From 0720ac3d69ff59651c545217f6039427b6237fcb Mon Sep 17 00:00:00 2001 From: Mihajlo Medjedovic Date: Tue, 20 Sep 2022 14:08:30 +0200 Subject: [PATCH] update --- runme.sas | 225010 +++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 219021 insertions(+), 5989 deletions(-) diff --git a/runme.sas b/runme.sas index 22a4c5d..8d572ae 100755 --- a/runme.sas +++ b/runme.sas @@ -1,7 +1,7 @@ %global appLoc serverName; -%let compiled_apploc=/Public/app/angular-seed-app; +%let compiled_apploc=/30.SASApps/3030.Projects/303001.DataController/build2/DataController; %let serverName=SASApp; @@ -1287,14 +1287,14 @@ data _null_; file sasjs lrecl=3000 ; put "/* Created on %sysfunc(datetime(),datetime19.) by %mf_getuser() */"; /* WEBOUT BEGIN */ - put ' '; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y '; put ' ,engine=DATASTEP '; put ' ,missing=NULL '; put ' ,showmeta=N '; put ' ,maxobs=MAX '; put ')/*/STORE SOURCE*/; '; - put '%local tempds colinfo fmtds i numcols stmt_obs; '; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval '; + put ' tmpds1 tmpds2 tmpds3 tmpds4; '; put '%let numcols=0; '; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;); '; put ' '; @@ -1332,7 +1332,7 @@ data _null_; put ' by varnum; '; put ' run; '; put ' /* move meta to mac vars */ '; - put ' data _null_; '; + put ' data &colinfo; '; put ' if _n_=1 then call symputx(''numcols'',nobs,''l''); '; put ' set &colinfo end=last nobs=nobs; '; put ' name=upcase(name); '; @@ -1361,9 +1361,15 @@ data _null_; put ' call symputx(cats(''type'',_n_),type,''l''); '; put ' call symputx(cats(''typelong'',_n_),typelong,''l''); '; put ' call symputx(cats(''label'',_n_),coalescec(label,name),''l''); '; + put ' /* overwritten when fmt=Y and a custom format exists in catalog */ '; + put ' if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l''); '; + put ' else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l''); '; put ' run; '; put ' '; put ' %let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32); '; + put ' proc sql; '; + put ' select count(*) into: lastobs from &ds; '; + put ' %if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs)); '; put ' '; put ' %if &engine=PROCJSON %then %do; '; put ' %if &missing=STRING %then %do; '; @@ -1400,27 +1406,99 @@ data _null_; put ' %end; '; put ' '; put ' %if &fmt=Y %then %do; '; - put ' data _data_; '; + put ' /** '; + put ' * Extract format definitions '; + put ' * First, by getting library locations from dictionary.formats '; + put ' * Then, by exporting the width using proc format '; + put ' * Cannot use maxw from sashelp.vformat as not always populated '; + put ' * Cannot use fmtinfo() as not supported in all flavours '; + put ' */ '; + put ' %let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32); '; + put ' %let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32); '; + put ' %let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32); '; + put ' %let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32); '; + put ' proc sql noprint; '; + put ' create table &tmpds1 as '; + put ' select cats(libname,''.'',memname) as FMTCAT, '; + put ' FMTNAME '; + put ' from dictionary.formats '; + put ' where fmttype=''F'' and libname is not null '; + put ' and fmtname in (select format from &colinfo where format is not null) '; + put ' order by 1; '; + put ' create table &tmpds2( '; + put ' FMTNAME char(32), '; + put ' LENGTH num '; + put ' ); '; + put ' %local catlist cat fmtlist i; '; + put ' select distinct fmtcat into: catlist separated by '' '' from &tmpds1; '; + put ' %do i=1 %to %sysfunc(countw(&catlist,%str( ))); '; + put ' %let cat=%scan(&catlist,&i,%str( )); '; + put ' proc sql; '; + put ' select distinct fmtname into: fmtlist separated by '' '' '; + put ' from &tmpds1 where fmtcat="&cat"; '; + put ' proc format lib=&cat cntlout=&tmpds3(keep=fmtname length); '; + put ' select &fmtlist; '; + put ' run; '; + put ' proc sql; '; + put ' insert into &tmpds2 select distinct fmtname,length from &tmpds3; '; + put ' %end; '; + put ' '; + put ' proc sql; '; + put ' create table &tmpds4 as '; + put ' select a.*, b.length as MAXW '; + put ' from &colinfo a '; + put ' left join &tmpds2 b '; + put ' on cats(a.format)=cats(upcase(b.fmtname)) '; + put ' order by a.varnum; '; + put ' data _null_; '; + put ' set &tmpds4; '; + put ' if not missing(maxw); '; + put ' call symputx( '; + put ' cats(''fmtlen'',_n_), '; + put ' /* vars need extra padding due to JSON escaping of special chars */ '; + put ' min(32767,ceil((max(length,maxw)+10)*1.5)) '; + put ' ,''l'' '; + put ' ); '; + put ' run; '; + put ' '; + put ' /* configure varlenchk - as we are explicitly shortening the variables */ '; + put ' %let optval=%sysfunc(getoption(varlenchk)); '; + put ' options varlenchk=NOWARN; '; + put ' data _data_(compress=char); '; + put ' /* shorten the new vars */ '; + put ' length '; + put ' %do i=1 %to &numcols; '; + put ' &&name&i $&&fmtlen&i '; + put ' %end; '; + put ' ; '; put ' /* rename on entry */ '; put ' set &ds(rename=( '; put ' %do i=1 %to &numcols; '; - put ' &&name&i=&&newname&i '; + put ' &&name&i=&&newname&i '; put ' %end; '; put ' )); '; + put ' &stmt_obs; '; + put ' '; + put ' drop '; + put ' %do i=1 %to &numcols; '; + put ' &&newname&i '; + put ' %end; '; + put ' ; '; put ' %do i=1 %to &numcols; '; - put ' /* formatted values can be up to length 32767 */ '; - put ' length &&name&i $32767; '; put ' %if &&typelong&i=num %then %do; '; - put ' &&name&i=left(put(&&newname&i,&&fmt&i)); '; + put ' &&name&i=cats(put(&&newname&i,&&fmt&i)); '; put ' %end; '; put ' %else %do; '; put ' &&name&i=put(&&newname&i,&&fmt&i); '; put ' %end; '; - put ' drop &&newname&i; '; put ' %end; '; - put ' if _error_ then call symputx(''syscc'',1012); '; + put ' if _error_ then do; '; + put ' call symputx(''syscc'',1012); '; + put ' stop; '; + put ' end; '; put ' run; '; put ' %let fmtds=&syslast; '; + put ' options varlenchk=&optval; '; put ' %end; '; put ' '; put ' proc format; /* credit yabwon for special null removal */ '; @@ -1439,8 +1517,8 @@ data _null_; put ' attrib _all_ label=''''; '; put ' %do i=1 %to &numcols; '; put ' %if &&typelong&i=char or &fmt=Y %then %do; '; - put ' length &&name&i $32767; '; - put ' format &&name&i $32767.; '; + put ' length &&name&i $&&fmtlen&i...; '; + put ' format &&name&i $&&fmtlen&i...; '; put ' %end; '; put ' %end; '; put ' %if &fmt=Y %then %do; '; @@ -1453,7 +1531,7 @@ data _null_; put ' format _numeric_ bart.; '; put ' %do i=1 %to &numcols; '; put ' %if &&typelong&i=char or &fmt=Y %then %do; '; - put ' if findc(&&name&i,''"\''!!''0A0D09000E0F01021011''x) then do; '; + put ' if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do; '; put ' &&name&i=''"''!!trim( '; put ' prxchange(''s/"/\\"/'',-1, /* double quote */ '; put ' prxchange(''s/\x0A/\n/'',-1, /* new line */ '; @@ -1466,8 +1544,9 @@ data _null_; put ' prxchange(''s/\x02/\\u0002/'',-1, /* STX */ '; put ' prxchange(''s/\x10/\\u0010/'',-1, /* DLE */ '; put ' prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */ '; + put ' prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */ '; put ' prxchange(''s/\\/\\\\/'',-1,&&name&i) '; - put ' ))))))))))))!!''"''; '; + put ' )))))))))))))!!''"''; '; put ' end; '; put ' else &&name&i=quote(cats(&&name&i)); '; put ' %end; '; @@ -1562,8 +1641,8 @@ data _null_; put ' %quote(&user) '; put ' '; put '%mend mf_getuser; '; - put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=Y,missing=NULL '; - put ' ,showmeta=N,maxobs=MAX '; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL '; + put ' ,showmeta=N,maxobs=MAX,workobs=0 '; put '); '; put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug '; put ' sasjs_tables; '; @@ -1636,8 +1715,8 @@ data _null_; put '%else %if &action=CLOSE %then %do; '; put ' /* To avoid issues with _webout on EBI we use a temporary file */ '; put ' filename _sjsref temp lrecl=131068; '; - put ' %if %str(&_debug) ge 131 %then %do; '; - put ' /* if debug mode, send back first 10 records of each work table also */ '; + put ' %if %str(&workobs) > 0 %then %do; '; + put ' /* if debug mode, send back first XX records of each work table also */ '; put ' data;run;%let tempds=%scan(&syslast,2,.); '; put ' ods output Members=&tempds; '; put ' proc datasets library=WORK memtype=data; '; @@ -1661,7 +1740,9 @@ data _null_; put ' put " ""&wt"" : {"; '; put ' put ''"nlobs":'' nlobs; '; put ' put '',"nvars":'' nvars; '; - put ' %mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10) '; + put ' %mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10 '; + put ' ,maxobs=&workobs '; + put ' ) '; put ' data _null_; file _sjsref mod encoding=''utf-8''; '; put ' put "}"; '; put ' %end; '; @@ -1790,2173 +1871,350 @@ run; +* BuildInit start; +/** + @file + @brief Initialise build program for SAS 9 DC + +

SAS Macros

+**/ +options nomprint; + +%global _metaperson _url dcpath; + +/* set webout if not running in STP mode */ +data _null_; + if "&sysprocessmode" ne "SAS Stored Process Server" then do; + call execute('filename _webout temp;'); + end; +run; +* BuildInit end; %let path=services; -%let path=services/common; - -%let service=appinit; +%let service=clickme; filename sascode temp lrecl=32767; data _null_; file sascode; - put '%macro mf_getuser('; + put 'options mprint;'; + put '%macro mp_replace(infile,'; + put 'findvar=,'; + put 'replacevar=,'; + put 'outfile=0'; put ')/*/STORE SOURCE*/;'; - put '%local user;'; - put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; - put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; - put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; - put '%end;'; - put '%else %if %symexist(_metaperson) %then %do;'; - put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; - put '/* sometimes SAS will add @domain extension - remove for consistency */'; - put '/* but be sure to quote in case of usernames with commas */'; - put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; - put '%end;'; - put '%else %let user=&sysuserid;'; - put '%quote(&user)'; - put '%mend mf_getuser;'; - put '/**'; - put '@file mp_jsonout.sas'; - put '@brief Writes JSON in SASjs format to a fileref'; - put '@details This macro can be used to OPEN a JSON stream and send one or more'; - put 'tables as arrays of rows, where each row can be an object or a nested array.'; - put 'There are two engines available - DATASTEP or PROCJSON.'; - put 'PROC JSON is fast but will produce errs like the ones below if'; - put 'special chars are encountered.'; - put '> (ERR)OR: Some code points did not transcode.'; - put '> An object or array close is not valid at this point in the JSON text.'; - put '> Date value out of range'; - put 'If this happens, try running with ENGINE=DATASTEP.'; - put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; - put 'can also convert entire datasets to formatted values. Output JSON is always'; - put 'in UTF-8.'; - put 'Usage:'; - put 'filename tmp temp;'; - put 'data class; set sashelp.class;run;'; - put '%mp_jsonout(OPEN,jref=tmp)'; - put '%mp_jsonout(OBJ,class,jref=tmp)'; - put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; - put '%mp_jsonout(CLOSE,jref=tmp)'; - put 'data _null_;'; - put 'infile tmp;'; - put 'input;putlog _infile_;'; - put 'run;'; - put 'If you are building web apps with SAS then you are strongly encouraged to use'; - put 'the mX_createwebservice macros in combination with the'; - put '[sasjs adapter](https://github.com/sasjs/adapter).'; - put 'For more information see https://sasjs.io'; - put '@param [in] action Valid values:'; - put '@li OPEN - opens the JSON'; - put '@li OBJ - sends a table with each row as an object'; - put '@li ARR - sends a table with each row in an array'; - put '@li CLOSE - closes the JSON'; - put '@param [in] ds The dataset to send. Must be a work table.'; - put '@param [out] jref= (_webout) The fileref to which to send the JSON'; - put '@param [out] dslabel= The name to give the table in the exported JSON'; - put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; - put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; - put '@li PROCJSON (default)'; - put '@li DATASTEP (more reliable when data has non standard characters)'; - put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; - put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; - put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; - put 'such as the column formats and types. The metadata is contained inside an'; - put 'object with the same name as the table but prefixed with a dollar sign - ie,'; - put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; - put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; - put 'that should be converted to JSON'; - put '

Related Macros

'; - put '@li mp_ds2fmtds.sas'; - put '@version 9.2'; - put '@author Allan Bowe'; - put '@source https://github.com/sasjs/core'; - put '**/'; - put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; - put ',engine=DATASTEP'; - put ',missing=NULL'; - put ',showmeta=N'; - put ',maxobs=MAX'; - put ')/*/STORE SOURCE*/;'; - put '%local tempds colinfo fmtds i numcols stmt_obs;'; - put '%let numcols=0;'; - put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; - put '%if &action=OPEN %then %do;'; - put 'options nobomfile;'; - put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; - put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; - put 'run;'; - put '%end;'; - put '%else %if (&action=ARR or &action=OBJ) %then %do;'; - put '/* force variable names to always be uppercase in the JSON */'; - put 'options validvarname=upcase;'; - put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; - put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; - put 'filename _sjs1 temp lrecl=200 ;'; - put 'data _null_; file _sjs1 encoding=''utf-8'';'; - put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; - put 'run;'; - put '/* now write to _webout 1 char at a time */'; - put 'data _null_;'; - put 'infile _sjs1 lrecl=1 recfm=n;'; - put 'file &jref mod lrecl=1 recfm=n;'; + put '%local inref outref dttm ds1 rc;'; + put '/* create filerefs */'; + put '%let rc=%sysfunc(filename(inref,,temp,lrecl=200));'; + put '%let rc=%sysfunc(filename(outref,,temp,lrecl=200));'; + put '%if &outfile=0 %then %let outfile=&infile;'; + put '/* uniquely named 32 char datasets */'; + put '%let ds1=all%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,29);'; + put '%let ds2=start%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,27);'; + put '/* START */'; + put '%let dttm=%sysfunc(datetime());'; + put 'filename &inref &infile lrecl=1 recfm=n;'; + put 'data &ds1;'; + put 'infile &inref;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; - put 'put sourcechar char1. @@;'; put 'run;'; - put 'filename _sjs1 clear;'; - put '/* grab col defs */'; - put 'proc contents noprint data=&ds'; - put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'data &ds2;'; + put '/* set find string to length in bytes to cover trailing spaces */'; + put 'length string $ %length(%superq(&findvar));'; + put 'string =symget("&findvar");'; + put 'drop string;'; + put 'firstchar=char(string,1);'; + put 'findlen=lengthm(string); /* <- for trailing bytes */'; + put 'do _N_=1 to nobs;'; + put 'set &ds1 nobs=nobs point=_N_;'; + put 'if sourcechar=firstchar then do;'; + put 'pos=1;'; + put 's=0;'; + put 'do point=_N_ to min(_N_ + findlen -1,nobs);'; + put 'set &ds1 point=point;'; + put 'if sourcechar=char(string, pos) then s + 1;'; + put 'else goto _leave_;'; + put 'pos+1;'; + put 'end;'; + put '_leave_:'; + put 'if s=findlen then do;'; + put 'START =_N_;'; + put '_N_ =_N_+ s - 1;'; + put 'STOP =_N_;'; + put 'output;'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'stop;'; + put 'keep START STOP;'; put 'run;'; - put '%let colinfo=%scan(&syslast,2,.);'; - put 'proc sort data=&colinfo;'; - put 'by varnum;'; + put 'data &ds1;'; + put 'declare hash HS(dataset:"&ds2(keep=start)");'; + put 'HS.defineKey("start");'; + put 'HS.defineDone();'; + put 'declare hash HE(dataset:"&ds2(keep=stop)");'; + put 'HE.defineKey("stop");'; + put 'HE.defineDone();'; + put 'do until(eof);'; + put 'set &ds1 end=eof curobs =n;'; + put 'start = ^HS.check(key:n);'; + put 'stop = ^HE.check(key:n);'; + put 'length strt $ 1;'; + put 'strt =put(start,best. -L);'; + put 'retain out 1;'; + put 'if out then output;'; + put 'if start then out=0;'; + put 'if stop then out=1;'; + put 'end;'; + put 'stop;'; + put 'keep sourcechar strt;'; put 'run;'; - put '/* move meta to mac vars */'; + put 'filename &outref &outfile recfm=n;'; put 'data _null_;'; - put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; - put 'set &colinfo end=last nobs=nobs;'; - put 'name=upcase(name);'; - put '/* fix formats */'; - put 'if type=2 or type=6 then do;'; - put 'typelong=''char'';'; - put 'length fmt $49.;'; - put 'if format='''' then fmt=cats(''$'',length,''.'');'; - put 'else if formatl=0 then fmt=cats(format,''.'');'; - put 'else fmt=cats(format,formatl,''.'');'; + put 'length replace $ %length(%superq(&replacevar));'; + put 'replace=symget("&replacevar");'; + put 'file &outref;'; + put 'do until(eof);'; + put 'set &ds1 end=eof;'; + put 'if strt ="1" then put replace char.;'; + put 'else put sourcechar char1.;'; + put 'end;'; + put 'stop;'; + put 'run;'; + put '/* END */'; + put '%put &sysmacroname took %sysevalf(%sysfunc(datetime())-&dttm) seconds to run;'; + put '%mend mp_replace;'; + put '%macro sasjsout(type,fref=sasjs);'; + put '%global sysprocessmode SYS_JES_JOB_URI;'; + put '%if &type=JS or &type=JS64 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header('; + put 'Content-type,application/javascript%str(;)charset=UTF-8'; + put '));'; + put '%end;'; + put '%else %if &type=CSS or &type=CSS64 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,text/css));'; + put '%end;'; + put '%else %if &type=PNG or &type=GIF or &type=JPEG or &type=JPG %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,image/%lowcase(&type)));'; + put '%end;'; + put '%else %if &type=SVG or &type=SVG64 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,image/svg+xml));'; + put '%end;'; + put '%else %if &type=ICO %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,image/vnd.microsoft.icon));'; + put '%end;'; + put '%else %if &type=JSON %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,application/json));'; + put '%end;'; + put '%else %if &type=MP3 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/mpeg));'; + put '%end;'; + put '%else %if &type=WAV %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/x-wav));'; + put '%end;'; + put '%else %if &type=OGG %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/ogg));'; + put '%end;'; + put '%else %if &type=WOFF or &type=WOFF2 or &type=TTF %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,font/%lowcase(&type)));'; + put '%end;'; + put '%else %if &type=MP4 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,video/mp4));'; + put '%end;'; + put '%if &type=HTML %then %do;'; + put '/*'; + put 'We need to perform some substitutions -eg to get the APPLOC and SERVERTYPE.'; + put 'Therefore the developer should avoid writing lines that exceed 32k'; + put 'characters (eg base64 encoded images) as they will get truncated when passing'; + put 'through the datastep. This could of course be re-written using LUA, removing'; + put 'the length restriction. Pull requests are welcome!'; + put '*/'; + put 'filename _sjsout temp;'; + put 'data _null_;'; + put 'file _sjsout lrecl=32767 encoding=''utf-8'';'; + put 'infile &fref lrecl=32767;'; + put 'input;'; + put 'length appLoc expanded_path $1048;'; + put 'if _n_=1 then do;'; + put 'retain pgm "&_program" appLoc expanded_path;'; + put '/* index is deployed in the /services/ folder under the appLoc */'; + put 'appLoc=substr(pgm,1,find(pgm,''/services/'')-1);'; + put 'expanded_path=cats(''?_PROGRAM='',appLoc,''/services/'');'; + put 'end;'; + put 'if find(_infile_,'' appLoc: '') then put '' appLoc: '' apploc:$quote1048. '','';'; + put 'else if find(_infile_,'' serverType: '') then do;'; + put 'put '' serverType: "SAS9" ,'';'; + put 'end;'; + put 'else if find(_infile_,'' serverUrl: '') then do;'; + put '/* nothing - we are streaming, so remove to default as hostname */'; put 'end;'; put 'else do;'; - put 'typelong=''num'';'; - put 'if format='''' then fmt=''best.'';'; - put 'else if formatl=0 then fmt=cats(format,''.'');'; - put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; - put 'else fmt=cats(format,formatl,''.'',formatd);'; + put '/* More recently, SASjs apps avoid inline JS to allow strict CSP */'; + put 'length infile in1 in2 $32767;'; + put 'infile=cats(_infile_);'; + put 'spos1=index(upcase(infile),''APPLOC="'');'; + put 'if spos1>0 then do;'; + put 'in1=substr(infile,1,spos1+7);'; + put 'in2=subpad(infile,spos1+8);'; + put 'in2=substr(in2,index(in2,''"''));'; + put 'infile=cats(in1,appLoc,in2);'; + put 'putlog "new apploc: " infile=;'; put 'end;'; - put '/* 32 char unique name */'; - put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; - put 'call symputx(cats(''name'',_n_),name,''l'');'; - put 'call symputx(cats(''newname'',_n_),newname,''l'');'; - put 'call symputx(cats(''length'',_n_),length,''l'');'; - put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; - put 'call symputx(cats(''type'',_n_),type,''l'');'; - put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; - put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; - put 'run;'; - put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; - put '%if &engine=PROCJSON %then %do;'; - put '%if &missing=STRING %then %do;'; - put '%put &sysmacroname: Special Missings not supported in proc json.;'; - put '%put &sysmacroname: Switching to DATASTEP engine;'; - put '%goto datastep;'; - put '%end;'; - put 'data &tempds;'; - put 'set &ds;'; - put '&stmt_obs;'; - put '%if &fmt=N %then format _numeric_ best32.;;'; - put '/* PRETTY is necessary to avoid line truncation in large files */'; - put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; - put 'proc json out=_sjs2 pretty'; - put '%if &action=ARR %then nokeys ;'; - put ';export &tempds / nosastags fmtnumeric;'; - put 'run;'; - put '/* send back to webout */'; - put 'data _null_;'; - put 'infile _sjs2 lrecl=1 recfm=n;'; - put 'file &jref mod lrecl=1 recfm=n;'; - put 'input sourcechar $char1. @@;'; - put 'format sourcechar hex2.;'; - put 'put sourcechar char1. @@;'; - put 'run;'; - put 'filename _sjs2 clear;'; - put '%end;'; - put '%else %if &engine=DATASTEP %then %do;'; - put '%datastep:'; - put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; - put '%then %do;'; - put '%put &sysmacroname: &ds NOT FOUND!!!;'; - put '%return;'; - put '%end;'; - put '%if &fmt=Y %then %do;'; - put 'data _data_;'; - put '/* rename on entry */'; - put 'set &ds(rename=('; - put '%do i=1 %to &numcols;'; - put '&&name&i=&&newname&i'; - put '%end;'; - put '));'; - put '%do i=1 %to &numcols;'; - put '/* formatted values can be up to length 32767 */'; - put 'length &&name&i $32767;'; - put '%if &&typelong&i=num %then %do;'; - put '&&name&i=left(put(&&newname&i,&&fmt&i));'; - put '%end;'; - put '%else %do;'; - put '&&name&i=put(&&newname&i,&&fmt&i);'; - put '%end;'; - put 'drop &&newname&i;'; - put '%end;'; - put 'if _error_ then call symputx(''syscc'',1012);'; - put 'run;'; - put '%let fmtds=&syslast;'; - put '%end;'; - put 'proc format; /* credit yabwon for special null removal */'; - put 'value bart (default=40)'; - put '%if &missing=NULL %then %do;'; - put '._ - .z = null'; - put '%end;'; - put '%else %do;'; - put '._ = [quote()]'; - put '. = null'; - put '.a - .z = [quote()]'; - put '%end;'; - put 'other = [best.];'; - put 'data &tempds;'; - put 'attrib _all_ label='''';'; - put '%do i=1 %to &numcols;'; - put '%if &&typelong&i=char or &fmt=Y %then %do;'; - put 'length &&name&i $32767;'; - put 'format &&name&i $32767.;'; - put '%end;'; - put '%end;'; - put '%if &fmt=Y %then %do;'; - put 'set &fmtds;'; - put '%end;'; - put '%else %do;'; - put 'set &ds;'; - put '%end;'; - put '&stmt_obs;'; - put 'format _numeric_ bart.;'; - put '%do i=1 %to &numcols;'; - put '%if &&typelong&i=char or &fmt=Y %then %do;'; - put 'if findc(&&name&i,''"\''!!''0A0D09000E0F01021011''x) then do;'; - put '&&name&i=''"''!!trim('; - put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; - put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; - put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; - put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; - put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; - put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; - put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; - put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; - put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; - put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; - put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; - put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; - put '))))))))))))!!''"'';'; + put '/* find & replace serverType in HTML attributes */'; + put 'spos2=index(upcase(infile),''SERVERTYPE="'');'; + put 'if spos2>0 then do;'; + put 'in1=substr(infile,1,spos2+11);'; + put 'in2=subpad(infile,spos2+12);'; + put 'in2=substr(in2,index(in2,''"''));'; + put 'infile=cats(in1,"SAS9",in2);'; + put 'putlog "new servertype: " infile=;'; put 'end;'; - put 'else &&name&i=quote(cats(&&name&i));'; - put '%end;'; - put '%end;'; - put 'run;'; - put 'filename _sjs3 temp lrecl=131068 ;'; - put 'data _null_;'; - put 'file _sjs3 encoding=''utf-8'';'; - put 'if _n_=1 then put "[";'; - put 'set &tempds;'; - put 'if _n_>1 then put "," @; put'; - put '%if &action=ARR %then "[" ; %else "{" ;'; - put '%do i=1 %to &numcols;'; - put '%if &i>1 %then "," ;'; - put '%if &action=OBJ %then """&&name&i"":" ;'; - put '"&&name&i"n /* name literal for reserved variable names */'; - put '%end;'; - put '%if &action=ARR %then "]" ; %else "}" ; ;'; - put '/* close out the table */'; - put 'data _null_;'; - put 'file _sjs3 mod encoding=''utf-8'';'; - put 'put '']'';'; - put 'run;'; - put 'data _null_;'; - put 'infile _sjs3 lrecl=1 recfm=n;'; - put 'file &jref mod lrecl=1 recfm=n;'; - put 'input sourcechar $char1. @@;'; - put 'format sourcechar hex2.;'; - put 'put sourcechar char1. @@;'; - put 'run;'; - put 'filename _sjs3 clear;'; - put '%end;'; - put 'proc sql;'; - put 'drop table &colinfo, &tempds;'; - put '%if %substr(&showmeta,1,1)=Y %then %do;'; - put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; - put 'data _null_;'; - put 'file _sjs4;'; - put 'length label $350;'; - put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; - put 'do i=1 to &numcols;'; - put 'name=quote(trim(symget(cats(''name'',i))));'; - put 'format=quote(trim(symget(cats(''fmt'',i))));'; - put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; - put 'length=quote(trim(symget(cats(''length'',i))));'; - put 'type=quote(trim(symget(cats(''typelong'',i))));'; - put 'if i>1 then put "," @@;'; - put 'put name '':{"format":'' format '',"label":'' label'; - put ''',"length":'' length '',"type":'' type ''}'';'; + put '/* find & replace serverUrl in HTML attributes */'; + put 'spos3=index(upcase(infile),''SERVERURL="'');'; + put 'if spos3>0 then do;'; + put 'in1=substr(infile,1,spos3+10);'; + put 'in2=subpad(infile,spos3+11);'; + put 'in2=substr(in2,index(in2,''"''));'; + put 'infile=cats(in1,in2);'; + put 'putlog "new serverUrl: " infile=;'; + put 'end;'; + put 'if sum(spos1,spos2,spos3)>0 then put infile;'; + put 'else do;'; + put '/* during SAS9 sasjs compile, dependencies get static GUID */'; + put 'infile=tranwrd(_infile_,''?_PROGRAM=pZKd6F95jECvRQlN0LCfdA=='',cats(expanded_path));'; + put 'put infile;'; put 'end;'; - put 'put ''}}'';'; - put 'run;'; - put '/* send back to webout */'; - put 'data _null_;'; - put 'infile _sjs4 lrecl=1 recfm=n;'; - put 'file &jref mod lrecl=1 recfm=n;'; - put 'input sourcechar $char1. @@;'; - put 'format sourcechar hex2.;'; - put 'put sourcechar char1. @@;'; - put 'run;'; - put 'filename _sjs4 clear;'; - put '%end;'; - put '%end;'; - put '%else %if &action=CLOSE %then %do;'; - put 'data _null_; file &jref encoding=''utf-8'' mod ;'; - put 'put "}";'; - put 'run;'; - put '%end;'; - put '%mend mp_jsonout;'; - put '/**'; - put '@file mm_webout.sas'; - put '@brief Send data to/from SAS Stored Processes'; - put '@details This macro should be added to the start of each Stored Process,'; - put '**immediately** followed by a call to:'; - put '%mm_webout(FETCH)'; - put 'This will read all the input data and create same-named SAS datasets in the'; - put 'WORK library. You can then insert your code, and send data back using the'; - put 'following syntax:'; - put 'data some datasets; * make some data ;'; - put 'retain some columns;'; - put 'run;'; - put '%mm_webout(OPEN)'; - put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; - put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; - put 'Finally, wrap everything up send some helpful system variables too'; - put '%mm_webout(CLOSE)'; - put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; - put '@param [in] ds The dataset to send back to the frontend'; - put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; - put '@param [in] fmt=(Y) Set to N to send back unformatted values'; - put '@param [out] fref= (_webout) The fileref to which to write the JSON'; - put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; - put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; - put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; - put 'such as the column formats and types. The metadata is contained inside an'; - put 'object with the same name as the table but prefixed with a dollar sign - ie,'; - put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; - put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; - put 'that should be converted to output JSON'; - put '

SAS Macros

'; - put '@li mp_jsonout.sas'; - put '@version 9.3'; - put '@author Allan Bowe'; - put '**/'; - put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=Y,missing=NULL'; - put ',showmeta=N,maxobs=MAX'; - put ');'; - put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; - put 'sasjs_tables;'; - put '%local i tempds jsonengine;'; - put '/* see https://github.com/sasjs/core/issues/41 */'; - put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; - put '%else %let jsonengine=DATASTEP;'; - put '%if &action=FETCH %then %do;'; - put '%if %str(&_debug) ge 131 %then %do;'; - put 'options mprint notes mprintnest;'; - put '%end;'; - put '%let _webin_file_count=%eval(&_webin_file_count+0);'; - put '/* now read in the data */'; - put '%do i=1 %to &_webin_file_count;'; - put '%if &_webin_file_count=1 %then %do;'; - put '%let _webin_fileref1=&_webin_fileref;'; - put '%let _webin_name1=&_webin_name;'; - put '%end;'; - put 'data _null_;'; - put 'infile &&_webin_fileref&i termstr=crlf;'; - put 'input;'; - put 'call symputx(''input_statement'',_infile_);'; - put 'putlog "&&_webin_name&i input statement: " _infile_;'; - put 'stop;'; - put 'data &&_webin_name&i;'; - put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; - put 'input &input_statement;'; - put '%if %str(&_debug) ge 131 %then %do;'; - put 'if _n_<20 then putlog _infile_;'; - put '%end;'; - put 'run;'; - put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; - put '%end;'; - put '%end;'; - put '%else %if &action=OPEN %then %do;'; - put '/* fix encoding */'; - put 'OPTIONS NOBOMFILE;'; - put '/**'; - put '* check xengine type to avoid the below err message:'; - put '* > Function is only valid for filerefs using the CACHE access method.'; - put '*/'; - put 'data _null_;'; - put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; - put 'if xengine=''STREAM'' then do;'; - put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; put 'end;'; put 'run;'; - put '/* setup json */'; - put 'data _null_;file &fref encoding=''utf-8'';'; - put '%if %str(&_debug) ge 131 %then %do;'; - put 'put ''>>weboutBEGIN<<'';'; + put '%let fref=_sjsout;'; put '%end;'; - put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; - put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put '%else %if &type=JS64 or &type=CSS64 %then %do;'; + put 'options nobomfile;'; + put '%let fvar=pZKd6F95jECvRQlN0LCfdA==;'; + put '%let stgfile="%sysfunc(pathname(work))/stgfile.txt";'; + put '%let newfile="%sysfunc(pathname(work))/newfile.txt";'; + put '/* convert from base64 */'; + put 'filename _out64 &stgfile encoding=''utf-8'';'; + put 'data _null_;'; + put 'length filein 8 fileout 8;'; + put 'filein = fopen("&fref",''I'',4,''B'');'; + put 'fileout = fopen("_out64",''A'',1,''B'');'; + put 'char= ''20''x;'; + put 'do while(fread(filein)=0);'; + put 'length raw $4 ;'; + put 'do i=1 to 4;'; + put 'rc=fget(filein,char,1);'; + put 'substr(raw,i,1)=char;'; + put 'end;'; + put 'rc = fput(fileout, input(raw,$base64X4.));'; + put 'rc =fwrite(fileout);'; + put 'end;'; + put 'rc = fclose(filein);'; + put 'rc = fclose(fileout);'; put 'run;'; - put '%end;'; - put '%else %if &action=ARR or &action=OBJ %then %do;'; - put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; - put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put '/* get appLoc from _program */'; + put 'data _null_;'; + put 'pgm="&_program";'; + put 'appLoc=substr(pgm,1,find(pgm,''/services/'')-1);'; + put 'call symputx(''apploc'',cats(appLoc,''/services/''));'; + put 'run;'; + put '%put &=fvar;'; + put '%put &=apploc;'; + put '/* replace the GUID with appLoc */'; + put '%mp_replace(&stgfile,'; + put 'findvar=fvar,'; + put 'replacevar=apploc,'; + put 'outfile=&newfile'; put ')'; + put 'filename &fref &newfile encoding=''utf-8'';'; put '%end;'; - put '%else %if &action=CLOSE %then %do;'; - put '/* To avoid issues with _webout on EBI we use a temporary file */'; - put 'filename _sjsref temp lrecl=131068;'; - put '%if %str(&_debug) ge 131 %then %do;'; - put '/* if debug mode, send back first 10 records of each work table also */'; - put 'data;run;%let tempds=%scan(&syslast,2,.);'; - put 'ods output Members=&tempds;'; - put 'proc datasets library=WORK memtype=data;'; - put '%local wtcnt;%let wtcnt=0;'; + put '/**'; + put '* In SAS9, JS & CSS files are base64 encoded to avoid UTF8 issues in WLATIN1'; + put '* metadata - so in this case, decode and stream byte by byte.'; + put '* */'; + put '%if &type=GIF or &type=PNG or &type=JPG or &type=JPEG or &type=ICO or &type=MP3'; + put 'or &type=WAV or &type=OGG or &type=WOFF or &type=WOFF2 or &type=TTF or &type=MP4'; + put 'or &type=SVG64'; + put '%then %do;'; put 'data _null_;'; - put 'set &tempds;'; - put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; - put 'i+1;'; - put 'call symputx(cats(''wt'',i),name,''l'');'; - put 'call symputx(''wtcnt'',i,''l'');'; - put 'data _null_; file _sjsref mod encoding=''utf-8'';'; - put 'put ",""WORK"":{";'; - put '%do i=1 %to &wtcnt;'; - put '%let wt=&&wt&i;'; - put 'data _null_; file _sjsref mod encoding=''utf-8'';'; - put 'dsid=open("WORK.&wt",''is'');'; - put 'nlobs=attrn(dsid,''NLOBS'');'; - put 'nvars=attrn(dsid,''NVARS'');'; - put 'rc=close(dsid);'; - put 'if &i>1 then put '',''@;'; - put 'put " ""&wt"" : {";'; - put 'put ''"nlobs":'' nlobs;'; - put 'put '',"nvars":'' nvars;'; - put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10)'; - put 'data _null_; file _sjsref mod encoding=''utf-8'';'; - put 'put "}";'; - put '%end;'; - put 'data _null_; file _sjsref mod encoding=''utf-8'';'; - put 'put "}";'; + put 'length filein 8 fileout 8;'; + put 'filein = fopen("&fref",''I'',4,''B'');'; + put 'fileout = fopen("_webout",''A'',1,''B'');'; + put 'char = ''20''x;'; + put 'do while(fread(filein)=0);'; + put 'length raw $4 ;'; + put 'do i=1 to 4;'; + put 'rc=fget(filein,char,1);'; + put 'substr(raw,i,1)=char;'; + put 'end;'; + put 'rc = fput(fileout, input(raw,$base64X4.));'; + put 'rc = fwrite(fileout);'; + put 'end;'; + put 'rc = fclose(filein);'; + put 'rc = fclose(fileout);'; put 'run;'; put '%end;'; - put '/* close off json */'; - put 'data _null_;file _sjsref mod encoding=''utf-8'';'; - put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; - put 'put ",""_DEBUG"" : ""&_debug"" ";'; - put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; - put 'put ",""_METAUSER"": " _METAUSER;'; - put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; - put 'put '',"_METAPERSON": '' _METAPERSON;'; - put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; - put 'put '',"_PROGRAM" : '' _PROGRAM ;'; - put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; - put 'put '',"AUTOEXEC" : '' autoexec;'; - put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; - put 'put ",""SYSCC"" : ""&syscc"" ";'; - put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; - put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; - put 'put '',"SYSERRORTEXT" : '' syserrortext;'; - put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; - put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; - put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; - put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; - put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; - put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; - put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; - put 'put ",""SYSSITE"" : ""&syssite"" ";'; - put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; - put 'sysvlong=quote(trim(symget(''sysvlong'')));'; - put 'put '',"SYSVLONG" : '' sysvlong;'; - put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; - put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; - put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; - put 'length memsize $32;'; - put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; - put 'memsize=quote(cats(memsize));'; - put 'put '',"MEMSIZE" : '' memsize;'; - put 'put "}" @;'; - put '%if %str(&_debug) ge 131 %then %do;'; - put 'put ''>>weboutEND<<'';'; - put '%end;'; - put 'run;'; - put '/* now write to _webout 1 char at a time */'; + put '%else %do;'; + put '%put streaming to _webout;'; put 'data _null_;'; - put 'infile _sjsref lrecl=1 recfm=n;'; - put 'file &fref mod lrecl=1 recfm=n;'; + put 'infile &fref lrecl=1 recfm=n;'; + put 'file _webout mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; - put 'filename _sjsref clear;'; put '%end;'; - put '%mend mm_webout;'; - put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; - put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; - put ',missing=&missing'; - put ',showmeta=&showmeta'; - put ',maxobs=&maxobs'; - put ') %mend;'; - put '/* provide additional debug info */'; - put '%global _program;'; - put '%put &=syscc;'; - put '%put user=%mf_getuser();'; - put '%put pgm=&_program;'; - put '%put timestamp=%sysfunc(datetime(),datetime19.);'; - put '* Service Variables start;'; - put '* Service Variables end;'; - put '* SAS Macros start;'; - put '* SAS Macros end;'; - put '* SAS Includes start;'; - put '* SAS Includes end;'; - put '* Binary Files start;'; - put '* Binary Files end;'; - put '* ServiceInit start;'; - put 'libname mydb (work);'; - put 'data mydb.springs ;'; - put 'attrib'; - put 'Latitude length= 8'; - put 'Longitude length= 8'; - put 'Name length= $34'; - put 'Area length= $14'; - put 'Type length= $9'; - put 'Farenheit length= 8'; - put 'Celsius length= 8'; - put ';'; - put 'infile cards dsd;'; - put 'input'; - put 'Latitude'; - put 'Longitude'; - put 'Name :$char.'; - put 'Area :$char.'; - put 'Type :$char.'; - put 'Farenheit'; - put 'Celsius'; - put ';'; - put 'missing 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 _;'; - put 'datalines4;'; - put '51.925,-177.16,Fumaroles on Kanaga Island,Adak,Hotspring,219,104'; - put '65.858,-164.71,Serpentine Hot Springs,Bendeleben,Hotspring,171,77'; - put '53.851,-166.918,Hot Springs Near Makushin Volcano,Unalaska,Hotspring,H,H'; - put '53.877,-166.448,Hot Springs Near Summer Bay,Unalaska,Hotspring,H,H'; - put '52.27,-174.042,Hot Springs on Atka Island,Atka,Hotspring,H,H'; - put '52.34,-174.26,Hot Springs on Atka Island,Atka,Hotspring,H,H'; - put '52.358,-172.317,Hot Spring on Seguam Island,Seguam,Hotspring,H,H'; - put '52.84,-169.9,Chuginadak Hot Springs,Samalga Island,Hotspring,H,H'; - put '52.96,-169.71,Hot Spring on Kagamil Island,Samalga Island,Hotspring,H,H'; - put '51.94,-178.5,Hot Spring on Little Sitkin Island,Rat Islands,Hotspring,H,H'; - put '51.963,-178.491,Fumaroles on Little Sitkin Island,Rat Islands,Hotspring,H,H'; - put '51.775,-178.793,Fumaroles on Gareloi Island,Gareloi Island,Hotspring,H,H'; - put '53.207,-168.445,Hot Springs Near Geyser Bight,Umnak,Hotspring,H,H'; - put '53.892,-166.93,Makushin Volcano Fumaroles,Unalaska,Hotspring,310,154'; - put '54.9,-162.885,Hot Spring on Amagat Island,False Pass,Hotspring,H,H'; - put '53.213,-168.463,Hot Springs Near Geyser Bight,Umnak,Hotspring,216,102'; - put '53.223,-168.477,Hot Springs Near Geyser Bight,Umnak,Hotspring,214,101'; - put '53.443,-168.092,Thermal Springs In Okmok Caldera,Umnak,Hotspring,212,100'; - put '52.042,-176.108,Hot Springs on Great Sitkin Island,Adak,Hotspring,210,99'; - put '55.983,-131.661,Bailey Hot Spring,Ketchikan,Hotspring,198,92'; - put '53.242,-168.365,Hot Springs Near Hot Springs Cove,Umnak,Hotspring,192,89'; - put '54.157,-165.85,Hot Springs Near Hot Springs Bay,Unimak,Hotspring,181,83'; - put '58.033,-136.017,Hot Springs North End Tenakee Inle,Mt. Fairweathe,Hotspring,180,82'; - put '65.093,-164.922,Pilgrim Springs,Bendeleben,Hotspring,178,81'; - put '57.831,-156.513,W Ukinek Spring,Ugashik,Hotspring,178,81'; - put '65.459,-153.312,Little Melozitna Hot Springs,Melozitna,Hotspring,176,80'; - put '51.81,-177.79,Hot Spring on Tanaga Island,Adak,Hotspring,H,H'; - put '65.233,-144.483,Hot Springs on Big Windy Creek,Circle,Hotspring,H,H'; - put '55.334,-162.137,Hot Spring at West End Emmons Lake,Cold Bay,Hotspring,68,20'; - put '66.197,-154.006,Tunalkten Lake Hot Spring,Hughes,Hotspring,.,.'; - put '67.403,-153.883,Hot Spring Near Arrigetch Peaks,Survey Pass,Hotspring,W,W'; - put '65.047,-142.848,Hot Spring on Flat Creek,Charley River,Hotspring,W,W'; - put '63.683,-151.233,Hot Springs Near Glacier,Mt. Mckinley,Hotspring,W,W'; - put '63.883,-150.717,Hot Springs East of Diamond,Mt. Mckinley,Hotspring,W,W'; - put '62.45,-157.933,Hot Spring Near Flat,Iditarod,Hotspring,W,W'; - put '60.837,-142.42,Hot Spring on Twelvemile Creek,Bering Glacier,Hotspring,W,W'; - put '56.58,-132.18,South Stikine Spring,Petersburg,Hotspring,W,W'; - put '52.87,-173.13,Hot Spring on Attu Island,Attu,Hotspring,W,W'; - put '65.908,-154.993,Deniktow Ridge Hot Springs,Melozitna,Hotspring,H,H'; - put '53.95,-168.037,Hot Springs on Bogoslof Island,Umnak,Hotspring,H,H'; - put '65.45,-150,Hot Spring Near Little Minook Cr,Tanana,Hotspring,H,H'; - put '51.967,-178.444,Fumaroles on Little Sitkin Island,Rat Islands,Hotspring,H,H'; - put '64.002,-156.3,Hot Spring on Tributary of Innoko,Nulato,Hotspring,H,H'; - put '61.058,-160.692,Hot Spring Near Tuluksak River,Russian Missio,Hotspring,H,H'; - put '61.363,-157.733,Hot Springs on Upper Chuilnuk Rive,Sleetmute,Hotspring,H,H'; - put '61.267,-151.238,Hot Lake In Bottom of Crater Peak,Tyonek,Hotspring,H,H'; - put '58.24,-155.09,Hot Spring Near Katmai Pass,Mt. Katmai,Hotspring,H,H'; - put '58.27,-154.89,Hot Springs Near Mt Katmai,Mt. Katmai,Hotspring,H,H'; - put '58.92,-153.98,Hot Spring West of Cape Douglas,Afognak,Hotspring,H,H'; - put '55.368,-161.961,Fumarole,Port Moller,Hotspring,H,H'; - put '54.18,-165.41,Hot Springs on Akun Island,Unimak,Hotspring,H,H'; - put '54.23,-165.66,Hot Springs on Akun Island,Unimak,Hotspring,H,H'; - put '54.66,-164.55,Hot Spring on Unimak Island,Unimak,Hotspring,H,H'; - put '65.97,-154.033,Pocahontas Hot Springs,Melozitna,Hotspring,H,H'; - put '65.216,-149.993,Hutlinana Hot Springs,Livengood,Hotspring,109,43'; - put '57.085,-134.839,Baranof Warm Springs,Sitka,Hotspring,124,51'; - put '67.283,-155.067,Reed River Hot Spring,Survey Pass,Hotspring,122,50'; - put '66.15,-157.117,Hot Springs Near South Bm,Shungnak,Hotspring,122,50'; - put '66.233,-157.583,Hot Springs on Hawk River,Shungnak,Hotspring,122,50'; - put '65.81,-151.237,Kilo Hot Spring,Tanana,Hotspring,122,50'; - put '56.717,-132.005,Chief Shakes Hot Springs,Petersburg,Hotspring,122,50'; - put '69.33,-144.044,Okpilak Springs,Mt. Michelson,Hotspring,119,49'; - put '65.367,-161.25,Granite Mountain Hot Springs,Candle,Hotspring,120,49'; - put '57.644,-135.333,Nylen Hot Springs,Sitka,Hotspring,120,49'; - put '65.963,-150.919,Ray River Hot Spring,Tanana,Hotspring,117,47'; - put '64.924,-154.837,Horner Hot Springs,Ruby,Hotspring,117,47'; - put '65.267,-155.28,Hot Springs Near Dulbi River,Melozitna,Hotspring,126,52'; - put '57.807,-136.341,White Sulphur Springs (Hooniah H S,Sitka,Hotspring,111,44'; - put '57.781,-135.217,Tenakee Hot Springs,Sitka,Hotspring,109,43'; - put '52.19,-174.25,Hot Springs on Atka Island,Atka,Hotspring,167,75'; - put '55.334,-133.641,Dalton (Craig) Hot Springs,Craig,Hotspring,109,43'; - put '51.944,-178.547,Fumaroles on Little Sitkin Island,Rat Islands,Hotspring,H,H'; - put '57.771,-135.82,Hot Spring North Arm Peril Strait,Sitka,Hotspring,100,38'; - put '53.848,-166.873,Hot Springs Near Makushin Volcano,Unalaska,Hotspring,94,34'; - put '69.627,-146.027,Red Hill Spring,Mt. Michelson,Hotspring,91,33'; - put '62.081,-145.007,Upper Klawasi Warm Springs,Gulkana,Hotspring,86,30'; - put '62.058,-145.222,Mineral Spring (Lower Klawasi Cone,Gulkana,Hotspring,82,28'; - put '56.68,-131.882,Barnes Lake Hot Springs,Bradfield Cana,Hotspring,79,26'; - put '56.928,-158.12,Surprise Lake Hot Spring,Chignik,Hotspring,73,23'; - put '56.667,-132.28,Twin Lakes Hot Springs,Petersburg,Hotspring,70,21'; - put '66.383,-157.517,Warm Spring Near Purcell Mountain,Shungnak,Hotspring,68,20'; - put '57.348,-135.385,Hot Spring Near Fish Bay,Sitka,Hotspring,117,47'; - put '65.983,-150.56,Hot Springs on Lower Ray River,Tanana,Hotspring,142,61'; - put '55.863,-160.493,Hot Spring Near Port Moller,Port Moller,Hotspring,160,71'; - put '53.253,-168.358,Hot Springs Near Hot Springs Cove,Umnak,Hotspring,158,70'; - put '51.97,-176.61,Hot Springs on Adak Island,Adak,Hotspring,154,68'; - put '65.053,-146.057,Chena Hot Springs,Circle,Hotspring,153,67'; - put '58.37,-137.09,Hot Springs Near Icy Point,Mt. Fairweathe,Hotspring,153,67'; - put '56.836,-135.374,Goddard Hot Springs,Port Alexander,Hotspring,153,67'; - put '66.342,-150.85,Kanuti Hot Springs,Bettles,Hotspring,151,66'; - put '64.85,-162.3,Clear Creek Hot Springs,Solomon,Hotspring,149,65'; - put '53.233,-168.3,Hot Spring on Umnak Island,Umnak,Hotspring,149,65'; - put '61.2,-159.863,Hot Springs Near Ophir Creek,Russian Missio,Hotspring,145,63'; - put '57.865,-156.499,Gas Rocks Hot Spring,Ugashik,Hotspring,127,53'; - put '51.762,-178.77,Fumaroles on Gareloi Island,Gareloi Island,Hotspring,144,62'; - put '66.367,-156.767,Hot Springs Near Division Bm,Shungnak,Hotspring,140,60'; - put '64.7,-162.467,Hot Spring Near Kwiniuk River,Solomon,Hotspring,106,41'; - put '65.274,-148.847,Tolovana Hot Springs,Livengood,Hotspring,140,60'; - put '55.933,-131.559,Bell Island Hot Springs,Ketchikan,Hotspring,165,74'; - put '57.178,-157.015,Hot Spring Near Mother Goose Lake,Ugashik,Hotspring,138,59'; - put '65.483,-144.637,Circle Hot Springs,Circle,Hotspring,135,57'; - put '56.233,-131.267,Bradfield Canal Hot Springs,Bradfield Cana,Hotspring,135,57'; - put '65.006,-150.633,Manley Hot Springs,Tanana,Hotspring,133,56'; - put '65.129,-154.692,Melozi (Melozitna) Springs,Melozitna,Hotspring,131,55'; - put '66.217,-149.547,Dall Hot Springs,Beaver,Hotspring,129,54'; - put '55.217,-162.483,Hot Springs East of Cold Bay,Cold Bay,Hotspring,129,54'; - put '65.217,-162.9,Hot Springs Near Lava Creek,Bendeleben,Hotspring,127,53'; - put '54.944,-163.251,Hot Springs Near Morzhovoi,False Pass,Hotspring,145,63'; - put '36.48,-91.053,Warm Springs,Poplar Bluff,Hotspring,82,28'; - put '34.384,-93.607,Caddo Gap Springs,Little Rock,Hotspring,95,35'; - put '34.321,-93.739,Spring on Redland Mountain,Little Rock,Hotspring,77,25'; - put '34.406,-93.908,Spring on Little Missouri River,Little Rock,Hotspring,74,23'; - put '34.542,-93.024,Big Chalybeate Spring,Little Rock,Hotspring,79,26'; - put '34.513,-93.053,Hot Springs,Little Rock,Hotspring,147,64'; - put '33.008,-109.778,Grapevine Spring,Clifton,Hotspring,91,33'; - put '32.984,-113.324,Agua Caliente Springs,Ajo,Hotspring,102,39'; - put '34.563,-113.497,Kaiser Hot Spring,Prescott,Hotspring,99,37'; - put '34.076,-111.708,Spring (Hot),Holbrook,Hotspring,99,37'; - put '33.17,-110.528,Coolidge Dam Warm Spring,Mesa,Hotspring,99,37'; - put '34.695,-113.572,Cofer Hot Spring,Prescott,Hotspring,97,36'; - put '33.209,-110.818,Pioneer Spring,Mesa,Hotspring,91,33'; - put '33.988,-112.362,Castle Hot Springs,Phoenix,Hotspring,115,46'; - put '32.345,-110.247,Warm Springs,Tucson,Hotspring,91,33'; - put '36.196,-113.081,Lava Warm Springs,Grand Canyon,Hotspring,90,32'; - put '33.068,-109.975,Warm Spring,Clifton,Hotspring,90,32'; - put '31.943,-113.013,Quitobaquito Springs,Lukeville,Hotspring,90,32'; - put '31.695,-110.963,Agua Caliente Spring,Nogales,Hotspring,90,32'; - put '33.075,-109.298,Seep,Clifton,Hotspring,95,35'; - put '34.357,-111.71,Verde Hot Springs,Holbrook,Hotspring,104,40'; - put '32.998,-109.901,Indian Hot Springs,Silver City,Hotspring,118,48'; - put '33.669,-111.165,Roosevelt Dam Springs,Mesa,Hotspring,118,48'; - put '32.336,-110.24,Hookers Hot Springs,Tucson,Hotspring,127,53'; - put '33.4,-109.152,Hannah Hot Spring,Clifton,Hotspring,133,56'; - put '33.08,-109.303,Hot Spring,Clifton,Hotspring,138,59'; - put '32.741,-114.068,Radium Hot Springs,El Centro,Hotspring,140,60'; - put '32.971,-109.35,Gillard Hot Springs,Silver City,Hotspring,180,82'; - put '35.984,-114.742,Hot Spring,Kingman,Hotspring,H,H'; - put '33.78,-110.317,Warm Spring,Mesa,Hotspring,W,W'; - put '36.418,-113.956,Pakoon Springs,Grand Canyon,Hotspring,86,30'; - put '33.493,-112.94,El Dorado Hot Springs,Phoenix South,Hotspring,112,44'; - put '34.896,-114.308,Oatman Warm Springs,Needles,Hotspring,91,33'; - put '33.055,-109.295,Clifton Hot Springs,Clifton,Hotspring,102,39'; - put '34.445,-112.693,Spring,Prescott,Hotspring,72,22'; - put '32.337,-110.708,Mercer Spring,Tucson,Hotspring,77,25'; - put '34.649,-111.744,Soda Spring,Holbrook,Hotspring,75,24'; - put '33.253,-110.703,Spring,Mesa,Hotspring,75,24'; - put '31.362,-109.265,Astin Spring,Douglas,Hotspring,75,24'; - put '35.169,-113.851,Frost Mine Spring,Williams,Hotspring,70,21'; - put '31.673,-109.902,Antelope Spring,Douglas,Hotspring,79,26'; - put '35.213,-113.425,Casa Grande Spring,Williams,Hotspring,72,22'; - put '33.51,-110.403,Cassadore Spring,Mesa,Hotspring,73,23'; - put '34.32,-111.453,Tonto Natural Bridge Spring,Holbrook,Hotspring,72,22'; - put '34.405,-111.602,Spring,Holbrook,Hotspring,72,22'; - put '34.436,-109.402,Salado Springs,Saint Johns,Hotspring,72,22'; - put '31.592,-109.51,Lewis Spring,Douglas,Hotspring,68,20'; - put '33.046,-109.44,Eagle Creek Hot Springs,Clifton,Hotspring,97,36'; - put '36.509,-111.852,Colorado Pool,Marble Canyon,Hotspring,86,30'; - put '33.062,-109.482,Warm Spring,Clifton,Hotspring,73,23'; - put '31.637,-110.703,Monkey Spring,Nogales,Hotspring,82,28'; - put '32.281,-110.73,Agua Caliente,Tucson,Hotspring,86,30'; - put '32.327,-110.228,N-O Spring,Tucson,Hotspring,73,23'; - put '32.983,-110.373,Warm Spring,Tucson,Hotspring,79,26'; - put '33.152,-110.639,Mescal Warm Spring,Mesa,Hotspring,84,29'; - put '33.163,-110.662,Spring,Mesa,Hotspring,82,28'; - put '35.077,-113.267,Trout Creek Spring,Williams,Hotspring,81,27'; - put '33.438,-110.213,Warm Springs,Mesa,Hotspring,86,30'; - put '36.895,-113.913,Springs,Grand Canyon,Hotspring,79,26'; - put '35.96,-114.725,Hot Spring,Kingman,Hotspring,86,30'; - put '34.925,-114.221,Caliche Spring,Needles,Hotspring,79,26'; - put '33.915,-112.332,Mitchell Spring,Phoenix,Hotspring,79,26'; - put '33.831,-110.574,Salt Banks,Mesa,Hotspring,78,26'; - put '34.91,-113.608,Tom Brown Warm Spring,Prescott,Hotspring,82,28'; - put '38.873,-122.689,Seigler Springs,Santa Rosa,Hotspring,126,52'; - put '36.814,-117.763,Palm Spring,Death Valley,Hotspring,120,49'; - put '34.498,-119.341,Stingleys Hot Springs,Los Angeles,Hotspring,123,51'; - put '33.67,-117.325,"Wrenden Hot Sprs, Elsinore Hot Spr",Santa Ana,Hotspring,125,52'; - put '37.253,-118.373,Keough Hot Springs,Mariposa,Hotspring,124,51'; - put '36.229,-118.302,Jordan Hot Springs,Fresno,Hotspring,124,51'; - put '34.502,-119.346,Vickers Hot Springs,Los Angeles,Hotspring,124,51'; - put '36.123,-121.64,Slates Hot Springs,Santa Cruz,Hotspring,122,50'; - put '35.881,-118.67,California Hot Springs,Bakersfield,Hotspring,122,50'; - put '38.788,-122.777,Sulphur Creek,Santa Rosa,Hotspring,120,49'; - put '37.648,-118.806,Hot Springs,Mariposa,Hotspring,129,54'; - put '36.703,-120.86,Mercey Hot Springs,Santa Cruz,Hotspring,119,48'; - put '33.589,-117.511,San Juan Hot Springs,Santa Ana,Hotspring,120,49'; - put '38.785,-122.655,Harbin Springs,Santa Rosa,Hotspring,120,49'; - put '37.677,-118.79,Dehy Hot Spring,Mariposa,Hotspring,134,57'; - put '39.183,-122.7,Bartlett Springs,Ukiah,Hotspring,144,62'; - put '36.234,-121.546,Tassajara Hot Springs,Santa Cruz,Hotspring,144,62'; - put '36.144,-120.555,Coalinga Mineral Springs,Santa Cruz,Hotspring,112,44'; - put '39.033,-122.445,Jones Fountain of Life Spring,Ukiah,Hotspring,142,61'; - put '35.575,-118.534,"Miracle Hot Sprs, Hobo Hot Sprs",Bakersfield,Hotspring,119,48'; - put '33.284,-116.631,Warner Hot Spring,Santa Ana,Hotspring,138,59'; - put '38.237,-119.326,Buckeye Hot Spring,Walker Lake,Hotspring,140,60'; - put '41.266,-120.08,Hot Springs (Menlo Baths),Alturas,Hotspring,135,57'; - put '33.753,-117.495,Glen Ivy Hot Springs,Santa Ana,Hotspring,131,55'; - put '37.802,-118.532,Benton Hot Springs,Mariposa,Hotspring,134,57'; - put '38.691,-123.024,Skaggs Springs,Santa Rosa,Hotspring,135,56'; - put '35.62,-118.473,Scovern Hot Springs,Bakersfield,Hotspring,133,56'; - put '34.538,-119.56,Agua Caliente Spring,Los Angeles,Hotspring,133,56'; - put '33.558,-117.154,Murrietta Hot Springs,Santa Ana,Hotspring,132,56'; - put '39.226,-120.01,Brockway Hot Springs,Chico,Hotspring,131,55'; - put '41.036,-121.926,Hunt Hot Spring,Alturas,Hotspring,136,58'; - put '34.582,-119.044,Willett Hot Springs,Los Angeles,Hotspring,108,42'; - put '37.234,-118.881,Blaney Meadows Hot Springs,Mariposa,Hotspring,109,43'; - put '36.477,-118.404,Kern Hot Spring,Fresno,Hotspring,109,43'; - put '36.806,-117.771,Lower Warm Springs,Death Valley,Hotspring,110,43'; - put '34.482,-119.302,Matilija Hot Springs,Los Angeles,Hotspring,109,43'; - put '34.537,-119.879,San Marcos Hot Spring,Los Angeles,Hotspring,110,43'; - put '33.896,-117.057,Eden Hot Springs,Santa Ana,Hotspring,109,43'; - put '39.573,-120.348,Campbell Hot Springs,Chico,Hotspring,111,44'; - put '38.994,-122.742,Horseshoe Spring,Santa Rosa,Hotspring,108,42'; - put '33.969,-116.942,Highland Springs,Santa Ana,Hotspring,112,44'; - put '34.34,-117.173,"Warm Spring, Hot Spring",San Bernardino,Hotspring,108,42'; - put '41.219,-120.066,Squaw Baths,Alturas,Hotspring,106,41'; - put '40.142,-120.935,Indian Valley Hot Springs,Susanville,Hotspring,106,41'; - put '39.292,-122.821,Crabtree Hot Springs,Ukiah,Hotspring,106,41'; - put '37.108,-121.478,Gilroy Hot Springs,San Jose,Hotspring,106,41'; - put '39.227,-123.362,Orrs Springs,Ukiah,Hotspring,104,40'; - put '38.773,-122.705,Anderson Springs,Santa Rosa,Hotspring,108,42'; - put '38.858,-122.671,Howard Springs,Santa Rosa,Hotspring,113,45'; - put '34.461,-119.637,Montecito Hot Springs,Los Angeles,Hotspring,118,48'; - put '33.551,-117.167,Temecula Hot Springs,Santa Ana,Hotspring,116,47'; - put '33.835,-116.988,Gilman Hot Springs,Santa Ana,Hotspring,117,47'; - put '37.618,-119.074,Reds Meadow Hot Springs,Mariposa,Hotspring,115,46'; - put '35.528,-118.665,Democrat Hot Springs,Bakersfield,Hotspring,115,46'; - put '33.731,-118.348,Whites Point Hot Springs,Long Beach,Hotspring,115,46'; - put '37.532,-119.025,Fish Creek Hot Springs,Mariposa,Hotspring,110,43'; - put '39.032,-122.432,"Blank Spring, Manzanita Mine Sprs",Ukiah,Hotspring,112,45'; - put '37.327,-119.018,Mono Hot Springs,Mariposa,Hotspring,109,43'; - put '38.225,-119.217,The Hot Springs,Walker Lake,Hotspring,113,45'; - put '35.727,-118.408,Hot Spring,Bakersfield,Hotspring,113,45'; - put '41.6,-120.088,Leonards Hot Springs,Alturas,Hotspring,144,62'; - put '38.874,-123.518,Point Arena Hot Springs,Santa Rosa,Hotspring,111,44'; - put '41.126,-121.028,Kellog Hot Springs,Alturas,Hotspring,172,78'; - put '35.558,-118.612,Delonegha Hot Springs,Bakersfield,Hotspring,112,44'; - put '35.871,-116.23,Tecopa Hot Springs,Trona,Hotspring,118,48'; - put '41.86,-120.158,Fort Bidwell Hot Spring,Alturas,Hotspring,113,45'; - put '41.534,-120.078,Hot Springs (Surprise Valley),Alturas,Hotspring,208,98'; - put '33.345,-115.588,Mud Volcanoes,Salton Sea,Hotspring,W,W'; - put '41.012,-121.274,Hot Springs,Alturas,Hotspring,H,H'; - put '39.922,-120.024,Zamboni Hot Springs,Chico,Hotspring,H,H'; - put '38.979,-122.659,Fumarole,Santa Rosa,Hotspring,H,H'; - put '37.622,-119.028,Fumaroles,Mariposa,Hotspring,H,H'; - put '40.364,-120.243,Hot Spring,Susanville,Hotspring,204,96'; - put '38.767,-122.748,Little Geysers,Santa Rosa,Hotspring,210,99'; - put '33.328,-115.583,Mud Volcanoes,Salton Sea,Hotspring,W,W'; - put '41.67,-120.206,Lake City Hot Springs,Alturas,Hotspring,207,97'; - put '36.036,-117.802,Devils Kitchen,Death Valley,Hotspring,207,97'; - put '36.045,-117.769,Coso Hot Springs,Death Valley,Hotspring,207,97'; - put '40.382,-121.513,Morgan Hot Spring,Susanville,Hotspring,205,96'; - put '40.421,-121.375,Terminal Geyser,Susanville,Hotspring,205,96'; - put '41.19,-120.383,West Valley Reservoir Hot Spring,Alturas,Hotspring,171,77'; - put '38.802,-122.81,The Geysers,Santa Rosa,Hotspring,214,101'; - put '35.888,-116.258,Springs,Trona,Hotspring,W,W'; - put '34.185,-117.262,"Arrowhead Springs, Waterman Hot Sp",San Bernardino,Hotspring,194,90'; - put '33.823,-116.542,Palm Springs (Agua Caliente Spring,Santa Ana,Hotspring,104,40'; - put '41.196,-120.475,Springs,Alturas,Hotspring,W,W'; - put '41.959,-120.936,Warm Spring,Alturas,Hotspring,W,W'; - put '37.929,-121.965,Springs,San Jose,Hotspring,W,W'; - put '36.83,-117.736,Upper Warm Spring,Death Valley,Hotspring,W,W'; - put '33.343,-115.573,Mud Volcanoes,Salton Sea,Hotspring,W,W'; - put '35.536,-118.651,Spring (Hot),Bakersfield,Hotspring,W,W'; - put '33.332,-115.575,Mud Volcanoes,Salton Sea,Hotspring,W,W'; - put '35.967,-116.931,Warm Spring,Trona,Hotspring,W,W'; - put '33.28,-115.592,Mud Volcanoes,Salton Sea,Hotspring,W,W'; - put '33.288,-115.575,Mud Volcanoes,Salton Sea,Hotspring,W,W'; - put '33.312,-115.577,Mud Volcanoes,Salton Sea,Hotspring,W,W'; - put '33.313,-115.605,Mud Volcanoes,Salton Sea,Hotspring,W,W'; - put '40.393,-121.507,Growler Hot Spring,Susanville,Hotspring,203,95'; - put '35.148,-118.783,Warm Spring,Bakersfield,Hotspring,W,W'; - put '41.973,-122.202,Klamath Hot Spring,Weed,Hotspring,156,69'; - put '41.143,-121.11,Bassett Hot Springs,Alturas,Hotspring,174,79'; - put '38.58,-122.575,Calistoga Hot Springs,Santa Rosa,Hotspring,172,78'; - put '37.656,-118.834,Hot Creek Springs,Mariposa,Hotspring,171,77'; - put '41.229,-121.405,Little Hot Spring,Alturas,Hotspring,169,76'; - put '37.664,-118.802,The Tub,Mariposa,Hotspring,167,75'; - put '40.355,-120.257,Wendel Hot Springs,Susanville,Hotspring,205,96'; - put '38.768,-122.717,Castle Rock Springs,Santa Rosa,Hotspring,163,73'; - put '38.245,-119.205,Travertine Hot Springs,Walker Lake,Hotspring,180,82'; - put '39.002,-122.664,Sulphur Bank,Ukiah,Hotspring,156,69'; - put '39.057,-122.475,Elgin Mine,Ukiah,Hotspring,156,69'; - put '39.039,-122.421,Wilbur Springs,Ukiah,Hotspring,153,67'; - put '40.444,-121.409,Drakesbad,Susanville,Hotspring,151,66'; - put '40.457,-121.545,Mill Creek Springs,Susanville,Hotspring,150,66'; - put '38.048,-119.081,Hot Spring,Walker Lake,Hotspring,151,66'; - put '37.647,-118.859,Casa Diablo Hot Pool,Mariposa,Hotspring,165,74'; - put '41.607,-121.523,Hot Spot,Alturas,Hotspring,191,88'; - put '40.44,-121.434,Devils Kitchen,Susanville,Hotspring,203,95'; - put '40.302,-120.195,Amedee Hot Springs,Susanville,Hotspring,203,95'; - put '36.031,-117.833,Fumarole,Death Valley,Hotspring,203,95'; - put '40.447,-121.536,"Sulphur Works, Tophet Hot Springs",Susanville,Hotspring,199,93'; - put '40.455,-121.501,Bumpass Hell,Susanville,Hotspring,199,93'; - put '37.648,-118.914,Casa Diablo Hot Springs And Geyser,Mariposa,Hotspring,199,93'; - put '37.692,-118.839,Little Hot Creek Spring,Mariposa,Hotspring,180,82'; - put '34.596,-118.998,Sespe Hot Springs,Los Angeles,Hotspring,194,90'; - put '38.348,-119.4,Fales Hot Springs,Walker Lake,Hotspring,180,82'; - put '40.434,-121.399,Boiling Springs Lake,Susanville,Hotspring,190,88'; - put '41.615,-120.102,Seyferth Hot Springs,Alturas,Hotspring,185,85'; - put '41.407,-122.197,"Hot Spring, Fumaroles",Weed,Hotspring,183,84'; - put '37.993,-119.028,Paoha Island Springs,Mariposa,Hotspring,181,83'; - put '41.025,-121.924,Big Bend Hot Springs,Alturas,Hotspring,180,82'; - put '38.699,-119.846,Grovers Hot Springs,Walker Lake,Hotspring,147,64'; - put '37.665,-118.828,Hot Creek Gorge Springs,Mariposa,Hotspring,199,93'; - put '39.43,-122.538,"Sulphur Spring, Salt Spring",Ukiah,Hotspring,75,24'; - put '38.925,-122.77,Hildebrande Spring,Santa Rosa,Hotspring,77,25'; - put '38.203,-119.118,Warm Spring,Walker Lake,Hotspring,77,25'; - put '36.938,-121.565,Sargent Estate Warm Spring,Santa Cruz,Hotspring,77,25'; - put '34.826,-116.677,Newberry Spring,San Bernardino,Hotspring,77,25'; - put '41.919,-122.369,Bogus Soda Springs,Weed,Hotspring,76,24'; - put '39.053,-122.597,Quigley Soda Spring,Ukiah,Hotspring,82,28'; - put '41.252,-120.521,Warm Spring,Alturas,Hotspring,75,24'; - put '38.85,-122.693,Pine Cone Spring,Santa Rosa,Hotspring,78,26'; - put '38.339,-122.259,Napa Vichy Springs,Santa Rosa,Hotspring,76,24'; - put '38.892,-122.533,Baker Soda Spring,Santa Rosa,Hotspring,76,24'; - put '38.897,-122.882,England Springs,Santa Rosa,Hotspring,76,24'; - put '38.916,-122.799,Carlsbad Spring,Santa Rosa,Hotspring,76,24'; - put '38.192,-120.827,Valley Springs,Sacramento,Hotspring,75,24'; - put '38.85,-120.025,Myers Warm Spring,Sacramento,Hotspring,75,24'; - put '37.708,-118.813,Hot Spring,Mariposa,Hotspring,68,20'; - put '36.122,-117.217,Warm Sulphur Springs,Death Valley,Hotspring,80,27'; - put '35.682,-116.422,Saratoga Spring,Trona,Hotspring,82,28'; - put '33.733,-114.907,Mccoy Spring,Salton Sea,Hotspring,82,28'; - put '41.484,-120.764,Spring,Alturas,Hotspring,81,27'; - put '39.657,-123.585,Jackson Valley Mud Springs,Ukiah,Hotspring,80,27'; - put '39.198,-122.505,Pseudo Complexion Spring,Ukiah,Hotspring,81,27'; - put '38.85,-122.667,Bad Creek Spring,Santa Rosa,Hotspring,81,27'; - put '32.97,-116.423,Vallecitos Spring,San Diego,Hotspring,79,26'; - put '36.765,-120.901,Spring,Santa Cruz,Hotspring,81,27'; - put '34.159,-118.499,El Encino Springs,Los Angeles,Hotspring,79,26'; - put '35.879,-116.153,Resting Spring,Trona,Hotspring,80,27'; - put '41.828,-120.917,Pothole Spring,Alturas,Hotspring,78,26'; - put '39.348,-122.668,Fouts Springs,Ukiah,Hotspring,79,26'; - put '38.519,-122.26,"Napa Rock Soda Spring, Phillips So",Santa Rosa,Hotspring,78,26'; - put '38.838,-122.653,Spiers Springs,Santa Rosa,Hotspring,79,26'; - put '35.141,-116.101,Soda Station Springs,Trona,Hotspring,75,24'; - put '37.503,-121.904,Alameda Warm Springs,San Jose,Hotspring,80,27'; - put '39.429,-123.308,Muir Springs,Ukiah,Hotspring,68,20'; - put '37.924,-122.046,Sulphur Spring,San Francisco,Hotspring,75,24'; - put '40.58,-120.265,Tipton Springs,Susanville,Hotspring,70,21'; - put '39.697,-123.478,Pinches Spring,Ukiah,Hotspring,70,21'; - put '38.755,-122.285,Zim Zim Spring,Santa Rosa,Hotspring,70,21'; - put '37.083,-121.042,Spring In Oneill Forebay,San Jose,Hotspring,70,21'; - put '37.632,-121.762,Crohare Spring,San Jose,Hotspring,70,21'; - put '33.625,-115.325,Corn Spring,Salton Sea,Hotspring,72,22'; - put '36.117,-118.776,Ward Spring,Fresno,Hotspring,70,21'; - put '34.423,-119.538,Boron Spring,Los Angeles,Hotspring,72,22'; - put '39.002,-122.498,Grizzly Spring,Ukiah,Hotspring,68,20'; - put '39.088,-122.525,Sulphur Spring,Ukiah,Hotspring,68,20'; - put '38.125,-122.188,Vallejo White Sulphur Springs,Santa Rosa,Hotspring,68,20'; - put '38.31,-122.053,Tolenas Springs,Santa Rosa,Hotspring,68,20'; - put '41.45,-120.834,Kelly Hot Spring,Alturas,Hotspring,198,92'; - put '36.512,-116.821,Nevares Springs,Death Valley,Hotspring,102,39'; - put '37.888,-118.487,Bertrand Ranch Springs,Mariposa,Hotspring,70,21'; - put '35.483,-119.917,Mize Spring,Bakersfield,Hotspring,73,23'; - put '36.698,-117.848,Little Hunter Canyon Springs,Death Valley,Hotspring,81,27'; - put '38.995,-122.642,Davis Soda Spring,Santa Rosa,Hotspring,73,23'; - put '37.432,-121.308,Salt Grass Springs,San Jose,Hotspring,73,23'; - put '37.573,-121.445,Lone Tree Mineral Spring,San Jose,Hotspring,73,23'; - put '37.638,-118.887,Chance Spring,Mariposa,Hotspring,73,23'; - put '36.295,-120.985,Sulphur Springs,Santa Cruz,Hotspring,73,23'; - put '41.16,-120.403,Warm Spring,Alturas,Hotspring,70,21'; - put '35.4,-120.25,Cameta Warm Spring,San Luis Obisp,Hotspring,73,23'; - put '37.719,-118.735,Springs,Mariposa,Hotspring,75,24'; - put '35.588,-116.359,Sheep Creek Spring,Trona,Hotspring,73,23'; - put '40.568,-120.325,Sellicks Springs,Susanville,Hotspring,72,22'; - put '38.833,-122.357,One Shot Mining Co,Santa Rosa,Hotspring,72,22'; - put '38.95,-122.572,Soda Spring In Cache Formation,Santa Rosa,Hotspring,72,22'; - put '37.635,-118.72,Springs,Mariposa,Hotspring,72,22'; - put '36.13,-118.816,Soda Spring,Fresno,Hotspring,72,22'; - put '36.773,-120.898,Iridat Spring,Santa Cruz,Hotspring,73,23'; - put '33.545,-115.654,Canyon Spring,Salton Sea,Hotspring,97,36'; - put '36.675,-116.923,Keane Wonder Spring,Death Valley,Hotspring,93,34'; - put '36.331,-121.367,Paraiso Springs (Sulphur Spring),Santa Cruz,Hotspring,98,37'; - put '35.122,-120.542,Newsom Springs,San Luis Obisp,Hotspring,99,37'; - put '34.503,-120.219,Las Cruces Hot Springs,Santa Maria,Hotspring,99,37'; - put '38.49,-122.498,St Helena White Sulphur Spring,Santa Rosa,Hotspring,97,36'; - put '35.946,-116.189,Chappo Spring,Trona,Hotspring,80,27'; - put '40.019,-121.036,Spring,Susanville,Hotspring,99,37'; - put '40.44,-121.42,Hot Springs Valley,Susanville,Hotspring,83,28'; - put '32.947,-116.305,Agua Caliente Springs,San Diego,Hotspring,101,38'; - put '39.196,-122.714,Newman Springs,Ukiah,Hotspring,94,35'; - put '37.63,-118.808,Whitmore Hot Springs,Mariposa,Hotspring,95,35'; - put '35.269,-120.851,Pecho Warm Springs,San Luis Obisp,Hotspring,95,35'; - put '33.514,-117.604,Spring,Santa Ana,Hotspring,95,35'; - put '38.958,-122.701,Riviera Beach Spring,Santa Rosa,Hotspring,93,34'; - put '36.33,-117.948,Dirty Socks Hot Spring,Death Valley,Hotspring,93,34'; - put '37.847,-121.635,Byron Hot Springs,San Jose,Hotspring,96,36'; - put '35.433,-118.478,Yates Hot Springs,Bakersfield,Hotspring,100,38'; - put '35.663,-120.692,Paso Robles Artesian Spring,San Luis Obisp,Hotspring,102,39'; - put '34.507,-119.291,Wheeler Springs,Los Angeles,Hotspring,102,39'; - put '33.8,-116.927,Soboda Hot Springs,Santa Ana,Hotspring,102,39'; - put '40.223,-122.747,Stinking Springs,Redding,Hotspring,101,38'; - put '38.8,-123.17,Hoods Hot Springs,Santa Rosa,Hotspring,100,38'; - put '37.029,-117.383,Grapevine Springs,Goldfield,Hotspring,100,38'; - put '36.084,-121.584,Dolans Hot Spring,Santa Cruz,Hotspring,98,37'; - put '36.21,-118.176,Soda Springs,Fresno,Hotspring,100,38'; - put '33.664,-117.913,Fairview Hot Spring,Santa Ana,Hotspring,96,36'; - put '35.143,-116.813,Paradise Spring,Trona,Hotspring,100,38'; - put '33.837,-117.145,Lakeview Hot Springs,Santa Ana,Hotspring,100,38'; - put '33.201,-115.577,Mud Pots,Salton Sea,Hotspring,100,38'; - put '33.212,-115.591,Mud Pots,Salton Sea,Hotspring,100,38'; - put '33.217,-115.58,Wister Mud Pot,Salton Sea,Hotspring,100,38'; - put '32.617,-116.189,Jacumba Hot Springs,San Diego,Hotspring,101,38'; - put '36.618,-121.845,Sulphur Hot Spring,Santa Cruz,Hotspring,100,38'; - put '36.495,-117.893,Springs,Death Valley,Hotspring,86,30'; - put '38.033,-118.902,Mono Basin Warm Springs,Walker Lake,Hotspring,88,31'; - put '35.908,-120.367,Table Mountain (Spring),San Luis Obisp,Hotspring,88,31'; - put '34.271,-116.838,Pan Hot Springs,San Bernardino,Hotspring,88,31'; - put '40.238,-122.11,Tuscan Springs,Redding,Hotspring,86,30'; - put '40.245,-120.007,High Rock Spring,Susanville,Hotspring,86,30'; - put '38.55,-122.72,Mark West Springs,Santa Rosa,Hotspring,88,31'; - put '43.513,-119.903,Springs at Tecolote Tunnel,Los Angeles,Hotspring,93,34'; - put '39.728,-120.547,Mclear Warm Springs,Chico,Hotspring,86,30'; - put '38.835,-122.731,Gordon Warm Springs,Santa Rosa,Hotspring,97,36'; - put '39.166,-123.159,Vichy Springs,Ukiah,Hotspring,85,29'; - put '38.936,-122.907,Highland Springs,Santa Rosa,Hotspring,84,29'; - put '37.398,-121.794,Mineral Springs,San Jose,Hotspring,84,29'; - put '33.436,-117.324,De Luz Warm Springs,Santa Ana,Hotspring,85,29'; - put '33.512,-115.827,Dos Palmas Spring,Salton Sea,Hotspring,84,29'; - put '39.022,-122.444,Abbott Mine,Ukiah,Hotspring,86,30'; - put '34.605,-118.561,Warm Spring,Los Angeles,Hotspring,92,33'; - put '41.659,-123.319,Sulphur Springs,Weed,Hotspring,84,29'; - put '38.394,-122.552,Los Guilicos Warm Springs,Santa Rosa,Hotspring,88,31'; - put '41.492,-120.7,Essex Springs,Alturas,Hotspring,91,33'; - put '38.654,-122.484,Aetna Springs,Santa Rosa,Hotspring,91,33'; - put '35.842,-117.38,Bainter Spring,Trona,Hotspring,92,33'; - put '34.228,-117.483,Tylers Bath Spring,San Bernardino,Hotspring,92,33'; - put '33.363,-117.017,Agua Tibia Spring,Santa Ana,Hotspring,92,33'; - put '41.167,-120.032,Bare Ranch Spring,Alturas,Hotspring,90,32'; - put '35.978,-116.273,Shoshone Spring,Trona,Hotspring,90,32'; - put '33.407,-116.035,Fish Springs,Santa Ana,Hotspring,90,32'; - put '35.582,-120.666,Santa Ysabel Springs (Sulphur Spr),San Luis Obisp,Hotspring,92,33'; - put '34.537,-119.613,Little Caliente Spring,Los Angeles,Hotspring,90,32'; - put '39.006,-122.787,Big Soda Spring,Ukiah,Hotspring,90,32'; - put '35.439,-119.846,Carneros Spring,Bakersfield,Hotspring,90,32'; - put '36.441,-116.829,Travertine Springs,Death Valley,Hotspring,90,32'; - put '37.88,-122.627,Rocky Point Springs,San Francisco,Hotspring,90,32'; - put '39.227,-107.224,Penny Hot Springs,Leadville,Hotspring,133,56'; - put '38.732,-106.178,Hortense Hot Spring,Montrose,Hotspring,181,83'; - put '37.4,-107.849,Tripp Hot Springs,Durango,Hotspring,111,44'; - put '40.073,-106.113,Hot Sulphur Springs,Craig,Hotspring,111,44'; - put '39.739,-105.512,Idaho Springs,Denver,Hotspring,115,46'; - put '39.552,-107.412,South Canyon Hot Springs,Leadville,Hotspring,118,48'; - put '39.548,-107.322,Glenwood Springs,Leadville,Hotspring,124,51'; - put '38.133,-107.736,Orvis Hot Spring,Montrose,Hotspring,126,52'; - put '39.017,-105.793,Hartsel Hot Springs,Denver,Hotspring,126,52'; - put '38.733,-106.162,Mount Princeton Hot Springs,Montrose,Hotspring,133,56'; - put '37.752,-108.131,Paradise Warm Spring,Cortez,Hotspring,115,46'; - put '37.747,-106.831,Wagon Wheel Gap Hot Springs,Durango,Hotspring,135,57'; - put '37.263,-107.011,Pagosa Springs,Durango,Hotspring,136,58'; - put '38.812,-106.226,Cottonwood Hot Springs,Montrose,Hotspring,136,58'; - put '38.168,-105.924,Mineral Hot Springs,Pueblo,Hotspring,140,60'; - put '40.559,-106.849,Routt Hot Springs,Craig,Hotspring,147,64'; - put '38.021,-107.672,Ouray Hot Springs,Montrose,Hotspring,156,69'; - put '38.498,-106.076,Poncha Hot Springs,Montrose,Hotspring,160,71'; - put '38.514,-106.508,Upper Waunita Hot Springs,Montrose,Hotspring,176,80'; - put '38.272,-107.1,Cebolla Hot Springs,Montrose,Hotspring,106,41'; - put '37.313,-107.344,Piedra River Hot Springs,Durango,Hotspring,108,42'; - put '38.517,-106.515,Lower Waunita Hot Springs,Montrose,Hotspring,167,75'; - put '38.816,-106.873,Ranger Hot Spring,Montrose,Hotspring,81,27'; - put '37.294,-105.784,Dexter Spring,Trinidad,Hotspring,68,20'; - put '38.634,-106.072,Browns Grotto Warm Spring,Montrose,Hotspring,73,23'; - put '39.164,-106.062,Rhodes Warm Spring,Leadville,Hotspring,75,24'; - put '38.836,-106.825,Cement Creek Hot Spring,Montrose,Hotspring,77,25'; - put '38.653,-106.056,Browns Canyon Warm Spring,Montrose,Hotspring,77,25'; - put '37.033,-106.805,Stinking Springs,Durango,Hotspring,81,27'; - put '37.747,-108.117,Geyser Warm Spring,Cortez,Hotspring,82,28'; - put '38.479,-105.891,Swissvale Warm Springs,Pueblo,Hotspring,82,28'; - put '37.751,-106.317,Shaw Springs,Durango,Hotspring,86,30'; - put '37.728,-107.054,Birdsie Warm Spring,Durango,Hotspring,86,30'; - put '37.741,-107.034,Antelope Spring,Durango,Hotspring,90,32'; - put '39.628,-107.106,Dotsero Warm Springs,Leadville,Hotspring,90,32'; - put '38.485,-105.91,Wellsville Warm Spring,Pueblo,Hotspring,91,33'; - put '38.014,-108.054,Lemon Hot Spring,Moab,Hotspring,91,33'; - put '37.391,-107.846,"Trimble Hot Spr, Stratten Warm Spr",Durango,Hotspring,97,36'; - put '38.192,-105.816,Valley View Hot Springs,Pueblo,Hotspring,99,37'; - put '38.433,-105.261,Canon City Hot Springs,Pueblo,Hotspring,104,40'; - put '39.012,-106.891,Conundrum Hot Springs,Leadville,Hotspring,100,38'; - put '37.511,-106.945,Rainbow Hot Springs,Durango,Hotspring,104,40'; - put '40.467,-107.952,Juniper Hot Springs,Craig,Hotspring,100,38'; - put '40.483,-106.827,Steamboat Springs,Craig,Hotspring,102,39'; - put '37.771,-108.091,Dunton Hot Spring,Cortez,Hotspring,108,42'; - put '37.453,-107.803,Pinkerton Hot Springs,Durango,Hotspring,90,32'; - put '39.932,-105.277,Eldorado Springs,Denver,Hotspring,79,26'; - put '27.074,-82.233,Little Salt Spring,Tampa,Hotspring,81,27'; - put '27.06,-82.261,Warm Mineral Springs (Big Salt Spr,Tampa,Hotspring,86,30'; - put '32.92,-84.438,Barker Spring,Phenix City,Hotspring,73,23'; - put '32.964,-84.499,Thundering Spring,Phenix City,Hotspring,75,24'; - put '33.018,-84.327,Taylor Spring,Atlanta,Hotspring,75,24'; - put '32.862,-84.65,Parkman Spring,Phenix City,Hotspring,77,25'; - put '33.037,-84.374,Lifsey Spring,Atlanta,Hotspring,79,26'; - put '32.893,-84.69,Warm Springs,Phenix City,Hotspring,88,31'; - put '32.873,-84.547,Tom Brown Spring,Phenix City,Hotspring,68,20'; - put '19.407,-155.277,Steam Vents,Hawaii,Hotspring,H,H'; - put '19.46,-154.847,Isaac Hale Park Spring,Hawaii,Hotspring,97,36'; - put '19.496,-154.876,Warm Vapor,Hawaii,Hotspring,W,W'; - put '19.373,-155.188,Steam Vents,Hawaii,Hotspring,H,H'; - put '19.39,-155.311,Steam Vents,Hawaii,Hotspring,H,H'; - put '19.434,-155.272,Steam Vents,Hawaii,Hotspring,H,H'; - put '19.486,-155.598,Steam Vents,Hawaii,Hotspring,H,H'; - put '19.466,-154.943,Steam Vents,Hawaii,Hotspring,H,H'; - put '19.421,-155.62,Steam Vents,Hawaii,Hotspring,H,H'; - put '19.201,-155.384,Waiwelawela Point Spring,Hawaii,Hotspring,90,32'; - put '19.593,-154.928,Akins Spring,Hawaii,Hotspring,84,29'; - put '44.721,-115.01,Thomas Creek Ranch Hot Spring,Challis,Hotspring,138,59'; - put '45.431,-116.015,Cow Flats Hot Spring,Grangeville,Hotspring,138,59'; - put '44.062,-115.685,Pine Flat Hot Springs,Challis,Hotspring,138,59'; - put '44.382,-115.841,Dash Creek Hot Springs,Challis,Hotspring,138,59'; - put '44.077,-115.553,Haven Lodge Hot Spring,Challis,Hotspring,147,64'; - put '43.647,-114.816,Skillern Hot Springs,Hailey,Hotspring,140,60'; - put '43.789,-115.434,Dutch Frank Hot Spring,Hailey,Hotspring,149,65'; - put '43.54,-115.288,Bridge Hot Springs,Hailey,Hotspring,138,59'; - put '43.72,-115.617,Smith Cabin Hot Spring,Hailey,Hotspring,138,59'; - put '42.688,-114.826,Banbury Hot Spring,Twin Falls,Hotspring,138,59'; - put '45.035,-115.561,Sheep Creek Hot Spring,Elk City,Hotspring,136,58'; - put '44.245,-114.885,Elkhorn Hot Spring,Challis,Hotspring,136,58'; - put '44.642,-115.693,Mollys Hot Spring,Challis,Hotspring,138,59'; - put '43.811,-115.116,Atlanta Hot Springs,Hailey,Hotspring,140,60'; - put '44.679,-116.231,White Licks Hot Spring,Baker,Hotspring,140,60'; - put '45.512,-115.046,Barth Hot Springs,Elk City,Hotspring,140,60'; - put '43.696,-115.658,Sheep Creek Bridge Hot Spring,Hailey,Hotspring,142,61'; - put '44.914,-115.722,Teapot Hot Spring,Challis,Hotspring,142,61'; - put '43.788,-115.444,Straight Creek Hot Spring,Hailey,Hotspring,144,62'; - put '43.116,-115.305,Latty Hot Spring,Hailey,Hotspring,144,62'; - put '45.039,-116.291,Zims Resort Hot Springs,Grangeville,Hotspring,144,62'; - put '43.049,-114.952,White Arrow Hot Spring,Hailey,Hotspring,145,63'; - put '44.645,-114.739,Upper Loon Creek Hot Springs,Challis,Hotspring,145,63'; - put '43.383,-114.931,Wardrop Hot Spring,Hailey,Hotspring,147,64'; - put '44.531,-116.754,Fairchild Hot Spring,Baker,Hotspring,126,52'; - put '44.661,-114.652,Foster Ranch Hot Springs,Challis,Hotspring,135,57'; - put '44.051,-115.829,Dan Hodges Hot Spring,Challis,Hotspring,140,60'; - put '43.506,-114.354,Hailey Hot Springs,Hailey,Hotspring,131,55'; - put '43.982,-114.486,West Pass Hot Spring,Hailey,Hotspring,124,51'; - put '43.641,-114.487,Warfield Hot Spring,Hailey,Hotspring,124,51'; - put '44.145,-112.554,Lidy Hot Springs,Dubois,Hotspring,124,51'; - put '44.054,-115.907,Hot Spring Campground,Challis,Hotspring,124,51'; - put '42.032,-115.363,Murphy Hot Springs,Twin Falls,Hotspring,126,52'; - put '43.561,-114.415,Clarendon Hot Springs,Hailey,Hotspring,126,52'; - put '43.423,-114.627,Elk Creek Hot Spring,Hailey,Hotspring,126,52'; - put '43.553,-115.267,Paradise Hot Springs,Hailey,Hotspring,126,52'; - put '42.308,-111.707,Maple Grove Hot Springs,Preston,Hotspring,172,78'; - put '45.013,-113.605,Sharkey Hot Spring,Dillon,Hotspring,126,52'; - put '44.73,-114.993,Sunflower Hot Springs,Challis,Hotspring,149,65'; - put '43.974,-114.499,Lower Bowery Hot Spring,Hailey,Hotspring,129,54'; - put '43.724,-115.604,Loftus Hot Spring,Hailey,Hotspring,129,54'; - put '44.676,-115.943,Gold Fork Hot Spring,Challis,Hotspring,127,53'; - put '44.044,-115.851,Donlay Ranch Hot Spring,Challis,Hotspring,131,55'; - put '44.264,-114.818,Basin Creek Hot Spring,Challis,Hotspring,133,56'; - put '44.652,-114.734,Owen Cabin Hot Spring,Challis,Hotspring,133,56'; - put '43.605,-115.664,Rattlesnake Hot Spring,Hailey,Hotspring,133,56'; - put '43.605,-114.948,Lightfoot Hot Springs,Hailey,Hotspring,133,56'; - put '45.788,-115.198,Red River Hot Springs,Elk City,Hotspring,131,55'; - put '44.632,-115.697,South Fork Plunge,Challis,Hotspring,129,54'; - put '44.853,-116.442,Starkey Hot Springs,Baker,Hotspring,131,55'; - put '42.692,-114.859,Hot Sulphur (Miracle Hot) Springs,Twin Falls,Hotspring,131,55'; - put '44.045,-115.842,Corder Hot Spring,Challis,Hotspring,131,55'; - put '44.247,-114.676,Robinson Bar Hot Springs,Challis,Hotspring,131,55'; - put '44.785,-114.855,Cox Hot Springs,Challis,Hotspring,131,55'; - put '43.637,-115.13,Willow Creek Hot Spring,Hailey,Hotspring,131,55'; - put '43.803,-115.401,Granite Creek Hot Spring,Hailey,Hotspring,131,55'; - put '43.129,-115.34,Coyote Hot Spring,Hailey,Hotspring,135,57'; - put '44.211,-116.71,Cove Creek Hot Spring,Baker,Hotspring,131,55'; - put '44.16,-115.167,Grandjean Hot Spring,Challis,Hotspring,H,H'; - put '43.755,-115.571,Ninemeyer Hot Springs,Hailey,Hotspring,169,76'; - put '43.701,-114.738,Big Smokey Hot Spring,Hailey,Hotspring,H,H'; - put '43.831,-115.192,Queens River Hot Spring,Hailey,Hotspring,H,H'; - put '43.817,-115.046,Leggit Creek Hot Spring,Hailey,Hotspring,H,H'; - put '43.718,-115.563,Basset Hot Spring,Hailey,Hotspring,H,H'; - put '43.588,-115.988,Mores Creek Hot Spring,Hailey,Hotspring,H,H'; - put '44.951,-114.704,Mormon Ranch Warm Spring,Challis,Hotspring,H,H'; - put '44.896,-114.563,Forge Creek Hot Springs,Challis,Hotspring,H,H'; - put '44.77,-115.663,Billy Hot Spring,Challis,Hotspring,H,H'; - put '44.628,-115.197,Sheepeater Hot Springs,Challis,Hotspring,H,H'; - put '44.585,-115.072,Sulphur Creek Hot Spring,Challis,Hotspring,H,H'; - put '44.554,-115.301,Sulphur Creek Hot Spring,Challis,Hotspring,H,H'; - put '42.107,-113.39,Blm Well (Frazier Hot Spring),Pocatello,Hotspring,203,95'; - put '44.4,-115.82,Goat Hot Springs,Challis,Hotspring,H,H'; - put '45.307,-114.338,Big Creek Hot Springs,Elk City,Hotspring,199,93'; - put '44.583,-116.112,Cascade Reservoir Hot Spring,Baker,Hotspring,H,H'; - put '45.17,-115.807,Secesh Hot Spring,Elk City,Hotspring,H,H'; - put '46.235,-114.707,Prospector Hot Springs,Hamilton,Hotspring,H,H'; - put '46.138,-115.09,Stuart Hot Springs,Hamilton,Hotspring,H,H'; - put '46.006,-115.021,Marten Hot Springs,Hamilton,Hotspring,H,H'; - put '42.374,-111.726,Mound Valley Warm Spring,Preston,Hotspring,W,W'; - put '43.255,-114.829,Mormon Reservoir Warm Spring,Hailey,Hotspring,W,W'; - put '44.639,-115.671,Warm Lake Springs,Challis,Hotspring,W,W'; - put '44.445,-115.239,Bear Valley Hot Spring,Challis,Hotspring,W,W'; - put '44.354,-117.071,Old Homestead Warm Spring,Baker,Hotspring,W,W'; - put '43.327,-113.918,Condie Hot Springs,Idaho Falls,Hotspring,124,51'; - put '43.038,-112.004,Alkali Flats Warm Spring,Idaho Falls,Hotspring,93,34'; - put '44.43,-115.762,Bull Creek Hot Springs,Challis,Hotspring,H,H'; - put '42.119,-111.928,Squaw Hot Springs,Preston,Hotspring,163,73'; - put '42.333,-111.716,Cleveland Hot Springs,Preston,Hotspring,151,66'; - put '43.671,-115.696,Twin Springs,Hailey,Hotspring,151,66'; - put '43.951,-116.353,Roystone Hot Springs,Boise,Hotspring,151,66'; - put '42.704,-114.856,Salmon Falls Hot Spring,Twin Falls,Hotspring,153,67'; - put '44.16,-115.177,Sacajawea Hot Springs,Challis,Hotspring,153,67'; - put '43.738,-115.583,Vaughn Hot Spring,Hailey,Hotspring,154,68'; - put '44.669,-116.305,Council Mtn Hot Springs,Baker,Hotspring,154,68'; - put '44.831,-115.215,Kwiskwis Hot Spring,Challis,Hotspring,156,69'; - put '43.684,-114.41,Guyer Hot Springs,Hailey,Hotspring,158,70'; - put '43.155,-115.518,Hot Springs,Hailey,Hotspring,158,70'; - put '44.586,-116.63,Lakey Hot Spring,Baker,Hotspring,158,70'; - put '42.333,-115.65,Indian Hot Springs,Twin Falls,Hotspring,160,71'; - put '42.637,-114.892,Poison Springs,Twin Falls,Hotspring,H,H'; - put '44.813,-115.123,Middle Fork Indian Creek Hot Sprin,Challis,Hotspring,162,72'; - put '44.072,-115.543,Kirkham Hot Springs,Challis,Hotspring,149,65'; - put '43.328,-114.399,Magic Hot Springs,Hailey,Hotspring,163,73'; - put '43.293,-114.908,Barrons Hot Spring,Hailey,Hotspring,167,75'; - put '44.154,-115.993,Warm Springs Creek Hot Springs,Challis,Hotspring,167,75'; - put '44.268,-114.748,Sunbeam Hot Springs,Challis,Hotspring,169,76'; - put '44.092,-116.052,Deer Hot Springs,Baker,Hotspring,176,80'; - put '43.563,-114.798,Worswick Hot Springs,Hailey,Hotspring,180,82'; - put '42.133,-111.928,Battle Creek Hot Springs,Preston,Hotspring,183,84'; - put '44.364,-115.856,Boiling Springs,Challis,Hotspring,185,85'; - put '44.157,-115.314,Bonneville Hot Springs,Challis,Hotspring,185,85'; - put '44.799,-115.129,Indian Creek Hot Spring,Challis,Hotspring,190,88'; - put '44.568,-115.695,Vulcan Hot Springs,Challis,Hotspring,190,88'; - put '44.306,-116.745,Crane Creek Hot Springs,Baker,Hotspring,198,92'; - put '44.416,-116.031,Cabarton Hot Spring,Baker,Hotspring,160,71'; - put '42.781,-111.983,Portneuf River Warm Spring,Preston,Hotspring,93,34'; - put '44.621,-115.985,Badley Warm Spring,Challis,Hotspring,100,38'; - put '45.201,-116.312,Boulder Creek Spring,Grangeville,Hotspring,82,28'; - put '42.24,-113.588,Sears Spring,Pocatello,Hotspring,84,29'; - put '44.257,-112.639,Warm Springs,Dubois,Hotspring,84,29'; - put '42.911,-111.556,Henry Warm Spring,Preston,Hotspring,86,30'; - put '43.021,-111.695,Wilson Lake Warm Spring,Driggs,Hotspring,86,30'; - put '44.495,-116.732,Keithly Warm Spring,Baker,Hotspring,86,30'; - put '42.655,-111.643,Steamboat Hot Spring,Preston,Hotspring,88,31'; - put '45.152,-116.296,Stinky Warm Spring,Grangeville,Hotspring,88,31'; - put '42.725,-112.872,Indian Springs,Pocatello,Hotspring,90,32'; - put '43.114,-112.167,Yandell Springs,Idaho Falls,Hotspring,90,32'; - put '44.64,-116.045,Arling Hot Spring,Baker,Hotspring,90,32'; - put '42.657,-111.604,Soda Springs,Preston,Hotspring,82,28'; - put '45.07,-115.826,Lick Creek Warm Spring,Elk City,Hotspring,91,33'; - put '42.337,-111.726,Treasureton Hot Springs,Preston,Hotspring,95,35'; - put '44.382,-114.088,Little Antelope Flat Warm Spring,Challis,Hotspring,93,34'; - put '43.21,-111.495,Brockman Creek Hot Spring,Driggs,Hotspring,95,35'; - put '44.398,-115.149,Cape Horn Warm Springs,Challis,Hotspring,95,35'; - put '42.337,-114.509,Nat-Soo-Pah Warm Spring,Twin Falls,Hotspring,97,36'; - put '44.9,-115.505,Hot Creek Warm Spring,Challis,Hotspring,97,36'; - put '42.405,-114.142,Artesian City Hot Springs,Twin Falls,Hotspring,99,37'; - put '42.762,-115.739,Indian Bathtub Hot Springs,Twin Falls,Hotspring,99,37'; - put '43.227,-111.109,Alpine Warm Spring,Driggs,Hotspring,99,37'; - put '42.545,-112.906,Rockland Warm Springs,Pocatello,Hotspring,100,38'; - put '43.805,-114.585,Russian John Hot Spring,Hailey,Hotspring,100,38'; - put '43.779,-114.539,Easley Hot Springs,Hailey,Hotspring,100,38'; - put '44.26,-114.838,Mormon Bend Hot Spring,Challis,Hotspring,100,38'; - put '44.64,-113.504,Big Eightmile Creek Warm Spring,Dubois,Hotspring,91,33'; - put '42.339,-112.436,Kent Warm Spring,Pocatello,Hotspring,75,24'; - put '42.957,-112.458,Tadpole Warm Spring,Pocatello,Hotspring,68,20'; - put '43.607,-111.189,Taylor Springs,Driggs,Hotspring,68,20'; - put '43.972,-116.325,Sweet Warm Spring,Boise,Hotspring,68,20'; - put '44.717,-115.703,Dollar Creek Warm Spring,Challis,Hotspring,68,20'; - put '42.625,-113.107,Lake Walcott Hot Spring,Pocatello,Hotspring,70,21'; - put '42.015,-114.237,Thoroughbred Warm Springs,Twin Falls,Hotspring,69,21'; - put '42.928,-111.592,Blackfoot Reservoir Warm Spring,Preston,Hotspring,72,22'; - put '42.286,-113.446,"Rice Spring, Ward Spring",Pocatello,Hotspring,72,22'; - put '42.085,-113.564,Grape Creek Warm Spring,Pocatello,Hotspring,72,22'; - put '43.66,-111.715,Elkhorn Warm Spring,Driggs,Hotspring,72,22'; - put '43.367,-113.884,Rush Warm Spring,Idaho Falls,Hotspring,72,22'; - put '44.306,-117.042,Weiser Warm Springs,Baker,Hotspring,72,22'; - put '45.344,-114.463,Owl Creek Hot Springs,Elk City,Hotspring,122,50'; - put '44.454,-112.696,Big Spring,Dubois,Hotspring,73,23'; - put '44.269,-113.449,Barney Hot Springs,Dubois,Hotspring,82,28'; - put '43.5,-115.308,Towne Creek Warm Spring,Hailey,Hotspring,75,24'; - put '43.161,-116.332,Thomas Flats Warm Spring,Boise,Hotspring,75,24'; - put '44.612,-113.363,Whittaker Warm Springs,Dubois,Hotspring,75,24'; - put '42.173,-112.239,Malad Warm Spring,Pocatello,Hotspring,77,25'; - put '42.156,-112.348,Pleasantview Warm Springs,Pocatello,Hotspring,77,25'; - put '42.025,-112.226,Prices Warm Spring,Pocatello,Hotspring,77,25'; - put '42.865,-116.368,Lower Birch Spring,Jordan Valley,Hotspring,77,25'; - put '43.423,-111.414,Fall Creek Mineral Springs,Driggs,Hotspring,77,25'; - put '42.986,-111.743,Blackfoot River Warm Spring,Preston,Hotspring,79,26'; - put '42.426,-111.378,Pescadero Warm Spring,Preston,Hotspring,79,26'; - put '44.091,-111.458,Ashton Warm Spring,Ashton,Hotspring,79,26'; - put '42.056,-112.246,Woodruff Hot Spring,Pocatello,Hotspring,81,27'; - put '43.831,-116.396,Highland Land Co Warm Spring,Boise,Hotspring,73,23'; - put '44.847,-115.696,Holdover Hot Spring,Challis,Hotspring,117,47'; - put '43.047,-114.929,Hot Sulphur Lake,Hailey,Hotspring,81,27'; - put '43.603,-115.07,Baumgartner Hot Spring,Hailey,Hotspring,111,44'; - put '44.465,-116.037,Belvidere Hot Spring,Baker,Hotspring,111,44'; - put '42.621,-112.008,Lava Hot Springs,Pocatello,Hotspring,113,45'; - put '43.823,-115.327,Weatherby Hot Spring,Hailey,Hotspring,113,45'; - put '43.335,-115.044,Wolf Hot Spring,Hailey,Hotspring,113,45'; - put '44.905,-113.929,Goldbug Hot Spring,Dubois,Hotspring,113,45'; - put '45.095,-113.836,Salmon Hot Spring,Dillon,Hotspring,113,45'; - put '45.277,-115.912,Burgdorf Hot Springs,Elk City,Hotspring,113,45'; - put '44.836,-114.79,Hospital Hot Spring,Challis,Hotspring,115,46'; - put '44.72,-114.016,Cronks Canyon Hot Spring,Challis,Hotspring,115,46'; - put '44.721,-115.207,Pistol Creek Hot Springs,Challis,Hotspring,115,46'; - put '43.791,-111.435,Pincock (Green Canyon) Hot Springs,Driggs,Hotspring,111,44'; - put '43.414,-116.707,Givens Hot Springs,Boise,Hotspring,117,47'; - put '45.503,-114.463,Horse Creek Hot Springs,Elk City,Hotspring,109,43'; - put '46.464,-115.035,Weir Creek Hot Springs,Hamilton,Hotspring,117,47'; - put '42.115,-111.264,Bear Lake Hot Springs,Preston,Hotspring,118,48'; - put '42.173,-113.861,Oakley Hot Spring,Pocatello,Hotspring,118,48'; - put '46.463,-114.872,Jerry Johnson Hot Springs,Hamilton,Hotspring,118,48'; - put '43.644,-111.687,Heise Hot Springs,Driggs,Hotspring,120,49'; - put '44.799,-114.806,Lower Loon Creek Hot Spring,Challis,Hotspring,120,49'; - put '44.253,-115.891,Rocky Canyon Hot Springs,Challis,Hotspring,120,49'; - put '46.316,-115.258,Stanley Hot Springs,Hamilton,Hotspring,120,49'; - put '43.779,-115.486,Brown Creek Hot Spring,Hailey,Hotspring,122,50'; - put '44.628,-114.601,Shower Bath Springs,Challis,Hotspring,122,50'; - put '44.171,-114.624,Slate Creek Hot Spring,Challis,Hotspring,122,50'; - put '44.392,-115.834,Ground Hog Hot Springs,Challis,Hotspring,100,38'; - put '42.797,-115.723,"Bat Hot Spring, Pence Hot Spring",Twin Falls,Hotspring,117,47'; - put '42.767,-115.725,Lower Indian Bathtub Hot Springs,Twin Falls,Hotspring,108,42'; - put '42.102,-113.632,Durfee Spring,Pocatello,Hotspring,102,39'; - put '44.33,-115.802,Silver Creek Hot Spring,Challis,Hotspring,102,39'; - put '42.447,-113.523,Marsh Creek Hot Spring,Pocatello,Hotspring,104,40'; - put '42.449,-113.511,Marsh Gully Hot Springs,Pocatello,Hotspring,106,41'; - put '42.798,-115.742,Bruneau Hot Spring,Twin Falls,Hotspring,106,41'; - put '43.576,-114.83,Preis Hot Spring,Hailey,Hotspring,106,41'; - put '43.677,-116.208,Terteling Hot Springs,Boise,Hotspring,106,41'; - put '44.254,-114.443,Sullivan Hot Springs,Challis,Hotspring,106,41'; - put '44.224,-114.929,Stanley Hot Spring,Challis,Hotspring,106,41'; - put '44.101,-114.865,Rosalys Warm Spring,Challis,Hotspring,106,41'; - put '44.06,-115.819,Danskin Creek Hot Spring,Challis,Hotspring,106,41'; - put '45.852,-114.937,Running Warm Springs,Elk City,Hotspring,106,41'; - put '43.363,-113.779,Milford Sweat Hot Spring,Idaho Falls,Hotspring,111,44'; - put '46.466,-114.939,Colgate Warm Springs,Hamilton,Hotspring,106,41'; - put '44.626,-115.749,Trail Creek Hot Spring,Challis,Hotspring,122,50'; - put '43.816,-115.863,Warm Springs,Hailey,Hotspring,108,42'; - put '43.76,-115.56,Pool Creek Hot Spring,Hailey,Hotspring,108,42'; - put '45.042,-114.616,Snowshoe Johnsons Hot Spring,Elk City,Hotspring,108,42'; - put '42.388,-112.085,Downata Hot Springs,Pocatello,Hotspring,109,43'; - put '42.013,-114.504,Magic Hot Springs,Twin Falls,Hotspring,109,43'; - put '42.779,-115.715,Buckaroo Hot Spring,Twin Falls,Hotspring,109,43'; - put '43.99,-114.8,Pierson Hot Springs,Hailey,Hotspring,109,43'; - put '43.038,-114.988,Tschanne Hot Spring,Hailey,Hotspring,109,43'; - put '44.523,-114.173,Beardsley Hot Springs,Challis,Hotspring,109,43'; - put '44.733,-115.018,Sunflower Flat Hot Spring,Challis,Hotspring,109,43'; - put '44.516,-115.295,Dagger Creek Hot Spring,Challis,Hotspring,110,43'; - put '44.971,-116.203,Krigbaum Hot Springs,Baker,Hotspring,109,43'; - put '45.416,-116.172,Riggins Hot Springs,Grangeville,Hotspring,106,41'; - put '42.735,-73.2,Sand Spring,Albany,Hotspring,75,24'; - put '46.106,-114.004,Sleeping Child Hot Springs,Hamilton,Hotspring,122,50'; - put '45.697,-114.365,Blue Joint Hot Springs 2,Elk City,Hotspring,84,29'; - put '44.769,-111.649,Sloan Cow Camp Spring,Ashton,Hotspring,86,30'; - put '47.632,-112.855,Medicine (Sun River) Springs,Choteau,Hotspring,86,30'; - put '45.75,-113.938,Gallogly Spring,Dillon,Hotspring,100,38'; - put '47.33,-114.789,Quinns Hot Springs,Wallace,Hotspring,109,43'; - put '45.171,-112.153,Puller Hot Springs,Dillon,Hotspring,111,44'; - put '46.728,-114.533,"Lolo Hot Springs, Granite Springs",Hamilton,Hotspring,111,44'; - put '45.337,-110.691,Chico Hot Springs,Bozeman,Hotspring,113,45'; - put '47.607,-114.663,Camas Hot Springs,Wallace,Hotspring,113,45'; - put '45.841,-114.038,Medicine Hot Springs,Elk City,Hotspring,117,47'; - put '45.458,-113.109,Elkhorn Hot Springs,Dillon,Hotspring,118,48'; - put '45.027,-112.844,Mcmenomey Ranch Spring,Dillon,Hotspring,68,20'; - put '45.792,-112.126,Renova Hot Springs,Dillon,Hotspring,122,50'; - put '44.701,-111.878,Staudenmeyer Springs,Ashton,Hotspring,82,28'; - put '45.602,-111.9,Potosi Warm Springs,Bozeman,Hotspring,124,51'; - put '45.575,-111.683,Norris Hot Springs,Bozeman,Hotspring,127,53'; - put '45.462,-112.475,New Biltmore Hot Springs,Dillon,Hotspring,127,53'; - put '45.66,-111.186,Bozeman Hot Springs,Bozeman,Hotspring,131,55'; - put '45.896,-112.233,Pipestone Hot Springs,Dillon,Hotspring,135,57'; - put '46.547,-110.903,White Sulphur Springs,White Sulphur,Hotspring,136,58'; - put '46.448,-111.982,Alhambra Hot Springs,White Sulphur,Hotspring,138,59'; - put '45.757,-110.256,Hunters Hot Springs,Bozeman,Hotspring,140,60'; - put '45.368,-113.403,Jardine Hot Spring,Dillon,Hotspring,140,60'; - put '46.596,-112.108,Broadwater (Helena) Hot Springs,Butte,Hotspring,151,66'; - put '44.984,-111.613,Wolf Creek Hot Springs,Ashton,Hotspring,154,68'; - put '45.685,-112.295,Silver Star Hot Springs,Dillon,Hotspring,163,73'; - put '45.59,-111.899,Potosi Hot Springs,Bozeman,Hotspring,122,50'; - put '45.105,-112.751,Browns Springs,Dillon,Hotspring,75,24'; - put '46.718,-113.306,Bearmouth Warm Spring 2,Butte,Hotspring,68,20'; - put '46.717,-113.32,Bearmouth Warm Spring 1,Butte,Hotspring,68,20'; - put '47.217,-109.471,Brooks Warm Spring,Lewistown,Hotspring,68,20'; - put '45.708,-110.976,Bridger Canyon Warm Spring,Bozeman,Hotspring,70,21'; - put '46.795,-108.883,Durfee Creek Springs,Roundup,Hotspring,70,21'; - put '46.704,-113.452,Nimrod Springs,Butte,Hotspring,70,21'; - put '47.876,-108.656,Landusky Springs,Lewistown,Hotspring,70,21'; - put '45.032,-110.667,Bear Creek Springs,Bozeman,Hotspring,72,22'; - put '45.111,-112.714,Lovells Hot Spring,Dillon,Hotspring,72,22'; - put '46.106,-112.903,Anaconda Hot Springs,Butte,Hotspring,72,22'; - put '45.235,-112.135,Trudau Warm Springs,Dillon,Hotspring,73,23'; - put '45.698,-114.382,Blue Joint Hot Spring 1,Elk City,Hotspring,84,29'; - put '45.037,-111.953,Vigilante Spring,Bozeman,Hotspring,75,24'; - put '45.608,-110.571,Carter Bridge Warm Springs,Bozeman,Hotspring,82,28'; - put '46.355,-111.565,Bedford Hot Springs,White Sulphur,Hotspring,74,24'; - put '45.553,-110.142,Anderson Springs,Bozeman,Hotspring,77,25'; - put '45.42,-112.692,Apex Warm Spring,Dillon,Hotspring,77,25'; - put '46.607,-112.776,Garrison Warm Springs,Butte,Hotspring,77,25'; - put '47.843,-108.598,The (Landusky) Plunge,Lewistown,Hotspring,77,25'; - put '44.785,-111.649,West Fork Swimming Hole,Ashton,Hotspring,79,26'; - put '46.61,-112.555,Avon Warm Spring,Butte,Hotspring,79,26'; - put '46.334,-112.886,Deerlodge Prison Ranch Springs,Butte,Hotspring,79,26'; - put '47.994,-108.445,Lodgepole (Big Warm) Springs,Lewistown,Hotspring,79,26'; - put '47.451,-114.648,Green Springs,Wallace,Hotspring,79,26'; - put '45.392,-112.452,Beaverhead Rock Spring,Dillon,Hotspring,81,27'; - put '44.704,-111.892,Andersons Pasture Springs,Ashton,Hotspring,82,28'; - put '47.971,-108.395,Little Warm Springs,Lewistown,Hotspring,73,23'; - put '46.198,-112.094,Boulder Hot Springs,Butte,Hotspring,169,76'; - put '46.178,-112.794,Warm Springs (State Hospital),Butte,Hotspring,172,78'; - put '45.367,-111.726,Ennis Hot Springs,Bozeman,Hotspring,181,83'; - put '46.044,-112.811,Gregson Hot Springs,Butte,Hotspring,158,70'; - put '45.09,-110.774,Laduke (Corwin) Hot Spring,Bozeman,Hotspring,154,68'; - put '35.897,-82.826,Hot Springs,Knoxville,Hotspring,108,42'; - put '32.644,-108.128,Apache Tejo Warm Spring,Silver City,Hotspring,97,36'; - put '33.135,-107.254,Truth Or Consequences,Tularosa,Hotspring,113,45'; - put '36.305,-106.053,Ojo Caliente (Arsenic Spring),Aztec,Hotspring,111,44'; - put '33.162,-108.209,Spring (Hot),Clifton,Hotspring,111,44'; - put '36.508,-105.722,Manby Hot Springs,Raton,Hotspring,100,38'; - put '35.849,-106.629,Spence Hot Springs,Albuquerque,Hotspring,100,38'; - put '35.972,-106.56,San Antonio Warm Spring,Albuquerque,Hotspring,101,38'; - put '35.82,-106.627,Mccauley Hot Springs,Albuquerque,Hotspring,99,37'; - put '35.793,-106.685,Soda Dam Hot Springs,Albuquerque,Hotspring,117,47'; - put '33.831,-108.8,(Upper) Frisco Hot Spring,Clifton,Hotspring,98,37'; - put '35.646,-106.888,Warm Springs,Albuquerque,Hotspring,129,54'; - put '36.324,-105.606,Ponce De Leon Springs,Raton,Hotspring,93,34'; - put '34.038,-106.94,"Socorro Spring, Sedillo Spring",Socorro,Hotspring,93,34'; - put '33.293,-108.282,"Spring Mfg Two, Spring Mfg Three",Clifton,Hotspring,99,37'; - put '35.592,-106.753,Indian Springs,Albuquerque,Hotspring,123,51'; - put '32.501,-106.926,Radium Springs,Las Cruces,Hotspring,127,53'; - put '33.274,-108.25,Spring Mfg Four,Clifton,Hotspring,93,34'; - put '35.938,-106.646,San Antonio Hot Spring,Albuquerque,Hotspring,129,54'; - put '33.244,-108.88,San Francisco Hot Springs,Clifton,Hotspring,120,49'; - put '32.748,-107.836,Mimbres Hot Springs,Las Cruces,Hotspring,136,58'; - put '35.653,-105.29,Montezuma Hot Springs,Santa Fe,Hotspring,138,59'; - put '33.233,-108.235,Spring (Hot),Clifton,Hotspring,149,65'; - put '33.199,-108.209,Gila Hot Springs,Clifton,Hotspring,151,66'; - put '33.108,-108.483,Turkey Creek Hot Spring,Clifton,Hotspring,165,74'; - put '35.772,-106.69,Jemez Springs,Albuquerque,Hotspring,169,76'; - put '35.908,-106.615,Sulphur Springs,Albuquerque,Hotspring,189,87'; - put '33.237,-108.88,Hot Springs,Clifton,Hotspring,H,H'; - put '32.562,-108.027,Kennecott Warm Springs,Silver City,Hotspring,W,W'; - put '32.554,-107.994,Faywood Hot Springs,Las Cruces,Hotspring,129,54'; - put '33.898,-108.501,Aragon Springs,Clifton,Hotspring,70,21'; - put '34.847,-107.091,Spring (Salt),Socorro,Hotspring,76,24'; - put '34.903,-107.085,El Ojo Escondido,Socorro,Hotspring,73,23'; - put '35.06,-107.133,Alamos Spring,Albuquerque,Hotspring,72,22'; - put '34.912,-108.951,Rainbow Spring,Saint Johns,Hotspring,71,22'; - put '34.698,-107.129,Spring,Socorro,Hotspring,71,22'; - put '32.455,-104.489,Indian Big Spring,Carlsbad,Hotspring,79,26'; - put '34.995,-106.454,Clear Water Spring,Socorro,Hotspring,69,21'; - put '32.821,-108.408,Ash Spring,Silver City,Hotspring,72,22'; - put '32.83,-109.047,Goat Camp Spring,Silver City,Hotspring,69,21'; - put '35.548,-106.827,San Ysidro Warm Springs,Albuquerque,Hotspring,68,20'; - put '34.116,-106.98,Ojitos Springs,Socorro,Hotspring,68,20'; - put '32.248,-104.411,Mosley Spring,Carlsbad,Hotspring,68,20'; - put '33.708,-109.025,Frieborn Canyon Spring,Clifton,Hotspring,92,33'; - put '33.192,-108.18,Lyons Hunting Lodge Hot Springs,Clifton,Hotspring,126,52'; - put '35.601,-106.86,Phillips Springs,Albuquerque,Hotspring,70,21'; - put '33.285,-108.262,Spring Mfg One,Clifton,Hotspring,88,31'; - put '33.306,-108.324,The Meadows Warm Spring,Clifton,Hotspring,91,33'; - put '34.049,-106.939,Cook Spring,Socorro,Hotspring,70,21'; - put '32.795,-107.276,Derry Warm Springs,Las Cruces,Hotspring,92,33'; - put '32.884,-108.358,Allen Springs,Silver City,Hotspring,78,26'; - put '33.279,-107.563,Warm Springs,Tularosa,Hotspring,87,31'; - put '32.606,-107.19,Souse Springs,Las Cruces,Hotspring,88,31'; - put '34.808,-107.091,Spring (Salt),Socorro,Hotspring,86,30'; - put '35.54,-106.854,San Ysidro Hot Springs,Albuquerque,Hotspring,85,29'; - put '36.368,-106.059,Statue Spring,Aztec,Hotspring,83,28'; - put '34.833,-107.091,Laguna Pueblo Seeps,Socorro,Hotspring,82,28'; - put '33.572,-107.593,Ojo Caliente,Tularosa,Hotspring,83,28'; - put '34.854,-107.088,Laguna Pueblo Springs,Socorro,Hotspring,80,27'; - put '32.843,-108.512,Mangas Springs,Silver City,Hotspring,81,27'; - put '34.769,-107.085,Spring (Salt),Socorro,Hotspring,78,26'; - put '34.032,-106.777,Ojo De Las Canas,Socorro,Hotspring,79,26'; - put '40.972,-119.007,Black Rock Hot Spring,Lovelock,Hotspring,136,58'; - put '38.899,-119.41,Nevada (Hinds) Hot Springs,Walker Lake,Hotspring,144,62'; - put '38.922,-118.198,Wedell Hot Springs,Walker Lake,Hotspring,144,62'; - put '41.183,-114.991,Hot Springs,Wells,Hotspring,142,61'; - put '38.437,-116.277,Hot Creek Valley Spring,Tonopah,Hotspring,142,61'; - put '41.788,-114.735,Mineral Hot Spring,Wells,Hotspring,140,60'; - put '37.825,-117.337,Alkali Hot Spring,Goldfield,Hotspring,140,60'; - put '41.412,-114.675,Wine Cup Ranch Springs,Wells,Hotspring,138,59'; - put '40.404,-116.517,Crescent Valley Hot Springs,Winnemucca,Hotspring,138,59'; - put '40.417,-116.507,Crescent Valley Hot Springs,Winnemucca,Hotspring,138,59'; - put '40.603,-116.463,Horseshoe Ranch Springs,Winnemucca,Hotspring,136,58'; - put '41.378,-119.182,Springs (Hot),Vya,Hotspring,136,58'; - put '39.883,-114.893,Cherry Creek Hot Springs,Ely,Hotspring,144,62'; - put '40.922,-117.108,Hot Pot (Blossom Hot Springs),Winnemucca,Hotspring,136,58'; - put '41.721,-118.505,Howard Hot Spring,Vya,Hotspring,135,57'; - put '41.421,-117.388,The Hot Springs,Mcdermitt,Hotspring,135,57'; - put '40.418,-117.415,Buffalo Springs,Winnemucca,Hotspring,162,72'; - put '39.031,-116.666,Dianas Punch Bowl,Millett,Hotspring,138,59'; - put '39.404,-116.347,Klobe (Bartholomae) Hot Spring,Millett,Hotspring,156,69'; - put '36.975,-116.721,Hicks Hot Springs,Death Valley,Hotspring,109,43'; - put '40.178,-117.496,Home Station Ranch Hot Spring,Winnemucca,Hotspring,135,57'; - put '39.797,-118.067,Dixie Hot Springs,Reno,Hotspring,162,72'; - put '39.904,-116.588,Walti Hot Springs,Millett,Hotspring,162,72'; - put '38.981,-119.833,Walleys Hot Springs,Walker Lake,Hotspring,160,71'; - put '38.464,-115.792,Chimney Warm Spring,Lund,Hotspring,160,71'; - put '39.328,-116.858,Spencer Hot Springs,Millett,Hotspring,162,72'; - put '41.108,-117.578,Hot Springs,Mcdermitt,Hotspring,158,70'; - put '36.002,-114.742,Spring,Las Vegas,Hotspring,145,63'; - put '41.576,-115.181,Hot Creek Springs,Wells,Hotspring,151,66'; - put '40.954,-117.488,Golconda Hot Spring (South),Winnemucca,Hotspring,151,66'; - put '40.22,-116.068,Bruffeys Hot Springs,Winnemucca,Hotspring,149,65'; - put '40.249,-115.409,Smith Ranch Springs,Elko,Hotspring,149,65'; - put '41.867,-114.692,San Jacinto Ranch Spring,Wells,Hotspring,148,64'; - put '40.765,-116.04,Hot Sulphur Springs,Winnemucca,Hotspring,147,64'; - put '38.188,-116.373,Warm Springs,Tonopah,Hotspring,145,63'; - put '41.567,-118.564,Dyke Hot Springs,Vya,Hotspring,158,70'; - put '38.365,-115.867,Abel Spring,Lund,Hotspring,115,46'; - put '41.929,-114.071,Nile Spring,Wells,Hotspring,109,43'; - put '39.193,-119.752,Carson Hot Springs,Reno,Hotspring,120,49'; - put '39.512,-119.907,Lawton Hot Springs,Reno,Hotspring,120,49'; - put '39.944,-119.509,Anaho Island Spring,Reno,Hotspring,120,49'; - put '37.761,-117.632,Silverpeak Hot Spring,Goldfield,Hotspring,118,48'; - put '37.621,-114.51,Caliente Hot Springs,Caliente,Hotspring,118,48'; - put '39.058,-119.742,Saratoga Hot Spring,Reno,Hotspring,122,50'; - put '39.308,-117.552,Hot Springs,Millett,Hotspring,115,46'; - put '40.673,-116.838,Hot Springs,Winnemucca,Hotspring,122,50'; - put '39.08,-116.639,Potts Ranch Hot Springs,Millett,Hotspring,113,45'; - put '38.388,-115.866,Coyote Hole Spring,Lund,Hotspring,113,45'; - put '41.753,-118.841,Warm Springs,Vya,Hotspring,112,44'; - put '41.386,-114.165,Spring (Hot),Wells,Hotspring,111,44'; - put '40.961,-117.494,Golconda Hot Spring (North),Winnemucca,Hotspring,165,74'; - put '40.313,-117.07,Mound Springs,Winnemucca,Hotspring,109,43'; - put '40.585,-115.285,Sulphur Hot Springs,Elko,Hotspring,205,96'; - put '39.059,-119.815,Hobo Hot Springs,Reno,Hotspring,114,46'; - put '40.191,-117.107,Hot Springs,Winnemucca,Hotspring,127,53'; - put '40.819,-115.777,Hot Hole,Elko,Hotspring,133,56'; - put '39.286,-119.84,Bowers Mansion Hot Spring,Reno,Hotspring,133,56'; - put '41.809,-118.861,Painted Hills Mine,Vya,Hotspring,131,55'; - put '41.925,-118.805,Bog Hot Springs,Vya,Hotspring,131,55'; - put '41.647,-115.775,Wild Horse Hot Springs,Wells,Hotspring,129,54'; - put '40.183,-117.102,Hot Springs Ranch,Winnemucca,Hotspring,129,54'; - put '40.08,-117.604,Mccoy Springs,Winnemucca,Hotspring,120,49'; - put '41.353,-119.216,Spring (Hot),Vya,Hotspring,127,53'; - put '41.357,-119.188,Springs (Hot),Vya,Hotspring,133,56'; - put '40.198,-117.103,Hot Springs,Winnemucca,Hotspring,127,53'; - put '39.42,-119.738,Dimonte Spring,Reno,Hotspring,127,53'; - put '38.952,-115.23,Williams Hot Spring,Lund,Hotspring,127,53'; - put '41.261,-115.305,Hot Springs,Wells,Hotspring,126,52'; - put '39.041,-116.663,Hot Spring,Millett,Hotspring,124,51'; - put '41.365,-119.221,Spring (Hot),Vya,Hotspring,122,50'; - put '41.159,-114.986,"Threemile Spring, Sulphur Hot Spr",Wells,Hotspring,122,50'; - put '41.339,-119.192,Springs (Hot),Vya,Hotspring,127,53'; - put '39.893,-116.649,Little Hot Springs,Millett,Hotspring,H,H'; - put '39.787,-119.011,Bradys Hot Springs,Reno,Hotspring,209,98'; - put '41.175,-115.278,Hot Spring,Wells,Hotspring,H,H'; - put '41.145,-114.994,Hot Spring,Wells,Hotspring,H,H'; - put '40.864,-117.349,Sulphur Spring,Winnemucca,Hotspring,H,H'; - put '39.733,-119.039,Eagle Salt Works Spring,Reno,Hotspring,H,H'; - put '39.281,-118.42,Sand Springs,Reno,Hotspring,H,H'; - put '38.81,-116.397,Fish Springs,Tonopah,Hotspring,W,W'; - put '39.559,-117.427,Petersons Mill Hot Spring,Millett,Hotspring,H,H'; - put '38.339,-116.662,Warm Spring,Tonopah,Hotspring,W,W'; - put '38.859,-119.175,Hot Spring,Walker Lake,Hotspring,H,H'; - put '39.995,-117.854,Senator Fumaroles,Millett,Hotspring,B,B'; - put '39.565,-118.856,(Soda Lake Area),Reno,Hotspring,210,99'; - put '40.141,-119.687,The Needle Rocks Hot Springs,Lovelock,Hotspring,208,98'; - put '40.146,-119.673,The Needle Rocks Hot Spring,Lovelock,Hotspring,208,98'; - put '40.662,-119.365,Great Boiling Spring (Gerlach),Lovelock,Hotspring,208,98'; - put '39.388,-119.743,Steamboat Springs,Reno,Hotspring,205,96'; - put '39.866,-118.017,Dixie Comstock Mine,Reno,Hotspring,H,H'; - put '40.746,-116.689,White House Spring,Winnemucca,Hotspring,W,W'; - put '39.98,-119.502,Pyramid Island Hot Spring,Reno,Hotspring,.,.'; - put '41.934,-118.808,Warm Springs,Vya,Hotspring,W,W'; - put '41.385,-116.058,Petaini Springs,Mcdermitt,Hotspring,W,W'; - put '41.064,-115.389,Warm Springs,Wells,Hotspring,W,W'; - put '41.066,-114.99,Spring,Wells,Hotspring,W,W'; - put '41.355,-114.133,Warm Springs,Wells,Hotspring,W,W'; - put '41.148,-116.733,Hot Lake,Mcdermitt,Hotspring,H,H'; - put '40.684,-116.153,Ellison Ranch Warm Spring,Winnemucca,Hotspring,W,W'; - put '40.604,-117.648,Leach Hot Springs,Winnemucca,Hotspring,207,97'; - put '40.751,-115.035,Warm Springs,Elko,Hotspring,W,W'; - put '40.782,-115.363,Warm Spring,Elko,Hotspring,W,W'; - put '39.529,-116.388,Warm Spring,Millett,Hotspring,W,W'; - put '39.072,-115.635,Big Blue Spring,Ely,Hotspring,W,W'; - put '38.95,-119.388,Spring,Walker Lake,Hotspring,W,W'; - put '38.965,-118.689,Double Spring,Walker Lake,Hotspring,W,W'; - put '38.458,-117.303,Indian Springs,Tonopah,Hotspring,W,W'; - put '40.592,-116.157,Raine Ranch Springs,Winnemucca,Hotspring,W,W'; - put '39.941,-116.681,Hot Springs,Millett,Hotspring,180,82'; - put '40.567,-116.588,Beowawe Hot Springs (The Geysers),Winnemucca,Hotspring,208,98'; - put '40.761,-117.492,Hot Springs,Winnemucca,Hotspring,185,85'; - put '40.653,-119.378,Mud Springs,Lovelock,Hotspring,184,84'; - put '38.768,-119.174,Wilson Hot Spring,Walker Lake,Hotspring,183,84'; - put '41.921,-118.709,Baltazor Hot Spring,Vya,Hotspring,181,83'; - put '40.857,-119.328,Fly Ranch (Wards) Hot Springs,Lovelock,Hotspring,180,82'; - put '39.597,-119.11,Patua Hot Springs (Fernley),Reno,Hotspring,187,86'; - put '39.028,-117.136,Mcleod Ranch Hot Spring,Millett,Hotspring,180,82'; - put '40.316,-116.433,Hot Spring,Winnemucca,Hotspring,186,86'; - put '38.521,-116.365,Hot Creek Ranch Hot Spring,Tonopah,Hotspring,180,82'; - put '41.051,-119.028,Double Hot Springs,Vya,Hotspring,178,81'; - put '40.003,-117.718,Hyder Hot Springs,Winnemucca,Hotspring,176,80'; - put '39.665,-114.807,Monte Neva Hot Springs,Ely,Hotspring,176,80'; - put '40.368,-117.327,Buffalo Valley Hot Springs,Winnemucca,Hotspring,174,79'; - put '40.699,-116.133,Hot Springs (Carlin),Winnemucca,Hotspring,174,79'; - put '41.052,-118.717,Macfarlane Hot Spring,Vya,Hotspring,170,77'; - put '39.342,-118.578,Borax Spring,Reno,Hotspring,180,82'; - put '39.484,-119.804,Moana Springs,Reno,Hotspring,199,93'; - put '41.243,-114.947,Twelvemile Spring,Wells,Hotspring,102,39'; - put '39.38,-119.74,Steamboat Springs,Reno,Hotspring,205,96'; - put '39.558,-116.36,Bartine Hot Springs,Millett,Hotspring,108,42'; - put '39.954,-117.917,Fumaroles,Millett,Hotspring,204,96'; - put '40.389,-119.402,Hot Seeps (San Emidio Desert),Lovelock,Hotspring,203,95'; - put '38.822,-117.183,Darroughs Hot Springs,Tonopah,Hotspring,203,95'; - put '40.088,-117.725,Sou (Seven Devils) Hot Springs,Winnemucca,Hotspring,185,85'; - put '41.363,-118.788,Pinto Hot Springs,Vya,Hotspring,199,93'; - put '40.408,-117.883,Kyle Hot Springs,Winnemucca,Hotspring,171,77'; - put '41.357,-118.809,West Pinto Hot Spring,Vya,Hotspring,198,92'; - put '39.316,-117.549,Hot Springs,Millett,Hotspring,198,92'; - put '41.468,-116.15,Hot Sulphur Springs (Tuscarora),Mcdermitt,Hotspring,194,90'; - put '40.813,-115.778,Elko Hot Spring,Elko,Hotspring,190,88'; - put '39.208,-118.723,"Lee Hot Springs, Allen Springs",Reno,Hotspring,190,88'; - put '40.262,-119.379,Boiling Springs,Lovelock,Hotspring,187,86'; - put '40.77,-119.113,Butte Springs (Trego Hot Springs),Lovelock,Hotspring,187,86'; - put '39.161,-119.183,Wabuska Hot Springs,Reno,Hotspring,201,94'; - put '39.814,-115.612,Giocoecha Warm Springs,Ely,Hotspring,76,24'; - put '36.389,-114.433,Blue Point Spring,Las Vegas,Hotspring,82,28'; - put '37.016,-117.211,Seep,Goldfield,Hotspring,77,25'; - put '37.751,-116.274,Cedar Spring,Goldfield,Hotspring,77,25'; - put '37.896,-114.227,Flatnose Ranch Spring,Caliente,Hotspring,77,25'; - put '36.207,-115.983,Pahrump (Bennetts) Spring,Las Vegas,Hotspring,77,25'; - put '41.775,-115.921,Rizzi Ranch Hot Spring,Wells,Hotspring,106,41'; - put '35.944,-114.731,Hot Spring,Kingman,Hotspring,78,26'; - put '41.884,-114.117,Gambles Hole,Wells,Hotspring,104,40'; - put '36.565,-115.671,Indian Springs,Las Vegas,Hotspring,78,26'; - put '39.547,-114.915,Campbell Ranch Springs,Ely,Hotspring,76,24'; - put '38.423,-115.022,Flag Springs,Lund,Hotspring,75,24'; - put '38.44,-115.011,Butterfield Springs,Lund,Hotspring,75,24'; - put '37.997,-118.039,Fish Spring,Mariposa,Hotspring,75,24'; - put '37.029,-116.719,Springs,Goldfield,Hotspring,75,24'; - put '36.426,-116.411,Ash Tree Spring,Death Valley,Hotspring,75,24'; - put '36.033,-115.888,Browns Spring,Las Vegas,Hotspring,75,24'; - put '41.322,-119.206,Springs,Vya,Hotspring,75,24'; - put '41.706,-118.261,Ninemile Springs,Vya,Hotspring,79,26'; - put '35.964,-114.743,Hot Spring,Kingman,Hotspring,82,28'; - put '41.763,-118.279,Fivemile Spring,Vya,Hotspring,81,27'; - put '39.457,-119.722,Huffaker Springs,Reno,Hotspring,81,27'; - put '38.992,-117.042,Charnock (Big Blue) Springs,Tonopah,Hotspring,80,27'; - put '36.402,-116.302,Davis Ranch Springs,Death Valley,Hotspring,81,27'; - put '36.45,-116.313,Spring,Death Valley,Hotspring,81,27'; - put '39.792,-114.692,Lower Shellbourne Spring,Ely,Hotspring,77,25'; - put '41.338,-119.168,Springs,Vya,Hotspring,79,26'; - put '41.022,-119.275,Caine Spring,Vya,Hotspring,73,23'; - put '41.05,-117.1,Hot Springs Ranch Springs,Mcdermitt,Hotspring,79,26'; - put '40.079,-116.035,Flynn Ranch Springs,Winnemucca,Hotspring,78,26'; - put '40.325,-116.058,Hot Springs,Winnemucca,Hotspring,79,26'; - put '36.414,-116.292,Spring,Death Valley,Hotspring,79,26'; - put '36.173,-115.191,Las Vegas Springs,Las Vegas,Hotspring,79,26'; - put '36.174,-115.479,White Rock Spring,Las Vegas,Hotspring,78,26'; - put '36.565,-115.623,Spring,Las Vegas,Hotspring,79,26'; - put '36.491,-116.342,"Fairbanks Spring, Soda Spring",Death Valley,Hotspring,81,27'; - put '38.654,-114.633,Geyser Ranch Springs,Lund,Hotspring,70,21'; - put '36.363,-116.271,Bole Spring,Death Valley,Hotspring,72,22'; - put '36.999,-116.706,Spring,Death Valley,Hotspring,72,22'; - put '36.942,-115.425,Ash Creek Spring,Las Vegas,Hotspring,72,22'; - put '38.796,-119.65,Doud Springs,Walker Lake,Hotspring,70,21'; - put '38.622,-115.047,Emigrant Springs,Lund,Hotspring,70,21'; - put '38.927,-115.082,Preston Springs,Lund,Hotspring,70,21'; - put '36.147,-115.893,Manse Ranch Spring,Las Vegas,Hotspring,75,24'; - put '38.645,-114.632,Geyser Ranch Springs,Lund,Hotspring,70,21'; - put '38.574,-115.522,Tom Spring,Lund,Hotspring,72,22'; - put '38.671,-114.628,Geyser Ranch Springs,Lund,Hotspring,70,21'; - put '37.783,-114.528,Bennett Springs,Caliente,Hotspring,70,21'; - put '37.86,-114.321,Delmues Springs,Caliente,Hotspring,70,21'; - put '36.408,-116.313,Davis Ranch Spring,Death Valley,Hotspring,70,21'; - put '36.567,-114.446,Seep,Las Vegas,Hotspring,70,21'; - put '41.369,-114.187,Gamble Spring,Wells,Hotspring,69,20'; - put '39.901,-115.868,Thompson Ranch Spring,Ely,Hotspring,68,20'; - put '38.633,-114.638,Wambolt Springs,Lund,Hotspring,70,21'; - put '37.906,-118.171,Sand Spring,Mariposa,Hotspring,74,23'; - put '36.486,-114.329,Springs,Las Vegas,Hotspring,77,25'; - put '41.354,-119.116,Mustang Springs,Vya,Hotspring,73,23'; - put '41.746,-119.791,Warm Springs,Vya,Hotspring,73,23'; - put '41.258,-118.937,Cane Springs,Vya,Hotspring,74,23'; - put '40.103,-119.884,Fish Springs,Lovelock,Hotspring,73,23'; - put '39.853,-119.719,Spring,Reno,Hotspring,73,23'; - put '39.832,-116.069,Sulphur Spring,Millett,Hotspring,74,23'; - put '36.363,-116.263,Spring,Death Valley,Hotspring,72,22'; - put '38.554,-115.531,Kate Spring,Lund,Hotspring,73,23'; - put '37.074,-116.691,Spring,Goldfield,Hotspring,72,22'; - put '37.979,-117.993,Gap Spring,Goldfield,Hotspring,73,23'; - put '41.591,-119.862,Twin (Vya) Spring,Vya,Hotspring,71,22'; - put '40.763,-119.172,Coyote Spring,Lovelock,Hotspring,72,22'; - put '40.127,-116.884,Springs,Winnemucca,Hotspring,72,22'; - put '40.187,-116.805,Spring,Winnemucca,Hotspring,72,22'; - put '40.967,-114.515,Johnson Ranch Springs,Elko,Hotspring,72,22'; - put '36.205,-115.141,Kyle Spring,Las Vegas,Hotspring,75,24'; - put '39.8,-114.653,Upper Shellbourne Spring,Ely,Hotspring,74,23'; - put '36.428,-116.303,Button Springs,Death Valley,Hotspring,93,34'; - put '38.383,-115.153,Hot Creek Ranch Spring,Lund,Hotspring,90,32'; - put '39.283,-114.866,Lackawanna Hot Springs,Ely,Hotspring,95,35'; - put '38.532,-116.465,Upper Warm Spring,Tonopah,Hotspring,95,35'; - put '38.823,-116.717,South Mosquito Creek Ranch Springs,Tonopah,Hotspring,95,35'; - put '40.829,-117.306,Brooks Spring,Winnemucca,Hotspring,93,34'; - put '40.992,-117.763,Spring,Winnemucca,Hotspring,93,34'; - put '41.971,-114.574,Warm Springs,Wells,Hotspring,95,35'; - put '38.95,-115.7,Big Warm Spring,Lund,Hotspring,93,34'; - put '37.463,-115.192,Ash Springs,Caliente,Hotspring,97,36'; - put '36.464,-116.319,Parent Springs,Death Valley,Hotspring,93,34'; - put '38.352,-115.181,Moon River Spring,Lund,Hotspring,92,33'; - put '36.402,-116.274,"Point of Rocks Springs, King Sprin",Death Valley,Hotspring,91,33'; - put '36.421,-116.322,Crystal Pool,Death Valley,Hotspring,91,33'; - put '36.425,-116.291,Devils Hole,Death Valley,Hotspring,92,33'; - put '39.068,-119.786,Springs,Reno,Hotspring,90,32'; - put '38.954,-117.049,Big Blue (A) Spring,Tonopah,Hotspring,90,32'; - put '40.087,-114.647,Collar And Elbow Spring,Elko,Hotspring,93,34'; - put '36.378,-114.443,Rogers Spring,Las Vegas,Hotspring,82,28'; - put '39.943,-116.073,Shipley Hot Spring,Millett,Hotspring,106,41'; - put '38.698,-116.435,"Upper Warm Spring, Warm Spring",Tonopah,Hotspring,106,41'; - put '41.53,-118.57,Spring,Vya,Hotspring,104,40'; - put '41.877,-115.628,Rowland Hot Springs,Wells,Hotspring,104,40'; - put '40.035,-117.604,Lower Ranch Hot Springs,Winnemucca,Hotspring,104,40'; - put '40.187,-116.79,Chillis Hot Spring,Winnemucca,Hotspring,102,39'; - put '39.988,-116.044,Siri Ranch Spring,Millett,Hotspring,95,35'; - put '39.421,-119.758,Zolezzi Spring,Reno,Hotspring,102,39'; - put '38.531,-116.405,Old Dugan Ranch Hot Springs,Tonopah,Hotspring,102,39'; - put '36.968,-116.723,Burrell Hot Spring,Death Valley,Hotspring,102,39'; - put '38.343,-118.103,Soda Springs,Walker Lake,Hotspring,100,38'; - put '38.556,-115.767,"Lockes Big Spring, Hay Corral Spr",Lund,Hotspring,100,38'; - put '38.594,-115.138,Moorman Spring,Lund,Hotspring,100,38'; - put '38.398,-115.862,Storm Spring,Lund,Hotspring,99,37'; - put '41.19,-115.287,Hot Spring,Wells,Hotspring,97,36'; - put '37.822,-117.48,Pearl Hot Springs,Goldfield,Hotspring,97,36'; - put '39.159,-119.737,Nevada State Prison Spring,Reno,Hotspring,75,24'; - put '40.025,-117.646,Spring,Winnemucca,Hotspring,83,28'; - put '40.83,-119.538,Springs,Lovelock,Hotspring,84,29'; - put '39.442,-119.743,Double Diamond Spring,Reno,Hotspring,84,29'; - put '39.413,-114.779,Mcgill Spring,Ely,Hotspring,84,29'; - put '39.458,-114.756,Schoolhouse Spring,Ely,Hotspring,84,29'; - put '36.375,-116.274,Big (Ash Meadows) Spring,Death Valley,Hotspring,83,28'; - put '38.292,-114.272,Hammond Ranch Spring,Lund,Hotspring,84,29'; - put '41.398,-119.165,Spring,Vya,Hotspring,84,29'; - put '41.732,-119.785,Seeps (Hills Warm Spring),Vya,Hotspring,83,28'; - put '38.563,-115.528,Blue Eagle Springs,Lund,Hotspring,84,29'; - put '40.873,-117.937,Rose Creek Spring,Winnemucca,Hotspring,83,28'; - put '39.917,-114.667,Spring,Ely,Hotspring,83,28'; - put '36.39,-116.278,Jack Rabbit Spring,Death Valley,Hotspring,82,28'; - put '36.437,-116.206,Spring,Death Valley,Hotspring,82,28'; - put '38.937,-115.695,Little Warm Spring,Lund,Hotspring,90,32'; - put '36.479,-116.326,Rogers Spring,Death Valley,Hotspring,82,28'; - put '40.29,-116.049,Carlotti Ranch Springs,Winnemucca,Hotspring,102,39'; - put '36.468,-116.325,Longstreet Spring,Death Valley,Hotspring,82,28'; - put '36.722,-114.716,Muddy Spring,Las Vegas,Hotspring,90,32'; - put '37.532,-115.233,Crystal Springs,Caliente,Hotspring,90,32'; - put '37.598,-115.215,Hiko Spring,Caliente,Hotspring,90,32'; - put '36.404,-116.383,Spring,Death Valley,Hotspring,90,32'; - put '37.996,-116.389,Reveille Mill Spring,Goldfield,Hotspring,84,29'; - put '36.71,-114.714,Moapa Warm Springs,Las Vegas,Hotspring,90,32'; - put '35.982,-114.748,Hot Springs,Kingman,Hotspring,86,30'; - put '40.929,-116.895,Izzenhood Ranch Springs,Winnemucca,Hotspring,88,31'; - put '37.807,-114.38,Panaca Spring,Caliente,Hotspring,88,31'; - put '36.942,-116.729,Spring,Death Valley,Hotspring,88,31'; - put '41.98,-114.376,Hot Spring,Wells,Hotspring,86,30'; - put '36.433,-116.308,Scruggs Springs,Death Valley,Hotspring,86,30'; - put '40.952,-114.751,Ralphs Warm Springs,Elko,Hotspring,86,30'; - put '39.526,-118.876,Soda Lake,Reno,Hotspring,86,30'; - put '38.027,-116.683,Spring,Tonopah,Hotspring,86,30'; - put '37.741,-115.753,Sand Spring,Caliente,Hotspring,86,30'; - put '36.918,-116.744,Beatty Municipal Spring,Death Valley,Hotspring,88,31'; - put '38.255,-116.829,Saulsbury Warm Spring,Tonopah,Hotspring,86,30'; - put '42.48,-73.37,Lebanon Spring,Albany,Hotspring,72,22'; - put '44.241,-122.058,Bigelow Hot Springs,Salem,Hotspring,142,61'; - put '44.862,-121.201,Kahneeta Hot Springs,Bend,Hotspring,126,52'; - put '44.927,-117.939,Radium Hot Springs,Baker,Hotspring,135,57'; - put '44.354,-118.574,Blue Mountain Hot Springs,Canyon City,Hotspring,136,58'; - put '44.936,-122.173,Bagby Hot Springs,Salem,Hotspring,136,58'; - put '43.944,-118.136,Beulah Hot Springs,Burns,Hotspring,140,60'; - put '43.763,-117.156,Mitchell Butte Hot Spring,Boise,Hotspring,144,62'; - put '42.116,-121.287,Oregon Hot Springs (Big Hot Spring,Klamath Falls,Hotspring,142,61'; - put '45.151,-118.659,Lehman Springs,Pendleton,Hotspring,142,61'; - put '43.719,-121.209,East Lake Hot Springs,Crescent,Hotspring,144,62'; - put '43.469,-118.202,Luce Hot Springs,Burns,Hotspring,145,63'; - put '45.018,-117.625,Medical Hot Springs,Grangeville,Hotspring,140,60'; - put '44.867,-121.228,Springs,Bend,Hotspring,125,52'; - put '42.188,-118.383,Flagstaff Butte Hot Spring,Adel,Hotspring,126,52'; - put '44.451,-119.105,Mount Vernon Hot Springs,Canyon City,Hotspring,121,49'; - put '42.977,-117.061,Canters Hot Spring,Jordan Valley,Hotspring,120,49'; - put '43.294,-122.367,Umpqua Hot Springs,Roseburg,Hotspring,117,47'; - put '44.002,-119.647,Weberg Hot Spring,Canyon City,Hotspring,115,46'; - put '43.739,-117.178,Deer Butte Hot Spring,Boise,Hotspring,115,46'; - put '43.795,-117.958,Jonesboro Warm Spring,Boise,Hotspring,112,45'; - put '42.075,-119.927,Hallinan Spring,Adel,Hotspring,113,45'; - put '42.297,-119.776,Fisher Hot Springs,Adel,Hotspring,154,68'; - put '45.013,-117.885,Kropp Hot Spring,Grangeville,Hotspring,109,43'; - put '42.221,-120.368,Hunters Hot Springs,Klamath Falls,Hotspring,205,96'; - put '44.083,-122.233,Cougar Reservoir Hot Springs,Salem,Hotspring,111,44'; - put '44.023,-117.46,Neal Hot Springs,Baker,Hotspring,189,87'; - put '42.431,-121.963,Eagle Point Spring,Klamath Falls,Hotspring,95,35'; - put '43.689,-122.372,Kitson Hot Springs,Roseburg,Hotspring,109,43'; - put '44.813,-117.765,Spring (Hot),Baker,Hotspring,W,W'; - put '43.776,-118.047,Warm Spring,Burns,Hotspring,W,W'; - put '43.793,-118.472,Sitz Warm Spring,Burns,Hotspring,W,W'; - put '43.86,-118.288,Altnow Hot Spring,Burns,Hotspring,W,W'; - put '43.893,-117.596,Springs,Boise,Hotspring,W,W'; - put '45.206,-117.912,Union Station Hot Springs,Grangeville,Hotspring,H,H'; - put '44.208,-117.455,Jamieson Hot Springs,Baker,Hotspring,H,H'; - put '42.338,-118.602,Hot Springs,Adel,Hotspring,207,97'; - put '44.782,-121.975,Breitenbush Hot Springs,Bend,Hotspring,198,92'; - put '42.219,-119.877,Warner Valley Ranch,Adel,Hotspring,198,92'; - put '42.156,-120.345,Barry Ranch Hot Springs,Klamath Falls,Hotspring,190,88'; - put '44.193,-122.049,Belknap Springs,Salem,Hotspring,160,71'; - put '45.021,-122.009,Austin Hot Springs,Vancouver,Hotspring,186,86'; - put '42.676,-118.344,Mickey Springs,Adel,Hotspring,187,86'; - put '44.153,-122.098,Foley Springs,Salem,Hotspring,178,81'; - put '45.244,-117.958,Hot Lake Springs,Grangeville,Hotspring,176,80'; - put '42.544,-118.533,Alvord Hot Springs,Adel,Hotspring,174,79'; - put '43.441,-118.638,Crane Hot Springs,Burns,Hotspring,172,78'; - put '42.226,-119.881,Crump Geyser (Crump Spring),Adel,Hotspring,172,78'; - put '43.727,-117.203,Snively Hot Spring,Boise,Hotspring,170,77'; - put '42.174,-121.615,Olene Gap Hot Springs,Klamath Falls,Hotspring,165,74'; - put '43.708,-122.288,Mccredie Springs,Roseburg,Hotspring,163,73'; - put '43.982,-117.233,Vale Hot Springs,Boise,Hotspring,163,73'; - put '42.162,-120.344,Leithead Hot Spring,Klamath Falls,Hotspring,162,72'; - put '45.372,-121.697,Mount Hood Fumaroles,The Dalles,Hotspring,194,90'; - put '43.264,-119.015,Dunn Spring,Burns,Hotspring,70,21'; - put '42.873,-122.167,Annie Spring,Medford,Hotspring,77,25'; - put '42.133,-121.219,Wilkersons Hot Spring,Klamath Falls,Hotspring,76,24'; - put '43.272,-119.293,Basque Spring,Burns,Hotspring,74,23'; - put '43.276,-119.34,Double O Spring,Burns,Hotspring,74,23'; - put '44.073,-119.427,Brisbois Ranch Springs,Canyon City,Hotspring,72,22'; - put '43.265,-119.276,Johnson Spring,Burns,Hotspring,72,22'; - put '43.281,-119.311,Double O Barnyard Spring,Burns,Hotspring,72,22'; - put '43.501,-119.091,Roadland Spring,Burns,Hotspring,72,22'; - put '43.529,-119.081,Goodman Spring,Burns,Hotspring,72,22'; - put '43.703,-117.19,South Black Willow Spring,Boise,Hotspring,71,22'; - put '42.307,-119.875,Moss Ranch Spring,Adel,Hotspring,72,22'; - put '43.758,-118.067,Juntura Warm Spring 1,Burns,Hotspring,77,25'; - put '43.732,-121.252,Paulina Springs,Crescent,Hotspring,70,21'; - put '42.176,-121.828,Howard Holiday,Klamath Falls,Hotspring,77,25'; - put '43.477,-119.075,Baker Spring,Burns,Hotspring,70,21'; - put '42.178,-121.801,Hardboard Spring,Klamath Falls,Hotspring,70,21'; - put '42.325,-120.327,White Rock Ranch Hot Spring,Klamath Falls,Hotspring,71,21'; - put '43.252,-119.258,Hughet Spring,Burns,Hotspring,68,20'; - put '42.38,-120.33,Bean Hot Spring,Klamath Falls,Hotspring,69,20'; - put '42.933,-120.642,Lost Cabin Spring,Klamath Falls,Hotspring,68,20'; - put '42.998,-120.725,Buckhorn Creek Springs,Klamath Falls,Hotspring,68,20'; - put '42.688,-117.905,Tudors Spring,Jordan Valley,Hotspring,68,20'; - put '42.756,-117.55,Scott Spring,Jordan Valley,Hotspring,68,20'; - put '42.725,-120.646,Summer Lake Hot Spring,Klamath Falls,Hotspring,109,43'; - put '43.757,-118.092,Juntura Warm Spring 2,Burns,Hotspring,95,35'; - put '44.374,-118.738,Limekiln Hot Spring,Canyon City,Hotspring,70,21'; - put '42.221,-122.742,Jackson Hot Springs,Medford,Hotspring,95,35'; - put '44.892,-119.141,Ritter Hot Springs,Canyon City,Hotspring,106,41'; - put '43.808,-122.309,Wall Creek Warm Springs,Roseburg,Hotspring,106,41'; - put '43.395,-118.308,Springs (Hot),Burns,Hotspring,106,41'; - put '43.302,-117.383,Hot Spring,Boise,Hotspring,106,41'; - put '44.28,-118.956,Joaquin Miller Hot Springs,Canyon City,Hotspring,104,40'; - put '42.501,-119.693,Antelope Hot Springs,Adel,Hotspring,104,40'; - put '45.129,-118.738,Hidaway Springs,Pendleton,Hotspring,100,38'; - put '44.975,-118.044,Fisher Hot Springs,Canyon City,Hotspring,99,37'; - put '44.033,-117.449,Bully Creek Spring,Baker,Hotspring,99,37'; - put '42.93,-120.798,Pardon Warm Spring,Klamath Falls,Hotspring,76,24'; - put '42.327,-118.602,Borax Lake (Hot Lake),Adel,Hotspring,97,36'; - put '42.161,-121.627,Crystal Spring,Klamath Falls,Hotspring,78,26'; - put '45.741,-118.233,Bingham Springs,Pendleton,Hotspring,93,34'; - put '42.889,-118.898,Fivemile Spring (Hoghouse Hot Sprs,Adel,Hotspring,80,27'; - put '43.54,-119.081,Millpond Hot Spring,Burns,Hotspring,79,26'; - put '45.891,-116.873,Cook Creek Hot Spring,Grangeville,Hotspring,97,36'; - put '45.295,-121.731,Swim Warm Springs,The Dalles,Hotspring,79,26'; - put '42.04,-120.924,Warm Spring,Klamath Falls,Hotspring,92,33'; - put '44.779,-117.811,Sam O Spring,Baker,Hotspring,80,27'; - put '44.538,-117.417,Nelson Spring,Baker,Hotspring,80,27'; - put '45.631,-119.703,Well Spring,Pendleton,Hotspring,80,27'; - put '42.287,-119.867,Moss Ranch Springs,Adel,Hotspring,83,28'; - put '45.061,-118.455,Warm Mineral Spring,Pendleton,Hotspring,83,28'; - put '43.95,-119.634,Warm Springs,Burns,Hotspring,84,29'; - put '45.295,-117.806,Warm Spring,Grangeville,Hotspring,85,29'; - put '42.815,-118.899,Warm Springs,Adel,Hotspring,89,32'; - put '43.452,-103.508,Hot Brook Springs,Hot Springs,Hotspring,75,24'; - put '43.442,-103.481,Hot Springs,Hot Springs,Hotspring,87,31'; - put '29.178,-102.953,Rio Grande Village Spring,Emory Peak,Hotspring,97,36'; - put '30.823,-105.315,Indian Hot Springs,Marfa,Hotspring,117,47'; - put '30.038,-104.598,Ruidosa Hot Springs,Marfa,Hotspring,113,45'; - put '29.182,-102.992,Hot Springs,Emory Peak,Hotspring,106,41'; - put '30.21,-104.562,Capote Springs,Marfa,Hotspring,99,37'; - put '30.133,-104.602,Nixon Spring,Marfa,Hotspring,90,32'; - put '29.787,-104.462,Springs (Las Cienegas),Presidio,Hotspring,86,30'; - put '30.861,-105.34,Red Bull Spring,Marfa,Hotspring,99,37'; - put '38.85,-112.49,Hatton Hot Spring,Richfield,Hotspring,100,38'; - put '40.176,-111.801,Bird Island,Salt Lake City,Hotspring,86,30'; - put '41.917,-111.958,Gancheff Spring,Ogden,Hotspring,88,31'; - put '37.942,-112.438,Lefevre,Cedar City,Hotspring,90,32'; - put '37.335,-113.687,Veyo Hot Spring,Cedar City,Hotspring,90,32'; - put '40.332,-111.891,Fault Zone Spring,Salt Lake City,Hotspring,90,32'; - put '40.146,-111.806,Lincoln Point Warm Springs,Salt Lake City,Hotspring,90,32'; - put '38.186,-112.912,Us Blm,Richfield,Hotspring,91,33'; - put '41.833,-112.454,Blue Creek Spring,Brigham City,Hotspring,82,28'; - put '40.526,-111.488,Midway Hot Springs,Salt Lake City,Hotspring,100,38'; - put '40.525,-111.468,Midway Hot Springs,Salt Lake City,Hotspring,104,40'; - put '40.038,-111.529,Castilla Springs,Salt Lake City,Hotspring,104,40'; - put '38.217,-112.904,Dotsons (Radium) Warm Spring,Richfield,Hotspring,91,33'; - put '40.465,-109.221,Split Mountain Warm Springs,Vernal,Hotspring,86,30'; - put '40.788,-112.017,Hobo Warm Spring,Tooele,Hotspring,84,29'; - put '40.788,-111.899,Wasatch Hot Springs,Salt Lake City,Hotspring,108,42'; - put '39.35,-113.515,Tule Spring,Delta,Hotspring,82,28'; - put '39.424,-113.485,Coyote Spring,Delta,Hotspring,82,28'; - put '39.842,-113.392,Fish Springs,Delta,Hotspring,82,28'; - put '39.887,-113.413,North Springs,Delta,Hotspring,82,28'; - put '41.756,-113.603,Warm Spring,Brigham City,Hotspring,81,27'; - put '41.038,-111.656,Como Springs,Ogden,Hotspring,81,27'; - put '40.397,-112.421,Morgans Warm Spring,Tooele,Hotspring,80,27'; - put '39.464,-114.038,Gandy Warm Springs,Ely,Hotspring,81,27'; - put '40.447,-110.828,Warm Springs,Salt Lake City,Hotspring,79,26'; - put '37.7,-110.421,Warm Spring,Escalante,Hotspring,79,26'; - put '40.502,-114.038,Blue Lake Spring,Elko,Hotspring,84,29'; - put '38.503,-112.849,Roosevelt Hot Springs,Richfield,Hotspring,133,56'; - put '38.774,-112.096,Richfield Warm Springs,Richfield,Hotspring,73,23'; - put '40.488,-111.911,Crystal Hot Springs,Salt Lake City,Hotspring,187,86'; - put '38.186,-113.197,Thermo Hot Springs,Richfield,Hotspring,185,85'; - put '38.172,-113.204,Thermo Hot Springs,Richfield,Hotspring,181,83'; - put '39.613,-112.729,"Baker (Abraham, Crater) Hot Spring",Delta,Hotspring,180,82'; - put '38.639,-112.098,Red Hill Hot Spring,Richfield,Hotspring,171,77'; - put '38.633,-112.107,Monroe (Cooper) Hot Springs,Richfield,Hotspring,169,76'; - put '38.613,-112.202,Joseph Hot Springs,Richfield,Hotspring,147,64'; - put '39.906,-113.43,Wilson Health Springs,Delta,Hotspring,142,61'; - put '41.138,-112.175,Hooper Hot Springs,Brigham City,Hotspring,140,60'; - put '41.338,-112.031,Utah Hot Springs,Brigham City,Hotspring,138,59'; - put '38.864,-112.506,Meadow Hot Springs,Richfield,Hotspring,106,41'; - put '40.815,-111.918,Becks Hot Spring,Salt Lake City,Hotspring,133,56'; - put '37.189,-113.272,Dixie (Laverkin) Hot Springs,Cedar City,Hotspring,108,42'; - put '41.659,-112.087,Crystal (Madsens) Hot Springs,Brigham City,Hotspring,129,54'; - put '41.855,-112.158,Udy Hot Springs,Brigham City,Hotspring,124,51'; - put '41.578,-112.23,Stinking Hot Springs,Brigham City,Hotspring,118,48'; - put '40.517,-111.475,Midway Hot Spring,Salt Lake City,Hotspring,115,46'; - put '40.536,-111.478,Warm Ditch Spring,Salt Lake City,Hotspring,115,46'; - put '40.35,-111.905,Saratoga Hot Springs,Salt Lake City,Hotspring,111,44'; - put '40.353,-111.895,Crater Hot Spring,Salt Lake City,Hotspring,111,44'; - put '41.901,-112.999,Coyote Spring,Brigham City,Hotspring,109,43'; - put '41.687,-113.986,Spring (Hot),Brigham City,Hotspring,108,42'; - put '41.582,-112.256,Little Mountain Hot Spring,Brigham City,Hotspring,108,42'; - put '41.822,-113.263,L.G. Carter Springs,Brigham City,Hotspring,77,25'; - put '41.236,-111.924,Ogden Hot Spring,Ogden,Hotspring,135,57'; - put '37.178,-113.634,Snow Spring,Cedar City,Hotspring,70,21'; - put '38.34,-113.22,Woodhouse Spring,Richfield,Hotspring,72,22'; - put '38.155,-112.901,Willow Spring,Richfield,Hotspring,72,22'; - put '38.56,-112.578,Sulphurdale,Richfield,Hotspring,72,22'; - put '38.981,-111.829,Salt Spring,Salina,Hotspring,72,22'; - put '37.174,-112.535,Red Canyon,Cedar City,Hotspring,72,22'; - put '41.808,-113.327,W.R. Carter Springs,Brigham City,Hotspring,70,21'; - put '41.818,-113.311,Larson Springs,Brigham City,Hotspring,70,21'; - put '41.829,-113.654,Head Spring,Brigham City,Hotspring,70,21'; - put '40.653,-112.907,Redlum Spring,Tooele,Hotspring,70,21'; - put '40.458,-111.929,Camp Williams,Salt Lake City,Hotspring,70,21'; - put '40.647,-112.524,Grantsville Warm Springs,Tooele,Hotspring,77,25'; - put '39.183,-111.691,Sterling (Peacock) Warm Spring,Price,Hotspring,72,22'; - put '39.246,-111.645,Livingston Warm Springs,Price,Hotspring,73,23'; - put '38.138,-112.863,Big Maple Spring,Richfield,Hotspring,70,21'; - put '37.393,-113.61,Irvine Spring,Cedar City,Hotspring,70,21'; - put '41.563,-113.954,Kimber (Rose) Spring,Brigham City,Hotspring,68,20'; - put '41.614,-113.613,Warm Spring,Brigham City,Hotspring,68,20'; - put '41.328,-111.826,Patio Springs,Ogden,Hotspring,68,20'; - put '40.172,-112.426,Davis,Tooele,Hotspring,68,20'; - put '40.118,-111.337,Diamond Fork Warm Springs,Salt Lake City,Hotspring,68,20'; - put '39.249,-113.877,Knoll Springs,Delta,Hotspring,68,20'; - put '39.403,-113.863,Twin Springs,Delta,Hotspring,68,20'; - put '39.788,-111.881,Ray Lunt Spring,Price,Hotspring,68,20'; - put '38.762,-112.87,Springs,Richfield,Hotspring,68,20'; - put '38.77,-112.871,Coyote Spring,Richfield,Hotspring,68,20'; - put '37.937,-112.424,Tebbs,Cedar City,Hotspring,68,20'; - put '37.096,-113.447,Warner Valley Spring,Cedar City,Hotspring,70,21'; - put '40.565,-112.738,Deseret Livestock South Springs,Tooele,Hotspring,73,23'; - put '37.158,-113.399,Virgin River Spring,Cedar City,Hotspring,70,21'; - put '39.899,-112.045,Springs,Delta,Hotspring,72,22'; - put '38.603,-112.111,Johnson Warm Spring,Richfield,Hotspring,77,25'; - put '41.722,-112.266,Bothwell Warm Springs,Brigham City,Hotspring,75,24'; - put '40.538,-112.747,Deseret Livestock,Tooele,Hotspring,75,24'; - put '40.733,-112.621,Utah Fish And Game Dept,Tooele,Hotspring,75,24'; - put '40.228,-111.867,Warm Springs,Salt Lake City,Hotspring,75,24'; - put '37.137,-113.513,Warm Spring,Cedar City,Hotspring,75,24'; - put '37.138,-113.528,Green Spring,Cedar City,Hotspring,75,24'; - put '37.166,-113.383,Berry Springs,Cedar City,Hotspring,75,24'; - put '41.834,-112.054,Cutler Warm Spring,Brigham City,Hotspring,73,23'; - put '40.614,-112.709,Horseshoe Springs,Tooele,Hotspring,73,23'; - put '41.239,-112.413,Compton Spring,Brigham City,Hotspring,72,22'; - put '40.743,-112.642,Big Warm Springs,Tooele,Hotspring,72,22'; - put '40.558,-112.739,Deseret Livestock South Spring,Tooele,Hotspring,72,22'; - put '40.39,-112.424,Russells Warm Springs,Tooele,Hotspring,72,22'; - put '41.831,-113.391,Pugsley,Brigham City,Hotspring,73,23'; - put '41.449,-112.442,Poulsen Spring (Salt),Brigham City,Hotspring,72,22'; - put '40.167,-111.622,Wood Springs,Salt Lake City,Hotspring,73,23'; - put '40.234,-111.865,Warm Springs,Salt Lake City,Hotspring,77,25'; - put '39.955,-111.858,Goshen Warm Srings,Price,Hotspring,73,23'; - put '39.334,-113.518,South Tule Spring,Delta,Hotspring,77,25'; - put '39.616,-112.803,Fumarole Butte,Delta,Hotspring,73,23'; - put '40.545,-111.928,East Jordan Canal,Salt Lake City,Hotspring,73,23'; - put '41.643,-112.281,Springs,Brigham City,Hotspring,72,22'; - put '37.29,-80.619,New River White Sulphur Springs,Bluefield,Hotspring,85,29'; - put '37.997,-79.83,Hot Springs,Roanoke,Hotspring,106,41'; - put '37.898,-79.462,Rockbridge Baths,Roanoke,Hotspring,72,22'; - put '38.055,-79.78,Warm Springs,Charlottesvill,Hotspring,95,35'; - put '37.963,-79.861,Healing Springs,Roanoke,Hotspring,86,30'; - put '38.238,-79.65,Bragg Spring,Charlottesvill,Hotspring,75,24'; - put '37.645,-80.238,Sweet Chalybeate Spring,Bluefield,Hotspring,75,24'; - put '38.218,-79.673,Bolar Spring,Charlottesvill,Hotspring,73,23'; - put '37.86,-79.988,Layton Spring,Roanoke,Hotspring,72,22'; - put '37.87,-79.933,Falling Spring,Roanoke,Hotspring,77,25'; - put '37.16,-80.806,Alum Springs,Bluefield,Hotspring,72,22'; - put '46.852,-121.758,Mt Rainier Fumaroles,Yakima,Hotspring,162,72'; - put '46.738,-121.562,Ohanapecosh Hot Springs,Yakima,Hotspring,122,50'; - put '47.707,-121.155,Scenic Hot Springs,Wenatchee,Hotspring,122,50'; - put '47.969,-123.864,Sol Duc Hot Springs,Seattle,Hotspring,122,50'; - put '48.974,-119.475,Hot Lake,Okanogan,Hotspring,122,50'; - put '45.658,-121.962,Moffetts (Bonneville) Hot Springs,The Dalles,Hotspring,97,36'; - put '48.906,-119.455,Poison Lake,Okanogan,Hotspring,122,50'; - put '45.701,-121.728,Collins Hot Springs,The Dalles,Hotspring,122,50'; - put '47.484,-121.391,Goldmeyer Hot Springs,Wenatchee,Hotspring,127,53'; - put '46.202,-121.492,Mount Adams Fumaroles,Yakima,Hotspring,150,66'; - put '46.198,-122.197,Mt St Helens Fumaroles,Hoquiam,Hotspring,190,88'; - put '48.789,-121.804,Dorr Fumarole Field,Concrete,Hotspring,194,90'; - put '48.77,-121.813,Sherman Crater Fumaroles,Concrete,Hotspring,266,130'; - put '45.723,-121.927,Rock Creek Hot Springs,The Dalles,Hotspring,H,H'; - put '48.15,-121.062,Gamma Hot Springs,Concrete,Hotspring,140,60'; - put '46.378,-122.265,Green River Soda Spring,Hoquiam,Hotspring,86,30'; - put '46.575,-121.706,Packwood Hot Spring,Yakima,Hotspring,100,38'; - put '47.201,-121.536,Lester Hot Springs,Wenatchee,Hotspring,120,49'; - put '46.024,-118.771,Warm Springs Canyon Warm Spring,Walla Walla,Hotspring,72,22'; - put '46.345,-121.6,Orr Creek Warm Springs,Yakima,Hotspring,72,22'; - put '46.041,-121.181,Fish Hatchery Warm Spring,Yakima,Hotspring,75,24'; - put '46.752,-121.814,Longmire Mineral Springs,Yakima,Hotspring,77,25'; - put '47.892,-121.342,Garland Mineral Springs,Wenatchee,Hotspring,84,29'; - put '46.452,-120.956,Simcoe Soda Springs,Yakima,Hotspring,90,32'; - put '48.254,-121.17,Sulphur Creek Hot Springs,Concrete,Hotspring,99,37'; - put '48.118,-121.192,Kennedy Hot Spring,Concrete,Hotspring,100,38'; - put '48.763,-121.667,Baker Hot Spring,Concrete,Hotspring,108,42'; - put '47.977,-123.682,Olympic Hot Springs,Seattle,Hotspring,118,48'; - put '45.728,-121.8,St Martins Hot Springs,The Dalles,Hotspring,120,49'; - put '45.821,-121.133,Klickitat Mineral Springs,The Dalles,Hotspring,81,27'; - put '38.163,-79.975,Minnehaha Springs,Charlottesvill,Hotspring,70,21'; - put '37.63,-80.24,Old Sweet Spring,Bluefield,Hotspring,73,23'; - put '39.618,-78.23,Berkeley Springs,Cumberland,Hotspring,72,22'; - put '38.605,-79.353,Thorn Spring,Charlottesvill,Hotspring,72,22'; - put '39.471,-77.877,Swan Pond Spring,Baltimore,Hotspring,72,22'; - put '44.29,-110.504,"Hot Springs,heart Lake Geyser Basi",Ashton,Hotspring,201,94'; - put '44.691,-110.728,Geyser Springs Group,Ashton,Hotspring,201,94'; - put '44.554,-110.812,Fountain Group,Ashton,Hotspring,201,94'; - put '44.543,-110.859,Fairy Springs,Ashton,Hotspring,201,94'; - put '44.485,-110.852,"Biscuit Basin, Sapphire Pool",Ashton,Hotspring,201,94'; - put '44.48,-110.85,Cascade Group,Ashton,Hotspring,201,94'; - put '44.46,-110.844,Black Sand Basin,Ashton,Hotspring,201,94'; - put '44.459,-110.835,Myriad Group,Ashton,Hotspring,201,94'; - put '44.307,-110.526,"Hot Springs,heart Lake Geyser Basi",Ashton,Hotspring,201,94'; - put '44.354,-110.8,Shoshone Geyser Basin,Ashton,Hotspring,203,95'; - put '44.568,-110.805,Quagmire Group,Ashton,Hotspring,203,95'; - put '44.537,-110.801,"White Dome Geyser, Surprise Pool",Ashton,Hotspring,203,95'; - put '44.52,-110.828,Flood Group,Ashton,Hotspring,203,95'; - put '44.471,-110.843,"Daisy Group, Sentinel Geysers",Ashton,Hotspring,203,95'; - put '44.466,-110.839,"Middle Group,tortoise Shell,inkwel",Ashton,Hotspring,203,95'; - put '44.46,-110.828,"Geyser Hill Group, Old Faithful Ge",Ashton,Hotspring,203,95'; - put '44.908,-110.393,Calcite Springs,Ashton,Hotspring,201,94'; - put '44.417,-110.57,West Thumb Geyser Basin,Ashton,Hotspring,203,95'; - put '44.459,-110.817,Southeastern Group,Ashton,Hotspring,198,92'; - put '44.433,-110.581,Potts Hot Spring Basin,Ashton,Hotspring,203,95'; - put '44.421,-110.952,Smoke Jumper Hot Springs,Ashton,Hotspring,198,92'; - put '44.684,-110.753,Monument Geyser Basin,Ashton,Hotspring,197,92'; - put '44.679,-110.746,Beryl Spring,Ashton,Hotspring,198,92'; - put '44.544,-110.258,Turbid Springs,Ashton,Hotspring,198,92'; - put '44.53,-110.297,Steamboat Springs,Ashton,Hotspring,198,92'; - put '44.518,-110.813,"Hot Springs, Rabbit Creek Group",Ashton,Hotspring,198,92'; - put '44.514,-110.828,Rabbit Creek Group,Ashton,Hotspring,198,92'; - put '44.484,-110.873,Mystic Falls Springs,Ashton,Hotspring,198,92'; - put '44.739,-110.324,Josephs Coat Springs,Ashton,Hotspring,199,93'; - put '44.75,-110.714,Gas Vent,Ashton,Hotspring,H,H'; - put '44.282,-110.506,Rustic Geyser,Ashton,Hotspring,199,93'; - put '44.571,-110.811,Morning Mist Springs,Ashton,Hotspring,205,96'; - put '44.733,-110.703,Cistern Spring,Ashton,Hotspring,199,93'; - put '44.697,-110.724,Gibbon Hill Geyser,Ashton,Hotspring,199,93'; - put '44.693,-110.738,Artists Paintpots,Ashton,Hotspring,199,93'; - put '44.69,-110.384,Hot Springs on Bog Creek,Ashton,Hotspring,199,93'; - put '44.526,-110.835,Excelsior Geyser Crater,Ashton,Hotspring,199,93'; - put '44.418,-110.805,Lone Star Geyser,Ashton,Hotspring,199,93'; - put '44.309,-110.654,Hot Springs on Lewis Lake,Ashton,Hotspring,199,93'; - put '44.469,-110.828,Solitary Geyser,Ashton,Hotspring,198,92'; - put '44.433,-110.813,Hot Springs,Ashton,Hotspring,H,H'; - put '44.766,-110.3,Hot Springs,Ashton,Hotspring,H,H'; - put '44.61,-110.438,Hot Springs,Ashton,Hotspring,H,H'; - put '44.607,-110.617,Hot Springs East of Mary Lake,Ashton,Hotspring,H,H'; - put '44.601,-110.632,Gas Vent East of Mary Lake,Ashton,Hotspring,H,H'; - put '44.595,-110.622,Gas Vents Southeast of Mary Lake,Ashton,Hotspring,H,H'; - put '44.572,-110.691,Hot Springs,Ashton,Hotspring,H,H'; - put '44.553,-110.301,Beach Springs,Ashton,Hotspring,H,H'; - put '44.551,-110.85,Springs on Fairy Creek,Ashton,Hotspring,H,H'; - put '44.616,-110.616,Highland Hot Springs,Ashton,Hotspring,H,H'; - put '44.438,-110.977,Hot Springs on Continental Divide,Ashton,Hotspring,H,H'; - put '44.617,-110.432,Mud Geysers,Ashton,Hotspring,H,H'; - put '44.404,-110.824,Hot Springs on Upper Firehole Rive,Ashton,Hotspring,H,H'; - put '44.498,-109.193,Buffalo Bill Reservoir Springs,Cody,Hotspring,W,W'; - put '44.495,-109.222,Buffalo Bill Reservoir Springs,Cody,Hotspring,W,W'; - put '44.482,-109.204,Buffalo Bill Reservoir Springs,Cody,Hotspring,W,W'; - put '44.841,-110.167,"Hot, on Lamar River",Ashton,Hotspring,W,W'; - put '44.734,-110.029,Hot Springs,Ashton,Hotspring,W,W'; - put '44.708,-110.471,Warm Spring,Ashton,Hotspring,W,W'; - put '44.701,-110.036,Hot Springs,Ashton,Hotspring,W,W'; - put '44.508,-110.832,Midway Picnic Ground,Ashton,Hotspring,H,H'; - put '44.715,-110.555,Gas Vents,Ashton,Hotspring,H,H'; - put '44.563,-110.834,River Group,Ashton,Hotspring,205,96'; - put '44.544,-110.788,"Black Warrior Group, Shelf Spring",Ashton,Hotspring,205,96'; - put '44.115,-110.684,Huckleberry Hot Springs,Ashton,Hotspring,B,B'; - put '44.842,-110.732,Apollinaris Spring,Ashton,Hotspring,H,H'; - put '44.825,-110.675,Gas Vents at Horseshoe Hill,Ashton,Hotspring,H,H'; - put '44.781,-110.738,Steam Vents at Roaring Mountain,Ashton,Hotspring,H,H'; - put '44.743,-110.242,Hot Spring Basin Group,Ashton,Hotspring,198,92'; - put '44.752,-110.256,Hot Spring,Ashton,Hotspring,H,H'; - put '44.612,-110.618,Gas Vent,Ashton,Hotspring,H,H'; - put '44.741,-110.699,Gas Vent,Ashton,Hotspring,H,H'; - put '44.566,-110.871,"Flat Cone Spring, Steep Cone",Ashton,Hotspring,205,96'; - put '44.711,-110.468,Hot Springs,Ashton,Hotspring,H,H'; - put '44.708,-110.461,Forest Springs,Ashton,Hotspring,H,H'; - put '44.672,-110.236,Hot Springs,Ashton,Hotspring,H,H'; - put '44.667,-110.282,Hot Springs,Ashton,Hotspring,H,H'; - put '44.656,-110.572,Violet Springs,Ashton,Hotspring,H,H'; - put '44.642,-110.238,Hot Spring,Ashton,Hotspring,H,H'; - put '44.634,-110.234,The Mudkettles,Ashton,Hotspring,H,H'; - put '44.634,-110.226,The Mushpots,Ashton,Hotspring,H,H'; - put '44.532,-110.874,"Imperial Geyser, Spray Geyser",Ashton,Hotspring,192,89'; - put '42.545,-106.725,Alcova Hot Springs,Casper,Hotspring,129,54'; - put '42.75,-109.616,Steele Hot Springs,Lander,Hotspring,102,39'; - put '43.37,-110.445,Granite Hot Spring,Driggs,Hotspring,106,41'; - put '43.008,-108.835,Washakie Mineral Hot Springs,Thermopolis,Hotspring,111,44'; - put '43.907,-110.198,North Buffalo Fork Springs,Driggs,Hotspring,113,45'; - put '43.365,-110.443,Granite Falls Hot Springs,Driggs,Hotspring,112,45'; - put '42.817,-110.997,Johnson Springs,Preston,Hotspring,115,46'; - put '44.723,-110.358,Hot Spring on Moss Creek,Ashton,Hotspring,115,46'; - put '44.681,-110.326,Hot Springs on Upper Sour Creek,Ashton,Hotspring,194,90'; - put '41.45,-106.804,Saratoga Hot Springs,Rawlins,Hotspring,129,54'; - put '44.671,-110.786,Secret Valley Hot Springs,Ashton,Hotspring,95,35'; - put '44.625,-110.433,Mud Volcano,Ashton,Hotspring,131,55'; - put '43.654,-108.194,Thermopolis Hot Springs,Thermopolis,Hotspring,133,56'; - put '44.985,-110.689,Hot River,Ashton,Hotspring,136,58'; - put '44.588,-110.341,Ebro Springs,Ashton,Hotspring,136,58'; - put '44.55,-110.805,Fountain Paint Pot,Ashton,Hotspring,136,58'; - put '44.169,-110.583,Snake Hot Springs,Ashton,Hotspring,136,58'; - put '44.157,-110.699,Crawfish Creek Hot Springs,Ashton,Hotspring,136,58'; - put '44.165,-110.723,Crawfish Creek Hot Springs,Ashton,Hotspring,138,59'; - put '44.711,-110.741,Chocolate Pots,Ashton,Hotspring,124,51'; - put '43.56,-109.732,Geyser (Warm Spring Creek Springs),Thermopolis,Hotspring,84,29'; - put '43.489,-109.605,Jakeys Fork Spring,Thermopolis,Hotspring,68,20'; - put '44.749,-108.188,Little Sheep Mountain Spring,Cody,Hotspring,68,20'; - put '42.249,-104.781,Warm Springs (Immigrants Washtub),Torrington,Hotspring,70,21'; - put '44.608,-108.138,Sheep Mountain Springs,Cody,Hotspring,70,21'; - put '43.583,-108.213,Wind River Canyon Spring,Thermopolis,Hotspring,72,22'; - put '42.702,-107.105,Horse Creek Springs,Casper,Hotspring,75,24'; - put '44.511,-109.156,Needle Hot Springs,Cody,Hotspring,75,24'; - put '43.52,-109.669,Little Warm Spring,Thermopolis,Hotspring,77,25'; - put '43.3,-110.775,Astoria Mineral Hot Springs,Driggs,Hotspring,99,37'; - put '43.543,-110.741,Abercrombie Warm Springs,Driggs,Hotspring,81,27'; - put '44.513,-109.115,De Maris Springs,Cody,Hotspring,97,36'; - put '42.665,-105.394,Douglas Hot Springs,Torrington,Hotspring,86,30'; - put '43.471,-110.835,Boyles Hill Springs,Driggs,Hotspring,86,30'; - put '43.282,-110.019,Kendall Warm Spring,Driggs,Hotspring,86,30'; - put '44.662,-110.768,Iron Spring,Ashton,Hotspring,86,30'; - put '42.492,-108.172,Sweetwater Station Warm Springs,Lander,Hotspring,90,32'; - put '44.742,-110.579,Wolf Lake Springs,Ashton,Hotspring,91,33'; - put '44.513,-109.129,Shoshone Hot Springs,Cody,Hotspring,95,35'; - put '42.828,-110.999,Auburn Hot Springs,Preston,Hotspring,144,62'; - put '43.639,-110.615,Kelly Warm Spring,Driggs,Hotspring,81,27'; - put '44.532,-110.796,Five Sisters Springs,Ashton,Hotspring,192,89'; - put '44.582,-110.314,Vermilion Springs,Ashton,Hotspring,140,60'; - put '44.521,-110.275,Butte Springs,Ashton,Hotspring,187,86'; - put '44.478,-110.867,Hillside Springs,Ashton,Hotspring,187,86'; - put '44.752,-110.418,Hot Springs at Sevenmile Hole,Ashton,Hotspring,189,87'; - put '44.401,-110.936,Hot Springs on Continental Divide,Ashton,Hotspring,189,87'; - put '44.769,-110.269,Rainbow Springs,Ashton,Hotspring,190,88'; - put '44.628,-110.433,Sulphur Caldron,Ashton,Hotspring,190,88'; - put '44.702,-110.767,Sylvan Springs,Ashton,Hotspring,192,89'; - put '44.529,-110.791,White Creek Group,Ashton,Hotspring,185,85'; - put '44.564,-110.869,Queens Laundry,Ashton,Hotspring,192,89'; - put '44.697,-110.375,Hot Springs on Bog Creek,Ashton,Hotspring,185,85'; - put '44.285,-110.9,Bechler River Hot Springs,Ashton,Hotspring,194,90'; - put '44.797,-110.725,Amphitheater Springs,Ashton,Hotspring,196,91'; - put '44.766,-110.429,Washburn Hot Springs,Ashton,Hotspring,196,91'; - put '44.756,-110.308,Coffee Pot Hot Springs,Ashton,Hotspring,196,91'; - put '44.591,-110.321,Hot Springs at Sulphur Hills,Ashton,Hotspring,196,91'; - put '44.556,-110.832,River Group,Ashton,Hotspring,196,91'; - put '44.422,-110.574,West Thumb Geyser Basin,Ashton,Hotspring,196,91'; - put '44.786,-110.74,Semi-Centennial Geyser,Ashton,Hotspring,198,92'; - put '44.653,-110.482,Sulphur Springs,Ashton,Hotspring,194,89'; - put '44.41,-110.953,Summit Lake Hot Springs,Ashton,Hotspring,162,72'; - put '44.761,-110.73,Bijah Spring,Ashton,Hotspring,198,92'; - put '44.781,-110.699,Whiterock Springs,Ashton,Hotspring,144,62'; - put '44.739,-110.258,Hot Spring Basin Group,Ashton,Hotspring,153,67'; - put '44.754,-110.403,Sevenmile Hole,Ashton,Hotspring,154,68'; - put '44.276,-110.636,Hot Springs on Lewis Lake,Ashton,Hotspring,154,68'; - put '44.598,-110.236,Hot Springs In Pelican Valley,Ashton,Hotspring,156,69'; - put '44.142,-110.656,South Entrance Hot Springs,Ashton,Hotspring,156,69'; - put '44.753,-110.724,"Roadside Springs, Frying Pan Sprin",Ashton,Hotspring,158,70'; - put '44.733,-110.712,Horseshoe Spring,Ashton,Hotspring,187,86'; - put '43.958,-110.696,Jackson Lake Hot Springs,Driggs,Hotspring,162,72'; - put '44.187,-110.726,Hot Springs,Ashton,Hotspring,142,61'; - put '44.967,-110.708,Mammoth Hot Springs,Ashton,Hotspring,163,73'; - put '44.475,-110.843,Morning Glory Pool,Ashton,Hotspring,163,73'; - put '44.204,-110.486,Hot Springs on Upper Snake River,Ashton,Hotspring,167,75'; - put '44.299,-110.517,"Heart Lake Geyser Basin, Middle Gr",Ashton,Hotspring,174,79'; - put '44.671,-110.29,Ponuntpa Springs Group,Ashton,Hotspring,180,82'; - put '44.244,-111.022,Boundary Creek Hot Springs,Ashton,Hotspring,181,83'; - put '44.414,-110.817,"Lone Star Geyser Basin, Footbridge",Ashton,Hotspring,183,84'; - put '44.722,-110.701,Echinus Geyser,Ashton,Hotspring,185,85'; - put '44.461,-110.854,Emerald Pool,Ashton,Hotspring,158,70'; - put ';;;;'; + put '%mend sasjsout;'; + put 'filename sasjs temp lrecl=99999999;'; + put 'data _null_;'; + put 'file sasjs;'; + put 'put '''';'; + put 'put '' '';'; + put 'put '' Data Controller'';'; + put 'put '' '';'; + put 'put '' '';'; + put 'put '' '';'; + put 'put '' '';'; + put 'put '' '';'; + put 'put '' '';'; + put 'put '' '';'; + put 'put '' '';'; + put 'put '' '';'; + put 'put '' '';'; + put 'put '' '';'; + put 'put '' '';'; + put 'put '' '';'; + put 'put '''';'; put 'run;'; - put '* ServiceInit end;'; - put '* Service start;'; - put '/**'; - put '@file appinit.sas'; - put '@brief Initialisation service - runs on app startup'; - put '@details This is always the first service called when the app is opened.'; - put 'The deployed code includes the `serviceinit.sas`, as defined in the'; - put '`sasjs/sasjsconfig.json` file.'; - put '

SAS Macros

'; - put '**/'; - put 'proc sql;'; - put 'create table areas as select distinct area'; - put 'from mydb.springs;'; - put '%webout(OPEN)'; - put '%webout(OBJ,areas)'; - put '%webout(CLOSE)'; - put '* Service end;'; + put '%sasjsout(HTML)'; run; %mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) filename sascode clear; -%let service=getdata; +%let path=services/admin; + +%let service=configurator; filename sascode temp lrecl=32767; data _null_; file sascode; @@ -4027,7 +2285,7 @@ file sascode; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; - put '

Related Macros

'; + put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; @@ -4039,7 +2297,8 @@ file sascode; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; - put '%local tempds colinfo fmtds i numcols stmt_obs;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; @@ -4075,7 +2334,7 @@ file sascode; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; - put 'data _null_;'; + put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; @@ -4103,8 +2362,14 @@ file sascode; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; @@ -4139,27 +2404,96 @@ file sascode; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; - put 'data _data_;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as FMTCAT,'; + put 'FMTNAME'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'LENGTH num'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.length as MAXW'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; put '%do i=1 %to &numcols;'; - put '/* formatted values can be up to length 32767 */'; - put 'length &&name&i $32767;'; put '%if &&typelong&i=num %then %do;'; - put '&&name&i=left(put(&&newname&i,&&fmt&i));'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; - put 'drop &&newname&i;'; put '%end;'; - put 'if _error_ then call symputx(''syscc'',1012);'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; @@ -4176,8 +2510,8 @@ file sascode; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; - put 'length &&name&i $32767;'; - put 'format &&name&i $32767.;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; @@ -4190,7 +2524,7 @@ file sascode; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; - put 'if findc(&&name&i,''"\''!!''0A0D09000E0F01021011''x) then do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; @@ -4203,8 +2537,9 @@ file sascode; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; - put '))))))))))))!!''"'';'; + put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; @@ -4294,7 +2629,7 @@ file sascode; put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; - put '@param [in] fmt=(Y) Set to N to send back unformatted values'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [out] fref= (_webout) The fileref to which to write the JSON'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; @@ -4302,15 +2637,21 @@ file sascode; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] workobs= (0) When set to a positive integer, will create a new'; + put 'output object (WORK) which contains this number of observations from all'; + put 'tables in the WORK library.'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; put '@version 9.3'; put '@author Allan Bowe'; put '**/'; - put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=Y,missing=NULL'; - put ',showmeta=N,maxobs=MAX'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; put 'sasjs_tables;'; @@ -4375,8 +2716,8 @@ file sascode; put '%else %if &action=CLOSE %then %do;'; put '/* To avoid issues with _webout on EBI we use a temporary file */'; put 'filename _sjsref temp lrecl=131068;'; - put '%if %str(&_debug) ge 131 %then %do;'; - put '/* if debug mode, send back first 10 records of each work table also */'; + put '%if %str(&workobs) > 0 %then %do;'; + put '/* if debug mode, send back first XX records of each work table also */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; @@ -4400,7 +2741,9 @@ file sascode; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; - put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10)'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10'; + put ',maxobs=&workobs'; + put ')'; put 'data _null_; file _sjsref mod encoding=''utf-8'';'; put 'put "}";'; put '%end;'; @@ -4474,2169 +2817,67 @@ file sascode; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; - put '* SAS Macros end;'; - put '* SAS Includes start;'; - put '* SAS Includes end;'; - put '* Binary Files start;'; - put '* Binary Files end;'; - put '* ServiceInit start;'; - put 'libname mydb (work);'; - put 'data mydb.springs ;'; - put 'attrib'; - put 'Latitude length= 8'; - put 'Longitude length= 8'; - put 'Name length= $34'; - put 'Area length= $14'; - put 'Type length= $9'; - put 'Farenheit length= 8'; - put 'Celsius length= 8'; - put ';'; - put 'infile cards dsd;'; - put 'input'; - put 'Latitude'; - put 'Longitude'; - put 'Name :$char.'; - put 'Area :$char.'; - put 'Type :$char.'; - put 'Farenheit'; - put 'Celsius'; - put ';'; - put 'missing 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 _;'; - put 'datalines4;'; - put '51.925,-177.16,Fumaroles on Kanaga Island,Adak,Hotspring,219,104'; - put '65.858,-164.71,Serpentine Hot Springs,Bendeleben,Hotspring,171,77'; - put '53.851,-166.918,Hot Springs Near Makushin Volcano,Unalaska,Hotspring,H,H'; - put '53.877,-166.448,Hot Springs Near Summer Bay,Unalaska,Hotspring,H,H'; - put '52.27,-174.042,Hot Springs on Atka Island,Atka,Hotspring,H,H'; - put '52.34,-174.26,Hot Springs on Atka Island,Atka,Hotspring,H,H'; - put '52.358,-172.317,Hot Spring on Seguam Island,Seguam,Hotspring,H,H'; - put '52.84,-169.9,Chuginadak Hot Springs,Samalga Island,Hotspring,H,H'; - put '52.96,-169.71,Hot Spring on Kagamil Island,Samalga Island,Hotspring,H,H'; - put '51.94,-178.5,Hot Spring on Little Sitkin Island,Rat Islands,Hotspring,H,H'; - put '51.963,-178.491,Fumaroles on Little Sitkin Island,Rat Islands,Hotspring,H,H'; - put '51.775,-178.793,Fumaroles on Gareloi Island,Gareloi Island,Hotspring,H,H'; - put '53.207,-168.445,Hot Springs Near Geyser Bight,Umnak,Hotspring,H,H'; - put '53.892,-166.93,Makushin Volcano Fumaroles,Unalaska,Hotspring,310,154'; - put '54.9,-162.885,Hot Spring on Amagat Island,False Pass,Hotspring,H,H'; - put '53.213,-168.463,Hot Springs Near Geyser Bight,Umnak,Hotspring,216,102'; - put '53.223,-168.477,Hot Springs Near Geyser Bight,Umnak,Hotspring,214,101'; - put '53.443,-168.092,Thermal Springs In Okmok Caldera,Umnak,Hotspring,212,100'; - put '52.042,-176.108,Hot Springs on Great Sitkin Island,Adak,Hotspring,210,99'; - put '55.983,-131.661,Bailey Hot Spring,Ketchikan,Hotspring,198,92'; - put '53.242,-168.365,Hot Springs Near Hot Springs Cove,Umnak,Hotspring,192,89'; - put '54.157,-165.85,Hot Springs Near Hot Springs Bay,Unimak,Hotspring,181,83'; - put '58.033,-136.017,Hot Springs North End Tenakee Inle,Mt. Fairweathe,Hotspring,180,82'; - put '65.093,-164.922,Pilgrim Springs,Bendeleben,Hotspring,178,81'; - put '57.831,-156.513,W Ukinek Spring,Ugashik,Hotspring,178,81'; - put '65.459,-153.312,Little Melozitna Hot Springs,Melozitna,Hotspring,176,80'; - put '51.81,-177.79,Hot Spring on Tanaga Island,Adak,Hotspring,H,H'; - put '65.233,-144.483,Hot Springs on Big Windy Creek,Circle,Hotspring,H,H'; - put '55.334,-162.137,Hot Spring at West End Emmons Lake,Cold Bay,Hotspring,68,20'; - put '66.197,-154.006,Tunalkten Lake Hot Spring,Hughes,Hotspring,.,.'; - put '67.403,-153.883,Hot Spring Near Arrigetch Peaks,Survey Pass,Hotspring,W,W'; - put '65.047,-142.848,Hot Spring on Flat Creek,Charley River,Hotspring,W,W'; - put '63.683,-151.233,Hot Springs Near Glacier,Mt. Mckinley,Hotspring,W,W'; - put '63.883,-150.717,Hot Springs East of Diamond,Mt. Mckinley,Hotspring,W,W'; - put '62.45,-157.933,Hot Spring Near Flat,Iditarod,Hotspring,W,W'; - put '60.837,-142.42,Hot Spring on Twelvemile Creek,Bering Glacier,Hotspring,W,W'; - put '56.58,-132.18,South Stikine Spring,Petersburg,Hotspring,W,W'; - put '52.87,-173.13,Hot Spring on Attu Island,Attu,Hotspring,W,W'; - put '65.908,-154.993,Deniktow Ridge Hot Springs,Melozitna,Hotspring,H,H'; - put '53.95,-168.037,Hot Springs on Bogoslof Island,Umnak,Hotspring,H,H'; - put '65.45,-150,Hot Spring Near Little Minook Cr,Tanana,Hotspring,H,H'; - put '51.967,-178.444,Fumaroles on Little Sitkin Island,Rat Islands,Hotspring,H,H'; - put '64.002,-156.3,Hot Spring on Tributary of Innoko,Nulato,Hotspring,H,H'; - put '61.058,-160.692,Hot Spring Near Tuluksak River,Russian Missio,Hotspring,H,H'; - put '61.363,-157.733,Hot Springs on Upper Chuilnuk Rive,Sleetmute,Hotspring,H,H'; - put '61.267,-151.238,Hot Lake In Bottom of Crater Peak,Tyonek,Hotspring,H,H'; - put '58.24,-155.09,Hot Spring Near Katmai Pass,Mt. Katmai,Hotspring,H,H'; - put '58.27,-154.89,Hot Springs Near Mt Katmai,Mt. Katmai,Hotspring,H,H'; - put '58.92,-153.98,Hot Spring West of Cape Douglas,Afognak,Hotspring,H,H'; - put '55.368,-161.961,Fumarole,Port Moller,Hotspring,H,H'; - put '54.18,-165.41,Hot Springs on Akun Island,Unimak,Hotspring,H,H'; - put '54.23,-165.66,Hot Springs on Akun Island,Unimak,Hotspring,H,H'; - put '54.66,-164.55,Hot Spring on Unimak Island,Unimak,Hotspring,H,H'; - put '65.97,-154.033,Pocahontas Hot Springs,Melozitna,Hotspring,H,H'; - put '65.216,-149.993,Hutlinana Hot Springs,Livengood,Hotspring,109,43'; - put '57.085,-134.839,Baranof Warm Springs,Sitka,Hotspring,124,51'; - put '67.283,-155.067,Reed River Hot Spring,Survey Pass,Hotspring,122,50'; - put '66.15,-157.117,Hot Springs Near South Bm,Shungnak,Hotspring,122,50'; - put '66.233,-157.583,Hot Springs on Hawk River,Shungnak,Hotspring,122,50'; - put '65.81,-151.237,Kilo Hot Spring,Tanana,Hotspring,122,50'; - put '56.717,-132.005,Chief Shakes Hot Springs,Petersburg,Hotspring,122,50'; - put '69.33,-144.044,Okpilak Springs,Mt. Michelson,Hotspring,119,49'; - put '65.367,-161.25,Granite Mountain Hot Springs,Candle,Hotspring,120,49'; - put '57.644,-135.333,Nylen Hot Springs,Sitka,Hotspring,120,49'; - put '65.963,-150.919,Ray River Hot Spring,Tanana,Hotspring,117,47'; - put '64.924,-154.837,Horner Hot Springs,Ruby,Hotspring,117,47'; - put '65.267,-155.28,Hot Springs Near Dulbi River,Melozitna,Hotspring,126,52'; - put '57.807,-136.341,White Sulphur Springs (Hooniah H S,Sitka,Hotspring,111,44'; - put '57.781,-135.217,Tenakee Hot Springs,Sitka,Hotspring,109,43'; - put '52.19,-174.25,Hot Springs on Atka Island,Atka,Hotspring,167,75'; - put '55.334,-133.641,Dalton (Craig) Hot Springs,Craig,Hotspring,109,43'; - put '51.944,-178.547,Fumaroles on Little Sitkin Island,Rat Islands,Hotspring,H,H'; - put '57.771,-135.82,Hot Spring North Arm Peril Strait,Sitka,Hotspring,100,38'; - put '53.848,-166.873,Hot Springs Near Makushin Volcano,Unalaska,Hotspring,94,34'; - put '69.627,-146.027,Red Hill Spring,Mt. Michelson,Hotspring,91,33'; - put '62.081,-145.007,Upper Klawasi Warm Springs,Gulkana,Hotspring,86,30'; - put '62.058,-145.222,Mineral Spring (Lower Klawasi Cone,Gulkana,Hotspring,82,28'; - put '56.68,-131.882,Barnes Lake Hot Springs,Bradfield Cana,Hotspring,79,26'; - put '56.928,-158.12,Surprise Lake Hot Spring,Chignik,Hotspring,73,23'; - put '56.667,-132.28,Twin Lakes Hot Springs,Petersburg,Hotspring,70,21'; - put '66.383,-157.517,Warm Spring Near Purcell Mountain,Shungnak,Hotspring,68,20'; - put '57.348,-135.385,Hot Spring Near Fish Bay,Sitka,Hotspring,117,47'; - put '65.983,-150.56,Hot Springs on Lower Ray River,Tanana,Hotspring,142,61'; - put '55.863,-160.493,Hot Spring Near Port Moller,Port Moller,Hotspring,160,71'; - put '53.253,-168.358,Hot Springs Near Hot Springs Cove,Umnak,Hotspring,158,70'; - put '51.97,-176.61,Hot Springs on Adak Island,Adak,Hotspring,154,68'; - put '65.053,-146.057,Chena Hot Springs,Circle,Hotspring,153,67'; - put '58.37,-137.09,Hot Springs Near Icy Point,Mt. Fairweathe,Hotspring,153,67'; - put '56.836,-135.374,Goddard Hot Springs,Port Alexander,Hotspring,153,67'; - put '66.342,-150.85,Kanuti Hot Springs,Bettles,Hotspring,151,66'; - put '64.85,-162.3,Clear Creek Hot Springs,Solomon,Hotspring,149,65'; - put '53.233,-168.3,Hot Spring on Umnak Island,Umnak,Hotspring,149,65'; - put '61.2,-159.863,Hot Springs Near Ophir Creek,Russian Missio,Hotspring,145,63'; - put '57.865,-156.499,Gas Rocks Hot Spring,Ugashik,Hotspring,127,53'; - put '51.762,-178.77,Fumaroles on Gareloi Island,Gareloi Island,Hotspring,144,62'; - put '66.367,-156.767,Hot Springs Near Division Bm,Shungnak,Hotspring,140,60'; - put '64.7,-162.467,Hot Spring Near Kwiniuk River,Solomon,Hotspring,106,41'; - put '65.274,-148.847,Tolovana Hot Springs,Livengood,Hotspring,140,60'; - put '55.933,-131.559,Bell Island Hot Springs,Ketchikan,Hotspring,165,74'; - put '57.178,-157.015,Hot Spring Near Mother Goose Lake,Ugashik,Hotspring,138,59'; - put '65.483,-144.637,Circle Hot Springs,Circle,Hotspring,135,57'; - put '56.233,-131.267,Bradfield Canal Hot Springs,Bradfield Cana,Hotspring,135,57'; - put '65.006,-150.633,Manley Hot Springs,Tanana,Hotspring,133,56'; - put '65.129,-154.692,Melozi (Melozitna) Springs,Melozitna,Hotspring,131,55'; - put '66.217,-149.547,Dall Hot Springs,Beaver,Hotspring,129,54'; - put '55.217,-162.483,Hot Springs East of Cold Bay,Cold Bay,Hotspring,129,54'; - put '65.217,-162.9,Hot Springs Near Lava Creek,Bendeleben,Hotspring,127,53'; - put '54.944,-163.251,Hot Springs Near Morzhovoi,False Pass,Hotspring,145,63'; - put '36.48,-91.053,Warm Springs,Poplar Bluff,Hotspring,82,28'; - put '34.384,-93.607,Caddo Gap Springs,Little Rock,Hotspring,95,35'; - put '34.321,-93.739,Spring on Redland Mountain,Little Rock,Hotspring,77,25'; - put '34.406,-93.908,Spring on Little Missouri River,Little Rock,Hotspring,74,23'; - put '34.542,-93.024,Big Chalybeate Spring,Little Rock,Hotspring,79,26'; - put '34.513,-93.053,Hot Springs,Little Rock,Hotspring,147,64'; - put '33.008,-109.778,Grapevine Spring,Clifton,Hotspring,91,33'; - put '32.984,-113.324,Agua Caliente Springs,Ajo,Hotspring,102,39'; - put '34.563,-113.497,Kaiser Hot Spring,Prescott,Hotspring,99,37'; - put '34.076,-111.708,Spring (Hot),Holbrook,Hotspring,99,37'; - put '33.17,-110.528,Coolidge Dam Warm Spring,Mesa,Hotspring,99,37'; - put '34.695,-113.572,Cofer Hot Spring,Prescott,Hotspring,97,36'; - put '33.209,-110.818,Pioneer Spring,Mesa,Hotspring,91,33'; - put '33.988,-112.362,Castle Hot Springs,Phoenix,Hotspring,115,46'; - put '32.345,-110.247,Warm Springs,Tucson,Hotspring,91,33'; - put '36.196,-113.081,Lava Warm Springs,Grand Canyon,Hotspring,90,32'; - put '33.068,-109.975,Warm Spring,Clifton,Hotspring,90,32'; - put '31.943,-113.013,Quitobaquito Springs,Lukeville,Hotspring,90,32'; - put '31.695,-110.963,Agua Caliente Spring,Nogales,Hotspring,90,32'; - put '33.075,-109.298,Seep,Clifton,Hotspring,95,35'; - put '34.357,-111.71,Verde Hot Springs,Holbrook,Hotspring,104,40'; - put '32.998,-109.901,Indian Hot Springs,Silver City,Hotspring,118,48'; - put '33.669,-111.165,Roosevelt Dam Springs,Mesa,Hotspring,118,48'; - put '32.336,-110.24,Hookers Hot Springs,Tucson,Hotspring,127,53'; - put '33.4,-109.152,Hannah Hot Spring,Clifton,Hotspring,133,56'; - put '33.08,-109.303,Hot Spring,Clifton,Hotspring,138,59'; - put '32.741,-114.068,Radium Hot Springs,El Centro,Hotspring,140,60'; - put '32.971,-109.35,Gillard Hot Springs,Silver City,Hotspring,180,82'; - put '35.984,-114.742,Hot Spring,Kingman,Hotspring,H,H'; - put '33.78,-110.317,Warm Spring,Mesa,Hotspring,W,W'; - put '36.418,-113.956,Pakoon Springs,Grand Canyon,Hotspring,86,30'; - put '33.493,-112.94,El Dorado Hot Springs,Phoenix South,Hotspring,112,44'; - put '34.896,-114.308,Oatman Warm Springs,Needles,Hotspring,91,33'; - put '33.055,-109.295,Clifton Hot Springs,Clifton,Hotspring,102,39'; - put '34.445,-112.693,Spring,Prescott,Hotspring,72,22'; - put '32.337,-110.708,Mercer Spring,Tucson,Hotspring,77,25'; - put '34.649,-111.744,Soda Spring,Holbrook,Hotspring,75,24'; - put '33.253,-110.703,Spring,Mesa,Hotspring,75,24'; - put '31.362,-109.265,Astin Spring,Douglas,Hotspring,75,24'; - put '35.169,-113.851,Frost Mine Spring,Williams,Hotspring,70,21'; - put '31.673,-109.902,Antelope Spring,Douglas,Hotspring,79,26'; - put '35.213,-113.425,Casa Grande Spring,Williams,Hotspring,72,22'; - put '33.51,-110.403,Cassadore Spring,Mesa,Hotspring,73,23'; - put '34.32,-111.453,Tonto Natural Bridge Spring,Holbrook,Hotspring,72,22'; - put '34.405,-111.602,Spring,Holbrook,Hotspring,72,22'; - put '34.436,-109.402,Salado Springs,Saint Johns,Hotspring,72,22'; - put '31.592,-109.51,Lewis Spring,Douglas,Hotspring,68,20'; - put '33.046,-109.44,Eagle Creek Hot Springs,Clifton,Hotspring,97,36'; - put '36.509,-111.852,Colorado Pool,Marble Canyon,Hotspring,86,30'; - put '33.062,-109.482,Warm Spring,Clifton,Hotspring,73,23'; - put '31.637,-110.703,Monkey Spring,Nogales,Hotspring,82,28'; - put '32.281,-110.73,Agua Caliente,Tucson,Hotspring,86,30'; - put '32.327,-110.228,N-O Spring,Tucson,Hotspring,73,23'; - put '32.983,-110.373,Warm Spring,Tucson,Hotspring,79,26'; - put '33.152,-110.639,Mescal Warm Spring,Mesa,Hotspring,84,29'; - put '33.163,-110.662,Spring,Mesa,Hotspring,82,28'; - put '35.077,-113.267,Trout Creek Spring,Williams,Hotspring,81,27'; - put '33.438,-110.213,Warm Springs,Mesa,Hotspring,86,30'; - put '36.895,-113.913,Springs,Grand Canyon,Hotspring,79,26'; - put '35.96,-114.725,Hot Spring,Kingman,Hotspring,86,30'; - put '34.925,-114.221,Caliche Spring,Needles,Hotspring,79,26'; - put '33.915,-112.332,Mitchell Spring,Phoenix,Hotspring,79,26'; - put '33.831,-110.574,Salt Banks,Mesa,Hotspring,78,26'; - put '34.91,-113.608,Tom Brown Warm Spring,Prescott,Hotspring,82,28'; - put '38.873,-122.689,Seigler Springs,Santa Rosa,Hotspring,126,52'; - put '36.814,-117.763,Palm Spring,Death Valley,Hotspring,120,49'; - put '34.498,-119.341,Stingleys Hot Springs,Los Angeles,Hotspring,123,51'; - put '33.67,-117.325,"Wrenden Hot Sprs, Elsinore Hot Spr",Santa Ana,Hotspring,125,52'; - put '37.253,-118.373,Keough Hot Springs,Mariposa,Hotspring,124,51'; - put '36.229,-118.302,Jordan Hot Springs,Fresno,Hotspring,124,51'; - put '34.502,-119.346,Vickers Hot Springs,Los Angeles,Hotspring,124,51'; - put '36.123,-121.64,Slates Hot Springs,Santa Cruz,Hotspring,122,50'; - put '35.881,-118.67,California Hot Springs,Bakersfield,Hotspring,122,50'; - put '38.788,-122.777,Sulphur Creek,Santa Rosa,Hotspring,120,49'; - put '37.648,-118.806,Hot Springs,Mariposa,Hotspring,129,54'; - put '36.703,-120.86,Mercey Hot Springs,Santa Cruz,Hotspring,119,48'; - put '33.589,-117.511,San Juan Hot Springs,Santa Ana,Hotspring,120,49'; - put '38.785,-122.655,Harbin Springs,Santa Rosa,Hotspring,120,49'; - put '37.677,-118.79,Dehy Hot Spring,Mariposa,Hotspring,134,57'; - put '39.183,-122.7,Bartlett Springs,Ukiah,Hotspring,144,62'; - put '36.234,-121.546,Tassajara Hot Springs,Santa Cruz,Hotspring,144,62'; - put '36.144,-120.555,Coalinga Mineral Springs,Santa Cruz,Hotspring,112,44'; - put '39.033,-122.445,Jones Fountain of Life Spring,Ukiah,Hotspring,142,61'; - put '35.575,-118.534,"Miracle Hot Sprs, Hobo Hot Sprs",Bakersfield,Hotspring,119,48'; - put '33.284,-116.631,Warner Hot Spring,Santa Ana,Hotspring,138,59'; - put '38.237,-119.326,Buckeye Hot Spring,Walker Lake,Hotspring,140,60'; - put '41.266,-120.08,Hot Springs (Menlo Baths),Alturas,Hotspring,135,57'; - put '33.753,-117.495,Glen Ivy Hot Springs,Santa Ana,Hotspring,131,55'; - put '37.802,-118.532,Benton Hot Springs,Mariposa,Hotspring,134,57'; - put '38.691,-123.024,Skaggs Springs,Santa Rosa,Hotspring,135,56'; - put '35.62,-118.473,Scovern Hot Springs,Bakersfield,Hotspring,133,56'; - put '34.538,-119.56,Agua Caliente Spring,Los Angeles,Hotspring,133,56'; - put '33.558,-117.154,Murrietta Hot Springs,Santa Ana,Hotspring,132,56'; - put '39.226,-120.01,Brockway Hot Springs,Chico,Hotspring,131,55'; - put '41.036,-121.926,Hunt Hot Spring,Alturas,Hotspring,136,58'; - put '34.582,-119.044,Willett Hot Springs,Los Angeles,Hotspring,108,42'; - put '37.234,-118.881,Blaney Meadows Hot Springs,Mariposa,Hotspring,109,43'; - put '36.477,-118.404,Kern Hot Spring,Fresno,Hotspring,109,43'; - put '36.806,-117.771,Lower Warm Springs,Death Valley,Hotspring,110,43'; - put '34.482,-119.302,Matilija Hot Springs,Los Angeles,Hotspring,109,43'; - put '34.537,-119.879,San Marcos Hot Spring,Los Angeles,Hotspring,110,43'; - put '33.896,-117.057,Eden Hot Springs,Santa Ana,Hotspring,109,43'; - put '39.573,-120.348,Campbell Hot Springs,Chico,Hotspring,111,44'; - put '38.994,-122.742,Horseshoe Spring,Santa Rosa,Hotspring,108,42'; - put '33.969,-116.942,Highland Springs,Santa Ana,Hotspring,112,44'; - put '34.34,-117.173,"Warm Spring, Hot Spring",San Bernardino,Hotspring,108,42'; - put '41.219,-120.066,Squaw Baths,Alturas,Hotspring,106,41'; - put '40.142,-120.935,Indian Valley Hot Springs,Susanville,Hotspring,106,41'; - put '39.292,-122.821,Crabtree Hot Springs,Ukiah,Hotspring,106,41'; - put '37.108,-121.478,Gilroy Hot Springs,San Jose,Hotspring,106,41'; - put '39.227,-123.362,Orrs Springs,Ukiah,Hotspring,104,40'; - put '38.773,-122.705,Anderson Springs,Santa Rosa,Hotspring,108,42'; - put '38.858,-122.671,Howard Springs,Santa Rosa,Hotspring,113,45'; - put '34.461,-119.637,Montecito Hot Springs,Los Angeles,Hotspring,118,48'; - put '33.551,-117.167,Temecula Hot Springs,Santa Ana,Hotspring,116,47'; - put '33.835,-116.988,Gilman Hot Springs,Santa Ana,Hotspring,117,47'; - put '37.618,-119.074,Reds Meadow Hot Springs,Mariposa,Hotspring,115,46'; - put '35.528,-118.665,Democrat Hot Springs,Bakersfield,Hotspring,115,46'; - put '33.731,-118.348,Whites Point Hot Springs,Long Beach,Hotspring,115,46'; - put '37.532,-119.025,Fish Creek Hot Springs,Mariposa,Hotspring,110,43'; - put '39.032,-122.432,"Blank Spring, Manzanita Mine Sprs",Ukiah,Hotspring,112,45'; - put '37.327,-119.018,Mono Hot Springs,Mariposa,Hotspring,109,43'; - put '38.225,-119.217,The Hot Springs,Walker Lake,Hotspring,113,45'; - put '35.727,-118.408,Hot Spring,Bakersfield,Hotspring,113,45'; - put '41.6,-120.088,Leonards Hot Springs,Alturas,Hotspring,144,62'; - put '38.874,-123.518,Point Arena Hot Springs,Santa Rosa,Hotspring,111,44'; - put '41.126,-121.028,Kellog Hot Springs,Alturas,Hotspring,172,78'; - put '35.558,-118.612,Delonegha Hot Springs,Bakersfield,Hotspring,112,44'; - put '35.871,-116.23,Tecopa Hot Springs,Trona,Hotspring,118,48'; - put '41.86,-120.158,Fort Bidwell Hot Spring,Alturas,Hotspring,113,45'; - put '41.534,-120.078,Hot Springs (Surprise Valley),Alturas,Hotspring,208,98'; - put '33.345,-115.588,Mud Volcanoes,Salton Sea,Hotspring,W,W'; - put '41.012,-121.274,Hot Springs,Alturas,Hotspring,H,H'; - put '39.922,-120.024,Zamboni Hot Springs,Chico,Hotspring,H,H'; - put '38.979,-122.659,Fumarole,Santa Rosa,Hotspring,H,H'; - put '37.622,-119.028,Fumaroles,Mariposa,Hotspring,H,H'; - put '40.364,-120.243,Hot Spring,Susanville,Hotspring,204,96'; - put '38.767,-122.748,Little Geysers,Santa Rosa,Hotspring,210,99'; - put '33.328,-115.583,Mud Volcanoes,Salton Sea,Hotspring,W,W'; - put '41.67,-120.206,Lake City Hot Springs,Alturas,Hotspring,207,97'; - put '36.036,-117.802,Devils Kitchen,Death Valley,Hotspring,207,97'; - put '36.045,-117.769,Coso Hot Springs,Death Valley,Hotspring,207,97'; - put '40.382,-121.513,Morgan Hot Spring,Susanville,Hotspring,205,96'; - put '40.421,-121.375,Terminal Geyser,Susanville,Hotspring,205,96'; - put '41.19,-120.383,West Valley Reservoir Hot Spring,Alturas,Hotspring,171,77'; - put '38.802,-122.81,The Geysers,Santa Rosa,Hotspring,214,101'; - put '35.888,-116.258,Springs,Trona,Hotspring,W,W'; - put '34.185,-117.262,"Arrowhead Springs, Waterman Hot Sp",San Bernardino,Hotspring,194,90'; - put '33.823,-116.542,Palm Springs (Agua Caliente Spring,Santa Ana,Hotspring,104,40'; - put '41.196,-120.475,Springs,Alturas,Hotspring,W,W'; - put '41.959,-120.936,Warm Spring,Alturas,Hotspring,W,W'; - put '37.929,-121.965,Springs,San Jose,Hotspring,W,W'; - put '36.83,-117.736,Upper Warm Spring,Death Valley,Hotspring,W,W'; - put '33.343,-115.573,Mud Volcanoes,Salton Sea,Hotspring,W,W'; - put '35.536,-118.651,Spring (Hot),Bakersfield,Hotspring,W,W'; - put '33.332,-115.575,Mud Volcanoes,Salton Sea,Hotspring,W,W'; - put '35.967,-116.931,Warm Spring,Trona,Hotspring,W,W'; - put '33.28,-115.592,Mud Volcanoes,Salton Sea,Hotspring,W,W'; - put '33.288,-115.575,Mud Volcanoes,Salton Sea,Hotspring,W,W'; - put '33.312,-115.577,Mud Volcanoes,Salton Sea,Hotspring,W,W'; - put '33.313,-115.605,Mud Volcanoes,Salton Sea,Hotspring,W,W'; - put '40.393,-121.507,Growler Hot Spring,Susanville,Hotspring,203,95'; - put '35.148,-118.783,Warm Spring,Bakersfield,Hotspring,W,W'; - put '41.973,-122.202,Klamath Hot Spring,Weed,Hotspring,156,69'; - put '41.143,-121.11,Bassett Hot Springs,Alturas,Hotspring,174,79'; - put '38.58,-122.575,Calistoga Hot Springs,Santa Rosa,Hotspring,172,78'; - put '37.656,-118.834,Hot Creek Springs,Mariposa,Hotspring,171,77'; - put '41.229,-121.405,Little Hot Spring,Alturas,Hotspring,169,76'; - put '37.664,-118.802,The Tub,Mariposa,Hotspring,167,75'; - put '40.355,-120.257,Wendel Hot Springs,Susanville,Hotspring,205,96'; - put '38.768,-122.717,Castle Rock Springs,Santa Rosa,Hotspring,163,73'; - put '38.245,-119.205,Travertine Hot Springs,Walker Lake,Hotspring,180,82'; - put '39.002,-122.664,Sulphur Bank,Ukiah,Hotspring,156,69'; - put '39.057,-122.475,Elgin Mine,Ukiah,Hotspring,156,69'; - put '39.039,-122.421,Wilbur Springs,Ukiah,Hotspring,153,67'; - put '40.444,-121.409,Drakesbad,Susanville,Hotspring,151,66'; - put '40.457,-121.545,Mill Creek Springs,Susanville,Hotspring,150,66'; - put '38.048,-119.081,Hot Spring,Walker Lake,Hotspring,151,66'; - put '37.647,-118.859,Casa Diablo Hot Pool,Mariposa,Hotspring,165,74'; - put '41.607,-121.523,Hot Spot,Alturas,Hotspring,191,88'; - put '40.44,-121.434,Devils Kitchen,Susanville,Hotspring,203,95'; - put '40.302,-120.195,Amedee Hot Springs,Susanville,Hotspring,203,95'; - put '36.031,-117.833,Fumarole,Death Valley,Hotspring,203,95'; - put '40.447,-121.536,"Sulphur Works, Tophet Hot Springs",Susanville,Hotspring,199,93'; - put '40.455,-121.501,Bumpass Hell,Susanville,Hotspring,199,93'; - put '37.648,-118.914,Casa Diablo Hot Springs And Geyser,Mariposa,Hotspring,199,93'; - put '37.692,-118.839,Little Hot Creek Spring,Mariposa,Hotspring,180,82'; - put '34.596,-118.998,Sespe Hot Springs,Los Angeles,Hotspring,194,90'; - put '38.348,-119.4,Fales Hot Springs,Walker Lake,Hotspring,180,82'; - put '40.434,-121.399,Boiling Springs Lake,Susanville,Hotspring,190,88'; - put '41.615,-120.102,Seyferth Hot Springs,Alturas,Hotspring,185,85'; - put '41.407,-122.197,"Hot Spring, Fumaroles",Weed,Hotspring,183,84'; - put '37.993,-119.028,Paoha Island Springs,Mariposa,Hotspring,181,83'; - put '41.025,-121.924,Big Bend Hot Springs,Alturas,Hotspring,180,82'; - put '38.699,-119.846,Grovers Hot Springs,Walker Lake,Hotspring,147,64'; - put '37.665,-118.828,Hot Creek Gorge Springs,Mariposa,Hotspring,199,93'; - put '39.43,-122.538,"Sulphur Spring, Salt Spring",Ukiah,Hotspring,75,24'; - put '38.925,-122.77,Hildebrande Spring,Santa Rosa,Hotspring,77,25'; - put '38.203,-119.118,Warm Spring,Walker Lake,Hotspring,77,25'; - put '36.938,-121.565,Sargent Estate Warm Spring,Santa Cruz,Hotspring,77,25'; - put '34.826,-116.677,Newberry Spring,San Bernardino,Hotspring,77,25'; - put '41.919,-122.369,Bogus Soda Springs,Weed,Hotspring,76,24'; - put '39.053,-122.597,Quigley Soda Spring,Ukiah,Hotspring,82,28'; - put '41.252,-120.521,Warm Spring,Alturas,Hotspring,75,24'; - put '38.85,-122.693,Pine Cone Spring,Santa Rosa,Hotspring,78,26'; - put '38.339,-122.259,Napa Vichy Springs,Santa Rosa,Hotspring,76,24'; - put '38.892,-122.533,Baker Soda Spring,Santa Rosa,Hotspring,76,24'; - put '38.897,-122.882,England Springs,Santa Rosa,Hotspring,76,24'; - put '38.916,-122.799,Carlsbad Spring,Santa Rosa,Hotspring,76,24'; - put '38.192,-120.827,Valley Springs,Sacramento,Hotspring,75,24'; - put '38.85,-120.025,Myers Warm Spring,Sacramento,Hotspring,75,24'; - put '37.708,-118.813,Hot Spring,Mariposa,Hotspring,68,20'; - put '36.122,-117.217,Warm Sulphur Springs,Death Valley,Hotspring,80,27'; - put '35.682,-116.422,Saratoga Spring,Trona,Hotspring,82,28'; - put '33.733,-114.907,Mccoy Spring,Salton Sea,Hotspring,82,28'; - put '41.484,-120.764,Spring,Alturas,Hotspring,81,27'; - put '39.657,-123.585,Jackson Valley Mud Springs,Ukiah,Hotspring,80,27'; - put '39.198,-122.505,Pseudo Complexion Spring,Ukiah,Hotspring,81,27'; - put '38.85,-122.667,Bad Creek Spring,Santa Rosa,Hotspring,81,27'; - put '32.97,-116.423,Vallecitos Spring,San Diego,Hotspring,79,26'; - put '36.765,-120.901,Spring,Santa Cruz,Hotspring,81,27'; - put '34.159,-118.499,El Encino Springs,Los Angeles,Hotspring,79,26'; - put '35.879,-116.153,Resting Spring,Trona,Hotspring,80,27'; - put '41.828,-120.917,Pothole Spring,Alturas,Hotspring,78,26'; - put '39.348,-122.668,Fouts Springs,Ukiah,Hotspring,79,26'; - put '38.519,-122.26,"Napa Rock Soda Spring, Phillips So",Santa Rosa,Hotspring,78,26'; - put '38.838,-122.653,Spiers Springs,Santa Rosa,Hotspring,79,26'; - put '35.141,-116.101,Soda Station Springs,Trona,Hotspring,75,24'; - put '37.503,-121.904,Alameda Warm Springs,San Jose,Hotspring,80,27'; - put '39.429,-123.308,Muir Springs,Ukiah,Hotspring,68,20'; - put '37.924,-122.046,Sulphur Spring,San Francisco,Hotspring,75,24'; - put '40.58,-120.265,Tipton Springs,Susanville,Hotspring,70,21'; - put '39.697,-123.478,Pinches Spring,Ukiah,Hotspring,70,21'; - put '38.755,-122.285,Zim Zim Spring,Santa Rosa,Hotspring,70,21'; - put '37.083,-121.042,Spring In Oneill Forebay,San Jose,Hotspring,70,21'; - put '37.632,-121.762,Crohare Spring,San Jose,Hotspring,70,21'; - put '33.625,-115.325,Corn Spring,Salton Sea,Hotspring,72,22'; - put '36.117,-118.776,Ward Spring,Fresno,Hotspring,70,21'; - put '34.423,-119.538,Boron Spring,Los Angeles,Hotspring,72,22'; - put '39.002,-122.498,Grizzly Spring,Ukiah,Hotspring,68,20'; - put '39.088,-122.525,Sulphur Spring,Ukiah,Hotspring,68,20'; - put '38.125,-122.188,Vallejo White Sulphur Springs,Santa Rosa,Hotspring,68,20'; - put '38.31,-122.053,Tolenas Springs,Santa Rosa,Hotspring,68,20'; - put '41.45,-120.834,Kelly Hot Spring,Alturas,Hotspring,198,92'; - put '36.512,-116.821,Nevares Springs,Death Valley,Hotspring,102,39'; - put '37.888,-118.487,Bertrand Ranch Springs,Mariposa,Hotspring,70,21'; - put '35.483,-119.917,Mize Spring,Bakersfield,Hotspring,73,23'; - put '36.698,-117.848,Little Hunter Canyon Springs,Death Valley,Hotspring,81,27'; - put '38.995,-122.642,Davis Soda Spring,Santa Rosa,Hotspring,73,23'; - put '37.432,-121.308,Salt Grass Springs,San Jose,Hotspring,73,23'; - put '37.573,-121.445,Lone Tree Mineral Spring,San Jose,Hotspring,73,23'; - put '37.638,-118.887,Chance Spring,Mariposa,Hotspring,73,23'; - put '36.295,-120.985,Sulphur Springs,Santa Cruz,Hotspring,73,23'; - put '41.16,-120.403,Warm Spring,Alturas,Hotspring,70,21'; - put '35.4,-120.25,Cameta Warm Spring,San Luis Obisp,Hotspring,73,23'; - put '37.719,-118.735,Springs,Mariposa,Hotspring,75,24'; - put '35.588,-116.359,Sheep Creek Spring,Trona,Hotspring,73,23'; - put '40.568,-120.325,Sellicks Springs,Susanville,Hotspring,72,22'; - put '38.833,-122.357,One Shot Mining Co,Santa Rosa,Hotspring,72,22'; - put '38.95,-122.572,Soda Spring In Cache Formation,Santa Rosa,Hotspring,72,22'; - put '37.635,-118.72,Springs,Mariposa,Hotspring,72,22'; - put '36.13,-118.816,Soda Spring,Fresno,Hotspring,72,22'; - put '36.773,-120.898,Iridat Spring,Santa Cruz,Hotspring,73,23'; - put '33.545,-115.654,Canyon Spring,Salton Sea,Hotspring,97,36'; - put '36.675,-116.923,Keane Wonder Spring,Death Valley,Hotspring,93,34'; - put '36.331,-121.367,Paraiso Springs (Sulphur Spring),Santa Cruz,Hotspring,98,37'; - put '35.122,-120.542,Newsom Springs,San Luis Obisp,Hotspring,99,37'; - put '34.503,-120.219,Las Cruces Hot Springs,Santa Maria,Hotspring,99,37'; - put '38.49,-122.498,St Helena White Sulphur Spring,Santa Rosa,Hotspring,97,36'; - put '35.946,-116.189,Chappo Spring,Trona,Hotspring,80,27'; - put '40.019,-121.036,Spring,Susanville,Hotspring,99,37'; - put '40.44,-121.42,Hot Springs Valley,Susanville,Hotspring,83,28'; - put '32.947,-116.305,Agua Caliente Springs,San Diego,Hotspring,101,38'; - put '39.196,-122.714,Newman Springs,Ukiah,Hotspring,94,35'; - put '37.63,-118.808,Whitmore Hot Springs,Mariposa,Hotspring,95,35'; - put '35.269,-120.851,Pecho Warm Springs,San Luis Obisp,Hotspring,95,35'; - put '33.514,-117.604,Spring,Santa Ana,Hotspring,95,35'; - put '38.958,-122.701,Riviera Beach Spring,Santa Rosa,Hotspring,93,34'; - put '36.33,-117.948,Dirty Socks Hot Spring,Death Valley,Hotspring,93,34'; - put '37.847,-121.635,Byron Hot Springs,San Jose,Hotspring,96,36'; - put '35.433,-118.478,Yates Hot Springs,Bakersfield,Hotspring,100,38'; - put '35.663,-120.692,Paso Robles Artesian Spring,San Luis Obisp,Hotspring,102,39'; - put '34.507,-119.291,Wheeler Springs,Los Angeles,Hotspring,102,39'; - put '33.8,-116.927,Soboda Hot Springs,Santa Ana,Hotspring,102,39'; - put '40.223,-122.747,Stinking Springs,Redding,Hotspring,101,38'; - put '38.8,-123.17,Hoods Hot Springs,Santa Rosa,Hotspring,100,38'; - put '37.029,-117.383,Grapevine Springs,Goldfield,Hotspring,100,38'; - put '36.084,-121.584,Dolans Hot Spring,Santa Cruz,Hotspring,98,37'; - put '36.21,-118.176,Soda Springs,Fresno,Hotspring,100,38'; - put '33.664,-117.913,Fairview Hot Spring,Santa Ana,Hotspring,96,36'; - put '35.143,-116.813,Paradise Spring,Trona,Hotspring,100,38'; - put '33.837,-117.145,Lakeview Hot Springs,Santa Ana,Hotspring,100,38'; - put '33.201,-115.577,Mud Pots,Salton Sea,Hotspring,100,38'; - put '33.212,-115.591,Mud Pots,Salton Sea,Hotspring,100,38'; - put '33.217,-115.58,Wister Mud Pot,Salton Sea,Hotspring,100,38'; - put '32.617,-116.189,Jacumba Hot Springs,San Diego,Hotspring,101,38'; - put '36.618,-121.845,Sulphur Hot Spring,Santa Cruz,Hotspring,100,38'; - put '36.495,-117.893,Springs,Death Valley,Hotspring,86,30'; - put '38.033,-118.902,Mono Basin Warm Springs,Walker Lake,Hotspring,88,31'; - put '35.908,-120.367,Table Mountain (Spring),San Luis Obisp,Hotspring,88,31'; - put '34.271,-116.838,Pan Hot Springs,San Bernardino,Hotspring,88,31'; - put '40.238,-122.11,Tuscan Springs,Redding,Hotspring,86,30'; - put '40.245,-120.007,High Rock Spring,Susanville,Hotspring,86,30'; - put '38.55,-122.72,Mark West Springs,Santa Rosa,Hotspring,88,31'; - put '43.513,-119.903,Springs at Tecolote Tunnel,Los Angeles,Hotspring,93,34'; - put '39.728,-120.547,Mclear Warm Springs,Chico,Hotspring,86,30'; - put '38.835,-122.731,Gordon Warm Springs,Santa Rosa,Hotspring,97,36'; - put '39.166,-123.159,Vichy Springs,Ukiah,Hotspring,85,29'; - put '38.936,-122.907,Highland Springs,Santa Rosa,Hotspring,84,29'; - put '37.398,-121.794,Mineral Springs,San Jose,Hotspring,84,29'; - put '33.436,-117.324,De Luz Warm Springs,Santa Ana,Hotspring,85,29'; - put '33.512,-115.827,Dos Palmas Spring,Salton Sea,Hotspring,84,29'; - put '39.022,-122.444,Abbott Mine,Ukiah,Hotspring,86,30'; - put '34.605,-118.561,Warm Spring,Los Angeles,Hotspring,92,33'; - put '41.659,-123.319,Sulphur Springs,Weed,Hotspring,84,29'; - put '38.394,-122.552,Los Guilicos Warm Springs,Santa Rosa,Hotspring,88,31'; - put '41.492,-120.7,Essex Springs,Alturas,Hotspring,91,33'; - put '38.654,-122.484,Aetna Springs,Santa Rosa,Hotspring,91,33'; - put '35.842,-117.38,Bainter Spring,Trona,Hotspring,92,33'; - put '34.228,-117.483,Tylers Bath Spring,San Bernardino,Hotspring,92,33'; - put '33.363,-117.017,Agua Tibia Spring,Santa Ana,Hotspring,92,33'; - put '41.167,-120.032,Bare Ranch Spring,Alturas,Hotspring,90,32'; - put '35.978,-116.273,Shoshone Spring,Trona,Hotspring,90,32'; - put '33.407,-116.035,Fish Springs,Santa Ana,Hotspring,90,32'; - put '35.582,-120.666,Santa Ysabel Springs (Sulphur Spr),San Luis Obisp,Hotspring,92,33'; - put '34.537,-119.613,Little Caliente Spring,Los Angeles,Hotspring,90,32'; - put '39.006,-122.787,Big Soda Spring,Ukiah,Hotspring,90,32'; - put '35.439,-119.846,Carneros Spring,Bakersfield,Hotspring,90,32'; - put '36.441,-116.829,Travertine Springs,Death Valley,Hotspring,90,32'; - put '37.88,-122.627,Rocky Point Springs,San Francisco,Hotspring,90,32'; - put '39.227,-107.224,Penny Hot Springs,Leadville,Hotspring,133,56'; - put '38.732,-106.178,Hortense Hot Spring,Montrose,Hotspring,181,83'; - put '37.4,-107.849,Tripp Hot Springs,Durango,Hotspring,111,44'; - put '40.073,-106.113,Hot Sulphur Springs,Craig,Hotspring,111,44'; - put '39.739,-105.512,Idaho Springs,Denver,Hotspring,115,46'; - put '39.552,-107.412,South Canyon Hot Springs,Leadville,Hotspring,118,48'; - put '39.548,-107.322,Glenwood Springs,Leadville,Hotspring,124,51'; - put '38.133,-107.736,Orvis Hot Spring,Montrose,Hotspring,126,52'; - put '39.017,-105.793,Hartsel Hot Springs,Denver,Hotspring,126,52'; - put '38.733,-106.162,Mount Princeton Hot Springs,Montrose,Hotspring,133,56'; - put '37.752,-108.131,Paradise Warm Spring,Cortez,Hotspring,115,46'; - put '37.747,-106.831,Wagon Wheel Gap Hot Springs,Durango,Hotspring,135,57'; - put '37.263,-107.011,Pagosa Springs,Durango,Hotspring,136,58'; - put '38.812,-106.226,Cottonwood Hot Springs,Montrose,Hotspring,136,58'; - put '38.168,-105.924,Mineral Hot Springs,Pueblo,Hotspring,140,60'; - put '40.559,-106.849,Routt Hot Springs,Craig,Hotspring,147,64'; - put '38.021,-107.672,Ouray Hot Springs,Montrose,Hotspring,156,69'; - put '38.498,-106.076,Poncha Hot Springs,Montrose,Hotspring,160,71'; - put '38.514,-106.508,Upper Waunita Hot Springs,Montrose,Hotspring,176,80'; - put '38.272,-107.1,Cebolla Hot Springs,Montrose,Hotspring,106,41'; - put '37.313,-107.344,Piedra River Hot Springs,Durango,Hotspring,108,42'; - put '38.517,-106.515,Lower Waunita Hot Springs,Montrose,Hotspring,167,75'; - put '38.816,-106.873,Ranger Hot Spring,Montrose,Hotspring,81,27'; - put '37.294,-105.784,Dexter Spring,Trinidad,Hotspring,68,20'; - put '38.634,-106.072,Browns Grotto Warm Spring,Montrose,Hotspring,73,23'; - put '39.164,-106.062,Rhodes Warm Spring,Leadville,Hotspring,75,24'; - put '38.836,-106.825,Cement Creek Hot Spring,Montrose,Hotspring,77,25'; - put '38.653,-106.056,Browns Canyon Warm Spring,Montrose,Hotspring,77,25'; - put '37.033,-106.805,Stinking Springs,Durango,Hotspring,81,27'; - put '37.747,-108.117,Geyser Warm Spring,Cortez,Hotspring,82,28'; - put '38.479,-105.891,Swissvale Warm Springs,Pueblo,Hotspring,82,28'; - put '37.751,-106.317,Shaw Springs,Durango,Hotspring,86,30'; - put '37.728,-107.054,Birdsie Warm Spring,Durango,Hotspring,86,30'; - put '37.741,-107.034,Antelope Spring,Durango,Hotspring,90,32'; - put '39.628,-107.106,Dotsero Warm Springs,Leadville,Hotspring,90,32'; - put '38.485,-105.91,Wellsville Warm Spring,Pueblo,Hotspring,91,33'; - put '38.014,-108.054,Lemon Hot Spring,Moab,Hotspring,91,33'; - put '37.391,-107.846,"Trimble Hot Spr, Stratten Warm Spr",Durango,Hotspring,97,36'; - put '38.192,-105.816,Valley View Hot Springs,Pueblo,Hotspring,99,37'; - put '38.433,-105.261,Canon City Hot Springs,Pueblo,Hotspring,104,40'; - put '39.012,-106.891,Conundrum Hot Springs,Leadville,Hotspring,100,38'; - put '37.511,-106.945,Rainbow Hot Springs,Durango,Hotspring,104,40'; - put '40.467,-107.952,Juniper Hot Springs,Craig,Hotspring,100,38'; - put '40.483,-106.827,Steamboat Springs,Craig,Hotspring,102,39'; - put '37.771,-108.091,Dunton Hot Spring,Cortez,Hotspring,108,42'; - put '37.453,-107.803,Pinkerton Hot Springs,Durango,Hotspring,90,32'; - put '39.932,-105.277,Eldorado Springs,Denver,Hotspring,79,26'; - put '27.074,-82.233,Little Salt Spring,Tampa,Hotspring,81,27'; - put '27.06,-82.261,Warm Mineral Springs (Big Salt Spr,Tampa,Hotspring,86,30'; - put '32.92,-84.438,Barker Spring,Phenix City,Hotspring,73,23'; - put '32.964,-84.499,Thundering Spring,Phenix City,Hotspring,75,24'; - put '33.018,-84.327,Taylor Spring,Atlanta,Hotspring,75,24'; - put '32.862,-84.65,Parkman Spring,Phenix City,Hotspring,77,25'; - put '33.037,-84.374,Lifsey Spring,Atlanta,Hotspring,79,26'; - put '32.893,-84.69,Warm Springs,Phenix City,Hotspring,88,31'; - put '32.873,-84.547,Tom Brown Spring,Phenix City,Hotspring,68,20'; - put '19.407,-155.277,Steam Vents,Hawaii,Hotspring,H,H'; - put '19.46,-154.847,Isaac Hale Park Spring,Hawaii,Hotspring,97,36'; - put '19.496,-154.876,Warm Vapor,Hawaii,Hotspring,W,W'; - put '19.373,-155.188,Steam Vents,Hawaii,Hotspring,H,H'; - put '19.39,-155.311,Steam Vents,Hawaii,Hotspring,H,H'; - put '19.434,-155.272,Steam Vents,Hawaii,Hotspring,H,H'; - put '19.486,-155.598,Steam Vents,Hawaii,Hotspring,H,H'; - put '19.466,-154.943,Steam Vents,Hawaii,Hotspring,H,H'; - put '19.421,-155.62,Steam Vents,Hawaii,Hotspring,H,H'; - put '19.201,-155.384,Waiwelawela Point Spring,Hawaii,Hotspring,90,32'; - put '19.593,-154.928,Akins Spring,Hawaii,Hotspring,84,29'; - put '44.721,-115.01,Thomas Creek Ranch Hot Spring,Challis,Hotspring,138,59'; - put '45.431,-116.015,Cow Flats Hot Spring,Grangeville,Hotspring,138,59'; - put '44.062,-115.685,Pine Flat Hot Springs,Challis,Hotspring,138,59'; - put '44.382,-115.841,Dash Creek Hot Springs,Challis,Hotspring,138,59'; - put '44.077,-115.553,Haven Lodge Hot Spring,Challis,Hotspring,147,64'; - put '43.647,-114.816,Skillern Hot Springs,Hailey,Hotspring,140,60'; - put '43.789,-115.434,Dutch Frank Hot Spring,Hailey,Hotspring,149,65'; - put '43.54,-115.288,Bridge Hot Springs,Hailey,Hotspring,138,59'; - put '43.72,-115.617,Smith Cabin Hot Spring,Hailey,Hotspring,138,59'; - put '42.688,-114.826,Banbury Hot Spring,Twin Falls,Hotspring,138,59'; - put '45.035,-115.561,Sheep Creek Hot Spring,Elk City,Hotspring,136,58'; - put '44.245,-114.885,Elkhorn Hot Spring,Challis,Hotspring,136,58'; - put '44.642,-115.693,Mollys Hot Spring,Challis,Hotspring,138,59'; - put '43.811,-115.116,Atlanta Hot Springs,Hailey,Hotspring,140,60'; - put '44.679,-116.231,White Licks Hot Spring,Baker,Hotspring,140,60'; - put '45.512,-115.046,Barth Hot Springs,Elk City,Hotspring,140,60'; - put '43.696,-115.658,Sheep Creek Bridge Hot Spring,Hailey,Hotspring,142,61'; - put '44.914,-115.722,Teapot Hot Spring,Challis,Hotspring,142,61'; - put '43.788,-115.444,Straight Creek Hot Spring,Hailey,Hotspring,144,62'; - put '43.116,-115.305,Latty Hot Spring,Hailey,Hotspring,144,62'; - put '45.039,-116.291,Zims Resort Hot Springs,Grangeville,Hotspring,144,62'; - put '43.049,-114.952,White Arrow Hot Spring,Hailey,Hotspring,145,63'; - put '44.645,-114.739,Upper Loon Creek Hot Springs,Challis,Hotspring,145,63'; - put '43.383,-114.931,Wardrop Hot Spring,Hailey,Hotspring,147,64'; - put '44.531,-116.754,Fairchild Hot Spring,Baker,Hotspring,126,52'; - put '44.661,-114.652,Foster Ranch Hot Springs,Challis,Hotspring,135,57'; - put '44.051,-115.829,Dan Hodges Hot Spring,Challis,Hotspring,140,60'; - put '43.506,-114.354,Hailey Hot Springs,Hailey,Hotspring,131,55'; - put '43.982,-114.486,West Pass Hot Spring,Hailey,Hotspring,124,51'; - put '43.641,-114.487,Warfield Hot Spring,Hailey,Hotspring,124,51'; - put '44.145,-112.554,Lidy Hot Springs,Dubois,Hotspring,124,51'; - put '44.054,-115.907,Hot Spring Campground,Challis,Hotspring,124,51'; - put '42.032,-115.363,Murphy Hot Springs,Twin Falls,Hotspring,126,52'; - put '43.561,-114.415,Clarendon Hot Springs,Hailey,Hotspring,126,52'; - put '43.423,-114.627,Elk Creek Hot Spring,Hailey,Hotspring,126,52'; - put '43.553,-115.267,Paradise Hot Springs,Hailey,Hotspring,126,52'; - put '42.308,-111.707,Maple Grove Hot Springs,Preston,Hotspring,172,78'; - put '45.013,-113.605,Sharkey Hot Spring,Dillon,Hotspring,126,52'; - put '44.73,-114.993,Sunflower Hot Springs,Challis,Hotspring,149,65'; - put '43.974,-114.499,Lower Bowery Hot Spring,Hailey,Hotspring,129,54'; - put '43.724,-115.604,Loftus Hot Spring,Hailey,Hotspring,129,54'; - put '44.676,-115.943,Gold Fork Hot Spring,Challis,Hotspring,127,53'; - put '44.044,-115.851,Donlay Ranch Hot Spring,Challis,Hotspring,131,55'; - put '44.264,-114.818,Basin Creek Hot Spring,Challis,Hotspring,133,56'; - put '44.652,-114.734,Owen Cabin Hot Spring,Challis,Hotspring,133,56'; - put '43.605,-115.664,Rattlesnake Hot Spring,Hailey,Hotspring,133,56'; - put '43.605,-114.948,Lightfoot Hot Springs,Hailey,Hotspring,133,56'; - put '45.788,-115.198,Red River Hot Springs,Elk City,Hotspring,131,55'; - put '44.632,-115.697,South Fork Plunge,Challis,Hotspring,129,54'; - put '44.853,-116.442,Starkey Hot Springs,Baker,Hotspring,131,55'; - put '42.692,-114.859,Hot Sulphur (Miracle Hot) Springs,Twin Falls,Hotspring,131,55'; - put '44.045,-115.842,Corder Hot Spring,Challis,Hotspring,131,55'; - put '44.247,-114.676,Robinson Bar Hot Springs,Challis,Hotspring,131,55'; - put '44.785,-114.855,Cox Hot Springs,Challis,Hotspring,131,55'; - put '43.637,-115.13,Willow Creek Hot Spring,Hailey,Hotspring,131,55'; - put '43.803,-115.401,Granite Creek Hot Spring,Hailey,Hotspring,131,55'; - put '43.129,-115.34,Coyote Hot Spring,Hailey,Hotspring,135,57'; - put '44.211,-116.71,Cove Creek Hot Spring,Baker,Hotspring,131,55'; - put '44.16,-115.167,Grandjean Hot Spring,Challis,Hotspring,H,H'; - put '43.755,-115.571,Ninemeyer Hot Springs,Hailey,Hotspring,169,76'; - put '43.701,-114.738,Big Smokey Hot Spring,Hailey,Hotspring,H,H'; - put '43.831,-115.192,Queens River Hot Spring,Hailey,Hotspring,H,H'; - put '43.817,-115.046,Leggit Creek Hot Spring,Hailey,Hotspring,H,H'; - put '43.718,-115.563,Basset Hot Spring,Hailey,Hotspring,H,H'; - put '43.588,-115.988,Mores Creek Hot Spring,Hailey,Hotspring,H,H'; - put '44.951,-114.704,Mormon Ranch Warm Spring,Challis,Hotspring,H,H'; - put '44.896,-114.563,Forge Creek Hot Springs,Challis,Hotspring,H,H'; - put '44.77,-115.663,Billy Hot Spring,Challis,Hotspring,H,H'; - put '44.628,-115.197,Sheepeater Hot Springs,Challis,Hotspring,H,H'; - put '44.585,-115.072,Sulphur Creek Hot Spring,Challis,Hotspring,H,H'; - put '44.554,-115.301,Sulphur Creek Hot Spring,Challis,Hotspring,H,H'; - put '42.107,-113.39,Blm Well (Frazier Hot Spring),Pocatello,Hotspring,203,95'; - put '44.4,-115.82,Goat Hot Springs,Challis,Hotspring,H,H'; - put '45.307,-114.338,Big Creek Hot Springs,Elk City,Hotspring,199,93'; - put '44.583,-116.112,Cascade Reservoir Hot Spring,Baker,Hotspring,H,H'; - put '45.17,-115.807,Secesh Hot Spring,Elk City,Hotspring,H,H'; - put '46.235,-114.707,Prospector Hot Springs,Hamilton,Hotspring,H,H'; - put '46.138,-115.09,Stuart Hot Springs,Hamilton,Hotspring,H,H'; - put '46.006,-115.021,Marten Hot Springs,Hamilton,Hotspring,H,H'; - put '42.374,-111.726,Mound Valley Warm Spring,Preston,Hotspring,W,W'; - put '43.255,-114.829,Mormon Reservoir Warm Spring,Hailey,Hotspring,W,W'; - put '44.639,-115.671,Warm Lake Springs,Challis,Hotspring,W,W'; - put '44.445,-115.239,Bear Valley Hot Spring,Challis,Hotspring,W,W'; - put '44.354,-117.071,Old Homestead Warm Spring,Baker,Hotspring,W,W'; - put '43.327,-113.918,Condie Hot Springs,Idaho Falls,Hotspring,124,51'; - put '43.038,-112.004,Alkali Flats Warm Spring,Idaho Falls,Hotspring,93,34'; - put '44.43,-115.762,Bull Creek Hot Springs,Challis,Hotspring,H,H'; - put '42.119,-111.928,Squaw Hot Springs,Preston,Hotspring,163,73'; - put '42.333,-111.716,Cleveland Hot Springs,Preston,Hotspring,151,66'; - put '43.671,-115.696,Twin Springs,Hailey,Hotspring,151,66'; - put '43.951,-116.353,Roystone Hot Springs,Boise,Hotspring,151,66'; - put '42.704,-114.856,Salmon Falls Hot Spring,Twin Falls,Hotspring,153,67'; - put '44.16,-115.177,Sacajawea Hot Springs,Challis,Hotspring,153,67'; - put '43.738,-115.583,Vaughn Hot Spring,Hailey,Hotspring,154,68'; - put '44.669,-116.305,Council Mtn Hot Springs,Baker,Hotspring,154,68'; - put '44.831,-115.215,Kwiskwis Hot Spring,Challis,Hotspring,156,69'; - put '43.684,-114.41,Guyer Hot Springs,Hailey,Hotspring,158,70'; - put '43.155,-115.518,Hot Springs,Hailey,Hotspring,158,70'; - put '44.586,-116.63,Lakey Hot Spring,Baker,Hotspring,158,70'; - put '42.333,-115.65,Indian Hot Springs,Twin Falls,Hotspring,160,71'; - put '42.637,-114.892,Poison Springs,Twin Falls,Hotspring,H,H'; - put '44.813,-115.123,Middle Fork Indian Creek Hot Sprin,Challis,Hotspring,162,72'; - put '44.072,-115.543,Kirkham Hot Springs,Challis,Hotspring,149,65'; - put '43.328,-114.399,Magic Hot Springs,Hailey,Hotspring,163,73'; - put '43.293,-114.908,Barrons Hot Spring,Hailey,Hotspring,167,75'; - put '44.154,-115.993,Warm Springs Creek Hot Springs,Challis,Hotspring,167,75'; - put '44.268,-114.748,Sunbeam Hot Springs,Challis,Hotspring,169,76'; - put '44.092,-116.052,Deer Hot Springs,Baker,Hotspring,176,80'; - put '43.563,-114.798,Worswick Hot Springs,Hailey,Hotspring,180,82'; - put '42.133,-111.928,Battle Creek Hot Springs,Preston,Hotspring,183,84'; - put '44.364,-115.856,Boiling Springs,Challis,Hotspring,185,85'; - put '44.157,-115.314,Bonneville Hot Springs,Challis,Hotspring,185,85'; - put '44.799,-115.129,Indian Creek Hot Spring,Challis,Hotspring,190,88'; - put '44.568,-115.695,Vulcan Hot Springs,Challis,Hotspring,190,88'; - put '44.306,-116.745,Crane Creek Hot Springs,Baker,Hotspring,198,92'; - put '44.416,-116.031,Cabarton Hot Spring,Baker,Hotspring,160,71'; - put '42.781,-111.983,Portneuf River Warm Spring,Preston,Hotspring,93,34'; - put '44.621,-115.985,Badley Warm Spring,Challis,Hotspring,100,38'; - put '45.201,-116.312,Boulder Creek Spring,Grangeville,Hotspring,82,28'; - put '42.24,-113.588,Sears Spring,Pocatello,Hotspring,84,29'; - put '44.257,-112.639,Warm Springs,Dubois,Hotspring,84,29'; - put '42.911,-111.556,Henry Warm Spring,Preston,Hotspring,86,30'; - put '43.021,-111.695,Wilson Lake Warm Spring,Driggs,Hotspring,86,30'; - put '44.495,-116.732,Keithly Warm Spring,Baker,Hotspring,86,30'; - put '42.655,-111.643,Steamboat Hot Spring,Preston,Hotspring,88,31'; - put '45.152,-116.296,Stinky Warm Spring,Grangeville,Hotspring,88,31'; - put '42.725,-112.872,Indian Springs,Pocatello,Hotspring,90,32'; - put '43.114,-112.167,Yandell Springs,Idaho Falls,Hotspring,90,32'; - put '44.64,-116.045,Arling Hot Spring,Baker,Hotspring,90,32'; - put '42.657,-111.604,Soda Springs,Preston,Hotspring,82,28'; - put '45.07,-115.826,Lick Creek Warm Spring,Elk City,Hotspring,91,33'; - put '42.337,-111.726,Treasureton Hot Springs,Preston,Hotspring,95,35'; - put '44.382,-114.088,Little Antelope Flat Warm Spring,Challis,Hotspring,93,34'; - put '43.21,-111.495,Brockman Creek Hot Spring,Driggs,Hotspring,95,35'; - put '44.398,-115.149,Cape Horn Warm Springs,Challis,Hotspring,95,35'; - put '42.337,-114.509,Nat-Soo-Pah Warm Spring,Twin Falls,Hotspring,97,36'; - put '44.9,-115.505,Hot Creek Warm Spring,Challis,Hotspring,97,36'; - put '42.405,-114.142,Artesian City Hot Springs,Twin Falls,Hotspring,99,37'; - put '42.762,-115.739,Indian Bathtub Hot Springs,Twin Falls,Hotspring,99,37'; - put '43.227,-111.109,Alpine Warm Spring,Driggs,Hotspring,99,37'; - put '42.545,-112.906,Rockland Warm Springs,Pocatello,Hotspring,100,38'; - put '43.805,-114.585,Russian John Hot Spring,Hailey,Hotspring,100,38'; - put '43.779,-114.539,Easley Hot Springs,Hailey,Hotspring,100,38'; - put '44.26,-114.838,Mormon Bend Hot Spring,Challis,Hotspring,100,38'; - put '44.64,-113.504,Big Eightmile Creek Warm Spring,Dubois,Hotspring,91,33'; - put '42.339,-112.436,Kent Warm Spring,Pocatello,Hotspring,75,24'; - put '42.957,-112.458,Tadpole Warm Spring,Pocatello,Hotspring,68,20'; - put '43.607,-111.189,Taylor Springs,Driggs,Hotspring,68,20'; - put '43.972,-116.325,Sweet Warm Spring,Boise,Hotspring,68,20'; - put '44.717,-115.703,Dollar Creek Warm Spring,Challis,Hotspring,68,20'; - put '42.625,-113.107,Lake Walcott Hot Spring,Pocatello,Hotspring,70,21'; - put '42.015,-114.237,Thoroughbred Warm Springs,Twin Falls,Hotspring,69,21'; - put '42.928,-111.592,Blackfoot Reservoir Warm Spring,Preston,Hotspring,72,22'; - put '42.286,-113.446,"Rice Spring, Ward Spring",Pocatello,Hotspring,72,22'; - put '42.085,-113.564,Grape Creek Warm Spring,Pocatello,Hotspring,72,22'; - put '43.66,-111.715,Elkhorn Warm Spring,Driggs,Hotspring,72,22'; - put '43.367,-113.884,Rush Warm Spring,Idaho Falls,Hotspring,72,22'; - put '44.306,-117.042,Weiser Warm Springs,Baker,Hotspring,72,22'; - put '45.344,-114.463,Owl Creek Hot Springs,Elk City,Hotspring,122,50'; - put '44.454,-112.696,Big Spring,Dubois,Hotspring,73,23'; - put '44.269,-113.449,Barney Hot Springs,Dubois,Hotspring,82,28'; - put '43.5,-115.308,Towne Creek Warm Spring,Hailey,Hotspring,75,24'; - put '43.161,-116.332,Thomas Flats Warm Spring,Boise,Hotspring,75,24'; - put '44.612,-113.363,Whittaker Warm Springs,Dubois,Hotspring,75,24'; - put '42.173,-112.239,Malad Warm Spring,Pocatello,Hotspring,77,25'; - put '42.156,-112.348,Pleasantview Warm Springs,Pocatello,Hotspring,77,25'; - put '42.025,-112.226,Prices Warm Spring,Pocatello,Hotspring,77,25'; - put '42.865,-116.368,Lower Birch Spring,Jordan Valley,Hotspring,77,25'; - put '43.423,-111.414,Fall Creek Mineral Springs,Driggs,Hotspring,77,25'; - put '42.986,-111.743,Blackfoot River Warm Spring,Preston,Hotspring,79,26'; - put '42.426,-111.378,Pescadero Warm Spring,Preston,Hotspring,79,26'; - put '44.091,-111.458,Ashton Warm Spring,Ashton,Hotspring,79,26'; - put '42.056,-112.246,Woodruff Hot Spring,Pocatello,Hotspring,81,27'; - put '43.831,-116.396,Highland Land Co Warm Spring,Boise,Hotspring,73,23'; - put '44.847,-115.696,Holdover Hot Spring,Challis,Hotspring,117,47'; - put '43.047,-114.929,Hot Sulphur Lake,Hailey,Hotspring,81,27'; - put '43.603,-115.07,Baumgartner Hot Spring,Hailey,Hotspring,111,44'; - put '44.465,-116.037,Belvidere Hot Spring,Baker,Hotspring,111,44'; - put '42.621,-112.008,Lava Hot Springs,Pocatello,Hotspring,113,45'; - put '43.823,-115.327,Weatherby Hot Spring,Hailey,Hotspring,113,45'; - put '43.335,-115.044,Wolf Hot Spring,Hailey,Hotspring,113,45'; - put '44.905,-113.929,Goldbug Hot Spring,Dubois,Hotspring,113,45'; - put '45.095,-113.836,Salmon Hot Spring,Dillon,Hotspring,113,45'; - put '45.277,-115.912,Burgdorf Hot Springs,Elk City,Hotspring,113,45'; - put '44.836,-114.79,Hospital Hot Spring,Challis,Hotspring,115,46'; - put '44.72,-114.016,Cronks Canyon Hot Spring,Challis,Hotspring,115,46'; - put '44.721,-115.207,Pistol Creek Hot Springs,Challis,Hotspring,115,46'; - put '43.791,-111.435,Pincock (Green Canyon) Hot Springs,Driggs,Hotspring,111,44'; - put '43.414,-116.707,Givens Hot Springs,Boise,Hotspring,117,47'; - put '45.503,-114.463,Horse Creek Hot Springs,Elk City,Hotspring,109,43'; - put '46.464,-115.035,Weir Creek Hot Springs,Hamilton,Hotspring,117,47'; - put '42.115,-111.264,Bear Lake Hot Springs,Preston,Hotspring,118,48'; - put '42.173,-113.861,Oakley Hot Spring,Pocatello,Hotspring,118,48'; - put '46.463,-114.872,Jerry Johnson Hot Springs,Hamilton,Hotspring,118,48'; - put '43.644,-111.687,Heise Hot Springs,Driggs,Hotspring,120,49'; - put '44.799,-114.806,Lower Loon Creek Hot Spring,Challis,Hotspring,120,49'; - put '44.253,-115.891,Rocky Canyon Hot Springs,Challis,Hotspring,120,49'; - put '46.316,-115.258,Stanley Hot Springs,Hamilton,Hotspring,120,49'; - put '43.779,-115.486,Brown Creek Hot Spring,Hailey,Hotspring,122,50'; - put '44.628,-114.601,Shower Bath Springs,Challis,Hotspring,122,50'; - put '44.171,-114.624,Slate Creek Hot Spring,Challis,Hotspring,122,50'; - put '44.392,-115.834,Ground Hog Hot Springs,Challis,Hotspring,100,38'; - put '42.797,-115.723,"Bat Hot Spring, Pence Hot Spring",Twin Falls,Hotspring,117,47'; - put '42.767,-115.725,Lower Indian Bathtub Hot Springs,Twin Falls,Hotspring,108,42'; - put '42.102,-113.632,Durfee Spring,Pocatello,Hotspring,102,39'; - put '44.33,-115.802,Silver Creek Hot Spring,Challis,Hotspring,102,39'; - put '42.447,-113.523,Marsh Creek Hot Spring,Pocatello,Hotspring,104,40'; - put '42.449,-113.511,Marsh Gully Hot Springs,Pocatello,Hotspring,106,41'; - put '42.798,-115.742,Bruneau Hot Spring,Twin Falls,Hotspring,106,41'; - put '43.576,-114.83,Preis Hot Spring,Hailey,Hotspring,106,41'; - put '43.677,-116.208,Terteling Hot Springs,Boise,Hotspring,106,41'; - put '44.254,-114.443,Sullivan Hot Springs,Challis,Hotspring,106,41'; - put '44.224,-114.929,Stanley Hot Spring,Challis,Hotspring,106,41'; - put '44.101,-114.865,Rosalys Warm Spring,Challis,Hotspring,106,41'; - put '44.06,-115.819,Danskin Creek Hot Spring,Challis,Hotspring,106,41'; - put '45.852,-114.937,Running Warm Springs,Elk City,Hotspring,106,41'; - put '43.363,-113.779,Milford Sweat Hot Spring,Idaho Falls,Hotspring,111,44'; - put '46.466,-114.939,Colgate Warm Springs,Hamilton,Hotspring,106,41'; - put '44.626,-115.749,Trail Creek Hot Spring,Challis,Hotspring,122,50'; - put '43.816,-115.863,Warm Springs,Hailey,Hotspring,108,42'; - put '43.76,-115.56,Pool Creek Hot Spring,Hailey,Hotspring,108,42'; - put '45.042,-114.616,Snowshoe Johnsons Hot Spring,Elk City,Hotspring,108,42'; - put '42.388,-112.085,Downata Hot Springs,Pocatello,Hotspring,109,43'; - put '42.013,-114.504,Magic Hot Springs,Twin Falls,Hotspring,109,43'; - put '42.779,-115.715,Buckaroo Hot Spring,Twin Falls,Hotspring,109,43'; - put '43.99,-114.8,Pierson Hot Springs,Hailey,Hotspring,109,43'; - put '43.038,-114.988,Tschanne Hot Spring,Hailey,Hotspring,109,43'; - put '44.523,-114.173,Beardsley Hot Springs,Challis,Hotspring,109,43'; - put '44.733,-115.018,Sunflower Flat Hot Spring,Challis,Hotspring,109,43'; - put '44.516,-115.295,Dagger Creek Hot Spring,Challis,Hotspring,110,43'; - put '44.971,-116.203,Krigbaum Hot Springs,Baker,Hotspring,109,43'; - put '45.416,-116.172,Riggins Hot Springs,Grangeville,Hotspring,106,41'; - put '42.735,-73.2,Sand Spring,Albany,Hotspring,75,24'; - put '46.106,-114.004,Sleeping Child Hot Springs,Hamilton,Hotspring,122,50'; - put '45.697,-114.365,Blue Joint Hot Springs 2,Elk City,Hotspring,84,29'; - put '44.769,-111.649,Sloan Cow Camp Spring,Ashton,Hotspring,86,30'; - put '47.632,-112.855,Medicine (Sun River) Springs,Choteau,Hotspring,86,30'; - put '45.75,-113.938,Gallogly Spring,Dillon,Hotspring,100,38'; - put '47.33,-114.789,Quinns Hot Springs,Wallace,Hotspring,109,43'; - put '45.171,-112.153,Puller Hot Springs,Dillon,Hotspring,111,44'; - put '46.728,-114.533,"Lolo Hot Springs, Granite Springs",Hamilton,Hotspring,111,44'; - put '45.337,-110.691,Chico Hot Springs,Bozeman,Hotspring,113,45'; - put '47.607,-114.663,Camas Hot Springs,Wallace,Hotspring,113,45'; - put '45.841,-114.038,Medicine Hot Springs,Elk City,Hotspring,117,47'; - put '45.458,-113.109,Elkhorn Hot Springs,Dillon,Hotspring,118,48'; - put '45.027,-112.844,Mcmenomey Ranch Spring,Dillon,Hotspring,68,20'; - put '45.792,-112.126,Renova Hot Springs,Dillon,Hotspring,122,50'; - put '44.701,-111.878,Staudenmeyer Springs,Ashton,Hotspring,82,28'; - put '45.602,-111.9,Potosi Warm Springs,Bozeman,Hotspring,124,51'; - put '45.575,-111.683,Norris Hot Springs,Bozeman,Hotspring,127,53'; - put '45.462,-112.475,New Biltmore Hot Springs,Dillon,Hotspring,127,53'; - put '45.66,-111.186,Bozeman Hot Springs,Bozeman,Hotspring,131,55'; - put '45.896,-112.233,Pipestone Hot Springs,Dillon,Hotspring,135,57'; - put '46.547,-110.903,White Sulphur Springs,White Sulphur,Hotspring,136,58'; - put '46.448,-111.982,Alhambra Hot Springs,White Sulphur,Hotspring,138,59'; - put '45.757,-110.256,Hunters Hot Springs,Bozeman,Hotspring,140,60'; - put '45.368,-113.403,Jardine Hot Spring,Dillon,Hotspring,140,60'; - put '46.596,-112.108,Broadwater (Helena) Hot Springs,Butte,Hotspring,151,66'; - put '44.984,-111.613,Wolf Creek Hot Springs,Ashton,Hotspring,154,68'; - put '45.685,-112.295,Silver Star Hot Springs,Dillon,Hotspring,163,73'; - put '45.59,-111.899,Potosi Hot Springs,Bozeman,Hotspring,122,50'; - put '45.105,-112.751,Browns Springs,Dillon,Hotspring,75,24'; - put '46.718,-113.306,Bearmouth Warm Spring 2,Butte,Hotspring,68,20'; - put '46.717,-113.32,Bearmouth Warm Spring 1,Butte,Hotspring,68,20'; - put '47.217,-109.471,Brooks Warm Spring,Lewistown,Hotspring,68,20'; - put '45.708,-110.976,Bridger Canyon Warm Spring,Bozeman,Hotspring,70,21'; - put '46.795,-108.883,Durfee Creek Springs,Roundup,Hotspring,70,21'; - put '46.704,-113.452,Nimrod Springs,Butte,Hotspring,70,21'; - put '47.876,-108.656,Landusky Springs,Lewistown,Hotspring,70,21'; - put '45.032,-110.667,Bear Creek Springs,Bozeman,Hotspring,72,22'; - put '45.111,-112.714,Lovells Hot Spring,Dillon,Hotspring,72,22'; - put '46.106,-112.903,Anaconda Hot Springs,Butte,Hotspring,72,22'; - put '45.235,-112.135,Trudau Warm Springs,Dillon,Hotspring,73,23'; - put '45.698,-114.382,Blue Joint Hot Spring 1,Elk City,Hotspring,84,29'; - put '45.037,-111.953,Vigilante Spring,Bozeman,Hotspring,75,24'; - put '45.608,-110.571,Carter Bridge Warm Springs,Bozeman,Hotspring,82,28'; - put '46.355,-111.565,Bedford Hot Springs,White Sulphur,Hotspring,74,24'; - put '45.553,-110.142,Anderson Springs,Bozeman,Hotspring,77,25'; - put '45.42,-112.692,Apex Warm Spring,Dillon,Hotspring,77,25'; - put '46.607,-112.776,Garrison Warm Springs,Butte,Hotspring,77,25'; - put '47.843,-108.598,The (Landusky) Plunge,Lewistown,Hotspring,77,25'; - put '44.785,-111.649,West Fork Swimming Hole,Ashton,Hotspring,79,26'; - put '46.61,-112.555,Avon Warm Spring,Butte,Hotspring,79,26'; - put '46.334,-112.886,Deerlodge Prison Ranch Springs,Butte,Hotspring,79,26'; - put '47.994,-108.445,Lodgepole (Big Warm) Springs,Lewistown,Hotspring,79,26'; - put '47.451,-114.648,Green Springs,Wallace,Hotspring,79,26'; - put '45.392,-112.452,Beaverhead Rock Spring,Dillon,Hotspring,81,27'; - put '44.704,-111.892,Andersons Pasture Springs,Ashton,Hotspring,82,28'; - put '47.971,-108.395,Little Warm Springs,Lewistown,Hotspring,73,23'; - put '46.198,-112.094,Boulder Hot Springs,Butte,Hotspring,169,76'; - put '46.178,-112.794,Warm Springs (State Hospital),Butte,Hotspring,172,78'; - put '45.367,-111.726,Ennis Hot Springs,Bozeman,Hotspring,181,83'; - put '46.044,-112.811,Gregson Hot Springs,Butte,Hotspring,158,70'; - put '45.09,-110.774,Laduke (Corwin) Hot Spring,Bozeman,Hotspring,154,68'; - put '35.897,-82.826,Hot Springs,Knoxville,Hotspring,108,42'; - put '32.644,-108.128,Apache Tejo Warm Spring,Silver City,Hotspring,97,36'; - put '33.135,-107.254,Truth Or Consequences,Tularosa,Hotspring,113,45'; - put '36.305,-106.053,Ojo Caliente (Arsenic Spring),Aztec,Hotspring,111,44'; - put '33.162,-108.209,Spring (Hot),Clifton,Hotspring,111,44'; - put '36.508,-105.722,Manby Hot Springs,Raton,Hotspring,100,38'; - put '35.849,-106.629,Spence Hot Springs,Albuquerque,Hotspring,100,38'; - put '35.972,-106.56,San Antonio Warm Spring,Albuquerque,Hotspring,101,38'; - put '35.82,-106.627,Mccauley Hot Springs,Albuquerque,Hotspring,99,37'; - put '35.793,-106.685,Soda Dam Hot Springs,Albuquerque,Hotspring,117,47'; - put '33.831,-108.8,(Upper) Frisco Hot Spring,Clifton,Hotspring,98,37'; - put '35.646,-106.888,Warm Springs,Albuquerque,Hotspring,129,54'; - put '36.324,-105.606,Ponce De Leon Springs,Raton,Hotspring,93,34'; - put '34.038,-106.94,"Socorro Spring, Sedillo Spring",Socorro,Hotspring,93,34'; - put '33.293,-108.282,"Spring Mfg Two, Spring Mfg Three",Clifton,Hotspring,99,37'; - put '35.592,-106.753,Indian Springs,Albuquerque,Hotspring,123,51'; - put '32.501,-106.926,Radium Springs,Las Cruces,Hotspring,127,53'; - put '33.274,-108.25,Spring Mfg Four,Clifton,Hotspring,93,34'; - put '35.938,-106.646,San Antonio Hot Spring,Albuquerque,Hotspring,129,54'; - put '33.244,-108.88,San Francisco Hot Springs,Clifton,Hotspring,120,49'; - put '32.748,-107.836,Mimbres Hot Springs,Las Cruces,Hotspring,136,58'; - put '35.653,-105.29,Montezuma Hot Springs,Santa Fe,Hotspring,138,59'; - put '33.233,-108.235,Spring (Hot),Clifton,Hotspring,149,65'; - put '33.199,-108.209,Gila Hot Springs,Clifton,Hotspring,151,66'; - put '33.108,-108.483,Turkey Creek Hot Spring,Clifton,Hotspring,165,74'; - put '35.772,-106.69,Jemez Springs,Albuquerque,Hotspring,169,76'; - put '35.908,-106.615,Sulphur Springs,Albuquerque,Hotspring,189,87'; - put '33.237,-108.88,Hot Springs,Clifton,Hotspring,H,H'; - put '32.562,-108.027,Kennecott Warm Springs,Silver City,Hotspring,W,W'; - put '32.554,-107.994,Faywood Hot Springs,Las Cruces,Hotspring,129,54'; - put '33.898,-108.501,Aragon Springs,Clifton,Hotspring,70,21'; - put '34.847,-107.091,Spring (Salt),Socorro,Hotspring,76,24'; - put '34.903,-107.085,El Ojo Escondido,Socorro,Hotspring,73,23'; - put '35.06,-107.133,Alamos Spring,Albuquerque,Hotspring,72,22'; - put '34.912,-108.951,Rainbow Spring,Saint Johns,Hotspring,71,22'; - put '34.698,-107.129,Spring,Socorro,Hotspring,71,22'; - put '32.455,-104.489,Indian Big Spring,Carlsbad,Hotspring,79,26'; - put '34.995,-106.454,Clear Water Spring,Socorro,Hotspring,69,21'; - put '32.821,-108.408,Ash Spring,Silver City,Hotspring,72,22'; - put '32.83,-109.047,Goat Camp Spring,Silver City,Hotspring,69,21'; - put '35.548,-106.827,San Ysidro Warm Springs,Albuquerque,Hotspring,68,20'; - put '34.116,-106.98,Ojitos Springs,Socorro,Hotspring,68,20'; - put '32.248,-104.411,Mosley Spring,Carlsbad,Hotspring,68,20'; - put '33.708,-109.025,Frieborn Canyon Spring,Clifton,Hotspring,92,33'; - put '33.192,-108.18,Lyons Hunting Lodge Hot Springs,Clifton,Hotspring,126,52'; - put '35.601,-106.86,Phillips Springs,Albuquerque,Hotspring,70,21'; - put '33.285,-108.262,Spring Mfg One,Clifton,Hotspring,88,31'; - put '33.306,-108.324,The Meadows Warm Spring,Clifton,Hotspring,91,33'; - put '34.049,-106.939,Cook Spring,Socorro,Hotspring,70,21'; - put '32.795,-107.276,Derry Warm Springs,Las Cruces,Hotspring,92,33'; - put '32.884,-108.358,Allen Springs,Silver City,Hotspring,78,26'; - put '33.279,-107.563,Warm Springs,Tularosa,Hotspring,87,31'; - put '32.606,-107.19,Souse Springs,Las Cruces,Hotspring,88,31'; - put '34.808,-107.091,Spring (Salt),Socorro,Hotspring,86,30'; - put '35.54,-106.854,San Ysidro Hot Springs,Albuquerque,Hotspring,85,29'; - put '36.368,-106.059,Statue Spring,Aztec,Hotspring,83,28'; - put '34.833,-107.091,Laguna Pueblo Seeps,Socorro,Hotspring,82,28'; - put '33.572,-107.593,Ojo Caliente,Tularosa,Hotspring,83,28'; - put '34.854,-107.088,Laguna Pueblo Springs,Socorro,Hotspring,80,27'; - put '32.843,-108.512,Mangas Springs,Silver City,Hotspring,81,27'; - put '34.769,-107.085,Spring (Salt),Socorro,Hotspring,78,26'; - put '34.032,-106.777,Ojo De Las Canas,Socorro,Hotspring,79,26'; - put '40.972,-119.007,Black Rock Hot Spring,Lovelock,Hotspring,136,58'; - put '38.899,-119.41,Nevada (Hinds) Hot Springs,Walker Lake,Hotspring,144,62'; - put '38.922,-118.198,Wedell Hot Springs,Walker Lake,Hotspring,144,62'; - put '41.183,-114.991,Hot Springs,Wells,Hotspring,142,61'; - put '38.437,-116.277,Hot Creek Valley Spring,Tonopah,Hotspring,142,61'; - put '41.788,-114.735,Mineral Hot Spring,Wells,Hotspring,140,60'; - put '37.825,-117.337,Alkali Hot Spring,Goldfield,Hotspring,140,60'; - put '41.412,-114.675,Wine Cup Ranch Springs,Wells,Hotspring,138,59'; - put '40.404,-116.517,Crescent Valley Hot Springs,Winnemucca,Hotspring,138,59'; - put '40.417,-116.507,Crescent Valley Hot Springs,Winnemucca,Hotspring,138,59'; - put '40.603,-116.463,Horseshoe Ranch Springs,Winnemucca,Hotspring,136,58'; - put '41.378,-119.182,Springs (Hot),Vya,Hotspring,136,58'; - put '39.883,-114.893,Cherry Creek Hot Springs,Ely,Hotspring,144,62'; - put '40.922,-117.108,Hot Pot (Blossom Hot Springs),Winnemucca,Hotspring,136,58'; - put '41.721,-118.505,Howard Hot Spring,Vya,Hotspring,135,57'; - put '41.421,-117.388,The Hot Springs,Mcdermitt,Hotspring,135,57'; - put '40.418,-117.415,Buffalo Springs,Winnemucca,Hotspring,162,72'; - put '39.031,-116.666,Dianas Punch Bowl,Millett,Hotspring,138,59'; - put '39.404,-116.347,Klobe (Bartholomae) Hot Spring,Millett,Hotspring,156,69'; - put '36.975,-116.721,Hicks Hot Springs,Death Valley,Hotspring,109,43'; - put '40.178,-117.496,Home Station Ranch Hot Spring,Winnemucca,Hotspring,135,57'; - put '39.797,-118.067,Dixie Hot Springs,Reno,Hotspring,162,72'; - put '39.904,-116.588,Walti Hot Springs,Millett,Hotspring,162,72'; - put '38.981,-119.833,Walleys Hot Springs,Walker Lake,Hotspring,160,71'; - put '38.464,-115.792,Chimney Warm Spring,Lund,Hotspring,160,71'; - put '39.328,-116.858,Spencer Hot Springs,Millett,Hotspring,162,72'; - put '41.108,-117.578,Hot Springs,Mcdermitt,Hotspring,158,70'; - put '36.002,-114.742,Spring,Las Vegas,Hotspring,145,63'; - put '41.576,-115.181,Hot Creek Springs,Wells,Hotspring,151,66'; - put '40.954,-117.488,Golconda Hot Spring (South),Winnemucca,Hotspring,151,66'; - put '40.22,-116.068,Bruffeys Hot Springs,Winnemucca,Hotspring,149,65'; - put '40.249,-115.409,Smith Ranch Springs,Elko,Hotspring,149,65'; - put '41.867,-114.692,San Jacinto Ranch Spring,Wells,Hotspring,148,64'; - put '40.765,-116.04,Hot Sulphur Springs,Winnemucca,Hotspring,147,64'; - put '38.188,-116.373,Warm Springs,Tonopah,Hotspring,145,63'; - put '41.567,-118.564,Dyke Hot Springs,Vya,Hotspring,158,70'; - put '38.365,-115.867,Abel Spring,Lund,Hotspring,115,46'; - put '41.929,-114.071,Nile Spring,Wells,Hotspring,109,43'; - put '39.193,-119.752,Carson Hot Springs,Reno,Hotspring,120,49'; - put '39.512,-119.907,Lawton Hot Springs,Reno,Hotspring,120,49'; - put '39.944,-119.509,Anaho Island Spring,Reno,Hotspring,120,49'; - put '37.761,-117.632,Silverpeak Hot Spring,Goldfield,Hotspring,118,48'; - put '37.621,-114.51,Caliente Hot Springs,Caliente,Hotspring,118,48'; - put '39.058,-119.742,Saratoga Hot Spring,Reno,Hotspring,122,50'; - put '39.308,-117.552,Hot Springs,Millett,Hotspring,115,46'; - put '40.673,-116.838,Hot Springs,Winnemucca,Hotspring,122,50'; - put '39.08,-116.639,Potts Ranch Hot Springs,Millett,Hotspring,113,45'; - put '38.388,-115.866,Coyote Hole Spring,Lund,Hotspring,113,45'; - put '41.753,-118.841,Warm Springs,Vya,Hotspring,112,44'; - put '41.386,-114.165,Spring (Hot),Wells,Hotspring,111,44'; - put '40.961,-117.494,Golconda Hot Spring (North),Winnemucca,Hotspring,165,74'; - put '40.313,-117.07,Mound Springs,Winnemucca,Hotspring,109,43'; - put '40.585,-115.285,Sulphur Hot Springs,Elko,Hotspring,205,96'; - put '39.059,-119.815,Hobo Hot Springs,Reno,Hotspring,114,46'; - put '40.191,-117.107,Hot Springs,Winnemucca,Hotspring,127,53'; - put '40.819,-115.777,Hot Hole,Elko,Hotspring,133,56'; - put '39.286,-119.84,Bowers Mansion Hot Spring,Reno,Hotspring,133,56'; - put '41.809,-118.861,Painted Hills Mine,Vya,Hotspring,131,55'; - put '41.925,-118.805,Bog Hot Springs,Vya,Hotspring,131,55'; - put '41.647,-115.775,Wild Horse Hot Springs,Wells,Hotspring,129,54'; - put '40.183,-117.102,Hot Springs Ranch,Winnemucca,Hotspring,129,54'; - put '40.08,-117.604,Mccoy Springs,Winnemucca,Hotspring,120,49'; - put '41.353,-119.216,Spring (Hot),Vya,Hotspring,127,53'; - put '41.357,-119.188,Springs (Hot),Vya,Hotspring,133,56'; - put '40.198,-117.103,Hot Springs,Winnemucca,Hotspring,127,53'; - put '39.42,-119.738,Dimonte Spring,Reno,Hotspring,127,53'; - put '38.952,-115.23,Williams Hot Spring,Lund,Hotspring,127,53'; - put '41.261,-115.305,Hot Springs,Wells,Hotspring,126,52'; - put '39.041,-116.663,Hot Spring,Millett,Hotspring,124,51'; - put '41.365,-119.221,Spring (Hot),Vya,Hotspring,122,50'; - put '41.159,-114.986,"Threemile Spring, Sulphur Hot Spr",Wells,Hotspring,122,50'; - put '41.339,-119.192,Springs (Hot),Vya,Hotspring,127,53'; - put '39.893,-116.649,Little Hot Springs,Millett,Hotspring,H,H'; - put '39.787,-119.011,Bradys Hot Springs,Reno,Hotspring,209,98'; - put '41.175,-115.278,Hot Spring,Wells,Hotspring,H,H'; - put '41.145,-114.994,Hot Spring,Wells,Hotspring,H,H'; - put '40.864,-117.349,Sulphur Spring,Winnemucca,Hotspring,H,H'; - put '39.733,-119.039,Eagle Salt Works Spring,Reno,Hotspring,H,H'; - put '39.281,-118.42,Sand Springs,Reno,Hotspring,H,H'; - put '38.81,-116.397,Fish Springs,Tonopah,Hotspring,W,W'; - put '39.559,-117.427,Petersons Mill Hot Spring,Millett,Hotspring,H,H'; - put '38.339,-116.662,Warm Spring,Tonopah,Hotspring,W,W'; - put '38.859,-119.175,Hot Spring,Walker Lake,Hotspring,H,H'; - put '39.995,-117.854,Senator Fumaroles,Millett,Hotspring,B,B'; - put '39.565,-118.856,(Soda Lake Area),Reno,Hotspring,210,99'; - put '40.141,-119.687,The Needle Rocks Hot Springs,Lovelock,Hotspring,208,98'; - put '40.146,-119.673,The Needle Rocks Hot Spring,Lovelock,Hotspring,208,98'; - put '40.662,-119.365,Great Boiling Spring (Gerlach),Lovelock,Hotspring,208,98'; - put '39.388,-119.743,Steamboat Springs,Reno,Hotspring,205,96'; - put '39.866,-118.017,Dixie Comstock Mine,Reno,Hotspring,H,H'; - put '40.746,-116.689,White House Spring,Winnemucca,Hotspring,W,W'; - put '39.98,-119.502,Pyramid Island Hot Spring,Reno,Hotspring,.,.'; - put '41.934,-118.808,Warm Springs,Vya,Hotspring,W,W'; - put '41.385,-116.058,Petaini Springs,Mcdermitt,Hotspring,W,W'; - put '41.064,-115.389,Warm Springs,Wells,Hotspring,W,W'; - put '41.066,-114.99,Spring,Wells,Hotspring,W,W'; - put '41.355,-114.133,Warm Springs,Wells,Hotspring,W,W'; - put '41.148,-116.733,Hot Lake,Mcdermitt,Hotspring,H,H'; - put '40.684,-116.153,Ellison Ranch Warm Spring,Winnemucca,Hotspring,W,W'; - put '40.604,-117.648,Leach Hot Springs,Winnemucca,Hotspring,207,97'; - put '40.751,-115.035,Warm Springs,Elko,Hotspring,W,W'; - put '40.782,-115.363,Warm Spring,Elko,Hotspring,W,W'; - put '39.529,-116.388,Warm Spring,Millett,Hotspring,W,W'; - put '39.072,-115.635,Big Blue Spring,Ely,Hotspring,W,W'; - put '38.95,-119.388,Spring,Walker Lake,Hotspring,W,W'; - put '38.965,-118.689,Double Spring,Walker Lake,Hotspring,W,W'; - put '38.458,-117.303,Indian Springs,Tonopah,Hotspring,W,W'; - put '40.592,-116.157,Raine Ranch Springs,Winnemucca,Hotspring,W,W'; - put '39.941,-116.681,Hot Springs,Millett,Hotspring,180,82'; - put '40.567,-116.588,Beowawe Hot Springs (The Geysers),Winnemucca,Hotspring,208,98'; - put '40.761,-117.492,Hot Springs,Winnemucca,Hotspring,185,85'; - put '40.653,-119.378,Mud Springs,Lovelock,Hotspring,184,84'; - put '38.768,-119.174,Wilson Hot Spring,Walker Lake,Hotspring,183,84'; - put '41.921,-118.709,Baltazor Hot Spring,Vya,Hotspring,181,83'; - put '40.857,-119.328,Fly Ranch (Wards) Hot Springs,Lovelock,Hotspring,180,82'; - put '39.597,-119.11,Patua Hot Springs (Fernley),Reno,Hotspring,187,86'; - put '39.028,-117.136,Mcleod Ranch Hot Spring,Millett,Hotspring,180,82'; - put '40.316,-116.433,Hot Spring,Winnemucca,Hotspring,186,86'; - put '38.521,-116.365,Hot Creek Ranch Hot Spring,Tonopah,Hotspring,180,82'; - put '41.051,-119.028,Double Hot Springs,Vya,Hotspring,178,81'; - put '40.003,-117.718,Hyder Hot Springs,Winnemucca,Hotspring,176,80'; - put '39.665,-114.807,Monte Neva Hot Springs,Ely,Hotspring,176,80'; - put '40.368,-117.327,Buffalo Valley Hot Springs,Winnemucca,Hotspring,174,79'; - put '40.699,-116.133,Hot Springs (Carlin),Winnemucca,Hotspring,174,79'; - put '41.052,-118.717,Macfarlane Hot Spring,Vya,Hotspring,170,77'; - put '39.342,-118.578,Borax Spring,Reno,Hotspring,180,82'; - put '39.484,-119.804,Moana Springs,Reno,Hotspring,199,93'; - put '41.243,-114.947,Twelvemile Spring,Wells,Hotspring,102,39'; - put '39.38,-119.74,Steamboat Springs,Reno,Hotspring,205,96'; - put '39.558,-116.36,Bartine Hot Springs,Millett,Hotspring,108,42'; - put '39.954,-117.917,Fumaroles,Millett,Hotspring,204,96'; - put '40.389,-119.402,Hot Seeps (San Emidio Desert),Lovelock,Hotspring,203,95'; - put '38.822,-117.183,Darroughs Hot Springs,Tonopah,Hotspring,203,95'; - put '40.088,-117.725,Sou (Seven Devils) Hot Springs,Winnemucca,Hotspring,185,85'; - put '41.363,-118.788,Pinto Hot Springs,Vya,Hotspring,199,93'; - put '40.408,-117.883,Kyle Hot Springs,Winnemucca,Hotspring,171,77'; - put '41.357,-118.809,West Pinto Hot Spring,Vya,Hotspring,198,92'; - put '39.316,-117.549,Hot Springs,Millett,Hotspring,198,92'; - put '41.468,-116.15,Hot Sulphur Springs (Tuscarora),Mcdermitt,Hotspring,194,90'; - put '40.813,-115.778,Elko Hot Spring,Elko,Hotspring,190,88'; - put '39.208,-118.723,"Lee Hot Springs, Allen Springs",Reno,Hotspring,190,88'; - put '40.262,-119.379,Boiling Springs,Lovelock,Hotspring,187,86'; - put '40.77,-119.113,Butte Springs (Trego Hot Springs),Lovelock,Hotspring,187,86'; - put '39.161,-119.183,Wabuska Hot Springs,Reno,Hotspring,201,94'; - put '39.814,-115.612,Giocoecha Warm Springs,Ely,Hotspring,76,24'; - put '36.389,-114.433,Blue Point Spring,Las Vegas,Hotspring,82,28'; - put '37.016,-117.211,Seep,Goldfield,Hotspring,77,25'; - put '37.751,-116.274,Cedar Spring,Goldfield,Hotspring,77,25'; - put '37.896,-114.227,Flatnose Ranch Spring,Caliente,Hotspring,77,25'; - put '36.207,-115.983,Pahrump (Bennetts) Spring,Las Vegas,Hotspring,77,25'; - put '41.775,-115.921,Rizzi Ranch Hot Spring,Wells,Hotspring,106,41'; - put '35.944,-114.731,Hot Spring,Kingman,Hotspring,78,26'; - put '41.884,-114.117,Gambles Hole,Wells,Hotspring,104,40'; - put '36.565,-115.671,Indian Springs,Las Vegas,Hotspring,78,26'; - put '39.547,-114.915,Campbell Ranch Springs,Ely,Hotspring,76,24'; - put '38.423,-115.022,Flag Springs,Lund,Hotspring,75,24'; - put '38.44,-115.011,Butterfield Springs,Lund,Hotspring,75,24'; - put '37.997,-118.039,Fish Spring,Mariposa,Hotspring,75,24'; - put '37.029,-116.719,Springs,Goldfield,Hotspring,75,24'; - put '36.426,-116.411,Ash Tree Spring,Death Valley,Hotspring,75,24'; - put '36.033,-115.888,Browns Spring,Las Vegas,Hotspring,75,24'; - put '41.322,-119.206,Springs,Vya,Hotspring,75,24'; - put '41.706,-118.261,Ninemile Springs,Vya,Hotspring,79,26'; - put '35.964,-114.743,Hot Spring,Kingman,Hotspring,82,28'; - put '41.763,-118.279,Fivemile Spring,Vya,Hotspring,81,27'; - put '39.457,-119.722,Huffaker Springs,Reno,Hotspring,81,27'; - put '38.992,-117.042,Charnock (Big Blue) Springs,Tonopah,Hotspring,80,27'; - put '36.402,-116.302,Davis Ranch Springs,Death Valley,Hotspring,81,27'; - put '36.45,-116.313,Spring,Death Valley,Hotspring,81,27'; - put '39.792,-114.692,Lower Shellbourne Spring,Ely,Hotspring,77,25'; - put '41.338,-119.168,Springs,Vya,Hotspring,79,26'; - put '41.022,-119.275,Caine Spring,Vya,Hotspring,73,23'; - put '41.05,-117.1,Hot Springs Ranch Springs,Mcdermitt,Hotspring,79,26'; - put '40.079,-116.035,Flynn Ranch Springs,Winnemucca,Hotspring,78,26'; - put '40.325,-116.058,Hot Springs,Winnemucca,Hotspring,79,26'; - put '36.414,-116.292,Spring,Death Valley,Hotspring,79,26'; - put '36.173,-115.191,Las Vegas Springs,Las Vegas,Hotspring,79,26'; - put '36.174,-115.479,White Rock Spring,Las Vegas,Hotspring,78,26'; - put '36.565,-115.623,Spring,Las Vegas,Hotspring,79,26'; - put '36.491,-116.342,"Fairbanks Spring, Soda Spring",Death Valley,Hotspring,81,27'; - put '38.654,-114.633,Geyser Ranch Springs,Lund,Hotspring,70,21'; - put '36.363,-116.271,Bole Spring,Death Valley,Hotspring,72,22'; - put '36.999,-116.706,Spring,Death Valley,Hotspring,72,22'; - put '36.942,-115.425,Ash Creek Spring,Las Vegas,Hotspring,72,22'; - put '38.796,-119.65,Doud Springs,Walker Lake,Hotspring,70,21'; - put '38.622,-115.047,Emigrant Springs,Lund,Hotspring,70,21'; - put '38.927,-115.082,Preston Springs,Lund,Hotspring,70,21'; - put '36.147,-115.893,Manse Ranch Spring,Las Vegas,Hotspring,75,24'; - put '38.645,-114.632,Geyser Ranch Springs,Lund,Hotspring,70,21'; - put '38.574,-115.522,Tom Spring,Lund,Hotspring,72,22'; - put '38.671,-114.628,Geyser Ranch Springs,Lund,Hotspring,70,21'; - put '37.783,-114.528,Bennett Springs,Caliente,Hotspring,70,21'; - put '37.86,-114.321,Delmues Springs,Caliente,Hotspring,70,21'; - put '36.408,-116.313,Davis Ranch Spring,Death Valley,Hotspring,70,21'; - put '36.567,-114.446,Seep,Las Vegas,Hotspring,70,21'; - put '41.369,-114.187,Gamble Spring,Wells,Hotspring,69,20'; - put '39.901,-115.868,Thompson Ranch Spring,Ely,Hotspring,68,20'; - put '38.633,-114.638,Wambolt Springs,Lund,Hotspring,70,21'; - put '37.906,-118.171,Sand Spring,Mariposa,Hotspring,74,23'; - put '36.486,-114.329,Springs,Las Vegas,Hotspring,77,25'; - put '41.354,-119.116,Mustang Springs,Vya,Hotspring,73,23'; - put '41.746,-119.791,Warm Springs,Vya,Hotspring,73,23'; - put '41.258,-118.937,Cane Springs,Vya,Hotspring,74,23'; - put '40.103,-119.884,Fish Springs,Lovelock,Hotspring,73,23'; - put '39.853,-119.719,Spring,Reno,Hotspring,73,23'; - put '39.832,-116.069,Sulphur Spring,Millett,Hotspring,74,23'; - put '36.363,-116.263,Spring,Death Valley,Hotspring,72,22'; - put '38.554,-115.531,Kate Spring,Lund,Hotspring,73,23'; - put '37.074,-116.691,Spring,Goldfield,Hotspring,72,22'; - put '37.979,-117.993,Gap Spring,Goldfield,Hotspring,73,23'; - put '41.591,-119.862,Twin (Vya) Spring,Vya,Hotspring,71,22'; - put '40.763,-119.172,Coyote Spring,Lovelock,Hotspring,72,22'; - put '40.127,-116.884,Springs,Winnemucca,Hotspring,72,22'; - put '40.187,-116.805,Spring,Winnemucca,Hotspring,72,22'; - put '40.967,-114.515,Johnson Ranch Springs,Elko,Hotspring,72,22'; - put '36.205,-115.141,Kyle Spring,Las Vegas,Hotspring,75,24'; - put '39.8,-114.653,Upper Shellbourne Spring,Ely,Hotspring,74,23'; - put '36.428,-116.303,Button Springs,Death Valley,Hotspring,93,34'; - put '38.383,-115.153,Hot Creek Ranch Spring,Lund,Hotspring,90,32'; - put '39.283,-114.866,Lackawanna Hot Springs,Ely,Hotspring,95,35'; - put '38.532,-116.465,Upper Warm Spring,Tonopah,Hotspring,95,35'; - put '38.823,-116.717,South Mosquito Creek Ranch Springs,Tonopah,Hotspring,95,35'; - put '40.829,-117.306,Brooks Spring,Winnemucca,Hotspring,93,34'; - put '40.992,-117.763,Spring,Winnemucca,Hotspring,93,34'; - put '41.971,-114.574,Warm Springs,Wells,Hotspring,95,35'; - put '38.95,-115.7,Big Warm Spring,Lund,Hotspring,93,34'; - put '37.463,-115.192,Ash Springs,Caliente,Hotspring,97,36'; - put '36.464,-116.319,Parent Springs,Death Valley,Hotspring,93,34'; - put '38.352,-115.181,Moon River Spring,Lund,Hotspring,92,33'; - put '36.402,-116.274,"Point of Rocks Springs, King Sprin",Death Valley,Hotspring,91,33'; - put '36.421,-116.322,Crystal Pool,Death Valley,Hotspring,91,33'; - put '36.425,-116.291,Devils Hole,Death Valley,Hotspring,92,33'; - put '39.068,-119.786,Springs,Reno,Hotspring,90,32'; - put '38.954,-117.049,Big Blue (A) Spring,Tonopah,Hotspring,90,32'; - put '40.087,-114.647,Collar And Elbow Spring,Elko,Hotspring,93,34'; - put '36.378,-114.443,Rogers Spring,Las Vegas,Hotspring,82,28'; - put '39.943,-116.073,Shipley Hot Spring,Millett,Hotspring,106,41'; - put '38.698,-116.435,"Upper Warm Spring, Warm Spring",Tonopah,Hotspring,106,41'; - put '41.53,-118.57,Spring,Vya,Hotspring,104,40'; - put '41.877,-115.628,Rowland Hot Springs,Wells,Hotspring,104,40'; - put '40.035,-117.604,Lower Ranch Hot Springs,Winnemucca,Hotspring,104,40'; - put '40.187,-116.79,Chillis Hot Spring,Winnemucca,Hotspring,102,39'; - put '39.988,-116.044,Siri Ranch Spring,Millett,Hotspring,95,35'; - put '39.421,-119.758,Zolezzi Spring,Reno,Hotspring,102,39'; - put '38.531,-116.405,Old Dugan Ranch Hot Springs,Tonopah,Hotspring,102,39'; - put '36.968,-116.723,Burrell Hot Spring,Death Valley,Hotspring,102,39'; - put '38.343,-118.103,Soda Springs,Walker Lake,Hotspring,100,38'; - put '38.556,-115.767,"Lockes Big Spring, Hay Corral Spr",Lund,Hotspring,100,38'; - put '38.594,-115.138,Moorman Spring,Lund,Hotspring,100,38'; - put '38.398,-115.862,Storm Spring,Lund,Hotspring,99,37'; - put '41.19,-115.287,Hot Spring,Wells,Hotspring,97,36'; - put '37.822,-117.48,Pearl Hot Springs,Goldfield,Hotspring,97,36'; - put '39.159,-119.737,Nevada State Prison Spring,Reno,Hotspring,75,24'; - put '40.025,-117.646,Spring,Winnemucca,Hotspring,83,28'; - put '40.83,-119.538,Springs,Lovelock,Hotspring,84,29'; - put '39.442,-119.743,Double Diamond Spring,Reno,Hotspring,84,29'; - put '39.413,-114.779,Mcgill Spring,Ely,Hotspring,84,29'; - put '39.458,-114.756,Schoolhouse Spring,Ely,Hotspring,84,29'; - put '36.375,-116.274,Big (Ash Meadows) Spring,Death Valley,Hotspring,83,28'; - put '38.292,-114.272,Hammond Ranch Spring,Lund,Hotspring,84,29'; - put '41.398,-119.165,Spring,Vya,Hotspring,84,29'; - put '41.732,-119.785,Seeps (Hills Warm Spring),Vya,Hotspring,83,28'; - put '38.563,-115.528,Blue Eagle Springs,Lund,Hotspring,84,29'; - put '40.873,-117.937,Rose Creek Spring,Winnemucca,Hotspring,83,28'; - put '39.917,-114.667,Spring,Ely,Hotspring,83,28'; - put '36.39,-116.278,Jack Rabbit Spring,Death Valley,Hotspring,82,28'; - put '36.437,-116.206,Spring,Death Valley,Hotspring,82,28'; - put '38.937,-115.695,Little Warm Spring,Lund,Hotspring,90,32'; - put '36.479,-116.326,Rogers Spring,Death Valley,Hotspring,82,28'; - put '40.29,-116.049,Carlotti Ranch Springs,Winnemucca,Hotspring,102,39'; - put '36.468,-116.325,Longstreet Spring,Death Valley,Hotspring,82,28'; - put '36.722,-114.716,Muddy Spring,Las Vegas,Hotspring,90,32'; - put '37.532,-115.233,Crystal Springs,Caliente,Hotspring,90,32'; - put '37.598,-115.215,Hiko Spring,Caliente,Hotspring,90,32'; - put '36.404,-116.383,Spring,Death Valley,Hotspring,90,32'; - put '37.996,-116.389,Reveille Mill Spring,Goldfield,Hotspring,84,29'; - put '36.71,-114.714,Moapa Warm Springs,Las Vegas,Hotspring,90,32'; - put '35.982,-114.748,Hot Springs,Kingman,Hotspring,86,30'; - put '40.929,-116.895,Izzenhood Ranch Springs,Winnemucca,Hotspring,88,31'; - put '37.807,-114.38,Panaca Spring,Caliente,Hotspring,88,31'; - put '36.942,-116.729,Spring,Death Valley,Hotspring,88,31'; - put '41.98,-114.376,Hot Spring,Wells,Hotspring,86,30'; - put '36.433,-116.308,Scruggs Springs,Death Valley,Hotspring,86,30'; - put '40.952,-114.751,Ralphs Warm Springs,Elko,Hotspring,86,30'; - put '39.526,-118.876,Soda Lake,Reno,Hotspring,86,30'; - put '38.027,-116.683,Spring,Tonopah,Hotspring,86,30'; - put '37.741,-115.753,Sand Spring,Caliente,Hotspring,86,30'; - put '36.918,-116.744,Beatty Municipal Spring,Death Valley,Hotspring,88,31'; - put '38.255,-116.829,Saulsbury Warm Spring,Tonopah,Hotspring,86,30'; - put '42.48,-73.37,Lebanon Spring,Albany,Hotspring,72,22'; - put '44.241,-122.058,Bigelow Hot Springs,Salem,Hotspring,142,61'; - put '44.862,-121.201,Kahneeta Hot Springs,Bend,Hotspring,126,52'; - put '44.927,-117.939,Radium Hot Springs,Baker,Hotspring,135,57'; - put '44.354,-118.574,Blue Mountain Hot Springs,Canyon City,Hotspring,136,58'; - put '44.936,-122.173,Bagby Hot Springs,Salem,Hotspring,136,58'; - put '43.944,-118.136,Beulah Hot Springs,Burns,Hotspring,140,60'; - put '43.763,-117.156,Mitchell Butte Hot Spring,Boise,Hotspring,144,62'; - put '42.116,-121.287,Oregon Hot Springs (Big Hot Spring,Klamath Falls,Hotspring,142,61'; - put '45.151,-118.659,Lehman Springs,Pendleton,Hotspring,142,61'; - put '43.719,-121.209,East Lake Hot Springs,Crescent,Hotspring,144,62'; - put '43.469,-118.202,Luce Hot Springs,Burns,Hotspring,145,63'; - put '45.018,-117.625,Medical Hot Springs,Grangeville,Hotspring,140,60'; - put '44.867,-121.228,Springs,Bend,Hotspring,125,52'; - put '42.188,-118.383,Flagstaff Butte Hot Spring,Adel,Hotspring,126,52'; - put '44.451,-119.105,Mount Vernon Hot Springs,Canyon City,Hotspring,121,49'; - put '42.977,-117.061,Canters Hot Spring,Jordan Valley,Hotspring,120,49'; - put '43.294,-122.367,Umpqua Hot Springs,Roseburg,Hotspring,117,47'; - put '44.002,-119.647,Weberg Hot Spring,Canyon City,Hotspring,115,46'; - put '43.739,-117.178,Deer Butte Hot Spring,Boise,Hotspring,115,46'; - put '43.795,-117.958,Jonesboro Warm Spring,Boise,Hotspring,112,45'; - put '42.075,-119.927,Hallinan Spring,Adel,Hotspring,113,45'; - put '42.297,-119.776,Fisher Hot Springs,Adel,Hotspring,154,68'; - put '45.013,-117.885,Kropp Hot Spring,Grangeville,Hotspring,109,43'; - put '42.221,-120.368,Hunters Hot Springs,Klamath Falls,Hotspring,205,96'; - put '44.083,-122.233,Cougar Reservoir Hot Springs,Salem,Hotspring,111,44'; - put '44.023,-117.46,Neal Hot Springs,Baker,Hotspring,189,87'; - put '42.431,-121.963,Eagle Point Spring,Klamath Falls,Hotspring,95,35'; - put '43.689,-122.372,Kitson Hot Springs,Roseburg,Hotspring,109,43'; - put '44.813,-117.765,Spring (Hot),Baker,Hotspring,W,W'; - put '43.776,-118.047,Warm Spring,Burns,Hotspring,W,W'; - put '43.793,-118.472,Sitz Warm Spring,Burns,Hotspring,W,W'; - put '43.86,-118.288,Altnow Hot Spring,Burns,Hotspring,W,W'; - put '43.893,-117.596,Springs,Boise,Hotspring,W,W'; - put '45.206,-117.912,Union Station Hot Springs,Grangeville,Hotspring,H,H'; - put '44.208,-117.455,Jamieson Hot Springs,Baker,Hotspring,H,H'; - put '42.338,-118.602,Hot Springs,Adel,Hotspring,207,97'; - put '44.782,-121.975,Breitenbush Hot Springs,Bend,Hotspring,198,92'; - put '42.219,-119.877,Warner Valley Ranch,Adel,Hotspring,198,92'; - put '42.156,-120.345,Barry Ranch Hot Springs,Klamath Falls,Hotspring,190,88'; - put '44.193,-122.049,Belknap Springs,Salem,Hotspring,160,71'; - put '45.021,-122.009,Austin Hot Springs,Vancouver,Hotspring,186,86'; - put '42.676,-118.344,Mickey Springs,Adel,Hotspring,187,86'; - put '44.153,-122.098,Foley Springs,Salem,Hotspring,178,81'; - put '45.244,-117.958,Hot Lake Springs,Grangeville,Hotspring,176,80'; - put '42.544,-118.533,Alvord Hot Springs,Adel,Hotspring,174,79'; - put '43.441,-118.638,Crane Hot Springs,Burns,Hotspring,172,78'; - put '42.226,-119.881,Crump Geyser (Crump Spring),Adel,Hotspring,172,78'; - put '43.727,-117.203,Snively Hot Spring,Boise,Hotspring,170,77'; - put '42.174,-121.615,Olene Gap Hot Springs,Klamath Falls,Hotspring,165,74'; - put '43.708,-122.288,Mccredie Springs,Roseburg,Hotspring,163,73'; - put '43.982,-117.233,Vale Hot Springs,Boise,Hotspring,163,73'; - put '42.162,-120.344,Leithead Hot Spring,Klamath Falls,Hotspring,162,72'; - put '45.372,-121.697,Mount Hood Fumaroles,The Dalles,Hotspring,194,90'; - put '43.264,-119.015,Dunn Spring,Burns,Hotspring,70,21'; - put '42.873,-122.167,Annie Spring,Medford,Hotspring,77,25'; - put '42.133,-121.219,Wilkersons Hot Spring,Klamath Falls,Hotspring,76,24'; - put '43.272,-119.293,Basque Spring,Burns,Hotspring,74,23'; - put '43.276,-119.34,Double O Spring,Burns,Hotspring,74,23'; - put '44.073,-119.427,Brisbois Ranch Springs,Canyon City,Hotspring,72,22'; - put '43.265,-119.276,Johnson Spring,Burns,Hotspring,72,22'; - put '43.281,-119.311,Double O Barnyard Spring,Burns,Hotspring,72,22'; - put '43.501,-119.091,Roadland Spring,Burns,Hotspring,72,22'; - put '43.529,-119.081,Goodman Spring,Burns,Hotspring,72,22'; - put '43.703,-117.19,South Black Willow Spring,Boise,Hotspring,71,22'; - put '42.307,-119.875,Moss Ranch Spring,Adel,Hotspring,72,22'; - put '43.758,-118.067,Juntura Warm Spring 1,Burns,Hotspring,77,25'; - put '43.732,-121.252,Paulina Springs,Crescent,Hotspring,70,21'; - put '42.176,-121.828,Howard Holiday,Klamath Falls,Hotspring,77,25'; - put '43.477,-119.075,Baker Spring,Burns,Hotspring,70,21'; - put '42.178,-121.801,Hardboard Spring,Klamath Falls,Hotspring,70,21'; - put '42.325,-120.327,White Rock Ranch Hot Spring,Klamath Falls,Hotspring,71,21'; - put '43.252,-119.258,Hughet Spring,Burns,Hotspring,68,20'; - put '42.38,-120.33,Bean Hot Spring,Klamath Falls,Hotspring,69,20'; - put '42.933,-120.642,Lost Cabin Spring,Klamath Falls,Hotspring,68,20'; - put '42.998,-120.725,Buckhorn Creek Springs,Klamath Falls,Hotspring,68,20'; - put '42.688,-117.905,Tudors Spring,Jordan Valley,Hotspring,68,20'; - put '42.756,-117.55,Scott Spring,Jordan Valley,Hotspring,68,20'; - put '42.725,-120.646,Summer Lake Hot Spring,Klamath Falls,Hotspring,109,43'; - put '43.757,-118.092,Juntura Warm Spring 2,Burns,Hotspring,95,35'; - put '44.374,-118.738,Limekiln Hot Spring,Canyon City,Hotspring,70,21'; - put '42.221,-122.742,Jackson Hot Springs,Medford,Hotspring,95,35'; - put '44.892,-119.141,Ritter Hot Springs,Canyon City,Hotspring,106,41'; - put '43.808,-122.309,Wall Creek Warm Springs,Roseburg,Hotspring,106,41'; - put '43.395,-118.308,Springs (Hot),Burns,Hotspring,106,41'; - put '43.302,-117.383,Hot Spring,Boise,Hotspring,106,41'; - put '44.28,-118.956,Joaquin Miller Hot Springs,Canyon City,Hotspring,104,40'; - put '42.501,-119.693,Antelope Hot Springs,Adel,Hotspring,104,40'; - put '45.129,-118.738,Hidaway Springs,Pendleton,Hotspring,100,38'; - put '44.975,-118.044,Fisher Hot Springs,Canyon City,Hotspring,99,37'; - put '44.033,-117.449,Bully Creek Spring,Baker,Hotspring,99,37'; - put '42.93,-120.798,Pardon Warm Spring,Klamath Falls,Hotspring,76,24'; - put '42.327,-118.602,Borax Lake (Hot Lake),Adel,Hotspring,97,36'; - put '42.161,-121.627,Crystal Spring,Klamath Falls,Hotspring,78,26'; - put '45.741,-118.233,Bingham Springs,Pendleton,Hotspring,93,34'; - put '42.889,-118.898,Fivemile Spring (Hoghouse Hot Sprs,Adel,Hotspring,80,27'; - put '43.54,-119.081,Millpond Hot Spring,Burns,Hotspring,79,26'; - put '45.891,-116.873,Cook Creek Hot Spring,Grangeville,Hotspring,97,36'; - put '45.295,-121.731,Swim Warm Springs,The Dalles,Hotspring,79,26'; - put '42.04,-120.924,Warm Spring,Klamath Falls,Hotspring,92,33'; - put '44.779,-117.811,Sam O Spring,Baker,Hotspring,80,27'; - put '44.538,-117.417,Nelson Spring,Baker,Hotspring,80,27'; - put '45.631,-119.703,Well Spring,Pendleton,Hotspring,80,27'; - put '42.287,-119.867,Moss Ranch Springs,Adel,Hotspring,83,28'; - put '45.061,-118.455,Warm Mineral Spring,Pendleton,Hotspring,83,28'; - put '43.95,-119.634,Warm Springs,Burns,Hotspring,84,29'; - put '45.295,-117.806,Warm Spring,Grangeville,Hotspring,85,29'; - put '42.815,-118.899,Warm Springs,Adel,Hotspring,89,32'; - put '43.452,-103.508,Hot Brook Springs,Hot Springs,Hotspring,75,24'; - put '43.442,-103.481,Hot Springs,Hot Springs,Hotspring,87,31'; - put '29.178,-102.953,Rio Grande Village Spring,Emory Peak,Hotspring,97,36'; - put '30.823,-105.315,Indian Hot Springs,Marfa,Hotspring,117,47'; - put '30.038,-104.598,Ruidosa Hot Springs,Marfa,Hotspring,113,45'; - put '29.182,-102.992,Hot Springs,Emory Peak,Hotspring,106,41'; - put '30.21,-104.562,Capote Springs,Marfa,Hotspring,99,37'; - put '30.133,-104.602,Nixon Spring,Marfa,Hotspring,90,32'; - put '29.787,-104.462,Springs (Las Cienegas),Presidio,Hotspring,86,30'; - put '30.861,-105.34,Red Bull Spring,Marfa,Hotspring,99,37'; - put '38.85,-112.49,Hatton Hot Spring,Richfield,Hotspring,100,38'; - put '40.176,-111.801,Bird Island,Salt Lake City,Hotspring,86,30'; - put '41.917,-111.958,Gancheff Spring,Ogden,Hotspring,88,31'; - put '37.942,-112.438,Lefevre,Cedar City,Hotspring,90,32'; - put '37.335,-113.687,Veyo Hot Spring,Cedar City,Hotspring,90,32'; - put '40.332,-111.891,Fault Zone Spring,Salt Lake City,Hotspring,90,32'; - put '40.146,-111.806,Lincoln Point Warm Springs,Salt Lake City,Hotspring,90,32'; - put '38.186,-112.912,Us Blm,Richfield,Hotspring,91,33'; - put '41.833,-112.454,Blue Creek Spring,Brigham City,Hotspring,82,28'; - put '40.526,-111.488,Midway Hot Springs,Salt Lake City,Hotspring,100,38'; - put '40.525,-111.468,Midway Hot Springs,Salt Lake City,Hotspring,104,40'; - put '40.038,-111.529,Castilla Springs,Salt Lake City,Hotspring,104,40'; - put '38.217,-112.904,Dotsons (Radium) Warm Spring,Richfield,Hotspring,91,33'; - put '40.465,-109.221,Split Mountain Warm Springs,Vernal,Hotspring,86,30'; - put '40.788,-112.017,Hobo Warm Spring,Tooele,Hotspring,84,29'; - put '40.788,-111.899,Wasatch Hot Springs,Salt Lake City,Hotspring,108,42'; - put '39.35,-113.515,Tule Spring,Delta,Hotspring,82,28'; - put '39.424,-113.485,Coyote Spring,Delta,Hotspring,82,28'; - put '39.842,-113.392,Fish Springs,Delta,Hotspring,82,28'; - put '39.887,-113.413,North Springs,Delta,Hotspring,82,28'; - put '41.756,-113.603,Warm Spring,Brigham City,Hotspring,81,27'; - put '41.038,-111.656,Como Springs,Ogden,Hotspring,81,27'; - put '40.397,-112.421,Morgans Warm Spring,Tooele,Hotspring,80,27'; - put '39.464,-114.038,Gandy Warm Springs,Ely,Hotspring,81,27'; - put '40.447,-110.828,Warm Springs,Salt Lake City,Hotspring,79,26'; - put '37.7,-110.421,Warm Spring,Escalante,Hotspring,79,26'; - put '40.502,-114.038,Blue Lake Spring,Elko,Hotspring,84,29'; - put '38.503,-112.849,Roosevelt Hot Springs,Richfield,Hotspring,133,56'; - put '38.774,-112.096,Richfield Warm Springs,Richfield,Hotspring,73,23'; - put '40.488,-111.911,Crystal Hot Springs,Salt Lake City,Hotspring,187,86'; - put '38.186,-113.197,Thermo Hot Springs,Richfield,Hotspring,185,85'; - put '38.172,-113.204,Thermo Hot Springs,Richfield,Hotspring,181,83'; - put '39.613,-112.729,"Baker (Abraham, Crater) Hot Spring",Delta,Hotspring,180,82'; - put '38.639,-112.098,Red Hill Hot Spring,Richfield,Hotspring,171,77'; - put '38.633,-112.107,Monroe (Cooper) Hot Springs,Richfield,Hotspring,169,76'; - put '38.613,-112.202,Joseph Hot Springs,Richfield,Hotspring,147,64'; - put '39.906,-113.43,Wilson Health Springs,Delta,Hotspring,142,61'; - put '41.138,-112.175,Hooper Hot Springs,Brigham City,Hotspring,140,60'; - put '41.338,-112.031,Utah Hot Springs,Brigham City,Hotspring,138,59'; - put '38.864,-112.506,Meadow Hot Springs,Richfield,Hotspring,106,41'; - put '40.815,-111.918,Becks Hot Spring,Salt Lake City,Hotspring,133,56'; - put '37.189,-113.272,Dixie (Laverkin) Hot Springs,Cedar City,Hotspring,108,42'; - put '41.659,-112.087,Crystal (Madsens) Hot Springs,Brigham City,Hotspring,129,54'; - put '41.855,-112.158,Udy Hot Springs,Brigham City,Hotspring,124,51'; - put '41.578,-112.23,Stinking Hot Springs,Brigham City,Hotspring,118,48'; - put '40.517,-111.475,Midway Hot Spring,Salt Lake City,Hotspring,115,46'; - put '40.536,-111.478,Warm Ditch Spring,Salt Lake City,Hotspring,115,46'; - put '40.35,-111.905,Saratoga Hot Springs,Salt Lake City,Hotspring,111,44'; - put '40.353,-111.895,Crater Hot Spring,Salt Lake City,Hotspring,111,44'; - put '41.901,-112.999,Coyote Spring,Brigham City,Hotspring,109,43'; - put '41.687,-113.986,Spring (Hot),Brigham City,Hotspring,108,42'; - put '41.582,-112.256,Little Mountain Hot Spring,Brigham City,Hotspring,108,42'; - put '41.822,-113.263,L.G. Carter Springs,Brigham City,Hotspring,77,25'; - put '41.236,-111.924,Ogden Hot Spring,Ogden,Hotspring,135,57'; - put '37.178,-113.634,Snow Spring,Cedar City,Hotspring,70,21'; - put '38.34,-113.22,Woodhouse Spring,Richfield,Hotspring,72,22'; - put '38.155,-112.901,Willow Spring,Richfield,Hotspring,72,22'; - put '38.56,-112.578,Sulphurdale,Richfield,Hotspring,72,22'; - put '38.981,-111.829,Salt Spring,Salina,Hotspring,72,22'; - put '37.174,-112.535,Red Canyon,Cedar City,Hotspring,72,22'; - put '41.808,-113.327,W.R. Carter Springs,Brigham City,Hotspring,70,21'; - put '41.818,-113.311,Larson Springs,Brigham City,Hotspring,70,21'; - put '41.829,-113.654,Head Spring,Brigham City,Hotspring,70,21'; - put '40.653,-112.907,Redlum Spring,Tooele,Hotspring,70,21'; - put '40.458,-111.929,Camp Williams,Salt Lake City,Hotspring,70,21'; - put '40.647,-112.524,Grantsville Warm Springs,Tooele,Hotspring,77,25'; - put '39.183,-111.691,Sterling (Peacock) Warm Spring,Price,Hotspring,72,22'; - put '39.246,-111.645,Livingston Warm Springs,Price,Hotspring,73,23'; - put '38.138,-112.863,Big Maple Spring,Richfield,Hotspring,70,21'; - put '37.393,-113.61,Irvine Spring,Cedar City,Hotspring,70,21'; - put '41.563,-113.954,Kimber (Rose) Spring,Brigham City,Hotspring,68,20'; - put '41.614,-113.613,Warm Spring,Brigham City,Hotspring,68,20'; - put '41.328,-111.826,Patio Springs,Ogden,Hotspring,68,20'; - put '40.172,-112.426,Davis,Tooele,Hotspring,68,20'; - put '40.118,-111.337,Diamond Fork Warm Springs,Salt Lake City,Hotspring,68,20'; - put '39.249,-113.877,Knoll Springs,Delta,Hotspring,68,20'; - put '39.403,-113.863,Twin Springs,Delta,Hotspring,68,20'; - put '39.788,-111.881,Ray Lunt Spring,Price,Hotspring,68,20'; - put '38.762,-112.87,Springs,Richfield,Hotspring,68,20'; - put '38.77,-112.871,Coyote Spring,Richfield,Hotspring,68,20'; - put '37.937,-112.424,Tebbs,Cedar City,Hotspring,68,20'; - put '37.096,-113.447,Warner Valley Spring,Cedar City,Hotspring,70,21'; - put '40.565,-112.738,Deseret Livestock South Springs,Tooele,Hotspring,73,23'; - put '37.158,-113.399,Virgin River Spring,Cedar City,Hotspring,70,21'; - put '39.899,-112.045,Springs,Delta,Hotspring,72,22'; - put '38.603,-112.111,Johnson Warm Spring,Richfield,Hotspring,77,25'; - put '41.722,-112.266,Bothwell Warm Springs,Brigham City,Hotspring,75,24'; - put '40.538,-112.747,Deseret Livestock,Tooele,Hotspring,75,24'; - put '40.733,-112.621,Utah Fish And Game Dept,Tooele,Hotspring,75,24'; - put '40.228,-111.867,Warm Springs,Salt Lake City,Hotspring,75,24'; - put '37.137,-113.513,Warm Spring,Cedar City,Hotspring,75,24'; - put '37.138,-113.528,Green Spring,Cedar City,Hotspring,75,24'; - put '37.166,-113.383,Berry Springs,Cedar City,Hotspring,75,24'; - put '41.834,-112.054,Cutler Warm Spring,Brigham City,Hotspring,73,23'; - put '40.614,-112.709,Horseshoe Springs,Tooele,Hotspring,73,23'; - put '41.239,-112.413,Compton Spring,Brigham City,Hotspring,72,22'; - put '40.743,-112.642,Big Warm Springs,Tooele,Hotspring,72,22'; - put '40.558,-112.739,Deseret Livestock South Spring,Tooele,Hotspring,72,22'; - put '40.39,-112.424,Russells Warm Springs,Tooele,Hotspring,72,22'; - put '41.831,-113.391,Pugsley,Brigham City,Hotspring,73,23'; - put '41.449,-112.442,Poulsen Spring (Salt),Brigham City,Hotspring,72,22'; - put '40.167,-111.622,Wood Springs,Salt Lake City,Hotspring,73,23'; - put '40.234,-111.865,Warm Springs,Salt Lake City,Hotspring,77,25'; - put '39.955,-111.858,Goshen Warm Srings,Price,Hotspring,73,23'; - put '39.334,-113.518,South Tule Spring,Delta,Hotspring,77,25'; - put '39.616,-112.803,Fumarole Butte,Delta,Hotspring,73,23'; - put '40.545,-111.928,East Jordan Canal,Salt Lake City,Hotspring,73,23'; - put '41.643,-112.281,Springs,Brigham City,Hotspring,72,22'; - put '37.29,-80.619,New River White Sulphur Springs,Bluefield,Hotspring,85,29'; - put '37.997,-79.83,Hot Springs,Roanoke,Hotspring,106,41'; - put '37.898,-79.462,Rockbridge Baths,Roanoke,Hotspring,72,22'; - put '38.055,-79.78,Warm Springs,Charlottesvill,Hotspring,95,35'; - put '37.963,-79.861,Healing Springs,Roanoke,Hotspring,86,30'; - put '38.238,-79.65,Bragg Spring,Charlottesvill,Hotspring,75,24'; - put '37.645,-80.238,Sweet Chalybeate Spring,Bluefield,Hotspring,75,24'; - put '38.218,-79.673,Bolar Spring,Charlottesvill,Hotspring,73,23'; - put '37.86,-79.988,Layton Spring,Roanoke,Hotspring,72,22'; - put '37.87,-79.933,Falling Spring,Roanoke,Hotspring,77,25'; - put '37.16,-80.806,Alum Springs,Bluefield,Hotspring,72,22'; - put '46.852,-121.758,Mt Rainier Fumaroles,Yakima,Hotspring,162,72'; - put '46.738,-121.562,Ohanapecosh Hot Springs,Yakima,Hotspring,122,50'; - put '47.707,-121.155,Scenic Hot Springs,Wenatchee,Hotspring,122,50'; - put '47.969,-123.864,Sol Duc Hot Springs,Seattle,Hotspring,122,50'; - put '48.974,-119.475,Hot Lake,Okanogan,Hotspring,122,50'; - put '45.658,-121.962,Moffetts (Bonneville) Hot Springs,The Dalles,Hotspring,97,36'; - put '48.906,-119.455,Poison Lake,Okanogan,Hotspring,122,50'; - put '45.701,-121.728,Collins Hot Springs,The Dalles,Hotspring,122,50'; - put '47.484,-121.391,Goldmeyer Hot Springs,Wenatchee,Hotspring,127,53'; - put '46.202,-121.492,Mount Adams Fumaroles,Yakima,Hotspring,150,66'; - put '46.198,-122.197,Mt St Helens Fumaroles,Hoquiam,Hotspring,190,88'; - put '48.789,-121.804,Dorr Fumarole Field,Concrete,Hotspring,194,90'; - put '48.77,-121.813,Sherman Crater Fumaroles,Concrete,Hotspring,266,130'; - put '45.723,-121.927,Rock Creek Hot Springs,The Dalles,Hotspring,H,H'; - put '48.15,-121.062,Gamma Hot Springs,Concrete,Hotspring,140,60'; - put '46.378,-122.265,Green River Soda Spring,Hoquiam,Hotspring,86,30'; - put '46.575,-121.706,Packwood Hot Spring,Yakima,Hotspring,100,38'; - put '47.201,-121.536,Lester Hot Springs,Wenatchee,Hotspring,120,49'; - put '46.024,-118.771,Warm Springs Canyon Warm Spring,Walla Walla,Hotspring,72,22'; - put '46.345,-121.6,Orr Creek Warm Springs,Yakima,Hotspring,72,22'; - put '46.041,-121.181,Fish Hatchery Warm Spring,Yakima,Hotspring,75,24'; - put '46.752,-121.814,Longmire Mineral Springs,Yakima,Hotspring,77,25'; - put '47.892,-121.342,Garland Mineral Springs,Wenatchee,Hotspring,84,29'; - put '46.452,-120.956,Simcoe Soda Springs,Yakima,Hotspring,90,32'; - put '48.254,-121.17,Sulphur Creek Hot Springs,Concrete,Hotspring,99,37'; - put '48.118,-121.192,Kennedy Hot Spring,Concrete,Hotspring,100,38'; - put '48.763,-121.667,Baker Hot Spring,Concrete,Hotspring,108,42'; - put '47.977,-123.682,Olympic Hot Springs,Seattle,Hotspring,118,48'; - put '45.728,-121.8,St Martins Hot Springs,The Dalles,Hotspring,120,49'; - put '45.821,-121.133,Klickitat Mineral Springs,The Dalles,Hotspring,81,27'; - put '38.163,-79.975,Minnehaha Springs,Charlottesvill,Hotspring,70,21'; - put '37.63,-80.24,Old Sweet Spring,Bluefield,Hotspring,73,23'; - put '39.618,-78.23,Berkeley Springs,Cumberland,Hotspring,72,22'; - put '38.605,-79.353,Thorn Spring,Charlottesvill,Hotspring,72,22'; - put '39.471,-77.877,Swan Pond Spring,Baltimore,Hotspring,72,22'; - put '44.29,-110.504,"Hot Springs,heart Lake Geyser Basi",Ashton,Hotspring,201,94'; - put '44.691,-110.728,Geyser Springs Group,Ashton,Hotspring,201,94'; - put '44.554,-110.812,Fountain Group,Ashton,Hotspring,201,94'; - put '44.543,-110.859,Fairy Springs,Ashton,Hotspring,201,94'; - put '44.485,-110.852,"Biscuit Basin, Sapphire Pool",Ashton,Hotspring,201,94'; - put '44.48,-110.85,Cascade Group,Ashton,Hotspring,201,94'; - put '44.46,-110.844,Black Sand Basin,Ashton,Hotspring,201,94'; - put '44.459,-110.835,Myriad Group,Ashton,Hotspring,201,94'; - put '44.307,-110.526,"Hot Springs,heart Lake Geyser Basi",Ashton,Hotspring,201,94'; - put '44.354,-110.8,Shoshone Geyser Basin,Ashton,Hotspring,203,95'; - put '44.568,-110.805,Quagmire Group,Ashton,Hotspring,203,95'; - put '44.537,-110.801,"White Dome Geyser, Surprise Pool",Ashton,Hotspring,203,95'; - put '44.52,-110.828,Flood Group,Ashton,Hotspring,203,95'; - put '44.471,-110.843,"Daisy Group, Sentinel Geysers",Ashton,Hotspring,203,95'; - put '44.466,-110.839,"Middle Group,tortoise Shell,inkwel",Ashton,Hotspring,203,95'; - put '44.46,-110.828,"Geyser Hill Group, Old Faithful Ge",Ashton,Hotspring,203,95'; - put '44.908,-110.393,Calcite Springs,Ashton,Hotspring,201,94'; - put '44.417,-110.57,West Thumb Geyser Basin,Ashton,Hotspring,203,95'; - put '44.459,-110.817,Southeastern Group,Ashton,Hotspring,198,92'; - put '44.433,-110.581,Potts Hot Spring Basin,Ashton,Hotspring,203,95'; - put '44.421,-110.952,Smoke Jumper Hot Springs,Ashton,Hotspring,198,92'; - put '44.684,-110.753,Monument Geyser Basin,Ashton,Hotspring,197,92'; - put '44.679,-110.746,Beryl Spring,Ashton,Hotspring,198,92'; - put '44.544,-110.258,Turbid Springs,Ashton,Hotspring,198,92'; - put '44.53,-110.297,Steamboat Springs,Ashton,Hotspring,198,92'; - put '44.518,-110.813,"Hot Springs, Rabbit Creek Group",Ashton,Hotspring,198,92'; - put '44.514,-110.828,Rabbit Creek Group,Ashton,Hotspring,198,92'; - put '44.484,-110.873,Mystic Falls Springs,Ashton,Hotspring,198,92'; - put '44.739,-110.324,Josephs Coat Springs,Ashton,Hotspring,199,93'; - put '44.75,-110.714,Gas Vent,Ashton,Hotspring,H,H'; - put '44.282,-110.506,Rustic Geyser,Ashton,Hotspring,199,93'; - put '44.571,-110.811,Morning Mist Springs,Ashton,Hotspring,205,96'; - put '44.733,-110.703,Cistern Spring,Ashton,Hotspring,199,93'; - put '44.697,-110.724,Gibbon Hill Geyser,Ashton,Hotspring,199,93'; - put '44.693,-110.738,Artists Paintpots,Ashton,Hotspring,199,93'; - put '44.69,-110.384,Hot Springs on Bog Creek,Ashton,Hotspring,199,93'; - put '44.526,-110.835,Excelsior Geyser Crater,Ashton,Hotspring,199,93'; - put '44.418,-110.805,Lone Star Geyser,Ashton,Hotspring,199,93'; - put '44.309,-110.654,Hot Springs on Lewis Lake,Ashton,Hotspring,199,93'; - put '44.469,-110.828,Solitary Geyser,Ashton,Hotspring,198,92'; - put '44.433,-110.813,Hot Springs,Ashton,Hotspring,H,H'; - put '44.766,-110.3,Hot Springs,Ashton,Hotspring,H,H'; - put '44.61,-110.438,Hot Springs,Ashton,Hotspring,H,H'; - put '44.607,-110.617,Hot Springs East of Mary Lake,Ashton,Hotspring,H,H'; - put '44.601,-110.632,Gas Vent East of Mary Lake,Ashton,Hotspring,H,H'; - put '44.595,-110.622,Gas Vents Southeast of Mary Lake,Ashton,Hotspring,H,H'; - put '44.572,-110.691,Hot Springs,Ashton,Hotspring,H,H'; - put '44.553,-110.301,Beach Springs,Ashton,Hotspring,H,H'; - put '44.551,-110.85,Springs on Fairy Creek,Ashton,Hotspring,H,H'; - put '44.616,-110.616,Highland Hot Springs,Ashton,Hotspring,H,H'; - put '44.438,-110.977,Hot Springs on Continental Divide,Ashton,Hotspring,H,H'; - put '44.617,-110.432,Mud Geysers,Ashton,Hotspring,H,H'; - put '44.404,-110.824,Hot Springs on Upper Firehole Rive,Ashton,Hotspring,H,H'; - put '44.498,-109.193,Buffalo Bill Reservoir Springs,Cody,Hotspring,W,W'; - put '44.495,-109.222,Buffalo Bill Reservoir Springs,Cody,Hotspring,W,W'; - put '44.482,-109.204,Buffalo Bill Reservoir Springs,Cody,Hotspring,W,W'; - put '44.841,-110.167,"Hot, on Lamar River",Ashton,Hotspring,W,W'; - put '44.734,-110.029,Hot Springs,Ashton,Hotspring,W,W'; - put '44.708,-110.471,Warm Spring,Ashton,Hotspring,W,W'; - put '44.701,-110.036,Hot Springs,Ashton,Hotspring,W,W'; - put '44.508,-110.832,Midway Picnic Ground,Ashton,Hotspring,H,H'; - put '44.715,-110.555,Gas Vents,Ashton,Hotspring,H,H'; - put '44.563,-110.834,River Group,Ashton,Hotspring,205,96'; - put '44.544,-110.788,"Black Warrior Group, Shelf Spring",Ashton,Hotspring,205,96'; - put '44.115,-110.684,Huckleberry Hot Springs,Ashton,Hotspring,B,B'; - put '44.842,-110.732,Apollinaris Spring,Ashton,Hotspring,H,H'; - put '44.825,-110.675,Gas Vents at Horseshoe Hill,Ashton,Hotspring,H,H'; - put '44.781,-110.738,Steam Vents at Roaring Mountain,Ashton,Hotspring,H,H'; - put '44.743,-110.242,Hot Spring Basin Group,Ashton,Hotspring,198,92'; - put '44.752,-110.256,Hot Spring,Ashton,Hotspring,H,H'; - put '44.612,-110.618,Gas Vent,Ashton,Hotspring,H,H'; - put '44.741,-110.699,Gas Vent,Ashton,Hotspring,H,H'; - put '44.566,-110.871,"Flat Cone Spring, Steep Cone",Ashton,Hotspring,205,96'; - put '44.711,-110.468,Hot Springs,Ashton,Hotspring,H,H'; - put '44.708,-110.461,Forest Springs,Ashton,Hotspring,H,H'; - put '44.672,-110.236,Hot Springs,Ashton,Hotspring,H,H'; - put '44.667,-110.282,Hot Springs,Ashton,Hotspring,H,H'; - put '44.656,-110.572,Violet Springs,Ashton,Hotspring,H,H'; - put '44.642,-110.238,Hot Spring,Ashton,Hotspring,H,H'; - put '44.634,-110.234,The Mudkettles,Ashton,Hotspring,H,H'; - put '44.634,-110.226,The Mushpots,Ashton,Hotspring,H,H'; - put '44.532,-110.874,"Imperial Geyser, Spray Geyser",Ashton,Hotspring,192,89'; - put '42.545,-106.725,Alcova Hot Springs,Casper,Hotspring,129,54'; - put '42.75,-109.616,Steele Hot Springs,Lander,Hotspring,102,39'; - put '43.37,-110.445,Granite Hot Spring,Driggs,Hotspring,106,41'; - put '43.008,-108.835,Washakie Mineral Hot Springs,Thermopolis,Hotspring,111,44'; - put '43.907,-110.198,North Buffalo Fork Springs,Driggs,Hotspring,113,45'; - put '43.365,-110.443,Granite Falls Hot Springs,Driggs,Hotspring,112,45'; - put '42.817,-110.997,Johnson Springs,Preston,Hotspring,115,46'; - put '44.723,-110.358,Hot Spring on Moss Creek,Ashton,Hotspring,115,46'; - put '44.681,-110.326,Hot Springs on Upper Sour Creek,Ashton,Hotspring,194,90'; - put '41.45,-106.804,Saratoga Hot Springs,Rawlins,Hotspring,129,54'; - put '44.671,-110.786,Secret Valley Hot Springs,Ashton,Hotspring,95,35'; - put '44.625,-110.433,Mud Volcano,Ashton,Hotspring,131,55'; - put '43.654,-108.194,Thermopolis Hot Springs,Thermopolis,Hotspring,133,56'; - put '44.985,-110.689,Hot River,Ashton,Hotspring,136,58'; - put '44.588,-110.341,Ebro Springs,Ashton,Hotspring,136,58'; - put '44.55,-110.805,Fountain Paint Pot,Ashton,Hotspring,136,58'; - put '44.169,-110.583,Snake Hot Springs,Ashton,Hotspring,136,58'; - put '44.157,-110.699,Crawfish Creek Hot Springs,Ashton,Hotspring,136,58'; - put '44.165,-110.723,Crawfish Creek Hot Springs,Ashton,Hotspring,138,59'; - put '44.711,-110.741,Chocolate Pots,Ashton,Hotspring,124,51'; - put '43.56,-109.732,Geyser (Warm Spring Creek Springs),Thermopolis,Hotspring,84,29'; - put '43.489,-109.605,Jakeys Fork Spring,Thermopolis,Hotspring,68,20'; - put '44.749,-108.188,Little Sheep Mountain Spring,Cody,Hotspring,68,20'; - put '42.249,-104.781,Warm Springs (Immigrants Washtub),Torrington,Hotspring,70,21'; - put '44.608,-108.138,Sheep Mountain Springs,Cody,Hotspring,70,21'; - put '43.583,-108.213,Wind River Canyon Spring,Thermopolis,Hotspring,72,22'; - put '42.702,-107.105,Horse Creek Springs,Casper,Hotspring,75,24'; - put '44.511,-109.156,Needle Hot Springs,Cody,Hotspring,75,24'; - put '43.52,-109.669,Little Warm Spring,Thermopolis,Hotspring,77,25'; - put '43.3,-110.775,Astoria Mineral Hot Springs,Driggs,Hotspring,99,37'; - put '43.543,-110.741,Abercrombie Warm Springs,Driggs,Hotspring,81,27'; - put '44.513,-109.115,De Maris Springs,Cody,Hotspring,97,36'; - put '42.665,-105.394,Douglas Hot Springs,Torrington,Hotspring,86,30'; - put '43.471,-110.835,Boyles Hill Springs,Driggs,Hotspring,86,30'; - put '43.282,-110.019,Kendall Warm Spring,Driggs,Hotspring,86,30'; - put '44.662,-110.768,Iron Spring,Ashton,Hotspring,86,30'; - put '42.492,-108.172,Sweetwater Station Warm Springs,Lander,Hotspring,90,32'; - put '44.742,-110.579,Wolf Lake Springs,Ashton,Hotspring,91,33'; - put '44.513,-109.129,Shoshone Hot Springs,Cody,Hotspring,95,35'; - put '42.828,-110.999,Auburn Hot Springs,Preston,Hotspring,144,62'; - put '43.639,-110.615,Kelly Warm Spring,Driggs,Hotspring,81,27'; - put '44.532,-110.796,Five Sisters Springs,Ashton,Hotspring,192,89'; - put '44.582,-110.314,Vermilion Springs,Ashton,Hotspring,140,60'; - put '44.521,-110.275,Butte Springs,Ashton,Hotspring,187,86'; - put '44.478,-110.867,Hillside Springs,Ashton,Hotspring,187,86'; - put '44.752,-110.418,Hot Springs at Sevenmile Hole,Ashton,Hotspring,189,87'; - put '44.401,-110.936,Hot Springs on Continental Divide,Ashton,Hotspring,189,87'; - put '44.769,-110.269,Rainbow Springs,Ashton,Hotspring,190,88'; - put '44.628,-110.433,Sulphur Caldron,Ashton,Hotspring,190,88'; - put '44.702,-110.767,Sylvan Springs,Ashton,Hotspring,192,89'; - put '44.529,-110.791,White Creek Group,Ashton,Hotspring,185,85'; - put '44.564,-110.869,Queens Laundry,Ashton,Hotspring,192,89'; - put '44.697,-110.375,Hot Springs on Bog Creek,Ashton,Hotspring,185,85'; - put '44.285,-110.9,Bechler River Hot Springs,Ashton,Hotspring,194,90'; - put '44.797,-110.725,Amphitheater Springs,Ashton,Hotspring,196,91'; - put '44.766,-110.429,Washburn Hot Springs,Ashton,Hotspring,196,91'; - put '44.756,-110.308,Coffee Pot Hot Springs,Ashton,Hotspring,196,91'; - put '44.591,-110.321,Hot Springs at Sulphur Hills,Ashton,Hotspring,196,91'; - put '44.556,-110.832,River Group,Ashton,Hotspring,196,91'; - put '44.422,-110.574,West Thumb Geyser Basin,Ashton,Hotspring,196,91'; - put '44.786,-110.74,Semi-Centennial Geyser,Ashton,Hotspring,198,92'; - put '44.653,-110.482,Sulphur Springs,Ashton,Hotspring,194,89'; - put '44.41,-110.953,Summit Lake Hot Springs,Ashton,Hotspring,162,72'; - put '44.761,-110.73,Bijah Spring,Ashton,Hotspring,198,92'; - put '44.781,-110.699,Whiterock Springs,Ashton,Hotspring,144,62'; - put '44.739,-110.258,Hot Spring Basin Group,Ashton,Hotspring,153,67'; - put '44.754,-110.403,Sevenmile Hole,Ashton,Hotspring,154,68'; - put '44.276,-110.636,Hot Springs on Lewis Lake,Ashton,Hotspring,154,68'; - put '44.598,-110.236,Hot Springs In Pelican Valley,Ashton,Hotspring,156,69'; - put '44.142,-110.656,South Entrance Hot Springs,Ashton,Hotspring,156,69'; - put '44.753,-110.724,"Roadside Springs, Frying Pan Sprin",Ashton,Hotspring,158,70'; - put '44.733,-110.712,Horseshoe Spring,Ashton,Hotspring,187,86'; - put '43.958,-110.696,Jackson Lake Hot Springs,Driggs,Hotspring,162,72'; - put '44.187,-110.726,Hot Springs,Ashton,Hotspring,142,61'; - put '44.967,-110.708,Mammoth Hot Springs,Ashton,Hotspring,163,73'; - put '44.475,-110.843,Morning Glory Pool,Ashton,Hotspring,163,73'; - put '44.204,-110.486,Hot Springs on Upper Snake River,Ashton,Hotspring,167,75'; - put '44.299,-110.517,"Heart Lake Geyser Basin, Middle Gr",Ashton,Hotspring,174,79'; - put '44.671,-110.29,Ponuntpa Springs Group,Ashton,Hotspring,180,82'; - put '44.244,-111.022,Boundary Creek Hot Springs,Ashton,Hotspring,181,83'; - put '44.414,-110.817,"Lone Star Geyser Basin, Footbridge",Ashton,Hotspring,183,84'; - put '44.722,-110.701,Echinus Geyser,Ashton,Hotspring,185,85'; - put '44.461,-110.854,Emerald Pool,Ashton,Hotspring,158,70'; - put ';;;;'; - put 'run;'; - put '* ServiceInit end;'; - put '* Service start;'; - put '/**'; - put '@file getdata.sas'; - put '@brief Get Data service - runs on app startup'; - put '@details This is always the first service called when the app is opened.'; - put '

SAS Macros

'; - put '**/'; - put '/* this macro converts the JS input to a WORK table - work.areas */'; - put '%webout(FETCH)'; - put 'proc sql;'; - put 'create table springs as select *'; - put 'from mydb.springs'; - put 'where area in (select area from work.areas);'; - put '/* these macros open the JSON, send the table back, and close the JSON */'; - put '%webout(OPEN)'; - put '%webout(OBJ,springs)'; - put '%webout(CLOSE)'; - put '* Service end;'; - -run; -%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) -filename sascode clear; - - -%let path=services/files; - -%let service=upload; -filename sascode temp lrecl=32767; -data _null_; -file sascode; - - put '%macro mf_getuser('; - put ')/*/STORE SOURCE*/;'; - put '%local user;'; - put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; - put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; - put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; - put '%end;'; - put '%else %if %symexist(_metaperson) %then %do;'; - put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; - put '/* sometimes SAS will add @domain extension - remove for consistency */'; - put '/* but be sure to quote in case of usernames with commas */'; - put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; - put '%end;'; - put '%else %let user=&sysuserid;'; - put '%quote(&user)'; - put '%mend mf_getuser;'; - put '/**'; - put '@file mp_jsonout.sas'; - put '@brief Writes JSON in SASjs format to a fileref'; - put '@details This macro can be used to OPEN a JSON stream and send one or more'; - put 'tables as arrays of rows, where each row can be an object or a nested array.'; - put 'There are two engines available - DATASTEP or PROCJSON.'; - put 'PROC JSON is fast but will produce errs like the ones below if'; - put 'special chars are encountered.'; - put '> (ERR)OR: Some code points did not transcode.'; - put '> An object or array close is not valid at this point in the JSON text.'; - put '> Date value out of range'; - put 'If this happens, try running with ENGINE=DATASTEP.'; - put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; - put 'can also convert entire datasets to formatted values. Output JSON is always'; - put 'in UTF-8.'; - put 'Usage:'; - put 'filename tmp temp;'; - put 'data class; set sashelp.class;run;'; - put '%mp_jsonout(OPEN,jref=tmp)'; - put '%mp_jsonout(OBJ,class,jref=tmp)'; - put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; - put '%mp_jsonout(CLOSE,jref=tmp)'; - put 'data _null_;'; - put 'infile tmp;'; - put 'input;putlog _infile_;'; - put 'run;'; - put 'If you are building web apps with SAS then you are strongly encouraged to use'; - put 'the mX_createwebservice macros in combination with the'; - put '[sasjs adapter](https://github.com/sasjs/adapter).'; - put 'For more information see https://sasjs.io'; - put '@param [in] action Valid values:'; - put '@li OPEN - opens the JSON'; - put '@li OBJ - sends a table with each row as an object'; - put '@li ARR - sends a table with each row in an array'; - put '@li CLOSE - closes the JSON'; - put '@param [in] ds The dataset to send. Must be a work table.'; - put '@param [out] jref= (_webout) The fileref to which to send the JSON'; - put '@param [out] dslabel= The name to give the table in the exported JSON'; - put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; - put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; - put '@li PROCJSON (default)'; - put '@li DATASTEP (more reliable when data has non standard characters)'; - put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; - put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; - put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; - put 'such as the column formats and types. The metadata is contained inside an'; - put 'object with the same name as the table but prefixed with a dollar sign - ie,'; - put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; - put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; - put 'that should be converted to JSON'; - put '

Related Macros

'; - put '@li mp_ds2fmtds.sas'; - put '@version 9.2'; - put '@author Allan Bowe'; - put '@source https://github.com/sasjs/core'; - put '**/'; - put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; - put ',engine=DATASTEP'; - put ',missing=NULL'; - put ',showmeta=N'; - put ',maxobs=MAX'; - put ')/*/STORE SOURCE*/;'; - put '%local tempds colinfo fmtds i numcols stmt_obs;'; - put '%let numcols=0;'; - put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; - put '%if &action=OPEN %then %do;'; - put 'options nobomfile;'; - put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; - put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; - put 'run;'; - put '%end;'; - put '%else %if (&action=ARR or &action=OBJ) %then %do;'; - put '/* force variable names to always be uppercase in the JSON */'; - put 'options validvarname=upcase;'; - put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; - put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; - put 'filename _sjs1 temp lrecl=200 ;'; - put 'data _null_; file _sjs1 encoding=''utf-8'';'; - put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; - put 'run;'; - put '/* now write to _webout 1 char at a time */'; - put 'data _null_;'; - put 'infile _sjs1 lrecl=1 recfm=n;'; - put 'file &jref mod lrecl=1 recfm=n;'; - put 'input sourcechar $char1. @@;'; - put 'format sourcechar hex2.;'; - put 'put sourcechar char1. @@;'; - put 'run;'; - put 'filename _sjs1 clear;'; - put '/* grab col defs */'; - put 'proc contents noprint data=&ds'; - put 'out=_data_(keep=name type length format formatl formatd varnum label);'; - put 'run;'; - put '%let colinfo=%scan(&syslast,2,.);'; - put 'proc sort data=&colinfo;'; - put 'by varnum;'; - put 'run;'; - put '/* move meta to mac vars */'; - put 'data _null_;'; - put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; - put 'set &colinfo end=last nobs=nobs;'; - put 'name=upcase(name);'; - put '/* fix formats */'; - put 'if type=2 or type=6 then do;'; - put 'typelong=''char'';'; - put 'length fmt $49.;'; - put 'if format='''' then fmt=cats(''$'',length,''.'');'; - put 'else if formatl=0 then fmt=cats(format,''.'');'; - put 'else fmt=cats(format,formatl,''.'');'; - put 'end;'; - put 'else do;'; - put 'typelong=''num'';'; - put 'if format='''' then fmt=''best.'';'; - put 'else if formatl=0 then fmt=cats(format,''.'');'; - put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; - put 'else fmt=cats(format,formatl,''.'',formatd);'; - put 'end;'; - put '/* 32 char unique name */'; - put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; - put 'call symputx(cats(''name'',_n_),name,''l'');'; - put 'call symputx(cats(''newname'',_n_),newname,''l'');'; - put 'call symputx(cats(''length'',_n_),length,''l'');'; - put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; - put 'call symputx(cats(''type'',_n_),type,''l'');'; - put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; - put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; - put 'run;'; - put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; - put '%if &engine=PROCJSON %then %do;'; - put '%if &missing=STRING %then %do;'; - put '%put &sysmacroname: Special Missings not supported in proc json.;'; - put '%put &sysmacroname: Switching to DATASTEP engine;'; - put '%goto datastep;'; - put '%end;'; - put 'data &tempds;'; - put 'set &ds;'; - put '&stmt_obs;'; - put '%if &fmt=N %then format _numeric_ best32.;;'; - put '/* PRETTY is necessary to avoid line truncation in large files */'; - put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; - put 'proc json out=_sjs2 pretty'; - put '%if &action=ARR %then nokeys ;'; - put ';export &tempds / nosastags fmtnumeric;'; - put 'run;'; - put '/* send back to webout */'; - put 'data _null_;'; - put 'infile _sjs2 lrecl=1 recfm=n;'; - put 'file &jref mod lrecl=1 recfm=n;'; - put 'input sourcechar $char1. @@;'; - put 'format sourcechar hex2.;'; - put 'put sourcechar char1. @@;'; - put 'run;'; - put 'filename _sjs2 clear;'; - put '%end;'; - put '%else %if &engine=DATASTEP %then %do;'; - put '%datastep:'; - put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; - put '%then %do;'; - put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; - put '%if &fmt=Y %then %do;'; - put 'data _data_;'; - put '/* rename on entry */'; - put 'set &ds(rename=('; - put '%do i=1 %to &numcols;'; - put '&&name&i=&&newname&i'; put '%end;'; - put '));'; - put '%do i=1 %to &numcols;'; - put '/* formatted values can be up to length 32767 */'; - put 'length &&name&i $32767;'; - put '%if &&typelong&i=num %then %do;'; - put '&&name&i=left(put(&&newname&i,&&fmt&i));'; - put '%end;'; - put '%else %do;'; - put '&&name&i=put(&&newname&i,&&fmt&i);'; - put '%end;'; - put 'drop &&newname&i;'; - put '%end;'; - put 'if _error_ then call symputx(''syscc'',1012);'; - put 'run;'; - put '%let fmtds=&syslast;'; - put '%end;'; - put 'proc format; /* credit yabwon for special null removal */'; - put 'value bart (default=40)'; - put '%if &missing=NULL %then %do;'; - put '._ - .z = null'; - put '%end;'; - put '%else %do;'; - put '._ = [quote()]'; - put '. = null'; - put '.a - .z = [quote()]'; - put '%end;'; - put 'other = [best.];'; - put 'data &tempds;'; - put 'attrib _all_ label='''';'; - put '%do i=1 %to &numcols;'; - put '%if &&typelong&i=char or &fmt=Y %then %do;'; - put 'length &&name&i $32767;'; - put 'format &&name&i $32767.;'; - put '%end;'; - put '%end;'; - put '%if &fmt=Y %then %do;'; - put 'set &fmtds;'; - put '%end;'; - put '%else %do;'; - put 'set &ds;'; - put '%end;'; - put '&stmt_obs;'; - put 'format _numeric_ bart.;'; - put '%do i=1 %to &numcols;'; - put '%if &&typelong&i=char or &fmt=Y %then %do;'; - put 'if findc(&&name&i,''"\''!!''0A0D09000E0F01021011''x) then do;'; - put '&&name&i=''"''!!trim('; - put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; - put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; - put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; - put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; - put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; - put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; - put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; - put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; - put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; - put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; - put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; - put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; - put '))))))))))))!!''"'';'; - put 'end;'; - put 'else &&name&i=quote(cats(&&name&i));'; - put '%end;'; - put '%end;'; - put 'run;'; - put 'filename _sjs3 temp lrecl=131068 ;'; - put 'data _null_;'; - put 'file _sjs3 encoding=''utf-8'';'; - put 'if _n_=1 then put "[";'; - put 'set &tempds;'; - put 'if _n_>1 then put "," @; put'; - put '%if &action=ARR %then "[" ; %else "{" ;'; - put '%do i=1 %to &numcols;'; - put '%if &i>1 %then "," ;'; - put '%if &action=OBJ %then """&&name&i"":" ;'; - put '"&&name&i"n /* name literal for reserved variable names */'; - put '%end;'; - put '%if &action=ARR %then "]" ; %else "}" ; ;'; - put '/* close out the table */'; - put 'data _null_;'; - put 'file _sjs3 mod encoding=''utf-8'';'; - put 'put '']'';'; - put 'run;'; - put 'data _null_;'; - put 'infile _sjs3 lrecl=1 recfm=n;'; - put 'file &jref mod lrecl=1 recfm=n;'; - put 'input sourcechar $char1. @@;'; - put 'format sourcechar hex2.;'; - put 'put sourcechar char1. @@;'; - put 'run;'; - put 'filename _sjs3 clear;'; - put '%end;'; - put 'proc sql;'; - put 'drop table &colinfo, &tempds;'; - put '%if %substr(&showmeta,1,1)=Y %then %do;'; - put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; - put 'data _null_;'; - put 'file _sjs4;'; - put 'length label $350;'; - put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; - put 'do i=1 to &numcols;'; - put 'name=quote(trim(symget(cats(''name'',i))));'; - put 'format=quote(trim(symget(cats(''fmt'',i))));'; - put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; - put 'length=quote(trim(symget(cats(''length'',i))));'; - put 'type=quote(trim(symget(cats(''typelong'',i))));'; - put 'if i>1 then put "," @@;'; - put 'put name '':{"format":'' format '',"label":'' label'; - put ''',"length":'' length '',"type":'' type ''}'';'; - put 'end;'; - put 'put ''}}'';'; - put 'run;'; - put '/* send back to webout */'; - put 'data _null_;'; - put 'infile _sjs4 lrecl=1 recfm=n;'; - put 'file &jref mod lrecl=1 recfm=n;'; - put 'input sourcechar $char1. @@;'; - put 'format sourcechar hex2.;'; - put 'put sourcechar char1. @@;'; - put 'run;'; - put 'filename _sjs4 clear;'; - put '%end;'; - put '%end;'; - put '%else %if &action=CLOSE %then %do;'; - put 'data _null_; file &jref encoding=''utf-8'' mod ;'; - put 'put "}";'; - put 'run;'; - put '%end;'; - put '%mend mp_jsonout;'; + put '%local root;'; put '/**'; - put '@file mm_webout.sas'; - put '@brief Send data to/from SAS Stored Processes'; - put '@details This macro should be added to the start of each Stored Process,'; - put '**immediately** followed by a call to:'; - put '%mm_webout(FETCH)'; - put 'This will read all the input data and create same-named SAS datasets in the'; - put 'WORK library. You can then insert your code, and send data back using the'; - put 'following syntax:'; - put 'data some datasets; * make some data ;'; - put 'retain some columns;'; - put 'run;'; - put '%mm_webout(OPEN)'; - put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; - put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; - put 'Finally, wrap everything up send some helpful system variables too'; - put '%mm_webout(CLOSE)'; - put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; - put '@param [in] ds The dataset to send back to the frontend'; - put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; - put '@param [in] fmt=(Y) Set to N to send back unformatted values'; - put '@param [out] fref= (_webout) The fileref to which to write the JSON'; - put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; - put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; - put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; - put 'such as the column formats and types. The metadata is contained inside an'; - put 'object with the same name as the table but prefixed with a dollar sign - ie,'; - put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; - put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; - put 'that should be converted to output JSON'; - put '

SAS Macros

'; - put '@li mp_jsonout.sas'; - put '@version 9.3'; - put '@author Allan Bowe'; - put '**/'; - put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=Y,missing=NULL'; - put ',showmeta=N,maxobs=MAX'; - put ');'; - put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; - put 'sasjs_tables;'; - put '%local i tempds jsonengine;'; - put '/* see https://github.com/sasjs/core/issues/41 */'; - put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; - put '%else %let jsonengine=DATASTEP;'; - put '%if &action=FETCH %then %do;'; - put '%if %str(&_debug) ge 131 %then %do;'; - put 'options mprint notes mprintnest;'; - put '%end;'; - put '%let _webin_file_count=%eval(&_webin_file_count+0);'; - put '/* now read in the data */'; - put '%do i=1 %to &_webin_file_count;'; - put '%if &_webin_file_count=1 %then %do;'; - put '%let _webin_fileref1=&_webin_fileref;'; - put '%let _webin_name1=&_webin_name;'; - put '%end;'; - put 'data _null_;'; - put 'infile &&_webin_fileref&i termstr=crlf;'; - put 'input;'; - put 'call symputx(''input_statement'',_infile_);'; - put 'putlog "&&_webin_name&i input statement: " _infile_;'; - put 'stop;'; - put 'data &&_webin_name&i;'; - put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; - put 'input &input_statement;'; - put '%if %str(&_debug) ge 131 %then %do;'; - put 'if _n_<20 then putlog _infile_;'; - put '%end;'; - put 'run;'; - put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; - put '%end;'; - put '%end;'; - put '%else %if &action=OPEN %then %do;'; - put '/* fix encoding */'; - put 'OPTIONS NOBOMFILE;'; - put '/**'; - put '* check xengine type to avoid the below err message:'; - put '* > Function is only valid for filerefs using the CACHE access method.'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; put '*/'; - put 'data _null_;'; - put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; - put 'if xengine=''STREAM'' then do;'; - put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; - put 'end;'; - put 'run;'; - put '/* setup json */'; - put 'data _null_;file &fref encoding=''utf-8'';'; - put '%if %str(&_debug) ge 131 %then %do;'; - put 'put ''>>weboutBEGIN<<'';'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; put '%end;'; - put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; - put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; - put 'run;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; - put '%else %if &action=ARR or &action=OBJ %then %do;'; - put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; - put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; - put ')'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; - put '%else %if &action=CLOSE %then %do;'; - put '/* To avoid issues with _webout on EBI we use a temporary file */'; - put 'filename _sjsref temp lrecl=131068;'; - put '%if %str(&_debug) ge 131 %then %do;'; - put '/* if debug mode, send back first 10 records of each work table also */'; - put 'data;run;%let tempds=%scan(&syslast,2,.);'; - put 'ods output Members=&tempds;'; - put 'proc datasets library=WORK memtype=data;'; - put '%local wtcnt;%let wtcnt=0;'; - put 'data _null_;'; - put 'set &tempds;'; - put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; - put 'i+1;'; - put 'call symputx(cats(''wt'',i),name,''l'');'; - put 'call symputx(''wtcnt'',i,''l'');'; - put 'data _null_; file _sjsref mod encoding=''utf-8'';'; - put 'put ",""WORK"":{";'; - put '%do i=1 %to &wtcnt;'; - put '%let wt=&&wt&i;'; - put 'data _null_; file _sjsref mod encoding=''utf-8'';'; - put 'dsid=open("WORK.&wt",''is'');'; - put 'nlobs=attrn(dsid,''NLOBS'');'; - put 'nvars=attrn(dsid,''NVARS'');'; - put 'rc=close(dsid);'; - put 'if &i>1 then put '',''@;'; - put 'put " ""&wt"" : {";'; - put 'put ''"nlobs":'' nlobs;'; - put 'put '',"nvars":'' nvars;'; - put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10)'; - put 'data _null_; file _sjsref mod encoding=''utf-8'';'; - put 'put "}";'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; - put 'data _null_; file _sjsref mod encoding=''utf-8'';'; - put 'put "}";'; - put 'run;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; put '%end;'; - put '/* close off json */'; - put 'data _null_;file _sjsref mod encoding=''utf-8'';'; - put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; - put 'put ",""_DEBUG"" : ""&_debug"" ";'; - put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; - put 'put ",""_METAUSER"": " _METAUSER;'; - put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; - put 'put '',"_METAPERSON": '' _METAPERSON;'; - put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; - put 'put '',"_PROGRAM" : '' _PROGRAM ;'; - put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; - put 'put '',"AUTOEXEC" : '' autoexec;'; - put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; - put 'put ",""SYSCC"" : ""&syscc"" ";'; - put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; - put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; - put 'put '',"SYSERRORTEXT" : '' syserrortext;'; - put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; - put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; - put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; - put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; - put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; - put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; - put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; - put 'put ",""SYSSITE"" : ""&syssite"" ";'; - put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; - put 'sysvlong=quote(trim(symget(''sysvlong'')));'; - put 'put '',"SYSVLONG" : '' sysvlong;'; - put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; - put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; - put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; - put 'length memsize $32;'; - put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; - put 'memsize=quote(cats(memsize));'; - put 'put '',"MEMSIZE" : '' memsize;'; - put 'put "}" @;'; - put '%if %str(&_debug) ge 131 %then %do;'; - put 'put ''>>weboutEND<<'';'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; put '%end;'; - put 'run;'; - put '/* now write to _webout 1 char at a time */'; - put 'data _null_;'; - put 'infile _sjsref lrecl=1 recfm=n;'; - put 'file &fref mod lrecl=1 recfm=n;'; - put 'input sourcechar $char1. @@;'; - put 'format sourcechar hex2.;'; - put 'put sourcechar char1. @@;'; - put 'run;'; - put 'filename _sjsref clear;'; put '%end;'; - put '%mend mm_webout;'; - put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; - put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; - put ',missing=&missing'; - put ',showmeta=&showmeta'; - put ',maxobs=&maxobs'; - put ') %mend;'; - put '/* provide additional debug info */'; - put '%global _program;'; - put '%put &=syscc;'; - put '%put user=%mf_getuser();'; - put '%put pgm=&_program;'; - put '%put timestamp=%sysfunc(datetime(),datetime19.);'; - put '* Service Variables start;'; - put '* Service Variables end;'; - put '* SAS Macros start;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; @@ -6864,19 +3105,54369 @@ file sascode; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; - put '%macro mf_isdir(path'; - put ')/*/STORE SOURCE*/;'; - put '%local rc did is_directory fref_t;'; - put '%let is_directory = 0;'; - put '%let rc = %sysfunc(filename(fref_t, %superq(path)));'; - put '%let did = %sysfunc(dopen(&fref_t.));'; - put '%if &did. ^= 0 %then %do;'; - put '%let is_directory = 1;'; - put '%let rc = %sysfunc(dclose(&did.));'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; put '%end;'; - put '%let rc = %sysfunc(filename(fref_t));'; - put '&is_directory'; - put '%mend mf_isdir;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '%macro mm_getGroups('; + put 'user='; + put ',outds=work.mm_getGroups'; + put ',repo=foundation'; + put ',mDebug=0'; + put ')/*/STORE SOURCE*/;'; + put '%local mD oldrepo;'; + put '%let oldrepo=%sysfunc(getoption(metarepository));'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing mm_getGroups.sas;'; + put '%&mD.put _local_;'; + put '/* on some sites, user / group info is in a different metadata repo to the'; + put 'default */'; + put '%if &oldrepo ne &repo %then %do;'; + put 'options metarepository=&repo;'; + put '%end;'; + put '%if %length(&user)=0 %then %do;'; + put 'data &outds (keep=groupuri groupname groupdesc);'; + put 'length groupuri groupname groupdesc group_or_role $256;'; + put 'call missing(of _all_);'; + put 'i+1;'; + put 'do while'; + put '(metadata_getnobj("omsobj:IdentityGroup?@Id contains ''.''",i,groupuri)>0);'; + put 'rc=metadata_getattr(groupuri, "Name", groupname);'; + put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; + put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; + put 'if Group_or_Role = ''UserGroup'' then output;'; + put 'i+1;'; + put 'end;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put 'data &outds (keep=groupuri groupname groupdesc);'; + put 'length uri groupuri groupname groupdesc group_or_role $256;'; + put 'call missing(of _all_);'; + put 'rc=metadata_getnobj("omsobj:Person?@Name=''&user''",1,uri);'; + put 'if rc<=0 then do;'; + put 'putlog "%str(WARN)ING: rc=" rc "&user not found "'; + put '", or there was an issue reading the repository.";'; + put 'stop;'; + put 'end;'; + put 'a=1;'; + put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; + put 'if grpassn in (-3,-4) then do;'; + put 'putlog "%str(WARN)ING: No metadata groups found for &user";'; + put 'output;'; + put 'end;'; + put 'else do while (grpassn > 0);'; + put 'rc=metadata_getattr(groupuri, "Name", groupname);'; + put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; + put 'a+1;'; + put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; + put 'if Group_or_Role = ''UserGroup'' then output;'; + put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; + put 'end;'; + put 'run;'; + put '%end;'; + put '%if &oldrepo ne &repo %then %do;'; + put 'options metarepository=&oldrepo;'; + put '%end;'; + put '%mend mm_getGroups;'; + put '%macro dc_getusergroups(user=,outds=mm_getgroups);'; + put '%global dc_repo_users;'; + put '%if &dc_repo_users= %then %let dc_repo_users=foundation;'; + put '%mm_getgroups(user=&user,outds=&outds,repo=&dc_repo_users)'; + put '%mend dc_getusergroups;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file'; + put '@brief provides the web service to create the control tables'; + put '@details'; + put '

SAS Macros

'; + put '@li dc_getusergroups.sas'; + put '@li mf_getuser.sas'; + put '@li mf_getapploc.sas'; + put '@version 9.2'; + put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; + put 'downloaded from here: https://4gl.uk/dcdeploy'; + put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; + put 'and may not be re-distributed or re-sold without the express permission of'; + put '4GL Apps Ltd.'; + put '**/'; + put '%let root=%mf_getapploc();'; + put '/* create web page */'; + put 'data _null_;'; + put 'file _webout;'; + put 'infile datalines ;'; + put 'input;'; + put 'put _infile_;'; + put 'datalines4;'; + put ''; + put ''; + put ''; + put ''; + put 'Data Controller'; + put ''; + put ''; + put ''; + put ''; + put ''; + put '
'; + put '
'; + put ''; + put 'Data Controller'; + put '
'; + put '
'; + put '
'; + put '
'; + put '
'; + put '
'; + put ''; + put '
'; + put '
'; + put 'Terms and Conditions'; + put '
'; + put '
'; + put '
'; + put '

Due to the way the Demo version is compiled (in an easy-to-deploy but'; + put 'inefficient-to-run format), it should not be deployed to production servers.'; + put 'Before proceeding with configuration, please confirm that you have read,'; + put 'understood, and agreed to the'; + put 'Data Controller for SAS© Evaluation Agreement.'; + put '

'; + put '
'; + put '
'; + put '>'; + put ''; + put '
'; + put '
'; + put '
'; + put ''; + put ''; + put '
'; + put '
'; + put '
'; + put ''; + put ''; + put ';;;;'; + put 'run;'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=exportconfig; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Files

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as FMTCAT,'; + put 'FMTNAME'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'LENGTH num'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.length as MAXW'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put ')))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] workobs= (0) When set to a positive integer, will create a new'; + put 'output object (WORK) which contains this number of observations from all'; + put 'tables in the WORK library.'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX,workobs=0'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&workobs) > 0 %then %do;'; + put '/* if debug mode, send back first XX records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10'; + put ',maxobs=&workobs'; + put ')'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '%macro mf_getattrn('; + put 'libds'; + put ',attr'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid rc;'; + put '%let dsid=%sysfunc(open(&libds,is));'; + put '%if &dsid = 0 %then %do;'; + put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; + put '%put %sysfunc(sysmsg());'; + put '-1'; + put '%end;'; + put '%else %do;'; + put '%sysfunc(attrn(&dsid,&attr))'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%mend mf_getattrn;'; + put '%macro mf_nobs(libds'; + put ')/*/STORE SOURCE*/;'; + put '%mf_getattrn(&libds,NLOBS)'; + put '%mend mf_nobs;'; + put '%macro mp_ds2cards(base_ds, tgt_ds='; + put ',cards_file="%sysfunc(pathname(work))/cardgen.sas"'; + put ',maxobs=max'; + put ',random_sample=NO'; + put ',showlog=YES'; + put ',outencoding='; + put ',append=NO'; + put ')/*/STORE SOURCE*/;'; + put '%local i setds nvars;'; + put '%if not %sysfunc(exist(&base_ds)) %then %do;'; + put '%put %str(WARN)ING: &base_ds does not exist;'; + put '%return;'; + put '%end;'; + put '%if %index(&base_ds,.)=0 %then %let base_ds=WORK.&base_ds;'; + put '%if (&tgt_ds = ) %then %let tgt_ds=&base_ds;'; + put '%if %index(&tgt_ds,.)=0 %then %let tgt_ds=WORK.%scan(&base_ds,2,.);'; + put '%if ("&outencoding" ne "") %then %let outencoding=encoding="&outencoding";'; + put '%if ("&append" = "" or "&append" = "NO") %then %let append=;'; + put '%else %let append=mod;'; + put '/* get varcount */'; + put '%let nvars=0;'; + put 'proc sql noprint;'; + put 'select count(*) into: nvars from dictionary.columns'; + put 'where upcase(libname)="%scan(%upcase(&base_ds),1)"'; + put 'and upcase(memname)="%scan(%upcase(&base_ds),2)";'; + put '%if &nvars=0 %then %do;'; + put '%put %str(WARN)ING: Dataset &base_ds has no variables, will not be converted.;'; + put '%return;'; + put '%end;'; + put '/* get indexes */'; + put 'proc sort'; + put 'data=sashelp.vindex('; + put 'where=(upcase(libname)="%scan(%upcase(&base_ds),1)"'; + put 'and upcase(memname)="%scan(%upcase(&base_ds),2)")'; + put ')'; + put 'out=_data_;'; + put 'by indxname indxpos;'; + put 'run;'; + put '%local indexes;'; + put 'data _null_;'; + put 'set &syslast end=last;'; + put 'if _n_=1 then call symputx(''indexes'',''(index=('',''l'');'; + put 'by indxname indxpos;'; + put 'length vars $32767 nom uni $8;'; + put 'retain vars;'; + put 'if first.indxname then do;'; + put 'idxcnt+1;'; + put 'nom='''';'; + put 'uni='''';'; + put 'vars=name;'; + put 'end;'; + put 'else vars=catx('' '',vars,name);'; + put 'if last.indxname then do;'; + put 'if nomiss=''yes'' then nom=''/nomiss'';'; + put 'if unique=''yes'' then uni=''/unique'';'; + put 'call symputx(''indexes'''; + put ',catx('' '',symget(''indexes''),indxname,''=('',vars,'')'',nom,uni)'; + put ',''l'');'; + put 'end;'; + put 'if last then call symputx(''indexes'',cats(symget(''indexes''),''))''),''l'');'; + put 'run;'; + put 'data;run;'; + put '%let setds=&syslast;'; + put 'proc sql'; + put '%if %datatyp(&maxobs)=NUMERIC %then %do;'; + put 'outobs=&maxobs;'; + put '%end;'; + put ';'; + put 'create table &setds as select * from &base_ds'; + put '%if &random_sample=YES %then %do;'; + put 'order by ranuni(42)'; + put '%end;'; + put ';'; + put 'reset outobs=max;'; + put 'create table datalines1 as'; + put 'select name,type,length,varnum,format,label from dictionary.columns'; + put 'where upcase(libname)="%upcase(%scan(&base_ds,1))"'; + put 'and upcase(memname)="%upcase(%scan(&base_ds,2))";'; + put '/**'; + put 'Due to long decimals cannot use best. format'; + put 'So - use bestd. format and then use character functions to strip trailing'; + put 'zeros, if NOT an integer or missing!! Cannot use int() as it upsets'; + put 'note2err when there are missings.'; + put 'resolved code = ifc( mod(coalesce(VARIABLE,0),1)=0'; + put ',put(VARIABLE,best32.)'; + put ',substrn(put(VARIABLE,bestd32.),1'; + put ',findc(put(VARIABLE,bestd32.),''0'',''TBK'')));'; + put '**/'; + put 'data datalines_2;'; + put 'format dataline $32000.;'; + put 'set datalines1 (where=(upcase(name) not in'; + put '(''PROCESSED_DTTM'',''VALID_FROM_DTTM'',''VALID_TO_DTTM'')));'; + put 'if type=''num'' then dataline='; + put 'cats(''ifc(mod(coalesce('',name,'',0),1)=0'; + put ',put('',name,'',best32.-l)'; + put ',substrn(put('',name,'',bestd32.-l),1'; + put ',findc(put('',name,'',bestd32.-l),"0","TBK")))'');'; + put '/**'; + put '* binary data must be converted, to store in text format. It is identified'; + put '* by the presence of the $HEX keyword in the format.'; + put '*/'; + put 'else if upcase(format)=:''$HEX'' then'; + put 'dataline=cats(''put(trim('',name,''),'',format,'')'');'; + put '/**'; + put '* There is no easy way to store line breaks in a cards file.'; + put '* To discuss this, use: https://github.com/sasjs/core/issues/80'; + put '* Removing all nonprintables with kw (keep writeable)'; + put '*/'; + put 'else dataline=cats(''compress('',name,'', ,"kw")'');'; + put 'run;'; + put 'proc sql noprint;'; + put 'select dataline into: datalines separated by '','' from datalines_2;'; + put '%local'; + put 'process_dttm_flg'; + put 'valid_from_dttm_flg'; + put 'valid_to_dttm_flg'; + put ';'; + put '%let process_dttm_flg = N;'; + put '%let valid_from_dttm_flg = N;'; + put '%let valid_to_dttm_flg = N;'; + put 'data _null_;'; + put 'set datalines1 ;'; + put '/* build attrib statement */'; + put 'if type=''char'' then type2=''$'';'; + put 'if strip(format) ne '''' then format2=cats(''format='',format);'; + put 'if strip(label) ne '''' then label2=cats(''label='',quote(trim(label)));'; + put 'str1=catx('' '',(put(name,$33.)||''length='')'; + put ',put(cats(type2,length),$7.)||format2,label2);'; + put '/* Build input statement */'; + put 'if upcase(format)=:''$HEX'' then type3='':''!!format;'; + put 'else if type=''char'' then type3='':$char.'';'; + put 'str2=put(name,$33.)||type3;'; + put 'if(upcase(name) = "PROCESSED_DTTM") then'; + put 'call symputx("process_dttm_flg", "Y", "L");'; + put 'if(upcase(name) = "VALID_FROM_DTTM") then'; + put 'call symputx("valid_from_dttm_flg", "Y", "L");'; + put 'if(upcase(name) = "VALID_TO_DTTM") then'; + put 'call symputx("valid_to_dttm_flg", "Y", "L");'; + put 'call symputx(cats("attrib_stmt_", put(_N_, 8.)), str1, "L");'; + put 'call symputx(cats("input_stmt_", put(_N_, 8.))'; + put ', ifc(upcase(name) not in'; + put '(''PROCESSED_DTTM'',''VALID_FROM_DTTM'',''VALID_TO_DTTM''), str2, ""), "L");'; + put 'run;'; + put 'data _null_;'; + put 'file &cards_file. &outencoding lrecl=32767 termstr=nl &append;'; + put 'length __attrib $32767;'; + put 'if _n_=1 then do;'; + put 'put ''/**'';'; + put 'put '' @file'';'; + put 'put " @brief Datalines for %upcase(%scan(&base_ds,2)) dataset";'; + put 'put " @details Generated by %nrstr(%%)mp_ds2cards()";'; + put 'put " Source: https://github.com/sasjs/core";'; + put 'put '' @cond '';'; + put 'put ''**/'';'; + put 'put "data &tgt_ds &indexes;";'; + put 'put "attrib ";'; + put '%do i = 1 %to &nvars;'; + put '__attrib=symget("attrib_stmt_&i");'; + put 'put __attrib;'; + put '%end;'; + put 'put ";";'; + put '%if &process_dttm_flg. eq Y %then %do;'; + put 'put ''retain PROCESSED_DTTM %sysfunc(datetime());'';'; + put '%end;'; + put '%if &valid_from_dttm_flg. eq Y %then %do;'; + put 'put ''retain VALID_FROM_DTTM &low_date;'';'; + put '%end;'; + put '%if &valid_to_dttm_flg. eq Y %then %do;'; + put 'put ''retain VALID_TO_DTTM &high_date;'';'; + put '%end;'; + put 'if __nobs=0 then do;'; + put 'put ''call missing(of _all_);/* avoid uninitialised notes */'';'; + put 'put ''stop;'';'; + put 'put ''run;'';'; + put 'end;'; + put 'else do;'; + put 'put "infile cards dsd;";'; + put 'put "input ";'; + put '%do i = 1 %to &nvars.;'; + put '%if(%length(&&input_stmt_&i..)) %then'; + put 'put " &&input_stmt_&i..";'; + put ';'; + put '%end;'; + put 'put ";";'; + put 'put ''missing 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 _;'';'; + put 'put "datalines4;";'; + put 'end;'; + put 'end;'; + put 'set &setds end=__lastobs nobs=__nobs;'; + put '/* remove all formats for write purposes - some have long underlying decimals */'; + put 'format _numeric_ best30.29;'; + put 'length __dataline $32767;'; + put '__dataline=catq(''cqtmb'',&datalines);'; + put 'put __dataline;'; + put 'if __lastobs then do;'; + put 'put '';;;;'';'; + put 'put ''run;'';'; + put 'put ''/** @endcond **/'';'; + put 'stop;'; + put 'end;'; + put 'run;'; + put 'proc sql;'; + put 'drop table &setds;'; + put 'quit;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &cards_file lrecl=32767;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '%end;'; + put '%put NOTE: CARDS FILE SAVED IN:;'; + put '%put NOTE-;%put NOTE-;'; + put '%put NOTE- %sysfunc(dequote(&cards_file.));'; + put '%put NOTE-;%put NOTE-;'; + put '%mend mp_ds2cards;'; + put '/** @endcond **/'; + put '%macro mp_binarycopy('; + put 'inloc= /* full path and filename of the object to be copied */'; + put ',outloc= /* full path and filename of object to be created */'; + put ',inref=____in /* override default to use own filerefs */'; + put ',outref=____out /* override default to use own filerefs */'; + put ',mode=CREATE'; + put ',iftrue=%str(1=1)'; + put ')/*/STORE SOURCE*/;'; + put '%local mod;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%if &mode=APPEND %then %let mod=mod;'; + put '/* these IN and OUT filerefs can point to anything */'; + put '%if &inref = ____in %then %do;'; + put 'filename &inref &inloc lrecl=1048576 ;'; + put '%end;'; + put '%if &outref=____out %then %do;'; + put 'filename &outref &outloc lrecl=1048576 &mod;'; + put '%end;'; + put '/* copy the file byte-for-byte */'; + put 'data _null_;'; + put 'infile &inref lrecl=1 recfm=n;'; + put 'file &outref &mod recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put '%if &inref = ____in %then %do;'; + put 'filename &inref clear;'; + put '%end;'; + put '%if &outref=____out %then %do;'; + put 'filename &outref clear;'; + put '%end;'; + put '%mend mp_binarycopy;'; + put '%macro mfs_httpheader(header_name'; + put ',header_value'; + put ')/*/STORE SOURCE*/;'; + put '%global sasjs_stpsrv_header_loc;'; + put '%local fref fid i;'; + put '%if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc)) ne 0 %then %do;'; + put '%put &=fref &=sasjs_stpsrv_header_loc;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(&header_name): %str(&header_value)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%mend mfs_httpheader;'; + put '%macro mp_streamfile('; + put 'contenttype=TEXT'; + put ',inloc='; + put ',inref=0'; + put ',iftrue=%str(1=1)'; + put ',outname='; + put ',outref=_webout'; + put ')/*/STORE SOURCE*/;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%let contentype=%upcase(&contenttype);'; + put '%let outref=%upcase(&outref);'; + put '%local platform; %let platform=%mf_getplatform();'; + put '/**'; + put '* check engine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put '%local streamweb;'; + put '%let streamweb=0;'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(upcase(fileref)="&outref"));'; + put 'if xengine=''STREAM'' then call symputx(''streamweb'',1,''l'');'; + put 'run;'; + put '%if &contentype=CSV %then %do;'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'',''application/csv'');'; + put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.txt'''; + put 'contenttype=''application/csv'''; + put 'contentdisp="attachment; filename=&outname";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type,application/csv)'; + put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; + put '%end;'; + put '%end;'; + put '%else %if &contentype=EXCEL %then %do;'; + put '/* suitable for XLS format */'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'',''application/vnd.ms-excel'');'; + put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.xls'''; + put 'contenttype=''application/vnd.ms-excel'''; + put 'contentdisp="attachment; filename=&outname";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type,application/vnd.ms-excel)'; + put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; + put '%end;'; + put '%end;'; + put '%else %if &contentype=GIF or &contentype=JPEG or &contentype=PNG %then %do;'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'',"image/%lowcase(&contenttype)");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'contenttype="image/%lowcase(&contenttype)";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type,image/%lowcase(&contenttype))'; + put '%end;'; + put '%end;'; + put '%else %if &contentype=HTML or &contenttype=MARKDOWN %then %do;'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'',"text/%lowcase(&contenttype)");'; + put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name="_webout.json"'; + put 'contenttype="text/%lowcase(&contenttype)"'; + put 'contentdisp="attachment; filename=&outname";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type,text/%lowcase(&contenttype))'; + put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; + put '%end;'; + put '%end;'; + put '%else %if &contentype=TEXT %then %do;'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'',''application/text'');'; + put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.txt'''; + put 'contenttype=''application/text'''; + put 'contentdisp="attachment; filename=&outname";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type,application/text)'; + put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; + put '%end;'; + put '%end;'; + put '%else %if &contentype=WOFF or &contentype=WOFF2 or &contentype=TTF %then %do;'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'',"font/%lowcase(&contenttype)");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'contenttype="font/%lowcase(&contenttype)";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type,font/%lowcase(&contenttype))'; + put '%end;'; + put '%end;'; + put '%else %if &contentype=XLSX %then %do;'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'','; + put '''application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'');'; + put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.xls'''; + put 'contenttype='; + put '''application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'''; + put 'contentdisp="attachment; filename=&outname";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type'; + put ',application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'; + put ')'; + put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; + put '%end;'; + put '%end;'; + put '%else %if &contentype=ZIP %then %do;'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'',''application/zip'');'; + put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.zip'''; + put 'contenttype=''application/zip'''; + put 'contentdisp="attachment; filename=&outname";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type,application/zip)'; + put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put %str(ERR)OR: Content Type &contenttype NOT SUPPORTED by &sysmacroname!;'; + put '%end;'; + put '%if &inref ne 0 %then %do;'; + put '%mp_binarycopy(inref=&inref,outref=&outref)'; + put '%end;'; + put '%else %do;'; + put '%mp_binarycopy(inloc="&inloc",outref=&outref)'; + put '%end;'; + put '%mend mp_streamfile;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file'; + put '@brief Downloads zip file of DC customer configurations'; + put '@details Zip contains several excel files, containing the customer specific'; + put '(non-DC) configurations. Useful when migrating to a new instance of'; + put 'Data Controller.'; + put '

SAS Macros

'; + put '@li mf_getuser.sas'; + put '@li mf_nobs.sas'; + put '@li mp_ds2cards.sas'; + put '@li mp_abort.sas'; + put '@li mp_binarycopy.sas'; + put '@li mp_streamfile.sas'; + put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; + put 'downloaded from here: https://4gl.uk/dcdeploy'; + put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; + put 'and may not be re-distributed or re-sold without the express permission of'; + put '4GL Apps Ltd.'; + put '**/'; + put '%mpeinit()'; + put '%let work=%sysfunc(pathname(work));'; + put '/* excel does not work in all envs */'; + put '%let mime=application/vnd.ms-excel;'; + put '%let dbms=EXCEL;'; + put '%let mime=application/csv;'; + put '%let dbms=CSV;'; + put '%let ext=csv;'; + put '%macro conditional_export(ds);'; + put '%if %mf_nobs(&ds)>0 %then %do;'; + put 'PROC EXPORT DATA= &ds OUTFILE= "&work/&ds..&ext"'; + put 'DBMS=&dbms REPLACE;'; + put 'RUN;'; + put 'ods package(ProdOutput) add file="&work/&ds..&ext" mimetype="&mime";'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%nrstr(syscc=&syscc after &ds prep)'; + put ')'; + put '%mend conditional_export;'; + put 'ods package(ProdOutput) open nopf;'; + put 'data MPE_ALERTS;'; + put 'set &mpelib..MPE_ALERTS;'; + put 'where &dc_dttmtfmt. le tx_to;'; + put 'drop tx_: ;'; + put 'run;'; + put '%conditional_export(MPE_ALERTS)'; + put 'data MPE_COLUMN_LEVEL_SECURITY;'; + put 'set &mpelib..MPE_COLUMN_LEVEL_SECURITY;'; + put 'where &dc_dttmtfmt. le tx_to;'; + put 'where also CLS_LIBREF ne "&mpelib";'; + put 'drop tx_: ;'; + put 'run;'; + put '%conditional_export(MPE_COLUMN_LEVEL_SECURITY)'; + put 'data MPE_CONFIG;'; + put 'set &mpelib..MPE_CONFIG;'; + put 'where &dc_dttmtfmt. le tx_to;'; + put 'drop tx_: ;'; + put 'run;'; + put '%conditional_export(MPE_CONFIG)'; + put 'data MPE_DATADICTIONARY;'; + put 'set &mpelib..MPE_DATADICTIONARY;'; + put 'where &dc_dttmtfmt. le tx_to;'; + put 'drop tx_: ;'; + put 'if DD_SOURCE=:"&mpelib" then do;'; + put '/* nothing */'; + put 'end;'; + put 'else output;'; + put 'run;'; + put '%conditional_export(MPE_DATADICTIONARY)'; + put 'data MPE_EMAILS;'; + put 'set &mpelib..MPE_EMAILS;'; + put 'where &dc_dttmtfmt. le tx_to;'; + put 'drop tx_: ;'; + put 'run;'; + put '%conditional_export(MPE_EMAILS)'; + put 'data MPE_EXCEL_CONFIG;'; + put 'set &mpelib..MPE_EXCEL_CONFIG;'; + put 'where &dc_dttmtfmt. le tx_to;'; + put 'drop tx_: ;'; + put 'run;'; + put '%conditional_export(MPE_EXCEL_CONFIG)'; + put 'data MPE_GROUPS;'; + put 'set &mpelib..MPE_GROUPS;'; + put 'where &dc_dttmtfmt. le tx_to;'; + put 'drop tx_: ;'; + put 'run;'; + put '%conditional_export(MPE_GROUPS)'; + put 'data MPE_ROW_LEVEL_SECURITY;'; + put 'set &mpelib..MPE_ROW_LEVEL_SECURITY;'; + put 'where &dc_dttmtfmt. le tx_to;'; + put 'drop tx_: ;'; + put 'run;'; + put '%conditional_export(MPE_ROW_LEVEL_SECURITY)'; + put 'data MPE_SECURITY;'; + put 'set &mpelib..MPE_SECURITY;'; + put 'where &dc_dttmtfmt. le TX_TO;'; + put 'drop tx_: ;'; + put 'run;'; + put '%conditional_export(MPE_SECURITY)'; + put 'data MPE_SELECTBOX;'; + put 'set &mpelib..MPE_SELECTBOX;'; + put 'where &dc_dttmtfmt. le ver_to_dttm;'; + put 'where also select_lib ne "&mpelib";'; + put 'drop ver_: selectbox_rk;'; + put 'run;'; + put '%conditional_export(MPE_SELECTBOX)'; + put 'data MPE_TABLES;'; + put 'set &mpelib..MPE_TABLES;'; + put 'where &dc_dttmtfmt. le TX_TO;'; + put 'where also LIBREF ne "&mpelib";'; + put 'drop tx_: ;'; + put 'run;'; + put '%conditional_export(MPE_TABLES)'; + put 'data MPE_VALIDATIONS;'; + put 'set &mpelib..MPE_VALIDATIONS;'; + put 'where &dc_dttmtfmt. le TX_TO;'; + put 'where also BASE_LIB ne "&mpelib";'; + put 'drop tx_: ;'; + put 'run;'; + put '%conditional_export(MPE_VALIDATIONS)'; + put '/* finish up zip file */'; + put 'ods package(ProdOutput) publish archive properties'; + put '(archive_name="DCBACKUP.zip" archive_path="&work");'; + put 'ods package(ProdOutput) close;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%nrstr(syscc=&syscc after zip prep)'; + put ')'; + put '/* now serve zip file to client */'; + put '%mp_streamfile(contenttype=ZIP'; + put ',inloc=%str(&work/DCBACKUP.zip)'; + put ',outname=DCBACKUP.zip'; + put ')'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=exportdb; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Files

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as FMTCAT,'; + put 'FMTNAME'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'LENGTH num'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.length as MAXW'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put ')))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] workobs= (0) When set to a positive integer, will create a new'; + put 'output object (WORK) which contains this number of observations from all'; + put 'tables in the WORK library.'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX,workobs=0'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&workobs) > 0 %then %do;'; + put '/* if debug mode, send back first XX records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10'; + put ',maxobs=&workobs'; + put ')'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '%macro mm_getGroups('; + put 'user='; + put ',outds=work.mm_getGroups'; + put ',repo=foundation'; + put ',mDebug=0'; + put ')/*/STORE SOURCE*/;'; + put '%local mD oldrepo;'; + put '%let oldrepo=%sysfunc(getoption(metarepository));'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing mm_getGroups.sas;'; + put '%&mD.put _local_;'; + put '/* on some sites, user / group info is in a different metadata repo to the'; + put 'default */'; + put '%if &oldrepo ne &repo %then %do;'; + put 'options metarepository=&repo;'; + put '%end;'; + put '%if %length(&user)=0 %then %do;'; + put 'data &outds (keep=groupuri groupname groupdesc);'; + put 'length groupuri groupname groupdesc group_or_role $256;'; + put 'call missing(of _all_);'; + put 'i+1;'; + put 'do while'; + put '(metadata_getnobj("omsobj:IdentityGroup?@Id contains ''.''",i,groupuri)>0);'; + put 'rc=metadata_getattr(groupuri, "Name", groupname);'; + put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; + put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; + put 'if Group_or_Role = ''UserGroup'' then output;'; + put 'i+1;'; + put 'end;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put 'data &outds (keep=groupuri groupname groupdesc);'; + put 'length uri groupuri groupname groupdesc group_or_role $256;'; + put 'call missing(of _all_);'; + put 'rc=metadata_getnobj("omsobj:Person?@Name=''&user''",1,uri);'; + put 'if rc<=0 then do;'; + put 'putlog "%str(WARN)ING: rc=" rc "&user not found "'; + put '", or there was an issue reading the repository.";'; + put 'stop;'; + put 'end;'; + put 'a=1;'; + put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; + put 'if grpassn in (-3,-4) then do;'; + put 'putlog "%str(WARN)ING: No metadata groups found for &user";'; + put 'output;'; + put 'end;'; + put 'else do while (grpassn > 0);'; + put 'rc=metadata_getattr(groupuri, "Name", groupname);'; + put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; + put 'a+1;'; + put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; + put 'if Group_or_Role = ''UserGroup'' then output;'; + put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; + put 'end;'; + put 'run;'; + put '%end;'; + put '%if &oldrepo ne &repo %then %do;'; + put 'options metarepository=&oldrepo;'; + put '%end;'; + put '%mend mm_getGroups;'; + put '%macro dc_getusergroups(user=,outds=mm_getgroups);'; + put '%global dc_repo_users;'; + put '%if &dc_repo_users= %then %let dc_repo_users=foundation;'; + put '%mm_getgroups(user=&user,outds=&outds,repo=&dc_repo_users)'; + put '%mend dc_getusergroups;'; + put '%macro mpe_getgroups(user=,outds=);'; + put '%if not %symexist(dc_repo_users) %then %let dc_repo_users=foundation;'; + put '%dc_getusergroups(user=&user,outds=&outds)'; + put 'data;'; + put 'length groupname groupdesc $256;'; + put 'set &dc_libref..mpe_groups;'; + put 'where &dc_dttmtfmt. lt tx_to;'; + put 'where also upcase(user_name)="%upcase(&user)";'; + put 'groupname=group_name;'; + put 'groupdesc=group_desc;'; + put 'keep groupname groupdesc;'; + put 'run;'; + put 'data &outds;'; + put 'set &syslast &outds(keep=groupname groupdesc);'; + put 'run;'; + put '%mend mpe_getgroups;'; + put '%macro mf_existfileref(fref'; + put ')/*/STORE SOURCE*/;'; + put '%local rc;'; + put '%let rc=%sysfunc(fileref(&fref));'; + put '%if &rc=0 %then %do;'; + put '1'; + put '%end;'; + put '%else %if &rc<0 %then %do;'; + put '%put &sysmacroname: Fileref &fref exists but the underlying file does not;'; + put '1'; + put '%end;'; + put '%else %do;'; + put '0'; + put '%end;'; + put '%mend mf_existfileref;'; + put '%macro mf_getvarcount(libds,typefilter=A'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid nvars rc outcnt x;'; + put '%let dsid=%sysfunc(open(&libds));'; + put '%let nvars=.;'; + put '%let outcnt=0;'; + put '%let typefilter=%upcase(&typefilter);'; + put '%if &dsid %then %do;'; + put '%let nvars=%sysfunc(attrn(&dsid,NVARS));'; + put '%if &typefilter=A %then %let outcnt=&nvars;'; + put '%else %if &nvars>0 %then %do x=1 %to &nvars;'; + put '/* increment based on variable type */'; + put '%if %sysfunc(vartype(&dsid,&x))=&typefilter %then %do;'; + put '%let outcnt=%eval(&outcnt+1);'; + put '%end;'; + put '%end;'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%else %do;'; + put '%put unable to open &libds (rc=&dsid);'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '&outcnt'; + put '%mend mf_getvarcount;'; + put '%macro mf_getuniquename(prefix=MC);'; + put '&prefix.%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32-%length(&prefix))'; + put '%mend mf_getuniquename;'; + put '%macro mf_isblank(param'; + put ')/*/STORE SOURCE*/;'; + put '%sysevalf(%superq(param)=,boolean)'; + put '%mend mf_isblank;'; + put '%macro mp_dropmembers('; + put 'list /* space separated list of datasets / views */'; + put ',libref=WORK /* can only drop from a single library at a time */'; + put ',iftrue=%str(1=1)'; + put ')/*/STORE SOURCE*/;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%if %mf_isblank(&list) %then %do;'; + put '%put NOTE: nothing to drop!;'; + put '%return;'; + put '%end;'; + put 'proc datasets lib=&libref nolist;'; + put 'delete &list;'; + put 'delete &list /mtype=view;'; + put 'run;'; + put '%mend mp_dropmembers;'; + put '%macro mp_getconstraints(lib=WORK'; + put ',ds='; + put ',outds=mp_getconstraints'; + put ',mdebug=0'; + put ')/*/STORE SOURCE*/;'; + put '%let lib=%upcase(&lib);'; + put '%let ds=%upcase(&ds);'; + put '/**'; + put '* Cater for environments where sashelp.vcncolu is not available'; + put '*/'; + put '%if %sysfunc(exist(sashelp.vcncolu,view))=0 %then %do;'; + put 'proc sql;'; + put 'create table &outds('; + put 'libref char(8)'; + put ',TABLE_NAME char(32)'; + put ',constraint_type char(8) label=''Constraint Type'''; + put ',constraint_name char(32) label=''Constraint Name'''; + put ',column_name char(32) label=''Column'''; + put ',constraint_order num'; + put ');'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Neither dictionary tables nor sashelp provides a constraint order column,'; + put '* however they DO arrive in the correct order. So, create the col.'; + put '**/'; + put '%local vw;'; + put '%let vw=%mf_getuniquename(prefix=mp_getconstraints_vw_);'; + put 'data &vw /view=&vw;'; + put 'set sashelp.vcncolu;'; + put 'where table_catalog="&lib";'; + put '/* use retain approach to reset the constraint order with each constraint */'; + put 'length tmp $1000;'; + put 'retain tmp;'; + put 'drop tmp;'; + put 'if tmp ne catx(''|'',table_catalog,table_name,constraint_name) then do;'; + put 'constraint_order=1;'; + put 'end;'; + put 'else constraint_order+1;'; + put 'tmp=catx(''|'',table_catalog, table_name,constraint_name);'; + put 'run;'; + put '/* must use SQL as proc datasets does not support length changes */'; + put 'proc sql noprint;'; + put 'create table &outds as'; + put 'select upcase(a.TABLE_CATALOG) as libref'; + put ',upcase(a.TABLE_NAME) as TABLE_NAME'; + put ',a.constraint_type'; + put ',a.constraint_name'; + put ',b.column_name'; + put ',b.constraint_order'; + put 'from dictionary.TABLE_CONSTRAINTS a'; + put 'left join &vw b'; + put 'on upcase(a.TABLE_CATALOG)=upcase(b.TABLE_CATALOG)'; + put 'and upcase(a.TABLE_NAME)=upcase(b.TABLE_NAME)'; + put 'and a.constraint_name=b.constraint_name'; + put '/**'; + put '* We cannot apply this clause to the underlying dictionary table. See:'; + put '* https://communities.sas.com/t5/SAS-Programming/Unexpected-Where-Clause-behaviour-in-dictionary-TABLE/m-p/771554#M244867'; + put '* cannot use`where calculated libref="&lib"` either as it will STILL execute'; + put '* all the underlying constraint queries, causing exception errors in some'; + put '* cases: https://github.com/sasjs/core/issues/283'; + put '*/'; + put 'where a.TABLE_CATALOG="&lib"'; + put '%if "&ds" ne "" %then %do;'; + put 'and upcase(a.TABLE_NAME)="&ds"'; + put 'and upcase(b.TABLE_NAME)="&ds"'; + put '%end;'; + put 'order by libref, table_name, constraint_name, constraint_order'; + put ';'; + put '/* tidy up */'; + put '%mp_dropmembers('; + put '&vw,'; + put 'iftrue=(&mdebug=0)'; + put ')'; + put '%mend mp_getconstraints;'; + put '%macro mp_getddl(libref,ds,fref=getddl,flavour=SAS,showlog=NO,schema='; + put ',applydttm=NO'; + put ')/*/STORE SOURCE*/;'; + put '/* check fileref is assigned */'; + put '%if %mf_existfileref(&fref)=0 %then %do;'; + put 'filename &fref temp ;'; + put '%end;'; + put '%if %length(&libref)=0 %then %let libref=WORK;'; + put '%let flavour=%upcase(&flavour);'; + put 'proc sql noprint;'; + put 'create table _data_ as'; + put 'select * from dictionary.tables'; + put 'where upcase(libname)="%upcase(&libref)"'; + put 'and memtype=''DATA'' /* views not currently supported */'; + put '%if %length(&ds)>0 %then %do;'; + put 'and upcase(memname)="%upcase(&ds)"'; + put '%end;'; + put ';'; + put '%local tabinfo; %let tabinfo=&syslast;'; + put 'create table _data_ as'; + put 'select * from dictionary.columns'; + put 'where upcase(libname)="%upcase(&libref)"'; + put '%if %length(&ds)>0 %then %do;'; + put 'and upcase(memname)="%upcase(&ds)"'; + put '%end;'; + put ';'; + put '%local colinfo; %let colinfo=&syslast;'; + put '%local dsnlist;'; + put 'select distinct upcase(memname) into: dsnlist'; + put 'separated by '' '''; + put 'from &syslast'; + put ';'; + put 'create table _data_ as'; + put 'select * from dictionary.indexes'; + put 'where upcase(libname)="%upcase(&libref)"'; + put '%if %length(&ds)>0 %then %do;'; + put 'and upcase(memname)="%upcase(&ds)"'; + put '%end;'; + put 'order by idxusage, indxname, indxpos'; + put ';'; + put '%local idxinfo; %let idxinfo=&syslast;'; + put '/* Extract all Primary Key and Unique data constraints */'; + put '%mp_getconstraints(lib=%upcase(&libref),ds=%upcase(&ds),outds=_data_)'; + put '%local colconst; %let colconst=&syslast;'; + put '%macro addConst();'; + put '%global constraints_used;'; + put 'data _null_;'; + put 'length ctype $11 constraint_name_orig $256 constraints_used $5000;'; + put 'set &colconst('; + put 'where=(table_name="&curds" and constraint_type in (''PRIMARY'',''UNIQUE''))'; + put ') end=last;'; + put 'file &fref mod;'; + put 'by constraint_type constraint_name;'; + put 'retain constraints_used;'; + put 'constraint_name_orig=constraint_name;'; + put 'if upcase(strip(constraint_type)) = ''PRIMARY'' then ctype=''PRIMARY KEY'';'; + put 'else ctype=strip(constraint_type);'; + put '%if &flavour=TSQL %then %do;'; + put 'column_name=catt(''['',column_name,'']'');'; + put 'constraint_name=catt(''['',constraint_name,'']'');'; + put '%end;'; + put '%else %if &flavour=PGSQL %then %do;'; + put 'column_name=catt(''"'',column_name,''"'');'; + put 'constraint_name=catt(''"'',constraint_name,''"'');'; + put '%end;'; + put 'if first.constraint_name then do;'; + put 'constraints_used = catx('' '', constraints_used, constraint_name_orig);'; + put 'put " ,CONSTRAINT " constraint_name ctype "(" ;'; + put 'put '' '' column_name;'; + put 'end;'; + put 'else put '' ,'' column_name;'; + put 'if last.constraint_name then do;'; + put 'put " )";'; + put 'call symput(''constraints_used'',strip(constraints_used));'; + put 'end;'; + put 'run;'; + put '%put &=constraints_used;'; + put '%mend addConst;'; + put 'data _null_;'; + put 'file &fref mod;'; + put 'put "/* DDL generated by &sysuserid on %sysfunc(datetime(),datetime19.) */";'; + put 'run;'; + put '%local x curds;'; + put '%if &flavour=SAS %then %do;'; + put '%do x=1 %to %sysfunc(countw(&dsnlist));'; + put '%let curds=%scan(&dsnlist,&x);'; + put 'data _null_;'; + put 'file &fref mod;'; + put 'put "/* SAS Flavour DDL for %upcase(&libref).&curds */";'; + put 'put "proc sql;";'; + put 'run;'; + put 'data _null_;'; + put 'file &fref mod;'; + put 'length lab $1024 typ $20;'; + put 'set &colinfo (where=(upcase(memname)="&curds")) end=last;'; + put 'if _n_=1 then do;'; + put 'if memtype=''DATA'' then do;'; + put 'put "create table &libref..&curds(";'; + put 'end;'; + put 'else do;'; + put '/* just a placeholder - we filter out views at the top */'; + put 'put "create view &libref..&curds(";'; + put 'end;'; + put 'put " "@@;'; + put 'end;'; + put 'else put " ,"@@;'; + put 'if length(format)>1 then fmt=" format="!!cats(format);'; + put 'if length(label)>1 then'; + put 'lab=" label="!!cats("''",tranwrd(label,"''","''''"),"''");'; + put 'if notnull=''yes'' then notnul='' not null'';'; + put 'if type=''char'' then typ=cats(''char('',length,'')'');'; + put 'else if length ne 8 then typ=''num length=''!!cats(length);'; + put 'else typ=''num'';'; + put 'put name typ fmt notnul lab;'; + put 'run;'; + put '/* Extra step for data constraints */'; + put '%addConst()'; + put 'data _null_;'; + put 'file &fref mod;'; + put 'put '');'';'; + put 'run;'; + put '/* Create Unique Indexes, but only if they were not already defined within'; + put 'the Constraints section. */'; + put 'data _null_;'; + put '*length ds $128;'; + put 'set &idxinfo('; + put 'where=('; + put 'memname="&curds"'; + put 'and unique=''yes'''; + put 'and indxname not in ('; + put '%sysfunc(tranwrd("&constraints_used",%str( ),%str(",")))'; + put ')'; + put ')'; + put ');'; + put 'file &fref mod;'; + put 'by idxusage indxname;'; + put '/* ds=cats(libname,''.'',memname); */'; + put 'if first.indxname then do;'; + put 'put ''CREATE UNIQUE INDEX '' indxname "ON &libref..&curds (" ;'; + put 'put '' '' name ;'; + put 'end;'; + put 'else put '' ,'' name ;'; + put '*else put '' ,'' name ;'; + put 'if last.indxname then do;'; + put 'put '');'';'; + put 'end;'; + put 'run;'; + put '/*'; + put 'ods output IntegrityConstraints=ic;'; + put 'proc contents data=testali out2=info;'; + put 'run;'; + put '*/'; + put '%end;'; + put '%end;'; + put '%else %if &flavour=TSQL %then %do;'; + put '/* if schema does not exist, set to be same as libref */'; + put '%local schemaactual;'; + put 'proc sql noprint;'; + put 'select sysvalue into: schemaactual'; + put 'from dictionary.libnames'; + put 'where upcase(libname)="&libref" and engine=''SQLSVR'';'; + put '%let schema=%sysfunc(coalescec(&schemaactual,&schema,&libref));'; + put '%do x=1 %to %sysfunc(countw(&dsnlist));'; + put '%let curds=%scan(&dsnlist,&x);'; + put 'data _null_;'; + put 'file &fref mod;'; + put 'put "/* TSQL Flavour DDL for &schema..&curds */";'; + put 'data _null_;'; + put 'file &fref mod;'; + put 'set &colinfo (where=(upcase(memname)="&curds")) end=last;'; + put 'if _n_=1 then do;'; + put 'if memtype=''DATA'' then do;'; + put 'put "create table [&schema].[&curds](";'; + put 'end;'; + put 'else do;'; + put '/* just a placeholder - we filter out views at the top */'; + put 'put "create view [&schema].[&curds](";'; + put 'end;'; + put 'put " "@@;'; + put 'end;'; + put 'else put " ,"@@;'; + put 'format=upcase(format);'; + put 'if 1=0 then; /* dummy if */'; + put '%if &applydttm=YES %then %do;'; + put 'else if format=:''DATETIME'' then fmt=''[datetime2](7) '';'; + put '%end;'; + put 'else if type=''num'' then fmt=''[decimal](18,2)'';'; + put 'else if length le 8000 then fmt=''[varchar](''!!cats(length)!!'')'';'; + put 'else fmt=cats(''[varchar](max)'');'; + put 'if notnull=''yes'' then notnul='' NOT NULL'';'; + put 'put "[" name +(-1) "]" fmt notnul;'; + put 'run;'; + put '/* Extra step for data constraints */'; + put '%addConst()'; + put '/* Create Unique Indexes, but only if they were not already defined within'; + put 'the Constraints section. */'; + put 'data _null_;'; + put '*length ds $128;'; + put 'set &idxinfo('; + put 'where=('; + put 'memname="&curds"'; + put 'and unique=''yes'''; + put 'and indxname not in ('; + put '%sysfunc(tranwrd("&constraints_used",%str( ),%str(",")))'; + put ')'; + put ')'; + put ');'; + put 'file &fref mod;'; + put 'by idxusage indxname;'; + put '*ds=cats(libname,''.'',memname);'; + put 'if first.indxname then do;'; + put '/* add nonclustered in case of multiple unique indexes */'; + put 'put '' ,index ['' indxname +(-1) ''] UNIQUE NONCLUSTERED ('';'; + put 'put '' ['' name +(-1) '']'';'; + put 'end;'; + put 'else put '' ,['' name +(-1) '']'';'; + put 'if last.indxname then do;'; + put 'put '' )'';'; + put 'end;'; + put 'run;'; + put 'data _null_;'; + put 'file &fref mod;'; + put 'put '')'';'; + put 'put ''GO'';'; + put 'run;'; + put '/* add extended properties for labels */'; + put 'data _null_;'; + put 'file &fref mod;'; + put 'length nm $64 lab $1024;'; + put 'set &colinfo (where=(upcase(memname)="&curds" and label ne '''')) end=last;'; + put 'nm=cats("N''",tranwrd(name,"''","''''"),"''");'; + put 'lab=cats("N''",tranwrd(label,"''","''''"),"''");'; + put 'put '' '';'; + put 'put "EXEC sys.sp_addextendedproperty ";'; + put 'put " @name=N''MS_Description'',@value=" lab ;'; + put 'put " ,@level0type=N''SCHEMA'',@level0name=N''&schema'' ";'; + put 'put " ,@level1type=N''TABLE'',@level1name=N''&curds''";'; + put 'put " ,@level2type=N''COLUMN'',@level2name=" nm ;'; + put 'if last then put ''GO'';'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%else %if &flavour=PGSQL %then %do;'; + put '/* if schema does not exist, set to be same as libref */'; + put '%local schemaactual;'; + put 'proc sql noprint;'; + put 'select sysvalue into: schemaactual'; + put 'from dictionary.libnames'; + put 'where upcase(libname)="&libref" and engine=''POSTGRES'';'; + put '%let schema=%sysfunc(coalescec(&schemaactual,&schema,&libref));'; + put 'data _null_;'; + put 'file &fref mod;'; + put 'put "CREATE SCHEMA &schema;";'; + put '%do x=1 %to %sysfunc(countw(&dsnlist));'; + put '%let curds=%scan(&dsnlist,&x);'; + put '%local curdsvarcount;'; + put '%let curdsvarcount=%mf_getvarcount(&libref..&curds);'; + put '%if &curdsvarcount>1600 %then %do;'; + put 'data _null_;'; + put 'file &fref mod;'; + put 'put "/* &libref..&curds contains &curdsvarcount vars */";'; + put 'put "/* Postgres cannot create tables with over 1600 vars */";'; + put 'put "/* No DDL will be generated for this table";'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put 'data _null_;'; + put 'file &fref mod;'; + put 'put "/* Postgres Flavour DDL for &schema..&curds */";'; + put 'data _null_;'; + put 'file &fref mod;'; + put 'set &colinfo (where=(upcase(memname)="&curds")) end=last;'; + put 'length fmt $32;'; + put 'if _n_=1 then do;'; + put 'if memtype=''DATA'' then do;'; + put 'put "CREATE TABLE &schema..&curds (";'; + put 'end;'; + put 'else do;'; + put '/* just a placeholder - we filter out views at the top */'; + put 'put "CREATE VIEW &schema..&curds (";'; + put 'end;'; + put 'put " "@@;'; + put 'end;'; + put 'else put " ,"@@;'; + put 'format=upcase(format);'; + put 'if 1=0 then; /* dummy if */'; + put '%if &applydttm=YES %then %do;'; + put 'else if format=:''DATETIME'' then fmt='' TIMESTAMP '';'; + put '%end;'; + put 'else if type=''num'' then fmt='' DOUBLE PRECISION'';'; + put 'else fmt=''VARCHAR(''!!cats(length)!!'')'';'; + put 'if notnull=''yes'' then notnul='' NOT NULL'';'; + put '/* quote column names in case they represent reserved words */'; + put 'name2=quote(trim(name));'; + put 'put name2 fmt notnul;'; + put 'run;'; + put '/* Extra step for data constraints */'; + put '%addConst()'; + put 'data _null_;'; + put 'file &fref mod;'; + put 'put '');'';'; + put 'run;'; + put '/* Create Unique Indexes, but only if they were not already defined within'; + put 'the Constraints section. */'; + put 'data _null_;'; + put '*length ds $128;'; + put 'set &idxinfo('; + put 'where=('; + put 'memname="&curds"'; + put 'and unique=''yes'''; + put 'and indxname not in ('; + put '%sysfunc(tranwrd("&constraints_used",%str( ),%str(",")))'; + put ')'; + put ')'; + put ');'; + put 'file &fref mod;'; + put 'by idxusage indxname;'; + put 'if first.indxname then do;'; + put 'put ''CREATE UNIQUE INDEX "'' indxname +(-1) ''" '' "ON &schema..&curds(";'; + put 'put '' "'' name +(-1) ''"'' ;'; + put 'end;'; + put 'else put '' ,"'' name +(-1) ''"'';'; + put 'if last.indxname then do;'; + put 'put '');'';'; + put 'end;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%end;'; + put '%if %upcase(&showlog)=YES %then %do;'; + put 'options ps=max;'; + put 'data _null_;'; + put 'infile &fref;'; + put 'input;'; + put 'putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%mend mp_getddl;'; + put '%macro mf_getVarFormat(libds /* two level ds name */'; + put ', var /* variable name from which to return the format */'; + put ', force=0'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid vnum vformat rc vlen vtype;'; + put '/* Open dataset */'; + put '%let dsid = %sysfunc(open(&libds));'; + put '%if &dsid > 0 %then %do;'; + put '/* Get variable number */'; + put '%let vnum = %sysfunc(varnum(&dsid, &var));'; + put '/* Get variable format */'; + put '%if(&vnum > 0) %then %let vformat=%sysfunc(varfmt(&dsid, &vnum));'; + put '%else %do;'; + put '%put NOTE: Variable &var does not exist in &libds;'; + put '%let rc = %sysfunc(close(&dsid));'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: dataset &libds not opened! (rc=&dsid);'; + put '%put &sysmacroname: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '/* supply a default if no format available */'; + put '%if %length(&vformat)<2 & &force=1 %then %do;'; + put '%let vlen = %sysfunc(varlen(&dsid, &vnum));'; + put '%let vtype = %sysfunc(vartype(&dsid, &vnum.));'; + put '%if &vtype=C %then %let vformat=$&vlen..;'; + put '%else %let vformat=best.;'; + put '%end;'; + put '/* Close dataset */'; + put '%let rc = %sysfunc(close(&dsid));'; + put '/* Return variable format */'; + put '&vformat'; + put '%mend mf_getVarFormat;'; + put '%macro mf_getvarlist(libds'; + put ',dlm=%str( )'; + put ',quote=no'; + put ',typefilter=A'; + put ')/*/STORE SOURCE*/;'; + put '/* declare local vars */'; + put '%local outvar dsid nvars x rc dlm q var vtype;'; + put '/* credit Rowland Hale - byte34 is double quote, 39 is single quote */'; + put '%if %upcase("e)=DOUBLE %then %let q=%qsysfunc(byte(34));'; + put '%else %if %upcase("e)=SINGLE %then %let q=%qsysfunc(byte(39));'; + put '/* open dataset in macro */'; + put '%let dsid=%sysfunc(open(&libds));'; + put '%if &dsid %then %do;'; + put '%let nvars=%sysfunc(attrn(&dsid,NVARS));'; + put '%if &nvars>0 %then %do;'; + put '/* add variables with supplied delimeter */'; + put '%do x=1 %to &nvars;'; + put '/* get variable type */'; + put '%let vtype=%sysfunc(vartype(&dsid,&x));'; + put '%if &vtype=&typefilter or &typefilter=A %then %do;'; + put '%let var=&q.%sysfunc(varname(&dsid,&x))&q.;'; + put '%if &var=&q&q %then %do;'; + put '%put &sysmacroname: Empty column found in &libds!;'; + put '%let var=&q. &q.;'; + put '%end;'; + put '%if %quote(&outvar)=%quote() %then %let outvar=&var;'; + put '%else %let outvar=&outvar.&dlm.&var.;'; + put '%end;'; + put '%end;'; + put '%end;'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: Unable to open &libds (rc=&dsid);'; + put '%put &sysmacroname: SYSMSG= %sysfunc(sysmsg());'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%do;%unquote(&outvar)%end;'; + put '%mend mf_getvarlist;'; + put '%macro mf_getvartype(libds /* two level name */'; + put ', var /* variable name from which to return the type */'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid vnum vtype rc;'; + put '/* Open dataset */'; + put '%let dsid = %sysfunc(open(&libds));'; + put '%if &dsid. > 0 %then %do;'; + put '/* Get variable number */'; + put '%let vnum = %sysfunc(varnum(&dsid, &var));'; + put '/* Get variable type (C/N) */'; + put '%if(&vnum. > 0) %then %let vtype = %sysfunc(vartype(&dsid, &vnum.));'; + put '%else %do;'; + put '%put NOTE: Variable &var does not exist in &libds;'; + put '%let vtype = %str( );'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: dataset &libds not opened! (rc=&dsid);'; + put '%put &sysmacroname: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '/* Close dataset */'; + put '%let rc = %sysfunc(close(&dsid));'; + put '/* Return variable type */'; + put '&vtype'; + put '%mend mf_getvartype;'; + put '%macro mp_ds2inserts(ds, outref=0,schema=0,outds=0,flavour=SAS,maxobs=max'; + put ',applydttm=YES'; + put ')/*/STORE SOURCE*/;'; + put '%if not %sysfunc(exist(&ds)) %then %do;'; + put '%put %str(WAR)NING: &ds does not exist;'; + put '%return;'; + put '%end;'; + put '%if not %sysfunc(exist(&ds)) %then %do;'; + put '%put %str(WAR)NING: &ds does not exist;'; + put '%return;'; + put '%end;'; + put '%if %index(&ds,.)=0 %then %let ds=WORK.&ds;'; + put '%let flavour=%upcase(&flavour);'; + put '%if &flavour ne SAS and &flavour ne PGSQL %then %do;'; + put '%put %str(WAR)NING: &flavour is not supported;'; + put '%return;'; + put '%end;'; + put '%if &outref=0 %then %do;'; + put '%put %str(WAR)NING: Please provide a fileref;'; + put '%return;'; + put '%end;'; + put '%if %mf_existfileref(&outref)=0 %then %do;'; + put 'filename &outref temp lrecl=66000;'; + put '%end;'; + put '%if &schema=0 %then %let schema=;'; + put '%else %let schema=&schema..;'; + put '%if &outds=0 %then %let outds=%scan(&ds,2,.);'; + put '%local nobs;'; + put 'proc sql noprint;'; + put 'select count(*) into: nobs TRIMMED from &ds;'; + put '%if &nobs=0 %then %do;'; + put 'data _null_;'; + put 'file &outref mod;'; + put 'put "/* No rows found in &ds */";'; + put 'run;'; + put '%end;'; + put '%local vars;'; + put '%let vars=%mf_getvarcount(&ds);'; + put '%if &vars=0 %then %do;'; + put 'data _null_;'; + put 'file &outref mod;'; + put 'put "/* No columns found in &schema.&ds */";'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%else %if &vars>1600 and &flavour=PGSQL %then %do;'; + put 'data _null_;'; + put 'file &fref mod;'; + put 'put "/* &schema.&ds contains &vars vars */";'; + put 'put "/* Postgres cannot handle tables with over 1600 vars */";'; + put 'put "/* No inserts will be generated for this table */";'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%local varlist varlistcomma;'; + put '%let varlist=%mf_getvarlist(&ds);'; + put '%let varlistcomma=%mf_getvarlist(&ds,dlm=%str(,),quote=double);'; + put '/* next, export data */'; + put 'data _null_;'; + put 'file &outref mod ;'; + put 'if _n_=1 then put "/* &schema.&outds (&nobs rows, &vars columns) */";'; + put 'set &ds;'; + put '%if &maxobs ne max %then %do;'; + put 'if _n_>&maxobs then stop;'; + put '%end;'; + put 'length _____str $32767;'; + put 'call missing(_____str);'; + put 'format _numeric_ best.;'; + put 'format _character_ ;'; + put '%local i comma var vtype vfmt;'; + put '%do i=1 %to %sysfunc(countw(&varlist));'; + put '%let var=%scan(&varlist,&i);'; + put '%let vtype=%mf_getvartype(&ds,&var);'; + put '%let vfmt=%upcase(%mf_getvarformat(&ds,&var,force=1));'; + put '%if &i=1 %then %do;'; + put '%if &flavour=SAS %then %do;'; + put 'put "insert into &schema.&outds set ";'; + put 'put " &var="@;'; + put '%end;'; + put '%else %if &flavour=PGSQL %then %do;'; + put '_____str=cats('; + put '"INSERT INTO &schema.&outds ("'; + put ',symget(''varlistcomma'')'; + put ',") VALUES ("'; + put ');'; + put 'put _____str;'; + put 'put " "@;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%if &flavour=SAS %then %do;'; + put 'put " ,&var="@;'; + put '%end;'; + put '%else %if &flavour=PGSQL %then %do;'; + put 'put " ,"@;'; + put '%end;'; + put '%end;'; + put '%if &vtype=N %then %do;'; + put '%if &flavour=SAS %then %do;'; + put 'put &var;'; + put '%end;'; + put '%else %if &flavour=PGSQL %then %do;'; + put 'if missing(&var) then put ''NULL'';'; + put '%if &applydttm=YES and "%substr(&vfmt.xxxxxxxx,1,8)"="DATETIME"'; + put '%then %do;'; + put 'else put "TIMESTAMP ''" &var E8601DT25.6 "''";'; + put '%end;'; + put '%else %do;'; + put 'else put &var;'; + put '%end;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '_____str="''"!!trim(tranwrd(&var,"''","''''"))!!"''";'; + put 'put _____str;'; + put '%end;'; + put '%end;'; + put '%if &flavour=SAS %then %do;'; + put 'put '';'';'; + put '%end;'; + put '%else %if &flavour=PGSQL %then %do;'; + put 'put '');'';'; + put '%end;'; + put 'if _n_=&nobs then put /;'; + put 'run;'; + put '%mend mp_ds2inserts;'; + put '%macro mp_lib2inserts(lib'; + put ',flavour=SAS'; + put ',outref=0'; + put ',schema=0'; + put ',maxobs=max'; + put ',applydttm=YES'; + put ')/*/STORE SOURCE*/;'; + put '/* Find the tables */'; + put '%local x ds memlist;'; + put 'proc sql noprint;'; + put 'select distinct lowcase(memname)'; + put 'into: memlist'; + put 'separated by '' '''; + put 'from dictionary.tables'; + put 'where upcase(libname)="%upcase(&lib)"'; + put 'and memtype=''DATA''; /* exclude views */'; + put '%let flavour=%upcase(&flavour);'; + put '%if &flavour ne SAS and &flavour ne PGSQL %then %do;'; + put '%put %str(WAR)NING: &flavour is not supported;'; + put '%return;'; + put '%end;'; + put '/* create the inserts */'; + put '%do x=1 %to %sysfunc(countw(&memlist));'; + put '%let ds=%scan(&memlist,&x);'; + put '%mp_ds2inserts(&lib..&ds'; + put ',outref=&outref'; + put ',schema=&schema'; + put ',outds=&ds'; + put ',flavour=&flavour'; + put ',maxobs=&maxobs'; + put ',applydttm=&applydttm'; + put ')'; + put '%end;'; + put '%mend mp_lib2inserts;'; + put '%macro mfs_httpheader(header_name'; + put ',header_value'; + put ')/*/STORE SOURCE*/;'; + put '%global sasjs_stpsrv_header_loc;'; + put '%local fref fid i;'; + put '%if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc)) ne 0 %then %do;'; + put '%put &=fref &=sasjs_stpsrv_header_loc;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(&header_name): %str(&header_value)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%mend mfs_httpheader;'; + put '%macro mp_binarycopy('; + put 'inloc= /* full path and filename of the object to be copied */'; + put ',outloc= /* full path and filename of object to be created */'; + put ',inref=____in /* override default to use own filerefs */'; + put ',outref=____out /* override default to use own filerefs */'; + put ',mode=CREATE'; + put ',iftrue=%str(1=1)'; + put ')/*/STORE SOURCE*/;'; + put '%local mod;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%if &mode=APPEND %then %let mod=mod;'; + put '/* these IN and OUT filerefs can point to anything */'; + put '%if &inref = ____in %then %do;'; + put 'filename &inref &inloc lrecl=1048576 ;'; + put '%end;'; + put '%if &outref=____out %then %do;'; + put 'filename &outref &outloc lrecl=1048576 &mod;'; + put '%end;'; + put '/* copy the file byte-for-byte */'; + put 'data _null_;'; + put 'infile &inref lrecl=1 recfm=n;'; + put 'file &outref &mod recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put '%if &inref = ____in %then %do;'; + put 'filename &inref clear;'; + put '%end;'; + put '%if &outref=____out %then %do;'; + put 'filename &outref clear;'; + put '%end;'; + put '%mend mp_binarycopy;'; + put '%macro mp_streamfile('; + put 'contenttype=TEXT'; + put ',inloc='; + put ',inref=0'; + put ',iftrue=%str(1=1)'; + put ',outname='; + put ',outref=_webout'; + put ')/*/STORE SOURCE*/;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%let contentype=%upcase(&contenttype);'; + put '%let outref=%upcase(&outref);'; + put '%local platform; %let platform=%mf_getplatform();'; + put '/**'; + put '* check engine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put '%local streamweb;'; + put '%let streamweb=0;'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(upcase(fileref)="&outref"));'; + put 'if xengine=''STREAM'' then call symputx(''streamweb'',1,''l'');'; + put 'run;'; + put '%if &contentype=CSV %then %do;'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'',''application/csv'');'; + put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.txt'''; + put 'contenttype=''application/csv'''; + put 'contentdisp="attachment; filename=&outname";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type,application/csv)'; + put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; + put '%end;'; + put '%end;'; + put '%else %if &contentype=EXCEL %then %do;'; + put '/* suitable for XLS format */'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'',''application/vnd.ms-excel'');'; + put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.xls'''; + put 'contenttype=''application/vnd.ms-excel'''; + put 'contentdisp="attachment; filename=&outname";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type,application/vnd.ms-excel)'; + put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; + put '%end;'; + put '%end;'; + put '%else %if &contentype=GIF or &contentype=JPEG or &contentype=PNG %then %do;'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'',"image/%lowcase(&contenttype)");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'contenttype="image/%lowcase(&contenttype)";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type,image/%lowcase(&contenttype))'; + put '%end;'; + put '%end;'; + put '%else %if &contentype=HTML or &contenttype=MARKDOWN %then %do;'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'',"text/%lowcase(&contenttype)");'; + put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name="_webout.json"'; + put 'contenttype="text/%lowcase(&contenttype)"'; + put 'contentdisp="attachment; filename=&outname";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type,text/%lowcase(&contenttype))'; + put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; + put '%end;'; + put '%end;'; + put '%else %if &contentype=TEXT %then %do;'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'',''application/text'');'; + put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.txt'''; + put 'contenttype=''application/text'''; + put 'contentdisp="attachment; filename=&outname";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type,application/text)'; + put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; + put '%end;'; + put '%end;'; + put '%else %if &contentype=WOFF or &contentype=WOFF2 or &contentype=TTF %then %do;'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'',"font/%lowcase(&contenttype)");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'contenttype="font/%lowcase(&contenttype)";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type,font/%lowcase(&contenttype))'; + put '%end;'; + put '%end;'; + put '%else %if &contentype=XLSX %then %do;'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'','; + put '''application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'');'; + put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.xls'''; + put 'contenttype='; + put '''application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'''; + put 'contentdisp="attachment; filename=&outname";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type'; + put ',application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'; + put ')'; + put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; + put '%end;'; + put '%end;'; + put '%else %if &contentype=ZIP %then %do;'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'',''application/zip'');'; + put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.zip'''; + put 'contenttype=''application/zip'''; + put 'contentdisp="attachment; filename=&outname";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type,application/zip)'; + put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put %str(ERR)OR: Content Type &contenttype NOT SUPPORTED by &sysmacroname!;'; + put '%end;'; + put '%if &inref ne 0 %then %do;'; + put '%mp_binarycopy(inref=&inref,outref=&outref)'; + put '%end;'; + put '%else %do;'; + put '%mp_binarycopy(inloc="&inloc",outref=&outref)'; + put '%end;'; + put '%mend mp_streamfile;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file'; + put '@brief Exports the data controller library in DB specific DDL'; + put '@details If user is in the administrator group, they can call this'; + put 'service directly adding the following URL params:'; + put '@li &flavour= (only PGSQL supported at this time)'; + put '@li &schema= (optional, if target schema is needed)'; + put '

SAS Macros

'; + put '@li mf_getuser.sas'; + put '@li mp_abort.sas'; + put '@li mp_getddl.sas'; + put '@li mp_lib2inserts.sas'; + put '@li mp_streamfile.sas'; + put '@li mpe_getgroups.sas'; + put '@version 9.2'; + put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; + put 'downloaded from here: https://4gl.uk/dcdeploy'; + put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; + put 'and may not be re-distributed or re-sold without the express permission of'; + put '4GL Apps Ltd.'; + put '**/'; + put '%mpeinit()'; + put '%global flavour schema;'; + put '/* if no flavour is specified, default to SAS */'; + put '%let flavour=%sysfunc(coalescec(&flavour,SAS));'; + put '/* if no schema var provided, DC Libref is used */'; + put '%let schema=%sysfunc(coalescec(&schema,&dc_libref));'; + put '/* check user is in admin group */'; + put '%mpe_getgroups(user=%mf_getuser(),outds=work.usergroups)'; + put 'data work.admins;'; + put 'set work.usergroups;'; + put 'put (_all_)(=);'; + put 'run;'; + put '%let cnt=0;'; + put 'proc sql noprint;'; + put 'select count(*) into:cnt'; + put 'from usergroups'; + put 'where groupname="&mpeadmins";'; + put '%put &=cnt;'; + put '%mp_abort(iftrue= (&cnt=0)'; + put ',mac=&_program'; + put ',msg=%str(The &DC_LIBREF library can only be exported by &mpeadmins members)'; + put ')'; + put '%mp_getddl(&DC_LIBREF'; + put ',flavour=&flavour'; + put ',schema=&schema'; + put ',applydttm=YES'; + put ',fref=tmpref'; + put ')'; + put '%mp_lib2inserts(&DC_LIBREF,flavour=&flavour,schema=&schema, outref=tmpref)'; + put '%mp_streamfile(contenttype=TEXT'; + put ',inref=tmpref'; + put ',outname=&dc_libref..ddl'; + put ')'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=makedata; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Files

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as FMTCAT,'; + put 'FMTNAME'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'LENGTH num'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.length as MAXW'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put ')))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] workobs= (0) When set to a positive integer, will create a new'; + put 'output object (WORK) which contains this number of observations from all'; + put 'tables in the WORK library.'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX,workobs=0'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&workobs) > 0 %then %do;'; + put '/* if debug mode, send back first XX records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10'; + put ',maxobs=&workobs'; + put ')'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '%macro mf_increment(macro_name,incr=1);'; + put '/* iterate the value */'; + put '%let ¯o_name=%eval(&&¯o_name+&incr);'; + put '/* return the value */'; + put '&&¯o_name'; + put '%mend mf_increment;'; + put '%macro mpe_makedata(lib=,mpeadmins=,path=);'; + put '%if &syscc ne 0 %then %do;'; + put '%put syscc=&syscc exiting &sysmacroname;'; + put '%return;'; + put '%end;'; + put 'proc sql;'; + put 'insert into &lib..mpe_alerts set'; + put 'tx_from=0'; + put ',tx_to=''31DEC9999:23:59:59''dt'; + put ',alert_event=''*ALL*'''; + put ',alert_lib=''*ALL*'''; + put ',alert_ds=''*ALL*'''; + put ',alert_user="&sysuserid";'; + put 'insert into &lib..mpe_column_level_security set'; + put 'tx_from=0'; + put ',tx_to=''31DEC9999:23:59:59''dt'; + put ',CLS_SCOPE=''EDIT'''; + put ',CLS_GROUP=''AllUsers'''; + put ',CLS_LIBREF="&lib"'; + put ',CLS_TABLE=''MPE_LOCKANYTABLE'''; + put ',CLS_VARIABLE_NM=''LOCK_STATUS_CD'''; + put ',CLS_ACTIVE=1'; + put ',CLS_HIDE=0;'; + put 'insert into &lib..mpe_config set'; + put 'tx_from=0'; + put ',tx_to=''31DEC9999:23:59:59''dt'; + put ',var_scope="DC"'; + put ',var_name="DC_EMAIL_ALERTS"'; + put ',var_value=''NO'''; + put ',var_active=1'; + put ',var_desc=''YES or NO to enable email alerts. Note - this requires email '''; + put '!!''options to be preconfigured! They can be configured in the '''; + put '!!''settings stp if needed.'';'; + put 'insert into &lib..mpe_config set'; + put 'tx_from=0'; + put ',tx_to=''31DEC9999:23:59:59''dt'; + put ',var_scope="DC"'; + put ',var_name="DC_VIEWLIB_CHECK"'; + put ',var_value=''NO'''; + put ',var_active=1'; + put ',var_desc='; + put '''Set to YES to enable library validity checking in viewLibs service.'''; + put '!!'' Note: this can make the service very slow if there are lots of '''; + put '!!''external libraries. If enabled, this removes empty libraries from '''; + put '!!''the viewer library dropdown. To switch off, set to NO.'';'; + put 'insert into &lib..mpe_config set'; + put 'tx_from=0'; + put ',tx_to=''31DEC9999:23:59:59''dt'; + put ',var_scope="DC"'; + put ',var_name="DC_MACROS"'; + put ',var_value=cats(symget(''path''),"/dc_macros")'; + put ',var_active=1'; + put ',var_desc=''Location of underlying macros - EUC feature.'';'; + put 'insert into &lib..mpe_config set'; + put 'tx_from=0'; + put ',tx_to=''31DEC9999:23:59:59''dt'; + put ',var_scope="DC"'; + put ',var_name="DC_MAXOBS_WEBEDIT"'; + put ',var_value="100"'; + put ',var_active=1'; + put ',var_desc=''This sets the maximum number of observations that can be loaded'''; + put '!!'' into the browser for editing in the EDIT screen. A higher number'''; + put '!!'' will require a decent browser (ie, not IE) and more memory on the'''; + put '!!'' client side.'';'; + put 'insert into &lib..mpe_config set'; + put 'tx_from=0'; + put ',tx_to=''31DEC9999:23:59:59''dt'; + put ',var_scope="DC"'; + put ',var_name="DC_RESTRICT_VIEWER"'; + put ',var_value="NO"'; + put ',var_active=1'; + put ',var_desc=''YES will restrict the list of libraries and tables in VIEWER to'''; + put '!!'' those explicitly set to VIEW in the MPE_SECURITY table. Default=NO.'';'; + put 'insert into &lib..mpe_config set'; + put 'tx_from=0'; + put ',tx_to=''31DEC9999:23:59:59''dt'; + put ',var_scope="DC"'; + put ',var_name="DC_RESTRICT_EDITRECORD"'; + put ',var_value="NO"'; + put ',var_active=1'; + put ',var_desc=''Setting YES will prevent the EDIT RECORD dialog appearing in the'''; + put '!!'' EDIT screen by removing the "Edit Row" option in the right click menu'''; + put '!!'', and the "ADD RECORD" button in the bottom left. Default=NO.'';'; + put 'insert into &lib..mpe_config set'; + put 'tx_from=0'; + put ',tx_to=''31DEC9999:23:59:59''dt'; + put ',var_scope="DC_CATALOG"'; + put ',var_name="DC_IGNORELIBS"'; + put ',var_value="|MAPSSAS|MAPS|"'; + put ',var_active=1'; + put ',var_desc=''Pipe seperated list of librefs (uppercase) to be ignored when'''; + put '!!'' running the Data Catalog refresh process. This can enable a clean'''; + put '!!'' run when invalid librefs are returned by the mpe_refreshlibs macro.'';'; + put 'insert into &lib..mpe_config set'; + put 'tx_from=0'; + put ',tx_to=''31DEC9999:23:59:59''dt'; + put ',var_scope="DC"'; + put ',var_name="DC_LOCALE"'; + put ',var_value="SYSTEM"'; + put ',var_active=1'; + put ',var_desc=''Set to a locale (such as en_gb or en_be) to override the system'''; + put '!!'' value (which can be driven from the browser settings). This is '''; + put '!!''useful when importing ambiguous dates from CSV or Excel (eg 1/2/20 vs '''; + put '!!''2/1/20) as DC uses the anydtdtm informats for import. Default=SYSTEM.'';'; + put 'insert into &lib..mpe_config set'; + put 'tx_from=0'; + put ',tx_to=''31DEC9999:23:59:59''dt'; + put ',var_scope="DCBL_REDSH"'; + put ',var_name="BULKLOAD"'; + put ',var_value="YES"'; + put ',var_active=0'; + put ',var_desc=''Set to YES to enable BULKLOAD=YES in redshift'';'; + put 'insert into &lib..mpe_config set'; + put 'tx_from=0'; + put ',tx_to=''31DEC9999:23:59:59''dt'; + put ',var_scope="DCBL_REDSH"'; + put ',var_name="BL_BUCKET"'; + put ',var_value="''your-aws-bucket/Exchange''"'; + put ',var_active=0'; + put ',var_desc=''Set to the (quoted) value of the AWS bucket to'''; + put '!!'' use for s3 uploads in redshift'';'; + put 'insert into &lib..mpe_config set'; + put 'tx_from=0'; + put ',tx_to=''31DEC9999:23:59:59''dt'; + put ',var_scope="DCBL_REDSH"'; + put ',var_name="BL_AWS_CREDENTIALS_FILE"'; + put ',var_value="''/path/to/your/aws/s3/.credentials''"'; + put ',var_active=0'; + put ',var_desc=''Set to the (quoted) value of the AWS creds file'';'; + put 'insert into &lib..mpe_config set'; + put 'tx_from=0'; + put ',tx_to=''31DEC9999:23:59:59''dt'; + put ',var_scope="DCBL_REDSH"'; + put ',var_name="BL_REGION"'; + put ',var_value="''eu-west-1''"'; + put ',var_active=0'; + put ',var_desc=''Set to the (quoted) AWS region in use'';'; + put 'insert into &lib..mpe_config set'; + put 'tx_from=0'; + put ',tx_to=''31DEC9999:23:59:59''dt'; + put ',var_scope="DCBL_REDSH"'; + put ',var_name="BL_COMPRESS"'; + put ',var_value="YES"'; + put ',var_active=0'; + put ',var_desc=''Set to YES to perform compression ahead of the COPY command'';'; + put 'insert into &lib..mpe_config set'; + put 'tx_from=0'; + put ',tx_to=''31DEC9999:23:59:59''dt'; + put ',var_scope="DCBL_REDSH"'; + put ',var_name="BL_USE_SSL"'; + put ',var_value="YES"'; + put ',var_active=0'; + put ',var_desc=''Set to YES to use SSL encryption'';'; + put '%if &syssite=70221618 %then %do;'; + put 'insert into &lib..mpe_config set'; + put 'tx_from=0'; + put ',tx_to=''31DEC9999:23:59:59''dt'; + put ',var_scope="DC"'; + put ',var_name="DC_ACTIVATION_KEY"'; + put ',var_value="MIIGtwIBADANBgkqhkiG9w0BAQEFAASCBqEwggadAgEAAoIBcQDgvQiMeOR3AMX4I1hypexG7pEQp7anG7nhvUeiLvcW3O5rHqQ2CNYAgHa41zjE5b6o1M6"'; + put '!!"pgTUfg7/F37XwqFNaaRalvZ+hM7jv5LAn/dsGFu/TkInvnu4O6ti4JOgE1/KPD7ikcOLzSa7aph+yel5JCbMbyn1MXLHlKG88uIQq7K8xuJife3tHAdC3m1I4YHOgkxh"'; + put '!!"6OhZxv7janJwM6h/VORoVEYXQCtgaItpFjyn1b5USlk48YB8iqSPEO/KZdYeO6jiOIpA17Ryk7g989RR70qVH2JZKjvyl/FCGN2Bz8eR6+ZSQ5cRcZRE3CujFaM5sO6C"'; + put '!!"qVfJ9q1pqriTkrz7XedHlNKwl6BgJlk0GgsqYpp82qhVj8jrXjXb1iLITGpHokYQ74b0Qsu7GkdPwAA+64SqzWvE23zc1+iKjMWZIjQMIy4Pj55Z1ZI9Gv1qfatrdOcq"'; + put '!!"/gXU1hRTI9IiNTlO9UpI4hs7ea9YlEAfIUt25GwIDAQABAoIBcGMoFGMCHe9BmJdEZQxkl8yuCrQ6AzVU3t0yKa5toVhljw4VPWeX22/qPjeMwf/hzA7qoeoY14r5kr3"'; + put '!!"n1/sAEZLE5hingwxZaUHy+SQT9bSInzUNw0ZFrYxIYulQY0xryRoE2jc3lXK5MlxHSpnxMrNwA6YB3+m2xkiw3+9/C9Vyi1PZOgG3tiscqm2wKoU0TR/udrDK+0chy5o"'; + put '!!"s2g86p2Po51CfZBZoCnPxp7NkGKOxISlLxuYNlP5etKLeIshMd9Bq0Atab+J6dhznCniADAReYFssER4WHBwdmxVsRE9U0bH4uhOCXDUwhhOL5X82gW9TA9TPZk4bdoh"'; + put '!!"dgthMoKccYcth/hxPglJTngguoVGsu2XDuvmPPXtl/CRfFrtrWJWUHm408i+jt7+j7DfwtiCZsjKhDDlWJbeAYT+Ex3MtN5GZK8z6V+uUNQi7spDaNBIPTWXmiPwhIF/"'; + put '!!"fCOuY4FiUemB+RFJOnWofJqyMR9yRAoG5APeffJHX5N5XPJTXwwYoD7ZUHh8evgjQzrXDE/k8J0Z1K1G5zIzheZmwCWSt2KlcjNd94tu7CE0wljqxrE8P7VPQk3bcWZF"'; + put '!!"xC2BAuw4WYgnx2MNLC5PEKmbbNRlT10MnhzLjnYM/V7DMV4nu3XIHlybLDZDZm84hVbV58xDqxheLRVnK7r+Cip4KywuT5GsQ6Da8MKC0z7I2LgOAozvRA/hp1ILgv4q"'; + put '!!"mPhpNXXRGAcSPwT8yy+bd9DECgbkA6FdbcwoUUMkgqjdKrNNWgrRmTmUUMbFDnwxpI7hEAN9kKeBju2G7/A8BK8IPZeiDDsiqWZ8UKKN4/rAXLoZnjDAygLdFGqcLPMq"'; + put '!!"Dt8WOsp2tbEGyAujpKP+f9K158r70BIreNJ46iuoS+S3O2CziUJV1e2LPEl9sb7neAyDpxp8+LTuuLSuA3+htIGMbvZ8bgmC26a4AFt7bkHB/NY0mstx7D3pM9nTxIid"'; + put '!!"SNOjWHIAqPLia0FArCwKBuQDflMt/S/ZEo3P52M8osedt84m3A6UGhLL//wH72kqEHatdgWumELghAoeYtjeYxA4PTIUXbUrTl3ktydsREApz0TI08kSVRALHh+rdj2w"'; + put '!!"6Gnpj61CqvUaj1G2fTspgwkIautYv+XOOGRM5Ycnk+eGKj3DSRwmdFxAyacgEkFcITyHxL4Bevtm2VXx8Ga721S82rLkjgd6+xJjLZMz+Z300QSo2egO4ht4wFYa6Q7O"'; + put '!!"47SvJim39KI8hAoG5AKqFKr30oNJlus6ShADxnqWRByD0OGz8H5gEgMnRfD9ztMyzPh8RbOlijcZyx+BQVJeuGLBr+1yUFcI+tNTVmfueiAJF/7a+8JVuQFvI56EZ7mT"'; + put '!!"sllxiWnVXnyrxgvXwxaDr1oehtW+sub4dq5im4HaqKq4i570hQbGCJXoAVvMKfpSuH3hRXGV47VZ+xqZVttfqaXR52uDuMRECL6q67LMK9Fp4tTGQxET/vOrOFA6Y1eb"'; + put '!!"4yc6nd98CgbkAtZOgSsazcIWxTXxqgMFXa+G6YXDeqm6nqOiaR+rH4H1i1Vzl08966vfOM0kRWPB1OrvQKGxg8uYNfSo8ZqprPrUdUnA1BesJjQV0kj3KWW7i/Ir4R90"'; + put '!!"8NKEjyMn/+Vbi0i2ac1nSEm+2SydOonxSZixNzW2VevUuT5d4/i3UZo5fNXeCiBEzzJNw6MjYBxmMgcGWJvxMckpsGHGdQAj+hPkub8mHOZfaSmHfnxBvAFUdhLOasRj"'; + put '!!"deQ=="'; + put ',var_active=1;'; + put 'insert into &lib..mpe_config set'; + put 'tx_from=0'; + put ',tx_to=''31DEC9999:23:59:59''dt'; + put ',var_name="DC_LICENCE_KEY"'; + put ',var_scope="DC"'; + put ',var_value="PEvKnV0EcmlJVrrx8JpXOc+/va+ksMzvkJBp05iVRtyl6xgFxhMAi+w4/7mHi4P2STbwV61mG2BGpBlO6qteDfZTmoROjRekcLw8wWxBMzghFwGvO93"'; + put '!!"taapBmpyXm3cv26iAc9Yq8yiXhOX7ZO7+7PXIoH9rqCT5ILrIY0vqVYnwx+AyjUI7FMsfAwKApCaTVXOca5My3att5yCg2fz+MQhCZbEK1tbubk9kAlaJJtlYzSj"'; + put '!!"J8ADuMR74rpGofk8YGOTegOjUGI+ENhkHW+ooh9fmNTkIilOBuNQ0irBvd49weejCDRtnX9/Twt8wv6r6QyYT31F5yuI2/G0NoHrjeWHjl5riD/q2NnC+aTXWVnV"'; + put '!!"QP+0+e1H0ohUZd9bAw0BE7bFWpcriYovIsu6VlhzpdqFRnUZ0ULw9CesQa6X2qIazT9V9jxfM1Of53kwIxKrb1LTEMcvxKtTh1jEW4nfvwBs4UJ1W7+5u0j1FfY3"'; + put '!!"FUtU="'; + put ',var_active=1;'; + put '%end;'; + put '%else %if &syssite=70253615 %then %do;'; + put 'insert into &lib..mpe_config set'; + put 'tx_from=0'; + put ',tx_to=''31DEC9999:23:59:59''dt'; + put ',var_scope="DC"'; + put ',var_name="DC_LICENCE_KEY"'; + put ',var_value=''4bfbZtsFbfGuqbZhJdAD8p8EbNmuxiaLaxMdTZPTJreRcfd0CYarXQoxCr3BMt6aWJjwFMvwG/7IXB6'''; + put '!!''nxT9X0HH4dvgykgzKmSCY5q2lwENoNrUhk'''; + put '!!''sF/iSvFuwKVuccW6NFKNahQhRBpfFBps6YrUzHG62yPrCzYDM0SFtS3EdeE6gijnhv4SGt+s77xutjitgdruRBg'''; + put '!!''Zyt3bzCWs0yNgt/KqLClVOktgJ3/FV8Im0v'''; + put '!!''nAhkUq0CwgQ698LO150RLF6j40E9md2WpNKuJeXKSl9+ejR+aln+COvS5iUVBX8UBVv5eviOOzu8hBI80HmMt'''; + put ',var_active=1'; + put ',var_desc=''Licence Key Placeholder for Data Controller Full Version'';'; + put 'insert into &lib..mpe_config set'; + put 'tx_from=0'; + put ',tx_to=''31DEC9999:23:59:59''dt'; + put ',var_scope="DC"'; + put ',var_name="DC_ACTIVATION_KEY"'; + put ',var_value=''MIIEcAIBADANBgkqhkiG9w0BAQEFAASCBFowggRWAgEAAoHxAOlGX2CSHJjb4isZWpcXWwjrVcQrgs'''; + put '!!''I6rAb7vN3c0TILF5+/Jmq2FcO02NUtYP7ai2puTv9PMvMKz3bxocvgIHiajAu1ZyK/r6IIcdgHbH'''; + put '!!''xeTXv82JhTT4PlP+4NXCK1oKgthSyt1jhz0wzD9YeGEkB5Mn4IRH+6WWzrVJIG+dm4wnUpi9ia3Px9ktPoNLFA'''; + put '!!''GBZopcTf7NM6O1WDQ5oaZG6r7y9G8jZWrgzTWyEiFpGytg3MCGJv7oW7YDk+2i/DKIuSZz6gc/BSSo'''; + put '!!''ZcQZDKToAU+gFQZqnimWGhtv6szjNrfjCJ23b++wlvQ1C6bJE47wIDAQABAoHwciGwq36BSFaYfu6+MFtIe'''; + put '!!''oItqbeCF8Z+AUKsYr5Vic78hXeP87jXyDNUvWQg50AE4xNKSka1Dk11OOQ6/ZVQPcGbkGT2K32ukC/ih0'''; + put '!!''gGj4jSDz4juM9WAZmp4C4gLIlBq9btp/D7dQ5SLZY4rFBv4KSLjDc+UGHazLmFQgikMC+CBukDrZ7IvpjreII'''; + put '!!''zVil18IyGnxuD22pFyY4pLG9nvrIsLhKAYaOQnRS29n34o6ZQ/tqCWJo3FaCCsXAa7zX9OEHh4lZNj5'''; + put '!!''XdzN/LexaAmki9ObfXtX4W2wcMrFPX0Rt0QDznDF/a4uGS9WpHPKCxAnkA9l9P+ZJwM0hin8+B5cOuyMga5N'''; + put '!!''DjMXI1vt2cpGzWUmtnFJcCNDX0nAHddWhmTXoKlCCyo1RzPHiWdO8LRhlnojptxcmhW1LfJLcn278NxD'''; + put '!!''h1dFxQB0j/o7w4Js2ih3HjwD0GpVLXPPr0O1GORodb0OuZ3hXCTDFRAnkA8mQI4OLTW+VI9c1OSi5JNmXrl+jRPC'''; + put '!!''BTPgjomGMAKCEvfLHfDjNQ/gN8asNo2uscgqWvGLEM83jxkpFhJ/lbcg02utPhVe4jOo+XSY3UEE'''; + put '!!''wq8oGpx1k9QgbrCfRivoDZpRk+SrqQmO4PHKnHTAdLVgDQnvbISjY/AnkAoZXblx0jN49HF/d6A572+Lq9'''; + put '!!''YMtb5uc4NsmUXgb//ihxAAEWsfWdS+CxRbrGNhRP8d0MLLFLryKL03+gjkZFQRI/QtS+Xm4Y6jSyEJ7awZ'''; + put '!!''Ih/sI4vr5y5Amjble6PElHDaM4w590iYsyOeGAheNrJbgQP6dXuq8xAnkAi9duz9/NNO1ZZIZoLp/5mSq/'''; + put '!!''+0pUvK2hmN6m4pPrWTucHAK6v4SXq5TzSN0oN3UBY9aW6FXtNOKH7Jl3Rgq02V4KP0tSa7MSHA0PqV3sBO'''; + put '!!''MMvBBWlS5FCzzWiU23UlUgPAIOUCrGlZRyn4TL+G8U5a9erPePolEdAnkAltgzR4wcAzwf0HGc2sOXDrdk'''; + put '!!''drjpEGPQONR72IGcC9rxLPTNFFW3xmLVy19oOikVluGTR7Pn5CmROxfXx5zT7fZHQXOM4uxA5soGs9jkQo'''; + put '!!''lVw/KnvUZLLiiDKG4X/FTCyEPGnZPs131ZkGhhr6EirtwkHyG2zbly'''; + put ',var_active=1'; + put ',var_desc=''Activation Key Placeholder for Data Controller Full Version'';'; + put '%end;'; + put '%else %do;'; + put 'insert into &lib..mpe_config set'; + put 'tx_from=0'; + put ',tx_to=''31DEC9999:23:59:59''dt'; + put ',var_scope="DC"'; + put ',var_name="DC_LICENCE_KEY"'; + put ',var_value='' '''; + put ',var_active=1'; + put ',var_desc=''Licence Key'';'; + put 'insert into &lib..mpe_config set'; + put 'tx_from=0'; + put ',tx_to=''31DEC9999:23:59:59''dt'; + put ',var_scope="DC"'; + put ',var_name="DC_ACTIVATION_KEY"'; + put ',var_value='' '''; + put ',var_active=1'; + put ',var_desc=''Activation Key'';'; + put '%end;'; + put 'insert into &lib..mpe_datadictionary set'; + put 'tx_from=0'; + put ',DD_TYPE=''LIBRARY'''; + put ',DD_SOURCE="&lib"'; + put ',DD_SHORTDESC="Data Controller Control Tables"'; + put ',DD_LONGDESC="# The Data Controller Library"'; + put ',DD_OWNER="&sysuserid"'; + put ',DD_RESPONSIBLE="&sysuserid"'; + put ',DD_SENSITIVITY="Low"'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_datadictionary set'; + put 'tx_from=0'; + put ',DD_TYPE=''TABLE'''; + put ',DD_SOURCE="&lib..MPE_TABLES"'; + put ',DD_SHORTDESC="Configuration of new tables for Data Controller"'; + put ',DD_LONGDESC="# MPE_TABLES - adding new tabels to Data Controller"'; + put ',DD_OWNER="&sysuserid"'; + put ',DD_RESPONSIBLE="&sysuserid"'; + put ',DD_SENSITIVITY="Low"'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_datadictionary set'; + put 'tx_from=0'; + put ',DD_TYPE=''COLUMN'''; + put ',DD_SOURCE="&lib..MPE_TABLES.DSN"'; + put ',DD_SHORTDESC="Dataset Name to be edited"'; + put ',DD_LONGDESC="_DSN_ - must be UPCASE"'; + put ',DD_OWNER="&sysuserid"'; + put ',DD_RESPONSIBLE="&sysuserid"'; + put ',DD_SENSITIVITY="Low"'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_datadictionary set'; + put 'tx_from=0'; + put ',DD_TYPE=''DIRECTORY'''; + put ',DD_SOURCE="/some/directory"'; + put ',DD_SHORTDESC="Directory for some purpose"'; + put ',DD_LONGDESC="This directory is great. It''s great directory.'; + put 'It trumps all other directories."'; + put ',DD_OWNER="&sysuserid"'; + put ',DD_RESPONSIBLE="&sysuserid"'; + put ',DD_SENSITIVITY="Low"'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_datadictionary set'; + put 'tx_from=0'; + put ',DD_TYPE=''TABLE'''; + put ',DD_SOURCE="&lib"'; + put ',DD_SHORTDESC="Transaction table for capturing Data Controller users"'; + put ',DD_LONGDESC="After a user accepts the Data Controller EULA they are "'; + put '!!"registered as a user in this table."'; + put ',DD_OWNER="&sysuserid"'; + put ',DD_RESPONSIBLE="&sysuserid"'; + put ',DD_SENSITIVITY="Low"'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_datadictionary set'; + put 'tx_from=0'; + put ',DD_TYPE=''COLUMN'''; + put ',DD_SOURCE="&lib..MPE_CONFIG.VAR_ACTIVE"'; + put ',DD_SHORTDESC="Set to 1 to make an option active"'; + put ',DD_LONGDESC="This value is used as a filter by data controller whenever "'; + put '!!"querying for option settings."'; + put ',DD_OWNER="&sysuserid"'; + put ',DD_RESPONSIBLE="&sysuserid"'; + put ',DD_SENSITIVITY="Low"'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put '/**'; + put '* MPE_GROUPS'; + put '*/'; + put 'insert into &lib..mpe_groups set'; + put 'tx_from=0'; + put ',group_name="dc-admin"'; + put ',group_desc="Custom Group for Data Controller Purposes"'; + put ',user_name="allbow"'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_groups set'; + put 'tx_from=0'; + put ',group_name="dc-admin"'; + put ',group_desc="Custom Group for Data Controller Purposes"'; + put ',user_name="dctestuser1"'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_groups set'; + put 'tx_from=0'; + put ',group_name="dc-admin"'; + put ',group_desc="Custom Group for Data Controller Purposes"'; + put ',user_name="mihmed"'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_groups set'; + put 'tx_from=0'; + put ',group_name="sec-sas9-prd-ext-sasplatform-300115datacontroller"'; + put ',group_desc="Custom Group for Data Controller Purposes"'; + put ',user_name="DCTest"'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put '/**'; + put '* MPE_ROW_LEVEL_SECURITY'; + put '*/'; + put 'insert into &lib..mpe_row_level_security set'; + put 'tx_from=0'; + put ',tx_to=''31DEC5999:23:59:59''dt'; + put ',RLS_RK=1'; + put ',RLS_SCOPE=''ALL'''; + put ',RLS_GROUP=''sec-sas9-prd-int-sasplatform-300114sasjs'''; + put ',RLS_LIBREF="&lib."'; + put ',RLS_TABLE="MPE_GROUPS"'; + put ',RLS_GROUP_LOGIC=''AND'''; + put ',RLS_SUBGROUP_LOGIC=''OR'''; + put ',RLS_SUBGROUP_ID=0'; + put ',RLS_VARIABLE_NM=''GROUP_NAME'''; + put ',RLS_OPERATOR_NM=''NE'''; + put ',RLS_RAW_VALUE="''-1''"'; + put ',RLS_ACTIVE=1;'; + put 'insert into &lib..mpe_row_level_security set'; + put 'tx_from=0'; + put ',tx_to=''31DEC5999:23:59:59''dt'; + put ',RLS_RK=2'; + put ',RLS_SCOPE=''ALL'''; + put ',RLS_GROUP=''sec-sas9-prd-int-sasplatform-300114sasjs'''; + put ',RLS_LIBREF="&lib"'; + put ',RLS_TABLE="MPE_ROW_LEVEL_SECURITY"'; + put ',RLS_GROUP_LOGIC=''AND'''; + put ',RLS_SUBGROUP_LOGIC=''OR'''; + put ',RLS_SUBGROUP_ID=0'; + put ',RLS_VARIABLE_NM=''RLS_RK'''; + put ',RLS_OPERATOR_NM=''>'''; + put ',RLS_RAW_VALUE=''0'''; + put ',RLS_ACTIVE=1;'; + put 'insert into &lib..mpe_row_level_security set'; + put 'tx_from=0'; + put ',tx_to=''31DEC5999:23:59:59''dt'; + put ',RLS_RK=3'; + put ',RLS_SCOPE=''ALL'''; + put ',RLS_GROUP=''DC Demo Group'''; + put ',RLS_LIBREF="&lib"'; + put ',RLS_TABLE="MPE_SECURITY"'; + put ',RLS_GROUP_LOGIC=''AND'''; + put ',RLS_SUBGROUP_LOGIC=''OR'''; + put ',RLS_SUBGROUP_ID=0'; + put ',RLS_VARIABLE_NM=''ACCESS_LEVEL'''; + put ',RLS_OPERATOR_NM=''NE'''; + put ',RLS_RAW_VALUE="''N/A''"'; + put ',RLS_ACTIVE=1;'; + put '/**'; + put '* MPE_SECURITY'; + put '*/'; + put 'insert into &lib..mpe_security set'; + put 'tx_from=0'; + put ',libref="*ALL*"'; + put ',dsn="*ALL*"'; + put ',access_level="APPROVE"'; + put ',sas_group="sec-sas9-prd-int-sasplatform-300114sasjs"'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_security set'; + put 'tx_from=0'; + put ',libref="*ALL*"'; + put ',dsn="*ALL*"'; + put ',access_level="EDIT"'; + put ',sas_group="sec-sas9-prd-int-sasplatform-300114sasjs"'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_security set'; + put 'tx_from=0'; + put ',libref="*ALL*"'; + put ',dsn="*ALL*"'; + put ',access_level="APPROVE"'; + put ',sas_group="sec-sas9-prd-ext-sasplatform-300114sasjs"'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_security set'; + put 'tx_from=0'; + put ',libref="*ALL*"'; + put ',dsn="*ALL*"'; + put ',access_level="EDIT"'; + put ',sas_group="sec-sas9-prd-ext-sasplatform-300114sasjs"'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_security set'; + put 'tx_from=0'; + put ',libref="*ALL*"'; + put ',dsn="*ALL*"'; + put ',access_level="EDIT"'; + put ',sas_group="dc-admin"'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_security set'; + put 'tx_from=0'; + put ',libref="*ALL*"'; + put ',dsn="*ALL*"'; + put ',access_level="APPROVE"'; + put ',sas_group="dc-admin"'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put '/* mpe_selectbox */'; + put '%let rk=1;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=&rk'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_LOCKANYTABLE"'; + put ',base_column="LOCK_STATUS_CD"'; + put ',selectbox_value=''LOCKED'''; + put ',selectbox_order=1'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_LOCKANYTABLE"'; + put ',base_column="LOCK_STATUS_CD"'; + put ',selectbox_value=''UNLOCKED'''; + put ',selectbox_order=2'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_SECURITY"'; + put ',base_column="ACCESS_LEVEL"'; + put ',selectbox_value=''EDIT'''; + put ',selectbox_order=0'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_SECURITY"'; + put ',base_column="ACCESS_LEVEL"'; + put ',selectbox_value=''APPROVE'''; + put ',selectbox_order=1'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_SECURITY"'; + put ',base_column="ACCESS_LEVEL"'; + put ',selectbox_value=''VIEW'''; + put ',selectbox_order=2'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_SECURITY"'; + put ',base_column="ACCESS_LEVEL"'; + put ',selectbox_value=''SIGNOFF'''; + put ',selectbox_order=3'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_TABLES"'; + put ',base_column="LOADTYPE"'; + put ',selectbox_value=''UPDATE'''; + put ',selectbox_order=1'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_TABLES"'; + put ',base_column="LOADTYPE"'; + put ',selectbox_value=''REPLACE'''; + put ',selectbox_order=2'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_TABLES"'; + put ',base_column="LOADTYPE"'; + put ',selectbox_value=''TXTEMPORAL'''; + put ',selectbox_order=3'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_TABLES"'; + put ',base_column="LOADTYPE"'; + put ',selectbox_value=''BITEMPORAL'''; + put ',selectbox_order=4'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_TABLES"'; + put ',base_column="LOADTYPE"'; + put ',selectbox_value=''FORMAT_CAT'''; + put ',selectbox_order=5'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_ALERTS"'; + put ',base_column="ALERT_EVENT"'; + put ',selectbox_value=''*ALL*'''; + put ',selectbox_order=1'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_ALERTS"'; + put ',base_column="ALERT_EVENT"'; + put ',selectbox_value=''SUBMITTED'''; + put ',selectbox_order=2'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_ALERTS"'; + put ',base_column="ALERT_EVENT"'; + put ',selectbox_value=''APPROVED'''; + put ',selectbox_order=3'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_ALERTS"'; + put ',base_column="ALERT_EVENT"'; + put ',selectbox_value=''REJECTED'''; + put ',selectbox_order=4'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_X_TEST"'; + put ',base_column="SOME_DROPDOWN"'; + put ',selectbox_value=''Option 1'''; + put ',selectbox_order=1'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_X_TEST"'; + put ',base_column="SOME_DROPDOWN"'; + put ',selectbox_value=''Option 2'''; + put ',selectbox_order=2'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_X_TEST"'; + put ',base_column="SOME_DROPDOWN"'; + put ',selectbox_value=''Option 3'''; + put ',selectbox_order=2'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_X_TEST"'; + put ',base_column="SOME_DROPDOWN"'; + put ',selectbox_value="This is a long option. This option is very long. "'; + put '!!"It is optional, though."'; + put ',selectbox_order=3'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_VALIDATIONS"'; + put ',base_column="RULE_TYPE"'; + put ',selectbox_value="CASE"'; + put ',selectbox_order=1'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_VALIDATIONS"'; + put ',base_column="RULE_TYPE"'; + put ',selectbox_value="MINVAL"'; + put ',selectbox_order=2'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_VALIDATIONS"'; + put ',base_column="RULE_TYPE"'; + put ',selectbox_value="MAXVAL"'; + put ',selectbox_order=3'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_VALIDATIONS"'; + put ',base_column="RULE_TYPE"'; + put ',selectbox_value="HARDSELECT"'; + put ',selectbox_order=4'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_VALIDATIONS"'; + put ',base_column="RULE_TYPE"'; + put ',selectbox_value="SOFTSELECT"'; + put ',selectbox_order=5'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_VALIDATIONS"'; + put ',base_column="RULE_TYPE"'; + put ',selectbox_value="NOTNULL"'; + put ',selectbox_order=6'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_SECURITY"'; + put ',base_column="DSN"'; + put ',selectbox_value="SOME_DATASET"'; + put ',selectbox_order=1'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_SECURITY"'; + put ',base_column="DSN"'; + put ',selectbox_value="EXAMPLE"'; + put ',selectbox_order=2'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_DATADICTIONARY"'; + put ',base_column="DD_TYPE"'; + put ',selectbox_value="COLUMN"'; + put ',selectbox_order=1'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_DATADICTIONARY"'; + put ',base_column="DD_TYPE"'; + put ',selectbox_value="TABLE"'; + put ',selectbox_order=2'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_DATADICTIONARY"'; + put ',base_column="DD_TYPE"'; + put ',selectbox_value="LIBRARY"'; + put ',selectbox_order=3'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_DATADICTIONARY"'; + put ',base_column="DD_TYPE"'; + put ',selectbox_value="CATALOG"'; + put ',selectbox_order=3'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_DATADICTIONARY"'; + put ',base_column="DD_TYPE"'; + put ',selectbox_value="FORMAT"'; + put ',selectbox_order=3'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_SECURITY"'; + put ',base_column="LIBREF"'; + put ',selectbox_value=''*ALL*'''; + put ',selectbox_order=1'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_SECURITY"'; + put ',base_column="ACCESS_LEVEL"'; + put ',selectbox_value=''AUDIT'''; + put ',selectbox_order=4'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_VALIDATIONS"'; + put ',base_column="RULE_TYPE"'; + put ',selectbox_value="HARDSELECT_HOOK"'; + put ',selectbox_order=7'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_VALIDATIONS"'; + put ',base_column="RULE_TYPE"'; + put ',selectbox_value="SOFTSELECT_HOOK"'; + put ',selectbox_order=7'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_ROW_LEVEL_SECURITY"'; + put ',base_column="RLS_SCOPE"'; + put ',selectbox_value="ALL"'; + put ',selectbox_order=1'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_ROW_LEVEL_SECURITY"'; + put ',base_column="RLS_SCOPE"'; + put ',selectbox_value="EDIT"'; + put ',selectbox_order=1'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_ROW_LEVEL_SECURITY"'; + put ',base_column="RLS_SCOPE"'; + put ',selectbox_value="VIEW"'; + put ',selectbox_order=1'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_ROW_LEVEL_SECURITY"'; + put ',base_column="RLS_GROUP_LOGIC"'; + put ',selectbox_value="AND"'; + put ',selectbox_order=1'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_ROW_LEVEL_SECURITY"'; + put ',base_column="RLS_GROUP_LOGIC"'; + put ',selectbox_value="OR"'; + put ',selectbox_order=2'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_ROW_LEVEL_SECURITY"'; + put ',base_column="RLS_SUBGROUP_LOGIC"'; + put ',selectbox_value="AND"'; + put ',selectbox_order=1'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_ROW_LEVEL_SECURITY"'; + put ',base_column="RLS_SUBGROUP_LOGIC"'; + put ',selectbox_value="OR"'; + put ',selectbox_order=2'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_ROW_LEVEL_SECURITY"'; + put ',base_column="RLS_OPERATOR_NM"'; + put ',selectbox_value="="'; + put ',selectbox_order=0'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_ROW_LEVEL_SECURITY"'; + put ',base_column="RLS_OPERATOR_NM"'; + put ',selectbox_value=">"'; + put ',selectbox_order=1'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_ROW_LEVEL_SECURITY"'; + put ',base_column="RLS_OPERATOR_NM"'; + put ',selectbox_value="<"'; + put ',selectbox_order=1'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_ROW_LEVEL_SECURITY"'; + put ',base_column="RLS_OPERATOR_NM"'; + put ',selectbox_value="<="'; + put ',selectbox_order=1'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_ROW_LEVEL_SECURITY"'; + put ',base_column="RLS_OPERATOR_NM"'; + put ',selectbox_value=">="'; + put ',selectbox_order=1'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_ROW_LEVEL_SECURITY"'; + put ',base_column="RLS_OPERATOR_NM"'; + put ',selectbox_value="BETWEEN"'; + put ',selectbox_order=1'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_ROW_LEVEL_SECURITY"'; + put ',base_column="RLS_OPERATOR_NM"'; + put ',selectbox_value="IN"'; + put ',selectbox_order=1'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_ROW_LEVEL_SECURITY"'; + put ',base_column="RLS_OPERATOR_NM"'; + put ',selectbox_value="NOT IN"'; + put ',selectbox_order=1'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_ROW_LEVEL_SECURITY"'; + put ',base_column="RLS_OPERATOR_NM"'; + put ',selectbox_value="NE"'; + put ',selectbox_order=1'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_ROW_LEVEL_SECURITY"'; + put ',base_column="RLS_OPERATOR_NM"'; + put ',selectbox_value="CONTAINS"'; + put ',selectbox_order=1'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_EXCEL_CONFIG"'; + put ',base_column="XL_RULE"'; + put ',selectbox_value="FORMULA"'; + put ',selectbox_order=1'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_ROW_LEVEL_SECURITY"'; + put ',base_column="RLS_ACTIVE"'; + put ',selectbox_value="1"'; + put ',selectbox_order=1'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_ROW_LEVEL_SECURITY"'; + put ',base_column="RLS_ACTIVE"'; + put ',selectbox_value="0"'; + put ',selectbox_order=2'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_COLUMN_LEVEL_SECURITY"'; + put ',base_column="CLS_ACTIVE"'; + put ',selectbox_value="1"'; + put ',selectbox_order=1'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_COLUMN_LEVEL_SECURITY"'; + put ',base_column="CLS_ACTIVE"'; + put ',selectbox_value="0"'; + put ',selectbox_order=2'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_COLUMN_LEVEL_SECURITY"'; + put ',base_column="CLS_SCOPE"'; + put ',selectbox_value="EDIT"'; + put ',selectbox_order=1'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_COLUMN_LEVEL_SECURITY"'; + put ',base_column="CLS_SCOPE"'; + put ',selectbox_value="VIEW"'; + put ',selectbox_order=2'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_COLUMN_LEVEL_SECURITY"'; + put ',base_column="CLS_SCOPE"'; + put ',selectbox_value="ALL"'; + put ',selectbox_order=3'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_COLUMN_LEVEL_SECURITY"'; + put ',base_column="CLS_HIDE"'; + put ',selectbox_value="0"'; + put ',selectbox_order=1'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_COLUMN_LEVEL_SECURITY"'; + put ',base_column="CLS_HIDE"'; + put ',selectbox_value="1"'; + put ',selectbox_order=2'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put '/**'; + put '* MPE_TABLES'; + put '*/'; + put 'insert into &lib..mpe_tables'; + put 'set tx_from=0'; + put ',tx_to=''31DEC5999:23:59:59''dt'; + put ',libref="&lib"'; + put ',dsn=''MPE_COLUMN_LEVEL_SECURITY'''; + put ',num_of_approvals_required=1'; + put ',loadtype=''TXTEMPORAL'''; + put ',var_txfrom=''TX_FROM'''; + put ',var_txto=''TX_TO'''; + put ',buskey=''CLS_SCOPE CLS_GROUP CLS_LIBREF CLS_TABLE CLS_VARIABLE_NM'''; + put ',notes=''Docs: https://docs.datacontroller.io/column-level-security'''; + put ',post_edit_hook=''services/hooks/mpe_column_level_security_postedit'''; + put ';'; + put 'insert into &lib..mpe_tables'; + put 'set tx_from=0'; + put ',tx_to=''31DEC5999:23:59:59''dt'; + put ',libref="&lib"'; + put ',dsn=''MPE_LOCKANYTABLE'''; + put ',num_of_approvals_required=1'; + put ',loadtype=''UPDATE'''; + put ',buskey=''LOCK_LIB LOCK_DS'''; + put ',notes=''This table may be edited when a process failed and left a lock'''; + put ';'; + put 'insert into &lib..mpe_tables'; + put 'set tx_from=0'; + put ',tx_to=''31DEC5999:23:59:59''dt'; + put ',libref="&lib"'; + put ',dsn=''MPE_TABLES'''; + put ',num_of_approvals_required=1'; + put ',loadtype=''TXTEMPORAL'''; + put ',buskey=''LIBREF DSN'''; + put ',var_txfrom=''TX_FROM'''; + put ',var_txto=''TX_TO'''; + put ',notes=''This entry allows the MP Editor to edit itself!'''; + put ',post_edit_hook=''services/hooks/mpe_tables_postedit'''; + put ';'; + put 'insert into &lib..mpe_tables'; + put 'set tx_from=0'; + put ',tx_to=''31DEC5999:23:59:59''dt'; + put ',libref="&lib"'; + put ',dsn=''MPE_SECURITY'''; + put ',num_of_approvals_required=1'; + put ',loadtype=''TXTEMPORAL'''; + put ',buskey=''LIBREF DSN ACCESS_LEVEL SAS_GROUP'''; + put ',var_txfrom=''TX_FROM'''; + put ',var_txto=''TX_TO'''; + put ',notes=''Shows which metadata groups can edit which tables'''; + put ';'; + put 'insert into &lib..mpe_tables'; + put 'set tx_from=0'; + put ',tx_to=''31DEC5999:23:59:59''dt'; + put ',libref="&lib"'; + put ',dsn=''MPE_SELECTBOX'''; + put ',num_of_approvals_required=1'; + put ',loadtype=''TXTEMPORAL'''; + put ',buskey=''SELECTBOX_RK'''; + put ',var_txfrom=''VER_FROM_DTTM'''; + put ',var_txto=''VER_TO_DTTM'''; + put ',notes=''Can configure dropdowns for the front end'''; + put ',rk_underlying=''SELECT_LIB SELECT_DS BASE_COLUMN SELECTBOX_VALUE'''; + put ';'; + put 'insert into &lib..mpe_tables'; + put 'set tx_from=0'; + put ',tx_to=''31DEC5999:23:59:59''dt'; + put ',libref="&lib"'; + put ',dsn=''MPE_X_TEST'''; + put ',num_of_approvals_required=1'; + put ',loadtype=''UPDATE'''; + put ',buskey=''PRIMARY_KEY_FIELD'''; + put ',notes=''Test table for controller'''; + put ';'; + put 'insert into &lib..mpe_tables'; + put 'set tx_from=0'; + put ',tx_to=''31DEC5999:23:59:59''dt'; + put ',libref="&lib"'; + put ',dsn=''MPE_EMAILS'''; + put ',num_of_approvals_required=1'; + put ',loadtype=''TXTEMPORAL'''; + put ',buskey=''USER_NAME'''; + put ',notes=''Primary Emails Table (backup is metadata)'''; + put ',var_txfrom=''TX_FROM'''; + put ',var_txto=''TX_TO'''; + put ';'; + put 'insert into &lib..mpe_tables'; + put 'set tx_from=0'; + put ',tx_to=''31DEC5999:23:59:59''dt'; + put ',libref="&lib"'; + put ',dsn=''MPE_CONFIG'''; + put ',num_of_approvals_required=1'; + put ',loadtype=''TXTEMPORAL'''; + put ',buskey=''VAR_SCOPE VAR_NAME'''; + put ',notes=''Configuration variables for Data Controller'''; + put ',var_txfrom=''TX_FROM'''; + put ',var_txto=''TX_TO'''; + put ';'; + put 'insert into &lib..mpe_tables'; + put 'set tx_from=0'; + put ',tx_to=''31DEC5999:23:59:59''dt'; + put ',libref="&lib"'; + put ',dsn=''MPE_ALERTS'''; + put ',num_of_approvals_required=1'; + put ',loadtype=''TXTEMPORAL'''; + put ',buskey=''ALERT_EVENT ALERT_LIB ALERT_DS ALERT_USER'''; + put ',notes=''Configuration for alert email events'''; + put ',var_txfrom=''TX_FROM'''; + put ',var_txto=''TX_TO'''; + put ';'; + put 'insert into &lib..mpe_tables'; + put 'set tx_from=0'; + put ',tx_to=''31DEC5999:23:59:59''dt'; + put ',libref="&lib"'; + put ',dsn=''MPE_GROUPS'''; + put ',num_of_approvals_required=1'; + put ',loadtype=''TXTEMPORAL'''; + put ',buskey=''GROUP_NAME USER_NAME'''; + put ',notes=''Configuration for additional groups within Data Controller'''; + put ',var_txfrom=''TX_FROM'''; + put ',var_txto=''TX_TO'''; + put ';'; + put 'insert into &lib..mpe_tables'; + put 'set tx_from=0'; + put ',tx_to=''31DEC5999:23:59:59''dt'; + put ',libref="&lib"'; + put ',dsn=''MPE_VALIDATIONS'''; + put ',num_of_approvals_required=1'; + put ',loadtype=''TXTEMPORAL'''; + put ',buskey=''BASE_LIB BASE_DS BASE_COL RULE_TYPE'''; + put ',notes=''Configuration of data quality rules in Editor component'''; + put ',var_txfrom=''TX_FROM'''; + put ',var_txto=''TX_TO'''; + put ',post_edit_hook=''services/hooks/mpe_validations_postedit'''; + put ';'; + put 'insert into &lib..mpe_tables'; + put 'set tx_from=0'; + put ',tx_to=''31DEC5999:23:59:59''dt'; + put ',libref="&lib"'; + put ',dsn=''MPE_DATADICTIONARY'''; + put ',num_of_approvals_required=1'; + put ',loadtype=''TXTEMPORAL'''; + put ',buskey=''DD_TYPE DD_SOURCE'''; + put ',notes=''Configuration of data dictionary'''; + put ',var_txfrom=''TX_FROM'''; + put ',var_txto=''TX_TO'''; + put ';'; + put 'insert into &lib..mpe_tables'; + put 'set tx_from=0'; + put ',tx_to=''31DEC5999:23:59:59''dt'; + put ',libref="&lib"'; + put ',dsn=''MPE_EXCEL_CONFIG'''; + put ',num_of_approvals_required=1'; + put ',loadtype=''TXTEMPORAL'''; + put ',buskey=''XL_LIBREF XL_TABLE XL_COLUMN'''; + put ',notes=''Configuration of the excel import rules'''; + put ',var_txfrom=''TX_FROM'''; + put ',var_txto=''TX_TO'''; + put ';'; + put 'insert into &lib..mpe_tables'; + put 'set tx_from=0'; + put ',tx_to=''31DEC5999:23:59:59''dt'; + put ',libref="&lib"'; + put ',dsn=''MPE_ROW_LEVEL_SECURITY'''; + put ',num_of_approvals_required=1'; + put ',loadtype=''TXTEMPORAL'''; + put ',buskey=''RLS_RK'''; + put ',notes=''Configuration of Row Level Security'''; + put ',var_txfrom=''TX_FROM'''; + put ',var_txto=''TX_TO'''; + put ',rk_underlying=''RLS_SCOPE RLS_GROUP RLS_LIBREF RLS_TABLE RLS_GROUP_LOGIC '''; + put '!!''RLS_SUBGROUP_LOGIC RLS_SUBGROUP_ID RLS_VARIABLE_NM RLS_OPERATOR_NM '''; + put '!!''RLS_RAW_VALUE '''; + put ',post_edit_hook=''services/hooks/mpe_row_level_security_postedit'''; + put ';'; + put '/* mpe_validations */'; + put 'insert into &lib..MPE_VALIDATIONS set'; + put 'tx_from=0'; + put ',base_lib="&lib"'; + put ',base_ds="MPE_COLUMN_LEVEL_SECURITY"'; + put ',base_col="CLS_SCOPE"'; + put ',rule_type=''CASE'''; + put ',rule_value=''UPCASE'''; + put ',rule_active=1'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..MPE_VALIDATIONS set'; + put 'tx_from=0'; + put ',base_lib="&lib"'; + put ',base_ds="MPE_COLUMN_LEVEL_SECURITY"'; + put ',base_col="CLS_LIBREF"'; + put ',rule_type=''CASE'''; + put ',rule_value=''UPCASE'''; + put ',rule_active=1'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..MPE_VALIDATIONS set'; + put 'tx_from=0'; + put ',base_lib="&lib"'; + put ',base_ds="MPE_COLUMN_LEVEL_SECURITY"'; + put ',base_col="CLS_LIBREF"'; + put ',rule_type=''SOFTSELECT_HOOK'''; + put ',rule_value="services/validations/libraries_all"'; + put ',rule_active=1'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..MPE_VALIDATIONS set'; + put 'tx_from=0'; + put ',base_lib="&lib"'; + put ',base_ds="MPE_COLUMN_LEVEL_SECURITY"'; + put ',base_col="CLS_TABLE"'; + put ',rule_type=''CASE'''; + put ',rule_value=''UPCASE'''; + put ',rule_active=1'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..MPE_VALIDATIONS set'; + put 'tx_from=0'; + put ',base_lib="&lib"'; + put ',base_ds="MPE_COLUMN_LEVEL_SECURITY"'; + put ',base_col="CLS_TABLE"'; + put ',rule_type=''SOFTSELECT_HOOK'''; + put ',rule_value="services/validations/tables_all"'; + put ',rule_active=1'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..MPE_VALIDATIONS set'; + put 'tx_from=0'; + put ',base_lib="&lib"'; + put ',base_ds="MPE_COLUMN_LEVEL_SECURITY"'; + put ',base_col="CLS_VARIABLE_NM"'; + put ',rule_type=''CASE'''; + put ',rule_value=''UPCASE'''; + put ',rule_active=1'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..MPE_VALIDATIONS set'; + put 'tx_from=0'; + put ',base_lib="&lib"'; + put ',base_ds="MPE_COLUMN_LEVEL_SECURITY"'; + put ',base_col="CLS_VARIABLE_NM"'; + put ',rule_type=''SOFTSELECT_HOOK'''; + put ',rule_value="services/validations/columns_in_libds"'; + put ',rule_active=1'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..MPE_VALIDATIONS set'; + put 'tx_from=0'; + put ',base_lib="&lib"'; + put ',base_ds="MPE_COLUMN_LEVEL_SECURITY"'; + put ',base_col="CLS_ACTIVE"'; + put ',rule_type=''MAXVAL'''; + put ',rule_value=''1'''; + put ',rule_active=1'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..MPE_VALIDATIONS set'; + put 'tx_from=0'; + put ',base_lib="&lib"'; + put ',base_ds="MPE_COLUMN_LEVEL_SECURITY"'; + put ',base_col="CLS_HIDE"'; + put ',rule_type=''MAXVAL'''; + put ',rule_value=''1'''; + put ',rule_active=1'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..MPE_VALIDATIONS set'; + put 'tx_from=0'; + put ',base_lib="&lib"'; + put ',base_ds="MPE_COLUMN_LEVEL_SECURITY"'; + put ',base_col="CLS_GROUP"'; + put ',rule_type=''SOFTSELECT_HOOK'''; + put ',rule_value="services/validations/sas_groups"'; + put ',rule_active=1'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..MPE_VALIDATIONS set'; + put 'tx_from=0'; + put ',base_lib="&lib"'; + put ',base_ds="MPE_ALERTS"'; + put ',base_col="ALERT_LIB"'; + put ',rule_type=''HARDSELECT_HOOK'''; + put ',rule_value="services/validations/mpe_alerts.alert_lib"'; + put ',rule_active=1'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..MPE_VALIDATIONS set'; + put 'tx_from=0'; + put ',base_lib="&lib"'; + put ',base_ds="MPE_TABLES"'; + put ',base_col="LIBREF"'; + put ',rule_type=''CASE'''; + put ',rule_value=''UPCASE'''; + put ',rule_active=1'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..MPE_VALIDATIONS set'; + put 'tx_from=0'; + put ',base_lib="&lib"'; + put ',base_ds="MPE_TABLES"'; + put ',base_col="DSN"'; + put ',rule_type=''CASE'''; + put ',rule_value=''UPCASE'''; + put ',rule_active=1'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..MPE_VALIDATIONS set'; + put 'tx_from=0'; + put ',base_lib="&lib"'; + put ',base_ds="MPE_TABLES"'; + put ',base_col="LIBREF"'; + put ',rule_type=''NOTNULL'''; + put ',rule_value='' '''; + put ',rule_active=1'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..MPE_VALIDATIONS set'; + put 'tx_from=0'; + put ',base_lib="&lib"'; + put ',base_ds="MPE_TABLES"'; + put ',base_col="DSN"'; + put ',rule_type=''NOTNULL'''; + put ',rule_value='' '''; + put ',rule_active=1'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..MPE_VALIDATIONS set'; + put 'tx_from=0'; + put ',base_lib="&lib"'; + put ',base_ds="MPE_TABLES"'; + put ',base_col="NUM_OF_APPROVALS_REQUIRED"'; + put ',rule_type=''MINVAL'''; + put ',rule_value=''1'''; + put ',rule_active=1'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..MPE_VALIDATIONS set'; + put 'tx_from=0'; + put ',base_lib="&lib"'; + put ',base_ds="MPE_TABLES"'; + put ',base_col="BUSKEY"'; + put ',rule_type=''CASE'''; + put ',rule_value=''UPCASE'''; + put ',rule_active=1'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..MPE_VALIDATIONS set'; + put 'tx_from=0'; + put ',base_lib="&lib"'; + put ',base_ds="MPE_TABLES"'; + put ',base_col="BUSKEY"'; + put ',rule_type=''NOTNULL'''; + put ',rule_value=" "'; + put ',rule_active=1'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..MPE_VALIDATIONS set'; + put 'tx_from=0'; + put ',base_lib="&lib"'; + put ',base_ds="MPE_TABLES"'; + put ',base_col="VAR_TXFROM"'; + put ',rule_type=''CASE'''; + put ',rule_value=''UPCASE'''; + put ',rule_active=1'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..MPE_VALIDATIONS set'; + put 'tx_from=0'; + put ',base_lib="&lib"'; + put ',base_ds="MPE_TABLES"'; + put ',base_col="VAR_TXTO"'; + put ',rule_type=''CASE'''; + put ',rule_value=''UPCASE'''; + put ',rule_active=1'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..MPE_VALIDATIONS set'; + put 'tx_from=0'; + put ',base_lib="&lib"'; + put ',base_ds="MPE_TABLES"'; + put ',base_col="VAR_BUSFROM"'; + put ',rule_type=''CASE'''; + put ',rule_value=''UPCASE'''; + put ',rule_active=1'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..MPE_VALIDATIONS set'; + put 'tx_from=0'; + put ',base_lib="&lib"'; + put ',base_ds="MPE_TABLES"'; + put ',base_col="VAR_BUSTO"'; + put ',rule_type=''CASE'''; + put ',rule_value=''UPCASE'''; + put ',rule_active=1'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..MPE_VALIDATIONS set'; + put 'tx_from=0'; + put ',base_lib="&lib"'; + put ',base_ds="MPE_TABLES"'; + put ',base_col="VAR_PROCESSED"'; + put ',rule_type=''CASE'''; + put ',rule_value=''UPCASE'''; + put ',rule_active=1'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..MPE_VALIDATIONS set'; + put 'tx_from=0'; + put ',base_lib="&lib"'; + put ',base_ds="MPE_SECURITY"'; + put ',base_col="LIBREF"'; + put ',rule_type=''HARDSELECT'''; + put ',rule_value="&lib..MPE_TABLES.LIBREF"'; + put ',rule_active=1'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..MPE_VALIDATIONS set'; + put 'tx_from=0'; + put ',base_lib="&lib"'; + put ',base_ds="MPE_SECURITY"'; + put ',base_col="DSN"'; + put ',rule_type=''SOFTSELECT'''; + put ',rule_value="&lib..MPE_TABLES.DSN"'; + put ',rule_active=1'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..MPE_VALIDATIONS set'; + put 'tx_from=0'; + put ',base_lib="&lib"'; + put ',base_ds="MPE_SECURITY"'; + put ',base_col="SAS_GROUP"'; + put ',rule_type=''SOFTSELECT_HOOK'''; + put ',rule_value="services/validations/sas_groups"'; + put ',rule_active=1'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..MPE_VALIDATIONS set'; + put 'tx_from=0'; + put ',base_lib="&lib"'; + put ',base_ds="MPE_VALIDATIONS"'; + put ',base_col="BASE_LIB"'; + put ',rule_type=''SOFTSELECT_HOOK'''; + put ',rule_value="services/validations/libraries_editable"'; + put ',rule_active=1'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..MPE_VALIDATIONS set'; + put 'tx_from=0'; + put ',base_lib="&lib"'; + put ',base_ds="MPE_VALIDATIONS"'; + put ',base_col="BASE_DS"'; + put ',rule_type=''SOFTSELECT_HOOK'''; + put ',rule_value="services/validations/tables_editable"'; + put ',rule_active=1'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..MPE_VALIDATIONS set'; + put 'tx_from=0'; + put ',base_lib="&lib"'; + put ',base_ds="MPE_VALIDATIONS"'; + put ',base_col="BASE_COL"'; + put ',rule_type=''SOFTSELECT_HOOK'''; + put ',rule_value="services/validations/columns_in_libds"'; + put ',rule_active=1'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..MPE_VALIDATIONS set'; + put 'tx_from=0'; + put ',base_lib="&lib"'; + put ',base_ds="MPE_VALIDATIONS"'; + put ',base_col="RULE_ACTIVE"'; + put ',rule_type=''MINVAL'''; + put ',rule_value="0"'; + put ',rule_active=1'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..MPE_VALIDATIONS set'; + put 'tx_from=0'; + put ',base_lib="&lib"'; + put ',base_ds="MPE_VALIDATIONS"'; + put ',base_col="RULE_ACTIVE"'; + put ',rule_type=''MAXVAL'''; + put ',rule_value="1"'; + put ',rule_active=1'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..MPE_VALIDATIONS set'; + put 'tx_from=0'; + put ',base_lib="&lib"'; + put ',base_ds="MPE_EXCEL_CONFIG"'; + put ',base_col="XL_LIBREF"'; + put ',rule_type=''SOFTSELECT_HOOK'''; + put ',rule_value="services/validations/libraries_editable"'; + put ',rule_active=1'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..MPE_VALIDATIONS set'; + put 'tx_from=0'; + put ',base_lib="&lib"'; + put ',base_ds="MPE_EXCEL_CONFIG"'; + put ',base_col="XL_TABLE"'; + put ',rule_type=''SOFTSELECT_HOOK'''; + put ',rule_value="services/validations/tables_editable"'; + put ',rule_active=1'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..MPE_VALIDATIONS set'; + put 'tx_from=0'; + put ',base_lib="&lib"'; + put ',base_ds="MPE_EXCEL_CONFIG"'; + put ',base_col="XL_COLUMN"'; + put ',rule_type=''SOFTSELECT_HOOK'''; + put ',rule_value="services/validations/columns_in_libds"'; + put ',rule_active=1'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..MPE_VALIDATIONS set'; + put 'tx_from=0'; + put ',base_lib="&lib"'; + put ',base_ds="MPE_TABLES"'; + put ',base_col="LIBREF"'; + put ',rule_type=''SOFTSELECT_HOOK'''; + put ',rule_value="services/validations/libraries_all"'; + put ',rule_active=1'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..MPE_VALIDATIONS set'; + put 'tx_from=0'; + put ',base_lib="&lib"'; + put ',base_ds="MPE_TABLES"'; + put ',base_col="DSN"'; + put ',rule_type=''SOFTSELECT_HOOK'''; + put ',rule_value="services/validations/mpe_tables.dsn"'; + put ',rule_active=1'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..MPE_VALIDATIONS set'; + put 'tx_from=0'; + put ',base_lib="&lib"'; + put ',base_ds="MPE_TABLES"'; + put ',base_col="VAR_TXFROM"'; + put ',rule_type=''SOFTSELECT_HOOK'''; + put ',rule_value="services/validations/columns_in_libds"'; + put ',rule_active=1'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..MPE_VALIDATIONS set'; + put 'tx_from=0'; + put ',base_lib="&lib"'; + put ',base_ds="MPE_TABLES"'; + put ',base_col="VAR_TXTO"'; + put ',rule_type=''SOFTSELECT_HOOK'''; + put ',rule_value="services/validations/columns_in_libds"'; + put ',rule_active=1'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..MPE_VALIDATIONS set'; + put 'tx_from=0'; + put ',base_lib="&lib"'; + put ',base_ds="MPE_TABLES"'; + put ',base_col="VAR_BUSFROM"'; + put ',rule_type=''SOFTSELECT_HOOK'''; + put ',rule_value="services/validations/columns_in_libds"'; + put ',rule_active=1'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..MPE_VALIDATIONS set'; + put 'tx_from=0'; + put ',base_lib="&lib"'; + put ',base_ds="MPE_TABLES"'; + put ',base_col="VAR_BUSTO"'; + put ',rule_type=''SOFTSELECT_HOOK'''; + put ',rule_value="services/validations/columns_in_libds"'; + put ',rule_active=1'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..MPE_VALIDATIONS set'; + put 'tx_from=0'; + put ',base_lib="&lib"'; + put ',base_ds="MPE_TABLES"'; + put ',base_col="VAR_PROCESSED"'; + put ',rule_type=''SOFTSELECT_HOOK'''; + put ',rule_value="services/validations/columns_in_libds"'; + put ',rule_active=1'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..MPE_VALIDATIONS set'; + put 'tx_from=0'; + put ',base_lib="&lib"'; + put ',base_ds="MPE_SELECTBOX"'; + put ',base_col="SELECT_LIB"'; + put ',rule_type=''SOFTSELECT_HOOK'''; + put ',rule_value="services/validations/libraries_editable"'; + put ',rule_active=1'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..MPE_VALIDATIONS set'; + put 'tx_from=0'; + put ',base_lib="&lib"'; + put ',base_ds="MPE_SELECTBOX"'; + put ',base_col="SELECT_DS"'; + put ',rule_type=''SOFTSELECT_HOOK'''; + put ',rule_value="services/validations/tables_editable"'; + put ',rule_active=1'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..MPE_VALIDATIONS set'; + put 'tx_from=0'; + put ',base_lib="&lib"'; + put ',base_ds="MPE_SELECTBOX"'; + put ',base_col="BASE_COLUMN"'; + put ',rule_type=''SOFTSELECT_HOOK'''; + put ',rule_value="services/validations/columns_in_libds"'; + put ',rule_active=1'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..MPE_VALIDATIONS set'; + put 'tx_from=0'; + put ',base_lib="&lib"'; + put ',base_ds="MPE_ROW_LEVEL_SECURITY"'; + put ',base_col="RLS_GROUP"'; + put ',rule_type=''SOFTSELECT_HOOK'''; + put ',rule_value="services/validations/sas_groups"'; + put ',rule_active=1'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..MPE_VALIDATIONS set'; + put 'tx_from=0'; + put ',base_lib="&lib"'; + put ',base_ds="MPE_ROW_LEVEL_SECURITY"'; + put ',base_col="RLS_LIBREF"'; + put ',rule_type=''SOFTSELECT_HOOK'''; + put ',rule_value="services/validations/libraries_all"'; + put ',rule_active=1'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..MPE_VALIDATIONS set'; + put 'tx_from=0'; + put ',base_lib="&lib"'; + put ',base_ds="MPE_ROW_LEVEL_SECURITY"'; + put ',base_col="RLS_TABLE"'; + put ',rule_type=''SOFTSELECT_HOOK'''; + put ',rule_value="services/validations/tables_all"'; + put ',rule_active=1'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..MPE_VALIDATIONS set'; + put 'tx_from=0'; + put ',base_lib="&lib"'; + put ',base_ds="MPE_ROW_LEVEL_SECURITY"'; + put ',base_col="RLS_SUBGROUP_ID"'; + put ',rule_type=''MINVAL'''; + put ',rule_value=''0'''; + put ',rule_active=1'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..MPE_VALIDATIONS set'; + put 'tx_from=0'; + put ',base_lib="&lib"'; + put ',base_ds="MPE_ROW_LEVEL_SECURITY"'; + put ',base_col="RLS_VARIABLE_NM"'; + put ',rule_type=''SOFTSELECT_HOOK'''; + put ',rule_value="services/validations/columns_in_libds"'; + put ',rule_active=1'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..MPE_VALIDATIONS set'; + put 'tx_from=0'; + put ',base_lib="&lib"'; + put ',base_ds="MPE_X_TEST"'; + put ',base_col="SOME_NUM"'; + put ',rule_type=''HARDSELECT_HOOK'''; + put ',rule_value="services/validations/mpe_x_test.some_num"'; + put ',rule_active=1'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..MPE_VALIDATIONS set'; + put 'tx_from=0'; + put ',base_lib="&lib"'; + put ',base_ds="MPE_EXCEL_CONFIG"'; + put ',base_col="XL_ACTIVE"'; + put ',rule_type=''MINVAL'''; + put ',rule_value=''0'''; + put ',rule_active=1'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..MPE_VALIDATIONS set'; + put 'tx_from=0'; + put ',base_lib="&lib"'; + put ',base_ds="MPE_EXCEL_CONFIG"'; + put ',base_col="XL_ACTIVE"'; + put ',rule_type=''MAXVAL'''; + put ',rule_value=''1'''; + put ',rule_active=1'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put '/**'; + put '* MPE_X_TEST'; + put '*/'; + put 'insert into &lib..mpe_x_test'; + put 'set primary_key_field=0'; + put ',some_char=''this is dummy data'''; + put ',some_dropdown=''Option 1'''; + put ',some_num=42'; + put ',some_date=42'; + put ',some_datetime=42'; + put ',some_time=42'; + put ',some_shortnum=3'; + put ',some_bestnum=44;'; + put 'insert into &lib..mpe_x_test'; + put 'set primary_key_field=1'; + put ',some_char=''more dummy data'''; + put ',some_dropdown=''Option 2'''; + put ',some_num=42'; + put ',some_date=42'; + put ',some_datetime=42'; + put ',some_time=422'; + put ',some_shortnum=3'; + put ',some_bestnum=44;'; + put 'insert into &lib..mpe_x_test'; + put 'set primary_key_field=2'; + put ',some_char=''even more dummy data'''; + put ',some_dropdown=''Option 3'''; + put ',some_num=42'; + put ',some_date=42'; + put ',some_datetime=42'; + put ',some_time=142'; + put ',some_shortnum=3'; + put ',some_bestnum=44;'; + put 'insert into &lib..mpe_x_test'; + put 'set primary_key_field=3'; + put ',some_char=repeat(''It was a dark and stormy night. The wind was blowing'''; + put '!!'' a gale! The captain said to his mate - mate, tell us a tale. And'''; + put '!!'' this, is the tale he told: '',3)'; + put ',some_dropdown=''Option 2'''; + put ',some_num=1613.001'; + put ',some_date=423'; + put ',some_datetime=423'; + put ',some_time=44'; + put ',some_shortnum=3'; + put ',some_bestnum=44;'; + put 'insert into &lib..mpe_x_test'; + put 'set primary_key_field=4'; + put ',some_char=''if you can fill the unforgiving minute'''; + put ',some_dropdown=''Option 1'''; + put ',some_num=1613.001123456'; + put ',some_date=4231'; + put ',some_datetime=423123123'; + put ',some_time=412'; + put ',some_shortnum=3'; + put ',some_bestnum=44;'; + put '%do x=10 %to 500;'; + put 'insert into &lib..mpe_x_test'; + put 'set primary_key_field=10&x'; + put ',some_char="&x bottles of beer on the wall"'; + put ',some_dropdown=''Option 1'''; + put ',some_num=ranuni(0)'; + put ',some_date=round(ranuni(0)*1000,1)'; + put ',some_datetime=round(ranuni(0)*50000,1)'; + put ',some_time=round(ranuni(0)*100,1)'; + put ',some_shortnum=round(ranuni(0)*100,1)'; + put ',some_bestnum=round(ranuni(0)*100,1);'; + put '%end;'; + put '%mend mpe_makedata;'; + put '/** @cond */'; + put '%macro mf_existfeature(feature'; + put ')/*/STORE SOURCE*/;'; + put '%let feature=%upcase(&feature);'; + put '%local platform;'; + put '%let platform=%mf_getplatform();'; + put '%if &feature= %then %do;'; + put '%put No feature was requested for detection;'; + put '%end;'; + put '%else %if &feature=COLCONSTRAINTS %then %do;'; + put '%if "%substr(&sysver,1,1)"="4" or "%substr(&sysver,1,1)"="5" %then 0;'; + put '%else 1;'; + put '%end;'; + put '%else %if &feature=PROCLUA %then %do;'; + put '/* https://blogs.sas.com/content/sasdummy/2015/08/03/using-lua-within-your-sas-programs */'; + put '%if &platform=SASVIYA %then 1;'; + put '%else %if "&sysver"="9.2" or "&sysver"="9.3" %then 0;'; + put '%else %if "&SYSVLONG" < "9.04.01M3" %then 0;'; + put '%else 1;'; + put '%end;'; + put '%else %if &feature=DBMS_MEMTYPE %then %do;'; + put '/* does dbms_memtype exist in dictionary.tables? */'; + put '%if "%substr(&sysver,1,1)"="4" or "%substr(&sysver,1,1)"="5" %then 0;'; + put '%else 1;'; + put '%end;'; + put '%else %if &feature=EXPORTXLS %then %do;'; + put '/* is it possible to PROC EXPORT an excel file? */'; + put '%if "%substr(&sysver,1,1)"="4" or "%substr(&sysver,1,1)"="5" %then 1;'; + put '%else %if %sysfunc(sysprod(SAS/ACCESS Interface to PC Files)) = 1 %then 1;'; + put '%else 0;'; + put '%end;'; + put '%else %do;'; + put '-1'; + put '%put &sysmacroname: &feature not found;'; + put '%end;'; + put '%mend mf_existfeature;'; + put '/** @endcond */'; + put '%macro mpe_makedatamodel(lib=);'; + put '%if &syscc ne 0 %then %do;'; + put '%put syscc=&syscc exiting &sysmacroname;'; + put '%return;'; + put '%end;'; + put '%local notnull;'; + put '%if %mf_existfeature(COLCONSTRAINTS)=1 %then %let notnull=not null;'; + put '%put &=notnull;'; + put 'proc sql;'; + put 'create table &lib..mpe_alerts('; + put 'tx_from num format=datetime19.3,'; + put 'alert_event char(20),'; + put 'alert_lib char(8),'; + put 'alert_ds char(32),'; + put 'alert_user char(100) ,'; + put 'tx_to num ¬null format=datetime19.3'; + put ');quit;'; + put 'proc datasets lib=&lib noprint;'; + put 'modify mpe_alerts;'; + put 'index create'; + put 'pk_mpealerts=(tx_from alert_event alert_lib alert_ds alert_user)'; + put '/nomiss unique;'; + put 'quit;'; + put 'proc sql;'; + put 'create table &lib..mpe_audit('; + put 'load_ref char(36) label=''unique load reference'','; + put 'libref char(8) label=''Library Reference (8 chars)'','; + put 'dsn char(32) label=''Dataset Name (32 chars)'','; + put 'key_hash char(32) label='; + put '''MD5 Hash of primary key values (pipe seperated)'','; + put 'tgtvar_nm char(32) label=''Target variable name (32 chars)'','; + put 'move_type char(1) label=''Either (A)ppended, (D)eleted or (M)odified'','; + put 'processed_dttm num format=E8601DT26.6 label=''Processed at timestamp'','; + put 'is_pk num label=''Is Primary Key Field? (1/0)'','; + put 'is_diff num label='; + put '''Did value change? (1/0/-1). Always -1 for appends and deletes.'','; + put 'tgtvar_type char(1) label=''Either (C)haracter or (N)umeric'','; + put 'oldval_num num format=best32. label=''Old (numeric) value'','; + put 'newval_num num format=best32. label=''New (numeric) value'','; + put 'oldval_char char(32765) label=''Old (character) value'','; + put 'newval_char char(32765) label=''New (character) value'''; + put ');quit;'; + put 'proc datasets lib=&lib noprint;'; + put 'modify mpe_audit;'; + put 'index create'; + put 'pk_mpe_audit=(load_ref libref dsn key_hash tgtvar_nm)'; + put '/nomiss unique;'; + put 'quit;'; + put 'proc sql;'; + put 'create table &lib..mpe_column_level_security('; + put 'tx_from num ¬null format=datetime19.3,'; + put 'tx_to num ¬null format=datetime19.3,'; + put 'CLS_SCOPE char(4) ¬null,'; + put 'CLS_GROUP char(64) ¬null,'; + put 'CLS_LIBREF char(8) ¬null,'; + put 'CLS_TABLE char(32) ¬null,'; + put 'CLS_VARIABLE_NM char(32) ¬null,'; + put 'CLS_ACTIVE num ¬null,'; + put 'CLS_HIDE num'; + put ');quit;'; + put 'proc datasets lib=&lib noprint;'; + put 'modify mpe_column_level_security;'; + put 'index create'; + put 'pk_mpe_column_level_security='; + put '(tx_to CLS_SCOPE CLS_GROUP CLS_LIBREF CLS_TABLE CLS_VARIABLE_NM)'; + put '/nomiss unique;'; + put 'quit;'; + put 'proc sql;'; + put 'create table &lib..mpe_config('; + put 'tx_from num ¬null format=datetime19.3'; + put ',tx_to num ¬null format=datetime19.3'; + put ',var_scope varchar(10) ¬null'; + put ',var_name varchar(32) ¬null'; + put ',var_value varchar(5000)'; + put ',var_active num'; + put ',var_desc varchar(300)'; + put ');quit;'; + put 'proc datasets lib=&lib noprint;'; + put 'modify mpe_config;'; + put 'index create'; + put 'pk_mpe_config=(tx_to var_scope var_name)'; + put '/nomiss unique;'; + put 'quit;'; + put 'proc sql;'; + put 'create table &lib..mpe_datacatalog_libs('; + put 'TX_FROM num ¬null format=datetime19.3,'; + put 'TX_TO num ¬null format=datetime19.3,'; + put 'libref char(8) label=''Library Ref'','; + put 'engine char(32) label=''Library Engine'','; + put 'libname char(256) format=$256. label=''Library Name'','; + put 'paths char(8192) label=''Library Paths'','; + put 'perms char(500) label=''Library Permissions (if BASE)'','; + put 'owners char(500) label=''Library Owners (if BASE)'','; + put 'schemas char(500) label=''Library Schemas (if DB)'','; + put 'libid char(17) label=''LibraryId'''; + put ');quit;'; + put 'proc datasets lib=&lib noprint;'; + put 'modify mpe_datacatalog_libs;'; + put 'index create'; + put 'pk_mpe_datacatalog_libs=(libref tx_to)'; + put '/nomiss unique;'; + put 'quit;'; + put 'proc sql;'; + put 'create table &lib..mpe_datacatalog_TABS('; + put 'TX_FROM num ¬null format=datetime19.3,'; + put 'TX_TO num ¬null format=datetime19.3,'; + put 'libref char(8) label=''Library Name'','; + put 'dsn char(64) label=''Member Name'','; + put 'memtype char(8) label=''Member Type'','; + put 'dbms_memtype char(32) label=''DBMS Member Type'','; + put 'memlabel char(512) label=''Data Set Label'','; + put 'typemem char(8) label=''Data Set Type'','; + put 'nvar num label=''Number of Variables'','; + put 'compress char(8) label=''Compression Routine'','; + put 'pk_fields char(512)'; + put 'label=''Primary Key Fields (identified by being in a constraint that is both Unique and Not Null)'''; + put ');quit;'; + put 'proc datasets lib=&lib noprint;'; + put 'modify mpe_datacatalog_TABS;'; + put 'index create'; + put 'pk_mpe_datacatalog_TABS=(libref dsn tx_to)'; + put '/nomiss unique;'; + put 'quit;'; + put 'proc sql;'; + put 'create table &lib..mpe_datacatalog_vars('; + put 'TX_FROM num ¬null format=datetime19.3,'; + put 'TX_TO num ¬null format=datetime19.3,'; + put 'libref char(8) label=''Library Name'','; + put 'dsn char(64) label=''Table Name'','; + put 'name char(64) label=''Column Name'','; + put 'memtype char(8) label=''Member Type'','; + put 'type char(16) label=''Column Type'','; + put 'length num label=''Column Length'','; + put 'varnum num label=''Column Number in Table'','; + put 'label char(512) label=''Column Label'','; + put 'format char(49) label=''Column Format'','; + put 'idxusage char(9) label=''Column Index Type'','; + put 'notnull char(3) label=''Not NULL?'','; + put 'pk_ind num label=''Primary Key Indicator (1=Primary Key field)'''; + put ');quit;'; + put 'proc datasets lib=&lib noprint;'; + put 'modify mpe_datacatalog_vars;'; + put 'index create'; + put 'pk_mpe_datacatalog_vars=(libref dsn name tx_to)'; + put '/nomiss unique;'; + put 'quit;'; + put 'proc sql;'; + put 'create table &lib..mpe_datastatus_libs('; + put 'TX_FROM num ¬null format=datetime19.3,'; + put 'TX_TO num ¬null format=datetime19.3,'; + put 'libref char(8) label=''Library Name'','; + put 'libsize num format=SIZEKMG. label=''Size of library'','; + put 'table_cnt num label=''Number of Tables'''; + put ');quit;'; + put 'proc datasets lib=&lib noprint;'; + put 'modify mpe_datastatus_libs;'; + put 'index create'; + put 'pk_mpe_datastatus_libs=(libref tx_to)'; + put '/nomiss unique;'; + put 'quit;'; + put 'proc sql;'; + put 'create table &lib..mpe_datastatus_tabs('; + put 'TX_FROM num ¬null format=datetime19.3,'; + put 'TX_TO num ¬null format=datetime19.3,'; + put 'libref char(8) label=''Library Name'','; + put 'dsn char(64) label=''Member Name'','; + put 'filesize num format=SIZEKMG. label=''Size of file'','; + put 'crdate num format=DATETIME. informat=DATETIME. label=''Date Created'','; + put 'modate num format=DATETIME. informat=DATETIME. label=''Date Modified'','; + put 'nobs num label=''Number of Physical (Actual, inc. deleted) Observations'''; + put ');quit;'; + put 'proc datasets lib=&lib noprint;'; + put 'modify mpe_datastatus_tabs;'; + put 'index create'; + put 'pk_mpe_datastatus_tabs=(libref dsn tx_to)'; + put '/nomiss unique;'; + put 'quit;'; + put 'proc sql;'; + put 'create table &lib..mpe_datadictionary'; + put '('; + put 'TX_FROM num ¬null format=datetime19.3,'; + put 'TX_TO num ¬null format=datetime19.3,'; + put 'DD_TYPE char(16),'; + put 'DD_SOURCE char(1024),'; + put 'DD_SHORTDESC char(256),'; + put 'DD_LONGDESC char(32767),'; + put 'DD_OWNER char(128),'; + put 'DD_RESPONSIBLE char(128),'; + put 'DD_SENSITIVITY char(64)'; + put ');quit;'; + put 'proc datasets lib=&lib noprint;'; + put 'modify mpe_datadictionary;'; + put 'index create'; + put 'pk_mpe_datadictionary=(tx_to dd_type dd_source)'; + put '/nomiss unique;'; + put 'quit;'; + put 'proc sql;'; + put 'create table &lib..mpe_dataloads('; + put 'libref varchar(8) ¬null,'; + put 'dsn varchar(32) ¬null,'; + put 'etlsource varchar(100) ¬null,'; + put 'loadtype varchar(20) ¬null,'; + put 'changed_records int,'; + put 'new_records int,'; + put 'deleted_records int,'; + put 'duration num,'; + put 'user_nm varchar(50) ¬null,'; + put 'processed_dttm num format=datetime19.3,'; + put 'mac_ver varchar(5)'; + put ');quit;'; + put 'proc datasets lib=&lib noprint;'; + put 'modify mpe_dataloads;'; + put 'index create'; + put 'pk_mpe_dataloads=(processed_dttm libref dsn etlsource)'; + put '/nomiss unique;'; + put 'quit;'; + put 'proc sql;'; + put 'create table &lib..mpe_emails('; + put 'tx_from num ¬null format=datetime19.3,'; + put 'tx_to num ¬null format=datetime19.3,'; + put 'user_name char(50) ¬null,'; + put 'user_displayname char(100),'; + put 'user_email char(100) ¬null'; + put ');quit;'; + put 'proc datasets lib=&lib noprint;'; + put 'modify mpe_emails;'; + put 'index create'; + put 'pk_mpe_emails=(tx_to user_name)'; + put '/nomiss unique;'; + put 'quit;'; + put 'proc sql;'; + put 'create table &lib..mpe_excel_config('; + put 'tx_from num ¬null format=datetime19.3,'; + put 'tx_to num ¬null format=datetime19.3,'; + put 'xl_libref char(8),'; + put 'xl_table char(32),'; + put 'xl_column char(32),'; + put 'xl_rule char(32),'; + put 'xl_active num'; + put ');quit;'; + put 'proc datasets lib=&lib noprint;'; + put 'modify mpe_excel_config;'; + put 'index create'; + put 'pk_mpe_excel_config=(tx_to xl_libref xl_table xl_column)'; + put '/nomiss unique;'; + put 'quit;'; + put 'proc sql;'; + put 'create table &lib..mpe_filteranytable('; + put 'filter_rk num ¬null,'; + put 'filter_hash char(32) ¬null,'; + put 'filter_table char(41) ¬null,'; + put 'processed_dttm num ¬null format=datetime19.'; + put ');quit;'; + put 'proc datasets lib=&lib noprint;'; + put 'modify mpe_filteranytable;'; + put 'index create filter_rk /nomiss unique;'; + put 'quit;'; + put 'proc sql;'; + put 'create table &lib..mpe_filtersource('; + put 'filter_hash char(32) ¬null,'; + put 'filter_line num ¬null,'; + put 'group_logic char(3) ¬null,'; + put 'subgroup_logic char(3) ¬null,'; + put 'subgroup_id num ¬null,'; + put 'variable_nm varchar(32) ¬null,'; + put 'operator_nm varchar(12) ¬null,'; + put 'raw_value varchar(4000) ¬null,'; + put 'processed_dttm num ¬null format=datetime19.'; + put ');quit;'; + put 'proc datasets lib=&lib noprint;'; + put 'modify mpe_filtersource;'; + put 'index create'; + put 'pk_mpe_filtersource=(filter_hash filter_line)'; + put '/nomiss unique;'; + put 'quit;'; + put 'proc sql;'; + put 'create table &lib..mpe_groups('; + put 'tx_from num ¬null format=datetime19.3,'; + put 'tx_to num ¬null format=datetime19.3,'; + put 'group_name char(100) ¬null,'; + put 'user_name char(50) ¬null,'; + put 'group_desc char(256)'; + put ');quit;'; + put 'proc datasets lib=&lib noprint;'; + put 'modify mpe_groups;'; + put 'index create'; + put 'pk_mpe_groups=(tx_to group_name user_name)'; + put '/nomiss unique;'; + put 'quit;'; + put 'proc sql;'; + put 'create table &lib..mpe_lineage_cols'; + put '('; + put 'col_id char(32),'; + put 'direction char(1),'; + put 'sourcecoluri char(256),'; + put 'map_type char(256),'; + put 'map_transform char(256),'; + put 'jobname char(256),'; + put 'sourcetablename char(256),'; + put 'sourcecolname char(256),'; + put 'targettablename char(256),'; + put 'targetcolname char(256),'; + put 'targetcoluri char(256),'; + put 'Derived_Rule char(500),'; + put 'level int,'; + put 'modified_dttm num format=datetime19.3,'; + put 'modified_by char(64)'; + put ');quit;'; + put 'proc datasets lib=&lib noprint;'; + put 'modify mpe_lineage_cols;'; + put 'index create'; + put 'pk_mpe_lineage_cols=(col_id direction sourcecoluri targetcoluri map_type map_transform)'; + put '/nomiss unique;'; + put 'quit;'; + put 'proc sql;'; + put 'create table &lib..MPE_LINEAGE_TABS'; + put '('; + put 'tx_from num ¬null format=datetime19.3,'; + put 'jobid char(17),'; + put 'srctableid char(17),'; + put 'tgttableid char(17),'; + put 'jobname char(128),'; + put 'srctabletype char(16),'; + put 'srctablename char(64),'; + put 'srclibref char(8),'; + put 'tgttabletype char(16),'; + put 'tgttablename char(64),'; + put 'tgtlibref char(8),'; + put 'tx_to num ¬null format=datetime19.3'; + put ');quit;'; + put 'proc datasets lib=&lib noprint;'; + put 'modify mpe_lineage_tabs;'; + put 'index create'; + put 'pk_mpe_lineage_tabs=(tx_to jobid srctableid tgttableid)'; + put '/nomiss unique;'; + put 'quit;'; + put 'proc sql;'; + put 'create table &lib..mpe_loads('; + put 'csv_dir char(255),'; + put 'user_nm char(50) ,'; + put 'status char(15) ,'; + put 'duration num ,'; + put 'processed_dttm num format=datetime19.3,'; + put 'reason_txt char(2048) ,'; + put 'approvals char(64)'; + put ');quit;'; + put 'proc datasets lib=&lib noprint;'; + put 'modify mpe_loads;'; + put 'index create csv_dir /nomiss unique;'; + put 'quit;'; + put 'proc sql;'; + put 'create table &lib..mpe_lockanytable('; + put 'lock_lib varchar(8) ¬null ,'; + put 'lock_ds varchar(32) ¬null,'; + put 'lock_status_cd varchar(10) ¬null,'; + put 'lock_user_nm varchar(100) ¬null ,'; + put 'lock_ref varchar(200),'; + put 'lock_pid varchar(10),'; + put 'lock_start_dttm num format=E8601DT26.6,'; + put 'lock_end_dttm num format=E8601DT26.6'; + put ');quit;'; + put 'proc datasets lib=&lib noprint;'; + put 'modify mpe_lockanytable;'; + put 'index create'; + put 'pk_mpe_lockanytable=(lock_lib lock_ds)'; + put '/nomiss unique;'; + put 'quit;'; + put 'proc sql;'; + put 'create table &lib..mpe_maxkeyvalues('; + put 'keytable varchar(41) label=''Base table in libref.dataset format'','; + put 'keycolumn char(32) format=$32.'; + put 'label=''The Surrogate / Retained key field containing the key values.'','; + put 'max_key num label='; + put '''Integer value representing current max RK or SK value in the KEYTABLE'','; + put 'processed_dttm num format=E8601DT26.6'; + put 'label=''Datetime this value was last updated'''; + put ');quit;'; + put 'proc datasets lib=&lib noprint;'; + put 'modify mpe_maxkeyvalues;'; + put 'index create keytable /nomiss unique;'; + put 'quit;'; + put '/* no PK defined as it is a transaction table */'; + put 'proc sql;'; + put 'create table &lib..mpe_requests('; + put 'request_dttm num ¬null format=datetime19.,'; + put 'request_user char(64) ¬null,'; + put 'request_service char(64) ¬null,'; + put 'request_params char(128)'; + put ');'; + put 'proc sql;'; + put 'create table &lib..mpe_review('; + put 'table_id varchar(32) ¬null,'; + put 'reviewed_by_nm varchar(100) ¬null,'; + put 'base_table varchar(41) ¬null,'; + put 'review_status_id varchar(10) ¬null,'; + put 'reviewed_on_dttm num ¬null format=datetime19.3,'; + put 'review_reason_txt varchar(400)'; + put ');quit;'; + put 'proc datasets lib=&lib noprint;'; + put 'modify mpe_review;'; + put 'index create'; + put 'pk_mpe_review=(table_id reviewed_by_nm)'; + put '/nomiss unique;'; + put 'quit;'; + put 'proc sql;'; + put 'create table &lib..mpe_row_level_security('; + put 'tx_from num ¬null format=datetime19.3,'; + put 'tx_to num ¬null format=datetime19.3,'; + put 'RLS_RK num ¬null,'; + put 'RLS_SCOPE char(8) ¬null,'; + put 'RLS_GROUP char(128) ¬null,'; + put 'RLS_LIBREF char(8) ¬null,'; + put 'RLS_TABLE char(32) ¬null,'; + put 'RLS_GROUP_LOGIC char(3) ¬null,'; + put 'RLS_SUBGROUP_LOGIC char(3) ¬null,'; + put 'RLS_SUBGROUP_ID num ¬null,'; + put 'RLS_VARIABLE_NM varchar(32) ¬null,'; + put 'RLS_OPERATOR_NM varchar(12) ¬null,'; + put 'RLS_RAW_VALUE varchar(4000) ¬null,'; + put 'RLS_ACTIVE num ¬null'; + put ');quit;'; + put 'proc datasets lib=&lib noprint;'; + put 'modify mpe_row_level_security;'; + put 'index create'; + put 'pk_mpe_row_level_security=(tx_to RLS_RK)'; + put '/nomiss unique;'; + put 'quit;'; + put 'proc sql;'; + put 'create table &lib..mpe_security('; + put 'tx_from num ¬null format=datetime19.3,'; + put 'tx_to num ¬null format=datetime19.3,'; + put 'libref char(8) ¬null,'; + put 'dsn char(32) ¬null,'; + put 'access_level char(10) ¬null,'; + put 'sas_group char(100) ¬null'; + put ');quit;'; + put 'proc datasets lib=&lib noprint;'; + put 'modify mpe_security;'; + put 'index create'; + put 'pk_mpe_security=(tx_to libref dsn access_level sas_group)'; + put '/nomiss unique;'; + put 'quit;'; + put 'proc sql;'; + put 'create table &lib..mpe_selectbox('; + put 'ver_from_dttm num ¬null format=datetime19.3,/* timestamp for versioning*/'; + put 'ver_to_dttm num ¬null format=datetime19.3, /* timestamp for versioning */'; + put 'selectbox_rk num ¬null, /* surrogate key */'; + put 'select_lib varchar(17) ¬null, /* libref (big enough for uri)*/'; + put 'select_ds varchar(32) ¬null,'; + put 'base_column varchar(36) ¬null, /* variable name against which to apply selectbox */'; + put 'selectbox_value varchar(500) ¬null, /* selectbox value */'; + put 'selectbox_order num , /* optional ordering (1 comes before 2) */'; + put 'selectbox_type varchar(32) /* column type (blank for default, else'; + put 'sas or js to indicate relevant system functions)*/'; + put ');quit;'; + put 'proc datasets lib=&lib noprint;'; + put 'modify mpe_selectbox;'; + put 'index create'; + put 'pk_mpe_selectbox=(ver_to_dttm selectbox_rk)'; + put '/nomiss unique;'; + put 'quit;'; + put 'proc sql;'; + put 'create table &lib..mpe_signoffs('; + put 'tech_from_dttm num ¬null format=datetime19.3,'; + put 'tech_to_dttm num ¬null format=datetime19.3,'; + put 'signoff_table varchar(50) ¬null,'; + put 'signoff_section_rk num ¬null,'; + put 'signoff_version_rk num ¬null,'; + put 'signoff_name varchar(100) ¬null'; + put ');quit;'; + put 'proc datasets lib=&lib noprint;'; + put 'modify mpe_signoffs;'; + put 'index create'; + put 'pk_mpe_signoffs=(tech_to_dttm signoff_table signoff_section_rk)'; + put '/nomiss unique;'; + put 'quit;'; + put '/* mpe_submit */'; + put 'proc sql;'; + put 'create table &lib..mpe_submit('; + put 'table_id varchar(32) ¬null,'; + put 'submit_status_cd varchar(10) ¬null,'; + put 'base_lib char(8) ¬null,'; + put 'base_ds char(32) ¬null,'; + put 'submitted_by_nm varchar(100) ¬null,'; + put 'submitted_on_dttm date ¬null format=datetime19.3,'; + put 'submitted_reason_txt varchar(400),'; + put 'input_obs num,'; + put 'input_vars num,'; + put 'num_of_approvals_required num ¬null ,'; + put 'num_of_approvals_remaining num ¬null ,'; + put 'reviewed_by_nm char(100),'; + put 'reviewed_on_dttm num'; + put ');quit;'; + put 'proc datasets lib=&lib noprint;'; + put 'modify mpe_submit;'; + put 'index create table_id /nomiss unique;'; + put 'quit;'; + put 'proc sql;'; + put 'create table &lib..mpe_tables('; + put 'tx_from num ¬null format=datetime19.3,'; + put 'tx_to num ¬null format=datetime19.3,'; + put 'libref char(8) ¬null,'; + put 'dsn char(32) ¬null,'; + put 'num_of_approvals_required int,'; + put 'loadtype char(12) ,'; + put 'buskey char(1000) ,'; + put 'var_txfrom char(32) ,'; + put 'var_txto char(32) ,'; + put 'var_busfrom char(32) ,'; + put 'var_busto char(32) ,'; + put 'var_processed char(32) ,'; + put 'close_vars varchar(500),'; + put 'pre_edit_hook char(200),'; + put 'post_edit_hook char(200),'; + put 'pre_approve_hook char(200) ,'; + put 'post_approve_hook char(200) ,'; + put 'signoff_cols varchar(500),'; + put 'signoff_hook varchar(200),'; + put 'notes char(1000) ,'; + put 'rk_underlying char(1000) ,'; + put 'audit_libds char(41)'; + put ');quit;'; + put 'proc datasets lib=&lib noprint;'; + put 'modify mpe_tables;'; + put 'index create'; + put 'pk_mpe_tables=(tx_to libref dsn)'; + put '/nomiss unique;'; + put 'quit;'; + put 'proc sql;'; + put 'create table &lib..mpe_users('; + put 'user_id char(50) ¬null,'; + put 'last_seen_dt num ¬null format=date9.,'; + put 'registered_dt num ¬null format=date9.'; + put ');quit;'; + put 'proc datasets lib=&lib noprint;'; + put 'modify mpe_users;'; + put 'index create user_id /nomiss unique;'; + put 'quit;'; + put 'proc sql;'; + put 'create table &lib..MPE_VALIDATIONS'; + put '('; + put 'TX_FROM num ¬null format=datetime19.3,'; + put 'BASE_LIB varchar(8),'; + put 'BASE_DS varchar(32),'; + put 'BASE_COL varchar(32),'; + put 'RULE_TYPE varchar(32),'; + put 'RULE_VALUE varchar(128),'; + put 'RULE_ACTIVE num ,'; + put 'TX_TO num ¬null format=datetime19.3'; + put ');quit;'; + put 'proc datasets lib=&lib noprint;'; + put 'modify mpe_validations;'; + put 'index create'; + put 'pk_mpe_validations=(tx_from base_lib base_ds base_col rule_type)'; + put '/nomiss unique;'; + put 'quit;'; + put 'proc sql;'; + put 'create table &lib..mpe_x_test('; + put 'primary_key_field num ¬null,'; + put 'some_char char(32767) ,'; + put 'some_dropdown char(128),'; + put 'some_num num ,'; + put 'some_date num format=date9.,'; + put 'some_datetime num format=datetime19. informat=ANYDTDTM19.,'; + put 'some_time num format=time8.,'; + put 'some_shortnum num length=4,'; + put 'some_bestnum num format=best.'; + put ');quit;'; + put 'proc datasets lib=&lib noprint;'; + put 'modify mpe_x_test;'; + put 'index create primary_key_field /nomiss unique;'; + put 'quit;'; + put '%mend mpe_makedatamodel;'; + put '%macro mf_mkdir(dir'; + put ')/*/STORE SOURCE*/;'; + put '%local lastchar child parent;'; + put '%let lastchar = %substr(&dir, %length(&dir));'; + put '%if (%bquote(&lastchar) eq %str(:)) %then %do;'; + put '/* Cannot create drive mappings */'; + put '%return;'; + put '%end;'; + put '%if (%bquote(&lastchar)=%str(/)) or (%bquote(&lastchar)=%str(\)) %then %do;'; + put '/* last char is a slash */'; + put '%if (%length(&dir) eq 1) %then %do;'; + put '/* one single slash - root location is assumed to exist */'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put '/* strip last slash */'; + put '%let dir = %substr(&dir, 1, %length(&dir)-1);'; + put '%end;'; + put '%end;'; + put '%if (%sysfunc(fileexist(%bquote(&dir))) = 0) %then %do;'; + put '/* directory does not exist so prepare to create */'; + put '/* first get the childmost directory */'; + put '%let child = %scan(&dir, -1, %str(/\:));'; + put '/*'; + put 'If child name = path name then there are no parents to create. Else'; + put 'they must be recursively scanned.'; + put '*/'; + put '%if (%length(&dir) gt %length(&child)) %then %do;'; + put '%let parent = %substr(&dir, 1, %length(&dir)-%length(&child));'; + put '%mf_mkdir(&parent)'; + put '%end;'; + put '/*'; + put 'Now create the directory. Complain loudly of any errs.'; + put '*/'; + put '%let dname = %sysfunc(dcreate(&child, &parent));'; + put '%if (%bquote(&dname) eq ) %then %do;'; + put '%put %str(ERR)OR: could not create &parent + &child;'; + put '%abort cancel;'; + put '%end;'; + put '%else %do;'; + put '%put Directory created: &dir;'; + put '%end;'; + put '%end;'; + put '/* exit quietly if directory did exist.*/'; + put '%mend mf_mkdir;'; + put '%macro mf_abort(mac=mf_abort.sas, msg=, iftrue=%str(1=1)'; + put ')/*/STORE SOURCE*/;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mf_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%abort;'; + put '%mend mf_abort;'; + put '/** @endcond */'; + put '%macro mf_verifymacvars('; + put 'verifyVars /* list of macro variable NAMES */'; + put ',makeUpcase=NO /* set to YES to make all the variable VALUES uppercase */'; + put ',mAbort=SOFT'; + put ')/*/STORE SOURCE*/;'; + put '%local verifyIterator verifyVar abortmsg;'; + put '%do verifyIterator=1 %to %sysfunc(countw(&verifyVars,%str( )));'; + put '%let verifyVar=%qscan(&verifyVars,&verifyIterator,%str( ));'; + put '%if not %symexist(&verifyvar) %then %do;'; + put '%let abortmsg= Variable &verifyVar is MISSING;'; + put '%goto exit_err;'; + put '%end;'; + put '%if %length(%trim(&&&verifyVar))=0 %then %do;'; + put '%let abortmsg= Variable &verifyVar is EMPTY;'; + put '%goto exit_err;'; + put '%end;'; + put '%if &makeupcase=YES %then %do;'; + put '%let &verifyVar=%upcase(&&&verifyvar);'; + put '%end;'; + put '%end;'; + put '%goto exit_success;'; + put '%exit_err:'; + put '%put &abortmsg;'; + put '%mf_abort(iftrue=(&mabort ne SOFT),'; + put 'mac=mf_verifymacvars,'; + put 'msg=%str(&abortmsg)'; + put ')'; + put '0'; + put '%return;'; + put '%exit_success:'; + put '1'; + put '%mend mf_verifymacvars;'; + put '%macro mm_createdocument('; + put 'tree=/User Folders/sasdemo'; + put ',name=myNote'; + put ',desc=Created by &sysmacroname'; + put ',textrole='; + put ',frefin=mm_in'; + put ',frefout=mm_out'; + put ',mDebug=1'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%mp_abort(iftrue= (%mf_verifymacvars(tree name)=0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Empty inputs: tree name)'; + put ')'; + put '/**'; + put '* check tree exists'; + put '*/'; + put 'data _null_;'; + put 'length type uri $256;'; + put 'rc=metadata_pathobj("","&tree","Folder",type,uri);'; + put 'call symputx(''type'',type,''l'');'; + put 'call symputx(''treeuri'',uri,''l'');'; + put 'run;'; + put '%mp_abort('; + put 'iftrue= (&type ne Tree)'; + put ',mac=mm_createdocument.sas'; + put ',msg=Tree &tree does not exist!'; + put ')'; + put '/**'; + put '* Check object does not exist already'; + put '*/'; + put 'data _null_;'; + put 'length type uri $256;'; + put 'rc=metadata_pathobj("","&tree/&name","Note",type,uri);'; + put 'call symputx(''type'',type,''l'');'; + put 'call symputx(''docuri'',uri,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if &type = Document %then %do;'; + put '%put Document &name already exists in &tree!;'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Now we can create the document'; + put '*/'; + put 'filename &frefin temp;'; + put '/* write header XML */'; + put 'data _null_;'; + put 'file &frefin;'; + put 'name=quote("&name");'; + put 'desc=quote("&desc");'; + put 'textrole=quote("&textrole");'; + put 'treeuri=quote("&treeuri");'; + put 'put "$METAREPOSITORY"/'; + put '''"/'; + put '" "/'; + put ''' '' /'; + put '''''/'; + put '/*URI="Document for public note" */'; + put '""/'; + put '"SAS"/'; + put '"268435456";'; + put 'run;'; + put 'filename &frefout temp;'; + put 'proc metadata in= &frefin out=&frefout verbose;'; + put 'run;'; + put '%if &mdebug=1 %then %do;'; + put '/* write the response to the log for debugging */'; + put 'data _null_;'; + put 'infile &frefout lrecl=1048576;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '%end;'; + put '%mend mm_createdocument;'; + put '%macro mm_createfolder(path=,mDebug=0);'; + put '%put &sysmacroname: execution started for &path;'; + put '%local dbg errorcheck;'; + put '%if &mDebug=0 %then %let dbg=*;'; + put '%local parentFolderObjId child errorcheck paths;'; + put '%let paths=0;'; + put '%let errorcheck=1;'; + put '%if &syscc ge 4 %then %do;'; + put '%put SYSCC=&syscc - this macro requires a clean session;'; + put '%return;'; + put '%end;'; + put 'data _null_;'; + put 'length objId parentId objType parent child $200'; + put 'folderPath $1000;'; + put 'call missing (of _all_);'; + put 'folderPath = "%trim(&path)";'; + put '* remove any trailing slash ;'; + put 'if ( substr(folderPath,length(folderPath),1) = ''/'' ) then'; + put 'folderPath=substr(folderPath,1,length(folderPath)-1);'; + put '* name must not be blank;'; + put 'if ( folderPath = '''' ) then do;'; + put 'put "%str(ERR)OR: &sysmacroname PATH parameter value must be non-blank";'; + put 'end;'; + put '* must have a starting slash ;'; + put 'if ( substr(folderPath,1,1) ne ''/'' ) then do;'; + put 'put "%str(ERR)OR: &sysmacroname PATH param value must have starting slash";'; + put 'stop;'; + put 'end;'; + put '* check if folder already exists ;'; + put 'rc=metadata_pathobj('''',cats(folderPath,"(Folder)"),"",objType,objId);'; + put 'if rc ge 1 then do;'; + put 'put "NOTE: Folder " folderPath " already exists!";'; + put 'stop;'; + put 'end;'; + put '* do not create a root (one level) folder ;'; + put 'if countc(folderPath,''/'')=1 then do;'; + put 'put "%str(ERR)OR: &sysmacroname will not create a new ROOT folder";'; + put 'stop;'; + put 'end;'; + put '* check that root folder exists ;'; + put 'root=cats(''/'',scan(folderpath,1,''/''),"(Folder)");'; + put 'if metadata_pathobj('''',root,"",objType,parentId)<1 then do;'; + put 'put "%str(ERR)OR: " root " does not exist!";'; + put 'stop;'; + put 'end;'; + put '* check that parent folder exists ;'; + put 'child=scan(folderPath,-1,''/'');'; + put 'parent=substr(folderpath,1,length(folderpath)-length(child)-1);'; + put 'rc=metadata_pathobj('''',cats(parent,"(Folder)"),"",objType,parentId);'; + put 'if rc<1 then do;'; + put 'putlog ''The following folders will be created:'';'; + put '/* folder does not exist - so start from top and work down */'; + put 'length newpath $1000;'; + put 'paths=0;'; + put 'do x=2 to countw(folderpath,''/'');'; + put 'newpath='''';'; + put 'do i=1 to x;'; + put 'newpath=cats(newpath,''/'',scan(folderpath,i,''/''));'; + put 'end;'; + put 'rc=metadata_pathobj('''',cats(newpath,"(Folder)"),"",objType,parentId);'; + put 'if rc<1 then do;'; + put 'paths+1;'; + put 'call symputx(cats(''path'',paths),newpath);'; + put 'putlog newpath;'; + put 'end;'; + put 'call symputx(''paths'',paths);'; + put 'end;'; + put 'end;'; + put 'else putlog "parent " parent " exists";'; + put 'call symputx(''parentFolderObjId'',parentId,''l'');'; + put 'call symputx(''child'',child,''l'');'; + put 'call symputx(''errorcheck'',0,''l'');'; + put '&dbg put (_all_)(=);'; + put 'run;'; + put '%if &errorcheck=1 or &syscc ge 4 %then %return;'; + put '%if &paths>0 %then %do x=1 %to &paths;'; + put '%put executing recursive call for &&path&x;'; + put '%mm_createfolder(path=&&path&x)'; + put '%end;'; + put '%else %do;'; + put 'filename __newdir temp;'; + put 'options noquotelenmax;'; + put '%local inmeta;'; + put '%put creating: &path;'; + put '%let inmeta=$METAREPOSITORY'; + put ''; + put 'SAS268435456'; + put ';'; + put 'proc metadata in="&inmeta" out=__newdir verbose;'; + put 'run ;'; + put '/* check it was successful */'; + put 'data _null_;'; + put 'length objId parentId objType parent child $200 ;'; + put 'call missing (of _all_);'; + put 'rc=metadata_pathobj('''',cats("&path","(Folder)"),"",objType,objId);'; + put 'if rc ge 1 then do;'; + put 'putlog "SUCCCESS! &path created.";'; + put 'end;'; + put 'else do;'; + put 'putlog "%str(ERR)OR: unsuccessful attempt to create &path";'; + put 'call symputx(''syscc'',8);'; + put 'end;'; + put 'run;'; + put '/* write the response to the log for debugging */'; + put '%if &mDebug ne 0 %then %do;'; + put 'data _null_;'; + put 'infile __newdir lrecl=32767;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '%end;'; + put 'filename __newdir clear;'; + put '%end;'; + put '%put &sysmacroname: execution finished for &path;'; + put '%mend mm_createfolder;'; + put '%macro mm_createlibrary('; + put 'libname=My New Library'; + put ',libref=mynewlib'; + put ',libdesc=Created automatically using the mm_createlibrary macro'; + put ',engine=BASE'; + put ',tree=/User Folders/sasdemo'; + put ',servercontext=SASApp'; + put ',directory=/tmp/somelib'; + put ',IsPreassigned=0'; + put ',mDebug=0'; + put ',frefin=mm_in'; + put ',frefout=mm_out'; + put ')/*/STORE SOURCE*/;'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%let libref=%upcase(&libref);'; + put '/**'; + put '* Check Library does not exist already with this libname'; + put '*/'; + put 'data _null_;'; + put 'length type uri $256;'; + put 'rc=metadata_resolve("omsobj:SASLibrary?@Name=''&libname''",type,uri);'; + put 'call symputx(''checktype'',type,''l'');'; + put 'call symputx(''liburi'',uri,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if &checktype = SASLibrary %then %do;'; + put '%put %str(WARN)ING: Library (&liburi) already exists with libname (&libname);'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Check Library does not exist already with this libref'; + put '*/'; + put 'data _null_;'; + put 'length type uri $256;'; + put 'rc=metadata_resolve("omsobj:SASLibrary?@Libref=''&libref''",type,uri);'; + put 'call symputx(''checktype'',type,''l'');'; + put 'call symputx(''liburi'',uri,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if &checktype = SASLibrary %then %do;'; + put '%put %str(WARN)ING: Library (&liburi) already exists with libref (&libref) ;'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Attempt to create tree'; + put '*/'; + put '%mm_createfolder(path=&tree)'; + put '/**'; + put '* check tree exists'; + put '*/'; + put 'data _null_;'; + put 'length type uri $256;'; + put 'rc=metadata_pathobj("","&tree","Folder",type,uri);'; + put 'call symputx(''foldertype'',type,''l'');'; + put 'call symputx(''treeuri'',uri,''l'');'; + put 'run;'; + put '%if &foldertype ne Tree %then %do;'; + put '%put %str(WARN)ING: Tree &tree does not exist!;'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Create filerefs for proc metadata call'; + put '*/'; + put 'filename &frefin temp;'; + put 'filename &frefout temp;'; + put '%mp_abort(iftrue= ('; + put '&engine=BASE & %mf_verifymacvars(libname libref engine servercontext tree)=0'; + put ')'; + put ',mac=&sysmacroname'; + put ',msg=%str(Empty inputs: libname libref engine servercontext tree)'; + put ')'; + put '%if &engine=BASE %then %do;'; + put '/**'; + put '* Check that the ServerContext exists'; + put '*/'; + put 'data _null_;'; + put 'length type uri $256;'; + put 'rc=metadata_resolve("omsobj:ServerContext?@Name=''&ServerContext''",type,uri);'; + put 'call symputx(''checktype'',type,''l'');'; + put 'call symputx(''serveruri'',uri,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if &checktype ne ServerContext %then %do;'; + put '%put %str(ERR)OR: ServerContext (&ServerContext) does not exist!;'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Get prototype info'; + put '*/'; + put 'data _null_;'; + put 'length type uri str $256;'; + put 'str="omsobj:Prototype?@Name=''Library.SAS.Prototype.Name.xmlKey.txt''";'; + put 'rc=metadata_resolve(str,type,uri);'; + put 'call symputx(''checktype'',type,''l'');'; + put 'call symputx(''prototypeuri'',uri,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if &checktype ne Prototype %then %do;'; + put '%put %str(ERR)OR: Prototype Library.SAS.Prototype.Name.xmlKey.txt not found;'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Check that Physical location exists'; + put '*/'; + put '%if %sysfunc(fileexist(&directory))=0 %then %do;'; + put '%put %str(ERR)OR: Physical directory (&directory) does not appear to exist!;'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Check that Directory Object exists in metadata'; + put '*/'; + put 'data _null_;'; + put 'length type uri $256;'; + put 'rc=metadata_resolve("omsobj:Directory?@DirectoryRole=''LibraryPath''"'; + put '!!" and @DirectoryName=''&directory''",type,uri);'; + put 'call symputx(''checktype'',type,''l'');'; + put 'call symputx(''directoryuri'',uri,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if &checktype ne Directory %then %do;'; + put '%put NOTE: Directory object does not exist for (&directory) location;'; + put '%put NOTE: It will now be created;'; + put 'data _null_;'; + put 'file &frefin;'; + put 'directory=quote(symget(''directory''));'; + put 'put "$METAREPOSITORY "/'; + put '''''/'; + put '"SAS"/'; + put '"268435456";'; + put 'run;'; + put 'proc metadata in= &frefin out=&frefout %if &mdebug=1 %then verbose;;'; + put 'run;'; + put '%if &mdebug=1 %then %do;'; + put 'data _null_;'; + put 'infile &frefout lrecl=1048576;'; + put 'input; put _infile_;'; + put 'run;'; + put '%end;'; + put '%put NOTE: Checking to ensure directory (&directory) object was created;'; + put 'data _null_;'; + put 'length type uri $256;'; + put 'rc=metadata_resolve("omsobj:Directory?@DirectoryRole=''LibraryPath''"'; + put '!!" and @DirectoryName=''&directory''",type,uri);'; + put 'call symputx(''checktype2'',type,''l'');'; + put 'call symputx(''directoryuri'',uri,''l'');'; + put '%if &mdebug=1 %then putlog (_all_)(=);;'; + put 'run;'; + put '%if &checktype2 ne Directory %then %do;'; + put '%put %str(ERR)OR: Directory (&directory) object was NOT created!;'; + put '%return;'; + put '%end;'; + put '%else %put NOTE: Directory (&directoryuri) successfully created!;'; + put '%end;'; + put '/**'; + put '* check SAS version'; + put '*/'; + put '%if %sysevalf(&sysver lt 9.3) %then %do;'; + put '%put %str(WARN)ING: Version 9.3 or later required;'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Prepare the XML and create the library'; + put '*/'; + put 'data _null_;'; + put 'file &frefin;'; + put 'treeuri=quote(symget(''treeuri''));'; + put 'serveruri=quote(symget(''serveruri''));'; + put 'directoryuri=quote(symget(''directoryuri''));'; + put 'libname=quote(symget(''libname''));'; + put 'libref=quote(symget(''libref''));'; + put 'IsPreassigned=quote(symget(''IsPreassigned''));'; + put 'prototypeuri=quote(symget(''prototypeuri''));'; + put '/* escape description so it can be stored as XML */'; + put 'libdesc=tranwrd(symget(''libdesc''),''&'',''&'');'; + put 'libdesc=tranwrd(libdesc,''<'',''<'');'; + put 'libdesc=tranwrd(libdesc,''>'',''>'');'; + put 'libdesc=tranwrd(libdesc,"''",''''');'; + put 'libdesc=tranwrd(libdesc,''"'',''"'');'; + put 'libdesc=tranwrd(libdesc,''0A''x,'' '');'; + put 'libdesc=tranwrd(libdesc,''0D''x,'' '');'; + put 'libdesc=tranwrd(libdesc,''$'',''$'');'; + put 'libdesc=quote(trim(libdesc));'; + put 'put "$METAREPOSITORY "/'; + put '''''/'; + put ''' ''/'; + put ''' "/'; + put ''' ''/'; + put ''' ''/'; + put ''' ''/'; + put ''' ''/'; + put '" "/'; + put ''' ''/'; + put ''' ''/'; + put ''' ''/'; + put ''' ''/'; + put ''' ''/'; + put ''' ''/'; + put '''SAS''/'; + put '''268435456'';'; + put 'run;'; + put 'proc metadata in= &frefin out=&frefout %if &mdebug=1 %then verbose ;;'; + put 'run;'; + put '%if &mdebug=1 %then %do;'; + put 'data _null_;'; + put 'infile &frefout lrecl=1048576;'; + put 'input;put _infile_;'; + put 'run;'; + put '%end;'; + put '%put NOTE: Checking to ensure library (&libname) was created;'; + put 'data _null_;'; + put 'length type uri $256;'; + put 'rc=metadata_pathobj("","&tree/&libname","Library",type,uri);'; + put 'call symputx(''libtype'',type,''l'');'; + put 'call symputx(''liburi'',uri,''l'');'; + put '%if &mdebug=1 %then putlog (_all_)(=);;'; + put 'run;'; + put '%if &libtype ne SASLibrary %then %do;'; + put '%put %str(ERR)OR: Could not find (&libname) at (&tree)!!;'; + put '%return;'; + put '%end;'; + put '%else %put NOTE: Library (&libname) successfully created in (&tree)!;'; + put '%end;'; + put '%else %do;'; + put '%put %str(ERR)OR: Other library engine types are not yet supported!!;'; + put '%end;'; + put '/**'; + put '* Wrap up'; + put '*/'; + put '%if &mdebug ne 1 %then %do;'; + put 'filename &frefin clear;'; + put 'filename &frefout clear;'; + put '%end;'; + put '%mend mm_createlibrary;'; + put '%macro mf_getattrn('; + put 'libds'; + put ',attr'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid rc;'; + put '%let dsid=%sysfunc(open(&libds,is));'; + put '%if &dsid = 0 %then %do;'; + put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; + put '%put %sysfunc(sysmsg());'; + put '-1'; + put '%end;'; + put '%else %do;'; + put '%sysfunc(attrn(&dsid,&attr))'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%mend mf_getattrn;'; + put '%macro mf_nobs(libds'; + put ')/*/STORE SOURCE*/;'; + put '%mf_getattrn(&libds,NLOBS)'; + put '%mend mf_nobs;'; + put '%macro mm_getDirectories('; + put 'path='; + put ',outds=work.mm_getDirectories'; + put ',mDebug=0'; + put ')/*/STORE SOURCE*/;'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing mm_getDirectories.sas;'; + put '%&mD.put _local_;'; + put 'data &outds (keep=directoryuri name directoryname directorydesc );'; + put 'length directoryuri name directoryname directorydesc $256;'; + put 'call missing(of _all_);'; + put '__i+1;'; + put '%if %length(&path)=0 %then %do;'; + put 'do while'; + put '(metadata_getnobj("omsobj:Directory?@Id contains ''.''",__i,directoryuri)>0);'; + put '%end; %else %do;'; + put 'do while('; + put 'metadata_getnobj("omsobj:Directory?@DirectoryName=''&path''",__i,directoryuri)'; + put '>0'; + put ');'; + put '%end;'; + put '__rc1=metadata_getattr(directoryuri, "Name", name);'; + put '__rc2=metadata_getattr(directoryuri, "DirectoryName", directoryname);'; + put '__rc3=metadata_getattr(directoryuri, "Desc", directorydesc);'; + put '&mD.putlog (_all_) (=);'; + put 'drop __:;'; + put '__i+1;'; + put 'if sum(of __rc1-__rc3)=0 then output;'; + put 'end;'; + put 'run;'; + put '%mend mm_getDirectories;'; + put '%macro mm_updatestpsourcecode(stp='; + put ',stpcode='; + put ',minify=NO'; + put ',mdebug=0'; + put ');'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&stp.(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '%if &mdebug=1 %then %do;'; + put 'put tsuri= value=;'; + put '%end;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%if &tsuri=stopifempty %then %do;'; + put '%put %str(WARN)ING: &stp.(StoredProcess) not found!;'; + put '%return;'; + put '%end;'; + put '%if %length(&stpcode)<2 %then %do;'; + put '%put %str(WARN)ING: No SAS code supplied!!;'; + put '%return;'; + put '%end;'; + put '%local frefin frefout;'; + put '%let frefin=%mf_getuniquefileref();'; + put '%let frefout=%mf_getuniquefileref();'; + put '/* write header XML */'; + put 'data _null_;'; + put 'file &frefin;'; + put 'put "$METAREPOSITORY'; + put '2 %then %do;'; + put 'data _null_;'; + put 'file &frefin lrecl=32767 mod;'; + put 'infile &stpcode lrecl=32767;'; + put 'length outstr $32767;'; + put 'input outstr ;'; + put '/* escape code so it can be stored as XML */'; + put 'outstr=tranwrd(_infile_,''&'',''&'');'; + put 'outstr=tranwrd(outstr,''<'',''<'');'; + put 'outstr=tranwrd(outstr,''>'',''>'');'; + put 'outstr=tranwrd(outstr,"''",''''');'; + put 'outstr=tranwrd(outstr,''"'',''"'');'; + put 'outstr=tranwrd(outstr,''0A''x,'' '');'; + put 'outstr=tranwrd(outstr,''0D''x,'' '');'; + put 'outstr=tranwrd(outstr,''$'',''$'');'; + put '%if &minify=YES %then %do;'; + put 'outstr=cats(outstr);'; + put 'if outstr ne '''';'; + put 'if not (outstr=:''/*'' and subpad(left(reverse(outstr)),1,2)=''/*'');'; + put '%end;'; + put 'outstr=trim(outstr);'; + put 'put outstr '' '';'; + put 'run;'; + put '%end;'; + put 'data _null_;'; + put 'file &frefin mod;'; + put 'put "''>SAS268435456'; + put '";'; + put 'run;'; + put 'proc metadata in= &frefin out=&frefout;'; + put 'run;'; + put '%if &mdebug=1 %then %do;'; + put '/* write the response to the log for debugging */'; + put 'data _null_;'; + put 'infile &frefout lrecl=32767;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put 'filename &frefin clear;'; + put 'filename &frefout clear;'; + put '%end;'; + put '%mend mm_updatestpsourcecode;'; + put '%macro mm_getrepos('; + put 'outds=work.mm_getrepos'; + put ')/*/STORE SOURCE*/;'; + put '* use a temporary fileref to hold the response;'; + put 'filename response temp;'; + put '/* get list of libraries */'; + put 'proc metadata in='; + put '"1"'; + put 'out=response;'; + put 'run;'; + put '/* write the response to the log for debugging */'; + put '/*'; + put 'data _null_;'; + put 'infile response lrecl=1048576;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '*/'; + put '/* create an XML map to read the response */'; + put 'filename sxlemap temp;'; + put 'data _null_;'; + put 'file sxlemap;'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository";'; + put 'put "";'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Id";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Name";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Desc";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@DefaultNS";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryType";'; + put 'put "characterstring20";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryFormat";'; + put 'put "characterstring10";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@Access";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@CurrentAccess";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@PauseState";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Path";'; + put 'put "";'; + put 'put "characterstring256";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Engine";'; + put 'put "";'; + put 'put "characterstring8";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Options";'; + put 'put "";'; + put 'put "characterstring32";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataCreated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataUpdated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put ''
'';'; + put 'run;'; + put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; + put 'proc sort data= _XML_.SASRepos out=&outds;'; + put 'by name;'; + put 'run;'; + put '/* clear references */'; + put 'filename sxlemap clear;'; + put 'filename response clear;'; + put 'libname _XML_ clear;'; + put '%mend mm_getrepos;'; + put '%macro mm_getservercontexts('; + put 'outds=work.mm_getrepos'; + put ')/*/STORE SOURCE*/;'; + put '%local repo repocnt x;'; + put '%let repo=%sysfunc(getoption(metarepository));'; + put '/* first get list of available repos */'; + put '%mm_getrepos(outds=work.repos)'; + put '%let repocnt=0;'; + put 'data _null_;'; + put 'set repos;'; + put 'where repositorytype in(''CUSTOM'',''FOUNDATION'');'; + put 'keep id name ;'; + put 'call symputx(cats(''repo'',_n_),name,''l'');'; + put 'call symputx(''repocnt'',_n_,''l'');'; + put 'run;'; + put 'filename __mc1 temp;'; + put 'filename __mc2 temp;'; + put 'data &outds;'; + put 'length serveruri servername $200;'; + put 'call missing (of _all_);'; + put 'stop;'; + put 'run;'; + put '%do x=1 %to &repocnt;'; + put 'options metarepository=&&repo&x;'; + put 'proc metadata in='; + put '"$METAREPOSITORY'; + put 'ServerContextSAS'; + put '0"'; + put 'out=__mc1;'; + put 'run;'; + put '/*'; + put 'data _null_;'; + put 'infile __mc1 lrecl=1048576;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '*/'; + put 'data _null_;'; + put 'file __mc2;'; + put 'put '''';'; + put 'put "/GetMetadataObjects/Objects/ServerContext";'; + put 'put "";'; + put 'put '''';'; + put 'put "/GetMetadataObjects/Objects/ServerContext/@Id";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetMetadataObjects/Objects/ServerContext/@Name";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put ''
'';'; + put 'run;'; + put 'libname __mc3 xml xmlfileref=__mc1 xmlmap=__mc2;'; + put 'proc append base=&outds data=__mc3.SASContexts;run;'; + put 'libname __mc3 clear;'; + put '%end;'; + put 'options metarepository=&repo;'; + put 'filename __mc1 clear;'; + put 'filename __mc2 clear;'; + put '%mend mm_getservercontexts;'; + put '%macro mf_isblank(param'; + put ')/*/STORE SOURCE*/;'; + put '%sysevalf(%superq(param)=,boolean)'; + put '%mend mf_isblank;'; + put '%macro mp_dropmembers('; + put 'list /* space separated list of datasets / views */'; + put ',libref=WORK /* can only drop from a single library at a time */'; + put ',iftrue=%str(1=1)'; + put ')/*/STORE SOURCE*/;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%if %mf_isblank(&list) %then %do;'; + put '%put NOTE: nothing to drop!;'; + put '%return;'; + put '%end;'; + put 'proc datasets lib=&libref nolist;'; + put 'delete &list;'; + put 'delete &list /mtype=view;'; + put 'run;'; + put '%mend mp_dropmembers;'; + put '%macro mm_createstp('; + put 'stpname=Macro People STP'; + put ',stpdesc=This stp was created automatically by the mm_createstp macro'; + put ',filename=mm_createstp.sas'; + put ',directory=SASEnvironment/SASCode'; + put ',tree=/User Folders/sasdemo'; + put ',package=false'; + put ',streaming=true'; + put ',outds=work.mm_createstp'; + put ',mDebug=0'; + put ',server=SASApp'; + put ',stptype=1'; + put ',minify=NO'; + put ',frefin=mm_in'; + put ',frefout=mm_out'; + put ')/*/STORE SOURCE*/;'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing mm_CreateSTP.sas;'; + put '%&mD.put _local_;'; + put '%mp_abort('; + put 'iftrue=(%mf_verifymacvars(stpname filename directory tree)=0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Empty inputs: stpname filename directory tree)'; + put ')'; + put '%mp_dropmembers(%scan(&outds,2,.))'; + put '/**'; + put '* check tree exists'; + put '*/'; + put 'data _null_;'; + put 'length type uri $256;'; + put 'rc=metadata_pathobj("","&tree","Folder",type,uri);'; + put 'call symputx(''foldertype'',type,''l'');'; + put 'call symputx(''treeuri'',uri,''l'');'; + put 'run;'; + put '%if &foldertype ne Tree %then %do;'; + put '%put %str(WARN)ING: Tree &tree does not exist!;'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Check STP does not exist already'; + put '*/'; + put '%local cmtype;'; + put 'data _null_;'; + put 'length type uri $256;'; + put 'rc=metadata_pathobj("","&tree/&stpname",''StoredProcess'',type,uri);'; + put 'call symputx(''cmtype'',type,''l'');'; + put 'call symputx(''stpuri'',uri,''l'');'; + put 'run;'; + put '%if &cmtype = ClassifierMap %then %do;'; + put '%put %str(WARN)ING: Stored Process &stpname already exists in &tree!;'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Check that the physical file exists'; + put '*/'; + put '%if %sysfunc(fileexist(&directory/&filename)) ne 1 %then %do;'; + put '%put %str(WARN)ING: FILE *&directory/&filename* NOT FOUND!;'; + put '%return;'; + put '%end;'; + put '%if &stptype=1 %then %do;'; + put '/* type 1 STP - where code is stored on filesystem */'; + put '%if %sysevalf(&sysver lt 9.2) %then %do;'; + put '%put %str(WARN)ING: Version 9.2 or later required;'; + put '%return;'; + put '%end;'; + put '/* check directory object (where 9.2 source code reference is stored) */'; + put 'data _null_;'; + put 'length id $20 dirtype $256;'; + put 'rc=metadata_resolve("&directory",dirtype,id);'; + put 'call symputx(''checkdirtype'',dirtype,''l'');'; + put 'run;'; + put '%if &checkdirtype ne Directory %then %do;'; + put '%mm_getdirectories(path=&directory,outds=&outds ,mDebug=&mDebug)'; + put '%if %mf_nobs(&outds)=0 or %sysfunc(exist(&outds))=0 %then %do;'; + put '%put %str(WARN)ING: The directory object does not exist for &directory;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put 'data &outds;'; + put 'directoryuri="&directory";'; + put 'run;'; + put '%end;'; + put 'data &outds (keep=stpuri prompturi fileuri texturi);'; + put 'length stpuri prompturi fileuri texturi serveruri $256 ;'; + put 'if _n_=1 then call missing (of _all_);'; + put 'set &outds;'; + put '/* final checks on uris */'; + put 'length id $20 type $256;'; + put '__rc=metadata_resolve("&treeuri",type,id);'; + put 'if type ne ''Tree'' then do;'; + put 'putlog "%str(WARN)ING: Invalid tree URI: &treeuri";'; + put 'stopme=1;'; + put 'end;'; + put '__rc=metadata_resolve(directoryuri,type,id);'; + put 'if type ne ''Directory'' then do;'; + put 'putlog "%str(WARN)ING: Invalid directory URI: " directoryuri;'; + put 'stopme=1;'; + put 'end;'; + put '/* get server info */'; + put '__rc=metadata_resolve("&server",type,serveruri);'; + put 'if type ne ''LogicalServer'' then do;'; + put '__rc=metadata_getnobj("omsobj:LogicalServer?@Name=''&server''",1,serveruri);'; + put 'if serveruri='''' then do;'; + put 'putlog "%str(WARN)ING: Invalid server: &server";'; + put 'stopme=1;'; + put 'end;'; + put 'end;'; + put 'if stopme=1 then do;'; + put 'putlog (_all_)(=);'; + put 'stop;'; + put 'end;'; + put '/* create empty prompt */'; + put 'rc1=METADATA_NEWOBJ(''PromptGroup'',prompturi,''Parameters'');'; + put 'rc2=METADATA_SETATTR(prompturi, ''UsageVersion'', ''1000000'');'; + put 'rc3=METADATA_SETATTR(prompturi, ''GroupType'',''2'');'; + put 'rc4=METADATA_SETATTR(prompturi, ''Name'',''Parameters'');'; + put 'rc5=METADATA_SETATTR(prompturi, ''PublicType'',''Embedded:PromptGroup'');'; + put 'GroupInfo='; + put '"";'; + put 'rc6 = METADATA_SETATTR(prompturi, ''GroupInfo'',groupinfo);'; + put 'if sum(of rc1-rc6) ne 0 then do;'; + put 'putlog "%str(WARN)ING: Issue creating prompt.";'; + put 'if prompturi ne . then do;'; + put 'putlog '' Removing orphan: '' prompturi;'; + put 'rc = METADATA_DELOBJ(prompturi);'; + put 'put rc=;'; + put 'end;'; + put 'stop;'; + put 'end;'; + put '/* create a file uri */'; + put 'rc7=METADATA_NEWOBJ(''File'',fileuri,''SP Source File'');'; + put 'rc8=METADATA_SETATTR(fileuri, ''FileName'',"&filename");'; + put 'rc9=METADATA_SETATTR(fileuri, ''IsARelativeName'',''1'');'; + put 'rc10=METADATA_SETASSN(fileuri, ''Directories'',''MODIFY'',directoryuri);'; + put 'if sum(of rc7-rc10) ne 0 then do;'; + put 'putlog "%str(WARN)ING: Issue creating file.";'; + put 'if fileuri ne . then do;'; + put 'putlog '' Removing orphans:'' prompturi fileuri;'; + put 'rc = METADATA_DELOBJ(prompturi);'; + put 'rc = METADATA_DELOBJ(fileuri);'; + put 'put (_all_)(=);'; + put 'end;'; + put 'stop;'; + put 'end;'; + put '/* create a TextStore object */'; + put 'rc11= METADATA_NEWOBJ(''TextStore'',texturi,''Stored Process'');'; + put 'rc12= METADATA_SETATTR(texturi, ''TextRole'',''StoredProcessConfiguration'');'; + put 'rc13= METADATA_SETATTR(texturi, ''TextType'',''XML'');'; + put 'storedtext='''''; + put '!!""'; + put '!!"";'; + put 'rc14= METADATA_SETATTR(texturi, ''StoredText'',storedtext);'; + put 'if sum(of rc11-rc14) ne 0 then do;'; + put 'putlog "%str(WARN)ING: Issue creating TextStore.";'; + put 'if texturi ne . then do;'; + put 'putlog '' Removing orphans: '' prompturi fileuri texturi;'; + put 'rc = METADATA_DELOBJ(prompturi);'; + put 'rc = METADATA_DELOBJ(fileuri);'; + put 'rc = METADATA_DELOBJ(texturi);'; + put 'put (_all_)(=);'; + put 'end;'; + put 'stop;'; + put 'end;'; + put '/* create meta obj */'; + put 'rc15= METADATA_NEWOBJ(''ClassifierMap'',stpuri,"&stpname");'; + put 'rc16= METADATA_SETASSN(stpuri, ''Trees'',''MODIFY'',treeuri);'; + put 'rc17= METADATA_SETASSN(stpuri, ''ComputeLocations'',''MODIFY'',serveruri);'; + put 'rc18= METADATA_SETASSN(stpuri, ''SourceCode'',''MODIFY'',fileuri);'; + put 'rc19= METADATA_SETASSN(stpuri, ''Prompts'',''MODIFY'',prompturi);'; + put 'rc20= METADATA_SETASSN(stpuri, ''Notes'',''MODIFY'',texturi);'; + put 'rc21= METADATA_SETATTR(stpuri, ''PublicType'', ''StoredProcess'');'; + put 'rc22= METADATA_SETATTR(stpuri, ''TransformRole'', ''StoredProcess'');'; + put 'rc23= METADATA_SETATTR(stpuri, ''UsageVersion'', ''1000000'');'; + put 'rc24= METADATA_SETATTR(stpuri, ''Desc'', "&stpdesc");'; + put '/* tidy up if err */'; + put 'if sum(of rc15-rc24) ne 0 then do;'; + put 'putlog "%str(WARN)ING: Issue creating STP.";'; + put 'if stpuri ne . then do;'; + put 'putlog '' Removing orphans: '' prompturi fileuri texturi stpuri;'; + put 'rc = METADATA_DELOBJ(prompturi);'; + put 'rc = METADATA_DELOBJ(fileuri);'; + put 'rc = METADATA_DELOBJ(texturi);'; + put 'rc = METADATA_DELOBJ(stpuri);'; + put 'put (_all_)(=);'; + put 'end;'; + put 'end;'; + put 'else do;'; + put 'fullpath=cats(''_program='',treepath,"/&stpname");'; + put 'putlog "NOTE: Stored Process Created!";'; + put 'putlog "NOTE- "; putlog "NOTE-"; putlog "NOTE-" fullpath;'; + put 'putlog "NOTE- "; putlog "NOTE-";'; + put 'end;'; + put 'output;'; + put 'stop;'; + put 'run;'; + put '%end;'; + put '%else %if &stptype=2 %then %do;'; + put '/* type 2 stp - code is stored in metadata */'; + put '%if %sysevalf(&sysver lt 9.3) %then %do;'; + put '%put %str(WARN)ING: SAS version 9.3 or later required to create type2 STPs;'; + put '%return;'; + put '%end;'; + put '/* check we have the correct ServerContext */'; + put '%mm_getservercontexts(outds=contexts)'; + put '%local serveruri; %let serveruri=NOTFOUND;'; + put 'data _null_;'; + put 'set contexts;'; + put 'where upcase(servername)="%upcase(&server)";'; + put 'call symputx(''serveruri'',serveruri);'; + put 'run;'; + put '%if &serveruri=NOTFOUND %then %do;'; + put '%put %str(WARN)ING: ServerContext *&server* not found!;'; + put '%return;'; + put '%end;'; + put '/**'; + put '* First, create a Hello World type 2 stored process'; + put '*/'; + put 'filename &frefin temp;'; + put 'data _null_;'; + put 'file &frefin;'; + put 'treeuri=quote(symget(''treeuri''));'; + put 'serveruri=quote(symget(''serveruri''));'; + put 'stpdesc=quote(symget(''stpdesc''));'; + put 'stpname=quote(symget(''stpname''));'; + put 'put "$METAREPOSITORY "/'; + put '''''/'; + put '" "/'; + put '" "/'; + put '" "/'; + put '" "/'; + put ''' ''/'; + put ''' '' /'; + put '" "/'; + put '" "/'; + put ''' ''/'; + put '" "/'; + put '""/'; + put '"SAS"/'; + put '"268435456";'; + put 'run;'; + put 'filename &frefout temp;'; + put 'proc metadata in= &frefin out=&frefout ;'; + put 'run;'; + put '%if &mdebug=1 %then %do;'; + put '/* write the response to the log for debugging */'; + put 'data _null_;'; + put 'infile &frefout lrecl=1048576;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '%end;'; + put '/**'; + put '* Next, add the source code'; + put '*/'; + put '%mm_updatestpsourcecode(stp=&tree/&stpname'; + put ',stpcode="&directory/&filename"'; + put ',mdebug=&mdebug'; + put ',minify=&minify)'; + put '%end;'; + put '%else %do;'; + put '%put %str(WARN)ING: STPTYPE=*&stptype* not recognised!;'; + put '%end;'; + put '%mend mm_createstp;'; + put '%macro mm_deletedocument('; + put 'target='; + put ')/*/STORE SOURCE*/;'; + put '/**'; + put '* Check document exist'; + put '*/'; + put '%local type;'; + put 'data _null_;'; + put 'length type uri $256;'; + put 'rc=metadata_pathobj("","&target",''Note'',type,uri);'; + put 'call symputx(''type'',type,''l'');'; + put 'call symputx(''stpuri'',uri,''l'');'; + put 'run;'; + put '%if &type ne Document %then %do;'; + put '%put %str(WARN)ING: No Document found at ⌖'; + put '%return;'; + put '%end;'; + put 'filename __in temp lrecl=10000;'; + put 'filename __out temp lrecl=10000;'; + put 'data _null_ ;'; + put 'file __in ;'; + put 'put "";'; + put 'put "SAS268436480";'; + put 'put "";'; + put 'run ;'; + put 'proc metadata in=__in out=__out verbose;run;'; + put '/* list the result */'; + put 'data _null_;infile __out; input; list; run;'; + put 'filename __in clear;'; + put 'filename __out clear;'; + put '/**'; + put '* Check deletion'; + put '*/'; + put '%local isgone;'; + put 'data _null_;'; + put 'length type uri $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_pathobj("","&target",''Note'',type,uri);'; + put 'call symputx(''isgone'',type,''l'');'; + put 'run;'; + put '%if &isgone = Document %then %do;'; + put '%put %str(ERR)OR: Document not deleted from ⌖'; + put '%let syscc=4;'; + put '%return;'; + put '%end;'; + put '%mend mm_deletedocument;'; + put '%macro mm_deletestp('; + put 'target='; + put ')/*/STORE SOURCE*/;'; + put '/**'; + put '* Check STP does exist'; + put '*/'; + put '%local cmtype;'; + put 'data _null_;'; + put 'length type uri $256;'; + put 'rc=metadata_pathobj("","&target",''StoredProcess'',type,uri);'; + put 'call symputx(''cmtype'',type,''l'');'; + put 'call symputx(''stpuri'',uri,''l'');'; + put 'run;'; + put '%if &cmtype ne ClassifierMap %then %do;'; + put '%put NOTE: No Stored Process found at ⌖'; + put '%return;'; + put '%end;'; + put 'filename __in temp lrecl=10000;'; + put 'filename __out temp lrecl=10000;'; + put 'data _null_ ;'; + put 'file __in ;'; + put 'put "";'; + put 'put "SAS268436480";'; + put 'put "";'; + put 'run ;'; + put 'proc metadata in=__in out=__out verbose;run;'; + put '/* list the result */'; + put 'data _null_;infile __out; input; list; run;'; + put 'filename __in clear;'; + put 'filename __out clear;'; + put '/**'; + put '* Check deletion'; + put '*/'; + put '%local isgone;'; + put 'data _null_;'; + put 'length type uri $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_pathobj("","&target",''Note'',type,uri);'; + put 'call symputx(''isgone'',type,''l'');'; + put 'run;'; + put '%if &isgone = ClassifierMap %then %do;'; + put '%put %str(ERR)OR: STP not deleted from ⌖'; + put '%let syscc=4;'; + put '%return;'; + put '%end;'; + put '%mend mm_deletestp;'; + put '%macro mm_getstpinfo(pgm'; + put ',outds=work.mm_getstpinfo'; + put ',mDebug=0'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put 'data &outds;'; + put 'length type stp_uri tsuri servercontext value $200'; + put 'StoredProcessConfiguration $1000 sourcecode_first32k $32767;'; + put 'keep path stp_uri sourcecode_first32k StoredProcessConfiguration'; + put 'servercontext;'; + put 'call missing (of _all_);'; + put 'path="&pgm(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,stp_uri)>0 then do;'; + put '/* get attributes */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(stp_uri,"Notes",cnt,tsuri)>0);'; + put 'rc1=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put 'rc2=metadata_getattr(tsuri,"StoredText",sourcecode_first32k);'; + put 'end;'; + put 'else if value="Stored Process" then do;'; + put 'rc3=metadata_getattr(tsuri,"StoredText",StoredProcessConfiguration);'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put '/* get context (should only be one) */'; + put 'rc4=metadata_getnasn(stp_uri,"ComputeLocations",1,tsuri);'; + put 'rc5=metadata_getattr(tsuri,"Name",servercontext);'; + put 'end;'; + put 'else do;'; + put 'put "%str(ERR)OR: could not find " path;'; + put 'put (_all_)(=);'; + put 'end;'; + put '&md.put (_all_)(=);'; + put 'run;'; + put '%mend mm_getstpinfo ;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file'; + put '@brief service for creating the configuration tables in DEMO mode.'; + put '@details'; + put 'STP for creating the configuration tables in DEMO mode.'; + put 'It also adds the STAGING directory as subdirectory to the BASE'; + put 'library location.'; + put 'Note - the CURLIB var is added during the build process.'; + put '@warning This STP self destructs! It will delete itself after a successful run'; + put 'to avoid being executed twice (and overwriting actual data)'; + put '

SAS Macros

'; + put '@li mf_getapploc.sas'; + put '@li mf_getuser.sas'; + put '@li mf_mkdir.sas'; + put '@li mm_createdocument.sas'; + put '@li mm_createlibrary.sas'; + put '@li mm_createstp.sas'; + put '@li mm_deletedocument.sas'; + put '@li mm_deletestp.sas'; + put '@li mm_getstpcode.sas'; + put '@li mm_getstpinfo.sas'; + put '@li mp_abort.sas'; + put '@li mp_init.sas'; + put '@li mpe_makedata.sas'; + put '@li mpe_makedatamodel.sas'; + put '@version 9.2'; + put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; + put 'downloaded from here: https://4gl.uk/dcdeploy'; + put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; + put 'and may not be re-distributed or re-sold without the express permission of'; + put '4GL Apps Ltd.'; + put '**/'; + put '%mp_init()'; + put '%global admin repo path; /* URL params from configurator */'; + put '%let repo=%sysfunc(coalescec(&repo,Foundation));'; + put '%let admin=%sysfunc(coalescec(&admin,dc-admin));'; + put '%let dcpath=%sysfunc(coalescec(&path,NOTFOUND));'; + put '%mp_abort(iftrue= ("&dcpath" = "NOTFOUND")'; + put ',mac=&_program'; + put ',msg=%str(PATH variable was not provided)'; + put ')'; + put '%let root=%mf_getapploc();'; + put '%let work=%sysfunc(pathname(work));'; + put '%let dc_libref=%upcase(DC%substr(%sysevalf(%sysfunc(datetime())/60),3,6));'; + put '%let DC_LIBNAME=Data Controller(&dc_libref);'; + put '%let dcpath=&dcpath/&dc_libref;'; + put '%put _all_;'; + put '%mf_mkdir(&dcpath/dc_staging)'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Unable to create &dcpath using &sysuserid)'; + put ')'; + put '/* check we have the admin rights to update the items in the Admin folder */'; + put '%mm_createdocument(tree=&root/services/admin,name=permTest)'; + put '%mm_deletedocument(target=&root/services/admin/permTest)'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(User &_metaperson does not have WriteMetadata on metadata folder:'; + put '&root )'; + put ')'; + put '/* check we have physical permissions to the DCLIB folder */'; + put 'data _null_;'; + put 'putlog "dcpath=&dcpath/permTest.txt";'; + put 'putlog "sysuserid=&sysuserid";'; + put 'data _null_;'; + put 'file "&dcpath/permTest.txt";'; + put 'run;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(User &sysuserid does not have WRITE permissions on physical'; + put 'directory: &dcpath )'; + put ')'; + put 'filename delfile "&dcpath/permTest.txt";'; + put 'data _null_;'; + put 'rc=fdelete(''delfile'');'; + put 'run;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(User &sysuserid could create (but not delete) &dcpath/permTest.txt )'; + put ')'; + put '/* get the server context from the current STP */'; + put '%mm_getstpinfo(&_program,outds=work.stpinfo)'; + put 'data _null_;'; + put 'set work.stpinfo;'; + put 'call symputx(''serverContext'',serverContext);'; + put 'run;'; + put '/* create the library */'; + put '%mm_createlibrary('; + put 'libname=&DC_LIBNAME'; + put ',libref=&dc_libref'; + put ',libdesc=Data Controller for SAS configuration tables'; + put ',engine=BASE'; + put ',tree=&root/data'; + put ',servercontext=&serverContext'; + put ',directory=&dcpath'; + put ',mDebug=1'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=buildtermsas9'; + put ',msg=%str(Unable to create &dc_libref library)'; + put ')'; + put '/* assign the library */'; + put 'libname &dc_libref "&dcpath";'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=buildtermsas9'; + put ',msg=%str(Unable to assign the &dc_libref library)'; + put ')'; + put '/* make the tables */'; + put '/* SASAdministrators */'; + put '%mpe_makedatamodel(lib=&dc_libref)'; + put '%mpe_makedata(lib=&DC_LIBREF,mpeadmins=&admin,path=%str(&dcpath))'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem creating tables in &DC_LIBREF library\n'; + put 'SYSERRORTEXT=&SYSERRORTEXT \n'; + put 'SYSWARNINGTEXT=&SYSWARNINGTEXT)'; + put ')'; + put '/* register tables in metadata */'; + put 'proc metalib;'; + put 'omr (library="&DC_LIBNAME");'; + put 'folder="&root/data";'; + put 'update_rule=(delete);'; + put 'run;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem registering metadata for tables in &DC_LIBREF library \n'; + put 'os user=&sysuserid \n'; + put 'metaperson=%mf_getuser() \n'; + put 'SYSERRORTEXT=&SYSERRORTEXT \n'; + put 'SYSWARNINGTEXT=&SYSWARNINGTEXT'; + put ')'; + put ')'; + put '/* finally, update the app component. The user will need WM perms for this. */'; + put 'data _null_;'; + put 'file "&work/settings.sas" mod ;'; + put 'put '' '';'; + put 'put ''%global DC_LIBREF DC_LIBNAME DC_LIBLOC DC_STAGING_AREA DC_ADMIN_GROUP'';'; + put 'put '' DC_REPO_USERS DC_DTTMTFMT DC_MACROS;'';'; + put 'put '' '';'; + put 'put ''/* This metadata library (libref) contains control datasets for DC */'';'; + put 'put ''/* If a different libref must be used, configure it below */'';'; + put 'put ''%let DC_LIBREF='' "&DC_LIBREF;";'; + put 'put ''%let DC_LIBNAME='' "&DC_LIBNAME;";'; + put 'put ''%let DC_LIBLOC='' "&dcpath;";'; + put 'put '' '';'; + put 'put ''libname &DC_LIBREF "&dc_libloc";'';'; + put 'put '' '';'; + put 'put ''/* This metadata group has unrestricted access to Data Controller */'';'; + put 'put ''%let dc_admin_group='' "&admin;";'; + put 'put '' '';'; + put 'put ''/* This repository is used to query for users and groups */'';'; + put 'put ''%let dc_repo_users='' "&repo;";'; + put 'put '' '';'; + put 'put ''/* This physical location is used for staging data and audit history */'';'; + put 'put ''%let dc_staging_area=&dc_libloc/dc_staging;'';'; + put 'put '' '';'; + put 'put ''data _null_;'';'; + put 'put '' set &DC_LIBREF..mpe_config(where=('';'; + put 'put '' var_scope="DC" '';'; + put 'put '' and &dc_dttmtfmt. lt tx_to'';'; + put 'put '' and var_active=1'';'; + put 'put " ));";'; + put 'put " call symputx(var_name,var_value,''G'');";'; + put 'put '' putlog var_name "=" var_value;'';'; + put 'put "run;";'; + put 'put '' '';'; + put 'put ''/* to override any DC macros with client versions, place them below */'';'; + put 'put ''options insert=(sasautos=("&dc_macros"));'';'; + put 'run;'; + put '/*'; + put 'put ''data _null_;'';'; + put 'put '' length lib_uri up_uri path $256;'';'; + put 'put '' call missing (of _all_);'';'; + put 'put '' rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''''&dc_libref''''",1,lib_uri);'';'; + put 'put '' rc=metadata_getnasn(lib_uri,"UsingPackages",1,up_uri);'';'; + put 'put '' rc=metadata_getattr(up_uri,"DirectoryName",path);'';'; + put 'put '' call symputx("dc_libloc",path);'';'; + put 'put ''run;'';'; + put '*/'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=syscc=&syscc when preparing data_controller_settings)'; + put ')'; + put '%mm_createstp(stpname=Data_Controller_Settings'; + put ',filename=settings.sas'; + put ',directory=&work'; + put ',tree=&root/services/public'; + put ',Server=&serverContext'; + put ',stptype=2'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str('; + put 'Problem updating the dc_staging area in'; + put '&root/services/public/DataController Settings \n'; + put 'SYSERRORTEXT=&SYSERRORTEXT \n'; + put 'SYSWARNINGTEXT=&SYSWARNINGTEXT'; + put ')'; + put ')'; + put 'data _null_;'; + put 'file _webout;'; + put 'put ''

Data Controller Config

'';'; + put 'put ''

The following items have been successfully configured:

'';'; + put 'put "";'; + put 'put "

Next Steps:

";'; + put 'put "
  1. Populate ";'; + put 'put "Table Lineage
  2. ";'; + put 'put "
  3. Populate";'; + put 'put "Data Catalog
  4. ";'; + put 'put "
  5. Now, ";'; + put 'put "hereLaunch!
";'; + put 'run;'; + put '/* We ran successfully, now remove configurator and makedata STPs */'; + put '%mm_deletestp(target=&root/services/admin/configurator)'; + put '%mm_deletestp(target=&_program)'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=makelib; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Files

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as FMTCAT,'; + put 'FMTNAME'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'LENGTH num'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.length as MAXW'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put ')))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] workobs= (0) When set to a positive integer, will create a new'; + put 'output object (WORK) which contains this number of observations from all'; + put 'tables in the WORK library.'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX,workobs=0'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&workobs) > 0 %then %do;'; + put '/* if debug mode, send back first XX records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10'; + put ',maxobs=&workobs'; + put ')'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '%macro mm_assignlib('; + put 'libref'; + put ',mAbort=HARD'; + put ')/*/STORE SOURCE*/;'; + put '%local mp_abort msg;'; + put '%let mp_abort=0;'; + put '%if %sysfunc(libref(&libref)) %then %do;'; + put 'data _null_;'; + put 'length liburi LibName msg $200;'; + put 'call missing(of _all_);'; + put 'nobj=metadata_getnobj("omsobj:SASLibrary?@Libref=''&libref''",1,liburi);'; + put 'if nobj=1 then do;'; + put 'rc=metadata_getattr(liburi,"Name",LibName);'; + put '/* now try and assign it */'; + put 'if libname("&libref",,''meta'',cats(''liburi="'',liburi,''";'')) ne 0 then do;'; + put 'putlog "&libref could not be assigned";'; + put 'putlog liburi=;'; + put '/**'; + put '* Fetch the system message for display in the abort modal. This is'; + put '* not always helpful though. One example, previously received:'; + put '* NOTE: Libref XX refers to the same library metadata as libref XX.'; + put '*/'; + put 'msg=sysmsg();'; + put 'if msg=:''ERROR: Libref SAVE is not assigned.'' then do;'; + put 'msg=catx(" ",'; + put '"Could not assign %upcase(&libref).",'; + put '"Please check metadata permissions! Libname:",libname,'; + put '"Liburi:",liburi'; + put ');'; + put 'end;'; + put 'else if msg="ERROR: User does not have appropriate authorization "!!'; + put '"level for library SAVE."'; + put 'then do;'; + put 'msg=catx(" ",'; + put '"ERROR: User does not have appropriate authorization level",'; + put '"for library %upcase(&libref), libname:",libname,'; + put '"Liburi:",liburi'; + put ');'; + put 'end;'; + put 'call symputx(''msg'',msg,''l'');'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1,''l'');'; + put 'end;'; + put 'else do;'; + put 'put (_all_)(=);'; + put 'call symputx(''libname'',libname,''L'');'; + put 'call symputx(''liburi'',liburi,''L'');'; + put 'end;'; + put 'end;'; + put 'else if nobj>1 then do;'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; + put 'call symputx(''msg'',"More than one library with libref=&libref");'; + put 'end;'; + put 'else do;'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; + put 'call symputx(''msg'',"Library &libref not found in metadata");'; + put 'end;'; + put 'run;'; + put '%put NOTE: &msg;'; + put '%end;'; + put '%else %do;'; + put '%put NOTE: Library &libref is already assigned;'; + put '%end;'; + put '%mp_abort(iftrue= (&mp_abort=1)'; + put ',mac=mm_assignlib.sas'; + put ',msg=%superq(msg)'; + put ')'; + put '%mend mm_assignlib;'; + put '/** @cond */'; + put '%macro mf_getengine(libref'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid engnum rc engine;'; + put '/* in case the parameter is a libref.tablename, pull off just the libref */'; + put '%let libref = %upcase(%scan(&libref, 1, %str(.)));'; + put '%let dsid=%sysfunc('; + put 'open(sashelp.vlibnam(where=(libname="%upcase(&libref)")),i)'; + put ');'; + put '%if (&dsid ^= 0) %then %do;'; + put '%let engnum=%sysfunc(varnum(&dsid,ENGINE));'; + put '%let rc=%sysfunc(fetch(&dsid));'; + put '%let engine=%sysfunc(getvarc(&dsid,&engnum));'; + put '%put &libref. ENGINE is &engine.;'; + put '%let rc= %sysfunc(close(&dsid));'; + put '%end;'; + put '%upcase(&engine)'; + put '%mend mf_getengine;'; + put '/** @endcond */'; + put '%macro mm_assigndirectlib('; + put 'libref /* libref to assign from metadata */'; + put ',open_passthrough= /* provide an alias to produce the'; + put 'CONNECT TO statement for the'; + put 'relevant external database */'; + put ',sql_options= /* add any options to add to proc sql statement eg outobs='; + put '(only valid for pass through) */'; + put ',mDebug=0'; + put ',mAbort=0'; + put ')/*/STORE SOURCE*/;'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing mm_assigndirectlib.sas;'; + put '%&mD.put _local_;'; + put '%if &mAbort=1 %then %let mAbort=;'; + put '%else %let mAbort=%str(*);'; + put '%&mD.put NOTE: Creating direct (non META) connection to &libref library;'; + put '%local cur_engine;'; + put '%let cur_engine=%mf_getengine(&libref);'; + put '%if &cur_engine ne META and &cur_engine ne %then %do;'; + put '%put NOTE: &libref already has a direct (&cur_engine) libname connection;'; + put '%return;'; + put '%end;'; + put '%else %if %upcase(&libref)=WORK %then %do;'; + put '%put NOTE: We already have a direct connection to WORK :-) ;'; + put '%return;'; + put '%end;'; + put '/* need to determine the library ENGINE first */'; + put '%local engine;'; + put 'data _null_;'; + put 'length lib_uri engine $256;'; + put 'call missing (of _all_);'; + put '/* get URI for the particular library */'; + put 'rc1=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put '/* get the Engine attribute of the previous object */'; + put 'rc2=metadata_getattr(lib_uri,''Engine'',engine);'; + put 'putlog "mm_assigndirectlib for &libref:" rc1= lib_uri= rc2= engine=;'; + put 'call symputx("liburi",lib_uri,''l'');'; + put 'call symputx("engine",engine,''l'');'; + put 'run;'; + put '/* now obtain engine specific connection details */'; + put '%if &engine=BASE %then %do;'; + put '%&mD.put NOTE: Retrieving BASE library path;'; + put 'data _null_;'; + put 'length up_uri $256 path cat_path $1024;'; + put 'retain cat_path;'; + put 'call missing (of _all_);'; + put '/* get all the filepaths of the UsingPackages association */'; + put 'i=1;'; + put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; + put 'do while (rc3>0);'; + put '/* get the DirectoryName attribute of the previous object */'; + put 'rc4=metadata_getattr(up_uri,''DirectoryName'',path);'; + put 'if i=1 then path = ''("''!!trim(path)!!''" '';'; + put 'else path ='' "''!!trim(path)!!''" '';'; + put 'cat_path = trim(cat_path) !! " " !! trim(path) ;'; + put 'i+1;'; + put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; + put 'end;'; + put 'cat_path = trim(cat_path) !! ")";'; + put '&mD.putlog "NOTE: Getting physical path for &libref library";'; + put '&mD.putlog rc3= up_uri= rc4= cat_path= path=;'; + put '&mD.putlog "NOTE: Libname cmd will be:";'; + put '&mD.putlog "libname &libref" cat_path;'; + put 'call symputx("filepath",cat_path,''l'');'; + put 'run;'; + put '%if %sysevalf(&sysver<9.4) %then %do;'; + put 'libname &libref &filepath;'; + put '%end;'; + put '%else %do;'; + put '/* apply the new filelocks option to cater for temporary locks */'; + put 'libname &libref &filepath filelockwait=5;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=REMOTE %then %do;'; + put 'data x;'; + put 'length rcCon rcProp rc k 3 uriCon uriProp PropertyValue PropertyName'; + put 'Delimiter $256 properties $2048;'; + put 'retain properties;'; + put 'rcCon = metadata_getnasn("&liburi", "LibraryConnection", 1, uriCon);'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", 1, uriProp);'; + put 'k = 1;'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; + put 'do while (rcProp > 0);'; + put 'rc = metadata_getattr(uriProp , "DefaultValue",PropertyValue);'; + put 'rc = metadata_getattr(uriProp , "PropertyName",PropertyName);'; + put 'rc = metadata_getattr(uriProp , "Delimiter",Delimiter);'; + put 'properties = trim(properties) !! " " !! trim(PropertyName)'; + put '!! trim(Delimiter) !! trim(PropertyValue);'; + put 'output;'; + put 'k+1;'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; + put 'end;'; + put '%&mD.put NOTE: Getting properties for REMOTE SHARE &libref library;'; + put '&mD.put _all_;'; + put '%&mD.put NOTE: Libname cmd will be:;'; + put '%&mD.put libname &libref &engine &properties slibref=&libref;'; + put 'call symputx ("properties",trim(properties),''l'');'; + put 'run;'; + put 'libname &libref &engine &properties slibref=&libref;'; + put '%end;'; + put '%else %if &engine=OLEDB %then %do;'; + put '%&mD.put NOTE: Retrieving OLEDB connection details;'; + put 'data _null_;'; + put 'length domain datasource provider properties schema'; + put 'connx_uri domain_uri conprop_uri lib_uri schema_uri value $256.;'; + put 'call missing (of _all_);'; + put '/* get source connection ID */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; + put '/* get connection domain */'; + put 'rc1=metadata_getnasn(connx_uri,''Domain'',1,domain_uri);'; + put 'rc2=metadata_getattr(domain_uri,''Name'',domain);'; + put '&mD.putlog / ''NOTE: '' // ''NOTE- connection id: '' connx_uri ;'; + put '&mD.putlog ''NOTE- domain: '' domain;'; + put '/* get DSN and PROVIDER from connection properties */'; + put 'i=0;'; + put 'do until (rc<0);'; + put 'i+1;'; + put 'rc=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; + put 'rc2=metadata_getattr(conprop_uri,''Name'',value);'; + put 'if value=''Connection.OLE.Property.DATASOURCE.Name.xmlKey.txt'' then do;'; + put 'rc3=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; + put 'end;'; + put 'else if value=''Connection.OLE.Property.PROVIDER.Name.xmlKey.txt'' then do;'; + put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',provider);'; + put 'end;'; + put 'else if value=''Connection.OLE.Property.PROPERTIES.Name.xmlKey.txt'' then'; + put 'do;'; + put 'rc5=metadata_getattr(conprop_uri,''DefaultValue'',properties);'; + put 'end;'; + put 'end;'; + put '&mD.putlog ''NOTE- dsn/provider/properties: '' /'; + put 'datasource provider properties;'; + put '&mD.putlog ''NOTE- schema: '' schema // ''NOTE-'';'; + put '/* get SCHEMA */'; + put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,lib_uri);'; + put 'rc7=metadata_getattr(lib_uri,''SchemaName'',schema);'; + put 'call symputx(''SQL_domain'',domain,''l'');'; + put 'call symputx(''SQL_dsn'',datasource,''l'');'; + put 'call symputx(''SQL_provider'',provider,''l'');'; + put 'call symputx(''SQL_properties'',properties,''l'');'; + put 'call symputx(''SQL_schema'',schema,''l'');'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put 'proc sql &sql_options;'; + put 'connect to OLEDB as &open_passthrough(INSERT_SQL=YES'; + put '/* need additional properties to make this work */'; + put 'properties=(''Integrated Security''=SSPI'; + put '''Persist Security Info''=True'; + put '%sysfunc(compress(%str(&SQL_properties),%str(())))'; + put ')'; + put 'DATASOURCE=&sql_dsn PROMPT=NO'; + put 'PROVIDER=&sql_provider SCHEMA=&sql_schema CONNECTION = GLOBAL);'; + put '%end;'; + put '%else %do;'; + put 'LIBNAME &libref OLEDB PROPERTIES=&sql_properties'; + put 'DATASOURCE=&sql_dsn PROVIDER=&sql_provider SCHEMA=&sql_schema'; + put '%if %length(&sql_domain)>0 %then %do;'; + put 'authdomain="&sql_domain"'; + put '%end;'; + put 'connection=shared;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=ODBC %then %do;'; + put '&mD.%put NOTE: Retrieving ODBC connection details;'; + put 'data _null_;'; + put 'length connx_uri conprop_uri value datasource up_uri schema $256.;'; + put 'call missing (of _all_);'; + put '/* get source connection ID */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; + put '/* get connection properties */'; + put 'i=0;'; + put 'do until (rc2<0);'; + put 'i+1;'; + put 'rc2=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; + put 'rc3=metadata_getattr(conprop_uri,''Name'',value);'; + put 'if value=''Connection.ODBC.Property.DATASRC.Name.xmlKey.txt'' then do;'; + put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; + put 'rc2=-1;'; + put 'end;'; + put 'end;'; + put '/* get SCHEMA */'; + put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,up_uri);'; + put 'rc7=metadata_getattr(up_uri,''SchemaName'',schema);'; + put '&mD.put rc= connx_uri= rc2= conprop_uri= rc3= value= rc4= datasource='; + put 'rc6= up_uri= rc7= schema=;'; + put 'call symputx(''SQL_schema'',schema,''l'');'; + put 'call symputx(''SQL_dsn'',datasource,''l'');'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put 'proc sql &sql_options;'; + put 'connect to ODBC as &open_passthrough'; + put '(INSERT_SQL=YES DATASRC=&sql_dsn. CONNECTION=global);'; + put '%end;'; + put '%else %do;'; + put 'libname &libref ODBC DATASRC=&sql_dsn SCHEMA=&sql_schema;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=POSTGRES %then %do;'; + put '%put NOTE: Obtaining POSTGRES library details;'; + put 'data _null_;'; + put 'length database ignore_read_only_columns direct_exe preserve_col_names'; + put 'preserve_tab_names server schema authdomain user password'; + put 'prop name value uri urisrc $256.;'; + put 'call missing (of _all_);'; + put '/* get database value */'; + put 'prop=''Connection.DBMS.Property.DB.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,database,"");'; + put 'if database^='''' then database=''database=''!!quote(trim(database));'; + put 'call symputx(''database'',database,''l'');'; + put '/* get IGNORE_READ_ONLY_COLUMNS value */'; + put 'prop=''Library.DBMS.Property.DBIROC.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,ignore_read_only_columns,"");'; + put 'if ignore_read_only_columns^='''' then ignore_read_only_columns='; + put '''ignore_read_only_columns=''!!ignore_read_only_columns;'; + put 'call symputx(''ignore_read_only_columns'',ignore_read_only_columns,''l'');'; + put '/* get DIRECT_EXE value */'; + put 'prop=''Library.DBMS.Property.DirectExe.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,direct_exe,"");'; + put 'if direct_exe^='''' then direct_exe=''direct_exe=''!!direct_exe;'; + put 'call symputx(''direct_exe'',direct_exe,''l'');'; + put '/* get PRESERVE_COL_NAMES value */'; + put 'prop=''Library.DBMS.Property.PreserveColNames.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,preserve_col_names,"");'; + put 'if preserve_col_names^='''' then preserve_col_names='; + put '''preserve_col_names=''!!preserve_col_names;'; + put 'call symputx(''preserve_col_names'',preserve_col_names,''l'');'; + put '/* get PRESERVE_TAB_NAMES value */'; + put '/* be careful with PRESERVE_TAB_NAMES=YES - it will mean your table will'; + put 'become case sensitive!! */'; + put 'prop=''Library.DBMS.Property.PreserveTabNames.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,preserve_tab_names,"");'; + put 'if preserve_tab_names^='''' then preserve_tab_names='; + put '''preserve_tab_names=''!!preserve_tab_names;'; + put 'call symputx(''preserve_tab_names'',preserve_tab_names,''l'');'; + put '/* get SERVER value */'; + put 'if metadata_getnasn("&liburi","LibraryConnection",1,uri)>0 then do;'; + put 'prop=''Connection.DBMS.Property.SERVER.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop(uri,prop,server,"");'; + put 'end;'; + put 'if server^='''' then server=''server=''!!quote(cats(server));'; + put 'call symputx(''server'',server,''l'');'; + put '/* get SCHEMA value */'; + put 'if metadata_getnasn("&liburi","UsingPackages",1,uri)>0 then do;'; + put 'rc=metadata_getattr(uri,"SchemaName",schema);'; + put 'end;'; + put 'if schema^='''' then schema=''schema=''!!schema;'; + put 'call symputx(''schema'',schema,''l'');'; + put '/* get AUTHDOMAIN value */'; + put '/* this is only useful if the user account contains that auth domain'; + put 'if metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then do;'; + put 'rc=metadata_getnasn(uri,"Domain",1,urisrc);'; + put 'rc=metadata_getattr(urisrc,"Name",authdomain);'; + put 'end;'; + put 'if authdomain^='''' then authdomain=''authdomain=''!!quote(trim(authdomain));'; + put '*/'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/* get user & pass */'; + put 'if authdomain='''' & metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then'; + put 'do;'; + put 'rc=metadata_getattr(uri,"UserID",user);'; + put 'rc=metadata_getattr(uri,"Password",password);'; + put 'end;'; + put 'if user^='''' then do;'; + put 'user=''user=''!!quote(trim(user));'; + put 'password=''password=''!!quote(trim(password));'; + put 'end;'; + put 'call symputx(''user'',user,''l'');'; + put 'call symputx(''password'',password,''l'');'; + put '&md.put _all_;'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put '%put %str(WARN)ING: Passthrough option for postgres not yet supported;'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put '%if &mdebug=1 %then %do;'; + put '%put NOTE: Executing the following:/;'; + put '%put NOTE- libname &libref POSTGRES &database &ignore_read_only_columns;'; + put '%put NOTE- &direct_exe &preserve_col_names &preserve_tab_names;'; + put '%put NOTE- &server &schema &authdomain &user &password //;'; + put '%end;'; + put 'libname &libref POSTGRES &database &ignore_read_only_columns &direct_exe'; + put '&preserve_col_names &preserve_tab_names &server &schema &authdomain'; + put '&user &password;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=ORACLE %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null_;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema $256;'; + put 'call missing (of _all_);'; + put '/* get auth domain */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; + put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; + put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/* path */'; + put 'rc=metadata_getprop(assocuri1,'; + put '''Connection.Oracle.Property.PATH.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref ORACLE path=&path schema=&schema;'; + put '%put NOTE- authdomain=&authdomain;'; + put '%put NOTE-;'; + put 'libname &libref ORACLE path=&path schema=&schema authdomain=&authdomain;'; + put '%end;'; + put '%else %if &engine=SQLSVR %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; + put 'passwd $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; + put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; + put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; + put 'call symputx(''user'',userid,''l'');'; + put 'call symputx(''pass'',passwd,''l'');'; + put '/* path */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; + put 'rc=metadata_getprop(assocuri2,'; + put '''Connection.SQL.Property.Datasrc.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref SQLSVR datasrc=&path schema=&schema ;'; + put '%put NOTE- user="&user" pass="XXX";'; + put '%put NOTE-;'; + put 'libname &libref SQLSVR datasrc=&path schema=&schema user="&user" pass="&pass";'; + put '%end;'; + put '%else %if &engine=TERADATA %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; + put 'passwd $256;'; + put 'call missing (of _all_);'; + put '/* get auth domain */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; + put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; + put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/*'; + put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; + put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; + put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; + put 'call symputx(''user'',userid,''l'');'; + put 'call symputx(''pass'',passwd,''l'');'; + put '*/'; + put '/* path */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; + put 'rc=metadata_getprop(assocuri2,'; + put '''Connection.Teradata.Property.SERVER.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref TERADATA server="&path" schema=&schema ;'; + put '%put NOTe- authdomain=&authdomain;'; + put '%put NOTE-;'; + put 'libname &libref TERADATA server="&path" schema=&schema authdomain=&authdomain;'; + put '%end;'; + put '%else %if &engine= %then %do;'; + put '%put NOTE: Libref &libref is not registered in metadata;'; + put '%&mAbort.mp_abort('; + put 'msg=%str(ERR)OR: Libref &libref is not registered in metadata'; + put ',mac=mm_assigndirectlib.sas);'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put '%put %str(WARN)ING: Engine &engine is currently unsupported;'; + put '%put %str(WARN)ING- Please contact your support team.;'; + put '%return;'; + put '%end;'; + put '%mend mm_assigndirectlib;'; + put '%macro mm_getrepos('; + put 'outds=work.mm_getrepos'; + put ')/*/STORE SOURCE*/;'; + put '* use a temporary fileref to hold the response;'; + put 'filename response temp;'; + put '/* get list of libraries */'; + put 'proc metadata in='; + put '"1"'; + put 'out=response;'; + put 'run;'; + put '/* write the response to the log for debugging */'; + put '/*'; + put 'data _null_;'; + put 'infile response lrecl=1048576;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '*/'; + put '/* create an XML map to read the response */'; + put 'filename sxlemap temp;'; + put 'data _null_;'; + put 'file sxlemap;'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository";'; + put 'put "";'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Id";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Name";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Desc";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@DefaultNS";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryType";'; + put 'put "characterstring20";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryFormat";'; + put 'put "characterstring10";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@Access";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@CurrentAccess";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@PauseState";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Path";'; + put 'put "";'; + put 'put "characterstring256";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Engine";'; + put 'put "";'; + put 'put "characterstring8";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Options";'; + put 'put "";'; + put 'put "characterstring32";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataCreated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataUpdated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put ''
'';'; + put 'run;'; + put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; + put 'proc sort data= _XML_.SASRepos out=&outds;'; + put 'by name;'; + put 'run;'; + put '/* clear references */'; + put 'filename sxlemap clear;'; + put 'filename response clear;'; + put 'libname _XML_ clear;'; + put '%mend mm_getrepos;'; + put '%macro dc_assignlib(type,libref,passthru=);'; + put '%put &sysmacroname entry vars:;'; + put '%put _local_;'; + put '/* take current repository */'; + put '%local repo repocnt x;'; + put '%let repo=%sysfunc(getoption(metarepository));'; + put '/* get list of repositories and filter */'; + put '%mm_getrepos(outds=repos)'; + put '%let repocnt=0;'; + put 'data repos;'; + put 'set repos;'; + put 'where repositorytype in(''CUSTOM'',''FOUNDATION'')'; + put '& upcase(name) ne "%upcase(&repo)";'; + put 'keep id name ;'; + put 'call symputx(cats(''repo'',_n_),name,''l'');'; + put 'call symputx(''repocnt'',_n_,''l'');'; + put 'run;'; + put '/* find out which of these repositories has the libref we are searching for */'; + put '%local lib_uri;'; + put '%let lib_uri=NOTFOUND;'; + put 'data _null_; /* check default repo first */'; + put 'length lib_uri $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; + put 'run;'; + put '%if &lib_uri=NOTFOUND %then %do;'; + put '%do x=1 %to &repocnt;'; + put 'options metarepository=&&repo&x;'; + put 'data _null_;'; + put 'length lib_uri $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; + put 'run;'; + put '%if &lib_uri ne NOTFOUND %then %let x=%eval(&repocnt+1);'; + put '%end;'; + put '%end;'; + put '%if &type=READ %then %do;'; + put '%mm_assignlib(&libref)'; + put '%end;'; + put '%else %if &type=WRITE %then %do;'; + put '%mm_assigndirectlib(&libref,open_passthrough=&passthru)'; + put '%end;'; + put 'options metarepository=&repo;'; + put '%mend dc_assignlib;'; + put '%macro mf_abort(mac=mf_abort.sas, msg=, iftrue=%str(1=1)'; + put ')/*/STORE SOURCE*/;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mf_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%abort;'; + put '%mend mf_abort;'; + put '/** @endcond */'; + put '%macro mf_verifymacvars('; + put 'verifyVars /* list of macro variable NAMES */'; + put ',makeUpcase=NO /* set to YES to make all the variable VALUES uppercase */'; + put ',mAbort=SOFT'; + put ')/*/STORE SOURCE*/;'; + put '%local verifyIterator verifyVar abortmsg;'; + put '%do verifyIterator=1 %to %sysfunc(countw(&verifyVars,%str( )));'; + put '%let verifyVar=%qscan(&verifyVars,&verifyIterator,%str( ));'; + put '%if not %symexist(&verifyvar) %then %do;'; + put '%let abortmsg= Variable &verifyVar is MISSING;'; + put '%goto exit_err;'; + put '%end;'; + put '%if %length(%trim(&&&verifyVar))=0 %then %do;'; + put '%let abortmsg= Variable &verifyVar is EMPTY;'; + put '%goto exit_err;'; + put '%end;'; + put '%if &makeupcase=YES %then %do;'; + put '%let &verifyVar=%upcase(&&&verifyvar);'; + put '%end;'; + put '%end;'; + put '%goto exit_success;'; + put '%exit_err:'; + put '%put &abortmsg;'; + put '%mf_abort(iftrue=(&mabort ne SOFT),'; + put 'mac=mf_verifymacvars,'; + put 'msg=%str(&abortmsg)'; + put ')'; + put '0'; + put '%return;'; + put '%exit_success:'; + put '1'; + put '%mend mf_verifymacvars;'; + put '%macro mm_createfolder(path=,mDebug=0);'; + put '%put &sysmacroname: execution started for &path;'; + put '%local dbg errorcheck;'; + put '%if &mDebug=0 %then %let dbg=*;'; + put '%local parentFolderObjId child errorcheck paths;'; + put '%let paths=0;'; + put '%let errorcheck=1;'; + put '%if &syscc ge 4 %then %do;'; + put '%put SYSCC=&syscc - this macro requires a clean session;'; + put '%return;'; + put '%end;'; + put 'data _null_;'; + put 'length objId parentId objType parent child $200'; + put 'folderPath $1000;'; + put 'call missing (of _all_);'; + put 'folderPath = "%trim(&path)";'; + put '* remove any trailing slash ;'; + put 'if ( substr(folderPath,length(folderPath),1) = ''/'' ) then'; + put 'folderPath=substr(folderPath,1,length(folderPath)-1);'; + put '* name must not be blank;'; + put 'if ( folderPath = '''' ) then do;'; + put 'put "%str(ERR)OR: &sysmacroname PATH parameter value must be non-blank";'; + put 'end;'; + put '* must have a starting slash ;'; + put 'if ( substr(folderPath,1,1) ne ''/'' ) then do;'; + put 'put "%str(ERR)OR: &sysmacroname PATH param value must have starting slash";'; + put 'stop;'; + put 'end;'; + put '* check if folder already exists ;'; + put 'rc=metadata_pathobj('''',cats(folderPath,"(Folder)"),"",objType,objId);'; + put 'if rc ge 1 then do;'; + put 'put "NOTE: Folder " folderPath " already exists!";'; + put 'stop;'; + put 'end;'; + put '* do not create a root (one level) folder ;'; + put 'if countc(folderPath,''/'')=1 then do;'; + put 'put "%str(ERR)OR: &sysmacroname will not create a new ROOT folder";'; + put 'stop;'; + put 'end;'; + put '* check that root folder exists ;'; + put 'root=cats(''/'',scan(folderpath,1,''/''),"(Folder)");'; + put 'if metadata_pathobj('''',root,"",objType,parentId)<1 then do;'; + put 'put "%str(ERR)OR: " root " does not exist!";'; + put 'stop;'; + put 'end;'; + put '* check that parent folder exists ;'; + put 'child=scan(folderPath,-1,''/'');'; + put 'parent=substr(folderpath,1,length(folderpath)-length(child)-1);'; + put 'rc=metadata_pathobj('''',cats(parent,"(Folder)"),"",objType,parentId);'; + put 'if rc<1 then do;'; + put 'putlog ''The following folders will be created:'';'; + put '/* folder does not exist - so start from top and work down */'; + put 'length newpath $1000;'; + put 'paths=0;'; + put 'do x=2 to countw(folderpath,''/'');'; + put 'newpath='''';'; + put 'do i=1 to x;'; + put 'newpath=cats(newpath,''/'',scan(folderpath,i,''/''));'; + put 'end;'; + put 'rc=metadata_pathobj('''',cats(newpath,"(Folder)"),"",objType,parentId);'; + put 'if rc<1 then do;'; + put 'paths+1;'; + put 'call symputx(cats(''path'',paths),newpath);'; + put 'putlog newpath;'; + put 'end;'; + put 'call symputx(''paths'',paths);'; + put 'end;'; + put 'end;'; + put 'else putlog "parent " parent " exists";'; + put 'call symputx(''parentFolderObjId'',parentId,''l'');'; + put 'call symputx(''child'',child,''l'');'; + put 'call symputx(''errorcheck'',0,''l'');'; + put '&dbg put (_all_)(=);'; + put 'run;'; + put '%if &errorcheck=1 or &syscc ge 4 %then %return;'; + put '%if &paths>0 %then %do x=1 %to &paths;'; + put '%put executing recursive call for &&path&x;'; + put '%mm_createfolder(path=&&path&x)'; + put '%end;'; + put '%else %do;'; + put 'filename __newdir temp;'; + put 'options noquotelenmax;'; + put '%local inmeta;'; + put '%put creating: &path;'; + put '%let inmeta=$METAREPOSITORY'; + put ''; + put 'SAS268435456'; + put ';'; + put 'proc metadata in="&inmeta" out=__newdir verbose;'; + put 'run ;'; + put '/* check it was successful */'; + put 'data _null_;'; + put 'length objId parentId objType parent child $200 ;'; + put 'call missing (of _all_);'; + put 'rc=metadata_pathobj('''',cats("&path","(Folder)"),"",objType,objId);'; + put 'if rc ge 1 then do;'; + put 'putlog "SUCCCESS! &path created.";'; + put 'end;'; + put 'else do;'; + put 'putlog "%str(ERR)OR: unsuccessful attempt to create &path";'; + put 'call symputx(''syscc'',8);'; + put 'end;'; + put 'run;'; + put '/* write the response to the log for debugging */'; + put '%if &mDebug ne 0 %then %do;'; + put 'data _null_;'; + put 'infile __newdir lrecl=32767;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '%end;'; + put 'filename __newdir clear;'; + put '%end;'; + put '%put &sysmacroname: execution finished for &path;'; + put '%mend mm_createfolder;'; + put '%macro mm_createlibrary('; + put 'libname=My New Library'; + put ',libref=mynewlib'; + put ',libdesc=Created automatically using the mm_createlibrary macro'; + put ',engine=BASE'; + put ',tree=/User Folders/sasdemo'; + put ',servercontext=SASApp'; + put ',directory=/tmp/somelib'; + put ',IsPreassigned=0'; + put ',mDebug=0'; + put ',frefin=mm_in'; + put ',frefout=mm_out'; + put ')/*/STORE SOURCE*/;'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%let libref=%upcase(&libref);'; + put '/**'; + put '* Check Library does not exist already with this libname'; + put '*/'; + put 'data _null_;'; + put 'length type uri $256;'; + put 'rc=metadata_resolve("omsobj:SASLibrary?@Name=''&libname''",type,uri);'; + put 'call symputx(''checktype'',type,''l'');'; + put 'call symputx(''liburi'',uri,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if &checktype = SASLibrary %then %do;'; + put '%put %str(WARN)ING: Library (&liburi) already exists with libname (&libname);'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Check Library does not exist already with this libref'; + put '*/'; + put 'data _null_;'; + put 'length type uri $256;'; + put 'rc=metadata_resolve("omsobj:SASLibrary?@Libref=''&libref''",type,uri);'; + put 'call symputx(''checktype'',type,''l'');'; + put 'call symputx(''liburi'',uri,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if &checktype = SASLibrary %then %do;'; + put '%put %str(WARN)ING: Library (&liburi) already exists with libref (&libref) ;'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Attempt to create tree'; + put '*/'; + put '%mm_createfolder(path=&tree)'; + put '/**'; + put '* check tree exists'; + put '*/'; + put 'data _null_;'; + put 'length type uri $256;'; + put 'rc=metadata_pathobj("","&tree","Folder",type,uri);'; + put 'call symputx(''foldertype'',type,''l'');'; + put 'call symputx(''treeuri'',uri,''l'');'; + put 'run;'; + put '%if &foldertype ne Tree %then %do;'; + put '%put %str(WARN)ING: Tree &tree does not exist!;'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Create filerefs for proc metadata call'; + put '*/'; + put 'filename &frefin temp;'; + put 'filename &frefout temp;'; + put '%mp_abort(iftrue= ('; + put '&engine=BASE & %mf_verifymacvars(libname libref engine servercontext tree)=0'; + put ')'; + put ',mac=&sysmacroname'; + put ',msg=%str(Empty inputs: libname libref engine servercontext tree)'; + put ')'; + put '%if &engine=BASE %then %do;'; + put '/**'; + put '* Check that the ServerContext exists'; + put '*/'; + put 'data _null_;'; + put 'length type uri $256;'; + put 'rc=metadata_resolve("omsobj:ServerContext?@Name=''&ServerContext''",type,uri);'; + put 'call symputx(''checktype'',type,''l'');'; + put 'call symputx(''serveruri'',uri,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if &checktype ne ServerContext %then %do;'; + put '%put %str(ERR)OR: ServerContext (&ServerContext) does not exist!;'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Get prototype info'; + put '*/'; + put 'data _null_;'; + put 'length type uri str $256;'; + put 'str="omsobj:Prototype?@Name=''Library.SAS.Prototype.Name.xmlKey.txt''";'; + put 'rc=metadata_resolve(str,type,uri);'; + put 'call symputx(''checktype'',type,''l'');'; + put 'call symputx(''prototypeuri'',uri,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if &checktype ne Prototype %then %do;'; + put '%put %str(ERR)OR: Prototype Library.SAS.Prototype.Name.xmlKey.txt not found;'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Check that Physical location exists'; + put '*/'; + put '%if %sysfunc(fileexist(&directory))=0 %then %do;'; + put '%put %str(ERR)OR: Physical directory (&directory) does not appear to exist!;'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Check that Directory Object exists in metadata'; + put '*/'; + put 'data _null_;'; + put 'length type uri $256;'; + put 'rc=metadata_resolve("omsobj:Directory?@DirectoryRole=''LibraryPath''"'; + put '!!" and @DirectoryName=''&directory''",type,uri);'; + put 'call symputx(''checktype'',type,''l'');'; + put 'call symputx(''directoryuri'',uri,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if &checktype ne Directory %then %do;'; + put '%put NOTE: Directory object does not exist for (&directory) location;'; + put '%put NOTE: It will now be created;'; + put 'data _null_;'; + put 'file &frefin;'; + put 'directory=quote(symget(''directory''));'; + put 'put "$METAREPOSITORY "/'; + put '''''/'; + put '"SAS"/'; + put '"268435456";'; + put 'run;'; + put 'proc metadata in= &frefin out=&frefout %if &mdebug=1 %then verbose;;'; + put 'run;'; + put '%if &mdebug=1 %then %do;'; + put 'data _null_;'; + put 'infile &frefout lrecl=1048576;'; + put 'input; put _infile_;'; + put 'run;'; + put '%end;'; + put '%put NOTE: Checking to ensure directory (&directory) object was created;'; + put 'data _null_;'; + put 'length type uri $256;'; + put 'rc=metadata_resolve("omsobj:Directory?@DirectoryRole=''LibraryPath''"'; + put '!!" and @DirectoryName=''&directory''",type,uri);'; + put 'call symputx(''checktype2'',type,''l'');'; + put 'call symputx(''directoryuri'',uri,''l'');'; + put '%if &mdebug=1 %then putlog (_all_)(=);;'; + put 'run;'; + put '%if &checktype2 ne Directory %then %do;'; + put '%put %str(ERR)OR: Directory (&directory) object was NOT created!;'; + put '%return;'; + put '%end;'; + put '%else %put NOTE: Directory (&directoryuri) successfully created!;'; + put '%end;'; + put '/**'; + put '* check SAS version'; + put '*/'; + put '%if %sysevalf(&sysver lt 9.3) %then %do;'; + put '%put %str(WARN)ING: Version 9.3 or later required;'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Prepare the XML and create the library'; + put '*/'; + put 'data _null_;'; + put 'file &frefin;'; + put 'treeuri=quote(symget(''treeuri''));'; + put 'serveruri=quote(symget(''serveruri''));'; + put 'directoryuri=quote(symget(''directoryuri''));'; + put 'libname=quote(symget(''libname''));'; + put 'libref=quote(symget(''libref''));'; + put 'IsPreassigned=quote(symget(''IsPreassigned''));'; + put 'prototypeuri=quote(symget(''prototypeuri''));'; + put '/* escape description so it can be stored as XML */'; + put 'libdesc=tranwrd(symget(''libdesc''),''&'',''&'');'; + put 'libdesc=tranwrd(libdesc,''<'',''<'');'; + put 'libdesc=tranwrd(libdesc,''>'',''>'');'; + put 'libdesc=tranwrd(libdesc,"''",''''');'; + put 'libdesc=tranwrd(libdesc,''"'',''"'');'; + put 'libdesc=tranwrd(libdesc,''0A''x,'' '');'; + put 'libdesc=tranwrd(libdesc,''0D''x,'' '');'; + put 'libdesc=tranwrd(libdesc,''$'',''$'');'; + put 'libdesc=quote(trim(libdesc));'; + put 'put "$METAREPOSITORY "/'; + put '''''/'; + put ''' ''/'; + put ''' "/'; + put ''' ''/'; + put ''' ''/'; + put ''' ''/'; + put ''' ''/'; + put '" "/'; + put ''' ''/'; + put ''' ''/'; + put ''' ''/'; + put ''' ''/'; + put ''' ''/'; + put ''' ''/'; + put '''SAS''/'; + put '''268435456'';'; + put 'run;'; + put 'proc metadata in= &frefin out=&frefout %if &mdebug=1 %then verbose ;;'; + put 'run;'; + put '%if &mdebug=1 %then %do;'; + put 'data _null_;'; + put 'infile &frefout lrecl=1048576;'; + put 'input;put _infile_;'; + put 'run;'; + put '%end;'; + put '%put NOTE: Checking to ensure library (&libname) was created;'; + put 'data _null_;'; + put 'length type uri $256;'; + put 'rc=metadata_pathobj("","&tree/&libname","Library",type,uri);'; + put 'call symputx(''libtype'',type,''l'');'; + put 'call symputx(''liburi'',uri,''l'');'; + put '%if &mdebug=1 %then putlog (_all_)(=);;'; + put 'run;'; + put '%if &libtype ne SASLibrary %then %do;'; + put '%put %str(ERR)OR: Could not find (&libname) at (&tree)!!;'; + put '%return;'; + put '%end;'; + put '%else %put NOTE: Library (&libname) successfully created in (&tree)!;'; + put '%end;'; + put '%else %do;'; + put '%put %str(ERR)OR: Other library engine types are not yet supported!!;'; + put '%end;'; + put '/**'; + put '* Wrap up'; + put '*/'; + put '%if &mdebug ne 1 %then %do;'; + put 'filename &frefin clear;'; + put 'filename &frefout clear;'; + put '%end;'; + put '%mend mm_createlibrary;'; + put '%macro mm_createdocument('; + put 'tree=/User Folders/sasdemo'; + put ',name=myNote'; + put ',desc=Created by &sysmacroname'; + put ',textrole='; + put ',frefin=mm_in'; + put ',frefout=mm_out'; + put ',mDebug=1'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%mp_abort(iftrue= (%mf_verifymacvars(tree name)=0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Empty inputs: tree name)'; + put ')'; + put '/**'; + put '* check tree exists'; + put '*/'; + put 'data _null_;'; + put 'length type uri $256;'; + put 'rc=metadata_pathobj("","&tree","Folder",type,uri);'; + put 'call symputx(''type'',type,''l'');'; + put 'call symputx(''treeuri'',uri,''l'');'; + put 'run;'; + put '%mp_abort('; + put 'iftrue= (&type ne Tree)'; + put ',mac=mm_createdocument.sas'; + put ',msg=Tree &tree does not exist!'; + put ')'; + put '/**'; + put '* Check object does not exist already'; + put '*/'; + put 'data _null_;'; + put 'length type uri $256;'; + put 'rc=metadata_pathobj("","&tree/&name","Note",type,uri);'; + put 'call symputx(''type'',type,''l'');'; + put 'call symputx(''docuri'',uri,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if &type = Document %then %do;'; + put '%put Document &name already exists in &tree!;'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Now we can create the document'; + put '*/'; + put 'filename &frefin temp;'; + put '/* write header XML */'; + put 'data _null_;'; + put 'file &frefin;'; + put 'name=quote("&name");'; + put 'desc=quote("&desc");'; + put 'textrole=quote("&textrole");'; + put 'treeuri=quote("&treeuri");'; + put 'put "$METAREPOSITORY"/'; + put '''"/'; + put '" "/'; + put ''' '' /'; + put '''''/'; + put '/*URI="Document for public note" */'; + put '""/'; + put '"SAS"/'; + put '"268435456";'; + put 'run;'; + put 'filename &frefout temp;'; + put 'proc metadata in= &frefin out=&frefout verbose;'; + put 'run;'; + put '%if &mdebug=1 %then %do;'; + put '/* write the response to the log for debugging */'; + put 'data _null_;'; + put 'infile &frefout lrecl=1048576;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '%end;'; + put '%mend mm_createdocument;'; + put '%macro mm_deletedocument('; + put 'target='; + put ')/*/STORE SOURCE*/;'; + put '/**'; + put '* Check document exist'; + put '*/'; + put '%local type;'; + put 'data _null_;'; + put 'length type uri $256;'; + put 'rc=metadata_pathobj("","&target",''Note'',type,uri);'; + put 'call symputx(''type'',type,''l'');'; + put 'call symputx(''stpuri'',uri,''l'');'; + put 'run;'; + put '%if &type ne Document %then %do;'; + put '%put %str(WARN)ING: No Document found at ⌖'; + put '%return;'; + put '%end;'; + put 'filename __in temp lrecl=10000;'; + put 'filename __out temp lrecl=10000;'; + put 'data _null_ ;'; + put 'file __in ;'; + put 'put "";'; + put 'put "SAS268436480";'; + put 'put "";'; + put 'run ;'; + put 'proc metadata in=__in out=__out verbose;run;'; + put '/* list the result */'; + put 'data _null_;infile __out; input; list; run;'; + put 'filename __in clear;'; + put 'filename __out clear;'; + put '/**'; + put '* Check deletion'; + put '*/'; + put '%local isgone;'; + put 'data _null_;'; + put 'length type uri $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_pathobj("","&target",''Note'',type,uri);'; + put 'call symputx(''isgone'',type,''l'');'; + put 'run;'; + put '%if &isgone = Document %then %do;'; + put '%put %str(ERR)OR: Document not deleted from ⌖'; + put '%let syscc=4;'; + put '%return;'; + put '%end;'; + put '%mend mm_deletedocument;'; + put '%macro mm_deletestp('; + put 'target='; + put ')/*/STORE SOURCE*/;'; + put '/**'; + put '* Check STP does exist'; + put '*/'; + put '%local cmtype;'; + put 'data _null_;'; + put 'length type uri $256;'; + put 'rc=metadata_pathobj("","&target",''StoredProcess'',type,uri);'; + put 'call symputx(''cmtype'',type,''l'');'; + put 'call symputx(''stpuri'',uri,''l'');'; + put 'run;'; + put '%if &cmtype ne ClassifierMap %then %do;'; + put '%put NOTE: No Stored Process found at ⌖'; + put '%return;'; + put '%end;'; + put 'filename __in temp lrecl=10000;'; + put 'filename __out temp lrecl=10000;'; + put 'data _null_ ;'; + put 'file __in ;'; + put 'put "";'; + put 'put "SAS268436480";'; + put 'put "";'; + put 'run ;'; + put 'proc metadata in=__in out=__out verbose;run;'; + put '/* list the result */'; + put 'data _null_;infile __out; input; list; run;'; + put 'filename __in clear;'; + put 'filename __out clear;'; + put '/**'; + put '* Check deletion'; + put '*/'; + put '%local isgone;'; + put 'data _null_;'; + put 'length type uri $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_pathobj("","&target",''Note'',type,uri);'; + put 'call symputx(''isgone'',type,''l'');'; + put 'run;'; + put '%if &isgone = ClassifierMap %then %do;'; + put '%put %str(ERR)OR: STP not deleted from ⌖'; + put '%let syscc=4;'; + put '%return;'; + put '%end;'; + put '%mend mm_deletestp;'; + put '%macro mf_getattrn('; + put 'libds'; + put ',attr'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid rc;'; + put '%let dsid=%sysfunc(open(&libds,is));'; + put '%if &dsid = 0 %then %do;'; + put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; + put '%put %sysfunc(sysmsg());'; + put '-1'; + put '%end;'; + put '%else %do;'; + put '%sysfunc(attrn(&dsid,&attr))'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%mend mf_getattrn;'; + put '%macro mf_nobs(libds'; + put ')/*/STORE SOURCE*/;'; + put '%mf_getattrn(&libds,NLOBS)'; + put '%mend mf_nobs;'; + put '%macro mm_getDirectories('; + put 'path='; + put ',outds=work.mm_getDirectories'; + put ',mDebug=0'; + put ')/*/STORE SOURCE*/;'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing mm_getDirectories.sas;'; + put '%&mD.put _local_;'; + put 'data &outds (keep=directoryuri name directoryname directorydesc );'; + put 'length directoryuri name directoryname directorydesc $256;'; + put 'call missing(of _all_);'; + put '__i+1;'; + put '%if %length(&path)=0 %then %do;'; + put 'do while'; + put '(metadata_getnobj("omsobj:Directory?@Id contains ''.''",__i,directoryuri)>0);'; + put '%end; %else %do;'; + put 'do while('; + put 'metadata_getnobj("omsobj:Directory?@DirectoryName=''&path''",__i,directoryuri)'; + put '>0'; + put ');'; + put '%end;'; + put '__rc1=metadata_getattr(directoryuri, "Name", name);'; + put '__rc2=metadata_getattr(directoryuri, "DirectoryName", directoryname);'; + put '__rc3=metadata_getattr(directoryuri, "Desc", directorydesc);'; + put '&mD.putlog (_all_) (=);'; + put 'drop __:;'; + put '__i+1;'; + put 'if sum(of __rc1-__rc3)=0 then output;'; + put 'end;'; + put 'run;'; + put '%mend mm_getDirectories;'; + put '%macro mm_updatestpsourcecode(stp='; + put ',stpcode='; + put ',minify=NO'; + put ',mdebug=0'; + put ');'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&stp.(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '%if &mdebug=1 %then %do;'; + put 'put tsuri= value=;'; + put '%end;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%if &tsuri=stopifempty %then %do;'; + put '%put %str(WARN)ING: &stp.(StoredProcess) not found!;'; + put '%return;'; + put '%end;'; + put '%if %length(&stpcode)<2 %then %do;'; + put '%put %str(WARN)ING: No SAS code supplied!!;'; + put '%return;'; + put '%end;'; + put '%local frefin frefout;'; + put '%let frefin=%mf_getuniquefileref();'; + put '%let frefout=%mf_getuniquefileref();'; + put '/* write header XML */'; + put 'data _null_;'; + put 'file &frefin;'; + put 'put "$METAREPOSITORY'; + put '2 %then %do;'; + put 'data _null_;'; + put 'file &frefin lrecl=32767 mod;'; + put 'infile &stpcode lrecl=32767;'; + put 'length outstr $32767;'; + put 'input outstr ;'; + put '/* escape code so it can be stored as XML */'; + put 'outstr=tranwrd(_infile_,''&'',''&'');'; + put 'outstr=tranwrd(outstr,''<'',''<'');'; + put 'outstr=tranwrd(outstr,''>'',''>'');'; + put 'outstr=tranwrd(outstr,"''",''''');'; + put 'outstr=tranwrd(outstr,''"'',''"'');'; + put 'outstr=tranwrd(outstr,''0A''x,'' '');'; + put 'outstr=tranwrd(outstr,''0D''x,'' '');'; + put 'outstr=tranwrd(outstr,''$'',''$'');'; + put '%if &minify=YES %then %do;'; + put 'outstr=cats(outstr);'; + put 'if outstr ne '''';'; + put 'if not (outstr=:''/*'' and subpad(left(reverse(outstr)),1,2)=''/*'');'; + put '%end;'; + put 'outstr=trim(outstr);'; + put 'put outstr '' '';'; + put 'run;'; + put '%end;'; + put 'data _null_;'; + put 'file &frefin mod;'; + put 'put "''>SAS268435456'; + put '";'; + put 'run;'; + put 'proc metadata in= &frefin out=&frefout;'; + put 'run;'; + put '%if &mdebug=1 %then %do;'; + put '/* write the response to the log for debugging */'; + put 'data _null_;'; + put 'infile &frefout lrecl=32767;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put 'filename &frefin clear;'; + put 'filename &frefout clear;'; + put '%end;'; + put '%mend mm_updatestpsourcecode;'; + put '%macro mm_getservercontexts('; + put 'outds=work.mm_getrepos'; + put ')/*/STORE SOURCE*/;'; + put '%local repo repocnt x;'; + put '%let repo=%sysfunc(getoption(metarepository));'; + put '/* first get list of available repos */'; + put '%mm_getrepos(outds=work.repos)'; + put '%let repocnt=0;'; + put 'data _null_;'; + put 'set repos;'; + put 'where repositorytype in(''CUSTOM'',''FOUNDATION'');'; + put 'keep id name ;'; + put 'call symputx(cats(''repo'',_n_),name,''l'');'; + put 'call symputx(''repocnt'',_n_,''l'');'; + put 'run;'; + put 'filename __mc1 temp;'; + put 'filename __mc2 temp;'; + put 'data &outds;'; + put 'length serveruri servername $200;'; + put 'call missing (of _all_);'; + put 'stop;'; + put 'run;'; + put '%do x=1 %to &repocnt;'; + put 'options metarepository=&&repo&x;'; + put 'proc metadata in='; + put '"$METAREPOSITORY'; + put 'ServerContextSAS'; + put '0"'; + put 'out=__mc1;'; + put 'run;'; + put '/*'; + put 'data _null_;'; + put 'infile __mc1 lrecl=1048576;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '*/'; + put 'data _null_;'; + put 'file __mc2;'; + put 'put '''';'; + put 'put "/GetMetadataObjects/Objects/ServerContext";'; + put 'put "";'; + put 'put '''';'; + put 'put "/GetMetadataObjects/Objects/ServerContext/@Id";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetMetadataObjects/Objects/ServerContext/@Name";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put ''
'';'; + put 'run;'; + put 'libname __mc3 xml xmlfileref=__mc1 xmlmap=__mc2;'; + put 'proc append base=&outds data=__mc3.SASContexts;run;'; + put 'libname __mc3 clear;'; + put '%end;'; + put 'options metarepository=&repo;'; + put 'filename __mc1 clear;'; + put 'filename __mc2 clear;'; + put '%mend mm_getservercontexts;'; + put '%macro mf_isblank(param'; + put ')/*/STORE SOURCE*/;'; + put '%sysevalf(%superq(param)=,boolean)'; + put '%mend mf_isblank;'; + put '%macro mp_dropmembers('; + put 'list /* space separated list of datasets / views */'; + put ',libref=WORK /* can only drop from a single library at a time */'; + put ',iftrue=%str(1=1)'; + put ')/*/STORE SOURCE*/;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%if %mf_isblank(&list) %then %do;'; + put '%put NOTE: nothing to drop!;'; + put '%return;'; + put '%end;'; + put 'proc datasets lib=&libref nolist;'; + put 'delete &list;'; + put 'delete &list /mtype=view;'; + put 'run;'; + put '%mend mp_dropmembers;'; + put '%macro mm_createstp('; + put 'stpname=Macro People STP'; + put ',stpdesc=This stp was created automatically by the mm_createstp macro'; + put ',filename=mm_createstp.sas'; + put ',directory=SASEnvironment/SASCode'; + put ',tree=/User Folders/sasdemo'; + put ',package=false'; + put ',streaming=true'; + put ',outds=work.mm_createstp'; + put ',mDebug=0'; + put ',server=SASApp'; + put ',stptype=1'; + put ',minify=NO'; + put ',frefin=mm_in'; + put ',frefout=mm_out'; + put ')/*/STORE SOURCE*/;'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing mm_CreateSTP.sas;'; + put '%&mD.put _local_;'; + put '%mp_abort('; + put 'iftrue=(%mf_verifymacvars(stpname filename directory tree)=0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Empty inputs: stpname filename directory tree)'; + put ')'; + put '%mp_dropmembers(%scan(&outds,2,.))'; + put '/**'; + put '* check tree exists'; + put '*/'; + put 'data _null_;'; + put 'length type uri $256;'; + put 'rc=metadata_pathobj("","&tree","Folder",type,uri);'; + put 'call symputx(''foldertype'',type,''l'');'; + put 'call symputx(''treeuri'',uri,''l'');'; + put 'run;'; + put '%if &foldertype ne Tree %then %do;'; + put '%put %str(WARN)ING: Tree &tree does not exist!;'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Check STP does not exist already'; + put '*/'; + put '%local cmtype;'; + put 'data _null_;'; + put 'length type uri $256;'; + put 'rc=metadata_pathobj("","&tree/&stpname",''StoredProcess'',type,uri);'; + put 'call symputx(''cmtype'',type,''l'');'; + put 'call symputx(''stpuri'',uri,''l'');'; + put 'run;'; + put '%if &cmtype = ClassifierMap %then %do;'; + put '%put %str(WARN)ING: Stored Process &stpname already exists in &tree!;'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Check that the physical file exists'; + put '*/'; + put '%if %sysfunc(fileexist(&directory/&filename)) ne 1 %then %do;'; + put '%put %str(WARN)ING: FILE *&directory/&filename* NOT FOUND!;'; + put '%return;'; + put '%end;'; + put '%if &stptype=1 %then %do;'; + put '/* type 1 STP - where code is stored on filesystem */'; + put '%if %sysevalf(&sysver lt 9.2) %then %do;'; + put '%put %str(WARN)ING: Version 9.2 or later required;'; + put '%return;'; + put '%end;'; + put '/* check directory object (where 9.2 source code reference is stored) */'; + put 'data _null_;'; + put 'length id $20 dirtype $256;'; + put 'rc=metadata_resolve("&directory",dirtype,id);'; + put 'call symputx(''checkdirtype'',dirtype,''l'');'; + put 'run;'; + put '%if &checkdirtype ne Directory %then %do;'; + put '%mm_getdirectories(path=&directory,outds=&outds ,mDebug=&mDebug)'; + put '%if %mf_nobs(&outds)=0 or %sysfunc(exist(&outds))=0 %then %do;'; + put '%put %str(WARN)ING: The directory object does not exist for &directory;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put 'data &outds;'; + put 'directoryuri="&directory";'; + put 'run;'; + put '%end;'; + put 'data &outds (keep=stpuri prompturi fileuri texturi);'; + put 'length stpuri prompturi fileuri texturi serveruri $256 ;'; + put 'if _n_=1 then call missing (of _all_);'; + put 'set &outds;'; + put '/* final checks on uris */'; + put 'length id $20 type $256;'; + put '__rc=metadata_resolve("&treeuri",type,id);'; + put 'if type ne ''Tree'' then do;'; + put 'putlog "%str(WARN)ING: Invalid tree URI: &treeuri";'; + put 'stopme=1;'; + put 'end;'; + put '__rc=metadata_resolve(directoryuri,type,id);'; + put 'if type ne ''Directory'' then do;'; + put 'putlog "%str(WARN)ING: Invalid directory URI: " directoryuri;'; + put 'stopme=1;'; + put 'end;'; + put '/* get server info */'; + put '__rc=metadata_resolve("&server",type,serveruri);'; + put 'if type ne ''LogicalServer'' then do;'; + put '__rc=metadata_getnobj("omsobj:LogicalServer?@Name=''&server''",1,serveruri);'; + put 'if serveruri='''' then do;'; + put 'putlog "%str(WARN)ING: Invalid server: &server";'; + put 'stopme=1;'; + put 'end;'; + put 'end;'; + put 'if stopme=1 then do;'; + put 'putlog (_all_)(=);'; + put 'stop;'; + put 'end;'; + put '/* create empty prompt */'; + put 'rc1=METADATA_NEWOBJ(''PromptGroup'',prompturi,''Parameters'');'; + put 'rc2=METADATA_SETATTR(prompturi, ''UsageVersion'', ''1000000'');'; + put 'rc3=METADATA_SETATTR(prompturi, ''GroupType'',''2'');'; + put 'rc4=METADATA_SETATTR(prompturi, ''Name'',''Parameters'');'; + put 'rc5=METADATA_SETATTR(prompturi, ''PublicType'',''Embedded:PromptGroup'');'; + put 'GroupInfo='; + put '"";'; + put 'rc6 = METADATA_SETATTR(prompturi, ''GroupInfo'',groupinfo);'; + put 'if sum(of rc1-rc6) ne 0 then do;'; + put 'putlog "%str(WARN)ING: Issue creating prompt.";'; + put 'if prompturi ne . then do;'; + put 'putlog '' Removing orphan: '' prompturi;'; + put 'rc = METADATA_DELOBJ(prompturi);'; + put 'put rc=;'; + put 'end;'; + put 'stop;'; + put 'end;'; + put '/* create a file uri */'; + put 'rc7=METADATA_NEWOBJ(''File'',fileuri,''SP Source File'');'; + put 'rc8=METADATA_SETATTR(fileuri, ''FileName'',"&filename");'; + put 'rc9=METADATA_SETATTR(fileuri, ''IsARelativeName'',''1'');'; + put 'rc10=METADATA_SETASSN(fileuri, ''Directories'',''MODIFY'',directoryuri);'; + put 'if sum(of rc7-rc10) ne 0 then do;'; + put 'putlog "%str(WARN)ING: Issue creating file.";'; + put 'if fileuri ne . then do;'; + put 'putlog '' Removing orphans:'' prompturi fileuri;'; + put 'rc = METADATA_DELOBJ(prompturi);'; + put 'rc = METADATA_DELOBJ(fileuri);'; + put 'put (_all_)(=);'; + put 'end;'; + put 'stop;'; + put 'end;'; + put '/* create a TextStore object */'; + put 'rc11= METADATA_NEWOBJ(''TextStore'',texturi,''Stored Process'');'; + put 'rc12= METADATA_SETATTR(texturi, ''TextRole'',''StoredProcessConfiguration'');'; + put 'rc13= METADATA_SETATTR(texturi, ''TextType'',''XML'');'; + put 'storedtext='''''; + put '!!""'; + put '!!"";'; + put 'rc14= METADATA_SETATTR(texturi, ''StoredText'',storedtext);'; + put 'if sum(of rc11-rc14) ne 0 then do;'; + put 'putlog "%str(WARN)ING: Issue creating TextStore.";'; + put 'if texturi ne . then do;'; + put 'putlog '' Removing orphans: '' prompturi fileuri texturi;'; + put 'rc = METADATA_DELOBJ(prompturi);'; + put 'rc = METADATA_DELOBJ(fileuri);'; + put 'rc = METADATA_DELOBJ(texturi);'; + put 'put (_all_)(=);'; + put 'end;'; + put 'stop;'; + put 'end;'; + put '/* create meta obj */'; + put 'rc15= METADATA_NEWOBJ(''ClassifierMap'',stpuri,"&stpname");'; + put 'rc16= METADATA_SETASSN(stpuri, ''Trees'',''MODIFY'',treeuri);'; + put 'rc17= METADATA_SETASSN(stpuri, ''ComputeLocations'',''MODIFY'',serveruri);'; + put 'rc18= METADATA_SETASSN(stpuri, ''SourceCode'',''MODIFY'',fileuri);'; + put 'rc19= METADATA_SETASSN(stpuri, ''Prompts'',''MODIFY'',prompturi);'; + put 'rc20= METADATA_SETASSN(stpuri, ''Notes'',''MODIFY'',texturi);'; + put 'rc21= METADATA_SETATTR(stpuri, ''PublicType'', ''StoredProcess'');'; + put 'rc22= METADATA_SETATTR(stpuri, ''TransformRole'', ''StoredProcess'');'; + put 'rc23= METADATA_SETATTR(stpuri, ''UsageVersion'', ''1000000'');'; + put 'rc24= METADATA_SETATTR(stpuri, ''Desc'', "&stpdesc");'; + put '/* tidy up if err */'; + put 'if sum(of rc15-rc24) ne 0 then do;'; + put 'putlog "%str(WARN)ING: Issue creating STP.";'; + put 'if stpuri ne . then do;'; + put 'putlog '' Removing orphans: '' prompturi fileuri texturi stpuri;'; + put 'rc = METADATA_DELOBJ(prompturi);'; + put 'rc = METADATA_DELOBJ(fileuri);'; + put 'rc = METADATA_DELOBJ(texturi);'; + put 'rc = METADATA_DELOBJ(stpuri);'; + put 'put (_all_)(=);'; + put 'end;'; + put 'end;'; + put 'else do;'; + put 'fullpath=cats(''_program='',treepath,"/&stpname");'; + put 'putlog "NOTE: Stored Process Created!";'; + put 'putlog "NOTE- "; putlog "NOTE-"; putlog "NOTE-" fullpath;'; + put 'putlog "NOTE- "; putlog "NOTE-";'; + put 'end;'; + put 'output;'; + put 'stop;'; + put 'run;'; + put '%end;'; + put '%else %if &stptype=2 %then %do;'; + put '/* type 2 stp - code is stored in metadata */'; + put '%if %sysevalf(&sysver lt 9.3) %then %do;'; + put '%put %str(WARN)ING: SAS version 9.3 or later required to create type2 STPs;'; + put '%return;'; + put '%end;'; + put '/* check we have the correct ServerContext */'; + put '%mm_getservercontexts(outds=contexts)'; + put '%local serveruri; %let serveruri=NOTFOUND;'; + put 'data _null_;'; + put 'set contexts;'; + put 'where upcase(servername)="%upcase(&server)";'; + put 'call symputx(''serveruri'',serveruri);'; + put 'run;'; + put '%if &serveruri=NOTFOUND %then %do;'; + put '%put %str(WARN)ING: ServerContext *&server* not found!;'; + put '%return;'; + put '%end;'; + put '/**'; + put '* First, create a Hello World type 2 stored process'; + put '*/'; + put 'filename &frefin temp;'; + put 'data _null_;'; + put 'file &frefin;'; + put 'treeuri=quote(symget(''treeuri''));'; + put 'serveruri=quote(symget(''serveruri''));'; + put 'stpdesc=quote(symget(''stpdesc''));'; + put 'stpname=quote(symget(''stpname''));'; + put 'put "$METAREPOSITORY "/'; + put '''''/'; + put '" "/'; + put '" "/'; + put '" "/'; + put '" "/'; + put ''' ''/'; + put ''' '' /'; + put '" "/'; + put '" "/'; + put ''' ''/'; + put '" "/'; + put '""/'; + put '"SAS"/'; + put '"268435456";'; + put 'run;'; + put 'filename &frefout temp;'; + put 'proc metadata in= &frefin out=&frefout ;'; + put 'run;'; + put '%if &mdebug=1 %then %do;'; + put '/* write the response to the log for debugging */'; + put 'data _null_;'; + put 'infile &frefout lrecl=1048576;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '%end;'; + put '/**'; + put '* Next, add the source code'; + put '*/'; + put '%mm_updatestpsourcecode(stp=&tree/&stpname'; + put ',stpcode="&directory/&filename"'; + put ',mdebug=&mdebug'; + put ',minify=&minify)'; + put '%end;'; + put '%else %do;'; + put '%put %str(WARN)ING: STPTYPE=*&stptype* not recognised!;'; + put '%end;'; + put '%mend mm_createstp;'; + put '%macro mf_mkdir(dir'; + put ')/*/STORE SOURCE*/;'; + put '%local lastchar child parent;'; + put '%let lastchar = %substr(&dir, %length(&dir));'; + put '%if (%bquote(&lastchar) eq %str(:)) %then %do;'; + put '/* Cannot create drive mappings */'; + put '%return;'; + put '%end;'; + put '%if (%bquote(&lastchar)=%str(/)) or (%bquote(&lastchar)=%str(\)) %then %do;'; + put '/* last char is a slash */'; + put '%if (%length(&dir) eq 1) %then %do;'; + put '/* one single slash - root location is assumed to exist */'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put '/* strip last slash */'; + put '%let dir = %substr(&dir, 1, %length(&dir)-1);'; + put '%end;'; + put '%end;'; + put '%if (%sysfunc(fileexist(%bquote(&dir))) = 0) %then %do;'; + put '/* directory does not exist so prepare to create */'; + put '/* first get the childmost directory */'; + put '%let child = %scan(&dir, -1, %str(/\:));'; + put '/*'; + put 'If child name = path name then there are no parents to create. Else'; + put 'they must be recursively scanned.'; + put '*/'; + put '%if (%length(&dir) gt %length(&child)) %then %do;'; + put '%let parent = %substr(&dir, 1, %length(&dir)-%length(&child));'; + put '%mf_mkdir(&parent)'; + put '%end;'; + put '/*'; + put 'Now create the directory. Complain loudly of any errs.'; + put '*/'; + put '%let dname = %sysfunc(dcreate(&child, &parent));'; + put '%if (%bquote(&dname) eq ) %then %do;'; + put '%put %str(ERR)OR: could not create &parent + &child;'; + put '%abort cancel;'; + put '%end;'; + put '%else %do;'; + put '%put Directory created: &dir;'; + put '%end;'; + put '%end;'; + put '/* exit quietly if directory did exist.*/'; + put '%mend mf_mkdir;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file'; + put '@brief Create a demo (base engine) library'; + put '@details'; + put 'Creates the library'; + put '@warning This STP self destructs! It will delete itself after a successful run'; + put 'to avoid being executed twice (and overwriting actual data)'; + put '

SAS Macros

'; + put '@li mm_createlibrary.sas'; + put '@li mm_createdocument.sas'; + put '@li mm_deletedocument.sas'; + put '@li mp_abort.sas'; + put '@li dc_assignlib.sas'; + put '@li mm_deletestp.sas'; + put '@li mm_createstp.sas'; + put '@li mf_mkdir.sas'; + put '@version 9.2'; + put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; + put 'downloaded from here: https://4gl.uk/dcdeploy'; + put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; + put 'and may not be re-distributed or re-sold without the express permission of'; + put '4GL Apps Ltd.'; + put '**/'; + put '%global dcpath;'; + put '%let dclib=%upcase(DC%substr(%sysevalf(%sysfunc(datetime())/60),3,6));'; + put '%let dclibname=Data Controller(&dclib);'; + put '%let work=%sysfunc(pathname(work));'; + put '%let dcpath=&dcpath/&dclib;'; + put '%mf_mkdir(&dcpath)'; + put '%mf_mkdir(&work)'; + put '%put &=dcpath;'; + put '/* check we have physical permissions to the DCLIB folder */'; + put 'data _null_;'; + put 'file "&dcpath/permTest.txt";'; + put 'run;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(User &sysuserid does not have WRITE permissions on physical'; + put 'directory: &dcpath )'; + put ')'; + put 'filename delfile "&dcpath/permTest.txt";'; + put 'data _null_;'; + put 'rc=fdelete(''delfile'');'; + put 'run;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(User &sysuserid could create (but not delete) &dcpath/permTest.txt )'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Unable to write to &dcpath)'; + put ')'; + put 'data _null_;'; + put 'pgm="&_program";'; + put 'rootlen=length(trim(pgm))-length("/services/admin/makelib");'; + put 'root=substr(pgm,1,rootlen);'; + put 'putlog root=;'; + put 'call symputx(''deploy_dir'',root);'; + put 'run;'; + put 'options noquotelenmax ps=max;'; + put '/* check we have the admin rights to update the items in the Admin folder */'; + put '%mm_createdocument(tree=&deploy_dir/services/admin,name=permTest)'; + put '%mm_deletedocument(target=&deploy_dir/services/admin/permTest)'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(User &_metaperson does not have WriteMetadata on SAS folder:'; + put '&deploy_dir )'; + put ')'; + put '/**'; + put '* Create library and load data'; + put '*/'; + put '%let mpelibname=Data Controller (&dclib);'; + put '%mm_createlibrary('; + put 'libname=&mpelibname'; + put ',libref=&dclib'; + put ',libdesc=Configuration tables for the MacroPeople Data Controller application'; + put ',engine=BASE'; + put ',tree=&deploy_dir/data'; + put ',servercontext=SASApp'; + put ',directory=&dcpath'; + put ',mDebug=1)'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Unable to create &dclib library)'; + put ')'; + put '/* get direct libref */'; + put '%dc_assignlib(READ,&dclib)'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Unable to assign &dclib library)'; + put ')'; + put '/* create an initial settings service (this will be overwritten in the'; + put 'data update step)'; + put '*/'; + put '%let temploc=&work/temp.txt;'; + put 'data _null_;'; + put 'file "&temploc" ;'; + put 'put ''/* Data Controller Precode */'' / / ;'; + put 'put '' '';'; + put 'put ''options noquotelenmax ps=max;'';'; + put 'put ''%global DC_LIBREF DC_LIBNAME;'';'; + put 'put '' '';'; + put 'put ''/* This metadata library (libref) contains control datasets for DC */'';'; + put 'put ''/* If a different libref must be used, configure it below */'';'; + put 'put ''%let DC_LIBREF='' "&dclib;";'; + put 'put ''%let DC_LIBNAME='' "&mpelibname;";'; + put 'put '' '';'; + put 'put ''/* get physical path for direct libname - needed to track requests */'';'; + put 'put ''data _null_;'';'; + put 'put '' length lib_uri up_uri path $256;'';'; + put 'put '' call missing (of _all_);'';'; + put 'put '' rc=metadata_getnobj("omsobj:SASLibrary?@Libref=''''&dc_libref''''",1,lib_uri);'';'; + put 'put '' rc=metadata_getnasn(lib_uri,"UsingPackages",1,up_uri);'';'; + put 'put '' rc=metadata_getattr(up_uri,"DirectoryName",path);'';'; + put 'put '' call symputx("dc_libloc",path);'';'; + put 'put ''run;'';'; + put 'put ''libname &DC_LIBREF "&dc_libloc";'';'; + put 'put '' '';'; + put 'run;'; + put '%mm_deletestp(target=&deploy_dir/services/public/Data_Controller_Settings)'; + put '%mm_createstp(stpname=Data_Controller_Settings'; + put ',filename=temp.txt'; + put ',directory=&work'; + put ',tree=&deploy_dir/services/public'; + put ',Server=SASApp'; + put ',stptype=2'; + put ',mdebug=1'; + put ',stpdesc=Data Controller Configuration'; + put ',minify=NO)'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Issue creating settings stp)'; + put ')'; + put 'data _null_;'; + put 'file _webout;'; + put 'put "

Library &dclib successfully assigned

";'; + put 'run;'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=refreshcatalog; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Files

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as FMTCAT,'; + put 'FMTNAME'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'LENGTH num'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.length as MAXW'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put ')))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] workobs= (0) When set to a positive integer, will create a new'; + put 'output object (WORK) which contains this number of observations from all'; + put 'tables in the WORK library.'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX,workobs=0'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&workobs) > 0 %then %do;'; + put '/* if debug mode, send back first XX records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10'; + put ',maxobs=&workobs'; + put ')'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '%macro mm_assignlib('; + put 'libref'; + put ',mAbort=HARD'; + put ')/*/STORE SOURCE*/;'; + put '%local mp_abort msg;'; + put '%let mp_abort=0;'; + put '%if %sysfunc(libref(&libref)) %then %do;'; + put 'data _null_;'; + put 'length liburi LibName msg $200;'; + put 'call missing(of _all_);'; + put 'nobj=metadata_getnobj("omsobj:SASLibrary?@Libref=''&libref''",1,liburi);'; + put 'if nobj=1 then do;'; + put 'rc=metadata_getattr(liburi,"Name",LibName);'; + put '/* now try and assign it */'; + put 'if libname("&libref",,''meta'',cats(''liburi="'',liburi,''";'')) ne 0 then do;'; + put 'putlog "&libref could not be assigned";'; + put 'putlog liburi=;'; + put '/**'; + put '* Fetch the system message for display in the abort modal. This is'; + put '* not always helpful though. One example, previously received:'; + put '* NOTE: Libref XX refers to the same library metadata as libref XX.'; + put '*/'; + put 'msg=sysmsg();'; + put 'if msg=:''ERROR: Libref SAVE is not assigned.'' then do;'; + put 'msg=catx(" ",'; + put '"Could not assign %upcase(&libref).",'; + put '"Please check metadata permissions! Libname:",libname,'; + put '"Liburi:",liburi'; + put ');'; + put 'end;'; + put 'else if msg="ERROR: User does not have appropriate authorization "!!'; + put '"level for library SAVE."'; + put 'then do;'; + put 'msg=catx(" ",'; + put '"ERROR: User does not have appropriate authorization level",'; + put '"for library %upcase(&libref), libname:",libname,'; + put '"Liburi:",liburi'; + put ');'; + put 'end;'; + put 'call symputx(''msg'',msg,''l'');'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1,''l'');'; + put 'end;'; + put 'else do;'; + put 'put (_all_)(=);'; + put 'call symputx(''libname'',libname,''L'');'; + put 'call symputx(''liburi'',liburi,''L'');'; + put 'end;'; + put 'end;'; + put 'else if nobj>1 then do;'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; + put 'call symputx(''msg'',"More than one library with libref=&libref");'; + put 'end;'; + put 'else do;'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; + put 'call symputx(''msg'',"Library &libref not found in metadata");'; + put 'end;'; + put 'run;'; + put '%put NOTE: &msg;'; + put '%end;'; + put '%else %do;'; + put '%put NOTE: Library &libref is already assigned;'; + put '%end;'; + put '%mp_abort(iftrue= (&mp_abort=1)'; + put ',mac=mm_assignlib.sas'; + put ',msg=%superq(msg)'; + put ')'; + put '%mend mm_assignlib;'; + put '/** @cond */'; + put '%macro mf_getengine(libref'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid engnum rc engine;'; + put '/* in case the parameter is a libref.tablename, pull off just the libref */'; + put '%let libref = %upcase(%scan(&libref, 1, %str(.)));'; + put '%let dsid=%sysfunc('; + put 'open(sashelp.vlibnam(where=(libname="%upcase(&libref)")),i)'; + put ');'; + put '%if (&dsid ^= 0) %then %do;'; + put '%let engnum=%sysfunc(varnum(&dsid,ENGINE));'; + put '%let rc=%sysfunc(fetch(&dsid));'; + put '%let engine=%sysfunc(getvarc(&dsid,&engnum));'; + put '%put &libref. ENGINE is &engine.;'; + put '%let rc= %sysfunc(close(&dsid));'; + put '%end;'; + put '%upcase(&engine)'; + put '%mend mf_getengine;'; + put '/** @endcond */'; + put '%macro mm_assigndirectlib('; + put 'libref /* libref to assign from metadata */'; + put ',open_passthrough= /* provide an alias to produce the'; + put 'CONNECT TO statement for the'; + put 'relevant external database */'; + put ',sql_options= /* add any options to add to proc sql statement eg outobs='; + put '(only valid for pass through) */'; + put ',mDebug=0'; + put ',mAbort=0'; + put ')/*/STORE SOURCE*/;'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing mm_assigndirectlib.sas;'; + put '%&mD.put _local_;'; + put '%if &mAbort=1 %then %let mAbort=;'; + put '%else %let mAbort=%str(*);'; + put '%&mD.put NOTE: Creating direct (non META) connection to &libref library;'; + put '%local cur_engine;'; + put '%let cur_engine=%mf_getengine(&libref);'; + put '%if &cur_engine ne META and &cur_engine ne %then %do;'; + put '%put NOTE: &libref already has a direct (&cur_engine) libname connection;'; + put '%return;'; + put '%end;'; + put '%else %if %upcase(&libref)=WORK %then %do;'; + put '%put NOTE: We already have a direct connection to WORK :-) ;'; + put '%return;'; + put '%end;'; + put '/* need to determine the library ENGINE first */'; + put '%local engine;'; + put 'data _null_;'; + put 'length lib_uri engine $256;'; + put 'call missing (of _all_);'; + put '/* get URI for the particular library */'; + put 'rc1=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put '/* get the Engine attribute of the previous object */'; + put 'rc2=metadata_getattr(lib_uri,''Engine'',engine);'; + put 'putlog "mm_assigndirectlib for &libref:" rc1= lib_uri= rc2= engine=;'; + put 'call symputx("liburi",lib_uri,''l'');'; + put 'call symputx("engine",engine,''l'');'; + put 'run;'; + put '/* now obtain engine specific connection details */'; + put '%if &engine=BASE %then %do;'; + put '%&mD.put NOTE: Retrieving BASE library path;'; + put 'data _null_;'; + put 'length up_uri $256 path cat_path $1024;'; + put 'retain cat_path;'; + put 'call missing (of _all_);'; + put '/* get all the filepaths of the UsingPackages association */'; + put 'i=1;'; + put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; + put 'do while (rc3>0);'; + put '/* get the DirectoryName attribute of the previous object */'; + put 'rc4=metadata_getattr(up_uri,''DirectoryName'',path);'; + put 'if i=1 then path = ''("''!!trim(path)!!''" '';'; + put 'else path ='' "''!!trim(path)!!''" '';'; + put 'cat_path = trim(cat_path) !! " " !! trim(path) ;'; + put 'i+1;'; + put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; + put 'end;'; + put 'cat_path = trim(cat_path) !! ")";'; + put '&mD.putlog "NOTE: Getting physical path for &libref library";'; + put '&mD.putlog rc3= up_uri= rc4= cat_path= path=;'; + put '&mD.putlog "NOTE: Libname cmd will be:";'; + put '&mD.putlog "libname &libref" cat_path;'; + put 'call symputx("filepath",cat_path,''l'');'; + put 'run;'; + put '%if %sysevalf(&sysver<9.4) %then %do;'; + put 'libname &libref &filepath;'; + put '%end;'; + put '%else %do;'; + put '/* apply the new filelocks option to cater for temporary locks */'; + put 'libname &libref &filepath filelockwait=5;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=REMOTE %then %do;'; + put 'data x;'; + put 'length rcCon rcProp rc k 3 uriCon uriProp PropertyValue PropertyName'; + put 'Delimiter $256 properties $2048;'; + put 'retain properties;'; + put 'rcCon = metadata_getnasn("&liburi", "LibraryConnection", 1, uriCon);'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", 1, uriProp);'; + put 'k = 1;'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; + put 'do while (rcProp > 0);'; + put 'rc = metadata_getattr(uriProp , "DefaultValue",PropertyValue);'; + put 'rc = metadata_getattr(uriProp , "PropertyName",PropertyName);'; + put 'rc = metadata_getattr(uriProp , "Delimiter",Delimiter);'; + put 'properties = trim(properties) !! " " !! trim(PropertyName)'; + put '!! trim(Delimiter) !! trim(PropertyValue);'; + put 'output;'; + put 'k+1;'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; + put 'end;'; + put '%&mD.put NOTE: Getting properties for REMOTE SHARE &libref library;'; + put '&mD.put _all_;'; + put '%&mD.put NOTE: Libname cmd will be:;'; + put '%&mD.put libname &libref &engine &properties slibref=&libref;'; + put 'call symputx ("properties",trim(properties),''l'');'; + put 'run;'; + put 'libname &libref &engine &properties slibref=&libref;'; + put '%end;'; + put '%else %if &engine=OLEDB %then %do;'; + put '%&mD.put NOTE: Retrieving OLEDB connection details;'; + put 'data _null_;'; + put 'length domain datasource provider properties schema'; + put 'connx_uri domain_uri conprop_uri lib_uri schema_uri value $256.;'; + put 'call missing (of _all_);'; + put '/* get source connection ID */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; + put '/* get connection domain */'; + put 'rc1=metadata_getnasn(connx_uri,''Domain'',1,domain_uri);'; + put 'rc2=metadata_getattr(domain_uri,''Name'',domain);'; + put '&mD.putlog / ''NOTE: '' // ''NOTE- connection id: '' connx_uri ;'; + put '&mD.putlog ''NOTE- domain: '' domain;'; + put '/* get DSN and PROVIDER from connection properties */'; + put 'i=0;'; + put 'do until (rc<0);'; + put 'i+1;'; + put 'rc=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; + put 'rc2=metadata_getattr(conprop_uri,''Name'',value);'; + put 'if value=''Connection.OLE.Property.DATASOURCE.Name.xmlKey.txt'' then do;'; + put 'rc3=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; + put 'end;'; + put 'else if value=''Connection.OLE.Property.PROVIDER.Name.xmlKey.txt'' then do;'; + put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',provider);'; + put 'end;'; + put 'else if value=''Connection.OLE.Property.PROPERTIES.Name.xmlKey.txt'' then'; + put 'do;'; + put 'rc5=metadata_getattr(conprop_uri,''DefaultValue'',properties);'; + put 'end;'; + put 'end;'; + put '&mD.putlog ''NOTE- dsn/provider/properties: '' /'; + put 'datasource provider properties;'; + put '&mD.putlog ''NOTE- schema: '' schema // ''NOTE-'';'; + put '/* get SCHEMA */'; + put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,lib_uri);'; + put 'rc7=metadata_getattr(lib_uri,''SchemaName'',schema);'; + put 'call symputx(''SQL_domain'',domain,''l'');'; + put 'call symputx(''SQL_dsn'',datasource,''l'');'; + put 'call symputx(''SQL_provider'',provider,''l'');'; + put 'call symputx(''SQL_properties'',properties,''l'');'; + put 'call symputx(''SQL_schema'',schema,''l'');'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put 'proc sql &sql_options;'; + put 'connect to OLEDB as &open_passthrough(INSERT_SQL=YES'; + put '/* need additional properties to make this work */'; + put 'properties=(''Integrated Security''=SSPI'; + put '''Persist Security Info''=True'; + put '%sysfunc(compress(%str(&SQL_properties),%str(())))'; + put ')'; + put 'DATASOURCE=&sql_dsn PROMPT=NO'; + put 'PROVIDER=&sql_provider SCHEMA=&sql_schema CONNECTION = GLOBAL);'; + put '%end;'; + put '%else %do;'; + put 'LIBNAME &libref OLEDB PROPERTIES=&sql_properties'; + put 'DATASOURCE=&sql_dsn PROVIDER=&sql_provider SCHEMA=&sql_schema'; + put '%if %length(&sql_domain)>0 %then %do;'; + put 'authdomain="&sql_domain"'; + put '%end;'; + put 'connection=shared;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=ODBC %then %do;'; + put '&mD.%put NOTE: Retrieving ODBC connection details;'; + put 'data _null_;'; + put 'length connx_uri conprop_uri value datasource up_uri schema $256.;'; + put 'call missing (of _all_);'; + put '/* get source connection ID */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; + put '/* get connection properties */'; + put 'i=0;'; + put 'do until (rc2<0);'; + put 'i+1;'; + put 'rc2=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; + put 'rc3=metadata_getattr(conprop_uri,''Name'',value);'; + put 'if value=''Connection.ODBC.Property.DATASRC.Name.xmlKey.txt'' then do;'; + put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; + put 'rc2=-1;'; + put 'end;'; + put 'end;'; + put '/* get SCHEMA */'; + put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,up_uri);'; + put 'rc7=metadata_getattr(up_uri,''SchemaName'',schema);'; + put '&mD.put rc= connx_uri= rc2= conprop_uri= rc3= value= rc4= datasource='; + put 'rc6= up_uri= rc7= schema=;'; + put 'call symputx(''SQL_schema'',schema,''l'');'; + put 'call symputx(''SQL_dsn'',datasource,''l'');'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put 'proc sql &sql_options;'; + put 'connect to ODBC as &open_passthrough'; + put '(INSERT_SQL=YES DATASRC=&sql_dsn. CONNECTION=global);'; + put '%end;'; + put '%else %do;'; + put 'libname &libref ODBC DATASRC=&sql_dsn SCHEMA=&sql_schema;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=POSTGRES %then %do;'; + put '%put NOTE: Obtaining POSTGRES library details;'; + put 'data _null_;'; + put 'length database ignore_read_only_columns direct_exe preserve_col_names'; + put 'preserve_tab_names server schema authdomain user password'; + put 'prop name value uri urisrc $256.;'; + put 'call missing (of _all_);'; + put '/* get database value */'; + put 'prop=''Connection.DBMS.Property.DB.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,database,"");'; + put 'if database^='''' then database=''database=''!!quote(trim(database));'; + put 'call symputx(''database'',database,''l'');'; + put '/* get IGNORE_READ_ONLY_COLUMNS value */'; + put 'prop=''Library.DBMS.Property.DBIROC.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,ignore_read_only_columns,"");'; + put 'if ignore_read_only_columns^='''' then ignore_read_only_columns='; + put '''ignore_read_only_columns=''!!ignore_read_only_columns;'; + put 'call symputx(''ignore_read_only_columns'',ignore_read_only_columns,''l'');'; + put '/* get DIRECT_EXE value */'; + put 'prop=''Library.DBMS.Property.DirectExe.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,direct_exe,"");'; + put 'if direct_exe^='''' then direct_exe=''direct_exe=''!!direct_exe;'; + put 'call symputx(''direct_exe'',direct_exe,''l'');'; + put '/* get PRESERVE_COL_NAMES value */'; + put 'prop=''Library.DBMS.Property.PreserveColNames.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,preserve_col_names,"");'; + put 'if preserve_col_names^='''' then preserve_col_names='; + put '''preserve_col_names=''!!preserve_col_names;'; + put 'call symputx(''preserve_col_names'',preserve_col_names,''l'');'; + put '/* get PRESERVE_TAB_NAMES value */'; + put '/* be careful with PRESERVE_TAB_NAMES=YES - it will mean your table will'; + put 'become case sensitive!! */'; + put 'prop=''Library.DBMS.Property.PreserveTabNames.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,preserve_tab_names,"");'; + put 'if preserve_tab_names^='''' then preserve_tab_names='; + put '''preserve_tab_names=''!!preserve_tab_names;'; + put 'call symputx(''preserve_tab_names'',preserve_tab_names,''l'');'; + put '/* get SERVER value */'; + put 'if metadata_getnasn("&liburi","LibraryConnection",1,uri)>0 then do;'; + put 'prop=''Connection.DBMS.Property.SERVER.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop(uri,prop,server,"");'; + put 'end;'; + put 'if server^='''' then server=''server=''!!quote(cats(server));'; + put 'call symputx(''server'',server,''l'');'; + put '/* get SCHEMA value */'; + put 'if metadata_getnasn("&liburi","UsingPackages",1,uri)>0 then do;'; + put 'rc=metadata_getattr(uri,"SchemaName",schema);'; + put 'end;'; + put 'if schema^='''' then schema=''schema=''!!schema;'; + put 'call symputx(''schema'',schema,''l'');'; + put '/* get AUTHDOMAIN value */'; + put '/* this is only useful if the user account contains that auth domain'; + put 'if metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then do;'; + put 'rc=metadata_getnasn(uri,"Domain",1,urisrc);'; + put 'rc=metadata_getattr(urisrc,"Name",authdomain);'; + put 'end;'; + put 'if authdomain^='''' then authdomain=''authdomain=''!!quote(trim(authdomain));'; + put '*/'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/* get user & pass */'; + put 'if authdomain='''' & metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then'; + put 'do;'; + put 'rc=metadata_getattr(uri,"UserID",user);'; + put 'rc=metadata_getattr(uri,"Password",password);'; + put 'end;'; + put 'if user^='''' then do;'; + put 'user=''user=''!!quote(trim(user));'; + put 'password=''password=''!!quote(trim(password));'; + put 'end;'; + put 'call symputx(''user'',user,''l'');'; + put 'call symputx(''password'',password,''l'');'; + put '&md.put _all_;'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put '%put %str(WARN)ING: Passthrough option for postgres not yet supported;'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put '%if &mdebug=1 %then %do;'; + put '%put NOTE: Executing the following:/;'; + put '%put NOTE- libname &libref POSTGRES &database &ignore_read_only_columns;'; + put '%put NOTE- &direct_exe &preserve_col_names &preserve_tab_names;'; + put '%put NOTE- &server &schema &authdomain &user &password //;'; + put '%end;'; + put 'libname &libref POSTGRES &database &ignore_read_only_columns &direct_exe'; + put '&preserve_col_names &preserve_tab_names &server &schema &authdomain'; + put '&user &password;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=ORACLE %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null_;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema $256;'; + put 'call missing (of _all_);'; + put '/* get auth domain */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; + put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; + put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/* path */'; + put 'rc=metadata_getprop(assocuri1,'; + put '''Connection.Oracle.Property.PATH.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref ORACLE path=&path schema=&schema;'; + put '%put NOTE- authdomain=&authdomain;'; + put '%put NOTE-;'; + put 'libname &libref ORACLE path=&path schema=&schema authdomain=&authdomain;'; + put '%end;'; + put '%else %if &engine=SQLSVR %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; + put 'passwd $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; + put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; + put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; + put 'call symputx(''user'',userid,''l'');'; + put 'call symputx(''pass'',passwd,''l'');'; + put '/* path */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; + put 'rc=metadata_getprop(assocuri2,'; + put '''Connection.SQL.Property.Datasrc.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref SQLSVR datasrc=&path schema=&schema ;'; + put '%put NOTE- user="&user" pass="XXX";'; + put '%put NOTE-;'; + put 'libname &libref SQLSVR datasrc=&path schema=&schema user="&user" pass="&pass";'; + put '%end;'; + put '%else %if &engine=TERADATA %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; + put 'passwd $256;'; + put 'call missing (of _all_);'; + put '/* get auth domain */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; + put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; + put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/*'; + put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; + put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; + put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; + put 'call symputx(''user'',userid,''l'');'; + put 'call symputx(''pass'',passwd,''l'');'; + put '*/'; + put '/* path */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; + put 'rc=metadata_getprop(assocuri2,'; + put '''Connection.Teradata.Property.SERVER.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref TERADATA server="&path" schema=&schema ;'; + put '%put NOTe- authdomain=&authdomain;'; + put '%put NOTE-;'; + put 'libname &libref TERADATA server="&path" schema=&schema authdomain=&authdomain;'; + put '%end;'; + put '%else %if &engine= %then %do;'; + put '%put NOTE: Libref &libref is not registered in metadata;'; + put '%&mAbort.mp_abort('; + put 'msg=%str(ERR)OR: Libref &libref is not registered in metadata'; + put ',mac=mm_assigndirectlib.sas);'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put '%put %str(WARN)ING: Engine &engine is currently unsupported;'; + put '%put %str(WARN)ING- Please contact your support team.;'; + put '%return;'; + put '%end;'; + put '%mend mm_assigndirectlib;'; + put '%macro mm_getrepos('; + put 'outds=work.mm_getrepos'; + put ')/*/STORE SOURCE*/;'; + put '* use a temporary fileref to hold the response;'; + put 'filename response temp;'; + put '/* get list of libraries */'; + put 'proc metadata in='; + put '"1"'; + put 'out=response;'; + put 'run;'; + put '/* write the response to the log for debugging */'; + put '/*'; + put 'data _null_;'; + put 'infile response lrecl=1048576;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '*/'; + put '/* create an XML map to read the response */'; + put 'filename sxlemap temp;'; + put 'data _null_;'; + put 'file sxlemap;'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository";'; + put 'put "";'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Id";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Name";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Desc";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@DefaultNS";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryType";'; + put 'put "characterstring20";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryFormat";'; + put 'put "characterstring10";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@Access";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@CurrentAccess";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@PauseState";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Path";'; + put 'put "";'; + put 'put "characterstring256";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Engine";'; + put 'put "";'; + put 'put "characterstring8";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Options";'; + put 'put "";'; + put 'put "characterstring32";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataCreated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataUpdated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put ''
'';'; + put 'run;'; + put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; + put 'proc sort data= _XML_.SASRepos out=&outds;'; + put 'by name;'; + put 'run;'; + put '/* clear references */'; + put 'filename sxlemap clear;'; + put 'filename response clear;'; + put 'libname _XML_ clear;'; + put '%mend mm_getrepos;'; + put '%macro dc_assignlib(type,libref,passthru=);'; + put '%put &sysmacroname entry vars:;'; + put '%put _local_;'; + put '/* take current repository */'; + put '%local repo repocnt x;'; + put '%let repo=%sysfunc(getoption(metarepository));'; + put '/* get list of repositories and filter */'; + put '%mm_getrepos(outds=repos)'; + put '%let repocnt=0;'; + put 'data repos;'; + put 'set repos;'; + put 'where repositorytype in(''CUSTOM'',''FOUNDATION'')'; + put '& upcase(name) ne "%upcase(&repo)";'; + put 'keep id name ;'; + put 'call symputx(cats(''repo'',_n_),name,''l'');'; + put 'call symputx(''repocnt'',_n_,''l'');'; + put 'run;'; + put '/* find out which of these repositories has the libref we are searching for */'; + put '%local lib_uri;'; + put '%let lib_uri=NOTFOUND;'; + put 'data _null_; /* check default repo first */'; + put 'length lib_uri $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; + put 'run;'; + put '%if &lib_uri=NOTFOUND %then %do;'; + put '%do x=1 %to &repocnt;'; + put 'options metarepository=&&repo&x;'; + put 'data _null_;'; + put 'length lib_uri $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; + put 'run;'; + put '%if &lib_uri ne NOTFOUND %then %let x=%eval(&repocnt+1);'; + put '%end;'; + put '%end;'; + put '%if &type=READ %then %do;'; + put '%mm_assignlib(&libref)'; + put '%end;'; + put '%else %if &type=WRITE %then %do;'; + put '%mm_assigndirectlib(&libref,open_passthrough=&passthru)'; + put '%end;'; + put 'options metarepository=&repo;'; + put '%mend dc_assignlib;'; + put '/** @cond */'; + put '%macro mf_existvar(libds /* 2 part dataset name */'; + put ', var /* variable name */'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid rc;'; + put '%let dsid=%sysfunc(open(&libds,is));'; + put '%if &dsid=0 or %length(&var)=0 %then %do;'; + put '%put %sysfunc(sysmsg());'; + put '0'; + put '%end;'; + put '%else %do;'; + put '%sysfunc(varnum(&dsid,&var))'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%mend mf_existvar;'; + put '/** @endcond */'; + put '%macro mf_getattrn('; + put 'libds'; + put ',attr'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid rc;'; + put '%let dsid=%sysfunc(open(&libds,is));'; + put '%if &dsid = 0 %then %do;'; + put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; + put '%put %sysfunc(sysmsg());'; + put '-1'; + put '%end;'; + put '%else %do;'; + put '%sysfunc(attrn(&dsid,&attr))'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%mend mf_getattrn;'; + put '%macro mf_getvartype(libds /* two level name */'; + put ', var /* variable name from which to return the type */'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid vnum vtype rc;'; + put '/* Open dataset */'; + put '%let dsid = %sysfunc(open(&libds));'; + put '%if &dsid. > 0 %then %do;'; + put '/* Get variable number */'; + put '%let vnum = %sysfunc(varnum(&dsid, &var));'; + put '/* Get variable type (C/N) */'; + put '%if(&vnum. > 0) %then %let vtype = %sysfunc(vartype(&dsid, &vnum.));'; + put '%else %do;'; + put '%put NOTE: Variable &var does not exist in &libds;'; + put '%let vtype = %str( );'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: dataset &libds not opened! (rc=&dsid);'; + put '%put &sysmacroname: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '/* Close dataset */'; + put '%let rc = %sysfunc(close(&dsid));'; + put '/* Return variable type */'; + put '&vtype'; + put '%mend mf_getvartype;'; + put '%macro mf_getattrc('; + put 'libds'; + put ',attr'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid rc;'; + put '%let dsid=%sysfunc(open(&libds,is));'; + put '%if &dsid = 0 %then %do;'; + put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; + put '%put %sysfunc(sysmsg());'; + put '-1'; + put '%end;'; + put '%else %do;'; + put '%sysfunc(attrc(&dsid,&attr))'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%mend mf_getattrc;'; + put '%macro mp_lockfilecheck('; + put 'libds'; + put ')/*/STORE SOURCE*/;'; + put 'data _null_;'; + put 'if _n_=1 then putlog "&sysmacroname entry vars:";'; + put 'set sashelp.vmacro;'; + put 'where scope="&sysmacroname";'; + put 'put name ''='' value;'; + put 'run;'; + put '%mp_abort(iftrue= (&syscc>0)'; + put ',mac=checklock.sas'; + put ',msg=Aborting with syscc=&syscc on entry.'; + put ')'; + put '%mp_abort(iftrue= ("&libds"="0")'; + put ',mac=&sysmacroname'; + put ',msg=%str(libds not provided)'; + put ')'; + put '%local msg lib ds;'; + put '%let lib=%upcase(%scan(&libds,1,.));'; + put '%let ds=%upcase(%scan(&libds,2,.));'; + put '/* in DC, format catalogs are passed with a -FC suffix. No saslock here! */'; + put '%if %scan(&libds,2,-)=FC %then %do;'; + put '%put &sysmacroname: Format Catalog detected, no lockfile applied to &libds;'; + put '%return;'; + put '%end;'; + put '/* do not proceed if no observations can be processed */'; + put '%let msg=options obs = 0. syserrortext=%superq(syserrortext);'; + put '%mp_abort(iftrue= (%sysfunc(getoption(OBS))=0)'; + put ',mac=checklock.sas'; + put ',msg=%superq(msg)'; + put ')'; + put 'data _null_;'; + put 'putlog "Checking engine & member type";'; + put 'run;'; + put '%local engine memtype;'; + put '%let memtype=%mf_getattrc(&libds,MTYPE);'; + put '%let engine=%mf_getattrc(&libds,ENGINE);'; + put '%if &engine ne V9 and &engine ne BASE %then %do;'; + put 'data _null_;'; + put 'putlog "Lib &lib is not assigned using BASE engine - uses &engine instead";'; + put 'putlog "SAS lock check will not be performed";'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%else %if &memtype ne DATA %then %do;'; + put '%put NOTE: Cannot lock a VIEW!! Memtype=&memtype;'; + put '%return;'; + put '%end;'; + put 'data _null_;'; + put 'putlog "Engine = &engine, memtype=&memtype";'; + put 'putlog "Attempting lock statement";'; + put 'run;'; + put 'lock &libds;'; + put '%local abortme;'; + put '%let abortme=0;'; + put '%if &syscc>0 or &SYSLCKRC ne 0 %then %do;'; + put '%let msg=Unable to apply lock on &libds (SYSLCKRC=&SYSLCKRC syscc=&syscc);'; + put '%put %str(ERR)OR: &sysmacroname: &msg;'; + put '%let abortme=1;'; + put '%end;'; + put 'lock &libds clear;'; + put '%mp_abort(iftrue= (&abortme=1)'; + put ',mac=&sysmacroname'; + put ',msg=%superq(msg)'; + put ')'; + put '%mend mp_lockfilecheck;'; + put '%macro mp_lockanytable('; + put 'action'; + put ',lib= WORK'; + put ',ds=0'; + put ',ref='; + put ',ctl_ds=0'; + put ',loops=25'; + put ',loop_secs=1'; + put ');'; + put 'data _null_;'; + put 'if _n_=1 then putlog "&sysmacroname entry vars:";'; + put 'set sashelp.vmacro;'; + put 'where scope="&sysmacroname";'; + put 'put name ''='' value;'; + put 'run;'; + put '%mp_abort(iftrue= ("&ds"="0" and &action ne MAKETABLE)'; + put ',mac=&sysmacroname'; + put ',msg=%str(dataset was not provided)'; + put ')'; + put '%mp_abort(iftrue= (&ctl_ds=0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Control dataset was not provided)'; + put ')'; + put '/* set up lib & mac vars */'; + put '%let lib=%upcase(&lib);'; + put '%let ds=%upcase(&ds);'; + put '%let action=%upcase(&action);'; + put '%local user x trans msg abortme;'; + put '%let user=%mf_getuser();'; + put '%let abortme=0;'; + put '%mp_abort(iftrue= (&action ne LOCK & &action ne UNLOCK & &action ne MAKETABLE)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Invalid action (&action) provided)'; + put ')'; + put '/* if an err condition exists, exit before we even begin */'; + put '%mp_abort(iftrue= (&syscc>0 and &action=LOCK)'; + put ',mac=&sysmacroname'; + put ',msg=%str(aborting due to syscc=&syscc on LOCK entry)'; + put ')'; + put '/* do not bother locking work tables (else may affect all WORK libraries) */'; + put '%if (%upcase(&lib)=WORK or %str(&lib)=%str()) & &action ne MAKETABLE %then %do;'; + put '%put NOTE: WORK libraries will not be registered in the locking system.;'; + put '%return;'; + put '%end;'; + put '/* do not proceed if no observations can be processed */'; + put '%mp_abort(iftrue= (%sysfunc(getoption(OBS))=0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(cannot continue when options obs = 0)'; + put ')'; + put '%if &ACTION=LOCK %then %do;'; + put '/* abort if a SAS lock is already in place, or cannot be applied */'; + put '%mp_lockfilecheck(&lib..&ds)'; + put '/* next, check there is a record for this table */'; + put '%local record_exists_check;'; + put 'proc sql noprint;'; + put 'select count(*) into: record_exists_check from &ctl_ds'; + put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; + put 'quit;'; + put '%if &syscc>0 %then %put syscc=&syscc sqlrc=&sqlrc;'; + put '%if &record_exists_check=0 %then %do;'; + put 'data _null_;'; + put 'putlog "&sysmacroname: adding record to lock table..";'; + put 'run;'; + put 'data ;'; + put 'if 0 then set &ctl_ds;'; + put 'LOCK_LIB ="&lib";'; + put 'LOCK_DS="&ds";'; + put 'LOCK_STATUS_CD=''LOCKED'';'; + put 'LOCK_START_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt;'; + put 'LOCK_USER_NM="&user";'; + put 'LOCK_PID="&sysjobid";'; + put 'LOCK_REF="&ref";'; + put 'output;stop;'; + put 'run;'; + put '%let trans=&syslast;'; + put 'proc append base=&ctl_ds data=&trans;'; + put 'run;'; + put '%end;'; + put '/* if record does exist, perform lock attempts */'; + put '%else %do x=1 %to &loops;'; + put 'data _null_;'; + put 'putlog "&sysmacroname: attempting lock (iteration &x) "@;'; + put 'putlog "at %sysfunc(datetime(),datetime19.) ..";'; + put 'run;'; + put 'proc sql;'; + put 'update &ctl_ds'; + put 'set LOCK_STATUS_CD=''LOCKED'''; + put ', LOCK_START_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt'; + put ', LOCK_USER_NM="&user"'; + put ', LOCK_PID="&sysjobid"'; + put ', LOCK_REF="&ref"'; + put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; + put 'quit;'; + put '/**'; + put '* NOTE - occasionally SQL server will return an err code (deadlocked'; + put '* transaction). If so, ignore it, keep calm, and carry on..'; + put '*/'; + put '%if &syscc>0 %then %do;'; + put 'data _null_;'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'putlog "NOTE- &sysmacroname: Update failed. "@;'; + put 'putlog "Resetting err conditions and re-attempting.";'; + put 'putlog "NOTE- syscc=&syscc syserr=&syserr sqlrc=&sqlrc";'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'run;'; + put '%let syscc=0;'; + put '%let sqlrc=0;'; + put '%end;'; + put '/* now check if the record was successfully updated */'; + put '%local success_check;'; + put 'proc sql noprint;'; + put 'select count(*) into: success_check from &ctl_ds'; + put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds"'; + put 'and LOCK_PID="&sysjobid" and LOCK_STATUS_CD=''LOCKED'';'; + put 'quit;'; + put '%if &success_check=0 %then %do;'; + put '%if &x < &loops %then %do;'; + put '/* pause before next check */'; + put 'data _null_;'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'putlog "NOTE- &sysmacroname: table locked, waiting "@;'; + put 'putlog "%sysfunc(sleep(&loop_inc)) seconds.. ";'; + put 'putlog "NOTE- (iteration &x of &loops)";'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%let msg=Unable to lock &lib..&ds via &ctl_ds after &loops attempts.\n'; + put 'Please ask your administrator to investigate!;'; + put '%let abortme=1;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put 'data _null_;'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'putlog "NOTE- &sysmacroname: Table &lib..&ds locked at "@;'; + put 'putlog " %sysfunc(datetime(),datetime19.) (iteration &x)"@;'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'run;'; + put '%if &syscc>0 %then %do;'; + put '%put setting syscc(&syscc) back to 0;'; + put '%let syscc=0;'; + put '%end;'; + put '%let x=&loops; /* no more iterations needed */'; + put '%end;'; + put '%end;'; + put '%end;'; + put '%else %if &ACTION=UNLOCK %then %do;'; + put '%local status;'; + put 'proc sql noprint;'; + put 'select LOCK_STATUS_CD into: status from &ctl_ds'; + put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; + put 'quit;'; + put '%if &syscc>0 %then %put syscc=&syscc sqlrc=&sqlrc;'; + put '%if &status=LOCKED %then %do;'; + put 'data _null_;'; + put 'putlog "&sysmacroname: unlocking &lib..&ds:";'; + put 'run;'; + put 'proc sql;'; + put 'update &ctl_ds'; + put 'set LOCK_STATUS_CD=''UNLOCKED'''; + put ', LOCK_END_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt'; + put ', LOCK_USER_NM="&user"'; + put ', LOCK_PID="&sysjobid"'; + put ', LOCK_REF="&ref"'; + put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; + put 'quit;'; + put '%end;'; + put '%else %if &status=UNLOCKED %then %do;'; + put '%put %str(WAR)NING: &lib..&ds is already unlocked!;'; + put '%end;'; + put '%else %do;'; + put '%put NOTE: Unrecognised STATUS_CD (&status) in &ctl_ds;'; + put '%let abortme=1;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%let msg=lock_anytable given unsupported action (&action);'; + put '%let abortme=1;'; + put '%end;'; + put '/* catch errs - mp_abort must be called outside of a logic block */'; + put '%mp_abort(iftrue=(&abortme=1),'; + put 'msg=%superq(msg),'; + put 'mac=&sysmacroname'; + put ')'; + put '%exit_macro:'; + put 'data _null_;'; + put 'put "&sysmacroname: Exit vars: action=&action lib=&lib ds=&ds";'; + put 'put " syscc=&syscc sqlrc=&sqlrc syserr=&syserr";'; + put 'run;'; + put '%mend mp_lockanytable;'; + put '%macro bitemporal_closeouts('; + put 'tech_from=tx_from_dttm'; + put ',tech_to = tx_to_dttm /* Technical TO datetime variable.'; + put 'Req''d on BASE table only. */'; + put ',base_lib=WORK /* Libref of the BASE table. */'; + put ',base_dsn=BASETABLE /* Name of BASE table. */'; + put ',append_lib=WORK /* Libref of the STAGING table. */'; + put ',append_dsn=APPENDTABLE /* Name of STAGING table. */'; + put ',PK= name sex /* Business key, space separated. */'; + put '/* Should INCLUDE BUS_FROM field if relevant. */'; + put ',NOW=DEFINE'; + put ',FILTER= /* supply a filter to limit the update */'; + put ',outdest= /* supply an unquoted filepath/filename.ext to get'; + put 'a text file containing the update statements */'; + put ',loadtype='; + put ',loadtarget=YES /* if <> YES will return without changing anything */'; + put ');'; + put '%put ENTERING &sysmacroname;'; + put '%local x var start;'; + put '%let start=%sysfunc(datetime());'; + put '%dc_assignlib(WRITE,&base_lib)'; + put '%dc_assignlib(WRITE,&append_lib)'; + put '%if &now=DEFINE %then %let now=&dc_dttmtfmt.;'; + put '%put &=now;'; + put '/**'; + put '* perform basic checks'; + put '*/'; + put '/* do tables exist? */'; + put '%if not %sysfunc(exist(&base_lib..&base_dsn)) %then %do;'; + put '%mp_abort(msg=&base_lib..&base_dsn does not exist)'; + put '%end;'; + put '%else %if %sysfunc(exist(&append_lib..&append_dsn))=0'; + put 'and %sysfunc(exist(&append_lib..&append_dsn,VIEW))=0 %then %do;'; + put '%mp_abort(msg=&append_lib..&append_dsn does not exist)'; + put '%end;'; + put '/* do TX columns exist? */'; + put '%if &loadtype ne UPDATE %then %do;'; + put '%if not %mf_existvar(&base_lib..&base_dsn,&tech_from) %then %do;'; + put '%mp_abort(msg=&tech_from does not exist on &base_lib..&base_dsn)'; + put '%end;'; + put '%else %if not %mf_existvar(&base_lib..&base_dsn,&tech_to) %then %do;'; + put '%mp_abort(msg=&tech_to does not exist on &base_lib..&base_dsn)'; + put '%end;'; + put '%end;'; + put '/* do PK columns exist? */'; + put '%do x=1 %to %sysfunc(countw(&PK));'; + put '%let var=%scan(&pk,&x,%str( ));'; + put '%if not %mf_existvar(&base_lib..&base_dsn,&var) %then %do;'; + put '%mp_abort(msg=&var does not exist on &base_lib..&base_dsn)'; + put '%end;'; + put '%else %if not %mf_existvar(&append_lib..&append_dsn,&var) %then %do;'; + put '%mp_abort(msg=&var does not exist on &append_lib..&append_dsn)'; + put '%end;'; + put '%end;'; + put '/* check uniqueness */'; + put 'proc sort data=&append_lib..&append_dsn'; + put 'out=___closeout1 noduprecs dupout=___closeout1a;'; + put 'by &pk;'; + put 'run;'; + put '%if %mf_getattrn(___closeout1a,NLOBS)>0 %then'; + put '%put NOTE: dups on (&PK) in (&append_lib..&append_dsn);'; + put '/* is &NOW value within a tolerance? Should not allow renegade closeouts.. */'; + put '%local gap;'; + put '%let gap=0;'; + put 'data _null_;'; + put 'now=&now;'; + put 'gap=intck(''HOURS'',now,datetime());'; + put 'call symputx(''gap'',gap,''l'');'; + put 'run;'; + put '%mf_abort('; + put 'iftrue=(&gap > 24),'; + put 'msg=NOW variable (&now) is not within a 24hr tolerance'; + put ')'; + put '/* have any warnings / errs occurred thus far? If so, abort */'; + put '%mf_abort('; + put 'iftrue=(&syscc>0),'; + put 'msg=Aborted due to SYSCC=&SYSCC status'; + put ')'; + put '/**'; + put '* Create closeout statements. These are sent as individual SQL statements'; + put '* to ensure pass-through utilisation. The update_cnt variable monitors'; + put '* how many records were actually updated on the target table.'; + put '*/'; + put '%local update_cnt;'; + put '%let update_cnt=0;'; + put 'filename tmp temp;'; + put 'data _null_;'; + put 'set ___closeout1;'; + put 'file tmp;'; + put 'if _n_=1 then put ''proc sql noprint;'' ;'; + put 'length string $32767.;'; + put '%if &loadtype=UPDATE %then %do;'; + put 'put "delete from &base_lib..&base_dsn where 1";'; + put '%end;'; + put '%else %do;'; + put 'now=symget(''now'');'; + put 'put "update &base_lib..&base_dsn set &tech_to= " now @;'; + put '%if %mf_existvar(&base_lib..&base_dsn,PROCESSED_DTTM) %then %do;'; + put 'put " ,PROCESSED_DTTM=" now @;'; + put '%end;'; + put 'put " where " now " lt &tech_to ";'; + put '%end;'; + put '%do x=1 %to %sysfunc(countw(&PK));'; + put '%let var=%scan(&pk,&x,%str( ));'; + put '%if %mf_getvartype(&base_lib..&base_dsn,&var)=C %then %do;'; + put '/* use single quotes to avoid ampersand resolution in data */'; + put 'string=" & &var=''"!!trim(prxchange("s/''/''''/",-1,&var))!!"''";'; + put '%end;'; + put '%else %do;'; + put 'string=cats(" & &var=",&var);'; + put '%end;'; + put 'put string;'; + put '%end;'; + put 'put "&filter ;";'; + put 'put ''%let update_cnt=%eval(&update_cnt+&sqlobs);%put update_cnt=&update_cnt;'';'; + put 'run;'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;'; + put 'putlog _infile_;'; + put 'run;'; + put '%if &loadtarget ne YES %then %return;'; + put '/* ensure we have a lock */'; + put '%mp_lockanytable(LOCK,'; + put 'lib=&base_lib,ds=&base_dsn'; + put ',ref=bitemporal_closeouts'; + put ',ctl_ds=&mpelib..mpe_lockanytable'; + put ')'; + put 'options source2;'; + put '%inc tmp;'; + put 'filename tmp clear;'; + put '/**'; + put '* Update audit tracker'; + put '*/'; + put '%local newobs; %let newobs=%mf_getattrn(work.___closeout1,NLOBS);'; + put '%local user; %let user=%mf_getuser();'; + put 'proc sql;'; + put 'insert into &mpelib..mpe_dataloads'; + put 'set libref=%upcase("&base_lib")'; + put ',DSN=%upcase("&base_dsn")'; + put ',ETLSOURCE="&append_lib..&append_dsn contained &newobs records"'; + put ',LOADTYPE="CLOSEOUT"'; + put ',DELETED_RECORDS=&update_cnt'; + put ',NEW_RECORDS=0'; + put ',DURATION=%sysfunc(datetime())-&start'; + put ',USER_NM="&user"'; + put ',PROCESSED_DTTM=&now;'; + put 'quit;'; + put '%mend bitemporal_closeouts;'; + put '%macro mf_getschema(libref'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid vnum rc schema;'; + put '/* in case the parameter is a libref.tablename, pull off just the libref */'; + put '%let libref = %upcase(%scan(&libref, 1, %str(.)));'; + put '%let dsid=%sysfunc(open(sashelp.vlibnam(where=('; + put 'libname="%upcase(&libref)" and sysname=''Schema/Owner'''; + put ')),i));'; + put '%if (&dsid ^= 0) %then %do;'; + put '%let vnum=%sysfunc(varnum(&dsid,SYSVALUE));'; + put '%let rc=%sysfunc(fetch(&dsid));'; + put '%let schema=%sysfunc(getvarc(&dsid,&vnum));'; + put '%put &libref. schema is &schema.;'; + put '%let rc= %sysfunc(close(&dsid));'; + put '%end;'; + put '&schema'; + put '%mend mf_getschema;'; + put '/** @endcond */'; + put '%macro mf_getuniquename(prefix=MC);'; + put '&prefix.%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32-%length(&prefix))'; + put '%mend mf_getuniquename;'; + put '%macro mf_getvarlist(libds'; + put ',dlm=%str( )'; + put ',quote=no'; + put ',typefilter=A'; + put ')/*/STORE SOURCE*/;'; + put '/* declare local vars */'; + put '%local outvar dsid nvars x rc dlm q var vtype;'; + put '/* credit Rowland Hale - byte34 is double quote, 39 is single quote */'; + put '%if %upcase("e)=DOUBLE %then %let q=%qsysfunc(byte(34));'; + put '%else %if %upcase("e)=SINGLE %then %let q=%qsysfunc(byte(39));'; + put '/* open dataset in macro */'; + put '%let dsid=%sysfunc(open(&libds));'; + put '%if &dsid %then %do;'; + put '%let nvars=%sysfunc(attrn(&dsid,NVARS));'; + put '%if &nvars>0 %then %do;'; + put '/* add variables with supplied delimeter */'; + put '%do x=1 %to &nvars;'; + put '/* get variable type */'; + put '%let vtype=%sysfunc(vartype(&dsid,&x));'; + put '%if &vtype=&typefilter or &typefilter=A %then %do;'; + put '%let var=&q.%sysfunc(varname(&dsid,&x))&q.;'; + put '%if &var=&q&q %then %do;'; + put '%put &sysmacroname: Empty column found in &libds!;'; + put '%let var=&q. &q.;'; + put '%end;'; + put '%if %quote(&outvar)=%quote() %then %let outvar=&var;'; + put '%else %let outvar=&outvar.&dlm.&var.;'; + put '%end;'; + put '%end;'; + put '%end;'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: Unable to open &libds (rc=&dsid);'; + put '%put &sysmacroname: SYSMSG= %sysfunc(sysmsg());'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%do;%unquote(&outvar)%end;'; + put '%mend mf_getvarlist;'; + put '%macro mf_abort(mac=mf_abort.sas, msg=, iftrue=%str(1=1)'; + put ')/*/STORE SOURCE*/;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mf_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%abort;'; + put '%mend mf_abort;'; + put '/** @endcond */'; + put '%macro mf_verifymacvars('; + put 'verifyVars /* list of macro variable NAMES */'; + put ',makeUpcase=NO /* set to YES to make all the variable VALUES uppercase */'; + put ',mAbort=SOFT'; + put ')/*/STORE SOURCE*/;'; + put '%local verifyIterator verifyVar abortmsg;'; + put '%do verifyIterator=1 %to %sysfunc(countw(&verifyVars,%str( )));'; + put '%let verifyVar=%qscan(&verifyVars,&verifyIterator,%str( ));'; + put '%if not %symexist(&verifyvar) %then %do;'; + put '%let abortmsg= Variable &verifyVar is MISSING;'; + put '%goto exit_err;'; + put '%end;'; + put '%if %length(%trim(&&&verifyVar))=0 %then %do;'; + put '%let abortmsg= Variable &verifyVar is EMPTY;'; + put '%goto exit_err;'; + put '%end;'; + put '%if &makeupcase=YES %then %do;'; + put '%let &verifyVar=%upcase(&&&verifyvar);'; + put '%end;'; + put '%end;'; + put '%goto exit_success;'; + put '%exit_err:'; + put '%put &abortmsg;'; + put '%mf_abort(iftrue=(&mabort ne SOFT),'; + put 'mac=mf_verifymacvars,'; + put 'msg=%str(&abortmsg)'; + put ')'; + put '0'; + put '%return;'; + put '%exit_success:'; + put '1'; + put '%mend mf_verifymacvars;'; + put '%macro mf_wordsInStr1ButNotStr2('; + put 'Str1= /* string containing words to extract */'; + put ',Str2= /* used to compare with the extract string */'; + put ')/*/STORE SOURCE*/;'; + put '%local count_base count_extr i i2 extr_word base_word match outvar;'; + put '%if %length(&str1)=0 or %length(&str2)=0 %then %do;'; + put '%put base string (str1)= &str1;'; + put '%put compare string (str2) = &str2;'; + put '%return;'; + put '%end;'; + put '%let count_base=%sysfunc(countw(&Str2));'; + put '%let count_extr=%sysfunc(countw(&Str1));'; + put '%do i=1 %to &count_extr;'; + put '%let extr_word=%scan(&Str1,&i,%str( ));'; + put '%let match=0;'; + put '%do i2=1 %to &count_base;'; + put '%let base_word=%scan(&Str2,&i2,%str( ));'; + put '%if &extr_word=&base_word %then %let match=1;'; + put '%end;'; + put '%if &match=0 %then %let outvar=&outvar &extr_word;'; + put '%end;'; + put '&outvar'; + put '%mend mf_wordsInStr1ButNotStr2;'; + put '%macro mf_isblank(param'; + put ')/*/STORE SOURCE*/;'; + put '%sysevalf(%superq(param)=,boolean)'; + put '%mend mf_isblank;'; + put '%macro mp_dropmembers('; + put 'list /* space separated list of datasets / views */'; + put ',libref=WORK /* can only drop from a single library at a time */'; + put ',iftrue=%str(1=1)'; + put ')/*/STORE SOURCE*/;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%if %mf_isblank(&list) %then %do;'; + put '%put NOTE: nothing to drop!;'; + put '%return;'; + put '%end;'; + put 'proc datasets lib=&libref nolist;'; + put 'delete &list;'; + put 'delete &list /mtype=view;'; + put 'run;'; + put '%mend mp_dropmembers;'; + put '%macro mf_getquotedstr(IN_STR'; + put ',DLM=%str(,)'; + put ',QUOTE=S'; + put ',indlm=%str( )'; + put ')/*/STORE SOURCE*/;'; + put '/* credit Rowland Hale - byte34 is double quote, 39 is single quote */'; + put '%if "e=S %then %let quote=%qsysfunc(byte(39));'; + put '%else %if "e=D %then %let quote=%qsysfunc(byte(34));'; + put '%else %if "e=N %then %let quote=;'; + put '%local i item buffer;'; + put '%let i=1;'; + put '%do %while (%qscan(&IN_STR,&i,%str(&indlm)) ne %str() ) ;'; + put '%let item=%qscan(&IN_STR,&i,%str(&indlm));'; + put '%if %bquote("E) ne %then %let item="E%qtrim(&item)"E;'; + put '%else %let item=%qtrim(&item);'; + put '%if (&i = 1) %then %let buffer =%qtrim(&item);'; + put '%else %let buffer =&buffer&DLM%qtrim(&item);'; + put '%let i = %eval(&i+1);'; + put '%end;'; + put '%let buffer=%sysfunc(coalescec(%qtrim(&buffer),"E"E));'; + put '&buffer'; + put '%mend mf_getquotedstr;'; + put '%macro mf_nobs(libds'; + put ')/*/STORE SOURCE*/;'; + put '%mf_getattrn(&libds,NLOBS)'; + put '%mend mf_nobs;'; + put '%macro mp_retainedkey('; + put 'base_lib=WORK'; + put ',base_dsn=BASETABLE'; + put ',append_lib=WORK'; + put ',append_dsn=APPENDTABLE'; + put ',retained_key=DEFAULT_RK'; + put ',business_key= PK1 PK2'; + put ',check_uniqueness=NO'; + put ',maxkeytable=0'; + put ',locktable=0'; + put ',outds=WORK.APPEND'; + put ',filter_str='; + put ');'; + put '%put &sysmacroname entry vars:;'; + put '%put _local_;'; + put '%local base_libds app_libds key_field check maxkey idx_pk newkey_cnt iserr'; + put 'msg x tempds1 tempds2 comma_pk appnobs checknobs dropvar tempvar idx_val;'; + put '%let base_libds=%upcase(&base_lib..&base_dsn);'; + put '%let app_libds=%upcase(&append_lib..&append_dsn);'; + put '%let tempds1=%mf_getuniquename();'; + put '%let tempds2=%mf_getuniquename();'; + put '%let comma_pk=%mf_getquotedstr(in_str=%str(&business_key),dlm=%str(,),quote=);'; + put '%let outds=%sysfunc(ifc(%index(&outds,.)=0,work.&outds,&outds));'; + put '/* validation checks */'; + put '%let iserr=0;'; + put '%if &syscc>0 %then %do;'; + put '%let iserr=1;'; + put '%let msg=%str(SYSCC=&syscc on macro entry);'; + put '%end;'; + put '%else %if %sysfunc(exist(&base_libds))=0 %then %do;'; + put '%let iserr=1;'; + put '%let msg=%str(Base LIBDS (&base_libds) expected but NOT FOUND);'; + put '%end;'; + put '%else %if %sysfunc(exist(&app_libds))=0 %then %do;'; + put '%let iserr=1;'; + put '%let msg=%str(Append LIBDS (&app_libds) expected but NOT FOUND);'; + put '%end;'; + put '%else %if &maxkeytable ne 0 and %sysfunc(exist(&maxkeytable))=0 %then %do;'; + put '%let iserr=1;'; + put '%let msg=%str(Maxkeytable (&maxkeytable) expected but NOT FOUND);'; + put '%end;'; + put '%else %if &maxkeytable ne 0 and %sysfunc(exist(&locktable))=0 %then %do;'; + put '%let iserr=1;'; + put '%let msg=%str(Locktable (&locktable) expected but NOT FOUND);'; + put '%end;'; + put '%else %if %length(&business_key)=0 %then %do;'; + put '%let iserr=1;'; + put '%let msg=%str(Business key (&business_key) expected but NOT FOUND);'; + put '%end;'; + put '%do x=1 %to %sysfunc(countw(&business_key));'; + put '/* check business key values exist */'; + put '%let key_field=%scan(&business_key,&x,%str( ));'; + put '%if not %mf_existvar(&app_libds,&key_field) %then %do;'; + put '%let iserr=1;'; + put '%let msg=Business key (&key_field) not found on &app_libds!;'; + put '%goto err;'; + put '%end;'; + put '%else %if not %mf_existvar(&base_libds,&key_field) %then %do;'; + put '%let iserr=1;'; + put '%let msg=Business key (&key_field) not found on &base_libds!;'; + put '%goto err;'; + put '%end;'; + put '%end;'; + put '%err:'; + put '%if &iserr=1 %then %do;'; + put '/* err case so first perform an unlock of the base table before exiting */'; + put '%mp_lockanytable('; + put 'UNLOCK,lib=&base_lib,ds=&base_dsn,ref=%superq(msg),ctl_ds=&locktable'; + put ')'; + put '%end;'; + put '%mp_abort(iftrue=(&iserr=1),mac=mp_retainedkey,msg=%superq(msg))'; + put 'proc sql noprint;'; + put 'select sum(max(&retained_key),0) into: maxkey from &base_libds;'; + put '/**'; + put '* get base table RK and bus field values for lookup'; + put '*/'; + put 'proc sql noprint;'; + put 'create table &tempds1 as'; + put 'select distinct &comma_pk,&retained_key'; + put 'from &base_libds &filter_str'; + put 'order by &comma_pk,&retained_key;'; + put '%if &check_uniqueness=YES %then %do;'; + put 'select count(*) into:checknobs'; + put 'from (select distinct &comma_pk from &app_libds);'; + put 'select count(*) into: appnobs from &app_libds; /* might be view */'; + put '%if &checknobs ne &appnobs %then %do;'; + put '%let msg=Source table &app_libds is not unique on (&business_key);'; + put '%let iserr=1;'; + put '%end;'; + put '%end;'; + put '%if &iserr=1 %then %do;'; + put '/* err case so first perform an unlock of the base table before exiting */'; + put '%mp_lockanytable('; + put 'UNLOCK,lib=&base_lib,ds=&base_dsn,ref=%superq(msg),ctl_ds=&locktable'; + put ')'; + put '%end;'; + put '%mp_abort(iftrue= (&iserr=1),mac=mp_retainedkey,msg=%superq(msg))'; + put '%if %mf_existvar(&app_libds,&retained_key)'; + put '%then %let dropvar=(drop=&retained_key);'; + put '/* prepare interim table with retained key populated for matching keys */'; + put 'proc sql noprint;'; + put 'create table &tempds2 as'; + put 'select b.&retained_key, a.*'; + put 'from &app_libds &dropvar a'; + put 'left join &tempds1 b'; + put 'on 1'; + put '%do idx_pk=1 %to %sysfunc(countw(&business_key));'; + put '%let idx_val=%scan(&business_key,&idx_pk);'; + put 'and a.&idx_val=b.&idx_val'; + put '%end;'; + put 'order by &retained_key;'; + put '/* identify the number of entries without retained keys (new records) */'; + put 'select count(*) into: newkey_cnt'; + put 'from &tempds2'; + put 'where missing(&retained_key);'; + put 'quit;'; + put '/**'; + put '* Update maxkey table if link provided'; + put '*/'; + put '%if &maxkeytable ne 0 %then %do;'; + put 'proc sql noprint;'; + put 'select count(*) into: check from &maxkeytable'; + put 'where upcase(keytable)="&base_libds";'; + put '%mp_lockanytable(LOCK'; + put ',lib=%scan(&maxkeytable,1,.)'; + put ',ds=%scan(&maxkeytable,2,.)'; + put ',ref=Updating maxkeyvalues with mp_retainedkey'; + put ',ctl_ds=&locktable'; + put ')'; + put 'proc sql;'; + put '%if &check=0 %then %do;'; + put 'insert into &maxkeytable'; + put 'set keytable="&base_libds"'; + put ',keycolumn="&retained_key"'; + put ',max_key=%eval(&maxkey+&newkey_cnt)'; + put ',processed_dttm="%sysfunc(datetime(),%mf_fmtdttm())"dt;'; + put '%end;'; + put '%else %do;'; + put 'update &maxkeytable'; + put 'set max_key=%eval(&maxkey+&newkey_cnt)'; + put ',processed_dttm="%sysfunc(datetime(),%mf_fmtdttm())"dt'; + put 'where keytable="&base_libds";'; + put '%end;'; + put '%mp_lockanytable(UNLOCK'; + put ',lib=%scan(&maxkeytable,1,.)'; + put ',ds=%scan(&maxkeytable,2,.)'; + put ',ref=Updating maxkeyvalues with maxkey=%eval(&maxkey+&newkey_cnt)'; + put ',ctl_ds=&locktable'; + put ')'; + put '%end;'; + put '/* fill in the missing retained key values */'; + put '%let tempvar=%mf_getuniquename();'; + put 'data &outds(drop=&tempvar);'; + put 'retain &tempvar %eval(&maxkey+1);'; + put 'set &tempds2;'; + put 'if &retained_key =. then &retained_key=&tempvar;'; + put '&tempvar=&tempvar+1;'; + put 'run;'; + put '%mend mp_retainedkey;'; + put '/** @cond */'; + put '%macro mp_storediffs(libds'; + put ',origds'; + put ',key'; + put ',delds=0'; + put ',appds=0'; + put ',modds=0'; + put ',outds=work.mp_storediffs'; + put ',loadref=0'; + put ',processed_dttm=0'; + put ',mdebug=0'; + put ')/*/STORE SOURCE*/;'; + put '%local dbg;'; + put '%if &mdebug=1 %then %do;'; + put '%put &sysmacroname entry vars:;'; + put '%put _local_;'; + put '%end;'; + put '%else %let dbg=*;'; + put '/* set up unique and temporary vars */'; + put '%local ds1 ds2 ds3 ds4 hashkey inds_auto inds_keep dslist vlist;'; + put '%let ds1=%upcase(work.%mf_getuniquename(prefix=mpsd_ds1));'; + put '%let ds2=%upcase(work.%mf_getuniquename(prefix=mpsd_ds2));'; + put '%let ds3=%upcase(work.%mf_getuniquename(prefix=mpsd_ds3));'; + put '%let ds4=%upcase(work.%mf_getuniquename(prefix=mpsd_ds4));'; + put '%let hashkey=%upcase(%mf_getuniquename(prefix=mpsd_hashkey));'; + put '%let inds_auto=%upcase(%mf_getuniquename(prefix=mpsd_inds_auto));'; + put '%let inds_keep=%upcase(%mf_getuniquename(prefix=mpsd_inds_keep));'; + put '%let dslist=&origds;'; + put '%if &delds ne 0 %then %do;'; + put '%let delds=%upcase(&delds);'; + put '%if %scan(&delds,-1,.)=&delds %then %let delds=WORK.&delds;'; + put '%let dslist=&dslist &delds;'; + put '%end;'; + put '%if &appds ne 0 %then %do;'; + put '%let appds=%upcase(&appds);'; + put '%if %scan(&appds,-1,.)=&appds %then %let appds=WORK.&appds;'; + put '%let dslist=&dslist &appds;'; + put '%end;'; + put '%if &modds ne 0 %then %do;'; + put '%let modds=%upcase(&modds);'; + put '%if %scan(&modds,-1,.)=&modds %then %let modds=WORK.&modds;'; + put '%let dslist=&dslist &modds;'; + put '%end;'; + put '%let origds=%upcase(&origds);'; + put '%if %scan(&origds,-1,.)=&origds %then %let origds=WORK.&origds;'; + put '%let key=%upcase(&key);'; + put '/* hash the key and append all the tables (marking the source) */'; + put 'data &ds1;'; + put 'set &dslist indsname=&inds_auto;'; + put '&hashkey=put(md5(catx(''|'',%mf_getquotedstr(&key,quote=N))),$hex32.);'; + put '&inds_keep=upcase(&inds_auto);'; + put 'proc sort;'; + put 'by &inds_keep &hashkey;'; + put 'run;'; + put '/* transpose numeric & char vars */'; + put 'proc transpose data=&ds1'; + put 'out=&ds2(rename=(&hashkey=key_hash _name_=tgtvar_nm col1=newval_num));'; + put 'by &inds_keep &hashkey;'; + put 'var _numeric_;'; + put 'run;'; + put 'proc transpose data=&ds1'; + put 'out=&ds3('; + put 'rename=(&hashkey=key_hash _name_=tgtvar_nm col1=newval_char)'; + put 'where=(tgtvar_nm not in ("&hashkey","&inds_keep"))'; + put ');'; + put 'by &inds_keep &hashkey;'; + put 'var _character_;'; + put 'run;'; + put '%if %index(&libds,-)>0 and %scan(&libds,2,-)=FC %then %do;'; + put '/* this is a format catalog - cannot query cols directly */'; + put '%let vlist="FMTNAME","START","END","LABEL","MIN","MAX","DEFAULT","LENGTH"'; + put ',"FUZZ","PREFIX","MULT","FILL","NOEDIT","TYPE","SEXCL","EEXCL","HLO"'; + put ',"DECSEP","DIG3SEP","DATATYPE","LANGUAGE";'; + put '%end;'; + put '%else %let vlist=%mf_getvarlist(&libds,dlm=%str(,),quote=DOUBLE);'; + put 'data &ds4;'; + put 'length &inds_keep $41 tgtvar_nm $32 _label_ $256;'; + put 'if _n_=1 then call missing(_label_);'; + put 'drop _label_;'; + put 'set &ds2 &ds3 indsname=&inds_auto;'; + put 'tgtvar_nm=upcase(tgtvar_nm);'; + put 'if tgtvar_nm in (%upcase(&vlist));'; + put 'if upcase(&inds_auto)="&ds2" then tgtvar_type=''N'';'; + put 'else if upcase(&inds_auto)="&ds3" then tgtvar_type=''C'';'; + put 'else do;'; + put 'putlog "%str(ERR)OR: unidentified vartype input!" &inds_auto;'; + put 'call symputx(''syscc'',98);'; + put 'end;'; + put 'if &inds_keep="&appds" then move_type=''A'';'; + put 'else if &inds_keep="&delds" then move_type=''D'';'; + put 'else if &inds_keep="&modds" then move_type=''M'';'; + put 'else if &inds_keep="&origds" then move_type=''O'';'; + put 'else do;'; + put 'putlog "%str(ERR)OR: unidentified movetype input!" &inds_keep;'; + put 'call symputx(''syscc'',99);'; + put 'end;'; + put 'tgtvar_nm=upcase(tgtvar_nm);'; + put 'if tgtvar_nm in (%mf_getquotedstr(&key)) then is_pk=1;'; + put 'else is_pk=0;'; + put 'drop &inds_keep;'; + put 'run;'; + put '%if "&loadref"="0" %then %let loadref=%sysfunc(uuidgen());'; + put '%if &processed_dttm=0 %then %let processed_dttm=%sysfunc(datetime());'; + put '%let libds=%upcase(&libds);'; + put '/* join orig vals for modified & deleted */'; + put 'proc sql;'; + put 'create table &outds as'; + put 'select "&loadref" as load_ref length=36'; + put ',&processed_dttm as processed_dttm format=E8601DT26.6'; + put ',"%scan(&libds,1,.)" as libref length=8'; + put ',"%scan(&libds,2,.)" as dsn length=32'; + put ',b.key_hash length=32'; + put ',b.move_type length=1'; + put ',b.tgtvar_nm length=32'; + put ',b.is_pk'; + put ',case when b.move_type ne ''M'' then -1'; + put 'when a.newval_num=b.newval_num and a.newval_char=b.newval_char then 0'; + put 'else 1'; + put 'end as is_diff'; + put ',b.tgtvar_type length=1'; + put ',case when b.move_type=''D'' then b.newval_num'; + put 'else a.newval_num'; + put 'end as oldval_num format=best32.'; + put ',case when b.move_type=''D'' then .'; + put 'else b.newval_num'; + put 'end as newval_num format=best32.'; + put ',case when b.move_type=''D'' then b.newval_char'; + put 'else a.newval_char'; + put 'end as oldval_char length=32765'; + put ',case when b.move_type=''D'' then '''''; + put 'else b.newval_char'; + put 'end as newval_char length=32765'; + put 'from &ds4(where=(move_type=''O'')) as a'; + put 'right join &ds4(where=(move_type ne ''O'')) as b'; + put 'on a.tgtvar_nm=b.tgtvar_nm'; + put 'and a.key_hash=b.key_hash'; + put 'order by move_type, key_hash,is_pk desc, tgtvar_nm;'; + put '%if &mdebug=0 %then %do;'; + put 'proc sql;'; + put 'drop table &ds1, &ds2, &ds3, &ds4;'; + put '%end;'; + put '%mend mp_storediffs;'; + put '/** @endcond */'; + put '%macro bitemporal_dataloader('; + put 'bus_from= /* Business FROM datetime variable. Req''d on'; + put 'STAGING & BASE tables.*/'; + put ',bus_to = /* Business TO datetime variable. Req''d on'; + put 'STAGING & BASE tables. */'; + put ',bus_from_override= /* Provide a hard coded BUS_FROM datetime value.*/'; + put ',bus_to_override= /* provide a hard coded BUS_TO datetime value */'; + put ',tech_from= /* Technical FROM datetime variable. Req''d on'; + put 'BASE table only. */'; + put ',tech_to = /* Technical TO datetime variable. Req''d on BASE'; + put 'table only. */'; + put ',processed= 0'; + put ',base_lib=WORK /* Libref of the BASE table. */'; + put ',base_dsn=BASETABLE /* Name of BASE table. */'; + put ',append_lib=WORK /* Libref of the STAGING table. */'; + put ',append_dsn=APPENDTABLE'; + put ',high_date=''01JAN5999:00:00:00''dt /* High date to close out records */'; + put ',PK= name sex'; + put ',RK_UNDERLYING='; + put ',KEEPVARS= /* Provides option for removing unwanted vars from append table */'; + put ',RK_UPDATE_MAXKEYTABLE=NO /* If switching (or mix matching) with regular'; + put 'SCD2 loader then set this switch to YES to'; + put 'ensure the MAXKEYTABLE is updated with the'; + put 'current maximum RK value for the target table'; + put '*/'; + put ',CHECK_UNIQUENESS=YES /* Perform a check of the APPEND table to ensure it is'; + put 'unique on its business key */'; + put ',ETLSOURCE=demo /* supply a value ($50.) to show as ETLSOURCE in'; + put '&dclib..DATALOADS */'; + put ',LOADTYPE=BITEMPORAL'; + put ',RK_MAXKEYTABLE= mpe_maxkeyvalues'; + put ',LOG=1 /* Switch to 0 to prevent records being added to'; + put '&mpelib..mpe_DATALOADS (ie when testing)*/'; + put ',DELETE_COL= _____DELETE__THIS__RECORD_____'; + put '/* If this variable is found in the append dataset'; + put 'then records are closed out (or deleted) in the'; + put 'append table where that variable= "Yes" */'; + put ',LOADTARGET=YES /* set to anything but uppercase YES to switch off'; + put 'target table load and generate temp tables only */'; + put ',CLOSE_VARS='; + put '/*a problem with regular SCD2 or TXTEMPORAL loads is that there is'; + put 'no facility to close out removed records (all records are'; + put 'assumed new or changed). But how does one determine which'; + put 'records are removed? Short of loading the entire table'; + put 'each time? This parameter allows a set of variables'; + put '(this should be a subset of the PK) to be declared, and'; + put 'the macro will determine which records in the base table'; + put 'need to be closed out ahead of the load.'; + put 'For instance, given the following:'; + put 'Base Table Staging Table'; + put 'DATE ENTITY AMOUNT DATE ENTITY AMOUNT'; + put 'JAN ACME4 66 JAN ACME4 66'; + put 'FEB ACME4 99 FEB ACME4 99'; + put 'FEB ACME1 22'; + put 'By supplying DATE in CLOSE_VARS and DATE ENTITY as the PK,'; + put 'the "FEB PAG 22" record would get closed out.'; + put '*/'; + put ',config_table=&dclib..MPE_CONFIG'; + put ',dclib=&dc_libref'; + put ',outds_del=work.outds_del'; + put ',outds_add=work.outds_add'; + put ',outds_mod=work.outds_mod'; + put ',outds_audit=0'; + put ');'; + put '/* when changing this macro, update the version num here */'; + put '%local ver;'; + put '%let ver=32;'; + put '%put &sysmacroname entry vars:;'; + put '%put _local_;'; + put '%dc_assignlib(WRITE,&base_lib) /* may not already be assigned */'; + put '/* return straight away if nothing to load */'; + put '%let nobs= %mf_getattrn(&append_lib..&append_dsn,NLOBS);'; + put '%if &nobs=-1 %then %do;'; + put 'proc sql noprint; select count(*) into: nobs from &append_lib..&append_dsn;'; + put '%end;'; + put '%if &nobs=0 %then %do;'; + put '%put NOTE:; %put NOTE-;%put NOTE-;%put NOTE-;'; + put '%put NOTE- Base dataset &append_lib..&append_dsn is empty. Nothing to upload!;'; + put '%put NOTE-;%put NOTE-;%put NOTE-;'; + put '%return;'; + put '%end;'; + put '/* hard exit if err condition exists */'; + put '%mp_abort(iftrue= (&syscc > 0)'; + put ',mac=bitemporal_dataloader'; + put ',msg=%str(Bitemporal transform / job aborted due to SYSCC=&SYSCC status;)'; + put ')'; + put '%local engine_type;'; + put '%let engine_type=%mf_getengine(&base_lib);'; + put '%if (&engine_type=REDSHIFT or &engine_type=POSTGRES) and %length(&CLOSE_VARS)>0'; + put '%then %do;'; + put '%put NOTE:; %put NOTE-;%put NOTE-;%put NOTE-;'; + put '%put NOTE- CLOSE_VARS functionality not yet supported in &engine_type;'; + put '%put NOTE-;%put NOTE-;%put NOTE-;'; + put '%return;'; + put '%end;'; + put '/**'; + put '* The metadata functions (eg mf_existvar) will fail if the base table has a'; + put '* SAS lock. So, make a snapshot of the base table for further use.'; + put '* Also, make output tables (regardless).'; + put '*/'; + put '%local basecopy;'; + put '%let basecopy=%mf_getuniquename(prefix=basecopy);'; + put 'data &basecopy &outds_mod &outds_add &outds_del;'; + put 'set &base_lib..&base_dsn;'; + put 'stop;'; + put 'run;'; + put '%mp_abort(iftrue= (&syscc > 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after base table copy - aborting due to table lock)'; + put ')'; + put '%local cols idx_pk md5_col ;'; + put '%let md5_col=___TMP___md5;'; + put '%let check_uniqueness=%upcase(&check_uniqueness);'; + put '%let RK_UPDATE_MAXKEYTABLE=%upcase(&RK_UPDATE_MAXKEYTABLE);'; + put '%let high_date=%unquote(&high_date);'; + put '%let loadtype=%upcase(&loadtype);'; + put '/* ensure irrelevant variables are cleared */'; + put '%if &loadtype=BUSTEMPORAL %then %do;'; + put '%let tech_from=;'; + put '%let tech_to=;'; + put '%end;'; + put '%else %if &loadtype=TXTEMPORAL or &loadtype=UPDATE %then %do;'; + put '%let bus_from=;'; + put '%let bus_to=;'; + put '%end;'; + put '/* ensure relevant variables are supplied */'; + put '%mp_abort(iftrue=(&loadtype=BITEMPORAL & %mf_verifymacvars(bus_from bus_to)=0)'; + put ',mac=bitemporal_dataloader'; + put ',msg=%str(Missing BUS_FROM / BUS_TO)'; + put ')'; + put '%mp_abort(iftrue=(&loadtype=TXTEMPORAL & %mf_verifymacvars(tech_from tech_to)=0)'; + put ',mac=bitemporal_dataloader'; + put ',msg=%str(Missing TECH_FROM / TECH_TO)'; + put ')'; + put '/**'; + put '* drop any tables (may be defined as views or vice versa preventing overwrite)'; + put '*/'; + put '%mp_dropmembers(append bitemp0_append bitemp_cols)'; + put '/* SQL Server requires its own time values */'; + put '/* 9.2 will only give picture format down to seconds. 9.3 allows'; + put 'milliseconds by using lower S and defining the decimal in the format name..*/'; + put 'PROC FORMAT;'; + put 'picture MyMSdt other=''%0Y-%0m-%0dT%0H:%0M:%0S'' (datatype=datetime);'; + put 'RUN;'; + put '%local dbnow;'; + put '%let dbnow="%sysfunc(datetime(),%mf_fmtdttm())"dt;'; + put 'data _null_;'; + put '/* convert space separated macvar to comma separated for SQL processing */'; + put 'call symputx(''PK_COMMA'',tranwrd(compbl("&pk"),'' '','',''),''L'');'; + put 'call symputx(''PK_CNT'',countw("&pk",'' ''),''L'');'; + put 'now=&dbnow;'; + put 'call symputx(''NOW'',now,''L'');'; + put 'call symputx(''SQLNOW'',cats("''",put(now,MyMSdt.),"''"),''L'');'; + put 'length etlsource $100;'; + put 'etlsource=subpad(symget(''etlsource''),1,100);'; + put 'call symputx(''etlsource'',etlsource,''l'');'; + put 'run;'; + put '/**'; + put '* Even if no PROCESSED var provided, assume that any variable named'; + put '* PROCESSED_DTTM should be updated'; + put '*/'; + put '%if &processed=0 %then %do;'; + put '%if %mf_existvar(&basecopy,PROCESSED_DTTM)'; + put '%then %let processed=PROCESSED_DTTM;'; + put '%else %let processed=;'; + put '%end;'; + put '/* extract colnames for md5 creation / change tracking */'; + put 'proc contents noprint data=&base_lib..&base_dsn'; + put 'out=work.bitemp_cols (keep=name type length varnum format:);'; + put 'run;'; + put 'proc sql noprint;'; + put 'select name into: cols separated by '','''; + put 'from work.bitemp_cols'; + put 'where upcase(name) not in'; + put '(%upcase("&bus_from","&bus_to"'; + put ',"&tech_from","&tech_to"'; + put ',"&processed","&delete_col")) ;'; + put 'select case when type in (2,6) then cats(''put(md5(trim('',name,'')),$hex32.)'')'; + put '/* multiply by 1 to strip precision errors (eg 0 != 0) */'; + put '/* but ONLY if not missing, else will lose any special missing values */'; + put 'else cats(''put(md5(trim(put(ifn(missing('''; + put ',name,''),'',name,'','',name,''*1),binary64.))),$hex32.)'') end'; + put 'into: stripcols separated by ''||'''; + put 'from work.bitemp_cols'; + put 'where upcase(name) not in'; + put '(%upcase("&bus_from","&bus_to"'; + put ',"&tech_from","&tech_to"'; + put ',"&processed","&delete_col")) ;'; + put '/* set default formats*/'; + put '%let bus_from_fmt = datetime19.;'; + put '%let bus_to_fmt = datetime19.;'; + put '%let processed_fmt = datetime19.;'; + put '%let tech_from_fmt = format=datetime19.;'; + put '%let tech_to_fmt = format=datetime19.;'; + put '%put &=stripcols;'; + put '%put &=pk;'; + put 'data _null_;'; + put 'set work.bitemp_cols;'; + put 'if type=2 or type=6 then do;'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'if format='''' then fmt=cats(length,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put 'if upcase(name)="%upcase(&bus_from)" then'; + put 'call symputx(''bus_from_fmt'',fmt,''L'');'; + put 'else if upcase(name)="%upcase(&bus_to)" then'; + put 'call symputx(''bus_to_fmt'',fmt,''L'');'; + put 'else if upcase(name)="%upcase(&tech_from)" then'; + put 'call symputx(''tech_from_fmt'',"format="!!fmt,''L'');'; + put 'else if upcase(name)="%upcase(&tech_to)" then'; + put 'call symputx(''tech_to_fmt'',"format="!!fmt,''L'');'; + put 'else if upcase(name)="%upcase(&processed)" then'; + put 'call symputx(''processed_fmt'',fmt,''L'');'; + put 'run;'; + put '%if %index(%quote(&cols),___TMP___) %then %do;'; + put '%let msg=%str(Table contains a variable name containing "___TMP___".%trim('; + put ') This may conflict with temp variable generation!!);'; + put '%mp_abort(msg=&msg,mac=bitemporal_dataloader);'; + put '%let syscc=5;'; + put '%return;'; + put '%end;'; + put '/* if transaction dates appear on the APPEND table, need to remove them */'; + put '%local drop_tx_dates /* used in append table */'; + put 'drop_tx_dates_noobs /* used to take the base table structure */;'; + put '%if %mf_existvar(&append_lib..&append_dsn, &tech_from)'; + put '%then %let drop_tx_dates=&tech_from;'; + put '%if %mf_existvar(&append_lib..&append_dsn, &tech_to)'; + put '%then %let drop_tx_dates=&drop_tx_dates &tech_to;'; + put '%if %length(%trim(&drop_tx_dates))>0'; + put '%then %let drop_tx_dates=(drop=&drop_tx_dates);'; + put '%if %mf_existvar(&basecopy, &tech_from)'; + put '%then %let drop_tx_dates_noobs=&tech_from;'; + put '%if %mf_existvar(&basecopy, &tech_to)'; + put '%then %let drop_tx_dates_noobs=&drop_tx_dates_noobs &tech_to;'; + put '%if %length(%trim(&drop_tx_dates_noobs))>0'; + put '%then %let drop_tx_dates_noobs=(drop=&drop_tx_dates_noobs obs=0);'; + put '%else %let drop_tx_dates_noobs=(obs=0);'; + put '/**'; + put '* Lock the table. This is necessary as we are doing a two part update (first'; + put '* closing records then appending new records). It is theoretically possible'; + put '* that an upload may occur whilst preparing the staging tables. And the'; + put '* staging tables are about to be prepared..'; + put '*/'; + put '%if &LOADTARGET = YES %then %do;'; + put '%mp_lockanytable(LOCK,'; + put 'lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE,ctl_ds=&dclib..mpe_lockanytable'; + put ')'; + put '%end;'; + put '%else %do;'; + put '/* not an actual load, so avoid updating the max key table in next step. */'; + put '%let rk_update_maxkeytable=NO;'; + put '%end;'; + put '%if %length(&RK_UNDERLYING)>0 %then %do;'; + put '%mp_retainedkey('; + put 'base_lib=&base_lib'; + put ',base_dsn=&base_dsn'; + put ',append_lib=&append_lib'; + put ',append_dsn=&append_dsn'; + put ',retained_key=&pk'; + put ',business_key=&rk_underlying'; + put ',check_uniqueness=&CHECK_UNIQUENESS'; + put ',outds=work.append'; + put '%if &rk_update_maxkeytable=NO %then %do;'; + put ',maxkeytable=0'; + put '%end;'; + put '%else %do;'; + put ',maxkeytable=&dclib..&RK_MAXKEYTABLE'; + put '%end;'; + put ',locktable=&dclib..mpe_lockanytable'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then %do;'; + put ',filter_str=%str( (where=( &now < &tech_to)) )'; + put '%end;'; + put ')'; + put '%end;'; + put '%else %do;'; + put 'proc sql;'; + put 'create view work.append as select * from &append_lib..&append_dsn;'; + put '%end;'; + put '/**'; + put '* generate md5 for append table'; + put '*/'; + put '/* it is possible the source dataset has additional (unwanted) columns.'; + put 'Drop if specified; */'; + put '%if %length(&keepvars)>0 %then %do;'; + put '/* remove tech dates from keepvars as they are generated later */'; + put '%let keepvars=%sysfunc(tranwrd(%str( &keepvars ),%str( &tech_from ),%str( )));'; + put '%let keepvars=%sysfunc(tranwrd(%str( &keepvars ),%str( &tech_to ),%str( )));'; + put '%let keepvars=(keep=&keepvars &bus_from &bus_to &processed &md5_col);'; + put '%end;'; + put '/* CAS varchar types cause append issues here, so perform autoconvert'; + put 'by creating empty local table first */'; + put 'data;'; + put 'set &base_lib..&base_dsn &drop_tx_dates_noobs;'; + put 'run;'; + put '%local emptybasetable; %let emptybasetable=&syslast;'; + put 'data work.bitemp0_append &keepvars &outds_del(drop=&md5_col )'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put '/nonote2err'; + put '%end;'; + put ';'; + put '/* apply formats for bitemporal vars but not tx dates which are added later */'; + put '%if %length(&keepvars)>0 and &loadtype=BITEMPORAL %then %do;'; + put 'format &bus_from &bus_from_fmt;'; + put 'format &bus_to &bus_to_fmt;'; + put '%end;'; + put 'set &emptybasetable /* base table reqd in case append has fewer cols */'; + put 'work.append &drop_tx_dates;'; + put '%if %length(%str(&bus_from_override))>0 %then %do;'; + put '&bus_from= %unquote(&bus_from_override) ;'; + put '%end;'; + put '%if %length(%str(&bus_to_override))>0 %then %do;'; + put '&bus_to= %unquote(&bus_to_override) ;'; + put '%end;'; + put 'length &md5_col $32;'; + put '&md5_col=put(md5(&stripcols),hex32.);'; + put '%if %length(&processed)>0 %then %do;'; + put 'format &processed &processed_fmt;'; + put '&processed=&now;'; + put '%end;'; + put '/**'; + put '* If a delete column exists then create the delete dataset'; + put '*/'; + put '%if %mf_existvar(&append_lib..&append_dsn, &delete_col) %then %do;'; + put 'drop &delete_col;'; + put 'if upcase(&delete_col) = "YES" then output &outds_del ;'; + put 'else output work.bitemp0_append ;'; + put 'run;'; + put '%if %mf_getattrn(&outds_del,NLOBS)>0 %then %do;'; + put '%bitemporal_closeouts('; + put 'tech_from=&tech_from'; + put ',tech_to = &tech_to'; + put ',base_lib=&base_lib'; + put ',base_dsn=&base_dsn'; + put ',append_lib=work'; + put ',append_dsn=%scan(&outds_del,-1,.)'; + put ',PK=&bus_from &pk'; + put ',NOW=&dbnow'; + put ',loadtarget=&loadtarget'; + put ',loadtype=&loadtype'; + put ')'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put 'output work.bitemp0_append;'; + put 'run;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc gt 0 at line 494)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc)'; + put ')'; + put '%if %length(&close_vars)>0 %then %do;'; + put '/**'; + put '* need to close out records that are not provided'; + put '*/'; + put 'proc sql;'; + put 'create table bitemp1_closevars1 as'; + put 'select distinct a.%mf_getquotedstr(in_str=&pk,dlm=%str(,a.),quote=)'; + put 'from &base_lib..&base_dsn a'; + put 'inner join work.bitemp0_append b'; + put 'on 1=1'; + put '/* join on closevars key */'; + put '%do idx_pk=1 %to %sysfunc(countw(&close_vars));'; + put '%let idx_val=%scan(&close_vars,&idx_pk);'; + put 'and a.&idx_val=b.&idx_val'; + put '%end;'; + put '/* filter base on tech dates if necessary */'; + put '%if &loadtype=TXTEMPORAL %then %do;'; + put 'where a.&tech_from <=&now and &now < a.&tech_to'; + put '%end;'; + put ';'; + put 'create table bitemp1_closevars2 as'; + put 'select distinct a.*'; + put 'from bitemp1_closevars1 a'; + put 'left join work.bitemp0_append b'; + put 'on 1=1'; + put '/* join on primary key */'; + put '%do idx_pk=1 %to %sysfunc(countw(&pk));'; + put '%let idx_val=%scan(&pk,&idx_pk);'; + put 'and a.&idx_val=b.&idx_val'; + put '%end;'; + put '/* identify removed records by null value in a field in PK but not close_vars'; + put '*/'; + put 'where b.%scan('; + put '%mf_wordsInStr1ButNotStr2(Str1=&pk,Str2=&close_vars),1,%str( )'; + put ') IS NULL'; + put ';'; + put '%if %mf_getattrn(bitemp1_closevars2,NLOBS)>0 %then %do;'; + put '%bitemporal_closeouts('; + put 'tech_from=&tech_from'; + put ',tech_to = &tech_to'; + put ',base_lib=&base_lib'; + put ',base_dsn=&base_dsn'; + put ',append_lib=work'; + put ',append_dsn=bitemp1_closevars2'; + put ',PK=&bus_from &pk'; + put ',NOW=&dbnow'; + put ',loadtarget=&loadtarget'; + put ',loadtype=&loadtype'; + put ')'; + put '%end;'; + put '%end;'; + put '/* return if nothing to load (was just deletes) */'; + put '%if %mf_getattrn(work.bitemp0_append,NLOBS)=0 %then %do;'; + put '%put NOTE:; %put NOTE-;%put NOTE-;%put NOTE-;'; + put '%put NOTE- No updates - just deletes!;'; + put '%put NOTE-;%put NOTE-;%put NOTE-;'; + put '%mp_lockanytable(UNLOCK,'; + put 'lib=&base_lib,ds=&base_dsn,'; + put 'ref=&ETLSOURCE,'; + put 'ctl_ds=&dclib..mpe_lockanytable'; + put ')'; + put '%if %mf_getattrn(&outds_del,NLOBS)>0 %then %do;'; + put '%let user=%mf_getUser();'; + put '/* no emails yet'; + put '%sumo_alerts(ALERT_EVENT=UPDATE'; + put ', ALERT_TARGET=&base_lib..&base_dsn'; + put ', from_user= &user);*/'; + put '%end;'; + put '%return;'; + put '%end;'; + put '/**'; + put '* If applying manual overrides to business dates, then the input table MUST'; + put '* be unique on the PK. Check, and if not - abort.'; + put '*/'; + put '%local msg;'; + put '%if %length(&bus_from_override.&bus_to_override)>0 or &CHECK_UNIQUENESS=YES'; + put '%then %do;'; + put 'proc sort data=work.bitemp0_append out=work.bitemp0_check nodupkey;'; + put 'by &pk;'; + put 'run;'; + put '%if %mf_getattrn(work.bitemp0_check,NLOBS)'; + put 'ne %mf_getattrn(work.bitemp0_append,NLOBS)'; + put '%then %do;'; + put '%let msg=INPUT table &append_lib..&append_dsn is not unique on PK (&pk);'; + put '%mp_lockanytable(UNLOCK,lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE (&msg),'; + put 'ctl_ds=&dclib..mpe_lockanytable'; + put ')'; + put '%mp_abort(msg=&msg,mac=bitemporal_dataloader.sas);'; + put '%end;'; + put '%end;'; + put '/**'; + put '* extract from BASE table. Only want matching records, as could be very BIG.'; + put '* New records are subsequently identified via left join and test for nulls.'; + put '*/'; + put '%local temp_table temp_table2 base_table baselib_schema;'; + put '%put DCNOTE: Extracting matching observations from &base_lib..&base_dsn;'; + put '%if &engine_type=OLEDB %then %do;'; + put '%let temp_table=##BITEMP_&base_dsn;'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then'; + put '%let base_table=(select * from [dbo].&base_dsn'; + put 'where convert(datetime,&SQLNOW) < &tech_to );'; + put '%else %let base_table=[dbo].&base_dsn;'; + put 'proc sql;'; + put 'create table &base_lib.."&temp_table"n as'; + put 'select * from work.bitemp0_append;'; + put '/* open up a connection for pass through SQL */'; + put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; + put 'create table work.bitemp0_base as select * from connection to myAlias('; + put '%end;'; + put '%else %if &engine_type=REDSHIFT or &engine_type=POSTGRES %then %do;'; + put '/* grab schema */'; + put '%let baselib_schema=%mf_getschema(&base_lib);'; + put '%if &baselib_schema.X ne X %then %let baselib_schema=&baselib_schema..;'; + put '/* grab redshift config */'; + put '%local redcnt; %let redcnt=0;'; + put '%if &engine_type=REDSHIFT %then %do;'; + put 'data _null_;'; + put 'set &config_table(where=(var_scope=''DCBL_REDSH'' and var_active=1));'; + put 'x+1;'; + put 'call symputx(cats(''rednm'',x),var_value,''l'');'; + put 'call symputx(cats(''redval'',x),var_value,''l'');'; + put 'call symputx(''redcnt'',x,''l'');'; + put 'run;'; + put '%end;'; + put '/* cannot persist temp tables so must create a temporary permanent table */'; + put '%let temp_table=%mf_getuniquename(prefix=XDCTEMP);'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then'; + put '%let base_table=(select * from &baselib_schema.&base_dsn'; + put 'where timestamp &sqlnow < &tech_to );'; + put '%else %let base_table=&baselib_schema.&base_dsn;'; + put '/* make empty table first - must clone & drop extra cols as autoload is bad */'; + put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; + put 'exec (create table &temp_table (like &baselib_schema.&base_dsn)) by myAlias;'; + put '%if &engine_type=REDSHIFT %then %do;'; + put 'exec (alter table &temp_table alter sortkey none) by myAlias;'; + put '%end;'; + put '%local dropcols;'; + put '%let dropcols=%mf_wordsinstr1butnotstr2('; + put 'str1=%upcase(%mf_getvarlist(&basecopy))'; + put ',str2=%upcase(&pk)'; + put ');'; + put '%if %length(&dropcols>0) %then %do idx_pk=1 %to %sysfunc(countw(&dropcols));'; + put '%put &=dropcols;'; + put '%let idx_val=%scan(&dropcols,&idx_pk);'; + put 'exec(alter table &temp_table drop column &idx_val;) by myAlias;'; + put '%end;'; + put 'exec (alter table &temp_table add column &md5_col varchar(32);) by myAlias;'; + put '/* create view to strip formats and avoid warns in log */'; + put 'data work.vw_bitemp0/view=work.vw_bitemp0;'; + put 'set work.bitemp0_append(keep=&pk &md5_col);'; + put 'format _all_;'; + put 'run;'; + put 'proc append base=&base_lib..&temp_table'; + put '%if &engine_type=REDSHIFT %then %do;'; + put '('; + put '%do idx_pk=1 %to &redcnt;'; + put '&&rednm&idx_pk = &&redval&idxpk'; + put '%end;'; + put ')'; + put '%end;'; + put 'data=work.vw_bitemp0 force nowarn;'; + put 'run;'; + put '/* open up a connection for pass through SQL */'; + put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; + put 'create table work.bitemp0_base as select * from connection to myAlias('; + put '%end;'; + put '%else %if &engine_type=CAS %then %do;'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then'; + put '%let base_table=&base_lib..&base_dsn'; + put '(where=(&tech_from <=&now and &now < &tech_to));'; + put '%else %let base_table=&base_lib..&base_dsn;'; + put '%let temp_table=CASUSER.%mf_getuniquename(prefix=DC);'; + put 'data &temp_table;'; + put 'set work.bitemp0_append;'; + put 'run;'; + put '%let bitemp0base=CASUSER.%mf_getuniquename(prefix=DC);'; + put 'proc fedsql sessref=dcsession;'; + put 'create table &bitemp0base{options replace=true} as'; + put '%end;'; + put '%else %do;'; + put '%let temp_table=work.bitemp0_append;'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then'; + put '%let base_table=&base_lib..&base_dsn'; + put '(where=(&tech_from <=&now and &now < &tech_to));'; + put '%else %let base_table=&base_lib..&base_dsn;'; + put 'proc sql;'; + put 'create table work.bitemp0_base as'; + put '%end;'; + put 'select a.&md5_col /* this identifies NEW records */'; + put ', b.*'; + put '/* assume first PK field cannot be null (if defined in a PK constraint then'; + put 'it definitely cannot be null) */'; + put ', case when b.%scan(&pk,1) IS NULL then 1 else 0 end as ___TMP___NEW_FLG'; + put 'from &baselib_schema.&temp_table a'; + put 'left join &base_table b'; + put 'on 1=1'; + put '%do idx_pk=1 %to &pk_cnt;'; + put '%let idx_val=%scan(&pk,&idx_pk);'; + put 'and a.&idx_val=b.&idx_val'; + put '%end;'; + put '%if &engine_type=OLEDB or &engine_type=REDSHIFT or &engine_type=POSTGRES'; + put '%then %do;'; + put '); proc sql; drop table &base_lib.."&temp_table"n;'; + put '%end;'; + put '%else %if &engine_type=CAS %then %do;'; + put ';'; + put 'quit;'; + put 'data work.bitemp0_base;'; + put 'set &bitemp0base;'; + put 'run;'; + put 'proc sql;'; + put 'drop table &temp_table;'; + put 'drop table &bitemp0base;'; + put '%end;'; + put '%else %do;'; + put ';'; + put '%end;'; + put '/**'; + put '* matching & changed records are those without NULL key values'; + put '* &idx_val resolves to rightmost PK value (loop above)'; + put '*/'; + put '%put syscc (line525)=&syscc, sqlrc=&sqlrc;'; + put '%mp_abort(iftrue= (&syscc gt 0 or &sqlrc>0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc sqlrc=&sqlrc)'; + put ')'; + put '%put hashcols2=&stripcols;'; + put 'proc sql;'; + put 'create table work.bitemp1_current(drop=___TMP___NEW_FLG) as'; + put 'select *'; + put ', put(md5(&stripcols),$hex32.) as &md5_col'; + put 'from work.bitemp0_base (drop=&md5_col)'; + put 'where ___TMP___NEW_FLG=0;'; + put '/**'; + put '* NEW records were identified in ___TMP___NEW_FLG in bitemp0_base'; + put '*/'; + put 'proc sql;'; + put 'create table &outds_add'; + put '(drop=&md5_col'; + put '%if %mf_existvar(work.bitemp0_base, &delete_col) %then %do;'; + put '&delete_col'; + put '%end;'; + put ')'; + put 'as select a.*'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then %do;'; + put ',&now as &tech_from &tech_from_fmt'; + put ',&high_date as &tech_to &tech_to_fmt'; + put '%end;'; + put 'from work.bitemp0_append a /* STAGING records (mix of existing & new) */'; + put ', work.bitemp0_base b /* BASE records (contains null values for new) */'; + put 'where a.&md5_col=b.&md5_col /* took staging md5 across in left join */'; + put 'and b.___TMP___NEW_FLG=1; /* NEW records also identified in bitemp0_base */'; + put '/**'; + put '* identify INSERTS. These are records with the same business key but'; + put '* the bus_from and bus_to value are higher / lower (respectively)'; + put '* such that the existing record needs to be SPLIT to surround the new'; + put '* record.'; + put '* eg: OLD RECORD from=1 to=10'; + put '* NEW RECORD from=5 to=7'; + put '*'; + put '* APPENDED RECORDS:'; + put '* - from=1 to=5'; + put '* - from=5 to=7'; + put '* - from=7 to=10'; + put '*/'; + put '/* inserts cannot happen with TXTEMPORAL */'; + put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL %then %do;'; + put '/* IDENTIFY */'; + put 'create table work.bitemp3_inserts as'; + put 'select b.*'; + put ',a.&bus_from as ___TMP___from'; + put ',a.&bus_to as ___TMP___to'; + put 'from work.bitemp0_append a'; + put ',work.bitemp1_current b'; + put 'where a.&bus_from > b.&bus_from'; + put 'and a.&bus_to < b.&bus_to'; + put '%do idx_pk=1 %to &pk_cnt;'; + put '%let idx_val=%scan(&pk,&idx_pk);'; + put 'and a.&idx_val=b.&idx_val'; + put '%end;'; + put 'order by'; + put '/* compress blanks and then insert commas (as the datetime fields may'; + put 'not be in use) */'; + put '%sysfunc(tranwrd(%sysfunc(compbl('; + put '&pk &bus_from &bus_to &processed'; + put ')),%str( ), %str(,)))'; + put ';'; + put '/* SPLIT */'; + put 'data work.bitemp3a_inserts (drop=___TMP___from ___TMP___retain ___TMP___to) ;'; + put 'set work.bitemp3_inserts;'; + put 'by &pk &bus_from &bus_to &processed;'; + put 'if first.&idx_val then do;'; + put '___TMP___retain=&bus_to;'; + put '&bus_to=___TMP___from;'; + put 'output;'; + put '&bus_to=___TMP___retain;'; + put 'end;'; + put 'if last.&idx_val then do;'; + put '&bus_from=___TMP___to;'; + put 'output;'; + put 'end;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '/* TX temporal load */'; + put 'data work.bitemp3a_inserts;'; + put 'set work.bitemp1_current;'; + put 'stop;'; + put 'run;'; + put '%end;'; + put '/* APPEND */'; + put 'proc sql;'; + put 'create view work.bitemp3a_view as'; + put 'select * from work.bitemp1_current'; + put 'where &md5_col not in (select &md5_col from work.bitemp3a_inserts);'; + put 'data bitemp3b_newbase;'; + put 'set work.bitemp3a_inserts work.bitemp3a_view;'; + put 'run;'; + put '/** do not use! this converts short numerics into 8 bytes'; + put 'proc sql;'; + put 'create table work.bitemp3b_newbase as'; + put 'select * from work.bitemp3a_inserts'; + put 'union corr'; + put 'select * from work.bitemp1_current'; + put 'where &md5_col not in (select &md5_col from work.bitemp3a_inserts);'; + put '*/'; + put '/**'; + put '* identify CHANGED records from staging.'; + put '* Same business key with different temporal dates or md5 value'; + put '* This table must be overlayed onto / into existing business history'; + put '*/'; + put 'proc sql;'; + put 'create table work.bitemp4_updated as select distinct a.*'; + put 'from work.bitemp0_append a'; + put ',work.bitemp3b_newbase b'; + put 'where 1=1'; + put '%do idx_pk=1 %to &pk_cnt;'; + put '%let idx_val=%scan(&pk,&idx_pk);'; + put 'and a.&idx_val=b.&idx_val'; + put '%end;'; + put 'and ( a.&md5_col ne b.&md5_col'; + put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL %then %do;'; + put 'OR (a.&bus_from ne b.&bus_from or a.&bus_to ne b.&bus_to)'; + put '%end;'; + put ')'; + put ';'; + put '/**'; + put '* This section would have been one simple step with union all'; + put '* but that converts short numerics into 8 bytes!'; + put '* so, convoluted alternative to retain the same functionality.'; + put '*/'; + put '/* base records */'; + put 'create view work.bitemp4_prep1 as'; + put 'select ''BASE'' as ___TMP___'; + put ',b.*'; + put 'from work.bitemp4_updated a'; + put ',work.bitemp3b_newbase b'; + put 'where 1'; + put '%do idx_pk=1 %to &pk_cnt;'; + put '%let idx_val=%scan(&pk,&idx_pk);'; + put 'and a.&idx_val=b.&idx_val'; + put '%end;'; + put ';'; + put '/* updated records */'; + put 'create view work.bitemp4_prep2 as'; + put 'select ''STAG'' as ___TMP___ ,*'; + put 'from work.bitemp4_updated;'; + put '/* ensure we only keep columns that appear in both */'; + put '%local bp1 bp2 bp3 bp4;'; + put '%let bp1=%mf_getvarlist(bitemp4_prep1);'; + put '%let bp2=%mf_getvarlist(bitemp4_prep2);'; + put '%let bp3=%mf_wordsInStr1ButNotStr2(Str1=&bp1,Str2=&bp2);'; + put '%let bp4=%mf_wordsInStr1ButNotStr2(Str1=&bp2,Str2=&bp1);'; + put 'data work.bitemp4_prep3/view=bitemp4_prep3;'; + put 'set bitemp4_prep1 bitemp4_prep2;'; + put '%if %length(XX&bp3&bp4)>2 %then %do;'; + put 'drop &bp3 &bp4 ;'; + put '%end;'; + put 'run;'; + put '/* remove duplicates */'; + put 'proc sql;'; + put 'create table work.bitemp4a_allrecs as'; + put 'select distinct *'; + put 'from work.bitemp4_prep3'; + put 'order by'; + put '/* compress blanks and then insert commas (as the datetime fields'; + put 'may not be in use) */'; + put '%sysfunc(tranwrd(%sysfunc(compbl('; + put '&pk &bus_from &bus_to &processed'; + put ')),%str( ), %str(,)))'; + put ';'; + put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL %then %do;'; + put '/* this section aligns the business dates'; + put '(eg for inserts or overlaps in the range) */'; + put 'data work.bitemp4b_firstpass (drop=___TMP___cond ___TMP___from ___TMP___to );'; + put 'set work.bitemp4a_allrecs;'; + put 'by &pk &bus_from &bus_to &processed;'; + put 'retain ___TMP___cond ''Name of Condition'';'; + put 'retain ___TMP___from ___TMP___to 0;'; + put '___TMP___md5lag=lag(&md5_col);'; + put '/* reset retained variables */'; + put 'if first.&idx_val then do;'; + put 'call missing (___TMP___cond, ___TMP___from, ___TMP___to,___TMP___md5lag);'; + put 'end;'; + put 'else do;'; + put '/* if record is identical, carry forward bus_from (and bus_to if higher)*/'; + put 'if &md5_col=___TMP___md5lag then do;'; + put '&bus_from=___TMP___from;'; + put 'if &bus_to<___TMP___to then &bus_to=___TMP___to;'; + put 'end;'; + put 'end;'; + put 'if ___TMP___=''STAG'' then do;'; + put '/* need to carry forward the closing record */'; + put '___TMP___cond=''Condition 1'';'; + put 'end;'; + put 'else if ___TMP___cond=''Condition 1'' then do;'; + put '/* else ensure bus_from starts from prior record bus_to */'; + put 'if &md5_col ne ___TMP___md5lag and &bus_from <= ___TMP___to'; + put 'then &bus_from= ___TMP___to;'; + put '/* new record may replace old record entirely */'; + put 'if &bus_to <= &bus_from then delete;'; + put 'else call missing (___TMP___cond, ___TMP___from, ___TMP___to);'; + put 'end;'; + put '___TMP___from=&bus_from;'; + put '___TMP___to=&bus_to;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '/* keep staged records only */'; + put 'data work.bitemp4b_firstpass;'; + put 'set work.bitemp4a_allrecs;'; + put 'if ___TMP___=''STAG'';'; + put 'run;'; + put '%end;'; + put '/* next phase is to pass through in reverse - so set up the sort statement */'; + put '%local byvar;'; + put '%do idx_pk=1 %to &pk_cnt;'; + put '%let byvar=&byvar descending %scan(&pk,&idx_pk);'; + put '%end;'; + put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL'; + put '%then %let byvar=&byvar descending &bus_from descending &bus_to;'; + put '/* if matching bus dates supplied, need to ensure we also have a sort'; + put 'between BASE and STAGING tables */'; + put '%let byvar=&byvar descending ___TMP___;'; + put 'proc sort data=work.bitemp4b_firstpass out=work.bitemp4c_sort ;'; + put 'by &byvar;'; + put 'run;'; + put '/**'; + put '* Now (in reverse) pass back business start dates'; + put '*/'; + put 'data work.bitemp4d_secondpass;'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then %do;'; + put '&tech_from=&now;'; + put '&tech_to=&high_date;'; + put '%end;'; + put 'set work.bitemp4c_sort ;'; + put 'by &byvar;'; + put 'retain ___TMP___cond ''Name of Condition'';'; + put 'retain ___TMP___from ___TMP___to 0;'; + put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL %then %do;'; + put '/* put / _all_ /;*/'; + put '___TMP___md5lag=lag(&md5_col);'; + put 'if first.&idx_val then do;'; + put '/* reset retained variables */'; + put 'call missing (___TMP___cond,___TMP___from,___TMP___to,___TMP___md5lag);'; + put 'end;'; + put 'else do;'; + put '/* if record is identical, carry back bus_to */'; + put 'if &md5_col=___TMP___md5lag then &bus_to=___TMP___to;'; + put 'end;'; + put 'if ___TMP___=''STAG'' then do;'; + put '/* need to carry forward the closing record */'; + put '___TMP___cond=''Condition 2'';'; + put 'end;'; + put 'else if ___TMP___cond=''Condition 2'' then do;'; + put '/* else ensure bus_to stops at subsequent record bus_from */'; + put 'if &md5_col ne ___TMP___md5lag and &bus_to >= ___TMP___from'; + put 'then &bus_to= ___TMP___from;'; + put '/* new record may replace old record entirely */'; + put 'if &bus_from >= &bus_to then delete;'; + put 'if &bus_from=___TMP___from and &bus_to=___TMP___to then delete;'; + put 'else call missing (___TMP___cond, ___TMP___from, ___TMP___to);'; + put 'end;'; + put '___TMP___from=&bus_from;'; + put '___TMP___to=&bus_to;'; + put '%end;'; + put 'run;'; + put '%put syscc (line600)=&syscc;'; + put '/**'; + put 'There may still be some records (eg old business history) which have not'; + put 'changed.'; + put 'Need to identify these and remove from the append so they are not updated'; + put 'unnecessarily. This is done by generating a new md5 (which INCLUDES the'; + put 'business key) and any matching / identical records are split out (from those'; + put 'that need to be updated).'; + put '*/'; + put '%if &loadtype=BITEMPORAL %then %do;'; + put '%let cat_string=catx(''|'' ,&bus_from,&bus_to);'; + put 'data bitemp5a_lkp (keep=&md5_col);'; + put 'set bitemp0_base;'; + put '/* for BITEMPORAL we need to compare business dates also */'; + put '&md5_col=put(md5(&cat_string!!''|''!!&stripcols),$hex32.);'; + put 'run;'; + put 'data bitemp5b_updates;'; + put 'set bitemp4d_secondpass;'; + put 'if _n_=1 then do;'; + put 'dcl hash md5_lkp(dataset:''bitemp5a_lkp'');'; + put 'md5_lkp.definekey("&md5_col");'; + put 'md5_lkp.definedone();'; + put 'end;'; + put '/* drop old md5 col as will rebuild with new business dates */'; + put '&md5_col=put(md5(&cat_string!!''|''!!&stripcols),$hex32.) ;'; + put 'if md5_lkp.check()=0 then delete;'; + put 'run;'; + put 'proc sql;'; + put '/* get min bus from as will update (close out) all records from this point'; + put '(for that PK)*/'; + put 'create table work.bitemp5d_subquery as'; + put 'select &pk_comma, min(&bus_from)as &bus_from, max(&bus_to) as &bus_to'; + put 'from work.bitemp5b_updates'; + put 'group by &pk_comma;'; + put '/* index has a huge efficiency impact on upcoming nested subquery */'; + put 'create index index1 on work.bitemp5d_subquery(&pk_comma,&bus_from, &bus_to);'; + put '%let lastds=work.bitemp5b_updates;'; + put '%end;'; + put '%else %if &loadtype=TXTEMPORAL or &loadtype=UPDATE %then %do;'; + put 'proc sql;'; + put 'create table work.bitemp5d_subquery as'; + put 'select distinct &pk_comma'; + put 'from bitemp4d_secondpass;'; + put '%let lastds=work.bitemp4d_secondpass;'; + put '%end;'; + put '%else %let lastds=work.bitemp4d_secondpass;'; + put '/* create single append table (an overlapped pre-sert may be classed as'; + put 'both an update AND a new record). Also create temp views that may be'; + put 'used for pre-load analysis. */'; + put 'data &outds_mod;'; + put 'set &lastds(drop=___TMP___: &md5_col);'; + put 'run;'; + put 'data bitemp6_allrecs / view=bitemp6_allrecs;'; + put 'set &outds_mod /* UPDATED records */'; + put '&outds_add /* NEW records */;'; + put 'run;'; + put 'proc sort data=work.bitemp6_allrecs'; + put 'out=work.bitemp6_unique'; + put 'noduprec'; + put 'dupout=work.xx_BADBADBAD;'; + put 'by _all_;'; + put 'run;'; + put '/* we have all our temp tables now so exit if this is all that is needed */'; + put '%if &LOADTARGET ne YES %then %return;'; + put '/* also exit if an err condition exists */'; + put '%put syscc=&syscc;'; + put '%if &syscc>0 %then %do;'; + put '%let msg=Bitemporal transform / job aborted due to SYSCC=&SYSCC status;'; + put '%mp_lockanytable(UNLOCK,lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE (&msg),'; + put 'ctl_ds=&dclib..mpe_lockanytable'; + put ')'; + put '%mp_abort(msg=&msg);'; + put '%end;'; + put '/* final check - abort if a lock has appeared on the target table */'; + put '%mp_lockfilecheck(libds=&base_lib..&base_dsn)'; + put '/**'; + put '* STAGING TABLES PREPARED, ERR CONDITION TESTED FOR.. NOW TO LOAD!!'; + put '*/'; + put '/**'; + put '* First, CLOSE OUT changed records (if not a REPLACE)'; + put '* Note that SAS does not support ANSI standard for UPDATE with a join condition.'; + put '* However - this can be worked around using a nested subquery..'; + put '*/'; + put 'data _null_;'; + put 'putlog "&sysmacroname: CLOSEOUTS commencing";'; + put 'run;'; + put '%if %mf_getattrn(&lastds,NLOBS)=0 %then %do;'; + put 'data _null_;'; + put 'putlog "&sysmacroname: No closeouts needed";'; + put 'run;'; + put '%end;'; + put '%else %if &engine_type=CAS %then %do;'; + put '%mp_abort(iftrue= (&loadtype=BITEMPORAL or &loadtype=TXTEMPORAL)'; + put ',mac=&sysmacroname in &_program'; + put ',msg=%str(&loadtype not yet supported in CAS engine)'; + put ')'; + put '/* create temp table for deletions */'; + put '%local delds;%let delds=%mf_getuniquename(prefix=DC);'; + put 'data casuser.&delds;'; + put 'set work.bitemp5d_subquery;'; + put 'run;'; + put '/* delete the records */'; + put 'proc cas ;'; + put 'table.deleteRows / table={'; + put 'caslib="&base_lib",'; + put 'name="&base_dsn",'; + put 'where="1=1",'; + put 'whereTable={caslib=''CASUSER'',name="&delds"}'; + put '};'; + put 'quit;'; + put '/* drop temp table */'; + put 'proc sql;'; + put 'drop table CASUSER.&delds;'; + put '%end;'; + put '%else %if (&loadtype=BITEMPORAL or &loadtype=TXTEMPORAL or &loadtype=UPDATE)'; + put '%then %do;'; + put 'data _null_;'; + put 'putlog "&sysmacroname: &loadtype operation using &engine_type engine";'; + put 'run;'; + put '%local flexinow;'; + put 'proc sql;'; + put '/* if OLEDB then create a temp table for efficiency */'; + put '%local innertable;'; + put '%if &engine_type=OLEDB %then %do;'; + put '%let innertable=[##BITEMP_&base_dsn];'; + put '%let top_table=[dbo].&base_dsn;'; + put '%let flexinow=&SQLNOW;'; + put 'create table &base_lib.."##BITEMP_&base_dsn"n as'; + put 'select * from work.bitemp5d_subquery;'; + put '/* open up a connection for pass through SQL */'; + put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; + put 'execute('; + put '%end;'; + put '%else %if &engine_type=REDSHIFT or &engine_type=POSTGRES %then %do;'; + put '%let innertable=%mf_getuniquename(prefix=XDCTEMP);'; + put '%let top_table=&baselib_schema.&base_dsn;'; + put '%let flexinow=timestamp &SQLNOW;'; + put '/* make empty table first - must clone & drop extra cols'; + put 'as autoload is bad */'; + put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; + put 'exec (create table &innertable (like &baselib_schema.&base_dsn)) by myAlias;'; + put '%if &engine_type=REDSHIFT %then %do;'; + put 'exec (alter table &innertable alter sortkey none) by myAlias;'; + put '%end;'; + put '%let dropcols=%mf_wordsinstr1butnotstr2('; + put 'str1=%upcase(%mf_getvarlist(&basecopy))'; + put ',str2=%upcase(%mf_getvarlist(work.bitemp5d_subquery))'; + put ');'; + put '%if %length(&dropcols>0) %then %do idx_pk=1 %to %sysfunc(countw(&dropcols));'; + put '%put &=dropcols;'; + put '%let idx_val=%scan(&dropcols,&idx_pk);'; + put 'exec(alter table &innertable drop column &idx_val;) by myAlias;;'; + put '%end;'; + put '/* create view to strip formats and avoid warns in log */'; + put 'data work.vw_bitemp5d/view=work.vw_bitemp5d;'; + put 'set work.bitemp5d_subquery;'; + put 'format _all_;'; + put 'run;'; + put 'proc append base=&base_lib..&innertable ('; + put '%do idx_pk=1 %to &redcnt;'; + put '&&rednm&idx_pk = &&redval&idxpk'; + put '%end;'; + put ')'; + put 'data=work.vw_bitemp5d force nowarn;'; + put 'run;'; + put '/* open up a connection for pass through SQL */'; + put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; + put 'execute('; + put '%end;'; + put '%else %do;'; + put '%let innertable=bitemp5d_subquery;'; + put '%let top_table=&base_lib..&base_dsn;'; + put '%let flexinow=&now;'; + put '%end;'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then %do;'; + put 'update &top_table set &tech_to=&flexinow'; + put '%if %length(&processed)>0 %then %do;'; + put ',&processed=&flexinow'; + put '%end;'; + put 'where &tech_from <= &flexinow and &flexinow < &tech_to and'; + put '%end;'; + put '%else %if &loadtype=UPDATE %then %do;'; + put '/* changed records are deleted then re-appended when doing UPDATEs */'; + put 'delete from &top_table where'; + put '%end;'; + put '%else %do;'; + put '%put %str(ERR)OR: BUSTEMPORAL NOT YET SUPPORTED;'; + put '%let syscc=5;'; + put '%mp_lockanytable(UNLOCK,lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE,'; + put 'ctl_ds=&dclib..mpe_lockanytable'; + put ')'; + put '%goto end_of_macro;'; + put '%end;'; + put '/* perform join inside query as per'; + put 'http://stackoverflow.com/questions/24629793/update-with-a-proc-sql */'; + put 'exists( select 1 from &baselib_schema.&innertable where'; + put '/* loop PK join */'; + put '%do idx_pk=1 %to &pk_cnt;'; + put '%let idx_val=%scan(&pk,&idx_pk);'; + put '&base_dsn..&idx_val=&innertable..&idx_val and'; + put '%end;'; + put '%if &loadtype=BITEMPORAL %then %do;'; + put '&base_dsn..&bus_from >= &innertable..&bus_from'; + put 'and &base_dsn..&bus_to <= &innertable..&bus_to and'; + put '%end;'; + put '/* close the statement */'; + put '1=1);'; + put '%if &engine_type=OLEDB or &engine_type=REDSHIFT or &engine_type=POSTGRES'; + put '%then %do;'; + put ') by myAlias;'; + put 'execute (drop table &baselib_schema.&innertable) by myAlias;'; + put '%end;'; + put '%end;'; + put 'quit;'; + put 'data _null_;'; + put 'putlog "&sysmacroname: Closeout complete";'; + put 'run;'; + put '/**'; + put '* Append the new / updated records'; + put '*/'; + put '%if &engine_type=CAS %then %do;'; + put '/* get varchar variables ready for casting */'; + put '%local vcfmt vcrename vcassign vcdrop;'; + put 'data _null_;'; + put 'set work.bitemp_cols(where=(type=6)) end=last;'; + put 'length vcrename vcassign vcdrop vcfmt $32767 rancol $32;'; + put 'retain vcrename vcassign vcdrop vcfmt;'; + put 'if _n_=1 then vcrename=''(rename=('';'; + put 'rancol=resolve(''%mf_getuniquename()'');'; + put 'vcfmt=trim(vcfmt)!!''length ''!!cats(name)!!'' varchar(*);'';'; + put 'vcrename=trim(vcrename)!!'' ''!!cats(name,''='',rancol);'; + put 'vcassign=cats(vcassign,name,''='',rancol,'';'');'; + put 'vcdrop=cats(vcdrop,''drop ''!!rancol,'';'');'; + put 'if last then do;'; + put 'vcrename=cats(vcrename,''))'');'; + put 'call symputx(''vcfmt'',vcfmt);'; + put 'call symputx(''vcrename'',vcrename);'; + put 'call symputx(''vcassign'',vcassign);'; + put 'call symputx(''vcdrop'',vcdrop);'; + put 'end;'; + put 'run;'; + put '/* prepare a temp cas table with varchars casted */'; + put '%let tmp=%mf_getuniquename();'; + put 'data casuser.&tmp ;'; + put '&vcfmt'; + put 'set work.bitemp6_unique &vcrename;'; + put '&vcassign'; + put '&vcdrop'; + put 'run;'; + put '/* load the table with varchars applied*/'; + put 'data &base_lib..&base_dsn (append=yes )/sessref=dcsession ;'; + put 'set casuser.&tmp;'; + put 'run;'; + put '/* drop temp table */'; + put 'proc sql;'; + put 'drop table CASUSER.&tmp;'; + put '/* this code will not work as regular tables do not have varchars */'; + put '/*'; + put 'proc casutil;'; + put 'load data=work.bitemp6_unique'; + put 'outcaslib="&base_lib" casout="&base_dsn" append ;'; + put 'quit;'; + put '*/'; + put '%end;'; + put '%else %if &engine_type=REDSHIFT or &engine_type=POSTGRES %then %do;'; + put 'proc append base=&base_lib..&base_dsn'; + put '%if &engine_type=REDSHIFT %then %do;'; + put '('; + put '%do idx_pk=1 %to &redcnt;'; + put '&&rednm&idx_pk = &&redval&idxpk'; + put '%end;'; + put ')'; + put '%end;'; + put 'data=bitemp6_unique force nowarn;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put 'proc append base=&base_lib..&base_dsn data=bitemp6_unique force nowarn; run;'; + put '%end;'; + put '%mp_lockanytable(UNLOCK,lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE,'; + put 'ctl_ds=&dclib..mpe_lockanytable'; + put ')'; + put '/* final check on syscc */'; + put '%mp_abort(iftrue= (&syscc >4)'; + put ',mac=&_program'; + put ',msg=%str(!!Upload NOT successful!! Failed on actual update / append stage..)'; + put ')'; + put '%if &outds_audit ne 0 and &LOADTARGET=YES %then %do;'; + put 'data work.vw_outds_orig /view=work.vw_outds_orig;'; + put 'set work.bitemp0_base (drop=&md5_col);'; + put 'where ___TMP___NEW_FLG=0;'; + put 'drop ___TMP___NEW_FLG;'; + put 'run;'; + put '/* update the AUDIT table */'; + put '%if %mf_existds(&outds_audit) %then %do;'; + put 'options mprint;'; + put '%mp_storediffs(&base_lib..&base_dsn'; + put ',work.vw_outds_orig'; + put ',&pk'; + put ',delds=&outds_del'; + put ',modds=&outds_mod'; + put ',appds=&outds_add'; + put ',outds=work.mp_storediffs'; + put ',processed_dttm=&now'; + put ',loadref=%superq(etlsource)'; + put ')'; + put 'data _null_;'; + put 'set work.mp_storediffs;'; + put 'putlog load_ref= libref= dsn= key_hash= tgtvar_nm=;'; + put 'run;'; + put 'proc append base=&outds_audit data=work.mp_storediffs;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc >4)'; + put ',mac=bitemporal_dataloader'; + put ',msg=%str(Problem in audit stage (&outds_audit))'; + put ')'; + put '%let user=%mf_getUser();'; + put '/**'; + put 'Notify as appropriate EMAILS DISABLED'; + put '%sumo_alerts(ALERT_EVENT=UPDATE'; + put ', ALERT_TARGET=&base_lib..&base_dsn'; + put ', from_user= &user);'; + put '*/'; + put '/* monitor BiTemporal usage */'; + put '%if &log=1 %then %do;'; + put '%put syscc=&syscc;'; + put '/* do not perform duration calc in pass through */'; + put '%local dur;'; + put 'data _null_;'; + put 'now=symget(''now'');'; + put 'dur=%sysfunc(datetime())-&now;'; + put 'call symputx(''dur'',dur,''l'');'; + put 'run;'; + put 'proc sql;'; + put 'insert into &dclib..mpe_dataloads'; + put 'set libref=%upcase("&base_lib")'; + put ',DSN=%upcase("&base_dsn")'; + put ',ETLSOURCE="&ETLSOURCE"'; + put ',LOADTYPE="&loadtype"'; + put ',CHANGED_RECORDS=%mf_getattrn(&lastds,NLOBS)'; + put ',NEW_RECORDS=%mf_getattrn(&outds_add,NLOBS)'; + put ',DELETED_RECORDS=%mf_getattrn(&outds_del,NLOBS)'; + put ',DURATION=&dur'; + put ',MAC_VER="v&ver"'; + put ',user_nm="&user"'; + put ',PROCESSED_DTTM=&now;'; + put 'quit;'; + put '%put syscc=&syscc;'; + put '%end;'; + put '%end_of_macro:'; + put '%mend bitemporal_dataloader;'; + put '%macro mm_getlibs('; + put 'outds=work.mm_getLibs'; + put ')/*/STORE SOURCE*/;'; + put '/*'; + put 'flags:'; + put 'OMI_SUCCINCT (2048) Do not return attributes with null values.'; + put 'OMI_GET_METADATA (256) Executes a GetMetadata call for each object that'; + put 'is returned by the GetMetadataObjects method.'; + put 'OMI_ALL_SIMPLE (8) Gets all of the attributes of the requested object.'; + put '*/'; + put 'data _null_;'; + put 'flags=2048+256+8;'; + put 'call symputx(''flags'',flags,''l'');'; + put 'run;'; + put '* use a temporary fileref to hold the response;'; + put 'filename response temp;'; + put '/* get list of libraries */'; + put 'proc metadata in='; + put ''''; + put '$METAREPOSITORY'; + put 'SASLibrary'; + put ''; + put 'SAS'; + put '&flags'; + put ''; + put ''''; + put 'out=response;'; + put 'run;'; + put '/* write the response to the log for debugging */'; + put 'data _null_;'; + put 'infile response lrecl=32767;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '/* create an XML map to read the response */'; + put 'filename sxlemap temp;'; + put 'data _null_;'; + put 'file sxlemap;'; + put 'put '''';'; + put 'put '''';'; + put 'put ''//Objects/SASLibrary'';'; + put 'put ''>17'';'; + put 'put ''//Objects/SASLibrary/@Id'';'; + put 'put ''256>'';'; + put 'put ''//Objects/SASLibrary/@Name'';'; + put 'put ''8'';'; + put 'put ''//Objects/SASLibrary/@Libref'';'; + put 'put ''>12'';'; + put 'put ''//Objects/SASLibrary/@Engine'';'; + put 'put ''
'';'; + put 'run;'; + put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; + put '/* sort the response by library name */'; + put 'proc sort data=_XML_.saslibrary out=&outds;'; + put 'by libraryname;'; + put 'run;'; + put '/* clear references */'; + put 'filename sxlemap clear;'; + put 'filename response clear;'; + put 'libname _XML_ clear;'; + put '%mend mm_getlibs;'; + put '%macro dc_getlibs(outds=mm_getlibs);'; + put '/* take current repository */'; + put '%local repo repocnt x;'; + put '%let repo=%sysfunc(getoption(metarepository));'; + put '/* get list of repositories and filter */'; + put '%mm_getrepos(outds=repos)'; + put '%let repocnt=0;'; + put 'data repos;'; + put 'set repos;'; + put 'where repositorytype in(''CUSTOM'',''FOUNDATION'')'; + put '& upcase(name) ne "%upcase(&repo)";'; + put 'keep id name ;'; + put 'call symputx(''repo''!!cats(_n_),name,''l'');'; + put 'call symputx(''repocnt'',_n_,''l'');'; + put 'run;'; + put '%put _local_;'; + put '%mm_getlibs(outds=&outds)'; + put '%do x=1 %to &repocnt;'; + put 'options metarepository=&&repo&x;'; + put '%mm_getlibs(outds=&outds.a)'; + put 'proc append base=&outds data=&outds.a;'; + put 'run;'; + put '%end;'; + put 'options metarepository=&repo;'; + put '%mend dc_getlibs;'; + put '%macro mpe_refreshlibs();'; + put '%dc_getlibs(outds=work.mm_getLibs)'; + put 'proc sort data=mm_getlibs;'; + put 'by libraryref libraryname;'; + put 'run;'; + put 'data libs0;'; + put 'set mm_getlibs;'; + put 'by libraryref;'; + put 'if "%mf_getplatform()"="SASMETA" then do;'; + put '/* note - invalid libraries can result in exception errors. If this happens,'; + put 'configure the dc_viewlib_check variable to NO in Data Controller Settings */'; + put 'rc=libname(libraryref,,''meta'',cats(''library="'',libraryname,''";''));'; + put 'drop rc;'; + put 'if rc ne 0 then do;'; + put 'putlog "NOTE: Library " libraryname " does not exist!!";'; + put 'putlog (_all_) (=);'; + put 'delete;'; + put 'end;'; + put 'end;'; + put 'if not first.libraryref then delete;'; + put 'run;'; + put 'proc sql;'; + put 'create table libs1 as'; + put 'select distinct libname'; + put ',engine'; + put ',path'; + put ',level'; + put ',sysname'; + put ',sysvalue'; + put 'from dictionary.libnames'; + put 'order by libname, level,engine,path;'; + put 'data libs2;'; + put 'set libs1;'; + put 'length tran $1024;'; + put 'if missing(sysname) then sysname=''Missing'';'; + put 'select(sysname);'; + put 'when(''Access Permission'') tran=''Permissions'';'; + put 'when(''Owner Name'') tran=''Owner'';'; + put 'when(''Schema/Owner'') tran=''schema'';'; + put 'otherwise tran=sysname;'; + put 'end;'; + put 'run;'; + put 'proc transpose data=libs2 out=libs3;'; + put 'by libname level engine path;'; + put 'var sysvalue;'; + put 'id tran;'; + put 'run;'; + put 'data libs4(rename=(libname=libref));'; + put 'length paths $8192 perms owners schemas $500 permissions owner schema $1024;'; + put 'if _n_=1 then call missing (of _all_);'; + put 'set libs3;'; + put 'by libname;'; + put 'if engine=''V9'' then engine=''BASE'';'; + put 'if first.libname then do;'; + put 'retain paths perms owners schemas;'; + put 'paths=''(''!!quote(trim(path));'; + put 'perms=permissions;'; + put 'owners=owner;'; + put 'schemas=schema;'; + put 'end;'; + put 'else do;'; + put 'paths=trim(paths)!!'' ''!!quote(trim(path));'; + put 'perms=trim(perms)!!'',''!!trim(permissions);'; + put 'owners=trim(owners)!!'',''!!trim(owner);'; + put 'schemas=trim(schemas)!!'' ''!!trim(schema);'; + put 'end;'; + put 'if last.libname then do;'; + put 'paths=trim(paths)!!'')'';'; + put 'schemas=cats(schemas);'; + put 'output;'; + put 'end;'; + put 'keep libname engine paths perms owners schemas;'; + put 'run;'; + put 'proc sql;'; + put 'create table libs5 as'; + put 'select a.libref'; + put ',coalescec(b.engine,a.engine) as engine length=32'; + put ',b.libraryname as libname'; + put ',a.paths'; + put ',a.perms'; + put ',a.owners'; + put ',a.schemas'; + put ',b.libraryid as libid'; + put 'from libs4 a'; + put 'left join libs0 b'; + put 'on upcase(a.libref)=upcase(b.libraryref)'; + put 'where libref not in (''SASWORK'',''WORK'',''SASUSER'',''CASUSER'',''TEMP'',''STPSAMP'''; + put ',''MAPSGFK'');'; + put '%bitemporal_dataloader(base_lib=&dc_libref'; + put ',base_dsn=MPE_DATACATALOG_LIBS'; + put ',append_dsn=libs5'; + put ',PK=LIBREF'; + put ',etlsource=&_program'; + put ',loadtype=TXTEMPORAL'; + put ',tech_from=TX_FROM'; + put ',tech_to=TX_TO'; + put ',dclib=&dc_libref'; + put ')'; + put '%mend mpe_refreshlibs;'; + put '/** @cond */'; + put '%macro mf_existfeature(feature'; + put ')/*/STORE SOURCE*/;'; + put '%let feature=%upcase(&feature);'; + put '%local platform;'; + put '%let platform=%mf_getplatform();'; + put '%if &feature= %then %do;'; + put '%put No feature was requested for detection;'; + put '%end;'; + put '%else %if &feature=COLCONSTRAINTS %then %do;'; + put '%if "%substr(&sysver,1,1)"="4" or "%substr(&sysver,1,1)"="5" %then 0;'; + put '%else 1;'; + put '%end;'; + put '%else %if &feature=PROCLUA %then %do;'; + put '/* https://blogs.sas.com/content/sasdummy/2015/08/03/using-lua-within-your-sas-programs */'; + put '%if &platform=SASVIYA %then 1;'; + put '%else %if "&sysver"="9.2" or "&sysver"="9.3" %then 0;'; + put '%else %if "&SYSVLONG" < "9.04.01M3" %then 0;'; + put '%else 1;'; + put '%end;'; + put '%else %if &feature=DBMS_MEMTYPE %then %do;'; + put '/* does dbms_memtype exist in dictionary.tables? */'; + put '%if "%substr(&sysver,1,1)"="4" or "%substr(&sysver,1,1)"="5" %then 0;'; + put '%else 1;'; + put '%end;'; + put '%else %if &feature=EXPORTXLS %then %do;'; + put '/* is it possible to PROC EXPORT an excel file? */'; + put '%if "%substr(&sysver,1,1)"="4" or "%substr(&sysver,1,1)"="5" %then 1;'; + put '%else %if %sysfunc(sysprod(SAS/ACCESS Interface to PC Files)) = 1 %then 1;'; + put '%else 0;'; + put '%end;'; + put '%else %do;'; + put '-1'; + put '%put &sysmacroname: &feature not found;'; + put '%end;'; + put '%mend mf_existfeature;'; + put '/** @endcond */'; + put '%macro mp_getconstraints(lib=WORK'; + put ',ds='; + put ',outds=mp_getconstraints'; + put ',mdebug=0'; + put ')/*/STORE SOURCE*/;'; + put '%let lib=%upcase(&lib);'; + put '%let ds=%upcase(&ds);'; + put '/**'; + put '* Cater for environments where sashelp.vcncolu is not available'; + put '*/'; + put '%if %sysfunc(exist(sashelp.vcncolu,view))=0 %then %do;'; + put 'proc sql;'; + put 'create table &outds('; + put 'libref char(8)'; + put ',TABLE_NAME char(32)'; + put ',constraint_type char(8) label=''Constraint Type'''; + put ',constraint_name char(32) label=''Constraint Name'''; + put ',column_name char(32) label=''Column'''; + put ',constraint_order num'; + put ');'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Neither dictionary tables nor sashelp provides a constraint order column,'; + put '* however they DO arrive in the correct order. So, create the col.'; + put '**/'; + put '%local vw;'; + put '%let vw=%mf_getuniquename(prefix=mp_getconstraints_vw_);'; + put 'data &vw /view=&vw;'; + put 'set sashelp.vcncolu;'; + put 'where table_catalog="&lib";'; + put '/* use retain approach to reset the constraint order with each constraint */'; + put 'length tmp $1000;'; + put 'retain tmp;'; + put 'drop tmp;'; + put 'if tmp ne catx(''|'',table_catalog,table_name,constraint_name) then do;'; + put 'constraint_order=1;'; + put 'end;'; + put 'else constraint_order+1;'; + put 'tmp=catx(''|'',table_catalog, table_name,constraint_name);'; + put 'run;'; + put '/* must use SQL as proc datasets does not support length changes */'; + put 'proc sql noprint;'; + put 'create table &outds as'; + put 'select upcase(a.TABLE_CATALOG) as libref'; + put ',upcase(a.TABLE_NAME) as TABLE_NAME'; + put ',a.constraint_type'; + put ',a.constraint_name'; + put ',b.column_name'; + put ',b.constraint_order'; + put 'from dictionary.TABLE_CONSTRAINTS a'; + put 'left join &vw b'; + put 'on upcase(a.TABLE_CATALOG)=upcase(b.TABLE_CATALOG)'; + put 'and upcase(a.TABLE_NAME)=upcase(b.TABLE_NAME)'; + put 'and a.constraint_name=b.constraint_name'; + put '/**'; + put '* We cannot apply this clause to the underlying dictionary table. See:'; + put '* https://communities.sas.com/t5/SAS-Programming/Unexpected-Where-Clause-behaviour-in-dictionary-TABLE/m-p/771554#M244867'; + put '* cannot use`where calculated libref="&lib"` either as it will STILL execute'; + put '* all the underlying constraint queries, causing exception errors in some'; + put '* cases: https://github.com/sasjs/core/issues/283'; + put '*/'; + put 'where a.TABLE_CATALOG="&lib"'; + put '%if "&ds" ne "" %then %do;'; + put 'and upcase(a.TABLE_NAME)="&ds"'; + put 'and upcase(b.TABLE_NAME)="&ds"'; + put '%end;'; + put 'order by libref, table_name, constraint_name, constraint_order'; + put ';'; + put '/* tidy up */'; + put '%mp_dropmembers('; + put '&vw,'; + put 'iftrue=(&mdebug=0)'; + put ')'; + put '%mend mp_getconstraints;'; + put '%macro mpe_refreshtables(lib,ds=#all);'; + put '%let lib=%upcase(&lib);'; + put '%let ds=%upcase(&ds);'; + put '%local engine; %let engine=%mf_getengine(&lib);'; + put '%local schema; %let schema=%mf_getschema(&lib);'; + put '%put running &sysmacroname &lib(&engine &schema) for &ds;'; + put 'proc sql;'; + put 'create table cols as'; + put 'select libname as libref'; + put ',upcase(memname) as dsn'; + put ',memtype'; + put ',upcase(name) as name'; + put ',type'; + put ',length'; + put ',varnum'; + put ',label'; + put ',format'; + put ',idxusage'; + put ',notnull'; + put 'from dictionary.columns'; + put 'where upcase(libname)="&lib"'; + put '%if &ds ne #ALL %then %do;'; + put 'and upcase(memname)="&ds"'; + put '%end;'; + put ';'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc afer &lib cols extraction)'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc afer &lib indexes extraction)'; + put ')'; + put '%if &engine=SQLSVR %then %do;'; + put 'proc sql;'; + put 'connect using &lib;'; + put 'create table work.indexes as'; + put 'select * from connection to &lib('; + put 'select'; + put 's.name as SchemaName,'; + put 't.name as memname,'; + put 'tc.name as name,'; + put 'ic.key_ordinal as KeyOrderNr'; + put 'from'; + put 'sys.schemas s'; + put 'inner join sys.tables t on s.schema_id=t.schema_id'; + put 'inner join sys.indexes i on t.object_id=i.object_id'; + put 'inner join sys.index_columns ic on i.object_id=ic.object_id'; + put 'and i.index_id=ic.index_id'; + put 'inner join sys.columns tc on ic.object_id=tc.object_id'; + put 'and ic.column_id=tc.column_id'; + put 'where i.is_primary_key=1'; + put 'and s.name=%str(%'')&schema%str(%'')'; + put 'order by t.name, ic.key_ordinal ;'; + put ');disconnect from &lib;'; + put 'create table finalcols as'; + put 'select a.*'; + put ',case when b.name is not null then 1 else 0 end as pk_ind'; + put 'from work.cols a'; + put 'left join work.indexes b'; + put 'on a.dsn=b.memname'; + put 'and upcase(a.name)=upcase(b.name)'; + put 'order by libref,dsn;'; + put '%end;'; + put '%else %do;'; + put '%local dsn;'; + put '%if &ds = #ALL %then %let dsn=;'; + put '%mp_getconstraints(lib=&lib.,ds=&dsn,outds=work.constraints)'; + put '/* extract cols that are clearly primary keys */'; + put 'proc sql;'; + put 'create table work.pk4sure as'; + put 'select libref'; + put ',table_name'; + put ',constraint_name'; + put ',constraint_order'; + put ',column_name as name'; + put 'from work.constraints'; + put 'where constraint_type=''PRIMARY'''; + put 'order by 1,2,3,4;'; + put '/* extract unique constraints where every col is also NOT NULL */'; + put 'proc sql;'; + put 'create table work.sum as'; + put 'select a.libref'; + put ',a.table_name'; + put ',a.constraint_name'; + put ',count(a.column_name) as unq_cnt'; + put ',count(b.column_name) as nul_cnt'; + put 'from work.constraints(where=(constraint_type =''UNIQUE'')) a'; + put 'left join work.constraints(where=(constraint_type =''NOT NULL'')) b'; + put 'on a.libref=b.libref'; + put 'and a.table_name=b.table_name'; + put 'and a.column_name=b.column_name'; + put 'group by 1,2,3'; + put 'having unq_cnt=nul_cnt;'; + put '/* extract cols from the relevant unique constraints */'; + put 'create table work.pkdefault as'; + put 'select a.libref'; + put ',a.table_name'; + put ',a.constraint_name'; + put ',b.constraint_order'; + put ',b.column_name as name'; + put 'from work.sum a'; + put 'left join work.constraints(where=(constraint_type =''UNIQUE'')) b'; + put 'on a.libref=b.libref'; + put 'and a.table_name=b.table_name'; + put 'and a.constraint_name=b.constraint_name'; + put 'order by 1,2,3,4;'; + put '/* extract cols from the relevant unique INDEXES */'; + put 'create table work.pkfromindex as'; + put 'select libname as libref'; + put ',memname as table_name'; + put ',indxname as constraint_name'; + put ',indxpos as constraint_order'; + put ',name'; + put 'from dictionary.indexes'; + put 'where nomiss=''yes'' and unique=''yes'' and upcase(libname)="&lib"'; + put '%if &ds ne #ALL %then %do;'; + put 'and upcase(memname)="&ds"'; + put '%end;'; + put 'order by 1,2,3,4;'; + put '/* create one table */'; + put 'data work.finalpks;'; + put 'set pkdefault pk4sure pkfromindex;'; + put 'pk_ind=1;'; + put '/* if there are multiple unique constraints, take the first */'; + put 'by libref table_name constraint_name;'; + put 'retain keepme;'; + put 'if first.table_name then keepme=1;'; + put 'if first.constraint_name and not first.table_name then keepme=0;'; + put 'if keepme=1;'; + put 'run;'; + put '/* join back to starting table */'; + put 'proc sql;'; + put 'create table finalcols as'; + put 'select a.*'; + put ',b.constraint_order'; + put ',case when b.pk_ind=1 then 1 else 0 end as pk_ind'; + put 'from work.cols a'; + put 'left join work.finalpks b'; + put 'on a.libref=b.libref'; + put 'and a.dsn=b.table_name'; + put 'and upcase(a.name)=upcase(b.name)'; + put 'order by libref,dsn,constraint_order;'; + put '%end;'; + put '/* load columns */'; + put '%bitemporal_dataloader(base_lib=&mpelib'; + put ',base_dsn=mpe_datacatalog_vars'; + put ',append_dsn=finalcols'; + put ',PK=LIBREF DSN NAME'; + put ',etlsource=&sysmacroname'; + put ',loadtype=TXTEMPORAL'; + put ',tech_from=TX_FROM'; + put ',tech_to=TX_TO'; + put '%if &ds ne #ALL %then %do;'; + put ',close_vars=LIBREF DSN'; + put '%end;'; + put ',dclib=&mpelib'; + put ')'; + put '/* prepare tables */'; + put 'proc sql;'; + put 'create table work.tabs as select'; + put 'libname as libref'; + put ',upcase(memname) as dsn'; + put ',memtype'; + put '%if %mf_existfeature(DBMS_MEMTYPE)=1 %then %do;'; + put ',dbms_memtype'; + put '%end;'; + put '%else %do;'; + put ',''n/a'' as dbms_memtype format=$32.'; + put '%end;'; + put ',typemem'; + put ',memlabel'; + put ',nvar'; + put ',compress'; + put 'from dictionary.tables'; + put 'where upcase(libname)="&lib"'; + put '%if &ds ne #ALL %then %do;'; + put 'and upcase(memname)="&ds"'; + put '%end;'; + put ';'; + put 'data tabs2;'; + put 'set finalcols;'; + put 'length pk_fields $512;'; + put 'retain pk_fields;'; + put 'by libref dsn;'; + put 'if first.dsn then pk_fields='''';'; + put 'if pk_ind=1 then pk_fields=catx('' '',pk_fields,name);'; + put 'if last.dsn then output;'; + put 'run;'; + put 'proc sql;'; + put 'create table work.finaltabs as'; + put 'select a.libref'; + put ',a.dsn'; + put ',a.memtype'; + put ',a.dbms_memtype'; + put ',a.typemem'; + put ',a.memlabel'; + put ',a.nvar'; + put ',a.compress'; + put ',b.pk_fields'; + put 'from work.tabs a'; + put 'left join work.tabs2 b'; + put 'on a.libref=b.libref'; + put 'and a.dsn=b.dsn;'; + put '%bitemporal_dataloader(base_lib=&mpelib'; + put ',base_dsn=mpe_datacatalog_tabs'; + put ',append_dsn=finaltabs'; + put ',PK=LIBREF DSN'; + put ',etlsource=&sysmacroname'; + put ',loadtype=TXTEMPORAL'; + put ',tech_from=TX_FROM'; + put ',tech_to=TX_TO'; + put ',dclib=&mpelib'; + put '%if &ds ne #ALL %then %do;'; + put ',close_vars=LIBREF'; + put '%end;'; + put ')'; + put '/* prepare table frequently changing attributes */'; + put 'proc sql;'; + put '%if &engine=SQLSVR %then %do;'; + put 'connect using &lib;'; + put 'create table work.attrs as select * from connection to &lib('; + put 'SELECT SCHEMA_NAME(schema_id) as ''schema'', name, create_date, modify_date'; + put 'FROM sys.tables ;'; + put ');'; + put 'create table work.nobs as select * from connection to &lib('; + put 'SELECT SCHEMA_NAME(A.schema_id) AS ''schema'''; + put ',A.Name, AVG(B.rows) AS ''RowCount'''; + put 'FROM sys.objects A'; + put 'INNER JOIN sys.partitions B ON A.object_id = B.object_id'; + put 'WHERE A.type = ''U'''; + put 'GROUP BY A.schema_id, A.Name'; + put ');'; + put 'disconnect from &lib;'; + put 'create table statustabs as select'; + put 'a.libref'; + put ',a.dsn'; + put ',b.create_date as crdate'; + put ',b.modify_date as modate'; + put ',. as filesize'; + put ',c.RowCount as nobs'; + put 'from work.tabs a'; + put 'left join work.attrs(where=(schema="&schema")) b'; + put 'on upcase(a.dsn)=upcase(b.name)'; + put 'left join work.nobs(where=(schema="&schema")) c'; + put 'on upcase(a.dsn)=upcase(c.name);'; + put '%end;'; + put '%else %do;'; + put 'create table statustabs as select'; + put 'libname as libref'; + put ',upcase(memname) as dsn'; + put ',crdate'; + put ',modate'; + put ',filesize'; + put ',nobs'; + put 'from dictionary.tables'; + put 'where upcase(libname)="&lib"'; + put '%if &ds ne #ALL %then %do;'; + put 'and upcase(memname)="&ds"'; + put '%end;'; + put ';'; + put '%end;'; + put '%bitemporal_dataloader(base_lib=&mpelib'; + put ',base_dsn=mpe_datastatus_tabs'; + put ',append_dsn=statustabs'; + put ',PK=LIBREF DSN'; + put ',etlsource=&sysmacroname'; + put ',loadtype=TXTEMPORAL'; + put ',tech_from=TX_FROM'; + put ',tech_to=TX_TO'; + put ',dclib=&mpelib'; + put '%if &ds ne #ALL %then %do;'; + put ',close_vars=LIBREF'; + put '%end;'; + put ')'; + put '%if &ds = #ALL %then %do;'; + put 'proc sql;'; + put 'create table statuslibs as select'; + put 'libref'; + put ',sum(filesize) as libsize'; + put ',count(*) as table_cnt'; + put 'from statustabs'; + put 'group by 1;'; + put '%bitemporal_dataloader(base_lib=&mpelib'; + put ',base_dsn=mpe_datastatus_libs'; + put ',append_dsn=statuslibs'; + put ',PK=LIBREF'; + put ',etlsource=&sysmacroname'; + put ',loadtype=TXTEMPORAL'; + put ',tech_from=TX_FROM'; + put ',tech_to=TX_TO'; + put ',dclib=&mpelib'; + put ')'; + put '%end;'; + put '%mend mpe_refreshtables;'; + put '%macro dc_refreshcatalog(libref);'; + put '/* take current repository */'; + put '%local repo repocnt xx;'; + put '%let repo=%sysfunc(getoption(metarepository));'; + put '/* get list of repositories and filter */'; + put '%mm_getrepos(outds=repos)'; + put '%let repocnt=0;'; + put 'data repos;'; + put 'set repos;'; + put 'put (_all_)(=);'; + put 'where repositorytype in(''CUSTOM'',''FOUNDATION'');'; + put 'keep id name ;'; + put 'call symputx(cats(''repo'',_n_),name,''l'');'; + put 'call symputx(''repocnt'',_n_,''l'');'; + put 'run;'; + put '%put &sysmacroname #&libref#;'; + put '%if #&libref# ne ## %then %do;'; + put '%put &sysmacroname: assigning specific libref, &libref;'; + put '%dc_assignlib(WRITE,&libref) /* write just in order to assign direct lib */'; + put '%mpe_refreshlibs()'; + put '%mpe_refreshtables(&libref)'; + put '%end;'; + put '%else %do xx=1 %to &repocnt;'; + put 'options metarepository=&&repo&xx;'; + put '%mpe_refreshlibs()'; + put '/* get libs to be ignored */'; + put '%local ignorelist;'; + put 'proc sql noprint;'; + put 'select var_value into: ignorelist'; + put 'from &mpelib..MPE_CONFIG'; + put 'where var_scope=''DC_CATALOG'''; + put 'and var_name="DC_IGNORELIBS"'; + put 'and &dc_dttmtfmt. < TX_TO'; + put 'and var_active=1;'; + put '/* get all libs */'; + put '%let libcnt=0;'; + put 'data libraries;'; + put 'set &mpelib..mpe_datacatalog_libs;'; + put 'where &dc_dttmtfmt. le TX_TO;'; + put 'if index("&ignorelist",''|''!!upcase(trim(libref))!!''|'')=0;'; + put 'i+1;'; + put 'call symputx(cats(''lib'',i),libref);'; + put 'call symputx(''libcnt'',i);'; + put 'run;'; + put '%local i;'; + put '%do i=1 %to &libcnt;'; + put '%dc_assignlib(WRITE,&&lib&i)'; + put '%mpe_refreshtables(&&lib&i)'; + put '%end;'; + put '%end;'; + put 'options metarepository=&repo;'; + put '%mend dc_refreshcatalog;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file refreshcatalog.sas'; + put '@brief Refreshes the library data catalog'; + put '@details A library may be passed in a LIBREF url param.'; + put '

SAS Macros

'; + put '@li mpeinit.sas'; + put '@li dc_refreshcatalog.sas'; + put '@version 9.3'; + put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; + put 'downloaded from here: https://4gl.uk/dcdeploy'; + put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; + put 'and may not be re-distributed or re-sold without the express permission of'; + put '4GL Apps Ltd.'; + put '**/'; + put '%global libref;'; + put '%mpeinit()'; + put '%dc_refreshcatalog(&libref)'; + put 'data _null_;'; + put 'file _webout;'; + put 'put ''

Catalog Refresh Complete

'';'; + put 'run;'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=refreshlibs; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Files

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as FMTCAT,'; + put 'FMTNAME'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'LENGTH num'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.length as MAXW'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put ')))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] workobs= (0) When set to a positive integer, will create a new'; + put 'output object (WORK) which contains this number of observations from all'; + put 'tables in the WORK library.'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX,workobs=0'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&workobs) > 0 %then %do;'; + put '/* if debug mode, send back first XX records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10'; + put ',maxobs=&workobs'; + put ')'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '%macro mm_assignlib('; + put 'libref'; + put ',mAbort=HARD'; + put ')/*/STORE SOURCE*/;'; + put '%local mp_abort msg;'; + put '%let mp_abort=0;'; + put '%if %sysfunc(libref(&libref)) %then %do;'; + put 'data _null_;'; + put 'length liburi LibName msg $200;'; + put 'call missing(of _all_);'; + put 'nobj=metadata_getnobj("omsobj:SASLibrary?@Libref=''&libref''",1,liburi);'; + put 'if nobj=1 then do;'; + put 'rc=metadata_getattr(liburi,"Name",LibName);'; + put '/* now try and assign it */'; + put 'if libname("&libref",,''meta'',cats(''liburi="'',liburi,''";'')) ne 0 then do;'; + put 'putlog "&libref could not be assigned";'; + put 'putlog liburi=;'; + put '/**'; + put '* Fetch the system message for display in the abort modal. This is'; + put '* not always helpful though. One example, previously received:'; + put '* NOTE: Libref XX refers to the same library metadata as libref XX.'; + put '*/'; + put 'msg=sysmsg();'; + put 'if msg=:''ERROR: Libref SAVE is not assigned.'' then do;'; + put 'msg=catx(" ",'; + put '"Could not assign %upcase(&libref).",'; + put '"Please check metadata permissions! Libname:",libname,'; + put '"Liburi:",liburi'; + put ');'; + put 'end;'; + put 'else if msg="ERROR: User does not have appropriate authorization "!!'; + put '"level for library SAVE."'; + put 'then do;'; + put 'msg=catx(" ",'; + put '"ERROR: User does not have appropriate authorization level",'; + put '"for library %upcase(&libref), libname:",libname,'; + put '"Liburi:",liburi'; + put ');'; + put 'end;'; + put 'call symputx(''msg'',msg,''l'');'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1,''l'');'; + put 'end;'; + put 'else do;'; + put 'put (_all_)(=);'; + put 'call symputx(''libname'',libname,''L'');'; + put 'call symputx(''liburi'',liburi,''L'');'; + put 'end;'; + put 'end;'; + put 'else if nobj>1 then do;'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; + put 'call symputx(''msg'',"More than one library with libref=&libref");'; + put 'end;'; + put 'else do;'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; + put 'call symputx(''msg'',"Library &libref not found in metadata");'; + put 'end;'; + put 'run;'; + put '%put NOTE: &msg;'; + put '%end;'; + put '%else %do;'; + put '%put NOTE: Library &libref is already assigned;'; + put '%end;'; + put '%mp_abort(iftrue= (&mp_abort=1)'; + put ',mac=mm_assignlib.sas'; + put ',msg=%superq(msg)'; + put ')'; + put '%mend mm_assignlib;'; + put '/** @cond */'; + put '%macro mf_getengine(libref'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid engnum rc engine;'; + put '/* in case the parameter is a libref.tablename, pull off just the libref */'; + put '%let libref = %upcase(%scan(&libref, 1, %str(.)));'; + put '%let dsid=%sysfunc('; + put 'open(sashelp.vlibnam(where=(libname="%upcase(&libref)")),i)'; + put ');'; + put '%if (&dsid ^= 0) %then %do;'; + put '%let engnum=%sysfunc(varnum(&dsid,ENGINE));'; + put '%let rc=%sysfunc(fetch(&dsid));'; + put '%let engine=%sysfunc(getvarc(&dsid,&engnum));'; + put '%put &libref. ENGINE is &engine.;'; + put '%let rc= %sysfunc(close(&dsid));'; + put '%end;'; + put '%upcase(&engine)'; + put '%mend mf_getengine;'; + put '/** @endcond */'; + put '%macro mm_assigndirectlib('; + put 'libref /* libref to assign from metadata */'; + put ',open_passthrough= /* provide an alias to produce the'; + put 'CONNECT TO statement for the'; + put 'relevant external database */'; + put ',sql_options= /* add any options to add to proc sql statement eg outobs='; + put '(only valid for pass through) */'; + put ',mDebug=0'; + put ',mAbort=0'; + put ')/*/STORE SOURCE*/;'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing mm_assigndirectlib.sas;'; + put '%&mD.put _local_;'; + put '%if &mAbort=1 %then %let mAbort=;'; + put '%else %let mAbort=%str(*);'; + put '%&mD.put NOTE: Creating direct (non META) connection to &libref library;'; + put '%local cur_engine;'; + put '%let cur_engine=%mf_getengine(&libref);'; + put '%if &cur_engine ne META and &cur_engine ne %then %do;'; + put '%put NOTE: &libref already has a direct (&cur_engine) libname connection;'; + put '%return;'; + put '%end;'; + put '%else %if %upcase(&libref)=WORK %then %do;'; + put '%put NOTE: We already have a direct connection to WORK :-) ;'; + put '%return;'; + put '%end;'; + put '/* need to determine the library ENGINE first */'; + put '%local engine;'; + put 'data _null_;'; + put 'length lib_uri engine $256;'; + put 'call missing (of _all_);'; + put '/* get URI for the particular library */'; + put 'rc1=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put '/* get the Engine attribute of the previous object */'; + put 'rc2=metadata_getattr(lib_uri,''Engine'',engine);'; + put 'putlog "mm_assigndirectlib for &libref:" rc1= lib_uri= rc2= engine=;'; + put 'call symputx("liburi",lib_uri,''l'');'; + put 'call symputx("engine",engine,''l'');'; + put 'run;'; + put '/* now obtain engine specific connection details */'; + put '%if &engine=BASE %then %do;'; + put '%&mD.put NOTE: Retrieving BASE library path;'; + put 'data _null_;'; + put 'length up_uri $256 path cat_path $1024;'; + put 'retain cat_path;'; + put 'call missing (of _all_);'; + put '/* get all the filepaths of the UsingPackages association */'; + put 'i=1;'; + put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; + put 'do while (rc3>0);'; + put '/* get the DirectoryName attribute of the previous object */'; + put 'rc4=metadata_getattr(up_uri,''DirectoryName'',path);'; + put 'if i=1 then path = ''("''!!trim(path)!!''" '';'; + put 'else path ='' "''!!trim(path)!!''" '';'; + put 'cat_path = trim(cat_path) !! " " !! trim(path) ;'; + put 'i+1;'; + put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; + put 'end;'; + put 'cat_path = trim(cat_path) !! ")";'; + put '&mD.putlog "NOTE: Getting physical path for &libref library";'; + put '&mD.putlog rc3= up_uri= rc4= cat_path= path=;'; + put '&mD.putlog "NOTE: Libname cmd will be:";'; + put '&mD.putlog "libname &libref" cat_path;'; + put 'call symputx("filepath",cat_path,''l'');'; + put 'run;'; + put '%if %sysevalf(&sysver<9.4) %then %do;'; + put 'libname &libref &filepath;'; + put '%end;'; + put '%else %do;'; + put '/* apply the new filelocks option to cater for temporary locks */'; + put 'libname &libref &filepath filelockwait=5;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=REMOTE %then %do;'; + put 'data x;'; + put 'length rcCon rcProp rc k 3 uriCon uriProp PropertyValue PropertyName'; + put 'Delimiter $256 properties $2048;'; + put 'retain properties;'; + put 'rcCon = metadata_getnasn("&liburi", "LibraryConnection", 1, uriCon);'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", 1, uriProp);'; + put 'k = 1;'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; + put 'do while (rcProp > 0);'; + put 'rc = metadata_getattr(uriProp , "DefaultValue",PropertyValue);'; + put 'rc = metadata_getattr(uriProp , "PropertyName",PropertyName);'; + put 'rc = metadata_getattr(uriProp , "Delimiter",Delimiter);'; + put 'properties = trim(properties) !! " " !! trim(PropertyName)'; + put '!! trim(Delimiter) !! trim(PropertyValue);'; + put 'output;'; + put 'k+1;'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; + put 'end;'; + put '%&mD.put NOTE: Getting properties for REMOTE SHARE &libref library;'; + put '&mD.put _all_;'; + put '%&mD.put NOTE: Libname cmd will be:;'; + put '%&mD.put libname &libref &engine &properties slibref=&libref;'; + put 'call symputx ("properties",trim(properties),''l'');'; + put 'run;'; + put 'libname &libref &engine &properties slibref=&libref;'; + put '%end;'; + put '%else %if &engine=OLEDB %then %do;'; + put '%&mD.put NOTE: Retrieving OLEDB connection details;'; + put 'data _null_;'; + put 'length domain datasource provider properties schema'; + put 'connx_uri domain_uri conprop_uri lib_uri schema_uri value $256.;'; + put 'call missing (of _all_);'; + put '/* get source connection ID */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; + put '/* get connection domain */'; + put 'rc1=metadata_getnasn(connx_uri,''Domain'',1,domain_uri);'; + put 'rc2=metadata_getattr(domain_uri,''Name'',domain);'; + put '&mD.putlog / ''NOTE: '' // ''NOTE- connection id: '' connx_uri ;'; + put '&mD.putlog ''NOTE- domain: '' domain;'; + put '/* get DSN and PROVIDER from connection properties */'; + put 'i=0;'; + put 'do until (rc<0);'; + put 'i+1;'; + put 'rc=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; + put 'rc2=metadata_getattr(conprop_uri,''Name'',value);'; + put 'if value=''Connection.OLE.Property.DATASOURCE.Name.xmlKey.txt'' then do;'; + put 'rc3=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; + put 'end;'; + put 'else if value=''Connection.OLE.Property.PROVIDER.Name.xmlKey.txt'' then do;'; + put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',provider);'; + put 'end;'; + put 'else if value=''Connection.OLE.Property.PROPERTIES.Name.xmlKey.txt'' then'; + put 'do;'; + put 'rc5=metadata_getattr(conprop_uri,''DefaultValue'',properties);'; + put 'end;'; + put 'end;'; + put '&mD.putlog ''NOTE- dsn/provider/properties: '' /'; + put 'datasource provider properties;'; + put '&mD.putlog ''NOTE- schema: '' schema // ''NOTE-'';'; + put '/* get SCHEMA */'; + put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,lib_uri);'; + put 'rc7=metadata_getattr(lib_uri,''SchemaName'',schema);'; + put 'call symputx(''SQL_domain'',domain,''l'');'; + put 'call symputx(''SQL_dsn'',datasource,''l'');'; + put 'call symputx(''SQL_provider'',provider,''l'');'; + put 'call symputx(''SQL_properties'',properties,''l'');'; + put 'call symputx(''SQL_schema'',schema,''l'');'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put 'proc sql &sql_options;'; + put 'connect to OLEDB as &open_passthrough(INSERT_SQL=YES'; + put '/* need additional properties to make this work */'; + put 'properties=(''Integrated Security''=SSPI'; + put '''Persist Security Info''=True'; + put '%sysfunc(compress(%str(&SQL_properties),%str(())))'; + put ')'; + put 'DATASOURCE=&sql_dsn PROMPT=NO'; + put 'PROVIDER=&sql_provider SCHEMA=&sql_schema CONNECTION = GLOBAL);'; + put '%end;'; + put '%else %do;'; + put 'LIBNAME &libref OLEDB PROPERTIES=&sql_properties'; + put 'DATASOURCE=&sql_dsn PROVIDER=&sql_provider SCHEMA=&sql_schema'; + put '%if %length(&sql_domain)>0 %then %do;'; + put 'authdomain="&sql_domain"'; + put '%end;'; + put 'connection=shared;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=ODBC %then %do;'; + put '&mD.%put NOTE: Retrieving ODBC connection details;'; + put 'data _null_;'; + put 'length connx_uri conprop_uri value datasource up_uri schema $256.;'; + put 'call missing (of _all_);'; + put '/* get source connection ID */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; + put '/* get connection properties */'; + put 'i=0;'; + put 'do until (rc2<0);'; + put 'i+1;'; + put 'rc2=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; + put 'rc3=metadata_getattr(conprop_uri,''Name'',value);'; + put 'if value=''Connection.ODBC.Property.DATASRC.Name.xmlKey.txt'' then do;'; + put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; + put 'rc2=-1;'; + put 'end;'; + put 'end;'; + put '/* get SCHEMA */'; + put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,up_uri);'; + put 'rc7=metadata_getattr(up_uri,''SchemaName'',schema);'; + put '&mD.put rc= connx_uri= rc2= conprop_uri= rc3= value= rc4= datasource='; + put 'rc6= up_uri= rc7= schema=;'; + put 'call symputx(''SQL_schema'',schema,''l'');'; + put 'call symputx(''SQL_dsn'',datasource,''l'');'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put 'proc sql &sql_options;'; + put 'connect to ODBC as &open_passthrough'; + put '(INSERT_SQL=YES DATASRC=&sql_dsn. CONNECTION=global);'; + put '%end;'; + put '%else %do;'; + put 'libname &libref ODBC DATASRC=&sql_dsn SCHEMA=&sql_schema;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=POSTGRES %then %do;'; + put '%put NOTE: Obtaining POSTGRES library details;'; + put 'data _null_;'; + put 'length database ignore_read_only_columns direct_exe preserve_col_names'; + put 'preserve_tab_names server schema authdomain user password'; + put 'prop name value uri urisrc $256.;'; + put 'call missing (of _all_);'; + put '/* get database value */'; + put 'prop=''Connection.DBMS.Property.DB.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,database,"");'; + put 'if database^='''' then database=''database=''!!quote(trim(database));'; + put 'call symputx(''database'',database,''l'');'; + put '/* get IGNORE_READ_ONLY_COLUMNS value */'; + put 'prop=''Library.DBMS.Property.DBIROC.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,ignore_read_only_columns,"");'; + put 'if ignore_read_only_columns^='''' then ignore_read_only_columns='; + put '''ignore_read_only_columns=''!!ignore_read_only_columns;'; + put 'call symputx(''ignore_read_only_columns'',ignore_read_only_columns,''l'');'; + put '/* get DIRECT_EXE value */'; + put 'prop=''Library.DBMS.Property.DirectExe.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,direct_exe,"");'; + put 'if direct_exe^='''' then direct_exe=''direct_exe=''!!direct_exe;'; + put 'call symputx(''direct_exe'',direct_exe,''l'');'; + put '/* get PRESERVE_COL_NAMES value */'; + put 'prop=''Library.DBMS.Property.PreserveColNames.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,preserve_col_names,"");'; + put 'if preserve_col_names^='''' then preserve_col_names='; + put '''preserve_col_names=''!!preserve_col_names;'; + put 'call symputx(''preserve_col_names'',preserve_col_names,''l'');'; + put '/* get PRESERVE_TAB_NAMES value */'; + put '/* be careful with PRESERVE_TAB_NAMES=YES - it will mean your table will'; + put 'become case sensitive!! */'; + put 'prop=''Library.DBMS.Property.PreserveTabNames.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,preserve_tab_names,"");'; + put 'if preserve_tab_names^='''' then preserve_tab_names='; + put '''preserve_tab_names=''!!preserve_tab_names;'; + put 'call symputx(''preserve_tab_names'',preserve_tab_names,''l'');'; + put '/* get SERVER value */'; + put 'if metadata_getnasn("&liburi","LibraryConnection",1,uri)>0 then do;'; + put 'prop=''Connection.DBMS.Property.SERVER.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop(uri,prop,server,"");'; + put 'end;'; + put 'if server^='''' then server=''server=''!!quote(cats(server));'; + put 'call symputx(''server'',server,''l'');'; + put '/* get SCHEMA value */'; + put 'if metadata_getnasn("&liburi","UsingPackages",1,uri)>0 then do;'; + put 'rc=metadata_getattr(uri,"SchemaName",schema);'; + put 'end;'; + put 'if schema^='''' then schema=''schema=''!!schema;'; + put 'call symputx(''schema'',schema,''l'');'; + put '/* get AUTHDOMAIN value */'; + put '/* this is only useful if the user account contains that auth domain'; + put 'if metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then do;'; + put 'rc=metadata_getnasn(uri,"Domain",1,urisrc);'; + put 'rc=metadata_getattr(urisrc,"Name",authdomain);'; + put 'end;'; + put 'if authdomain^='''' then authdomain=''authdomain=''!!quote(trim(authdomain));'; + put '*/'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/* get user & pass */'; + put 'if authdomain='''' & metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then'; + put 'do;'; + put 'rc=metadata_getattr(uri,"UserID",user);'; + put 'rc=metadata_getattr(uri,"Password",password);'; + put 'end;'; + put 'if user^='''' then do;'; + put 'user=''user=''!!quote(trim(user));'; + put 'password=''password=''!!quote(trim(password));'; + put 'end;'; + put 'call symputx(''user'',user,''l'');'; + put 'call symputx(''password'',password,''l'');'; + put '&md.put _all_;'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put '%put %str(WARN)ING: Passthrough option for postgres not yet supported;'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put '%if &mdebug=1 %then %do;'; + put '%put NOTE: Executing the following:/;'; + put '%put NOTE- libname &libref POSTGRES &database &ignore_read_only_columns;'; + put '%put NOTE- &direct_exe &preserve_col_names &preserve_tab_names;'; + put '%put NOTE- &server &schema &authdomain &user &password //;'; + put '%end;'; + put 'libname &libref POSTGRES &database &ignore_read_only_columns &direct_exe'; + put '&preserve_col_names &preserve_tab_names &server &schema &authdomain'; + put '&user &password;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=ORACLE %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null_;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema $256;'; + put 'call missing (of _all_);'; + put '/* get auth domain */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; + put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; + put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/* path */'; + put 'rc=metadata_getprop(assocuri1,'; + put '''Connection.Oracle.Property.PATH.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref ORACLE path=&path schema=&schema;'; + put '%put NOTE- authdomain=&authdomain;'; + put '%put NOTE-;'; + put 'libname &libref ORACLE path=&path schema=&schema authdomain=&authdomain;'; + put '%end;'; + put '%else %if &engine=SQLSVR %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; + put 'passwd $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; + put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; + put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; + put 'call symputx(''user'',userid,''l'');'; + put 'call symputx(''pass'',passwd,''l'');'; + put '/* path */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; + put 'rc=metadata_getprop(assocuri2,'; + put '''Connection.SQL.Property.Datasrc.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref SQLSVR datasrc=&path schema=&schema ;'; + put '%put NOTE- user="&user" pass="XXX";'; + put '%put NOTE-;'; + put 'libname &libref SQLSVR datasrc=&path schema=&schema user="&user" pass="&pass";'; + put '%end;'; + put '%else %if &engine=TERADATA %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; + put 'passwd $256;'; + put 'call missing (of _all_);'; + put '/* get auth domain */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; + put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; + put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/*'; + put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; + put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; + put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; + put 'call symputx(''user'',userid,''l'');'; + put 'call symputx(''pass'',passwd,''l'');'; + put '*/'; + put '/* path */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; + put 'rc=metadata_getprop(assocuri2,'; + put '''Connection.Teradata.Property.SERVER.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref TERADATA server="&path" schema=&schema ;'; + put '%put NOTe- authdomain=&authdomain;'; + put '%put NOTE-;'; + put 'libname &libref TERADATA server="&path" schema=&schema authdomain=&authdomain;'; + put '%end;'; + put '%else %if &engine= %then %do;'; + put '%put NOTE: Libref &libref is not registered in metadata;'; + put '%&mAbort.mp_abort('; + put 'msg=%str(ERR)OR: Libref &libref is not registered in metadata'; + put ',mac=mm_assigndirectlib.sas);'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put '%put %str(WARN)ING: Engine &engine is currently unsupported;'; + put '%put %str(WARN)ING- Please contact your support team.;'; + put '%return;'; + put '%end;'; + put '%mend mm_assigndirectlib;'; + put '%macro mm_getrepos('; + put 'outds=work.mm_getrepos'; + put ')/*/STORE SOURCE*/;'; + put '* use a temporary fileref to hold the response;'; + put 'filename response temp;'; + put '/* get list of libraries */'; + put 'proc metadata in='; + put '"1"'; + put 'out=response;'; + put 'run;'; + put '/* write the response to the log for debugging */'; + put '/*'; + put 'data _null_;'; + put 'infile response lrecl=1048576;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '*/'; + put '/* create an XML map to read the response */'; + put 'filename sxlemap temp;'; + put 'data _null_;'; + put 'file sxlemap;'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository";'; + put 'put "";'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Id";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Name";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Desc";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@DefaultNS";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryType";'; + put 'put "characterstring20";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryFormat";'; + put 'put "characterstring10";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@Access";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@CurrentAccess";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@PauseState";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Path";'; + put 'put "";'; + put 'put "characterstring256";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Engine";'; + put 'put "";'; + put 'put "characterstring8";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Options";'; + put 'put "";'; + put 'put "characterstring32";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataCreated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataUpdated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put ''
'';'; + put 'run;'; + put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; + put 'proc sort data= _XML_.SASRepos out=&outds;'; + put 'by name;'; + put 'run;'; + put '/* clear references */'; + put 'filename sxlemap clear;'; + put 'filename response clear;'; + put 'libname _XML_ clear;'; + put '%mend mm_getrepos;'; + put '%macro dc_assignlib(type,libref,passthru=);'; + put '%put &sysmacroname entry vars:;'; + put '%put _local_;'; + put '/* take current repository */'; + put '%local repo repocnt x;'; + put '%let repo=%sysfunc(getoption(metarepository));'; + put '/* get list of repositories and filter */'; + put '%mm_getrepos(outds=repos)'; + put '%let repocnt=0;'; + put 'data repos;'; + put 'set repos;'; + put 'where repositorytype in(''CUSTOM'',''FOUNDATION'')'; + put '& upcase(name) ne "%upcase(&repo)";'; + put 'keep id name ;'; + put 'call symputx(cats(''repo'',_n_),name,''l'');'; + put 'call symputx(''repocnt'',_n_,''l'');'; + put 'run;'; + put '/* find out which of these repositories has the libref we are searching for */'; + put '%local lib_uri;'; + put '%let lib_uri=NOTFOUND;'; + put 'data _null_; /* check default repo first */'; + put 'length lib_uri $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; + put 'run;'; + put '%if &lib_uri=NOTFOUND %then %do;'; + put '%do x=1 %to &repocnt;'; + put 'options metarepository=&&repo&x;'; + put 'data _null_;'; + put 'length lib_uri $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; + put 'run;'; + put '%if &lib_uri ne NOTFOUND %then %let x=%eval(&repocnt+1);'; + put '%end;'; + put '%end;'; + put '%if &type=READ %then %do;'; + put '%mm_assignlib(&libref)'; + put '%end;'; + put '%else %if &type=WRITE %then %do;'; + put '%mm_assigndirectlib(&libref,open_passthrough=&passthru)'; + put '%end;'; + put 'options metarepository=&repo;'; + put '%mend dc_assignlib;'; + put '/** @cond */'; + put '%macro mf_existvar(libds /* 2 part dataset name */'; + put ', var /* variable name */'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid rc;'; + put '%let dsid=%sysfunc(open(&libds,is));'; + put '%if &dsid=0 or %length(&var)=0 %then %do;'; + put '%put %sysfunc(sysmsg());'; + put '0'; + put '%end;'; + put '%else %do;'; + put '%sysfunc(varnum(&dsid,&var))'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%mend mf_existvar;'; + put '/** @endcond */'; + put '%macro mf_getattrn('; + put 'libds'; + put ',attr'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid rc;'; + put '%let dsid=%sysfunc(open(&libds,is));'; + put '%if &dsid = 0 %then %do;'; + put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; + put '%put %sysfunc(sysmsg());'; + put '-1'; + put '%end;'; + put '%else %do;'; + put '%sysfunc(attrn(&dsid,&attr))'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%mend mf_getattrn;'; + put '%macro mf_getvartype(libds /* two level name */'; + put ', var /* variable name from which to return the type */'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid vnum vtype rc;'; + put '/* Open dataset */'; + put '%let dsid = %sysfunc(open(&libds));'; + put '%if &dsid. > 0 %then %do;'; + put '/* Get variable number */'; + put '%let vnum = %sysfunc(varnum(&dsid, &var));'; + put '/* Get variable type (C/N) */'; + put '%if(&vnum. > 0) %then %let vtype = %sysfunc(vartype(&dsid, &vnum.));'; + put '%else %do;'; + put '%put NOTE: Variable &var does not exist in &libds;'; + put '%let vtype = %str( );'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: dataset &libds not opened! (rc=&dsid);'; + put '%put &sysmacroname: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '/* Close dataset */'; + put '%let rc = %sysfunc(close(&dsid));'; + put '/* Return variable type */'; + put '&vtype'; + put '%mend mf_getvartype;'; + put '%macro mf_getattrc('; + put 'libds'; + put ',attr'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid rc;'; + put '%let dsid=%sysfunc(open(&libds,is));'; + put '%if &dsid = 0 %then %do;'; + put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; + put '%put %sysfunc(sysmsg());'; + put '-1'; + put '%end;'; + put '%else %do;'; + put '%sysfunc(attrc(&dsid,&attr))'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%mend mf_getattrc;'; + put '%macro mp_lockfilecheck('; + put 'libds'; + put ')/*/STORE SOURCE*/;'; + put 'data _null_;'; + put 'if _n_=1 then putlog "&sysmacroname entry vars:";'; + put 'set sashelp.vmacro;'; + put 'where scope="&sysmacroname";'; + put 'put name ''='' value;'; + put 'run;'; + put '%mp_abort(iftrue= (&syscc>0)'; + put ',mac=checklock.sas'; + put ',msg=Aborting with syscc=&syscc on entry.'; + put ')'; + put '%mp_abort(iftrue= ("&libds"="0")'; + put ',mac=&sysmacroname'; + put ',msg=%str(libds not provided)'; + put ')'; + put '%local msg lib ds;'; + put '%let lib=%upcase(%scan(&libds,1,.));'; + put '%let ds=%upcase(%scan(&libds,2,.));'; + put '/* in DC, format catalogs are passed with a -FC suffix. No saslock here! */'; + put '%if %scan(&libds,2,-)=FC %then %do;'; + put '%put &sysmacroname: Format Catalog detected, no lockfile applied to &libds;'; + put '%return;'; + put '%end;'; + put '/* do not proceed if no observations can be processed */'; + put '%let msg=options obs = 0. syserrortext=%superq(syserrortext);'; + put '%mp_abort(iftrue= (%sysfunc(getoption(OBS))=0)'; + put ',mac=checklock.sas'; + put ',msg=%superq(msg)'; + put ')'; + put 'data _null_;'; + put 'putlog "Checking engine & member type";'; + put 'run;'; + put '%local engine memtype;'; + put '%let memtype=%mf_getattrc(&libds,MTYPE);'; + put '%let engine=%mf_getattrc(&libds,ENGINE);'; + put '%if &engine ne V9 and &engine ne BASE %then %do;'; + put 'data _null_;'; + put 'putlog "Lib &lib is not assigned using BASE engine - uses &engine instead";'; + put 'putlog "SAS lock check will not be performed";'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%else %if &memtype ne DATA %then %do;'; + put '%put NOTE: Cannot lock a VIEW!! Memtype=&memtype;'; + put '%return;'; + put '%end;'; + put 'data _null_;'; + put 'putlog "Engine = &engine, memtype=&memtype";'; + put 'putlog "Attempting lock statement";'; + put 'run;'; + put 'lock &libds;'; + put '%local abortme;'; + put '%let abortme=0;'; + put '%if &syscc>0 or &SYSLCKRC ne 0 %then %do;'; + put '%let msg=Unable to apply lock on &libds (SYSLCKRC=&SYSLCKRC syscc=&syscc);'; + put '%put %str(ERR)OR: &sysmacroname: &msg;'; + put '%let abortme=1;'; + put '%end;'; + put 'lock &libds clear;'; + put '%mp_abort(iftrue= (&abortme=1)'; + put ',mac=&sysmacroname'; + put ',msg=%superq(msg)'; + put ')'; + put '%mend mp_lockfilecheck;'; + put '%macro mp_lockanytable('; + put 'action'; + put ',lib= WORK'; + put ',ds=0'; + put ',ref='; + put ',ctl_ds=0'; + put ',loops=25'; + put ',loop_secs=1'; + put ');'; + put 'data _null_;'; + put 'if _n_=1 then putlog "&sysmacroname entry vars:";'; + put 'set sashelp.vmacro;'; + put 'where scope="&sysmacroname";'; + put 'put name ''='' value;'; + put 'run;'; + put '%mp_abort(iftrue= ("&ds"="0" and &action ne MAKETABLE)'; + put ',mac=&sysmacroname'; + put ',msg=%str(dataset was not provided)'; + put ')'; + put '%mp_abort(iftrue= (&ctl_ds=0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Control dataset was not provided)'; + put ')'; + put '/* set up lib & mac vars */'; + put '%let lib=%upcase(&lib);'; + put '%let ds=%upcase(&ds);'; + put '%let action=%upcase(&action);'; + put '%local user x trans msg abortme;'; + put '%let user=%mf_getuser();'; + put '%let abortme=0;'; + put '%mp_abort(iftrue= (&action ne LOCK & &action ne UNLOCK & &action ne MAKETABLE)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Invalid action (&action) provided)'; + put ')'; + put '/* if an err condition exists, exit before we even begin */'; + put '%mp_abort(iftrue= (&syscc>0 and &action=LOCK)'; + put ',mac=&sysmacroname'; + put ',msg=%str(aborting due to syscc=&syscc on LOCK entry)'; + put ')'; + put '/* do not bother locking work tables (else may affect all WORK libraries) */'; + put '%if (%upcase(&lib)=WORK or %str(&lib)=%str()) & &action ne MAKETABLE %then %do;'; + put '%put NOTE: WORK libraries will not be registered in the locking system.;'; + put '%return;'; + put '%end;'; + put '/* do not proceed if no observations can be processed */'; + put '%mp_abort(iftrue= (%sysfunc(getoption(OBS))=0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(cannot continue when options obs = 0)'; + put ')'; + put '%if &ACTION=LOCK %then %do;'; + put '/* abort if a SAS lock is already in place, or cannot be applied */'; + put '%mp_lockfilecheck(&lib..&ds)'; + put '/* next, check there is a record for this table */'; + put '%local record_exists_check;'; + put 'proc sql noprint;'; + put 'select count(*) into: record_exists_check from &ctl_ds'; + put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; + put 'quit;'; + put '%if &syscc>0 %then %put syscc=&syscc sqlrc=&sqlrc;'; + put '%if &record_exists_check=0 %then %do;'; + put 'data _null_;'; + put 'putlog "&sysmacroname: adding record to lock table..";'; + put 'run;'; + put 'data ;'; + put 'if 0 then set &ctl_ds;'; + put 'LOCK_LIB ="&lib";'; + put 'LOCK_DS="&ds";'; + put 'LOCK_STATUS_CD=''LOCKED'';'; + put 'LOCK_START_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt;'; + put 'LOCK_USER_NM="&user";'; + put 'LOCK_PID="&sysjobid";'; + put 'LOCK_REF="&ref";'; + put 'output;stop;'; + put 'run;'; + put '%let trans=&syslast;'; + put 'proc append base=&ctl_ds data=&trans;'; + put 'run;'; + put '%end;'; + put '/* if record does exist, perform lock attempts */'; + put '%else %do x=1 %to &loops;'; + put 'data _null_;'; + put 'putlog "&sysmacroname: attempting lock (iteration &x) "@;'; + put 'putlog "at %sysfunc(datetime(),datetime19.) ..";'; + put 'run;'; + put 'proc sql;'; + put 'update &ctl_ds'; + put 'set LOCK_STATUS_CD=''LOCKED'''; + put ', LOCK_START_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt'; + put ', LOCK_USER_NM="&user"'; + put ', LOCK_PID="&sysjobid"'; + put ', LOCK_REF="&ref"'; + put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; + put 'quit;'; + put '/**'; + put '* NOTE - occasionally SQL server will return an err code (deadlocked'; + put '* transaction). If so, ignore it, keep calm, and carry on..'; + put '*/'; + put '%if &syscc>0 %then %do;'; + put 'data _null_;'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'putlog "NOTE- &sysmacroname: Update failed. "@;'; + put 'putlog "Resetting err conditions and re-attempting.";'; + put 'putlog "NOTE- syscc=&syscc syserr=&syserr sqlrc=&sqlrc";'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'run;'; + put '%let syscc=0;'; + put '%let sqlrc=0;'; + put '%end;'; + put '/* now check if the record was successfully updated */'; + put '%local success_check;'; + put 'proc sql noprint;'; + put 'select count(*) into: success_check from &ctl_ds'; + put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds"'; + put 'and LOCK_PID="&sysjobid" and LOCK_STATUS_CD=''LOCKED'';'; + put 'quit;'; + put '%if &success_check=0 %then %do;'; + put '%if &x < &loops %then %do;'; + put '/* pause before next check */'; + put 'data _null_;'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'putlog "NOTE- &sysmacroname: table locked, waiting "@;'; + put 'putlog "%sysfunc(sleep(&loop_inc)) seconds.. ";'; + put 'putlog "NOTE- (iteration &x of &loops)";'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%let msg=Unable to lock &lib..&ds via &ctl_ds after &loops attempts.\n'; + put 'Please ask your administrator to investigate!;'; + put '%let abortme=1;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put 'data _null_;'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'putlog "NOTE- &sysmacroname: Table &lib..&ds locked at "@;'; + put 'putlog " %sysfunc(datetime(),datetime19.) (iteration &x)"@;'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'run;'; + put '%if &syscc>0 %then %do;'; + put '%put setting syscc(&syscc) back to 0;'; + put '%let syscc=0;'; + put '%end;'; + put '%let x=&loops; /* no more iterations needed */'; + put '%end;'; + put '%end;'; + put '%end;'; + put '%else %if &ACTION=UNLOCK %then %do;'; + put '%local status;'; + put 'proc sql noprint;'; + put 'select LOCK_STATUS_CD into: status from &ctl_ds'; + put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; + put 'quit;'; + put '%if &syscc>0 %then %put syscc=&syscc sqlrc=&sqlrc;'; + put '%if &status=LOCKED %then %do;'; + put 'data _null_;'; + put 'putlog "&sysmacroname: unlocking &lib..&ds:";'; + put 'run;'; + put 'proc sql;'; + put 'update &ctl_ds'; + put 'set LOCK_STATUS_CD=''UNLOCKED'''; + put ', LOCK_END_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt'; + put ', LOCK_USER_NM="&user"'; + put ', LOCK_PID="&sysjobid"'; + put ', LOCK_REF="&ref"'; + put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; + put 'quit;'; + put '%end;'; + put '%else %if &status=UNLOCKED %then %do;'; + put '%put %str(WAR)NING: &lib..&ds is already unlocked!;'; + put '%end;'; + put '%else %do;'; + put '%put NOTE: Unrecognised STATUS_CD (&status) in &ctl_ds;'; + put '%let abortme=1;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%let msg=lock_anytable given unsupported action (&action);'; + put '%let abortme=1;'; + put '%end;'; + put '/* catch errs - mp_abort must be called outside of a logic block */'; + put '%mp_abort(iftrue=(&abortme=1),'; + put 'msg=%superq(msg),'; + put 'mac=&sysmacroname'; + put ')'; + put '%exit_macro:'; + put 'data _null_;'; + put 'put "&sysmacroname: Exit vars: action=&action lib=&lib ds=&ds";'; + put 'put " syscc=&syscc sqlrc=&sqlrc syserr=&syserr";'; + put 'run;'; + put '%mend mp_lockanytable;'; + put '%macro bitemporal_closeouts('; + put 'tech_from=tx_from_dttm'; + put ',tech_to = tx_to_dttm /* Technical TO datetime variable.'; + put 'Req''d on BASE table only. */'; + put ',base_lib=WORK /* Libref of the BASE table. */'; + put ',base_dsn=BASETABLE /* Name of BASE table. */'; + put ',append_lib=WORK /* Libref of the STAGING table. */'; + put ',append_dsn=APPENDTABLE /* Name of STAGING table. */'; + put ',PK= name sex /* Business key, space separated. */'; + put '/* Should INCLUDE BUS_FROM field if relevant. */'; + put ',NOW=DEFINE'; + put ',FILTER= /* supply a filter to limit the update */'; + put ',outdest= /* supply an unquoted filepath/filename.ext to get'; + put 'a text file containing the update statements */'; + put ',loadtype='; + put ',loadtarget=YES /* if <> YES will return without changing anything */'; + put ');'; + put '%put ENTERING &sysmacroname;'; + put '%local x var start;'; + put '%let start=%sysfunc(datetime());'; + put '%dc_assignlib(WRITE,&base_lib)'; + put '%dc_assignlib(WRITE,&append_lib)'; + put '%if &now=DEFINE %then %let now=&dc_dttmtfmt.;'; + put '%put &=now;'; + put '/**'; + put '* perform basic checks'; + put '*/'; + put '/* do tables exist? */'; + put '%if not %sysfunc(exist(&base_lib..&base_dsn)) %then %do;'; + put '%mp_abort(msg=&base_lib..&base_dsn does not exist)'; + put '%end;'; + put '%else %if %sysfunc(exist(&append_lib..&append_dsn))=0'; + put 'and %sysfunc(exist(&append_lib..&append_dsn,VIEW))=0 %then %do;'; + put '%mp_abort(msg=&append_lib..&append_dsn does not exist)'; + put '%end;'; + put '/* do TX columns exist? */'; + put '%if &loadtype ne UPDATE %then %do;'; + put '%if not %mf_existvar(&base_lib..&base_dsn,&tech_from) %then %do;'; + put '%mp_abort(msg=&tech_from does not exist on &base_lib..&base_dsn)'; + put '%end;'; + put '%else %if not %mf_existvar(&base_lib..&base_dsn,&tech_to) %then %do;'; + put '%mp_abort(msg=&tech_to does not exist on &base_lib..&base_dsn)'; + put '%end;'; + put '%end;'; + put '/* do PK columns exist? */'; + put '%do x=1 %to %sysfunc(countw(&PK));'; + put '%let var=%scan(&pk,&x,%str( ));'; + put '%if not %mf_existvar(&base_lib..&base_dsn,&var) %then %do;'; + put '%mp_abort(msg=&var does not exist on &base_lib..&base_dsn)'; + put '%end;'; + put '%else %if not %mf_existvar(&append_lib..&append_dsn,&var) %then %do;'; + put '%mp_abort(msg=&var does not exist on &append_lib..&append_dsn)'; + put '%end;'; + put '%end;'; + put '/* check uniqueness */'; + put 'proc sort data=&append_lib..&append_dsn'; + put 'out=___closeout1 noduprecs dupout=___closeout1a;'; + put 'by &pk;'; + put 'run;'; + put '%if %mf_getattrn(___closeout1a,NLOBS)>0 %then'; + put '%put NOTE: dups on (&PK) in (&append_lib..&append_dsn);'; + put '/* is &NOW value within a tolerance? Should not allow renegade closeouts.. */'; + put '%local gap;'; + put '%let gap=0;'; + put 'data _null_;'; + put 'now=&now;'; + put 'gap=intck(''HOURS'',now,datetime());'; + put 'call symputx(''gap'',gap,''l'');'; + put 'run;'; + put '%mf_abort('; + put 'iftrue=(&gap > 24),'; + put 'msg=NOW variable (&now) is not within a 24hr tolerance'; + put ')'; + put '/* have any warnings / errs occurred thus far? If so, abort */'; + put '%mf_abort('; + put 'iftrue=(&syscc>0),'; + put 'msg=Aborted due to SYSCC=&SYSCC status'; + put ')'; + put '/**'; + put '* Create closeout statements. These are sent as individual SQL statements'; + put '* to ensure pass-through utilisation. The update_cnt variable monitors'; + put '* how many records were actually updated on the target table.'; + put '*/'; + put '%local update_cnt;'; + put '%let update_cnt=0;'; + put 'filename tmp temp;'; + put 'data _null_;'; + put 'set ___closeout1;'; + put 'file tmp;'; + put 'if _n_=1 then put ''proc sql noprint;'' ;'; + put 'length string $32767.;'; + put '%if &loadtype=UPDATE %then %do;'; + put 'put "delete from &base_lib..&base_dsn where 1";'; + put '%end;'; + put '%else %do;'; + put 'now=symget(''now'');'; + put 'put "update &base_lib..&base_dsn set &tech_to= " now @;'; + put '%if %mf_existvar(&base_lib..&base_dsn,PROCESSED_DTTM) %then %do;'; + put 'put " ,PROCESSED_DTTM=" now @;'; + put '%end;'; + put 'put " where " now " lt &tech_to ";'; + put '%end;'; + put '%do x=1 %to %sysfunc(countw(&PK));'; + put '%let var=%scan(&pk,&x,%str( ));'; + put '%if %mf_getvartype(&base_lib..&base_dsn,&var)=C %then %do;'; + put '/* use single quotes to avoid ampersand resolution in data */'; + put 'string=" & &var=''"!!trim(prxchange("s/''/''''/",-1,&var))!!"''";'; + put '%end;'; + put '%else %do;'; + put 'string=cats(" & &var=",&var);'; + put '%end;'; + put 'put string;'; + put '%end;'; + put 'put "&filter ;";'; + put 'put ''%let update_cnt=%eval(&update_cnt+&sqlobs);%put update_cnt=&update_cnt;'';'; + put 'run;'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;'; + put 'putlog _infile_;'; + put 'run;'; + put '%if &loadtarget ne YES %then %return;'; + put '/* ensure we have a lock */'; + put '%mp_lockanytable(LOCK,'; + put 'lib=&base_lib,ds=&base_dsn'; + put ',ref=bitemporal_closeouts'; + put ',ctl_ds=&mpelib..mpe_lockanytable'; + put ')'; + put 'options source2;'; + put '%inc tmp;'; + put 'filename tmp clear;'; + put '/**'; + put '* Update audit tracker'; + put '*/'; + put '%local newobs; %let newobs=%mf_getattrn(work.___closeout1,NLOBS);'; + put '%local user; %let user=%mf_getuser();'; + put 'proc sql;'; + put 'insert into &mpelib..mpe_dataloads'; + put 'set libref=%upcase("&base_lib")'; + put ',DSN=%upcase("&base_dsn")'; + put ',ETLSOURCE="&append_lib..&append_dsn contained &newobs records"'; + put ',LOADTYPE="CLOSEOUT"'; + put ',DELETED_RECORDS=&update_cnt'; + put ',NEW_RECORDS=0'; + put ',DURATION=%sysfunc(datetime())-&start'; + put ',USER_NM="&user"'; + put ',PROCESSED_DTTM=&now;'; + put 'quit;'; + put '%mend bitemporal_closeouts;'; + put '%macro mf_getschema(libref'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid vnum rc schema;'; + put '/* in case the parameter is a libref.tablename, pull off just the libref */'; + put '%let libref = %upcase(%scan(&libref, 1, %str(.)));'; + put '%let dsid=%sysfunc(open(sashelp.vlibnam(where=('; + put 'libname="%upcase(&libref)" and sysname=''Schema/Owner'''; + put ')),i));'; + put '%if (&dsid ^= 0) %then %do;'; + put '%let vnum=%sysfunc(varnum(&dsid,SYSVALUE));'; + put '%let rc=%sysfunc(fetch(&dsid));'; + put '%let schema=%sysfunc(getvarc(&dsid,&vnum));'; + put '%put &libref. schema is &schema.;'; + put '%let rc= %sysfunc(close(&dsid));'; + put '%end;'; + put '&schema'; + put '%mend mf_getschema;'; + put '/** @endcond */'; + put '%macro mf_getuniquename(prefix=MC);'; + put '&prefix.%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32-%length(&prefix))'; + put '%mend mf_getuniquename;'; + put '%macro mf_getvarlist(libds'; + put ',dlm=%str( )'; + put ',quote=no'; + put ',typefilter=A'; + put ')/*/STORE SOURCE*/;'; + put '/* declare local vars */'; + put '%local outvar dsid nvars x rc dlm q var vtype;'; + put '/* credit Rowland Hale - byte34 is double quote, 39 is single quote */'; + put '%if %upcase("e)=DOUBLE %then %let q=%qsysfunc(byte(34));'; + put '%else %if %upcase("e)=SINGLE %then %let q=%qsysfunc(byte(39));'; + put '/* open dataset in macro */'; + put '%let dsid=%sysfunc(open(&libds));'; + put '%if &dsid %then %do;'; + put '%let nvars=%sysfunc(attrn(&dsid,NVARS));'; + put '%if &nvars>0 %then %do;'; + put '/* add variables with supplied delimeter */'; + put '%do x=1 %to &nvars;'; + put '/* get variable type */'; + put '%let vtype=%sysfunc(vartype(&dsid,&x));'; + put '%if &vtype=&typefilter or &typefilter=A %then %do;'; + put '%let var=&q.%sysfunc(varname(&dsid,&x))&q.;'; + put '%if &var=&q&q %then %do;'; + put '%put &sysmacroname: Empty column found in &libds!;'; + put '%let var=&q. &q.;'; + put '%end;'; + put '%if %quote(&outvar)=%quote() %then %let outvar=&var;'; + put '%else %let outvar=&outvar.&dlm.&var.;'; + put '%end;'; + put '%end;'; + put '%end;'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: Unable to open &libds (rc=&dsid);'; + put '%put &sysmacroname: SYSMSG= %sysfunc(sysmsg());'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%do;%unquote(&outvar)%end;'; + put '%mend mf_getvarlist;'; + put '%macro mf_abort(mac=mf_abort.sas, msg=, iftrue=%str(1=1)'; + put ')/*/STORE SOURCE*/;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mf_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%abort;'; + put '%mend mf_abort;'; + put '/** @endcond */'; + put '%macro mf_verifymacvars('; + put 'verifyVars /* list of macro variable NAMES */'; + put ',makeUpcase=NO /* set to YES to make all the variable VALUES uppercase */'; + put ',mAbort=SOFT'; + put ')/*/STORE SOURCE*/;'; + put '%local verifyIterator verifyVar abortmsg;'; + put '%do verifyIterator=1 %to %sysfunc(countw(&verifyVars,%str( )));'; + put '%let verifyVar=%qscan(&verifyVars,&verifyIterator,%str( ));'; + put '%if not %symexist(&verifyvar) %then %do;'; + put '%let abortmsg= Variable &verifyVar is MISSING;'; + put '%goto exit_err;'; + put '%end;'; + put '%if %length(%trim(&&&verifyVar))=0 %then %do;'; + put '%let abortmsg= Variable &verifyVar is EMPTY;'; + put '%goto exit_err;'; + put '%end;'; + put '%if &makeupcase=YES %then %do;'; + put '%let &verifyVar=%upcase(&&&verifyvar);'; + put '%end;'; + put '%end;'; + put '%goto exit_success;'; + put '%exit_err:'; + put '%put &abortmsg;'; + put '%mf_abort(iftrue=(&mabort ne SOFT),'; + put 'mac=mf_verifymacvars,'; + put 'msg=%str(&abortmsg)'; + put ')'; + put '0'; + put '%return;'; + put '%exit_success:'; + put '1'; + put '%mend mf_verifymacvars;'; + put '%macro mf_wordsInStr1ButNotStr2('; + put 'Str1= /* string containing words to extract */'; + put ',Str2= /* used to compare with the extract string */'; + put ')/*/STORE SOURCE*/;'; + put '%local count_base count_extr i i2 extr_word base_word match outvar;'; + put '%if %length(&str1)=0 or %length(&str2)=0 %then %do;'; + put '%put base string (str1)= &str1;'; + put '%put compare string (str2) = &str2;'; + put '%return;'; + put '%end;'; + put '%let count_base=%sysfunc(countw(&Str2));'; + put '%let count_extr=%sysfunc(countw(&Str1));'; + put '%do i=1 %to &count_extr;'; + put '%let extr_word=%scan(&Str1,&i,%str( ));'; + put '%let match=0;'; + put '%do i2=1 %to &count_base;'; + put '%let base_word=%scan(&Str2,&i2,%str( ));'; + put '%if &extr_word=&base_word %then %let match=1;'; + put '%end;'; + put '%if &match=0 %then %let outvar=&outvar &extr_word;'; + put '%end;'; + put '&outvar'; + put '%mend mf_wordsInStr1ButNotStr2;'; + put '%macro mf_isblank(param'; + put ')/*/STORE SOURCE*/;'; + put '%sysevalf(%superq(param)=,boolean)'; + put '%mend mf_isblank;'; + put '%macro mp_dropmembers('; + put 'list /* space separated list of datasets / views */'; + put ',libref=WORK /* can only drop from a single library at a time */'; + put ',iftrue=%str(1=1)'; + put ')/*/STORE SOURCE*/;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%if %mf_isblank(&list) %then %do;'; + put '%put NOTE: nothing to drop!;'; + put '%return;'; + put '%end;'; + put 'proc datasets lib=&libref nolist;'; + put 'delete &list;'; + put 'delete &list /mtype=view;'; + put 'run;'; + put '%mend mp_dropmembers;'; + put '%macro mf_getquotedstr(IN_STR'; + put ',DLM=%str(,)'; + put ',QUOTE=S'; + put ',indlm=%str( )'; + put ')/*/STORE SOURCE*/;'; + put '/* credit Rowland Hale - byte34 is double quote, 39 is single quote */'; + put '%if "e=S %then %let quote=%qsysfunc(byte(39));'; + put '%else %if "e=D %then %let quote=%qsysfunc(byte(34));'; + put '%else %if "e=N %then %let quote=;'; + put '%local i item buffer;'; + put '%let i=1;'; + put '%do %while (%qscan(&IN_STR,&i,%str(&indlm)) ne %str() ) ;'; + put '%let item=%qscan(&IN_STR,&i,%str(&indlm));'; + put '%if %bquote("E) ne %then %let item="E%qtrim(&item)"E;'; + put '%else %let item=%qtrim(&item);'; + put '%if (&i = 1) %then %let buffer =%qtrim(&item);'; + put '%else %let buffer =&buffer&DLM%qtrim(&item);'; + put '%let i = %eval(&i+1);'; + put '%end;'; + put '%let buffer=%sysfunc(coalescec(%qtrim(&buffer),"E"E));'; + put '&buffer'; + put '%mend mf_getquotedstr;'; + put '%macro mf_nobs(libds'; + put ')/*/STORE SOURCE*/;'; + put '%mf_getattrn(&libds,NLOBS)'; + put '%mend mf_nobs;'; + put '%macro mp_retainedkey('; + put 'base_lib=WORK'; + put ',base_dsn=BASETABLE'; + put ',append_lib=WORK'; + put ',append_dsn=APPENDTABLE'; + put ',retained_key=DEFAULT_RK'; + put ',business_key= PK1 PK2'; + put ',check_uniqueness=NO'; + put ',maxkeytable=0'; + put ',locktable=0'; + put ',outds=WORK.APPEND'; + put ',filter_str='; + put ');'; + put '%put &sysmacroname entry vars:;'; + put '%put _local_;'; + put '%local base_libds app_libds key_field check maxkey idx_pk newkey_cnt iserr'; + put 'msg x tempds1 tempds2 comma_pk appnobs checknobs dropvar tempvar idx_val;'; + put '%let base_libds=%upcase(&base_lib..&base_dsn);'; + put '%let app_libds=%upcase(&append_lib..&append_dsn);'; + put '%let tempds1=%mf_getuniquename();'; + put '%let tempds2=%mf_getuniquename();'; + put '%let comma_pk=%mf_getquotedstr(in_str=%str(&business_key),dlm=%str(,),quote=);'; + put '%let outds=%sysfunc(ifc(%index(&outds,.)=0,work.&outds,&outds));'; + put '/* validation checks */'; + put '%let iserr=0;'; + put '%if &syscc>0 %then %do;'; + put '%let iserr=1;'; + put '%let msg=%str(SYSCC=&syscc on macro entry);'; + put '%end;'; + put '%else %if %sysfunc(exist(&base_libds))=0 %then %do;'; + put '%let iserr=1;'; + put '%let msg=%str(Base LIBDS (&base_libds) expected but NOT FOUND);'; + put '%end;'; + put '%else %if %sysfunc(exist(&app_libds))=0 %then %do;'; + put '%let iserr=1;'; + put '%let msg=%str(Append LIBDS (&app_libds) expected but NOT FOUND);'; + put '%end;'; + put '%else %if &maxkeytable ne 0 and %sysfunc(exist(&maxkeytable))=0 %then %do;'; + put '%let iserr=1;'; + put '%let msg=%str(Maxkeytable (&maxkeytable) expected but NOT FOUND);'; + put '%end;'; + put '%else %if &maxkeytable ne 0 and %sysfunc(exist(&locktable))=0 %then %do;'; + put '%let iserr=1;'; + put '%let msg=%str(Locktable (&locktable) expected but NOT FOUND);'; + put '%end;'; + put '%else %if %length(&business_key)=0 %then %do;'; + put '%let iserr=1;'; + put '%let msg=%str(Business key (&business_key) expected but NOT FOUND);'; + put '%end;'; + put '%do x=1 %to %sysfunc(countw(&business_key));'; + put '/* check business key values exist */'; + put '%let key_field=%scan(&business_key,&x,%str( ));'; + put '%if not %mf_existvar(&app_libds,&key_field) %then %do;'; + put '%let iserr=1;'; + put '%let msg=Business key (&key_field) not found on &app_libds!;'; + put '%goto err;'; + put '%end;'; + put '%else %if not %mf_existvar(&base_libds,&key_field) %then %do;'; + put '%let iserr=1;'; + put '%let msg=Business key (&key_field) not found on &base_libds!;'; + put '%goto err;'; + put '%end;'; + put '%end;'; + put '%err:'; + put '%if &iserr=1 %then %do;'; + put '/* err case so first perform an unlock of the base table before exiting */'; + put '%mp_lockanytable('; + put 'UNLOCK,lib=&base_lib,ds=&base_dsn,ref=%superq(msg),ctl_ds=&locktable'; + put ')'; + put '%end;'; + put '%mp_abort(iftrue=(&iserr=1),mac=mp_retainedkey,msg=%superq(msg))'; + put 'proc sql noprint;'; + put 'select sum(max(&retained_key),0) into: maxkey from &base_libds;'; + put '/**'; + put '* get base table RK and bus field values for lookup'; + put '*/'; + put 'proc sql noprint;'; + put 'create table &tempds1 as'; + put 'select distinct &comma_pk,&retained_key'; + put 'from &base_libds &filter_str'; + put 'order by &comma_pk,&retained_key;'; + put '%if &check_uniqueness=YES %then %do;'; + put 'select count(*) into:checknobs'; + put 'from (select distinct &comma_pk from &app_libds);'; + put 'select count(*) into: appnobs from &app_libds; /* might be view */'; + put '%if &checknobs ne &appnobs %then %do;'; + put '%let msg=Source table &app_libds is not unique on (&business_key);'; + put '%let iserr=1;'; + put '%end;'; + put '%end;'; + put '%if &iserr=1 %then %do;'; + put '/* err case so first perform an unlock of the base table before exiting */'; + put '%mp_lockanytable('; + put 'UNLOCK,lib=&base_lib,ds=&base_dsn,ref=%superq(msg),ctl_ds=&locktable'; + put ')'; + put '%end;'; + put '%mp_abort(iftrue= (&iserr=1),mac=mp_retainedkey,msg=%superq(msg))'; + put '%if %mf_existvar(&app_libds,&retained_key)'; + put '%then %let dropvar=(drop=&retained_key);'; + put '/* prepare interim table with retained key populated for matching keys */'; + put 'proc sql noprint;'; + put 'create table &tempds2 as'; + put 'select b.&retained_key, a.*'; + put 'from &app_libds &dropvar a'; + put 'left join &tempds1 b'; + put 'on 1'; + put '%do idx_pk=1 %to %sysfunc(countw(&business_key));'; + put '%let idx_val=%scan(&business_key,&idx_pk);'; + put 'and a.&idx_val=b.&idx_val'; + put '%end;'; + put 'order by &retained_key;'; + put '/* identify the number of entries without retained keys (new records) */'; + put 'select count(*) into: newkey_cnt'; + put 'from &tempds2'; + put 'where missing(&retained_key);'; + put 'quit;'; + put '/**'; + put '* Update maxkey table if link provided'; + put '*/'; + put '%if &maxkeytable ne 0 %then %do;'; + put 'proc sql noprint;'; + put 'select count(*) into: check from &maxkeytable'; + put 'where upcase(keytable)="&base_libds";'; + put '%mp_lockanytable(LOCK'; + put ',lib=%scan(&maxkeytable,1,.)'; + put ',ds=%scan(&maxkeytable,2,.)'; + put ',ref=Updating maxkeyvalues with mp_retainedkey'; + put ',ctl_ds=&locktable'; + put ')'; + put 'proc sql;'; + put '%if &check=0 %then %do;'; + put 'insert into &maxkeytable'; + put 'set keytable="&base_libds"'; + put ',keycolumn="&retained_key"'; + put ',max_key=%eval(&maxkey+&newkey_cnt)'; + put ',processed_dttm="%sysfunc(datetime(),%mf_fmtdttm())"dt;'; + put '%end;'; + put '%else %do;'; + put 'update &maxkeytable'; + put 'set max_key=%eval(&maxkey+&newkey_cnt)'; + put ',processed_dttm="%sysfunc(datetime(),%mf_fmtdttm())"dt'; + put 'where keytable="&base_libds";'; + put '%end;'; + put '%mp_lockanytable(UNLOCK'; + put ',lib=%scan(&maxkeytable,1,.)'; + put ',ds=%scan(&maxkeytable,2,.)'; + put ',ref=Updating maxkeyvalues with maxkey=%eval(&maxkey+&newkey_cnt)'; + put ',ctl_ds=&locktable'; + put ')'; + put '%end;'; + put '/* fill in the missing retained key values */'; + put '%let tempvar=%mf_getuniquename();'; + put 'data &outds(drop=&tempvar);'; + put 'retain &tempvar %eval(&maxkey+1);'; + put 'set &tempds2;'; + put 'if &retained_key =. then &retained_key=&tempvar;'; + put '&tempvar=&tempvar+1;'; + put 'run;'; + put '%mend mp_retainedkey;'; + put '/** @cond */'; + put '%macro mp_storediffs(libds'; + put ',origds'; + put ',key'; + put ',delds=0'; + put ',appds=0'; + put ',modds=0'; + put ',outds=work.mp_storediffs'; + put ',loadref=0'; + put ',processed_dttm=0'; + put ',mdebug=0'; + put ')/*/STORE SOURCE*/;'; + put '%local dbg;'; + put '%if &mdebug=1 %then %do;'; + put '%put &sysmacroname entry vars:;'; + put '%put _local_;'; + put '%end;'; + put '%else %let dbg=*;'; + put '/* set up unique and temporary vars */'; + put '%local ds1 ds2 ds3 ds4 hashkey inds_auto inds_keep dslist vlist;'; + put '%let ds1=%upcase(work.%mf_getuniquename(prefix=mpsd_ds1));'; + put '%let ds2=%upcase(work.%mf_getuniquename(prefix=mpsd_ds2));'; + put '%let ds3=%upcase(work.%mf_getuniquename(prefix=mpsd_ds3));'; + put '%let ds4=%upcase(work.%mf_getuniquename(prefix=mpsd_ds4));'; + put '%let hashkey=%upcase(%mf_getuniquename(prefix=mpsd_hashkey));'; + put '%let inds_auto=%upcase(%mf_getuniquename(prefix=mpsd_inds_auto));'; + put '%let inds_keep=%upcase(%mf_getuniquename(prefix=mpsd_inds_keep));'; + put '%let dslist=&origds;'; + put '%if &delds ne 0 %then %do;'; + put '%let delds=%upcase(&delds);'; + put '%if %scan(&delds,-1,.)=&delds %then %let delds=WORK.&delds;'; + put '%let dslist=&dslist &delds;'; + put '%end;'; + put '%if &appds ne 0 %then %do;'; + put '%let appds=%upcase(&appds);'; + put '%if %scan(&appds,-1,.)=&appds %then %let appds=WORK.&appds;'; + put '%let dslist=&dslist &appds;'; + put '%end;'; + put '%if &modds ne 0 %then %do;'; + put '%let modds=%upcase(&modds);'; + put '%if %scan(&modds,-1,.)=&modds %then %let modds=WORK.&modds;'; + put '%let dslist=&dslist &modds;'; + put '%end;'; + put '%let origds=%upcase(&origds);'; + put '%if %scan(&origds,-1,.)=&origds %then %let origds=WORK.&origds;'; + put '%let key=%upcase(&key);'; + put '/* hash the key and append all the tables (marking the source) */'; + put 'data &ds1;'; + put 'set &dslist indsname=&inds_auto;'; + put '&hashkey=put(md5(catx(''|'',%mf_getquotedstr(&key,quote=N))),$hex32.);'; + put '&inds_keep=upcase(&inds_auto);'; + put 'proc sort;'; + put 'by &inds_keep &hashkey;'; + put 'run;'; + put '/* transpose numeric & char vars */'; + put 'proc transpose data=&ds1'; + put 'out=&ds2(rename=(&hashkey=key_hash _name_=tgtvar_nm col1=newval_num));'; + put 'by &inds_keep &hashkey;'; + put 'var _numeric_;'; + put 'run;'; + put 'proc transpose data=&ds1'; + put 'out=&ds3('; + put 'rename=(&hashkey=key_hash _name_=tgtvar_nm col1=newval_char)'; + put 'where=(tgtvar_nm not in ("&hashkey","&inds_keep"))'; + put ');'; + put 'by &inds_keep &hashkey;'; + put 'var _character_;'; + put 'run;'; + put '%if %index(&libds,-)>0 and %scan(&libds,2,-)=FC %then %do;'; + put '/* this is a format catalog - cannot query cols directly */'; + put '%let vlist="FMTNAME","START","END","LABEL","MIN","MAX","DEFAULT","LENGTH"'; + put ',"FUZZ","PREFIX","MULT","FILL","NOEDIT","TYPE","SEXCL","EEXCL","HLO"'; + put ',"DECSEP","DIG3SEP","DATATYPE","LANGUAGE";'; + put '%end;'; + put '%else %let vlist=%mf_getvarlist(&libds,dlm=%str(,),quote=DOUBLE);'; + put 'data &ds4;'; + put 'length &inds_keep $41 tgtvar_nm $32 _label_ $256;'; + put 'if _n_=1 then call missing(_label_);'; + put 'drop _label_;'; + put 'set &ds2 &ds3 indsname=&inds_auto;'; + put 'tgtvar_nm=upcase(tgtvar_nm);'; + put 'if tgtvar_nm in (%upcase(&vlist));'; + put 'if upcase(&inds_auto)="&ds2" then tgtvar_type=''N'';'; + put 'else if upcase(&inds_auto)="&ds3" then tgtvar_type=''C'';'; + put 'else do;'; + put 'putlog "%str(ERR)OR: unidentified vartype input!" &inds_auto;'; + put 'call symputx(''syscc'',98);'; + put 'end;'; + put 'if &inds_keep="&appds" then move_type=''A'';'; + put 'else if &inds_keep="&delds" then move_type=''D'';'; + put 'else if &inds_keep="&modds" then move_type=''M'';'; + put 'else if &inds_keep="&origds" then move_type=''O'';'; + put 'else do;'; + put 'putlog "%str(ERR)OR: unidentified movetype input!" &inds_keep;'; + put 'call symputx(''syscc'',99);'; + put 'end;'; + put 'tgtvar_nm=upcase(tgtvar_nm);'; + put 'if tgtvar_nm in (%mf_getquotedstr(&key)) then is_pk=1;'; + put 'else is_pk=0;'; + put 'drop &inds_keep;'; + put 'run;'; + put '%if "&loadref"="0" %then %let loadref=%sysfunc(uuidgen());'; + put '%if &processed_dttm=0 %then %let processed_dttm=%sysfunc(datetime());'; + put '%let libds=%upcase(&libds);'; + put '/* join orig vals for modified & deleted */'; + put 'proc sql;'; + put 'create table &outds as'; + put 'select "&loadref" as load_ref length=36'; + put ',&processed_dttm as processed_dttm format=E8601DT26.6'; + put ',"%scan(&libds,1,.)" as libref length=8'; + put ',"%scan(&libds,2,.)" as dsn length=32'; + put ',b.key_hash length=32'; + put ',b.move_type length=1'; + put ',b.tgtvar_nm length=32'; + put ',b.is_pk'; + put ',case when b.move_type ne ''M'' then -1'; + put 'when a.newval_num=b.newval_num and a.newval_char=b.newval_char then 0'; + put 'else 1'; + put 'end as is_diff'; + put ',b.tgtvar_type length=1'; + put ',case when b.move_type=''D'' then b.newval_num'; + put 'else a.newval_num'; + put 'end as oldval_num format=best32.'; + put ',case when b.move_type=''D'' then .'; + put 'else b.newval_num'; + put 'end as newval_num format=best32.'; + put ',case when b.move_type=''D'' then b.newval_char'; + put 'else a.newval_char'; + put 'end as oldval_char length=32765'; + put ',case when b.move_type=''D'' then '''''; + put 'else b.newval_char'; + put 'end as newval_char length=32765'; + put 'from &ds4(where=(move_type=''O'')) as a'; + put 'right join &ds4(where=(move_type ne ''O'')) as b'; + put 'on a.tgtvar_nm=b.tgtvar_nm'; + put 'and a.key_hash=b.key_hash'; + put 'order by move_type, key_hash,is_pk desc, tgtvar_nm;'; + put '%if &mdebug=0 %then %do;'; + put 'proc sql;'; + put 'drop table &ds1, &ds2, &ds3, &ds4;'; + put '%end;'; + put '%mend mp_storediffs;'; + put '/** @endcond */'; + put '%macro bitemporal_dataloader('; + put 'bus_from= /* Business FROM datetime variable. Req''d on'; + put 'STAGING & BASE tables.*/'; + put ',bus_to = /* Business TO datetime variable. Req''d on'; + put 'STAGING & BASE tables. */'; + put ',bus_from_override= /* Provide a hard coded BUS_FROM datetime value.*/'; + put ',bus_to_override= /* provide a hard coded BUS_TO datetime value */'; + put ',tech_from= /* Technical FROM datetime variable. Req''d on'; + put 'BASE table only. */'; + put ',tech_to = /* Technical TO datetime variable. Req''d on BASE'; + put 'table only. */'; + put ',processed= 0'; + put ',base_lib=WORK /* Libref of the BASE table. */'; + put ',base_dsn=BASETABLE /* Name of BASE table. */'; + put ',append_lib=WORK /* Libref of the STAGING table. */'; + put ',append_dsn=APPENDTABLE'; + put ',high_date=''01JAN5999:00:00:00''dt /* High date to close out records */'; + put ',PK= name sex'; + put ',RK_UNDERLYING='; + put ',KEEPVARS= /* Provides option for removing unwanted vars from append table */'; + put ',RK_UPDATE_MAXKEYTABLE=NO /* If switching (or mix matching) with regular'; + put 'SCD2 loader then set this switch to YES to'; + put 'ensure the MAXKEYTABLE is updated with the'; + put 'current maximum RK value for the target table'; + put '*/'; + put ',CHECK_UNIQUENESS=YES /* Perform a check of the APPEND table to ensure it is'; + put 'unique on its business key */'; + put ',ETLSOURCE=demo /* supply a value ($50.) to show as ETLSOURCE in'; + put '&dclib..DATALOADS */'; + put ',LOADTYPE=BITEMPORAL'; + put ',RK_MAXKEYTABLE= mpe_maxkeyvalues'; + put ',LOG=1 /* Switch to 0 to prevent records being added to'; + put '&mpelib..mpe_DATALOADS (ie when testing)*/'; + put ',DELETE_COL= _____DELETE__THIS__RECORD_____'; + put '/* If this variable is found in the append dataset'; + put 'then records are closed out (or deleted) in the'; + put 'append table where that variable= "Yes" */'; + put ',LOADTARGET=YES /* set to anything but uppercase YES to switch off'; + put 'target table load and generate temp tables only */'; + put ',CLOSE_VARS='; + put '/*a problem with regular SCD2 or TXTEMPORAL loads is that there is'; + put 'no facility to close out removed records (all records are'; + put 'assumed new or changed). But how does one determine which'; + put 'records are removed? Short of loading the entire table'; + put 'each time? This parameter allows a set of variables'; + put '(this should be a subset of the PK) to be declared, and'; + put 'the macro will determine which records in the base table'; + put 'need to be closed out ahead of the load.'; + put 'For instance, given the following:'; + put 'Base Table Staging Table'; + put 'DATE ENTITY AMOUNT DATE ENTITY AMOUNT'; + put 'JAN ACME4 66 JAN ACME4 66'; + put 'FEB ACME4 99 FEB ACME4 99'; + put 'FEB ACME1 22'; + put 'By supplying DATE in CLOSE_VARS and DATE ENTITY as the PK,'; + put 'the "FEB PAG 22" record would get closed out.'; + put '*/'; + put ',config_table=&dclib..MPE_CONFIG'; + put ',dclib=&dc_libref'; + put ',outds_del=work.outds_del'; + put ',outds_add=work.outds_add'; + put ',outds_mod=work.outds_mod'; + put ',outds_audit=0'; + put ');'; + put '/* when changing this macro, update the version num here */'; + put '%local ver;'; + put '%let ver=32;'; + put '%put &sysmacroname entry vars:;'; + put '%put _local_;'; + put '%dc_assignlib(WRITE,&base_lib) /* may not already be assigned */'; + put '/* return straight away if nothing to load */'; + put '%let nobs= %mf_getattrn(&append_lib..&append_dsn,NLOBS);'; + put '%if &nobs=-1 %then %do;'; + put 'proc sql noprint; select count(*) into: nobs from &append_lib..&append_dsn;'; + put '%end;'; + put '%if &nobs=0 %then %do;'; + put '%put NOTE:; %put NOTE-;%put NOTE-;%put NOTE-;'; + put '%put NOTE- Base dataset &append_lib..&append_dsn is empty. Nothing to upload!;'; + put '%put NOTE-;%put NOTE-;%put NOTE-;'; + put '%return;'; + put '%end;'; + put '/* hard exit if err condition exists */'; + put '%mp_abort(iftrue= (&syscc > 0)'; + put ',mac=bitemporal_dataloader'; + put ',msg=%str(Bitemporal transform / job aborted due to SYSCC=&SYSCC status;)'; + put ')'; + put '%local engine_type;'; + put '%let engine_type=%mf_getengine(&base_lib);'; + put '%if (&engine_type=REDSHIFT or &engine_type=POSTGRES) and %length(&CLOSE_VARS)>0'; + put '%then %do;'; + put '%put NOTE:; %put NOTE-;%put NOTE-;%put NOTE-;'; + put '%put NOTE- CLOSE_VARS functionality not yet supported in &engine_type;'; + put '%put NOTE-;%put NOTE-;%put NOTE-;'; + put '%return;'; + put '%end;'; + put '/**'; + put '* The metadata functions (eg mf_existvar) will fail if the base table has a'; + put '* SAS lock. So, make a snapshot of the base table for further use.'; + put '* Also, make output tables (regardless).'; + put '*/'; + put '%local basecopy;'; + put '%let basecopy=%mf_getuniquename(prefix=basecopy);'; + put 'data &basecopy &outds_mod &outds_add &outds_del;'; + put 'set &base_lib..&base_dsn;'; + put 'stop;'; + put 'run;'; + put '%mp_abort(iftrue= (&syscc > 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after base table copy - aborting due to table lock)'; + put ')'; + put '%local cols idx_pk md5_col ;'; + put '%let md5_col=___TMP___md5;'; + put '%let check_uniqueness=%upcase(&check_uniqueness);'; + put '%let RK_UPDATE_MAXKEYTABLE=%upcase(&RK_UPDATE_MAXKEYTABLE);'; + put '%let high_date=%unquote(&high_date);'; + put '%let loadtype=%upcase(&loadtype);'; + put '/* ensure irrelevant variables are cleared */'; + put '%if &loadtype=BUSTEMPORAL %then %do;'; + put '%let tech_from=;'; + put '%let tech_to=;'; + put '%end;'; + put '%else %if &loadtype=TXTEMPORAL or &loadtype=UPDATE %then %do;'; + put '%let bus_from=;'; + put '%let bus_to=;'; + put '%end;'; + put '/* ensure relevant variables are supplied */'; + put '%mp_abort(iftrue=(&loadtype=BITEMPORAL & %mf_verifymacvars(bus_from bus_to)=0)'; + put ',mac=bitemporal_dataloader'; + put ',msg=%str(Missing BUS_FROM / BUS_TO)'; + put ')'; + put '%mp_abort(iftrue=(&loadtype=TXTEMPORAL & %mf_verifymacvars(tech_from tech_to)=0)'; + put ',mac=bitemporal_dataloader'; + put ',msg=%str(Missing TECH_FROM / TECH_TO)'; + put ')'; + put '/**'; + put '* drop any tables (may be defined as views or vice versa preventing overwrite)'; + put '*/'; + put '%mp_dropmembers(append bitemp0_append bitemp_cols)'; + put '/* SQL Server requires its own time values */'; + put '/* 9.2 will only give picture format down to seconds. 9.3 allows'; + put 'milliseconds by using lower S and defining the decimal in the format name..*/'; + put 'PROC FORMAT;'; + put 'picture MyMSdt other=''%0Y-%0m-%0dT%0H:%0M:%0S'' (datatype=datetime);'; + put 'RUN;'; + put '%local dbnow;'; + put '%let dbnow="%sysfunc(datetime(),%mf_fmtdttm())"dt;'; + put 'data _null_;'; + put '/* convert space separated macvar to comma separated for SQL processing */'; + put 'call symputx(''PK_COMMA'',tranwrd(compbl("&pk"),'' '','',''),''L'');'; + put 'call symputx(''PK_CNT'',countw("&pk",'' ''),''L'');'; + put 'now=&dbnow;'; + put 'call symputx(''NOW'',now,''L'');'; + put 'call symputx(''SQLNOW'',cats("''",put(now,MyMSdt.),"''"),''L'');'; + put 'length etlsource $100;'; + put 'etlsource=subpad(symget(''etlsource''),1,100);'; + put 'call symputx(''etlsource'',etlsource,''l'');'; + put 'run;'; + put '/**'; + put '* Even if no PROCESSED var provided, assume that any variable named'; + put '* PROCESSED_DTTM should be updated'; + put '*/'; + put '%if &processed=0 %then %do;'; + put '%if %mf_existvar(&basecopy,PROCESSED_DTTM)'; + put '%then %let processed=PROCESSED_DTTM;'; + put '%else %let processed=;'; + put '%end;'; + put '/* extract colnames for md5 creation / change tracking */'; + put 'proc contents noprint data=&base_lib..&base_dsn'; + put 'out=work.bitemp_cols (keep=name type length varnum format:);'; + put 'run;'; + put 'proc sql noprint;'; + put 'select name into: cols separated by '','''; + put 'from work.bitemp_cols'; + put 'where upcase(name) not in'; + put '(%upcase("&bus_from","&bus_to"'; + put ',"&tech_from","&tech_to"'; + put ',"&processed","&delete_col")) ;'; + put 'select case when type in (2,6) then cats(''put(md5(trim('',name,'')),$hex32.)'')'; + put '/* multiply by 1 to strip precision errors (eg 0 != 0) */'; + put '/* but ONLY if not missing, else will lose any special missing values */'; + put 'else cats(''put(md5(trim(put(ifn(missing('''; + put ',name,''),'',name,'','',name,''*1),binary64.))),$hex32.)'') end'; + put 'into: stripcols separated by ''||'''; + put 'from work.bitemp_cols'; + put 'where upcase(name) not in'; + put '(%upcase("&bus_from","&bus_to"'; + put ',"&tech_from","&tech_to"'; + put ',"&processed","&delete_col")) ;'; + put '/* set default formats*/'; + put '%let bus_from_fmt = datetime19.;'; + put '%let bus_to_fmt = datetime19.;'; + put '%let processed_fmt = datetime19.;'; + put '%let tech_from_fmt = format=datetime19.;'; + put '%let tech_to_fmt = format=datetime19.;'; + put '%put &=stripcols;'; + put '%put &=pk;'; + put 'data _null_;'; + put 'set work.bitemp_cols;'; + put 'if type=2 or type=6 then do;'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'if format='''' then fmt=cats(length,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put 'if upcase(name)="%upcase(&bus_from)" then'; + put 'call symputx(''bus_from_fmt'',fmt,''L'');'; + put 'else if upcase(name)="%upcase(&bus_to)" then'; + put 'call symputx(''bus_to_fmt'',fmt,''L'');'; + put 'else if upcase(name)="%upcase(&tech_from)" then'; + put 'call symputx(''tech_from_fmt'',"format="!!fmt,''L'');'; + put 'else if upcase(name)="%upcase(&tech_to)" then'; + put 'call symputx(''tech_to_fmt'',"format="!!fmt,''L'');'; + put 'else if upcase(name)="%upcase(&processed)" then'; + put 'call symputx(''processed_fmt'',fmt,''L'');'; + put 'run;'; + put '%if %index(%quote(&cols),___TMP___) %then %do;'; + put '%let msg=%str(Table contains a variable name containing "___TMP___".%trim('; + put ') This may conflict with temp variable generation!!);'; + put '%mp_abort(msg=&msg,mac=bitemporal_dataloader);'; + put '%let syscc=5;'; + put '%return;'; + put '%end;'; + put '/* if transaction dates appear on the APPEND table, need to remove them */'; + put '%local drop_tx_dates /* used in append table */'; + put 'drop_tx_dates_noobs /* used to take the base table structure */;'; + put '%if %mf_existvar(&append_lib..&append_dsn, &tech_from)'; + put '%then %let drop_tx_dates=&tech_from;'; + put '%if %mf_existvar(&append_lib..&append_dsn, &tech_to)'; + put '%then %let drop_tx_dates=&drop_tx_dates &tech_to;'; + put '%if %length(%trim(&drop_tx_dates))>0'; + put '%then %let drop_tx_dates=(drop=&drop_tx_dates);'; + put '%if %mf_existvar(&basecopy, &tech_from)'; + put '%then %let drop_tx_dates_noobs=&tech_from;'; + put '%if %mf_existvar(&basecopy, &tech_to)'; + put '%then %let drop_tx_dates_noobs=&drop_tx_dates_noobs &tech_to;'; + put '%if %length(%trim(&drop_tx_dates_noobs))>0'; + put '%then %let drop_tx_dates_noobs=(drop=&drop_tx_dates_noobs obs=0);'; + put '%else %let drop_tx_dates_noobs=(obs=0);'; + put '/**'; + put '* Lock the table. This is necessary as we are doing a two part update (first'; + put '* closing records then appending new records). It is theoretically possible'; + put '* that an upload may occur whilst preparing the staging tables. And the'; + put '* staging tables are about to be prepared..'; + put '*/'; + put '%if &LOADTARGET = YES %then %do;'; + put '%mp_lockanytable(LOCK,'; + put 'lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE,ctl_ds=&dclib..mpe_lockanytable'; + put ')'; + put '%end;'; + put '%else %do;'; + put '/* not an actual load, so avoid updating the max key table in next step. */'; + put '%let rk_update_maxkeytable=NO;'; + put '%end;'; + put '%if %length(&RK_UNDERLYING)>0 %then %do;'; + put '%mp_retainedkey('; + put 'base_lib=&base_lib'; + put ',base_dsn=&base_dsn'; + put ',append_lib=&append_lib'; + put ',append_dsn=&append_dsn'; + put ',retained_key=&pk'; + put ',business_key=&rk_underlying'; + put ',check_uniqueness=&CHECK_UNIQUENESS'; + put ',outds=work.append'; + put '%if &rk_update_maxkeytable=NO %then %do;'; + put ',maxkeytable=0'; + put '%end;'; + put '%else %do;'; + put ',maxkeytable=&dclib..&RK_MAXKEYTABLE'; + put '%end;'; + put ',locktable=&dclib..mpe_lockanytable'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then %do;'; + put ',filter_str=%str( (where=( &now < &tech_to)) )'; + put '%end;'; + put ')'; + put '%end;'; + put '%else %do;'; + put 'proc sql;'; + put 'create view work.append as select * from &append_lib..&append_dsn;'; + put '%end;'; + put '/**'; + put '* generate md5 for append table'; + put '*/'; + put '/* it is possible the source dataset has additional (unwanted) columns.'; + put 'Drop if specified; */'; + put '%if %length(&keepvars)>0 %then %do;'; + put '/* remove tech dates from keepvars as they are generated later */'; + put '%let keepvars=%sysfunc(tranwrd(%str( &keepvars ),%str( &tech_from ),%str( )));'; + put '%let keepvars=%sysfunc(tranwrd(%str( &keepvars ),%str( &tech_to ),%str( )));'; + put '%let keepvars=(keep=&keepvars &bus_from &bus_to &processed &md5_col);'; + put '%end;'; + put '/* CAS varchar types cause append issues here, so perform autoconvert'; + put 'by creating empty local table first */'; + put 'data;'; + put 'set &base_lib..&base_dsn &drop_tx_dates_noobs;'; + put 'run;'; + put '%local emptybasetable; %let emptybasetable=&syslast;'; + put 'data work.bitemp0_append &keepvars &outds_del(drop=&md5_col )'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put '/nonote2err'; + put '%end;'; + put ';'; + put '/* apply formats for bitemporal vars but not tx dates which are added later */'; + put '%if %length(&keepvars)>0 and &loadtype=BITEMPORAL %then %do;'; + put 'format &bus_from &bus_from_fmt;'; + put 'format &bus_to &bus_to_fmt;'; + put '%end;'; + put 'set &emptybasetable /* base table reqd in case append has fewer cols */'; + put 'work.append &drop_tx_dates;'; + put '%if %length(%str(&bus_from_override))>0 %then %do;'; + put '&bus_from= %unquote(&bus_from_override) ;'; + put '%end;'; + put '%if %length(%str(&bus_to_override))>0 %then %do;'; + put '&bus_to= %unquote(&bus_to_override) ;'; + put '%end;'; + put 'length &md5_col $32;'; + put '&md5_col=put(md5(&stripcols),hex32.);'; + put '%if %length(&processed)>0 %then %do;'; + put 'format &processed &processed_fmt;'; + put '&processed=&now;'; + put '%end;'; + put '/**'; + put '* If a delete column exists then create the delete dataset'; + put '*/'; + put '%if %mf_existvar(&append_lib..&append_dsn, &delete_col) %then %do;'; + put 'drop &delete_col;'; + put 'if upcase(&delete_col) = "YES" then output &outds_del ;'; + put 'else output work.bitemp0_append ;'; + put 'run;'; + put '%if %mf_getattrn(&outds_del,NLOBS)>0 %then %do;'; + put '%bitemporal_closeouts('; + put 'tech_from=&tech_from'; + put ',tech_to = &tech_to'; + put ',base_lib=&base_lib'; + put ',base_dsn=&base_dsn'; + put ',append_lib=work'; + put ',append_dsn=%scan(&outds_del,-1,.)'; + put ',PK=&bus_from &pk'; + put ',NOW=&dbnow'; + put ',loadtarget=&loadtarget'; + put ',loadtype=&loadtype'; + put ')'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put 'output work.bitemp0_append;'; + put 'run;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc gt 0 at line 494)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc)'; + put ')'; + put '%if %length(&close_vars)>0 %then %do;'; + put '/**'; + put '* need to close out records that are not provided'; + put '*/'; + put 'proc sql;'; + put 'create table bitemp1_closevars1 as'; + put 'select distinct a.%mf_getquotedstr(in_str=&pk,dlm=%str(,a.),quote=)'; + put 'from &base_lib..&base_dsn a'; + put 'inner join work.bitemp0_append b'; + put 'on 1=1'; + put '/* join on closevars key */'; + put '%do idx_pk=1 %to %sysfunc(countw(&close_vars));'; + put '%let idx_val=%scan(&close_vars,&idx_pk);'; + put 'and a.&idx_val=b.&idx_val'; + put '%end;'; + put '/* filter base on tech dates if necessary */'; + put '%if &loadtype=TXTEMPORAL %then %do;'; + put 'where a.&tech_from <=&now and &now < a.&tech_to'; + put '%end;'; + put ';'; + put 'create table bitemp1_closevars2 as'; + put 'select distinct a.*'; + put 'from bitemp1_closevars1 a'; + put 'left join work.bitemp0_append b'; + put 'on 1=1'; + put '/* join on primary key */'; + put '%do idx_pk=1 %to %sysfunc(countw(&pk));'; + put '%let idx_val=%scan(&pk,&idx_pk);'; + put 'and a.&idx_val=b.&idx_val'; + put '%end;'; + put '/* identify removed records by null value in a field in PK but not close_vars'; + put '*/'; + put 'where b.%scan('; + put '%mf_wordsInStr1ButNotStr2(Str1=&pk,Str2=&close_vars),1,%str( )'; + put ') IS NULL'; + put ';'; + put '%if %mf_getattrn(bitemp1_closevars2,NLOBS)>0 %then %do;'; + put '%bitemporal_closeouts('; + put 'tech_from=&tech_from'; + put ',tech_to = &tech_to'; + put ',base_lib=&base_lib'; + put ',base_dsn=&base_dsn'; + put ',append_lib=work'; + put ',append_dsn=bitemp1_closevars2'; + put ',PK=&bus_from &pk'; + put ',NOW=&dbnow'; + put ',loadtarget=&loadtarget'; + put ',loadtype=&loadtype'; + put ')'; + put '%end;'; + put '%end;'; + put '/* return if nothing to load (was just deletes) */'; + put '%if %mf_getattrn(work.bitemp0_append,NLOBS)=0 %then %do;'; + put '%put NOTE:; %put NOTE-;%put NOTE-;%put NOTE-;'; + put '%put NOTE- No updates - just deletes!;'; + put '%put NOTE-;%put NOTE-;%put NOTE-;'; + put '%mp_lockanytable(UNLOCK,'; + put 'lib=&base_lib,ds=&base_dsn,'; + put 'ref=&ETLSOURCE,'; + put 'ctl_ds=&dclib..mpe_lockanytable'; + put ')'; + put '%if %mf_getattrn(&outds_del,NLOBS)>0 %then %do;'; + put '%let user=%mf_getUser();'; + put '/* no emails yet'; + put '%sumo_alerts(ALERT_EVENT=UPDATE'; + put ', ALERT_TARGET=&base_lib..&base_dsn'; + put ', from_user= &user);*/'; + put '%end;'; + put '%return;'; + put '%end;'; + put '/**'; + put '* If applying manual overrides to business dates, then the input table MUST'; + put '* be unique on the PK. Check, and if not - abort.'; + put '*/'; + put '%local msg;'; + put '%if %length(&bus_from_override.&bus_to_override)>0 or &CHECK_UNIQUENESS=YES'; + put '%then %do;'; + put 'proc sort data=work.bitemp0_append out=work.bitemp0_check nodupkey;'; + put 'by &pk;'; + put 'run;'; + put '%if %mf_getattrn(work.bitemp0_check,NLOBS)'; + put 'ne %mf_getattrn(work.bitemp0_append,NLOBS)'; + put '%then %do;'; + put '%let msg=INPUT table &append_lib..&append_dsn is not unique on PK (&pk);'; + put '%mp_lockanytable(UNLOCK,lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE (&msg),'; + put 'ctl_ds=&dclib..mpe_lockanytable'; + put ')'; + put '%mp_abort(msg=&msg,mac=bitemporal_dataloader.sas);'; + put '%end;'; + put '%end;'; + put '/**'; + put '* extract from BASE table. Only want matching records, as could be very BIG.'; + put '* New records are subsequently identified via left join and test for nulls.'; + put '*/'; + put '%local temp_table temp_table2 base_table baselib_schema;'; + put '%put DCNOTE: Extracting matching observations from &base_lib..&base_dsn;'; + put '%if &engine_type=OLEDB %then %do;'; + put '%let temp_table=##BITEMP_&base_dsn;'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then'; + put '%let base_table=(select * from [dbo].&base_dsn'; + put 'where convert(datetime,&SQLNOW) < &tech_to );'; + put '%else %let base_table=[dbo].&base_dsn;'; + put 'proc sql;'; + put 'create table &base_lib.."&temp_table"n as'; + put 'select * from work.bitemp0_append;'; + put '/* open up a connection for pass through SQL */'; + put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; + put 'create table work.bitemp0_base as select * from connection to myAlias('; + put '%end;'; + put '%else %if &engine_type=REDSHIFT or &engine_type=POSTGRES %then %do;'; + put '/* grab schema */'; + put '%let baselib_schema=%mf_getschema(&base_lib);'; + put '%if &baselib_schema.X ne X %then %let baselib_schema=&baselib_schema..;'; + put '/* grab redshift config */'; + put '%local redcnt; %let redcnt=0;'; + put '%if &engine_type=REDSHIFT %then %do;'; + put 'data _null_;'; + put 'set &config_table(where=(var_scope=''DCBL_REDSH'' and var_active=1));'; + put 'x+1;'; + put 'call symputx(cats(''rednm'',x),var_value,''l'');'; + put 'call symputx(cats(''redval'',x),var_value,''l'');'; + put 'call symputx(''redcnt'',x,''l'');'; + put 'run;'; + put '%end;'; + put '/* cannot persist temp tables so must create a temporary permanent table */'; + put '%let temp_table=%mf_getuniquename(prefix=XDCTEMP);'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then'; + put '%let base_table=(select * from &baselib_schema.&base_dsn'; + put 'where timestamp &sqlnow < &tech_to );'; + put '%else %let base_table=&baselib_schema.&base_dsn;'; + put '/* make empty table first - must clone & drop extra cols as autoload is bad */'; + put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; + put 'exec (create table &temp_table (like &baselib_schema.&base_dsn)) by myAlias;'; + put '%if &engine_type=REDSHIFT %then %do;'; + put 'exec (alter table &temp_table alter sortkey none) by myAlias;'; + put '%end;'; + put '%local dropcols;'; + put '%let dropcols=%mf_wordsinstr1butnotstr2('; + put 'str1=%upcase(%mf_getvarlist(&basecopy))'; + put ',str2=%upcase(&pk)'; + put ');'; + put '%if %length(&dropcols>0) %then %do idx_pk=1 %to %sysfunc(countw(&dropcols));'; + put '%put &=dropcols;'; + put '%let idx_val=%scan(&dropcols,&idx_pk);'; + put 'exec(alter table &temp_table drop column &idx_val;) by myAlias;'; + put '%end;'; + put 'exec (alter table &temp_table add column &md5_col varchar(32);) by myAlias;'; + put '/* create view to strip formats and avoid warns in log */'; + put 'data work.vw_bitemp0/view=work.vw_bitemp0;'; + put 'set work.bitemp0_append(keep=&pk &md5_col);'; + put 'format _all_;'; + put 'run;'; + put 'proc append base=&base_lib..&temp_table'; + put '%if &engine_type=REDSHIFT %then %do;'; + put '('; + put '%do idx_pk=1 %to &redcnt;'; + put '&&rednm&idx_pk = &&redval&idxpk'; + put '%end;'; + put ')'; + put '%end;'; + put 'data=work.vw_bitemp0 force nowarn;'; + put 'run;'; + put '/* open up a connection for pass through SQL */'; + put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; + put 'create table work.bitemp0_base as select * from connection to myAlias('; + put '%end;'; + put '%else %if &engine_type=CAS %then %do;'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then'; + put '%let base_table=&base_lib..&base_dsn'; + put '(where=(&tech_from <=&now and &now < &tech_to));'; + put '%else %let base_table=&base_lib..&base_dsn;'; + put '%let temp_table=CASUSER.%mf_getuniquename(prefix=DC);'; + put 'data &temp_table;'; + put 'set work.bitemp0_append;'; + put 'run;'; + put '%let bitemp0base=CASUSER.%mf_getuniquename(prefix=DC);'; + put 'proc fedsql sessref=dcsession;'; + put 'create table &bitemp0base{options replace=true} as'; + put '%end;'; + put '%else %do;'; + put '%let temp_table=work.bitemp0_append;'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then'; + put '%let base_table=&base_lib..&base_dsn'; + put '(where=(&tech_from <=&now and &now < &tech_to));'; + put '%else %let base_table=&base_lib..&base_dsn;'; + put 'proc sql;'; + put 'create table work.bitemp0_base as'; + put '%end;'; + put 'select a.&md5_col /* this identifies NEW records */'; + put ', b.*'; + put '/* assume first PK field cannot be null (if defined in a PK constraint then'; + put 'it definitely cannot be null) */'; + put ', case when b.%scan(&pk,1) IS NULL then 1 else 0 end as ___TMP___NEW_FLG'; + put 'from &baselib_schema.&temp_table a'; + put 'left join &base_table b'; + put 'on 1=1'; + put '%do idx_pk=1 %to &pk_cnt;'; + put '%let idx_val=%scan(&pk,&idx_pk);'; + put 'and a.&idx_val=b.&idx_val'; + put '%end;'; + put '%if &engine_type=OLEDB or &engine_type=REDSHIFT or &engine_type=POSTGRES'; + put '%then %do;'; + put '); proc sql; drop table &base_lib.."&temp_table"n;'; + put '%end;'; + put '%else %if &engine_type=CAS %then %do;'; + put ';'; + put 'quit;'; + put 'data work.bitemp0_base;'; + put 'set &bitemp0base;'; + put 'run;'; + put 'proc sql;'; + put 'drop table &temp_table;'; + put 'drop table &bitemp0base;'; + put '%end;'; + put '%else %do;'; + put ';'; + put '%end;'; + put '/**'; + put '* matching & changed records are those without NULL key values'; + put '* &idx_val resolves to rightmost PK value (loop above)'; + put '*/'; + put '%put syscc (line525)=&syscc, sqlrc=&sqlrc;'; + put '%mp_abort(iftrue= (&syscc gt 0 or &sqlrc>0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc sqlrc=&sqlrc)'; + put ')'; + put '%put hashcols2=&stripcols;'; + put 'proc sql;'; + put 'create table work.bitemp1_current(drop=___TMP___NEW_FLG) as'; + put 'select *'; + put ', put(md5(&stripcols),$hex32.) as &md5_col'; + put 'from work.bitemp0_base (drop=&md5_col)'; + put 'where ___TMP___NEW_FLG=0;'; + put '/**'; + put '* NEW records were identified in ___TMP___NEW_FLG in bitemp0_base'; + put '*/'; + put 'proc sql;'; + put 'create table &outds_add'; + put '(drop=&md5_col'; + put '%if %mf_existvar(work.bitemp0_base, &delete_col) %then %do;'; + put '&delete_col'; + put '%end;'; + put ')'; + put 'as select a.*'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then %do;'; + put ',&now as &tech_from &tech_from_fmt'; + put ',&high_date as &tech_to &tech_to_fmt'; + put '%end;'; + put 'from work.bitemp0_append a /* STAGING records (mix of existing & new) */'; + put ', work.bitemp0_base b /* BASE records (contains null values for new) */'; + put 'where a.&md5_col=b.&md5_col /* took staging md5 across in left join */'; + put 'and b.___TMP___NEW_FLG=1; /* NEW records also identified in bitemp0_base */'; + put '/**'; + put '* identify INSERTS. These are records with the same business key but'; + put '* the bus_from and bus_to value are higher / lower (respectively)'; + put '* such that the existing record needs to be SPLIT to surround the new'; + put '* record.'; + put '* eg: OLD RECORD from=1 to=10'; + put '* NEW RECORD from=5 to=7'; + put '*'; + put '* APPENDED RECORDS:'; + put '* - from=1 to=5'; + put '* - from=5 to=7'; + put '* - from=7 to=10'; + put '*/'; + put '/* inserts cannot happen with TXTEMPORAL */'; + put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL %then %do;'; + put '/* IDENTIFY */'; + put 'create table work.bitemp3_inserts as'; + put 'select b.*'; + put ',a.&bus_from as ___TMP___from'; + put ',a.&bus_to as ___TMP___to'; + put 'from work.bitemp0_append a'; + put ',work.bitemp1_current b'; + put 'where a.&bus_from > b.&bus_from'; + put 'and a.&bus_to < b.&bus_to'; + put '%do idx_pk=1 %to &pk_cnt;'; + put '%let idx_val=%scan(&pk,&idx_pk);'; + put 'and a.&idx_val=b.&idx_val'; + put '%end;'; + put 'order by'; + put '/* compress blanks and then insert commas (as the datetime fields may'; + put 'not be in use) */'; + put '%sysfunc(tranwrd(%sysfunc(compbl('; + put '&pk &bus_from &bus_to &processed'; + put ')),%str( ), %str(,)))'; + put ';'; + put '/* SPLIT */'; + put 'data work.bitemp3a_inserts (drop=___TMP___from ___TMP___retain ___TMP___to) ;'; + put 'set work.bitemp3_inserts;'; + put 'by &pk &bus_from &bus_to &processed;'; + put 'if first.&idx_val then do;'; + put '___TMP___retain=&bus_to;'; + put '&bus_to=___TMP___from;'; + put 'output;'; + put '&bus_to=___TMP___retain;'; + put 'end;'; + put 'if last.&idx_val then do;'; + put '&bus_from=___TMP___to;'; + put 'output;'; + put 'end;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '/* TX temporal load */'; + put 'data work.bitemp3a_inserts;'; + put 'set work.bitemp1_current;'; + put 'stop;'; + put 'run;'; + put '%end;'; + put '/* APPEND */'; + put 'proc sql;'; + put 'create view work.bitemp3a_view as'; + put 'select * from work.bitemp1_current'; + put 'where &md5_col not in (select &md5_col from work.bitemp3a_inserts);'; + put 'data bitemp3b_newbase;'; + put 'set work.bitemp3a_inserts work.bitemp3a_view;'; + put 'run;'; + put '/** do not use! this converts short numerics into 8 bytes'; + put 'proc sql;'; + put 'create table work.bitemp3b_newbase as'; + put 'select * from work.bitemp3a_inserts'; + put 'union corr'; + put 'select * from work.bitemp1_current'; + put 'where &md5_col not in (select &md5_col from work.bitemp3a_inserts);'; + put '*/'; + put '/**'; + put '* identify CHANGED records from staging.'; + put '* Same business key with different temporal dates or md5 value'; + put '* This table must be overlayed onto / into existing business history'; + put '*/'; + put 'proc sql;'; + put 'create table work.bitemp4_updated as select distinct a.*'; + put 'from work.bitemp0_append a'; + put ',work.bitemp3b_newbase b'; + put 'where 1=1'; + put '%do idx_pk=1 %to &pk_cnt;'; + put '%let idx_val=%scan(&pk,&idx_pk);'; + put 'and a.&idx_val=b.&idx_val'; + put '%end;'; + put 'and ( a.&md5_col ne b.&md5_col'; + put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL %then %do;'; + put 'OR (a.&bus_from ne b.&bus_from or a.&bus_to ne b.&bus_to)'; + put '%end;'; + put ')'; + put ';'; + put '/**'; + put '* This section would have been one simple step with union all'; + put '* but that converts short numerics into 8 bytes!'; + put '* so, convoluted alternative to retain the same functionality.'; + put '*/'; + put '/* base records */'; + put 'create view work.bitemp4_prep1 as'; + put 'select ''BASE'' as ___TMP___'; + put ',b.*'; + put 'from work.bitemp4_updated a'; + put ',work.bitemp3b_newbase b'; + put 'where 1'; + put '%do idx_pk=1 %to &pk_cnt;'; + put '%let idx_val=%scan(&pk,&idx_pk);'; + put 'and a.&idx_val=b.&idx_val'; + put '%end;'; + put ';'; + put '/* updated records */'; + put 'create view work.bitemp4_prep2 as'; + put 'select ''STAG'' as ___TMP___ ,*'; + put 'from work.bitemp4_updated;'; + put '/* ensure we only keep columns that appear in both */'; + put '%local bp1 bp2 bp3 bp4;'; + put '%let bp1=%mf_getvarlist(bitemp4_prep1);'; + put '%let bp2=%mf_getvarlist(bitemp4_prep2);'; + put '%let bp3=%mf_wordsInStr1ButNotStr2(Str1=&bp1,Str2=&bp2);'; + put '%let bp4=%mf_wordsInStr1ButNotStr2(Str1=&bp2,Str2=&bp1);'; + put 'data work.bitemp4_prep3/view=bitemp4_prep3;'; + put 'set bitemp4_prep1 bitemp4_prep2;'; + put '%if %length(XX&bp3&bp4)>2 %then %do;'; + put 'drop &bp3 &bp4 ;'; + put '%end;'; + put 'run;'; + put '/* remove duplicates */'; + put 'proc sql;'; + put 'create table work.bitemp4a_allrecs as'; + put 'select distinct *'; + put 'from work.bitemp4_prep3'; + put 'order by'; + put '/* compress blanks and then insert commas (as the datetime fields'; + put 'may not be in use) */'; + put '%sysfunc(tranwrd(%sysfunc(compbl('; + put '&pk &bus_from &bus_to &processed'; + put ')),%str( ), %str(,)))'; + put ';'; + put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL %then %do;'; + put '/* this section aligns the business dates'; + put '(eg for inserts or overlaps in the range) */'; + put 'data work.bitemp4b_firstpass (drop=___TMP___cond ___TMP___from ___TMP___to );'; + put 'set work.bitemp4a_allrecs;'; + put 'by &pk &bus_from &bus_to &processed;'; + put 'retain ___TMP___cond ''Name of Condition'';'; + put 'retain ___TMP___from ___TMP___to 0;'; + put '___TMP___md5lag=lag(&md5_col);'; + put '/* reset retained variables */'; + put 'if first.&idx_val then do;'; + put 'call missing (___TMP___cond, ___TMP___from, ___TMP___to,___TMP___md5lag);'; + put 'end;'; + put 'else do;'; + put '/* if record is identical, carry forward bus_from (and bus_to if higher)*/'; + put 'if &md5_col=___TMP___md5lag then do;'; + put '&bus_from=___TMP___from;'; + put 'if &bus_to<___TMP___to then &bus_to=___TMP___to;'; + put 'end;'; + put 'end;'; + put 'if ___TMP___=''STAG'' then do;'; + put '/* need to carry forward the closing record */'; + put '___TMP___cond=''Condition 1'';'; + put 'end;'; + put 'else if ___TMP___cond=''Condition 1'' then do;'; + put '/* else ensure bus_from starts from prior record bus_to */'; + put 'if &md5_col ne ___TMP___md5lag and &bus_from <= ___TMP___to'; + put 'then &bus_from= ___TMP___to;'; + put '/* new record may replace old record entirely */'; + put 'if &bus_to <= &bus_from then delete;'; + put 'else call missing (___TMP___cond, ___TMP___from, ___TMP___to);'; + put 'end;'; + put '___TMP___from=&bus_from;'; + put '___TMP___to=&bus_to;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '/* keep staged records only */'; + put 'data work.bitemp4b_firstpass;'; + put 'set work.bitemp4a_allrecs;'; + put 'if ___TMP___=''STAG'';'; + put 'run;'; + put '%end;'; + put '/* next phase is to pass through in reverse - so set up the sort statement */'; + put '%local byvar;'; + put '%do idx_pk=1 %to &pk_cnt;'; + put '%let byvar=&byvar descending %scan(&pk,&idx_pk);'; + put '%end;'; + put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL'; + put '%then %let byvar=&byvar descending &bus_from descending &bus_to;'; + put '/* if matching bus dates supplied, need to ensure we also have a sort'; + put 'between BASE and STAGING tables */'; + put '%let byvar=&byvar descending ___TMP___;'; + put 'proc sort data=work.bitemp4b_firstpass out=work.bitemp4c_sort ;'; + put 'by &byvar;'; + put 'run;'; + put '/**'; + put '* Now (in reverse) pass back business start dates'; + put '*/'; + put 'data work.bitemp4d_secondpass;'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then %do;'; + put '&tech_from=&now;'; + put '&tech_to=&high_date;'; + put '%end;'; + put 'set work.bitemp4c_sort ;'; + put 'by &byvar;'; + put 'retain ___TMP___cond ''Name of Condition'';'; + put 'retain ___TMP___from ___TMP___to 0;'; + put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL %then %do;'; + put '/* put / _all_ /;*/'; + put '___TMP___md5lag=lag(&md5_col);'; + put 'if first.&idx_val then do;'; + put '/* reset retained variables */'; + put 'call missing (___TMP___cond,___TMP___from,___TMP___to,___TMP___md5lag);'; + put 'end;'; + put 'else do;'; + put '/* if record is identical, carry back bus_to */'; + put 'if &md5_col=___TMP___md5lag then &bus_to=___TMP___to;'; + put 'end;'; + put 'if ___TMP___=''STAG'' then do;'; + put '/* need to carry forward the closing record */'; + put '___TMP___cond=''Condition 2'';'; + put 'end;'; + put 'else if ___TMP___cond=''Condition 2'' then do;'; + put '/* else ensure bus_to stops at subsequent record bus_from */'; + put 'if &md5_col ne ___TMP___md5lag and &bus_to >= ___TMP___from'; + put 'then &bus_to= ___TMP___from;'; + put '/* new record may replace old record entirely */'; + put 'if &bus_from >= &bus_to then delete;'; + put 'if &bus_from=___TMP___from and &bus_to=___TMP___to then delete;'; + put 'else call missing (___TMP___cond, ___TMP___from, ___TMP___to);'; + put 'end;'; + put '___TMP___from=&bus_from;'; + put '___TMP___to=&bus_to;'; + put '%end;'; + put 'run;'; + put '%put syscc (line600)=&syscc;'; + put '/**'; + put 'There may still be some records (eg old business history) which have not'; + put 'changed.'; + put 'Need to identify these and remove from the append so they are not updated'; + put 'unnecessarily. This is done by generating a new md5 (which INCLUDES the'; + put 'business key) and any matching / identical records are split out (from those'; + put 'that need to be updated).'; + put '*/'; + put '%if &loadtype=BITEMPORAL %then %do;'; + put '%let cat_string=catx(''|'' ,&bus_from,&bus_to);'; + put 'data bitemp5a_lkp (keep=&md5_col);'; + put 'set bitemp0_base;'; + put '/* for BITEMPORAL we need to compare business dates also */'; + put '&md5_col=put(md5(&cat_string!!''|''!!&stripcols),$hex32.);'; + put 'run;'; + put 'data bitemp5b_updates;'; + put 'set bitemp4d_secondpass;'; + put 'if _n_=1 then do;'; + put 'dcl hash md5_lkp(dataset:''bitemp5a_lkp'');'; + put 'md5_lkp.definekey("&md5_col");'; + put 'md5_lkp.definedone();'; + put 'end;'; + put '/* drop old md5 col as will rebuild with new business dates */'; + put '&md5_col=put(md5(&cat_string!!''|''!!&stripcols),$hex32.) ;'; + put 'if md5_lkp.check()=0 then delete;'; + put 'run;'; + put 'proc sql;'; + put '/* get min bus from as will update (close out) all records from this point'; + put '(for that PK)*/'; + put 'create table work.bitemp5d_subquery as'; + put 'select &pk_comma, min(&bus_from)as &bus_from, max(&bus_to) as &bus_to'; + put 'from work.bitemp5b_updates'; + put 'group by &pk_comma;'; + put '/* index has a huge efficiency impact on upcoming nested subquery */'; + put 'create index index1 on work.bitemp5d_subquery(&pk_comma,&bus_from, &bus_to);'; + put '%let lastds=work.bitemp5b_updates;'; + put '%end;'; + put '%else %if &loadtype=TXTEMPORAL or &loadtype=UPDATE %then %do;'; + put 'proc sql;'; + put 'create table work.bitemp5d_subquery as'; + put 'select distinct &pk_comma'; + put 'from bitemp4d_secondpass;'; + put '%let lastds=work.bitemp4d_secondpass;'; + put '%end;'; + put '%else %let lastds=work.bitemp4d_secondpass;'; + put '/* create single append table (an overlapped pre-sert may be classed as'; + put 'both an update AND a new record). Also create temp views that may be'; + put 'used for pre-load analysis. */'; + put 'data &outds_mod;'; + put 'set &lastds(drop=___TMP___: &md5_col);'; + put 'run;'; + put 'data bitemp6_allrecs / view=bitemp6_allrecs;'; + put 'set &outds_mod /* UPDATED records */'; + put '&outds_add /* NEW records */;'; + put 'run;'; + put 'proc sort data=work.bitemp6_allrecs'; + put 'out=work.bitemp6_unique'; + put 'noduprec'; + put 'dupout=work.xx_BADBADBAD;'; + put 'by _all_;'; + put 'run;'; + put '/* we have all our temp tables now so exit if this is all that is needed */'; + put '%if &LOADTARGET ne YES %then %return;'; + put '/* also exit if an err condition exists */'; + put '%put syscc=&syscc;'; + put '%if &syscc>0 %then %do;'; + put '%let msg=Bitemporal transform / job aborted due to SYSCC=&SYSCC status;'; + put '%mp_lockanytable(UNLOCK,lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE (&msg),'; + put 'ctl_ds=&dclib..mpe_lockanytable'; + put ')'; + put '%mp_abort(msg=&msg);'; + put '%end;'; + put '/* final check - abort if a lock has appeared on the target table */'; + put '%mp_lockfilecheck(libds=&base_lib..&base_dsn)'; + put '/**'; + put '* STAGING TABLES PREPARED, ERR CONDITION TESTED FOR.. NOW TO LOAD!!'; + put '*/'; + put '/**'; + put '* First, CLOSE OUT changed records (if not a REPLACE)'; + put '* Note that SAS does not support ANSI standard for UPDATE with a join condition.'; + put '* However - this can be worked around using a nested subquery..'; + put '*/'; + put 'data _null_;'; + put 'putlog "&sysmacroname: CLOSEOUTS commencing";'; + put 'run;'; + put '%if %mf_getattrn(&lastds,NLOBS)=0 %then %do;'; + put 'data _null_;'; + put 'putlog "&sysmacroname: No closeouts needed";'; + put 'run;'; + put '%end;'; + put '%else %if &engine_type=CAS %then %do;'; + put '%mp_abort(iftrue= (&loadtype=BITEMPORAL or &loadtype=TXTEMPORAL)'; + put ',mac=&sysmacroname in &_program'; + put ',msg=%str(&loadtype not yet supported in CAS engine)'; + put ')'; + put '/* create temp table for deletions */'; + put '%local delds;%let delds=%mf_getuniquename(prefix=DC);'; + put 'data casuser.&delds;'; + put 'set work.bitemp5d_subquery;'; + put 'run;'; + put '/* delete the records */'; + put 'proc cas ;'; + put 'table.deleteRows / table={'; + put 'caslib="&base_lib",'; + put 'name="&base_dsn",'; + put 'where="1=1",'; + put 'whereTable={caslib=''CASUSER'',name="&delds"}'; + put '};'; + put 'quit;'; + put '/* drop temp table */'; + put 'proc sql;'; + put 'drop table CASUSER.&delds;'; + put '%end;'; + put '%else %if (&loadtype=BITEMPORAL or &loadtype=TXTEMPORAL or &loadtype=UPDATE)'; + put '%then %do;'; + put 'data _null_;'; + put 'putlog "&sysmacroname: &loadtype operation using &engine_type engine";'; + put 'run;'; + put '%local flexinow;'; + put 'proc sql;'; + put '/* if OLEDB then create a temp table for efficiency */'; + put '%local innertable;'; + put '%if &engine_type=OLEDB %then %do;'; + put '%let innertable=[##BITEMP_&base_dsn];'; + put '%let top_table=[dbo].&base_dsn;'; + put '%let flexinow=&SQLNOW;'; + put 'create table &base_lib.."##BITEMP_&base_dsn"n as'; + put 'select * from work.bitemp5d_subquery;'; + put '/* open up a connection for pass through SQL */'; + put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; + put 'execute('; + put '%end;'; + put '%else %if &engine_type=REDSHIFT or &engine_type=POSTGRES %then %do;'; + put '%let innertable=%mf_getuniquename(prefix=XDCTEMP);'; + put '%let top_table=&baselib_schema.&base_dsn;'; + put '%let flexinow=timestamp &SQLNOW;'; + put '/* make empty table first - must clone & drop extra cols'; + put 'as autoload is bad */'; + put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; + put 'exec (create table &innertable (like &baselib_schema.&base_dsn)) by myAlias;'; + put '%if &engine_type=REDSHIFT %then %do;'; + put 'exec (alter table &innertable alter sortkey none) by myAlias;'; + put '%end;'; + put '%let dropcols=%mf_wordsinstr1butnotstr2('; + put 'str1=%upcase(%mf_getvarlist(&basecopy))'; + put ',str2=%upcase(%mf_getvarlist(work.bitemp5d_subquery))'; + put ');'; + put '%if %length(&dropcols>0) %then %do idx_pk=1 %to %sysfunc(countw(&dropcols));'; + put '%put &=dropcols;'; + put '%let idx_val=%scan(&dropcols,&idx_pk);'; + put 'exec(alter table &innertable drop column &idx_val;) by myAlias;;'; + put '%end;'; + put '/* create view to strip formats and avoid warns in log */'; + put 'data work.vw_bitemp5d/view=work.vw_bitemp5d;'; + put 'set work.bitemp5d_subquery;'; + put 'format _all_;'; + put 'run;'; + put 'proc append base=&base_lib..&innertable ('; + put '%do idx_pk=1 %to &redcnt;'; + put '&&rednm&idx_pk = &&redval&idxpk'; + put '%end;'; + put ')'; + put 'data=work.vw_bitemp5d force nowarn;'; + put 'run;'; + put '/* open up a connection for pass through SQL */'; + put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; + put 'execute('; + put '%end;'; + put '%else %do;'; + put '%let innertable=bitemp5d_subquery;'; + put '%let top_table=&base_lib..&base_dsn;'; + put '%let flexinow=&now;'; + put '%end;'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then %do;'; + put 'update &top_table set &tech_to=&flexinow'; + put '%if %length(&processed)>0 %then %do;'; + put ',&processed=&flexinow'; + put '%end;'; + put 'where &tech_from <= &flexinow and &flexinow < &tech_to and'; + put '%end;'; + put '%else %if &loadtype=UPDATE %then %do;'; + put '/* changed records are deleted then re-appended when doing UPDATEs */'; + put 'delete from &top_table where'; + put '%end;'; + put '%else %do;'; + put '%put %str(ERR)OR: BUSTEMPORAL NOT YET SUPPORTED;'; + put '%let syscc=5;'; + put '%mp_lockanytable(UNLOCK,lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE,'; + put 'ctl_ds=&dclib..mpe_lockanytable'; + put ')'; + put '%goto end_of_macro;'; + put '%end;'; + put '/* perform join inside query as per'; + put 'http://stackoverflow.com/questions/24629793/update-with-a-proc-sql */'; + put 'exists( select 1 from &baselib_schema.&innertable where'; + put '/* loop PK join */'; + put '%do idx_pk=1 %to &pk_cnt;'; + put '%let idx_val=%scan(&pk,&idx_pk);'; + put '&base_dsn..&idx_val=&innertable..&idx_val and'; + put '%end;'; + put '%if &loadtype=BITEMPORAL %then %do;'; + put '&base_dsn..&bus_from >= &innertable..&bus_from'; + put 'and &base_dsn..&bus_to <= &innertable..&bus_to and'; + put '%end;'; + put '/* close the statement */'; + put '1=1);'; + put '%if &engine_type=OLEDB or &engine_type=REDSHIFT or &engine_type=POSTGRES'; + put '%then %do;'; + put ') by myAlias;'; + put 'execute (drop table &baselib_schema.&innertable) by myAlias;'; + put '%end;'; + put '%end;'; + put 'quit;'; + put 'data _null_;'; + put 'putlog "&sysmacroname: Closeout complete";'; + put 'run;'; + put '/**'; + put '* Append the new / updated records'; + put '*/'; + put '%if &engine_type=CAS %then %do;'; + put '/* get varchar variables ready for casting */'; + put '%local vcfmt vcrename vcassign vcdrop;'; + put 'data _null_;'; + put 'set work.bitemp_cols(where=(type=6)) end=last;'; + put 'length vcrename vcassign vcdrop vcfmt $32767 rancol $32;'; + put 'retain vcrename vcassign vcdrop vcfmt;'; + put 'if _n_=1 then vcrename=''(rename=('';'; + put 'rancol=resolve(''%mf_getuniquename()'');'; + put 'vcfmt=trim(vcfmt)!!''length ''!!cats(name)!!'' varchar(*);'';'; + put 'vcrename=trim(vcrename)!!'' ''!!cats(name,''='',rancol);'; + put 'vcassign=cats(vcassign,name,''='',rancol,'';'');'; + put 'vcdrop=cats(vcdrop,''drop ''!!rancol,'';'');'; + put 'if last then do;'; + put 'vcrename=cats(vcrename,''))'');'; + put 'call symputx(''vcfmt'',vcfmt);'; + put 'call symputx(''vcrename'',vcrename);'; + put 'call symputx(''vcassign'',vcassign);'; + put 'call symputx(''vcdrop'',vcdrop);'; + put 'end;'; + put 'run;'; + put '/* prepare a temp cas table with varchars casted */'; + put '%let tmp=%mf_getuniquename();'; + put 'data casuser.&tmp ;'; + put '&vcfmt'; + put 'set work.bitemp6_unique &vcrename;'; + put '&vcassign'; + put '&vcdrop'; + put 'run;'; + put '/* load the table with varchars applied*/'; + put 'data &base_lib..&base_dsn (append=yes )/sessref=dcsession ;'; + put 'set casuser.&tmp;'; + put 'run;'; + put '/* drop temp table */'; + put 'proc sql;'; + put 'drop table CASUSER.&tmp;'; + put '/* this code will not work as regular tables do not have varchars */'; + put '/*'; + put 'proc casutil;'; + put 'load data=work.bitemp6_unique'; + put 'outcaslib="&base_lib" casout="&base_dsn" append ;'; + put 'quit;'; + put '*/'; + put '%end;'; + put '%else %if &engine_type=REDSHIFT or &engine_type=POSTGRES %then %do;'; + put 'proc append base=&base_lib..&base_dsn'; + put '%if &engine_type=REDSHIFT %then %do;'; + put '('; + put '%do idx_pk=1 %to &redcnt;'; + put '&&rednm&idx_pk = &&redval&idxpk'; + put '%end;'; + put ')'; + put '%end;'; + put 'data=bitemp6_unique force nowarn;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put 'proc append base=&base_lib..&base_dsn data=bitemp6_unique force nowarn; run;'; + put '%end;'; + put '%mp_lockanytable(UNLOCK,lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE,'; + put 'ctl_ds=&dclib..mpe_lockanytable'; + put ')'; + put '/* final check on syscc */'; + put '%mp_abort(iftrue= (&syscc >4)'; + put ',mac=&_program'; + put ',msg=%str(!!Upload NOT successful!! Failed on actual update / append stage..)'; + put ')'; + put '%if &outds_audit ne 0 and &LOADTARGET=YES %then %do;'; + put 'data work.vw_outds_orig /view=work.vw_outds_orig;'; + put 'set work.bitemp0_base (drop=&md5_col);'; + put 'where ___TMP___NEW_FLG=0;'; + put 'drop ___TMP___NEW_FLG;'; + put 'run;'; + put '/* update the AUDIT table */'; + put '%if %mf_existds(&outds_audit) %then %do;'; + put 'options mprint;'; + put '%mp_storediffs(&base_lib..&base_dsn'; + put ',work.vw_outds_orig'; + put ',&pk'; + put ',delds=&outds_del'; + put ',modds=&outds_mod'; + put ',appds=&outds_add'; + put ',outds=work.mp_storediffs'; + put ',processed_dttm=&now'; + put ',loadref=%superq(etlsource)'; + put ')'; + put 'data _null_;'; + put 'set work.mp_storediffs;'; + put 'putlog load_ref= libref= dsn= key_hash= tgtvar_nm=;'; + put 'run;'; + put 'proc append base=&outds_audit data=work.mp_storediffs;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc >4)'; + put ',mac=bitemporal_dataloader'; + put ',msg=%str(Problem in audit stage (&outds_audit))'; + put ')'; + put '%let user=%mf_getUser();'; + put '/**'; + put 'Notify as appropriate EMAILS DISABLED'; + put '%sumo_alerts(ALERT_EVENT=UPDATE'; + put ', ALERT_TARGET=&base_lib..&base_dsn'; + put ', from_user= &user);'; + put '*/'; + put '/* monitor BiTemporal usage */'; + put '%if &log=1 %then %do;'; + put '%put syscc=&syscc;'; + put '/* do not perform duration calc in pass through */'; + put '%local dur;'; + put 'data _null_;'; + put 'now=symget(''now'');'; + put 'dur=%sysfunc(datetime())-&now;'; + put 'call symputx(''dur'',dur,''l'');'; + put 'run;'; + put 'proc sql;'; + put 'insert into &dclib..mpe_dataloads'; + put 'set libref=%upcase("&base_lib")'; + put ',DSN=%upcase("&base_dsn")'; + put ',ETLSOURCE="&ETLSOURCE"'; + put ',LOADTYPE="&loadtype"'; + put ',CHANGED_RECORDS=%mf_getattrn(&lastds,NLOBS)'; + put ',NEW_RECORDS=%mf_getattrn(&outds_add,NLOBS)'; + put ',DELETED_RECORDS=%mf_getattrn(&outds_del,NLOBS)'; + put ',DURATION=&dur'; + put ',MAC_VER="v&ver"'; + put ',user_nm="&user"'; + put ',PROCESSED_DTTM=&now;'; + put 'quit;'; + put '%put syscc=&syscc;'; + put '%end;'; + put '%end_of_macro:'; + put '%mend bitemporal_dataloader;'; + put '%macro mm_getlibs('; + put 'outds=work.mm_getLibs'; + put ')/*/STORE SOURCE*/;'; + put '/*'; + put 'flags:'; + put 'OMI_SUCCINCT (2048) Do not return attributes with null values.'; + put 'OMI_GET_METADATA (256) Executes a GetMetadata call for each object that'; + put 'is returned by the GetMetadataObjects method.'; + put 'OMI_ALL_SIMPLE (8) Gets all of the attributes of the requested object.'; + put '*/'; + put 'data _null_;'; + put 'flags=2048+256+8;'; + put 'call symputx(''flags'',flags,''l'');'; + put 'run;'; + put '* use a temporary fileref to hold the response;'; + put 'filename response temp;'; + put '/* get list of libraries */'; + put 'proc metadata in='; + put ''''; + put '$METAREPOSITORY'; + put 'SASLibrary'; + put ''; + put 'SAS'; + put '&flags'; + put ''; + put ''''; + put 'out=response;'; + put 'run;'; + put '/* write the response to the log for debugging */'; + put 'data _null_;'; + put 'infile response lrecl=32767;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '/* create an XML map to read the response */'; + put 'filename sxlemap temp;'; + put 'data _null_;'; + put 'file sxlemap;'; + put 'put '''';'; + put 'put '''';'; + put 'put ''//Objects/SASLibrary'';'; + put 'put ''>17'';'; + put 'put ''//Objects/SASLibrary/@Id'';'; + put 'put ''256>'';'; + put 'put ''//Objects/SASLibrary/@Name'';'; + put 'put ''8'';'; + put 'put ''//Objects/SASLibrary/@Libref'';'; + put 'put ''>12'';'; + put 'put ''//Objects/SASLibrary/@Engine'';'; + put 'put ''
'';'; + put 'run;'; + put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; + put '/* sort the response by library name */'; + put 'proc sort data=_XML_.saslibrary out=&outds;'; + put 'by libraryname;'; + put 'run;'; + put '/* clear references */'; + put 'filename sxlemap clear;'; + put 'filename response clear;'; + put 'libname _XML_ clear;'; + put '%mend mm_getlibs;'; + put '%macro dc_getlibs(outds=mm_getlibs);'; + put '/* take current repository */'; + put '%local repo repocnt x;'; + put '%let repo=%sysfunc(getoption(metarepository));'; + put '/* get list of repositories and filter */'; + put '%mm_getrepos(outds=repos)'; + put '%let repocnt=0;'; + put 'data repos;'; + put 'set repos;'; + put 'where repositorytype in(''CUSTOM'',''FOUNDATION'')'; + put '& upcase(name) ne "%upcase(&repo)";'; + put 'keep id name ;'; + put 'call symputx(''repo''!!cats(_n_),name,''l'');'; + put 'call symputx(''repocnt'',_n_,''l'');'; + put 'run;'; + put '%put _local_;'; + put '%mm_getlibs(outds=&outds)'; + put '%do x=1 %to &repocnt;'; + put 'options metarepository=&&repo&x;'; + put '%mm_getlibs(outds=&outds.a)'; + put 'proc append base=&outds data=&outds.a;'; + put 'run;'; + put '%end;'; + put 'options metarepository=&repo;'; + put '%mend dc_getlibs;'; + put '%macro mpe_refreshlibs();'; + put '%dc_getlibs(outds=work.mm_getLibs)'; + put 'proc sort data=mm_getlibs;'; + put 'by libraryref libraryname;'; + put 'run;'; + put 'data libs0;'; + put 'set mm_getlibs;'; + put 'by libraryref;'; + put 'if "%mf_getplatform()"="SASMETA" then do;'; + put '/* note - invalid libraries can result in exception errors. If this happens,'; + put 'configure the dc_viewlib_check variable to NO in Data Controller Settings */'; + put 'rc=libname(libraryref,,''meta'',cats(''library="'',libraryname,''";''));'; + put 'drop rc;'; + put 'if rc ne 0 then do;'; + put 'putlog "NOTE: Library " libraryname " does not exist!!";'; + put 'putlog (_all_) (=);'; + put 'delete;'; + put 'end;'; + put 'end;'; + put 'if not first.libraryref then delete;'; + put 'run;'; + put 'proc sql;'; + put 'create table libs1 as'; + put 'select distinct libname'; + put ',engine'; + put ',path'; + put ',level'; + put ',sysname'; + put ',sysvalue'; + put 'from dictionary.libnames'; + put 'order by libname, level,engine,path;'; + put 'data libs2;'; + put 'set libs1;'; + put 'length tran $1024;'; + put 'if missing(sysname) then sysname=''Missing'';'; + put 'select(sysname);'; + put 'when(''Access Permission'') tran=''Permissions'';'; + put 'when(''Owner Name'') tran=''Owner'';'; + put 'when(''Schema/Owner'') tran=''schema'';'; + put 'otherwise tran=sysname;'; + put 'end;'; + put 'run;'; + put 'proc transpose data=libs2 out=libs3;'; + put 'by libname level engine path;'; + put 'var sysvalue;'; + put 'id tran;'; + put 'run;'; + put 'data libs4(rename=(libname=libref));'; + put 'length paths $8192 perms owners schemas $500 permissions owner schema $1024;'; + put 'if _n_=1 then call missing (of _all_);'; + put 'set libs3;'; + put 'by libname;'; + put 'if engine=''V9'' then engine=''BASE'';'; + put 'if first.libname then do;'; + put 'retain paths perms owners schemas;'; + put 'paths=''(''!!quote(trim(path));'; + put 'perms=permissions;'; + put 'owners=owner;'; + put 'schemas=schema;'; + put 'end;'; + put 'else do;'; + put 'paths=trim(paths)!!'' ''!!quote(trim(path));'; + put 'perms=trim(perms)!!'',''!!trim(permissions);'; + put 'owners=trim(owners)!!'',''!!trim(owner);'; + put 'schemas=trim(schemas)!!'' ''!!trim(schema);'; + put 'end;'; + put 'if last.libname then do;'; + put 'paths=trim(paths)!!'')'';'; + put 'schemas=cats(schemas);'; + put 'output;'; + put 'end;'; + put 'keep libname engine paths perms owners schemas;'; + put 'run;'; + put 'proc sql;'; + put 'create table libs5 as'; + put 'select a.libref'; + put ',coalescec(b.engine,a.engine) as engine length=32'; + put ',b.libraryname as libname'; + put ',a.paths'; + put ',a.perms'; + put ',a.owners'; + put ',a.schemas'; + put ',b.libraryid as libid'; + put 'from libs4 a'; + put 'left join libs0 b'; + put 'on upcase(a.libref)=upcase(b.libraryref)'; + put 'where libref not in (''SASWORK'',''WORK'',''SASUSER'',''CASUSER'',''TEMP'',''STPSAMP'''; + put ',''MAPSGFK'');'; + put '%bitemporal_dataloader(base_lib=&dc_libref'; + put ',base_dsn=MPE_DATACATALOG_LIBS'; + put ',append_dsn=libs5'; + put ',PK=LIBREF'; + put ',etlsource=&_program'; + put ',loadtype=TXTEMPORAL'; + put ',tech_from=TX_FROM'; + put ',tech_to=TX_TO'; + put ',dclib=&dc_libref'; + put ')'; + put '%mend mpe_refreshlibs;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file refreshlibs.sas'; + put '@brief Refreshes the library data catalog'; + put '@details'; + put '

SAS Macros

'; + put '@li mpeinit.sas'; + put '@li mpe_refreshlibs.sas'; + put '@version 9.3'; + put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; + put 'downloaded from here: https://4gl.uk/dcdeploy'; + put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; + put 'and may not be re-distributed or re-sold without the express permission of'; + put '4GL Apps Ltd.'; + put '**/'; + put '%mpeinit()'; + put '%mpe_refreshlibs()'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=refreshtablelineage; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Files

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as FMTCAT,'; + put 'FMTNAME'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'LENGTH num'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.length as MAXW'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put ')))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] workobs= (0) When set to a positive integer, will create a new'; + put 'output object (WORK) which contains this number of observations from all'; + put 'tables in the WORK library.'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX,workobs=0'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&workobs) > 0 %then %do;'; + put '/* if debug mode, send back first XX records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10'; + put ',maxobs=&workobs'; + put ')'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '%macro mm_assignlib('; + put 'libref'; + put ',mAbort=HARD'; + put ')/*/STORE SOURCE*/;'; + put '%local mp_abort msg;'; + put '%let mp_abort=0;'; + put '%if %sysfunc(libref(&libref)) %then %do;'; + put 'data _null_;'; + put 'length liburi LibName msg $200;'; + put 'call missing(of _all_);'; + put 'nobj=metadata_getnobj("omsobj:SASLibrary?@Libref=''&libref''",1,liburi);'; + put 'if nobj=1 then do;'; + put 'rc=metadata_getattr(liburi,"Name",LibName);'; + put '/* now try and assign it */'; + put 'if libname("&libref",,''meta'',cats(''liburi="'',liburi,''";'')) ne 0 then do;'; + put 'putlog "&libref could not be assigned";'; + put 'putlog liburi=;'; + put '/**'; + put '* Fetch the system message for display in the abort modal. This is'; + put '* not always helpful though. One example, previously received:'; + put '* NOTE: Libref XX refers to the same library metadata as libref XX.'; + put '*/'; + put 'msg=sysmsg();'; + put 'if msg=:''ERROR: Libref SAVE is not assigned.'' then do;'; + put 'msg=catx(" ",'; + put '"Could not assign %upcase(&libref).",'; + put '"Please check metadata permissions! Libname:",libname,'; + put '"Liburi:",liburi'; + put ');'; + put 'end;'; + put 'else if msg="ERROR: User does not have appropriate authorization "!!'; + put '"level for library SAVE."'; + put 'then do;'; + put 'msg=catx(" ",'; + put '"ERROR: User does not have appropriate authorization level",'; + put '"for library %upcase(&libref), libname:",libname,'; + put '"Liburi:",liburi'; + put ');'; + put 'end;'; + put 'call symputx(''msg'',msg,''l'');'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1,''l'');'; + put 'end;'; + put 'else do;'; + put 'put (_all_)(=);'; + put 'call symputx(''libname'',libname,''L'');'; + put 'call symputx(''liburi'',liburi,''L'');'; + put 'end;'; + put 'end;'; + put 'else if nobj>1 then do;'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; + put 'call symputx(''msg'',"More than one library with libref=&libref");'; + put 'end;'; + put 'else do;'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; + put 'call symputx(''msg'',"Library &libref not found in metadata");'; + put 'end;'; + put 'run;'; + put '%put NOTE: &msg;'; + put '%end;'; + put '%else %do;'; + put '%put NOTE: Library &libref is already assigned;'; + put '%end;'; + put '%mp_abort(iftrue= (&mp_abort=1)'; + put ',mac=mm_assignlib.sas'; + put ',msg=%superq(msg)'; + put ')'; + put '%mend mm_assignlib;'; + put '/** @cond */'; + put '%macro mf_getengine(libref'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid engnum rc engine;'; + put '/* in case the parameter is a libref.tablename, pull off just the libref */'; + put '%let libref = %upcase(%scan(&libref, 1, %str(.)));'; + put '%let dsid=%sysfunc('; + put 'open(sashelp.vlibnam(where=(libname="%upcase(&libref)")),i)'; + put ');'; + put '%if (&dsid ^= 0) %then %do;'; + put '%let engnum=%sysfunc(varnum(&dsid,ENGINE));'; + put '%let rc=%sysfunc(fetch(&dsid));'; + put '%let engine=%sysfunc(getvarc(&dsid,&engnum));'; + put '%put &libref. ENGINE is &engine.;'; + put '%let rc= %sysfunc(close(&dsid));'; + put '%end;'; + put '%upcase(&engine)'; + put '%mend mf_getengine;'; + put '/** @endcond */'; + put '%macro mm_assigndirectlib('; + put 'libref /* libref to assign from metadata */'; + put ',open_passthrough= /* provide an alias to produce the'; + put 'CONNECT TO statement for the'; + put 'relevant external database */'; + put ',sql_options= /* add any options to add to proc sql statement eg outobs='; + put '(only valid for pass through) */'; + put ',mDebug=0'; + put ',mAbort=0'; + put ')/*/STORE SOURCE*/;'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing mm_assigndirectlib.sas;'; + put '%&mD.put _local_;'; + put '%if &mAbort=1 %then %let mAbort=;'; + put '%else %let mAbort=%str(*);'; + put '%&mD.put NOTE: Creating direct (non META) connection to &libref library;'; + put '%local cur_engine;'; + put '%let cur_engine=%mf_getengine(&libref);'; + put '%if &cur_engine ne META and &cur_engine ne %then %do;'; + put '%put NOTE: &libref already has a direct (&cur_engine) libname connection;'; + put '%return;'; + put '%end;'; + put '%else %if %upcase(&libref)=WORK %then %do;'; + put '%put NOTE: We already have a direct connection to WORK :-) ;'; + put '%return;'; + put '%end;'; + put '/* need to determine the library ENGINE first */'; + put '%local engine;'; + put 'data _null_;'; + put 'length lib_uri engine $256;'; + put 'call missing (of _all_);'; + put '/* get URI for the particular library */'; + put 'rc1=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put '/* get the Engine attribute of the previous object */'; + put 'rc2=metadata_getattr(lib_uri,''Engine'',engine);'; + put 'putlog "mm_assigndirectlib for &libref:" rc1= lib_uri= rc2= engine=;'; + put 'call symputx("liburi",lib_uri,''l'');'; + put 'call symputx("engine",engine,''l'');'; + put 'run;'; + put '/* now obtain engine specific connection details */'; + put '%if &engine=BASE %then %do;'; + put '%&mD.put NOTE: Retrieving BASE library path;'; + put 'data _null_;'; + put 'length up_uri $256 path cat_path $1024;'; + put 'retain cat_path;'; + put 'call missing (of _all_);'; + put '/* get all the filepaths of the UsingPackages association */'; + put 'i=1;'; + put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; + put 'do while (rc3>0);'; + put '/* get the DirectoryName attribute of the previous object */'; + put 'rc4=metadata_getattr(up_uri,''DirectoryName'',path);'; + put 'if i=1 then path = ''("''!!trim(path)!!''" '';'; + put 'else path ='' "''!!trim(path)!!''" '';'; + put 'cat_path = trim(cat_path) !! " " !! trim(path) ;'; + put 'i+1;'; + put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; + put 'end;'; + put 'cat_path = trim(cat_path) !! ")";'; + put '&mD.putlog "NOTE: Getting physical path for &libref library";'; + put '&mD.putlog rc3= up_uri= rc4= cat_path= path=;'; + put '&mD.putlog "NOTE: Libname cmd will be:";'; + put '&mD.putlog "libname &libref" cat_path;'; + put 'call symputx("filepath",cat_path,''l'');'; + put 'run;'; + put '%if %sysevalf(&sysver<9.4) %then %do;'; + put 'libname &libref &filepath;'; + put '%end;'; + put '%else %do;'; + put '/* apply the new filelocks option to cater for temporary locks */'; + put 'libname &libref &filepath filelockwait=5;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=REMOTE %then %do;'; + put 'data x;'; + put 'length rcCon rcProp rc k 3 uriCon uriProp PropertyValue PropertyName'; + put 'Delimiter $256 properties $2048;'; + put 'retain properties;'; + put 'rcCon = metadata_getnasn("&liburi", "LibraryConnection", 1, uriCon);'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", 1, uriProp);'; + put 'k = 1;'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; + put 'do while (rcProp > 0);'; + put 'rc = metadata_getattr(uriProp , "DefaultValue",PropertyValue);'; + put 'rc = metadata_getattr(uriProp , "PropertyName",PropertyName);'; + put 'rc = metadata_getattr(uriProp , "Delimiter",Delimiter);'; + put 'properties = trim(properties) !! " " !! trim(PropertyName)'; + put '!! trim(Delimiter) !! trim(PropertyValue);'; + put 'output;'; + put 'k+1;'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; + put 'end;'; + put '%&mD.put NOTE: Getting properties for REMOTE SHARE &libref library;'; + put '&mD.put _all_;'; + put '%&mD.put NOTE: Libname cmd will be:;'; + put '%&mD.put libname &libref &engine &properties slibref=&libref;'; + put 'call symputx ("properties",trim(properties),''l'');'; + put 'run;'; + put 'libname &libref &engine &properties slibref=&libref;'; + put '%end;'; + put '%else %if &engine=OLEDB %then %do;'; + put '%&mD.put NOTE: Retrieving OLEDB connection details;'; + put 'data _null_;'; + put 'length domain datasource provider properties schema'; + put 'connx_uri domain_uri conprop_uri lib_uri schema_uri value $256.;'; + put 'call missing (of _all_);'; + put '/* get source connection ID */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; + put '/* get connection domain */'; + put 'rc1=metadata_getnasn(connx_uri,''Domain'',1,domain_uri);'; + put 'rc2=metadata_getattr(domain_uri,''Name'',domain);'; + put '&mD.putlog / ''NOTE: '' // ''NOTE- connection id: '' connx_uri ;'; + put '&mD.putlog ''NOTE- domain: '' domain;'; + put '/* get DSN and PROVIDER from connection properties */'; + put 'i=0;'; + put 'do until (rc<0);'; + put 'i+1;'; + put 'rc=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; + put 'rc2=metadata_getattr(conprop_uri,''Name'',value);'; + put 'if value=''Connection.OLE.Property.DATASOURCE.Name.xmlKey.txt'' then do;'; + put 'rc3=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; + put 'end;'; + put 'else if value=''Connection.OLE.Property.PROVIDER.Name.xmlKey.txt'' then do;'; + put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',provider);'; + put 'end;'; + put 'else if value=''Connection.OLE.Property.PROPERTIES.Name.xmlKey.txt'' then'; + put 'do;'; + put 'rc5=metadata_getattr(conprop_uri,''DefaultValue'',properties);'; + put 'end;'; + put 'end;'; + put '&mD.putlog ''NOTE- dsn/provider/properties: '' /'; + put 'datasource provider properties;'; + put '&mD.putlog ''NOTE- schema: '' schema // ''NOTE-'';'; + put '/* get SCHEMA */'; + put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,lib_uri);'; + put 'rc7=metadata_getattr(lib_uri,''SchemaName'',schema);'; + put 'call symputx(''SQL_domain'',domain,''l'');'; + put 'call symputx(''SQL_dsn'',datasource,''l'');'; + put 'call symputx(''SQL_provider'',provider,''l'');'; + put 'call symputx(''SQL_properties'',properties,''l'');'; + put 'call symputx(''SQL_schema'',schema,''l'');'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put 'proc sql &sql_options;'; + put 'connect to OLEDB as &open_passthrough(INSERT_SQL=YES'; + put '/* need additional properties to make this work */'; + put 'properties=(''Integrated Security''=SSPI'; + put '''Persist Security Info''=True'; + put '%sysfunc(compress(%str(&SQL_properties),%str(())))'; + put ')'; + put 'DATASOURCE=&sql_dsn PROMPT=NO'; + put 'PROVIDER=&sql_provider SCHEMA=&sql_schema CONNECTION = GLOBAL);'; + put '%end;'; + put '%else %do;'; + put 'LIBNAME &libref OLEDB PROPERTIES=&sql_properties'; + put 'DATASOURCE=&sql_dsn PROVIDER=&sql_provider SCHEMA=&sql_schema'; + put '%if %length(&sql_domain)>0 %then %do;'; + put 'authdomain="&sql_domain"'; + put '%end;'; + put 'connection=shared;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=ODBC %then %do;'; + put '&mD.%put NOTE: Retrieving ODBC connection details;'; + put 'data _null_;'; + put 'length connx_uri conprop_uri value datasource up_uri schema $256.;'; + put 'call missing (of _all_);'; + put '/* get source connection ID */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; + put '/* get connection properties */'; + put 'i=0;'; + put 'do until (rc2<0);'; + put 'i+1;'; + put 'rc2=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; + put 'rc3=metadata_getattr(conprop_uri,''Name'',value);'; + put 'if value=''Connection.ODBC.Property.DATASRC.Name.xmlKey.txt'' then do;'; + put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; + put 'rc2=-1;'; + put 'end;'; + put 'end;'; + put '/* get SCHEMA */'; + put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,up_uri);'; + put 'rc7=metadata_getattr(up_uri,''SchemaName'',schema);'; + put '&mD.put rc= connx_uri= rc2= conprop_uri= rc3= value= rc4= datasource='; + put 'rc6= up_uri= rc7= schema=;'; + put 'call symputx(''SQL_schema'',schema,''l'');'; + put 'call symputx(''SQL_dsn'',datasource,''l'');'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put 'proc sql &sql_options;'; + put 'connect to ODBC as &open_passthrough'; + put '(INSERT_SQL=YES DATASRC=&sql_dsn. CONNECTION=global);'; + put '%end;'; + put '%else %do;'; + put 'libname &libref ODBC DATASRC=&sql_dsn SCHEMA=&sql_schema;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=POSTGRES %then %do;'; + put '%put NOTE: Obtaining POSTGRES library details;'; + put 'data _null_;'; + put 'length database ignore_read_only_columns direct_exe preserve_col_names'; + put 'preserve_tab_names server schema authdomain user password'; + put 'prop name value uri urisrc $256.;'; + put 'call missing (of _all_);'; + put '/* get database value */'; + put 'prop=''Connection.DBMS.Property.DB.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,database,"");'; + put 'if database^='''' then database=''database=''!!quote(trim(database));'; + put 'call symputx(''database'',database,''l'');'; + put '/* get IGNORE_READ_ONLY_COLUMNS value */'; + put 'prop=''Library.DBMS.Property.DBIROC.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,ignore_read_only_columns,"");'; + put 'if ignore_read_only_columns^='''' then ignore_read_only_columns='; + put '''ignore_read_only_columns=''!!ignore_read_only_columns;'; + put 'call symputx(''ignore_read_only_columns'',ignore_read_only_columns,''l'');'; + put '/* get DIRECT_EXE value */'; + put 'prop=''Library.DBMS.Property.DirectExe.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,direct_exe,"");'; + put 'if direct_exe^='''' then direct_exe=''direct_exe=''!!direct_exe;'; + put 'call symputx(''direct_exe'',direct_exe,''l'');'; + put '/* get PRESERVE_COL_NAMES value */'; + put 'prop=''Library.DBMS.Property.PreserveColNames.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,preserve_col_names,"");'; + put 'if preserve_col_names^='''' then preserve_col_names='; + put '''preserve_col_names=''!!preserve_col_names;'; + put 'call symputx(''preserve_col_names'',preserve_col_names,''l'');'; + put '/* get PRESERVE_TAB_NAMES value */'; + put '/* be careful with PRESERVE_TAB_NAMES=YES - it will mean your table will'; + put 'become case sensitive!! */'; + put 'prop=''Library.DBMS.Property.PreserveTabNames.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,preserve_tab_names,"");'; + put 'if preserve_tab_names^='''' then preserve_tab_names='; + put '''preserve_tab_names=''!!preserve_tab_names;'; + put 'call symputx(''preserve_tab_names'',preserve_tab_names,''l'');'; + put '/* get SERVER value */'; + put 'if metadata_getnasn("&liburi","LibraryConnection",1,uri)>0 then do;'; + put 'prop=''Connection.DBMS.Property.SERVER.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop(uri,prop,server,"");'; + put 'end;'; + put 'if server^='''' then server=''server=''!!quote(cats(server));'; + put 'call symputx(''server'',server,''l'');'; + put '/* get SCHEMA value */'; + put 'if metadata_getnasn("&liburi","UsingPackages",1,uri)>0 then do;'; + put 'rc=metadata_getattr(uri,"SchemaName",schema);'; + put 'end;'; + put 'if schema^='''' then schema=''schema=''!!schema;'; + put 'call symputx(''schema'',schema,''l'');'; + put '/* get AUTHDOMAIN value */'; + put '/* this is only useful if the user account contains that auth domain'; + put 'if metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then do;'; + put 'rc=metadata_getnasn(uri,"Domain",1,urisrc);'; + put 'rc=metadata_getattr(urisrc,"Name",authdomain);'; + put 'end;'; + put 'if authdomain^='''' then authdomain=''authdomain=''!!quote(trim(authdomain));'; + put '*/'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/* get user & pass */'; + put 'if authdomain='''' & metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then'; + put 'do;'; + put 'rc=metadata_getattr(uri,"UserID",user);'; + put 'rc=metadata_getattr(uri,"Password",password);'; + put 'end;'; + put 'if user^='''' then do;'; + put 'user=''user=''!!quote(trim(user));'; + put 'password=''password=''!!quote(trim(password));'; + put 'end;'; + put 'call symputx(''user'',user,''l'');'; + put 'call symputx(''password'',password,''l'');'; + put '&md.put _all_;'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put '%put %str(WARN)ING: Passthrough option for postgres not yet supported;'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put '%if &mdebug=1 %then %do;'; + put '%put NOTE: Executing the following:/;'; + put '%put NOTE- libname &libref POSTGRES &database &ignore_read_only_columns;'; + put '%put NOTE- &direct_exe &preserve_col_names &preserve_tab_names;'; + put '%put NOTE- &server &schema &authdomain &user &password //;'; + put '%end;'; + put 'libname &libref POSTGRES &database &ignore_read_only_columns &direct_exe'; + put '&preserve_col_names &preserve_tab_names &server &schema &authdomain'; + put '&user &password;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=ORACLE %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null_;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema $256;'; + put 'call missing (of _all_);'; + put '/* get auth domain */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; + put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; + put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/* path */'; + put 'rc=metadata_getprop(assocuri1,'; + put '''Connection.Oracle.Property.PATH.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref ORACLE path=&path schema=&schema;'; + put '%put NOTE- authdomain=&authdomain;'; + put '%put NOTE-;'; + put 'libname &libref ORACLE path=&path schema=&schema authdomain=&authdomain;'; + put '%end;'; + put '%else %if &engine=SQLSVR %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; + put 'passwd $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; + put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; + put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; + put 'call symputx(''user'',userid,''l'');'; + put 'call symputx(''pass'',passwd,''l'');'; + put '/* path */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; + put 'rc=metadata_getprop(assocuri2,'; + put '''Connection.SQL.Property.Datasrc.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref SQLSVR datasrc=&path schema=&schema ;'; + put '%put NOTE- user="&user" pass="XXX";'; + put '%put NOTE-;'; + put 'libname &libref SQLSVR datasrc=&path schema=&schema user="&user" pass="&pass";'; + put '%end;'; + put '%else %if &engine=TERADATA %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; + put 'passwd $256;'; + put 'call missing (of _all_);'; + put '/* get auth domain */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; + put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; + put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/*'; + put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; + put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; + put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; + put 'call symputx(''user'',userid,''l'');'; + put 'call symputx(''pass'',passwd,''l'');'; + put '*/'; + put '/* path */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; + put 'rc=metadata_getprop(assocuri2,'; + put '''Connection.Teradata.Property.SERVER.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref TERADATA server="&path" schema=&schema ;'; + put '%put NOTe- authdomain=&authdomain;'; + put '%put NOTE-;'; + put 'libname &libref TERADATA server="&path" schema=&schema authdomain=&authdomain;'; + put '%end;'; + put '%else %if &engine= %then %do;'; + put '%put NOTE: Libref &libref is not registered in metadata;'; + put '%&mAbort.mp_abort('; + put 'msg=%str(ERR)OR: Libref &libref is not registered in metadata'; + put ',mac=mm_assigndirectlib.sas);'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put '%put %str(WARN)ING: Engine &engine is currently unsupported;'; + put '%put %str(WARN)ING- Please contact your support team.;'; + put '%return;'; + put '%end;'; + put '%mend mm_assigndirectlib;'; + put '%macro mm_getrepos('; + put 'outds=work.mm_getrepos'; + put ')/*/STORE SOURCE*/;'; + put '* use a temporary fileref to hold the response;'; + put 'filename response temp;'; + put '/* get list of libraries */'; + put 'proc metadata in='; + put '"1"'; + put 'out=response;'; + put 'run;'; + put '/* write the response to the log for debugging */'; + put '/*'; + put 'data _null_;'; + put 'infile response lrecl=1048576;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '*/'; + put '/* create an XML map to read the response */'; + put 'filename sxlemap temp;'; + put 'data _null_;'; + put 'file sxlemap;'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository";'; + put 'put "";'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Id";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Name";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Desc";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@DefaultNS";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryType";'; + put 'put "characterstring20";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryFormat";'; + put 'put "characterstring10";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@Access";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@CurrentAccess";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@PauseState";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Path";'; + put 'put "";'; + put 'put "characterstring256";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Engine";'; + put 'put "";'; + put 'put "characterstring8";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Options";'; + put 'put "";'; + put 'put "characterstring32";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataCreated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataUpdated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put ''
'';'; + put 'run;'; + put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; + put 'proc sort data= _XML_.SASRepos out=&outds;'; + put 'by name;'; + put 'run;'; + put '/* clear references */'; + put 'filename sxlemap clear;'; + put 'filename response clear;'; + put 'libname _XML_ clear;'; + put '%mend mm_getrepos;'; + put '%macro dc_assignlib(type,libref,passthru=);'; + put '%put &sysmacroname entry vars:;'; + put '%put _local_;'; + put '/* take current repository */'; + put '%local repo repocnt x;'; + put '%let repo=%sysfunc(getoption(metarepository));'; + put '/* get list of repositories and filter */'; + put '%mm_getrepos(outds=repos)'; + put '%let repocnt=0;'; + put 'data repos;'; + put 'set repos;'; + put 'where repositorytype in(''CUSTOM'',''FOUNDATION'')'; + put '& upcase(name) ne "%upcase(&repo)";'; + put 'keep id name ;'; + put 'call symputx(cats(''repo'',_n_),name,''l'');'; + put 'call symputx(''repocnt'',_n_,''l'');'; + put 'run;'; + put '/* find out which of these repositories has the libref we are searching for */'; + put '%local lib_uri;'; + put '%let lib_uri=NOTFOUND;'; + put 'data _null_; /* check default repo first */'; + put 'length lib_uri $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; + put 'run;'; + put '%if &lib_uri=NOTFOUND %then %do;'; + put '%do x=1 %to &repocnt;'; + put 'options metarepository=&&repo&x;'; + put 'data _null_;'; + put 'length lib_uri $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; + put 'run;'; + put '%if &lib_uri ne NOTFOUND %then %let x=%eval(&repocnt+1);'; + put '%end;'; + put '%end;'; + put '%if &type=READ %then %do;'; + put '%mm_assignlib(&libref)'; + put '%end;'; + put '%else %if &type=WRITE %then %do;'; + put '%mm_assigndirectlib(&libref,open_passthrough=&passthru)'; + put '%end;'; + put 'options metarepository=&repo;'; + put '%mend dc_assignlib;'; + put '/** @cond */'; + put '%macro mf_existvar(libds /* 2 part dataset name */'; + put ', var /* variable name */'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid rc;'; + put '%let dsid=%sysfunc(open(&libds,is));'; + put '%if &dsid=0 or %length(&var)=0 %then %do;'; + put '%put %sysfunc(sysmsg());'; + put '0'; + put '%end;'; + put '%else %do;'; + put '%sysfunc(varnum(&dsid,&var))'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%mend mf_existvar;'; + put '/** @endcond */'; + put '%macro mf_getattrn('; + put 'libds'; + put ',attr'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid rc;'; + put '%let dsid=%sysfunc(open(&libds,is));'; + put '%if &dsid = 0 %then %do;'; + put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; + put '%put %sysfunc(sysmsg());'; + put '-1'; + put '%end;'; + put '%else %do;'; + put '%sysfunc(attrn(&dsid,&attr))'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%mend mf_getattrn;'; + put '%macro mf_getvartype(libds /* two level name */'; + put ', var /* variable name from which to return the type */'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid vnum vtype rc;'; + put '/* Open dataset */'; + put '%let dsid = %sysfunc(open(&libds));'; + put '%if &dsid. > 0 %then %do;'; + put '/* Get variable number */'; + put '%let vnum = %sysfunc(varnum(&dsid, &var));'; + put '/* Get variable type (C/N) */'; + put '%if(&vnum. > 0) %then %let vtype = %sysfunc(vartype(&dsid, &vnum.));'; + put '%else %do;'; + put '%put NOTE: Variable &var does not exist in &libds;'; + put '%let vtype = %str( );'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: dataset &libds not opened! (rc=&dsid);'; + put '%put &sysmacroname: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '/* Close dataset */'; + put '%let rc = %sysfunc(close(&dsid));'; + put '/* Return variable type */'; + put '&vtype'; + put '%mend mf_getvartype;'; + put '%macro mf_getattrc('; + put 'libds'; + put ',attr'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid rc;'; + put '%let dsid=%sysfunc(open(&libds,is));'; + put '%if &dsid = 0 %then %do;'; + put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; + put '%put %sysfunc(sysmsg());'; + put '-1'; + put '%end;'; + put '%else %do;'; + put '%sysfunc(attrc(&dsid,&attr))'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%mend mf_getattrc;'; + put '%macro mp_lockfilecheck('; + put 'libds'; + put ')/*/STORE SOURCE*/;'; + put 'data _null_;'; + put 'if _n_=1 then putlog "&sysmacroname entry vars:";'; + put 'set sashelp.vmacro;'; + put 'where scope="&sysmacroname";'; + put 'put name ''='' value;'; + put 'run;'; + put '%mp_abort(iftrue= (&syscc>0)'; + put ',mac=checklock.sas'; + put ',msg=Aborting with syscc=&syscc on entry.'; + put ')'; + put '%mp_abort(iftrue= ("&libds"="0")'; + put ',mac=&sysmacroname'; + put ',msg=%str(libds not provided)'; + put ')'; + put '%local msg lib ds;'; + put '%let lib=%upcase(%scan(&libds,1,.));'; + put '%let ds=%upcase(%scan(&libds,2,.));'; + put '/* in DC, format catalogs are passed with a -FC suffix. No saslock here! */'; + put '%if %scan(&libds,2,-)=FC %then %do;'; + put '%put &sysmacroname: Format Catalog detected, no lockfile applied to &libds;'; + put '%return;'; + put '%end;'; + put '/* do not proceed if no observations can be processed */'; + put '%let msg=options obs = 0. syserrortext=%superq(syserrortext);'; + put '%mp_abort(iftrue= (%sysfunc(getoption(OBS))=0)'; + put ',mac=checklock.sas'; + put ',msg=%superq(msg)'; + put ')'; + put 'data _null_;'; + put 'putlog "Checking engine & member type";'; + put 'run;'; + put '%local engine memtype;'; + put '%let memtype=%mf_getattrc(&libds,MTYPE);'; + put '%let engine=%mf_getattrc(&libds,ENGINE);'; + put '%if &engine ne V9 and &engine ne BASE %then %do;'; + put 'data _null_;'; + put 'putlog "Lib &lib is not assigned using BASE engine - uses &engine instead";'; + put 'putlog "SAS lock check will not be performed";'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%else %if &memtype ne DATA %then %do;'; + put '%put NOTE: Cannot lock a VIEW!! Memtype=&memtype;'; + put '%return;'; + put '%end;'; + put 'data _null_;'; + put 'putlog "Engine = &engine, memtype=&memtype";'; + put 'putlog "Attempting lock statement";'; + put 'run;'; + put 'lock &libds;'; + put '%local abortme;'; + put '%let abortme=0;'; + put '%if &syscc>0 or &SYSLCKRC ne 0 %then %do;'; + put '%let msg=Unable to apply lock on &libds (SYSLCKRC=&SYSLCKRC syscc=&syscc);'; + put '%put %str(ERR)OR: &sysmacroname: &msg;'; + put '%let abortme=1;'; + put '%end;'; + put 'lock &libds clear;'; + put '%mp_abort(iftrue= (&abortme=1)'; + put ',mac=&sysmacroname'; + put ',msg=%superq(msg)'; + put ')'; + put '%mend mp_lockfilecheck;'; + put '%macro mp_lockanytable('; + put 'action'; + put ',lib= WORK'; + put ',ds=0'; + put ',ref='; + put ',ctl_ds=0'; + put ',loops=25'; + put ',loop_secs=1'; + put ');'; + put 'data _null_;'; + put 'if _n_=1 then putlog "&sysmacroname entry vars:";'; + put 'set sashelp.vmacro;'; + put 'where scope="&sysmacroname";'; + put 'put name ''='' value;'; + put 'run;'; + put '%mp_abort(iftrue= ("&ds"="0" and &action ne MAKETABLE)'; + put ',mac=&sysmacroname'; + put ',msg=%str(dataset was not provided)'; + put ')'; + put '%mp_abort(iftrue= (&ctl_ds=0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Control dataset was not provided)'; + put ')'; + put '/* set up lib & mac vars */'; + put '%let lib=%upcase(&lib);'; + put '%let ds=%upcase(&ds);'; + put '%let action=%upcase(&action);'; + put '%local user x trans msg abortme;'; + put '%let user=%mf_getuser();'; + put '%let abortme=0;'; + put '%mp_abort(iftrue= (&action ne LOCK & &action ne UNLOCK & &action ne MAKETABLE)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Invalid action (&action) provided)'; + put ')'; + put '/* if an err condition exists, exit before we even begin */'; + put '%mp_abort(iftrue= (&syscc>0 and &action=LOCK)'; + put ',mac=&sysmacroname'; + put ',msg=%str(aborting due to syscc=&syscc on LOCK entry)'; + put ')'; + put '/* do not bother locking work tables (else may affect all WORK libraries) */'; + put '%if (%upcase(&lib)=WORK or %str(&lib)=%str()) & &action ne MAKETABLE %then %do;'; + put '%put NOTE: WORK libraries will not be registered in the locking system.;'; + put '%return;'; + put '%end;'; + put '/* do not proceed if no observations can be processed */'; + put '%mp_abort(iftrue= (%sysfunc(getoption(OBS))=0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(cannot continue when options obs = 0)'; + put ')'; + put '%if &ACTION=LOCK %then %do;'; + put '/* abort if a SAS lock is already in place, or cannot be applied */'; + put '%mp_lockfilecheck(&lib..&ds)'; + put '/* next, check there is a record for this table */'; + put '%local record_exists_check;'; + put 'proc sql noprint;'; + put 'select count(*) into: record_exists_check from &ctl_ds'; + put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; + put 'quit;'; + put '%if &syscc>0 %then %put syscc=&syscc sqlrc=&sqlrc;'; + put '%if &record_exists_check=0 %then %do;'; + put 'data _null_;'; + put 'putlog "&sysmacroname: adding record to lock table..";'; + put 'run;'; + put 'data ;'; + put 'if 0 then set &ctl_ds;'; + put 'LOCK_LIB ="&lib";'; + put 'LOCK_DS="&ds";'; + put 'LOCK_STATUS_CD=''LOCKED'';'; + put 'LOCK_START_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt;'; + put 'LOCK_USER_NM="&user";'; + put 'LOCK_PID="&sysjobid";'; + put 'LOCK_REF="&ref";'; + put 'output;stop;'; + put 'run;'; + put '%let trans=&syslast;'; + put 'proc append base=&ctl_ds data=&trans;'; + put 'run;'; + put '%end;'; + put '/* if record does exist, perform lock attempts */'; + put '%else %do x=1 %to &loops;'; + put 'data _null_;'; + put 'putlog "&sysmacroname: attempting lock (iteration &x) "@;'; + put 'putlog "at %sysfunc(datetime(),datetime19.) ..";'; + put 'run;'; + put 'proc sql;'; + put 'update &ctl_ds'; + put 'set LOCK_STATUS_CD=''LOCKED'''; + put ', LOCK_START_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt'; + put ', LOCK_USER_NM="&user"'; + put ', LOCK_PID="&sysjobid"'; + put ', LOCK_REF="&ref"'; + put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; + put 'quit;'; + put '/**'; + put '* NOTE - occasionally SQL server will return an err code (deadlocked'; + put '* transaction). If so, ignore it, keep calm, and carry on..'; + put '*/'; + put '%if &syscc>0 %then %do;'; + put 'data _null_;'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'putlog "NOTE- &sysmacroname: Update failed. "@;'; + put 'putlog "Resetting err conditions and re-attempting.";'; + put 'putlog "NOTE- syscc=&syscc syserr=&syserr sqlrc=&sqlrc";'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'run;'; + put '%let syscc=0;'; + put '%let sqlrc=0;'; + put '%end;'; + put '/* now check if the record was successfully updated */'; + put '%local success_check;'; + put 'proc sql noprint;'; + put 'select count(*) into: success_check from &ctl_ds'; + put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds"'; + put 'and LOCK_PID="&sysjobid" and LOCK_STATUS_CD=''LOCKED'';'; + put 'quit;'; + put '%if &success_check=0 %then %do;'; + put '%if &x < &loops %then %do;'; + put '/* pause before next check */'; + put 'data _null_;'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'putlog "NOTE- &sysmacroname: table locked, waiting "@;'; + put 'putlog "%sysfunc(sleep(&loop_inc)) seconds.. ";'; + put 'putlog "NOTE- (iteration &x of &loops)";'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%let msg=Unable to lock &lib..&ds via &ctl_ds after &loops attempts.\n'; + put 'Please ask your administrator to investigate!;'; + put '%let abortme=1;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put 'data _null_;'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'putlog "NOTE- &sysmacroname: Table &lib..&ds locked at "@;'; + put 'putlog " %sysfunc(datetime(),datetime19.) (iteration &x)"@;'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'run;'; + put '%if &syscc>0 %then %do;'; + put '%put setting syscc(&syscc) back to 0;'; + put '%let syscc=0;'; + put '%end;'; + put '%let x=&loops; /* no more iterations needed */'; + put '%end;'; + put '%end;'; + put '%end;'; + put '%else %if &ACTION=UNLOCK %then %do;'; + put '%local status;'; + put 'proc sql noprint;'; + put 'select LOCK_STATUS_CD into: status from &ctl_ds'; + put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; + put 'quit;'; + put '%if &syscc>0 %then %put syscc=&syscc sqlrc=&sqlrc;'; + put '%if &status=LOCKED %then %do;'; + put 'data _null_;'; + put 'putlog "&sysmacroname: unlocking &lib..&ds:";'; + put 'run;'; + put 'proc sql;'; + put 'update &ctl_ds'; + put 'set LOCK_STATUS_CD=''UNLOCKED'''; + put ', LOCK_END_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt'; + put ', LOCK_USER_NM="&user"'; + put ', LOCK_PID="&sysjobid"'; + put ', LOCK_REF="&ref"'; + put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; + put 'quit;'; + put '%end;'; + put '%else %if &status=UNLOCKED %then %do;'; + put '%put %str(WAR)NING: &lib..&ds is already unlocked!;'; + put '%end;'; + put '%else %do;'; + put '%put NOTE: Unrecognised STATUS_CD (&status) in &ctl_ds;'; + put '%let abortme=1;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%let msg=lock_anytable given unsupported action (&action);'; + put '%let abortme=1;'; + put '%end;'; + put '/* catch errs - mp_abort must be called outside of a logic block */'; + put '%mp_abort(iftrue=(&abortme=1),'; + put 'msg=%superq(msg),'; + put 'mac=&sysmacroname'; + put ')'; + put '%exit_macro:'; + put 'data _null_;'; + put 'put "&sysmacroname: Exit vars: action=&action lib=&lib ds=&ds";'; + put 'put " syscc=&syscc sqlrc=&sqlrc syserr=&syserr";'; + put 'run;'; + put '%mend mp_lockanytable;'; + put '%macro bitemporal_closeouts('; + put 'tech_from=tx_from_dttm'; + put ',tech_to = tx_to_dttm /* Technical TO datetime variable.'; + put 'Req''d on BASE table only. */'; + put ',base_lib=WORK /* Libref of the BASE table. */'; + put ',base_dsn=BASETABLE /* Name of BASE table. */'; + put ',append_lib=WORK /* Libref of the STAGING table. */'; + put ',append_dsn=APPENDTABLE /* Name of STAGING table. */'; + put ',PK= name sex /* Business key, space separated. */'; + put '/* Should INCLUDE BUS_FROM field if relevant. */'; + put ',NOW=DEFINE'; + put ',FILTER= /* supply a filter to limit the update */'; + put ',outdest= /* supply an unquoted filepath/filename.ext to get'; + put 'a text file containing the update statements */'; + put ',loadtype='; + put ',loadtarget=YES /* if <> YES will return without changing anything */'; + put ');'; + put '%put ENTERING &sysmacroname;'; + put '%local x var start;'; + put '%let start=%sysfunc(datetime());'; + put '%dc_assignlib(WRITE,&base_lib)'; + put '%dc_assignlib(WRITE,&append_lib)'; + put '%if &now=DEFINE %then %let now=&dc_dttmtfmt.;'; + put '%put &=now;'; + put '/**'; + put '* perform basic checks'; + put '*/'; + put '/* do tables exist? */'; + put '%if not %sysfunc(exist(&base_lib..&base_dsn)) %then %do;'; + put '%mp_abort(msg=&base_lib..&base_dsn does not exist)'; + put '%end;'; + put '%else %if %sysfunc(exist(&append_lib..&append_dsn))=0'; + put 'and %sysfunc(exist(&append_lib..&append_dsn,VIEW))=0 %then %do;'; + put '%mp_abort(msg=&append_lib..&append_dsn does not exist)'; + put '%end;'; + put '/* do TX columns exist? */'; + put '%if &loadtype ne UPDATE %then %do;'; + put '%if not %mf_existvar(&base_lib..&base_dsn,&tech_from) %then %do;'; + put '%mp_abort(msg=&tech_from does not exist on &base_lib..&base_dsn)'; + put '%end;'; + put '%else %if not %mf_existvar(&base_lib..&base_dsn,&tech_to) %then %do;'; + put '%mp_abort(msg=&tech_to does not exist on &base_lib..&base_dsn)'; + put '%end;'; + put '%end;'; + put '/* do PK columns exist? */'; + put '%do x=1 %to %sysfunc(countw(&PK));'; + put '%let var=%scan(&pk,&x,%str( ));'; + put '%if not %mf_existvar(&base_lib..&base_dsn,&var) %then %do;'; + put '%mp_abort(msg=&var does not exist on &base_lib..&base_dsn)'; + put '%end;'; + put '%else %if not %mf_existvar(&append_lib..&append_dsn,&var) %then %do;'; + put '%mp_abort(msg=&var does not exist on &append_lib..&append_dsn)'; + put '%end;'; + put '%end;'; + put '/* check uniqueness */'; + put 'proc sort data=&append_lib..&append_dsn'; + put 'out=___closeout1 noduprecs dupout=___closeout1a;'; + put 'by &pk;'; + put 'run;'; + put '%if %mf_getattrn(___closeout1a,NLOBS)>0 %then'; + put '%put NOTE: dups on (&PK) in (&append_lib..&append_dsn);'; + put '/* is &NOW value within a tolerance? Should not allow renegade closeouts.. */'; + put '%local gap;'; + put '%let gap=0;'; + put 'data _null_;'; + put 'now=&now;'; + put 'gap=intck(''HOURS'',now,datetime());'; + put 'call symputx(''gap'',gap,''l'');'; + put 'run;'; + put '%mf_abort('; + put 'iftrue=(&gap > 24),'; + put 'msg=NOW variable (&now) is not within a 24hr tolerance'; + put ')'; + put '/* have any warnings / errs occurred thus far? If so, abort */'; + put '%mf_abort('; + put 'iftrue=(&syscc>0),'; + put 'msg=Aborted due to SYSCC=&SYSCC status'; + put ')'; + put '/**'; + put '* Create closeout statements. These are sent as individual SQL statements'; + put '* to ensure pass-through utilisation. The update_cnt variable monitors'; + put '* how many records were actually updated on the target table.'; + put '*/'; + put '%local update_cnt;'; + put '%let update_cnt=0;'; + put 'filename tmp temp;'; + put 'data _null_;'; + put 'set ___closeout1;'; + put 'file tmp;'; + put 'if _n_=1 then put ''proc sql noprint;'' ;'; + put 'length string $32767.;'; + put '%if &loadtype=UPDATE %then %do;'; + put 'put "delete from &base_lib..&base_dsn where 1";'; + put '%end;'; + put '%else %do;'; + put 'now=symget(''now'');'; + put 'put "update &base_lib..&base_dsn set &tech_to= " now @;'; + put '%if %mf_existvar(&base_lib..&base_dsn,PROCESSED_DTTM) %then %do;'; + put 'put " ,PROCESSED_DTTM=" now @;'; + put '%end;'; + put 'put " where " now " lt &tech_to ";'; + put '%end;'; + put '%do x=1 %to %sysfunc(countw(&PK));'; + put '%let var=%scan(&pk,&x,%str( ));'; + put '%if %mf_getvartype(&base_lib..&base_dsn,&var)=C %then %do;'; + put '/* use single quotes to avoid ampersand resolution in data */'; + put 'string=" & &var=''"!!trim(prxchange("s/''/''''/",-1,&var))!!"''";'; + put '%end;'; + put '%else %do;'; + put 'string=cats(" & &var=",&var);'; + put '%end;'; + put 'put string;'; + put '%end;'; + put 'put "&filter ;";'; + put 'put ''%let update_cnt=%eval(&update_cnt+&sqlobs);%put update_cnt=&update_cnt;'';'; + put 'run;'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;'; + put 'putlog _infile_;'; + put 'run;'; + put '%if &loadtarget ne YES %then %return;'; + put '/* ensure we have a lock */'; + put '%mp_lockanytable(LOCK,'; + put 'lib=&base_lib,ds=&base_dsn'; + put ',ref=bitemporal_closeouts'; + put ',ctl_ds=&mpelib..mpe_lockanytable'; + put ')'; + put 'options source2;'; + put '%inc tmp;'; + put 'filename tmp clear;'; + put '/**'; + put '* Update audit tracker'; + put '*/'; + put '%local newobs; %let newobs=%mf_getattrn(work.___closeout1,NLOBS);'; + put '%local user; %let user=%mf_getuser();'; + put 'proc sql;'; + put 'insert into &mpelib..mpe_dataloads'; + put 'set libref=%upcase("&base_lib")'; + put ',DSN=%upcase("&base_dsn")'; + put ',ETLSOURCE="&append_lib..&append_dsn contained &newobs records"'; + put ',LOADTYPE="CLOSEOUT"'; + put ',DELETED_RECORDS=&update_cnt'; + put ',NEW_RECORDS=0'; + put ',DURATION=%sysfunc(datetime())-&start'; + put ',USER_NM="&user"'; + put ',PROCESSED_DTTM=&now;'; + put 'quit;'; + put '%mend bitemporal_closeouts;'; + put '%macro mf_getschema(libref'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid vnum rc schema;'; + put '/* in case the parameter is a libref.tablename, pull off just the libref */'; + put '%let libref = %upcase(%scan(&libref, 1, %str(.)));'; + put '%let dsid=%sysfunc(open(sashelp.vlibnam(where=('; + put 'libname="%upcase(&libref)" and sysname=''Schema/Owner'''; + put ')),i));'; + put '%if (&dsid ^= 0) %then %do;'; + put '%let vnum=%sysfunc(varnum(&dsid,SYSVALUE));'; + put '%let rc=%sysfunc(fetch(&dsid));'; + put '%let schema=%sysfunc(getvarc(&dsid,&vnum));'; + put '%put &libref. schema is &schema.;'; + put '%let rc= %sysfunc(close(&dsid));'; + put '%end;'; + put '&schema'; + put '%mend mf_getschema;'; + put '/** @endcond */'; + put '%macro mf_getuniquename(prefix=MC);'; + put '&prefix.%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32-%length(&prefix))'; + put '%mend mf_getuniquename;'; + put '%macro mf_getvarlist(libds'; + put ',dlm=%str( )'; + put ',quote=no'; + put ',typefilter=A'; + put ')/*/STORE SOURCE*/;'; + put '/* declare local vars */'; + put '%local outvar dsid nvars x rc dlm q var vtype;'; + put '/* credit Rowland Hale - byte34 is double quote, 39 is single quote */'; + put '%if %upcase("e)=DOUBLE %then %let q=%qsysfunc(byte(34));'; + put '%else %if %upcase("e)=SINGLE %then %let q=%qsysfunc(byte(39));'; + put '/* open dataset in macro */'; + put '%let dsid=%sysfunc(open(&libds));'; + put '%if &dsid %then %do;'; + put '%let nvars=%sysfunc(attrn(&dsid,NVARS));'; + put '%if &nvars>0 %then %do;'; + put '/* add variables with supplied delimeter */'; + put '%do x=1 %to &nvars;'; + put '/* get variable type */'; + put '%let vtype=%sysfunc(vartype(&dsid,&x));'; + put '%if &vtype=&typefilter or &typefilter=A %then %do;'; + put '%let var=&q.%sysfunc(varname(&dsid,&x))&q.;'; + put '%if &var=&q&q %then %do;'; + put '%put &sysmacroname: Empty column found in &libds!;'; + put '%let var=&q. &q.;'; + put '%end;'; + put '%if %quote(&outvar)=%quote() %then %let outvar=&var;'; + put '%else %let outvar=&outvar.&dlm.&var.;'; + put '%end;'; + put '%end;'; + put '%end;'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: Unable to open &libds (rc=&dsid);'; + put '%put &sysmacroname: SYSMSG= %sysfunc(sysmsg());'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%do;%unquote(&outvar)%end;'; + put '%mend mf_getvarlist;'; + put '%macro mf_abort(mac=mf_abort.sas, msg=, iftrue=%str(1=1)'; + put ')/*/STORE SOURCE*/;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mf_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%abort;'; + put '%mend mf_abort;'; + put '/** @endcond */'; + put '%macro mf_verifymacvars('; + put 'verifyVars /* list of macro variable NAMES */'; + put ',makeUpcase=NO /* set to YES to make all the variable VALUES uppercase */'; + put ',mAbort=SOFT'; + put ')/*/STORE SOURCE*/;'; + put '%local verifyIterator verifyVar abortmsg;'; + put '%do verifyIterator=1 %to %sysfunc(countw(&verifyVars,%str( )));'; + put '%let verifyVar=%qscan(&verifyVars,&verifyIterator,%str( ));'; + put '%if not %symexist(&verifyvar) %then %do;'; + put '%let abortmsg= Variable &verifyVar is MISSING;'; + put '%goto exit_err;'; + put '%end;'; + put '%if %length(%trim(&&&verifyVar))=0 %then %do;'; + put '%let abortmsg= Variable &verifyVar is EMPTY;'; + put '%goto exit_err;'; + put '%end;'; + put '%if &makeupcase=YES %then %do;'; + put '%let &verifyVar=%upcase(&&&verifyvar);'; + put '%end;'; + put '%end;'; + put '%goto exit_success;'; + put '%exit_err:'; + put '%put &abortmsg;'; + put '%mf_abort(iftrue=(&mabort ne SOFT),'; + put 'mac=mf_verifymacvars,'; + put 'msg=%str(&abortmsg)'; + put ')'; + put '0'; + put '%return;'; + put '%exit_success:'; + put '1'; + put '%mend mf_verifymacvars;'; + put '%macro mf_wordsInStr1ButNotStr2('; + put 'Str1= /* string containing words to extract */'; + put ',Str2= /* used to compare with the extract string */'; + put ')/*/STORE SOURCE*/;'; + put '%local count_base count_extr i i2 extr_word base_word match outvar;'; + put '%if %length(&str1)=0 or %length(&str2)=0 %then %do;'; + put '%put base string (str1)= &str1;'; + put '%put compare string (str2) = &str2;'; + put '%return;'; + put '%end;'; + put '%let count_base=%sysfunc(countw(&Str2));'; + put '%let count_extr=%sysfunc(countw(&Str1));'; + put '%do i=1 %to &count_extr;'; + put '%let extr_word=%scan(&Str1,&i,%str( ));'; + put '%let match=0;'; + put '%do i2=1 %to &count_base;'; + put '%let base_word=%scan(&Str2,&i2,%str( ));'; + put '%if &extr_word=&base_word %then %let match=1;'; + put '%end;'; + put '%if &match=0 %then %let outvar=&outvar &extr_word;'; + put '%end;'; + put '&outvar'; + put '%mend mf_wordsInStr1ButNotStr2;'; + put '%macro mf_isblank(param'; + put ')/*/STORE SOURCE*/;'; + put '%sysevalf(%superq(param)=,boolean)'; + put '%mend mf_isblank;'; + put '%macro mp_dropmembers('; + put 'list /* space separated list of datasets / views */'; + put ',libref=WORK /* can only drop from a single library at a time */'; + put ',iftrue=%str(1=1)'; + put ')/*/STORE SOURCE*/;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%if %mf_isblank(&list) %then %do;'; + put '%put NOTE: nothing to drop!;'; + put '%return;'; + put '%end;'; + put 'proc datasets lib=&libref nolist;'; + put 'delete &list;'; + put 'delete &list /mtype=view;'; + put 'run;'; + put '%mend mp_dropmembers;'; + put '%macro mf_getquotedstr(IN_STR'; + put ',DLM=%str(,)'; + put ',QUOTE=S'; + put ',indlm=%str( )'; + put ')/*/STORE SOURCE*/;'; + put '/* credit Rowland Hale - byte34 is double quote, 39 is single quote */'; + put '%if "e=S %then %let quote=%qsysfunc(byte(39));'; + put '%else %if "e=D %then %let quote=%qsysfunc(byte(34));'; + put '%else %if "e=N %then %let quote=;'; + put '%local i item buffer;'; + put '%let i=1;'; + put '%do %while (%qscan(&IN_STR,&i,%str(&indlm)) ne %str() ) ;'; + put '%let item=%qscan(&IN_STR,&i,%str(&indlm));'; + put '%if %bquote("E) ne %then %let item="E%qtrim(&item)"E;'; + put '%else %let item=%qtrim(&item);'; + put '%if (&i = 1) %then %let buffer =%qtrim(&item);'; + put '%else %let buffer =&buffer&DLM%qtrim(&item);'; + put '%let i = %eval(&i+1);'; + put '%end;'; + put '%let buffer=%sysfunc(coalescec(%qtrim(&buffer),"E"E));'; + put '&buffer'; + put '%mend mf_getquotedstr;'; + put '%macro mf_nobs(libds'; + put ')/*/STORE SOURCE*/;'; + put '%mf_getattrn(&libds,NLOBS)'; + put '%mend mf_nobs;'; + put '%macro mp_retainedkey('; + put 'base_lib=WORK'; + put ',base_dsn=BASETABLE'; + put ',append_lib=WORK'; + put ',append_dsn=APPENDTABLE'; + put ',retained_key=DEFAULT_RK'; + put ',business_key= PK1 PK2'; + put ',check_uniqueness=NO'; + put ',maxkeytable=0'; + put ',locktable=0'; + put ',outds=WORK.APPEND'; + put ',filter_str='; + put ');'; + put '%put &sysmacroname entry vars:;'; + put '%put _local_;'; + put '%local base_libds app_libds key_field check maxkey idx_pk newkey_cnt iserr'; + put 'msg x tempds1 tempds2 comma_pk appnobs checknobs dropvar tempvar idx_val;'; + put '%let base_libds=%upcase(&base_lib..&base_dsn);'; + put '%let app_libds=%upcase(&append_lib..&append_dsn);'; + put '%let tempds1=%mf_getuniquename();'; + put '%let tempds2=%mf_getuniquename();'; + put '%let comma_pk=%mf_getquotedstr(in_str=%str(&business_key),dlm=%str(,),quote=);'; + put '%let outds=%sysfunc(ifc(%index(&outds,.)=0,work.&outds,&outds));'; + put '/* validation checks */'; + put '%let iserr=0;'; + put '%if &syscc>0 %then %do;'; + put '%let iserr=1;'; + put '%let msg=%str(SYSCC=&syscc on macro entry);'; + put '%end;'; + put '%else %if %sysfunc(exist(&base_libds))=0 %then %do;'; + put '%let iserr=1;'; + put '%let msg=%str(Base LIBDS (&base_libds) expected but NOT FOUND);'; + put '%end;'; + put '%else %if %sysfunc(exist(&app_libds))=0 %then %do;'; + put '%let iserr=1;'; + put '%let msg=%str(Append LIBDS (&app_libds) expected but NOT FOUND);'; + put '%end;'; + put '%else %if &maxkeytable ne 0 and %sysfunc(exist(&maxkeytable))=0 %then %do;'; + put '%let iserr=1;'; + put '%let msg=%str(Maxkeytable (&maxkeytable) expected but NOT FOUND);'; + put '%end;'; + put '%else %if &maxkeytable ne 0 and %sysfunc(exist(&locktable))=0 %then %do;'; + put '%let iserr=1;'; + put '%let msg=%str(Locktable (&locktable) expected but NOT FOUND);'; + put '%end;'; + put '%else %if %length(&business_key)=0 %then %do;'; + put '%let iserr=1;'; + put '%let msg=%str(Business key (&business_key) expected but NOT FOUND);'; + put '%end;'; + put '%do x=1 %to %sysfunc(countw(&business_key));'; + put '/* check business key values exist */'; + put '%let key_field=%scan(&business_key,&x,%str( ));'; + put '%if not %mf_existvar(&app_libds,&key_field) %then %do;'; + put '%let iserr=1;'; + put '%let msg=Business key (&key_field) not found on &app_libds!;'; + put '%goto err;'; + put '%end;'; + put '%else %if not %mf_existvar(&base_libds,&key_field) %then %do;'; + put '%let iserr=1;'; + put '%let msg=Business key (&key_field) not found on &base_libds!;'; + put '%goto err;'; + put '%end;'; + put '%end;'; + put '%err:'; + put '%if &iserr=1 %then %do;'; + put '/* err case so first perform an unlock of the base table before exiting */'; + put '%mp_lockanytable('; + put 'UNLOCK,lib=&base_lib,ds=&base_dsn,ref=%superq(msg),ctl_ds=&locktable'; + put ')'; + put '%end;'; + put '%mp_abort(iftrue=(&iserr=1),mac=mp_retainedkey,msg=%superq(msg))'; + put 'proc sql noprint;'; + put 'select sum(max(&retained_key),0) into: maxkey from &base_libds;'; + put '/**'; + put '* get base table RK and bus field values for lookup'; + put '*/'; + put 'proc sql noprint;'; + put 'create table &tempds1 as'; + put 'select distinct &comma_pk,&retained_key'; + put 'from &base_libds &filter_str'; + put 'order by &comma_pk,&retained_key;'; + put '%if &check_uniqueness=YES %then %do;'; + put 'select count(*) into:checknobs'; + put 'from (select distinct &comma_pk from &app_libds);'; + put 'select count(*) into: appnobs from &app_libds; /* might be view */'; + put '%if &checknobs ne &appnobs %then %do;'; + put '%let msg=Source table &app_libds is not unique on (&business_key);'; + put '%let iserr=1;'; + put '%end;'; + put '%end;'; + put '%if &iserr=1 %then %do;'; + put '/* err case so first perform an unlock of the base table before exiting */'; + put '%mp_lockanytable('; + put 'UNLOCK,lib=&base_lib,ds=&base_dsn,ref=%superq(msg),ctl_ds=&locktable'; + put ')'; + put '%end;'; + put '%mp_abort(iftrue= (&iserr=1),mac=mp_retainedkey,msg=%superq(msg))'; + put '%if %mf_existvar(&app_libds,&retained_key)'; + put '%then %let dropvar=(drop=&retained_key);'; + put '/* prepare interim table with retained key populated for matching keys */'; + put 'proc sql noprint;'; + put 'create table &tempds2 as'; + put 'select b.&retained_key, a.*'; + put 'from &app_libds &dropvar a'; + put 'left join &tempds1 b'; + put 'on 1'; + put '%do idx_pk=1 %to %sysfunc(countw(&business_key));'; + put '%let idx_val=%scan(&business_key,&idx_pk);'; + put 'and a.&idx_val=b.&idx_val'; + put '%end;'; + put 'order by &retained_key;'; + put '/* identify the number of entries without retained keys (new records) */'; + put 'select count(*) into: newkey_cnt'; + put 'from &tempds2'; + put 'where missing(&retained_key);'; + put 'quit;'; + put '/**'; + put '* Update maxkey table if link provided'; + put '*/'; + put '%if &maxkeytable ne 0 %then %do;'; + put 'proc sql noprint;'; + put 'select count(*) into: check from &maxkeytable'; + put 'where upcase(keytable)="&base_libds";'; + put '%mp_lockanytable(LOCK'; + put ',lib=%scan(&maxkeytable,1,.)'; + put ',ds=%scan(&maxkeytable,2,.)'; + put ',ref=Updating maxkeyvalues with mp_retainedkey'; + put ',ctl_ds=&locktable'; + put ')'; + put 'proc sql;'; + put '%if &check=0 %then %do;'; + put 'insert into &maxkeytable'; + put 'set keytable="&base_libds"'; + put ',keycolumn="&retained_key"'; + put ',max_key=%eval(&maxkey+&newkey_cnt)'; + put ',processed_dttm="%sysfunc(datetime(),%mf_fmtdttm())"dt;'; + put '%end;'; + put '%else %do;'; + put 'update &maxkeytable'; + put 'set max_key=%eval(&maxkey+&newkey_cnt)'; + put ',processed_dttm="%sysfunc(datetime(),%mf_fmtdttm())"dt'; + put 'where keytable="&base_libds";'; + put '%end;'; + put '%mp_lockanytable(UNLOCK'; + put ',lib=%scan(&maxkeytable,1,.)'; + put ',ds=%scan(&maxkeytable,2,.)'; + put ',ref=Updating maxkeyvalues with maxkey=%eval(&maxkey+&newkey_cnt)'; + put ',ctl_ds=&locktable'; + put ')'; + put '%end;'; + put '/* fill in the missing retained key values */'; + put '%let tempvar=%mf_getuniquename();'; + put 'data &outds(drop=&tempvar);'; + put 'retain &tempvar %eval(&maxkey+1);'; + put 'set &tempds2;'; + put 'if &retained_key =. then &retained_key=&tempvar;'; + put '&tempvar=&tempvar+1;'; + put 'run;'; + put '%mend mp_retainedkey;'; + put '/** @cond */'; + put '%macro mp_storediffs(libds'; + put ',origds'; + put ',key'; + put ',delds=0'; + put ',appds=0'; + put ',modds=0'; + put ',outds=work.mp_storediffs'; + put ',loadref=0'; + put ',processed_dttm=0'; + put ',mdebug=0'; + put ')/*/STORE SOURCE*/;'; + put '%local dbg;'; + put '%if &mdebug=1 %then %do;'; + put '%put &sysmacroname entry vars:;'; + put '%put _local_;'; + put '%end;'; + put '%else %let dbg=*;'; + put '/* set up unique and temporary vars */'; + put '%local ds1 ds2 ds3 ds4 hashkey inds_auto inds_keep dslist vlist;'; + put '%let ds1=%upcase(work.%mf_getuniquename(prefix=mpsd_ds1));'; + put '%let ds2=%upcase(work.%mf_getuniquename(prefix=mpsd_ds2));'; + put '%let ds3=%upcase(work.%mf_getuniquename(prefix=mpsd_ds3));'; + put '%let ds4=%upcase(work.%mf_getuniquename(prefix=mpsd_ds4));'; + put '%let hashkey=%upcase(%mf_getuniquename(prefix=mpsd_hashkey));'; + put '%let inds_auto=%upcase(%mf_getuniquename(prefix=mpsd_inds_auto));'; + put '%let inds_keep=%upcase(%mf_getuniquename(prefix=mpsd_inds_keep));'; + put '%let dslist=&origds;'; + put '%if &delds ne 0 %then %do;'; + put '%let delds=%upcase(&delds);'; + put '%if %scan(&delds,-1,.)=&delds %then %let delds=WORK.&delds;'; + put '%let dslist=&dslist &delds;'; + put '%end;'; + put '%if &appds ne 0 %then %do;'; + put '%let appds=%upcase(&appds);'; + put '%if %scan(&appds,-1,.)=&appds %then %let appds=WORK.&appds;'; + put '%let dslist=&dslist &appds;'; + put '%end;'; + put '%if &modds ne 0 %then %do;'; + put '%let modds=%upcase(&modds);'; + put '%if %scan(&modds,-1,.)=&modds %then %let modds=WORK.&modds;'; + put '%let dslist=&dslist &modds;'; + put '%end;'; + put '%let origds=%upcase(&origds);'; + put '%if %scan(&origds,-1,.)=&origds %then %let origds=WORK.&origds;'; + put '%let key=%upcase(&key);'; + put '/* hash the key and append all the tables (marking the source) */'; + put 'data &ds1;'; + put 'set &dslist indsname=&inds_auto;'; + put '&hashkey=put(md5(catx(''|'',%mf_getquotedstr(&key,quote=N))),$hex32.);'; + put '&inds_keep=upcase(&inds_auto);'; + put 'proc sort;'; + put 'by &inds_keep &hashkey;'; + put 'run;'; + put '/* transpose numeric & char vars */'; + put 'proc transpose data=&ds1'; + put 'out=&ds2(rename=(&hashkey=key_hash _name_=tgtvar_nm col1=newval_num));'; + put 'by &inds_keep &hashkey;'; + put 'var _numeric_;'; + put 'run;'; + put 'proc transpose data=&ds1'; + put 'out=&ds3('; + put 'rename=(&hashkey=key_hash _name_=tgtvar_nm col1=newval_char)'; + put 'where=(tgtvar_nm not in ("&hashkey","&inds_keep"))'; + put ');'; + put 'by &inds_keep &hashkey;'; + put 'var _character_;'; + put 'run;'; + put '%if %index(&libds,-)>0 and %scan(&libds,2,-)=FC %then %do;'; + put '/* this is a format catalog - cannot query cols directly */'; + put '%let vlist="FMTNAME","START","END","LABEL","MIN","MAX","DEFAULT","LENGTH"'; + put ',"FUZZ","PREFIX","MULT","FILL","NOEDIT","TYPE","SEXCL","EEXCL","HLO"'; + put ',"DECSEP","DIG3SEP","DATATYPE","LANGUAGE";'; + put '%end;'; + put '%else %let vlist=%mf_getvarlist(&libds,dlm=%str(,),quote=DOUBLE);'; + put 'data &ds4;'; + put 'length &inds_keep $41 tgtvar_nm $32 _label_ $256;'; + put 'if _n_=1 then call missing(_label_);'; + put 'drop _label_;'; + put 'set &ds2 &ds3 indsname=&inds_auto;'; + put 'tgtvar_nm=upcase(tgtvar_nm);'; + put 'if tgtvar_nm in (%upcase(&vlist));'; + put 'if upcase(&inds_auto)="&ds2" then tgtvar_type=''N'';'; + put 'else if upcase(&inds_auto)="&ds3" then tgtvar_type=''C'';'; + put 'else do;'; + put 'putlog "%str(ERR)OR: unidentified vartype input!" &inds_auto;'; + put 'call symputx(''syscc'',98);'; + put 'end;'; + put 'if &inds_keep="&appds" then move_type=''A'';'; + put 'else if &inds_keep="&delds" then move_type=''D'';'; + put 'else if &inds_keep="&modds" then move_type=''M'';'; + put 'else if &inds_keep="&origds" then move_type=''O'';'; + put 'else do;'; + put 'putlog "%str(ERR)OR: unidentified movetype input!" &inds_keep;'; + put 'call symputx(''syscc'',99);'; + put 'end;'; + put 'tgtvar_nm=upcase(tgtvar_nm);'; + put 'if tgtvar_nm in (%mf_getquotedstr(&key)) then is_pk=1;'; + put 'else is_pk=0;'; + put 'drop &inds_keep;'; + put 'run;'; + put '%if "&loadref"="0" %then %let loadref=%sysfunc(uuidgen());'; + put '%if &processed_dttm=0 %then %let processed_dttm=%sysfunc(datetime());'; + put '%let libds=%upcase(&libds);'; + put '/* join orig vals for modified & deleted */'; + put 'proc sql;'; + put 'create table &outds as'; + put 'select "&loadref" as load_ref length=36'; + put ',&processed_dttm as processed_dttm format=E8601DT26.6'; + put ',"%scan(&libds,1,.)" as libref length=8'; + put ',"%scan(&libds,2,.)" as dsn length=32'; + put ',b.key_hash length=32'; + put ',b.move_type length=1'; + put ',b.tgtvar_nm length=32'; + put ',b.is_pk'; + put ',case when b.move_type ne ''M'' then -1'; + put 'when a.newval_num=b.newval_num and a.newval_char=b.newval_char then 0'; + put 'else 1'; + put 'end as is_diff'; + put ',b.tgtvar_type length=1'; + put ',case when b.move_type=''D'' then b.newval_num'; + put 'else a.newval_num'; + put 'end as oldval_num format=best32.'; + put ',case when b.move_type=''D'' then .'; + put 'else b.newval_num'; + put 'end as newval_num format=best32.'; + put ',case when b.move_type=''D'' then b.newval_char'; + put 'else a.newval_char'; + put 'end as oldval_char length=32765'; + put ',case when b.move_type=''D'' then '''''; + put 'else b.newval_char'; + put 'end as newval_char length=32765'; + put 'from &ds4(where=(move_type=''O'')) as a'; + put 'right join &ds4(where=(move_type ne ''O'')) as b'; + put 'on a.tgtvar_nm=b.tgtvar_nm'; + put 'and a.key_hash=b.key_hash'; + put 'order by move_type, key_hash,is_pk desc, tgtvar_nm;'; + put '%if &mdebug=0 %then %do;'; + put 'proc sql;'; + put 'drop table &ds1, &ds2, &ds3, &ds4;'; + put '%end;'; + put '%mend mp_storediffs;'; + put '/** @endcond */'; + put '%macro bitemporal_dataloader('; + put 'bus_from= /* Business FROM datetime variable. Req''d on'; + put 'STAGING & BASE tables.*/'; + put ',bus_to = /* Business TO datetime variable. Req''d on'; + put 'STAGING & BASE tables. */'; + put ',bus_from_override= /* Provide a hard coded BUS_FROM datetime value.*/'; + put ',bus_to_override= /* provide a hard coded BUS_TO datetime value */'; + put ',tech_from= /* Technical FROM datetime variable. Req''d on'; + put 'BASE table only. */'; + put ',tech_to = /* Technical TO datetime variable. Req''d on BASE'; + put 'table only. */'; + put ',processed= 0'; + put ',base_lib=WORK /* Libref of the BASE table. */'; + put ',base_dsn=BASETABLE /* Name of BASE table. */'; + put ',append_lib=WORK /* Libref of the STAGING table. */'; + put ',append_dsn=APPENDTABLE'; + put ',high_date=''01JAN5999:00:00:00''dt /* High date to close out records */'; + put ',PK= name sex'; + put ',RK_UNDERLYING='; + put ',KEEPVARS= /* Provides option for removing unwanted vars from append table */'; + put ',RK_UPDATE_MAXKEYTABLE=NO /* If switching (or mix matching) with regular'; + put 'SCD2 loader then set this switch to YES to'; + put 'ensure the MAXKEYTABLE is updated with the'; + put 'current maximum RK value for the target table'; + put '*/'; + put ',CHECK_UNIQUENESS=YES /* Perform a check of the APPEND table to ensure it is'; + put 'unique on its business key */'; + put ',ETLSOURCE=demo /* supply a value ($50.) to show as ETLSOURCE in'; + put '&dclib..DATALOADS */'; + put ',LOADTYPE=BITEMPORAL'; + put ',RK_MAXKEYTABLE= mpe_maxkeyvalues'; + put ',LOG=1 /* Switch to 0 to prevent records being added to'; + put '&mpelib..mpe_DATALOADS (ie when testing)*/'; + put ',DELETE_COL= _____DELETE__THIS__RECORD_____'; + put '/* If this variable is found in the append dataset'; + put 'then records are closed out (or deleted) in the'; + put 'append table where that variable= "Yes" */'; + put ',LOADTARGET=YES /* set to anything but uppercase YES to switch off'; + put 'target table load and generate temp tables only */'; + put ',CLOSE_VARS='; + put '/*a problem with regular SCD2 or TXTEMPORAL loads is that there is'; + put 'no facility to close out removed records (all records are'; + put 'assumed new or changed). But how does one determine which'; + put 'records are removed? Short of loading the entire table'; + put 'each time? This parameter allows a set of variables'; + put '(this should be a subset of the PK) to be declared, and'; + put 'the macro will determine which records in the base table'; + put 'need to be closed out ahead of the load.'; + put 'For instance, given the following:'; + put 'Base Table Staging Table'; + put 'DATE ENTITY AMOUNT DATE ENTITY AMOUNT'; + put 'JAN ACME4 66 JAN ACME4 66'; + put 'FEB ACME4 99 FEB ACME4 99'; + put 'FEB ACME1 22'; + put 'By supplying DATE in CLOSE_VARS and DATE ENTITY as the PK,'; + put 'the "FEB PAG 22" record would get closed out.'; + put '*/'; + put ',config_table=&dclib..MPE_CONFIG'; + put ',dclib=&dc_libref'; + put ',outds_del=work.outds_del'; + put ',outds_add=work.outds_add'; + put ',outds_mod=work.outds_mod'; + put ',outds_audit=0'; + put ');'; + put '/* when changing this macro, update the version num here */'; + put '%local ver;'; + put '%let ver=32;'; + put '%put &sysmacroname entry vars:;'; + put '%put _local_;'; + put '%dc_assignlib(WRITE,&base_lib) /* may not already be assigned */'; + put '/* return straight away if nothing to load */'; + put '%let nobs= %mf_getattrn(&append_lib..&append_dsn,NLOBS);'; + put '%if &nobs=-1 %then %do;'; + put 'proc sql noprint; select count(*) into: nobs from &append_lib..&append_dsn;'; + put '%end;'; + put '%if &nobs=0 %then %do;'; + put '%put NOTE:; %put NOTE-;%put NOTE-;%put NOTE-;'; + put '%put NOTE- Base dataset &append_lib..&append_dsn is empty. Nothing to upload!;'; + put '%put NOTE-;%put NOTE-;%put NOTE-;'; + put '%return;'; + put '%end;'; + put '/* hard exit if err condition exists */'; + put '%mp_abort(iftrue= (&syscc > 0)'; + put ',mac=bitemporal_dataloader'; + put ',msg=%str(Bitemporal transform / job aborted due to SYSCC=&SYSCC status;)'; + put ')'; + put '%local engine_type;'; + put '%let engine_type=%mf_getengine(&base_lib);'; + put '%if (&engine_type=REDSHIFT or &engine_type=POSTGRES) and %length(&CLOSE_VARS)>0'; + put '%then %do;'; + put '%put NOTE:; %put NOTE-;%put NOTE-;%put NOTE-;'; + put '%put NOTE- CLOSE_VARS functionality not yet supported in &engine_type;'; + put '%put NOTE-;%put NOTE-;%put NOTE-;'; + put '%return;'; + put '%end;'; + put '/**'; + put '* The metadata functions (eg mf_existvar) will fail if the base table has a'; + put '* SAS lock. So, make a snapshot of the base table for further use.'; + put '* Also, make output tables (regardless).'; + put '*/'; + put '%local basecopy;'; + put '%let basecopy=%mf_getuniquename(prefix=basecopy);'; + put 'data &basecopy &outds_mod &outds_add &outds_del;'; + put 'set &base_lib..&base_dsn;'; + put 'stop;'; + put 'run;'; + put '%mp_abort(iftrue= (&syscc > 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after base table copy - aborting due to table lock)'; + put ')'; + put '%local cols idx_pk md5_col ;'; + put '%let md5_col=___TMP___md5;'; + put '%let check_uniqueness=%upcase(&check_uniqueness);'; + put '%let RK_UPDATE_MAXKEYTABLE=%upcase(&RK_UPDATE_MAXKEYTABLE);'; + put '%let high_date=%unquote(&high_date);'; + put '%let loadtype=%upcase(&loadtype);'; + put '/* ensure irrelevant variables are cleared */'; + put '%if &loadtype=BUSTEMPORAL %then %do;'; + put '%let tech_from=;'; + put '%let tech_to=;'; + put '%end;'; + put '%else %if &loadtype=TXTEMPORAL or &loadtype=UPDATE %then %do;'; + put '%let bus_from=;'; + put '%let bus_to=;'; + put '%end;'; + put '/* ensure relevant variables are supplied */'; + put '%mp_abort(iftrue=(&loadtype=BITEMPORAL & %mf_verifymacvars(bus_from bus_to)=0)'; + put ',mac=bitemporal_dataloader'; + put ',msg=%str(Missing BUS_FROM / BUS_TO)'; + put ')'; + put '%mp_abort(iftrue=(&loadtype=TXTEMPORAL & %mf_verifymacvars(tech_from tech_to)=0)'; + put ',mac=bitemporal_dataloader'; + put ',msg=%str(Missing TECH_FROM / TECH_TO)'; + put ')'; + put '/**'; + put '* drop any tables (may be defined as views or vice versa preventing overwrite)'; + put '*/'; + put '%mp_dropmembers(append bitemp0_append bitemp_cols)'; + put '/* SQL Server requires its own time values */'; + put '/* 9.2 will only give picture format down to seconds. 9.3 allows'; + put 'milliseconds by using lower S and defining the decimal in the format name..*/'; + put 'PROC FORMAT;'; + put 'picture MyMSdt other=''%0Y-%0m-%0dT%0H:%0M:%0S'' (datatype=datetime);'; + put 'RUN;'; + put '%local dbnow;'; + put '%let dbnow="%sysfunc(datetime(),%mf_fmtdttm())"dt;'; + put 'data _null_;'; + put '/* convert space separated macvar to comma separated for SQL processing */'; + put 'call symputx(''PK_COMMA'',tranwrd(compbl("&pk"),'' '','',''),''L'');'; + put 'call symputx(''PK_CNT'',countw("&pk",'' ''),''L'');'; + put 'now=&dbnow;'; + put 'call symputx(''NOW'',now,''L'');'; + put 'call symputx(''SQLNOW'',cats("''",put(now,MyMSdt.),"''"),''L'');'; + put 'length etlsource $100;'; + put 'etlsource=subpad(symget(''etlsource''),1,100);'; + put 'call symputx(''etlsource'',etlsource,''l'');'; + put 'run;'; + put '/**'; + put '* Even if no PROCESSED var provided, assume that any variable named'; + put '* PROCESSED_DTTM should be updated'; + put '*/'; + put '%if &processed=0 %then %do;'; + put '%if %mf_existvar(&basecopy,PROCESSED_DTTM)'; + put '%then %let processed=PROCESSED_DTTM;'; + put '%else %let processed=;'; + put '%end;'; + put '/* extract colnames for md5 creation / change tracking */'; + put 'proc contents noprint data=&base_lib..&base_dsn'; + put 'out=work.bitemp_cols (keep=name type length varnum format:);'; + put 'run;'; + put 'proc sql noprint;'; + put 'select name into: cols separated by '','''; + put 'from work.bitemp_cols'; + put 'where upcase(name) not in'; + put '(%upcase("&bus_from","&bus_to"'; + put ',"&tech_from","&tech_to"'; + put ',"&processed","&delete_col")) ;'; + put 'select case when type in (2,6) then cats(''put(md5(trim('',name,'')),$hex32.)'')'; + put '/* multiply by 1 to strip precision errors (eg 0 != 0) */'; + put '/* but ONLY if not missing, else will lose any special missing values */'; + put 'else cats(''put(md5(trim(put(ifn(missing('''; + put ',name,''),'',name,'','',name,''*1),binary64.))),$hex32.)'') end'; + put 'into: stripcols separated by ''||'''; + put 'from work.bitemp_cols'; + put 'where upcase(name) not in'; + put '(%upcase("&bus_from","&bus_to"'; + put ',"&tech_from","&tech_to"'; + put ',"&processed","&delete_col")) ;'; + put '/* set default formats*/'; + put '%let bus_from_fmt = datetime19.;'; + put '%let bus_to_fmt = datetime19.;'; + put '%let processed_fmt = datetime19.;'; + put '%let tech_from_fmt = format=datetime19.;'; + put '%let tech_to_fmt = format=datetime19.;'; + put '%put &=stripcols;'; + put '%put &=pk;'; + put 'data _null_;'; + put 'set work.bitemp_cols;'; + put 'if type=2 or type=6 then do;'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'if format='''' then fmt=cats(length,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put 'if upcase(name)="%upcase(&bus_from)" then'; + put 'call symputx(''bus_from_fmt'',fmt,''L'');'; + put 'else if upcase(name)="%upcase(&bus_to)" then'; + put 'call symputx(''bus_to_fmt'',fmt,''L'');'; + put 'else if upcase(name)="%upcase(&tech_from)" then'; + put 'call symputx(''tech_from_fmt'',"format="!!fmt,''L'');'; + put 'else if upcase(name)="%upcase(&tech_to)" then'; + put 'call symputx(''tech_to_fmt'',"format="!!fmt,''L'');'; + put 'else if upcase(name)="%upcase(&processed)" then'; + put 'call symputx(''processed_fmt'',fmt,''L'');'; + put 'run;'; + put '%if %index(%quote(&cols),___TMP___) %then %do;'; + put '%let msg=%str(Table contains a variable name containing "___TMP___".%trim('; + put ') This may conflict with temp variable generation!!);'; + put '%mp_abort(msg=&msg,mac=bitemporal_dataloader);'; + put '%let syscc=5;'; + put '%return;'; + put '%end;'; + put '/* if transaction dates appear on the APPEND table, need to remove them */'; + put '%local drop_tx_dates /* used in append table */'; + put 'drop_tx_dates_noobs /* used to take the base table structure */;'; + put '%if %mf_existvar(&append_lib..&append_dsn, &tech_from)'; + put '%then %let drop_tx_dates=&tech_from;'; + put '%if %mf_existvar(&append_lib..&append_dsn, &tech_to)'; + put '%then %let drop_tx_dates=&drop_tx_dates &tech_to;'; + put '%if %length(%trim(&drop_tx_dates))>0'; + put '%then %let drop_tx_dates=(drop=&drop_tx_dates);'; + put '%if %mf_existvar(&basecopy, &tech_from)'; + put '%then %let drop_tx_dates_noobs=&tech_from;'; + put '%if %mf_existvar(&basecopy, &tech_to)'; + put '%then %let drop_tx_dates_noobs=&drop_tx_dates_noobs &tech_to;'; + put '%if %length(%trim(&drop_tx_dates_noobs))>0'; + put '%then %let drop_tx_dates_noobs=(drop=&drop_tx_dates_noobs obs=0);'; + put '%else %let drop_tx_dates_noobs=(obs=0);'; + put '/**'; + put '* Lock the table. This is necessary as we are doing a two part update (first'; + put '* closing records then appending new records). It is theoretically possible'; + put '* that an upload may occur whilst preparing the staging tables. And the'; + put '* staging tables are about to be prepared..'; + put '*/'; + put '%if &LOADTARGET = YES %then %do;'; + put '%mp_lockanytable(LOCK,'; + put 'lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE,ctl_ds=&dclib..mpe_lockanytable'; + put ')'; + put '%end;'; + put '%else %do;'; + put '/* not an actual load, so avoid updating the max key table in next step. */'; + put '%let rk_update_maxkeytable=NO;'; + put '%end;'; + put '%if %length(&RK_UNDERLYING)>0 %then %do;'; + put '%mp_retainedkey('; + put 'base_lib=&base_lib'; + put ',base_dsn=&base_dsn'; + put ',append_lib=&append_lib'; + put ',append_dsn=&append_dsn'; + put ',retained_key=&pk'; + put ',business_key=&rk_underlying'; + put ',check_uniqueness=&CHECK_UNIQUENESS'; + put ',outds=work.append'; + put '%if &rk_update_maxkeytable=NO %then %do;'; + put ',maxkeytable=0'; + put '%end;'; + put '%else %do;'; + put ',maxkeytable=&dclib..&RK_MAXKEYTABLE'; + put '%end;'; + put ',locktable=&dclib..mpe_lockanytable'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then %do;'; + put ',filter_str=%str( (where=( &now < &tech_to)) )'; + put '%end;'; + put ')'; + put '%end;'; + put '%else %do;'; + put 'proc sql;'; + put 'create view work.append as select * from &append_lib..&append_dsn;'; + put '%end;'; + put '/**'; + put '* generate md5 for append table'; + put '*/'; + put '/* it is possible the source dataset has additional (unwanted) columns.'; + put 'Drop if specified; */'; + put '%if %length(&keepvars)>0 %then %do;'; + put '/* remove tech dates from keepvars as they are generated later */'; + put '%let keepvars=%sysfunc(tranwrd(%str( &keepvars ),%str( &tech_from ),%str( )));'; + put '%let keepvars=%sysfunc(tranwrd(%str( &keepvars ),%str( &tech_to ),%str( )));'; + put '%let keepvars=(keep=&keepvars &bus_from &bus_to &processed &md5_col);'; + put '%end;'; + put '/* CAS varchar types cause append issues here, so perform autoconvert'; + put 'by creating empty local table first */'; + put 'data;'; + put 'set &base_lib..&base_dsn &drop_tx_dates_noobs;'; + put 'run;'; + put '%local emptybasetable; %let emptybasetable=&syslast;'; + put 'data work.bitemp0_append &keepvars &outds_del(drop=&md5_col )'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put '/nonote2err'; + put '%end;'; + put ';'; + put '/* apply formats for bitemporal vars but not tx dates which are added later */'; + put '%if %length(&keepvars)>0 and &loadtype=BITEMPORAL %then %do;'; + put 'format &bus_from &bus_from_fmt;'; + put 'format &bus_to &bus_to_fmt;'; + put '%end;'; + put 'set &emptybasetable /* base table reqd in case append has fewer cols */'; + put 'work.append &drop_tx_dates;'; + put '%if %length(%str(&bus_from_override))>0 %then %do;'; + put '&bus_from= %unquote(&bus_from_override) ;'; + put '%end;'; + put '%if %length(%str(&bus_to_override))>0 %then %do;'; + put '&bus_to= %unquote(&bus_to_override) ;'; + put '%end;'; + put 'length &md5_col $32;'; + put '&md5_col=put(md5(&stripcols),hex32.);'; + put '%if %length(&processed)>0 %then %do;'; + put 'format &processed &processed_fmt;'; + put '&processed=&now;'; + put '%end;'; + put '/**'; + put '* If a delete column exists then create the delete dataset'; + put '*/'; + put '%if %mf_existvar(&append_lib..&append_dsn, &delete_col) %then %do;'; + put 'drop &delete_col;'; + put 'if upcase(&delete_col) = "YES" then output &outds_del ;'; + put 'else output work.bitemp0_append ;'; + put 'run;'; + put '%if %mf_getattrn(&outds_del,NLOBS)>0 %then %do;'; + put '%bitemporal_closeouts('; + put 'tech_from=&tech_from'; + put ',tech_to = &tech_to'; + put ',base_lib=&base_lib'; + put ',base_dsn=&base_dsn'; + put ',append_lib=work'; + put ',append_dsn=%scan(&outds_del,-1,.)'; + put ',PK=&bus_from &pk'; + put ',NOW=&dbnow'; + put ',loadtarget=&loadtarget'; + put ',loadtype=&loadtype'; + put ')'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put 'output work.bitemp0_append;'; + put 'run;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc gt 0 at line 494)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc)'; + put ')'; + put '%if %length(&close_vars)>0 %then %do;'; + put '/**'; + put '* need to close out records that are not provided'; + put '*/'; + put 'proc sql;'; + put 'create table bitemp1_closevars1 as'; + put 'select distinct a.%mf_getquotedstr(in_str=&pk,dlm=%str(,a.),quote=)'; + put 'from &base_lib..&base_dsn a'; + put 'inner join work.bitemp0_append b'; + put 'on 1=1'; + put '/* join on closevars key */'; + put '%do idx_pk=1 %to %sysfunc(countw(&close_vars));'; + put '%let idx_val=%scan(&close_vars,&idx_pk);'; + put 'and a.&idx_val=b.&idx_val'; + put '%end;'; + put '/* filter base on tech dates if necessary */'; + put '%if &loadtype=TXTEMPORAL %then %do;'; + put 'where a.&tech_from <=&now and &now < a.&tech_to'; + put '%end;'; + put ';'; + put 'create table bitemp1_closevars2 as'; + put 'select distinct a.*'; + put 'from bitemp1_closevars1 a'; + put 'left join work.bitemp0_append b'; + put 'on 1=1'; + put '/* join on primary key */'; + put '%do idx_pk=1 %to %sysfunc(countw(&pk));'; + put '%let idx_val=%scan(&pk,&idx_pk);'; + put 'and a.&idx_val=b.&idx_val'; + put '%end;'; + put '/* identify removed records by null value in a field in PK but not close_vars'; + put '*/'; + put 'where b.%scan('; + put '%mf_wordsInStr1ButNotStr2(Str1=&pk,Str2=&close_vars),1,%str( )'; + put ') IS NULL'; + put ';'; + put '%if %mf_getattrn(bitemp1_closevars2,NLOBS)>0 %then %do;'; + put '%bitemporal_closeouts('; + put 'tech_from=&tech_from'; + put ',tech_to = &tech_to'; + put ',base_lib=&base_lib'; + put ',base_dsn=&base_dsn'; + put ',append_lib=work'; + put ',append_dsn=bitemp1_closevars2'; + put ',PK=&bus_from &pk'; + put ',NOW=&dbnow'; + put ',loadtarget=&loadtarget'; + put ',loadtype=&loadtype'; + put ')'; + put '%end;'; + put '%end;'; + put '/* return if nothing to load (was just deletes) */'; + put '%if %mf_getattrn(work.bitemp0_append,NLOBS)=0 %then %do;'; + put '%put NOTE:; %put NOTE-;%put NOTE-;%put NOTE-;'; + put '%put NOTE- No updates - just deletes!;'; + put '%put NOTE-;%put NOTE-;%put NOTE-;'; + put '%mp_lockanytable(UNLOCK,'; + put 'lib=&base_lib,ds=&base_dsn,'; + put 'ref=&ETLSOURCE,'; + put 'ctl_ds=&dclib..mpe_lockanytable'; + put ')'; + put '%if %mf_getattrn(&outds_del,NLOBS)>0 %then %do;'; + put '%let user=%mf_getUser();'; + put '/* no emails yet'; + put '%sumo_alerts(ALERT_EVENT=UPDATE'; + put ', ALERT_TARGET=&base_lib..&base_dsn'; + put ', from_user= &user);*/'; + put '%end;'; + put '%return;'; + put '%end;'; + put '/**'; + put '* If applying manual overrides to business dates, then the input table MUST'; + put '* be unique on the PK. Check, and if not - abort.'; + put '*/'; + put '%local msg;'; + put '%if %length(&bus_from_override.&bus_to_override)>0 or &CHECK_UNIQUENESS=YES'; + put '%then %do;'; + put 'proc sort data=work.bitemp0_append out=work.bitemp0_check nodupkey;'; + put 'by &pk;'; + put 'run;'; + put '%if %mf_getattrn(work.bitemp0_check,NLOBS)'; + put 'ne %mf_getattrn(work.bitemp0_append,NLOBS)'; + put '%then %do;'; + put '%let msg=INPUT table &append_lib..&append_dsn is not unique on PK (&pk);'; + put '%mp_lockanytable(UNLOCK,lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE (&msg),'; + put 'ctl_ds=&dclib..mpe_lockanytable'; + put ')'; + put '%mp_abort(msg=&msg,mac=bitemporal_dataloader.sas);'; + put '%end;'; + put '%end;'; + put '/**'; + put '* extract from BASE table. Only want matching records, as could be very BIG.'; + put '* New records are subsequently identified via left join and test for nulls.'; + put '*/'; + put '%local temp_table temp_table2 base_table baselib_schema;'; + put '%put DCNOTE: Extracting matching observations from &base_lib..&base_dsn;'; + put '%if &engine_type=OLEDB %then %do;'; + put '%let temp_table=##BITEMP_&base_dsn;'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then'; + put '%let base_table=(select * from [dbo].&base_dsn'; + put 'where convert(datetime,&SQLNOW) < &tech_to );'; + put '%else %let base_table=[dbo].&base_dsn;'; + put 'proc sql;'; + put 'create table &base_lib.."&temp_table"n as'; + put 'select * from work.bitemp0_append;'; + put '/* open up a connection for pass through SQL */'; + put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; + put 'create table work.bitemp0_base as select * from connection to myAlias('; + put '%end;'; + put '%else %if &engine_type=REDSHIFT or &engine_type=POSTGRES %then %do;'; + put '/* grab schema */'; + put '%let baselib_schema=%mf_getschema(&base_lib);'; + put '%if &baselib_schema.X ne X %then %let baselib_schema=&baselib_schema..;'; + put '/* grab redshift config */'; + put '%local redcnt; %let redcnt=0;'; + put '%if &engine_type=REDSHIFT %then %do;'; + put 'data _null_;'; + put 'set &config_table(where=(var_scope=''DCBL_REDSH'' and var_active=1));'; + put 'x+1;'; + put 'call symputx(cats(''rednm'',x),var_value,''l'');'; + put 'call symputx(cats(''redval'',x),var_value,''l'');'; + put 'call symputx(''redcnt'',x,''l'');'; + put 'run;'; + put '%end;'; + put '/* cannot persist temp tables so must create a temporary permanent table */'; + put '%let temp_table=%mf_getuniquename(prefix=XDCTEMP);'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then'; + put '%let base_table=(select * from &baselib_schema.&base_dsn'; + put 'where timestamp &sqlnow < &tech_to );'; + put '%else %let base_table=&baselib_schema.&base_dsn;'; + put '/* make empty table first - must clone & drop extra cols as autoload is bad */'; + put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; + put 'exec (create table &temp_table (like &baselib_schema.&base_dsn)) by myAlias;'; + put '%if &engine_type=REDSHIFT %then %do;'; + put 'exec (alter table &temp_table alter sortkey none) by myAlias;'; + put '%end;'; + put '%local dropcols;'; + put '%let dropcols=%mf_wordsinstr1butnotstr2('; + put 'str1=%upcase(%mf_getvarlist(&basecopy))'; + put ',str2=%upcase(&pk)'; + put ');'; + put '%if %length(&dropcols>0) %then %do idx_pk=1 %to %sysfunc(countw(&dropcols));'; + put '%put &=dropcols;'; + put '%let idx_val=%scan(&dropcols,&idx_pk);'; + put 'exec(alter table &temp_table drop column &idx_val;) by myAlias;'; + put '%end;'; + put 'exec (alter table &temp_table add column &md5_col varchar(32);) by myAlias;'; + put '/* create view to strip formats and avoid warns in log */'; + put 'data work.vw_bitemp0/view=work.vw_bitemp0;'; + put 'set work.bitemp0_append(keep=&pk &md5_col);'; + put 'format _all_;'; + put 'run;'; + put 'proc append base=&base_lib..&temp_table'; + put '%if &engine_type=REDSHIFT %then %do;'; + put '('; + put '%do idx_pk=1 %to &redcnt;'; + put '&&rednm&idx_pk = &&redval&idxpk'; + put '%end;'; + put ')'; + put '%end;'; + put 'data=work.vw_bitemp0 force nowarn;'; + put 'run;'; + put '/* open up a connection for pass through SQL */'; + put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; + put 'create table work.bitemp0_base as select * from connection to myAlias('; + put '%end;'; + put '%else %if &engine_type=CAS %then %do;'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then'; + put '%let base_table=&base_lib..&base_dsn'; + put '(where=(&tech_from <=&now and &now < &tech_to));'; + put '%else %let base_table=&base_lib..&base_dsn;'; + put '%let temp_table=CASUSER.%mf_getuniquename(prefix=DC);'; + put 'data &temp_table;'; + put 'set work.bitemp0_append;'; + put 'run;'; + put '%let bitemp0base=CASUSER.%mf_getuniquename(prefix=DC);'; + put 'proc fedsql sessref=dcsession;'; + put 'create table &bitemp0base{options replace=true} as'; + put '%end;'; + put '%else %do;'; + put '%let temp_table=work.bitemp0_append;'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then'; + put '%let base_table=&base_lib..&base_dsn'; + put '(where=(&tech_from <=&now and &now < &tech_to));'; + put '%else %let base_table=&base_lib..&base_dsn;'; + put 'proc sql;'; + put 'create table work.bitemp0_base as'; + put '%end;'; + put 'select a.&md5_col /* this identifies NEW records */'; + put ', b.*'; + put '/* assume first PK field cannot be null (if defined in a PK constraint then'; + put 'it definitely cannot be null) */'; + put ', case when b.%scan(&pk,1) IS NULL then 1 else 0 end as ___TMP___NEW_FLG'; + put 'from &baselib_schema.&temp_table a'; + put 'left join &base_table b'; + put 'on 1=1'; + put '%do idx_pk=1 %to &pk_cnt;'; + put '%let idx_val=%scan(&pk,&idx_pk);'; + put 'and a.&idx_val=b.&idx_val'; + put '%end;'; + put '%if &engine_type=OLEDB or &engine_type=REDSHIFT or &engine_type=POSTGRES'; + put '%then %do;'; + put '); proc sql; drop table &base_lib.."&temp_table"n;'; + put '%end;'; + put '%else %if &engine_type=CAS %then %do;'; + put ';'; + put 'quit;'; + put 'data work.bitemp0_base;'; + put 'set &bitemp0base;'; + put 'run;'; + put 'proc sql;'; + put 'drop table &temp_table;'; + put 'drop table &bitemp0base;'; + put '%end;'; + put '%else %do;'; + put ';'; + put '%end;'; + put '/**'; + put '* matching & changed records are those without NULL key values'; + put '* &idx_val resolves to rightmost PK value (loop above)'; + put '*/'; + put '%put syscc (line525)=&syscc, sqlrc=&sqlrc;'; + put '%mp_abort(iftrue= (&syscc gt 0 or &sqlrc>0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc sqlrc=&sqlrc)'; + put ')'; + put '%put hashcols2=&stripcols;'; + put 'proc sql;'; + put 'create table work.bitemp1_current(drop=___TMP___NEW_FLG) as'; + put 'select *'; + put ', put(md5(&stripcols),$hex32.) as &md5_col'; + put 'from work.bitemp0_base (drop=&md5_col)'; + put 'where ___TMP___NEW_FLG=0;'; + put '/**'; + put '* NEW records were identified in ___TMP___NEW_FLG in bitemp0_base'; + put '*/'; + put 'proc sql;'; + put 'create table &outds_add'; + put '(drop=&md5_col'; + put '%if %mf_existvar(work.bitemp0_base, &delete_col) %then %do;'; + put '&delete_col'; + put '%end;'; + put ')'; + put 'as select a.*'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then %do;'; + put ',&now as &tech_from &tech_from_fmt'; + put ',&high_date as &tech_to &tech_to_fmt'; + put '%end;'; + put 'from work.bitemp0_append a /* STAGING records (mix of existing & new) */'; + put ', work.bitemp0_base b /* BASE records (contains null values for new) */'; + put 'where a.&md5_col=b.&md5_col /* took staging md5 across in left join */'; + put 'and b.___TMP___NEW_FLG=1; /* NEW records also identified in bitemp0_base */'; + put '/**'; + put '* identify INSERTS. These are records with the same business key but'; + put '* the bus_from and bus_to value are higher / lower (respectively)'; + put '* such that the existing record needs to be SPLIT to surround the new'; + put '* record.'; + put '* eg: OLD RECORD from=1 to=10'; + put '* NEW RECORD from=5 to=7'; + put '*'; + put '* APPENDED RECORDS:'; + put '* - from=1 to=5'; + put '* - from=5 to=7'; + put '* - from=7 to=10'; + put '*/'; + put '/* inserts cannot happen with TXTEMPORAL */'; + put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL %then %do;'; + put '/* IDENTIFY */'; + put 'create table work.bitemp3_inserts as'; + put 'select b.*'; + put ',a.&bus_from as ___TMP___from'; + put ',a.&bus_to as ___TMP___to'; + put 'from work.bitemp0_append a'; + put ',work.bitemp1_current b'; + put 'where a.&bus_from > b.&bus_from'; + put 'and a.&bus_to < b.&bus_to'; + put '%do idx_pk=1 %to &pk_cnt;'; + put '%let idx_val=%scan(&pk,&idx_pk);'; + put 'and a.&idx_val=b.&idx_val'; + put '%end;'; + put 'order by'; + put '/* compress blanks and then insert commas (as the datetime fields may'; + put 'not be in use) */'; + put '%sysfunc(tranwrd(%sysfunc(compbl('; + put '&pk &bus_from &bus_to &processed'; + put ')),%str( ), %str(,)))'; + put ';'; + put '/* SPLIT */'; + put 'data work.bitemp3a_inserts (drop=___TMP___from ___TMP___retain ___TMP___to) ;'; + put 'set work.bitemp3_inserts;'; + put 'by &pk &bus_from &bus_to &processed;'; + put 'if first.&idx_val then do;'; + put '___TMP___retain=&bus_to;'; + put '&bus_to=___TMP___from;'; + put 'output;'; + put '&bus_to=___TMP___retain;'; + put 'end;'; + put 'if last.&idx_val then do;'; + put '&bus_from=___TMP___to;'; + put 'output;'; + put 'end;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '/* TX temporal load */'; + put 'data work.bitemp3a_inserts;'; + put 'set work.bitemp1_current;'; + put 'stop;'; + put 'run;'; + put '%end;'; + put '/* APPEND */'; + put 'proc sql;'; + put 'create view work.bitemp3a_view as'; + put 'select * from work.bitemp1_current'; + put 'where &md5_col not in (select &md5_col from work.bitemp3a_inserts);'; + put 'data bitemp3b_newbase;'; + put 'set work.bitemp3a_inserts work.bitemp3a_view;'; + put 'run;'; + put '/** do not use! this converts short numerics into 8 bytes'; + put 'proc sql;'; + put 'create table work.bitemp3b_newbase as'; + put 'select * from work.bitemp3a_inserts'; + put 'union corr'; + put 'select * from work.bitemp1_current'; + put 'where &md5_col not in (select &md5_col from work.bitemp3a_inserts);'; + put '*/'; + put '/**'; + put '* identify CHANGED records from staging.'; + put '* Same business key with different temporal dates or md5 value'; + put '* This table must be overlayed onto / into existing business history'; + put '*/'; + put 'proc sql;'; + put 'create table work.bitemp4_updated as select distinct a.*'; + put 'from work.bitemp0_append a'; + put ',work.bitemp3b_newbase b'; + put 'where 1=1'; + put '%do idx_pk=1 %to &pk_cnt;'; + put '%let idx_val=%scan(&pk,&idx_pk);'; + put 'and a.&idx_val=b.&idx_val'; + put '%end;'; + put 'and ( a.&md5_col ne b.&md5_col'; + put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL %then %do;'; + put 'OR (a.&bus_from ne b.&bus_from or a.&bus_to ne b.&bus_to)'; + put '%end;'; + put ')'; + put ';'; + put '/**'; + put '* This section would have been one simple step with union all'; + put '* but that converts short numerics into 8 bytes!'; + put '* so, convoluted alternative to retain the same functionality.'; + put '*/'; + put '/* base records */'; + put 'create view work.bitemp4_prep1 as'; + put 'select ''BASE'' as ___TMP___'; + put ',b.*'; + put 'from work.bitemp4_updated a'; + put ',work.bitemp3b_newbase b'; + put 'where 1'; + put '%do idx_pk=1 %to &pk_cnt;'; + put '%let idx_val=%scan(&pk,&idx_pk);'; + put 'and a.&idx_val=b.&idx_val'; + put '%end;'; + put ';'; + put '/* updated records */'; + put 'create view work.bitemp4_prep2 as'; + put 'select ''STAG'' as ___TMP___ ,*'; + put 'from work.bitemp4_updated;'; + put '/* ensure we only keep columns that appear in both */'; + put '%local bp1 bp2 bp3 bp4;'; + put '%let bp1=%mf_getvarlist(bitemp4_prep1);'; + put '%let bp2=%mf_getvarlist(bitemp4_prep2);'; + put '%let bp3=%mf_wordsInStr1ButNotStr2(Str1=&bp1,Str2=&bp2);'; + put '%let bp4=%mf_wordsInStr1ButNotStr2(Str1=&bp2,Str2=&bp1);'; + put 'data work.bitemp4_prep3/view=bitemp4_prep3;'; + put 'set bitemp4_prep1 bitemp4_prep2;'; + put '%if %length(XX&bp3&bp4)>2 %then %do;'; + put 'drop &bp3 &bp4 ;'; + put '%end;'; + put 'run;'; + put '/* remove duplicates */'; + put 'proc sql;'; + put 'create table work.bitemp4a_allrecs as'; + put 'select distinct *'; + put 'from work.bitemp4_prep3'; + put 'order by'; + put '/* compress blanks and then insert commas (as the datetime fields'; + put 'may not be in use) */'; + put '%sysfunc(tranwrd(%sysfunc(compbl('; + put '&pk &bus_from &bus_to &processed'; + put ')),%str( ), %str(,)))'; + put ';'; + put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL %then %do;'; + put '/* this section aligns the business dates'; + put '(eg for inserts or overlaps in the range) */'; + put 'data work.bitemp4b_firstpass (drop=___TMP___cond ___TMP___from ___TMP___to );'; + put 'set work.bitemp4a_allrecs;'; + put 'by &pk &bus_from &bus_to &processed;'; + put 'retain ___TMP___cond ''Name of Condition'';'; + put 'retain ___TMP___from ___TMP___to 0;'; + put '___TMP___md5lag=lag(&md5_col);'; + put '/* reset retained variables */'; + put 'if first.&idx_val then do;'; + put 'call missing (___TMP___cond, ___TMP___from, ___TMP___to,___TMP___md5lag);'; + put 'end;'; + put 'else do;'; + put '/* if record is identical, carry forward bus_from (and bus_to if higher)*/'; + put 'if &md5_col=___TMP___md5lag then do;'; + put '&bus_from=___TMP___from;'; + put 'if &bus_to<___TMP___to then &bus_to=___TMP___to;'; + put 'end;'; + put 'end;'; + put 'if ___TMP___=''STAG'' then do;'; + put '/* need to carry forward the closing record */'; + put '___TMP___cond=''Condition 1'';'; + put 'end;'; + put 'else if ___TMP___cond=''Condition 1'' then do;'; + put '/* else ensure bus_from starts from prior record bus_to */'; + put 'if &md5_col ne ___TMP___md5lag and &bus_from <= ___TMP___to'; + put 'then &bus_from= ___TMP___to;'; + put '/* new record may replace old record entirely */'; + put 'if &bus_to <= &bus_from then delete;'; + put 'else call missing (___TMP___cond, ___TMP___from, ___TMP___to);'; + put 'end;'; + put '___TMP___from=&bus_from;'; + put '___TMP___to=&bus_to;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '/* keep staged records only */'; + put 'data work.bitemp4b_firstpass;'; + put 'set work.bitemp4a_allrecs;'; + put 'if ___TMP___=''STAG'';'; + put 'run;'; + put '%end;'; + put '/* next phase is to pass through in reverse - so set up the sort statement */'; + put '%local byvar;'; + put '%do idx_pk=1 %to &pk_cnt;'; + put '%let byvar=&byvar descending %scan(&pk,&idx_pk);'; + put '%end;'; + put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL'; + put '%then %let byvar=&byvar descending &bus_from descending &bus_to;'; + put '/* if matching bus dates supplied, need to ensure we also have a sort'; + put 'between BASE and STAGING tables */'; + put '%let byvar=&byvar descending ___TMP___;'; + put 'proc sort data=work.bitemp4b_firstpass out=work.bitemp4c_sort ;'; + put 'by &byvar;'; + put 'run;'; + put '/**'; + put '* Now (in reverse) pass back business start dates'; + put '*/'; + put 'data work.bitemp4d_secondpass;'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then %do;'; + put '&tech_from=&now;'; + put '&tech_to=&high_date;'; + put '%end;'; + put 'set work.bitemp4c_sort ;'; + put 'by &byvar;'; + put 'retain ___TMP___cond ''Name of Condition'';'; + put 'retain ___TMP___from ___TMP___to 0;'; + put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL %then %do;'; + put '/* put / _all_ /;*/'; + put '___TMP___md5lag=lag(&md5_col);'; + put 'if first.&idx_val then do;'; + put '/* reset retained variables */'; + put 'call missing (___TMP___cond,___TMP___from,___TMP___to,___TMP___md5lag);'; + put 'end;'; + put 'else do;'; + put '/* if record is identical, carry back bus_to */'; + put 'if &md5_col=___TMP___md5lag then &bus_to=___TMP___to;'; + put 'end;'; + put 'if ___TMP___=''STAG'' then do;'; + put '/* need to carry forward the closing record */'; + put '___TMP___cond=''Condition 2'';'; + put 'end;'; + put 'else if ___TMP___cond=''Condition 2'' then do;'; + put '/* else ensure bus_to stops at subsequent record bus_from */'; + put 'if &md5_col ne ___TMP___md5lag and &bus_to >= ___TMP___from'; + put 'then &bus_to= ___TMP___from;'; + put '/* new record may replace old record entirely */'; + put 'if &bus_from >= &bus_to then delete;'; + put 'if &bus_from=___TMP___from and &bus_to=___TMP___to then delete;'; + put 'else call missing (___TMP___cond, ___TMP___from, ___TMP___to);'; + put 'end;'; + put '___TMP___from=&bus_from;'; + put '___TMP___to=&bus_to;'; + put '%end;'; + put 'run;'; + put '%put syscc (line600)=&syscc;'; + put '/**'; + put 'There may still be some records (eg old business history) which have not'; + put 'changed.'; + put 'Need to identify these and remove from the append so they are not updated'; + put 'unnecessarily. This is done by generating a new md5 (which INCLUDES the'; + put 'business key) and any matching / identical records are split out (from those'; + put 'that need to be updated).'; + put '*/'; + put '%if &loadtype=BITEMPORAL %then %do;'; + put '%let cat_string=catx(''|'' ,&bus_from,&bus_to);'; + put 'data bitemp5a_lkp (keep=&md5_col);'; + put 'set bitemp0_base;'; + put '/* for BITEMPORAL we need to compare business dates also */'; + put '&md5_col=put(md5(&cat_string!!''|''!!&stripcols),$hex32.);'; + put 'run;'; + put 'data bitemp5b_updates;'; + put 'set bitemp4d_secondpass;'; + put 'if _n_=1 then do;'; + put 'dcl hash md5_lkp(dataset:''bitemp5a_lkp'');'; + put 'md5_lkp.definekey("&md5_col");'; + put 'md5_lkp.definedone();'; + put 'end;'; + put '/* drop old md5 col as will rebuild with new business dates */'; + put '&md5_col=put(md5(&cat_string!!''|''!!&stripcols),$hex32.) ;'; + put 'if md5_lkp.check()=0 then delete;'; + put 'run;'; + put 'proc sql;'; + put '/* get min bus from as will update (close out) all records from this point'; + put '(for that PK)*/'; + put 'create table work.bitemp5d_subquery as'; + put 'select &pk_comma, min(&bus_from)as &bus_from, max(&bus_to) as &bus_to'; + put 'from work.bitemp5b_updates'; + put 'group by &pk_comma;'; + put '/* index has a huge efficiency impact on upcoming nested subquery */'; + put 'create index index1 on work.bitemp5d_subquery(&pk_comma,&bus_from, &bus_to);'; + put '%let lastds=work.bitemp5b_updates;'; + put '%end;'; + put '%else %if &loadtype=TXTEMPORAL or &loadtype=UPDATE %then %do;'; + put 'proc sql;'; + put 'create table work.bitemp5d_subquery as'; + put 'select distinct &pk_comma'; + put 'from bitemp4d_secondpass;'; + put '%let lastds=work.bitemp4d_secondpass;'; + put '%end;'; + put '%else %let lastds=work.bitemp4d_secondpass;'; + put '/* create single append table (an overlapped pre-sert may be classed as'; + put 'both an update AND a new record). Also create temp views that may be'; + put 'used for pre-load analysis. */'; + put 'data &outds_mod;'; + put 'set &lastds(drop=___TMP___: &md5_col);'; + put 'run;'; + put 'data bitemp6_allrecs / view=bitemp6_allrecs;'; + put 'set &outds_mod /* UPDATED records */'; + put '&outds_add /* NEW records */;'; + put 'run;'; + put 'proc sort data=work.bitemp6_allrecs'; + put 'out=work.bitemp6_unique'; + put 'noduprec'; + put 'dupout=work.xx_BADBADBAD;'; + put 'by _all_;'; + put 'run;'; + put '/* we have all our temp tables now so exit if this is all that is needed */'; + put '%if &LOADTARGET ne YES %then %return;'; + put '/* also exit if an err condition exists */'; + put '%put syscc=&syscc;'; + put '%if &syscc>0 %then %do;'; + put '%let msg=Bitemporal transform / job aborted due to SYSCC=&SYSCC status;'; + put '%mp_lockanytable(UNLOCK,lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE (&msg),'; + put 'ctl_ds=&dclib..mpe_lockanytable'; + put ')'; + put '%mp_abort(msg=&msg);'; + put '%end;'; + put '/* final check - abort if a lock has appeared on the target table */'; + put '%mp_lockfilecheck(libds=&base_lib..&base_dsn)'; + put '/**'; + put '* STAGING TABLES PREPARED, ERR CONDITION TESTED FOR.. NOW TO LOAD!!'; + put '*/'; + put '/**'; + put '* First, CLOSE OUT changed records (if not a REPLACE)'; + put '* Note that SAS does not support ANSI standard for UPDATE with a join condition.'; + put '* However - this can be worked around using a nested subquery..'; + put '*/'; + put 'data _null_;'; + put 'putlog "&sysmacroname: CLOSEOUTS commencing";'; + put 'run;'; + put '%if %mf_getattrn(&lastds,NLOBS)=0 %then %do;'; + put 'data _null_;'; + put 'putlog "&sysmacroname: No closeouts needed";'; + put 'run;'; + put '%end;'; + put '%else %if &engine_type=CAS %then %do;'; + put '%mp_abort(iftrue= (&loadtype=BITEMPORAL or &loadtype=TXTEMPORAL)'; + put ',mac=&sysmacroname in &_program'; + put ',msg=%str(&loadtype not yet supported in CAS engine)'; + put ')'; + put '/* create temp table for deletions */'; + put '%local delds;%let delds=%mf_getuniquename(prefix=DC);'; + put 'data casuser.&delds;'; + put 'set work.bitemp5d_subquery;'; + put 'run;'; + put '/* delete the records */'; + put 'proc cas ;'; + put 'table.deleteRows / table={'; + put 'caslib="&base_lib",'; + put 'name="&base_dsn",'; + put 'where="1=1",'; + put 'whereTable={caslib=''CASUSER'',name="&delds"}'; + put '};'; + put 'quit;'; + put '/* drop temp table */'; + put 'proc sql;'; + put 'drop table CASUSER.&delds;'; + put '%end;'; + put '%else %if (&loadtype=BITEMPORAL or &loadtype=TXTEMPORAL or &loadtype=UPDATE)'; + put '%then %do;'; + put 'data _null_;'; + put 'putlog "&sysmacroname: &loadtype operation using &engine_type engine";'; + put 'run;'; + put '%local flexinow;'; + put 'proc sql;'; + put '/* if OLEDB then create a temp table for efficiency */'; + put '%local innertable;'; + put '%if &engine_type=OLEDB %then %do;'; + put '%let innertable=[##BITEMP_&base_dsn];'; + put '%let top_table=[dbo].&base_dsn;'; + put '%let flexinow=&SQLNOW;'; + put 'create table &base_lib.."##BITEMP_&base_dsn"n as'; + put 'select * from work.bitemp5d_subquery;'; + put '/* open up a connection for pass through SQL */'; + put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; + put 'execute('; + put '%end;'; + put '%else %if &engine_type=REDSHIFT or &engine_type=POSTGRES %then %do;'; + put '%let innertable=%mf_getuniquename(prefix=XDCTEMP);'; + put '%let top_table=&baselib_schema.&base_dsn;'; + put '%let flexinow=timestamp &SQLNOW;'; + put '/* make empty table first - must clone & drop extra cols'; + put 'as autoload is bad */'; + put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; + put 'exec (create table &innertable (like &baselib_schema.&base_dsn)) by myAlias;'; + put '%if &engine_type=REDSHIFT %then %do;'; + put 'exec (alter table &innertable alter sortkey none) by myAlias;'; + put '%end;'; + put '%let dropcols=%mf_wordsinstr1butnotstr2('; + put 'str1=%upcase(%mf_getvarlist(&basecopy))'; + put ',str2=%upcase(%mf_getvarlist(work.bitemp5d_subquery))'; + put ');'; + put '%if %length(&dropcols>0) %then %do idx_pk=1 %to %sysfunc(countw(&dropcols));'; + put '%put &=dropcols;'; + put '%let idx_val=%scan(&dropcols,&idx_pk);'; + put 'exec(alter table &innertable drop column &idx_val;) by myAlias;;'; + put '%end;'; + put '/* create view to strip formats and avoid warns in log */'; + put 'data work.vw_bitemp5d/view=work.vw_bitemp5d;'; + put 'set work.bitemp5d_subquery;'; + put 'format _all_;'; + put 'run;'; + put 'proc append base=&base_lib..&innertable ('; + put '%do idx_pk=1 %to &redcnt;'; + put '&&rednm&idx_pk = &&redval&idxpk'; + put '%end;'; + put ')'; + put 'data=work.vw_bitemp5d force nowarn;'; + put 'run;'; + put '/* open up a connection for pass through SQL */'; + put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; + put 'execute('; + put '%end;'; + put '%else %do;'; + put '%let innertable=bitemp5d_subquery;'; + put '%let top_table=&base_lib..&base_dsn;'; + put '%let flexinow=&now;'; + put '%end;'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then %do;'; + put 'update &top_table set &tech_to=&flexinow'; + put '%if %length(&processed)>0 %then %do;'; + put ',&processed=&flexinow'; + put '%end;'; + put 'where &tech_from <= &flexinow and &flexinow < &tech_to and'; + put '%end;'; + put '%else %if &loadtype=UPDATE %then %do;'; + put '/* changed records are deleted then re-appended when doing UPDATEs */'; + put 'delete from &top_table where'; + put '%end;'; + put '%else %do;'; + put '%put %str(ERR)OR: BUSTEMPORAL NOT YET SUPPORTED;'; + put '%let syscc=5;'; + put '%mp_lockanytable(UNLOCK,lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE,'; + put 'ctl_ds=&dclib..mpe_lockanytable'; + put ')'; + put '%goto end_of_macro;'; + put '%end;'; + put '/* perform join inside query as per'; + put 'http://stackoverflow.com/questions/24629793/update-with-a-proc-sql */'; + put 'exists( select 1 from &baselib_schema.&innertable where'; + put '/* loop PK join */'; + put '%do idx_pk=1 %to &pk_cnt;'; + put '%let idx_val=%scan(&pk,&idx_pk);'; + put '&base_dsn..&idx_val=&innertable..&idx_val and'; + put '%end;'; + put '%if &loadtype=BITEMPORAL %then %do;'; + put '&base_dsn..&bus_from >= &innertable..&bus_from'; + put 'and &base_dsn..&bus_to <= &innertable..&bus_to and'; + put '%end;'; + put '/* close the statement */'; + put '1=1);'; + put '%if &engine_type=OLEDB or &engine_type=REDSHIFT or &engine_type=POSTGRES'; + put '%then %do;'; + put ') by myAlias;'; + put 'execute (drop table &baselib_schema.&innertable) by myAlias;'; + put '%end;'; + put '%end;'; + put 'quit;'; + put 'data _null_;'; + put 'putlog "&sysmacroname: Closeout complete";'; + put 'run;'; + put '/**'; + put '* Append the new / updated records'; + put '*/'; + put '%if &engine_type=CAS %then %do;'; + put '/* get varchar variables ready for casting */'; + put '%local vcfmt vcrename vcassign vcdrop;'; + put 'data _null_;'; + put 'set work.bitemp_cols(where=(type=6)) end=last;'; + put 'length vcrename vcassign vcdrop vcfmt $32767 rancol $32;'; + put 'retain vcrename vcassign vcdrop vcfmt;'; + put 'if _n_=1 then vcrename=''(rename=('';'; + put 'rancol=resolve(''%mf_getuniquename()'');'; + put 'vcfmt=trim(vcfmt)!!''length ''!!cats(name)!!'' varchar(*);'';'; + put 'vcrename=trim(vcrename)!!'' ''!!cats(name,''='',rancol);'; + put 'vcassign=cats(vcassign,name,''='',rancol,'';'');'; + put 'vcdrop=cats(vcdrop,''drop ''!!rancol,'';'');'; + put 'if last then do;'; + put 'vcrename=cats(vcrename,''))'');'; + put 'call symputx(''vcfmt'',vcfmt);'; + put 'call symputx(''vcrename'',vcrename);'; + put 'call symputx(''vcassign'',vcassign);'; + put 'call symputx(''vcdrop'',vcdrop);'; + put 'end;'; + put 'run;'; + put '/* prepare a temp cas table with varchars casted */'; + put '%let tmp=%mf_getuniquename();'; + put 'data casuser.&tmp ;'; + put '&vcfmt'; + put 'set work.bitemp6_unique &vcrename;'; + put '&vcassign'; + put '&vcdrop'; + put 'run;'; + put '/* load the table with varchars applied*/'; + put 'data &base_lib..&base_dsn (append=yes )/sessref=dcsession ;'; + put 'set casuser.&tmp;'; + put 'run;'; + put '/* drop temp table */'; + put 'proc sql;'; + put 'drop table CASUSER.&tmp;'; + put '/* this code will not work as regular tables do not have varchars */'; + put '/*'; + put 'proc casutil;'; + put 'load data=work.bitemp6_unique'; + put 'outcaslib="&base_lib" casout="&base_dsn" append ;'; + put 'quit;'; + put '*/'; + put '%end;'; + put '%else %if &engine_type=REDSHIFT or &engine_type=POSTGRES %then %do;'; + put 'proc append base=&base_lib..&base_dsn'; + put '%if &engine_type=REDSHIFT %then %do;'; + put '('; + put '%do idx_pk=1 %to &redcnt;'; + put '&&rednm&idx_pk = &&redval&idxpk'; + put '%end;'; + put ')'; + put '%end;'; + put 'data=bitemp6_unique force nowarn;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put 'proc append base=&base_lib..&base_dsn data=bitemp6_unique force nowarn; run;'; + put '%end;'; + put '%mp_lockanytable(UNLOCK,lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE,'; + put 'ctl_ds=&dclib..mpe_lockanytable'; + put ')'; + put '/* final check on syscc */'; + put '%mp_abort(iftrue= (&syscc >4)'; + put ',mac=&_program'; + put ',msg=%str(!!Upload NOT successful!! Failed on actual update / append stage..)'; + put ')'; + put '%if &outds_audit ne 0 and &LOADTARGET=YES %then %do;'; + put 'data work.vw_outds_orig /view=work.vw_outds_orig;'; + put 'set work.bitemp0_base (drop=&md5_col);'; + put 'where ___TMP___NEW_FLG=0;'; + put 'drop ___TMP___NEW_FLG;'; + put 'run;'; + put '/* update the AUDIT table */'; + put '%if %mf_existds(&outds_audit) %then %do;'; + put 'options mprint;'; + put '%mp_storediffs(&base_lib..&base_dsn'; + put ',work.vw_outds_orig'; + put ',&pk'; + put ',delds=&outds_del'; + put ',modds=&outds_mod'; + put ',appds=&outds_add'; + put ',outds=work.mp_storediffs'; + put ',processed_dttm=&now'; + put ',loadref=%superq(etlsource)'; + put ')'; + put 'data _null_;'; + put 'set work.mp_storediffs;'; + put 'putlog load_ref= libref= dsn= key_hash= tgtvar_nm=;'; + put 'run;'; + put 'proc append base=&outds_audit data=work.mp_storediffs;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc >4)'; + put ',mac=bitemporal_dataloader'; + put ',msg=%str(Problem in audit stage (&outds_audit))'; + put ')'; + put '%let user=%mf_getUser();'; + put '/**'; + put 'Notify as appropriate EMAILS DISABLED'; + put '%sumo_alerts(ALERT_EVENT=UPDATE'; + put ', ALERT_TARGET=&base_lib..&base_dsn'; + put ', from_user= &user);'; + put '*/'; + put '/* monitor BiTemporal usage */'; + put '%if &log=1 %then %do;'; + put '%put syscc=&syscc;'; + put '/* do not perform duration calc in pass through */'; + put '%local dur;'; + put 'data _null_;'; + put 'now=symget(''now'');'; + put 'dur=%sysfunc(datetime())-&now;'; + put 'call symputx(''dur'',dur,''l'');'; + put 'run;'; + put 'proc sql;'; + put 'insert into &dclib..mpe_dataloads'; + put 'set libref=%upcase("&base_lib")'; + put ',DSN=%upcase("&base_dsn")'; + put ',ETLSOURCE="&ETLSOURCE"'; + put ',LOADTYPE="&loadtype"'; + put ',CHANGED_RECORDS=%mf_getattrn(&lastds,NLOBS)'; + put ',NEW_RECORDS=%mf_getattrn(&outds_add,NLOBS)'; + put ',DELETED_RECORDS=%mf_getattrn(&outds_del,NLOBS)'; + put ',DURATION=&dur'; + put ',MAC_VER="v&ver"'; + put ',user_nm="&user"'; + put ',PROCESSED_DTTM=&now;'; + put 'quit;'; + put '%put syscc=&syscc;'; + put '%end;'; + put '%end_of_macro:'; + put '%mend bitemporal_dataloader;'; + put '%macro mp_binarycopy('; + put 'inloc= /* full path and filename of the object to be copied */'; + put ',outloc= /* full path and filename of object to be created */'; + put ',inref=____in /* override default to use own filerefs */'; + put ',outref=____out /* override default to use own filerefs */'; + put ',mode=CREATE'; + put ',iftrue=%str(1=1)'; + put ')/*/STORE SOURCE*/;'; + put '%local mod;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%if &mode=APPEND %then %let mod=mod;'; + put '/* these IN and OUT filerefs can point to anything */'; + put '%if &inref = ____in %then %do;'; + put 'filename &inref &inloc lrecl=1048576 ;'; + put '%end;'; + put '%if &outref=____out %then %do;'; + put 'filename &outref &outloc lrecl=1048576 &mod;'; + put '%end;'; + put '/* copy the file byte-for-byte */'; + put 'data _null_;'; + put 'infile &inref lrecl=1 recfm=n;'; + put 'file &outref &mod recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put '%if &inref = ____in %then %do;'; + put 'filename &inref clear;'; + put '%end;'; + put '%if &outref=____out %then %do;'; + put 'filename &outref clear;'; + put '%end;'; + put '%mend mp_binarycopy;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file refreshtablelineage.sas'; + put '@brief updates the table level lineage'; + put '@details extracts all sources/targets from every job'; + put '

SAS Macros

'; + put '@li mpeinit.sas'; + put '@li bitemporal_dataloader.sas'; + put '@li mp_binarycopy.sas'; + put '@li mf_getuniquefileref.sas'; + put '@version 9.3'; + put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; + put 'downloaded from here: https://4gl.uk/dcdeploy'; + put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; + put 'and may not be re-distributed or re-sold without the express permission of'; + put '4GL Apps Ltd.'; + put '**/'; + put '%mpeinit()'; + put '/* get list of libraries */'; + put '%let fileref1=%mf_getuniquefileref();'; + put 'filename &fileref1 temp;'; + put 'proc metadata in='; + put '"$METAREPOSITORY'; + put 'JobSAS'; + put ''; + put '8452'; + put ''; + put ''; + put ''; + put ''; + put ''; + put ''; + put ''; + put ''; + put ''; + put ''; + put ''; + put ''; + put ''; + put '"'; + put 'out=&fileref1'; + put ';'; + put 'run;'; + put '/* create an XML map and extract dependencies from response */'; + put '%macro getTables(type=);'; + put '%local x;'; + put '%do x=1 %to 2;'; + put '%local dir;'; + put '%if &x=1 %then %let dir=Source;'; + put '%else %let dir=Target;'; + put '%local y;'; + put '%do y=1 %to 3;'; + put '%local maptype;'; + put '%if &y=1 %then %let maptype=ClassifierMap;'; + put '%else %if &y=2 %then %let maptype=Select;'; + put '%else %if &y=3 %then %let maptype=Join;'; + put 'filename sxlemap temp;'; + put 'data _null_;'; + put 'file sxlemap;'; + put 'put '''';'; + put 'put "";'; + put 'put "";'; + put 'put "/GetMetadataObjects/Objects/Job/JobActivities/TransformationActivi"@;'; + put 'put "ty/Steps/TransformationStep/Transformations/&maptype/Classifier"@;'; + put 'put "&dir.s/&type";'; + put 'put '''';'; + put 'put "/GetMetadataObjects/Objects/Job/@Id";'; + put 'put "characterstring17";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetMetadataObjects/Objects/Job/@Name";'; + put 'put "characterstring128";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetMetadataObjects/Objects/Job/JobActivities"@;'; + put 'put "/TransformationActivity/@Id";'; + put 'put "characterstring17";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetMetadataObjects/Objects/Job/JobActivities"@;'; + put 'put "/TransformationActivity/Steps/TransformationStep/@Id";'; + put 'put "characterstring17";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetMetadataObjects/Objects/Job/JobActivities"@;'; + put 'put "/TransformationActivity/Steps/TransformationStep/Transformations"@;'; + put 'put "/&maptype/@Id";'; + put 'put "characterstring17";'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetMetadataObjects/Objects/Job/JobActivities"@;'; + put 'put "/TransformationActivity/Steps/TransformationStep/Transformations/"@;'; + put 'put "&maptype/Classifier&dir.s/&type/@Id";'; + put 'put "characterstring17";'; + put 'put '''';'; + put 'put ''
'';'; + put 'run;'; + put 'libname _XML_ xml xmlfileref=&fileref1 xmlmap=sxlemap;'; + put 'data work.&dir.&type/view=work.&dir.&type;'; + put 'set _xml_.&dir.&type;'; + put 'length tabletype maptype $16 tabledirection $1;'; + put 'jobname=upcase(jobname);'; + put 'tabletype="&type";'; + put 'maptype="&maptype";'; + put 'if "&dir"="Source" then tabledirection="R";'; + put 'else tabledirection=''F'';'; + put 'run;'; + put 'proc append base=work.alldata data=work.&dir.&type;'; + put 'run;'; + put 'libname _XML_ clear;'; + put '%end;'; + put '%end;'; + put '%mend getTables;'; + put '/* list of types:'; + put 'https://support.sas.com/documentation/cdl/en/omamodref/63903/HTML/default/viewer.htm#classifiermap.htm'; + put '*/'; + put '%getTables(type=PhysicalTable)'; + put '%getTables(type=ExternalTable)'; + put '%getTables(type=QueryTable)'; + put '%getTables(type=RelationalTable)'; + put '%getTables(type=Report)'; + put '%getTables(type=Cube)'; + put '%getTables(type=DataTable)'; + put '/* remove dups and get tables */'; + put 'proc sort data=work.alldata(keep=jobid jobname tableid tabletype tabledirection)'; + put 'out=work.sorted nodupkey;'; + put 'by _all_;'; + put 'run;'; + put 'proc sort data=work.sorted(keep=tableid) out=work.tables nodupkey;'; + put 'by tableid;'; + put 'run;'; + put '/* this bit is slow due to lookups but given the different table types'; + put 'it was the easiest approach */'; + put 'data work.tables2;'; + put 'length tablename liburi puri $64 libref schemaname $8 ;'; + put 'if _n_=1 then call missing(tablename, liburi, puri, libref, schemaname);'; + put 'set work.tables;'; + put 'drop rc liburi;'; + put 'if metadata_getnasn(tableid,"TablePackage",1,liburi)>0 then do;'; + put 'rc= metadata_getattr(liburi, "SchemaName", SchemaName);'; + put 'if ^missing(SchemaName) then do;'; + put 'if metadata_getnasn(liburi,"UsedByPackages",1,puri)>0 then do;'; + put 'rc=metadata_getattr(puri,"Libref",libref);'; + put 'end;'; + put 'end;'; + put 'else rc=metadata_getattr(liburi,"Libref",libref);'; + put 'libref=upcase(libref);'; + put 'end;'; + put 'rc=metadata_getattr(tableid,"Name",tablename);'; + put 'tablename=upcase(tablename);'; + put 'run;'; + put 'proc sql;'; + put 'create table work.augmented as'; + put 'select a.*'; + put ',b.tablename'; + put ',b.libref'; + put 'from work.sorted a'; + put 'left join work.tables2 b'; + put 'on a.tableid=b.tableid;'; + put 'create table work.mpe_lineage_tabs as'; + put 'select distinct'; + put 'coalesce(a.jobid,b.jobid) as jobid,'; + put 'coalesce(a.jobname,b.jobname) as jobname,'; + put 'coalesce(a.tableid,"N/A") as srctableid,'; + put 'a.tabletype as srctabletype,'; + put 'a.tablename as srctablename,'; + put 'coalesce(a.libref,''nolib'') as srclibref,'; + put 'coalesce(b.tableid,"N/A") as tgttableid,'; + put 'b.tabletype as tgttabletype,'; + put 'b.tablename as tgttablename,'; + put 'coalesce(b.libref,''nolib'') as tgtlibref'; + put 'from work.augmented(where=(tabledirection=''R'')) a'; + put 'full join work.augmented(where=(tabledirection=''F'')) b'; + put 'on a.jobid=b.jobid'; + put ';'; + put '%bitemporal_dataloader(base_lib=&mpelib'; + put ',base_dsn=MPE_LINEAGE_TABS'; + put ',append_dsn=MPE_LINEAGE_TABS'; + put ',PK=jobid srctableid tgttableid'; + put ',etlsource=&_program'; + put ',loadtype=TXTEMPORAL'; + put ',tech_from=TX_FROM'; + put ',tech_to=TX_TO'; + put ',dclib=&mpelib'; + put ')'; + put '%mp_binarycopy(inref=&fileref1, outref=_webout)'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=registerkey; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Files

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as FMTCAT,'; + put 'FMTNAME'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'LENGTH num'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.length as MAXW'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put ')))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] workobs= (0) When set to a positive integer, will create a new'; + put 'output object (WORK) which contains this number of observations from all'; + put 'tables in the WORK library.'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX,workobs=0'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&workobs) > 0 %then %do;'; + put '/* if debug mode, send back first XX records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10'; + put ',maxobs=&workobs'; + put ')'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '%macro mm_assignlib('; + put 'libref'; + put ',mAbort=HARD'; + put ')/*/STORE SOURCE*/;'; + put '%local mp_abort msg;'; + put '%let mp_abort=0;'; + put '%if %sysfunc(libref(&libref)) %then %do;'; + put 'data _null_;'; + put 'length liburi LibName msg $200;'; + put 'call missing(of _all_);'; + put 'nobj=metadata_getnobj("omsobj:SASLibrary?@Libref=''&libref''",1,liburi);'; + put 'if nobj=1 then do;'; + put 'rc=metadata_getattr(liburi,"Name",LibName);'; + put '/* now try and assign it */'; + put 'if libname("&libref",,''meta'',cats(''liburi="'',liburi,''";'')) ne 0 then do;'; + put 'putlog "&libref could not be assigned";'; + put 'putlog liburi=;'; + put '/**'; + put '* Fetch the system message for display in the abort modal. This is'; + put '* not always helpful though. One example, previously received:'; + put '* NOTE: Libref XX refers to the same library metadata as libref XX.'; + put '*/'; + put 'msg=sysmsg();'; + put 'if msg=:''ERROR: Libref SAVE is not assigned.'' then do;'; + put 'msg=catx(" ",'; + put '"Could not assign %upcase(&libref).",'; + put '"Please check metadata permissions! Libname:",libname,'; + put '"Liburi:",liburi'; + put ');'; + put 'end;'; + put 'else if msg="ERROR: User does not have appropriate authorization "!!'; + put '"level for library SAVE."'; + put 'then do;'; + put 'msg=catx(" ",'; + put '"ERROR: User does not have appropriate authorization level",'; + put '"for library %upcase(&libref), libname:",libname,'; + put '"Liburi:",liburi'; + put ');'; + put 'end;'; + put 'call symputx(''msg'',msg,''l'');'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1,''l'');'; + put 'end;'; + put 'else do;'; + put 'put (_all_)(=);'; + put 'call symputx(''libname'',libname,''L'');'; + put 'call symputx(''liburi'',liburi,''L'');'; + put 'end;'; + put 'end;'; + put 'else if nobj>1 then do;'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; + put 'call symputx(''msg'',"More than one library with libref=&libref");'; + put 'end;'; + put 'else do;'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; + put 'call symputx(''msg'',"Library &libref not found in metadata");'; + put 'end;'; + put 'run;'; + put '%put NOTE: &msg;'; + put '%end;'; + put '%else %do;'; + put '%put NOTE: Library &libref is already assigned;'; + put '%end;'; + put '%mp_abort(iftrue= (&mp_abort=1)'; + put ',mac=mm_assignlib.sas'; + put ',msg=%superq(msg)'; + put ')'; + put '%mend mm_assignlib;'; + put '/** @cond */'; + put '%macro mf_getengine(libref'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid engnum rc engine;'; + put '/* in case the parameter is a libref.tablename, pull off just the libref */'; + put '%let libref = %upcase(%scan(&libref, 1, %str(.)));'; + put '%let dsid=%sysfunc('; + put 'open(sashelp.vlibnam(where=(libname="%upcase(&libref)")),i)'; + put ');'; + put '%if (&dsid ^= 0) %then %do;'; + put '%let engnum=%sysfunc(varnum(&dsid,ENGINE));'; + put '%let rc=%sysfunc(fetch(&dsid));'; + put '%let engine=%sysfunc(getvarc(&dsid,&engnum));'; + put '%put &libref. ENGINE is &engine.;'; + put '%let rc= %sysfunc(close(&dsid));'; + put '%end;'; + put '%upcase(&engine)'; + put '%mend mf_getengine;'; + put '/** @endcond */'; + put '%macro mm_assigndirectlib('; + put 'libref /* libref to assign from metadata */'; + put ',open_passthrough= /* provide an alias to produce the'; + put 'CONNECT TO statement for the'; + put 'relevant external database */'; + put ',sql_options= /* add any options to add to proc sql statement eg outobs='; + put '(only valid for pass through) */'; + put ',mDebug=0'; + put ',mAbort=0'; + put ')/*/STORE SOURCE*/;'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing mm_assigndirectlib.sas;'; + put '%&mD.put _local_;'; + put '%if &mAbort=1 %then %let mAbort=;'; + put '%else %let mAbort=%str(*);'; + put '%&mD.put NOTE: Creating direct (non META) connection to &libref library;'; + put '%local cur_engine;'; + put '%let cur_engine=%mf_getengine(&libref);'; + put '%if &cur_engine ne META and &cur_engine ne %then %do;'; + put '%put NOTE: &libref already has a direct (&cur_engine) libname connection;'; + put '%return;'; + put '%end;'; + put '%else %if %upcase(&libref)=WORK %then %do;'; + put '%put NOTE: We already have a direct connection to WORK :-) ;'; + put '%return;'; + put '%end;'; + put '/* need to determine the library ENGINE first */'; + put '%local engine;'; + put 'data _null_;'; + put 'length lib_uri engine $256;'; + put 'call missing (of _all_);'; + put '/* get URI for the particular library */'; + put 'rc1=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put '/* get the Engine attribute of the previous object */'; + put 'rc2=metadata_getattr(lib_uri,''Engine'',engine);'; + put 'putlog "mm_assigndirectlib for &libref:" rc1= lib_uri= rc2= engine=;'; + put 'call symputx("liburi",lib_uri,''l'');'; + put 'call symputx("engine",engine,''l'');'; + put 'run;'; + put '/* now obtain engine specific connection details */'; + put '%if &engine=BASE %then %do;'; + put '%&mD.put NOTE: Retrieving BASE library path;'; + put 'data _null_;'; + put 'length up_uri $256 path cat_path $1024;'; + put 'retain cat_path;'; + put 'call missing (of _all_);'; + put '/* get all the filepaths of the UsingPackages association */'; + put 'i=1;'; + put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; + put 'do while (rc3>0);'; + put '/* get the DirectoryName attribute of the previous object */'; + put 'rc4=metadata_getattr(up_uri,''DirectoryName'',path);'; + put 'if i=1 then path = ''("''!!trim(path)!!''" '';'; + put 'else path ='' "''!!trim(path)!!''" '';'; + put 'cat_path = trim(cat_path) !! " " !! trim(path) ;'; + put 'i+1;'; + put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; + put 'end;'; + put 'cat_path = trim(cat_path) !! ")";'; + put '&mD.putlog "NOTE: Getting physical path for &libref library";'; + put '&mD.putlog rc3= up_uri= rc4= cat_path= path=;'; + put '&mD.putlog "NOTE: Libname cmd will be:";'; + put '&mD.putlog "libname &libref" cat_path;'; + put 'call symputx("filepath",cat_path,''l'');'; + put 'run;'; + put '%if %sysevalf(&sysver<9.4) %then %do;'; + put 'libname &libref &filepath;'; + put '%end;'; + put '%else %do;'; + put '/* apply the new filelocks option to cater for temporary locks */'; + put 'libname &libref &filepath filelockwait=5;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=REMOTE %then %do;'; + put 'data x;'; + put 'length rcCon rcProp rc k 3 uriCon uriProp PropertyValue PropertyName'; + put 'Delimiter $256 properties $2048;'; + put 'retain properties;'; + put 'rcCon = metadata_getnasn("&liburi", "LibraryConnection", 1, uriCon);'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", 1, uriProp);'; + put 'k = 1;'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; + put 'do while (rcProp > 0);'; + put 'rc = metadata_getattr(uriProp , "DefaultValue",PropertyValue);'; + put 'rc = metadata_getattr(uriProp , "PropertyName",PropertyName);'; + put 'rc = metadata_getattr(uriProp , "Delimiter",Delimiter);'; + put 'properties = trim(properties) !! " " !! trim(PropertyName)'; + put '!! trim(Delimiter) !! trim(PropertyValue);'; + put 'output;'; + put 'k+1;'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; + put 'end;'; + put '%&mD.put NOTE: Getting properties for REMOTE SHARE &libref library;'; + put '&mD.put _all_;'; + put '%&mD.put NOTE: Libname cmd will be:;'; + put '%&mD.put libname &libref &engine &properties slibref=&libref;'; + put 'call symputx ("properties",trim(properties),''l'');'; + put 'run;'; + put 'libname &libref &engine &properties slibref=&libref;'; + put '%end;'; + put '%else %if &engine=OLEDB %then %do;'; + put '%&mD.put NOTE: Retrieving OLEDB connection details;'; + put 'data _null_;'; + put 'length domain datasource provider properties schema'; + put 'connx_uri domain_uri conprop_uri lib_uri schema_uri value $256.;'; + put 'call missing (of _all_);'; + put '/* get source connection ID */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; + put '/* get connection domain */'; + put 'rc1=metadata_getnasn(connx_uri,''Domain'',1,domain_uri);'; + put 'rc2=metadata_getattr(domain_uri,''Name'',domain);'; + put '&mD.putlog / ''NOTE: '' // ''NOTE- connection id: '' connx_uri ;'; + put '&mD.putlog ''NOTE- domain: '' domain;'; + put '/* get DSN and PROVIDER from connection properties */'; + put 'i=0;'; + put 'do until (rc<0);'; + put 'i+1;'; + put 'rc=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; + put 'rc2=metadata_getattr(conprop_uri,''Name'',value);'; + put 'if value=''Connection.OLE.Property.DATASOURCE.Name.xmlKey.txt'' then do;'; + put 'rc3=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; + put 'end;'; + put 'else if value=''Connection.OLE.Property.PROVIDER.Name.xmlKey.txt'' then do;'; + put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',provider);'; + put 'end;'; + put 'else if value=''Connection.OLE.Property.PROPERTIES.Name.xmlKey.txt'' then'; + put 'do;'; + put 'rc5=metadata_getattr(conprop_uri,''DefaultValue'',properties);'; + put 'end;'; + put 'end;'; + put '&mD.putlog ''NOTE- dsn/provider/properties: '' /'; + put 'datasource provider properties;'; + put '&mD.putlog ''NOTE- schema: '' schema // ''NOTE-'';'; + put '/* get SCHEMA */'; + put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,lib_uri);'; + put 'rc7=metadata_getattr(lib_uri,''SchemaName'',schema);'; + put 'call symputx(''SQL_domain'',domain,''l'');'; + put 'call symputx(''SQL_dsn'',datasource,''l'');'; + put 'call symputx(''SQL_provider'',provider,''l'');'; + put 'call symputx(''SQL_properties'',properties,''l'');'; + put 'call symputx(''SQL_schema'',schema,''l'');'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put 'proc sql &sql_options;'; + put 'connect to OLEDB as &open_passthrough(INSERT_SQL=YES'; + put '/* need additional properties to make this work */'; + put 'properties=(''Integrated Security''=SSPI'; + put '''Persist Security Info''=True'; + put '%sysfunc(compress(%str(&SQL_properties),%str(())))'; + put ')'; + put 'DATASOURCE=&sql_dsn PROMPT=NO'; + put 'PROVIDER=&sql_provider SCHEMA=&sql_schema CONNECTION = GLOBAL);'; + put '%end;'; + put '%else %do;'; + put 'LIBNAME &libref OLEDB PROPERTIES=&sql_properties'; + put 'DATASOURCE=&sql_dsn PROVIDER=&sql_provider SCHEMA=&sql_schema'; + put '%if %length(&sql_domain)>0 %then %do;'; + put 'authdomain="&sql_domain"'; + put '%end;'; + put 'connection=shared;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=ODBC %then %do;'; + put '&mD.%put NOTE: Retrieving ODBC connection details;'; + put 'data _null_;'; + put 'length connx_uri conprop_uri value datasource up_uri schema $256.;'; + put 'call missing (of _all_);'; + put '/* get source connection ID */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; + put '/* get connection properties */'; + put 'i=0;'; + put 'do until (rc2<0);'; + put 'i+1;'; + put 'rc2=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; + put 'rc3=metadata_getattr(conprop_uri,''Name'',value);'; + put 'if value=''Connection.ODBC.Property.DATASRC.Name.xmlKey.txt'' then do;'; + put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; + put 'rc2=-1;'; + put 'end;'; + put 'end;'; + put '/* get SCHEMA */'; + put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,up_uri);'; + put 'rc7=metadata_getattr(up_uri,''SchemaName'',schema);'; + put '&mD.put rc= connx_uri= rc2= conprop_uri= rc3= value= rc4= datasource='; + put 'rc6= up_uri= rc7= schema=;'; + put 'call symputx(''SQL_schema'',schema,''l'');'; + put 'call symputx(''SQL_dsn'',datasource,''l'');'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put 'proc sql &sql_options;'; + put 'connect to ODBC as &open_passthrough'; + put '(INSERT_SQL=YES DATASRC=&sql_dsn. CONNECTION=global);'; + put '%end;'; + put '%else %do;'; + put 'libname &libref ODBC DATASRC=&sql_dsn SCHEMA=&sql_schema;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=POSTGRES %then %do;'; + put '%put NOTE: Obtaining POSTGRES library details;'; + put 'data _null_;'; + put 'length database ignore_read_only_columns direct_exe preserve_col_names'; + put 'preserve_tab_names server schema authdomain user password'; + put 'prop name value uri urisrc $256.;'; + put 'call missing (of _all_);'; + put '/* get database value */'; + put 'prop=''Connection.DBMS.Property.DB.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,database,"");'; + put 'if database^='''' then database=''database=''!!quote(trim(database));'; + put 'call symputx(''database'',database,''l'');'; + put '/* get IGNORE_READ_ONLY_COLUMNS value */'; + put 'prop=''Library.DBMS.Property.DBIROC.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,ignore_read_only_columns,"");'; + put 'if ignore_read_only_columns^='''' then ignore_read_only_columns='; + put '''ignore_read_only_columns=''!!ignore_read_only_columns;'; + put 'call symputx(''ignore_read_only_columns'',ignore_read_only_columns,''l'');'; + put '/* get DIRECT_EXE value */'; + put 'prop=''Library.DBMS.Property.DirectExe.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,direct_exe,"");'; + put 'if direct_exe^='''' then direct_exe=''direct_exe=''!!direct_exe;'; + put 'call symputx(''direct_exe'',direct_exe,''l'');'; + put '/* get PRESERVE_COL_NAMES value */'; + put 'prop=''Library.DBMS.Property.PreserveColNames.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,preserve_col_names,"");'; + put 'if preserve_col_names^='''' then preserve_col_names='; + put '''preserve_col_names=''!!preserve_col_names;'; + put 'call symputx(''preserve_col_names'',preserve_col_names,''l'');'; + put '/* get PRESERVE_TAB_NAMES value */'; + put '/* be careful with PRESERVE_TAB_NAMES=YES - it will mean your table will'; + put 'become case sensitive!! */'; + put 'prop=''Library.DBMS.Property.PreserveTabNames.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,preserve_tab_names,"");'; + put 'if preserve_tab_names^='''' then preserve_tab_names='; + put '''preserve_tab_names=''!!preserve_tab_names;'; + put 'call symputx(''preserve_tab_names'',preserve_tab_names,''l'');'; + put '/* get SERVER value */'; + put 'if metadata_getnasn("&liburi","LibraryConnection",1,uri)>0 then do;'; + put 'prop=''Connection.DBMS.Property.SERVER.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop(uri,prop,server,"");'; + put 'end;'; + put 'if server^='''' then server=''server=''!!quote(cats(server));'; + put 'call symputx(''server'',server,''l'');'; + put '/* get SCHEMA value */'; + put 'if metadata_getnasn("&liburi","UsingPackages",1,uri)>0 then do;'; + put 'rc=metadata_getattr(uri,"SchemaName",schema);'; + put 'end;'; + put 'if schema^='''' then schema=''schema=''!!schema;'; + put 'call symputx(''schema'',schema,''l'');'; + put '/* get AUTHDOMAIN value */'; + put '/* this is only useful if the user account contains that auth domain'; + put 'if metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then do;'; + put 'rc=metadata_getnasn(uri,"Domain",1,urisrc);'; + put 'rc=metadata_getattr(urisrc,"Name",authdomain);'; + put 'end;'; + put 'if authdomain^='''' then authdomain=''authdomain=''!!quote(trim(authdomain));'; + put '*/'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/* get user & pass */'; + put 'if authdomain='''' & metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then'; + put 'do;'; + put 'rc=metadata_getattr(uri,"UserID",user);'; + put 'rc=metadata_getattr(uri,"Password",password);'; + put 'end;'; + put 'if user^='''' then do;'; + put 'user=''user=''!!quote(trim(user));'; + put 'password=''password=''!!quote(trim(password));'; + put 'end;'; + put 'call symputx(''user'',user,''l'');'; + put 'call symputx(''password'',password,''l'');'; + put '&md.put _all_;'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put '%put %str(WARN)ING: Passthrough option for postgres not yet supported;'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put '%if &mdebug=1 %then %do;'; + put '%put NOTE: Executing the following:/;'; + put '%put NOTE- libname &libref POSTGRES &database &ignore_read_only_columns;'; + put '%put NOTE- &direct_exe &preserve_col_names &preserve_tab_names;'; + put '%put NOTE- &server &schema &authdomain &user &password //;'; + put '%end;'; + put 'libname &libref POSTGRES &database &ignore_read_only_columns &direct_exe'; + put '&preserve_col_names &preserve_tab_names &server &schema &authdomain'; + put '&user &password;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=ORACLE %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null_;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema $256;'; + put 'call missing (of _all_);'; + put '/* get auth domain */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; + put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; + put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/* path */'; + put 'rc=metadata_getprop(assocuri1,'; + put '''Connection.Oracle.Property.PATH.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref ORACLE path=&path schema=&schema;'; + put '%put NOTE- authdomain=&authdomain;'; + put '%put NOTE-;'; + put 'libname &libref ORACLE path=&path schema=&schema authdomain=&authdomain;'; + put '%end;'; + put '%else %if &engine=SQLSVR %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; + put 'passwd $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; + put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; + put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; + put 'call symputx(''user'',userid,''l'');'; + put 'call symputx(''pass'',passwd,''l'');'; + put '/* path */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; + put 'rc=metadata_getprop(assocuri2,'; + put '''Connection.SQL.Property.Datasrc.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref SQLSVR datasrc=&path schema=&schema ;'; + put '%put NOTE- user="&user" pass="XXX";'; + put '%put NOTE-;'; + put 'libname &libref SQLSVR datasrc=&path schema=&schema user="&user" pass="&pass";'; + put '%end;'; + put '%else %if &engine=TERADATA %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; + put 'passwd $256;'; + put 'call missing (of _all_);'; + put '/* get auth domain */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; + put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; + put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/*'; + put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; + put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; + put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; + put 'call symputx(''user'',userid,''l'');'; + put 'call symputx(''pass'',passwd,''l'');'; + put '*/'; + put '/* path */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; + put 'rc=metadata_getprop(assocuri2,'; + put '''Connection.Teradata.Property.SERVER.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref TERADATA server="&path" schema=&schema ;'; + put '%put NOTe- authdomain=&authdomain;'; + put '%put NOTE-;'; + put 'libname &libref TERADATA server="&path" schema=&schema authdomain=&authdomain;'; + put '%end;'; + put '%else %if &engine= %then %do;'; + put '%put NOTE: Libref &libref is not registered in metadata;'; + put '%&mAbort.mp_abort('; + put 'msg=%str(ERR)OR: Libref &libref is not registered in metadata'; + put ',mac=mm_assigndirectlib.sas);'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put '%put %str(WARN)ING: Engine &engine is currently unsupported;'; + put '%put %str(WARN)ING- Please contact your support team.;'; + put '%return;'; + put '%end;'; + put '%mend mm_assigndirectlib;'; + put '%macro mm_getrepos('; + put 'outds=work.mm_getrepos'; + put ')/*/STORE SOURCE*/;'; + put '* use a temporary fileref to hold the response;'; + put 'filename response temp;'; + put '/* get list of libraries */'; + put 'proc metadata in='; + put '"1"'; + put 'out=response;'; + put 'run;'; + put '/* write the response to the log for debugging */'; + put '/*'; + put 'data _null_;'; + put 'infile response lrecl=1048576;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '*/'; + put '/* create an XML map to read the response */'; + put 'filename sxlemap temp;'; + put 'data _null_;'; + put 'file sxlemap;'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository";'; + put 'put "";'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Id";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Name";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Desc";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@DefaultNS";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryType";'; + put 'put "characterstring20";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryFormat";'; + put 'put "characterstring10";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@Access";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@CurrentAccess";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@PauseState";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Path";'; + put 'put "";'; + put 'put "characterstring256";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Engine";'; + put 'put "";'; + put 'put "characterstring8";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Options";'; + put 'put "";'; + put 'put "characterstring32";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataCreated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataUpdated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put ''
'';'; + put 'run;'; + put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; + put 'proc sort data= _XML_.SASRepos out=&outds;'; + put 'by name;'; + put 'run;'; + put '/* clear references */'; + put 'filename sxlemap clear;'; + put 'filename response clear;'; + put 'libname _XML_ clear;'; + put '%mend mm_getrepos;'; + put '%macro dc_assignlib(type,libref,passthru=);'; + put '%put &sysmacroname entry vars:;'; + put '%put _local_;'; + put '/* take current repository */'; + put '%local repo repocnt x;'; + put '%let repo=%sysfunc(getoption(metarepository));'; + put '/* get list of repositories and filter */'; + put '%mm_getrepos(outds=repos)'; + put '%let repocnt=0;'; + put 'data repos;'; + put 'set repos;'; + put 'where repositorytype in(''CUSTOM'',''FOUNDATION'')'; + put '& upcase(name) ne "%upcase(&repo)";'; + put 'keep id name ;'; + put 'call symputx(cats(''repo'',_n_),name,''l'');'; + put 'call symputx(''repocnt'',_n_,''l'');'; + put 'run;'; + put '/* find out which of these repositories has the libref we are searching for */'; + put '%local lib_uri;'; + put '%let lib_uri=NOTFOUND;'; + put 'data _null_; /* check default repo first */'; + put 'length lib_uri $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; + put 'run;'; + put '%if &lib_uri=NOTFOUND %then %do;'; + put '%do x=1 %to &repocnt;'; + put 'options metarepository=&&repo&x;'; + put 'data _null_;'; + put 'length lib_uri $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; + put 'run;'; + put '%if &lib_uri ne NOTFOUND %then %let x=%eval(&repocnt+1);'; + put '%end;'; + put '%end;'; + put '%if &type=READ %then %do;'; + put '%mm_assignlib(&libref)'; + put '%end;'; + put '%else %if &type=WRITE %then %do;'; + put '%mm_assigndirectlib(&libref,open_passthrough=&passthru)'; + put '%end;'; + put 'options metarepository=&repo;'; + put '%mend dc_assignlib;'; + put '/** @cond */'; + put '%macro mf_existvar(libds /* 2 part dataset name */'; + put ', var /* variable name */'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid rc;'; + put '%let dsid=%sysfunc(open(&libds,is));'; + put '%if &dsid=0 or %length(&var)=0 %then %do;'; + put '%put %sysfunc(sysmsg());'; + put '0'; + put '%end;'; + put '%else %do;'; + put '%sysfunc(varnum(&dsid,&var))'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%mend mf_existvar;'; + put '/** @endcond */'; + put '%macro mf_getattrn('; + put 'libds'; + put ',attr'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid rc;'; + put '%let dsid=%sysfunc(open(&libds,is));'; + put '%if &dsid = 0 %then %do;'; + put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; + put '%put %sysfunc(sysmsg());'; + put '-1'; + put '%end;'; + put '%else %do;'; + put '%sysfunc(attrn(&dsid,&attr))'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%mend mf_getattrn;'; + put '%macro mf_getvartype(libds /* two level name */'; + put ', var /* variable name from which to return the type */'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid vnum vtype rc;'; + put '/* Open dataset */'; + put '%let dsid = %sysfunc(open(&libds));'; + put '%if &dsid. > 0 %then %do;'; + put '/* Get variable number */'; + put '%let vnum = %sysfunc(varnum(&dsid, &var));'; + put '/* Get variable type (C/N) */'; + put '%if(&vnum. > 0) %then %let vtype = %sysfunc(vartype(&dsid, &vnum.));'; + put '%else %do;'; + put '%put NOTE: Variable &var does not exist in &libds;'; + put '%let vtype = %str( );'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: dataset &libds not opened! (rc=&dsid);'; + put '%put &sysmacroname: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '/* Close dataset */'; + put '%let rc = %sysfunc(close(&dsid));'; + put '/* Return variable type */'; + put '&vtype'; + put '%mend mf_getvartype;'; + put '%macro mf_getattrc('; + put 'libds'; + put ',attr'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid rc;'; + put '%let dsid=%sysfunc(open(&libds,is));'; + put '%if &dsid = 0 %then %do;'; + put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; + put '%put %sysfunc(sysmsg());'; + put '-1'; + put '%end;'; + put '%else %do;'; + put '%sysfunc(attrc(&dsid,&attr))'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%mend mf_getattrc;'; + put '%macro mp_lockfilecheck('; + put 'libds'; + put ')/*/STORE SOURCE*/;'; + put 'data _null_;'; + put 'if _n_=1 then putlog "&sysmacroname entry vars:";'; + put 'set sashelp.vmacro;'; + put 'where scope="&sysmacroname";'; + put 'put name ''='' value;'; + put 'run;'; + put '%mp_abort(iftrue= (&syscc>0)'; + put ',mac=checklock.sas'; + put ',msg=Aborting with syscc=&syscc on entry.'; + put ')'; + put '%mp_abort(iftrue= ("&libds"="0")'; + put ',mac=&sysmacroname'; + put ',msg=%str(libds not provided)'; + put ')'; + put '%local msg lib ds;'; + put '%let lib=%upcase(%scan(&libds,1,.));'; + put '%let ds=%upcase(%scan(&libds,2,.));'; + put '/* in DC, format catalogs are passed with a -FC suffix. No saslock here! */'; + put '%if %scan(&libds,2,-)=FC %then %do;'; + put '%put &sysmacroname: Format Catalog detected, no lockfile applied to &libds;'; + put '%return;'; + put '%end;'; + put '/* do not proceed if no observations can be processed */'; + put '%let msg=options obs = 0. syserrortext=%superq(syserrortext);'; + put '%mp_abort(iftrue= (%sysfunc(getoption(OBS))=0)'; + put ',mac=checklock.sas'; + put ',msg=%superq(msg)'; + put ')'; + put 'data _null_;'; + put 'putlog "Checking engine & member type";'; + put 'run;'; + put '%local engine memtype;'; + put '%let memtype=%mf_getattrc(&libds,MTYPE);'; + put '%let engine=%mf_getattrc(&libds,ENGINE);'; + put '%if &engine ne V9 and &engine ne BASE %then %do;'; + put 'data _null_;'; + put 'putlog "Lib &lib is not assigned using BASE engine - uses &engine instead";'; + put 'putlog "SAS lock check will not be performed";'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%else %if &memtype ne DATA %then %do;'; + put '%put NOTE: Cannot lock a VIEW!! Memtype=&memtype;'; + put '%return;'; + put '%end;'; + put 'data _null_;'; + put 'putlog "Engine = &engine, memtype=&memtype";'; + put 'putlog "Attempting lock statement";'; + put 'run;'; + put 'lock &libds;'; + put '%local abortme;'; + put '%let abortme=0;'; + put '%if &syscc>0 or &SYSLCKRC ne 0 %then %do;'; + put '%let msg=Unable to apply lock on &libds (SYSLCKRC=&SYSLCKRC syscc=&syscc);'; + put '%put %str(ERR)OR: &sysmacroname: &msg;'; + put '%let abortme=1;'; + put '%end;'; + put 'lock &libds clear;'; + put '%mp_abort(iftrue= (&abortme=1)'; + put ',mac=&sysmacroname'; + put ',msg=%superq(msg)'; + put ')'; + put '%mend mp_lockfilecheck;'; + put '%macro mp_lockanytable('; + put 'action'; + put ',lib= WORK'; + put ',ds=0'; + put ',ref='; + put ',ctl_ds=0'; + put ',loops=25'; + put ',loop_secs=1'; + put ');'; + put 'data _null_;'; + put 'if _n_=1 then putlog "&sysmacroname entry vars:";'; + put 'set sashelp.vmacro;'; + put 'where scope="&sysmacroname";'; + put 'put name ''='' value;'; + put 'run;'; + put '%mp_abort(iftrue= ("&ds"="0" and &action ne MAKETABLE)'; + put ',mac=&sysmacroname'; + put ',msg=%str(dataset was not provided)'; + put ')'; + put '%mp_abort(iftrue= (&ctl_ds=0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Control dataset was not provided)'; + put ')'; + put '/* set up lib & mac vars */'; + put '%let lib=%upcase(&lib);'; + put '%let ds=%upcase(&ds);'; + put '%let action=%upcase(&action);'; + put '%local user x trans msg abortme;'; + put '%let user=%mf_getuser();'; + put '%let abortme=0;'; + put '%mp_abort(iftrue= (&action ne LOCK & &action ne UNLOCK & &action ne MAKETABLE)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Invalid action (&action) provided)'; + put ')'; + put '/* if an err condition exists, exit before we even begin */'; + put '%mp_abort(iftrue= (&syscc>0 and &action=LOCK)'; + put ',mac=&sysmacroname'; + put ',msg=%str(aborting due to syscc=&syscc on LOCK entry)'; + put ')'; + put '/* do not bother locking work tables (else may affect all WORK libraries) */'; + put '%if (%upcase(&lib)=WORK or %str(&lib)=%str()) & &action ne MAKETABLE %then %do;'; + put '%put NOTE: WORK libraries will not be registered in the locking system.;'; + put '%return;'; + put '%end;'; + put '/* do not proceed if no observations can be processed */'; + put '%mp_abort(iftrue= (%sysfunc(getoption(OBS))=0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(cannot continue when options obs = 0)'; + put ')'; + put '%if &ACTION=LOCK %then %do;'; + put '/* abort if a SAS lock is already in place, or cannot be applied */'; + put '%mp_lockfilecheck(&lib..&ds)'; + put '/* next, check there is a record for this table */'; + put '%local record_exists_check;'; + put 'proc sql noprint;'; + put 'select count(*) into: record_exists_check from &ctl_ds'; + put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; + put 'quit;'; + put '%if &syscc>0 %then %put syscc=&syscc sqlrc=&sqlrc;'; + put '%if &record_exists_check=0 %then %do;'; + put 'data _null_;'; + put 'putlog "&sysmacroname: adding record to lock table..";'; + put 'run;'; + put 'data ;'; + put 'if 0 then set &ctl_ds;'; + put 'LOCK_LIB ="&lib";'; + put 'LOCK_DS="&ds";'; + put 'LOCK_STATUS_CD=''LOCKED'';'; + put 'LOCK_START_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt;'; + put 'LOCK_USER_NM="&user";'; + put 'LOCK_PID="&sysjobid";'; + put 'LOCK_REF="&ref";'; + put 'output;stop;'; + put 'run;'; + put '%let trans=&syslast;'; + put 'proc append base=&ctl_ds data=&trans;'; + put 'run;'; + put '%end;'; + put '/* if record does exist, perform lock attempts */'; + put '%else %do x=1 %to &loops;'; + put 'data _null_;'; + put 'putlog "&sysmacroname: attempting lock (iteration &x) "@;'; + put 'putlog "at %sysfunc(datetime(),datetime19.) ..";'; + put 'run;'; + put 'proc sql;'; + put 'update &ctl_ds'; + put 'set LOCK_STATUS_CD=''LOCKED'''; + put ', LOCK_START_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt'; + put ', LOCK_USER_NM="&user"'; + put ', LOCK_PID="&sysjobid"'; + put ', LOCK_REF="&ref"'; + put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; + put 'quit;'; + put '/**'; + put '* NOTE - occasionally SQL server will return an err code (deadlocked'; + put '* transaction). If so, ignore it, keep calm, and carry on..'; + put '*/'; + put '%if &syscc>0 %then %do;'; + put 'data _null_;'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'putlog "NOTE- &sysmacroname: Update failed. "@;'; + put 'putlog "Resetting err conditions and re-attempting.";'; + put 'putlog "NOTE- syscc=&syscc syserr=&syserr sqlrc=&sqlrc";'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'run;'; + put '%let syscc=0;'; + put '%let sqlrc=0;'; + put '%end;'; + put '/* now check if the record was successfully updated */'; + put '%local success_check;'; + put 'proc sql noprint;'; + put 'select count(*) into: success_check from &ctl_ds'; + put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds"'; + put 'and LOCK_PID="&sysjobid" and LOCK_STATUS_CD=''LOCKED'';'; + put 'quit;'; + put '%if &success_check=0 %then %do;'; + put '%if &x < &loops %then %do;'; + put '/* pause before next check */'; + put 'data _null_;'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'putlog "NOTE- &sysmacroname: table locked, waiting "@;'; + put 'putlog "%sysfunc(sleep(&loop_inc)) seconds.. ";'; + put 'putlog "NOTE- (iteration &x of &loops)";'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%let msg=Unable to lock &lib..&ds via &ctl_ds after &loops attempts.\n'; + put 'Please ask your administrator to investigate!;'; + put '%let abortme=1;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put 'data _null_;'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'putlog "NOTE- &sysmacroname: Table &lib..&ds locked at "@;'; + put 'putlog " %sysfunc(datetime(),datetime19.) (iteration &x)"@;'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'run;'; + put '%if &syscc>0 %then %do;'; + put '%put setting syscc(&syscc) back to 0;'; + put '%let syscc=0;'; + put '%end;'; + put '%let x=&loops; /* no more iterations needed */'; + put '%end;'; + put '%end;'; + put '%end;'; + put '%else %if &ACTION=UNLOCK %then %do;'; + put '%local status;'; + put 'proc sql noprint;'; + put 'select LOCK_STATUS_CD into: status from &ctl_ds'; + put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; + put 'quit;'; + put '%if &syscc>0 %then %put syscc=&syscc sqlrc=&sqlrc;'; + put '%if &status=LOCKED %then %do;'; + put 'data _null_;'; + put 'putlog "&sysmacroname: unlocking &lib..&ds:";'; + put 'run;'; + put 'proc sql;'; + put 'update &ctl_ds'; + put 'set LOCK_STATUS_CD=''UNLOCKED'''; + put ', LOCK_END_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt'; + put ', LOCK_USER_NM="&user"'; + put ', LOCK_PID="&sysjobid"'; + put ', LOCK_REF="&ref"'; + put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; + put 'quit;'; + put '%end;'; + put '%else %if &status=UNLOCKED %then %do;'; + put '%put %str(WAR)NING: &lib..&ds is already unlocked!;'; + put '%end;'; + put '%else %do;'; + put '%put NOTE: Unrecognised STATUS_CD (&status) in &ctl_ds;'; + put '%let abortme=1;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%let msg=lock_anytable given unsupported action (&action);'; + put '%let abortme=1;'; + put '%end;'; + put '/* catch errs - mp_abort must be called outside of a logic block */'; + put '%mp_abort(iftrue=(&abortme=1),'; + put 'msg=%superq(msg),'; + put 'mac=&sysmacroname'; + put ')'; + put '%exit_macro:'; + put 'data _null_;'; + put 'put "&sysmacroname: Exit vars: action=&action lib=&lib ds=&ds";'; + put 'put " syscc=&syscc sqlrc=&sqlrc syserr=&syserr";'; + put 'run;'; + put '%mend mp_lockanytable;'; + put '%macro bitemporal_closeouts('; + put 'tech_from=tx_from_dttm'; + put ',tech_to = tx_to_dttm /* Technical TO datetime variable.'; + put 'Req''d on BASE table only. */'; + put ',base_lib=WORK /* Libref of the BASE table. */'; + put ',base_dsn=BASETABLE /* Name of BASE table. */'; + put ',append_lib=WORK /* Libref of the STAGING table. */'; + put ',append_dsn=APPENDTABLE /* Name of STAGING table. */'; + put ',PK= name sex /* Business key, space separated. */'; + put '/* Should INCLUDE BUS_FROM field if relevant. */'; + put ',NOW=DEFINE'; + put ',FILTER= /* supply a filter to limit the update */'; + put ',outdest= /* supply an unquoted filepath/filename.ext to get'; + put 'a text file containing the update statements */'; + put ',loadtype='; + put ',loadtarget=YES /* if <> YES will return without changing anything */'; + put ');'; + put '%put ENTERING &sysmacroname;'; + put '%local x var start;'; + put '%let start=%sysfunc(datetime());'; + put '%dc_assignlib(WRITE,&base_lib)'; + put '%dc_assignlib(WRITE,&append_lib)'; + put '%if &now=DEFINE %then %let now=&dc_dttmtfmt.;'; + put '%put &=now;'; + put '/**'; + put '* perform basic checks'; + put '*/'; + put '/* do tables exist? */'; + put '%if not %sysfunc(exist(&base_lib..&base_dsn)) %then %do;'; + put '%mp_abort(msg=&base_lib..&base_dsn does not exist)'; + put '%end;'; + put '%else %if %sysfunc(exist(&append_lib..&append_dsn))=0'; + put 'and %sysfunc(exist(&append_lib..&append_dsn,VIEW))=0 %then %do;'; + put '%mp_abort(msg=&append_lib..&append_dsn does not exist)'; + put '%end;'; + put '/* do TX columns exist? */'; + put '%if &loadtype ne UPDATE %then %do;'; + put '%if not %mf_existvar(&base_lib..&base_dsn,&tech_from) %then %do;'; + put '%mp_abort(msg=&tech_from does not exist on &base_lib..&base_dsn)'; + put '%end;'; + put '%else %if not %mf_existvar(&base_lib..&base_dsn,&tech_to) %then %do;'; + put '%mp_abort(msg=&tech_to does not exist on &base_lib..&base_dsn)'; + put '%end;'; + put '%end;'; + put '/* do PK columns exist? */'; + put '%do x=1 %to %sysfunc(countw(&PK));'; + put '%let var=%scan(&pk,&x,%str( ));'; + put '%if not %mf_existvar(&base_lib..&base_dsn,&var) %then %do;'; + put '%mp_abort(msg=&var does not exist on &base_lib..&base_dsn)'; + put '%end;'; + put '%else %if not %mf_existvar(&append_lib..&append_dsn,&var) %then %do;'; + put '%mp_abort(msg=&var does not exist on &append_lib..&append_dsn)'; + put '%end;'; + put '%end;'; + put '/* check uniqueness */'; + put 'proc sort data=&append_lib..&append_dsn'; + put 'out=___closeout1 noduprecs dupout=___closeout1a;'; + put 'by &pk;'; + put 'run;'; + put '%if %mf_getattrn(___closeout1a,NLOBS)>0 %then'; + put '%put NOTE: dups on (&PK) in (&append_lib..&append_dsn);'; + put '/* is &NOW value within a tolerance? Should not allow renegade closeouts.. */'; + put '%local gap;'; + put '%let gap=0;'; + put 'data _null_;'; + put 'now=&now;'; + put 'gap=intck(''HOURS'',now,datetime());'; + put 'call symputx(''gap'',gap,''l'');'; + put 'run;'; + put '%mf_abort('; + put 'iftrue=(&gap > 24),'; + put 'msg=NOW variable (&now) is not within a 24hr tolerance'; + put ')'; + put '/* have any warnings / errs occurred thus far? If so, abort */'; + put '%mf_abort('; + put 'iftrue=(&syscc>0),'; + put 'msg=Aborted due to SYSCC=&SYSCC status'; + put ')'; + put '/**'; + put '* Create closeout statements. These are sent as individual SQL statements'; + put '* to ensure pass-through utilisation. The update_cnt variable monitors'; + put '* how many records were actually updated on the target table.'; + put '*/'; + put '%local update_cnt;'; + put '%let update_cnt=0;'; + put 'filename tmp temp;'; + put 'data _null_;'; + put 'set ___closeout1;'; + put 'file tmp;'; + put 'if _n_=1 then put ''proc sql noprint;'' ;'; + put 'length string $32767.;'; + put '%if &loadtype=UPDATE %then %do;'; + put 'put "delete from &base_lib..&base_dsn where 1";'; + put '%end;'; + put '%else %do;'; + put 'now=symget(''now'');'; + put 'put "update &base_lib..&base_dsn set &tech_to= " now @;'; + put '%if %mf_existvar(&base_lib..&base_dsn,PROCESSED_DTTM) %then %do;'; + put 'put " ,PROCESSED_DTTM=" now @;'; + put '%end;'; + put 'put " where " now " lt &tech_to ";'; + put '%end;'; + put '%do x=1 %to %sysfunc(countw(&PK));'; + put '%let var=%scan(&pk,&x,%str( ));'; + put '%if %mf_getvartype(&base_lib..&base_dsn,&var)=C %then %do;'; + put '/* use single quotes to avoid ampersand resolution in data */'; + put 'string=" & &var=''"!!trim(prxchange("s/''/''''/",-1,&var))!!"''";'; + put '%end;'; + put '%else %do;'; + put 'string=cats(" & &var=",&var);'; + put '%end;'; + put 'put string;'; + put '%end;'; + put 'put "&filter ;";'; + put 'put ''%let update_cnt=%eval(&update_cnt+&sqlobs);%put update_cnt=&update_cnt;'';'; + put 'run;'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;'; + put 'putlog _infile_;'; + put 'run;'; + put '%if &loadtarget ne YES %then %return;'; + put '/* ensure we have a lock */'; + put '%mp_lockanytable(LOCK,'; + put 'lib=&base_lib,ds=&base_dsn'; + put ',ref=bitemporal_closeouts'; + put ',ctl_ds=&mpelib..mpe_lockanytable'; + put ')'; + put 'options source2;'; + put '%inc tmp;'; + put 'filename tmp clear;'; + put '/**'; + put '* Update audit tracker'; + put '*/'; + put '%local newobs; %let newobs=%mf_getattrn(work.___closeout1,NLOBS);'; + put '%local user; %let user=%mf_getuser();'; + put 'proc sql;'; + put 'insert into &mpelib..mpe_dataloads'; + put 'set libref=%upcase("&base_lib")'; + put ',DSN=%upcase("&base_dsn")'; + put ',ETLSOURCE="&append_lib..&append_dsn contained &newobs records"'; + put ',LOADTYPE="CLOSEOUT"'; + put ',DELETED_RECORDS=&update_cnt'; + put ',NEW_RECORDS=0'; + put ',DURATION=%sysfunc(datetime())-&start'; + put ',USER_NM="&user"'; + put ',PROCESSED_DTTM=&now;'; + put 'quit;'; + put '%mend bitemporal_closeouts;'; + put '%macro mf_getschema(libref'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid vnum rc schema;'; + put '/* in case the parameter is a libref.tablename, pull off just the libref */'; + put '%let libref = %upcase(%scan(&libref, 1, %str(.)));'; + put '%let dsid=%sysfunc(open(sashelp.vlibnam(where=('; + put 'libname="%upcase(&libref)" and sysname=''Schema/Owner'''; + put ')),i));'; + put '%if (&dsid ^= 0) %then %do;'; + put '%let vnum=%sysfunc(varnum(&dsid,SYSVALUE));'; + put '%let rc=%sysfunc(fetch(&dsid));'; + put '%let schema=%sysfunc(getvarc(&dsid,&vnum));'; + put '%put &libref. schema is &schema.;'; + put '%let rc= %sysfunc(close(&dsid));'; + put '%end;'; + put '&schema'; + put '%mend mf_getschema;'; + put '/** @endcond */'; + put '%macro mf_getuniquename(prefix=MC);'; + put '&prefix.%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32-%length(&prefix))'; + put '%mend mf_getuniquename;'; + put '%macro mf_getvarlist(libds'; + put ',dlm=%str( )'; + put ',quote=no'; + put ',typefilter=A'; + put ')/*/STORE SOURCE*/;'; + put '/* declare local vars */'; + put '%local outvar dsid nvars x rc dlm q var vtype;'; + put '/* credit Rowland Hale - byte34 is double quote, 39 is single quote */'; + put '%if %upcase("e)=DOUBLE %then %let q=%qsysfunc(byte(34));'; + put '%else %if %upcase("e)=SINGLE %then %let q=%qsysfunc(byte(39));'; + put '/* open dataset in macro */'; + put '%let dsid=%sysfunc(open(&libds));'; + put '%if &dsid %then %do;'; + put '%let nvars=%sysfunc(attrn(&dsid,NVARS));'; + put '%if &nvars>0 %then %do;'; + put '/* add variables with supplied delimeter */'; + put '%do x=1 %to &nvars;'; + put '/* get variable type */'; + put '%let vtype=%sysfunc(vartype(&dsid,&x));'; + put '%if &vtype=&typefilter or &typefilter=A %then %do;'; + put '%let var=&q.%sysfunc(varname(&dsid,&x))&q.;'; + put '%if &var=&q&q %then %do;'; + put '%put &sysmacroname: Empty column found in &libds!;'; + put '%let var=&q. &q.;'; + put '%end;'; + put '%if %quote(&outvar)=%quote() %then %let outvar=&var;'; + put '%else %let outvar=&outvar.&dlm.&var.;'; + put '%end;'; + put '%end;'; + put '%end;'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: Unable to open &libds (rc=&dsid);'; + put '%put &sysmacroname: SYSMSG= %sysfunc(sysmsg());'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%do;%unquote(&outvar)%end;'; + put '%mend mf_getvarlist;'; + put '%macro mf_abort(mac=mf_abort.sas, msg=, iftrue=%str(1=1)'; + put ')/*/STORE SOURCE*/;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mf_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%abort;'; + put '%mend mf_abort;'; + put '/** @endcond */'; + put '%macro mf_verifymacvars('; + put 'verifyVars /* list of macro variable NAMES */'; + put ',makeUpcase=NO /* set to YES to make all the variable VALUES uppercase */'; + put ',mAbort=SOFT'; + put ')/*/STORE SOURCE*/;'; + put '%local verifyIterator verifyVar abortmsg;'; + put '%do verifyIterator=1 %to %sysfunc(countw(&verifyVars,%str( )));'; + put '%let verifyVar=%qscan(&verifyVars,&verifyIterator,%str( ));'; + put '%if not %symexist(&verifyvar) %then %do;'; + put '%let abortmsg= Variable &verifyVar is MISSING;'; + put '%goto exit_err;'; + put '%end;'; + put '%if %length(%trim(&&&verifyVar))=0 %then %do;'; + put '%let abortmsg= Variable &verifyVar is EMPTY;'; + put '%goto exit_err;'; + put '%end;'; + put '%if &makeupcase=YES %then %do;'; + put '%let &verifyVar=%upcase(&&&verifyvar);'; + put '%end;'; + put '%end;'; + put '%goto exit_success;'; + put '%exit_err:'; + put '%put &abortmsg;'; + put '%mf_abort(iftrue=(&mabort ne SOFT),'; + put 'mac=mf_verifymacvars,'; + put 'msg=%str(&abortmsg)'; + put ')'; + put '0'; + put '%return;'; + put '%exit_success:'; + put '1'; + put '%mend mf_verifymacvars;'; + put '%macro mf_wordsInStr1ButNotStr2('; + put 'Str1= /* string containing words to extract */'; + put ',Str2= /* used to compare with the extract string */'; + put ')/*/STORE SOURCE*/;'; + put '%local count_base count_extr i i2 extr_word base_word match outvar;'; + put '%if %length(&str1)=0 or %length(&str2)=0 %then %do;'; + put '%put base string (str1)= &str1;'; + put '%put compare string (str2) = &str2;'; + put '%return;'; + put '%end;'; + put '%let count_base=%sysfunc(countw(&Str2));'; + put '%let count_extr=%sysfunc(countw(&Str1));'; + put '%do i=1 %to &count_extr;'; + put '%let extr_word=%scan(&Str1,&i,%str( ));'; + put '%let match=0;'; + put '%do i2=1 %to &count_base;'; + put '%let base_word=%scan(&Str2,&i2,%str( ));'; + put '%if &extr_word=&base_word %then %let match=1;'; + put '%end;'; + put '%if &match=0 %then %let outvar=&outvar &extr_word;'; + put '%end;'; + put '&outvar'; + put '%mend mf_wordsInStr1ButNotStr2;'; + put '%macro mf_isblank(param'; + put ')/*/STORE SOURCE*/;'; + put '%sysevalf(%superq(param)=,boolean)'; + put '%mend mf_isblank;'; + put '%macro mp_dropmembers('; + put 'list /* space separated list of datasets / views */'; + put ',libref=WORK /* can only drop from a single library at a time */'; + put ',iftrue=%str(1=1)'; + put ')/*/STORE SOURCE*/;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%if %mf_isblank(&list) %then %do;'; + put '%put NOTE: nothing to drop!;'; + put '%return;'; + put '%end;'; + put 'proc datasets lib=&libref nolist;'; + put 'delete &list;'; + put 'delete &list /mtype=view;'; + put 'run;'; + put '%mend mp_dropmembers;'; + put '%macro mf_getquotedstr(IN_STR'; + put ',DLM=%str(,)'; + put ',QUOTE=S'; + put ',indlm=%str( )'; + put ')/*/STORE SOURCE*/;'; + put '/* credit Rowland Hale - byte34 is double quote, 39 is single quote */'; + put '%if "e=S %then %let quote=%qsysfunc(byte(39));'; + put '%else %if "e=D %then %let quote=%qsysfunc(byte(34));'; + put '%else %if "e=N %then %let quote=;'; + put '%local i item buffer;'; + put '%let i=1;'; + put '%do %while (%qscan(&IN_STR,&i,%str(&indlm)) ne %str() ) ;'; + put '%let item=%qscan(&IN_STR,&i,%str(&indlm));'; + put '%if %bquote("E) ne %then %let item="E%qtrim(&item)"E;'; + put '%else %let item=%qtrim(&item);'; + put '%if (&i = 1) %then %let buffer =%qtrim(&item);'; + put '%else %let buffer =&buffer&DLM%qtrim(&item);'; + put '%let i = %eval(&i+1);'; + put '%end;'; + put '%let buffer=%sysfunc(coalescec(%qtrim(&buffer),"E"E));'; + put '&buffer'; + put '%mend mf_getquotedstr;'; + put '%macro mf_nobs(libds'; + put ')/*/STORE SOURCE*/;'; + put '%mf_getattrn(&libds,NLOBS)'; + put '%mend mf_nobs;'; + put '%macro mp_retainedkey('; + put 'base_lib=WORK'; + put ',base_dsn=BASETABLE'; + put ',append_lib=WORK'; + put ',append_dsn=APPENDTABLE'; + put ',retained_key=DEFAULT_RK'; + put ',business_key= PK1 PK2'; + put ',check_uniqueness=NO'; + put ',maxkeytable=0'; + put ',locktable=0'; + put ',outds=WORK.APPEND'; + put ',filter_str='; + put ');'; + put '%put &sysmacroname entry vars:;'; + put '%put _local_;'; + put '%local base_libds app_libds key_field check maxkey idx_pk newkey_cnt iserr'; + put 'msg x tempds1 tempds2 comma_pk appnobs checknobs dropvar tempvar idx_val;'; + put '%let base_libds=%upcase(&base_lib..&base_dsn);'; + put '%let app_libds=%upcase(&append_lib..&append_dsn);'; + put '%let tempds1=%mf_getuniquename();'; + put '%let tempds2=%mf_getuniquename();'; + put '%let comma_pk=%mf_getquotedstr(in_str=%str(&business_key),dlm=%str(,),quote=);'; + put '%let outds=%sysfunc(ifc(%index(&outds,.)=0,work.&outds,&outds));'; + put '/* validation checks */'; + put '%let iserr=0;'; + put '%if &syscc>0 %then %do;'; + put '%let iserr=1;'; + put '%let msg=%str(SYSCC=&syscc on macro entry);'; + put '%end;'; + put '%else %if %sysfunc(exist(&base_libds))=0 %then %do;'; + put '%let iserr=1;'; + put '%let msg=%str(Base LIBDS (&base_libds) expected but NOT FOUND);'; + put '%end;'; + put '%else %if %sysfunc(exist(&app_libds))=0 %then %do;'; + put '%let iserr=1;'; + put '%let msg=%str(Append LIBDS (&app_libds) expected but NOT FOUND);'; + put '%end;'; + put '%else %if &maxkeytable ne 0 and %sysfunc(exist(&maxkeytable))=0 %then %do;'; + put '%let iserr=1;'; + put '%let msg=%str(Maxkeytable (&maxkeytable) expected but NOT FOUND);'; + put '%end;'; + put '%else %if &maxkeytable ne 0 and %sysfunc(exist(&locktable))=0 %then %do;'; + put '%let iserr=1;'; + put '%let msg=%str(Locktable (&locktable) expected but NOT FOUND);'; + put '%end;'; + put '%else %if %length(&business_key)=0 %then %do;'; + put '%let iserr=1;'; + put '%let msg=%str(Business key (&business_key) expected but NOT FOUND);'; + put '%end;'; + put '%do x=1 %to %sysfunc(countw(&business_key));'; + put '/* check business key values exist */'; + put '%let key_field=%scan(&business_key,&x,%str( ));'; + put '%if not %mf_existvar(&app_libds,&key_field) %then %do;'; + put '%let iserr=1;'; + put '%let msg=Business key (&key_field) not found on &app_libds!;'; + put '%goto err;'; + put '%end;'; + put '%else %if not %mf_existvar(&base_libds,&key_field) %then %do;'; + put '%let iserr=1;'; + put '%let msg=Business key (&key_field) not found on &base_libds!;'; + put '%goto err;'; + put '%end;'; + put '%end;'; + put '%err:'; + put '%if &iserr=1 %then %do;'; + put '/* err case so first perform an unlock of the base table before exiting */'; + put '%mp_lockanytable('; + put 'UNLOCK,lib=&base_lib,ds=&base_dsn,ref=%superq(msg),ctl_ds=&locktable'; + put ')'; + put '%end;'; + put '%mp_abort(iftrue=(&iserr=1),mac=mp_retainedkey,msg=%superq(msg))'; + put 'proc sql noprint;'; + put 'select sum(max(&retained_key),0) into: maxkey from &base_libds;'; + put '/**'; + put '* get base table RK and bus field values for lookup'; + put '*/'; + put 'proc sql noprint;'; + put 'create table &tempds1 as'; + put 'select distinct &comma_pk,&retained_key'; + put 'from &base_libds &filter_str'; + put 'order by &comma_pk,&retained_key;'; + put '%if &check_uniqueness=YES %then %do;'; + put 'select count(*) into:checknobs'; + put 'from (select distinct &comma_pk from &app_libds);'; + put 'select count(*) into: appnobs from &app_libds; /* might be view */'; + put '%if &checknobs ne &appnobs %then %do;'; + put '%let msg=Source table &app_libds is not unique on (&business_key);'; + put '%let iserr=1;'; + put '%end;'; + put '%end;'; + put '%if &iserr=1 %then %do;'; + put '/* err case so first perform an unlock of the base table before exiting */'; + put '%mp_lockanytable('; + put 'UNLOCK,lib=&base_lib,ds=&base_dsn,ref=%superq(msg),ctl_ds=&locktable'; + put ')'; + put '%end;'; + put '%mp_abort(iftrue= (&iserr=1),mac=mp_retainedkey,msg=%superq(msg))'; + put '%if %mf_existvar(&app_libds,&retained_key)'; + put '%then %let dropvar=(drop=&retained_key);'; + put '/* prepare interim table with retained key populated for matching keys */'; + put 'proc sql noprint;'; + put 'create table &tempds2 as'; + put 'select b.&retained_key, a.*'; + put 'from &app_libds &dropvar a'; + put 'left join &tempds1 b'; + put 'on 1'; + put '%do idx_pk=1 %to %sysfunc(countw(&business_key));'; + put '%let idx_val=%scan(&business_key,&idx_pk);'; + put 'and a.&idx_val=b.&idx_val'; + put '%end;'; + put 'order by &retained_key;'; + put '/* identify the number of entries without retained keys (new records) */'; + put 'select count(*) into: newkey_cnt'; + put 'from &tempds2'; + put 'where missing(&retained_key);'; + put 'quit;'; + put '/**'; + put '* Update maxkey table if link provided'; + put '*/'; + put '%if &maxkeytable ne 0 %then %do;'; + put 'proc sql noprint;'; + put 'select count(*) into: check from &maxkeytable'; + put 'where upcase(keytable)="&base_libds";'; + put '%mp_lockanytable(LOCK'; + put ',lib=%scan(&maxkeytable,1,.)'; + put ',ds=%scan(&maxkeytable,2,.)'; + put ',ref=Updating maxkeyvalues with mp_retainedkey'; + put ',ctl_ds=&locktable'; + put ')'; + put 'proc sql;'; + put '%if &check=0 %then %do;'; + put 'insert into &maxkeytable'; + put 'set keytable="&base_libds"'; + put ',keycolumn="&retained_key"'; + put ',max_key=%eval(&maxkey+&newkey_cnt)'; + put ',processed_dttm="%sysfunc(datetime(),%mf_fmtdttm())"dt;'; + put '%end;'; + put '%else %do;'; + put 'update &maxkeytable'; + put 'set max_key=%eval(&maxkey+&newkey_cnt)'; + put ',processed_dttm="%sysfunc(datetime(),%mf_fmtdttm())"dt'; + put 'where keytable="&base_libds";'; + put '%end;'; + put '%mp_lockanytable(UNLOCK'; + put ',lib=%scan(&maxkeytable,1,.)'; + put ',ds=%scan(&maxkeytable,2,.)'; + put ',ref=Updating maxkeyvalues with maxkey=%eval(&maxkey+&newkey_cnt)'; + put ',ctl_ds=&locktable'; + put ')'; + put '%end;'; + put '/* fill in the missing retained key values */'; + put '%let tempvar=%mf_getuniquename();'; + put 'data &outds(drop=&tempvar);'; + put 'retain &tempvar %eval(&maxkey+1);'; + put 'set &tempds2;'; + put 'if &retained_key =. then &retained_key=&tempvar;'; + put '&tempvar=&tempvar+1;'; + put 'run;'; + put '%mend mp_retainedkey;'; + put '/** @cond */'; + put '%macro mp_storediffs(libds'; + put ',origds'; + put ',key'; + put ',delds=0'; + put ',appds=0'; + put ',modds=0'; + put ',outds=work.mp_storediffs'; + put ',loadref=0'; + put ',processed_dttm=0'; + put ',mdebug=0'; + put ')/*/STORE SOURCE*/;'; + put '%local dbg;'; + put '%if &mdebug=1 %then %do;'; + put '%put &sysmacroname entry vars:;'; + put '%put _local_;'; + put '%end;'; + put '%else %let dbg=*;'; + put '/* set up unique and temporary vars */'; + put '%local ds1 ds2 ds3 ds4 hashkey inds_auto inds_keep dslist vlist;'; + put '%let ds1=%upcase(work.%mf_getuniquename(prefix=mpsd_ds1));'; + put '%let ds2=%upcase(work.%mf_getuniquename(prefix=mpsd_ds2));'; + put '%let ds3=%upcase(work.%mf_getuniquename(prefix=mpsd_ds3));'; + put '%let ds4=%upcase(work.%mf_getuniquename(prefix=mpsd_ds4));'; + put '%let hashkey=%upcase(%mf_getuniquename(prefix=mpsd_hashkey));'; + put '%let inds_auto=%upcase(%mf_getuniquename(prefix=mpsd_inds_auto));'; + put '%let inds_keep=%upcase(%mf_getuniquename(prefix=mpsd_inds_keep));'; + put '%let dslist=&origds;'; + put '%if &delds ne 0 %then %do;'; + put '%let delds=%upcase(&delds);'; + put '%if %scan(&delds,-1,.)=&delds %then %let delds=WORK.&delds;'; + put '%let dslist=&dslist &delds;'; + put '%end;'; + put '%if &appds ne 0 %then %do;'; + put '%let appds=%upcase(&appds);'; + put '%if %scan(&appds,-1,.)=&appds %then %let appds=WORK.&appds;'; + put '%let dslist=&dslist &appds;'; + put '%end;'; + put '%if &modds ne 0 %then %do;'; + put '%let modds=%upcase(&modds);'; + put '%if %scan(&modds,-1,.)=&modds %then %let modds=WORK.&modds;'; + put '%let dslist=&dslist &modds;'; + put '%end;'; + put '%let origds=%upcase(&origds);'; + put '%if %scan(&origds,-1,.)=&origds %then %let origds=WORK.&origds;'; + put '%let key=%upcase(&key);'; + put '/* hash the key and append all the tables (marking the source) */'; + put 'data &ds1;'; + put 'set &dslist indsname=&inds_auto;'; + put '&hashkey=put(md5(catx(''|'',%mf_getquotedstr(&key,quote=N))),$hex32.);'; + put '&inds_keep=upcase(&inds_auto);'; + put 'proc sort;'; + put 'by &inds_keep &hashkey;'; + put 'run;'; + put '/* transpose numeric & char vars */'; + put 'proc transpose data=&ds1'; + put 'out=&ds2(rename=(&hashkey=key_hash _name_=tgtvar_nm col1=newval_num));'; + put 'by &inds_keep &hashkey;'; + put 'var _numeric_;'; + put 'run;'; + put 'proc transpose data=&ds1'; + put 'out=&ds3('; + put 'rename=(&hashkey=key_hash _name_=tgtvar_nm col1=newval_char)'; + put 'where=(tgtvar_nm not in ("&hashkey","&inds_keep"))'; + put ');'; + put 'by &inds_keep &hashkey;'; + put 'var _character_;'; + put 'run;'; + put '%if %index(&libds,-)>0 and %scan(&libds,2,-)=FC %then %do;'; + put '/* this is a format catalog - cannot query cols directly */'; + put '%let vlist="FMTNAME","START","END","LABEL","MIN","MAX","DEFAULT","LENGTH"'; + put ',"FUZZ","PREFIX","MULT","FILL","NOEDIT","TYPE","SEXCL","EEXCL","HLO"'; + put ',"DECSEP","DIG3SEP","DATATYPE","LANGUAGE";'; + put '%end;'; + put '%else %let vlist=%mf_getvarlist(&libds,dlm=%str(,),quote=DOUBLE);'; + put 'data &ds4;'; + put 'length &inds_keep $41 tgtvar_nm $32 _label_ $256;'; + put 'if _n_=1 then call missing(_label_);'; + put 'drop _label_;'; + put 'set &ds2 &ds3 indsname=&inds_auto;'; + put 'tgtvar_nm=upcase(tgtvar_nm);'; + put 'if tgtvar_nm in (%upcase(&vlist));'; + put 'if upcase(&inds_auto)="&ds2" then tgtvar_type=''N'';'; + put 'else if upcase(&inds_auto)="&ds3" then tgtvar_type=''C'';'; + put 'else do;'; + put 'putlog "%str(ERR)OR: unidentified vartype input!" &inds_auto;'; + put 'call symputx(''syscc'',98);'; + put 'end;'; + put 'if &inds_keep="&appds" then move_type=''A'';'; + put 'else if &inds_keep="&delds" then move_type=''D'';'; + put 'else if &inds_keep="&modds" then move_type=''M'';'; + put 'else if &inds_keep="&origds" then move_type=''O'';'; + put 'else do;'; + put 'putlog "%str(ERR)OR: unidentified movetype input!" &inds_keep;'; + put 'call symputx(''syscc'',99);'; + put 'end;'; + put 'tgtvar_nm=upcase(tgtvar_nm);'; + put 'if tgtvar_nm in (%mf_getquotedstr(&key)) then is_pk=1;'; + put 'else is_pk=0;'; + put 'drop &inds_keep;'; + put 'run;'; + put '%if "&loadref"="0" %then %let loadref=%sysfunc(uuidgen());'; + put '%if &processed_dttm=0 %then %let processed_dttm=%sysfunc(datetime());'; + put '%let libds=%upcase(&libds);'; + put '/* join orig vals for modified & deleted */'; + put 'proc sql;'; + put 'create table &outds as'; + put 'select "&loadref" as load_ref length=36'; + put ',&processed_dttm as processed_dttm format=E8601DT26.6'; + put ',"%scan(&libds,1,.)" as libref length=8'; + put ',"%scan(&libds,2,.)" as dsn length=32'; + put ',b.key_hash length=32'; + put ',b.move_type length=1'; + put ',b.tgtvar_nm length=32'; + put ',b.is_pk'; + put ',case when b.move_type ne ''M'' then -1'; + put 'when a.newval_num=b.newval_num and a.newval_char=b.newval_char then 0'; + put 'else 1'; + put 'end as is_diff'; + put ',b.tgtvar_type length=1'; + put ',case when b.move_type=''D'' then b.newval_num'; + put 'else a.newval_num'; + put 'end as oldval_num format=best32.'; + put ',case when b.move_type=''D'' then .'; + put 'else b.newval_num'; + put 'end as newval_num format=best32.'; + put ',case when b.move_type=''D'' then b.newval_char'; + put 'else a.newval_char'; + put 'end as oldval_char length=32765'; + put ',case when b.move_type=''D'' then '''''; + put 'else b.newval_char'; + put 'end as newval_char length=32765'; + put 'from &ds4(where=(move_type=''O'')) as a'; + put 'right join &ds4(where=(move_type ne ''O'')) as b'; + put 'on a.tgtvar_nm=b.tgtvar_nm'; + put 'and a.key_hash=b.key_hash'; + put 'order by move_type, key_hash,is_pk desc, tgtvar_nm;'; + put '%if &mdebug=0 %then %do;'; + put 'proc sql;'; + put 'drop table &ds1, &ds2, &ds3, &ds4;'; + put '%end;'; + put '%mend mp_storediffs;'; + put '/** @endcond */'; + put '%macro bitemporal_dataloader('; + put 'bus_from= /* Business FROM datetime variable. Req''d on'; + put 'STAGING & BASE tables.*/'; + put ',bus_to = /* Business TO datetime variable. Req''d on'; + put 'STAGING & BASE tables. */'; + put ',bus_from_override= /* Provide a hard coded BUS_FROM datetime value.*/'; + put ',bus_to_override= /* provide a hard coded BUS_TO datetime value */'; + put ',tech_from= /* Technical FROM datetime variable. Req''d on'; + put 'BASE table only. */'; + put ',tech_to = /* Technical TO datetime variable. Req''d on BASE'; + put 'table only. */'; + put ',processed= 0'; + put ',base_lib=WORK /* Libref of the BASE table. */'; + put ',base_dsn=BASETABLE /* Name of BASE table. */'; + put ',append_lib=WORK /* Libref of the STAGING table. */'; + put ',append_dsn=APPENDTABLE'; + put ',high_date=''01JAN5999:00:00:00''dt /* High date to close out records */'; + put ',PK= name sex'; + put ',RK_UNDERLYING='; + put ',KEEPVARS= /* Provides option for removing unwanted vars from append table */'; + put ',RK_UPDATE_MAXKEYTABLE=NO /* If switching (or mix matching) with regular'; + put 'SCD2 loader then set this switch to YES to'; + put 'ensure the MAXKEYTABLE is updated with the'; + put 'current maximum RK value for the target table'; + put '*/'; + put ',CHECK_UNIQUENESS=YES /* Perform a check of the APPEND table to ensure it is'; + put 'unique on its business key */'; + put ',ETLSOURCE=demo /* supply a value ($50.) to show as ETLSOURCE in'; + put '&dclib..DATALOADS */'; + put ',LOADTYPE=BITEMPORAL'; + put ',RK_MAXKEYTABLE= mpe_maxkeyvalues'; + put ',LOG=1 /* Switch to 0 to prevent records being added to'; + put '&mpelib..mpe_DATALOADS (ie when testing)*/'; + put ',DELETE_COL= _____DELETE__THIS__RECORD_____'; + put '/* If this variable is found in the append dataset'; + put 'then records are closed out (or deleted) in the'; + put 'append table where that variable= "Yes" */'; + put ',LOADTARGET=YES /* set to anything but uppercase YES to switch off'; + put 'target table load and generate temp tables only */'; + put ',CLOSE_VARS='; + put '/*a problem with regular SCD2 or TXTEMPORAL loads is that there is'; + put 'no facility to close out removed records (all records are'; + put 'assumed new or changed). But how does one determine which'; + put 'records are removed? Short of loading the entire table'; + put 'each time? This parameter allows a set of variables'; + put '(this should be a subset of the PK) to be declared, and'; + put 'the macro will determine which records in the base table'; + put 'need to be closed out ahead of the load.'; + put 'For instance, given the following:'; + put 'Base Table Staging Table'; + put 'DATE ENTITY AMOUNT DATE ENTITY AMOUNT'; + put 'JAN ACME4 66 JAN ACME4 66'; + put 'FEB ACME4 99 FEB ACME4 99'; + put 'FEB ACME1 22'; + put 'By supplying DATE in CLOSE_VARS and DATE ENTITY as the PK,'; + put 'the "FEB PAG 22" record would get closed out.'; + put '*/'; + put ',config_table=&dclib..MPE_CONFIG'; + put ',dclib=&dc_libref'; + put ',outds_del=work.outds_del'; + put ',outds_add=work.outds_add'; + put ',outds_mod=work.outds_mod'; + put ',outds_audit=0'; + put ');'; + put '/* when changing this macro, update the version num here */'; + put '%local ver;'; + put '%let ver=32;'; + put '%put &sysmacroname entry vars:;'; + put '%put _local_;'; + put '%dc_assignlib(WRITE,&base_lib) /* may not already be assigned */'; + put '/* return straight away if nothing to load */'; + put '%let nobs= %mf_getattrn(&append_lib..&append_dsn,NLOBS);'; + put '%if &nobs=-1 %then %do;'; + put 'proc sql noprint; select count(*) into: nobs from &append_lib..&append_dsn;'; + put '%end;'; + put '%if &nobs=0 %then %do;'; + put '%put NOTE:; %put NOTE-;%put NOTE-;%put NOTE-;'; + put '%put NOTE- Base dataset &append_lib..&append_dsn is empty. Nothing to upload!;'; + put '%put NOTE-;%put NOTE-;%put NOTE-;'; + put '%return;'; + put '%end;'; + put '/* hard exit if err condition exists */'; + put '%mp_abort(iftrue= (&syscc > 0)'; + put ',mac=bitemporal_dataloader'; + put ',msg=%str(Bitemporal transform / job aborted due to SYSCC=&SYSCC status;)'; + put ')'; + put '%local engine_type;'; + put '%let engine_type=%mf_getengine(&base_lib);'; + put '%if (&engine_type=REDSHIFT or &engine_type=POSTGRES) and %length(&CLOSE_VARS)>0'; + put '%then %do;'; + put '%put NOTE:; %put NOTE-;%put NOTE-;%put NOTE-;'; + put '%put NOTE- CLOSE_VARS functionality not yet supported in &engine_type;'; + put '%put NOTE-;%put NOTE-;%put NOTE-;'; + put '%return;'; + put '%end;'; + put '/**'; + put '* The metadata functions (eg mf_existvar) will fail if the base table has a'; + put '* SAS lock. So, make a snapshot of the base table for further use.'; + put '* Also, make output tables (regardless).'; + put '*/'; + put '%local basecopy;'; + put '%let basecopy=%mf_getuniquename(prefix=basecopy);'; + put 'data &basecopy &outds_mod &outds_add &outds_del;'; + put 'set &base_lib..&base_dsn;'; + put 'stop;'; + put 'run;'; + put '%mp_abort(iftrue= (&syscc > 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after base table copy - aborting due to table lock)'; + put ')'; + put '%local cols idx_pk md5_col ;'; + put '%let md5_col=___TMP___md5;'; + put '%let check_uniqueness=%upcase(&check_uniqueness);'; + put '%let RK_UPDATE_MAXKEYTABLE=%upcase(&RK_UPDATE_MAXKEYTABLE);'; + put '%let high_date=%unquote(&high_date);'; + put '%let loadtype=%upcase(&loadtype);'; + put '/* ensure irrelevant variables are cleared */'; + put '%if &loadtype=BUSTEMPORAL %then %do;'; + put '%let tech_from=;'; + put '%let tech_to=;'; + put '%end;'; + put '%else %if &loadtype=TXTEMPORAL or &loadtype=UPDATE %then %do;'; + put '%let bus_from=;'; + put '%let bus_to=;'; + put '%end;'; + put '/* ensure relevant variables are supplied */'; + put '%mp_abort(iftrue=(&loadtype=BITEMPORAL & %mf_verifymacvars(bus_from bus_to)=0)'; + put ',mac=bitemporal_dataloader'; + put ',msg=%str(Missing BUS_FROM / BUS_TO)'; + put ')'; + put '%mp_abort(iftrue=(&loadtype=TXTEMPORAL & %mf_verifymacvars(tech_from tech_to)=0)'; + put ',mac=bitemporal_dataloader'; + put ',msg=%str(Missing TECH_FROM / TECH_TO)'; + put ')'; + put '/**'; + put '* drop any tables (may be defined as views or vice versa preventing overwrite)'; + put '*/'; + put '%mp_dropmembers(append bitemp0_append bitemp_cols)'; + put '/* SQL Server requires its own time values */'; + put '/* 9.2 will only give picture format down to seconds. 9.3 allows'; + put 'milliseconds by using lower S and defining the decimal in the format name..*/'; + put 'PROC FORMAT;'; + put 'picture MyMSdt other=''%0Y-%0m-%0dT%0H:%0M:%0S'' (datatype=datetime);'; + put 'RUN;'; + put '%local dbnow;'; + put '%let dbnow="%sysfunc(datetime(),%mf_fmtdttm())"dt;'; + put 'data _null_;'; + put '/* convert space separated macvar to comma separated for SQL processing */'; + put 'call symputx(''PK_COMMA'',tranwrd(compbl("&pk"),'' '','',''),''L'');'; + put 'call symputx(''PK_CNT'',countw("&pk",'' ''),''L'');'; + put 'now=&dbnow;'; + put 'call symputx(''NOW'',now,''L'');'; + put 'call symputx(''SQLNOW'',cats("''",put(now,MyMSdt.),"''"),''L'');'; + put 'length etlsource $100;'; + put 'etlsource=subpad(symget(''etlsource''),1,100);'; + put 'call symputx(''etlsource'',etlsource,''l'');'; + put 'run;'; + put '/**'; + put '* Even if no PROCESSED var provided, assume that any variable named'; + put '* PROCESSED_DTTM should be updated'; + put '*/'; + put '%if &processed=0 %then %do;'; + put '%if %mf_existvar(&basecopy,PROCESSED_DTTM)'; + put '%then %let processed=PROCESSED_DTTM;'; + put '%else %let processed=;'; + put '%end;'; + put '/* extract colnames for md5 creation / change tracking */'; + put 'proc contents noprint data=&base_lib..&base_dsn'; + put 'out=work.bitemp_cols (keep=name type length varnum format:);'; + put 'run;'; + put 'proc sql noprint;'; + put 'select name into: cols separated by '','''; + put 'from work.bitemp_cols'; + put 'where upcase(name) not in'; + put '(%upcase("&bus_from","&bus_to"'; + put ',"&tech_from","&tech_to"'; + put ',"&processed","&delete_col")) ;'; + put 'select case when type in (2,6) then cats(''put(md5(trim('',name,'')),$hex32.)'')'; + put '/* multiply by 1 to strip precision errors (eg 0 != 0) */'; + put '/* but ONLY if not missing, else will lose any special missing values */'; + put 'else cats(''put(md5(trim(put(ifn(missing('''; + put ',name,''),'',name,'','',name,''*1),binary64.))),$hex32.)'') end'; + put 'into: stripcols separated by ''||'''; + put 'from work.bitemp_cols'; + put 'where upcase(name) not in'; + put '(%upcase("&bus_from","&bus_to"'; + put ',"&tech_from","&tech_to"'; + put ',"&processed","&delete_col")) ;'; + put '/* set default formats*/'; + put '%let bus_from_fmt = datetime19.;'; + put '%let bus_to_fmt = datetime19.;'; + put '%let processed_fmt = datetime19.;'; + put '%let tech_from_fmt = format=datetime19.;'; + put '%let tech_to_fmt = format=datetime19.;'; + put '%put &=stripcols;'; + put '%put &=pk;'; + put 'data _null_;'; + put 'set work.bitemp_cols;'; + put 'if type=2 or type=6 then do;'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'if format='''' then fmt=cats(length,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put 'if upcase(name)="%upcase(&bus_from)" then'; + put 'call symputx(''bus_from_fmt'',fmt,''L'');'; + put 'else if upcase(name)="%upcase(&bus_to)" then'; + put 'call symputx(''bus_to_fmt'',fmt,''L'');'; + put 'else if upcase(name)="%upcase(&tech_from)" then'; + put 'call symputx(''tech_from_fmt'',"format="!!fmt,''L'');'; + put 'else if upcase(name)="%upcase(&tech_to)" then'; + put 'call symputx(''tech_to_fmt'',"format="!!fmt,''L'');'; + put 'else if upcase(name)="%upcase(&processed)" then'; + put 'call symputx(''processed_fmt'',fmt,''L'');'; + put 'run;'; + put '%if %index(%quote(&cols),___TMP___) %then %do;'; + put '%let msg=%str(Table contains a variable name containing "___TMP___".%trim('; + put ') This may conflict with temp variable generation!!);'; + put '%mp_abort(msg=&msg,mac=bitemporal_dataloader);'; + put '%let syscc=5;'; + put '%return;'; + put '%end;'; + put '/* if transaction dates appear on the APPEND table, need to remove them */'; + put '%local drop_tx_dates /* used in append table */'; + put 'drop_tx_dates_noobs /* used to take the base table structure */;'; + put '%if %mf_existvar(&append_lib..&append_dsn, &tech_from)'; + put '%then %let drop_tx_dates=&tech_from;'; + put '%if %mf_existvar(&append_lib..&append_dsn, &tech_to)'; + put '%then %let drop_tx_dates=&drop_tx_dates &tech_to;'; + put '%if %length(%trim(&drop_tx_dates))>0'; + put '%then %let drop_tx_dates=(drop=&drop_tx_dates);'; + put '%if %mf_existvar(&basecopy, &tech_from)'; + put '%then %let drop_tx_dates_noobs=&tech_from;'; + put '%if %mf_existvar(&basecopy, &tech_to)'; + put '%then %let drop_tx_dates_noobs=&drop_tx_dates_noobs &tech_to;'; + put '%if %length(%trim(&drop_tx_dates_noobs))>0'; + put '%then %let drop_tx_dates_noobs=(drop=&drop_tx_dates_noobs obs=0);'; + put '%else %let drop_tx_dates_noobs=(obs=0);'; + put '/**'; + put '* Lock the table. This is necessary as we are doing a two part update (first'; + put '* closing records then appending new records). It is theoretically possible'; + put '* that an upload may occur whilst preparing the staging tables. And the'; + put '* staging tables are about to be prepared..'; + put '*/'; + put '%if &LOADTARGET = YES %then %do;'; + put '%mp_lockanytable(LOCK,'; + put 'lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE,ctl_ds=&dclib..mpe_lockanytable'; + put ')'; + put '%end;'; + put '%else %do;'; + put '/* not an actual load, so avoid updating the max key table in next step. */'; + put '%let rk_update_maxkeytable=NO;'; + put '%end;'; + put '%if %length(&RK_UNDERLYING)>0 %then %do;'; + put '%mp_retainedkey('; + put 'base_lib=&base_lib'; + put ',base_dsn=&base_dsn'; + put ',append_lib=&append_lib'; + put ',append_dsn=&append_dsn'; + put ',retained_key=&pk'; + put ',business_key=&rk_underlying'; + put ',check_uniqueness=&CHECK_UNIQUENESS'; + put ',outds=work.append'; + put '%if &rk_update_maxkeytable=NO %then %do;'; + put ',maxkeytable=0'; + put '%end;'; + put '%else %do;'; + put ',maxkeytable=&dclib..&RK_MAXKEYTABLE'; + put '%end;'; + put ',locktable=&dclib..mpe_lockanytable'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then %do;'; + put ',filter_str=%str( (where=( &now < &tech_to)) )'; + put '%end;'; + put ')'; + put '%end;'; + put '%else %do;'; + put 'proc sql;'; + put 'create view work.append as select * from &append_lib..&append_dsn;'; + put '%end;'; + put '/**'; + put '* generate md5 for append table'; + put '*/'; + put '/* it is possible the source dataset has additional (unwanted) columns.'; + put 'Drop if specified; */'; + put '%if %length(&keepvars)>0 %then %do;'; + put '/* remove tech dates from keepvars as they are generated later */'; + put '%let keepvars=%sysfunc(tranwrd(%str( &keepvars ),%str( &tech_from ),%str( )));'; + put '%let keepvars=%sysfunc(tranwrd(%str( &keepvars ),%str( &tech_to ),%str( )));'; + put '%let keepvars=(keep=&keepvars &bus_from &bus_to &processed &md5_col);'; + put '%end;'; + put '/* CAS varchar types cause append issues here, so perform autoconvert'; + put 'by creating empty local table first */'; + put 'data;'; + put 'set &base_lib..&base_dsn &drop_tx_dates_noobs;'; + put 'run;'; + put '%local emptybasetable; %let emptybasetable=&syslast;'; + put 'data work.bitemp0_append &keepvars &outds_del(drop=&md5_col )'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put '/nonote2err'; + put '%end;'; + put ';'; + put '/* apply formats for bitemporal vars but not tx dates which are added later */'; + put '%if %length(&keepvars)>0 and &loadtype=BITEMPORAL %then %do;'; + put 'format &bus_from &bus_from_fmt;'; + put 'format &bus_to &bus_to_fmt;'; + put '%end;'; + put 'set &emptybasetable /* base table reqd in case append has fewer cols */'; + put 'work.append &drop_tx_dates;'; + put '%if %length(%str(&bus_from_override))>0 %then %do;'; + put '&bus_from= %unquote(&bus_from_override) ;'; + put '%end;'; + put '%if %length(%str(&bus_to_override))>0 %then %do;'; + put '&bus_to= %unquote(&bus_to_override) ;'; + put '%end;'; + put 'length &md5_col $32;'; + put '&md5_col=put(md5(&stripcols),hex32.);'; + put '%if %length(&processed)>0 %then %do;'; + put 'format &processed &processed_fmt;'; + put '&processed=&now;'; + put '%end;'; + put '/**'; + put '* If a delete column exists then create the delete dataset'; + put '*/'; + put '%if %mf_existvar(&append_lib..&append_dsn, &delete_col) %then %do;'; + put 'drop &delete_col;'; + put 'if upcase(&delete_col) = "YES" then output &outds_del ;'; + put 'else output work.bitemp0_append ;'; + put 'run;'; + put '%if %mf_getattrn(&outds_del,NLOBS)>0 %then %do;'; + put '%bitemporal_closeouts('; + put 'tech_from=&tech_from'; + put ',tech_to = &tech_to'; + put ',base_lib=&base_lib'; + put ',base_dsn=&base_dsn'; + put ',append_lib=work'; + put ',append_dsn=%scan(&outds_del,-1,.)'; + put ',PK=&bus_from &pk'; + put ',NOW=&dbnow'; + put ',loadtarget=&loadtarget'; + put ',loadtype=&loadtype'; + put ')'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put 'output work.bitemp0_append;'; + put 'run;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc gt 0 at line 494)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc)'; + put ')'; + put '%if %length(&close_vars)>0 %then %do;'; + put '/**'; + put '* need to close out records that are not provided'; + put '*/'; + put 'proc sql;'; + put 'create table bitemp1_closevars1 as'; + put 'select distinct a.%mf_getquotedstr(in_str=&pk,dlm=%str(,a.),quote=)'; + put 'from &base_lib..&base_dsn a'; + put 'inner join work.bitemp0_append b'; + put 'on 1=1'; + put '/* join on closevars key */'; + put '%do idx_pk=1 %to %sysfunc(countw(&close_vars));'; + put '%let idx_val=%scan(&close_vars,&idx_pk);'; + put 'and a.&idx_val=b.&idx_val'; + put '%end;'; + put '/* filter base on tech dates if necessary */'; + put '%if &loadtype=TXTEMPORAL %then %do;'; + put 'where a.&tech_from <=&now and &now < a.&tech_to'; + put '%end;'; + put ';'; + put 'create table bitemp1_closevars2 as'; + put 'select distinct a.*'; + put 'from bitemp1_closevars1 a'; + put 'left join work.bitemp0_append b'; + put 'on 1=1'; + put '/* join on primary key */'; + put '%do idx_pk=1 %to %sysfunc(countw(&pk));'; + put '%let idx_val=%scan(&pk,&idx_pk);'; + put 'and a.&idx_val=b.&idx_val'; + put '%end;'; + put '/* identify removed records by null value in a field in PK but not close_vars'; + put '*/'; + put 'where b.%scan('; + put '%mf_wordsInStr1ButNotStr2(Str1=&pk,Str2=&close_vars),1,%str( )'; + put ') IS NULL'; + put ';'; + put '%if %mf_getattrn(bitemp1_closevars2,NLOBS)>0 %then %do;'; + put '%bitemporal_closeouts('; + put 'tech_from=&tech_from'; + put ',tech_to = &tech_to'; + put ',base_lib=&base_lib'; + put ',base_dsn=&base_dsn'; + put ',append_lib=work'; + put ',append_dsn=bitemp1_closevars2'; + put ',PK=&bus_from &pk'; + put ',NOW=&dbnow'; + put ',loadtarget=&loadtarget'; + put ',loadtype=&loadtype'; + put ')'; + put '%end;'; + put '%end;'; + put '/* return if nothing to load (was just deletes) */'; + put '%if %mf_getattrn(work.bitemp0_append,NLOBS)=0 %then %do;'; + put '%put NOTE:; %put NOTE-;%put NOTE-;%put NOTE-;'; + put '%put NOTE- No updates - just deletes!;'; + put '%put NOTE-;%put NOTE-;%put NOTE-;'; + put '%mp_lockanytable(UNLOCK,'; + put 'lib=&base_lib,ds=&base_dsn,'; + put 'ref=&ETLSOURCE,'; + put 'ctl_ds=&dclib..mpe_lockanytable'; + put ')'; + put '%if %mf_getattrn(&outds_del,NLOBS)>0 %then %do;'; + put '%let user=%mf_getUser();'; + put '/* no emails yet'; + put '%sumo_alerts(ALERT_EVENT=UPDATE'; + put ', ALERT_TARGET=&base_lib..&base_dsn'; + put ', from_user= &user);*/'; + put '%end;'; + put '%return;'; + put '%end;'; + put '/**'; + put '* If applying manual overrides to business dates, then the input table MUST'; + put '* be unique on the PK. Check, and if not - abort.'; + put '*/'; + put '%local msg;'; + put '%if %length(&bus_from_override.&bus_to_override)>0 or &CHECK_UNIQUENESS=YES'; + put '%then %do;'; + put 'proc sort data=work.bitemp0_append out=work.bitemp0_check nodupkey;'; + put 'by &pk;'; + put 'run;'; + put '%if %mf_getattrn(work.bitemp0_check,NLOBS)'; + put 'ne %mf_getattrn(work.bitemp0_append,NLOBS)'; + put '%then %do;'; + put '%let msg=INPUT table &append_lib..&append_dsn is not unique on PK (&pk);'; + put '%mp_lockanytable(UNLOCK,lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE (&msg),'; + put 'ctl_ds=&dclib..mpe_lockanytable'; + put ')'; + put '%mp_abort(msg=&msg,mac=bitemporal_dataloader.sas);'; + put '%end;'; + put '%end;'; + put '/**'; + put '* extract from BASE table. Only want matching records, as could be very BIG.'; + put '* New records are subsequently identified via left join and test for nulls.'; + put '*/'; + put '%local temp_table temp_table2 base_table baselib_schema;'; + put '%put DCNOTE: Extracting matching observations from &base_lib..&base_dsn;'; + put '%if &engine_type=OLEDB %then %do;'; + put '%let temp_table=##BITEMP_&base_dsn;'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then'; + put '%let base_table=(select * from [dbo].&base_dsn'; + put 'where convert(datetime,&SQLNOW) < &tech_to );'; + put '%else %let base_table=[dbo].&base_dsn;'; + put 'proc sql;'; + put 'create table &base_lib.."&temp_table"n as'; + put 'select * from work.bitemp0_append;'; + put '/* open up a connection for pass through SQL */'; + put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; + put 'create table work.bitemp0_base as select * from connection to myAlias('; + put '%end;'; + put '%else %if &engine_type=REDSHIFT or &engine_type=POSTGRES %then %do;'; + put '/* grab schema */'; + put '%let baselib_schema=%mf_getschema(&base_lib);'; + put '%if &baselib_schema.X ne X %then %let baselib_schema=&baselib_schema..;'; + put '/* grab redshift config */'; + put '%local redcnt; %let redcnt=0;'; + put '%if &engine_type=REDSHIFT %then %do;'; + put 'data _null_;'; + put 'set &config_table(where=(var_scope=''DCBL_REDSH'' and var_active=1));'; + put 'x+1;'; + put 'call symputx(cats(''rednm'',x),var_value,''l'');'; + put 'call symputx(cats(''redval'',x),var_value,''l'');'; + put 'call symputx(''redcnt'',x,''l'');'; + put 'run;'; + put '%end;'; + put '/* cannot persist temp tables so must create a temporary permanent table */'; + put '%let temp_table=%mf_getuniquename(prefix=XDCTEMP);'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then'; + put '%let base_table=(select * from &baselib_schema.&base_dsn'; + put 'where timestamp &sqlnow < &tech_to );'; + put '%else %let base_table=&baselib_schema.&base_dsn;'; + put '/* make empty table first - must clone & drop extra cols as autoload is bad */'; + put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; + put 'exec (create table &temp_table (like &baselib_schema.&base_dsn)) by myAlias;'; + put '%if &engine_type=REDSHIFT %then %do;'; + put 'exec (alter table &temp_table alter sortkey none) by myAlias;'; + put '%end;'; + put '%local dropcols;'; + put '%let dropcols=%mf_wordsinstr1butnotstr2('; + put 'str1=%upcase(%mf_getvarlist(&basecopy))'; + put ',str2=%upcase(&pk)'; + put ');'; + put '%if %length(&dropcols>0) %then %do idx_pk=1 %to %sysfunc(countw(&dropcols));'; + put '%put &=dropcols;'; + put '%let idx_val=%scan(&dropcols,&idx_pk);'; + put 'exec(alter table &temp_table drop column &idx_val;) by myAlias;'; + put '%end;'; + put 'exec (alter table &temp_table add column &md5_col varchar(32);) by myAlias;'; + put '/* create view to strip formats and avoid warns in log */'; + put 'data work.vw_bitemp0/view=work.vw_bitemp0;'; + put 'set work.bitemp0_append(keep=&pk &md5_col);'; + put 'format _all_;'; + put 'run;'; + put 'proc append base=&base_lib..&temp_table'; + put '%if &engine_type=REDSHIFT %then %do;'; + put '('; + put '%do idx_pk=1 %to &redcnt;'; + put '&&rednm&idx_pk = &&redval&idxpk'; + put '%end;'; + put ')'; + put '%end;'; + put 'data=work.vw_bitemp0 force nowarn;'; + put 'run;'; + put '/* open up a connection for pass through SQL */'; + put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; + put 'create table work.bitemp0_base as select * from connection to myAlias('; + put '%end;'; + put '%else %if &engine_type=CAS %then %do;'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then'; + put '%let base_table=&base_lib..&base_dsn'; + put '(where=(&tech_from <=&now and &now < &tech_to));'; + put '%else %let base_table=&base_lib..&base_dsn;'; + put '%let temp_table=CASUSER.%mf_getuniquename(prefix=DC);'; + put 'data &temp_table;'; + put 'set work.bitemp0_append;'; + put 'run;'; + put '%let bitemp0base=CASUSER.%mf_getuniquename(prefix=DC);'; + put 'proc fedsql sessref=dcsession;'; + put 'create table &bitemp0base{options replace=true} as'; + put '%end;'; + put '%else %do;'; + put '%let temp_table=work.bitemp0_append;'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then'; + put '%let base_table=&base_lib..&base_dsn'; + put '(where=(&tech_from <=&now and &now < &tech_to));'; + put '%else %let base_table=&base_lib..&base_dsn;'; + put 'proc sql;'; + put 'create table work.bitemp0_base as'; + put '%end;'; + put 'select a.&md5_col /* this identifies NEW records */'; + put ', b.*'; + put '/* assume first PK field cannot be null (if defined in a PK constraint then'; + put 'it definitely cannot be null) */'; + put ', case when b.%scan(&pk,1) IS NULL then 1 else 0 end as ___TMP___NEW_FLG'; + put 'from &baselib_schema.&temp_table a'; + put 'left join &base_table b'; + put 'on 1=1'; + put '%do idx_pk=1 %to &pk_cnt;'; + put '%let idx_val=%scan(&pk,&idx_pk);'; + put 'and a.&idx_val=b.&idx_val'; + put '%end;'; + put '%if &engine_type=OLEDB or &engine_type=REDSHIFT or &engine_type=POSTGRES'; + put '%then %do;'; + put '); proc sql; drop table &base_lib.."&temp_table"n;'; + put '%end;'; + put '%else %if &engine_type=CAS %then %do;'; + put ';'; + put 'quit;'; + put 'data work.bitemp0_base;'; + put 'set &bitemp0base;'; + put 'run;'; + put 'proc sql;'; + put 'drop table &temp_table;'; + put 'drop table &bitemp0base;'; + put '%end;'; + put '%else %do;'; + put ';'; + put '%end;'; + put '/**'; + put '* matching & changed records are those without NULL key values'; + put '* &idx_val resolves to rightmost PK value (loop above)'; + put '*/'; + put '%put syscc (line525)=&syscc, sqlrc=&sqlrc;'; + put '%mp_abort(iftrue= (&syscc gt 0 or &sqlrc>0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc sqlrc=&sqlrc)'; + put ')'; + put '%put hashcols2=&stripcols;'; + put 'proc sql;'; + put 'create table work.bitemp1_current(drop=___TMP___NEW_FLG) as'; + put 'select *'; + put ', put(md5(&stripcols),$hex32.) as &md5_col'; + put 'from work.bitemp0_base (drop=&md5_col)'; + put 'where ___TMP___NEW_FLG=0;'; + put '/**'; + put '* NEW records were identified in ___TMP___NEW_FLG in bitemp0_base'; + put '*/'; + put 'proc sql;'; + put 'create table &outds_add'; + put '(drop=&md5_col'; + put '%if %mf_existvar(work.bitemp0_base, &delete_col) %then %do;'; + put '&delete_col'; + put '%end;'; + put ')'; + put 'as select a.*'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then %do;'; + put ',&now as &tech_from &tech_from_fmt'; + put ',&high_date as &tech_to &tech_to_fmt'; + put '%end;'; + put 'from work.bitemp0_append a /* STAGING records (mix of existing & new) */'; + put ', work.bitemp0_base b /* BASE records (contains null values for new) */'; + put 'where a.&md5_col=b.&md5_col /* took staging md5 across in left join */'; + put 'and b.___TMP___NEW_FLG=1; /* NEW records also identified in bitemp0_base */'; + put '/**'; + put '* identify INSERTS. These are records with the same business key but'; + put '* the bus_from and bus_to value are higher / lower (respectively)'; + put '* such that the existing record needs to be SPLIT to surround the new'; + put '* record.'; + put '* eg: OLD RECORD from=1 to=10'; + put '* NEW RECORD from=5 to=7'; + put '*'; + put '* APPENDED RECORDS:'; + put '* - from=1 to=5'; + put '* - from=5 to=7'; + put '* - from=7 to=10'; + put '*/'; + put '/* inserts cannot happen with TXTEMPORAL */'; + put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL %then %do;'; + put '/* IDENTIFY */'; + put 'create table work.bitemp3_inserts as'; + put 'select b.*'; + put ',a.&bus_from as ___TMP___from'; + put ',a.&bus_to as ___TMP___to'; + put 'from work.bitemp0_append a'; + put ',work.bitemp1_current b'; + put 'where a.&bus_from > b.&bus_from'; + put 'and a.&bus_to < b.&bus_to'; + put '%do idx_pk=1 %to &pk_cnt;'; + put '%let idx_val=%scan(&pk,&idx_pk);'; + put 'and a.&idx_val=b.&idx_val'; + put '%end;'; + put 'order by'; + put '/* compress blanks and then insert commas (as the datetime fields may'; + put 'not be in use) */'; + put '%sysfunc(tranwrd(%sysfunc(compbl('; + put '&pk &bus_from &bus_to &processed'; + put ')),%str( ), %str(,)))'; + put ';'; + put '/* SPLIT */'; + put 'data work.bitemp3a_inserts (drop=___TMP___from ___TMP___retain ___TMP___to) ;'; + put 'set work.bitemp3_inserts;'; + put 'by &pk &bus_from &bus_to &processed;'; + put 'if first.&idx_val then do;'; + put '___TMP___retain=&bus_to;'; + put '&bus_to=___TMP___from;'; + put 'output;'; + put '&bus_to=___TMP___retain;'; + put 'end;'; + put 'if last.&idx_val then do;'; + put '&bus_from=___TMP___to;'; + put 'output;'; + put 'end;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '/* TX temporal load */'; + put 'data work.bitemp3a_inserts;'; + put 'set work.bitemp1_current;'; + put 'stop;'; + put 'run;'; + put '%end;'; + put '/* APPEND */'; + put 'proc sql;'; + put 'create view work.bitemp3a_view as'; + put 'select * from work.bitemp1_current'; + put 'where &md5_col not in (select &md5_col from work.bitemp3a_inserts);'; + put 'data bitemp3b_newbase;'; + put 'set work.bitemp3a_inserts work.bitemp3a_view;'; + put 'run;'; + put '/** do not use! this converts short numerics into 8 bytes'; + put 'proc sql;'; + put 'create table work.bitemp3b_newbase as'; + put 'select * from work.bitemp3a_inserts'; + put 'union corr'; + put 'select * from work.bitemp1_current'; + put 'where &md5_col not in (select &md5_col from work.bitemp3a_inserts);'; + put '*/'; + put '/**'; + put '* identify CHANGED records from staging.'; + put '* Same business key with different temporal dates or md5 value'; + put '* This table must be overlayed onto / into existing business history'; + put '*/'; + put 'proc sql;'; + put 'create table work.bitemp4_updated as select distinct a.*'; + put 'from work.bitemp0_append a'; + put ',work.bitemp3b_newbase b'; + put 'where 1=1'; + put '%do idx_pk=1 %to &pk_cnt;'; + put '%let idx_val=%scan(&pk,&idx_pk);'; + put 'and a.&idx_val=b.&idx_val'; + put '%end;'; + put 'and ( a.&md5_col ne b.&md5_col'; + put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL %then %do;'; + put 'OR (a.&bus_from ne b.&bus_from or a.&bus_to ne b.&bus_to)'; + put '%end;'; + put ')'; + put ';'; + put '/**'; + put '* This section would have been one simple step with union all'; + put '* but that converts short numerics into 8 bytes!'; + put '* so, convoluted alternative to retain the same functionality.'; + put '*/'; + put '/* base records */'; + put 'create view work.bitemp4_prep1 as'; + put 'select ''BASE'' as ___TMP___'; + put ',b.*'; + put 'from work.bitemp4_updated a'; + put ',work.bitemp3b_newbase b'; + put 'where 1'; + put '%do idx_pk=1 %to &pk_cnt;'; + put '%let idx_val=%scan(&pk,&idx_pk);'; + put 'and a.&idx_val=b.&idx_val'; + put '%end;'; + put ';'; + put '/* updated records */'; + put 'create view work.bitemp4_prep2 as'; + put 'select ''STAG'' as ___TMP___ ,*'; + put 'from work.bitemp4_updated;'; + put '/* ensure we only keep columns that appear in both */'; + put '%local bp1 bp2 bp3 bp4;'; + put '%let bp1=%mf_getvarlist(bitemp4_prep1);'; + put '%let bp2=%mf_getvarlist(bitemp4_prep2);'; + put '%let bp3=%mf_wordsInStr1ButNotStr2(Str1=&bp1,Str2=&bp2);'; + put '%let bp4=%mf_wordsInStr1ButNotStr2(Str1=&bp2,Str2=&bp1);'; + put 'data work.bitemp4_prep3/view=bitemp4_prep3;'; + put 'set bitemp4_prep1 bitemp4_prep2;'; + put '%if %length(XX&bp3&bp4)>2 %then %do;'; + put 'drop &bp3 &bp4 ;'; + put '%end;'; + put 'run;'; + put '/* remove duplicates */'; + put 'proc sql;'; + put 'create table work.bitemp4a_allrecs as'; + put 'select distinct *'; + put 'from work.bitemp4_prep3'; + put 'order by'; + put '/* compress blanks and then insert commas (as the datetime fields'; + put 'may not be in use) */'; + put '%sysfunc(tranwrd(%sysfunc(compbl('; + put '&pk &bus_from &bus_to &processed'; + put ')),%str( ), %str(,)))'; + put ';'; + put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL %then %do;'; + put '/* this section aligns the business dates'; + put '(eg for inserts or overlaps in the range) */'; + put 'data work.bitemp4b_firstpass (drop=___TMP___cond ___TMP___from ___TMP___to );'; + put 'set work.bitemp4a_allrecs;'; + put 'by &pk &bus_from &bus_to &processed;'; + put 'retain ___TMP___cond ''Name of Condition'';'; + put 'retain ___TMP___from ___TMP___to 0;'; + put '___TMP___md5lag=lag(&md5_col);'; + put '/* reset retained variables */'; + put 'if first.&idx_val then do;'; + put 'call missing (___TMP___cond, ___TMP___from, ___TMP___to,___TMP___md5lag);'; + put 'end;'; + put 'else do;'; + put '/* if record is identical, carry forward bus_from (and bus_to if higher)*/'; + put 'if &md5_col=___TMP___md5lag then do;'; + put '&bus_from=___TMP___from;'; + put 'if &bus_to<___TMP___to then &bus_to=___TMP___to;'; + put 'end;'; + put 'end;'; + put 'if ___TMP___=''STAG'' then do;'; + put '/* need to carry forward the closing record */'; + put '___TMP___cond=''Condition 1'';'; + put 'end;'; + put 'else if ___TMP___cond=''Condition 1'' then do;'; + put '/* else ensure bus_from starts from prior record bus_to */'; + put 'if &md5_col ne ___TMP___md5lag and &bus_from <= ___TMP___to'; + put 'then &bus_from= ___TMP___to;'; + put '/* new record may replace old record entirely */'; + put 'if &bus_to <= &bus_from then delete;'; + put 'else call missing (___TMP___cond, ___TMP___from, ___TMP___to);'; + put 'end;'; + put '___TMP___from=&bus_from;'; + put '___TMP___to=&bus_to;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '/* keep staged records only */'; + put 'data work.bitemp4b_firstpass;'; + put 'set work.bitemp4a_allrecs;'; + put 'if ___TMP___=''STAG'';'; + put 'run;'; + put '%end;'; + put '/* next phase is to pass through in reverse - so set up the sort statement */'; + put '%local byvar;'; + put '%do idx_pk=1 %to &pk_cnt;'; + put '%let byvar=&byvar descending %scan(&pk,&idx_pk);'; + put '%end;'; + put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL'; + put '%then %let byvar=&byvar descending &bus_from descending &bus_to;'; + put '/* if matching bus dates supplied, need to ensure we also have a sort'; + put 'between BASE and STAGING tables */'; + put '%let byvar=&byvar descending ___TMP___;'; + put 'proc sort data=work.bitemp4b_firstpass out=work.bitemp4c_sort ;'; + put 'by &byvar;'; + put 'run;'; + put '/**'; + put '* Now (in reverse) pass back business start dates'; + put '*/'; + put 'data work.bitemp4d_secondpass;'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then %do;'; + put '&tech_from=&now;'; + put '&tech_to=&high_date;'; + put '%end;'; + put 'set work.bitemp4c_sort ;'; + put 'by &byvar;'; + put 'retain ___TMP___cond ''Name of Condition'';'; + put 'retain ___TMP___from ___TMP___to 0;'; + put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL %then %do;'; + put '/* put / _all_ /;*/'; + put '___TMP___md5lag=lag(&md5_col);'; + put 'if first.&idx_val then do;'; + put '/* reset retained variables */'; + put 'call missing (___TMP___cond,___TMP___from,___TMP___to,___TMP___md5lag);'; + put 'end;'; + put 'else do;'; + put '/* if record is identical, carry back bus_to */'; + put 'if &md5_col=___TMP___md5lag then &bus_to=___TMP___to;'; + put 'end;'; + put 'if ___TMP___=''STAG'' then do;'; + put '/* need to carry forward the closing record */'; + put '___TMP___cond=''Condition 2'';'; + put 'end;'; + put 'else if ___TMP___cond=''Condition 2'' then do;'; + put '/* else ensure bus_to stops at subsequent record bus_from */'; + put 'if &md5_col ne ___TMP___md5lag and &bus_to >= ___TMP___from'; + put 'then &bus_to= ___TMP___from;'; + put '/* new record may replace old record entirely */'; + put 'if &bus_from >= &bus_to then delete;'; + put 'if &bus_from=___TMP___from and &bus_to=___TMP___to then delete;'; + put 'else call missing (___TMP___cond, ___TMP___from, ___TMP___to);'; + put 'end;'; + put '___TMP___from=&bus_from;'; + put '___TMP___to=&bus_to;'; + put '%end;'; + put 'run;'; + put '%put syscc (line600)=&syscc;'; + put '/**'; + put 'There may still be some records (eg old business history) which have not'; + put 'changed.'; + put 'Need to identify these and remove from the append so they are not updated'; + put 'unnecessarily. This is done by generating a new md5 (which INCLUDES the'; + put 'business key) and any matching / identical records are split out (from those'; + put 'that need to be updated).'; + put '*/'; + put '%if &loadtype=BITEMPORAL %then %do;'; + put '%let cat_string=catx(''|'' ,&bus_from,&bus_to);'; + put 'data bitemp5a_lkp (keep=&md5_col);'; + put 'set bitemp0_base;'; + put '/* for BITEMPORAL we need to compare business dates also */'; + put '&md5_col=put(md5(&cat_string!!''|''!!&stripcols),$hex32.);'; + put 'run;'; + put 'data bitemp5b_updates;'; + put 'set bitemp4d_secondpass;'; + put 'if _n_=1 then do;'; + put 'dcl hash md5_lkp(dataset:''bitemp5a_lkp'');'; + put 'md5_lkp.definekey("&md5_col");'; + put 'md5_lkp.definedone();'; + put 'end;'; + put '/* drop old md5 col as will rebuild with new business dates */'; + put '&md5_col=put(md5(&cat_string!!''|''!!&stripcols),$hex32.) ;'; + put 'if md5_lkp.check()=0 then delete;'; + put 'run;'; + put 'proc sql;'; + put '/* get min bus from as will update (close out) all records from this point'; + put '(for that PK)*/'; + put 'create table work.bitemp5d_subquery as'; + put 'select &pk_comma, min(&bus_from)as &bus_from, max(&bus_to) as &bus_to'; + put 'from work.bitemp5b_updates'; + put 'group by &pk_comma;'; + put '/* index has a huge efficiency impact on upcoming nested subquery */'; + put 'create index index1 on work.bitemp5d_subquery(&pk_comma,&bus_from, &bus_to);'; + put '%let lastds=work.bitemp5b_updates;'; + put '%end;'; + put '%else %if &loadtype=TXTEMPORAL or &loadtype=UPDATE %then %do;'; + put 'proc sql;'; + put 'create table work.bitemp5d_subquery as'; + put 'select distinct &pk_comma'; + put 'from bitemp4d_secondpass;'; + put '%let lastds=work.bitemp4d_secondpass;'; + put '%end;'; + put '%else %let lastds=work.bitemp4d_secondpass;'; + put '/* create single append table (an overlapped pre-sert may be classed as'; + put 'both an update AND a new record). Also create temp views that may be'; + put 'used for pre-load analysis. */'; + put 'data &outds_mod;'; + put 'set &lastds(drop=___TMP___: &md5_col);'; + put 'run;'; + put 'data bitemp6_allrecs / view=bitemp6_allrecs;'; + put 'set &outds_mod /* UPDATED records */'; + put '&outds_add /* NEW records */;'; + put 'run;'; + put 'proc sort data=work.bitemp6_allrecs'; + put 'out=work.bitemp6_unique'; + put 'noduprec'; + put 'dupout=work.xx_BADBADBAD;'; + put 'by _all_;'; + put 'run;'; + put '/* we have all our temp tables now so exit if this is all that is needed */'; + put '%if &LOADTARGET ne YES %then %return;'; + put '/* also exit if an err condition exists */'; + put '%put syscc=&syscc;'; + put '%if &syscc>0 %then %do;'; + put '%let msg=Bitemporal transform / job aborted due to SYSCC=&SYSCC status;'; + put '%mp_lockanytable(UNLOCK,lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE (&msg),'; + put 'ctl_ds=&dclib..mpe_lockanytable'; + put ')'; + put '%mp_abort(msg=&msg);'; + put '%end;'; + put '/* final check - abort if a lock has appeared on the target table */'; + put '%mp_lockfilecheck(libds=&base_lib..&base_dsn)'; + put '/**'; + put '* STAGING TABLES PREPARED, ERR CONDITION TESTED FOR.. NOW TO LOAD!!'; + put '*/'; + put '/**'; + put '* First, CLOSE OUT changed records (if not a REPLACE)'; + put '* Note that SAS does not support ANSI standard for UPDATE with a join condition.'; + put '* However - this can be worked around using a nested subquery..'; + put '*/'; + put 'data _null_;'; + put 'putlog "&sysmacroname: CLOSEOUTS commencing";'; + put 'run;'; + put '%if %mf_getattrn(&lastds,NLOBS)=0 %then %do;'; + put 'data _null_;'; + put 'putlog "&sysmacroname: No closeouts needed";'; + put 'run;'; + put '%end;'; + put '%else %if &engine_type=CAS %then %do;'; + put '%mp_abort(iftrue= (&loadtype=BITEMPORAL or &loadtype=TXTEMPORAL)'; + put ',mac=&sysmacroname in &_program'; + put ',msg=%str(&loadtype not yet supported in CAS engine)'; + put ')'; + put '/* create temp table for deletions */'; + put '%local delds;%let delds=%mf_getuniquename(prefix=DC);'; + put 'data casuser.&delds;'; + put 'set work.bitemp5d_subquery;'; + put 'run;'; + put '/* delete the records */'; + put 'proc cas ;'; + put 'table.deleteRows / table={'; + put 'caslib="&base_lib",'; + put 'name="&base_dsn",'; + put 'where="1=1",'; + put 'whereTable={caslib=''CASUSER'',name="&delds"}'; + put '};'; + put 'quit;'; + put '/* drop temp table */'; + put 'proc sql;'; + put 'drop table CASUSER.&delds;'; + put '%end;'; + put '%else %if (&loadtype=BITEMPORAL or &loadtype=TXTEMPORAL or &loadtype=UPDATE)'; + put '%then %do;'; + put 'data _null_;'; + put 'putlog "&sysmacroname: &loadtype operation using &engine_type engine";'; + put 'run;'; + put '%local flexinow;'; + put 'proc sql;'; + put '/* if OLEDB then create a temp table for efficiency */'; + put '%local innertable;'; + put '%if &engine_type=OLEDB %then %do;'; + put '%let innertable=[##BITEMP_&base_dsn];'; + put '%let top_table=[dbo].&base_dsn;'; + put '%let flexinow=&SQLNOW;'; + put 'create table &base_lib.."##BITEMP_&base_dsn"n as'; + put 'select * from work.bitemp5d_subquery;'; + put '/* open up a connection for pass through SQL */'; + put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; + put 'execute('; + put '%end;'; + put '%else %if &engine_type=REDSHIFT or &engine_type=POSTGRES %then %do;'; + put '%let innertable=%mf_getuniquename(prefix=XDCTEMP);'; + put '%let top_table=&baselib_schema.&base_dsn;'; + put '%let flexinow=timestamp &SQLNOW;'; + put '/* make empty table first - must clone & drop extra cols'; + put 'as autoload is bad */'; + put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; + put 'exec (create table &innertable (like &baselib_schema.&base_dsn)) by myAlias;'; + put '%if &engine_type=REDSHIFT %then %do;'; + put 'exec (alter table &innertable alter sortkey none) by myAlias;'; + put '%end;'; + put '%let dropcols=%mf_wordsinstr1butnotstr2('; + put 'str1=%upcase(%mf_getvarlist(&basecopy))'; + put ',str2=%upcase(%mf_getvarlist(work.bitemp5d_subquery))'; + put ');'; + put '%if %length(&dropcols>0) %then %do idx_pk=1 %to %sysfunc(countw(&dropcols));'; + put '%put &=dropcols;'; + put '%let idx_val=%scan(&dropcols,&idx_pk);'; + put 'exec(alter table &innertable drop column &idx_val;) by myAlias;;'; + put '%end;'; + put '/* create view to strip formats and avoid warns in log */'; + put 'data work.vw_bitemp5d/view=work.vw_bitemp5d;'; + put 'set work.bitemp5d_subquery;'; + put 'format _all_;'; + put 'run;'; + put 'proc append base=&base_lib..&innertable ('; + put '%do idx_pk=1 %to &redcnt;'; + put '&&rednm&idx_pk = &&redval&idxpk'; + put '%end;'; + put ')'; + put 'data=work.vw_bitemp5d force nowarn;'; + put 'run;'; + put '/* open up a connection for pass through SQL */'; + put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; + put 'execute('; + put '%end;'; + put '%else %do;'; + put '%let innertable=bitemp5d_subquery;'; + put '%let top_table=&base_lib..&base_dsn;'; + put '%let flexinow=&now;'; + put '%end;'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then %do;'; + put 'update &top_table set &tech_to=&flexinow'; + put '%if %length(&processed)>0 %then %do;'; + put ',&processed=&flexinow'; + put '%end;'; + put 'where &tech_from <= &flexinow and &flexinow < &tech_to and'; + put '%end;'; + put '%else %if &loadtype=UPDATE %then %do;'; + put '/* changed records are deleted then re-appended when doing UPDATEs */'; + put 'delete from &top_table where'; + put '%end;'; + put '%else %do;'; + put '%put %str(ERR)OR: BUSTEMPORAL NOT YET SUPPORTED;'; + put '%let syscc=5;'; + put '%mp_lockanytable(UNLOCK,lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE,'; + put 'ctl_ds=&dclib..mpe_lockanytable'; + put ')'; + put '%goto end_of_macro;'; + put '%end;'; + put '/* perform join inside query as per'; + put 'http://stackoverflow.com/questions/24629793/update-with-a-proc-sql */'; + put 'exists( select 1 from &baselib_schema.&innertable where'; + put '/* loop PK join */'; + put '%do idx_pk=1 %to &pk_cnt;'; + put '%let idx_val=%scan(&pk,&idx_pk);'; + put '&base_dsn..&idx_val=&innertable..&idx_val and'; + put '%end;'; + put '%if &loadtype=BITEMPORAL %then %do;'; + put '&base_dsn..&bus_from >= &innertable..&bus_from'; + put 'and &base_dsn..&bus_to <= &innertable..&bus_to and'; + put '%end;'; + put '/* close the statement */'; + put '1=1);'; + put '%if &engine_type=OLEDB or &engine_type=REDSHIFT or &engine_type=POSTGRES'; + put '%then %do;'; + put ') by myAlias;'; + put 'execute (drop table &baselib_schema.&innertable) by myAlias;'; + put '%end;'; + put '%end;'; + put 'quit;'; + put 'data _null_;'; + put 'putlog "&sysmacroname: Closeout complete";'; + put 'run;'; + put '/**'; + put '* Append the new / updated records'; + put '*/'; + put '%if &engine_type=CAS %then %do;'; + put '/* get varchar variables ready for casting */'; + put '%local vcfmt vcrename vcassign vcdrop;'; + put 'data _null_;'; + put 'set work.bitemp_cols(where=(type=6)) end=last;'; + put 'length vcrename vcassign vcdrop vcfmt $32767 rancol $32;'; + put 'retain vcrename vcassign vcdrop vcfmt;'; + put 'if _n_=1 then vcrename=''(rename=('';'; + put 'rancol=resolve(''%mf_getuniquename()'');'; + put 'vcfmt=trim(vcfmt)!!''length ''!!cats(name)!!'' varchar(*);'';'; + put 'vcrename=trim(vcrename)!!'' ''!!cats(name,''='',rancol);'; + put 'vcassign=cats(vcassign,name,''='',rancol,'';'');'; + put 'vcdrop=cats(vcdrop,''drop ''!!rancol,'';'');'; + put 'if last then do;'; + put 'vcrename=cats(vcrename,''))'');'; + put 'call symputx(''vcfmt'',vcfmt);'; + put 'call symputx(''vcrename'',vcrename);'; + put 'call symputx(''vcassign'',vcassign);'; + put 'call symputx(''vcdrop'',vcdrop);'; + put 'end;'; + put 'run;'; + put '/* prepare a temp cas table with varchars casted */'; + put '%let tmp=%mf_getuniquename();'; + put 'data casuser.&tmp ;'; + put '&vcfmt'; + put 'set work.bitemp6_unique &vcrename;'; + put '&vcassign'; + put '&vcdrop'; + put 'run;'; + put '/* load the table with varchars applied*/'; + put 'data &base_lib..&base_dsn (append=yes )/sessref=dcsession ;'; + put 'set casuser.&tmp;'; + put 'run;'; + put '/* drop temp table */'; + put 'proc sql;'; + put 'drop table CASUSER.&tmp;'; + put '/* this code will not work as regular tables do not have varchars */'; + put '/*'; + put 'proc casutil;'; + put 'load data=work.bitemp6_unique'; + put 'outcaslib="&base_lib" casout="&base_dsn" append ;'; + put 'quit;'; + put '*/'; + put '%end;'; + put '%else %if &engine_type=REDSHIFT or &engine_type=POSTGRES %then %do;'; + put 'proc append base=&base_lib..&base_dsn'; + put '%if &engine_type=REDSHIFT %then %do;'; + put '('; + put '%do idx_pk=1 %to &redcnt;'; + put '&&rednm&idx_pk = &&redval&idxpk'; + put '%end;'; + put ')'; + put '%end;'; + put 'data=bitemp6_unique force nowarn;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put 'proc append base=&base_lib..&base_dsn data=bitemp6_unique force nowarn; run;'; + put '%end;'; + put '%mp_lockanytable(UNLOCK,lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE,'; + put 'ctl_ds=&dclib..mpe_lockanytable'; + put ')'; + put '/* final check on syscc */'; + put '%mp_abort(iftrue= (&syscc >4)'; + put ',mac=&_program'; + put ',msg=%str(!!Upload NOT successful!! Failed on actual update / append stage..)'; + put ')'; + put '%if &outds_audit ne 0 and &LOADTARGET=YES %then %do;'; + put 'data work.vw_outds_orig /view=work.vw_outds_orig;'; + put 'set work.bitemp0_base (drop=&md5_col);'; + put 'where ___TMP___NEW_FLG=0;'; + put 'drop ___TMP___NEW_FLG;'; + put 'run;'; + put '/* update the AUDIT table */'; + put '%if %mf_existds(&outds_audit) %then %do;'; + put 'options mprint;'; + put '%mp_storediffs(&base_lib..&base_dsn'; + put ',work.vw_outds_orig'; + put ',&pk'; + put ',delds=&outds_del'; + put ',modds=&outds_mod'; + put ',appds=&outds_add'; + put ',outds=work.mp_storediffs'; + put ',processed_dttm=&now'; + put ',loadref=%superq(etlsource)'; + put ')'; + put 'data _null_;'; + put 'set work.mp_storediffs;'; + put 'putlog load_ref= libref= dsn= key_hash= tgtvar_nm=;'; + put 'run;'; + put 'proc append base=&outds_audit data=work.mp_storediffs;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc >4)'; + put ',mac=bitemporal_dataloader'; + put ',msg=%str(Problem in audit stage (&outds_audit))'; + put ')'; + put '%let user=%mf_getUser();'; + put '/**'; + put 'Notify as appropriate EMAILS DISABLED'; + put '%sumo_alerts(ALERT_EVENT=UPDATE'; + put ', ALERT_TARGET=&base_lib..&base_dsn'; + put ', from_user= &user);'; + put '*/'; + put '/* monitor BiTemporal usage */'; + put '%if &log=1 %then %do;'; + put '%put syscc=&syscc;'; + put '/* do not perform duration calc in pass through */'; + put '%local dur;'; + put 'data _null_;'; + put 'now=symget(''now'');'; + put 'dur=%sysfunc(datetime())-&now;'; + put 'call symputx(''dur'',dur,''l'');'; + put 'run;'; + put 'proc sql;'; + put 'insert into &dclib..mpe_dataloads'; + put 'set libref=%upcase("&base_lib")'; + put ',DSN=%upcase("&base_dsn")'; + put ',ETLSOURCE="&ETLSOURCE"'; + put ',LOADTYPE="&loadtype"'; + put ',CHANGED_RECORDS=%mf_getattrn(&lastds,NLOBS)'; + put ',NEW_RECORDS=%mf_getattrn(&outds_add,NLOBS)'; + put ',DELETED_RECORDS=%mf_getattrn(&outds_del,NLOBS)'; + put ',DURATION=&dur'; + put ',MAC_VER="v&ver"'; + put ',user_nm="&user"'; + put ',PROCESSED_DTTM=&now;'; + put 'quit;'; + put '%put syscc=&syscc;'; + put '%end;'; + put '%end_of_macro:'; + put '%mend bitemporal_dataloader;'; + put '%macro mm_getGroups('; + put 'user='; + put ',outds=work.mm_getGroups'; + put ',repo=foundation'; + put ',mDebug=0'; + put ')/*/STORE SOURCE*/;'; + put '%local mD oldrepo;'; + put '%let oldrepo=%sysfunc(getoption(metarepository));'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing mm_getGroups.sas;'; + put '%&mD.put _local_;'; + put '/* on some sites, user / group info is in a different metadata repo to the'; + put 'default */'; + put '%if &oldrepo ne &repo %then %do;'; + put 'options metarepository=&repo;'; + put '%end;'; + put '%if %length(&user)=0 %then %do;'; + put 'data &outds (keep=groupuri groupname groupdesc);'; + put 'length groupuri groupname groupdesc group_or_role $256;'; + put 'call missing(of _all_);'; + put 'i+1;'; + put 'do while'; + put '(metadata_getnobj("omsobj:IdentityGroup?@Id contains ''.''",i,groupuri)>0);'; + put 'rc=metadata_getattr(groupuri, "Name", groupname);'; + put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; + put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; + put 'if Group_or_Role = ''UserGroup'' then output;'; + put 'i+1;'; + put 'end;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put 'data &outds (keep=groupuri groupname groupdesc);'; + put 'length uri groupuri groupname groupdesc group_or_role $256;'; + put 'call missing(of _all_);'; + put 'rc=metadata_getnobj("omsobj:Person?@Name=''&user''",1,uri);'; + put 'if rc<=0 then do;'; + put 'putlog "%str(WARN)ING: rc=" rc "&user not found "'; + put '", or there was an issue reading the repository.";'; + put 'stop;'; + put 'end;'; + put 'a=1;'; + put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; + put 'if grpassn in (-3,-4) then do;'; + put 'putlog "%str(WARN)ING: No metadata groups found for &user";'; + put 'output;'; + put 'end;'; + put 'else do while (grpassn > 0);'; + put 'rc=metadata_getattr(groupuri, "Name", groupname);'; + put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; + put 'a+1;'; + put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; + put 'if Group_or_Role = ''UserGroup'' then output;'; + put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; + put 'end;'; + put 'run;'; + put '%end;'; + put '%if &oldrepo ne &repo %then %do;'; + put 'options metarepository=&oldrepo;'; + put '%end;'; + put '%mend mm_getGroups;'; + put '%macro dc_getusergroups(user=,outds=mm_getgroups);'; + put '%global dc_repo_users;'; + put '%if &dc_repo_users= %then %let dc_repo_users=foundation;'; + put '%mm_getgroups(user=&user,outds=&outds,repo=&dc_repo_users)'; + put '%mend dc_getusergroups;'; + put '%macro mpe_getgroups(user=,outds=);'; + put '%if not %symexist(dc_repo_users) %then %let dc_repo_users=foundation;'; + put '%dc_getusergroups(user=&user,outds=&outds)'; + put 'data;'; + put 'length groupname groupdesc $256;'; + put 'set &dc_libref..mpe_groups;'; + put 'where &dc_dttmtfmt. lt tx_to;'; + put 'where also upcase(user_name)="%upcase(&user)";'; + put 'groupname=group_name;'; + put 'groupdesc=group_desc;'; + put 'keep groupname groupdesc;'; + put 'run;'; + put 'data &outds;'; + put 'set &syslast &outds(keep=groupname groupdesc);'; + put 'run;'; + put '%mend mpe_getgroups;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file'; + put '@brief Register a new licence key'; + put '@details'; + put '

SAS Macros

'; + put '@li mpeinit.sas'; + put '@li bitemporal_dataloader.sas'; + put '@li mp_abort.sas'; + put '@li mf_getuser.sas'; + put '@li mpe_getgroups.sas'; + put '@version 9.3'; + put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; + put 'downloaded from here: https://4gl.uk/dcdeploy'; + put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; + put 'and may not be re-distributed or re-sold without the express permission of'; + put '4GL Apps Ltd.'; + put '@test'; + put 'echo ''{"keyupload":[{"activation_key":"slfdjasfda;dslf","licence_key":"asdfasdlfkajsfdas"}]}''>in.json'; + put 'sasjs request admin/registerkey -d in.json'; + put '**/'; + put '%mpeinit()'; + put '/* determine users group membership */'; + put '%mpe_getgroups(user=%mf_getuser(),outds=work.groups)'; + put '%global admin_check;'; + put 'proc sql;'; + put 'select count(*) into: admin_check'; + put 'from groups where groupname="&mpeadmins";'; + put '%mp_abort(iftrue= (&admin_check = 0)'; + put ',mac=%str(&_program)'; + put ',msg=%str(Only members of &mpeadmins may register a key)'; + put ')'; + put '%global licencekey activation_key;'; + put 'data _null_;'; + put 'set work.keyupload;'; + put 'call symputx(''activation_key'',activation_key);'; + put 'call symputx(''licencekey'',licence_key);'; + put 'call symputx(''activlen'',length(activation_key));'; + put 'call symputx(''liclen'',length(licence_key));'; + put 'run;'; + put '%mp_abort(iftrue= (&activlen< 10)'; + put ',mac=%str(&_program)'; + put ',msg=%str(Invalid activation_key)'; + put ')'; + put '%mp_abort(iftrue= (&liclen < 10)'; + put ',mac=%str(&_program)'; + put ',msg=%str(Invalid licencekey)'; + put ')'; + put 'data work.loadme;'; + put 'if 0 then set &mpelib..mpe_config;'; + put 'VAR_SCOPE=''DC'';'; + put 'VAR_NAME=''DC_ACTIVATION_KEY'';'; + put 'VAR_VALUE=symget(''activation_key'');'; + put 'VAR_ACTIVE=1;'; + put 'output;'; + put 'VAR_NAME=''DC_LICENCE_KEY'';'; + put 'VAR_VALUE=symget(''licencekey'');'; + put 'VAR_ACTIVE=1;'; + put 'output;'; + put 'keep VAR_: ;'; + put 'run;'; + put '%bitemporal_dataloader('; + put 'tech_from=tx_from'; + put ',tech_to = tx_to'; + put ',base_lib=&mpelib'; + put ',base_dsn=mpe_config'; + put ',append_lib=WORK'; + put ',append_dsn=loadme'; + put ',PK= VAR_SCOPE VAR_NAME'; + put ',ETLSOURCE=%str(&_program STP)'; + put ',LOADTYPE=TXTEMPORAL'; + put ',dclib=&mpelib'; + put ')'; + put 'data work.return;'; + put 'msg=''SUCCESS'';'; + put 'run;'; + put '%webout(OPEN)'; + put '%webout(OBJ,return)'; + put '%webout(CLOSE)'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let path=services/approvers; + +%let service=getapprovals; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Files

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as FMTCAT,'; + put 'FMTNAME'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'LENGTH num'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.length as MAXW'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put ')))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] workobs= (0) When set to a positive integer, will create a new'; + put 'output object (WORK) which contains this number of observations from all'; + put 'tables in the WORK library.'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX,workobs=0'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&workobs) > 0 %then %do;'; + put '/* if debug mode, send back first XX records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10'; + put ',maxobs=&workobs'; + put ')'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '%macro mm_getGroups('; + put 'user='; + put ',outds=work.mm_getGroups'; + put ',repo=foundation'; + put ',mDebug=0'; + put ')/*/STORE SOURCE*/;'; + put '%local mD oldrepo;'; + put '%let oldrepo=%sysfunc(getoption(metarepository));'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing mm_getGroups.sas;'; + put '%&mD.put _local_;'; + put '/* on some sites, user / group info is in a different metadata repo to the'; + put 'default */'; + put '%if &oldrepo ne &repo %then %do;'; + put 'options metarepository=&repo;'; + put '%end;'; + put '%if %length(&user)=0 %then %do;'; + put 'data &outds (keep=groupuri groupname groupdesc);'; + put 'length groupuri groupname groupdesc group_or_role $256;'; + put 'call missing(of _all_);'; + put 'i+1;'; + put 'do while'; + put '(metadata_getnobj("omsobj:IdentityGroup?@Id contains ''.''",i,groupuri)>0);'; + put 'rc=metadata_getattr(groupuri, "Name", groupname);'; + put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; + put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; + put 'if Group_or_Role = ''UserGroup'' then output;'; + put 'i+1;'; + put 'end;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put 'data &outds (keep=groupuri groupname groupdesc);'; + put 'length uri groupuri groupname groupdesc group_or_role $256;'; + put 'call missing(of _all_);'; + put 'rc=metadata_getnobj("omsobj:Person?@Name=''&user''",1,uri);'; + put 'if rc<=0 then do;'; + put 'putlog "%str(WARN)ING: rc=" rc "&user not found "'; + put '", or there was an issue reading the repository.";'; + put 'stop;'; + put 'end;'; + put 'a=1;'; + put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; + put 'if grpassn in (-3,-4) then do;'; + put 'putlog "%str(WARN)ING: No metadata groups found for &user";'; + put 'output;'; + put 'end;'; + put 'else do while (grpassn > 0);'; + put 'rc=metadata_getattr(groupuri, "Name", groupname);'; + put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; + put 'a+1;'; + put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; + put 'if Group_or_Role = ''UserGroup'' then output;'; + put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; + put 'end;'; + put 'run;'; + put '%end;'; + put '%if &oldrepo ne &repo %then %do;'; + put 'options metarepository=&oldrepo;'; + put '%end;'; + put '%mend mm_getGroups;'; + put '%macro dc_getusergroups(user=,outds=mm_getgroups);'; + put '%global dc_repo_users;'; + put '%if &dc_repo_users= %then %let dc_repo_users=foundation;'; + put '%mm_getgroups(user=&user,outds=&outds,repo=&dc_repo_users)'; + put '%mend dc_getusergroups;'; + put '%macro mpe_getgroups(user=,outds=);'; + put '%if not %symexist(dc_repo_users) %then %let dc_repo_users=foundation;'; + put '%dc_getusergroups(user=&user,outds=&outds)'; + put 'data;'; + put 'length groupname groupdesc $256;'; + put 'set &dc_libref..mpe_groups;'; + put 'where &dc_dttmtfmt. lt tx_to;'; + put 'where also upcase(user_name)="%upcase(&user)";'; + put 'groupname=group_name;'; + put 'groupdesc=group_desc;'; + put 'keep groupname groupdesc;'; + put 'run;'; + put 'data &outds;'; + put 'set &syslast &outds(keep=groupname groupdesc);'; + put 'run;'; + put '%mend mpe_getgroups;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file getapprovals.sas'; + put '@brief Returns a list of staged data items that need to be approved'; + put '@details'; + put '

SAS Macros

'; + put '@li mpe_getgroups.sas'; + put '@li mp_abort.sas'; + put '@li mf_getuser.sas'; + put '@version 9.2'; + put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; + put 'downloaded from here: https://4gl.uk/dcdeploy'; + put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; + put 'and may not be re-distributed or re-sold without the express permission of'; + put '4GL Apps Ltd.'; + put '**/'; + put '%mpeinit()'; + put '/* determine users group membership */'; + put '%let user=%mf_getuser();'; + put '%mpe_getgroups(user=&user,outds=work.groups)'; + put 'PROC FORMAT;'; + put 'picture yymmddhhmmss other=''%0Y-%0m-%0d %0H:%0M:%0S'' (datatype=datetime);'; + put 'RUN;'; + put 'proc sql noprint;'; + put 'create table out1 (rename=(SUBMITTED_ON_DTTM1=SUBMITTED_ON_DTTM)) as'; + put 'select table_id'; + put ',submit_status_cd as REVIEW_STATUS_ID'; + put ',SUBMITTED_BY_NM'; + put ',cats(base_lib,''.'',base_ds) as base_table'; + put ',put(submitted_on_dttm,yymmddhhmmss.) as SUBMITTED_ON_DTTM1'; + put ',submitted_on_dttm as SUBMITTED_ON_DTTM2'; + put ',submitted_reason_txt'; + put ',num_of_approvals_required'; + put ',num_of_approvals_remaining'; + put ',base_lib as libref'; + put ',base_ds as dsn'; + put 'from &mpelib..mpe_submit (where=(submit_status_cd=''SUBMITTED''))'; + put '/* filter out any submits for which approval is already made */'; + put 'where table_id not in ('; + put 'select table_id from &mpelib..mpe_review where submitted_by_nm="&user"'; + put ');'; + put '%macro getapprovals();'; + put '%local admin_check;'; + put 'select count(*) into: admin_check'; + put 'from groups'; + put 'where groupname="&mpeadmins"'; + put 'or groupname in ('; + put 'select sas_group from &mpelib..mpe_security'; + put 'where libref=''*ALL*'''; + put 'and &dc_dttmtfmt. lt tx_to'; + put 'and access_level in (''APPROVE'')'; + put ');'; + put '%if &admin_check >0 %then %do;'; + put 'create table fromSAS as'; + put 'select distinct * from out1'; + put 'order by SUBMITTED_ON_DTTM2 desc;'; + put '%end;'; + put '%else %do;'; + put 'create table fromSAS as'; + put 'select distinct a.*'; + put 'from out1 a'; + put 'inner join &mpelib..mpe_security b'; + put 'on a.libref=b.libref'; + put 'and (a.dsn=b.dsn or b.dsn=''*ALL*'')'; + put 'and &dc_dttmtfmt. lt b.tx_to'; + put 'and b.ACCESS_LEVEL =''APPROVE'''; + put 'and b.SAS_GROUP in (select groupname from work.groups)'; + put 'order by SUBMITTED_ON_DTTM2 desc;'; + put '%end;'; + put '%mend getapprovals;'; + put '%getapprovals()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(syscc=&syscc)'; + put ')'; + put '%webout(OPEN)'; + put '%webout(OBJ,fromSAS)'; + put '%webout(CLOSE)'; + put '%mpeterm()'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=gethistory; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Files

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as FMTCAT,'; + put 'FMTNAME'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'LENGTH num'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.length as MAXW'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put ')))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] workobs= (0) When set to a positive integer, will create a new'; + put 'output object (WORK) which contains this number of observations from all'; + put 'tables in the WORK library.'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX,workobs=0'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&workobs) > 0 %then %do;'; + put '/* if debug mode, send back first XX records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10'; + put ',maxobs=&workobs'; + put ')'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '%macro mpe_getvars(injs,outds);'; + put '/* load parameters */'; + put 'data _null_;'; + put '__dummychar='''';__dummynum=0;'; + put 'set &outds;'; + put 'array __charvals _character_;'; + put 'do over __charvals;'; + put 'call symputx(vname(__charvals),__charvals,''g'');'; + put 'end;'; + put 'array __numvals _numeric_;'; + put 'do over __numvals;'; + put 'call symputx(vname(__numvals),__numvals,''g'');'; + put 'end;'; + put 'run;'; + put '%mend mpe_getvars;'; + put '%macro mm_getGroups('; + put 'user='; + put ',outds=work.mm_getGroups'; + put ',repo=foundation'; + put ',mDebug=0'; + put ')/*/STORE SOURCE*/;'; + put '%local mD oldrepo;'; + put '%let oldrepo=%sysfunc(getoption(metarepository));'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing mm_getGroups.sas;'; + put '%&mD.put _local_;'; + put '/* on some sites, user / group info is in a different metadata repo to the'; + put 'default */'; + put '%if &oldrepo ne &repo %then %do;'; + put 'options metarepository=&repo;'; + put '%end;'; + put '%if %length(&user)=0 %then %do;'; + put 'data &outds (keep=groupuri groupname groupdesc);'; + put 'length groupuri groupname groupdesc group_or_role $256;'; + put 'call missing(of _all_);'; + put 'i+1;'; + put 'do while'; + put '(metadata_getnobj("omsobj:IdentityGroup?@Id contains ''.''",i,groupuri)>0);'; + put 'rc=metadata_getattr(groupuri, "Name", groupname);'; + put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; + put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; + put 'if Group_or_Role = ''UserGroup'' then output;'; + put 'i+1;'; + put 'end;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put 'data &outds (keep=groupuri groupname groupdesc);'; + put 'length uri groupuri groupname groupdesc group_or_role $256;'; + put 'call missing(of _all_);'; + put 'rc=metadata_getnobj("omsobj:Person?@Name=''&user''",1,uri);'; + put 'if rc<=0 then do;'; + put 'putlog "%str(WARN)ING: rc=" rc "&user not found "'; + put '", or there was an issue reading the repository.";'; + put 'stop;'; + put 'end;'; + put 'a=1;'; + put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; + put 'if grpassn in (-3,-4) then do;'; + put 'putlog "%str(WARN)ING: No metadata groups found for &user";'; + put 'output;'; + put 'end;'; + put 'else do while (grpassn > 0);'; + put 'rc=metadata_getattr(groupuri, "Name", groupname);'; + put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; + put 'a+1;'; + put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; + put 'if Group_or_Role = ''UserGroup'' then output;'; + put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; + put 'end;'; + put 'run;'; + put '%end;'; + put '%if &oldrepo ne &repo %then %do;'; + put 'options metarepository=&oldrepo;'; + put '%end;'; + put '%mend mm_getGroups;'; + put '%macro dc_getusergroups(user=,outds=mm_getgroups);'; + put '%global dc_repo_users;'; + put '%if &dc_repo_users= %then %let dc_repo_users=foundation;'; + put '%mm_getgroups(user=&user,outds=&outds,repo=&dc_repo_users)'; + put '%mend dc_getusergroups;'; + put '%macro mpe_getgroups(user=,outds=);'; + put '%if not %symexist(dc_repo_users) %then %let dc_repo_users=foundation;'; + put '%dc_getusergroups(user=&user,outds=&outds)'; + put 'data;'; + put 'length groupname groupdesc $256;'; + put 'set &dc_libref..mpe_groups;'; + put 'where &dc_dttmtfmt. lt tx_to;'; + put 'where also upcase(user_name)="%upcase(&user)";'; + put 'groupname=group_name;'; + put 'groupdesc=group_desc;'; + put 'keep groupname groupdesc;'; + put 'run;'; + put 'data &outds;'; + put 'set &syslast &outds(keep=groupname groupdesc);'; + put 'run;'; + put '%mend mpe_getgroups;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file'; + put '@brief Returns the list of previously approved / rejected items.'; + put '@details Is filtered according to the groups in MPE_SECURITY.'; + put '

SAS Macros

'; + put '@li mpe_getvars.sas'; + put '@li mpe_getgroups.sas'; + put '@li mp_abort.sas'; + put '@li mf_getuser.sas'; + put '@version 9.3'; + put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; + put 'downloaded from here: https://4gl.uk/dcdeploy'; + put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; + put 'and may not be re-distributed or re-sold without the express permission of'; + put '4GL Apps Ltd.'; + put '**/'; + put '%mpeinit()'; + put '%let hist=40;'; + put '/* load parameters */'; + put '%mpe_getvars(BrowserParams, BrowserParams)'; + put '/* determine users group membership */'; + put '%mpe_getgroups(user=%mf_getuser(),outds=work.usergroups)'; + put 'PROC FORMAT;'; + put 'picture yymmddhhmmss other=''%0Y-%0m-%0d %0H:%0M:%0S'' (datatype=datetime);'; + put 'RUN;'; + put '/* check to see if the user is an admin, or has *ALL* access rights */'; + put '%let authcheck=0;'; + put 'proc sql noprint;'; + put 'create table work.authcheck'; + put 'as select *'; + put 'from usergroups'; + put 'where upcase(groupname)="%upcase(&mpeadmins)"'; + put 'or upcase(groupname) in ('; + put 'select upcase(sas_group) from &mpelib..mpe_security'; + put 'where libref=''*ALL*'' and &dc_dttmtfmt. lt tx_to'; + put ');'; + put 'select count(*) into: authcheck from &syslast;'; + put '%mp_abort(iftrue= (&syscc > 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after auth check)'; + put ')'; + put '/* now get the previous &hist records from mpe_submit */'; + put 'proc sql;'; + put 'create view work.submits as'; + put 'select a.TABLE_ID'; + put ',cats(a.base_lib,''.'',a.base_ds) as base_table'; + put ',put(a.SUBMITTED_ON_DTTM,yymmddhhmmss.) as submitted'; + put ',a.submitted_reason_txt'; + put ',a.submitted_by_nm as submitter'; + put ',put(a.REVIEWED_ON_DTTM,yymmddhhmmss.) as REVIEWED'; + put ',a.submit_status_cd as status'; + put ',a.reviewed_on_dttm'; + put ',a.reviewed_by_nm as approver'; + put 'from &mpelib..mpe_submit(where=(submit_status_cd ne ''SUBMITTED'')) a'; + put '%macro gethistory();'; + put '%if &authcheck=0 %then %do;'; + put '/* filter for allowed items */'; + put 'left join &mpelib..mpe_security(where=(&dc_dttmtfmt. lt tx_to)) b'; + put 'on a.base_lib=b.libref'; + put 'and (a.base_ds=b.dsn or b.dsn=''*ALL*'')'; + put 'where upcase(b.SAS_GROUP) in (select upcase(groupname) from work.usergroups)'; + put 'and b.access_level in (''VIEW'',''AUDIT'',''EDIT'',''APPROVE'')'; + put '%end;'; + put '%mend gethistory;'; + put '%gethistory()'; + put 'order by a.submitted_on_dttm desc;'; + put '%mp_abort(iftrue= (&syscc > 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after fetching submits)'; + put ')'; + put 'data work.fromsas;'; + put 'set work.submits;'; + put 'if _n_>&hist then stop;'; + put 'run;'; + put '%mp_abort(iftrue= (&syscc > 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc)'; + put ')'; + put '%webout(OPEN)'; + put '%webout(OBJ,fromSAS)'; + put '%webout(CLOSE)'; + put '%mpeterm()'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=rejection; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Files

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as FMTCAT,'; + put 'FMTNAME'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'LENGTH num'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.length as MAXW'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put ')))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] workobs= (0) When set to a positive integer, will create a new'; + put 'output object (WORK) which contains this number of observations from all'; + put 'tables in the WORK library.'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX,workobs=0'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&workobs) > 0 %then %do;'; + put '/* if debug mode, send back first XX records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10'; + put ',maxobs=&workobs'; + put ')'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '%macro mm_getGroups('; + put 'user='; + put ',outds=work.mm_getGroups'; + put ',repo=foundation'; + put ',mDebug=0'; + put ')/*/STORE SOURCE*/;'; + put '%local mD oldrepo;'; + put '%let oldrepo=%sysfunc(getoption(metarepository));'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing mm_getGroups.sas;'; + put '%&mD.put _local_;'; + put '/* on some sites, user / group info is in a different metadata repo to the'; + put 'default */'; + put '%if &oldrepo ne &repo %then %do;'; + put 'options metarepository=&repo;'; + put '%end;'; + put '%if %length(&user)=0 %then %do;'; + put 'data &outds (keep=groupuri groupname groupdesc);'; + put 'length groupuri groupname groupdesc group_or_role $256;'; + put 'call missing(of _all_);'; + put 'i+1;'; + put 'do while'; + put '(metadata_getnobj("omsobj:IdentityGroup?@Id contains ''.''",i,groupuri)>0);'; + put 'rc=metadata_getattr(groupuri, "Name", groupname);'; + put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; + put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; + put 'if Group_or_Role = ''UserGroup'' then output;'; + put 'i+1;'; + put 'end;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put 'data &outds (keep=groupuri groupname groupdesc);'; + put 'length uri groupuri groupname groupdesc group_or_role $256;'; + put 'call missing(of _all_);'; + put 'rc=metadata_getnobj("omsobj:Person?@Name=''&user''",1,uri);'; + put 'if rc<=0 then do;'; + put 'putlog "%str(WARN)ING: rc=" rc "&user not found "'; + put '", or there was an issue reading the repository.";'; + put 'stop;'; + put 'end;'; + put 'a=1;'; + put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; + put 'if grpassn in (-3,-4) then do;'; + put 'putlog "%str(WARN)ING: No metadata groups found for &user";'; + put 'output;'; + put 'end;'; + put 'else do while (grpassn > 0);'; + put 'rc=metadata_getattr(groupuri, "Name", groupname);'; + put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; + put 'a+1;'; + put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; + put 'if Group_or_Role = ''UserGroup'' then output;'; + put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; + put 'end;'; + put 'run;'; + put '%end;'; + put '%if &oldrepo ne &repo %then %do;'; + put 'options metarepository=&oldrepo;'; + put '%end;'; + put '%mend mm_getGroups;'; + put '%macro dc_getusergroups(user=,outds=mm_getgroups);'; + put '%global dc_repo_users;'; + put '%if &dc_repo_users= %then %let dc_repo_users=foundation;'; + put '%mm_getgroups(user=&user,outds=&outds,repo=&dc_repo_users)'; + put '%mend dc_getusergroups;'; + put '%macro mpe_getgroups(user=,outds=);'; + put '%if not %symexist(dc_repo_users) %then %let dc_repo_users=foundation;'; + put '%dc_getusergroups(user=&user,outds=&outds)'; + put 'data;'; + put 'length groupname groupdesc $256;'; + put 'set &dc_libref..mpe_groups;'; + put 'where &dc_dttmtfmt. lt tx_to;'; + put 'where also upcase(user_name)="%upcase(&user)";'; + put 'groupname=group_name;'; + put 'groupdesc=group_desc;'; + put 'keep groupname groupdesc;'; + put 'run;'; + put 'data &outds;'; + put 'set &syslast &outds(keep=groupname groupdesc);'; + put 'run;'; + put '%mend mpe_getgroups;'; + put '%macro mf_abort(mac=mf_abort.sas, msg=, iftrue=%str(1=1)'; + put ')/*/STORE SOURCE*/;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mf_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%abort;'; + put '%mend mf_abort;'; + put '/** @endcond */'; + put '%macro mf_verifymacvars('; + put 'verifyVars /* list of macro variable NAMES */'; + put ',makeUpcase=NO /* set to YES to make all the variable VALUES uppercase */'; + put ',mAbort=SOFT'; + put ')/*/STORE SOURCE*/;'; + put '%local verifyIterator verifyVar abortmsg;'; + put '%do verifyIterator=1 %to %sysfunc(countw(&verifyVars,%str( )));'; + put '%let verifyVar=%qscan(&verifyVars,&verifyIterator,%str( ));'; + put '%if not %symexist(&verifyvar) %then %do;'; + put '%let abortmsg= Variable &verifyVar is MISSING;'; + put '%goto exit_err;'; + put '%end;'; + put '%if %length(%trim(&&&verifyVar))=0 %then %do;'; + put '%let abortmsg= Variable &verifyVar is EMPTY;'; + put '%goto exit_err;'; + put '%end;'; + put '%if &makeupcase=YES %then %do;'; + put '%let &verifyVar=%upcase(&&&verifyvar);'; + put '%end;'; + put '%end;'; + put '%goto exit_success;'; + put '%exit_err:'; + put '%put &abortmsg;'; + put '%mf_abort(iftrue=(&mabort ne SOFT),'; + put 'mac=mf_verifymacvars,'; + put 'msg=%str(&abortmsg)'; + put ')'; + put '0'; + put '%return;'; + put '%exit_success:'; + put '1'; + put '%mend mf_verifymacvars;'; + put '%macro mf_isblank(param'; + put ')/*/STORE SOURCE*/;'; + put '%sysevalf(%superq(param)=,boolean)'; + put '%mend mf_isblank;'; + put '%macro mp_dropmembers('; + put 'list /* space separated list of datasets / views */'; + put ',libref=WORK /* can only drop from a single library at a time */'; + put ',iftrue=%str(1=1)'; + put ')/*/STORE SOURCE*/;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%if %mf_isblank(&list) %then %do;'; + put '%put NOTE: nothing to drop!;'; + put '%return;'; + put '%end;'; + put 'proc datasets lib=&libref nolist;'; + put 'delete &list;'; + put 'delete &list /mtype=view;'; + put 'run;'; + put '%mend mp_dropmembers;'; + put '%macro mpe_accesscheck('; + put 'base_table /* base table to check for */'; + put ',outds=med_accesscheck /* WORK table to contain access details */'; + put ',user= /* metadata user to check for */'; + put ',access_level=APPROVE'; + put ');'; + put '%if &user= %then %let user=%mf_getuser();'; + put '%if %index(&outds,.) %then %do;'; + put '%local lib ds;'; + put '%let lib=%scan(&outds,1,.);'; + put '%let ds=%scan(&outds,2,.);'; + put '%if %upcase(&lib) ne WORK %then %do;'; + put '%mp_abort(msg=outds should be a WORK table'; + put ',mac=mpe_accesscheck);'; + put '%end;'; + put '%end;'; + put '%else %let ds=&outds;'; + put '%mp_abort('; + put 'iftrue=(%mf_verifymacvars(base_table user access_level)=0)'; + put ',mac=bitemporal_dataloader'; + put ',msg=%str(Missing base_table/user access_level)'; + put ')'; + put '/* ensure any existing table is dropped */'; + put '%mp_dropmembers(&ds)'; + put '/* create a new table for temp use */'; + put 'data; run;'; + put '%local tempds; %let tempds=&syslast;'; + put '/* overwrite with the list of groups */'; + put '%mpe_getgroups(user=&user,outds=&tempds);'; + put '%if &_debug ge 131 %then %do;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%end;'; + put 'proc sql;'; + put 'create table &outds as'; + put 'select * from &tempds'; + put 'where groupname="&mpeadmins"'; + put 'or groupname in'; + put '(select sas_group from &mpelib..mpe_security'; + put 'where &dc_dttmtfmt. lt tx_to'; + put 'and access_level="&access_level"'; + put '& ('; + put '(libref="%scan(&base_table,1,.)" and dsn="%scan(&base_table,2,.)")'; + put 'or (libref="%scan(&base_table,1,.)" and dsn="*ALL*")'; + put 'or (libref="*ALL*")'; + put ')'; + put ');'; + put '%put base_table=&base_table;'; + put '%put libref=%scan(&base_table,1,.);'; + put '%put dsn=%scan(&base_table,2,.);'; + put '%put access_level=&access_level;'; + put '%mend mpe_accesscheck;'; + put '%macro mf_getattrn('; + put 'libds'; + put ',attr'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid rc;'; + put '%let dsid=%sysfunc(open(&libds,is));'; + put '%if &dsid = 0 %then %do;'; + put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; + put '%put %sysfunc(sysmsg());'; + put '-1'; + put '%end;'; + put '%else %do;'; + put '%sysfunc(attrn(&dsid,&attr))'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%mend mf_getattrn;'; + put '%macro mf_existds(libds'; + put ')/*/STORE SOURCE*/;'; + put '%if %sysfunc(exist(&libds)) ne 1 & %sysfunc(exist(&libds,VIEW)) ne 1 %then 0;'; + put '%else 1;'; + put '%mend mf_existds;'; + put '%macro mpe_alerts(alert_event='; + put ', alert_lib='; + put ', alert_ds='; + put ', dsid='; + put ');'; + put '/* exit if not configured */'; + put '%global DC_EMAIL_ALERTS;'; + put '%if &DC_EMAIL_ALERTS ne YES %then %do;'; + put '%put DCNOTE: Email alerts are not configured;'; + put '%put DCNOTE: (dc_email_alerts=&dc_email_alerts in &mpelib..mpe_config);'; + put '%return;'; + put '%end;'; + put '%let alert_event=%upcase(&alert_event);'; + put '%let alert_lib=%upcase(&alert_lib);'; + put '%let alert_ds=%upcase(&alert_ds);'; + put '%let from_user=%mf_getuser();'; + put '/* get users TO which the email should be sent */'; + put 'proc sql noprint;'; + put 'create table users as select distinct a.alert_user,'; + put 'b.user_displayname,'; + put 'b.user_email'; + put 'from &mpelib..mpe_alerts'; + put '(where=(&dc_dttmtfmt. lt tx_to)) a'; + put 'left join &mpelib..mpe_emails'; + put '(where=(&dc_dttmtfmt. lt tx_to)) b'; + put 'on upcase(trim(a.alert_user))=upcase(trim(b.user_name))'; + put 'where a.alert_event in ("&alert_event","*ALL*")'; + put 'and a.alert_lib in ("&alert_lib","*ALL*")'; + put 'and a.alert_ds in ("&alert_ds","*ALL*");'; + put '%local isThere;'; + put 'select count(*) into: isThere from &syslast where alert_user="&from_user";'; + put '%if &isThere>0 %then %do;'; + put 'insert into &syslast set alert_user="&from_user";'; + put '%end;'; + put '/* if no email / displayname is provided, then extract from metadata */'; + put 'data emails;'; + put 'set users;'; + put 'length emailuri uri text $256; call missing(emailuri,uri); drop emailuri uri;'; + put '/* get displayname */'; + put 'text=cats("omsobj:Person?@Name=''",alert_user,"''");'; + put 'if metadata_getnobj(text,1,uri)<=0 then do;'; + put 'putlog "DCWARN: &from_user not found";'; + put 'return;'; + put 'end;'; + put 'else if user_displayname = '''' then do;'; + put 'if metadata_getattr(uri,''DisplayName'',user_displayname)<0 then do;'; + put 'putlog ''DCWARN: strange err, no displayname attribute of user URI'';'; + put 'end;'; + put 'end;'; + put 'if index(user_email,''@'') then return;'; + put '/* get email from metadata if not in input table */'; + put 'if metadata_getnasn(uri,"EmailAddresses",1,emailuri)<=0 then do;'; + put 'putlog "DCWARN: " alert_user " has no emails in MPE_EMAILS or metadata!";'; + put 'if metadata_getattr(emailuri,"Address",user_email)<0 then do;'; + put 'putlog ''DCWARN: Unexpected error! Valid emailURI but no email. Weird.'';'; + put 'end;'; + put 'end;'; + put '/* only keep valid emails */'; + put 'if index(user_email,''@'') ;'; + put 'run;'; + put '%local emails;'; + put 'proc sql noprint;'; + put 'select user_email into: emails separated by ''" "'' from emails;'; + put '/* exit if nobody to email */'; + put '%if %mf_getattrn(emails,NLOBS)=0 %then %do;'; + put '%put NOTE: No alerts configured (mpe_alerts.sas);'; + put '%return;'; + put '%end;'; + put '/* display email options */'; + put 'data _null_;'; + put 'set sashelp.voption(where=(group=''EMAIL''));'; + put 'put optname ''='' setting;'; + put 'run;'; + put 'filename __out email ("&emails")'; + put 'subject="Table &alert_lib..&alert_ds has been &alert_event";'; + put '%local SUBMITTED_TXT;'; + put '%if &alert_event=SUBMITTED %then %do;'; + put 'data _null_;'; + put 'set &mpelib..mpe_submit;'; + put 'where table_id="&dsid" and submit_status_cd=''SUBMITTED'';'; + put 'call symputx(''SUBMITTED_TXT'',submitted_reason_txt,''l'');'; + put 'run;'; + put 'data _null_;'; + put 'File __out lrecl=32000;'; + put 'put ''Dear user,'';'; + put 'put '' '';'; + put 'put "Please be advised that a change to table &alert_lib..&alert_ds has "'; + put '"been proposed by &from_user on the ''&syshostname'' SAS server.";'; + put 'put " ";'; + put 'length txt $2048;'; + put 'txt=symget(''SUBMITTED_TXT'');'; + put 'put "Reason provided: " txt;'; + put 'put " ";'; + put 'put "This is an automated email by Data Controller for SAS®. For "'; + put '"documentation, please visit https://docs.datacontroller.io";'; + put 'run;'; + put '%end;'; + put '%else %if &alert_event=APPROVED %then %do;'; + put '/* there is no approval message */'; + put 'data _null_;'; + put 'File __out lrecl=32000;'; + put 'put ''Dear user,'';'; + put 'put '' '';'; + put 'put "Please be advised that a change to table &alert_lib..&alert_ds has "'; + put '"been approved by &from_user on the ''&syshostname'' SAS server.";'; + put 'put " ";'; + put 'put "This is an automated email by Data Controller for SAS®. For "'; + put '"documentation, please visit https://docs.datacontroller.io";'; + put 'run;'; + put '%end;'; + put '%else %if &alert_event=REJECTED %then %do;'; + put 'data _null_;'; + put 'set &mpelib..mpe_review;'; + put 'where table_id="&dsid" and review_status_id=''REJECTED'';'; + put 'call symputx(''REVIEW_REASON_TXT'',REVIEW_REASON_TXT,''l'');'; + put 'run;'; + put 'data _null_;'; + put 'File __out lrecl=32000;'; + put 'put ''Dear user,'';'; + put 'put '' '';'; + put 'put "Please be advised that a change to table &alert_lib..&alert_ds has "'; + put '"been rejected by &from_user on the ''&syshostname'' SAS server.";'; + put 'put " ";'; + put 'length txt $2048;'; + put 'txt=symget(''REVIEW_REASON_TXT'');'; + put 'put "Reason provided: " txt;'; + put 'put " ";'; + put 'put "This is an automated email by Data Controller for SAS®. For "'; + put '"documentation, please visit https://docs.datacontroller.io";'; + put 'run;'; + put '%end;'; + put 'filename __out clear;'; + put '%mend mpe_alerts ;'; + put '%macro mpe_getvars(injs,outds);'; + put '/* load parameters */'; + put 'data _null_;'; + put '__dummychar='''';__dummynum=0;'; + put 'set &outds;'; + put 'array __charvals _character_;'; + put 'do over __charvals;'; + put 'call symputx(vname(__charvals),__charvals,''g'');'; + put 'end;'; + put 'array __numvals _numeric_;'; + put 'do over __numvals;'; + put 'call symputx(vname(__numvals),__numvals,''g'');'; + put 'end;'; + put 'run;'; + put '%mend mpe_getvars;'; + put '%macro removecolsfromwork(col);'; + put '/* only an issue if debug mode enabled */'; + put '%global _debug;'; + put '%if &_debug ge 131 %then %do;'; + put '%let col=%upcase(&col);'; + put '%local memlist;'; + put 'proc sql noprint;'; + put 'select distinct memname into: memlist'; + put 'separated by '' '''; + put 'from dictionary.columns'; + put 'where libname=''WORK'' and upcase(name)="&col";'; + put '%if %mf_isblank(&memlist) %then %return;'; + put '%mp_dropmembers(list=&memlist)'; + put '%end;'; + put '%mend removecolsfromwork;'; + put '%macro mf_getvarlist(libds'; + put ',dlm=%str( )'; + put ',quote=no'; + put ',typefilter=A'; + put ')/*/STORE SOURCE*/;'; + put '/* declare local vars */'; + put '%local outvar dsid nvars x rc dlm q var vtype;'; + put '/* credit Rowland Hale - byte34 is double quote, 39 is single quote */'; + put '%if %upcase("e)=DOUBLE %then %let q=%qsysfunc(byte(34));'; + put '%else %if %upcase("e)=SINGLE %then %let q=%qsysfunc(byte(39));'; + put '/* open dataset in macro */'; + put '%let dsid=%sysfunc(open(&libds));'; + put '%if &dsid %then %do;'; + put '%let nvars=%sysfunc(attrn(&dsid,NVARS));'; + put '%if &nvars>0 %then %do;'; + put '/* add variables with supplied delimeter */'; + put '%do x=1 %to &nvars;'; + put '/* get variable type */'; + put '%let vtype=%sysfunc(vartype(&dsid,&x));'; + put '%if &vtype=&typefilter or &typefilter=A %then %do;'; + put '%let var=&q.%sysfunc(varname(&dsid,&x))&q.;'; + put '%if &var=&q&q %then %do;'; + put '%put &sysmacroname: Empty column found in &libds!;'; + put '%let var=&q. &q.;'; + put '%end;'; + put '%if %quote(&outvar)=%quote() %then %let outvar=&var;'; + put '%else %let outvar=&outvar.&dlm.&var.;'; + put '%end;'; + put '%end;'; + put '%end;'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: Unable to open &libds (rc=&dsid);'; + put '%put &sysmacroname: SYSMSG= %sysfunc(sysmsg());'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%do;%unquote(&outvar)%end;'; + put '%mend mf_getvarlist;'; + put '%macro mf_getattrc('; + put 'libds'; + put ',attr'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid rc;'; + put '%let dsid=%sysfunc(open(&libds,is));'; + put '%if &dsid = 0 %then %do;'; + put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; + put '%put %sysfunc(sysmsg());'; + put '-1'; + put '%end;'; + put '%else %do;'; + put '%sysfunc(attrc(&dsid,&attr))'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%mend mf_getattrc;'; + put '%macro mp_lockfilecheck('; + put 'libds'; + put ')/*/STORE SOURCE*/;'; + put 'data _null_;'; + put 'if _n_=1 then putlog "&sysmacroname entry vars:";'; + put 'set sashelp.vmacro;'; + put 'where scope="&sysmacroname";'; + put 'put name ''='' value;'; + put 'run;'; + put '%mp_abort(iftrue= (&syscc>0)'; + put ',mac=checklock.sas'; + put ',msg=Aborting with syscc=&syscc on entry.'; + put ')'; + put '%mp_abort(iftrue= ("&libds"="0")'; + put ',mac=&sysmacroname'; + put ',msg=%str(libds not provided)'; + put ')'; + put '%local msg lib ds;'; + put '%let lib=%upcase(%scan(&libds,1,.));'; + put '%let ds=%upcase(%scan(&libds,2,.));'; + put '/* in DC, format catalogs are passed with a -FC suffix. No saslock here! */'; + put '%if %scan(&libds,2,-)=FC %then %do;'; + put '%put &sysmacroname: Format Catalog detected, no lockfile applied to &libds;'; + put '%return;'; + put '%end;'; + put '/* do not proceed if no observations can be processed */'; + put '%let msg=options obs = 0. syserrortext=%superq(syserrortext);'; + put '%mp_abort(iftrue= (%sysfunc(getoption(OBS))=0)'; + put ',mac=checklock.sas'; + put ',msg=%superq(msg)'; + put ')'; + put 'data _null_;'; + put 'putlog "Checking engine & member type";'; + put 'run;'; + put '%local engine memtype;'; + put '%let memtype=%mf_getattrc(&libds,MTYPE);'; + put '%let engine=%mf_getattrc(&libds,ENGINE);'; + put '%if &engine ne V9 and &engine ne BASE %then %do;'; + put 'data _null_;'; + put 'putlog "Lib &lib is not assigned using BASE engine - uses &engine instead";'; + put 'putlog "SAS lock check will not be performed";'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%else %if &memtype ne DATA %then %do;'; + put '%put NOTE: Cannot lock a VIEW!! Memtype=&memtype;'; + put '%return;'; + put '%end;'; + put 'data _null_;'; + put 'putlog "Engine = &engine, memtype=&memtype";'; + put 'putlog "Attempting lock statement";'; + put 'run;'; + put 'lock &libds;'; + put '%local abortme;'; + put '%let abortme=0;'; + put '%if &syscc>0 or &SYSLCKRC ne 0 %then %do;'; + put '%let msg=Unable to apply lock on &libds (SYSLCKRC=&SYSLCKRC syscc=&syscc);'; + put '%put %str(ERR)OR: &sysmacroname: &msg;'; + put '%let abortme=1;'; + put '%end;'; + put 'lock &libds clear;'; + put '%mp_abort(iftrue= (&abortme=1)'; + put ',mac=&sysmacroname'; + put ',msg=%superq(msg)'; + put ')'; + put '%mend mp_lockfilecheck;'; + put '%macro mp_lockanytable('; + put 'action'; + put ',lib= WORK'; + put ',ds=0'; + put ',ref='; + put ',ctl_ds=0'; + put ',loops=25'; + put ',loop_secs=1'; + put ');'; + put 'data _null_;'; + put 'if _n_=1 then putlog "&sysmacroname entry vars:";'; + put 'set sashelp.vmacro;'; + put 'where scope="&sysmacroname";'; + put 'put name ''='' value;'; + put 'run;'; + put '%mp_abort(iftrue= ("&ds"="0" and &action ne MAKETABLE)'; + put ',mac=&sysmacroname'; + put ',msg=%str(dataset was not provided)'; + put ')'; + put '%mp_abort(iftrue= (&ctl_ds=0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Control dataset was not provided)'; + put ')'; + put '/* set up lib & mac vars */'; + put '%let lib=%upcase(&lib);'; + put '%let ds=%upcase(&ds);'; + put '%let action=%upcase(&action);'; + put '%local user x trans msg abortme;'; + put '%let user=%mf_getuser();'; + put '%let abortme=0;'; + put '%mp_abort(iftrue= (&action ne LOCK & &action ne UNLOCK & &action ne MAKETABLE)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Invalid action (&action) provided)'; + put ')'; + put '/* if an err condition exists, exit before we even begin */'; + put '%mp_abort(iftrue= (&syscc>0 and &action=LOCK)'; + put ',mac=&sysmacroname'; + put ',msg=%str(aborting due to syscc=&syscc on LOCK entry)'; + put ')'; + put '/* do not bother locking work tables (else may affect all WORK libraries) */'; + put '%if (%upcase(&lib)=WORK or %str(&lib)=%str()) & &action ne MAKETABLE %then %do;'; + put '%put NOTE: WORK libraries will not be registered in the locking system.;'; + put '%return;'; + put '%end;'; + put '/* do not proceed if no observations can be processed */'; + put '%mp_abort(iftrue= (%sysfunc(getoption(OBS))=0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(cannot continue when options obs = 0)'; + put ')'; + put '%if &ACTION=LOCK %then %do;'; + put '/* abort if a SAS lock is already in place, or cannot be applied */'; + put '%mp_lockfilecheck(&lib..&ds)'; + put '/* next, check there is a record for this table */'; + put '%local record_exists_check;'; + put 'proc sql noprint;'; + put 'select count(*) into: record_exists_check from &ctl_ds'; + put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; + put 'quit;'; + put '%if &syscc>0 %then %put syscc=&syscc sqlrc=&sqlrc;'; + put '%if &record_exists_check=0 %then %do;'; + put 'data _null_;'; + put 'putlog "&sysmacroname: adding record to lock table..";'; + put 'run;'; + put 'data ;'; + put 'if 0 then set &ctl_ds;'; + put 'LOCK_LIB ="&lib";'; + put 'LOCK_DS="&ds";'; + put 'LOCK_STATUS_CD=''LOCKED'';'; + put 'LOCK_START_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt;'; + put 'LOCK_USER_NM="&user";'; + put 'LOCK_PID="&sysjobid";'; + put 'LOCK_REF="&ref";'; + put 'output;stop;'; + put 'run;'; + put '%let trans=&syslast;'; + put 'proc append base=&ctl_ds data=&trans;'; + put 'run;'; + put '%end;'; + put '/* if record does exist, perform lock attempts */'; + put '%else %do x=1 %to &loops;'; + put 'data _null_;'; + put 'putlog "&sysmacroname: attempting lock (iteration &x) "@;'; + put 'putlog "at %sysfunc(datetime(),datetime19.) ..";'; + put 'run;'; + put 'proc sql;'; + put 'update &ctl_ds'; + put 'set LOCK_STATUS_CD=''LOCKED'''; + put ', LOCK_START_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt'; + put ', LOCK_USER_NM="&user"'; + put ', LOCK_PID="&sysjobid"'; + put ', LOCK_REF="&ref"'; + put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; + put 'quit;'; + put '/**'; + put '* NOTE - occasionally SQL server will return an err code (deadlocked'; + put '* transaction). If so, ignore it, keep calm, and carry on..'; + put '*/'; + put '%if &syscc>0 %then %do;'; + put 'data _null_;'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'putlog "NOTE- &sysmacroname: Update failed. "@;'; + put 'putlog "Resetting err conditions and re-attempting.";'; + put 'putlog "NOTE- syscc=&syscc syserr=&syserr sqlrc=&sqlrc";'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'run;'; + put '%let syscc=0;'; + put '%let sqlrc=0;'; + put '%end;'; + put '/* now check if the record was successfully updated */'; + put '%local success_check;'; + put 'proc sql noprint;'; + put 'select count(*) into: success_check from &ctl_ds'; + put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds"'; + put 'and LOCK_PID="&sysjobid" and LOCK_STATUS_CD=''LOCKED'';'; + put 'quit;'; + put '%if &success_check=0 %then %do;'; + put '%if &x < &loops %then %do;'; + put '/* pause before next check */'; + put 'data _null_;'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'putlog "NOTE- &sysmacroname: table locked, waiting "@;'; + put 'putlog "%sysfunc(sleep(&loop_inc)) seconds.. ";'; + put 'putlog "NOTE- (iteration &x of &loops)";'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%let msg=Unable to lock &lib..&ds via &ctl_ds after &loops attempts.\n'; + put 'Please ask your administrator to investigate!;'; + put '%let abortme=1;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put 'data _null_;'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'putlog "NOTE- &sysmacroname: Table &lib..&ds locked at "@;'; + put 'putlog " %sysfunc(datetime(),datetime19.) (iteration &x)"@;'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'run;'; + put '%if &syscc>0 %then %do;'; + put '%put setting syscc(&syscc) back to 0;'; + put '%let syscc=0;'; + put '%end;'; + put '%let x=&loops; /* no more iterations needed */'; + put '%end;'; + put '%end;'; + put '%end;'; + put '%else %if &ACTION=UNLOCK %then %do;'; + put '%local status;'; + put 'proc sql noprint;'; + put 'select LOCK_STATUS_CD into: status from &ctl_ds'; + put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; + put 'quit;'; + put '%if &syscc>0 %then %put syscc=&syscc sqlrc=&sqlrc;'; + put '%if &status=LOCKED %then %do;'; + put 'data _null_;'; + put 'putlog "&sysmacroname: unlocking &lib..&ds:";'; + put 'run;'; + put 'proc sql;'; + put 'update &ctl_ds'; + put 'set LOCK_STATUS_CD=''UNLOCKED'''; + put ', LOCK_END_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt'; + put ', LOCK_USER_NM="&user"'; + put ', LOCK_PID="&sysjobid"'; + put ', LOCK_REF="&ref"'; + put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; + put 'quit;'; + put '%end;'; + put '%else %if &status=UNLOCKED %then %do;'; + put '%put %str(WAR)NING: &lib..&ds is already unlocked!;'; + put '%end;'; + put '%else %do;'; + put '%put NOTE: Unrecognised STATUS_CD (&status) in &ctl_ds;'; + put '%let abortme=1;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%let msg=lock_anytable given unsupported action (&action);'; + put '%let abortme=1;'; + put '%end;'; + put '/* catch errs - mp_abort must be called outside of a logic block */'; + put '%mp_abort(iftrue=(&abortme=1),'; + put 'msg=%superq(msg),'; + put 'mac=&sysmacroname'; + put ')'; + put '%exit_macro:'; + put 'data _null_;'; + put 'put "&sysmacroname: Exit vars: action=&action lib=&lib ds=&ds";'; + put 'put " syscc=&syscc sqlrc=&sqlrc syserr=&syserr";'; + put 'run;'; + put '%mend mp_lockanytable;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file'; + put '@brief Removes a staged data package from approval screen'; + put '@details'; + put '

SAS Macros

'; + put '@li mf_getuser.sas'; + put '@li mf_getvarlist.sas'; + put '@li mf_verifymacvars.sas'; + put '@li mp_abort.sas'; + put '@li mp_lockanytable.sas'; + put '@li mpe_accesscheck.sas'; + put '@li mpe_alerts.sas'; + put '@li mpe_getvars.sas'; + put '@li removecolsfromwork.sas'; + put '

Service Outputs

'; + put '
fromsas
'; + put '@li TABLE_ID'; + put '@li SUBMITTED_REASON_TXT'; + put '@li RESPONSE'; + put '@version 9.2'; + put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; + put 'downloaded from here: https://4gl.uk/dcdeploy'; + put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; + put 'and may not be re-distributed or re-sold without the express permission of'; + put '4GL Apps Ltd.'; + put '**/'; + put '%global STP_ACTION TABLE STP_REASON;'; + put '%mpeinit()'; + put '%mpe_getvars(BrowserParams, BrowserParams)'; + put 'PROC FORMAT;'; + put 'picture yymmddhhmmss other=''%0Y-%0m-%0d %0H:%0M:%0S'' (datatype=datetime);'; + put 'RUN;'; + put '/* get current status and base table */'; + put 'data _null_;'; + put 'set &mpelib..mpe_submit(where=(TABLE_ID="&TABLE"));'; + put 'call symputx(''BASE_TABLE'',cats(base_lib,''.'',base_ds));'; + put 'call symputx(''submit_status_cd'',submit_status_cd);'; + put 'run;'; + put '%mp_abort('; + put 'iftrue=(%mf_verifymacvars(base_table)=0)'; + put ',mac=&_program'; + put ',msg=%str(Missing: base_table)'; + put ')'; + put '%mp_abort('; + put 'iftrue=(%quote(&submit_status_cd)=%quote(REJECTED))'; + put ',mac=&_program'; + put ',msg=%str(&table is already rejected!)'; + put ')'; + put '%mp_abort(iftrue= (&syscc ge 4)'; + put ',mac=&_program'; + put ',msg=%str(Issue on setup)'; + put ')'; + put '/**'; + put '* determine if user is authorised to reject table'; + put '*/'; + put '%let user=%mf_getuser();'; + put '%global authcheck; %let authcheck=0;'; + put '%mpe_accesscheck(&base_table,outds=authAPP,user=&user,access_level=APPROVE)'; + put '%let authcheck=%mf_getattrn(work.authAPP,NLOBS);'; + put '%mp_abort(iftrue= (&authcheck=0)'; + put ',mac=&_program..sas'; + put ',msg=%str(User &user does not have APPROVE rights on &base_table and is not'; + put 'in the &mpeadmins group)'; + put ')'; + put '/* update the control table to show table as rejected (and why) */'; + put '%let now=%sysfunc(datetime());'; + put 'data work.reject;'; + put 'if 0 then set &mpelib..mpe_review;'; + put 'TABLE_ID="&table";'; + put 'BASE_TABLE="&base_table";'; + put 'REVIEW_STATUS_ID="REJECTED";'; + put 'REVIEWED_BY_NM="&user";'; + put 'REVIEWED_ON_DTTM=&now;'; + put 'REVIEW_REASON_TXT=symget(''STP_REASON'');'; + put 'run;'; + put '%mp_lockanytable(LOCK,'; + put 'lib=&mpelib,ds=mpe_review,ref=%str(&table rejection),'; + put 'ctl_ds=&mpelib..mpe_lockanytable'; + put ')'; + put 'proc append base=&mpelib..mpe_review data=work.reject;'; + put 'run;'; + put '%mp_lockanytable(UNLOCK,'; + put 'lib=&mpelib,ds=mpe_review,'; + put 'ctl_ds=&mpelib..mpe_lockanytable'; + put ')'; + put '%mp_lockanytable(LOCK,'; + put 'lib=&mpelib,ds=mpe_submit,ref=%str(&table rejection),'; + put 'ctl_ds=&mpelib..mpe_lockanytable'; + put ')'; + put 'proc sql;'; + put 'update &mpelib..mpe_submit'; + put 'set submit_status_cd=''REJECTED'','; + put 'num_of_approvals_remaining=0,'; + put 'reviewed_by_nm="&user",'; + put 'reviewed_on_dttm=&now'; + put 'where table_id="&table";'; + put '%mp_lockanytable(UNLOCK,'; + put 'lib=&mpelib,ds=mpe_submit,'; + put 'ctl_ds=&mpelib..mpe_lockanytable'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(syscc=&syscc AFTER update...)'; + put ')'; + put '%mpe_alerts(alert_event=REJECTED'; + put ', alert_lib=%scan(&BASE_TABLE,1,.)'; + put ', alert_ds=%scan(&BASE_TABLE,2,.)'; + put ', dsid=&TABLE'; + put ')'; + put 'data fromSAS;'; + put 'RESPONSE=''SUCCESS!'';'; + put 'set REJECT;'; + put 'run;'; + put '%removecolsfromwork(___TMP___MD5)'; + put '%webout(OPEN)'; + put '%webout(OBJ,fromSAS)'; + put '%webout(CLOSE)'; + put '%mpeterm()'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let path=services/auditors; + +%let service=getauditfile; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Files

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as FMTCAT,'; + put 'FMTNAME'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'LENGTH num'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.length as MAXW'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put ')))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] workobs= (0) When set to a positive integer, will create a new'; + put 'output object (WORK) which contains this number of observations from all'; + put 'tables in the WORK library.'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX,workobs=0'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&workobs) > 0 %then %do;'; + put '/* if debug mode, send back first XX records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10'; + put ',maxobs=&workobs'; + put ')'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '%macro mm_getGroups('; + put 'user='; + put ',outds=work.mm_getGroups'; + put ',repo=foundation'; + put ',mDebug=0'; + put ')/*/STORE SOURCE*/;'; + put '%local mD oldrepo;'; + put '%let oldrepo=%sysfunc(getoption(metarepository));'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing mm_getGroups.sas;'; + put '%&mD.put _local_;'; + put '/* on some sites, user / group info is in a different metadata repo to the'; + put 'default */'; + put '%if &oldrepo ne &repo %then %do;'; + put 'options metarepository=&repo;'; + put '%end;'; + put '%if %length(&user)=0 %then %do;'; + put 'data &outds (keep=groupuri groupname groupdesc);'; + put 'length groupuri groupname groupdesc group_or_role $256;'; + put 'call missing(of _all_);'; + put 'i+1;'; + put 'do while'; + put '(metadata_getnobj("omsobj:IdentityGroup?@Id contains ''.''",i,groupuri)>0);'; + put 'rc=metadata_getattr(groupuri, "Name", groupname);'; + put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; + put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; + put 'if Group_or_Role = ''UserGroup'' then output;'; + put 'i+1;'; + put 'end;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put 'data &outds (keep=groupuri groupname groupdesc);'; + put 'length uri groupuri groupname groupdesc group_or_role $256;'; + put 'call missing(of _all_);'; + put 'rc=metadata_getnobj("omsobj:Person?@Name=''&user''",1,uri);'; + put 'if rc<=0 then do;'; + put 'putlog "%str(WARN)ING: rc=" rc "&user not found "'; + put '", or there was an issue reading the repository.";'; + put 'stop;'; + put 'end;'; + put 'a=1;'; + put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; + put 'if grpassn in (-3,-4) then do;'; + put 'putlog "%str(WARN)ING: No metadata groups found for &user";'; + put 'output;'; + put 'end;'; + put 'else do while (grpassn > 0);'; + put 'rc=metadata_getattr(groupuri, "Name", groupname);'; + put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; + put 'a+1;'; + put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; + put 'if Group_or_Role = ''UserGroup'' then output;'; + put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; + put 'end;'; + put 'run;'; + put '%end;'; + put '%if &oldrepo ne &repo %then %do;'; + put 'options metarepository=&oldrepo;'; + put '%end;'; + put '%mend mm_getGroups;'; + put '%macro dc_getusergroups(user=,outds=mm_getgroups);'; + put '%global dc_repo_users;'; + put '%if &dc_repo_users= %then %let dc_repo_users=foundation;'; + put '%mm_getgroups(user=&user,outds=&outds,repo=&dc_repo_users)'; + put '%mend dc_getusergroups;'; + put '%macro mpe_getgroups(user=,outds=);'; + put '%if not %symexist(dc_repo_users) %then %let dc_repo_users=foundation;'; + put '%dc_getusergroups(user=&user,outds=&outds)'; + put 'data;'; + put 'length groupname groupdesc $256;'; + put 'set &dc_libref..mpe_groups;'; + put 'where &dc_dttmtfmt. lt tx_to;'; + put 'where also upcase(user_name)="%upcase(&user)";'; + put 'groupname=group_name;'; + put 'groupdesc=group_desc;'; + put 'keep groupname groupdesc;'; + put 'run;'; + put 'data &outds;'; + put 'set &syslast &outds(keep=groupname groupdesc);'; + put 'run;'; + put '%mend mpe_getgroups;'; + put '%macro mf_abort(mac=mf_abort.sas, msg=, iftrue=%str(1=1)'; + put ')/*/STORE SOURCE*/;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mf_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%abort;'; + put '%mend mf_abort;'; + put '/** @endcond */'; + put '%macro mf_verifymacvars('; + put 'verifyVars /* list of macro variable NAMES */'; + put ',makeUpcase=NO /* set to YES to make all the variable VALUES uppercase */'; + put ',mAbort=SOFT'; + put ')/*/STORE SOURCE*/;'; + put '%local verifyIterator verifyVar abortmsg;'; + put '%do verifyIterator=1 %to %sysfunc(countw(&verifyVars,%str( )));'; + put '%let verifyVar=%qscan(&verifyVars,&verifyIterator,%str( ));'; + put '%if not %symexist(&verifyvar) %then %do;'; + put '%let abortmsg= Variable &verifyVar is MISSING;'; + put '%goto exit_err;'; + put '%end;'; + put '%if %length(%trim(&&&verifyVar))=0 %then %do;'; + put '%let abortmsg= Variable &verifyVar is EMPTY;'; + put '%goto exit_err;'; + put '%end;'; + put '%if &makeupcase=YES %then %do;'; + put '%let &verifyVar=%upcase(&&&verifyvar);'; + put '%end;'; + put '%end;'; + put '%goto exit_success;'; + put '%exit_err:'; + put '%put &abortmsg;'; + put '%mf_abort(iftrue=(&mabort ne SOFT),'; + put 'mac=mf_verifymacvars,'; + put 'msg=%str(&abortmsg)'; + put ')'; + put '0'; + put '%return;'; + put '%exit_success:'; + put '1'; + put '%mend mf_verifymacvars;'; + put '%macro mf_isblank(param'; + put ')/*/STORE SOURCE*/;'; + put '%sysevalf(%superq(param)=,boolean)'; + put '%mend mf_isblank;'; + put '%macro mp_dropmembers('; + put 'list /* space separated list of datasets / views */'; + put ',libref=WORK /* can only drop from a single library at a time */'; + put ',iftrue=%str(1=1)'; + put ')/*/STORE SOURCE*/;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%if %mf_isblank(&list) %then %do;'; + put '%put NOTE: nothing to drop!;'; + put '%return;'; + put '%end;'; + put 'proc datasets lib=&libref nolist;'; + put 'delete &list;'; + put 'delete &list /mtype=view;'; + put 'run;'; + put '%mend mp_dropmembers;'; + put '%macro mpe_accesscheck('; + put 'base_table /* base table to check for */'; + put ',outds=med_accesscheck /* WORK table to contain access details */'; + put ',user= /* metadata user to check for */'; + put ',access_level=APPROVE'; + put ');'; + put '%if &user= %then %let user=%mf_getuser();'; + put '%if %index(&outds,.) %then %do;'; + put '%local lib ds;'; + put '%let lib=%scan(&outds,1,.);'; + put '%let ds=%scan(&outds,2,.);'; + put '%if %upcase(&lib) ne WORK %then %do;'; + put '%mp_abort(msg=outds should be a WORK table'; + put ',mac=mpe_accesscheck);'; + put '%end;'; + put '%end;'; + put '%else %let ds=&outds;'; + put '%mp_abort('; + put 'iftrue=(%mf_verifymacvars(base_table user access_level)=0)'; + put ',mac=bitemporal_dataloader'; + put ',msg=%str(Missing base_table/user access_level)'; + put ')'; + put '/* ensure any existing table is dropped */'; + put '%mp_dropmembers(&ds)'; + put '/* create a new table for temp use */'; + put 'data; run;'; + put '%local tempds; %let tempds=&syslast;'; + put '/* overwrite with the list of groups */'; + put '%mpe_getgroups(user=&user,outds=&tempds);'; + put '%if &_debug ge 131 %then %do;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%end;'; + put 'proc sql;'; + put 'create table &outds as'; + put 'select * from &tempds'; + put 'where groupname="&mpeadmins"'; + put 'or groupname in'; + put '(select sas_group from &mpelib..mpe_security'; + put 'where &dc_dttmtfmt. lt tx_to'; + put 'and access_level="&access_level"'; + put '& ('; + put '(libref="%scan(&base_table,1,.)" and dsn="%scan(&base_table,2,.)")'; + put 'or (libref="%scan(&base_table,1,.)" and dsn="*ALL*")'; + put 'or (libref="*ALL*")'; + put ')'; + put ');'; + put '%put base_table=&base_table;'; + put '%put libref=%scan(&base_table,1,.);'; + put '%put dsn=%scan(&base_table,2,.);'; + put '%put access_level=&access_level;'; + put '%mend mpe_accesscheck;'; + put '%macro mf_existds(libds'; + put ')/*/STORE SOURCE*/;'; + put '%if %sysfunc(exist(&libds)) ne 1 & %sysfunc(exist(&libds,VIEW)) ne 1 %then 0;'; + put '%else 1;'; + put '%mend mf_existds;'; + put '%macro mf_getvarlist(libds'; + put ',dlm=%str( )'; + put ',quote=no'; + put ',typefilter=A'; + put ')/*/STORE SOURCE*/;'; + put '/* declare local vars */'; + put '%local outvar dsid nvars x rc dlm q var vtype;'; + put '/* credit Rowland Hale - byte34 is double quote, 39 is single quote */'; + put '%if %upcase("e)=DOUBLE %then %let q=%qsysfunc(byte(34));'; + put '%else %if %upcase("e)=SINGLE %then %let q=%qsysfunc(byte(39));'; + put '/* open dataset in macro */'; + put '%let dsid=%sysfunc(open(&libds));'; + put '%if &dsid %then %do;'; + put '%let nvars=%sysfunc(attrn(&dsid,NVARS));'; + put '%if &nvars>0 %then %do;'; + put '/* add variables with supplied delimeter */'; + put '%do x=1 %to &nvars;'; + put '/* get variable type */'; + put '%let vtype=%sysfunc(vartype(&dsid,&x));'; + put '%if &vtype=&typefilter or &typefilter=A %then %do;'; + put '%let var=&q.%sysfunc(varname(&dsid,&x))&q.;'; + put '%if &var=&q&q %then %do;'; + put '%put &sysmacroname: Empty column found in &libds!;'; + put '%let var=&q. &q.;'; + put '%end;'; + put '%if %quote(&outvar)=%quote() %then %let outvar=&var;'; + put '%else %let outvar=&outvar.&dlm.&var.;'; + put '%end;'; + put '%end;'; + put '%end;'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: Unable to open &libds (rc=&dsid);'; + put '%put &sysmacroname: SYSMSG= %sysfunc(sysmsg());'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%do;%unquote(&outvar)%end;'; + put '%mend mf_getvarlist;'; + put '%macro mf_wordsInStr1ButNotStr2('; + put 'Str1= /* string containing words to extract */'; + put ',Str2= /* used to compare with the extract string */'; + put ')/*/STORE SOURCE*/;'; + put '%local count_base count_extr i i2 extr_word base_word match outvar;'; + put '%if %length(&str1)=0 or %length(&str2)=0 %then %do;'; + put '%put base string (str1)= &str1;'; + put '%put compare string (str2) = &str2;'; + put '%return;'; + put '%end;'; + put '%let count_base=%sysfunc(countw(&Str2));'; + put '%let count_extr=%sysfunc(countw(&Str1));'; + put '%do i=1 %to &count_extr;'; + put '%let extr_word=%scan(&Str1,&i,%str( ));'; + put '%let match=0;'; + put '%do i2=1 %to &count_base;'; + put '%let base_word=%scan(&Str2,&i2,%str( ));'; + put '%if &extr_word=&base_word %then %let match=1;'; + put '%end;'; + put '%if &match=0 %then %let outvar=&outvar &extr_word;'; + put '%end;'; + put '&outvar'; + put '%mend mf_wordsInStr1ButNotStr2;'; + put '%macro mp_dirlist(path=%sysfunc(pathname(work))'; + put ', fref=0'; + put ', outds=work.mp_dirlist'; + put ', getattrs=NO'; + put ', maxdepth=0'; + put ', level=0 /* The level of recursion to perform. For internal use only. */'; + put ')/*/STORE SOURCE*/;'; + put '%let getattrs=%upcase(&getattrs)XX;'; + put '/* temp table */'; + put '%local out_ds;'; + put 'data;run;'; + put '%let out_ds=%str(&syslast);'; + put '/* drop main (top) table if it exists */'; + put '%if &level=0 %then %do;'; + put '%mp_dropmembers(%scan(&outds,-1,.), libref=WORK)'; + put '%end;'; + put 'data &out_ds(compress=no'; + put 'keep=file_or_folder filepath filename ext msg directory level'; + put ');'; + put 'length directory filepath $500 fref fref2 $8 file_or_folder $6 filename $80'; + put 'ext $20 msg $200 foption $16;'; + put 'if _n_=1 then call missing(of _all_);'; + put 'retain level &level;'; + put '%if &fref=0 %then %do;'; + put 'rc = filename(fref, "&path");'; + put '%end;'; + put '%else %do;'; + put 'fref="&fref";'; + put 'rc=0;'; + put '%end;'; + put 'if rc = 0 then do;'; + put 'did = dopen(fref);'; + put 'if did=0 then do;'; + put 'putlog "NOTE: This directory is empty, or does not exist - &path";'; + put 'msg=sysmsg();'; + put 'put msg;'; + put 'put _all_;'; + put 'stop;'; + put 'end;'; + put '/* attribute is OS-dependent - could be "Directory" or "Directory Name" */'; + put 'numopts=doptnum(did);'; + put 'do i=1 to numopts;'; + put 'foption=doptname(did,i);'; + put 'if foption=:''Directory'' then i=numopts;'; + put 'end;'; + put 'directory=dinfo(did,foption);'; + put 'rc = filename(fref);'; + put 'end;'; + put 'else do;'; + put 'msg=sysmsg();'; + put 'put _all_;'; + put 'stop;'; + put 'end;'; + put 'dnum = dnum(did);'; + put 'do i = 1 to dnum;'; + put 'filename = dread(did, i);'; + put 'filepath=cats(directory,''/'',filename);'; + put 'rc = filename(fref2,filepath);'; + put 'midd=dopen(fref2);'; + put 'dmsg=sysmsg();'; + put 'if did > 0 then file_or_folder=''folder'';'; + put 'rc=dclose(midd);'; + put 'midf=fopen(fref2);'; + put 'fmsg=sysmsg();'; + put 'if midf > 0 then file_or_folder=''file'';'; + put 'rc=fclose(midf);'; + put 'if index(fmsg,''File is in use'') or index(dmsg,''is not a directory'')'; + put 'then file_or_folder=''file'';'; + put 'else if index(fmsg,''Insufficient authorization'') then file_or_folder=''file'';'; + put 'else if file_or_folder='''' then file_or_folder=''locked'';'; + put 'if file_or_folder=''file'' then do;'; + put 'ext = prxchange(''s/.*\.{1,1}(.*)/$1/'', 1, filename);'; + put 'if filename = ext then ext = '' '';'; + put 'end;'; + put 'else do;'; + put 'ext='''';'; + put 'file_or_folder=''folder'';'; + put 'end;'; + put 'output;'; + put 'end;'; + put 'rc = dclose(did);'; + put 'stop;'; + put 'run;'; + put '%if %substr(&getattrs,1,1)=Y %then %do;'; + put 'data &out_ds;'; + put 'set &out_ds;'; + put 'length infoname infoval $60 fref $8;'; + put 'if _n_=1 then call missing(fref);'; + put 'rc=filename(fref,filepath);'; + put 'drop rc infoname fid i close fref;'; + put 'if file_or_folder=''file'' then do;'; + put 'fid=fopen(fref);'; + put 'if fid le 0 then do;'; + put 'msg=sysmsg();'; + put 'putlog "Could not open file:" filepath fid= ;'; + put 'sasname=''_MCNOTVALID_'';'; + put 'output;'; + put 'end;'; + put 'else do i=1 to foptnum(fid);'; + put 'infoname=foptname(fid,i);'; + put 'infoval=finfo(fid,infoname);'; + put 'sasname=compress(infoname, ''_'', ''adik'');'; + put 'if anydigit(sasname)=1 then sasname=substr(sasname,anyalpha(sasname));'; + put 'if upcase(sasname) ne ''FILENAME'' then output;'; + put 'end;'; + put 'close=fclose(fid);'; + put 'end;'; + put 'else do;'; + put 'fid=dopen(fref);'; + put 'if fid le 0 then do;'; + put 'msg=sysmsg();'; + put 'putlog "Could not open folder:" filepath fid= ;'; + put 'sasname=''_MCNOTVALID_'';'; + put 'output;'; + put 'end;'; + put 'else do i=1 to doptnum(fid);'; + put 'infoname=doptname(fid,i);'; + put 'infoval=dinfo(fid,infoname);'; + put 'sasname=compress(infoname, ''_'', ''adik'');'; + put 'if anydigit(sasname)=1 then sasname=substr(sasname,anyalpha(sasname));'; + put 'if upcase(sasname) ne ''FILENAME'' then output;'; + put 'end;'; + put 'close=dclose(fid);'; + put 'end;'; + put 'run;'; + put 'proc sort;'; + put 'by filepath sasname;'; + put 'proc transpose data=&out_ds out=&out_ds(drop=_:);'; + put 'id sasname;'; + put 'var infoval;'; + put 'by filepath file_or_folder filename ext ;'; + put 'run;'; + put '%end;'; + put 'data &out_ds;'; + put 'set &out_ds(where=(filepath ne ''''));'; + put 'run;'; + put '/**'; + put '* The above transpose can mean that some updates create additional columns.'; + put '* This necessitates the occasional use of datastep over proc append.'; + put '*/'; + put '%if %mf_existds(&outds) %then %do;'; + put '%local basevars appvars newvars;'; + put '%let basevars=%mf_getvarlist(&outds);'; + put '%let appvars=%mf_getvarlist(&out_ds);'; + put '%let newvars=%length(%mf_wordsinstr1butnotstr2(Str1=&appvars,Str2=&basevars));'; + put '%if &newvars>0 %then %do;'; + put 'data &outds;'; + put 'set &outds &out_ds;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put 'proc append base=&outds data=&out_ds force nowarn;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put 'proc append base=&outds data=&out_ds;'; + put 'run;'; + put '%end;'; + put '/* recursive call */'; + put '%if &maxdepth>&level or &maxdepth=MAX %then %do;'; + put 'data _null_;'; + put 'set &out_ds;'; + put 'where file_or_folder=''folder'';'; + put 'length code $10000;'; + put 'code=cats(''%nrstr(%mp_dirlist(path='',filepath,",outds=&outds"'; + put ',",getattrs=&getattrs,level=%eval(&level+1),maxdepth=&maxdepth))");'; + put 'put code=;'; + put 'call execute(code);'; + put 'run;'; + put '%end;'; + put '/* tidy up */'; + put 'proc sql;'; + put 'drop table &out_ds;'; + put '%mend mp_dirlist;'; + put '%macro mp_binarycopy('; + put 'inloc= /* full path and filename of the object to be copied */'; + put ',outloc= /* full path and filename of object to be created */'; + put ',inref=____in /* override default to use own filerefs */'; + put ',outref=____out /* override default to use own filerefs */'; + put ',mode=CREATE'; + put ',iftrue=%str(1=1)'; + put ')/*/STORE SOURCE*/;'; + put '%local mod;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%if &mode=APPEND %then %let mod=mod;'; + put '/* these IN and OUT filerefs can point to anything */'; + put '%if &inref = ____in %then %do;'; + put 'filename &inref &inloc lrecl=1048576 ;'; + put '%end;'; + put '%if &outref=____out %then %do;'; + put 'filename &outref &outloc lrecl=1048576 &mod;'; + put '%end;'; + put '/* copy the file byte-for-byte */'; + put 'data _null_;'; + put 'infile &inref lrecl=1 recfm=n;'; + put 'file &outref &mod recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put '%if &inref = ____in %then %do;'; + put 'filename &inref clear;'; + put '%end;'; + put '%if &outref=____out %then %do;'; + put 'filename &outref clear;'; + put '%end;'; + put '%mend mp_binarycopy;'; + put '%macro mf_getattrn('; + put 'libds'; + put ',attr'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid rc;'; + put '%let dsid=%sysfunc(open(&libds,is));'; + put '%if &dsid = 0 %then %do;'; + put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; + put '%put %sysfunc(sysmsg());'; + put '-1'; + put '%end;'; + put '%else %do;'; + put '%sysfunc(attrn(&dsid,&attr))'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%mend mf_getattrn;'; + put '%macro mfs_httpheader(header_name'; + put ',header_value'; + put ')/*/STORE SOURCE*/;'; + put '%global sasjs_stpsrv_header_loc;'; + put '%local fref fid i;'; + put '%if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc)) ne 0 %then %do;'; + put '%put &=fref &=sasjs_stpsrv_header_loc;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(&header_name): %str(&header_value)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%mend mfs_httpheader;'; + put '%macro mp_streamfile('; + put 'contenttype=TEXT'; + put ',inloc='; + put ',inref=0'; + put ',iftrue=%str(1=1)'; + put ',outname='; + put ',outref=_webout'; + put ')/*/STORE SOURCE*/;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%let contentype=%upcase(&contenttype);'; + put '%let outref=%upcase(&outref);'; + put '%local platform; %let platform=%mf_getplatform();'; + put '/**'; + put '* check engine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put '%local streamweb;'; + put '%let streamweb=0;'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(upcase(fileref)="&outref"));'; + put 'if xengine=''STREAM'' then call symputx(''streamweb'',1,''l'');'; + put 'run;'; + put '%if &contentype=CSV %then %do;'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'',''application/csv'');'; + put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.txt'''; + put 'contenttype=''application/csv'''; + put 'contentdisp="attachment; filename=&outname";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type,application/csv)'; + put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; + put '%end;'; + put '%end;'; + put '%else %if &contentype=EXCEL %then %do;'; + put '/* suitable for XLS format */'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'',''application/vnd.ms-excel'');'; + put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.xls'''; + put 'contenttype=''application/vnd.ms-excel'''; + put 'contentdisp="attachment; filename=&outname";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type,application/vnd.ms-excel)'; + put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; + put '%end;'; + put '%end;'; + put '%else %if &contentype=GIF or &contentype=JPEG or &contentype=PNG %then %do;'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'',"image/%lowcase(&contenttype)");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'contenttype="image/%lowcase(&contenttype)";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type,image/%lowcase(&contenttype))'; + put '%end;'; + put '%end;'; + put '%else %if &contentype=HTML or &contenttype=MARKDOWN %then %do;'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'',"text/%lowcase(&contenttype)");'; + put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name="_webout.json"'; + put 'contenttype="text/%lowcase(&contenttype)"'; + put 'contentdisp="attachment; filename=&outname";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type,text/%lowcase(&contenttype))'; + put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; + put '%end;'; + put '%end;'; + put '%else %if &contentype=TEXT %then %do;'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'',''application/text'');'; + put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.txt'''; + put 'contenttype=''application/text'''; + put 'contentdisp="attachment; filename=&outname";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type,application/text)'; + put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; + put '%end;'; + put '%end;'; + put '%else %if &contentype=WOFF or &contentype=WOFF2 or &contentype=TTF %then %do;'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'',"font/%lowcase(&contenttype)");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'contenttype="font/%lowcase(&contenttype)";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type,font/%lowcase(&contenttype))'; + put '%end;'; + put '%end;'; + put '%else %if &contentype=XLSX %then %do;'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'','; + put '''application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'');'; + put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.xls'''; + put 'contenttype='; + put '''application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'''; + put 'contentdisp="attachment; filename=&outname";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type'; + put ',application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'; + put ')'; + put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; + put '%end;'; + put '%end;'; + put '%else %if &contentype=ZIP %then %do;'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'',''application/zip'');'; + put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.zip'''; + put 'contenttype=''application/zip'''; + put 'contentdisp="attachment; filename=&outname";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type,application/zip)'; + put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put %str(ERR)OR: Content Type &contenttype NOT SUPPORTED by &sysmacroname!;'; + put '%end;'; + put '%if &inref ne 0 %then %do;'; + put '%mp_binarycopy(inref=&inref,outref=&outref)'; + put '%end;'; + put '%else %do;'; + put '%mp_binarycopy(inloc="&inloc",outref=&outref)'; + put '%end;'; + put '%mend mp_streamfile;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file getauditfile.sas'; + put '@brief Downloads a zip file containing audit info.'; + put '@details The staging location from the &mpelocapprovals location'; + put 'is zipped and returned as a file download. A user can only request the'; + put 'audit pack if they have EDIT or APPROVE rights on the target table.'; + put '

SAS Macros

'; + put '@li mf_getuser.sas'; + put '@li mf_verifymacvars.sas'; + put '@li mpe_accesscheck.sas'; + put '@li mp_abort.sas'; + put '@li mp_dirlist.sas'; + put '@li mp_binarycopy.sas'; + put '@li mf_getattrn.sas'; + put '@li mp_streamfile.sas'; + put '@version 9.2'; + put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; + put 'downloaded from here: https://4gl.uk/dcdeploy'; + put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; + put 'and may not be re-distributed or re-sold without the express permission of'; + put '4GL Apps Ltd.'; + put '**/'; + put '%mpeinit()'; + put 'options mprint;'; + put '/* security checks */'; + put '%let user=%mf_getuser();'; + put 'proc sql noprint;'; + put 'select cats(base_lib,''.'',base_ds) into: libds'; + put 'from &mpelib..mpe_submit'; + put 'where table_id="&table";'; + put '%mp_abort('; + put 'iftrue=(%mf_verifymacvars(libds table)=0)'; + put ',mac=&_program'; + put ',msg=%str(Missing: libds table)'; + put ')'; + put '%mpe_accesscheck(&libds,outds=authEDIT,user=&user,access_level=EDIT);'; + put '%mpe_accesscheck(&libds,outds=authAPP,user=&user,access_level=APPROVE);'; + put '%mp_abort('; + put 'iftrue=('; + put '%mf_getattrn(work.authEDIT,NLOBS)=0 & %mf_getattrn(work.authAPP,NLOBS)=0'; + put ')'; + put ',mac=mpestp_audit'; + put ',msg=%str(&user not authorised to download audit data for &table)'; + put ')'; + put 'ods package(ProdOutput) open nopf;'; + put 'options notes source2 mprint;'; + put '%let table=%unquote(&table);'; + put '%mp_dirlist(outds=dirs, path=&mpelocapprovals/&TABLE);'; + put 'data _null_;'; + put 'set dirs;'; + put 'retain str1'; + put '"ods package(ProdOutput) add file=''&mpelocapprovals/&TABLE/";'; + put 'retain str2 "'' mimetype=''text/plain'' path=''contents/'';";'; + put 'call execute(cats(str1,filename,str2));'; + put 'run;'; + put '%let archive_path=%sysfunc(pathname(work));'; + put 'ods package(ProdOutput) publish archive properties'; + put '(archive_name= "&table..zip" archive_path="&archive_path");'; + put 'ods package(ProdOutput) close;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%nrstr(syscc=&syscc)'; + put ')'; + put '/* now serve zip file to client */'; + put '%mp_streamfile(contenttype=ZIP'; + put ',inloc=%str(&archive_path/&table..zip)'; + put ',outname=&table..zip'; + put ')'; + put '%mpeterm()'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=getdiffs; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Files

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as FMTCAT,'; + put 'FMTNAME'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'LENGTH num'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.length as MAXW'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put ')))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] workobs= (0) When set to a positive integer, will create a new'; + put 'output object (WORK) which contains this number of observations from all'; + put 'tables in the WORK library.'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX,workobs=0'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&workobs) > 0 %then %do;'; + put '/* if debug mode, send back first XX records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10'; + put ',maxobs=&workobs'; + put ')'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '%macro mpe_getvars(injs,outds);'; + put '/* load parameters */'; + put 'data _null_;'; + put '__dummychar='''';__dummynum=0;'; + put 'set &outds;'; + put 'array __charvals _character_;'; + put 'do over __charvals;'; + put 'call symputx(vname(__charvals),__charvals,''g'');'; + put 'end;'; + put 'array __numvals _numeric_;'; + put 'do over __numvals;'; + put 'call symputx(vname(__numvals),__numvals,''g'');'; + put 'end;'; + put 'run;'; + put '%mend mpe_getvars;'; + put '%macro mm_getGroups('; + put 'user='; + put ',outds=work.mm_getGroups'; + put ',repo=foundation'; + put ',mDebug=0'; + put ')/*/STORE SOURCE*/;'; + put '%local mD oldrepo;'; + put '%let oldrepo=%sysfunc(getoption(metarepository));'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing mm_getGroups.sas;'; + put '%&mD.put _local_;'; + put '/* on some sites, user / group info is in a different metadata repo to the'; + put 'default */'; + put '%if &oldrepo ne &repo %then %do;'; + put 'options metarepository=&repo;'; + put '%end;'; + put '%if %length(&user)=0 %then %do;'; + put 'data &outds (keep=groupuri groupname groupdesc);'; + put 'length groupuri groupname groupdesc group_or_role $256;'; + put 'call missing(of _all_);'; + put 'i+1;'; + put 'do while'; + put '(metadata_getnobj("omsobj:IdentityGroup?@Id contains ''.''",i,groupuri)>0);'; + put 'rc=metadata_getattr(groupuri, "Name", groupname);'; + put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; + put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; + put 'if Group_or_Role = ''UserGroup'' then output;'; + put 'i+1;'; + put 'end;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put 'data &outds (keep=groupuri groupname groupdesc);'; + put 'length uri groupuri groupname groupdesc group_or_role $256;'; + put 'call missing(of _all_);'; + put 'rc=metadata_getnobj("omsobj:Person?@Name=''&user''",1,uri);'; + put 'if rc<=0 then do;'; + put 'putlog "%str(WARN)ING: rc=" rc "&user not found "'; + put '", or there was an issue reading the repository.";'; + put 'stop;'; + put 'end;'; + put 'a=1;'; + put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; + put 'if grpassn in (-3,-4) then do;'; + put 'putlog "%str(WARN)ING: No metadata groups found for &user";'; + put 'output;'; + put 'end;'; + put 'else do while (grpassn > 0);'; + put 'rc=metadata_getattr(groupuri, "Name", groupname);'; + put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; + put 'a+1;'; + put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; + put 'if Group_or_Role = ''UserGroup'' then output;'; + put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; + put 'end;'; + put 'run;'; + put '%end;'; + put '%if &oldrepo ne &repo %then %do;'; + put 'options metarepository=&oldrepo;'; + put '%end;'; + put '%mend mm_getGroups;'; + put '%macro dc_getusergroups(user=,outds=mm_getgroups);'; + put '%global dc_repo_users;'; + put '%if &dc_repo_users= %then %let dc_repo_users=foundation;'; + put '%mm_getgroups(user=&user,outds=&outds,repo=&dc_repo_users)'; + put '%mend dc_getusergroups;'; + put '%macro mpe_getgroups(user=,outds=);'; + put '%if not %symexist(dc_repo_users) %then %let dc_repo_users=foundation;'; + put '%dc_getusergroups(user=&user,outds=&outds)'; + put 'data;'; + put 'length groupname groupdesc $256;'; + put 'set &dc_libref..mpe_groups;'; + put 'where &dc_dttmtfmt. lt tx_to;'; + put 'where also upcase(user_name)="%upcase(&user)";'; + put 'groupname=group_name;'; + put 'groupdesc=group_desc;'; + put 'keep groupname groupdesc;'; + put 'run;'; + put 'data &outds;'; + put 'set &syslast &outds(keep=groupname groupdesc);'; + put 'run;'; + put '%mend mpe_getgroups;'; + put '%macro mf_abort(mac=mf_abort.sas, msg=, iftrue=%str(1=1)'; + put ')/*/STORE SOURCE*/;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mf_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%abort;'; + put '%mend mf_abort;'; + put '/** @endcond */'; + put '%macro mf_verifymacvars('; + put 'verifyVars /* list of macro variable NAMES */'; + put ',makeUpcase=NO /* set to YES to make all the variable VALUES uppercase */'; + put ',mAbort=SOFT'; + put ')/*/STORE SOURCE*/;'; + put '%local verifyIterator verifyVar abortmsg;'; + put '%do verifyIterator=1 %to %sysfunc(countw(&verifyVars,%str( )));'; + put '%let verifyVar=%qscan(&verifyVars,&verifyIterator,%str( ));'; + put '%if not %symexist(&verifyvar) %then %do;'; + put '%let abortmsg= Variable &verifyVar is MISSING;'; + put '%goto exit_err;'; + put '%end;'; + put '%if %length(%trim(&&&verifyVar))=0 %then %do;'; + put '%let abortmsg= Variable &verifyVar is EMPTY;'; + put '%goto exit_err;'; + put '%end;'; + put '%if &makeupcase=YES %then %do;'; + put '%let &verifyVar=%upcase(&&&verifyvar);'; + put '%end;'; + put '%end;'; + put '%goto exit_success;'; + put '%exit_err:'; + put '%put &abortmsg;'; + put '%mf_abort(iftrue=(&mabort ne SOFT),'; + put 'mac=mf_verifymacvars,'; + put 'msg=%str(&abortmsg)'; + put ')'; + put '0'; + put '%return;'; + put '%exit_success:'; + put '1'; + put '%mend mf_verifymacvars;'; + put '%macro mf_isblank(param'; + put ')/*/STORE SOURCE*/;'; + put '%sysevalf(%superq(param)=,boolean)'; + put '%mend mf_isblank;'; + put '%macro mp_dropmembers('; + put 'list /* space separated list of datasets / views */'; + put ',libref=WORK /* can only drop from a single library at a time */'; + put ',iftrue=%str(1=1)'; + put ')/*/STORE SOURCE*/;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%if %mf_isblank(&list) %then %do;'; + put '%put NOTE: nothing to drop!;'; + put '%return;'; + put '%end;'; + put 'proc datasets lib=&libref nolist;'; + put 'delete &list;'; + put 'delete &list /mtype=view;'; + put 'run;'; + put '%mend mp_dropmembers;'; + put '%macro mpe_accesscheck('; + put 'base_table /* base table to check for */'; + put ',outds=med_accesscheck /* WORK table to contain access details */'; + put ',user= /* metadata user to check for */'; + put ',access_level=APPROVE'; + put ');'; + put '%if &user= %then %let user=%mf_getuser();'; + put '%if %index(&outds,.) %then %do;'; + put '%local lib ds;'; + put '%let lib=%scan(&outds,1,.);'; + put '%let ds=%scan(&outds,2,.);'; + put '%if %upcase(&lib) ne WORK %then %do;'; + put '%mp_abort(msg=outds should be a WORK table'; + put ',mac=mpe_accesscheck);'; + put '%end;'; + put '%end;'; + put '%else %let ds=&outds;'; + put '%mp_abort('; + put 'iftrue=(%mf_verifymacvars(base_table user access_level)=0)'; + put ',mac=bitemporal_dataloader'; + put ',msg=%str(Missing base_table/user access_level)'; + put ')'; + put '/* ensure any existing table is dropped */'; + put '%mp_dropmembers(&ds)'; + put '/* create a new table for temp use */'; + put 'data; run;'; + put '%local tempds; %let tempds=&syslast;'; + put '/* overwrite with the list of groups */'; + put '%mpe_getgroups(user=&user,outds=&tempds);'; + put '%if &_debug ge 131 %then %do;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%end;'; + put 'proc sql;'; + put 'create table &outds as'; + put 'select * from &tempds'; + put 'where groupname="&mpeadmins"'; + put 'or groupname in'; + put '(select sas_group from &mpelib..mpe_security'; + put 'where &dc_dttmtfmt. lt tx_to'; + put 'and access_level="&access_level"'; + put '& ('; + put '(libref="%scan(&base_table,1,.)" and dsn="%scan(&base_table,2,.)")'; + put 'or (libref="%scan(&base_table,1,.)" and dsn="*ALL*")'; + put 'or (libref="*ALL*")'; + put ')'; + put ');'; + put '%put base_table=&base_table;'; + put '%put libref=%scan(&base_table,1,.);'; + put '%put dsn=%scan(&base_table,2,.);'; + put '%put access_level=&access_level;'; + put '%mend mpe_accesscheck;'; + put '%macro mf_getattrn('; + put 'libds'; + put ',attr'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid rc;'; + put '%let dsid=%sysfunc(open(&libds,is));'; + put '%if &dsid = 0 %then %do;'; + put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; + put '%put %sysfunc(sysmsg());'; + put '-1'; + put '%end;'; + put '%else %do;'; + put '%sysfunc(attrn(&dsid,&attr))'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%mend mf_getattrn;'; + put '%macro mp_binarycopy('; + put 'inloc= /* full path and filename of the object to be copied */'; + put ',outloc= /* full path and filename of object to be created */'; + put ',inref=____in /* override default to use own filerefs */'; + put ',outref=____out /* override default to use own filerefs */'; + put ',mode=CREATE'; + put ',iftrue=%str(1=1)'; + put ')/*/STORE SOURCE*/;'; + put '%local mod;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%if &mode=APPEND %then %let mod=mod;'; + put '/* these IN and OUT filerefs can point to anything */'; + put '%if &inref = ____in %then %do;'; + put 'filename &inref &inloc lrecl=1048576 ;'; + put '%end;'; + put '%if &outref=____out %then %do;'; + put 'filename &outref &outloc lrecl=1048576 &mod;'; + put '%end;'; + put '/* copy the file byte-for-byte */'; + put 'data _null_;'; + put 'infile &inref lrecl=1 recfm=n;'; + put 'file &outref &mod recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put '%if &inref = ____in %then %do;'; + put 'filename &inref clear;'; + put '%end;'; + put '%if &outref=____out %then %do;'; + put 'filename &outref clear;'; + put '%end;'; + put '%mend mp_binarycopy;'; + put '%macro mfs_httpheader(header_name'; + put ',header_value'; + put ')/*/STORE SOURCE*/;'; + put '%global sasjs_stpsrv_header_loc;'; + put '%local fref fid i;'; + put '%if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc)) ne 0 %then %do;'; + put '%put &=fref &=sasjs_stpsrv_header_loc;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(&header_name): %str(&header_value)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%mend mfs_httpheader;'; + put '%macro mp_streamfile('; + put 'contenttype=TEXT'; + put ',inloc='; + put ',inref=0'; + put ',iftrue=%str(1=1)'; + put ',outname='; + put ',outref=_webout'; + put ')/*/STORE SOURCE*/;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%let contentype=%upcase(&contenttype);'; + put '%let outref=%upcase(&outref);'; + put '%local platform; %let platform=%mf_getplatform();'; + put '/**'; + put '* check engine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put '%local streamweb;'; + put '%let streamweb=0;'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(upcase(fileref)="&outref"));'; + put 'if xengine=''STREAM'' then call symputx(''streamweb'',1,''l'');'; + put 'run;'; + put '%if &contentype=CSV %then %do;'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'',''application/csv'');'; + put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.txt'''; + put 'contenttype=''application/csv'''; + put 'contentdisp="attachment; filename=&outname";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type,application/csv)'; + put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; + put '%end;'; + put '%end;'; + put '%else %if &contentype=EXCEL %then %do;'; + put '/* suitable for XLS format */'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'',''application/vnd.ms-excel'');'; + put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.xls'''; + put 'contenttype=''application/vnd.ms-excel'''; + put 'contentdisp="attachment; filename=&outname";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type,application/vnd.ms-excel)'; + put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; + put '%end;'; + put '%end;'; + put '%else %if &contentype=GIF or &contentype=JPEG or &contentype=PNG %then %do;'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'',"image/%lowcase(&contenttype)");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'contenttype="image/%lowcase(&contenttype)";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type,image/%lowcase(&contenttype))'; + put '%end;'; + put '%end;'; + put '%else %if &contentype=HTML or &contenttype=MARKDOWN %then %do;'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'',"text/%lowcase(&contenttype)");'; + put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name="_webout.json"'; + put 'contenttype="text/%lowcase(&contenttype)"'; + put 'contentdisp="attachment; filename=&outname";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type,text/%lowcase(&contenttype))'; + put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; + put '%end;'; + put '%end;'; + put '%else %if &contentype=TEXT %then %do;'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'',''application/text'');'; + put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.txt'''; + put 'contenttype=''application/text'''; + put 'contentdisp="attachment; filename=&outname";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type,application/text)'; + put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; + put '%end;'; + put '%end;'; + put '%else %if &contentype=WOFF or &contentype=WOFF2 or &contentype=TTF %then %do;'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'',"font/%lowcase(&contenttype)");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'contenttype="font/%lowcase(&contenttype)";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type,font/%lowcase(&contenttype))'; + put '%end;'; + put '%end;'; + put '%else %if &contentype=XLSX %then %do;'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'','; + put '''application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'');'; + put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.xls'''; + put 'contenttype='; + put '''application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'''; + put 'contentdisp="attachment; filename=&outname";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type'; + put ',application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'; + put ')'; + put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; + put '%end;'; + put '%end;'; + put '%else %if &contentype=ZIP %then %do;'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'',''application/zip'');'; + put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.zip'''; + put 'contenttype=''application/zip'''; + put 'contentdisp="attachment; filename=&outname";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type,application/zip)'; + put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put %str(ERR)OR: Content Type &contenttype NOT SUPPORTED by &sysmacroname!;'; + put '%end;'; + put '%if &inref ne 0 %then %do;'; + put '%mp_binarycopy(inref=&inref,outref=&outref)'; + put '%end;'; + put '%else %do;'; + put '%mp_binarycopy(inloc="&inloc",outref=&outref)'; + put '%end;'; + put '%mend mp_streamfile;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file getdiffs.sas'; + put '@brief Retrieves the diff file for viewing'; + put '@details'; + put '

SAS Macros

'; + put '@li mpe_getvars.sas'; + put '@li mpe_accesscheck.sas'; + put '@li mf_getattrn.sas'; + put '@li mp_abort.sas'; + put '@li mp_binarycopy.sas'; + put '@li mp_streamfile.sas'; + put '@version 9.2'; + put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; + put 'downloaded from here: https://4gl.uk/dcdeploy'; + put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; + put 'and may not be re-distributed or re-sold without the express permission of'; + put '4GL Apps Ltd.'; + put '**/'; + put '%mpeinit()'; + put '%mpe_getvars(BrowserParams, BrowserParams);'; + put '/* security checks */'; + put '%let user=%mf_getuser();'; + put '%mpe_accesscheck(&libds,outds=authEDIT,user=&user,access_level=EDIT)'; + put '%mpe_accesscheck(&libds,outds=authAPP,user=&user,access_level=APPROVE)'; + put '%macro mpestp_diffs();'; + put '%if %mf_getattrn(work.authEDIT,NLOBS)=0 & %mf_getattrn(work.authAPP,NLOBS)=0'; + put '%then %do;'; + put '%mp_abort(msg=%str('; + put '&user not authorised to download diffs data for &stp_table)'; + put ',mac=mpestp_diffs.sas);'; + put '%return;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(syscc=&syscc)'; + put ')'; + put '/* stream diffs csv to client */'; + put '%mp_streamfile(contenttype=EXCEL'; + put ',inloc=%str(&mpelocapprovals/&TABLE/&STP_DIFFS_CSV)'; + put ',outname=&STP_DIFFS_CSV'; + put ')'; + put '%mend mpestp_diffs;'; + put '%mpestp_diffs()'; + put '%mpeterm()'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=getstagetable; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Files

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as FMTCAT,'; + put 'FMTNAME'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'LENGTH num'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.length as MAXW'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put ')))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] workobs= (0) When set to a positive integer, will create a new'; + put 'output object (WORK) which contains this number of observations from all'; + put 'tables in the WORK library.'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX,workobs=0'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&workobs) > 0 %then %do;'; + put '/* if debug mode, send back first XX records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10'; + put ',maxobs=&workobs'; + put ')'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '%macro mf_getattrn('; + put 'libds'; + put ',attr'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid rc;'; + put '%let dsid=%sysfunc(open(&libds,is));'; + put '%if &dsid = 0 %then %do;'; + put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; + put '%put %sysfunc(sysmsg());'; + put '-1'; + put '%end;'; + put '%else %do;'; + put '%sysfunc(attrn(&dsid,&attr))'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%mend mf_getattrn;'; + put '%macro mf_getvalue(libds,variable,filter=1'; + put ')/*/STORE SOURCE*/;'; + put '%if %mf_getattrn(&libds,NLOBS)>0 %then %do;'; + put '%local dsid rc &variable;'; + put '%let dsid=%sysfunc(open(&libds(where=(&filter))));'; + put '%syscall set(dsid);'; + put '%let rc = %sysfunc(fetch(&dsid));'; + put '%let rc = %sysfunc(close(&dsid));'; + put '%trim(&&&variable)'; + put '%end;'; + put '%mend mf_getvalue;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file getstagetable.sas'; + put '@brief Retrieves the actual table that is being sent for update'; + put '@details'; + put '

SAS Macros

'; + put '@li mf_getvalue.sas'; + put '@li mp_abort.sas'; + put '@version 9.2'; + put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; + put 'downloaded from here: https://4gl.uk/dcdeploy'; + put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; + put 'and may not be re-distributed or re-sold without the express permission of'; + put '4GL Apps Ltd.'; + put '**/'; + put '%mpeinit()'; + put '%let table_id=%mf_getvalue(work.iwant,table_id);'; + put 'libname loc "&mpelocapprovals/&table_id";'; + put 'data stagetable;'; + put 'set loc.&table_id;'; + put 'run;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(syscc=&syscc)'; + put ')'; + put '%webout(OPEN)'; + put '%webout(OBJ,stagetable,missing=STRING)'; + put '%webout(CLOSE)'; + put '%mpeterm()'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=postdata; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Files

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as FMTCAT,'; + put 'FMTNAME'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'LENGTH num'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.length as MAXW'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put ')))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] workobs= (0) When set to a positive integer, will create a new'; + put 'output object (WORK) which contains this number of observations from all'; + put 'tables in the WORK library.'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX,workobs=0'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&workobs) > 0 %then %do;'; + put '/* if debug mode, send back first XX records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10'; + put ',maxobs=&workobs'; + put ')'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '%macro mm_assignlib('; + put 'libref'; + put ',mAbort=HARD'; + put ')/*/STORE SOURCE*/;'; + put '%local mp_abort msg;'; + put '%let mp_abort=0;'; + put '%if %sysfunc(libref(&libref)) %then %do;'; + put 'data _null_;'; + put 'length liburi LibName msg $200;'; + put 'call missing(of _all_);'; + put 'nobj=metadata_getnobj("omsobj:SASLibrary?@Libref=''&libref''",1,liburi);'; + put 'if nobj=1 then do;'; + put 'rc=metadata_getattr(liburi,"Name",LibName);'; + put '/* now try and assign it */'; + put 'if libname("&libref",,''meta'',cats(''liburi="'',liburi,''";'')) ne 0 then do;'; + put 'putlog "&libref could not be assigned";'; + put 'putlog liburi=;'; + put '/**'; + put '* Fetch the system message for display in the abort modal. This is'; + put '* not always helpful though. One example, previously received:'; + put '* NOTE: Libref XX refers to the same library metadata as libref XX.'; + put '*/'; + put 'msg=sysmsg();'; + put 'if msg=:''ERROR: Libref SAVE is not assigned.'' then do;'; + put 'msg=catx(" ",'; + put '"Could not assign %upcase(&libref).",'; + put '"Please check metadata permissions! Libname:",libname,'; + put '"Liburi:",liburi'; + put ');'; + put 'end;'; + put 'else if msg="ERROR: User does not have appropriate authorization "!!'; + put '"level for library SAVE."'; + put 'then do;'; + put 'msg=catx(" ",'; + put '"ERROR: User does not have appropriate authorization level",'; + put '"for library %upcase(&libref), libname:",libname,'; + put '"Liburi:",liburi'; + put ');'; + put 'end;'; + put 'call symputx(''msg'',msg,''l'');'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1,''l'');'; + put 'end;'; + put 'else do;'; + put 'put (_all_)(=);'; + put 'call symputx(''libname'',libname,''L'');'; + put 'call symputx(''liburi'',liburi,''L'');'; + put 'end;'; + put 'end;'; + put 'else if nobj>1 then do;'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; + put 'call symputx(''msg'',"More than one library with libref=&libref");'; + put 'end;'; + put 'else do;'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; + put 'call symputx(''msg'',"Library &libref not found in metadata");'; + put 'end;'; + put 'run;'; + put '%put NOTE: &msg;'; + put '%end;'; + put '%else %do;'; + put '%put NOTE: Library &libref is already assigned;'; + put '%end;'; + put '%mp_abort(iftrue= (&mp_abort=1)'; + put ',mac=mm_assignlib.sas'; + put ',msg=%superq(msg)'; + put ')'; + put '%mend mm_assignlib;'; + put '/** @cond */'; + put '%macro mf_getengine(libref'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid engnum rc engine;'; + put '/* in case the parameter is a libref.tablename, pull off just the libref */'; + put '%let libref = %upcase(%scan(&libref, 1, %str(.)));'; + put '%let dsid=%sysfunc('; + put 'open(sashelp.vlibnam(where=(libname="%upcase(&libref)")),i)'; + put ');'; + put '%if (&dsid ^= 0) %then %do;'; + put '%let engnum=%sysfunc(varnum(&dsid,ENGINE));'; + put '%let rc=%sysfunc(fetch(&dsid));'; + put '%let engine=%sysfunc(getvarc(&dsid,&engnum));'; + put '%put &libref. ENGINE is &engine.;'; + put '%let rc= %sysfunc(close(&dsid));'; + put '%end;'; + put '%upcase(&engine)'; + put '%mend mf_getengine;'; + put '/** @endcond */'; + put '%macro mm_assigndirectlib('; + put 'libref /* libref to assign from metadata */'; + put ',open_passthrough= /* provide an alias to produce the'; + put 'CONNECT TO statement for the'; + put 'relevant external database */'; + put ',sql_options= /* add any options to add to proc sql statement eg outobs='; + put '(only valid for pass through) */'; + put ',mDebug=0'; + put ',mAbort=0'; + put ')/*/STORE SOURCE*/;'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing mm_assigndirectlib.sas;'; + put '%&mD.put _local_;'; + put '%if &mAbort=1 %then %let mAbort=;'; + put '%else %let mAbort=%str(*);'; + put '%&mD.put NOTE: Creating direct (non META) connection to &libref library;'; + put '%local cur_engine;'; + put '%let cur_engine=%mf_getengine(&libref);'; + put '%if &cur_engine ne META and &cur_engine ne %then %do;'; + put '%put NOTE: &libref already has a direct (&cur_engine) libname connection;'; + put '%return;'; + put '%end;'; + put '%else %if %upcase(&libref)=WORK %then %do;'; + put '%put NOTE: We already have a direct connection to WORK :-) ;'; + put '%return;'; + put '%end;'; + put '/* need to determine the library ENGINE first */'; + put '%local engine;'; + put 'data _null_;'; + put 'length lib_uri engine $256;'; + put 'call missing (of _all_);'; + put '/* get URI for the particular library */'; + put 'rc1=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put '/* get the Engine attribute of the previous object */'; + put 'rc2=metadata_getattr(lib_uri,''Engine'',engine);'; + put 'putlog "mm_assigndirectlib for &libref:" rc1= lib_uri= rc2= engine=;'; + put 'call symputx("liburi",lib_uri,''l'');'; + put 'call symputx("engine",engine,''l'');'; + put 'run;'; + put '/* now obtain engine specific connection details */'; + put '%if &engine=BASE %then %do;'; + put '%&mD.put NOTE: Retrieving BASE library path;'; + put 'data _null_;'; + put 'length up_uri $256 path cat_path $1024;'; + put 'retain cat_path;'; + put 'call missing (of _all_);'; + put '/* get all the filepaths of the UsingPackages association */'; + put 'i=1;'; + put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; + put 'do while (rc3>0);'; + put '/* get the DirectoryName attribute of the previous object */'; + put 'rc4=metadata_getattr(up_uri,''DirectoryName'',path);'; + put 'if i=1 then path = ''("''!!trim(path)!!''" '';'; + put 'else path ='' "''!!trim(path)!!''" '';'; + put 'cat_path = trim(cat_path) !! " " !! trim(path) ;'; + put 'i+1;'; + put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; + put 'end;'; + put 'cat_path = trim(cat_path) !! ")";'; + put '&mD.putlog "NOTE: Getting physical path for &libref library";'; + put '&mD.putlog rc3= up_uri= rc4= cat_path= path=;'; + put '&mD.putlog "NOTE: Libname cmd will be:";'; + put '&mD.putlog "libname &libref" cat_path;'; + put 'call symputx("filepath",cat_path,''l'');'; + put 'run;'; + put '%if %sysevalf(&sysver<9.4) %then %do;'; + put 'libname &libref &filepath;'; + put '%end;'; + put '%else %do;'; + put '/* apply the new filelocks option to cater for temporary locks */'; + put 'libname &libref &filepath filelockwait=5;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=REMOTE %then %do;'; + put 'data x;'; + put 'length rcCon rcProp rc k 3 uriCon uriProp PropertyValue PropertyName'; + put 'Delimiter $256 properties $2048;'; + put 'retain properties;'; + put 'rcCon = metadata_getnasn("&liburi", "LibraryConnection", 1, uriCon);'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", 1, uriProp);'; + put 'k = 1;'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; + put 'do while (rcProp > 0);'; + put 'rc = metadata_getattr(uriProp , "DefaultValue",PropertyValue);'; + put 'rc = metadata_getattr(uriProp , "PropertyName",PropertyName);'; + put 'rc = metadata_getattr(uriProp , "Delimiter",Delimiter);'; + put 'properties = trim(properties) !! " " !! trim(PropertyName)'; + put '!! trim(Delimiter) !! trim(PropertyValue);'; + put 'output;'; + put 'k+1;'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; + put 'end;'; + put '%&mD.put NOTE: Getting properties for REMOTE SHARE &libref library;'; + put '&mD.put _all_;'; + put '%&mD.put NOTE: Libname cmd will be:;'; + put '%&mD.put libname &libref &engine &properties slibref=&libref;'; + put 'call symputx ("properties",trim(properties),''l'');'; + put 'run;'; + put 'libname &libref &engine &properties slibref=&libref;'; + put '%end;'; + put '%else %if &engine=OLEDB %then %do;'; + put '%&mD.put NOTE: Retrieving OLEDB connection details;'; + put 'data _null_;'; + put 'length domain datasource provider properties schema'; + put 'connx_uri domain_uri conprop_uri lib_uri schema_uri value $256.;'; + put 'call missing (of _all_);'; + put '/* get source connection ID */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; + put '/* get connection domain */'; + put 'rc1=metadata_getnasn(connx_uri,''Domain'',1,domain_uri);'; + put 'rc2=metadata_getattr(domain_uri,''Name'',domain);'; + put '&mD.putlog / ''NOTE: '' // ''NOTE- connection id: '' connx_uri ;'; + put '&mD.putlog ''NOTE- domain: '' domain;'; + put '/* get DSN and PROVIDER from connection properties */'; + put 'i=0;'; + put 'do until (rc<0);'; + put 'i+1;'; + put 'rc=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; + put 'rc2=metadata_getattr(conprop_uri,''Name'',value);'; + put 'if value=''Connection.OLE.Property.DATASOURCE.Name.xmlKey.txt'' then do;'; + put 'rc3=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; + put 'end;'; + put 'else if value=''Connection.OLE.Property.PROVIDER.Name.xmlKey.txt'' then do;'; + put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',provider);'; + put 'end;'; + put 'else if value=''Connection.OLE.Property.PROPERTIES.Name.xmlKey.txt'' then'; + put 'do;'; + put 'rc5=metadata_getattr(conprop_uri,''DefaultValue'',properties);'; + put 'end;'; + put 'end;'; + put '&mD.putlog ''NOTE- dsn/provider/properties: '' /'; + put 'datasource provider properties;'; + put '&mD.putlog ''NOTE- schema: '' schema // ''NOTE-'';'; + put '/* get SCHEMA */'; + put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,lib_uri);'; + put 'rc7=metadata_getattr(lib_uri,''SchemaName'',schema);'; + put 'call symputx(''SQL_domain'',domain,''l'');'; + put 'call symputx(''SQL_dsn'',datasource,''l'');'; + put 'call symputx(''SQL_provider'',provider,''l'');'; + put 'call symputx(''SQL_properties'',properties,''l'');'; + put 'call symputx(''SQL_schema'',schema,''l'');'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put 'proc sql &sql_options;'; + put 'connect to OLEDB as &open_passthrough(INSERT_SQL=YES'; + put '/* need additional properties to make this work */'; + put 'properties=(''Integrated Security''=SSPI'; + put '''Persist Security Info''=True'; + put '%sysfunc(compress(%str(&SQL_properties),%str(())))'; + put ')'; + put 'DATASOURCE=&sql_dsn PROMPT=NO'; + put 'PROVIDER=&sql_provider SCHEMA=&sql_schema CONNECTION = GLOBAL);'; + put '%end;'; + put '%else %do;'; + put 'LIBNAME &libref OLEDB PROPERTIES=&sql_properties'; + put 'DATASOURCE=&sql_dsn PROVIDER=&sql_provider SCHEMA=&sql_schema'; + put '%if %length(&sql_domain)>0 %then %do;'; + put 'authdomain="&sql_domain"'; + put '%end;'; + put 'connection=shared;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=ODBC %then %do;'; + put '&mD.%put NOTE: Retrieving ODBC connection details;'; + put 'data _null_;'; + put 'length connx_uri conprop_uri value datasource up_uri schema $256.;'; + put 'call missing (of _all_);'; + put '/* get source connection ID */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; + put '/* get connection properties */'; + put 'i=0;'; + put 'do until (rc2<0);'; + put 'i+1;'; + put 'rc2=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; + put 'rc3=metadata_getattr(conprop_uri,''Name'',value);'; + put 'if value=''Connection.ODBC.Property.DATASRC.Name.xmlKey.txt'' then do;'; + put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; + put 'rc2=-1;'; + put 'end;'; + put 'end;'; + put '/* get SCHEMA */'; + put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,up_uri);'; + put 'rc7=metadata_getattr(up_uri,''SchemaName'',schema);'; + put '&mD.put rc= connx_uri= rc2= conprop_uri= rc3= value= rc4= datasource='; + put 'rc6= up_uri= rc7= schema=;'; + put 'call symputx(''SQL_schema'',schema,''l'');'; + put 'call symputx(''SQL_dsn'',datasource,''l'');'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put 'proc sql &sql_options;'; + put 'connect to ODBC as &open_passthrough'; + put '(INSERT_SQL=YES DATASRC=&sql_dsn. CONNECTION=global);'; + put '%end;'; + put '%else %do;'; + put 'libname &libref ODBC DATASRC=&sql_dsn SCHEMA=&sql_schema;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=POSTGRES %then %do;'; + put '%put NOTE: Obtaining POSTGRES library details;'; + put 'data _null_;'; + put 'length database ignore_read_only_columns direct_exe preserve_col_names'; + put 'preserve_tab_names server schema authdomain user password'; + put 'prop name value uri urisrc $256.;'; + put 'call missing (of _all_);'; + put '/* get database value */'; + put 'prop=''Connection.DBMS.Property.DB.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,database,"");'; + put 'if database^='''' then database=''database=''!!quote(trim(database));'; + put 'call symputx(''database'',database,''l'');'; + put '/* get IGNORE_READ_ONLY_COLUMNS value */'; + put 'prop=''Library.DBMS.Property.DBIROC.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,ignore_read_only_columns,"");'; + put 'if ignore_read_only_columns^='''' then ignore_read_only_columns='; + put '''ignore_read_only_columns=''!!ignore_read_only_columns;'; + put 'call symputx(''ignore_read_only_columns'',ignore_read_only_columns,''l'');'; + put '/* get DIRECT_EXE value */'; + put 'prop=''Library.DBMS.Property.DirectExe.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,direct_exe,"");'; + put 'if direct_exe^='''' then direct_exe=''direct_exe=''!!direct_exe;'; + put 'call symputx(''direct_exe'',direct_exe,''l'');'; + put '/* get PRESERVE_COL_NAMES value */'; + put 'prop=''Library.DBMS.Property.PreserveColNames.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,preserve_col_names,"");'; + put 'if preserve_col_names^='''' then preserve_col_names='; + put '''preserve_col_names=''!!preserve_col_names;'; + put 'call symputx(''preserve_col_names'',preserve_col_names,''l'');'; + put '/* get PRESERVE_TAB_NAMES value */'; + put '/* be careful with PRESERVE_TAB_NAMES=YES - it will mean your table will'; + put 'become case sensitive!! */'; + put 'prop=''Library.DBMS.Property.PreserveTabNames.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,preserve_tab_names,"");'; + put 'if preserve_tab_names^='''' then preserve_tab_names='; + put '''preserve_tab_names=''!!preserve_tab_names;'; + put 'call symputx(''preserve_tab_names'',preserve_tab_names,''l'');'; + put '/* get SERVER value */'; + put 'if metadata_getnasn("&liburi","LibraryConnection",1,uri)>0 then do;'; + put 'prop=''Connection.DBMS.Property.SERVER.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop(uri,prop,server,"");'; + put 'end;'; + put 'if server^='''' then server=''server=''!!quote(cats(server));'; + put 'call symputx(''server'',server,''l'');'; + put '/* get SCHEMA value */'; + put 'if metadata_getnasn("&liburi","UsingPackages",1,uri)>0 then do;'; + put 'rc=metadata_getattr(uri,"SchemaName",schema);'; + put 'end;'; + put 'if schema^='''' then schema=''schema=''!!schema;'; + put 'call symputx(''schema'',schema,''l'');'; + put '/* get AUTHDOMAIN value */'; + put '/* this is only useful if the user account contains that auth domain'; + put 'if metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then do;'; + put 'rc=metadata_getnasn(uri,"Domain",1,urisrc);'; + put 'rc=metadata_getattr(urisrc,"Name",authdomain);'; + put 'end;'; + put 'if authdomain^='''' then authdomain=''authdomain=''!!quote(trim(authdomain));'; + put '*/'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/* get user & pass */'; + put 'if authdomain='''' & metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then'; + put 'do;'; + put 'rc=metadata_getattr(uri,"UserID",user);'; + put 'rc=metadata_getattr(uri,"Password",password);'; + put 'end;'; + put 'if user^='''' then do;'; + put 'user=''user=''!!quote(trim(user));'; + put 'password=''password=''!!quote(trim(password));'; + put 'end;'; + put 'call symputx(''user'',user,''l'');'; + put 'call symputx(''password'',password,''l'');'; + put '&md.put _all_;'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put '%put %str(WARN)ING: Passthrough option for postgres not yet supported;'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put '%if &mdebug=1 %then %do;'; + put '%put NOTE: Executing the following:/;'; + put '%put NOTE- libname &libref POSTGRES &database &ignore_read_only_columns;'; + put '%put NOTE- &direct_exe &preserve_col_names &preserve_tab_names;'; + put '%put NOTE- &server &schema &authdomain &user &password //;'; + put '%end;'; + put 'libname &libref POSTGRES &database &ignore_read_only_columns &direct_exe'; + put '&preserve_col_names &preserve_tab_names &server &schema &authdomain'; + put '&user &password;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=ORACLE %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null_;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema $256;'; + put 'call missing (of _all_);'; + put '/* get auth domain */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; + put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; + put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/* path */'; + put 'rc=metadata_getprop(assocuri1,'; + put '''Connection.Oracle.Property.PATH.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref ORACLE path=&path schema=&schema;'; + put '%put NOTE- authdomain=&authdomain;'; + put '%put NOTE-;'; + put 'libname &libref ORACLE path=&path schema=&schema authdomain=&authdomain;'; + put '%end;'; + put '%else %if &engine=SQLSVR %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; + put 'passwd $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; + put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; + put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; + put 'call symputx(''user'',userid,''l'');'; + put 'call symputx(''pass'',passwd,''l'');'; + put '/* path */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; + put 'rc=metadata_getprop(assocuri2,'; + put '''Connection.SQL.Property.Datasrc.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref SQLSVR datasrc=&path schema=&schema ;'; + put '%put NOTE- user="&user" pass="XXX";'; + put '%put NOTE-;'; + put 'libname &libref SQLSVR datasrc=&path schema=&schema user="&user" pass="&pass";'; + put '%end;'; + put '%else %if &engine=TERADATA %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; + put 'passwd $256;'; + put 'call missing (of _all_);'; + put '/* get auth domain */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; + put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; + put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/*'; + put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; + put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; + put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; + put 'call symputx(''user'',userid,''l'');'; + put 'call symputx(''pass'',passwd,''l'');'; + put '*/'; + put '/* path */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; + put 'rc=metadata_getprop(assocuri2,'; + put '''Connection.Teradata.Property.SERVER.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref TERADATA server="&path" schema=&schema ;'; + put '%put NOTe- authdomain=&authdomain;'; + put '%put NOTE-;'; + put 'libname &libref TERADATA server="&path" schema=&schema authdomain=&authdomain;'; + put '%end;'; + put '%else %if &engine= %then %do;'; + put '%put NOTE: Libref &libref is not registered in metadata;'; + put '%&mAbort.mp_abort('; + put 'msg=%str(ERR)OR: Libref &libref is not registered in metadata'; + put ',mac=mm_assigndirectlib.sas);'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put '%put %str(WARN)ING: Engine &engine is currently unsupported;'; + put '%put %str(WARN)ING- Please contact your support team.;'; + put '%return;'; + put '%end;'; + put '%mend mm_assigndirectlib;'; + put '%macro mm_getrepos('; + put 'outds=work.mm_getrepos'; + put ')/*/STORE SOURCE*/;'; + put '* use a temporary fileref to hold the response;'; + put 'filename response temp;'; + put '/* get list of libraries */'; + put 'proc metadata in='; + put '"1"'; + put 'out=response;'; + put 'run;'; + put '/* write the response to the log for debugging */'; + put '/*'; + put 'data _null_;'; + put 'infile response lrecl=1048576;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '*/'; + put '/* create an XML map to read the response */'; + put 'filename sxlemap temp;'; + put 'data _null_;'; + put 'file sxlemap;'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository";'; + put 'put "";'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Id";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Name";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Desc";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@DefaultNS";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryType";'; + put 'put "characterstring20";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryFormat";'; + put 'put "characterstring10";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@Access";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@CurrentAccess";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@PauseState";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Path";'; + put 'put "";'; + put 'put "characterstring256";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Engine";'; + put 'put "";'; + put 'put "characterstring8";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Options";'; + put 'put "";'; + put 'put "characterstring32";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataCreated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataUpdated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put ''
'';'; + put 'run;'; + put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; + put 'proc sort data= _XML_.SASRepos out=&outds;'; + put 'by name;'; + put 'run;'; + put '/* clear references */'; + put 'filename sxlemap clear;'; + put 'filename response clear;'; + put 'libname _XML_ clear;'; + put '%mend mm_getrepos;'; + put '%macro dc_assignlib(type,libref,passthru=);'; + put '%put &sysmacroname entry vars:;'; + put '%put _local_;'; + put '/* take current repository */'; + put '%local repo repocnt x;'; + put '%let repo=%sysfunc(getoption(metarepository));'; + put '/* get list of repositories and filter */'; + put '%mm_getrepos(outds=repos)'; + put '%let repocnt=0;'; + put 'data repos;'; + put 'set repos;'; + put 'where repositorytype in(''CUSTOM'',''FOUNDATION'')'; + put '& upcase(name) ne "%upcase(&repo)";'; + put 'keep id name ;'; + put 'call symputx(cats(''repo'',_n_),name,''l'');'; + put 'call symputx(''repocnt'',_n_,''l'');'; + put 'run;'; + put '/* find out which of these repositories has the libref we are searching for */'; + put '%local lib_uri;'; + put '%let lib_uri=NOTFOUND;'; + put 'data _null_; /* check default repo first */'; + put 'length lib_uri $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; + put 'run;'; + put '%if &lib_uri=NOTFOUND %then %do;'; + put '%do x=1 %to &repocnt;'; + put 'options metarepository=&&repo&x;'; + put 'data _null_;'; + put 'length lib_uri $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; + put 'run;'; + put '%if &lib_uri ne NOTFOUND %then %let x=%eval(&repocnt+1);'; + put '%end;'; + put '%end;'; + put '%if &type=READ %then %do;'; + put '%mm_assignlib(&libref)'; + put '%end;'; + put '%else %if &type=WRITE %then %do;'; + put '%mm_assigndirectlib(&libref,open_passthrough=&passthru)'; + put '%end;'; + put 'options metarepository=&repo;'; + put '%mend dc_assignlib;'; + put '/** @cond */'; + put '%macro mf_existvar(libds /* 2 part dataset name */'; + put ', var /* variable name */'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid rc;'; + put '%let dsid=%sysfunc(open(&libds,is));'; + put '%if &dsid=0 or %length(&var)=0 %then %do;'; + put '%put %sysfunc(sysmsg());'; + put '0'; + put '%end;'; + put '%else %do;'; + put '%sysfunc(varnum(&dsid,&var))'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%mend mf_existvar;'; + put '/** @endcond */'; + put '%macro mf_getattrn('; + put 'libds'; + put ',attr'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid rc;'; + put '%let dsid=%sysfunc(open(&libds,is));'; + put '%if &dsid = 0 %then %do;'; + put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; + put '%put %sysfunc(sysmsg());'; + put '-1'; + put '%end;'; + put '%else %do;'; + put '%sysfunc(attrn(&dsid,&attr))'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%mend mf_getattrn;'; + put '%macro mf_getvartype(libds /* two level name */'; + put ', var /* variable name from which to return the type */'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid vnum vtype rc;'; + put '/* Open dataset */'; + put '%let dsid = %sysfunc(open(&libds));'; + put '%if &dsid. > 0 %then %do;'; + put '/* Get variable number */'; + put '%let vnum = %sysfunc(varnum(&dsid, &var));'; + put '/* Get variable type (C/N) */'; + put '%if(&vnum. > 0) %then %let vtype = %sysfunc(vartype(&dsid, &vnum.));'; + put '%else %do;'; + put '%put NOTE: Variable &var does not exist in &libds;'; + put '%let vtype = %str( );'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: dataset &libds not opened! (rc=&dsid);'; + put '%put &sysmacroname: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '/* Close dataset */'; + put '%let rc = %sysfunc(close(&dsid));'; + put '/* Return variable type */'; + put '&vtype'; + put '%mend mf_getvartype;'; + put '%macro mf_getattrc('; + put 'libds'; + put ',attr'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid rc;'; + put '%let dsid=%sysfunc(open(&libds,is));'; + put '%if &dsid = 0 %then %do;'; + put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; + put '%put %sysfunc(sysmsg());'; + put '-1'; + put '%end;'; + put '%else %do;'; + put '%sysfunc(attrc(&dsid,&attr))'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%mend mf_getattrc;'; + put '%macro mp_lockfilecheck('; + put 'libds'; + put ')/*/STORE SOURCE*/;'; + put 'data _null_;'; + put 'if _n_=1 then putlog "&sysmacroname entry vars:";'; + put 'set sashelp.vmacro;'; + put 'where scope="&sysmacroname";'; + put 'put name ''='' value;'; + put 'run;'; + put '%mp_abort(iftrue= (&syscc>0)'; + put ',mac=checklock.sas'; + put ',msg=Aborting with syscc=&syscc on entry.'; + put ')'; + put '%mp_abort(iftrue= ("&libds"="0")'; + put ',mac=&sysmacroname'; + put ',msg=%str(libds not provided)'; + put ')'; + put '%local msg lib ds;'; + put '%let lib=%upcase(%scan(&libds,1,.));'; + put '%let ds=%upcase(%scan(&libds,2,.));'; + put '/* in DC, format catalogs are passed with a -FC suffix. No saslock here! */'; + put '%if %scan(&libds,2,-)=FC %then %do;'; + put '%put &sysmacroname: Format Catalog detected, no lockfile applied to &libds;'; + put '%return;'; + put '%end;'; + put '/* do not proceed if no observations can be processed */'; + put '%let msg=options obs = 0. syserrortext=%superq(syserrortext);'; + put '%mp_abort(iftrue= (%sysfunc(getoption(OBS))=0)'; + put ',mac=checklock.sas'; + put ',msg=%superq(msg)'; + put ')'; + put 'data _null_;'; + put 'putlog "Checking engine & member type";'; + put 'run;'; + put '%local engine memtype;'; + put '%let memtype=%mf_getattrc(&libds,MTYPE);'; + put '%let engine=%mf_getattrc(&libds,ENGINE);'; + put '%if &engine ne V9 and &engine ne BASE %then %do;'; + put 'data _null_;'; + put 'putlog "Lib &lib is not assigned using BASE engine - uses &engine instead";'; + put 'putlog "SAS lock check will not be performed";'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%else %if &memtype ne DATA %then %do;'; + put '%put NOTE: Cannot lock a VIEW!! Memtype=&memtype;'; + put '%return;'; + put '%end;'; + put 'data _null_;'; + put 'putlog "Engine = &engine, memtype=&memtype";'; + put 'putlog "Attempting lock statement";'; + put 'run;'; + put 'lock &libds;'; + put '%local abortme;'; + put '%let abortme=0;'; + put '%if &syscc>0 or &SYSLCKRC ne 0 %then %do;'; + put '%let msg=Unable to apply lock on &libds (SYSLCKRC=&SYSLCKRC syscc=&syscc);'; + put '%put %str(ERR)OR: &sysmacroname: &msg;'; + put '%let abortme=1;'; + put '%end;'; + put 'lock &libds clear;'; + put '%mp_abort(iftrue= (&abortme=1)'; + put ',mac=&sysmacroname'; + put ',msg=%superq(msg)'; + put ')'; + put '%mend mp_lockfilecheck;'; + put '%macro mp_lockanytable('; + put 'action'; + put ',lib= WORK'; + put ',ds=0'; + put ',ref='; + put ',ctl_ds=0'; + put ',loops=25'; + put ',loop_secs=1'; + put ');'; + put 'data _null_;'; + put 'if _n_=1 then putlog "&sysmacroname entry vars:";'; + put 'set sashelp.vmacro;'; + put 'where scope="&sysmacroname";'; + put 'put name ''='' value;'; + put 'run;'; + put '%mp_abort(iftrue= ("&ds"="0" and &action ne MAKETABLE)'; + put ',mac=&sysmacroname'; + put ',msg=%str(dataset was not provided)'; + put ')'; + put '%mp_abort(iftrue= (&ctl_ds=0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Control dataset was not provided)'; + put ')'; + put '/* set up lib & mac vars */'; + put '%let lib=%upcase(&lib);'; + put '%let ds=%upcase(&ds);'; + put '%let action=%upcase(&action);'; + put '%local user x trans msg abortme;'; + put '%let user=%mf_getuser();'; + put '%let abortme=0;'; + put '%mp_abort(iftrue= (&action ne LOCK & &action ne UNLOCK & &action ne MAKETABLE)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Invalid action (&action) provided)'; + put ')'; + put '/* if an err condition exists, exit before we even begin */'; + put '%mp_abort(iftrue= (&syscc>0 and &action=LOCK)'; + put ',mac=&sysmacroname'; + put ',msg=%str(aborting due to syscc=&syscc on LOCK entry)'; + put ')'; + put '/* do not bother locking work tables (else may affect all WORK libraries) */'; + put '%if (%upcase(&lib)=WORK or %str(&lib)=%str()) & &action ne MAKETABLE %then %do;'; + put '%put NOTE: WORK libraries will not be registered in the locking system.;'; + put '%return;'; + put '%end;'; + put '/* do not proceed if no observations can be processed */'; + put '%mp_abort(iftrue= (%sysfunc(getoption(OBS))=0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(cannot continue when options obs = 0)'; + put ')'; + put '%if &ACTION=LOCK %then %do;'; + put '/* abort if a SAS lock is already in place, or cannot be applied */'; + put '%mp_lockfilecheck(&lib..&ds)'; + put '/* next, check there is a record for this table */'; + put '%local record_exists_check;'; + put 'proc sql noprint;'; + put 'select count(*) into: record_exists_check from &ctl_ds'; + put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; + put 'quit;'; + put '%if &syscc>0 %then %put syscc=&syscc sqlrc=&sqlrc;'; + put '%if &record_exists_check=0 %then %do;'; + put 'data _null_;'; + put 'putlog "&sysmacroname: adding record to lock table..";'; + put 'run;'; + put 'data ;'; + put 'if 0 then set &ctl_ds;'; + put 'LOCK_LIB ="&lib";'; + put 'LOCK_DS="&ds";'; + put 'LOCK_STATUS_CD=''LOCKED'';'; + put 'LOCK_START_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt;'; + put 'LOCK_USER_NM="&user";'; + put 'LOCK_PID="&sysjobid";'; + put 'LOCK_REF="&ref";'; + put 'output;stop;'; + put 'run;'; + put '%let trans=&syslast;'; + put 'proc append base=&ctl_ds data=&trans;'; + put 'run;'; + put '%end;'; + put '/* if record does exist, perform lock attempts */'; + put '%else %do x=1 %to &loops;'; + put 'data _null_;'; + put 'putlog "&sysmacroname: attempting lock (iteration &x) "@;'; + put 'putlog "at %sysfunc(datetime(),datetime19.) ..";'; + put 'run;'; + put 'proc sql;'; + put 'update &ctl_ds'; + put 'set LOCK_STATUS_CD=''LOCKED'''; + put ', LOCK_START_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt'; + put ', LOCK_USER_NM="&user"'; + put ', LOCK_PID="&sysjobid"'; + put ', LOCK_REF="&ref"'; + put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; + put 'quit;'; + put '/**'; + put '* NOTE - occasionally SQL server will return an err code (deadlocked'; + put '* transaction). If so, ignore it, keep calm, and carry on..'; + put '*/'; + put '%if &syscc>0 %then %do;'; + put 'data _null_;'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'putlog "NOTE- &sysmacroname: Update failed. "@;'; + put 'putlog "Resetting err conditions and re-attempting.";'; + put 'putlog "NOTE- syscc=&syscc syserr=&syserr sqlrc=&sqlrc";'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'run;'; + put '%let syscc=0;'; + put '%let sqlrc=0;'; + put '%end;'; + put '/* now check if the record was successfully updated */'; + put '%local success_check;'; + put 'proc sql noprint;'; + put 'select count(*) into: success_check from &ctl_ds'; + put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds"'; + put 'and LOCK_PID="&sysjobid" and LOCK_STATUS_CD=''LOCKED'';'; + put 'quit;'; + put '%if &success_check=0 %then %do;'; + put '%if &x < &loops %then %do;'; + put '/* pause before next check */'; + put 'data _null_;'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'putlog "NOTE- &sysmacroname: table locked, waiting "@;'; + put 'putlog "%sysfunc(sleep(&loop_inc)) seconds.. ";'; + put 'putlog "NOTE- (iteration &x of &loops)";'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%let msg=Unable to lock &lib..&ds via &ctl_ds after &loops attempts.\n'; + put 'Please ask your administrator to investigate!;'; + put '%let abortme=1;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put 'data _null_;'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'putlog "NOTE- &sysmacroname: Table &lib..&ds locked at "@;'; + put 'putlog " %sysfunc(datetime(),datetime19.) (iteration &x)"@;'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'run;'; + put '%if &syscc>0 %then %do;'; + put '%put setting syscc(&syscc) back to 0;'; + put '%let syscc=0;'; + put '%end;'; + put '%let x=&loops; /* no more iterations needed */'; + put '%end;'; + put '%end;'; + put '%end;'; + put '%else %if &ACTION=UNLOCK %then %do;'; + put '%local status;'; + put 'proc sql noprint;'; + put 'select LOCK_STATUS_CD into: status from &ctl_ds'; + put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; + put 'quit;'; + put '%if &syscc>0 %then %put syscc=&syscc sqlrc=&sqlrc;'; + put '%if &status=LOCKED %then %do;'; + put 'data _null_;'; + put 'putlog "&sysmacroname: unlocking &lib..&ds:";'; + put 'run;'; + put 'proc sql;'; + put 'update &ctl_ds'; + put 'set LOCK_STATUS_CD=''UNLOCKED'''; + put ', LOCK_END_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt'; + put ', LOCK_USER_NM="&user"'; + put ', LOCK_PID="&sysjobid"'; + put ', LOCK_REF="&ref"'; + put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; + put 'quit;'; + put '%end;'; + put '%else %if &status=UNLOCKED %then %do;'; + put '%put %str(WAR)NING: &lib..&ds is already unlocked!;'; + put '%end;'; + put '%else %do;'; + put '%put NOTE: Unrecognised STATUS_CD (&status) in &ctl_ds;'; + put '%let abortme=1;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%let msg=lock_anytable given unsupported action (&action);'; + put '%let abortme=1;'; + put '%end;'; + put '/* catch errs - mp_abort must be called outside of a logic block */'; + put '%mp_abort(iftrue=(&abortme=1),'; + put 'msg=%superq(msg),'; + put 'mac=&sysmacroname'; + put ')'; + put '%exit_macro:'; + put 'data _null_;'; + put 'put "&sysmacroname: Exit vars: action=&action lib=&lib ds=&ds";'; + put 'put " syscc=&syscc sqlrc=&sqlrc syserr=&syserr";'; + put 'run;'; + put '%mend mp_lockanytable;'; + put '%macro bitemporal_closeouts('; + put 'tech_from=tx_from_dttm'; + put ',tech_to = tx_to_dttm /* Technical TO datetime variable.'; + put 'Req''d on BASE table only. */'; + put ',base_lib=WORK /* Libref of the BASE table. */'; + put ',base_dsn=BASETABLE /* Name of BASE table. */'; + put ',append_lib=WORK /* Libref of the STAGING table. */'; + put ',append_dsn=APPENDTABLE /* Name of STAGING table. */'; + put ',PK= name sex /* Business key, space separated. */'; + put '/* Should INCLUDE BUS_FROM field if relevant. */'; + put ',NOW=DEFINE'; + put ',FILTER= /* supply a filter to limit the update */'; + put ',outdest= /* supply an unquoted filepath/filename.ext to get'; + put 'a text file containing the update statements */'; + put ',loadtype='; + put ',loadtarget=YES /* if <> YES will return without changing anything */'; + put ');'; + put '%put ENTERING &sysmacroname;'; + put '%local x var start;'; + put '%let start=%sysfunc(datetime());'; + put '%dc_assignlib(WRITE,&base_lib)'; + put '%dc_assignlib(WRITE,&append_lib)'; + put '%if &now=DEFINE %then %let now=&dc_dttmtfmt.;'; + put '%put &=now;'; + put '/**'; + put '* perform basic checks'; + put '*/'; + put '/* do tables exist? */'; + put '%if not %sysfunc(exist(&base_lib..&base_dsn)) %then %do;'; + put '%mp_abort(msg=&base_lib..&base_dsn does not exist)'; + put '%end;'; + put '%else %if %sysfunc(exist(&append_lib..&append_dsn))=0'; + put 'and %sysfunc(exist(&append_lib..&append_dsn,VIEW))=0 %then %do;'; + put '%mp_abort(msg=&append_lib..&append_dsn does not exist)'; + put '%end;'; + put '/* do TX columns exist? */'; + put '%if &loadtype ne UPDATE %then %do;'; + put '%if not %mf_existvar(&base_lib..&base_dsn,&tech_from) %then %do;'; + put '%mp_abort(msg=&tech_from does not exist on &base_lib..&base_dsn)'; + put '%end;'; + put '%else %if not %mf_existvar(&base_lib..&base_dsn,&tech_to) %then %do;'; + put '%mp_abort(msg=&tech_to does not exist on &base_lib..&base_dsn)'; + put '%end;'; + put '%end;'; + put '/* do PK columns exist? */'; + put '%do x=1 %to %sysfunc(countw(&PK));'; + put '%let var=%scan(&pk,&x,%str( ));'; + put '%if not %mf_existvar(&base_lib..&base_dsn,&var) %then %do;'; + put '%mp_abort(msg=&var does not exist on &base_lib..&base_dsn)'; + put '%end;'; + put '%else %if not %mf_existvar(&append_lib..&append_dsn,&var) %then %do;'; + put '%mp_abort(msg=&var does not exist on &append_lib..&append_dsn)'; + put '%end;'; + put '%end;'; + put '/* check uniqueness */'; + put 'proc sort data=&append_lib..&append_dsn'; + put 'out=___closeout1 noduprecs dupout=___closeout1a;'; + put 'by &pk;'; + put 'run;'; + put '%if %mf_getattrn(___closeout1a,NLOBS)>0 %then'; + put '%put NOTE: dups on (&PK) in (&append_lib..&append_dsn);'; + put '/* is &NOW value within a tolerance? Should not allow renegade closeouts.. */'; + put '%local gap;'; + put '%let gap=0;'; + put 'data _null_;'; + put 'now=&now;'; + put 'gap=intck(''HOURS'',now,datetime());'; + put 'call symputx(''gap'',gap,''l'');'; + put 'run;'; + put '%mf_abort('; + put 'iftrue=(&gap > 24),'; + put 'msg=NOW variable (&now) is not within a 24hr tolerance'; + put ')'; + put '/* have any warnings / errs occurred thus far? If so, abort */'; + put '%mf_abort('; + put 'iftrue=(&syscc>0),'; + put 'msg=Aborted due to SYSCC=&SYSCC status'; + put ')'; + put '/**'; + put '* Create closeout statements. These are sent as individual SQL statements'; + put '* to ensure pass-through utilisation. The update_cnt variable monitors'; + put '* how many records were actually updated on the target table.'; + put '*/'; + put '%local update_cnt;'; + put '%let update_cnt=0;'; + put 'filename tmp temp;'; + put 'data _null_;'; + put 'set ___closeout1;'; + put 'file tmp;'; + put 'if _n_=1 then put ''proc sql noprint;'' ;'; + put 'length string $32767.;'; + put '%if &loadtype=UPDATE %then %do;'; + put 'put "delete from &base_lib..&base_dsn where 1";'; + put '%end;'; + put '%else %do;'; + put 'now=symget(''now'');'; + put 'put "update &base_lib..&base_dsn set &tech_to= " now @;'; + put '%if %mf_existvar(&base_lib..&base_dsn,PROCESSED_DTTM) %then %do;'; + put 'put " ,PROCESSED_DTTM=" now @;'; + put '%end;'; + put 'put " where " now " lt &tech_to ";'; + put '%end;'; + put '%do x=1 %to %sysfunc(countw(&PK));'; + put '%let var=%scan(&pk,&x,%str( ));'; + put '%if %mf_getvartype(&base_lib..&base_dsn,&var)=C %then %do;'; + put '/* use single quotes to avoid ampersand resolution in data */'; + put 'string=" & &var=''"!!trim(prxchange("s/''/''''/",-1,&var))!!"''";'; + put '%end;'; + put '%else %do;'; + put 'string=cats(" & &var=",&var);'; + put '%end;'; + put 'put string;'; + put '%end;'; + put 'put "&filter ;";'; + put 'put ''%let update_cnt=%eval(&update_cnt+&sqlobs);%put update_cnt=&update_cnt;'';'; + put 'run;'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;'; + put 'putlog _infile_;'; + put 'run;'; + put '%if &loadtarget ne YES %then %return;'; + put '/* ensure we have a lock */'; + put '%mp_lockanytable(LOCK,'; + put 'lib=&base_lib,ds=&base_dsn'; + put ',ref=bitemporal_closeouts'; + put ',ctl_ds=&mpelib..mpe_lockanytable'; + put ')'; + put 'options source2;'; + put '%inc tmp;'; + put 'filename tmp clear;'; + put '/**'; + put '* Update audit tracker'; + put '*/'; + put '%local newobs; %let newobs=%mf_getattrn(work.___closeout1,NLOBS);'; + put '%local user; %let user=%mf_getuser();'; + put 'proc sql;'; + put 'insert into &mpelib..mpe_dataloads'; + put 'set libref=%upcase("&base_lib")'; + put ',DSN=%upcase("&base_dsn")'; + put ',ETLSOURCE="&append_lib..&append_dsn contained &newobs records"'; + put ',LOADTYPE="CLOSEOUT"'; + put ',DELETED_RECORDS=&update_cnt'; + put ',NEW_RECORDS=0'; + put ',DURATION=%sysfunc(datetime())-&start'; + put ',USER_NM="&user"'; + put ',PROCESSED_DTTM=&now;'; + put 'quit;'; + put '%mend bitemporal_closeouts;'; + put '%macro mf_getschema(libref'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid vnum rc schema;'; + put '/* in case the parameter is a libref.tablename, pull off just the libref */'; + put '%let libref = %upcase(%scan(&libref, 1, %str(.)));'; + put '%let dsid=%sysfunc(open(sashelp.vlibnam(where=('; + put 'libname="%upcase(&libref)" and sysname=''Schema/Owner'''; + put ')),i));'; + put '%if (&dsid ^= 0) %then %do;'; + put '%let vnum=%sysfunc(varnum(&dsid,SYSVALUE));'; + put '%let rc=%sysfunc(fetch(&dsid));'; + put '%let schema=%sysfunc(getvarc(&dsid,&vnum));'; + put '%put &libref. schema is &schema.;'; + put '%let rc= %sysfunc(close(&dsid));'; + put '%end;'; + put '&schema'; + put '%mend mf_getschema;'; + put '/** @endcond */'; + put '%macro mf_getuniquename(prefix=MC);'; + put '&prefix.%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32-%length(&prefix))'; + put '%mend mf_getuniquename;'; + put '%macro mf_getvarlist(libds'; + put ',dlm=%str( )'; + put ',quote=no'; + put ',typefilter=A'; + put ')/*/STORE SOURCE*/;'; + put '/* declare local vars */'; + put '%local outvar dsid nvars x rc dlm q var vtype;'; + put '/* credit Rowland Hale - byte34 is double quote, 39 is single quote */'; + put '%if %upcase("e)=DOUBLE %then %let q=%qsysfunc(byte(34));'; + put '%else %if %upcase("e)=SINGLE %then %let q=%qsysfunc(byte(39));'; + put '/* open dataset in macro */'; + put '%let dsid=%sysfunc(open(&libds));'; + put '%if &dsid %then %do;'; + put '%let nvars=%sysfunc(attrn(&dsid,NVARS));'; + put '%if &nvars>0 %then %do;'; + put '/* add variables with supplied delimeter */'; + put '%do x=1 %to &nvars;'; + put '/* get variable type */'; + put '%let vtype=%sysfunc(vartype(&dsid,&x));'; + put '%if &vtype=&typefilter or &typefilter=A %then %do;'; + put '%let var=&q.%sysfunc(varname(&dsid,&x))&q.;'; + put '%if &var=&q&q %then %do;'; + put '%put &sysmacroname: Empty column found in &libds!;'; + put '%let var=&q. &q.;'; + put '%end;'; + put '%if %quote(&outvar)=%quote() %then %let outvar=&var;'; + put '%else %let outvar=&outvar.&dlm.&var.;'; + put '%end;'; + put '%end;'; + put '%end;'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: Unable to open &libds (rc=&dsid);'; + put '%put &sysmacroname: SYSMSG= %sysfunc(sysmsg());'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%do;%unquote(&outvar)%end;'; + put '%mend mf_getvarlist;'; + put '%macro mf_abort(mac=mf_abort.sas, msg=, iftrue=%str(1=1)'; + put ')/*/STORE SOURCE*/;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mf_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%abort;'; + put '%mend mf_abort;'; + put '/** @endcond */'; + put '%macro mf_verifymacvars('; + put 'verifyVars /* list of macro variable NAMES */'; + put ',makeUpcase=NO /* set to YES to make all the variable VALUES uppercase */'; + put ',mAbort=SOFT'; + put ')/*/STORE SOURCE*/;'; + put '%local verifyIterator verifyVar abortmsg;'; + put '%do verifyIterator=1 %to %sysfunc(countw(&verifyVars,%str( )));'; + put '%let verifyVar=%qscan(&verifyVars,&verifyIterator,%str( ));'; + put '%if not %symexist(&verifyvar) %then %do;'; + put '%let abortmsg= Variable &verifyVar is MISSING;'; + put '%goto exit_err;'; + put '%end;'; + put '%if %length(%trim(&&&verifyVar))=0 %then %do;'; + put '%let abortmsg= Variable &verifyVar is EMPTY;'; + put '%goto exit_err;'; + put '%end;'; + put '%if &makeupcase=YES %then %do;'; + put '%let &verifyVar=%upcase(&&&verifyvar);'; + put '%end;'; + put '%end;'; + put '%goto exit_success;'; + put '%exit_err:'; + put '%put &abortmsg;'; + put '%mf_abort(iftrue=(&mabort ne SOFT),'; + put 'mac=mf_verifymacvars,'; + put 'msg=%str(&abortmsg)'; + put ')'; + put '0'; + put '%return;'; + put '%exit_success:'; + put '1'; + put '%mend mf_verifymacvars;'; + put '%macro mf_wordsInStr1ButNotStr2('; + put 'Str1= /* string containing words to extract */'; + put ',Str2= /* used to compare with the extract string */'; + put ')/*/STORE SOURCE*/;'; + put '%local count_base count_extr i i2 extr_word base_word match outvar;'; + put '%if %length(&str1)=0 or %length(&str2)=0 %then %do;'; + put '%put base string (str1)= &str1;'; + put '%put compare string (str2) = &str2;'; + put '%return;'; + put '%end;'; + put '%let count_base=%sysfunc(countw(&Str2));'; + put '%let count_extr=%sysfunc(countw(&Str1));'; + put '%do i=1 %to &count_extr;'; + put '%let extr_word=%scan(&Str1,&i,%str( ));'; + put '%let match=0;'; + put '%do i2=1 %to &count_base;'; + put '%let base_word=%scan(&Str2,&i2,%str( ));'; + put '%if &extr_word=&base_word %then %let match=1;'; + put '%end;'; + put '%if &match=0 %then %let outvar=&outvar &extr_word;'; + put '%end;'; + put '&outvar'; + put '%mend mf_wordsInStr1ButNotStr2;'; + put '%macro mf_isblank(param'; + put ')/*/STORE SOURCE*/;'; + put '%sysevalf(%superq(param)=,boolean)'; + put '%mend mf_isblank;'; + put '%macro mp_dropmembers('; + put 'list /* space separated list of datasets / views */'; + put ',libref=WORK /* can only drop from a single library at a time */'; + put ',iftrue=%str(1=1)'; + put ')/*/STORE SOURCE*/;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%if %mf_isblank(&list) %then %do;'; + put '%put NOTE: nothing to drop!;'; + put '%return;'; + put '%end;'; + put 'proc datasets lib=&libref nolist;'; + put 'delete &list;'; + put 'delete &list /mtype=view;'; + put 'run;'; + put '%mend mp_dropmembers;'; + put '%macro mf_getquotedstr(IN_STR'; + put ',DLM=%str(,)'; + put ',QUOTE=S'; + put ',indlm=%str( )'; + put ')/*/STORE SOURCE*/;'; + put '/* credit Rowland Hale - byte34 is double quote, 39 is single quote */'; + put '%if "e=S %then %let quote=%qsysfunc(byte(39));'; + put '%else %if "e=D %then %let quote=%qsysfunc(byte(34));'; + put '%else %if "e=N %then %let quote=;'; + put '%local i item buffer;'; + put '%let i=1;'; + put '%do %while (%qscan(&IN_STR,&i,%str(&indlm)) ne %str() ) ;'; + put '%let item=%qscan(&IN_STR,&i,%str(&indlm));'; + put '%if %bquote("E) ne %then %let item="E%qtrim(&item)"E;'; + put '%else %let item=%qtrim(&item);'; + put '%if (&i = 1) %then %let buffer =%qtrim(&item);'; + put '%else %let buffer =&buffer&DLM%qtrim(&item);'; + put '%let i = %eval(&i+1);'; + put '%end;'; + put '%let buffer=%sysfunc(coalescec(%qtrim(&buffer),"E"E));'; + put '&buffer'; + put '%mend mf_getquotedstr;'; + put '%macro mf_nobs(libds'; + put ')/*/STORE SOURCE*/;'; + put '%mf_getattrn(&libds,NLOBS)'; + put '%mend mf_nobs;'; + put '%macro mp_retainedkey('; + put 'base_lib=WORK'; + put ',base_dsn=BASETABLE'; + put ',append_lib=WORK'; + put ',append_dsn=APPENDTABLE'; + put ',retained_key=DEFAULT_RK'; + put ',business_key= PK1 PK2'; + put ',check_uniqueness=NO'; + put ',maxkeytable=0'; + put ',locktable=0'; + put ',outds=WORK.APPEND'; + put ',filter_str='; + put ');'; + put '%put &sysmacroname entry vars:;'; + put '%put _local_;'; + put '%local base_libds app_libds key_field check maxkey idx_pk newkey_cnt iserr'; + put 'msg x tempds1 tempds2 comma_pk appnobs checknobs dropvar tempvar idx_val;'; + put '%let base_libds=%upcase(&base_lib..&base_dsn);'; + put '%let app_libds=%upcase(&append_lib..&append_dsn);'; + put '%let tempds1=%mf_getuniquename();'; + put '%let tempds2=%mf_getuniquename();'; + put '%let comma_pk=%mf_getquotedstr(in_str=%str(&business_key),dlm=%str(,),quote=);'; + put '%let outds=%sysfunc(ifc(%index(&outds,.)=0,work.&outds,&outds));'; + put '/* validation checks */'; + put '%let iserr=0;'; + put '%if &syscc>0 %then %do;'; + put '%let iserr=1;'; + put '%let msg=%str(SYSCC=&syscc on macro entry);'; + put '%end;'; + put '%else %if %sysfunc(exist(&base_libds))=0 %then %do;'; + put '%let iserr=1;'; + put '%let msg=%str(Base LIBDS (&base_libds) expected but NOT FOUND);'; + put '%end;'; + put '%else %if %sysfunc(exist(&app_libds))=0 %then %do;'; + put '%let iserr=1;'; + put '%let msg=%str(Append LIBDS (&app_libds) expected but NOT FOUND);'; + put '%end;'; + put '%else %if &maxkeytable ne 0 and %sysfunc(exist(&maxkeytable))=0 %then %do;'; + put '%let iserr=1;'; + put '%let msg=%str(Maxkeytable (&maxkeytable) expected but NOT FOUND);'; + put '%end;'; + put '%else %if &maxkeytable ne 0 and %sysfunc(exist(&locktable))=0 %then %do;'; + put '%let iserr=1;'; + put '%let msg=%str(Locktable (&locktable) expected but NOT FOUND);'; + put '%end;'; + put '%else %if %length(&business_key)=0 %then %do;'; + put '%let iserr=1;'; + put '%let msg=%str(Business key (&business_key) expected but NOT FOUND);'; + put '%end;'; + put '%do x=1 %to %sysfunc(countw(&business_key));'; + put '/* check business key values exist */'; + put '%let key_field=%scan(&business_key,&x,%str( ));'; + put '%if not %mf_existvar(&app_libds,&key_field) %then %do;'; + put '%let iserr=1;'; + put '%let msg=Business key (&key_field) not found on &app_libds!;'; + put '%goto err;'; + put '%end;'; + put '%else %if not %mf_existvar(&base_libds,&key_field) %then %do;'; + put '%let iserr=1;'; + put '%let msg=Business key (&key_field) not found on &base_libds!;'; + put '%goto err;'; + put '%end;'; + put '%end;'; + put '%err:'; + put '%if &iserr=1 %then %do;'; + put '/* err case so first perform an unlock of the base table before exiting */'; + put '%mp_lockanytable('; + put 'UNLOCK,lib=&base_lib,ds=&base_dsn,ref=%superq(msg),ctl_ds=&locktable'; + put ')'; + put '%end;'; + put '%mp_abort(iftrue=(&iserr=1),mac=mp_retainedkey,msg=%superq(msg))'; + put 'proc sql noprint;'; + put 'select sum(max(&retained_key),0) into: maxkey from &base_libds;'; + put '/**'; + put '* get base table RK and bus field values for lookup'; + put '*/'; + put 'proc sql noprint;'; + put 'create table &tempds1 as'; + put 'select distinct &comma_pk,&retained_key'; + put 'from &base_libds &filter_str'; + put 'order by &comma_pk,&retained_key;'; + put '%if &check_uniqueness=YES %then %do;'; + put 'select count(*) into:checknobs'; + put 'from (select distinct &comma_pk from &app_libds);'; + put 'select count(*) into: appnobs from &app_libds; /* might be view */'; + put '%if &checknobs ne &appnobs %then %do;'; + put '%let msg=Source table &app_libds is not unique on (&business_key);'; + put '%let iserr=1;'; + put '%end;'; + put '%end;'; + put '%if &iserr=1 %then %do;'; + put '/* err case so first perform an unlock of the base table before exiting */'; + put '%mp_lockanytable('; + put 'UNLOCK,lib=&base_lib,ds=&base_dsn,ref=%superq(msg),ctl_ds=&locktable'; + put ')'; + put '%end;'; + put '%mp_abort(iftrue= (&iserr=1),mac=mp_retainedkey,msg=%superq(msg))'; + put '%if %mf_existvar(&app_libds,&retained_key)'; + put '%then %let dropvar=(drop=&retained_key);'; + put '/* prepare interim table with retained key populated for matching keys */'; + put 'proc sql noprint;'; + put 'create table &tempds2 as'; + put 'select b.&retained_key, a.*'; + put 'from &app_libds &dropvar a'; + put 'left join &tempds1 b'; + put 'on 1'; + put '%do idx_pk=1 %to %sysfunc(countw(&business_key));'; + put '%let idx_val=%scan(&business_key,&idx_pk);'; + put 'and a.&idx_val=b.&idx_val'; + put '%end;'; + put 'order by &retained_key;'; + put '/* identify the number of entries without retained keys (new records) */'; + put 'select count(*) into: newkey_cnt'; + put 'from &tempds2'; + put 'where missing(&retained_key);'; + put 'quit;'; + put '/**'; + put '* Update maxkey table if link provided'; + put '*/'; + put '%if &maxkeytable ne 0 %then %do;'; + put 'proc sql noprint;'; + put 'select count(*) into: check from &maxkeytable'; + put 'where upcase(keytable)="&base_libds";'; + put '%mp_lockanytable(LOCK'; + put ',lib=%scan(&maxkeytable,1,.)'; + put ',ds=%scan(&maxkeytable,2,.)'; + put ',ref=Updating maxkeyvalues with mp_retainedkey'; + put ',ctl_ds=&locktable'; + put ')'; + put 'proc sql;'; + put '%if &check=0 %then %do;'; + put 'insert into &maxkeytable'; + put 'set keytable="&base_libds"'; + put ',keycolumn="&retained_key"'; + put ',max_key=%eval(&maxkey+&newkey_cnt)'; + put ',processed_dttm="%sysfunc(datetime(),%mf_fmtdttm())"dt;'; + put '%end;'; + put '%else %do;'; + put 'update &maxkeytable'; + put 'set max_key=%eval(&maxkey+&newkey_cnt)'; + put ',processed_dttm="%sysfunc(datetime(),%mf_fmtdttm())"dt'; + put 'where keytable="&base_libds";'; + put '%end;'; + put '%mp_lockanytable(UNLOCK'; + put ',lib=%scan(&maxkeytable,1,.)'; + put ',ds=%scan(&maxkeytable,2,.)'; + put ',ref=Updating maxkeyvalues with maxkey=%eval(&maxkey+&newkey_cnt)'; + put ',ctl_ds=&locktable'; + put ')'; + put '%end;'; + put '/* fill in the missing retained key values */'; + put '%let tempvar=%mf_getuniquename();'; + put 'data &outds(drop=&tempvar);'; + put 'retain &tempvar %eval(&maxkey+1);'; + put 'set &tempds2;'; + put 'if &retained_key =. then &retained_key=&tempvar;'; + put '&tempvar=&tempvar+1;'; + put 'run;'; + put '%mend mp_retainedkey;'; + put '/** @cond */'; + put '%macro mp_storediffs(libds'; + put ',origds'; + put ',key'; + put ',delds=0'; + put ',appds=0'; + put ',modds=0'; + put ',outds=work.mp_storediffs'; + put ',loadref=0'; + put ',processed_dttm=0'; + put ',mdebug=0'; + put ')/*/STORE SOURCE*/;'; + put '%local dbg;'; + put '%if &mdebug=1 %then %do;'; + put '%put &sysmacroname entry vars:;'; + put '%put _local_;'; + put '%end;'; + put '%else %let dbg=*;'; + put '/* set up unique and temporary vars */'; + put '%local ds1 ds2 ds3 ds4 hashkey inds_auto inds_keep dslist vlist;'; + put '%let ds1=%upcase(work.%mf_getuniquename(prefix=mpsd_ds1));'; + put '%let ds2=%upcase(work.%mf_getuniquename(prefix=mpsd_ds2));'; + put '%let ds3=%upcase(work.%mf_getuniquename(prefix=mpsd_ds3));'; + put '%let ds4=%upcase(work.%mf_getuniquename(prefix=mpsd_ds4));'; + put '%let hashkey=%upcase(%mf_getuniquename(prefix=mpsd_hashkey));'; + put '%let inds_auto=%upcase(%mf_getuniquename(prefix=mpsd_inds_auto));'; + put '%let inds_keep=%upcase(%mf_getuniquename(prefix=mpsd_inds_keep));'; + put '%let dslist=&origds;'; + put '%if &delds ne 0 %then %do;'; + put '%let delds=%upcase(&delds);'; + put '%if %scan(&delds,-1,.)=&delds %then %let delds=WORK.&delds;'; + put '%let dslist=&dslist &delds;'; + put '%end;'; + put '%if &appds ne 0 %then %do;'; + put '%let appds=%upcase(&appds);'; + put '%if %scan(&appds,-1,.)=&appds %then %let appds=WORK.&appds;'; + put '%let dslist=&dslist &appds;'; + put '%end;'; + put '%if &modds ne 0 %then %do;'; + put '%let modds=%upcase(&modds);'; + put '%if %scan(&modds,-1,.)=&modds %then %let modds=WORK.&modds;'; + put '%let dslist=&dslist &modds;'; + put '%end;'; + put '%let origds=%upcase(&origds);'; + put '%if %scan(&origds,-1,.)=&origds %then %let origds=WORK.&origds;'; + put '%let key=%upcase(&key);'; + put '/* hash the key and append all the tables (marking the source) */'; + put 'data &ds1;'; + put 'set &dslist indsname=&inds_auto;'; + put '&hashkey=put(md5(catx(''|'',%mf_getquotedstr(&key,quote=N))),$hex32.);'; + put '&inds_keep=upcase(&inds_auto);'; + put 'proc sort;'; + put 'by &inds_keep &hashkey;'; + put 'run;'; + put '/* transpose numeric & char vars */'; + put 'proc transpose data=&ds1'; + put 'out=&ds2(rename=(&hashkey=key_hash _name_=tgtvar_nm col1=newval_num));'; + put 'by &inds_keep &hashkey;'; + put 'var _numeric_;'; + put 'run;'; + put 'proc transpose data=&ds1'; + put 'out=&ds3('; + put 'rename=(&hashkey=key_hash _name_=tgtvar_nm col1=newval_char)'; + put 'where=(tgtvar_nm not in ("&hashkey","&inds_keep"))'; + put ');'; + put 'by &inds_keep &hashkey;'; + put 'var _character_;'; + put 'run;'; + put '%if %index(&libds,-)>0 and %scan(&libds,2,-)=FC %then %do;'; + put '/* this is a format catalog - cannot query cols directly */'; + put '%let vlist="FMTNAME","START","END","LABEL","MIN","MAX","DEFAULT","LENGTH"'; + put ',"FUZZ","PREFIX","MULT","FILL","NOEDIT","TYPE","SEXCL","EEXCL","HLO"'; + put ',"DECSEP","DIG3SEP","DATATYPE","LANGUAGE";'; + put '%end;'; + put '%else %let vlist=%mf_getvarlist(&libds,dlm=%str(,),quote=DOUBLE);'; + put 'data &ds4;'; + put 'length &inds_keep $41 tgtvar_nm $32 _label_ $256;'; + put 'if _n_=1 then call missing(_label_);'; + put 'drop _label_;'; + put 'set &ds2 &ds3 indsname=&inds_auto;'; + put 'tgtvar_nm=upcase(tgtvar_nm);'; + put 'if tgtvar_nm in (%upcase(&vlist));'; + put 'if upcase(&inds_auto)="&ds2" then tgtvar_type=''N'';'; + put 'else if upcase(&inds_auto)="&ds3" then tgtvar_type=''C'';'; + put 'else do;'; + put 'putlog "%str(ERR)OR: unidentified vartype input!" &inds_auto;'; + put 'call symputx(''syscc'',98);'; + put 'end;'; + put 'if &inds_keep="&appds" then move_type=''A'';'; + put 'else if &inds_keep="&delds" then move_type=''D'';'; + put 'else if &inds_keep="&modds" then move_type=''M'';'; + put 'else if &inds_keep="&origds" then move_type=''O'';'; + put 'else do;'; + put 'putlog "%str(ERR)OR: unidentified movetype input!" &inds_keep;'; + put 'call symputx(''syscc'',99);'; + put 'end;'; + put 'tgtvar_nm=upcase(tgtvar_nm);'; + put 'if tgtvar_nm in (%mf_getquotedstr(&key)) then is_pk=1;'; + put 'else is_pk=0;'; + put 'drop &inds_keep;'; + put 'run;'; + put '%if "&loadref"="0" %then %let loadref=%sysfunc(uuidgen());'; + put '%if &processed_dttm=0 %then %let processed_dttm=%sysfunc(datetime());'; + put '%let libds=%upcase(&libds);'; + put '/* join orig vals for modified & deleted */'; + put 'proc sql;'; + put 'create table &outds as'; + put 'select "&loadref" as load_ref length=36'; + put ',&processed_dttm as processed_dttm format=E8601DT26.6'; + put ',"%scan(&libds,1,.)" as libref length=8'; + put ',"%scan(&libds,2,.)" as dsn length=32'; + put ',b.key_hash length=32'; + put ',b.move_type length=1'; + put ',b.tgtvar_nm length=32'; + put ',b.is_pk'; + put ',case when b.move_type ne ''M'' then -1'; + put 'when a.newval_num=b.newval_num and a.newval_char=b.newval_char then 0'; + put 'else 1'; + put 'end as is_diff'; + put ',b.tgtvar_type length=1'; + put ',case when b.move_type=''D'' then b.newval_num'; + put 'else a.newval_num'; + put 'end as oldval_num format=best32.'; + put ',case when b.move_type=''D'' then .'; + put 'else b.newval_num'; + put 'end as newval_num format=best32.'; + put ',case when b.move_type=''D'' then b.newval_char'; + put 'else a.newval_char'; + put 'end as oldval_char length=32765'; + put ',case when b.move_type=''D'' then '''''; + put 'else b.newval_char'; + put 'end as newval_char length=32765'; + put 'from &ds4(where=(move_type=''O'')) as a'; + put 'right join &ds4(where=(move_type ne ''O'')) as b'; + put 'on a.tgtvar_nm=b.tgtvar_nm'; + put 'and a.key_hash=b.key_hash'; + put 'order by move_type, key_hash,is_pk desc, tgtvar_nm;'; + put '%if &mdebug=0 %then %do;'; + put 'proc sql;'; + put 'drop table &ds1, &ds2, &ds3, &ds4;'; + put '%end;'; + put '%mend mp_storediffs;'; + put '/** @endcond */'; + put '%macro bitemporal_dataloader('; + put 'bus_from= /* Business FROM datetime variable. Req''d on'; + put 'STAGING & BASE tables.*/'; + put ',bus_to = /* Business TO datetime variable. Req''d on'; + put 'STAGING & BASE tables. */'; + put ',bus_from_override= /* Provide a hard coded BUS_FROM datetime value.*/'; + put ',bus_to_override= /* provide a hard coded BUS_TO datetime value */'; + put ',tech_from= /* Technical FROM datetime variable. Req''d on'; + put 'BASE table only. */'; + put ',tech_to = /* Technical TO datetime variable. Req''d on BASE'; + put 'table only. */'; + put ',processed= 0'; + put ',base_lib=WORK /* Libref of the BASE table. */'; + put ',base_dsn=BASETABLE /* Name of BASE table. */'; + put ',append_lib=WORK /* Libref of the STAGING table. */'; + put ',append_dsn=APPENDTABLE'; + put ',high_date=''01JAN5999:00:00:00''dt /* High date to close out records */'; + put ',PK= name sex'; + put ',RK_UNDERLYING='; + put ',KEEPVARS= /* Provides option for removing unwanted vars from append table */'; + put ',RK_UPDATE_MAXKEYTABLE=NO /* If switching (or mix matching) with regular'; + put 'SCD2 loader then set this switch to YES to'; + put 'ensure the MAXKEYTABLE is updated with the'; + put 'current maximum RK value for the target table'; + put '*/'; + put ',CHECK_UNIQUENESS=YES /* Perform a check of the APPEND table to ensure it is'; + put 'unique on its business key */'; + put ',ETLSOURCE=demo /* supply a value ($50.) to show as ETLSOURCE in'; + put '&dclib..DATALOADS */'; + put ',LOADTYPE=BITEMPORAL'; + put ',RK_MAXKEYTABLE= mpe_maxkeyvalues'; + put ',LOG=1 /* Switch to 0 to prevent records being added to'; + put '&mpelib..mpe_DATALOADS (ie when testing)*/'; + put ',DELETE_COL= _____DELETE__THIS__RECORD_____'; + put '/* If this variable is found in the append dataset'; + put 'then records are closed out (or deleted) in the'; + put 'append table where that variable= "Yes" */'; + put ',LOADTARGET=YES /* set to anything but uppercase YES to switch off'; + put 'target table load and generate temp tables only */'; + put ',CLOSE_VARS='; + put '/*a problem with regular SCD2 or TXTEMPORAL loads is that there is'; + put 'no facility to close out removed records (all records are'; + put 'assumed new or changed). But how does one determine which'; + put 'records are removed? Short of loading the entire table'; + put 'each time? This parameter allows a set of variables'; + put '(this should be a subset of the PK) to be declared, and'; + put 'the macro will determine which records in the base table'; + put 'need to be closed out ahead of the load.'; + put 'For instance, given the following:'; + put 'Base Table Staging Table'; + put 'DATE ENTITY AMOUNT DATE ENTITY AMOUNT'; + put 'JAN ACME4 66 JAN ACME4 66'; + put 'FEB ACME4 99 FEB ACME4 99'; + put 'FEB ACME1 22'; + put 'By supplying DATE in CLOSE_VARS and DATE ENTITY as the PK,'; + put 'the "FEB PAG 22" record would get closed out.'; + put '*/'; + put ',config_table=&dclib..MPE_CONFIG'; + put ',dclib=&dc_libref'; + put ',outds_del=work.outds_del'; + put ',outds_add=work.outds_add'; + put ',outds_mod=work.outds_mod'; + put ',outds_audit=0'; + put ');'; + put '/* when changing this macro, update the version num here */'; + put '%local ver;'; + put '%let ver=32;'; + put '%put &sysmacroname entry vars:;'; + put '%put _local_;'; + put '%dc_assignlib(WRITE,&base_lib) /* may not already be assigned */'; + put '/* return straight away if nothing to load */'; + put '%let nobs= %mf_getattrn(&append_lib..&append_dsn,NLOBS);'; + put '%if &nobs=-1 %then %do;'; + put 'proc sql noprint; select count(*) into: nobs from &append_lib..&append_dsn;'; + put '%end;'; + put '%if &nobs=0 %then %do;'; + put '%put NOTE:; %put NOTE-;%put NOTE-;%put NOTE-;'; + put '%put NOTE- Base dataset &append_lib..&append_dsn is empty. Nothing to upload!;'; + put '%put NOTE-;%put NOTE-;%put NOTE-;'; + put '%return;'; + put '%end;'; + put '/* hard exit if err condition exists */'; + put '%mp_abort(iftrue= (&syscc > 0)'; + put ',mac=bitemporal_dataloader'; + put ',msg=%str(Bitemporal transform / job aborted due to SYSCC=&SYSCC status;)'; + put ')'; + put '%local engine_type;'; + put '%let engine_type=%mf_getengine(&base_lib);'; + put '%if (&engine_type=REDSHIFT or &engine_type=POSTGRES) and %length(&CLOSE_VARS)>0'; + put '%then %do;'; + put '%put NOTE:; %put NOTE-;%put NOTE-;%put NOTE-;'; + put '%put NOTE- CLOSE_VARS functionality not yet supported in &engine_type;'; + put '%put NOTE-;%put NOTE-;%put NOTE-;'; + put '%return;'; + put '%end;'; + put '/**'; + put '* The metadata functions (eg mf_existvar) will fail if the base table has a'; + put '* SAS lock. So, make a snapshot of the base table for further use.'; + put '* Also, make output tables (regardless).'; + put '*/'; + put '%local basecopy;'; + put '%let basecopy=%mf_getuniquename(prefix=basecopy);'; + put 'data &basecopy &outds_mod &outds_add &outds_del;'; + put 'set &base_lib..&base_dsn;'; + put 'stop;'; + put 'run;'; + put '%mp_abort(iftrue= (&syscc > 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after base table copy - aborting due to table lock)'; + put ')'; + put '%local cols idx_pk md5_col ;'; + put '%let md5_col=___TMP___md5;'; + put '%let check_uniqueness=%upcase(&check_uniqueness);'; + put '%let RK_UPDATE_MAXKEYTABLE=%upcase(&RK_UPDATE_MAXKEYTABLE);'; + put '%let high_date=%unquote(&high_date);'; + put '%let loadtype=%upcase(&loadtype);'; + put '/* ensure irrelevant variables are cleared */'; + put '%if &loadtype=BUSTEMPORAL %then %do;'; + put '%let tech_from=;'; + put '%let tech_to=;'; + put '%end;'; + put '%else %if &loadtype=TXTEMPORAL or &loadtype=UPDATE %then %do;'; + put '%let bus_from=;'; + put '%let bus_to=;'; + put '%end;'; + put '/* ensure relevant variables are supplied */'; + put '%mp_abort(iftrue=(&loadtype=BITEMPORAL & %mf_verifymacvars(bus_from bus_to)=0)'; + put ',mac=bitemporal_dataloader'; + put ',msg=%str(Missing BUS_FROM / BUS_TO)'; + put ')'; + put '%mp_abort(iftrue=(&loadtype=TXTEMPORAL & %mf_verifymacvars(tech_from tech_to)=0)'; + put ',mac=bitemporal_dataloader'; + put ',msg=%str(Missing TECH_FROM / TECH_TO)'; + put ')'; + put '/**'; + put '* drop any tables (may be defined as views or vice versa preventing overwrite)'; + put '*/'; + put '%mp_dropmembers(append bitemp0_append bitemp_cols)'; + put '/* SQL Server requires its own time values */'; + put '/* 9.2 will only give picture format down to seconds. 9.3 allows'; + put 'milliseconds by using lower S and defining the decimal in the format name..*/'; + put 'PROC FORMAT;'; + put 'picture MyMSdt other=''%0Y-%0m-%0dT%0H:%0M:%0S'' (datatype=datetime);'; + put 'RUN;'; + put '%local dbnow;'; + put '%let dbnow="%sysfunc(datetime(),%mf_fmtdttm())"dt;'; + put 'data _null_;'; + put '/* convert space separated macvar to comma separated for SQL processing */'; + put 'call symputx(''PK_COMMA'',tranwrd(compbl("&pk"),'' '','',''),''L'');'; + put 'call symputx(''PK_CNT'',countw("&pk",'' ''),''L'');'; + put 'now=&dbnow;'; + put 'call symputx(''NOW'',now,''L'');'; + put 'call symputx(''SQLNOW'',cats("''",put(now,MyMSdt.),"''"),''L'');'; + put 'length etlsource $100;'; + put 'etlsource=subpad(symget(''etlsource''),1,100);'; + put 'call symputx(''etlsource'',etlsource,''l'');'; + put 'run;'; + put '/**'; + put '* Even if no PROCESSED var provided, assume that any variable named'; + put '* PROCESSED_DTTM should be updated'; + put '*/'; + put '%if &processed=0 %then %do;'; + put '%if %mf_existvar(&basecopy,PROCESSED_DTTM)'; + put '%then %let processed=PROCESSED_DTTM;'; + put '%else %let processed=;'; + put '%end;'; + put '/* extract colnames for md5 creation / change tracking */'; + put 'proc contents noprint data=&base_lib..&base_dsn'; + put 'out=work.bitemp_cols (keep=name type length varnum format:);'; + put 'run;'; + put 'proc sql noprint;'; + put 'select name into: cols separated by '','''; + put 'from work.bitemp_cols'; + put 'where upcase(name) not in'; + put '(%upcase("&bus_from","&bus_to"'; + put ',"&tech_from","&tech_to"'; + put ',"&processed","&delete_col")) ;'; + put 'select case when type in (2,6) then cats(''put(md5(trim('',name,'')),$hex32.)'')'; + put '/* multiply by 1 to strip precision errors (eg 0 != 0) */'; + put '/* but ONLY if not missing, else will lose any special missing values */'; + put 'else cats(''put(md5(trim(put(ifn(missing('''; + put ',name,''),'',name,'','',name,''*1),binary64.))),$hex32.)'') end'; + put 'into: stripcols separated by ''||'''; + put 'from work.bitemp_cols'; + put 'where upcase(name) not in'; + put '(%upcase("&bus_from","&bus_to"'; + put ',"&tech_from","&tech_to"'; + put ',"&processed","&delete_col")) ;'; + put '/* set default formats*/'; + put '%let bus_from_fmt = datetime19.;'; + put '%let bus_to_fmt = datetime19.;'; + put '%let processed_fmt = datetime19.;'; + put '%let tech_from_fmt = format=datetime19.;'; + put '%let tech_to_fmt = format=datetime19.;'; + put '%put &=stripcols;'; + put '%put &=pk;'; + put 'data _null_;'; + put 'set work.bitemp_cols;'; + put 'if type=2 or type=6 then do;'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'if format='''' then fmt=cats(length,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put 'if upcase(name)="%upcase(&bus_from)" then'; + put 'call symputx(''bus_from_fmt'',fmt,''L'');'; + put 'else if upcase(name)="%upcase(&bus_to)" then'; + put 'call symputx(''bus_to_fmt'',fmt,''L'');'; + put 'else if upcase(name)="%upcase(&tech_from)" then'; + put 'call symputx(''tech_from_fmt'',"format="!!fmt,''L'');'; + put 'else if upcase(name)="%upcase(&tech_to)" then'; + put 'call symputx(''tech_to_fmt'',"format="!!fmt,''L'');'; + put 'else if upcase(name)="%upcase(&processed)" then'; + put 'call symputx(''processed_fmt'',fmt,''L'');'; + put 'run;'; + put '%if %index(%quote(&cols),___TMP___) %then %do;'; + put '%let msg=%str(Table contains a variable name containing "___TMP___".%trim('; + put ') This may conflict with temp variable generation!!);'; + put '%mp_abort(msg=&msg,mac=bitemporal_dataloader);'; + put '%let syscc=5;'; + put '%return;'; + put '%end;'; + put '/* if transaction dates appear on the APPEND table, need to remove them */'; + put '%local drop_tx_dates /* used in append table */'; + put 'drop_tx_dates_noobs /* used to take the base table structure */;'; + put '%if %mf_existvar(&append_lib..&append_dsn, &tech_from)'; + put '%then %let drop_tx_dates=&tech_from;'; + put '%if %mf_existvar(&append_lib..&append_dsn, &tech_to)'; + put '%then %let drop_tx_dates=&drop_tx_dates &tech_to;'; + put '%if %length(%trim(&drop_tx_dates))>0'; + put '%then %let drop_tx_dates=(drop=&drop_tx_dates);'; + put '%if %mf_existvar(&basecopy, &tech_from)'; + put '%then %let drop_tx_dates_noobs=&tech_from;'; + put '%if %mf_existvar(&basecopy, &tech_to)'; + put '%then %let drop_tx_dates_noobs=&drop_tx_dates_noobs &tech_to;'; + put '%if %length(%trim(&drop_tx_dates_noobs))>0'; + put '%then %let drop_tx_dates_noobs=(drop=&drop_tx_dates_noobs obs=0);'; + put '%else %let drop_tx_dates_noobs=(obs=0);'; + put '/**'; + put '* Lock the table. This is necessary as we are doing a two part update (first'; + put '* closing records then appending new records). It is theoretically possible'; + put '* that an upload may occur whilst preparing the staging tables. And the'; + put '* staging tables are about to be prepared..'; + put '*/'; + put '%if &LOADTARGET = YES %then %do;'; + put '%mp_lockanytable(LOCK,'; + put 'lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE,ctl_ds=&dclib..mpe_lockanytable'; + put ')'; + put '%end;'; + put '%else %do;'; + put '/* not an actual load, so avoid updating the max key table in next step. */'; + put '%let rk_update_maxkeytable=NO;'; + put '%end;'; + put '%if %length(&RK_UNDERLYING)>0 %then %do;'; + put '%mp_retainedkey('; + put 'base_lib=&base_lib'; + put ',base_dsn=&base_dsn'; + put ',append_lib=&append_lib'; + put ',append_dsn=&append_dsn'; + put ',retained_key=&pk'; + put ',business_key=&rk_underlying'; + put ',check_uniqueness=&CHECK_UNIQUENESS'; + put ',outds=work.append'; + put '%if &rk_update_maxkeytable=NO %then %do;'; + put ',maxkeytable=0'; + put '%end;'; + put '%else %do;'; + put ',maxkeytable=&dclib..&RK_MAXKEYTABLE'; + put '%end;'; + put ',locktable=&dclib..mpe_lockanytable'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then %do;'; + put ',filter_str=%str( (where=( &now < &tech_to)) )'; + put '%end;'; + put ')'; + put '%end;'; + put '%else %do;'; + put 'proc sql;'; + put 'create view work.append as select * from &append_lib..&append_dsn;'; + put '%end;'; + put '/**'; + put '* generate md5 for append table'; + put '*/'; + put '/* it is possible the source dataset has additional (unwanted) columns.'; + put 'Drop if specified; */'; + put '%if %length(&keepvars)>0 %then %do;'; + put '/* remove tech dates from keepvars as they are generated later */'; + put '%let keepvars=%sysfunc(tranwrd(%str( &keepvars ),%str( &tech_from ),%str( )));'; + put '%let keepvars=%sysfunc(tranwrd(%str( &keepvars ),%str( &tech_to ),%str( )));'; + put '%let keepvars=(keep=&keepvars &bus_from &bus_to &processed &md5_col);'; + put '%end;'; + put '/* CAS varchar types cause append issues here, so perform autoconvert'; + put 'by creating empty local table first */'; + put 'data;'; + put 'set &base_lib..&base_dsn &drop_tx_dates_noobs;'; + put 'run;'; + put '%local emptybasetable; %let emptybasetable=&syslast;'; + put 'data work.bitemp0_append &keepvars &outds_del(drop=&md5_col )'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put '/nonote2err'; + put '%end;'; + put ';'; + put '/* apply formats for bitemporal vars but not tx dates which are added later */'; + put '%if %length(&keepvars)>0 and &loadtype=BITEMPORAL %then %do;'; + put 'format &bus_from &bus_from_fmt;'; + put 'format &bus_to &bus_to_fmt;'; + put '%end;'; + put 'set &emptybasetable /* base table reqd in case append has fewer cols */'; + put 'work.append &drop_tx_dates;'; + put '%if %length(%str(&bus_from_override))>0 %then %do;'; + put '&bus_from= %unquote(&bus_from_override) ;'; + put '%end;'; + put '%if %length(%str(&bus_to_override))>0 %then %do;'; + put '&bus_to= %unquote(&bus_to_override) ;'; + put '%end;'; + put 'length &md5_col $32;'; + put '&md5_col=put(md5(&stripcols),hex32.);'; + put '%if %length(&processed)>0 %then %do;'; + put 'format &processed &processed_fmt;'; + put '&processed=&now;'; + put '%end;'; + put '/**'; + put '* If a delete column exists then create the delete dataset'; + put '*/'; + put '%if %mf_existvar(&append_lib..&append_dsn, &delete_col) %then %do;'; + put 'drop &delete_col;'; + put 'if upcase(&delete_col) = "YES" then output &outds_del ;'; + put 'else output work.bitemp0_append ;'; + put 'run;'; + put '%if %mf_getattrn(&outds_del,NLOBS)>0 %then %do;'; + put '%bitemporal_closeouts('; + put 'tech_from=&tech_from'; + put ',tech_to = &tech_to'; + put ',base_lib=&base_lib'; + put ',base_dsn=&base_dsn'; + put ',append_lib=work'; + put ',append_dsn=%scan(&outds_del,-1,.)'; + put ',PK=&bus_from &pk'; + put ',NOW=&dbnow'; + put ',loadtarget=&loadtarget'; + put ',loadtype=&loadtype'; + put ')'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put 'output work.bitemp0_append;'; + put 'run;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc gt 0 at line 494)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc)'; + put ')'; + put '%if %length(&close_vars)>0 %then %do;'; + put '/**'; + put '* need to close out records that are not provided'; + put '*/'; + put 'proc sql;'; + put 'create table bitemp1_closevars1 as'; + put 'select distinct a.%mf_getquotedstr(in_str=&pk,dlm=%str(,a.),quote=)'; + put 'from &base_lib..&base_dsn a'; + put 'inner join work.bitemp0_append b'; + put 'on 1=1'; + put '/* join on closevars key */'; + put '%do idx_pk=1 %to %sysfunc(countw(&close_vars));'; + put '%let idx_val=%scan(&close_vars,&idx_pk);'; + put 'and a.&idx_val=b.&idx_val'; + put '%end;'; + put '/* filter base on tech dates if necessary */'; + put '%if &loadtype=TXTEMPORAL %then %do;'; + put 'where a.&tech_from <=&now and &now < a.&tech_to'; + put '%end;'; + put ';'; + put 'create table bitemp1_closevars2 as'; + put 'select distinct a.*'; + put 'from bitemp1_closevars1 a'; + put 'left join work.bitemp0_append b'; + put 'on 1=1'; + put '/* join on primary key */'; + put '%do idx_pk=1 %to %sysfunc(countw(&pk));'; + put '%let idx_val=%scan(&pk,&idx_pk);'; + put 'and a.&idx_val=b.&idx_val'; + put '%end;'; + put '/* identify removed records by null value in a field in PK but not close_vars'; + put '*/'; + put 'where b.%scan('; + put '%mf_wordsInStr1ButNotStr2(Str1=&pk,Str2=&close_vars),1,%str( )'; + put ') IS NULL'; + put ';'; + put '%if %mf_getattrn(bitemp1_closevars2,NLOBS)>0 %then %do;'; + put '%bitemporal_closeouts('; + put 'tech_from=&tech_from'; + put ',tech_to = &tech_to'; + put ',base_lib=&base_lib'; + put ',base_dsn=&base_dsn'; + put ',append_lib=work'; + put ',append_dsn=bitemp1_closevars2'; + put ',PK=&bus_from &pk'; + put ',NOW=&dbnow'; + put ',loadtarget=&loadtarget'; + put ',loadtype=&loadtype'; + put ')'; + put '%end;'; + put '%end;'; + put '/* return if nothing to load (was just deletes) */'; + put '%if %mf_getattrn(work.bitemp0_append,NLOBS)=0 %then %do;'; + put '%put NOTE:; %put NOTE-;%put NOTE-;%put NOTE-;'; + put '%put NOTE- No updates - just deletes!;'; + put '%put NOTE-;%put NOTE-;%put NOTE-;'; + put '%mp_lockanytable(UNLOCK,'; + put 'lib=&base_lib,ds=&base_dsn,'; + put 'ref=&ETLSOURCE,'; + put 'ctl_ds=&dclib..mpe_lockanytable'; + put ')'; + put '%if %mf_getattrn(&outds_del,NLOBS)>0 %then %do;'; + put '%let user=%mf_getUser();'; + put '/* no emails yet'; + put '%sumo_alerts(ALERT_EVENT=UPDATE'; + put ', ALERT_TARGET=&base_lib..&base_dsn'; + put ', from_user= &user);*/'; + put '%end;'; + put '%return;'; + put '%end;'; + put '/**'; + put '* If applying manual overrides to business dates, then the input table MUST'; + put '* be unique on the PK. Check, and if not - abort.'; + put '*/'; + put '%local msg;'; + put '%if %length(&bus_from_override.&bus_to_override)>0 or &CHECK_UNIQUENESS=YES'; + put '%then %do;'; + put 'proc sort data=work.bitemp0_append out=work.bitemp0_check nodupkey;'; + put 'by &pk;'; + put 'run;'; + put '%if %mf_getattrn(work.bitemp0_check,NLOBS)'; + put 'ne %mf_getattrn(work.bitemp0_append,NLOBS)'; + put '%then %do;'; + put '%let msg=INPUT table &append_lib..&append_dsn is not unique on PK (&pk);'; + put '%mp_lockanytable(UNLOCK,lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE (&msg),'; + put 'ctl_ds=&dclib..mpe_lockanytable'; + put ')'; + put '%mp_abort(msg=&msg,mac=bitemporal_dataloader.sas);'; + put '%end;'; + put '%end;'; + put '/**'; + put '* extract from BASE table. Only want matching records, as could be very BIG.'; + put '* New records are subsequently identified via left join and test for nulls.'; + put '*/'; + put '%local temp_table temp_table2 base_table baselib_schema;'; + put '%put DCNOTE: Extracting matching observations from &base_lib..&base_dsn;'; + put '%if &engine_type=OLEDB %then %do;'; + put '%let temp_table=##BITEMP_&base_dsn;'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then'; + put '%let base_table=(select * from [dbo].&base_dsn'; + put 'where convert(datetime,&SQLNOW) < &tech_to );'; + put '%else %let base_table=[dbo].&base_dsn;'; + put 'proc sql;'; + put 'create table &base_lib.."&temp_table"n as'; + put 'select * from work.bitemp0_append;'; + put '/* open up a connection for pass through SQL */'; + put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; + put 'create table work.bitemp0_base as select * from connection to myAlias('; + put '%end;'; + put '%else %if &engine_type=REDSHIFT or &engine_type=POSTGRES %then %do;'; + put '/* grab schema */'; + put '%let baselib_schema=%mf_getschema(&base_lib);'; + put '%if &baselib_schema.X ne X %then %let baselib_schema=&baselib_schema..;'; + put '/* grab redshift config */'; + put '%local redcnt; %let redcnt=0;'; + put '%if &engine_type=REDSHIFT %then %do;'; + put 'data _null_;'; + put 'set &config_table(where=(var_scope=''DCBL_REDSH'' and var_active=1));'; + put 'x+1;'; + put 'call symputx(cats(''rednm'',x),var_value,''l'');'; + put 'call symputx(cats(''redval'',x),var_value,''l'');'; + put 'call symputx(''redcnt'',x,''l'');'; + put 'run;'; + put '%end;'; + put '/* cannot persist temp tables so must create a temporary permanent table */'; + put '%let temp_table=%mf_getuniquename(prefix=XDCTEMP);'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then'; + put '%let base_table=(select * from &baselib_schema.&base_dsn'; + put 'where timestamp &sqlnow < &tech_to );'; + put '%else %let base_table=&baselib_schema.&base_dsn;'; + put '/* make empty table first - must clone & drop extra cols as autoload is bad */'; + put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; + put 'exec (create table &temp_table (like &baselib_schema.&base_dsn)) by myAlias;'; + put '%if &engine_type=REDSHIFT %then %do;'; + put 'exec (alter table &temp_table alter sortkey none) by myAlias;'; + put '%end;'; + put '%local dropcols;'; + put '%let dropcols=%mf_wordsinstr1butnotstr2('; + put 'str1=%upcase(%mf_getvarlist(&basecopy))'; + put ',str2=%upcase(&pk)'; + put ');'; + put '%if %length(&dropcols>0) %then %do idx_pk=1 %to %sysfunc(countw(&dropcols));'; + put '%put &=dropcols;'; + put '%let idx_val=%scan(&dropcols,&idx_pk);'; + put 'exec(alter table &temp_table drop column &idx_val;) by myAlias;'; + put '%end;'; + put 'exec (alter table &temp_table add column &md5_col varchar(32);) by myAlias;'; + put '/* create view to strip formats and avoid warns in log */'; + put 'data work.vw_bitemp0/view=work.vw_bitemp0;'; + put 'set work.bitemp0_append(keep=&pk &md5_col);'; + put 'format _all_;'; + put 'run;'; + put 'proc append base=&base_lib..&temp_table'; + put '%if &engine_type=REDSHIFT %then %do;'; + put '('; + put '%do idx_pk=1 %to &redcnt;'; + put '&&rednm&idx_pk = &&redval&idxpk'; + put '%end;'; + put ')'; + put '%end;'; + put 'data=work.vw_bitemp0 force nowarn;'; + put 'run;'; + put '/* open up a connection for pass through SQL */'; + put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; + put 'create table work.bitemp0_base as select * from connection to myAlias('; + put '%end;'; + put '%else %if &engine_type=CAS %then %do;'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then'; + put '%let base_table=&base_lib..&base_dsn'; + put '(where=(&tech_from <=&now and &now < &tech_to));'; + put '%else %let base_table=&base_lib..&base_dsn;'; + put '%let temp_table=CASUSER.%mf_getuniquename(prefix=DC);'; + put 'data &temp_table;'; + put 'set work.bitemp0_append;'; + put 'run;'; + put '%let bitemp0base=CASUSER.%mf_getuniquename(prefix=DC);'; + put 'proc fedsql sessref=dcsession;'; + put 'create table &bitemp0base{options replace=true} as'; + put '%end;'; + put '%else %do;'; + put '%let temp_table=work.bitemp0_append;'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then'; + put '%let base_table=&base_lib..&base_dsn'; + put '(where=(&tech_from <=&now and &now < &tech_to));'; + put '%else %let base_table=&base_lib..&base_dsn;'; + put 'proc sql;'; + put 'create table work.bitemp0_base as'; + put '%end;'; + put 'select a.&md5_col /* this identifies NEW records */'; + put ', b.*'; + put '/* assume first PK field cannot be null (if defined in a PK constraint then'; + put 'it definitely cannot be null) */'; + put ', case when b.%scan(&pk,1) IS NULL then 1 else 0 end as ___TMP___NEW_FLG'; + put 'from &baselib_schema.&temp_table a'; + put 'left join &base_table b'; + put 'on 1=1'; + put '%do idx_pk=1 %to &pk_cnt;'; + put '%let idx_val=%scan(&pk,&idx_pk);'; + put 'and a.&idx_val=b.&idx_val'; + put '%end;'; + put '%if &engine_type=OLEDB or &engine_type=REDSHIFT or &engine_type=POSTGRES'; + put '%then %do;'; + put '); proc sql; drop table &base_lib.."&temp_table"n;'; + put '%end;'; + put '%else %if &engine_type=CAS %then %do;'; + put ';'; + put 'quit;'; + put 'data work.bitemp0_base;'; + put 'set &bitemp0base;'; + put 'run;'; + put 'proc sql;'; + put 'drop table &temp_table;'; + put 'drop table &bitemp0base;'; + put '%end;'; + put '%else %do;'; + put ';'; + put '%end;'; + put '/**'; + put '* matching & changed records are those without NULL key values'; + put '* &idx_val resolves to rightmost PK value (loop above)'; + put '*/'; + put '%put syscc (line525)=&syscc, sqlrc=&sqlrc;'; + put '%mp_abort(iftrue= (&syscc gt 0 or &sqlrc>0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc sqlrc=&sqlrc)'; + put ')'; + put '%put hashcols2=&stripcols;'; + put 'proc sql;'; + put 'create table work.bitemp1_current(drop=___TMP___NEW_FLG) as'; + put 'select *'; + put ', put(md5(&stripcols),$hex32.) as &md5_col'; + put 'from work.bitemp0_base (drop=&md5_col)'; + put 'where ___TMP___NEW_FLG=0;'; + put '/**'; + put '* NEW records were identified in ___TMP___NEW_FLG in bitemp0_base'; + put '*/'; + put 'proc sql;'; + put 'create table &outds_add'; + put '(drop=&md5_col'; + put '%if %mf_existvar(work.bitemp0_base, &delete_col) %then %do;'; + put '&delete_col'; + put '%end;'; + put ')'; + put 'as select a.*'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then %do;'; + put ',&now as &tech_from &tech_from_fmt'; + put ',&high_date as &tech_to &tech_to_fmt'; + put '%end;'; + put 'from work.bitemp0_append a /* STAGING records (mix of existing & new) */'; + put ', work.bitemp0_base b /* BASE records (contains null values for new) */'; + put 'where a.&md5_col=b.&md5_col /* took staging md5 across in left join */'; + put 'and b.___TMP___NEW_FLG=1; /* NEW records also identified in bitemp0_base */'; + put '/**'; + put '* identify INSERTS. These are records with the same business key but'; + put '* the bus_from and bus_to value are higher / lower (respectively)'; + put '* such that the existing record needs to be SPLIT to surround the new'; + put '* record.'; + put '* eg: OLD RECORD from=1 to=10'; + put '* NEW RECORD from=5 to=7'; + put '*'; + put '* APPENDED RECORDS:'; + put '* - from=1 to=5'; + put '* - from=5 to=7'; + put '* - from=7 to=10'; + put '*/'; + put '/* inserts cannot happen with TXTEMPORAL */'; + put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL %then %do;'; + put '/* IDENTIFY */'; + put 'create table work.bitemp3_inserts as'; + put 'select b.*'; + put ',a.&bus_from as ___TMP___from'; + put ',a.&bus_to as ___TMP___to'; + put 'from work.bitemp0_append a'; + put ',work.bitemp1_current b'; + put 'where a.&bus_from > b.&bus_from'; + put 'and a.&bus_to < b.&bus_to'; + put '%do idx_pk=1 %to &pk_cnt;'; + put '%let idx_val=%scan(&pk,&idx_pk);'; + put 'and a.&idx_val=b.&idx_val'; + put '%end;'; + put 'order by'; + put '/* compress blanks and then insert commas (as the datetime fields may'; + put 'not be in use) */'; + put '%sysfunc(tranwrd(%sysfunc(compbl('; + put '&pk &bus_from &bus_to &processed'; + put ')),%str( ), %str(,)))'; + put ';'; + put '/* SPLIT */'; + put 'data work.bitemp3a_inserts (drop=___TMP___from ___TMP___retain ___TMP___to) ;'; + put 'set work.bitemp3_inserts;'; + put 'by &pk &bus_from &bus_to &processed;'; + put 'if first.&idx_val then do;'; + put '___TMP___retain=&bus_to;'; + put '&bus_to=___TMP___from;'; + put 'output;'; + put '&bus_to=___TMP___retain;'; + put 'end;'; + put 'if last.&idx_val then do;'; + put '&bus_from=___TMP___to;'; + put 'output;'; + put 'end;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '/* TX temporal load */'; + put 'data work.bitemp3a_inserts;'; + put 'set work.bitemp1_current;'; + put 'stop;'; + put 'run;'; + put '%end;'; + put '/* APPEND */'; + put 'proc sql;'; + put 'create view work.bitemp3a_view as'; + put 'select * from work.bitemp1_current'; + put 'where &md5_col not in (select &md5_col from work.bitemp3a_inserts);'; + put 'data bitemp3b_newbase;'; + put 'set work.bitemp3a_inserts work.bitemp3a_view;'; + put 'run;'; + put '/** do not use! this converts short numerics into 8 bytes'; + put 'proc sql;'; + put 'create table work.bitemp3b_newbase as'; + put 'select * from work.bitemp3a_inserts'; + put 'union corr'; + put 'select * from work.bitemp1_current'; + put 'where &md5_col not in (select &md5_col from work.bitemp3a_inserts);'; + put '*/'; + put '/**'; + put '* identify CHANGED records from staging.'; + put '* Same business key with different temporal dates or md5 value'; + put '* This table must be overlayed onto / into existing business history'; + put '*/'; + put 'proc sql;'; + put 'create table work.bitemp4_updated as select distinct a.*'; + put 'from work.bitemp0_append a'; + put ',work.bitemp3b_newbase b'; + put 'where 1=1'; + put '%do idx_pk=1 %to &pk_cnt;'; + put '%let idx_val=%scan(&pk,&idx_pk);'; + put 'and a.&idx_val=b.&idx_val'; + put '%end;'; + put 'and ( a.&md5_col ne b.&md5_col'; + put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL %then %do;'; + put 'OR (a.&bus_from ne b.&bus_from or a.&bus_to ne b.&bus_to)'; + put '%end;'; + put ')'; + put ';'; + put '/**'; + put '* This section would have been one simple step with union all'; + put '* but that converts short numerics into 8 bytes!'; + put '* so, convoluted alternative to retain the same functionality.'; + put '*/'; + put '/* base records */'; + put 'create view work.bitemp4_prep1 as'; + put 'select ''BASE'' as ___TMP___'; + put ',b.*'; + put 'from work.bitemp4_updated a'; + put ',work.bitemp3b_newbase b'; + put 'where 1'; + put '%do idx_pk=1 %to &pk_cnt;'; + put '%let idx_val=%scan(&pk,&idx_pk);'; + put 'and a.&idx_val=b.&idx_val'; + put '%end;'; + put ';'; + put '/* updated records */'; + put 'create view work.bitemp4_prep2 as'; + put 'select ''STAG'' as ___TMP___ ,*'; + put 'from work.bitemp4_updated;'; + put '/* ensure we only keep columns that appear in both */'; + put '%local bp1 bp2 bp3 bp4;'; + put '%let bp1=%mf_getvarlist(bitemp4_prep1);'; + put '%let bp2=%mf_getvarlist(bitemp4_prep2);'; + put '%let bp3=%mf_wordsInStr1ButNotStr2(Str1=&bp1,Str2=&bp2);'; + put '%let bp4=%mf_wordsInStr1ButNotStr2(Str1=&bp2,Str2=&bp1);'; + put 'data work.bitemp4_prep3/view=bitemp4_prep3;'; + put 'set bitemp4_prep1 bitemp4_prep2;'; + put '%if %length(XX&bp3&bp4)>2 %then %do;'; + put 'drop &bp3 &bp4 ;'; + put '%end;'; + put 'run;'; + put '/* remove duplicates */'; + put 'proc sql;'; + put 'create table work.bitemp4a_allrecs as'; + put 'select distinct *'; + put 'from work.bitemp4_prep3'; + put 'order by'; + put '/* compress blanks and then insert commas (as the datetime fields'; + put 'may not be in use) */'; + put '%sysfunc(tranwrd(%sysfunc(compbl('; + put '&pk &bus_from &bus_to &processed'; + put ')),%str( ), %str(,)))'; + put ';'; + put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL %then %do;'; + put '/* this section aligns the business dates'; + put '(eg for inserts or overlaps in the range) */'; + put 'data work.bitemp4b_firstpass (drop=___TMP___cond ___TMP___from ___TMP___to );'; + put 'set work.bitemp4a_allrecs;'; + put 'by &pk &bus_from &bus_to &processed;'; + put 'retain ___TMP___cond ''Name of Condition'';'; + put 'retain ___TMP___from ___TMP___to 0;'; + put '___TMP___md5lag=lag(&md5_col);'; + put '/* reset retained variables */'; + put 'if first.&idx_val then do;'; + put 'call missing (___TMP___cond, ___TMP___from, ___TMP___to,___TMP___md5lag);'; + put 'end;'; + put 'else do;'; + put '/* if record is identical, carry forward bus_from (and bus_to if higher)*/'; + put 'if &md5_col=___TMP___md5lag then do;'; + put '&bus_from=___TMP___from;'; + put 'if &bus_to<___TMP___to then &bus_to=___TMP___to;'; + put 'end;'; + put 'end;'; + put 'if ___TMP___=''STAG'' then do;'; + put '/* need to carry forward the closing record */'; + put '___TMP___cond=''Condition 1'';'; + put 'end;'; + put 'else if ___TMP___cond=''Condition 1'' then do;'; + put '/* else ensure bus_from starts from prior record bus_to */'; + put 'if &md5_col ne ___TMP___md5lag and &bus_from <= ___TMP___to'; + put 'then &bus_from= ___TMP___to;'; + put '/* new record may replace old record entirely */'; + put 'if &bus_to <= &bus_from then delete;'; + put 'else call missing (___TMP___cond, ___TMP___from, ___TMP___to);'; + put 'end;'; + put '___TMP___from=&bus_from;'; + put '___TMP___to=&bus_to;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '/* keep staged records only */'; + put 'data work.bitemp4b_firstpass;'; + put 'set work.bitemp4a_allrecs;'; + put 'if ___TMP___=''STAG'';'; + put 'run;'; + put '%end;'; + put '/* next phase is to pass through in reverse - so set up the sort statement */'; + put '%local byvar;'; + put '%do idx_pk=1 %to &pk_cnt;'; + put '%let byvar=&byvar descending %scan(&pk,&idx_pk);'; + put '%end;'; + put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL'; + put '%then %let byvar=&byvar descending &bus_from descending &bus_to;'; + put '/* if matching bus dates supplied, need to ensure we also have a sort'; + put 'between BASE and STAGING tables */'; + put '%let byvar=&byvar descending ___TMP___;'; + put 'proc sort data=work.bitemp4b_firstpass out=work.bitemp4c_sort ;'; + put 'by &byvar;'; + put 'run;'; + put '/**'; + put '* Now (in reverse) pass back business start dates'; + put '*/'; + put 'data work.bitemp4d_secondpass;'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then %do;'; + put '&tech_from=&now;'; + put '&tech_to=&high_date;'; + put '%end;'; + put 'set work.bitemp4c_sort ;'; + put 'by &byvar;'; + put 'retain ___TMP___cond ''Name of Condition'';'; + put 'retain ___TMP___from ___TMP___to 0;'; + put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL %then %do;'; + put '/* put / _all_ /;*/'; + put '___TMP___md5lag=lag(&md5_col);'; + put 'if first.&idx_val then do;'; + put '/* reset retained variables */'; + put 'call missing (___TMP___cond,___TMP___from,___TMP___to,___TMP___md5lag);'; + put 'end;'; + put 'else do;'; + put '/* if record is identical, carry back bus_to */'; + put 'if &md5_col=___TMP___md5lag then &bus_to=___TMP___to;'; + put 'end;'; + put 'if ___TMP___=''STAG'' then do;'; + put '/* need to carry forward the closing record */'; + put '___TMP___cond=''Condition 2'';'; + put 'end;'; + put 'else if ___TMP___cond=''Condition 2'' then do;'; + put '/* else ensure bus_to stops at subsequent record bus_from */'; + put 'if &md5_col ne ___TMP___md5lag and &bus_to >= ___TMP___from'; + put 'then &bus_to= ___TMP___from;'; + put '/* new record may replace old record entirely */'; + put 'if &bus_from >= &bus_to then delete;'; + put 'if &bus_from=___TMP___from and &bus_to=___TMP___to then delete;'; + put 'else call missing (___TMP___cond, ___TMP___from, ___TMP___to);'; + put 'end;'; + put '___TMP___from=&bus_from;'; + put '___TMP___to=&bus_to;'; + put '%end;'; + put 'run;'; + put '%put syscc (line600)=&syscc;'; + put '/**'; + put 'There may still be some records (eg old business history) which have not'; + put 'changed.'; + put 'Need to identify these and remove from the append so they are not updated'; + put 'unnecessarily. This is done by generating a new md5 (which INCLUDES the'; + put 'business key) and any matching / identical records are split out (from those'; + put 'that need to be updated).'; + put '*/'; + put '%if &loadtype=BITEMPORAL %then %do;'; + put '%let cat_string=catx(''|'' ,&bus_from,&bus_to);'; + put 'data bitemp5a_lkp (keep=&md5_col);'; + put 'set bitemp0_base;'; + put '/* for BITEMPORAL we need to compare business dates also */'; + put '&md5_col=put(md5(&cat_string!!''|''!!&stripcols),$hex32.);'; + put 'run;'; + put 'data bitemp5b_updates;'; + put 'set bitemp4d_secondpass;'; + put 'if _n_=1 then do;'; + put 'dcl hash md5_lkp(dataset:''bitemp5a_lkp'');'; + put 'md5_lkp.definekey("&md5_col");'; + put 'md5_lkp.definedone();'; + put 'end;'; + put '/* drop old md5 col as will rebuild with new business dates */'; + put '&md5_col=put(md5(&cat_string!!''|''!!&stripcols),$hex32.) ;'; + put 'if md5_lkp.check()=0 then delete;'; + put 'run;'; + put 'proc sql;'; + put '/* get min bus from as will update (close out) all records from this point'; + put '(for that PK)*/'; + put 'create table work.bitemp5d_subquery as'; + put 'select &pk_comma, min(&bus_from)as &bus_from, max(&bus_to) as &bus_to'; + put 'from work.bitemp5b_updates'; + put 'group by &pk_comma;'; + put '/* index has a huge efficiency impact on upcoming nested subquery */'; + put 'create index index1 on work.bitemp5d_subquery(&pk_comma,&bus_from, &bus_to);'; + put '%let lastds=work.bitemp5b_updates;'; + put '%end;'; + put '%else %if &loadtype=TXTEMPORAL or &loadtype=UPDATE %then %do;'; + put 'proc sql;'; + put 'create table work.bitemp5d_subquery as'; + put 'select distinct &pk_comma'; + put 'from bitemp4d_secondpass;'; + put '%let lastds=work.bitemp4d_secondpass;'; + put '%end;'; + put '%else %let lastds=work.bitemp4d_secondpass;'; + put '/* create single append table (an overlapped pre-sert may be classed as'; + put 'both an update AND a new record). Also create temp views that may be'; + put 'used for pre-load analysis. */'; + put 'data &outds_mod;'; + put 'set &lastds(drop=___TMP___: &md5_col);'; + put 'run;'; + put 'data bitemp6_allrecs / view=bitemp6_allrecs;'; + put 'set &outds_mod /* UPDATED records */'; + put '&outds_add /* NEW records */;'; + put 'run;'; + put 'proc sort data=work.bitemp6_allrecs'; + put 'out=work.bitemp6_unique'; + put 'noduprec'; + put 'dupout=work.xx_BADBADBAD;'; + put 'by _all_;'; + put 'run;'; + put '/* we have all our temp tables now so exit if this is all that is needed */'; + put '%if &LOADTARGET ne YES %then %return;'; + put '/* also exit if an err condition exists */'; + put '%put syscc=&syscc;'; + put '%if &syscc>0 %then %do;'; + put '%let msg=Bitemporal transform / job aborted due to SYSCC=&SYSCC status;'; + put '%mp_lockanytable(UNLOCK,lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE (&msg),'; + put 'ctl_ds=&dclib..mpe_lockanytable'; + put ')'; + put '%mp_abort(msg=&msg);'; + put '%end;'; + put '/* final check - abort if a lock has appeared on the target table */'; + put '%mp_lockfilecheck(libds=&base_lib..&base_dsn)'; + put '/**'; + put '* STAGING TABLES PREPARED, ERR CONDITION TESTED FOR.. NOW TO LOAD!!'; + put '*/'; + put '/**'; + put '* First, CLOSE OUT changed records (if not a REPLACE)'; + put '* Note that SAS does not support ANSI standard for UPDATE with a join condition.'; + put '* However - this can be worked around using a nested subquery..'; + put '*/'; + put 'data _null_;'; + put 'putlog "&sysmacroname: CLOSEOUTS commencing";'; + put 'run;'; + put '%if %mf_getattrn(&lastds,NLOBS)=0 %then %do;'; + put 'data _null_;'; + put 'putlog "&sysmacroname: No closeouts needed";'; + put 'run;'; + put '%end;'; + put '%else %if &engine_type=CAS %then %do;'; + put '%mp_abort(iftrue= (&loadtype=BITEMPORAL or &loadtype=TXTEMPORAL)'; + put ',mac=&sysmacroname in &_program'; + put ',msg=%str(&loadtype not yet supported in CAS engine)'; + put ')'; + put '/* create temp table for deletions */'; + put '%local delds;%let delds=%mf_getuniquename(prefix=DC);'; + put 'data casuser.&delds;'; + put 'set work.bitemp5d_subquery;'; + put 'run;'; + put '/* delete the records */'; + put 'proc cas ;'; + put 'table.deleteRows / table={'; + put 'caslib="&base_lib",'; + put 'name="&base_dsn",'; + put 'where="1=1",'; + put 'whereTable={caslib=''CASUSER'',name="&delds"}'; + put '};'; + put 'quit;'; + put '/* drop temp table */'; + put 'proc sql;'; + put 'drop table CASUSER.&delds;'; + put '%end;'; + put '%else %if (&loadtype=BITEMPORAL or &loadtype=TXTEMPORAL or &loadtype=UPDATE)'; + put '%then %do;'; + put 'data _null_;'; + put 'putlog "&sysmacroname: &loadtype operation using &engine_type engine";'; + put 'run;'; + put '%local flexinow;'; + put 'proc sql;'; + put '/* if OLEDB then create a temp table for efficiency */'; + put '%local innertable;'; + put '%if &engine_type=OLEDB %then %do;'; + put '%let innertable=[##BITEMP_&base_dsn];'; + put '%let top_table=[dbo].&base_dsn;'; + put '%let flexinow=&SQLNOW;'; + put 'create table &base_lib.."##BITEMP_&base_dsn"n as'; + put 'select * from work.bitemp5d_subquery;'; + put '/* open up a connection for pass through SQL */'; + put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; + put 'execute('; + put '%end;'; + put '%else %if &engine_type=REDSHIFT or &engine_type=POSTGRES %then %do;'; + put '%let innertable=%mf_getuniquename(prefix=XDCTEMP);'; + put '%let top_table=&baselib_schema.&base_dsn;'; + put '%let flexinow=timestamp &SQLNOW;'; + put '/* make empty table first - must clone & drop extra cols'; + put 'as autoload is bad */'; + put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; + put 'exec (create table &innertable (like &baselib_schema.&base_dsn)) by myAlias;'; + put '%if &engine_type=REDSHIFT %then %do;'; + put 'exec (alter table &innertable alter sortkey none) by myAlias;'; + put '%end;'; + put '%let dropcols=%mf_wordsinstr1butnotstr2('; + put 'str1=%upcase(%mf_getvarlist(&basecopy))'; + put ',str2=%upcase(%mf_getvarlist(work.bitemp5d_subquery))'; + put ');'; + put '%if %length(&dropcols>0) %then %do idx_pk=1 %to %sysfunc(countw(&dropcols));'; + put '%put &=dropcols;'; + put '%let idx_val=%scan(&dropcols,&idx_pk);'; + put 'exec(alter table &innertable drop column &idx_val;) by myAlias;;'; + put '%end;'; + put '/* create view to strip formats and avoid warns in log */'; + put 'data work.vw_bitemp5d/view=work.vw_bitemp5d;'; + put 'set work.bitemp5d_subquery;'; + put 'format _all_;'; + put 'run;'; + put 'proc append base=&base_lib..&innertable ('; + put '%do idx_pk=1 %to &redcnt;'; + put '&&rednm&idx_pk = &&redval&idxpk'; + put '%end;'; + put ')'; + put 'data=work.vw_bitemp5d force nowarn;'; + put 'run;'; + put '/* open up a connection for pass through SQL */'; + put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; + put 'execute('; + put '%end;'; + put '%else %do;'; + put '%let innertable=bitemp5d_subquery;'; + put '%let top_table=&base_lib..&base_dsn;'; + put '%let flexinow=&now;'; + put '%end;'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then %do;'; + put 'update &top_table set &tech_to=&flexinow'; + put '%if %length(&processed)>0 %then %do;'; + put ',&processed=&flexinow'; + put '%end;'; + put 'where &tech_from <= &flexinow and &flexinow < &tech_to and'; + put '%end;'; + put '%else %if &loadtype=UPDATE %then %do;'; + put '/* changed records are deleted then re-appended when doing UPDATEs */'; + put 'delete from &top_table where'; + put '%end;'; + put '%else %do;'; + put '%put %str(ERR)OR: BUSTEMPORAL NOT YET SUPPORTED;'; + put '%let syscc=5;'; + put '%mp_lockanytable(UNLOCK,lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE,'; + put 'ctl_ds=&dclib..mpe_lockanytable'; + put ')'; + put '%goto end_of_macro;'; + put '%end;'; + put '/* perform join inside query as per'; + put 'http://stackoverflow.com/questions/24629793/update-with-a-proc-sql */'; + put 'exists( select 1 from &baselib_schema.&innertable where'; + put '/* loop PK join */'; + put '%do idx_pk=1 %to &pk_cnt;'; + put '%let idx_val=%scan(&pk,&idx_pk);'; + put '&base_dsn..&idx_val=&innertable..&idx_val and'; + put '%end;'; + put '%if &loadtype=BITEMPORAL %then %do;'; + put '&base_dsn..&bus_from >= &innertable..&bus_from'; + put 'and &base_dsn..&bus_to <= &innertable..&bus_to and'; + put '%end;'; + put '/* close the statement */'; + put '1=1);'; + put '%if &engine_type=OLEDB or &engine_type=REDSHIFT or &engine_type=POSTGRES'; + put '%then %do;'; + put ') by myAlias;'; + put 'execute (drop table &baselib_schema.&innertable) by myAlias;'; + put '%end;'; + put '%end;'; + put 'quit;'; + put 'data _null_;'; + put 'putlog "&sysmacroname: Closeout complete";'; + put 'run;'; + put '/**'; + put '* Append the new / updated records'; + put '*/'; + put '%if &engine_type=CAS %then %do;'; + put '/* get varchar variables ready for casting */'; + put '%local vcfmt vcrename vcassign vcdrop;'; + put 'data _null_;'; + put 'set work.bitemp_cols(where=(type=6)) end=last;'; + put 'length vcrename vcassign vcdrop vcfmt $32767 rancol $32;'; + put 'retain vcrename vcassign vcdrop vcfmt;'; + put 'if _n_=1 then vcrename=''(rename=('';'; + put 'rancol=resolve(''%mf_getuniquename()'');'; + put 'vcfmt=trim(vcfmt)!!''length ''!!cats(name)!!'' varchar(*);'';'; + put 'vcrename=trim(vcrename)!!'' ''!!cats(name,''='',rancol);'; + put 'vcassign=cats(vcassign,name,''='',rancol,'';'');'; + put 'vcdrop=cats(vcdrop,''drop ''!!rancol,'';'');'; + put 'if last then do;'; + put 'vcrename=cats(vcrename,''))'');'; + put 'call symputx(''vcfmt'',vcfmt);'; + put 'call symputx(''vcrename'',vcrename);'; + put 'call symputx(''vcassign'',vcassign);'; + put 'call symputx(''vcdrop'',vcdrop);'; + put 'end;'; + put 'run;'; + put '/* prepare a temp cas table with varchars casted */'; + put '%let tmp=%mf_getuniquename();'; + put 'data casuser.&tmp ;'; + put '&vcfmt'; + put 'set work.bitemp6_unique &vcrename;'; + put '&vcassign'; + put '&vcdrop'; + put 'run;'; + put '/* load the table with varchars applied*/'; + put 'data &base_lib..&base_dsn (append=yes )/sessref=dcsession ;'; + put 'set casuser.&tmp;'; + put 'run;'; + put '/* drop temp table */'; + put 'proc sql;'; + put 'drop table CASUSER.&tmp;'; + put '/* this code will not work as regular tables do not have varchars */'; + put '/*'; + put 'proc casutil;'; + put 'load data=work.bitemp6_unique'; + put 'outcaslib="&base_lib" casout="&base_dsn" append ;'; + put 'quit;'; + put '*/'; + put '%end;'; + put '%else %if &engine_type=REDSHIFT or &engine_type=POSTGRES %then %do;'; + put 'proc append base=&base_lib..&base_dsn'; + put '%if &engine_type=REDSHIFT %then %do;'; + put '('; + put '%do idx_pk=1 %to &redcnt;'; + put '&&rednm&idx_pk = &&redval&idxpk'; + put '%end;'; + put ')'; + put '%end;'; + put 'data=bitemp6_unique force nowarn;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put 'proc append base=&base_lib..&base_dsn data=bitemp6_unique force nowarn; run;'; + put '%end;'; + put '%mp_lockanytable(UNLOCK,lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE,'; + put 'ctl_ds=&dclib..mpe_lockanytable'; + put ')'; + put '/* final check on syscc */'; + put '%mp_abort(iftrue= (&syscc >4)'; + put ',mac=&_program'; + put ',msg=%str(!!Upload NOT successful!! Failed on actual update / append stage..)'; + put ')'; + put '%if &outds_audit ne 0 and &LOADTARGET=YES %then %do;'; + put 'data work.vw_outds_orig /view=work.vw_outds_orig;'; + put 'set work.bitemp0_base (drop=&md5_col);'; + put 'where ___TMP___NEW_FLG=0;'; + put 'drop ___TMP___NEW_FLG;'; + put 'run;'; + put '/* update the AUDIT table */'; + put '%if %mf_existds(&outds_audit) %then %do;'; + put 'options mprint;'; + put '%mp_storediffs(&base_lib..&base_dsn'; + put ',work.vw_outds_orig'; + put ',&pk'; + put ',delds=&outds_del'; + put ',modds=&outds_mod'; + put ',appds=&outds_add'; + put ',outds=work.mp_storediffs'; + put ',processed_dttm=&now'; + put ',loadref=%superq(etlsource)'; + put ')'; + put 'data _null_;'; + put 'set work.mp_storediffs;'; + put 'putlog load_ref= libref= dsn= key_hash= tgtvar_nm=;'; + put 'run;'; + put 'proc append base=&outds_audit data=work.mp_storediffs;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc >4)'; + put ',mac=bitemporal_dataloader'; + put ',msg=%str(Problem in audit stage (&outds_audit))'; + put ')'; + put '%let user=%mf_getUser();'; + put '/**'; + put 'Notify as appropriate EMAILS DISABLED'; + put '%sumo_alerts(ALERT_EVENT=UPDATE'; + put ', ALERT_TARGET=&base_lib..&base_dsn'; + put ', from_user= &user);'; + put '*/'; + put '/* monitor BiTemporal usage */'; + put '%if &log=1 %then %do;'; + put '%put syscc=&syscc;'; + put '/* do not perform duration calc in pass through */'; + put '%local dur;'; + put 'data _null_;'; + put 'now=symget(''now'');'; + put 'dur=%sysfunc(datetime())-&now;'; + put 'call symputx(''dur'',dur,''l'');'; + put 'run;'; + put 'proc sql;'; + put 'insert into &dclib..mpe_dataloads'; + put 'set libref=%upcase("&base_lib")'; + put ',DSN=%upcase("&base_dsn")'; + put ',ETLSOURCE="&ETLSOURCE"'; + put ',LOADTYPE="&loadtype"'; + put ',CHANGED_RECORDS=%mf_getattrn(&lastds,NLOBS)'; + put ',NEW_RECORDS=%mf_getattrn(&outds_add,NLOBS)'; + put ',DELETED_RECORDS=%mf_getattrn(&outds_del,NLOBS)'; + put ',DURATION=&dur'; + put ',MAC_VER="v&ver"'; + put ',user_nm="&user"'; + put ',PROCESSED_DTTM=&now;'; + put 'quit;'; + put '%put syscc=&syscc;'; + put '%end;'; + put '%end_of_macro:'; + put '%mend bitemporal_dataloader;'; + put '%macro mm_getGroups('; + put 'user='; + put ',outds=work.mm_getGroups'; + put ',repo=foundation'; + put ',mDebug=0'; + put ')/*/STORE SOURCE*/;'; + put '%local mD oldrepo;'; + put '%let oldrepo=%sysfunc(getoption(metarepository));'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing mm_getGroups.sas;'; + put '%&mD.put _local_;'; + put '/* on some sites, user / group info is in a different metadata repo to the'; + put 'default */'; + put '%if &oldrepo ne &repo %then %do;'; + put 'options metarepository=&repo;'; + put '%end;'; + put '%if %length(&user)=0 %then %do;'; + put 'data &outds (keep=groupuri groupname groupdesc);'; + put 'length groupuri groupname groupdesc group_or_role $256;'; + put 'call missing(of _all_);'; + put 'i+1;'; + put 'do while'; + put '(metadata_getnobj("omsobj:IdentityGroup?@Id contains ''.''",i,groupuri)>0);'; + put 'rc=metadata_getattr(groupuri, "Name", groupname);'; + put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; + put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; + put 'if Group_or_Role = ''UserGroup'' then output;'; + put 'i+1;'; + put 'end;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put 'data &outds (keep=groupuri groupname groupdesc);'; + put 'length uri groupuri groupname groupdesc group_or_role $256;'; + put 'call missing(of _all_);'; + put 'rc=metadata_getnobj("omsobj:Person?@Name=''&user''",1,uri);'; + put 'if rc<=0 then do;'; + put 'putlog "%str(WARN)ING: rc=" rc "&user not found "'; + put '", or there was an issue reading the repository.";'; + put 'stop;'; + put 'end;'; + put 'a=1;'; + put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; + put 'if grpassn in (-3,-4) then do;'; + put 'putlog "%str(WARN)ING: No metadata groups found for &user";'; + put 'output;'; + put 'end;'; + put 'else do while (grpassn > 0);'; + put 'rc=metadata_getattr(groupuri, "Name", groupname);'; + put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; + put 'a+1;'; + put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; + put 'if Group_or_Role = ''UserGroup'' then output;'; + put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; + put 'end;'; + put 'run;'; + put '%end;'; + put '%if &oldrepo ne &repo %then %do;'; + put 'options metarepository=&oldrepo;'; + put '%end;'; + put '%mend mm_getGroups;'; + put '%macro dc_getusergroups(user=,outds=mm_getgroups);'; + put '%global dc_repo_users;'; + put '%if &dc_repo_users= %then %let dc_repo_users=foundation;'; + put '%mm_getgroups(user=&user,outds=&outds,repo=&dc_repo_users)'; + put '%mend dc_getusergroups;'; + put '%macro mpe_getgroups(user=,outds=);'; + put '%if not %symexist(dc_repo_users) %then %let dc_repo_users=foundation;'; + put '%dc_getusergroups(user=&user,outds=&outds)'; + put 'data;'; + put 'length groupname groupdesc $256;'; + put 'set &dc_libref..mpe_groups;'; + put 'where &dc_dttmtfmt. lt tx_to;'; + put 'where also upcase(user_name)="%upcase(&user)";'; + put 'groupname=group_name;'; + put 'groupdesc=group_desc;'; + put 'keep groupname groupdesc;'; + put 'run;'; + put 'data &outds;'; + put 'set &syslast &outds(keep=groupname groupdesc);'; + put 'run;'; + put '%mend mpe_getgroups;'; + put '%macro mpe_accesscheck('; + put 'base_table /* base table to check for */'; + put ',outds=med_accesscheck /* WORK table to contain access details */'; + put ',user= /* metadata user to check for */'; + put ',access_level=APPROVE'; + put ');'; + put '%if &user= %then %let user=%mf_getuser();'; + put '%if %index(&outds,.) %then %do;'; + put '%local lib ds;'; + put '%let lib=%scan(&outds,1,.);'; + put '%let ds=%scan(&outds,2,.);'; + put '%if %upcase(&lib) ne WORK %then %do;'; + put '%mp_abort(msg=outds should be a WORK table'; + put ',mac=mpe_accesscheck);'; + put '%end;'; + put '%end;'; + put '%else %let ds=&outds;'; + put '%mp_abort('; + put 'iftrue=(%mf_verifymacvars(base_table user access_level)=0)'; + put ',mac=bitemporal_dataloader'; + put ',msg=%str(Missing base_table/user access_level)'; + put ')'; + put '/* ensure any existing table is dropped */'; + put '%mp_dropmembers(&ds)'; + put '/* create a new table for temp use */'; + put 'data; run;'; + put '%local tempds; %let tempds=&syslast;'; + put '/* overwrite with the list of groups */'; + put '%mpe_getgroups(user=&user,outds=&tempds);'; + put '%if &_debug ge 131 %then %do;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%end;'; + put 'proc sql;'; + put 'create table &outds as'; + put 'select * from &tempds'; + put 'where groupname="&mpeadmins"'; + put 'or groupname in'; + put '(select sas_group from &mpelib..mpe_security'; + put 'where &dc_dttmtfmt. lt tx_to'; + put 'and access_level="&access_level"'; + put '& ('; + put '(libref="%scan(&base_table,1,.)" and dsn="%scan(&base_table,2,.)")'; + put 'or (libref="%scan(&base_table,1,.)" and dsn="*ALL*")'; + put 'or (libref="*ALL*")'; + put ')'; + put ');'; + put '%put base_table=&base_table;'; + put '%put libref=%scan(&base_table,1,.);'; + put '%put dsn=%scan(&base_table,2,.);'; + put '%put access_level=&access_level;'; + put '%mend mpe_accesscheck;'; + put '%macro mf_existds(libds'; + put ')/*/STORE SOURCE*/;'; + put '%if %sysfunc(exist(&libds)) ne 1 & %sysfunc(exist(&libds,VIEW)) ne 1 %then 0;'; + put '%else 1;'; + put '%mend mf_existds;'; + put '%macro mpe_alerts(alert_event='; + put ', alert_lib='; + put ', alert_ds='; + put ', dsid='; + put ');'; + put '/* exit if not configured */'; + put '%global DC_EMAIL_ALERTS;'; + put '%if &DC_EMAIL_ALERTS ne YES %then %do;'; + put '%put DCNOTE: Email alerts are not configured;'; + put '%put DCNOTE: (dc_email_alerts=&dc_email_alerts in &mpelib..mpe_config);'; + put '%return;'; + put '%end;'; + put '%let alert_event=%upcase(&alert_event);'; + put '%let alert_lib=%upcase(&alert_lib);'; + put '%let alert_ds=%upcase(&alert_ds);'; + put '%let from_user=%mf_getuser();'; + put '/* get users TO which the email should be sent */'; + put 'proc sql noprint;'; + put 'create table users as select distinct a.alert_user,'; + put 'b.user_displayname,'; + put 'b.user_email'; + put 'from &mpelib..mpe_alerts'; + put '(where=(&dc_dttmtfmt. lt tx_to)) a'; + put 'left join &mpelib..mpe_emails'; + put '(where=(&dc_dttmtfmt. lt tx_to)) b'; + put 'on upcase(trim(a.alert_user))=upcase(trim(b.user_name))'; + put 'where a.alert_event in ("&alert_event","*ALL*")'; + put 'and a.alert_lib in ("&alert_lib","*ALL*")'; + put 'and a.alert_ds in ("&alert_ds","*ALL*");'; + put '%local isThere;'; + put 'select count(*) into: isThere from &syslast where alert_user="&from_user";'; + put '%if &isThere>0 %then %do;'; + put 'insert into &syslast set alert_user="&from_user";'; + put '%end;'; + put '/* if no email / displayname is provided, then extract from metadata */'; + put 'data emails;'; + put 'set users;'; + put 'length emailuri uri text $256; call missing(emailuri,uri); drop emailuri uri;'; + put '/* get displayname */'; + put 'text=cats("omsobj:Person?@Name=''",alert_user,"''");'; + put 'if metadata_getnobj(text,1,uri)<=0 then do;'; + put 'putlog "DCWARN: &from_user not found";'; + put 'return;'; + put 'end;'; + put 'else if user_displayname = '''' then do;'; + put 'if metadata_getattr(uri,''DisplayName'',user_displayname)<0 then do;'; + put 'putlog ''DCWARN: strange err, no displayname attribute of user URI'';'; + put 'end;'; + put 'end;'; + put 'if index(user_email,''@'') then return;'; + put '/* get email from metadata if not in input table */'; + put 'if metadata_getnasn(uri,"EmailAddresses",1,emailuri)<=0 then do;'; + put 'putlog "DCWARN: " alert_user " has no emails in MPE_EMAILS or metadata!";'; + put 'if metadata_getattr(emailuri,"Address",user_email)<0 then do;'; + put 'putlog ''DCWARN: Unexpected error! Valid emailURI but no email. Weird.'';'; + put 'end;'; + put 'end;'; + put '/* only keep valid emails */'; + put 'if index(user_email,''@'') ;'; + put 'run;'; + put '%local emails;'; + put 'proc sql noprint;'; + put 'select user_email into: emails separated by ''" "'' from emails;'; + put '/* exit if nobody to email */'; + put '%if %mf_getattrn(emails,NLOBS)=0 %then %do;'; + put '%put NOTE: No alerts configured (mpe_alerts.sas);'; + put '%return;'; + put '%end;'; + put '/* display email options */'; + put 'data _null_;'; + put 'set sashelp.voption(where=(group=''EMAIL''));'; + put 'put optname ''='' setting;'; + put 'run;'; + put 'filename __out email ("&emails")'; + put 'subject="Table &alert_lib..&alert_ds has been &alert_event";'; + put '%local SUBMITTED_TXT;'; + put '%if &alert_event=SUBMITTED %then %do;'; + put 'data _null_;'; + put 'set &mpelib..mpe_submit;'; + put 'where table_id="&dsid" and submit_status_cd=''SUBMITTED'';'; + put 'call symputx(''SUBMITTED_TXT'',submitted_reason_txt,''l'');'; + put 'run;'; + put 'data _null_;'; + put 'File __out lrecl=32000;'; + put 'put ''Dear user,'';'; + put 'put '' '';'; + put 'put "Please be advised that a change to table &alert_lib..&alert_ds has "'; + put '"been proposed by &from_user on the ''&syshostname'' SAS server.";'; + put 'put " ";'; + put 'length txt $2048;'; + put 'txt=symget(''SUBMITTED_TXT'');'; + put 'put "Reason provided: " txt;'; + put 'put " ";'; + put 'put "This is an automated email by Data Controller for SAS®. For "'; + put '"documentation, please visit https://docs.datacontroller.io";'; + put 'run;'; + put '%end;'; + put '%else %if &alert_event=APPROVED %then %do;'; + put '/* there is no approval message */'; + put 'data _null_;'; + put 'File __out lrecl=32000;'; + put 'put ''Dear user,'';'; + put 'put '' '';'; + put 'put "Please be advised that a change to table &alert_lib..&alert_ds has "'; + put '"been approved by &from_user on the ''&syshostname'' SAS server.";'; + put 'put " ";'; + put 'put "This is an automated email by Data Controller for SAS®. For "'; + put '"documentation, please visit https://docs.datacontroller.io";'; + put 'run;'; + put '%end;'; + put '%else %if &alert_event=REJECTED %then %do;'; + put 'data _null_;'; + put 'set &mpelib..mpe_review;'; + put 'where table_id="&dsid" and review_status_id=''REJECTED'';'; + put 'call symputx(''REVIEW_REASON_TXT'',REVIEW_REASON_TXT,''l'');'; + put 'run;'; + put 'data _null_;'; + put 'File __out lrecl=32000;'; + put 'put ''Dear user,'';'; + put 'put '' '';'; + put 'put "Please be advised that a change to table &alert_lib..&alert_ds has "'; + put '"been rejected by &from_user on the ''&syshostname'' SAS server.";'; + put 'put " ";'; + put 'length txt $2048;'; + put 'txt=symget(''REVIEW_REASON_TXT'');'; + put 'put "Reason provided: " txt;'; + put 'put " ";'; + put 'put "This is an automated email by Data Controller for SAS®. For "'; + put '"documentation, please visit https://docs.datacontroller.io";'; + put 'run;'; + put '%end;'; + put 'filename __out clear;'; + put '%mend mpe_alerts ;'; + put '%macro dc_getservicecode(loc=,outref=);'; + put '%mm_getstpcode(tree=&loc'; + put ',outref=&outref'; + put ')'; + put '%mend dc_getservicecode;'; + put '%macro mp_include(fileref'; + put ',prefix=_'; + put ',opts=SOURCE2'; + put ',errds=work.mp_abort_errds'; + put ')/*/STORE SOURCE*/;'; + put '/* prepare precode */'; + put '%local tempref;'; + put '%let tempref=%mf_getuniquefileref();'; + put 'data _null_;'; + put 'file &tempref;'; + put 'set sashelp.vextfl(where=(fileref="%upcase(&fileref)"));'; + put 'put ''%let _SYSINCLUDEFILEDEVICE='' xengine '';'';'; + put 'name=scan(xpath,-1,''/\'');'; + put 'put ''%let _SYSINCLUDEFILENAME='' name '';'';'; + put 'path=subpad(xpath,1,length(xpath)-length(name)-1);'; + put 'put ''%let _SYSINCLUDEFILEDIR='' path '';'';'; + put 'put ''%let _SYSINCLUDEFILEFILEREF='' "&fileref;";'; + put 'run;'; + put '/* prepare the errds */'; + put 'data &errds;'; + put 'length msg mac $1000;'; + put 'call missing(msg,mac);'; + put 'iftrue=''1=0'';'; + put 'run;'; + put '/* include the include */'; + put '%inc &tempref &fileref/&opts;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=%str(&_SYSINCLUDEFILEDIR/&_SYSINCLUDEFILENAME)'; + put ',msg=%str(syscc=&syscc after executing &_SYSINCLUDEFILENAME)'; + put ')'; + put 'filename &tempref clear;'; + put '%mend mp_include;'; + put '%macro mpe_runhook(hookvar);'; + put '%local pgmloc pgmtype;'; + put '%let pgmtype=0;'; + put '%put &sysmacroname: &=hookvar;'; + put '%if %length(&&&hookvar)>0 %then %do;'; + put '%put &sysmacroname: Executing &&&hookvar;'; + put 'data _null_;'; + put 'rule_value=symget("&hookvar");'; + put 'if scan(upcase(rule_value),-1,''.'')=''SAS'' then do;'; + put 'call symputx(''pgmtype'',''PGM'');'; + put 'call symputx(''pgmloc'',rule_value);'; + put 'end;'; + put 'else do;'; + put 'apploc="%mf_getapploc()";'; + put 'if substr(rule_value,1,1) ne ''/'''; + put 'then rule_value=cats(apploc,''/'',rule_value);'; + put 'call symputx(''pgmloc'',rule_value);'; + put 'call symputx(''pgmtype'',''JOB'');'; + put 'end;'; + put 'run;'; + put '%if &pgmtype=PGM %then %do;'; + put 'filename sascode "&pgmloc";'; + put '%end;'; + put '%else %do;'; + put '%dc_getservicecode(loc=&pgmloc'; + put ',outref=sascode'; + put ')'; + put '%end;'; + put '/* the below script will need to modify work.STAGING_DS */'; + put '%local x; %let x=; /* legacy feature */'; + put '%mp_include(sascode)'; + put '%end;'; + put '%mend mpe_runhook;'; + put '%macro mddl_sas_cntlout(libds=WORK.CNTLOUT);'; + put 'proc sql;'; + put 'create table &libds('; + put 'FMTNAME char(32) label=''Format name'''; + put '/*'; + put 'to accommodate larger START values, mp_loadformat.sas will need the'; + put 'SQL dependency removed (proc sql needs to accommodate 3 index values in'; + put 'a 32767 ibufsize limit)'; + put '*/'; + put ',START char(10000) label=''Starting value for format'''; + put ',END char(32767) label=''Ending value for format'''; + put ',LABEL char(32767) label=''Format value label'''; + put ',MIN num length=3 label=''Minimum length'''; + put ',MAX num length=3 label=''Maximum length'''; + put ',DEFAULT num length=3 label=''Default length'''; + put ',LENGTH num length=3 label=''Format length'''; + put ',FUZZ num label=''Fuzz value'''; + put ',PREFIX char(2) label=''Prefix characters'''; + put ',MULT num label=''Multiplier'''; + put ',FILL char(1) label=''Fill character'''; + put ',NOEDIT num length=3 label=''Is picture string noedit?'''; + put ',TYPE char(1) label=''Type of format'''; + put ',SEXCL char(1) label=''Start exclusion'''; + put ',EEXCL char(1) label=''End exclusion'''; + put ',HLO char(13) label=''Additional information'''; + put ',DECSEP char(1) label=''Decimal separator'''; + put ',DIG3SEP char(1) label=''Three-digit separator'''; + put ',DATATYPE char(8) label=''Date/time/datetime?'''; + put ',LANGUAGE char(8) label=''Language for date strings'''; + put ');'; + put '%mend mddl_sas_cntlout;'; + put '%macro mp_cntlout('; + put 'iftrue=(1=1)'; + put ',libcat='; + put ',cntlout=work.fmtextract'; + put ',fmtlist=0'; + put ')/*/STORE SOURCE*/;'; + put '%local ddlds cntlds i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%let ddlds=%mf_getuniquename();'; + put '%let cntlds=%mf_getuniquename();'; + put '%mddl_sas_cntlout(libds=&ddlds)'; + put '%if %index(&libcat,-)>0 and %scan(&libcat,2,-)=FC %then %do;'; + put '%let libcat=%scan(&libcat,1,-);'; + put '%end;'; + put 'proc format lib=&libcat cntlout=&cntlds;'; + put '%if "&fmtlist" ne "0" %then %do;'; + put 'select'; + put '%do i=1 %to %sysfunc(countw(&fmtlist));'; + put '%scan(&fmtlist,&i,%str( ))'; + put '%end;'; + put ';'; + put '%end;'; + put 'run;'; + put 'data &cntlout;'; + put 'if 0 then set &ddlds;'; + put 'set &cntlds;'; + put 'if type="N" then do;'; + put 'start=cats(start);'; + put 'end=cats(end);'; + put 'end;'; + put 'run;'; + put 'proc sort;'; + put 'by fmtname start;'; + put 'run;'; + put 'proc sql;'; + put 'drop table &ddlds,&cntlds;'; + put '%mend mp_cntlout;'; + put '/** @endcond */'; + put '%macro mp_loadformat(libcat,libds'; + put ',loadtarget=NO'; + put ',auditlibds=0'; + put ',locklibds=0'; + put ',delete_col=_____DELETE__THIS__RECORD_____'; + put ',outds_add=0'; + put ',outds_del=0'; + put ',outds_mod=0'; + put ',mdebug=0'; + put ');'; + put '/* set up local macro variables and temporary tables (with a prefix) */'; + put '%local err msg prefix dslist i var fmtlist ibufsize;'; + put '%let dslist=base_fmts template inlibds ds1 stagedata storediffs;'; + put '%if &outds_add=0 %then %let dslist=&dslist outds_add;'; + put '%if &outds_del=0 %then %let dslist=&dslist outds_del;'; + put '%if &outds_mod=0 %then %let dslist=&dslist outds_mod;'; + put '%let prefix=%substr(%mf_getuniquename(),1,21);'; + put '%do i=1 %to %sysfunc(countw(&dslist));'; + put '%let var=%scan(&dslist,&i);'; + put '%local &var;'; + put '%let &var=%upcase(&prefix._&var);'; + put '%end;'; + put '/*'; + put 'format values can be up to 32767 wide. SQL joins on such a wide column can'; + put 'cause buffer issues. Update ibufsize and reset at the end.'; + put '*/'; + put '%let ibufsize=%sysfunc(getoption(ibufsize));'; + put 'options ibufsize=32767 ;'; + put '/* in DC, format catalogs maybe specified in the libds with a -FC extension */'; + put '%let libcat=%scan(&libcat,1,-);'; + put '/* perform input validations */'; + put '%let err=0;'; + put '%let msg=0;'; + put 'data _null_;'; + put 'if _n_=1 then putlog "&sysmacroname entry vars:";'; + put 'set sashelp.vmacro;'; + put 'where scope="&sysmacroname";'; + put 'value=upcase(value);'; + put 'if &mdebug=0 then put name ''='' value;'; + put 'if name=:''LOAD'' and value not in (''YES'',''NO'') then do;'; + put 'call symputx(''msg'',"invalid value for "!!name!!":"!!value);'; + put 'call symputx(''err'',1);'; + put 'stop;'; + put 'end;'; + put 'else if name=''LIBCAT'' then do;'; + put 'if exist(value,''CATALOG'') le 0 then do;'; + put 'call symputx(''msg'',"Unable to open catalog: "!!value);'; + put 'call symputx(''err'',1);'; + put 'stop;'; + put 'end;'; + put 'end;'; + put 'else if name=''LIBDS'' then do;'; + put 'if exist(value) le 0 then do;'; + put 'call symputx(''msg'',"Unable to open staging table: "!!value);'; + put 'call symputx(''err'',1);'; + put 'stop;'; + put 'end;'; + put 'end;'; + put 'else if (name=:''OUTDS'' or name in (''DELETE_COL'',''LOCKLIBDS'',''AUDITLIBDS''))'; + put 'and missing(value) then do;'; + put 'call symputx(''msg'',"missing value in var: "!!name);'; + put 'call symputx(''err'',1);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%mp_abort('; + put 'iftrue=(&err ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(&msg)'; + put ')'; + put '/**'; + put '* First, extract only relevant formats from the catalog'; + put '*/'; + put 'proc sql noprint;'; + put 'select distinct upcase(fmtname) into: fmtlist separated by '' '' from &libds;'; + put '%mp_cntlout(libcat=&libcat,fmtlist=&fmtlist,cntlout=&base_fmts)'; + put '/**'; + put '* Ensure input table and base_formats have consistent lengths and types'; + put '*/'; + put '%mddl_sas_cntlout(libds=&template)'; + put 'data &inlibds;'; + put 'length &delete_col $3;'; + put 'if 0 then set &template;'; + put 'set &libds;'; + put 'if &delete_col='''' then &delete_col=''No'';'; + put 'fmtname=upcase(fmtname);'; + put 'if missing(type) then do;'; + put 'if substr(fmtname,1,1)=''$'' then type=''C'';'; + put 'else type=''N'';'; + put 'end;'; + put 'if type=''N'' then do;'; + put 'start=cats(start);'; + put 'end=cats(end);'; + put 'end;'; + put 'run;'; + put '/**'; + put '* Identify new records'; + put '*/'; + put 'proc sql;'; + put 'create table &outds_add(drop=&delete_col) as'; + put 'select a.*'; + put 'from &inlibds a'; + put 'left join &base_fmts b'; + put 'on a.fmtname=b.fmtname'; + put 'and a.start=b.start'; + put 'where b.fmtname is null'; + put 'and upcase(a.&delete_col) ne "YES"'; + put 'order by fmtname, start;;'; + put '/**'; + put '* Identify deleted records'; + put '*/'; + put 'create table &outds_del(drop=&delete_col) as'; + put 'select a.*'; + put 'from &inlibds a'; + put 'inner join &base_fmts b'; + put 'on a.fmtname=b.fmtname'; + put 'and a.start=b.start'; + put 'where upcase(a.&delete_col)="YES"'; + put 'order by fmtname, start;'; + put '/**'; + put '* Identify modified records'; + put '*/'; + put 'create table &outds_mod (drop=&delete_col) as'; + put 'select a.*'; + put 'from &inlibds a'; + put 'inner join &base_fmts b'; + put 'on a.fmtname=b.fmtname'; + put 'and a.start=b.start'; + put 'where upcase(a.&delete_col) ne "YES"'; + put 'order by fmtname, start;'; + put 'options ibufsize=&ibufsize;'; + put '%mp_abort('; + put 'iftrue=(&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(SYSCC=&syscc prior to load prep)'; + put ')'; + put '%if &loadtarget=YES %then %do;'; + put 'data &ds1;'; + put 'merge &base_fmts(in=base)'; + put '&outds_mod(in=mod)'; + put '&outds_add(in=add)'; + put '&outds_del(in=del);'; + put 'if not del and not mod;'; + put 'by fmtname start;'; + put 'run;'; + put 'data &stagedata;'; + put 'set &ds1 &outds_mod;'; + put 'run;'; + put 'proc sort;'; + put 'by fmtname start;'; + put 'run;'; + put '%end;'; + put '/* mp abort needs to run outside of conditional blocks */'; + put '%mp_abort('; + put 'iftrue=(&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(SYSCC=&syscc prior to actual load)'; + put ')'; + put '%if &loadtarget=YES %then %do;'; + put '%if %mf_nobs(&stagedata)=0 %then %do;'; + put '%put There are no changes to load in &libcat!;'; + put '%return;'; + put '%end;'; + put '%if &locklibds ne 0 %then %do;'; + put '/* prevent parallel updates */'; + put '%mp_lockanytable(LOCK'; + put ',lib=%scan(&libcat,1,.)'; + put ',ds=%scan(&libcat,2,.)-FC'; + put ',ref=MP_LOADFORMAT commencing format load'; + put ',ctl_ds=&locklibds'; + put ')'; + put '%end;'; + put '/* do the actual load */'; + put 'proc format lib=&libcat cntlin=&stagedata;'; + put 'run;'; + put '%if &locklibds ne 0 %then %do;'; + put '/* unlock the table */'; + put '%mp_lockanytable(UNLOCK'; + put ',lib=%scan(&libcat,1,.)'; + put ',ds=%scan(&libcat,2,.)-FC'; + put ',ref=MP_LOADFORMAT completed format load'; + put ',ctl_ds=&locklibds'; + put ')'; + put '%end;'; + put '/* track the changes */'; + put '%if &auditlibds ne 0 %then %do;'; + put '%if &locklibds ne 0 %then %do;'; + put '%mp_lockanytable(LOCK'; + put ',lib=%scan(&auditlibds,1,.)'; + put ',ds=%scan(&auditlibds,2,.)'; + put ',ref=MP_LOADFORMAT commencing audit table load'; + put ',ctl_ds=&locklibds'; + put ')'; + put '%end;'; + put '%mp_storediffs(&libcat-FC'; + put ',&base_fmts'; + put ',FMTNAME START'; + put ',delds=&outds_del'; + put ',modds=&outds_mod'; + put ',appds=&outds_add'; + put ',outds=&storediffs'; + put ',mdebug=&mdebug'; + put ')'; + put 'proc append base=&auditlibds data=&storediffs;'; + put 'run;'; + put '%if &locklibds ne 0 %then %do;'; + put '%mp_lockanytable(UNLOCK'; + put ',lib=%scan(&auditlibds,1,.)'; + put ',ds=%scan(&auditlibds,2,.)'; + put ',ref=MP_LOADFORMAT commencing audit table load'; + put ',ctl_ds=&locklibds'; + put ')'; + put '%end;'; + put '%end;'; + put '%end;'; + put '%mp_abort('; + put 'iftrue=(&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(SYSCC=&syscc after load)'; + put ')'; + put '%if &mdebug=0 %then %do;'; + put 'proc datasets lib=work;'; + put 'delete &prefix:;'; + put 'run;'; + put '%put &sysmacroname exit vars:;'; + put '%put _local_;'; + put '%end;'; + put '%mend mp_loadformat;'; + put '%macro mpe_targetloader(libds= /* library.dataset to LOAD (target) */'; + put ',now= %sysfunc(datetime()) /* static processed timestamp */'; + put ',etlsource= /* process from whence the data came */'; + put ',STAGING_DS= STAGING_DS /* name of staging (work) dataset which should'; + put 'be appended into the target. */'; + put ',LOADTARGET=NO /* set to yes to actually load the target */'; + put ',CLOSE_VARS= /* provide close vars to override defaults */'; + put ',dclib=NOTPROVIDED'; + put ',mdebug=0'; + put ',dc_dttmtfmt=E8601DT26.6'; + put ');'; + put '%local lib ds nobs;'; + put '/**'; + put '* if a format catalog (suffix "-FC") we assume the catalog has already been'; + put '* created by the calling program with a libds of work.fmtextract'; + put '*/'; + put '%let orig_lib=%upcase(%scan(&libds,1,.));'; + put '%let orig_ds=%upcase(%scan(&libds,2,.));'; + put '%let orig_libds=&libds;'; + put '%if %scan(&libds,2,-)=FC %then %do;'; + put '%let lib=WORK;'; + put '%let ds=FMTEXTRACT;'; + put '%let libds=&lib..&ds;'; + put '%end;'; + put '%else %do;'; + put '%let lib=&orig_lib;'; + put '%let ds=&orig_ds;'; + put '%end;'; + put '%mp_abort(iftrue= (&dclib=NOTPROVIDED)'; + put ',mac=&sysmacroname'; + put ',msg=%str(dclib=NOTPROVIDED)'; + put ')'; + put '/* get table attributes */'; + put '%let nobs=0;'; + put 'data work.sumo_config;'; + put 'set &mpelib..mpe_tables;'; + put 'where &dc_dttmtfmt. lt tx_to'; + put 'and libref="&orig_lib"'; + put 'and dsn="&orig_ds";'; + put 'call symputx(''LOADTYPE'',loadtype,''l'');'; + put 'call symputx(''BUSKEY'',buskey,''l'');'; + put 'call symputx(''VAR_TXFROM'',var_txfrom,''l'');'; + put 'call symputx(''VAR_TXTO'',var_txto,''l'');'; + put 'call symputx(''VAR_BUSFROM'',var_busfrom,''l'');'; + put 'call symputx(''VAR_BUSTO'',var_busto,''l'');'; + put 'call symputx(''VAR_PROCESSED'',VAR_PROCESSED,''l'');'; + put 'call symputx(''RK_UNDERLYING'',RK_UNDERLYING,''l'');'; + put '%if %length(&CLOSE_VARS)=0 %then %do;'; + put 'call symputx(''CLOSE_VARS'',CLOSE_VARS,''l'');'; + put '%end;'; + put 'call symputx(''nobs'',_n_,''l'');'; + put 'if missing(AUDIT_LIBDS) then AUDIT_LIBDS="&dclib..MPE_AUDIT";'; + put 'call symputx(''AUDIT_LIBDS'',AUDIT_LIBDS,''l'');'; + put 'put (_all_)(=);'; + put 'run;'; + put '/* check if table is actually configured to load */'; + put '%if &nobs ne 1 %then %do;'; + put 'proc sql;'; + put 'insert into &mpelib..mpe_loads'; + put 'set USER_NM="%mf_getuser()"'; + put ',STATUS=''FAILED (BAD DS)'''; + put ',CSV_DIR=symget(''ETLSOURCE'')'; + put ',PROCESSED_DTTM=&now;'; + put '%end;'; + put '%mp_abort(iftrue= (&nobs=0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Table not registered in &mpelib..mpe_tables)'; + put ')'; + put '%mp_abort(iftrue= (&nobs>1)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Something is very wrong with the PK in &mpelib..mpe_tables)'; + put ')'; + put '%if &LOADTYPE=TXTEMPORAL %then %do;'; + put '%bitemporal_dataloader(bus_from=,bus_to= /* explicitly empty*/'; + put ',tech_from=&VAR_TXFROM'; + put ',tech_to = &VAR_TXTO'; + put ',base_lib=&lib'; + put ',base_dsn=&ds'; + put ',append_lib=WORK'; + put ',append_dsn=&STAGING_DS'; + put ',high_date=''31DEC9999:23:59:59''dt'; + put ',PK= &buskey'; + put ',ETLSOURCE=&ETLSOURCE'; + put ',LOADTYPE=&loadtype'; + put ',RK_UNDERLYING=&RK_UNDERLYING'; + put ',LOADTARGET=&LOADTARGET'; + put ',RK_UPDATE_MAXKEYTABLE=&LOADTARGET'; + put ',CLOSE_VARS=&CLOSE_VARS'; + put ',processed=&VAR_PROCESSED'; + put ',dclib=&dclib'; + put ',outds_audit=&AUDIT_LIBDS'; + put ')'; + put '%end;'; + put '%else %if &loadtype=REPLACE %then %do;'; + put '%if &LOADTARGET=YES %then %do;'; + put '%mp_lockanytable(LOCK,lib=&lib,ds=&ds,ref=%str(&etlsource),'; + put 'ctl_ds=&dclib..mpe_lockanytable'; + put ')'; + put 'data WORK.&STAGING_DS;'; + put 'set WORK.&STAGING_DS;'; + put '%if %mf_existvar(&libds,&VAR_PROCESSED) %then %do;'; + put '&VAR_PROCESSED = &now;'; + put '%end;'; + put 'drop _____DELETE__THIS__RECORD_____;'; + put 'run;'; + put 'proc sql; delete * from &libds;'; + put 'proc append base=&libds data=WORK.&STAGING_DS force nowarn;run;'; + put '%mp_lockanytable(UNLOCK,lib=&lib,ds=&ds,ctl_ds=&dclib..mpe_lockanytable)'; + put '%end;'; + put '%end;'; + put '%else %if &loadtype=UPDATE %then %do;'; + put '%bitemporal_dataloader(bus_from=,bus_to='; + put ',tech_from= ,tech_to = /* explicitly empty*/'; + put ',base_lib=&lib'; + put ',base_dsn=&ds'; + put ',append_lib=WORK'; + put ',append_dsn=&STAGING_DS'; + put ',high_date=''31DEC9999:23:59:59''dt'; + put ',PK= &buskey'; + put ',ETLSOURCE=%superq(etlsource)'; + put ',LOADTYPE=UPDATE'; + put ',RK_UNDERLYING=&RK_UNDERLYING'; + put ',LOADTARGET=&LOADTARGET'; + put ',RK_UPDATE_MAXKEYTABLE=&LOADTARGET'; + put ',processed=&VAR_PROCESSED'; + put ',dclib=&dclib'; + put ',outds_audit=&AUDIT_LIBDS'; + put ')'; + put '%end;'; + put '%else %if &loadtype=FORMAT_CAT %then %do;'; + put '/**'; + put '* run mp_formatload'; + put '* inputs:'; + put '* - LOADTARGET'; + put '* - CATALOG'; + put '* - STAGEDATA'; + put '* - LOADAUDIT'; + put '* outputs:'; + put '* work.outds_add'; + put '* work.outds_del'; + put '* work.outds_mod'; + put '*/'; + put '%mp_loadformat(&orig_libds'; + put ',&staging_ds'; + put ',loadtarget=&LOADTARGET'; + put ',auditlibds=&AUDIT_LIBDS'; + put ',locklibds=&dclib..mpe_lockanytable'; + put ',delete_col=_____DELETE__THIS__RECORD_____'; + put ',outds_add=outds_add'; + put ',outds_del=outds_del'; + put ',outds_mod=outds_mod'; + put ',mdebug=&mdebug'; + put ')'; + put '%end;'; + put '%else %if &loadtype=BITEMPORAL %then %do;'; + put '%bitemporal_dataloader(bus_from=&VAR_BUSFROM,bus_to=&VAR_BUSTO'; + put ',tech_from=&VAR_TXFROM'; + put ',tech_to = &VAR_TXTO'; + put ',base_lib=&lib'; + put ',base_dsn=&ds'; + put ',append_lib=WORK'; + put ',append_dsn=&STAGING_DS'; + put ',high_date=''31DEC9999:23:59:59''dt'; + put ',PK= &buskey'; + put ',ETLSOURCE=%superq(etlsource)'; + put ',LOADTYPE=BITEMPORAL'; + put ',RK_UNDERLYING=&RK_UNDERLYING'; + put ',LOADTARGET=&LOADTARGET'; + put ',RK_UPDATE_MAXKEYTABLE=&LOADTARGET'; + put ',CLOSE_VARS=&CLOSE_VARS'; + put ',processed=&VAR_PROCESSED'; + put ',dclib=&dclib'; + put ',outds_audit=&AUDIT_LIBDS'; + put ')'; + put '%end;'; + put '%else %do;'; + put '%put WARNING: LOADTYPE &LOADTYPE not supported;'; + put '%let syscc=4;'; + put '%mp_abort(msg=LOADTYPE &LOADTYPE not supported,mac=mpe_targetloader.sas)'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc exiting MPE_TARGETLOADER macro)'; + put ')'; + put '%mend mpe_targetloader;'; + put '%macro removecolsfromwork(col);'; + put '/* only an issue if debug mode enabled */'; + put '%global _debug;'; + put '%if &_debug ge 131 %then %do;'; + put '%let col=%upcase(&col);'; + put '%local memlist;'; + put 'proc sql noprint;'; + put 'select distinct memname into: memlist'; + put 'separated by '' '''; + put 'from dictionary.columns'; + put 'where libname=''WORK'' and upcase(name)="&col";'; + put '%if %mf_isblank(&memlist) %then %return;'; + put '%mp_dropmembers(list=&memlist)'; + put '%end;'; + put '%mend removecolsfromwork;'; + put '%macro mf_getuniquelibref(prefix=mclib,maxtries=1000);'; + put '%local x;'; + put '%if ( %length(&prefix) gt 7 ) %then %do;'; + put '%put %str(ERR)OR: The prefix parameter cannot exceed 7 characters.;'; + put '0'; + put '%return;'; + put '%end;'; + put '%else %if (%sysfunc(NVALID(&prefix,v7))=0) %then %do;'; + put '%put %str(ERR)OR: Invalid prefix (&prefix);'; + put '0'; + put '%return;'; + put '%end;'; + put '/* Set maxtries equal to ''10 to the power of [# unused characters] - 1'' */'; + put '%let maxtries=%eval(10**(8-%length(&prefix))-1);'; + put '%do x = 0 %to &maxtries;'; + put '%if %sysfunc(libref(&prefix&x)) ne 0 %then %do;'; + put '&prefix&x'; + put '%return;'; + put '%end;'; + put '%let x = %eval(&x + 1);'; + put '%end;'; + put '%put %str(ERR)OR: No usable libref in range &prefix.0-&maxtries;'; + put '%put %str(ERR)OR- Try reducing the prefix or deleting some libraries!;'; + put '0'; + put '%mend mf_getuniquelibref;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file postdata.sas'; + put '@brief Either returns the file diffs or actually loads the data to target'; + put '@details Before loading the target, a check is made against the time the'; + put 'target was last updated (backend) and the time the DIFF was generated'; + put '(frontend). If the target was updated whilst the DIFF was on the screen,'; + put 'then the provided diff may have been incorrect and so a new DIFF should be'; + put 'generated and approved before load.'; + put 'Only 100 rows (of each DIFF type) are displayed on the DIFF screen.'; + put '

Service Inputs

'; + put '
SASCONTROLTABLE
'; + put '|ACTION:$char10.|TABLE:$char32.|DIFFTIME:$char29.|'; + put '|---|---|---|'; + put '|SHOW_DIFFS|DC20220208T142124517_124703_1184|"Tue, 08 Feb 2022 14:23:05 GMT"|'; + put '

SAS Macros

'; + put '@li bitemporal_dataloader.sas'; + put '@li dc_assignlib.sas'; + put '@li mf_existds.sas'; + put '@li mf_existvar.sas'; + put '@li mf_getattrn.sas'; + put '@li mf_getengine.sas'; + put '@li mf_getquotedstr.sas'; + put '@li mf_getuniquelibref.sas'; + put '@li mf_getuser.sas'; + put '@li mf_getvarlist.sas'; + put '@li mf_nobs.sas'; + put '@li mf_verifymacvars.sas'; + put '@li mp_abort.sas'; + put '@li mp_cntlout.sas'; + put '@li mp_lockanytable.sas'; + put '@li mpe_accesscheck.sas'; + put '@li mpe_alerts.sas'; + put '@li mpe_runhook.sas'; + put '@li mpe_targetloader.sas'; + put '@li removecolsfromwork.sas'; + put '@version 9.2'; + put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; + put 'downloaded from here: https://4gl.uk/dcdeploy'; + put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; + put 'and may not be re-distributed or re-sold without the express permission of'; + put '4GL Apps Ltd.'; + put '**/'; + put '/* this could be a config setting if required */'; + put '%let maxdiff=100;'; + put '%mpeinit()'; + put '/* load parameters */'; + put 'data _null_;'; + put 'set work.sascontroltable;'; + put 'call symputx(''ACTION'',ACTION);'; + put 'call symputx(''TABLE'',TABLE);'; + put '/* DIFFTIME is when the DIFF was generated on the frontend */'; + put 'call symputx(''DIFFTIME'',DIFFTIME);'; + put 'run;'; + put '%global action is_err err_msg;'; + put '%let is_err=0;'; + put '%let user=%mf_getuser();'; + put '%let sastime=%sysfunc(datetime());'; + put 'data sastime;'; + put 'dt_sastime=&sastime;'; + put 'run;'; + put 'PROC FORMAT;'; + put 'picture yymmddhhmmss other=''%0Y-%0m-%0d %0H:%0M:%0S'' (datatype=datetime);'; + put 'picture flatdate other=''%0Y%0m%0d_%0H%0M%0S'' (datatype=datetime);'; + put 'RUN;'; + put '/* SHOW_DIFFS works by getting the temp tables from the bitemporal loader */'; + put '/* so we share much of the logic from the actual load process */'; + put '%let isfmtcat=0;'; + put 'data APPROVE1;'; + put 'set &mpelib..mpe_submit;'; + put 'where TABLE_ID="&TABLE";'; + put '/* fetch mpe_submit data */'; + put 'libds=cats(base_lib,''.'',base_ds);'; + put 'REVIEWED_ON=put(reviewed_on_dttm,datetime19.);'; + put 'call symputx(''REVIEW_STATUS_ID'',submit_status_cd,''l'');'; + put 'call symputx(''NUM_OF_APPROVALS_REQUIRED'',NUM_OF_APPROVALS_REQUIRED);'; + put 'call symputx(''num_of_approvals_remaining'',num_of_approvals_remaining);'; + put '/* other stuff that''s useful to do in data step */'; + put 'call symputx(''orig_libds'',libds);'; + put 'call symputx(''libds'',libds);'; + put 'if substr(cats(reverse(libds)),1,3)=:''CF-'' then do;'; + put 'libds=scan(libds,1,''-'');'; + put 'putlog "Format Catalog Captured";'; + put 'call symputx(''isfmtcat'',1);'; + put 'libds=''work.fmtextract'';'; + put 'call symputx(''libds'',libds);'; + put 'end;'; + put 'putlog (_all_)(=);'; + put '/* convert provided string DIFFTIME back to a numeric SAS datetime */'; + put 'if "&action" ne "SHOW_DIFFS" then do;'; + put 'call symputx(''DIFFTIME'',input(symget(''DIFFTIME''),anydtdtm18.));'; + put 'end;'; + put 'length difftime $32;'; + put 'DIFFTIME=put(&sastime,datetime19.2);'; + put 'run;'; + put '%mp_cntlout('; + put 'iftrue=(&isfmtcat=1)'; + put ',libcat=&orig_libds'; + put ',fmtlist=0'; + put ',cntlout=work.fmtextract'; + put ')'; + put '%mp_abort('; + put 'iftrue=(%mf_verifymacvars(difftime orig_libds libds table)=0)'; + put ',mac=&_program'; + put ',msg=%str(Missing: difftime orig_libds libds table)'; + put ')'; + put '/* security checks */'; + put '%mpe_accesscheck(&orig_libds,outds=authEDIT,user=&user,access_level=EDIT)'; + put '%mpe_accesscheck(&orig_libds,outds=authAPP,user=&user,access_level=APPROVE)'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc Before entering postdata macro)'; + put ')'; + put '%mp_abort('; + put 'iftrue=('; + put '%mf_getattrn(work.authEDIT,NLOBS)=0 & %mf_getattrn(work.authAPP,NLOBS)=0'; + put ')'; + put ',mac=&_program'; + put ',msg=%str(&user not authorised to view approval screen for &orig_libds)'; + put ')'; + put '%macro quickmacro(inds,outds);'; + put 'data &outds ;'; + put '%if %length(&VAR_BUSFROM)>0 %then %do;'; + put 'format &VAR_BUSFROM &VAR_BUSTO yymmddhhmmss.;'; + put '%end;'; + put 'if 0 then set &emptybasetable;'; + put 'set &inds;'; + put '%if %mf_existvar(&libds,&var_txfrom) %then %do;'; + put 'drop &var_txfrom &var_txto;'; + put '%end;'; + put '%if %mf_existvar(&inds,_____DELETE__THIS__RECORD_____) %then %do;'; + put 'drop _____DELETE__THIS__RECORD_____;'; + put '%end;'; + put '%if %mf_existvar(&inds,&VAR_PROCESSED) %then %do;'; + put 'drop &VAR_PROCESSED;'; + put '%end;'; + put 'run;'; + put '%mend quickmacro;'; + put '%macro postdata();'; + put '%if %quote(&REVIEW_STATUS_ID)=%quote(REJECTED)'; + put 'or %quote(&REVIEW_STATUS_ID)=%quote(APPROVED) %then'; + put '%do;'; + put 'data params; set approve1; run;'; + put '%webout(OPEN)'; + put '%webout(OBJ,PARAMS)'; + put '%webout(CLOSE)'; + put '%return;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(syscc=&syscc)'; + put ')'; + put '%if &action=APPROVE_TABLE %then %do;'; + put '/* check user is authorised to approve table */'; + put '/* user could be an editor but not an approver */'; + put '%mp_abort(iftrue= (%mf_getattrn(work.authAPP,NLOBS)=0)'; + put ',mac=&_program'; + put ',msg=%str(&user may not APPROVE changes)'; + put ')'; + put '/* see if this user has already submitted an approval */'; + put '%let prev_upload_check=1;'; + put 'proc sql;'; + put 'select count(*) into: prev_upload_check from &mpelib..mpe_review'; + put 'where TABLE_ID="&TABLE" and REVIEWED_BY_NM="&user"'; + put 'and REVIEW_STATUS_ID ne "SUBMITTED";'; + put '%let authcheck=%mf_getattrn(work.authAPP,NLOBS);'; + put '%if &authcheck=0 or &prev_upload_check=1 %then %do;'; + put '%put WARNING: authcheck=&authcheck prev_upload_check=&prev_upload_check;'; + put 'data apPARAMS;'; + put 'AUTHORISED=&authcheck;'; + put 'PREV_UPLOAD_CHECK=&prev_upload_check;'; + put 'run;'; + put '%webout(OPEN)'; + put '%webout(OBJ,apPARAMS);'; + put '%webout(CLOSE)'; + put '%return;'; + put '%end;'; + put '/* now check if table has been updated since DIFF screen shown */'; + put '%local fmt_tm usernm last_load etlsource;'; + put '%let last_load=0;'; + put 'proc sql noprint;'; + put 'select max(processed_dttm) format=16.2 into: last_load'; + put 'from &mpelib..mpe_dataloads'; + put 'where libref="%scan(&orig_libds,1,.)" and dsn="%scan(&orig_libds,2,.)";'; + put 'select processed_dttm format=datetime19., user_nm, etlsource'; + put 'into: fmt_tm, :usernm, :etlsource'; + put 'from &mpelib..mpe_dataloads'; + put 'where libref="%scan(&orig_libds,1,.)" and dsn="%scan(&orig_libds,2,.)"'; + put 'and processed_dttm=&last_load;'; + put '%put TIMECHECK: &last_load>&difftime;'; + put '%if %sysevalf(&last_load>&difftime,boolean)=1 %then %do;'; + put '%let is_err=1;'; + put '%let err_msg=&orig_libds was updated in batch %trim(&etlsource'; + put ') by %trim(&usernm) on &fmt_tm - please refresh the page!!;'; + put '%return;'; + put '%end;'; + put '%if &syscc ne 0 %then %do;'; + put '%let is_err=1;'; + put '%let err_msg=syscc=&syscc before logchange;'; + put '%return;'; + put '%end;'; + put '/* upload about to commence so ensure logs */'; + put 'options notes mprint source2;'; + put '%local oldloc;'; + put '%if %symexist(SYSPRINTTOLOG) %then %let oldloc=&SYSPRINTTOLOG;'; + put '%else %let oldloc=%qsysfunc(getoption(LOG));'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto'; + put 'log="&mpelocapprovals/&TABLE/approval.log";'; + put 'run;'; + put 'data _null_;'; + put 'if _n_=1 then do;'; + put 'length oldloc $1000;'; + put 'oldloc=symget(''oldloc'');'; + put 'putlog "****** redirected:" oldloc " *****";'; + put 'end;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put 'proc printto'; + put 'log="&mpelocapprovals/&TABLE/approval.log";'; + put 'run;'; + put '%end;'; + put '%if &syscc ne 0 %then %do;'; + put '%let is_err=1;'; + put '%let err_msg=syscc=&syscc after logchange;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/**'; + put '* upload the actual table'; + put '*/'; + put '%local libref ds;'; + put '%let libref=%scan(&orig_libds,1,.);'; + put '%let ds=%scan(&orig_libds,2,.);'; + put 'proc sql noprint;'; + put 'select PRE_APPROVE_HOOK, POST_APPROVE_HOOK, LOADTYPE, var_txfrom, var_txto'; + put ',BUSKEY, VAR_BUSFROM, VAR_BUSTO'; + put ',AUDIT_LIBDS, NOTES, coalesce(NUM_OF_APPROVALS_REQUIRED,1)'; + put ',VAR_PROCESSED'; + put 'into: PRE_APPROVE_HOOK, :POST_APPROVE_HOOK, :LOADTYPE,:var_txfrom,:var_txto'; + put ',:BUSKEY,:VAR_BUSFROM,:VAR_BUSTO'; + put ',:AUDIT_LIBDS, :TABLE_DESC, :NUM_OF_APPROVALS_REQUIRED_TOT'; + put ',:VAR_PROCESSED'; + put 'from &mpelib..mpe_tables'; + put 'where &dc_dttmtfmt. lt tx_to'; + put 'and libref="&libref"'; + put 'and dsn="&ds";'; + put '%mp_abort('; + put 'iftrue=(%mf_verifymacvars(mpelocapprovals orig_libds)=0)'; + put ',mac=&_program'; + put ',msg=%str(Missing: mpelocapprovals orig_libds)'; + put ')'; + put '/* get dataset from approvals location */'; + put '%let tmplib=%mf_getuniquelibref();'; + put 'libname &tmplib "&mpelocapprovals/&TABLE";'; + put 'data STAGING_DS;'; + put 'set &tmplib..&TABLE;'; + put 'run;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(syscc=&syscc before preapprove)'; + put ')'; + put '%dc_assignlib(WRITE,&libref)'; + put '/* run pre-approve hook if approving */'; + put '%mpe_runhook(PRE_APPROVE_HOOK)'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(syscc=&syscc after preapprove)'; + put ')'; + put '%if &num_of_approvals_remaining>1 and &action=APPROVE_TABLE %then %do;'; + put '/* append to mpe_review table */'; + put '%let apprno=%eval(&num_of_approvals_required-&num_of_approvals_remaining+1);'; + put 'data work.append_review;'; + put 'if 0 then set &mpelib..mpe_review;'; + put 'TABLE_ID="&TABLE";'; + put 'BASE_TABLE="&orig_libds";'; + put 'REVIEW_STATUS_ID="APPROVED";'; + put 'REVIEWED_BY_NM="&user";'; + put 'REVIEWED_ON_DTTM=&sastime;'; + put 'REVIEW_REASON_TXT="APPROVAL &apprno of &num_of_approvals_required";'; + put 'output;'; + put 'stop;'; + put 'run;'; + put '%mp_lockanytable(LOCK,'; + put 'lib=&mpelib,ds=mpe_review,ref=%str(&table Approval),'; + put 'ctl_ds=&mpelib..mpe_lockanytable'; + put ')'; + put 'proc append base=&mpelib..mpe_review data=work.append_review;'; + put 'run;'; + put '%mp_lockanytable(UNLOCK,'; + put 'lib=&mpelib,ds=mpe_review,'; + put 'ctl_ds=&mpelib..mpe_lockanytable'; + put ')'; + put '/* update mpe_submit table */'; + put '%mp_lockanytable(LOCK,'; + put 'lib=&mpelib,ds=mpe_submit,ref=%str(&table Approval),'; + put 'ctl_ds=&mpelib..mpe_lockanytable'; + put ')'; + put 'proc sql;'; + put 'update &mpelib..mpe_submit'; + put 'set num_of_approvals_remaining=&num_of_approvals_remaining-1,'; + put 'reviewed_by_nm="&user",'; + put 'reviewed_on_dttm=&sastime'; + put 'where table_id="&table";'; + put '%mp_lockanytable(UNLOCK,'; + put 'lib=&mpelib,ds=mpe_submit,'; + put 'ctl_ds=&mpelib..mpe_lockanytable'; + put ')'; + put 'data apReqd;'; + put 'AUTHORISED=1;'; + put 'ALREADY_UPDATED=0;'; + put 'ALREADY_UPDATED_DTTM=.;'; + put 'set approve1; /* js will test for NUM_OF_APPROVALS_REQUIRED */'; + put 'run;'; + put '%removecolsfromwork(___TMP___MD5)'; + put '%webout(OPEN)'; + put '%webout(OBJ,apReqd);'; + put '%webout(CLOSE)'; + put '%return;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(syscc=&syscc entering TARGETLOADER)'; + put ')'; + put '%mpe_targetloader(libds=&orig_libds'; + put ',now= &sastime'; + put ',etlsource=&TABLE'; + put ',STAGING_DS=STAGING_DS'; + put ',dclib=&mpelib'; + put '%if &action=APPROVE_TABLE %then %do;'; + put ',LOADTARGET=YES'; + put '%end;'; + put '%else %do;'; + put ',LOADTARGET=NO'; + put '%end;'; + put ',dc_dttmtfmt=&dc_dttmtfmt.'; + put ')'; + put '%if %mf_getattrn(STAGING_DS,NLOBS)=0 %then %do;'; + put '/* empty dataset! */'; + put 'data out;'; + put 'set STAGING_DS;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(syscc=&syscc entering SHOWDIFFS)'; + put ')'; + put '%if &action=SHOW_DIFFS %then %do;'; + put '/**'; + put '* Now prepare the SHOW DIFFS (approve) screen'; + put '*/'; + put '/*To create the CURRENT diffs, we compare with the ACTUAL data. But first'; + put 'need to find out what version TIME to query it for.. */'; + put 'proc sql noprint;'; + put 'select max(processed_dttm)-1 format=datetime19. into: tstamp'; + put 'from &mpelib..mpe_dataloads'; + put 'where libref="&libref" and dsn="&ds" and ETLSOURCE="&TABLE";'; + put 'quit;'; + put '%if &tstamp=. %then %let tstamp=%sysfunc(datetime(),datetime19.);'; + put '/**'; + put '* now create the DIFFS dataset'; + put '* If using a database, then utilise pass through!'; + put '* Create a temporary table inside the database for joins..'; + put '*/'; + put 'options mprint;'; + put '%let engine_type=%mf_getEngine(%scan(&libds,1,.));'; + put '%put &libds engine type = &engine_type;'; + put '%local inner_table ;'; + put '%if &engine_type=OLEDB %then %do;'; + put '/* generate a unique ID for the temporary table */'; + put 'data _null_;'; + put 'call symputx(''UNIQUE_REF'''; + put ',cats(round(datetime(),1)'; + put ',''_'''; + put ',round(ranuni(0)*100000,1)'; + put ')'; + put ',''l'''; + put ');'; + put 'run;'; + put '%let inner_table=&libref.."##DIFF_&UNIQUE_REF"n;'; + put 'proc sql;'; + put 'create table &inner_table as'; + put 'select * from work.outds_mod;'; + put '%end;'; + put '%else %let inner_table=work.outds_mod;'; + put 'proc sql;'; + put 'create view work.originals2 as'; + put 'select b.*'; + put 'from &inner_table a'; + put 'inner join &libds'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then %do;'; + put '(where=("&tstamp"dt < &VAR_TXTO))'; + put '%end;'; + put 'b'; + put 'on 1'; + put '%do idx_pk=1 %to %sysfunc(countw(&buskey));'; + put '%let idx_val=%scan(&buskey,&idx_pk);'; + put 'and a.&idx_val=b.&idx_val'; + put '%end;'; + put 'order by %mf_getquotedstr(in_str=&buskey,dlm=%str(,),quote=)'; + put ';'; + put 'create view bitemp5c_updates2 as'; + put 'select * from work.outds_mod'; + put 'order by %mf_getquotedstr(in_str=&buskey,dlm=%str(,),quote=)'; + put ';'; + put 'data; set &libds;stop;run;'; + put '%let emptybasetable=&syslast;'; + put 'options varlenchk=nowarn; /* for small numerics (<8) */'; + put '%quickmacro(work.outds_del,deleted)'; + put '%quickmacro(work.outds_add,new)'; + put '%quickmacro(bitemp5c_updates2,updates)'; + put '%quickmacro(originals2,originals)'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(syscc=&syscc in quickmacro)'; + put ')'; + put '/* extract colnames for md5 creation / change tracking */'; + put 'proc contents noprint data=work.updates'; + put 'out=cols (keep=name type length varnum format);'; + put 'run;'; + put 'proc sort data=cols out=cols(drop=varnum); by varnum;run;'; + put 'data cols; set cols; name=upcase(name);run;'; + put '%let tempDIFFS_CSV=tempDiffs_%trim('; + put '%sysfunc(datetime(),flatdate.)).csv;'; + put '/**'; + put '* Store temp tables so we have a record of diffs'; + put '* do not change this libname or table name as it is used in some'; + put '* post approve hooks'; + put '*/'; + put 'data TEMPDIFFS (compress=no) /* for realistic file size */;'; + put 'length _____status $10;'; + put 'set work.deleted (in=_____del)'; + put 'work.new(in=_____new)'; + put 'work.updates (in=_____upd)'; + put 'work.originals2 (in=_____orig);'; + put 'if _____del then _____status=''DELETED '';'; + put 'else if _____new then _____status=''NEW'';'; + put 'else if _____upd then _____status=''UPDATED'';'; + put 'else if _____orig then _____status=''ORIGINAL'';'; + put 'run;'; + put 'proc export data=TEMPDIFFS dbms=csv replace'; + put 'outfile="&mpelocapprovals/&TABLE/&tempDIFFS_CSV" ;'; + put 'run;'; + put 'proc sql noprint;'; + put 'select filesize format=sizekmg10.1, filesize as filesize_raw'; + put 'into: filesize,:filesize_raw'; + put 'from dictionary.tables'; + put 'where libname=''WORK'' and memtype=''DATA'' and memname=''TEMPDIFFS'';'; + put 'data params;'; + put 'set approve1;'; + put 'DIFFS_CSV="&tempDIFFS_CSV";'; + put 'FILESIZE="&filesize";'; + put 'FILESIZE_RAW=&filesize_raw;'; + put 'if %mf_nobs(work.originals)>&maxdiff'; + put 'or %mf_nobs(work.new)>&maxdiff'; + put 'or %mf_nobs(work.deleted)>&maxdiff'; + put 'or %mf_nobs(work.updates)>&maxdiff'; + put 'then TRUNCATED="YES";'; + put 'else TRUNCATED="NO";'; + put 'NUM_ADDED=%mf_getattrn(work.new,NLOBS);'; + put 'NUM_DELETED=%mf_getattrn(work.deleted,NLOBS);'; + put 'NUM_UPDATED=%mf_getattrn(work.updates,NLOBS);'; + put 'SUBMITTED_ON=put(submitted_on_dttm,datetime19.);'; + put '%if %mf_getattrn(work.authAPP,NLOBS)>0 %then %do;'; + put 'ISAPPROVER=''YES'';'; + put '%end;'; + put '%else %do;'; + put 'ISAPPROVER=''NO'';'; + put '%end;'; + put 'run;'; + put '/*'; + put '* The PRE_APPROVE_HOOK may have applied custom formats to the staged table.'; + put '* To ensure consistency in the DIFF screen, we should apply the same formats'; + put '* to the base table. Limit rows at the same time.'; + put '*/'; + put 'data work.originals;'; + put 'if 0 then set deleted new updates;'; + put 'set work.originals;'; + put 'if _n_>&maxdiff then stop;'; + put 'run;'; + put '/* get additional submits against the same base table */'; + put 'proc sort data=&mpelib..mpe_submit(where=('; + put 'submit_status_cd=''SUBMITTED'''; + put 'and cats(base_lib,''.'',base_ds)="&orig_libds"'; + put 'and table_id ne "&TABLE"'; + put ')) out=submits;'; + put 'by descending submitted_on_dttm;'; + put 'run;'; + put '/* filter last 10 */'; + put 'data submits;'; + put 'set submits;'; + put 'if _n_>10 then stop;'; + put 'run;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(syscc=&syscc SHOWDIFFS prior to streamout)'; + put ')'; + put '%removecolsfromwork(___TMP___MD5)'; + put '%webout(OPEN)'; + put '%webout(OBJ,params)'; + put '%webout(OBJ,cols)'; + put '%webout(OBJ,submits)'; + put '%webout(OBJ,deleted,fmt=N,missing=STRING,maxobs=&maxdiff)'; + put '%webout(OBJ,new,fmt=N,missing=STRING,maxobs=&maxdiff)'; + put '%webout(OBJ,updates,fmt=N,missing=STRING,maxobs=&maxdiff)'; + put '%webout(OBJ,ORIGINALS,fmt=N,missing=STRING)'; + put '/* need same for formatted view */'; + put '%webout(OBJ,deleted,dslabel=fmt_deleted,fmt=Y,missing=STRING,maxobs=&maxdiff)'; + put '%webout(OBJ,new,dslabel=fmt_new,fmt=Y,missing=STRING,maxobs=&maxdiff)'; + put '%webout(OBJ,updates,dslabel=fmt_updates,fmt=Y,missing=STRING,maxobs=&maxdiff)'; + put '%webout(OBJ,originals,dslabel=fmt_ORIGINALS,fmt=Y,missing=STRING)'; + put '%webout(CLOSE)'; + put '%if &engine_type=OLEDB %then %do;'; + put 'proc sql; /* needs to be dropped AFTER view execution */'; + put 'drop table &inner_table;'; + put '%end;'; + put '%return;'; + put '%end;'; + put '%if &action=APPROVE_TABLE %then %do;'; + put '%approve:'; + put '/**'; + put '* store temp tables so we have a record of diffs'; + put '* do not change this libname or table name as it is used in some'; + put '* post approve hooks'; + put '* for REPLACE loads, temp tables not made, so make them'; + put '*/'; + put '%if &LOADTYPE=REPLACE %then %do;'; + put 'data work.outds_add; run;'; + put 'data work.outds_mod; run;'; + put '%end;'; + put 'libname approve "&mpelocapprovals/&TABLE";'; + put 'data; set &libds;stop;run;'; + put '%let emptybasetable=&syslast;'; + put 'data approve.ActualDiffs;'; + put 'length _____STATUS_____ $10;'; + put 'if 0 then set &emptybasetable;'; + put 'set work.outds_del (in=_____del)'; + put 'work.outds_add (in=_____new)'; + put 'work.outds_mod (in=_____upd);'; + put 'if _____del then _____STATUS_____=''DELETED'';'; + put 'else if _____new then _____STATUS_____=''NEW'';'; + put 'else if _____upd then _____STATUS_____=''UPDATED'';'; + put '%if %mf_existvar(&libds,&var_txfrom) %then %do;'; + put 'drop &var_txfrom &var_txto;'; + put '%end;'; + put '%if %mf_existvar(&libds,&VAR_PROCESSED) %then %do;'; + put 'drop &VAR_PROCESSED;'; + put '%end;'; + put 'run;'; + put 'proc export data=approve.ActualDiffs'; + put 'outfile="&mpelocapprovals/&TABLE/ActualDiffs.csv"'; + put 'dbms=csv'; + put 'replace;'; + put 'run;'; + put '/* update the control table to show table as approved */'; + put '/* append to mpe_review table */'; + put '%let apprno=%eval(&num_of_approvals_required-&num_of_approvals_remaining+1);'; + put 'data work.append_review;'; + put 'if 0 then set &mpelib..mpe_review;'; + put 'TABLE_ID="&TABLE";'; + put 'BASE_TABLE="&orig_libds";'; + put 'REVIEW_STATUS_ID="APPROVED";'; + put 'REVIEWED_BY_NM="&user";'; + put 'REVIEWED_ON_DTTM=&sastime;'; + put 'REVIEW_REASON_TXT="APPROVAL &apprno of &num_of_approvals_required";'; + put 'output;'; + put 'stop;'; + put 'run;'; + put '%mp_lockanytable(LOCK,'; + put 'lib=&mpelib,ds=mpe_review,ref=%str(&table Approval),'; + put 'ctl_ds=&mpelib..mpe_lockanytable'; + put ')'; + put 'proc append base=&mpelib..mpe_review data=work.append_review;'; + put 'run;'; + put '%mp_lockanytable(UNLOCK,'; + put 'lib=&mpelib,ds=mpe_review,'; + put 'ctl_ds=&mpelib..mpe_lockanytable'; + put ')'; + put '/* update mpe_submit table */'; + put '%mp_lockanytable(LOCK,'; + put 'lib=&mpelib,ds=mpe_submit,ref=%str(&table Approval in auditors/postdata),'; + put 'ctl_ds=&mpelib..mpe_lockanytable'; + put ')'; + put 'proc sql;'; + put 'update &mpelib..mpe_submit'; + put 'set submit_status_cd=''APPROVED'','; + put 'num_of_approvals_remaining=&num_of_approvals_remaining-1,'; + put 'reviewed_by_nm="&user",'; + put 'reviewed_on_dttm=&sastime'; + put 'where table_id="&table";'; + put '%mp_lockanytable(UNLOCK,'; + put 'lib=&mpelib,ds=mpe_submit,'; + put 'ctl_ds=&mpelib..mpe_lockanytable'; + put ')'; + put '/* run post-approve hook */'; + put '%mpe_runhook(POST_APPROVE_HOOK)'; + put 'data apPARAMS;'; + put 'AUTHORISED=1;'; + put 'ALREADY_UPDATED=0;'; + put 'ALREADY_UPDATED_DTTM=.;'; + put 'DIFFTIME="&difftime";'; + put 'if &syscc=0 then RESPONSE=''SUCCESS!'';'; + put 'else response="SYSCC=&syscc.";'; + put 'run;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program 582'; + put ',msg=%superq(msg)'; + put ')'; + put '%mpe_alerts(alert_event=APPROVED'; + put ', alert_lib=&libref'; + put ', alert_ds=&ds'; + put ', dsid=&TABLE'; + put ')'; + put '%removecolsfromwork(___TMP___MD5)'; + put '%webout(OPEN)'; + put '%webout(OBJ,apPARAMS)'; + put '%webout(CLOSE)'; + put '%return;'; + put '%end;'; + put '%mend postdata;'; + put '%postdata()'; + put '%mp_abort(mode=INCLUDE)'; + put '%mp_abort(iftrue= (&is_err=1)'; + put ',mac=&_program'; + put ',msg=%superq(err_msg)'; + put ')'; + put '%mpeterm()'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let path=services/editors; + +%let service=getdata; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Files

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as FMTCAT,'; + put 'FMTNAME'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'LENGTH num'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.length as MAXW'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put ')))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] workobs= (0) When set to a positive integer, will create a new'; + put 'output object (WORK) which contains this number of observations from all'; + put 'tables in the WORK library.'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX,workobs=0'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&workobs) > 0 %then %do;'; + put '/* if debug mode, send back first XX records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10'; + put ',maxobs=&workobs'; + put ')'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '%macro mm_getGroups('; + put 'user='; + put ',outds=work.mm_getGroups'; + put ',repo=foundation'; + put ',mDebug=0'; + put ')/*/STORE SOURCE*/;'; + put '%local mD oldrepo;'; + put '%let oldrepo=%sysfunc(getoption(metarepository));'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing mm_getGroups.sas;'; + put '%&mD.put _local_;'; + put '/* on some sites, user / group info is in a different metadata repo to the'; + put 'default */'; + put '%if &oldrepo ne &repo %then %do;'; + put 'options metarepository=&repo;'; + put '%end;'; + put '%if %length(&user)=0 %then %do;'; + put 'data &outds (keep=groupuri groupname groupdesc);'; + put 'length groupuri groupname groupdesc group_or_role $256;'; + put 'call missing(of _all_);'; + put 'i+1;'; + put 'do while'; + put '(metadata_getnobj("omsobj:IdentityGroup?@Id contains ''.''",i,groupuri)>0);'; + put 'rc=metadata_getattr(groupuri, "Name", groupname);'; + put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; + put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; + put 'if Group_or_Role = ''UserGroup'' then output;'; + put 'i+1;'; + put 'end;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put 'data &outds (keep=groupuri groupname groupdesc);'; + put 'length uri groupuri groupname groupdesc group_or_role $256;'; + put 'call missing(of _all_);'; + put 'rc=metadata_getnobj("omsobj:Person?@Name=''&user''",1,uri);'; + put 'if rc<=0 then do;'; + put 'putlog "%str(WARN)ING: rc=" rc "&user not found "'; + put '", or there was an issue reading the repository.";'; + put 'stop;'; + put 'end;'; + put 'a=1;'; + put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; + put 'if grpassn in (-3,-4) then do;'; + put 'putlog "%str(WARN)ING: No metadata groups found for &user";'; + put 'output;'; + put 'end;'; + put 'else do while (grpassn > 0);'; + put 'rc=metadata_getattr(groupuri, "Name", groupname);'; + put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; + put 'a+1;'; + put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; + put 'if Group_or_Role = ''UserGroup'' then output;'; + put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; + put 'end;'; + put 'run;'; + put '%end;'; + put '%if &oldrepo ne &repo %then %do;'; + put 'options metarepository=&oldrepo;'; + put '%end;'; + put '%mend mm_getGroups;'; + put '%macro dc_getusergroups(user=,outds=mm_getgroups);'; + put '%global dc_repo_users;'; + put '%if &dc_repo_users= %then %let dc_repo_users=foundation;'; + put '%mm_getgroups(user=&user,outds=&outds,repo=&dc_repo_users)'; + put '%mend dc_getusergroups;'; + put '%macro mpe_getgroups(user=,outds=);'; + put '%if not %symexist(dc_repo_users) %then %let dc_repo_users=foundation;'; + put '%dc_getusergroups(user=&user,outds=&outds)'; + put 'data;'; + put 'length groupname groupdesc $256;'; + put 'set &dc_libref..mpe_groups;'; + put 'where &dc_dttmtfmt. lt tx_to;'; + put 'where also upcase(user_name)="%upcase(&user)";'; + put 'groupname=group_name;'; + put 'groupdesc=group_desc;'; + put 'keep groupname groupdesc;'; + put 'run;'; + put 'data &outds;'; + put 'set &syslast &outds(keep=groupname groupdesc);'; + put 'run;'; + put '%mend mpe_getgroups;'; + put '%macro mf_abort(mac=mf_abort.sas, msg=, iftrue=%str(1=1)'; + put ')/*/STORE SOURCE*/;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mf_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%abort;'; + put '%mend mf_abort;'; + put '/** @endcond */'; + put '%macro mf_verifymacvars('; + put 'verifyVars /* list of macro variable NAMES */'; + put ',makeUpcase=NO /* set to YES to make all the variable VALUES uppercase */'; + put ',mAbort=SOFT'; + put ')/*/STORE SOURCE*/;'; + put '%local verifyIterator verifyVar abortmsg;'; + put '%do verifyIterator=1 %to %sysfunc(countw(&verifyVars,%str( )));'; + put '%let verifyVar=%qscan(&verifyVars,&verifyIterator,%str( ));'; + put '%if not %symexist(&verifyvar) %then %do;'; + put '%let abortmsg= Variable &verifyVar is MISSING;'; + put '%goto exit_err;'; + put '%end;'; + put '%if %length(%trim(&&&verifyVar))=0 %then %do;'; + put '%let abortmsg= Variable &verifyVar is EMPTY;'; + put '%goto exit_err;'; + put '%end;'; + put '%if &makeupcase=YES %then %do;'; + put '%let &verifyVar=%upcase(&&&verifyvar);'; + put '%end;'; + put '%end;'; + put '%goto exit_success;'; + put '%exit_err:'; + put '%put &abortmsg;'; + put '%mf_abort(iftrue=(&mabort ne SOFT),'; + put 'mac=mf_verifymacvars,'; + put 'msg=%str(&abortmsg)'; + put ')'; + put '0'; + put '%return;'; + put '%exit_success:'; + put '1'; + put '%mend mf_verifymacvars;'; + put '%macro mf_isblank(param'; + put ')/*/STORE SOURCE*/;'; + put '%sysevalf(%superq(param)=,boolean)'; + put '%mend mf_isblank;'; + put '%macro mp_dropmembers('; + put 'list /* space separated list of datasets / views */'; + put ',libref=WORK /* can only drop from a single library at a time */'; + put ',iftrue=%str(1=1)'; + put ')/*/STORE SOURCE*/;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%if %mf_isblank(&list) %then %do;'; + put '%put NOTE: nothing to drop!;'; + put '%return;'; + put '%end;'; + put 'proc datasets lib=&libref nolist;'; + put 'delete &list;'; + put 'delete &list /mtype=view;'; + put 'run;'; + put '%mend mp_dropmembers;'; + put '%macro mpe_accesscheck('; + put 'base_table /* base table to check for */'; + put ',outds=med_accesscheck /* WORK table to contain access details */'; + put ',user= /* metadata user to check for */'; + put ',access_level=APPROVE'; + put ');'; + put '%if &user= %then %let user=%mf_getuser();'; + put '%if %index(&outds,.) %then %do;'; + put '%local lib ds;'; + put '%let lib=%scan(&outds,1,.);'; + put '%let ds=%scan(&outds,2,.);'; + put '%if %upcase(&lib) ne WORK %then %do;'; + put '%mp_abort(msg=outds should be a WORK table'; + put ',mac=mpe_accesscheck);'; + put '%end;'; + put '%end;'; + put '%else %let ds=&outds;'; + put '%mp_abort('; + put 'iftrue=(%mf_verifymacvars(base_table user access_level)=0)'; + put ',mac=bitemporal_dataloader'; + put ',msg=%str(Missing base_table/user access_level)'; + put ')'; + put '/* ensure any existing table is dropped */'; + put '%mp_dropmembers(&ds)'; + put '/* create a new table for temp use */'; + put 'data; run;'; + put '%local tempds; %let tempds=&syslast;'; + put '/* overwrite with the list of groups */'; + put '%mpe_getgroups(user=&user,outds=&tempds);'; + put '%if &_debug ge 131 %then %do;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%end;'; + put 'proc sql;'; + put 'create table &outds as'; + put 'select * from &tempds'; + put 'where groupname="&mpeadmins"'; + put 'or groupname in'; + put '(select sas_group from &mpelib..mpe_security'; + put 'where &dc_dttmtfmt. lt tx_to'; + put 'and access_level="&access_level"'; + put '& ('; + put '(libref="%scan(&base_table,1,.)" and dsn="%scan(&base_table,2,.)")'; + put 'or (libref="%scan(&base_table,1,.)" and dsn="*ALL*")'; + put 'or (libref="*ALL*")'; + put ')'; + put ');'; + put '%put base_table=&base_table;'; + put '%put libref=%scan(&base_table,1,.);'; + put '%put dsn=%scan(&base_table,2,.);'; + put '%put access_level=&access_level;'; + put '%mend mpe_accesscheck;'; + put '%macro mpe_columnlevelsecurity(tgtlib,tgtds,inds'; + put ',mode=VIEW'; + put ',groupds=work.groups'; + put ',clsds=work.clsview'; + put ',outds=CLSVIEW'; + put ',outmeta=work.cls_rules'; + put ');'; + put '%local col_list is_admin;'; + put '/* filter for the appropriate rules */'; + put 'proc sql;'; + put 'create table &outmeta as'; + put 'select CLS_VARIABLE_NM,'; + put 'min(case when CLS_HIDE=1 then 1 else 0 end) as CLS_HIDE'; + put 'from &clsds'; + put 'where &dc_dttmtfmt. lt tx_to'; + put 'and CLS_SCOPE in ("&mode",''ALL'')'; + put 'and CLS_ACTIVE=1'; + put '%if &mode=VIEW %then %do;'; + put 'and CLS_HIDE ne 1'; + put '%end;'; + put 'and upcase(CLS_GROUP) in (select upcase(groupname) from &groupds)'; + put 'and CLS_LIBREF="%upcase(&tgtlib)"'; + put 'and CLS_TABLE="%upcase(&tgtds)"'; + put 'group by CLS_VARIABLE_NM;'; + put '%let is_admin=0;'; + put 'proc sql;'; + put 'select count(*) into: is_admin from &groupds where groupname="&MPEADMINS";'; + put '%put &sysmacroname: &=is_admin;'; + put '%if %mf_nobs(work.cls_rules) = 0 or &is_admin>0 %then %do;'; + put '%put &sysmacroname: no CLS rules to apply;'; + put '%put &=is_admin;'; + put '/* copy using append for speed */'; + put 'data &outds;'; + put 'set &inds;'; + put 'stop;'; + put 'run;'; + put 'proc append base=&outds data=&inds;'; + put 'run;'; + put '/* ensure CLS_RULES is empty in case of admin */'; + put 'data &outmeta;'; + put 'set &outmeta;'; + put 'stop;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%else %if &mode=VIEW %then %do;'; + put '/* just send back the relevant columns */'; + put '%let col_list=0;'; + put 'proc sql noprint;'; + put 'select CLS_VARIABLE_NM into: col_list separated by '' '' from &outmeta'; + put 'where CLS_HIDE=0;'; + put '%if &col_list=0 %then %do;'; + put '/*'; + put 'We have columns that are set to CLS_HIDE=1 but we do not have any to'; + put 'explicitly show. Therefore we assume all columns are to be shown except'; + put 'those that are explicitly hidden.'; + put '*/'; + put 'proc sql noprint;'; + put 'select CLS_VARIABLE_NM into: col_list separated by '' '' from &outmeta'; + put 'where CLS_HIDE=1;'; + put 'data &outds;'; + put 'set &inds;'; + put 'drop &col_list;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put 'data &outds;'; + put 'set &inds;'; + put 'keep &col_list;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%else %if &mode=EDIT %then %do;'; + put '/*'; + put 'In this case we pass all columns and the frontend will filter out the'; + put 'ones that are not allowed to be edited.'; + put '*/'; + put 'data &outds;'; + put 'set &inds;'; + put 'stop;'; + put 'run;'; + put 'proc append base=&outds data=&inds;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: invalid mode - &mode!;'; + put '%abort;'; + put '%end;'; + put '%mend mpe_columnlevelsecurity;'; + put '%macro mf_getuniquename(prefix=MC);'; + put '&prefix.%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32-%length(&prefix))'; + put '%mend mf_getuniquename;'; + put '%macro mpe_getlabels(type,source,outds=mpe_getlabels);'; + put '%local tmpds;'; + put '%if &type=COLUMNS %then %do;'; + put '%let tmpds=%mf_getuniquename();'; + put 'proc contents noprint data=&source'; + put 'out=&tmpds(keep=name memlabel label);'; + put 'run;'; + put 'proc sql ;'; + put 'create table &outds as'; + put 'select upcase(a.name) as name'; + put ',a.memlabel'; + put ',coalesce(b.dd_shortdesc,a.label) as desc'; + put ',b.dd_longdesc as longdesc'; + put 'from &tmpds a'; + put 'left join &mpelib..mpe_datadictionary'; + put '(where=(&dc_dttmtfmt. < tx_to'; + put 'and dd_source ? %upcase("&source")'; + put 'and dd_type=''COLUMN'')) b'; + put 'on scan(b.dd_source,-1,''.'')=upcase(a.name);'; + put '%end;'; + put '%mend mpe_getlabels;'; + put '%macro mf_getattrn('; + put 'libds'; + put ',attr'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid rc;'; + put '%let dsid=%sysfunc(open(&libds,is));'; + put '%if &dsid = 0 %then %do;'; + put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; + put '%put %sysfunc(sysmsg());'; + put '-1'; + put '%end;'; + put '%else %do;'; + put '%sysfunc(attrn(&dsid,&attr))'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%mend mf_getattrn;'; + put '%macro mf_nobs(libds'; + put ')/*/STORE SOURCE*/;'; + put '%mf_getattrn(&libds,NLOBS)'; + put '%mend mf_nobs;'; + put '%macro mp_filtergenerate(inds,outref=filter);'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc - on macro entry)'; + put ')'; + put 'filename &outref temp;'; + put '%if %mf_nobs(&inds)=0 %then %do;'; + put '/* ensure we have a default filter */'; + put 'data _null_;'; + put 'file &outref;'; + put 'put ''1=1'';'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put 'proc sort data=&inds;'; + put 'by SUBGROUP_ID;'; + put 'run;'; + put 'data _null_;'; + put 'file &outref lrecl=32800;'; + put 'set &inds end=last;'; + put 'by SUBGROUP_ID;'; + put 'if _n_=1 then put ''(('';'; + put 'else if first.SUBGROUP_ID then put +1 GROUP_LOGIC ''('';'; + put 'else put +2 SUBGROUP_LOGIC;'; + put 'put +4 VARIABLE_NM OPERATOR_NM RAW_VALUE;'; + put 'if last.SUBGROUP_ID then put '')''@;'; + put 'if last then put '')'';'; + put 'run;'; + put '%end;'; + put '%mend mp_filtergenerate;'; + put '%macro mpe_filtermaster(mode,libds,'; + put 'dclib=,'; + put 'filter_rk=-1,'; + put 'outref=0,'; + put 'outds=work.query'; + put ');'; + put '%put &sysmacroname entry vars:;'; + put '%put _local_;'; + put '%let mode=%upcase(&mode);'; + put '%let libds=%upcase(&libds);'; + put '%mp_abort(iftrue= ('; + put '&mode ne EDIT and &mode ne VIEW and &mode ne DLOAD and &mode ne ULOAD'; + put ')'; + put ',mac=&sysmacroname'; + put ',msg=%str(Invalid MODE: &mode)'; + put ')'; + put '%mp_abort(iftrue= (&outref = 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Please provide a fileref!)'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc)'; + put ')'; + put 'filename &outref temp;'; + put '/* ensure outputs exist */'; + put 'data _null_;'; + put 'file &outref;'; + put 'put '' '';'; + put 'run;'; + put 'data &outds;'; + put 'set &dclib..mpe_filtersource;'; + put 'stop;'; + put 'run;'; + put '/**'; + put '* Deal with FILTER_RK first'; + put '*/'; + put '%if &filter_rk gt 0 %then %do;'; + put 'data _null_;'; + put 'file &outref;'; + put 'put ''( ''@@;'; + put 'set &dclib..mpe_filteranytable(where=(filter_rk=&filter_rk));'; + put 'call symputx(''filter_hash'',filter_hash,''l'');'; + put 'run;'; + put 'proc sort data=&dclib..mpe_filtersource(where=(filter_hash="&filter_hash"))'; + put 'out=&outds(drop=filter_hash filter_line processed_dttm);'; + put 'by filter_line;'; + put 'run;'; + put '%mp_filtergenerate(&outds,outref=&outref)'; + put '%end;'; + put '/* Now filter for current records if the MODE is EDIT or DLOAD */'; + put '%local varfrom varto;'; + put '%let varfrom=0;'; + put 'proc sql;'; + put 'select coalescec(var_txfrom,''0''), var_txto into: varfrom,:varto'; + put 'from &dclib..MPE_TABLES'; + put 'where &dc_dttmtfmt. lt tx_to'; + put 'and libref="%scan(&libds,1,.)" and dsn="%scan(&libds,2,.)";'; + put '%put &=varfrom;'; + put '%put &=varto;'; + put '/**'; + put '* Check if the date variables were mentioned in the query'; + put '* This is a trigger for serving a historical view instead of current'; + put '* we skip this part when checking an ULOAD as there are no date vars'; + put '*/'; + put '%if &varfrom ne 0 and (&mode=EDIT or &mode=DLOAD) %then %do;'; + put '%local validityvars;'; + put 'proc sql;'; + put 'select count(*) into: validityvars'; + put 'from &outds'; + put 'where variable_nm in ("&varfrom","&varto");'; + put '%if &validityvars=0 %then %do;'; + put 'data _null_;'; + put 'file &outref mod;'; + put 'length filter_text $32767;'; + put 'varfrom=symget(''varfrom'');'; + put 'varto=symget(''varto'');'; + put 'filter_text=catx('' '','; + put '''("%sysfunc(datetime(),'',"%mf_fmtdttm()",'')"dt <'',varto,'')'''; + put ');'; + put 'if &filter_rk > 0 then put ''AND '' filter_text;'; + put 'else put filter_text;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '/**'; + put '* Now do Row Level Security based on the MPE_ROW_LEVEL_SECURITY table'; + put '*/'; + put '/* first determine users group membership */'; + put '%mpe_getgroups(user=%mf_getuser(),outds=work.groups)'; + put '%local admin_check;'; + put 'proc sql;'; + put 'select count(*) into: admin_check'; + put 'from work.groups'; + put 'where groupname="&mpeadmins";'; + put '%put &sysmacroname: &=admin_check &=mpeadmins;'; + put '%if &admin_check=0 %then %do;'; + put '%local scopeval;'; + put '%if &mode=DLOAD %then %let scopeval=VIEW;'; + put '%if &mode=ULOAD %then %let scopeval=EDIT;'; + put '%else %let scopeval=&mode;'; + put '/* extract relevant rows */'; + put '%local rlsds;'; + put '%let rlsds=%mf_getuniquename();'; + put 'proc sql;'; + put 'create table work.&rlsds as'; + put 'select rls_group,'; + put 'rls_group_logic as group_logic,'; + put 'rls_subgroup_logic as subgroup_logic,'; + put 'rls_subgroup_id as subgroup_id,'; + put 'rls_variable_nm as variable_nm,'; + put 'rls_operator_nm as operator_nm,'; + put 'rls_raw_value as raw_value'; + put 'from &mpelib..mpe_row_level_security'; + put 'where &dc_dttmtfmt. lt tx_to'; + put 'and rls_scope in ("&scopeval",''ALL'')'; + put 'and upcase(rls_group) in (select upcase(groupname) from work.groups)'; + put 'and rls_libref="%scan(&libds,1,.)"'; + put 'and rls_table="%scan(&libds,2,.)"'; + put 'and rls_active=1'; + put 'order by rls_group,rls_subgroup_id;'; + put '%if &sqlobs>0 %then %do;'; + put '/* check if we currently have filter or not */'; + put 'data ;'; + put 'infile &outref end=eof;'; + put 'input;'; + put 'if _n_=1 and eof and cats(_infile_)='''' then newfilter=1;'; + put 'output;'; + put 'stop;'; + put 'run;'; + put 'data _null_;'; + put 'set &syslast;'; + put 'file &outref mod;'; + put 'if newfilter=1 then put ''('';'; + put 'else put ''AND ('';'; + put 'run;'; + put '/* loop through and apply filters for each group membership */'; + put '%local fref ds;'; + put '%let fref=%mf_getuniquefileref();'; + put '%let ds=%mf_getuniquename();'; + put 'proc sql noprint;'; + put 'select distinct rls_group into : group1 -'; + put 'from work.&rlsds;'; + put '%do i=1 %to &sqlobs;'; + put 'data work.&ds;'; + put 'set work.&rlsds;'; + put 'where rls_group="&&group&i";'; + put 'drop rls_group;'; + put 'run;'; + put '%mp_filtergenerate(&ds,outref=&fref)'; + put 'data _null_;'; + put 'infile &fref;'; + put 'file &outref mod;'; + put 'input;'; + put 'if &i>1 and _n_=1 then put '' OR '';'; + put 'put _infile_;'; + put 'run;'; + put '%end;'; + put 'data _null_;'; + put 'file &outref mod;'; + put 'put '')'';'; + put 'run;'; + put '%end; /* &sqlobs>0 */'; + put '%else %do;'; + put '%put &sysmacroname: no matching groups;'; + put 'data _null_;'; + put 'set work.groups;'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc>0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Row Level Security Generation Error)'; + put ')'; + put '%end; /* &admin_check=0 */'; + put '%put leaving &sysmacroname with the following query:;'; + put '%local empty;'; + put '%let empty=0;'; + put 'data _null_;'; + put 'infile &outref end=eof;'; + put 'input;'; + put 'putlog _infile_;'; + put 'if _n_=1 and eof and cats(_infile_)='''' then do;'; + put 'put ''1=1'';'; + put 'call symputx(''empty'',1,''l'');'; + put 'end;'; + put 'run;'; + put '%if &empty=1 %then %do;'; + put 'data _null_;'; + put 'file &outref;'; + put 'put ''1=1'';'; + put 'run;'; + put '%end;'; + put '%mend mpe_filtermaster;'; + put '%macro dc_getservicecode(loc=,outref=);'; + put '%mm_getstpcode(tree=&loc'; + put ',outref=&outref'; + put ')'; + put '%mend dc_getservicecode;'; + put '%macro mp_include(fileref'; + put ',prefix=_'; + put ',opts=SOURCE2'; + put ',errds=work.mp_abort_errds'; + put ')/*/STORE SOURCE*/;'; + put '/* prepare precode */'; + put '%local tempref;'; + put '%let tempref=%mf_getuniquefileref();'; + put 'data _null_;'; + put 'file &tempref;'; + put 'set sashelp.vextfl(where=(fileref="%upcase(&fileref)"));'; + put 'put ''%let _SYSINCLUDEFILEDEVICE='' xengine '';'';'; + put 'name=scan(xpath,-1,''/\'');'; + put 'put ''%let _SYSINCLUDEFILENAME='' name '';'';'; + put 'path=subpad(xpath,1,length(xpath)-length(name)-1);'; + put 'put ''%let _SYSINCLUDEFILEDIR='' path '';'';'; + put 'put ''%let _SYSINCLUDEFILEFILEREF='' "&fileref;";'; + put 'run;'; + put '/* prepare the errds */'; + put 'data &errds;'; + put 'length msg mac $1000;'; + put 'call missing(msg,mac);'; + put 'iftrue=''1=0'';'; + put 'run;'; + put '/* include the include */'; + put '%inc &tempref &fileref/&opts;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=%str(&_SYSINCLUDEFILEDIR/&_SYSINCLUDEFILENAME)'; + put ',msg=%str(syscc=&syscc after executing &_SYSINCLUDEFILENAME)'; + put ')'; + put 'filename &tempref clear;'; + put '%mend mp_include;'; + put '%macro mpe_runhook(hookvar);'; + put '%local pgmloc pgmtype;'; + put '%let pgmtype=0;'; + put '%put &sysmacroname: &=hookvar;'; + put '%if %length(&&&hookvar)>0 %then %do;'; + put '%put &sysmacroname: Executing &&&hookvar;'; + put 'data _null_;'; + put 'rule_value=symget("&hookvar");'; + put 'if scan(upcase(rule_value),-1,''.'')=''SAS'' then do;'; + put 'call symputx(''pgmtype'',''PGM'');'; + put 'call symputx(''pgmloc'',rule_value);'; + put 'end;'; + put 'else do;'; + put 'apploc="%mf_getapploc()";'; + put 'if substr(rule_value,1,1) ne ''/'''; + put 'then rule_value=cats(apploc,''/'',rule_value);'; + put 'call symputx(''pgmloc'',rule_value);'; + put 'call symputx(''pgmtype'',''JOB'');'; + put 'end;'; + put 'run;'; + put '%if &pgmtype=PGM %then %do;'; + put 'filename sascode "&pgmloc";'; + put '%end;'; + put '%else %do;'; + put '%dc_getservicecode(loc=&pgmloc'; + put ',outref=sascode'; + put ')'; + put '%end;'; + put '/* the below script will need to modify work.STAGING_DS */'; + put '%local x; %let x=; /* legacy feature */'; + put '%mp_include(sascode)'; + put '%end;'; + put '%mend mpe_runhook;'; + put '%macro mm_assignlib('; + put 'libref'; + put ',mAbort=HARD'; + put ')/*/STORE SOURCE*/;'; + put '%local mp_abort msg;'; + put '%let mp_abort=0;'; + put '%if %sysfunc(libref(&libref)) %then %do;'; + put 'data _null_;'; + put 'length liburi LibName msg $200;'; + put 'call missing(of _all_);'; + put 'nobj=metadata_getnobj("omsobj:SASLibrary?@Libref=''&libref''",1,liburi);'; + put 'if nobj=1 then do;'; + put 'rc=metadata_getattr(liburi,"Name",LibName);'; + put '/* now try and assign it */'; + put 'if libname("&libref",,''meta'',cats(''liburi="'',liburi,''";'')) ne 0 then do;'; + put 'putlog "&libref could not be assigned";'; + put 'putlog liburi=;'; + put '/**'; + put '* Fetch the system message for display in the abort modal. This is'; + put '* not always helpful though. One example, previously received:'; + put '* NOTE: Libref XX refers to the same library metadata as libref XX.'; + put '*/'; + put 'msg=sysmsg();'; + put 'if msg=:''ERROR: Libref SAVE is not assigned.'' then do;'; + put 'msg=catx(" ",'; + put '"Could not assign %upcase(&libref).",'; + put '"Please check metadata permissions! Libname:",libname,'; + put '"Liburi:",liburi'; + put ');'; + put 'end;'; + put 'else if msg="ERROR: User does not have appropriate authorization "!!'; + put '"level for library SAVE."'; + put 'then do;'; + put 'msg=catx(" ",'; + put '"ERROR: User does not have appropriate authorization level",'; + put '"for library %upcase(&libref), libname:",libname,'; + put '"Liburi:",liburi'; + put ');'; + put 'end;'; + put 'call symputx(''msg'',msg,''l'');'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1,''l'');'; + put 'end;'; + put 'else do;'; + put 'put (_all_)(=);'; + put 'call symputx(''libname'',libname,''L'');'; + put 'call symputx(''liburi'',liburi,''L'');'; + put 'end;'; + put 'end;'; + put 'else if nobj>1 then do;'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; + put 'call symputx(''msg'',"More than one library with libref=&libref");'; + put 'end;'; + put 'else do;'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; + put 'call symputx(''msg'',"Library &libref not found in metadata");'; + put 'end;'; + put 'run;'; + put '%put NOTE: &msg;'; + put '%end;'; + put '%else %do;'; + put '%put NOTE: Library &libref is already assigned;'; + put '%end;'; + put '%mp_abort(iftrue= (&mp_abort=1)'; + put ',mac=mm_assignlib.sas'; + put ',msg=%superq(msg)'; + put ')'; + put '%mend mm_assignlib;'; + put '/** @cond */'; + put '%macro mf_getengine(libref'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid engnum rc engine;'; + put '/* in case the parameter is a libref.tablename, pull off just the libref */'; + put '%let libref = %upcase(%scan(&libref, 1, %str(.)));'; + put '%let dsid=%sysfunc('; + put 'open(sashelp.vlibnam(where=(libname="%upcase(&libref)")),i)'; + put ');'; + put '%if (&dsid ^= 0) %then %do;'; + put '%let engnum=%sysfunc(varnum(&dsid,ENGINE));'; + put '%let rc=%sysfunc(fetch(&dsid));'; + put '%let engine=%sysfunc(getvarc(&dsid,&engnum));'; + put '%put &libref. ENGINE is &engine.;'; + put '%let rc= %sysfunc(close(&dsid));'; + put '%end;'; + put '%upcase(&engine)'; + put '%mend mf_getengine;'; + put '/** @endcond */'; + put '%macro mm_assigndirectlib('; + put 'libref /* libref to assign from metadata */'; + put ',open_passthrough= /* provide an alias to produce the'; + put 'CONNECT TO statement for the'; + put 'relevant external database */'; + put ',sql_options= /* add any options to add to proc sql statement eg outobs='; + put '(only valid for pass through) */'; + put ',mDebug=0'; + put ',mAbort=0'; + put ')/*/STORE SOURCE*/;'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing mm_assigndirectlib.sas;'; + put '%&mD.put _local_;'; + put '%if &mAbort=1 %then %let mAbort=;'; + put '%else %let mAbort=%str(*);'; + put '%&mD.put NOTE: Creating direct (non META) connection to &libref library;'; + put '%local cur_engine;'; + put '%let cur_engine=%mf_getengine(&libref);'; + put '%if &cur_engine ne META and &cur_engine ne %then %do;'; + put '%put NOTE: &libref already has a direct (&cur_engine) libname connection;'; + put '%return;'; + put '%end;'; + put '%else %if %upcase(&libref)=WORK %then %do;'; + put '%put NOTE: We already have a direct connection to WORK :-) ;'; + put '%return;'; + put '%end;'; + put '/* need to determine the library ENGINE first */'; + put '%local engine;'; + put 'data _null_;'; + put 'length lib_uri engine $256;'; + put 'call missing (of _all_);'; + put '/* get URI for the particular library */'; + put 'rc1=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put '/* get the Engine attribute of the previous object */'; + put 'rc2=metadata_getattr(lib_uri,''Engine'',engine);'; + put 'putlog "mm_assigndirectlib for &libref:" rc1= lib_uri= rc2= engine=;'; + put 'call symputx("liburi",lib_uri,''l'');'; + put 'call symputx("engine",engine,''l'');'; + put 'run;'; + put '/* now obtain engine specific connection details */'; + put '%if &engine=BASE %then %do;'; + put '%&mD.put NOTE: Retrieving BASE library path;'; + put 'data _null_;'; + put 'length up_uri $256 path cat_path $1024;'; + put 'retain cat_path;'; + put 'call missing (of _all_);'; + put '/* get all the filepaths of the UsingPackages association */'; + put 'i=1;'; + put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; + put 'do while (rc3>0);'; + put '/* get the DirectoryName attribute of the previous object */'; + put 'rc4=metadata_getattr(up_uri,''DirectoryName'',path);'; + put 'if i=1 then path = ''("''!!trim(path)!!''" '';'; + put 'else path ='' "''!!trim(path)!!''" '';'; + put 'cat_path = trim(cat_path) !! " " !! trim(path) ;'; + put 'i+1;'; + put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; + put 'end;'; + put 'cat_path = trim(cat_path) !! ")";'; + put '&mD.putlog "NOTE: Getting physical path for &libref library";'; + put '&mD.putlog rc3= up_uri= rc4= cat_path= path=;'; + put '&mD.putlog "NOTE: Libname cmd will be:";'; + put '&mD.putlog "libname &libref" cat_path;'; + put 'call symputx("filepath",cat_path,''l'');'; + put 'run;'; + put '%if %sysevalf(&sysver<9.4) %then %do;'; + put 'libname &libref &filepath;'; + put '%end;'; + put '%else %do;'; + put '/* apply the new filelocks option to cater for temporary locks */'; + put 'libname &libref &filepath filelockwait=5;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=REMOTE %then %do;'; + put 'data x;'; + put 'length rcCon rcProp rc k 3 uriCon uriProp PropertyValue PropertyName'; + put 'Delimiter $256 properties $2048;'; + put 'retain properties;'; + put 'rcCon = metadata_getnasn("&liburi", "LibraryConnection", 1, uriCon);'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", 1, uriProp);'; + put 'k = 1;'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; + put 'do while (rcProp > 0);'; + put 'rc = metadata_getattr(uriProp , "DefaultValue",PropertyValue);'; + put 'rc = metadata_getattr(uriProp , "PropertyName",PropertyName);'; + put 'rc = metadata_getattr(uriProp , "Delimiter",Delimiter);'; + put 'properties = trim(properties) !! " " !! trim(PropertyName)'; + put '!! trim(Delimiter) !! trim(PropertyValue);'; + put 'output;'; + put 'k+1;'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; + put 'end;'; + put '%&mD.put NOTE: Getting properties for REMOTE SHARE &libref library;'; + put '&mD.put _all_;'; + put '%&mD.put NOTE: Libname cmd will be:;'; + put '%&mD.put libname &libref &engine &properties slibref=&libref;'; + put 'call symputx ("properties",trim(properties),''l'');'; + put 'run;'; + put 'libname &libref &engine &properties slibref=&libref;'; + put '%end;'; + put '%else %if &engine=OLEDB %then %do;'; + put '%&mD.put NOTE: Retrieving OLEDB connection details;'; + put 'data _null_;'; + put 'length domain datasource provider properties schema'; + put 'connx_uri domain_uri conprop_uri lib_uri schema_uri value $256.;'; + put 'call missing (of _all_);'; + put '/* get source connection ID */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; + put '/* get connection domain */'; + put 'rc1=metadata_getnasn(connx_uri,''Domain'',1,domain_uri);'; + put 'rc2=metadata_getattr(domain_uri,''Name'',domain);'; + put '&mD.putlog / ''NOTE: '' // ''NOTE- connection id: '' connx_uri ;'; + put '&mD.putlog ''NOTE- domain: '' domain;'; + put '/* get DSN and PROVIDER from connection properties */'; + put 'i=0;'; + put 'do until (rc<0);'; + put 'i+1;'; + put 'rc=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; + put 'rc2=metadata_getattr(conprop_uri,''Name'',value);'; + put 'if value=''Connection.OLE.Property.DATASOURCE.Name.xmlKey.txt'' then do;'; + put 'rc3=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; + put 'end;'; + put 'else if value=''Connection.OLE.Property.PROVIDER.Name.xmlKey.txt'' then do;'; + put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',provider);'; + put 'end;'; + put 'else if value=''Connection.OLE.Property.PROPERTIES.Name.xmlKey.txt'' then'; + put 'do;'; + put 'rc5=metadata_getattr(conprop_uri,''DefaultValue'',properties);'; + put 'end;'; + put 'end;'; + put '&mD.putlog ''NOTE- dsn/provider/properties: '' /'; + put 'datasource provider properties;'; + put '&mD.putlog ''NOTE- schema: '' schema // ''NOTE-'';'; + put '/* get SCHEMA */'; + put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,lib_uri);'; + put 'rc7=metadata_getattr(lib_uri,''SchemaName'',schema);'; + put 'call symputx(''SQL_domain'',domain,''l'');'; + put 'call symputx(''SQL_dsn'',datasource,''l'');'; + put 'call symputx(''SQL_provider'',provider,''l'');'; + put 'call symputx(''SQL_properties'',properties,''l'');'; + put 'call symputx(''SQL_schema'',schema,''l'');'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put 'proc sql &sql_options;'; + put 'connect to OLEDB as &open_passthrough(INSERT_SQL=YES'; + put '/* need additional properties to make this work */'; + put 'properties=(''Integrated Security''=SSPI'; + put '''Persist Security Info''=True'; + put '%sysfunc(compress(%str(&SQL_properties),%str(())))'; + put ')'; + put 'DATASOURCE=&sql_dsn PROMPT=NO'; + put 'PROVIDER=&sql_provider SCHEMA=&sql_schema CONNECTION = GLOBAL);'; + put '%end;'; + put '%else %do;'; + put 'LIBNAME &libref OLEDB PROPERTIES=&sql_properties'; + put 'DATASOURCE=&sql_dsn PROVIDER=&sql_provider SCHEMA=&sql_schema'; + put '%if %length(&sql_domain)>0 %then %do;'; + put 'authdomain="&sql_domain"'; + put '%end;'; + put 'connection=shared;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=ODBC %then %do;'; + put '&mD.%put NOTE: Retrieving ODBC connection details;'; + put 'data _null_;'; + put 'length connx_uri conprop_uri value datasource up_uri schema $256.;'; + put 'call missing (of _all_);'; + put '/* get source connection ID */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; + put '/* get connection properties */'; + put 'i=0;'; + put 'do until (rc2<0);'; + put 'i+1;'; + put 'rc2=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; + put 'rc3=metadata_getattr(conprop_uri,''Name'',value);'; + put 'if value=''Connection.ODBC.Property.DATASRC.Name.xmlKey.txt'' then do;'; + put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; + put 'rc2=-1;'; + put 'end;'; + put 'end;'; + put '/* get SCHEMA */'; + put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,up_uri);'; + put 'rc7=metadata_getattr(up_uri,''SchemaName'',schema);'; + put '&mD.put rc= connx_uri= rc2= conprop_uri= rc3= value= rc4= datasource='; + put 'rc6= up_uri= rc7= schema=;'; + put 'call symputx(''SQL_schema'',schema,''l'');'; + put 'call symputx(''SQL_dsn'',datasource,''l'');'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put 'proc sql &sql_options;'; + put 'connect to ODBC as &open_passthrough'; + put '(INSERT_SQL=YES DATASRC=&sql_dsn. CONNECTION=global);'; + put '%end;'; + put '%else %do;'; + put 'libname &libref ODBC DATASRC=&sql_dsn SCHEMA=&sql_schema;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=POSTGRES %then %do;'; + put '%put NOTE: Obtaining POSTGRES library details;'; + put 'data _null_;'; + put 'length database ignore_read_only_columns direct_exe preserve_col_names'; + put 'preserve_tab_names server schema authdomain user password'; + put 'prop name value uri urisrc $256.;'; + put 'call missing (of _all_);'; + put '/* get database value */'; + put 'prop=''Connection.DBMS.Property.DB.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,database,"");'; + put 'if database^='''' then database=''database=''!!quote(trim(database));'; + put 'call symputx(''database'',database,''l'');'; + put '/* get IGNORE_READ_ONLY_COLUMNS value */'; + put 'prop=''Library.DBMS.Property.DBIROC.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,ignore_read_only_columns,"");'; + put 'if ignore_read_only_columns^='''' then ignore_read_only_columns='; + put '''ignore_read_only_columns=''!!ignore_read_only_columns;'; + put 'call symputx(''ignore_read_only_columns'',ignore_read_only_columns,''l'');'; + put '/* get DIRECT_EXE value */'; + put 'prop=''Library.DBMS.Property.DirectExe.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,direct_exe,"");'; + put 'if direct_exe^='''' then direct_exe=''direct_exe=''!!direct_exe;'; + put 'call symputx(''direct_exe'',direct_exe,''l'');'; + put '/* get PRESERVE_COL_NAMES value */'; + put 'prop=''Library.DBMS.Property.PreserveColNames.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,preserve_col_names,"");'; + put 'if preserve_col_names^='''' then preserve_col_names='; + put '''preserve_col_names=''!!preserve_col_names;'; + put 'call symputx(''preserve_col_names'',preserve_col_names,''l'');'; + put '/* get PRESERVE_TAB_NAMES value */'; + put '/* be careful with PRESERVE_TAB_NAMES=YES - it will mean your table will'; + put 'become case sensitive!! */'; + put 'prop=''Library.DBMS.Property.PreserveTabNames.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,preserve_tab_names,"");'; + put 'if preserve_tab_names^='''' then preserve_tab_names='; + put '''preserve_tab_names=''!!preserve_tab_names;'; + put 'call symputx(''preserve_tab_names'',preserve_tab_names,''l'');'; + put '/* get SERVER value */'; + put 'if metadata_getnasn("&liburi","LibraryConnection",1,uri)>0 then do;'; + put 'prop=''Connection.DBMS.Property.SERVER.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop(uri,prop,server,"");'; + put 'end;'; + put 'if server^='''' then server=''server=''!!quote(cats(server));'; + put 'call symputx(''server'',server,''l'');'; + put '/* get SCHEMA value */'; + put 'if metadata_getnasn("&liburi","UsingPackages",1,uri)>0 then do;'; + put 'rc=metadata_getattr(uri,"SchemaName",schema);'; + put 'end;'; + put 'if schema^='''' then schema=''schema=''!!schema;'; + put 'call symputx(''schema'',schema,''l'');'; + put '/* get AUTHDOMAIN value */'; + put '/* this is only useful if the user account contains that auth domain'; + put 'if metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then do;'; + put 'rc=metadata_getnasn(uri,"Domain",1,urisrc);'; + put 'rc=metadata_getattr(urisrc,"Name",authdomain);'; + put 'end;'; + put 'if authdomain^='''' then authdomain=''authdomain=''!!quote(trim(authdomain));'; + put '*/'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/* get user & pass */'; + put 'if authdomain='''' & metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then'; + put 'do;'; + put 'rc=metadata_getattr(uri,"UserID",user);'; + put 'rc=metadata_getattr(uri,"Password",password);'; + put 'end;'; + put 'if user^='''' then do;'; + put 'user=''user=''!!quote(trim(user));'; + put 'password=''password=''!!quote(trim(password));'; + put 'end;'; + put 'call symputx(''user'',user,''l'');'; + put 'call symputx(''password'',password,''l'');'; + put '&md.put _all_;'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put '%put %str(WARN)ING: Passthrough option for postgres not yet supported;'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put '%if &mdebug=1 %then %do;'; + put '%put NOTE: Executing the following:/;'; + put '%put NOTE- libname &libref POSTGRES &database &ignore_read_only_columns;'; + put '%put NOTE- &direct_exe &preserve_col_names &preserve_tab_names;'; + put '%put NOTE- &server &schema &authdomain &user &password //;'; + put '%end;'; + put 'libname &libref POSTGRES &database &ignore_read_only_columns &direct_exe'; + put '&preserve_col_names &preserve_tab_names &server &schema &authdomain'; + put '&user &password;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=ORACLE %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null_;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema $256;'; + put 'call missing (of _all_);'; + put '/* get auth domain */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; + put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; + put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/* path */'; + put 'rc=metadata_getprop(assocuri1,'; + put '''Connection.Oracle.Property.PATH.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref ORACLE path=&path schema=&schema;'; + put '%put NOTE- authdomain=&authdomain;'; + put '%put NOTE-;'; + put 'libname &libref ORACLE path=&path schema=&schema authdomain=&authdomain;'; + put '%end;'; + put '%else %if &engine=SQLSVR %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; + put 'passwd $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; + put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; + put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; + put 'call symputx(''user'',userid,''l'');'; + put 'call symputx(''pass'',passwd,''l'');'; + put '/* path */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; + put 'rc=metadata_getprop(assocuri2,'; + put '''Connection.SQL.Property.Datasrc.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref SQLSVR datasrc=&path schema=&schema ;'; + put '%put NOTE- user="&user" pass="XXX";'; + put '%put NOTE-;'; + put 'libname &libref SQLSVR datasrc=&path schema=&schema user="&user" pass="&pass";'; + put '%end;'; + put '%else %if &engine=TERADATA %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; + put 'passwd $256;'; + put 'call missing (of _all_);'; + put '/* get auth domain */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; + put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; + put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/*'; + put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; + put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; + put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; + put 'call symputx(''user'',userid,''l'');'; + put 'call symputx(''pass'',passwd,''l'');'; + put '*/'; + put '/* path */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; + put 'rc=metadata_getprop(assocuri2,'; + put '''Connection.Teradata.Property.SERVER.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref TERADATA server="&path" schema=&schema ;'; + put '%put NOTe- authdomain=&authdomain;'; + put '%put NOTE-;'; + put 'libname &libref TERADATA server="&path" schema=&schema authdomain=&authdomain;'; + put '%end;'; + put '%else %if &engine= %then %do;'; + put '%put NOTE: Libref &libref is not registered in metadata;'; + put '%&mAbort.mp_abort('; + put 'msg=%str(ERR)OR: Libref &libref is not registered in metadata'; + put ',mac=mm_assigndirectlib.sas);'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put '%put %str(WARN)ING: Engine &engine is currently unsupported;'; + put '%put %str(WARN)ING- Please contact your support team.;'; + put '%return;'; + put '%end;'; + put '%mend mm_assigndirectlib;'; + put '%macro mm_getrepos('; + put 'outds=work.mm_getrepos'; + put ')/*/STORE SOURCE*/;'; + put '* use a temporary fileref to hold the response;'; + put 'filename response temp;'; + put '/* get list of libraries */'; + put 'proc metadata in='; + put '"1"'; + put 'out=response;'; + put 'run;'; + put '/* write the response to the log for debugging */'; + put '/*'; + put 'data _null_;'; + put 'infile response lrecl=1048576;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '*/'; + put '/* create an XML map to read the response */'; + put 'filename sxlemap temp;'; + put 'data _null_;'; + put 'file sxlemap;'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository";'; + put 'put "";'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Id";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Name";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Desc";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@DefaultNS";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryType";'; + put 'put "characterstring20";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryFormat";'; + put 'put "characterstring10";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@Access";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@CurrentAccess";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@PauseState";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Path";'; + put 'put "";'; + put 'put "characterstring256";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Engine";'; + put 'put "";'; + put 'put "characterstring8";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Options";'; + put 'put "";'; + put 'put "characterstring32";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataCreated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataUpdated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put ''
'';'; + put 'run;'; + put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; + put 'proc sort data= _XML_.SASRepos out=&outds;'; + put 'by name;'; + put 'run;'; + put '/* clear references */'; + put 'filename sxlemap clear;'; + put 'filename response clear;'; + put 'libname _XML_ clear;'; + put '%mend mm_getrepos;'; + put '%macro dc_assignlib(type,libref,passthru=);'; + put '%put &sysmacroname entry vars:;'; + put '%put _local_;'; + put '/* take current repository */'; + put '%local repo repocnt x;'; + put '%let repo=%sysfunc(getoption(metarepository));'; + put '/* get list of repositories and filter */'; + put '%mm_getrepos(outds=repos)'; + put '%let repocnt=0;'; + put 'data repos;'; + put 'set repos;'; + put 'where repositorytype in(''CUSTOM'',''FOUNDATION'')'; + put '& upcase(name) ne "%upcase(&repo)";'; + put 'keep id name ;'; + put 'call symputx(cats(''repo'',_n_),name,''l'');'; + put 'call symputx(''repocnt'',_n_,''l'');'; + put 'run;'; + put '/* find out which of these repositories has the libref we are searching for */'; + put '%local lib_uri;'; + put '%let lib_uri=NOTFOUND;'; + put 'data _null_; /* check default repo first */'; + put 'length lib_uri $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; + put 'run;'; + put '%if &lib_uri=NOTFOUND %then %do;'; + put '%do x=1 %to &repocnt;'; + put 'options metarepository=&&repo&x;'; + put 'data _null_;'; + put 'length lib_uri $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; + put 'run;'; + put '%if &lib_uri ne NOTFOUND %then %let x=%eval(&repocnt+1);'; + put '%end;'; + put '%end;'; + put '%if &type=READ %then %do;'; + put '%mm_assignlib(&libref)'; + put '%end;'; + put '%else %if &type=WRITE %then %do;'; + put '%mm_assigndirectlib(&libref,open_passthrough=&passthru)'; + put '%end;'; + put 'options metarepository=&repo;'; + put '%mend dc_assignlib;'; + put '%macro mm_getgroupmembers('; + put 'group /* metadata group for which to bring back members */'; + put ',outds=work.mm_getgroupmembers /* output dataset to contain the results */'; + put ',emails=NO /* set to yes to bring back emails also */'; + put ',id=NO /* set to yes if passing an ID rather than group name */'; + put ')/*/STORE SOURCE*/;'; + put 'data &outds ;'; + put 'attrib uriGrp uriMem GroupId GroupName Group_or_Role MemberName MemberType'; + put 'euri email length=$64'; + put 'GroupDesc length=$256'; + put 'rcGrp rcMem rc i j length=3;'; + put 'call missing (of _all_);'; + put 'drop uriGrp uriMem rcGrp rcMem rc i j arc ;'; + put 'i=1;'; + put '* Grab the URI for the first Group ;'; + put '%if &id=NO %then %do;'; + put 'rcGrp=metadata_getnobj("omsobj:IdentityGroup?@Name=''&group''",i,uriGrp);'; + put '%end;'; + put '%else %do;'; + put 'rcGrp=metadata_getnobj("omsobj:IdentityGroup?@Id=''&group''",i,uriGrp);'; + put '%end;'; + put '* If Group found, enter do loop ;'; + put 'if rcGrp>0 then do;'; + put 'call missing (rcMem,uriMem,GroupId,GroupName,Group_or_Role'; + put ',MemberName,MemberType);'; + put '* get group info ;'; + put 'rc = metadata_getattr(uriGrp,"Id",GroupId);'; + put 'rc = metadata_getattr(uriGrp,"Name",GroupName);'; + put 'rc = metadata_getattr(uriGrp,"PublicType",Group_or_Role);'; + put 'rc = metadata_getattr(uriGrp,"Desc",GroupDesc);'; + put 'j=1;'; + put 'do while (metadata_getnasn(uriGrp,"MemberIdentities",j,uriMem) > 0);'; + put 'call missing (MemberName, MemberType, email);'; + put 'rc = metadata_getattr(uriMem,"Name",MemberName);'; + put 'rc = metadata_getattr(uriMem,"PublicType",MemberType);'; + put 'if membertype=''User'' and "&emails"=''YES'' then do;'; + put 'if metadata_getnasn(uriMem,"EmailAddresses",1,euri)>0 then do;'; + put 'arc=metadata_getattr(euri,"Address",email);'; + put 'end;'; + put 'end;'; + put 'output;'; + put 'j+1;'; + put 'end;'; + put 'end;'; + put 'run;'; + put '%mend mm_getgroupmembers;'; + put '%macro dc_getgroupmembers(group,outds=dc_getgroupmembers);'; + put '%mm_getgroupmembers(&group,outds=&outds)'; + put '%mend dc_getgroupmembers;'; + put '/** @cond */'; + put '%macro mf_existvar(libds /* 2 part dataset name */'; + put ', var /* variable name */'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid rc;'; + put '%let dsid=%sysfunc(open(&libds,is));'; + put '%if &dsid=0 or %length(&var)=0 %then %do;'; + put '%put %sysfunc(sysmsg());'; + put '0'; + put '%end;'; + put '%else %do;'; + put '%sysfunc(varnum(&dsid,&var))'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%mend mf_existvar;'; + put '/** @endcond */'; + put '%macro mf_getvarlist(libds'; + put ',dlm=%str( )'; + put ',quote=no'; + put ',typefilter=A'; + put ')/*/STORE SOURCE*/;'; + put '/* declare local vars */'; + put '%local outvar dsid nvars x rc dlm q var vtype;'; + put '/* credit Rowland Hale - byte34 is double quote, 39 is single quote */'; + put '%if %upcase("e)=DOUBLE %then %let q=%qsysfunc(byte(34));'; + put '%else %if %upcase("e)=SINGLE %then %let q=%qsysfunc(byte(39));'; + put '/* open dataset in macro */'; + put '%let dsid=%sysfunc(open(&libds));'; + put '%if &dsid %then %do;'; + put '%let nvars=%sysfunc(attrn(&dsid,NVARS));'; + put '%if &nvars>0 %then %do;'; + put '/* add variables with supplied delimeter */'; + put '%do x=1 %to &nvars;'; + put '/* get variable type */'; + put '%let vtype=%sysfunc(vartype(&dsid,&x));'; + put '%if &vtype=&typefilter or &typefilter=A %then %do;'; + put '%let var=&q.%sysfunc(varname(&dsid,&x))&q.;'; + put '%if &var=&q&q %then %do;'; + put '%put &sysmacroname: Empty column found in &libds!;'; + put '%let var=&q. &q.;'; + put '%end;'; + put '%if %quote(&outvar)=%quote() %then %let outvar=&var;'; + put '%else %let outvar=&outvar.&dlm.&var.;'; + put '%end;'; + put '%end;'; + put '%end;'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: Unable to open &libds (rc=&dsid);'; + put '%put &sysmacroname: SYSMSG= %sysfunc(sysmsg());'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%do;%unquote(&outvar)%end;'; + put '%mend mf_getvarlist;'; + put '%macro mf_existds(libds'; + put ')/*/STORE SOURCE*/;'; + put '%if %sysfunc(exist(&libds)) ne 1 & %sysfunc(exist(&libds,VIEW)) ne 1 %then 0;'; + put '%else 1;'; + put '%mend mf_existds;'; + put '%macro mf_getquotedstr(IN_STR'; + put ',DLM=%str(,)'; + put ',QUOTE=S'; + put ',indlm=%str( )'; + put ')/*/STORE SOURCE*/;'; + put '/* credit Rowland Hale - byte34 is double quote, 39 is single quote */'; + put '%if "e=S %then %let quote=%qsysfunc(byte(39));'; + put '%else %if "e=D %then %let quote=%qsysfunc(byte(34));'; + put '%else %if "e=N %then %let quote=;'; + put '%local i item buffer;'; + put '%let i=1;'; + put '%do %while (%qscan(&IN_STR,&i,%str(&indlm)) ne %str() ) ;'; + put '%let item=%qscan(&IN_STR,&i,%str(&indlm));'; + put '%if %bquote("E) ne %then %let item="E%qtrim(&item)"E;'; + put '%else %let item=%qtrim(&item);'; + put '%if (&i = 1) %then %let buffer =%qtrim(&item);'; + put '%else %let buffer =&buffer&DLM%qtrim(&item);'; + put '%let i = %eval(&i+1);'; + put '%end;'; + put '%let buffer=%sysfunc(coalescec(%qtrim(&buffer),"E"E));'; + put '&buffer'; + put '%mend mf_getquotedstr;'; + put '%macro mf_wordsInStr1ButNotStr2('; + put 'Str1= /* string containing words to extract */'; + put ',Str2= /* used to compare with the extract string */'; + put ')/*/STORE SOURCE*/;'; + put '%local count_base count_extr i i2 extr_word base_word match outvar;'; + put '%if %length(&str1)=0 or %length(&str2)=0 %then %do;'; + put '%put base string (str1)= &str1;'; + put '%put compare string (str2) = &str2;'; + put '%return;'; + put '%end;'; + put '%let count_base=%sysfunc(countw(&Str2));'; + put '%let count_extr=%sysfunc(countw(&Str1));'; + put '%do i=1 %to &count_extr;'; + put '%let extr_word=%scan(&Str1,&i,%str( ));'; + put '%let match=0;'; + put '%do i2=1 %to &count_base;'; + put '%let base_word=%scan(&Str2,&i2,%str( ));'; + put '%if &extr_word=&base_word %then %let match=1;'; + put '%end;'; + put '%if &match=0 %then %let outvar=&outvar &extr_word;'; + put '%end;'; + put '&outvar'; + put '%mend mf_wordsInStr1ButNotStr2;'; + put '%macro mddl_sas_cntlout(libds=WORK.CNTLOUT);'; + put 'proc sql;'; + put 'create table &libds('; + put 'FMTNAME char(32) label=''Format name'''; + put '/*'; + put 'to accommodate larger START values, mp_loadformat.sas will need the'; + put 'SQL dependency removed (proc sql needs to accommodate 3 index values in'; + put 'a 32767 ibufsize limit)'; + put '*/'; + put ',START char(10000) label=''Starting value for format'''; + put ',END char(32767) label=''Ending value for format'''; + put ',LABEL char(32767) label=''Format value label'''; + put ',MIN num length=3 label=''Minimum length'''; + put ',MAX num length=3 label=''Maximum length'''; + put ',DEFAULT num length=3 label=''Default length'''; + put ',LENGTH num length=3 label=''Format length'''; + put ',FUZZ num label=''Fuzz value'''; + put ',PREFIX char(2) label=''Prefix characters'''; + put ',MULT num label=''Multiplier'''; + put ',FILL char(1) label=''Fill character'''; + put ',NOEDIT num length=3 label=''Is picture string noedit?'''; + put ',TYPE char(1) label=''Type of format'''; + put ',SEXCL char(1) label=''Start exclusion'''; + put ',EEXCL char(1) label=''End exclusion'''; + put ',HLO char(13) label=''Additional information'''; + put ',DECSEP char(1) label=''Decimal separator'''; + put ',DIG3SEP char(1) label=''Three-digit separator'''; + put ',DATATYPE char(8) label=''Date/time/datetime?'''; + put ',LANGUAGE char(8) label=''Language for date strings'''; + put ');'; + put '%mend mddl_sas_cntlout;'; + put '%macro mp_cntlout('; + put 'iftrue=(1=1)'; + put ',libcat='; + put ',cntlout=work.fmtextract'; + put ',fmtlist=0'; + put ')/*/STORE SOURCE*/;'; + put '%local ddlds cntlds i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%let ddlds=%mf_getuniquename();'; + put '%let cntlds=%mf_getuniquename();'; + put '%mddl_sas_cntlout(libds=&ddlds)'; + put '%if %index(&libcat,-)>0 and %scan(&libcat,2,-)=FC %then %do;'; + put '%let libcat=%scan(&libcat,1,-);'; + put '%end;'; + put 'proc format lib=&libcat cntlout=&cntlds;'; + put '%if "&fmtlist" ne "0" %then %do;'; + put 'select'; + put '%do i=1 %to %sysfunc(countw(&fmtlist));'; + put '%scan(&fmtlist,&i,%str( ))'; + put '%end;'; + put ';'; + put '%end;'; + put 'run;'; + put 'data &cntlout;'; + put 'if 0 then set &ddlds;'; + put 'set &cntlds;'; + put 'if type="N" then do;'; + put 'start=cats(start);'; + put 'end=cats(end);'; + put 'end;'; + put 'run;'; + put 'proc sort;'; + put 'by fmtname start;'; + put 'run;'; + put 'proc sql;'; + put 'drop table &ddlds,&cntlds;'; + put '%mend mp_cntlout;'; + put '/** @endcond */'; + put '%macro mp_dsmeta(libds,outds=work.dsmeta);'; + put '%local ds1 ds2;'; + put 'data;run; %let ds1=&syslast;'; + put 'data;run; %let ds2=&syslast;'; + put '/* setup the ODS capture */'; + put 'ods output attributes=&ds1 enginehost=&ds2;'; + put '/* export the metadata */'; + put 'proc contents data=&libds;'; + put 'run;'; + put '/* load it into a single table */'; + put 'data &outds (keep=ods_table name value);'; + put 'length ods_table $10 name label2 label1 label $100'; + put 'value cvalue cvalue1 cvalue2 $1000'; + put 'nvalue nvalue1 nvalue2 8;'; + put 'if _n_=1 then call missing (of _all_);'; + put '* putlog (_all_)(=);'; + put 'set &ds1 (in=atrs) &ds2 (in=eng);'; + put 'if atrs then do;'; + put 'ods_table=''ATTRIBUTES'';'; + put 'name=coalescec(label1,label);'; + put 'value=coalescec(cvalue1,cvalue,put(coalesce(nvalue1,nvalue),best.));'; + put 'output;'; + put 'if label2 ne '''' then do;'; + put 'name=label2;'; + put 'value=coalescec(cvalue2,put(nvalue2,best.));'; + put 'output;'; + put 'end;'; + put 'end;'; + put 'else if eng then do;'; + put 'ods_table=''ENGINEHOST'';'; + put 'name=coalescec(label1,label);'; + put 'value=coalescec(cvalue1,cvalue,put(coalesce(nvalue1,nvalue),best.));'; + put 'output;'; + put 'end;'; + put 'run;'; + put 'proc sql;'; + put 'drop table &ds1, &ds2;'; + put '%mend mp_dsmeta;'; + put '%macro mp_getcols(ds, outds=work.cols);'; + put '%local dropds;'; + put 'proc contents noprint data=&ds'; + put 'out=_data_ (keep=name type length label varnum format:);'; + put 'run;'; + put '%let dropds=&syslast;'; + put 'data &outds(keep=name type length varnum format label ddtype fmtname);'; + put 'set &dropds(rename=(format=fmtname type=type2));'; + put 'name=upcase(name);'; + put 'if type2=2 then do;'; + put 'length format $49.;'; + put 'if fmtname='''' then format=cats(''$'',length,''.'');'; + put 'else if formatl=0 then format=cats(fmtname,''.'');'; + put 'else format=cats(fmtname,formatl,''.'');'; + put 'type=''C'';'; + put 'ddtype=''CHARACTER'';'; + put 'end;'; + put 'else do;'; + put 'if fmtname='''' then format=cats(length,''.'');'; + put 'else if formatl=0 then format=cats(fmtname,''.'');'; + put 'else if formatd=0 then format=cats(fmtname,formatl,''.'');'; + put 'else format=cats(fmtname,formatl,''.'',formatd);'; + put 'type=''N'';'; + put 'if format=:''DATETIME'' or format=:''E8601DT'' then ddtype=''DATETIME'';'; + put 'else if format=:''DATE'' or format=:''DDMMYY'' or format=:''MMDDYY'''; + put 'or format=:''YYMMDD'' or format=:''E8601DA'' or format=:''B8601DA'''; + put 'or format=:''MONYY'''; + put 'then ddtype=''DATE'';'; + put 'else if format=:''TIME'' then ddtype=''TIME'';'; + put 'else ddtype=''NUMERIC'';'; + put 'end;'; + put 'if label='''' then label=name;'; + put 'run;'; + put 'proc sql;'; + put 'drop table &dropds;'; + put '%mend mp_getcols;'; + put '%macro mcf_init(func'; + put ')/*/STORE SOURCE*/;'; + put '%if not (%symexist(SASJS_PREFIX)) %then %do;'; + put '%global SASJS_PREFIX;'; + put '%let SASJS_PREFIX=SASJS;'; + put '%end;'; + put '%let func=%upcase(&func);'; + put '/* the / character is just a seperator */'; + put '%global &sasjs_prefix._FUNCTIONS;'; + put '%if %index(&&&sasjs_prefix._FUNCTIONS,&func/)>0 %then %do;'; + put '1'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put '%let &sasjs_prefix._FUNCTIONS=&&&sasjs_prefix._FUNCTIONS &func/;'; + put '0'; + put '%end;'; + put '%mend mcf_init;'; + put '%macro mcf_length(wrap=NO'; + put ',insert_cmplib=DEPRECATED'; + put ',lib=WORK'; + put ',cat=SASJS'; + put ',pkg=UTILS'; + put ')/*/STORE SOURCE*/;'; + put '%local i var cmpval found;'; + put '%if %mcf_init(mcf_length)=1 %then %return;'; + put '%if &wrap=YES %then %do;'; + put 'proc fcmp outlib=&lib..&cat..&pkg;'; + put '%end;'; + put 'function mcf_length(var);'; + put 'if var=. then len=0;'; + put 'else if missing(var) or trunc(var,3)=var then len=3;'; + put 'else if trunc(var,4)=var then len=4;'; + put 'else if trunc(var,5)=var then len=5;'; + put 'else if trunc(var,6)=var then len=6;'; + put 'else if trunc(var,7)=var then len=7;'; + put 'else len=8;'; + put 'return(len);'; + put 'endsub;'; + put '%if &wrap=YES %then %do;'; + put 'quit;'; + put '%end;'; + put '/* insert the CMPLIB if not already there */'; + put '%let cmpval=%sysfunc(getoption(cmplib));'; + put '%let found=0;'; + put '%do i=1 %to %sysfunc(countw(&cmpval,%str( %(%))));'; + put '%let var=%scan(&cmpval,&i,%str( %(%)));'; + put '%if &var=&lib..&cat %then %let found=1;'; + put '%end;'; + put '%if &found=0 %then %do;'; + put 'options insert=(CMPLIB=(&lib..&cat));'; + put '%end;'; + put '%mend mcf_length;'; + put '%macro mf_getvarcount(libds,typefilter=A'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid nvars rc outcnt x;'; + put '%let dsid=%sysfunc(open(&libds));'; + put '%let nvars=.;'; + put '%let outcnt=0;'; + put '%let typefilter=%upcase(&typefilter);'; + put '%if &dsid %then %do;'; + put '%let nvars=%sysfunc(attrn(&dsid,NVARS));'; + put '%if &typefilter=A %then %let outcnt=&nvars;'; + put '%else %if &nvars>0 %then %do x=1 %to &nvars;'; + put '/* increment based on variable type */'; + put '%if %sysfunc(vartype(&dsid,&x))=&typefilter %then %do;'; + put '%let outcnt=%eval(&outcnt+1);'; + put '%end;'; + put '%end;'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%else %do;'; + put '%put unable to open &libds (rc=&dsid);'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '&outcnt'; + put '%mend mf_getvarcount;'; + put '%macro mf_getvartype(libds /* two level name */'; + put ', var /* variable name from which to return the type */'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid vnum vtype rc;'; + put '/* Open dataset */'; + put '%let dsid = %sysfunc(open(&libds));'; + put '%if &dsid. > 0 %then %do;'; + put '/* Get variable number */'; + put '%let vnum = %sysfunc(varnum(&dsid, &var));'; + put '/* Get variable type (C/N) */'; + put '%if(&vnum. > 0) %then %let vtype = %sysfunc(vartype(&dsid, &vnum.));'; + put '%else %do;'; + put '%put NOTE: Variable &var does not exist in &libds;'; + put '%let vtype = %str( );'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: dataset &libds not opened! (rc=&dsid);'; + put '%put &sysmacroname: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '/* Close dataset */'; + put '%let rc = %sysfunc(close(&dsid));'; + put '/* Return variable type */'; + put '&vtype'; + put '%mend mf_getvartype;'; + put '%macro mf_getVarFormat(libds /* two level ds name */'; + put ', var /* variable name from which to return the format */'; + put ', force=0'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid vnum vformat rc vlen vtype;'; + put '/* Open dataset */'; + put '%let dsid = %sysfunc(open(&libds));'; + put '%if &dsid > 0 %then %do;'; + put '/* Get variable number */'; + put '%let vnum = %sysfunc(varnum(&dsid, &var));'; + put '/* Get variable format */'; + put '%if(&vnum > 0) %then %let vformat=%sysfunc(varfmt(&dsid, &vnum));'; + put '%else %do;'; + put '%put NOTE: Variable &var does not exist in &libds;'; + put '%let rc = %sysfunc(close(&dsid));'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: dataset &libds not opened! (rc=&dsid);'; + put '%put &sysmacroname: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '/* supply a default if no format available */'; + put '%if %length(&vformat)<2 & &force=1 %then %do;'; + put '%let vlen = %sysfunc(varlen(&dsid, &vnum));'; + put '%let vtype = %sysfunc(vartype(&dsid, &vnum.));'; + put '%if &vtype=C %then %let vformat=$&vlen..;'; + put '%else %let vformat=best.;'; + put '%end;'; + put '/* Close dataset */'; + put '%let rc = %sysfunc(close(&dsid));'; + put '/* Return variable format */'; + put '&vformat'; + put '%mend mf_getVarFormat;'; + put '%macro mp_getmaxvarlengths('; + put 'libds'; + put ',num2char=NO'; + put ',outds=work.mp_getmaxvarlengths'; + put ')/*/STORE SOURCE*/;'; + put '%local vars prefix x var fmt srcds;'; + put '%let vars=%mf_getvarlist(libds=&libds);'; + put '%let prefix=%substr(%mf_getuniquename(),1,25);'; + put '%let num2char=%upcase(&num2char);'; + put '%if &num2char=NO %then %do;'; + put '/* compile length function for numeric fields */'; + put '%mcf_length(wrap=YES, insert_cmplib=YES)'; + put '%end;'; + put '%if &num2char=NO'; + put 'and ("%substr(&sysver,1,1)"="4" or "%substr(&sysver,1,1)"="5")'; + put 'and %mf_getvarcount(&libds,typefilter=N) gt 0'; + put '%then %do;'; + put '/* custom functions not supported in summary operations */'; + put '%let srcds=%mf_getuniquename();'; + put 'data &srcds/view=&srcds;'; + put 'set &libds;'; + put '%do x=1 %to %sysfunc(countw(&vars,%str( )));'; + put '%let var=%scan(&vars,&x);'; + put '%if %mf_getvartype(&libds,&var)=N %then %do;'; + put '&prefix.&x=mcf_length(&var);'; + put '%end;'; + put '%end;'; + put 'run;'; + put '%end;'; + put '%else %let srcds=&libds;'; + put 'proc sql;'; + put 'create table &outds (rename=('; + put '%do x=1 %to %sysfunc(countw(&vars,%str( )));'; + put '&prefix.&x=%scan(&vars,&x)'; + put '%end;'; + put '))'; + put 'as select'; + put '%do x=1 %to %sysfunc(countw(&vars,%str( )));'; + put '%let var=%scan(&vars,&x);'; + put '%if &x>1 %then ,;'; + put '%if %mf_getvartype(&libds,&var)=C %then %do;'; + put 'max(lengthn(&var)) as &prefix.&x'; + put '%end;'; + put '%else %if &num2char=YES %then %do;'; + put '%let fmt=%mf_getvarformat(&libds,&var);'; + put '%put fmt=&fmt;'; + put '%if %str(&fmt)=%str() %then %do;'; + put 'max(lengthn(cats(&var))) as &prefix.&x'; + put '%end;'; + put '%else %do;'; + put 'max(lengthn(put(&var,&fmt))) as &prefix.&x'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%if "%substr(&sysver,1,1)"="4" or "%substr(&sysver,1,1)"="5" %then %do;'; + put 'max(&prefix.&x) as &prefix.&x'; + put '%end;'; + put '%else %do;'; + put 'max(mcf_length(&var)) as &prefix.&x'; + put '%end;'; + put '%end;'; + put '%end;'; + put 'from &srcds;'; + put 'proc transpose data=&outds'; + put 'out=&outds(rename=(_name_=NAME COL1=MAXLEN));'; + put 'run;'; + put '%mend mp_getmaxvarlengths;'; + put '%macro mp_validatecol(incol,rule,outcol);'; + put '/* tempcol is given a unique name with every invocation */'; + put '%local tempcol;'; + put '%let tempcol=%mf_getuniquename();'; + put '%if &rule=ISINT %then %do;'; + put '&outcol=0;'; + put 'if not missing(&incol) then do;'; + put '&tempcol=input(&incol,?? best32.);'; + put 'if not missing(&tempcol) then if mod(&tempcol,1)=0 then &outcol=1;'; + put 'end;'; + put 'drop &tempcol;'; + put '%end;'; + put '%else %if &rule=ISNUM %then %do;'; + put '/*'; + put 'credit SØREN LASSEN'; + put 'https://sasmacro.blogspot.com/2009/06/welcome-isnum-macro.html'; + put '*/'; + put '&tempcol=input(&incol,?? best32.);'; + put 'if missing(&tempcol) then &outcol=0;'; + put 'else &outcol=1;'; + put 'drop &tempcol;'; + put '%end;'; + put '%else %if &rule=LIBDS %then %do;'; + put '/* match libref.dataset */'; + put 'if _n_=1 then do;'; + put 'retain &tempcol;'; + put '&tempcol=prxparse(''/^[_a-z]\w{0,7}\.[_a-z]\w{0,31}$/i'');'; + put 'if missing(&tempcol) then do;'; + put 'putlog "%str(ERR)OR: Invalid expression for LIBDS";'; + put 'stop;'; + put 'end;'; + put 'drop &tempcol;'; + put 'end;'; + put 'if prxmatch(&tempcol, trim(&incol)) then &outcol=1;'; + put 'else &outcol=0;'; + put '%end;'; + put '%else %if &rule=FORMAT %then %do;'; + put '/* match valid format - regex could probably be improved */'; + put 'if _n_=1 then do;'; + put 'retain &tempcol;'; + put '&tempcol=prxparse(''/^[_a-z\$]\w{0,31}\.[0-9]*$/i'');'; + put 'if missing(&tempcol) then do;'; + put 'putlog "%str(ERR)OR: Invalid expression for FORMAT";'; + put 'stop;'; + put 'end;'; + put 'drop &tempcol;'; + put 'end;'; + put 'if prxmatch(&tempcol, trim(&incol)) then &outcol=1;'; + put 'else &outcol=0;'; + put '%end;'; + put '%mend mp_validatecol;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file getdata.sas'; + put '@brief Returns a dataset to the editor front end'; + put '@details'; + put '

Service Inputs

'; + put '
SASCONTROLTABLE
'; + put '|LIBDS:$41.|FILTER_RK:$5.|'; + put '|---|---|'; + put '|DC258467.MPE_X_TEST|-1|'; + put '

Service Outputs

'; + put '
sasdata
'; + put '
sasparams
'; + put 'Contains info on the request. One row is returned.'; + put '* CLS_FLG - set to 0 if there are no CLS rules (everything should be editable)'; + put 'else set to 1 (CLS rules exist)'; + put '
approvers
'; + put '
dqrules
'; + put '
dqdata
'; + put '
cols
'; + put 'Contains column level attributes.'; + put '@li NAME - column name'; + put '@li VARNUM - variable position. Source: https://core.sasjs.io/mp__getcols_8sas.html'; + put '@li LABEL - variable label. Source: https://core.sasjs.io/mp__getcols_8sas.html'; + put '@li FMTNAME - derived format name. Source: https://core.sasjs.io/mp__getcols_8sas.html'; + put '@li DDTYPE - derived dropdown type. Source: https://core.sasjs.io/mp__getcols_8sas.html'; + put '@li CLS_RULE - values include:'; + put '- EDIT - the column is editable'; + put '- READ - the column should be readonly'; + put '- HIDE - the column should be hidden'; + put '@li memlabel'; + put '@li desc- augmented with MPE_DATADICTIONARY if exists, else label'; + put '@li longdesc - from MPE_DATADICTIONARY'; + put '
maxvarlengths
'; + put '
xl_rules
'; + put '
query
'; + put '

SAS Macros

'; + put '@li dc_assignlib.sas'; + put '@li dc_getgroupmembers.sas'; + put '@li mf_existvar.sas'; + put '@li mf_getattrn.sas'; + put '@li mf_getvarlist.sas'; + put '@li mf_existds.sas'; + put '@li mf_getquotedstr.sas'; + put '@li mf_getuser.sas'; + put '@li mf_nobs.sas'; + put '@li mf_verifymacvars.sas'; + put '@li mf_wordsinstr1butnotstr2.sas'; + put '@li mp_abort.sas'; + put '@li mp_cntlout.sas'; + put '@li mp_dsmeta.sas'; + put '@li mp_getcols.sas'; + put '@li mp_getmaxvarlengths.sas'; + put '@li mp_validatecol.sas'; + put '@li mpe_accesscheck.sas'; + put '@li mpe_columnlevelsecurity.sas'; + put '@li mpe_getlabels.sas'; + put '@li mpe_filtermaster.sas'; + put '@li mpe_runhook.sas'; + put '@version 9.2'; + put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; + put 'downloaded from here: https://4gl.uk/dcdeploy'; + put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; + put 'and may not be re-distributed or re-sold without the express permission of'; + put '4GL Apps Ltd.'; + put '**/'; + put '%mpeinit()'; + put '/**'; + put '* Validate inputs'; + put '*/'; + put 'data work.intest;'; + put 'length filter_rk 8;'; + put 'set work.SASCONTROLTABLE;'; + put '/* validate filter_rk */'; + put 'if filter_rk le 0 then filter_rk=-1;'; + put 'call symputx(''orig_libds'',upcase(libds));'; + put 'is_fmt=0;'; + put 'if substr(cats(reverse(libds)),1,3)=:''CF-'' then do;'; + put 'libds=scan(libds,1,''-'');'; + put 'putlog "Format Catalog Captured";'; + put 'is_fmt=1;'; + put 'libds=''work.fmtextract'';'; + put 'call symputx(''libds'',libds);'; + put 'end;'; + put 'call symputx(''is_fmt'',is_fmt);'; + put 'putlog (_all_)(=);'; + put '/* validate libds */'; + put '%mp_validatecol(LIBDS,LIBDS,is_libds)'; + put 'if is_libds=0 then do;'; + put 'putlog ''ERR'' ''OR: Invalid libds:'' libds;'; + put 'stop;'; + put 'end;'; + put 'else do;'; + put 'call symputx(''filter_rk'',filter_rk);'; + put 'call symputx(''libds'',libds);'; + put 'end;'; + put 'output;'; + put 'stop;'; + put 'run;'; + put '%mp_abort(iftrue= (%mf_nobs(work.intest)=0)'; + put ',mac=&_program'; + put ',msg=%str(Some err with service inputs)'; + put ')'; + put '%mp_abort('; + put 'iftrue=(%mf_verifymacvars(libds filter_rk)=0)'; + put ',mac=&_program'; + put ',msg=%str(Missing: libds filter_rk)'; + put ')'; + put '/* export format catalog */'; + put '%mp_cntlout('; + put 'iftrue=(&is_fmt=1)'; + put ',libcat=&orig_libds'; + put ',fmtlist=0'; + put ',cntlout=work.fmtextract'; + put ')'; + put '/* stream back meta info, further calls will return col metadata and actual data'; + put '*/'; + put '%let libref=%upcase(%scan(&libds,1,.));'; + put '%let dsn=%upcase(%scan(&libds,2,.));'; + put '%dc_assignlib(WRITE,&libref)'; + put '/**'; + put '* First check user has access permission to edit the table'; + put '*/'; + put '%put checking access;'; + put '%let user=%mf_getuser();'; + put '%mpe_accesscheck(&orig_libds,outds=mw_auth,user=&user,access_level=EDIT)'; + put '%mp_abort(iftrue= (%mf_getattrn(work.mw_auth,NLOBS)=0)'; + put ',mac=mpestp_getdata.sas'; + put ',msg=&user is not authorised to edit &orig_libds %trim('; + put ')in the &mpelib..MPE_SECURITY table'; + put ')'; + put '%mp_abort(iftrue= ( %mf_existds(libds=&libds) ne 1)'; + put ',mac=mpestp_getdata.sas'; + put ',msg=dataset &libds does not exist!!'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(syscc=&syscc at line 60 )'; + put ')'; + put '%global loadtype var_txfrom var_txto var_processed filter_text pk coltype'; + put 'sortpk;'; + put '%put getting table attributes;'; + put 'proc sql noprint;'; + put 'select upcase(loadtype)'; + put ',var_txfrom,var_txto'; + put ',var_busfrom,var_busto'; + put ',var_processed,rk_underlying,buskey'; + put ',coalesce(rk_underlying,buskey)'; + put ',pre_edit_hook'; + put ',case when missing(rk_underlying) then buskey else rk_underlying end'; + put 'into: loadtype,:var_txfrom,:var_txto'; + put ',:var_busfrom ,:var_busto'; + put ',:var_processed,:rk_underlying,:buskey, :sortPK, :pre_edit_hook,:pk'; + put 'from &mpelib..mpe_tables'; + put 'where &dc_dttmtfmt. lt TX_TO'; + put 'and upcase(dsn)="%scan(&orig_libds,2,.)"'; + put 'and upcase(libref)="%scan(&orig_libds,1,.)";'; + put '%put preparing filter query:;'; + put '%mpe_filtermaster(EDIT,&orig_libds,'; + put 'dclib=&mpelib,'; + put 'filter_rk=&filter_rk,'; + put 'outref=filtref,'; + put 'outds=work.query'; + put ')'; + put '%macro mpestp_getdata();'; + put '%if not %symexist(DC_MAXOBS_WEBEDIT) %then %do;'; + put '%put NOTE:;%put NOTE- DC_MAXOBS_WEBEDIT not found!;'; + put '%put NOTE- Please add to &mpelib..MPE_CONFIG table;'; + put '%put NOTE-;%put NOTE-;'; + put '%global DC_MAXOBS_WEBEDIT;'; + put '%let DC_MAXOBS_WEBEDIT=500;'; + put '%end;'; + put '/* for tables which use RKs/SKs then we just expose the business key to'; + put 'users - this lets uploads be sent to multiple environments (with'; + put 'potentially different RK/SK values for the same business key).'; + put 'Note that the config table has the RK column in the buskey field in'; + put 'this scenario. */'; + put '%if %length(&rk_underlying)>0 %then %let drop_rk=&buskey;'; + put '%else %let drop_rk=;'; + put '/* always remove the PROCESSED_DTTM column, if it exists */'; + put '%if %length(&var_processed)=0 %then %do;'; + put '%if %mf_existvar(&libds,PROCESSED_DTTM)>0 %then'; + put '%let var_processed=PROCESSED_DTTM;'; + put '%end;'; + put '/**'; + put '* Now get the slice of the actual table'; + put '*/'; + put 'options obs=10000;'; + put '%if &loadtype=BITEMPORAL %then %do;'; + put 'data out (drop=&var_txfrom &var_txto &var_processed &drop_rk );'; + put '_____DELETE__THIS__RECORD_____="No";'; + put 'set &libds;'; + put 'where %inc filtref;;'; + put 'run;'; + put 'proc sort data=out;'; + put 'by &pk &var_busfrom;'; + put 'run;'; + put 'data out;'; + put 'set out;'; + put 'by &pk &var_busfrom;'; + put 'if last.%scan(&pk,-1);'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put 'data out (drop=&var_txfrom &var_txto &var_processed &drop_rk);'; + put '_____DELETE__THIS__RECORD_____="No";'; + put 'set &libds;'; + put 'where %inc filtref;;'; + put 'run;'; + put '%end;'; + put 'options obs=max;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Issue with filtering (line 165) )'; + put ')'; + put 'options obs=&DC_MAXOBS_WEBEDIT;'; + put '%let sortpk=%sysfunc(coalescec(&sortpk &var_busfrom,_ALL_));'; + put 'proc sort data=work.out; by &sortPK; run;'; + put 'options obs=max;'; + put '%mpe_runhook(PRE_EDIT_HOOK)'; + put '%let obscnt=%mf_getattrn(work.out,NLOBS);'; + put '%mp_abort(iftrue=(&obscnt>&DC_MAXOBS_WEBEDIT)'; + put ',mac=&_program'; + put ',msg=Table is too big (&obscnt rows) - please filter and try again!'; + put ')'; + put '/* order delete var and pk fields at start of table */'; + put '%let sourcevars=%mf_wordsInStr1ButNotStr2('; + put 'Str1=%mf_getvarlist(work.out)'; + put ',Str2= _____DELETE__THIS__RECORD_____ &pk'; + put ');'; + put '%put sourcevars=&sourcevars;'; + put 'data outdata;'; + put '/* delete & pk fields come first */'; + put 'attrib _____DELETE__THIS__RECORD_____ &pk label='''';'; + put '/* keep remaining variable order */'; + put '%if %length(&sourcevars)>0 %then %do;'; + put 'attrib &sourcevars label='''';'; + put '%end;'; + put '_____DELETE__THIS__RECORD_____="No ";'; + put '%if %mf_nobs(work.out)=0 %then %do;'; + put '/* send empty row if empty table to help with hot rendering */'; + put 'output;'; + put '%end;'; + put 'set work.out ;'; + put 'run;'; + put '/* get list of variables and their formats */'; + put 'proc contents noprint data=outdata'; + put 'out=vars(keep=name type length varnum format: label);'; + put 'run;'; + put 'proc sort;'; + put 'by varnum;'; + put 'run;'; + put 'data vars3(keep=name type length format label pk varnum ctrloptions formatd);'; + put 'set vars(rename=(format=format2 type=type2));'; + put 'name=upcase(name);'; + put '/* not interested in transaction or processing dates'; + put '(append table must be supplied without them) */'; + put 'if name not in ("&VAR_TXFROM","&VAR_TXTO","&VAR_PROCESSED");'; + put 'if type2=2 or type2=6 then do;'; + put 'length format $49.;'; + put 'if format2='''' then format=cats(''$'',length,''.'');'; + put 'else format=cats(format2,formatl,''.'');'; + put 'type=''char'';'; + put 'end;'; + put 'else do;'; + put 'if format2='''' then format=cats(length,''.'');'; + put 'else if upcase(format2)=''DATETIME'' and formatl=0 then format=''DATETIME.'';'; + put 'else format=cats(format2,formatl,''.'',formatd);'; + put 'type=''num'';'; + put 'end;'; + put 'if name in ('''',%upcase(%mf_getQuotedStr(&pk,dlm=%str(,),quote=S)))'; + put 'then PK=''YES'';'; + put 'length ctrlOptions $500;'; + put 'if name="_____DELETE__THIS__RECORD_____" then ctrlOptions=''["No","Yes"]'';'; + put 'else ctrlOptions='''';'; + put 'run;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(syscc=&syscc at 242 (vars3 step) in &_program \n'; + put '%superq(syserrortext)'; + put ')'; + put ')'; + put '%global jsdttmvars jsdtvars jstmvars;'; + put 'data _null_;'; + put 'set vars3 end=last;'; + put 'if _n_>1 then comma='','';'; + put 'length coltype $500.;'; + put 'format=upcase(format);'; + put 'coltype=cats(comma,''{"data":"'',name,''"'');'; + put 'if ctrlOptions ne '''' then'; + put 'colType=cats(coltype,'',"type":"dropdown","source":'',ctrlOptions,"}");'; + put 'else if type=''num'' then do;'; + put 'if format=:''DATETIME'' or format=:''E8601DT'' then do;'; + put 'colType=cats(coltype'; + put ','',"type":"date","dateFormat":"YYYY-MM-DD HH:mm:ss"'''; + put ','',"correctFormat":"true"}'');'; + put '/* build var list to reformat datetimes in javascript format */'; + put 'call symput(''jsdttmvars'',symget(''jsdttmvars'')!!'' ''!!name);'; + put 'end;'; + put 'else if format=:''DATE'' or format=:''DDMMYY'' or format=:''MMDDYY'''; + put 'or format=:''YYMMDD'' or format=:''E8601DA'' or format=:''B8601DA'''; + put 'or format=:''MONYY'''; + put 'then do;'; + put '/* see bottom of file for more date formats!! */'; + put '/* also when updating, update stagedata.sas and mp_getcols.sas'; + put 'and mpe_loader.sas */'; + put 'colType=cats(coltype,'',"type":"date","dateFormat":"YYYY-MM-DD"'''; + put '/*colType=cats(coltype,'',"type":"date","dateFormat":"MM/DD/YYYY"''*/'; + put ','',"correctFormat":"true"}'');'; + put '/* build var list to reformat as javascript dates */'; + put 'call symput(''jsdtvars'',symget(''jsdtvars'')!!'' ''!!name);'; + put 'end;'; + put 'else if format=:''TIME'' or format=:''HHMM'' then do;'; + put 'colType=cats(coltype,'',"type":"time","timeFormat":"HH:mm:ss"'''; + put ','',"correctFormat":"true"}'');'; + put '/* build var list to reformat as javascript times */'; + put 'call symput(''jstmvars'',symget(''jstmvars'')!!'' ''!!name);'; + put 'end;'; + put 'else do;'; + put '/* is standard numeric but need to ascertain precision */'; + put 'retain base ''000000000000000000'';'; + put 'if formatd>0 then numFormat=cats(''.'',substr(base,1,formatd));'; + put 'colType=cats(coltype,'',"type":"numeric","format":"0'',numFormat,''"}'');'; + put 'end;'; + put 'end;'; + put 'else colType=cats(coltype,''}'');'; + put 'length concatcoltype $32767;'; + put 'retain concatcoltype;'; + put 'concatcoltype=cats(concatcoltype,coltype);'; + put 'if last then call symputx(''colType'',strip(concatcoltype),''g'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(syscc=&syscc at 283 (null step) in &_program)'; + put ')'; + put 'PROC FORMAT;'; + put 'picture yymmddThhmmss (default=28) other=''%0Y-%0m-%0d %0H:%0M:%0s'''; + put '(datatype=datetime);'; + put 'picture JSyymmdd other=''%0Y-%0m-%0d'' (datatype=date);'; + put 'picture JShhmmss (default=16) other=''%0H:%0M:%0s'' (datatype=time);'; + put 'RUN;'; + put '/* before we send the data, need to rebuild all date & datetime vars as char*/'; + put '%let finalvars=%mf_getvarlist(work.outdata);'; + put 'data sasdata;'; + put '/* set formats & col order ahead of rename+import */'; + put 'informat &finalvars ;'; + put '/* read dataset and rename date / datetime vars as necessary */'; + put 'set outdata'; + put '%if %length(&jsdttmvars&jsdtvars&jstmvars)>0 %then %do;'; + put '(rename=('; + put '%local dtvarnum dtvar tmvar;'; + put '/* temp datetime vars end in _____ */'; + put '%do dtvarnum=1 %to %sysfunc(countw(&jsdttmvars,%str( )));'; + put '%let dtvar=%scan(&jsdttmvars ,&dtvarnum);'; + put '&dtvar=_____&dtvarnum._____'; + put '%end;'; + put '/* temp date vars do not end in _____ */'; + put '%do dtvarnum=1 %to %sysfunc(countw(&jsdtvars,%str( )));'; + put '%let dtvar=%scan( &jsdtvars,&dtvarnum);'; + put '&dtvar=_____&dtvarnum'; + put '%end;'; + put '/* temp time vars end in ___tm */'; + put '%do tmvarnum=1 %to %sysfunc(countw(&jstmvars,%str( )));'; + put '%let tmvar=%scan( &jstmvars,&tmvarnum);'; + put '&tmvar=_____&tmvarnum.___tm'; + put '%end;'; + put '))'; + put '%end;'; + put ';'; + put '%if %length(&jsdttmvars)>0 %then %do ;'; + put '%do dtvarnum=1 %to %sysfunc(countw(&jsdttmvars,%str( )));'; + put '%let dtvar=%scan(&jsdttmvars,&dtvarnum);'; + put '&dtvar=cats(put(_____&dtvarnum._____,yymmddThhmmss28.));'; + put 'if &dtvar="ERROR" then call missing(&dtvar);'; + put 'drop _____&dtvarnum._____;'; + put '%end;'; + put '%end;'; + put '%if %length(&jsdtvars)>0 %then %do;'; + put '%do dtvarnum=1 %to %sysfunc(countw(&jsdtvars,%str( )));'; + put '%let dtvar=%scan(&jsdtvars,&dtvarnum);'; + put '&dtvar=cats(put(_____&dtvarnum,JSyymmdd.));'; + put 'if &dtvar="ERROR" then call missing(&dtvar);'; + put 'drop _____&dtvarnum;'; + put '%end;'; + put '%end;'; + put '%if %length(&jstmvars)>0 %then %do;'; + put '%do tmvarnum=1 %to %sysfunc(countw(&jstmvars,%str( )));'; + put '%let tmvar=%scan(&jstmvars,&tmvarnum);'; + put '&tmvar=cats(put(_____&tmvarnum.___tm,JShhmmss14.));'; + put 'if &tmvar="ERROR" then call missing(&tmvar);'; + put 'drop _____&tmvarnum.___tm;'; + put '%end;'; + put '%end;'; + put 'output;'; + put 'run;'; + put '/* get the relevant approvers for the drop down */'; + put '%put getting approvers;'; + put '%local sas_groups sas_i sas_group;'; + put 'proc sql noprint;'; + put 'select distinct sas_Group into: sas_groups separated by "|"'; + put 'from &mpelib..mpe_security'; + put 'where libref="%scan(&orig_libds,1,.)"'; + put 'and dsn="%scan(&orig_libds,2,.)"'; + put 'and access_level=''APPROVE'''; + put 'and &dc_dttmtfmt. lt TX_TO;'; + put '%if %length(&sas_groups)=0 %then %do;'; + put '%dc_getgroupmembers(&dc_admin_group,outds=work.access1)'; + put '%end;'; + put '%else %do sas_i=1 %to %sysfunc(countw(&sas_groups,%str(|)));'; + put '%let sas_group=%scan(&sas_Groups,&sas_i,%str(|));'; + put '%dc_getgroupmembers(&sas_group,outds=work.temp&sas_i)'; + put 'proc append base=work.access1 data=work.temp&sas_i;run;'; + put '%end;'; + put '%mend mpestp_getdata;'; + put '%mpestp_getdata()'; + put '%mp_abort(mode=INCLUDE)'; + put '/* extract column level security rules */'; + put '%mpe_columnlevelsecurity(%scan(&libds,1,.),%scan(&libds,2,.),work.sasdata'; + put ',mode=EDIT'; + put ',clsds=&mpelib..mpe_column_level_security'; + put ',groupds=work.groups /* was created in mpe_filtermaster */'; + put ',outds=work.sasdata1'; + put ',outmeta=work.cls_rules'; + put ')'; + put '/* get labels */'; + put '%mpe_getlabels(COLUMNS,sasdata1,outds=spec)'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc extracting spec info)'; + put ')'; + put '/* extract col info */'; + put '%mp_getcols(&libds, outds=cols1)'; + put '/* join with cls rules */'; + put 'proc sql;'; + put 'create table work.cols as'; + put 'select a.NAME'; + put ',a.VARNUM'; + put ',a.LABEL'; + put ',a.FMTNAME'; + put ',a.DDTYPE'; + put ',case b.cls_hide'; + put 'when 1 then ''HIDE'''; + put 'when 0 then ''EDIT'''; + put 'else ''READ'' end as CLS_RULE'; + put ',c.memlabel'; + put ',c.desc'; + put ',c.longdesc'; + put 'from work.cols1 a'; + put 'left join work.cls_rules b'; + put 'on a.NAME=b.CLS_VARIABLE_NM'; + put 'left join work.spec c'; + put 'on a.NAME=c.NAME;'; + put 'proc sql;'; + put 'create table approvers as select distinct membername as personname'; + put ',membername as email, membername as userid'; + put 'from work.access1;'; + put '/*'; + put 'create table access3 as select b.userid,b.email'; + put 'from access2 a'; + put ',support.users b'; + put 'where a.personname=b.userid'; + put 'and a.personname ne "%mf_getuser()"'; + put 'and %sysfunc(datetime()) lt b.tx_to_dttm'; + put 'order by 1;'; + put '*/'; + put 'data _null_;'; + put 'infile filtref end=eof;'; + put 'input;'; + put 'length filter_text $32767;'; + put 'retain filter_text;'; + put 'filter_text=catx('' '',filter_text,_infile_);'; + put 'if eof then do;'; + put 'if cats(filter_text)=''1=1'' then filter_text='''';'; + put 'call symputx(''filter_text'',filter_text);'; + put 'end;'; + put 'run;'; + put '%put params;'; + put 'data sasparams;'; + put 'length colHeaders $20000 filter_text $32767;'; + put 'colHeaders=cats(upcase("%mf_getvarlist(sasdata1,dlm=%str(,))"));'; + put 'pkCnt=countw("&pk");'; + put 'pk="&pk";'; + put 'dtvars=compbl("&jsdtvars");'; + put 'dttmvars=compbl("&jsdttmvars");'; + put 'tmvars=compbl("&jstmvars");'; + put 'length coltype $32000;'; + put 'coltype=symget(''coltype'');'; + put 'loadtype=symget(''loadtype'');'; + put 'if trim(symget(''rk_underlying'')) ne '''' then rk_flag=1;'; + put 'else rk_flag=0;'; + put 'filter_text=symget(''filter_text'');'; + put 'if %mf_nobs(work.cls_rules)=0 then cls_flag=0;'; + put 'else cls_flag=1;'; + put 'put (_all_)(=);'; + put 'run;'; + put '/* Extract validation DQ Rules */'; + put 'proc sort data=&mpelib..mpe_validations'; + put '(where=(&dc_dttmtfmt. le TX_TO'; + put 'and BASE_LIB="%scan(&orig_libds,1,.)" and BASE_DS="%scan(&orig_libds,2,.)"'; + put 'and rule_active=1))'; + put 'out=dqrules (keep=base_col rule_type rule_value);'; + put 'by base_col rule_type rule_value;'; + put 'run;'; + put '/* merge with NOTNULL constraints in the physical table */'; + put 'proc sql;'; + put 'create table _data_ as'; + put 'select * from dqrules'; + put 'union'; + put 'select upcase(name) as base_col'; + put ',''NOTNULL'' as rule_type'; + put ','''' as rule_value'; + put 'from dictionary.columns'; + put 'where upcase(libname)="%scan(&orig_libds,1,.)"'; + put 'and upcase(memname)="%scan(&orig_libds,2,.)"'; + put 'and upcase(name) in (select name from vars3)'; + put 'and notnull=''yes'''; + put 'order by 1,2,3;'; + put 'data dqrules;'; + put 'set &syslast;'; + put 'by base_col rule_type rule_value;'; + put 'if last.rule_type;'; + put 'if rule_type in (''HARDSELECT'',''SOFTSELECT'') and countw(rule_value)=3 then'; + put 'do;'; + put 'retain x 0; x+1;'; + put 'call symputx(cats(''source'',x),rule_value);'; + put '%let sourcecnt=0;'; + put 'call symputx(''sourcecnt'',x);'; + put 'call symputx(cats(''base_col'',x),base_col);'; + put 'end;'; + put 'run;'; + put 'proc sql;'; + put 'create table dqdata as'; + put 'select distinct base_column as base_col length=32'; + put ',upcase(base_column) as rule_value length=74 /* deprecated */'; + put ',selectbox_value as rule_data length=1000'; + put ',selectbox_order'; + put 'from &mpelib..mpe_selectbox'; + put 'where &dc_dttmtfmt. lt ver_to_dttm'; + put 'and select_lib="%scan(&orig_libds,1,.)"'; + put 'and select_ds="%scan(&orig_libds,2,.)";'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc during DQ rule validation)'; + put ')'; + put '/* extract selectbox data */'; + put '%macro dq_selects();'; + put '%local x source lib ds col;'; + put '%do x=1 %to &sourcecnt;'; + put '%let source=&&source&x;'; + put '%let lib=%scan(&source,1,.);'; + put '%let ds=%scan(&source,2,.);'; + put '%let col=%scan(&source,3,.);'; + put '%put &=source;'; + put '%put &=lib;'; + put '%dc_assignlib(READ,&lib)'; + put 'proc sql;'; + put 'create table dqdata&x as'; + put 'select distinct "&&base_col&x" as base_col length=32'; + put ',"&source" as rule_value length=74'; + put ',cats(&col) as rule_data length=1000'; + put ',0 as selectbox_order'; + put 'from &lib..&ds'; + put 'order by 1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc when selecting &&base_col&x from &orig_libds)'; + put ')'; + put 'proc append base=dqdata data=dqdata&x;run;'; + put 'proc sql; drop table dqdata&x;'; + put '%end;'; + put '%mend dq_selects;'; + put '%dq_selects()'; + put 'proc sort data=dqdata;'; + put 'by base_col selectbox_order;'; + put 'run;'; + put '%mp_getmaxvarlengths(work.sasdata1,outds=maxvarlengths)'; + put 'data maxvarlengths;'; + put 'set maxvarlengths;'; + put 'if name=''_____DELETE__THIS__RECORD_____'' then mAXLEN=3;'; + put 'run;'; + put 'data xl_rules;'; + put 'set &mpelib..mpe_excel_config;'; + put 'where &dc_dttmtfmt. lt tx_to;'; + put 'where also upcase(xl_libref)="%scan(&orig_libds,1,.)";'; + put 'where also upcase(xl_table)="%scan(&orig_libds,2,.)";'; + put 'where also xl_active=1;'; + put 'keep xl_column xl_rule;'; + put 'run;'; + put '%mp_dsmeta(&libds, outds=dsmeta)'; + put '/* send to the client */'; + put '%webout(OPEN)'; + put '%webout(OBJ,approvers)'; + put '%webout(OBJ,cols)'; + put '%webout(OBJ,dqdata)'; + put '%webout(OBJ,dqrules)'; + put '%webout(OBJ,dsmeta)'; + put '%webout(OBJ,maxvarlengths)'; + put '%webout(OBJ,query)'; + put '%webout(OBJ,sasdata1,fmt=N,missing=STRING,showmeta=YES,dslabel=sasdata)'; + put '%webout(OBJ,sasparams)'; + put '%webout(OBJ,xl_rules)'; + put '%webout(CLOSE)'; + put '/*'; + put '$N8601Bw'; + put '$N8601BAw'; + put '$N8601Ew'; + put '$N8601EAw'; + put '$N8601EHw'; + put '$N8601EXw'; + put '$N8601Hw'; + put '$N8601Xw'; + put 'B8601DAw'; + put 'B8601DNw'; + put 'B8601DTw'; + put 'B8601DZw'; + put 'B8601LZw'; + put 'B8601TMw'; + put 'B8601TZw'; + put 'DATEw'; + put 'DATEAMPMw'; + put 'DATETIMEw'; + put 'DAYw'; + put 'DDMMYYw'; + put 'DDMMYYxw'; + put 'DOWNAMEw'; + put 'DTDATEw'; + put 'DTMONYYw'; + put 'DTWKDATXw'; + put 'DTYEARw'; + put 'DTYYQCw'; + put 'E8601DAw'; + put 'E8601DNw'; + put 'E8601DTw'; + put 'E8601DZw'; + put 'E8601LZw'; + put 'E8601TMw'; + put 'E8601TZw'; + put 'HHMMw'; + put 'HOURw'; + put 'JULDAYw'; + put 'JULIANw'; + put 'MMDDYYw'; + put 'MMDDYYxw'; + put 'MMSSw'; + put 'MMYYw'; + put 'MMYYxw'; + put 'MONNAMEw'; + put 'MONTHw'; + put 'MONYYw'; + put 'PDJULGw'; + put 'PDJULIw'; + put 'QTRw'; + put 'QTRRw'; + put 'TIMEw'; + put 'TIMEAMPMw'; + put 'TODw'; + put 'WEEKDATEw'; + put 'WEEKDATXw'; + put 'WEEKDAYw'; + put 'WEEKUw'; + put 'WEEKVw'; + put 'WEEKWw'; + put 'WORDDATEw'; + put 'WORDDATXw'; + put 'YEARw'; + put 'YYMMw'; + put 'YYMMxw'; + put 'YYMMDDw'; + put 'YYMMDDxw'; + put 'YYMONw'; + put 'YYQw'; + put 'YYQxw'; + put 'YYQRw'; + put 'YYQRxw'; + put '$N8601BAw'; + put '$N8601Ew'; + put '$N8601EAw'; + put '$N8601EHw'; + put '$N8601EXw'; + put '$N8601Hw'; + put '$N8601Xw'; + put 'B8601DAw'; + put 'B8601DNw'; + put 'B8601DTw'; + put 'B8601DZw'; + put 'B8601LZw'; + put 'B8601TMw'; + put 'B8601TZw'; + put 'E8601DAw'; + put 'E8601DNw'; + put 'E8601DTw'; + put 'E8601DZw'; + put 'E8601LZw'; + put 'E8601TMw'; + put 'E8601TZw'; + put '*/'; + put '%mpeterm()'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=getdynamiccolvals; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Files

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as FMTCAT,'; + put 'FMTNAME'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'LENGTH num'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.length as MAXW'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put ')))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] workobs= (0) When set to a positive integer, will create a new'; + put 'output object (WORK) which contains this number of observations from all'; + put 'tables in the WORK library.'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX,workobs=0'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&workobs) > 0 %then %do;'; + put '/* if debug mode, send back first XX records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10'; + put ',maxobs=&workobs'; + put ')'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '%macro mm_assignlib('; + put 'libref'; + put ',mAbort=HARD'; + put ')/*/STORE SOURCE*/;'; + put '%local mp_abort msg;'; + put '%let mp_abort=0;'; + put '%if %sysfunc(libref(&libref)) %then %do;'; + put 'data _null_;'; + put 'length liburi LibName msg $200;'; + put 'call missing(of _all_);'; + put 'nobj=metadata_getnobj("omsobj:SASLibrary?@Libref=''&libref''",1,liburi);'; + put 'if nobj=1 then do;'; + put 'rc=metadata_getattr(liburi,"Name",LibName);'; + put '/* now try and assign it */'; + put 'if libname("&libref",,''meta'',cats(''liburi="'',liburi,''";'')) ne 0 then do;'; + put 'putlog "&libref could not be assigned";'; + put 'putlog liburi=;'; + put '/**'; + put '* Fetch the system message for display in the abort modal. This is'; + put '* not always helpful though. One example, previously received:'; + put '* NOTE: Libref XX refers to the same library metadata as libref XX.'; + put '*/'; + put 'msg=sysmsg();'; + put 'if msg=:''ERROR: Libref SAVE is not assigned.'' then do;'; + put 'msg=catx(" ",'; + put '"Could not assign %upcase(&libref).",'; + put '"Please check metadata permissions! Libname:",libname,'; + put '"Liburi:",liburi'; + put ');'; + put 'end;'; + put 'else if msg="ERROR: User does not have appropriate authorization "!!'; + put '"level for library SAVE."'; + put 'then do;'; + put 'msg=catx(" ",'; + put '"ERROR: User does not have appropriate authorization level",'; + put '"for library %upcase(&libref), libname:",libname,'; + put '"Liburi:",liburi'; + put ');'; + put 'end;'; + put 'call symputx(''msg'',msg,''l'');'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1,''l'');'; + put 'end;'; + put 'else do;'; + put 'put (_all_)(=);'; + put 'call symputx(''libname'',libname,''L'');'; + put 'call symputx(''liburi'',liburi,''L'');'; + put 'end;'; + put 'end;'; + put 'else if nobj>1 then do;'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; + put 'call symputx(''msg'',"More than one library with libref=&libref");'; + put 'end;'; + put 'else do;'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; + put 'call symputx(''msg'',"Library &libref not found in metadata");'; + put 'end;'; + put 'run;'; + put '%put NOTE: &msg;'; + put '%end;'; + put '%else %do;'; + put '%put NOTE: Library &libref is already assigned;'; + put '%end;'; + put '%mp_abort(iftrue= (&mp_abort=1)'; + put ',mac=mm_assignlib.sas'; + put ',msg=%superq(msg)'; + put ')'; + put '%mend mm_assignlib;'; + put '/** @cond */'; + put '%macro mf_getengine(libref'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid engnum rc engine;'; + put '/* in case the parameter is a libref.tablename, pull off just the libref */'; + put '%let libref = %upcase(%scan(&libref, 1, %str(.)));'; + put '%let dsid=%sysfunc('; + put 'open(sashelp.vlibnam(where=(libname="%upcase(&libref)")),i)'; + put ');'; + put '%if (&dsid ^= 0) %then %do;'; + put '%let engnum=%sysfunc(varnum(&dsid,ENGINE));'; + put '%let rc=%sysfunc(fetch(&dsid));'; + put '%let engine=%sysfunc(getvarc(&dsid,&engnum));'; + put '%put &libref. ENGINE is &engine.;'; + put '%let rc= %sysfunc(close(&dsid));'; + put '%end;'; + put '%upcase(&engine)'; + put '%mend mf_getengine;'; + put '/** @endcond */'; + put '%macro mm_assigndirectlib('; + put 'libref /* libref to assign from metadata */'; + put ',open_passthrough= /* provide an alias to produce the'; + put 'CONNECT TO statement for the'; + put 'relevant external database */'; + put ',sql_options= /* add any options to add to proc sql statement eg outobs='; + put '(only valid for pass through) */'; + put ',mDebug=0'; + put ',mAbort=0'; + put ')/*/STORE SOURCE*/;'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing mm_assigndirectlib.sas;'; + put '%&mD.put _local_;'; + put '%if &mAbort=1 %then %let mAbort=;'; + put '%else %let mAbort=%str(*);'; + put '%&mD.put NOTE: Creating direct (non META) connection to &libref library;'; + put '%local cur_engine;'; + put '%let cur_engine=%mf_getengine(&libref);'; + put '%if &cur_engine ne META and &cur_engine ne %then %do;'; + put '%put NOTE: &libref already has a direct (&cur_engine) libname connection;'; + put '%return;'; + put '%end;'; + put '%else %if %upcase(&libref)=WORK %then %do;'; + put '%put NOTE: We already have a direct connection to WORK :-) ;'; + put '%return;'; + put '%end;'; + put '/* need to determine the library ENGINE first */'; + put '%local engine;'; + put 'data _null_;'; + put 'length lib_uri engine $256;'; + put 'call missing (of _all_);'; + put '/* get URI for the particular library */'; + put 'rc1=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put '/* get the Engine attribute of the previous object */'; + put 'rc2=metadata_getattr(lib_uri,''Engine'',engine);'; + put 'putlog "mm_assigndirectlib for &libref:" rc1= lib_uri= rc2= engine=;'; + put 'call symputx("liburi",lib_uri,''l'');'; + put 'call symputx("engine",engine,''l'');'; + put 'run;'; + put '/* now obtain engine specific connection details */'; + put '%if &engine=BASE %then %do;'; + put '%&mD.put NOTE: Retrieving BASE library path;'; + put 'data _null_;'; + put 'length up_uri $256 path cat_path $1024;'; + put 'retain cat_path;'; + put 'call missing (of _all_);'; + put '/* get all the filepaths of the UsingPackages association */'; + put 'i=1;'; + put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; + put 'do while (rc3>0);'; + put '/* get the DirectoryName attribute of the previous object */'; + put 'rc4=metadata_getattr(up_uri,''DirectoryName'',path);'; + put 'if i=1 then path = ''("''!!trim(path)!!''" '';'; + put 'else path ='' "''!!trim(path)!!''" '';'; + put 'cat_path = trim(cat_path) !! " " !! trim(path) ;'; + put 'i+1;'; + put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; + put 'end;'; + put 'cat_path = trim(cat_path) !! ")";'; + put '&mD.putlog "NOTE: Getting physical path for &libref library";'; + put '&mD.putlog rc3= up_uri= rc4= cat_path= path=;'; + put '&mD.putlog "NOTE: Libname cmd will be:";'; + put '&mD.putlog "libname &libref" cat_path;'; + put 'call symputx("filepath",cat_path,''l'');'; + put 'run;'; + put '%if %sysevalf(&sysver<9.4) %then %do;'; + put 'libname &libref &filepath;'; + put '%end;'; + put '%else %do;'; + put '/* apply the new filelocks option to cater for temporary locks */'; + put 'libname &libref &filepath filelockwait=5;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=REMOTE %then %do;'; + put 'data x;'; + put 'length rcCon rcProp rc k 3 uriCon uriProp PropertyValue PropertyName'; + put 'Delimiter $256 properties $2048;'; + put 'retain properties;'; + put 'rcCon = metadata_getnasn("&liburi", "LibraryConnection", 1, uriCon);'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", 1, uriProp);'; + put 'k = 1;'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; + put 'do while (rcProp > 0);'; + put 'rc = metadata_getattr(uriProp , "DefaultValue",PropertyValue);'; + put 'rc = metadata_getattr(uriProp , "PropertyName",PropertyName);'; + put 'rc = metadata_getattr(uriProp , "Delimiter",Delimiter);'; + put 'properties = trim(properties) !! " " !! trim(PropertyName)'; + put '!! trim(Delimiter) !! trim(PropertyValue);'; + put 'output;'; + put 'k+1;'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; + put 'end;'; + put '%&mD.put NOTE: Getting properties for REMOTE SHARE &libref library;'; + put '&mD.put _all_;'; + put '%&mD.put NOTE: Libname cmd will be:;'; + put '%&mD.put libname &libref &engine &properties slibref=&libref;'; + put 'call symputx ("properties",trim(properties),''l'');'; + put 'run;'; + put 'libname &libref &engine &properties slibref=&libref;'; + put '%end;'; + put '%else %if &engine=OLEDB %then %do;'; + put '%&mD.put NOTE: Retrieving OLEDB connection details;'; + put 'data _null_;'; + put 'length domain datasource provider properties schema'; + put 'connx_uri domain_uri conprop_uri lib_uri schema_uri value $256.;'; + put 'call missing (of _all_);'; + put '/* get source connection ID */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; + put '/* get connection domain */'; + put 'rc1=metadata_getnasn(connx_uri,''Domain'',1,domain_uri);'; + put 'rc2=metadata_getattr(domain_uri,''Name'',domain);'; + put '&mD.putlog / ''NOTE: '' // ''NOTE- connection id: '' connx_uri ;'; + put '&mD.putlog ''NOTE- domain: '' domain;'; + put '/* get DSN and PROVIDER from connection properties */'; + put 'i=0;'; + put 'do until (rc<0);'; + put 'i+1;'; + put 'rc=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; + put 'rc2=metadata_getattr(conprop_uri,''Name'',value);'; + put 'if value=''Connection.OLE.Property.DATASOURCE.Name.xmlKey.txt'' then do;'; + put 'rc3=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; + put 'end;'; + put 'else if value=''Connection.OLE.Property.PROVIDER.Name.xmlKey.txt'' then do;'; + put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',provider);'; + put 'end;'; + put 'else if value=''Connection.OLE.Property.PROPERTIES.Name.xmlKey.txt'' then'; + put 'do;'; + put 'rc5=metadata_getattr(conprop_uri,''DefaultValue'',properties);'; + put 'end;'; + put 'end;'; + put '&mD.putlog ''NOTE- dsn/provider/properties: '' /'; + put 'datasource provider properties;'; + put '&mD.putlog ''NOTE- schema: '' schema // ''NOTE-'';'; + put '/* get SCHEMA */'; + put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,lib_uri);'; + put 'rc7=metadata_getattr(lib_uri,''SchemaName'',schema);'; + put 'call symputx(''SQL_domain'',domain,''l'');'; + put 'call symputx(''SQL_dsn'',datasource,''l'');'; + put 'call symputx(''SQL_provider'',provider,''l'');'; + put 'call symputx(''SQL_properties'',properties,''l'');'; + put 'call symputx(''SQL_schema'',schema,''l'');'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put 'proc sql &sql_options;'; + put 'connect to OLEDB as &open_passthrough(INSERT_SQL=YES'; + put '/* need additional properties to make this work */'; + put 'properties=(''Integrated Security''=SSPI'; + put '''Persist Security Info''=True'; + put '%sysfunc(compress(%str(&SQL_properties),%str(())))'; + put ')'; + put 'DATASOURCE=&sql_dsn PROMPT=NO'; + put 'PROVIDER=&sql_provider SCHEMA=&sql_schema CONNECTION = GLOBAL);'; + put '%end;'; + put '%else %do;'; + put 'LIBNAME &libref OLEDB PROPERTIES=&sql_properties'; + put 'DATASOURCE=&sql_dsn PROVIDER=&sql_provider SCHEMA=&sql_schema'; + put '%if %length(&sql_domain)>0 %then %do;'; + put 'authdomain="&sql_domain"'; + put '%end;'; + put 'connection=shared;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=ODBC %then %do;'; + put '&mD.%put NOTE: Retrieving ODBC connection details;'; + put 'data _null_;'; + put 'length connx_uri conprop_uri value datasource up_uri schema $256.;'; + put 'call missing (of _all_);'; + put '/* get source connection ID */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; + put '/* get connection properties */'; + put 'i=0;'; + put 'do until (rc2<0);'; + put 'i+1;'; + put 'rc2=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; + put 'rc3=metadata_getattr(conprop_uri,''Name'',value);'; + put 'if value=''Connection.ODBC.Property.DATASRC.Name.xmlKey.txt'' then do;'; + put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; + put 'rc2=-1;'; + put 'end;'; + put 'end;'; + put '/* get SCHEMA */'; + put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,up_uri);'; + put 'rc7=metadata_getattr(up_uri,''SchemaName'',schema);'; + put '&mD.put rc= connx_uri= rc2= conprop_uri= rc3= value= rc4= datasource='; + put 'rc6= up_uri= rc7= schema=;'; + put 'call symputx(''SQL_schema'',schema,''l'');'; + put 'call symputx(''SQL_dsn'',datasource,''l'');'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put 'proc sql &sql_options;'; + put 'connect to ODBC as &open_passthrough'; + put '(INSERT_SQL=YES DATASRC=&sql_dsn. CONNECTION=global);'; + put '%end;'; + put '%else %do;'; + put 'libname &libref ODBC DATASRC=&sql_dsn SCHEMA=&sql_schema;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=POSTGRES %then %do;'; + put '%put NOTE: Obtaining POSTGRES library details;'; + put 'data _null_;'; + put 'length database ignore_read_only_columns direct_exe preserve_col_names'; + put 'preserve_tab_names server schema authdomain user password'; + put 'prop name value uri urisrc $256.;'; + put 'call missing (of _all_);'; + put '/* get database value */'; + put 'prop=''Connection.DBMS.Property.DB.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,database,"");'; + put 'if database^='''' then database=''database=''!!quote(trim(database));'; + put 'call symputx(''database'',database,''l'');'; + put '/* get IGNORE_READ_ONLY_COLUMNS value */'; + put 'prop=''Library.DBMS.Property.DBIROC.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,ignore_read_only_columns,"");'; + put 'if ignore_read_only_columns^='''' then ignore_read_only_columns='; + put '''ignore_read_only_columns=''!!ignore_read_only_columns;'; + put 'call symputx(''ignore_read_only_columns'',ignore_read_only_columns,''l'');'; + put '/* get DIRECT_EXE value */'; + put 'prop=''Library.DBMS.Property.DirectExe.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,direct_exe,"");'; + put 'if direct_exe^='''' then direct_exe=''direct_exe=''!!direct_exe;'; + put 'call symputx(''direct_exe'',direct_exe,''l'');'; + put '/* get PRESERVE_COL_NAMES value */'; + put 'prop=''Library.DBMS.Property.PreserveColNames.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,preserve_col_names,"");'; + put 'if preserve_col_names^='''' then preserve_col_names='; + put '''preserve_col_names=''!!preserve_col_names;'; + put 'call symputx(''preserve_col_names'',preserve_col_names,''l'');'; + put '/* get PRESERVE_TAB_NAMES value */'; + put '/* be careful with PRESERVE_TAB_NAMES=YES - it will mean your table will'; + put 'become case sensitive!! */'; + put 'prop=''Library.DBMS.Property.PreserveTabNames.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,preserve_tab_names,"");'; + put 'if preserve_tab_names^='''' then preserve_tab_names='; + put '''preserve_tab_names=''!!preserve_tab_names;'; + put 'call symputx(''preserve_tab_names'',preserve_tab_names,''l'');'; + put '/* get SERVER value */'; + put 'if metadata_getnasn("&liburi","LibraryConnection",1,uri)>0 then do;'; + put 'prop=''Connection.DBMS.Property.SERVER.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop(uri,prop,server,"");'; + put 'end;'; + put 'if server^='''' then server=''server=''!!quote(cats(server));'; + put 'call symputx(''server'',server,''l'');'; + put '/* get SCHEMA value */'; + put 'if metadata_getnasn("&liburi","UsingPackages",1,uri)>0 then do;'; + put 'rc=metadata_getattr(uri,"SchemaName",schema);'; + put 'end;'; + put 'if schema^='''' then schema=''schema=''!!schema;'; + put 'call symputx(''schema'',schema,''l'');'; + put '/* get AUTHDOMAIN value */'; + put '/* this is only useful if the user account contains that auth domain'; + put 'if metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then do;'; + put 'rc=metadata_getnasn(uri,"Domain",1,urisrc);'; + put 'rc=metadata_getattr(urisrc,"Name",authdomain);'; + put 'end;'; + put 'if authdomain^='''' then authdomain=''authdomain=''!!quote(trim(authdomain));'; + put '*/'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/* get user & pass */'; + put 'if authdomain='''' & metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then'; + put 'do;'; + put 'rc=metadata_getattr(uri,"UserID",user);'; + put 'rc=metadata_getattr(uri,"Password",password);'; + put 'end;'; + put 'if user^='''' then do;'; + put 'user=''user=''!!quote(trim(user));'; + put 'password=''password=''!!quote(trim(password));'; + put 'end;'; + put 'call symputx(''user'',user,''l'');'; + put 'call symputx(''password'',password,''l'');'; + put '&md.put _all_;'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put '%put %str(WARN)ING: Passthrough option for postgres not yet supported;'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put '%if &mdebug=1 %then %do;'; + put '%put NOTE: Executing the following:/;'; + put '%put NOTE- libname &libref POSTGRES &database &ignore_read_only_columns;'; + put '%put NOTE- &direct_exe &preserve_col_names &preserve_tab_names;'; + put '%put NOTE- &server &schema &authdomain &user &password //;'; + put '%end;'; + put 'libname &libref POSTGRES &database &ignore_read_only_columns &direct_exe'; + put '&preserve_col_names &preserve_tab_names &server &schema &authdomain'; + put '&user &password;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=ORACLE %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null_;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema $256;'; + put 'call missing (of _all_);'; + put '/* get auth domain */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; + put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; + put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/* path */'; + put 'rc=metadata_getprop(assocuri1,'; + put '''Connection.Oracle.Property.PATH.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref ORACLE path=&path schema=&schema;'; + put '%put NOTE- authdomain=&authdomain;'; + put '%put NOTE-;'; + put 'libname &libref ORACLE path=&path schema=&schema authdomain=&authdomain;'; + put '%end;'; + put '%else %if &engine=SQLSVR %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; + put 'passwd $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; + put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; + put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; + put 'call symputx(''user'',userid,''l'');'; + put 'call symputx(''pass'',passwd,''l'');'; + put '/* path */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; + put 'rc=metadata_getprop(assocuri2,'; + put '''Connection.SQL.Property.Datasrc.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref SQLSVR datasrc=&path schema=&schema ;'; + put '%put NOTE- user="&user" pass="XXX";'; + put '%put NOTE-;'; + put 'libname &libref SQLSVR datasrc=&path schema=&schema user="&user" pass="&pass";'; + put '%end;'; + put '%else %if &engine=TERADATA %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; + put 'passwd $256;'; + put 'call missing (of _all_);'; + put '/* get auth domain */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; + put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; + put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/*'; + put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; + put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; + put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; + put 'call symputx(''user'',userid,''l'');'; + put 'call symputx(''pass'',passwd,''l'');'; + put '*/'; + put '/* path */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; + put 'rc=metadata_getprop(assocuri2,'; + put '''Connection.Teradata.Property.SERVER.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref TERADATA server="&path" schema=&schema ;'; + put '%put NOTe- authdomain=&authdomain;'; + put '%put NOTE-;'; + put 'libname &libref TERADATA server="&path" schema=&schema authdomain=&authdomain;'; + put '%end;'; + put '%else %if &engine= %then %do;'; + put '%put NOTE: Libref &libref is not registered in metadata;'; + put '%&mAbort.mp_abort('; + put 'msg=%str(ERR)OR: Libref &libref is not registered in metadata'; + put ',mac=mm_assigndirectlib.sas);'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put '%put %str(WARN)ING: Engine &engine is currently unsupported;'; + put '%put %str(WARN)ING- Please contact your support team.;'; + put '%return;'; + put '%end;'; + put '%mend mm_assigndirectlib;'; + put '%macro mm_getrepos('; + put 'outds=work.mm_getrepos'; + put ')/*/STORE SOURCE*/;'; + put '* use a temporary fileref to hold the response;'; + put 'filename response temp;'; + put '/* get list of libraries */'; + put 'proc metadata in='; + put '"1"'; + put 'out=response;'; + put 'run;'; + put '/* write the response to the log for debugging */'; + put '/*'; + put 'data _null_;'; + put 'infile response lrecl=1048576;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '*/'; + put '/* create an XML map to read the response */'; + put 'filename sxlemap temp;'; + put 'data _null_;'; + put 'file sxlemap;'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository";'; + put 'put "";'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Id";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Name";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Desc";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@DefaultNS";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryType";'; + put 'put "characterstring20";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryFormat";'; + put 'put "characterstring10";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@Access";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@CurrentAccess";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@PauseState";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Path";'; + put 'put "";'; + put 'put "characterstring256";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Engine";'; + put 'put "";'; + put 'put "characterstring8";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Options";'; + put 'put "";'; + put 'put "characterstring32";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataCreated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataUpdated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put ''
'';'; + put 'run;'; + put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; + put 'proc sort data= _XML_.SASRepos out=&outds;'; + put 'by name;'; + put 'run;'; + put '/* clear references */'; + put 'filename sxlemap clear;'; + put 'filename response clear;'; + put 'libname _XML_ clear;'; + put '%mend mm_getrepos;'; + put '%macro dc_assignlib(type,libref,passthru=);'; + put '%put &sysmacroname entry vars:;'; + put '%put _local_;'; + put '/* take current repository */'; + put '%local repo repocnt x;'; + put '%let repo=%sysfunc(getoption(metarepository));'; + put '/* get list of repositories and filter */'; + put '%mm_getrepos(outds=repos)'; + put '%let repocnt=0;'; + put 'data repos;'; + put 'set repos;'; + put 'where repositorytype in(''CUSTOM'',''FOUNDATION'')'; + put '& upcase(name) ne "%upcase(&repo)";'; + put 'keep id name ;'; + put 'call symputx(cats(''repo'',_n_),name,''l'');'; + put 'call symputx(''repocnt'',_n_,''l'');'; + put 'run;'; + put '/* find out which of these repositories has the libref we are searching for */'; + put '%local lib_uri;'; + put '%let lib_uri=NOTFOUND;'; + put 'data _null_; /* check default repo first */'; + put 'length lib_uri $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; + put 'run;'; + put '%if &lib_uri=NOTFOUND %then %do;'; + put '%do x=1 %to &repocnt;'; + put 'options metarepository=&&repo&x;'; + put 'data _null_;'; + put 'length lib_uri $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; + put 'run;'; + put '%if &lib_uri ne NOTFOUND %then %let x=%eval(&repocnt+1);'; + put '%end;'; + put '%end;'; + put '%if &type=READ %then %do;'; + put '%mm_assignlib(&libref)'; + put '%end;'; + put '%else %if &type=WRITE %then %do;'; + put '%mm_assigndirectlib(&libref,open_passthrough=&passthru)'; + put '%end;'; + put 'options metarepository=&repo;'; + put '%mend dc_assignlib;'; + put '%macro dc_getservicecode(loc=,outref=);'; + put '%mm_getstpcode(tree=&loc'; + put ',outref=&outref'; + put ')'; + put '%mend dc_getservicecode;'; + put '%macro mf_getattrn('; + put 'libds'; + put ',attr'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid rc;'; + put '%let dsid=%sysfunc(open(&libds,is));'; + put '%if &dsid = 0 %then %do;'; + put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; + put '%put %sysfunc(sysmsg());'; + put '-1'; + put '%end;'; + put '%else %do;'; + put '%sysfunc(attrn(&dsid,&attr))'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%mend mf_getattrn;'; + put '%macro mf_nobs(libds'; + put ')/*/STORE SOURCE*/;'; + put '%mf_getattrn(&libds,NLOBS)'; + put '%mend mf_nobs;'; + put '%macro mp_include(fileref'; + put ',prefix=_'; + put ',opts=SOURCE2'; + put ',errds=work.mp_abort_errds'; + put ')/*/STORE SOURCE*/;'; + put '/* prepare precode */'; + put '%local tempref;'; + put '%let tempref=%mf_getuniquefileref();'; + put 'data _null_;'; + put 'file &tempref;'; + put 'set sashelp.vextfl(where=(fileref="%upcase(&fileref)"));'; + put 'put ''%let _SYSINCLUDEFILEDEVICE='' xengine '';'';'; + put 'name=scan(xpath,-1,''/\'');'; + put 'put ''%let _SYSINCLUDEFILENAME='' name '';'';'; + put 'path=subpad(xpath,1,length(xpath)-length(name)-1);'; + put 'put ''%let _SYSINCLUDEFILEDIR='' path '';'';'; + put 'put ''%let _SYSINCLUDEFILEFILEREF='' "&fileref;";'; + put 'run;'; + put '/* prepare the errds */'; + put 'data &errds;'; + put 'length msg mac $1000;'; + put 'call missing(msg,mac);'; + put 'iftrue=''1=0'';'; + put 'run;'; + put '/* include the include */'; + put '%inc &tempref &fileref/&opts;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=%str(&_SYSINCLUDEFILEDIR/&_SYSINCLUDEFILENAME)'; + put ',msg=%str(syscc=&syscc after executing &_SYSINCLUDEFILENAME)'; + put ')'; + put 'filename &tempref clear;'; + put '%mend mp_include;'; + put '%macro mf_getuniquename(prefix=MC);'; + put '&prefix.%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32-%length(&prefix))'; + put '%mend mf_getuniquename;'; + put '%macro mp_validatecol(incol,rule,outcol);'; + put '/* tempcol is given a unique name with every invocation */'; + put '%local tempcol;'; + put '%let tempcol=%mf_getuniquename();'; + put '%if &rule=ISINT %then %do;'; + put '&outcol=0;'; + put 'if not missing(&incol) then do;'; + put '&tempcol=input(&incol,?? best32.);'; + put 'if not missing(&tempcol) then if mod(&tempcol,1)=0 then &outcol=1;'; + put 'end;'; + put 'drop &tempcol;'; + put '%end;'; + put '%else %if &rule=ISNUM %then %do;'; + put '/*'; + put 'credit SØREN LASSEN'; + put 'https://sasmacro.blogspot.com/2009/06/welcome-isnum-macro.html'; + put '*/'; + put '&tempcol=input(&incol,?? best32.);'; + put 'if missing(&tempcol) then &outcol=0;'; + put 'else &outcol=1;'; + put 'drop &tempcol;'; + put '%end;'; + put '%else %if &rule=LIBDS %then %do;'; + put '/* match libref.dataset */'; + put 'if _n_=1 then do;'; + put 'retain &tempcol;'; + put '&tempcol=prxparse(''/^[_a-z]\w{0,7}\.[_a-z]\w{0,31}$/i'');'; + put 'if missing(&tempcol) then do;'; + put 'putlog "%str(ERR)OR: Invalid expression for LIBDS";'; + put 'stop;'; + put 'end;'; + put 'drop &tempcol;'; + put 'end;'; + put 'if prxmatch(&tempcol, trim(&incol)) then &outcol=1;'; + put 'else &outcol=0;'; + put '%end;'; + put '%else %if &rule=FORMAT %then %do;'; + put '/* match valid format - regex could probably be improved */'; + put 'if _n_=1 then do;'; + put 'retain &tempcol;'; + put '&tempcol=prxparse(''/^[_a-z\$]\w{0,31}\.[0-9]*$/i'');'; + put 'if missing(&tempcol) then do;'; + put 'putlog "%str(ERR)OR: Invalid expression for FORMAT";'; + put 'stop;'; + put 'end;'; + put 'drop &tempcol;'; + put 'end;'; + put 'if prxmatch(&tempcol, trim(&incol)) then &outcol=1;'; + put 'else &outcol=0;'; + put '%end;'; + put '%mend mp_validatecol;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file getdynamiccolvals.sas'; + put '@brief Provide dynamic list of values according to a SAS program or service'; + put '@details Configuration is made in the MPE_VALIDATIONS table, the dropdown'; + put 'can be either a SOFTSELECT_HOOK or HARDSELECT_HOOK.'; + put 'Results are sent in ARRAY format for efficiency.'; + put '

Service Inputs

'; + put '
SASCONTROLTABLE
'; + put '|LIBDS:$41.|VARIABLE_NM:$32.|'; + put '|---|---|'; + put '|DC258467.MPE_SECURITY|SAS_GROUP|'; + put '
SOURCE_ROW
'; + put 'This contains the raw values from the source table.'; + put '

Service Outputs

'; + put '
DYNAMIC_VALUES
'; + put 'The RAW_VALUE column may be charactor or numeric. If DISPLAY_INDEX is not'; + put 'provided, it is added automatically.'; + put '|DISPLAY_INDEX:best.|DISPLAY_VALUE:$|RAW_VALUE|'; + put '|---|---|---|'; + put '|1|$77.43|77.43|'; + put '|2|$88.43|88.43|'; + put '
DYNAMIC_EXTENDED_VALUES
'; + put 'This table is optional. If provided, it will map the DISPLAY_INDEX from the'; + put 'DYNAMIC_VALUES table to additional column/value pairs, that will be used to'; + put 'populate dropdowns for _other_ cells in the _same_ row.'; + put 'Should be used sparingly! The use of large tables here can slow down the'; + put 'browser.'; + put '|DISPLAY_INDEX:best.|EXTRA_COL_NAME:$32.|DISPLAY_VALUE:$|DISPLAY_TYPE:$1.|RAW_VALUE_NUM|RAW_VALUE_CHAR:$5000|'; + put '|---|---|---|'; + put '|1|DISCOUNT_RT|"50%"|N|0.5||'; + put '|1|DISCOUNT_RT|"40%"|N|0.4||'; + put '|1|DISCOUNT_RT|"30%"|N|0.3||'; + put '|1|CURRENCY_SYMBOL|"GBP"|C||"GBP"|'; + put '|1|CURRENCY_SYMBOL|"RSD"|C||"RSD"|'; + put '|2|DISCOUNT_RT|"50%"|N|0.5||'; + put '|2|DISCOUNT_RT|"40%"|N|0.4||'; + put '|2|CURRENCY_SYMBOL|"EUR"|C||"EUR"|'; + put '|2|CURRENCY_SYMBOL|"HKD"|C||"HKD"|'; + put '

SAS Macros

'; + put '@li dc_assignlib.sas'; + put '@li dc_getservicecode.sas'; + put '@li mf_nobs.sas'; + put '@li mp_abort.sas'; + put '@li mp_include.sas'; + put '@li mp_validatecol.sas'; + put '@li mf_getapploc.sas'; + put '@version 9.3'; + put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; + put 'downloaded from here: https://4gl.uk/dcdeploy'; + put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; + put 'and may not be re-distributed or re-sold without the express permission of'; + put '4GL Apps Ltd.'; + put '**/'; + put '%mpeinit()'; + put '/**'; + put '* Validate inputs'; + put '*/'; + put '%let err_msg=;'; + put 'data work.intest;'; + put 'set work.SASCONTROLTABLE;'; + put '/* validate libds */'; + put '%mp_validatecol(LIBDS,LIBDS,is_libds)'; + put '/* validate varname */'; + put 'is_name=nvalid(variable_nm,''v7'');'; + put 'putlog (_all_)(=);'; + put 'if is_libds ne 1 then do;'; + put 'msg=''ERR''!!''OR: Invalid libds:''!!libds;'; + put 'call symputx(''err_msg'',msg);'; + put 'stop;'; + put 'end;'; + put 'else if is_name ne 1 then do;'; + put 'msg=''ERR''!!''OR: Invalid name:''!!variable_nm;'; + put 'call symputx(''err_msg'',msg);'; + put 'stop;'; + put 'end;'; + put 'else do;'; + put 'call symputx(''variable_nm'',variable_nm);'; + put 'call symputx(''libds'',libds);'; + put 'end;'; + put 'output;'; + put 'stop;'; + put 'run;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(syscc=&syscc after reading work.sascontroltable)'; + put ')'; + put '%mp_abort(iftrue= (%mf_nobs(work.intest)=0)'; + put ',mac=&_program'; + put ',msg=%str(&err_msg)'; + put ')'; + put '%dc_assignlib(READ,%scan(&libds,1,.))'; + put '/* ensure that work.dynamic_extended_values exists */'; + put 'data work.dynamic_extended_values;'; + put 'run;'; + put '/**'; + put '* Get the code to execute'; + put '*/'; + put 'data work.codetest;'; + put 'set &mpelib..MPE_VALIDATIONS;'; + put 'where &dc_dttmtfmt. lt tx_to'; + put 'and base_lib="%scan(&libds,1,.)"'; + put 'and base_ds="%scan(&libds,2,.)"'; + put 'and base_col="&variable_nm"'; + put 'and RULE_TYPE in (''HARDSELECT_HOOK'',''SOFTSELECT_HOOK'')'; + put 'and RULE_ACTIVE=1;'; + put 'putlog (_all_)(=);'; + put 'if length(rule_value)>1 then do;'; + put 'call symputx(''pgmloc'',rule_value);'; + put 'if scan(upcase(rule_value),-1,''.'')=''SAS'' then do;'; + put 'call symputx(''pgmtype'',''PGM'');'; + put 'call symputx(''pgmloc'',rule_value);'; + put 'end;'; + put 'else do;'; + put 'apploc="%mf_getapploc()";'; + put 'if substr(rule_value,1,1) ne ''/'''; + put 'then rule_value=cats(apploc,''/'',rule_value);'; + put 'call symputx(''pgmloc'',rule_value);'; + put 'call symputx(''pgmtype'',''JOB'');'; + put 'end;'; + put 'output;'; + put 'stop;'; + put 'end;'; + put 'else stop;'; + put 'run;'; + put '%mp_abort(iftrue= (%mf_nobs(work.codetest)=0)'; + put ',mac=&_program'; + put ',msg=%str(Hook not found in &mpelib..mpe_validations for &libds..&variable_nm)'; + put ')'; + put '%macro getdynamiccolvals();'; + put '%if &pgmtype=PGM %then %do;'; + put 'filename sascode "&pgmloc";'; + put '%end;'; + put '%else %do;'; + put '%dc_getservicecode(loc=&pgmloc'; + put ',outref=sascode'; + put ')'; + put '%end;'; + put '%mend getdynamiccolvals;'; + put '%getdynamiccolvals()'; + put '/* execute the dynamic code */'; + put '%mp_include(sascode)'; + put '%mp_abort(mode=INCLUDE)'; + put '/* ensure that the DISPLAY_INDEX variable exists */'; + put 'data work.dynamic_values;'; + put 'length DISPLAY_INDEX 8 DISPLAY_VALUE $32767;'; + put 'if _n_=1 then call missing(of _all_);'; + put 'set work.dynamic_values;'; + put 'display_index=coalesce(display_index,_n_);'; + put 'keep DISPLAY_INDEX DISPLAY_VALUE RAW_VALUE;'; + put 'run;'; + put '/* ensure that work.dynamic_extended_values exists with correct types */'; + put 'data work.dynamic_extended_values;'; + put 'length DISPLAY_INDEX 8 EXTRA_COL_NAME $32 DISPLAY_VALUE $5000 DISPLAY_TYPE $1'; + put 'RAW_VALUE_NUM 8 RAW_VALUE_CHAR $5000 FORCED_VALUE 8;'; + put 'if _n_=1 then call missing(of _all_);'; + put 'set work.dynamic_extended_values;'; + put 'run;'; + put '%webout(OPEN)'; + put '%webout(ARR,dynamic_values,fmt=N)'; + put '%webout(ARR,dynamic_extended_values,fmt=N)'; + put '%webout(CLOSE)'; + put '%mpeterm()'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=getlog; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Files

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as FMTCAT,'; + put 'FMTNAME'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'LENGTH num'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.length as MAXW'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put ')))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] workobs= (0) When set to a positive integer, will create a new'; + put 'output object (WORK) which contains this number of observations from all'; + put 'tables in the WORK library.'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX,workobs=0'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&workobs) > 0 %then %do;'; + put '/* if debug mode, send back first XX records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10'; + put ',maxobs=&workobs'; + put ')'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '%macro mf_abort(mac=mf_abort.sas, msg=, iftrue=%str(1=1)'; + put ')/*/STORE SOURCE*/;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mf_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%abort;'; + put '%mend mf_abort;'; + put '/** @endcond */'; + put '%macro mf_verifymacvars('; + put 'verifyVars /* list of macro variable NAMES */'; + put ',makeUpcase=NO /* set to YES to make all the variable VALUES uppercase */'; + put ',mAbort=SOFT'; + put ')/*/STORE SOURCE*/;'; + put '%local verifyIterator verifyVar abortmsg;'; + put '%do verifyIterator=1 %to %sysfunc(countw(&verifyVars,%str( )));'; + put '%let verifyVar=%qscan(&verifyVars,&verifyIterator,%str( ));'; + put '%if not %symexist(&verifyvar) %then %do;'; + put '%let abortmsg= Variable &verifyVar is MISSING;'; + put '%goto exit_err;'; + put '%end;'; + put '%if %length(%trim(&&&verifyVar))=0 %then %do;'; + put '%let abortmsg= Variable &verifyVar is EMPTY;'; + put '%goto exit_err;'; + put '%end;'; + put '%if &makeupcase=YES %then %do;'; + put '%let &verifyVar=%upcase(&&&verifyvar);'; + put '%end;'; + put '%end;'; + put '%goto exit_success;'; + put '%exit_err:'; + put '%put &abortmsg;'; + put '%mf_abort(iftrue=(&mabort ne SOFT),'; + put 'mac=mf_verifymacvars,'; + put 'msg=%str(&abortmsg)'; + put ')'; + put '0'; + put '%return;'; + put '%exit_success:'; + put '1'; + put '%mend mf_verifymacvars;'; put '%macro mf_existds(libds'; put ')/*/STORE SOURCE*/;'; put '%if %sysfunc(exist(&libds)) ne 1 & %sysfunc(exist(&libds,VIEW)) ne 1 %then 0;'; @@ -7171,6 +57762,1468 @@ file sascode; put 'filename &outref clear;'; put '%end;'; put '%mend mp_binarycopy;'; + put '%macro mfs_httpheader(header_name'; + put ',header_value'; + put ')/*/STORE SOURCE*/;'; + put '%global sasjs_stpsrv_header_loc;'; + put '%local fref fid i;'; + put '%if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc)) ne 0 %then %do;'; + put '%put &=fref &=sasjs_stpsrv_header_loc;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(&header_name): %str(&header_value)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%mend mfs_httpheader;'; + put '%macro mp_streamfile('; + put 'contenttype=TEXT'; + put ',inloc='; + put ',inref=0'; + put ',iftrue=%str(1=1)'; + put ',outname='; + put ',outref=_webout'; + put ')/*/STORE SOURCE*/;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%let contentype=%upcase(&contenttype);'; + put '%let outref=%upcase(&outref);'; + put '%local platform; %let platform=%mf_getplatform();'; + put '/**'; + put '* check engine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put '%local streamweb;'; + put '%let streamweb=0;'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(upcase(fileref)="&outref"));'; + put 'if xengine=''STREAM'' then call symputx(''streamweb'',1,''l'');'; + put 'run;'; + put '%if &contentype=CSV %then %do;'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'',''application/csv'');'; + put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.txt'''; + put 'contenttype=''application/csv'''; + put 'contentdisp="attachment; filename=&outname";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type,application/csv)'; + put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; + put '%end;'; + put '%end;'; + put '%else %if &contentype=EXCEL %then %do;'; + put '/* suitable for XLS format */'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'',''application/vnd.ms-excel'');'; + put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.xls'''; + put 'contenttype=''application/vnd.ms-excel'''; + put 'contentdisp="attachment; filename=&outname";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type,application/vnd.ms-excel)'; + put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; + put '%end;'; + put '%end;'; + put '%else %if &contentype=GIF or &contentype=JPEG or &contentype=PNG %then %do;'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'',"image/%lowcase(&contenttype)");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'contenttype="image/%lowcase(&contenttype)";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type,image/%lowcase(&contenttype))'; + put '%end;'; + put '%end;'; + put '%else %if &contentype=HTML or &contenttype=MARKDOWN %then %do;'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'',"text/%lowcase(&contenttype)");'; + put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name="_webout.json"'; + put 'contenttype="text/%lowcase(&contenttype)"'; + put 'contentdisp="attachment; filename=&outname";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type,text/%lowcase(&contenttype))'; + put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; + put '%end;'; + put '%end;'; + put '%else %if &contentype=TEXT %then %do;'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'',''application/text'');'; + put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.txt'''; + put 'contenttype=''application/text'''; + put 'contentdisp="attachment; filename=&outname";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type,application/text)'; + put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; + put '%end;'; + put '%end;'; + put '%else %if &contentype=WOFF or &contentype=WOFF2 or &contentype=TTF %then %do;'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'',"font/%lowcase(&contenttype)");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'contenttype="font/%lowcase(&contenttype)";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type,font/%lowcase(&contenttype))'; + put '%end;'; + put '%end;'; + put '%else %if &contentype=XLSX %then %do;'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'','; + put '''application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'');'; + put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.xls'''; + put 'contenttype='; + put '''application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'''; + put 'contentdisp="attachment; filename=&outname";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type'; + put ',application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'; + put ')'; + put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; + put '%end;'; + put '%end;'; + put '%else %if &contentype=ZIP %then %do;'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'',''application/zip'');'; + put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.zip'''; + put 'contenttype=''application/zip'''; + put 'contentdisp="attachment; filename=&outname";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type,application/zip)'; + put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put %str(ERR)OR: Content Type &contenttype NOT SUPPORTED by &sysmacroname!;'; + put '%end;'; + put '%if &inref ne 0 %then %do;'; + put '%mp_binarycopy(inref=&inref,outref=&outref)'; + put '%end;'; + put '%else %do;'; + put '%mp_binarycopy(inloc="&inloc",outref=&outref)'; + put '%end;'; + put '%mend mp_streamfile;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file getlog.sas'; + put '@brief Downloads the submission, useful if there is an error'; + put '@details'; + put '

SAS Macros

'; + put '@li mf_verifymacvars.sas'; + put '@li mf_getuser.sas'; + put '@li mp_abort.sas'; + put '@li mp_dirlist.sas'; + put '@li mp_binarycopy.sas'; + put '@li mp_streamfile.sas'; + put '@version 9.2'; + put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; + put 'downloaded from here: https://4gl.uk/dcdeploy'; + put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; + put 'and may not be re-distributed or re-sold without the express permission of'; + put '4GL Apps Ltd.'; + put '**/'; + put '%mpeinit()'; + put '%mp_abort('; + put 'iftrue=(%mf_verifymacvars(table)=0)'; + put ',mac=&_program'; + put ',msg=%str(Missing: table)'; + put ')'; + put '/* security checks */'; + put '%let user=%mf_getuser();'; + put '%let check_access=0;'; + put 'proc sql noprint;'; + put 'select count(*) into: check_access from &mpelib..mpe_loads'; + put 'where csv_dir="&table" and user_nm="&user";'; + put '%mp_abort(iftrue= (&check_access=0 )'; + put ',msg=%str(&user not authorised to download audit data for &table)'; + put ',mac=mpestp_getlog.sas'; + put ')'; + put 'ods package(ProdOutput) open nopf;'; + put 'options notes source2 mprint;'; + put '%mp_dirlist(outds=dirs, path=&mpelocapprovals/&TABLE)'; + put 'data _null_;'; + put 'set dirs;'; + put 'if scan(filename,-1,''.'') not in (''sas7bdat'',''wpd'');'; + put 'retain str1'; + put '"ods package(ProdOutput) add file=''&mpelocapprovals/&TABLE/";'; + put 'retain str2 "'' mimetype=''text/plain'' path=''contents/'';";'; + put 'call execute(cats(str1,filename,str2));'; + put 'run;'; + put '%let archive_path=%sysfunc(pathname(work));'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(syscc=&syscc)'; + put ')'; + put 'ods package(ProdOutput) publish archive properties'; + put '(archive_name= "&table..zip" archive_path="&archive_path");'; + put 'ods package(ProdOutput) close;'; + put '/* now serve zip file to client */'; + put '%mp_streamfile(contenttype=ZIP'; + put ',inloc=%str(&archive_path/&table..zip)'; + put ',outname=&table..zip'; + put ')'; + put '%mpeterm()'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=getsubmits; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Files

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as FMTCAT,'; + put 'FMTNAME'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'LENGTH num'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.length as MAXW'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put ')))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] workobs= (0) When set to a positive integer, will create a new'; + put 'output object (WORK) which contains this number of observations from all'; + put 'tables in the WORK library.'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX,workobs=0'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&workobs) > 0 %then %do;'; + put '/* if debug mode, send back first XX records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10'; + put ',maxobs=&workobs'; + put ')'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; @@ -7248,6 +59301,741 @@ file sascode; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file getsubmits.sas'; + put '@brief Returns a list of staged data items that need to be approved'; + put '@details'; + put '

SAS Macros

'; + put '@li mp_abort.sas'; + put '@li mf_getuser.sas'; + put '@li mpeinit.sas'; + put '@version 9.2'; + put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; + put 'downloaded from here: https://4gl.uk/dcdeploy'; + put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; + put 'and may not be re-distributed or re-sold without the express permission of'; + put '4GL Apps Ltd.'; + put '**/'; + put '%mpeinit()'; + put 'PROC FORMAT;'; + put 'picture yymmddhhmmss other=''%0Y-%0m-%0d %0H:%0M:%0S'' (datatype=datetime);'; + put 'RUN;'; + put 'proc sql noprint;'; + put 'create table work.fromsas (rename=(SUBMITTED_ON=SUBMITTED_ON_DTTM)) as'; + put 'select table_id'; + put ',cats(base_lib,''.'',base_ds) as base_table'; + put ',input_vars'; + put ',input_obs'; + put ',submitted_by_nm'; + put ',submitted_reason_txt'; + put ',''DEPRECATED'' as approve_group'; + put ',submit_status_cd as review_status_id'; + put ',reviewed_by_nm'; + put ',reviewed_on_dttm'; + put ',cats(put(SUBMITTED_ON_DTTM,yymmddhhmmss.)) as SUBMITTED_ON'; + put 'from &mpelib..mpe_submit'; + put 'where submitted_by_nm="%mf_getuser()" and submit_status_cd=''SUBMITTED'''; + put 'order by submitted_on_dttm desc;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(syscc=&syscc)'; + put ')'; + put '%webout(OPEN)'; + put '%webout(OBJ,fromSAS)'; + put '%webout(CLOSE)'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=loadfile; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Files

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as FMTCAT,'; + put 'FMTNAME'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'LENGTH num'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.length as MAXW'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put ')))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] workobs= (0) When set to a positive integer, will create a new'; + put 'output object (WORK) which contains this number of observations from all'; + put 'tables in the WORK library.'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX,workobs=0'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&workobs) > 0 %then %do;'; + put '/* if debug mode, send back first XX records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10'; + put ',maxobs=&workobs'; + put ')'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; put '%local rc fname;'; put '%if &prefix=0 %then %do;'; @@ -7271,1686 +60059,39663 @@ file sascode; put '%put unable to find available fileref after &maxtries attempts;'; put '%end;'; put '%mend mf_getuniquefileref;'; - put '%macro mp_webin();'; - put '/* prepare global variables */'; - put '%global _webin_file_count'; - put '_webin_filename _webin_filename1'; - put '_webin_fileref _webin_fileref1'; - put '_webin_fileuri _webin_fileuri1'; - put '_webin_name _webin_name1'; - put ';'; - put '/* create initial versions */'; - put '%let _webin_file_count=%eval(&_webin_file_count+0);'; - put '%let _webin_filename1=%sysfunc(coalescec(&_webin_filename1,&_webin_filename));'; - put '%let _webin_fileref1=%sysfunc(coalescec(&_webin_fileref1,&_webin_fileref));'; - put '%let _webin_fileuri1=%sysfunc(coalescec(&_webin_fileuri1,&_webin_fileuri));'; - put '%let _webin_name1=%sysfunc(coalescec(&_webin_name1,&_webin_name));'; - put '/* If Viya, create temporary fileref(s) */'; - put '%local i;'; - put '%if %mf_getplatform()=SASVIYA %then %do i=1 %to &_webin_file_count;'; - put '%let _webin_fileref&i=%mf_getuniquefileref();'; - put 'filename &&_webin_fileref&i filesrvc "&&_webin_fileuri&i";'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; put '%end;'; - put '%mend mp_webin;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '%macro mm_getGroups('; + put 'user='; + put ',outds=work.mm_getGroups'; + put ',repo=foundation'; + put ',mDebug=0'; + put ')/*/STORE SOURCE*/;'; + put '%local mD oldrepo;'; + put '%let oldrepo=%sysfunc(getoption(metarepository));'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing mm_getGroups.sas;'; + put '%&mD.put _local_;'; + put '/* on some sites, user / group info is in a different metadata repo to the'; + put 'default */'; + put '%if &oldrepo ne &repo %then %do;'; + put 'options metarepository=&repo;'; + put '%end;'; + put '%if %length(&user)=0 %then %do;'; + put 'data &outds (keep=groupuri groupname groupdesc);'; + put 'length groupuri groupname groupdesc group_or_role $256;'; + put 'call missing(of _all_);'; + put 'i+1;'; + put 'do while'; + put '(metadata_getnobj("omsobj:IdentityGroup?@Id contains ''.''",i,groupuri)>0);'; + put 'rc=metadata_getattr(groupuri, "Name", groupname);'; + put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; + put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; + put 'if Group_or_Role = ''UserGroup'' then output;'; + put 'i+1;'; + put 'end;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put 'data &outds (keep=groupuri groupname groupdesc);'; + put 'length uri groupuri groupname groupdesc group_or_role $256;'; + put 'call missing(of _all_);'; + put 'rc=metadata_getnobj("omsobj:Person?@Name=''&user''",1,uri);'; + put 'if rc<=0 then do;'; + put 'putlog "%str(WARN)ING: rc=" rc "&user not found "'; + put '", or there was an issue reading the repository.";'; + put 'stop;'; + put 'end;'; + put 'a=1;'; + put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; + put 'if grpassn in (-3,-4) then do;'; + put 'putlog "%str(WARN)ING: No metadata groups found for &user";'; + put 'output;'; + put 'end;'; + put 'else do while (grpassn > 0);'; + put 'rc=metadata_getattr(groupuri, "Name", groupname);'; + put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; + put 'a+1;'; + put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; + put 'if Group_or_Role = ''UserGroup'' then output;'; + put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; + put 'end;'; + put 'run;'; + put '%end;'; + put '%if &oldrepo ne &repo %then %do;'; + put 'options metarepository=&oldrepo;'; + put '%end;'; + put '%mend mm_getGroups;'; + put '%macro dc_getusergroups(user=,outds=mm_getgroups);'; + put '%global dc_repo_users;'; + put '%if &dc_repo_users= %then %let dc_repo_users=foundation;'; + put '%mm_getgroups(user=&user,outds=&outds,repo=&dc_repo_users)'; + put '%mend dc_getusergroups;'; + put '%macro mpe_getgroups(user=,outds=);'; + put '%if not %symexist(dc_repo_users) %then %let dc_repo_users=foundation;'; + put '%dc_getusergroups(user=&user,outds=&outds)'; + put 'data;'; + put 'length groupname groupdesc $256;'; + put 'set &dc_libref..mpe_groups;'; + put 'where &dc_dttmtfmt. lt tx_to;'; + put 'where also upcase(user_name)="%upcase(&user)";'; + put 'groupname=group_name;'; + put 'groupdesc=group_desc;'; + put 'keep groupname groupdesc;'; + put 'run;'; + put 'data &outds;'; + put 'set &syslast &outds(keep=groupname groupdesc);'; + put 'run;'; + put '%mend mpe_getgroups;'; + put '%macro mf_abort(mac=mf_abort.sas, msg=, iftrue=%str(1=1)'; + put ')/*/STORE SOURCE*/;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mf_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%abort;'; + put '%mend mf_abort;'; + put '/** @endcond */'; + put '%macro mf_verifymacvars('; + put 'verifyVars /* list of macro variable NAMES */'; + put ',makeUpcase=NO /* set to YES to make all the variable VALUES uppercase */'; + put ',mAbort=SOFT'; + put ')/*/STORE SOURCE*/;'; + put '%local verifyIterator verifyVar abortmsg;'; + put '%do verifyIterator=1 %to %sysfunc(countw(&verifyVars,%str( )));'; + put '%let verifyVar=%qscan(&verifyVars,&verifyIterator,%str( ));'; + put '%if not %symexist(&verifyvar) %then %do;'; + put '%let abortmsg= Variable &verifyVar is MISSING;'; + put '%goto exit_err;'; + put '%end;'; + put '%if %length(%trim(&&&verifyVar))=0 %then %do;'; + put '%let abortmsg= Variable &verifyVar is EMPTY;'; + put '%goto exit_err;'; + put '%end;'; + put '%if &makeupcase=YES %then %do;'; + put '%let &verifyVar=%upcase(&&&verifyvar);'; + put '%end;'; + put '%end;'; + put '%goto exit_success;'; + put '%exit_err:'; + put '%put &abortmsg;'; + put '%mf_abort(iftrue=(&mabort ne SOFT),'; + put 'mac=mf_verifymacvars,'; + put 'msg=%str(&abortmsg)'; + put ')'; + put '0'; + put '%return;'; + put '%exit_success:'; + put '1'; + put '%mend mf_verifymacvars;'; + put '%macro mf_isblank(param'; + put ')/*/STORE SOURCE*/;'; + put '%sysevalf(%superq(param)=,boolean)'; + put '%mend mf_isblank;'; + put '%macro mp_dropmembers('; + put 'list /* space separated list of datasets / views */'; + put ',libref=WORK /* can only drop from a single library at a time */'; + put ',iftrue=%str(1=1)'; + put ')/*/STORE SOURCE*/;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%if %mf_isblank(&list) %then %do;'; + put '%put NOTE: nothing to drop!;'; + put '%return;'; + put '%end;'; + put 'proc datasets lib=&libref nolist;'; + put 'delete &list;'; + put 'delete &list /mtype=view;'; + put 'run;'; + put '%mend mp_dropmembers;'; + put '%macro mpe_accesscheck('; + put 'base_table /* base table to check for */'; + put ',outds=med_accesscheck /* WORK table to contain access details */'; + put ',user= /* metadata user to check for */'; + put ',access_level=APPROVE'; + put ');'; + put '%if &user= %then %let user=%mf_getuser();'; + put '%if %index(&outds,.) %then %do;'; + put '%local lib ds;'; + put '%let lib=%scan(&outds,1,.);'; + put '%let ds=%scan(&outds,2,.);'; + put '%if %upcase(&lib) ne WORK %then %do;'; + put '%mp_abort(msg=outds should be a WORK table'; + put ',mac=mpe_accesscheck);'; + put '%end;'; + put '%end;'; + put '%else %let ds=&outds;'; + put '%mp_abort('; + put 'iftrue=(%mf_verifymacvars(base_table user access_level)=0)'; + put ',mac=bitemporal_dataloader'; + put ',msg=%str(Missing base_table/user access_level)'; + put ')'; + put '/* ensure any existing table is dropped */'; + put '%mp_dropmembers(&ds)'; + put '/* create a new table for temp use */'; + put 'data; run;'; + put '%local tempds; %let tempds=&syslast;'; + put '/* overwrite with the list of groups */'; + put '%mpe_getgroups(user=&user,outds=&tempds);'; + put '%if &_debug ge 131 %then %do;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%end;'; + put 'proc sql;'; + put 'create table &outds as'; + put 'select * from &tempds'; + put 'where groupname="&mpeadmins"'; + put 'or groupname in'; + put '(select sas_group from &mpelib..mpe_security'; + put 'where &dc_dttmtfmt. lt tx_to'; + put 'and access_level="&access_level"'; + put '& ('; + put '(libref="%scan(&base_table,1,.)" and dsn="%scan(&base_table,2,.)")'; + put 'or (libref="%scan(&base_table,1,.)" and dsn="*ALL*")'; + put 'or (libref="*ALL*")'; + put ')'; + put ');'; + put '%put base_table=&base_table;'; + put '%put libref=%scan(&base_table,1,.);'; + put '%put dsn=%scan(&base_table,2,.);'; + put '%put access_level=&access_level;'; + put '%mend mpe_accesscheck;'; + put '%macro mf_getattrn('; + put 'libds'; + put ',attr'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid rc;'; + put '%let dsid=%sysfunc(open(&libds,is));'; + put '%if &dsid = 0 %then %do;'; + put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; + put '%put %sysfunc(sysmsg());'; + put '-1'; + put '%end;'; + put '%else %do;'; + put '%sysfunc(attrn(&dsid,&attr))'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%mend mf_getattrn;'; + put '%macro mf_existds(libds'; + put ')/*/STORE SOURCE*/;'; + put '%if %sysfunc(exist(&libds)) ne 1 & %sysfunc(exist(&libds,VIEW)) ne 1 %then 0;'; + put '%else 1;'; + put '%mend mf_existds;'; + put '%macro mpe_alerts(alert_event='; + put ', alert_lib='; + put ', alert_ds='; + put ', dsid='; + put ');'; + put '/* exit if not configured */'; + put '%global DC_EMAIL_ALERTS;'; + put '%if &DC_EMAIL_ALERTS ne YES %then %do;'; + put '%put DCNOTE: Email alerts are not configured;'; + put '%put DCNOTE: (dc_email_alerts=&dc_email_alerts in &mpelib..mpe_config);'; + put '%return;'; + put '%end;'; + put '%let alert_event=%upcase(&alert_event);'; + put '%let alert_lib=%upcase(&alert_lib);'; + put '%let alert_ds=%upcase(&alert_ds);'; + put '%let from_user=%mf_getuser();'; + put '/* get users TO which the email should be sent */'; + put 'proc sql noprint;'; + put 'create table users as select distinct a.alert_user,'; + put 'b.user_displayname,'; + put 'b.user_email'; + put 'from &mpelib..mpe_alerts'; + put '(where=(&dc_dttmtfmt. lt tx_to)) a'; + put 'left join &mpelib..mpe_emails'; + put '(where=(&dc_dttmtfmt. lt tx_to)) b'; + put 'on upcase(trim(a.alert_user))=upcase(trim(b.user_name))'; + put 'where a.alert_event in ("&alert_event","*ALL*")'; + put 'and a.alert_lib in ("&alert_lib","*ALL*")'; + put 'and a.alert_ds in ("&alert_ds","*ALL*");'; + put '%local isThere;'; + put 'select count(*) into: isThere from &syslast where alert_user="&from_user";'; + put '%if &isThere>0 %then %do;'; + put 'insert into &syslast set alert_user="&from_user";'; + put '%end;'; + put '/* if no email / displayname is provided, then extract from metadata */'; + put 'data emails;'; + put 'set users;'; + put 'length emailuri uri text $256; call missing(emailuri,uri); drop emailuri uri;'; + put '/* get displayname */'; + put 'text=cats("omsobj:Person?@Name=''",alert_user,"''");'; + put 'if metadata_getnobj(text,1,uri)<=0 then do;'; + put 'putlog "DCWARN: &from_user not found";'; + put 'return;'; + put 'end;'; + put 'else if user_displayname = '''' then do;'; + put 'if metadata_getattr(uri,''DisplayName'',user_displayname)<0 then do;'; + put 'putlog ''DCWARN: strange err, no displayname attribute of user URI'';'; + put 'end;'; + put 'end;'; + put 'if index(user_email,''@'') then return;'; + put '/* get email from metadata if not in input table */'; + put 'if metadata_getnasn(uri,"EmailAddresses",1,emailuri)<=0 then do;'; + put 'putlog "DCWARN: " alert_user " has no emails in MPE_EMAILS or metadata!";'; + put 'if metadata_getattr(emailuri,"Address",user_email)<0 then do;'; + put 'putlog ''DCWARN: Unexpected error! Valid emailURI but no email. Weird.'';'; + put 'end;'; + put 'end;'; + put '/* only keep valid emails */'; + put 'if index(user_email,''@'') ;'; + put 'run;'; + put '%local emails;'; + put 'proc sql noprint;'; + put 'select user_email into: emails separated by ''" "'' from emails;'; + put '/* exit if nobody to email */'; + put '%if %mf_getattrn(emails,NLOBS)=0 %then %do;'; + put '%put NOTE: No alerts configured (mpe_alerts.sas);'; + put '%return;'; + put '%end;'; + put '/* display email options */'; + put 'data _null_;'; + put 'set sashelp.voption(where=(group=''EMAIL''));'; + put 'put optname ''='' setting;'; + put 'run;'; + put 'filename __out email ("&emails")'; + put 'subject="Table &alert_lib..&alert_ds has been &alert_event";'; + put '%local SUBMITTED_TXT;'; + put '%if &alert_event=SUBMITTED %then %do;'; + put 'data _null_;'; + put 'set &mpelib..mpe_submit;'; + put 'where table_id="&dsid" and submit_status_cd=''SUBMITTED'';'; + put 'call symputx(''SUBMITTED_TXT'',submitted_reason_txt,''l'');'; + put 'run;'; + put 'data _null_;'; + put 'File __out lrecl=32000;'; + put 'put ''Dear user,'';'; + put 'put '' '';'; + put 'put "Please be advised that a change to table &alert_lib..&alert_ds has "'; + put '"been proposed by &from_user on the ''&syshostname'' SAS server.";'; + put 'put " ";'; + put 'length txt $2048;'; + put 'txt=symget(''SUBMITTED_TXT'');'; + put 'put "Reason provided: " txt;'; + put 'put " ";'; + put 'put "This is an automated email by Data Controller for SAS®. For "'; + put '"documentation, please visit https://docs.datacontroller.io";'; + put 'run;'; + put '%end;'; + put '%else %if &alert_event=APPROVED %then %do;'; + put '/* there is no approval message */'; + put 'data _null_;'; + put 'File __out lrecl=32000;'; + put 'put ''Dear user,'';'; + put 'put '' '';'; + put 'put "Please be advised that a change to table &alert_lib..&alert_ds has "'; + put '"been approved by &from_user on the ''&syshostname'' SAS server.";'; + put 'put " ";'; + put 'put "This is an automated email by Data Controller for SAS®. For "'; + put '"documentation, please visit https://docs.datacontroller.io";'; + put 'run;'; + put '%end;'; + put '%else %if &alert_event=REJECTED %then %do;'; + put 'data _null_;'; + put 'set &mpelib..mpe_review;'; + put 'where table_id="&dsid" and review_status_id=''REJECTED'';'; + put 'call symputx(''REVIEW_REASON_TXT'',REVIEW_REASON_TXT,''l'');'; + put 'run;'; + put 'data _null_;'; + put 'File __out lrecl=32000;'; + put 'put ''Dear user,'';'; + put 'put '' '';'; + put 'put "Please be advised that a change to table &alert_lib..&alert_ds has "'; + put '"been rejected by &from_user on the ''&syshostname'' SAS server.";'; + put 'put " ";'; + put 'length txt $2048;'; + put 'txt=symget(''REVIEW_REASON_TXT'');'; + put 'put "Reason provided: " txt;'; + put 'put " ";'; + put 'put "This is an automated email by Data Controller for SAS®. For "'; + put '"documentation, please visit https://docs.datacontroller.io";'; + put 'run;'; + put '%end;'; + put 'filename __out clear;'; + put '%mend mpe_alerts ;'; + put '%macro mpe_loadfail('; + put 'status=FAILED - &syscc'; + put ',now=%sysfunc(datetime())'; + put ',approvals='; + put ',mperef='; + put ',reason_txt='; + put ',mac=mpe_loadfail.sas'; + put ',dc_dttmtfmt=E8601DT26.6'; + put ');'; + put '/* do not perform duration calc in pass through */'; + put '%local dur;'; + put 'data _null_;'; + put 'now=symget(''now'');'; + put 'dur=%sysfunc(datetime())-&now;'; + put 'call symputx(''dur'',dur,''l'');'; + put 'run;'; + put 'proc sql;'; + put 'update &mpelib..mpe_loads'; + put 'set STATUS=symget(''status'')'; + put ', duration=&dur'; + put ', processed_dttm=&dc_dttmtfmt.'; + put ', approvals = symget(''approvals'')'; + put ', reason_txt= symget(''reason_txt'')'; + put 'where CSV_DIR="&mperef";'; + put '%let syscc=666;'; + put '%mp_abort(msg=%superq(status)\n%superq(reason_txt),mac=&mac)'; + put '%mend mpe_loadfail;'; + put '%macro dc_getservicecode(loc=,outref=);'; + put '%mm_getstpcode(tree=&loc'; + put ',outref=&outref'; + put ')'; + put '%mend dc_getservicecode;'; + put '%macro mp_include(fileref'; + put ',prefix=_'; + put ',opts=SOURCE2'; + put ',errds=work.mp_abort_errds'; + put ')/*/STORE SOURCE*/;'; + put '/* prepare precode */'; + put '%local tempref;'; + put '%let tempref=%mf_getuniquefileref();'; + put 'data _null_;'; + put 'file &tempref;'; + put 'set sashelp.vextfl(where=(fileref="%upcase(&fileref)"));'; + put 'put ''%let _SYSINCLUDEFILEDEVICE='' xengine '';'';'; + put 'name=scan(xpath,-1,''/\'');'; + put 'put ''%let _SYSINCLUDEFILENAME='' name '';'';'; + put 'path=subpad(xpath,1,length(xpath)-length(name)-1);'; + put 'put ''%let _SYSINCLUDEFILEDIR='' path '';'';'; + put 'put ''%let _SYSINCLUDEFILEFILEREF='' "&fileref;";'; + put 'run;'; + put '/* prepare the errds */'; + put 'data &errds;'; + put 'length msg mac $1000;'; + put 'call missing(msg,mac);'; + put 'iftrue=''1=0'';'; + put 'run;'; + put '/* include the include */'; + put '%inc &tempref &fileref/&opts;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=%str(&_SYSINCLUDEFILEDIR/&_SYSINCLUDEFILENAME)'; + put ',msg=%str(syscc=&syscc after executing &_SYSINCLUDEFILENAME)'; + put ')'; + put 'filename &tempref clear;'; + put '%mend mp_include;'; + put '%macro mpe_runhook(hookvar);'; + put '%local pgmloc pgmtype;'; + put '%let pgmtype=0;'; + put '%put &sysmacroname: &=hookvar;'; + put '%if %length(&&&hookvar)>0 %then %do;'; + put '%put &sysmacroname: Executing &&&hookvar;'; + put 'data _null_;'; + put 'rule_value=symget("&hookvar");'; + put 'if scan(upcase(rule_value),-1,''.'')=''SAS'' then do;'; + put 'call symputx(''pgmtype'',''PGM'');'; + put 'call symputx(''pgmloc'',rule_value);'; + put 'end;'; + put 'else do;'; + put 'apploc="%mf_getapploc()";'; + put 'if substr(rule_value,1,1) ne ''/'''; + put 'then rule_value=cats(apploc,''/'',rule_value);'; + put 'call symputx(''pgmloc'',rule_value);'; + put 'call symputx(''pgmtype'',''JOB'');'; + put 'end;'; + put 'run;'; + put '%if &pgmtype=PGM %then %do;'; + put 'filename sascode "&pgmloc";'; + put '%end;'; + put '%else %do;'; + put '%dc_getservicecode(loc=&pgmloc'; + put ',outref=sascode'; + put ')'; + put '%end;'; + put '/* the below script will need to modify work.STAGING_DS */'; + put '%local x; %let x=; /* legacy feature */'; + put '%mp_include(sascode)'; + put '%end;'; + put '%mend mpe_runhook;'; + put '%macro mm_assignlib('; + put 'libref'; + put ',mAbort=HARD'; + put ')/*/STORE SOURCE*/;'; + put '%local mp_abort msg;'; + put '%let mp_abort=0;'; + put '%if %sysfunc(libref(&libref)) %then %do;'; + put 'data _null_;'; + put 'length liburi LibName msg $200;'; + put 'call missing(of _all_);'; + put 'nobj=metadata_getnobj("omsobj:SASLibrary?@Libref=''&libref''",1,liburi);'; + put 'if nobj=1 then do;'; + put 'rc=metadata_getattr(liburi,"Name",LibName);'; + put '/* now try and assign it */'; + put 'if libname("&libref",,''meta'',cats(''liburi="'',liburi,''";'')) ne 0 then do;'; + put 'putlog "&libref could not be assigned";'; + put 'putlog liburi=;'; + put '/**'; + put '* Fetch the system message for display in the abort modal. This is'; + put '* not always helpful though. One example, previously received:'; + put '* NOTE: Libref XX refers to the same library metadata as libref XX.'; + put '*/'; + put 'msg=sysmsg();'; + put 'if msg=:''ERROR: Libref SAVE is not assigned.'' then do;'; + put 'msg=catx(" ",'; + put '"Could not assign %upcase(&libref).",'; + put '"Please check metadata permissions! Libname:",libname,'; + put '"Liburi:",liburi'; + put ');'; + put 'end;'; + put 'else if msg="ERROR: User does not have appropriate authorization "!!'; + put '"level for library SAVE."'; + put 'then do;'; + put 'msg=catx(" ",'; + put '"ERROR: User does not have appropriate authorization level",'; + put '"for library %upcase(&libref), libname:",libname,'; + put '"Liburi:",liburi'; + put ');'; + put 'end;'; + put 'call symputx(''msg'',msg,''l'');'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1,''l'');'; + put 'end;'; + put 'else do;'; + put 'put (_all_)(=);'; + put 'call symputx(''libname'',libname,''L'');'; + put 'call symputx(''liburi'',liburi,''L'');'; + put 'end;'; + put 'end;'; + put 'else if nobj>1 then do;'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; + put 'call symputx(''msg'',"More than one library with libref=&libref");'; + put 'end;'; + put 'else do;'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; + put 'call symputx(''msg'',"Library &libref not found in metadata");'; + put 'end;'; + put 'run;'; + put '%put NOTE: &msg;'; + put '%end;'; + put '%else %do;'; + put '%put NOTE: Library &libref is already assigned;'; + put '%end;'; + put '%mp_abort(iftrue= (&mp_abort=1)'; + put ',mac=mm_assignlib.sas'; + put ',msg=%superq(msg)'; + put ')'; + put '%mend mm_assignlib;'; + put '/** @cond */'; + put '%macro mf_getengine(libref'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid engnum rc engine;'; + put '/* in case the parameter is a libref.tablename, pull off just the libref */'; + put '%let libref = %upcase(%scan(&libref, 1, %str(.)));'; + put '%let dsid=%sysfunc('; + put 'open(sashelp.vlibnam(where=(libname="%upcase(&libref)")),i)'; + put ');'; + put '%if (&dsid ^= 0) %then %do;'; + put '%let engnum=%sysfunc(varnum(&dsid,ENGINE));'; + put '%let rc=%sysfunc(fetch(&dsid));'; + put '%let engine=%sysfunc(getvarc(&dsid,&engnum));'; + put '%put &libref. ENGINE is &engine.;'; + put '%let rc= %sysfunc(close(&dsid));'; + put '%end;'; + put '%upcase(&engine)'; + put '%mend mf_getengine;'; + put '/** @endcond */'; + put '%macro mm_assigndirectlib('; + put 'libref /* libref to assign from metadata */'; + put ',open_passthrough= /* provide an alias to produce the'; + put 'CONNECT TO statement for the'; + put 'relevant external database */'; + put ',sql_options= /* add any options to add to proc sql statement eg outobs='; + put '(only valid for pass through) */'; + put ',mDebug=0'; + put ',mAbort=0'; + put ')/*/STORE SOURCE*/;'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing mm_assigndirectlib.sas;'; + put '%&mD.put _local_;'; + put '%if &mAbort=1 %then %let mAbort=;'; + put '%else %let mAbort=%str(*);'; + put '%&mD.put NOTE: Creating direct (non META) connection to &libref library;'; + put '%local cur_engine;'; + put '%let cur_engine=%mf_getengine(&libref);'; + put '%if &cur_engine ne META and &cur_engine ne %then %do;'; + put '%put NOTE: &libref already has a direct (&cur_engine) libname connection;'; + put '%return;'; + put '%end;'; + put '%else %if %upcase(&libref)=WORK %then %do;'; + put '%put NOTE: We already have a direct connection to WORK :-) ;'; + put '%return;'; + put '%end;'; + put '/* need to determine the library ENGINE first */'; + put '%local engine;'; + put 'data _null_;'; + put 'length lib_uri engine $256;'; + put 'call missing (of _all_);'; + put '/* get URI for the particular library */'; + put 'rc1=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put '/* get the Engine attribute of the previous object */'; + put 'rc2=metadata_getattr(lib_uri,''Engine'',engine);'; + put 'putlog "mm_assigndirectlib for &libref:" rc1= lib_uri= rc2= engine=;'; + put 'call symputx("liburi",lib_uri,''l'');'; + put 'call symputx("engine",engine,''l'');'; + put 'run;'; + put '/* now obtain engine specific connection details */'; + put '%if &engine=BASE %then %do;'; + put '%&mD.put NOTE: Retrieving BASE library path;'; + put 'data _null_;'; + put 'length up_uri $256 path cat_path $1024;'; + put 'retain cat_path;'; + put 'call missing (of _all_);'; + put '/* get all the filepaths of the UsingPackages association */'; + put 'i=1;'; + put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; + put 'do while (rc3>0);'; + put '/* get the DirectoryName attribute of the previous object */'; + put 'rc4=metadata_getattr(up_uri,''DirectoryName'',path);'; + put 'if i=1 then path = ''("''!!trim(path)!!''" '';'; + put 'else path ='' "''!!trim(path)!!''" '';'; + put 'cat_path = trim(cat_path) !! " " !! trim(path) ;'; + put 'i+1;'; + put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; + put 'end;'; + put 'cat_path = trim(cat_path) !! ")";'; + put '&mD.putlog "NOTE: Getting physical path for &libref library";'; + put '&mD.putlog rc3= up_uri= rc4= cat_path= path=;'; + put '&mD.putlog "NOTE: Libname cmd will be:";'; + put '&mD.putlog "libname &libref" cat_path;'; + put 'call symputx("filepath",cat_path,''l'');'; + put 'run;'; + put '%if %sysevalf(&sysver<9.4) %then %do;'; + put 'libname &libref &filepath;'; + put '%end;'; + put '%else %do;'; + put '/* apply the new filelocks option to cater for temporary locks */'; + put 'libname &libref &filepath filelockwait=5;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=REMOTE %then %do;'; + put 'data x;'; + put 'length rcCon rcProp rc k 3 uriCon uriProp PropertyValue PropertyName'; + put 'Delimiter $256 properties $2048;'; + put 'retain properties;'; + put 'rcCon = metadata_getnasn("&liburi", "LibraryConnection", 1, uriCon);'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", 1, uriProp);'; + put 'k = 1;'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; + put 'do while (rcProp > 0);'; + put 'rc = metadata_getattr(uriProp , "DefaultValue",PropertyValue);'; + put 'rc = metadata_getattr(uriProp , "PropertyName",PropertyName);'; + put 'rc = metadata_getattr(uriProp , "Delimiter",Delimiter);'; + put 'properties = trim(properties) !! " " !! trim(PropertyName)'; + put '!! trim(Delimiter) !! trim(PropertyValue);'; + put 'output;'; + put 'k+1;'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; + put 'end;'; + put '%&mD.put NOTE: Getting properties for REMOTE SHARE &libref library;'; + put '&mD.put _all_;'; + put '%&mD.put NOTE: Libname cmd will be:;'; + put '%&mD.put libname &libref &engine &properties slibref=&libref;'; + put 'call symputx ("properties",trim(properties),''l'');'; + put 'run;'; + put 'libname &libref &engine &properties slibref=&libref;'; + put '%end;'; + put '%else %if &engine=OLEDB %then %do;'; + put '%&mD.put NOTE: Retrieving OLEDB connection details;'; + put 'data _null_;'; + put 'length domain datasource provider properties schema'; + put 'connx_uri domain_uri conprop_uri lib_uri schema_uri value $256.;'; + put 'call missing (of _all_);'; + put '/* get source connection ID */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; + put '/* get connection domain */'; + put 'rc1=metadata_getnasn(connx_uri,''Domain'',1,domain_uri);'; + put 'rc2=metadata_getattr(domain_uri,''Name'',domain);'; + put '&mD.putlog / ''NOTE: '' // ''NOTE- connection id: '' connx_uri ;'; + put '&mD.putlog ''NOTE- domain: '' domain;'; + put '/* get DSN and PROVIDER from connection properties */'; + put 'i=0;'; + put 'do until (rc<0);'; + put 'i+1;'; + put 'rc=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; + put 'rc2=metadata_getattr(conprop_uri,''Name'',value);'; + put 'if value=''Connection.OLE.Property.DATASOURCE.Name.xmlKey.txt'' then do;'; + put 'rc3=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; + put 'end;'; + put 'else if value=''Connection.OLE.Property.PROVIDER.Name.xmlKey.txt'' then do;'; + put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',provider);'; + put 'end;'; + put 'else if value=''Connection.OLE.Property.PROPERTIES.Name.xmlKey.txt'' then'; + put 'do;'; + put 'rc5=metadata_getattr(conprop_uri,''DefaultValue'',properties);'; + put 'end;'; + put 'end;'; + put '&mD.putlog ''NOTE- dsn/provider/properties: '' /'; + put 'datasource provider properties;'; + put '&mD.putlog ''NOTE- schema: '' schema // ''NOTE-'';'; + put '/* get SCHEMA */'; + put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,lib_uri);'; + put 'rc7=metadata_getattr(lib_uri,''SchemaName'',schema);'; + put 'call symputx(''SQL_domain'',domain,''l'');'; + put 'call symputx(''SQL_dsn'',datasource,''l'');'; + put 'call symputx(''SQL_provider'',provider,''l'');'; + put 'call symputx(''SQL_properties'',properties,''l'');'; + put 'call symputx(''SQL_schema'',schema,''l'');'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put 'proc sql &sql_options;'; + put 'connect to OLEDB as &open_passthrough(INSERT_SQL=YES'; + put '/* need additional properties to make this work */'; + put 'properties=(''Integrated Security''=SSPI'; + put '''Persist Security Info''=True'; + put '%sysfunc(compress(%str(&SQL_properties),%str(())))'; + put ')'; + put 'DATASOURCE=&sql_dsn PROMPT=NO'; + put 'PROVIDER=&sql_provider SCHEMA=&sql_schema CONNECTION = GLOBAL);'; + put '%end;'; + put '%else %do;'; + put 'LIBNAME &libref OLEDB PROPERTIES=&sql_properties'; + put 'DATASOURCE=&sql_dsn PROVIDER=&sql_provider SCHEMA=&sql_schema'; + put '%if %length(&sql_domain)>0 %then %do;'; + put 'authdomain="&sql_domain"'; + put '%end;'; + put 'connection=shared;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=ODBC %then %do;'; + put '&mD.%put NOTE: Retrieving ODBC connection details;'; + put 'data _null_;'; + put 'length connx_uri conprop_uri value datasource up_uri schema $256.;'; + put 'call missing (of _all_);'; + put '/* get source connection ID */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; + put '/* get connection properties */'; + put 'i=0;'; + put 'do until (rc2<0);'; + put 'i+1;'; + put 'rc2=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; + put 'rc3=metadata_getattr(conprop_uri,''Name'',value);'; + put 'if value=''Connection.ODBC.Property.DATASRC.Name.xmlKey.txt'' then do;'; + put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; + put 'rc2=-1;'; + put 'end;'; + put 'end;'; + put '/* get SCHEMA */'; + put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,up_uri);'; + put 'rc7=metadata_getattr(up_uri,''SchemaName'',schema);'; + put '&mD.put rc= connx_uri= rc2= conprop_uri= rc3= value= rc4= datasource='; + put 'rc6= up_uri= rc7= schema=;'; + put 'call symputx(''SQL_schema'',schema,''l'');'; + put 'call symputx(''SQL_dsn'',datasource,''l'');'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put 'proc sql &sql_options;'; + put 'connect to ODBC as &open_passthrough'; + put '(INSERT_SQL=YES DATASRC=&sql_dsn. CONNECTION=global);'; + put '%end;'; + put '%else %do;'; + put 'libname &libref ODBC DATASRC=&sql_dsn SCHEMA=&sql_schema;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=POSTGRES %then %do;'; + put '%put NOTE: Obtaining POSTGRES library details;'; + put 'data _null_;'; + put 'length database ignore_read_only_columns direct_exe preserve_col_names'; + put 'preserve_tab_names server schema authdomain user password'; + put 'prop name value uri urisrc $256.;'; + put 'call missing (of _all_);'; + put '/* get database value */'; + put 'prop=''Connection.DBMS.Property.DB.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,database,"");'; + put 'if database^='''' then database=''database=''!!quote(trim(database));'; + put 'call symputx(''database'',database,''l'');'; + put '/* get IGNORE_READ_ONLY_COLUMNS value */'; + put 'prop=''Library.DBMS.Property.DBIROC.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,ignore_read_only_columns,"");'; + put 'if ignore_read_only_columns^='''' then ignore_read_only_columns='; + put '''ignore_read_only_columns=''!!ignore_read_only_columns;'; + put 'call symputx(''ignore_read_only_columns'',ignore_read_only_columns,''l'');'; + put '/* get DIRECT_EXE value */'; + put 'prop=''Library.DBMS.Property.DirectExe.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,direct_exe,"");'; + put 'if direct_exe^='''' then direct_exe=''direct_exe=''!!direct_exe;'; + put 'call symputx(''direct_exe'',direct_exe,''l'');'; + put '/* get PRESERVE_COL_NAMES value */'; + put 'prop=''Library.DBMS.Property.PreserveColNames.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,preserve_col_names,"");'; + put 'if preserve_col_names^='''' then preserve_col_names='; + put '''preserve_col_names=''!!preserve_col_names;'; + put 'call symputx(''preserve_col_names'',preserve_col_names,''l'');'; + put '/* get PRESERVE_TAB_NAMES value */'; + put '/* be careful with PRESERVE_TAB_NAMES=YES - it will mean your table will'; + put 'become case sensitive!! */'; + put 'prop=''Library.DBMS.Property.PreserveTabNames.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,preserve_tab_names,"");'; + put 'if preserve_tab_names^='''' then preserve_tab_names='; + put '''preserve_tab_names=''!!preserve_tab_names;'; + put 'call symputx(''preserve_tab_names'',preserve_tab_names,''l'');'; + put '/* get SERVER value */'; + put 'if metadata_getnasn("&liburi","LibraryConnection",1,uri)>0 then do;'; + put 'prop=''Connection.DBMS.Property.SERVER.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop(uri,prop,server,"");'; + put 'end;'; + put 'if server^='''' then server=''server=''!!quote(cats(server));'; + put 'call symputx(''server'',server,''l'');'; + put '/* get SCHEMA value */'; + put 'if metadata_getnasn("&liburi","UsingPackages",1,uri)>0 then do;'; + put 'rc=metadata_getattr(uri,"SchemaName",schema);'; + put 'end;'; + put 'if schema^='''' then schema=''schema=''!!schema;'; + put 'call symputx(''schema'',schema,''l'');'; + put '/* get AUTHDOMAIN value */'; + put '/* this is only useful if the user account contains that auth domain'; + put 'if metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then do;'; + put 'rc=metadata_getnasn(uri,"Domain",1,urisrc);'; + put 'rc=metadata_getattr(urisrc,"Name",authdomain);'; + put 'end;'; + put 'if authdomain^='''' then authdomain=''authdomain=''!!quote(trim(authdomain));'; + put '*/'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/* get user & pass */'; + put 'if authdomain='''' & metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then'; + put 'do;'; + put 'rc=metadata_getattr(uri,"UserID",user);'; + put 'rc=metadata_getattr(uri,"Password",password);'; + put 'end;'; + put 'if user^='''' then do;'; + put 'user=''user=''!!quote(trim(user));'; + put 'password=''password=''!!quote(trim(password));'; + put 'end;'; + put 'call symputx(''user'',user,''l'');'; + put 'call symputx(''password'',password,''l'');'; + put '&md.put _all_;'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put '%put %str(WARN)ING: Passthrough option for postgres not yet supported;'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put '%if &mdebug=1 %then %do;'; + put '%put NOTE: Executing the following:/;'; + put '%put NOTE- libname &libref POSTGRES &database &ignore_read_only_columns;'; + put '%put NOTE- &direct_exe &preserve_col_names &preserve_tab_names;'; + put '%put NOTE- &server &schema &authdomain &user &password //;'; + put '%end;'; + put 'libname &libref POSTGRES &database &ignore_read_only_columns &direct_exe'; + put '&preserve_col_names &preserve_tab_names &server &schema &authdomain'; + put '&user &password;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=ORACLE %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null_;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema $256;'; + put 'call missing (of _all_);'; + put '/* get auth domain */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; + put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; + put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/* path */'; + put 'rc=metadata_getprop(assocuri1,'; + put '''Connection.Oracle.Property.PATH.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref ORACLE path=&path schema=&schema;'; + put '%put NOTE- authdomain=&authdomain;'; + put '%put NOTE-;'; + put 'libname &libref ORACLE path=&path schema=&schema authdomain=&authdomain;'; + put '%end;'; + put '%else %if &engine=SQLSVR %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; + put 'passwd $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; + put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; + put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; + put 'call symputx(''user'',userid,''l'');'; + put 'call symputx(''pass'',passwd,''l'');'; + put '/* path */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; + put 'rc=metadata_getprop(assocuri2,'; + put '''Connection.SQL.Property.Datasrc.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref SQLSVR datasrc=&path schema=&schema ;'; + put '%put NOTE- user="&user" pass="XXX";'; + put '%put NOTE-;'; + put 'libname &libref SQLSVR datasrc=&path schema=&schema user="&user" pass="&pass";'; + put '%end;'; + put '%else %if &engine=TERADATA %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; + put 'passwd $256;'; + put 'call missing (of _all_);'; + put '/* get auth domain */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; + put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; + put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/*'; + put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; + put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; + put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; + put 'call symputx(''user'',userid,''l'');'; + put 'call symputx(''pass'',passwd,''l'');'; + put '*/'; + put '/* path */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; + put 'rc=metadata_getprop(assocuri2,'; + put '''Connection.Teradata.Property.SERVER.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref TERADATA server="&path" schema=&schema ;'; + put '%put NOTe- authdomain=&authdomain;'; + put '%put NOTE-;'; + put 'libname &libref TERADATA server="&path" schema=&schema authdomain=&authdomain;'; + put '%end;'; + put '%else %if &engine= %then %do;'; + put '%put NOTE: Libref &libref is not registered in metadata;'; + put '%&mAbort.mp_abort('; + put 'msg=%str(ERR)OR: Libref &libref is not registered in metadata'; + put ',mac=mm_assigndirectlib.sas);'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put '%put %str(WARN)ING: Engine &engine is currently unsupported;'; + put '%put %str(WARN)ING- Please contact your support team.;'; + put '%return;'; + put '%end;'; + put '%mend mm_assigndirectlib;'; + put '%macro mm_getrepos('; + put 'outds=work.mm_getrepos'; + put ')/*/STORE SOURCE*/;'; + put '* use a temporary fileref to hold the response;'; + put 'filename response temp;'; + put '/* get list of libraries */'; + put 'proc metadata in='; + put '"1"'; + put 'out=response;'; + put 'run;'; + put '/* write the response to the log for debugging */'; + put '/*'; + put 'data _null_;'; + put 'infile response lrecl=1048576;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '*/'; + put '/* create an XML map to read the response */'; + put 'filename sxlemap temp;'; + put 'data _null_;'; + put 'file sxlemap;'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository";'; + put 'put "";'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Id";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Name";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Desc";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@DefaultNS";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryType";'; + put 'put "characterstring20";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryFormat";'; + put 'put "characterstring10";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@Access";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@CurrentAccess";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@PauseState";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Path";'; + put 'put "";'; + put 'put "characterstring256";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Engine";'; + put 'put "";'; + put 'put "characterstring8";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Options";'; + put 'put "";'; + put 'put "characterstring32";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataCreated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataUpdated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put ''
'';'; + put 'run;'; + put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; + put 'proc sort data= _XML_.SASRepos out=&outds;'; + put 'by name;'; + put 'run;'; + put '/* clear references */'; + put 'filename sxlemap clear;'; + put 'filename response clear;'; + put 'libname _XML_ clear;'; + put '%mend mm_getrepos;'; + put '%macro dc_assignlib(type,libref,passthru=);'; + put '%put &sysmacroname entry vars:;'; + put '%put _local_;'; + put '/* take current repository */'; + put '%local repo repocnt x;'; + put '%let repo=%sysfunc(getoption(metarepository));'; + put '/* get list of repositories and filter */'; + put '%mm_getrepos(outds=repos)'; + put '%let repocnt=0;'; + put 'data repos;'; + put 'set repos;'; + put 'where repositorytype in(''CUSTOM'',''FOUNDATION'')'; + put '& upcase(name) ne "%upcase(&repo)";'; + put 'keep id name ;'; + put 'call symputx(cats(''repo'',_n_),name,''l'');'; + put 'call symputx(''repocnt'',_n_,''l'');'; + put 'run;'; + put '/* find out which of these repositories has the libref we are searching for */'; + put '%local lib_uri;'; + put '%let lib_uri=NOTFOUND;'; + put 'data _null_; /* check default repo first */'; + put 'length lib_uri $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; + put 'run;'; + put '%if &lib_uri=NOTFOUND %then %do;'; + put '%do x=1 %to &repocnt;'; + put 'options metarepository=&&repo&x;'; + put 'data _null_;'; + put 'length lib_uri $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; + put 'run;'; + put '%if &lib_uri ne NOTFOUND %then %let x=%eval(&repocnt+1);'; + put '%end;'; + put '%end;'; + put '%if &type=READ %then %do;'; + put '%mm_assignlib(&libref)'; + put '%end;'; + put '%else %if &type=WRITE %then %do;'; + put '%mm_assigndirectlib(&libref,open_passthrough=&passthru)'; + put '%end;'; + put 'options metarepository=&repo;'; + put '%mend dc_assignlib;'; + put '%macro mf_mkdir(dir'; + put ')/*/STORE SOURCE*/;'; + put '%local lastchar child parent;'; + put '%let lastchar = %substr(&dir, %length(&dir));'; + put '%if (%bquote(&lastchar) eq %str(:)) %then %do;'; + put '/* Cannot create drive mappings */'; + put '%return;'; + put '%end;'; + put '%if (%bquote(&lastchar)=%str(/)) or (%bquote(&lastchar)=%str(\)) %then %do;'; + put '/* last char is a slash */'; + put '%if (%length(&dir) eq 1) %then %do;'; + put '/* one single slash - root location is assumed to exist */'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put '/* strip last slash */'; + put '%let dir = %substr(&dir, 1, %length(&dir)-1);'; + put '%end;'; + put '%end;'; + put '%if (%sysfunc(fileexist(%bquote(&dir))) = 0) %then %do;'; + put '/* directory does not exist so prepare to create */'; + put '/* first get the childmost directory */'; + put '%let child = %scan(&dir, -1, %str(/\:));'; + put '/*'; + put 'If child name = path name then there are no parents to create. Else'; + put 'they must be recursively scanned.'; + put '*/'; + put '%if (%length(&dir) gt %length(&child)) %then %do;'; + put '%let parent = %substr(&dir, 1, %length(&dir)-%length(&child));'; + put '%mf_mkdir(&parent)'; + put '%end;'; + put '/*'; + put 'Now create the directory. Complain loudly of any errs.'; + put '*/'; + put '%let dname = %sysfunc(dcreate(&child, &parent));'; + put '%if (%bquote(&dname) eq ) %then %do;'; + put '%put %str(ERR)OR: could not create &parent + &child;'; + put '%abort cancel;'; + put '%end;'; + put '%else %do;'; + put '%put Directory created: &dir;'; + put '%end;'; + put '%end;'; + put '/* exit quietly if directory did exist.*/'; + put '%mend mf_mkdir;'; + put '%macro mddl_sas_cntlout(libds=WORK.CNTLOUT);'; + put 'proc sql;'; + put 'create table &libds('; + put 'FMTNAME char(32) label=''Format name'''; + put '/*'; + put 'to accommodate larger START values, mp_loadformat.sas will need the'; + put 'SQL dependency removed (proc sql needs to accommodate 3 index values in'; + put 'a 32767 ibufsize limit)'; + put '*/'; + put ',START char(10000) label=''Starting value for format'''; + put ',END char(32767) label=''Ending value for format'''; + put ',LABEL char(32767) label=''Format value label'''; + put ',MIN num length=3 label=''Minimum length'''; + put ',MAX num length=3 label=''Maximum length'''; + put ',DEFAULT num length=3 label=''Default length'''; + put ',LENGTH num length=3 label=''Format length'''; + put ',FUZZ num label=''Fuzz value'''; + put ',PREFIX char(2) label=''Prefix characters'''; + put ',MULT num label=''Multiplier'''; + put ',FILL char(1) label=''Fill character'''; + put ',NOEDIT num length=3 label=''Is picture string noedit?'''; + put ',TYPE char(1) label=''Type of format'''; + put ',SEXCL char(1) label=''Start exclusion'''; + put ',EEXCL char(1) label=''End exclusion'''; + put ',HLO char(13) label=''Additional information'''; + put ',DECSEP char(1) label=''Decimal separator'''; + put ',DIG3SEP char(1) label=''Three-digit separator'''; + put ',DATATYPE char(8) label=''Date/time/datetime?'''; + put ',LANGUAGE char(8) label=''Language for date strings'''; + put ');'; + put '%mend mddl_sas_cntlout;'; + put '%macro mf_getuniquename(prefix=MC);'; + put '&prefix.%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32-%length(&prefix))'; + put '%mend mf_getuniquename;'; + put '%macro mp_cntlout('; + put 'iftrue=(1=1)'; + put ',libcat='; + put ',cntlout=work.fmtextract'; + put ',fmtlist=0'; + put ')/*/STORE SOURCE*/;'; + put '%local ddlds cntlds i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%let ddlds=%mf_getuniquename();'; + put '%let cntlds=%mf_getuniquename();'; + put '%mddl_sas_cntlout(libds=&ddlds)'; + put '%if %index(&libcat,-)>0 and %scan(&libcat,2,-)=FC %then %do;'; + put '%let libcat=%scan(&libcat,1,-);'; + put '%end;'; + put 'proc format lib=&libcat cntlout=&cntlds;'; + put '%if "&fmtlist" ne "0" %then %do;'; + put 'select'; + put '%do i=1 %to %sysfunc(countw(&fmtlist));'; + put '%scan(&fmtlist,&i,%str( ))'; + put '%end;'; + put ';'; + put '%end;'; + put 'run;'; + put 'data &cntlout;'; + put 'if 0 then set &ddlds;'; + put 'set &cntlds;'; + put 'if type="N" then do;'; + put 'start=cats(start);'; + put 'end=cats(end);'; + put 'end;'; + put 'run;'; + put 'proc sort;'; + put 'by fmtname start;'; + put 'run;'; + put 'proc sql;'; + put 'drop table &ddlds,&cntlds;'; + put '%mend mp_cntlout;'; + put '/** @endcond */'; + put '%macro mf_getvarlist(libds'; + put ',dlm=%str( )'; + put ',quote=no'; + put ',typefilter=A'; + put ')/*/STORE SOURCE*/;'; + put '/* declare local vars */'; + put '%local outvar dsid nvars x rc dlm q var vtype;'; + put '/* credit Rowland Hale - byte34 is double quote, 39 is single quote */'; + put '%if %upcase("e)=DOUBLE %then %let q=%qsysfunc(byte(34));'; + put '%else %if %upcase("e)=SINGLE %then %let q=%qsysfunc(byte(39));'; + put '/* open dataset in macro */'; + put '%let dsid=%sysfunc(open(&libds));'; + put '%if &dsid %then %do;'; + put '%let nvars=%sysfunc(attrn(&dsid,NVARS));'; + put '%if &nvars>0 %then %do;'; + put '/* add variables with supplied delimeter */'; + put '%do x=1 %to &nvars;'; + put '/* get variable type */'; + put '%let vtype=%sysfunc(vartype(&dsid,&x));'; + put '%if &vtype=&typefilter or &typefilter=A %then %do;'; + put '%let var=&q.%sysfunc(varname(&dsid,&x))&q.;'; + put '%if &var=&q&q %then %do;'; + put '%put &sysmacroname: Empty column found in &libds!;'; + put '%let var=&q. &q.;'; + put '%end;'; + put '%if %quote(&outvar)=%quote() %then %let outvar=&var;'; + put '%else %let outvar=&outvar.&dlm.&var.;'; + put '%end;'; + put '%end;'; + put '%end;'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: Unable to open &libds (rc=&dsid);'; + put '%put &sysmacroname: SYSMSG= %sysfunc(sysmsg());'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%do;%unquote(&outvar)%end;'; + put '%mend mf_getvarlist;'; + put '%macro mf_wordsInStr1ButNotStr2('; + put 'Str1= /* string containing words to extract */'; + put ',Str2= /* used to compare with the extract string */'; + put ')/*/STORE SOURCE*/;'; + put '%local count_base count_extr i i2 extr_word base_word match outvar;'; + put '%if %length(&str1)=0 or %length(&str2)=0 %then %do;'; + put '%put base string (str1)= &str1;'; + put '%put compare string (str2) = &str2;'; + put '%return;'; + put '%end;'; + put '%let count_base=%sysfunc(countw(&Str2));'; + put '%let count_extr=%sysfunc(countw(&Str1));'; + put '%do i=1 %to &count_extr;'; + put '%let extr_word=%scan(&Str1,&i,%str( ));'; + put '%let match=0;'; + put '%do i2=1 %to &count_base;'; + put '%let base_word=%scan(&Str2,&i2,%str( ));'; + put '%if &extr_word=&base_word %then %let match=1;'; + put '%end;'; + put '%if &match=0 %then %let outvar=&outvar &extr_word;'; + put '%end;'; + put '&outvar'; + put '%mend mf_wordsInStr1ButNotStr2;'; + put '%macro mp_dirlist(path=%sysfunc(pathname(work))'; + put ', fref=0'; + put ', outds=work.mp_dirlist'; + put ', getattrs=NO'; + put ', maxdepth=0'; + put ', level=0 /* The level of recursion to perform. For internal use only. */'; + put ')/*/STORE SOURCE*/;'; + put '%let getattrs=%upcase(&getattrs)XX;'; + put '/* temp table */'; + put '%local out_ds;'; + put 'data;run;'; + put '%let out_ds=%str(&syslast);'; + put '/* drop main (top) table if it exists */'; + put '%if &level=0 %then %do;'; + put '%mp_dropmembers(%scan(&outds,-1,.), libref=WORK)'; + put '%end;'; + put 'data &out_ds(compress=no'; + put 'keep=file_or_folder filepath filename ext msg directory level'; + put ');'; + put 'length directory filepath $500 fref fref2 $8 file_or_folder $6 filename $80'; + put 'ext $20 msg $200 foption $16;'; + put 'if _n_=1 then call missing(of _all_);'; + put 'retain level &level;'; + put '%if &fref=0 %then %do;'; + put 'rc = filename(fref, "&path");'; + put '%end;'; + put '%else %do;'; + put 'fref="&fref";'; + put 'rc=0;'; + put '%end;'; + put 'if rc = 0 then do;'; + put 'did = dopen(fref);'; + put 'if did=0 then do;'; + put 'putlog "NOTE: This directory is empty, or does not exist - &path";'; + put 'msg=sysmsg();'; + put 'put msg;'; + put 'put _all_;'; + put 'stop;'; + put 'end;'; + put '/* attribute is OS-dependent - could be "Directory" or "Directory Name" */'; + put 'numopts=doptnum(did);'; + put 'do i=1 to numopts;'; + put 'foption=doptname(did,i);'; + put 'if foption=:''Directory'' then i=numopts;'; + put 'end;'; + put 'directory=dinfo(did,foption);'; + put 'rc = filename(fref);'; + put 'end;'; + put 'else do;'; + put 'msg=sysmsg();'; + put 'put _all_;'; + put 'stop;'; + put 'end;'; + put 'dnum = dnum(did);'; + put 'do i = 1 to dnum;'; + put 'filename = dread(did, i);'; + put 'filepath=cats(directory,''/'',filename);'; + put 'rc = filename(fref2,filepath);'; + put 'midd=dopen(fref2);'; + put 'dmsg=sysmsg();'; + put 'if did > 0 then file_or_folder=''folder'';'; + put 'rc=dclose(midd);'; + put 'midf=fopen(fref2);'; + put 'fmsg=sysmsg();'; + put 'if midf > 0 then file_or_folder=''file'';'; + put 'rc=fclose(midf);'; + put 'if index(fmsg,''File is in use'') or index(dmsg,''is not a directory'')'; + put 'then file_or_folder=''file'';'; + put 'else if index(fmsg,''Insufficient authorization'') then file_or_folder=''file'';'; + put 'else if file_or_folder='''' then file_or_folder=''locked'';'; + put 'if file_or_folder=''file'' then do;'; + put 'ext = prxchange(''s/.*\.{1,1}(.*)/$1/'', 1, filename);'; + put 'if filename = ext then ext = '' '';'; + put 'end;'; + put 'else do;'; + put 'ext='''';'; + put 'file_or_folder=''folder'';'; + put 'end;'; + put 'output;'; + put 'end;'; + put 'rc = dclose(did);'; + put 'stop;'; + put 'run;'; + put '%if %substr(&getattrs,1,1)=Y %then %do;'; + put 'data &out_ds;'; + put 'set &out_ds;'; + put 'length infoname infoval $60 fref $8;'; + put 'if _n_=1 then call missing(fref);'; + put 'rc=filename(fref,filepath);'; + put 'drop rc infoname fid i close fref;'; + put 'if file_or_folder=''file'' then do;'; + put 'fid=fopen(fref);'; + put 'if fid le 0 then do;'; + put 'msg=sysmsg();'; + put 'putlog "Could not open file:" filepath fid= ;'; + put 'sasname=''_MCNOTVALID_'';'; + put 'output;'; + put 'end;'; + put 'else do i=1 to foptnum(fid);'; + put 'infoname=foptname(fid,i);'; + put 'infoval=finfo(fid,infoname);'; + put 'sasname=compress(infoname, ''_'', ''adik'');'; + put 'if anydigit(sasname)=1 then sasname=substr(sasname,anyalpha(sasname));'; + put 'if upcase(sasname) ne ''FILENAME'' then output;'; + put 'end;'; + put 'close=fclose(fid);'; + put 'end;'; + put 'else do;'; + put 'fid=dopen(fref);'; + put 'if fid le 0 then do;'; + put 'msg=sysmsg();'; + put 'putlog "Could not open folder:" filepath fid= ;'; + put 'sasname=''_MCNOTVALID_'';'; + put 'output;'; + put 'end;'; + put 'else do i=1 to doptnum(fid);'; + put 'infoname=doptname(fid,i);'; + put 'infoval=dinfo(fid,infoname);'; + put 'sasname=compress(infoname, ''_'', ''adik'');'; + put 'if anydigit(sasname)=1 then sasname=substr(sasname,anyalpha(sasname));'; + put 'if upcase(sasname) ne ''FILENAME'' then output;'; + put 'end;'; + put 'close=dclose(fid);'; + put 'end;'; + put 'run;'; + put 'proc sort;'; + put 'by filepath sasname;'; + put 'proc transpose data=&out_ds out=&out_ds(drop=_:);'; + put 'id sasname;'; + put 'var infoval;'; + put 'by filepath file_or_folder filename ext ;'; + put 'run;'; + put '%end;'; + put 'data &out_ds;'; + put 'set &out_ds(where=(filepath ne ''''));'; + put 'run;'; + put '/**'; + put '* The above transpose can mean that some updates create additional columns.'; + put '* This necessitates the occasional use of datastep over proc append.'; + put '*/'; + put '%if %mf_existds(&outds) %then %do;'; + put '%local basevars appvars newvars;'; + put '%let basevars=%mf_getvarlist(&outds);'; + put '%let appvars=%mf_getvarlist(&out_ds);'; + put '%let newvars=%length(%mf_wordsinstr1butnotstr2(Str1=&appvars,Str2=&basevars));'; + put '%if &newvars>0 %then %do;'; + put 'data &outds;'; + put 'set &outds &out_ds;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put 'proc append base=&outds data=&out_ds force nowarn;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put 'proc append base=&outds data=&out_ds;'; + put 'run;'; + put '%end;'; + put '/* recursive call */'; + put '%if &maxdepth>&level or &maxdepth=MAX %then %do;'; + put 'data _null_;'; + put 'set &out_ds;'; + put 'where file_or_folder=''folder'';'; + put 'length code $10000;'; + put 'code=cats(''%nrstr(%mp_dirlist(path='',filepath,",outds=&outds"'; + put ',",getattrs=&getattrs,level=%eval(&level+1),maxdepth=&maxdepth))");'; + put 'put code=;'; + put 'call execute(code);'; + put 'run;'; + put '%end;'; + put '/* tidy up */'; + put 'proc sql;'; + put 'drop table &out_ds;'; + put '%mend mp_dirlist;'; + put '%macro mf_getattrc('; + put 'libds'; + put ',attr'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid rc;'; + put '%let dsid=%sysfunc(open(&libds,is));'; + put '%if &dsid = 0 %then %do;'; + put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; + put '%put %sysfunc(sysmsg());'; + put '-1'; + put '%end;'; + put '%else %do;'; + put '%sysfunc(attrc(&dsid,&attr))'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%mend mf_getattrc;'; + put '%macro mp_lockfilecheck('; + put 'libds'; + put ')/*/STORE SOURCE*/;'; + put 'data _null_;'; + put 'if _n_=1 then putlog "&sysmacroname entry vars:";'; + put 'set sashelp.vmacro;'; + put 'where scope="&sysmacroname";'; + put 'put name ''='' value;'; + put 'run;'; + put '%mp_abort(iftrue= (&syscc>0)'; + put ',mac=checklock.sas'; + put ',msg=Aborting with syscc=&syscc on entry.'; + put ')'; + put '%mp_abort(iftrue= ("&libds"="0")'; + put ',mac=&sysmacroname'; + put ',msg=%str(libds not provided)'; + put ')'; + put '%local msg lib ds;'; + put '%let lib=%upcase(%scan(&libds,1,.));'; + put '%let ds=%upcase(%scan(&libds,2,.));'; + put '/* in DC, format catalogs are passed with a -FC suffix. No saslock here! */'; + put '%if %scan(&libds,2,-)=FC %then %do;'; + put '%put &sysmacroname: Format Catalog detected, no lockfile applied to &libds;'; + put '%return;'; + put '%end;'; + put '/* do not proceed if no observations can be processed */'; + put '%let msg=options obs = 0. syserrortext=%superq(syserrortext);'; + put '%mp_abort(iftrue= (%sysfunc(getoption(OBS))=0)'; + put ',mac=checklock.sas'; + put ',msg=%superq(msg)'; + put ')'; + put 'data _null_;'; + put 'putlog "Checking engine & member type";'; + put 'run;'; + put '%local engine memtype;'; + put '%let memtype=%mf_getattrc(&libds,MTYPE);'; + put '%let engine=%mf_getattrc(&libds,ENGINE);'; + put '%if &engine ne V9 and &engine ne BASE %then %do;'; + put 'data _null_;'; + put 'putlog "Lib &lib is not assigned using BASE engine - uses &engine instead";'; + put 'putlog "SAS lock check will not be performed";'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%else %if &memtype ne DATA %then %do;'; + put '%put NOTE: Cannot lock a VIEW!! Memtype=&memtype;'; + put '%return;'; + put '%end;'; + put 'data _null_;'; + put 'putlog "Engine = &engine, memtype=&memtype";'; + put 'putlog "Attempting lock statement";'; + put 'run;'; + put 'lock &libds;'; + put '%local abortme;'; + put '%let abortme=0;'; + put '%if &syscc>0 or &SYSLCKRC ne 0 %then %do;'; + put '%let msg=Unable to apply lock on &libds (SYSLCKRC=&SYSLCKRC syscc=&syscc);'; + put '%put %str(ERR)OR: &sysmacroname: &msg;'; + put '%let abortme=1;'; + put '%end;'; + put 'lock &libds clear;'; + put '%mp_abort(iftrue= (&abortme=1)'; + put ',mac=&sysmacroname'; + put ',msg=%superq(msg)'; + put ')'; + put '%mend mp_lockfilecheck;'; + put '%macro mp_lockanytable('; + put 'action'; + put ',lib= WORK'; + put ',ds=0'; + put ',ref='; + put ',ctl_ds=0'; + put ',loops=25'; + put ',loop_secs=1'; + put ');'; + put 'data _null_;'; + put 'if _n_=1 then putlog "&sysmacroname entry vars:";'; + put 'set sashelp.vmacro;'; + put 'where scope="&sysmacroname";'; + put 'put name ''='' value;'; + put 'run;'; + put '%mp_abort(iftrue= ("&ds"="0" and &action ne MAKETABLE)'; + put ',mac=&sysmacroname'; + put ',msg=%str(dataset was not provided)'; + put ')'; + put '%mp_abort(iftrue= (&ctl_ds=0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Control dataset was not provided)'; + put ')'; + put '/* set up lib & mac vars */'; + put '%let lib=%upcase(&lib);'; + put '%let ds=%upcase(&ds);'; + put '%let action=%upcase(&action);'; + put '%local user x trans msg abortme;'; + put '%let user=%mf_getuser();'; + put '%let abortme=0;'; + put '%mp_abort(iftrue= (&action ne LOCK & &action ne UNLOCK & &action ne MAKETABLE)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Invalid action (&action) provided)'; + put ')'; + put '/* if an err condition exists, exit before we even begin */'; + put '%mp_abort(iftrue= (&syscc>0 and &action=LOCK)'; + put ',mac=&sysmacroname'; + put ',msg=%str(aborting due to syscc=&syscc on LOCK entry)'; + put ')'; + put '/* do not bother locking work tables (else may affect all WORK libraries) */'; + put '%if (%upcase(&lib)=WORK or %str(&lib)=%str()) & &action ne MAKETABLE %then %do;'; + put '%put NOTE: WORK libraries will not be registered in the locking system.;'; + put '%return;'; + put '%end;'; + put '/* do not proceed if no observations can be processed */'; + put '%mp_abort(iftrue= (%sysfunc(getoption(OBS))=0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(cannot continue when options obs = 0)'; + put ')'; + put '%if &ACTION=LOCK %then %do;'; + put '/* abort if a SAS lock is already in place, or cannot be applied */'; + put '%mp_lockfilecheck(&lib..&ds)'; + put '/* next, check there is a record for this table */'; + put '%local record_exists_check;'; + put 'proc sql noprint;'; + put 'select count(*) into: record_exists_check from &ctl_ds'; + put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; + put 'quit;'; + put '%if &syscc>0 %then %put syscc=&syscc sqlrc=&sqlrc;'; + put '%if &record_exists_check=0 %then %do;'; + put 'data _null_;'; + put 'putlog "&sysmacroname: adding record to lock table..";'; + put 'run;'; + put 'data ;'; + put 'if 0 then set &ctl_ds;'; + put 'LOCK_LIB ="&lib";'; + put 'LOCK_DS="&ds";'; + put 'LOCK_STATUS_CD=''LOCKED'';'; + put 'LOCK_START_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt;'; + put 'LOCK_USER_NM="&user";'; + put 'LOCK_PID="&sysjobid";'; + put 'LOCK_REF="&ref";'; + put 'output;stop;'; + put 'run;'; + put '%let trans=&syslast;'; + put 'proc append base=&ctl_ds data=&trans;'; + put 'run;'; + put '%end;'; + put '/* if record does exist, perform lock attempts */'; + put '%else %do x=1 %to &loops;'; + put 'data _null_;'; + put 'putlog "&sysmacroname: attempting lock (iteration &x) "@;'; + put 'putlog "at %sysfunc(datetime(),datetime19.) ..";'; + put 'run;'; + put 'proc sql;'; + put 'update &ctl_ds'; + put 'set LOCK_STATUS_CD=''LOCKED'''; + put ', LOCK_START_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt'; + put ', LOCK_USER_NM="&user"'; + put ', LOCK_PID="&sysjobid"'; + put ', LOCK_REF="&ref"'; + put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; + put 'quit;'; + put '/**'; + put '* NOTE - occasionally SQL server will return an err code (deadlocked'; + put '* transaction). If so, ignore it, keep calm, and carry on..'; + put '*/'; + put '%if &syscc>0 %then %do;'; + put 'data _null_;'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'putlog "NOTE- &sysmacroname: Update failed. "@;'; + put 'putlog "Resetting err conditions and re-attempting.";'; + put 'putlog "NOTE- syscc=&syscc syserr=&syserr sqlrc=&sqlrc";'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'run;'; + put '%let syscc=0;'; + put '%let sqlrc=0;'; + put '%end;'; + put '/* now check if the record was successfully updated */'; + put '%local success_check;'; + put 'proc sql noprint;'; + put 'select count(*) into: success_check from &ctl_ds'; + put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds"'; + put 'and LOCK_PID="&sysjobid" and LOCK_STATUS_CD=''LOCKED'';'; + put 'quit;'; + put '%if &success_check=0 %then %do;'; + put '%if &x < &loops %then %do;'; + put '/* pause before next check */'; + put 'data _null_;'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'putlog "NOTE- &sysmacroname: table locked, waiting "@;'; + put 'putlog "%sysfunc(sleep(&loop_inc)) seconds.. ";'; + put 'putlog "NOTE- (iteration &x of &loops)";'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%let msg=Unable to lock &lib..&ds via &ctl_ds after &loops attempts.\n'; + put 'Please ask your administrator to investigate!;'; + put '%let abortme=1;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put 'data _null_;'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'putlog "NOTE- &sysmacroname: Table &lib..&ds locked at "@;'; + put 'putlog " %sysfunc(datetime(),datetime19.) (iteration &x)"@;'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'run;'; + put '%if &syscc>0 %then %do;'; + put '%put setting syscc(&syscc) back to 0;'; + put '%let syscc=0;'; + put '%end;'; + put '%let x=&loops; /* no more iterations needed */'; + put '%end;'; + put '%end;'; + put '%end;'; + put '%else %if &ACTION=UNLOCK %then %do;'; + put '%local status;'; + put 'proc sql noprint;'; + put 'select LOCK_STATUS_CD into: status from &ctl_ds'; + put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; + put 'quit;'; + put '%if &syscc>0 %then %put syscc=&syscc sqlrc=&sqlrc;'; + put '%if &status=LOCKED %then %do;'; + put 'data _null_;'; + put 'putlog "&sysmacroname: unlocking &lib..&ds:";'; + put 'run;'; + put 'proc sql;'; + put 'update &ctl_ds'; + put 'set LOCK_STATUS_CD=''UNLOCKED'''; + put ', LOCK_END_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt'; + put ', LOCK_USER_NM="&user"'; + put ', LOCK_PID="&sysjobid"'; + put ', LOCK_REF="&ref"'; + put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; + put 'quit;'; + put '%end;'; + put '%else %if &status=UNLOCKED %then %do;'; + put '%put %str(WAR)NING: &lib..&ds is already unlocked!;'; + put '%end;'; + put '%else %do;'; + put '%put NOTE: Unrecognised STATUS_CD (&status) in &ctl_ds;'; + put '%let abortme=1;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%let msg=lock_anytable given unsupported action (&action);'; + put '%let abortme=1;'; + put '%end;'; + put '/* catch errs - mp_abort must be called outside of a logic block */'; + put '%mp_abort(iftrue=(&abortme=1),'; + put 'msg=%superq(msg),'; + put 'mac=&sysmacroname'; + put ')'; + put '%exit_macro:'; + put 'data _null_;'; + put 'put "&sysmacroname: Exit vars: action=&action lib=&lib ds=&ds";'; + put 'put " syscc=&syscc sqlrc=&sqlrc syserr=&syserr";'; + put 'run;'; + put '%mend mp_lockanytable;'; + put '%macro mpe_loader('; + put 'mperef= /* name of subfolder containing the staged data */'; + put ',mDebug=0 /* set to 1 for development or debugging */'; + put ',submitted_reason_txt= /* populates column of same name in sumo_approvals*/'; + put ',approver= /* allows a userid to be provided for direct approval email */'; + put ',url= /* optional - url for debugging */'; + put ',dlm=%str(,)'; + put ',termstr=crlf'; + put ',dc_dttmtfmt=E8601DT26.6'; + put ');'; + put '%put entered mpe_loader from &=_program;'; + put '%put &=url;'; + put '%put &=termstr;'; + put '%put &=dlm;'; + put '/* determine full path to CSV directory */'; + put '%local now;'; + put '%let now=&dc_dttmtfmt;'; + put '%put &=now;'; + put '/**'; + put '* get full path to package (only subdirectory passed through)'; + put '*/'; + put '%mp_abort('; + put 'iftrue=(%mf_verifymacvars(mperef mpelocapprovals)=0)'; + put ',mac=bitemporal_dataloader'; + put ',msg=%str(Missing: mperef mpelocapprovals)'; + put ')'; + put '%let csv_dir=%trim(&mpelocapprovals/&mperef);'; + put '/* exit if package has already been uploaded */'; + put '%local check;'; + put 'proc sql noprint;'; + put 'select count(*) into: check'; + put 'from &mpelib..mpe_loads'; + put 'where csv_dir="&mperef";'; + put '%if &check %then %do;'; + put '%mp_abort(msg=Folder &mperef already has an entry in &mpelib..mpe_loads'; + put ',mac=mpe_loader.sas);'; + put '%return;'; + put '%end;'; + put '/* get CSV directory contents */'; + put '%mp_dirlist(path=&csv_dir,outds=WORK.getfiles)'; + put 'data WORK.csvs;'; + put 'set WORK.getfiles;'; + put 'if upcase(scan(filename,3,''.''))=''CSV'' then do;'; + put 'lib=upcase(scan(filename,1,''.''));'; + put 'ds=upcase(scan(filename,2,''.''));'; + put 'output;'; + put 'end;'; + put 'run;'; + put '/* get table attributes */'; + put 'proc sql noprint;'; + put 'create table WORK.sumo_tables as'; + put 'select a.filename, b.*'; + put 'from WORK.csvs a'; + put 'left join &mpelib..mpe_tables b'; + put 'on a.lib=b.libref'; + put 'and a.ds=b.dsn'; + put 'where b.tx_from le &now'; + put 'and &now lt b.tx_to;'; + put '/* define user as meta user if available */'; + put '%local user;'; + put '%let user=%mf_getuser();'; + put '/* check if there is actually a table to load */'; + put '%if %mf_getattrn(WORK.sumo_tables,NLOBS)=0 %then %do;'; + put '%let msg=Table not registered in &mpelib..mpe_tables;'; + put '%mpe_loadfail('; + put 'status=&msg'; + put ',now=&now'; + put ',mperef=&mperef'; + put ',dc_dttmtfmt=&dc_dttmtfmt.'; + put ')'; + put '%mp_abort(msg=&msg,mac=mpe_loader.sas);'; + put '%return;'; + put '%end;'; + put 'proc sql;'; + put 'insert into &mpelib..mpe_loads'; + put 'set USER_NM="&user"'; + put ',STATUS=''IN PROGRESS'''; + put ',CSV_dir="&mperef"'; + put ',PROCESSED_DTTM=&now;'; + put '/* import CSV */'; + put '%let droplist=;'; + put '%let attrib=;'; + put '%let droplist=;'; + put '%let libref=;'; + put '%let DS=;'; + put '/* get table info */'; + put 'data _null_;'; + put 'set sumo_tables;'; + put 'libds=upcase(cats(libref,''.'',dsn));'; + put 'call symputx(''orig_libds'',libds);'; + put 'is_fmt=0;'; + put 'if substr(cats(reverse(dsn)),1,3)=:''CF-'' then do;'; + put 'libds=scan(libds,1,''-'');'; + put 'putlog "Format Catalog Captured";'; + put 'libds=''work.fmtextract'';'; + put 'is_fmt=1;'; + put 'end;'; + put 'call symputx(''is_fmt'',is_fmt);'; + put 'call symputx(''libds'',libds);'; + put 'call symputx(''FNAME'',filename);'; + put 'call symputx(''LIBREF'',libref);'; + put 'call symputx(''DS'',dsn);'; + put 'call symputx(''LOADTYPE'',loadtype);'; + put 'call symputx(''BUSKEY'',buskey);'; + put 'call symputx(''VAR_TXFROM'',var_txfrom);'; + put 'call symputx(''VAR_TXTO'',var_txto);'; + put 'call symputx(''VAR_BUSFROM'',var_busfrom);'; + put 'call symputx(''VAR_BUSTO'',var_busto);'; + put 'call symputx(''VAR_PROCESSED'',var_processed);'; + put 'call symputx(''RK_UNDERLYING'',RK_UNDERLYING);'; + put 'call symputx(''POST_EDIT_HOOK'',POST_EDIT_HOOK);'; + put 'call symputx(''NOTES'',NOTES);'; + put 'call symputx(''PK'',coalescec(RK_UNDERLYING,buskey));'; + put 'call symputx(''NUM_OF_APPROVALS_REQUIRED'',NUM_OF_APPROVALS_REQUIRED,''l'');'; + put 'put (_all_)(=);'; + put 'stop;'; + put 'run;'; + put '%if %length(&ds)=0 %then %do;'; + put '%let msg=%str(ERR)OR: Unable to extract record from &mpelib..mpe_tables;'; + put '%mpe_loadfail('; + put 'status=FAILED'; + put ',now=&now'; + put ',mperef=&mperef'; + put ',reason_txt=%quote(&msg)'; + put ',dc_dttmtfmt=&dc_dttmtfmt.'; + put ')'; + put '%mp_abort(msg=&msg,mac=mpe_loader.sas);'; + put '%return;'; + put '%end;'; + put '/* export format catalog */'; + put '%mp_cntlout('; + put 'iftrue=(&is_fmt=1)'; + put ',libcat=&orig_libds'; + put ',fmtlist=0'; + put ',cntlout=work.fmtextract'; + put ')'; + put '/* user must have EDIT access to load a table */'; + put '%mpe_accesscheck(&orig_libds'; + put ',outds=work.sumo_access'; + put ',user=&user'; + put ',access_level=EDIT )'; + put '%put exiting accesscheck;'; + put '%if %mf_getattrn(work.sumo_access,NLOBS)=0 %then %do;'; + put '%let msg=%str(ERR)OR: User is not authorised to edit &orig_libds!;'; + put '%mpe_loadfail('; + put 'status=UNAUTHORISED'; + put ',now=&now'; + put ',mperef=&mperef'; + put ',reason_txt=%quote(&msg)'; + put ',dc_dttmtfmt=&dc_dttmtfmt.'; + put ')'; + put '%mp_abort(msg=&msg,mac=mpe_loader.sas);'; + put '%return;'; + put '%end;'; + put '%put now importing: "&csv_dir/&fname" termstr=&termstr;'; + put '/* get the variables from the CSV */'; + put 'data vars_csv1(index=(idxname=(varnum name)) drop=infile);'; + put 'infile "&csv_dir/&fname" lrecl=32767 dsd termstr=&termstr encoding=''utf-8'';'; + put 'input;'; + put 'length infile $32767;'; + put 'infile=compress(_infile_,''"'',);'; + put 'infile=compress(infile,"''",);'; + put 'format name $32.;'; + put 'putlog ''received vars: '' infile;'; + put 'call symputx(''received_vars'',infile,''l'');'; + put 'do varnum=1 to countw(infile,"&dlm");'; + put '/* keep writeable chars */'; + put 'name=compress(upcase(scan(infile,varnum)),,''kw'');'; + put 'if name ne "_____DELETE__THIS__RECORD_____" then output;'; + put 'end;'; + put 'stop;'; + put 'run;'; + put '%put received_vars = &received_vars;'; + put '%dc_assignlib(WRITE,&libref)'; + put '/* get list of variables and their formats */'; + put 'proc contents noprint data=&libds'; + put 'out=vars(keep=name type length varnum format:);'; + put 'run;'; + put 'data vars(keep=name type length varnum format);'; + put 'set vars(rename=(format=format2 type=type2));'; + put 'name=upcase(name);'; + put 'format2=upcase(format2);'; + put '/* not interested in transaction or processing dates'; + put '(append table must be supplied without them) */'; + put 'if name not in ("&VAR_TXFROM","&VAR_TXTO","&VAR_PROCESSED"'; + put ',"_____DELETE__THIS__RECORD_____");'; + put 'if type2 in (2,6) then do;'; + put 'length format $49.;'; + put 'if format2='''' then format=cats(''$'',length,''.'');'; + put 'else format=cats(format2,max(formatl,length),''.'');'; + put 'type=''char'';'; + put 'end;'; + put 'else do;'; + put 'if format2='''' then format=cats(length,''.'');'; + put 'else if format2=:''DATETIME'' then do;'; + put 'format=''DATETIME19.'';'; + put 'end;'; + put 'else if format2=:''DATE'' or format2=:''DDMMYY'''; + put 'or format2=:''MMDDYY'' or format2=:''YYMMDD'''; + put 'or format2=:''E8601DA'' or format2=:''B8601DA'''; + put 'then do;'; + put 'format=''DATE9.'';'; + put 'end;'; + put 'else if format2=''BEST'' & formatl=0 then format=cats(''BEST'',length,''.'');'; + put '/*'; + put 'else if format2=:''DATETIME'' or format2=:''DATE'' or format2=:''DDMMYY'''; + put 'or format2=:''MMDDYY'' or format2=:''YYMMDD'' then do;'; + put '*date or datetime format so use original ;'; + put 'dsid=open("&libref..&ds");'; + put 'vnum=varnum(dsid,name);'; + put 'format=varfmt(dsid,vnum);'; + put 'dsid=close(dsid);'; + put 'end;'; + put '*/'; + put 'else do;'; + put 'if formatl=0 then formatl=length;'; + put 'format=cats(format2,formatl,''.'',formatd);'; + put 'end;'; + put 'type=''num'';'; + put 'end;'; + put 'put (_all_)(=);'; + put 'run;'; + put '/* build attrib statement */'; + put 'data vars_attrib;'; + put 'length attrib_statement $32767 type2 $20;'; + put 'set vars end=lastobs;'; + put 'retain attrib_statement;'; + put 'if type=''char'' then type2=''$'';'; + put 'str1=catx('' '',name,''length='',cats(type2,length));'; + put 'attrib_statement=trim(attrib_statement)!!'' ''!!trim(str1);'; + put 'if lastobs then call symputx(''ATTRIB'',attrib_statement,''L'');'; + put 'run;'; + put '/* build input statement - first get vars in right order'; + put 'and join with target formats*/'; + put 'proc sql noprint;'; + put 'create table vars_csv2 as'; + put 'select b.*'; + put 'from vars_csv1 a'; + put 'left join vars_attrib b'; + put 'on a.name=b.name'; + put 'order by a.varnum;'; + put '/* make sure that the variables we are importing, actually'; + put 'exist on the target table */'; + put '/** edit - extra variables are now simply ignored'; + put '%local very_bad_vars;'; + put 'select name into: very_bad_vars separated by '' '''; + put 'from vars_csv1'; + put 'where name not in (select name from vars)'; + put 'and name ne "_____DELETE__THIS__RECORD_____";'; + put '%if %length(&very_bad_vars) > 0 %then %do;'; + put '%let msg=%str(WARNING: The following vars are not defined in %trim('; + put ')&libref..&ds, yet they exist in &csv_dir/&ds..csv: &very_bad_vars);'; + put '%mpe_loadfail('; + put 'status=FAILED'; + put ',now=&now'; + put ',mperef=&mperef'; + put ',reason_txt=%quote(&msg)'; + put ',dc_dttmtfmt=&dc_dttmtfmt.'; + put ')'; + put '%return;'; + put '%end;'; + put '**/'; + put '/* now build input statement */'; + put 'data final_check;'; + put 'set vars_csv2 end=lastobs;'; + put 'length input_statement $32767 type2 $20 droplist $32767;'; + put 'retain input_statement droplist;'; + put '/* Build input statement - CATCH EXCEPTIONS HERE!*/'; + put 'if name in (''QUOTE_DTTM'') then do;'; + put 'name=cats(name,''2'');'; + put 'droplist=catx('' '',trim(droplist),name);'; + put 'type2=''$20.'';/* converted below */'; + put 'end;'; + put 'else if type=''char'' then type2=cats(''$CHAR'', length,''.'');'; + put 'else if format=''DATE9.'' then type2=''ANYDTDTE.'';'; + put 'else if format=''DATETIME19.'' then type2=''ANYDTDTM.'';'; + put 'else if format=:''TIME'' then type2=''ANYDTTME.'';'; + put 'else if name='''' then do;/* additional vars in input data */'; + put 'name=''_____DELETE__THIS__VARIABLE_____'';'; + put 'droplist=catx('' '',trim(droplist),''_____DELETE__THIS__VARIABLE_____'');'; + put 'type2=''$1.'';'; + put 'end;'; + put 'else type2=''best32.'';'; + put '* else type2=cats(length,''.'');'; + put 'input_statement=catx('' '',input_statement,name,'':'',type2);'; + put 'if lastobs then do;'; + put 'call symputx(''INPUT'', input_statement,''L'');'; + put 'if trim(droplist) ne '''' then'; + put 'call symputx(''droplist'',"drop "!!droplist!!'';'',''l'');'; + put 'end;'; + put 'run;'; + put '%let mpeloadstop=0;'; + put 'data work.STAGING_DS;'; + put '&droplist;'; + put 'infile "&csv_dir/&fname" dsd dlm="&dlm" lrecl=32767'; + put 'firstobs=2 missover termstr=&termstr encoding=''utf-8'';'; + put 'attrib &attrib ;'; + put 'if _n_=1 then call missing (of _all_);'; + put 'missing 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 _;'; + put 'input'; + put '%if %scan(%quote(&received_vars),1)=_____DELETE__THIS__RECORD_____ %then %do;'; + put '_____DELETE__THIS__RECORD_____: $3.'; + put '%end;'; + put '&input;'; + put '%if %index(%quote(&attrib.),UNLIKELY_VAR ) %then %do;'; + put '/*UNLIKELY_VAR=input(UNLIKELY_VAR2,ANYDTDTM21.);*/'; + put '/* SPECIAL LOGIC FOR SPECIAL VARS */'; + put '%end;'; + put 'if _error_ ne 0 then do;'; + put 'putlog _infile_;'; + put 'call symputx(''mpeloadstop'',_n_);'; + put 'stop;'; + put 'end;'; + put '/* remove all blank rows */'; + put 'if compress(cats(of _all_),''.'')='' '' then delete;'; + put 'run;'; + put '%if &mpeloadstop>0 %then %do;'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put '%put redirecting log output to capture return message;'; + put '%put currentloc=&logloc;'; + put 'filename tmp temp;'; + put 'proc printto log=tmp;run;'; + put 'data _null_;'; + put '&droplist;'; + put 'infile "&csv_dir/&fname" dsd dlm="&dlm" lrecl=32767 firstobs=2'; + put 'missover termstr=&termstr;'; + put 'attrib &attrib ;'; + put 'input'; + put '%if %scan(%quote(&received_vars),1)=_____DELETE__THIS__RECORD_____'; + put '%then %do;'; + put '_____DELETE__THIS__RECORD_____: $3.'; + put '%end;'; + put '&input;'; + put 'if _error_ then stop;'; + put 'run;'; + put '/* get log back */'; + put 'proc printto log=&logloc;run;'; + put 'data _null_; infile tmp; input; putlog _infile_;run;'; + put '/* scan log for invalid data warning */'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;'; + put 'length msg1 msg2 msg3 msg4 msg5 msg url $32767;'; + put 'if index(_infile_,''NOTE: Invalid data for'') then do;'; + put 'msg1=_infile_;'; + put 'input;'; + put 'msg2=_infile_;'; + put 'input;'; + put 'msg3=_infile_;'; + put 'input;'; + put 'msg4=_infile_;'; + put 'input;'; + put 'msg5=_infile_;'; + put 'url=symget(''url'');'; + put 'msg=catx(''\n'',msg1,msg2,msg3,msg4,msg5,''\n'',url);'; + put 'call symputx(''msg'',msg);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%mpe_loadfail('; + put 'status=FAILED'; + put ',now=&now'; + put ',mperef=&mperef'; + put ',reason_txt=%superq(msg)'; + put ',dc_dttmtfmt=&dc_dttmtfmt.'; + put ')'; + put '%return;'; + put '%end;'; + put '/* check that the table is unique on PK */'; + put 'proc sort data=work.STAGING_DS dupout=work.MPE_DUPS (keep=&pk) nodupkey;'; + put 'by &pk;'; + put 'run;'; + put '%if %mf_getattrn(work.MPE_DUPS,NLOBS)>0 %then %do;'; + put '%local duplist;'; + put 'data _null_;'; + put 'set work.mpe_dups;'; + put '%do i=1 %to %sysfunc(countw(&pk));'; + put '%let iWord=%scan(&pk,&i);'; + put 'call symputx(''duplist'',symget(''duplist'')!!'; + put '" &iWord="!!trim(&iWord));'; + put '%end;'; + put 'run;'; + put '%let msg=This upload contains duplicates on the Primary Key columns %trim('; + put ')(&pk) \n Please remove the duplicates and try again. %trim('; + put ')\n &duplist \n ;'; + put '%mp_abort(msg=%superq(msg),mac=mpe_loader.sas);'; + put '%return;'; + put '%end;'; + put '%if &syscc gt 4 %then %do;'; + put '%let msg=SYSCC=&syscc prior to post edit hook (%superq(syserrortext));'; + put '%mpe_loadfail('; + put 'status=FAILED - &syscc'; + put ',now=&now'; + put ',mperef=&mperef'; + put ',reason_txt=%superq(msg)'; + put ',dc_dttmtfmt=&dc_dttmtfmt.'; + put ')'; + put '%return;'; + put '%end;'; + put '%mpe_runhook(POST_EDIT_HOOK)'; + put '/* stop if err */'; + put '%if &syscc gt 4 %then %do;'; + put '%let msg=ERR in post edit hook (&post_edit_hook);'; + put '%mpe_loadfail('; + put 'status=FAILED - &syscc'; + put ',now=&now'; + put ',mperef=&mperef'; + put ',reason_txt=%quote(&msg)'; + put ',dc_dttmtfmt=&dc_dttmtfmt.'; + put ')'; + put '%return;'; + put '%end;'; + put '/**'; + put '* send to approve process'; + put '*/'; + put '/* create a dataset key (datetime plus 3 digit random number plus PID) */'; + put '/* send dataset to approvals subfolder with same name as subfolder */'; + put 'libname approval "&mpelocapprovals/&mperef";'; + put 'data approval.&mperef;'; + put 'set work.staging_ds;'; + put 'run;'; + put 'proc export data=approval.&mperef'; + put 'outfile="&mpelocapprovals/&mperef/&mperef..csv"'; + put 'dbms=csv'; + put 'replace;'; + put 'run;'; + put '/* update the control dataset with relevant info */'; + put 'data append_app;'; + put 'if 0 then set &mpelib..mpe_submit;/* get formats */'; + put 'call missing (of _all_);'; + put 'TABLE_ID="&mperef";'; + put 'submit_status_cd=''SUBMITTED'';'; + put 'submitted_by_nm="%mf_getuser()";'; + put 'base_lib="&libref";'; + put 'base_ds="&ds";'; + put 'submitted_on_dttm=&now;'; + put 'submitted_reason_txt=symget(''submitted_reason_txt'');'; + put 'input_vars=%mf_getattrn(approval.&mperef,NVARS);'; + put 'input_obs=%mf_getattrn(approval.&mperef,NLOBS);'; + put 'num_of_approvals_required=&NUM_OF_APPROVALS_REQUIRED;'; + put 'num_of_approvals_remaining=&NUM_OF_APPROVALS_REQUIRED;'; + put 'reviewed_by_nm='''';'; + put 'reviewed_on_dttm=.;'; + put 'run;'; + put '%mp_lockanytable(LOCK,lib=&mpelib,ds=mpe_submit,'; + put 'ref=%str(&mperef update in &_program),'; + put 'ctl_ds=&mpelib..mpe_lockanytable'; + put ')'; + put 'proc append base= &mpelib..mpe_submit data=append_app;'; + put 'run;'; + put '%mp_lockanytable(UNLOCK,'; + put 'lib=&mpelib,ds=mpe_submit,'; + put 'ctl_ds=&mpelib..mpe_lockanytable'; + put ')'; + put '/* send email to REVIEW members */'; + put '%put sending mpe_alerts;'; + put '%mpe_alerts(alert_event=SUBMITTED'; + put ', alert_lib=&libref'; + put ', alert_ds=&ds'; + put ', dsid=&mperef'; + put ')'; + put '/* DISABLE EMAIL FOR NOW'; + put '%let b2=REASON: %quote(&submitted_reason_txt);'; + put '%local URLNOTES;'; + put '%if %length(¬es)>0 %then %let URLNOTES=%quote(%sysfunc(urlencode(¬es)));'; + put '%let b3=%str(Click to review / approve: )%trim('; + put ')%str(http://&_srvname:&_srvport&_url?_PROGRAM=/Web/approvals&)%trim('; + put ')TABLEID=&dsid%str(&)BASETABLE=&libref..&ds%str(&)NOTES=&URLNOTES;'; + put '%let b4=%str(Reference ID: &mperef);'; + put '*/'; + put '%put mpe_loader finishing up with syscc=&syscc;'; + put '%if &syscc le 4 %then %do;'; + put '%local dur;'; + put 'data _null_;'; + put 'now=symget(''now'');'; + put 'dur=%sysfunc(datetime())-&now;'; + put 'call symputx(''dur'',dur,''l'');'; + put 'putlog ''Updating mpe_loads with the following query:'';'; + put 'putlog "update &mpelib..mpe_loads set STATUS=''SUCCESS''";'; + put 'putlog " , duration=" dur;'; + put 'putlog " , processed_dttm=" now;'; + put 'putlog " , approvals = ''&libref..&ds''";'; + put 'putlog " where CSV_DIR=''&mperef'';";'; + put 'run;'; + put 'proc sql;'; + put 'update &mpelib..mpe_loads set STATUS=''SUCCESS'''; + put ', duration=&dur'; + put ', processed_dttm=&now'; + put ', approvals = "&libref..&ds"'; + put 'where CSV_DIR="&mperef";'; + put '%end;'; + put '%else %do;'; + put '%mpe_loadfail('; + put 'status="FAILED - &syscc"'; + put ',now=&now'; + put ',approvals=&libref..&ds'; + put ',mperef=&mperef'; + put ',dc_dttmtfmt=&dc_dttmtfmt.'; + put ')'; + put '%return;'; + put '%end;'; + put '%mend mpe_loader;'; + put '%macro mp_cleancsv(in=NOTPROVIDED,out=NOTPROVIDED,qchar=''22''x);'; + put '%if "&in"="NOTPROVIDED" or "&out"="NOTPROVIDED" %then %do;'; + put '%put %str(ERR)OR: Please provide valid input (&in) & output (&out) locations;'; + put '%return;'; + put '%end;'; + put '/* presence of a period(.) indicates a physical location */'; + put '%if %index(&in,.) %then %let in="&in";'; + put '%if %index(&out,.) %then %let out="&out";'; + put '/**'; + put '* convert all cr and crlf within quotes to lf'; + put '* convert all other cr or lf to crlf'; + put '*/'; + put 'data _null_;'; + put 'infile &in recfm=n ;'; + put 'file &out recfm=n;'; + put 'retain isq iscrlf 0 qchar &qchar;'; + put 'input inchar $char1. ;'; + put 'if inchar=qchar then isq = mod(isq+1,2);'; + put 'if isq then do;'; + put '/* inside a quote change cr and crlf to lf */'; + put 'if inchar=''0D''x then do;'; + put 'put ''0A''x;'; + put 'input inchar $char1.;'; + put 'if inchar ne ''0A''x then do;'; + put 'put inchar $char1.;'; + put 'if inchar=qchar then isq = mod(isq+1,2);'; + put 'end;'; + put 'end;'; + put 'else put inchar $char1.;'; + put 'end;'; + put 'else do;'; + put '/* outside a quote, change cr and lf to crlf */'; + put 'if inchar=''0D''x then do;'; + put 'crblank:'; + put 'put ''0D0A''x;'; + put 'input inchar $char1.;'; + put 'if inchar=''0D''x then do;'; + put '/* multiple CR indicates CR formatted file with blank lines */'; + put 'goto crblank;'; + put 'end;'; + put 'else if inchar ne ''0A''x then do;'; + put 'put inchar $char1.;'; + put 'if inchar=qchar then isq = mod(isq+1,2);'; + put 'end;'; + put 'end;'; + put 'else if inchar=''0A''x then put ''0D0A''x;'; + put 'else put inchar $char1.;'; + put 'end;'; + put 'run;'; + put '%mend mp_cleancsv;'; + put '/** @endcond */'; + put '%macro mp_binarycopy('; + put 'inloc= /* full path and filename of the object to be copied */'; + put ',outloc= /* full path and filename of object to be created */'; + put ',inref=____in /* override default to use own filerefs */'; + put ',outref=____out /* override default to use own filerefs */'; + put ',mode=CREATE'; + put ',iftrue=%str(1=1)'; + put ')/*/STORE SOURCE*/;'; + put '%local mod;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%if &mode=APPEND %then %let mod=mod;'; + put '/* these IN and OUT filerefs can point to anything */'; + put '%if &inref = ____in %then %do;'; + put 'filename &inref &inloc lrecl=1048576 ;'; + put '%end;'; + put '%if &outref=____out %then %do;'; + put 'filename &outref &outloc lrecl=1048576 &mod;'; + put '%end;'; + put '/* copy the file byte-for-byte */'; + put 'data _null_;'; + put 'infile &inref lrecl=1 recfm=n;'; + put 'file &outref &mod recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put '%if &inref = ____in %then %do;'; + put 'filename &inref clear;'; + put '%end;'; + put '%if &outref=____out %then %do;'; + put 'filename &outref clear;'; + put '%end;'; + put '%mend mp_binarycopy;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; - put 'libname mydb (work);'; - put 'data mydb.springs ;'; - put 'attrib'; - put 'Latitude length= 8'; - put 'Longitude length= 8'; - put 'Name length= $34'; - put 'Area length= $14'; - put 'Type length= $9'; - put 'Farenheit length= 8'; - put 'Celsius length= 8'; - put ';'; - put 'infile cards dsd;'; - put 'input'; - put 'Latitude'; - put 'Longitude'; - put 'Name :$char.'; - put 'Area :$char.'; - put 'Type :$char.'; - put 'Farenheit'; - put 'Celsius'; - put ';'; - put 'missing 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 _;'; - put 'datalines4;'; - put '51.925,-177.16,Fumaroles on Kanaga Island,Adak,Hotspring,219,104'; - put '65.858,-164.71,Serpentine Hot Springs,Bendeleben,Hotspring,171,77'; - put '53.851,-166.918,Hot Springs Near Makushin Volcano,Unalaska,Hotspring,H,H'; - put '53.877,-166.448,Hot Springs Near Summer Bay,Unalaska,Hotspring,H,H'; - put '52.27,-174.042,Hot Springs on Atka Island,Atka,Hotspring,H,H'; - put '52.34,-174.26,Hot Springs on Atka Island,Atka,Hotspring,H,H'; - put '52.358,-172.317,Hot Spring on Seguam Island,Seguam,Hotspring,H,H'; - put '52.84,-169.9,Chuginadak Hot Springs,Samalga Island,Hotspring,H,H'; - put '52.96,-169.71,Hot Spring on Kagamil Island,Samalga Island,Hotspring,H,H'; - put '51.94,-178.5,Hot Spring on Little Sitkin Island,Rat Islands,Hotspring,H,H'; - put '51.963,-178.491,Fumaroles on Little Sitkin Island,Rat Islands,Hotspring,H,H'; - put '51.775,-178.793,Fumaroles on Gareloi Island,Gareloi Island,Hotspring,H,H'; - put '53.207,-168.445,Hot Springs Near Geyser Bight,Umnak,Hotspring,H,H'; - put '53.892,-166.93,Makushin Volcano Fumaroles,Unalaska,Hotspring,310,154'; - put '54.9,-162.885,Hot Spring on Amagat Island,False Pass,Hotspring,H,H'; - put '53.213,-168.463,Hot Springs Near Geyser Bight,Umnak,Hotspring,216,102'; - put '53.223,-168.477,Hot Springs Near Geyser Bight,Umnak,Hotspring,214,101'; - put '53.443,-168.092,Thermal Springs In Okmok Caldera,Umnak,Hotspring,212,100'; - put '52.042,-176.108,Hot Springs on Great Sitkin Island,Adak,Hotspring,210,99'; - put '55.983,-131.661,Bailey Hot Spring,Ketchikan,Hotspring,198,92'; - put '53.242,-168.365,Hot Springs Near Hot Springs Cove,Umnak,Hotspring,192,89'; - put '54.157,-165.85,Hot Springs Near Hot Springs Bay,Unimak,Hotspring,181,83'; - put '58.033,-136.017,Hot Springs North End Tenakee Inle,Mt. Fairweathe,Hotspring,180,82'; - put '65.093,-164.922,Pilgrim Springs,Bendeleben,Hotspring,178,81'; - put '57.831,-156.513,W Ukinek Spring,Ugashik,Hotspring,178,81'; - put '65.459,-153.312,Little Melozitna Hot Springs,Melozitna,Hotspring,176,80'; - put '51.81,-177.79,Hot Spring on Tanaga Island,Adak,Hotspring,H,H'; - put '65.233,-144.483,Hot Springs on Big Windy Creek,Circle,Hotspring,H,H'; - put '55.334,-162.137,Hot Spring at West End Emmons Lake,Cold Bay,Hotspring,68,20'; - put '66.197,-154.006,Tunalkten Lake Hot Spring,Hughes,Hotspring,.,.'; - put '67.403,-153.883,Hot Spring Near Arrigetch Peaks,Survey Pass,Hotspring,W,W'; - put '65.047,-142.848,Hot Spring on Flat Creek,Charley River,Hotspring,W,W'; - put '63.683,-151.233,Hot Springs Near Glacier,Mt. Mckinley,Hotspring,W,W'; - put '63.883,-150.717,Hot Springs East of Diamond,Mt. Mckinley,Hotspring,W,W'; - put '62.45,-157.933,Hot Spring Near Flat,Iditarod,Hotspring,W,W'; - put '60.837,-142.42,Hot Spring on Twelvemile Creek,Bering Glacier,Hotspring,W,W'; - put '56.58,-132.18,South Stikine Spring,Petersburg,Hotspring,W,W'; - put '52.87,-173.13,Hot Spring on Attu Island,Attu,Hotspring,W,W'; - put '65.908,-154.993,Deniktow Ridge Hot Springs,Melozitna,Hotspring,H,H'; - put '53.95,-168.037,Hot Springs on Bogoslof Island,Umnak,Hotspring,H,H'; - put '65.45,-150,Hot Spring Near Little Minook Cr,Tanana,Hotspring,H,H'; - put '51.967,-178.444,Fumaroles on Little Sitkin Island,Rat Islands,Hotspring,H,H'; - put '64.002,-156.3,Hot Spring on Tributary of Innoko,Nulato,Hotspring,H,H'; - put '61.058,-160.692,Hot Spring Near Tuluksak River,Russian Missio,Hotspring,H,H'; - put '61.363,-157.733,Hot Springs on Upper Chuilnuk Rive,Sleetmute,Hotspring,H,H'; - put '61.267,-151.238,Hot Lake In Bottom of Crater Peak,Tyonek,Hotspring,H,H'; - put '58.24,-155.09,Hot Spring Near Katmai Pass,Mt. Katmai,Hotspring,H,H'; - put '58.27,-154.89,Hot Springs Near Mt Katmai,Mt. Katmai,Hotspring,H,H'; - put '58.92,-153.98,Hot Spring West of Cape Douglas,Afognak,Hotspring,H,H'; - put '55.368,-161.961,Fumarole,Port Moller,Hotspring,H,H'; - put '54.18,-165.41,Hot Springs on Akun Island,Unimak,Hotspring,H,H'; - put '54.23,-165.66,Hot Springs on Akun Island,Unimak,Hotspring,H,H'; - put '54.66,-164.55,Hot Spring on Unimak Island,Unimak,Hotspring,H,H'; - put '65.97,-154.033,Pocahontas Hot Springs,Melozitna,Hotspring,H,H'; - put '65.216,-149.993,Hutlinana Hot Springs,Livengood,Hotspring,109,43'; - put '57.085,-134.839,Baranof Warm Springs,Sitka,Hotspring,124,51'; - put '67.283,-155.067,Reed River Hot Spring,Survey Pass,Hotspring,122,50'; - put '66.15,-157.117,Hot Springs Near South Bm,Shungnak,Hotspring,122,50'; - put '66.233,-157.583,Hot Springs on Hawk River,Shungnak,Hotspring,122,50'; - put '65.81,-151.237,Kilo Hot Spring,Tanana,Hotspring,122,50'; - put '56.717,-132.005,Chief Shakes Hot Springs,Petersburg,Hotspring,122,50'; - put '69.33,-144.044,Okpilak Springs,Mt. Michelson,Hotspring,119,49'; - put '65.367,-161.25,Granite Mountain Hot Springs,Candle,Hotspring,120,49'; - put '57.644,-135.333,Nylen Hot Springs,Sitka,Hotspring,120,49'; - put '65.963,-150.919,Ray River Hot Spring,Tanana,Hotspring,117,47'; - put '64.924,-154.837,Horner Hot Springs,Ruby,Hotspring,117,47'; - put '65.267,-155.28,Hot Springs Near Dulbi River,Melozitna,Hotspring,126,52'; - put '57.807,-136.341,White Sulphur Springs (Hooniah H S,Sitka,Hotspring,111,44'; - put '57.781,-135.217,Tenakee Hot Springs,Sitka,Hotspring,109,43'; - put '52.19,-174.25,Hot Springs on Atka Island,Atka,Hotspring,167,75'; - put '55.334,-133.641,Dalton (Craig) Hot Springs,Craig,Hotspring,109,43'; - put '51.944,-178.547,Fumaroles on Little Sitkin Island,Rat Islands,Hotspring,H,H'; - put '57.771,-135.82,Hot Spring North Arm Peril Strait,Sitka,Hotspring,100,38'; - put '53.848,-166.873,Hot Springs Near Makushin Volcano,Unalaska,Hotspring,94,34'; - put '69.627,-146.027,Red Hill Spring,Mt. Michelson,Hotspring,91,33'; - put '62.081,-145.007,Upper Klawasi Warm Springs,Gulkana,Hotspring,86,30'; - put '62.058,-145.222,Mineral Spring (Lower Klawasi Cone,Gulkana,Hotspring,82,28'; - put '56.68,-131.882,Barnes Lake Hot Springs,Bradfield Cana,Hotspring,79,26'; - put '56.928,-158.12,Surprise Lake Hot Spring,Chignik,Hotspring,73,23'; - put '56.667,-132.28,Twin Lakes Hot Springs,Petersburg,Hotspring,70,21'; - put '66.383,-157.517,Warm Spring Near Purcell Mountain,Shungnak,Hotspring,68,20'; - put '57.348,-135.385,Hot Spring Near Fish Bay,Sitka,Hotspring,117,47'; - put '65.983,-150.56,Hot Springs on Lower Ray River,Tanana,Hotspring,142,61'; - put '55.863,-160.493,Hot Spring Near Port Moller,Port Moller,Hotspring,160,71'; - put '53.253,-168.358,Hot Springs Near Hot Springs Cove,Umnak,Hotspring,158,70'; - put '51.97,-176.61,Hot Springs on Adak Island,Adak,Hotspring,154,68'; - put '65.053,-146.057,Chena Hot Springs,Circle,Hotspring,153,67'; - put '58.37,-137.09,Hot Springs Near Icy Point,Mt. Fairweathe,Hotspring,153,67'; - put '56.836,-135.374,Goddard Hot Springs,Port Alexander,Hotspring,153,67'; - put '66.342,-150.85,Kanuti Hot Springs,Bettles,Hotspring,151,66'; - put '64.85,-162.3,Clear Creek Hot Springs,Solomon,Hotspring,149,65'; - put '53.233,-168.3,Hot Spring on Umnak Island,Umnak,Hotspring,149,65'; - put '61.2,-159.863,Hot Springs Near Ophir Creek,Russian Missio,Hotspring,145,63'; - put '57.865,-156.499,Gas Rocks Hot Spring,Ugashik,Hotspring,127,53'; - put '51.762,-178.77,Fumaroles on Gareloi Island,Gareloi Island,Hotspring,144,62'; - put '66.367,-156.767,Hot Springs Near Division Bm,Shungnak,Hotspring,140,60'; - put '64.7,-162.467,Hot Spring Near Kwiniuk River,Solomon,Hotspring,106,41'; - put '65.274,-148.847,Tolovana Hot Springs,Livengood,Hotspring,140,60'; - put '55.933,-131.559,Bell Island Hot Springs,Ketchikan,Hotspring,165,74'; - put '57.178,-157.015,Hot Spring Near Mother Goose Lake,Ugashik,Hotspring,138,59'; - put '65.483,-144.637,Circle Hot Springs,Circle,Hotspring,135,57'; - put '56.233,-131.267,Bradfield Canal Hot Springs,Bradfield Cana,Hotspring,135,57'; - put '65.006,-150.633,Manley Hot Springs,Tanana,Hotspring,133,56'; - put '65.129,-154.692,Melozi (Melozitna) Springs,Melozitna,Hotspring,131,55'; - put '66.217,-149.547,Dall Hot Springs,Beaver,Hotspring,129,54'; - put '55.217,-162.483,Hot Springs East of Cold Bay,Cold Bay,Hotspring,129,54'; - put '65.217,-162.9,Hot Springs Near Lava Creek,Bendeleben,Hotspring,127,53'; - put '54.944,-163.251,Hot Springs Near Morzhovoi,False Pass,Hotspring,145,63'; - put '36.48,-91.053,Warm Springs,Poplar Bluff,Hotspring,82,28'; - put '34.384,-93.607,Caddo Gap Springs,Little Rock,Hotspring,95,35'; - put '34.321,-93.739,Spring on Redland Mountain,Little Rock,Hotspring,77,25'; - put '34.406,-93.908,Spring on Little Missouri River,Little Rock,Hotspring,74,23'; - put '34.542,-93.024,Big Chalybeate Spring,Little Rock,Hotspring,79,26'; - put '34.513,-93.053,Hot Springs,Little Rock,Hotspring,147,64'; - put '33.008,-109.778,Grapevine Spring,Clifton,Hotspring,91,33'; - put '32.984,-113.324,Agua Caliente Springs,Ajo,Hotspring,102,39'; - put '34.563,-113.497,Kaiser Hot Spring,Prescott,Hotspring,99,37'; - put '34.076,-111.708,Spring (Hot),Holbrook,Hotspring,99,37'; - put '33.17,-110.528,Coolidge Dam Warm Spring,Mesa,Hotspring,99,37'; - put '34.695,-113.572,Cofer Hot Spring,Prescott,Hotspring,97,36'; - put '33.209,-110.818,Pioneer Spring,Mesa,Hotspring,91,33'; - put '33.988,-112.362,Castle Hot Springs,Phoenix,Hotspring,115,46'; - put '32.345,-110.247,Warm Springs,Tucson,Hotspring,91,33'; - put '36.196,-113.081,Lava Warm Springs,Grand Canyon,Hotspring,90,32'; - put '33.068,-109.975,Warm Spring,Clifton,Hotspring,90,32'; - put '31.943,-113.013,Quitobaquito Springs,Lukeville,Hotspring,90,32'; - put '31.695,-110.963,Agua Caliente Spring,Nogales,Hotspring,90,32'; - put '33.075,-109.298,Seep,Clifton,Hotspring,95,35'; - put '34.357,-111.71,Verde Hot Springs,Holbrook,Hotspring,104,40'; - put '32.998,-109.901,Indian Hot Springs,Silver City,Hotspring,118,48'; - put '33.669,-111.165,Roosevelt Dam Springs,Mesa,Hotspring,118,48'; - put '32.336,-110.24,Hookers Hot Springs,Tucson,Hotspring,127,53'; - put '33.4,-109.152,Hannah Hot Spring,Clifton,Hotspring,133,56'; - put '33.08,-109.303,Hot Spring,Clifton,Hotspring,138,59'; - put '32.741,-114.068,Radium Hot Springs,El Centro,Hotspring,140,60'; - put '32.971,-109.35,Gillard Hot Springs,Silver City,Hotspring,180,82'; - put '35.984,-114.742,Hot Spring,Kingman,Hotspring,H,H'; - put '33.78,-110.317,Warm Spring,Mesa,Hotspring,W,W'; - put '36.418,-113.956,Pakoon Springs,Grand Canyon,Hotspring,86,30'; - put '33.493,-112.94,El Dorado Hot Springs,Phoenix South,Hotspring,112,44'; - put '34.896,-114.308,Oatman Warm Springs,Needles,Hotspring,91,33'; - put '33.055,-109.295,Clifton Hot Springs,Clifton,Hotspring,102,39'; - put '34.445,-112.693,Spring,Prescott,Hotspring,72,22'; - put '32.337,-110.708,Mercer Spring,Tucson,Hotspring,77,25'; - put '34.649,-111.744,Soda Spring,Holbrook,Hotspring,75,24'; - put '33.253,-110.703,Spring,Mesa,Hotspring,75,24'; - put '31.362,-109.265,Astin Spring,Douglas,Hotspring,75,24'; - put '35.169,-113.851,Frost Mine Spring,Williams,Hotspring,70,21'; - put '31.673,-109.902,Antelope Spring,Douglas,Hotspring,79,26'; - put '35.213,-113.425,Casa Grande Spring,Williams,Hotspring,72,22'; - put '33.51,-110.403,Cassadore Spring,Mesa,Hotspring,73,23'; - put '34.32,-111.453,Tonto Natural Bridge Spring,Holbrook,Hotspring,72,22'; - put '34.405,-111.602,Spring,Holbrook,Hotspring,72,22'; - put '34.436,-109.402,Salado Springs,Saint Johns,Hotspring,72,22'; - put '31.592,-109.51,Lewis Spring,Douglas,Hotspring,68,20'; - put '33.046,-109.44,Eagle Creek Hot Springs,Clifton,Hotspring,97,36'; - put '36.509,-111.852,Colorado Pool,Marble Canyon,Hotspring,86,30'; - put '33.062,-109.482,Warm Spring,Clifton,Hotspring,73,23'; - put '31.637,-110.703,Monkey Spring,Nogales,Hotspring,82,28'; - put '32.281,-110.73,Agua Caliente,Tucson,Hotspring,86,30'; - put '32.327,-110.228,N-O Spring,Tucson,Hotspring,73,23'; - put '32.983,-110.373,Warm Spring,Tucson,Hotspring,79,26'; - put '33.152,-110.639,Mescal Warm Spring,Mesa,Hotspring,84,29'; - put '33.163,-110.662,Spring,Mesa,Hotspring,82,28'; - put '35.077,-113.267,Trout Creek Spring,Williams,Hotspring,81,27'; - put '33.438,-110.213,Warm Springs,Mesa,Hotspring,86,30'; - put '36.895,-113.913,Springs,Grand Canyon,Hotspring,79,26'; - put '35.96,-114.725,Hot Spring,Kingman,Hotspring,86,30'; - put '34.925,-114.221,Caliche Spring,Needles,Hotspring,79,26'; - put '33.915,-112.332,Mitchell Spring,Phoenix,Hotspring,79,26'; - put '33.831,-110.574,Salt Banks,Mesa,Hotspring,78,26'; - put '34.91,-113.608,Tom Brown Warm Spring,Prescott,Hotspring,82,28'; - put '38.873,-122.689,Seigler Springs,Santa Rosa,Hotspring,126,52'; - put '36.814,-117.763,Palm Spring,Death Valley,Hotspring,120,49'; - put '34.498,-119.341,Stingleys Hot Springs,Los Angeles,Hotspring,123,51'; - put '33.67,-117.325,"Wrenden Hot Sprs, Elsinore Hot Spr",Santa Ana,Hotspring,125,52'; - put '37.253,-118.373,Keough Hot Springs,Mariposa,Hotspring,124,51'; - put '36.229,-118.302,Jordan Hot Springs,Fresno,Hotspring,124,51'; - put '34.502,-119.346,Vickers Hot Springs,Los Angeles,Hotspring,124,51'; - put '36.123,-121.64,Slates Hot Springs,Santa Cruz,Hotspring,122,50'; - put '35.881,-118.67,California Hot Springs,Bakersfield,Hotspring,122,50'; - put '38.788,-122.777,Sulphur Creek,Santa Rosa,Hotspring,120,49'; - put '37.648,-118.806,Hot Springs,Mariposa,Hotspring,129,54'; - put '36.703,-120.86,Mercey Hot Springs,Santa Cruz,Hotspring,119,48'; - put '33.589,-117.511,San Juan Hot Springs,Santa Ana,Hotspring,120,49'; - put '38.785,-122.655,Harbin Springs,Santa Rosa,Hotspring,120,49'; - put '37.677,-118.79,Dehy Hot Spring,Mariposa,Hotspring,134,57'; - put '39.183,-122.7,Bartlett Springs,Ukiah,Hotspring,144,62'; - put '36.234,-121.546,Tassajara Hot Springs,Santa Cruz,Hotspring,144,62'; - put '36.144,-120.555,Coalinga Mineral Springs,Santa Cruz,Hotspring,112,44'; - put '39.033,-122.445,Jones Fountain of Life Spring,Ukiah,Hotspring,142,61'; - put '35.575,-118.534,"Miracle Hot Sprs, Hobo Hot Sprs",Bakersfield,Hotspring,119,48'; - put '33.284,-116.631,Warner Hot Spring,Santa Ana,Hotspring,138,59'; - put '38.237,-119.326,Buckeye Hot Spring,Walker Lake,Hotspring,140,60'; - put '41.266,-120.08,Hot Springs (Menlo Baths),Alturas,Hotspring,135,57'; - put '33.753,-117.495,Glen Ivy Hot Springs,Santa Ana,Hotspring,131,55'; - put '37.802,-118.532,Benton Hot Springs,Mariposa,Hotspring,134,57'; - put '38.691,-123.024,Skaggs Springs,Santa Rosa,Hotspring,135,56'; - put '35.62,-118.473,Scovern Hot Springs,Bakersfield,Hotspring,133,56'; - put '34.538,-119.56,Agua Caliente Spring,Los Angeles,Hotspring,133,56'; - put '33.558,-117.154,Murrietta Hot Springs,Santa Ana,Hotspring,132,56'; - put '39.226,-120.01,Brockway Hot Springs,Chico,Hotspring,131,55'; - put '41.036,-121.926,Hunt Hot Spring,Alturas,Hotspring,136,58'; - put '34.582,-119.044,Willett Hot Springs,Los Angeles,Hotspring,108,42'; - put '37.234,-118.881,Blaney Meadows Hot Springs,Mariposa,Hotspring,109,43'; - put '36.477,-118.404,Kern Hot Spring,Fresno,Hotspring,109,43'; - put '36.806,-117.771,Lower Warm Springs,Death Valley,Hotspring,110,43'; - put '34.482,-119.302,Matilija Hot Springs,Los Angeles,Hotspring,109,43'; - put '34.537,-119.879,San Marcos Hot Spring,Los Angeles,Hotspring,110,43'; - put '33.896,-117.057,Eden Hot Springs,Santa Ana,Hotspring,109,43'; - put '39.573,-120.348,Campbell Hot Springs,Chico,Hotspring,111,44'; - put '38.994,-122.742,Horseshoe Spring,Santa Rosa,Hotspring,108,42'; - put '33.969,-116.942,Highland Springs,Santa Ana,Hotspring,112,44'; - put '34.34,-117.173,"Warm Spring, Hot Spring",San Bernardino,Hotspring,108,42'; - put '41.219,-120.066,Squaw Baths,Alturas,Hotspring,106,41'; - put '40.142,-120.935,Indian Valley Hot Springs,Susanville,Hotspring,106,41'; - put '39.292,-122.821,Crabtree Hot Springs,Ukiah,Hotspring,106,41'; - put '37.108,-121.478,Gilroy Hot Springs,San Jose,Hotspring,106,41'; - put '39.227,-123.362,Orrs Springs,Ukiah,Hotspring,104,40'; - put '38.773,-122.705,Anderson Springs,Santa Rosa,Hotspring,108,42'; - put '38.858,-122.671,Howard Springs,Santa Rosa,Hotspring,113,45'; - put '34.461,-119.637,Montecito Hot Springs,Los Angeles,Hotspring,118,48'; - put '33.551,-117.167,Temecula Hot Springs,Santa Ana,Hotspring,116,47'; - put '33.835,-116.988,Gilman Hot Springs,Santa Ana,Hotspring,117,47'; - put '37.618,-119.074,Reds Meadow Hot Springs,Mariposa,Hotspring,115,46'; - put '35.528,-118.665,Democrat Hot Springs,Bakersfield,Hotspring,115,46'; - put '33.731,-118.348,Whites Point Hot Springs,Long Beach,Hotspring,115,46'; - put '37.532,-119.025,Fish Creek Hot Springs,Mariposa,Hotspring,110,43'; - put '39.032,-122.432,"Blank Spring, Manzanita Mine Sprs",Ukiah,Hotspring,112,45'; - put '37.327,-119.018,Mono Hot Springs,Mariposa,Hotspring,109,43'; - put '38.225,-119.217,The Hot Springs,Walker Lake,Hotspring,113,45'; - put '35.727,-118.408,Hot Spring,Bakersfield,Hotspring,113,45'; - put '41.6,-120.088,Leonards Hot Springs,Alturas,Hotspring,144,62'; - put '38.874,-123.518,Point Arena Hot Springs,Santa Rosa,Hotspring,111,44'; - put '41.126,-121.028,Kellog Hot Springs,Alturas,Hotspring,172,78'; - put '35.558,-118.612,Delonegha Hot Springs,Bakersfield,Hotspring,112,44'; - put '35.871,-116.23,Tecopa Hot Springs,Trona,Hotspring,118,48'; - put '41.86,-120.158,Fort Bidwell Hot Spring,Alturas,Hotspring,113,45'; - put '41.534,-120.078,Hot Springs (Surprise Valley),Alturas,Hotspring,208,98'; - put '33.345,-115.588,Mud Volcanoes,Salton Sea,Hotspring,W,W'; - put '41.012,-121.274,Hot Springs,Alturas,Hotspring,H,H'; - put '39.922,-120.024,Zamboni Hot Springs,Chico,Hotspring,H,H'; - put '38.979,-122.659,Fumarole,Santa Rosa,Hotspring,H,H'; - put '37.622,-119.028,Fumaroles,Mariposa,Hotspring,H,H'; - put '40.364,-120.243,Hot Spring,Susanville,Hotspring,204,96'; - put '38.767,-122.748,Little Geysers,Santa Rosa,Hotspring,210,99'; - put '33.328,-115.583,Mud Volcanoes,Salton Sea,Hotspring,W,W'; - put '41.67,-120.206,Lake City Hot Springs,Alturas,Hotspring,207,97'; - put '36.036,-117.802,Devils Kitchen,Death Valley,Hotspring,207,97'; - put '36.045,-117.769,Coso Hot Springs,Death Valley,Hotspring,207,97'; - put '40.382,-121.513,Morgan Hot Spring,Susanville,Hotspring,205,96'; - put '40.421,-121.375,Terminal Geyser,Susanville,Hotspring,205,96'; - put '41.19,-120.383,West Valley Reservoir Hot Spring,Alturas,Hotspring,171,77'; - put '38.802,-122.81,The Geysers,Santa Rosa,Hotspring,214,101'; - put '35.888,-116.258,Springs,Trona,Hotspring,W,W'; - put '34.185,-117.262,"Arrowhead Springs, Waterman Hot Sp",San Bernardino,Hotspring,194,90'; - put '33.823,-116.542,Palm Springs (Agua Caliente Spring,Santa Ana,Hotspring,104,40'; - put '41.196,-120.475,Springs,Alturas,Hotspring,W,W'; - put '41.959,-120.936,Warm Spring,Alturas,Hotspring,W,W'; - put '37.929,-121.965,Springs,San Jose,Hotspring,W,W'; - put '36.83,-117.736,Upper Warm Spring,Death Valley,Hotspring,W,W'; - put '33.343,-115.573,Mud Volcanoes,Salton Sea,Hotspring,W,W'; - put '35.536,-118.651,Spring (Hot),Bakersfield,Hotspring,W,W'; - put '33.332,-115.575,Mud Volcanoes,Salton Sea,Hotspring,W,W'; - put '35.967,-116.931,Warm Spring,Trona,Hotspring,W,W'; - put '33.28,-115.592,Mud Volcanoes,Salton Sea,Hotspring,W,W'; - put '33.288,-115.575,Mud Volcanoes,Salton Sea,Hotspring,W,W'; - put '33.312,-115.577,Mud Volcanoes,Salton Sea,Hotspring,W,W'; - put '33.313,-115.605,Mud Volcanoes,Salton Sea,Hotspring,W,W'; - put '40.393,-121.507,Growler Hot Spring,Susanville,Hotspring,203,95'; - put '35.148,-118.783,Warm Spring,Bakersfield,Hotspring,W,W'; - put '41.973,-122.202,Klamath Hot Spring,Weed,Hotspring,156,69'; - put '41.143,-121.11,Bassett Hot Springs,Alturas,Hotspring,174,79'; - put '38.58,-122.575,Calistoga Hot Springs,Santa Rosa,Hotspring,172,78'; - put '37.656,-118.834,Hot Creek Springs,Mariposa,Hotspring,171,77'; - put '41.229,-121.405,Little Hot Spring,Alturas,Hotspring,169,76'; - put '37.664,-118.802,The Tub,Mariposa,Hotspring,167,75'; - put '40.355,-120.257,Wendel Hot Springs,Susanville,Hotspring,205,96'; - put '38.768,-122.717,Castle Rock Springs,Santa Rosa,Hotspring,163,73'; - put '38.245,-119.205,Travertine Hot Springs,Walker Lake,Hotspring,180,82'; - put '39.002,-122.664,Sulphur Bank,Ukiah,Hotspring,156,69'; - put '39.057,-122.475,Elgin Mine,Ukiah,Hotspring,156,69'; - put '39.039,-122.421,Wilbur Springs,Ukiah,Hotspring,153,67'; - put '40.444,-121.409,Drakesbad,Susanville,Hotspring,151,66'; - put '40.457,-121.545,Mill Creek Springs,Susanville,Hotspring,150,66'; - put '38.048,-119.081,Hot Spring,Walker Lake,Hotspring,151,66'; - put '37.647,-118.859,Casa Diablo Hot Pool,Mariposa,Hotspring,165,74'; - put '41.607,-121.523,Hot Spot,Alturas,Hotspring,191,88'; - put '40.44,-121.434,Devils Kitchen,Susanville,Hotspring,203,95'; - put '40.302,-120.195,Amedee Hot Springs,Susanville,Hotspring,203,95'; - put '36.031,-117.833,Fumarole,Death Valley,Hotspring,203,95'; - put '40.447,-121.536,"Sulphur Works, Tophet Hot Springs",Susanville,Hotspring,199,93'; - put '40.455,-121.501,Bumpass Hell,Susanville,Hotspring,199,93'; - put '37.648,-118.914,Casa Diablo Hot Springs And Geyser,Mariposa,Hotspring,199,93'; - put '37.692,-118.839,Little Hot Creek Spring,Mariposa,Hotspring,180,82'; - put '34.596,-118.998,Sespe Hot Springs,Los Angeles,Hotspring,194,90'; - put '38.348,-119.4,Fales Hot Springs,Walker Lake,Hotspring,180,82'; - put '40.434,-121.399,Boiling Springs Lake,Susanville,Hotspring,190,88'; - put '41.615,-120.102,Seyferth Hot Springs,Alturas,Hotspring,185,85'; - put '41.407,-122.197,"Hot Spring, Fumaroles",Weed,Hotspring,183,84'; - put '37.993,-119.028,Paoha Island Springs,Mariposa,Hotspring,181,83'; - put '41.025,-121.924,Big Bend Hot Springs,Alturas,Hotspring,180,82'; - put '38.699,-119.846,Grovers Hot Springs,Walker Lake,Hotspring,147,64'; - put '37.665,-118.828,Hot Creek Gorge Springs,Mariposa,Hotspring,199,93'; - put '39.43,-122.538,"Sulphur Spring, Salt Spring",Ukiah,Hotspring,75,24'; - put '38.925,-122.77,Hildebrande Spring,Santa Rosa,Hotspring,77,25'; - put '38.203,-119.118,Warm Spring,Walker Lake,Hotspring,77,25'; - put '36.938,-121.565,Sargent Estate Warm Spring,Santa Cruz,Hotspring,77,25'; - put '34.826,-116.677,Newberry Spring,San Bernardino,Hotspring,77,25'; - put '41.919,-122.369,Bogus Soda Springs,Weed,Hotspring,76,24'; - put '39.053,-122.597,Quigley Soda Spring,Ukiah,Hotspring,82,28'; - put '41.252,-120.521,Warm Spring,Alturas,Hotspring,75,24'; - put '38.85,-122.693,Pine Cone Spring,Santa Rosa,Hotspring,78,26'; - put '38.339,-122.259,Napa Vichy Springs,Santa Rosa,Hotspring,76,24'; - put '38.892,-122.533,Baker Soda Spring,Santa Rosa,Hotspring,76,24'; - put '38.897,-122.882,England Springs,Santa Rosa,Hotspring,76,24'; - put '38.916,-122.799,Carlsbad Spring,Santa Rosa,Hotspring,76,24'; - put '38.192,-120.827,Valley Springs,Sacramento,Hotspring,75,24'; - put '38.85,-120.025,Myers Warm Spring,Sacramento,Hotspring,75,24'; - put '37.708,-118.813,Hot Spring,Mariposa,Hotspring,68,20'; - put '36.122,-117.217,Warm Sulphur Springs,Death Valley,Hotspring,80,27'; - put '35.682,-116.422,Saratoga Spring,Trona,Hotspring,82,28'; - put '33.733,-114.907,Mccoy Spring,Salton Sea,Hotspring,82,28'; - put '41.484,-120.764,Spring,Alturas,Hotspring,81,27'; - put '39.657,-123.585,Jackson Valley Mud Springs,Ukiah,Hotspring,80,27'; - put '39.198,-122.505,Pseudo Complexion Spring,Ukiah,Hotspring,81,27'; - put '38.85,-122.667,Bad Creek Spring,Santa Rosa,Hotspring,81,27'; - put '32.97,-116.423,Vallecitos Spring,San Diego,Hotspring,79,26'; - put '36.765,-120.901,Spring,Santa Cruz,Hotspring,81,27'; - put '34.159,-118.499,El Encino Springs,Los Angeles,Hotspring,79,26'; - put '35.879,-116.153,Resting Spring,Trona,Hotspring,80,27'; - put '41.828,-120.917,Pothole Spring,Alturas,Hotspring,78,26'; - put '39.348,-122.668,Fouts Springs,Ukiah,Hotspring,79,26'; - put '38.519,-122.26,"Napa Rock Soda Spring, Phillips So",Santa Rosa,Hotspring,78,26'; - put '38.838,-122.653,Spiers Springs,Santa Rosa,Hotspring,79,26'; - put '35.141,-116.101,Soda Station Springs,Trona,Hotspring,75,24'; - put '37.503,-121.904,Alameda Warm Springs,San Jose,Hotspring,80,27'; - put '39.429,-123.308,Muir Springs,Ukiah,Hotspring,68,20'; - put '37.924,-122.046,Sulphur Spring,San Francisco,Hotspring,75,24'; - put '40.58,-120.265,Tipton Springs,Susanville,Hotspring,70,21'; - put '39.697,-123.478,Pinches Spring,Ukiah,Hotspring,70,21'; - put '38.755,-122.285,Zim Zim Spring,Santa Rosa,Hotspring,70,21'; - put '37.083,-121.042,Spring In Oneill Forebay,San Jose,Hotspring,70,21'; - put '37.632,-121.762,Crohare Spring,San Jose,Hotspring,70,21'; - put '33.625,-115.325,Corn Spring,Salton Sea,Hotspring,72,22'; - put '36.117,-118.776,Ward Spring,Fresno,Hotspring,70,21'; - put '34.423,-119.538,Boron Spring,Los Angeles,Hotspring,72,22'; - put '39.002,-122.498,Grizzly Spring,Ukiah,Hotspring,68,20'; - put '39.088,-122.525,Sulphur Spring,Ukiah,Hotspring,68,20'; - put '38.125,-122.188,Vallejo White Sulphur Springs,Santa Rosa,Hotspring,68,20'; - put '38.31,-122.053,Tolenas Springs,Santa Rosa,Hotspring,68,20'; - put '41.45,-120.834,Kelly Hot Spring,Alturas,Hotspring,198,92'; - put '36.512,-116.821,Nevares Springs,Death Valley,Hotspring,102,39'; - put '37.888,-118.487,Bertrand Ranch Springs,Mariposa,Hotspring,70,21'; - put '35.483,-119.917,Mize Spring,Bakersfield,Hotspring,73,23'; - put '36.698,-117.848,Little Hunter Canyon Springs,Death Valley,Hotspring,81,27'; - put '38.995,-122.642,Davis Soda Spring,Santa Rosa,Hotspring,73,23'; - put '37.432,-121.308,Salt Grass Springs,San Jose,Hotspring,73,23'; - put '37.573,-121.445,Lone Tree Mineral Spring,San Jose,Hotspring,73,23'; - put '37.638,-118.887,Chance Spring,Mariposa,Hotspring,73,23'; - put '36.295,-120.985,Sulphur Springs,Santa Cruz,Hotspring,73,23'; - put '41.16,-120.403,Warm Spring,Alturas,Hotspring,70,21'; - put '35.4,-120.25,Cameta Warm Spring,San Luis Obisp,Hotspring,73,23'; - put '37.719,-118.735,Springs,Mariposa,Hotspring,75,24'; - put '35.588,-116.359,Sheep Creek Spring,Trona,Hotspring,73,23'; - put '40.568,-120.325,Sellicks Springs,Susanville,Hotspring,72,22'; - put '38.833,-122.357,One Shot Mining Co,Santa Rosa,Hotspring,72,22'; - put '38.95,-122.572,Soda Spring In Cache Formation,Santa Rosa,Hotspring,72,22'; - put '37.635,-118.72,Springs,Mariposa,Hotspring,72,22'; - put '36.13,-118.816,Soda Spring,Fresno,Hotspring,72,22'; - put '36.773,-120.898,Iridat Spring,Santa Cruz,Hotspring,73,23'; - put '33.545,-115.654,Canyon Spring,Salton Sea,Hotspring,97,36'; - put '36.675,-116.923,Keane Wonder Spring,Death Valley,Hotspring,93,34'; - put '36.331,-121.367,Paraiso Springs (Sulphur Spring),Santa Cruz,Hotspring,98,37'; - put '35.122,-120.542,Newsom Springs,San Luis Obisp,Hotspring,99,37'; - put '34.503,-120.219,Las Cruces Hot Springs,Santa Maria,Hotspring,99,37'; - put '38.49,-122.498,St Helena White Sulphur Spring,Santa Rosa,Hotspring,97,36'; - put '35.946,-116.189,Chappo Spring,Trona,Hotspring,80,27'; - put '40.019,-121.036,Spring,Susanville,Hotspring,99,37'; - put '40.44,-121.42,Hot Springs Valley,Susanville,Hotspring,83,28'; - put '32.947,-116.305,Agua Caliente Springs,San Diego,Hotspring,101,38'; - put '39.196,-122.714,Newman Springs,Ukiah,Hotspring,94,35'; - put '37.63,-118.808,Whitmore Hot Springs,Mariposa,Hotspring,95,35'; - put '35.269,-120.851,Pecho Warm Springs,San Luis Obisp,Hotspring,95,35'; - put '33.514,-117.604,Spring,Santa Ana,Hotspring,95,35'; - put '38.958,-122.701,Riviera Beach Spring,Santa Rosa,Hotspring,93,34'; - put '36.33,-117.948,Dirty Socks Hot Spring,Death Valley,Hotspring,93,34'; - put '37.847,-121.635,Byron Hot Springs,San Jose,Hotspring,96,36'; - put '35.433,-118.478,Yates Hot Springs,Bakersfield,Hotspring,100,38'; - put '35.663,-120.692,Paso Robles Artesian Spring,San Luis Obisp,Hotspring,102,39'; - put '34.507,-119.291,Wheeler Springs,Los Angeles,Hotspring,102,39'; - put '33.8,-116.927,Soboda Hot Springs,Santa Ana,Hotspring,102,39'; - put '40.223,-122.747,Stinking Springs,Redding,Hotspring,101,38'; - put '38.8,-123.17,Hoods Hot Springs,Santa Rosa,Hotspring,100,38'; - put '37.029,-117.383,Grapevine Springs,Goldfield,Hotspring,100,38'; - put '36.084,-121.584,Dolans Hot Spring,Santa Cruz,Hotspring,98,37'; - put '36.21,-118.176,Soda Springs,Fresno,Hotspring,100,38'; - put '33.664,-117.913,Fairview Hot Spring,Santa Ana,Hotspring,96,36'; - put '35.143,-116.813,Paradise Spring,Trona,Hotspring,100,38'; - put '33.837,-117.145,Lakeview Hot Springs,Santa Ana,Hotspring,100,38'; - put '33.201,-115.577,Mud Pots,Salton Sea,Hotspring,100,38'; - put '33.212,-115.591,Mud Pots,Salton Sea,Hotspring,100,38'; - put '33.217,-115.58,Wister Mud Pot,Salton Sea,Hotspring,100,38'; - put '32.617,-116.189,Jacumba Hot Springs,San Diego,Hotspring,101,38'; - put '36.618,-121.845,Sulphur Hot Spring,Santa Cruz,Hotspring,100,38'; - put '36.495,-117.893,Springs,Death Valley,Hotspring,86,30'; - put '38.033,-118.902,Mono Basin Warm Springs,Walker Lake,Hotspring,88,31'; - put '35.908,-120.367,Table Mountain (Spring),San Luis Obisp,Hotspring,88,31'; - put '34.271,-116.838,Pan Hot Springs,San Bernardino,Hotspring,88,31'; - put '40.238,-122.11,Tuscan Springs,Redding,Hotspring,86,30'; - put '40.245,-120.007,High Rock Spring,Susanville,Hotspring,86,30'; - put '38.55,-122.72,Mark West Springs,Santa Rosa,Hotspring,88,31'; - put '43.513,-119.903,Springs at Tecolote Tunnel,Los Angeles,Hotspring,93,34'; - put '39.728,-120.547,Mclear Warm Springs,Chico,Hotspring,86,30'; - put '38.835,-122.731,Gordon Warm Springs,Santa Rosa,Hotspring,97,36'; - put '39.166,-123.159,Vichy Springs,Ukiah,Hotspring,85,29'; - put '38.936,-122.907,Highland Springs,Santa Rosa,Hotspring,84,29'; - put '37.398,-121.794,Mineral Springs,San Jose,Hotspring,84,29'; - put '33.436,-117.324,De Luz Warm Springs,Santa Ana,Hotspring,85,29'; - put '33.512,-115.827,Dos Palmas Spring,Salton Sea,Hotspring,84,29'; - put '39.022,-122.444,Abbott Mine,Ukiah,Hotspring,86,30'; - put '34.605,-118.561,Warm Spring,Los Angeles,Hotspring,92,33'; - put '41.659,-123.319,Sulphur Springs,Weed,Hotspring,84,29'; - put '38.394,-122.552,Los Guilicos Warm Springs,Santa Rosa,Hotspring,88,31'; - put '41.492,-120.7,Essex Springs,Alturas,Hotspring,91,33'; - put '38.654,-122.484,Aetna Springs,Santa Rosa,Hotspring,91,33'; - put '35.842,-117.38,Bainter Spring,Trona,Hotspring,92,33'; - put '34.228,-117.483,Tylers Bath Spring,San Bernardino,Hotspring,92,33'; - put '33.363,-117.017,Agua Tibia Spring,Santa Ana,Hotspring,92,33'; - put '41.167,-120.032,Bare Ranch Spring,Alturas,Hotspring,90,32'; - put '35.978,-116.273,Shoshone Spring,Trona,Hotspring,90,32'; - put '33.407,-116.035,Fish Springs,Santa Ana,Hotspring,90,32'; - put '35.582,-120.666,Santa Ysabel Springs (Sulphur Spr),San Luis Obisp,Hotspring,92,33'; - put '34.537,-119.613,Little Caliente Spring,Los Angeles,Hotspring,90,32'; - put '39.006,-122.787,Big Soda Spring,Ukiah,Hotspring,90,32'; - put '35.439,-119.846,Carneros Spring,Bakersfield,Hotspring,90,32'; - put '36.441,-116.829,Travertine Springs,Death Valley,Hotspring,90,32'; - put '37.88,-122.627,Rocky Point Springs,San Francisco,Hotspring,90,32'; - put '39.227,-107.224,Penny Hot Springs,Leadville,Hotspring,133,56'; - put '38.732,-106.178,Hortense Hot Spring,Montrose,Hotspring,181,83'; - put '37.4,-107.849,Tripp Hot Springs,Durango,Hotspring,111,44'; - put '40.073,-106.113,Hot Sulphur Springs,Craig,Hotspring,111,44'; - put '39.739,-105.512,Idaho Springs,Denver,Hotspring,115,46'; - put '39.552,-107.412,South Canyon Hot Springs,Leadville,Hotspring,118,48'; - put '39.548,-107.322,Glenwood Springs,Leadville,Hotspring,124,51'; - put '38.133,-107.736,Orvis Hot Spring,Montrose,Hotspring,126,52'; - put '39.017,-105.793,Hartsel Hot Springs,Denver,Hotspring,126,52'; - put '38.733,-106.162,Mount Princeton Hot Springs,Montrose,Hotspring,133,56'; - put '37.752,-108.131,Paradise Warm Spring,Cortez,Hotspring,115,46'; - put '37.747,-106.831,Wagon Wheel Gap Hot Springs,Durango,Hotspring,135,57'; - put '37.263,-107.011,Pagosa Springs,Durango,Hotspring,136,58'; - put '38.812,-106.226,Cottonwood Hot Springs,Montrose,Hotspring,136,58'; - put '38.168,-105.924,Mineral Hot Springs,Pueblo,Hotspring,140,60'; - put '40.559,-106.849,Routt Hot Springs,Craig,Hotspring,147,64'; - put '38.021,-107.672,Ouray Hot Springs,Montrose,Hotspring,156,69'; - put '38.498,-106.076,Poncha Hot Springs,Montrose,Hotspring,160,71'; - put '38.514,-106.508,Upper Waunita Hot Springs,Montrose,Hotspring,176,80'; - put '38.272,-107.1,Cebolla Hot Springs,Montrose,Hotspring,106,41'; - put '37.313,-107.344,Piedra River Hot Springs,Durango,Hotspring,108,42'; - put '38.517,-106.515,Lower Waunita Hot Springs,Montrose,Hotspring,167,75'; - put '38.816,-106.873,Ranger Hot Spring,Montrose,Hotspring,81,27'; - put '37.294,-105.784,Dexter Spring,Trinidad,Hotspring,68,20'; - put '38.634,-106.072,Browns Grotto Warm Spring,Montrose,Hotspring,73,23'; - put '39.164,-106.062,Rhodes Warm Spring,Leadville,Hotspring,75,24'; - put '38.836,-106.825,Cement Creek Hot Spring,Montrose,Hotspring,77,25'; - put '38.653,-106.056,Browns Canyon Warm Spring,Montrose,Hotspring,77,25'; - put '37.033,-106.805,Stinking Springs,Durango,Hotspring,81,27'; - put '37.747,-108.117,Geyser Warm Spring,Cortez,Hotspring,82,28'; - put '38.479,-105.891,Swissvale Warm Springs,Pueblo,Hotspring,82,28'; - put '37.751,-106.317,Shaw Springs,Durango,Hotspring,86,30'; - put '37.728,-107.054,Birdsie Warm Spring,Durango,Hotspring,86,30'; - put '37.741,-107.034,Antelope Spring,Durango,Hotspring,90,32'; - put '39.628,-107.106,Dotsero Warm Springs,Leadville,Hotspring,90,32'; - put '38.485,-105.91,Wellsville Warm Spring,Pueblo,Hotspring,91,33'; - put '38.014,-108.054,Lemon Hot Spring,Moab,Hotspring,91,33'; - put '37.391,-107.846,"Trimble Hot Spr, Stratten Warm Spr",Durango,Hotspring,97,36'; - put '38.192,-105.816,Valley View Hot Springs,Pueblo,Hotspring,99,37'; - put '38.433,-105.261,Canon City Hot Springs,Pueblo,Hotspring,104,40'; - put '39.012,-106.891,Conundrum Hot Springs,Leadville,Hotspring,100,38'; - put '37.511,-106.945,Rainbow Hot Springs,Durango,Hotspring,104,40'; - put '40.467,-107.952,Juniper Hot Springs,Craig,Hotspring,100,38'; - put '40.483,-106.827,Steamboat Springs,Craig,Hotspring,102,39'; - put '37.771,-108.091,Dunton Hot Spring,Cortez,Hotspring,108,42'; - put '37.453,-107.803,Pinkerton Hot Springs,Durango,Hotspring,90,32'; - put '39.932,-105.277,Eldorado Springs,Denver,Hotspring,79,26'; - put '27.074,-82.233,Little Salt Spring,Tampa,Hotspring,81,27'; - put '27.06,-82.261,Warm Mineral Springs (Big Salt Spr,Tampa,Hotspring,86,30'; - put '32.92,-84.438,Barker Spring,Phenix City,Hotspring,73,23'; - put '32.964,-84.499,Thundering Spring,Phenix City,Hotspring,75,24'; - put '33.018,-84.327,Taylor Spring,Atlanta,Hotspring,75,24'; - put '32.862,-84.65,Parkman Spring,Phenix City,Hotspring,77,25'; - put '33.037,-84.374,Lifsey Spring,Atlanta,Hotspring,79,26'; - put '32.893,-84.69,Warm Springs,Phenix City,Hotspring,88,31'; - put '32.873,-84.547,Tom Brown Spring,Phenix City,Hotspring,68,20'; - put '19.407,-155.277,Steam Vents,Hawaii,Hotspring,H,H'; - put '19.46,-154.847,Isaac Hale Park Spring,Hawaii,Hotspring,97,36'; - put '19.496,-154.876,Warm Vapor,Hawaii,Hotspring,W,W'; - put '19.373,-155.188,Steam Vents,Hawaii,Hotspring,H,H'; - put '19.39,-155.311,Steam Vents,Hawaii,Hotspring,H,H'; - put '19.434,-155.272,Steam Vents,Hawaii,Hotspring,H,H'; - put '19.486,-155.598,Steam Vents,Hawaii,Hotspring,H,H'; - put '19.466,-154.943,Steam Vents,Hawaii,Hotspring,H,H'; - put '19.421,-155.62,Steam Vents,Hawaii,Hotspring,H,H'; - put '19.201,-155.384,Waiwelawela Point Spring,Hawaii,Hotspring,90,32'; - put '19.593,-154.928,Akins Spring,Hawaii,Hotspring,84,29'; - put '44.721,-115.01,Thomas Creek Ranch Hot Spring,Challis,Hotspring,138,59'; - put '45.431,-116.015,Cow Flats Hot Spring,Grangeville,Hotspring,138,59'; - put '44.062,-115.685,Pine Flat Hot Springs,Challis,Hotspring,138,59'; - put '44.382,-115.841,Dash Creek Hot Springs,Challis,Hotspring,138,59'; - put '44.077,-115.553,Haven Lodge Hot Spring,Challis,Hotspring,147,64'; - put '43.647,-114.816,Skillern Hot Springs,Hailey,Hotspring,140,60'; - put '43.789,-115.434,Dutch Frank Hot Spring,Hailey,Hotspring,149,65'; - put '43.54,-115.288,Bridge Hot Springs,Hailey,Hotspring,138,59'; - put '43.72,-115.617,Smith Cabin Hot Spring,Hailey,Hotspring,138,59'; - put '42.688,-114.826,Banbury Hot Spring,Twin Falls,Hotspring,138,59'; - put '45.035,-115.561,Sheep Creek Hot Spring,Elk City,Hotspring,136,58'; - put '44.245,-114.885,Elkhorn Hot Spring,Challis,Hotspring,136,58'; - put '44.642,-115.693,Mollys Hot Spring,Challis,Hotspring,138,59'; - put '43.811,-115.116,Atlanta Hot Springs,Hailey,Hotspring,140,60'; - put '44.679,-116.231,White Licks Hot Spring,Baker,Hotspring,140,60'; - put '45.512,-115.046,Barth Hot Springs,Elk City,Hotspring,140,60'; - put '43.696,-115.658,Sheep Creek Bridge Hot Spring,Hailey,Hotspring,142,61'; - put '44.914,-115.722,Teapot Hot Spring,Challis,Hotspring,142,61'; - put '43.788,-115.444,Straight Creek Hot Spring,Hailey,Hotspring,144,62'; - put '43.116,-115.305,Latty Hot Spring,Hailey,Hotspring,144,62'; - put '45.039,-116.291,Zims Resort Hot Springs,Grangeville,Hotspring,144,62'; - put '43.049,-114.952,White Arrow Hot Spring,Hailey,Hotspring,145,63'; - put '44.645,-114.739,Upper Loon Creek Hot Springs,Challis,Hotspring,145,63'; - put '43.383,-114.931,Wardrop Hot Spring,Hailey,Hotspring,147,64'; - put '44.531,-116.754,Fairchild Hot Spring,Baker,Hotspring,126,52'; - put '44.661,-114.652,Foster Ranch Hot Springs,Challis,Hotspring,135,57'; - put '44.051,-115.829,Dan Hodges Hot Spring,Challis,Hotspring,140,60'; - put '43.506,-114.354,Hailey Hot Springs,Hailey,Hotspring,131,55'; - put '43.982,-114.486,West Pass Hot Spring,Hailey,Hotspring,124,51'; - put '43.641,-114.487,Warfield Hot Spring,Hailey,Hotspring,124,51'; - put '44.145,-112.554,Lidy Hot Springs,Dubois,Hotspring,124,51'; - put '44.054,-115.907,Hot Spring Campground,Challis,Hotspring,124,51'; - put '42.032,-115.363,Murphy Hot Springs,Twin Falls,Hotspring,126,52'; - put '43.561,-114.415,Clarendon Hot Springs,Hailey,Hotspring,126,52'; - put '43.423,-114.627,Elk Creek Hot Spring,Hailey,Hotspring,126,52'; - put '43.553,-115.267,Paradise Hot Springs,Hailey,Hotspring,126,52'; - put '42.308,-111.707,Maple Grove Hot Springs,Preston,Hotspring,172,78'; - put '45.013,-113.605,Sharkey Hot Spring,Dillon,Hotspring,126,52'; - put '44.73,-114.993,Sunflower Hot Springs,Challis,Hotspring,149,65'; - put '43.974,-114.499,Lower Bowery Hot Spring,Hailey,Hotspring,129,54'; - put '43.724,-115.604,Loftus Hot Spring,Hailey,Hotspring,129,54'; - put '44.676,-115.943,Gold Fork Hot Spring,Challis,Hotspring,127,53'; - put '44.044,-115.851,Donlay Ranch Hot Spring,Challis,Hotspring,131,55'; - put '44.264,-114.818,Basin Creek Hot Spring,Challis,Hotspring,133,56'; - put '44.652,-114.734,Owen Cabin Hot Spring,Challis,Hotspring,133,56'; - put '43.605,-115.664,Rattlesnake Hot Spring,Hailey,Hotspring,133,56'; - put '43.605,-114.948,Lightfoot Hot Springs,Hailey,Hotspring,133,56'; - put '45.788,-115.198,Red River Hot Springs,Elk City,Hotspring,131,55'; - put '44.632,-115.697,South Fork Plunge,Challis,Hotspring,129,54'; - put '44.853,-116.442,Starkey Hot Springs,Baker,Hotspring,131,55'; - put '42.692,-114.859,Hot Sulphur (Miracle Hot) Springs,Twin Falls,Hotspring,131,55'; - put '44.045,-115.842,Corder Hot Spring,Challis,Hotspring,131,55'; - put '44.247,-114.676,Robinson Bar Hot Springs,Challis,Hotspring,131,55'; - put '44.785,-114.855,Cox Hot Springs,Challis,Hotspring,131,55'; - put '43.637,-115.13,Willow Creek Hot Spring,Hailey,Hotspring,131,55'; - put '43.803,-115.401,Granite Creek Hot Spring,Hailey,Hotspring,131,55'; - put '43.129,-115.34,Coyote Hot Spring,Hailey,Hotspring,135,57'; - put '44.211,-116.71,Cove Creek Hot Spring,Baker,Hotspring,131,55'; - put '44.16,-115.167,Grandjean Hot Spring,Challis,Hotspring,H,H'; - put '43.755,-115.571,Ninemeyer Hot Springs,Hailey,Hotspring,169,76'; - put '43.701,-114.738,Big Smokey Hot Spring,Hailey,Hotspring,H,H'; - put '43.831,-115.192,Queens River Hot Spring,Hailey,Hotspring,H,H'; - put '43.817,-115.046,Leggit Creek Hot Spring,Hailey,Hotspring,H,H'; - put '43.718,-115.563,Basset Hot Spring,Hailey,Hotspring,H,H'; - put '43.588,-115.988,Mores Creek Hot Spring,Hailey,Hotspring,H,H'; - put '44.951,-114.704,Mormon Ranch Warm Spring,Challis,Hotspring,H,H'; - put '44.896,-114.563,Forge Creek Hot Springs,Challis,Hotspring,H,H'; - put '44.77,-115.663,Billy Hot Spring,Challis,Hotspring,H,H'; - put '44.628,-115.197,Sheepeater Hot Springs,Challis,Hotspring,H,H'; - put '44.585,-115.072,Sulphur Creek Hot Spring,Challis,Hotspring,H,H'; - put '44.554,-115.301,Sulphur Creek Hot Spring,Challis,Hotspring,H,H'; - put '42.107,-113.39,Blm Well (Frazier Hot Spring),Pocatello,Hotspring,203,95'; - put '44.4,-115.82,Goat Hot Springs,Challis,Hotspring,H,H'; - put '45.307,-114.338,Big Creek Hot Springs,Elk City,Hotspring,199,93'; - put '44.583,-116.112,Cascade Reservoir Hot Spring,Baker,Hotspring,H,H'; - put '45.17,-115.807,Secesh Hot Spring,Elk City,Hotspring,H,H'; - put '46.235,-114.707,Prospector Hot Springs,Hamilton,Hotspring,H,H'; - put '46.138,-115.09,Stuart Hot Springs,Hamilton,Hotspring,H,H'; - put '46.006,-115.021,Marten Hot Springs,Hamilton,Hotspring,H,H'; - put '42.374,-111.726,Mound Valley Warm Spring,Preston,Hotspring,W,W'; - put '43.255,-114.829,Mormon Reservoir Warm Spring,Hailey,Hotspring,W,W'; - put '44.639,-115.671,Warm Lake Springs,Challis,Hotspring,W,W'; - put '44.445,-115.239,Bear Valley Hot Spring,Challis,Hotspring,W,W'; - put '44.354,-117.071,Old Homestead Warm Spring,Baker,Hotspring,W,W'; - put '43.327,-113.918,Condie Hot Springs,Idaho Falls,Hotspring,124,51'; - put '43.038,-112.004,Alkali Flats Warm Spring,Idaho Falls,Hotspring,93,34'; - put '44.43,-115.762,Bull Creek Hot Springs,Challis,Hotspring,H,H'; - put '42.119,-111.928,Squaw Hot Springs,Preston,Hotspring,163,73'; - put '42.333,-111.716,Cleveland Hot Springs,Preston,Hotspring,151,66'; - put '43.671,-115.696,Twin Springs,Hailey,Hotspring,151,66'; - put '43.951,-116.353,Roystone Hot Springs,Boise,Hotspring,151,66'; - put '42.704,-114.856,Salmon Falls Hot Spring,Twin Falls,Hotspring,153,67'; - put '44.16,-115.177,Sacajawea Hot Springs,Challis,Hotspring,153,67'; - put '43.738,-115.583,Vaughn Hot Spring,Hailey,Hotspring,154,68'; - put '44.669,-116.305,Council Mtn Hot Springs,Baker,Hotspring,154,68'; - put '44.831,-115.215,Kwiskwis Hot Spring,Challis,Hotspring,156,69'; - put '43.684,-114.41,Guyer Hot Springs,Hailey,Hotspring,158,70'; - put '43.155,-115.518,Hot Springs,Hailey,Hotspring,158,70'; - put '44.586,-116.63,Lakey Hot Spring,Baker,Hotspring,158,70'; - put '42.333,-115.65,Indian Hot Springs,Twin Falls,Hotspring,160,71'; - put '42.637,-114.892,Poison Springs,Twin Falls,Hotspring,H,H'; - put '44.813,-115.123,Middle Fork Indian Creek Hot Sprin,Challis,Hotspring,162,72'; - put '44.072,-115.543,Kirkham Hot Springs,Challis,Hotspring,149,65'; - put '43.328,-114.399,Magic Hot Springs,Hailey,Hotspring,163,73'; - put '43.293,-114.908,Barrons Hot Spring,Hailey,Hotspring,167,75'; - put '44.154,-115.993,Warm Springs Creek Hot Springs,Challis,Hotspring,167,75'; - put '44.268,-114.748,Sunbeam Hot Springs,Challis,Hotspring,169,76'; - put '44.092,-116.052,Deer Hot Springs,Baker,Hotspring,176,80'; - put '43.563,-114.798,Worswick Hot Springs,Hailey,Hotspring,180,82'; - put '42.133,-111.928,Battle Creek Hot Springs,Preston,Hotspring,183,84'; - put '44.364,-115.856,Boiling Springs,Challis,Hotspring,185,85'; - put '44.157,-115.314,Bonneville Hot Springs,Challis,Hotspring,185,85'; - put '44.799,-115.129,Indian Creek Hot Spring,Challis,Hotspring,190,88'; - put '44.568,-115.695,Vulcan Hot Springs,Challis,Hotspring,190,88'; - put '44.306,-116.745,Crane Creek Hot Springs,Baker,Hotspring,198,92'; - put '44.416,-116.031,Cabarton Hot Spring,Baker,Hotspring,160,71'; - put '42.781,-111.983,Portneuf River Warm Spring,Preston,Hotspring,93,34'; - put '44.621,-115.985,Badley Warm Spring,Challis,Hotspring,100,38'; - put '45.201,-116.312,Boulder Creek Spring,Grangeville,Hotspring,82,28'; - put '42.24,-113.588,Sears Spring,Pocatello,Hotspring,84,29'; - put '44.257,-112.639,Warm Springs,Dubois,Hotspring,84,29'; - put '42.911,-111.556,Henry Warm Spring,Preston,Hotspring,86,30'; - put '43.021,-111.695,Wilson Lake Warm Spring,Driggs,Hotspring,86,30'; - put '44.495,-116.732,Keithly Warm Spring,Baker,Hotspring,86,30'; - put '42.655,-111.643,Steamboat Hot Spring,Preston,Hotspring,88,31'; - put '45.152,-116.296,Stinky Warm Spring,Grangeville,Hotspring,88,31'; - put '42.725,-112.872,Indian Springs,Pocatello,Hotspring,90,32'; - put '43.114,-112.167,Yandell Springs,Idaho Falls,Hotspring,90,32'; - put '44.64,-116.045,Arling Hot Spring,Baker,Hotspring,90,32'; - put '42.657,-111.604,Soda Springs,Preston,Hotspring,82,28'; - put '45.07,-115.826,Lick Creek Warm Spring,Elk City,Hotspring,91,33'; - put '42.337,-111.726,Treasureton Hot Springs,Preston,Hotspring,95,35'; - put '44.382,-114.088,Little Antelope Flat Warm Spring,Challis,Hotspring,93,34'; - put '43.21,-111.495,Brockman Creek Hot Spring,Driggs,Hotspring,95,35'; - put '44.398,-115.149,Cape Horn Warm Springs,Challis,Hotspring,95,35'; - put '42.337,-114.509,Nat-Soo-Pah Warm Spring,Twin Falls,Hotspring,97,36'; - put '44.9,-115.505,Hot Creek Warm Spring,Challis,Hotspring,97,36'; - put '42.405,-114.142,Artesian City Hot Springs,Twin Falls,Hotspring,99,37'; - put '42.762,-115.739,Indian Bathtub Hot Springs,Twin Falls,Hotspring,99,37'; - put '43.227,-111.109,Alpine Warm Spring,Driggs,Hotspring,99,37'; - put '42.545,-112.906,Rockland Warm Springs,Pocatello,Hotspring,100,38'; - put '43.805,-114.585,Russian John Hot Spring,Hailey,Hotspring,100,38'; - put '43.779,-114.539,Easley Hot Springs,Hailey,Hotspring,100,38'; - put '44.26,-114.838,Mormon Bend Hot Spring,Challis,Hotspring,100,38'; - put '44.64,-113.504,Big Eightmile Creek Warm Spring,Dubois,Hotspring,91,33'; - put '42.339,-112.436,Kent Warm Spring,Pocatello,Hotspring,75,24'; - put '42.957,-112.458,Tadpole Warm Spring,Pocatello,Hotspring,68,20'; - put '43.607,-111.189,Taylor Springs,Driggs,Hotspring,68,20'; - put '43.972,-116.325,Sweet Warm Spring,Boise,Hotspring,68,20'; - put '44.717,-115.703,Dollar Creek Warm Spring,Challis,Hotspring,68,20'; - put '42.625,-113.107,Lake Walcott Hot Spring,Pocatello,Hotspring,70,21'; - put '42.015,-114.237,Thoroughbred Warm Springs,Twin Falls,Hotspring,69,21'; - put '42.928,-111.592,Blackfoot Reservoir Warm Spring,Preston,Hotspring,72,22'; - put '42.286,-113.446,"Rice Spring, Ward Spring",Pocatello,Hotspring,72,22'; - put '42.085,-113.564,Grape Creek Warm Spring,Pocatello,Hotspring,72,22'; - put '43.66,-111.715,Elkhorn Warm Spring,Driggs,Hotspring,72,22'; - put '43.367,-113.884,Rush Warm Spring,Idaho Falls,Hotspring,72,22'; - put '44.306,-117.042,Weiser Warm Springs,Baker,Hotspring,72,22'; - put '45.344,-114.463,Owl Creek Hot Springs,Elk City,Hotspring,122,50'; - put '44.454,-112.696,Big Spring,Dubois,Hotspring,73,23'; - put '44.269,-113.449,Barney Hot Springs,Dubois,Hotspring,82,28'; - put '43.5,-115.308,Towne Creek Warm Spring,Hailey,Hotspring,75,24'; - put '43.161,-116.332,Thomas Flats Warm Spring,Boise,Hotspring,75,24'; - put '44.612,-113.363,Whittaker Warm Springs,Dubois,Hotspring,75,24'; - put '42.173,-112.239,Malad Warm Spring,Pocatello,Hotspring,77,25'; - put '42.156,-112.348,Pleasantview Warm Springs,Pocatello,Hotspring,77,25'; - put '42.025,-112.226,Prices Warm Spring,Pocatello,Hotspring,77,25'; - put '42.865,-116.368,Lower Birch Spring,Jordan Valley,Hotspring,77,25'; - put '43.423,-111.414,Fall Creek Mineral Springs,Driggs,Hotspring,77,25'; - put '42.986,-111.743,Blackfoot River Warm Spring,Preston,Hotspring,79,26'; - put '42.426,-111.378,Pescadero Warm Spring,Preston,Hotspring,79,26'; - put '44.091,-111.458,Ashton Warm Spring,Ashton,Hotspring,79,26'; - put '42.056,-112.246,Woodruff Hot Spring,Pocatello,Hotspring,81,27'; - put '43.831,-116.396,Highland Land Co Warm Spring,Boise,Hotspring,73,23'; - put '44.847,-115.696,Holdover Hot Spring,Challis,Hotspring,117,47'; - put '43.047,-114.929,Hot Sulphur Lake,Hailey,Hotspring,81,27'; - put '43.603,-115.07,Baumgartner Hot Spring,Hailey,Hotspring,111,44'; - put '44.465,-116.037,Belvidere Hot Spring,Baker,Hotspring,111,44'; - put '42.621,-112.008,Lava Hot Springs,Pocatello,Hotspring,113,45'; - put '43.823,-115.327,Weatherby Hot Spring,Hailey,Hotspring,113,45'; - put '43.335,-115.044,Wolf Hot Spring,Hailey,Hotspring,113,45'; - put '44.905,-113.929,Goldbug Hot Spring,Dubois,Hotspring,113,45'; - put '45.095,-113.836,Salmon Hot Spring,Dillon,Hotspring,113,45'; - put '45.277,-115.912,Burgdorf Hot Springs,Elk City,Hotspring,113,45'; - put '44.836,-114.79,Hospital Hot Spring,Challis,Hotspring,115,46'; - put '44.72,-114.016,Cronks Canyon Hot Spring,Challis,Hotspring,115,46'; - put '44.721,-115.207,Pistol Creek Hot Springs,Challis,Hotspring,115,46'; - put '43.791,-111.435,Pincock (Green Canyon) Hot Springs,Driggs,Hotspring,111,44'; - put '43.414,-116.707,Givens Hot Springs,Boise,Hotspring,117,47'; - put '45.503,-114.463,Horse Creek Hot Springs,Elk City,Hotspring,109,43'; - put '46.464,-115.035,Weir Creek Hot Springs,Hamilton,Hotspring,117,47'; - put '42.115,-111.264,Bear Lake Hot Springs,Preston,Hotspring,118,48'; - put '42.173,-113.861,Oakley Hot Spring,Pocatello,Hotspring,118,48'; - put '46.463,-114.872,Jerry Johnson Hot Springs,Hamilton,Hotspring,118,48'; - put '43.644,-111.687,Heise Hot Springs,Driggs,Hotspring,120,49'; - put '44.799,-114.806,Lower Loon Creek Hot Spring,Challis,Hotspring,120,49'; - put '44.253,-115.891,Rocky Canyon Hot Springs,Challis,Hotspring,120,49'; - put '46.316,-115.258,Stanley Hot Springs,Hamilton,Hotspring,120,49'; - put '43.779,-115.486,Brown Creek Hot Spring,Hailey,Hotspring,122,50'; - put '44.628,-114.601,Shower Bath Springs,Challis,Hotspring,122,50'; - put '44.171,-114.624,Slate Creek Hot Spring,Challis,Hotspring,122,50'; - put '44.392,-115.834,Ground Hog Hot Springs,Challis,Hotspring,100,38'; - put '42.797,-115.723,"Bat Hot Spring, Pence Hot Spring",Twin Falls,Hotspring,117,47'; - put '42.767,-115.725,Lower Indian Bathtub Hot Springs,Twin Falls,Hotspring,108,42'; - put '42.102,-113.632,Durfee Spring,Pocatello,Hotspring,102,39'; - put '44.33,-115.802,Silver Creek Hot Spring,Challis,Hotspring,102,39'; - put '42.447,-113.523,Marsh Creek Hot Spring,Pocatello,Hotspring,104,40'; - put '42.449,-113.511,Marsh Gully Hot Springs,Pocatello,Hotspring,106,41'; - put '42.798,-115.742,Bruneau Hot Spring,Twin Falls,Hotspring,106,41'; - put '43.576,-114.83,Preis Hot Spring,Hailey,Hotspring,106,41'; - put '43.677,-116.208,Terteling Hot Springs,Boise,Hotspring,106,41'; - put '44.254,-114.443,Sullivan Hot Springs,Challis,Hotspring,106,41'; - put '44.224,-114.929,Stanley Hot Spring,Challis,Hotspring,106,41'; - put '44.101,-114.865,Rosalys Warm Spring,Challis,Hotspring,106,41'; - put '44.06,-115.819,Danskin Creek Hot Spring,Challis,Hotspring,106,41'; - put '45.852,-114.937,Running Warm Springs,Elk City,Hotspring,106,41'; - put '43.363,-113.779,Milford Sweat Hot Spring,Idaho Falls,Hotspring,111,44'; - put '46.466,-114.939,Colgate Warm Springs,Hamilton,Hotspring,106,41'; - put '44.626,-115.749,Trail Creek Hot Spring,Challis,Hotspring,122,50'; - put '43.816,-115.863,Warm Springs,Hailey,Hotspring,108,42'; - put '43.76,-115.56,Pool Creek Hot Spring,Hailey,Hotspring,108,42'; - put '45.042,-114.616,Snowshoe Johnsons Hot Spring,Elk City,Hotspring,108,42'; - put '42.388,-112.085,Downata Hot Springs,Pocatello,Hotspring,109,43'; - put '42.013,-114.504,Magic Hot Springs,Twin Falls,Hotspring,109,43'; - put '42.779,-115.715,Buckaroo Hot Spring,Twin Falls,Hotspring,109,43'; - put '43.99,-114.8,Pierson Hot Springs,Hailey,Hotspring,109,43'; - put '43.038,-114.988,Tschanne Hot Spring,Hailey,Hotspring,109,43'; - put '44.523,-114.173,Beardsley Hot Springs,Challis,Hotspring,109,43'; - put '44.733,-115.018,Sunflower Flat Hot Spring,Challis,Hotspring,109,43'; - put '44.516,-115.295,Dagger Creek Hot Spring,Challis,Hotspring,110,43'; - put '44.971,-116.203,Krigbaum Hot Springs,Baker,Hotspring,109,43'; - put '45.416,-116.172,Riggins Hot Springs,Grangeville,Hotspring,106,41'; - put '42.735,-73.2,Sand Spring,Albany,Hotspring,75,24'; - put '46.106,-114.004,Sleeping Child Hot Springs,Hamilton,Hotspring,122,50'; - put '45.697,-114.365,Blue Joint Hot Springs 2,Elk City,Hotspring,84,29'; - put '44.769,-111.649,Sloan Cow Camp Spring,Ashton,Hotspring,86,30'; - put '47.632,-112.855,Medicine (Sun River) Springs,Choteau,Hotspring,86,30'; - put '45.75,-113.938,Gallogly Spring,Dillon,Hotspring,100,38'; - put '47.33,-114.789,Quinns Hot Springs,Wallace,Hotspring,109,43'; - put '45.171,-112.153,Puller Hot Springs,Dillon,Hotspring,111,44'; - put '46.728,-114.533,"Lolo Hot Springs, Granite Springs",Hamilton,Hotspring,111,44'; - put '45.337,-110.691,Chico Hot Springs,Bozeman,Hotspring,113,45'; - put '47.607,-114.663,Camas Hot Springs,Wallace,Hotspring,113,45'; - put '45.841,-114.038,Medicine Hot Springs,Elk City,Hotspring,117,47'; - put '45.458,-113.109,Elkhorn Hot Springs,Dillon,Hotspring,118,48'; - put '45.027,-112.844,Mcmenomey Ranch Spring,Dillon,Hotspring,68,20'; - put '45.792,-112.126,Renova Hot Springs,Dillon,Hotspring,122,50'; - put '44.701,-111.878,Staudenmeyer Springs,Ashton,Hotspring,82,28'; - put '45.602,-111.9,Potosi Warm Springs,Bozeman,Hotspring,124,51'; - put '45.575,-111.683,Norris Hot Springs,Bozeman,Hotspring,127,53'; - put '45.462,-112.475,New Biltmore Hot Springs,Dillon,Hotspring,127,53'; - put '45.66,-111.186,Bozeman Hot Springs,Bozeman,Hotspring,131,55'; - put '45.896,-112.233,Pipestone Hot Springs,Dillon,Hotspring,135,57'; - put '46.547,-110.903,White Sulphur Springs,White Sulphur,Hotspring,136,58'; - put '46.448,-111.982,Alhambra Hot Springs,White Sulphur,Hotspring,138,59'; - put '45.757,-110.256,Hunters Hot Springs,Bozeman,Hotspring,140,60'; - put '45.368,-113.403,Jardine Hot Spring,Dillon,Hotspring,140,60'; - put '46.596,-112.108,Broadwater (Helena) Hot Springs,Butte,Hotspring,151,66'; - put '44.984,-111.613,Wolf Creek Hot Springs,Ashton,Hotspring,154,68'; - put '45.685,-112.295,Silver Star Hot Springs,Dillon,Hotspring,163,73'; - put '45.59,-111.899,Potosi Hot Springs,Bozeman,Hotspring,122,50'; - put '45.105,-112.751,Browns Springs,Dillon,Hotspring,75,24'; - put '46.718,-113.306,Bearmouth Warm Spring 2,Butte,Hotspring,68,20'; - put '46.717,-113.32,Bearmouth Warm Spring 1,Butte,Hotspring,68,20'; - put '47.217,-109.471,Brooks Warm Spring,Lewistown,Hotspring,68,20'; - put '45.708,-110.976,Bridger Canyon Warm Spring,Bozeman,Hotspring,70,21'; - put '46.795,-108.883,Durfee Creek Springs,Roundup,Hotspring,70,21'; - put '46.704,-113.452,Nimrod Springs,Butte,Hotspring,70,21'; - put '47.876,-108.656,Landusky Springs,Lewistown,Hotspring,70,21'; - put '45.032,-110.667,Bear Creek Springs,Bozeman,Hotspring,72,22'; - put '45.111,-112.714,Lovells Hot Spring,Dillon,Hotspring,72,22'; - put '46.106,-112.903,Anaconda Hot Springs,Butte,Hotspring,72,22'; - put '45.235,-112.135,Trudau Warm Springs,Dillon,Hotspring,73,23'; - put '45.698,-114.382,Blue Joint Hot Spring 1,Elk City,Hotspring,84,29'; - put '45.037,-111.953,Vigilante Spring,Bozeman,Hotspring,75,24'; - put '45.608,-110.571,Carter Bridge Warm Springs,Bozeman,Hotspring,82,28'; - put '46.355,-111.565,Bedford Hot Springs,White Sulphur,Hotspring,74,24'; - put '45.553,-110.142,Anderson Springs,Bozeman,Hotspring,77,25'; - put '45.42,-112.692,Apex Warm Spring,Dillon,Hotspring,77,25'; - put '46.607,-112.776,Garrison Warm Springs,Butte,Hotspring,77,25'; - put '47.843,-108.598,The (Landusky) Plunge,Lewistown,Hotspring,77,25'; - put '44.785,-111.649,West Fork Swimming Hole,Ashton,Hotspring,79,26'; - put '46.61,-112.555,Avon Warm Spring,Butte,Hotspring,79,26'; - put '46.334,-112.886,Deerlodge Prison Ranch Springs,Butte,Hotspring,79,26'; - put '47.994,-108.445,Lodgepole (Big Warm) Springs,Lewistown,Hotspring,79,26'; - put '47.451,-114.648,Green Springs,Wallace,Hotspring,79,26'; - put '45.392,-112.452,Beaverhead Rock Spring,Dillon,Hotspring,81,27'; - put '44.704,-111.892,Andersons Pasture Springs,Ashton,Hotspring,82,28'; - put '47.971,-108.395,Little Warm Springs,Lewistown,Hotspring,73,23'; - put '46.198,-112.094,Boulder Hot Springs,Butte,Hotspring,169,76'; - put '46.178,-112.794,Warm Springs (State Hospital),Butte,Hotspring,172,78'; - put '45.367,-111.726,Ennis Hot Springs,Bozeman,Hotspring,181,83'; - put '46.044,-112.811,Gregson Hot Springs,Butte,Hotspring,158,70'; - put '45.09,-110.774,Laduke (Corwin) Hot Spring,Bozeman,Hotspring,154,68'; - put '35.897,-82.826,Hot Springs,Knoxville,Hotspring,108,42'; - put '32.644,-108.128,Apache Tejo Warm Spring,Silver City,Hotspring,97,36'; - put '33.135,-107.254,Truth Or Consequences,Tularosa,Hotspring,113,45'; - put '36.305,-106.053,Ojo Caliente (Arsenic Spring),Aztec,Hotspring,111,44'; - put '33.162,-108.209,Spring (Hot),Clifton,Hotspring,111,44'; - put '36.508,-105.722,Manby Hot Springs,Raton,Hotspring,100,38'; - put '35.849,-106.629,Spence Hot Springs,Albuquerque,Hotspring,100,38'; - put '35.972,-106.56,San Antonio Warm Spring,Albuquerque,Hotspring,101,38'; - put '35.82,-106.627,Mccauley Hot Springs,Albuquerque,Hotspring,99,37'; - put '35.793,-106.685,Soda Dam Hot Springs,Albuquerque,Hotspring,117,47'; - put '33.831,-108.8,(Upper) Frisco Hot Spring,Clifton,Hotspring,98,37'; - put '35.646,-106.888,Warm Springs,Albuquerque,Hotspring,129,54'; - put '36.324,-105.606,Ponce De Leon Springs,Raton,Hotspring,93,34'; - put '34.038,-106.94,"Socorro Spring, Sedillo Spring",Socorro,Hotspring,93,34'; - put '33.293,-108.282,"Spring Mfg Two, Spring Mfg Three",Clifton,Hotspring,99,37'; - put '35.592,-106.753,Indian Springs,Albuquerque,Hotspring,123,51'; - put '32.501,-106.926,Radium Springs,Las Cruces,Hotspring,127,53'; - put '33.274,-108.25,Spring Mfg Four,Clifton,Hotspring,93,34'; - put '35.938,-106.646,San Antonio Hot Spring,Albuquerque,Hotspring,129,54'; - put '33.244,-108.88,San Francisco Hot Springs,Clifton,Hotspring,120,49'; - put '32.748,-107.836,Mimbres Hot Springs,Las Cruces,Hotspring,136,58'; - put '35.653,-105.29,Montezuma Hot Springs,Santa Fe,Hotspring,138,59'; - put '33.233,-108.235,Spring (Hot),Clifton,Hotspring,149,65'; - put '33.199,-108.209,Gila Hot Springs,Clifton,Hotspring,151,66'; - put '33.108,-108.483,Turkey Creek Hot Spring,Clifton,Hotspring,165,74'; - put '35.772,-106.69,Jemez Springs,Albuquerque,Hotspring,169,76'; - put '35.908,-106.615,Sulphur Springs,Albuquerque,Hotspring,189,87'; - put '33.237,-108.88,Hot Springs,Clifton,Hotspring,H,H'; - put '32.562,-108.027,Kennecott Warm Springs,Silver City,Hotspring,W,W'; - put '32.554,-107.994,Faywood Hot Springs,Las Cruces,Hotspring,129,54'; - put '33.898,-108.501,Aragon Springs,Clifton,Hotspring,70,21'; - put '34.847,-107.091,Spring (Salt),Socorro,Hotspring,76,24'; - put '34.903,-107.085,El Ojo Escondido,Socorro,Hotspring,73,23'; - put '35.06,-107.133,Alamos Spring,Albuquerque,Hotspring,72,22'; - put '34.912,-108.951,Rainbow Spring,Saint Johns,Hotspring,71,22'; - put '34.698,-107.129,Spring,Socorro,Hotspring,71,22'; - put '32.455,-104.489,Indian Big Spring,Carlsbad,Hotspring,79,26'; - put '34.995,-106.454,Clear Water Spring,Socorro,Hotspring,69,21'; - put '32.821,-108.408,Ash Spring,Silver City,Hotspring,72,22'; - put '32.83,-109.047,Goat Camp Spring,Silver City,Hotspring,69,21'; - put '35.548,-106.827,San Ysidro Warm Springs,Albuquerque,Hotspring,68,20'; - put '34.116,-106.98,Ojitos Springs,Socorro,Hotspring,68,20'; - put '32.248,-104.411,Mosley Spring,Carlsbad,Hotspring,68,20'; - put '33.708,-109.025,Frieborn Canyon Spring,Clifton,Hotspring,92,33'; - put '33.192,-108.18,Lyons Hunting Lodge Hot Springs,Clifton,Hotspring,126,52'; - put '35.601,-106.86,Phillips Springs,Albuquerque,Hotspring,70,21'; - put '33.285,-108.262,Spring Mfg One,Clifton,Hotspring,88,31'; - put '33.306,-108.324,The Meadows Warm Spring,Clifton,Hotspring,91,33'; - put '34.049,-106.939,Cook Spring,Socorro,Hotspring,70,21'; - put '32.795,-107.276,Derry Warm Springs,Las Cruces,Hotspring,92,33'; - put '32.884,-108.358,Allen Springs,Silver City,Hotspring,78,26'; - put '33.279,-107.563,Warm Springs,Tularosa,Hotspring,87,31'; - put '32.606,-107.19,Souse Springs,Las Cruces,Hotspring,88,31'; - put '34.808,-107.091,Spring (Salt),Socorro,Hotspring,86,30'; - put '35.54,-106.854,San Ysidro Hot Springs,Albuquerque,Hotspring,85,29'; - put '36.368,-106.059,Statue Spring,Aztec,Hotspring,83,28'; - put '34.833,-107.091,Laguna Pueblo Seeps,Socorro,Hotspring,82,28'; - put '33.572,-107.593,Ojo Caliente,Tularosa,Hotspring,83,28'; - put '34.854,-107.088,Laguna Pueblo Springs,Socorro,Hotspring,80,27'; - put '32.843,-108.512,Mangas Springs,Silver City,Hotspring,81,27'; - put '34.769,-107.085,Spring (Salt),Socorro,Hotspring,78,26'; - put '34.032,-106.777,Ojo De Las Canas,Socorro,Hotspring,79,26'; - put '40.972,-119.007,Black Rock Hot Spring,Lovelock,Hotspring,136,58'; - put '38.899,-119.41,Nevada (Hinds) Hot Springs,Walker Lake,Hotspring,144,62'; - put '38.922,-118.198,Wedell Hot Springs,Walker Lake,Hotspring,144,62'; - put '41.183,-114.991,Hot Springs,Wells,Hotspring,142,61'; - put '38.437,-116.277,Hot Creek Valley Spring,Tonopah,Hotspring,142,61'; - put '41.788,-114.735,Mineral Hot Spring,Wells,Hotspring,140,60'; - put '37.825,-117.337,Alkali Hot Spring,Goldfield,Hotspring,140,60'; - put '41.412,-114.675,Wine Cup Ranch Springs,Wells,Hotspring,138,59'; - put '40.404,-116.517,Crescent Valley Hot Springs,Winnemucca,Hotspring,138,59'; - put '40.417,-116.507,Crescent Valley Hot Springs,Winnemucca,Hotspring,138,59'; - put '40.603,-116.463,Horseshoe Ranch Springs,Winnemucca,Hotspring,136,58'; - put '41.378,-119.182,Springs (Hot),Vya,Hotspring,136,58'; - put '39.883,-114.893,Cherry Creek Hot Springs,Ely,Hotspring,144,62'; - put '40.922,-117.108,Hot Pot (Blossom Hot Springs),Winnemucca,Hotspring,136,58'; - put '41.721,-118.505,Howard Hot Spring,Vya,Hotspring,135,57'; - put '41.421,-117.388,The Hot Springs,Mcdermitt,Hotspring,135,57'; - put '40.418,-117.415,Buffalo Springs,Winnemucca,Hotspring,162,72'; - put '39.031,-116.666,Dianas Punch Bowl,Millett,Hotspring,138,59'; - put '39.404,-116.347,Klobe (Bartholomae) Hot Spring,Millett,Hotspring,156,69'; - put '36.975,-116.721,Hicks Hot Springs,Death Valley,Hotspring,109,43'; - put '40.178,-117.496,Home Station Ranch Hot Spring,Winnemucca,Hotspring,135,57'; - put '39.797,-118.067,Dixie Hot Springs,Reno,Hotspring,162,72'; - put '39.904,-116.588,Walti Hot Springs,Millett,Hotspring,162,72'; - put '38.981,-119.833,Walleys Hot Springs,Walker Lake,Hotspring,160,71'; - put '38.464,-115.792,Chimney Warm Spring,Lund,Hotspring,160,71'; - put '39.328,-116.858,Spencer Hot Springs,Millett,Hotspring,162,72'; - put '41.108,-117.578,Hot Springs,Mcdermitt,Hotspring,158,70'; - put '36.002,-114.742,Spring,Las Vegas,Hotspring,145,63'; - put '41.576,-115.181,Hot Creek Springs,Wells,Hotspring,151,66'; - put '40.954,-117.488,Golconda Hot Spring (South),Winnemucca,Hotspring,151,66'; - put '40.22,-116.068,Bruffeys Hot Springs,Winnemucca,Hotspring,149,65'; - put '40.249,-115.409,Smith Ranch Springs,Elko,Hotspring,149,65'; - put '41.867,-114.692,San Jacinto Ranch Spring,Wells,Hotspring,148,64'; - put '40.765,-116.04,Hot Sulphur Springs,Winnemucca,Hotspring,147,64'; - put '38.188,-116.373,Warm Springs,Tonopah,Hotspring,145,63'; - put '41.567,-118.564,Dyke Hot Springs,Vya,Hotspring,158,70'; - put '38.365,-115.867,Abel Spring,Lund,Hotspring,115,46'; - put '41.929,-114.071,Nile Spring,Wells,Hotspring,109,43'; - put '39.193,-119.752,Carson Hot Springs,Reno,Hotspring,120,49'; - put '39.512,-119.907,Lawton Hot Springs,Reno,Hotspring,120,49'; - put '39.944,-119.509,Anaho Island Spring,Reno,Hotspring,120,49'; - put '37.761,-117.632,Silverpeak Hot Spring,Goldfield,Hotspring,118,48'; - put '37.621,-114.51,Caliente Hot Springs,Caliente,Hotspring,118,48'; - put '39.058,-119.742,Saratoga Hot Spring,Reno,Hotspring,122,50'; - put '39.308,-117.552,Hot Springs,Millett,Hotspring,115,46'; - put '40.673,-116.838,Hot Springs,Winnemucca,Hotspring,122,50'; - put '39.08,-116.639,Potts Ranch Hot Springs,Millett,Hotspring,113,45'; - put '38.388,-115.866,Coyote Hole Spring,Lund,Hotspring,113,45'; - put '41.753,-118.841,Warm Springs,Vya,Hotspring,112,44'; - put '41.386,-114.165,Spring (Hot),Wells,Hotspring,111,44'; - put '40.961,-117.494,Golconda Hot Spring (North),Winnemucca,Hotspring,165,74'; - put '40.313,-117.07,Mound Springs,Winnemucca,Hotspring,109,43'; - put '40.585,-115.285,Sulphur Hot Springs,Elko,Hotspring,205,96'; - put '39.059,-119.815,Hobo Hot Springs,Reno,Hotspring,114,46'; - put '40.191,-117.107,Hot Springs,Winnemucca,Hotspring,127,53'; - put '40.819,-115.777,Hot Hole,Elko,Hotspring,133,56'; - put '39.286,-119.84,Bowers Mansion Hot Spring,Reno,Hotspring,133,56'; - put '41.809,-118.861,Painted Hills Mine,Vya,Hotspring,131,55'; - put '41.925,-118.805,Bog Hot Springs,Vya,Hotspring,131,55'; - put '41.647,-115.775,Wild Horse Hot Springs,Wells,Hotspring,129,54'; - put '40.183,-117.102,Hot Springs Ranch,Winnemucca,Hotspring,129,54'; - put '40.08,-117.604,Mccoy Springs,Winnemucca,Hotspring,120,49'; - put '41.353,-119.216,Spring (Hot),Vya,Hotspring,127,53'; - put '41.357,-119.188,Springs (Hot),Vya,Hotspring,133,56'; - put '40.198,-117.103,Hot Springs,Winnemucca,Hotspring,127,53'; - put '39.42,-119.738,Dimonte Spring,Reno,Hotspring,127,53'; - put '38.952,-115.23,Williams Hot Spring,Lund,Hotspring,127,53'; - put '41.261,-115.305,Hot Springs,Wells,Hotspring,126,52'; - put '39.041,-116.663,Hot Spring,Millett,Hotspring,124,51'; - put '41.365,-119.221,Spring (Hot),Vya,Hotspring,122,50'; - put '41.159,-114.986,"Threemile Spring, Sulphur Hot Spr",Wells,Hotspring,122,50'; - put '41.339,-119.192,Springs (Hot),Vya,Hotspring,127,53'; - put '39.893,-116.649,Little Hot Springs,Millett,Hotspring,H,H'; - put '39.787,-119.011,Bradys Hot Springs,Reno,Hotspring,209,98'; - put '41.175,-115.278,Hot Spring,Wells,Hotspring,H,H'; - put '41.145,-114.994,Hot Spring,Wells,Hotspring,H,H'; - put '40.864,-117.349,Sulphur Spring,Winnemucca,Hotspring,H,H'; - put '39.733,-119.039,Eagle Salt Works Spring,Reno,Hotspring,H,H'; - put '39.281,-118.42,Sand Springs,Reno,Hotspring,H,H'; - put '38.81,-116.397,Fish Springs,Tonopah,Hotspring,W,W'; - put '39.559,-117.427,Petersons Mill Hot Spring,Millett,Hotspring,H,H'; - put '38.339,-116.662,Warm Spring,Tonopah,Hotspring,W,W'; - put '38.859,-119.175,Hot Spring,Walker Lake,Hotspring,H,H'; - put '39.995,-117.854,Senator Fumaroles,Millett,Hotspring,B,B'; - put '39.565,-118.856,(Soda Lake Area),Reno,Hotspring,210,99'; - put '40.141,-119.687,The Needle Rocks Hot Springs,Lovelock,Hotspring,208,98'; - put '40.146,-119.673,The Needle Rocks Hot Spring,Lovelock,Hotspring,208,98'; - put '40.662,-119.365,Great Boiling Spring (Gerlach),Lovelock,Hotspring,208,98'; - put '39.388,-119.743,Steamboat Springs,Reno,Hotspring,205,96'; - put '39.866,-118.017,Dixie Comstock Mine,Reno,Hotspring,H,H'; - put '40.746,-116.689,White House Spring,Winnemucca,Hotspring,W,W'; - put '39.98,-119.502,Pyramid Island Hot Spring,Reno,Hotspring,.,.'; - put '41.934,-118.808,Warm Springs,Vya,Hotspring,W,W'; - put '41.385,-116.058,Petaini Springs,Mcdermitt,Hotspring,W,W'; - put '41.064,-115.389,Warm Springs,Wells,Hotspring,W,W'; - put '41.066,-114.99,Spring,Wells,Hotspring,W,W'; - put '41.355,-114.133,Warm Springs,Wells,Hotspring,W,W'; - put '41.148,-116.733,Hot Lake,Mcdermitt,Hotspring,H,H'; - put '40.684,-116.153,Ellison Ranch Warm Spring,Winnemucca,Hotspring,W,W'; - put '40.604,-117.648,Leach Hot Springs,Winnemucca,Hotspring,207,97'; - put '40.751,-115.035,Warm Springs,Elko,Hotspring,W,W'; - put '40.782,-115.363,Warm Spring,Elko,Hotspring,W,W'; - put '39.529,-116.388,Warm Spring,Millett,Hotspring,W,W'; - put '39.072,-115.635,Big Blue Spring,Ely,Hotspring,W,W'; - put '38.95,-119.388,Spring,Walker Lake,Hotspring,W,W'; - put '38.965,-118.689,Double Spring,Walker Lake,Hotspring,W,W'; - put '38.458,-117.303,Indian Springs,Tonopah,Hotspring,W,W'; - put '40.592,-116.157,Raine Ranch Springs,Winnemucca,Hotspring,W,W'; - put '39.941,-116.681,Hot Springs,Millett,Hotspring,180,82'; - put '40.567,-116.588,Beowawe Hot Springs (The Geysers),Winnemucca,Hotspring,208,98'; - put '40.761,-117.492,Hot Springs,Winnemucca,Hotspring,185,85'; - put '40.653,-119.378,Mud Springs,Lovelock,Hotspring,184,84'; - put '38.768,-119.174,Wilson Hot Spring,Walker Lake,Hotspring,183,84'; - put '41.921,-118.709,Baltazor Hot Spring,Vya,Hotspring,181,83'; - put '40.857,-119.328,Fly Ranch (Wards) Hot Springs,Lovelock,Hotspring,180,82'; - put '39.597,-119.11,Patua Hot Springs (Fernley),Reno,Hotspring,187,86'; - put '39.028,-117.136,Mcleod Ranch Hot Spring,Millett,Hotspring,180,82'; - put '40.316,-116.433,Hot Spring,Winnemucca,Hotspring,186,86'; - put '38.521,-116.365,Hot Creek Ranch Hot Spring,Tonopah,Hotspring,180,82'; - put '41.051,-119.028,Double Hot Springs,Vya,Hotspring,178,81'; - put '40.003,-117.718,Hyder Hot Springs,Winnemucca,Hotspring,176,80'; - put '39.665,-114.807,Monte Neva Hot Springs,Ely,Hotspring,176,80'; - put '40.368,-117.327,Buffalo Valley Hot Springs,Winnemucca,Hotspring,174,79'; - put '40.699,-116.133,Hot Springs (Carlin),Winnemucca,Hotspring,174,79'; - put '41.052,-118.717,Macfarlane Hot Spring,Vya,Hotspring,170,77'; - put '39.342,-118.578,Borax Spring,Reno,Hotspring,180,82'; - put '39.484,-119.804,Moana Springs,Reno,Hotspring,199,93'; - put '41.243,-114.947,Twelvemile Spring,Wells,Hotspring,102,39'; - put '39.38,-119.74,Steamboat Springs,Reno,Hotspring,205,96'; - put '39.558,-116.36,Bartine Hot Springs,Millett,Hotspring,108,42'; - put '39.954,-117.917,Fumaroles,Millett,Hotspring,204,96'; - put '40.389,-119.402,Hot Seeps (San Emidio Desert),Lovelock,Hotspring,203,95'; - put '38.822,-117.183,Darroughs Hot Springs,Tonopah,Hotspring,203,95'; - put '40.088,-117.725,Sou (Seven Devils) Hot Springs,Winnemucca,Hotspring,185,85'; - put '41.363,-118.788,Pinto Hot Springs,Vya,Hotspring,199,93'; - put '40.408,-117.883,Kyle Hot Springs,Winnemucca,Hotspring,171,77'; - put '41.357,-118.809,West Pinto Hot Spring,Vya,Hotspring,198,92'; - put '39.316,-117.549,Hot Springs,Millett,Hotspring,198,92'; - put '41.468,-116.15,Hot Sulphur Springs (Tuscarora),Mcdermitt,Hotspring,194,90'; - put '40.813,-115.778,Elko Hot Spring,Elko,Hotspring,190,88'; - put '39.208,-118.723,"Lee Hot Springs, Allen Springs",Reno,Hotspring,190,88'; - put '40.262,-119.379,Boiling Springs,Lovelock,Hotspring,187,86'; - put '40.77,-119.113,Butte Springs (Trego Hot Springs),Lovelock,Hotspring,187,86'; - put '39.161,-119.183,Wabuska Hot Springs,Reno,Hotspring,201,94'; - put '39.814,-115.612,Giocoecha Warm Springs,Ely,Hotspring,76,24'; - put '36.389,-114.433,Blue Point Spring,Las Vegas,Hotspring,82,28'; - put '37.016,-117.211,Seep,Goldfield,Hotspring,77,25'; - put '37.751,-116.274,Cedar Spring,Goldfield,Hotspring,77,25'; - put '37.896,-114.227,Flatnose Ranch Spring,Caliente,Hotspring,77,25'; - put '36.207,-115.983,Pahrump (Bennetts) Spring,Las Vegas,Hotspring,77,25'; - put '41.775,-115.921,Rizzi Ranch Hot Spring,Wells,Hotspring,106,41'; - put '35.944,-114.731,Hot Spring,Kingman,Hotspring,78,26'; - put '41.884,-114.117,Gambles Hole,Wells,Hotspring,104,40'; - put '36.565,-115.671,Indian Springs,Las Vegas,Hotspring,78,26'; - put '39.547,-114.915,Campbell Ranch Springs,Ely,Hotspring,76,24'; - put '38.423,-115.022,Flag Springs,Lund,Hotspring,75,24'; - put '38.44,-115.011,Butterfield Springs,Lund,Hotspring,75,24'; - put '37.997,-118.039,Fish Spring,Mariposa,Hotspring,75,24'; - put '37.029,-116.719,Springs,Goldfield,Hotspring,75,24'; - put '36.426,-116.411,Ash Tree Spring,Death Valley,Hotspring,75,24'; - put '36.033,-115.888,Browns Spring,Las Vegas,Hotspring,75,24'; - put '41.322,-119.206,Springs,Vya,Hotspring,75,24'; - put '41.706,-118.261,Ninemile Springs,Vya,Hotspring,79,26'; - put '35.964,-114.743,Hot Spring,Kingman,Hotspring,82,28'; - put '41.763,-118.279,Fivemile Spring,Vya,Hotspring,81,27'; - put '39.457,-119.722,Huffaker Springs,Reno,Hotspring,81,27'; - put '38.992,-117.042,Charnock (Big Blue) Springs,Tonopah,Hotspring,80,27'; - put '36.402,-116.302,Davis Ranch Springs,Death Valley,Hotspring,81,27'; - put '36.45,-116.313,Spring,Death Valley,Hotspring,81,27'; - put '39.792,-114.692,Lower Shellbourne Spring,Ely,Hotspring,77,25'; - put '41.338,-119.168,Springs,Vya,Hotspring,79,26'; - put '41.022,-119.275,Caine Spring,Vya,Hotspring,73,23'; - put '41.05,-117.1,Hot Springs Ranch Springs,Mcdermitt,Hotspring,79,26'; - put '40.079,-116.035,Flynn Ranch Springs,Winnemucca,Hotspring,78,26'; - put '40.325,-116.058,Hot Springs,Winnemucca,Hotspring,79,26'; - put '36.414,-116.292,Spring,Death Valley,Hotspring,79,26'; - put '36.173,-115.191,Las Vegas Springs,Las Vegas,Hotspring,79,26'; - put '36.174,-115.479,White Rock Spring,Las Vegas,Hotspring,78,26'; - put '36.565,-115.623,Spring,Las Vegas,Hotspring,79,26'; - put '36.491,-116.342,"Fairbanks Spring, Soda Spring",Death Valley,Hotspring,81,27'; - put '38.654,-114.633,Geyser Ranch Springs,Lund,Hotspring,70,21'; - put '36.363,-116.271,Bole Spring,Death Valley,Hotspring,72,22'; - put '36.999,-116.706,Spring,Death Valley,Hotspring,72,22'; - put '36.942,-115.425,Ash Creek Spring,Las Vegas,Hotspring,72,22'; - put '38.796,-119.65,Doud Springs,Walker Lake,Hotspring,70,21'; - put '38.622,-115.047,Emigrant Springs,Lund,Hotspring,70,21'; - put '38.927,-115.082,Preston Springs,Lund,Hotspring,70,21'; - put '36.147,-115.893,Manse Ranch Spring,Las Vegas,Hotspring,75,24'; - put '38.645,-114.632,Geyser Ranch Springs,Lund,Hotspring,70,21'; - put '38.574,-115.522,Tom Spring,Lund,Hotspring,72,22'; - put '38.671,-114.628,Geyser Ranch Springs,Lund,Hotspring,70,21'; - put '37.783,-114.528,Bennett Springs,Caliente,Hotspring,70,21'; - put '37.86,-114.321,Delmues Springs,Caliente,Hotspring,70,21'; - put '36.408,-116.313,Davis Ranch Spring,Death Valley,Hotspring,70,21'; - put '36.567,-114.446,Seep,Las Vegas,Hotspring,70,21'; - put '41.369,-114.187,Gamble Spring,Wells,Hotspring,69,20'; - put '39.901,-115.868,Thompson Ranch Spring,Ely,Hotspring,68,20'; - put '38.633,-114.638,Wambolt Springs,Lund,Hotspring,70,21'; - put '37.906,-118.171,Sand Spring,Mariposa,Hotspring,74,23'; - put '36.486,-114.329,Springs,Las Vegas,Hotspring,77,25'; - put '41.354,-119.116,Mustang Springs,Vya,Hotspring,73,23'; - put '41.746,-119.791,Warm Springs,Vya,Hotspring,73,23'; - put '41.258,-118.937,Cane Springs,Vya,Hotspring,74,23'; - put '40.103,-119.884,Fish Springs,Lovelock,Hotspring,73,23'; - put '39.853,-119.719,Spring,Reno,Hotspring,73,23'; - put '39.832,-116.069,Sulphur Spring,Millett,Hotspring,74,23'; - put '36.363,-116.263,Spring,Death Valley,Hotspring,72,22'; - put '38.554,-115.531,Kate Spring,Lund,Hotspring,73,23'; - put '37.074,-116.691,Spring,Goldfield,Hotspring,72,22'; - put '37.979,-117.993,Gap Spring,Goldfield,Hotspring,73,23'; - put '41.591,-119.862,Twin (Vya) Spring,Vya,Hotspring,71,22'; - put '40.763,-119.172,Coyote Spring,Lovelock,Hotspring,72,22'; - put '40.127,-116.884,Springs,Winnemucca,Hotspring,72,22'; - put '40.187,-116.805,Spring,Winnemucca,Hotspring,72,22'; - put '40.967,-114.515,Johnson Ranch Springs,Elko,Hotspring,72,22'; - put '36.205,-115.141,Kyle Spring,Las Vegas,Hotspring,75,24'; - put '39.8,-114.653,Upper Shellbourne Spring,Ely,Hotspring,74,23'; - put '36.428,-116.303,Button Springs,Death Valley,Hotspring,93,34'; - put '38.383,-115.153,Hot Creek Ranch Spring,Lund,Hotspring,90,32'; - put '39.283,-114.866,Lackawanna Hot Springs,Ely,Hotspring,95,35'; - put '38.532,-116.465,Upper Warm Spring,Tonopah,Hotspring,95,35'; - put '38.823,-116.717,South Mosquito Creek Ranch Springs,Tonopah,Hotspring,95,35'; - put '40.829,-117.306,Brooks Spring,Winnemucca,Hotspring,93,34'; - put '40.992,-117.763,Spring,Winnemucca,Hotspring,93,34'; - put '41.971,-114.574,Warm Springs,Wells,Hotspring,95,35'; - put '38.95,-115.7,Big Warm Spring,Lund,Hotspring,93,34'; - put '37.463,-115.192,Ash Springs,Caliente,Hotspring,97,36'; - put '36.464,-116.319,Parent Springs,Death Valley,Hotspring,93,34'; - put '38.352,-115.181,Moon River Spring,Lund,Hotspring,92,33'; - put '36.402,-116.274,"Point of Rocks Springs, King Sprin",Death Valley,Hotspring,91,33'; - put '36.421,-116.322,Crystal Pool,Death Valley,Hotspring,91,33'; - put '36.425,-116.291,Devils Hole,Death Valley,Hotspring,92,33'; - put '39.068,-119.786,Springs,Reno,Hotspring,90,32'; - put '38.954,-117.049,Big Blue (A) Spring,Tonopah,Hotspring,90,32'; - put '40.087,-114.647,Collar And Elbow Spring,Elko,Hotspring,93,34'; - put '36.378,-114.443,Rogers Spring,Las Vegas,Hotspring,82,28'; - put '39.943,-116.073,Shipley Hot Spring,Millett,Hotspring,106,41'; - put '38.698,-116.435,"Upper Warm Spring, Warm Spring",Tonopah,Hotspring,106,41'; - put '41.53,-118.57,Spring,Vya,Hotspring,104,40'; - put '41.877,-115.628,Rowland Hot Springs,Wells,Hotspring,104,40'; - put '40.035,-117.604,Lower Ranch Hot Springs,Winnemucca,Hotspring,104,40'; - put '40.187,-116.79,Chillis Hot Spring,Winnemucca,Hotspring,102,39'; - put '39.988,-116.044,Siri Ranch Spring,Millett,Hotspring,95,35'; - put '39.421,-119.758,Zolezzi Spring,Reno,Hotspring,102,39'; - put '38.531,-116.405,Old Dugan Ranch Hot Springs,Tonopah,Hotspring,102,39'; - put '36.968,-116.723,Burrell Hot Spring,Death Valley,Hotspring,102,39'; - put '38.343,-118.103,Soda Springs,Walker Lake,Hotspring,100,38'; - put '38.556,-115.767,"Lockes Big Spring, Hay Corral Spr",Lund,Hotspring,100,38'; - put '38.594,-115.138,Moorman Spring,Lund,Hotspring,100,38'; - put '38.398,-115.862,Storm Spring,Lund,Hotspring,99,37'; - put '41.19,-115.287,Hot Spring,Wells,Hotspring,97,36'; - put '37.822,-117.48,Pearl Hot Springs,Goldfield,Hotspring,97,36'; - put '39.159,-119.737,Nevada State Prison Spring,Reno,Hotspring,75,24'; - put '40.025,-117.646,Spring,Winnemucca,Hotspring,83,28'; - put '40.83,-119.538,Springs,Lovelock,Hotspring,84,29'; - put '39.442,-119.743,Double Diamond Spring,Reno,Hotspring,84,29'; - put '39.413,-114.779,Mcgill Spring,Ely,Hotspring,84,29'; - put '39.458,-114.756,Schoolhouse Spring,Ely,Hotspring,84,29'; - put '36.375,-116.274,Big (Ash Meadows) Spring,Death Valley,Hotspring,83,28'; - put '38.292,-114.272,Hammond Ranch Spring,Lund,Hotspring,84,29'; - put '41.398,-119.165,Spring,Vya,Hotspring,84,29'; - put '41.732,-119.785,Seeps (Hills Warm Spring),Vya,Hotspring,83,28'; - put '38.563,-115.528,Blue Eagle Springs,Lund,Hotspring,84,29'; - put '40.873,-117.937,Rose Creek Spring,Winnemucca,Hotspring,83,28'; - put '39.917,-114.667,Spring,Ely,Hotspring,83,28'; - put '36.39,-116.278,Jack Rabbit Spring,Death Valley,Hotspring,82,28'; - put '36.437,-116.206,Spring,Death Valley,Hotspring,82,28'; - put '38.937,-115.695,Little Warm Spring,Lund,Hotspring,90,32'; - put '36.479,-116.326,Rogers Spring,Death Valley,Hotspring,82,28'; - put '40.29,-116.049,Carlotti Ranch Springs,Winnemucca,Hotspring,102,39'; - put '36.468,-116.325,Longstreet Spring,Death Valley,Hotspring,82,28'; - put '36.722,-114.716,Muddy Spring,Las Vegas,Hotspring,90,32'; - put '37.532,-115.233,Crystal Springs,Caliente,Hotspring,90,32'; - put '37.598,-115.215,Hiko Spring,Caliente,Hotspring,90,32'; - put '36.404,-116.383,Spring,Death Valley,Hotspring,90,32'; - put '37.996,-116.389,Reveille Mill Spring,Goldfield,Hotspring,84,29'; - put '36.71,-114.714,Moapa Warm Springs,Las Vegas,Hotspring,90,32'; - put '35.982,-114.748,Hot Springs,Kingman,Hotspring,86,30'; - put '40.929,-116.895,Izzenhood Ranch Springs,Winnemucca,Hotspring,88,31'; - put '37.807,-114.38,Panaca Spring,Caliente,Hotspring,88,31'; - put '36.942,-116.729,Spring,Death Valley,Hotspring,88,31'; - put '41.98,-114.376,Hot Spring,Wells,Hotspring,86,30'; - put '36.433,-116.308,Scruggs Springs,Death Valley,Hotspring,86,30'; - put '40.952,-114.751,Ralphs Warm Springs,Elko,Hotspring,86,30'; - put '39.526,-118.876,Soda Lake,Reno,Hotspring,86,30'; - put '38.027,-116.683,Spring,Tonopah,Hotspring,86,30'; - put '37.741,-115.753,Sand Spring,Caliente,Hotspring,86,30'; - put '36.918,-116.744,Beatty Municipal Spring,Death Valley,Hotspring,88,31'; - put '38.255,-116.829,Saulsbury Warm Spring,Tonopah,Hotspring,86,30'; - put '42.48,-73.37,Lebanon Spring,Albany,Hotspring,72,22'; - put '44.241,-122.058,Bigelow Hot Springs,Salem,Hotspring,142,61'; - put '44.862,-121.201,Kahneeta Hot Springs,Bend,Hotspring,126,52'; - put '44.927,-117.939,Radium Hot Springs,Baker,Hotspring,135,57'; - put '44.354,-118.574,Blue Mountain Hot Springs,Canyon City,Hotspring,136,58'; - put '44.936,-122.173,Bagby Hot Springs,Salem,Hotspring,136,58'; - put '43.944,-118.136,Beulah Hot Springs,Burns,Hotspring,140,60'; - put '43.763,-117.156,Mitchell Butte Hot Spring,Boise,Hotspring,144,62'; - put '42.116,-121.287,Oregon Hot Springs (Big Hot Spring,Klamath Falls,Hotspring,142,61'; - put '45.151,-118.659,Lehman Springs,Pendleton,Hotspring,142,61'; - put '43.719,-121.209,East Lake Hot Springs,Crescent,Hotspring,144,62'; - put '43.469,-118.202,Luce Hot Springs,Burns,Hotspring,145,63'; - put '45.018,-117.625,Medical Hot Springs,Grangeville,Hotspring,140,60'; - put '44.867,-121.228,Springs,Bend,Hotspring,125,52'; - put '42.188,-118.383,Flagstaff Butte Hot Spring,Adel,Hotspring,126,52'; - put '44.451,-119.105,Mount Vernon Hot Springs,Canyon City,Hotspring,121,49'; - put '42.977,-117.061,Canters Hot Spring,Jordan Valley,Hotspring,120,49'; - put '43.294,-122.367,Umpqua Hot Springs,Roseburg,Hotspring,117,47'; - put '44.002,-119.647,Weberg Hot Spring,Canyon City,Hotspring,115,46'; - put '43.739,-117.178,Deer Butte Hot Spring,Boise,Hotspring,115,46'; - put '43.795,-117.958,Jonesboro Warm Spring,Boise,Hotspring,112,45'; - put '42.075,-119.927,Hallinan Spring,Adel,Hotspring,113,45'; - put '42.297,-119.776,Fisher Hot Springs,Adel,Hotspring,154,68'; - put '45.013,-117.885,Kropp Hot Spring,Grangeville,Hotspring,109,43'; - put '42.221,-120.368,Hunters Hot Springs,Klamath Falls,Hotspring,205,96'; - put '44.083,-122.233,Cougar Reservoir Hot Springs,Salem,Hotspring,111,44'; - put '44.023,-117.46,Neal Hot Springs,Baker,Hotspring,189,87'; - put '42.431,-121.963,Eagle Point Spring,Klamath Falls,Hotspring,95,35'; - put '43.689,-122.372,Kitson Hot Springs,Roseburg,Hotspring,109,43'; - put '44.813,-117.765,Spring (Hot),Baker,Hotspring,W,W'; - put '43.776,-118.047,Warm Spring,Burns,Hotspring,W,W'; - put '43.793,-118.472,Sitz Warm Spring,Burns,Hotspring,W,W'; - put '43.86,-118.288,Altnow Hot Spring,Burns,Hotspring,W,W'; - put '43.893,-117.596,Springs,Boise,Hotspring,W,W'; - put '45.206,-117.912,Union Station Hot Springs,Grangeville,Hotspring,H,H'; - put '44.208,-117.455,Jamieson Hot Springs,Baker,Hotspring,H,H'; - put '42.338,-118.602,Hot Springs,Adel,Hotspring,207,97'; - put '44.782,-121.975,Breitenbush Hot Springs,Bend,Hotspring,198,92'; - put '42.219,-119.877,Warner Valley Ranch,Adel,Hotspring,198,92'; - put '42.156,-120.345,Barry Ranch Hot Springs,Klamath Falls,Hotspring,190,88'; - put '44.193,-122.049,Belknap Springs,Salem,Hotspring,160,71'; - put '45.021,-122.009,Austin Hot Springs,Vancouver,Hotspring,186,86'; - put '42.676,-118.344,Mickey Springs,Adel,Hotspring,187,86'; - put '44.153,-122.098,Foley Springs,Salem,Hotspring,178,81'; - put '45.244,-117.958,Hot Lake Springs,Grangeville,Hotspring,176,80'; - put '42.544,-118.533,Alvord Hot Springs,Adel,Hotspring,174,79'; - put '43.441,-118.638,Crane Hot Springs,Burns,Hotspring,172,78'; - put '42.226,-119.881,Crump Geyser (Crump Spring),Adel,Hotspring,172,78'; - put '43.727,-117.203,Snively Hot Spring,Boise,Hotspring,170,77'; - put '42.174,-121.615,Olene Gap Hot Springs,Klamath Falls,Hotspring,165,74'; - put '43.708,-122.288,Mccredie Springs,Roseburg,Hotspring,163,73'; - put '43.982,-117.233,Vale Hot Springs,Boise,Hotspring,163,73'; - put '42.162,-120.344,Leithead Hot Spring,Klamath Falls,Hotspring,162,72'; - put '45.372,-121.697,Mount Hood Fumaroles,The Dalles,Hotspring,194,90'; - put '43.264,-119.015,Dunn Spring,Burns,Hotspring,70,21'; - put '42.873,-122.167,Annie Spring,Medford,Hotspring,77,25'; - put '42.133,-121.219,Wilkersons Hot Spring,Klamath Falls,Hotspring,76,24'; - put '43.272,-119.293,Basque Spring,Burns,Hotspring,74,23'; - put '43.276,-119.34,Double O Spring,Burns,Hotspring,74,23'; - put '44.073,-119.427,Brisbois Ranch Springs,Canyon City,Hotspring,72,22'; - put '43.265,-119.276,Johnson Spring,Burns,Hotspring,72,22'; - put '43.281,-119.311,Double O Barnyard Spring,Burns,Hotspring,72,22'; - put '43.501,-119.091,Roadland Spring,Burns,Hotspring,72,22'; - put '43.529,-119.081,Goodman Spring,Burns,Hotspring,72,22'; - put '43.703,-117.19,South Black Willow Spring,Boise,Hotspring,71,22'; - put '42.307,-119.875,Moss Ranch Spring,Adel,Hotspring,72,22'; - put '43.758,-118.067,Juntura Warm Spring 1,Burns,Hotspring,77,25'; - put '43.732,-121.252,Paulina Springs,Crescent,Hotspring,70,21'; - put '42.176,-121.828,Howard Holiday,Klamath Falls,Hotspring,77,25'; - put '43.477,-119.075,Baker Spring,Burns,Hotspring,70,21'; - put '42.178,-121.801,Hardboard Spring,Klamath Falls,Hotspring,70,21'; - put '42.325,-120.327,White Rock Ranch Hot Spring,Klamath Falls,Hotspring,71,21'; - put '43.252,-119.258,Hughet Spring,Burns,Hotspring,68,20'; - put '42.38,-120.33,Bean Hot Spring,Klamath Falls,Hotspring,69,20'; - put '42.933,-120.642,Lost Cabin Spring,Klamath Falls,Hotspring,68,20'; - put '42.998,-120.725,Buckhorn Creek Springs,Klamath Falls,Hotspring,68,20'; - put '42.688,-117.905,Tudors Spring,Jordan Valley,Hotspring,68,20'; - put '42.756,-117.55,Scott Spring,Jordan Valley,Hotspring,68,20'; - put '42.725,-120.646,Summer Lake Hot Spring,Klamath Falls,Hotspring,109,43'; - put '43.757,-118.092,Juntura Warm Spring 2,Burns,Hotspring,95,35'; - put '44.374,-118.738,Limekiln Hot Spring,Canyon City,Hotspring,70,21'; - put '42.221,-122.742,Jackson Hot Springs,Medford,Hotspring,95,35'; - put '44.892,-119.141,Ritter Hot Springs,Canyon City,Hotspring,106,41'; - put '43.808,-122.309,Wall Creek Warm Springs,Roseburg,Hotspring,106,41'; - put '43.395,-118.308,Springs (Hot),Burns,Hotspring,106,41'; - put '43.302,-117.383,Hot Spring,Boise,Hotspring,106,41'; - put '44.28,-118.956,Joaquin Miller Hot Springs,Canyon City,Hotspring,104,40'; - put '42.501,-119.693,Antelope Hot Springs,Adel,Hotspring,104,40'; - put '45.129,-118.738,Hidaway Springs,Pendleton,Hotspring,100,38'; - put '44.975,-118.044,Fisher Hot Springs,Canyon City,Hotspring,99,37'; - put '44.033,-117.449,Bully Creek Spring,Baker,Hotspring,99,37'; - put '42.93,-120.798,Pardon Warm Spring,Klamath Falls,Hotspring,76,24'; - put '42.327,-118.602,Borax Lake (Hot Lake),Adel,Hotspring,97,36'; - put '42.161,-121.627,Crystal Spring,Klamath Falls,Hotspring,78,26'; - put '45.741,-118.233,Bingham Springs,Pendleton,Hotspring,93,34'; - put '42.889,-118.898,Fivemile Spring (Hoghouse Hot Sprs,Adel,Hotspring,80,27'; - put '43.54,-119.081,Millpond Hot Spring,Burns,Hotspring,79,26'; - put '45.891,-116.873,Cook Creek Hot Spring,Grangeville,Hotspring,97,36'; - put '45.295,-121.731,Swim Warm Springs,The Dalles,Hotspring,79,26'; - put '42.04,-120.924,Warm Spring,Klamath Falls,Hotspring,92,33'; - put '44.779,-117.811,Sam O Spring,Baker,Hotspring,80,27'; - put '44.538,-117.417,Nelson Spring,Baker,Hotspring,80,27'; - put '45.631,-119.703,Well Spring,Pendleton,Hotspring,80,27'; - put '42.287,-119.867,Moss Ranch Springs,Adel,Hotspring,83,28'; - put '45.061,-118.455,Warm Mineral Spring,Pendleton,Hotspring,83,28'; - put '43.95,-119.634,Warm Springs,Burns,Hotspring,84,29'; - put '45.295,-117.806,Warm Spring,Grangeville,Hotspring,85,29'; - put '42.815,-118.899,Warm Springs,Adel,Hotspring,89,32'; - put '43.452,-103.508,Hot Brook Springs,Hot Springs,Hotspring,75,24'; - put '43.442,-103.481,Hot Springs,Hot Springs,Hotspring,87,31'; - put '29.178,-102.953,Rio Grande Village Spring,Emory Peak,Hotspring,97,36'; - put '30.823,-105.315,Indian Hot Springs,Marfa,Hotspring,117,47'; - put '30.038,-104.598,Ruidosa Hot Springs,Marfa,Hotspring,113,45'; - put '29.182,-102.992,Hot Springs,Emory Peak,Hotspring,106,41'; - put '30.21,-104.562,Capote Springs,Marfa,Hotspring,99,37'; - put '30.133,-104.602,Nixon Spring,Marfa,Hotspring,90,32'; - put '29.787,-104.462,Springs (Las Cienegas),Presidio,Hotspring,86,30'; - put '30.861,-105.34,Red Bull Spring,Marfa,Hotspring,99,37'; - put '38.85,-112.49,Hatton Hot Spring,Richfield,Hotspring,100,38'; - put '40.176,-111.801,Bird Island,Salt Lake City,Hotspring,86,30'; - put '41.917,-111.958,Gancheff Spring,Ogden,Hotspring,88,31'; - put '37.942,-112.438,Lefevre,Cedar City,Hotspring,90,32'; - put '37.335,-113.687,Veyo Hot Spring,Cedar City,Hotspring,90,32'; - put '40.332,-111.891,Fault Zone Spring,Salt Lake City,Hotspring,90,32'; - put '40.146,-111.806,Lincoln Point Warm Springs,Salt Lake City,Hotspring,90,32'; - put '38.186,-112.912,Us Blm,Richfield,Hotspring,91,33'; - put '41.833,-112.454,Blue Creek Spring,Brigham City,Hotspring,82,28'; - put '40.526,-111.488,Midway Hot Springs,Salt Lake City,Hotspring,100,38'; - put '40.525,-111.468,Midway Hot Springs,Salt Lake City,Hotspring,104,40'; - put '40.038,-111.529,Castilla Springs,Salt Lake City,Hotspring,104,40'; - put '38.217,-112.904,Dotsons (Radium) Warm Spring,Richfield,Hotspring,91,33'; - put '40.465,-109.221,Split Mountain Warm Springs,Vernal,Hotspring,86,30'; - put '40.788,-112.017,Hobo Warm Spring,Tooele,Hotspring,84,29'; - put '40.788,-111.899,Wasatch Hot Springs,Salt Lake City,Hotspring,108,42'; - put '39.35,-113.515,Tule Spring,Delta,Hotspring,82,28'; - put '39.424,-113.485,Coyote Spring,Delta,Hotspring,82,28'; - put '39.842,-113.392,Fish Springs,Delta,Hotspring,82,28'; - put '39.887,-113.413,North Springs,Delta,Hotspring,82,28'; - put '41.756,-113.603,Warm Spring,Brigham City,Hotspring,81,27'; - put '41.038,-111.656,Como Springs,Ogden,Hotspring,81,27'; - put '40.397,-112.421,Morgans Warm Spring,Tooele,Hotspring,80,27'; - put '39.464,-114.038,Gandy Warm Springs,Ely,Hotspring,81,27'; - put '40.447,-110.828,Warm Springs,Salt Lake City,Hotspring,79,26'; - put '37.7,-110.421,Warm Spring,Escalante,Hotspring,79,26'; - put '40.502,-114.038,Blue Lake Spring,Elko,Hotspring,84,29'; - put '38.503,-112.849,Roosevelt Hot Springs,Richfield,Hotspring,133,56'; - put '38.774,-112.096,Richfield Warm Springs,Richfield,Hotspring,73,23'; - put '40.488,-111.911,Crystal Hot Springs,Salt Lake City,Hotspring,187,86'; - put '38.186,-113.197,Thermo Hot Springs,Richfield,Hotspring,185,85'; - put '38.172,-113.204,Thermo Hot Springs,Richfield,Hotspring,181,83'; - put '39.613,-112.729,"Baker (Abraham, Crater) Hot Spring",Delta,Hotspring,180,82'; - put '38.639,-112.098,Red Hill Hot Spring,Richfield,Hotspring,171,77'; - put '38.633,-112.107,Monroe (Cooper) Hot Springs,Richfield,Hotspring,169,76'; - put '38.613,-112.202,Joseph Hot Springs,Richfield,Hotspring,147,64'; - put '39.906,-113.43,Wilson Health Springs,Delta,Hotspring,142,61'; - put '41.138,-112.175,Hooper Hot Springs,Brigham City,Hotspring,140,60'; - put '41.338,-112.031,Utah Hot Springs,Brigham City,Hotspring,138,59'; - put '38.864,-112.506,Meadow Hot Springs,Richfield,Hotspring,106,41'; - put '40.815,-111.918,Becks Hot Spring,Salt Lake City,Hotspring,133,56'; - put '37.189,-113.272,Dixie (Laverkin) Hot Springs,Cedar City,Hotspring,108,42'; - put '41.659,-112.087,Crystal (Madsens) Hot Springs,Brigham City,Hotspring,129,54'; - put '41.855,-112.158,Udy Hot Springs,Brigham City,Hotspring,124,51'; - put '41.578,-112.23,Stinking Hot Springs,Brigham City,Hotspring,118,48'; - put '40.517,-111.475,Midway Hot Spring,Salt Lake City,Hotspring,115,46'; - put '40.536,-111.478,Warm Ditch Spring,Salt Lake City,Hotspring,115,46'; - put '40.35,-111.905,Saratoga Hot Springs,Salt Lake City,Hotspring,111,44'; - put '40.353,-111.895,Crater Hot Spring,Salt Lake City,Hotspring,111,44'; - put '41.901,-112.999,Coyote Spring,Brigham City,Hotspring,109,43'; - put '41.687,-113.986,Spring (Hot),Brigham City,Hotspring,108,42'; - put '41.582,-112.256,Little Mountain Hot Spring,Brigham City,Hotspring,108,42'; - put '41.822,-113.263,L.G. Carter Springs,Brigham City,Hotspring,77,25'; - put '41.236,-111.924,Ogden Hot Spring,Ogden,Hotspring,135,57'; - put '37.178,-113.634,Snow Spring,Cedar City,Hotspring,70,21'; - put '38.34,-113.22,Woodhouse Spring,Richfield,Hotspring,72,22'; - put '38.155,-112.901,Willow Spring,Richfield,Hotspring,72,22'; - put '38.56,-112.578,Sulphurdale,Richfield,Hotspring,72,22'; - put '38.981,-111.829,Salt Spring,Salina,Hotspring,72,22'; - put '37.174,-112.535,Red Canyon,Cedar City,Hotspring,72,22'; - put '41.808,-113.327,W.R. Carter Springs,Brigham City,Hotspring,70,21'; - put '41.818,-113.311,Larson Springs,Brigham City,Hotspring,70,21'; - put '41.829,-113.654,Head Spring,Brigham City,Hotspring,70,21'; - put '40.653,-112.907,Redlum Spring,Tooele,Hotspring,70,21'; - put '40.458,-111.929,Camp Williams,Salt Lake City,Hotspring,70,21'; - put '40.647,-112.524,Grantsville Warm Springs,Tooele,Hotspring,77,25'; - put '39.183,-111.691,Sterling (Peacock) Warm Spring,Price,Hotspring,72,22'; - put '39.246,-111.645,Livingston Warm Springs,Price,Hotspring,73,23'; - put '38.138,-112.863,Big Maple Spring,Richfield,Hotspring,70,21'; - put '37.393,-113.61,Irvine Spring,Cedar City,Hotspring,70,21'; - put '41.563,-113.954,Kimber (Rose) Spring,Brigham City,Hotspring,68,20'; - put '41.614,-113.613,Warm Spring,Brigham City,Hotspring,68,20'; - put '41.328,-111.826,Patio Springs,Ogden,Hotspring,68,20'; - put '40.172,-112.426,Davis,Tooele,Hotspring,68,20'; - put '40.118,-111.337,Diamond Fork Warm Springs,Salt Lake City,Hotspring,68,20'; - put '39.249,-113.877,Knoll Springs,Delta,Hotspring,68,20'; - put '39.403,-113.863,Twin Springs,Delta,Hotspring,68,20'; - put '39.788,-111.881,Ray Lunt Spring,Price,Hotspring,68,20'; - put '38.762,-112.87,Springs,Richfield,Hotspring,68,20'; - put '38.77,-112.871,Coyote Spring,Richfield,Hotspring,68,20'; - put '37.937,-112.424,Tebbs,Cedar City,Hotspring,68,20'; - put '37.096,-113.447,Warner Valley Spring,Cedar City,Hotspring,70,21'; - put '40.565,-112.738,Deseret Livestock South Springs,Tooele,Hotspring,73,23'; - put '37.158,-113.399,Virgin River Spring,Cedar City,Hotspring,70,21'; - put '39.899,-112.045,Springs,Delta,Hotspring,72,22'; - put '38.603,-112.111,Johnson Warm Spring,Richfield,Hotspring,77,25'; - put '41.722,-112.266,Bothwell Warm Springs,Brigham City,Hotspring,75,24'; - put '40.538,-112.747,Deseret Livestock,Tooele,Hotspring,75,24'; - put '40.733,-112.621,Utah Fish And Game Dept,Tooele,Hotspring,75,24'; - put '40.228,-111.867,Warm Springs,Salt Lake City,Hotspring,75,24'; - put '37.137,-113.513,Warm Spring,Cedar City,Hotspring,75,24'; - put '37.138,-113.528,Green Spring,Cedar City,Hotspring,75,24'; - put '37.166,-113.383,Berry Springs,Cedar City,Hotspring,75,24'; - put '41.834,-112.054,Cutler Warm Spring,Brigham City,Hotspring,73,23'; - put '40.614,-112.709,Horseshoe Springs,Tooele,Hotspring,73,23'; - put '41.239,-112.413,Compton Spring,Brigham City,Hotspring,72,22'; - put '40.743,-112.642,Big Warm Springs,Tooele,Hotspring,72,22'; - put '40.558,-112.739,Deseret Livestock South Spring,Tooele,Hotspring,72,22'; - put '40.39,-112.424,Russells Warm Springs,Tooele,Hotspring,72,22'; - put '41.831,-113.391,Pugsley,Brigham City,Hotspring,73,23'; - put '41.449,-112.442,Poulsen Spring (Salt),Brigham City,Hotspring,72,22'; - put '40.167,-111.622,Wood Springs,Salt Lake City,Hotspring,73,23'; - put '40.234,-111.865,Warm Springs,Salt Lake City,Hotspring,77,25'; - put '39.955,-111.858,Goshen Warm Srings,Price,Hotspring,73,23'; - put '39.334,-113.518,South Tule Spring,Delta,Hotspring,77,25'; - put '39.616,-112.803,Fumarole Butte,Delta,Hotspring,73,23'; - put '40.545,-111.928,East Jordan Canal,Salt Lake City,Hotspring,73,23'; - put '41.643,-112.281,Springs,Brigham City,Hotspring,72,22'; - put '37.29,-80.619,New River White Sulphur Springs,Bluefield,Hotspring,85,29'; - put '37.997,-79.83,Hot Springs,Roanoke,Hotspring,106,41'; - put '37.898,-79.462,Rockbridge Baths,Roanoke,Hotspring,72,22'; - put '38.055,-79.78,Warm Springs,Charlottesvill,Hotspring,95,35'; - put '37.963,-79.861,Healing Springs,Roanoke,Hotspring,86,30'; - put '38.238,-79.65,Bragg Spring,Charlottesvill,Hotspring,75,24'; - put '37.645,-80.238,Sweet Chalybeate Spring,Bluefield,Hotspring,75,24'; - put '38.218,-79.673,Bolar Spring,Charlottesvill,Hotspring,73,23'; - put '37.86,-79.988,Layton Spring,Roanoke,Hotspring,72,22'; - put '37.87,-79.933,Falling Spring,Roanoke,Hotspring,77,25'; - put '37.16,-80.806,Alum Springs,Bluefield,Hotspring,72,22'; - put '46.852,-121.758,Mt Rainier Fumaroles,Yakima,Hotspring,162,72'; - put '46.738,-121.562,Ohanapecosh Hot Springs,Yakima,Hotspring,122,50'; - put '47.707,-121.155,Scenic Hot Springs,Wenatchee,Hotspring,122,50'; - put '47.969,-123.864,Sol Duc Hot Springs,Seattle,Hotspring,122,50'; - put '48.974,-119.475,Hot Lake,Okanogan,Hotspring,122,50'; - put '45.658,-121.962,Moffetts (Bonneville) Hot Springs,The Dalles,Hotspring,97,36'; - put '48.906,-119.455,Poison Lake,Okanogan,Hotspring,122,50'; - put '45.701,-121.728,Collins Hot Springs,The Dalles,Hotspring,122,50'; - put '47.484,-121.391,Goldmeyer Hot Springs,Wenatchee,Hotspring,127,53'; - put '46.202,-121.492,Mount Adams Fumaroles,Yakima,Hotspring,150,66'; - put '46.198,-122.197,Mt St Helens Fumaroles,Hoquiam,Hotspring,190,88'; - put '48.789,-121.804,Dorr Fumarole Field,Concrete,Hotspring,194,90'; - put '48.77,-121.813,Sherman Crater Fumaroles,Concrete,Hotspring,266,130'; - put '45.723,-121.927,Rock Creek Hot Springs,The Dalles,Hotspring,H,H'; - put '48.15,-121.062,Gamma Hot Springs,Concrete,Hotspring,140,60'; - put '46.378,-122.265,Green River Soda Spring,Hoquiam,Hotspring,86,30'; - put '46.575,-121.706,Packwood Hot Spring,Yakima,Hotspring,100,38'; - put '47.201,-121.536,Lester Hot Springs,Wenatchee,Hotspring,120,49'; - put '46.024,-118.771,Warm Springs Canyon Warm Spring,Walla Walla,Hotspring,72,22'; - put '46.345,-121.6,Orr Creek Warm Springs,Yakima,Hotspring,72,22'; - put '46.041,-121.181,Fish Hatchery Warm Spring,Yakima,Hotspring,75,24'; - put '46.752,-121.814,Longmire Mineral Springs,Yakima,Hotspring,77,25'; - put '47.892,-121.342,Garland Mineral Springs,Wenatchee,Hotspring,84,29'; - put '46.452,-120.956,Simcoe Soda Springs,Yakima,Hotspring,90,32'; - put '48.254,-121.17,Sulphur Creek Hot Springs,Concrete,Hotspring,99,37'; - put '48.118,-121.192,Kennedy Hot Spring,Concrete,Hotspring,100,38'; - put '48.763,-121.667,Baker Hot Spring,Concrete,Hotspring,108,42'; - put '47.977,-123.682,Olympic Hot Springs,Seattle,Hotspring,118,48'; - put '45.728,-121.8,St Martins Hot Springs,The Dalles,Hotspring,120,49'; - put '45.821,-121.133,Klickitat Mineral Springs,The Dalles,Hotspring,81,27'; - put '38.163,-79.975,Minnehaha Springs,Charlottesvill,Hotspring,70,21'; - put '37.63,-80.24,Old Sweet Spring,Bluefield,Hotspring,73,23'; - put '39.618,-78.23,Berkeley Springs,Cumberland,Hotspring,72,22'; - put '38.605,-79.353,Thorn Spring,Charlottesvill,Hotspring,72,22'; - put '39.471,-77.877,Swan Pond Spring,Baltimore,Hotspring,72,22'; - put '44.29,-110.504,"Hot Springs,heart Lake Geyser Basi",Ashton,Hotspring,201,94'; - put '44.691,-110.728,Geyser Springs Group,Ashton,Hotspring,201,94'; - put '44.554,-110.812,Fountain Group,Ashton,Hotspring,201,94'; - put '44.543,-110.859,Fairy Springs,Ashton,Hotspring,201,94'; - put '44.485,-110.852,"Biscuit Basin, Sapphire Pool",Ashton,Hotspring,201,94'; - put '44.48,-110.85,Cascade Group,Ashton,Hotspring,201,94'; - put '44.46,-110.844,Black Sand Basin,Ashton,Hotspring,201,94'; - put '44.459,-110.835,Myriad Group,Ashton,Hotspring,201,94'; - put '44.307,-110.526,"Hot Springs,heart Lake Geyser Basi",Ashton,Hotspring,201,94'; - put '44.354,-110.8,Shoshone Geyser Basin,Ashton,Hotspring,203,95'; - put '44.568,-110.805,Quagmire Group,Ashton,Hotspring,203,95'; - put '44.537,-110.801,"White Dome Geyser, Surprise Pool",Ashton,Hotspring,203,95'; - put '44.52,-110.828,Flood Group,Ashton,Hotspring,203,95'; - put '44.471,-110.843,"Daisy Group, Sentinel Geysers",Ashton,Hotspring,203,95'; - put '44.466,-110.839,"Middle Group,tortoise Shell,inkwel",Ashton,Hotspring,203,95'; - put '44.46,-110.828,"Geyser Hill Group, Old Faithful Ge",Ashton,Hotspring,203,95'; - put '44.908,-110.393,Calcite Springs,Ashton,Hotspring,201,94'; - put '44.417,-110.57,West Thumb Geyser Basin,Ashton,Hotspring,203,95'; - put '44.459,-110.817,Southeastern Group,Ashton,Hotspring,198,92'; - put '44.433,-110.581,Potts Hot Spring Basin,Ashton,Hotspring,203,95'; - put '44.421,-110.952,Smoke Jumper Hot Springs,Ashton,Hotspring,198,92'; - put '44.684,-110.753,Monument Geyser Basin,Ashton,Hotspring,197,92'; - put '44.679,-110.746,Beryl Spring,Ashton,Hotspring,198,92'; - put '44.544,-110.258,Turbid Springs,Ashton,Hotspring,198,92'; - put '44.53,-110.297,Steamboat Springs,Ashton,Hotspring,198,92'; - put '44.518,-110.813,"Hot Springs, Rabbit Creek Group",Ashton,Hotspring,198,92'; - put '44.514,-110.828,Rabbit Creek Group,Ashton,Hotspring,198,92'; - put '44.484,-110.873,Mystic Falls Springs,Ashton,Hotspring,198,92'; - put '44.739,-110.324,Josephs Coat Springs,Ashton,Hotspring,199,93'; - put '44.75,-110.714,Gas Vent,Ashton,Hotspring,H,H'; - put '44.282,-110.506,Rustic Geyser,Ashton,Hotspring,199,93'; - put '44.571,-110.811,Morning Mist Springs,Ashton,Hotspring,205,96'; - put '44.733,-110.703,Cistern Spring,Ashton,Hotspring,199,93'; - put '44.697,-110.724,Gibbon Hill Geyser,Ashton,Hotspring,199,93'; - put '44.693,-110.738,Artists Paintpots,Ashton,Hotspring,199,93'; - put '44.69,-110.384,Hot Springs on Bog Creek,Ashton,Hotspring,199,93'; - put '44.526,-110.835,Excelsior Geyser Crater,Ashton,Hotspring,199,93'; - put '44.418,-110.805,Lone Star Geyser,Ashton,Hotspring,199,93'; - put '44.309,-110.654,Hot Springs on Lewis Lake,Ashton,Hotspring,199,93'; - put '44.469,-110.828,Solitary Geyser,Ashton,Hotspring,198,92'; - put '44.433,-110.813,Hot Springs,Ashton,Hotspring,H,H'; - put '44.766,-110.3,Hot Springs,Ashton,Hotspring,H,H'; - put '44.61,-110.438,Hot Springs,Ashton,Hotspring,H,H'; - put '44.607,-110.617,Hot Springs East of Mary Lake,Ashton,Hotspring,H,H'; - put '44.601,-110.632,Gas Vent East of Mary Lake,Ashton,Hotspring,H,H'; - put '44.595,-110.622,Gas Vents Southeast of Mary Lake,Ashton,Hotspring,H,H'; - put '44.572,-110.691,Hot Springs,Ashton,Hotspring,H,H'; - put '44.553,-110.301,Beach Springs,Ashton,Hotspring,H,H'; - put '44.551,-110.85,Springs on Fairy Creek,Ashton,Hotspring,H,H'; - put '44.616,-110.616,Highland Hot Springs,Ashton,Hotspring,H,H'; - put '44.438,-110.977,Hot Springs on Continental Divide,Ashton,Hotspring,H,H'; - put '44.617,-110.432,Mud Geysers,Ashton,Hotspring,H,H'; - put '44.404,-110.824,Hot Springs on Upper Firehole Rive,Ashton,Hotspring,H,H'; - put '44.498,-109.193,Buffalo Bill Reservoir Springs,Cody,Hotspring,W,W'; - put '44.495,-109.222,Buffalo Bill Reservoir Springs,Cody,Hotspring,W,W'; - put '44.482,-109.204,Buffalo Bill Reservoir Springs,Cody,Hotspring,W,W'; - put '44.841,-110.167,"Hot, on Lamar River",Ashton,Hotspring,W,W'; - put '44.734,-110.029,Hot Springs,Ashton,Hotspring,W,W'; - put '44.708,-110.471,Warm Spring,Ashton,Hotspring,W,W'; - put '44.701,-110.036,Hot Springs,Ashton,Hotspring,W,W'; - put '44.508,-110.832,Midway Picnic Ground,Ashton,Hotspring,H,H'; - put '44.715,-110.555,Gas Vents,Ashton,Hotspring,H,H'; - put '44.563,-110.834,River Group,Ashton,Hotspring,205,96'; - put '44.544,-110.788,"Black Warrior Group, Shelf Spring",Ashton,Hotspring,205,96'; - put '44.115,-110.684,Huckleberry Hot Springs,Ashton,Hotspring,B,B'; - put '44.842,-110.732,Apollinaris Spring,Ashton,Hotspring,H,H'; - put '44.825,-110.675,Gas Vents at Horseshoe Hill,Ashton,Hotspring,H,H'; - put '44.781,-110.738,Steam Vents at Roaring Mountain,Ashton,Hotspring,H,H'; - put '44.743,-110.242,Hot Spring Basin Group,Ashton,Hotspring,198,92'; - put '44.752,-110.256,Hot Spring,Ashton,Hotspring,H,H'; - put '44.612,-110.618,Gas Vent,Ashton,Hotspring,H,H'; - put '44.741,-110.699,Gas Vent,Ashton,Hotspring,H,H'; - put '44.566,-110.871,"Flat Cone Spring, Steep Cone",Ashton,Hotspring,205,96'; - put '44.711,-110.468,Hot Springs,Ashton,Hotspring,H,H'; - put '44.708,-110.461,Forest Springs,Ashton,Hotspring,H,H'; - put '44.672,-110.236,Hot Springs,Ashton,Hotspring,H,H'; - put '44.667,-110.282,Hot Springs,Ashton,Hotspring,H,H'; - put '44.656,-110.572,Violet Springs,Ashton,Hotspring,H,H'; - put '44.642,-110.238,Hot Spring,Ashton,Hotspring,H,H'; - put '44.634,-110.234,The Mudkettles,Ashton,Hotspring,H,H'; - put '44.634,-110.226,The Mushpots,Ashton,Hotspring,H,H'; - put '44.532,-110.874,"Imperial Geyser, Spray Geyser",Ashton,Hotspring,192,89'; - put '42.545,-106.725,Alcova Hot Springs,Casper,Hotspring,129,54'; - put '42.75,-109.616,Steele Hot Springs,Lander,Hotspring,102,39'; - put '43.37,-110.445,Granite Hot Spring,Driggs,Hotspring,106,41'; - put '43.008,-108.835,Washakie Mineral Hot Springs,Thermopolis,Hotspring,111,44'; - put '43.907,-110.198,North Buffalo Fork Springs,Driggs,Hotspring,113,45'; - put '43.365,-110.443,Granite Falls Hot Springs,Driggs,Hotspring,112,45'; - put '42.817,-110.997,Johnson Springs,Preston,Hotspring,115,46'; - put '44.723,-110.358,Hot Spring on Moss Creek,Ashton,Hotspring,115,46'; - put '44.681,-110.326,Hot Springs on Upper Sour Creek,Ashton,Hotspring,194,90'; - put '41.45,-106.804,Saratoga Hot Springs,Rawlins,Hotspring,129,54'; - put '44.671,-110.786,Secret Valley Hot Springs,Ashton,Hotspring,95,35'; - put '44.625,-110.433,Mud Volcano,Ashton,Hotspring,131,55'; - put '43.654,-108.194,Thermopolis Hot Springs,Thermopolis,Hotspring,133,56'; - put '44.985,-110.689,Hot River,Ashton,Hotspring,136,58'; - put '44.588,-110.341,Ebro Springs,Ashton,Hotspring,136,58'; - put '44.55,-110.805,Fountain Paint Pot,Ashton,Hotspring,136,58'; - put '44.169,-110.583,Snake Hot Springs,Ashton,Hotspring,136,58'; - put '44.157,-110.699,Crawfish Creek Hot Springs,Ashton,Hotspring,136,58'; - put '44.165,-110.723,Crawfish Creek Hot Springs,Ashton,Hotspring,138,59'; - put '44.711,-110.741,Chocolate Pots,Ashton,Hotspring,124,51'; - put '43.56,-109.732,Geyser (Warm Spring Creek Springs),Thermopolis,Hotspring,84,29'; - put '43.489,-109.605,Jakeys Fork Spring,Thermopolis,Hotspring,68,20'; - put '44.749,-108.188,Little Sheep Mountain Spring,Cody,Hotspring,68,20'; - put '42.249,-104.781,Warm Springs (Immigrants Washtub),Torrington,Hotspring,70,21'; - put '44.608,-108.138,Sheep Mountain Springs,Cody,Hotspring,70,21'; - put '43.583,-108.213,Wind River Canyon Spring,Thermopolis,Hotspring,72,22'; - put '42.702,-107.105,Horse Creek Springs,Casper,Hotspring,75,24'; - put '44.511,-109.156,Needle Hot Springs,Cody,Hotspring,75,24'; - put '43.52,-109.669,Little Warm Spring,Thermopolis,Hotspring,77,25'; - put '43.3,-110.775,Astoria Mineral Hot Springs,Driggs,Hotspring,99,37'; - put '43.543,-110.741,Abercrombie Warm Springs,Driggs,Hotspring,81,27'; - put '44.513,-109.115,De Maris Springs,Cody,Hotspring,97,36'; - put '42.665,-105.394,Douglas Hot Springs,Torrington,Hotspring,86,30'; - put '43.471,-110.835,Boyles Hill Springs,Driggs,Hotspring,86,30'; - put '43.282,-110.019,Kendall Warm Spring,Driggs,Hotspring,86,30'; - put '44.662,-110.768,Iron Spring,Ashton,Hotspring,86,30'; - put '42.492,-108.172,Sweetwater Station Warm Springs,Lander,Hotspring,90,32'; - put '44.742,-110.579,Wolf Lake Springs,Ashton,Hotspring,91,33'; - put '44.513,-109.129,Shoshone Hot Springs,Cody,Hotspring,95,35'; - put '42.828,-110.999,Auburn Hot Springs,Preston,Hotspring,144,62'; - put '43.639,-110.615,Kelly Warm Spring,Driggs,Hotspring,81,27'; - put '44.532,-110.796,Five Sisters Springs,Ashton,Hotspring,192,89'; - put '44.582,-110.314,Vermilion Springs,Ashton,Hotspring,140,60'; - put '44.521,-110.275,Butte Springs,Ashton,Hotspring,187,86'; - put '44.478,-110.867,Hillside Springs,Ashton,Hotspring,187,86'; - put '44.752,-110.418,Hot Springs at Sevenmile Hole,Ashton,Hotspring,189,87'; - put '44.401,-110.936,Hot Springs on Continental Divide,Ashton,Hotspring,189,87'; - put '44.769,-110.269,Rainbow Springs,Ashton,Hotspring,190,88'; - put '44.628,-110.433,Sulphur Caldron,Ashton,Hotspring,190,88'; - put '44.702,-110.767,Sylvan Springs,Ashton,Hotspring,192,89'; - put '44.529,-110.791,White Creek Group,Ashton,Hotspring,185,85'; - put '44.564,-110.869,Queens Laundry,Ashton,Hotspring,192,89'; - put '44.697,-110.375,Hot Springs on Bog Creek,Ashton,Hotspring,185,85'; - put '44.285,-110.9,Bechler River Hot Springs,Ashton,Hotspring,194,90'; - put '44.797,-110.725,Amphitheater Springs,Ashton,Hotspring,196,91'; - put '44.766,-110.429,Washburn Hot Springs,Ashton,Hotspring,196,91'; - put '44.756,-110.308,Coffee Pot Hot Springs,Ashton,Hotspring,196,91'; - put '44.591,-110.321,Hot Springs at Sulphur Hills,Ashton,Hotspring,196,91'; - put '44.556,-110.832,River Group,Ashton,Hotspring,196,91'; - put '44.422,-110.574,West Thumb Geyser Basin,Ashton,Hotspring,196,91'; - put '44.786,-110.74,Semi-Centennial Geyser,Ashton,Hotspring,198,92'; - put '44.653,-110.482,Sulphur Springs,Ashton,Hotspring,194,89'; - put '44.41,-110.953,Summit Lake Hot Springs,Ashton,Hotspring,162,72'; - put '44.761,-110.73,Bijah Spring,Ashton,Hotspring,198,92'; - put '44.781,-110.699,Whiterock Springs,Ashton,Hotspring,144,62'; - put '44.739,-110.258,Hot Spring Basin Group,Ashton,Hotspring,153,67'; - put '44.754,-110.403,Sevenmile Hole,Ashton,Hotspring,154,68'; - put '44.276,-110.636,Hot Springs on Lewis Lake,Ashton,Hotspring,154,68'; - put '44.598,-110.236,Hot Springs In Pelican Valley,Ashton,Hotspring,156,69'; - put '44.142,-110.656,South Entrance Hot Springs,Ashton,Hotspring,156,69'; - put '44.753,-110.724,"Roadside Springs, Frying Pan Sprin",Ashton,Hotspring,158,70'; - put '44.733,-110.712,Horseshoe Spring,Ashton,Hotspring,187,86'; - put '43.958,-110.696,Jackson Lake Hot Springs,Driggs,Hotspring,162,72'; - put '44.187,-110.726,Hot Springs,Ashton,Hotspring,142,61'; - put '44.967,-110.708,Mammoth Hot Springs,Ashton,Hotspring,163,73'; - put '44.475,-110.843,Morning Glory Pool,Ashton,Hotspring,163,73'; - put '44.204,-110.486,Hot Springs on Upper Snake River,Ashton,Hotspring,167,75'; - put '44.299,-110.517,"Heart Lake Geyser Basin, Middle Gr",Ashton,Hotspring,174,79'; - put '44.671,-110.29,Ponuntpa Springs Group,Ashton,Hotspring,180,82'; - put '44.244,-111.022,Boundary Creek Hot Springs,Ashton,Hotspring,181,83'; - put '44.414,-110.817,"Lone Star Geyser Basin, Footbridge",Ashton,Hotspring,183,84'; - put '44.722,-110.701,Echinus Geyser,Ashton,Hotspring,185,85'; - put '44.461,-110.854,Emerald Pool,Ashton,Hotspring,158,70'; - put ';;;;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file loadfile.sas'; + put '@brief Loads a file'; + put '@details'; + put '

SAS Macros

'; + put '@li mddl_sas_cntlout.sas'; + put '@li mp_abort.sas'; + put '@li mf_getplatform.sas'; + put '@li mf_getuser.sas'; + put '@li mf_getvarlist.sas'; + put '@li mf_mkdir.sas'; + put '@li mf_verifymacvars.sas'; + put '@li mf_wordsinstr1butnotstr2.sas'; + put '@li dc_assignlib.sas'; + put '@li mpe_getgroups.sas'; + put '@li mp_lockfilecheck.sas'; + put '@li mpe_loader.sas'; + put '@li mp_cleancsv.sas'; + put '@li mp_binarycopy.sas'; + put '@li mpeinit.sas'; + put '@version 9.2'; + put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; + put 'downloaded from here: https://4gl.uk/dcdeploy'; + put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; + put 'and may not be re-distributed or re-sold without the express permission of'; + put '4GL Apps Ltd.'; + put '**/'; + put '%global table dlm;'; + put '%mpeinit(fetch=NO)'; + put '%global _WEBIN_FILENAME1 _WEBIN_FILENAME2'; + put '_WEBIN_FILEREF _WEBIN_FILEREF1 _WEBIN_FILEREF2;'; + put '%macro load();'; + put '%if %mf_getplatform()=SASVIYA %then %do;'; + put '%global _webin_fileuri _webin_fileuri1 _webin_fileuri2;'; + put '%let _webin_fileuri1=%sysfunc(coalescec(&_webin_fileuri1,&_webin_fileuri));'; + put '%if "&_webin_fileuri1" ne "" %then %do;'; + put '%put &=_webin_fileuri1;'; + put 'filename sjfref1 filesrvc "&_webin_fileuri1";'; + put '%let _WEBIN_FILEREF1=sjfref1;'; + put '%end;'; + put '%if "&_webin_fileuri2" ne "" %then %do;'; + put '%put &=_webin_fileuri2;'; + put 'filename sjfref2 filesrvc "&_webin_fileuri2";'; + put '%let _WEBIN_FILEREF2=sjfref2;'; + put '%end;'; + put '%end;'; + put '%mend load;'; + put '%load()'; + put '%let _WEBIN_FILENAME1=%sysfunc(coalescec(&_WEBIN_FILENAME1,&_WEBIN_FILENAME));'; + put '%let _WEBIN_FILEREF1=%sysfunc(coalescec(&_WEBIN_FILEREF1,&_WEBIN_FILEREF));'; + put '%let abort=0;'; + put '/* we do not know if the excel file will be first or second fileref */'; + put 'data _null_;'; + put 'ext1=upcase(scan(symget(''_WEBIN_FILENAME1''),-1,''.''));'; + put 'ext2=upcase(scan(symget(''_WEBIN_FILENAME2''),-1,''.''));'; + put 'if ext1=''CSV'' then do;'; + put 'csvname=symget(''_WEBIN_FILENAME1'');'; + put 'csvref=symget(''_WEBIN_FILEREF1'');'; + put 'xlsname=symget(''_WEBIN_FILENAME2'');'; + put 'xlsref=symget(''_WEBIN_FILEREF2'');'; + put 'end;'; + put 'else if ext2=''CSV'' then do;'; + put 'csvname=symget(''_WEBIN_FILENAME2'');'; + put 'csvref=symget(''_WEBIN_FILEREF2'');'; + put 'xlsname=symget(''_WEBIN_FILENAME1'');'; + put 'xlsref=symget(''_WEBIN_FILEREF1'');'; + put 'end;'; + put 'else call symputx(''abort'',1);'; + put 'call symputx(''csvname'',csvname);'; + put 'call symputx(''csvref'',csvref);'; + put 'call symputx(''xlsname'',xlsname);'; + put 'call symputx(''xlsref'',coalescec(xlsref,''0''));'; put 'run;'; + put '%mp_abort(iftrue= (&abort=1)'; + put ',mac=&_program'; + put ',msg=%str(File "&csvname" or "&xlsname" must be a CSV!'; + put '(Comma separated with .csv extension))'; + put ')'; + put '%let user=%mf_getuser();'; + put '%mp_abort('; + put 'iftrue=(%mf_verifymacvars(table)=0)'; + put ',mac=&_program'; + put ',msg=%str(Missing: table)'; + put ')'; + put '%let table=%upcase(%trim(&table));'; + put '/* load parameters */'; + put 'data _null_;'; + put 'libds=upcase(symget(''table''));'; + put 'call symputx(''orig_libds'',libds);'; + put 'call symputx(''orig_lib'',scan(libds,1,''.''));'; + put 'call symputx(''orig_ds'',scan(libds,2,''.''));'; + put 'is_fmt=0;'; + put 'if substr(cats(reverse(libds)),1,3)=:''CF-'' then do;'; + put 'libds=scan(libds,1,''-'');'; + put 'putlog "Format Catalog Captured";'; + put 'libds=''work.fmtextract'';'; + put 'call symputx(''libds'',libds);'; + put 'call execute(''%mddl_sas_cntlout(libds=work.fmtextract)'');'; + put 'is_fmt=1;'; + put 'end;'; + put 'else call symputx(''libds'',libds);'; + put 'call symputx(''is_fmt'',is_fmt);'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '/* check that the user has the requisite access */'; + put '%mpe_getgroups(user=&user,outds=groups)'; + put 'proc sql;'; + put 'create table accesscheck as'; + put 'select * from groups'; + put 'where groupname="&mpeadmins"'; + put 'or groupname in (select sas_group from &mpelib..mpe_security'; + put 'where &dc_dttmtfmt. lt tx_to'; + put 'and access_level="EDIT"'; + put 'and ('; + put '(libref="&orig_lib" and dsn="&orig_ds")'; + put 'or (libref="&orig_lib" and dsn="*ALL*")'; + put 'or (libref="*ALL*" and dsn="*ALL*")'; + put 'or (libref="*ALL*" and dsn="&orig_ds")'; + put '));'; + put '%let nobs=;'; + put 'select count(*) into: nobs from &syslast;'; + put '%mp_abort(iftrue= (&nobs=0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(&user not authorised to load &orig_libds per &mpelib..mpe_security)'; + put ')'; + put '%dc_assignlib(WRITE,&orig_lib)'; + put '%mp_abort(iftrue= (&syscc ge 4)'; + put ',mac=loadfile'; + put ',msg=%str(Issue assigning library &orig_lib)'; + put ')'; + put '%global txfrom txto processed;'; + put 'data _null_;'; + put 'set &mpelib..MPE_TABLES;'; + put 'where libref="&orig_lib" and dsn="&orig_ds";'; + put 'call symputx(''txfrom'',var_txfrom);'; + put 'call symputx(''txto'',var_txto);'; + put 'call symputx(''processed'',var_processed);'; + put 'run;'; + put '%mp_lockfilecheck(libds=&orig_libds)'; + put 'data compare;'; + put 'set &libds(drop=&txfrom &txto &processed);'; + put 'stop;'; + put 'run;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(syscc=&syscc line 80)'; + put ')'; + put '/* get line terminator, assume it''s the first cr, lf, or crlf */'; + put 'data _null_;'; + put 'length text $32767 term $4;'; + put 'call missing (of _all_);'; + put 'fid=fopen("&csvref",''I'',32767,''b'');'; + put 'rc=fread(fid);'; + put 'rc2=fget(fid,text,32767);'; + put 'cr=find(text,''0D''x );'; + put 'lf=find(text,''0A''x );'; + put 'crlf=find(text,''0D0A''x);'; + put 'rc=fclose(fid);'; + put 'if crlf>0 & cr0 & crlf0 & cr>0 & lf0 then term=''LF'';'; + put 'else term=''CR'';'; + put 'call symputx(''termstr'',term);'; + put 'run;'; + put 'data _null_;'; + put 'infile &csvref lrecl=32000 dsd termstr=&termstr;'; + put 'input;'; + put 'length incols_unsorted $32000 dlm $1;'; + put 'incols_unsorted=compress(upcase(_infile_),"''"!!''"'');'; + put '/* dlm has length 1 so will be the first non alpha / digit char */'; + put '/* expectation is that there will not be any crazy characters in first col! */'; + put 'dlm=compress(incols_unsorted,''_ '',''ad'');'; + put 'incols_unsorted=compress(incols_unsorted,dlm!!''_'',''kado'');'; + put 'incols_unsorted=tranwrd(incols_unsorted,dlm,'' '');'; + put 'call symputx(''incols_unsorted'',incols_unsorted);'; + put 'call symputx(''dlm'',dlm);'; + put 'putlog incols_unsorted=;'; + put 'putlog dlm=;'; + put 'stop;'; + put 'run;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(syscc=&syscc line 99)'; + put ')'; + put '%let basecols=%upcase(%mf_getvarlist(work.compare,dlm=%str( )));'; + put '%let missing_cols=%trim('; + put '%mf_wordsInStr1ButNotStr2('; + put 'Str1=&basecols'; + put ',Str2=&incols_unsorted'; + put '));'; + put '%let msg='; + put 'Expected cols: &basecols'; + put '
Received cols: &incols_unsorted'; + put '
Missing cols: &missing_cols'; + put ';'; + put '%mp_abort(iftrue= (%length(%trim(&missing_cols)) > 1 or &syscc ne 0)'; + put ',mac=mpestp_loadfile.sas'; + put ',msg=%superq(msg)'; + put ')'; + put '%let msg=0;'; + put 'PROC FORMAT;'; + put 'picture yymmddhhmmss other=''%0Y%0m%0d_%0H%0M%0S'' (datatype=datetime);'; + put 'RUN;'; + put '/* create a dataset key (datetime plus 6 digit random number plus PID) */'; + put '%let mperef=DC%left(%sysfunc(datetime(),B8601DT19.3))_%substr('; + put '%sysfunc(ranuni(0)),3,6)_%substr(%str(&sysjobid ),1,4);'; + put '/* Create package folder and redirect the log */'; + put '%let dir=&mpelocapprovals/&mperef;'; + put '%mf_mkdir(&dir)'; + put '/* clean embedded line breaks and force CRLF line endings */'; + put '%mp_cleancsv(in=&csvref, out=&dir/&orig_libds..csv)'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(issue in mp_cleancsv)'; + put ')'; + put '%put; %put; %put log is being redirected;'; + put '%let url=_program=%substr(&_program'; + put ',1,%length(&_program)-8)getlog%nrstr(&)table=&mperef;'; + put '%put to retrieve, visit this url:; %put;%put;'; + put '%put &url;'; + put '%put;'; + put '/* proc printto log="&dir/weblog.txt";run; */'; + put 'libname approve "&dir";'; + put 'options mprint;'; + put '%put &=mperef;'; + put '%put &=termstr;'; + put '%put &=dlm;'; + put '%mpe_loader(mperef=&mperef'; + put ',submitted_reason_txt=%quote(File upload: %superq(csvname))'; + put ',dlm=%superq(dlm)'; + put ',url=%superq(url)'; + put ',termstr=CRLF'; + put ',dc_dttmtfmt=&dc_dttmtfmt'; + put ')'; + put '%mp_abort(mode=INCLUDE)'; + put '%mp_abort('; + put 'iftrue= (%sysfunc(fileexist(%sysfunc(pathname(work))/mf_abort.error)) ne 0)'; + put ',mac=&_program'; + put ',msg=%nrstr(Problem occurred in &sysmacroname (mf_abort.error file found))'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=mpestp_loadfile.sas'; + put ',msg=%str(syscc=&syscc)'; + put ')'; + put 'filename outref "&dir/BKP_&xlsname";'; + put '%mp_binarycopy(iftrue=("&xlsref" ne "0"),inref=&xlsref,outref=outref)'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc when backing up source file &xlsname)'; + put ')'; + put 'data sasparams;'; + put 'STATUS=''SUCCESS'';'; + put 'DSID="&mperef";'; + put 'run;'; + put '%webout(OPEN)'; + put '%webout(OBJ,sasparams)'; + put '%webout(CLOSE)'; + put '%mpeterm()'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=stagedata; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Files

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as FMTCAT,'; + put 'FMTNAME'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'LENGTH num'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.length as MAXW'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put ')))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] workobs= (0) When set to a positive integer, will create a new'; + put 'output object (WORK) which contains this number of observations from all'; + put 'tables in the WORK library.'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX,workobs=0'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&workobs) > 0 %then %do;'; + put '/* if debug mode, send back first XX records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10'; + put ',maxobs=&workobs'; + put ')'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '%macro mm_getGroups('; + put 'user='; + put ',outds=work.mm_getGroups'; + put ',repo=foundation'; + put ',mDebug=0'; + put ')/*/STORE SOURCE*/;'; + put '%local mD oldrepo;'; + put '%let oldrepo=%sysfunc(getoption(metarepository));'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing mm_getGroups.sas;'; + put '%&mD.put _local_;'; + put '/* on some sites, user / group info is in a different metadata repo to the'; + put 'default */'; + put '%if &oldrepo ne &repo %then %do;'; + put 'options metarepository=&repo;'; + put '%end;'; + put '%if %length(&user)=0 %then %do;'; + put 'data &outds (keep=groupuri groupname groupdesc);'; + put 'length groupuri groupname groupdesc group_or_role $256;'; + put 'call missing(of _all_);'; + put 'i+1;'; + put 'do while'; + put '(metadata_getnobj("omsobj:IdentityGroup?@Id contains ''.''",i,groupuri)>0);'; + put 'rc=metadata_getattr(groupuri, "Name", groupname);'; + put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; + put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; + put 'if Group_or_Role = ''UserGroup'' then output;'; + put 'i+1;'; + put 'end;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put 'data &outds (keep=groupuri groupname groupdesc);'; + put 'length uri groupuri groupname groupdesc group_or_role $256;'; + put 'call missing(of _all_);'; + put 'rc=metadata_getnobj("omsobj:Person?@Name=''&user''",1,uri);'; + put 'if rc<=0 then do;'; + put 'putlog "%str(WARN)ING: rc=" rc "&user not found "'; + put '", or there was an issue reading the repository.";'; + put 'stop;'; + put 'end;'; + put 'a=1;'; + put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; + put 'if grpassn in (-3,-4) then do;'; + put 'putlog "%str(WARN)ING: No metadata groups found for &user";'; + put 'output;'; + put 'end;'; + put 'else do while (grpassn > 0);'; + put 'rc=metadata_getattr(groupuri, "Name", groupname);'; + put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; + put 'a+1;'; + put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; + put 'if Group_or_Role = ''UserGroup'' then output;'; + put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; + put 'end;'; + put 'run;'; + put '%end;'; + put '%if &oldrepo ne &repo %then %do;'; + put 'options metarepository=&oldrepo;'; + put '%end;'; + put '%mend mm_getGroups;'; + put '%macro dc_getusergroups(user=,outds=mm_getgroups);'; + put '%global dc_repo_users;'; + put '%if &dc_repo_users= %then %let dc_repo_users=foundation;'; + put '%mm_getgroups(user=&user,outds=&outds,repo=&dc_repo_users)'; + put '%mend dc_getusergroups;'; + put '%macro mpe_getgroups(user=,outds=);'; + put '%if not %symexist(dc_repo_users) %then %let dc_repo_users=foundation;'; + put '%dc_getusergroups(user=&user,outds=&outds)'; + put 'data;'; + put 'length groupname groupdesc $256;'; + put 'set &dc_libref..mpe_groups;'; + put 'where &dc_dttmtfmt. lt tx_to;'; + put 'where also upcase(user_name)="%upcase(&user)";'; + put 'groupname=group_name;'; + put 'groupdesc=group_desc;'; + put 'keep groupname groupdesc;'; + put 'run;'; + put 'data &outds;'; + put 'set &syslast &outds(keep=groupname groupdesc);'; + put 'run;'; + put '%mend mpe_getgroups;'; + put '%macro mf_abort(mac=mf_abort.sas, msg=, iftrue=%str(1=1)'; + put ')/*/STORE SOURCE*/;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mf_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%abort;'; + put '%mend mf_abort;'; + put '/** @endcond */'; + put '%macro mf_verifymacvars('; + put 'verifyVars /* list of macro variable NAMES */'; + put ',makeUpcase=NO /* set to YES to make all the variable VALUES uppercase */'; + put ',mAbort=SOFT'; + put ')/*/STORE SOURCE*/;'; + put '%local verifyIterator verifyVar abortmsg;'; + put '%do verifyIterator=1 %to %sysfunc(countw(&verifyVars,%str( )));'; + put '%let verifyVar=%qscan(&verifyVars,&verifyIterator,%str( ));'; + put '%if not %symexist(&verifyvar) %then %do;'; + put '%let abortmsg= Variable &verifyVar is MISSING;'; + put '%goto exit_err;'; + put '%end;'; + put '%if %length(%trim(&&&verifyVar))=0 %then %do;'; + put '%let abortmsg= Variable &verifyVar is EMPTY;'; + put '%goto exit_err;'; + put '%end;'; + put '%if &makeupcase=YES %then %do;'; + put '%let &verifyVar=%upcase(&&&verifyvar);'; + put '%end;'; + put '%end;'; + put '%goto exit_success;'; + put '%exit_err:'; + put '%put &abortmsg;'; + put '%mf_abort(iftrue=(&mabort ne SOFT),'; + put 'mac=mf_verifymacvars,'; + put 'msg=%str(&abortmsg)'; + put ')'; + put '0'; + put '%return;'; + put '%exit_success:'; + put '1'; + put '%mend mf_verifymacvars;'; + put '%macro mf_isblank(param'; + put ')/*/STORE SOURCE*/;'; + put '%sysevalf(%superq(param)=,boolean)'; + put '%mend mf_isblank;'; + put '%macro mp_dropmembers('; + put 'list /* space separated list of datasets / views */'; + put ',libref=WORK /* can only drop from a single library at a time */'; + put ',iftrue=%str(1=1)'; + put ')/*/STORE SOURCE*/;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%if %mf_isblank(&list) %then %do;'; + put '%put NOTE: nothing to drop!;'; + put '%return;'; + put '%end;'; + put 'proc datasets lib=&libref nolist;'; + put 'delete &list;'; + put 'delete &list /mtype=view;'; + put 'run;'; + put '%mend mp_dropmembers;'; + put '%macro mpe_accesscheck('; + put 'base_table /* base table to check for */'; + put ',outds=med_accesscheck /* WORK table to contain access details */'; + put ',user= /* metadata user to check for */'; + put ',access_level=APPROVE'; + put ');'; + put '%if &user= %then %let user=%mf_getuser();'; + put '%if %index(&outds,.) %then %do;'; + put '%local lib ds;'; + put '%let lib=%scan(&outds,1,.);'; + put '%let ds=%scan(&outds,2,.);'; + put '%if %upcase(&lib) ne WORK %then %do;'; + put '%mp_abort(msg=outds should be a WORK table'; + put ',mac=mpe_accesscheck);'; + put '%end;'; + put '%end;'; + put '%else %let ds=&outds;'; + put '%mp_abort('; + put 'iftrue=(%mf_verifymacvars(base_table user access_level)=0)'; + put ',mac=bitemporal_dataloader'; + put ',msg=%str(Missing base_table/user access_level)'; + put ')'; + put '/* ensure any existing table is dropped */'; + put '%mp_dropmembers(&ds)'; + put '/* create a new table for temp use */'; + put 'data; run;'; + put '%local tempds; %let tempds=&syslast;'; + put '/* overwrite with the list of groups */'; + put '%mpe_getgroups(user=&user,outds=&tempds);'; + put '%if &_debug ge 131 %then %do;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%end;'; + put 'proc sql;'; + put 'create table &outds as'; + put 'select * from &tempds'; + put 'where groupname="&mpeadmins"'; + put 'or groupname in'; + put '(select sas_group from &mpelib..mpe_security'; + put 'where &dc_dttmtfmt. lt tx_to'; + put 'and access_level="&access_level"'; + put '& ('; + put '(libref="%scan(&base_table,1,.)" and dsn="%scan(&base_table,2,.)")'; + put 'or (libref="%scan(&base_table,1,.)" and dsn="*ALL*")'; + put 'or (libref="*ALL*")'; + put ')'; + put ');'; + put '%put base_table=&base_table;'; + put '%put libref=%scan(&base_table,1,.);'; + put '%put dsn=%scan(&base_table,2,.);'; + put '%put access_level=&access_level;'; + put '%mend mpe_accesscheck;'; + put '%macro mf_getattrn('; + put 'libds'; + put ',attr'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid rc;'; + put '%let dsid=%sysfunc(open(&libds,is));'; + put '%if &dsid = 0 %then %do;'; + put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; + put '%put %sysfunc(sysmsg());'; + put '-1'; + put '%end;'; + put '%else %do;'; + put '%sysfunc(attrn(&dsid,&attr))'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%mend mf_getattrn;'; + put '%macro mf_existds(libds'; + put ')/*/STORE SOURCE*/;'; + put '%if %sysfunc(exist(&libds)) ne 1 & %sysfunc(exist(&libds,VIEW)) ne 1 %then 0;'; + put '%else 1;'; + put '%mend mf_existds;'; + put '%macro mpe_alerts(alert_event='; + put ', alert_lib='; + put ', alert_ds='; + put ', dsid='; + put ');'; + put '/* exit if not configured */'; + put '%global DC_EMAIL_ALERTS;'; + put '%if &DC_EMAIL_ALERTS ne YES %then %do;'; + put '%put DCNOTE: Email alerts are not configured;'; + put '%put DCNOTE: (dc_email_alerts=&dc_email_alerts in &mpelib..mpe_config);'; + put '%return;'; + put '%end;'; + put '%let alert_event=%upcase(&alert_event);'; + put '%let alert_lib=%upcase(&alert_lib);'; + put '%let alert_ds=%upcase(&alert_ds);'; + put '%let from_user=%mf_getuser();'; + put '/* get users TO which the email should be sent */'; + put 'proc sql noprint;'; + put 'create table users as select distinct a.alert_user,'; + put 'b.user_displayname,'; + put 'b.user_email'; + put 'from &mpelib..mpe_alerts'; + put '(where=(&dc_dttmtfmt. lt tx_to)) a'; + put 'left join &mpelib..mpe_emails'; + put '(where=(&dc_dttmtfmt. lt tx_to)) b'; + put 'on upcase(trim(a.alert_user))=upcase(trim(b.user_name))'; + put 'where a.alert_event in ("&alert_event","*ALL*")'; + put 'and a.alert_lib in ("&alert_lib","*ALL*")'; + put 'and a.alert_ds in ("&alert_ds","*ALL*");'; + put '%local isThere;'; + put 'select count(*) into: isThere from &syslast where alert_user="&from_user";'; + put '%if &isThere>0 %then %do;'; + put 'insert into &syslast set alert_user="&from_user";'; + put '%end;'; + put '/* if no email / displayname is provided, then extract from metadata */'; + put 'data emails;'; + put 'set users;'; + put 'length emailuri uri text $256; call missing(emailuri,uri); drop emailuri uri;'; + put '/* get displayname */'; + put 'text=cats("omsobj:Person?@Name=''",alert_user,"''");'; + put 'if metadata_getnobj(text,1,uri)<=0 then do;'; + put 'putlog "DCWARN: &from_user not found";'; + put 'return;'; + put 'end;'; + put 'else if user_displayname = '''' then do;'; + put 'if metadata_getattr(uri,''DisplayName'',user_displayname)<0 then do;'; + put 'putlog ''DCWARN: strange err, no displayname attribute of user URI'';'; + put 'end;'; + put 'end;'; + put 'if index(user_email,''@'') then return;'; + put '/* get email from metadata if not in input table */'; + put 'if metadata_getnasn(uri,"EmailAddresses",1,emailuri)<=0 then do;'; + put 'putlog "DCWARN: " alert_user " has no emails in MPE_EMAILS or metadata!";'; + put 'if metadata_getattr(emailuri,"Address",user_email)<0 then do;'; + put 'putlog ''DCWARN: Unexpected error! Valid emailURI but no email. Weird.'';'; + put 'end;'; + put 'end;'; + put '/* only keep valid emails */'; + put 'if index(user_email,''@'') ;'; + put 'run;'; + put '%local emails;'; + put 'proc sql noprint;'; + put 'select user_email into: emails separated by ''" "'' from emails;'; + put '/* exit if nobody to email */'; + put '%if %mf_getattrn(emails,NLOBS)=0 %then %do;'; + put '%put NOTE: No alerts configured (mpe_alerts.sas);'; + put '%return;'; + put '%end;'; + put '/* display email options */'; + put 'data _null_;'; + put 'set sashelp.voption(where=(group=''EMAIL''));'; + put 'put optname ''='' setting;'; + put 'run;'; + put 'filename __out email ("&emails")'; + put 'subject="Table &alert_lib..&alert_ds has been &alert_event";'; + put '%local SUBMITTED_TXT;'; + put '%if &alert_event=SUBMITTED %then %do;'; + put 'data _null_;'; + put 'set &mpelib..mpe_submit;'; + put 'where table_id="&dsid" and submit_status_cd=''SUBMITTED'';'; + put 'call symputx(''SUBMITTED_TXT'',submitted_reason_txt,''l'');'; + put 'run;'; + put 'data _null_;'; + put 'File __out lrecl=32000;'; + put 'put ''Dear user,'';'; + put 'put '' '';'; + put 'put "Please be advised that a change to table &alert_lib..&alert_ds has "'; + put '"been proposed by &from_user on the ''&syshostname'' SAS server.";'; + put 'put " ";'; + put 'length txt $2048;'; + put 'txt=symget(''SUBMITTED_TXT'');'; + put 'put "Reason provided: " txt;'; + put 'put " ";'; + put 'put "This is an automated email by Data Controller for SAS®. For "'; + put '"documentation, please visit https://docs.datacontroller.io";'; + put 'run;'; + put '%end;'; + put '%else %if &alert_event=APPROVED %then %do;'; + put '/* there is no approval message */'; + put 'data _null_;'; + put 'File __out lrecl=32000;'; + put 'put ''Dear user,'';'; + put 'put '' '';'; + put 'put "Please be advised that a change to table &alert_lib..&alert_ds has "'; + put '"been approved by &from_user on the ''&syshostname'' SAS server.";'; + put 'put " ";'; + put 'put "This is an automated email by Data Controller for SAS®. For "'; + put '"documentation, please visit https://docs.datacontroller.io";'; + put 'run;'; + put '%end;'; + put '%else %if &alert_event=REJECTED %then %do;'; + put 'data _null_;'; + put 'set &mpelib..mpe_review;'; + put 'where table_id="&dsid" and review_status_id=''REJECTED'';'; + put 'call symputx(''REVIEW_REASON_TXT'',REVIEW_REASON_TXT,''l'');'; + put 'run;'; + put 'data _null_;'; + put 'File __out lrecl=32000;'; + put 'put ''Dear user,'';'; + put 'put '' '';'; + put 'put "Please be advised that a change to table &alert_lib..&alert_ds has "'; + put '"been rejected by &from_user on the ''&syshostname'' SAS server.";'; + put 'put " ";'; + put 'length txt $2048;'; + put 'txt=symget(''REVIEW_REASON_TXT'');'; + put 'put "Reason provided: " txt;'; + put 'put " ";'; + put 'put "This is an automated email by Data Controller for SAS®. For "'; + put '"documentation, please visit https://docs.datacontroller.io";'; + put 'run;'; + put '%end;'; + put 'filename __out clear;'; + put '%mend mpe_alerts ;'; + put '%macro mpe_loadfail('; + put 'status=FAILED - &syscc'; + put ',now=%sysfunc(datetime())'; + put ',approvals='; + put ',mperef='; + put ',reason_txt='; + put ',mac=mpe_loadfail.sas'; + put ',dc_dttmtfmt=E8601DT26.6'; + put ');'; + put '/* do not perform duration calc in pass through */'; + put '%local dur;'; + put 'data _null_;'; + put 'now=symget(''now'');'; + put 'dur=%sysfunc(datetime())-&now;'; + put 'call symputx(''dur'',dur,''l'');'; + put 'run;'; + put 'proc sql;'; + put 'update &mpelib..mpe_loads'; + put 'set STATUS=symget(''status'')'; + put ', duration=&dur'; + put ', processed_dttm=&dc_dttmtfmt.'; + put ', approvals = symget(''approvals'')'; + put ', reason_txt= symget(''reason_txt'')'; + put 'where CSV_DIR="&mperef";'; + put '%let syscc=666;'; + put '%mp_abort(msg=%superq(status)\n%superq(reason_txt),mac=&mac)'; + put '%mend mpe_loadfail;'; + put '%macro dc_getservicecode(loc=,outref=);'; + put '%mm_getstpcode(tree=&loc'; + put ',outref=&outref'; + put ')'; + put '%mend dc_getservicecode;'; + put '%macro mp_include(fileref'; + put ',prefix=_'; + put ',opts=SOURCE2'; + put ',errds=work.mp_abort_errds'; + put ')/*/STORE SOURCE*/;'; + put '/* prepare precode */'; + put '%local tempref;'; + put '%let tempref=%mf_getuniquefileref();'; + put 'data _null_;'; + put 'file &tempref;'; + put 'set sashelp.vextfl(where=(fileref="%upcase(&fileref)"));'; + put 'put ''%let _SYSINCLUDEFILEDEVICE='' xengine '';'';'; + put 'name=scan(xpath,-1,''/\'');'; + put 'put ''%let _SYSINCLUDEFILENAME='' name '';'';'; + put 'path=subpad(xpath,1,length(xpath)-length(name)-1);'; + put 'put ''%let _SYSINCLUDEFILEDIR='' path '';'';'; + put 'put ''%let _SYSINCLUDEFILEFILEREF='' "&fileref;";'; + put 'run;'; + put '/* prepare the errds */'; + put 'data &errds;'; + put 'length msg mac $1000;'; + put 'call missing(msg,mac);'; + put 'iftrue=''1=0'';'; + put 'run;'; + put '/* include the include */'; + put '%inc &tempref &fileref/&opts;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=%str(&_SYSINCLUDEFILEDIR/&_SYSINCLUDEFILENAME)'; + put ',msg=%str(syscc=&syscc after executing &_SYSINCLUDEFILENAME)'; + put ')'; + put 'filename &tempref clear;'; + put '%mend mp_include;'; + put '%macro mpe_runhook(hookvar);'; + put '%local pgmloc pgmtype;'; + put '%let pgmtype=0;'; + put '%put &sysmacroname: &=hookvar;'; + put '%if %length(&&&hookvar)>0 %then %do;'; + put '%put &sysmacroname: Executing &&&hookvar;'; + put 'data _null_;'; + put 'rule_value=symget("&hookvar");'; + put 'if scan(upcase(rule_value),-1,''.'')=''SAS'' then do;'; + put 'call symputx(''pgmtype'',''PGM'');'; + put 'call symputx(''pgmloc'',rule_value);'; + put 'end;'; + put 'else do;'; + put 'apploc="%mf_getapploc()";'; + put 'if substr(rule_value,1,1) ne ''/'''; + put 'then rule_value=cats(apploc,''/'',rule_value);'; + put 'call symputx(''pgmloc'',rule_value);'; + put 'call symputx(''pgmtype'',''JOB'');'; + put 'end;'; + put 'run;'; + put '%if &pgmtype=PGM %then %do;'; + put 'filename sascode "&pgmloc";'; + put '%end;'; + put '%else %do;'; + put '%dc_getservicecode(loc=&pgmloc'; + put ',outref=sascode'; + put ')'; + put '%end;'; + put '/* the below script will need to modify work.STAGING_DS */'; + put '%local x; %let x=; /* legacy feature */'; + put '%mp_include(sascode)'; + put '%end;'; + put '%mend mpe_runhook;'; + put '%macro mm_assignlib('; + put 'libref'; + put ',mAbort=HARD'; + put ')/*/STORE SOURCE*/;'; + put '%local mp_abort msg;'; + put '%let mp_abort=0;'; + put '%if %sysfunc(libref(&libref)) %then %do;'; + put 'data _null_;'; + put 'length liburi LibName msg $200;'; + put 'call missing(of _all_);'; + put 'nobj=metadata_getnobj("omsobj:SASLibrary?@Libref=''&libref''",1,liburi);'; + put 'if nobj=1 then do;'; + put 'rc=metadata_getattr(liburi,"Name",LibName);'; + put '/* now try and assign it */'; + put 'if libname("&libref",,''meta'',cats(''liburi="'',liburi,''";'')) ne 0 then do;'; + put 'putlog "&libref could not be assigned";'; + put 'putlog liburi=;'; + put '/**'; + put '* Fetch the system message for display in the abort modal. This is'; + put '* not always helpful though. One example, previously received:'; + put '* NOTE: Libref XX refers to the same library metadata as libref XX.'; + put '*/'; + put 'msg=sysmsg();'; + put 'if msg=:''ERROR: Libref SAVE is not assigned.'' then do;'; + put 'msg=catx(" ",'; + put '"Could not assign %upcase(&libref).",'; + put '"Please check metadata permissions! Libname:",libname,'; + put '"Liburi:",liburi'; + put ');'; + put 'end;'; + put 'else if msg="ERROR: User does not have appropriate authorization "!!'; + put '"level for library SAVE."'; + put 'then do;'; + put 'msg=catx(" ",'; + put '"ERROR: User does not have appropriate authorization level",'; + put '"for library %upcase(&libref), libname:",libname,'; + put '"Liburi:",liburi'; + put ');'; + put 'end;'; + put 'call symputx(''msg'',msg,''l'');'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1,''l'');'; + put 'end;'; + put 'else do;'; + put 'put (_all_)(=);'; + put 'call symputx(''libname'',libname,''L'');'; + put 'call symputx(''liburi'',liburi,''L'');'; + put 'end;'; + put 'end;'; + put 'else if nobj>1 then do;'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; + put 'call symputx(''msg'',"More than one library with libref=&libref");'; + put 'end;'; + put 'else do;'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; + put 'call symputx(''msg'',"Library &libref not found in metadata");'; + put 'end;'; + put 'run;'; + put '%put NOTE: &msg;'; + put '%end;'; + put '%else %do;'; + put '%put NOTE: Library &libref is already assigned;'; + put '%end;'; + put '%mp_abort(iftrue= (&mp_abort=1)'; + put ',mac=mm_assignlib.sas'; + put ',msg=%superq(msg)'; + put ')'; + put '%mend mm_assignlib;'; + put '/** @cond */'; + put '%macro mf_getengine(libref'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid engnum rc engine;'; + put '/* in case the parameter is a libref.tablename, pull off just the libref */'; + put '%let libref = %upcase(%scan(&libref, 1, %str(.)));'; + put '%let dsid=%sysfunc('; + put 'open(sashelp.vlibnam(where=(libname="%upcase(&libref)")),i)'; + put ');'; + put '%if (&dsid ^= 0) %then %do;'; + put '%let engnum=%sysfunc(varnum(&dsid,ENGINE));'; + put '%let rc=%sysfunc(fetch(&dsid));'; + put '%let engine=%sysfunc(getvarc(&dsid,&engnum));'; + put '%put &libref. ENGINE is &engine.;'; + put '%let rc= %sysfunc(close(&dsid));'; + put '%end;'; + put '%upcase(&engine)'; + put '%mend mf_getengine;'; + put '/** @endcond */'; + put '%macro mm_assigndirectlib('; + put 'libref /* libref to assign from metadata */'; + put ',open_passthrough= /* provide an alias to produce the'; + put 'CONNECT TO statement for the'; + put 'relevant external database */'; + put ',sql_options= /* add any options to add to proc sql statement eg outobs='; + put '(only valid for pass through) */'; + put ',mDebug=0'; + put ',mAbort=0'; + put ')/*/STORE SOURCE*/;'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing mm_assigndirectlib.sas;'; + put '%&mD.put _local_;'; + put '%if &mAbort=1 %then %let mAbort=;'; + put '%else %let mAbort=%str(*);'; + put '%&mD.put NOTE: Creating direct (non META) connection to &libref library;'; + put '%local cur_engine;'; + put '%let cur_engine=%mf_getengine(&libref);'; + put '%if &cur_engine ne META and &cur_engine ne %then %do;'; + put '%put NOTE: &libref already has a direct (&cur_engine) libname connection;'; + put '%return;'; + put '%end;'; + put '%else %if %upcase(&libref)=WORK %then %do;'; + put '%put NOTE: We already have a direct connection to WORK :-) ;'; + put '%return;'; + put '%end;'; + put '/* need to determine the library ENGINE first */'; + put '%local engine;'; + put 'data _null_;'; + put 'length lib_uri engine $256;'; + put 'call missing (of _all_);'; + put '/* get URI for the particular library */'; + put 'rc1=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put '/* get the Engine attribute of the previous object */'; + put 'rc2=metadata_getattr(lib_uri,''Engine'',engine);'; + put 'putlog "mm_assigndirectlib for &libref:" rc1= lib_uri= rc2= engine=;'; + put 'call symputx("liburi",lib_uri,''l'');'; + put 'call symputx("engine",engine,''l'');'; + put 'run;'; + put '/* now obtain engine specific connection details */'; + put '%if &engine=BASE %then %do;'; + put '%&mD.put NOTE: Retrieving BASE library path;'; + put 'data _null_;'; + put 'length up_uri $256 path cat_path $1024;'; + put 'retain cat_path;'; + put 'call missing (of _all_);'; + put '/* get all the filepaths of the UsingPackages association */'; + put 'i=1;'; + put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; + put 'do while (rc3>0);'; + put '/* get the DirectoryName attribute of the previous object */'; + put 'rc4=metadata_getattr(up_uri,''DirectoryName'',path);'; + put 'if i=1 then path = ''("''!!trim(path)!!''" '';'; + put 'else path ='' "''!!trim(path)!!''" '';'; + put 'cat_path = trim(cat_path) !! " " !! trim(path) ;'; + put 'i+1;'; + put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; + put 'end;'; + put 'cat_path = trim(cat_path) !! ")";'; + put '&mD.putlog "NOTE: Getting physical path for &libref library";'; + put '&mD.putlog rc3= up_uri= rc4= cat_path= path=;'; + put '&mD.putlog "NOTE: Libname cmd will be:";'; + put '&mD.putlog "libname &libref" cat_path;'; + put 'call symputx("filepath",cat_path,''l'');'; + put 'run;'; + put '%if %sysevalf(&sysver<9.4) %then %do;'; + put 'libname &libref &filepath;'; + put '%end;'; + put '%else %do;'; + put '/* apply the new filelocks option to cater for temporary locks */'; + put 'libname &libref &filepath filelockwait=5;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=REMOTE %then %do;'; + put 'data x;'; + put 'length rcCon rcProp rc k 3 uriCon uriProp PropertyValue PropertyName'; + put 'Delimiter $256 properties $2048;'; + put 'retain properties;'; + put 'rcCon = metadata_getnasn("&liburi", "LibraryConnection", 1, uriCon);'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", 1, uriProp);'; + put 'k = 1;'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; + put 'do while (rcProp > 0);'; + put 'rc = metadata_getattr(uriProp , "DefaultValue",PropertyValue);'; + put 'rc = metadata_getattr(uriProp , "PropertyName",PropertyName);'; + put 'rc = metadata_getattr(uriProp , "Delimiter",Delimiter);'; + put 'properties = trim(properties) !! " " !! trim(PropertyName)'; + put '!! trim(Delimiter) !! trim(PropertyValue);'; + put 'output;'; + put 'k+1;'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; + put 'end;'; + put '%&mD.put NOTE: Getting properties for REMOTE SHARE &libref library;'; + put '&mD.put _all_;'; + put '%&mD.put NOTE: Libname cmd will be:;'; + put '%&mD.put libname &libref &engine &properties slibref=&libref;'; + put 'call symputx ("properties",trim(properties),''l'');'; + put 'run;'; + put 'libname &libref &engine &properties slibref=&libref;'; + put '%end;'; + put '%else %if &engine=OLEDB %then %do;'; + put '%&mD.put NOTE: Retrieving OLEDB connection details;'; + put 'data _null_;'; + put 'length domain datasource provider properties schema'; + put 'connx_uri domain_uri conprop_uri lib_uri schema_uri value $256.;'; + put 'call missing (of _all_);'; + put '/* get source connection ID */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; + put '/* get connection domain */'; + put 'rc1=metadata_getnasn(connx_uri,''Domain'',1,domain_uri);'; + put 'rc2=metadata_getattr(domain_uri,''Name'',domain);'; + put '&mD.putlog / ''NOTE: '' // ''NOTE- connection id: '' connx_uri ;'; + put '&mD.putlog ''NOTE- domain: '' domain;'; + put '/* get DSN and PROVIDER from connection properties */'; + put 'i=0;'; + put 'do until (rc<0);'; + put 'i+1;'; + put 'rc=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; + put 'rc2=metadata_getattr(conprop_uri,''Name'',value);'; + put 'if value=''Connection.OLE.Property.DATASOURCE.Name.xmlKey.txt'' then do;'; + put 'rc3=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; + put 'end;'; + put 'else if value=''Connection.OLE.Property.PROVIDER.Name.xmlKey.txt'' then do;'; + put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',provider);'; + put 'end;'; + put 'else if value=''Connection.OLE.Property.PROPERTIES.Name.xmlKey.txt'' then'; + put 'do;'; + put 'rc5=metadata_getattr(conprop_uri,''DefaultValue'',properties);'; + put 'end;'; + put 'end;'; + put '&mD.putlog ''NOTE- dsn/provider/properties: '' /'; + put 'datasource provider properties;'; + put '&mD.putlog ''NOTE- schema: '' schema // ''NOTE-'';'; + put '/* get SCHEMA */'; + put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,lib_uri);'; + put 'rc7=metadata_getattr(lib_uri,''SchemaName'',schema);'; + put 'call symputx(''SQL_domain'',domain,''l'');'; + put 'call symputx(''SQL_dsn'',datasource,''l'');'; + put 'call symputx(''SQL_provider'',provider,''l'');'; + put 'call symputx(''SQL_properties'',properties,''l'');'; + put 'call symputx(''SQL_schema'',schema,''l'');'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put 'proc sql &sql_options;'; + put 'connect to OLEDB as &open_passthrough(INSERT_SQL=YES'; + put '/* need additional properties to make this work */'; + put 'properties=(''Integrated Security''=SSPI'; + put '''Persist Security Info''=True'; + put '%sysfunc(compress(%str(&SQL_properties),%str(())))'; + put ')'; + put 'DATASOURCE=&sql_dsn PROMPT=NO'; + put 'PROVIDER=&sql_provider SCHEMA=&sql_schema CONNECTION = GLOBAL);'; + put '%end;'; + put '%else %do;'; + put 'LIBNAME &libref OLEDB PROPERTIES=&sql_properties'; + put 'DATASOURCE=&sql_dsn PROVIDER=&sql_provider SCHEMA=&sql_schema'; + put '%if %length(&sql_domain)>0 %then %do;'; + put 'authdomain="&sql_domain"'; + put '%end;'; + put 'connection=shared;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=ODBC %then %do;'; + put '&mD.%put NOTE: Retrieving ODBC connection details;'; + put 'data _null_;'; + put 'length connx_uri conprop_uri value datasource up_uri schema $256.;'; + put 'call missing (of _all_);'; + put '/* get source connection ID */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; + put '/* get connection properties */'; + put 'i=0;'; + put 'do until (rc2<0);'; + put 'i+1;'; + put 'rc2=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; + put 'rc3=metadata_getattr(conprop_uri,''Name'',value);'; + put 'if value=''Connection.ODBC.Property.DATASRC.Name.xmlKey.txt'' then do;'; + put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; + put 'rc2=-1;'; + put 'end;'; + put 'end;'; + put '/* get SCHEMA */'; + put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,up_uri);'; + put 'rc7=metadata_getattr(up_uri,''SchemaName'',schema);'; + put '&mD.put rc= connx_uri= rc2= conprop_uri= rc3= value= rc4= datasource='; + put 'rc6= up_uri= rc7= schema=;'; + put 'call symputx(''SQL_schema'',schema,''l'');'; + put 'call symputx(''SQL_dsn'',datasource,''l'');'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put 'proc sql &sql_options;'; + put 'connect to ODBC as &open_passthrough'; + put '(INSERT_SQL=YES DATASRC=&sql_dsn. CONNECTION=global);'; + put '%end;'; + put '%else %do;'; + put 'libname &libref ODBC DATASRC=&sql_dsn SCHEMA=&sql_schema;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=POSTGRES %then %do;'; + put '%put NOTE: Obtaining POSTGRES library details;'; + put 'data _null_;'; + put 'length database ignore_read_only_columns direct_exe preserve_col_names'; + put 'preserve_tab_names server schema authdomain user password'; + put 'prop name value uri urisrc $256.;'; + put 'call missing (of _all_);'; + put '/* get database value */'; + put 'prop=''Connection.DBMS.Property.DB.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,database,"");'; + put 'if database^='''' then database=''database=''!!quote(trim(database));'; + put 'call symputx(''database'',database,''l'');'; + put '/* get IGNORE_READ_ONLY_COLUMNS value */'; + put 'prop=''Library.DBMS.Property.DBIROC.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,ignore_read_only_columns,"");'; + put 'if ignore_read_only_columns^='''' then ignore_read_only_columns='; + put '''ignore_read_only_columns=''!!ignore_read_only_columns;'; + put 'call symputx(''ignore_read_only_columns'',ignore_read_only_columns,''l'');'; + put '/* get DIRECT_EXE value */'; + put 'prop=''Library.DBMS.Property.DirectExe.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,direct_exe,"");'; + put 'if direct_exe^='''' then direct_exe=''direct_exe=''!!direct_exe;'; + put 'call symputx(''direct_exe'',direct_exe,''l'');'; + put '/* get PRESERVE_COL_NAMES value */'; + put 'prop=''Library.DBMS.Property.PreserveColNames.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,preserve_col_names,"");'; + put 'if preserve_col_names^='''' then preserve_col_names='; + put '''preserve_col_names=''!!preserve_col_names;'; + put 'call symputx(''preserve_col_names'',preserve_col_names,''l'');'; + put '/* get PRESERVE_TAB_NAMES value */'; + put '/* be careful with PRESERVE_TAB_NAMES=YES - it will mean your table will'; + put 'become case sensitive!! */'; + put 'prop=''Library.DBMS.Property.PreserveTabNames.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,preserve_tab_names,"");'; + put 'if preserve_tab_names^='''' then preserve_tab_names='; + put '''preserve_tab_names=''!!preserve_tab_names;'; + put 'call symputx(''preserve_tab_names'',preserve_tab_names,''l'');'; + put '/* get SERVER value */'; + put 'if metadata_getnasn("&liburi","LibraryConnection",1,uri)>0 then do;'; + put 'prop=''Connection.DBMS.Property.SERVER.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop(uri,prop,server,"");'; + put 'end;'; + put 'if server^='''' then server=''server=''!!quote(cats(server));'; + put 'call symputx(''server'',server,''l'');'; + put '/* get SCHEMA value */'; + put 'if metadata_getnasn("&liburi","UsingPackages",1,uri)>0 then do;'; + put 'rc=metadata_getattr(uri,"SchemaName",schema);'; + put 'end;'; + put 'if schema^='''' then schema=''schema=''!!schema;'; + put 'call symputx(''schema'',schema,''l'');'; + put '/* get AUTHDOMAIN value */'; + put '/* this is only useful if the user account contains that auth domain'; + put 'if metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then do;'; + put 'rc=metadata_getnasn(uri,"Domain",1,urisrc);'; + put 'rc=metadata_getattr(urisrc,"Name",authdomain);'; + put 'end;'; + put 'if authdomain^='''' then authdomain=''authdomain=''!!quote(trim(authdomain));'; + put '*/'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/* get user & pass */'; + put 'if authdomain='''' & metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then'; + put 'do;'; + put 'rc=metadata_getattr(uri,"UserID",user);'; + put 'rc=metadata_getattr(uri,"Password",password);'; + put 'end;'; + put 'if user^='''' then do;'; + put 'user=''user=''!!quote(trim(user));'; + put 'password=''password=''!!quote(trim(password));'; + put 'end;'; + put 'call symputx(''user'',user,''l'');'; + put 'call symputx(''password'',password,''l'');'; + put '&md.put _all_;'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put '%put %str(WARN)ING: Passthrough option for postgres not yet supported;'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put '%if &mdebug=1 %then %do;'; + put '%put NOTE: Executing the following:/;'; + put '%put NOTE- libname &libref POSTGRES &database &ignore_read_only_columns;'; + put '%put NOTE- &direct_exe &preserve_col_names &preserve_tab_names;'; + put '%put NOTE- &server &schema &authdomain &user &password //;'; + put '%end;'; + put 'libname &libref POSTGRES &database &ignore_read_only_columns &direct_exe'; + put '&preserve_col_names &preserve_tab_names &server &schema &authdomain'; + put '&user &password;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=ORACLE %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null_;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema $256;'; + put 'call missing (of _all_);'; + put '/* get auth domain */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; + put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; + put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/* path */'; + put 'rc=metadata_getprop(assocuri1,'; + put '''Connection.Oracle.Property.PATH.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref ORACLE path=&path schema=&schema;'; + put '%put NOTE- authdomain=&authdomain;'; + put '%put NOTE-;'; + put 'libname &libref ORACLE path=&path schema=&schema authdomain=&authdomain;'; + put '%end;'; + put '%else %if &engine=SQLSVR %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; + put 'passwd $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; + put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; + put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; + put 'call symputx(''user'',userid,''l'');'; + put 'call symputx(''pass'',passwd,''l'');'; + put '/* path */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; + put 'rc=metadata_getprop(assocuri2,'; + put '''Connection.SQL.Property.Datasrc.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref SQLSVR datasrc=&path schema=&schema ;'; + put '%put NOTE- user="&user" pass="XXX";'; + put '%put NOTE-;'; + put 'libname &libref SQLSVR datasrc=&path schema=&schema user="&user" pass="&pass";'; + put '%end;'; + put '%else %if &engine=TERADATA %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; + put 'passwd $256;'; + put 'call missing (of _all_);'; + put '/* get auth domain */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; + put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; + put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/*'; + put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; + put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; + put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; + put 'call symputx(''user'',userid,''l'');'; + put 'call symputx(''pass'',passwd,''l'');'; + put '*/'; + put '/* path */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; + put 'rc=metadata_getprop(assocuri2,'; + put '''Connection.Teradata.Property.SERVER.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref TERADATA server="&path" schema=&schema ;'; + put '%put NOTe- authdomain=&authdomain;'; + put '%put NOTE-;'; + put 'libname &libref TERADATA server="&path" schema=&schema authdomain=&authdomain;'; + put '%end;'; + put '%else %if &engine= %then %do;'; + put '%put NOTE: Libref &libref is not registered in metadata;'; + put '%&mAbort.mp_abort('; + put 'msg=%str(ERR)OR: Libref &libref is not registered in metadata'; + put ',mac=mm_assigndirectlib.sas);'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put '%put %str(WARN)ING: Engine &engine is currently unsupported;'; + put '%put %str(WARN)ING- Please contact your support team.;'; + put '%return;'; + put '%end;'; + put '%mend mm_assigndirectlib;'; + put '%macro mm_getrepos('; + put 'outds=work.mm_getrepos'; + put ')/*/STORE SOURCE*/;'; + put '* use a temporary fileref to hold the response;'; + put 'filename response temp;'; + put '/* get list of libraries */'; + put 'proc metadata in='; + put '"1"'; + put 'out=response;'; + put 'run;'; + put '/* write the response to the log for debugging */'; + put '/*'; + put 'data _null_;'; + put 'infile response lrecl=1048576;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '*/'; + put '/* create an XML map to read the response */'; + put 'filename sxlemap temp;'; + put 'data _null_;'; + put 'file sxlemap;'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository";'; + put 'put "";'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Id";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Name";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Desc";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@DefaultNS";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryType";'; + put 'put "characterstring20";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryFormat";'; + put 'put "characterstring10";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@Access";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@CurrentAccess";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@PauseState";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Path";'; + put 'put "";'; + put 'put "characterstring256";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Engine";'; + put 'put "";'; + put 'put "characterstring8";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Options";'; + put 'put "";'; + put 'put "characterstring32";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataCreated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataUpdated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put ''
'';'; + put 'run;'; + put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; + put 'proc sort data= _XML_.SASRepos out=&outds;'; + put 'by name;'; + put 'run;'; + put '/* clear references */'; + put 'filename sxlemap clear;'; + put 'filename response clear;'; + put 'libname _XML_ clear;'; + put '%mend mm_getrepos;'; + put '%macro dc_assignlib(type,libref,passthru=);'; + put '%put &sysmacroname entry vars:;'; + put '%put _local_;'; + put '/* take current repository */'; + put '%local repo repocnt x;'; + put '%let repo=%sysfunc(getoption(metarepository));'; + put '/* get list of repositories and filter */'; + put '%mm_getrepos(outds=repos)'; + put '%let repocnt=0;'; + put 'data repos;'; + put 'set repos;'; + put 'where repositorytype in(''CUSTOM'',''FOUNDATION'')'; + put '& upcase(name) ne "%upcase(&repo)";'; + put 'keep id name ;'; + put 'call symputx(cats(''repo'',_n_),name,''l'');'; + put 'call symputx(''repocnt'',_n_,''l'');'; + put 'run;'; + put '/* find out which of these repositories has the libref we are searching for */'; + put '%local lib_uri;'; + put '%let lib_uri=NOTFOUND;'; + put 'data _null_; /* check default repo first */'; + put 'length lib_uri $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; + put 'run;'; + put '%if &lib_uri=NOTFOUND %then %do;'; + put '%do x=1 %to &repocnt;'; + put 'options metarepository=&&repo&x;'; + put 'data _null_;'; + put 'length lib_uri $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; + put 'run;'; + put '%if &lib_uri ne NOTFOUND %then %let x=%eval(&repocnt+1);'; + put '%end;'; + put '%end;'; + put '%if &type=READ %then %do;'; + put '%mm_assignlib(&libref)'; + put '%end;'; + put '%else %if &type=WRITE %then %do;'; + put '%mm_assigndirectlib(&libref,open_passthrough=&passthru)'; + put '%end;'; + put 'options metarepository=&repo;'; + put '%mend dc_assignlib;'; + put '%macro mf_mkdir(dir'; + put ')/*/STORE SOURCE*/;'; + put '%local lastchar child parent;'; + put '%let lastchar = %substr(&dir, %length(&dir));'; + put '%if (%bquote(&lastchar) eq %str(:)) %then %do;'; + put '/* Cannot create drive mappings */'; + put '%return;'; + put '%end;'; + put '%if (%bquote(&lastchar)=%str(/)) or (%bquote(&lastchar)=%str(\)) %then %do;'; + put '/* last char is a slash */'; + put '%if (%length(&dir) eq 1) %then %do;'; + put '/* one single slash - root location is assumed to exist */'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put '/* strip last slash */'; + put '%let dir = %substr(&dir, 1, %length(&dir)-1);'; + put '%end;'; + put '%end;'; + put '%if (%sysfunc(fileexist(%bquote(&dir))) = 0) %then %do;'; + put '/* directory does not exist so prepare to create */'; + put '/* first get the childmost directory */'; + put '%let child = %scan(&dir, -1, %str(/\:));'; + put '/*'; + put 'If child name = path name then there are no parents to create. Else'; + put 'they must be recursively scanned.'; + put '*/'; + put '%if (%length(&dir) gt %length(&child)) %then %do;'; + put '%let parent = %substr(&dir, 1, %length(&dir)-%length(&child));'; + put '%mf_mkdir(&parent)'; + put '%end;'; + put '/*'; + put 'Now create the directory. Complain loudly of any errs.'; + put '*/'; + put '%let dname = %sysfunc(dcreate(&child, &parent));'; + put '%if (%bquote(&dname) eq ) %then %do;'; + put '%put %str(ERR)OR: could not create &parent + &child;'; + put '%abort cancel;'; + put '%end;'; + put '%else %do;'; + put '%put Directory created: &dir;'; + put '%end;'; + put '%end;'; + put '/* exit quietly if directory did exist.*/'; + put '%mend mf_mkdir;'; + put '%macro mddl_sas_cntlout(libds=WORK.CNTLOUT);'; + put 'proc sql;'; + put 'create table &libds('; + put 'FMTNAME char(32) label=''Format name'''; + put '/*'; + put 'to accommodate larger START values, mp_loadformat.sas will need the'; + put 'SQL dependency removed (proc sql needs to accommodate 3 index values in'; + put 'a 32767 ibufsize limit)'; + put '*/'; + put ',START char(10000) label=''Starting value for format'''; + put ',END char(32767) label=''Ending value for format'''; + put ',LABEL char(32767) label=''Format value label'''; + put ',MIN num length=3 label=''Minimum length'''; + put ',MAX num length=3 label=''Maximum length'''; + put ',DEFAULT num length=3 label=''Default length'''; + put ',LENGTH num length=3 label=''Format length'''; + put ',FUZZ num label=''Fuzz value'''; + put ',PREFIX char(2) label=''Prefix characters'''; + put ',MULT num label=''Multiplier'''; + put ',FILL char(1) label=''Fill character'''; + put ',NOEDIT num length=3 label=''Is picture string noedit?'''; + put ',TYPE char(1) label=''Type of format'''; + put ',SEXCL char(1) label=''Start exclusion'''; + put ',EEXCL char(1) label=''End exclusion'''; + put ',HLO char(13) label=''Additional information'''; + put ',DECSEP char(1) label=''Decimal separator'''; + put ',DIG3SEP char(1) label=''Three-digit separator'''; + put ',DATATYPE char(8) label=''Date/time/datetime?'''; + put ',LANGUAGE char(8) label=''Language for date strings'''; + put ');'; + put '%mend mddl_sas_cntlout;'; + put '%macro mf_getuniquename(prefix=MC);'; + put '&prefix.%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32-%length(&prefix))'; + put '%mend mf_getuniquename;'; + put '%macro mp_cntlout('; + put 'iftrue=(1=1)'; + put ',libcat='; + put ',cntlout=work.fmtextract'; + put ',fmtlist=0'; + put ')/*/STORE SOURCE*/;'; + put '%local ddlds cntlds i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%let ddlds=%mf_getuniquename();'; + put '%let cntlds=%mf_getuniquename();'; + put '%mddl_sas_cntlout(libds=&ddlds)'; + put '%if %index(&libcat,-)>0 and %scan(&libcat,2,-)=FC %then %do;'; + put '%let libcat=%scan(&libcat,1,-);'; + put '%end;'; + put 'proc format lib=&libcat cntlout=&cntlds;'; + put '%if "&fmtlist" ne "0" %then %do;'; + put 'select'; + put '%do i=1 %to %sysfunc(countw(&fmtlist));'; + put '%scan(&fmtlist,&i,%str( ))'; + put '%end;'; + put ';'; + put '%end;'; + put 'run;'; + put 'data &cntlout;'; + put 'if 0 then set &ddlds;'; + put 'set &cntlds;'; + put 'if type="N" then do;'; + put 'start=cats(start);'; + put 'end=cats(end);'; + put 'end;'; + put 'run;'; + put 'proc sort;'; + put 'by fmtname start;'; + put 'run;'; + put 'proc sql;'; + put 'drop table &ddlds,&cntlds;'; + put '%mend mp_cntlout;'; + put '/** @endcond */'; + put '%macro mf_getvarlist(libds'; + put ',dlm=%str( )'; + put ',quote=no'; + put ',typefilter=A'; + put ')/*/STORE SOURCE*/;'; + put '/* declare local vars */'; + put '%local outvar dsid nvars x rc dlm q var vtype;'; + put '/* credit Rowland Hale - byte34 is double quote, 39 is single quote */'; + put '%if %upcase("e)=DOUBLE %then %let q=%qsysfunc(byte(34));'; + put '%else %if %upcase("e)=SINGLE %then %let q=%qsysfunc(byte(39));'; + put '/* open dataset in macro */'; + put '%let dsid=%sysfunc(open(&libds));'; + put '%if &dsid %then %do;'; + put '%let nvars=%sysfunc(attrn(&dsid,NVARS));'; + put '%if &nvars>0 %then %do;'; + put '/* add variables with supplied delimeter */'; + put '%do x=1 %to &nvars;'; + put '/* get variable type */'; + put '%let vtype=%sysfunc(vartype(&dsid,&x));'; + put '%if &vtype=&typefilter or &typefilter=A %then %do;'; + put '%let var=&q.%sysfunc(varname(&dsid,&x))&q.;'; + put '%if &var=&q&q %then %do;'; + put '%put &sysmacroname: Empty column found in &libds!;'; + put '%let var=&q. &q.;'; + put '%end;'; + put '%if %quote(&outvar)=%quote() %then %let outvar=&var;'; + put '%else %let outvar=&outvar.&dlm.&var.;'; + put '%end;'; + put '%end;'; + put '%end;'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: Unable to open &libds (rc=&dsid);'; + put '%put &sysmacroname: SYSMSG= %sysfunc(sysmsg());'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%do;%unquote(&outvar)%end;'; + put '%mend mf_getvarlist;'; + put '%macro mf_wordsInStr1ButNotStr2('; + put 'Str1= /* string containing words to extract */'; + put ',Str2= /* used to compare with the extract string */'; + put ')/*/STORE SOURCE*/;'; + put '%local count_base count_extr i i2 extr_word base_word match outvar;'; + put '%if %length(&str1)=0 or %length(&str2)=0 %then %do;'; + put '%put base string (str1)= &str1;'; + put '%put compare string (str2) = &str2;'; + put '%return;'; + put '%end;'; + put '%let count_base=%sysfunc(countw(&Str2));'; + put '%let count_extr=%sysfunc(countw(&Str1));'; + put '%do i=1 %to &count_extr;'; + put '%let extr_word=%scan(&Str1,&i,%str( ));'; + put '%let match=0;'; + put '%do i2=1 %to &count_base;'; + put '%let base_word=%scan(&Str2,&i2,%str( ));'; + put '%if &extr_word=&base_word %then %let match=1;'; + put '%end;'; + put '%if &match=0 %then %let outvar=&outvar &extr_word;'; + put '%end;'; + put '&outvar'; + put '%mend mf_wordsInStr1ButNotStr2;'; + put '%macro mp_dirlist(path=%sysfunc(pathname(work))'; + put ', fref=0'; + put ', outds=work.mp_dirlist'; + put ', getattrs=NO'; + put ', maxdepth=0'; + put ', level=0 /* The level of recursion to perform. For internal use only. */'; + put ')/*/STORE SOURCE*/;'; + put '%let getattrs=%upcase(&getattrs)XX;'; + put '/* temp table */'; + put '%local out_ds;'; + put 'data;run;'; + put '%let out_ds=%str(&syslast);'; + put '/* drop main (top) table if it exists */'; + put '%if &level=0 %then %do;'; + put '%mp_dropmembers(%scan(&outds,-1,.), libref=WORK)'; + put '%end;'; + put 'data &out_ds(compress=no'; + put 'keep=file_or_folder filepath filename ext msg directory level'; + put ');'; + put 'length directory filepath $500 fref fref2 $8 file_or_folder $6 filename $80'; + put 'ext $20 msg $200 foption $16;'; + put 'if _n_=1 then call missing(of _all_);'; + put 'retain level &level;'; + put '%if &fref=0 %then %do;'; + put 'rc = filename(fref, "&path");'; + put '%end;'; + put '%else %do;'; + put 'fref="&fref";'; + put 'rc=0;'; + put '%end;'; + put 'if rc = 0 then do;'; + put 'did = dopen(fref);'; + put 'if did=0 then do;'; + put 'putlog "NOTE: This directory is empty, or does not exist - &path";'; + put 'msg=sysmsg();'; + put 'put msg;'; + put 'put _all_;'; + put 'stop;'; + put 'end;'; + put '/* attribute is OS-dependent - could be "Directory" or "Directory Name" */'; + put 'numopts=doptnum(did);'; + put 'do i=1 to numopts;'; + put 'foption=doptname(did,i);'; + put 'if foption=:''Directory'' then i=numopts;'; + put 'end;'; + put 'directory=dinfo(did,foption);'; + put 'rc = filename(fref);'; + put 'end;'; + put 'else do;'; + put 'msg=sysmsg();'; + put 'put _all_;'; + put 'stop;'; + put 'end;'; + put 'dnum = dnum(did);'; + put 'do i = 1 to dnum;'; + put 'filename = dread(did, i);'; + put 'filepath=cats(directory,''/'',filename);'; + put 'rc = filename(fref2,filepath);'; + put 'midd=dopen(fref2);'; + put 'dmsg=sysmsg();'; + put 'if did > 0 then file_or_folder=''folder'';'; + put 'rc=dclose(midd);'; + put 'midf=fopen(fref2);'; + put 'fmsg=sysmsg();'; + put 'if midf > 0 then file_or_folder=''file'';'; + put 'rc=fclose(midf);'; + put 'if index(fmsg,''File is in use'') or index(dmsg,''is not a directory'')'; + put 'then file_or_folder=''file'';'; + put 'else if index(fmsg,''Insufficient authorization'') then file_or_folder=''file'';'; + put 'else if file_or_folder='''' then file_or_folder=''locked'';'; + put 'if file_or_folder=''file'' then do;'; + put 'ext = prxchange(''s/.*\.{1,1}(.*)/$1/'', 1, filename);'; + put 'if filename = ext then ext = '' '';'; + put 'end;'; + put 'else do;'; + put 'ext='''';'; + put 'file_or_folder=''folder'';'; + put 'end;'; + put 'output;'; + put 'end;'; + put 'rc = dclose(did);'; + put 'stop;'; + put 'run;'; + put '%if %substr(&getattrs,1,1)=Y %then %do;'; + put 'data &out_ds;'; + put 'set &out_ds;'; + put 'length infoname infoval $60 fref $8;'; + put 'if _n_=1 then call missing(fref);'; + put 'rc=filename(fref,filepath);'; + put 'drop rc infoname fid i close fref;'; + put 'if file_or_folder=''file'' then do;'; + put 'fid=fopen(fref);'; + put 'if fid le 0 then do;'; + put 'msg=sysmsg();'; + put 'putlog "Could not open file:" filepath fid= ;'; + put 'sasname=''_MCNOTVALID_'';'; + put 'output;'; + put 'end;'; + put 'else do i=1 to foptnum(fid);'; + put 'infoname=foptname(fid,i);'; + put 'infoval=finfo(fid,infoname);'; + put 'sasname=compress(infoname, ''_'', ''adik'');'; + put 'if anydigit(sasname)=1 then sasname=substr(sasname,anyalpha(sasname));'; + put 'if upcase(sasname) ne ''FILENAME'' then output;'; + put 'end;'; + put 'close=fclose(fid);'; + put 'end;'; + put 'else do;'; + put 'fid=dopen(fref);'; + put 'if fid le 0 then do;'; + put 'msg=sysmsg();'; + put 'putlog "Could not open folder:" filepath fid= ;'; + put 'sasname=''_MCNOTVALID_'';'; + put 'output;'; + put 'end;'; + put 'else do i=1 to doptnum(fid);'; + put 'infoname=doptname(fid,i);'; + put 'infoval=dinfo(fid,infoname);'; + put 'sasname=compress(infoname, ''_'', ''adik'');'; + put 'if anydigit(sasname)=1 then sasname=substr(sasname,anyalpha(sasname));'; + put 'if upcase(sasname) ne ''FILENAME'' then output;'; + put 'end;'; + put 'close=dclose(fid);'; + put 'end;'; + put 'run;'; + put 'proc sort;'; + put 'by filepath sasname;'; + put 'proc transpose data=&out_ds out=&out_ds(drop=_:);'; + put 'id sasname;'; + put 'var infoval;'; + put 'by filepath file_or_folder filename ext ;'; + put 'run;'; + put '%end;'; + put 'data &out_ds;'; + put 'set &out_ds(where=(filepath ne ''''));'; + put 'run;'; + put '/**'; + put '* The above transpose can mean that some updates create additional columns.'; + put '* This necessitates the occasional use of datastep over proc append.'; + put '*/'; + put '%if %mf_existds(&outds) %then %do;'; + put '%local basevars appvars newvars;'; + put '%let basevars=%mf_getvarlist(&outds);'; + put '%let appvars=%mf_getvarlist(&out_ds);'; + put '%let newvars=%length(%mf_wordsinstr1butnotstr2(Str1=&appvars,Str2=&basevars));'; + put '%if &newvars>0 %then %do;'; + put 'data &outds;'; + put 'set &outds &out_ds;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put 'proc append base=&outds data=&out_ds force nowarn;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put 'proc append base=&outds data=&out_ds;'; + put 'run;'; + put '%end;'; + put '/* recursive call */'; + put '%if &maxdepth>&level or &maxdepth=MAX %then %do;'; + put 'data _null_;'; + put 'set &out_ds;'; + put 'where file_or_folder=''folder'';'; + put 'length code $10000;'; + put 'code=cats(''%nrstr(%mp_dirlist(path='',filepath,",outds=&outds"'; + put ',",getattrs=&getattrs,level=%eval(&level+1),maxdepth=&maxdepth))");'; + put 'put code=;'; + put 'call execute(code);'; + put 'run;'; + put '%end;'; + put '/* tidy up */'; + put 'proc sql;'; + put 'drop table &out_ds;'; + put '%mend mp_dirlist;'; + put '%macro mf_getattrc('; + put 'libds'; + put ',attr'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid rc;'; + put '%let dsid=%sysfunc(open(&libds,is));'; + put '%if &dsid = 0 %then %do;'; + put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; + put '%put %sysfunc(sysmsg());'; + put '-1'; + put '%end;'; + put '%else %do;'; + put '%sysfunc(attrc(&dsid,&attr))'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%mend mf_getattrc;'; + put '%macro mp_lockfilecheck('; + put 'libds'; + put ')/*/STORE SOURCE*/;'; + put 'data _null_;'; + put 'if _n_=1 then putlog "&sysmacroname entry vars:";'; + put 'set sashelp.vmacro;'; + put 'where scope="&sysmacroname";'; + put 'put name ''='' value;'; + put 'run;'; + put '%mp_abort(iftrue= (&syscc>0)'; + put ',mac=checklock.sas'; + put ',msg=Aborting with syscc=&syscc on entry.'; + put ')'; + put '%mp_abort(iftrue= ("&libds"="0")'; + put ',mac=&sysmacroname'; + put ',msg=%str(libds not provided)'; + put ')'; + put '%local msg lib ds;'; + put '%let lib=%upcase(%scan(&libds,1,.));'; + put '%let ds=%upcase(%scan(&libds,2,.));'; + put '/* in DC, format catalogs are passed with a -FC suffix. No saslock here! */'; + put '%if %scan(&libds,2,-)=FC %then %do;'; + put '%put &sysmacroname: Format Catalog detected, no lockfile applied to &libds;'; + put '%return;'; + put '%end;'; + put '/* do not proceed if no observations can be processed */'; + put '%let msg=options obs = 0. syserrortext=%superq(syserrortext);'; + put '%mp_abort(iftrue= (%sysfunc(getoption(OBS))=0)'; + put ',mac=checklock.sas'; + put ',msg=%superq(msg)'; + put ')'; + put 'data _null_;'; + put 'putlog "Checking engine & member type";'; + put 'run;'; + put '%local engine memtype;'; + put '%let memtype=%mf_getattrc(&libds,MTYPE);'; + put '%let engine=%mf_getattrc(&libds,ENGINE);'; + put '%if &engine ne V9 and &engine ne BASE %then %do;'; + put 'data _null_;'; + put 'putlog "Lib &lib is not assigned using BASE engine - uses &engine instead";'; + put 'putlog "SAS lock check will not be performed";'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%else %if &memtype ne DATA %then %do;'; + put '%put NOTE: Cannot lock a VIEW!! Memtype=&memtype;'; + put '%return;'; + put '%end;'; + put 'data _null_;'; + put 'putlog "Engine = &engine, memtype=&memtype";'; + put 'putlog "Attempting lock statement";'; + put 'run;'; + put 'lock &libds;'; + put '%local abortme;'; + put '%let abortme=0;'; + put '%if &syscc>0 or &SYSLCKRC ne 0 %then %do;'; + put '%let msg=Unable to apply lock on &libds (SYSLCKRC=&SYSLCKRC syscc=&syscc);'; + put '%put %str(ERR)OR: &sysmacroname: &msg;'; + put '%let abortme=1;'; + put '%end;'; + put 'lock &libds clear;'; + put '%mp_abort(iftrue= (&abortme=1)'; + put ',mac=&sysmacroname'; + put ',msg=%superq(msg)'; + put ')'; + put '%mend mp_lockfilecheck;'; + put '%macro mp_lockanytable('; + put 'action'; + put ',lib= WORK'; + put ',ds=0'; + put ',ref='; + put ',ctl_ds=0'; + put ',loops=25'; + put ',loop_secs=1'; + put ');'; + put 'data _null_;'; + put 'if _n_=1 then putlog "&sysmacroname entry vars:";'; + put 'set sashelp.vmacro;'; + put 'where scope="&sysmacroname";'; + put 'put name ''='' value;'; + put 'run;'; + put '%mp_abort(iftrue= ("&ds"="0" and &action ne MAKETABLE)'; + put ',mac=&sysmacroname'; + put ',msg=%str(dataset was not provided)'; + put ')'; + put '%mp_abort(iftrue= (&ctl_ds=0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Control dataset was not provided)'; + put ')'; + put '/* set up lib & mac vars */'; + put '%let lib=%upcase(&lib);'; + put '%let ds=%upcase(&ds);'; + put '%let action=%upcase(&action);'; + put '%local user x trans msg abortme;'; + put '%let user=%mf_getuser();'; + put '%let abortme=0;'; + put '%mp_abort(iftrue= (&action ne LOCK & &action ne UNLOCK & &action ne MAKETABLE)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Invalid action (&action) provided)'; + put ')'; + put '/* if an err condition exists, exit before we even begin */'; + put '%mp_abort(iftrue= (&syscc>0 and &action=LOCK)'; + put ',mac=&sysmacroname'; + put ',msg=%str(aborting due to syscc=&syscc on LOCK entry)'; + put ')'; + put '/* do not bother locking work tables (else may affect all WORK libraries) */'; + put '%if (%upcase(&lib)=WORK or %str(&lib)=%str()) & &action ne MAKETABLE %then %do;'; + put '%put NOTE: WORK libraries will not be registered in the locking system.;'; + put '%return;'; + put '%end;'; + put '/* do not proceed if no observations can be processed */'; + put '%mp_abort(iftrue= (%sysfunc(getoption(OBS))=0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(cannot continue when options obs = 0)'; + put ')'; + put '%if &ACTION=LOCK %then %do;'; + put '/* abort if a SAS lock is already in place, or cannot be applied */'; + put '%mp_lockfilecheck(&lib..&ds)'; + put '/* next, check there is a record for this table */'; + put '%local record_exists_check;'; + put 'proc sql noprint;'; + put 'select count(*) into: record_exists_check from &ctl_ds'; + put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; + put 'quit;'; + put '%if &syscc>0 %then %put syscc=&syscc sqlrc=&sqlrc;'; + put '%if &record_exists_check=0 %then %do;'; + put 'data _null_;'; + put 'putlog "&sysmacroname: adding record to lock table..";'; + put 'run;'; + put 'data ;'; + put 'if 0 then set &ctl_ds;'; + put 'LOCK_LIB ="&lib";'; + put 'LOCK_DS="&ds";'; + put 'LOCK_STATUS_CD=''LOCKED'';'; + put 'LOCK_START_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt;'; + put 'LOCK_USER_NM="&user";'; + put 'LOCK_PID="&sysjobid";'; + put 'LOCK_REF="&ref";'; + put 'output;stop;'; + put 'run;'; + put '%let trans=&syslast;'; + put 'proc append base=&ctl_ds data=&trans;'; + put 'run;'; + put '%end;'; + put '/* if record does exist, perform lock attempts */'; + put '%else %do x=1 %to &loops;'; + put 'data _null_;'; + put 'putlog "&sysmacroname: attempting lock (iteration &x) "@;'; + put 'putlog "at %sysfunc(datetime(),datetime19.) ..";'; + put 'run;'; + put 'proc sql;'; + put 'update &ctl_ds'; + put 'set LOCK_STATUS_CD=''LOCKED'''; + put ', LOCK_START_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt'; + put ', LOCK_USER_NM="&user"'; + put ', LOCK_PID="&sysjobid"'; + put ', LOCK_REF="&ref"'; + put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; + put 'quit;'; + put '/**'; + put '* NOTE - occasionally SQL server will return an err code (deadlocked'; + put '* transaction). If so, ignore it, keep calm, and carry on..'; + put '*/'; + put '%if &syscc>0 %then %do;'; + put 'data _null_;'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'putlog "NOTE- &sysmacroname: Update failed. "@;'; + put 'putlog "Resetting err conditions and re-attempting.";'; + put 'putlog "NOTE- syscc=&syscc syserr=&syserr sqlrc=&sqlrc";'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'run;'; + put '%let syscc=0;'; + put '%let sqlrc=0;'; + put '%end;'; + put '/* now check if the record was successfully updated */'; + put '%local success_check;'; + put 'proc sql noprint;'; + put 'select count(*) into: success_check from &ctl_ds'; + put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds"'; + put 'and LOCK_PID="&sysjobid" and LOCK_STATUS_CD=''LOCKED'';'; + put 'quit;'; + put '%if &success_check=0 %then %do;'; + put '%if &x < &loops %then %do;'; + put '/* pause before next check */'; + put 'data _null_;'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'putlog "NOTE- &sysmacroname: table locked, waiting "@;'; + put 'putlog "%sysfunc(sleep(&loop_inc)) seconds.. ";'; + put 'putlog "NOTE- (iteration &x of &loops)";'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%let msg=Unable to lock &lib..&ds via &ctl_ds after &loops attempts.\n'; + put 'Please ask your administrator to investigate!;'; + put '%let abortme=1;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put 'data _null_;'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'putlog "NOTE- &sysmacroname: Table &lib..&ds locked at "@;'; + put 'putlog " %sysfunc(datetime(),datetime19.) (iteration &x)"@;'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'run;'; + put '%if &syscc>0 %then %do;'; + put '%put setting syscc(&syscc) back to 0;'; + put '%let syscc=0;'; + put '%end;'; + put '%let x=&loops; /* no more iterations needed */'; + put '%end;'; + put '%end;'; + put '%end;'; + put '%else %if &ACTION=UNLOCK %then %do;'; + put '%local status;'; + put 'proc sql noprint;'; + put 'select LOCK_STATUS_CD into: status from &ctl_ds'; + put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; + put 'quit;'; + put '%if &syscc>0 %then %put syscc=&syscc sqlrc=&sqlrc;'; + put '%if &status=LOCKED %then %do;'; + put 'data _null_;'; + put 'putlog "&sysmacroname: unlocking &lib..&ds:";'; + put 'run;'; + put 'proc sql;'; + put 'update &ctl_ds'; + put 'set LOCK_STATUS_CD=''UNLOCKED'''; + put ', LOCK_END_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt'; + put ', LOCK_USER_NM="&user"'; + put ', LOCK_PID="&sysjobid"'; + put ', LOCK_REF="&ref"'; + put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; + put 'quit;'; + put '%end;'; + put '%else %if &status=UNLOCKED %then %do;'; + put '%put %str(WAR)NING: &lib..&ds is already unlocked!;'; + put '%end;'; + put '%else %do;'; + put '%put NOTE: Unrecognised STATUS_CD (&status) in &ctl_ds;'; + put '%let abortme=1;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%let msg=lock_anytable given unsupported action (&action);'; + put '%let abortme=1;'; + put '%end;'; + put '/* catch errs - mp_abort must be called outside of a logic block */'; + put '%mp_abort(iftrue=(&abortme=1),'; + put 'msg=%superq(msg),'; + put 'mac=&sysmacroname'; + put ')'; + put '%exit_macro:'; + put 'data _null_;'; + put 'put "&sysmacroname: Exit vars: action=&action lib=&lib ds=&ds";'; + put 'put " syscc=&syscc sqlrc=&sqlrc syserr=&syserr";'; + put 'run;'; + put '%mend mp_lockanytable;'; + put '%macro mpe_loader('; + put 'mperef= /* name of subfolder containing the staged data */'; + put ',mDebug=0 /* set to 1 for development or debugging */'; + put ',submitted_reason_txt= /* populates column of same name in sumo_approvals*/'; + put ',approver= /* allows a userid to be provided for direct approval email */'; + put ',url= /* optional - url for debugging */'; + put ',dlm=%str(,)'; + put ',termstr=crlf'; + put ',dc_dttmtfmt=E8601DT26.6'; + put ');'; + put '%put entered mpe_loader from &=_program;'; + put '%put &=url;'; + put '%put &=termstr;'; + put '%put &=dlm;'; + put '/* determine full path to CSV directory */'; + put '%local now;'; + put '%let now=&dc_dttmtfmt;'; + put '%put &=now;'; + put '/**'; + put '* get full path to package (only subdirectory passed through)'; + put '*/'; + put '%mp_abort('; + put 'iftrue=(%mf_verifymacvars(mperef mpelocapprovals)=0)'; + put ',mac=bitemporal_dataloader'; + put ',msg=%str(Missing: mperef mpelocapprovals)'; + put ')'; + put '%let csv_dir=%trim(&mpelocapprovals/&mperef);'; + put '/* exit if package has already been uploaded */'; + put '%local check;'; + put 'proc sql noprint;'; + put 'select count(*) into: check'; + put 'from &mpelib..mpe_loads'; + put 'where csv_dir="&mperef";'; + put '%if &check %then %do;'; + put '%mp_abort(msg=Folder &mperef already has an entry in &mpelib..mpe_loads'; + put ',mac=mpe_loader.sas);'; + put '%return;'; + put '%end;'; + put '/* get CSV directory contents */'; + put '%mp_dirlist(path=&csv_dir,outds=WORK.getfiles)'; + put 'data WORK.csvs;'; + put 'set WORK.getfiles;'; + put 'if upcase(scan(filename,3,''.''))=''CSV'' then do;'; + put 'lib=upcase(scan(filename,1,''.''));'; + put 'ds=upcase(scan(filename,2,''.''));'; + put 'output;'; + put 'end;'; + put 'run;'; + put '/* get table attributes */'; + put 'proc sql noprint;'; + put 'create table WORK.sumo_tables as'; + put 'select a.filename, b.*'; + put 'from WORK.csvs a'; + put 'left join &mpelib..mpe_tables b'; + put 'on a.lib=b.libref'; + put 'and a.ds=b.dsn'; + put 'where b.tx_from le &now'; + put 'and &now lt b.tx_to;'; + put '/* define user as meta user if available */'; + put '%local user;'; + put '%let user=%mf_getuser();'; + put '/* check if there is actually a table to load */'; + put '%if %mf_getattrn(WORK.sumo_tables,NLOBS)=0 %then %do;'; + put '%let msg=Table not registered in &mpelib..mpe_tables;'; + put '%mpe_loadfail('; + put 'status=&msg'; + put ',now=&now'; + put ',mperef=&mperef'; + put ',dc_dttmtfmt=&dc_dttmtfmt.'; + put ')'; + put '%mp_abort(msg=&msg,mac=mpe_loader.sas);'; + put '%return;'; + put '%end;'; + put 'proc sql;'; + put 'insert into &mpelib..mpe_loads'; + put 'set USER_NM="&user"'; + put ',STATUS=''IN PROGRESS'''; + put ',CSV_dir="&mperef"'; + put ',PROCESSED_DTTM=&now;'; + put '/* import CSV */'; + put '%let droplist=;'; + put '%let attrib=;'; + put '%let droplist=;'; + put '%let libref=;'; + put '%let DS=;'; + put '/* get table info */'; + put 'data _null_;'; + put 'set sumo_tables;'; + put 'libds=upcase(cats(libref,''.'',dsn));'; + put 'call symputx(''orig_libds'',libds);'; + put 'is_fmt=0;'; + put 'if substr(cats(reverse(dsn)),1,3)=:''CF-'' then do;'; + put 'libds=scan(libds,1,''-'');'; + put 'putlog "Format Catalog Captured";'; + put 'libds=''work.fmtextract'';'; + put 'is_fmt=1;'; + put 'end;'; + put 'call symputx(''is_fmt'',is_fmt);'; + put 'call symputx(''libds'',libds);'; + put 'call symputx(''FNAME'',filename);'; + put 'call symputx(''LIBREF'',libref);'; + put 'call symputx(''DS'',dsn);'; + put 'call symputx(''LOADTYPE'',loadtype);'; + put 'call symputx(''BUSKEY'',buskey);'; + put 'call symputx(''VAR_TXFROM'',var_txfrom);'; + put 'call symputx(''VAR_TXTO'',var_txto);'; + put 'call symputx(''VAR_BUSFROM'',var_busfrom);'; + put 'call symputx(''VAR_BUSTO'',var_busto);'; + put 'call symputx(''VAR_PROCESSED'',var_processed);'; + put 'call symputx(''RK_UNDERLYING'',RK_UNDERLYING);'; + put 'call symputx(''POST_EDIT_HOOK'',POST_EDIT_HOOK);'; + put 'call symputx(''NOTES'',NOTES);'; + put 'call symputx(''PK'',coalescec(RK_UNDERLYING,buskey));'; + put 'call symputx(''NUM_OF_APPROVALS_REQUIRED'',NUM_OF_APPROVALS_REQUIRED,''l'');'; + put 'put (_all_)(=);'; + put 'stop;'; + put 'run;'; + put '%if %length(&ds)=0 %then %do;'; + put '%let msg=%str(ERR)OR: Unable to extract record from &mpelib..mpe_tables;'; + put '%mpe_loadfail('; + put 'status=FAILED'; + put ',now=&now'; + put ',mperef=&mperef'; + put ',reason_txt=%quote(&msg)'; + put ',dc_dttmtfmt=&dc_dttmtfmt.'; + put ')'; + put '%mp_abort(msg=&msg,mac=mpe_loader.sas);'; + put '%return;'; + put '%end;'; + put '/* export format catalog */'; + put '%mp_cntlout('; + put 'iftrue=(&is_fmt=1)'; + put ',libcat=&orig_libds'; + put ',fmtlist=0'; + put ',cntlout=work.fmtextract'; + put ')'; + put '/* user must have EDIT access to load a table */'; + put '%mpe_accesscheck(&orig_libds'; + put ',outds=work.sumo_access'; + put ',user=&user'; + put ',access_level=EDIT )'; + put '%put exiting accesscheck;'; + put '%if %mf_getattrn(work.sumo_access,NLOBS)=0 %then %do;'; + put '%let msg=%str(ERR)OR: User is not authorised to edit &orig_libds!;'; + put '%mpe_loadfail('; + put 'status=UNAUTHORISED'; + put ',now=&now'; + put ',mperef=&mperef'; + put ',reason_txt=%quote(&msg)'; + put ',dc_dttmtfmt=&dc_dttmtfmt.'; + put ')'; + put '%mp_abort(msg=&msg,mac=mpe_loader.sas);'; + put '%return;'; + put '%end;'; + put '%put now importing: "&csv_dir/&fname" termstr=&termstr;'; + put '/* get the variables from the CSV */'; + put 'data vars_csv1(index=(idxname=(varnum name)) drop=infile);'; + put 'infile "&csv_dir/&fname" lrecl=32767 dsd termstr=&termstr encoding=''utf-8'';'; + put 'input;'; + put 'length infile $32767;'; + put 'infile=compress(_infile_,''"'',);'; + put 'infile=compress(infile,"''",);'; + put 'format name $32.;'; + put 'putlog ''received vars: '' infile;'; + put 'call symputx(''received_vars'',infile,''l'');'; + put 'do varnum=1 to countw(infile,"&dlm");'; + put '/* keep writeable chars */'; + put 'name=compress(upcase(scan(infile,varnum)),,''kw'');'; + put 'if name ne "_____DELETE__THIS__RECORD_____" then output;'; + put 'end;'; + put 'stop;'; + put 'run;'; + put '%put received_vars = &received_vars;'; + put '%dc_assignlib(WRITE,&libref)'; + put '/* get list of variables and their formats */'; + put 'proc contents noprint data=&libds'; + put 'out=vars(keep=name type length varnum format:);'; + put 'run;'; + put 'data vars(keep=name type length varnum format);'; + put 'set vars(rename=(format=format2 type=type2));'; + put 'name=upcase(name);'; + put 'format2=upcase(format2);'; + put '/* not interested in transaction or processing dates'; + put '(append table must be supplied without them) */'; + put 'if name not in ("&VAR_TXFROM","&VAR_TXTO","&VAR_PROCESSED"'; + put ',"_____DELETE__THIS__RECORD_____");'; + put 'if type2 in (2,6) then do;'; + put 'length format $49.;'; + put 'if format2='''' then format=cats(''$'',length,''.'');'; + put 'else format=cats(format2,max(formatl,length),''.'');'; + put 'type=''char'';'; + put 'end;'; + put 'else do;'; + put 'if format2='''' then format=cats(length,''.'');'; + put 'else if format2=:''DATETIME'' then do;'; + put 'format=''DATETIME19.'';'; + put 'end;'; + put 'else if format2=:''DATE'' or format2=:''DDMMYY'''; + put 'or format2=:''MMDDYY'' or format2=:''YYMMDD'''; + put 'or format2=:''E8601DA'' or format2=:''B8601DA'''; + put 'then do;'; + put 'format=''DATE9.'';'; + put 'end;'; + put 'else if format2=''BEST'' & formatl=0 then format=cats(''BEST'',length,''.'');'; + put '/*'; + put 'else if format2=:''DATETIME'' or format2=:''DATE'' or format2=:''DDMMYY'''; + put 'or format2=:''MMDDYY'' or format2=:''YYMMDD'' then do;'; + put '*date or datetime format so use original ;'; + put 'dsid=open("&libref..&ds");'; + put 'vnum=varnum(dsid,name);'; + put 'format=varfmt(dsid,vnum);'; + put 'dsid=close(dsid);'; + put 'end;'; + put '*/'; + put 'else do;'; + put 'if formatl=0 then formatl=length;'; + put 'format=cats(format2,formatl,''.'',formatd);'; + put 'end;'; + put 'type=''num'';'; + put 'end;'; + put 'put (_all_)(=);'; + put 'run;'; + put '/* build attrib statement */'; + put 'data vars_attrib;'; + put 'length attrib_statement $32767 type2 $20;'; + put 'set vars end=lastobs;'; + put 'retain attrib_statement;'; + put 'if type=''char'' then type2=''$'';'; + put 'str1=catx('' '',name,''length='',cats(type2,length));'; + put 'attrib_statement=trim(attrib_statement)!!'' ''!!trim(str1);'; + put 'if lastobs then call symputx(''ATTRIB'',attrib_statement,''L'');'; + put 'run;'; + put '/* build input statement - first get vars in right order'; + put 'and join with target formats*/'; + put 'proc sql noprint;'; + put 'create table vars_csv2 as'; + put 'select b.*'; + put 'from vars_csv1 a'; + put 'left join vars_attrib b'; + put 'on a.name=b.name'; + put 'order by a.varnum;'; + put '/* make sure that the variables we are importing, actually'; + put 'exist on the target table */'; + put '/** edit - extra variables are now simply ignored'; + put '%local very_bad_vars;'; + put 'select name into: very_bad_vars separated by '' '''; + put 'from vars_csv1'; + put 'where name not in (select name from vars)'; + put 'and name ne "_____DELETE__THIS__RECORD_____";'; + put '%if %length(&very_bad_vars) > 0 %then %do;'; + put '%let msg=%str(WARNING: The following vars are not defined in %trim('; + put ')&libref..&ds, yet they exist in &csv_dir/&ds..csv: &very_bad_vars);'; + put '%mpe_loadfail('; + put 'status=FAILED'; + put ',now=&now'; + put ',mperef=&mperef'; + put ',reason_txt=%quote(&msg)'; + put ',dc_dttmtfmt=&dc_dttmtfmt.'; + put ')'; + put '%return;'; + put '%end;'; + put '**/'; + put '/* now build input statement */'; + put 'data final_check;'; + put 'set vars_csv2 end=lastobs;'; + put 'length input_statement $32767 type2 $20 droplist $32767;'; + put 'retain input_statement droplist;'; + put '/* Build input statement - CATCH EXCEPTIONS HERE!*/'; + put 'if name in (''QUOTE_DTTM'') then do;'; + put 'name=cats(name,''2'');'; + put 'droplist=catx('' '',trim(droplist),name);'; + put 'type2=''$20.'';/* converted below */'; + put 'end;'; + put 'else if type=''char'' then type2=cats(''$CHAR'', length,''.'');'; + put 'else if format=''DATE9.'' then type2=''ANYDTDTE.'';'; + put 'else if format=''DATETIME19.'' then type2=''ANYDTDTM.'';'; + put 'else if format=:''TIME'' then type2=''ANYDTTME.'';'; + put 'else if name='''' then do;/* additional vars in input data */'; + put 'name=''_____DELETE__THIS__VARIABLE_____'';'; + put 'droplist=catx('' '',trim(droplist),''_____DELETE__THIS__VARIABLE_____'');'; + put 'type2=''$1.'';'; + put 'end;'; + put 'else type2=''best32.'';'; + put '* else type2=cats(length,''.'');'; + put 'input_statement=catx('' '',input_statement,name,'':'',type2);'; + put 'if lastobs then do;'; + put 'call symputx(''INPUT'', input_statement,''L'');'; + put 'if trim(droplist) ne '''' then'; + put 'call symputx(''droplist'',"drop "!!droplist!!'';'',''l'');'; + put 'end;'; + put 'run;'; + put '%let mpeloadstop=0;'; + put 'data work.STAGING_DS;'; + put '&droplist;'; + put 'infile "&csv_dir/&fname" dsd dlm="&dlm" lrecl=32767'; + put 'firstobs=2 missover termstr=&termstr encoding=''utf-8'';'; + put 'attrib &attrib ;'; + put 'if _n_=1 then call missing (of _all_);'; + put 'missing 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 _;'; + put 'input'; + put '%if %scan(%quote(&received_vars),1)=_____DELETE__THIS__RECORD_____ %then %do;'; + put '_____DELETE__THIS__RECORD_____: $3.'; + put '%end;'; + put '&input;'; + put '%if %index(%quote(&attrib.),UNLIKELY_VAR ) %then %do;'; + put '/*UNLIKELY_VAR=input(UNLIKELY_VAR2,ANYDTDTM21.);*/'; + put '/* SPECIAL LOGIC FOR SPECIAL VARS */'; + put '%end;'; + put 'if _error_ ne 0 then do;'; + put 'putlog _infile_;'; + put 'call symputx(''mpeloadstop'',_n_);'; + put 'stop;'; + put 'end;'; + put '/* remove all blank rows */'; + put 'if compress(cats(of _all_),''.'')='' '' then delete;'; + put 'run;'; + put '%if &mpeloadstop>0 %then %do;'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put '%put redirecting log output to capture return message;'; + put '%put currentloc=&logloc;'; + put 'filename tmp temp;'; + put 'proc printto log=tmp;run;'; + put 'data _null_;'; + put '&droplist;'; + put 'infile "&csv_dir/&fname" dsd dlm="&dlm" lrecl=32767 firstobs=2'; + put 'missover termstr=&termstr;'; + put 'attrib &attrib ;'; + put 'input'; + put '%if %scan(%quote(&received_vars),1)=_____DELETE__THIS__RECORD_____'; + put '%then %do;'; + put '_____DELETE__THIS__RECORD_____: $3.'; + put '%end;'; + put '&input;'; + put 'if _error_ then stop;'; + put 'run;'; + put '/* get log back */'; + put 'proc printto log=&logloc;run;'; + put 'data _null_; infile tmp; input; putlog _infile_;run;'; + put '/* scan log for invalid data warning */'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;'; + put 'length msg1 msg2 msg3 msg4 msg5 msg url $32767;'; + put 'if index(_infile_,''NOTE: Invalid data for'') then do;'; + put 'msg1=_infile_;'; + put 'input;'; + put 'msg2=_infile_;'; + put 'input;'; + put 'msg3=_infile_;'; + put 'input;'; + put 'msg4=_infile_;'; + put 'input;'; + put 'msg5=_infile_;'; + put 'url=symget(''url'');'; + put 'msg=catx(''\n'',msg1,msg2,msg3,msg4,msg5,''\n'',url);'; + put 'call symputx(''msg'',msg);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%mpe_loadfail('; + put 'status=FAILED'; + put ',now=&now'; + put ',mperef=&mperef'; + put ',reason_txt=%superq(msg)'; + put ',dc_dttmtfmt=&dc_dttmtfmt.'; + put ')'; + put '%return;'; + put '%end;'; + put '/* check that the table is unique on PK */'; + put 'proc sort data=work.STAGING_DS dupout=work.MPE_DUPS (keep=&pk) nodupkey;'; + put 'by &pk;'; + put 'run;'; + put '%if %mf_getattrn(work.MPE_DUPS,NLOBS)>0 %then %do;'; + put '%local duplist;'; + put 'data _null_;'; + put 'set work.mpe_dups;'; + put '%do i=1 %to %sysfunc(countw(&pk));'; + put '%let iWord=%scan(&pk,&i);'; + put 'call symputx(''duplist'',symget(''duplist'')!!'; + put '" &iWord="!!trim(&iWord));'; + put '%end;'; + put 'run;'; + put '%let msg=This upload contains duplicates on the Primary Key columns %trim('; + put ')(&pk) \n Please remove the duplicates and try again. %trim('; + put ')\n &duplist \n ;'; + put '%mp_abort(msg=%superq(msg),mac=mpe_loader.sas);'; + put '%return;'; + put '%end;'; + put '%if &syscc gt 4 %then %do;'; + put '%let msg=SYSCC=&syscc prior to post edit hook (%superq(syserrortext));'; + put '%mpe_loadfail('; + put 'status=FAILED - &syscc'; + put ',now=&now'; + put ',mperef=&mperef'; + put ',reason_txt=%superq(msg)'; + put ',dc_dttmtfmt=&dc_dttmtfmt.'; + put ')'; + put '%return;'; + put '%end;'; + put '%mpe_runhook(POST_EDIT_HOOK)'; + put '/* stop if err */'; + put '%if &syscc gt 4 %then %do;'; + put '%let msg=ERR in post edit hook (&post_edit_hook);'; + put '%mpe_loadfail('; + put 'status=FAILED - &syscc'; + put ',now=&now'; + put ',mperef=&mperef'; + put ',reason_txt=%quote(&msg)'; + put ',dc_dttmtfmt=&dc_dttmtfmt.'; + put ')'; + put '%return;'; + put '%end;'; + put '/**'; + put '* send to approve process'; + put '*/'; + put '/* create a dataset key (datetime plus 3 digit random number plus PID) */'; + put '/* send dataset to approvals subfolder with same name as subfolder */'; + put 'libname approval "&mpelocapprovals/&mperef";'; + put 'data approval.&mperef;'; + put 'set work.staging_ds;'; + put 'run;'; + put 'proc export data=approval.&mperef'; + put 'outfile="&mpelocapprovals/&mperef/&mperef..csv"'; + put 'dbms=csv'; + put 'replace;'; + put 'run;'; + put '/* update the control dataset with relevant info */'; + put 'data append_app;'; + put 'if 0 then set &mpelib..mpe_submit;/* get formats */'; + put 'call missing (of _all_);'; + put 'TABLE_ID="&mperef";'; + put 'submit_status_cd=''SUBMITTED'';'; + put 'submitted_by_nm="%mf_getuser()";'; + put 'base_lib="&libref";'; + put 'base_ds="&ds";'; + put 'submitted_on_dttm=&now;'; + put 'submitted_reason_txt=symget(''submitted_reason_txt'');'; + put 'input_vars=%mf_getattrn(approval.&mperef,NVARS);'; + put 'input_obs=%mf_getattrn(approval.&mperef,NLOBS);'; + put 'num_of_approvals_required=&NUM_OF_APPROVALS_REQUIRED;'; + put 'num_of_approvals_remaining=&NUM_OF_APPROVALS_REQUIRED;'; + put 'reviewed_by_nm='''';'; + put 'reviewed_on_dttm=.;'; + put 'run;'; + put '%mp_lockanytable(LOCK,lib=&mpelib,ds=mpe_submit,'; + put 'ref=%str(&mperef update in &_program),'; + put 'ctl_ds=&mpelib..mpe_lockanytable'; + put ')'; + put 'proc append base= &mpelib..mpe_submit data=append_app;'; + put 'run;'; + put '%mp_lockanytable(UNLOCK,'; + put 'lib=&mpelib,ds=mpe_submit,'; + put 'ctl_ds=&mpelib..mpe_lockanytable'; + put ')'; + put '/* send email to REVIEW members */'; + put '%put sending mpe_alerts;'; + put '%mpe_alerts(alert_event=SUBMITTED'; + put ', alert_lib=&libref'; + put ', alert_ds=&ds'; + put ', dsid=&mperef'; + put ')'; + put '/* DISABLE EMAIL FOR NOW'; + put '%let b2=REASON: %quote(&submitted_reason_txt);'; + put '%local URLNOTES;'; + put '%if %length(¬es)>0 %then %let URLNOTES=%quote(%sysfunc(urlencode(¬es)));'; + put '%let b3=%str(Click to review / approve: )%trim('; + put ')%str(http://&_srvname:&_srvport&_url?_PROGRAM=/Web/approvals&)%trim('; + put ')TABLEID=&dsid%str(&)BASETABLE=&libref..&ds%str(&)NOTES=&URLNOTES;'; + put '%let b4=%str(Reference ID: &mperef);'; + put '*/'; + put '%put mpe_loader finishing up with syscc=&syscc;'; + put '%if &syscc le 4 %then %do;'; + put '%local dur;'; + put 'data _null_;'; + put 'now=symget(''now'');'; + put 'dur=%sysfunc(datetime())-&now;'; + put 'call symputx(''dur'',dur,''l'');'; + put 'putlog ''Updating mpe_loads with the following query:'';'; + put 'putlog "update &mpelib..mpe_loads set STATUS=''SUCCESS''";'; + put 'putlog " , duration=" dur;'; + put 'putlog " , processed_dttm=" now;'; + put 'putlog " , approvals = ''&libref..&ds''";'; + put 'putlog " where CSV_DIR=''&mperef'';";'; + put 'run;'; + put 'proc sql;'; + put 'update &mpelib..mpe_loads set STATUS=''SUCCESS'''; + put ', duration=&dur'; + put ', processed_dttm=&now'; + put ', approvals = "&libref..&ds"'; + put 'where CSV_DIR="&mperef";'; + put '%end;'; + put '%else %do;'; + put '%mpe_loadfail('; + put 'status="FAILED - &syscc"'; + put ',now=&now'; + put ',approvals=&libref..&ds'; + put ',mperef=&mperef'; + put ',dc_dttmtfmt=&dc_dttmtfmt.'; + put ')'; + put '%return;'; + put '%end;'; + put '%mend mpe_loader;'; + put '%macro mf_nobs(libds'; + put ')/*/STORE SOURCE*/;'; + put '%mf_getattrn(&libds,NLOBS)'; + put '%mend mf_nobs;'; + put '%macro mp_filtergenerate(inds,outref=filter);'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc - on macro entry)'; + put ')'; + put 'filename &outref temp;'; + put '%if %mf_nobs(&inds)=0 %then %do;'; + put '/* ensure we have a default filter */'; + put 'data _null_;'; + put 'file &outref;'; + put 'put ''1=1'';'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put 'proc sort data=&inds;'; + put 'by SUBGROUP_ID;'; + put 'run;'; + put 'data _null_;'; + put 'file &outref lrecl=32800;'; + put 'set &inds end=last;'; + put 'by SUBGROUP_ID;'; + put 'if _n_=1 then put ''(('';'; + put 'else if first.SUBGROUP_ID then put +1 GROUP_LOGIC ''('';'; + put 'else put +2 SUBGROUP_LOGIC;'; + put 'put +4 VARIABLE_NM OPERATOR_NM RAW_VALUE;'; + put 'if last.SUBGROUP_ID then put '')''@;'; + put 'if last then put '')'';'; + put 'run;'; + put '%end;'; + put '%mend mp_filtergenerate;'; + put '%macro mpe_filtermaster(mode,libds,'; + put 'dclib=,'; + put 'filter_rk=-1,'; + put 'outref=0,'; + put 'outds=work.query'; + put ');'; + put '%put &sysmacroname entry vars:;'; + put '%put _local_;'; + put '%let mode=%upcase(&mode);'; + put '%let libds=%upcase(&libds);'; + put '%mp_abort(iftrue= ('; + put '&mode ne EDIT and &mode ne VIEW and &mode ne DLOAD and &mode ne ULOAD'; + put ')'; + put ',mac=&sysmacroname'; + put ',msg=%str(Invalid MODE: &mode)'; + put ')'; + put '%mp_abort(iftrue= (&outref = 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Please provide a fileref!)'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc)'; + put ')'; + put 'filename &outref temp;'; + put '/* ensure outputs exist */'; + put 'data _null_;'; + put 'file &outref;'; + put 'put '' '';'; + put 'run;'; + put 'data &outds;'; + put 'set &dclib..mpe_filtersource;'; + put 'stop;'; + put 'run;'; + put '/**'; + put '* Deal with FILTER_RK first'; + put '*/'; + put '%if &filter_rk gt 0 %then %do;'; + put 'data _null_;'; + put 'file &outref;'; + put 'put ''( ''@@;'; + put 'set &dclib..mpe_filteranytable(where=(filter_rk=&filter_rk));'; + put 'call symputx(''filter_hash'',filter_hash,''l'');'; + put 'run;'; + put 'proc sort data=&dclib..mpe_filtersource(where=(filter_hash="&filter_hash"))'; + put 'out=&outds(drop=filter_hash filter_line processed_dttm);'; + put 'by filter_line;'; + put 'run;'; + put '%mp_filtergenerate(&outds,outref=&outref)'; + put '%end;'; + put '/* Now filter for current records if the MODE is EDIT or DLOAD */'; + put '%local varfrom varto;'; + put '%let varfrom=0;'; + put 'proc sql;'; + put 'select coalescec(var_txfrom,''0''), var_txto into: varfrom,:varto'; + put 'from &dclib..MPE_TABLES'; + put 'where &dc_dttmtfmt. lt tx_to'; + put 'and libref="%scan(&libds,1,.)" and dsn="%scan(&libds,2,.)";'; + put '%put &=varfrom;'; + put '%put &=varto;'; + put '/**'; + put '* Check if the date variables were mentioned in the query'; + put '* This is a trigger for serving a historical view instead of current'; + put '* we skip this part when checking an ULOAD as there are no date vars'; + put '*/'; + put '%if &varfrom ne 0 and (&mode=EDIT or &mode=DLOAD) %then %do;'; + put '%local validityvars;'; + put 'proc sql;'; + put 'select count(*) into: validityvars'; + put 'from &outds'; + put 'where variable_nm in ("&varfrom","&varto");'; + put '%if &validityvars=0 %then %do;'; + put 'data _null_;'; + put 'file &outref mod;'; + put 'length filter_text $32767;'; + put 'varfrom=symget(''varfrom'');'; + put 'varto=symget(''varto'');'; + put 'filter_text=catx('' '','; + put '''("%sysfunc(datetime(),'',"%mf_fmtdttm()",'')"dt <'',varto,'')'''; + put ');'; + put 'if &filter_rk > 0 then put ''AND '' filter_text;'; + put 'else put filter_text;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '/**'; + put '* Now do Row Level Security based on the MPE_ROW_LEVEL_SECURITY table'; + put '*/'; + put '/* first determine users group membership */'; + put '%mpe_getgroups(user=%mf_getuser(),outds=work.groups)'; + put '%local admin_check;'; + put 'proc sql;'; + put 'select count(*) into: admin_check'; + put 'from work.groups'; + put 'where groupname="&mpeadmins";'; + put '%put &sysmacroname: &=admin_check &=mpeadmins;'; + put '%if &admin_check=0 %then %do;'; + put '%local scopeval;'; + put '%if &mode=DLOAD %then %let scopeval=VIEW;'; + put '%if &mode=ULOAD %then %let scopeval=EDIT;'; + put '%else %let scopeval=&mode;'; + put '/* extract relevant rows */'; + put '%local rlsds;'; + put '%let rlsds=%mf_getuniquename();'; + put 'proc sql;'; + put 'create table work.&rlsds as'; + put 'select rls_group,'; + put 'rls_group_logic as group_logic,'; + put 'rls_subgroup_logic as subgroup_logic,'; + put 'rls_subgroup_id as subgroup_id,'; + put 'rls_variable_nm as variable_nm,'; + put 'rls_operator_nm as operator_nm,'; + put 'rls_raw_value as raw_value'; + put 'from &mpelib..mpe_row_level_security'; + put 'where &dc_dttmtfmt. lt tx_to'; + put 'and rls_scope in ("&scopeval",''ALL'')'; + put 'and upcase(rls_group) in (select upcase(groupname) from work.groups)'; + put 'and rls_libref="%scan(&libds,1,.)"'; + put 'and rls_table="%scan(&libds,2,.)"'; + put 'and rls_active=1'; + put 'order by rls_group,rls_subgroup_id;'; + put '%if &sqlobs>0 %then %do;'; + put '/* check if we currently have filter or not */'; + put 'data ;'; + put 'infile &outref end=eof;'; + put 'input;'; + put 'if _n_=1 and eof and cats(_infile_)='''' then newfilter=1;'; + put 'output;'; + put 'stop;'; + put 'run;'; + put 'data _null_;'; + put 'set &syslast;'; + put 'file &outref mod;'; + put 'if newfilter=1 then put ''('';'; + put 'else put ''AND ('';'; + put 'run;'; + put '/* loop through and apply filters for each group membership */'; + put '%local fref ds;'; + put '%let fref=%mf_getuniquefileref();'; + put '%let ds=%mf_getuniquename();'; + put 'proc sql noprint;'; + put 'select distinct rls_group into : group1 -'; + put 'from work.&rlsds;'; + put '%do i=1 %to &sqlobs;'; + put 'data work.&ds;'; + put 'set work.&rlsds;'; + put 'where rls_group="&&group&i";'; + put 'drop rls_group;'; + put 'run;'; + put '%mp_filtergenerate(&ds,outref=&fref)'; + put 'data _null_;'; + put 'infile &fref;'; + put 'file &outref mod;'; + put 'input;'; + put 'if &i>1 and _n_=1 then put '' OR '';'; + put 'put _infile_;'; + put 'run;'; + put '%end;'; + put 'data _null_;'; + put 'file &outref mod;'; + put 'put '')'';'; + put 'run;'; + put '%end; /* &sqlobs>0 */'; + put '%else %do;'; + put '%put &sysmacroname: no matching groups;'; + put 'data _null_;'; + put 'set work.groups;'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc>0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Row Level Security Generation Error)'; + put ')'; + put '%end; /* &admin_check=0 */'; + put '%put leaving &sysmacroname with the following query:;'; + put '%local empty;'; + put '%let empty=0;'; + put 'data _null_;'; + put 'infile &outref end=eof;'; + put 'input;'; + put 'putlog _infile_;'; + put 'if _n_=1 and eof and cats(_infile_)='''' then do;'; + put 'put ''1=1'';'; + put 'call symputx(''empty'',1,''l'');'; + put 'end;'; + put 'run;'; + put '%if &empty=1 %then %do;'; + put 'data _null_;'; + put 'file &outref;'; + put 'put ''1=1'';'; + put 'run;'; + put '%end;'; + put '%mend mpe_filtermaster;'; + put '%macro removecolsfromwork(col);'; + put '/* only an issue if debug mode enabled */'; + put '%global _debug;'; + put '%if &_debug ge 131 %then %do;'; + put '%let col=%upcase(&col);'; + put '%local memlist;'; + put 'proc sql noprint;'; + put 'select distinct memname into: memlist'; + put 'separated by '' '''; + put 'from dictionary.columns'; + put 'where libname=''WORK'' and upcase(name)="&col";'; + put '%if %mf_isblank(&memlist) %then %return;'; + put '%mp_dropmembers(list=&memlist)'; + put '%end;'; + put '%mend removecolsfromwork;'; + put '%macro mp_binarycopy('; + put 'inloc= /* full path and filename of the object to be copied */'; + put ',outloc= /* full path and filename of object to be created */'; + put ',inref=____in /* override default to use own filerefs */'; + put ',outref=____out /* override default to use own filerefs */'; + put ',mode=CREATE'; + put ',iftrue=%str(1=1)'; + put ')/*/STORE SOURCE*/;'; + put '%local mod;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%if &mode=APPEND %then %let mod=mod;'; + put '/* these IN and OUT filerefs can point to anything */'; + put '%if &inref = ____in %then %do;'; + put 'filename &inref &inloc lrecl=1048576 ;'; + put '%end;'; + put '%if &outref=____out %then %do;'; + put 'filename &outref &outloc lrecl=1048576 &mod;'; + put '%end;'; + put '/* copy the file byte-for-byte */'; + put 'data _null_;'; + put 'infile &inref lrecl=1 recfm=n;'; + put 'file &outref &mod recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put '%if &inref = ____in %then %do;'; + put 'filename &inref clear;'; + put '%end;'; + put '%if &outref=____out %then %do;'; + put 'filename &outref clear;'; + put '%end;'; + put '%mend mp_binarycopy;'; + put '%macro mcf_init(func'; + put ')/*/STORE SOURCE*/;'; + put '%if not (%symexist(SASJS_PREFIX)) %then %do;'; + put '%global SASJS_PREFIX;'; + put '%let SASJS_PREFIX=SASJS;'; + put '%end;'; + put '%let func=%upcase(&func);'; + put '/* the / character is just a seperator */'; + put '%global &sasjs_prefix._FUNCTIONS;'; + put '%if %index(&&&sasjs_prefix._FUNCTIONS,&func/)>0 %then %do;'; + put '1'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put '%let &sasjs_prefix._FUNCTIONS=&&&sasjs_prefix._FUNCTIONS &func/;'; + put '0'; + put '%end;'; + put '%mend mcf_init;'; + put '%macro mcf_getfmttype(wrap=NO'; + put ',insert_cmplib=DEPRECATED'; + put ',lib=WORK'; + put ',cat=SASJS'; + put ',pkg=UTILS'; + put ')/*/STORE SOURCE*/;'; + put '%local i var cmpval found;'; + put '%if %mcf_init(mcf_getfmttype)=1 %then %return;'; + put '%if &wrap=YES %then %do;'; + put 'proc fcmp outlib=&lib..&cat..&pkg;'; + put '%end;'; + put 'function mcf_getfmttype(fmtnm $) $8;'; + put 'if substr(fmtnm,1,1)=''$'' then return(''CHAR'');'; + put 'else do;'; + put '/* extract NAME */'; + put 'length fmt $32;'; + put 'fmt=scan(fmtnm,1,''.'');'; + put 'do while ('; + put 'substr(fmt,length(fmt),1) in (''1'',''2'',''3'',''4'',''5'',''6'',''7'',''8'',''9'',''0'')'; + put ');'; + put 'if length(fmt)=1 then fmt=''W'';'; + put 'else fmt=substr(fmt,1,length(fmt)-1);'; + put 'end;'; + put '/* apply lookups */'; + put 'if cats(fmt) in (''DATETIME'',''B8601DN'',''B8601DN'',''B8601DT'',''B8601DT'''; + put ',''B8601DZ'',''B8601DZ'',''DATEAMPM'',''DTDATE'',''DTMONYY'',''DTWKDATX'',''DTYEAR'''; + put ',''DTYYQC'',''E8601DN'',''E8601DN'',''E8601DT'',''E8601DT'',''E8601DZ'',''E8601DZ'')'; + put 'then return(''DATETIME'');'; + put 'else if fmt in (''DATE'',''YYMMDD'',''B8601DA'',''B8601DA'',''DAY'',''DDMMYY'''; + put ',''DDMMYYB'',''DDMMYYC'',''DDMMYYD'',''DDMMYYN'',''DDMMYYP'',''DDMMYYS'',''DDMMYYx'''; + put ',''DOWNAME'',''E8601DA'',''E8601DA'',''JULDAY'',''JULIAN'',''MMDDYY'',''MMDDYYB'''; + put ',''MMDDYYC'',''MMDDYYD'',''MMDDYYN'',''MMDDYYP'',''MMDDYYS'',''MMDDYYx'',''MMYY'''; + put ',''MMYYC'',''MMYYD'',''MMYYN'',''MMYYP'',''MMYYS'',''MMYYx'',''MONNAME'',''MONTH'''; + put ',''MONYY'',''PDJULG'',''PDJULI'',''QTR'',''QTRR'',''WEEKDATE'',''WEEKDATX'',''WEEKDAY'''; + put ',''WEEKU'',''WEEKV'',''WEEKW'',''WORDDATE'',''WORDDATX'',''YEAR'',''YYMM'',''YYMMC'''; + put ',''YYMMD'',''YYMMDDB'',''YYMMDDC'',''YYMMDDD'',''YYMMDDN'',''YYMMDDP'',''YYMMDDS'''; + put ',''YYMMDDx'',''YYMMN'',''YYMMP'',''YYMMS'',''YYMMx'',''YYMON'',''YYQ'',''YYQC'',''YYQD'''; + put ',''YYQN'',''YYQP'',''YYQR'',''YYQRC'',''YYQRD'',''YYQRN'',''YYQRP'',''YYQRS'',''YYQRx'''; + put ',''YYQS'',''YYQx'',''YYQZ'') then return(''DATE'');'; + put 'else if fmt in (''TIME'',''B8601LZ'',''B8601LZ'',''B8601TM'',''B8601TM'',''B8601TZ'''; + put ',''B8601TZ'',''E8601LZ'',''E8601LZ'',''E8601TM'',''E8601TM'',''E8601TZ'',''E8601TZ'''; + put ',''HHMM'',''HOUR'',''MMSS'',''TIMEAMPM'',''TOD'') then return(''TIME'');'; + put 'else return(''NUM'');'; + put 'end;'; + put 'endsub;'; + put '%if &wrap=YES %then %do;'; + put 'quit;'; + put '%end;'; + put '/* insert the CMPLIB if not already there */'; + put '%let cmpval=%sysfunc(getoption(cmplib));'; + put '%let found=0;'; + put '%do i=1 %to %sysfunc(countw(&cmpval,%str( %(%))));'; + put '%let var=%scan(&cmpval,&i,%str( %(%)));'; + put '%if &var=&lib..&cat %then %let found=1;'; + put '%end;'; + put '%if &found=0 %then %do;'; + put 'options insert=(CMPLIB=(&lib..&cat));'; + put '%end;'; + put '%mend mcf_getfmttype;'; + put '%macro mf_getVarFormat(libds /* two level ds name */'; + put ', var /* variable name from which to return the format */'; + put ', force=0'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid vnum vformat rc vlen vtype;'; + put '/* Open dataset */'; + put '%let dsid = %sysfunc(open(&libds));'; + put '%if &dsid > 0 %then %do;'; + put '/* Get variable number */'; + put '%let vnum = %sysfunc(varnum(&dsid, &var));'; + put '/* Get variable format */'; + put '%if(&vnum > 0) %then %let vformat=%sysfunc(varfmt(&dsid, &vnum));'; + put '%else %do;'; + put '%put NOTE: Variable &var does not exist in &libds;'; + put '%let rc = %sysfunc(close(&dsid));'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: dataset &libds not opened! (rc=&dsid);'; + put '%put &sysmacroname: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '/* supply a default if no format available */'; + put '%if %length(&vformat)<2 & &force=1 %then %do;'; + put '%let vlen = %sysfunc(varlen(&dsid, &vnum));'; + put '%let vtype = %sysfunc(vartype(&dsid, &vnum.));'; + put '%if &vtype=C %then %let vformat=$&vlen..;'; + put '%else %let vformat=best.;'; + put '%end;'; + put '/* Close dataset */'; + put '%let rc = %sysfunc(close(&dsid));'; + put '/* Return variable format */'; + put '&vformat'; + put '%mend mf_getVarFormat;'; + put '%macro mf_getvartype(libds /* two level name */'; + put ', var /* variable name from which to return the type */'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid vnum vtype rc;'; + put '/* Open dataset */'; + put '%let dsid = %sysfunc(open(&libds));'; + put '%if &dsid. > 0 %then %do;'; + put '/* Get variable number */'; + put '%let vnum = %sysfunc(varnum(&dsid, &var));'; + put '/* Get variable type (C/N) */'; + put '%if(&vnum. > 0) %then %let vtype = %sysfunc(vartype(&dsid, &vnum.));'; + put '%else %do;'; + put '%put NOTE: Variable &var does not exist in &libds;'; + put '%let vtype = %str( );'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: dataset &libds not opened! (rc=&dsid);'; + put '%put &sysmacroname: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '/* Close dataset */'; + put '%let rc = %sysfunc(close(&dsid));'; + put '/* Return variable type */'; + put '&vtype'; + put '%mend mf_getvartype;'; + put '%macro mp_ds2csv(ds'; + put ',dlm=COMMA'; + put ',outref=0'; + put ',outfile='; + put ',outencoding=0'; + put ',headerformat=LABEL'; + put ',termstr=CRLF'; + put ')/*/STORE SOURCE*/;'; + put '%local outloc delim i varlist var vcnt vat dsv vcom vmiss fmttype vfmt;'; + put '%if not %sysfunc(exist(&ds)) %then %do;'; + put '%put %str(WARN)ING: &ds does not exist;'; + put '%return;'; + put '%end;'; + put '%if %index(&ds,.)=0 %then %let ds=WORK.&ds;'; + put '%if &outencoding=0 %then %let outencoding=;'; + put '%else %let outencoding=encoding=&outencoding;'; + put '%if &outref=0 %then %let outloc=&outfile;'; + put '%else %let outloc=&outref;'; + put '%if &headerformat=SASJS %then %do;'; + put '%let delim=",";'; + put '%let termstr=CRLF;'; + put '%mcf_getfmttype(wrap=YES)'; + put '%end;'; + put '%else %if &dlm=COMMA %then %let delim=",";'; + put '%else %let delim=";";'; + put '/* credit to mjsq - https://stackoverflow.com/a/55642267 */'; + put '/* first get headers */'; + put 'data _null_;'; + put 'file &outloc &outencoding lrecl=32767 termstr=&termstr;'; + put 'length header $ 2000 varnm vfmt $32 dlm $1 fmttype $8;'; + put 'call missing(of _all_);'; + put 'dsid=open("&ds.","i");'; + put 'num=attrn(dsid,"nvars");'; + put 'dlm=&delim;'; + put 'do i=1 to num;'; + put 'varnm=upcase(varname(dsid,i));'; + put 'if i=num then dlm='''';'; + put '%if &headerformat=NAME %then %do;'; + put 'header=cats(varnm,dlm);'; + put '%end;'; + put '%else %if &headerformat=LABEL %then %do;'; + put 'header = cats(coalescec(varlabel(dsid,i),varnm),dlm);'; + put '%end;'; + put '%else %if &headerformat=SASJS %then %do;'; + put 'if vartype(dsid,i)=''C'' then header=cats(varnm,'':$char'',varlen(dsid,i),''.'');'; + put 'else do;'; + put 'vfmt=coalescec(varfmt(dsid,i),''0'');'; + put 'fmttype=mcf_getfmttype(vfmt);'; + put 'if fmttype=''DATE'' then header=cats(varnm,'':date9.'');'; + put 'else if fmttype=''DATETIME'' then header=cats(varnm,'':E8601DT26.6'');'; + put 'else if fmttype=''TIME'' then header=cats(varnm,'':TIME12.'');'; + put 'else header=cats(varnm,'':best.'');'; + put 'end;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: Invalid headerformat value (&headerformat);'; + put '%return;'; + put '%end;'; + put 'put header @;'; + put 'end;'; + put 'rc=close(dsid);'; + put 'run;'; + put '%let varlist=%mf_getvarlist(&ds);'; + put '%let vcnt=%sysfunc(countw(&varlist));'; + put '/**'; + put '* The $quote modifier (without a width) will take the length from the variable'; + put '* and increase by two. However this will lead to truncation where the value'; + put '* contains double quotes (which are doubled up). To get around this, scan the'; + put '* data to see the max number of double quotes, so that the appropriate width'; + put '* can be applied in the subsequent step.'; + put '*/'; + put 'data _null_;'; + put 'set &ds end=last;'; + put '%do i=1 %to &vcnt;'; + put '%let var=%scan(&varlist,&i);'; + put '%if %mf_getvartype(&ds,&var)=C %then %do;'; + put '%let dsv1=%mf_getuniquename(prefix=csvcol1_);'; + put '%let dsv2=%mf_getuniquename(prefix=csvcol2_);'; + put 'retain &dsv1 0;'; + put '&dsv2=length(&var)+countc(&var,''"'');'; + put 'if &dsv2>&dsv1 then &dsv1=&dsv2;'; + put 'if last then call symputx('; + put '"vlen&i"'; + put '/* should be no shorter than varlen, and no longer than 32767 */'; + put ',cats(''$quote'',min(&dsv1+2,32767),''.'')'; + put ',''l'''; + put ');'; + put '%end;'; + put '%end;'; + put '%let vat=@;'; + put '%let vcom=&delim;'; + put '%let vmiss=%mf_getuniquename(prefix=csvcol3_);'; + put '/* next, export data */'; + put 'data _null_;'; + put 'set &ds.;'; + put 'file &outloc mod dlm=&delim dsd &outencoding lrecl=32767 termstr=&termstr;'; + put 'if _n_=1 then &vmiss='' '';'; + put '%do i=1 %to &vcnt;'; + put '%let var=%scan(&varlist,&i);'; + put '%if &i=&vcnt %then %do;'; + put '%let vat=;'; + put '%let vcom=;'; + put '%end;'; + put '%if %mf_getvartype(&ds,&var)=N %then %do;'; + put '%if &headerformat = SASJS %then %do;'; + put '%let vcom=&delim;'; + put '%let fmttype=%sysfunc(mcf_getfmttype(%mf_getvarformat(&ds,&var)0));'; + put '%if &fmttype=DATE %then %let vfmt=DATE9.;'; + put '%else %if &fmttype=DATETIME %then %let vfmt=E8601DT26.6;'; + put '%else %if &fmttype=TIME %then %let vfmt=TIME12.;'; + put '%else %do;'; + put '%let vfmt=;'; + put '%let vcom=;'; + put '%end;'; + put '%end;'; + put '%else %let vcom=;'; + put '/* must use period - in order to work in both 9.4 and Viya 3.5 */'; + put 'if missing(&var) and &var ne %sysfunc(getoption(MISSING)) then do;'; + put '&vmiss=cats(''.'',&var);'; + put 'put &vmiss &vat;'; + put 'end;'; + put 'else put &var &vfmt &vcom &vat;'; + put '%end;'; + put '%else %do;'; + put '%if &i ne &vcnt %then %let vcom=&delim;'; + put 'put &var &&vlen&i &vcom &vat;'; + put '%end;'; + put '%end;'; + put 'run;'; + put '%mend mp_ds2csv;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file'; - put '@brief Loads a file from frontend to a user provided location'; - put '@details Returns a directory listing if successful.'; - put 'The macros shown below are compiled from the SASjs CORE library (or the'; - put 'sasjs/macros project directory) when running the `sasjs cb` command. This is'; - put 'why you see them in the service, but not in the file in the GIT repository.'; + put '@brief Sends a changeset to staging area'; + put '@details This is the service that is called when submitting a new edit.'; + put '

Service Inputs

'; + put '
jsdata
'; + put 'This is the staged data table, plus an _____DELETE__THIS__RECORD_____ column'; + put '
SASControlTable
'; + put '|ACTION:$char4.|MESSAGE:$char1.|LIBDS:$char19.|'; + put '|---|---|---|'; + put '|LOAD|User-Provided message|LIBREF.DATASET_NAME|'; + put '

SAS Macros

'; + put '@li mf_getuser.sas'; + put '@li mf_nobs.sas'; + put '@li dc_assignlib.sas'; + put '@li mf_verifymacvars.sas'; + put '@li mf_mkdir.sas'; + put '@li mf_getuniquefileref.sas'; + put '@li mpe_loader.sas'; + put '@li mpe_filtermaster.sas'; + put '@li mp_abort.sas'; + put '@li mp_binarycopy.sas'; + put '@li mp_cntlout.sas'; + put '@li mp_ds2csv.sas'; + put '@li mf_getplatform.sas'; + put '@li removecolsfromwork.sas'; + put '@li mpeinit.sas'; + put '@version 9.2'; + put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; + put 'downloaded from here: https://4gl.uk/dcdeploy'; + put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; + put 'and may not be re-distributed or re-sold without the express permission of'; + put '4GL Apps Ltd.'; + put '**/'; + put '%mpeinit()'; + put '%global approver; %let approver=;'; + put '%global libref; %let libref=;'; + put '%global dsn; %let dsn=;'; + put '%global user; %let user=;'; + put '%let user=%mf_getuser();'; + put '/* load parameters */'; + put 'data _null_;'; + put 'set work.sascontroltable;'; + put 'call symputx(''action'',action);'; + put 'call symputx(''message'',message);'; + put 'libds=upcase(libds);'; + put 'call symputx(''orig_libds'',libds);'; + put 'is_fmt=0;'; + put 'if substr(cats(reverse(libds)),1,3)=:''CF-'' then do;'; + put 'libds=scan(libds,1,''-'');'; + put 'putlog "Format Catalog Captured";'; + put 'libds=''work.fmtextract'';'; + put 'call symputx(''libds'',libds);'; + put 'is_fmt=1;'; + put 'end;'; + put 'else call symputx(''libds'',libds);'; + put 'call symputx(''is_fmt'',is_fmt);'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%mp_cntlout('; + put 'iftrue=(&is_fmt=1)'; + put ',libcat=&orig_libds'; + put ',fmtlist=0'; + put ',cntlout=work.fmtextract'; + put ')'; + put '/* stream back meta info, further jquery calls will return col metadata and'; + put 'actual data */'; + put '%let libref=%upcase(%scan(&libds,1,.));'; + put '%let dsn=%upcase(%scan(&libds,2,.));'; + put '%dc_assignlib(WRITE,&libref)'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc - unable to assign library &libref)'; + put ')'; + put '%mp_abort('; + put 'iftrue=(%mf_verifymacvars(mpelocapprovals libds)=0)'; + put ',mac=&_program'; + put ',msg=%str(Missing: mpelocapprovals libds)'; + put ')'; + put '%put Verify that the upload does not violate Row Level Security checks:;'; + put '%mpe_filtermaster(ULOAD,&libds,'; + put 'dclib=&mpelib,'; + put 'outref=filtref,'; + put 'outds=work.query'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc during filtering process)'; + put ')'; + put '/* prepare inverse query */'; + put '%let tempref=%mf_getuniquefileref();'; + put 'data _null_;'; + put 'infile filtref end=eof;'; + put 'file &tempref;'; + put 'if _n_=1 then put ''where not('';'; + put 'input;'; + put 'put _infile_;'; + put 'if eof then put '')'';'; + put 'run;'; + put '/* apply the query */'; + put 'data work.badrecords;'; + put 'set work.jsdata;'; + put '%inc &tempref/source2;;'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (%mf_nobs(work.badrecords)>0)'; + put ',mac=&_program'; + put ',msg=%str('; + put 'Security Problem - %mf_nobs(work.badrecords) unauthorised records submitted'; + put ')'; + put ')'; + put 'PROC FORMAT;'; + put 'picture yymmddhhmmss other=''%0Y%0m%0d_%0H%0M%0S'' (datatype=datetime);'; + put 'RUN;'; + put '/**'; + put '* Create package folder and redirect the log'; + put '*/'; + put '/* create a dataset key (datetime plus 6 digit random number plus PID) */'; + put '%let mperef=DC%left(%sysfunc(datetime(),B8601DT19.3))_%substr('; + put '%sysfunc(ranuni(0)),3,6)_%substr(%str(&sysjobid ),1,4);'; + put '/* get web url */'; + put '%global url;'; + put '%let url=localhost/SASStoredProcess;'; + put '%let platform=%mf_getplatform();'; + put '%put &=platform;'; + put 'data _null_;'; + put 'length url $128;'; + put '%macro stagedata();'; + put '%if &platform=SASVIYA %then %do;'; + put 'if symexist(''_baseurl'') then do;'; + put 'url=symget(''_baseurl'');'; + put 'if subpad(url,length(url)-9,9)=''SASStudio'''; + put 'then url=substr(url,1,length(url)-11);'; + put 'else url="&systcpiphostname/SASJobExecution";'; + put 'end;'; + put 'else url="&systcpiphostname/SASJobExecution";'; + put '%end;'; + put '%else %if &platform=SASMETA %then %do;'; + put 'rc=METADATA_GETURI("Stored Process Web App",url);'; + put '%end;'; + put '%mend stagedata;'; + put '%stagedata()'; + put 'call symputx(''url'',url);'; + put 'putlog url=;'; + put 'run;'; + put '/* Create package folder */'; + put '%let dir=&mpelocapprovals/&mperef;'; + put '%mf_mkdir(&dir)'; + put '/* redirect the log */'; + put '%put; %put; %put log is being redirected;'; + put '%put to retrieve, visit this url:; %put;%put;'; + put '%let url=&url?_program=%substr(&_program'; + put ',1,%length(&_program)-9)getlog%str(&)table=&mperef;'; + put '%put &url;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to log redirection)'; + put ')'; + put 'proc printto log="&dir/weblog.txt";run;'; + put 'options notes mprint;'; + put 'libname approve "&dir";'; + put '/* take copy of webin file */'; + put 'data _null_;'; + put 'if symexist(''_WEBIN_FILEREF1'')'; + put 'then ref=symget(''_WEBIN_FILEREF1'');'; + put 'else if symexist(''sasjs_tables'') then do;'; + put 'rc=filename(''ref'',"%sysfunc(pathname(work))/&dsn.csv");'; + put 'ref=''ref'';'; + put 'end;'; + put 'else ref=''indata1'';'; + put 'call symputx(''ref'',ref);'; + put 'putlog ref=;'; + put 'run;'; + put '%mp_binarycopy(inref=&ref, outloc="&dir/_WEBIN_FILEREF1.txt")'; + put '/* take copy of macvars */'; + put 'data _null_;'; + put 'file "&dir/macvars.sas";'; + put 'set sashelp.vmacro;'; + put 'where scope=''GLOBAL'';'; + put 'put ''%let '' name ''='' value '';'';'; + put 'run;'; + put 'data approve.jsdset;'; + put 'length _____DELETE__THIS__RECORD_____ $3;'; + put 'set jsdata;'; + put 'run;'; + put '/**'; + put '* mf_getvarXXX functions will fail if the target is locked - so take a copy'; + put '* and reference that (this will also explicitly throw the lock situation)'; + put '*/'; + put '%let dscopy=work.dscopy;'; + put 'data &dscopy;'; + put 'set &libds;'; + put 'stop;'; + put 'run;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Issue getting lock on &libds)'; + put ')'; + put '%mp_ds2csv(approve.jsdset'; + put ',dlm=COMMA'; + put ',outfile="&dir/&orig_libds..csv"'; + put ',outencoding="UTF-8"'; + put ',headerformat=NAME'; + put ',termstr=CRLF'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc when writing the CSV)'; + put ')'; + put '%mpe_loader(mperef=&mperef'; + put ',submitted_reason_txt=%superq(message)'; + put ',approver=%quote(%trim(&approver))'; + put ',url=%superq(url)'; + put ',dc_dttmtfmt=&dc_dttmtfmt'; + put ')'; + put '%mp_abort(mode=INCLUDE)'; + put '%mp_abort('; + put 'iftrue=(%sysfunc(fileexist(%sysfunc(pathname(work))/mf_abort.error))=1)'; + put ',mac=&_program..sas'; + put ',msg=%str(mf_abort.error=1)'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(syscc=&syscc)'; + put ')'; + put '/* send relevant SUCCESS values */'; + put 'data sasparams;'; + put 'STATUS=''SUCCESS'';'; + put 'DSID="&mperef";'; + put 'url="&url";'; + put 'run;'; + put '%removecolsfromwork(___TMP___MD5)'; + put '%webout(OPEN)'; + put '%webout(OBJ,sasparams)'; + put '%webout(CLOSE)'; + put '%mpeterm()'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let path=services/hooks; + +%let service=mpe_column_level_security_postedit; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Files

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as FMTCAT,'; + put 'FMTNAME'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'LENGTH num'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.length as MAXW'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put ')))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] workobs= (0) When set to a positive integer, will create a new'; + put 'output object (WORK) which contains this number of observations from all'; + put 'tables in the WORK library.'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX,workobs=0'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&workobs) > 0 %then %do;'; + put '/* if debug mode, send back first XX records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10'; + put ',maxobs=&workobs'; + put ')'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file'; + put '@brief Post Edit Hook script for the MPE_COLUMN_LEVEL_SECURITY table'; + put '@details Post edit hooks provide additional backend validation for user'; + put 'provided data. The incoming dataset is named `work.staging_ds` and is'; + put 'provided in mpe_loader.sas.'; + put 'Available macro variables:'; + put '@li DC_LIBREF - The DC control library'; + put '@li LIBREF - The library of the dataset being edited (is assigned)'; + put '@li DS - The dataset being edited'; + put 'This validation checks the incoming column_level_security settings to ensure'; + put 'each individual filter is valid'; + put '**/'; + put '/* check scope values and ensure uppercasing */'; + put '%let errflag=0;'; + put '%let errmsg=;'; + put 'data work.staging_ds;'; + put 'set work.staging_ds;'; + put 'cls_scope=upcase(cls_scope);'; + put 'CLS_LIBREF=upcase(CLS_LIBREF);'; + put 'cls_table=upcase(CLS_TABLE);'; + put 'CLS_VARIABLE_NM=upcase(CLS_VARIABLE_NM);'; + put 'if cls_scope not in (''ALL'',''VIEW'',''EDIT'') then do;'; + put 'call symputx(''errflag'',1);'; + put 'call symputx(''errmsg'',"Invalid scope: "!!cls_scope);'; + put 'stop;'; + put 'end;'; + put 'if cls_hide<1 then cls_hide=0;'; + put 'else cls_hide=1;'; + put 'if CLS_ACTIVE<1 then CLS_ACTIVE=0;'; + put 'else CLS_ACTIVE=1;'; + put 'run;'; + put '%mp_abort(iftrue=(&errflag=1)'; + put ',mac=mpe_column_level_security_postedit'; + put ',msg=%superq(errmsg)'; + put ')'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=mpe_row_level_security_postedit; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Files

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as FMTCAT,'; + put 'FMTNAME'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'LENGTH num'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.length as MAXW'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put ')))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] workobs= (0) When set to a positive integer, will create a new'; + put 'output object (WORK) which contains this number of observations from all'; + put 'tables in the WORK library.'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX,workobs=0'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&workobs) > 0 %then %do;'; + put '/* if debug mode, send back first XX records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10'; + put ',maxobs=&workobs'; + put ')'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '%macro mm_assignlib('; + put 'libref'; + put ',mAbort=HARD'; + put ')/*/STORE SOURCE*/;'; + put '%local mp_abort msg;'; + put '%let mp_abort=0;'; + put '%if %sysfunc(libref(&libref)) %then %do;'; + put 'data _null_;'; + put 'length liburi LibName msg $200;'; + put 'call missing(of _all_);'; + put 'nobj=metadata_getnobj("omsobj:SASLibrary?@Libref=''&libref''",1,liburi);'; + put 'if nobj=1 then do;'; + put 'rc=metadata_getattr(liburi,"Name",LibName);'; + put '/* now try and assign it */'; + put 'if libname("&libref",,''meta'',cats(''liburi="'',liburi,''";'')) ne 0 then do;'; + put 'putlog "&libref could not be assigned";'; + put 'putlog liburi=;'; + put '/**'; + put '* Fetch the system message for display in the abort modal. This is'; + put '* not always helpful though. One example, previously received:'; + put '* NOTE: Libref XX refers to the same library metadata as libref XX.'; + put '*/'; + put 'msg=sysmsg();'; + put 'if msg=:''ERROR: Libref SAVE is not assigned.'' then do;'; + put 'msg=catx(" ",'; + put '"Could not assign %upcase(&libref).",'; + put '"Please check metadata permissions! Libname:",libname,'; + put '"Liburi:",liburi'; + put ');'; + put 'end;'; + put 'else if msg="ERROR: User does not have appropriate authorization "!!'; + put '"level for library SAVE."'; + put 'then do;'; + put 'msg=catx(" ",'; + put '"ERROR: User does not have appropriate authorization level",'; + put '"for library %upcase(&libref), libname:",libname,'; + put '"Liburi:",liburi'; + put ');'; + put 'end;'; + put 'call symputx(''msg'',msg,''l'');'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1,''l'');'; + put 'end;'; + put 'else do;'; + put 'put (_all_)(=);'; + put 'call symputx(''libname'',libname,''L'');'; + put 'call symputx(''liburi'',liburi,''L'');'; + put 'end;'; + put 'end;'; + put 'else if nobj>1 then do;'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; + put 'call symputx(''msg'',"More than one library with libref=&libref");'; + put 'end;'; + put 'else do;'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; + put 'call symputx(''msg'',"Library &libref not found in metadata");'; + put 'end;'; + put 'run;'; + put '%put NOTE: &msg;'; + put '%end;'; + put '%else %do;'; + put '%put NOTE: Library &libref is already assigned;'; + put '%end;'; + put '%mp_abort(iftrue= (&mp_abort=1)'; + put ',mac=mm_assignlib.sas'; + put ',msg=%superq(msg)'; + put ')'; + put '%mend mm_assignlib;'; + put '/** @cond */'; + put '%macro mf_getengine(libref'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid engnum rc engine;'; + put '/* in case the parameter is a libref.tablename, pull off just the libref */'; + put '%let libref = %upcase(%scan(&libref, 1, %str(.)));'; + put '%let dsid=%sysfunc('; + put 'open(sashelp.vlibnam(where=(libname="%upcase(&libref)")),i)'; + put ');'; + put '%if (&dsid ^= 0) %then %do;'; + put '%let engnum=%sysfunc(varnum(&dsid,ENGINE));'; + put '%let rc=%sysfunc(fetch(&dsid));'; + put '%let engine=%sysfunc(getvarc(&dsid,&engnum));'; + put '%put &libref. ENGINE is &engine.;'; + put '%let rc= %sysfunc(close(&dsid));'; + put '%end;'; + put '%upcase(&engine)'; + put '%mend mf_getengine;'; + put '/** @endcond */'; + put '%macro mm_assigndirectlib('; + put 'libref /* libref to assign from metadata */'; + put ',open_passthrough= /* provide an alias to produce the'; + put 'CONNECT TO statement for the'; + put 'relevant external database */'; + put ',sql_options= /* add any options to add to proc sql statement eg outobs='; + put '(only valid for pass through) */'; + put ',mDebug=0'; + put ',mAbort=0'; + put ')/*/STORE SOURCE*/;'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing mm_assigndirectlib.sas;'; + put '%&mD.put _local_;'; + put '%if &mAbort=1 %then %let mAbort=;'; + put '%else %let mAbort=%str(*);'; + put '%&mD.put NOTE: Creating direct (non META) connection to &libref library;'; + put '%local cur_engine;'; + put '%let cur_engine=%mf_getengine(&libref);'; + put '%if &cur_engine ne META and &cur_engine ne %then %do;'; + put '%put NOTE: &libref already has a direct (&cur_engine) libname connection;'; + put '%return;'; + put '%end;'; + put '%else %if %upcase(&libref)=WORK %then %do;'; + put '%put NOTE: We already have a direct connection to WORK :-) ;'; + put '%return;'; + put '%end;'; + put '/* need to determine the library ENGINE first */'; + put '%local engine;'; + put 'data _null_;'; + put 'length lib_uri engine $256;'; + put 'call missing (of _all_);'; + put '/* get URI for the particular library */'; + put 'rc1=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put '/* get the Engine attribute of the previous object */'; + put 'rc2=metadata_getattr(lib_uri,''Engine'',engine);'; + put 'putlog "mm_assigndirectlib for &libref:" rc1= lib_uri= rc2= engine=;'; + put 'call symputx("liburi",lib_uri,''l'');'; + put 'call symputx("engine",engine,''l'');'; + put 'run;'; + put '/* now obtain engine specific connection details */'; + put '%if &engine=BASE %then %do;'; + put '%&mD.put NOTE: Retrieving BASE library path;'; + put 'data _null_;'; + put 'length up_uri $256 path cat_path $1024;'; + put 'retain cat_path;'; + put 'call missing (of _all_);'; + put '/* get all the filepaths of the UsingPackages association */'; + put 'i=1;'; + put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; + put 'do while (rc3>0);'; + put '/* get the DirectoryName attribute of the previous object */'; + put 'rc4=metadata_getattr(up_uri,''DirectoryName'',path);'; + put 'if i=1 then path = ''("''!!trim(path)!!''" '';'; + put 'else path ='' "''!!trim(path)!!''" '';'; + put 'cat_path = trim(cat_path) !! " " !! trim(path) ;'; + put 'i+1;'; + put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; + put 'end;'; + put 'cat_path = trim(cat_path) !! ")";'; + put '&mD.putlog "NOTE: Getting physical path for &libref library";'; + put '&mD.putlog rc3= up_uri= rc4= cat_path= path=;'; + put '&mD.putlog "NOTE: Libname cmd will be:";'; + put '&mD.putlog "libname &libref" cat_path;'; + put 'call symputx("filepath",cat_path,''l'');'; + put 'run;'; + put '%if %sysevalf(&sysver<9.4) %then %do;'; + put 'libname &libref &filepath;'; + put '%end;'; + put '%else %do;'; + put '/* apply the new filelocks option to cater for temporary locks */'; + put 'libname &libref &filepath filelockwait=5;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=REMOTE %then %do;'; + put 'data x;'; + put 'length rcCon rcProp rc k 3 uriCon uriProp PropertyValue PropertyName'; + put 'Delimiter $256 properties $2048;'; + put 'retain properties;'; + put 'rcCon = metadata_getnasn("&liburi", "LibraryConnection", 1, uriCon);'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", 1, uriProp);'; + put 'k = 1;'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; + put 'do while (rcProp > 0);'; + put 'rc = metadata_getattr(uriProp , "DefaultValue",PropertyValue);'; + put 'rc = metadata_getattr(uriProp , "PropertyName",PropertyName);'; + put 'rc = metadata_getattr(uriProp , "Delimiter",Delimiter);'; + put 'properties = trim(properties) !! " " !! trim(PropertyName)'; + put '!! trim(Delimiter) !! trim(PropertyValue);'; + put 'output;'; + put 'k+1;'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; + put 'end;'; + put '%&mD.put NOTE: Getting properties for REMOTE SHARE &libref library;'; + put '&mD.put _all_;'; + put '%&mD.put NOTE: Libname cmd will be:;'; + put '%&mD.put libname &libref &engine &properties slibref=&libref;'; + put 'call symputx ("properties",trim(properties),''l'');'; + put 'run;'; + put 'libname &libref &engine &properties slibref=&libref;'; + put '%end;'; + put '%else %if &engine=OLEDB %then %do;'; + put '%&mD.put NOTE: Retrieving OLEDB connection details;'; + put 'data _null_;'; + put 'length domain datasource provider properties schema'; + put 'connx_uri domain_uri conprop_uri lib_uri schema_uri value $256.;'; + put 'call missing (of _all_);'; + put '/* get source connection ID */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; + put '/* get connection domain */'; + put 'rc1=metadata_getnasn(connx_uri,''Domain'',1,domain_uri);'; + put 'rc2=metadata_getattr(domain_uri,''Name'',domain);'; + put '&mD.putlog / ''NOTE: '' // ''NOTE- connection id: '' connx_uri ;'; + put '&mD.putlog ''NOTE- domain: '' domain;'; + put '/* get DSN and PROVIDER from connection properties */'; + put 'i=0;'; + put 'do until (rc<0);'; + put 'i+1;'; + put 'rc=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; + put 'rc2=metadata_getattr(conprop_uri,''Name'',value);'; + put 'if value=''Connection.OLE.Property.DATASOURCE.Name.xmlKey.txt'' then do;'; + put 'rc3=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; + put 'end;'; + put 'else if value=''Connection.OLE.Property.PROVIDER.Name.xmlKey.txt'' then do;'; + put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',provider);'; + put 'end;'; + put 'else if value=''Connection.OLE.Property.PROPERTIES.Name.xmlKey.txt'' then'; + put 'do;'; + put 'rc5=metadata_getattr(conprop_uri,''DefaultValue'',properties);'; + put 'end;'; + put 'end;'; + put '&mD.putlog ''NOTE- dsn/provider/properties: '' /'; + put 'datasource provider properties;'; + put '&mD.putlog ''NOTE- schema: '' schema // ''NOTE-'';'; + put '/* get SCHEMA */'; + put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,lib_uri);'; + put 'rc7=metadata_getattr(lib_uri,''SchemaName'',schema);'; + put 'call symputx(''SQL_domain'',domain,''l'');'; + put 'call symputx(''SQL_dsn'',datasource,''l'');'; + put 'call symputx(''SQL_provider'',provider,''l'');'; + put 'call symputx(''SQL_properties'',properties,''l'');'; + put 'call symputx(''SQL_schema'',schema,''l'');'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put 'proc sql &sql_options;'; + put 'connect to OLEDB as &open_passthrough(INSERT_SQL=YES'; + put '/* need additional properties to make this work */'; + put 'properties=(''Integrated Security''=SSPI'; + put '''Persist Security Info''=True'; + put '%sysfunc(compress(%str(&SQL_properties),%str(())))'; + put ')'; + put 'DATASOURCE=&sql_dsn PROMPT=NO'; + put 'PROVIDER=&sql_provider SCHEMA=&sql_schema CONNECTION = GLOBAL);'; + put '%end;'; + put '%else %do;'; + put 'LIBNAME &libref OLEDB PROPERTIES=&sql_properties'; + put 'DATASOURCE=&sql_dsn PROVIDER=&sql_provider SCHEMA=&sql_schema'; + put '%if %length(&sql_domain)>0 %then %do;'; + put 'authdomain="&sql_domain"'; + put '%end;'; + put 'connection=shared;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=ODBC %then %do;'; + put '&mD.%put NOTE: Retrieving ODBC connection details;'; + put 'data _null_;'; + put 'length connx_uri conprop_uri value datasource up_uri schema $256.;'; + put 'call missing (of _all_);'; + put '/* get source connection ID */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; + put '/* get connection properties */'; + put 'i=0;'; + put 'do until (rc2<0);'; + put 'i+1;'; + put 'rc2=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; + put 'rc3=metadata_getattr(conprop_uri,''Name'',value);'; + put 'if value=''Connection.ODBC.Property.DATASRC.Name.xmlKey.txt'' then do;'; + put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; + put 'rc2=-1;'; + put 'end;'; + put 'end;'; + put '/* get SCHEMA */'; + put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,up_uri);'; + put 'rc7=metadata_getattr(up_uri,''SchemaName'',schema);'; + put '&mD.put rc= connx_uri= rc2= conprop_uri= rc3= value= rc4= datasource='; + put 'rc6= up_uri= rc7= schema=;'; + put 'call symputx(''SQL_schema'',schema,''l'');'; + put 'call symputx(''SQL_dsn'',datasource,''l'');'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put 'proc sql &sql_options;'; + put 'connect to ODBC as &open_passthrough'; + put '(INSERT_SQL=YES DATASRC=&sql_dsn. CONNECTION=global);'; + put '%end;'; + put '%else %do;'; + put 'libname &libref ODBC DATASRC=&sql_dsn SCHEMA=&sql_schema;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=POSTGRES %then %do;'; + put '%put NOTE: Obtaining POSTGRES library details;'; + put 'data _null_;'; + put 'length database ignore_read_only_columns direct_exe preserve_col_names'; + put 'preserve_tab_names server schema authdomain user password'; + put 'prop name value uri urisrc $256.;'; + put 'call missing (of _all_);'; + put '/* get database value */'; + put 'prop=''Connection.DBMS.Property.DB.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,database,"");'; + put 'if database^='''' then database=''database=''!!quote(trim(database));'; + put 'call symputx(''database'',database,''l'');'; + put '/* get IGNORE_READ_ONLY_COLUMNS value */'; + put 'prop=''Library.DBMS.Property.DBIROC.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,ignore_read_only_columns,"");'; + put 'if ignore_read_only_columns^='''' then ignore_read_only_columns='; + put '''ignore_read_only_columns=''!!ignore_read_only_columns;'; + put 'call symputx(''ignore_read_only_columns'',ignore_read_only_columns,''l'');'; + put '/* get DIRECT_EXE value */'; + put 'prop=''Library.DBMS.Property.DirectExe.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,direct_exe,"");'; + put 'if direct_exe^='''' then direct_exe=''direct_exe=''!!direct_exe;'; + put 'call symputx(''direct_exe'',direct_exe,''l'');'; + put '/* get PRESERVE_COL_NAMES value */'; + put 'prop=''Library.DBMS.Property.PreserveColNames.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,preserve_col_names,"");'; + put 'if preserve_col_names^='''' then preserve_col_names='; + put '''preserve_col_names=''!!preserve_col_names;'; + put 'call symputx(''preserve_col_names'',preserve_col_names,''l'');'; + put '/* get PRESERVE_TAB_NAMES value */'; + put '/* be careful with PRESERVE_TAB_NAMES=YES - it will mean your table will'; + put 'become case sensitive!! */'; + put 'prop=''Library.DBMS.Property.PreserveTabNames.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,preserve_tab_names,"");'; + put 'if preserve_tab_names^='''' then preserve_tab_names='; + put '''preserve_tab_names=''!!preserve_tab_names;'; + put 'call symputx(''preserve_tab_names'',preserve_tab_names,''l'');'; + put '/* get SERVER value */'; + put 'if metadata_getnasn("&liburi","LibraryConnection",1,uri)>0 then do;'; + put 'prop=''Connection.DBMS.Property.SERVER.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop(uri,prop,server,"");'; + put 'end;'; + put 'if server^='''' then server=''server=''!!quote(cats(server));'; + put 'call symputx(''server'',server,''l'');'; + put '/* get SCHEMA value */'; + put 'if metadata_getnasn("&liburi","UsingPackages",1,uri)>0 then do;'; + put 'rc=metadata_getattr(uri,"SchemaName",schema);'; + put 'end;'; + put 'if schema^='''' then schema=''schema=''!!schema;'; + put 'call symputx(''schema'',schema,''l'');'; + put '/* get AUTHDOMAIN value */'; + put '/* this is only useful if the user account contains that auth domain'; + put 'if metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then do;'; + put 'rc=metadata_getnasn(uri,"Domain",1,urisrc);'; + put 'rc=metadata_getattr(urisrc,"Name",authdomain);'; + put 'end;'; + put 'if authdomain^='''' then authdomain=''authdomain=''!!quote(trim(authdomain));'; + put '*/'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/* get user & pass */'; + put 'if authdomain='''' & metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then'; + put 'do;'; + put 'rc=metadata_getattr(uri,"UserID",user);'; + put 'rc=metadata_getattr(uri,"Password",password);'; + put 'end;'; + put 'if user^='''' then do;'; + put 'user=''user=''!!quote(trim(user));'; + put 'password=''password=''!!quote(trim(password));'; + put 'end;'; + put 'call symputx(''user'',user,''l'');'; + put 'call symputx(''password'',password,''l'');'; + put '&md.put _all_;'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put '%put %str(WARN)ING: Passthrough option for postgres not yet supported;'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put '%if &mdebug=1 %then %do;'; + put '%put NOTE: Executing the following:/;'; + put '%put NOTE- libname &libref POSTGRES &database &ignore_read_only_columns;'; + put '%put NOTE- &direct_exe &preserve_col_names &preserve_tab_names;'; + put '%put NOTE- &server &schema &authdomain &user &password //;'; + put '%end;'; + put 'libname &libref POSTGRES &database &ignore_read_only_columns &direct_exe'; + put '&preserve_col_names &preserve_tab_names &server &schema &authdomain'; + put '&user &password;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=ORACLE %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null_;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema $256;'; + put 'call missing (of _all_);'; + put '/* get auth domain */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; + put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; + put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/* path */'; + put 'rc=metadata_getprop(assocuri1,'; + put '''Connection.Oracle.Property.PATH.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref ORACLE path=&path schema=&schema;'; + put '%put NOTE- authdomain=&authdomain;'; + put '%put NOTE-;'; + put 'libname &libref ORACLE path=&path schema=&schema authdomain=&authdomain;'; + put '%end;'; + put '%else %if &engine=SQLSVR %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; + put 'passwd $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; + put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; + put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; + put 'call symputx(''user'',userid,''l'');'; + put 'call symputx(''pass'',passwd,''l'');'; + put '/* path */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; + put 'rc=metadata_getprop(assocuri2,'; + put '''Connection.SQL.Property.Datasrc.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref SQLSVR datasrc=&path schema=&schema ;'; + put '%put NOTE- user="&user" pass="XXX";'; + put '%put NOTE-;'; + put 'libname &libref SQLSVR datasrc=&path schema=&schema user="&user" pass="&pass";'; + put '%end;'; + put '%else %if &engine=TERADATA %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; + put 'passwd $256;'; + put 'call missing (of _all_);'; + put '/* get auth domain */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; + put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; + put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/*'; + put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; + put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; + put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; + put 'call symputx(''user'',userid,''l'');'; + put 'call symputx(''pass'',passwd,''l'');'; + put '*/'; + put '/* path */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; + put 'rc=metadata_getprop(assocuri2,'; + put '''Connection.Teradata.Property.SERVER.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref TERADATA server="&path" schema=&schema ;'; + put '%put NOTe- authdomain=&authdomain;'; + put '%put NOTE-;'; + put 'libname &libref TERADATA server="&path" schema=&schema authdomain=&authdomain;'; + put '%end;'; + put '%else %if &engine= %then %do;'; + put '%put NOTE: Libref &libref is not registered in metadata;'; + put '%&mAbort.mp_abort('; + put 'msg=%str(ERR)OR: Libref &libref is not registered in metadata'; + put ',mac=mm_assigndirectlib.sas);'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put '%put %str(WARN)ING: Engine &engine is currently unsupported;'; + put '%put %str(WARN)ING- Please contact your support team.;'; + put '%return;'; + put '%end;'; + put '%mend mm_assigndirectlib;'; + put '%macro mm_getrepos('; + put 'outds=work.mm_getrepos'; + put ')/*/STORE SOURCE*/;'; + put '* use a temporary fileref to hold the response;'; + put 'filename response temp;'; + put '/* get list of libraries */'; + put 'proc metadata in='; + put '"1"'; + put 'out=response;'; + put 'run;'; + put '/* write the response to the log for debugging */'; + put '/*'; + put 'data _null_;'; + put 'infile response lrecl=1048576;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '*/'; + put '/* create an XML map to read the response */'; + put 'filename sxlemap temp;'; + put 'data _null_;'; + put 'file sxlemap;'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository";'; + put 'put "";'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Id";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Name";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Desc";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@DefaultNS";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryType";'; + put 'put "characterstring20";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryFormat";'; + put 'put "characterstring10";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@Access";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@CurrentAccess";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@PauseState";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Path";'; + put 'put "";'; + put 'put "characterstring256";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Engine";'; + put 'put "";'; + put 'put "characterstring8";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Options";'; + put 'put "";'; + put 'put "characterstring32";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataCreated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataUpdated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put ''
'';'; + put 'run;'; + put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; + put 'proc sort data= _XML_.SASRepos out=&outds;'; + put 'by name;'; + put 'run;'; + put '/* clear references */'; + put 'filename sxlemap clear;'; + put 'filename response clear;'; + put 'libname _XML_ clear;'; + put '%mend mm_getrepos;'; + put '%macro dc_assignlib(type,libref,passthru=);'; + put '%put &sysmacroname entry vars:;'; + put '%put _local_;'; + put '/* take current repository */'; + put '%local repo repocnt x;'; + put '%let repo=%sysfunc(getoption(metarepository));'; + put '/* get list of repositories and filter */'; + put '%mm_getrepos(outds=repos)'; + put '%let repocnt=0;'; + put 'data repos;'; + put 'set repos;'; + put 'where repositorytype in(''CUSTOM'',''FOUNDATION'')'; + put '& upcase(name) ne "%upcase(&repo)";'; + put 'keep id name ;'; + put 'call symputx(cats(''repo'',_n_),name,''l'');'; + put 'call symputx(''repocnt'',_n_,''l'');'; + put 'run;'; + put '/* find out which of these repositories has the libref we are searching for */'; + put '%local lib_uri;'; + put '%let lib_uri=NOTFOUND;'; + put 'data _null_; /* check default repo first */'; + put 'length lib_uri $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; + put 'run;'; + put '%if &lib_uri=NOTFOUND %then %do;'; + put '%do x=1 %to &repocnt;'; + put 'options metarepository=&&repo&x;'; + put 'data _null_;'; + put 'length lib_uri $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; + put 'run;'; + put '%if &lib_uri ne NOTFOUND %then %let x=%eval(&repocnt+1);'; + put '%end;'; + put '%end;'; + put '%if &type=READ %then %do;'; + put '%mm_assignlib(&libref)'; + put '%end;'; + put '%else %if &type=WRITE %then %do;'; + put '%mm_assigndirectlib(&libref,open_passthrough=&passthru)'; + put '%end;'; + put 'options metarepository=&repo;'; + put '%mend dc_assignlib;'; + put '%macro mf_getvarlist(libds'; + put ',dlm=%str( )'; + put ',quote=no'; + put ',typefilter=A'; + put ')/*/STORE SOURCE*/;'; + put '/* declare local vars */'; + put '%local outvar dsid nvars x rc dlm q var vtype;'; + put '/* credit Rowland Hale - byte34 is double quote, 39 is single quote */'; + put '%if %upcase("e)=DOUBLE %then %let q=%qsysfunc(byte(34));'; + put '%else %if %upcase("e)=SINGLE %then %let q=%qsysfunc(byte(39));'; + put '/* open dataset in macro */'; + put '%let dsid=%sysfunc(open(&libds));'; + put '%if &dsid %then %do;'; + put '%let nvars=%sysfunc(attrn(&dsid,NVARS));'; + put '%if &nvars>0 %then %do;'; + put '/* add variables with supplied delimeter */'; + put '%do x=1 %to &nvars;'; + put '/* get variable type */'; + put '%let vtype=%sysfunc(vartype(&dsid,&x));'; + put '%if &vtype=&typefilter or &typefilter=A %then %do;'; + put '%let var=&q.%sysfunc(varname(&dsid,&x))&q.;'; + put '%if &var=&q&q %then %do;'; + put '%put &sysmacroname: Empty column found in &libds!;'; + put '%let var=&q. &q.;'; + put '%end;'; + put '%if %quote(&outvar)=%quote() %then %let outvar=&var;'; + put '%else %let outvar=&outvar.&dlm.&var.;'; + put '%end;'; + put '%end;'; + put '%end;'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: Unable to open &libds (rc=&dsid);'; + put '%put &sysmacroname: SYSMSG= %sysfunc(sysmsg());'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%do;%unquote(&outvar)%end;'; + put '%mend mf_getvarlist;'; + put '%macro mf_getvartype(libds /* two level name */'; + put ', var /* variable name from which to return the type */'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid vnum vtype rc;'; + put '/* Open dataset */'; + put '%let dsid = %sysfunc(open(&libds));'; + put '%if &dsid. > 0 %then %do;'; + put '/* Get variable number */'; + put '%let vnum = %sysfunc(varnum(&dsid, &var));'; + put '/* Get variable type (C/N) */'; + put '%if(&vnum. > 0) %then %let vtype = %sysfunc(vartype(&dsid, &vnum.));'; + put '%else %do;'; + put '%put NOTE: Variable &var does not exist in &libds;'; + put '%let vtype = %str( );'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: dataset &libds not opened! (rc=&dsid);'; + put '%put &sysmacroname: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '/* Close dataset */'; + put '%let rc = %sysfunc(close(&dsid));'; + put '/* Return variable type */'; + put '&vtype'; + put '%mend mf_getvartype;'; + put '%macro mf_getattrn('; + put 'libds'; + put ',attr'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid rc;'; + put '%let dsid=%sysfunc(open(&libds,is));'; + put '%if &dsid = 0 %then %do;'; + put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; + put '%put %sysfunc(sysmsg());'; + put '-1'; + put '%end;'; + put '%else %do;'; + put '%sysfunc(attrn(&dsid,&attr))'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%mend mf_getattrn;'; + put '%macro mf_nobs(libds'; + put ')/*/STORE SOURCE*/;'; + put '%mf_getattrn(&libds,NLOBS)'; + put '%mend mf_nobs;'; + put '%macro mp_filtergenerate(inds,outref=filter);'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc - on macro entry)'; + put ')'; + put 'filename &outref temp;'; + put '%if %mf_nobs(&inds)=0 %then %do;'; + put '/* ensure we have a default filter */'; + put 'data _null_;'; + put 'file &outref;'; + put 'put ''1=1'';'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put 'proc sort data=&inds;'; + put 'by SUBGROUP_ID;'; + put 'run;'; + put 'data _null_;'; + put 'file &outref lrecl=32800;'; + put 'set &inds end=last;'; + put 'by SUBGROUP_ID;'; + put 'if _n_=1 then put ''(('';'; + put 'else if first.SUBGROUP_ID then put +1 GROUP_LOGIC ''('';'; + put 'else put +2 SUBGROUP_LOGIC;'; + put 'put +4 VARIABLE_NM OPERATOR_NM RAW_VALUE;'; + put 'if last.SUBGROUP_ID then put '')''@;'; + put 'if last then put '')'';'; + put 'run;'; + put '%end;'; + put '%mend mp_filtergenerate;'; + put '%macro mp_filtervalidate(inref,targetds,abort=YES,outds=work.mp_filtervalidate);'; + put '%mp_abort(iftrue= (&syscc ne 0 or &syserr ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc / syserr=&syserr - on macro entry)'; + put ')'; + put '%local fref1;'; + put '%let fref1=%mf_getuniquefileref();'; + put 'data _null_;'; + put 'file &fref1;'; + put 'infile &inref end=eof;'; + put 'if _n_=1 then do;'; + put 'put "proc sql;";'; + put 'put "validate select * from &targetds";'; + put 'put "where " ;'; + put 'end;'; + put 'input;'; + put 'put _infile_;'; + put 'putlog _infile_;'; + put 'if eof then put ";quit;";'; + put 'run;'; + put '%inc &fref1;'; + put 'data &outds;'; + put 'if &sqlrc or &syscc or &syserr then do;'; + put 'REASON_CD=''VALIDATION_ERR''!!''OR: ''!!'; + put 'coalescec(symget(''SYSERRORTEXT''),symget(''SYSWARNINGTEXT''));'; + put 'output;'; + put 'end;'; + put 'else stop;'; + put 'run;'; + put 'filename &fref1 clear;'; + put '%if %mf_nobs(&outds)>0 %then %do;'; + put '%if &abort=YES %then %do;'; + put 'data _null_;'; + put 'set &outds;'; + put 'call symputx(''REASON_CD'',reason_cd,''l'');'; + put 'stop;'; + put 'run;'; + put '%mp_abort('; + put 'mac=&sysmacroname,'; + put 'msg=%str(Filter validation issues.)'; + put ')'; + put '%end;'; + put '%let syscc=1008;'; + put '%end;'; + put '%mend mp_filtervalidate;'; + put '%macro mp_filtercheck(inds,targetds=,outds=work.badrecords,abort=YES);'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc - on macro entry)'; + put ')'; + put '/* Validate input column */'; + put '%local vtype;'; + put '%let vtype=%mf_getvartype(&inds,RAW_VALUE);'; + put '%mp_abort(iftrue=(&abort=YES and &vtype ne C),'; + put 'mac=&sysmacroname,'; + put 'msg=%str(%str(ERR)OR: RAW_VALUE must be character)'; + put ')'; + put '%if &vtype ne C %then %do;'; + put '%put &sysmacroname: RAW_VALUE must be character;'; + put '%let syscc=42;'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Sanitise the values based on valid value lists, then strip out'; + put '* quotes, commas, periods and spaces.'; + put '* Only numeric values should remain'; + put '*/'; + put '%local reason_cd nobs;'; + put '%let nobs=0;'; + put 'data &outds;'; + put '/*length GROUP_LOGIC SUBGROUP_LOGIC $3 SUBGROUP_ID 8 VARIABLE_NM $32'; + put 'OPERATOR_NM $10 RAW_VALUE $4000;*/'; + put 'set &inds;'; + put 'length reason_cd $4032 vtype $1 vnum dsid 8 tmp $4000;'; + put 'drop tmp;'; + put '/* quick check to ensure column exists */'; + put 'if upcase(VARIABLE_NM) not in'; + put '(%upcase(%mf_getvarlist(&targetds,dlm=%str(,),quote=SINGLE)))'; + put 'then do;'; + put 'REASON_CD="Variable "!!cats(variable_nm)!!" not in &targetds";'; + put 'putlog REASON_CD= VARIABLE_NM=;'; + put 'call symputx(''reason_cd'',reason_cd,''l'');'; + put 'call symputx(''nobs'',_n_,''l'');'; + put 'output;'; + put 'return;'; + put 'end;'; + put '/* need to open the dataset to get the column type */'; + put 'dsid=open("&targetds","i");'; + put 'if dsid>0 then do;'; + put 'vnum=varnum(dsid,VARIABLE_NM);'; + put 'if vnum<1 then do;'; + put '/* should not happen as was also tested for above */'; + put 'REASON_CD=cats("Variable (",VARIABLE_NM,") not found in &targetds");'; + put 'putlog REASON_CD= dsid=;'; + put 'call symputx(''reason_cd'',reason_cd,''l'');'; + put 'call symputx(''nobs'',_n_,''l'');'; + put 'output;'; + put 'return;'; + put 'end;'; + put '/* now we can get the type */'; + put 'else vtype=vartype(dsid,vnum);'; + put 'end;'; + put '/* closed list checks */'; + put 'if GROUP_LOGIC not in (''AND'',''OR'') then do;'; + put 'REASON_CD=''GROUP_LOGIC should be AND/OR, not:''!!cats(GROUP_LOGIC);'; + put 'putlog REASON_CD= GROUP_LOGIC=;'; + put 'call symputx(''reason_cd'',reason_cd,''l'');'; + put 'call symputx(''nobs'',_n_,''l'');'; + put 'output;'; + put 'end;'; + put 'if SUBGROUP_LOGIC not in (''AND'',''OR'') then do;'; + put 'REASON_CD=''SUBGROUP_LOGIC should be AND/OR, not:''!!cats(SUBGROUP_LOGIC);'; + put 'putlog REASON_CD= SUBGROUP_LOGIC=;'; + put 'call symputx(''reason_cd'',reason_cd,''l'');'; + put 'call symputx(''nobs'',_n_,''l'');'; + put 'output;'; + put 'end;'; + put 'if mod(SUBGROUP_ID,1) ne 0 then do;'; + put 'REASON_CD=''SUBGROUP_ID should be integer, not ''!!cats(subgroup_id);'; + put 'putlog REASON_CD= SUBGROUP_ID=;'; + put 'call symputx(''reason_cd'',reason_cd,''l'');'; + put 'call symputx(''nobs'',_n_,''l'');'; + put 'output;'; + put 'end;'; + put 'if OPERATOR_NM not in'; + put '(''='',''>'',''<'',''<='',''>='',''NE'',''GE'',''LE'',''BETWEEN'',''IN'',''NOT IN'',''CONTAINS'')'; + put 'then do;'; + put 'REASON_CD=''Invalid OPERATOR_NM: ''!!cats(OPERATOR_NM);'; + put 'putlog REASON_CD= OPERATOR_NM=;'; + put 'call symputx(''reason_cd'',reason_cd,''l'');'; + put 'call symputx(''nobs'',_n_,''l'');'; + put 'output;'; + put 'end;'; + put '/* special missing logic */'; + put 'if vtype=''N'''; + put 'and OPERATOR_NM in (''='',''>'',''<'',''<='',''>='',''NE'',''GE'',''LE'')'; + put 'and cats(upcase(raw_value)) in ('; + put '''.'',''.A'',''.B'',''.C'',''.D'',''.E'',''.F'',''.G'',''.H'',''.I'',''.J'',''.K'',''.L'',''.M'',''.N'''; + put '''.N'',''.O'',''.P'',''.Q'',''.R'',''.S'',''.T'',''.U'',''.V'',''.W'',''.X'',''.Y'',''.Z'',''._'''; + put ')'; + put 'then do;'; + put '/* valid numeric - exit data step loop */'; + put 'return;'; + put 'end;'; + put '/* special logic */'; + put 'if OPERATOR_NM in (''IN'',''NOT IN'',''BETWEEN'') then do;'; + put 'if OPERATOR_NM=''BETWEEN'' then raw_value1=tranwrd(raw_value,'' AND '','','');'; + put 'else do;'; + put 'if substr(raw_value,1,1) ne ''('''; + put 'or substr(cats(reverse(raw_value)),1,1) ne '')'''; + put 'then do;'; + put 'REASON_CD=''Missing start/end bracket in RAW_VALUE'';'; + put 'putlog REASON_CD= OPERATOR_NM= raw_value= raw_value1= ;'; + put 'call symputx(''reason_cd'',reason_cd,''l'');'; + put 'call symputx(''nobs'',_n_,''l'');'; + put 'output;'; + put 'end;'; + put 'else raw_value1=substr(raw_value,2,max(length(raw_value)-2,0));'; + put 'end;'; + put '/* we now have a comma seperated list of values */'; + put 'if vtype=''N'' then do i=1 to countc(raw_value1, '','')+1;'; + put 'tmp=scan(raw_value1,i,'','');'; + put 'if cats(tmp) ne ''.'' and input(tmp, ?? 8.) eq . then do;'; + put 'REASON_CD=''Non Numeric value provided'';'; + put 'putlog REASON_CD= OPERATOR_NM= raw_value= raw_value1= ;'; + put 'call symputx(''reason_cd'',reason_cd,''l'');'; + put 'call symputx(''nobs'',_n_,''l'');'; + put 'output;'; + put 'end;'; + put 'return;'; + put 'end;'; + put 'end;'; + put 'else raw_value1=raw_value;'; + put '/* remove nested literals eg '''' */'; + put 'raw_value1=tranwrd(raw_value1,"''''",'''');'; + put '/* now match string literals (always single quotes) */'; + put 'raw_value2=raw_value1;'; + put 'regex = prxparse("s/(\'').*?(\'')//");'; + put 'call prxchange(regex,-1,raw_value2);'; + put '/* remove commas and periods*/'; + put 'raw_value3=compress(raw_value2,'',.'');'; + put '/* output records that contain values other than digits and spaces */'; + put 'if notdigit(compress(raw_value3,'' ''))>0 then do;'; + put 'putlog raw_value3= $hex32.;'; + put 'REASON_CD=cats(''Invalid RAW_VALUE:'',raw_value);'; + put 'putlog REASON_CD= raw_value= raw_value1= raw_value2= raw_value3=;'; + put 'call symputx(''reason_cd'',reason_cd,''l'');'; + put 'call symputx(''nobs'',_n_,''l'');'; + put 'output;'; + put 'end;'; + put 'run;'; + put 'data _null_;'; + put 'set &outds end=last;'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue=(&abort=YES and &nobs>0),'; + put 'mac=&sysmacroname,'; + put 'msg=%str(Data issue: %superq(reason_cd))'; + put ')'; + put '%if &nobs>0 %then %do;'; + put '%let syscc=1008;'; + put '%return;'; + put '%end;'; + put '/**'; + put '* syntax checking passed but it does not mean the filter is valid'; + put '* for that we can run a proc sql validate query'; + put '*/'; + put '%local fref1;'; + put '%let fref1=%mf_getuniquefileref();'; + put '%mp_filtergenerate(&inds,outref=&fref1)'; + put '/* this macro will also set syscc to 1008 if any issues found */'; + put '%mp_filtervalidate(&fref1,&targetds,outds=&outds,abort=&abort)'; + put '%mend mp_filtercheck;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file'; + put '@brief Post Edit Hook script for the MPE_ROW_LEVEL_SECURITY table'; + put '@details Post edit hooks provide additional backend validation for user'; + put 'provided data. The incoming dataset is named `work.staging_ds` and is'; + put 'provided in mpe_loader.sas.'; + put 'Available macro variables:'; + put '@li DC_LIBREF - The DC control library'; + put '@li LIBREF - The library of the dataset being edited (is assigned)'; + put '@li DS - The dataset being edited'; + put 'This validation checks the incoming row_level_security settings to ensure'; + put 'each individual filter is'; + put '

SAS Macros

'; + put '@li dc_assignlib.sas'; + put '@li mp_filtercheck.sas'; + put '

Related Macros

'; + put '@li mpe_loader.sas'; + put '**/'; + put '/* ignore scope and group for validation */'; + put 'proc sql;'; + put 'create table work.batches as'; + put 'select distinct upcase(rls_libref) as rls_libref,'; + put 'upcase(rls_table) as rls_table,'; + put 'rls_group_logic as group_logic,'; + put 'rls_subgroup_logic as subgroup_logic,'; + put 'rls_subgroup_id as subgroup_id,'; + put 'rls_variable_nm as variable_nm,'; + put 'rls_operator_nm as operator_nm,'; + put 'rls_raw_value as raw_value'; + put 'from work.staging_ds'; + put 'where rls_active=1'; + put 'order by rls_libref, rls_table;'; + put '%let cnt=0;'; + put 'data _null_;'; + put 'set work.batches;'; + put 'by rls_libref rls_table;'; + put 'putlog (_all_)(=);'; + put 'if last.rls_table then do;'; + put 'x+1;'; + put 'call symputx(cats(''libds'',x),cats(rls_libref,''.'',rls_table));'; + put 'call symputx(''cnt'',x);'; + put 'end;'; + put 'run;'; + put '%macro quickloop();'; + put '%do i=1 %to &cnt;'; + put 'data work.inds&i;'; + put 'set work.batches;'; + put 'if cats(rls_libref,''.'',rls_table)="&&libds&i";'; + put 'keep group_logic subgroup_logic subgroup_id variable_nm operator_nm'; + put 'raw_value;'; + put 'run;'; + put '%dc_assignlib(READ,%scan(&&libds&i,1,.))'; + put '%mp_filtercheck(work.inds&i'; + put ',targetds=&&libds&i'; + put ',outds=work.badrecords'; + put ',abort=YES'; + put ')'; + put '%end;'; + put '%mend quickloop;'; + put '%quickloop()'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=mpe_tables_postedit; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Files

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as FMTCAT,'; + put 'FMTNAME'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'LENGTH num'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.length as MAXW'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put ')))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] workobs= (0) When set to a positive integer, will create a new'; + put 'output object (WORK) which contains this number of observations from all'; + put 'tables in the WORK library.'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX,workobs=0'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&workobs) > 0 %then %do;'; + put '/* if debug mode, send back first XX records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10'; + put ',maxobs=&workobs'; + put ')'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file'; + put '@brief Post Edit Hook script for the MPE_TABLES table'; + put '@details Post edit hooks provide additional backend validation for user'; + put 'provided data. The incoming dataset is named `work.staging_ds` and is'; + put 'provided in mpe_loader.sas.'; + put 'Available macro variables:'; + put '@li DC_LIBREF - The DC control library'; + put '@li LIBREF - The library of the dataset being edited (is assigned)'; + put '@li DS - The dataset being edited'; + put 'This validation checks MPE_TABLES to ensure modified / added records are'; + put 'valid. If a non-default AUDIT_LIBDS is being used, there is also a check'; + put 'to ensure that this table already exists.'; + put '**/'; + put '%let errmsg=;'; + put '%let errflag=0;'; + put '/* ensure uppercasing */'; + put 'data work.staging_ds;'; + put 'set work.staging_ds;'; + put 'LIBREF=upcase(LIBREF);'; + put 'DSN=upcase(DSN);'; + put 'loadtype=upcase(loadtype);'; + put 'buskey=upcase(buskey);'; + put 'var_txfrom=upcase(var_txfrom);'; + put 'var_txto=upcase(var_txto);'; + put 'var_busfrom=upcase(var_busfrom);'; + put 'var_busto=upcase(var_busto);'; + put 'var_processed=upcase(var_processed);'; + put 'close_vars=upcase(close_vars);'; + put 'audit_libds=upcase(audit_libds);'; + put '/* check for valid loadtype */'; + put 'if LOADTYPE not in (''UPDATE'',''TXTEMPORAL'',''FORMAT_CAT'',''BITEMPORAL'',''REPLACE'')'; + put 'then do;'; + put 'call symputx(''errmsg'',"Invalid LOADTYPE: "!!LOADTYPE);'; + put 'call symputx(''errflag'',1);'; + put 'end;'; + put '/* force correct BUSKEY when loading format catalogs */'; + put 'if LOADTYPE=''FORMAT_CAT'' then BUSKEY=''FMTNAME START'';'; + put 'run;'; + put '%mp_abort(iftrue=(&errflag=1)'; + put ',mac=mpe_tables_postedit'; + put ',msg=%superq(errmsg)'; + put ')'; + put '/* get distinct list of audit libs */'; + put 'proc sql;'; + put 'create table work.liblist as'; + put 'select distinct audit_libds'; + put 'from work.staging_ds'; + put 'where audit_libds not in ('''',''0'', "&dc_libref..MPE_AUDIT")'; + put 'and upcase(_____DELETE__THIS__RECORD_____) ne "YES";'; + put '/* assign the libs */'; + put 'data _null_;'; + put 'set work.liblist;'; + put 'call symputx(cats(''lib'',_n_),audit_libds);'; + put 'libref=scan(audit_libds,1,''.'');'; + put 'call execute(''%dc_assignlib(WRITE,''!!libref!!'')'');'; + put 'run;'; + put '/* check the audit tables exist */'; + put 'data _null_;'; + put 'set work.liblist;'; + put 'if exist(audit_libds,"DATA")=0 then do;'; + put 'call symputx(''errmsg'','; + put '"Audit Table "!!audit_libds!!" does not exist, or could not be assigned."'; + put ');'; + put 'call symputx(''errflag'',1);'; + put 'end;'; + put 'run;'; + put '%mp_abort(iftrue=(&errflag=1)'; + put ',mac=mpe_tables_postedit'; + put ',msg=%superq(errmsg)'; + put ')'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=mpe_validations_postedit; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Files

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as FMTCAT,'; + put 'FMTNAME'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'LENGTH num'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.length as MAXW'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put ')))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] workobs= (0) When set to a positive integer, will create a new'; + put 'output object (WORK) which contains this number of observations from all'; + put 'tables in the WORK library.'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX,workobs=0'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&workobs) > 0 %then %do;'; + put '/* if debug mode, send back first XX records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10'; + put ',maxobs=&workobs'; + put ')'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '%macro mf_getattrn('; + put 'libds'; + put ',attr'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid rc;'; + put '%let dsid=%sysfunc(open(&libds,is));'; + put '%if &dsid = 0 %then %do;'; + put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; + put '%put %sysfunc(sysmsg());'; + put '-1'; + put '%end;'; + put '%else %do;'; + put '%sysfunc(attrn(&dsid,&attr))'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%mend mf_getattrn;'; + put '%macro mf_nobs(libds'; + put ')/*/STORE SOURCE*/;'; + put '%mf_getattrn(&libds,NLOBS)'; + put '%mend mf_nobs;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file'; + put '@brief Post Edit Hook script for the MPE_VALIDATIONS table'; + put '@details Post edit hooks provide additional backend validation for user'; + put 'provided data. The incoming dataset is named `work.staging_ds` and is'; + put 'provided in mpe_loader.sas.'; + put 'Available macro variables:'; + put '@li DC_LIBREF - The DC control library'; + put '@li LIBREF - The library of the dataset being edited (is assigned)'; + put '@li DS - The dataset being edited'; + put 'This validation checks the incoming mpe_validations settings to ensure'; + put 'there are no columns that have both HARDSELECT_HOOK and SOFTSELECT_HOOK.'; + put '

SAS Macros

'; + put '@li mf_nobs.sas'; + put '

Related Macros

'; + put '@li mpe_loader.sas'; + put '**/'; + put '/** check to avoid a colum having both HARDSELECT_HOOK and SOFTSELECT_HOOK */'; + put '/* need to merge with base table in the case of a single row being added */'; + put '%global src_list1 src_list2;'; + put '%let src_list1='''';'; + put 'proc sql noprint;'; + put 'create table work.check1 as'; + put 'select quote(catx(''.'',base_lib,base_ds,base_col)) as source'; + put ',rule_type'; + put 'from work.staging_ds'; + put 'where rule_type in (''SOFTSELECT_HOOK'',''HARDSELECT_HOOK'')'; + put 'and upcase(_____DELETE__THIS__RECORD_____) ne "YES";'; + put 'select distinct cats(source) into: src_list1 separated by '','''; + put 'from work.check1;'; + put 'create table work.check2 as'; + put 'select quote(catx(''.'',base_lib,base_ds,base_col)) as source'; + put ',rule_type'; + put 'from &DC_LIBREF..MPE_VALIDATIONS'; + put 'where rule_type in (''SOFTSELECT_HOOK'',''HARDSELECT_HOOK'')'; + put 'and &dc_dttmtfmt. lt tx_to'; + put 'and catx(''.'',base_lib,base_ds,base_col) in (&src_list1);'; + put 'create table work.check3 as'; + put 'select * from work.check1'; + put 'union'; + put 'select * from work.check2;'; + put 'create table work.validation_checker as'; + put 'select source'; + put ',count(*) as cnt'; + put 'from work.check3'; + put 'group by 1'; + put 'having cnt>1;'; + put 'select distinct source into: src_list2 from work.validation_checker;'; + put 'data _null_;'; + put 'set work.validation_checker;'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (%mf_nobs(work.validation_checker)>0)'; + put ',mac=mpe_validations_postedit'; + put ',msg=%str(The following vars have duplicate HOOKS: &src_list2)'; + put ')'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let path=services/lineage; + +%let service=fetchlineage; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Files

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as FMTCAT,'; + put 'FMTNAME'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'LENGTH num'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.length as MAXW'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put ')))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] workobs= (0) When set to a positive integer, will create a new'; + put 'output object (WORK) which contains this number of observations from all'; + put 'tables in the WORK library.'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX,workobs=0'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&workobs) > 0 %then %do;'; + put '/* if debug mode, send back first XX records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10'; + put ',maxobs=&workobs'; + put ')'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '%macro mm_assignlib('; + put 'libref'; + put ',mAbort=HARD'; + put ')/*/STORE SOURCE*/;'; + put '%local mp_abort msg;'; + put '%let mp_abort=0;'; + put '%if %sysfunc(libref(&libref)) %then %do;'; + put 'data _null_;'; + put 'length liburi LibName msg $200;'; + put 'call missing(of _all_);'; + put 'nobj=metadata_getnobj("omsobj:SASLibrary?@Libref=''&libref''",1,liburi);'; + put 'if nobj=1 then do;'; + put 'rc=metadata_getattr(liburi,"Name",LibName);'; + put '/* now try and assign it */'; + put 'if libname("&libref",,''meta'',cats(''liburi="'',liburi,''";'')) ne 0 then do;'; + put 'putlog "&libref could not be assigned";'; + put 'putlog liburi=;'; + put '/**'; + put '* Fetch the system message for display in the abort modal. This is'; + put '* not always helpful though. One example, previously received:'; + put '* NOTE: Libref XX refers to the same library metadata as libref XX.'; + put '*/'; + put 'msg=sysmsg();'; + put 'if msg=:''ERROR: Libref SAVE is not assigned.'' then do;'; + put 'msg=catx(" ",'; + put '"Could not assign %upcase(&libref).",'; + put '"Please check metadata permissions! Libname:",libname,'; + put '"Liburi:",liburi'; + put ');'; + put 'end;'; + put 'else if msg="ERROR: User does not have appropriate authorization "!!'; + put '"level for library SAVE."'; + put 'then do;'; + put 'msg=catx(" ",'; + put '"ERROR: User does not have appropriate authorization level",'; + put '"for library %upcase(&libref), libname:",libname,'; + put '"Liburi:",liburi'; + put ');'; + put 'end;'; + put 'call symputx(''msg'',msg,''l'');'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1,''l'');'; + put 'end;'; + put 'else do;'; + put 'put (_all_)(=);'; + put 'call symputx(''libname'',libname,''L'');'; + put 'call symputx(''liburi'',liburi,''L'');'; + put 'end;'; + put 'end;'; + put 'else if nobj>1 then do;'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; + put 'call symputx(''msg'',"More than one library with libref=&libref");'; + put 'end;'; + put 'else do;'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; + put 'call symputx(''msg'',"Library &libref not found in metadata");'; + put 'end;'; + put 'run;'; + put '%put NOTE: &msg;'; + put '%end;'; + put '%else %do;'; + put '%put NOTE: Library &libref is already assigned;'; + put '%end;'; + put '%mp_abort(iftrue= (&mp_abort=1)'; + put ',mac=mm_assignlib.sas'; + put ',msg=%superq(msg)'; + put ')'; + put '%mend mm_assignlib;'; + put '/** @cond */'; + put '%macro mf_getengine(libref'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid engnum rc engine;'; + put '/* in case the parameter is a libref.tablename, pull off just the libref */'; + put '%let libref = %upcase(%scan(&libref, 1, %str(.)));'; + put '%let dsid=%sysfunc('; + put 'open(sashelp.vlibnam(where=(libname="%upcase(&libref)")),i)'; + put ');'; + put '%if (&dsid ^= 0) %then %do;'; + put '%let engnum=%sysfunc(varnum(&dsid,ENGINE));'; + put '%let rc=%sysfunc(fetch(&dsid));'; + put '%let engine=%sysfunc(getvarc(&dsid,&engnum));'; + put '%put &libref. ENGINE is &engine.;'; + put '%let rc= %sysfunc(close(&dsid));'; + put '%end;'; + put '%upcase(&engine)'; + put '%mend mf_getengine;'; + put '/** @endcond */'; + put '%macro mm_assigndirectlib('; + put 'libref /* libref to assign from metadata */'; + put ',open_passthrough= /* provide an alias to produce the'; + put 'CONNECT TO statement for the'; + put 'relevant external database */'; + put ',sql_options= /* add any options to add to proc sql statement eg outobs='; + put '(only valid for pass through) */'; + put ',mDebug=0'; + put ',mAbort=0'; + put ')/*/STORE SOURCE*/;'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing mm_assigndirectlib.sas;'; + put '%&mD.put _local_;'; + put '%if &mAbort=1 %then %let mAbort=;'; + put '%else %let mAbort=%str(*);'; + put '%&mD.put NOTE: Creating direct (non META) connection to &libref library;'; + put '%local cur_engine;'; + put '%let cur_engine=%mf_getengine(&libref);'; + put '%if &cur_engine ne META and &cur_engine ne %then %do;'; + put '%put NOTE: &libref already has a direct (&cur_engine) libname connection;'; + put '%return;'; + put '%end;'; + put '%else %if %upcase(&libref)=WORK %then %do;'; + put '%put NOTE: We already have a direct connection to WORK :-) ;'; + put '%return;'; + put '%end;'; + put '/* need to determine the library ENGINE first */'; + put '%local engine;'; + put 'data _null_;'; + put 'length lib_uri engine $256;'; + put 'call missing (of _all_);'; + put '/* get URI for the particular library */'; + put 'rc1=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put '/* get the Engine attribute of the previous object */'; + put 'rc2=metadata_getattr(lib_uri,''Engine'',engine);'; + put 'putlog "mm_assigndirectlib for &libref:" rc1= lib_uri= rc2= engine=;'; + put 'call symputx("liburi",lib_uri,''l'');'; + put 'call symputx("engine",engine,''l'');'; + put 'run;'; + put '/* now obtain engine specific connection details */'; + put '%if &engine=BASE %then %do;'; + put '%&mD.put NOTE: Retrieving BASE library path;'; + put 'data _null_;'; + put 'length up_uri $256 path cat_path $1024;'; + put 'retain cat_path;'; + put 'call missing (of _all_);'; + put '/* get all the filepaths of the UsingPackages association */'; + put 'i=1;'; + put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; + put 'do while (rc3>0);'; + put '/* get the DirectoryName attribute of the previous object */'; + put 'rc4=metadata_getattr(up_uri,''DirectoryName'',path);'; + put 'if i=1 then path = ''("''!!trim(path)!!''" '';'; + put 'else path ='' "''!!trim(path)!!''" '';'; + put 'cat_path = trim(cat_path) !! " " !! trim(path) ;'; + put 'i+1;'; + put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; + put 'end;'; + put 'cat_path = trim(cat_path) !! ")";'; + put '&mD.putlog "NOTE: Getting physical path for &libref library";'; + put '&mD.putlog rc3= up_uri= rc4= cat_path= path=;'; + put '&mD.putlog "NOTE: Libname cmd will be:";'; + put '&mD.putlog "libname &libref" cat_path;'; + put 'call symputx("filepath",cat_path,''l'');'; + put 'run;'; + put '%if %sysevalf(&sysver<9.4) %then %do;'; + put 'libname &libref &filepath;'; + put '%end;'; + put '%else %do;'; + put '/* apply the new filelocks option to cater for temporary locks */'; + put 'libname &libref &filepath filelockwait=5;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=REMOTE %then %do;'; + put 'data x;'; + put 'length rcCon rcProp rc k 3 uriCon uriProp PropertyValue PropertyName'; + put 'Delimiter $256 properties $2048;'; + put 'retain properties;'; + put 'rcCon = metadata_getnasn("&liburi", "LibraryConnection", 1, uriCon);'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", 1, uriProp);'; + put 'k = 1;'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; + put 'do while (rcProp > 0);'; + put 'rc = metadata_getattr(uriProp , "DefaultValue",PropertyValue);'; + put 'rc = metadata_getattr(uriProp , "PropertyName",PropertyName);'; + put 'rc = metadata_getattr(uriProp , "Delimiter",Delimiter);'; + put 'properties = trim(properties) !! " " !! trim(PropertyName)'; + put '!! trim(Delimiter) !! trim(PropertyValue);'; + put 'output;'; + put 'k+1;'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; + put 'end;'; + put '%&mD.put NOTE: Getting properties for REMOTE SHARE &libref library;'; + put '&mD.put _all_;'; + put '%&mD.put NOTE: Libname cmd will be:;'; + put '%&mD.put libname &libref &engine &properties slibref=&libref;'; + put 'call symputx ("properties",trim(properties),''l'');'; + put 'run;'; + put 'libname &libref &engine &properties slibref=&libref;'; + put '%end;'; + put '%else %if &engine=OLEDB %then %do;'; + put '%&mD.put NOTE: Retrieving OLEDB connection details;'; + put 'data _null_;'; + put 'length domain datasource provider properties schema'; + put 'connx_uri domain_uri conprop_uri lib_uri schema_uri value $256.;'; + put 'call missing (of _all_);'; + put '/* get source connection ID */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; + put '/* get connection domain */'; + put 'rc1=metadata_getnasn(connx_uri,''Domain'',1,domain_uri);'; + put 'rc2=metadata_getattr(domain_uri,''Name'',domain);'; + put '&mD.putlog / ''NOTE: '' // ''NOTE- connection id: '' connx_uri ;'; + put '&mD.putlog ''NOTE- domain: '' domain;'; + put '/* get DSN and PROVIDER from connection properties */'; + put 'i=0;'; + put 'do until (rc<0);'; + put 'i+1;'; + put 'rc=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; + put 'rc2=metadata_getattr(conprop_uri,''Name'',value);'; + put 'if value=''Connection.OLE.Property.DATASOURCE.Name.xmlKey.txt'' then do;'; + put 'rc3=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; + put 'end;'; + put 'else if value=''Connection.OLE.Property.PROVIDER.Name.xmlKey.txt'' then do;'; + put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',provider);'; + put 'end;'; + put 'else if value=''Connection.OLE.Property.PROPERTIES.Name.xmlKey.txt'' then'; + put 'do;'; + put 'rc5=metadata_getattr(conprop_uri,''DefaultValue'',properties);'; + put 'end;'; + put 'end;'; + put '&mD.putlog ''NOTE- dsn/provider/properties: '' /'; + put 'datasource provider properties;'; + put '&mD.putlog ''NOTE- schema: '' schema // ''NOTE-'';'; + put '/* get SCHEMA */'; + put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,lib_uri);'; + put 'rc7=metadata_getattr(lib_uri,''SchemaName'',schema);'; + put 'call symputx(''SQL_domain'',domain,''l'');'; + put 'call symputx(''SQL_dsn'',datasource,''l'');'; + put 'call symputx(''SQL_provider'',provider,''l'');'; + put 'call symputx(''SQL_properties'',properties,''l'');'; + put 'call symputx(''SQL_schema'',schema,''l'');'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put 'proc sql &sql_options;'; + put 'connect to OLEDB as &open_passthrough(INSERT_SQL=YES'; + put '/* need additional properties to make this work */'; + put 'properties=(''Integrated Security''=SSPI'; + put '''Persist Security Info''=True'; + put '%sysfunc(compress(%str(&SQL_properties),%str(())))'; + put ')'; + put 'DATASOURCE=&sql_dsn PROMPT=NO'; + put 'PROVIDER=&sql_provider SCHEMA=&sql_schema CONNECTION = GLOBAL);'; + put '%end;'; + put '%else %do;'; + put 'LIBNAME &libref OLEDB PROPERTIES=&sql_properties'; + put 'DATASOURCE=&sql_dsn PROVIDER=&sql_provider SCHEMA=&sql_schema'; + put '%if %length(&sql_domain)>0 %then %do;'; + put 'authdomain="&sql_domain"'; + put '%end;'; + put 'connection=shared;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=ODBC %then %do;'; + put '&mD.%put NOTE: Retrieving ODBC connection details;'; + put 'data _null_;'; + put 'length connx_uri conprop_uri value datasource up_uri schema $256.;'; + put 'call missing (of _all_);'; + put '/* get source connection ID */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; + put '/* get connection properties */'; + put 'i=0;'; + put 'do until (rc2<0);'; + put 'i+1;'; + put 'rc2=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; + put 'rc3=metadata_getattr(conprop_uri,''Name'',value);'; + put 'if value=''Connection.ODBC.Property.DATASRC.Name.xmlKey.txt'' then do;'; + put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; + put 'rc2=-1;'; + put 'end;'; + put 'end;'; + put '/* get SCHEMA */'; + put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,up_uri);'; + put 'rc7=metadata_getattr(up_uri,''SchemaName'',schema);'; + put '&mD.put rc= connx_uri= rc2= conprop_uri= rc3= value= rc4= datasource='; + put 'rc6= up_uri= rc7= schema=;'; + put 'call symputx(''SQL_schema'',schema,''l'');'; + put 'call symputx(''SQL_dsn'',datasource,''l'');'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put 'proc sql &sql_options;'; + put 'connect to ODBC as &open_passthrough'; + put '(INSERT_SQL=YES DATASRC=&sql_dsn. CONNECTION=global);'; + put '%end;'; + put '%else %do;'; + put 'libname &libref ODBC DATASRC=&sql_dsn SCHEMA=&sql_schema;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=POSTGRES %then %do;'; + put '%put NOTE: Obtaining POSTGRES library details;'; + put 'data _null_;'; + put 'length database ignore_read_only_columns direct_exe preserve_col_names'; + put 'preserve_tab_names server schema authdomain user password'; + put 'prop name value uri urisrc $256.;'; + put 'call missing (of _all_);'; + put '/* get database value */'; + put 'prop=''Connection.DBMS.Property.DB.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,database,"");'; + put 'if database^='''' then database=''database=''!!quote(trim(database));'; + put 'call symputx(''database'',database,''l'');'; + put '/* get IGNORE_READ_ONLY_COLUMNS value */'; + put 'prop=''Library.DBMS.Property.DBIROC.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,ignore_read_only_columns,"");'; + put 'if ignore_read_only_columns^='''' then ignore_read_only_columns='; + put '''ignore_read_only_columns=''!!ignore_read_only_columns;'; + put 'call symputx(''ignore_read_only_columns'',ignore_read_only_columns,''l'');'; + put '/* get DIRECT_EXE value */'; + put 'prop=''Library.DBMS.Property.DirectExe.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,direct_exe,"");'; + put 'if direct_exe^='''' then direct_exe=''direct_exe=''!!direct_exe;'; + put 'call symputx(''direct_exe'',direct_exe,''l'');'; + put '/* get PRESERVE_COL_NAMES value */'; + put 'prop=''Library.DBMS.Property.PreserveColNames.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,preserve_col_names,"");'; + put 'if preserve_col_names^='''' then preserve_col_names='; + put '''preserve_col_names=''!!preserve_col_names;'; + put 'call symputx(''preserve_col_names'',preserve_col_names,''l'');'; + put '/* get PRESERVE_TAB_NAMES value */'; + put '/* be careful with PRESERVE_TAB_NAMES=YES - it will mean your table will'; + put 'become case sensitive!! */'; + put 'prop=''Library.DBMS.Property.PreserveTabNames.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,preserve_tab_names,"");'; + put 'if preserve_tab_names^='''' then preserve_tab_names='; + put '''preserve_tab_names=''!!preserve_tab_names;'; + put 'call symputx(''preserve_tab_names'',preserve_tab_names,''l'');'; + put '/* get SERVER value */'; + put 'if metadata_getnasn("&liburi","LibraryConnection",1,uri)>0 then do;'; + put 'prop=''Connection.DBMS.Property.SERVER.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop(uri,prop,server,"");'; + put 'end;'; + put 'if server^='''' then server=''server=''!!quote(cats(server));'; + put 'call symputx(''server'',server,''l'');'; + put '/* get SCHEMA value */'; + put 'if metadata_getnasn("&liburi","UsingPackages",1,uri)>0 then do;'; + put 'rc=metadata_getattr(uri,"SchemaName",schema);'; + put 'end;'; + put 'if schema^='''' then schema=''schema=''!!schema;'; + put 'call symputx(''schema'',schema,''l'');'; + put '/* get AUTHDOMAIN value */'; + put '/* this is only useful if the user account contains that auth domain'; + put 'if metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then do;'; + put 'rc=metadata_getnasn(uri,"Domain",1,urisrc);'; + put 'rc=metadata_getattr(urisrc,"Name",authdomain);'; + put 'end;'; + put 'if authdomain^='''' then authdomain=''authdomain=''!!quote(trim(authdomain));'; + put '*/'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/* get user & pass */'; + put 'if authdomain='''' & metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then'; + put 'do;'; + put 'rc=metadata_getattr(uri,"UserID",user);'; + put 'rc=metadata_getattr(uri,"Password",password);'; + put 'end;'; + put 'if user^='''' then do;'; + put 'user=''user=''!!quote(trim(user));'; + put 'password=''password=''!!quote(trim(password));'; + put 'end;'; + put 'call symputx(''user'',user,''l'');'; + put 'call symputx(''password'',password,''l'');'; + put '&md.put _all_;'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put '%put %str(WARN)ING: Passthrough option for postgres not yet supported;'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put '%if &mdebug=1 %then %do;'; + put '%put NOTE: Executing the following:/;'; + put '%put NOTE- libname &libref POSTGRES &database &ignore_read_only_columns;'; + put '%put NOTE- &direct_exe &preserve_col_names &preserve_tab_names;'; + put '%put NOTE- &server &schema &authdomain &user &password //;'; + put '%end;'; + put 'libname &libref POSTGRES &database &ignore_read_only_columns &direct_exe'; + put '&preserve_col_names &preserve_tab_names &server &schema &authdomain'; + put '&user &password;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=ORACLE %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null_;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema $256;'; + put 'call missing (of _all_);'; + put '/* get auth domain */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; + put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; + put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/* path */'; + put 'rc=metadata_getprop(assocuri1,'; + put '''Connection.Oracle.Property.PATH.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref ORACLE path=&path schema=&schema;'; + put '%put NOTE- authdomain=&authdomain;'; + put '%put NOTE-;'; + put 'libname &libref ORACLE path=&path schema=&schema authdomain=&authdomain;'; + put '%end;'; + put '%else %if &engine=SQLSVR %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; + put 'passwd $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; + put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; + put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; + put 'call symputx(''user'',userid,''l'');'; + put 'call symputx(''pass'',passwd,''l'');'; + put '/* path */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; + put 'rc=metadata_getprop(assocuri2,'; + put '''Connection.SQL.Property.Datasrc.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref SQLSVR datasrc=&path schema=&schema ;'; + put '%put NOTE- user="&user" pass="XXX";'; + put '%put NOTE-;'; + put 'libname &libref SQLSVR datasrc=&path schema=&schema user="&user" pass="&pass";'; + put '%end;'; + put '%else %if &engine=TERADATA %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; + put 'passwd $256;'; + put 'call missing (of _all_);'; + put '/* get auth domain */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; + put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; + put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/*'; + put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; + put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; + put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; + put 'call symputx(''user'',userid,''l'');'; + put 'call symputx(''pass'',passwd,''l'');'; + put '*/'; + put '/* path */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; + put 'rc=metadata_getprop(assocuri2,'; + put '''Connection.Teradata.Property.SERVER.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref TERADATA server="&path" schema=&schema ;'; + put '%put NOTe- authdomain=&authdomain;'; + put '%put NOTE-;'; + put 'libname &libref TERADATA server="&path" schema=&schema authdomain=&authdomain;'; + put '%end;'; + put '%else %if &engine= %then %do;'; + put '%put NOTE: Libref &libref is not registered in metadata;'; + put '%&mAbort.mp_abort('; + put 'msg=%str(ERR)OR: Libref &libref is not registered in metadata'; + put ',mac=mm_assigndirectlib.sas);'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put '%put %str(WARN)ING: Engine &engine is currently unsupported;'; + put '%put %str(WARN)ING- Please contact your support team.;'; + put '%return;'; + put '%end;'; + put '%mend mm_assigndirectlib;'; + put '%macro mm_getrepos('; + put 'outds=work.mm_getrepos'; + put ')/*/STORE SOURCE*/;'; + put '* use a temporary fileref to hold the response;'; + put 'filename response temp;'; + put '/* get list of libraries */'; + put 'proc metadata in='; + put '"1"'; + put 'out=response;'; + put 'run;'; + put '/* write the response to the log for debugging */'; + put '/*'; + put 'data _null_;'; + put 'infile response lrecl=1048576;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '*/'; + put '/* create an XML map to read the response */'; + put 'filename sxlemap temp;'; + put 'data _null_;'; + put 'file sxlemap;'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository";'; + put 'put "";'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Id";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Name";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Desc";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@DefaultNS";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryType";'; + put 'put "characterstring20";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryFormat";'; + put 'put "characterstring10";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@Access";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@CurrentAccess";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@PauseState";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Path";'; + put 'put "";'; + put 'put "characterstring256";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Engine";'; + put 'put "";'; + put 'put "characterstring8";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Options";'; + put 'put "";'; + put 'put "characterstring32";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataCreated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataUpdated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put ''
'';'; + put 'run;'; + put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; + put 'proc sort data= _XML_.SASRepos out=&outds;'; + put 'by name;'; + put 'run;'; + put '/* clear references */'; + put 'filename sxlemap clear;'; + put 'filename response clear;'; + put 'libname _XML_ clear;'; + put '%mend mm_getrepos;'; + put '%macro dc_assignlib(type,libref,passthru=);'; + put '%put &sysmacroname entry vars:;'; + put '%put _local_;'; + put '/* take current repository */'; + put '%local repo repocnt x;'; + put '%let repo=%sysfunc(getoption(metarepository));'; + put '/* get list of repositories and filter */'; + put '%mm_getrepos(outds=repos)'; + put '%let repocnt=0;'; + put 'data repos;'; + put 'set repos;'; + put 'where repositorytype in(''CUSTOM'',''FOUNDATION'')'; + put '& upcase(name) ne "%upcase(&repo)";'; + put 'keep id name ;'; + put 'call symputx(cats(''repo'',_n_),name,''l'');'; + put 'call symputx(''repocnt'',_n_,''l'');'; + put 'run;'; + put '/* find out which of these repositories has the libref we are searching for */'; + put '%local lib_uri;'; + put '%let lib_uri=NOTFOUND;'; + put 'data _null_; /* check default repo first */'; + put 'length lib_uri $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; + put 'run;'; + put '%if &lib_uri=NOTFOUND %then %do;'; + put '%do x=1 %to &repocnt;'; + put 'options metarepository=&&repo&x;'; + put 'data _null_;'; + put 'length lib_uri $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; + put 'run;'; + put '%if &lib_uri ne NOTFOUND %then %let x=%eval(&repocnt+1);'; + put '%end;'; + put '%end;'; + put '%if &type=READ %then %do;'; + put '%mm_assignlib(&libref)'; + put '%end;'; + put '%else %if &type=WRITE %then %do;'; + put '%mm_assigndirectlib(&libref,open_passthrough=&passthru)'; + put '%end;'; + put 'options metarepository=&repo;'; + put '%mend dc_assignlib;'; + put '/** @cond */'; + put '%macro mf_existvar(libds /* 2 part dataset name */'; + put ', var /* variable name */'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid rc;'; + put '%let dsid=%sysfunc(open(&libds,is));'; + put '%if &dsid=0 or %length(&var)=0 %then %do;'; + put '%put %sysfunc(sysmsg());'; + put '0'; + put '%end;'; + put '%else %do;'; + put '%sysfunc(varnum(&dsid,&var))'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%mend mf_existvar;'; + put '/** @endcond */'; + put '%macro mf_getattrn('; + put 'libds'; + put ',attr'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid rc;'; + put '%let dsid=%sysfunc(open(&libds,is));'; + put '%if &dsid = 0 %then %do;'; + put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; + put '%put %sysfunc(sysmsg());'; + put '-1'; + put '%end;'; + put '%else %do;'; + put '%sysfunc(attrn(&dsid,&attr))'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%mend mf_getattrn;'; + put '%macro mf_getvartype(libds /* two level name */'; + put ', var /* variable name from which to return the type */'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid vnum vtype rc;'; + put '/* Open dataset */'; + put '%let dsid = %sysfunc(open(&libds));'; + put '%if &dsid. > 0 %then %do;'; + put '/* Get variable number */'; + put '%let vnum = %sysfunc(varnum(&dsid, &var));'; + put '/* Get variable type (C/N) */'; + put '%if(&vnum. > 0) %then %let vtype = %sysfunc(vartype(&dsid, &vnum.));'; + put '%else %do;'; + put '%put NOTE: Variable &var does not exist in &libds;'; + put '%let vtype = %str( );'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: dataset &libds not opened! (rc=&dsid);'; + put '%put &sysmacroname: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '/* Close dataset */'; + put '%let rc = %sysfunc(close(&dsid));'; + put '/* Return variable type */'; + put '&vtype'; + put '%mend mf_getvartype;'; + put '%macro mf_getattrc('; + put 'libds'; + put ',attr'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid rc;'; + put '%let dsid=%sysfunc(open(&libds,is));'; + put '%if &dsid = 0 %then %do;'; + put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; + put '%put %sysfunc(sysmsg());'; + put '-1'; + put '%end;'; + put '%else %do;'; + put '%sysfunc(attrc(&dsid,&attr))'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%mend mf_getattrc;'; + put '%macro mp_lockfilecheck('; + put 'libds'; + put ')/*/STORE SOURCE*/;'; + put 'data _null_;'; + put 'if _n_=1 then putlog "&sysmacroname entry vars:";'; + put 'set sashelp.vmacro;'; + put 'where scope="&sysmacroname";'; + put 'put name ''='' value;'; + put 'run;'; + put '%mp_abort(iftrue= (&syscc>0)'; + put ',mac=checklock.sas'; + put ',msg=Aborting with syscc=&syscc on entry.'; + put ')'; + put '%mp_abort(iftrue= ("&libds"="0")'; + put ',mac=&sysmacroname'; + put ',msg=%str(libds not provided)'; + put ')'; + put '%local msg lib ds;'; + put '%let lib=%upcase(%scan(&libds,1,.));'; + put '%let ds=%upcase(%scan(&libds,2,.));'; + put '/* in DC, format catalogs are passed with a -FC suffix. No saslock here! */'; + put '%if %scan(&libds,2,-)=FC %then %do;'; + put '%put &sysmacroname: Format Catalog detected, no lockfile applied to &libds;'; + put '%return;'; + put '%end;'; + put '/* do not proceed if no observations can be processed */'; + put '%let msg=options obs = 0. syserrortext=%superq(syserrortext);'; + put '%mp_abort(iftrue= (%sysfunc(getoption(OBS))=0)'; + put ',mac=checklock.sas'; + put ',msg=%superq(msg)'; + put ')'; + put 'data _null_;'; + put 'putlog "Checking engine & member type";'; + put 'run;'; + put '%local engine memtype;'; + put '%let memtype=%mf_getattrc(&libds,MTYPE);'; + put '%let engine=%mf_getattrc(&libds,ENGINE);'; + put '%if &engine ne V9 and &engine ne BASE %then %do;'; + put 'data _null_;'; + put 'putlog "Lib &lib is not assigned using BASE engine - uses &engine instead";'; + put 'putlog "SAS lock check will not be performed";'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%else %if &memtype ne DATA %then %do;'; + put '%put NOTE: Cannot lock a VIEW!! Memtype=&memtype;'; + put '%return;'; + put '%end;'; + put 'data _null_;'; + put 'putlog "Engine = &engine, memtype=&memtype";'; + put 'putlog "Attempting lock statement";'; + put 'run;'; + put 'lock &libds;'; + put '%local abortme;'; + put '%let abortme=0;'; + put '%if &syscc>0 or &SYSLCKRC ne 0 %then %do;'; + put '%let msg=Unable to apply lock on &libds (SYSLCKRC=&SYSLCKRC syscc=&syscc);'; + put '%put %str(ERR)OR: &sysmacroname: &msg;'; + put '%let abortme=1;'; + put '%end;'; + put 'lock &libds clear;'; + put '%mp_abort(iftrue= (&abortme=1)'; + put ',mac=&sysmacroname'; + put ',msg=%superq(msg)'; + put ')'; + put '%mend mp_lockfilecheck;'; + put '%macro mp_lockanytable('; + put 'action'; + put ',lib= WORK'; + put ',ds=0'; + put ',ref='; + put ',ctl_ds=0'; + put ',loops=25'; + put ',loop_secs=1'; + put ');'; + put 'data _null_;'; + put 'if _n_=1 then putlog "&sysmacroname entry vars:";'; + put 'set sashelp.vmacro;'; + put 'where scope="&sysmacroname";'; + put 'put name ''='' value;'; + put 'run;'; + put '%mp_abort(iftrue= ("&ds"="0" and &action ne MAKETABLE)'; + put ',mac=&sysmacroname'; + put ',msg=%str(dataset was not provided)'; + put ')'; + put '%mp_abort(iftrue= (&ctl_ds=0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Control dataset was not provided)'; + put ')'; + put '/* set up lib & mac vars */'; + put '%let lib=%upcase(&lib);'; + put '%let ds=%upcase(&ds);'; + put '%let action=%upcase(&action);'; + put '%local user x trans msg abortme;'; + put '%let user=%mf_getuser();'; + put '%let abortme=0;'; + put '%mp_abort(iftrue= (&action ne LOCK & &action ne UNLOCK & &action ne MAKETABLE)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Invalid action (&action) provided)'; + put ')'; + put '/* if an err condition exists, exit before we even begin */'; + put '%mp_abort(iftrue= (&syscc>0 and &action=LOCK)'; + put ',mac=&sysmacroname'; + put ',msg=%str(aborting due to syscc=&syscc on LOCK entry)'; + put ')'; + put '/* do not bother locking work tables (else may affect all WORK libraries) */'; + put '%if (%upcase(&lib)=WORK or %str(&lib)=%str()) & &action ne MAKETABLE %then %do;'; + put '%put NOTE: WORK libraries will not be registered in the locking system.;'; + put '%return;'; + put '%end;'; + put '/* do not proceed if no observations can be processed */'; + put '%mp_abort(iftrue= (%sysfunc(getoption(OBS))=0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(cannot continue when options obs = 0)'; + put ')'; + put '%if &ACTION=LOCK %then %do;'; + put '/* abort if a SAS lock is already in place, or cannot be applied */'; + put '%mp_lockfilecheck(&lib..&ds)'; + put '/* next, check there is a record for this table */'; + put '%local record_exists_check;'; + put 'proc sql noprint;'; + put 'select count(*) into: record_exists_check from &ctl_ds'; + put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; + put 'quit;'; + put '%if &syscc>0 %then %put syscc=&syscc sqlrc=&sqlrc;'; + put '%if &record_exists_check=0 %then %do;'; + put 'data _null_;'; + put 'putlog "&sysmacroname: adding record to lock table..";'; + put 'run;'; + put 'data ;'; + put 'if 0 then set &ctl_ds;'; + put 'LOCK_LIB ="&lib";'; + put 'LOCK_DS="&ds";'; + put 'LOCK_STATUS_CD=''LOCKED'';'; + put 'LOCK_START_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt;'; + put 'LOCK_USER_NM="&user";'; + put 'LOCK_PID="&sysjobid";'; + put 'LOCK_REF="&ref";'; + put 'output;stop;'; + put 'run;'; + put '%let trans=&syslast;'; + put 'proc append base=&ctl_ds data=&trans;'; + put 'run;'; + put '%end;'; + put '/* if record does exist, perform lock attempts */'; + put '%else %do x=1 %to &loops;'; + put 'data _null_;'; + put 'putlog "&sysmacroname: attempting lock (iteration &x) "@;'; + put 'putlog "at %sysfunc(datetime(),datetime19.) ..";'; + put 'run;'; + put 'proc sql;'; + put 'update &ctl_ds'; + put 'set LOCK_STATUS_CD=''LOCKED'''; + put ', LOCK_START_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt'; + put ', LOCK_USER_NM="&user"'; + put ', LOCK_PID="&sysjobid"'; + put ', LOCK_REF="&ref"'; + put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; + put 'quit;'; + put '/**'; + put '* NOTE - occasionally SQL server will return an err code (deadlocked'; + put '* transaction). If so, ignore it, keep calm, and carry on..'; + put '*/'; + put '%if &syscc>0 %then %do;'; + put 'data _null_;'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'putlog "NOTE- &sysmacroname: Update failed. "@;'; + put 'putlog "Resetting err conditions and re-attempting.";'; + put 'putlog "NOTE- syscc=&syscc syserr=&syserr sqlrc=&sqlrc";'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'run;'; + put '%let syscc=0;'; + put '%let sqlrc=0;'; + put '%end;'; + put '/* now check if the record was successfully updated */'; + put '%local success_check;'; + put 'proc sql noprint;'; + put 'select count(*) into: success_check from &ctl_ds'; + put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds"'; + put 'and LOCK_PID="&sysjobid" and LOCK_STATUS_CD=''LOCKED'';'; + put 'quit;'; + put '%if &success_check=0 %then %do;'; + put '%if &x < &loops %then %do;'; + put '/* pause before next check */'; + put 'data _null_;'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'putlog "NOTE- &sysmacroname: table locked, waiting "@;'; + put 'putlog "%sysfunc(sleep(&loop_inc)) seconds.. ";'; + put 'putlog "NOTE- (iteration &x of &loops)";'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%let msg=Unable to lock &lib..&ds via &ctl_ds after &loops attempts.\n'; + put 'Please ask your administrator to investigate!;'; + put '%let abortme=1;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put 'data _null_;'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'putlog "NOTE- &sysmacroname: Table &lib..&ds locked at "@;'; + put 'putlog " %sysfunc(datetime(),datetime19.) (iteration &x)"@;'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'run;'; + put '%if &syscc>0 %then %do;'; + put '%put setting syscc(&syscc) back to 0;'; + put '%let syscc=0;'; + put '%end;'; + put '%let x=&loops; /* no more iterations needed */'; + put '%end;'; + put '%end;'; + put '%end;'; + put '%else %if &ACTION=UNLOCK %then %do;'; + put '%local status;'; + put 'proc sql noprint;'; + put 'select LOCK_STATUS_CD into: status from &ctl_ds'; + put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; + put 'quit;'; + put '%if &syscc>0 %then %put syscc=&syscc sqlrc=&sqlrc;'; + put '%if &status=LOCKED %then %do;'; + put 'data _null_;'; + put 'putlog "&sysmacroname: unlocking &lib..&ds:";'; + put 'run;'; + put 'proc sql;'; + put 'update &ctl_ds'; + put 'set LOCK_STATUS_CD=''UNLOCKED'''; + put ', LOCK_END_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt'; + put ', LOCK_USER_NM="&user"'; + put ', LOCK_PID="&sysjobid"'; + put ', LOCK_REF="&ref"'; + put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; + put 'quit;'; + put '%end;'; + put '%else %if &status=UNLOCKED %then %do;'; + put '%put %str(WAR)NING: &lib..&ds is already unlocked!;'; + put '%end;'; + put '%else %do;'; + put '%put NOTE: Unrecognised STATUS_CD (&status) in &ctl_ds;'; + put '%let abortme=1;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%let msg=lock_anytable given unsupported action (&action);'; + put '%let abortme=1;'; + put '%end;'; + put '/* catch errs - mp_abort must be called outside of a logic block */'; + put '%mp_abort(iftrue=(&abortme=1),'; + put 'msg=%superq(msg),'; + put 'mac=&sysmacroname'; + put ')'; + put '%exit_macro:'; + put 'data _null_;'; + put 'put "&sysmacroname: Exit vars: action=&action lib=&lib ds=&ds";'; + put 'put " syscc=&syscc sqlrc=&sqlrc syserr=&syserr";'; + put 'run;'; + put '%mend mp_lockanytable;'; + put '%macro bitemporal_closeouts('; + put 'tech_from=tx_from_dttm'; + put ',tech_to = tx_to_dttm /* Technical TO datetime variable.'; + put 'Req''d on BASE table only. */'; + put ',base_lib=WORK /* Libref of the BASE table. */'; + put ',base_dsn=BASETABLE /* Name of BASE table. */'; + put ',append_lib=WORK /* Libref of the STAGING table. */'; + put ',append_dsn=APPENDTABLE /* Name of STAGING table. */'; + put ',PK= name sex /* Business key, space separated. */'; + put '/* Should INCLUDE BUS_FROM field if relevant. */'; + put ',NOW=DEFINE'; + put ',FILTER= /* supply a filter to limit the update */'; + put ',outdest= /* supply an unquoted filepath/filename.ext to get'; + put 'a text file containing the update statements */'; + put ',loadtype='; + put ',loadtarget=YES /* if <> YES will return without changing anything */'; + put ');'; + put '%put ENTERING &sysmacroname;'; + put '%local x var start;'; + put '%let start=%sysfunc(datetime());'; + put '%dc_assignlib(WRITE,&base_lib)'; + put '%dc_assignlib(WRITE,&append_lib)'; + put '%if &now=DEFINE %then %let now=&dc_dttmtfmt.;'; + put '%put &=now;'; + put '/**'; + put '* perform basic checks'; + put '*/'; + put '/* do tables exist? */'; + put '%if not %sysfunc(exist(&base_lib..&base_dsn)) %then %do;'; + put '%mp_abort(msg=&base_lib..&base_dsn does not exist)'; + put '%end;'; + put '%else %if %sysfunc(exist(&append_lib..&append_dsn))=0'; + put 'and %sysfunc(exist(&append_lib..&append_dsn,VIEW))=0 %then %do;'; + put '%mp_abort(msg=&append_lib..&append_dsn does not exist)'; + put '%end;'; + put '/* do TX columns exist? */'; + put '%if &loadtype ne UPDATE %then %do;'; + put '%if not %mf_existvar(&base_lib..&base_dsn,&tech_from) %then %do;'; + put '%mp_abort(msg=&tech_from does not exist on &base_lib..&base_dsn)'; + put '%end;'; + put '%else %if not %mf_existvar(&base_lib..&base_dsn,&tech_to) %then %do;'; + put '%mp_abort(msg=&tech_to does not exist on &base_lib..&base_dsn)'; + put '%end;'; + put '%end;'; + put '/* do PK columns exist? */'; + put '%do x=1 %to %sysfunc(countw(&PK));'; + put '%let var=%scan(&pk,&x,%str( ));'; + put '%if not %mf_existvar(&base_lib..&base_dsn,&var) %then %do;'; + put '%mp_abort(msg=&var does not exist on &base_lib..&base_dsn)'; + put '%end;'; + put '%else %if not %mf_existvar(&append_lib..&append_dsn,&var) %then %do;'; + put '%mp_abort(msg=&var does not exist on &append_lib..&append_dsn)'; + put '%end;'; + put '%end;'; + put '/* check uniqueness */'; + put 'proc sort data=&append_lib..&append_dsn'; + put 'out=___closeout1 noduprecs dupout=___closeout1a;'; + put 'by &pk;'; + put 'run;'; + put '%if %mf_getattrn(___closeout1a,NLOBS)>0 %then'; + put '%put NOTE: dups on (&PK) in (&append_lib..&append_dsn);'; + put '/* is &NOW value within a tolerance? Should not allow renegade closeouts.. */'; + put '%local gap;'; + put '%let gap=0;'; + put 'data _null_;'; + put 'now=&now;'; + put 'gap=intck(''HOURS'',now,datetime());'; + put 'call symputx(''gap'',gap,''l'');'; + put 'run;'; + put '%mf_abort('; + put 'iftrue=(&gap > 24),'; + put 'msg=NOW variable (&now) is not within a 24hr tolerance'; + put ')'; + put '/* have any warnings / errs occurred thus far? If so, abort */'; + put '%mf_abort('; + put 'iftrue=(&syscc>0),'; + put 'msg=Aborted due to SYSCC=&SYSCC status'; + put ')'; + put '/**'; + put '* Create closeout statements. These are sent as individual SQL statements'; + put '* to ensure pass-through utilisation. The update_cnt variable monitors'; + put '* how many records were actually updated on the target table.'; + put '*/'; + put '%local update_cnt;'; + put '%let update_cnt=0;'; + put 'filename tmp temp;'; + put 'data _null_;'; + put 'set ___closeout1;'; + put 'file tmp;'; + put 'if _n_=1 then put ''proc sql noprint;'' ;'; + put 'length string $32767.;'; + put '%if &loadtype=UPDATE %then %do;'; + put 'put "delete from &base_lib..&base_dsn where 1";'; + put '%end;'; + put '%else %do;'; + put 'now=symget(''now'');'; + put 'put "update &base_lib..&base_dsn set &tech_to= " now @;'; + put '%if %mf_existvar(&base_lib..&base_dsn,PROCESSED_DTTM) %then %do;'; + put 'put " ,PROCESSED_DTTM=" now @;'; + put '%end;'; + put 'put " where " now " lt &tech_to ";'; + put '%end;'; + put '%do x=1 %to %sysfunc(countw(&PK));'; + put '%let var=%scan(&pk,&x,%str( ));'; + put '%if %mf_getvartype(&base_lib..&base_dsn,&var)=C %then %do;'; + put '/* use single quotes to avoid ampersand resolution in data */'; + put 'string=" & &var=''"!!trim(prxchange("s/''/''''/",-1,&var))!!"''";'; + put '%end;'; + put '%else %do;'; + put 'string=cats(" & &var=",&var);'; + put '%end;'; + put 'put string;'; + put '%end;'; + put 'put "&filter ;";'; + put 'put ''%let update_cnt=%eval(&update_cnt+&sqlobs);%put update_cnt=&update_cnt;'';'; + put 'run;'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;'; + put 'putlog _infile_;'; + put 'run;'; + put '%if &loadtarget ne YES %then %return;'; + put '/* ensure we have a lock */'; + put '%mp_lockanytable(LOCK,'; + put 'lib=&base_lib,ds=&base_dsn'; + put ',ref=bitemporal_closeouts'; + put ',ctl_ds=&mpelib..mpe_lockanytable'; + put ')'; + put 'options source2;'; + put '%inc tmp;'; + put 'filename tmp clear;'; + put '/**'; + put '* Update audit tracker'; + put '*/'; + put '%local newobs; %let newobs=%mf_getattrn(work.___closeout1,NLOBS);'; + put '%local user; %let user=%mf_getuser();'; + put 'proc sql;'; + put 'insert into &mpelib..mpe_dataloads'; + put 'set libref=%upcase("&base_lib")'; + put ',DSN=%upcase("&base_dsn")'; + put ',ETLSOURCE="&append_lib..&append_dsn contained &newobs records"'; + put ',LOADTYPE="CLOSEOUT"'; + put ',DELETED_RECORDS=&update_cnt'; + put ',NEW_RECORDS=0'; + put ',DURATION=%sysfunc(datetime())-&start'; + put ',USER_NM="&user"'; + put ',PROCESSED_DTTM=&now;'; + put 'quit;'; + put '%mend bitemporal_closeouts;'; + put '%macro mf_getschema(libref'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid vnum rc schema;'; + put '/* in case the parameter is a libref.tablename, pull off just the libref */'; + put '%let libref = %upcase(%scan(&libref, 1, %str(.)));'; + put '%let dsid=%sysfunc(open(sashelp.vlibnam(where=('; + put 'libname="%upcase(&libref)" and sysname=''Schema/Owner'''; + put ')),i));'; + put '%if (&dsid ^= 0) %then %do;'; + put '%let vnum=%sysfunc(varnum(&dsid,SYSVALUE));'; + put '%let rc=%sysfunc(fetch(&dsid));'; + put '%let schema=%sysfunc(getvarc(&dsid,&vnum));'; + put '%put &libref. schema is &schema.;'; + put '%let rc= %sysfunc(close(&dsid));'; + put '%end;'; + put '&schema'; + put '%mend mf_getschema;'; + put '/** @endcond */'; + put '%macro mf_getuniquename(prefix=MC);'; + put '&prefix.%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32-%length(&prefix))'; + put '%mend mf_getuniquename;'; + put '%macro mf_getvarlist(libds'; + put ',dlm=%str( )'; + put ',quote=no'; + put ',typefilter=A'; + put ')/*/STORE SOURCE*/;'; + put '/* declare local vars */'; + put '%local outvar dsid nvars x rc dlm q var vtype;'; + put '/* credit Rowland Hale - byte34 is double quote, 39 is single quote */'; + put '%if %upcase("e)=DOUBLE %then %let q=%qsysfunc(byte(34));'; + put '%else %if %upcase("e)=SINGLE %then %let q=%qsysfunc(byte(39));'; + put '/* open dataset in macro */'; + put '%let dsid=%sysfunc(open(&libds));'; + put '%if &dsid %then %do;'; + put '%let nvars=%sysfunc(attrn(&dsid,NVARS));'; + put '%if &nvars>0 %then %do;'; + put '/* add variables with supplied delimeter */'; + put '%do x=1 %to &nvars;'; + put '/* get variable type */'; + put '%let vtype=%sysfunc(vartype(&dsid,&x));'; + put '%if &vtype=&typefilter or &typefilter=A %then %do;'; + put '%let var=&q.%sysfunc(varname(&dsid,&x))&q.;'; + put '%if &var=&q&q %then %do;'; + put '%put &sysmacroname: Empty column found in &libds!;'; + put '%let var=&q. &q.;'; + put '%end;'; + put '%if %quote(&outvar)=%quote() %then %let outvar=&var;'; + put '%else %let outvar=&outvar.&dlm.&var.;'; + put '%end;'; + put '%end;'; + put '%end;'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: Unable to open &libds (rc=&dsid);'; + put '%put &sysmacroname: SYSMSG= %sysfunc(sysmsg());'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%do;%unquote(&outvar)%end;'; + put '%mend mf_getvarlist;'; + put '%macro mf_abort(mac=mf_abort.sas, msg=, iftrue=%str(1=1)'; + put ')/*/STORE SOURCE*/;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mf_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%abort;'; + put '%mend mf_abort;'; + put '/** @endcond */'; + put '%macro mf_verifymacvars('; + put 'verifyVars /* list of macro variable NAMES */'; + put ',makeUpcase=NO /* set to YES to make all the variable VALUES uppercase */'; + put ',mAbort=SOFT'; + put ')/*/STORE SOURCE*/;'; + put '%local verifyIterator verifyVar abortmsg;'; + put '%do verifyIterator=1 %to %sysfunc(countw(&verifyVars,%str( )));'; + put '%let verifyVar=%qscan(&verifyVars,&verifyIterator,%str( ));'; + put '%if not %symexist(&verifyvar) %then %do;'; + put '%let abortmsg= Variable &verifyVar is MISSING;'; + put '%goto exit_err;'; + put '%end;'; + put '%if %length(%trim(&&&verifyVar))=0 %then %do;'; + put '%let abortmsg= Variable &verifyVar is EMPTY;'; + put '%goto exit_err;'; + put '%end;'; + put '%if &makeupcase=YES %then %do;'; + put '%let &verifyVar=%upcase(&&&verifyvar);'; + put '%end;'; + put '%end;'; + put '%goto exit_success;'; + put '%exit_err:'; + put '%put &abortmsg;'; + put '%mf_abort(iftrue=(&mabort ne SOFT),'; + put 'mac=mf_verifymacvars,'; + put 'msg=%str(&abortmsg)'; + put ')'; + put '0'; + put '%return;'; + put '%exit_success:'; + put '1'; + put '%mend mf_verifymacvars;'; + put '%macro mf_wordsInStr1ButNotStr2('; + put 'Str1= /* string containing words to extract */'; + put ',Str2= /* used to compare with the extract string */'; + put ')/*/STORE SOURCE*/;'; + put '%local count_base count_extr i i2 extr_word base_word match outvar;'; + put '%if %length(&str1)=0 or %length(&str2)=0 %then %do;'; + put '%put base string (str1)= &str1;'; + put '%put compare string (str2) = &str2;'; + put '%return;'; + put '%end;'; + put '%let count_base=%sysfunc(countw(&Str2));'; + put '%let count_extr=%sysfunc(countw(&Str1));'; + put '%do i=1 %to &count_extr;'; + put '%let extr_word=%scan(&Str1,&i,%str( ));'; + put '%let match=0;'; + put '%do i2=1 %to &count_base;'; + put '%let base_word=%scan(&Str2,&i2,%str( ));'; + put '%if &extr_word=&base_word %then %let match=1;'; + put '%end;'; + put '%if &match=0 %then %let outvar=&outvar &extr_word;'; + put '%end;'; + put '&outvar'; + put '%mend mf_wordsInStr1ButNotStr2;'; + put '%macro mf_isblank(param'; + put ')/*/STORE SOURCE*/;'; + put '%sysevalf(%superq(param)=,boolean)'; + put '%mend mf_isblank;'; + put '%macro mp_dropmembers('; + put 'list /* space separated list of datasets / views */'; + put ',libref=WORK /* can only drop from a single library at a time */'; + put ',iftrue=%str(1=1)'; + put ')/*/STORE SOURCE*/;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%if %mf_isblank(&list) %then %do;'; + put '%put NOTE: nothing to drop!;'; + put '%return;'; + put '%end;'; + put 'proc datasets lib=&libref nolist;'; + put 'delete &list;'; + put 'delete &list /mtype=view;'; + put 'run;'; + put '%mend mp_dropmembers;'; + put '%macro mf_getquotedstr(IN_STR'; + put ',DLM=%str(,)'; + put ',QUOTE=S'; + put ',indlm=%str( )'; + put ')/*/STORE SOURCE*/;'; + put '/* credit Rowland Hale - byte34 is double quote, 39 is single quote */'; + put '%if "e=S %then %let quote=%qsysfunc(byte(39));'; + put '%else %if "e=D %then %let quote=%qsysfunc(byte(34));'; + put '%else %if "e=N %then %let quote=;'; + put '%local i item buffer;'; + put '%let i=1;'; + put '%do %while (%qscan(&IN_STR,&i,%str(&indlm)) ne %str() ) ;'; + put '%let item=%qscan(&IN_STR,&i,%str(&indlm));'; + put '%if %bquote("E) ne %then %let item="E%qtrim(&item)"E;'; + put '%else %let item=%qtrim(&item);'; + put '%if (&i = 1) %then %let buffer =%qtrim(&item);'; + put '%else %let buffer =&buffer&DLM%qtrim(&item);'; + put '%let i = %eval(&i+1);'; + put '%end;'; + put '%let buffer=%sysfunc(coalescec(%qtrim(&buffer),"E"E));'; + put '&buffer'; + put '%mend mf_getquotedstr;'; + put '%macro mf_nobs(libds'; + put ')/*/STORE SOURCE*/;'; + put '%mf_getattrn(&libds,NLOBS)'; + put '%mend mf_nobs;'; + put '%macro mp_retainedkey('; + put 'base_lib=WORK'; + put ',base_dsn=BASETABLE'; + put ',append_lib=WORK'; + put ',append_dsn=APPENDTABLE'; + put ',retained_key=DEFAULT_RK'; + put ',business_key= PK1 PK2'; + put ',check_uniqueness=NO'; + put ',maxkeytable=0'; + put ',locktable=0'; + put ',outds=WORK.APPEND'; + put ',filter_str='; + put ');'; + put '%put &sysmacroname entry vars:;'; + put '%put _local_;'; + put '%local base_libds app_libds key_field check maxkey idx_pk newkey_cnt iserr'; + put 'msg x tempds1 tempds2 comma_pk appnobs checknobs dropvar tempvar idx_val;'; + put '%let base_libds=%upcase(&base_lib..&base_dsn);'; + put '%let app_libds=%upcase(&append_lib..&append_dsn);'; + put '%let tempds1=%mf_getuniquename();'; + put '%let tempds2=%mf_getuniquename();'; + put '%let comma_pk=%mf_getquotedstr(in_str=%str(&business_key),dlm=%str(,),quote=);'; + put '%let outds=%sysfunc(ifc(%index(&outds,.)=0,work.&outds,&outds));'; + put '/* validation checks */'; + put '%let iserr=0;'; + put '%if &syscc>0 %then %do;'; + put '%let iserr=1;'; + put '%let msg=%str(SYSCC=&syscc on macro entry);'; + put '%end;'; + put '%else %if %sysfunc(exist(&base_libds))=0 %then %do;'; + put '%let iserr=1;'; + put '%let msg=%str(Base LIBDS (&base_libds) expected but NOT FOUND);'; + put '%end;'; + put '%else %if %sysfunc(exist(&app_libds))=0 %then %do;'; + put '%let iserr=1;'; + put '%let msg=%str(Append LIBDS (&app_libds) expected but NOT FOUND);'; + put '%end;'; + put '%else %if &maxkeytable ne 0 and %sysfunc(exist(&maxkeytable))=0 %then %do;'; + put '%let iserr=1;'; + put '%let msg=%str(Maxkeytable (&maxkeytable) expected but NOT FOUND);'; + put '%end;'; + put '%else %if &maxkeytable ne 0 and %sysfunc(exist(&locktable))=0 %then %do;'; + put '%let iserr=1;'; + put '%let msg=%str(Locktable (&locktable) expected but NOT FOUND);'; + put '%end;'; + put '%else %if %length(&business_key)=0 %then %do;'; + put '%let iserr=1;'; + put '%let msg=%str(Business key (&business_key) expected but NOT FOUND);'; + put '%end;'; + put '%do x=1 %to %sysfunc(countw(&business_key));'; + put '/* check business key values exist */'; + put '%let key_field=%scan(&business_key,&x,%str( ));'; + put '%if not %mf_existvar(&app_libds,&key_field) %then %do;'; + put '%let iserr=1;'; + put '%let msg=Business key (&key_field) not found on &app_libds!;'; + put '%goto err;'; + put '%end;'; + put '%else %if not %mf_existvar(&base_libds,&key_field) %then %do;'; + put '%let iserr=1;'; + put '%let msg=Business key (&key_field) not found on &base_libds!;'; + put '%goto err;'; + put '%end;'; + put '%end;'; + put '%err:'; + put '%if &iserr=1 %then %do;'; + put '/* err case so first perform an unlock of the base table before exiting */'; + put '%mp_lockanytable('; + put 'UNLOCK,lib=&base_lib,ds=&base_dsn,ref=%superq(msg),ctl_ds=&locktable'; + put ')'; + put '%end;'; + put '%mp_abort(iftrue=(&iserr=1),mac=mp_retainedkey,msg=%superq(msg))'; + put 'proc sql noprint;'; + put 'select sum(max(&retained_key),0) into: maxkey from &base_libds;'; + put '/**'; + put '* get base table RK and bus field values for lookup'; + put '*/'; + put 'proc sql noprint;'; + put 'create table &tempds1 as'; + put 'select distinct &comma_pk,&retained_key'; + put 'from &base_libds &filter_str'; + put 'order by &comma_pk,&retained_key;'; + put '%if &check_uniqueness=YES %then %do;'; + put 'select count(*) into:checknobs'; + put 'from (select distinct &comma_pk from &app_libds);'; + put 'select count(*) into: appnobs from &app_libds; /* might be view */'; + put '%if &checknobs ne &appnobs %then %do;'; + put '%let msg=Source table &app_libds is not unique on (&business_key);'; + put '%let iserr=1;'; + put '%end;'; + put '%end;'; + put '%if &iserr=1 %then %do;'; + put '/* err case so first perform an unlock of the base table before exiting */'; + put '%mp_lockanytable('; + put 'UNLOCK,lib=&base_lib,ds=&base_dsn,ref=%superq(msg),ctl_ds=&locktable'; + put ')'; + put '%end;'; + put '%mp_abort(iftrue= (&iserr=1),mac=mp_retainedkey,msg=%superq(msg))'; + put '%if %mf_existvar(&app_libds,&retained_key)'; + put '%then %let dropvar=(drop=&retained_key);'; + put '/* prepare interim table with retained key populated for matching keys */'; + put 'proc sql noprint;'; + put 'create table &tempds2 as'; + put 'select b.&retained_key, a.*'; + put 'from &app_libds &dropvar a'; + put 'left join &tempds1 b'; + put 'on 1'; + put '%do idx_pk=1 %to %sysfunc(countw(&business_key));'; + put '%let idx_val=%scan(&business_key,&idx_pk);'; + put 'and a.&idx_val=b.&idx_val'; + put '%end;'; + put 'order by &retained_key;'; + put '/* identify the number of entries without retained keys (new records) */'; + put 'select count(*) into: newkey_cnt'; + put 'from &tempds2'; + put 'where missing(&retained_key);'; + put 'quit;'; + put '/**'; + put '* Update maxkey table if link provided'; + put '*/'; + put '%if &maxkeytable ne 0 %then %do;'; + put 'proc sql noprint;'; + put 'select count(*) into: check from &maxkeytable'; + put 'where upcase(keytable)="&base_libds";'; + put '%mp_lockanytable(LOCK'; + put ',lib=%scan(&maxkeytable,1,.)'; + put ',ds=%scan(&maxkeytable,2,.)'; + put ',ref=Updating maxkeyvalues with mp_retainedkey'; + put ',ctl_ds=&locktable'; + put ')'; + put 'proc sql;'; + put '%if &check=0 %then %do;'; + put 'insert into &maxkeytable'; + put 'set keytable="&base_libds"'; + put ',keycolumn="&retained_key"'; + put ',max_key=%eval(&maxkey+&newkey_cnt)'; + put ',processed_dttm="%sysfunc(datetime(),%mf_fmtdttm())"dt;'; + put '%end;'; + put '%else %do;'; + put 'update &maxkeytable'; + put 'set max_key=%eval(&maxkey+&newkey_cnt)'; + put ',processed_dttm="%sysfunc(datetime(),%mf_fmtdttm())"dt'; + put 'where keytable="&base_libds";'; + put '%end;'; + put '%mp_lockanytable(UNLOCK'; + put ',lib=%scan(&maxkeytable,1,.)'; + put ',ds=%scan(&maxkeytable,2,.)'; + put ',ref=Updating maxkeyvalues with maxkey=%eval(&maxkey+&newkey_cnt)'; + put ',ctl_ds=&locktable'; + put ')'; + put '%end;'; + put '/* fill in the missing retained key values */'; + put '%let tempvar=%mf_getuniquename();'; + put 'data &outds(drop=&tempvar);'; + put 'retain &tempvar %eval(&maxkey+1);'; + put 'set &tempds2;'; + put 'if &retained_key =. then &retained_key=&tempvar;'; + put '&tempvar=&tempvar+1;'; + put 'run;'; + put '%mend mp_retainedkey;'; + put '/** @cond */'; + put '%macro mp_storediffs(libds'; + put ',origds'; + put ',key'; + put ',delds=0'; + put ',appds=0'; + put ',modds=0'; + put ',outds=work.mp_storediffs'; + put ',loadref=0'; + put ',processed_dttm=0'; + put ',mdebug=0'; + put ')/*/STORE SOURCE*/;'; + put '%local dbg;'; + put '%if &mdebug=1 %then %do;'; + put '%put &sysmacroname entry vars:;'; + put '%put _local_;'; + put '%end;'; + put '%else %let dbg=*;'; + put '/* set up unique and temporary vars */'; + put '%local ds1 ds2 ds3 ds4 hashkey inds_auto inds_keep dslist vlist;'; + put '%let ds1=%upcase(work.%mf_getuniquename(prefix=mpsd_ds1));'; + put '%let ds2=%upcase(work.%mf_getuniquename(prefix=mpsd_ds2));'; + put '%let ds3=%upcase(work.%mf_getuniquename(prefix=mpsd_ds3));'; + put '%let ds4=%upcase(work.%mf_getuniquename(prefix=mpsd_ds4));'; + put '%let hashkey=%upcase(%mf_getuniquename(prefix=mpsd_hashkey));'; + put '%let inds_auto=%upcase(%mf_getuniquename(prefix=mpsd_inds_auto));'; + put '%let inds_keep=%upcase(%mf_getuniquename(prefix=mpsd_inds_keep));'; + put '%let dslist=&origds;'; + put '%if &delds ne 0 %then %do;'; + put '%let delds=%upcase(&delds);'; + put '%if %scan(&delds,-1,.)=&delds %then %let delds=WORK.&delds;'; + put '%let dslist=&dslist &delds;'; + put '%end;'; + put '%if &appds ne 0 %then %do;'; + put '%let appds=%upcase(&appds);'; + put '%if %scan(&appds,-1,.)=&appds %then %let appds=WORK.&appds;'; + put '%let dslist=&dslist &appds;'; + put '%end;'; + put '%if &modds ne 0 %then %do;'; + put '%let modds=%upcase(&modds);'; + put '%if %scan(&modds,-1,.)=&modds %then %let modds=WORK.&modds;'; + put '%let dslist=&dslist &modds;'; + put '%end;'; + put '%let origds=%upcase(&origds);'; + put '%if %scan(&origds,-1,.)=&origds %then %let origds=WORK.&origds;'; + put '%let key=%upcase(&key);'; + put '/* hash the key and append all the tables (marking the source) */'; + put 'data &ds1;'; + put 'set &dslist indsname=&inds_auto;'; + put '&hashkey=put(md5(catx(''|'',%mf_getquotedstr(&key,quote=N))),$hex32.);'; + put '&inds_keep=upcase(&inds_auto);'; + put 'proc sort;'; + put 'by &inds_keep &hashkey;'; + put 'run;'; + put '/* transpose numeric & char vars */'; + put 'proc transpose data=&ds1'; + put 'out=&ds2(rename=(&hashkey=key_hash _name_=tgtvar_nm col1=newval_num));'; + put 'by &inds_keep &hashkey;'; + put 'var _numeric_;'; + put 'run;'; + put 'proc transpose data=&ds1'; + put 'out=&ds3('; + put 'rename=(&hashkey=key_hash _name_=tgtvar_nm col1=newval_char)'; + put 'where=(tgtvar_nm not in ("&hashkey","&inds_keep"))'; + put ');'; + put 'by &inds_keep &hashkey;'; + put 'var _character_;'; + put 'run;'; + put '%if %index(&libds,-)>0 and %scan(&libds,2,-)=FC %then %do;'; + put '/* this is a format catalog - cannot query cols directly */'; + put '%let vlist="FMTNAME","START","END","LABEL","MIN","MAX","DEFAULT","LENGTH"'; + put ',"FUZZ","PREFIX","MULT","FILL","NOEDIT","TYPE","SEXCL","EEXCL","HLO"'; + put ',"DECSEP","DIG3SEP","DATATYPE","LANGUAGE";'; + put '%end;'; + put '%else %let vlist=%mf_getvarlist(&libds,dlm=%str(,),quote=DOUBLE);'; + put 'data &ds4;'; + put 'length &inds_keep $41 tgtvar_nm $32 _label_ $256;'; + put 'if _n_=1 then call missing(_label_);'; + put 'drop _label_;'; + put 'set &ds2 &ds3 indsname=&inds_auto;'; + put 'tgtvar_nm=upcase(tgtvar_nm);'; + put 'if tgtvar_nm in (%upcase(&vlist));'; + put 'if upcase(&inds_auto)="&ds2" then tgtvar_type=''N'';'; + put 'else if upcase(&inds_auto)="&ds3" then tgtvar_type=''C'';'; + put 'else do;'; + put 'putlog "%str(ERR)OR: unidentified vartype input!" &inds_auto;'; + put 'call symputx(''syscc'',98);'; + put 'end;'; + put 'if &inds_keep="&appds" then move_type=''A'';'; + put 'else if &inds_keep="&delds" then move_type=''D'';'; + put 'else if &inds_keep="&modds" then move_type=''M'';'; + put 'else if &inds_keep="&origds" then move_type=''O'';'; + put 'else do;'; + put 'putlog "%str(ERR)OR: unidentified movetype input!" &inds_keep;'; + put 'call symputx(''syscc'',99);'; + put 'end;'; + put 'tgtvar_nm=upcase(tgtvar_nm);'; + put 'if tgtvar_nm in (%mf_getquotedstr(&key)) then is_pk=1;'; + put 'else is_pk=0;'; + put 'drop &inds_keep;'; + put 'run;'; + put '%if "&loadref"="0" %then %let loadref=%sysfunc(uuidgen());'; + put '%if &processed_dttm=0 %then %let processed_dttm=%sysfunc(datetime());'; + put '%let libds=%upcase(&libds);'; + put '/* join orig vals for modified & deleted */'; + put 'proc sql;'; + put 'create table &outds as'; + put 'select "&loadref" as load_ref length=36'; + put ',&processed_dttm as processed_dttm format=E8601DT26.6'; + put ',"%scan(&libds,1,.)" as libref length=8'; + put ',"%scan(&libds,2,.)" as dsn length=32'; + put ',b.key_hash length=32'; + put ',b.move_type length=1'; + put ',b.tgtvar_nm length=32'; + put ',b.is_pk'; + put ',case when b.move_type ne ''M'' then -1'; + put 'when a.newval_num=b.newval_num and a.newval_char=b.newval_char then 0'; + put 'else 1'; + put 'end as is_diff'; + put ',b.tgtvar_type length=1'; + put ',case when b.move_type=''D'' then b.newval_num'; + put 'else a.newval_num'; + put 'end as oldval_num format=best32.'; + put ',case when b.move_type=''D'' then .'; + put 'else b.newval_num'; + put 'end as newval_num format=best32.'; + put ',case when b.move_type=''D'' then b.newval_char'; + put 'else a.newval_char'; + put 'end as oldval_char length=32765'; + put ',case when b.move_type=''D'' then '''''; + put 'else b.newval_char'; + put 'end as newval_char length=32765'; + put 'from &ds4(where=(move_type=''O'')) as a'; + put 'right join &ds4(where=(move_type ne ''O'')) as b'; + put 'on a.tgtvar_nm=b.tgtvar_nm'; + put 'and a.key_hash=b.key_hash'; + put 'order by move_type, key_hash,is_pk desc, tgtvar_nm;'; + put '%if &mdebug=0 %then %do;'; + put 'proc sql;'; + put 'drop table &ds1, &ds2, &ds3, &ds4;'; + put '%end;'; + put '%mend mp_storediffs;'; + put '/** @endcond */'; + put '%macro bitemporal_dataloader('; + put 'bus_from= /* Business FROM datetime variable. Req''d on'; + put 'STAGING & BASE tables.*/'; + put ',bus_to = /* Business TO datetime variable. Req''d on'; + put 'STAGING & BASE tables. */'; + put ',bus_from_override= /* Provide a hard coded BUS_FROM datetime value.*/'; + put ',bus_to_override= /* provide a hard coded BUS_TO datetime value */'; + put ',tech_from= /* Technical FROM datetime variable. Req''d on'; + put 'BASE table only. */'; + put ',tech_to = /* Technical TO datetime variable. Req''d on BASE'; + put 'table only. */'; + put ',processed= 0'; + put ',base_lib=WORK /* Libref of the BASE table. */'; + put ',base_dsn=BASETABLE /* Name of BASE table. */'; + put ',append_lib=WORK /* Libref of the STAGING table. */'; + put ',append_dsn=APPENDTABLE'; + put ',high_date=''01JAN5999:00:00:00''dt /* High date to close out records */'; + put ',PK= name sex'; + put ',RK_UNDERLYING='; + put ',KEEPVARS= /* Provides option for removing unwanted vars from append table */'; + put ',RK_UPDATE_MAXKEYTABLE=NO /* If switching (or mix matching) with regular'; + put 'SCD2 loader then set this switch to YES to'; + put 'ensure the MAXKEYTABLE is updated with the'; + put 'current maximum RK value for the target table'; + put '*/'; + put ',CHECK_UNIQUENESS=YES /* Perform a check of the APPEND table to ensure it is'; + put 'unique on its business key */'; + put ',ETLSOURCE=demo /* supply a value ($50.) to show as ETLSOURCE in'; + put '&dclib..DATALOADS */'; + put ',LOADTYPE=BITEMPORAL'; + put ',RK_MAXKEYTABLE= mpe_maxkeyvalues'; + put ',LOG=1 /* Switch to 0 to prevent records being added to'; + put '&mpelib..mpe_DATALOADS (ie when testing)*/'; + put ',DELETE_COL= _____DELETE__THIS__RECORD_____'; + put '/* If this variable is found in the append dataset'; + put 'then records are closed out (or deleted) in the'; + put 'append table where that variable= "Yes" */'; + put ',LOADTARGET=YES /* set to anything but uppercase YES to switch off'; + put 'target table load and generate temp tables only */'; + put ',CLOSE_VARS='; + put '/*a problem with regular SCD2 or TXTEMPORAL loads is that there is'; + put 'no facility to close out removed records (all records are'; + put 'assumed new or changed). But how does one determine which'; + put 'records are removed? Short of loading the entire table'; + put 'each time? This parameter allows a set of variables'; + put '(this should be a subset of the PK) to be declared, and'; + put 'the macro will determine which records in the base table'; + put 'need to be closed out ahead of the load.'; + put 'For instance, given the following:'; + put 'Base Table Staging Table'; + put 'DATE ENTITY AMOUNT DATE ENTITY AMOUNT'; + put 'JAN ACME4 66 JAN ACME4 66'; + put 'FEB ACME4 99 FEB ACME4 99'; + put 'FEB ACME1 22'; + put 'By supplying DATE in CLOSE_VARS and DATE ENTITY as the PK,'; + put 'the "FEB PAG 22" record would get closed out.'; + put '*/'; + put ',config_table=&dclib..MPE_CONFIG'; + put ',dclib=&dc_libref'; + put ',outds_del=work.outds_del'; + put ',outds_add=work.outds_add'; + put ',outds_mod=work.outds_mod'; + put ',outds_audit=0'; + put ');'; + put '/* when changing this macro, update the version num here */'; + put '%local ver;'; + put '%let ver=32;'; + put '%put &sysmacroname entry vars:;'; + put '%put _local_;'; + put '%dc_assignlib(WRITE,&base_lib) /* may not already be assigned */'; + put '/* return straight away if nothing to load */'; + put '%let nobs= %mf_getattrn(&append_lib..&append_dsn,NLOBS);'; + put '%if &nobs=-1 %then %do;'; + put 'proc sql noprint; select count(*) into: nobs from &append_lib..&append_dsn;'; + put '%end;'; + put '%if &nobs=0 %then %do;'; + put '%put NOTE:; %put NOTE-;%put NOTE-;%put NOTE-;'; + put '%put NOTE- Base dataset &append_lib..&append_dsn is empty. Nothing to upload!;'; + put '%put NOTE-;%put NOTE-;%put NOTE-;'; + put '%return;'; + put '%end;'; + put '/* hard exit if err condition exists */'; + put '%mp_abort(iftrue= (&syscc > 0)'; + put ',mac=bitemporal_dataloader'; + put ',msg=%str(Bitemporal transform / job aborted due to SYSCC=&SYSCC status;)'; + put ')'; + put '%local engine_type;'; + put '%let engine_type=%mf_getengine(&base_lib);'; + put '%if (&engine_type=REDSHIFT or &engine_type=POSTGRES) and %length(&CLOSE_VARS)>0'; + put '%then %do;'; + put '%put NOTE:; %put NOTE-;%put NOTE-;%put NOTE-;'; + put '%put NOTE- CLOSE_VARS functionality not yet supported in &engine_type;'; + put '%put NOTE-;%put NOTE-;%put NOTE-;'; + put '%return;'; + put '%end;'; + put '/**'; + put '* The metadata functions (eg mf_existvar) will fail if the base table has a'; + put '* SAS lock. So, make a snapshot of the base table for further use.'; + put '* Also, make output tables (regardless).'; + put '*/'; + put '%local basecopy;'; + put '%let basecopy=%mf_getuniquename(prefix=basecopy);'; + put 'data &basecopy &outds_mod &outds_add &outds_del;'; + put 'set &base_lib..&base_dsn;'; + put 'stop;'; + put 'run;'; + put '%mp_abort(iftrue= (&syscc > 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after base table copy - aborting due to table lock)'; + put ')'; + put '%local cols idx_pk md5_col ;'; + put '%let md5_col=___TMP___md5;'; + put '%let check_uniqueness=%upcase(&check_uniqueness);'; + put '%let RK_UPDATE_MAXKEYTABLE=%upcase(&RK_UPDATE_MAXKEYTABLE);'; + put '%let high_date=%unquote(&high_date);'; + put '%let loadtype=%upcase(&loadtype);'; + put '/* ensure irrelevant variables are cleared */'; + put '%if &loadtype=BUSTEMPORAL %then %do;'; + put '%let tech_from=;'; + put '%let tech_to=;'; + put '%end;'; + put '%else %if &loadtype=TXTEMPORAL or &loadtype=UPDATE %then %do;'; + put '%let bus_from=;'; + put '%let bus_to=;'; + put '%end;'; + put '/* ensure relevant variables are supplied */'; + put '%mp_abort(iftrue=(&loadtype=BITEMPORAL & %mf_verifymacvars(bus_from bus_to)=0)'; + put ',mac=bitemporal_dataloader'; + put ',msg=%str(Missing BUS_FROM / BUS_TO)'; + put ')'; + put '%mp_abort(iftrue=(&loadtype=TXTEMPORAL & %mf_verifymacvars(tech_from tech_to)=0)'; + put ',mac=bitemporal_dataloader'; + put ',msg=%str(Missing TECH_FROM / TECH_TO)'; + put ')'; + put '/**'; + put '* drop any tables (may be defined as views or vice versa preventing overwrite)'; + put '*/'; + put '%mp_dropmembers(append bitemp0_append bitemp_cols)'; + put '/* SQL Server requires its own time values */'; + put '/* 9.2 will only give picture format down to seconds. 9.3 allows'; + put 'milliseconds by using lower S and defining the decimal in the format name..*/'; + put 'PROC FORMAT;'; + put 'picture MyMSdt other=''%0Y-%0m-%0dT%0H:%0M:%0S'' (datatype=datetime);'; + put 'RUN;'; + put '%local dbnow;'; + put '%let dbnow="%sysfunc(datetime(),%mf_fmtdttm())"dt;'; + put 'data _null_;'; + put '/* convert space separated macvar to comma separated for SQL processing */'; + put 'call symputx(''PK_COMMA'',tranwrd(compbl("&pk"),'' '','',''),''L'');'; + put 'call symputx(''PK_CNT'',countw("&pk",'' ''),''L'');'; + put 'now=&dbnow;'; + put 'call symputx(''NOW'',now,''L'');'; + put 'call symputx(''SQLNOW'',cats("''",put(now,MyMSdt.),"''"),''L'');'; + put 'length etlsource $100;'; + put 'etlsource=subpad(symget(''etlsource''),1,100);'; + put 'call symputx(''etlsource'',etlsource,''l'');'; + put 'run;'; + put '/**'; + put '* Even if no PROCESSED var provided, assume that any variable named'; + put '* PROCESSED_DTTM should be updated'; + put '*/'; + put '%if &processed=0 %then %do;'; + put '%if %mf_existvar(&basecopy,PROCESSED_DTTM)'; + put '%then %let processed=PROCESSED_DTTM;'; + put '%else %let processed=;'; + put '%end;'; + put '/* extract colnames for md5 creation / change tracking */'; + put 'proc contents noprint data=&base_lib..&base_dsn'; + put 'out=work.bitemp_cols (keep=name type length varnum format:);'; + put 'run;'; + put 'proc sql noprint;'; + put 'select name into: cols separated by '','''; + put 'from work.bitemp_cols'; + put 'where upcase(name) not in'; + put '(%upcase("&bus_from","&bus_to"'; + put ',"&tech_from","&tech_to"'; + put ',"&processed","&delete_col")) ;'; + put 'select case when type in (2,6) then cats(''put(md5(trim('',name,'')),$hex32.)'')'; + put '/* multiply by 1 to strip precision errors (eg 0 != 0) */'; + put '/* but ONLY if not missing, else will lose any special missing values */'; + put 'else cats(''put(md5(trim(put(ifn(missing('''; + put ',name,''),'',name,'','',name,''*1),binary64.))),$hex32.)'') end'; + put 'into: stripcols separated by ''||'''; + put 'from work.bitemp_cols'; + put 'where upcase(name) not in'; + put '(%upcase("&bus_from","&bus_to"'; + put ',"&tech_from","&tech_to"'; + put ',"&processed","&delete_col")) ;'; + put '/* set default formats*/'; + put '%let bus_from_fmt = datetime19.;'; + put '%let bus_to_fmt = datetime19.;'; + put '%let processed_fmt = datetime19.;'; + put '%let tech_from_fmt = format=datetime19.;'; + put '%let tech_to_fmt = format=datetime19.;'; + put '%put &=stripcols;'; + put '%put &=pk;'; + put 'data _null_;'; + put 'set work.bitemp_cols;'; + put 'if type=2 or type=6 then do;'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'if format='''' then fmt=cats(length,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put 'if upcase(name)="%upcase(&bus_from)" then'; + put 'call symputx(''bus_from_fmt'',fmt,''L'');'; + put 'else if upcase(name)="%upcase(&bus_to)" then'; + put 'call symputx(''bus_to_fmt'',fmt,''L'');'; + put 'else if upcase(name)="%upcase(&tech_from)" then'; + put 'call symputx(''tech_from_fmt'',"format="!!fmt,''L'');'; + put 'else if upcase(name)="%upcase(&tech_to)" then'; + put 'call symputx(''tech_to_fmt'',"format="!!fmt,''L'');'; + put 'else if upcase(name)="%upcase(&processed)" then'; + put 'call symputx(''processed_fmt'',fmt,''L'');'; + put 'run;'; + put '%if %index(%quote(&cols),___TMP___) %then %do;'; + put '%let msg=%str(Table contains a variable name containing "___TMP___".%trim('; + put ') This may conflict with temp variable generation!!);'; + put '%mp_abort(msg=&msg,mac=bitemporal_dataloader);'; + put '%let syscc=5;'; + put '%return;'; + put '%end;'; + put '/* if transaction dates appear on the APPEND table, need to remove them */'; + put '%local drop_tx_dates /* used in append table */'; + put 'drop_tx_dates_noobs /* used to take the base table structure */;'; + put '%if %mf_existvar(&append_lib..&append_dsn, &tech_from)'; + put '%then %let drop_tx_dates=&tech_from;'; + put '%if %mf_existvar(&append_lib..&append_dsn, &tech_to)'; + put '%then %let drop_tx_dates=&drop_tx_dates &tech_to;'; + put '%if %length(%trim(&drop_tx_dates))>0'; + put '%then %let drop_tx_dates=(drop=&drop_tx_dates);'; + put '%if %mf_existvar(&basecopy, &tech_from)'; + put '%then %let drop_tx_dates_noobs=&tech_from;'; + put '%if %mf_existvar(&basecopy, &tech_to)'; + put '%then %let drop_tx_dates_noobs=&drop_tx_dates_noobs &tech_to;'; + put '%if %length(%trim(&drop_tx_dates_noobs))>0'; + put '%then %let drop_tx_dates_noobs=(drop=&drop_tx_dates_noobs obs=0);'; + put '%else %let drop_tx_dates_noobs=(obs=0);'; + put '/**'; + put '* Lock the table. This is necessary as we are doing a two part update (first'; + put '* closing records then appending new records). It is theoretically possible'; + put '* that an upload may occur whilst preparing the staging tables. And the'; + put '* staging tables are about to be prepared..'; + put '*/'; + put '%if &LOADTARGET = YES %then %do;'; + put '%mp_lockanytable(LOCK,'; + put 'lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE,ctl_ds=&dclib..mpe_lockanytable'; + put ')'; + put '%end;'; + put '%else %do;'; + put '/* not an actual load, so avoid updating the max key table in next step. */'; + put '%let rk_update_maxkeytable=NO;'; + put '%end;'; + put '%if %length(&RK_UNDERLYING)>0 %then %do;'; + put '%mp_retainedkey('; + put 'base_lib=&base_lib'; + put ',base_dsn=&base_dsn'; + put ',append_lib=&append_lib'; + put ',append_dsn=&append_dsn'; + put ',retained_key=&pk'; + put ',business_key=&rk_underlying'; + put ',check_uniqueness=&CHECK_UNIQUENESS'; + put ',outds=work.append'; + put '%if &rk_update_maxkeytable=NO %then %do;'; + put ',maxkeytable=0'; + put '%end;'; + put '%else %do;'; + put ',maxkeytable=&dclib..&RK_MAXKEYTABLE'; + put '%end;'; + put ',locktable=&dclib..mpe_lockanytable'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then %do;'; + put ',filter_str=%str( (where=( &now < &tech_to)) )'; + put '%end;'; + put ')'; + put '%end;'; + put '%else %do;'; + put 'proc sql;'; + put 'create view work.append as select * from &append_lib..&append_dsn;'; + put '%end;'; + put '/**'; + put '* generate md5 for append table'; + put '*/'; + put '/* it is possible the source dataset has additional (unwanted) columns.'; + put 'Drop if specified; */'; + put '%if %length(&keepvars)>0 %then %do;'; + put '/* remove tech dates from keepvars as they are generated later */'; + put '%let keepvars=%sysfunc(tranwrd(%str( &keepvars ),%str( &tech_from ),%str( )));'; + put '%let keepvars=%sysfunc(tranwrd(%str( &keepvars ),%str( &tech_to ),%str( )));'; + put '%let keepvars=(keep=&keepvars &bus_from &bus_to &processed &md5_col);'; + put '%end;'; + put '/* CAS varchar types cause append issues here, so perform autoconvert'; + put 'by creating empty local table first */'; + put 'data;'; + put 'set &base_lib..&base_dsn &drop_tx_dates_noobs;'; + put 'run;'; + put '%local emptybasetable; %let emptybasetable=&syslast;'; + put 'data work.bitemp0_append &keepvars &outds_del(drop=&md5_col )'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put '/nonote2err'; + put '%end;'; + put ';'; + put '/* apply formats for bitemporal vars but not tx dates which are added later */'; + put '%if %length(&keepvars)>0 and &loadtype=BITEMPORAL %then %do;'; + put 'format &bus_from &bus_from_fmt;'; + put 'format &bus_to &bus_to_fmt;'; + put '%end;'; + put 'set &emptybasetable /* base table reqd in case append has fewer cols */'; + put 'work.append &drop_tx_dates;'; + put '%if %length(%str(&bus_from_override))>0 %then %do;'; + put '&bus_from= %unquote(&bus_from_override) ;'; + put '%end;'; + put '%if %length(%str(&bus_to_override))>0 %then %do;'; + put '&bus_to= %unquote(&bus_to_override) ;'; + put '%end;'; + put 'length &md5_col $32;'; + put '&md5_col=put(md5(&stripcols),hex32.);'; + put '%if %length(&processed)>0 %then %do;'; + put 'format &processed &processed_fmt;'; + put '&processed=&now;'; + put '%end;'; + put '/**'; + put '* If a delete column exists then create the delete dataset'; + put '*/'; + put '%if %mf_existvar(&append_lib..&append_dsn, &delete_col) %then %do;'; + put 'drop &delete_col;'; + put 'if upcase(&delete_col) = "YES" then output &outds_del ;'; + put 'else output work.bitemp0_append ;'; + put 'run;'; + put '%if %mf_getattrn(&outds_del,NLOBS)>0 %then %do;'; + put '%bitemporal_closeouts('; + put 'tech_from=&tech_from'; + put ',tech_to = &tech_to'; + put ',base_lib=&base_lib'; + put ',base_dsn=&base_dsn'; + put ',append_lib=work'; + put ',append_dsn=%scan(&outds_del,-1,.)'; + put ',PK=&bus_from &pk'; + put ',NOW=&dbnow'; + put ',loadtarget=&loadtarget'; + put ',loadtype=&loadtype'; + put ')'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put 'output work.bitemp0_append;'; + put 'run;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc gt 0 at line 494)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc)'; + put ')'; + put '%if %length(&close_vars)>0 %then %do;'; + put '/**'; + put '* need to close out records that are not provided'; + put '*/'; + put 'proc sql;'; + put 'create table bitemp1_closevars1 as'; + put 'select distinct a.%mf_getquotedstr(in_str=&pk,dlm=%str(,a.),quote=)'; + put 'from &base_lib..&base_dsn a'; + put 'inner join work.bitemp0_append b'; + put 'on 1=1'; + put '/* join on closevars key */'; + put '%do idx_pk=1 %to %sysfunc(countw(&close_vars));'; + put '%let idx_val=%scan(&close_vars,&idx_pk);'; + put 'and a.&idx_val=b.&idx_val'; + put '%end;'; + put '/* filter base on tech dates if necessary */'; + put '%if &loadtype=TXTEMPORAL %then %do;'; + put 'where a.&tech_from <=&now and &now < a.&tech_to'; + put '%end;'; + put ';'; + put 'create table bitemp1_closevars2 as'; + put 'select distinct a.*'; + put 'from bitemp1_closevars1 a'; + put 'left join work.bitemp0_append b'; + put 'on 1=1'; + put '/* join on primary key */'; + put '%do idx_pk=1 %to %sysfunc(countw(&pk));'; + put '%let idx_val=%scan(&pk,&idx_pk);'; + put 'and a.&idx_val=b.&idx_val'; + put '%end;'; + put '/* identify removed records by null value in a field in PK but not close_vars'; + put '*/'; + put 'where b.%scan('; + put '%mf_wordsInStr1ButNotStr2(Str1=&pk,Str2=&close_vars),1,%str( )'; + put ') IS NULL'; + put ';'; + put '%if %mf_getattrn(bitemp1_closevars2,NLOBS)>0 %then %do;'; + put '%bitemporal_closeouts('; + put 'tech_from=&tech_from'; + put ',tech_to = &tech_to'; + put ',base_lib=&base_lib'; + put ',base_dsn=&base_dsn'; + put ',append_lib=work'; + put ',append_dsn=bitemp1_closevars2'; + put ',PK=&bus_from &pk'; + put ',NOW=&dbnow'; + put ',loadtarget=&loadtarget'; + put ',loadtype=&loadtype'; + put ')'; + put '%end;'; + put '%end;'; + put '/* return if nothing to load (was just deletes) */'; + put '%if %mf_getattrn(work.bitemp0_append,NLOBS)=0 %then %do;'; + put '%put NOTE:; %put NOTE-;%put NOTE-;%put NOTE-;'; + put '%put NOTE- No updates - just deletes!;'; + put '%put NOTE-;%put NOTE-;%put NOTE-;'; + put '%mp_lockanytable(UNLOCK,'; + put 'lib=&base_lib,ds=&base_dsn,'; + put 'ref=&ETLSOURCE,'; + put 'ctl_ds=&dclib..mpe_lockanytable'; + put ')'; + put '%if %mf_getattrn(&outds_del,NLOBS)>0 %then %do;'; + put '%let user=%mf_getUser();'; + put '/* no emails yet'; + put '%sumo_alerts(ALERT_EVENT=UPDATE'; + put ', ALERT_TARGET=&base_lib..&base_dsn'; + put ', from_user= &user);*/'; + put '%end;'; + put '%return;'; + put '%end;'; + put '/**'; + put '* If applying manual overrides to business dates, then the input table MUST'; + put '* be unique on the PK. Check, and if not - abort.'; + put '*/'; + put '%local msg;'; + put '%if %length(&bus_from_override.&bus_to_override)>0 or &CHECK_UNIQUENESS=YES'; + put '%then %do;'; + put 'proc sort data=work.bitemp0_append out=work.bitemp0_check nodupkey;'; + put 'by &pk;'; + put 'run;'; + put '%if %mf_getattrn(work.bitemp0_check,NLOBS)'; + put 'ne %mf_getattrn(work.bitemp0_append,NLOBS)'; + put '%then %do;'; + put '%let msg=INPUT table &append_lib..&append_dsn is not unique on PK (&pk);'; + put '%mp_lockanytable(UNLOCK,lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE (&msg),'; + put 'ctl_ds=&dclib..mpe_lockanytable'; + put ')'; + put '%mp_abort(msg=&msg,mac=bitemporal_dataloader.sas);'; + put '%end;'; + put '%end;'; + put '/**'; + put '* extract from BASE table. Only want matching records, as could be very BIG.'; + put '* New records are subsequently identified via left join and test for nulls.'; + put '*/'; + put '%local temp_table temp_table2 base_table baselib_schema;'; + put '%put DCNOTE: Extracting matching observations from &base_lib..&base_dsn;'; + put '%if &engine_type=OLEDB %then %do;'; + put '%let temp_table=##BITEMP_&base_dsn;'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then'; + put '%let base_table=(select * from [dbo].&base_dsn'; + put 'where convert(datetime,&SQLNOW) < &tech_to );'; + put '%else %let base_table=[dbo].&base_dsn;'; + put 'proc sql;'; + put 'create table &base_lib.."&temp_table"n as'; + put 'select * from work.bitemp0_append;'; + put '/* open up a connection for pass through SQL */'; + put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; + put 'create table work.bitemp0_base as select * from connection to myAlias('; + put '%end;'; + put '%else %if &engine_type=REDSHIFT or &engine_type=POSTGRES %then %do;'; + put '/* grab schema */'; + put '%let baselib_schema=%mf_getschema(&base_lib);'; + put '%if &baselib_schema.X ne X %then %let baselib_schema=&baselib_schema..;'; + put '/* grab redshift config */'; + put '%local redcnt; %let redcnt=0;'; + put '%if &engine_type=REDSHIFT %then %do;'; + put 'data _null_;'; + put 'set &config_table(where=(var_scope=''DCBL_REDSH'' and var_active=1));'; + put 'x+1;'; + put 'call symputx(cats(''rednm'',x),var_value,''l'');'; + put 'call symputx(cats(''redval'',x),var_value,''l'');'; + put 'call symputx(''redcnt'',x,''l'');'; + put 'run;'; + put '%end;'; + put '/* cannot persist temp tables so must create a temporary permanent table */'; + put '%let temp_table=%mf_getuniquename(prefix=XDCTEMP);'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then'; + put '%let base_table=(select * from &baselib_schema.&base_dsn'; + put 'where timestamp &sqlnow < &tech_to );'; + put '%else %let base_table=&baselib_schema.&base_dsn;'; + put '/* make empty table first - must clone & drop extra cols as autoload is bad */'; + put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; + put 'exec (create table &temp_table (like &baselib_schema.&base_dsn)) by myAlias;'; + put '%if &engine_type=REDSHIFT %then %do;'; + put 'exec (alter table &temp_table alter sortkey none) by myAlias;'; + put '%end;'; + put '%local dropcols;'; + put '%let dropcols=%mf_wordsinstr1butnotstr2('; + put 'str1=%upcase(%mf_getvarlist(&basecopy))'; + put ',str2=%upcase(&pk)'; + put ');'; + put '%if %length(&dropcols>0) %then %do idx_pk=1 %to %sysfunc(countw(&dropcols));'; + put '%put &=dropcols;'; + put '%let idx_val=%scan(&dropcols,&idx_pk);'; + put 'exec(alter table &temp_table drop column &idx_val;) by myAlias;'; + put '%end;'; + put 'exec (alter table &temp_table add column &md5_col varchar(32);) by myAlias;'; + put '/* create view to strip formats and avoid warns in log */'; + put 'data work.vw_bitemp0/view=work.vw_bitemp0;'; + put 'set work.bitemp0_append(keep=&pk &md5_col);'; + put 'format _all_;'; + put 'run;'; + put 'proc append base=&base_lib..&temp_table'; + put '%if &engine_type=REDSHIFT %then %do;'; + put '('; + put '%do idx_pk=1 %to &redcnt;'; + put '&&rednm&idx_pk = &&redval&idxpk'; + put '%end;'; + put ')'; + put '%end;'; + put 'data=work.vw_bitemp0 force nowarn;'; + put 'run;'; + put '/* open up a connection for pass through SQL */'; + put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; + put 'create table work.bitemp0_base as select * from connection to myAlias('; + put '%end;'; + put '%else %if &engine_type=CAS %then %do;'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then'; + put '%let base_table=&base_lib..&base_dsn'; + put '(where=(&tech_from <=&now and &now < &tech_to));'; + put '%else %let base_table=&base_lib..&base_dsn;'; + put '%let temp_table=CASUSER.%mf_getuniquename(prefix=DC);'; + put 'data &temp_table;'; + put 'set work.bitemp0_append;'; + put 'run;'; + put '%let bitemp0base=CASUSER.%mf_getuniquename(prefix=DC);'; + put 'proc fedsql sessref=dcsession;'; + put 'create table &bitemp0base{options replace=true} as'; + put '%end;'; + put '%else %do;'; + put '%let temp_table=work.bitemp0_append;'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then'; + put '%let base_table=&base_lib..&base_dsn'; + put '(where=(&tech_from <=&now and &now < &tech_to));'; + put '%else %let base_table=&base_lib..&base_dsn;'; + put 'proc sql;'; + put 'create table work.bitemp0_base as'; + put '%end;'; + put 'select a.&md5_col /* this identifies NEW records */'; + put ', b.*'; + put '/* assume first PK field cannot be null (if defined in a PK constraint then'; + put 'it definitely cannot be null) */'; + put ', case when b.%scan(&pk,1) IS NULL then 1 else 0 end as ___TMP___NEW_FLG'; + put 'from &baselib_schema.&temp_table a'; + put 'left join &base_table b'; + put 'on 1=1'; + put '%do idx_pk=1 %to &pk_cnt;'; + put '%let idx_val=%scan(&pk,&idx_pk);'; + put 'and a.&idx_val=b.&idx_val'; + put '%end;'; + put '%if &engine_type=OLEDB or &engine_type=REDSHIFT or &engine_type=POSTGRES'; + put '%then %do;'; + put '); proc sql; drop table &base_lib.."&temp_table"n;'; + put '%end;'; + put '%else %if &engine_type=CAS %then %do;'; + put ';'; + put 'quit;'; + put 'data work.bitemp0_base;'; + put 'set &bitemp0base;'; + put 'run;'; + put 'proc sql;'; + put 'drop table &temp_table;'; + put 'drop table &bitemp0base;'; + put '%end;'; + put '%else %do;'; + put ';'; + put '%end;'; + put '/**'; + put '* matching & changed records are those without NULL key values'; + put '* &idx_val resolves to rightmost PK value (loop above)'; + put '*/'; + put '%put syscc (line525)=&syscc, sqlrc=&sqlrc;'; + put '%mp_abort(iftrue= (&syscc gt 0 or &sqlrc>0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc sqlrc=&sqlrc)'; + put ')'; + put '%put hashcols2=&stripcols;'; + put 'proc sql;'; + put 'create table work.bitemp1_current(drop=___TMP___NEW_FLG) as'; + put 'select *'; + put ', put(md5(&stripcols),$hex32.) as &md5_col'; + put 'from work.bitemp0_base (drop=&md5_col)'; + put 'where ___TMP___NEW_FLG=0;'; + put '/**'; + put '* NEW records were identified in ___TMP___NEW_FLG in bitemp0_base'; + put '*/'; + put 'proc sql;'; + put 'create table &outds_add'; + put '(drop=&md5_col'; + put '%if %mf_existvar(work.bitemp0_base, &delete_col) %then %do;'; + put '&delete_col'; + put '%end;'; + put ')'; + put 'as select a.*'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then %do;'; + put ',&now as &tech_from &tech_from_fmt'; + put ',&high_date as &tech_to &tech_to_fmt'; + put '%end;'; + put 'from work.bitemp0_append a /* STAGING records (mix of existing & new) */'; + put ', work.bitemp0_base b /* BASE records (contains null values for new) */'; + put 'where a.&md5_col=b.&md5_col /* took staging md5 across in left join */'; + put 'and b.___TMP___NEW_FLG=1; /* NEW records also identified in bitemp0_base */'; + put '/**'; + put '* identify INSERTS. These are records with the same business key but'; + put '* the bus_from and bus_to value are higher / lower (respectively)'; + put '* such that the existing record needs to be SPLIT to surround the new'; + put '* record.'; + put '* eg: OLD RECORD from=1 to=10'; + put '* NEW RECORD from=5 to=7'; + put '*'; + put '* APPENDED RECORDS:'; + put '* - from=1 to=5'; + put '* - from=5 to=7'; + put '* - from=7 to=10'; + put '*/'; + put '/* inserts cannot happen with TXTEMPORAL */'; + put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL %then %do;'; + put '/* IDENTIFY */'; + put 'create table work.bitemp3_inserts as'; + put 'select b.*'; + put ',a.&bus_from as ___TMP___from'; + put ',a.&bus_to as ___TMP___to'; + put 'from work.bitemp0_append a'; + put ',work.bitemp1_current b'; + put 'where a.&bus_from > b.&bus_from'; + put 'and a.&bus_to < b.&bus_to'; + put '%do idx_pk=1 %to &pk_cnt;'; + put '%let idx_val=%scan(&pk,&idx_pk);'; + put 'and a.&idx_val=b.&idx_val'; + put '%end;'; + put 'order by'; + put '/* compress blanks and then insert commas (as the datetime fields may'; + put 'not be in use) */'; + put '%sysfunc(tranwrd(%sysfunc(compbl('; + put '&pk &bus_from &bus_to &processed'; + put ')),%str( ), %str(,)))'; + put ';'; + put '/* SPLIT */'; + put 'data work.bitemp3a_inserts (drop=___TMP___from ___TMP___retain ___TMP___to) ;'; + put 'set work.bitemp3_inserts;'; + put 'by &pk &bus_from &bus_to &processed;'; + put 'if first.&idx_val then do;'; + put '___TMP___retain=&bus_to;'; + put '&bus_to=___TMP___from;'; + put 'output;'; + put '&bus_to=___TMP___retain;'; + put 'end;'; + put 'if last.&idx_val then do;'; + put '&bus_from=___TMP___to;'; + put 'output;'; + put 'end;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '/* TX temporal load */'; + put 'data work.bitemp3a_inserts;'; + put 'set work.bitemp1_current;'; + put 'stop;'; + put 'run;'; + put '%end;'; + put '/* APPEND */'; + put 'proc sql;'; + put 'create view work.bitemp3a_view as'; + put 'select * from work.bitemp1_current'; + put 'where &md5_col not in (select &md5_col from work.bitemp3a_inserts);'; + put 'data bitemp3b_newbase;'; + put 'set work.bitemp3a_inserts work.bitemp3a_view;'; + put 'run;'; + put '/** do not use! this converts short numerics into 8 bytes'; + put 'proc sql;'; + put 'create table work.bitemp3b_newbase as'; + put 'select * from work.bitemp3a_inserts'; + put 'union corr'; + put 'select * from work.bitemp1_current'; + put 'where &md5_col not in (select &md5_col from work.bitemp3a_inserts);'; + put '*/'; + put '/**'; + put '* identify CHANGED records from staging.'; + put '* Same business key with different temporal dates or md5 value'; + put '* This table must be overlayed onto / into existing business history'; + put '*/'; + put 'proc sql;'; + put 'create table work.bitemp4_updated as select distinct a.*'; + put 'from work.bitemp0_append a'; + put ',work.bitemp3b_newbase b'; + put 'where 1=1'; + put '%do idx_pk=1 %to &pk_cnt;'; + put '%let idx_val=%scan(&pk,&idx_pk);'; + put 'and a.&idx_val=b.&idx_val'; + put '%end;'; + put 'and ( a.&md5_col ne b.&md5_col'; + put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL %then %do;'; + put 'OR (a.&bus_from ne b.&bus_from or a.&bus_to ne b.&bus_to)'; + put '%end;'; + put ')'; + put ';'; + put '/**'; + put '* This section would have been one simple step with union all'; + put '* but that converts short numerics into 8 bytes!'; + put '* so, convoluted alternative to retain the same functionality.'; + put '*/'; + put '/* base records */'; + put 'create view work.bitemp4_prep1 as'; + put 'select ''BASE'' as ___TMP___'; + put ',b.*'; + put 'from work.bitemp4_updated a'; + put ',work.bitemp3b_newbase b'; + put 'where 1'; + put '%do idx_pk=1 %to &pk_cnt;'; + put '%let idx_val=%scan(&pk,&idx_pk);'; + put 'and a.&idx_val=b.&idx_val'; + put '%end;'; + put ';'; + put '/* updated records */'; + put 'create view work.bitemp4_prep2 as'; + put 'select ''STAG'' as ___TMP___ ,*'; + put 'from work.bitemp4_updated;'; + put '/* ensure we only keep columns that appear in both */'; + put '%local bp1 bp2 bp3 bp4;'; + put '%let bp1=%mf_getvarlist(bitemp4_prep1);'; + put '%let bp2=%mf_getvarlist(bitemp4_prep2);'; + put '%let bp3=%mf_wordsInStr1ButNotStr2(Str1=&bp1,Str2=&bp2);'; + put '%let bp4=%mf_wordsInStr1ButNotStr2(Str1=&bp2,Str2=&bp1);'; + put 'data work.bitemp4_prep3/view=bitemp4_prep3;'; + put 'set bitemp4_prep1 bitemp4_prep2;'; + put '%if %length(XX&bp3&bp4)>2 %then %do;'; + put 'drop &bp3 &bp4 ;'; + put '%end;'; + put 'run;'; + put '/* remove duplicates */'; + put 'proc sql;'; + put 'create table work.bitemp4a_allrecs as'; + put 'select distinct *'; + put 'from work.bitemp4_prep3'; + put 'order by'; + put '/* compress blanks and then insert commas (as the datetime fields'; + put 'may not be in use) */'; + put '%sysfunc(tranwrd(%sysfunc(compbl('; + put '&pk &bus_from &bus_to &processed'; + put ')),%str( ), %str(,)))'; + put ';'; + put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL %then %do;'; + put '/* this section aligns the business dates'; + put '(eg for inserts or overlaps in the range) */'; + put 'data work.bitemp4b_firstpass (drop=___TMP___cond ___TMP___from ___TMP___to );'; + put 'set work.bitemp4a_allrecs;'; + put 'by &pk &bus_from &bus_to &processed;'; + put 'retain ___TMP___cond ''Name of Condition'';'; + put 'retain ___TMP___from ___TMP___to 0;'; + put '___TMP___md5lag=lag(&md5_col);'; + put '/* reset retained variables */'; + put 'if first.&idx_val then do;'; + put 'call missing (___TMP___cond, ___TMP___from, ___TMP___to,___TMP___md5lag);'; + put 'end;'; + put 'else do;'; + put '/* if record is identical, carry forward bus_from (and bus_to if higher)*/'; + put 'if &md5_col=___TMP___md5lag then do;'; + put '&bus_from=___TMP___from;'; + put 'if &bus_to<___TMP___to then &bus_to=___TMP___to;'; + put 'end;'; + put 'end;'; + put 'if ___TMP___=''STAG'' then do;'; + put '/* need to carry forward the closing record */'; + put '___TMP___cond=''Condition 1'';'; + put 'end;'; + put 'else if ___TMP___cond=''Condition 1'' then do;'; + put '/* else ensure bus_from starts from prior record bus_to */'; + put 'if &md5_col ne ___TMP___md5lag and &bus_from <= ___TMP___to'; + put 'then &bus_from= ___TMP___to;'; + put '/* new record may replace old record entirely */'; + put 'if &bus_to <= &bus_from then delete;'; + put 'else call missing (___TMP___cond, ___TMP___from, ___TMP___to);'; + put 'end;'; + put '___TMP___from=&bus_from;'; + put '___TMP___to=&bus_to;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '/* keep staged records only */'; + put 'data work.bitemp4b_firstpass;'; + put 'set work.bitemp4a_allrecs;'; + put 'if ___TMP___=''STAG'';'; + put 'run;'; + put '%end;'; + put '/* next phase is to pass through in reverse - so set up the sort statement */'; + put '%local byvar;'; + put '%do idx_pk=1 %to &pk_cnt;'; + put '%let byvar=&byvar descending %scan(&pk,&idx_pk);'; + put '%end;'; + put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL'; + put '%then %let byvar=&byvar descending &bus_from descending &bus_to;'; + put '/* if matching bus dates supplied, need to ensure we also have a sort'; + put 'between BASE and STAGING tables */'; + put '%let byvar=&byvar descending ___TMP___;'; + put 'proc sort data=work.bitemp4b_firstpass out=work.bitemp4c_sort ;'; + put 'by &byvar;'; + put 'run;'; + put '/**'; + put '* Now (in reverse) pass back business start dates'; + put '*/'; + put 'data work.bitemp4d_secondpass;'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then %do;'; + put '&tech_from=&now;'; + put '&tech_to=&high_date;'; + put '%end;'; + put 'set work.bitemp4c_sort ;'; + put 'by &byvar;'; + put 'retain ___TMP___cond ''Name of Condition'';'; + put 'retain ___TMP___from ___TMP___to 0;'; + put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL %then %do;'; + put '/* put / _all_ /;*/'; + put '___TMP___md5lag=lag(&md5_col);'; + put 'if first.&idx_val then do;'; + put '/* reset retained variables */'; + put 'call missing (___TMP___cond,___TMP___from,___TMP___to,___TMP___md5lag);'; + put 'end;'; + put 'else do;'; + put '/* if record is identical, carry back bus_to */'; + put 'if &md5_col=___TMP___md5lag then &bus_to=___TMP___to;'; + put 'end;'; + put 'if ___TMP___=''STAG'' then do;'; + put '/* need to carry forward the closing record */'; + put '___TMP___cond=''Condition 2'';'; + put 'end;'; + put 'else if ___TMP___cond=''Condition 2'' then do;'; + put '/* else ensure bus_to stops at subsequent record bus_from */'; + put 'if &md5_col ne ___TMP___md5lag and &bus_to >= ___TMP___from'; + put 'then &bus_to= ___TMP___from;'; + put '/* new record may replace old record entirely */'; + put 'if &bus_from >= &bus_to then delete;'; + put 'if &bus_from=___TMP___from and &bus_to=___TMP___to then delete;'; + put 'else call missing (___TMP___cond, ___TMP___from, ___TMP___to);'; + put 'end;'; + put '___TMP___from=&bus_from;'; + put '___TMP___to=&bus_to;'; + put '%end;'; + put 'run;'; + put '%put syscc (line600)=&syscc;'; + put '/**'; + put 'There may still be some records (eg old business history) which have not'; + put 'changed.'; + put 'Need to identify these and remove from the append so they are not updated'; + put 'unnecessarily. This is done by generating a new md5 (which INCLUDES the'; + put 'business key) and any matching / identical records are split out (from those'; + put 'that need to be updated).'; + put '*/'; + put '%if &loadtype=BITEMPORAL %then %do;'; + put '%let cat_string=catx(''|'' ,&bus_from,&bus_to);'; + put 'data bitemp5a_lkp (keep=&md5_col);'; + put 'set bitemp0_base;'; + put '/* for BITEMPORAL we need to compare business dates also */'; + put '&md5_col=put(md5(&cat_string!!''|''!!&stripcols),$hex32.);'; + put 'run;'; + put 'data bitemp5b_updates;'; + put 'set bitemp4d_secondpass;'; + put 'if _n_=1 then do;'; + put 'dcl hash md5_lkp(dataset:''bitemp5a_lkp'');'; + put 'md5_lkp.definekey("&md5_col");'; + put 'md5_lkp.definedone();'; + put 'end;'; + put '/* drop old md5 col as will rebuild with new business dates */'; + put '&md5_col=put(md5(&cat_string!!''|''!!&stripcols),$hex32.) ;'; + put 'if md5_lkp.check()=0 then delete;'; + put 'run;'; + put 'proc sql;'; + put '/* get min bus from as will update (close out) all records from this point'; + put '(for that PK)*/'; + put 'create table work.bitemp5d_subquery as'; + put 'select &pk_comma, min(&bus_from)as &bus_from, max(&bus_to) as &bus_to'; + put 'from work.bitemp5b_updates'; + put 'group by &pk_comma;'; + put '/* index has a huge efficiency impact on upcoming nested subquery */'; + put 'create index index1 on work.bitemp5d_subquery(&pk_comma,&bus_from, &bus_to);'; + put '%let lastds=work.bitemp5b_updates;'; + put '%end;'; + put '%else %if &loadtype=TXTEMPORAL or &loadtype=UPDATE %then %do;'; + put 'proc sql;'; + put 'create table work.bitemp5d_subquery as'; + put 'select distinct &pk_comma'; + put 'from bitemp4d_secondpass;'; + put '%let lastds=work.bitemp4d_secondpass;'; + put '%end;'; + put '%else %let lastds=work.bitemp4d_secondpass;'; + put '/* create single append table (an overlapped pre-sert may be classed as'; + put 'both an update AND a new record). Also create temp views that may be'; + put 'used for pre-load analysis. */'; + put 'data &outds_mod;'; + put 'set &lastds(drop=___TMP___: &md5_col);'; + put 'run;'; + put 'data bitemp6_allrecs / view=bitemp6_allrecs;'; + put 'set &outds_mod /* UPDATED records */'; + put '&outds_add /* NEW records */;'; + put 'run;'; + put 'proc sort data=work.bitemp6_allrecs'; + put 'out=work.bitemp6_unique'; + put 'noduprec'; + put 'dupout=work.xx_BADBADBAD;'; + put 'by _all_;'; + put 'run;'; + put '/* we have all our temp tables now so exit if this is all that is needed */'; + put '%if &LOADTARGET ne YES %then %return;'; + put '/* also exit if an err condition exists */'; + put '%put syscc=&syscc;'; + put '%if &syscc>0 %then %do;'; + put '%let msg=Bitemporal transform / job aborted due to SYSCC=&SYSCC status;'; + put '%mp_lockanytable(UNLOCK,lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE (&msg),'; + put 'ctl_ds=&dclib..mpe_lockanytable'; + put ')'; + put '%mp_abort(msg=&msg);'; + put '%end;'; + put '/* final check - abort if a lock has appeared on the target table */'; + put '%mp_lockfilecheck(libds=&base_lib..&base_dsn)'; + put '/**'; + put '* STAGING TABLES PREPARED, ERR CONDITION TESTED FOR.. NOW TO LOAD!!'; + put '*/'; + put '/**'; + put '* First, CLOSE OUT changed records (if not a REPLACE)'; + put '* Note that SAS does not support ANSI standard for UPDATE with a join condition.'; + put '* However - this can be worked around using a nested subquery..'; + put '*/'; + put 'data _null_;'; + put 'putlog "&sysmacroname: CLOSEOUTS commencing";'; + put 'run;'; + put '%if %mf_getattrn(&lastds,NLOBS)=0 %then %do;'; + put 'data _null_;'; + put 'putlog "&sysmacroname: No closeouts needed";'; + put 'run;'; + put '%end;'; + put '%else %if &engine_type=CAS %then %do;'; + put '%mp_abort(iftrue= (&loadtype=BITEMPORAL or &loadtype=TXTEMPORAL)'; + put ',mac=&sysmacroname in &_program'; + put ',msg=%str(&loadtype not yet supported in CAS engine)'; + put ')'; + put '/* create temp table for deletions */'; + put '%local delds;%let delds=%mf_getuniquename(prefix=DC);'; + put 'data casuser.&delds;'; + put 'set work.bitemp5d_subquery;'; + put 'run;'; + put '/* delete the records */'; + put 'proc cas ;'; + put 'table.deleteRows / table={'; + put 'caslib="&base_lib",'; + put 'name="&base_dsn",'; + put 'where="1=1",'; + put 'whereTable={caslib=''CASUSER'',name="&delds"}'; + put '};'; + put 'quit;'; + put '/* drop temp table */'; + put 'proc sql;'; + put 'drop table CASUSER.&delds;'; + put '%end;'; + put '%else %if (&loadtype=BITEMPORAL or &loadtype=TXTEMPORAL or &loadtype=UPDATE)'; + put '%then %do;'; + put 'data _null_;'; + put 'putlog "&sysmacroname: &loadtype operation using &engine_type engine";'; + put 'run;'; + put '%local flexinow;'; + put 'proc sql;'; + put '/* if OLEDB then create a temp table for efficiency */'; + put '%local innertable;'; + put '%if &engine_type=OLEDB %then %do;'; + put '%let innertable=[##BITEMP_&base_dsn];'; + put '%let top_table=[dbo].&base_dsn;'; + put '%let flexinow=&SQLNOW;'; + put 'create table &base_lib.."##BITEMP_&base_dsn"n as'; + put 'select * from work.bitemp5d_subquery;'; + put '/* open up a connection for pass through SQL */'; + put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; + put 'execute('; + put '%end;'; + put '%else %if &engine_type=REDSHIFT or &engine_type=POSTGRES %then %do;'; + put '%let innertable=%mf_getuniquename(prefix=XDCTEMP);'; + put '%let top_table=&baselib_schema.&base_dsn;'; + put '%let flexinow=timestamp &SQLNOW;'; + put '/* make empty table first - must clone & drop extra cols'; + put 'as autoload is bad */'; + put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; + put 'exec (create table &innertable (like &baselib_schema.&base_dsn)) by myAlias;'; + put '%if &engine_type=REDSHIFT %then %do;'; + put 'exec (alter table &innertable alter sortkey none) by myAlias;'; + put '%end;'; + put '%let dropcols=%mf_wordsinstr1butnotstr2('; + put 'str1=%upcase(%mf_getvarlist(&basecopy))'; + put ',str2=%upcase(%mf_getvarlist(work.bitemp5d_subquery))'; + put ');'; + put '%if %length(&dropcols>0) %then %do idx_pk=1 %to %sysfunc(countw(&dropcols));'; + put '%put &=dropcols;'; + put '%let idx_val=%scan(&dropcols,&idx_pk);'; + put 'exec(alter table &innertable drop column &idx_val;) by myAlias;;'; + put '%end;'; + put '/* create view to strip formats and avoid warns in log */'; + put 'data work.vw_bitemp5d/view=work.vw_bitemp5d;'; + put 'set work.bitemp5d_subquery;'; + put 'format _all_;'; + put 'run;'; + put 'proc append base=&base_lib..&innertable ('; + put '%do idx_pk=1 %to &redcnt;'; + put '&&rednm&idx_pk = &&redval&idxpk'; + put '%end;'; + put ')'; + put 'data=work.vw_bitemp5d force nowarn;'; + put 'run;'; + put '/* open up a connection for pass through SQL */'; + put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; + put 'execute('; + put '%end;'; + put '%else %do;'; + put '%let innertable=bitemp5d_subquery;'; + put '%let top_table=&base_lib..&base_dsn;'; + put '%let flexinow=&now;'; + put '%end;'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then %do;'; + put 'update &top_table set &tech_to=&flexinow'; + put '%if %length(&processed)>0 %then %do;'; + put ',&processed=&flexinow'; + put '%end;'; + put 'where &tech_from <= &flexinow and &flexinow < &tech_to and'; + put '%end;'; + put '%else %if &loadtype=UPDATE %then %do;'; + put '/* changed records are deleted then re-appended when doing UPDATEs */'; + put 'delete from &top_table where'; + put '%end;'; + put '%else %do;'; + put '%put %str(ERR)OR: BUSTEMPORAL NOT YET SUPPORTED;'; + put '%let syscc=5;'; + put '%mp_lockanytable(UNLOCK,lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE,'; + put 'ctl_ds=&dclib..mpe_lockanytable'; + put ')'; + put '%goto end_of_macro;'; + put '%end;'; + put '/* perform join inside query as per'; + put 'http://stackoverflow.com/questions/24629793/update-with-a-proc-sql */'; + put 'exists( select 1 from &baselib_schema.&innertable where'; + put '/* loop PK join */'; + put '%do idx_pk=1 %to &pk_cnt;'; + put '%let idx_val=%scan(&pk,&idx_pk);'; + put '&base_dsn..&idx_val=&innertable..&idx_val and'; + put '%end;'; + put '%if &loadtype=BITEMPORAL %then %do;'; + put '&base_dsn..&bus_from >= &innertable..&bus_from'; + put 'and &base_dsn..&bus_to <= &innertable..&bus_to and'; + put '%end;'; + put '/* close the statement */'; + put '1=1);'; + put '%if &engine_type=OLEDB or &engine_type=REDSHIFT or &engine_type=POSTGRES'; + put '%then %do;'; + put ') by myAlias;'; + put 'execute (drop table &baselib_schema.&innertable) by myAlias;'; + put '%end;'; + put '%end;'; + put 'quit;'; + put 'data _null_;'; + put 'putlog "&sysmacroname: Closeout complete";'; + put 'run;'; + put '/**'; + put '* Append the new / updated records'; + put '*/'; + put '%if &engine_type=CAS %then %do;'; + put '/* get varchar variables ready for casting */'; + put '%local vcfmt vcrename vcassign vcdrop;'; + put 'data _null_;'; + put 'set work.bitemp_cols(where=(type=6)) end=last;'; + put 'length vcrename vcassign vcdrop vcfmt $32767 rancol $32;'; + put 'retain vcrename vcassign vcdrop vcfmt;'; + put 'if _n_=1 then vcrename=''(rename=('';'; + put 'rancol=resolve(''%mf_getuniquename()'');'; + put 'vcfmt=trim(vcfmt)!!''length ''!!cats(name)!!'' varchar(*);'';'; + put 'vcrename=trim(vcrename)!!'' ''!!cats(name,''='',rancol);'; + put 'vcassign=cats(vcassign,name,''='',rancol,'';'');'; + put 'vcdrop=cats(vcdrop,''drop ''!!rancol,'';'');'; + put 'if last then do;'; + put 'vcrename=cats(vcrename,''))'');'; + put 'call symputx(''vcfmt'',vcfmt);'; + put 'call symputx(''vcrename'',vcrename);'; + put 'call symputx(''vcassign'',vcassign);'; + put 'call symputx(''vcdrop'',vcdrop);'; + put 'end;'; + put 'run;'; + put '/* prepare a temp cas table with varchars casted */'; + put '%let tmp=%mf_getuniquename();'; + put 'data casuser.&tmp ;'; + put '&vcfmt'; + put 'set work.bitemp6_unique &vcrename;'; + put '&vcassign'; + put '&vcdrop'; + put 'run;'; + put '/* load the table with varchars applied*/'; + put 'data &base_lib..&base_dsn (append=yes )/sessref=dcsession ;'; + put 'set casuser.&tmp;'; + put 'run;'; + put '/* drop temp table */'; + put 'proc sql;'; + put 'drop table CASUSER.&tmp;'; + put '/* this code will not work as regular tables do not have varchars */'; + put '/*'; + put 'proc casutil;'; + put 'load data=work.bitemp6_unique'; + put 'outcaslib="&base_lib" casout="&base_dsn" append ;'; + put 'quit;'; + put '*/'; + put '%end;'; + put '%else %if &engine_type=REDSHIFT or &engine_type=POSTGRES %then %do;'; + put 'proc append base=&base_lib..&base_dsn'; + put '%if &engine_type=REDSHIFT %then %do;'; + put '('; + put '%do idx_pk=1 %to &redcnt;'; + put '&&rednm&idx_pk = &&redval&idxpk'; + put '%end;'; + put ')'; + put '%end;'; + put 'data=bitemp6_unique force nowarn;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put 'proc append base=&base_lib..&base_dsn data=bitemp6_unique force nowarn; run;'; + put '%end;'; + put '%mp_lockanytable(UNLOCK,lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE,'; + put 'ctl_ds=&dclib..mpe_lockanytable'; + put ')'; + put '/* final check on syscc */'; + put '%mp_abort(iftrue= (&syscc >4)'; + put ',mac=&_program'; + put ',msg=%str(!!Upload NOT successful!! Failed on actual update / append stage..)'; + put ')'; + put '%if &outds_audit ne 0 and &LOADTARGET=YES %then %do;'; + put 'data work.vw_outds_orig /view=work.vw_outds_orig;'; + put 'set work.bitemp0_base (drop=&md5_col);'; + put 'where ___TMP___NEW_FLG=0;'; + put 'drop ___TMP___NEW_FLG;'; + put 'run;'; + put '/* update the AUDIT table */'; + put '%if %mf_existds(&outds_audit) %then %do;'; + put 'options mprint;'; + put '%mp_storediffs(&base_lib..&base_dsn'; + put ',work.vw_outds_orig'; + put ',&pk'; + put ',delds=&outds_del'; + put ',modds=&outds_mod'; + put ',appds=&outds_add'; + put ',outds=work.mp_storediffs'; + put ',processed_dttm=&now'; + put ',loadref=%superq(etlsource)'; + put ')'; + put 'data _null_;'; + put 'set work.mp_storediffs;'; + put 'putlog load_ref= libref= dsn= key_hash= tgtvar_nm=;'; + put 'run;'; + put 'proc append base=&outds_audit data=work.mp_storediffs;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc >4)'; + put ',mac=bitemporal_dataloader'; + put ',msg=%str(Problem in audit stage (&outds_audit))'; + put ')'; + put '%let user=%mf_getUser();'; + put '/**'; + put 'Notify as appropriate EMAILS DISABLED'; + put '%sumo_alerts(ALERT_EVENT=UPDATE'; + put ', ALERT_TARGET=&base_lib..&base_dsn'; + put ', from_user= &user);'; + put '*/'; + put '/* monitor BiTemporal usage */'; + put '%if &log=1 %then %do;'; + put '%put syscc=&syscc;'; + put '/* do not perform duration calc in pass through */'; + put '%local dur;'; + put 'data _null_;'; + put 'now=symget(''now'');'; + put 'dur=%sysfunc(datetime())-&now;'; + put 'call symputx(''dur'',dur,''l'');'; + put 'run;'; + put 'proc sql;'; + put 'insert into &dclib..mpe_dataloads'; + put 'set libref=%upcase("&base_lib")'; + put ',DSN=%upcase("&base_dsn")'; + put ',ETLSOURCE="&ETLSOURCE"'; + put ',LOADTYPE="&loadtype"'; + put ',CHANGED_RECORDS=%mf_getattrn(&lastds,NLOBS)'; + put ',NEW_RECORDS=%mf_getattrn(&outds_add,NLOBS)'; + put ',DELETED_RECORDS=%mf_getattrn(&outds_del,NLOBS)'; + put ',DURATION=&dur'; + put ',MAC_VER="v&ver"'; + put ',user_nm="&user"'; + put ',PROCESSED_DTTM=&now;'; + put 'quit;'; + put '%put syscc=&syscc;'; + put '%end;'; + put '%end_of_macro:'; + put '%mend bitemporal_dataloader;'; + put '%macro meta_mapper('; + put 'baseds=work.allmap /* base table to contain metamapping (two level) */'; + put ', stageds=col_meta /* temp table to append to base*/'; + put ', metaid=OMSOBJ:Column\A5HOSDWY.BF00LWQT'; + put ', direction=REVERSE /* either REVERSE or FORWARDS */'; + put ', level=0 /* system var - show level of nesting */'; + put ', job= /* system var - avoid looping same source */'; + put ', levelcheck=50 /* system var - avoid going too deep down the rabbit hole */'; + put ', append=NO /* system var - when YES means appending within nested loop */'; + put ');'; + put '%if &level>&levelcheck %then %return;'; + put '%put &sysmacroname entry vars:;'; + put '%put _local_;'; + put '%if &direction=REVERSE %then %do;'; + put '%let start=Target;'; + put '%let finish=Source;'; + put '%end;'; + put '%else %do;'; + put '%let start=Source;'; + put '%let finish=Target;'; + put '%end;'; + put '%if &append=NO %then %do;'; + put 'proc datasets lib=work;'; + put 'delete %scan(&baseds,2,.);'; + put 'quit;'; + put '%let index_statement=(index=(HASH/unique));'; + put '%end;'; + put '%else %let index_statement=;'; + put 'data &stageds &index_statement ;'; + put 'length HASH $32'; + put 'jobname sourcetablename sourcecolname sourcecoluri'; + put 'map_type map_transform targettablename targetcolname targetcoluri'; + put 'uri targettableuri tfmuri sourcetableuri scuri tpuri tmpuri mturi $256'; + put 'Derived_Rule $500 Marker_ID Name_ID N_Name LibRef engine sourcePublicType'; + put 'targetPublicType $64;'; + put 'keep HASH jobname sourcetablename sourcecolname sourcecoluri'; + put 'map_type map_transform'; + put 'targettablename targetcolname targetcoluri Derived_Rule level;'; + put '/* proc transpose logic only */'; + put 'length sourceshorttablename sourcemembertype sourcelocation'; + put 'assoc assocuri name sturi foundrefuri foundfinishuri'; + put 'targetshorttablename targetlocation targetmembertype trafoName $256'; + put 'sourceshorttableuri sourceshortcoluri checkrdm targetshorttableuri'; + put 'targetshortcoluri selected_direction $17'; + put 'lturi _location $200;'; + put 'call missing (of _all_);'; + put '&start.coluri="&METAID";'; + put 'level=&level;'; + put '/* first get table associated with the column */'; + put 'if metadata_getnasn(&start.coluri,''Table'',1,&start.tableuri)=0 then do;'; + put 'putlog "ERR" "OR: Table not found";'; + put 'stop;'; + put 'end;'; + put 'rc=metadata_getattr(&start.tableuri,"Name",&start.tablename);'; + put 'rc=metadata_getattr(&start.coluri,"Name",&start.colname);'; + put 'rc=metadata_getattr(&start.tableuri,''PublicType'',&start.PublicType);'; + put 'if (metadata_getnasn(&start.tableuri, "TablePackage",1, tpuri)>0) then'; + put 'do;'; + put 'rc=metadata_getattr(tpuri,"Libref",LibRef);'; + put 'rc=metadata_getattr(tpuri,"Engine",engine);'; + put 'if missing(libref) then do;'; + put 'rc=metadata_getnasn(tpuri, "UsedByPackages",1, tmpuri);'; + put 'rc=metadata_getattr(tmpuri,"Libref",LibRef);'; + put 'rc=metadata_getattr(tmpuri,"Engine",engine);'; + put 'end;'; + put '&start.tablename=cats('; + put 'upcase(LibRef),''-'',upcase(engine),''.'',&start.tablename'; + put ');'; + put 'end;'; + put 'else if (&start.PublicType="ExternalFile") then do;'; + put 'rc=metadata_getnasn(&start.tableuri, "OwningFile",1, tmpuri);'; + put 'rc=metadata_getnasn(tmpuri, "FileRefs",1, tmpuri);'; + put 'rc=metadata_getnasn(tmpuri, "FileRefLocations",1, tmpuri);'; + put 'rc=metadata_getattr(tmpuri,''FileName'',&start.tablename);'; + put 'end;'; + put 'else &start.tablename = ''work. ''||trim(lowcase(&start.tablename));'; + put '/* now loop the Source / TargetFeatureMaps */'; + put 'tfm=1;'; + put 'do while(metadata_getnasn(&start.coluri,"&start.FeatureMaps",tfm,tfmuri)>0);'; + put 'call missing(derived_rule);'; + put 'rc=metadata_getattr(tfmuri,''TransformRole'',map_type);'; + put '/* get job and step name */'; + put 'if (metadata_getnasn(tfmuri,''AssociatedClassifierMap'',1,tmpuri)<1) then'; + put 'do;'; + put 'rc=metadata_getnasn(tfmuri,"&finish.Transformations",1,tmpuri);'; + put 'rc=metadata_getnasn(tmpuri,''AssociatedClassifierMap'',1,tmpuri);'; + put 'end ;'; + put 'rc=metadata_getnasn(tmpuri,''Steps'',1,tmpuri);'; + put 'rc=metadata_getattr(tmpuri,''Name'',map_transform);'; + put 'rc=metadata_getnasn(tmpuri,''Activities'',1,tmpuri);'; + put 'rc=metadata_getnasn(tmpuri,''Jobs'',1,tmpuri);'; + put 'rc=metadata_getattr(tmpuri,''Name'',jobname);'; + put 'if Map_Type = ''DERIVED'' then do;'; + put 'if(metadata_getnasn(tfmuri,"SourceCode",1, scuri)>0) then do;'; + put '/* standard */'; + put 'mturi=tfmuri;'; + put 'end;'; + put 'else do;'; + put '/* some SQL joins store transform rules elsewhere */'; + put 'rc=metadata_getnasn(tfmuri,"Feature&start.s",1, tmpuri);'; + put 'if (metadata_getnasn(tmpuri,"Variables",1, tmpuri)>0)'; + put 'then rc=metadata_getnasn(tmpuri,"OwningTransformation",1, mturi);'; + put 'else rc=metadata_getnasn(tfmuri,"Transformation&start.s",1, mturi);'; + put 'rc=metadata_getnasn(mturi,"SourceCode",1, scuri);'; + put 'end;'; + put 'rc=metadata_getattr(scuri,"StoredText",Derived_Rule);'; + put 'Derived_Rule = compress(Derived_Rule,''0A''x);'; + put '/* loop to generate derived rule (swap ref numbers for col descs) */'; + put 'sv=1;'; + put 'do while(metadata_getnasn(mturi,"SubstitutionVariables",sv,tmpuri)>0);'; + put 'rc=metadata_getattr(tmpuri,"Marker",Marker_ID);'; + put 'rc=metadata_getattr(tmpuri,"Name",Name_ID);'; + put 'N_Name = compress(scan(Name_ID,2,''-''));'; + put 'Derived_Rule=tranwrd('; + put 'Derived_Rule,compress(Marker_ID),compress(N_Name)'; + put ');'; + put 'sv+1;'; + put 'end;'; + put 'end;'; + put '/* get source col attributes */'; + put 'fs=1;'; + put 'do while(metadata_getnasn(tfmuri,"Feature&finish.s",fs,&finish.coluri)>0);'; + put 'rc=metadata_getattr(&finish.coluri,''Name'',&finish.colname);'; + put 'rc=metadata_getnasn(&finish.coluri,''Table'',1,&finish.tableuri);'; + put 'rc=metadata_getattr(&finish.tableuri,''Name'',&finish.tablename);'; + put 'rc=metadata_getattr(&finish.tableuri,''PublicType'',&finish.PublicType);'; + put 'if (metadata_getnasn(&finish.tableuri,"TablePackage",1,tpuri)>0) then'; + put 'do;'; + put 'rc=metadata_getattr(tpuri,"Libref",LibRef);'; + put 'rc=metadata_getattr(tpuri,"Engine",engine);'; + put 'if missing(libref) then do;'; + put 'rc=metadata_getnasn(tpuri, "UsedByPackages",1, tmpuri);'; + put 'rc=metadata_getattr(tmpuri,"Libref",LibRef);'; + put 'rc=metadata_getattr(tmpuri,"Engine",engine);'; + put 'end;'; + put '&finish.tablename=cats('; + put 'upcase(LibRef),''-'',upcase(engine),''.'',&finish.tablename'; + put ');'; + put 'end;'; + put 'else if (&finish.PublicType="ExternalFile") then do;'; + put 'rc=metadata_getnasn(&finish.tableuri, "OwningFile",1, tmpuri);'; + put 'rc=metadata_getnasn(tmpuri, "FileRefs",1, tmpuri);'; + put 'rc=metadata_getnasn(tmpuri, "FileRefLocations",1, tmpuri);'; + put 'rc=metadata_getattr(tmpuri,''FileName'',&finish.tablename);'; + put 'end;'; + put 'else &finish.tablename=compress(''work.''||lowcase(&finish.tablename));'; + put '/* do a lookup to see if this record has been loaded before,'; + put 'IF base table exists */'; + put 'hash=put(md5('; + put 'cats(jobname,sourcecoluri,map_type,map_transform,targetcoluri)'; + put '),$hex32.);'; + put '%if %sysfunc(exist(&baseds)) %then %do;'; + put 'set &baseds(keep=hash) key=hash/unique;'; + put 'if _iorc_ ne 0 then do;'; + put '/* hash did not exist, hence this is a new record */'; + put 'output;'; + put '_error_=0;'; + put 'end;'; + put '%end;'; + put '%else %do;'; + put 'output;'; + put '%end;'; + put 'fs+1;'; + put 'end;'; + put 'tfm+1;'; + put 'end;'; + put '/* No finish URI found - so proceed to see if this is due to transpose */'; + put 'if missing(&finish.coluri)'; + put 'and (metadata_getnasn(&start.tableuri,"&start.ClassifierMaps",1,tmpuri)>0)'; + put 'then do;'; + put 'length trafoname $256;'; + put 'call missing(trafoName);'; + put 'rc=metadata_getattr(tmpuri,''Name'',trafoName);'; + put '/* get &finsh.tablename and jobname */'; + put 'rc=metadata_getnasn(tmpuri,"Classifier&finish.s",1,&finish.tableuri);'; + put 'rc=metadata_getattr(&finish.tableuri,''Name'',&finish.tablename);'; + put '&finish.shorttablename=&finish.tablename;'; + put 'rc=metadata_getnasn(tmpuri,''Steps'',1,tmpuri);'; + put 'rc=metadata_getnasn(tmpuri,''Activities'',1,tmpuri);'; + put 'rc=metadata_getnasn(tmpuri,''Jobs'',1,tmpuri);'; + put 'rc=metadata_getattr(tmpuri,''Name'',jobname);'; + put 'rc1=1;n1=1;'; + put 'do while(rc1>0);'; + put 'rc1=metadata_getnasl(&finish.tableuri,n1,assoc);'; + put 'if (assoc="Columns") then do;'; + put 'rc2=1;n2=1;'; + put 'do while(rc2>0 and missing(foundfinishuri));'; + put '/* Walk through all column associations: SpecSourceTransformations*/'; + put 'rc2=metadata_getnasn(&finish.tableuri,trim(assoc),n2,assocuri);'; + put '/* REVERSE */'; + put '%if ("&direction." = "REVERSE") %then %do;'; + put 'if metadata_getnasn(assocuri,"SpecSourceTransformations",1,sturi)>0'; + put 'then do;'; + put 'rc=metadata_getattr(sturi,"Name",name);'; + put '/* SAS Transpose: varColumns */'; + put 'if (name ="varColumns") then do;'; + put 'foundfinishuri = "true"; /* do a while exit */'; + put 'put "scource colname name=" name;'; + put 'put "scource colname uri=" assocuri;'; + put '&finish.coluri=assocuri;'; + put '&finish.shortcoluri=substr('; + put '&finish.coluri,find(&finish.coluri, ''\'')+1'; + put ');'; + put 'rc=metadata_getattr(&finish.coluri,''Name'',&finish.colname);'; + put 'rc=metadata_getnasn(&finish.coluri,''Table'',1,&finish.tableuri);'; + put 'rc=metadata_getattr(&finish.tableuri,''Name'',&finish.tablename);'; + put '&finish.shorttablename=&finish.tablename;'; + put 'map_type = "ONETOONE";'; + put '/* get MemberType */'; + put 'rc=metadata_getattr('; + put '&finish.tableuri,"MemberType",&finish.membertype'; + put ');'; + put '&finish.shorttableuri = substr('; + put '&finish.tableuri,find(&finish.tableuri, ''\'')+1'; + put ');'; + put 'rc=metadata_getattr('; + put '&finish.shorttableuri,"PublicType",&finish.publictype'; + put ');'; + put 'if metadata_getnasn('; + put '&finish.shorttableuri,"TablePackage",1,tpuri'; + put ')>0'; + put 'then do;'; + put '/* init LibRef to overwrite previous for &start!!! */'; + put 'call missing (LibRef);'; + put 'rc=metadata_getattr(tpuri,"Libref",LibRef);'; + put 'rc=metadata_getattr(tpuri,"Engine",engine);'; + put 'if missing(libref) then do;'; + put 'rc=metadata_getnasn(tpuri, "UsedByPackages",1, tmpuri);'; + put 'rc=metadata_getattr(tmpuri,"Libref",LibRef);'; + put 'rc=metadata_getattr(tmpuri,"Engine",engine);'; + put 'end;'; + put '&finish.shorttablename=&finish.tablename;'; + put '&finish.tablename=cats('; + put 'upcase(LibRef),''-'',upcase(engine),''.'',&finish.tablename'; + put ');'; + put 'end;'; + put '/* get SAS Folder location of the table */'; + put 'if &finish.publictype eq "Table" then do;'; + put 'lturi=&finish.shorttableuri;'; + put 'rc=metadata_getnasn(lturi,"Trees",1,lturi);'; + put 'rc=metadata_getattr(lturi,"Name",&finish.location);'; + put 'tree=1;'; + put 'do while (tree>0);'; + put 'tree=metadata_getnasn(lturi,"ParentTree",1,lturi);'; + put 'if tree > 0 then do;'; + put 'rc=metadata_getattr(lturi,"Name",_location);'; + put '&finish.location=catx(''/'',_location,&finish.location);'; + put 'end;'; + put 'end;'; + put '&finish.location = ''/''||&finish.location;'; + put 'end;'; + put 'map_transform = trafoName;'; + put 'derived_rule = "Transpose vertical";'; + put '/* do a lookup to see if this record has been loaded before,'; + put 'IF base table exists */'; + put 'hash=put(md5('; + put 'cats(jobname,sourcecoluri,map_type,map_transform,targetcoluri)'; + put '),$hex32.);'; + put '%if %sysfunc(exist(&baseds)) %then %do;'; + put 'set &baseds(keep=hash) key=hash/unique;'; + put 'if _iorc_ ne 0 then do;'; + put '/* hash did not exist, hence this is a new record */'; + put 'output;'; + put '_error_=0;'; + put 'end;'; + put '%end;'; + put '%else %do;'; + put 'output;'; + put '%end;'; + put 'end; /* (name = "_VALUE_COLUMN") */'; + put 'end; /* (metadata_getnasn(assocuri2,"Spec&finish.xxx",1,sturi)>0) */'; + put '%end; /* &direction = "REVERSE" */'; + put '/* FORWARDS: if TargetFeatureMaps not available: -> target! */'; + put '%if ("&direction." = "FORWARDS") %then %do;'; + put 'if (metadata_getnasn(assocuri,"TargetFeatureMaps",1,sfuri)<0)'; + put 'then do;'; + put 'rc=metadata_getattr(assocuri,"Name",name);'; + put 'if not missing(assocuri) then do;'; + put 'put "target colname name=" name;'; + put 'put "target colname uri=" assocuri;'; + put '&finish.coluri=assocuri;'; + put '&finish.shortcoluri=substr('; + put '&finish.coluri,find(&finish.coluri, ''\'')+1'; + put ');'; + put 'rc=metadata_getattr(&finish.coluri,''Name'',&finish.colname);'; + put 'rc=metadata_getnasn(&finish.coluri,''Table'',1,&finish.tableuri);'; + put 'rc=metadata_getattr(&finish.tableuri,''Name'',&finish.tablename);'; + put '&finish.shorttablename=&finish.tablename;'; + put 'map_type = "ONETOMANY";'; + put '/* get MemberType */'; + put 'rc=metadata_getattr('; + put '&finish.tableuri,"MemberType",&finish.membertype'; + put ');'; + put '&finish.shorttableuri = substr('; + put '&finish.tableuri,find(&finish.tableuri, ''\'')+1'; + put ');'; + put 'rc=metadata_getattr('; + put '&finish.shorttableuri,"PublicType",&finish.publictype'; + put ');'; + put 'if metadata_getnasn('; + put '&finish.shorttableuri,"TablePackage",1,tpuri'; + put ')>0'; + put 'then do;'; + put '/* init LibRef to overwrite previous for &start!!! */'; + put 'call missing (LibRef);'; + put 'rc=metadata_getattr(tpuri,"Libref",LibRef);'; + put 'rc=metadata_getattr(tpuri,"Engine",engine);'; + put 'if missing(libref) then do;'; + put 'rc=metadata_getnasn(tpuri, "UsedByPackages",1, tmpuri);'; + put 'rc=metadata_getattr(tmpuri,"Libref",LibRef);'; + put 'rc=metadata_getattr(tmpuri,"Engine",engine);'; + put 'end;'; + put '&finish.shorttablename=&finish.tablename;'; + put '&finish.tablename=cats('; + put 'upcase(LibRef),''-'',upcase(engine),''.'',&finish.tablename'; + put ');'; + put 'end;'; + put '/* get table''s SAS Folder location */'; + put 'if &finish.publictype eq "Table" then do;'; + put 'lturi=&finish.shorttableuri;'; + put 'rc=metadata_getnasn(lturi,"Trees",1,lturi);'; + put 'rc=metadata_getattr(lturi,"Name",&finish.location);'; + put 'tree=1;'; + put 'do while (tree>0);'; + put 'tree=metadata_getnasn(lturi,"ParentTree",1,lturi);'; + put 'if tree > 0 then do;'; + put 'rc=metadata_getattr(lturi,"Name",_location);'; + put '&finish.location=catx(''/'',_location,&finish.location);'; + put 'end;'; + put 'end;'; + put '&finish.location = ''/''||&finish.location;'; + put 'end;'; + put 'map_transform = trafoName;'; + put 'derived_rule = "Transpose horizontal";'; + put '/* do a lookup to see if this record has been loaded before,'; + put 'IF base table exists */'; + put 'hash=put(md5('; + put 'cats(jobname,sourcecoluri,map_type,map_transform,targetcoluri)'; + put '),$hex32.);'; + put '%if %sysfunc(exist(&baseds)) %then %do;'; + put 'set &baseds(keep=hash) key=hash/unique;'; + put 'if _iorc_ ne 0 then do;'; + put '/* hash did not exist, hence this is a new record */'; + put 'output;'; + put '_error_=0;'; + put 'end;'; + put '%end;'; + put '%else %do;'; + put 'output;'; + put '%end;'; + put 'end;'; + put 'end;'; + put '%end; /* (&direction = "FORWARDS" */'; + put 'call missing(assocuri);'; + put 'n2+1;'; + put 'end; /* while(rc1>0) */'; + put 'end; /* (assoc="Columns") */'; + put 'call missing(assoc);'; + put 'n1+1;'; + put 'end; /* while(rc1>0) */'; + put 'end; /* missing(&finish.coluri) */'; + put '/* ################# end mapping for Transpose flat ################# */'; + put 'stop;'; + put 'run;'; + put 'proc append base=&baseds data=&stageds;'; + put 'run;'; + put 'data _null_;'; + put 'set &stageds;'; + put 'call execute(''%meta_mapper(metaid=''!!&finish.coluri'; + put '!!",baseds=&baseds"'; + put '!!",direction=&direction"'; + put '!!",level=%eval(&level+1)"'; + put '!!",levelcheck=&levelcheck"'; + put '!!",job="!!jobname'; + put '!!",append=YES)");'; + put 'run;'; + put '%mend meta_mapper;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file'; + put '@brief fetch the metadata and server as dotlang'; + put 'Some nice ideas for formatting are available here:'; + put 'https://renenyffenegger.ch/notes/tools/Graphviz/examples/index'; put '

SAS Macros

'; put '@li mp_abort.sas'; - put '@li mf_isdir.sas'; - put '@li mp_dirlist.sas'; - put '@li mp_binarycopy.sas'; - put '@li mp_webin.sas'; + put '@li mf_getuser.sas'; + put '@li bitemporal_dataloader.sas'; + put '@li meta_mapper.sas'; + put '@version 9.4'; + put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; + put 'downloaded from here: https://4gl.uk/dcdeploy'; + put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; + put 'and may not be re-distributed or re-sold without the express permission of'; + put '4GL Apps Ltd.'; put '**/'; - put '%mp_abort(iftrue= (%mf_isdir(&path) = 0)'; - put ',mac=&_program..sas'; - put ',msg=%str(File path (&path) is not a valid directory)'; - put ')'; - put '/*'; - put 'Straighten up the _webin_xxx variables'; - put '*/'; - put '%mp_webin()'; - put '/* setup the output destination */'; - put '%let outloc=&path/&_webin_filename1;'; - put 'filename fileout "&outloc";'; - put '/* send the data */'; - put '%mp_binarycopy(inref=&_webin_fileref1, outref=fileout)'; - put '%mp_abort(iftrue= (&syscc ge 4)'; - put ',mac=&_program..sas'; - put ',msg=%str(Error occurred reading &_webin_fileref1 and writing to &outloc)'; - put ')'; - put '/* success - lets create a directory listing */'; - put '%mp_dirlist(path=&path,outds=dirlist)'; - put 'proc sort data=dirlist;'; - put 'by filepath;'; + put '%mpeinit()'; + put '%global column_id direction refresh;'; + put '/* enable col id and direction to be passed as url params */'; + put '%let exist=%sysfunc(exist(work.SASControlTable));'; + put '%let inds=%sysfunc(ifc(&exist=1,SASControlTable,_null_));'; + put '%let max_depth=50;'; + put '%put &=inds;'; + put 'data _null_;'; + put 'length max_depth 8;'; + put 'set &inds;'; + put 'call symputx(''column_id'',coluri);'; + put 'call symputx(''direction'',direction);'; + put 'call symputx(''refresh'',refresh);'; + put 'if max_depth>0 then call symputx(''max_depth'',max_depth);'; + put 'putlog (_all_)(=);'; put 'run;'; - put '/* now send it back to the frontend */'; + put '%put &=max_depth;'; + put 'data info;'; + put 'length coluri colname taburi tabname liburi libref $256;'; + put 'call missing(of _all_);'; + put 'if metadata_getattr("&column_id","Name",colname)<0 then do;'; + put 'putlog "Col &column_id not found";'; + put 'call symputx(''syscc'',''1234'');'; + put 'stop;'; + put 'end;'; + put 'rc=metadata_getnasn("&column_id","Table",1,taburi);'; + put 'rc=metadata_getattr(taburi,"Name",tabname);'; + put 'rc=metadata_getnasn(taburi,"TablePackage",1,liburi);'; + put 'rc=metadata_getattr(liburi,"Libref",libref);'; + put 'call symputx(''lib'',libref);'; + put 'call symputx(''tab'',tabname);'; + put 'call symputx(''col'',colname);'; + put 'run;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(syscc=&syscc)'; + put ')'; + put '%macro launcher();'; + put '/* check whether a lineage run already taken place */'; + put 'proc sql noprint;'; + put 'create table existing_data as'; + put 'select * from &mpelib..mpe_lineage_cols'; + put 'where col_id="&column_id"'; + put 'and direction="%substr(&direction,1,1)";'; + put '/* no data, so make some, and append it */'; + put '%if &sqlobs=0 or &refresh=1 %then %do;'; + put '%meta_mapper(metaid=&column_id'; + put ', direction=&direction /* either REVERSE or FORWARDS */'; + put ', baseds=work.allmap'; + put ', levelcheck=%eval(&max_depth-1)'; + put ')'; + put 'data append;'; + put 'length col_id $32 direction $1 modified_by $64;'; + put 'retain col_id "&column_id";'; + put 'retain direction "%substr(&direction,1,1)";'; + put '%global modified_by modified_dttm;'; + put '%let modified_dttm=%sysfunc(datetime());'; + put 'retain modified_dttm &modified_dttm;'; + put 'retain modified_by "%mf_getuser()";'; + put '%let modified_by=%mf_getuser();'; + put 'set allmap;'; + put 'drop hash;'; + put 'run;'; + put 'proc sort data=append out=appendme nodupkey;'; + put 'by col_id direction sourcecoluri targetcoluri map_type map_transform;'; + put 'run;'; + put '%bitemporal_dataloader(base_lib=&mpelib'; + put ',base_dsn=mpe_lineage_cols'; + put ',append_dsn=appendme'; + put ',PK=col_id direction sourcecoluri targetcoluri map_type map_transform'; + put ',etlsource=&_program'; + put ',loadtype=UPDATE'; + put ',close_vars=col_id direction'; + put ',dclib=&mpelib'; + put ')'; + put '%end;'; + put '%else %do;'; + put '/* data exists, so use it */'; + put 'data work.allmap(drop=modified_by modified_dttm);'; + put 'set existing_data(drop=col_id direction );'; + put 'if _n_=1 then do;'; + put 'call symputx(''modified_by'',modified_by,''g'');'; + put 'call symputx(''modified_dttm'',modified_dttm,''g'');'; + put 'end;'; + put 'run;'; + put '%end;'; + put '%mend launcher;'; + put '%launcher()'; + put '/* generate graphviz */'; + put 'filename tmp "%sysfunc(pathname(work))\GraphViz%sysfunc(datetime()).txt"'; + put 'lrecl=10000 encoding=''utf-8'';'; + put 'options noquotelenmax;'; + put '%macro fcmpconditional();'; + put '%if &sysver=9.3 and &sysscp=WIN %then %do;'; + put '/* nothing - as the FCMP function causes an exception err in this case */'; + put '%end;'; + put '%else %do;'; + put '/* prepare quick func to enable word wrapping of transformations */'; + put 'options cmplib=work.funcs;'; + put 'proc fcmp outlib=work.funcs.macrocore;'; + put 'function wordwrap(str $,cols,splitchar $) $;'; + put 'length outstr $32767 curstr $5000;'; + put 'base=0;'; + put 'put str=;'; + put 'do i=1 to countw(str,'' '','' '');'; + put 'curstr=scan(str,i,'' '');'; + put 'outstr=trim(outstr)!!'' ''!!curstr;'; + put 'base=base+length(curstr)+1;'; + put 'if base>cols then do;'; + put 'outstr=cats(outstr,splitchar);'; + put 'base=0;'; + put 'end;'; + put 'end;'; + put 'return (outstr);'; + put 'endsub;'; + put 'run;'; + put '%end;'; + put '%mend fcmpconditional;'; + put '%fcmpconditional()'; + put '/* prepare label with metadata */'; + put 'proc sql;'; + put 'create table jobs as select distinct jobname as job from work.allmap ;'; + put 'create table cols as select distinct upcase(scan(cat,1,''.-'')) as tmplib'; + put ',cats(calculated tmplib,''.'',upcase(scan(cat,2,''.''))) as tmptab'; + put ',cats(calculated tmptab,''.'',upcase(col)) as col'; + put 'from (select sourcetablename as cat, sourcecolname as col from work.allmap'; + put 'union select targettablename as cat, targetcolname as col from work.allmap )'; + put 'having findc(tmplib,''/\'')=0 and tmplib ne ''WORK'';'; + put 'create table files as select distinct file'; + put 'from (select sourcetablename as file from work.allmap'; + put 'where findc(sourcetablename,''/\'')>0'; + put 'union select targettablename as file from work.allmap'; + put 'where findc(targettablename,''/\'')>0'; + put ') ;'; + put 'create table libs as select distinct tmplib as lib from cols;'; + put 'create table tabs as select distinct tmptab as tab from cols;'; + put 'data _null_;'; + put 'file tmp;'; + put 'put ''digraph G {'; + put 'concentrate=true;'; + put 'node [style=filled,shape=plain];'; + put 'labelloc = "t";'; + put ''';'; + put 'label= "label=<'; + put ''; + put ''; + put ''; + put ''; + put ''; + put ''; + put '
&direction Lineage for &col
Library:
&libGenerated by:&modified_by
Table:&tabGenerated on:'; + put '%sysfunc(round(&modified_dttm,2),datetime19.)
>";'; + put 'put label;'; + put 'if "FORWARD"="&direction" then call symputx(''dirdesc'',''Impacted'');'; + put 'else call symputx(''dirdesc'',''Source'');'; + put '/* close out if there is no lineage */'; + put 'if nobs=0 then put ''x [label="No lineage found" shape=Mdiamond]}'';'; + put 'set work.allmap nobs=nobs;'; + put 'stop;'; + put 'run;'; + put 'data graphviz1;'; + put 'file tmp mod;'; + put 'length line arrow $1000 stab ttab slib tlib $100 sbox tbox tooltip $500;'; + put 'if _n_=1 then call missing(line, sbox, tbox, tooltip);'; + put 'set work.allmap ;'; + put 'sourceid=sourcecoluri;'; + put 'targetid=targetcoluri;'; + put 'if index(sourcetablename,'':'') then do;'; + put 'slib='''';'; + put 'stab=sourcetablename;'; + put 'end;'; + put 'else if map_transform=''File Reader'' then do;'; + put 'stab=scan(sourcetablename,-1,''/\'');'; + put 'slib=subpad(sourcetablename,1,length(sourcetablename)-length(stab));'; + put 'end;'; + put 'else do;'; + put 'slib=scan(sourcetablename,1,''.'');'; + put 'stab=scan(sourcetablename,2,''.'');'; + put 'end;'; + put 'if index(targettablename,'':'') then do;'; + put 'tlib='''';'; + put 'ttab=targettablename;'; + put 'end;'; + put 'else if map_transform=''File Reader'' then do;'; + put 'ttab=scan(targettablename,-1,''/\'');'; + put 'tlib=subpad(targettablename,1,length(targettablename)-length(ttab));'; + put 'end;'; + put 'else do;'; + put 'tlib=scan(targettablename,1,''.'');'; + put 'ttab=scan(targettablename,2,''.'');'; + put 'end;'; + put 'if trim(derived_rule) ne '''' then do;'; + put 'derived_rule=tranwrd(derived_rule,''"'',''\"'');'; + put '%macro quick();'; + put '%if "&sysver"="9.3" and "&sysscp"="WIN" %then %do;'; + put 'arrow=cats(''[color=Red, fontcolor=Red, penwidth="3", arrowsize="2",'''; + put ',''label=">>'',map_transform,''<<\n'',derived_rule,''"]'');'; + put '%end;'; + put '%else %do;'; + put 'arrow=cats(''[color=Red, fontcolor=Red, penwidth="3", arrowsize="2",'''; + put ',''label=">>'',map_transform,''<<\n'',wordwrap(derived_rule,24,''\n''),''"]'');'; + put '%end;'; + put '%mend quick; %quick()'; + put 'end;'; + put 'else arrow=cats(''[ label="'',map_transform,''"]'');'; + put 'source=quote(strip(sourceid));'; + put 'target=quote(strip(targetid));'; + put 'put '' '' source '' -> '' target arrow;'; + put 'run;'; + put 'data graphviz2 (keep=id tab lib col tooltip map_transform);'; + put 'set graphviz1 (rename=(source=id stab=tab slib=lib sourcecolname=col ))'; + put 'graphviz1 (rename=(target=id ttab=tab tlib=lib targetcolname=col ));'; + put 'if upcase(lib)=:''WORK'' then tooltip=cats('',tooltip="Job:'',jobname,''"'');'; + put 'else tooltip='''';'; + put 'run;'; + put 'proc sort data=graphviz2 out=graphviz3 noduprec; by _all_; run;'; + put 'data _null_;'; + put 'length shape $100 ;'; + put 'set graphviz3 end=last;'; + put 'file tmp mod;'; + put 'tab=tranwrd(tab,''\'',''\\'');'; + put 'if upcase(lib)=:''WORK'' then do;'; + put 'lib=''WORK'';'; + put 'put id ''[label=<
Table'' tab'; + put '''
Column'' col'; + put '''
> ,fillcolor=lightgrey, shape=" " '' tooltip '']'';'; + put 'end;'; + put 'else if map_transform=''File Reader'' then do;'; + put 'put id ''[label="Location: '' lib ''\nFile:'' tab ''\nColumn: '' col'; + put '''",shape=parallelogram, fillcolor="#00b300"'' tooltip '']'';'; + put 'end;'; + put 'else do;'; + put 'engine=scan(lib,2,''-'');'; + put 'lib=scan(lib,1,''-'');'; + put 'if engine=''BASE'' then fillcolour=''lightyellow '';'; + put 'else fillcolour=''lightblue'';'; + put 'shape='' shape=cylinder, fillcolor= ''!!fillcolour;'; + put 'put id ''[label=<
Library'' lib'; + put '''
Table'' tab'; + put '''
Column'' col'; + put '''
> ,'' shape tooltip '']'';'; + put 'end;'; + put 'run;'; + put 'data _null_;'; + put 'file tmp mod;'; + put '/* close out if records exist */'; + put 'set work.allmap;'; + put 'put ''}'';'; + put 'stop;'; + put 'run;'; + put 'data flatdata;'; + put 'length type $8 item $256;'; + put 'keep type item;'; + put 'set cols(in=cols) tabs(in=tabs) files(in=files) libs(in=libs) jobs(in=jobs);'; + put 'if cols then do;'; + put 'type=''Column'';'; + put 'item=col;'; + put 'end;'; + put 'else if tabs then do;'; + put 'type=''Table'';'; + put 'item=tab;'; + put 'end;'; + put 'else if files then do;'; + put 'type=''File'';'; + put 'item=file;'; + put 'end;'; + put 'else if libs then do;'; + put 'type=''Library'';'; + put 'item=lib;'; + put 'end;'; + put 'else if jobs then do;'; + put 'type=''Job'';'; + put 'item=job;'; + put 'end;'; + put 'run;'; + put 'data fromSAS;'; + put 'infile tmp end=last;'; + put 'file tmp;'; + put 'input ;'; + put 'string=_infile_;'; + put 'put string;'; + put 'run;'; + put 'filename tmp clear;'; + put '/* get list of IDs so frontend can make a clickable list */'; + put 'proc sql;'; + put 'create table ids as select distinct id from graphviz3;'; put '%webout(OPEN)'; - put '%webout(OBJ,dirlist)'; + put '%webout(OBJ,fromSAS)'; + put '%webout(OBJ,ids,dslabel=clickableIDS)'; + put '%webout(OBJ,info)'; + put '%webout(OBJ,flatdata)'; + put '%webout(CLOSE)'; + put '%mpeterm()'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=fetchtablelineage; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Files

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as FMTCAT,'; + put 'FMTNAME'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'LENGTH num'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.length as MAXW'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put ')))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] workobs= (0) When set to a positive integer, will create a new'; + put 'output object (WORK) which contains this number of observations from all'; + put 'tables in the WORK library.'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX,workobs=0'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&workobs) > 0 %then %do;'; + put '/* if debug mode, send back first XX records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10'; + put ',maxobs=&workobs'; + put ')'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file'; + put '@brief fetch Table Lineage for SAS 9'; + put 'Some nice ideas for formatting are available here:'; + put 'https://renenyffenegger.ch/notes/tools/Graphviz/examples/index'; + put '

SAS Macros

'; + put '@li mpeinit.sas'; + put '@version 9.3'; + put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; + put 'downloaded from here: https://4gl.uk/dcdeploy'; + put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; + put 'and may not be re-distributed or re-sold without the express permission of'; + put '4GL Apps Ltd.'; + put '**/'; + put '%mpeinit()'; + put '%global table_id direction graphOrientation;'; + put '/* enable table id and direction to be passed as url params */'; + put '%let exist=%sysfunc(exist(work.SASControlTable));'; + put '%let inds=%sysfunc(ifc(&exist=1,SASControlTable,_null_));'; + put '%put &=inds;'; + put '%let max_depth=50;'; + put 'data _null_;'; + put 'length max_depth 8;'; + put 'set &inds;'; + put 'call symputx(''table_id'',table_id);'; + put 'call symputx(''direction'',direction);'; + put 'call symputx(''graphOrientation'',''LR'');'; + put 'if max_depth>0 then call symputx(''max_depth'',max_depth);'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%put &=max_depth;'; + put '%mp_abort(iftrue= (&table_id=undefined)'; + put ',mac=&_program'; + put ',msg=%str(Table_id UNDEFINED provided from frontend)'; + put ')'; + put 'data work.info;'; + put 'length tableid tablename liburi $64 libref $8;'; + put 'drop rc;'; + put 'tableid="&table_id";'; + put 'call missing(liburi);'; + put 'rc=metadata_getattr(tableid,"Name",tablename);'; + put 'if metadata_getnasn(tableid,"TablePackage",1,liburi)>0 then do;'; + put 'rc=metadata_getattr(liburi,"Libref",libref);'; + put 'libref=upcase(libref);'; + put 'end;'; + put 'tablename=upcase(tablename);'; + put 'if missing(libref) then libref=''nolib'';'; + put 'call symputx(''libds'',cats(libref,''.'',tablename));'; + put 'run;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(syscc=&syscc)'; + put ')'; + put '%let src=%sysfunc(ifc(&direction=REVERSE,src,tgt));'; + put '%let tgt=%sysfunc(ifc(&direction=REVERSE,tgt,src));'; + put 'data work.sourcetable/view=work.sourcetable;'; + put 'set &mpelib..MPE_LINEAGE_TABS;'; + put 'where &dc_dttmtfmt. lt tx_to ;'; + put 'drop tx_from tx_to;'; + put 'run;'; + put '%macro recursivejoin(iter=0'; + put ',maxiter=&max_depth /* avoid infinite loop */'; + put ');'; + put '%if &iter=0 %then %do;'; + put 'data work.baseds ;'; + put 'retain level 0;'; + put 'set work.sourcetable;'; + put 'where &tgt.tableid="&table_id";'; + put 'run;'; + put '%let iter=1;'; + put 'proc sql;'; + put '%end;'; + put '%else %if &iter>&maxiter %then %return;'; + put 'create table work.appendds as'; + put 'select distinct &iter as level'; + put ',b.*'; + put 'from work.baseds a'; + put 'left join work.sourcetable b'; + put 'on a.&src.tableid=b.&tgt.tableid'; + put 'where a.level=%eval(&iter.-1)'; + put 'and b.&src.tableid is not null'; + put 'and a.&src.tableid is not null'; + put 'and a.&src.tableid ne ''N/A'';'; + put '%let obs=&sqlobs;'; + put 'insert into work.baseds select * from work.appendds;'; + put '%if &obs %then %do;'; + put '%recursivejoin(iter=%eval(&iter.+1) )'; + put '%end;'; + put '%mend recursivejoin;'; + put '%recursivejoin()'; + put 'proc sql;'; + put 'create table work.final as'; + put 'select distinct *'; + put 'from work.baseds(drop=level)'; + put 'where jobid is not null;'; + put '/* generate graphviz */'; + put 'filename tmp "%sysfunc(pathname(work))\GraphViz%sysfunc(datetime()).txt"'; + put 'lrecl=10000 encoding=''utf-8'';'; + put '/* prepare label with metadata */'; + put 'proc sql;'; + put 'create table work.jobs as'; + put 'select distinct jobid'; + put ', jobname'; + put ',quote(cats(jobid))||'' [label=''||quote(cats(jobname))||''];'' as line'; + put 'from work.final;'; + put 'create table work.tables as'; + put 'select distinct &src.tableid as tableid'; + put ',&src.tablename as tablename'; + put ',&src.libref as libref'; + put 'from work.final'; + put 'where &src.tableid ne ''N/A'''; + put 'union select'; + put '&tgt.tableid as tableid'; + put ',&tgt.tablename as tablename'; + put ',&tgt.libref as libref'; + put 'from work.final'; + put 'where &tgt.tableid ne ''N/A'''; + put 'order by libref, tablename;'; + put 'create table idlookup as'; + put 'select tableid as metaid'; + put ',''TABLE'' as metatype'; + put ',cats(libref,''.'',tablename) as metaname'; + put 'from work.tables'; + put 'union'; + put 'select jobid as metaid'; + put ',''JOB'' as metatype'; + put ',jobname as metaname'; + put 'from work.jobs'; + put 'order by metaid;'; + put 'data CRAYONS;'; + put 'length attribute value $8;'; + put 'infile datalines4 dsd;'; + put 'input attribute value;'; + put 'call symput(cats(''col'',_n_),quote(trim(value)));'; + put 'datalines;'; + put 'red,#e6194b'; + put 'green,#3cb44b'; + put 'blue,#4363d8'; + put 'orange,#f58231'; + put 'purple,#911eb4'; + put 'cyan,#46f0f0'; + put 'magenta,#f032e6'; + put 'lime,#bcf60c'; + put 'pink,#fabebe'; + put 'teal,#008080'; + put 'lavender,#e6beff'; + put 'brown,#9a6324'; + put 'beige,#fffac8'; + put 'maroon,#800000'; + put 'mint,#aaffc3'; + put 'olive,#808000'; + put 'apricot,#ffd8b1'; + put 'navy,#000075'; + put 'gray,#808080'; + put 'black,#00000'; + put 'yellow,#ffe119'; + put 'white,#ffffff'; + put ';;;;'; + put 'run;'; + put 'proc sort data=work.tables out=work.libs nodupkey;'; + put 'by libref;'; + put 'run;'; + put 'data work.alllibs;'; + put 'set work.libs end=last;'; + put 'length line $1000. ;'; + put 'crayon=symget(cats(''col'',_n_));'; + put 'call symputx(libref,crayon);'; + put 'if _n_=1 then do;'; + put 'line=''subgraph cluster_libs { label="Libraries";'';output;'; + put 'end;'; + put 'line=cats(libref)!!'' [label=''||quote(cats(libref))||''; style="filled"; color='''; + put '||cats(crayon)||'', shape = Mrecord, fontcolor=white]'';output;'; + put 'if last then do;'; + put 'line=''}'';output;'; + put 'end;'; + put 'run;'; + put 'data alltables;'; + put 'length line $1000. ;'; + put 'set work.tables;'; + put 'crayon=symget(libref);'; + put 'line=quote(cats(tableid))||'' [label="''||cats(tablename)'; + put '!!''", color=''!!cats(crayon)'; + put '!!'', shape=cylinder,style=filled,fontcolor=white];'';'; + put 'output;'; + put 'run;'; + put 'proc sort'; + put 'data=final(keep=&src.tableid jobid &src.libref) out=&src.relations nodupkey;'; + put 'by &src.tableid jobid;'; + put 'proc sort'; + put 'data=final(keep=&tgt.tableid jobid &tgt.libref) out=&tgt.relations nodupkey;'; + put 'by jobid &tgt.tableid;'; + put 'run;'; + put 'data srcrelations;'; + put 'set srcrelations;'; + put 'length line $1000;'; + put 'where srctableid ne ''N/A'';'; + put 'line=cats('; + put '''"'',cats(srctableid),''" -> "'',jobid,''" [color='',symget(srclibref),''];'''; + put ');'; + put 'data tgtrelations;'; + put 'set tgtrelations;'; + put 'where tgttableid ne ''N/A'';'; + put 'length line $1000;'; + put 'line=cats('; + put '''"'',cats(jobid),''" -> "'',tgttableid,''" [color='',symget(tgtlibref),''];'''; + put ');'; + put 'run;'; + put 'data finalfinal;'; + put 'set work.alllibs(keep=line) work.alltables (keep=line) work.jobs(keep=line)'; + put 'work.&src.relations(keep=line) work.&tgt.relations(keep=line) end=last;'; + put 'if _N_ = 1 then do;'; + put 'firstline=line;'; + put 'line=''strict digraph "''!!"&libds"!!''" {''; output;'; + put 'line="rankdir=&graphOrientation; nodesep=0.5; node [shape = octagon];";output;'; + put 'line=firstline;'; + put 'end;'; + put 'output;'; + put 'if last then do;'; + put 'line=''}'';'; + put 'output;'; + put 'end;'; + put 'drop firstline;'; + put 'run;'; + put '%webout(OPEN)'; + put '%webout(OBJ,finalfinal)'; + put '%webout(OBJ,info)'; + put '%webout(OBJ,final,dslabel=flatdata)'; + put '%webout(OBJ,idlookup)'; + put '%webout(CLOSE)'; + put '%mpeterm()'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=getmetacols; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Files

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as FMTCAT,'; + put 'FMTNAME'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'LENGTH num'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.length as MAXW'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put ')))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] workobs= (0) When set to a positive integer, will create a new'; + put 'output object (WORK) which contains this number of observations from all'; + put 'tables in the WORK library.'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX,workobs=0'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&workobs) > 0 %then %do;'; + put '/* if debug mode, send back first XX records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10'; + put ',maxobs=&workobs'; + put ')'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '%macro mm_getcols('; + put 'tableuri='; + put ',outds=work.mm_getcols'; + put ')/*/STORE SOURCE*/;'; + put 'data &outds;'; + put 'keep col: SAS:;'; + put 'length assoc uri coluri colname coldesc SASColumnType SASFormat SASInformat'; + put 'SASPrecision SASColumnLength $256;'; + put 'call missing (of _all_);'; + put 'uri=symget(''tableuri'');'; + put 'n=1;'; + put 'do while (metadata_getnasn(uri,''Columns'',n,coluri)>0);'; + put 'rc3=metadata_getattr(coluri,"Name",colname);'; + put 'rc3=metadata_getattr(coluri,"Desc",coldesc);'; + put 'rc4=metadata_getattr(coluri,"SASColumnType",SASColumnType);'; + put 'rc5=metadata_getattr(coluri,"SASFormat",SASFormat);'; + put 'rc6=metadata_getattr(coluri,"SASInformat",SASInformat);'; + put 'rc7=metadata_getattr(coluri,"SASPrecision",SASPrecision);'; + put 'rc8=metadata_getattr(coluri,"SASColumnLength",SASColumnLength);'; + put 'output;'; + put 'call missing(colname,coldesc,SASColumnType,SASFormat,SASInformat'; + put ',SASPrecision,SASColumnLength);'; + put 'n+1;'; + put 'end;'; + put 'run;'; + put 'proc sort;'; + put 'by colname;'; + put 'run;'; + put '%mend mm_getcols;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file getmetacols.sas'; + put '@brief List the cols as defined in metadata'; + put '@details Provide a table uri and get list of columns'; + put '

SAS Macros

'; + put '@li mm_getcols.sas'; + put '@li mp_abort.sas'; + put '@version 9.2'; + put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; + put 'downloaded from here: https://4gl.uk/dcdeploy'; + put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; + put 'and may not be re-distributed or re-sold without the express permission of'; + put '4GL Apps Ltd.'; + put '**/'; + put '%mpeinit()'; + put '%global tableuri;'; + put '%let exist=%sysfunc(exist(work.SASControlTable));'; + put '%let inds=%sysfunc(ifc(&exist=1,SASControlTable,_null_));'; + put '%put &=inds;'; + put 'data _null_;'; + put 'set &inds;'; + put 'call symputx(''tableuri'',scan(tableuri,-1,''\''));'; + put 'run;'; + put '%put &=tableuri;'; + put '/* load parameters */'; + put '%mm_getcols(tableuri=&tableuri,outds=metacols)'; + put 'data out;'; + put 'set metacols;'; + put 'keep col:;'; + put 'run;'; + put '%webout(OPEN)'; + put '%webout(OBJ,out,dslabel=metacols)'; + put '%webout(CLOSE)'; + put '%mpeterm()'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=getmetatables; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Files

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as FMTCAT,'; + put 'FMTNAME'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'LENGTH num'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.length as MAXW'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put ')))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] workobs= (0) When set to a positive integer, will create a new'; + put 'output object (WORK) which contains this number of observations from all'; + put 'tables in the WORK library.'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX,workobs=0'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&workobs) > 0 %then %do;'; + put '/* if debug mode, send back first XX records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10'; + put ',maxobs=&workobs'; + put ')'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '%macro mm_gettables('; + put 'uri='; + put ',outds=work.mm_gettables'; + put ',getauth=YES'; + put ')/*/STORE SOURCE*/;'; + put 'data &outds;'; + put 'length uri serveruri conn_uri domainuri libname ServerContext AuthDomain'; + put 'path_schema usingpkguri type tableuri $256 id $17'; + put 'libdesc $200 libref engine $8 IsDBMSLibname IsPreassigned $1'; + put 'tablename $50 /* metadata table names can be longer than $32 */'; + put ';'; + put 'keep libname libdesc libref engine ServerContext path_schema AuthDomain'; + put 'tableuri tablename IsPreassigned IsDBMSLibname id;'; + put 'call missing (of _all_);'; + put 'uri=symget(''uri'');'; + put 'rc= metadata_getattr(uri, "Name", libname);'; + put 'if rc <0 then do;'; + put 'put ''The library is not defined in this metadata repository.'';'; + put 'stop;'; + put 'end;'; + put 'rc= metadata_getattr(uri, "Desc", libdesc);'; + put 'rc= metadata_getattr(uri, "Libref", libref);'; + put 'rc= metadata_getattr(uri, "Engine", engine);'; + put 'rc= metadata_getattr(uri, "IsDBMSLibname", IsDBMSLibname);'; + put 'rc= metadata_getattr(uri, "IsPreassigned", IsPreassigned);'; + put 'rc= metadata_getattr(uri, "Id", Id);'; + put '/*** Get associated ServerContext ***/'; + put 'rc= metadata_getnasn(uri, "DeployedComponents", 1, serveruri);'; + put 'if rc > 0 then rc2= metadata_getattr(serveruri, "Name", ServerContext);'; + put 'else ServerContext='''';'; + put '/*** If the library is a DBMS library, get the Authentication Domain'; + put 'associated with the DBMS connection credentials ***/'; + put 'if IsDBMSLibname="1" and "&getauth"=''YES'' then do;'; + put 'rc= metadata_getnasn(uri, "LibraryConnection", 1, conn_uri);'; + put 'if rc>0 then do;'; + put 'rc2= metadata_getnasn(conn_uri, "Domain", 1, domainuri);'; + put 'if rc2>0 then rc3= metadata_getattr(domainuri, "Name", AuthDomain);'; + put 'end;'; + put 'end;'; + put '/*** Get the path/database schema for this library ***/'; + put 'rc=metadata_getnasn(uri, "UsingPackages", 1, usingpkguri);'; + put 'if rc>0 then do;'; + put 'rc=metadata_resolve(usingpkguri,type,id);'; + put 'if type=''Directory'' then'; + put 'rc=metadata_getattr(usingpkguri, "DirectoryName", path_schema);'; + put 'else if type=''DatabaseSchema'' then'; + put 'rc=metadata_getattr(usingpkguri, "Name", path_schema);'; + put 'else path_schema="unknown";'; + put 'end;'; + put '/*** Get the tables associated with this library ***/'; + put '/*** If DBMS, tables are associated with DatabaseSchema ***/'; + put 'if type=''DatabaseSchema'' then do;'; + put 't=1;'; + put 'ntab=metadata_getnasn(usingpkguri, "Tables", t, tableuri);'; + put 'if ntab>0 then do t=1 to ntab;'; + put 'tableuri='''';'; + put 'tablename='''';'; + put 'ntab=metadata_getnasn(usingpkguri, "Tables", t, tableuri);'; + put 'tabrc= metadata_getattr(tableuri, "Name", tablename);'; + put 'output;'; + put 'end;'; + put 'else put ''Library '' libname '' has no tables registered'';'; + put 'end;'; + put 'else if type in (''Directory'',''SASLibrary'') then do;'; + put 't=1;'; + put 'ntab=metadata_getnasn(uri, "Tables", t, tableuri);'; + put 'if ntab>0 then do t=1 to ntab;'; + put 'tableuri='''';'; + put 'tablename='''';'; + put 'ntab=metadata_getnasn(uri, "Tables", t, tableuri);'; + put 'tabrc= metadata_getattr(tableuri, "Name", tablename);'; + put 'output;'; + put 'end;'; + put 'else put ''Library '' libname '' has no tables registered'';'; + put 'end;'; + put 'run;'; + put 'proc sort;'; + put 'by tablename tableuri;'; + put 'run;'; + put '%mend mm_gettables;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file getmetatables.sas'; + put '@brief List the tables as defined in metadata'; + put '@details Provide a library uri and get list of tables'; + put '

SAS Macros

'; + put '@li mm_gettables.sas'; + put '@li mp_abort.sas'; + put '@version 9.2'; + put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; + put 'downloaded from here: https://4gl.uk/dcdeploy'; + put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; + put 'and may not be re-distributed or re-sold without the express permission of'; + put '4GL Apps Ltd.'; + put '**/'; + put '%mpeinit()'; + put '%global liburi;'; + put '%let exist=%sysfunc(exist(work.SASControlTable));'; + put '%let inds=%sysfunc(ifc(&exist=1,SASControlTable,_null_));'; + put '%put &=inds;'; + put 'data _null_;'; + put 'set &inds;'; + put 'call symputx(''liburi'',liburi);'; + put 'run;'; + put '/* load parameters */'; + put '%mm_gettables(uri=&liburi,outds=metatables,getauth=NO)'; + put 'data out;'; + put 'set metatables;'; + put 'keep table:;'; + put 'run;'; + put '%webout(OPEN)'; + put '%webout(OBJ,metatables)'; + put '%webout(CLOSE)'; + put '%mpeterm()'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let path=services/metanav; + +%let service=metadetails; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Files

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as FMTCAT,'; + put 'FMTNAME'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'LENGTH num'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.length as MAXW'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put ')))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] workobs= (0) When set to a positive integer, will create a new'; + put 'output object (WORK) which contains this number of observations from all'; + put 'tables in the WORK library.'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX,workobs=0'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&workobs) > 0 %then %do;'; + put '/* if debug mode, send back first XX records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10'; + put ',maxobs=&workobs'; + put ')'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '%macro mpe_getvars(injs,outds);'; + put '/* load parameters */'; + put 'data _null_;'; + put '__dummychar='''';__dummynum=0;'; + put 'set &outds;'; + put 'array __charvals _character_;'; + put 'do over __charvals;'; + put 'call symputx(vname(__charvals),__charvals,''g'');'; + put 'end;'; + put 'array __numvals _numeric_;'; + put 'do over __numvals;'; + put 'call symputx(vname(__numvals),__numvals,''g'');'; + put 'end;'; + put 'run;'; + put '%mend mpe_getvars;'; + put '%macro mm_getdetails(uri'; + put ',outattrs=work.attributes'; + put ',outassocs=work.associations'; + put ')/*/STORE SOURCE*/;'; + put 'data &outassocs;'; + put 'keep assoc assocuri name;'; + put 'length assoc assocuri name $256;'; + put 'call missing(of _all_);'; + put 'rc1=1;n1=1;'; + put 'do while(rc1>0);'; + put '/* Walk through all possible associations of this object. */'; + put 'rc1=metadata_getnasl("&uri",n1,assoc);'; + put 'rc2=1;n2=1;'; + put 'do while(rc2>0);'; + put '/* Walk through all the associations on this machine object. */'; + put 'rc2=metadata_getnasn("&uri",trim(assoc),n2,assocuri);'; + put 'if (rc2>0) then do;'; + put 'rc3=metadata_getattr(assocuri,"Name",name);'; + put 'output;'; + put 'end;'; + put 'call missing(name,assocuri);'; + put 'n2+1;'; + put 'end;'; + put 'n1+1;'; + put 'end;'; + put 'run;'; + put 'proc sort;'; + put 'by assoc name;'; + put 'run;'; + put 'data &outattrs;'; + put 'keep type name value;'; + put 'length type $4 name $256 value $32767;'; + put 'rc1=1;n1=1;type=''Prop'';name='''';value='''';'; + put 'do while(rc1>0);'; + put 'rc1=metadata_getnprp("&uri",n1,name,value);'; + put 'if rc1>0 then output;'; + put 'n1+1;'; + put 'end;'; + put 'rc1=1;n1=1;type=''Attr'';'; + put 'do while(rc1>0);'; + put 'rc1=metadata_getnatr("&uri",n1,name,value);'; + put 'if rc1>0 then output;'; + put 'n1+1;'; + put 'end;'; + put 'run;'; + put 'proc sort;'; + put 'by type name;'; + put 'run;'; + put '%mend mm_getdetails;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file metadetails.sas'; + put '@brief Retrieves metadata attributes and associations for a particular object'; + put '@details'; + put '

SAS Macros

'; + put '@li mm_getdetails.sas'; + put '@li mpe_getvars.sas'; + put '@li mpeinit.sas'; + put '@version 9.3'; + put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; + put 'downloaded from here: https://4gl.uk/dcdeploy'; + put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; + put 'and may not be re-distributed or re-sold without the express permission of'; + put '4GL Apps Ltd.'; + put '**/'; + put '%mpeinit()'; + put '%mpe_getvars(SASControlTable, SASControlTable)'; + put '%mm_getdetails(&objecturi'; + put ',outattrs=work.attributes'; + put ',outassocs=work.associations'; + put ')'; + put '%webout(OPEN)'; + put '%webout(OBJ,attributes)'; + put '%webout(OBJ,associations)'; + put '%webout(CLOSE)'; + put '%mpeterm()'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=metaobjects; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Files

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as FMTCAT,'; + put 'FMTNAME'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'LENGTH num'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.length as MAXW'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put ')))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] workobs= (0) When set to a positive integer, will create a new'; + put 'output object (WORK) which contains this number of observations from all'; + put 'tables in the WORK library.'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX,workobs=0'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&workobs) > 0 %then %do;'; + put '/* if debug mode, send back first XX records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10'; + put ',maxobs=&workobs'; + put ')'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '%macro mpe_getvars(injs,outds);'; + put '/* load parameters */'; + put 'data _null_;'; + put '__dummychar='''';__dummynum=0;'; + put 'set &outds;'; + put 'array __charvals _character_;'; + put 'do over __charvals;'; + put 'call symputx(vname(__charvals),__charvals,''g'');'; + put 'end;'; + put 'array __numvals _numeric_;'; + put 'do over __numvals;'; + put 'call symputx(vname(__numvals),__numvals,''g'');'; + put 'end;'; + put 'run;'; + put '%mend mpe_getvars;'; + put '%macro mm_getobjects('; + put 'type=SASLibrary'; + put ',outds=work.mm_getobjects'; + put ')/*/STORE SOURCE*/;'; + put '* use a temporary fileref to hold the response;'; + put 'filename response temp;'; + put '/* get list of libraries */'; + put 'proc metadata in='; + put '"$METAREPOSITORY'; + put '&typeSAS'; + put '0"'; + put 'out=response;'; + put 'run;'; + put '/* write the response to the log for debugging */'; + put 'data _null_;'; + put 'infile response lrecl=1048576;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '/* create an XML map to read the response */'; + put 'filename sxlemap temp;'; + put 'data _null_;'; + put 'file sxlemap;'; + put 'put '''';'; + put 'put "/GetMetadataObjects/Objects/&type";'; + put 'put "";'; + put 'put '''';'; + put 'put "/GetMetadataObjects/Objects/&type/@Id";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put "/GetMetadataObjects/Objects/&type/@Name";'; + put 'put "characterstring200";'; + put 'put ''
'';'; + put 'run;'; + put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; + put 'proc sort data= _XML_.SASObjects out=&outds;'; + put 'by name;'; + put 'run;'; + put '/* clear references */'; + put 'filename sxlemap clear;'; + put 'filename response clear;'; + put 'libname _XML_ clear;'; + put '%mend mm_getobjects;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file metaobjects.sas'; + put '@brief Retrieves list of objects for a particular metadata type'; + put '@details'; + put '

SAS Macros

'; + put '@li mm_getobjects.sas'; + put '@li mpe_getvars.sas'; + put '@li mpeinit.sas'; + put '@version 9.3'; + put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; + put 'downloaded from here: https://4gl.uk/dcdeploy'; + put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; + put 'and may not be re-distributed or re-sold without the express permission of'; + put '4GL Apps Ltd.'; + put '**/'; + put '%mpeinit()'; + put '%mpe_getvars(SASControlTable, SASControlTable)'; + put 'options metarepository=&repo;'; + put '%mm_getobjects('; + put 'type=&metatype'; + put ',outds=work.objects'; + put ')'; + put '%webout(OPEN)'; + put '%webout(OBJ,objects)'; + put '%webout(CLOSE)'; + put '%mpeterm()'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=metarepos; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Files

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as FMTCAT,'; + put 'FMTNAME'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'LENGTH num'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.length as MAXW'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put ')))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] workobs= (0) When set to a positive integer, will create a new'; + put 'output object (WORK) which contains this number of observations from all'; + put 'tables in the WORK library.'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX,workobs=0'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&workobs) > 0 %then %do;'; + put '/* if debug mode, send back first XX records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10'; + put ',maxobs=&workobs'; + put ')'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '%macro mm_getrepos('; + put 'outds=work.mm_getrepos'; + put ')/*/STORE SOURCE*/;'; + put '* use a temporary fileref to hold the response;'; + put 'filename response temp;'; + put '/* get list of libraries */'; + put 'proc metadata in='; + put '"1"'; + put 'out=response;'; + put 'run;'; + put '/* write the response to the log for debugging */'; + put '/*'; + put 'data _null_;'; + put 'infile response lrecl=1048576;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '*/'; + put '/* create an XML map to read the response */'; + put 'filename sxlemap temp;'; + put 'data _null_;'; + put 'file sxlemap;'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository";'; + put 'put "";'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Id";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Name";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Desc";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@DefaultNS";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryType";'; + put 'put "characterstring20";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryFormat";'; + put 'put "characterstring10";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@Access";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@CurrentAccess";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@PauseState";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Path";'; + put 'put "";'; + put 'put "characterstring256";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Engine";'; + put 'put "";'; + put 'put "characterstring8";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Options";'; + put 'put "";'; + put 'put "characterstring32";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataCreated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataUpdated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put ''
'';'; + put 'run;'; + put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; + put 'proc sort data= _XML_.SASRepos out=&outds;'; + put 'by name;'; + put 'run;'; + put '/* clear references */'; + put 'filename sxlemap clear;'; + put 'filename response clear;'; + put 'libname _XML_ clear;'; + put '%mend mm_getrepos;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file metarepos.sas'; + put '@brief Retrieves list of metadata types'; + put '@details'; + put '

SAS Macros

'; + put '@li mm_getrepos.sas'; + put '@version 9.3'; + put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; + put 'downloaded from here: https://4gl.uk/dcdeploy'; + put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; + put 'and may not be re-distributed or re-sold without the express permission of'; + put '4GL Apps Ltd.'; + put '**/'; + put '%mpeinit()'; + put '%mm_getrepos(outds=work.repos)'; + put 'data outrepos;'; + put 'set repos;'; + put 'if repositorytype in (''CUSTOM'',''FOUNDATION'');'; + put 'keep id name description;'; + put 'run;'; + put '%webout(OPEN)'; + put '%webout(OBJ,outrepos)'; + put '%webout(CLOSE)'; + put '%mpeterm()'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=metatypes; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Files

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as FMTCAT,'; + put 'FMTNAME'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'LENGTH num'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.length as MAXW'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put ')))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] workobs= (0) When set to a positive integer, will create a new'; + put 'output object (WORK) which contains this number of observations from all'; + put 'tables in the WORK library.'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX,workobs=0'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&workobs) > 0 %then %do;'; + put '/* if debug mode, send back first XX records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10'; + put ',maxobs=&workobs'; + put ')'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '%macro mm_gettypes('; + put 'outds=work.mm_gettypes'; + put ')/*/STORE SOURCE*/;'; + put '* use a temporary fileref to hold the response;'; + put 'filename response temp;'; + put '/* get list of libraries */'; + put 'proc metadata in='; + put ''''; + put ''; + put 'SAS'; + put ''; + put '2048'; + put ''; + put ''; + put '$METAREPOSITORY'; + put ''; + put ''''; + put 'out=response;'; + put 'run;'; + put '/* write the response to the log for debugging */'; + put 'data _null_;'; + put 'infile response lrecl=1048576;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '/* create an XML map to read the response */'; + put 'filename sxlemap temp;'; + put 'data _null_;'; + put 'file sxlemap;'; + put 'put '''';'; + put 'put ''//GetTypes/Types/Type'';'; + put 'put ''64'';'; + put 'put ''//GetTypes/Types/Type/@Id'';'; + put 'put ''256'';'; + put 'put ''//GetTypes/Types/Type/@Desc'';'; + put 'put '''';'; + put 'put ''//GetTypes/Types/Type/@HasSubtypes'';'; + put 'put ''
'';'; + put 'run;'; + put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; + put '/* sort the response by library name */'; + put 'proc sort data=_XML_.sastypes out=&outds;'; + put 'by id;'; + put 'run;'; + put '/* clear references */'; + put 'filename sxlemap clear;'; + put 'filename response clear;'; + put 'libname _XML_ clear;'; + put '%mend mm_gettypes;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file metatypes.sas'; + put '@brief Retrieves list of metadata types'; + put '@details'; + put '

SAS Macros

'; + put '@li mm_gettypes.sas'; + put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; + put 'and may not be re-distributed or re-sold without the express permission of'; + put '4GL Apps Ltd.'; + put '**/'; + put '%mpeinit()'; + put '%mm_gettypes(outds=work.types)'; + put '%webout(OPEN)'; + put '%webout(OBJ,types)'; + put '%webout(CLOSE)'; + put '%mpeterm()'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let path=services/public; + +%let service=getchangeinfo; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Files

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as FMTCAT,'; + put 'FMTNAME'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'LENGTH num'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.length as MAXW'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put ')))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] workobs= (0) When set to a positive integer, will create a new'; + put 'output object (WORK) which contains this number of observations from all'; + put 'tables in the WORK library.'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX,workobs=0'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&workobs) > 0 %then %do;'; + put '/* if debug mode, send back first XX records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10'; + put ',maxobs=&workobs'; + put ')'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '%macro mm_assignlib('; + put 'libref'; + put ',mAbort=HARD'; + put ')/*/STORE SOURCE*/;'; + put '%local mp_abort msg;'; + put '%let mp_abort=0;'; + put '%if %sysfunc(libref(&libref)) %then %do;'; + put 'data _null_;'; + put 'length liburi LibName msg $200;'; + put 'call missing(of _all_);'; + put 'nobj=metadata_getnobj("omsobj:SASLibrary?@Libref=''&libref''",1,liburi);'; + put 'if nobj=1 then do;'; + put 'rc=metadata_getattr(liburi,"Name",LibName);'; + put '/* now try and assign it */'; + put 'if libname("&libref",,''meta'',cats(''liburi="'',liburi,''";'')) ne 0 then do;'; + put 'putlog "&libref could not be assigned";'; + put 'putlog liburi=;'; + put '/**'; + put '* Fetch the system message for display in the abort modal. This is'; + put '* not always helpful though. One example, previously received:'; + put '* NOTE: Libref XX refers to the same library metadata as libref XX.'; + put '*/'; + put 'msg=sysmsg();'; + put 'if msg=:''ERROR: Libref SAVE is not assigned.'' then do;'; + put 'msg=catx(" ",'; + put '"Could not assign %upcase(&libref).",'; + put '"Please check metadata permissions! Libname:",libname,'; + put '"Liburi:",liburi'; + put ');'; + put 'end;'; + put 'else if msg="ERROR: User does not have appropriate authorization "!!'; + put '"level for library SAVE."'; + put 'then do;'; + put 'msg=catx(" ",'; + put '"ERROR: User does not have appropriate authorization level",'; + put '"for library %upcase(&libref), libname:",libname,'; + put '"Liburi:",liburi'; + put ');'; + put 'end;'; + put 'call symputx(''msg'',msg,''l'');'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1,''l'');'; + put 'end;'; + put 'else do;'; + put 'put (_all_)(=);'; + put 'call symputx(''libname'',libname,''L'');'; + put 'call symputx(''liburi'',liburi,''L'');'; + put 'end;'; + put 'end;'; + put 'else if nobj>1 then do;'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; + put 'call symputx(''msg'',"More than one library with libref=&libref");'; + put 'end;'; + put 'else do;'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; + put 'call symputx(''msg'',"Library &libref not found in metadata");'; + put 'end;'; + put 'run;'; + put '%put NOTE: &msg;'; + put '%end;'; + put '%else %do;'; + put '%put NOTE: Library &libref is already assigned;'; + put '%end;'; + put '%mp_abort(iftrue= (&mp_abort=1)'; + put ',mac=mm_assignlib.sas'; + put ',msg=%superq(msg)'; + put ')'; + put '%mend mm_assignlib;'; + put '/** @cond */'; + put '%macro mf_getengine(libref'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid engnum rc engine;'; + put '/* in case the parameter is a libref.tablename, pull off just the libref */'; + put '%let libref = %upcase(%scan(&libref, 1, %str(.)));'; + put '%let dsid=%sysfunc('; + put 'open(sashelp.vlibnam(where=(libname="%upcase(&libref)")),i)'; + put ');'; + put '%if (&dsid ^= 0) %then %do;'; + put '%let engnum=%sysfunc(varnum(&dsid,ENGINE));'; + put '%let rc=%sysfunc(fetch(&dsid));'; + put '%let engine=%sysfunc(getvarc(&dsid,&engnum));'; + put '%put &libref. ENGINE is &engine.;'; + put '%let rc= %sysfunc(close(&dsid));'; + put '%end;'; + put '%upcase(&engine)'; + put '%mend mf_getengine;'; + put '/** @endcond */'; + put '%macro mm_assigndirectlib('; + put 'libref /* libref to assign from metadata */'; + put ',open_passthrough= /* provide an alias to produce the'; + put 'CONNECT TO statement for the'; + put 'relevant external database */'; + put ',sql_options= /* add any options to add to proc sql statement eg outobs='; + put '(only valid for pass through) */'; + put ',mDebug=0'; + put ',mAbort=0'; + put ')/*/STORE SOURCE*/;'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing mm_assigndirectlib.sas;'; + put '%&mD.put _local_;'; + put '%if &mAbort=1 %then %let mAbort=;'; + put '%else %let mAbort=%str(*);'; + put '%&mD.put NOTE: Creating direct (non META) connection to &libref library;'; + put '%local cur_engine;'; + put '%let cur_engine=%mf_getengine(&libref);'; + put '%if &cur_engine ne META and &cur_engine ne %then %do;'; + put '%put NOTE: &libref already has a direct (&cur_engine) libname connection;'; + put '%return;'; + put '%end;'; + put '%else %if %upcase(&libref)=WORK %then %do;'; + put '%put NOTE: We already have a direct connection to WORK :-) ;'; + put '%return;'; + put '%end;'; + put '/* need to determine the library ENGINE first */'; + put '%local engine;'; + put 'data _null_;'; + put 'length lib_uri engine $256;'; + put 'call missing (of _all_);'; + put '/* get URI for the particular library */'; + put 'rc1=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put '/* get the Engine attribute of the previous object */'; + put 'rc2=metadata_getattr(lib_uri,''Engine'',engine);'; + put 'putlog "mm_assigndirectlib for &libref:" rc1= lib_uri= rc2= engine=;'; + put 'call symputx("liburi",lib_uri,''l'');'; + put 'call symputx("engine",engine,''l'');'; + put 'run;'; + put '/* now obtain engine specific connection details */'; + put '%if &engine=BASE %then %do;'; + put '%&mD.put NOTE: Retrieving BASE library path;'; + put 'data _null_;'; + put 'length up_uri $256 path cat_path $1024;'; + put 'retain cat_path;'; + put 'call missing (of _all_);'; + put '/* get all the filepaths of the UsingPackages association */'; + put 'i=1;'; + put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; + put 'do while (rc3>0);'; + put '/* get the DirectoryName attribute of the previous object */'; + put 'rc4=metadata_getattr(up_uri,''DirectoryName'',path);'; + put 'if i=1 then path = ''("''!!trim(path)!!''" '';'; + put 'else path ='' "''!!trim(path)!!''" '';'; + put 'cat_path = trim(cat_path) !! " " !! trim(path) ;'; + put 'i+1;'; + put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; + put 'end;'; + put 'cat_path = trim(cat_path) !! ")";'; + put '&mD.putlog "NOTE: Getting physical path for &libref library";'; + put '&mD.putlog rc3= up_uri= rc4= cat_path= path=;'; + put '&mD.putlog "NOTE: Libname cmd will be:";'; + put '&mD.putlog "libname &libref" cat_path;'; + put 'call symputx("filepath",cat_path,''l'');'; + put 'run;'; + put '%if %sysevalf(&sysver<9.4) %then %do;'; + put 'libname &libref &filepath;'; + put '%end;'; + put '%else %do;'; + put '/* apply the new filelocks option to cater for temporary locks */'; + put 'libname &libref &filepath filelockwait=5;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=REMOTE %then %do;'; + put 'data x;'; + put 'length rcCon rcProp rc k 3 uriCon uriProp PropertyValue PropertyName'; + put 'Delimiter $256 properties $2048;'; + put 'retain properties;'; + put 'rcCon = metadata_getnasn("&liburi", "LibraryConnection", 1, uriCon);'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", 1, uriProp);'; + put 'k = 1;'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; + put 'do while (rcProp > 0);'; + put 'rc = metadata_getattr(uriProp , "DefaultValue",PropertyValue);'; + put 'rc = metadata_getattr(uriProp , "PropertyName",PropertyName);'; + put 'rc = metadata_getattr(uriProp , "Delimiter",Delimiter);'; + put 'properties = trim(properties) !! " " !! trim(PropertyName)'; + put '!! trim(Delimiter) !! trim(PropertyValue);'; + put 'output;'; + put 'k+1;'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; + put 'end;'; + put '%&mD.put NOTE: Getting properties for REMOTE SHARE &libref library;'; + put '&mD.put _all_;'; + put '%&mD.put NOTE: Libname cmd will be:;'; + put '%&mD.put libname &libref &engine &properties slibref=&libref;'; + put 'call symputx ("properties",trim(properties),''l'');'; + put 'run;'; + put 'libname &libref &engine &properties slibref=&libref;'; + put '%end;'; + put '%else %if &engine=OLEDB %then %do;'; + put '%&mD.put NOTE: Retrieving OLEDB connection details;'; + put 'data _null_;'; + put 'length domain datasource provider properties schema'; + put 'connx_uri domain_uri conprop_uri lib_uri schema_uri value $256.;'; + put 'call missing (of _all_);'; + put '/* get source connection ID */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; + put '/* get connection domain */'; + put 'rc1=metadata_getnasn(connx_uri,''Domain'',1,domain_uri);'; + put 'rc2=metadata_getattr(domain_uri,''Name'',domain);'; + put '&mD.putlog / ''NOTE: '' // ''NOTE- connection id: '' connx_uri ;'; + put '&mD.putlog ''NOTE- domain: '' domain;'; + put '/* get DSN and PROVIDER from connection properties */'; + put 'i=0;'; + put 'do until (rc<0);'; + put 'i+1;'; + put 'rc=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; + put 'rc2=metadata_getattr(conprop_uri,''Name'',value);'; + put 'if value=''Connection.OLE.Property.DATASOURCE.Name.xmlKey.txt'' then do;'; + put 'rc3=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; + put 'end;'; + put 'else if value=''Connection.OLE.Property.PROVIDER.Name.xmlKey.txt'' then do;'; + put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',provider);'; + put 'end;'; + put 'else if value=''Connection.OLE.Property.PROPERTIES.Name.xmlKey.txt'' then'; + put 'do;'; + put 'rc5=metadata_getattr(conprop_uri,''DefaultValue'',properties);'; + put 'end;'; + put 'end;'; + put '&mD.putlog ''NOTE- dsn/provider/properties: '' /'; + put 'datasource provider properties;'; + put '&mD.putlog ''NOTE- schema: '' schema // ''NOTE-'';'; + put '/* get SCHEMA */'; + put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,lib_uri);'; + put 'rc7=metadata_getattr(lib_uri,''SchemaName'',schema);'; + put 'call symputx(''SQL_domain'',domain,''l'');'; + put 'call symputx(''SQL_dsn'',datasource,''l'');'; + put 'call symputx(''SQL_provider'',provider,''l'');'; + put 'call symputx(''SQL_properties'',properties,''l'');'; + put 'call symputx(''SQL_schema'',schema,''l'');'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put 'proc sql &sql_options;'; + put 'connect to OLEDB as &open_passthrough(INSERT_SQL=YES'; + put '/* need additional properties to make this work */'; + put 'properties=(''Integrated Security''=SSPI'; + put '''Persist Security Info''=True'; + put '%sysfunc(compress(%str(&SQL_properties),%str(())))'; + put ')'; + put 'DATASOURCE=&sql_dsn PROMPT=NO'; + put 'PROVIDER=&sql_provider SCHEMA=&sql_schema CONNECTION = GLOBAL);'; + put '%end;'; + put '%else %do;'; + put 'LIBNAME &libref OLEDB PROPERTIES=&sql_properties'; + put 'DATASOURCE=&sql_dsn PROVIDER=&sql_provider SCHEMA=&sql_schema'; + put '%if %length(&sql_domain)>0 %then %do;'; + put 'authdomain="&sql_domain"'; + put '%end;'; + put 'connection=shared;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=ODBC %then %do;'; + put '&mD.%put NOTE: Retrieving ODBC connection details;'; + put 'data _null_;'; + put 'length connx_uri conprop_uri value datasource up_uri schema $256.;'; + put 'call missing (of _all_);'; + put '/* get source connection ID */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; + put '/* get connection properties */'; + put 'i=0;'; + put 'do until (rc2<0);'; + put 'i+1;'; + put 'rc2=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; + put 'rc3=metadata_getattr(conprop_uri,''Name'',value);'; + put 'if value=''Connection.ODBC.Property.DATASRC.Name.xmlKey.txt'' then do;'; + put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; + put 'rc2=-1;'; + put 'end;'; + put 'end;'; + put '/* get SCHEMA */'; + put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,up_uri);'; + put 'rc7=metadata_getattr(up_uri,''SchemaName'',schema);'; + put '&mD.put rc= connx_uri= rc2= conprop_uri= rc3= value= rc4= datasource='; + put 'rc6= up_uri= rc7= schema=;'; + put 'call symputx(''SQL_schema'',schema,''l'');'; + put 'call symputx(''SQL_dsn'',datasource,''l'');'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put 'proc sql &sql_options;'; + put 'connect to ODBC as &open_passthrough'; + put '(INSERT_SQL=YES DATASRC=&sql_dsn. CONNECTION=global);'; + put '%end;'; + put '%else %do;'; + put 'libname &libref ODBC DATASRC=&sql_dsn SCHEMA=&sql_schema;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=POSTGRES %then %do;'; + put '%put NOTE: Obtaining POSTGRES library details;'; + put 'data _null_;'; + put 'length database ignore_read_only_columns direct_exe preserve_col_names'; + put 'preserve_tab_names server schema authdomain user password'; + put 'prop name value uri urisrc $256.;'; + put 'call missing (of _all_);'; + put '/* get database value */'; + put 'prop=''Connection.DBMS.Property.DB.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,database,"");'; + put 'if database^='''' then database=''database=''!!quote(trim(database));'; + put 'call symputx(''database'',database,''l'');'; + put '/* get IGNORE_READ_ONLY_COLUMNS value */'; + put 'prop=''Library.DBMS.Property.DBIROC.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,ignore_read_only_columns,"");'; + put 'if ignore_read_only_columns^='''' then ignore_read_only_columns='; + put '''ignore_read_only_columns=''!!ignore_read_only_columns;'; + put 'call symputx(''ignore_read_only_columns'',ignore_read_only_columns,''l'');'; + put '/* get DIRECT_EXE value */'; + put 'prop=''Library.DBMS.Property.DirectExe.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,direct_exe,"");'; + put 'if direct_exe^='''' then direct_exe=''direct_exe=''!!direct_exe;'; + put 'call symputx(''direct_exe'',direct_exe,''l'');'; + put '/* get PRESERVE_COL_NAMES value */'; + put 'prop=''Library.DBMS.Property.PreserveColNames.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,preserve_col_names,"");'; + put 'if preserve_col_names^='''' then preserve_col_names='; + put '''preserve_col_names=''!!preserve_col_names;'; + put 'call symputx(''preserve_col_names'',preserve_col_names,''l'');'; + put '/* get PRESERVE_TAB_NAMES value */'; + put '/* be careful with PRESERVE_TAB_NAMES=YES - it will mean your table will'; + put 'become case sensitive!! */'; + put 'prop=''Library.DBMS.Property.PreserveTabNames.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,preserve_tab_names,"");'; + put 'if preserve_tab_names^='''' then preserve_tab_names='; + put '''preserve_tab_names=''!!preserve_tab_names;'; + put 'call symputx(''preserve_tab_names'',preserve_tab_names,''l'');'; + put '/* get SERVER value */'; + put 'if metadata_getnasn("&liburi","LibraryConnection",1,uri)>0 then do;'; + put 'prop=''Connection.DBMS.Property.SERVER.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop(uri,prop,server,"");'; + put 'end;'; + put 'if server^='''' then server=''server=''!!quote(cats(server));'; + put 'call symputx(''server'',server,''l'');'; + put '/* get SCHEMA value */'; + put 'if metadata_getnasn("&liburi","UsingPackages",1,uri)>0 then do;'; + put 'rc=metadata_getattr(uri,"SchemaName",schema);'; + put 'end;'; + put 'if schema^='''' then schema=''schema=''!!schema;'; + put 'call symputx(''schema'',schema,''l'');'; + put '/* get AUTHDOMAIN value */'; + put '/* this is only useful if the user account contains that auth domain'; + put 'if metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then do;'; + put 'rc=metadata_getnasn(uri,"Domain",1,urisrc);'; + put 'rc=metadata_getattr(urisrc,"Name",authdomain);'; + put 'end;'; + put 'if authdomain^='''' then authdomain=''authdomain=''!!quote(trim(authdomain));'; + put '*/'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/* get user & pass */'; + put 'if authdomain='''' & metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then'; + put 'do;'; + put 'rc=metadata_getattr(uri,"UserID",user);'; + put 'rc=metadata_getattr(uri,"Password",password);'; + put 'end;'; + put 'if user^='''' then do;'; + put 'user=''user=''!!quote(trim(user));'; + put 'password=''password=''!!quote(trim(password));'; + put 'end;'; + put 'call symputx(''user'',user,''l'');'; + put 'call symputx(''password'',password,''l'');'; + put '&md.put _all_;'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put '%put %str(WARN)ING: Passthrough option for postgres not yet supported;'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put '%if &mdebug=1 %then %do;'; + put '%put NOTE: Executing the following:/;'; + put '%put NOTE- libname &libref POSTGRES &database &ignore_read_only_columns;'; + put '%put NOTE- &direct_exe &preserve_col_names &preserve_tab_names;'; + put '%put NOTE- &server &schema &authdomain &user &password //;'; + put '%end;'; + put 'libname &libref POSTGRES &database &ignore_read_only_columns &direct_exe'; + put '&preserve_col_names &preserve_tab_names &server &schema &authdomain'; + put '&user &password;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=ORACLE %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null_;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema $256;'; + put 'call missing (of _all_);'; + put '/* get auth domain */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; + put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; + put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/* path */'; + put 'rc=metadata_getprop(assocuri1,'; + put '''Connection.Oracle.Property.PATH.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref ORACLE path=&path schema=&schema;'; + put '%put NOTE- authdomain=&authdomain;'; + put '%put NOTE-;'; + put 'libname &libref ORACLE path=&path schema=&schema authdomain=&authdomain;'; + put '%end;'; + put '%else %if &engine=SQLSVR %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; + put 'passwd $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; + put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; + put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; + put 'call symputx(''user'',userid,''l'');'; + put 'call symputx(''pass'',passwd,''l'');'; + put '/* path */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; + put 'rc=metadata_getprop(assocuri2,'; + put '''Connection.SQL.Property.Datasrc.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref SQLSVR datasrc=&path schema=&schema ;'; + put '%put NOTE- user="&user" pass="XXX";'; + put '%put NOTE-;'; + put 'libname &libref SQLSVR datasrc=&path schema=&schema user="&user" pass="&pass";'; + put '%end;'; + put '%else %if &engine=TERADATA %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; + put 'passwd $256;'; + put 'call missing (of _all_);'; + put '/* get auth domain */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; + put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; + put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/*'; + put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; + put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; + put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; + put 'call symputx(''user'',userid,''l'');'; + put 'call symputx(''pass'',passwd,''l'');'; + put '*/'; + put '/* path */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; + put 'rc=metadata_getprop(assocuri2,'; + put '''Connection.Teradata.Property.SERVER.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref TERADATA server="&path" schema=&schema ;'; + put '%put NOTe- authdomain=&authdomain;'; + put '%put NOTE-;'; + put 'libname &libref TERADATA server="&path" schema=&schema authdomain=&authdomain;'; + put '%end;'; + put '%else %if &engine= %then %do;'; + put '%put NOTE: Libref &libref is not registered in metadata;'; + put '%&mAbort.mp_abort('; + put 'msg=%str(ERR)OR: Libref &libref is not registered in metadata'; + put ',mac=mm_assigndirectlib.sas);'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put '%put %str(WARN)ING: Engine &engine is currently unsupported;'; + put '%put %str(WARN)ING- Please contact your support team.;'; + put '%return;'; + put '%end;'; + put '%mend mm_assigndirectlib;'; + put '%macro mm_getrepos('; + put 'outds=work.mm_getrepos'; + put ')/*/STORE SOURCE*/;'; + put '* use a temporary fileref to hold the response;'; + put 'filename response temp;'; + put '/* get list of libraries */'; + put 'proc metadata in='; + put '"1"'; + put 'out=response;'; + put 'run;'; + put '/* write the response to the log for debugging */'; + put '/*'; + put 'data _null_;'; + put 'infile response lrecl=1048576;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '*/'; + put '/* create an XML map to read the response */'; + put 'filename sxlemap temp;'; + put 'data _null_;'; + put 'file sxlemap;'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository";'; + put 'put "";'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Id";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Name";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Desc";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@DefaultNS";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryType";'; + put 'put "characterstring20";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryFormat";'; + put 'put "characterstring10";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@Access";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@CurrentAccess";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@PauseState";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Path";'; + put 'put "";'; + put 'put "characterstring256";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Engine";'; + put 'put "";'; + put 'put "characterstring8";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Options";'; + put 'put "";'; + put 'put "characterstring32";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataCreated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataUpdated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put ''
'';'; + put 'run;'; + put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; + put 'proc sort data= _XML_.SASRepos out=&outds;'; + put 'by name;'; + put 'run;'; + put '/* clear references */'; + put 'filename sxlemap clear;'; + put 'filename response clear;'; + put 'libname _XML_ clear;'; + put '%mend mm_getrepos;'; + put '%macro dc_assignlib(type,libref,passthru=);'; + put '%put &sysmacroname entry vars:;'; + put '%put _local_;'; + put '/* take current repository */'; + put '%local repo repocnt x;'; + put '%let repo=%sysfunc(getoption(metarepository));'; + put '/* get list of repositories and filter */'; + put '%mm_getrepos(outds=repos)'; + put '%let repocnt=0;'; + put 'data repos;'; + put 'set repos;'; + put 'where repositorytype in(''CUSTOM'',''FOUNDATION'')'; + put '& upcase(name) ne "%upcase(&repo)";'; + put 'keep id name ;'; + put 'call symputx(cats(''repo'',_n_),name,''l'');'; + put 'call symputx(''repocnt'',_n_,''l'');'; + put 'run;'; + put '/* find out which of these repositories has the libref we are searching for */'; + put '%local lib_uri;'; + put '%let lib_uri=NOTFOUND;'; + put 'data _null_; /* check default repo first */'; + put 'length lib_uri $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; + put 'run;'; + put '%if &lib_uri=NOTFOUND %then %do;'; + put '%do x=1 %to &repocnt;'; + put 'options metarepository=&&repo&x;'; + put 'data _null_;'; + put 'length lib_uri $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; + put 'run;'; + put '%if &lib_uri ne NOTFOUND %then %let x=%eval(&repocnt+1);'; + put '%end;'; + put '%end;'; + put '%if &type=READ %then %do;'; + put '%mm_assignlib(&libref)'; + put '%end;'; + put '%else %if &type=WRITE %then %do;'; + put '%mm_assigndirectlib(&libref,open_passthrough=&passthru)'; + put '%end;'; + put 'options metarepository=&repo;'; + put '%mend dc_assignlib;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file getchangeinfo.sas'; + put '@brief Returns the details for an approval diff'; + put '@details'; + put '

SAS Macros

'; + put '@li mf_getengine.sas'; + put '@li dc_assignlib.sas'; + put '@li mp_abort.sas'; + put '@version 9.2'; + put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; + put 'downloaded from here: https://4gl.uk/dcdeploy'; + put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; + put 'and may not be re-distributed or re-sold without the express permission of'; + put '4GL Apps Ltd.'; + put '**/'; + put '%mpeinit()'; + put '%let table=;'; + put 'data _null_;'; + put 'set SASControlTable;'; + put 'call symputx(''table'',table);'; + put 'run;'; + put '%dc_assignlib(WRITE,%scan(&table,1,.))'; + put '%let max_ver_dttm=0;'; + put 'data APPROVE1;'; + put 'set &mpelib..mpe_submit'; + put '(rename=(SUBMITTED_ON_DTTM=submitted_on REVIEWED_ON_DTTM=REVIEWED_ON));'; + put 'where TABLE_ID="&TABLE";'; + put 'TABLE_NM=cats(base_lib,''.'',base_ds);'; + put 'BASE_TABLE=table_nm;'; + put 'call symputx(''base_lib'',base_lib);'; + put 'REVIEWED_ON_DTTM=put(reviewed_on,datetime19.);'; + put 'SUBMITTED_ON_DTTM=put(submitted_on,datetime19.);'; + put 'run;'; + put 'data jsParams;'; + put 'set approve1;'; + put 'LIB_ENGINE="%mf_getEngine(&base_lib)";'; + put 'run;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(syscc=&syscc)'; + put ')'; + put '%webout(OPEN)'; + put '%webout(OBJ,jsParams)'; + put '%webout(CLOSE)'; + put '%mpeterm()'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=getcols; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Files

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as FMTCAT,'; + put 'FMTNAME'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'LENGTH num'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.length as MAXW'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put ')))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] workobs= (0) When set to a positive integer, will create a new'; + put 'output object (WORK) which contains this number of observations from all'; + put 'tables in the WORK library.'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX,workobs=0'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&workobs) > 0 %then %do;'; + put '/* if debug mode, send back first XX records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10'; + put ',maxobs=&workobs'; + put ')'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '%macro mm_assignlib('; + put 'libref'; + put ',mAbort=HARD'; + put ')/*/STORE SOURCE*/;'; + put '%local mp_abort msg;'; + put '%let mp_abort=0;'; + put '%if %sysfunc(libref(&libref)) %then %do;'; + put 'data _null_;'; + put 'length liburi LibName msg $200;'; + put 'call missing(of _all_);'; + put 'nobj=metadata_getnobj("omsobj:SASLibrary?@Libref=''&libref''",1,liburi);'; + put 'if nobj=1 then do;'; + put 'rc=metadata_getattr(liburi,"Name",LibName);'; + put '/* now try and assign it */'; + put 'if libname("&libref",,''meta'',cats(''liburi="'',liburi,''";'')) ne 0 then do;'; + put 'putlog "&libref could not be assigned";'; + put 'putlog liburi=;'; + put '/**'; + put '* Fetch the system message for display in the abort modal. This is'; + put '* not always helpful though. One example, previously received:'; + put '* NOTE: Libref XX refers to the same library metadata as libref XX.'; + put '*/'; + put 'msg=sysmsg();'; + put 'if msg=:''ERROR: Libref SAVE is not assigned.'' then do;'; + put 'msg=catx(" ",'; + put '"Could not assign %upcase(&libref).",'; + put '"Please check metadata permissions! Libname:",libname,'; + put '"Liburi:",liburi'; + put ');'; + put 'end;'; + put 'else if msg="ERROR: User does not have appropriate authorization "!!'; + put '"level for library SAVE."'; + put 'then do;'; + put 'msg=catx(" ",'; + put '"ERROR: User does not have appropriate authorization level",'; + put '"for library %upcase(&libref), libname:",libname,'; + put '"Liburi:",liburi'; + put ');'; + put 'end;'; + put 'call symputx(''msg'',msg,''l'');'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1,''l'');'; + put 'end;'; + put 'else do;'; + put 'put (_all_)(=);'; + put 'call symputx(''libname'',libname,''L'');'; + put 'call symputx(''liburi'',liburi,''L'');'; + put 'end;'; + put 'end;'; + put 'else if nobj>1 then do;'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; + put 'call symputx(''msg'',"More than one library with libref=&libref");'; + put 'end;'; + put 'else do;'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; + put 'call symputx(''msg'',"Library &libref not found in metadata");'; + put 'end;'; + put 'run;'; + put '%put NOTE: &msg;'; + put '%end;'; + put '%else %do;'; + put '%put NOTE: Library &libref is already assigned;'; + put '%end;'; + put '%mp_abort(iftrue= (&mp_abort=1)'; + put ',mac=mm_assignlib.sas'; + put ',msg=%superq(msg)'; + put ')'; + put '%mend mm_assignlib;'; + put '/** @cond */'; + put '%macro mf_getengine(libref'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid engnum rc engine;'; + put '/* in case the parameter is a libref.tablename, pull off just the libref */'; + put '%let libref = %upcase(%scan(&libref, 1, %str(.)));'; + put '%let dsid=%sysfunc('; + put 'open(sashelp.vlibnam(where=(libname="%upcase(&libref)")),i)'; + put ');'; + put '%if (&dsid ^= 0) %then %do;'; + put '%let engnum=%sysfunc(varnum(&dsid,ENGINE));'; + put '%let rc=%sysfunc(fetch(&dsid));'; + put '%let engine=%sysfunc(getvarc(&dsid,&engnum));'; + put '%put &libref. ENGINE is &engine.;'; + put '%let rc= %sysfunc(close(&dsid));'; + put '%end;'; + put '%upcase(&engine)'; + put '%mend mf_getengine;'; + put '/** @endcond */'; + put '%macro mm_assigndirectlib('; + put 'libref /* libref to assign from metadata */'; + put ',open_passthrough= /* provide an alias to produce the'; + put 'CONNECT TO statement for the'; + put 'relevant external database */'; + put ',sql_options= /* add any options to add to proc sql statement eg outobs='; + put '(only valid for pass through) */'; + put ',mDebug=0'; + put ',mAbort=0'; + put ')/*/STORE SOURCE*/;'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing mm_assigndirectlib.sas;'; + put '%&mD.put _local_;'; + put '%if &mAbort=1 %then %let mAbort=;'; + put '%else %let mAbort=%str(*);'; + put '%&mD.put NOTE: Creating direct (non META) connection to &libref library;'; + put '%local cur_engine;'; + put '%let cur_engine=%mf_getengine(&libref);'; + put '%if &cur_engine ne META and &cur_engine ne %then %do;'; + put '%put NOTE: &libref already has a direct (&cur_engine) libname connection;'; + put '%return;'; + put '%end;'; + put '%else %if %upcase(&libref)=WORK %then %do;'; + put '%put NOTE: We already have a direct connection to WORK :-) ;'; + put '%return;'; + put '%end;'; + put '/* need to determine the library ENGINE first */'; + put '%local engine;'; + put 'data _null_;'; + put 'length lib_uri engine $256;'; + put 'call missing (of _all_);'; + put '/* get URI for the particular library */'; + put 'rc1=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put '/* get the Engine attribute of the previous object */'; + put 'rc2=metadata_getattr(lib_uri,''Engine'',engine);'; + put 'putlog "mm_assigndirectlib for &libref:" rc1= lib_uri= rc2= engine=;'; + put 'call symputx("liburi",lib_uri,''l'');'; + put 'call symputx("engine",engine,''l'');'; + put 'run;'; + put '/* now obtain engine specific connection details */'; + put '%if &engine=BASE %then %do;'; + put '%&mD.put NOTE: Retrieving BASE library path;'; + put 'data _null_;'; + put 'length up_uri $256 path cat_path $1024;'; + put 'retain cat_path;'; + put 'call missing (of _all_);'; + put '/* get all the filepaths of the UsingPackages association */'; + put 'i=1;'; + put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; + put 'do while (rc3>0);'; + put '/* get the DirectoryName attribute of the previous object */'; + put 'rc4=metadata_getattr(up_uri,''DirectoryName'',path);'; + put 'if i=1 then path = ''("''!!trim(path)!!''" '';'; + put 'else path ='' "''!!trim(path)!!''" '';'; + put 'cat_path = trim(cat_path) !! " " !! trim(path) ;'; + put 'i+1;'; + put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; + put 'end;'; + put 'cat_path = trim(cat_path) !! ")";'; + put '&mD.putlog "NOTE: Getting physical path for &libref library";'; + put '&mD.putlog rc3= up_uri= rc4= cat_path= path=;'; + put '&mD.putlog "NOTE: Libname cmd will be:";'; + put '&mD.putlog "libname &libref" cat_path;'; + put 'call symputx("filepath",cat_path,''l'');'; + put 'run;'; + put '%if %sysevalf(&sysver<9.4) %then %do;'; + put 'libname &libref &filepath;'; + put '%end;'; + put '%else %do;'; + put '/* apply the new filelocks option to cater for temporary locks */'; + put 'libname &libref &filepath filelockwait=5;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=REMOTE %then %do;'; + put 'data x;'; + put 'length rcCon rcProp rc k 3 uriCon uriProp PropertyValue PropertyName'; + put 'Delimiter $256 properties $2048;'; + put 'retain properties;'; + put 'rcCon = metadata_getnasn("&liburi", "LibraryConnection", 1, uriCon);'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", 1, uriProp);'; + put 'k = 1;'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; + put 'do while (rcProp > 0);'; + put 'rc = metadata_getattr(uriProp , "DefaultValue",PropertyValue);'; + put 'rc = metadata_getattr(uriProp , "PropertyName",PropertyName);'; + put 'rc = metadata_getattr(uriProp , "Delimiter",Delimiter);'; + put 'properties = trim(properties) !! " " !! trim(PropertyName)'; + put '!! trim(Delimiter) !! trim(PropertyValue);'; + put 'output;'; + put 'k+1;'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; + put 'end;'; + put '%&mD.put NOTE: Getting properties for REMOTE SHARE &libref library;'; + put '&mD.put _all_;'; + put '%&mD.put NOTE: Libname cmd will be:;'; + put '%&mD.put libname &libref &engine &properties slibref=&libref;'; + put 'call symputx ("properties",trim(properties),''l'');'; + put 'run;'; + put 'libname &libref &engine &properties slibref=&libref;'; + put '%end;'; + put '%else %if &engine=OLEDB %then %do;'; + put '%&mD.put NOTE: Retrieving OLEDB connection details;'; + put 'data _null_;'; + put 'length domain datasource provider properties schema'; + put 'connx_uri domain_uri conprop_uri lib_uri schema_uri value $256.;'; + put 'call missing (of _all_);'; + put '/* get source connection ID */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; + put '/* get connection domain */'; + put 'rc1=metadata_getnasn(connx_uri,''Domain'',1,domain_uri);'; + put 'rc2=metadata_getattr(domain_uri,''Name'',domain);'; + put '&mD.putlog / ''NOTE: '' // ''NOTE- connection id: '' connx_uri ;'; + put '&mD.putlog ''NOTE- domain: '' domain;'; + put '/* get DSN and PROVIDER from connection properties */'; + put 'i=0;'; + put 'do until (rc<0);'; + put 'i+1;'; + put 'rc=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; + put 'rc2=metadata_getattr(conprop_uri,''Name'',value);'; + put 'if value=''Connection.OLE.Property.DATASOURCE.Name.xmlKey.txt'' then do;'; + put 'rc3=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; + put 'end;'; + put 'else if value=''Connection.OLE.Property.PROVIDER.Name.xmlKey.txt'' then do;'; + put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',provider);'; + put 'end;'; + put 'else if value=''Connection.OLE.Property.PROPERTIES.Name.xmlKey.txt'' then'; + put 'do;'; + put 'rc5=metadata_getattr(conprop_uri,''DefaultValue'',properties);'; + put 'end;'; + put 'end;'; + put '&mD.putlog ''NOTE- dsn/provider/properties: '' /'; + put 'datasource provider properties;'; + put '&mD.putlog ''NOTE- schema: '' schema // ''NOTE-'';'; + put '/* get SCHEMA */'; + put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,lib_uri);'; + put 'rc7=metadata_getattr(lib_uri,''SchemaName'',schema);'; + put 'call symputx(''SQL_domain'',domain,''l'');'; + put 'call symputx(''SQL_dsn'',datasource,''l'');'; + put 'call symputx(''SQL_provider'',provider,''l'');'; + put 'call symputx(''SQL_properties'',properties,''l'');'; + put 'call symputx(''SQL_schema'',schema,''l'');'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put 'proc sql &sql_options;'; + put 'connect to OLEDB as &open_passthrough(INSERT_SQL=YES'; + put '/* need additional properties to make this work */'; + put 'properties=(''Integrated Security''=SSPI'; + put '''Persist Security Info''=True'; + put '%sysfunc(compress(%str(&SQL_properties),%str(())))'; + put ')'; + put 'DATASOURCE=&sql_dsn PROMPT=NO'; + put 'PROVIDER=&sql_provider SCHEMA=&sql_schema CONNECTION = GLOBAL);'; + put '%end;'; + put '%else %do;'; + put 'LIBNAME &libref OLEDB PROPERTIES=&sql_properties'; + put 'DATASOURCE=&sql_dsn PROVIDER=&sql_provider SCHEMA=&sql_schema'; + put '%if %length(&sql_domain)>0 %then %do;'; + put 'authdomain="&sql_domain"'; + put '%end;'; + put 'connection=shared;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=ODBC %then %do;'; + put '&mD.%put NOTE: Retrieving ODBC connection details;'; + put 'data _null_;'; + put 'length connx_uri conprop_uri value datasource up_uri schema $256.;'; + put 'call missing (of _all_);'; + put '/* get source connection ID */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; + put '/* get connection properties */'; + put 'i=0;'; + put 'do until (rc2<0);'; + put 'i+1;'; + put 'rc2=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; + put 'rc3=metadata_getattr(conprop_uri,''Name'',value);'; + put 'if value=''Connection.ODBC.Property.DATASRC.Name.xmlKey.txt'' then do;'; + put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; + put 'rc2=-1;'; + put 'end;'; + put 'end;'; + put '/* get SCHEMA */'; + put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,up_uri);'; + put 'rc7=metadata_getattr(up_uri,''SchemaName'',schema);'; + put '&mD.put rc= connx_uri= rc2= conprop_uri= rc3= value= rc4= datasource='; + put 'rc6= up_uri= rc7= schema=;'; + put 'call symputx(''SQL_schema'',schema,''l'');'; + put 'call symputx(''SQL_dsn'',datasource,''l'');'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put 'proc sql &sql_options;'; + put 'connect to ODBC as &open_passthrough'; + put '(INSERT_SQL=YES DATASRC=&sql_dsn. CONNECTION=global);'; + put '%end;'; + put '%else %do;'; + put 'libname &libref ODBC DATASRC=&sql_dsn SCHEMA=&sql_schema;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=POSTGRES %then %do;'; + put '%put NOTE: Obtaining POSTGRES library details;'; + put 'data _null_;'; + put 'length database ignore_read_only_columns direct_exe preserve_col_names'; + put 'preserve_tab_names server schema authdomain user password'; + put 'prop name value uri urisrc $256.;'; + put 'call missing (of _all_);'; + put '/* get database value */'; + put 'prop=''Connection.DBMS.Property.DB.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,database,"");'; + put 'if database^='''' then database=''database=''!!quote(trim(database));'; + put 'call symputx(''database'',database,''l'');'; + put '/* get IGNORE_READ_ONLY_COLUMNS value */'; + put 'prop=''Library.DBMS.Property.DBIROC.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,ignore_read_only_columns,"");'; + put 'if ignore_read_only_columns^='''' then ignore_read_only_columns='; + put '''ignore_read_only_columns=''!!ignore_read_only_columns;'; + put 'call symputx(''ignore_read_only_columns'',ignore_read_only_columns,''l'');'; + put '/* get DIRECT_EXE value */'; + put 'prop=''Library.DBMS.Property.DirectExe.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,direct_exe,"");'; + put 'if direct_exe^='''' then direct_exe=''direct_exe=''!!direct_exe;'; + put 'call symputx(''direct_exe'',direct_exe,''l'');'; + put '/* get PRESERVE_COL_NAMES value */'; + put 'prop=''Library.DBMS.Property.PreserveColNames.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,preserve_col_names,"");'; + put 'if preserve_col_names^='''' then preserve_col_names='; + put '''preserve_col_names=''!!preserve_col_names;'; + put 'call symputx(''preserve_col_names'',preserve_col_names,''l'');'; + put '/* get PRESERVE_TAB_NAMES value */'; + put '/* be careful with PRESERVE_TAB_NAMES=YES - it will mean your table will'; + put 'become case sensitive!! */'; + put 'prop=''Library.DBMS.Property.PreserveTabNames.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,preserve_tab_names,"");'; + put 'if preserve_tab_names^='''' then preserve_tab_names='; + put '''preserve_tab_names=''!!preserve_tab_names;'; + put 'call symputx(''preserve_tab_names'',preserve_tab_names,''l'');'; + put '/* get SERVER value */'; + put 'if metadata_getnasn("&liburi","LibraryConnection",1,uri)>0 then do;'; + put 'prop=''Connection.DBMS.Property.SERVER.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop(uri,prop,server,"");'; + put 'end;'; + put 'if server^='''' then server=''server=''!!quote(cats(server));'; + put 'call symputx(''server'',server,''l'');'; + put '/* get SCHEMA value */'; + put 'if metadata_getnasn("&liburi","UsingPackages",1,uri)>0 then do;'; + put 'rc=metadata_getattr(uri,"SchemaName",schema);'; + put 'end;'; + put 'if schema^='''' then schema=''schema=''!!schema;'; + put 'call symputx(''schema'',schema,''l'');'; + put '/* get AUTHDOMAIN value */'; + put '/* this is only useful if the user account contains that auth domain'; + put 'if metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then do;'; + put 'rc=metadata_getnasn(uri,"Domain",1,urisrc);'; + put 'rc=metadata_getattr(urisrc,"Name",authdomain);'; + put 'end;'; + put 'if authdomain^='''' then authdomain=''authdomain=''!!quote(trim(authdomain));'; + put '*/'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/* get user & pass */'; + put 'if authdomain='''' & metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then'; + put 'do;'; + put 'rc=metadata_getattr(uri,"UserID",user);'; + put 'rc=metadata_getattr(uri,"Password",password);'; + put 'end;'; + put 'if user^='''' then do;'; + put 'user=''user=''!!quote(trim(user));'; + put 'password=''password=''!!quote(trim(password));'; + put 'end;'; + put 'call symputx(''user'',user,''l'');'; + put 'call symputx(''password'',password,''l'');'; + put '&md.put _all_;'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put '%put %str(WARN)ING: Passthrough option for postgres not yet supported;'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put '%if &mdebug=1 %then %do;'; + put '%put NOTE: Executing the following:/;'; + put '%put NOTE- libname &libref POSTGRES &database &ignore_read_only_columns;'; + put '%put NOTE- &direct_exe &preserve_col_names &preserve_tab_names;'; + put '%put NOTE- &server &schema &authdomain &user &password //;'; + put '%end;'; + put 'libname &libref POSTGRES &database &ignore_read_only_columns &direct_exe'; + put '&preserve_col_names &preserve_tab_names &server &schema &authdomain'; + put '&user &password;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=ORACLE %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null_;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema $256;'; + put 'call missing (of _all_);'; + put '/* get auth domain */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; + put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; + put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/* path */'; + put 'rc=metadata_getprop(assocuri1,'; + put '''Connection.Oracle.Property.PATH.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref ORACLE path=&path schema=&schema;'; + put '%put NOTE- authdomain=&authdomain;'; + put '%put NOTE-;'; + put 'libname &libref ORACLE path=&path schema=&schema authdomain=&authdomain;'; + put '%end;'; + put '%else %if &engine=SQLSVR %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; + put 'passwd $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; + put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; + put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; + put 'call symputx(''user'',userid,''l'');'; + put 'call symputx(''pass'',passwd,''l'');'; + put '/* path */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; + put 'rc=metadata_getprop(assocuri2,'; + put '''Connection.SQL.Property.Datasrc.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref SQLSVR datasrc=&path schema=&schema ;'; + put '%put NOTE- user="&user" pass="XXX";'; + put '%put NOTE-;'; + put 'libname &libref SQLSVR datasrc=&path schema=&schema user="&user" pass="&pass";'; + put '%end;'; + put '%else %if &engine=TERADATA %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; + put 'passwd $256;'; + put 'call missing (of _all_);'; + put '/* get auth domain */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; + put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; + put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/*'; + put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; + put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; + put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; + put 'call symputx(''user'',userid,''l'');'; + put 'call symputx(''pass'',passwd,''l'');'; + put '*/'; + put '/* path */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; + put 'rc=metadata_getprop(assocuri2,'; + put '''Connection.Teradata.Property.SERVER.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref TERADATA server="&path" schema=&schema ;'; + put '%put NOTe- authdomain=&authdomain;'; + put '%put NOTE-;'; + put 'libname &libref TERADATA server="&path" schema=&schema authdomain=&authdomain;'; + put '%end;'; + put '%else %if &engine= %then %do;'; + put '%put NOTE: Libref &libref is not registered in metadata;'; + put '%&mAbort.mp_abort('; + put 'msg=%str(ERR)OR: Libref &libref is not registered in metadata'; + put ',mac=mm_assigndirectlib.sas);'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put '%put %str(WARN)ING: Engine &engine is currently unsupported;'; + put '%put %str(WARN)ING- Please contact your support team.;'; + put '%return;'; + put '%end;'; + put '%mend mm_assigndirectlib;'; + put '%macro mm_getrepos('; + put 'outds=work.mm_getrepos'; + put ')/*/STORE SOURCE*/;'; + put '* use a temporary fileref to hold the response;'; + put 'filename response temp;'; + put '/* get list of libraries */'; + put 'proc metadata in='; + put '"1"'; + put 'out=response;'; + put 'run;'; + put '/* write the response to the log for debugging */'; + put '/*'; + put 'data _null_;'; + put 'infile response lrecl=1048576;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '*/'; + put '/* create an XML map to read the response */'; + put 'filename sxlemap temp;'; + put 'data _null_;'; + put 'file sxlemap;'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository";'; + put 'put "";'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Id";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Name";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Desc";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@DefaultNS";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryType";'; + put 'put "characterstring20";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryFormat";'; + put 'put "characterstring10";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@Access";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@CurrentAccess";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@PauseState";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Path";'; + put 'put "";'; + put 'put "characterstring256";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Engine";'; + put 'put "";'; + put 'put "characterstring8";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Options";'; + put 'put "";'; + put 'put "characterstring32";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataCreated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataUpdated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put ''
'';'; + put 'run;'; + put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; + put 'proc sort data= _XML_.SASRepos out=&outds;'; + put 'by name;'; + put 'run;'; + put '/* clear references */'; + put 'filename sxlemap clear;'; + put 'filename response clear;'; + put 'libname _XML_ clear;'; + put '%mend mm_getrepos;'; + put '%macro dc_assignlib(type,libref,passthru=);'; + put '%put &sysmacroname entry vars:;'; + put '%put _local_;'; + put '/* take current repository */'; + put '%local repo repocnt x;'; + put '%let repo=%sysfunc(getoption(metarepository));'; + put '/* get list of repositories and filter */'; + put '%mm_getrepos(outds=repos)'; + put '%let repocnt=0;'; + put 'data repos;'; + put 'set repos;'; + put 'where repositorytype in(''CUSTOM'',''FOUNDATION'')'; + put '& upcase(name) ne "%upcase(&repo)";'; + put 'keep id name ;'; + put 'call symputx(cats(''repo'',_n_),name,''l'');'; + put 'call symputx(''repocnt'',_n_,''l'');'; + put 'run;'; + put '/* find out which of these repositories has the libref we are searching for */'; + put '%local lib_uri;'; + put '%let lib_uri=NOTFOUND;'; + put 'data _null_; /* check default repo first */'; + put 'length lib_uri $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; + put 'run;'; + put '%if &lib_uri=NOTFOUND %then %do;'; + put '%do x=1 %to &repocnt;'; + put 'options metarepository=&&repo&x;'; + put 'data _null_;'; + put 'length lib_uri $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; + put 'run;'; + put '%if &lib_uri ne NOTFOUND %then %let x=%eval(&repocnt+1);'; + put '%end;'; + put '%end;'; + put '%if &type=READ %then %do;'; + put '%mm_assignlib(&libref)'; + put '%end;'; + put '%else %if &type=WRITE %then %do;'; + put '%mm_assigndirectlib(&libref,open_passthrough=&passthru)'; + put '%end;'; + put 'options metarepository=&repo;'; + put '%mend dc_assignlib;'; + put '%macro mf_getattrn('; + put 'libds'; + put ',attr'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid rc;'; + put '%let dsid=%sysfunc(open(&libds,is));'; + put '%if &dsid = 0 %then %do;'; + put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; + put '%put %sysfunc(sysmsg());'; + put '-1'; + put '%end;'; + put '%else %do;'; + put '%sysfunc(attrn(&dsid,&attr))'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%mend mf_getattrn;'; + put '%macro mf_getvalue(libds,variable,filter=1'; + put ')/*/STORE SOURCE*/;'; + put '%if %mf_getattrn(&libds,NLOBS)>0 %then %do;'; + put '%local dsid rc &variable;'; + put '%let dsid=%sysfunc(open(&libds(where=(&filter))));'; + put '%syscall set(dsid);'; + put '%let rc = %sysfunc(fetch(&dsid));'; + put '%let rc = %sysfunc(close(&dsid));'; + put '%trim(&&&variable)'; + put '%end;'; + put '%mend mf_getvalue;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file getcols.sas'; + put '@brief Retrieves column info to enable population of dropdowns'; + put '@details'; + put '

SAS Macros

'; + put '@li dc_assignlib.sas'; + put '@li mf_getvalue.sas'; + put '@li mp_abort.sas'; + put '@version 9.2'; + put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; + put 'downloaded from here: https://4gl.uk/dcdeploy'; + put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; + put 'and may not be re-distributed or re-sold without the express permission of'; + put '4GL Apps Ltd.'; + put '**/'; + put '%mpeinit()'; + put '%let ds=%mf_getvalue(work.iwant,libds);'; + put '%dc_assignlib(READ,%scan(&ds,1,.))'; + put 'proc contents noprint data=&ds'; + put 'out=droplist1 (keep=name type length label varnum format:);'; + put 'run;'; + put 'data cols(keep=name type length varnum format label);'; + put 'set droplist1(rename=(format=format2 type=type2));'; + put 'name=upcase(name);'; + put 'if type2=2 then do;'; + put 'length format $49.;'; + put 'if format2='''' then format=cats(''$'',length,''.'');'; + put 'else if formatl=0 then format=cats(format2,''.'');'; + put 'else format=cats(format2,formatl,''.'');'; + put 'type=''C'';'; + put 'ddtype=''CHARACTER'';'; + put 'end;'; + put 'else do;'; + put 'if format2='''' then format=cats(length,''.'');'; + put 'else if formatl=0 then format=cats(format2,''.'');'; + put 'else if formatd=0 then format=cats(format2,formatl,''.'');'; + put 'else format=cats(format2,formatl,''.'',formatd);'; + put 'type=''N'';'; + put 'if format=:''DATETIME'' then ddtype=''DATETIME'';'; + put 'else if format=:''DATE'' then ddtype=''DATE'';'; + put 'else if format=:''TIME'' then ddtype=''TIME'';'; + put 'else ddtype=''NUMERIC'';'; + put 'end;'; + put 'if label='''' then label=name;'; + put 'run;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(syscc=&syscc)'; + put ')'; + put '%webout(OPEN)'; + put '%webout(OBJ,cols)'; + put '%webout(CLOSE)'; + put '%mpeterm()'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=getcolvals; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Files

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as FMTCAT,'; + put 'FMTNAME'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'LENGTH num'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.length as MAXW'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put ')))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] workobs= (0) When set to a positive integer, will create a new'; + put 'output object (WORK) which contains this number of observations from all'; + put 'tables in the WORK library.'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX,workobs=0'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&workobs) > 0 %then %do;'; + put '/* if debug mode, send back first XX records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10'; + put ',maxobs=&workobs'; + put ')'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '%macro mm_assignlib('; + put 'libref'; + put ',mAbort=HARD'; + put ')/*/STORE SOURCE*/;'; + put '%local mp_abort msg;'; + put '%let mp_abort=0;'; + put '%if %sysfunc(libref(&libref)) %then %do;'; + put 'data _null_;'; + put 'length liburi LibName msg $200;'; + put 'call missing(of _all_);'; + put 'nobj=metadata_getnobj("omsobj:SASLibrary?@Libref=''&libref''",1,liburi);'; + put 'if nobj=1 then do;'; + put 'rc=metadata_getattr(liburi,"Name",LibName);'; + put '/* now try and assign it */'; + put 'if libname("&libref",,''meta'',cats(''liburi="'',liburi,''";'')) ne 0 then do;'; + put 'putlog "&libref could not be assigned";'; + put 'putlog liburi=;'; + put '/**'; + put '* Fetch the system message for display in the abort modal. This is'; + put '* not always helpful though. One example, previously received:'; + put '* NOTE: Libref XX refers to the same library metadata as libref XX.'; + put '*/'; + put 'msg=sysmsg();'; + put 'if msg=:''ERROR: Libref SAVE is not assigned.'' then do;'; + put 'msg=catx(" ",'; + put '"Could not assign %upcase(&libref).",'; + put '"Please check metadata permissions! Libname:",libname,'; + put '"Liburi:",liburi'; + put ');'; + put 'end;'; + put 'else if msg="ERROR: User does not have appropriate authorization "!!'; + put '"level for library SAVE."'; + put 'then do;'; + put 'msg=catx(" ",'; + put '"ERROR: User does not have appropriate authorization level",'; + put '"for library %upcase(&libref), libname:",libname,'; + put '"Liburi:",liburi'; + put ');'; + put 'end;'; + put 'call symputx(''msg'',msg,''l'');'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1,''l'');'; + put 'end;'; + put 'else do;'; + put 'put (_all_)(=);'; + put 'call symputx(''libname'',libname,''L'');'; + put 'call symputx(''liburi'',liburi,''L'');'; + put 'end;'; + put 'end;'; + put 'else if nobj>1 then do;'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; + put 'call symputx(''msg'',"More than one library with libref=&libref");'; + put 'end;'; + put 'else do;'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; + put 'call symputx(''msg'',"Library &libref not found in metadata");'; + put 'end;'; + put 'run;'; + put '%put NOTE: &msg;'; + put '%end;'; + put '%else %do;'; + put '%put NOTE: Library &libref is already assigned;'; + put '%end;'; + put '%mp_abort(iftrue= (&mp_abort=1)'; + put ',mac=mm_assignlib.sas'; + put ',msg=%superq(msg)'; + put ')'; + put '%mend mm_assignlib;'; + put '/** @cond */'; + put '%macro mf_getengine(libref'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid engnum rc engine;'; + put '/* in case the parameter is a libref.tablename, pull off just the libref */'; + put '%let libref = %upcase(%scan(&libref, 1, %str(.)));'; + put '%let dsid=%sysfunc('; + put 'open(sashelp.vlibnam(where=(libname="%upcase(&libref)")),i)'; + put ');'; + put '%if (&dsid ^= 0) %then %do;'; + put '%let engnum=%sysfunc(varnum(&dsid,ENGINE));'; + put '%let rc=%sysfunc(fetch(&dsid));'; + put '%let engine=%sysfunc(getvarc(&dsid,&engnum));'; + put '%put &libref. ENGINE is &engine.;'; + put '%let rc= %sysfunc(close(&dsid));'; + put '%end;'; + put '%upcase(&engine)'; + put '%mend mf_getengine;'; + put '/** @endcond */'; + put '%macro mm_assigndirectlib('; + put 'libref /* libref to assign from metadata */'; + put ',open_passthrough= /* provide an alias to produce the'; + put 'CONNECT TO statement for the'; + put 'relevant external database */'; + put ',sql_options= /* add any options to add to proc sql statement eg outobs='; + put '(only valid for pass through) */'; + put ',mDebug=0'; + put ',mAbort=0'; + put ')/*/STORE SOURCE*/;'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing mm_assigndirectlib.sas;'; + put '%&mD.put _local_;'; + put '%if &mAbort=1 %then %let mAbort=;'; + put '%else %let mAbort=%str(*);'; + put '%&mD.put NOTE: Creating direct (non META) connection to &libref library;'; + put '%local cur_engine;'; + put '%let cur_engine=%mf_getengine(&libref);'; + put '%if &cur_engine ne META and &cur_engine ne %then %do;'; + put '%put NOTE: &libref already has a direct (&cur_engine) libname connection;'; + put '%return;'; + put '%end;'; + put '%else %if %upcase(&libref)=WORK %then %do;'; + put '%put NOTE: We already have a direct connection to WORK :-) ;'; + put '%return;'; + put '%end;'; + put '/* need to determine the library ENGINE first */'; + put '%local engine;'; + put 'data _null_;'; + put 'length lib_uri engine $256;'; + put 'call missing (of _all_);'; + put '/* get URI for the particular library */'; + put 'rc1=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put '/* get the Engine attribute of the previous object */'; + put 'rc2=metadata_getattr(lib_uri,''Engine'',engine);'; + put 'putlog "mm_assigndirectlib for &libref:" rc1= lib_uri= rc2= engine=;'; + put 'call symputx("liburi",lib_uri,''l'');'; + put 'call symputx("engine",engine,''l'');'; + put 'run;'; + put '/* now obtain engine specific connection details */'; + put '%if &engine=BASE %then %do;'; + put '%&mD.put NOTE: Retrieving BASE library path;'; + put 'data _null_;'; + put 'length up_uri $256 path cat_path $1024;'; + put 'retain cat_path;'; + put 'call missing (of _all_);'; + put '/* get all the filepaths of the UsingPackages association */'; + put 'i=1;'; + put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; + put 'do while (rc3>0);'; + put '/* get the DirectoryName attribute of the previous object */'; + put 'rc4=metadata_getattr(up_uri,''DirectoryName'',path);'; + put 'if i=1 then path = ''("''!!trim(path)!!''" '';'; + put 'else path ='' "''!!trim(path)!!''" '';'; + put 'cat_path = trim(cat_path) !! " " !! trim(path) ;'; + put 'i+1;'; + put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; + put 'end;'; + put 'cat_path = trim(cat_path) !! ")";'; + put '&mD.putlog "NOTE: Getting physical path for &libref library";'; + put '&mD.putlog rc3= up_uri= rc4= cat_path= path=;'; + put '&mD.putlog "NOTE: Libname cmd will be:";'; + put '&mD.putlog "libname &libref" cat_path;'; + put 'call symputx("filepath",cat_path,''l'');'; + put 'run;'; + put '%if %sysevalf(&sysver<9.4) %then %do;'; + put 'libname &libref &filepath;'; + put '%end;'; + put '%else %do;'; + put '/* apply the new filelocks option to cater for temporary locks */'; + put 'libname &libref &filepath filelockwait=5;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=REMOTE %then %do;'; + put 'data x;'; + put 'length rcCon rcProp rc k 3 uriCon uriProp PropertyValue PropertyName'; + put 'Delimiter $256 properties $2048;'; + put 'retain properties;'; + put 'rcCon = metadata_getnasn("&liburi", "LibraryConnection", 1, uriCon);'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", 1, uriProp);'; + put 'k = 1;'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; + put 'do while (rcProp > 0);'; + put 'rc = metadata_getattr(uriProp , "DefaultValue",PropertyValue);'; + put 'rc = metadata_getattr(uriProp , "PropertyName",PropertyName);'; + put 'rc = metadata_getattr(uriProp , "Delimiter",Delimiter);'; + put 'properties = trim(properties) !! " " !! trim(PropertyName)'; + put '!! trim(Delimiter) !! trim(PropertyValue);'; + put 'output;'; + put 'k+1;'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; + put 'end;'; + put '%&mD.put NOTE: Getting properties for REMOTE SHARE &libref library;'; + put '&mD.put _all_;'; + put '%&mD.put NOTE: Libname cmd will be:;'; + put '%&mD.put libname &libref &engine &properties slibref=&libref;'; + put 'call symputx ("properties",trim(properties),''l'');'; + put 'run;'; + put 'libname &libref &engine &properties slibref=&libref;'; + put '%end;'; + put '%else %if &engine=OLEDB %then %do;'; + put '%&mD.put NOTE: Retrieving OLEDB connection details;'; + put 'data _null_;'; + put 'length domain datasource provider properties schema'; + put 'connx_uri domain_uri conprop_uri lib_uri schema_uri value $256.;'; + put 'call missing (of _all_);'; + put '/* get source connection ID */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; + put '/* get connection domain */'; + put 'rc1=metadata_getnasn(connx_uri,''Domain'',1,domain_uri);'; + put 'rc2=metadata_getattr(domain_uri,''Name'',domain);'; + put '&mD.putlog / ''NOTE: '' // ''NOTE- connection id: '' connx_uri ;'; + put '&mD.putlog ''NOTE- domain: '' domain;'; + put '/* get DSN and PROVIDER from connection properties */'; + put 'i=0;'; + put 'do until (rc<0);'; + put 'i+1;'; + put 'rc=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; + put 'rc2=metadata_getattr(conprop_uri,''Name'',value);'; + put 'if value=''Connection.OLE.Property.DATASOURCE.Name.xmlKey.txt'' then do;'; + put 'rc3=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; + put 'end;'; + put 'else if value=''Connection.OLE.Property.PROVIDER.Name.xmlKey.txt'' then do;'; + put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',provider);'; + put 'end;'; + put 'else if value=''Connection.OLE.Property.PROPERTIES.Name.xmlKey.txt'' then'; + put 'do;'; + put 'rc5=metadata_getattr(conprop_uri,''DefaultValue'',properties);'; + put 'end;'; + put 'end;'; + put '&mD.putlog ''NOTE- dsn/provider/properties: '' /'; + put 'datasource provider properties;'; + put '&mD.putlog ''NOTE- schema: '' schema // ''NOTE-'';'; + put '/* get SCHEMA */'; + put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,lib_uri);'; + put 'rc7=metadata_getattr(lib_uri,''SchemaName'',schema);'; + put 'call symputx(''SQL_domain'',domain,''l'');'; + put 'call symputx(''SQL_dsn'',datasource,''l'');'; + put 'call symputx(''SQL_provider'',provider,''l'');'; + put 'call symputx(''SQL_properties'',properties,''l'');'; + put 'call symputx(''SQL_schema'',schema,''l'');'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put 'proc sql &sql_options;'; + put 'connect to OLEDB as &open_passthrough(INSERT_SQL=YES'; + put '/* need additional properties to make this work */'; + put 'properties=(''Integrated Security''=SSPI'; + put '''Persist Security Info''=True'; + put '%sysfunc(compress(%str(&SQL_properties),%str(())))'; + put ')'; + put 'DATASOURCE=&sql_dsn PROMPT=NO'; + put 'PROVIDER=&sql_provider SCHEMA=&sql_schema CONNECTION = GLOBAL);'; + put '%end;'; + put '%else %do;'; + put 'LIBNAME &libref OLEDB PROPERTIES=&sql_properties'; + put 'DATASOURCE=&sql_dsn PROVIDER=&sql_provider SCHEMA=&sql_schema'; + put '%if %length(&sql_domain)>0 %then %do;'; + put 'authdomain="&sql_domain"'; + put '%end;'; + put 'connection=shared;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=ODBC %then %do;'; + put '&mD.%put NOTE: Retrieving ODBC connection details;'; + put 'data _null_;'; + put 'length connx_uri conprop_uri value datasource up_uri schema $256.;'; + put 'call missing (of _all_);'; + put '/* get source connection ID */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; + put '/* get connection properties */'; + put 'i=0;'; + put 'do until (rc2<0);'; + put 'i+1;'; + put 'rc2=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; + put 'rc3=metadata_getattr(conprop_uri,''Name'',value);'; + put 'if value=''Connection.ODBC.Property.DATASRC.Name.xmlKey.txt'' then do;'; + put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; + put 'rc2=-1;'; + put 'end;'; + put 'end;'; + put '/* get SCHEMA */'; + put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,up_uri);'; + put 'rc7=metadata_getattr(up_uri,''SchemaName'',schema);'; + put '&mD.put rc= connx_uri= rc2= conprop_uri= rc3= value= rc4= datasource='; + put 'rc6= up_uri= rc7= schema=;'; + put 'call symputx(''SQL_schema'',schema,''l'');'; + put 'call symputx(''SQL_dsn'',datasource,''l'');'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put 'proc sql &sql_options;'; + put 'connect to ODBC as &open_passthrough'; + put '(INSERT_SQL=YES DATASRC=&sql_dsn. CONNECTION=global);'; + put '%end;'; + put '%else %do;'; + put 'libname &libref ODBC DATASRC=&sql_dsn SCHEMA=&sql_schema;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=POSTGRES %then %do;'; + put '%put NOTE: Obtaining POSTGRES library details;'; + put 'data _null_;'; + put 'length database ignore_read_only_columns direct_exe preserve_col_names'; + put 'preserve_tab_names server schema authdomain user password'; + put 'prop name value uri urisrc $256.;'; + put 'call missing (of _all_);'; + put '/* get database value */'; + put 'prop=''Connection.DBMS.Property.DB.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,database,"");'; + put 'if database^='''' then database=''database=''!!quote(trim(database));'; + put 'call symputx(''database'',database,''l'');'; + put '/* get IGNORE_READ_ONLY_COLUMNS value */'; + put 'prop=''Library.DBMS.Property.DBIROC.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,ignore_read_only_columns,"");'; + put 'if ignore_read_only_columns^='''' then ignore_read_only_columns='; + put '''ignore_read_only_columns=''!!ignore_read_only_columns;'; + put 'call symputx(''ignore_read_only_columns'',ignore_read_only_columns,''l'');'; + put '/* get DIRECT_EXE value */'; + put 'prop=''Library.DBMS.Property.DirectExe.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,direct_exe,"");'; + put 'if direct_exe^='''' then direct_exe=''direct_exe=''!!direct_exe;'; + put 'call symputx(''direct_exe'',direct_exe,''l'');'; + put '/* get PRESERVE_COL_NAMES value */'; + put 'prop=''Library.DBMS.Property.PreserveColNames.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,preserve_col_names,"");'; + put 'if preserve_col_names^='''' then preserve_col_names='; + put '''preserve_col_names=''!!preserve_col_names;'; + put 'call symputx(''preserve_col_names'',preserve_col_names,''l'');'; + put '/* get PRESERVE_TAB_NAMES value */'; + put '/* be careful with PRESERVE_TAB_NAMES=YES - it will mean your table will'; + put 'become case sensitive!! */'; + put 'prop=''Library.DBMS.Property.PreserveTabNames.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,preserve_tab_names,"");'; + put 'if preserve_tab_names^='''' then preserve_tab_names='; + put '''preserve_tab_names=''!!preserve_tab_names;'; + put 'call symputx(''preserve_tab_names'',preserve_tab_names,''l'');'; + put '/* get SERVER value */'; + put 'if metadata_getnasn("&liburi","LibraryConnection",1,uri)>0 then do;'; + put 'prop=''Connection.DBMS.Property.SERVER.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop(uri,prop,server,"");'; + put 'end;'; + put 'if server^='''' then server=''server=''!!quote(cats(server));'; + put 'call symputx(''server'',server,''l'');'; + put '/* get SCHEMA value */'; + put 'if metadata_getnasn("&liburi","UsingPackages",1,uri)>0 then do;'; + put 'rc=metadata_getattr(uri,"SchemaName",schema);'; + put 'end;'; + put 'if schema^='''' then schema=''schema=''!!schema;'; + put 'call symputx(''schema'',schema,''l'');'; + put '/* get AUTHDOMAIN value */'; + put '/* this is only useful if the user account contains that auth domain'; + put 'if metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then do;'; + put 'rc=metadata_getnasn(uri,"Domain",1,urisrc);'; + put 'rc=metadata_getattr(urisrc,"Name",authdomain);'; + put 'end;'; + put 'if authdomain^='''' then authdomain=''authdomain=''!!quote(trim(authdomain));'; + put '*/'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/* get user & pass */'; + put 'if authdomain='''' & metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then'; + put 'do;'; + put 'rc=metadata_getattr(uri,"UserID",user);'; + put 'rc=metadata_getattr(uri,"Password",password);'; + put 'end;'; + put 'if user^='''' then do;'; + put 'user=''user=''!!quote(trim(user));'; + put 'password=''password=''!!quote(trim(password));'; + put 'end;'; + put 'call symputx(''user'',user,''l'');'; + put 'call symputx(''password'',password,''l'');'; + put '&md.put _all_;'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put '%put %str(WARN)ING: Passthrough option for postgres not yet supported;'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put '%if &mdebug=1 %then %do;'; + put '%put NOTE: Executing the following:/;'; + put '%put NOTE- libname &libref POSTGRES &database &ignore_read_only_columns;'; + put '%put NOTE- &direct_exe &preserve_col_names &preserve_tab_names;'; + put '%put NOTE- &server &schema &authdomain &user &password //;'; + put '%end;'; + put 'libname &libref POSTGRES &database &ignore_read_only_columns &direct_exe'; + put '&preserve_col_names &preserve_tab_names &server &schema &authdomain'; + put '&user &password;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=ORACLE %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null_;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema $256;'; + put 'call missing (of _all_);'; + put '/* get auth domain */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; + put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; + put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/* path */'; + put 'rc=metadata_getprop(assocuri1,'; + put '''Connection.Oracle.Property.PATH.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref ORACLE path=&path schema=&schema;'; + put '%put NOTE- authdomain=&authdomain;'; + put '%put NOTE-;'; + put 'libname &libref ORACLE path=&path schema=&schema authdomain=&authdomain;'; + put '%end;'; + put '%else %if &engine=SQLSVR %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; + put 'passwd $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; + put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; + put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; + put 'call symputx(''user'',userid,''l'');'; + put 'call symputx(''pass'',passwd,''l'');'; + put '/* path */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; + put 'rc=metadata_getprop(assocuri2,'; + put '''Connection.SQL.Property.Datasrc.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref SQLSVR datasrc=&path schema=&schema ;'; + put '%put NOTE- user="&user" pass="XXX";'; + put '%put NOTE-;'; + put 'libname &libref SQLSVR datasrc=&path schema=&schema user="&user" pass="&pass";'; + put '%end;'; + put '%else %if &engine=TERADATA %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; + put 'passwd $256;'; + put 'call missing (of _all_);'; + put '/* get auth domain */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; + put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; + put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/*'; + put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; + put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; + put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; + put 'call symputx(''user'',userid,''l'');'; + put 'call symputx(''pass'',passwd,''l'');'; + put '*/'; + put '/* path */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; + put 'rc=metadata_getprop(assocuri2,'; + put '''Connection.Teradata.Property.SERVER.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref TERADATA server="&path" schema=&schema ;'; + put '%put NOTe- authdomain=&authdomain;'; + put '%put NOTE-;'; + put 'libname &libref TERADATA server="&path" schema=&schema authdomain=&authdomain;'; + put '%end;'; + put '%else %if &engine= %then %do;'; + put '%put NOTE: Libref &libref is not registered in metadata;'; + put '%&mAbort.mp_abort('; + put 'msg=%str(ERR)OR: Libref &libref is not registered in metadata'; + put ',mac=mm_assigndirectlib.sas);'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put '%put %str(WARN)ING: Engine &engine is currently unsupported;'; + put '%put %str(WARN)ING- Please contact your support team.;'; + put '%return;'; + put '%end;'; + put '%mend mm_assigndirectlib;'; + put '%macro mm_getrepos('; + put 'outds=work.mm_getrepos'; + put ')/*/STORE SOURCE*/;'; + put '* use a temporary fileref to hold the response;'; + put 'filename response temp;'; + put '/* get list of libraries */'; + put 'proc metadata in='; + put '"1"'; + put 'out=response;'; + put 'run;'; + put '/* write the response to the log for debugging */'; + put '/*'; + put 'data _null_;'; + put 'infile response lrecl=1048576;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '*/'; + put '/* create an XML map to read the response */'; + put 'filename sxlemap temp;'; + put 'data _null_;'; + put 'file sxlemap;'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository";'; + put 'put "";'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Id";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Name";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Desc";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@DefaultNS";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryType";'; + put 'put "characterstring20";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryFormat";'; + put 'put "characterstring10";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@Access";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@CurrentAccess";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@PauseState";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Path";'; + put 'put "";'; + put 'put "characterstring256";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Engine";'; + put 'put "";'; + put 'put "characterstring8";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Options";'; + put 'put "";'; + put 'put "characterstring32";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataCreated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataUpdated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put ''
'';'; + put 'run;'; + put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; + put 'proc sort data= _XML_.SASRepos out=&outds;'; + put 'by name;'; + put 'run;'; + put '/* clear references */'; + put 'filename sxlemap clear;'; + put 'filename response clear;'; + put 'libname _XML_ clear;'; + put '%mend mm_getrepos;'; + put '%macro dc_assignlib(type,libref,passthru=);'; + put '%put &sysmacroname entry vars:;'; + put '%put _local_;'; + put '/* take current repository */'; + put '%local repo repocnt x;'; + put '%let repo=%sysfunc(getoption(metarepository));'; + put '/* get list of repositories and filter */'; + put '%mm_getrepos(outds=repos)'; + put '%let repocnt=0;'; + put 'data repos;'; + put 'set repos;'; + put 'where repositorytype in(''CUSTOM'',''FOUNDATION'')'; + put '& upcase(name) ne "%upcase(&repo)";'; + put 'keep id name ;'; + put 'call symputx(cats(''repo'',_n_),name,''l'');'; + put 'call symputx(''repocnt'',_n_,''l'');'; + put 'run;'; + put '/* find out which of these repositories has the libref we are searching for */'; + put '%local lib_uri;'; + put '%let lib_uri=NOTFOUND;'; + put 'data _null_; /* check default repo first */'; + put 'length lib_uri $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; + put 'run;'; + put '%if &lib_uri=NOTFOUND %then %do;'; + put '%do x=1 %to &repocnt;'; + put 'options metarepository=&&repo&x;'; + put 'data _null_;'; + put 'length lib_uri $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; + put 'run;'; + put '%if &lib_uri ne NOTFOUND %then %let x=%eval(&repocnt+1);'; + put '%end;'; + put '%end;'; + put '%if &type=READ %then %do;'; + put '%mm_assignlib(&libref)'; + put '%end;'; + put '%else %if &type=WRITE %then %do;'; + put '%mm_assigndirectlib(&libref,open_passthrough=&passthru)'; + put '%end;'; + put 'options metarepository=&repo;'; + put '%mend dc_assignlib;'; + put '%macro mf_existds(libds'; + put ')/*/STORE SOURCE*/;'; + put '%if %sysfunc(exist(&libds)) ne 1 & %sysfunc(exist(&libds,VIEW)) ne 1 %then 0;'; + put '%else 1;'; + put '%mend mf_existds;'; + put '%macro mf_getattrn('; + put 'libds'; + put ',attr'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid rc;'; + put '%let dsid=%sysfunc(open(&libds,is));'; + put '%if &dsid = 0 %then %do;'; + put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; + put '%put %sysfunc(sysmsg());'; + put '-1'; + put '%end;'; + put '%else %do;'; + put '%sysfunc(attrn(&dsid,&attr))'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%mend mf_getattrn;'; + put '%macro mf_getvalue(libds,variable,filter=1'; + put ')/*/STORE SOURCE*/;'; + put '%if %mf_getattrn(&libds,NLOBS)>0 %then %do;'; + put '%local dsid rc &variable;'; + put '%let dsid=%sysfunc(open(&libds(where=(&filter))));'; + put '%syscall set(dsid);'; + put '%let rc = %sysfunc(fetch(&dsid));'; + put '%let rc = %sysfunc(close(&dsid));'; + put '%trim(&&&variable)'; + put '%end;'; + put '%mend mf_getvalue;'; + put '%macro mf_abort(mac=mf_abort.sas, msg=, iftrue=%str(1=1)'; + put ')/*/STORE SOURCE*/;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mf_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%abort;'; + put '%mend mf_abort;'; + put '/** @endcond */'; + put '%macro mf_verifymacvars('; + put 'verifyVars /* list of macro variable NAMES */'; + put ',makeUpcase=NO /* set to YES to make all the variable VALUES uppercase */'; + put ',mAbort=SOFT'; + put ')/*/STORE SOURCE*/;'; + put '%local verifyIterator verifyVar abortmsg;'; + put '%do verifyIterator=1 %to %sysfunc(countw(&verifyVars,%str( )));'; + put '%let verifyVar=%qscan(&verifyVars,&verifyIterator,%str( ));'; + put '%if not %symexist(&verifyvar) %then %do;'; + put '%let abortmsg= Variable &verifyVar is MISSING;'; + put '%goto exit_err;'; + put '%end;'; + put '%if %length(%trim(&&&verifyVar))=0 %then %do;'; + put '%let abortmsg= Variable &verifyVar is EMPTY;'; + put '%goto exit_err;'; + put '%end;'; + put '%if &makeupcase=YES %then %do;'; + put '%let &verifyVar=%upcase(&&&verifyvar);'; + put '%end;'; + put '%end;'; + put '%goto exit_success;'; + put '%exit_err:'; + put '%put &abortmsg;'; + put '%mf_abort(iftrue=(&mabort ne SOFT),'; + put 'mac=mf_verifymacvars,'; + put 'msg=%str(&abortmsg)'; + put ')'; + put '0'; + put '%return;'; + put '%exit_success:'; + put '1'; + put '%mend mf_verifymacvars;'; + put '%macro mf_getVarFormat(libds /* two level ds name */'; + put ', var /* variable name from which to return the format */'; + put ', force=0'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid vnum vformat rc vlen vtype;'; + put '/* Open dataset */'; + put '%let dsid = %sysfunc(open(&libds));'; + put '%if &dsid > 0 %then %do;'; + put '/* Get variable number */'; + put '%let vnum = %sysfunc(varnum(&dsid, &var));'; + put '/* Get variable format */'; + put '%if(&vnum > 0) %then %let vformat=%sysfunc(varfmt(&dsid, &vnum));'; + put '%else %do;'; + put '%put NOTE: Variable &var does not exist in &libds;'; + put '%let rc = %sysfunc(close(&dsid));'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: dataset &libds not opened! (rc=&dsid);'; + put '%put &sysmacroname: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '/* supply a default if no format available */'; + put '%if %length(&vformat)<2 & &force=1 %then %do;'; + put '%let vlen = %sysfunc(varlen(&dsid, &vnum));'; + put '%let vtype = %sysfunc(vartype(&dsid, &vnum.));'; + put '%if &vtype=C %then %let vformat=$&vlen..;'; + put '%else %let vformat=best.;'; + put '%end;'; + put '/* Close dataset */'; + put '%let rc = %sysfunc(close(&dsid));'; + put '/* Return variable format */'; + put '&vformat'; + put '%mend mf_getVarFormat;'; + put '%macro mddl_sas_cntlout(libds=WORK.CNTLOUT);'; + put 'proc sql;'; + put 'create table &libds('; + put 'FMTNAME char(32) label=''Format name'''; + put '/*'; + put 'to accommodate larger START values, mp_loadformat.sas will need the'; + put 'SQL dependency removed (proc sql needs to accommodate 3 index values in'; + put 'a 32767 ibufsize limit)'; + put '*/'; + put ',START char(10000) label=''Starting value for format'''; + put ',END char(32767) label=''Ending value for format'''; + put ',LABEL char(32767) label=''Format value label'''; + put ',MIN num length=3 label=''Minimum length'''; + put ',MAX num length=3 label=''Maximum length'''; + put ',DEFAULT num length=3 label=''Default length'''; + put ',LENGTH num length=3 label=''Format length'''; + put ',FUZZ num label=''Fuzz value'''; + put ',PREFIX char(2) label=''Prefix characters'''; + put ',MULT num label=''Multiplier'''; + put ',FILL char(1) label=''Fill character'''; + put ',NOEDIT num length=3 label=''Is picture string noedit?'''; + put ',TYPE char(1) label=''Type of format'''; + put ',SEXCL char(1) label=''Start exclusion'''; + put ',EEXCL char(1) label=''End exclusion'''; + put ',HLO char(13) label=''Additional information'''; + put ',DECSEP char(1) label=''Decimal separator'''; + put ',DIG3SEP char(1) label=''Three-digit separator'''; + put ',DATATYPE char(8) label=''Date/time/datetime?'''; + put ',LANGUAGE char(8) label=''Language for date strings'''; + put ');'; + put '%mend mddl_sas_cntlout;'; + put '%macro mf_getuniquename(prefix=MC);'; + put '&prefix.%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32-%length(&prefix))'; + put '%mend mf_getuniquename;'; + put '%macro mp_cntlout('; + put 'iftrue=(1=1)'; + put ',libcat='; + put ',cntlout=work.fmtextract'; + put ',fmtlist=0'; + put ')/*/STORE SOURCE*/;'; + put '%local ddlds cntlds i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%let ddlds=%mf_getuniquename();'; + put '%let cntlds=%mf_getuniquename();'; + put '%mddl_sas_cntlout(libds=&ddlds)'; + put '%if %index(&libcat,-)>0 and %scan(&libcat,2,-)=FC %then %do;'; + put '%let libcat=%scan(&libcat,1,-);'; + put '%end;'; + put 'proc format lib=&libcat cntlout=&cntlds;'; + put '%if "&fmtlist" ne "0" %then %do;'; + put 'select'; + put '%do i=1 %to %sysfunc(countw(&fmtlist));'; + put '%scan(&fmtlist,&i,%str( ))'; + put '%end;'; + put ';'; + put '%end;'; + put 'run;'; + put 'data &cntlout;'; + put 'if 0 then set &ddlds;'; + put 'set &cntlds;'; + put 'if type="N" then do;'; + put 'start=cats(start);'; + put 'end=cats(end);'; + put 'end;'; + put 'run;'; + put 'proc sort;'; + put 'by fmtname start;'; + put 'run;'; + put 'proc sql;'; + put 'drop table &ddlds,&cntlds;'; + put '%mend mp_cntlout;'; + put '/** @endcond */'; + put '%macro mf_getvarlist(libds'; + put ',dlm=%str( )'; + put ',quote=no'; + put ',typefilter=A'; + put ')/*/STORE SOURCE*/;'; + put '/* declare local vars */'; + put '%local outvar dsid nvars x rc dlm q var vtype;'; + put '/* credit Rowland Hale - byte34 is double quote, 39 is single quote */'; + put '%if %upcase("e)=DOUBLE %then %let q=%qsysfunc(byte(34));'; + put '%else %if %upcase("e)=SINGLE %then %let q=%qsysfunc(byte(39));'; + put '/* open dataset in macro */'; + put '%let dsid=%sysfunc(open(&libds));'; + put '%if &dsid %then %do;'; + put '%let nvars=%sysfunc(attrn(&dsid,NVARS));'; + put '%if &nvars>0 %then %do;'; + put '/* add variables with supplied delimeter */'; + put '%do x=1 %to &nvars;'; + put '/* get variable type */'; + put '%let vtype=%sysfunc(vartype(&dsid,&x));'; + put '%if &vtype=&typefilter or &typefilter=A %then %do;'; + put '%let var=&q.%sysfunc(varname(&dsid,&x))&q.;'; + put '%if &var=&q&q %then %do;'; + put '%put &sysmacroname: Empty column found in &libds!;'; + put '%let var=&q. &q.;'; + put '%end;'; + put '%if %quote(&outvar)=%quote() %then %let outvar=&var;'; + put '%else %let outvar=&outvar.&dlm.&var.;'; + put '%end;'; + put '%end;'; + put '%end;'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: Unable to open &libds (rc=&dsid);'; + put '%put &sysmacroname: SYSMSG= %sysfunc(sysmsg());'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%do;%unquote(&outvar)%end;'; + put '%mend mf_getvarlist;'; + put '%macro mf_getvartype(libds /* two level name */'; + put ', var /* variable name from which to return the type */'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid vnum vtype rc;'; + put '/* Open dataset */'; + put '%let dsid = %sysfunc(open(&libds));'; + put '%if &dsid. > 0 %then %do;'; + put '/* Get variable number */'; + put '%let vnum = %sysfunc(varnum(&dsid, &var));'; + put '/* Get variable type (C/N) */'; + put '%if(&vnum. > 0) %then %let vtype = %sysfunc(vartype(&dsid, &vnum.));'; + put '%else %do;'; + put '%put NOTE: Variable &var does not exist in &libds;'; + put '%let vtype = %str( );'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: dataset &libds not opened! (rc=&dsid);'; + put '%put &sysmacroname: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '/* Close dataset */'; + put '%let rc = %sysfunc(close(&dsid));'; + put '/* Return variable type */'; + put '&vtype'; + put '%mend mf_getvartype;'; + put '%macro mf_nobs(libds'; + put ')/*/STORE SOURCE*/;'; + put '%mf_getattrn(&libds,NLOBS)'; + put '%mend mf_nobs;'; + put '%macro mp_filtergenerate(inds,outref=filter);'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc - on macro entry)'; + put ')'; + put 'filename &outref temp;'; + put '%if %mf_nobs(&inds)=0 %then %do;'; + put '/* ensure we have a default filter */'; + put 'data _null_;'; + put 'file &outref;'; + put 'put ''1=1'';'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put 'proc sort data=&inds;'; + put 'by SUBGROUP_ID;'; + put 'run;'; + put 'data _null_;'; + put 'file &outref lrecl=32800;'; + put 'set &inds end=last;'; + put 'by SUBGROUP_ID;'; + put 'if _n_=1 then put ''(('';'; + put 'else if first.SUBGROUP_ID then put +1 GROUP_LOGIC ''('';'; + put 'else put +2 SUBGROUP_LOGIC;'; + put 'put +4 VARIABLE_NM OPERATOR_NM RAW_VALUE;'; + put 'if last.SUBGROUP_ID then put '')''@;'; + put 'if last then put '')'';'; + put 'run;'; + put '%end;'; + put '%mend mp_filtergenerate;'; + put '%macro mp_filtervalidate(inref,targetds,abort=YES,outds=work.mp_filtervalidate);'; + put '%mp_abort(iftrue= (&syscc ne 0 or &syserr ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc / syserr=&syserr - on macro entry)'; + put ')'; + put '%local fref1;'; + put '%let fref1=%mf_getuniquefileref();'; + put 'data _null_;'; + put 'file &fref1;'; + put 'infile &inref end=eof;'; + put 'if _n_=1 then do;'; + put 'put "proc sql;";'; + put 'put "validate select * from &targetds";'; + put 'put "where " ;'; + put 'end;'; + put 'input;'; + put 'put _infile_;'; + put 'putlog _infile_;'; + put 'if eof then put ";quit;";'; + put 'run;'; + put '%inc &fref1;'; + put 'data &outds;'; + put 'if &sqlrc or &syscc or &syserr then do;'; + put 'REASON_CD=''VALIDATION_ERR''!!''OR: ''!!'; + put 'coalescec(symget(''SYSERRORTEXT''),symget(''SYSWARNINGTEXT''));'; + put 'output;'; + put 'end;'; + put 'else stop;'; + put 'run;'; + put 'filename &fref1 clear;'; + put '%if %mf_nobs(&outds)>0 %then %do;'; + put '%if &abort=YES %then %do;'; + put 'data _null_;'; + put 'set &outds;'; + put 'call symputx(''REASON_CD'',reason_cd,''l'');'; + put 'stop;'; + put 'run;'; + put '%mp_abort('; + put 'mac=&sysmacroname,'; + put 'msg=%str(Filter validation issues.)'; + put ')'; + put '%end;'; + put '%let syscc=1008;'; + put '%end;'; + put '%mend mp_filtervalidate;'; + put '%macro mp_filtercheck(inds,targetds=,outds=work.badrecords,abort=YES);'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc - on macro entry)'; + put ')'; + put '/* Validate input column */'; + put '%local vtype;'; + put '%let vtype=%mf_getvartype(&inds,RAW_VALUE);'; + put '%mp_abort(iftrue=(&abort=YES and &vtype ne C),'; + put 'mac=&sysmacroname,'; + put 'msg=%str(%str(ERR)OR: RAW_VALUE must be character)'; + put ')'; + put '%if &vtype ne C %then %do;'; + put '%put &sysmacroname: RAW_VALUE must be character;'; + put '%let syscc=42;'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Sanitise the values based on valid value lists, then strip out'; + put '* quotes, commas, periods and spaces.'; + put '* Only numeric values should remain'; + put '*/'; + put '%local reason_cd nobs;'; + put '%let nobs=0;'; + put 'data &outds;'; + put '/*length GROUP_LOGIC SUBGROUP_LOGIC $3 SUBGROUP_ID 8 VARIABLE_NM $32'; + put 'OPERATOR_NM $10 RAW_VALUE $4000;*/'; + put 'set &inds;'; + put 'length reason_cd $4032 vtype $1 vnum dsid 8 tmp $4000;'; + put 'drop tmp;'; + put '/* quick check to ensure column exists */'; + put 'if upcase(VARIABLE_NM) not in'; + put '(%upcase(%mf_getvarlist(&targetds,dlm=%str(,),quote=SINGLE)))'; + put 'then do;'; + put 'REASON_CD="Variable "!!cats(variable_nm)!!" not in &targetds";'; + put 'putlog REASON_CD= VARIABLE_NM=;'; + put 'call symputx(''reason_cd'',reason_cd,''l'');'; + put 'call symputx(''nobs'',_n_,''l'');'; + put 'output;'; + put 'return;'; + put 'end;'; + put '/* need to open the dataset to get the column type */'; + put 'dsid=open("&targetds","i");'; + put 'if dsid>0 then do;'; + put 'vnum=varnum(dsid,VARIABLE_NM);'; + put 'if vnum<1 then do;'; + put '/* should not happen as was also tested for above */'; + put 'REASON_CD=cats("Variable (",VARIABLE_NM,") not found in &targetds");'; + put 'putlog REASON_CD= dsid=;'; + put 'call symputx(''reason_cd'',reason_cd,''l'');'; + put 'call symputx(''nobs'',_n_,''l'');'; + put 'output;'; + put 'return;'; + put 'end;'; + put '/* now we can get the type */'; + put 'else vtype=vartype(dsid,vnum);'; + put 'end;'; + put '/* closed list checks */'; + put 'if GROUP_LOGIC not in (''AND'',''OR'') then do;'; + put 'REASON_CD=''GROUP_LOGIC should be AND/OR, not:''!!cats(GROUP_LOGIC);'; + put 'putlog REASON_CD= GROUP_LOGIC=;'; + put 'call symputx(''reason_cd'',reason_cd,''l'');'; + put 'call symputx(''nobs'',_n_,''l'');'; + put 'output;'; + put 'end;'; + put 'if SUBGROUP_LOGIC not in (''AND'',''OR'') then do;'; + put 'REASON_CD=''SUBGROUP_LOGIC should be AND/OR, not:''!!cats(SUBGROUP_LOGIC);'; + put 'putlog REASON_CD= SUBGROUP_LOGIC=;'; + put 'call symputx(''reason_cd'',reason_cd,''l'');'; + put 'call symputx(''nobs'',_n_,''l'');'; + put 'output;'; + put 'end;'; + put 'if mod(SUBGROUP_ID,1) ne 0 then do;'; + put 'REASON_CD=''SUBGROUP_ID should be integer, not ''!!cats(subgroup_id);'; + put 'putlog REASON_CD= SUBGROUP_ID=;'; + put 'call symputx(''reason_cd'',reason_cd,''l'');'; + put 'call symputx(''nobs'',_n_,''l'');'; + put 'output;'; + put 'end;'; + put 'if OPERATOR_NM not in'; + put '(''='',''>'',''<'',''<='',''>='',''NE'',''GE'',''LE'',''BETWEEN'',''IN'',''NOT IN'',''CONTAINS'')'; + put 'then do;'; + put 'REASON_CD=''Invalid OPERATOR_NM: ''!!cats(OPERATOR_NM);'; + put 'putlog REASON_CD= OPERATOR_NM=;'; + put 'call symputx(''reason_cd'',reason_cd,''l'');'; + put 'call symputx(''nobs'',_n_,''l'');'; + put 'output;'; + put 'end;'; + put '/* special missing logic */'; + put 'if vtype=''N'''; + put 'and OPERATOR_NM in (''='',''>'',''<'',''<='',''>='',''NE'',''GE'',''LE'')'; + put 'and cats(upcase(raw_value)) in ('; + put '''.'',''.A'',''.B'',''.C'',''.D'',''.E'',''.F'',''.G'',''.H'',''.I'',''.J'',''.K'',''.L'',''.M'',''.N'''; + put '''.N'',''.O'',''.P'',''.Q'',''.R'',''.S'',''.T'',''.U'',''.V'',''.W'',''.X'',''.Y'',''.Z'',''._'''; + put ')'; + put 'then do;'; + put '/* valid numeric - exit data step loop */'; + put 'return;'; + put 'end;'; + put '/* special logic */'; + put 'if OPERATOR_NM in (''IN'',''NOT IN'',''BETWEEN'') then do;'; + put 'if OPERATOR_NM=''BETWEEN'' then raw_value1=tranwrd(raw_value,'' AND '','','');'; + put 'else do;'; + put 'if substr(raw_value,1,1) ne ''('''; + put 'or substr(cats(reverse(raw_value)),1,1) ne '')'''; + put 'then do;'; + put 'REASON_CD=''Missing start/end bracket in RAW_VALUE'';'; + put 'putlog REASON_CD= OPERATOR_NM= raw_value= raw_value1= ;'; + put 'call symputx(''reason_cd'',reason_cd,''l'');'; + put 'call symputx(''nobs'',_n_,''l'');'; + put 'output;'; + put 'end;'; + put 'else raw_value1=substr(raw_value,2,max(length(raw_value)-2,0));'; + put 'end;'; + put '/* we now have a comma seperated list of values */'; + put 'if vtype=''N'' then do i=1 to countc(raw_value1, '','')+1;'; + put 'tmp=scan(raw_value1,i,'','');'; + put 'if cats(tmp) ne ''.'' and input(tmp, ?? 8.) eq . then do;'; + put 'REASON_CD=''Non Numeric value provided'';'; + put 'putlog REASON_CD= OPERATOR_NM= raw_value= raw_value1= ;'; + put 'call symputx(''reason_cd'',reason_cd,''l'');'; + put 'call symputx(''nobs'',_n_,''l'');'; + put 'output;'; + put 'end;'; + put 'return;'; + put 'end;'; + put 'end;'; + put 'else raw_value1=raw_value;'; + put '/* remove nested literals eg '''' */'; + put 'raw_value1=tranwrd(raw_value1,"''''",'''');'; + put '/* now match string literals (always single quotes) */'; + put 'raw_value2=raw_value1;'; + put 'regex = prxparse("s/(\'').*?(\'')//");'; + put 'call prxchange(regex,-1,raw_value2);'; + put '/* remove commas and periods*/'; + put 'raw_value3=compress(raw_value2,'',.'');'; + put '/* output records that contain values other than digits and spaces */'; + put 'if notdigit(compress(raw_value3,'' ''))>0 then do;'; + put 'putlog raw_value3= $hex32.;'; + put 'REASON_CD=cats(''Invalid RAW_VALUE:'',raw_value);'; + put 'putlog REASON_CD= raw_value= raw_value1= raw_value2= raw_value3=;'; + put 'call symputx(''reason_cd'',reason_cd,''l'');'; + put 'call symputx(''nobs'',_n_,''l'');'; + put 'output;'; + put 'end;'; + put 'run;'; + put 'data _null_;'; + put 'set &outds end=last;'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue=(&abort=YES and &nobs>0),'; + put 'mac=&sysmacroname,'; + put 'msg=%str(Data issue: %superq(reason_cd))'; + put ')'; + put '%if &nobs>0 %then %do;'; + put '%let syscc=1008;'; + put '%return;'; + put '%end;'; + put '/**'; + put '* syntax checking passed but it does not mean the filter is valid'; + put '* for that we can run a proc sql validate query'; + put '*/'; + put '%local fref1;'; + put '%let fref1=%mf_getuniquefileref();'; + put '%mp_filtergenerate(&inds,outref=&fref1)'; + put '/* this macro will also set syscc to 1008 if any issues found */'; + put '%mp_filtervalidate(&fref1,&targetds,outds=&outds,abort=&abort)'; + put '%mend mp_filtercheck;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file'; + put '@brief Retrieves column info to enable population of dropdowns'; + put '@details An optional filterquery may be provided, if so then it is validated'; + put 'and then used to filter the subsequent results.'; + put '

Service Inputs

'; + put '
IWANT
'; + put '|libds:$19.|col:$9.|'; + put '|---|---|'; + put '|DC258467.MPE_X_TEST|SOME_TIME|'; + put '
FILTERQUERY
'; + put '|GROUP_LOGIC:$3|SUBGROUP_LOGIC:$3|SUBGROUP_ID:8.|VARIABLE_NM:$32|OPERATOR_NM:$10|RAW_VALUE:$32767|'; + put '|---|---|---|---|---|---|'; + put '|AND|AND|1|SOME_BESTNUM|>|1|'; + put '|AND|AND|1|SOME_TIME|=|77333|'; + put '

Service Outputs

'; + put '
VALS
'; + put 'The type of this column actually depends on the underlying column type, so it can change'; + put '|FORMATTED|UNFORMATTED|'; + put '|---|---|'; + put '|$44.00|44|'; + put '
META
'; + put '|COLUMN:$32.|SASFORMAT:$32.|'; + put '|---|---|'; + put '|COL_NAME|DOLLAR8.2|'; + put '

SAS Macros

'; + put '@li mf_existds.sas'; + put '@li mf_getvalue.sas'; + put '@li mf_verifymacvars.sas'; + put '@li dc_assignlib.sas'; + put '@li mf_getvarformat.sas'; + put '@li mp_abort.sas'; + put '@li mp_cntlout.sas'; + put '@li mp_filtercheck.sas'; + put '@li mp_filtergenerate.sas'; + put '@version 9.2'; + put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; + put 'downloaded from here: https://4gl.uk/dcdeploy'; + put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; + put 'and may not be re-distributed or re-sold without the express permission of'; + put '4GL Apps Ltd.'; + put '**/'; + put '%mpeinit()'; + put '/* input table may or may not exist */'; + put 'data work.initvars;'; + put 'length GROUP_LOGIC $3 SUBGROUP_LOGIC $3 SUBGROUP_ID 8 VARIABLE_NM $32'; + put 'OPERATOR_NM $10 RAW_VALUE $32767;'; + put 'call missing(of _all_);'; + put 'stop;'; + put 'data work.filterquery;'; + put 'set %sysfunc(ifc('; + put '%mf_existds(work.filterquery)=1'; + put ',work.filterquery'; + put ',work.initvars'; + put '));'; + put 'run;'; + put '/* print data for debugging */'; + put 'data _null_;'; + put 'set work.iwant;'; + put 'put (_all_)(=);'; + put 'run;'; + put 'data _null_;'; + put 'set work.filterquery;'; + put 'put (_all_)(=);'; + put 'run;'; + put '%let libds=%mf_getvalue(work.iwant,libds);'; + put '%let col2=%mf_getvalue(work.iwant,col);'; + put '%let is_fmt=0;'; + put '%put &=libds;'; + put '%put &=col2;'; + put '%mp_abort(iftrue= (%mf_verifymacvars(libds col2)=0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Missing inputs from iwant. Libds=&libds col=&col2 )'; + put ')'; + put '%dc_assignlib(WRITE,%scan(&libds,1,.))'; + put 'data _null_;'; + put 'set work.iwant;'; + put '/* check if the request is for a format catalog */'; + put 'call symputx(''orig_libds'',libds);'; + put 'is_fmt=0;'; + put 'if substr(cats(reverse(libds)),1,3)=:''CF-'' then do;'; + put 'libds=scan(libds,1,''-'');'; + put 'putlog "Format Catalog Captured";'; + put 'call symputx(''libds'',''work.fmtextract'');'; + put 'is_fmt=1;'; + put 'end;'; + put 'call symputx(''is_fmt'',is_fmt);'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%mp_cntlout('; + put 'iftrue=(&is_fmt=1)'; + put ',libcat=&orig_libds'; + put ',fmtlist=0'; + put ',cntlout=work.fmtextract'; + put ')'; + put '/**'; + put '* Validate the filter query'; + put '*/'; + put '%mp_filtercheck(work.filterquery,targetds=&libds,abort=YES)'; + put '/**'; + put '* Prepare the query'; + put '*/'; + put '%mp_filtergenerate(work.filterquery,outref=myfilter)'; + put '/* cannot %inc in a sql where clause, only data step, so - use a view */'; + put 'data work.vw_vals/view=work.vw_vals;'; + put 'set &libds;'; + put 'where %inc myfilter;;'; + put 'run;'; + put 'options obs=2000;/* restrict num of output values */'; + put 'proc sql;'; + put 'create table vals as select distinct'; + put 'put(&col2,%mf_getVarFormat(&libds,&col2,force=1)) as formatted,'; + put '&col2 as unformatted'; + put 'from work.vw_vals;'; + put 'options obs=max;'; + put 'data vals;'; + put '/* ensure empty value if table is empty, for dropdowns */'; + put 'if nobs=0 then output;'; + put 'set vals nobs=nobs;'; + put 'format unformatted ;'; + put 'output;'; + put 'run;'; + put 'data meta;'; + put 'column="&col2";'; + put 'sasformat="%mf_getVarFormat(&libds,&col2)";'; + put 'run;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(syscc=&syscc)'; + put ')'; + put '%webout(OPEN)'; + put '%webout(OBJ,vals,missing=STRING,showmeta=YES)'; + put '%webout(OBJ,meta)'; + put '%webout(CLOSE)'; + put '%mpeterm()'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=getddl; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Files

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as FMTCAT,'; + put 'FMTNAME'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'LENGTH num'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.length as MAXW'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put ')))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] workobs= (0) When set to a positive integer, will create a new'; + put 'output object (WORK) which contains this number of observations from all'; + put 'tables in the WORK library.'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX,workobs=0'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&workobs) > 0 %then %do;'; + put '/* if debug mode, send back first XX records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10'; + put ',maxobs=&workobs'; + put ')'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '%macro mm_assignlib('; + put 'libref'; + put ',mAbort=HARD'; + put ')/*/STORE SOURCE*/;'; + put '%local mp_abort msg;'; + put '%let mp_abort=0;'; + put '%if %sysfunc(libref(&libref)) %then %do;'; + put 'data _null_;'; + put 'length liburi LibName msg $200;'; + put 'call missing(of _all_);'; + put 'nobj=metadata_getnobj("omsobj:SASLibrary?@Libref=''&libref''",1,liburi);'; + put 'if nobj=1 then do;'; + put 'rc=metadata_getattr(liburi,"Name",LibName);'; + put '/* now try and assign it */'; + put 'if libname("&libref",,''meta'',cats(''liburi="'',liburi,''";'')) ne 0 then do;'; + put 'putlog "&libref could not be assigned";'; + put 'putlog liburi=;'; + put '/**'; + put '* Fetch the system message for display in the abort modal. This is'; + put '* not always helpful though. One example, previously received:'; + put '* NOTE: Libref XX refers to the same library metadata as libref XX.'; + put '*/'; + put 'msg=sysmsg();'; + put 'if msg=:''ERROR: Libref SAVE is not assigned.'' then do;'; + put 'msg=catx(" ",'; + put '"Could not assign %upcase(&libref).",'; + put '"Please check metadata permissions! Libname:",libname,'; + put '"Liburi:",liburi'; + put ');'; + put 'end;'; + put 'else if msg="ERROR: User does not have appropriate authorization "!!'; + put '"level for library SAVE."'; + put 'then do;'; + put 'msg=catx(" ",'; + put '"ERROR: User does not have appropriate authorization level",'; + put '"for library %upcase(&libref), libname:",libname,'; + put '"Liburi:",liburi'; + put ');'; + put 'end;'; + put 'call symputx(''msg'',msg,''l'');'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1,''l'');'; + put 'end;'; + put 'else do;'; + put 'put (_all_)(=);'; + put 'call symputx(''libname'',libname,''L'');'; + put 'call symputx(''liburi'',liburi,''L'');'; + put 'end;'; + put 'end;'; + put 'else if nobj>1 then do;'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; + put 'call symputx(''msg'',"More than one library with libref=&libref");'; + put 'end;'; + put 'else do;'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; + put 'call symputx(''msg'',"Library &libref not found in metadata");'; + put 'end;'; + put 'run;'; + put '%put NOTE: &msg;'; + put '%end;'; + put '%else %do;'; + put '%put NOTE: Library &libref is already assigned;'; + put '%end;'; + put '%mp_abort(iftrue= (&mp_abort=1)'; + put ',mac=mm_assignlib.sas'; + put ',msg=%superq(msg)'; + put ')'; + put '%mend mm_assignlib;'; + put '/** @cond */'; + put '%macro mf_getengine(libref'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid engnum rc engine;'; + put '/* in case the parameter is a libref.tablename, pull off just the libref */'; + put '%let libref = %upcase(%scan(&libref, 1, %str(.)));'; + put '%let dsid=%sysfunc('; + put 'open(sashelp.vlibnam(where=(libname="%upcase(&libref)")),i)'; + put ');'; + put '%if (&dsid ^= 0) %then %do;'; + put '%let engnum=%sysfunc(varnum(&dsid,ENGINE));'; + put '%let rc=%sysfunc(fetch(&dsid));'; + put '%let engine=%sysfunc(getvarc(&dsid,&engnum));'; + put '%put &libref. ENGINE is &engine.;'; + put '%let rc= %sysfunc(close(&dsid));'; + put '%end;'; + put '%upcase(&engine)'; + put '%mend mf_getengine;'; + put '/** @endcond */'; + put '%macro mm_assigndirectlib('; + put 'libref /* libref to assign from metadata */'; + put ',open_passthrough= /* provide an alias to produce the'; + put 'CONNECT TO statement for the'; + put 'relevant external database */'; + put ',sql_options= /* add any options to add to proc sql statement eg outobs='; + put '(only valid for pass through) */'; + put ',mDebug=0'; + put ',mAbort=0'; + put ')/*/STORE SOURCE*/;'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing mm_assigndirectlib.sas;'; + put '%&mD.put _local_;'; + put '%if &mAbort=1 %then %let mAbort=;'; + put '%else %let mAbort=%str(*);'; + put '%&mD.put NOTE: Creating direct (non META) connection to &libref library;'; + put '%local cur_engine;'; + put '%let cur_engine=%mf_getengine(&libref);'; + put '%if &cur_engine ne META and &cur_engine ne %then %do;'; + put '%put NOTE: &libref already has a direct (&cur_engine) libname connection;'; + put '%return;'; + put '%end;'; + put '%else %if %upcase(&libref)=WORK %then %do;'; + put '%put NOTE: We already have a direct connection to WORK :-) ;'; + put '%return;'; + put '%end;'; + put '/* need to determine the library ENGINE first */'; + put '%local engine;'; + put 'data _null_;'; + put 'length lib_uri engine $256;'; + put 'call missing (of _all_);'; + put '/* get URI for the particular library */'; + put 'rc1=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put '/* get the Engine attribute of the previous object */'; + put 'rc2=metadata_getattr(lib_uri,''Engine'',engine);'; + put 'putlog "mm_assigndirectlib for &libref:" rc1= lib_uri= rc2= engine=;'; + put 'call symputx("liburi",lib_uri,''l'');'; + put 'call symputx("engine",engine,''l'');'; + put 'run;'; + put '/* now obtain engine specific connection details */'; + put '%if &engine=BASE %then %do;'; + put '%&mD.put NOTE: Retrieving BASE library path;'; + put 'data _null_;'; + put 'length up_uri $256 path cat_path $1024;'; + put 'retain cat_path;'; + put 'call missing (of _all_);'; + put '/* get all the filepaths of the UsingPackages association */'; + put 'i=1;'; + put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; + put 'do while (rc3>0);'; + put '/* get the DirectoryName attribute of the previous object */'; + put 'rc4=metadata_getattr(up_uri,''DirectoryName'',path);'; + put 'if i=1 then path = ''("''!!trim(path)!!''" '';'; + put 'else path ='' "''!!trim(path)!!''" '';'; + put 'cat_path = trim(cat_path) !! " " !! trim(path) ;'; + put 'i+1;'; + put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; + put 'end;'; + put 'cat_path = trim(cat_path) !! ")";'; + put '&mD.putlog "NOTE: Getting physical path for &libref library";'; + put '&mD.putlog rc3= up_uri= rc4= cat_path= path=;'; + put '&mD.putlog "NOTE: Libname cmd will be:";'; + put '&mD.putlog "libname &libref" cat_path;'; + put 'call symputx("filepath",cat_path,''l'');'; + put 'run;'; + put '%if %sysevalf(&sysver<9.4) %then %do;'; + put 'libname &libref &filepath;'; + put '%end;'; + put '%else %do;'; + put '/* apply the new filelocks option to cater for temporary locks */'; + put 'libname &libref &filepath filelockwait=5;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=REMOTE %then %do;'; + put 'data x;'; + put 'length rcCon rcProp rc k 3 uriCon uriProp PropertyValue PropertyName'; + put 'Delimiter $256 properties $2048;'; + put 'retain properties;'; + put 'rcCon = metadata_getnasn("&liburi", "LibraryConnection", 1, uriCon);'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", 1, uriProp);'; + put 'k = 1;'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; + put 'do while (rcProp > 0);'; + put 'rc = metadata_getattr(uriProp , "DefaultValue",PropertyValue);'; + put 'rc = metadata_getattr(uriProp , "PropertyName",PropertyName);'; + put 'rc = metadata_getattr(uriProp , "Delimiter",Delimiter);'; + put 'properties = trim(properties) !! " " !! trim(PropertyName)'; + put '!! trim(Delimiter) !! trim(PropertyValue);'; + put 'output;'; + put 'k+1;'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; + put 'end;'; + put '%&mD.put NOTE: Getting properties for REMOTE SHARE &libref library;'; + put '&mD.put _all_;'; + put '%&mD.put NOTE: Libname cmd will be:;'; + put '%&mD.put libname &libref &engine &properties slibref=&libref;'; + put 'call symputx ("properties",trim(properties),''l'');'; + put 'run;'; + put 'libname &libref &engine &properties slibref=&libref;'; + put '%end;'; + put '%else %if &engine=OLEDB %then %do;'; + put '%&mD.put NOTE: Retrieving OLEDB connection details;'; + put 'data _null_;'; + put 'length domain datasource provider properties schema'; + put 'connx_uri domain_uri conprop_uri lib_uri schema_uri value $256.;'; + put 'call missing (of _all_);'; + put '/* get source connection ID */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; + put '/* get connection domain */'; + put 'rc1=metadata_getnasn(connx_uri,''Domain'',1,domain_uri);'; + put 'rc2=metadata_getattr(domain_uri,''Name'',domain);'; + put '&mD.putlog / ''NOTE: '' // ''NOTE- connection id: '' connx_uri ;'; + put '&mD.putlog ''NOTE- domain: '' domain;'; + put '/* get DSN and PROVIDER from connection properties */'; + put 'i=0;'; + put 'do until (rc<0);'; + put 'i+1;'; + put 'rc=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; + put 'rc2=metadata_getattr(conprop_uri,''Name'',value);'; + put 'if value=''Connection.OLE.Property.DATASOURCE.Name.xmlKey.txt'' then do;'; + put 'rc3=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; + put 'end;'; + put 'else if value=''Connection.OLE.Property.PROVIDER.Name.xmlKey.txt'' then do;'; + put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',provider);'; + put 'end;'; + put 'else if value=''Connection.OLE.Property.PROPERTIES.Name.xmlKey.txt'' then'; + put 'do;'; + put 'rc5=metadata_getattr(conprop_uri,''DefaultValue'',properties);'; + put 'end;'; + put 'end;'; + put '&mD.putlog ''NOTE- dsn/provider/properties: '' /'; + put 'datasource provider properties;'; + put '&mD.putlog ''NOTE- schema: '' schema // ''NOTE-'';'; + put '/* get SCHEMA */'; + put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,lib_uri);'; + put 'rc7=metadata_getattr(lib_uri,''SchemaName'',schema);'; + put 'call symputx(''SQL_domain'',domain,''l'');'; + put 'call symputx(''SQL_dsn'',datasource,''l'');'; + put 'call symputx(''SQL_provider'',provider,''l'');'; + put 'call symputx(''SQL_properties'',properties,''l'');'; + put 'call symputx(''SQL_schema'',schema,''l'');'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put 'proc sql &sql_options;'; + put 'connect to OLEDB as &open_passthrough(INSERT_SQL=YES'; + put '/* need additional properties to make this work */'; + put 'properties=(''Integrated Security''=SSPI'; + put '''Persist Security Info''=True'; + put '%sysfunc(compress(%str(&SQL_properties),%str(())))'; + put ')'; + put 'DATASOURCE=&sql_dsn PROMPT=NO'; + put 'PROVIDER=&sql_provider SCHEMA=&sql_schema CONNECTION = GLOBAL);'; + put '%end;'; + put '%else %do;'; + put 'LIBNAME &libref OLEDB PROPERTIES=&sql_properties'; + put 'DATASOURCE=&sql_dsn PROVIDER=&sql_provider SCHEMA=&sql_schema'; + put '%if %length(&sql_domain)>0 %then %do;'; + put 'authdomain="&sql_domain"'; + put '%end;'; + put 'connection=shared;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=ODBC %then %do;'; + put '&mD.%put NOTE: Retrieving ODBC connection details;'; + put 'data _null_;'; + put 'length connx_uri conprop_uri value datasource up_uri schema $256.;'; + put 'call missing (of _all_);'; + put '/* get source connection ID */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; + put '/* get connection properties */'; + put 'i=0;'; + put 'do until (rc2<0);'; + put 'i+1;'; + put 'rc2=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; + put 'rc3=metadata_getattr(conprop_uri,''Name'',value);'; + put 'if value=''Connection.ODBC.Property.DATASRC.Name.xmlKey.txt'' then do;'; + put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; + put 'rc2=-1;'; + put 'end;'; + put 'end;'; + put '/* get SCHEMA */'; + put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,up_uri);'; + put 'rc7=metadata_getattr(up_uri,''SchemaName'',schema);'; + put '&mD.put rc= connx_uri= rc2= conprop_uri= rc3= value= rc4= datasource='; + put 'rc6= up_uri= rc7= schema=;'; + put 'call symputx(''SQL_schema'',schema,''l'');'; + put 'call symputx(''SQL_dsn'',datasource,''l'');'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put 'proc sql &sql_options;'; + put 'connect to ODBC as &open_passthrough'; + put '(INSERT_SQL=YES DATASRC=&sql_dsn. CONNECTION=global);'; + put '%end;'; + put '%else %do;'; + put 'libname &libref ODBC DATASRC=&sql_dsn SCHEMA=&sql_schema;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=POSTGRES %then %do;'; + put '%put NOTE: Obtaining POSTGRES library details;'; + put 'data _null_;'; + put 'length database ignore_read_only_columns direct_exe preserve_col_names'; + put 'preserve_tab_names server schema authdomain user password'; + put 'prop name value uri urisrc $256.;'; + put 'call missing (of _all_);'; + put '/* get database value */'; + put 'prop=''Connection.DBMS.Property.DB.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,database,"");'; + put 'if database^='''' then database=''database=''!!quote(trim(database));'; + put 'call symputx(''database'',database,''l'');'; + put '/* get IGNORE_READ_ONLY_COLUMNS value */'; + put 'prop=''Library.DBMS.Property.DBIROC.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,ignore_read_only_columns,"");'; + put 'if ignore_read_only_columns^='''' then ignore_read_only_columns='; + put '''ignore_read_only_columns=''!!ignore_read_only_columns;'; + put 'call symputx(''ignore_read_only_columns'',ignore_read_only_columns,''l'');'; + put '/* get DIRECT_EXE value */'; + put 'prop=''Library.DBMS.Property.DirectExe.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,direct_exe,"");'; + put 'if direct_exe^='''' then direct_exe=''direct_exe=''!!direct_exe;'; + put 'call symputx(''direct_exe'',direct_exe,''l'');'; + put '/* get PRESERVE_COL_NAMES value */'; + put 'prop=''Library.DBMS.Property.PreserveColNames.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,preserve_col_names,"");'; + put 'if preserve_col_names^='''' then preserve_col_names='; + put '''preserve_col_names=''!!preserve_col_names;'; + put 'call symputx(''preserve_col_names'',preserve_col_names,''l'');'; + put '/* get PRESERVE_TAB_NAMES value */'; + put '/* be careful with PRESERVE_TAB_NAMES=YES - it will mean your table will'; + put 'become case sensitive!! */'; + put 'prop=''Library.DBMS.Property.PreserveTabNames.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,preserve_tab_names,"");'; + put 'if preserve_tab_names^='''' then preserve_tab_names='; + put '''preserve_tab_names=''!!preserve_tab_names;'; + put 'call symputx(''preserve_tab_names'',preserve_tab_names,''l'');'; + put '/* get SERVER value */'; + put 'if metadata_getnasn("&liburi","LibraryConnection",1,uri)>0 then do;'; + put 'prop=''Connection.DBMS.Property.SERVER.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop(uri,prop,server,"");'; + put 'end;'; + put 'if server^='''' then server=''server=''!!quote(cats(server));'; + put 'call symputx(''server'',server,''l'');'; + put '/* get SCHEMA value */'; + put 'if metadata_getnasn("&liburi","UsingPackages",1,uri)>0 then do;'; + put 'rc=metadata_getattr(uri,"SchemaName",schema);'; + put 'end;'; + put 'if schema^='''' then schema=''schema=''!!schema;'; + put 'call symputx(''schema'',schema,''l'');'; + put '/* get AUTHDOMAIN value */'; + put '/* this is only useful if the user account contains that auth domain'; + put 'if metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then do;'; + put 'rc=metadata_getnasn(uri,"Domain",1,urisrc);'; + put 'rc=metadata_getattr(urisrc,"Name",authdomain);'; + put 'end;'; + put 'if authdomain^='''' then authdomain=''authdomain=''!!quote(trim(authdomain));'; + put '*/'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/* get user & pass */'; + put 'if authdomain='''' & metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then'; + put 'do;'; + put 'rc=metadata_getattr(uri,"UserID",user);'; + put 'rc=metadata_getattr(uri,"Password",password);'; + put 'end;'; + put 'if user^='''' then do;'; + put 'user=''user=''!!quote(trim(user));'; + put 'password=''password=''!!quote(trim(password));'; + put 'end;'; + put 'call symputx(''user'',user,''l'');'; + put 'call symputx(''password'',password,''l'');'; + put '&md.put _all_;'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put '%put %str(WARN)ING: Passthrough option for postgres not yet supported;'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put '%if &mdebug=1 %then %do;'; + put '%put NOTE: Executing the following:/;'; + put '%put NOTE- libname &libref POSTGRES &database &ignore_read_only_columns;'; + put '%put NOTE- &direct_exe &preserve_col_names &preserve_tab_names;'; + put '%put NOTE- &server &schema &authdomain &user &password //;'; + put '%end;'; + put 'libname &libref POSTGRES &database &ignore_read_only_columns &direct_exe'; + put '&preserve_col_names &preserve_tab_names &server &schema &authdomain'; + put '&user &password;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=ORACLE %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null_;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema $256;'; + put 'call missing (of _all_);'; + put '/* get auth domain */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; + put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; + put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/* path */'; + put 'rc=metadata_getprop(assocuri1,'; + put '''Connection.Oracle.Property.PATH.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref ORACLE path=&path schema=&schema;'; + put '%put NOTE- authdomain=&authdomain;'; + put '%put NOTE-;'; + put 'libname &libref ORACLE path=&path schema=&schema authdomain=&authdomain;'; + put '%end;'; + put '%else %if &engine=SQLSVR %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; + put 'passwd $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; + put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; + put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; + put 'call symputx(''user'',userid,''l'');'; + put 'call symputx(''pass'',passwd,''l'');'; + put '/* path */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; + put 'rc=metadata_getprop(assocuri2,'; + put '''Connection.SQL.Property.Datasrc.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref SQLSVR datasrc=&path schema=&schema ;'; + put '%put NOTE- user="&user" pass="XXX";'; + put '%put NOTE-;'; + put 'libname &libref SQLSVR datasrc=&path schema=&schema user="&user" pass="&pass";'; + put '%end;'; + put '%else %if &engine=TERADATA %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; + put 'passwd $256;'; + put 'call missing (of _all_);'; + put '/* get auth domain */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; + put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; + put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/*'; + put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; + put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; + put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; + put 'call symputx(''user'',userid,''l'');'; + put 'call symputx(''pass'',passwd,''l'');'; + put '*/'; + put '/* path */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; + put 'rc=metadata_getprop(assocuri2,'; + put '''Connection.Teradata.Property.SERVER.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref TERADATA server="&path" schema=&schema ;'; + put '%put NOTe- authdomain=&authdomain;'; + put '%put NOTE-;'; + put 'libname &libref TERADATA server="&path" schema=&schema authdomain=&authdomain;'; + put '%end;'; + put '%else %if &engine= %then %do;'; + put '%put NOTE: Libref &libref is not registered in metadata;'; + put '%&mAbort.mp_abort('; + put 'msg=%str(ERR)OR: Libref &libref is not registered in metadata'; + put ',mac=mm_assigndirectlib.sas);'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put '%put %str(WARN)ING: Engine &engine is currently unsupported;'; + put '%put %str(WARN)ING- Please contact your support team.;'; + put '%return;'; + put '%end;'; + put '%mend mm_assigndirectlib;'; + put '%macro mm_getrepos('; + put 'outds=work.mm_getrepos'; + put ')/*/STORE SOURCE*/;'; + put '* use a temporary fileref to hold the response;'; + put 'filename response temp;'; + put '/* get list of libraries */'; + put 'proc metadata in='; + put '"1"'; + put 'out=response;'; + put 'run;'; + put '/* write the response to the log for debugging */'; + put '/*'; + put 'data _null_;'; + put 'infile response lrecl=1048576;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '*/'; + put '/* create an XML map to read the response */'; + put 'filename sxlemap temp;'; + put 'data _null_;'; + put 'file sxlemap;'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository";'; + put 'put "";'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Id";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Name";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Desc";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@DefaultNS";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryType";'; + put 'put "characterstring20";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryFormat";'; + put 'put "characterstring10";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@Access";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@CurrentAccess";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@PauseState";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Path";'; + put 'put "";'; + put 'put "characterstring256";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Engine";'; + put 'put "";'; + put 'put "characterstring8";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Options";'; + put 'put "";'; + put 'put "characterstring32";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataCreated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataUpdated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put ''
'';'; + put 'run;'; + put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; + put 'proc sort data= _XML_.SASRepos out=&outds;'; + put 'by name;'; + put 'run;'; + put '/* clear references */'; + put 'filename sxlemap clear;'; + put 'filename response clear;'; + put 'libname _XML_ clear;'; + put '%mend mm_getrepos;'; + put '%macro dc_assignlib(type,libref,passthru=);'; + put '%put &sysmacroname entry vars:;'; + put '%put _local_;'; + put '/* take current repository */'; + put '%local repo repocnt x;'; + put '%let repo=%sysfunc(getoption(metarepository));'; + put '/* get list of repositories and filter */'; + put '%mm_getrepos(outds=repos)'; + put '%let repocnt=0;'; + put 'data repos;'; + put 'set repos;'; + put 'where repositorytype in(''CUSTOM'',''FOUNDATION'')'; + put '& upcase(name) ne "%upcase(&repo)";'; + put 'keep id name ;'; + put 'call symputx(cats(''repo'',_n_),name,''l'');'; + put 'call symputx(''repocnt'',_n_,''l'');'; + put 'run;'; + put '/* find out which of these repositories has the libref we are searching for */'; + put '%local lib_uri;'; + put '%let lib_uri=NOTFOUND;'; + put 'data _null_; /* check default repo first */'; + put 'length lib_uri $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; + put 'run;'; + put '%if &lib_uri=NOTFOUND %then %do;'; + put '%do x=1 %to &repocnt;'; + put 'options metarepository=&&repo&x;'; + put 'data _null_;'; + put 'length lib_uri $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; + put 'run;'; + put '%if &lib_uri ne NOTFOUND %then %let x=%eval(&repocnt+1);'; + put '%end;'; + put '%end;'; + put '%if &type=READ %then %do;'; + put '%mm_assignlib(&libref)'; + put '%end;'; + put '%else %if &type=WRITE %then %do;'; + put '%mm_assigndirectlib(&libref,open_passthrough=&passthru)'; + put '%end;'; + put 'options metarepository=&repo;'; + put '%mend dc_assignlib;'; + put '%macro mddl_sas_cntlout(libds=WORK.CNTLOUT);'; + put 'proc sql;'; + put 'create table &libds('; + put 'FMTNAME char(32) label=''Format name'''; + put '/*'; + put 'to accommodate larger START values, mp_loadformat.sas will need the'; + put 'SQL dependency removed (proc sql needs to accommodate 3 index values in'; + put 'a 32767 ibufsize limit)'; + put '*/'; + put ',START char(10000) label=''Starting value for format'''; + put ',END char(32767) label=''Ending value for format'''; + put ',LABEL char(32767) label=''Format value label'''; + put ',MIN num length=3 label=''Minimum length'''; + put ',MAX num length=3 label=''Maximum length'''; + put ',DEFAULT num length=3 label=''Default length'''; + put ',LENGTH num length=3 label=''Format length'''; + put ',FUZZ num label=''Fuzz value'''; + put ',PREFIX char(2) label=''Prefix characters'''; + put ',MULT num label=''Multiplier'''; + put ',FILL char(1) label=''Fill character'''; + put ',NOEDIT num length=3 label=''Is picture string noedit?'''; + put ',TYPE char(1) label=''Type of format'''; + put ',SEXCL char(1) label=''Start exclusion'''; + put ',EEXCL char(1) label=''End exclusion'''; + put ',HLO char(13) label=''Additional information'''; + put ',DECSEP char(1) label=''Decimal separator'''; + put ',DIG3SEP char(1) label=''Three-digit separator'''; + put ',DATATYPE char(8) label=''Date/time/datetime?'''; + put ',LANGUAGE char(8) label=''Language for date strings'''; + put ');'; + put '%mend mddl_sas_cntlout;'; + put '%macro mf_existds(libds'; + put ')/*/STORE SOURCE*/;'; + put '%if %sysfunc(exist(&libds)) ne 1 & %sysfunc(exist(&libds,VIEW)) ne 1 %then 0;'; + put '%else 1;'; + put '%mend mf_existds;'; + put '%macro mf_existfileref(fref'; + put ')/*/STORE SOURCE*/;'; + put '%local rc;'; + put '%let rc=%sysfunc(fileref(&fref));'; + put '%if &rc=0 %then %do;'; + put '1'; + put '%end;'; + put '%else %if &rc<0 %then %do;'; + put '%put &sysmacroname: Fileref &fref exists but the underlying file does not;'; + put '1'; + put '%end;'; + put '%else %do;'; + put '0'; + put '%end;'; + put '%mend mf_existfileref;'; + put '%macro mf_getvarcount(libds,typefilter=A'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid nvars rc outcnt x;'; + put '%let dsid=%sysfunc(open(&libds));'; + put '%let nvars=.;'; + put '%let outcnt=0;'; + put '%let typefilter=%upcase(&typefilter);'; + put '%if &dsid %then %do;'; + put '%let nvars=%sysfunc(attrn(&dsid,NVARS));'; + put '%if &typefilter=A %then %let outcnt=&nvars;'; + put '%else %if &nvars>0 %then %do x=1 %to &nvars;'; + put '/* increment based on variable type */'; + put '%if %sysfunc(vartype(&dsid,&x))=&typefilter %then %do;'; + put '%let outcnt=%eval(&outcnt+1);'; + put '%end;'; + put '%end;'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%else %do;'; + put '%put unable to open &libds (rc=&dsid);'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '&outcnt'; + put '%mend mf_getvarcount;'; + put '%macro mf_getuniquename(prefix=MC);'; + put '&prefix.%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32-%length(&prefix))'; + put '%mend mf_getuniquename;'; + put '%macro mf_isblank(param'; + put ')/*/STORE SOURCE*/;'; + put '%sysevalf(%superq(param)=,boolean)'; + put '%mend mf_isblank;'; + put '%macro mp_dropmembers('; + put 'list /* space separated list of datasets / views */'; + put ',libref=WORK /* can only drop from a single library at a time */'; + put ',iftrue=%str(1=1)'; + put ')/*/STORE SOURCE*/;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%if %mf_isblank(&list) %then %do;'; + put '%put NOTE: nothing to drop!;'; + put '%return;'; + put '%end;'; + put 'proc datasets lib=&libref nolist;'; + put 'delete &list;'; + put 'delete &list /mtype=view;'; + put 'run;'; + put '%mend mp_dropmembers;'; + put '%macro mp_getconstraints(lib=WORK'; + put ',ds='; + put ',outds=mp_getconstraints'; + put ',mdebug=0'; + put ')/*/STORE SOURCE*/;'; + put '%let lib=%upcase(&lib);'; + put '%let ds=%upcase(&ds);'; + put '/**'; + put '* Cater for environments where sashelp.vcncolu is not available'; + put '*/'; + put '%if %sysfunc(exist(sashelp.vcncolu,view))=0 %then %do;'; + put 'proc sql;'; + put 'create table &outds('; + put 'libref char(8)'; + put ',TABLE_NAME char(32)'; + put ',constraint_type char(8) label=''Constraint Type'''; + put ',constraint_name char(32) label=''Constraint Name'''; + put ',column_name char(32) label=''Column'''; + put ',constraint_order num'; + put ');'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Neither dictionary tables nor sashelp provides a constraint order column,'; + put '* however they DO arrive in the correct order. So, create the col.'; + put '**/'; + put '%local vw;'; + put '%let vw=%mf_getuniquename(prefix=mp_getconstraints_vw_);'; + put 'data &vw /view=&vw;'; + put 'set sashelp.vcncolu;'; + put 'where table_catalog="&lib";'; + put '/* use retain approach to reset the constraint order with each constraint */'; + put 'length tmp $1000;'; + put 'retain tmp;'; + put 'drop tmp;'; + put 'if tmp ne catx(''|'',table_catalog,table_name,constraint_name) then do;'; + put 'constraint_order=1;'; + put 'end;'; + put 'else constraint_order+1;'; + put 'tmp=catx(''|'',table_catalog, table_name,constraint_name);'; + put 'run;'; + put '/* must use SQL as proc datasets does not support length changes */'; + put 'proc sql noprint;'; + put 'create table &outds as'; + put 'select upcase(a.TABLE_CATALOG) as libref'; + put ',upcase(a.TABLE_NAME) as TABLE_NAME'; + put ',a.constraint_type'; + put ',a.constraint_name'; + put ',b.column_name'; + put ',b.constraint_order'; + put 'from dictionary.TABLE_CONSTRAINTS a'; + put 'left join &vw b'; + put 'on upcase(a.TABLE_CATALOG)=upcase(b.TABLE_CATALOG)'; + put 'and upcase(a.TABLE_NAME)=upcase(b.TABLE_NAME)'; + put 'and a.constraint_name=b.constraint_name'; + put '/**'; + put '* We cannot apply this clause to the underlying dictionary table. See:'; + put '* https://communities.sas.com/t5/SAS-Programming/Unexpected-Where-Clause-behaviour-in-dictionary-TABLE/m-p/771554#M244867'; + put '* cannot use`where calculated libref="&lib"` either as it will STILL execute'; + put '* all the underlying constraint queries, causing exception errors in some'; + put '* cases: https://github.com/sasjs/core/issues/283'; + put '*/'; + put 'where a.TABLE_CATALOG="&lib"'; + put '%if "&ds" ne "" %then %do;'; + put 'and upcase(a.TABLE_NAME)="&ds"'; + put 'and upcase(b.TABLE_NAME)="&ds"'; + put '%end;'; + put 'order by libref, table_name, constraint_name, constraint_order'; + put ';'; + put '/* tidy up */'; + put '%mp_dropmembers('; + put '&vw,'; + put 'iftrue=(&mdebug=0)'; + put ')'; + put '%mend mp_getconstraints;'; + put '%macro mp_getddl(libref,ds,fref=getddl,flavour=SAS,showlog=NO,schema='; + put ',applydttm=NO'; + put ')/*/STORE SOURCE*/;'; + put '/* check fileref is assigned */'; + put '%if %mf_existfileref(&fref)=0 %then %do;'; + put 'filename &fref temp ;'; + put '%end;'; + put '%if %length(&libref)=0 %then %let libref=WORK;'; + put '%let flavour=%upcase(&flavour);'; + put 'proc sql noprint;'; + put 'create table _data_ as'; + put 'select * from dictionary.tables'; + put 'where upcase(libname)="%upcase(&libref)"'; + put 'and memtype=''DATA'' /* views not currently supported */'; + put '%if %length(&ds)>0 %then %do;'; + put 'and upcase(memname)="%upcase(&ds)"'; + put '%end;'; + put ';'; + put '%local tabinfo; %let tabinfo=&syslast;'; + put 'create table _data_ as'; + put 'select * from dictionary.columns'; + put 'where upcase(libname)="%upcase(&libref)"'; + put '%if %length(&ds)>0 %then %do;'; + put 'and upcase(memname)="%upcase(&ds)"'; + put '%end;'; + put ';'; + put '%local colinfo; %let colinfo=&syslast;'; + put '%local dsnlist;'; + put 'select distinct upcase(memname) into: dsnlist'; + put 'separated by '' '''; + put 'from &syslast'; + put ';'; + put 'create table _data_ as'; + put 'select * from dictionary.indexes'; + put 'where upcase(libname)="%upcase(&libref)"'; + put '%if %length(&ds)>0 %then %do;'; + put 'and upcase(memname)="%upcase(&ds)"'; + put '%end;'; + put 'order by idxusage, indxname, indxpos'; + put ';'; + put '%local idxinfo; %let idxinfo=&syslast;'; + put '/* Extract all Primary Key and Unique data constraints */'; + put '%mp_getconstraints(lib=%upcase(&libref),ds=%upcase(&ds),outds=_data_)'; + put '%local colconst; %let colconst=&syslast;'; + put '%macro addConst();'; + put '%global constraints_used;'; + put 'data _null_;'; + put 'length ctype $11 constraint_name_orig $256 constraints_used $5000;'; + put 'set &colconst('; + put 'where=(table_name="&curds" and constraint_type in (''PRIMARY'',''UNIQUE''))'; + put ') end=last;'; + put 'file &fref mod;'; + put 'by constraint_type constraint_name;'; + put 'retain constraints_used;'; + put 'constraint_name_orig=constraint_name;'; + put 'if upcase(strip(constraint_type)) = ''PRIMARY'' then ctype=''PRIMARY KEY'';'; + put 'else ctype=strip(constraint_type);'; + put '%if &flavour=TSQL %then %do;'; + put 'column_name=catt(''['',column_name,'']'');'; + put 'constraint_name=catt(''['',constraint_name,'']'');'; + put '%end;'; + put '%else %if &flavour=PGSQL %then %do;'; + put 'column_name=catt(''"'',column_name,''"'');'; + put 'constraint_name=catt(''"'',constraint_name,''"'');'; + put '%end;'; + put 'if first.constraint_name then do;'; + put 'constraints_used = catx('' '', constraints_used, constraint_name_orig);'; + put 'put " ,CONSTRAINT " constraint_name ctype "(" ;'; + put 'put '' '' column_name;'; + put 'end;'; + put 'else put '' ,'' column_name;'; + put 'if last.constraint_name then do;'; + put 'put " )";'; + put 'call symput(''constraints_used'',strip(constraints_used));'; + put 'end;'; + put 'run;'; + put '%put &=constraints_used;'; + put '%mend addConst;'; + put 'data _null_;'; + put 'file &fref mod;'; + put 'put "/* DDL generated by &sysuserid on %sysfunc(datetime(),datetime19.) */";'; + put 'run;'; + put '%local x curds;'; + put '%if &flavour=SAS %then %do;'; + put '%do x=1 %to %sysfunc(countw(&dsnlist));'; + put '%let curds=%scan(&dsnlist,&x);'; + put 'data _null_;'; + put 'file &fref mod;'; + put 'put "/* SAS Flavour DDL for %upcase(&libref).&curds */";'; + put 'put "proc sql;";'; + put 'run;'; + put 'data _null_;'; + put 'file &fref mod;'; + put 'length lab $1024 typ $20;'; + put 'set &colinfo (where=(upcase(memname)="&curds")) end=last;'; + put 'if _n_=1 then do;'; + put 'if memtype=''DATA'' then do;'; + put 'put "create table &libref..&curds(";'; + put 'end;'; + put 'else do;'; + put '/* just a placeholder - we filter out views at the top */'; + put 'put "create view &libref..&curds(";'; + put 'end;'; + put 'put " "@@;'; + put 'end;'; + put 'else put " ,"@@;'; + put 'if length(format)>1 then fmt=" format="!!cats(format);'; + put 'if length(label)>1 then'; + put 'lab=" label="!!cats("''",tranwrd(label,"''","''''"),"''");'; + put 'if notnull=''yes'' then notnul='' not null'';'; + put 'if type=''char'' then typ=cats(''char('',length,'')'');'; + put 'else if length ne 8 then typ=''num length=''!!cats(length);'; + put 'else typ=''num'';'; + put 'put name typ fmt notnul lab;'; + put 'run;'; + put '/* Extra step for data constraints */'; + put '%addConst()'; + put 'data _null_;'; + put 'file &fref mod;'; + put 'put '');'';'; + put 'run;'; + put '/* Create Unique Indexes, but only if they were not already defined within'; + put 'the Constraints section. */'; + put 'data _null_;'; + put '*length ds $128;'; + put 'set &idxinfo('; + put 'where=('; + put 'memname="&curds"'; + put 'and unique=''yes'''; + put 'and indxname not in ('; + put '%sysfunc(tranwrd("&constraints_used",%str( ),%str(",")))'; + put ')'; + put ')'; + put ');'; + put 'file &fref mod;'; + put 'by idxusage indxname;'; + put '/* ds=cats(libname,''.'',memname); */'; + put 'if first.indxname then do;'; + put 'put ''CREATE UNIQUE INDEX '' indxname "ON &libref..&curds (" ;'; + put 'put '' '' name ;'; + put 'end;'; + put 'else put '' ,'' name ;'; + put '*else put '' ,'' name ;'; + put 'if last.indxname then do;'; + put 'put '');'';'; + put 'end;'; + put 'run;'; + put '/*'; + put 'ods output IntegrityConstraints=ic;'; + put 'proc contents data=testali out2=info;'; + put 'run;'; + put '*/'; + put '%end;'; + put '%end;'; + put '%else %if &flavour=TSQL %then %do;'; + put '/* if schema does not exist, set to be same as libref */'; + put '%local schemaactual;'; + put 'proc sql noprint;'; + put 'select sysvalue into: schemaactual'; + put 'from dictionary.libnames'; + put 'where upcase(libname)="&libref" and engine=''SQLSVR'';'; + put '%let schema=%sysfunc(coalescec(&schemaactual,&schema,&libref));'; + put '%do x=1 %to %sysfunc(countw(&dsnlist));'; + put '%let curds=%scan(&dsnlist,&x);'; + put 'data _null_;'; + put 'file &fref mod;'; + put 'put "/* TSQL Flavour DDL for &schema..&curds */";'; + put 'data _null_;'; + put 'file &fref mod;'; + put 'set &colinfo (where=(upcase(memname)="&curds")) end=last;'; + put 'if _n_=1 then do;'; + put 'if memtype=''DATA'' then do;'; + put 'put "create table [&schema].[&curds](";'; + put 'end;'; + put 'else do;'; + put '/* just a placeholder - we filter out views at the top */'; + put 'put "create view [&schema].[&curds](";'; + put 'end;'; + put 'put " "@@;'; + put 'end;'; + put 'else put " ,"@@;'; + put 'format=upcase(format);'; + put 'if 1=0 then; /* dummy if */'; + put '%if &applydttm=YES %then %do;'; + put 'else if format=:''DATETIME'' then fmt=''[datetime2](7) '';'; + put '%end;'; + put 'else if type=''num'' then fmt=''[decimal](18,2)'';'; + put 'else if length le 8000 then fmt=''[varchar](''!!cats(length)!!'')'';'; + put 'else fmt=cats(''[varchar](max)'');'; + put 'if notnull=''yes'' then notnul='' NOT NULL'';'; + put 'put "[" name +(-1) "]" fmt notnul;'; + put 'run;'; + put '/* Extra step for data constraints */'; + put '%addConst()'; + put '/* Create Unique Indexes, but only if they were not already defined within'; + put 'the Constraints section. */'; + put 'data _null_;'; + put '*length ds $128;'; + put 'set &idxinfo('; + put 'where=('; + put 'memname="&curds"'; + put 'and unique=''yes'''; + put 'and indxname not in ('; + put '%sysfunc(tranwrd("&constraints_used",%str( ),%str(",")))'; + put ')'; + put ')'; + put ');'; + put 'file &fref mod;'; + put 'by idxusage indxname;'; + put '*ds=cats(libname,''.'',memname);'; + put 'if first.indxname then do;'; + put '/* add nonclustered in case of multiple unique indexes */'; + put 'put '' ,index ['' indxname +(-1) ''] UNIQUE NONCLUSTERED ('';'; + put 'put '' ['' name +(-1) '']'';'; + put 'end;'; + put 'else put '' ,['' name +(-1) '']'';'; + put 'if last.indxname then do;'; + put 'put '' )'';'; + put 'end;'; + put 'run;'; + put 'data _null_;'; + put 'file &fref mod;'; + put 'put '')'';'; + put 'put ''GO'';'; + put 'run;'; + put '/* add extended properties for labels */'; + put 'data _null_;'; + put 'file &fref mod;'; + put 'length nm $64 lab $1024;'; + put 'set &colinfo (where=(upcase(memname)="&curds" and label ne '''')) end=last;'; + put 'nm=cats("N''",tranwrd(name,"''","''''"),"''");'; + put 'lab=cats("N''",tranwrd(label,"''","''''"),"''");'; + put 'put '' '';'; + put 'put "EXEC sys.sp_addextendedproperty ";'; + put 'put " @name=N''MS_Description'',@value=" lab ;'; + put 'put " ,@level0type=N''SCHEMA'',@level0name=N''&schema'' ";'; + put 'put " ,@level1type=N''TABLE'',@level1name=N''&curds''";'; + put 'put " ,@level2type=N''COLUMN'',@level2name=" nm ;'; + put 'if last then put ''GO'';'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%else %if &flavour=PGSQL %then %do;'; + put '/* if schema does not exist, set to be same as libref */'; + put '%local schemaactual;'; + put 'proc sql noprint;'; + put 'select sysvalue into: schemaactual'; + put 'from dictionary.libnames'; + put 'where upcase(libname)="&libref" and engine=''POSTGRES'';'; + put '%let schema=%sysfunc(coalescec(&schemaactual,&schema,&libref));'; + put 'data _null_;'; + put 'file &fref mod;'; + put 'put "CREATE SCHEMA &schema;";'; + put '%do x=1 %to %sysfunc(countw(&dsnlist));'; + put '%let curds=%scan(&dsnlist,&x);'; + put '%local curdsvarcount;'; + put '%let curdsvarcount=%mf_getvarcount(&libref..&curds);'; + put '%if &curdsvarcount>1600 %then %do;'; + put 'data _null_;'; + put 'file &fref mod;'; + put 'put "/* &libref..&curds contains &curdsvarcount vars */";'; + put 'put "/* Postgres cannot create tables with over 1600 vars */";'; + put 'put "/* No DDL will be generated for this table";'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put 'data _null_;'; + put 'file &fref mod;'; + put 'put "/* Postgres Flavour DDL for &schema..&curds */";'; + put 'data _null_;'; + put 'file &fref mod;'; + put 'set &colinfo (where=(upcase(memname)="&curds")) end=last;'; + put 'length fmt $32;'; + put 'if _n_=1 then do;'; + put 'if memtype=''DATA'' then do;'; + put 'put "CREATE TABLE &schema..&curds (";'; + put 'end;'; + put 'else do;'; + put '/* just a placeholder - we filter out views at the top */'; + put 'put "CREATE VIEW &schema..&curds (";'; + put 'end;'; + put 'put " "@@;'; + put 'end;'; + put 'else put " ,"@@;'; + put 'format=upcase(format);'; + put 'if 1=0 then; /* dummy if */'; + put '%if &applydttm=YES %then %do;'; + put 'else if format=:''DATETIME'' then fmt='' TIMESTAMP '';'; + put '%end;'; + put 'else if type=''num'' then fmt='' DOUBLE PRECISION'';'; + put 'else fmt=''VARCHAR(''!!cats(length)!!'')'';'; + put 'if notnull=''yes'' then notnul='' NOT NULL'';'; + put '/* quote column names in case they represent reserved words */'; + put 'name2=quote(trim(name));'; + put 'put name2 fmt notnul;'; + put 'run;'; + put '/* Extra step for data constraints */'; + put '%addConst()'; + put 'data _null_;'; + put 'file &fref mod;'; + put 'put '');'';'; + put 'run;'; + put '/* Create Unique Indexes, but only if they were not already defined within'; + put 'the Constraints section. */'; + put 'data _null_;'; + put '*length ds $128;'; + put 'set &idxinfo('; + put 'where=('; + put 'memname="&curds"'; + put 'and unique=''yes'''; + put 'and indxname not in ('; + put '%sysfunc(tranwrd("&constraints_used",%str( ),%str(",")))'; + put ')'; + put ')'; + put ');'; + put 'file &fref mod;'; + put 'by idxusage indxname;'; + put 'if first.indxname then do;'; + put 'put ''CREATE UNIQUE INDEX "'' indxname +(-1) ''" '' "ON &schema..&curds(";'; + put 'put '' "'' name +(-1) ''"'' ;'; + put 'end;'; + put 'else put '' ,"'' name +(-1) ''"'';'; + put 'if last.indxname then do;'; + put 'put '');'';'; + put 'end;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%end;'; + put '%if %upcase(&showlog)=YES %then %do;'; + put 'options ps=max;'; + put 'data _null_;'; + put 'infile &fref;'; + put 'input;'; + put 'putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%mend mp_getddl;'; + put '%macro mfs_httpheader(header_name'; + put ',header_value'; + put ')/*/STORE SOURCE*/;'; + put '%global sasjs_stpsrv_header_loc;'; + put '%local fref fid i;'; + put '%if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc)) ne 0 %then %do;'; + put '%put &=fref &=sasjs_stpsrv_header_loc;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(&header_name): %str(&header_value)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%mend mfs_httpheader;'; + put '%macro mp_binarycopy('; + put 'inloc= /* full path and filename of the object to be copied */'; + put ',outloc= /* full path and filename of object to be created */'; + put ',inref=____in /* override default to use own filerefs */'; + put ',outref=____out /* override default to use own filerefs */'; + put ',mode=CREATE'; + put ',iftrue=%str(1=1)'; + put ')/*/STORE SOURCE*/;'; + put '%local mod;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%if &mode=APPEND %then %let mod=mod;'; + put '/* these IN and OUT filerefs can point to anything */'; + put '%if &inref = ____in %then %do;'; + put 'filename &inref &inloc lrecl=1048576 ;'; + put '%end;'; + put '%if &outref=____out %then %do;'; + put 'filename &outref &outloc lrecl=1048576 &mod;'; + put '%end;'; + put '/* copy the file byte-for-byte */'; + put 'data _null_;'; + put 'infile &inref lrecl=1 recfm=n;'; + put 'file &outref &mod recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put '%if &inref = ____in %then %do;'; + put 'filename &inref clear;'; + put '%end;'; + put '%if &outref=____out %then %do;'; + put 'filename &outref clear;'; + put '%end;'; + put '%mend mp_binarycopy;'; + put '%macro mp_streamfile('; + put 'contenttype=TEXT'; + put ',inloc='; + put ',inref=0'; + put ',iftrue=%str(1=1)'; + put ',outname='; + put ',outref=_webout'; + put ')/*/STORE SOURCE*/;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%let contentype=%upcase(&contenttype);'; + put '%let outref=%upcase(&outref);'; + put '%local platform; %let platform=%mf_getplatform();'; + put '/**'; + put '* check engine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put '%local streamweb;'; + put '%let streamweb=0;'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(upcase(fileref)="&outref"));'; + put 'if xengine=''STREAM'' then call symputx(''streamweb'',1,''l'');'; + put 'run;'; + put '%if &contentype=CSV %then %do;'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'',''application/csv'');'; + put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.txt'''; + put 'contenttype=''application/csv'''; + put 'contentdisp="attachment; filename=&outname";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type,application/csv)'; + put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; + put '%end;'; + put '%end;'; + put '%else %if &contentype=EXCEL %then %do;'; + put '/* suitable for XLS format */'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'',''application/vnd.ms-excel'');'; + put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.xls'''; + put 'contenttype=''application/vnd.ms-excel'''; + put 'contentdisp="attachment; filename=&outname";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type,application/vnd.ms-excel)'; + put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; + put '%end;'; + put '%end;'; + put '%else %if &contentype=GIF or &contentype=JPEG or &contentype=PNG %then %do;'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'',"image/%lowcase(&contenttype)");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'contenttype="image/%lowcase(&contenttype)";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type,image/%lowcase(&contenttype))'; + put '%end;'; + put '%end;'; + put '%else %if &contentype=HTML or &contenttype=MARKDOWN %then %do;'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'',"text/%lowcase(&contenttype)");'; + put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name="_webout.json"'; + put 'contenttype="text/%lowcase(&contenttype)"'; + put 'contentdisp="attachment; filename=&outname";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type,text/%lowcase(&contenttype))'; + put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; + put '%end;'; + put '%end;'; + put '%else %if &contentype=TEXT %then %do;'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'',''application/text'');'; + put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.txt'''; + put 'contenttype=''application/text'''; + put 'contentdisp="attachment; filename=&outname";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type,application/text)'; + put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; + put '%end;'; + put '%end;'; + put '%else %if &contentype=WOFF or &contentype=WOFF2 or &contentype=TTF %then %do;'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'',"font/%lowcase(&contenttype)");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'contenttype="font/%lowcase(&contenttype)";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type,font/%lowcase(&contenttype))'; + put '%end;'; + put '%end;'; + put '%else %if &contentype=XLSX %then %do;'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'','; + put '''application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'');'; + put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.xls'''; + put 'contenttype='; + put '''application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'''; + put 'contentdisp="attachment; filename=&outname";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type'; + put ',application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'; + put ')'; + put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; + put '%end;'; + put '%end;'; + put '%else %if &contentype=ZIP %then %do;'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'',''application/zip'');'; + put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.zip'''; + put 'contenttype=''application/zip'''; + put 'contentdisp="attachment; filename=&outname";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type,application/zip)'; + put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put %str(ERR)OR: Content Type &contenttype NOT SUPPORTED by &sysmacroname!;'; + put '%end;'; + put '%if &inref ne 0 %then %do;'; + put '%mp_binarycopy(inref=&inref,outref=&outref)'; + put '%end;'; + put '%else %do;'; + put '%mp_binarycopy(inloc="&inloc",outref=&outref)'; + put '%end;'; + put '%mend mp_streamfile;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file'; + put '@brief Download DDL for a table or entire library in a particular flavour.'; + put '@details'; + put '

SAS Macros

'; + put '@li mddl_sas_cntlout.sas'; + put '@li dc_assignlib.sas'; + put '@li mf_existds.sas'; + put '@li mp_abort.sas'; + put '@li mp_getddl.sas'; + put '@li mp_streamfile.sas'; + put '@version 9.2'; + put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; + put 'downloaded from here: https://4gl.uk/dcdeploy'; + put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; + put 'and may not be re-distributed or re-sold without the express permission of'; + put '4GL Apps Ltd.'; + put '**/'; + put '%global libref ds flavour;'; + put '%let flavour=%sysfunc(coalescec(&flavour,SAS));'; + put '%mpeinit()'; + put '%dc_assignlib(READ,&libref)'; + put 'data _null_;'; + put '/* check if the request is for a format catalog */'; + put 'ds=symget(''ds'');'; + put 'if subpad(cats(reverse(ds)),1,3)=:''CF-'' then do;'; + put 'ds=scan(ds,1,''-'');'; + put 'libds=cats(symget(''libref''),''.'',ds);'; + put 'putlog "Format Catalog Captured";'; + put 'call execute(''%mddl_sas_cntlout(libds=work.fmtextract)'');'; + put 'call symputx(''libref'',''work'');'; + put 'call symputx(''ds'',''fmtextract'');'; + put 'end;'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue=("exist&ds" ne "exist" and %mf_existds(libds=&libref..&ds)<1)'; + put ',mac=&_program'; + put ',msg=%str(Dataset &libref..&ds was not found)'; + put ')'; + put '%let tmploc=%sysfunc(pathname(work))/temp.txt;'; + put 'filename tmp "&tmploc";'; + put '%mp_getddl(&libref,&ds,flavour=&flavour, fref=tmp, applydttm=YES)'; + put '%mp_streamfile(contenttype=TEXT'; + put ',inloc=%str(&tmploc)'; + put ',outname=&libref._&ds..ddl'; + put ')'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=getgroups; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Files

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as FMTCAT,'; + put 'FMTNAME'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'LENGTH num'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.length as MAXW'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put ')))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] workobs= (0) When set to a positive integer, will create a new'; + put 'output object (WORK) which contains this number of observations from all'; + put 'tables in the WORK library.'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX,workobs=0'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&workobs) > 0 %then %do;'; + put '/* if debug mode, send back first XX records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10'; + put ',maxobs=&workobs'; + put ')'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '%macro mm_getGroups('; + put 'user='; + put ',outds=work.mm_getGroups'; + put ',repo=foundation'; + put ',mDebug=0'; + put ')/*/STORE SOURCE*/;'; + put '%local mD oldrepo;'; + put '%let oldrepo=%sysfunc(getoption(metarepository));'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing mm_getGroups.sas;'; + put '%&mD.put _local_;'; + put '/* on some sites, user / group info is in a different metadata repo to the'; + put 'default */'; + put '%if &oldrepo ne &repo %then %do;'; + put 'options metarepository=&repo;'; + put '%end;'; + put '%if %length(&user)=0 %then %do;'; + put 'data &outds (keep=groupuri groupname groupdesc);'; + put 'length groupuri groupname groupdesc group_or_role $256;'; + put 'call missing(of _all_);'; + put 'i+1;'; + put 'do while'; + put '(metadata_getnobj("omsobj:IdentityGroup?@Id contains ''.''",i,groupuri)>0);'; + put 'rc=metadata_getattr(groupuri, "Name", groupname);'; + put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; + put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; + put 'if Group_or_Role = ''UserGroup'' then output;'; + put 'i+1;'; + put 'end;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put 'data &outds (keep=groupuri groupname groupdesc);'; + put 'length uri groupuri groupname groupdesc group_or_role $256;'; + put 'call missing(of _all_);'; + put 'rc=metadata_getnobj("omsobj:Person?@Name=''&user''",1,uri);'; + put 'if rc<=0 then do;'; + put 'putlog "%str(WARN)ING: rc=" rc "&user not found "'; + put '", or there was an issue reading the repository.";'; + put 'stop;'; + put 'end;'; + put 'a=1;'; + put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; + put 'if grpassn in (-3,-4) then do;'; + put 'putlog "%str(WARN)ING: No metadata groups found for &user";'; + put 'output;'; + put 'end;'; + put 'else do while (grpassn > 0);'; + put 'rc=metadata_getattr(groupuri, "Name", groupname);'; + put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; + put 'a+1;'; + put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; + put 'if Group_or_Role = ''UserGroup'' then output;'; + put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; + put 'end;'; + put 'run;'; + put '%end;'; + put '%if &oldrepo ne &repo %then %do;'; + put 'options metarepository=&oldrepo;'; + put '%end;'; + put '%mend mm_getGroups;'; + put '%macro mm_getrepos('; + put 'outds=work.mm_getrepos'; + put ')/*/STORE SOURCE*/;'; + put '* use a temporary fileref to hold the response;'; + put 'filename response temp;'; + put '/* get list of libraries */'; + put 'proc metadata in='; + put '"1"'; + put 'out=response;'; + put 'run;'; + put '/* write the response to the log for debugging */'; + put '/*'; + put 'data _null_;'; + put 'infile response lrecl=1048576;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '*/'; + put '/* create an XML map to read the response */'; + put 'filename sxlemap temp;'; + put 'data _null_;'; + put 'file sxlemap;'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository";'; + put 'put "";'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Id";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Name";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Desc";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@DefaultNS";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryType";'; + put 'put "characterstring20";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryFormat";'; + put 'put "characterstring10";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@Access";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@CurrentAccess";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@PauseState";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Path";'; + put 'put "";'; + put 'put "characterstring256";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Engine";'; + put 'put "";'; + put 'put "characterstring8";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Options";'; + put 'put "";'; + put 'put "characterstring32";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataCreated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataUpdated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put ''
'';'; + put 'run;'; + put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; + put 'proc sort data= _XML_.SASRepos out=&outds;'; + put 'by name;'; + put 'run;'; + put '/* clear references */'; + put 'filename sxlemap clear;'; + put 'filename response clear;'; + put 'libname _XML_ clear;'; + put '%mend mm_getrepos;'; + put '%macro dc_getgroups(outds=mm_getlibs);'; + put '%local repo repocnt x;'; + put '%let repo=%sysfunc(getoption(metarepository));'; + put '/* get list of repositories and filter */'; + put '%mm_getrepos(outds=repos)'; + put '%let repocnt=0;'; + put 'data repos;'; + put 'set repos;'; + put 'where repositorytype in(''CUSTOM'',''FOUNDATION'')'; + put '& upcase(name) ne "%upcase(&repo)";'; + put 'keep id name ;'; + put 'call symputx(cats(''repo'',_n_),name,''l'');'; + put 'call symputx(''repocnt'',_n_,''l'');'; + put 'run;'; + put '%put _local_;'; + put '%mm_getgroups(outds=&outds,repo=foundation)'; + put '%do x=1 %to &repocnt;'; + put '%mm_getgroups(outds=&outds.a, repo=&&repo&x)'; + put 'proc append base=&outds data=&outds.a;'; + put 'run;'; + put '%end;'; + put 'proc sort data=&outds noduprec;'; + put 'by groupname;'; + put 'run;'; + put '%mend dc_getgroups;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file getgroups.sas'; + put '@brief List all SAS Groups'; + put '@details Gets a list of all SAS Groups. Runs without mpeinit() so that it'; + put 'can be available to the sasjs/server configurator'; + put '

SAS Macros

'; + put '@li dc_getgroups.sas'; + put '

Data Outputs

'; + put '
groups
'; + put '|NAME:$32.|DESCRIPTION:$64.|GROUPID:best.|'; + put '|---|---|---|'; + put '|`SomeGroup `|`A group `|`1`|'; + put '|`Another Group`|`this is a different group`|`2`|'; + put '|`admin`|`Administrators `|`3`|'; + put '@version 9.3'; + put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; + put 'downloaded from here: https://4gl.uk/dcdeploy'; + put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; + put 'and may not be re-distributed or re-sold without the express permission of'; + put '4GL Apps Ltd.'; + put '**/'; + put '%dc_getgroups(outds=groups)'; + put '%webout(OPEN)'; + put '%webout(OBJ,groups)'; put '%webout(CLOSE)'; put '* Service end;'; @@ -8959,3 +99724,122270 @@ run; filename sascode clear; +%let service=getrawdata; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Files

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as FMTCAT,'; + put 'FMTNAME'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'LENGTH num'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.length as MAXW'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put ')))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] workobs= (0) When set to a positive integer, will create a new'; + put 'output object (WORK) which contains this number of observations from all'; + put 'tables in the WORK library.'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX,workobs=0'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&workobs) > 0 %then %do;'; + put '/* if debug mode, send back first XX records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10'; + put ',maxobs=&workobs'; + put ')'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '%macro mm_getGroups('; + put 'user='; + put ',outds=work.mm_getGroups'; + put ',repo=foundation'; + put ',mDebug=0'; + put ')/*/STORE SOURCE*/;'; + put '%local mD oldrepo;'; + put '%let oldrepo=%sysfunc(getoption(metarepository));'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing mm_getGroups.sas;'; + put '%&mD.put _local_;'; + put '/* on some sites, user / group info is in a different metadata repo to the'; + put 'default */'; + put '%if &oldrepo ne &repo %then %do;'; + put 'options metarepository=&repo;'; + put '%end;'; + put '%if %length(&user)=0 %then %do;'; + put 'data &outds (keep=groupuri groupname groupdesc);'; + put 'length groupuri groupname groupdesc group_or_role $256;'; + put 'call missing(of _all_);'; + put 'i+1;'; + put 'do while'; + put '(metadata_getnobj("omsobj:IdentityGroup?@Id contains ''.''",i,groupuri)>0);'; + put 'rc=metadata_getattr(groupuri, "Name", groupname);'; + put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; + put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; + put 'if Group_or_Role = ''UserGroup'' then output;'; + put 'i+1;'; + put 'end;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put 'data &outds (keep=groupuri groupname groupdesc);'; + put 'length uri groupuri groupname groupdesc group_or_role $256;'; + put 'call missing(of _all_);'; + put 'rc=metadata_getnobj("omsobj:Person?@Name=''&user''",1,uri);'; + put 'if rc<=0 then do;'; + put 'putlog "%str(WARN)ING: rc=" rc "&user not found "'; + put '", or there was an issue reading the repository.";'; + put 'stop;'; + put 'end;'; + put 'a=1;'; + put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; + put 'if grpassn in (-3,-4) then do;'; + put 'putlog "%str(WARN)ING: No metadata groups found for &user";'; + put 'output;'; + put 'end;'; + put 'else do while (grpassn > 0);'; + put 'rc=metadata_getattr(groupuri, "Name", groupname);'; + put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; + put 'a+1;'; + put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; + put 'if Group_or_Role = ''UserGroup'' then output;'; + put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; + put 'end;'; + put 'run;'; + put '%end;'; + put '%if &oldrepo ne &repo %then %do;'; + put 'options metarepository=&oldrepo;'; + put '%end;'; + put '%mend mm_getGroups;'; + put '%macro dc_getusergroups(user=,outds=mm_getgroups);'; + put '%global dc_repo_users;'; + put '%if &dc_repo_users= %then %let dc_repo_users=foundation;'; + put '%mm_getgroups(user=&user,outds=&outds,repo=&dc_repo_users)'; + put '%mend dc_getusergroups;'; + put '%macro mpe_getgroups(user=,outds=);'; + put '%if not %symexist(dc_repo_users) %then %let dc_repo_users=foundation;'; + put '%dc_getusergroups(user=&user,outds=&outds)'; + put 'data;'; + put 'length groupname groupdesc $256;'; + put 'set &dc_libref..mpe_groups;'; + put 'where &dc_dttmtfmt. lt tx_to;'; + put 'where also upcase(user_name)="%upcase(&user)";'; + put 'groupname=group_name;'; + put 'groupdesc=group_desc;'; + put 'keep groupname groupdesc;'; + put 'run;'; + put 'data &outds;'; + put 'set &syslast &outds(keep=groupname groupdesc);'; + put 'run;'; + put '%mend mpe_getgroups;'; + put '%macro mf_getuniquename(prefix=MC);'; + put '&prefix.%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32-%length(&prefix))'; + put '%mend mf_getuniquename;'; + put '%macro mf_getattrn('; + put 'libds'; + put ',attr'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid rc;'; + put '%let dsid=%sysfunc(open(&libds,is));'; + put '%if &dsid = 0 %then %do;'; + put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; + put '%put %sysfunc(sysmsg());'; + put '-1'; + put '%end;'; + put '%else %do;'; + put '%sysfunc(attrn(&dsid,&attr))'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%mend mf_getattrn;'; + put '%macro mf_nobs(libds'; + put ')/*/STORE SOURCE*/;'; + put '%mf_getattrn(&libds,NLOBS)'; + put '%mend mf_nobs;'; + put '%macro mp_filtergenerate(inds,outref=filter);'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc - on macro entry)'; + put ')'; + put 'filename &outref temp;'; + put '%if %mf_nobs(&inds)=0 %then %do;'; + put '/* ensure we have a default filter */'; + put 'data _null_;'; + put 'file &outref;'; + put 'put ''1=1'';'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put 'proc sort data=&inds;'; + put 'by SUBGROUP_ID;'; + put 'run;'; + put 'data _null_;'; + put 'file &outref lrecl=32800;'; + put 'set &inds end=last;'; + put 'by SUBGROUP_ID;'; + put 'if _n_=1 then put ''(('';'; + put 'else if first.SUBGROUP_ID then put +1 GROUP_LOGIC ''('';'; + put 'else put +2 SUBGROUP_LOGIC;'; + put 'put +4 VARIABLE_NM OPERATOR_NM RAW_VALUE;'; + put 'if last.SUBGROUP_ID then put '')''@;'; + put 'if last then put '')'';'; + put 'run;'; + put '%end;'; + put '%mend mp_filtergenerate;'; + put '%macro mpe_filtermaster(mode,libds,'; + put 'dclib=,'; + put 'filter_rk=-1,'; + put 'outref=0,'; + put 'outds=work.query'; + put ');'; + put '%put &sysmacroname entry vars:;'; + put '%put _local_;'; + put '%let mode=%upcase(&mode);'; + put '%let libds=%upcase(&libds);'; + put '%mp_abort(iftrue= ('; + put '&mode ne EDIT and &mode ne VIEW and &mode ne DLOAD and &mode ne ULOAD'; + put ')'; + put ',mac=&sysmacroname'; + put ',msg=%str(Invalid MODE: &mode)'; + put ')'; + put '%mp_abort(iftrue= (&outref = 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Please provide a fileref!)'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc)'; + put ')'; + put 'filename &outref temp;'; + put '/* ensure outputs exist */'; + put 'data _null_;'; + put 'file &outref;'; + put 'put '' '';'; + put 'run;'; + put 'data &outds;'; + put 'set &dclib..mpe_filtersource;'; + put 'stop;'; + put 'run;'; + put '/**'; + put '* Deal with FILTER_RK first'; + put '*/'; + put '%if &filter_rk gt 0 %then %do;'; + put 'data _null_;'; + put 'file &outref;'; + put 'put ''( ''@@;'; + put 'set &dclib..mpe_filteranytable(where=(filter_rk=&filter_rk));'; + put 'call symputx(''filter_hash'',filter_hash,''l'');'; + put 'run;'; + put 'proc sort data=&dclib..mpe_filtersource(where=(filter_hash="&filter_hash"))'; + put 'out=&outds(drop=filter_hash filter_line processed_dttm);'; + put 'by filter_line;'; + put 'run;'; + put '%mp_filtergenerate(&outds,outref=&outref)'; + put '%end;'; + put '/* Now filter for current records if the MODE is EDIT or DLOAD */'; + put '%local varfrom varto;'; + put '%let varfrom=0;'; + put 'proc sql;'; + put 'select coalescec(var_txfrom,''0''), var_txto into: varfrom,:varto'; + put 'from &dclib..MPE_TABLES'; + put 'where &dc_dttmtfmt. lt tx_to'; + put 'and libref="%scan(&libds,1,.)" and dsn="%scan(&libds,2,.)";'; + put '%put &=varfrom;'; + put '%put &=varto;'; + put '/**'; + put '* Check if the date variables were mentioned in the query'; + put '* This is a trigger for serving a historical view instead of current'; + put '* we skip this part when checking an ULOAD as there are no date vars'; + put '*/'; + put '%if &varfrom ne 0 and (&mode=EDIT or &mode=DLOAD) %then %do;'; + put '%local validityvars;'; + put 'proc sql;'; + put 'select count(*) into: validityvars'; + put 'from &outds'; + put 'where variable_nm in ("&varfrom","&varto");'; + put '%if &validityvars=0 %then %do;'; + put 'data _null_;'; + put 'file &outref mod;'; + put 'length filter_text $32767;'; + put 'varfrom=symget(''varfrom'');'; + put 'varto=symget(''varto'');'; + put 'filter_text=catx('' '','; + put '''("%sysfunc(datetime(),'',"%mf_fmtdttm()",'')"dt <'',varto,'')'''; + put ');'; + put 'if &filter_rk > 0 then put ''AND '' filter_text;'; + put 'else put filter_text;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '/**'; + put '* Now do Row Level Security based on the MPE_ROW_LEVEL_SECURITY table'; + put '*/'; + put '/* first determine users group membership */'; + put '%mpe_getgroups(user=%mf_getuser(),outds=work.groups)'; + put '%local admin_check;'; + put 'proc sql;'; + put 'select count(*) into: admin_check'; + put 'from work.groups'; + put 'where groupname="&mpeadmins";'; + put '%put &sysmacroname: &=admin_check &=mpeadmins;'; + put '%if &admin_check=0 %then %do;'; + put '%local scopeval;'; + put '%if &mode=DLOAD %then %let scopeval=VIEW;'; + put '%if &mode=ULOAD %then %let scopeval=EDIT;'; + put '%else %let scopeval=&mode;'; + put '/* extract relevant rows */'; + put '%local rlsds;'; + put '%let rlsds=%mf_getuniquename();'; + put 'proc sql;'; + put 'create table work.&rlsds as'; + put 'select rls_group,'; + put 'rls_group_logic as group_logic,'; + put 'rls_subgroup_logic as subgroup_logic,'; + put 'rls_subgroup_id as subgroup_id,'; + put 'rls_variable_nm as variable_nm,'; + put 'rls_operator_nm as operator_nm,'; + put 'rls_raw_value as raw_value'; + put 'from &mpelib..mpe_row_level_security'; + put 'where &dc_dttmtfmt. lt tx_to'; + put 'and rls_scope in ("&scopeval",''ALL'')'; + put 'and upcase(rls_group) in (select upcase(groupname) from work.groups)'; + put 'and rls_libref="%scan(&libds,1,.)"'; + put 'and rls_table="%scan(&libds,2,.)"'; + put 'and rls_active=1'; + put 'order by rls_group,rls_subgroup_id;'; + put '%if &sqlobs>0 %then %do;'; + put '/* check if we currently have filter or not */'; + put 'data ;'; + put 'infile &outref end=eof;'; + put 'input;'; + put 'if _n_=1 and eof and cats(_infile_)='''' then newfilter=1;'; + put 'output;'; + put 'stop;'; + put 'run;'; + put 'data _null_;'; + put 'set &syslast;'; + put 'file &outref mod;'; + put 'if newfilter=1 then put ''('';'; + put 'else put ''AND ('';'; + put 'run;'; + put '/* loop through and apply filters for each group membership */'; + put '%local fref ds;'; + put '%let fref=%mf_getuniquefileref();'; + put '%let ds=%mf_getuniquename();'; + put 'proc sql noprint;'; + put 'select distinct rls_group into : group1 -'; + put 'from work.&rlsds;'; + put '%do i=1 %to &sqlobs;'; + put 'data work.&ds;'; + put 'set work.&rlsds;'; + put 'where rls_group="&&group&i";'; + put 'drop rls_group;'; + put 'run;'; + put '%mp_filtergenerate(&ds,outref=&fref)'; + put 'data _null_;'; + put 'infile &fref;'; + put 'file &outref mod;'; + put 'input;'; + put 'if &i>1 and _n_=1 then put '' OR '';'; + put 'put _infile_;'; + put 'run;'; + put '%end;'; + put 'data _null_;'; + put 'file &outref mod;'; + put 'put '')'';'; + put 'run;'; + put '%end; /* &sqlobs>0 */'; + put '%else %do;'; + put '%put &sysmacroname: no matching groups;'; + put 'data _null_;'; + put 'set work.groups;'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc>0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Row Level Security Generation Error)'; + put ')'; + put '%end; /* &admin_check=0 */'; + put '%put leaving &sysmacroname with the following query:;'; + put '%local empty;'; + put '%let empty=0;'; + put 'data _null_;'; + put 'infile &outref end=eof;'; + put 'input;'; + put 'putlog _infile_;'; + put 'if _n_=1 and eof and cats(_infile_)='''' then do;'; + put 'put ''1=1'';'; + put 'call symputx(''empty'',1,''l'');'; + put 'end;'; + put 'run;'; + put '%if &empty=1 %then %do;'; + put 'data _null_;'; + put 'file &outref;'; + put 'put ''1=1'';'; + put 'run;'; + put '%end;'; + put '%mend mpe_filtermaster;'; + put '%macro mm_assignlib('; + put 'libref'; + put ',mAbort=HARD'; + put ')/*/STORE SOURCE*/;'; + put '%local mp_abort msg;'; + put '%let mp_abort=0;'; + put '%if %sysfunc(libref(&libref)) %then %do;'; + put 'data _null_;'; + put 'length liburi LibName msg $200;'; + put 'call missing(of _all_);'; + put 'nobj=metadata_getnobj("omsobj:SASLibrary?@Libref=''&libref''",1,liburi);'; + put 'if nobj=1 then do;'; + put 'rc=metadata_getattr(liburi,"Name",LibName);'; + put '/* now try and assign it */'; + put 'if libname("&libref",,''meta'',cats(''liburi="'',liburi,''";'')) ne 0 then do;'; + put 'putlog "&libref could not be assigned";'; + put 'putlog liburi=;'; + put '/**'; + put '* Fetch the system message for display in the abort modal. This is'; + put '* not always helpful though. One example, previously received:'; + put '* NOTE: Libref XX refers to the same library metadata as libref XX.'; + put '*/'; + put 'msg=sysmsg();'; + put 'if msg=:''ERROR: Libref SAVE is not assigned.'' then do;'; + put 'msg=catx(" ",'; + put '"Could not assign %upcase(&libref).",'; + put '"Please check metadata permissions! Libname:",libname,'; + put '"Liburi:",liburi'; + put ');'; + put 'end;'; + put 'else if msg="ERROR: User does not have appropriate authorization "!!'; + put '"level for library SAVE."'; + put 'then do;'; + put 'msg=catx(" ",'; + put '"ERROR: User does not have appropriate authorization level",'; + put '"for library %upcase(&libref), libname:",libname,'; + put '"Liburi:",liburi'; + put ');'; + put 'end;'; + put 'call symputx(''msg'',msg,''l'');'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1,''l'');'; + put 'end;'; + put 'else do;'; + put 'put (_all_)(=);'; + put 'call symputx(''libname'',libname,''L'');'; + put 'call symputx(''liburi'',liburi,''L'');'; + put 'end;'; + put 'end;'; + put 'else if nobj>1 then do;'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; + put 'call symputx(''msg'',"More than one library with libref=&libref");'; + put 'end;'; + put 'else do;'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; + put 'call symputx(''msg'',"Library &libref not found in metadata");'; + put 'end;'; + put 'run;'; + put '%put NOTE: &msg;'; + put '%end;'; + put '%else %do;'; + put '%put NOTE: Library &libref is already assigned;'; + put '%end;'; + put '%mp_abort(iftrue= (&mp_abort=1)'; + put ',mac=mm_assignlib.sas'; + put ',msg=%superq(msg)'; + put ')'; + put '%mend mm_assignlib;'; + put '/** @cond */'; + put '%macro mf_getengine(libref'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid engnum rc engine;'; + put '/* in case the parameter is a libref.tablename, pull off just the libref */'; + put '%let libref = %upcase(%scan(&libref, 1, %str(.)));'; + put '%let dsid=%sysfunc('; + put 'open(sashelp.vlibnam(where=(libname="%upcase(&libref)")),i)'; + put ');'; + put '%if (&dsid ^= 0) %then %do;'; + put '%let engnum=%sysfunc(varnum(&dsid,ENGINE));'; + put '%let rc=%sysfunc(fetch(&dsid));'; + put '%let engine=%sysfunc(getvarc(&dsid,&engnum));'; + put '%put &libref. ENGINE is &engine.;'; + put '%let rc= %sysfunc(close(&dsid));'; + put '%end;'; + put '%upcase(&engine)'; + put '%mend mf_getengine;'; + put '/** @endcond */'; + put '%macro mm_assigndirectlib('; + put 'libref /* libref to assign from metadata */'; + put ',open_passthrough= /* provide an alias to produce the'; + put 'CONNECT TO statement for the'; + put 'relevant external database */'; + put ',sql_options= /* add any options to add to proc sql statement eg outobs='; + put '(only valid for pass through) */'; + put ',mDebug=0'; + put ',mAbort=0'; + put ')/*/STORE SOURCE*/;'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing mm_assigndirectlib.sas;'; + put '%&mD.put _local_;'; + put '%if &mAbort=1 %then %let mAbort=;'; + put '%else %let mAbort=%str(*);'; + put '%&mD.put NOTE: Creating direct (non META) connection to &libref library;'; + put '%local cur_engine;'; + put '%let cur_engine=%mf_getengine(&libref);'; + put '%if &cur_engine ne META and &cur_engine ne %then %do;'; + put '%put NOTE: &libref already has a direct (&cur_engine) libname connection;'; + put '%return;'; + put '%end;'; + put '%else %if %upcase(&libref)=WORK %then %do;'; + put '%put NOTE: We already have a direct connection to WORK :-) ;'; + put '%return;'; + put '%end;'; + put '/* need to determine the library ENGINE first */'; + put '%local engine;'; + put 'data _null_;'; + put 'length lib_uri engine $256;'; + put 'call missing (of _all_);'; + put '/* get URI for the particular library */'; + put 'rc1=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put '/* get the Engine attribute of the previous object */'; + put 'rc2=metadata_getattr(lib_uri,''Engine'',engine);'; + put 'putlog "mm_assigndirectlib for &libref:" rc1= lib_uri= rc2= engine=;'; + put 'call symputx("liburi",lib_uri,''l'');'; + put 'call symputx("engine",engine,''l'');'; + put 'run;'; + put '/* now obtain engine specific connection details */'; + put '%if &engine=BASE %then %do;'; + put '%&mD.put NOTE: Retrieving BASE library path;'; + put 'data _null_;'; + put 'length up_uri $256 path cat_path $1024;'; + put 'retain cat_path;'; + put 'call missing (of _all_);'; + put '/* get all the filepaths of the UsingPackages association */'; + put 'i=1;'; + put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; + put 'do while (rc3>0);'; + put '/* get the DirectoryName attribute of the previous object */'; + put 'rc4=metadata_getattr(up_uri,''DirectoryName'',path);'; + put 'if i=1 then path = ''("''!!trim(path)!!''" '';'; + put 'else path ='' "''!!trim(path)!!''" '';'; + put 'cat_path = trim(cat_path) !! " " !! trim(path) ;'; + put 'i+1;'; + put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; + put 'end;'; + put 'cat_path = trim(cat_path) !! ")";'; + put '&mD.putlog "NOTE: Getting physical path for &libref library";'; + put '&mD.putlog rc3= up_uri= rc4= cat_path= path=;'; + put '&mD.putlog "NOTE: Libname cmd will be:";'; + put '&mD.putlog "libname &libref" cat_path;'; + put 'call symputx("filepath",cat_path,''l'');'; + put 'run;'; + put '%if %sysevalf(&sysver<9.4) %then %do;'; + put 'libname &libref &filepath;'; + put '%end;'; + put '%else %do;'; + put '/* apply the new filelocks option to cater for temporary locks */'; + put 'libname &libref &filepath filelockwait=5;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=REMOTE %then %do;'; + put 'data x;'; + put 'length rcCon rcProp rc k 3 uriCon uriProp PropertyValue PropertyName'; + put 'Delimiter $256 properties $2048;'; + put 'retain properties;'; + put 'rcCon = metadata_getnasn("&liburi", "LibraryConnection", 1, uriCon);'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", 1, uriProp);'; + put 'k = 1;'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; + put 'do while (rcProp > 0);'; + put 'rc = metadata_getattr(uriProp , "DefaultValue",PropertyValue);'; + put 'rc = metadata_getattr(uriProp , "PropertyName",PropertyName);'; + put 'rc = metadata_getattr(uriProp , "Delimiter",Delimiter);'; + put 'properties = trim(properties) !! " " !! trim(PropertyName)'; + put '!! trim(Delimiter) !! trim(PropertyValue);'; + put 'output;'; + put 'k+1;'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; + put 'end;'; + put '%&mD.put NOTE: Getting properties for REMOTE SHARE &libref library;'; + put '&mD.put _all_;'; + put '%&mD.put NOTE: Libname cmd will be:;'; + put '%&mD.put libname &libref &engine &properties slibref=&libref;'; + put 'call symputx ("properties",trim(properties),''l'');'; + put 'run;'; + put 'libname &libref &engine &properties slibref=&libref;'; + put '%end;'; + put '%else %if &engine=OLEDB %then %do;'; + put '%&mD.put NOTE: Retrieving OLEDB connection details;'; + put 'data _null_;'; + put 'length domain datasource provider properties schema'; + put 'connx_uri domain_uri conprop_uri lib_uri schema_uri value $256.;'; + put 'call missing (of _all_);'; + put '/* get source connection ID */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; + put '/* get connection domain */'; + put 'rc1=metadata_getnasn(connx_uri,''Domain'',1,domain_uri);'; + put 'rc2=metadata_getattr(domain_uri,''Name'',domain);'; + put '&mD.putlog / ''NOTE: '' // ''NOTE- connection id: '' connx_uri ;'; + put '&mD.putlog ''NOTE- domain: '' domain;'; + put '/* get DSN and PROVIDER from connection properties */'; + put 'i=0;'; + put 'do until (rc<0);'; + put 'i+1;'; + put 'rc=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; + put 'rc2=metadata_getattr(conprop_uri,''Name'',value);'; + put 'if value=''Connection.OLE.Property.DATASOURCE.Name.xmlKey.txt'' then do;'; + put 'rc3=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; + put 'end;'; + put 'else if value=''Connection.OLE.Property.PROVIDER.Name.xmlKey.txt'' then do;'; + put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',provider);'; + put 'end;'; + put 'else if value=''Connection.OLE.Property.PROPERTIES.Name.xmlKey.txt'' then'; + put 'do;'; + put 'rc5=metadata_getattr(conprop_uri,''DefaultValue'',properties);'; + put 'end;'; + put 'end;'; + put '&mD.putlog ''NOTE- dsn/provider/properties: '' /'; + put 'datasource provider properties;'; + put '&mD.putlog ''NOTE- schema: '' schema // ''NOTE-'';'; + put '/* get SCHEMA */'; + put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,lib_uri);'; + put 'rc7=metadata_getattr(lib_uri,''SchemaName'',schema);'; + put 'call symputx(''SQL_domain'',domain,''l'');'; + put 'call symputx(''SQL_dsn'',datasource,''l'');'; + put 'call symputx(''SQL_provider'',provider,''l'');'; + put 'call symputx(''SQL_properties'',properties,''l'');'; + put 'call symputx(''SQL_schema'',schema,''l'');'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put 'proc sql &sql_options;'; + put 'connect to OLEDB as &open_passthrough(INSERT_SQL=YES'; + put '/* need additional properties to make this work */'; + put 'properties=(''Integrated Security''=SSPI'; + put '''Persist Security Info''=True'; + put '%sysfunc(compress(%str(&SQL_properties),%str(())))'; + put ')'; + put 'DATASOURCE=&sql_dsn PROMPT=NO'; + put 'PROVIDER=&sql_provider SCHEMA=&sql_schema CONNECTION = GLOBAL);'; + put '%end;'; + put '%else %do;'; + put 'LIBNAME &libref OLEDB PROPERTIES=&sql_properties'; + put 'DATASOURCE=&sql_dsn PROVIDER=&sql_provider SCHEMA=&sql_schema'; + put '%if %length(&sql_domain)>0 %then %do;'; + put 'authdomain="&sql_domain"'; + put '%end;'; + put 'connection=shared;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=ODBC %then %do;'; + put '&mD.%put NOTE: Retrieving ODBC connection details;'; + put 'data _null_;'; + put 'length connx_uri conprop_uri value datasource up_uri schema $256.;'; + put 'call missing (of _all_);'; + put '/* get source connection ID */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; + put '/* get connection properties */'; + put 'i=0;'; + put 'do until (rc2<0);'; + put 'i+1;'; + put 'rc2=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; + put 'rc3=metadata_getattr(conprop_uri,''Name'',value);'; + put 'if value=''Connection.ODBC.Property.DATASRC.Name.xmlKey.txt'' then do;'; + put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; + put 'rc2=-1;'; + put 'end;'; + put 'end;'; + put '/* get SCHEMA */'; + put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,up_uri);'; + put 'rc7=metadata_getattr(up_uri,''SchemaName'',schema);'; + put '&mD.put rc= connx_uri= rc2= conprop_uri= rc3= value= rc4= datasource='; + put 'rc6= up_uri= rc7= schema=;'; + put 'call symputx(''SQL_schema'',schema,''l'');'; + put 'call symputx(''SQL_dsn'',datasource,''l'');'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put 'proc sql &sql_options;'; + put 'connect to ODBC as &open_passthrough'; + put '(INSERT_SQL=YES DATASRC=&sql_dsn. CONNECTION=global);'; + put '%end;'; + put '%else %do;'; + put 'libname &libref ODBC DATASRC=&sql_dsn SCHEMA=&sql_schema;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=POSTGRES %then %do;'; + put '%put NOTE: Obtaining POSTGRES library details;'; + put 'data _null_;'; + put 'length database ignore_read_only_columns direct_exe preserve_col_names'; + put 'preserve_tab_names server schema authdomain user password'; + put 'prop name value uri urisrc $256.;'; + put 'call missing (of _all_);'; + put '/* get database value */'; + put 'prop=''Connection.DBMS.Property.DB.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,database,"");'; + put 'if database^='''' then database=''database=''!!quote(trim(database));'; + put 'call symputx(''database'',database,''l'');'; + put '/* get IGNORE_READ_ONLY_COLUMNS value */'; + put 'prop=''Library.DBMS.Property.DBIROC.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,ignore_read_only_columns,"");'; + put 'if ignore_read_only_columns^='''' then ignore_read_only_columns='; + put '''ignore_read_only_columns=''!!ignore_read_only_columns;'; + put 'call symputx(''ignore_read_only_columns'',ignore_read_only_columns,''l'');'; + put '/* get DIRECT_EXE value */'; + put 'prop=''Library.DBMS.Property.DirectExe.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,direct_exe,"");'; + put 'if direct_exe^='''' then direct_exe=''direct_exe=''!!direct_exe;'; + put 'call symputx(''direct_exe'',direct_exe,''l'');'; + put '/* get PRESERVE_COL_NAMES value */'; + put 'prop=''Library.DBMS.Property.PreserveColNames.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,preserve_col_names,"");'; + put 'if preserve_col_names^='''' then preserve_col_names='; + put '''preserve_col_names=''!!preserve_col_names;'; + put 'call symputx(''preserve_col_names'',preserve_col_names,''l'');'; + put '/* get PRESERVE_TAB_NAMES value */'; + put '/* be careful with PRESERVE_TAB_NAMES=YES - it will mean your table will'; + put 'become case sensitive!! */'; + put 'prop=''Library.DBMS.Property.PreserveTabNames.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,preserve_tab_names,"");'; + put 'if preserve_tab_names^='''' then preserve_tab_names='; + put '''preserve_tab_names=''!!preserve_tab_names;'; + put 'call symputx(''preserve_tab_names'',preserve_tab_names,''l'');'; + put '/* get SERVER value */'; + put 'if metadata_getnasn("&liburi","LibraryConnection",1,uri)>0 then do;'; + put 'prop=''Connection.DBMS.Property.SERVER.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop(uri,prop,server,"");'; + put 'end;'; + put 'if server^='''' then server=''server=''!!quote(cats(server));'; + put 'call symputx(''server'',server,''l'');'; + put '/* get SCHEMA value */'; + put 'if metadata_getnasn("&liburi","UsingPackages",1,uri)>0 then do;'; + put 'rc=metadata_getattr(uri,"SchemaName",schema);'; + put 'end;'; + put 'if schema^='''' then schema=''schema=''!!schema;'; + put 'call symputx(''schema'',schema,''l'');'; + put '/* get AUTHDOMAIN value */'; + put '/* this is only useful if the user account contains that auth domain'; + put 'if metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then do;'; + put 'rc=metadata_getnasn(uri,"Domain",1,urisrc);'; + put 'rc=metadata_getattr(urisrc,"Name",authdomain);'; + put 'end;'; + put 'if authdomain^='''' then authdomain=''authdomain=''!!quote(trim(authdomain));'; + put '*/'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/* get user & pass */'; + put 'if authdomain='''' & metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then'; + put 'do;'; + put 'rc=metadata_getattr(uri,"UserID",user);'; + put 'rc=metadata_getattr(uri,"Password",password);'; + put 'end;'; + put 'if user^='''' then do;'; + put 'user=''user=''!!quote(trim(user));'; + put 'password=''password=''!!quote(trim(password));'; + put 'end;'; + put 'call symputx(''user'',user,''l'');'; + put 'call symputx(''password'',password,''l'');'; + put '&md.put _all_;'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put '%put %str(WARN)ING: Passthrough option for postgres not yet supported;'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put '%if &mdebug=1 %then %do;'; + put '%put NOTE: Executing the following:/;'; + put '%put NOTE- libname &libref POSTGRES &database &ignore_read_only_columns;'; + put '%put NOTE- &direct_exe &preserve_col_names &preserve_tab_names;'; + put '%put NOTE- &server &schema &authdomain &user &password //;'; + put '%end;'; + put 'libname &libref POSTGRES &database &ignore_read_only_columns &direct_exe'; + put '&preserve_col_names &preserve_tab_names &server &schema &authdomain'; + put '&user &password;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=ORACLE %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null_;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema $256;'; + put 'call missing (of _all_);'; + put '/* get auth domain */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; + put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; + put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/* path */'; + put 'rc=metadata_getprop(assocuri1,'; + put '''Connection.Oracle.Property.PATH.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref ORACLE path=&path schema=&schema;'; + put '%put NOTE- authdomain=&authdomain;'; + put '%put NOTE-;'; + put 'libname &libref ORACLE path=&path schema=&schema authdomain=&authdomain;'; + put '%end;'; + put '%else %if &engine=SQLSVR %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; + put 'passwd $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; + put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; + put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; + put 'call symputx(''user'',userid,''l'');'; + put 'call symputx(''pass'',passwd,''l'');'; + put '/* path */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; + put 'rc=metadata_getprop(assocuri2,'; + put '''Connection.SQL.Property.Datasrc.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref SQLSVR datasrc=&path schema=&schema ;'; + put '%put NOTE- user="&user" pass="XXX";'; + put '%put NOTE-;'; + put 'libname &libref SQLSVR datasrc=&path schema=&schema user="&user" pass="&pass";'; + put '%end;'; + put '%else %if &engine=TERADATA %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; + put 'passwd $256;'; + put 'call missing (of _all_);'; + put '/* get auth domain */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; + put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; + put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/*'; + put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; + put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; + put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; + put 'call symputx(''user'',userid,''l'');'; + put 'call symputx(''pass'',passwd,''l'');'; + put '*/'; + put '/* path */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; + put 'rc=metadata_getprop(assocuri2,'; + put '''Connection.Teradata.Property.SERVER.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref TERADATA server="&path" schema=&schema ;'; + put '%put NOTe- authdomain=&authdomain;'; + put '%put NOTE-;'; + put 'libname &libref TERADATA server="&path" schema=&schema authdomain=&authdomain;'; + put '%end;'; + put '%else %if &engine= %then %do;'; + put '%put NOTE: Libref &libref is not registered in metadata;'; + put '%&mAbort.mp_abort('; + put 'msg=%str(ERR)OR: Libref &libref is not registered in metadata'; + put ',mac=mm_assigndirectlib.sas);'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put '%put %str(WARN)ING: Engine &engine is currently unsupported;'; + put '%put %str(WARN)ING- Please contact your support team.;'; + put '%return;'; + put '%end;'; + put '%mend mm_assigndirectlib;'; + put '%macro mm_getrepos('; + put 'outds=work.mm_getrepos'; + put ')/*/STORE SOURCE*/;'; + put '* use a temporary fileref to hold the response;'; + put 'filename response temp;'; + put '/* get list of libraries */'; + put 'proc metadata in='; + put '"1"'; + put 'out=response;'; + put 'run;'; + put '/* write the response to the log for debugging */'; + put '/*'; + put 'data _null_;'; + put 'infile response lrecl=1048576;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '*/'; + put '/* create an XML map to read the response */'; + put 'filename sxlemap temp;'; + put 'data _null_;'; + put 'file sxlemap;'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository";'; + put 'put "";'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Id";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Name";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Desc";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@DefaultNS";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryType";'; + put 'put "characterstring20";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryFormat";'; + put 'put "characterstring10";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@Access";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@CurrentAccess";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@PauseState";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Path";'; + put 'put "";'; + put 'put "characterstring256";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Engine";'; + put 'put "";'; + put 'put "characterstring8";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Options";'; + put 'put "";'; + put 'put "characterstring32";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataCreated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataUpdated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put ''
'';'; + put 'run;'; + put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; + put 'proc sort data= _XML_.SASRepos out=&outds;'; + put 'by name;'; + put 'run;'; + put '/* clear references */'; + put 'filename sxlemap clear;'; + put 'filename response clear;'; + put 'libname _XML_ clear;'; + put '%mend mm_getrepos;'; + put '%macro dc_assignlib(type,libref,passthru=);'; + put '%put &sysmacroname entry vars:;'; + put '%put _local_;'; + put '/* take current repository */'; + put '%local repo repocnt x;'; + put '%let repo=%sysfunc(getoption(metarepository));'; + put '/* get list of repositories and filter */'; + put '%mm_getrepos(outds=repos)'; + put '%let repocnt=0;'; + put 'data repos;'; + put 'set repos;'; + put 'where repositorytype in(''CUSTOM'',''FOUNDATION'')'; + put '& upcase(name) ne "%upcase(&repo)";'; + put 'keep id name ;'; + put 'call symputx(cats(''repo'',_n_),name,''l'');'; + put 'call symputx(''repocnt'',_n_,''l'');'; + put 'run;'; + put '/* find out which of these repositories has the libref we are searching for */'; + put '%local lib_uri;'; + put '%let lib_uri=NOTFOUND;'; + put 'data _null_; /* check default repo first */'; + put 'length lib_uri $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; + put 'run;'; + put '%if &lib_uri=NOTFOUND %then %do;'; + put '%do x=1 %to &repocnt;'; + put 'options metarepository=&&repo&x;'; + put 'data _null_;'; + put 'length lib_uri $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; + put 'run;'; + put '%if &lib_uri ne NOTFOUND %then %let x=%eval(&repocnt+1);'; + put '%end;'; + put '%end;'; + put '%if &type=READ %then %do;'; + put '%mm_assignlib(&libref)'; + put '%end;'; + put '%else %if &type=WRITE %then %do;'; + put '%mm_assigndirectlib(&libref,open_passthrough=&passthru)'; + put '%end;'; + put 'options metarepository=&repo;'; + put '%mend dc_assignlib;'; + put '%macro mf_abort(mac=mf_abort.sas, msg=, iftrue=%str(1=1)'; + put ')/*/STORE SOURCE*/;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mf_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%abort;'; + put '%mend mf_abort;'; + put '/** @endcond */'; + put '%macro mf_verifymacvars('; + put 'verifyVars /* list of macro variable NAMES */'; + put ',makeUpcase=NO /* set to YES to make all the variable VALUES uppercase */'; + put ',mAbort=SOFT'; + put ')/*/STORE SOURCE*/;'; + put '%local verifyIterator verifyVar abortmsg;'; + put '%do verifyIterator=1 %to %sysfunc(countw(&verifyVars,%str( )));'; + put '%let verifyVar=%qscan(&verifyVars,&verifyIterator,%str( ));'; + put '%if not %symexist(&verifyvar) %then %do;'; + put '%let abortmsg= Variable &verifyVar is MISSING;'; + put '%goto exit_err;'; + put '%end;'; + put '%if %length(%trim(&&&verifyVar))=0 %then %do;'; + put '%let abortmsg= Variable &verifyVar is EMPTY;'; + put '%goto exit_err;'; + put '%end;'; + put '%if &makeupcase=YES %then %do;'; + put '%let &verifyVar=%upcase(&&&verifyvar);'; + put '%end;'; + put '%end;'; + put '%goto exit_success;'; + put '%exit_err:'; + put '%put &abortmsg;'; + put '%mf_abort(iftrue=(&mabort ne SOFT),'; + put 'mac=mf_verifymacvars,'; + put 'msg=%str(&abortmsg)'; + put ')'; + put '0'; + put '%return;'; + put '%exit_success:'; + put '1'; + put '%mend mf_verifymacvars;'; + put '/** @cond */'; + put '%macro mf_existfeature(feature'; + put ')/*/STORE SOURCE*/;'; + put '%let feature=%upcase(&feature);'; + put '%local platform;'; + put '%let platform=%mf_getplatform();'; + put '%if &feature= %then %do;'; + put '%put No feature was requested for detection;'; + put '%end;'; + put '%else %if &feature=COLCONSTRAINTS %then %do;'; + put '%if "%substr(&sysver,1,1)"="4" or "%substr(&sysver,1,1)"="5" %then 0;'; + put '%else 1;'; + put '%end;'; + put '%else %if &feature=PROCLUA %then %do;'; + put '/* https://blogs.sas.com/content/sasdummy/2015/08/03/using-lua-within-your-sas-programs */'; + put '%if &platform=SASVIYA %then 1;'; + put '%else %if "&sysver"="9.2" or "&sysver"="9.3" %then 0;'; + put '%else %if "&SYSVLONG" < "9.04.01M3" %then 0;'; + put '%else 1;'; + put '%end;'; + put '%else %if &feature=DBMS_MEMTYPE %then %do;'; + put '/* does dbms_memtype exist in dictionary.tables? */'; + put '%if "%substr(&sysver,1,1)"="4" or "%substr(&sysver,1,1)"="5" %then 0;'; + put '%else 1;'; + put '%end;'; + put '%else %if &feature=EXPORTXLS %then %do;'; + put '/* is it possible to PROC EXPORT an excel file? */'; + put '%if "%substr(&sysver,1,1)"="4" or "%substr(&sysver,1,1)"="5" %then 1;'; + put '%else %if %sysfunc(sysprod(SAS/ACCESS Interface to PC Files)) = 1 %then 1;'; + put '%else 0;'; + put '%end;'; + put '%else %do;'; + put '-1'; + put '%put &sysmacroname: &feature not found;'; + put '%end;'; + put '%mend mf_existfeature;'; + put '/** @endcond */'; + put '%macro mp_ds2cards(base_ds, tgt_ds='; + put ',cards_file="%sysfunc(pathname(work))/cardgen.sas"'; + put ',maxobs=max'; + put ',random_sample=NO'; + put ',showlog=YES'; + put ',outencoding='; + put ',append=NO'; + put ')/*/STORE SOURCE*/;'; + put '%local i setds nvars;'; + put '%if not %sysfunc(exist(&base_ds)) %then %do;'; + put '%put %str(WARN)ING: &base_ds does not exist;'; + put '%return;'; + put '%end;'; + put '%if %index(&base_ds,.)=0 %then %let base_ds=WORK.&base_ds;'; + put '%if (&tgt_ds = ) %then %let tgt_ds=&base_ds;'; + put '%if %index(&tgt_ds,.)=0 %then %let tgt_ds=WORK.%scan(&base_ds,2,.);'; + put '%if ("&outencoding" ne "") %then %let outencoding=encoding="&outencoding";'; + put '%if ("&append" = "" or "&append" = "NO") %then %let append=;'; + put '%else %let append=mod;'; + put '/* get varcount */'; + put '%let nvars=0;'; + put 'proc sql noprint;'; + put 'select count(*) into: nvars from dictionary.columns'; + put 'where upcase(libname)="%scan(%upcase(&base_ds),1)"'; + put 'and upcase(memname)="%scan(%upcase(&base_ds),2)";'; + put '%if &nvars=0 %then %do;'; + put '%put %str(WARN)ING: Dataset &base_ds has no variables, will not be converted.;'; + put '%return;'; + put '%end;'; + put '/* get indexes */'; + put 'proc sort'; + put 'data=sashelp.vindex('; + put 'where=(upcase(libname)="%scan(%upcase(&base_ds),1)"'; + put 'and upcase(memname)="%scan(%upcase(&base_ds),2)")'; + put ')'; + put 'out=_data_;'; + put 'by indxname indxpos;'; + put 'run;'; + put '%local indexes;'; + put 'data _null_;'; + put 'set &syslast end=last;'; + put 'if _n_=1 then call symputx(''indexes'',''(index=('',''l'');'; + put 'by indxname indxpos;'; + put 'length vars $32767 nom uni $8;'; + put 'retain vars;'; + put 'if first.indxname then do;'; + put 'idxcnt+1;'; + put 'nom='''';'; + put 'uni='''';'; + put 'vars=name;'; + put 'end;'; + put 'else vars=catx('' '',vars,name);'; + put 'if last.indxname then do;'; + put 'if nomiss=''yes'' then nom=''/nomiss'';'; + put 'if unique=''yes'' then uni=''/unique'';'; + put 'call symputx(''indexes'''; + put ',catx('' '',symget(''indexes''),indxname,''=('',vars,'')'',nom,uni)'; + put ',''l'');'; + put 'end;'; + put 'if last then call symputx(''indexes'',cats(symget(''indexes''),''))''),''l'');'; + put 'run;'; + put 'data;run;'; + put '%let setds=&syslast;'; + put 'proc sql'; + put '%if %datatyp(&maxobs)=NUMERIC %then %do;'; + put 'outobs=&maxobs;'; + put '%end;'; + put ';'; + put 'create table &setds as select * from &base_ds'; + put '%if &random_sample=YES %then %do;'; + put 'order by ranuni(42)'; + put '%end;'; + put ';'; + put 'reset outobs=max;'; + put 'create table datalines1 as'; + put 'select name,type,length,varnum,format,label from dictionary.columns'; + put 'where upcase(libname)="%upcase(%scan(&base_ds,1))"'; + put 'and upcase(memname)="%upcase(%scan(&base_ds,2))";'; + put '/**'; + put 'Due to long decimals cannot use best. format'; + put 'So - use bestd. format and then use character functions to strip trailing'; + put 'zeros, if NOT an integer or missing!! Cannot use int() as it upsets'; + put 'note2err when there are missings.'; + put 'resolved code = ifc( mod(coalesce(VARIABLE,0),1)=0'; + put ',put(VARIABLE,best32.)'; + put ',substrn(put(VARIABLE,bestd32.),1'; + put ',findc(put(VARIABLE,bestd32.),''0'',''TBK'')));'; + put '**/'; + put 'data datalines_2;'; + put 'format dataline $32000.;'; + put 'set datalines1 (where=(upcase(name) not in'; + put '(''PROCESSED_DTTM'',''VALID_FROM_DTTM'',''VALID_TO_DTTM'')));'; + put 'if type=''num'' then dataline='; + put 'cats(''ifc(mod(coalesce('',name,'',0),1)=0'; + put ',put('',name,'',best32.-l)'; + put ',substrn(put('',name,'',bestd32.-l),1'; + put ',findc(put('',name,'',bestd32.-l),"0","TBK")))'');'; + put '/**'; + put '* binary data must be converted, to store in text format. It is identified'; + put '* by the presence of the $HEX keyword in the format.'; + put '*/'; + put 'else if upcase(format)=:''$HEX'' then'; + put 'dataline=cats(''put(trim('',name,''),'',format,'')'');'; + put '/**'; + put '* There is no easy way to store line breaks in a cards file.'; + put '* To discuss this, use: https://github.com/sasjs/core/issues/80'; + put '* Removing all nonprintables with kw (keep writeable)'; + put '*/'; + put 'else dataline=cats(''compress('',name,'', ,"kw")'');'; + put 'run;'; + put 'proc sql noprint;'; + put 'select dataline into: datalines separated by '','' from datalines_2;'; + put '%local'; + put 'process_dttm_flg'; + put 'valid_from_dttm_flg'; + put 'valid_to_dttm_flg'; + put ';'; + put '%let process_dttm_flg = N;'; + put '%let valid_from_dttm_flg = N;'; + put '%let valid_to_dttm_flg = N;'; + put 'data _null_;'; + put 'set datalines1 ;'; + put '/* build attrib statement */'; + put 'if type=''char'' then type2=''$'';'; + put 'if strip(format) ne '''' then format2=cats(''format='',format);'; + put 'if strip(label) ne '''' then label2=cats(''label='',quote(trim(label)));'; + put 'str1=catx('' '',(put(name,$33.)||''length='')'; + put ',put(cats(type2,length),$7.)||format2,label2);'; + put '/* Build input statement */'; + put 'if upcase(format)=:''$HEX'' then type3='':''!!format;'; + put 'else if type=''char'' then type3='':$char.'';'; + put 'str2=put(name,$33.)||type3;'; + put 'if(upcase(name) = "PROCESSED_DTTM") then'; + put 'call symputx("process_dttm_flg", "Y", "L");'; + put 'if(upcase(name) = "VALID_FROM_DTTM") then'; + put 'call symputx("valid_from_dttm_flg", "Y", "L");'; + put 'if(upcase(name) = "VALID_TO_DTTM") then'; + put 'call symputx("valid_to_dttm_flg", "Y", "L");'; + put 'call symputx(cats("attrib_stmt_", put(_N_, 8.)), str1, "L");'; + put 'call symputx(cats("input_stmt_", put(_N_, 8.))'; + put ', ifc(upcase(name) not in'; + put '(''PROCESSED_DTTM'',''VALID_FROM_DTTM'',''VALID_TO_DTTM''), str2, ""), "L");'; + put 'run;'; + put 'data _null_;'; + put 'file &cards_file. &outencoding lrecl=32767 termstr=nl &append;'; + put 'length __attrib $32767;'; + put 'if _n_=1 then do;'; + put 'put ''/**'';'; + put 'put '' @file'';'; + put 'put " @brief Datalines for %upcase(%scan(&base_ds,2)) dataset";'; + put 'put " @details Generated by %nrstr(%%)mp_ds2cards()";'; + put 'put " Source: https://github.com/sasjs/core";'; + put 'put '' @cond '';'; + put 'put ''**/'';'; + put 'put "data &tgt_ds &indexes;";'; + put 'put "attrib ";'; + put '%do i = 1 %to &nvars;'; + put '__attrib=symget("attrib_stmt_&i");'; + put 'put __attrib;'; + put '%end;'; + put 'put ";";'; + put '%if &process_dttm_flg. eq Y %then %do;'; + put 'put ''retain PROCESSED_DTTM %sysfunc(datetime());'';'; + put '%end;'; + put '%if &valid_from_dttm_flg. eq Y %then %do;'; + put 'put ''retain VALID_FROM_DTTM &low_date;'';'; + put '%end;'; + put '%if &valid_to_dttm_flg. eq Y %then %do;'; + put 'put ''retain VALID_TO_DTTM &high_date;'';'; + put '%end;'; + put 'if __nobs=0 then do;'; + put 'put ''call missing(of _all_);/* avoid uninitialised notes */'';'; + put 'put ''stop;'';'; + put 'put ''run;'';'; + put 'end;'; + put 'else do;'; + put 'put "infile cards dsd;";'; + put 'put "input ";'; + put '%do i = 1 %to &nvars.;'; + put '%if(%length(&&input_stmt_&i..)) %then'; + put 'put " &&input_stmt_&i..";'; + put ';'; + put '%end;'; + put 'put ";";'; + put 'put ''missing 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 _;'';'; + put 'put "datalines4;";'; + put 'end;'; + put 'end;'; + put 'set &setds end=__lastobs nobs=__nobs;'; + put '/* remove all formats for write purposes - some have long underlying decimals */'; + put 'format _numeric_ best30.29;'; + put 'length __dataline $32767;'; + put '__dataline=catq(''cqtmb'',&datalines);'; + put 'put __dataline;'; + put 'if __lastobs then do;'; + put 'put '';;;;'';'; + put 'put ''run;'';'; + put 'put ''/** @endcond **/'';'; + put 'stop;'; + put 'end;'; + put 'run;'; + put 'proc sql;'; + put 'drop table &setds;'; + put 'quit;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &cards_file lrecl=32767;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '%end;'; + put '%put NOTE: CARDS FILE SAVED IN:;'; + put '%put NOTE-;%put NOTE-;'; + put '%put NOTE- %sysfunc(dequote(&cards_file.));'; + put '%put NOTE-;%put NOTE-;'; + put '%mend mp_ds2cards;'; + put '/** @endcond **/'; + put '%macro mp_binarycopy('; + put 'inloc= /* full path and filename of the object to be copied */'; + put ',outloc= /* full path and filename of object to be created */'; + put ',inref=____in /* override default to use own filerefs */'; + put ',outref=____out /* override default to use own filerefs */'; + put ',mode=CREATE'; + put ',iftrue=%str(1=1)'; + put ')/*/STORE SOURCE*/;'; + put '%local mod;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%if &mode=APPEND %then %let mod=mod;'; + put '/* these IN and OUT filerefs can point to anything */'; + put '%if &inref = ____in %then %do;'; + put 'filename &inref &inloc lrecl=1048576 ;'; + put '%end;'; + put '%if &outref=____out %then %do;'; + put 'filename &outref &outloc lrecl=1048576 &mod;'; + put '%end;'; + put '/* copy the file byte-for-byte */'; + put 'data _null_;'; + put 'infile &inref lrecl=1 recfm=n;'; + put 'file &outref &mod recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put '%if &inref = ____in %then %do;'; + put 'filename &inref clear;'; + put '%end;'; + put '%if &outref=____out %then %do;'; + put 'filename &outref clear;'; + put '%end;'; + put '%mend mp_binarycopy;'; + put '%macro mddl_sas_cntlout(libds=WORK.CNTLOUT);'; + put 'proc sql;'; + put 'create table &libds('; + put 'FMTNAME char(32) label=''Format name'''; + put '/*'; + put 'to accommodate larger START values, mp_loadformat.sas will need the'; + put 'SQL dependency removed (proc sql needs to accommodate 3 index values in'; + put 'a 32767 ibufsize limit)'; + put '*/'; + put ',START char(10000) label=''Starting value for format'''; + put ',END char(32767) label=''Ending value for format'''; + put ',LABEL char(32767) label=''Format value label'''; + put ',MIN num length=3 label=''Minimum length'''; + put ',MAX num length=3 label=''Maximum length'''; + put ',DEFAULT num length=3 label=''Default length'''; + put ',LENGTH num length=3 label=''Format length'''; + put ',FUZZ num label=''Fuzz value'''; + put ',PREFIX char(2) label=''Prefix characters'''; + put ',MULT num label=''Multiplier'''; + put ',FILL char(1) label=''Fill character'''; + put ',NOEDIT num length=3 label=''Is picture string noedit?'''; + put ',TYPE char(1) label=''Type of format'''; + put ',SEXCL char(1) label=''Start exclusion'''; + put ',EEXCL char(1) label=''End exclusion'''; + put ',HLO char(13) label=''Additional information'''; + put ',DECSEP char(1) label=''Decimal separator'''; + put ',DIG3SEP char(1) label=''Three-digit separator'''; + put ',DATATYPE char(8) label=''Date/time/datetime?'''; + put ',LANGUAGE char(8) label=''Language for date strings'''; + put ');'; + put '%mend mddl_sas_cntlout;'; + put '%macro mp_cntlout('; + put 'iftrue=(1=1)'; + put ',libcat='; + put ',cntlout=work.fmtextract'; + put ',fmtlist=0'; + put ')/*/STORE SOURCE*/;'; + put '%local ddlds cntlds i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%let ddlds=%mf_getuniquename();'; + put '%let cntlds=%mf_getuniquename();'; + put '%mddl_sas_cntlout(libds=&ddlds)'; + put '%if %index(&libcat,-)>0 and %scan(&libcat,2,-)=FC %then %do;'; + put '%let libcat=%scan(&libcat,1,-);'; + put '%end;'; + put 'proc format lib=&libcat cntlout=&cntlds;'; + put '%if "&fmtlist" ne "0" %then %do;'; + put 'select'; + put '%do i=1 %to %sysfunc(countw(&fmtlist));'; + put '%scan(&fmtlist,&i,%str( ))'; + put '%end;'; + put ';'; + put '%end;'; + put 'run;'; + put 'data &cntlout;'; + put 'if 0 then set &ddlds;'; + put 'set &cntlds;'; + put 'if type="N" then do;'; + put 'start=cats(start);'; + put 'end=cats(end);'; + put 'end;'; + put 'run;'; + put 'proc sort;'; + put 'by fmtname start;'; + put 'run;'; + put 'proc sql;'; + put 'drop table &ddlds,&cntlds;'; + put '%mend mp_cntlout;'; + put '/** @endcond */'; + put '%macro mfs_httpheader(header_name'; + put ',header_value'; + put ')/*/STORE SOURCE*/;'; + put '%global sasjs_stpsrv_header_loc;'; + put '%local fref fid i;'; + put '%if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc)) ne 0 %then %do;'; + put '%put &=fref &=sasjs_stpsrv_header_loc;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(&header_name): %str(&header_value)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%mend mfs_httpheader;'; + put '%macro mp_streamfile('; + put 'contenttype=TEXT'; + put ',inloc='; + put ',inref=0'; + put ',iftrue=%str(1=1)'; + put ',outname='; + put ',outref=_webout'; + put ')/*/STORE SOURCE*/;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%let contentype=%upcase(&contenttype);'; + put '%let outref=%upcase(&outref);'; + put '%local platform; %let platform=%mf_getplatform();'; + put '/**'; + put '* check engine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put '%local streamweb;'; + put '%let streamweb=0;'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(upcase(fileref)="&outref"));'; + put 'if xengine=''STREAM'' then call symputx(''streamweb'',1,''l'');'; + put 'run;'; + put '%if &contentype=CSV %then %do;'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'',''application/csv'');'; + put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.txt'''; + put 'contenttype=''application/csv'''; + put 'contentdisp="attachment; filename=&outname";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type,application/csv)'; + put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; + put '%end;'; + put '%end;'; + put '%else %if &contentype=EXCEL %then %do;'; + put '/* suitable for XLS format */'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'',''application/vnd.ms-excel'');'; + put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.xls'''; + put 'contenttype=''application/vnd.ms-excel'''; + put 'contentdisp="attachment; filename=&outname";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type,application/vnd.ms-excel)'; + put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; + put '%end;'; + put '%end;'; + put '%else %if &contentype=GIF or &contentype=JPEG or &contentype=PNG %then %do;'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'',"image/%lowcase(&contenttype)");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'contenttype="image/%lowcase(&contenttype)";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type,image/%lowcase(&contenttype))'; + put '%end;'; + put '%end;'; + put '%else %if &contentype=HTML or &contenttype=MARKDOWN %then %do;'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'',"text/%lowcase(&contenttype)");'; + put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name="_webout.json"'; + put 'contenttype="text/%lowcase(&contenttype)"'; + put 'contentdisp="attachment; filename=&outname";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type,text/%lowcase(&contenttype))'; + put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; + put '%end;'; + put '%end;'; + put '%else %if &contentype=TEXT %then %do;'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'',''application/text'');'; + put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.txt'''; + put 'contenttype=''application/text'''; + put 'contentdisp="attachment; filename=&outname";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type,application/text)'; + put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; + put '%end;'; + put '%end;'; + put '%else %if &contentype=WOFF or &contentype=WOFF2 or &contentype=TTF %then %do;'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'',"font/%lowcase(&contenttype)");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'contenttype="font/%lowcase(&contenttype)";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type,font/%lowcase(&contenttype))'; + put '%end;'; + put '%end;'; + put '%else %if &contentype=XLSX %then %do;'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'','; + put '''application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'');'; + put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.xls'''; + put 'contenttype='; + put '''application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'''; + put 'contentdisp="attachment; filename=&outname";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type'; + put ',application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'; + put ')'; + put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; + put '%end;'; + put '%end;'; + put '%else %if &contentype=ZIP %then %do;'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'',''application/zip'');'; + put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.zip'''; + put 'contenttype=''application/zip'''; + put 'contentdisp="attachment; filename=&outname";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type,application/zip)'; + put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put %str(ERR)OR: Content Type &contenttype NOT SUPPORTED by &sysmacroname!;'; + put '%end;'; + put '%if &inref ne 0 %then %do;'; + put '%mp_binarycopy(inref=&inref,outref=&outref)'; + put '%end;'; + put '%else %do;'; + put '%mp_binarycopy(inloc="&inloc",outref=&outref)'; + put '%end;'; + put '%mend mp_streamfile;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file'; + put '@brief Downloads data in a variety of formats'; + put '@details To enable direct download, this service runs in a dedicated stream'; + put 'as a GET request using URL parameters as inputs.'; + put 'The inputs are:'; + put '@li table - the libds of the table to be downloaded'; + put '@li type - either SAS, CSV, EXCEL, MARKDOWN, WEBCSV or WEBTAB'; + put '@li filter - the filter RK if used'; + put '

SAS Macros

'; + put '@li mf_verifymacvars.sas'; + put '@li mf_getuser.sas'; + put '@li mf_existfeature.sas'; + put '@li dc_assignlib.sas'; + put '@li mp_ds2cards.sas'; + put '@li mp_abort.sas'; + put '@li mp_binarycopy.sas'; + put '@li mp_cntlout.sas'; + put '@li mp_streamfile.sas'; + put '@li mpe_filtermaster.sas'; + put '@version 9.2'; + put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; + put 'downloaded from here: https://4gl.uk/dcdeploy'; + put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; + put 'and may not be re-distributed or re-sold without the express permission of'; + put '4GL Apps Ltd.'; + put '**/'; + put '%global table type filter ds format is_fmt txfrom txto;'; + put '%mpeinit()'; + put '%let user=%mf_getuser();'; + put '%let is_fmt=0;'; + put '%mp_abort(iftrue= (%mf_verifymacvars(type table)=0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Invalid inputs: type table)'; + put ')'; + put '%let libds=%upcase(&table); /* actual source */'; + put '%let table=%upcase(&table); /* used as label for fmt catalogs */'; + put '%let lib=%scan(&table,1,.);'; + put '%let ds=%scan(&table,2,.);'; + put '%dc_assignlib(READ,&lib)'; + put 'data _null_;'; + put 'set &mpelib..MPE_TABLES;'; + put 'where upcase(libref)="&lib" and upcase(dsn)="&ds";'; + put '/* if a TXTEMPORAL table then filter as such */'; + put 'call symputx(''txfrom'',var_txfrom);'; + put 'call symputx(''txto'',var_txto);'; + put 'ds=symget(''ds'');'; + put 'is_fmt=0;'; + put 'if subpad(cats(reverse(ds)),1,3)=:''CF-'' then do;'; + put 'ds=scan(ds,1,''-'');'; + put 'table=cats("&lib..",ds);'; + put 'putlog "Format Catalog Captured";'; + put 'is_fmt=1;'; + put 'call symputx(''libds'',''work.fmtextract'');'; + put 'call symputx(''table'',table);'; + put 'end;'; + put 'call symputx(''is_fmt'',is_fmt);'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%mp_cntlout('; + put 'iftrue=(&is_fmt=1)'; + put ',libcat=&table'; + put ',fmtlist=0'; + put ',cntlout=work.fmtextract'; + put ')'; + put '%put preparing query;'; + put '%mpe_filtermaster(DLOAD,&libds,'; + put 'dclib=&mpelib,'; + put 'filter_rk=&filter,'; + put 'outref=filtref,'; + put 'outds=work.query'; + put ')'; + put '%put printing generated filterquery:;'; + put 'data _null_;'; + put 'infile filtref;'; + put 'input;'; + put 'putlog _infile_;'; + put 'run;'; + put 'options obs=200000;/* stop limit */'; + put 'data staged(drop=&txfrom &txto);'; + put 'set &libds;'; + put 'where %inc filtref;;'; + put 'run;'; + put 'options obs=max;'; + put 'options validvarname=upcase;'; + put '%macro mpestp_getrawdata();'; + put '%local outfile;'; + put '%if &type=SAS %then %do;'; + put '%let outfile=%sysfunc(pathname(work))/&table..sas;'; + put '%mp_ds2cards(base_ds=staged'; + put ', tgt_ds=&table'; + put ', cards_file= "&outfile"'; + put ', maxobs=100000)'; + put '%let ext=sas;'; + put '%let mimetype=text;'; + put '%end;'; + put '%else %if &type=CSV or (&type=EXCEL and %mf_existfeature(EXPORTXLS) ne 1)'; + put '/* cannot proc export excel if PC Files is not licensed */'; + put '%then %do;'; + put '%let outfile=%sysfunc(pathname(work))/&table..csv;'; + put 'PROC EXPORT DATA= staged'; + put 'OUTFILE= "&outfile"'; + put 'DBMS=csv REPLACE;'; + put 'RUN;'; + put '%let ext=csv;'; + put '%let mimetype=csv;'; + put '%end;'; + put '%else %if &type=EXCEL %then %do;'; + put '%let ext=xlsx;'; + put '%let outfile=%sysfunc(pathname(work))/&table..&ext;'; + put 'PROC EXPORT DATA= staged'; + put 'OUTFILE= "&outfile"'; + put 'DBMS=xlsx ;'; + put 'RUN;'; + put '%let mimetype=XLSX;'; + put '%end;'; + put '%else %if &type=MARKDOWN %then %do;'; + put '%let ext=md;'; + put '%let outfile=%sysfunc(pathname(work))/&table..&ext;'; + put 'filename mdref "&outfile" lrecl=32767;'; + put '%mp_ds2md(staged,outref=mdref,showlog=NO)'; + put '%let mimetype=MARKDOWN;'; + put '%end;'; + put '%else %if &type=WEBCSV %then %do;'; + put 'PROC EXPORT DATA= staged'; + put 'OUTFILE= _webout'; + put 'DBMS=csv REPLACE;'; + put 'RUN;'; + put '/* don''t set headers */'; + put '%return;'; + put '%end;'; + put '%else %if &type=WEBTAB %then %do;'; + put 'PROC EXPORT DATA= staged'; + put 'OUTFILE= _webout'; + put 'DBMS=tab REPLACE;'; + put 'RUN;'; + put '/* don''t set headers */'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put '%mp_abort(msg=type &type not supported,mac=mpestp_getrawdata.sas);'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(syscc=&syscc)'; + put ')'; + put '%mp_streamfile(contenttype=&mimetype'; + put ',inloc=%str(&outfile)'; + put ',outname=&table..&ext'; + put ')'; + put '%mend mpestp_getrawdata;'; + put '%mpestp_getrawdata()'; + put '%mpeterm()'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=refreshlibinfo; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Files

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as FMTCAT,'; + put 'FMTNAME'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'LENGTH num'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.length as MAXW'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put ')))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] workobs= (0) When set to a positive integer, will create a new'; + put 'output object (WORK) which contains this number of observations from all'; + put 'tables in the WORK library.'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX,workobs=0'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&workobs) > 0 %then %do;'; + put '/* if debug mode, send back first XX records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10'; + put ',maxobs=&workobs'; + put ')'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '%macro mm_assignlib('; + put 'libref'; + put ',mAbort=HARD'; + put ')/*/STORE SOURCE*/;'; + put '%local mp_abort msg;'; + put '%let mp_abort=0;'; + put '%if %sysfunc(libref(&libref)) %then %do;'; + put 'data _null_;'; + put 'length liburi LibName msg $200;'; + put 'call missing(of _all_);'; + put 'nobj=metadata_getnobj("omsobj:SASLibrary?@Libref=''&libref''",1,liburi);'; + put 'if nobj=1 then do;'; + put 'rc=metadata_getattr(liburi,"Name",LibName);'; + put '/* now try and assign it */'; + put 'if libname("&libref",,''meta'',cats(''liburi="'',liburi,''";'')) ne 0 then do;'; + put 'putlog "&libref could not be assigned";'; + put 'putlog liburi=;'; + put '/**'; + put '* Fetch the system message for display in the abort modal. This is'; + put '* not always helpful though. One example, previously received:'; + put '* NOTE: Libref XX refers to the same library metadata as libref XX.'; + put '*/'; + put 'msg=sysmsg();'; + put 'if msg=:''ERROR: Libref SAVE is not assigned.'' then do;'; + put 'msg=catx(" ",'; + put '"Could not assign %upcase(&libref).",'; + put '"Please check metadata permissions! Libname:",libname,'; + put '"Liburi:",liburi'; + put ');'; + put 'end;'; + put 'else if msg="ERROR: User does not have appropriate authorization "!!'; + put '"level for library SAVE."'; + put 'then do;'; + put 'msg=catx(" ",'; + put '"ERROR: User does not have appropriate authorization level",'; + put '"for library %upcase(&libref), libname:",libname,'; + put '"Liburi:",liburi'; + put ');'; + put 'end;'; + put 'call symputx(''msg'',msg,''l'');'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1,''l'');'; + put 'end;'; + put 'else do;'; + put 'put (_all_)(=);'; + put 'call symputx(''libname'',libname,''L'');'; + put 'call symputx(''liburi'',liburi,''L'');'; + put 'end;'; + put 'end;'; + put 'else if nobj>1 then do;'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; + put 'call symputx(''msg'',"More than one library with libref=&libref");'; + put 'end;'; + put 'else do;'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; + put 'call symputx(''msg'',"Library &libref not found in metadata");'; + put 'end;'; + put 'run;'; + put '%put NOTE: &msg;'; + put '%end;'; + put '%else %do;'; + put '%put NOTE: Library &libref is already assigned;'; + put '%end;'; + put '%mp_abort(iftrue= (&mp_abort=1)'; + put ',mac=mm_assignlib.sas'; + put ',msg=%superq(msg)'; + put ')'; + put '%mend mm_assignlib;'; + put '/** @cond */'; + put '%macro mf_getengine(libref'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid engnum rc engine;'; + put '/* in case the parameter is a libref.tablename, pull off just the libref */'; + put '%let libref = %upcase(%scan(&libref, 1, %str(.)));'; + put '%let dsid=%sysfunc('; + put 'open(sashelp.vlibnam(where=(libname="%upcase(&libref)")),i)'; + put ');'; + put '%if (&dsid ^= 0) %then %do;'; + put '%let engnum=%sysfunc(varnum(&dsid,ENGINE));'; + put '%let rc=%sysfunc(fetch(&dsid));'; + put '%let engine=%sysfunc(getvarc(&dsid,&engnum));'; + put '%put &libref. ENGINE is &engine.;'; + put '%let rc= %sysfunc(close(&dsid));'; + put '%end;'; + put '%upcase(&engine)'; + put '%mend mf_getengine;'; + put '/** @endcond */'; + put '%macro mm_assigndirectlib('; + put 'libref /* libref to assign from metadata */'; + put ',open_passthrough= /* provide an alias to produce the'; + put 'CONNECT TO statement for the'; + put 'relevant external database */'; + put ',sql_options= /* add any options to add to proc sql statement eg outobs='; + put '(only valid for pass through) */'; + put ',mDebug=0'; + put ',mAbort=0'; + put ')/*/STORE SOURCE*/;'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing mm_assigndirectlib.sas;'; + put '%&mD.put _local_;'; + put '%if &mAbort=1 %then %let mAbort=;'; + put '%else %let mAbort=%str(*);'; + put '%&mD.put NOTE: Creating direct (non META) connection to &libref library;'; + put '%local cur_engine;'; + put '%let cur_engine=%mf_getengine(&libref);'; + put '%if &cur_engine ne META and &cur_engine ne %then %do;'; + put '%put NOTE: &libref already has a direct (&cur_engine) libname connection;'; + put '%return;'; + put '%end;'; + put '%else %if %upcase(&libref)=WORK %then %do;'; + put '%put NOTE: We already have a direct connection to WORK :-) ;'; + put '%return;'; + put '%end;'; + put '/* need to determine the library ENGINE first */'; + put '%local engine;'; + put 'data _null_;'; + put 'length lib_uri engine $256;'; + put 'call missing (of _all_);'; + put '/* get URI for the particular library */'; + put 'rc1=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put '/* get the Engine attribute of the previous object */'; + put 'rc2=metadata_getattr(lib_uri,''Engine'',engine);'; + put 'putlog "mm_assigndirectlib for &libref:" rc1= lib_uri= rc2= engine=;'; + put 'call symputx("liburi",lib_uri,''l'');'; + put 'call symputx("engine",engine,''l'');'; + put 'run;'; + put '/* now obtain engine specific connection details */'; + put '%if &engine=BASE %then %do;'; + put '%&mD.put NOTE: Retrieving BASE library path;'; + put 'data _null_;'; + put 'length up_uri $256 path cat_path $1024;'; + put 'retain cat_path;'; + put 'call missing (of _all_);'; + put '/* get all the filepaths of the UsingPackages association */'; + put 'i=1;'; + put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; + put 'do while (rc3>0);'; + put '/* get the DirectoryName attribute of the previous object */'; + put 'rc4=metadata_getattr(up_uri,''DirectoryName'',path);'; + put 'if i=1 then path = ''("''!!trim(path)!!''" '';'; + put 'else path ='' "''!!trim(path)!!''" '';'; + put 'cat_path = trim(cat_path) !! " " !! trim(path) ;'; + put 'i+1;'; + put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; + put 'end;'; + put 'cat_path = trim(cat_path) !! ")";'; + put '&mD.putlog "NOTE: Getting physical path for &libref library";'; + put '&mD.putlog rc3= up_uri= rc4= cat_path= path=;'; + put '&mD.putlog "NOTE: Libname cmd will be:";'; + put '&mD.putlog "libname &libref" cat_path;'; + put 'call symputx("filepath",cat_path,''l'');'; + put 'run;'; + put '%if %sysevalf(&sysver<9.4) %then %do;'; + put 'libname &libref &filepath;'; + put '%end;'; + put '%else %do;'; + put '/* apply the new filelocks option to cater for temporary locks */'; + put 'libname &libref &filepath filelockwait=5;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=REMOTE %then %do;'; + put 'data x;'; + put 'length rcCon rcProp rc k 3 uriCon uriProp PropertyValue PropertyName'; + put 'Delimiter $256 properties $2048;'; + put 'retain properties;'; + put 'rcCon = metadata_getnasn("&liburi", "LibraryConnection", 1, uriCon);'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", 1, uriProp);'; + put 'k = 1;'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; + put 'do while (rcProp > 0);'; + put 'rc = metadata_getattr(uriProp , "DefaultValue",PropertyValue);'; + put 'rc = metadata_getattr(uriProp , "PropertyName",PropertyName);'; + put 'rc = metadata_getattr(uriProp , "Delimiter",Delimiter);'; + put 'properties = trim(properties) !! " " !! trim(PropertyName)'; + put '!! trim(Delimiter) !! trim(PropertyValue);'; + put 'output;'; + put 'k+1;'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; + put 'end;'; + put '%&mD.put NOTE: Getting properties for REMOTE SHARE &libref library;'; + put '&mD.put _all_;'; + put '%&mD.put NOTE: Libname cmd will be:;'; + put '%&mD.put libname &libref &engine &properties slibref=&libref;'; + put 'call symputx ("properties",trim(properties),''l'');'; + put 'run;'; + put 'libname &libref &engine &properties slibref=&libref;'; + put '%end;'; + put '%else %if &engine=OLEDB %then %do;'; + put '%&mD.put NOTE: Retrieving OLEDB connection details;'; + put 'data _null_;'; + put 'length domain datasource provider properties schema'; + put 'connx_uri domain_uri conprop_uri lib_uri schema_uri value $256.;'; + put 'call missing (of _all_);'; + put '/* get source connection ID */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; + put '/* get connection domain */'; + put 'rc1=metadata_getnasn(connx_uri,''Domain'',1,domain_uri);'; + put 'rc2=metadata_getattr(domain_uri,''Name'',domain);'; + put '&mD.putlog / ''NOTE: '' // ''NOTE- connection id: '' connx_uri ;'; + put '&mD.putlog ''NOTE- domain: '' domain;'; + put '/* get DSN and PROVIDER from connection properties */'; + put 'i=0;'; + put 'do until (rc<0);'; + put 'i+1;'; + put 'rc=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; + put 'rc2=metadata_getattr(conprop_uri,''Name'',value);'; + put 'if value=''Connection.OLE.Property.DATASOURCE.Name.xmlKey.txt'' then do;'; + put 'rc3=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; + put 'end;'; + put 'else if value=''Connection.OLE.Property.PROVIDER.Name.xmlKey.txt'' then do;'; + put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',provider);'; + put 'end;'; + put 'else if value=''Connection.OLE.Property.PROPERTIES.Name.xmlKey.txt'' then'; + put 'do;'; + put 'rc5=metadata_getattr(conprop_uri,''DefaultValue'',properties);'; + put 'end;'; + put 'end;'; + put '&mD.putlog ''NOTE- dsn/provider/properties: '' /'; + put 'datasource provider properties;'; + put '&mD.putlog ''NOTE- schema: '' schema // ''NOTE-'';'; + put '/* get SCHEMA */'; + put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,lib_uri);'; + put 'rc7=metadata_getattr(lib_uri,''SchemaName'',schema);'; + put 'call symputx(''SQL_domain'',domain,''l'');'; + put 'call symputx(''SQL_dsn'',datasource,''l'');'; + put 'call symputx(''SQL_provider'',provider,''l'');'; + put 'call symputx(''SQL_properties'',properties,''l'');'; + put 'call symputx(''SQL_schema'',schema,''l'');'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put 'proc sql &sql_options;'; + put 'connect to OLEDB as &open_passthrough(INSERT_SQL=YES'; + put '/* need additional properties to make this work */'; + put 'properties=(''Integrated Security''=SSPI'; + put '''Persist Security Info''=True'; + put '%sysfunc(compress(%str(&SQL_properties),%str(())))'; + put ')'; + put 'DATASOURCE=&sql_dsn PROMPT=NO'; + put 'PROVIDER=&sql_provider SCHEMA=&sql_schema CONNECTION = GLOBAL);'; + put '%end;'; + put '%else %do;'; + put 'LIBNAME &libref OLEDB PROPERTIES=&sql_properties'; + put 'DATASOURCE=&sql_dsn PROVIDER=&sql_provider SCHEMA=&sql_schema'; + put '%if %length(&sql_domain)>0 %then %do;'; + put 'authdomain="&sql_domain"'; + put '%end;'; + put 'connection=shared;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=ODBC %then %do;'; + put '&mD.%put NOTE: Retrieving ODBC connection details;'; + put 'data _null_;'; + put 'length connx_uri conprop_uri value datasource up_uri schema $256.;'; + put 'call missing (of _all_);'; + put '/* get source connection ID */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; + put '/* get connection properties */'; + put 'i=0;'; + put 'do until (rc2<0);'; + put 'i+1;'; + put 'rc2=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; + put 'rc3=metadata_getattr(conprop_uri,''Name'',value);'; + put 'if value=''Connection.ODBC.Property.DATASRC.Name.xmlKey.txt'' then do;'; + put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; + put 'rc2=-1;'; + put 'end;'; + put 'end;'; + put '/* get SCHEMA */'; + put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,up_uri);'; + put 'rc7=metadata_getattr(up_uri,''SchemaName'',schema);'; + put '&mD.put rc= connx_uri= rc2= conprop_uri= rc3= value= rc4= datasource='; + put 'rc6= up_uri= rc7= schema=;'; + put 'call symputx(''SQL_schema'',schema,''l'');'; + put 'call symputx(''SQL_dsn'',datasource,''l'');'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put 'proc sql &sql_options;'; + put 'connect to ODBC as &open_passthrough'; + put '(INSERT_SQL=YES DATASRC=&sql_dsn. CONNECTION=global);'; + put '%end;'; + put '%else %do;'; + put 'libname &libref ODBC DATASRC=&sql_dsn SCHEMA=&sql_schema;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=POSTGRES %then %do;'; + put '%put NOTE: Obtaining POSTGRES library details;'; + put 'data _null_;'; + put 'length database ignore_read_only_columns direct_exe preserve_col_names'; + put 'preserve_tab_names server schema authdomain user password'; + put 'prop name value uri urisrc $256.;'; + put 'call missing (of _all_);'; + put '/* get database value */'; + put 'prop=''Connection.DBMS.Property.DB.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,database,"");'; + put 'if database^='''' then database=''database=''!!quote(trim(database));'; + put 'call symputx(''database'',database,''l'');'; + put '/* get IGNORE_READ_ONLY_COLUMNS value */'; + put 'prop=''Library.DBMS.Property.DBIROC.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,ignore_read_only_columns,"");'; + put 'if ignore_read_only_columns^='''' then ignore_read_only_columns='; + put '''ignore_read_only_columns=''!!ignore_read_only_columns;'; + put 'call symputx(''ignore_read_only_columns'',ignore_read_only_columns,''l'');'; + put '/* get DIRECT_EXE value */'; + put 'prop=''Library.DBMS.Property.DirectExe.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,direct_exe,"");'; + put 'if direct_exe^='''' then direct_exe=''direct_exe=''!!direct_exe;'; + put 'call symputx(''direct_exe'',direct_exe,''l'');'; + put '/* get PRESERVE_COL_NAMES value */'; + put 'prop=''Library.DBMS.Property.PreserveColNames.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,preserve_col_names,"");'; + put 'if preserve_col_names^='''' then preserve_col_names='; + put '''preserve_col_names=''!!preserve_col_names;'; + put 'call symputx(''preserve_col_names'',preserve_col_names,''l'');'; + put '/* get PRESERVE_TAB_NAMES value */'; + put '/* be careful with PRESERVE_TAB_NAMES=YES - it will mean your table will'; + put 'become case sensitive!! */'; + put 'prop=''Library.DBMS.Property.PreserveTabNames.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,preserve_tab_names,"");'; + put 'if preserve_tab_names^='''' then preserve_tab_names='; + put '''preserve_tab_names=''!!preserve_tab_names;'; + put 'call symputx(''preserve_tab_names'',preserve_tab_names,''l'');'; + put '/* get SERVER value */'; + put 'if metadata_getnasn("&liburi","LibraryConnection",1,uri)>0 then do;'; + put 'prop=''Connection.DBMS.Property.SERVER.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop(uri,prop,server,"");'; + put 'end;'; + put 'if server^='''' then server=''server=''!!quote(cats(server));'; + put 'call symputx(''server'',server,''l'');'; + put '/* get SCHEMA value */'; + put 'if metadata_getnasn("&liburi","UsingPackages",1,uri)>0 then do;'; + put 'rc=metadata_getattr(uri,"SchemaName",schema);'; + put 'end;'; + put 'if schema^='''' then schema=''schema=''!!schema;'; + put 'call symputx(''schema'',schema,''l'');'; + put '/* get AUTHDOMAIN value */'; + put '/* this is only useful if the user account contains that auth domain'; + put 'if metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then do;'; + put 'rc=metadata_getnasn(uri,"Domain",1,urisrc);'; + put 'rc=metadata_getattr(urisrc,"Name",authdomain);'; + put 'end;'; + put 'if authdomain^='''' then authdomain=''authdomain=''!!quote(trim(authdomain));'; + put '*/'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/* get user & pass */'; + put 'if authdomain='''' & metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then'; + put 'do;'; + put 'rc=metadata_getattr(uri,"UserID",user);'; + put 'rc=metadata_getattr(uri,"Password",password);'; + put 'end;'; + put 'if user^='''' then do;'; + put 'user=''user=''!!quote(trim(user));'; + put 'password=''password=''!!quote(trim(password));'; + put 'end;'; + put 'call symputx(''user'',user,''l'');'; + put 'call symputx(''password'',password,''l'');'; + put '&md.put _all_;'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put '%put %str(WARN)ING: Passthrough option for postgres not yet supported;'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put '%if &mdebug=1 %then %do;'; + put '%put NOTE: Executing the following:/;'; + put '%put NOTE- libname &libref POSTGRES &database &ignore_read_only_columns;'; + put '%put NOTE- &direct_exe &preserve_col_names &preserve_tab_names;'; + put '%put NOTE- &server &schema &authdomain &user &password //;'; + put '%end;'; + put 'libname &libref POSTGRES &database &ignore_read_only_columns &direct_exe'; + put '&preserve_col_names &preserve_tab_names &server &schema &authdomain'; + put '&user &password;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=ORACLE %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null_;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema $256;'; + put 'call missing (of _all_);'; + put '/* get auth domain */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; + put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; + put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/* path */'; + put 'rc=metadata_getprop(assocuri1,'; + put '''Connection.Oracle.Property.PATH.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref ORACLE path=&path schema=&schema;'; + put '%put NOTE- authdomain=&authdomain;'; + put '%put NOTE-;'; + put 'libname &libref ORACLE path=&path schema=&schema authdomain=&authdomain;'; + put '%end;'; + put '%else %if &engine=SQLSVR %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; + put 'passwd $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; + put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; + put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; + put 'call symputx(''user'',userid,''l'');'; + put 'call symputx(''pass'',passwd,''l'');'; + put '/* path */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; + put 'rc=metadata_getprop(assocuri2,'; + put '''Connection.SQL.Property.Datasrc.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref SQLSVR datasrc=&path schema=&schema ;'; + put '%put NOTE- user="&user" pass="XXX";'; + put '%put NOTE-;'; + put 'libname &libref SQLSVR datasrc=&path schema=&schema user="&user" pass="&pass";'; + put '%end;'; + put '%else %if &engine=TERADATA %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; + put 'passwd $256;'; + put 'call missing (of _all_);'; + put '/* get auth domain */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; + put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; + put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/*'; + put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; + put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; + put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; + put 'call symputx(''user'',userid,''l'');'; + put 'call symputx(''pass'',passwd,''l'');'; + put '*/'; + put '/* path */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; + put 'rc=metadata_getprop(assocuri2,'; + put '''Connection.Teradata.Property.SERVER.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref TERADATA server="&path" schema=&schema ;'; + put '%put NOTe- authdomain=&authdomain;'; + put '%put NOTE-;'; + put 'libname &libref TERADATA server="&path" schema=&schema authdomain=&authdomain;'; + put '%end;'; + put '%else %if &engine= %then %do;'; + put '%put NOTE: Libref &libref is not registered in metadata;'; + put '%&mAbort.mp_abort('; + put 'msg=%str(ERR)OR: Libref &libref is not registered in metadata'; + put ',mac=mm_assigndirectlib.sas);'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put '%put %str(WARN)ING: Engine &engine is currently unsupported;'; + put '%put %str(WARN)ING- Please contact your support team.;'; + put '%return;'; + put '%end;'; + put '%mend mm_assigndirectlib;'; + put '%macro mm_getrepos('; + put 'outds=work.mm_getrepos'; + put ')/*/STORE SOURCE*/;'; + put '* use a temporary fileref to hold the response;'; + put 'filename response temp;'; + put '/* get list of libraries */'; + put 'proc metadata in='; + put '"1"'; + put 'out=response;'; + put 'run;'; + put '/* write the response to the log for debugging */'; + put '/*'; + put 'data _null_;'; + put 'infile response lrecl=1048576;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '*/'; + put '/* create an XML map to read the response */'; + put 'filename sxlemap temp;'; + put 'data _null_;'; + put 'file sxlemap;'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository";'; + put 'put "";'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Id";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Name";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Desc";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@DefaultNS";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryType";'; + put 'put "characterstring20";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryFormat";'; + put 'put "characterstring10";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@Access";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@CurrentAccess";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@PauseState";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Path";'; + put 'put "";'; + put 'put "characterstring256";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Engine";'; + put 'put "";'; + put 'put "characterstring8";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Options";'; + put 'put "";'; + put 'put "characterstring32";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataCreated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataUpdated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put ''
'';'; + put 'run;'; + put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; + put 'proc sort data= _XML_.SASRepos out=&outds;'; + put 'by name;'; + put 'run;'; + put '/* clear references */'; + put 'filename sxlemap clear;'; + put 'filename response clear;'; + put 'libname _XML_ clear;'; + put '%mend mm_getrepos;'; + put '%macro dc_assignlib(type,libref,passthru=);'; + put '%put &sysmacroname entry vars:;'; + put '%put _local_;'; + put '/* take current repository */'; + put '%local repo repocnt x;'; + put '%let repo=%sysfunc(getoption(metarepository));'; + put '/* get list of repositories and filter */'; + put '%mm_getrepos(outds=repos)'; + put '%let repocnt=0;'; + put 'data repos;'; + put 'set repos;'; + put 'where repositorytype in(''CUSTOM'',''FOUNDATION'')'; + put '& upcase(name) ne "%upcase(&repo)";'; + put 'keep id name ;'; + put 'call symputx(cats(''repo'',_n_),name,''l'');'; + put 'call symputx(''repocnt'',_n_,''l'');'; + put 'run;'; + put '/* find out which of these repositories has the libref we are searching for */'; + put '%local lib_uri;'; + put '%let lib_uri=NOTFOUND;'; + put 'data _null_; /* check default repo first */'; + put 'length lib_uri $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; + put 'run;'; + put '%if &lib_uri=NOTFOUND %then %do;'; + put '%do x=1 %to &repocnt;'; + put 'options metarepository=&&repo&x;'; + put 'data _null_;'; + put 'length lib_uri $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; + put 'run;'; + put '%if &lib_uri ne NOTFOUND %then %let x=%eval(&repocnt+1);'; + put '%end;'; + put '%end;'; + put '%if &type=READ %then %do;'; + put '%mm_assignlib(&libref)'; + put '%end;'; + put '%else %if &type=WRITE %then %do;'; + put '%mm_assigndirectlib(&libref,open_passthrough=&passthru)'; + put '%end;'; + put 'options metarepository=&repo;'; + put '%mend dc_assignlib;'; + put '/** @cond */'; + put '%macro mf_existvar(libds /* 2 part dataset name */'; + put ', var /* variable name */'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid rc;'; + put '%let dsid=%sysfunc(open(&libds,is));'; + put '%if &dsid=0 or %length(&var)=0 %then %do;'; + put '%put %sysfunc(sysmsg());'; + put '0'; + put '%end;'; + put '%else %do;'; + put '%sysfunc(varnum(&dsid,&var))'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%mend mf_existvar;'; + put '/** @endcond */'; + put '%macro mf_getattrn('; + put 'libds'; + put ',attr'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid rc;'; + put '%let dsid=%sysfunc(open(&libds,is));'; + put '%if &dsid = 0 %then %do;'; + put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; + put '%put %sysfunc(sysmsg());'; + put '-1'; + put '%end;'; + put '%else %do;'; + put '%sysfunc(attrn(&dsid,&attr))'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%mend mf_getattrn;'; + put '%macro mf_getvartype(libds /* two level name */'; + put ', var /* variable name from which to return the type */'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid vnum vtype rc;'; + put '/* Open dataset */'; + put '%let dsid = %sysfunc(open(&libds));'; + put '%if &dsid. > 0 %then %do;'; + put '/* Get variable number */'; + put '%let vnum = %sysfunc(varnum(&dsid, &var));'; + put '/* Get variable type (C/N) */'; + put '%if(&vnum. > 0) %then %let vtype = %sysfunc(vartype(&dsid, &vnum.));'; + put '%else %do;'; + put '%put NOTE: Variable &var does not exist in &libds;'; + put '%let vtype = %str( );'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: dataset &libds not opened! (rc=&dsid);'; + put '%put &sysmacroname: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '/* Close dataset */'; + put '%let rc = %sysfunc(close(&dsid));'; + put '/* Return variable type */'; + put '&vtype'; + put '%mend mf_getvartype;'; + put '%macro mf_getattrc('; + put 'libds'; + put ',attr'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid rc;'; + put '%let dsid=%sysfunc(open(&libds,is));'; + put '%if &dsid = 0 %then %do;'; + put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; + put '%put %sysfunc(sysmsg());'; + put '-1'; + put '%end;'; + put '%else %do;'; + put '%sysfunc(attrc(&dsid,&attr))'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%mend mf_getattrc;'; + put '%macro mp_lockfilecheck('; + put 'libds'; + put ')/*/STORE SOURCE*/;'; + put 'data _null_;'; + put 'if _n_=1 then putlog "&sysmacroname entry vars:";'; + put 'set sashelp.vmacro;'; + put 'where scope="&sysmacroname";'; + put 'put name ''='' value;'; + put 'run;'; + put '%mp_abort(iftrue= (&syscc>0)'; + put ',mac=checklock.sas'; + put ',msg=Aborting with syscc=&syscc on entry.'; + put ')'; + put '%mp_abort(iftrue= ("&libds"="0")'; + put ',mac=&sysmacroname'; + put ',msg=%str(libds not provided)'; + put ')'; + put '%local msg lib ds;'; + put '%let lib=%upcase(%scan(&libds,1,.));'; + put '%let ds=%upcase(%scan(&libds,2,.));'; + put '/* in DC, format catalogs are passed with a -FC suffix. No saslock here! */'; + put '%if %scan(&libds,2,-)=FC %then %do;'; + put '%put &sysmacroname: Format Catalog detected, no lockfile applied to &libds;'; + put '%return;'; + put '%end;'; + put '/* do not proceed if no observations can be processed */'; + put '%let msg=options obs = 0. syserrortext=%superq(syserrortext);'; + put '%mp_abort(iftrue= (%sysfunc(getoption(OBS))=0)'; + put ',mac=checklock.sas'; + put ',msg=%superq(msg)'; + put ')'; + put 'data _null_;'; + put 'putlog "Checking engine & member type";'; + put 'run;'; + put '%local engine memtype;'; + put '%let memtype=%mf_getattrc(&libds,MTYPE);'; + put '%let engine=%mf_getattrc(&libds,ENGINE);'; + put '%if &engine ne V9 and &engine ne BASE %then %do;'; + put 'data _null_;'; + put 'putlog "Lib &lib is not assigned using BASE engine - uses &engine instead";'; + put 'putlog "SAS lock check will not be performed";'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%else %if &memtype ne DATA %then %do;'; + put '%put NOTE: Cannot lock a VIEW!! Memtype=&memtype;'; + put '%return;'; + put '%end;'; + put 'data _null_;'; + put 'putlog "Engine = &engine, memtype=&memtype";'; + put 'putlog "Attempting lock statement";'; + put 'run;'; + put 'lock &libds;'; + put '%local abortme;'; + put '%let abortme=0;'; + put '%if &syscc>0 or &SYSLCKRC ne 0 %then %do;'; + put '%let msg=Unable to apply lock on &libds (SYSLCKRC=&SYSLCKRC syscc=&syscc);'; + put '%put %str(ERR)OR: &sysmacroname: &msg;'; + put '%let abortme=1;'; + put '%end;'; + put 'lock &libds clear;'; + put '%mp_abort(iftrue= (&abortme=1)'; + put ',mac=&sysmacroname'; + put ',msg=%superq(msg)'; + put ')'; + put '%mend mp_lockfilecheck;'; + put '%macro mp_lockanytable('; + put 'action'; + put ',lib= WORK'; + put ',ds=0'; + put ',ref='; + put ',ctl_ds=0'; + put ',loops=25'; + put ',loop_secs=1'; + put ');'; + put 'data _null_;'; + put 'if _n_=1 then putlog "&sysmacroname entry vars:";'; + put 'set sashelp.vmacro;'; + put 'where scope="&sysmacroname";'; + put 'put name ''='' value;'; + put 'run;'; + put '%mp_abort(iftrue= ("&ds"="0" and &action ne MAKETABLE)'; + put ',mac=&sysmacroname'; + put ',msg=%str(dataset was not provided)'; + put ')'; + put '%mp_abort(iftrue= (&ctl_ds=0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Control dataset was not provided)'; + put ')'; + put '/* set up lib & mac vars */'; + put '%let lib=%upcase(&lib);'; + put '%let ds=%upcase(&ds);'; + put '%let action=%upcase(&action);'; + put '%local user x trans msg abortme;'; + put '%let user=%mf_getuser();'; + put '%let abortme=0;'; + put '%mp_abort(iftrue= (&action ne LOCK & &action ne UNLOCK & &action ne MAKETABLE)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Invalid action (&action) provided)'; + put ')'; + put '/* if an err condition exists, exit before we even begin */'; + put '%mp_abort(iftrue= (&syscc>0 and &action=LOCK)'; + put ',mac=&sysmacroname'; + put ',msg=%str(aborting due to syscc=&syscc on LOCK entry)'; + put ')'; + put '/* do not bother locking work tables (else may affect all WORK libraries) */'; + put '%if (%upcase(&lib)=WORK or %str(&lib)=%str()) & &action ne MAKETABLE %then %do;'; + put '%put NOTE: WORK libraries will not be registered in the locking system.;'; + put '%return;'; + put '%end;'; + put '/* do not proceed if no observations can be processed */'; + put '%mp_abort(iftrue= (%sysfunc(getoption(OBS))=0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(cannot continue when options obs = 0)'; + put ')'; + put '%if &ACTION=LOCK %then %do;'; + put '/* abort if a SAS lock is already in place, or cannot be applied */'; + put '%mp_lockfilecheck(&lib..&ds)'; + put '/* next, check there is a record for this table */'; + put '%local record_exists_check;'; + put 'proc sql noprint;'; + put 'select count(*) into: record_exists_check from &ctl_ds'; + put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; + put 'quit;'; + put '%if &syscc>0 %then %put syscc=&syscc sqlrc=&sqlrc;'; + put '%if &record_exists_check=0 %then %do;'; + put 'data _null_;'; + put 'putlog "&sysmacroname: adding record to lock table..";'; + put 'run;'; + put 'data ;'; + put 'if 0 then set &ctl_ds;'; + put 'LOCK_LIB ="&lib";'; + put 'LOCK_DS="&ds";'; + put 'LOCK_STATUS_CD=''LOCKED'';'; + put 'LOCK_START_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt;'; + put 'LOCK_USER_NM="&user";'; + put 'LOCK_PID="&sysjobid";'; + put 'LOCK_REF="&ref";'; + put 'output;stop;'; + put 'run;'; + put '%let trans=&syslast;'; + put 'proc append base=&ctl_ds data=&trans;'; + put 'run;'; + put '%end;'; + put '/* if record does exist, perform lock attempts */'; + put '%else %do x=1 %to &loops;'; + put 'data _null_;'; + put 'putlog "&sysmacroname: attempting lock (iteration &x) "@;'; + put 'putlog "at %sysfunc(datetime(),datetime19.) ..";'; + put 'run;'; + put 'proc sql;'; + put 'update &ctl_ds'; + put 'set LOCK_STATUS_CD=''LOCKED'''; + put ', LOCK_START_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt'; + put ', LOCK_USER_NM="&user"'; + put ', LOCK_PID="&sysjobid"'; + put ', LOCK_REF="&ref"'; + put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; + put 'quit;'; + put '/**'; + put '* NOTE - occasionally SQL server will return an err code (deadlocked'; + put '* transaction). If so, ignore it, keep calm, and carry on..'; + put '*/'; + put '%if &syscc>0 %then %do;'; + put 'data _null_;'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'putlog "NOTE- &sysmacroname: Update failed. "@;'; + put 'putlog "Resetting err conditions and re-attempting.";'; + put 'putlog "NOTE- syscc=&syscc syserr=&syserr sqlrc=&sqlrc";'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'run;'; + put '%let syscc=0;'; + put '%let sqlrc=0;'; + put '%end;'; + put '/* now check if the record was successfully updated */'; + put '%local success_check;'; + put 'proc sql noprint;'; + put 'select count(*) into: success_check from &ctl_ds'; + put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds"'; + put 'and LOCK_PID="&sysjobid" and LOCK_STATUS_CD=''LOCKED'';'; + put 'quit;'; + put '%if &success_check=0 %then %do;'; + put '%if &x < &loops %then %do;'; + put '/* pause before next check */'; + put 'data _null_;'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'putlog "NOTE- &sysmacroname: table locked, waiting "@;'; + put 'putlog "%sysfunc(sleep(&loop_inc)) seconds.. ";'; + put 'putlog "NOTE- (iteration &x of &loops)";'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%let msg=Unable to lock &lib..&ds via &ctl_ds after &loops attempts.\n'; + put 'Please ask your administrator to investigate!;'; + put '%let abortme=1;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put 'data _null_;'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'putlog "NOTE- &sysmacroname: Table &lib..&ds locked at "@;'; + put 'putlog " %sysfunc(datetime(),datetime19.) (iteration &x)"@;'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'run;'; + put '%if &syscc>0 %then %do;'; + put '%put setting syscc(&syscc) back to 0;'; + put '%let syscc=0;'; + put '%end;'; + put '%let x=&loops; /* no more iterations needed */'; + put '%end;'; + put '%end;'; + put '%end;'; + put '%else %if &ACTION=UNLOCK %then %do;'; + put '%local status;'; + put 'proc sql noprint;'; + put 'select LOCK_STATUS_CD into: status from &ctl_ds'; + put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; + put 'quit;'; + put '%if &syscc>0 %then %put syscc=&syscc sqlrc=&sqlrc;'; + put '%if &status=LOCKED %then %do;'; + put 'data _null_;'; + put 'putlog "&sysmacroname: unlocking &lib..&ds:";'; + put 'run;'; + put 'proc sql;'; + put 'update &ctl_ds'; + put 'set LOCK_STATUS_CD=''UNLOCKED'''; + put ', LOCK_END_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt'; + put ', LOCK_USER_NM="&user"'; + put ', LOCK_PID="&sysjobid"'; + put ', LOCK_REF="&ref"'; + put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; + put 'quit;'; + put '%end;'; + put '%else %if &status=UNLOCKED %then %do;'; + put '%put %str(WAR)NING: &lib..&ds is already unlocked!;'; + put '%end;'; + put '%else %do;'; + put '%put NOTE: Unrecognised STATUS_CD (&status) in &ctl_ds;'; + put '%let abortme=1;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%let msg=lock_anytable given unsupported action (&action);'; + put '%let abortme=1;'; + put '%end;'; + put '/* catch errs - mp_abort must be called outside of a logic block */'; + put '%mp_abort(iftrue=(&abortme=1),'; + put 'msg=%superq(msg),'; + put 'mac=&sysmacroname'; + put ')'; + put '%exit_macro:'; + put 'data _null_;'; + put 'put "&sysmacroname: Exit vars: action=&action lib=&lib ds=&ds";'; + put 'put " syscc=&syscc sqlrc=&sqlrc syserr=&syserr";'; + put 'run;'; + put '%mend mp_lockanytable;'; + put '%macro bitemporal_closeouts('; + put 'tech_from=tx_from_dttm'; + put ',tech_to = tx_to_dttm /* Technical TO datetime variable.'; + put 'Req''d on BASE table only. */'; + put ',base_lib=WORK /* Libref of the BASE table. */'; + put ',base_dsn=BASETABLE /* Name of BASE table. */'; + put ',append_lib=WORK /* Libref of the STAGING table. */'; + put ',append_dsn=APPENDTABLE /* Name of STAGING table. */'; + put ',PK= name sex /* Business key, space separated. */'; + put '/* Should INCLUDE BUS_FROM field if relevant. */'; + put ',NOW=DEFINE'; + put ',FILTER= /* supply a filter to limit the update */'; + put ',outdest= /* supply an unquoted filepath/filename.ext to get'; + put 'a text file containing the update statements */'; + put ',loadtype='; + put ',loadtarget=YES /* if <> YES will return without changing anything */'; + put ');'; + put '%put ENTERING &sysmacroname;'; + put '%local x var start;'; + put '%let start=%sysfunc(datetime());'; + put '%dc_assignlib(WRITE,&base_lib)'; + put '%dc_assignlib(WRITE,&append_lib)'; + put '%if &now=DEFINE %then %let now=&dc_dttmtfmt.;'; + put '%put &=now;'; + put '/**'; + put '* perform basic checks'; + put '*/'; + put '/* do tables exist? */'; + put '%if not %sysfunc(exist(&base_lib..&base_dsn)) %then %do;'; + put '%mp_abort(msg=&base_lib..&base_dsn does not exist)'; + put '%end;'; + put '%else %if %sysfunc(exist(&append_lib..&append_dsn))=0'; + put 'and %sysfunc(exist(&append_lib..&append_dsn,VIEW))=0 %then %do;'; + put '%mp_abort(msg=&append_lib..&append_dsn does not exist)'; + put '%end;'; + put '/* do TX columns exist? */'; + put '%if &loadtype ne UPDATE %then %do;'; + put '%if not %mf_existvar(&base_lib..&base_dsn,&tech_from) %then %do;'; + put '%mp_abort(msg=&tech_from does not exist on &base_lib..&base_dsn)'; + put '%end;'; + put '%else %if not %mf_existvar(&base_lib..&base_dsn,&tech_to) %then %do;'; + put '%mp_abort(msg=&tech_to does not exist on &base_lib..&base_dsn)'; + put '%end;'; + put '%end;'; + put '/* do PK columns exist? */'; + put '%do x=1 %to %sysfunc(countw(&PK));'; + put '%let var=%scan(&pk,&x,%str( ));'; + put '%if not %mf_existvar(&base_lib..&base_dsn,&var) %then %do;'; + put '%mp_abort(msg=&var does not exist on &base_lib..&base_dsn)'; + put '%end;'; + put '%else %if not %mf_existvar(&append_lib..&append_dsn,&var) %then %do;'; + put '%mp_abort(msg=&var does not exist on &append_lib..&append_dsn)'; + put '%end;'; + put '%end;'; + put '/* check uniqueness */'; + put 'proc sort data=&append_lib..&append_dsn'; + put 'out=___closeout1 noduprecs dupout=___closeout1a;'; + put 'by &pk;'; + put 'run;'; + put '%if %mf_getattrn(___closeout1a,NLOBS)>0 %then'; + put '%put NOTE: dups on (&PK) in (&append_lib..&append_dsn);'; + put '/* is &NOW value within a tolerance? Should not allow renegade closeouts.. */'; + put '%local gap;'; + put '%let gap=0;'; + put 'data _null_;'; + put 'now=&now;'; + put 'gap=intck(''HOURS'',now,datetime());'; + put 'call symputx(''gap'',gap,''l'');'; + put 'run;'; + put '%mf_abort('; + put 'iftrue=(&gap > 24),'; + put 'msg=NOW variable (&now) is not within a 24hr tolerance'; + put ')'; + put '/* have any warnings / errs occurred thus far? If so, abort */'; + put '%mf_abort('; + put 'iftrue=(&syscc>0),'; + put 'msg=Aborted due to SYSCC=&SYSCC status'; + put ')'; + put '/**'; + put '* Create closeout statements. These are sent as individual SQL statements'; + put '* to ensure pass-through utilisation. The update_cnt variable monitors'; + put '* how many records were actually updated on the target table.'; + put '*/'; + put '%local update_cnt;'; + put '%let update_cnt=0;'; + put 'filename tmp temp;'; + put 'data _null_;'; + put 'set ___closeout1;'; + put 'file tmp;'; + put 'if _n_=1 then put ''proc sql noprint;'' ;'; + put 'length string $32767.;'; + put '%if &loadtype=UPDATE %then %do;'; + put 'put "delete from &base_lib..&base_dsn where 1";'; + put '%end;'; + put '%else %do;'; + put 'now=symget(''now'');'; + put 'put "update &base_lib..&base_dsn set &tech_to= " now @;'; + put '%if %mf_existvar(&base_lib..&base_dsn,PROCESSED_DTTM) %then %do;'; + put 'put " ,PROCESSED_DTTM=" now @;'; + put '%end;'; + put 'put " where " now " lt &tech_to ";'; + put '%end;'; + put '%do x=1 %to %sysfunc(countw(&PK));'; + put '%let var=%scan(&pk,&x,%str( ));'; + put '%if %mf_getvartype(&base_lib..&base_dsn,&var)=C %then %do;'; + put '/* use single quotes to avoid ampersand resolution in data */'; + put 'string=" & &var=''"!!trim(prxchange("s/''/''''/",-1,&var))!!"''";'; + put '%end;'; + put '%else %do;'; + put 'string=cats(" & &var=",&var);'; + put '%end;'; + put 'put string;'; + put '%end;'; + put 'put "&filter ;";'; + put 'put ''%let update_cnt=%eval(&update_cnt+&sqlobs);%put update_cnt=&update_cnt;'';'; + put 'run;'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;'; + put 'putlog _infile_;'; + put 'run;'; + put '%if &loadtarget ne YES %then %return;'; + put '/* ensure we have a lock */'; + put '%mp_lockanytable(LOCK,'; + put 'lib=&base_lib,ds=&base_dsn'; + put ',ref=bitemporal_closeouts'; + put ',ctl_ds=&mpelib..mpe_lockanytable'; + put ')'; + put 'options source2;'; + put '%inc tmp;'; + put 'filename tmp clear;'; + put '/**'; + put '* Update audit tracker'; + put '*/'; + put '%local newobs; %let newobs=%mf_getattrn(work.___closeout1,NLOBS);'; + put '%local user; %let user=%mf_getuser();'; + put 'proc sql;'; + put 'insert into &mpelib..mpe_dataloads'; + put 'set libref=%upcase("&base_lib")'; + put ',DSN=%upcase("&base_dsn")'; + put ',ETLSOURCE="&append_lib..&append_dsn contained &newobs records"'; + put ',LOADTYPE="CLOSEOUT"'; + put ',DELETED_RECORDS=&update_cnt'; + put ',NEW_RECORDS=0'; + put ',DURATION=%sysfunc(datetime())-&start'; + put ',USER_NM="&user"'; + put ',PROCESSED_DTTM=&now;'; + put 'quit;'; + put '%mend bitemporal_closeouts;'; + put '%macro mf_getschema(libref'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid vnum rc schema;'; + put '/* in case the parameter is a libref.tablename, pull off just the libref */'; + put '%let libref = %upcase(%scan(&libref, 1, %str(.)));'; + put '%let dsid=%sysfunc(open(sashelp.vlibnam(where=('; + put 'libname="%upcase(&libref)" and sysname=''Schema/Owner'''; + put ')),i));'; + put '%if (&dsid ^= 0) %then %do;'; + put '%let vnum=%sysfunc(varnum(&dsid,SYSVALUE));'; + put '%let rc=%sysfunc(fetch(&dsid));'; + put '%let schema=%sysfunc(getvarc(&dsid,&vnum));'; + put '%put &libref. schema is &schema.;'; + put '%let rc= %sysfunc(close(&dsid));'; + put '%end;'; + put '&schema'; + put '%mend mf_getschema;'; + put '/** @endcond */'; + put '%macro mf_getuniquename(prefix=MC);'; + put '&prefix.%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32-%length(&prefix))'; + put '%mend mf_getuniquename;'; + put '%macro mf_getvarlist(libds'; + put ',dlm=%str( )'; + put ',quote=no'; + put ',typefilter=A'; + put ')/*/STORE SOURCE*/;'; + put '/* declare local vars */'; + put '%local outvar dsid nvars x rc dlm q var vtype;'; + put '/* credit Rowland Hale - byte34 is double quote, 39 is single quote */'; + put '%if %upcase("e)=DOUBLE %then %let q=%qsysfunc(byte(34));'; + put '%else %if %upcase("e)=SINGLE %then %let q=%qsysfunc(byte(39));'; + put '/* open dataset in macro */'; + put '%let dsid=%sysfunc(open(&libds));'; + put '%if &dsid %then %do;'; + put '%let nvars=%sysfunc(attrn(&dsid,NVARS));'; + put '%if &nvars>0 %then %do;'; + put '/* add variables with supplied delimeter */'; + put '%do x=1 %to &nvars;'; + put '/* get variable type */'; + put '%let vtype=%sysfunc(vartype(&dsid,&x));'; + put '%if &vtype=&typefilter or &typefilter=A %then %do;'; + put '%let var=&q.%sysfunc(varname(&dsid,&x))&q.;'; + put '%if &var=&q&q %then %do;'; + put '%put &sysmacroname: Empty column found in &libds!;'; + put '%let var=&q. &q.;'; + put '%end;'; + put '%if %quote(&outvar)=%quote() %then %let outvar=&var;'; + put '%else %let outvar=&outvar.&dlm.&var.;'; + put '%end;'; + put '%end;'; + put '%end;'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: Unable to open &libds (rc=&dsid);'; + put '%put &sysmacroname: SYSMSG= %sysfunc(sysmsg());'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%do;%unquote(&outvar)%end;'; + put '%mend mf_getvarlist;'; + put '%macro mf_abort(mac=mf_abort.sas, msg=, iftrue=%str(1=1)'; + put ')/*/STORE SOURCE*/;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mf_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%abort;'; + put '%mend mf_abort;'; + put '/** @endcond */'; + put '%macro mf_verifymacvars('; + put 'verifyVars /* list of macro variable NAMES */'; + put ',makeUpcase=NO /* set to YES to make all the variable VALUES uppercase */'; + put ',mAbort=SOFT'; + put ')/*/STORE SOURCE*/;'; + put '%local verifyIterator verifyVar abortmsg;'; + put '%do verifyIterator=1 %to %sysfunc(countw(&verifyVars,%str( )));'; + put '%let verifyVar=%qscan(&verifyVars,&verifyIterator,%str( ));'; + put '%if not %symexist(&verifyvar) %then %do;'; + put '%let abortmsg= Variable &verifyVar is MISSING;'; + put '%goto exit_err;'; + put '%end;'; + put '%if %length(%trim(&&&verifyVar))=0 %then %do;'; + put '%let abortmsg= Variable &verifyVar is EMPTY;'; + put '%goto exit_err;'; + put '%end;'; + put '%if &makeupcase=YES %then %do;'; + put '%let &verifyVar=%upcase(&&&verifyvar);'; + put '%end;'; + put '%end;'; + put '%goto exit_success;'; + put '%exit_err:'; + put '%put &abortmsg;'; + put '%mf_abort(iftrue=(&mabort ne SOFT),'; + put 'mac=mf_verifymacvars,'; + put 'msg=%str(&abortmsg)'; + put ')'; + put '0'; + put '%return;'; + put '%exit_success:'; + put '1'; + put '%mend mf_verifymacvars;'; + put '%macro mf_wordsInStr1ButNotStr2('; + put 'Str1= /* string containing words to extract */'; + put ',Str2= /* used to compare with the extract string */'; + put ')/*/STORE SOURCE*/;'; + put '%local count_base count_extr i i2 extr_word base_word match outvar;'; + put '%if %length(&str1)=0 or %length(&str2)=0 %then %do;'; + put '%put base string (str1)= &str1;'; + put '%put compare string (str2) = &str2;'; + put '%return;'; + put '%end;'; + put '%let count_base=%sysfunc(countw(&Str2));'; + put '%let count_extr=%sysfunc(countw(&Str1));'; + put '%do i=1 %to &count_extr;'; + put '%let extr_word=%scan(&Str1,&i,%str( ));'; + put '%let match=0;'; + put '%do i2=1 %to &count_base;'; + put '%let base_word=%scan(&Str2,&i2,%str( ));'; + put '%if &extr_word=&base_word %then %let match=1;'; + put '%end;'; + put '%if &match=0 %then %let outvar=&outvar &extr_word;'; + put '%end;'; + put '&outvar'; + put '%mend mf_wordsInStr1ButNotStr2;'; + put '%macro mf_isblank(param'; + put ')/*/STORE SOURCE*/;'; + put '%sysevalf(%superq(param)=,boolean)'; + put '%mend mf_isblank;'; + put '%macro mp_dropmembers('; + put 'list /* space separated list of datasets / views */'; + put ',libref=WORK /* can only drop from a single library at a time */'; + put ',iftrue=%str(1=1)'; + put ')/*/STORE SOURCE*/;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%if %mf_isblank(&list) %then %do;'; + put '%put NOTE: nothing to drop!;'; + put '%return;'; + put '%end;'; + put 'proc datasets lib=&libref nolist;'; + put 'delete &list;'; + put 'delete &list /mtype=view;'; + put 'run;'; + put '%mend mp_dropmembers;'; + put '%macro mf_getquotedstr(IN_STR'; + put ',DLM=%str(,)'; + put ',QUOTE=S'; + put ',indlm=%str( )'; + put ')/*/STORE SOURCE*/;'; + put '/* credit Rowland Hale - byte34 is double quote, 39 is single quote */'; + put '%if "e=S %then %let quote=%qsysfunc(byte(39));'; + put '%else %if "e=D %then %let quote=%qsysfunc(byte(34));'; + put '%else %if "e=N %then %let quote=;'; + put '%local i item buffer;'; + put '%let i=1;'; + put '%do %while (%qscan(&IN_STR,&i,%str(&indlm)) ne %str() ) ;'; + put '%let item=%qscan(&IN_STR,&i,%str(&indlm));'; + put '%if %bquote("E) ne %then %let item="E%qtrim(&item)"E;'; + put '%else %let item=%qtrim(&item);'; + put '%if (&i = 1) %then %let buffer =%qtrim(&item);'; + put '%else %let buffer =&buffer&DLM%qtrim(&item);'; + put '%let i = %eval(&i+1);'; + put '%end;'; + put '%let buffer=%sysfunc(coalescec(%qtrim(&buffer),"E"E));'; + put '&buffer'; + put '%mend mf_getquotedstr;'; + put '%macro mf_nobs(libds'; + put ')/*/STORE SOURCE*/;'; + put '%mf_getattrn(&libds,NLOBS)'; + put '%mend mf_nobs;'; + put '%macro mp_retainedkey('; + put 'base_lib=WORK'; + put ',base_dsn=BASETABLE'; + put ',append_lib=WORK'; + put ',append_dsn=APPENDTABLE'; + put ',retained_key=DEFAULT_RK'; + put ',business_key= PK1 PK2'; + put ',check_uniqueness=NO'; + put ',maxkeytable=0'; + put ',locktable=0'; + put ',outds=WORK.APPEND'; + put ',filter_str='; + put ');'; + put '%put &sysmacroname entry vars:;'; + put '%put _local_;'; + put '%local base_libds app_libds key_field check maxkey idx_pk newkey_cnt iserr'; + put 'msg x tempds1 tempds2 comma_pk appnobs checknobs dropvar tempvar idx_val;'; + put '%let base_libds=%upcase(&base_lib..&base_dsn);'; + put '%let app_libds=%upcase(&append_lib..&append_dsn);'; + put '%let tempds1=%mf_getuniquename();'; + put '%let tempds2=%mf_getuniquename();'; + put '%let comma_pk=%mf_getquotedstr(in_str=%str(&business_key),dlm=%str(,),quote=);'; + put '%let outds=%sysfunc(ifc(%index(&outds,.)=0,work.&outds,&outds));'; + put '/* validation checks */'; + put '%let iserr=0;'; + put '%if &syscc>0 %then %do;'; + put '%let iserr=1;'; + put '%let msg=%str(SYSCC=&syscc on macro entry);'; + put '%end;'; + put '%else %if %sysfunc(exist(&base_libds))=0 %then %do;'; + put '%let iserr=1;'; + put '%let msg=%str(Base LIBDS (&base_libds) expected but NOT FOUND);'; + put '%end;'; + put '%else %if %sysfunc(exist(&app_libds))=0 %then %do;'; + put '%let iserr=1;'; + put '%let msg=%str(Append LIBDS (&app_libds) expected but NOT FOUND);'; + put '%end;'; + put '%else %if &maxkeytable ne 0 and %sysfunc(exist(&maxkeytable))=0 %then %do;'; + put '%let iserr=1;'; + put '%let msg=%str(Maxkeytable (&maxkeytable) expected but NOT FOUND);'; + put '%end;'; + put '%else %if &maxkeytable ne 0 and %sysfunc(exist(&locktable))=0 %then %do;'; + put '%let iserr=1;'; + put '%let msg=%str(Locktable (&locktable) expected but NOT FOUND);'; + put '%end;'; + put '%else %if %length(&business_key)=0 %then %do;'; + put '%let iserr=1;'; + put '%let msg=%str(Business key (&business_key) expected but NOT FOUND);'; + put '%end;'; + put '%do x=1 %to %sysfunc(countw(&business_key));'; + put '/* check business key values exist */'; + put '%let key_field=%scan(&business_key,&x,%str( ));'; + put '%if not %mf_existvar(&app_libds,&key_field) %then %do;'; + put '%let iserr=1;'; + put '%let msg=Business key (&key_field) not found on &app_libds!;'; + put '%goto err;'; + put '%end;'; + put '%else %if not %mf_existvar(&base_libds,&key_field) %then %do;'; + put '%let iserr=1;'; + put '%let msg=Business key (&key_field) not found on &base_libds!;'; + put '%goto err;'; + put '%end;'; + put '%end;'; + put '%err:'; + put '%if &iserr=1 %then %do;'; + put '/* err case so first perform an unlock of the base table before exiting */'; + put '%mp_lockanytable('; + put 'UNLOCK,lib=&base_lib,ds=&base_dsn,ref=%superq(msg),ctl_ds=&locktable'; + put ')'; + put '%end;'; + put '%mp_abort(iftrue=(&iserr=1),mac=mp_retainedkey,msg=%superq(msg))'; + put 'proc sql noprint;'; + put 'select sum(max(&retained_key),0) into: maxkey from &base_libds;'; + put '/**'; + put '* get base table RK and bus field values for lookup'; + put '*/'; + put 'proc sql noprint;'; + put 'create table &tempds1 as'; + put 'select distinct &comma_pk,&retained_key'; + put 'from &base_libds &filter_str'; + put 'order by &comma_pk,&retained_key;'; + put '%if &check_uniqueness=YES %then %do;'; + put 'select count(*) into:checknobs'; + put 'from (select distinct &comma_pk from &app_libds);'; + put 'select count(*) into: appnobs from &app_libds; /* might be view */'; + put '%if &checknobs ne &appnobs %then %do;'; + put '%let msg=Source table &app_libds is not unique on (&business_key);'; + put '%let iserr=1;'; + put '%end;'; + put '%end;'; + put '%if &iserr=1 %then %do;'; + put '/* err case so first perform an unlock of the base table before exiting */'; + put '%mp_lockanytable('; + put 'UNLOCK,lib=&base_lib,ds=&base_dsn,ref=%superq(msg),ctl_ds=&locktable'; + put ')'; + put '%end;'; + put '%mp_abort(iftrue= (&iserr=1),mac=mp_retainedkey,msg=%superq(msg))'; + put '%if %mf_existvar(&app_libds,&retained_key)'; + put '%then %let dropvar=(drop=&retained_key);'; + put '/* prepare interim table with retained key populated for matching keys */'; + put 'proc sql noprint;'; + put 'create table &tempds2 as'; + put 'select b.&retained_key, a.*'; + put 'from &app_libds &dropvar a'; + put 'left join &tempds1 b'; + put 'on 1'; + put '%do idx_pk=1 %to %sysfunc(countw(&business_key));'; + put '%let idx_val=%scan(&business_key,&idx_pk);'; + put 'and a.&idx_val=b.&idx_val'; + put '%end;'; + put 'order by &retained_key;'; + put '/* identify the number of entries without retained keys (new records) */'; + put 'select count(*) into: newkey_cnt'; + put 'from &tempds2'; + put 'where missing(&retained_key);'; + put 'quit;'; + put '/**'; + put '* Update maxkey table if link provided'; + put '*/'; + put '%if &maxkeytable ne 0 %then %do;'; + put 'proc sql noprint;'; + put 'select count(*) into: check from &maxkeytable'; + put 'where upcase(keytable)="&base_libds";'; + put '%mp_lockanytable(LOCK'; + put ',lib=%scan(&maxkeytable,1,.)'; + put ',ds=%scan(&maxkeytable,2,.)'; + put ',ref=Updating maxkeyvalues with mp_retainedkey'; + put ',ctl_ds=&locktable'; + put ')'; + put 'proc sql;'; + put '%if &check=0 %then %do;'; + put 'insert into &maxkeytable'; + put 'set keytable="&base_libds"'; + put ',keycolumn="&retained_key"'; + put ',max_key=%eval(&maxkey+&newkey_cnt)'; + put ',processed_dttm="%sysfunc(datetime(),%mf_fmtdttm())"dt;'; + put '%end;'; + put '%else %do;'; + put 'update &maxkeytable'; + put 'set max_key=%eval(&maxkey+&newkey_cnt)'; + put ',processed_dttm="%sysfunc(datetime(),%mf_fmtdttm())"dt'; + put 'where keytable="&base_libds";'; + put '%end;'; + put '%mp_lockanytable(UNLOCK'; + put ',lib=%scan(&maxkeytable,1,.)'; + put ',ds=%scan(&maxkeytable,2,.)'; + put ',ref=Updating maxkeyvalues with maxkey=%eval(&maxkey+&newkey_cnt)'; + put ',ctl_ds=&locktable'; + put ')'; + put '%end;'; + put '/* fill in the missing retained key values */'; + put '%let tempvar=%mf_getuniquename();'; + put 'data &outds(drop=&tempvar);'; + put 'retain &tempvar %eval(&maxkey+1);'; + put 'set &tempds2;'; + put 'if &retained_key =. then &retained_key=&tempvar;'; + put '&tempvar=&tempvar+1;'; + put 'run;'; + put '%mend mp_retainedkey;'; + put '/** @cond */'; + put '%macro mp_storediffs(libds'; + put ',origds'; + put ',key'; + put ',delds=0'; + put ',appds=0'; + put ',modds=0'; + put ',outds=work.mp_storediffs'; + put ',loadref=0'; + put ',processed_dttm=0'; + put ',mdebug=0'; + put ')/*/STORE SOURCE*/;'; + put '%local dbg;'; + put '%if &mdebug=1 %then %do;'; + put '%put &sysmacroname entry vars:;'; + put '%put _local_;'; + put '%end;'; + put '%else %let dbg=*;'; + put '/* set up unique and temporary vars */'; + put '%local ds1 ds2 ds3 ds4 hashkey inds_auto inds_keep dslist vlist;'; + put '%let ds1=%upcase(work.%mf_getuniquename(prefix=mpsd_ds1));'; + put '%let ds2=%upcase(work.%mf_getuniquename(prefix=mpsd_ds2));'; + put '%let ds3=%upcase(work.%mf_getuniquename(prefix=mpsd_ds3));'; + put '%let ds4=%upcase(work.%mf_getuniquename(prefix=mpsd_ds4));'; + put '%let hashkey=%upcase(%mf_getuniquename(prefix=mpsd_hashkey));'; + put '%let inds_auto=%upcase(%mf_getuniquename(prefix=mpsd_inds_auto));'; + put '%let inds_keep=%upcase(%mf_getuniquename(prefix=mpsd_inds_keep));'; + put '%let dslist=&origds;'; + put '%if &delds ne 0 %then %do;'; + put '%let delds=%upcase(&delds);'; + put '%if %scan(&delds,-1,.)=&delds %then %let delds=WORK.&delds;'; + put '%let dslist=&dslist &delds;'; + put '%end;'; + put '%if &appds ne 0 %then %do;'; + put '%let appds=%upcase(&appds);'; + put '%if %scan(&appds,-1,.)=&appds %then %let appds=WORK.&appds;'; + put '%let dslist=&dslist &appds;'; + put '%end;'; + put '%if &modds ne 0 %then %do;'; + put '%let modds=%upcase(&modds);'; + put '%if %scan(&modds,-1,.)=&modds %then %let modds=WORK.&modds;'; + put '%let dslist=&dslist &modds;'; + put '%end;'; + put '%let origds=%upcase(&origds);'; + put '%if %scan(&origds,-1,.)=&origds %then %let origds=WORK.&origds;'; + put '%let key=%upcase(&key);'; + put '/* hash the key and append all the tables (marking the source) */'; + put 'data &ds1;'; + put 'set &dslist indsname=&inds_auto;'; + put '&hashkey=put(md5(catx(''|'',%mf_getquotedstr(&key,quote=N))),$hex32.);'; + put '&inds_keep=upcase(&inds_auto);'; + put 'proc sort;'; + put 'by &inds_keep &hashkey;'; + put 'run;'; + put '/* transpose numeric & char vars */'; + put 'proc transpose data=&ds1'; + put 'out=&ds2(rename=(&hashkey=key_hash _name_=tgtvar_nm col1=newval_num));'; + put 'by &inds_keep &hashkey;'; + put 'var _numeric_;'; + put 'run;'; + put 'proc transpose data=&ds1'; + put 'out=&ds3('; + put 'rename=(&hashkey=key_hash _name_=tgtvar_nm col1=newval_char)'; + put 'where=(tgtvar_nm not in ("&hashkey","&inds_keep"))'; + put ');'; + put 'by &inds_keep &hashkey;'; + put 'var _character_;'; + put 'run;'; + put '%if %index(&libds,-)>0 and %scan(&libds,2,-)=FC %then %do;'; + put '/* this is a format catalog - cannot query cols directly */'; + put '%let vlist="FMTNAME","START","END","LABEL","MIN","MAX","DEFAULT","LENGTH"'; + put ',"FUZZ","PREFIX","MULT","FILL","NOEDIT","TYPE","SEXCL","EEXCL","HLO"'; + put ',"DECSEP","DIG3SEP","DATATYPE","LANGUAGE";'; + put '%end;'; + put '%else %let vlist=%mf_getvarlist(&libds,dlm=%str(,),quote=DOUBLE);'; + put 'data &ds4;'; + put 'length &inds_keep $41 tgtvar_nm $32 _label_ $256;'; + put 'if _n_=1 then call missing(_label_);'; + put 'drop _label_;'; + put 'set &ds2 &ds3 indsname=&inds_auto;'; + put 'tgtvar_nm=upcase(tgtvar_nm);'; + put 'if tgtvar_nm in (%upcase(&vlist));'; + put 'if upcase(&inds_auto)="&ds2" then tgtvar_type=''N'';'; + put 'else if upcase(&inds_auto)="&ds3" then tgtvar_type=''C'';'; + put 'else do;'; + put 'putlog "%str(ERR)OR: unidentified vartype input!" &inds_auto;'; + put 'call symputx(''syscc'',98);'; + put 'end;'; + put 'if &inds_keep="&appds" then move_type=''A'';'; + put 'else if &inds_keep="&delds" then move_type=''D'';'; + put 'else if &inds_keep="&modds" then move_type=''M'';'; + put 'else if &inds_keep="&origds" then move_type=''O'';'; + put 'else do;'; + put 'putlog "%str(ERR)OR: unidentified movetype input!" &inds_keep;'; + put 'call symputx(''syscc'',99);'; + put 'end;'; + put 'tgtvar_nm=upcase(tgtvar_nm);'; + put 'if tgtvar_nm in (%mf_getquotedstr(&key)) then is_pk=1;'; + put 'else is_pk=0;'; + put 'drop &inds_keep;'; + put 'run;'; + put '%if "&loadref"="0" %then %let loadref=%sysfunc(uuidgen());'; + put '%if &processed_dttm=0 %then %let processed_dttm=%sysfunc(datetime());'; + put '%let libds=%upcase(&libds);'; + put '/* join orig vals for modified & deleted */'; + put 'proc sql;'; + put 'create table &outds as'; + put 'select "&loadref" as load_ref length=36'; + put ',&processed_dttm as processed_dttm format=E8601DT26.6'; + put ',"%scan(&libds,1,.)" as libref length=8'; + put ',"%scan(&libds,2,.)" as dsn length=32'; + put ',b.key_hash length=32'; + put ',b.move_type length=1'; + put ',b.tgtvar_nm length=32'; + put ',b.is_pk'; + put ',case when b.move_type ne ''M'' then -1'; + put 'when a.newval_num=b.newval_num and a.newval_char=b.newval_char then 0'; + put 'else 1'; + put 'end as is_diff'; + put ',b.tgtvar_type length=1'; + put ',case when b.move_type=''D'' then b.newval_num'; + put 'else a.newval_num'; + put 'end as oldval_num format=best32.'; + put ',case when b.move_type=''D'' then .'; + put 'else b.newval_num'; + put 'end as newval_num format=best32.'; + put ',case when b.move_type=''D'' then b.newval_char'; + put 'else a.newval_char'; + put 'end as oldval_char length=32765'; + put ',case when b.move_type=''D'' then '''''; + put 'else b.newval_char'; + put 'end as newval_char length=32765'; + put 'from &ds4(where=(move_type=''O'')) as a'; + put 'right join &ds4(where=(move_type ne ''O'')) as b'; + put 'on a.tgtvar_nm=b.tgtvar_nm'; + put 'and a.key_hash=b.key_hash'; + put 'order by move_type, key_hash,is_pk desc, tgtvar_nm;'; + put '%if &mdebug=0 %then %do;'; + put 'proc sql;'; + put 'drop table &ds1, &ds2, &ds3, &ds4;'; + put '%end;'; + put '%mend mp_storediffs;'; + put '/** @endcond */'; + put '%macro bitemporal_dataloader('; + put 'bus_from= /* Business FROM datetime variable. Req''d on'; + put 'STAGING & BASE tables.*/'; + put ',bus_to = /* Business TO datetime variable. Req''d on'; + put 'STAGING & BASE tables. */'; + put ',bus_from_override= /* Provide a hard coded BUS_FROM datetime value.*/'; + put ',bus_to_override= /* provide a hard coded BUS_TO datetime value */'; + put ',tech_from= /* Technical FROM datetime variable. Req''d on'; + put 'BASE table only. */'; + put ',tech_to = /* Technical TO datetime variable. Req''d on BASE'; + put 'table only. */'; + put ',processed= 0'; + put ',base_lib=WORK /* Libref of the BASE table. */'; + put ',base_dsn=BASETABLE /* Name of BASE table. */'; + put ',append_lib=WORK /* Libref of the STAGING table. */'; + put ',append_dsn=APPENDTABLE'; + put ',high_date=''01JAN5999:00:00:00''dt /* High date to close out records */'; + put ',PK= name sex'; + put ',RK_UNDERLYING='; + put ',KEEPVARS= /* Provides option for removing unwanted vars from append table */'; + put ',RK_UPDATE_MAXKEYTABLE=NO /* If switching (or mix matching) with regular'; + put 'SCD2 loader then set this switch to YES to'; + put 'ensure the MAXKEYTABLE is updated with the'; + put 'current maximum RK value for the target table'; + put '*/'; + put ',CHECK_UNIQUENESS=YES /* Perform a check of the APPEND table to ensure it is'; + put 'unique on its business key */'; + put ',ETLSOURCE=demo /* supply a value ($50.) to show as ETLSOURCE in'; + put '&dclib..DATALOADS */'; + put ',LOADTYPE=BITEMPORAL'; + put ',RK_MAXKEYTABLE= mpe_maxkeyvalues'; + put ',LOG=1 /* Switch to 0 to prevent records being added to'; + put '&mpelib..mpe_DATALOADS (ie when testing)*/'; + put ',DELETE_COL= _____DELETE__THIS__RECORD_____'; + put '/* If this variable is found in the append dataset'; + put 'then records are closed out (or deleted) in the'; + put 'append table where that variable= "Yes" */'; + put ',LOADTARGET=YES /* set to anything but uppercase YES to switch off'; + put 'target table load and generate temp tables only */'; + put ',CLOSE_VARS='; + put '/*a problem with regular SCD2 or TXTEMPORAL loads is that there is'; + put 'no facility to close out removed records (all records are'; + put 'assumed new or changed). But how does one determine which'; + put 'records are removed? Short of loading the entire table'; + put 'each time? This parameter allows a set of variables'; + put '(this should be a subset of the PK) to be declared, and'; + put 'the macro will determine which records in the base table'; + put 'need to be closed out ahead of the load.'; + put 'For instance, given the following:'; + put 'Base Table Staging Table'; + put 'DATE ENTITY AMOUNT DATE ENTITY AMOUNT'; + put 'JAN ACME4 66 JAN ACME4 66'; + put 'FEB ACME4 99 FEB ACME4 99'; + put 'FEB ACME1 22'; + put 'By supplying DATE in CLOSE_VARS and DATE ENTITY as the PK,'; + put 'the "FEB PAG 22" record would get closed out.'; + put '*/'; + put ',config_table=&dclib..MPE_CONFIG'; + put ',dclib=&dc_libref'; + put ',outds_del=work.outds_del'; + put ',outds_add=work.outds_add'; + put ',outds_mod=work.outds_mod'; + put ',outds_audit=0'; + put ');'; + put '/* when changing this macro, update the version num here */'; + put '%local ver;'; + put '%let ver=32;'; + put '%put &sysmacroname entry vars:;'; + put '%put _local_;'; + put '%dc_assignlib(WRITE,&base_lib) /* may not already be assigned */'; + put '/* return straight away if nothing to load */'; + put '%let nobs= %mf_getattrn(&append_lib..&append_dsn,NLOBS);'; + put '%if &nobs=-1 %then %do;'; + put 'proc sql noprint; select count(*) into: nobs from &append_lib..&append_dsn;'; + put '%end;'; + put '%if &nobs=0 %then %do;'; + put '%put NOTE:; %put NOTE-;%put NOTE-;%put NOTE-;'; + put '%put NOTE- Base dataset &append_lib..&append_dsn is empty. Nothing to upload!;'; + put '%put NOTE-;%put NOTE-;%put NOTE-;'; + put '%return;'; + put '%end;'; + put '/* hard exit if err condition exists */'; + put '%mp_abort(iftrue= (&syscc > 0)'; + put ',mac=bitemporal_dataloader'; + put ',msg=%str(Bitemporal transform / job aborted due to SYSCC=&SYSCC status;)'; + put ')'; + put '%local engine_type;'; + put '%let engine_type=%mf_getengine(&base_lib);'; + put '%if (&engine_type=REDSHIFT or &engine_type=POSTGRES) and %length(&CLOSE_VARS)>0'; + put '%then %do;'; + put '%put NOTE:; %put NOTE-;%put NOTE-;%put NOTE-;'; + put '%put NOTE- CLOSE_VARS functionality not yet supported in &engine_type;'; + put '%put NOTE-;%put NOTE-;%put NOTE-;'; + put '%return;'; + put '%end;'; + put '/**'; + put '* The metadata functions (eg mf_existvar) will fail if the base table has a'; + put '* SAS lock. So, make a snapshot of the base table for further use.'; + put '* Also, make output tables (regardless).'; + put '*/'; + put '%local basecopy;'; + put '%let basecopy=%mf_getuniquename(prefix=basecopy);'; + put 'data &basecopy &outds_mod &outds_add &outds_del;'; + put 'set &base_lib..&base_dsn;'; + put 'stop;'; + put 'run;'; + put '%mp_abort(iftrue= (&syscc > 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after base table copy - aborting due to table lock)'; + put ')'; + put '%local cols idx_pk md5_col ;'; + put '%let md5_col=___TMP___md5;'; + put '%let check_uniqueness=%upcase(&check_uniqueness);'; + put '%let RK_UPDATE_MAXKEYTABLE=%upcase(&RK_UPDATE_MAXKEYTABLE);'; + put '%let high_date=%unquote(&high_date);'; + put '%let loadtype=%upcase(&loadtype);'; + put '/* ensure irrelevant variables are cleared */'; + put '%if &loadtype=BUSTEMPORAL %then %do;'; + put '%let tech_from=;'; + put '%let tech_to=;'; + put '%end;'; + put '%else %if &loadtype=TXTEMPORAL or &loadtype=UPDATE %then %do;'; + put '%let bus_from=;'; + put '%let bus_to=;'; + put '%end;'; + put '/* ensure relevant variables are supplied */'; + put '%mp_abort(iftrue=(&loadtype=BITEMPORAL & %mf_verifymacvars(bus_from bus_to)=0)'; + put ',mac=bitemporal_dataloader'; + put ',msg=%str(Missing BUS_FROM / BUS_TO)'; + put ')'; + put '%mp_abort(iftrue=(&loadtype=TXTEMPORAL & %mf_verifymacvars(tech_from tech_to)=0)'; + put ',mac=bitemporal_dataloader'; + put ',msg=%str(Missing TECH_FROM / TECH_TO)'; + put ')'; + put '/**'; + put '* drop any tables (may be defined as views or vice versa preventing overwrite)'; + put '*/'; + put '%mp_dropmembers(append bitemp0_append bitemp_cols)'; + put '/* SQL Server requires its own time values */'; + put '/* 9.2 will only give picture format down to seconds. 9.3 allows'; + put 'milliseconds by using lower S and defining the decimal in the format name..*/'; + put 'PROC FORMAT;'; + put 'picture MyMSdt other=''%0Y-%0m-%0dT%0H:%0M:%0S'' (datatype=datetime);'; + put 'RUN;'; + put '%local dbnow;'; + put '%let dbnow="%sysfunc(datetime(),%mf_fmtdttm())"dt;'; + put 'data _null_;'; + put '/* convert space separated macvar to comma separated for SQL processing */'; + put 'call symputx(''PK_COMMA'',tranwrd(compbl("&pk"),'' '','',''),''L'');'; + put 'call symputx(''PK_CNT'',countw("&pk",'' ''),''L'');'; + put 'now=&dbnow;'; + put 'call symputx(''NOW'',now,''L'');'; + put 'call symputx(''SQLNOW'',cats("''",put(now,MyMSdt.),"''"),''L'');'; + put 'length etlsource $100;'; + put 'etlsource=subpad(symget(''etlsource''),1,100);'; + put 'call symputx(''etlsource'',etlsource,''l'');'; + put 'run;'; + put '/**'; + put '* Even if no PROCESSED var provided, assume that any variable named'; + put '* PROCESSED_DTTM should be updated'; + put '*/'; + put '%if &processed=0 %then %do;'; + put '%if %mf_existvar(&basecopy,PROCESSED_DTTM)'; + put '%then %let processed=PROCESSED_DTTM;'; + put '%else %let processed=;'; + put '%end;'; + put '/* extract colnames for md5 creation / change tracking */'; + put 'proc contents noprint data=&base_lib..&base_dsn'; + put 'out=work.bitemp_cols (keep=name type length varnum format:);'; + put 'run;'; + put 'proc sql noprint;'; + put 'select name into: cols separated by '','''; + put 'from work.bitemp_cols'; + put 'where upcase(name) not in'; + put '(%upcase("&bus_from","&bus_to"'; + put ',"&tech_from","&tech_to"'; + put ',"&processed","&delete_col")) ;'; + put 'select case when type in (2,6) then cats(''put(md5(trim('',name,'')),$hex32.)'')'; + put '/* multiply by 1 to strip precision errors (eg 0 != 0) */'; + put '/* but ONLY if not missing, else will lose any special missing values */'; + put 'else cats(''put(md5(trim(put(ifn(missing('''; + put ',name,''),'',name,'','',name,''*1),binary64.))),$hex32.)'') end'; + put 'into: stripcols separated by ''||'''; + put 'from work.bitemp_cols'; + put 'where upcase(name) not in'; + put '(%upcase("&bus_from","&bus_to"'; + put ',"&tech_from","&tech_to"'; + put ',"&processed","&delete_col")) ;'; + put '/* set default formats*/'; + put '%let bus_from_fmt = datetime19.;'; + put '%let bus_to_fmt = datetime19.;'; + put '%let processed_fmt = datetime19.;'; + put '%let tech_from_fmt = format=datetime19.;'; + put '%let tech_to_fmt = format=datetime19.;'; + put '%put &=stripcols;'; + put '%put &=pk;'; + put 'data _null_;'; + put 'set work.bitemp_cols;'; + put 'if type=2 or type=6 then do;'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'if format='''' then fmt=cats(length,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put 'if upcase(name)="%upcase(&bus_from)" then'; + put 'call symputx(''bus_from_fmt'',fmt,''L'');'; + put 'else if upcase(name)="%upcase(&bus_to)" then'; + put 'call symputx(''bus_to_fmt'',fmt,''L'');'; + put 'else if upcase(name)="%upcase(&tech_from)" then'; + put 'call symputx(''tech_from_fmt'',"format="!!fmt,''L'');'; + put 'else if upcase(name)="%upcase(&tech_to)" then'; + put 'call symputx(''tech_to_fmt'',"format="!!fmt,''L'');'; + put 'else if upcase(name)="%upcase(&processed)" then'; + put 'call symputx(''processed_fmt'',fmt,''L'');'; + put 'run;'; + put '%if %index(%quote(&cols),___TMP___) %then %do;'; + put '%let msg=%str(Table contains a variable name containing "___TMP___".%trim('; + put ') This may conflict with temp variable generation!!);'; + put '%mp_abort(msg=&msg,mac=bitemporal_dataloader);'; + put '%let syscc=5;'; + put '%return;'; + put '%end;'; + put '/* if transaction dates appear on the APPEND table, need to remove them */'; + put '%local drop_tx_dates /* used in append table */'; + put 'drop_tx_dates_noobs /* used to take the base table structure */;'; + put '%if %mf_existvar(&append_lib..&append_dsn, &tech_from)'; + put '%then %let drop_tx_dates=&tech_from;'; + put '%if %mf_existvar(&append_lib..&append_dsn, &tech_to)'; + put '%then %let drop_tx_dates=&drop_tx_dates &tech_to;'; + put '%if %length(%trim(&drop_tx_dates))>0'; + put '%then %let drop_tx_dates=(drop=&drop_tx_dates);'; + put '%if %mf_existvar(&basecopy, &tech_from)'; + put '%then %let drop_tx_dates_noobs=&tech_from;'; + put '%if %mf_existvar(&basecopy, &tech_to)'; + put '%then %let drop_tx_dates_noobs=&drop_tx_dates_noobs &tech_to;'; + put '%if %length(%trim(&drop_tx_dates_noobs))>0'; + put '%then %let drop_tx_dates_noobs=(drop=&drop_tx_dates_noobs obs=0);'; + put '%else %let drop_tx_dates_noobs=(obs=0);'; + put '/**'; + put '* Lock the table. This is necessary as we are doing a two part update (first'; + put '* closing records then appending new records). It is theoretically possible'; + put '* that an upload may occur whilst preparing the staging tables. And the'; + put '* staging tables are about to be prepared..'; + put '*/'; + put '%if &LOADTARGET = YES %then %do;'; + put '%mp_lockanytable(LOCK,'; + put 'lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE,ctl_ds=&dclib..mpe_lockanytable'; + put ')'; + put '%end;'; + put '%else %do;'; + put '/* not an actual load, so avoid updating the max key table in next step. */'; + put '%let rk_update_maxkeytable=NO;'; + put '%end;'; + put '%if %length(&RK_UNDERLYING)>0 %then %do;'; + put '%mp_retainedkey('; + put 'base_lib=&base_lib'; + put ',base_dsn=&base_dsn'; + put ',append_lib=&append_lib'; + put ',append_dsn=&append_dsn'; + put ',retained_key=&pk'; + put ',business_key=&rk_underlying'; + put ',check_uniqueness=&CHECK_UNIQUENESS'; + put ',outds=work.append'; + put '%if &rk_update_maxkeytable=NO %then %do;'; + put ',maxkeytable=0'; + put '%end;'; + put '%else %do;'; + put ',maxkeytable=&dclib..&RK_MAXKEYTABLE'; + put '%end;'; + put ',locktable=&dclib..mpe_lockanytable'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then %do;'; + put ',filter_str=%str( (where=( &now < &tech_to)) )'; + put '%end;'; + put ')'; + put '%end;'; + put '%else %do;'; + put 'proc sql;'; + put 'create view work.append as select * from &append_lib..&append_dsn;'; + put '%end;'; + put '/**'; + put '* generate md5 for append table'; + put '*/'; + put '/* it is possible the source dataset has additional (unwanted) columns.'; + put 'Drop if specified; */'; + put '%if %length(&keepvars)>0 %then %do;'; + put '/* remove tech dates from keepvars as they are generated later */'; + put '%let keepvars=%sysfunc(tranwrd(%str( &keepvars ),%str( &tech_from ),%str( )));'; + put '%let keepvars=%sysfunc(tranwrd(%str( &keepvars ),%str( &tech_to ),%str( )));'; + put '%let keepvars=(keep=&keepvars &bus_from &bus_to &processed &md5_col);'; + put '%end;'; + put '/* CAS varchar types cause append issues here, so perform autoconvert'; + put 'by creating empty local table first */'; + put 'data;'; + put 'set &base_lib..&base_dsn &drop_tx_dates_noobs;'; + put 'run;'; + put '%local emptybasetable; %let emptybasetable=&syslast;'; + put 'data work.bitemp0_append &keepvars &outds_del(drop=&md5_col )'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put '/nonote2err'; + put '%end;'; + put ';'; + put '/* apply formats for bitemporal vars but not tx dates which are added later */'; + put '%if %length(&keepvars)>0 and &loadtype=BITEMPORAL %then %do;'; + put 'format &bus_from &bus_from_fmt;'; + put 'format &bus_to &bus_to_fmt;'; + put '%end;'; + put 'set &emptybasetable /* base table reqd in case append has fewer cols */'; + put 'work.append &drop_tx_dates;'; + put '%if %length(%str(&bus_from_override))>0 %then %do;'; + put '&bus_from= %unquote(&bus_from_override) ;'; + put '%end;'; + put '%if %length(%str(&bus_to_override))>0 %then %do;'; + put '&bus_to= %unquote(&bus_to_override) ;'; + put '%end;'; + put 'length &md5_col $32;'; + put '&md5_col=put(md5(&stripcols),hex32.);'; + put '%if %length(&processed)>0 %then %do;'; + put 'format &processed &processed_fmt;'; + put '&processed=&now;'; + put '%end;'; + put '/**'; + put '* If a delete column exists then create the delete dataset'; + put '*/'; + put '%if %mf_existvar(&append_lib..&append_dsn, &delete_col) %then %do;'; + put 'drop &delete_col;'; + put 'if upcase(&delete_col) = "YES" then output &outds_del ;'; + put 'else output work.bitemp0_append ;'; + put 'run;'; + put '%if %mf_getattrn(&outds_del,NLOBS)>0 %then %do;'; + put '%bitemporal_closeouts('; + put 'tech_from=&tech_from'; + put ',tech_to = &tech_to'; + put ',base_lib=&base_lib'; + put ',base_dsn=&base_dsn'; + put ',append_lib=work'; + put ',append_dsn=%scan(&outds_del,-1,.)'; + put ',PK=&bus_from &pk'; + put ',NOW=&dbnow'; + put ',loadtarget=&loadtarget'; + put ',loadtype=&loadtype'; + put ')'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put 'output work.bitemp0_append;'; + put 'run;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc gt 0 at line 494)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc)'; + put ')'; + put '%if %length(&close_vars)>0 %then %do;'; + put '/**'; + put '* need to close out records that are not provided'; + put '*/'; + put 'proc sql;'; + put 'create table bitemp1_closevars1 as'; + put 'select distinct a.%mf_getquotedstr(in_str=&pk,dlm=%str(,a.),quote=)'; + put 'from &base_lib..&base_dsn a'; + put 'inner join work.bitemp0_append b'; + put 'on 1=1'; + put '/* join on closevars key */'; + put '%do idx_pk=1 %to %sysfunc(countw(&close_vars));'; + put '%let idx_val=%scan(&close_vars,&idx_pk);'; + put 'and a.&idx_val=b.&idx_val'; + put '%end;'; + put '/* filter base on tech dates if necessary */'; + put '%if &loadtype=TXTEMPORAL %then %do;'; + put 'where a.&tech_from <=&now and &now < a.&tech_to'; + put '%end;'; + put ';'; + put 'create table bitemp1_closevars2 as'; + put 'select distinct a.*'; + put 'from bitemp1_closevars1 a'; + put 'left join work.bitemp0_append b'; + put 'on 1=1'; + put '/* join on primary key */'; + put '%do idx_pk=1 %to %sysfunc(countw(&pk));'; + put '%let idx_val=%scan(&pk,&idx_pk);'; + put 'and a.&idx_val=b.&idx_val'; + put '%end;'; + put '/* identify removed records by null value in a field in PK but not close_vars'; + put '*/'; + put 'where b.%scan('; + put '%mf_wordsInStr1ButNotStr2(Str1=&pk,Str2=&close_vars),1,%str( )'; + put ') IS NULL'; + put ';'; + put '%if %mf_getattrn(bitemp1_closevars2,NLOBS)>0 %then %do;'; + put '%bitemporal_closeouts('; + put 'tech_from=&tech_from'; + put ',tech_to = &tech_to'; + put ',base_lib=&base_lib'; + put ',base_dsn=&base_dsn'; + put ',append_lib=work'; + put ',append_dsn=bitemp1_closevars2'; + put ',PK=&bus_from &pk'; + put ',NOW=&dbnow'; + put ',loadtarget=&loadtarget'; + put ',loadtype=&loadtype'; + put ')'; + put '%end;'; + put '%end;'; + put '/* return if nothing to load (was just deletes) */'; + put '%if %mf_getattrn(work.bitemp0_append,NLOBS)=0 %then %do;'; + put '%put NOTE:; %put NOTE-;%put NOTE-;%put NOTE-;'; + put '%put NOTE- No updates - just deletes!;'; + put '%put NOTE-;%put NOTE-;%put NOTE-;'; + put '%mp_lockanytable(UNLOCK,'; + put 'lib=&base_lib,ds=&base_dsn,'; + put 'ref=&ETLSOURCE,'; + put 'ctl_ds=&dclib..mpe_lockanytable'; + put ')'; + put '%if %mf_getattrn(&outds_del,NLOBS)>0 %then %do;'; + put '%let user=%mf_getUser();'; + put '/* no emails yet'; + put '%sumo_alerts(ALERT_EVENT=UPDATE'; + put ', ALERT_TARGET=&base_lib..&base_dsn'; + put ', from_user= &user);*/'; + put '%end;'; + put '%return;'; + put '%end;'; + put '/**'; + put '* If applying manual overrides to business dates, then the input table MUST'; + put '* be unique on the PK. Check, and if not - abort.'; + put '*/'; + put '%local msg;'; + put '%if %length(&bus_from_override.&bus_to_override)>0 or &CHECK_UNIQUENESS=YES'; + put '%then %do;'; + put 'proc sort data=work.bitemp0_append out=work.bitemp0_check nodupkey;'; + put 'by &pk;'; + put 'run;'; + put '%if %mf_getattrn(work.bitemp0_check,NLOBS)'; + put 'ne %mf_getattrn(work.bitemp0_append,NLOBS)'; + put '%then %do;'; + put '%let msg=INPUT table &append_lib..&append_dsn is not unique on PK (&pk);'; + put '%mp_lockanytable(UNLOCK,lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE (&msg),'; + put 'ctl_ds=&dclib..mpe_lockanytable'; + put ')'; + put '%mp_abort(msg=&msg,mac=bitemporal_dataloader.sas);'; + put '%end;'; + put '%end;'; + put '/**'; + put '* extract from BASE table. Only want matching records, as could be very BIG.'; + put '* New records are subsequently identified via left join and test for nulls.'; + put '*/'; + put '%local temp_table temp_table2 base_table baselib_schema;'; + put '%put DCNOTE: Extracting matching observations from &base_lib..&base_dsn;'; + put '%if &engine_type=OLEDB %then %do;'; + put '%let temp_table=##BITEMP_&base_dsn;'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then'; + put '%let base_table=(select * from [dbo].&base_dsn'; + put 'where convert(datetime,&SQLNOW) < &tech_to );'; + put '%else %let base_table=[dbo].&base_dsn;'; + put 'proc sql;'; + put 'create table &base_lib.."&temp_table"n as'; + put 'select * from work.bitemp0_append;'; + put '/* open up a connection for pass through SQL */'; + put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; + put 'create table work.bitemp0_base as select * from connection to myAlias('; + put '%end;'; + put '%else %if &engine_type=REDSHIFT or &engine_type=POSTGRES %then %do;'; + put '/* grab schema */'; + put '%let baselib_schema=%mf_getschema(&base_lib);'; + put '%if &baselib_schema.X ne X %then %let baselib_schema=&baselib_schema..;'; + put '/* grab redshift config */'; + put '%local redcnt; %let redcnt=0;'; + put '%if &engine_type=REDSHIFT %then %do;'; + put 'data _null_;'; + put 'set &config_table(where=(var_scope=''DCBL_REDSH'' and var_active=1));'; + put 'x+1;'; + put 'call symputx(cats(''rednm'',x),var_value,''l'');'; + put 'call symputx(cats(''redval'',x),var_value,''l'');'; + put 'call symputx(''redcnt'',x,''l'');'; + put 'run;'; + put '%end;'; + put '/* cannot persist temp tables so must create a temporary permanent table */'; + put '%let temp_table=%mf_getuniquename(prefix=XDCTEMP);'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then'; + put '%let base_table=(select * from &baselib_schema.&base_dsn'; + put 'where timestamp &sqlnow < &tech_to );'; + put '%else %let base_table=&baselib_schema.&base_dsn;'; + put '/* make empty table first - must clone & drop extra cols as autoload is bad */'; + put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; + put 'exec (create table &temp_table (like &baselib_schema.&base_dsn)) by myAlias;'; + put '%if &engine_type=REDSHIFT %then %do;'; + put 'exec (alter table &temp_table alter sortkey none) by myAlias;'; + put '%end;'; + put '%local dropcols;'; + put '%let dropcols=%mf_wordsinstr1butnotstr2('; + put 'str1=%upcase(%mf_getvarlist(&basecopy))'; + put ',str2=%upcase(&pk)'; + put ');'; + put '%if %length(&dropcols>0) %then %do idx_pk=1 %to %sysfunc(countw(&dropcols));'; + put '%put &=dropcols;'; + put '%let idx_val=%scan(&dropcols,&idx_pk);'; + put 'exec(alter table &temp_table drop column &idx_val;) by myAlias;'; + put '%end;'; + put 'exec (alter table &temp_table add column &md5_col varchar(32);) by myAlias;'; + put '/* create view to strip formats and avoid warns in log */'; + put 'data work.vw_bitemp0/view=work.vw_bitemp0;'; + put 'set work.bitemp0_append(keep=&pk &md5_col);'; + put 'format _all_;'; + put 'run;'; + put 'proc append base=&base_lib..&temp_table'; + put '%if &engine_type=REDSHIFT %then %do;'; + put '('; + put '%do idx_pk=1 %to &redcnt;'; + put '&&rednm&idx_pk = &&redval&idxpk'; + put '%end;'; + put ')'; + put '%end;'; + put 'data=work.vw_bitemp0 force nowarn;'; + put 'run;'; + put '/* open up a connection for pass through SQL */'; + put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; + put 'create table work.bitemp0_base as select * from connection to myAlias('; + put '%end;'; + put '%else %if &engine_type=CAS %then %do;'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then'; + put '%let base_table=&base_lib..&base_dsn'; + put '(where=(&tech_from <=&now and &now < &tech_to));'; + put '%else %let base_table=&base_lib..&base_dsn;'; + put '%let temp_table=CASUSER.%mf_getuniquename(prefix=DC);'; + put 'data &temp_table;'; + put 'set work.bitemp0_append;'; + put 'run;'; + put '%let bitemp0base=CASUSER.%mf_getuniquename(prefix=DC);'; + put 'proc fedsql sessref=dcsession;'; + put 'create table &bitemp0base{options replace=true} as'; + put '%end;'; + put '%else %do;'; + put '%let temp_table=work.bitemp0_append;'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then'; + put '%let base_table=&base_lib..&base_dsn'; + put '(where=(&tech_from <=&now and &now < &tech_to));'; + put '%else %let base_table=&base_lib..&base_dsn;'; + put 'proc sql;'; + put 'create table work.bitemp0_base as'; + put '%end;'; + put 'select a.&md5_col /* this identifies NEW records */'; + put ', b.*'; + put '/* assume first PK field cannot be null (if defined in a PK constraint then'; + put 'it definitely cannot be null) */'; + put ', case when b.%scan(&pk,1) IS NULL then 1 else 0 end as ___TMP___NEW_FLG'; + put 'from &baselib_schema.&temp_table a'; + put 'left join &base_table b'; + put 'on 1=1'; + put '%do idx_pk=1 %to &pk_cnt;'; + put '%let idx_val=%scan(&pk,&idx_pk);'; + put 'and a.&idx_val=b.&idx_val'; + put '%end;'; + put '%if &engine_type=OLEDB or &engine_type=REDSHIFT or &engine_type=POSTGRES'; + put '%then %do;'; + put '); proc sql; drop table &base_lib.."&temp_table"n;'; + put '%end;'; + put '%else %if &engine_type=CAS %then %do;'; + put ';'; + put 'quit;'; + put 'data work.bitemp0_base;'; + put 'set &bitemp0base;'; + put 'run;'; + put 'proc sql;'; + put 'drop table &temp_table;'; + put 'drop table &bitemp0base;'; + put '%end;'; + put '%else %do;'; + put ';'; + put '%end;'; + put '/**'; + put '* matching & changed records are those without NULL key values'; + put '* &idx_val resolves to rightmost PK value (loop above)'; + put '*/'; + put '%put syscc (line525)=&syscc, sqlrc=&sqlrc;'; + put '%mp_abort(iftrue= (&syscc gt 0 or &sqlrc>0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc sqlrc=&sqlrc)'; + put ')'; + put '%put hashcols2=&stripcols;'; + put 'proc sql;'; + put 'create table work.bitemp1_current(drop=___TMP___NEW_FLG) as'; + put 'select *'; + put ', put(md5(&stripcols),$hex32.) as &md5_col'; + put 'from work.bitemp0_base (drop=&md5_col)'; + put 'where ___TMP___NEW_FLG=0;'; + put '/**'; + put '* NEW records were identified in ___TMP___NEW_FLG in bitemp0_base'; + put '*/'; + put 'proc sql;'; + put 'create table &outds_add'; + put '(drop=&md5_col'; + put '%if %mf_existvar(work.bitemp0_base, &delete_col) %then %do;'; + put '&delete_col'; + put '%end;'; + put ')'; + put 'as select a.*'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then %do;'; + put ',&now as &tech_from &tech_from_fmt'; + put ',&high_date as &tech_to &tech_to_fmt'; + put '%end;'; + put 'from work.bitemp0_append a /* STAGING records (mix of existing & new) */'; + put ', work.bitemp0_base b /* BASE records (contains null values for new) */'; + put 'where a.&md5_col=b.&md5_col /* took staging md5 across in left join */'; + put 'and b.___TMP___NEW_FLG=1; /* NEW records also identified in bitemp0_base */'; + put '/**'; + put '* identify INSERTS. These are records with the same business key but'; + put '* the bus_from and bus_to value are higher / lower (respectively)'; + put '* such that the existing record needs to be SPLIT to surround the new'; + put '* record.'; + put '* eg: OLD RECORD from=1 to=10'; + put '* NEW RECORD from=5 to=7'; + put '*'; + put '* APPENDED RECORDS:'; + put '* - from=1 to=5'; + put '* - from=5 to=7'; + put '* - from=7 to=10'; + put '*/'; + put '/* inserts cannot happen with TXTEMPORAL */'; + put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL %then %do;'; + put '/* IDENTIFY */'; + put 'create table work.bitemp3_inserts as'; + put 'select b.*'; + put ',a.&bus_from as ___TMP___from'; + put ',a.&bus_to as ___TMP___to'; + put 'from work.bitemp0_append a'; + put ',work.bitemp1_current b'; + put 'where a.&bus_from > b.&bus_from'; + put 'and a.&bus_to < b.&bus_to'; + put '%do idx_pk=1 %to &pk_cnt;'; + put '%let idx_val=%scan(&pk,&idx_pk);'; + put 'and a.&idx_val=b.&idx_val'; + put '%end;'; + put 'order by'; + put '/* compress blanks and then insert commas (as the datetime fields may'; + put 'not be in use) */'; + put '%sysfunc(tranwrd(%sysfunc(compbl('; + put '&pk &bus_from &bus_to &processed'; + put ')),%str( ), %str(,)))'; + put ';'; + put '/* SPLIT */'; + put 'data work.bitemp3a_inserts (drop=___TMP___from ___TMP___retain ___TMP___to) ;'; + put 'set work.bitemp3_inserts;'; + put 'by &pk &bus_from &bus_to &processed;'; + put 'if first.&idx_val then do;'; + put '___TMP___retain=&bus_to;'; + put '&bus_to=___TMP___from;'; + put 'output;'; + put '&bus_to=___TMP___retain;'; + put 'end;'; + put 'if last.&idx_val then do;'; + put '&bus_from=___TMP___to;'; + put 'output;'; + put 'end;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '/* TX temporal load */'; + put 'data work.bitemp3a_inserts;'; + put 'set work.bitemp1_current;'; + put 'stop;'; + put 'run;'; + put '%end;'; + put '/* APPEND */'; + put 'proc sql;'; + put 'create view work.bitemp3a_view as'; + put 'select * from work.bitemp1_current'; + put 'where &md5_col not in (select &md5_col from work.bitemp3a_inserts);'; + put 'data bitemp3b_newbase;'; + put 'set work.bitemp3a_inserts work.bitemp3a_view;'; + put 'run;'; + put '/** do not use! this converts short numerics into 8 bytes'; + put 'proc sql;'; + put 'create table work.bitemp3b_newbase as'; + put 'select * from work.bitemp3a_inserts'; + put 'union corr'; + put 'select * from work.bitemp1_current'; + put 'where &md5_col not in (select &md5_col from work.bitemp3a_inserts);'; + put '*/'; + put '/**'; + put '* identify CHANGED records from staging.'; + put '* Same business key with different temporal dates or md5 value'; + put '* This table must be overlayed onto / into existing business history'; + put '*/'; + put 'proc sql;'; + put 'create table work.bitemp4_updated as select distinct a.*'; + put 'from work.bitemp0_append a'; + put ',work.bitemp3b_newbase b'; + put 'where 1=1'; + put '%do idx_pk=1 %to &pk_cnt;'; + put '%let idx_val=%scan(&pk,&idx_pk);'; + put 'and a.&idx_val=b.&idx_val'; + put '%end;'; + put 'and ( a.&md5_col ne b.&md5_col'; + put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL %then %do;'; + put 'OR (a.&bus_from ne b.&bus_from or a.&bus_to ne b.&bus_to)'; + put '%end;'; + put ')'; + put ';'; + put '/**'; + put '* This section would have been one simple step with union all'; + put '* but that converts short numerics into 8 bytes!'; + put '* so, convoluted alternative to retain the same functionality.'; + put '*/'; + put '/* base records */'; + put 'create view work.bitemp4_prep1 as'; + put 'select ''BASE'' as ___TMP___'; + put ',b.*'; + put 'from work.bitemp4_updated a'; + put ',work.bitemp3b_newbase b'; + put 'where 1'; + put '%do idx_pk=1 %to &pk_cnt;'; + put '%let idx_val=%scan(&pk,&idx_pk);'; + put 'and a.&idx_val=b.&idx_val'; + put '%end;'; + put ';'; + put '/* updated records */'; + put 'create view work.bitemp4_prep2 as'; + put 'select ''STAG'' as ___TMP___ ,*'; + put 'from work.bitemp4_updated;'; + put '/* ensure we only keep columns that appear in both */'; + put '%local bp1 bp2 bp3 bp4;'; + put '%let bp1=%mf_getvarlist(bitemp4_prep1);'; + put '%let bp2=%mf_getvarlist(bitemp4_prep2);'; + put '%let bp3=%mf_wordsInStr1ButNotStr2(Str1=&bp1,Str2=&bp2);'; + put '%let bp4=%mf_wordsInStr1ButNotStr2(Str1=&bp2,Str2=&bp1);'; + put 'data work.bitemp4_prep3/view=bitemp4_prep3;'; + put 'set bitemp4_prep1 bitemp4_prep2;'; + put '%if %length(XX&bp3&bp4)>2 %then %do;'; + put 'drop &bp3 &bp4 ;'; + put '%end;'; + put 'run;'; + put '/* remove duplicates */'; + put 'proc sql;'; + put 'create table work.bitemp4a_allrecs as'; + put 'select distinct *'; + put 'from work.bitemp4_prep3'; + put 'order by'; + put '/* compress blanks and then insert commas (as the datetime fields'; + put 'may not be in use) */'; + put '%sysfunc(tranwrd(%sysfunc(compbl('; + put '&pk &bus_from &bus_to &processed'; + put ')),%str( ), %str(,)))'; + put ';'; + put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL %then %do;'; + put '/* this section aligns the business dates'; + put '(eg for inserts or overlaps in the range) */'; + put 'data work.bitemp4b_firstpass (drop=___TMP___cond ___TMP___from ___TMP___to );'; + put 'set work.bitemp4a_allrecs;'; + put 'by &pk &bus_from &bus_to &processed;'; + put 'retain ___TMP___cond ''Name of Condition'';'; + put 'retain ___TMP___from ___TMP___to 0;'; + put '___TMP___md5lag=lag(&md5_col);'; + put '/* reset retained variables */'; + put 'if first.&idx_val then do;'; + put 'call missing (___TMP___cond, ___TMP___from, ___TMP___to,___TMP___md5lag);'; + put 'end;'; + put 'else do;'; + put '/* if record is identical, carry forward bus_from (and bus_to if higher)*/'; + put 'if &md5_col=___TMP___md5lag then do;'; + put '&bus_from=___TMP___from;'; + put 'if &bus_to<___TMP___to then &bus_to=___TMP___to;'; + put 'end;'; + put 'end;'; + put 'if ___TMP___=''STAG'' then do;'; + put '/* need to carry forward the closing record */'; + put '___TMP___cond=''Condition 1'';'; + put 'end;'; + put 'else if ___TMP___cond=''Condition 1'' then do;'; + put '/* else ensure bus_from starts from prior record bus_to */'; + put 'if &md5_col ne ___TMP___md5lag and &bus_from <= ___TMP___to'; + put 'then &bus_from= ___TMP___to;'; + put '/* new record may replace old record entirely */'; + put 'if &bus_to <= &bus_from then delete;'; + put 'else call missing (___TMP___cond, ___TMP___from, ___TMP___to);'; + put 'end;'; + put '___TMP___from=&bus_from;'; + put '___TMP___to=&bus_to;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '/* keep staged records only */'; + put 'data work.bitemp4b_firstpass;'; + put 'set work.bitemp4a_allrecs;'; + put 'if ___TMP___=''STAG'';'; + put 'run;'; + put '%end;'; + put '/* next phase is to pass through in reverse - so set up the sort statement */'; + put '%local byvar;'; + put '%do idx_pk=1 %to &pk_cnt;'; + put '%let byvar=&byvar descending %scan(&pk,&idx_pk);'; + put '%end;'; + put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL'; + put '%then %let byvar=&byvar descending &bus_from descending &bus_to;'; + put '/* if matching bus dates supplied, need to ensure we also have a sort'; + put 'between BASE and STAGING tables */'; + put '%let byvar=&byvar descending ___TMP___;'; + put 'proc sort data=work.bitemp4b_firstpass out=work.bitemp4c_sort ;'; + put 'by &byvar;'; + put 'run;'; + put '/**'; + put '* Now (in reverse) pass back business start dates'; + put '*/'; + put 'data work.bitemp4d_secondpass;'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then %do;'; + put '&tech_from=&now;'; + put '&tech_to=&high_date;'; + put '%end;'; + put 'set work.bitemp4c_sort ;'; + put 'by &byvar;'; + put 'retain ___TMP___cond ''Name of Condition'';'; + put 'retain ___TMP___from ___TMP___to 0;'; + put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL %then %do;'; + put '/* put / _all_ /;*/'; + put '___TMP___md5lag=lag(&md5_col);'; + put 'if first.&idx_val then do;'; + put '/* reset retained variables */'; + put 'call missing (___TMP___cond,___TMP___from,___TMP___to,___TMP___md5lag);'; + put 'end;'; + put 'else do;'; + put '/* if record is identical, carry back bus_to */'; + put 'if &md5_col=___TMP___md5lag then &bus_to=___TMP___to;'; + put 'end;'; + put 'if ___TMP___=''STAG'' then do;'; + put '/* need to carry forward the closing record */'; + put '___TMP___cond=''Condition 2'';'; + put 'end;'; + put 'else if ___TMP___cond=''Condition 2'' then do;'; + put '/* else ensure bus_to stops at subsequent record bus_from */'; + put 'if &md5_col ne ___TMP___md5lag and &bus_to >= ___TMP___from'; + put 'then &bus_to= ___TMP___from;'; + put '/* new record may replace old record entirely */'; + put 'if &bus_from >= &bus_to then delete;'; + put 'if &bus_from=___TMP___from and &bus_to=___TMP___to then delete;'; + put 'else call missing (___TMP___cond, ___TMP___from, ___TMP___to);'; + put 'end;'; + put '___TMP___from=&bus_from;'; + put '___TMP___to=&bus_to;'; + put '%end;'; + put 'run;'; + put '%put syscc (line600)=&syscc;'; + put '/**'; + put 'There may still be some records (eg old business history) which have not'; + put 'changed.'; + put 'Need to identify these and remove from the append so they are not updated'; + put 'unnecessarily. This is done by generating a new md5 (which INCLUDES the'; + put 'business key) and any matching / identical records are split out (from those'; + put 'that need to be updated).'; + put '*/'; + put '%if &loadtype=BITEMPORAL %then %do;'; + put '%let cat_string=catx(''|'' ,&bus_from,&bus_to);'; + put 'data bitemp5a_lkp (keep=&md5_col);'; + put 'set bitemp0_base;'; + put '/* for BITEMPORAL we need to compare business dates also */'; + put '&md5_col=put(md5(&cat_string!!''|''!!&stripcols),$hex32.);'; + put 'run;'; + put 'data bitemp5b_updates;'; + put 'set bitemp4d_secondpass;'; + put 'if _n_=1 then do;'; + put 'dcl hash md5_lkp(dataset:''bitemp5a_lkp'');'; + put 'md5_lkp.definekey("&md5_col");'; + put 'md5_lkp.definedone();'; + put 'end;'; + put '/* drop old md5 col as will rebuild with new business dates */'; + put '&md5_col=put(md5(&cat_string!!''|''!!&stripcols),$hex32.) ;'; + put 'if md5_lkp.check()=0 then delete;'; + put 'run;'; + put 'proc sql;'; + put '/* get min bus from as will update (close out) all records from this point'; + put '(for that PK)*/'; + put 'create table work.bitemp5d_subquery as'; + put 'select &pk_comma, min(&bus_from)as &bus_from, max(&bus_to) as &bus_to'; + put 'from work.bitemp5b_updates'; + put 'group by &pk_comma;'; + put '/* index has a huge efficiency impact on upcoming nested subquery */'; + put 'create index index1 on work.bitemp5d_subquery(&pk_comma,&bus_from, &bus_to);'; + put '%let lastds=work.bitemp5b_updates;'; + put '%end;'; + put '%else %if &loadtype=TXTEMPORAL or &loadtype=UPDATE %then %do;'; + put 'proc sql;'; + put 'create table work.bitemp5d_subquery as'; + put 'select distinct &pk_comma'; + put 'from bitemp4d_secondpass;'; + put '%let lastds=work.bitemp4d_secondpass;'; + put '%end;'; + put '%else %let lastds=work.bitemp4d_secondpass;'; + put '/* create single append table (an overlapped pre-sert may be classed as'; + put 'both an update AND a new record). Also create temp views that may be'; + put 'used for pre-load analysis. */'; + put 'data &outds_mod;'; + put 'set &lastds(drop=___TMP___: &md5_col);'; + put 'run;'; + put 'data bitemp6_allrecs / view=bitemp6_allrecs;'; + put 'set &outds_mod /* UPDATED records */'; + put '&outds_add /* NEW records */;'; + put 'run;'; + put 'proc sort data=work.bitemp6_allrecs'; + put 'out=work.bitemp6_unique'; + put 'noduprec'; + put 'dupout=work.xx_BADBADBAD;'; + put 'by _all_;'; + put 'run;'; + put '/* we have all our temp tables now so exit if this is all that is needed */'; + put '%if &LOADTARGET ne YES %then %return;'; + put '/* also exit if an err condition exists */'; + put '%put syscc=&syscc;'; + put '%if &syscc>0 %then %do;'; + put '%let msg=Bitemporal transform / job aborted due to SYSCC=&SYSCC status;'; + put '%mp_lockanytable(UNLOCK,lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE (&msg),'; + put 'ctl_ds=&dclib..mpe_lockanytable'; + put ')'; + put '%mp_abort(msg=&msg);'; + put '%end;'; + put '/* final check - abort if a lock has appeared on the target table */'; + put '%mp_lockfilecheck(libds=&base_lib..&base_dsn)'; + put '/**'; + put '* STAGING TABLES PREPARED, ERR CONDITION TESTED FOR.. NOW TO LOAD!!'; + put '*/'; + put '/**'; + put '* First, CLOSE OUT changed records (if not a REPLACE)'; + put '* Note that SAS does not support ANSI standard for UPDATE with a join condition.'; + put '* However - this can be worked around using a nested subquery..'; + put '*/'; + put 'data _null_;'; + put 'putlog "&sysmacroname: CLOSEOUTS commencing";'; + put 'run;'; + put '%if %mf_getattrn(&lastds,NLOBS)=0 %then %do;'; + put 'data _null_;'; + put 'putlog "&sysmacroname: No closeouts needed";'; + put 'run;'; + put '%end;'; + put '%else %if &engine_type=CAS %then %do;'; + put '%mp_abort(iftrue= (&loadtype=BITEMPORAL or &loadtype=TXTEMPORAL)'; + put ',mac=&sysmacroname in &_program'; + put ',msg=%str(&loadtype not yet supported in CAS engine)'; + put ')'; + put '/* create temp table for deletions */'; + put '%local delds;%let delds=%mf_getuniquename(prefix=DC);'; + put 'data casuser.&delds;'; + put 'set work.bitemp5d_subquery;'; + put 'run;'; + put '/* delete the records */'; + put 'proc cas ;'; + put 'table.deleteRows / table={'; + put 'caslib="&base_lib",'; + put 'name="&base_dsn",'; + put 'where="1=1",'; + put 'whereTable={caslib=''CASUSER'',name="&delds"}'; + put '};'; + put 'quit;'; + put '/* drop temp table */'; + put 'proc sql;'; + put 'drop table CASUSER.&delds;'; + put '%end;'; + put '%else %if (&loadtype=BITEMPORAL or &loadtype=TXTEMPORAL or &loadtype=UPDATE)'; + put '%then %do;'; + put 'data _null_;'; + put 'putlog "&sysmacroname: &loadtype operation using &engine_type engine";'; + put 'run;'; + put '%local flexinow;'; + put 'proc sql;'; + put '/* if OLEDB then create a temp table for efficiency */'; + put '%local innertable;'; + put '%if &engine_type=OLEDB %then %do;'; + put '%let innertable=[##BITEMP_&base_dsn];'; + put '%let top_table=[dbo].&base_dsn;'; + put '%let flexinow=&SQLNOW;'; + put 'create table &base_lib.."##BITEMP_&base_dsn"n as'; + put 'select * from work.bitemp5d_subquery;'; + put '/* open up a connection for pass through SQL */'; + put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; + put 'execute('; + put '%end;'; + put '%else %if &engine_type=REDSHIFT or &engine_type=POSTGRES %then %do;'; + put '%let innertable=%mf_getuniquename(prefix=XDCTEMP);'; + put '%let top_table=&baselib_schema.&base_dsn;'; + put '%let flexinow=timestamp &SQLNOW;'; + put '/* make empty table first - must clone & drop extra cols'; + put 'as autoload is bad */'; + put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; + put 'exec (create table &innertable (like &baselib_schema.&base_dsn)) by myAlias;'; + put '%if &engine_type=REDSHIFT %then %do;'; + put 'exec (alter table &innertable alter sortkey none) by myAlias;'; + put '%end;'; + put '%let dropcols=%mf_wordsinstr1butnotstr2('; + put 'str1=%upcase(%mf_getvarlist(&basecopy))'; + put ',str2=%upcase(%mf_getvarlist(work.bitemp5d_subquery))'; + put ');'; + put '%if %length(&dropcols>0) %then %do idx_pk=1 %to %sysfunc(countw(&dropcols));'; + put '%put &=dropcols;'; + put '%let idx_val=%scan(&dropcols,&idx_pk);'; + put 'exec(alter table &innertable drop column &idx_val;) by myAlias;;'; + put '%end;'; + put '/* create view to strip formats and avoid warns in log */'; + put 'data work.vw_bitemp5d/view=work.vw_bitemp5d;'; + put 'set work.bitemp5d_subquery;'; + put 'format _all_;'; + put 'run;'; + put 'proc append base=&base_lib..&innertable ('; + put '%do idx_pk=1 %to &redcnt;'; + put '&&rednm&idx_pk = &&redval&idxpk'; + put '%end;'; + put ')'; + put 'data=work.vw_bitemp5d force nowarn;'; + put 'run;'; + put '/* open up a connection for pass through SQL */'; + put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; + put 'execute('; + put '%end;'; + put '%else %do;'; + put '%let innertable=bitemp5d_subquery;'; + put '%let top_table=&base_lib..&base_dsn;'; + put '%let flexinow=&now;'; + put '%end;'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then %do;'; + put 'update &top_table set &tech_to=&flexinow'; + put '%if %length(&processed)>0 %then %do;'; + put ',&processed=&flexinow'; + put '%end;'; + put 'where &tech_from <= &flexinow and &flexinow < &tech_to and'; + put '%end;'; + put '%else %if &loadtype=UPDATE %then %do;'; + put '/* changed records are deleted then re-appended when doing UPDATEs */'; + put 'delete from &top_table where'; + put '%end;'; + put '%else %do;'; + put '%put %str(ERR)OR: BUSTEMPORAL NOT YET SUPPORTED;'; + put '%let syscc=5;'; + put '%mp_lockanytable(UNLOCK,lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE,'; + put 'ctl_ds=&dclib..mpe_lockanytable'; + put ')'; + put '%goto end_of_macro;'; + put '%end;'; + put '/* perform join inside query as per'; + put 'http://stackoverflow.com/questions/24629793/update-with-a-proc-sql */'; + put 'exists( select 1 from &baselib_schema.&innertable where'; + put '/* loop PK join */'; + put '%do idx_pk=1 %to &pk_cnt;'; + put '%let idx_val=%scan(&pk,&idx_pk);'; + put '&base_dsn..&idx_val=&innertable..&idx_val and'; + put '%end;'; + put '%if &loadtype=BITEMPORAL %then %do;'; + put '&base_dsn..&bus_from >= &innertable..&bus_from'; + put 'and &base_dsn..&bus_to <= &innertable..&bus_to and'; + put '%end;'; + put '/* close the statement */'; + put '1=1);'; + put '%if &engine_type=OLEDB or &engine_type=REDSHIFT or &engine_type=POSTGRES'; + put '%then %do;'; + put ') by myAlias;'; + put 'execute (drop table &baselib_schema.&innertable) by myAlias;'; + put '%end;'; + put '%end;'; + put 'quit;'; + put 'data _null_;'; + put 'putlog "&sysmacroname: Closeout complete";'; + put 'run;'; + put '/**'; + put '* Append the new / updated records'; + put '*/'; + put '%if &engine_type=CAS %then %do;'; + put '/* get varchar variables ready for casting */'; + put '%local vcfmt vcrename vcassign vcdrop;'; + put 'data _null_;'; + put 'set work.bitemp_cols(where=(type=6)) end=last;'; + put 'length vcrename vcassign vcdrop vcfmt $32767 rancol $32;'; + put 'retain vcrename vcassign vcdrop vcfmt;'; + put 'if _n_=1 then vcrename=''(rename=('';'; + put 'rancol=resolve(''%mf_getuniquename()'');'; + put 'vcfmt=trim(vcfmt)!!''length ''!!cats(name)!!'' varchar(*);'';'; + put 'vcrename=trim(vcrename)!!'' ''!!cats(name,''='',rancol);'; + put 'vcassign=cats(vcassign,name,''='',rancol,'';'');'; + put 'vcdrop=cats(vcdrop,''drop ''!!rancol,'';'');'; + put 'if last then do;'; + put 'vcrename=cats(vcrename,''))'');'; + put 'call symputx(''vcfmt'',vcfmt);'; + put 'call symputx(''vcrename'',vcrename);'; + put 'call symputx(''vcassign'',vcassign);'; + put 'call symputx(''vcdrop'',vcdrop);'; + put 'end;'; + put 'run;'; + put '/* prepare a temp cas table with varchars casted */'; + put '%let tmp=%mf_getuniquename();'; + put 'data casuser.&tmp ;'; + put '&vcfmt'; + put 'set work.bitemp6_unique &vcrename;'; + put '&vcassign'; + put '&vcdrop'; + put 'run;'; + put '/* load the table with varchars applied*/'; + put 'data &base_lib..&base_dsn (append=yes )/sessref=dcsession ;'; + put 'set casuser.&tmp;'; + put 'run;'; + put '/* drop temp table */'; + put 'proc sql;'; + put 'drop table CASUSER.&tmp;'; + put '/* this code will not work as regular tables do not have varchars */'; + put '/*'; + put 'proc casutil;'; + put 'load data=work.bitemp6_unique'; + put 'outcaslib="&base_lib" casout="&base_dsn" append ;'; + put 'quit;'; + put '*/'; + put '%end;'; + put '%else %if &engine_type=REDSHIFT or &engine_type=POSTGRES %then %do;'; + put 'proc append base=&base_lib..&base_dsn'; + put '%if &engine_type=REDSHIFT %then %do;'; + put '('; + put '%do idx_pk=1 %to &redcnt;'; + put '&&rednm&idx_pk = &&redval&idxpk'; + put '%end;'; + put ')'; + put '%end;'; + put 'data=bitemp6_unique force nowarn;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put 'proc append base=&base_lib..&base_dsn data=bitemp6_unique force nowarn; run;'; + put '%end;'; + put '%mp_lockanytable(UNLOCK,lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE,'; + put 'ctl_ds=&dclib..mpe_lockanytable'; + put ')'; + put '/* final check on syscc */'; + put '%mp_abort(iftrue= (&syscc >4)'; + put ',mac=&_program'; + put ',msg=%str(!!Upload NOT successful!! Failed on actual update / append stage..)'; + put ')'; + put '%if &outds_audit ne 0 and &LOADTARGET=YES %then %do;'; + put 'data work.vw_outds_orig /view=work.vw_outds_orig;'; + put 'set work.bitemp0_base (drop=&md5_col);'; + put 'where ___TMP___NEW_FLG=0;'; + put 'drop ___TMP___NEW_FLG;'; + put 'run;'; + put '/* update the AUDIT table */'; + put '%if %mf_existds(&outds_audit) %then %do;'; + put 'options mprint;'; + put '%mp_storediffs(&base_lib..&base_dsn'; + put ',work.vw_outds_orig'; + put ',&pk'; + put ',delds=&outds_del'; + put ',modds=&outds_mod'; + put ',appds=&outds_add'; + put ',outds=work.mp_storediffs'; + put ',processed_dttm=&now'; + put ',loadref=%superq(etlsource)'; + put ')'; + put 'data _null_;'; + put 'set work.mp_storediffs;'; + put 'putlog load_ref= libref= dsn= key_hash= tgtvar_nm=;'; + put 'run;'; + put 'proc append base=&outds_audit data=work.mp_storediffs;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc >4)'; + put ',mac=bitemporal_dataloader'; + put ',msg=%str(Problem in audit stage (&outds_audit))'; + put ')'; + put '%let user=%mf_getUser();'; + put '/**'; + put 'Notify as appropriate EMAILS DISABLED'; + put '%sumo_alerts(ALERT_EVENT=UPDATE'; + put ', ALERT_TARGET=&base_lib..&base_dsn'; + put ', from_user= &user);'; + put '*/'; + put '/* monitor BiTemporal usage */'; + put '%if &log=1 %then %do;'; + put '%put syscc=&syscc;'; + put '/* do not perform duration calc in pass through */'; + put '%local dur;'; + put 'data _null_;'; + put 'now=symget(''now'');'; + put 'dur=%sysfunc(datetime())-&now;'; + put 'call symputx(''dur'',dur,''l'');'; + put 'run;'; + put 'proc sql;'; + put 'insert into &dclib..mpe_dataloads'; + put 'set libref=%upcase("&base_lib")'; + put ',DSN=%upcase("&base_dsn")'; + put ',ETLSOURCE="&ETLSOURCE"'; + put ',LOADTYPE="&loadtype"'; + put ',CHANGED_RECORDS=%mf_getattrn(&lastds,NLOBS)'; + put ',NEW_RECORDS=%mf_getattrn(&outds_add,NLOBS)'; + put ',DELETED_RECORDS=%mf_getattrn(&outds_del,NLOBS)'; + put ',DURATION=&dur'; + put ',MAC_VER="v&ver"'; + put ',user_nm="&user"'; + put ',PROCESSED_DTTM=&now;'; + put 'quit;'; + put '%put syscc=&syscc;'; + put '%end;'; + put '%end_of_macro:'; + put '%mend bitemporal_dataloader;'; + put '%macro mm_getlibs('; + put 'outds=work.mm_getLibs'; + put ')/*/STORE SOURCE*/;'; + put '/*'; + put 'flags:'; + put 'OMI_SUCCINCT (2048) Do not return attributes with null values.'; + put 'OMI_GET_METADATA (256) Executes a GetMetadata call for each object that'; + put 'is returned by the GetMetadataObjects method.'; + put 'OMI_ALL_SIMPLE (8) Gets all of the attributes of the requested object.'; + put '*/'; + put 'data _null_;'; + put 'flags=2048+256+8;'; + put 'call symputx(''flags'',flags,''l'');'; + put 'run;'; + put '* use a temporary fileref to hold the response;'; + put 'filename response temp;'; + put '/* get list of libraries */'; + put 'proc metadata in='; + put ''''; + put '$METAREPOSITORY'; + put 'SASLibrary'; + put ''; + put 'SAS'; + put '&flags'; + put ''; + put ''''; + put 'out=response;'; + put 'run;'; + put '/* write the response to the log for debugging */'; + put 'data _null_;'; + put 'infile response lrecl=32767;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '/* create an XML map to read the response */'; + put 'filename sxlemap temp;'; + put 'data _null_;'; + put 'file sxlemap;'; + put 'put '''';'; + put 'put '''';'; + put 'put ''//Objects/SASLibrary'';'; + put 'put ''>17'';'; + put 'put ''//Objects/SASLibrary/@Id'';'; + put 'put ''256>'';'; + put 'put ''//Objects/SASLibrary/@Name'';'; + put 'put ''8'';'; + put 'put ''//Objects/SASLibrary/@Libref'';'; + put 'put ''>12'';'; + put 'put ''//Objects/SASLibrary/@Engine'';'; + put 'put ''
'';'; + put 'run;'; + put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; + put '/* sort the response by library name */'; + put 'proc sort data=_XML_.saslibrary out=&outds;'; + put 'by libraryname;'; + put 'run;'; + put '/* clear references */'; + put 'filename sxlemap clear;'; + put 'filename response clear;'; + put 'libname _XML_ clear;'; + put '%mend mm_getlibs;'; + put '%macro dc_getlibs(outds=mm_getlibs);'; + put '/* take current repository */'; + put '%local repo repocnt x;'; + put '%let repo=%sysfunc(getoption(metarepository));'; + put '/* get list of repositories and filter */'; + put '%mm_getrepos(outds=repos)'; + put '%let repocnt=0;'; + put 'data repos;'; + put 'set repos;'; + put 'where repositorytype in(''CUSTOM'',''FOUNDATION'')'; + put '& upcase(name) ne "%upcase(&repo)";'; + put 'keep id name ;'; + put 'call symputx(''repo''!!cats(_n_),name,''l'');'; + put 'call symputx(''repocnt'',_n_,''l'');'; + put 'run;'; + put '%put _local_;'; + put '%mm_getlibs(outds=&outds)'; + put '%do x=1 %to &repocnt;'; + put 'options metarepository=&&repo&x;'; + put '%mm_getlibs(outds=&outds.a)'; + put 'proc append base=&outds data=&outds.a;'; + put 'run;'; + put '%end;'; + put 'options metarepository=&repo;'; + put '%mend dc_getlibs;'; + put '%macro mpe_refreshlibs();'; + put '%dc_getlibs(outds=work.mm_getLibs)'; + put 'proc sort data=mm_getlibs;'; + put 'by libraryref libraryname;'; + put 'run;'; + put 'data libs0;'; + put 'set mm_getlibs;'; + put 'by libraryref;'; + put 'if "%mf_getplatform()"="SASMETA" then do;'; + put '/* note - invalid libraries can result in exception errors. If this happens,'; + put 'configure the dc_viewlib_check variable to NO in Data Controller Settings */'; + put 'rc=libname(libraryref,,''meta'',cats(''library="'',libraryname,''";''));'; + put 'drop rc;'; + put 'if rc ne 0 then do;'; + put 'putlog "NOTE: Library " libraryname " does not exist!!";'; + put 'putlog (_all_) (=);'; + put 'delete;'; + put 'end;'; + put 'end;'; + put 'if not first.libraryref then delete;'; + put 'run;'; + put 'proc sql;'; + put 'create table libs1 as'; + put 'select distinct libname'; + put ',engine'; + put ',path'; + put ',level'; + put ',sysname'; + put ',sysvalue'; + put 'from dictionary.libnames'; + put 'order by libname, level,engine,path;'; + put 'data libs2;'; + put 'set libs1;'; + put 'length tran $1024;'; + put 'if missing(sysname) then sysname=''Missing'';'; + put 'select(sysname);'; + put 'when(''Access Permission'') tran=''Permissions'';'; + put 'when(''Owner Name'') tran=''Owner'';'; + put 'when(''Schema/Owner'') tran=''schema'';'; + put 'otherwise tran=sysname;'; + put 'end;'; + put 'run;'; + put 'proc transpose data=libs2 out=libs3;'; + put 'by libname level engine path;'; + put 'var sysvalue;'; + put 'id tran;'; + put 'run;'; + put 'data libs4(rename=(libname=libref));'; + put 'length paths $8192 perms owners schemas $500 permissions owner schema $1024;'; + put 'if _n_=1 then call missing (of _all_);'; + put 'set libs3;'; + put 'by libname;'; + put 'if engine=''V9'' then engine=''BASE'';'; + put 'if first.libname then do;'; + put 'retain paths perms owners schemas;'; + put 'paths=''(''!!quote(trim(path));'; + put 'perms=permissions;'; + put 'owners=owner;'; + put 'schemas=schema;'; + put 'end;'; + put 'else do;'; + put 'paths=trim(paths)!!'' ''!!quote(trim(path));'; + put 'perms=trim(perms)!!'',''!!trim(permissions);'; + put 'owners=trim(owners)!!'',''!!trim(owner);'; + put 'schemas=trim(schemas)!!'' ''!!trim(schema);'; + put 'end;'; + put 'if last.libname then do;'; + put 'paths=trim(paths)!!'')'';'; + put 'schemas=cats(schemas);'; + put 'output;'; + put 'end;'; + put 'keep libname engine paths perms owners schemas;'; + put 'run;'; + put 'proc sql;'; + put 'create table libs5 as'; + put 'select a.libref'; + put ',coalescec(b.engine,a.engine) as engine length=32'; + put ',b.libraryname as libname'; + put ',a.paths'; + put ',a.perms'; + put ',a.owners'; + put ',a.schemas'; + put ',b.libraryid as libid'; + put 'from libs4 a'; + put 'left join libs0 b'; + put 'on upcase(a.libref)=upcase(b.libraryref)'; + put 'where libref not in (''SASWORK'',''WORK'',''SASUSER'',''CASUSER'',''TEMP'',''STPSAMP'''; + put ',''MAPSGFK'');'; + put '%bitemporal_dataloader(base_lib=&dc_libref'; + put ',base_dsn=MPE_DATACATALOG_LIBS'; + put ',append_dsn=libs5'; + put ',PK=LIBREF'; + put ',etlsource=&_program'; + put ',loadtype=TXTEMPORAL'; + put ',tech_from=TX_FROM'; + put ',tech_to=TX_TO'; + put ',dclib=&dc_libref'; + put ')'; + put '%mend mpe_refreshlibs;'; + put '/** @cond */'; + put '%macro mf_existfeature(feature'; + put ')/*/STORE SOURCE*/;'; + put '%let feature=%upcase(&feature);'; + put '%local platform;'; + put '%let platform=%mf_getplatform();'; + put '%if &feature= %then %do;'; + put '%put No feature was requested for detection;'; + put '%end;'; + put '%else %if &feature=COLCONSTRAINTS %then %do;'; + put '%if "%substr(&sysver,1,1)"="4" or "%substr(&sysver,1,1)"="5" %then 0;'; + put '%else 1;'; + put '%end;'; + put '%else %if &feature=PROCLUA %then %do;'; + put '/* https://blogs.sas.com/content/sasdummy/2015/08/03/using-lua-within-your-sas-programs */'; + put '%if &platform=SASVIYA %then 1;'; + put '%else %if "&sysver"="9.2" or "&sysver"="9.3" %then 0;'; + put '%else %if "&SYSVLONG" < "9.04.01M3" %then 0;'; + put '%else 1;'; + put '%end;'; + put '%else %if &feature=DBMS_MEMTYPE %then %do;'; + put '/* does dbms_memtype exist in dictionary.tables? */'; + put '%if "%substr(&sysver,1,1)"="4" or "%substr(&sysver,1,1)"="5" %then 0;'; + put '%else 1;'; + put '%end;'; + put '%else %if &feature=EXPORTXLS %then %do;'; + put '/* is it possible to PROC EXPORT an excel file? */'; + put '%if "%substr(&sysver,1,1)"="4" or "%substr(&sysver,1,1)"="5" %then 1;'; + put '%else %if %sysfunc(sysprod(SAS/ACCESS Interface to PC Files)) = 1 %then 1;'; + put '%else 0;'; + put '%end;'; + put '%else %do;'; + put '-1'; + put '%put &sysmacroname: &feature not found;'; + put '%end;'; + put '%mend mf_existfeature;'; + put '/** @endcond */'; + put '%macro mp_getconstraints(lib=WORK'; + put ',ds='; + put ',outds=mp_getconstraints'; + put ',mdebug=0'; + put ')/*/STORE SOURCE*/;'; + put '%let lib=%upcase(&lib);'; + put '%let ds=%upcase(&ds);'; + put '/**'; + put '* Cater for environments where sashelp.vcncolu is not available'; + put '*/'; + put '%if %sysfunc(exist(sashelp.vcncolu,view))=0 %then %do;'; + put 'proc sql;'; + put 'create table &outds('; + put 'libref char(8)'; + put ',TABLE_NAME char(32)'; + put ',constraint_type char(8) label=''Constraint Type'''; + put ',constraint_name char(32) label=''Constraint Name'''; + put ',column_name char(32) label=''Column'''; + put ',constraint_order num'; + put ');'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Neither dictionary tables nor sashelp provides a constraint order column,'; + put '* however they DO arrive in the correct order. So, create the col.'; + put '**/'; + put '%local vw;'; + put '%let vw=%mf_getuniquename(prefix=mp_getconstraints_vw_);'; + put 'data &vw /view=&vw;'; + put 'set sashelp.vcncolu;'; + put 'where table_catalog="&lib";'; + put '/* use retain approach to reset the constraint order with each constraint */'; + put 'length tmp $1000;'; + put 'retain tmp;'; + put 'drop tmp;'; + put 'if tmp ne catx(''|'',table_catalog,table_name,constraint_name) then do;'; + put 'constraint_order=1;'; + put 'end;'; + put 'else constraint_order+1;'; + put 'tmp=catx(''|'',table_catalog, table_name,constraint_name);'; + put 'run;'; + put '/* must use SQL as proc datasets does not support length changes */'; + put 'proc sql noprint;'; + put 'create table &outds as'; + put 'select upcase(a.TABLE_CATALOG) as libref'; + put ',upcase(a.TABLE_NAME) as TABLE_NAME'; + put ',a.constraint_type'; + put ',a.constraint_name'; + put ',b.column_name'; + put ',b.constraint_order'; + put 'from dictionary.TABLE_CONSTRAINTS a'; + put 'left join &vw b'; + put 'on upcase(a.TABLE_CATALOG)=upcase(b.TABLE_CATALOG)'; + put 'and upcase(a.TABLE_NAME)=upcase(b.TABLE_NAME)'; + put 'and a.constraint_name=b.constraint_name'; + put '/**'; + put '* We cannot apply this clause to the underlying dictionary table. See:'; + put '* https://communities.sas.com/t5/SAS-Programming/Unexpected-Where-Clause-behaviour-in-dictionary-TABLE/m-p/771554#M244867'; + put '* cannot use`where calculated libref="&lib"` either as it will STILL execute'; + put '* all the underlying constraint queries, causing exception errors in some'; + put '* cases: https://github.com/sasjs/core/issues/283'; + put '*/'; + put 'where a.TABLE_CATALOG="&lib"'; + put '%if "&ds" ne "" %then %do;'; + put 'and upcase(a.TABLE_NAME)="&ds"'; + put 'and upcase(b.TABLE_NAME)="&ds"'; + put '%end;'; + put 'order by libref, table_name, constraint_name, constraint_order'; + put ';'; + put '/* tidy up */'; + put '%mp_dropmembers('; + put '&vw,'; + put 'iftrue=(&mdebug=0)'; + put ')'; + put '%mend mp_getconstraints;'; + put '%macro mpe_refreshtables(lib,ds=#all);'; + put '%let lib=%upcase(&lib);'; + put '%let ds=%upcase(&ds);'; + put '%local engine; %let engine=%mf_getengine(&lib);'; + put '%local schema; %let schema=%mf_getschema(&lib);'; + put '%put running &sysmacroname &lib(&engine &schema) for &ds;'; + put 'proc sql;'; + put 'create table cols as'; + put 'select libname as libref'; + put ',upcase(memname) as dsn'; + put ',memtype'; + put ',upcase(name) as name'; + put ',type'; + put ',length'; + put ',varnum'; + put ',label'; + put ',format'; + put ',idxusage'; + put ',notnull'; + put 'from dictionary.columns'; + put 'where upcase(libname)="&lib"'; + put '%if &ds ne #ALL %then %do;'; + put 'and upcase(memname)="&ds"'; + put '%end;'; + put ';'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc afer &lib cols extraction)'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc afer &lib indexes extraction)'; + put ')'; + put '%if &engine=SQLSVR %then %do;'; + put 'proc sql;'; + put 'connect using &lib;'; + put 'create table work.indexes as'; + put 'select * from connection to &lib('; + put 'select'; + put 's.name as SchemaName,'; + put 't.name as memname,'; + put 'tc.name as name,'; + put 'ic.key_ordinal as KeyOrderNr'; + put 'from'; + put 'sys.schemas s'; + put 'inner join sys.tables t on s.schema_id=t.schema_id'; + put 'inner join sys.indexes i on t.object_id=i.object_id'; + put 'inner join sys.index_columns ic on i.object_id=ic.object_id'; + put 'and i.index_id=ic.index_id'; + put 'inner join sys.columns tc on ic.object_id=tc.object_id'; + put 'and ic.column_id=tc.column_id'; + put 'where i.is_primary_key=1'; + put 'and s.name=%str(%'')&schema%str(%'')'; + put 'order by t.name, ic.key_ordinal ;'; + put ');disconnect from &lib;'; + put 'create table finalcols as'; + put 'select a.*'; + put ',case when b.name is not null then 1 else 0 end as pk_ind'; + put 'from work.cols a'; + put 'left join work.indexes b'; + put 'on a.dsn=b.memname'; + put 'and upcase(a.name)=upcase(b.name)'; + put 'order by libref,dsn;'; + put '%end;'; + put '%else %do;'; + put '%local dsn;'; + put '%if &ds = #ALL %then %let dsn=;'; + put '%mp_getconstraints(lib=&lib.,ds=&dsn,outds=work.constraints)'; + put '/* extract cols that are clearly primary keys */'; + put 'proc sql;'; + put 'create table work.pk4sure as'; + put 'select libref'; + put ',table_name'; + put ',constraint_name'; + put ',constraint_order'; + put ',column_name as name'; + put 'from work.constraints'; + put 'where constraint_type=''PRIMARY'''; + put 'order by 1,2,3,4;'; + put '/* extract unique constraints where every col is also NOT NULL */'; + put 'proc sql;'; + put 'create table work.sum as'; + put 'select a.libref'; + put ',a.table_name'; + put ',a.constraint_name'; + put ',count(a.column_name) as unq_cnt'; + put ',count(b.column_name) as nul_cnt'; + put 'from work.constraints(where=(constraint_type =''UNIQUE'')) a'; + put 'left join work.constraints(where=(constraint_type =''NOT NULL'')) b'; + put 'on a.libref=b.libref'; + put 'and a.table_name=b.table_name'; + put 'and a.column_name=b.column_name'; + put 'group by 1,2,3'; + put 'having unq_cnt=nul_cnt;'; + put '/* extract cols from the relevant unique constraints */'; + put 'create table work.pkdefault as'; + put 'select a.libref'; + put ',a.table_name'; + put ',a.constraint_name'; + put ',b.constraint_order'; + put ',b.column_name as name'; + put 'from work.sum a'; + put 'left join work.constraints(where=(constraint_type =''UNIQUE'')) b'; + put 'on a.libref=b.libref'; + put 'and a.table_name=b.table_name'; + put 'and a.constraint_name=b.constraint_name'; + put 'order by 1,2,3,4;'; + put '/* extract cols from the relevant unique INDEXES */'; + put 'create table work.pkfromindex as'; + put 'select libname as libref'; + put ',memname as table_name'; + put ',indxname as constraint_name'; + put ',indxpos as constraint_order'; + put ',name'; + put 'from dictionary.indexes'; + put 'where nomiss=''yes'' and unique=''yes'' and upcase(libname)="&lib"'; + put '%if &ds ne #ALL %then %do;'; + put 'and upcase(memname)="&ds"'; + put '%end;'; + put 'order by 1,2,3,4;'; + put '/* create one table */'; + put 'data work.finalpks;'; + put 'set pkdefault pk4sure pkfromindex;'; + put 'pk_ind=1;'; + put '/* if there are multiple unique constraints, take the first */'; + put 'by libref table_name constraint_name;'; + put 'retain keepme;'; + put 'if first.table_name then keepme=1;'; + put 'if first.constraint_name and not first.table_name then keepme=0;'; + put 'if keepme=1;'; + put 'run;'; + put '/* join back to starting table */'; + put 'proc sql;'; + put 'create table finalcols as'; + put 'select a.*'; + put ',b.constraint_order'; + put ',case when b.pk_ind=1 then 1 else 0 end as pk_ind'; + put 'from work.cols a'; + put 'left join work.finalpks b'; + put 'on a.libref=b.libref'; + put 'and a.dsn=b.table_name'; + put 'and upcase(a.name)=upcase(b.name)'; + put 'order by libref,dsn,constraint_order;'; + put '%end;'; + put '/* load columns */'; + put '%bitemporal_dataloader(base_lib=&mpelib'; + put ',base_dsn=mpe_datacatalog_vars'; + put ',append_dsn=finalcols'; + put ',PK=LIBREF DSN NAME'; + put ',etlsource=&sysmacroname'; + put ',loadtype=TXTEMPORAL'; + put ',tech_from=TX_FROM'; + put ',tech_to=TX_TO'; + put '%if &ds ne #ALL %then %do;'; + put ',close_vars=LIBREF DSN'; + put '%end;'; + put ',dclib=&mpelib'; + put ')'; + put '/* prepare tables */'; + put 'proc sql;'; + put 'create table work.tabs as select'; + put 'libname as libref'; + put ',upcase(memname) as dsn'; + put ',memtype'; + put '%if %mf_existfeature(DBMS_MEMTYPE)=1 %then %do;'; + put ',dbms_memtype'; + put '%end;'; + put '%else %do;'; + put ',''n/a'' as dbms_memtype format=$32.'; + put '%end;'; + put ',typemem'; + put ',memlabel'; + put ',nvar'; + put ',compress'; + put 'from dictionary.tables'; + put 'where upcase(libname)="&lib"'; + put '%if &ds ne #ALL %then %do;'; + put 'and upcase(memname)="&ds"'; + put '%end;'; + put ';'; + put 'data tabs2;'; + put 'set finalcols;'; + put 'length pk_fields $512;'; + put 'retain pk_fields;'; + put 'by libref dsn;'; + put 'if first.dsn then pk_fields='''';'; + put 'if pk_ind=1 then pk_fields=catx('' '',pk_fields,name);'; + put 'if last.dsn then output;'; + put 'run;'; + put 'proc sql;'; + put 'create table work.finaltabs as'; + put 'select a.libref'; + put ',a.dsn'; + put ',a.memtype'; + put ',a.dbms_memtype'; + put ',a.typemem'; + put ',a.memlabel'; + put ',a.nvar'; + put ',a.compress'; + put ',b.pk_fields'; + put 'from work.tabs a'; + put 'left join work.tabs2 b'; + put 'on a.libref=b.libref'; + put 'and a.dsn=b.dsn;'; + put '%bitemporal_dataloader(base_lib=&mpelib'; + put ',base_dsn=mpe_datacatalog_tabs'; + put ',append_dsn=finaltabs'; + put ',PK=LIBREF DSN'; + put ',etlsource=&sysmacroname'; + put ',loadtype=TXTEMPORAL'; + put ',tech_from=TX_FROM'; + put ',tech_to=TX_TO'; + put ',dclib=&mpelib'; + put '%if &ds ne #ALL %then %do;'; + put ',close_vars=LIBREF'; + put '%end;'; + put ')'; + put '/* prepare table frequently changing attributes */'; + put 'proc sql;'; + put '%if &engine=SQLSVR %then %do;'; + put 'connect using &lib;'; + put 'create table work.attrs as select * from connection to &lib('; + put 'SELECT SCHEMA_NAME(schema_id) as ''schema'', name, create_date, modify_date'; + put 'FROM sys.tables ;'; + put ');'; + put 'create table work.nobs as select * from connection to &lib('; + put 'SELECT SCHEMA_NAME(A.schema_id) AS ''schema'''; + put ',A.Name, AVG(B.rows) AS ''RowCount'''; + put 'FROM sys.objects A'; + put 'INNER JOIN sys.partitions B ON A.object_id = B.object_id'; + put 'WHERE A.type = ''U'''; + put 'GROUP BY A.schema_id, A.Name'; + put ');'; + put 'disconnect from &lib;'; + put 'create table statustabs as select'; + put 'a.libref'; + put ',a.dsn'; + put ',b.create_date as crdate'; + put ',b.modify_date as modate'; + put ',. as filesize'; + put ',c.RowCount as nobs'; + put 'from work.tabs a'; + put 'left join work.attrs(where=(schema="&schema")) b'; + put 'on upcase(a.dsn)=upcase(b.name)'; + put 'left join work.nobs(where=(schema="&schema")) c'; + put 'on upcase(a.dsn)=upcase(c.name);'; + put '%end;'; + put '%else %do;'; + put 'create table statustabs as select'; + put 'libname as libref'; + put ',upcase(memname) as dsn'; + put ',crdate'; + put ',modate'; + put ',filesize'; + put ',nobs'; + put 'from dictionary.tables'; + put 'where upcase(libname)="&lib"'; + put '%if &ds ne #ALL %then %do;'; + put 'and upcase(memname)="&ds"'; + put '%end;'; + put ';'; + put '%end;'; + put '%bitemporal_dataloader(base_lib=&mpelib'; + put ',base_dsn=mpe_datastatus_tabs'; + put ',append_dsn=statustabs'; + put ',PK=LIBREF DSN'; + put ',etlsource=&sysmacroname'; + put ',loadtype=TXTEMPORAL'; + put ',tech_from=TX_FROM'; + put ',tech_to=TX_TO'; + put ',dclib=&mpelib'; + put '%if &ds ne #ALL %then %do;'; + put ',close_vars=LIBREF'; + put '%end;'; + put ')'; + put '%if &ds = #ALL %then %do;'; + put 'proc sql;'; + put 'create table statuslibs as select'; + put 'libref'; + put ',sum(filesize) as libsize'; + put ',count(*) as table_cnt'; + put 'from statustabs'; + put 'group by 1;'; + put '%bitemporal_dataloader(base_lib=&mpelib'; + put ',base_dsn=mpe_datastatus_libs'; + put ',append_dsn=statuslibs'; + put ',PK=LIBREF'; + put ',etlsource=&sysmacroname'; + put ',loadtype=TXTEMPORAL'; + put ',tech_from=TX_FROM'; + put ',tech_to=TX_TO'; + put ',dclib=&mpelib'; + put ')'; + put '%end;'; + put '%mend mpe_refreshtables;'; + put '%macro dc_refreshcatalog(libref);'; + put '/* take current repository */'; + put '%local repo repocnt xx;'; + put '%let repo=%sysfunc(getoption(metarepository));'; + put '/* get list of repositories and filter */'; + put '%mm_getrepos(outds=repos)'; + put '%let repocnt=0;'; + put 'data repos;'; + put 'set repos;'; + put 'put (_all_)(=);'; + put 'where repositorytype in(''CUSTOM'',''FOUNDATION'');'; + put 'keep id name ;'; + put 'call symputx(cats(''repo'',_n_),name,''l'');'; + put 'call symputx(''repocnt'',_n_,''l'');'; + put 'run;'; + put '%put &sysmacroname #&libref#;'; + put '%if #&libref# ne ## %then %do;'; + put '%put &sysmacroname: assigning specific libref, &libref;'; + put '%dc_assignlib(WRITE,&libref) /* write just in order to assign direct lib */'; + put '%mpe_refreshlibs()'; + put '%mpe_refreshtables(&libref)'; + put '%end;'; + put '%else %do xx=1 %to &repocnt;'; + put 'options metarepository=&&repo&xx;'; + put '%mpe_refreshlibs()'; + put '/* get libs to be ignored */'; + put '%local ignorelist;'; + put 'proc sql noprint;'; + put 'select var_value into: ignorelist'; + put 'from &mpelib..MPE_CONFIG'; + put 'where var_scope=''DC_CATALOG'''; + put 'and var_name="DC_IGNORELIBS"'; + put 'and &dc_dttmtfmt. < TX_TO'; + put 'and var_active=1;'; + put '/* get all libs */'; + put '%let libcnt=0;'; + put 'data libraries;'; + put 'set &mpelib..mpe_datacatalog_libs;'; + put 'where &dc_dttmtfmt. le TX_TO;'; + put 'if index("&ignorelist",''|''!!upcase(trim(libref))!!''|'')=0;'; + put 'i+1;'; + put 'call symputx(cats(''lib'',i),libref);'; + put 'call symputx(''libcnt'',i);'; + put 'run;'; + put '%local i;'; + put '%do i=1 %to &libcnt;'; + put '%dc_assignlib(WRITE,&&lib&i)'; + put '%mpe_refreshtables(&&lib&i)'; + put '%end;'; + put '%end;'; + put 'options metarepository=&repo;'; + put '%mend dc_refreshcatalog;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file refreshlibinfo.sas'; + put '@brief Refresh the Data Catalog for a particular library'; + put '@details When showing library info in the VIEW menu, the data is taken from'; + put 'the Data Catalog tables. These may be empty or outdated, and so this service'; + put 'allows end users to run a refresh of the data.'; + put '

Service Inputs

'; + put '
lib2refresh
'; + put 'Should contain the libref to be refreshed.'; + put '|libref:$8.|'; + put '|---|'; + put '|SOMELIB|'; + put '

Service Outputs

'; + put '
libinfo
'; + put '|engine $|libname $|paths $|perms $|owners $|schemas $ |libid $|libsize $|table_cnt |'; + put '|---|---|---|---|---|---|---|---|---|'; + put '|V9|SOMELIB|"some/path"|rwxrwxr-x|sassrv|` `|` `|636MB|33|'; + put '

SAS Macros

'; + put '@li dc_assignlib.sas'; + put '@li dc_refreshcatalog.sas'; + put '@li mp_abort.sas'; + put '@version 9.3'; + put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; + put 'downloaded from here: https://4gl.uk/dcdeploy'; + put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; + put 'and may not be re-distributed or re-sold without the express permission of'; + put '4GL Apps Ltd.'; + put '**/'; + put '%mpeinit()'; + put '%webout(FETCH)'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',msg=%str(syscc=&syscc Problem on startup)'; + put ')'; + put '%let libref=;'; + put 'data _null_;'; + put 'set work.lib2refresh;'; + put 'call symputx(''libref'',libref);'; + put 'run;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',msg=%str(syscc=&syscc Problem with inputs - was lib2refresh object sent?)'; + put ')'; + put '%dc_assignlib(WRITE,&libref)'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',msg=%str(syscc=&syscc after lib assignment)'; + put ')'; + put '%dc_refreshcatalog(&libref)'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',msg=%str(syscc=&syscc Problem when running the catalog refresh)'; + put ')'; + put '/* get libinfo */'; + put 'proc sql;'; + put 'create table work.libinfo as'; + put 'select a.engine,'; + put 'a.libname,'; + put 'a.paths,'; + put 'a.perms,'; + put 'a.owners,'; + put 'a.schemas,'; + put 'a.libid,'; + put 'b.libsize,'; + put 'b.table_cnt'; + put 'from &mpelib..mpe_datacatalog_libs(where=(&dc_dttmtfmt. lt tx_to)) a'; + put 'inner join &mpelib..mpe_datastatus_libs(where=(&dc_dttmtfmt. lt tx_to)) b'; + put 'on a.libref=b.libref'; + put 'where a.libref="&libref";'; + put '%webout(OPEN)'; + put '%webout(OBJ,libinfo)'; + put '%webout(CLOSE)'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=registeruser; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Files

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as FMTCAT,'; + put 'FMTNAME'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'LENGTH num'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.length as MAXW'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put ')))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] workobs= (0) When set to a positive integer, will create a new'; + put 'output object (WORK) which contains this number of observations from all'; + put 'tables in the WORK library.'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX,workobs=0'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&workobs) > 0 %then %do;'; + put '/* if debug mode, send back first XX records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10'; + put ',maxobs=&workobs'; + put ')'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file registeruser.sas'; + put '@brief Registers a new user in Data Controller'; + put '@details New users are logged after accepting EULA terms.'; + put '

SAS Macros

'; + put '@li mf_getuser.sas'; + put '@li mp_abort.sas'; + put '@li mpeinit.sas'; + put '@version 9.2'; + put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; + put 'downloaded from here: https://4gl.uk/dcdeploy'; + put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; + put 'and may not be re-distributed or re-sold without the express permission of'; + put '4GL Apps Ltd.'; + put '**/'; + put '%mpeinit()'; + put '%let userid=%mf_getuser();'; + put '/* confirm the user is not registered */'; + put '%let isRegistered=0;'; + put 'proc sql noprint;'; + put 'select count(*) into: isregistered'; + put 'from &mpelib..mpe_users'; + put 'where user_id="&userid";'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem accessing &mpelib..mpe_users table)'; + put ')'; + put '%mp_abort(iftrue= (&isregistered > 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(User &userid is already registered on &mpelib..mpe_users!)'; + put ')'; + put 'data work.append;'; + put 'if 0 then set &mpelib..mpe_users;'; + put 'user_id=symget(''userid'');'; + put 'registered_dt=today();'; + put 'last_seen_dt=today();'; + put 'run;'; + put 'proc append base=&mpelib..mpe_users data=work.append;'; + put '%let isRegistered=0;'; + put 'proc sql noprint;'; + put 'select count(*) into: isregistered'; + put 'from &mpelib..mpe_users'; + put 'where user_id="&userid";'; + put '%mp_abort(iftrue= (&syscc ne 0 or &isregistered ne 1)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem appending to &mpelib..mpe_users table)'; + put ')'; + put 'data work.return;'; + put 'msg=''SUCCESS'';'; + put 'run;'; + put '%webout(OPEN)'; + put '%webout(OBJ,return)'; + put '%webout(CLOSE)'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=startupservice; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Files

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as FMTCAT,'; + put 'FMTNAME'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'LENGTH num'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.length as MAXW'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put ')))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] workobs= (0) When set to a positive integer, will create a new'; + put 'output object (WORK) which contains this number of observations from all'; + put 'tables in the WORK library.'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX,workobs=0'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&workobs) > 0 %then %do;'; + put '/* if debug mode, send back first XX records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10'; + put ',maxobs=&workobs'; + put ')'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '%macro mm_getGroups('; + put 'user='; + put ',outds=work.mm_getGroups'; + put ',repo=foundation'; + put ',mDebug=0'; + put ')/*/STORE SOURCE*/;'; + put '%local mD oldrepo;'; + put '%let oldrepo=%sysfunc(getoption(metarepository));'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing mm_getGroups.sas;'; + put '%&mD.put _local_;'; + put '/* on some sites, user / group info is in a different metadata repo to the'; + put 'default */'; + put '%if &oldrepo ne &repo %then %do;'; + put 'options metarepository=&repo;'; + put '%end;'; + put '%if %length(&user)=0 %then %do;'; + put 'data &outds (keep=groupuri groupname groupdesc);'; + put 'length groupuri groupname groupdesc group_or_role $256;'; + put 'call missing(of _all_);'; + put 'i+1;'; + put 'do while'; + put '(metadata_getnobj("omsobj:IdentityGroup?@Id contains ''.''",i,groupuri)>0);'; + put 'rc=metadata_getattr(groupuri, "Name", groupname);'; + put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; + put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; + put 'if Group_or_Role = ''UserGroup'' then output;'; + put 'i+1;'; + put 'end;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put 'data &outds (keep=groupuri groupname groupdesc);'; + put 'length uri groupuri groupname groupdesc group_or_role $256;'; + put 'call missing(of _all_);'; + put 'rc=metadata_getnobj("omsobj:Person?@Name=''&user''",1,uri);'; + put 'if rc<=0 then do;'; + put 'putlog "%str(WARN)ING: rc=" rc "&user not found "'; + put '", or there was an issue reading the repository.";'; + put 'stop;'; + put 'end;'; + put 'a=1;'; + put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; + put 'if grpassn in (-3,-4) then do;'; + put 'putlog "%str(WARN)ING: No metadata groups found for &user";'; + put 'output;'; + put 'end;'; + put 'else do while (grpassn > 0);'; + put 'rc=metadata_getattr(groupuri, "Name", groupname);'; + put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; + put 'a+1;'; + put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; + put 'if Group_or_Role = ''UserGroup'' then output;'; + put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; + put 'end;'; + put 'run;'; + put '%end;'; + put '%if &oldrepo ne &repo %then %do;'; + put 'options metarepository=&oldrepo;'; + put '%end;'; + put '%mend mm_getGroups;'; + put '%macro dc_getusergroups(user=,outds=mm_getgroups);'; + put '%global dc_repo_users;'; + put '%if &dc_repo_users= %then %let dc_repo_users=foundation;'; + put '%mm_getgroups(user=&user,outds=&outds,repo=&dc_repo_users)'; + put '%mend dc_getusergroups;'; + put '%macro mpe_getgroups(user=,outds=);'; + put '%if not %symexist(dc_repo_users) %then %let dc_repo_users=foundation;'; + put '%dc_getusergroups(user=&user,outds=&outds)'; + put 'data;'; + put 'length groupname groupdesc $256;'; + put 'set &dc_libref..mpe_groups;'; + put 'where &dc_dttmtfmt. lt tx_to;'; + put 'where also upcase(user_name)="%upcase(&user)";'; + put 'groupname=group_name;'; + put 'groupdesc=group_desc;'; + put 'keep groupname groupdesc;'; + put 'run;'; + put 'data &outds;'; + put 'set &syslast &outds(keep=groupname groupdesc);'; + put 'run;'; + put '%mend mpe_getgroups;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file startupservice.sas'; + put '@brief List the libraries and tables the mp-editor user can access'; + put '@details If user is in a control group (&mpeadmins, configured in mpeinit.sas)'; + put 'then they have access to all libraries / tables. Otherwise a join is made'; + put 'to the &mpelib..mp_editor_access table.'; + put 'This service is also callable from EUCs - just add EUCDLM= parameter.'; + put 'EUCDLM values: TAB or CSV'; + put '

SAS Macros

'; + put '@li mf_getuser.sas'; + put '@li mpe_getgroups.sas'; + put '@li mp_abort.sas'; + put '@li mpeinit.sas'; + put '@version 9.2'; + put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; + put 'downloaded from here: https://4gl.uk/dcdeploy'; + put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; + put 'and may not be re-distributed or re-sold without the express permission of'; + put '4GL Apps Ltd.'; + put '**/'; + put '%mpeinit()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Issue on startup in startupService)'; + put ')'; + put '%let userid=%mf_getuser();'; + put '%put userid is &userid;'; + put '%mpe_getgroups(user=&userid,outds=groups)'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Issue with Groups syscc=&syscc for user &userid)'; + put ')'; + put '/* check if user is registered or not */'; + put '%let isRegistered=0;'; + put 'proc sql noprint;'; + put 'select count(*) into: isregistered'; + put 'from &mpelib..mpe_users'; + put 'where user_id="&userid";'; + put '/* get number of registered users */'; + put '%let registerCount=0;'; + put 'select count(*) into: registercount'; + put 'from &mpelib..mpe_users'; + put 'where last_seen_dt>%sysfunc(today())-365;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem accessing &mpelib..mpe_users table)'; + put ')'; + put '%global dc_restrict_editrecord;'; + put 'data work.globvars;'; + put 'dclib="&mpelib";'; + put 'sas9lineage_enabled=1;'; + put 'isregistered=&isregistered;'; + put 'registercount=®isterCount;'; + put 'dc_admin_group="&mpeadmins";'; + put '/* fetched from mpe_config in dc_getsettings */'; + put 'licence_key="&dc_licence_key";'; + put 'activation_key="&dc_activation_key";'; + put 'dc_restrict_editrecord="&dc_restrict_editrecord";'; + put 'run;'; + put '%macro mstp_mpeditorstartup();'; + put 'data _null_;'; + put 'putlog "entering &sysmacroname";'; + put 'run;'; + put 'proc sql noprint;'; + put '/* update last seen, if seen */'; + put '%if &isregistered>0 %then %do;'; + put 'update &mpelib..mpe_users'; + put 'set last_seen_dt=%sysfunc(today())'; + put 'where user_id="&userid";'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem updating &mpelib..mpe_users table)'; + put ')'; + put '%local admin_check all_cnt;'; + put 'select count(*) into: admin_check'; + put 'from groups'; + put 'where groupname="&mpeadmins";'; + put 'select count(*) into: all_cnt'; + put 'from &mpelib..mpe_security'; + put 'where &dc_dttmtfmt. lt tx_to'; + put 'and ACCESS_LEVEL in (''EDIT'')'; + put 'and libref=''*ALL*'''; + put 'and SAS_GROUP in (select groupname from groups);'; + put '%if &admin_check >0 or &all_cnt>0 %then %do;'; + put 'create table sasDatasets as'; + put 'select distinct libref, dsn'; + put 'from &mpelib..mpe_tables'; + put 'where &dc_dttmtfmt. lt tx_to'; + put 'order by 1;'; + put '%end;'; + put '%else %do;'; + put 'create table sasDatasets as'; + put 'select distinct a.libref,a.dsn'; + put 'from &mpelib..mpe_tables a'; + put 'left join &mpelib..mpe_security b'; + put 'on a.libref=b.libref'; + put 'and a.dsn=b.dsn'; + put 'where &dc_dttmtfmt. lt a.tx_to'; + put 'and &dc_dttmtfmt. lt b.tx_to'; + put 'and b.ACCESS_LEVEL in (''EDIT'')'; + put 'and b.SAS_GROUP in (select groupname from groups)'; + put 'order by 1;'; + put '%end;'; + put '%mend mstp_mpeditorstartup;'; + put '%mstp_mpeditorstartup()'; + put 'create table saslibs as'; + put 'select distinct libref'; + put 'from &syslast;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(issue with security validation)'; + put ')'; + put '%webout(OPEN)'; + put '%webout(OBJ,sasDatasets)'; + put '%webout(OBJ,saslibs)'; + put '%webout(OBJ,globvars)'; + put '%webout(CLOSE)'; + put '%mpeterm()'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=validatefilter; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Files

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as FMTCAT,'; + put 'FMTNAME'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'LENGTH num'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.length as MAXW'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put ')))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] workobs= (0) When set to a positive integer, will create a new'; + put 'output object (WORK) which contains this number of observations from all'; + put 'tables in the WORK library.'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX,workobs=0'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&workobs) > 0 %then %do;'; + put '/* if debug mode, send back first XX records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10'; + put ',maxobs=&workobs'; + put ')'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '%macro mf_isblank(param'; + put ')/*/STORE SOURCE*/;'; + put '%sysevalf(%superq(param)=,boolean)'; + put '%mend mf_isblank;'; + put '%macro mp_dropmembers('; + put 'list /* space separated list of datasets / views */'; + put ',libref=WORK /* can only drop from a single library at a time */'; + put ',iftrue=%str(1=1)'; + put ')/*/STORE SOURCE*/;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%if %mf_isblank(&list) %then %do;'; + put '%put NOTE: nothing to drop!;'; + put '%return;'; + put '%end;'; + put 'proc datasets lib=&libref nolist;'; + put 'delete &list;'; + put 'delete &list /mtype=view;'; + put 'run;'; + put '%mend mp_dropmembers;'; + put '%macro removecolsfromwork(col);'; + put '/* only an issue if debug mode enabled */'; + put '%global _debug;'; + put '%if &_debug ge 131 %then %do;'; + put '%let col=%upcase(&col);'; + put '%local memlist;'; + put 'proc sql noprint;'; + put 'select distinct memname into: memlist'; + put 'separated by '' '''; + put 'from dictionary.columns'; + put 'where libname=''WORK'' and upcase(name)="&col";'; + put '%if %mf_isblank(&memlist) %then %return;'; + put '%mp_dropmembers(list=&memlist)'; + put '%end;'; + put '%mend removecolsfromwork;'; + put '%macro mm_assignlib('; + put 'libref'; + put ',mAbort=HARD'; + put ')/*/STORE SOURCE*/;'; + put '%local mp_abort msg;'; + put '%let mp_abort=0;'; + put '%if %sysfunc(libref(&libref)) %then %do;'; + put 'data _null_;'; + put 'length liburi LibName msg $200;'; + put 'call missing(of _all_);'; + put 'nobj=metadata_getnobj("omsobj:SASLibrary?@Libref=''&libref''",1,liburi);'; + put 'if nobj=1 then do;'; + put 'rc=metadata_getattr(liburi,"Name",LibName);'; + put '/* now try and assign it */'; + put 'if libname("&libref",,''meta'',cats(''liburi="'',liburi,''";'')) ne 0 then do;'; + put 'putlog "&libref could not be assigned";'; + put 'putlog liburi=;'; + put '/**'; + put '* Fetch the system message for display in the abort modal. This is'; + put '* not always helpful though. One example, previously received:'; + put '* NOTE: Libref XX refers to the same library metadata as libref XX.'; + put '*/'; + put 'msg=sysmsg();'; + put 'if msg=:''ERROR: Libref SAVE is not assigned.'' then do;'; + put 'msg=catx(" ",'; + put '"Could not assign %upcase(&libref).",'; + put '"Please check metadata permissions! Libname:",libname,'; + put '"Liburi:",liburi'; + put ');'; + put 'end;'; + put 'else if msg="ERROR: User does not have appropriate authorization "!!'; + put '"level for library SAVE."'; + put 'then do;'; + put 'msg=catx(" ",'; + put '"ERROR: User does not have appropriate authorization level",'; + put '"for library %upcase(&libref), libname:",libname,'; + put '"Liburi:",liburi'; + put ');'; + put 'end;'; + put 'call symputx(''msg'',msg,''l'');'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1,''l'');'; + put 'end;'; + put 'else do;'; + put 'put (_all_)(=);'; + put 'call symputx(''libname'',libname,''L'');'; + put 'call symputx(''liburi'',liburi,''L'');'; + put 'end;'; + put 'end;'; + put 'else if nobj>1 then do;'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; + put 'call symputx(''msg'',"More than one library with libref=&libref");'; + put 'end;'; + put 'else do;'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; + put 'call symputx(''msg'',"Library &libref not found in metadata");'; + put 'end;'; + put 'run;'; + put '%put NOTE: &msg;'; + put '%end;'; + put '%else %do;'; + put '%put NOTE: Library &libref is already assigned;'; + put '%end;'; + put '%mp_abort(iftrue= (&mp_abort=1)'; + put ',mac=mm_assignlib.sas'; + put ',msg=%superq(msg)'; + put ')'; + put '%mend mm_assignlib;'; + put '/** @cond */'; + put '%macro mf_getengine(libref'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid engnum rc engine;'; + put '/* in case the parameter is a libref.tablename, pull off just the libref */'; + put '%let libref = %upcase(%scan(&libref, 1, %str(.)));'; + put '%let dsid=%sysfunc('; + put 'open(sashelp.vlibnam(where=(libname="%upcase(&libref)")),i)'; + put ');'; + put '%if (&dsid ^= 0) %then %do;'; + put '%let engnum=%sysfunc(varnum(&dsid,ENGINE));'; + put '%let rc=%sysfunc(fetch(&dsid));'; + put '%let engine=%sysfunc(getvarc(&dsid,&engnum));'; + put '%put &libref. ENGINE is &engine.;'; + put '%let rc= %sysfunc(close(&dsid));'; + put '%end;'; + put '%upcase(&engine)'; + put '%mend mf_getengine;'; + put '/** @endcond */'; + put '%macro mm_assigndirectlib('; + put 'libref /* libref to assign from metadata */'; + put ',open_passthrough= /* provide an alias to produce the'; + put 'CONNECT TO statement for the'; + put 'relevant external database */'; + put ',sql_options= /* add any options to add to proc sql statement eg outobs='; + put '(only valid for pass through) */'; + put ',mDebug=0'; + put ',mAbort=0'; + put ')/*/STORE SOURCE*/;'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing mm_assigndirectlib.sas;'; + put '%&mD.put _local_;'; + put '%if &mAbort=1 %then %let mAbort=;'; + put '%else %let mAbort=%str(*);'; + put '%&mD.put NOTE: Creating direct (non META) connection to &libref library;'; + put '%local cur_engine;'; + put '%let cur_engine=%mf_getengine(&libref);'; + put '%if &cur_engine ne META and &cur_engine ne %then %do;'; + put '%put NOTE: &libref already has a direct (&cur_engine) libname connection;'; + put '%return;'; + put '%end;'; + put '%else %if %upcase(&libref)=WORK %then %do;'; + put '%put NOTE: We already have a direct connection to WORK :-) ;'; + put '%return;'; + put '%end;'; + put '/* need to determine the library ENGINE first */'; + put '%local engine;'; + put 'data _null_;'; + put 'length lib_uri engine $256;'; + put 'call missing (of _all_);'; + put '/* get URI for the particular library */'; + put 'rc1=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put '/* get the Engine attribute of the previous object */'; + put 'rc2=metadata_getattr(lib_uri,''Engine'',engine);'; + put 'putlog "mm_assigndirectlib for &libref:" rc1= lib_uri= rc2= engine=;'; + put 'call symputx("liburi",lib_uri,''l'');'; + put 'call symputx("engine",engine,''l'');'; + put 'run;'; + put '/* now obtain engine specific connection details */'; + put '%if &engine=BASE %then %do;'; + put '%&mD.put NOTE: Retrieving BASE library path;'; + put 'data _null_;'; + put 'length up_uri $256 path cat_path $1024;'; + put 'retain cat_path;'; + put 'call missing (of _all_);'; + put '/* get all the filepaths of the UsingPackages association */'; + put 'i=1;'; + put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; + put 'do while (rc3>0);'; + put '/* get the DirectoryName attribute of the previous object */'; + put 'rc4=metadata_getattr(up_uri,''DirectoryName'',path);'; + put 'if i=1 then path = ''("''!!trim(path)!!''" '';'; + put 'else path ='' "''!!trim(path)!!''" '';'; + put 'cat_path = trim(cat_path) !! " " !! trim(path) ;'; + put 'i+1;'; + put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; + put 'end;'; + put 'cat_path = trim(cat_path) !! ")";'; + put '&mD.putlog "NOTE: Getting physical path for &libref library";'; + put '&mD.putlog rc3= up_uri= rc4= cat_path= path=;'; + put '&mD.putlog "NOTE: Libname cmd will be:";'; + put '&mD.putlog "libname &libref" cat_path;'; + put 'call symputx("filepath",cat_path,''l'');'; + put 'run;'; + put '%if %sysevalf(&sysver<9.4) %then %do;'; + put 'libname &libref &filepath;'; + put '%end;'; + put '%else %do;'; + put '/* apply the new filelocks option to cater for temporary locks */'; + put 'libname &libref &filepath filelockwait=5;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=REMOTE %then %do;'; + put 'data x;'; + put 'length rcCon rcProp rc k 3 uriCon uriProp PropertyValue PropertyName'; + put 'Delimiter $256 properties $2048;'; + put 'retain properties;'; + put 'rcCon = metadata_getnasn("&liburi", "LibraryConnection", 1, uriCon);'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", 1, uriProp);'; + put 'k = 1;'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; + put 'do while (rcProp > 0);'; + put 'rc = metadata_getattr(uriProp , "DefaultValue",PropertyValue);'; + put 'rc = metadata_getattr(uriProp , "PropertyName",PropertyName);'; + put 'rc = metadata_getattr(uriProp , "Delimiter",Delimiter);'; + put 'properties = trim(properties) !! " " !! trim(PropertyName)'; + put '!! trim(Delimiter) !! trim(PropertyValue);'; + put 'output;'; + put 'k+1;'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; + put 'end;'; + put '%&mD.put NOTE: Getting properties for REMOTE SHARE &libref library;'; + put '&mD.put _all_;'; + put '%&mD.put NOTE: Libname cmd will be:;'; + put '%&mD.put libname &libref &engine &properties slibref=&libref;'; + put 'call symputx ("properties",trim(properties),''l'');'; + put 'run;'; + put 'libname &libref &engine &properties slibref=&libref;'; + put '%end;'; + put '%else %if &engine=OLEDB %then %do;'; + put '%&mD.put NOTE: Retrieving OLEDB connection details;'; + put 'data _null_;'; + put 'length domain datasource provider properties schema'; + put 'connx_uri domain_uri conprop_uri lib_uri schema_uri value $256.;'; + put 'call missing (of _all_);'; + put '/* get source connection ID */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; + put '/* get connection domain */'; + put 'rc1=metadata_getnasn(connx_uri,''Domain'',1,domain_uri);'; + put 'rc2=metadata_getattr(domain_uri,''Name'',domain);'; + put '&mD.putlog / ''NOTE: '' // ''NOTE- connection id: '' connx_uri ;'; + put '&mD.putlog ''NOTE- domain: '' domain;'; + put '/* get DSN and PROVIDER from connection properties */'; + put 'i=0;'; + put 'do until (rc<0);'; + put 'i+1;'; + put 'rc=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; + put 'rc2=metadata_getattr(conprop_uri,''Name'',value);'; + put 'if value=''Connection.OLE.Property.DATASOURCE.Name.xmlKey.txt'' then do;'; + put 'rc3=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; + put 'end;'; + put 'else if value=''Connection.OLE.Property.PROVIDER.Name.xmlKey.txt'' then do;'; + put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',provider);'; + put 'end;'; + put 'else if value=''Connection.OLE.Property.PROPERTIES.Name.xmlKey.txt'' then'; + put 'do;'; + put 'rc5=metadata_getattr(conprop_uri,''DefaultValue'',properties);'; + put 'end;'; + put 'end;'; + put '&mD.putlog ''NOTE- dsn/provider/properties: '' /'; + put 'datasource provider properties;'; + put '&mD.putlog ''NOTE- schema: '' schema // ''NOTE-'';'; + put '/* get SCHEMA */'; + put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,lib_uri);'; + put 'rc7=metadata_getattr(lib_uri,''SchemaName'',schema);'; + put 'call symputx(''SQL_domain'',domain,''l'');'; + put 'call symputx(''SQL_dsn'',datasource,''l'');'; + put 'call symputx(''SQL_provider'',provider,''l'');'; + put 'call symputx(''SQL_properties'',properties,''l'');'; + put 'call symputx(''SQL_schema'',schema,''l'');'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put 'proc sql &sql_options;'; + put 'connect to OLEDB as &open_passthrough(INSERT_SQL=YES'; + put '/* need additional properties to make this work */'; + put 'properties=(''Integrated Security''=SSPI'; + put '''Persist Security Info''=True'; + put '%sysfunc(compress(%str(&SQL_properties),%str(())))'; + put ')'; + put 'DATASOURCE=&sql_dsn PROMPT=NO'; + put 'PROVIDER=&sql_provider SCHEMA=&sql_schema CONNECTION = GLOBAL);'; + put '%end;'; + put '%else %do;'; + put 'LIBNAME &libref OLEDB PROPERTIES=&sql_properties'; + put 'DATASOURCE=&sql_dsn PROVIDER=&sql_provider SCHEMA=&sql_schema'; + put '%if %length(&sql_domain)>0 %then %do;'; + put 'authdomain="&sql_domain"'; + put '%end;'; + put 'connection=shared;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=ODBC %then %do;'; + put '&mD.%put NOTE: Retrieving ODBC connection details;'; + put 'data _null_;'; + put 'length connx_uri conprop_uri value datasource up_uri schema $256.;'; + put 'call missing (of _all_);'; + put '/* get source connection ID */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; + put '/* get connection properties */'; + put 'i=0;'; + put 'do until (rc2<0);'; + put 'i+1;'; + put 'rc2=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; + put 'rc3=metadata_getattr(conprop_uri,''Name'',value);'; + put 'if value=''Connection.ODBC.Property.DATASRC.Name.xmlKey.txt'' then do;'; + put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; + put 'rc2=-1;'; + put 'end;'; + put 'end;'; + put '/* get SCHEMA */'; + put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,up_uri);'; + put 'rc7=metadata_getattr(up_uri,''SchemaName'',schema);'; + put '&mD.put rc= connx_uri= rc2= conprop_uri= rc3= value= rc4= datasource='; + put 'rc6= up_uri= rc7= schema=;'; + put 'call symputx(''SQL_schema'',schema,''l'');'; + put 'call symputx(''SQL_dsn'',datasource,''l'');'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put 'proc sql &sql_options;'; + put 'connect to ODBC as &open_passthrough'; + put '(INSERT_SQL=YES DATASRC=&sql_dsn. CONNECTION=global);'; + put '%end;'; + put '%else %do;'; + put 'libname &libref ODBC DATASRC=&sql_dsn SCHEMA=&sql_schema;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=POSTGRES %then %do;'; + put '%put NOTE: Obtaining POSTGRES library details;'; + put 'data _null_;'; + put 'length database ignore_read_only_columns direct_exe preserve_col_names'; + put 'preserve_tab_names server schema authdomain user password'; + put 'prop name value uri urisrc $256.;'; + put 'call missing (of _all_);'; + put '/* get database value */'; + put 'prop=''Connection.DBMS.Property.DB.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,database,"");'; + put 'if database^='''' then database=''database=''!!quote(trim(database));'; + put 'call symputx(''database'',database,''l'');'; + put '/* get IGNORE_READ_ONLY_COLUMNS value */'; + put 'prop=''Library.DBMS.Property.DBIROC.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,ignore_read_only_columns,"");'; + put 'if ignore_read_only_columns^='''' then ignore_read_only_columns='; + put '''ignore_read_only_columns=''!!ignore_read_only_columns;'; + put 'call symputx(''ignore_read_only_columns'',ignore_read_only_columns,''l'');'; + put '/* get DIRECT_EXE value */'; + put 'prop=''Library.DBMS.Property.DirectExe.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,direct_exe,"");'; + put 'if direct_exe^='''' then direct_exe=''direct_exe=''!!direct_exe;'; + put 'call symputx(''direct_exe'',direct_exe,''l'');'; + put '/* get PRESERVE_COL_NAMES value */'; + put 'prop=''Library.DBMS.Property.PreserveColNames.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,preserve_col_names,"");'; + put 'if preserve_col_names^='''' then preserve_col_names='; + put '''preserve_col_names=''!!preserve_col_names;'; + put 'call symputx(''preserve_col_names'',preserve_col_names,''l'');'; + put '/* get PRESERVE_TAB_NAMES value */'; + put '/* be careful with PRESERVE_TAB_NAMES=YES - it will mean your table will'; + put 'become case sensitive!! */'; + put 'prop=''Library.DBMS.Property.PreserveTabNames.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,preserve_tab_names,"");'; + put 'if preserve_tab_names^='''' then preserve_tab_names='; + put '''preserve_tab_names=''!!preserve_tab_names;'; + put 'call symputx(''preserve_tab_names'',preserve_tab_names,''l'');'; + put '/* get SERVER value */'; + put 'if metadata_getnasn("&liburi","LibraryConnection",1,uri)>0 then do;'; + put 'prop=''Connection.DBMS.Property.SERVER.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop(uri,prop,server,"");'; + put 'end;'; + put 'if server^='''' then server=''server=''!!quote(cats(server));'; + put 'call symputx(''server'',server,''l'');'; + put '/* get SCHEMA value */'; + put 'if metadata_getnasn("&liburi","UsingPackages",1,uri)>0 then do;'; + put 'rc=metadata_getattr(uri,"SchemaName",schema);'; + put 'end;'; + put 'if schema^='''' then schema=''schema=''!!schema;'; + put 'call symputx(''schema'',schema,''l'');'; + put '/* get AUTHDOMAIN value */'; + put '/* this is only useful if the user account contains that auth domain'; + put 'if metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then do;'; + put 'rc=metadata_getnasn(uri,"Domain",1,urisrc);'; + put 'rc=metadata_getattr(urisrc,"Name",authdomain);'; + put 'end;'; + put 'if authdomain^='''' then authdomain=''authdomain=''!!quote(trim(authdomain));'; + put '*/'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/* get user & pass */'; + put 'if authdomain='''' & metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then'; + put 'do;'; + put 'rc=metadata_getattr(uri,"UserID",user);'; + put 'rc=metadata_getattr(uri,"Password",password);'; + put 'end;'; + put 'if user^='''' then do;'; + put 'user=''user=''!!quote(trim(user));'; + put 'password=''password=''!!quote(trim(password));'; + put 'end;'; + put 'call symputx(''user'',user,''l'');'; + put 'call symputx(''password'',password,''l'');'; + put '&md.put _all_;'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put '%put %str(WARN)ING: Passthrough option for postgres not yet supported;'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put '%if &mdebug=1 %then %do;'; + put '%put NOTE: Executing the following:/;'; + put '%put NOTE- libname &libref POSTGRES &database &ignore_read_only_columns;'; + put '%put NOTE- &direct_exe &preserve_col_names &preserve_tab_names;'; + put '%put NOTE- &server &schema &authdomain &user &password //;'; + put '%end;'; + put 'libname &libref POSTGRES &database &ignore_read_only_columns &direct_exe'; + put '&preserve_col_names &preserve_tab_names &server &schema &authdomain'; + put '&user &password;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=ORACLE %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null_;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema $256;'; + put 'call missing (of _all_);'; + put '/* get auth domain */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; + put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; + put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/* path */'; + put 'rc=metadata_getprop(assocuri1,'; + put '''Connection.Oracle.Property.PATH.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref ORACLE path=&path schema=&schema;'; + put '%put NOTE- authdomain=&authdomain;'; + put '%put NOTE-;'; + put 'libname &libref ORACLE path=&path schema=&schema authdomain=&authdomain;'; + put '%end;'; + put '%else %if &engine=SQLSVR %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; + put 'passwd $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; + put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; + put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; + put 'call symputx(''user'',userid,''l'');'; + put 'call symputx(''pass'',passwd,''l'');'; + put '/* path */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; + put 'rc=metadata_getprop(assocuri2,'; + put '''Connection.SQL.Property.Datasrc.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref SQLSVR datasrc=&path schema=&schema ;'; + put '%put NOTE- user="&user" pass="XXX";'; + put '%put NOTE-;'; + put 'libname &libref SQLSVR datasrc=&path schema=&schema user="&user" pass="&pass";'; + put '%end;'; + put '%else %if &engine=TERADATA %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; + put 'passwd $256;'; + put 'call missing (of _all_);'; + put '/* get auth domain */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; + put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; + put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/*'; + put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; + put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; + put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; + put 'call symputx(''user'',userid,''l'');'; + put 'call symputx(''pass'',passwd,''l'');'; + put '*/'; + put '/* path */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; + put 'rc=metadata_getprop(assocuri2,'; + put '''Connection.Teradata.Property.SERVER.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref TERADATA server="&path" schema=&schema ;'; + put '%put NOTe- authdomain=&authdomain;'; + put '%put NOTE-;'; + put 'libname &libref TERADATA server="&path" schema=&schema authdomain=&authdomain;'; + put '%end;'; + put '%else %if &engine= %then %do;'; + put '%put NOTE: Libref &libref is not registered in metadata;'; + put '%&mAbort.mp_abort('; + put 'msg=%str(ERR)OR: Libref &libref is not registered in metadata'; + put ',mac=mm_assigndirectlib.sas);'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put '%put %str(WARN)ING: Engine &engine is currently unsupported;'; + put '%put %str(WARN)ING- Please contact your support team.;'; + put '%return;'; + put '%end;'; + put '%mend mm_assigndirectlib;'; + put '%macro mm_getrepos('; + put 'outds=work.mm_getrepos'; + put ')/*/STORE SOURCE*/;'; + put '* use a temporary fileref to hold the response;'; + put 'filename response temp;'; + put '/* get list of libraries */'; + put 'proc metadata in='; + put '"1"'; + put 'out=response;'; + put 'run;'; + put '/* write the response to the log for debugging */'; + put '/*'; + put 'data _null_;'; + put 'infile response lrecl=1048576;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '*/'; + put '/* create an XML map to read the response */'; + put 'filename sxlemap temp;'; + put 'data _null_;'; + put 'file sxlemap;'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository";'; + put 'put "";'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Id";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Name";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Desc";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@DefaultNS";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryType";'; + put 'put "characterstring20";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryFormat";'; + put 'put "characterstring10";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@Access";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@CurrentAccess";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@PauseState";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Path";'; + put 'put "";'; + put 'put "characterstring256";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Engine";'; + put 'put "";'; + put 'put "characterstring8";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Options";'; + put 'put "";'; + put 'put "characterstring32";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataCreated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataUpdated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put ''
'';'; + put 'run;'; + put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; + put 'proc sort data= _XML_.SASRepos out=&outds;'; + put 'by name;'; + put 'run;'; + put '/* clear references */'; + put 'filename sxlemap clear;'; + put 'filename response clear;'; + put 'libname _XML_ clear;'; + put '%mend mm_getrepos;'; + put '%macro dc_assignlib(type,libref,passthru=);'; + put '%put &sysmacroname entry vars:;'; + put '%put _local_;'; + put '/* take current repository */'; + put '%local repo repocnt x;'; + put '%let repo=%sysfunc(getoption(metarepository));'; + put '/* get list of repositories and filter */'; + put '%mm_getrepos(outds=repos)'; + put '%let repocnt=0;'; + put 'data repos;'; + put 'set repos;'; + put 'where repositorytype in(''CUSTOM'',''FOUNDATION'')'; + put '& upcase(name) ne "%upcase(&repo)";'; + put 'keep id name ;'; + put 'call symputx(cats(''repo'',_n_),name,''l'');'; + put 'call symputx(''repocnt'',_n_,''l'');'; + put 'run;'; + put '/* find out which of these repositories has the libref we are searching for */'; + put '%local lib_uri;'; + put '%let lib_uri=NOTFOUND;'; + put 'data _null_; /* check default repo first */'; + put 'length lib_uri $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; + put 'run;'; + put '%if &lib_uri=NOTFOUND %then %do;'; + put '%do x=1 %to &repocnt;'; + put 'options metarepository=&&repo&x;'; + put 'data _null_;'; + put 'length lib_uri $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; + put 'run;'; + put '%if &lib_uri ne NOTFOUND %then %let x=%eval(&repocnt+1);'; + put '%end;'; + put '%end;'; + put '%if &type=READ %then %do;'; + put '%mm_assignlib(&libref)'; + put '%end;'; + put '%else %if &type=WRITE %then %do;'; + put '%mm_assigndirectlib(&libref,open_passthrough=&passthru)'; + put '%end;'; + put 'options metarepository=&repo;'; + put '%mend dc_assignlib;'; + put '%macro mf_getattrn('; + put 'libds'; + put ',attr'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid rc;'; + put '%let dsid=%sysfunc(open(&libds,is));'; + put '%if &dsid = 0 %then %do;'; + put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; + put '%put %sysfunc(sysmsg());'; + put '-1'; + put '%end;'; + put '%else %do;'; + put '%sysfunc(attrn(&dsid,&attr))'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%mend mf_getattrn;'; + put '%macro mf_getvalue(libds,variable,filter=1'; + put ')/*/STORE SOURCE*/;'; + put '%if %mf_getattrn(&libds,NLOBS)>0 %then %do;'; + put '%local dsid rc &variable;'; + put '%let dsid=%sysfunc(open(&libds(where=(&filter))));'; + put '%syscall set(dsid);'; + put '%let rc = %sysfunc(fetch(&dsid));'; + put '%let rc = %sysfunc(close(&dsid));'; + put '%trim(&&&variable)'; + put '%end;'; + put '%mend mf_getvalue;'; + put '%macro mddl_sas_cntlout(libds=WORK.CNTLOUT);'; + put 'proc sql;'; + put 'create table &libds('; + put 'FMTNAME char(32) label=''Format name'''; + put '/*'; + put 'to accommodate larger START values, mp_loadformat.sas will need the'; + put 'SQL dependency removed (proc sql needs to accommodate 3 index values in'; + put 'a 32767 ibufsize limit)'; + put '*/'; + put ',START char(10000) label=''Starting value for format'''; + put ',END char(32767) label=''Ending value for format'''; + put ',LABEL char(32767) label=''Format value label'''; + put ',MIN num length=3 label=''Minimum length'''; + put ',MAX num length=3 label=''Maximum length'''; + put ',DEFAULT num length=3 label=''Default length'''; + put ',LENGTH num length=3 label=''Format length'''; + put ',FUZZ num label=''Fuzz value'''; + put ',PREFIX char(2) label=''Prefix characters'''; + put ',MULT num label=''Multiplier'''; + put ',FILL char(1) label=''Fill character'''; + put ',NOEDIT num length=3 label=''Is picture string noedit?'''; + put ',TYPE char(1) label=''Type of format'''; + put ',SEXCL char(1) label=''Start exclusion'''; + put ',EEXCL char(1) label=''End exclusion'''; + put ',HLO char(13) label=''Additional information'''; + put ',DECSEP char(1) label=''Decimal separator'''; + put ',DIG3SEP char(1) label=''Three-digit separator'''; + put ',DATATYPE char(8) label=''Date/time/datetime?'''; + put ',LANGUAGE char(8) label=''Language for date strings'''; + put ');'; + put '%mend mddl_sas_cntlout;'; + put '%macro mf_getuniquename(prefix=MC);'; + put '&prefix.%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32-%length(&prefix))'; + put '%mend mf_getuniquename;'; + put '%macro mf_islibds(libds'; + put ')/*/STORE SOURCE*/;'; + put '%local regex;'; + put '%let regex=%sysfunc(prxparse(%str(/^[_a-z]\w{0,7}\.[_a-z]\w{0,31}$/i)));'; + put '%sysfunc(prxmatch(®ex,&libds))'; + put '%mend mf_islibds;'; + put '%macro mf_nobs(libds'; + put ')/*/STORE SOURCE*/;'; + put '%mf_getattrn(&libds,NLOBS)'; + put '%mend mf_nobs;'; + put '%macro mf_getvarlist(libds'; + put ',dlm=%str( )'; + put ',quote=no'; + put ',typefilter=A'; + put ')/*/STORE SOURCE*/;'; + put '/* declare local vars */'; + put '%local outvar dsid nvars x rc dlm q var vtype;'; + put '/* credit Rowland Hale - byte34 is double quote, 39 is single quote */'; + put '%if %upcase("e)=DOUBLE %then %let q=%qsysfunc(byte(34));'; + put '%else %if %upcase("e)=SINGLE %then %let q=%qsysfunc(byte(39));'; + put '/* open dataset in macro */'; + put '%let dsid=%sysfunc(open(&libds));'; + put '%if &dsid %then %do;'; + put '%let nvars=%sysfunc(attrn(&dsid,NVARS));'; + put '%if &nvars>0 %then %do;'; + put '/* add variables with supplied delimeter */'; + put '%do x=1 %to &nvars;'; + put '/* get variable type */'; + put '%let vtype=%sysfunc(vartype(&dsid,&x));'; + put '%if &vtype=&typefilter or &typefilter=A %then %do;'; + put '%let var=&q.%sysfunc(varname(&dsid,&x))&q.;'; + put '%if &var=&q&q %then %do;'; + put '%put &sysmacroname: Empty column found in &libds!;'; + put '%let var=&q. &q.;'; + put '%end;'; + put '%if %quote(&outvar)=%quote() %then %let outvar=&var;'; + put '%else %let outvar=&outvar.&dlm.&var.;'; + put '%end;'; + put '%end;'; + put '%end;'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: Unable to open &libds (rc=&dsid);'; + put '%put &sysmacroname: SYSMSG= %sysfunc(sysmsg());'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%do;%unquote(&outvar)%end;'; + put '%mend mf_getvarlist;'; + put '%macro mf_getvartype(libds /* two level name */'; + put ', var /* variable name from which to return the type */'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid vnum vtype rc;'; + put '/* Open dataset */'; + put '%let dsid = %sysfunc(open(&libds));'; + put '%if &dsid. > 0 %then %do;'; + put '/* Get variable number */'; + put '%let vnum = %sysfunc(varnum(&dsid, &var));'; + put '/* Get variable type (C/N) */'; + put '%if(&vnum. > 0) %then %let vtype = %sysfunc(vartype(&dsid, &vnum.));'; + put '%else %do;'; + put '%put NOTE: Variable &var does not exist in &libds;'; + put '%let vtype = %str( );'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: dataset &libds not opened! (rc=&dsid);'; + put '%put &sysmacroname: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '/* Close dataset */'; + put '%let rc = %sysfunc(close(&dsid));'; + put '/* Return variable type */'; + put '&vtype'; + put '%mend mf_getvartype;'; + put '%macro mp_filtergenerate(inds,outref=filter);'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc - on macro entry)'; + put ')'; + put 'filename &outref temp;'; + put '%if %mf_nobs(&inds)=0 %then %do;'; + put '/* ensure we have a default filter */'; + put 'data _null_;'; + put 'file &outref;'; + put 'put ''1=1'';'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put 'proc sort data=&inds;'; + put 'by SUBGROUP_ID;'; + put 'run;'; + put 'data _null_;'; + put 'file &outref lrecl=32800;'; + put 'set &inds end=last;'; + put 'by SUBGROUP_ID;'; + put 'if _n_=1 then put ''(('';'; + put 'else if first.SUBGROUP_ID then put +1 GROUP_LOGIC ''('';'; + put 'else put +2 SUBGROUP_LOGIC;'; + put 'put +4 VARIABLE_NM OPERATOR_NM RAW_VALUE;'; + put 'if last.SUBGROUP_ID then put '')''@;'; + put 'if last then put '')'';'; + put 'run;'; + put '%end;'; + put '%mend mp_filtergenerate;'; + put '%macro mp_filtervalidate(inref,targetds,abort=YES,outds=work.mp_filtervalidate);'; + put '%mp_abort(iftrue= (&syscc ne 0 or &syserr ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc / syserr=&syserr - on macro entry)'; + put ')'; + put '%local fref1;'; + put '%let fref1=%mf_getuniquefileref();'; + put 'data _null_;'; + put 'file &fref1;'; + put 'infile &inref end=eof;'; + put 'if _n_=1 then do;'; + put 'put "proc sql;";'; + put 'put "validate select * from &targetds";'; + put 'put "where " ;'; + put 'end;'; + put 'input;'; + put 'put _infile_;'; + put 'putlog _infile_;'; + put 'if eof then put ";quit;";'; + put 'run;'; + put '%inc &fref1;'; + put 'data &outds;'; + put 'if &sqlrc or &syscc or &syserr then do;'; + put 'REASON_CD=''VALIDATION_ERR''!!''OR: ''!!'; + put 'coalescec(symget(''SYSERRORTEXT''),symget(''SYSWARNINGTEXT''));'; + put 'output;'; + put 'end;'; + put 'else stop;'; + put 'run;'; + put 'filename &fref1 clear;'; + put '%if %mf_nobs(&outds)>0 %then %do;'; + put '%if &abort=YES %then %do;'; + put 'data _null_;'; + put 'set &outds;'; + put 'call symputx(''REASON_CD'',reason_cd,''l'');'; + put 'stop;'; + put 'run;'; + put '%mp_abort('; + put 'mac=&sysmacroname,'; + put 'msg=%str(Filter validation issues.)'; + put ')'; + put '%end;'; + put '%let syscc=1008;'; + put '%end;'; + put '%mend mp_filtervalidate;'; + put '%macro mp_filtercheck(inds,targetds=,outds=work.badrecords,abort=YES);'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc - on macro entry)'; + put ')'; + put '/* Validate input column */'; + put '%local vtype;'; + put '%let vtype=%mf_getvartype(&inds,RAW_VALUE);'; + put '%mp_abort(iftrue=(&abort=YES and &vtype ne C),'; + put 'mac=&sysmacroname,'; + put 'msg=%str(%str(ERR)OR: RAW_VALUE must be character)'; + put ')'; + put '%if &vtype ne C %then %do;'; + put '%put &sysmacroname: RAW_VALUE must be character;'; + put '%let syscc=42;'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Sanitise the values based on valid value lists, then strip out'; + put '* quotes, commas, periods and spaces.'; + put '* Only numeric values should remain'; + put '*/'; + put '%local reason_cd nobs;'; + put '%let nobs=0;'; + put 'data &outds;'; + put '/*length GROUP_LOGIC SUBGROUP_LOGIC $3 SUBGROUP_ID 8 VARIABLE_NM $32'; + put 'OPERATOR_NM $10 RAW_VALUE $4000;*/'; + put 'set &inds;'; + put 'length reason_cd $4032 vtype $1 vnum dsid 8 tmp $4000;'; + put 'drop tmp;'; + put '/* quick check to ensure column exists */'; + put 'if upcase(VARIABLE_NM) not in'; + put '(%upcase(%mf_getvarlist(&targetds,dlm=%str(,),quote=SINGLE)))'; + put 'then do;'; + put 'REASON_CD="Variable "!!cats(variable_nm)!!" not in &targetds";'; + put 'putlog REASON_CD= VARIABLE_NM=;'; + put 'call symputx(''reason_cd'',reason_cd,''l'');'; + put 'call symputx(''nobs'',_n_,''l'');'; + put 'output;'; + put 'return;'; + put 'end;'; + put '/* need to open the dataset to get the column type */'; + put 'dsid=open("&targetds","i");'; + put 'if dsid>0 then do;'; + put 'vnum=varnum(dsid,VARIABLE_NM);'; + put 'if vnum<1 then do;'; + put '/* should not happen as was also tested for above */'; + put 'REASON_CD=cats("Variable (",VARIABLE_NM,") not found in &targetds");'; + put 'putlog REASON_CD= dsid=;'; + put 'call symputx(''reason_cd'',reason_cd,''l'');'; + put 'call symputx(''nobs'',_n_,''l'');'; + put 'output;'; + put 'return;'; + put 'end;'; + put '/* now we can get the type */'; + put 'else vtype=vartype(dsid,vnum);'; + put 'end;'; + put '/* closed list checks */'; + put 'if GROUP_LOGIC not in (''AND'',''OR'') then do;'; + put 'REASON_CD=''GROUP_LOGIC should be AND/OR, not:''!!cats(GROUP_LOGIC);'; + put 'putlog REASON_CD= GROUP_LOGIC=;'; + put 'call symputx(''reason_cd'',reason_cd,''l'');'; + put 'call symputx(''nobs'',_n_,''l'');'; + put 'output;'; + put 'end;'; + put 'if SUBGROUP_LOGIC not in (''AND'',''OR'') then do;'; + put 'REASON_CD=''SUBGROUP_LOGIC should be AND/OR, not:''!!cats(SUBGROUP_LOGIC);'; + put 'putlog REASON_CD= SUBGROUP_LOGIC=;'; + put 'call symputx(''reason_cd'',reason_cd,''l'');'; + put 'call symputx(''nobs'',_n_,''l'');'; + put 'output;'; + put 'end;'; + put 'if mod(SUBGROUP_ID,1) ne 0 then do;'; + put 'REASON_CD=''SUBGROUP_ID should be integer, not ''!!cats(subgroup_id);'; + put 'putlog REASON_CD= SUBGROUP_ID=;'; + put 'call symputx(''reason_cd'',reason_cd,''l'');'; + put 'call symputx(''nobs'',_n_,''l'');'; + put 'output;'; + put 'end;'; + put 'if OPERATOR_NM not in'; + put '(''='',''>'',''<'',''<='',''>='',''NE'',''GE'',''LE'',''BETWEEN'',''IN'',''NOT IN'',''CONTAINS'')'; + put 'then do;'; + put 'REASON_CD=''Invalid OPERATOR_NM: ''!!cats(OPERATOR_NM);'; + put 'putlog REASON_CD= OPERATOR_NM=;'; + put 'call symputx(''reason_cd'',reason_cd,''l'');'; + put 'call symputx(''nobs'',_n_,''l'');'; + put 'output;'; + put 'end;'; + put '/* special missing logic */'; + put 'if vtype=''N'''; + put 'and OPERATOR_NM in (''='',''>'',''<'',''<='',''>='',''NE'',''GE'',''LE'')'; + put 'and cats(upcase(raw_value)) in ('; + put '''.'',''.A'',''.B'',''.C'',''.D'',''.E'',''.F'',''.G'',''.H'',''.I'',''.J'',''.K'',''.L'',''.M'',''.N'''; + put '''.N'',''.O'',''.P'',''.Q'',''.R'',''.S'',''.T'',''.U'',''.V'',''.W'',''.X'',''.Y'',''.Z'',''._'''; + put ')'; + put 'then do;'; + put '/* valid numeric - exit data step loop */'; + put 'return;'; + put 'end;'; + put '/* special logic */'; + put 'if OPERATOR_NM in (''IN'',''NOT IN'',''BETWEEN'') then do;'; + put 'if OPERATOR_NM=''BETWEEN'' then raw_value1=tranwrd(raw_value,'' AND '','','');'; + put 'else do;'; + put 'if substr(raw_value,1,1) ne ''('''; + put 'or substr(cats(reverse(raw_value)),1,1) ne '')'''; + put 'then do;'; + put 'REASON_CD=''Missing start/end bracket in RAW_VALUE'';'; + put 'putlog REASON_CD= OPERATOR_NM= raw_value= raw_value1= ;'; + put 'call symputx(''reason_cd'',reason_cd,''l'');'; + put 'call symputx(''nobs'',_n_,''l'');'; + put 'output;'; + put 'end;'; + put 'else raw_value1=substr(raw_value,2,max(length(raw_value)-2,0));'; + put 'end;'; + put '/* we now have a comma seperated list of values */'; + put 'if vtype=''N'' then do i=1 to countc(raw_value1, '','')+1;'; + put 'tmp=scan(raw_value1,i,'','');'; + put 'if cats(tmp) ne ''.'' and input(tmp, ?? 8.) eq . then do;'; + put 'REASON_CD=''Non Numeric value provided'';'; + put 'putlog REASON_CD= OPERATOR_NM= raw_value= raw_value1= ;'; + put 'call symputx(''reason_cd'',reason_cd,''l'');'; + put 'call symputx(''nobs'',_n_,''l'');'; + put 'output;'; + put 'end;'; + put 'return;'; + put 'end;'; + put 'end;'; + put 'else raw_value1=raw_value;'; + put '/* remove nested literals eg '''' */'; + put 'raw_value1=tranwrd(raw_value1,"''''",'''');'; + put '/* now match string literals (always single quotes) */'; + put 'raw_value2=raw_value1;'; + put 'regex = prxparse("s/(\'').*?(\'')//");'; + put 'call prxchange(regex,-1,raw_value2);'; + put '/* remove commas and periods*/'; + put 'raw_value3=compress(raw_value2,'',.'');'; + put '/* output records that contain values other than digits and spaces */'; + put 'if notdigit(compress(raw_value3,'' ''))>0 then do;'; + put 'putlog raw_value3= $hex32.;'; + put 'REASON_CD=cats(''Invalid RAW_VALUE:'',raw_value);'; + put 'putlog REASON_CD= raw_value= raw_value1= raw_value2= raw_value3=;'; + put 'call symputx(''reason_cd'',reason_cd,''l'');'; + put 'call symputx(''nobs'',_n_,''l'');'; + put 'output;'; + put 'end;'; + put 'run;'; + put 'data _null_;'; + put 'set &outds end=last;'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue=(&abort=YES and &nobs>0),'; + put 'mac=&sysmacroname,'; + put 'msg=%str(Data issue: %superq(reason_cd))'; + put ')'; + put '%if &nobs>0 %then %do;'; + put '%let syscc=1008;'; + put '%return;'; + put '%end;'; + put '/**'; + put '* syntax checking passed but it does not mean the filter is valid'; + put '* for that we can run a proc sql validate query'; + put '*/'; + put '%local fref1;'; + put '%let fref1=%mf_getuniquefileref();'; + put '%mp_filtergenerate(&inds,outref=&fref1)'; + put '/* this macro will also set syscc to 1008 if any issues found */'; + put '%mp_filtervalidate(&fref1,&targetds,outds=&outds,abort=&abort)'; + put '%mend mp_filtercheck;'; + put '%macro mp_md5(cvars=,nvars=);'; + put '%local i var sep;'; + put 'put(md5('; + put '%do i=1 %to %sysfunc(countw(&cvars));'; + put '%let var=%scan(&cvars,&i,%str( ));'; + put '&sep put(md5(trim(&var)),$hex32.)'; + put '%let sep=!!;'; + put '%end;'; + put '%do i=1 %to %sysfunc(countw(&nvars));'; + put '%let var=%scan(&nvars,&i,%str( ));'; + put '/* multiply by 1 to strip precision errors (eg 0 != 0) */'; + put '/* but ONLY if not missing, else will lose any special missing values */'; + put '&sep put(md5(trim(put(ifn(missing(&var),&var,&var*1),binary64.))),$hex32.)'; + put '%let sep=!!;'; + put '%end;'; + put '),$hex32.)'; + put '%mend mp_md5;'; + put '%macro mp_hashdataset('; + put 'libds,'; + put 'outds=work._data_,'; + put 'salt=,'; + put 'iftrue=%str(1=1)'; + put ')/*/STORE SOURCE*/;'; + put '%local keyvar /* roll up the md5 */'; + put 'prevkeyvar /* retain prev record md5 */'; + put 'lastvar /* last var in input ds */'; + put 'cvars nvars;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '/* avoid naming conflict for hash key vars */'; + put '%let keyvar=%mf_getuniquename();'; + put '%let prevkeyvar=%mf_getuniquename();'; + put '%let lastvar=%mf_getuniquename();'; + put '%if %mf_getattrn(&libds,NLOBS)=0 %then %do;'; + put 'data &outds;'; + put 'length hashkey $32;'; + put 'hashkey=put(md5("&salt"),$hex32.);'; + put 'output;'; + put 'stop;'; + put 'run;'; + put '%put &sysmacroname: Dataset &libds is empty, or is not a dataset;'; + put '%put &sysmacroname: hashkey of &outds is based on salt (&salt) only;'; + put '%end;'; + put '%else %if %mf_getattrn(&libds,NLOBS)<0 %then %do;'; + put '%put %str(ERR)OR: Dataset &libds is not a dataset;'; + put '%end;'; + put '%else %do;'; + put 'data &outds(rename=(&keyvar=hashkey) keep=&keyvar)'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put '/nonote2err'; + put '%end;'; + put ';'; + put 'length &prevkeyvar &keyvar $32;'; + put 'retain &prevkeyvar;'; + put 'if _n_=1 then &prevkeyvar=put(md5("&salt"),$hex32.);'; + put 'set &libds end=&lastvar;'; + put '/* hash should include previous row */'; + put '&keyvar=%mp_md5('; + put 'cvars=%mf_getvarlist(&libds,typefilter=C) &prevkeyvar,'; + put 'nvars=%mf_getvarlist(&libds,typefilter=N)'; + put ');'; + put '&prevkeyvar=&keyvar;'; + put 'if &lastvar then output;'; + put 'run;'; + put '%end;'; + put '%mend mp_hashdataset;'; + put '/** @cond */'; + put '%macro mf_existvar(libds /* 2 part dataset name */'; + put ', var /* variable name */'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid rc;'; + put '%let dsid=%sysfunc(open(&libds,is));'; + put '%if &dsid=0 or %length(&var)=0 %then %do;'; + put '%put %sysfunc(sysmsg());'; + put '0'; + put '%end;'; + put '%else %do;'; + put '%sysfunc(varnum(&dsid,&var))'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%mend mf_existvar;'; + put '/** @endcond */'; + put '%macro mf_getquotedstr(IN_STR'; + put ',DLM=%str(,)'; + put ',QUOTE=S'; + put ',indlm=%str( )'; + put ')/*/STORE SOURCE*/;'; + put '/* credit Rowland Hale - byte34 is double quote, 39 is single quote */'; + put '%if "e=S %then %let quote=%qsysfunc(byte(39));'; + put '%else %if "e=D %then %let quote=%qsysfunc(byte(34));'; + put '%else %if "e=N %then %let quote=;'; + put '%local i item buffer;'; + put '%let i=1;'; + put '%do %while (%qscan(&IN_STR,&i,%str(&indlm)) ne %str() ) ;'; + put '%let item=%qscan(&IN_STR,&i,%str(&indlm));'; + put '%if %bquote("E) ne %then %let item="E%qtrim(&item)"E;'; + put '%else %let item=%qtrim(&item);'; + put '%if (&i = 1) %then %let buffer =%qtrim(&item);'; + put '%else %let buffer =&buffer&DLM%qtrim(&item);'; + put '%let i = %eval(&i+1);'; + put '%end;'; + put '%let buffer=%sysfunc(coalescec(%qtrim(&buffer),"E"E));'; + put '&buffer'; + put '%mend mf_getquotedstr;'; + put '%macro mf_getattrc('; + put 'libds'; + put ',attr'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid rc;'; + put '%let dsid=%sysfunc(open(&libds,is));'; + put '%if &dsid = 0 %then %do;'; + put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; + put '%put %sysfunc(sysmsg());'; + put '-1'; + put '%end;'; + put '%else %do;'; + put '%sysfunc(attrc(&dsid,&attr))'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%mend mf_getattrc;'; + put '%macro mp_lockfilecheck('; + put 'libds'; + put ')/*/STORE SOURCE*/;'; + put 'data _null_;'; + put 'if _n_=1 then putlog "&sysmacroname entry vars:";'; + put 'set sashelp.vmacro;'; + put 'where scope="&sysmacroname";'; + put 'put name ''='' value;'; + put 'run;'; + put '%mp_abort(iftrue= (&syscc>0)'; + put ',mac=checklock.sas'; + put ',msg=Aborting with syscc=&syscc on entry.'; + put ')'; + put '%mp_abort(iftrue= ("&libds"="0")'; + put ',mac=&sysmacroname'; + put ',msg=%str(libds not provided)'; + put ')'; + put '%local msg lib ds;'; + put '%let lib=%upcase(%scan(&libds,1,.));'; + put '%let ds=%upcase(%scan(&libds,2,.));'; + put '/* in DC, format catalogs are passed with a -FC suffix. No saslock here! */'; + put '%if %scan(&libds,2,-)=FC %then %do;'; + put '%put &sysmacroname: Format Catalog detected, no lockfile applied to &libds;'; + put '%return;'; + put '%end;'; + put '/* do not proceed if no observations can be processed */'; + put '%let msg=options obs = 0. syserrortext=%superq(syserrortext);'; + put '%mp_abort(iftrue= (%sysfunc(getoption(OBS))=0)'; + put ',mac=checklock.sas'; + put ',msg=%superq(msg)'; + put ')'; + put 'data _null_;'; + put 'putlog "Checking engine & member type";'; + put 'run;'; + put '%local engine memtype;'; + put '%let memtype=%mf_getattrc(&libds,MTYPE);'; + put '%let engine=%mf_getattrc(&libds,ENGINE);'; + put '%if &engine ne V9 and &engine ne BASE %then %do;'; + put 'data _null_;'; + put 'putlog "Lib &lib is not assigned using BASE engine - uses &engine instead";'; + put 'putlog "SAS lock check will not be performed";'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%else %if &memtype ne DATA %then %do;'; + put '%put NOTE: Cannot lock a VIEW!! Memtype=&memtype;'; + put '%return;'; + put '%end;'; + put 'data _null_;'; + put 'putlog "Engine = &engine, memtype=&memtype";'; + put 'putlog "Attempting lock statement";'; + put 'run;'; + put 'lock &libds;'; + put '%local abortme;'; + put '%let abortme=0;'; + put '%if &syscc>0 or &SYSLCKRC ne 0 %then %do;'; + put '%let msg=Unable to apply lock on &libds (SYSLCKRC=&SYSLCKRC syscc=&syscc);'; + put '%put %str(ERR)OR: &sysmacroname: &msg;'; + put '%let abortme=1;'; + put '%end;'; + put 'lock &libds clear;'; + put '%mp_abort(iftrue= (&abortme=1)'; + put ',mac=&sysmacroname'; + put ',msg=%superq(msg)'; + put ')'; + put '%mend mp_lockfilecheck;'; + put '%macro mp_lockanytable('; + put 'action'; + put ',lib= WORK'; + put ',ds=0'; + put ',ref='; + put ',ctl_ds=0'; + put ',loops=25'; + put ',loop_secs=1'; + put ');'; + put 'data _null_;'; + put 'if _n_=1 then putlog "&sysmacroname entry vars:";'; + put 'set sashelp.vmacro;'; + put 'where scope="&sysmacroname";'; + put 'put name ''='' value;'; + put 'run;'; + put '%mp_abort(iftrue= ("&ds"="0" and &action ne MAKETABLE)'; + put ',mac=&sysmacroname'; + put ',msg=%str(dataset was not provided)'; + put ')'; + put '%mp_abort(iftrue= (&ctl_ds=0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Control dataset was not provided)'; + put ')'; + put '/* set up lib & mac vars */'; + put '%let lib=%upcase(&lib);'; + put '%let ds=%upcase(&ds);'; + put '%let action=%upcase(&action);'; + put '%local user x trans msg abortme;'; + put '%let user=%mf_getuser();'; + put '%let abortme=0;'; + put '%mp_abort(iftrue= (&action ne LOCK & &action ne UNLOCK & &action ne MAKETABLE)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Invalid action (&action) provided)'; + put ')'; + put '/* if an err condition exists, exit before we even begin */'; + put '%mp_abort(iftrue= (&syscc>0 and &action=LOCK)'; + put ',mac=&sysmacroname'; + put ',msg=%str(aborting due to syscc=&syscc on LOCK entry)'; + put ')'; + put '/* do not bother locking work tables (else may affect all WORK libraries) */'; + put '%if (%upcase(&lib)=WORK or %str(&lib)=%str()) & &action ne MAKETABLE %then %do;'; + put '%put NOTE: WORK libraries will not be registered in the locking system.;'; + put '%return;'; + put '%end;'; + put '/* do not proceed if no observations can be processed */'; + put '%mp_abort(iftrue= (%sysfunc(getoption(OBS))=0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(cannot continue when options obs = 0)'; + put ')'; + put '%if &ACTION=LOCK %then %do;'; + put '/* abort if a SAS lock is already in place, or cannot be applied */'; + put '%mp_lockfilecheck(&lib..&ds)'; + put '/* next, check there is a record for this table */'; + put '%local record_exists_check;'; + put 'proc sql noprint;'; + put 'select count(*) into: record_exists_check from &ctl_ds'; + put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; + put 'quit;'; + put '%if &syscc>0 %then %put syscc=&syscc sqlrc=&sqlrc;'; + put '%if &record_exists_check=0 %then %do;'; + put 'data _null_;'; + put 'putlog "&sysmacroname: adding record to lock table..";'; + put 'run;'; + put 'data ;'; + put 'if 0 then set &ctl_ds;'; + put 'LOCK_LIB ="&lib";'; + put 'LOCK_DS="&ds";'; + put 'LOCK_STATUS_CD=''LOCKED'';'; + put 'LOCK_START_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt;'; + put 'LOCK_USER_NM="&user";'; + put 'LOCK_PID="&sysjobid";'; + put 'LOCK_REF="&ref";'; + put 'output;stop;'; + put 'run;'; + put '%let trans=&syslast;'; + put 'proc append base=&ctl_ds data=&trans;'; + put 'run;'; + put '%end;'; + put '/* if record does exist, perform lock attempts */'; + put '%else %do x=1 %to &loops;'; + put 'data _null_;'; + put 'putlog "&sysmacroname: attempting lock (iteration &x) "@;'; + put 'putlog "at %sysfunc(datetime(),datetime19.) ..";'; + put 'run;'; + put 'proc sql;'; + put 'update &ctl_ds'; + put 'set LOCK_STATUS_CD=''LOCKED'''; + put ', LOCK_START_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt'; + put ', LOCK_USER_NM="&user"'; + put ', LOCK_PID="&sysjobid"'; + put ', LOCK_REF="&ref"'; + put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; + put 'quit;'; + put '/**'; + put '* NOTE - occasionally SQL server will return an err code (deadlocked'; + put '* transaction). If so, ignore it, keep calm, and carry on..'; + put '*/'; + put '%if &syscc>0 %then %do;'; + put 'data _null_;'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'putlog "NOTE- &sysmacroname: Update failed. "@;'; + put 'putlog "Resetting err conditions and re-attempting.";'; + put 'putlog "NOTE- syscc=&syscc syserr=&syserr sqlrc=&sqlrc";'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'run;'; + put '%let syscc=0;'; + put '%let sqlrc=0;'; + put '%end;'; + put '/* now check if the record was successfully updated */'; + put '%local success_check;'; + put 'proc sql noprint;'; + put 'select count(*) into: success_check from &ctl_ds'; + put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds"'; + put 'and LOCK_PID="&sysjobid" and LOCK_STATUS_CD=''LOCKED'';'; + put 'quit;'; + put '%if &success_check=0 %then %do;'; + put '%if &x < &loops %then %do;'; + put '/* pause before next check */'; + put 'data _null_;'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'putlog "NOTE- &sysmacroname: table locked, waiting "@;'; + put 'putlog "%sysfunc(sleep(&loop_inc)) seconds.. ";'; + put 'putlog "NOTE- (iteration &x of &loops)";'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%let msg=Unable to lock &lib..&ds via &ctl_ds after &loops attempts.\n'; + put 'Please ask your administrator to investigate!;'; + put '%let abortme=1;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put 'data _null_;'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'putlog "NOTE- &sysmacroname: Table &lib..&ds locked at "@;'; + put 'putlog " %sysfunc(datetime(),datetime19.) (iteration &x)"@;'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'run;'; + put '%if &syscc>0 %then %do;'; + put '%put setting syscc(&syscc) back to 0;'; + put '%let syscc=0;'; + put '%end;'; + put '%let x=&loops; /* no more iterations needed */'; + put '%end;'; + put '%end;'; + put '%end;'; + put '%else %if &ACTION=UNLOCK %then %do;'; + put '%local status;'; + put 'proc sql noprint;'; + put 'select LOCK_STATUS_CD into: status from &ctl_ds'; + put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; + put 'quit;'; + put '%if &syscc>0 %then %put syscc=&syscc sqlrc=&sqlrc;'; + put '%if &status=LOCKED %then %do;'; + put 'data _null_;'; + put 'putlog "&sysmacroname: unlocking &lib..&ds:";'; + put 'run;'; + put 'proc sql;'; + put 'update &ctl_ds'; + put 'set LOCK_STATUS_CD=''UNLOCKED'''; + put ', LOCK_END_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt'; + put ', LOCK_USER_NM="&user"'; + put ', LOCK_PID="&sysjobid"'; + put ', LOCK_REF="&ref"'; + put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; + put 'quit;'; + put '%end;'; + put '%else %if &status=UNLOCKED %then %do;'; + put '%put %str(WAR)NING: &lib..&ds is already unlocked!;'; + put '%end;'; + put '%else %do;'; + put '%put NOTE: Unrecognised STATUS_CD (&status) in &ctl_ds;'; + put '%let abortme=1;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%let msg=lock_anytable given unsupported action (&action);'; + put '%let abortme=1;'; + put '%end;'; + put '/* catch errs - mp_abort must be called outside of a logic block */'; + put '%mp_abort(iftrue=(&abortme=1),'; + put 'msg=%superq(msg),'; + put 'mac=&sysmacroname'; + put ')'; + put '%exit_macro:'; + put 'data _null_;'; + put 'put "&sysmacroname: Exit vars: action=&action lib=&lib ds=&ds";'; + put 'put " syscc=&syscc sqlrc=&sqlrc syserr=&syserr";'; + put 'run;'; + put '%mend mp_lockanytable;'; + put '%macro mp_retainedkey('; + put 'base_lib=WORK'; + put ',base_dsn=BASETABLE'; + put ',append_lib=WORK'; + put ',append_dsn=APPENDTABLE'; + put ',retained_key=DEFAULT_RK'; + put ',business_key= PK1 PK2'; + put ',check_uniqueness=NO'; + put ',maxkeytable=0'; + put ',locktable=0'; + put ',outds=WORK.APPEND'; + put ',filter_str='; + put ');'; + put '%put &sysmacroname entry vars:;'; + put '%put _local_;'; + put '%local base_libds app_libds key_field check maxkey idx_pk newkey_cnt iserr'; + put 'msg x tempds1 tempds2 comma_pk appnobs checknobs dropvar tempvar idx_val;'; + put '%let base_libds=%upcase(&base_lib..&base_dsn);'; + put '%let app_libds=%upcase(&append_lib..&append_dsn);'; + put '%let tempds1=%mf_getuniquename();'; + put '%let tempds2=%mf_getuniquename();'; + put '%let comma_pk=%mf_getquotedstr(in_str=%str(&business_key),dlm=%str(,),quote=);'; + put '%let outds=%sysfunc(ifc(%index(&outds,.)=0,work.&outds,&outds));'; + put '/* validation checks */'; + put '%let iserr=0;'; + put '%if &syscc>0 %then %do;'; + put '%let iserr=1;'; + put '%let msg=%str(SYSCC=&syscc on macro entry);'; + put '%end;'; + put '%else %if %sysfunc(exist(&base_libds))=0 %then %do;'; + put '%let iserr=1;'; + put '%let msg=%str(Base LIBDS (&base_libds) expected but NOT FOUND);'; + put '%end;'; + put '%else %if %sysfunc(exist(&app_libds))=0 %then %do;'; + put '%let iserr=1;'; + put '%let msg=%str(Append LIBDS (&app_libds) expected but NOT FOUND);'; + put '%end;'; + put '%else %if &maxkeytable ne 0 and %sysfunc(exist(&maxkeytable))=0 %then %do;'; + put '%let iserr=1;'; + put '%let msg=%str(Maxkeytable (&maxkeytable) expected but NOT FOUND);'; + put '%end;'; + put '%else %if &maxkeytable ne 0 and %sysfunc(exist(&locktable))=0 %then %do;'; + put '%let iserr=1;'; + put '%let msg=%str(Locktable (&locktable) expected but NOT FOUND);'; + put '%end;'; + put '%else %if %length(&business_key)=0 %then %do;'; + put '%let iserr=1;'; + put '%let msg=%str(Business key (&business_key) expected but NOT FOUND);'; + put '%end;'; + put '%do x=1 %to %sysfunc(countw(&business_key));'; + put '/* check business key values exist */'; + put '%let key_field=%scan(&business_key,&x,%str( ));'; + put '%if not %mf_existvar(&app_libds,&key_field) %then %do;'; + put '%let iserr=1;'; + put '%let msg=Business key (&key_field) not found on &app_libds!;'; + put '%goto err;'; + put '%end;'; + put '%else %if not %mf_existvar(&base_libds,&key_field) %then %do;'; + put '%let iserr=1;'; + put '%let msg=Business key (&key_field) not found on &base_libds!;'; + put '%goto err;'; + put '%end;'; + put '%end;'; + put '%err:'; + put '%if &iserr=1 %then %do;'; + put '/* err case so first perform an unlock of the base table before exiting */'; + put '%mp_lockanytable('; + put 'UNLOCK,lib=&base_lib,ds=&base_dsn,ref=%superq(msg),ctl_ds=&locktable'; + put ')'; + put '%end;'; + put '%mp_abort(iftrue=(&iserr=1),mac=mp_retainedkey,msg=%superq(msg))'; + put 'proc sql noprint;'; + put 'select sum(max(&retained_key),0) into: maxkey from &base_libds;'; + put '/**'; + put '* get base table RK and bus field values for lookup'; + put '*/'; + put 'proc sql noprint;'; + put 'create table &tempds1 as'; + put 'select distinct &comma_pk,&retained_key'; + put 'from &base_libds &filter_str'; + put 'order by &comma_pk,&retained_key;'; + put '%if &check_uniqueness=YES %then %do;'; + put 'select count(*) into:checknobs'; + put 'from (select distinct &comma_pk from &app_libds);'; + put 'select count(*) into: appnobs from &app_libds; /* might be view */'; + put '%if &checknobs ne &appnobs %then %do;'; + put '%let msg=Source table &app_libds is not unique on (&business_key);'; + put '%let iserr=1;'; + put '%end;'; + put '%end;'; + put '%if &iserr=1 %then %do;'; + put '/* err case so first perform an unlock of the base table before exiting */'; + put '%mp_lockanytable('; + put 'UNLOCK,lib=&base_lib,ds=&base_dsn,ref=%superq(msg),ctl_ds=&locktable'; + put ')'; + put '%end;'; + put '%mp_abort(iftrue= (&iserr=1),mac=mp_retainedkey,msg=%superq(msg))'; + put '%if %mf_existvar(&app_libds,&retained_key)'; + put '%then %let dropvar=(drop=&retained_key);'; + put '/* prepare interim table with retained key populated for matching keys */'; + put 'proc sql noprint;'; + put 'create table &tempds2 as'; + put 'select b.&retained_key, a.*'; + put 'from &app_libds &dropvar a'; + put 'left join &tempds1 b'; + put 'on 1'; + put '%do idx_pk=1 %to %sysfunc(countw(&business_key));'; + put '%let idx_val=%scan(&business_key,&idx_pk);'; + put 'and a.&idx_val=b.&idx_val'; + put '%end;'; + put 'order by &retained_key;'; + put '/* identify the number of entries without retained keys (new records) */'; + put 'select count(*) into: newkey_cnt'; + put 'from &tempds2'; + put 'where missing(&retained_key);'; + put 'quit;'; + put '/**'; + put '* Update maxkey table if link provided'; + put '*/'; + put '%if &maxkeytable ne 0 %then %do;'; + put 'proc sql noprint;'; + put 'select count(*) into: check from &maxkeytable'; + put 'where upcase(keytable)="&base_libds";'; + put '%mp_lockanytable(LOCK'; + put ',lib=%scan(&maxkeytable,1,.)'; + put ',ds=%scan(&maxkeytable,2,.)'; + put ',ref=Updating maxkeyvalues with mp_retainedkey'; + put ',ctl_ds=&locktable'; + put ')'; + put 'proc sql;'; + put '%if &check=0 %then %do;'; + put 'insert into &maxkeytable'; + put 'set keytable="&base_libds"'; + put ',keycolumn="&retained_key"'; + put ',max_key=%eval(&maxkey+&newkey_cnt)'; + put ',processed_dttm="%sysfunc(datetime(),%mf_fmtdttm())"dt;'; + put '%end;'; + put '%else %do;'; + put 'update &maxkeytable'; + put 'set max_key=%eval(&maxkey+&newkey_cnt)'; + put ',processed_dttm="%sysfunc(datetime(),%mf_fmtdttm())"dt'; + put 'where keytable="&base_libds";'; + put '%end;'; + put '%mp_lockanytable(UNLOCK'; + put ',lib=%scan(&maxkeytable,1,.)'; + put ',ds=%scan(&maxkeytable,2,.)'; + put ',ref=Updating maxkeyvalues with maxkey=%eval(&maxkey+&newkey_cnt)'; + put ',ctl_ds=&locktable'; + put ')'; + put '%end;'; + put '/* fill in the missing retained key values */'; + put '%let tempvar=%mf_getuniquename();'; + put 'data &outds(drop=&tempvar);'; + put 'retain &tempvar %eval(&maxkey+1);'; + put 'set &tempds2;'; + put 'if &retained_key =. then &retained_key=&tempvar;'; + put '&tempvar=&tempvar+1;'; + put 'run;'; + put '%mend mp_retainedkey;'; + put '%macro mp_filterstore(libds=,'; + put 'queryds=work.filterquery,'; + put 'filter_summary=PERM.FILTER_SUMMARY,'; + put 'filter_detail=PERM.FILTER_DETAIL,'; + put 'lock_table=PERM.LOCK_TABLE,'; + put 'maxkeytable=PERM.MAXKEYTABLE,'; + put 'outresult=work.result,'; + put 'outquery=work.query,'; + put 'mdebug=1'; + put ');'; + put '%put &sysmacroname entry vars:;'; + put '%put _local_;'; + put '%local ds0 ds1 ds2 ds3 ds4 filter_hash orig_libds;'; + put '%let libds=%upcase(&libds);'; + put '%let orig_libds=&libds;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=mp_filterstore'; + put ',msg=%str(syscc=&syscc on macro entry)'; + put ')'; + put '%mp_abort(iftrue= (%mf_islibds(&filter_summary)=0)'; + put ',mac=mp_filterstore'; + put ',msg=%str(Invalid filter_summary value: &filter_summary)'; + put ')'; + put '%mp_abort(iftrue= (%mf_islibds(&filter_detail)=0)'; + put ',mac=mp_filterstore'; + put ',msg=%str(Invalid filter_detail value: &filter_detail)'; + put ')'; + put '%mp_abort(iftrue= (%mf_islibds(&lock_table)=0)'; + put ',mac=mp_filterstore'; + put ',msg=%str(Invalid lock_table value: &lock_table)'; + put ')'; + put '/**'; + put '* validate query'; + put '* use format catalog export, if a format'; + put '*/'; + put '%if "%substr(&libds,%length(&libds)-2,3)"="-FC" %then %do;'; + put '%let libds=%scan(&libds,1,-); /* chop off -FC extension */'; + put '%let ds0=%mf_getuniquename(prefix=fmtds_);'; + put '%let libds=&ds0;'; + put '/*'; + put 'There is no need to export the entire format catalog here - the validations'; + put 'are done against the data model, not the data values. So we can simply'; + put 'hardcode the structure based on the cntlout dataset.'; + put '*/'; + put '%mddl_sas_cntlout(libds=&ds0)'; + put '%end;'; + put '%mp_filtercheck(&queryds,targetds=&libds,abort=YES)'; + put '/* hash the result */'; + put '%let ds1=%mf_getuniquename(prefix=hashds);'; + put '%mp_hashdataset(&queryds,outds=&ds1,salt=&orig_libds)'; + put '%let filter_hash=%upcase(%mf_getvalue(&ds1,hashkey));'; + put '%if &mdebug=1 %then %do;'; + put 'data _null_;'; + put 'putlog "filter_hash=&filter_hash";'; + put 'set &ds1;'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%end;'; + put '/* check if data already exists for this hash */'; + put 'data &outresult;'; + put 'set &filter_summary;'; + put 'where filter_hash="&filter_hash";'; + put 'run;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=mp_filterstore'; + put ',msg=%str(syscc=&syscc after hash check)'; + put ')'; + put '%mp_abort(iftrue= ("&filter_hash "=" ")'; + put ',mac=mp_filterstore'; + put ',msg=%str(problem with filter_hash generation)'; + put ')'; + put '%if %mf_nobs(&outresult)=0 %then %do;'; + put '/* first update summary table */'; + put '%let ds3=%mf_getuniquename(prefix=filtersum);'; + put 'data work.&ds3;'; + put 'if 0 then set &filter_summary;'; + put 'filter_table="&orig_libds";'; + put 'filter_hash="&filter_hash";'; + put 'PROCESSED_DTTM=%sysfunc(datetime());'; + put 'output;'; + put 'stop;'; + put 'run;'; + put '%mp_lockanytable(LOCK,'; + put 'lib=%scan(&filter_summary,1,.)'; + put ',ds=%scan(&filter_summary,2,.)'; + put ',ref=MP_FILTERSTORE summary update - &filter_hash'; + put ',ctl_ds=&lock_table'; + put ')'; + put '%let ds4=%mf_getuniquename(prefix=filtersumappend);'; + put '%mp_retainedkey('; + put 'base_lib=%scan(&filter_summary,1,.)'; + put ',base_dsn=%scan(&filter_summary,2,.)'; + put ',append_lib=work'; + put ',append_dsn=&ds3'; + put ',retained_key=filter_rk'; + put ',business_key=filter_hash'; + put ',maxkeytable=&maxkeytable'; + put ',locktable=&lock_table'; + put ',outds=work.&ds4'; + put ')'; + put 'proc append base=&filter_summary data=&ds4;'; + put 'run;'; + put '%mp_lockanytable(UNLOCK,'; + put 'lib=%scan(&filter_summary,1,.)'; + put ',ds=%scan(&filter_summary,2,.)'; + put ',ref=MP_FILTERSTORE summary update - &filter_hash'; + put ',ctl_ds=&lock_table'; + put ')'; + put '%if &syscc ne 0 %then %do;'; + put 'data _null_;'; + put 'set &ds4;'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%goto err;'; + put '%end;'; + put 'data &outresult;'; + put 'set &filter_summary;'; + put 'where filter_hash="&filter_hash";'; + put 'run;'; + put '/* Next, update detail table */'; + put '%let ds2=%mf_getuniquename(prefix=filterdetail);'; + put 'data &ds2;'; + put 'if 0 then set &filter_detail;'; + put 'set &queryds;'; + put 'format filter_hash $hex32. filter_line 8.;'; + put 'filter_hash="&filter_hash";'; + put 'filter_line=_n_;'; + put 'PROCESSED_DTTM=%sysfunc(datetime());'; + put 'run;'; + put '%mp_lockanytable(LOCK,'; + put 'lib=%scan(&filter_detail,1,.)'; + put ',ds=%scan(&filter_detail,2,.)'; + put ',ref=MP_FILTERSTORE update - &filter_hash'; + put ',ctl_ds=&lock_table'; + put ')'; + put 'proc append base=&filter_detail data=&ds2;'; + put 'run;'; + put '%mp_lockanytable(UNLOCK,'; + put 'lib=%scan(&filter_detail,1,.)'; + put ',ds=%scan(&filter_detail,2,.)'; + put ',ref=MP_FILTERSTORE detail update &filter_hash'; + put ',ctl_ds=&lock_table'; + put ')'; + put '%if &syscc ne 0 %then %do;'; + put 'data _null_;'; + put 'set &ds2;'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%goto err;'; + put '%end;'; + put '%end;'; + put 'proc sort data=&filter_detail(where=(filter_hash="&filter_hash")) out=&outquery;'; + put 'by filter_line;'; + put 'run;'; + put '%err:'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=mp_filterstore'; + put ',msg=%str(syscc=&syscc on macro exit)'; + put ')'; + put '%mend mp_filterstore;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file'; + put '@brief Validates a filter clause before it gets hashified, returns the RK'; + put '@details Used to generate a FILTER_RK from an input query dataset.'; + put 'Raw values are stored in dc.mpe_filtersource and the meta values are stored'; + put 'in dc.mpe_filteranytable'; + put '

Service Inputs

'; + put '
IWANT
'; + put '|FILTER_TABLE:$41.|'; + put '|---|'; + put '|DC258467.MPE_X_TEST|'; + put '
FILTERQUERY
'; + put '|GROUP_LOGIC:$3|SUBGROUP_LOGIC:$3|SUBGROUP_ID:8.|VARIABLE_NM:$32|OPERATOR_NM:$10|RAW_VALUE:$32767|'; + put '|---|---|---|---|---|---|'; + put '|AND|AND|1|SOME_BESTNUM|>|1|'; + put '|AND|AND|1|SOME_TIME|=|77333|'; + put '

Service Outputs

'; + put '
result
'; + put '@li FILTER_HASH'; + put '@li FILTER_RK'; + put '@li FILTER_TABLE'; + put '

SAS Macros

'; + put '@li dc_assignlib.sas'; + put '@li mf_getvalue.sas'; + put '@li mp_filterstore.sas'; + put '@li removecolsfromwork.sas'; + put '@version 9.2'; + put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; + put 'downloaded from here: https://4gl.uk/dcdeploy'; + put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; + put 'and may not be re-distributed or re-sold without the express permission of'; + put '4GL Apps Ltd.'; + put '**/'; + put '%mpeinit()'; + put '%let ds=%upcase(%mf_getvalue(work.iwant,filter_table));'; + put '%dc_assignlib(WRITE,%scan(&ds,1,.))'; + put '%mp_filterstore('; + put 'libds=&ds,'; + put 'queryds=work.filterquery,'; + put 'filter_summary=&dc_libref..mpe_filteranytable,'; + put 'filter_detail=&dc_libref..mpe_filtersource,'; + put 'lock_table=&dc_libref..mpe_lockanytable,'; + put 'maxkeytable=&dc_libref..mpe_maxkeyvalues,'; + put 'outresult=work.result,'; + put 'outquery=work.query, /* not used */'; + put 'mdebug=1'; + put ')'; + put '%removecolsfromwork(___TMP___MD5)'; + put 'proc sql;'; + put 'alter table work.result drop PROCESSED_DTTM;'; + put '%webout(OPEN)'; + put '%webout(OBJ,result)'; + put '%webout(CLOSE)'; + put '%mpeterm()'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=viewdata; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Files

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as FMTCAT,'; + put 'FMTNAME'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'LENGTH num'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.length as MAXW'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put ')))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] workobs= (0) When set to a positive integer, will create a new'; + put 'output object (WORK) which contains this number of observations from all'; + put 'tables in the WORK library.'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX,workobs=0'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&workobs) > 0 %then %do;'; + put '/* if debug mode, send back first XX records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10'; + put ',maxobs=&workobs'; + put ')'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '%macro mpe_columnlevelsecurity(tgtlib,tgtds,inds'; + put ',mode=VIEW'; + put ',groupds=work.groups'; + put ',clsds=work.clsview'; + put ',outds=CLSVIEW'; + put ',outmeta=work.cls_rules'; + put ');'; + put '%local col_list is_admin;'; + put '/* filter for the appropriate rules */'; + put 'proc sql;'; + put 'create table &outmeta as'; + put 'select CLS_VARIABLE_NM,'; + put 'min(case when CLS_HIDE=1 then 1 else 0 end) as CLS_HIDE'; + put 'from &clsds'; + put 'where &dc_dttmtfmt. lt tx_to'; + put 'and CLS_SCOPE in ("&mode",''ALL'')'; + put 'and CLS_ACTIVE=1'; + put '%if &mode=VIEW %then %do;'; + put 'and CLS_HIDE ne 1'; + put '%end;'; + put 'and upcase(CLS_GROUP) in (select upcase(groupname) from &groupds)'; + put 'and CLS_LIBREF="%upcase(&tgtlib)"'; + put 'and CLS_TABLE="%upcase(&tgtds)"'; + put 'group by CLS_VARIABLE_NM;'; + put '%let is_admin=0;'; + put 'proc sql;'; + put 'select count(*) into: is_admin from &groupds where groupname="&MPEADMINS";'; + put '%put &sysmacroname: &=is_admin;'; + put '%if %mf_nobs(work.cls_rules) = 0 or &is_admin>0 %then %do;'; + put '%put &sysmacroname: no CLS rules to apply;'; + put '%put &=is_admin;'; + put '/* copy using append for speed */'; + put 'data &outds;'; + put 'set &inds;'; + put 'stop;'; + put 'run;'; + put 'proc append base=&outds data=&inds;'; + put 'run;'; + put '/* ensure CLS_RULES is empty in case of admin */'; + put 'data &outmeta;'; + put 'set &outmeta;'; + put 'stop;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%else %if &mode=VIEW %then %do;'; + put '/* just send back the relevant columns */'; + put '%let col_list=0;'; + put 'proc sql noprint;'; + put 'select CLS_VARIABLE_NM into: col_list separated by '' '' from &outmeta'; + put 'where CLS_HIDE=0;'; + put '%if &col_list=0 %then %do;'; + put '/*'; + put 'We have columns that are set to CLS_HIDE=1 but we do not have any to'; + put 'explicitly show. Therefore we assume all columns are to be shown except'; + put 'those that are explicitly hidden.'; + put '*/'; + put 'proc sql noprint;'; + put 'select CLS_VARIABLE_NM into: col_list separated by '' '' from &outmeta'; + put 'where CLS_HIDE=1;'; + put 'data &outds;'; + put 'set &inds;'; + put 'drop &col_list;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put 'data &outds;'; + put 'set &inds;'; + put 'keep &col_list;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%else %if &mode=EDIT %then %do;'; + put '/*'; + put 'In this case we pass all columns and the frontend will filter out the'; + put 'ones that are not allowed to be edited.'; + put '*/'; + put 'data &outds;'; + put 'set &inds;'; + put 'stop;'; + put 'run;'; + put 'proc append base=&outds data=&inds;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: invalid mode - &mode!;'; + put '%abort;'; + put '%end;'; + put '%mend mpe_columnlevelsecurity;'; + put '%macro mm_getGroups('; + put 'user='; + put ',outds=work.mm_getGroups'; + put ',repo=foundation'; + put ',mDebug=0'; + put ')/*/STORE SOURCE*/;'; + put '%local mD oldrepo;'; + put '%let oldrepo=%sysfunc(getoption(metarepository));'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing mm_getGroups.sas;'; + put '%&mD.put _local_;'; + put '/* on some sites, user / group info is in a different metadata repo to the'; + put 'default */'; + put '%if &oldrepo ne &repo %then %do;'; + put 'options metarepository=&repo;'; + put '%end;'; + put '%if %length(&user)=0 %then %do;'; + put 'data &outds (keep=groupuri groupname groupdesc);'; + put 'length groupuri groupname groupdesc group_or_role $256;'; + put 'call missing(of _all_);'; + put 'i+1;'; + put 'do while'; + put '(metadata_getnobj("omsobj:IdentityGroup?@Id contains ''.''",i,groupuri)>0);'; + put 'rc=metadata_getattr(groupuri, "Name", groupname);'; + put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; + put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; + put 'if Group_or_Role = ''UserGroup'' then output;'; + put 'i+1;'; + put 'end;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put 'data &outds (keep=groupuri groupname groupdesc);'; + put 'length uri groupuri groupname groupdesc group_or_role $256;'; + put 'call missing(of _all_);'; + put 'rc=metadata_getnobj("omsobj:Person?@Name=''&user''",1,uri);'; + put 'if rc<=0 then do;'; + put 'putlog "%str(WARN)ING: rc=" rc "&user not found "'; + put '", or there was an issue reading the repository.";'; + put 'stop;'; + put 'end;'; + put 'a=1;'; + put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; + put 'if grpassn in (-3,-4) then do;'; + put 'putlog "%str(WARN)ING: No metadata groups found for &user";'; + put 'output;'; + put 'end;'; + put 'else do while (grpassn > 0);'; + put 'rc=metadata_getattr(groupuri, "Name", groupname);'; + put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; + put 'a+1;'; + put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; + put 'if Group_or_Role = ''UserGroup'' then output;'; + put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; + put 'end;'; + put 'run;'; + put '%end;'; + put '%if &oldrepo ne &repo %then %do;'; + put 'options metarepository=&oldrepo;'; + put '%end;'; + put '%mend mm_getGroups;'; + put '%macro dc_getusergroups(user=,outds=mm_getgroups);'; + put '%global dc_repo_users;'; + put '%if &dc_repo_users= %then %let dc_repo_users=foundation;'; + put '%mm_getgroups(user=&user,outds=&outds,repo=&dc_repo_users)'; + put '%mend dc_getusergroups;'; + put '%macro mpe_getgroups(user=,outds=);'; + put '%if not %symexist(dc_repo_users) %then %let dc_repo_users=foundation;'; + put '%dc_getusergroups(user=&user,outds=&outds)'; + put 'data;'; + put 'length groupname groupdesc $256;'; + put 'set &dc_libref..mpe_groups;'; + put 'where &dc_dttmtfmt. lt tx_to;'; + put 'where also upcase(user_name)="%upcase(&user)";'; + put 'groupname=group_name;'; + put 'groupdesc=group_desc;'; + put 'keep groupname groupdesc;'; + put 'run;'; + put 'data &outds;'; + put 'set &syslast &outds(keep=groupname groupdesc);'; + put 'run;'; + put '%mend mpe_getgroups;'; + put '%macro mf_getuniquename(prefix=MC);'; + put '&prefix.%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32-%length(&prefix))'; + put '%mend mf_getuniquename;'; + put '%macro mf_getattrn('; + put 'libds'; + put ',attr'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid rc;'; + put '%let dsid=%sysfunc(open(&libds,is));'; + put '%if &dsid = 0 %then %do;'; + put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; + put '%put %sysfunc(sysmsg());'; + put '-1'; + put '%end;'; + put '%else %do;'; + put '%sysfunc(attrn(&dsid,&attr))'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%mend mf_getattrn;'; + put '%macro mf_nobs(libds'; + put ')/*/STORE SOURCE*/;'; + put '%mf_getattrn(&libds,NLOBS)'; + put '%mend mf_nobs;'; + put '%macro mp_filtergenerate(inds,outref=filter);'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc - on macro entry)'; + put ')'; + put 'filename &outref temp;'; + put '%if %mf_nobs(&inds)=0 %then %do;'; + put '/* ensure we have a default filter */'; + put 'data _null_;'; + put 'file &outref;'; + put 'put ''1=1'';'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put 'proc sort data=&inds;'; + put 'by SUBGROUP_ID;'; + put 'run;'; + put 'data _null_;'; + put 'file &outref lrecl=32800;'; + put 'set &inds end=last;'; + put 'by SUBGROUP_ID;'; + put 'if _n_=1 then put ''(('';'; + put 'else if first.SUBGROUP_ID then put +1 GROUP_LOGIC ''('';'; + put 'else put +2 SUBGROUP_LOGIC;'; + put 'put +4 VARIABLE_NM OPERATOR_NM RAW_VALUE;'; + put 'if last.SUBGROUP_ID then put '')''@;'; + put 'if last then put '')'';'; + put 'run;'; + put '%end;'; + put '%mend mp_filtergenerate;'; + put '%macro mpe_filtermaster(mode,libds,'; + put 'dclib=,'; + put 'filter_rk=-1,'; + put 'outref=0,'; + put 'outds=work.query'; + put ');'; + put '%put &sysmacroname entry vars:;'; + put '%put _local_;'; + put '%let mode=%upcase(&mode);'; + put '%let libds=%upcase(&libds);'; + put '%mp_abort(iftrue= ('; + put '&mode ne EDIT and &mode ne VIEW and &mode ne DLOAD and &mode ne ULOAD'; + put ')'; + put ',mac=&sysmacroname'; + put ',msg=%str(Invalid MODE: &mode)'; + put ')'; + put '%mp_abort(iftrue= (&outref = 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Please provide a fileref!)'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc)'; + put ')'; + put 'filename &outref temp;'; + put '/* ensure outputs exist */'; + put 'data _null_;'; + put 'file &outref;'; + put 'put '' '';'; + put 'run;'; + put 'data &outds;'; + put 'set &dclib..mpe_filtersource;'; + put 'stop;'; + put 'run;'; + put '/**'; + put '* Deal with FILTER_RK first'; + put '*/'; + put '%if &filter_rk gt 0 %then %do;'; + put 'data _null_;'; + put 'file &outref;'; + put 'put ''( ''@@;'; + put 'set &dclib..mpe_filteranytable(where=(filter_rk=&filter_rk));'; + put 'call symputx(''filter_hash'',filter_hash,''l'');'; + put 'run;'; + put 'proc sort data=&dclib..mpe_filtersource(where=(filter_hash="&filter_hash"))'; + put 'out=&outds(drop=filter_hash filter_line processed_dttm);'; + put 'by filter_line;'; + put 'run;'; + put '%mp_filtergenerate(&outds,outref=&outref)'; + put '%end;'; + put '/* Now filter for current records if the MODE is EDIT or DLOAD */'; + put '%local varfrom varto;'; + put '%let varfrom=0;'; + put 'proc sql;'; + put 'select coalescec(var_txfrom,''0''), var_txto into: varfrom,:varto'; + put 'from &dclib..MPE_TABLES'; + put 'where &dc_dttmtfmt. lt tx_to'; + put 'and libref="%scan(&libds,1,.)" and dsn="%scan(&libds,2,.)";'; + put '%put &=varfrom;'; + put '%put &=varto;'; + put '/**'; + put '* Check if the date variables were mentioned in the query'; + put '* This is a trigger for serving a historical view instead of current'; + put '* we skip this part when checking an ULOAD as there are no date vars'; + put '*/'; + put '%if &varfrom ne 0 and (&mode=EDIT or &mode=DLOAD) %then %do;'; + put '%local validityvars;'; + put 'proc sql;'; + put 'select count(*) into: validityvars'; + put 'from &outds'; + put 'where variable_nm in ("&varfrom","&varto");'; + put '%if &validityvars=0 %then %do;'; + put 'data _null_;'; + put 'file &outref mod;'; + put 'length filter_text $32767;'; + put 'varfrom=symget(''varfrom'');'; + put 'varto=symget(''varto'');'; + put 'filter_text=catx('' '','; + put '''("%sysfunc(datetime(),'',"%mf_fmtdttm()",'')"dt <'',varto,'')'''; + put ');'; + put 'if &filter_rk > 0 then put ''AND '' filter_text;'; + put 'else put filter_text;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '/**'; + put '* Now do Row Level Security based on the MPE_ROW_LEVEL_SECURITY table'; + put '*/'; + put '/* first determine users group membership */'; + put '%mpe_getgroups(user=%mf_getuser(),outds=work.groups)'; + put '%local admin_check;'; + put 'proc sql;'; + put 'select count(*) into: admin_check'; + put 'from work.groups'; + put 'where groupname="&mpeadmins";'; + put '%put &sysmacroname: &=admin_check &=mpeadmins;'; + put '%if &admin_check=0 %then %do;'; + put '%local scopeval;'; + put '%if &mode=DLOAD %then %let scopeval=VIEW;'; + put '%if &mode=ULOAD %then %let scopeval=EDIT;'; + put '%else %let scopeval=&mode;'; + put '/* extract relevant rows */'; + put '%local rlsds;'; + put '%let rlsds=%mf_getuniquename();'; + put 'proc sql;'; + put 'create table work.&rlsds as'; + put 'select rls_group,'; + put 'rls_group_logic as group_logic,'; + put 'rls_subgroup_logic as subgroup_logic,'; + put 'rls_subgroup_id as subgroup_id,'; + put 'rls_variable_nm as variable_nm,'; + put 'rls_operator_nm as operator_nm,'; + put 'rls_raw_value as raw_value'; + put 'from &mpelib..mpe_row_level_security'; + put 'where &dc_dttmtfmt. lt tx_to'; + put 'and rls_scope in ("&scopeval",''ALL'')'; + put 'and upcase(rls_group) in (select upcase(groupname) from work.groups)'; + put 'and rls_libref="%scan(&libds,1,.)"'; + put 'and rls_table="%scan(&libds,2,.)"'; + put 'and rls_active=1'; + put 'order by rls_group,rls_subgroup_id;'; + put '%if &sqlobs>0 %then %do;'; + put '/* check if we currently have filter or not */'; + put 'data ;'; + put 'infile &outref end=eof;'; + put 'input;'; + put 'if _n_=1 and eof and cats(_infile_)='''' then newfilter=1;'; + put 'output;'; + put 'stop;'; + put 'run;'; + put 'data _null_;'; + put 'set &syslast;'; + put 'file &outref mod;'; + put 'if newfilter=1 then put ''('';'; + put 'else put ''AND ('';'; + put 'run;'; + put '/* loop through and apply filters for each group membership */'; + put '%local fref ds;'; + put '%let fref=%mf_getuniquefileref();'; + put '%let ds=%mf_getuniquename();'; + put 'proc sql noprint;'; + put 'select distinct rls_group into : group1 -'; + put 'from work.&rlsds;'; + put '%do i=1 %to &sqlobs;'; + put 'data work.&ds;'; + put 'set work.&rlsds;'; + put 'where rls_group="&&group&i";'; + put 'drop rls_group;'; + put 'run;'; + put '%mp_filtergenerate(&ds,outref=&fref)'; + put 'data _null_;'; + put 'infile &fref;'; + put 'file &outref mod;'; + put 'input;'; + put 'if &i>1 and _n_=1 then put '' OR '';'; + put 'put _infile_;'; + put 'run;'; + put '%end;'; + put 'data _null_;'; + put 'file &outref mod;'; + put 'put '')'';'; + put 'run;'; + put '%end; /* &sqlobs>0 */'; + put '%else %do;'; + put '%put &sysmacroname: no matching groups;'; + put 'data _null_;'; + put 'set work.groups;'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc>0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Row Level Security Generation Error)'; + put ')'; + put '%end; /* &admin_check=0 */'; + put '%put leaving &sysmacroname with the following query:;'; + put '%local empty;'; + put '%let empty=0;'; + put 'data _null_;'; + put 'infile &outref end=eof;'; + put 'input;'; + put 'putlog _infile_;'; + put 'if _n_=1 and eof and cats(_infile_)='''' then do;'; + put 'put ''1=1'';'; + put 'call symputx(''empty'',1,''l'');'; + put 'end;'; + put 'run;'; + put '%if &empty=1 %then %do;'; + put 'data _null_;'; + put 'file &outref;'; + put 'put ''1=1'';'; + put 'run;'; + put '%end;'; + put '%mend mpe_filtermaster;'; + put '%macro mm_assignlib('; + put 'libref'; + put ',mAbort=HARD'; + put ')/*/STORE SOURCE*/;'; + put '%local mp_abort msg;'; + put '%let mp_abort=0;'; + put '%if %sysfunc(libref(&libref)) %then %do;'; + put 'data _null_;'; + put 'length liburi LibName msg $200;'; + put 'call missing(of _all_);'; + put 'nobj=metadata_getnobj("omsobj:SASLibrary?@Libref=''&libref''",1,liburi);'; + put 'if nobj=1 then do;'; + put 'rc=metadata_getattr(liburi,"Name",LibName);'; + put '/* now try and assign it */'; + put 'if libname("&libref",,''meta'',cats(''liburi="'',liburi,''";'')) ne 0 then do;'; + put 'putlog "&libref could not be assigned";'; + put 'putlog liburi=;'; + put '/**'; + put '* Fetch the system message for display in the abort modal. This is'; + put '* not always helpful though. One example, previously received:'; + put '* NOTE: Libref XX refers to the same library metadata as libref XX.'; + put '*/'; + put 'msg=sysmsg();'; + put 'if msg=:''ERROR: Libref SAVE is not assigned.'' then do;'; + put 'msg=catx(" ",'; + put '"Could not assign %upcase(&libref).",'; + put '"Please check metadata permissions! Libname:",libname,'; + put '"Liburi:",liburi'; + put ');'; + put 'end;'; + put 'else if msg="ERROR: User does not have appropriate authorization "!!'; + put '"level for library SAVE."'; + put 'then do;'; + put 'msg=catx(" ",'; + put '"ERROR: User does not have appropriate authorization level",'; + put '"for library %upcase(&libref), libname:",libname,'; + put '"Liburi:",liburi'; + put ');'; + put 'end;'; + put 'call symputx(''msg'',msg,''l'');'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1,''l'');'; + put 'end;'; + put 'else do;'; + put 'put (_all_)(=);'; + put 'call symputx(''libname'',libname,''L'');'; + put 'call symputx(''liburi'',liburi,''L'');'; + put 'end;'; + put 'end;'; + put 'else if nobj>1 then do;'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; + put 'call symputx(''msg'',"More than one library with libref=&libref");'; + put 'end;'; + put 'else do;'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; + put 'call symputx(''msg'',"Library &libref not found in metadata");'; + put 'end;'; + put 'run;'; + put '%put NOTE: &msg;'; + put '%end;'; + put '%else %do;'; + put '%put NOTE: Library &libref is already assigned;'; + put '%end;'; + put '%mp_abort(iftrue= (&mp_abort=1)'; + put ',mac=mm_assignlib.sas'; + put ',msg=%superq(msg)'; + put ')'; + put '%mend mm_assignlib;'; + put '/** @cond */'; + put '%macro mf_getengine(libref'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid engnum rc engine;'; + put '/* in case the parameter is a libref.tablename, pull off just the libref */'; + put '%let libref = %upcase(%scan(&libref, 1, %str(.)));'; + put '%let dsid=%sysfunc('; + put 'open(sashelp.vlibnam(where=(libname="%upcase(&libref)")),i)'; + put ');'; + put '%if (&dsid ^= 0) %then %do;'; + put '%let engnum=%sysfunc(varnum(&dsid,ENGINE));'; + put '%let rc=%sysfunc(fetch(&dsid));'; + put '%let engine=%sysfunc(getvarc(&dsid,&engnum));'; + put '%put &libref. ENGINE is &engine.;'; + put '%let rc= %sysfunc(close(&dsid));'; + put '%end;'; + put '%upcase(&engine)'; + put '%mend mf_getengine;'; + put '/** @endcond */'; + put '%macro mm_assigndirectlib('; + put 'libref /* libref to assign from metadata */'; + put ',open_passthrough= /* provide an alias to produce the'; + put 'CONNECT TO statement for the'; + put 'relevant external database */'; + put ',sql_options= /* add any options to add to proc sql statement eg outobs='; + put '(only valid for pass through) */'; + put ',mDebug=0'; + put ',mAbort=0'; + put ')/*/STORE SOURCE*/;'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing mm_assigndirectlib.sas;'; + put '%&mD.put _local_;'; + put '%if &mAbort=1 %then %let mAbort=;'; + put '%else %let mAbort=%str(*);'; + put '%&mD.put NOTE: Creating direct (non META) connection to &libref library;'; + put '%local cur_engine;'; + put '%let cur_engine=%mf_getengine(&libref);'; + put '%if &cur_engine ne META and &cur_engine ne %then %do;'; + put '%put NOTE: &libref already has a direct (&cur_engine) libname connection;'; + put '%return;'; + put '%end;'; + put '%else %if %upcase(&libref)=WORK %then %do;'; + put '%put NOTE: We already have a direct connection to WORK :-) ;'; + put '%return;'; + put '%end;'; + put '/* need to determine the library ENGINE first */'; + put '%local engine;'; + put 'data _null_;'; + put 'length lib_uri engine $256;'; + put 'call missing (of _all_);'; + put '/* get URI for the particular library */'; + put 'rc1=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put '/* get the Engine attribute of the previous object */'; + put 'rc2=metadata_getattr(lib_uri,''Engine'',engine);'; + put 'putlog "mm_assigndirectlib for &libref:" rc1= lib_uri= rc2= engine=;'; + put 'call symputx("liburi",lib_uri,''l'');'; + put 'call symputx("engine",engine,''l'');'; + put 'run;'; + put '/* now obtain engine specific connection details */'; + put '%if &engine=BASE %then %do;'; + put '%&mD.put NOTE: Retrieving BASE library path;'; + put 'data _null_;'; + put 'length up_uri $256 path cat_path $1024;'; + put 'retain cat_path;'; + put 'call missing (of _all_);'; + put '/* get all the filepaths of the UsingPackages association */'; + put 'i=1;'; + put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; + put 'do while (rc3>0);'; + put '/* get the DirectoryName attribute of the previous object */'; + put 'rc4=metadata_getattr(up_uri,''DirectoryName'',path);'; + put 'if i=1 then path = ''("''!!trim(path)!!''" '';'; + put 'else path ='' "''!!trim(path)!!''" '';'; + put 'cat_path = trim(cat_path) !! " " !! trim(path) ;'; + put 'i+1;'; + put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; + put 'end;'; + put 'cat_path = trim(cat_path) !! ")";'; + put '&mD.putlog "NOTE: Getting physical path for &libref library";'; + put '&mD.putlog rc3= up_uri= rc4= cat_path= path=;'; + put '&mD.putlog "NOTE: Libname cmd will be:";'; + put '&mD.putlog "libname &libref" cat_path;'; + put 'call symputx("filepath",cat_path,''l'');'; + put 'run;'; + put '%if %sysevalf(&sysver<9.4) %then %do;'; + put 'libname &libref &filepath;'; + put '%end;'; + put '%else %do;'; + put '/* apply the new filelocks option to cater for temporary locks */'; + put 'libname &libref &filepath filelockwait=5;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=REMOTE %then %do;'; + put 'data x;'; + put 'length rcCon rcProp rc k 3 uriCon uriProp PropertyValue PropertyName'; + put 'Delimiter $256 properties $2048;'; + put 'retain properties;'; + put 'rcCon = metadata_getnasn("&liburi", "LibraryConnection", 1, uriCon);'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", 1, uriProp);'; + put 'k = 1;'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; + put 'do while (rcProp > 0);'; + put 'rc = metadata_getattr(uriProp , "DefaultValue",PropertyValue);'; + put 'rc = metadata_getattr(uriProp , "PropertyName",PropertyName);'; + put 'rc = metadata_getattr(uriProp , "Delimiter",Delimiter);'; + put 'properties = trim(properties) !! " " !! trim(PropertyName)'; + put '!! trim(Delimiter) !! trim(PropertyValue);'; + put 'output;'; + put 'k+1;'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; + put 'end;'; + put '%&mD.put NOTE: Getting properties for REMOTE SHARE &libref library;'; + put '&mD.put _all_;'; + put '%&mD.put NOTE: Libname cmd will be:;'; + put '%&mD.put libname &libref &engine &properties slibref=&libref;'; + put 'call symputx ("properties",trim(properties),''l'');'; + put 'run;'; + put 'libname &libref &engine &properties slibref=&libref;'; + put '%end;'; + put '%else %if &engine=OLEDB %then %do;'; + put '%&mD.put NOTE: Retrieving OLEDB connection details;'; + put 'data _null_;'; + put 'length domain datasource provider properties schema'; + put 'connx_uri domain_uri conprop_uri lib_uri schema_uri value $256.;'; + put 'call missing (of _all_);'; + put '/* get source connection ID */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; + put '/* get connection domain */'; + put 'rc1=metadata_getnasn(connx_uri,''Domain'',1,domain_uri);'; + put 'rc2=metadata_getattr(domain_uri,''Name'',domain);'; + put '&mD.putlog / ''NOTE: '' // ''NOTE- connection id: '' connx_uri ;'; + put '&mD.putlog ''NOTE- domain: '' domain;'; + put '/* get DSN and PROVIDER from connection properties */'; + put 'i=0;'; + put 'do until (rc<0);'; + put 'i+1;'; + put 'rc=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; + put 'rc2=metadata_getattr(conprop_uri,''Name'',value);'; + put 'if value=''Connection.OLE.Property.DATASOURCE.Name.xmlKey.txt'' then do;'; + put 'rc3=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; + put 'end;'; + put 'else if value=''Connection.OLE.Property.PROVIDER.Name.xmlKey.txt'' then do;'; + put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',provider);'; + put 'end;'; + put 'else if value=''Connection.OLE.Property.PROPERTIES.Name.xmlKey.txt'' then'; + put 'do;'; + put 'rc5=metadata_getattr(conprop_uri,''DefaultValue'',properties);'; + put 'end;'; + put 'end;'; + put '&mD.putlog ''NOTE- dsn/provider/properties: '' /'; + put 'datasource provider properties;'; + put '&mD.putlog ''NOTE- schema: '' schema // ''NOTE-'';'; + put '/* get SCHEMA */'; + put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,lib_uri);'; + put 'rc7=metadata_getattr(lib_uri,''SchemaName'',schema);'; + put 'call symputx(''SQL_domain'',domain,''l'');'; + put 'call symputx(''SQL_dsn'',datasource,''l'');'; + put 'call symputx(''SQL_provider'',provider,''l'');'; + put 'call symputx(''SQL_properties'',properties,''l'');'; + put 'call symputx(''SQL_schema'',schema,''l'');'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put 'proc sql &sql_options;'; + put 'connect to OLEDB as &open_passthrough(INSERT_SQL=YES'; + put '/* need additional properties to make this work */'; + put 'properties=(''Integrated Security''=SSPI'; + put '''Persist Security Info''=True'; + put '%sysfunc(compress(%str(&SQL_properties),%str(())))'; + put ')'; + put 'DATASOURCE=&sql_dsn PROMPT=NO'; + put 'PROVIDER=&sql_provider SCHEMA=&sql_schema CONNECTION = GLOBAL);'; + put '%end;'; + put '%else %do;'; + put 'LIBNAME &libref OLEDB PROPERTIES=&sql_properties'; + put 'DATASOURCE=&sql_dsn PROVIDER=&sql_provider SCHEMA=&sql_schema'; + put '%if %length(&sql_domain)>0 %then %do;'; + put 'authdomain="&sql_domain"'; + put '%end;'; + put 'connection=shared;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=ODBC %then %do;'; + put '&mD.%put NOTE: Retrieving ODBC connection details;'; + put 'data _null_;'; + put 'length connx_uri conprop_uri value datasource up_uri schema $256.;'; + put 'call missing (of _all_);'; + put '/* get source connection ID */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; + put '/* get connection properties */'; + put 'i=0;'; + put 'do until (rc2<0);'; + put 'i+1;'; + put 'rc2=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; + put 'rc3=metadata_getattr(conprop_uri,''Name'',value);'; + put 'if value=''Connection.ODBC.Property.DATASRC.Name.xmlKey.txt'' then do;'; + put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; + put 'rc2=-1;'; + put 'end;'; + put 'end;'; + put '/* get SCHEMA */'; + put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,up_uri);'; + put 'rc7=metadata_getattr(up_uri,''SchemaName'',schema);'; + put '&mD.put rc= connx_uri= rc2= conprop_uri= rc3= value= rc4= datasource='; + put 'rc6= up_uri= rc7= schema=;'; + put 'call symputx(''SQL_schema'',schema,''l'');'; + put 'call symputx(''SQL_dsn'',datasource,''l'');'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put 'proc sql &sql_options;'; + put 'connect to ODBC as &open_passthrough'; + put '(INSERT_SQL=YES DATASRC=&sql_dsn. CONNECTION=global);'; + put '%end;'; + put '%else %do;'; + put 'libname &libref ODBC DATASRC=&sql_dsn SCHEMA=&sql_schema;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=POSTGRES %then %do;'; + put '%put NOTE: Obtaining POSTGRES library details;'; + put 'data _null_;'; + put 'length database ignore_read_only_columns direct_exe preserve_col_names'; + put 'preserve_tab_names server schema authdomain user password'; + put 'prop name value uri urisrc $256.;'; + put 'call missing (of _all_);'; + put '/* get database value */'; + put 'prop=''Connection.DBMS.Property.DB.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,database,"");'; + put 'if database^='''' then database=''database=''!!quote(trim(database));'; + put 'call symputx(''database'',database,''l'');'; + put '/* get IGNORE_READ_ONLY_COLUMNS value */'; + put 'prop=''Library.DBMS.Property.DBIROC.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,ignore_read_only_columns,"");'; + put 'if ignore_read_only_columns^='''' then ignore_read_only_columns='; + put '''ignore_read_only_columns=''!!ignore_read_only_columns;'; + put 'call symputx(''ignore_read_only_columns'',ignore_read_only_columns,''l'');'; + put '/* get DIRECT_EXE value */'; + put 'prop=''Library.DBMS.Property.DirectExe.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,direct_exe,"");'; + put 'if direct_exe^='''' then direct_exe=''direct_exe=''!!direct_exe;'; + put 'call symputx(''direct_exe'',direct_exe,''l'');'; + put '/* get PRESERVE_COL_NAMES value */'; + put 'prop=''Library.DBMS.Property.PreserveColNames.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,preserve_col_names,"");'; + put 'if preserve_col_names^='''' then preserve_col_names='; + put '''preserve_col_names=''!!preserve_col_names;'; + put 'call symputx(''preserve_col_names'',preserve_col_names,''l'');'; + put '/* get PRESERVE_TAB_NAMES value */'; + put '/* be careful with PRESERVE_TAB_NAMES=YES - it will mean your table will'; + put 'become case sensitive!! */'; + put 'prop=''Library.DBMS.Property.PreserveTabNames.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,preserve_tab_names,"");'; + put 'if preserve_tab_names^='''' then preserve_tab_names='; + put '''preserve_tab_names=''!!preserve_tab_names;'; + put 'call symputx(''preserve_tab_names'',preserve_tab_names,''l'');'; + put '/* get SERVER value */'; + put 'if metadata_getnasn("&liburi","LibraryConnection",1,uri)>0 then do;'; + put 'prop=''Connection.DBMS.Property.SERVER.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop(uri,prop,server,"");'; + put 'end;'; + put 'if server^='''' then server=''server=''!!quote(cats(server));'; + put 'call symputx(''server'',server,''l'');'; + put '/* get SCHEMA value */'; + put 'if metadata_getnasn("&liburi","UsingPackages",1,uri)>0 then do;'; + put 'rc=metadata_getattr(uri,"SchemaName",schema);'; + put 'end;'; + put 'if schema^='''' then schema=''schema=''!!schema;'; + put 'call symputx(''schema'',schema,''l'');'; + put '/* get AUTHDOMAIN value */'; + put '/* this is only useful if the user account contains that auth domain'; + put 'if metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then do;'; + put 'rc=metadata_getnasn(uri,"Domain",1,urisrc);'; + put 'rc=metadata_getattr(urisrc,"Name",authdomain);'; + put 'end;'; + put 'if authdomain^='''' then authdomain=''authdomain=''!!quote(trim(authdomain));'; + put '*/'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/* get user & pass */'; + put 'if authdomain='''' & metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then'; + put 'do;'; + put 'rc=metadata_getattr(uri,"UserID",user);'; + put 'rc=metadata_getattr(uri,"Password",password);'; + put 'end;'; + put 'if user^='''' then do;'; + put 'user=''user=''!!quote(trim(user));'; + put 'password=''password=''!!quote(trim(password));'; + put 'end;'; + put 'call symputx(''user'',user,''l'');'; + put 'call symputx(''password'',password,''l'');'; + put '&md.put _all_;'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put '%put %str(WARN)ING: Passthrough option for postgres not yet supported;'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put '%if &mdebug=1 %then %do;'; + put '%put NOTE: Executing the following:/;'; + put '%put NOTE- libname &libref POSTGRES &database &ignore_read_only_columns;'; + put '%put NOTE- &direct_exe &preserve_col_names &preserve_tab_names;'; + put '%put NOTE- &server &schema &authdomain &user &password //;'; + put '%end;'; + put 'libname &libref POSTGRES &database &ignore_read_only_columns &direct_exe'; + put '&preserve_col_names &preserve_tab_names &server &schema &authdomain'; + put '&user &password;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=ORACLE %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null_;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema $256;'; + put 'call missing (of _all_);'; + put '/* get auth domain */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; + put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; + put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/* path */'; + put 'rc=metadata_getprop(assocuri1,'; + put '''Connection.Oracle.Property.PATH.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref ORACLE path=&path schema=&schema;'; + put '%put NOTE- authdomain=&authdomain;'; + put '%put NOTE-;'; + put 'libname &libref ORACLE path=&path schema=&schema authdomain=&authdomain;'; + put '%end;'; + put '%else %if &engine=SQLSVR %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; + put 'passwd $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; + put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; + put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; + put 'call symputx(''user'',userid,''l'');'; + put 'call symputx(''pass'',passwd,''l'');'; + put '/* path */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; + put 'rc=metadata_getprop(assocuri2,'; + put '''Connection.SQL.Property.Datasrc.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref SQLSVR datasrc=&path schema=&schema ;'; + put '%put NOTE- user="&user" pass="XXX";'; + put '%put NOTE-;'; + put 'libname &libref SQLSVR datasrc=&path schema=&schema user="&user" pass="&pass";'; + put '%end;'; + put '%else %if &engine=TERADATA %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; + put 'passwd $256;'; + put 'call missing (of _all_);'; + put '/* get auth domain */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; + put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; + put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/*'; + put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; + put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; + put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; + put 'call symputx(''user'',userid,''l'');'; + put 'call symputx(''pass'',passwd,''l'');'; + put '*/'; + put '/* path */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; + put 'rc=metadata_getprop(assocuri2,'; + put '''Connection.Teradata.Property.SERVER.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref TERADATA server="&path" schema=&schema ;'; + put '%put NOTe- authdomain=&authdomain;'; + put '%put NOTE-;'; + put 'libname &libref TERADATA server="&path" schema=&schema authdomain=&authdomain;'; + put '%end;'; + put '%else %if &engine= %then %do;'; + put '%put NOTE: Libref &libref is not registered in metadata;'; + put '%&mAbort.mp_abort('; + put 'msg=%str(ERR)OR: Libref &libref is not registered in metadata'; + put ',mac=mm_assigndirectlib.sas);'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put '%put %str(WARN)ING: Engine &engine is currently unsupported;'; + put '%put %str(WARN)ING- Please contact your support team.;'; + put '%return;'; + put '%end;'; + put '%mend mm_assigndirectlib;'; + put '%macro mm_getrepos('; + put 'outds=work.mm_getrepos'; + put ')/*/STORE SOURCE*/;'; + put '* use a temporary fileref to hold the response;'; + put 'filename response temp;'; + put '/* get list of libraries */'; + put 'proc metadata in='; + put '"1"'; + put 'out=response;'; + put 'run;'; + put '/* write the response to the log for debugging */'; + put '/*'; + put 'data _null_;'; + put 'infile response lrecl=1048576;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '*/'; + put '/* create an XML map to read the response */'; + put 'filename sxlemap temp;'; + put 'data _null_;'; + put 'file sxlemap;'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository";'; + put 'put "";'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Id";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Name";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Desc";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@DefaultNS";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryType";'; + put 'put "characterstring20";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryFormat";'; + put 'put "characterstring10";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@Access";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@CurrentAccess";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@PauseState";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Path";'; + put 'put "";'; + put 'put "characterstring256";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Engine";'; + put 'put "";'; + put 'put "characterstring8";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Options";'; + put 'put "";'; + put 'put "characterstring32";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataCreated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataUpdated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put ''
'';'; + put 'run;'; + put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; + put 'proc sort data= _XML_.SASRepos out=&outds;'; + put 'by name;'; + put 'run;'; + put '/* clear references */'; + put 'filename sxlemap clear;'; + put 'filename response clear;'; + put 'libname _XML_ clear;'; + put '%mend mm_getrepos;'; + put '%macro dc_assignlib(type,libref,passthru=);'; + put '%put &sysmacroname entry vars:;'; + put '%put _local_;'; + put '/* take current repository */'; + put '%local repo repocnt x;'; + put '%let repo=%sysfunc(getoption(metarepository));'; + put '/* get list of repositories and filter */'; + put '%mm_getrepos(outds=repos)'; + put '%let repocnt=0;'; + put 'data repos;'; + put 'set repos;'; + put 'where repositorytype in(''CUSTOM'',''FOUNDATION'')'; + put '& upcase(name) ne "%upcase(&repo)";'; + put 'keep id name ;'; + put 'call symputx(cats(''repo'',_n_),name,''l'');'; + put 'call symputx(''repocnt'',_n_,''l'');'; + put 'run;'; + put '/* find out which of these repositories has the libref we are searching for */'; + put '%local lib_uri;'; + put '%let lib_uri=NOTFOUND;'; + put 'data _null_; /* check default repo first */'; + put 'length lib_uri $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; + put 'run;'; + put '%if &lib_uri=NOTFOUND %then %do;'; + put '%do x=1 %to &repocnt;'; + put 'options metarepository=&&repo&x;'; + put 'data _null_;'; + put 'length lib_uri $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; + put 'run;'; + put '%if &lib_uri ne NOTFOUND %then %let x=%eval(&repocnt+1);'; + put '%end;'; + put '%end;'; + put '%if &type=READ %then %do;'; + put '%mm_assignlib(&libref)'; + put '%end;'; + put '%else %if &type=WRITE %then %do;'; + put '%mm_assigndirectlib(&libref,open_passthrough=&passthru)'; + put '%end;'; + put 'options metarepository=&repo;'; + put '%mend dc_assignlib;'; + put '%macro mm_getlibs('; + put 'outds=work.mm_getLibs'; + put ')/*/STORE SOURCE*/;'; + put '/*'; + put 'flags:'; + put 'OMI_SUCCINCT (2048) Do not return attributes with null values.'; + put 'OMI_GET_METADATA (256) Executes a GetMetadata call for each object that'; + put 'is returned by the GetMetadataObjects method.'; + put 'OMI_ALL_SIMPLE (8) Gets all of the attributes of the requested object.'; + put '*/'; + put 'data _null_;'; + put 'flags=2048+256+8;'; + put 'call symputx(''flags'',flags,''l'');'; + put 'run;'; + put '* use a temporary fileref to hold the response;'; + put 'filename response temp;'; + put '/* get list of libraries */'; + put 'proc metadata in='; + put ''''; + put '$METAREPOSITORY'; + put 'SASLibrary'; + put ''; + put 'SAS'; + put '&flags'; + put ''; + put ''''; + put 'out=response;'; + put 'run;'; + put '/* write the response to the log for debugging */'; + put 'data _null_;'; + put 'infile response lrecl=32767;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '/* create an XML map to read the response */'; + put 'filename sxlemap temp;'; + put 'data _null_;'; + put 'file sxlemap;'; + put 'put '''';'; + put 'put '''';'; + put 'put ''//Objects/SASLibrary'';'; + put 'put ''>17'';'; + put 'put ''//Objects/SASLibrary/@Id'';'; + put 'put ''256>'';'; + put 'put ''//Objects/SASLibrary/@Name'';'; + put 'put ''8'';'; + put 'put ''//Objects/SASLibrary/@Libref'';'; + put 'put ''>12'';'; + put 'put ''//Objects/SASLibrary/@Engine'';'; + put 'put ''
'';'; + put 'run;'; + put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; + put '/* sort the response by library name */'; + put 'proc sort data=_XML_.saslibrary out=&outds;'; + put 'by libraryname;'; + put 'run;'; + put '/* clear references */'; + put 'filename sxlemap clear;'; + put 'filename response clear;'; + put 'libname _XML_ clear;'; + put '%mend mm_getlibs;'; + put '%macro mm_gettables('; + put 'uri='; + put ',outds=work.mm_gettables'; + put ',getauth=YES'; + put ')/*/STORE SOURCE*/;'; + put 'data &outds;'; + put 'length uri serveruri conn_uri domainuri libname ServerContext AuthDomain'; + put 'path_schema usingpkguri type tableuri $256 id $17'; + put 'libdesc $200 libref engine $8 IsDBMSLibname IsPreassigned $1'; + put 'tablename $50 /* metadata table names can be longer than $32 */'; + put ';'; + put 'keep libname libdesc libref engine ServerContext path_schema AuthDomain'; + put 'tableuri tablename IsPreassigned IsDBMSLibname id;'; + put 'call missing (of _all_);'; + put 'uri=symget(''uri'');'; + put 'rc= metadata_getattr(uri, "Name", libname);'; + put 'if rc <0 then do;'; + put 'put ''The library is not defined in this metadata repository.'';'; + put 'stop;'; + put 'end;'; + put 'rc= metadata_getattr(uri, "Desc", libdesc);'; + put 'rc= metadata_getattr(uri, "Libref", libref);'; + put 'rc= metadata_getattr(uri, "Engine", engine);'; + put 'rc= metadata_getattr(uri, "IsDBMSLibname", IsDBMSLibname);'; + put 'rc= metadata_getattr(uri, "IsPreassigned", IsPreassigned);'; + put 'rc= metadata_getattr(uri, "Id", Id);'; + put '/*** Get associated ServerContext ***/'; + put 'rc= metadata_getnasn(uri, "DeployedComponents", 1, serveruri);'; + put 'if rc > 0 then rc2= metadata_getattr(serveruri, "Name", ServerContext);'; + put 'else ServerContext='''';'; + put '/*** If the library is a DBMS library, get the Authentication Domain'; + put 'associated with the DBMS connection credentials ***/'; + put 'if IsDBMSLibname="1" and "&getauth"=''YES'' then do;'; + put 'rc= metadata_getnasn(uri, "LibraryConnection", 1, conn_uri);'; + put 'if rc>0 then do;'; + put 'rc2= metadata_getnasn(conn_uri, "Domain", 1, domainuri);'; + put 'if rc2>0 then rc3= metadata_getattr(domainuri, "Name", AuthDomain);'; + put 'end;'; + put 'end;'; + put '/*** Get the path/database schema for this library ***/'; + put 'rc=metadata_getnasn(uri, "UsingPackages", 1, usingpkguri);'; + put 'if rc>0 then do;'; + put 'rc=metadata_resolve(usingpkguri,type,id);'; + put 'if type=''Directory'' then'; + put 'rc=metadata_getattr(usingpkguri, "DirectoryName", path_schema);'; + put 'else if type=''DatabaseSchema'' then'; + put 'rc=metadata_getattr(usingpkguri, "Name", path_schema);'; + put 'else path_schema="unknown";'; + put 'end;'; + put '/*** Get the tables associated with this library ***/'; + put '/*** If DBMS, tables are associated with DatabaseSchema ***/'; + put 'if type=''DatabaseSchema'' then do;'; + put 't=1;'; + put 'ntab=metadata_getnasn(usingpkguri, "Tables", t, tableuri);'; + put 'if ntab>0 then do t=1 to ntab;'; + put 'tableuri='''';'; + put 'tablename='''';'; + put 'ntab=metadata_getnasn(usingpkguri, "Tables", t, tableuri);'; + put 'tabrc= metadata_getattr(tableuri, "Name", tablename);'; + put 'output;'; + put 'end;'; + put 'else put ''Library '' libname '' has no tables registered'';'; + put 'end;'; + put 'else if type in (''Directory'',''SASLibrary'') then do;'; + put 't=1;'; + put 'ntab=metadata_getnasn(uri, "Tables", t, tableuri);'; + put 'if ntab>0 then do t=1 to ntab;'; + put 'tableuri='''';'; + put 'tablename='''';'; + put 'ntab=metadata_getnasn(uri, "Tables", t, tableuri);'; + put 'tabrc= metadata_getattr(tableuri, "Name", tablename);'; + put 'output;'; + put 'end;'; + put 'else put ''Library '' libname '' has no tables registered'';'; + put 'end;'; + put 'run;'; + put 'proc sort;'; + put 'by tablename tableuri;'; + put 'run;'; + put '%mend mm_gettables;'; + put '%macro mm_getcols('; + put 'tableuri='; + put ',outds=work.mm_getcols'; + put ')/*/STORE SOURCE*/;'; + put 'data &outds;'; + put 'keep col: SAS:;'; + put 'length assoc uri coluri colname coldesc SASColumnType SASFormat SASInformat'; + put 'SASPrecision SASColumnLength $256;'; + put 'call missing (of _all_);'; + put 'uri=symget(''tableuri'');'; + put 'n=1;'; + put 'do while (metadata_getnasn(uri,''Columns'',n,coluri)>0);'; + put 'rc3=metadata_getattr(coluri,"Name",colname);'; + put 'rc3=metadata_getattr(coluri,"Desc",coldesc);'; + put 'rc4=metadata_getattr(coluri,"SASColumnType",SASColumnType);'; + put 'rc5=metadata_getattr(coluri,"SASFormat",SASFormat);'; + put 'rc6=metadata_getattr(coluri,"SASInformat",SASInformat);'; + put 'rc7=metadata_getattr(coluri,"SASPrecision",SASPrecision);'; + put 'rc8=metadata_getattr(coluri,"SASColumnLength",SASColumnLength);'; + put 'output;'; + put 'call missing(colname,coldesc,SASColumnType,SASFormat,SASInformat'; + put ',SASPrecision,SASColumnLength);'; + put 'n+1;'; + put 'end;'; + put 'run;'; + put 'proc sort;'; + put 'by colname;'; + put 'run;'; + put '%mend mm_getcols;'; + put '%macro mm_createdataset(libds=,tableuri=,outds=work.mm_createdataset,mDebug=0);'; + put '%local dbg errorcheck tempds1 tempds2 tempds3;'; + put '%if &mDebug=0 %then %let dbg=*;'; + put '%let errorcheck=1;'; + put '%if %index(&libds,.)>0 %then %do;'; + put '/* get lib uri */'; + put 'data;run;%let tempds1=&syslast;'; + put '%mm_getlibs(outds=&tempds1)'; + put 'data _null_;'; + put 'set &tempds1;'; + put 'if upcase(libraryref)="%upcase(%scan(&libds,1,.))";'; + put 'call symputx(''liburi'',LibraryId,''l'');'; + put 'run;'; + put '/* get ds uri */'; + put 'data;run;%let tempds2=&syslast;'; + put '%mm_gettables(uri=&liburi,outds=&tempds2)'; + put 'data _null_;'; + put 'set &tempds2;'; + put 'where upcase(tablename)="%upcase(%scan(&libds,2,.))";'; + put '&dbg putlog tableuri=;'; + put 'call symputx(''tableuri'',tableuri);'; + put 'run;'; + put '%end;'; + put 'data;run;'; + put '%let tempds3=&syslast;'; + put '%mm_getcols(tableuri=&tableuri,outds=&tempds3)'; + put '%if %mf_nobs(&tempds3)=0 %then %do;'; + put '%put &libds (&tableuri) has no columns defined!!;'; + put 'data &outds;'; + put 'run;'; + put '%return;'; + put '%end;'; + put 'data _null_;'; + put 'set &tempds3 end=last;'; + put 'if _n_=1 then call execute(''data &outds;'');'; + put 'length attrib $32767;'; + put 'if SAScolumntype=''C'' then type=''$'';'; + put 'attrib=''attrib ''!!cats(colname)!!'' length=''!!cats(type,SASColumnLength,''.'');'; + put 'if not missing(sasformat) then fmt='' format=''!!cats(sasformat);'; + put 'if not missing(sasinformat) then infmt='' informat=''!!cats(sasinformat);'; + put 'if not missing(coldesc) then desc='' label=''!!quote(cats(coldesc));'; + put 'attrib=trim(attrib)!!fmt!!infmt!!desc!!'';'';'; + put 'call execute(attrib);'; + put 'if last then call execute(''call missing(of _all_);stop;run;'');'; + put 'run;'; + put '%mend mm_createdataset;'; + put '%macro dc_createdataset(libds=mm_getlibs,outds=viewdata);'; + put '%mm_createdataset(libds=&libds,outds=viewdata)'; + put '%mend dc_createdataset;'; + put '%macro mm_gettableid('; + put 'libref='; + put ',ds='; + put ',outds=work.mm_gettableid'; + put ',mDebug=0'; + put ')/*/STORE SOURCE*/;'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put 'data &outds;'; + put 'length uri usingpkguri id type tableuri tablename tmpuri $256;'; + put 'call missing(of _all_);'; + put 'keep tableuri tablename;'; + put 'n=1;'; + put 'rc=0;'; + put 'if metadata_getnobj("omsobj:SASLibrary?@Libref=''&libref''",n,uri)<1 then do;'; + put 'put "Library &libref not found";'; + put 'stop;'; + put 'end;'; + put '&mD.putlog "uri is " uri;'; + put 'if metadata_getnasn(uri, "UsingPackages", 1, usingpkguri)>0 then do;'; + put 'rc=metadata_resolve(usingpkguri,type,id);'; + put '&mD.putlog "Type is " type;'; + put 'end;'; + put 'if type=''DatabaseSchema'' then tmpuri=usingpkguri;'; + put 'else tmpuri=uri;'; + put 't=1;'; + put 'do while(metadata_getnasn(tmpuri, "Tables", t, tableuri)>0);'; + put 't+1;'; + put 'rc= metadata_getattr(tableuri, "Name", tablename);'; + put '&mD.putlog "Table is " tablename;'; + put 'if upcase(tablename)="%upcase(&ds)" then do;'; + put 'output;'; + put 'end;'; + put 'end;'; + put 'run;'; + put '%mend mm_gettableid;'; + put '%macro dc_gettableid(libref='; + put ',ds='; + put ',outds=);'; + put '%mm_gettableid(libref=&libref,ds=&ds,outds=&outds)'; + put '%if %mf_nobs(&outds)=0 %then %do;'; + put 'data &outds;'; + put 'tableuri='''';'; + put 'tablename="&ds";'; + put 'run;'; + put '%end;'; + put '%mend dc_gettableid;'; + put '%macro mf_existds(libds'; + put ')/*/STORE SOURCE*/;'; + put '%if %sysfunc(exist(&libds)) ne 1 & %sysfunc(exist(&libds,VIEW)) ne 1 %then 0;'; + put '%else 1;'; + put '%mend mf_existds;'; + put '%macro mf_getvarcount(libds,typefilter=A'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid nvars rc outcnt x;'; + put '%let dsid=%sysfunc(open(&libds));'; + put '%let nvars=.;'; + put '%let outcnt=0;'; + put '%let typefilter=%upcase(&typefilter);'; + put '%if &dsid %then %do;'; + put '%let nvars=%sysfunc(attrn(&dsid,NVARS));'; + put '%if &typefilter=A %then %let outcnt=&nvars;'; + put '%else %if &nvars>0 %then %do x=1 %to &nvars;'; + put '/* increment based on variable type */'; + put '%if %sysfunc(vartype(&dsid,&x))=&typefilter %then %do;'; + put '%let outcnt=%eval(&outcnt+1);'; + put '%end;'; + put '%end;'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%else %do;'; + put '%put unable to open &libds (rc=&dsid);'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '&outcnt'; + put '%mend mf_getvarcount;'; + put '%macro mf_abort(mac=mf_abort.sas, msg=, iftrue=%str(1=1)'; + put ')/*/STORE SOURCE*/;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mf_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%abort;'; + put '%mend mf_abort;'; + put '/** @endcond */'; + put '%macro mf_verifymacvars('; + put 'verifyVars /* list of macro variable NAMES */'; + put ',makeUpcase=NO /* set to YES to make all the variable VALUES uppercase */'; + put ',mAbort=SOFT'; + put ')/*/STORE SOURCE*/;'; + put '%local verifyIterator verifyVar abortmsg;'; + put '%do verifyIterator=1 %to %sysfunc(countw(&verifyVars,%str( )));'; + put '%let verifyVar=%qscan(&verifyVars,&verifyIterator,%str( ));'; + put '%if not %symexist(&verifyvar) %then %do;'; + put '%let abortmsg= Variable &verifyVar is MISSING;'; + put '%goto exit_err;'; + put '%end;'; + put '%if %length(%trim(&&&verifyVar))=0 %then %do;'; + put '%let abortmsg= Variable &verifyVar is EMPTY;'; + put '%goto exit_err;'; + put '%end;'; + put '%if &makeupcase=YES %then %do;'; + put '%let &verifyVar=%upcase(&&&verifyvar);'; + put '%end;'; + put '%end;'; + put '%goto exit_success;'; + put '%exit_err:'; + put '%put &abortmsg;'; + put '%mf_abort(iftrue=(&mabort ne SOFT),'; + put 'mac=mf_verifymacvars,'; + put 'msg=%str(&abortmsg)'; + put ')'; + put '0'; + put '%return;'; + put '%exit_success:'; + put '1'; + put '%mend mf_verifymacvars;'; + put '%macro mddl_sas_cntlout(libds=WORK.CNTLOUT);'; + put 'proc sql;'; + put 'create table &libds('; + put 'FMTNAME char(32) label=''Format name'''; + put '/*'; + put 'to accommodate larger START values, mp_loadformat.sas will need the'; + put 'SQL dependency removed (proc sql needs to accommodate 3 index values in'; + put 'a 32767 ibufsize limit)'; + put '*/'; + put ',START char(10000) label=''Starting value for format'''; + put ',END char(32767) label=''Ending value for format'''; + put ',LABEL char(32767) label=''Format value label'''; + put ',MIN num length=3 label=''Minimum length'''; + put ',MAX num length=3 label=''Maximum length'''; + put ',DEFAULT num length=3 label=''Default length'''; + put ',LENGTH num length=3 label=''Format length'''; + put ',FUZZ num label=''Fuzz value'''; + put ',PREFIX char(2) label=''Prefix characters'''; + put ',MULT num label=''Multiplier'''; + put ',FILL char(1) label=''Fill character'''; + put ',NOEDIT num length=3 label=''Is picture string noedit?'''; + put ',TYPE char(1) label=''Type of format'''; + put ',SEXCL char(1) label=''Start exclusion'''; + put ',EEXCL char(1) label=''End exclusion'''; + put ',HLO char(13) label=''Additional information'''; + put ',DECSEP char(1) label=''Decimal separator'''; + put ',DIG3SEP char(1) label=''Three-digit separator'''; + put ',DATATYPE char(8) label=''Date/time/datetime?'''; + put ',LANGUAGE char(8) label=''Language for date strings'''; + put ');'; + put '%mend mddl_sas_cntlout;'; + put '%macro mp_cntlout('; + put 'iftrue=(1=1)'; + put ',libcat='; + put ',cntlout=work.fmtextract'; + put ',fmtlist=0'; + put ')/*/STORE SOURCE*/;'; + put '%local ddlds cntlds i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%let ddlds=%mf_getuniquename();'; + put '%let cntlds=%mf_getuniquename();'; + put '%mddl_sas_cntlout(libds=&ddlds)'; + put '%if %index(&libcat,-)>0 and %scan(&libcat,2,-)=FC %then %do;'; + put '%let libcat=%scan(&libcat,1,-);'; + put '%end;'; + put 'proc format lib=&libcat cntlout=&cntlds;'; + put '%if "&fmtlist" ne "0" %then %do;'; + put 'select'; + put '%do i=1 %to %sysfunc(countw(&fmtlist));'; + put '%scan(&fmtlist,&i,%str( ))'; + put '%end;'; + put ';'; + put '%end;'; + put 'run;'; + put 'data &cntlout;'; + put 'if 0 then set &ddlds;'; + put 'set &cntlds;'; + put 'if type="N" then do;'; + put 'start=cats(start);'; + put 'end=cats(end);'; + put 'end;'; + put 'run;'; + put 'proc sort;'; + put 'by fmtname start;'; + put 'run;'; + put 'proc sql;'; + put 'drop table &ddlds,&cntlds;'; + put '%mend mp_cntlout;'; + put '/** @endcond */'; + put '%macro mp_dsmeta(libds,outds=work.dsmeta);'; + put '%local ds1 ds2;'; + put 'data;run; %let ds1=&syslast;'; + put 'data;run; %let ds2=&syslast;'; + put '/* setup the ODS capture */'; + put 'ods output attributes=&ds1 enginehost=&ds2;'; + put '/* export the metadata */'; + put 'proc contents data=&libds;'; + put 'run;'; + put '/* load it into a single table */'; + put 'data &outds (keep=ods_table name value);'; + put 'length ods_table $10 name label2 label1 label $100'; + put 'value cvalue cvalue1 cvalue2 $1000'; + put 'nvalue nvalue1 nvalue2 8;'; + put 'if _n_=1 then call missing (of _all_);'; + put '* putlog (_all_)(=);'; + put 'set &ds1 (in=atrs) &ds2 (in=eng);'; + put 'if atrs then do;'; + put 'ods_table=''ATTRIBUTES'';'; + put 'name=coalescec(label1,label);'; + put 'value=coalescec(cvalue1,cvalue,put(coalesce(nvalue1,nvalue),best.));'; + put 'output;'; + put 'if label2 ne '''' then do;'; + put 'name=label2;'; + put 'value=coalescec(cvalue2,put(nvalue2,best.));'; + put 'output;'; + put 'end;'; + put 'end;'; + put 'else if eng then do;'; + put 'ods_table=''ENGINEHOST'';'; + put 'name=coalescec(label1,label);'; + put 'value=coalescec(cvalue1,cvalue,put(coalesce(nvalue1,nvalue),best.));'; + put 'output;'; + put 'end;'; + put 'run;'; + put 'proc sql;'; + put 'drop table &ds1, &ds2;'; + put '%mend mp_dsmeta;'; + put '%macro mp_getcols(ds, outds=work.cols);'; + put '%local dropds;'; + put 'proc contents noprint data=&ds'; + put 'out=_data_ (keep=name type length label varnum format:);'; + put 'run;'; + put '%let dropds=&syslast;'; + put 'data &outds(keep=name type length varnum format label ddtype fmtname);'; + put 'set &dropds(rename=(format=fmtname type=type2));'; + put 'name=upcase(name);'; + put 'if type2=2 then do;'; + put 'length format $49.;'; + put 'if fmtname='''' then format=cats(''$'',length,''.'');'; + put 'else if formatl=0 then format=cats(fmtname,''.'');'; + put 'else format=cats(fmtname,formatl,''.'');'; + put 'type=''C'';'; + put 'ddtype=''CHARACTER'';'; + put 'end;'; + put 'else do;'; + put 'if fmtname='''' then format=cats(length,''.'');'; + put 'else if formatl=0 then format=cats(fmtname,''.'');'; + put 'else if formatd=0 then format=cats(fmtname,formatl,''.'');'; + put 'else format=cats(fmtname,formatl,''.'',formatd);'; + put 'type=''N'';'; + put 'if format=:''DATETIME'' or format=:''E8601DT'' then ddtype=''DATETIME'';'; + put 'else if format=:''DATE'' or format=:''DDMMYY'' or format=:''MMDDYY'''; + put 'or format=:''YYMMDD'' or format=:''E8601DA'' or format=:''B8601DA'''; + put 'or format=:''MONYY'''; + put 'then ddtype=''DATE'';'; + put 'else if format=:''TIME'' then ddtype=''TIME'';'; + put 'else ddtype=''NUMERIC'';'; + put 'end;'; + put 'if label='''' then label=name;'; + put 'run;'; + put 'proc sql;'; + put 'drop table &dropds;'; + put '%mend mp_getcols;'; + put '/** @cond */'; + put '%macro mf_existfeature(feature'; + put ')/*/STORE SOURCE*/;'; + put '%let feature=%upcase(&feature);'; + put '%local platform;'; + put '%let platform=%mf_getplatform();'; + put '%if &feature= %then %do;'; + put '%put No feature was requested for detection;'; + put '%end;'; + put '%else %if &feature=COLCONSTRAINTS %then %do;'; + put '%if "%substr(&sysver,1,1)"="4" or "%substr(&sysver,1,1)"="5" %then 0;'; + put '%else 1;'; + put '%end;'; + put '%else %if &feature=PROCLUA %then %do;'; + put '/* https://blogs.sas.com/content/sasdummy/2015/08/03/using-lua-within-your-sas-programs */'; + put '%if &platform=SASVIYA %then 1;'; + put '%else %if "&sysver"="9.2" or "&sysver"="9.3" %then 0;'; + put '%else %if "&SYSVLONG" < "9.04.01M3" %then 0;'; + put '%else 1;'; + put '%end;'; + put '%else %if &feature=DBMS_MEMTYPE %then %do;'; + put '/* does dbms_memtype exist in dictionary.tables? */'; + put '%if "%substr(&sysver,1,1)"="4" or "%substr(&sysver,1,1)"="5" %then 0;'; + put '%else 1;'; + put '%end;'; + put '%else %if &feature=EXPORTXLS %then %do;'; + put '/* is it possible to PROC EXPORT an excel file? */'; + put '%if "%substr(&sysver,1,1)"="4" or "%substr(&sysver,1,1)"="5" %then 1;'; + put '%else %if %sysfunc(sysprod(SAS/ACCESS Interface to PC Files)) = 1 %then 1;'; + put '%else 0;'; + put '%end;'; + put '%else %do;'; + put '-1'; + put '%put &sysmacroname: &feature not found;'; + put '%end;'; + put '%mend mf_existfeature;'; + put '/** @endcond */'; + put '%macro mf_getschema(libref'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid vnum rc schema;'; + put '/* in case the parameter is a libref.tablename, pull off just the libref */'; + put '%let libref = %upcase(%scan(&libref, 1, %str(.)));'; + put '%let dsid=%sysfunc(open(sashelp.vlibnam(where=('; + put 'libname="%upcase(&libref)" and sysname=''Schema/Owner'''; + put ')),i));'; + put '%if (&dsid ^= 0) %then %do;'; + put '%let vnum=%sysfunc(varnum(&dsid,SYSVALUE));'; + put '%let rc=%sysfunc(fetch(&dsid));'; + put '%let schema=%sysfunc(getvarc(&dsid,&vnum));'; + put '%put &libref. schema is &schema.;'; + put '%let rc= %sysfunc(close(&dsid));'; + put '%end;'; + put '&schema'; + put '%mend mf_getschema;'; + put '/** @endcond */'; + put '%macro mf_isblank(param'; + put ')/*/STORE SOURCE*/;'; + put '%sysevalf(%superq(param)=,boolean)'; + put '%mend mf_isblank;'; + put '%macro mp_dropmembers('; + put 'list /* space separated list of datasets / views */'; + put ',libref=WORK /* can only drop from a single library at a time */'; + put ',iftrue=%str(1=1)'; + put ')/*/STORE SOURCE*/;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%if %mf_isblank(&list) %then %do;'; + put '%put NOTE: nothing to drop!;'; + put '%return;'; + put '%end;'; + put 'proc datasets lib=&libref nolist;'; + put 'delete &list;'; + put 'delete &list /mtype=view;'; + put 'run;'; + put '%mend mp_dropmembers;'; + put '%macro mp_getconstraints(lib=WORK'; + put ',ds='; + put ',outds=mp_getconstraints'; + put ',mdebug=0'; + put ')/*/STORE SOURCE*/;'; + put '%let lib=%upcase(&lib);'; + put '%let ds=%upcase(&ds);'; + put '/**'; + put '* Cater for environments where sashelp.vcncolu is not available'; + put '*/'; + put '%if %sysfunc(exist(sashelp.vcncolu,view))=0 %then %do;'; + put 'proc sql;'; + put 'create table &outds('; + put 'libref char(8)'; + put ',TABLE_NAME char(32)'; + put ',constraint_type char(8) label=''Constraint Type'''; + put ',constraint_name char(32) label=''Constraint Name'''; + put ',column_name char(32) label=''Column'''; + put ',constraint_order num'; + put ');'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Neither dictionary tables nor sashelp provides a constraint order column,'; + put '* however they DO arrive in the correct order. So, create the col.'; + put '**/'; + put '%local vw;'; + put '%let vw=%mf_getuniquename(prefix=mp_getconstraints_vw_);'; + put 'data &vw /view=&vw;'; + put 'set sashelp.vcncolu;'; + put 'where table_catalog="&lib";'; + put '/* use retain approach to reset the constraint order with each constraint */'; + put 'length tmp $1000;'; + put 'retain tmp;'; + put 'drop tmp;'; + put 'if tmp ne catx(''|'',table_catalog,table_name,constraint_name) then do;'; + put 'constraint_order=1;'; + put 'end;'; + put 'else constraint_order+1;'; + put 'tmp=catx(''|'',table_catalog, table_name,constraint_name);'; + put 'run;'; + put '/* must use SQL as proc datasets does not support length changes */'; + put 'proc sql noprint;'; + put 'create table &outds as'; + put 'select upcase(a.TABLE_CATALOG) as libref'; + put ',upcase(a.TABLE_NAME) as TABLE_NAME'; + put ',a.constraint_type'; + put ',a.constraint_name'; + put ',b.column_name'; + put ',b.constraint_order'; + put 'from dictionary.TABLE_CONSTRAINTS a'; + put 'left join &vw b'; + put 'on upcase(a.TABLE_CATALOG)=upcase(b.TABLE_CATALOG)'; + put 'and upcase(a.TABLE_NAME)=upcase(b.TABLE_NAME)'; + put 'and a.constraint_name=b.constraint_name'; + put '/**'; + put '* We cannot apply this clause to the underlying dictionary table. See:'; + put '* https://communities.sas.com/t5/SAS-Programming/Unexpected-Where-Clause-behaviour-in-dictionary-TABLE/m-p/771554#M244867'; + put '* cannot use`where calculated libref="&lib"` either as it will STILL execute'; + put '* all the underlying constraint queries, causing exception errors in some'; + put '* cases: https://github.com/sasjs/core/issues/283'; + put '*/'; + put 'where a.TABLE_CATALOG="&lib"'; + put '%if "&ds" ne "" %then %do;'; + put 'and upcase(a.TABLE_NAME)="&ds"'; + put 'and upcase(b.TABLE_NAME)="&ds"'; + put '%end;'; + put 'order by libref, table_name, constraint_name, constraint_order'; + put ';'; + put '/* tidy up */'; + put '%mp_dropmembers('; + put '&vw,'; + put 'iftrue=(&mdebug=0)'; + put ')'; + put '%mend mp_getconstraints;'; + put '%macro mp_getpk('; + put 'lib,'; + put 'ds=0,'; + put 'outds=work.mp_getpk,'; + put 'mdebug=0'; + put ')/*/STORE SOURCE*/;'; + put '%local engine schema ds1 ds2 ds3 dsn tabs1 tabs2 sum pk4sure pkdefault finalpks'; + put 'pkfromindex;'; + put '%let lib=%upcase(&lib);'; + put '%let ds=%upcase(&ds);'; + put '%let engine=%mf_getengine(&lib);'; + put '%let schema=%mf_getschema(&lib);'; + put '%let ds1=%mf_getuniquename(prefix=getpk_ds1);'; + put '%let ds2=%mf_getuniquename(prefix=getpk_ds2);'; + put '%let ds3=%mf_getuniquename(prefix=getpk_ds3);'; + put '%let tabs1=%mf_getuniquename(prefix=getpk_tabs1);'; + put '%let tabs2=%mf_getuniquename(prefix=getpk_tabs2);'; + put '%let sum=%mf_getuniquename(prefix=getpk_sum);'; + put '%let pk4sure=%mf_getuniquename(prefix=getpk_pk4sure);'; + put '%let pkdefault=%mf_getuniquename(prefix=getpk_pkdefault);'; + put '%let pkfromindex=%mf_getuniquename(prefix=getpk_pkfromindex);'; + put '%let finalpks=%mf_getuniquename(prefix=getpk_finalpks);'; + put '%local dbg;'; + put '%if &mdebug=1 %then %do;'; + put '%put &sysmacroname entry vars:;'; + put '%put _local_;'; + put '%end;'; + put '%else %let dbg=*;'; + put 'proc sql;'; + put 'create table &ds1 as'; + put 'select libname as libref'; + put ',upcase(memname) as dsn'; + put ',memtype'; + put ',upcase(name) as name'; + put ',type'; + put ',length'; + put ',varnum'; + put ',label'; + put ',format'; + put ',idxusage'; + put ',notnull'; + put 'from dictionary.columns'; + put 'where upcase(libname)="&lib"'; + put '%if &ds ne 0 %then %do;'; + put 'and upcase(memname)="&ds"'; + put '%end;'; + put ';'; + put '%if &engine=SQLSVR %then %do;'; + put 'proc sql;'; + put 'connect using &lib;'; + put 'create table work.&ds2 as'; + put 'select * from connection to &lib('; + put 'select'; + put 's.name as SchemaName,'; + put 't.name as memname,'; + put 'tc.name as name,'; + put 'ic.key_ordinal as KeyOrderNr'; + put 'from'; + put 'sys.schemas s'; + put 'inner join sys.tables t on s.schema_id=t.schema_id'; + put 'inner join sys.indexes i on t.object_id=i.object_id'; + put 'inner join sys.index_columns ic on i.object_id=ic.object_id'; + put 'and i.index_id=ic.index_id'; + put 'inner join sys.columns tc on ic.object_id=tc.object_id'; + put 'and ic.column_id=tc.column_id'; + put 'where i.is_primary_key=1'; + put 'and s.name=%str(%'')&schema%str(%'')'; + put 'order by t.name, ic.key_ordinal ;'; + put ');disconnect from &lib;'; + put 'create table &ds3 as'; + put 'select a.*'; + put ',case when b.name is not null then 1 else 0 end as pk_ind'; + put 'from work.&ds1 a'; + put 'left join work.&ds2 b'; + put 'on a.dsn=b.memname'; + put 'and upcase(a.name)=upcase(b.name)'; + put 'order by libref,dsn;'; + put '%end;'; + put '%else %do;'; + put '%if &ds = 0 %then %let dsn=;'; + put '/* get all constraints, in constraint order*/'; + put '%mp_getconstraints(lib=&lib,ds=&dsn,outds=work.&ds2)'; + put '/* extract cols that are clearly primary keys */'; + put 'proc sql;'; + put 'create table &pk4sure as'; + put 'select libref'; + put ',table_name'; + put ',constraint_name'; + put ',constraint_order'; + put ',column_name as name'; + put 'from work.&ds2'; + put 'where constraint_type=''PRIMARY'''; + put 'order by 1,2,3,4;'; + put '/* extract unique constraints where every col is also NOT NULL */'; + put 'proc sql;'; + put 'create table &sum as'; + put 'select a.libref'; + put ',a.table_name'; + put ',a.constraint_name'; + put ',count(a.column_name) as unq_cnt'; + put ',count(b.column_name) as nul_cnt'; + put 'from work.&ds2(where=(constraint_type =''UNIQUE'')) a'; + put 'left join work.&ds2(where=(constraint_type =''NOT NULL'')) b'; + put 'on a.libref=b.libref'; + put 'and a.table_name=b.table_name'; + put 'and a.column_name=b.column_name'; + put 'group by 1,2,3'; + put 'having unq_cnt=nul_cnt;'; + put '/* extract cols from the relevant unique constraints */'; + put 'create table &pkdefault as'; + put 'select a.libref'; + put ',a.table_name'; + put ',a.constraint_name'; + put ',b.constraint_order'; + put ',b.column_name as name'; + put 'from &sum a'; + put 'left join &ds2(where=(constraint_type =''UNIQUE'')) b'; + put 'on a.libref=b.libref'; + put 'and a.table_name=b.table_name'; + put 'and a.constraint_name=b.constraint_name'; + put 'order by 1,2,3,4;'; + put '/* extract cols from the relevant unique INDEXES */'; + put 'create table &pkfromindex as'; + put 'select libname as libref'; + put ',memname as table_name'; + put ',indxname as constraint_name'; + put ',indxpos as constraint_order'; + put ',name'; + put 'from dictionary.indexes'; + put 'where nomiss=''yes'' and unique=''yes'' and upcase(libname)="&lib"'; + put '%if &ds ne 0 %then %do;'; + put 'and upcase(memname)="&ds"'; + put '%end;'; + put 'order by 1,2,3,4;'; + put '/* create one table */'; + put 'data &finalpks;'; + put 'set &pkdefault &pk4sure &pkfromindex;'; + put 'pk_ind=1;'; + put '/* if there are multiple unique constraints, take the first */'; + put 'by libref table_name constraint_name;'; + put 'retain keepme;'; + put 'if first.table_name then keepme=1;'; + put 'if first.constraint_name and not first.table_name then keepme=0;'; + put 'if keepme=1;'; + put 'run;'; + put '/* join back to starting table */'; + put 'proc sql;'; + put 'create table &ds3 as'; + put 'select a.*'; + put ',b.constraint_order'; + put ',case when b.pk_ind=1 then 1 else 0 end as pk_ind'; + put 'from work.&ds1 a'; + put 'left join work.&finalpks b'; + put 'on a.libref=b.libref'; + put 'and a.dsn=b.table_name'; + put 'and upcase(a.name)=upcase(b.name)'; + put 'order by libref,dsn,constraint_order;'; + put '%end;'; + put '/* prepare tables */'; + put 'proc sql;'; + put 'create table work.&tabs1 as select'; + put 'libname as libref'; + put ',upcase(memname) as dsn'; + put ',memtype'; + put '%if %mf_existfeature(DBMS_MEMTYPE)=1 %then %do;'; + put ',dbms_memtype'; + put '%end;'; + put '%else %do;'; + put ',''n/a'' as dbms_memtype format=$32.'; + put '%end;'; + put ',typemem'; + put ',memlabel'; + put ',nvar'; + put ',compress'; + put 'from dictionary.tables'; + put 'where upcase(libname)="&lib"'; + put '%if &ds ne 0 %then %do;'; + put 'and upcase(memname)="&ds"'; + put '%end;'; + put ';'; + put 'data &tabs2;'; + put 'set &ds3;'; + put 'length pk_fields $512;'; + put 'retain pk_fields;'; + put 'by libref dsn constraint_order;'; + put 'if first.dsn then pk_fields='''';'; + put 'if pk_ind=1 then pk_fields=catx('' '',pk_fields,name);'; + put 'if last.dsn then output;'; + put 'run;'; + put 'proc sql;'; + put 'create table &outds as'; + put 'select a.libref'; + put ',a.dsn'; + put ',a.memtype'; + put ',a.dbms_memtype'; + put ',a.typemem'; + put ',a.memlabel'; + put ',a.nvar'; + put ',a.compress'; + put ',b.pk_fields'; + put 'from work.&tabs1 a'; + put 'left join work.&tabs2 b'; + put 'on a.libref=b.libref'; + put 'and a.dsn=b.dsn;'; + put '/* tidy up */'; + put '%mp_dropmembers('; + put '&ds1 &ds2 &ds3 &dsn &tabs1 &tabs2 &sum &pk4sure &pkdefault &finalpks,'; + put 'iftrue=(&mdebug=0)'; + put ')'; + put '%mend mp_getpk;'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as FMTCAT,'; + put 'FMTNAME'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'LENGTH num'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.length as MAXW'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put ')))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '%macro mf_getvarlist(libds'; + put ',dlm=%str( )'; + put ',quote=no'; + put ',typefilter=A'; + put ')/*/STORE SOURCE*/;'; + put '/* declare local vars */'; + put '%local outvar dsid nvars x rc dlm q var vtype;'; + put '/* credit Rowland Hale - byte34 is double quote, 39 is single quote */'; + put '%if %upcase("e)=DOUBLE %then %let q=%qsysfunc(byte(34));'; + put '%else %if %upcase("e)=SINGLE %then %let q=%qsysfunc(byte(39));'; + put '/* open dataset in macro */'; + put '%let dsid=%sysfunc(open(&libds));'; + put '%if &dsid %then %do;'; + put '%let nvars=%sysfunc(attrn(&dsid,NVARS));'; + put '%if &nvars>0 %then %do;'; + put '/* add variables with supplied delimeter */'; + put '%do x=1 %to &nvars;'; + put '/* get variable type */'; + put '%let vtype=%sysfunc(vartype(&dsid,&x));'; + put '%if &vtype=&typefilter or &typefilter=A %then %do;'; + put '%let var=&q.%sysfunc(varname(&dsid,&x))&q.;'; + put '%if &var=&q&q %then %do;'; + put '%put &sysmacroname: Empty column found in &libds!;'; + put '%let var=&q. &q.;'; + put '%end;'; + put '%if %quote(&outvar)=%quote() %then %let outvar=&var;'; + put '%else %let outvar=&outvar.&dlm.&var.;'; + put '%end;'; + put '%end;'; + put '%end;'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: Unable to open &libds (rc=&dsid);'; + put '%put &sysmacroname: SYSMSG= %sysfunc(sysmsg());'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%do;%unquote(&outvar)%end;'; + put '%mend mf_getvarlist;'; + put '%macro mf_getvartype(libds /* two level name */'; + put ', var /* variable name from which to return the type */'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid vnum vtype rc;'; + put '/* Open dataset */'; + put '%let dsid = %sysfunc(open(&libds));'; + put '%if &dsid. > 0 %then %do;'; + put '/* Get variable number */'; + put '%let vnum = %sysfunc(varnum(&dsid, &var));'; + put '/* Get variable type (C/N) */'; + put '%if(&vnum. > 0) %then %let vtype = %sysfunc(vartype(&dsid, &vnum.));'; + put '%else %do;'; + put '%put NOTE: Variable &var does not exist in &libds;'; + put '%let vtype = %str( );'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: dataset &libds not opened! (rc=&dsid);'; + put '%put &sysmacroname: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '/* Close dataset */'; + put '%let rc = %sysfunc(close(&dsid));'; + put '/* Return variable type */'; + put '&vtype'; + put '%mend mf_getvartype;'; + put '%macro mf_mkdir(dir'; + put ')/*/STORE SOURCE*/;'; + put '%local lastchar child parent;'; + put '%let lastchar = %substr(&dir, %length(&dir));'; + put '%if (%bquote(&lastchar) eq %str(:)) %then %do;'; + put '/* Cannot create drive mappings */'; + put '%return;'; + put '%end;'; + put '%if (%bquote(&lastchar)=%str(/)) or (%bquote(&lastchar)=%str(\)) %then %do;'; + put '/* last char is a slash */'; + put '%if (%length(&dir) eq 1) %then %do;'; + put '/* one single slash - root location is assumed to exist */'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put '/* strip last slash */'; + put '%let dir = %substr(&dir, 1, %length(&dir)-1);'; + put '%end;'; + put '%end;'; + put '%if (%sysfunc(fileexist(%bquote(&dir))) = 0) %then %do;'; + put '/* directory does not exist so prepare to create */'; + put '/* first get the childmost directory */'; + put '%let child = %scan(&dir, -1, %str(/\:));'; + put '/*'; + put 'If child name = path name then there are no parents to create. Else'; + put 'they must be recursively scanned.'; + put '*/'; + put '%if (%length(&dir) gt %length(&child)) %then %do;'; + put '%let parent = %substr(&dir, 1, %length(&dir)-%length(&child));'; + put '%mf_mkdir(&parent)'; + put '%end;'; + put '/*'; + put 'Now create the directory. Complain loudly of any errs.'; + put '*/'; + put '%let dname = %sysfunc(dcreate(&child, &parent));'; + put '%if (%bquote(&dname) eq ) %then %do;'; + put '%put %str(ERR)OR: could not create &parent + &child;'; + put '%abort cancel;'; + put '%end;'; + put '%else %do;'; + put '%put Directory created: &dir;'; + put '%end;'; + put '%end;'; + put '/* exit quietly if directory did exist.*/'; + put '%mend mf_mkdir;'; + put '%macro mp_searchdata(lib='; + put ',ds='; + put ',string= /* the query will use a contains (?) operator */'; + put ',numval= /* numeric must match exactly */'; + put ',outloc=0'; + put ',outlib=MPSEARCH'; + put ',outobs=-1'; + put ',filter_text=%str(1=1)'; + put ')/*/STORE SOURCE*/;'; + put '%local table_list table table_num table colnum col start_tm check_tm vars type'; + put 'coltype;'; + put '%put process began at %sysfunc(datetime(),datetime19.);'; + put '%if &syscc ge 4 %then %do;'; + put '%put %str(WAR)NING: SYSCC=&syscc on macro entry;'; + put '%return;'; + put '%end;'; + put '%if &string = %then %let type=N;'; + put '%else %let type=C;'; + put '%if "&outloc"="0" %then %do;'; + put '%let outloc=%sysfunc(pathname(work))/%mf_getuniquename();'; + put '%end;'; + put '%mf_mkdir(&outloc)'; + put 'libname &outlib "&outloc";'; + put '/* get the list of tables in the library */'; + put 'proc sql noprint;'; + put 'select distinct memname into: table_list separated by '' '''; + put 'from dictionary.tables'; + put 'where upcase(libname)="%upcase(&lib)"'; + put '%if &ds ne %then %do;'; + put 'and upcase(memname)=%upcase("&ds")'; + put '%end;'; + put ';'; + put '/* check that we have something to check */'; + put '%if %length(&table_list)=0 %then %put library &lib contains no tables!;'; + put '/* loop through each table */'; + put '%else %do table_num=1 %to %sysfunc(countw(&table_list,%str( )));'; + put '%let table=%scan(&table_list,&table_num,%str( ));'; + put '%let vars=%mf_getvarlist(&lib..&table);'; + put '%if %length(&vars)=0 %then %do;'; + put '%put NO COLUMNS IN &lib..&table! This will be skipped.;'; + put '%end;'; + put '%else %do;'; + put '%let check_tm=%sysfunc(datetime());'; + put '/* prep input */'; + put 'data &outlib..&table;'; + put 'set &lib..&table;'; + put 'where %unquote(&filter_text) and ( 0'; + put '/* loop through columns */'; + put '%do colnum=1 %to %sysfunc(countw(&vars,%str( )));'; + put '%let col=%scan(&vars,&colnum,%str( ));'; + put '%let coltype=%mf_getvartype(&lib..&table,&col);'; + put '%if &type=C and &coltype=C %then %do;'; + put '/* if a char column, see if it contains the string */'; + put 'or ("&col"n ? "&string")'; + put '%end;'; + put '%else %if &type=N and &coltype=N %then %do;'; + put '/* if numeric match exactly */'; + put 'or ("&col"n = &numval)'; + put '%end;'; + put '%end;'; + put ');'; + put '%if &outobs>-1 %then %do;'; + put 'if _n_ > &outobs then stop;'; + put '%end;'; + put 'run;'; + put '%put Search query for &table took'; + put '%sysevalf(%sysfunc(datetime())-&check_tm) seconds;'; + put '%if &syscc ne 0 %then %do;'; + put '%put %str(ERR)ROR: SYSCC=&syscc when processing &lib..&table;'; + put '%return;'; + put '%end;'; + put '%if %mf_nobs(&outlib..&table)=0 %then %do;'; + put 'proc sql;'; + put 'drop table &outlib..&table;'; + put '%end;'; + put '%end;'; + put '%end;'; + put '%put process finished at %sysfunc(datetime(),datetime19.);'; + put '%mend mp_searchdata;'; + put '%macro mp_validatecol(incol,rule,outcol);'; + put '/* tempcol is given a unique name with every invocation */'; + put '%local tempcol;'; + put '%let tempcol=%mf_getuniquename();'; + put '%if &rule=ISINT %then %do;'; + put '&outcol=0;'; + put 'if not missing(&incol) then do;'; + put '&tempcol=input(&incol,?? best32.);'; + put 'if not missing(&tempcol) then if mod(&tempcol,1)=0 then &outcol=1;'; + put 'end;'; + put 'drop &tempcol;'; + put '%end;'; + put '%else %if &rule=ISNUM %then %do;'; + put '/*'; + put 'credit SØREN LASSEN'; + put 'https://sasmacro.blogspot.com/2009/06/welcome-isnum-macro.html'; + put '*/'; + put '&tempcol=input(&incol,?? best32.);'; + put 'if missing(&tempcol) then &outcol=0;'; + put 'else &outcol=1;'; + put 'drop &tempcol;'; + put '%end;'; + put '%else %if &rule=LIBDS %then %do;'; + put '/* match libref.dataset */'; + put 'if _n_=1 then do;'; + put 'retain &tempcol;'; + put '&tempcol=prxparse(''/^[_a-z]\w{0,7}\.[_a-z]\w{0,31}$/i'');'; + put 'if missing(&tempcol) then do;'; + put 'putlog "%str(ERR)OR: Invalid expression for LIBDS";'; + put 'stop;'; + put 'end;'; + put 'drop &tempcol;'; + put 'end;'; + put 'if prxmatch(&tempcol, trim(&incol)) then &outcol=1;'; + put 'else &outcol=0;'; + put '%end;'; + put '%else %if &rule=FORMAT %then %do;'; + put '/* match valid format - regex could probably be improved */'; + put 'if _n_=1 then do;'; + put 'retain &tempcol;'; + put '&tempcol=prxparse(''/^[_a-z\$]\w{0,31}\.[0-9]*$/i'');'; + put 'if missing(&tempcol) then do;'; + put 'putlog "%str(ERR)OR: Invalid expression for FORMAT";'; + put 'stop;'; + put 'end;'; + put 'drop &tempcol;'; + put 'end;'; + put 'if prxmatch(&tempcol, trim(&incol)) then &outcol=1;'; + put 'else &outcol=0;'; + put '%end;'; + put '%mend mp_validatecol;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file viewdata.sas'; + put '@brief Provide the raw view of the data'; + put '@details Pass a LIBDS and FILTER_RK to return a dataset for viewing.'; + put 'VIEW datasets include all columns / rows (unlike EDIT, which are filtered'; + put 'for current records and don''t include the SCD2 etc cols).'; + put '

Service Inputs

'; + put '
SASCONTROLTABLE
'; + put '|LIBDS:$41.|FILTER_RK:$5.|SEARCHTYPE:$4|SEARCHVAL:$1000'; + put '|---|---|---|---'; + put '|DC258467.MPE_X_TEST|-1|CHAR|Some String|'; + put '

Service Outputs

'; + put '
cols
'; + put '@li DDTYPE'; + put '@li FORMAT'; + put '@li LABEL'; + put '@li LENGTH'; + put '@li NAME'; + put '@li TYPE'; + put '@li VARNUM'; + put '
sasparams
'; + put '@li FILTER_TEXT'; + put '@li NOBS'; + put '@li PK_FIELDS - string seperated list of primary key fields, if they exist'; + put '@li TABLENAME'; + put '@li TABLEURI'; + put '@li VARS'; + put '
viewdata
'; + put 'The raw data from the target table.'; + put '

SAS Macros

'; + put '@li dc_assignlib.sas'; + put '@li dc_createdataset.sas'; + put '@li dc_gettableid.sas'; + put '@li mf_existds.sas'; + put '@li mf_getvarcount.sas'; + put '@li mf_nobs.sas'; + put '@li mf_verifymacvars.sas'; + put '@li mp_abort.sas'; + put '@li mp_cntlout.sas'; + put '@li mp_dsmeta.sas'; + put '@li mp_getcols.sas'; + put '@li mp_getpk.sas'; + put '@li mp_jsonout.sas'; + put '@li mp_searchdata.sas'; + put '@li mp_validatecol.sas'; + put '@li mpe_columnlevelsecurity.sas'; + put '@li mpe_filtermaster.sas'; + put '@version 9.2'; + put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; + put 'downloaded from here: https://4gl.uk/dcdeploy'; + put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; + put 'and may not be re-distributed or re-sold without the express permission of'; + put '4GL Apps Ltd.'; + put '**/'; + put '%mpeinit()'; + put '/* configure macvars */'; + put '%global LIBDS FILTER_RK SEARCHVAL SEARCHTYPE FMT_IND;'; + put '%let maxrows=250;'; + put '/* avoid code injection */'; + put '%let FMT_IND=0;'; + put '%let SEARCHTYPE=;'; + put '%let SEARCHVAL=;'; + put '%let FILTER_RK=;'; + put '%let LIBDS=;'; + put '/**'; + put '* Validate inputs'; + put '*/'; + put 'data work.intest;'; + put 'length libds $41 filter_rk 8. searchval $100 searchtype $4;'; + put 'set work.SASCONTROLTABLE;'; + put '/* validate filter_rk */'; + put 'if filter_rk le 0 then filter_rk=-1;'; + put '/* check if the request is for a format catalog */'; + put 'if substr(cats(reverse(libds)),1,3)=:''CF-'' then do;'; + put 'libds=scan(libds,1,''-'');'; + put 'putlog "Format Catalog Captured";'; + put 'call symputx(''fmt_ind'',1);'; + put 'end;'; + put 'putlog (_all_)(=);'; + put '/* validate libds */'; + put '%mp_validatecol(LIBDS,LIBDS,is_libds)'; + put 'if searchtype in (''CHAR'',''NUM'') then do;'; + put 'searchval=tranwrd(searchval,''%'','''');'; + put 'searchval=tranwrd(searchval,''&'','''');'; + put 'searchval=tranwrd(searchval,'';'','''');'; + put 'searchval=tranwrd(searchval,''"'','''');'; + put 'call symputx(''searchtype'',searchtype);'; + put 'call symputx(''searchval'',searchval);'; + put 'end;'; + put 'else if searchtype not in ('''',''NONE'') then do;'; + put 'putlog ''ERR'' ''OR: Invalid searchtype:'' searchtype;'; + put 'stop;'; + put 'end;'; + put 'if is_libds=0 then do;'; + put 'putlog ''ERR'' ''OR: Invalid libds:'' libds;'; + put 'stop;'; + put 'end;'; + put 'else do;'; + put 'call symputx(''filter_rk'',filter_rk);'; + put 'call symputx(''libds'',libds);'; + put 'end;'; + put 'output;'; + put 'stop;'; + put 'run;'; + put '%mp_abort(iftrue= (%mf_verifymacvars(libds filter_rk fmt_ind)=0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem with macro inputs)'; + put ')'; + put '%mp_abort(iftrue= (%mf_nobs(work.intest)=0)'; + put ',mac=&_program'; + put ',msg=%str(Some err with service inputs)'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(syscc=&syscc)'; + put ')'; + put '/**'; + put '* assign the Library'; + put '*/'; + put '%dc_assignlib(READ,%scan(&LIBDS,1,.))'; + put '/* abort if looking for a format and the catalog doesn''t exist */'; + put '%mp_abort(iftrue= (&fmt_ind=1 and %sysfunc(exist(&libds,CATALOG))=0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Catalog &libds does not exist!)'; + put ')'; + put '/**'; + put 'check if dataset can actually be opened - as library may exist but it may not'; + put 'be possible to assign, and even if it can, the physical table may not exist'; + put '**/'; + put 'data _null_;'; + put 'if &fmt_ind=0 then do;'; + put 'dsid=open("&libds");'; + put 'rc=close(dsid);'; + put 'end;'; + put 'else dsid=42;'; + put 'call symputx(''existds'',dsid,''l'');'; + put 'putlog ''dataset exists check:'' dsid;'; + put 'run;'; + put '/**'; + put '* get the data'; + put '*/'; + put '%global dsobs;'; + put '%let dsobs=0;'; + put '%macro x();'; + put '%if &existds>0 %then %do;'; + put '%if &fmt_ind=1 %then %do;'; + put '/* export format and point the libds to the output table from here on */'; + put '%mp_cntlout('; + put 'libcat=&libds'; + put ',fmtlist=0'; + put ',cntlout=work.fmtextract'; + put ')'; + put '%let libds=WORK.FMTEXTRACT;'; + put '%end;'; + put 'proc sql noprint;'; + put 'select count(*) into: dsobs from &libds;'; + put '%put preparing query;'; + put '%mpe_filtermaster(VIEW,&libds,'; + put 'dclib=&mpelib,'; + put 'filter_rk=&filter_rk,'; + put 'outref=filtref,'; + put 'outds=work.query'; + put ')'; + put '%put printing generated filterquery:;'; + put 'data _null_;'; + put 'infile filtref;'; + put 'input;'; + put 'putlog _infile_;'; + put 'run;'; + put '%if &searchtype=NONE or "%trim(&searchtype) " = " " %then %do;'; + put '/* get row count */'; + put 'filename rows temp;'; + put 'data _null_;'; + put 'file rows;'; + put 'infile filtref end=eof;'; + put 'input;'; + put 'if _n_=1 then do;'; + put 'put ''proc sql;'';'; + put 'put "select count(*) into: dsobs from &libds where";'; + put 'end;'; + put 'put _infile_;'; + put 'if eof then put '';'';'; + put 'run;'; + put 'data _null_;'; + put 'infile rows;'; + put 'input;'; + put 'putlog _infile_;'; + put 'run;'; + put '%inc rows;'; + put '/* send actual data, filtered and row-capped */'; + put 'data work.viewdata;'; + put 'set &libds;'; + put 'where %inc filtref;;'; + put 'if _n_>&maxrows then stop;'; + put 'run;'; + put '%if %mf_nobs(work.viewdata)=0 %then %do;'; + put 'data work.viewdata;'; + put '/* send empty row if empty table to help with hot rendering */'; + put 'output;'; + put 'set work.viewdata;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put 'data work.vwsearch/view=work.vwsearch;'; + put 'set &libds;'; + put 'where %inc filtref;;'; + put 'run;'; + put '%if %upcase(&searchtype)=CHAR %then %do;'; + put '%mp_searchdata(lib=work'; + put ',ds=vwsearch'; + put ',string=%superq(searchval)'; + put ',outobs=&maxrows'; + put ')'; + put '%end;'; + put '%else %if %upcase(&searchtype)=NUM %then %do;'; + put '%mp_searchdata(lib=work'; + put ',ds=vwsearch'; + put ',numval=%superq(searchval)'; + put ',outobs=&maxrows'; + put ')'; + put '%end;'; + put '%if %mf_existds(libds=MPSEARCH.vwsearch) %then %do;'; + put '%let dsobs=%mf_nobs(MPSEARCH.vwsearch);'; + put 'data viewdata;'; + put 'set MPSEARCH.vwsearch;'; + put 'if _n_<&maxrows;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%let dsobs=0;'; + put 'data viewdata;'; + put 'set &libds;'; + put 'stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '/* physical table is not accessible so create from metatadata definition */'; + put '%dc_createdataset(libds=&libds,outds=viewdata)'; + put 'data viewData;'; + put 'output;'; + put 'set viewdata;'; + put 'run;'; + put '/* ensure filtref and work.query exist to avoid downstream issues */'; + put 'filename filtref temp;'; + put 'data work.query;'; + put 'file filtref;'; + put 'x=0;'; + put 'put x;'; + put 'run;'; + put '%end;'; + put '%mend x; %x()'; + put '/* apply column level security */'; + put '%mpe_columnlevelsecurity(%scan(&libds,1,.),%scan(&libds,2,.),work.viewdata'; + put ',mode=VIEW'; + put ',clsds=&mpelib..mpe_column_level_security'; + put ',groupds=work.groups /* was created in mpe_filtermaster */'; + put ',outds=work.viewdata2'; + put ',outmeta=work.cls_rules'; + put ')'; + put '/* get table uri (if sas 9) to enable linking direct to lineage */'; + put '%dc_gettableid(libref=%scan(&libds,1,.)'; + put ',ds=%scan(&libds,2,.)'; + put ',outds=work.parambase'; + put ')'; + put 'data _null_;'; + put 'infile filtref end=eof;'; + put 'input;'; + put 'length filter_text $32767;'; + put 'retain filter_text;'; + put 'filter_text=catx('' '',filter_text,_infile_);'; + put 'if eof then do;'; + put 'if cats(filter_text)=''1=1'' then filter_text='''';'; + put 'call symputx(''filter_text'',filter_text);'; + put 'end;'; + put 'run;'; + put '%mp_getpk(%scan(&libds,1,.), ds=%scan(&libds,2,.), outds=work.pk_fields)'; + put '%let pk_fields=;'; + put 'data _null_;'; + put 'set work.pk_fields;'; + put 'call symputx(''pk_fields'',pk_fields);'; + put 'run;'; + put 'data work.sasparams;'; + put 'set work.parambase;'; + put 'format FILTER_TEXT $32767.;'; + put 'FILTER_TEXT=symget(''FILTER_TEXT'');'; + put 'length PK_FIELDS $512;'; + put 'PK_FIELDS=symget(''PK_FIELDS'');'; + put 'nobs=&dsobs;'; + put 'vars=%mf_getvarcount(viewdata);'; + put 'maxrows=&maxrows;'; + put 'run;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(syscc=&syscc)'; + put ')'; + put '%mp_getcols(&libds, outds=cols)'; + put '%mp_dsmeta(&libds, outds=dsmeta)'; + put '%webout(OPEN)'; + put '%webout(OBJ,cls_rules)'; + put '%webout(OBJ,cols)'; + put '%webout(OBJ,dsmeta)'; + put '%webout(OBJ,query)'; + put '%webout(OBJ,sasparams)'; + put '%webout(OBJ,viewData2,fmt=Y,showmeta=YES,dslabel=viewdata)'; + put '%webout(CLOSE)'; + put '%mpeterm()'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=viewlibarray; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Files

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as FMTCAT,'; + put 'FMTNAME'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'LENGTH num'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.length as MAXW'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put ')))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] workobs= (0) When set to a positive integer, will create a new'; + put 'output object (WORK) which contains this number of observations from all'; + put 'tables in the WORK library.'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX,workobs=0'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&workobs) > 0 %then %do;'; + put '/* if debug mode, send back first XX records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10'; + put ',maxobs=&workobs'; + put ')'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '%macro mm_getGroups('; + put 'user='; + put ',outds=work.mm_getGroups'; + put ',repo=foundation'; + put ',mDebug=0'; + put ')/*/STORE SOURCE*/;'; + put '%local mD oldrepo;'; + put '%let oldrepo=%sysfunc(getoption(metarepository));'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing mm_getGroups.sas;'; + put '%&mD.put _local_;'; + put '/* on some sites, user / group info is in a different metadata repo to the'; + put 'default */'; + put '%if &oldrepo ne &repo %then %do;'; + put 'options metarepository=&repo;'; + put '%end;'; + put '%if %length(&user)=0 %then %do;'; + put 'data &outds (keep=groupuri groupname groupdesc);'; + put 'length groupuri groupname groupdesc group_or_role $256;'; + put 'call missing(of _all_);'; + put 'i+1;'; + put 'do while'; + put '(metadata_getnobj("omsobj:IdentityGroup?@Id contains ''.''",i,groupuri)>0);'; + put 'rc=metadata_getattr(groupuri, "Name", groupname);'; + put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; + put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; + put 'if Group_or_Role = ''UserGroup'' then output;'; + put 'i+1;'; + put 'end;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put 'data &outds (keep=groupuri groupname groupdesc);'; + put 'length uri groupuri groupname groupdesc group_or_role $256;'; + put 'call missing(of _all_);'; + put 'rc=metadata_getnobj("omsobj:Person?@Name=''&user''",1,uri);'; + put 'if rc<=0 then do;'; + put 'putlog "%str(WARN)ING: rc=" rc "&user not found "'; + put '", or there was an issue reading the repository.";'; + put 'stop;'; + put 'end;'; + put 'a=1;'; + put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; + put 'if grpassn in (-3,-4) then do;'; + put 'putlog "%str(WARN)ING: No metadata groups found for &user";'; + put 'output;'; + put 'end;'; + put 'else do while (grpassn > 0);'; + put 'rc=metadata_getattr(groupuri, "Name", groupname);'; + put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; + put 'a+1;'; + put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; + put 'if Group_or_Role = ''UserGroup'' then output;'; + put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; + put 'end;'; + put 'run;'; + put '%end;'; + put '%if &oldrepo ne &repo %then %do;'; + put 'options metarepository=&oldrepo;'; + put '%end;'; + put '%mend mm_getGroups;'; + put '%macro dc_getusergroups(user=,outds=mm_getgroups);'; + put '%global dc_repo_users;'; + put '%if &dc_repo_users= %then %let dc_repo_users=foundation;'; + put '%mm_getgroups(user=&user,outds=&outds,repo=&dc_repo_users)'; + put '%mend dc_getusergroups;'; + put '%macro mpe_getgroups(user=,outds=);'; + put '%if not %symexist(dc_repo_users) %then %let dc_repo_users=foundation;'; + put '%dc_getusergroups(user=&user,outds=&outds)'; + put 'data;'; + put 'length groupname groupdesc $256;'; + put 'set &dc_libref..mpe_groups;'; + put 'where &dc_dttmtfmt. lt tx_to;'; + put 'where also upcase(user_name)="%upcase(&user)";'; + put 'groupname=group_name;'; + put 'groupdesc=group_desc;'; + put 'keep groupname groupdesc;'; + put 'run;'; + put 'data &outds;'; + put 'set &syslast &outds(keep=groupname groupdesc);'; + put 'run;'; + put '%mend mpe_getgroups;'; + put '%macro mm_getlibs('; + put 'outds=work.mm_getLibs'; + put ')/*/STORE SOURCE*/;'; + put '/*'; + put 'flags:'; + put 'OMI_SUCCINCT (2048) Do not return attributes with null values.'; + put 'OMI_GET_METADATA (256) Executes a GetMetadata call for each object that'; + put 'is returned by the GetMetadataObjects method.'; + put 'OMI_ALL_SIMPLE (8) Gets all of the attributes of the requested object.'; + put '*/'; + put 'data _null_;'; + put 'flags=2048+256+8;'; + put 'call symputx(''flags'',flags,''l'');'; + put 'run;'; + put '* use a temporary fileref to hold the response;'; + put 'filename response temp;'; + put '/* get list of libraries */'; + put 'proc metadata in='; + put ''''; + put '$METAREPOSITORY'; + put 'SASLibrary'; + put ''; + put 'SAS'; + put '&flags'; + put ''; + put ''''; + put 'out=response;'; + put 'run;'; + put '/* write the response to the log for debugging */'; + put 'data _null_;'; + put 'infile response lrecl=32767;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '/* create an XML map to read the response */'; + put 'filename sxlemap temp;'; + put 'data _null_;'; + put 'file sxlemap;'; + put 'put '''';'; + put 'put '''';'; + put 'put ''//Objects/SASLibrary'';'; + put 'put ''>17'';'; + put 'put ''//Objects/SASLibrary/@Id'';'; + put 'put ''256>'';'; + put 'put ''//Objects/SASLibrary/@Name'';'; + put 'put ''8'';'; + put 'put ''//Objects/SASLibrary/@Libref'';'; + put 'put ''>12'';'; + put 'put ''//Objects/SASLibrary/@Engine'';'; + put 'put ''
'';'; + put 'run;'; + put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; + put '/* sort the response by library name */'; + put 'proc sort data=_XML_.saslibrary out=&outds;'; + put 'by libraryname;'; + put 'run;'; + put '/* clear references */'; + put 'filename sxlemap clear;'; + put 'filename response clear;'; + put 'libname _XML_ clear;'; + put '%mend mm_getlibs;'; + put '%macro mm_getrepos('; + put 'outds=work.mm_getrepos'; + put ')/*/STORE SOURCE*/;'; + put '* use a temporary fileref to hold the response;'; + put 'filename response temp;'; + put '/* get list of libraries */'; + put 'proc metadata in='; + put '"1"'; + put 'out=response;'; + put 'run;'; + put '/* write the response to the log for debugging */'; + put '/*'; + put 'data _null_;'; + put 'infile response lrecl=1048576;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '*/'; + put '/* create an XML map to read the response */'; + put 'filename sxlemap temp;'; + put 'data _null_;'; + put 'file sxlemap;'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository";'; + put 'put "";'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Id";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Name";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Desc";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@DefaultNS";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryType";'; + put 'put "characterstring20";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryFormat";'; + put 'put "characterstring10";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@Access";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@CurrentAccess";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@PauseState";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Path";'; + put 'put "";'; + put 'put "characterstring256";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Engine";'; + put 'put "";'; + put 'put "characterstring8";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Options";'; + put 'put "";'; + put 'put "characterstring32";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataCreated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataUpdated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put ''
'';'; + put 'run;'; + put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; + put 'proc sort data= _XML_.SASRepos out=&outds;'; + put 'by name;'; + put 'run;'; + put '/* clear references */'; + put 'filename sxlemap clear;'; + put 'filename response clear;'; + put 'libname _XML_ clear;'; + put '%mend mm_getrepos;'; + put '%macro dc_getlibs(outds=mm_getlibs);'; + put '/* take current repository */'; + put '%local repo repocnt x;'; + put '%let repo=%sysfunc(getoption(metarepository));'; + put '/* get list of repositories and filter */'; + put '%mm_getrepos(outds=repos)'; + put '%let repocnt=0;'; + put 'data repos;'; + put 'set repos;'; + put 'where repositorytype in(''CUSTOM'',''FOUNDATION'')'; + put '& upcase(name) ne "%upcase(&repo)";'; + put 'keep id name ;'; + put 'call symputx(''repo''!!cats(_n_),name,''l'');'; + put 'call symputx(''repocnt'',_n_,''l'');'; + put 'run;'; + put '%put _local_;'; + put '%mm_getlibs(outds=&outds)'; + put '%do x=1 %to &repocnt;'; + put 'options metarepository=&&repo&x;'; + put '%mm_getlibs(outds=&outds.a)'; + put 'proc append base=&outds data=&outds.a;'; + put 'run;'; + put '%end;'; + put 'options metarepository=&repo;'; + put '%mend dc_getlibs;'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as FMTCAT,'; + put 'FMTNAME'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'LENGTH num'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.length as MAXW'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put ')))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX,workobs=0'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&workobs) > 0 %then %do;'; + put '/* if debug mode, send back first XX records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10'; + put ',maxobs=&workobs'; + put ')'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro mf_existds(libds'; + put ')/*/STORE SOURCE*/;'; + put '%if %sysfunc(exist(&libds)) ne 1 & %sysfunc(exist(&libds,VIEW)) ne 1 %then 0;'; + put '%else 1;'; + put '%mend mf_existds;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file viewlibarray.sas'; + put '@brief List the libraries for view access'; + put '@details'; + put '

SAS Macros

'; + put '@li dc_getlibs.sas'; + put '@li mp_abort.sas'; + put '@li mf_getuser.sas'; + put '@li mpe_getgroups.sas'; + put '@li mm_webout.sas'; + put '@li mf_existds.sas'; + put '@version 9.2'; + put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; + put 'downloaded from here: https://4gl.uk/dcdeploy'; + put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; + put 'and may not be re-distributed or re-sold without the express permission of'; + put '4GL Apps Ltd.'; + put '**/'; + put '%mpeinit()'; + put '%let keepvars=libraryref libraryname;'; + put 'data _null_;'; + put 'length keepvars $32;'; + put 'set %sysfunc(ifc(%mf_existds(iwant),iwant,_null_));'; + put 'call symputx(''keepvars'',keepvars);'; + put 'run;'; + put '/**'; + put '* get full list of libraries'; + put '*/'; + put '%dc_getlibs(outds=work.mm_getLibs)'; + put '/* get security groups */'; + put '%mpe_getgroups(user=%mf_getuser(),outds=groups)'; + put '/* get security settings */'; + put 'data sec;'; + put 'set &mpelib..mpe_security;'; + put 'where &dc_dttmtfmt. lt tx_to and ACCESS_LEVEL=''VIEW'';'; + put 'run;'; + put '/* check for any matching groups */'; + put 'proc sql noprint;'; + put 'create table matches as'; + put 'select * from sec'; + put 'where upcase(sas_group) in (select upcase(groupname) from groups);'; + put 'select count(*) into: securitygroupscount from matches;'; + put 'select count(*) into: ALL_CNT from matches where libref=''*ALL*'';'; + put '%put securitygroupscount=&securitygroupscount;'; + put '%put ALL_CNT=&ALL_CNT;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(syscc=&syscc)'; + put ')'; + put '%macro mpestp_viewlibs();'; + put '%if not %symexist(DC_RESTRICT_VIEWER) %then %let DC_RESTRICT_VIEWER=NO;'; + put '/* scenario 1 - user is in admin group, hence can view all libraries */'; + put 'proc sql noprint;'; + put 'select count(*) into: scenario1 from groups where groupname="&mpeadmins";'; + put '%if &scenario1>0 %then %do;'; + put '%put user in admin group (scenario1=&scenario1);'; + put '%return;'; + put '%end;'; + put '/* scenario 2 - viewer unrestricted and no groups listed */'; + put '%if &DC_RESTRICT_VIEWER=NO and &securitygroupscount=0 %then %do;'; + put '%put DC_RESTRICT_VIEWER=&DC_RESTRICT_VIEWER;'; + put '%put securitygroupscount=&securitygroupscount;'; + put '%return;'; + put '%end;'; + put '/* scenario 3 - an *ALL* libref is listed */'; + put '%if &all_cnt>0 %then %do;'; + put '%put all_cnt=&all_cnt;'; + put '%return;'; + put '%end;'; + put '/* scenario 4 - specific librefs listed */'; + put '%if &securitygroupscount>0 %then %do;'; + put '%put scenario 4;'; + put '%put securitygroupscount=&securitygroupscount;'; + put 'proc sql;'; + put 'delete from mm_getLibs'; + put 'where upcase(libraryref) not in (select upcase(libref) from matches);'; + put '%return;'; + put '%end;'; + put '/* viewer restricted and no groups listed */'; + put '%if &DC_RESTRICT_VIEWER=YES and &securitygroupscount=0 %then %do;'; + put '%put DC_RESTRICT_VIEWER=&DC_RESTRICT_VIEWER;'; + put '%put securitygroupscount=&securitygroupscount;'; + put 'data mm_getlibs;'; + put 'set mm_getlibs;'; + put 'stop;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%mp_abort(iftrue= (1=1)'; + put ',mac=&_program..sas'; + put ',msg=%str(unhandled security logic error!)'; + put ')'; + put '%mend mpestp_viewlibs;'; + put '%mpestp_viewlibs()'; + put '%global dc_viewlib_check;'; + put '/**'; + put '* deal with invalid and duplicate library definitions'; + put '*/'; + put 'proc sort data=mm_getlibs;'; + put 'by libraryref libraryname;'; + put 'run;'; + put 'data mm_getlibs;'; + put 'set mm_getlibs;'; + put 'by libraryref;'; + put 'if symget(''dc_viewlib_check'')=''YES'' then do;'; + put '/* note - invalid libraries can result in exception errors. If this happens,'; + put 'configure the dc_viewlib_check variable to NO in Data Controller Settings'; + put '*/'; + put 'rc=libname(libraryref,,''meta'',cats(''library="'',libraryname,''";''));'; + put 'drop rc;'; + put 'if rc ne 0 then do;'; + put 'putlog "NOTE: Library " libraryname " does not exist!!";'; + put 'putlog (_all_) (=);'; + put 'delete;'; + put 'end;'; + put 'end;'; + put 'if not first.libraryref then delete;'; + put 'run;'; + put 'proc sort data=mm_getlibs (keep=&keepvars);'; + put 'by libraryname;'; + put 'run;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(syscc=&syscc)'; + put ')'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR, mm_getLibs)'; + put '%mm_webout(CLOSE)'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=viewlibs; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Files

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as FMTCAT,'; + put 'FMTNAME'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'LENGTH num'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.length as MAXW'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put ')))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] workobs= (0) When set to a positive integer, will create a new'; + put 'output object (WORK) which contains this number of observations from all'; + put 'tables in the WORK library.'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX,workobs=0'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&workobs) > 0 %then %do;'; + put '/* if debug mode, send back first XX records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10'; + put ',maxobs=&workobs'; + put ')'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '%macro mm_getGroups('; + put 'user='; + put ',outds=work.mm_getGroups'; + put ',repo=foundation'; + put ',mDebug=0'; + put ')/*/STORE SOURCE*/;'; + put '%local mD oldrepo;'; + put '%let oldrepo=%sysfunc(getoption(metarepository));'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing mm_getGroups.sas;'; + put '%&mD.put _local_;'; + put '/* on some sites, user / group info is in a different metadata repo to the'; + put 'default */'; + put '%if &oldrepo ne &repo %then %do;'; + put 'options metarepository=&repo;'; + put '%end;'; + put '%if %length(&user)=0 %then %do;'; + put 'data &outds (keep=groupuri groupname groupdesc);'; + put 'length groupuri groupname groupdesc group_or_role $256;'; + put 'call missing(of _all_);'; + put 'i+1;'; + put 'do while'; + put '(metadata_getnobj("omsobj:IdentityGroup?@Id contains ''.''",i,groupuri)>0);'; + put 'rc=metadata_getattr(groupuri, "Name", groupname);'; + put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; + put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; + put 'if Group_or_Role = ''UserGroup'' then output;'; + put 'i+1;'; + put 'end;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put 'data &outds (keep=groupuri groupname groupdesc);'; + put 'length uri groupuri groupname groupdesc group_or_role $256;'; + put 'call missing(of _all_);'; + put 'rc=metadata_getnobj("omsobj:Person?@Name=''&user''",1,uri);'; + put 'if rc<=0 then do;'; + put 'putlog "%str(WARN)ING: rc=" rc "&user not found "'; + put '", or there was an issue reading the repository.";'; + put 'stop;'; + put 'end;'; + put 'a=1;'; + put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; + put 'if grpassn in (-3,-4) then do;'; + put 'putlog "%str(WARN)ING: No metadata groups found for &user";'; + put 'output;'; + put 'end;'; + put 'else do while (grpassn > 0);'; + put 'rc=metadata_getattr(groupuri, "Name", groupname);'; + put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; + put 'a+1;'; + put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; + put 'if Group_or_Role = ''UserGroup'' then output;'; + put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; + put 'end;'; + put 'run;'; + put '%end;'; + put '%if &oldrepo ne &repo %then %do;'; + put 'options metarepository=&oldrepo;'; + put '%end;'; + put '%mend mm_getGroups;'; + put '%macro dc_getusergroups(user=,outds=mm_getgroups);'; + put '%global dc_repo_users;'; + put '%if &dc_repo_users= %then %let dc_repo_users=foundation;'; + put '%mm_getgroups(user=&user,outds=&outds,repo=&dc_repo_users)'; + put '%mend dc_getusergroups;'; + put '%macro mpe_getgroups(user=,outds=);'; + put '%if not %symexist(dc_repo_users) %then %let dc_repo_users=foundation;'; + put '%dc_getusergroups(user=&user,outds=&outds)'; + put 'data;'; + put 'length groupname groupdesc $256;'; + put 'set &dc_libref..mpe_groups;'; + put 'where &dc_dttmtfmt. lt tx_to;'; + put 'where also upcase(user_name)="%upcase(&user)";'; + put 'groupname=group_name;'; + put 'groupdesc=group_desc;'; + put 'keep groupname groupdesc;'; + put 'run;'; + put 'data &outds;'; + put 'set &syslast &outds(keep=groupname groupdesc);'; + put 'run;'; + put '%mend mpe_getgroups;'; + put '%macro mm_getlibs('; + put 'outds=work.mm_getLibs'; + put ')/*/STORE SOURCE*/;'; + put '/*'; + put 'flags:'; + put 'OMI_SUCCINCT (2048) Do not return attributes with null values.'; + put 'OMI_GET_METADATA (256) Executes a GetMetadata call for each object that'; + put 'is returned by the GetMetadataObjects method.'; + put 'OMI_ALL_SIMPLE (8) Gets all of the attributes of the requested object.'; + put '*/'; + put 'data _null_;'; + put 'flags=2048+256+8;'; + put 'call symputx(''flags'',flags,''l'');'; + put 'run;'; + put '* use a temporary fileref to hold the response;'; + put 'filename response temp;'; + put '/* get list of libraries */'; + put 'proc metadata in='; + put ''''; + put '$METAREPOSITORY'; + put 'SASLibrary'; + put ''; + put 'SAS'; + put '&flags'; + put ''; + put ''''; + put 'out=response;'; + put 'run;'; + put '/* write the response to the log for debugging */'; + put 'data _null_;'; + put 'infile response lrecl=32767;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '/* create an XML map to read the response */'; + put 'filename sxlemap temp;'; + put 'data _null_;'; + put 'file sxlemap;'; + put 'put '''';'; + put 'put '''';'; + put 'put ''//Objects/SASLibrary'';'; + put 'put ''>17'';'; + put 'put ''//Objects/SASLibrary/@Id'';'; + put 'put ''256>'';'; + put 'put ''//Objects/SASLibrary/@Name'';'; + put 'put ''8'';'; + put 'put ''//Objects/SASLibrary/@Libref'';'; + put 'put ''>12'';'; + put 'put ''//Objects/SASLibrary/@Engine'';'; + put 'put ''
'';'; + put 'run;'; + put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; + put '/* sort the response by library name */'; + put 'proc sort data=_XML_.saslibrary out=&outds;'; + put 'by libraryname;'; + put 'run;'; + put '/* clear references */'; + put 'filename sxlemap clear;'; + put 'filename response clear;'; + put 'libname _XML_ clear;'; + put '%mend mm_getlibs;'; + put '%macro mm_getrepos('; + put 'outds=work.mm_getrepos'; + put ')/*/STORE SOURCE*/;'; + put '* use a temporary fileref to hold the response;'; + put 'filename response temp;'; + put '/* get list of libraries */'; + put 'proc metadata in='; + put '"1"'; + put 'out=response;'; + put 'run;'; + put '/* write the response to the log for debugging */'; + put '/*'; + put 'data _null_;'; + put 'infile response lrecl=1048576;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '*/'; + put '/* create an XML map to read the response */'; + put 'filename sxlemap temp;'; + put 'data _null_;'; + put 'file sxlemap;'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository";'; + put 'put "";'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Id";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Name";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Desc";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@DefaultNS";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryType";'; + put 'put "characterstring20";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryFormat";'; + put 'put "characterstring10";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@Access";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@CurrentAccess";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@PauseState";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Path";'; + put 'put "";'; + put 'put "characterstring256";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Engine";'; + put 'put "";'; + put 'put "characterstring8";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Options";'; + put 'put "";'; + put 'put "characterstring32";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataCreated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataUpdated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put ''
'';'; + put 'run;'; + put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; + put 'proc sort data= _XML_.SASRepos out=&outds;'; + put 'by name;'; + put 'run;'; + put '/* clear references */'; + put 'filename sxlemap clear;'; + put 'filename response clear;'; + put 'libname _XML_ clear;'; + put '%mend mm_getrepos;'; + put '%macro dc_getlibs(outds=mm_getlibs);'; + put '/* take current repository */'; + put '%local repo repocnt x;'; + put '%let repo=%sysfunc(getoption(metarepository));'; + put '/* get list of repositories and filter */'; + put '%mm_getrepos(outds=repos)'; + put '%let repocnt=0;'; + put 'data repos;'; + put 'set repos;'; + put 'where repositorytype in(''CUSTOM'',''FOUNDATION'')'; + put '& upcase(name) ne "%upcase(&repo)";'; + put 'keep id name ;'; + put 'call symputx(''repo''!!cats(_n_),name,''l'');'; + put 'call symputx(''repocnt'',_n_,''l'');'; + put 'run;'; + put '%put _local_;'; + put '%mm_getlibs(outds=&outds)'; + put '%do x=1 %to &repocnt;'; + put 'options metarepository=&&repo&x;'; + put '%mm_getlibs(outds=&outds.a)'; + put 'proc append base=&outds data=&outds.a;'; + put 'run;'; + put '%end;'; + put 'options metarepository=&repo;'; + put '%mend dc_getlibs;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file viewlibs.sas'; + put '@brief List the libraries for view access'; + put '@details'; + put '

SAS Macros

'; + put '@li dc_getlibs.sas'; + put '@li mp_abort.sas'; + put '@li mf_getuser.sas'; + put '@li mpe_getgroups.sas'; + put '@li mpeinit.sas'; + put '@version 9.3'; + put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; + put 'downloaded from here: https://4gl.uk/dcdeploy'; + put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; + put 'and may not be re-distributed or re-sold without the express permission of'; + put '4GL Apps Ltd.'; + put '**/'; + put '%mpeinit()'; + put '/**'; + put '* get full list of libraries'; + put '*/'; + put '%dc_getlibs(outds=work.mm_getLibs)'; + put '/* get security groups */'; + put '%mpe_getgroups(user=%mf_getuser(),outds=groups)'; + put '/* get security settings */'; + put 'data sec;'; + put 'set &mpelib..mpe_security;'; + put 'where &dc_dttmtfmt.lt tx_to and ACCESS_LEVEL=''VIEW'';'; + put 'run;'; + put '/* check for any matching groups */'; + put 'proc sql noprint;'; + put 'create table matches as'; + put 'select * from sec'; + put 'where upcase(sas_group) in (select upcase(groupname) from groups);'; + put 'select count(*) into: securitygroupscount from matches;'; + put 'select count(*) into: ALL_CNT from matches where libref=''*ALL*'';'; + put '%put securitygroupscount=&securitygroupscount;'; + put '%put ALL_CNT=&ALL_CNT;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(syscc=&syscc)'; + put ')'; + put '%macro mpestp_viewlibs();'; + put '%if not %symexist(DC_RESTRICT_VIEWER) %then %let DC_RESTRICT_VIEWER=NO;'; + put '/* scenario 1 - user is in admin group, hence can view all libraries */'; + put 'proc sql noprint;'; + put 'select count(*) into: scenario1 from groups where groupname="&mpeadmins";'; + put '%if &scenario1>0 %then %do;'; + put '%put user in admin group (scenario1=&scenario1);'; + put '%return;'; + put '%end;'; + put '/* scenario 2 - viewer unrestricted and no groups listed */'; + put '%if &DC_RESTRICT_VIEWER=NO and &securitygroupscount=0 %then %do;'; + put '%put DC_RESTRICT_VIEWER=&DC_RESTRICT_VIEWER;'; + put '%put securitygroupscount=&securitygroupscount;'; + put '%return;'; + put '%end;'; + put '/* scenario 3 - an *ALL* libref is listed */'; + put '%if &all_cnt>0 %then %do;'; + put '%put all_cnt=&all_cnt;'; + put '%return;'; + put '%end;'; + put '/* scenario 4 - specific librefs listed */'; + put '%if &securitygroupscount>0 %then %do;'; + put '%put scenario 4;'; + put '%put securitygroupscount=&securitygroupscount;'; + put 'proc sql;'; + put 'delete from mm_getLibs'; + put 'where upcase(libraryref) not in (select upcase(libref) from matches);'; + put '%return;'; + put '%end;'; + put '/* viewer restricted and no groups listed */'; + put '%if &DC_RESTRICT_VIEWER=YES and &securitygroupscount=0 %then %do;'; + put '%put DC_RESTRICT_VIEWER=&DC_RESTRICT_VIEWER;'; + put '%put securitygroupscount=&securitygroupscount;'; + put 'data mm_getlibs;'; + put 'set mm_getlibs;'; + put 'stop;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%mp_abort(iftrue= (1=1)'; + put ',mac=&_program..sas'; + put ',msg=%str(unhandled security logic err!)'; + put ')'; + put '%mend mpestp_viewlibs;'; + put '%mpestp_viewlibs()'; + put '%global dc_viewlib_check;'; + put '/**'; + put '* deal with invalid and duplicate library definitions'; + put '*/'; + put 'proc sort data=mm_getlibs;'; + put 'by libraryref libraryname;'; + put 'run;'; + put 'data mm_getlibs;'; + put 'set mm_getlibs;'; + put 'by libraryref;'; + put 'if symget(''dc_viewlib_check'')=''YES'' then do;'; + put '/* note - invalid libraries can result in exception errors. If this happens,'; + put 'configure the dc_viewlib_check variable to NO in Data Controller Settings'; + put '*/'; + put 'rc=libname(libraryref,,''meta'',cats(''library="'',libraryname,''";''));'; + put 'drop rc;'; + put 'if rc ne 0 then do;'; + put 'putlog "NOTE: Library " libraryname " does not exist!!";'; + put 'putlog (_all_) (=);'; + put 'delete;'; + put 'end;'; + put 'end;'; + put 'if not first.libraryref then delete;'; + put 'run;'; + put 'proc sort data=mm_getlibs out=saslibs;'; + put 'by libraryname;'; + put 'run;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(syscc=&syscc)'; + put ')'; + put '%webout(OPEN)'; + put '%webout(OBJ,saslibs)'; + put '%webout(CLOSE)'; + put '%mpeterm()'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=viewtables; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Files

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as FMTCAT,'; + put 'FMTNAME'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'LENGTH num'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.length as MAXW'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put ')))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] workobs= (0) When set to a positive integer, will create a new'; + put 'output object (WORK) which contains this number of observations from all'; + put 'tables in the WORK library.'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX,workobs=0'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&workobs) > 0 %then %do;'; + put '/* if debug mode, send back first XX records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10'; + put ',maxobs=&workobs'; + put ')'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '%macro mm_getGroups('; + put 'user='; + put ',outds=work.mm_getGroups'; + put ',repo=foundation'; + put ',mDebug=0'; + put ')/*/STORE SOURCE*/;'; + put '%local mD oldrepo;'; + put '%let oldrepo=%sysfunc(getoption(metarepository));'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing mm_getGroups.sas;'; + put '%&mD.put _local_;'; + put '/* on some sites, user / group info is in a different metadata repo to the'; + put 'default */'; + put '%if &oldrepo ne &repo %then %do;'; + put 'options metarepository=&repo;'; + put '%end;'; + put '%if %length(&user)=0 %then %do;'; + put 'data &outds (keep=groupuri groupname groupdesc);'; + put 'length groupuri groupname groupdesc group_or_role $256;'; + put 'call missing(of _all_);'; + put 'i+1;'; + put 'do while'; + put '(metadata_getnobj("omsobj:IdentityGroup?@Id contains ''.''",i,groupuri)>0);'; + put 'rc=metadata_getattr(groupuri, "Name", groupname);'; + put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; + put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; + put 'if Group_or_Role = ''UserGroup'' then output;'; + put 'i+1;'; + put 'end;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put 'data &outds (keep=groupuri groupname groupdesc);'; + put 'length uri groupuri groupname groupdesc group_or_role $256;'; + put 'call missing(of _all_);'; + put 'rc=metadata_getnobj("omsobj:Person?@Name=''&user''",1,uri);'; + put 'if rc<=0 then do;'; + put 'putlog "%str(WARN)ING: rc=" rc "&user not found "'; + put '", or there was an issue reading the repository.";'; + put 'stop;'; + put 'end;'; + put 'a=1;'; + put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; + put 'if grpassn in (-3,-4) then do;'; + put 'putlog "%str(WARN)ING: No metadata groups found for &user";'; + put 'output;'; + put 'end;'; + put 'else do while (grpassn > 0);'; + put 'rc=metadata_getattr(groupuri, "Name", groupname);'; + put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; + put 'a+1;'; + put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; + put 'if Group_or_Role = ''UserGroup'' then output;'; + put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; + put 'end;'; + put 'run;'; + put '%end;'; + put '%if &oldrepo ne &repo %then %do;'; + put 'options metarepository=&oldrepo;'; + put '%end;'; + put '%mend mm_getGroups;'; + put '%macro dc_getusergroups(user=,outds=mm_getgroups);'; + put '%global dc_repo_users;'; + put '%if &dc_repo_users= %then %let dc_repo_users=foundation;'; + put '%mm_getgroups(user=&user,outds=&outds,repo=&dc_repo_users)'; + put '%mend dc_getusergroups;'; + put '%macro mpe_getgroups(user=,outds=);'; + put '%if not %symexist(dc_repo_users) %then %let dc_repo_users=foundation;'; + put '%dc_getusergroups(user=&user,outds=&outds)'; + put 'data;'; + put 'length groupname groupdesc $256;'; + put 'set &dc_libref..mpe_groups;'; + put 'where &dc_dttmtfmt. lt tx_to;'; + put 'where also upcase(user_name)="%upcase(&user)";'; + put 'groupname=group_name;'; + put 'groupdesc=group_desc;'; + put 'keep groupname groupdesc;'; + put 'run;'; + put 'data &outds;'; + put 'set &syslast &outds(keep=groupname groupdesc);'; + put 'run;'; + put '%mend mpe_getgroups;'; + put '%macro mpe_getvars(injs,outds);'; + put '/* load parameters */'; + put 'data _null_;'; + put '__dummychar='''';__dummynum=0;'; + put 'set &outds;'; + put 'array __charvals _character_;'; + put 'do over __charvals;'; + put 'call symputx(vname(__charvals),__charvals,''g'');'; + put 'end;'; + put 'array __numvals _numeric_;'; + put 'do over __numvals;'; + put 'call symputx(vname(__numvals),__numvals,''g'');'; + put 'end;'; + put 'run;'; + put '%mend mpe_getvars;'; + put '%macro mm_assignlib('; + put 'libref'; + put ',mAbort=HARD'; + put ')/*/STORE SOURCE*/;'; + put '%local mp_abort msg;'; + put '%let mp_abort=0;'; + put '%if %sysfunc(libref(&libref)) %then %do;'; + put 'data _null_;'; + put 'length liburi LibName msg $200;'; + put 'call missing(of _all_);'; + put 'nobj=metadata_getnobj("omsobj:SASLibrary?@Libref=''&libref''",1,liburi);'; + put 'if nobj=1 then do;'; + put 'rc=metadata_getattr(liburi,"Name",LibName);'; + put '/* now try and assign it */'; + put 'if libname("&libref",,''meta'',cats(''liburi="'',liburi,''";'')) ne 0 then do;'; + put 'putlog "&libref could not be assigned";'; + put 'putlog liburi=;'; + put '/**'; + put '* Fetch the system message for display in the abort modal. This is'; + put '* not always helpful though. One example, previously received:'; + put '* NOTE: Libref XX refers to the same library metadata as libref XX.'; + put '*/'; + put 'msg=sysmsg();'; + put 'if msg=:''ERROR: Libref SAVE is not assigned.'' then do;'; + put 'msg=catx(" ",'; + put '"Could not assign %upcase(&libref).",'; + put '"Please check metadata permissions! Libname:",libname,'; + put '"Liburi:",liburi'; + put ');'; + put 'end;'; + put 'else if msg="ERROR: User does not have appropriate authorization "!!'; + put '"level for library SAVE."'; + put 'then do;'; + put 'msg=catx(" ",'; + put '"ERROR: User does not have appropriate authorization level",'; + put '"for library %upcase(&libref), libname:",libname,'; + put '"Liburi:",liburi'; + put ');'; + put 'end;'; + put 'call symputx(''msg'',msg,''l'');'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1,''l'');'; + put 'end;'; + put 'else do;'; + put 'put (_all_)(=);'; + put 'call symputx(''libname'',libname,''L'');'; + put 'call symputx(''liburi'',liburi,''L'');'; + put 'end;'; + put 'end;'; + put 'else if nobj>1 then do;'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; + put 'call symputx(''msg'',"More than one library with libref=&libref");'; + put 'end;'; + put 'else do;'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; + put 'call symputx(''msg'',"Library &libref not found in metadata");'; + put 'end;'; + put 'run;'; + put '%put NOTE: &msg;'; + put '%end;'; + put '%else %do;'; + put '%put NOTE: Library &libref is already assigned;'; + put '%end;'; + put '%mp_abort(iftrue= (&mp_abort=1)'; + put ',mac=mm_assignlib.sas'; + put ',msg=%superq(msg)'; + put ')'; + put '%mend mm_assignlib;'; + put '/** @cond */'; + put '%macro mf_getengine(libref'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid engnum rc engine;'; + put '/* in case the parameter is a libref.tablename, pull off just the libref */'; + put '%let libref = %upcase(%scan(&libref, 1, %str(.)));'; + put '%let dsid=%sysfunc('; + put 'open(sashelp.vlibnam(where=(libname="%upcase(&libref)")),i)'; + put ');'; + put '%if (&dsid ^= 0) %then %do;'; + put '%let engnum=%sysfunc(varnum(&dsid,ENGINE));'; + put '%let rc=%sysfunc(fetch(&dsid));'; + put '%let engine=%sysfunc(getvarc(&dsid,&engnum));'; + put '%put &libref. ENGINE is &engine.;'; + put '%let rc= %sysfunc(close(&dsid));'; + put '%end;'; + put '%upcase(&engine)'; + put '%mend mf_getengine;'; + put '/** @endcond */'; + put '%macro mm_assigndirectlib('; + put 'libref /* libref to assign from metadata */'; + put ',open_passthrough= /* provide an alias to produce the'; + put 'CONNECT TO statement for the'; + put 'relevant external database */'; + put ',sql_options= /* add any options to add to proc sql statement eg outobs='; + put '(only valid for pass through) */'; + put ',mDebug=0'; + put ',mAbort=0'; + put ')/*/STORE SOURCE*/;'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing mm_assigndirectlib.sas;'; + put '%&mD.put _local_;'; + put '%if &mAbort=1 %then %let mAbort=;'; + put '%else %let mAbort=%str(*);'; + put '%&mD.put NOTE: Creating direct (non META) connection to &libref library;'; + put '%local cur_engine;'; + put '%let cur_engine=%mf_getengine(&libref);'; + put '%if &cur_engine ne META and &cur_engine ne %then %do;'; + put '%put NOTE: &libref already has a direct (&cur_engine) libname connection;'; + put '%return;'; + put '%end;'; + put '%else %if %upcase(&libref)=WORK %then %do;'; + put '%put NOTE: We already have a direct connection to WORK :-) ;'; + put '%return;'; + put '%end;'; + put '/* need to determine the library ENGINE first */'; + put '%local engine;'; + put 'data _null_;'; + put 'length lib_uri engine $256;'; + put 'call missing (of _all_);'; + put '/* get URI for the particular library */'; + put 'rc1=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put '/* get the Engine attribute of the previous object */'; + put 'rc2=metadata_getattr(lib_uri,''Engine'',engine);'; + put 'putlog "mm_assigndirectlib for &libref:" rc1= lib_uri= rc2= engine=;'; + put 'call symputx("liburi",lib_uri,''l'');'; + put 'call symputx("engine",engine,''l'');'; + put 'run;'; + put '/* now obtain engine specific connection details */'; + put '%if &engine=BASE %then %do;'; + put '%&mD.put NOTE: Retrieving BASE library path;'; + put 'data _null_;'; + put 'length up_uri $256 path cat_path $1024;'; + put 'retain cat_path;'; + put 'call missing (of _all_);'; + put '/* get all the filepaths of the UsingPackages association */'; + put 'i=1;'; + put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; + put 'do while (rc3>0);'; + put '/* get the DirectoryName attribute of the previous object */'; + put 'rc4=metadata_getattr(up_uri,''DirectoryName'',path);'; + put 'if i=1 then path = ''("''!!trim(path)!!''" '';'; + put 'else path ='' "''!!trim(path)!!''" '';'; + put 'cat_path = trim(cat_path) !! " " !! trim(path) ;'; + put 'i+1;'; + put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; + put 'end;'; + put 'cat_path = trim(cat_path) !! ")";'; + put '&mD.putlog "NOTE: Getting physical path for &libref library";'; + put '&mD.putlog rc3= up_uri= rc4= cat_path= path=;'; + put '&mD.putlog "NOTE: Libname cmd will be:";'; + put '&mD.putlog "libname &libref" cat_path;'; + put 'call symputx("filepath",cat_path,''l'');'; + put 'run;'; + put '%if %sysevalf(&sysver<9.4) %then %do;'; + put 'libname &libref &filepath;'; + put '%end;'; + put '%else %do;'; + put '/* apply the new filelocks option to cater for temporary locks */'; + put 'libname &libref &filepath filelockwait=5;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=REMOTE %then %do;'; + put 'data x;'; + put 'length rcCon rcProp rc k 3 uriCon uriProp PropertyValue PropertyName'; + put 'Delimiter $256 properties $2048;'; + put 'retain properties;'; + put 'rcCon = metadata_getnasn("&liburi", "LibraryConnection", 1, uriCon);'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", 1, uriProp);'; + put 'k = 1;'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; + put 'do while (rcProp > 0);'; + put 'rc = metadata_getattr(uriProp , "DefaultValue",PropertyValue);'; + put 'rc = metadata_getattr(uriProp , "PropertyName",PropertyName);'; + put 'rc = metadata_getattr(uriProp , "Delimiter",Delimiter);'; + put 'properties = trim(properties) !! " " !! trim(PropertyName)'; + put '!! trim(Delimiter) !! trim(PropertyValue);'; + put 'output;'; + put 'k+1;'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; + put 'end;'; + put '%&mD.put NOTE: Getting properties for REMOTE SHARE &libref library;'; + put '&mD.put _all_;'; + put '%&mD.put NOTE: Libname cmd will be:;'; + put '%&mD.put libname &libref &engine &properties slibref=&libref;'; + put 'call symputx ("properties",trim(properties),''l'');'; + put 'run;'; + put 'libname &libref &engine &properties slibref=&libref;'; + put '%end;'; + put '%else %if &engine=OLEDB %then %do;'; + put '%&mD.put NOTE: Retrieving OLEDB connection details;'; + put 'data _null_;'; + put 'length domain datasource provider properties schema'; + put 'connx_uri domain_uri conprop_uri lib_uri schema_uri value $256.;'; + put 'call missing (of _all_);'; + put '/* get source connection ID */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; + put '/* get connection domain */'; + put 'rc1=metadata_getnasn(connx_uri,''Domain'',1,domain_uri);'; + put 'rc2=metadata_getattr(domain_uri,''Name'',domain);'; + put '&mD.putlog / ''NOTE: '' // ''NOTE- connection id: '' connx_uri ;'; + put '&mD.putlog ''NOTE- domain: '' domain;'; + put '/* get DSN and PROVIDER from connection properties */'; + put 'i=0;'; + put 'do until (rc<0);'; + put 'i+1;'; + put 'rc=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; + put 'rc2=metadata_getattr(conprop_uri,''Name'',value);'; + put 'if value=''Connection.OLE.Property.DATASOURCE.Name.xmlKey.txt'' then do;'; + put 'rc3=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; + put 'end;'; + put 'else if value=''Connection.OLE.Property.PROVIDER.Name.xmlKey.txt'' then do;'; + put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',provider);'; + put 'end;'; + put 'else if value=''Connection.OLE.Property.PROPERTIES.Name.xmlKey.txt'' then'; + put 'do;'; + put 'rc5=metadata_getattr(conprop_uri,''DefaultValue'',properties);'; + put 'end;'; + put 'end;'; + put '&mD.putlog ''NOTE- dsn/provider/properties: '' /'; + put 'datasource provider properties;'; + put '&mD.putlog ''NOTE- schema: '' schema // ''NOTE-'';'; + put '/* get SCHEMA */'; + put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,lib_uri);'; + put 'rc7=metadata_getattr(lib_uri,''SchemaName'',schema);'; + put 'call symputx(''SQL_domain'',domain,''l'');'; + put 'call symputx(''SQL_dsn'',datasource,''l'');'; + put 'call symputx(''SQL_provider'',provider,''l'');'; + put 'call symputx(''SQL_properties'',properties,''l'');'; + put 'call symputx(''SQL_schema'',schema,''l'');'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put 'proc sql &sql_options;'; + put 'connect to OLEDB as &open_passthrough(INSERT_SQL=YES'; + put '/* need additional properties to make this work */'; + put 'properties=(''Integrated Security''=SSPI'; + put '''Persist Security Info''=True'; + put '%sysfunc(compress(%str(&SQL_properties),%str(())))'; + put ')'; + put 'DATASOURCE=&sql_dsn PROMPT=NO'; + put 'PROVIDER=&sql_provider SCHEMA=&sql_schema CONNECTION = GLOBAL);'; + put '%end;'; + put '%else %do;'; + put 'LIBNAME &libref OLEDB PROPERTIES=&sql_properties'; + put 'DATASOURCE=&sql_dsn PROVIDER=&sql_provider SCHEMA=&sql_schema'; + put '%if %length(&sql_domain)>0 %then %do;'; + put 'authdomain="&sql_domain"'; + put '%end;'; + put 'connection=shared;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=ODBC %then %do;'; + put '&mD.%put NOTE: Retrieving ODBC connection details;'; + put 'data _null_;'; + put 'length connx_uri conprop_uri value datasource up_uri schema $256.;'; + put 'call missing (of _all_);'; + put '/* get source connection ID */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; + put '/* get connection properties */'; + put 'i=0;'; + put 'do until (rc2<0);'; + put 'i+1;'; + put 'rc2=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; + put 'rc3=metadata_getattr(conprop_uri,''Name'',value);'; + put 'if value=''Connection.ODBC.Property.DATASRC.Name.xmlKey.txt'' then do;'; + put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; + put 'rc2=-1;'; + put 'end;'; + put 'end;'; + put '/* get SCHEMA */'; + put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,up_uri);'; + put 'rc7=metadata_getattr(up_uri,''SchemaName'',schema);'; + put '&mD.put rc= connx_uri= rc2= conprop_uri= rc3= value= rc4= datasource='; + put 'rc6= up_uri= rc7= schema=;'; + put 'call symputx(''SQL_schema'',schema,''l'');'; + put 'call symputx(''SQL_dsn'',datasource,''l'');'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put 'proc sql &sql_options;'; + put 'connect to ODBC as &open_passthrough'; + put '(INSERT_SQL=YES DATASRC=&sql_dsn. CONNECTION=global);'; + put '%end;'; + put '%else %do;'; + put 'libname &libref ODBC DATASRC=&sql_dsn SCHEMA=&sql_schema;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=POSTGRES %then %do;'; + put '%put NOTE: Obtaining POSTGRES library details;'; + put 'data _null_;'; + put 'length database ignore_read_only_columns direct_exe preserve_col_names'; + put 'preserve_tab_names server schema authdomain user password'; + put 'prop name value uri urisrc $256.;'; + put 'call missing (of _all_);'; + put '/* get database value */'; + put 'prop=''Connection.DBMS.Property.DB.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,database,"");'; + put 'if database^='''' then database=''database=''!!quote(trim(database));'; + put 'call symputx(''database'',database,''l'');'; + put '/* get IGNORE_READ_ONLY_COLUMNS value */'; + put 'prop=''Library.DBMS.Property.DBIROC.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,ignore_read_only_columns,"");'; + put 'if ignore_read_only_columns^='''' then ignore_read_only_columns='; + put '''ignore_read_only_columns=''!!ignore_read_only_columns;'; + put 'call symputx(''ignore_read_only_columns'',ignore_read_only_columns,''l'');'; + put '/* get DIRECT_EXE value */'; + put 'prop=''Library.DBMS.Property.DirectExe.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,direct_exe,"");'; + put 'if direct_exe^='''' then direct_exe=''direct_exe=''!!direct_exe;'; + put 'call symputx(''direct_exe'',direct_exe,''l'');'; + put '/* get PRESERVE_COL_NAMES value */'; + put 'prop=''Library.DBMS.Property.PreserveColNames.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,preserve_col_names,"");'; + put 'if preserve_col_names^='''' then preserve_col_names='; + put '''preserve_col_names=''!!preserve_col_names;'; + put 'call symputx(''preserve_col_names'',preserve_col_names,''l'');'; + put '/* get PRESERVE_TAB_NAMES value */'; + put '/* be careful with PRESERVE_TAB_NAMES=YES - it will mean your table will'; + put 'become case sensitive!! */'; + put 'prop=''Library.DBMS.Property.PreserveTabNames.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,preserve_tab_names,"");'; + put 'if preserve_tab_names^='''' then preserve_tab_names='; + put '''preserve_tab_names=''!!preserve_tab_names;'; + put 'call symputx(''preserve_tab_names'',preserve_tab_names,''l'');'; + put '/* get SERVER value */'; + put 'if metadata_getnasn("&liburi","LibraryConnection",1,uri)>0 then do;'; + put 'prop=''Connection.DBMS.Property.SERVER.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop(uri,prop,server,"");'; + put 'end;'; + put 'if server^='''' then server=''server=''!!quote(cats(server));'; + put 'call symputx(''server'',server,''l'');'; + put '/* get SCHEMA value */'; + put 'if metadata_getnasn("&liburi","UsingPackages",1,uri)>0 then do;'; + put 'rc=metadata_getattr(uri,"SchemaName",schema);'; + put 'end;'; + put 'if schema^='''' then schema=''schema=''!!schema;'; + put 'call symputx(''schema'',schema,''l'');'; + put '/* get AUTHDOMAIN value */'; + put '/* this is only useful if the user account contains that auth domain'; + put 'if metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then do;'; + put 'rc=metadata_getnasn(uri,"Domain",1,urisrc);'; + put 'rc=metadata_getattr(urisrc,"Name",authdomain);'; + put 'end;'; + put 'if authdomain^='''' then authdomain=''authdomain=''!!quote(trim(authdomain));'; + put '*/'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/* get user & pass */'; + put 'if authdomain='''' & metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then'; + put 'do;'; + put 'rc=metadata_getattr(uri,"UserID",user);'; + put 'rc=metadata_getattr(uri,"Password",password);'; + put 'end;'; + put 'if user^='''' then do;'; + put 'user=''user=''!!quote(trim(user));'; + put 'password=''password=''!!quote(trim(password));'; + put 'end;'; + put 'call symputx(''user'',user,''l'');'; + put 'call symputx(''password'',password,''l'');'; + put '&md.put _all_;'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put '%put %str(WARN)ING: Passthrough option for postgres not yet supported;'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put '%if &mdebug=1 %then %do;'; + put '%put NOTE: Executing the following:/;'; + put '%put NOTE- libname &libref POSTGRES &database &ignore_read_only_columns;'; + put '%put NOTE- &direct_exe &preserve_col_names &preserve_tab_names;'; + put '%put NOTE- &server &schema &authdomain &user &password //;'; + put '%end;'; + put 'libname &libref POSTGRES &database &ignore_read_only_columns &direct_exe'; + put '&preserve_col_names &preserve_tab_names &server &schema &authdomain'; + put '&user &password;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=ORACLE %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null_;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema $256;'; + put 'call missing (of _all_);'; + put '/* get auth domain */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; + put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; + put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/* path */'; + put 'rc=metadata_getprop(assocuri1,'; + put '''Connection.Oracle.Property.PATH.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref ORACLE path=&path schema=&schema;'; + put '%put NOTE- authdomain=&authdomain;'; + put '%put NOTE-;'; + put 'libname &libref ORACLE path=&path schema=&schema authdomain=&authdomain;'; + put '%end;'; + put '%else %if &engine=SQLSVR %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; + put 'passwd $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; + put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; + put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; + put 'call symputx(''user'',userid,''l'');'; + put 'call symputx(''pass'',passwd,''l'');'; + put '/* path */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; + put 'rc=metadata_getprop(assocuri2,'; + put '''Connection.SQL.Property.Datasrc.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref SQLSVR datasrc=&path schema=&schema ;'; + put '%put NOTE- user="&user" pass="XXX";'; + put '%put NOTE-;'; + put 'libname &libref SQLSVR datasrc=&path schema=&schema user="&user" pass="&pass";'; + put '%end;'; + put '%else %if &engine=TERADATA %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; + put 'passwd $256;'; + put 'call missing (of _all_);'; + put '/* get auth domain */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; + put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; + put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/*'; + put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; + put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; + put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; + put 'call symputx(''user'',userid,''l'');'; + put 'call symputx(''pass'',passwd,''l'');'; + put '*/'; + put '/* path */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; + put 'rc=metadata_getprop(assocuri2,'; + put '''Connection.Teradata.Property.SERVER.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref TERADATA server="&path" schema=&schema ;'; + put '%put NOTe- authdomain=&authdomain;'; + put '%put NOTE-;'; + put 'libname &libref TERADATA server="&path" schema=&schema authdomain=&authdomain;'; + put '%end;'; + put '%else %if &engine= %then %do;'; + put '%put NOTE: Libref &libref is not registered in metadata;'; + put '%&mAbort.mp_abort('; + put 'msg=%str(ERR)OR: Libref &libref is not registered in metadata'; + put ',mac=mm_assigndirectlib.sas);'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put '%put %str(WARN)ING: Engine &engine is currently unsupported;'; + put '%put %str(WARN)ING- Please contact your support team.;'; + put '%return;'; + put '%end;'; + put '%mend mm_assigndirectlib;'; + put '%macro mm_getrepos('; + put 'outds=work.mm_getrepos'; + put ')/*/STORE SOURCE*/;'; + put '* use a temporary fileref to hold the response;'; + put 'filename response temp;'; + put '/* get list of libraries */'; + put 'proc metadata in='; + put '"1"'; + put 'out=response;'; + put 'run;'; + put '/* write the response to the log for debugging */'; + put '/*'; + put 'data _null_;'; + put 'infile response lrecl=1048576;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '*/'; + put '/* create an XML map to read the response */'; + put 'filename sxlemap temp;'; + put 'data _null_;'; + put 'file sxlemap;'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository";'; + put 'put "";'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Id";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Name";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Desc";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@DefaultNS";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryType";'; + put 'put "characterstring20";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryFormat";'; + put 'put "characterstring10";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@Access";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@CurrentAccess";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@PauseState";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Path";'; + put 'put "";'; + put 'put "characterstring256";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Engine";'; + put 'put "";'; + put 'put "characterstring8";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Options";'; + put 'put "";'; + put 'put "characterstring32";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataCreated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataUpdated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put ''
'';'; + put 'run;'; + put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; + put 'proc sort data= _XML_.SASRepos out=&outds;'; + put 'by name;'; + put 'run;'; + put '/* clear references */'; + put 'filename sxlemap clear;'; + put 'filename response clear;'; + put 'libname _XML_ clear;'; + put '%mend mm_getrepos;'; + put '%macro dc_assignlib(type,libref,passthru=);'; + put '%put &sysmacroname entry vars:;'; + put '%put _local_;'; + put '/* take current repository */'; + put '%local repo repocnt x;'; + put '%let repo=%sysfunc(getoption(metarepository));'; + put '/* get list of repositories and filter */'; + put '%mm_getrepos(outds=repos)'; + put '%let repocnt=0;'; + put 'data repos;'; + put 'set repos;'; + put 'where repositorytype in(''CUSTOM'',''FOUNDATION'')'; + put '& upcase(name) ne "%upcase(&repo)";'; + put 'keep id name ;'; + put 'call symputx(cats(''repo'',_n_),name,''l'');'; + put 'call symputx(''repocnt'',_n_,''l'');'; + put 'run;'; + put '/* find out which of these repositories has the libref we are searching for */'; + put '%local lib_uri;'; + put '%let lib_uri=NOTFOUND;'; + put 'data _null_; /* check default repo first */'; + put 'length lib_uri $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; + put 'run;'; + put '%if &lib_uri=NOTFOUND %then %do;'; + put '%do x=1 %to &repocnt;'; + put 'options metarepository=&&repo&x;'; + put 'data _null_;'; + put 'length lib_uri $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; + put 'run;'; + put '%if &lib_uri ne NOTFOUND %then %let x=%eval(&repocnt+1);'; + put '%end;'; + put '%end;'; + put '%if &type=READ %then %do;'; + put '%mm_assignlib(&libref)'; + put '%end;'; + put '%else %if &type=WRITE %then %do;'; + put '%mm_assigndirectlib(&libref,open_passthrough=&passthru)'; + put '%end;'; + put 'options metarepository=&repo;'; + put '%mend dc_assignlib;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file viewtables.sas'; + put '@brief List the tables and format catalogs the user can view'; + put '@details Provide a library and get list of tables and catalogs. Also return'; + put 'the libinfo details.'; + put '

Service Inputs

'; + put '
SASControlTable
'; + put 'Just one input - MPLIB (the libref to get tables and info for)'; + put '|MPLIB:$char8.|'; + put '|---|'; + put '|SOMELIB|'; + put '

Service Outputs

'; + put '
work.mptables
'; + put '|MEMNAME:$char32.|'; + put '|---|'; + put '|DS1|'; + put '|DS2|'; + put '|DS3|'; + put 'etc'; + put '
work.libinfo
'; + put 'If attributes are empty, they don''t need to be shown on screen.'; + put '|engine $|libname $|paths $|perms $|owners $|schemas $ |libid $|libsize $|table_cnt |'; + put '|---|---|---|---|---|---|---|---|---|'; + put '|V9|SOMELIB|"some/path"|rwxrwxr-x|sassrv|` `|` `|636MB|33|'; + put '

SAS Macros

'; + put '@li dc_assignlib.sas'; + put '@li mf_getuser.sas'; + put '@li mpe_getgroups.sas'; + put '@li mpe_getvars.sas'; + put '@li mpeinit.sas'; + put '@version 9.2'; + put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; + put 'downloaded from here: https://4gl.uk/dcdeploy'; + put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; + put 'and may not be re-distributed or re-sold without the express permission of'; + put '4GL Apps Ltd.'; + put '**/'; + put '%mpeinit()'; + put '%global MPLIB;'; + put '/* load parameters */'; + put '%mpe_getvars(SASControlTable, SASControlTable)'; + put '/**'; + put '* assign the Library'; + put '*/'; + put '%put &=MPLIB;'; + put '%dc_assignlib(READ,&MPLIB)'; + put '%mp_abort(iftrue= (&syscc ne 0 )'; + put ',mac=&_program..sas'; + put ',msg=%str(Unable to assign &mplib library)'; + put ')'; + put '/**'; + put '* get the tables'; + put '*/'; + put 'data members; /* empty table */'; + put 'name='''';'; + put 'memtype='''';'; + put 'run;'; + put 'ods output Members=Members;'; + put 'proc datasets library=&mplib ;'; + put 'quit;'; + put '/* cannot avoid the proc datasets warn!ng for an empty lib */'; + put '/* nolist means no output and nowarn has no effect */'; + put '%put &=syscc;'; + put 'data _null_;'; + put 'if "&syscc" ne "0" then do;'; + put 'putlog "Library &mplib is empty, setting syscc to zero";'; + put 'call symputx(''syscc'',0);'; + put 'end;'; + put 'run;'; + put '%put &=syscc;'; + put 'proc sql;'; + put 'create table work.mptables as'; + put 'select distinct case when memtype=''CATALOG'' then cats(name,''-FC'')'; + put 'else name end as memname'; + put 'from members;'; + put '/* get security groups */'; + put '%mpe_getgroups(user=%mf_getuser(),outds=groups)'; + put '/* get security settings */'; + put 'data sec;'; + put 'set &mpelib..mpe_security;'; + put 'where &dc_dttmtfmt. lt tx_to and ACCESS_LEVEL=''VIEW'';'; + put 'where also libref in (''*ALL*'',"%upcase(&mplib)");'; + put 'run;'; + put '/* check for any matching groups */'; + put 'proc sql noprint;'; + put 'create table matches as'; + put 'select * from sec'; + put 'where upcase(sas_group) in (select upcase(groupname) from groups);'; + put 'select count(*) into: securitygroupscount from matches;'; + put 'select count(*) into: ALL_CNT from matches'; + put 'where libref=''*ALL*'''; + put 'or (libref="&mplib" and dsn=''*ALL*'');'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(syscc=&syscc)'; + put ')'; + put '%macro mpestp_viewtables();'; + put '%if not %symexist(DC_RESTRICT_VIEWER) %then %let DC_RESTRICT_VIEWER=NO;'; + put '/* scenario 1 - user is in admin group, hence can view all libraries */'; + put 'proc sql noprint;'; + put 'select count(*) into: scenario1 from groups where groupname="&mpeadmins";'; + put '%if &scenario1>0 %then %return;'; + put '/* scenario 2 - viewer unrestricted and no groups listed */'; + put '%if &DC_RESTRICT_VIEWER=NO and &securitygroupscount=0 %then %return;'; + put '/* scenario 3 - an *ALL* libref or DSN is listed */'; + put '%if &all_cnt>0 %then %return;'; + put '/* scenario 4 - specific tables listed */'; + put '%if &securitygroupscount>0 %then %do;'; + put 'proc sql;'; + put 'delete from mptables'; + put 'where upcase(memname) not in (select upcase(dsn) from sec);'; + put '%return;'; + put '%end;'; + put '/* viewer restricted and no groups listed */'; + put '%if &DC_RESTRICT_VIEWER=YES and &securitygroupscount=0 %then %do;'; + put 'data mptables;'; + put 'set mptables;'; + put 'stop;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%mp_abort(iftrue= (1=1)'; + put ',mac=&_program..sas'; + put ',msg=%str(unhandled security logic error!)'; + put ')'; + put '%mend mpestp_viewtables;'; + put '%mpestp_viewtables()'; + put '/* get libinfo */'; + put 'proc sql;'; + put 'create table work.libinfo as'; + put 'select a.engine,'; + put 'a.libname,'; + put 'a.paths,'; + put 'a.perms,'; + put 'a.owners,'; + put 'a.schemas,'; + put 'a.libid,'; + put 'coalesce(b.libsize,0) as libsize,'; + put 'coalesce(b.table_cnt,0) as table_cnt'; + put 'from &mpelib..mpe_datacatalog_libs(where=(&dc_dttmtfmt. lt tx_to)) a'; + put 'left join &mpelib..mpe_datastatus_libs(where=(&dc_dttmtfmt. lt tx_to)) b'; + put 'on a.libref=b.libref'; + put 'where a.libref="&MPLIB";'; + put '%webout(OPEN)'; + put '%webout(OBJ,mptables)'; + put '%webout(OBJ,libinfo)'; + put '%webout(CLOSE)'; + put '%mpeterm()'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let path=services/usernav; + +%let service=usergroupsbymember; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Files

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as FMTCAT,'; + put 'FMTNAME'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'LENGTH num'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.length as MAXW'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put ')))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] workobs= (0) When set to a positive integer, will create a new'; + put 'output object (WORK) which contains this number of observations from all'; + put 'tables in the WORK library.'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX,workobs=0'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&workobs) > 0 %then %do;'; + put '/* if debug mode, send back first XX records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10'; + put ',maxobs=&workobs'; + put ')'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '%macro mm_getusers('; + put 'outds=work.mm_getusers,'; + put 'user=0'; + put ')/*/STORE SOURCE*/;'; + put 'filename response temp;'; + put '%if %superq(user)=0 %then %do;'; + put 'proc metadata in= '''; + put '$METAREPOSITORY'; + put 'Person'; + put 'SAS'; + put '0'; + put ''; + put ''; + put ''; + put ''; + put ''; + put ''''; + put 'out=response;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put 'filename inref temp;'; + put 'data _null_;'; + put 'file inref;'; + put 'put "";'; + put 'put "$METAREPOSITORY";'; + put 'put "Person";'; + put 'put "SAS";'; + put 'put "";'; + put 'put "128";'; + put 'put "";'; + put 'put "";'; + put 'put '''';'; + put 'put "";'; + put 'length string $10000;'; + put 'string=cats('''');'; + put 'put string;'; + put 'put "";'; + put 'put "";'; + put 'run;'; + put 'proc metadata in=inref out=response;'; + put 'run;'; + put '%end;'; + put 'filename sxlemap temp;'; + put 'data _null_;'; + put 'file sxlemap;'; + put 'put '''';'; + put 'put "/GetMetadataObjects/Objects/Person";'; + put 'put "";'; + put 'put '''';'; + put 'put "/GetMetadataObjects/Objects/Person/@Id";'; + put 'put "characterstring32";'; + put 'put '''';'; + put 'put "/GetMetadataObjects/Objects/Person/@Name";'; + put 'put "characterstring256";'; + put 'put ''
'';'; + put 'run;'; + put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; + put 'proc sort data= _XML_.SASObjects out=&outds;'; + put 'by name;'; + put 'run;'; + put 'filename sxlemap clear;'; + put 'filename response clear;'; + put 'libname _XML_ clear;'; + put '%mend mm_getusers;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file usergroupsbymember.sas'; + put '@brief List the groups a member is in'; + put '@details Runs without \%mpeinit() - this enables the dropdown to be populated'; + put 'during configuration, when the settings service does not yet exist.'; + put '

SAS Macros

'; + put '@li mp_abort.sas'; + put '@li mm_getusers.sas'; + put '@version 9.3'; + put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; + put 'downloaded from here: https://4gl.uk/dcdeploy'; + put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; + put 'and may not be re-distributed or re-sold without the express permission of'; + put '4GL Apps Ltd.'; + put '**/'; + put '%macro x();'; + put '%if %sysfunc(exist(work.iwant)) ne 1 %then %do;'; + put '/* macro called by configurator - grab the URI of calling user */'; + put '%mm_getusers(user=&_metaperson, outds=work.iwant)'; + put '%end;'; + put '%mend x;'; + put '%x()'; + put 'data groups'; + put 'roles(rename=(groupuri=roleuri groupname=rolename groupdesc=roledesc)) ;'; + put 'length uri groupuri groupname groupdesc publictype str $256;'; + put 'call missing(of _all_);'; + put 'set iwant;'; + put 'a=1;'; + put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; + put 'if grpassn in (-3,-4) then do;'; + put 'putlog "WARNING: No groups found for ";'; + put 'end;'; + put 'else do while (grpassn > 0);'; + put 'rc=metadata_getattr(groupuri, "Name", groupname);'; + put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; + put 'rc=metadata_getattr(groupuri, "PublicType", PublicType);'; + put 'a+1;'; + put 'if PublicType = ''Role'' then output roles;'; + put 'else output groups;'; + put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; + put 'end;'; + put 'keep groupuri groupname groupdesc;'; + put 'if _n_=1 then delete; /* no content so don''t send empty row */'; + put 'run;'; + put 'data emails;'; + put 'keep email type;'; + put 'length emailuri email type uri str $256;'; + put 'call missing(of _all_);'; + put 'set iwant;'; + put '/* credit'; + put 'https://seleritysas.com/data-step-view-of-email-addresses-in-sas-metadata'; + put '*/'; + put 'emailrc=1;email_count=1;'; + put 'do while(emailrc>0);'; + put '/* Get Email from Person */'; + put 'emailrc=metadata_getnasn(uri,"EmailAddresses",email_count,emailuri);'; + put 'arc=1;'; + put 'if (emailrc>0) then do;'; + put 'arc=metadata_getattr(emailuri,"Address",email);'; + put 'arc=metadata_getattr(emailuri,"EmailType",type);'; + put 'end;'; + put 'if (arc=0) then output emails;'; + put 'email_count=email_count+1;'; + put 'end;'; + put 'run;'; + put 'data logins;'; + put 'length domain userid loginuri domainuri uri $256;'; + put 'keep domain userid;'; + put 'call missing(of _all_);'; + put 'set iwant;'; + put 'login_count=1;'; + put 'do while(metadata_getnasn(uri,"Logins",login_count,loginuri)>0);'; + put 'rc=metadata_getattr(loginuri,"UserID",userid);'; + put 'rc=metadata_getnasn(loginuri,"Domain",1,domainuri);'; + put 'rc=metadata_getattr(domainuri,"Name",domain);'; + put 'output;'; + put 'login_count+1;'; + put 'end;'; + put 'run;'; + put 'data info;'; + put 'length uri name displayname metadatacreated metadataupdated $256;'; + put 'keep name displayname metadatacreated metadataupdated;'; + put 'call missing(of _all_);'; + put 'set iwant;'; + put 'rc=metadata_getattr(uri,"Name",name);'; + put 'rc=metadata_getattr(uri,"DisplayName",displayname);'; + put 'rc=metadata_getattr(uri,"MetadataCreated",MetadataCreated);'; + put 'rc=metadata_getattr(uri,"MetadataUpdated",MetadataUpdated);'; + put 'run;'; + put '%webout(OPEN)'; + put '%webout(OBJ,emails)'; + put '%webout(OBJ,groups)'; + put '%webout(OBJ,roles)'; + put '%webout(OBJ,logins)'; + put '%webout(OBJ,info)'; + put '%webout(CLOSE)'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=usermembers; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Files

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as FMTCAT,'; + put 'FMTNAME'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'LENGTH num'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.length as MAXW'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put ')))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] workobs= (0) When set to a positive integer, will create a new'; + put 'output object (WORK) which contains this number of observations from all'; + put 'tables in the WORK library.'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX,workobs=0'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&workobs) > 0 %then %do;'; + put '/* if debug mode, send back first XX records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10'; + put ',maxobs=&workobs'; + put ')'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '%macro mm_getusers('; + put 'outds=work.mm_getusers,'; + put 'user=0'; + put ')/*/STORE SOURCE*/;'; + put 'filename response temp;'; + put '%if %superq(user)=0 %then %do;'; + put 'proc metadata in= '''; + put '$METAREPOSITORY'; + put 'Person'; + put 'SAS'; + put '0'; + put ''; + put ''; + put ''; + put ''; + put ''; + put ''''; + put 'out=response;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put 'filename inref temp;'; + put 'data _null_;'; + put 'file inref;'; + put 'put "";'; + put 'put "$METAREPOSITORY";'; + put 'put "Person";'; + put 'put "SAS";'; + put 'put "";'; + put 'put "128";'; + put 'put "";'; + put 'put "";'; + put 'put '''';'; + put 'put "";'; + put 'length string $10000;'; + put 'string=cats('''');'; + put 'put string;'; + put 'put "";'; + put 'put "";'; + put 'run;'; + put 'proc metadata in=inref out=response;'; + put 'run;'; + put '%end;'; + put 'filename sxlemap temp;'; + put 'data _null_;'; + put 'file sxlemap;'; + put 'put '''';'; + put 'put "/GetMetadataObjects/Objects/Person";'; + put 'put "";'; + put 'put '''';'; + put 'put "/GetMetadataObjects/Objects/Person/@Id";'; + put 'put "characterstring32";'; + put 'put '''';'; + put 'put "/GetMetadataObjects/Objects/Person/@Name";'; + put 'put "characterstring256";'; + put 'put ''
'';'; + put 'run;'; + put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; + put 'proc sort data= _XML_.SASObjects out=&outds;'; + put 'by name;'; + put 'run;'; + put 'filename sxlemap clear;'; + put 'filename response clear;'; + put 'libname _XML_ clear;'; + put '%mend mm_getusers;'; + put '%macro mm_getrepos('; + put 'outds=work.mm_getrepos'; + put ')/*/STORE SOURCE*/;'; + put '* use a temporary fileref to hold the response;'; + put 'filename response temp;'; + put '/* get list of libraries */'; + put 'proc metadata in='; + put '"1"'; + put 'out=response;'; + put 'run;'; + put '/* write the response to the log for debugging */'; + put '/*'; + put 'data _null_;'; + put 'infile response lrecl=1048576;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '*/'; + put '/* create an XML map to read the response */'; + put 'filename sxlemap temp;'; + put 'data _null_;'; + put 'file sxlemap;'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository";'; + put 'put "";'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Id";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Name";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Desc";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@DefaultNS";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryType";'; + put 'put "characterstring20";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryFormat";'; + put 'put "characterstring10";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@Access";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@CurrentAccess";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@PauseState";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Path";'; + put 'put "";'; + put 'put "characterstring256";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Engine";'; + put 'put "";'; + put 'put "characterstring8";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Options";'; + put 'put "";'; + put 'put "characterstring32";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataCreated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataUpdated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put ''
'';'; + put 'run;'; + put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; + put 'proc sort data= _XML_.SASRepos out=&outds;'; + put 'by name;'; + put 'run;'; + put '/* clear references */'; + put 'filename sxlemap clear;'; + put 'filename response clear;'; + put 'libname _XML_ clear;'; + put '%mend mm_getrepos;'; + put '%macro dc_getusers(outds=mm_getlibs);'; + put '/* take current repository */'; + put '%local repo repocnt x;'; + put '%let repo=%sysfunc(getoption(metarepository));'; + put '/* get list of repositories and filter */'; + put '%mm_getrepos(outds=repos)'; + put '%let repocnt=0;'; + put 'data repos;'; + put 'set repos;'; + put 'where repositorytype in(''CUSTOM'',''FOUNDATION'')'; + put '& upcase(name) ne "%upcase(&repo)";'; + put 'keep id name ;'; + put 'call symputx(cats(''repo'',_n_),name,''l'');'; + put 'call symputx(''repocnt'',_n_,''l'');'; + put 'run;'; + put '%put _local_;'; + put '%mm_getusers(outds=&outds)'; + put '%do x=1 %to &repocnt;'; + put 'options metarepository=&&repo&x;'; + put '%mm_getusers(outds=&outds.a)'; + put 'proc append base=&outds data=&outds.a;'; + put 'run;'; + put '%end;'; + put 'options metarepository=&repo;'; + put '%mend dc_getusers;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file usermembers.sas'; + put '@brief List all SAS users'; + put '@details Gets a list of all SAS users'; + put '

SAS Macros

'; + put '@li dc_getusers.sas'; + put '@li mpeinit.sas'; + put '@version 9.3'; + put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; + put 'downloaded from here: https://4gl.uk/dcdeploy'; + put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; + put 'and may not be re-distributed or re-sold without the express permission of'; + put '4GL Apps Ltd.'; + put '**/'; + put '%mpeinit()'; + put '%dc_getusers(outds=users)'; + put '%webout(OPEN)'; + put '%webout(OBJ,users)'; + put '%webout(CLOSE)'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=usermembersbygroup; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Files

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as FMTCAT,'; + put 'FMTNAME'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'LENGTH num'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.length as MAXW'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put ')))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] workobs= (0) When set to a positive integer, will create a new'; + put 'output object (WORK) which contains this number of observations from all'; + put 'tables in the WORK library.'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX,workobs=0'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&workobs) > 0 %then %do;'; + put '/* if debug mode, send back first XX records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10'; + put ',maxobs=&workobs'; + put ')'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file usermembersbygroup.sas'; + put '@brief List the members of a group'; + put '

SAS Macros

'; + put '@li mp_abort.sas'; + put '@li mpeinit.sas'; + put '@version 9.3'; + put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; + put 'downloaded from here: https://4gl.uk/dcdeploy'; + put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; + put 'and may not be re-distributed or re-sold without the express permission of'; + put '4GL Apps Ltd.'; + put '**/'; + put '%mpeinit()'; + put 'data sasMembers ;'; + put 'attrib uriGrp uriMem GroupId GroupName Group_or_Role MemberName MemberType'; + put 'MemberUpdated membercreated emailuri length=$64'; + put 'GroupDesc email length=$256'; + put 'rcGrp rcMem rc i j length=3;'; + put 'call missing (of _all_);'; + put 'drop uriGrp rcGrp rcMem rc i j;'; + put 'set iwant;'; + put 'i=1;'; + put '* Grab the URI for the first Group ;'; + put 'rcGrp=metadata_getnobj(groupid,i,uriGrp);'; + put '* If Group found, enter do loop ;'; + put 'if rcGrp>0 then do;'; + put 'call missing (rcMem,uriMem,GroupId,GroupName,Group_or_Role'; + put ',MemberName,MemberType);'; + put '* get group info ;'; + put 'rc = metadata_getattr(uriGrp,"Id",GroupId);'; + put 'rc = metadata_getattr(uriGrp,"Name",GroupName);'; + put 'rc = metadata_getattr(uriGrp,"PublicType",Group_or_Role);'; + put 'rc = metadata_getattr(uriGrp,"Desc",GroupDesc);'; + put 'j=1;'; + put 'do while (metadata_getnasn(uriGrp,"MemberIdentities",j,uriMem) > 0);'; + put 'call missing (MemberName,MemberType);'; + put 'rc = metadata_getattr(uriMem,"Name",MemberName);'; + put 'rc = metadata_getattr(uriMem,"PublicType",MemberType);'; + put 'rc=metadata_getattr(uriMem, "MetadataCreated", MemberCreated);'; + put 'rc=metadata_getattr(uriMem, "MetadataUpdated", MemberUpdated);'; + put 'emailrc=metadata_getnasn(uriMem,"EmailAddresses",1,emailuri);'; + put 'if (emailrc>0) then rc=metadata_getattr(emailuri,"Address",email);'; + put 'output;'; + put 'j+1;'; + put 'call missing(email,emailuri);'; + put 'end;'; + put 'end;'; + put 'if _n_=1 then delete;'; + put 'run;'; + put '%webout(OPEN)'; + put '%webout(OBJ,sasMembers)'; + put '%webout(CLOSE)'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=usermembersbyrole; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Files

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as FMTCAT,'; + put 'FMTNAME'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'LENGTH num'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.length as MAXW'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put ')))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] workobs= (0) When set to a positive integer, will create a new'; + put 'output object (WORK) which contains this number of observations from all'; + put 'tables in the WORK library.'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX,workobs=0'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&workobs) > 0 %then %do;'; + put '/* if debug mode, send back first XX records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10'; + put ',maxobs=&workobs'; + put ')'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file usermembersbyrole.sas'; + put '@brief List the members of a role'; + put '

SAS Macros

'; + put '@li mp_abort.sas'; + put '@li mpeinit.sas'; + put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; + put 'downloaded from here: https://4gl.uk/dcdeploy'; + put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; + put 'and may not be re-distributed or re-sold without the express permission of'; + put '4GL Apps Ltd.'; + put '**/'; + put '%mpeinit()'; + put 'data sasMembers sasgroups;'; + put 'attrib uriGrp uriMem roleId roleName Group_or_Role MemberName MemberType'; + put 'MemberUpdated membercreated emailuri length=$64'; + put 'roleDesc email length=$256'; + put 'rcGrp rcMem rc i j length=3;'; + put 'call missing (of _all_);'; + put 'set iwant;'; + put 'i=1;'; + put '* Grab the URI for the first Group ;'; + put 'rcGrp=metadata_getnobj(roleid,i,uriGrp);'; + put '* If Group found, enter do loop ;'; + put 'if rcGrp>0 then do;'; + put 'call missing (rcMem,uriMem,roleId,roleName,Group_or_Role'; + put ',MemberName,MemberType,roleDesc);'; + put '* get group info ;'; + put 'rc = metadata_getattr(uriGrp,"Id",roleId);'; + put 'rc = metadata_getattr(uriGrp,"Name",roleName);'; + put 'rc = metadata_getattr(uriGrp,"PublicType",Group_or_Role);'; + put 'rc = metadata_getattr(uriGrp,"Desc",roleDesc);'; + put 'j=1;'; + put 'if Group_or_Role=''Role'' then do while'; + put '(metadata_getnasn(uriGrp,"MemberIdentities",j,uriMem) > 0);'; + put 'call missing (MemberName,MemberType);'; + put 'call missing(email,emailuri);'; + put 'rc = metadata_getattr(uriMem,"Name",MemberName);'; + put 'rc = metadata_getattr(uriMem,"PublicType",MemberType);'; + put 'rc=metadata_getattr(uriMem, "MetadataCreated", MemberCreated);'; + put 'rc=metadata_getattr(uriMem, "MetadataUpdated", MemberUpdated);'; + put 'emailrc=metadata_getnasn(uriMem,"EmailAddresses",1,emailuri);'; + put 'if (emailrc>0) then rc=metadata_getattr(emailuri,"Address",email);'; + put 'if membertype=''UserGroup'' then output sasgroups;'; + put 'else output sasmembers;'; + put 'j+1;'; + put 'end;'; + put 'end;'; + put 'if _n_=1 then delete; /* no roles so don''t send empty row */'; + put 'keep uriMem membertype membername MemberCreated MemberUpdated email;'; + put 'run;'; + put '%webout(OPEN)'; + put '%webout(OBJ,sasGroups)'; + put '%webout(OBJ,sasMembers)'; + put '%webout(CLOSE)'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=userroles; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Files

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as FMTCAT,'; + put 'FMTNAME'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'LENGTH num'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.length as MAXW'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put ')))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] workobs= (0) When set to a positive integer, will create a new'; + put 'output object (WORK) which contains this number of observations from all'; + put 'tables in the WORK library.'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX,workobs=0'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&workobs) > 0 %then %do;'; + put '/* if debug mode, send back first XX records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10'; + put ',maxobs=&workobs'; + put ')'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '%macro mm_getroles('; + put 'outds=work.mm_getroles'; + put ')/*/STORE SOURCE*/;'; + put 'filename response temp;'; + put 'options noquotelenmax;'; + put 'proc metadata in= ''$METAREPOSITORY'; + put 'IdentityGroupSAS388'; + put ''; + put ''; + put ''; + put ''; + put ''''; + put 'out=response;'; + put 'run;'; + put 'filename sxlemap temp;'; + put 'data _null_;'; + put 'file sxlemap;'; + put 'put '''';'; + put 'put "/GetMetadataObjects/Objects/IdentityGroup";'; + put 'put "";'; + put 'put '''';'; + put 'put "/GetMetadataObjects/Objects/IdentityGroup/@Id";'; + put 'put "";'; + put 'put "characterstring32";'; + put 'put '''';'; + put 'put "/GetMetadataObjects/Objects/IdentityGroup/@Name";'; + put 'put "";'; + put 'put "characterstring256";'; + put 'put '''';'; + put 'put "/GetMetadataObjects/Objects/IdentityGroup/@Desc";'; + put 'put "";'; + put 'put "characterstring500";'; + put 'put ''
'';'; + put 'run;'; + put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; + put 'proc sort data= _XML_.roles out=&outds;'; + put 'by rolename;'; + put 'run;'; + put 'filename sxlemap clear;'; + put 'filename response clear;'; + put 'libname _XML_ clear;'; + put '%mend mm_getroles;'; + put '%macro mm_getrepos('; + put 'outds=work.mm_getrepos'; + put ')/*/STORE SOURCE*/;'; + put '* use a temporary fileref to hold the response;'; + put 'filename response temp;'; + put '/* get list of libraries */'; + put 'proc metadata in='; + put '"1"'; + put 'out=response;'; + put 'run;'; + put '/* write the response to the log for debugging */'; + put '/*'; + put 'data _null_;'; + put 'infile response lrecl=1048576;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '*/'; + put '/* create an XML map to read the response */'; + put 'filename sxlemap temp;'; + put 'data _null_;'; + put 'file sxlemap;'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository";'; + put 'put "";'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Id";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Name";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Desc";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@DefaultNS";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryType";'; + put 'put "characterstring20";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryFormat";'; + put 'put "characterstring10";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@Access";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@CurrentAccess";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@PauseState";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Path";'; + put 'put "";'; + put 'put "characterstring256";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Engine";'; + put 'put "";'; + put 'put "characterstring8";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Options";'; + put 'put "";'; + put 'put "characterstring32";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataCreated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataUpdated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put ''
'';'; + put 'run;'; + put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; + put 'proc sort data= _XML_.SASRepos out=&outds;'; + put 'by name;'; + put 'run;'; + put '/* clear references */'; + put 'filename sxlemap clear;'; + put 'filename response clear;'; + put 'libname _XML_ clear;'; + put '%mend mm_getrepos;'; + put '%macro dc_getroles(outds=mm_getroles);'; + put '/* take current repository */'; + put '%local repo repocnt x;'; + put '%let repo=%sysfunc(getoption(metarepository));'; + put '/* get list of repositories and filter */'; + put '%mm_getrepos(outds=repos)'; + put '%let repocnt=0;'; + put 'data repos;'; + put 'set repos;'; + put 'where repositorytype in(''CUSTOM'',''FOUNDATION'')'; + put '& upcase(name) ne "%upcase(&repo)";'; + put 'keep id name ;'; + put 'call symputx(cats(''repo'',_n_),name,''l'');'; + put 'call symputx(''repocnt'',_n_,''l'');'; + put 'run;'; + put '%put _local_;'; + put '%mm_getroles(outds=&outds)'; + put '%do x=1 %to &repocnt;'; + put 'options metarepository=&&repo&x;'; + put '%mm_getroles(outds=&outds.a)'; + put 'proc append base=&outds data=&outds.a;'; + put 'run;'; + put '%end;'; + put 'options metarepository=&repo;'; + put '%mend dc_getroles;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file userroles.sas'; + put '@brief List all SAS Roles'; + put '@details Gets a list of all SAS Roles'; + put '

SAS Macros

'; + put '@li dc_getroles.sas'; + put '@li mpeinit.sas'; + put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; + put 'downloaded from here: https://4gl.uk/dcdeploy'; + put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; + put 'and may not be re-distributed or re-sold without the express permission of'; + put '4GL Apps Ltd.'; + put '**/'; + put '%mpeinit()'; + put '%dc_getroles(outds=roles)'; + put '%webout(OPEN)'; + put '%webout(OBJ,roles)'; + put '%webout(CLOSE)'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let path=services/validations; + +%let service=columns_in_libds; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Files

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as FMTCAT,'; + put 'FMTNAME'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'LENGTH num'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.length as MAXW'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put ')))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] workobs= (0) When set to a positive integer, will create a new'; + put 'output object (WORK) which contains this number of observations from all'; + put 'tables in the WORK library.'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX,workobs=0'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&workobs) > 0 %then %do;'; + put '/* if debug mode, send back first XX records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10'; + put ',maxobs=&workobs'; + put ')'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '%macro mm_assignlib('; + put 'libref'; + put ',mAbort=HARD'; + put ')/*/STORE SOURCE*/;'; + put '%local mp_abort msg;'; + put '%let mp_abort=0;'; + put '%if %sysfunc(libref(&libref)) %then %do;'; + put 'data _null_;'; + put 'length liburi LibName msg $200;'; + put 'call missing(of _all_);'; + put 'nobj=metadata_getnobj("omsobj:SASLibrary?@Libref=''&libref''",1,liburi);'; + put 'if nobj=1 then do;'; + put 'rc=metadata_getattr(liburi,"Name",LibName);'; + put '/* now try and assign it */'; + put 'if libname("&libref",,''meta'',cats(''liburi="'',liburi,''";'')) ne 0 then do;'; + put 'putlog "&libref could not be assigned";'; + put 'putlog liburi=;'; + put '/**'; + put '* Fetch the system message for display in the abort modal. This is'; + put '* not always helpful though. One example, previously received:'; + put '* NOTE: Libref XX refers to the same library metadata as libref XX.'; + put '*/'; + put 'msg=sysmsg();'; + put 'if msg=:''ERROR: Libref SAVE is not assigned.'' then do;'; + put 'msg=catx(" ",'; + put '"Could not assign %upcase(&libref).",'; + put '"Please check metadata permissions! Libname:",libname,'; + put '"Liburi:",liburi'; + put ');'; + put 'end;'; + put 'else if msg="ERROR: User does not have appropriate authorization "!!'; + put '"level for library SAVE."'; + put 'then do;'; + put 'msg=catx(" ",'; + put '"ERROR: User does not have appropriate authorization level",'; + put '"for library %upcase(&libref), libname:",libname,'; + put '"Liburi:",liburi'; + put ');'; + put 'end;'; + put 'call symputx(''msg'',msg,''l'');'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1,''l'');'; + put 'end;'; + put 'else do;'; + put 'put (_all_)(=);'; + put 'call symputx(''libname'',libname,''L'');'; + put 'call symputx(''liburi'',liburi,''L'');'; + put 'end;'; + put 'end;'; + put 'else if nobj>1 then do;'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; + put 'call symputx(''msg'',"More than one library with libref=&libref");'; + put 'end;'; + put 'else do;'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; + put 'call symputx(''msg'',"Library &libref not found in metadata");'; + put 'end;'; + put 'run;'; + put '%put NOTE: &msg;'; + put '%end;'; + put '%else %do;'; + put '%put NOTE: Library &libref is already assigned;'; + put '%end;'; + put '%mp_abort(iftrue= (&mp_abort=1)'; + put ',mac=mm_assignlib.sas'; + put ',msg=%superq(msg)'; + put ')'; + put '%mend mm_assignlib;'; + put '/** @cond */'; + put '%macro mf_getengine(libref'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid engnum rc engine;'; + put '/* in case the parameter is a libref.tablename, pull off just the libref */'; + put '%let libref = %upcase(%scan(&libref, 1, %str(.)));'; + put '%let dsid=%sysfunc('; + put 'open(sashelp.vlibnam(where=(libname="%upcase(&libref)")),i)'; + put ');'; + put '%if (&dsid ^= 0) %then %do;'; + put '%let engnum=%sysfunc(varnum(&dsid,ENGINE));'; + put '%let rc=%sysfunc(fetch(&dsid));'; + put '%let engine=%sysfunc(getvarc(&dsid,&engnum));'; + put '%put &libref. ENGINE is &engine.;'; + put '%let rc= %sysfunc(close(&dsid));'; + put '%end;'; + put '%upcase(&engine)'; + put '%mend mf_getengine;'; + put '/** @endcond */'; + put '%macro mm_assigndirectlib('; + put 'libref /* libref to assign from metadata */'; + put ',open_passthrough= /* provide an alias to produce the'; + put 'CONNECT TO statement for the'; + put 'relevant external database */'; + put ',sql_options= /* add any options to add to proc sql statement eg outobs='; + put '(only valid for pass through) */'; + put ',mDebug=0'; + put ',mAbort=0'; + put ')/*/STORE SOURCE*/;'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing mm_assigndirectlib.sas;'; + put '%&mD.put _local_;'; + put '%if &mAbort=1 %then %let mAbort=;'; + put '%else %let mAbort=%str(*);'; + put '%&mD.put NOTE: Creating direct (non META) connection to &libref library;'; + put '%local cur_engine;'; + put '%let cur_engine=%mf_getengine(&libref);'; + put '%if &cur_engine ne META and &cur_engine ne %then %do;'; + put '%put NOTE: &libref already has a direct (&cur_engine) libname connection;'; + put '%return;'; + put '%end;'; + put '%else %if %upcase(&libref)=WORK %then %do;'; + put '%put NOTE: We already have a direct connection to WORK :-) ;'; + put '%return;'; + put '%end;'; + put '/* need to determine the library ENGINE first */'; + put '%local engine;'; + put 'data _null_;'; + put 'length lib_uri engine $256;'; + put 'call missing (of _all_);'; + put '/* get URI for the particular library */'; + put 'rc1=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put '/* get the Engine attribute of the previous object */'; + put 'rc2=metadata_getattr(lib_uri,''Engine'',engine);'; + put 'putlog "mm_assigndirectlib for &libref:" rc1= lib_uri= rc2= engine=;'; + put 'call symputx("liburi",lib_uri,''l'');'; + put 'call symputx("engine",engine,''l'');'; + put 'run;'; + put '/* now obtain engine specific connection details */'; + put '%if &engine=BASE %then %do;'; + put '%&mD.put NOTE: Retrieving BASE library path;'; + put 'data _null_;'; + put 'length up_uri $256 path cat_path $1024;'; + put 'retain cat_path;'; + put 'call missing (of _all_);'; + put '/* get all the filepaths of the UsingPackages association */'; + put 'i=1;'; + put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; + put 'do while (rc3>0);'; + put '/* get the DirectoryName attribute of the previous object */'; + put 'rc4=metadata_getattr(up_uri,''DirectoryName'',path);'; + put 'if i=1 then path = ''("''!!trim(path)!!''" '';'; + put 'else path ='' "''!!trim(path)!!''" '';'; + put 'cat_path = trim(cat_path) !! " " !! trim(path) ;'; + put 'i+1;'; + put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; + put 'end;'; + put 'cat_path = trim(cat_path) !! ")";'; + put '&mD.putlog "NOTE: Getting physical path for &libref library";'; + put '&mD.putlog rc3= up_uri= rc4= cat_path= path=;'; + put '&mD.putlog "NOTE: Libname cmd will be:";'; + put '&mD.putlog "libname &libref" cat_path;'; + put 'call symputx("filepath",cat_path,''l'');'; + put 'run;'; + put '%if %sysevalf(&sysver<9.4) %then %do;'; + put 'libname &libref &filepath;'; + put '%end;'; + put '%else %do;'; + put '/* apply the new filelocks option to cater for temporary locks */'; + put 'libname &libref &filepath filelockwait=5;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=REMOTE %then %do;'; + put 'data x;'; + put 'length rcCon rcProp rc k 3 uriCon uriProp PropertyValue PropertyName'; + put 'Delimiter $256 properties $2048;'; + put 'retain properties;'; + put 'rcCon = metadata_getnasn("&liburi", "LibraryConnection", 1, uriCon);'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", 1, uriProp);'; + put 'k = 1;'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; + put 'do while (rcProp > 0);'; + put 'rc = metadata_getattr(uriProp , "DefaultValue",PropertyValue);'; + put 'rc = metadata_getattr(uriProp , "PropertyName",PropertyName);'; + put 'rc = metadata_getattr(uriProp , "Delimiter",Delimiter);'; + put 'properties = trim(properties) !! " " !! trim(PropertyName)'; + put '!! trim(Delimiter) !! trim(PropertyValue);'; + put 'output;'; + put 'k+1;'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; + put 'end;'; + put '%&mD.put NOTE: Getting properties for REMOTE SHARE &libref library;'; + put '&mD.put _all_;'; + put '%&mD.put NOTE: Libname cmd will be:;'; + put '%&mD.put libname &libref &engine &properties slibref=&libref;'; + put 'call symputx ("properties",trim(properties),''l'');'; + put 'run;'; + put 'libname &libref &engine &properties slibref=&libref;'; + put '%end;'; + put '%else %if &engine=OLEDB %then %do;'; + put '%&mD.put NOTE: Retrieving OLEDB connection details;'; + put 'data _null_;'; + put 'length domain datasource provider properties schema'; + put 'connx_uri domain_uri conprop_uri lib_uri schema_uri value $256.;'; + put 'call missing (of _all_);'; + put '/* get source connection ID */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; + put '/* get connection domain */'; + put 'rc1=metadata_getnasn(connx_uri,''Domain'',1,domain_uri);'; + put 'rc2=metadata_getattr(domain_uri,''Name'',domain);'; + put '&mD.putlog / ''NOTE: '' // ''NOTE- connection id: '' connx_uri ;'; + put '&mD.putlog ''NOTE- domain: '' domain;'; + put '/* get DSN and PROVIDER from connection properties */'; + put 'i=0;'; + put 'do until (rc<0);'; + put 'i+1;'; + put 'rc=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; + put 'rc2=metadata_getattr(conprop_uri,''Name'',value);'; + put 'if value=''Connection.OLE.Property.DATASOURCE.Name.xmlKey.txt'' then do;'; + put 'rc3=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; + put 'end;'; + put 'else if value=''Connection.OLE.Property.PROVIDER.Name.xmlKey.txt'' then do;'; + put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',provider);'; + put 'end;'; + put 'else if value=''Connection.OLE.Property.PROPERTIES.Name.xmlKey.txt'' then'; + put 'do;'; + put 'rc5=metadata_getattr(conprop_uri,''DefaultValue'',properties);'; + put 'end;'; + put 'end;'; + put '&mD.putlog ''NOTE- dsn/provider/properties: '' /'; + put 'datasource provider properties;'; + put '&mD.putlog ''NOTE- schema: '' schema // ''NOTE-'';'; + put '/* get SCHEMA */'; + put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,lib_uri);'; + put 'rc7=metadata_getattr(lib_uri,''SchemaName'',schema);'; + put 'call symputx(''SQL_domain'',domain,''l'');'; + put 'call symputx(''SQL_dsn'',datasource,''l'');'; + put 'call symputx(''SQL_provider'',provider,''l'');'; + put 'call symputx(''SQL_properties'',properties,''l'');'; + put 'call symputx(''SQL_schema'',schema,''l'');'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put 'proc sql &sql_options;'; + put 'connect to OLEDB as &open_passthrough(INSERT_SQL=YES'; + put '/* need additional properties to make this work */'; + put 'properties=(''Integrated Security''=SSPI'; + put '''Persist Security Info''=True'; + put '%sysfunc(compress(%str(&SQL_properties),%str(())))'; + put ')'; + put 'DATASOURCE=&sql_dsn PROMPT=NO'; + put 'PROVIDER=&sql_provider SCHEMA=&sql_schema CONNECTION = GLOBAL);'; + put '%end;'; + put '%else %do;'; + put 'LIBNAME &libref OLEDB PROPERTIES=&sql_properties'; + put 'DATASOURCE=&sql_dsn PROVIDER=&sql_provider SCHEMA=&sql_schema'; + put '%if %length(&sql_domain)>0 %then %do;'; + put 'authdomain="&sql_domain"'; + put '%end;'; + put 'connection=shared;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=ODBC %then %do;'; + put '&mD.%put NOTE: Retrieving ODBC connection details;'; + put 'data _null_;'; + put 'length connx_uri conprop_uri value datasource up_uri schema $256.;'; + put 'call missing (of _all_);'; + put '/* get source connection ID */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; + put '/* get connection properties */'; + put 'i=0;'; + put 'do until (rc2<0);'; + put 'i+1;'; + put 'rc2=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; + put 'rc3=metadata_getattr(conprop_uri,''Name'',value);'; + put 'if value=''Connection.ODBC.Property.DATASRC.Name.xmlKey.txt'' then do;'; + put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; + put 'rc2=-1;'; + put 'end;'; + put 'end;'; + put '/* get SCHEMA */'; + put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,up_uri);'; + put 'rc7=metadata_getattr(up_uri,''SchemaName'',schema);'; + put '&mD.put rc= connx_uri= rc2= conprop_uri= rc3= value= rc4= datasource='; + put 'rc6= up_uri= rc7= schema=;'; + put 'call symputx(''SQL_schema'',schema,''l'');'; + put 'call symputx(''SQL_dsn'',datasource,''l'');'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put 'proc sql &sql_options;'; + put 'connect to ODBC as &open_passthrough'; + put '(INSERT_SQL=YES DATASRC=&sql_dsn. CONNECTION=global);'; + put '%end;'; + put '%else %do;'; + put 'libname &libref ODBC DATASRC=&sql_dsn SCHEMA=&sql_schema;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=POSTGRES %then %do;'; + put '%put NOTE: Obtaining POSTGRES library details;'; + put 'data _null_;'; + put 'length database ignore_read_only_columns direct_exe preserve_col_names'; + put 'preserve_tab_names server schema authdomain user password'; + put 'prop name value uri urisrc $256.;'; + put 'call missing (of _all_);'; + put '/* get database value */'; + put 'prop=''Connection.DBMS.Property.DB.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,database,"");'; + put 'if database^='''' then database=''database=''!!quote(trim(database));'; + put 'call symputx(''database'',database,''l'');'; + put '/* get IGNORE_READ_ONLY_COLUMNS value */'; + put 'prop=''Library.DBMS.Property.DBIROC.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,ignore_read_only_columns,"");'; + put 'if ignore_read_only_columns^='''' then ignore_read_only_columns='; + put '''ignore_read_only_columns=''!!ignore_read_only_columns;'; + put 'call symputx(''ignore_read_only_columns'',ignore_read_only_columns,''l'');'; + put '/* get DIRECT_EXE value */'; + put 'prop=''Library.DBMS.Property.DirectExe.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,direct_exe,"");'; + put 'if direct_exe^='''' then direct_exe=''direct_exe=''!!direct_exe;'; + put 'call symputx(''direct_exe'',direct_exe,''l'');'; + put '/* get PRESERVE_COL_NAMES value */'; + put 'prop=''Library.DBMS.Property.PreserveColNames.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,preserve_col_names,"");'; + put 'if preserve_col_names^='''' then preserve_col_names='; + put '''preserve_col_names=''!!preserve_col_names;'; + put 'call symputx(''preserve_col_names'',preserve_col_names,''l'');'; + put '/* get PRESERVE_TAB_NAMES value */'; + put '/* be careful with PRESERVE_TAB_NAMES=YES - it will mean your table will'; + put 'become case sensitive!! */'; + put 'prop=''Library.DBMS.Property.PreserveTabNames.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,preserve_tab_names,"");'; + put 'if preserve_tab_names^='''' then preserve_tab_names='; + put '''preserve_tab_names=''!!preserve_tab_names;'; + put 'call symputx(''preserve_tab_names'',preserve_tab_names,''l'');'; + put '/* get SERVER value */'; + put 'if metadata_getnasn("&liburi","LibraryConnection",1,uri)>0 then do;'; + put 'prop=''Connection.DBMS.Property.SERVER.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop(uri,prop,server,"");'; + put 'end;'; + put 'if server^='''' then server=''server=''!!quote(cats(server));'; + put 'call symputx(''server'',server,''l'');'; + put '/* get SCHEMA value */'; + put 'if metadata_getnasn("&liburi","UsingPackages",1,uri)>0 then do;'; + put 'rc=metadata_getattr(uri,"SchemaName",schema);'; + put 'end;'; + put 'if schema^='''' then schema=''schema=''!!schema;'; + put 'call symputx(''schema'',schema,''l'');'; + put '/* get AUTHDOMAIN value */'; + put '/* this is only useful if the user account contains that auth domain'; + put 'if metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then do;'; + put 'rc=metadata_getnasn(uri,"Domain",1,urisrc);'; + put 'rc=metadata_getattr(urisrc,"Name",authdomain);'; + put 'end;'; + put 'if authdomain^='''' then authdomain=''authdomain=''!!quote(trim(authdomain));'; + put '*/'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/* get user & pass */'; + put 'if authdomain='''' & metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then'; + put 'do;'; + put 'rc=metadata_getattr(uri,"UserID",user);'; + put 'rc=metadata_getattr(uri,"Password",password);'; + put 'end;'; + put 'if user^='''' then do;'; + put 'user=''user=''!!quote(trim(user));'; + put 'password=''password=''!!quote(trim(password));'; + put 'end;'; + put 'call symputx(''user'',user,''l'');'; + put 'call symputx(''password'',password,''l'');'; + put '&md.put _all_;'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put '%put %str(WARN)ING: Passthrough option for postgres not yet supported;'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put '%if &mdebug=1 %then %do;'; + put '%put NOTE: Executing the following:/;'; + put '%put NOTE- libname &libref POSTGRES &database &ignore_read_only_columns;'; + put '%put NOTE- &direct_exe &preserve_col_names &preserve_tab_names;'; + put '%put NOTE- &server &schema &authdomain &user &password //;'; + put '%end;'; + put 'libname &libref POSTGRES &database &ignore_read_only_columns &direct_exe'; + put '&preserve_col_names &preserve_tab_names &server &schema &authdomain'; + put '&user &password;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=ORACLE %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null_;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema $256;'; + put 'call missing (of _all_);'; + put '/* get auth domain */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; + put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; + put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/* path */'; + put 'rc=metadata_getprop(assocuri1,'; + put '''Connection.Oracle.Property.PATH.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref ORACLE path=&path schema=&schema;'; + put '%put NOTE- authdomain=&authdomain;'; + put '%put NOTE-;'; + put 'libname &libref ORACLE path=&path schema=&schema authdomain=&authdomain;'; + put '%end;'; + put '%else %if &engine=SQLSVR %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; + put 'passwd $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; + put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; + put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; + put 'call symputx(''user'',userid,''l'');'; + put 'call symputx(''pass'',passwd,''l'');'; + put '/* path */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; + put 'rc=metadata_getprop(assocuri2,'; + put '''Connection.SQL.Property.Datasrc.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref SQLSVR datasrc=&path schema=&schema ;'; + put '%put NOTE- user="&user" pass="XXX";'; + put '%put NOTE-;'; + put 'libname &libref SQLSVR datasrc=&path schema=&schema user="&user" pass="&pass";'; + put '%end;'; + put '%else %if &engine=TERADATA %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; + put 'passwd $256;'; + put 'call missing (of _all_);'; + put '/* get auth domain */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; + put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; + put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/*'; + put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; + put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; + put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; + put 'call symputx(''user'',userid,''l'');'; + put 'call symputx(''pass'',passwd,''l'');'; + put '*/'; + put '/* path */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; + put 'rc=metadata_getprop(assocuri2,'; + put '''Connection.Teradata.Property.SERVER.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref TERADATA server="&path" schema=&schema ;'; + put '%put NOTe- authdomain=&authdomain;'; + put '%put NOTE-;'; + put 'libname &libref TERADATA server="&path" schema=&schema authdomain=&authdomain;'; + put '%end;'; + put '%else %if &engine= %then %do;'; + put '%put NOTE: Libref &libref is not registered in metadata;'; + put '%&mAbort.mp_abort('; + put 'msg=%str(ERR)OR: Libref &libref is not registered in metadata'; + put ',mac=mm_assigndirectlib.sas);'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put '%put %str(WARN)ING: Engine &engine is currently unsupported;'; + put '%put %str(WARN)ING- Please contact your support team.;'; + put '%return;'; + put '%end;'; + put '%mend mm_assigndirectlib;'; + put '%macro mm_getrepos('; + put 'outds=work.mm_getrepos'; + put ')/*/STORE SOURCE*/;'; + put '* use a temporary fileref to hold the response;'; + put 'filename response temp;'; + put '/* get list of libraries */'; + put 'proc metadata in='; + put '"1"'; + put 'out=response;'; + put 'run;'; + put '/* write the response to the log for debugging */'; + put '/*'; + put 'data _null_;'; + put 'infile response lrecl=1048576;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '*/'; + put '/* create an XML map to read the response */'; + put 'filename sxlemap temp;'; + put 'data _null_;'; + put 'file sxlemap;'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository";'; + put 'put "";'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Id";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Name";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Desc";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@DefaultNS";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryType";'; + put 'put "characterstring20";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryFormat";'; + put 'put "characterstring10";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@Access";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@CurrentAccess";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@PauseState";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Path";'; + put 'put "";'; + put 'put "characterstring256";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Engine";'; + put 'put "";'; + put 'put "characterstring8";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Options";'; + put 'put "";'; + put 'put "characterstring32";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataCreated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataUpdated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put ''
'';'; + put 'run;'; + put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; + put 'proc sort data= _XML_.SASRepos out=&outds;'; + put 'by name;'; + put 'run;'; + put '/* clear references */'; + put 'filename sxlemap clear;'; + put 'filename response clear;'; + put 'libname _XML_ clear;'; + put '%mend mm_getrepos;'; + put '%macro dc_assignlib(type,libref,passthru=);'; + put '%put &sysmacroname entry vars:;'; + put '%put _local_;'; + put '/* take current repository */'; + put '%local repo repocnt x;'; + put '%let repo=%sysfunc(getoption(metarepository));'; + put '/* get list of repositories and filter */'; + put '%mm_getrepos(outds=repos)'; + put '%let repocnt=0;'; + put 'data repos;'; + put 'set repos;'; + put 'where repositorytype in(''CUSTOM'',''FOUNDATION'')'; + put '& upcase(name) ne "%upcase(&repo)";'; + put 'keep id name ;'; + put 'call symputx(cats(''repo'',_n_),name,''l'');'; + put 'call symputx(''repocnt'',_n_,''l'');'; + put 'run;'; + put '/* find out which of these repositories has the libref we are searching for */'; + put '%local lib_uri;'; + put '%let lib_uri=NOTFOUND;'; + put 'data _null_; /* check default repo first */'; + put 'length lib_uri $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; + put 'run;'; + put '%if &lib_uri=NOTFOUND %then %do;'; + put '%do x=1 %to &repocnt;'; + put 'options metarepository=&&repo&x;'; + put 'data _null_;'; + put 'length lib_uri $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; + put 'run;'; + put '%if &lib_uri ne NOTFOUND %then %let x=%eval(&repocnt+1);'; + put '%end;'; + put '%end;'; + put '%if &type=READ %then %do;'; + put '%mm_assignlib(&libref)'; + put '%end;'; + put '%else %if &type=WRITE %then %do;'; + put '%mm_assigndirectlib(&libref,open_passthrough=&passthru)'; + put '%end;'; + put 'options metarepository=&repo;'; + put '%mend dc_assignlib;'; + put '%macro mf_getuniquename(prefix=MC);'; + put '&prefix.%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32-%length(&prefix))'; + put '%mend mf_getuniquename;'; + put '%macro mp_validatecol(incol,rule,outcol);'; + put '/* tempcol is given a unique name with every invocation */'; + put '%local tempcol;'; + put '%let tempcol=%mf_getuniquename();'; + put '%if &rule=ISINT %then %do;'; + put '&outcol=0;'; + put 'if not missing(&incol) then do;'; + put '&tempcol=input(&incol,?? best32.);'; + put 'if not missing(&tempcol) then if mod(&tempcol,1)=0 then &outcol=1;'; + put 'end;'; + put 'drop &tempcol;'; + put '%end;'; + put '%else %if &rule=ISNUM %then %do;'; + put '/*'; + put 'credit SØREN LASSEN'; + put 'https://sasmacro.blogspot.com/2009/06/welcome-isnum-macro.html'; + put '*/'; + put '&tempcol=input(&incol,?? best32.);'; + put 'if missing(&tempcol) then &outcol=0;'; + put 'else &outcol=1;'; + put 'drop &tempcol;'; + put '%end;'; + put '%else %if &rule=LIBDS %then %do;'; + put '/* match libref.dataset */'; + put 'if _n_=1 then do;'; + put 'retain &tempcol;'; + put '&tempcol=prxparse(''/^[_a-z]\w{0,7}\.[_a-z]\w{0,31}$/i'');'; + put 'if missing(&tempcol) then do;'; + put 'putlog "%str(ERR)OR: Invalid expression for LIBDS";'; + put 'stop;'; + put 'end;'; + put 'drop &tempcol;'; + put 'end;'; + put 'if prxmatch(&tempcol, trim(&incol)) then &outcol=1;'; + put 'else &outcol=0;'; + put '%end;'; + put '%else %if &rule=FORMAT %then %do;'; + put '/* match valid format - regex could probably be improved */'; + put 'if _n_=1 then do;'; + put 'retain &tempcol;'; + put '&tempcol=prxparse(''/^[_a-z\$]\w{0,31}\.[0-9]*$/i'');'; + put 'if missing(&tempcol) then do;'; + put 'putlog "%str(ERR)OR: Invalid expression for FORMAT";'; + put 'stop;'; + put 'end;'; + put 'drop &tempcol;'; + put 'end;'; + put 'if prxmatch(&tempcol, trim(&incol)) then &outcol=1;'; + put 'else &outcol=0;'; + put '%end;'; + put '%mend mp_validatecol;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file'; + put '@brief Generic validator for table columns'; + put '@details The input table is simply one row from the target table in table'; + put 'called "work.source_row".'; + put 'Available macro variables:'; + put '@li MPELIB - The DC control library'; + put '@li LIBDS - The library.dataset being filtered'; + put '@li VARIABLE_NM - The column being filtered'; + put '

Service Inputs

'; + put '
work.sourcerow
'; + put 'Has source table structure.'; + put '

Service Outputs

'; + put 'The values provided below are generic samples - we encourage you to replace'; + put 'these with realistic values in your own deployments.'; + put '
DYNAMIC_VALUES
'; + put 'The RAW_VALUE column may be charactor or numeric. If DISPLAY_INDEX is not'; + put 'provided, it is added automatically.'; + put '|DISPLAY_INDEX:best.|DISPLAY_VALUE:$|RAW_VALUE|'; + put '|---|---|---|'; + put '|1|$77.43|77.43|'; + put '|2|$88.43|88.43|'; + put '
DYNAMIC_EXTENDED_VALUES
'; + put 'This table is optional. If provided, it will map the DISPLAY_INDEX from the'; + put 'DYNAMIC_VALUES table to additional column/value pairs, that will be used to'; + put 'populate dropdowns for _other_ cells in the _same_ row.'; + put 'Should be used sparingly! The use of large tables here can slow down the'; + put 'browser.'; + put '|DISPLAY_INDEX:best.|EXTRA_COL_NAME:$32.|DISPLAY_VALUE:$|DISPLAY_TYPE:$1.|RAW_VALUE_NUM|RAW_VALUE_CHAR:$5000|'; + put '|---|---|---|'; + put '|1|DISCOUNT_RT|"50%"|N|0.5||'; + put '|1|DISCOUNT_RT|"40%"|N|0.4||'; + put '|1|DISCOUNT_RT|"30%"|N|0.3||'; + put '|1|CURRENCY_SYMBOL|"GBP"|C||"GBP"|'; + put '|1|CURRENCY_SYMBOL|"RSD"|C||"RSD"|'; + put '|2|DISCOUNT_RT|"50%"|N|0.5||'; + put '|2|DISCOUNT_RT|"40%"|N|0.4||'; + put '|2|CURRENCY_SYMBOL|"EUR"|C||"EUR"|'; + put '|2|CURRENCY_SYMBOL|"HKD"|C||"HKD"|'; + put '

SAS Macros

'; + put '@li dc_assignlib.sas'; + put '@li mf_getuniquename.sas'; + put '@li mp_abort.sas'; + put '@li mp_validatecol.sas'; + put '**/'; + put '/* send back the raw and formatted values */'; + put '%let tgtlibds=0;'; + put '%let varlibds=%mf_getuniquename();'; + put '%let vartgtlibds=%mf_getuniquename();'; + put '%let var_is_libds=%mf_getuniquename();'; + put 'data _null_;'; + put 'length xl_libref base_lib select_lib rls_libref cls_libref libref $8'; + put 'xl_table base_ds select_ds rls_table cls_table dsn $32;'; + put 'if _n_=1 then call missing(of _all_);'; + put 'set work.source_row;'; + put '&varlibds=symget(''libds'');'; + put 'if &varlibds="&mpelib..MPE_EXCEL_CONFIG"'; + put 'then &vartgtlibds=cats(xl_libref,''.'',xl_table);'; + put 'else if &varlibds="&mpelib..MPE_VALIDATIONS"'; + put 'then &vartgtlibds=cats(BASE_LIB,''.'',BASE_DS);'; + put 'else if &varlibds="&mpelib..MPE_SELECTBOX"'; + put 'then &vartgtlibds=cats(select_lib,''.'',select_ds);'; + put 'else if &varlibds="&mpelib..MPE_ROW_LEVEL_SECURITY"'; + put 'then &vartgtlibds=cats(RLS_LIBREF,''.'',RLS_TABLE);'; + put 'else if &varlibds="&mpelib..MPE_COLUMN_LEVEL_SECURITY"'; + put 'then &vartgtlibds=cats(CLS_LIBREF,''.'',CLS_TABLE);'; + put 'else if &varlibds="&mpelib..MPE_TABLES"'; + put 'then &vartgtlibds=cats(LIBREF,''.'',DSN);'; + put '/* validate libds */'; + put '%mp_validatecol(&vartgtlibds,LIBDS,&var_is_libds)'; + put 'if &var_is_libds=1 then call symputx(''tgtlibds'',&vartgtlibds);'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= ("&tgtlibds" ="0" )'; + put ',mac=&_program..sas'; + put ',msg=%str(Unable to extract libds vars from &libds inputs for &variable_nm)'; + put ')'; + put '%dc_assignlib(READ,%scan(&tgtlibds,1,.))'; + put 'proc contents noprint data=&tgtlibds'; + put 'out=work.DYNAMIC_VALUES (keep=name rename=(name=display_value) );'; + put 'run;'; + put 'data work.DYNAMIC_VALUES;'; + put 'set work.DYNAMIC_VALUES;'; + put 'raw_value=upcase(display_value);'; + put 'format raw_value;'; + put 'run;'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=libraries_all; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Files

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as FMTCAT,'; + put 'FMTNAME'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'LENGTH num'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.length as MAXW'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put ')))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] workobs= (0) When set to a positive integer, will create a new'; + put 'output object (WORK) which contains this number of observations from all'; + put 'tables in the WORK library.'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX,workobs=0'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&workobs) > 0 %then %do;'; + put '/* if debug mode, send back first XX records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10'; + put ',maxobs=&workobs'; + put ')'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '%macro mm_getlibs('; + put 'outds=work.mm_getLibs'; + put ')/*/STORE SOURCE*/;'; + put '/*'; + put 'flags:'; + put 'OMI_SUCCINCT (2048) Do not return attributes with null values.'; + put 'OMI_GET_METADATA (256) Executes a GetMetadata call for each object that'; + put 'is returned by the GetMetadataObjects method.'; + put 'OMI_ALL_SIMPLE (8) Gets all of the attributes of the requested object.'; + put '*/'; + put 'data _null_;'; + put 'flags=2048+256+8;'; + put 'call symputx(''flags'',flags,''l'');'; + put 'run;'; + put '* use a temporary fileref to hold the response;'; + put 'filename response temp;'; + put '/* get list of libraries */'; + put 'proc metadata in='; + put ''''; + put '$METAREPOSITORY'; + put 'SASLibrary'; + put ''; + put 'SAS'; + put '&flags'; + put ''; + put ''''; + put 'out=response;'; + put 'run;'; + put '/* write the response to the log for debugging */'; + put 'data _null_;'; + put 'infile response lrecl=32767;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '/* create an XML map to read the response */'; + put 'filename sxlemap temp;'; + put 'data _null_;'; + put 'file sxlemap;'; + put 'put '''';'; + put 'put '''';'; + put 'put ''//Objects/SASLibrary'';'; + put 'put ''>17'';'; + put 'put ''//Objects/SASLibrary/@Id'';'; + put 'put ''256>'';'; + put 'put ''//Objects/SASLibrary/@Name'';'; + put 'put ''8'';'; + put 'put ''//Objects/SASLibrary/@Libref'';'; + put 'put ''>12'';'; + put 'put ''//Objects/SASLibrary/@Engine'';'; + put 'put ''
'';'; + put 'run;'; + put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; + put '/* sort the response by library name */'; + put 'proc sort data=_XML_.saslibrary out=&outds;'; + put 'by libraryname;'; + put 'run;'; + put '/* clear references */'; + put 'filename sxlemap clear;'; + put 'filename response clear;'; + put 'libname _XML_ clear;'; + put '%mend mm_getlibs;'; + put '%macro mm_getrepos('; + put 'outds=work.mm_getrepos'; + put ')/*/STORE SOURCE*/;'; + put '* use a temporary fileref to hold the response;'; + put 'filename response temp;'; + put '/* get list of libraries */'; + put 'proc metadata in='; + put '"1"'; + put 'out=response;'; + put 'run;'; + put '/* write the response to the log for debugging */'; + put '/*'; + put 'data _null_;'; + put 'infile response lrecl=1048576;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '*/'; + put '/* create an XML map to read the response */'; + put 'filename sxlemap temp;'; + put 'data _null_;'; + put 'file sxlemap;'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository";'; + put 'put "";'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Id";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Name";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Desc";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@DefaultNS";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryType";'; + put 'put "characterstring20";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryFormat";'; + put 'put "characterstring10";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@Access";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@CurrentAccess";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@PauseState";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Path";'; + put 'put "";'; + put 'put "characterstring256";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Engine";'; + put 'put "";'; + put 'put "characterstring8";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Options";'; + put 'put "";'; + put 'put "characterstring32";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataCreated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataUpdated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put ''
'';'; + put 'run;'; + put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; + put 'proc sort data= _XML_.SASRepos out=&outds;'; + put 'by name;'; + put 'run;'; + put '/* clear references */'; + put 'filename sxlemap clear;'; + put 'filename response clear;'; + put 'libname _XML_ clear;'; + put '%mend mm_getrepos;'; + put '%macro dc_getlibs(outds=mm_getlibs);'; + put '/* take current repository */'; + put '%local repo repocnt x;'; + put '%let repo=%sysfunc(getoption(metarepository));'; + put '/* get list of repositories and filter */'; + put '%mm_getrepos(outds=repos)'; + put '%let repocnt=0;'; + put 'data repos;'; + put 'set repos;'; + put 'where repositorytype in(''CUSTOM'',''FOUNDATION'')'; + put '& upcase(name) ne "%upcase(&repo)";'; + put 'keep id name ;'; + put 'call symputx(''repo''!!cats(_n_),name,''l'');'; + put 'call symputx(''repocnt'',_n_,''l'');'; + put 'run;'; + put '%put _local_;'; + put '%mm_getlibs(outds=&outds)'; + put '%do x=1 %to &repocnt;'; + put 'options metarepository=&&repo&x;'; + put '%mm_getlibs(outds=&outds.a)'; + put 'proc append base=&outds data=&outds.a;'; + put 'run;'; + put '%end;'; + put 'options metarepository=&repo;'; + put '%mend dc_getlibs;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file'; + put '@brief Generic validator for libraries'; + put '@details The input table is simply one row from the target table in table'; + put 'called "work.source_row".'; + put 'Available macro variables:'; + put '@li MPELIB - The DC control library'; + put '@li LIBDS - The library.dataset being filtered'; + put '@li VARIABLE_NM - The column being filtered'; + put '

Service Outputs

'; + put 'The values provided below are generic samples - we encourage you to replace'; + put 'these with realistic values in your own deployments.'; + put '
DYNAMIC_VALUES
'; + put 'The RAW_VALUE column may be charactor or numeric. If DISPLAY_INDEX is not'; + put 'provided, it is added automatically.'; + put '|DISPLAY_INDEX:best.|DISPLAY_VALUE:$|RAW_VALUE|'; + put '|---|---|---|'; + put '|1|$77.43|77.43|'; + put '|2|$88.43|88.43|'; + put '
DYNAMIC_EXTENDED_VALUES
'; + put 'This table is optional. If provided, it will map the DISPLAY_INDEX from the'; + put 'DYNAMIC_VALUES table to additional column/value pairs, that will be used to'; + put 'populate dropdowns for _other_ cells in the _same_ row.'; + put 'Should be used sparingly! The use of large tables here can slow down the'; + put 'browser.'; + put '|DISPLAY_INDEX:best.|EXTRA_COL_NAME:$32.|DISPLAY_VALUE:$|DISPLAY_TYPE:$1.|RAW_VALUE_NUM|RAW_VALUE_CHAR:$5000|'; + put '|---|---|---|'; + put '|1|DISCOUNT_RT|"50%"|N|0.5||'; + put '|1|DISCOUNT_RT|"40%"|N|0.4||'; + put '|1|DISCOUNT_RT|"30%"|N|0.3||'; + put '|1|CURRENCY_SYMBOL|"GBP"|C||"GBP"|'; + put '|1|CURRENCY_SYMBOL|"RSD"|C||"RSD"|'; + put '|2|DISCOUNT_RT|"50%"|N|0.5||'; + put '|2|DISCOUNT_RT|"40%"|N|0.4||'; + put '|2|CURRENCY_SYMBOL|"EUR"|C||"EUR"|'; + put '|2|CURRENCY_SYMBOL|"HKD"|C||"HKD"|'; + put '

SAS Macros

'; + put '@li dc_getlibs.sas'; + put '**/'; + put '/**'; + put '* get full list of libraries'; + put '*/'; + put '%dc_getlibs(outds=work.mm_getLibs)'; + put 'proc sql;'; + put 'create table work.DYNAMIC_VALUES as'; + put 'select distinct libraryname as display_value,'; + put 'upcase(libraryref) as raw_value'; + put 'from work.mm_getLibs'; + put 'order by 1;'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=libraries_editable; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Files

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as FMTCAT,'; + put 'FMTNAME'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'LENGTH num'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.length as MAXW'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put ')))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] workobs= (0) When set to a positive integer, will create a new'; + put 'output object (WORK) which contains this number of observations from all'; + put 'tables in the WORK library.'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX,workobs=0'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&workobs) > 0 %then %do;'; + put '/* if debug mode, send back first XX records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10'; + put ',maxobs=&workobs'; + put ')'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file'; + put '@brief Generic validator for editable libraries'; + put '@details The input table is simply one row from the target table in table'; + put 'called "work.source_row".'; + put 'Available macro variables:'; + put '@li MPELIB - The DC control library'; + put '@li LIBDS - The library.dataset being filtered'; + put '@li VARIABLE_NM - The column being filtered'; + put '

Service Outputs

'; + put 'The values provided below are generic samples - we encourage you to replace'; + put 'these with realistic values in your own deployments.'; + put '
DYNAMIC_VALUES
'; + put 'The RAW_VALUE column may be charactor or numeric. If DISPLAY_INDEX is not'; + put 'provided, it is added automatically.'; + put '|DISPLAY_INDEX:best.|DISPLAY_VALUE:$|RAW_VALUE|'; + put '|---|---|---|'; + put '|1|$77.43|77.43|'; + put '|2|$88.43|88.43|'; + put '
DYNAMIC_EXTENDED_VALUES
'; + put 'This table is optional. If provided, it will map the DISPLAY_INDEX from the'; + put 'DYNAMIC_VALUES table to additional column/value pairs, that will be used to'; + put 'populate dropdowns for _other_ cells in the _same_ row.'; + put 'Should be used sparingly! The use of large tables here can slow down the'; + put 'browser.'; + put '|DISPLAY_INDEX:best.|EXTRA_COL_NAME:$32.|DISPLAY_VALUE:$|DISPLAY_TYPE:$1.|RAW_VALUE_NUM|RAW_VALUE_CHAR:$5000|'; + put '|---|---|---|'; + put '|1|DISCOUNT_RT|"50%"|N|0.5||'; + put '|1|DISCOUNT_RT|"40%"|N|0.4||'; + put '|1|DISCOUNT_RT|"30%"|N|0.3||'; + put '|1|CURRENCY_SYMBOL|"GBP"|C||"GBP"|'; + put '|1|CURRENCY_SYMBOL|"RSD"|C||"RSD"|'; + put '|2|DISCOUNT_RT|"50%"|N|0.5||'; + put '|2|DISCOUNT_RT|"40%"|N|0.4||'; + put '|2|CURRENCY_SYMBOL|"EUR"|C||"EUR"|'; + put '|2|CURRENCY_SYMBOL|"HKD"|C||"HKD"|'; + put '**/'; + put '/* send back the raw and formatted values */'; + put 'proc sql;'; + put 'create table work.DYNAMIC_VALUES as'; + put 'select distinct libref as display_value,'; + put 'upcase(libref) as raw_value'; + put 'from &mpelib..mpe_tables'; + put 'where &dc_dttmtfmt. < tx_to'; + put 'order by 1;'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=mpe_alerts.alert_lib; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Files

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as FMTCAT,'; + put 'FMTNAME'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'LENGTH num'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.length as MAXW'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put ')))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] workobs= (0) When set to a positive integer, will create a new'; + put 'output object (WORK) which contains this number of observations from all'; + put 'tables in the WORK library.'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX,workobs=0'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&workobs) > 0 %then %do;'; + put '/* if debug mode, send back first XX records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10'; + put ',maxobs=&workobs'; + put ')'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '%macro mm_getlibs('; + put 'outds=work.mm_getLibs'; + put ')/*/STORE SOURCE*/;'; + put '/*'; + put 'flags:'; + put 'OMI_SUCCINCT (2048) Do not return attributes with null values.'; + put 'OMI_GET_METADATA (256) Executes a GetMetadata call for each object that'; + put 'is returned by the GetMetadataObjects method.'; + put 'OMI_ALL_SIMPLE (8) Gets all of the attributes of the requested object.'; + put '*/'; + put 'data _null_;'; + put 'flags=2048+256+8;'; + put 'call symputx(''flags'',flags,''l'');'; + put 'run;'; + put '* use a temporary fileref to hold the response;'; + put 'filename response temp;'; + put '/* get list of libraries */'; + put 'proc metadata in='; + put ''''; + put '$METAREPOSITORY'; + put 'SASLibrary'; + put ''; + put 'SAS'; + put '&flags'; + put ''; + put ''''; + put 'out=response;'; + put 'run;'; + put '/* write the response to the log for debugging */'; + put 'data _null_;'; + put 'infile response lrecl=32767;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '/* create an XML map to read the response */'; + put 'filename sxlemap temp;'; + put 'data _null_;'; + put 'file sxlemap;'; + put 'put '''';'; + put 'put '''';'; + put 'put ''//Objects/SASLibrary'';'; + put 'put ''>17'';'; + put 'put ''//Objects/SASLibrary/@Id'';'; + put 'put ''256>'';'; + put 'put ''//Objects/SASLibrary/@Name'';'; + put 'put ''8'';'; + put 'put ''//Objects/SASLibrary/@Libref'';'; + put 'put ''>12'';'; + put 'put ''//Objects/SASLibrary/@Engine'';'; + put 'put ''
'';'; + put 'run;'; + put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; + put '/* sort the response by library name */'; + put 'proc sort data=_XML_.saslibrary out=&outds;'; + put 'by libraryname;'; + put 'run;'; + put '/* clear references */'; + put 'filename sxlemap clear;'; + put 'filename response clear;'; + put 'libname _XML_ clear;'; + put '%mend mm_getlibs;'; + put '%macro mm_getrepos('; + put 'outds=work.mm_getrepos'; + put ')/*/STORE SOURCE*/;'; + put '* use a temporary fileref to hold the response;'; + put 'filename response temp;'; + put '/* get list of libraries */'; + put 'proc metadata in='; + put '"1"'; + put 'out=response;'; + put 'run;'; + put '/* write the response to the log for debugging */'; + put '/*'; + put 'data _null_;'; + put 'infile response lrecl=1048576;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '*/'; + put '/* create an XML map to read the response */'; + put 'filename sxlemap temp;'; + put 'data _null_;'; + put 'file sxlemap;'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository";'; + put 'put "";'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Id";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Name";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Desc";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@DefaultNS";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryType";'; + put 'put "characterstring20";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryFormat";'; + put 'put "characterstring10";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@Access";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@CurrentAccess";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@PauseState";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Path";'; + put 'put "";'; + put 'put "characterstring256";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Engine";'; + put 'put "";'; + put 'put "characterstring8";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Options";'; + put 'put "";'; + put 'put "characterstring32";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataCreated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataUpdated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put ''
'';'; + put 'run;'; + put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; + put 'proc sort data= _XML_.SASRepos out=&outds;'; + put 'by name;'; + put 'run;'; + put '/* clear references */'; + put 'filename sxlemap clear;'; + put 'filename response clear;'; + put 'libname _XML_ clear;'; + put '%mend mm_getrepos;'; + put '%macro dc_getlibs(outds=mm_getlibs);'; + put '/* take current repository */'; + put '%local repo repocnt x;'; + put '%let repo=%sysfunc(getoption(metarepository));'; + put '/* get list of repositories and filter */'; + put '%mm_getrepos(outds=repos)'; + put '%let repocnt=0;'; + put 'data repos;'; + put 'set repos;'; + put 'where repositorytype in(''CUSTOM'',''FOUNDATION'')'; + put '& upcase(name) ne "%upcase(&repo)";'; + put 'keep id name ;'; + put 'call symputx(''repo''!!cats(_n_),name,''l'');'; + put 'call symputx(''repocnt'',_n_,''l'');'; + put 'run;'; + put '%put _local_;'; + put '%mm_getlibs(outds=&outds)'; + put '%do x=1 %to &repocnt;'; + put 'options metarepository=&&repo&x;'; + put '%mm_getlibs(outds=&outds.a)'; + put 'proc append base=&outds data=&outds.a;'; + put 'run;'; + put '%end;'; + put 'options metarepository=&repo;'; + put '%mend dc_getlibs;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file'; + put '@brief fetch extended values for alert_lib'; + put '@details Fetches libraries from mpe_tables, creates extended values for'; + put 'alert_ds, and marks "*ALL*" as the forced (default) value.'; + put 'Available macro variables:'; + put '@li DC_LIBREF - The DC control library'; + put '@li LIBDS - The library.dataset being filtered'; + put '@li VARIABLE_NM - The column being filtered'; + put '

Service Outputs

'; + put 'Output should be a single table called "work.dynamic_values" in the format'; + put 'below. display_value should always be character, raw_value is unformatted'; + put 'character/numeric.'; + put '
DYNAMIC_VALUES
'; + put 'The RAW_VALUE column may be charactor or numeric. If DISPLAY_INDEX is not'; + put 'provided, it is added automatically.'; + put '|DISPLAY_INDEX:best.|DISPLAY_VALUE:$|RAW_VALUE|'; + put '|---|---|---|'; + put '|1|$77.43|77.43|'; + put '|2|$88.43|88.43|'; + put '
DYNAMIC_EXTENDED_VALUES
'; + put 'This table is optional. If provided, it will map the DISPLAY_INDEX from the'; + put 'DYNAMIC_VALUES table to additional column/value pairs, that will be used to'; + put 'populate dropdowns for _other_ cells in the _same_ row.'; + put 'Should be used sparingly! The use of large tables here can slow down the'; + put 'browser.'; + put 'The FORCED_VALUE column can be used to force an extended value to be selected'; + put 'by default when a particular value is chosen.'; + put '|DISPLAY_INDEX:best.|EXTRA_COL_NAME:$32.|DISPLAY_VALUE:$|DISPLAY_TYPE:$1.|RAW_VALUE_NUM|RAW_VALUE_CHAR:$5000|FORCED_VALUE|'; + put '|---|---|---|---|'; + put '|1|DISCOUNT_RT|"50%"|N|0.5||.|'; + put '|1|DISCOUNT_RT|"40%"|N|0.4||0|'; + put '|1|DISCOUNT_RT|"30%"|N|0.3||1|'; + put '|1|CURRENCY_SYMBOL|"GBP"|C||"GBP"|.|'; + put '|1|CURRENCY_SYMBOL|"RSD"|C||"RSD"|.|'; + put '|2|DISCOUNT_RT|"50%"|N|0.5||.|'; + put '|2|DISCOUNT_RT|"40%"|N|0.4||1|'; + put '|2|CURRENCY_SYMBOL|"EUR"|C||"EUR"|.|'; + put '|2|CURRENCY_SYMBOL|"HKD"|C||"HKD"|1|'; + put '

SAS Macros

'; + put '@li dc_getlibs.sas'; + put '**/'; + put '%mp_abort(iftrue= ("%upcase(&libds)" ne "&DC_LIBREF..MPE_ALERTS" )'; + put ',mac=&_program'; + put ',msg=%str('; + put 'Invalid validation, expected MPE_ALERTS.ALERT_LIB, got %superq(libds)'; + put ')'; + put ')'; + put 'proc sql;'; + put 'create table work.source as'; + put 'select libref,dsn'; + put 'from &DC_LIBREF..MPE_TABLES'; + put 'where tx_to > &dc_dttmtfmt.'; + put 'order by 1,2;'; + put 'data work.DYNAMIC_VALUES (keep=display_index raw_value display_value);'; + put 'set work.source end=last;'; + put 'by libref;'; + put 'if last.libref then do;'; + put 'display_index+1;'; + put 'raw_value=libref;'; + put 'display_value=libref;'; + put 'output;'; + put 'end;'; + put 'if last then do;'; + put 'display_index+1;'; + put 'raw_value=''*ALL*'';'; + put 'display_value=''*ALL*'';'; + put 'output;'; + put 'end;'; + put 'run;'; + put 'data work.dynamic_extended_values(keep=display_index extra_col_name display_type'; + put 'display_value RAW_VALUE_CHAR raw_value_num forced_value);'; + put 'set work.source end=last;'; + put 'by libref dsn;'; + put 'retain extra_col_name ''ALERT_DS'';'; + put 'retain display_type ''C'';'; + put 'retain raw_value_num .;'; + put 'raw_value_char=dsn;'; + put 'display_value=dsn;'; + put 'forced_value=0;'; + put 'if first.libref then display_index+1;'; + put 'if last.libref then do;'; + put 'display_value=''*ALL*'';'; + put 'raw_value_char=''*ALL*'';'; + put 'forced_value=1;'; + put 'output;'; + put 'end;'; + put 'else output;'; + put 'run;'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=mpe_tables.dsn; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Files

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as FMTCAT,'; + put 'FMTNAME'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'LENGTH num'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.length as MAXW'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put ')))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] workobs= (0) When set to a positive integer, will create a new'; + put 'output object (WORK) which contains this number of observations from all'; + put 'tables in the WORK library.'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX,workobs=0'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&workobs) > 0 %then %do;'; + put '/* if debug mode, send back first XX records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10'; + put ',maxobs=&workobs'; + put ')'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '%macro mm_getlibs('; + put 'outds=work.mm_getLibs'; + put ')/*/STORE SOURCE*/;'; + put '/*'; + put 'flags:'; + put 'OMI_SUCCINCT (2048) Do not return attributes with null values.'; + put 'OMI_GET_METADATA (256) Executes a GetMetadata call for each object that'; + put 'is returned by the GetMetadataObjects method.'; + put 'OMI_ALL_SIMPLE (8) Gets all of the attributes of the requested object.'; + put '*/'; + put 'data _null_;'; + put 'flags=2048+256+8;'; + put 'call symputx(''flags'',flags,''l'');'; + put 'run;'; + put '* use a temporary fileref to hold the response;'; + put 'filename response temp;'; + put '/* get list of libraries */'; + put 'proc metadata in='; + put ''''; + put '$METAREPOSITORY'; + put 'SASLibrary'; + put ''; + put 'SAS'; + put '&flags'; + put ''; + put ''''; + put 'out=response;'; + put 'run;'; + put '/* write the response to the log for debugging */'; + put 'data _null_;'; + put 'infile response lrecl=32767;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '/* create an XML map to read the response */'; + put 'filename sxlemap temp;'; + put 'data _null_;'; + put 'file sxlemap;'; + put 'put '''';'; + put 'put '''';'; + put 'put ''//Objects/SASLibrary'';'; + put 'put ''>17'';'; + put 'put ''//Objects/SASLibrary/@Id'';'; + put 'put ''256>'';'; + put 'put ''//Objects/SASLibrary/@Name'';'; + put 'put ''8'';'; + put 'put ''//Objects/SASLibrary/@Libref'';'; + put 'put ''>12'';'; + put 'put ''//Objects/SASLibrary/@Engine'';'; + put 'put ''
'';'; + put 'run;'; + put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; + put '/* sort the response by library name */'; + put 'proc sort data=_XML_.saslibrary out=&outds;'; + put 'by libraryname;'; + put 'run;'; + put '/* clear references */'; + put 'filename sxlemap clear;'; + put 'filename response clear;'; + put 'libname _XML_ clear;'; + put '%mend mm_getlibs;'; + put '%macro mm_getrepos('; + put 'outds=work.mm_getrepos'; + put ')/*/STORE SOURCE*/;'; + put '* use a temporary fileref to hold the response;'; + put 'filename response temp;'; + put '/* get list of libraries */'; + put 'proc metadata in='; + put '"1"'; + put 'out=response;'; + put 'run;'; + put '/* write the response to the log for debugging */'; + put '/*'; + put 'data _null_;'; + put 'infile response lrecl=1048576;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '*/'; + put '/* create an XML map to read the response */'; + put 'filename sxlemap temp;'; + put 'data _null_;'; + put 'file sxlemap;'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository";'; + put 'put "";'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Id";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Name";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Desc";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@DefaultNS";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryType";'; + put 'put "characterstring20";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryFormat";'; + put 'put "characterstring10";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@Access";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@CurrentAccess";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@PauseState";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Path";'; + put 'put "";'; + put 'put "characterstring256";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Engine";'; + put 'put "";'; + put 'put "characterstring8";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Options";'; + put 'put "";'; + put 'put "characterstring32";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataCreated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataUpdated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put ''
'';'; + put 'run;'; + put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; + put 'proc sort data= _XML_.SASRepos out=&outds;'; + put 'by name;'; + put 'run;'; + put '/* clear references */'; + put 'filename sxlemap clear;'; + put 'filename response clear;'; + put 'libname _XML_ clear;'; + put '%mend mm_getrepos;'; + put '%macro dc_getlibs(outds=mm_getlibs);'; + put '/* take current repository */'; + put '%local repo repocnt x;'; + put '%let repo=%sysfunc(getoption(metarepository));'; + put '/* get list of repositories and filter */'; + put '%mm_getrepos(outds=repos)'; + put '%let repocnt=0;'; + put 'data repos;'; + put 'set repos;'; + put 'where repositorytype in(''CUSTOM'',''FOUNDATION'')'; + put '& upcase(name) ne "%upcase(&repo)";'; + put 'keep id name ;'; + put 'call symputx(''repo''!!cats(_n_),name,''l'');'; + put 'call symputx(''repocnt'',_n_,''l'');'; + put 'run;'; + put '%put _local_;'; + put '%mm_getlibs(outds=&outds)'; + put '%do x=1 %to &repocnt;'; + put 'options metarepository=&&repo&x;'; + put '%mm_getlibs(outds=&outds.a)'; + put 'proc append base=&outds data=&outds.a;'; + put 'run;'; + put '%end;'; + put 'options metarepository=&repo;'; + put '%mend dc_getlibs;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file'; + put '@brief fetch extended values for DSN'; + put '@details Fetches datasets in a library, and ALSO fetches a list of numeric'; + put 'vars for each dataset for use in adjacent columns (such as VAR_PROCESSED,'; + put 'TX_TO etc).'; + put 'Available macro variables:'; + put '@li MPELIB - The DC control library'; + put '@li LIBDS - The library.dataset being filtered'; + put '@li VARIABLE_NM - The column being filtered'; + put '

Service Outputs

'; + put 'Output should be a single table called "work.dynamic_values" in the format'; + put 'below. display_value should always be character, raw_value is unformatted'; + put 'character/numeric.'; + put '
DYNAMIC_VALUES
'; + put 'The RAW_VALUE column may be charactor or numeric. If DISPLAY_INDEX is not'; + put 'provided, it is added automatically.'; + put '|DISPLAY_INDEX:best.|DISPLAY_VALUE:$|RAW_VALUE|'; + put '|---|---|---|'; + put '|1|$77.43|77.43|'; + put '|2|$88.43|88.43|'; + put '
DYNAMIC_EXTENDED_VALUES
'; + put 'This table is optional. If provided, it will map the DISPLAY_INDEX from the'; + put 'DYNAMIC_VALUES table to additional column/value pairs, that will be used to'; + put 'populate dropdowns for _other_ cells in the _same_ row.'; + put 'Should be used sparingly! The use of large tables here can slow down the'; + put 'browser.'; + put 'The FORCED_VALUE column can be used to force an extended value to be selected'; + put 'by default when a particular value is chosen.'; + put '|DISPLAY_INDEX:best.|EXTRA_COL_NAME:$32.|DISPLAY_VALUE:$|DISPLAY_TYPE:$1.|RAW_VALUE_NUM|RAW_VALUE_CHAR:$5000|FORCED_VALUE|'; + put '|---|---|---|---|'; + put '|1|DISCOUNT_RT|"50%"|N|0.5||.|'; + put '|1|DISCOUNT_RT|"40%"|N|0.4||0|'; + put '|1|DISCOUNT_RT|"30%"|N|0.3||1|'; + put '|1|CURRENCY_SYMBOL|"GBP"|C||"GBP"|.|'; + put '|1|CURRENCY_SYMBOL|"RSD"|C||"RSD"|.|'; + put '|2|DISCOUNT_RT|"50%"|N|0.5||.|'; + put '|2|DISCOUNT_RT|"40%"|N|0.4||1|'; + put '|2|CURRENCY_SYMBOL|"EUR"|C||"EUR"|.|'; + put '|2|CURRENCY_SYMBOL|"HKD"|C||"HKD"|1|'; + put '

SAS Macros

'; + put '@li dc_getlibs.sas'; + put '**/'; + put '/* send back the raw and formatted values */'; + put '%let tgtlib=0;'; + put '%let varlibds=%mf_getuniquename();'; + put '%let vartgtlib=%mf_getuniquename();'; + put '%let var_is_lib=%mf_getuniquename();'; + put 'data _null_;'; + put 'length &varlibds $41 &vartgtlib $8;'; + put 'set work.source_row;'; + put '&varlibds=upcase(symget(''libds''));'; + put 'if &varlibds="&mpelib..MPE_TABLES" then &vartgtlib=LIBREF;'; + put 'else putlog "something unexpected happened";'; + put '/* validate name */'; + put 'if nvalid(&vartgtlib,''v7'') then call symputx(''tgtlib'',&vartgtlib);'; + put 'call symputx(''vartgtlib'',&vartgtlib);'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= ("&tgtlib" ="0" )'; + put ',mac=&_program..sas'; + put ',msg=%str(Invalid library - %superq(vartgtlib))'; + put ',errds=work.dc_error_response'; + put ')'; + put '%dc_assignlib(READ,&tgtlib)'; + put 'proc sql;'; + put 'create table work.source as'; + put 'select upcase(memname) as memname'; + put ',upcase(name) as name'; + put ',type'; + put 'from dictionary.columns'; + put 'where libname="&TGTLIB"'; + put 'and memtype=''DATA'';'; + put 'create table work.members as'; + put 'select distinct memname as display_value'; + put 'from work.source;'; + put 'data work.DYNAMIC_VALUES;'; + put 'set work.members;'; + put 'raw_value=display_value;'; + put 'display_index=_n_;'; + put 'run;'; + put 'proc sql;'; + put 'create table work.dynamic_extended_values as'; + put 'select a.display_index'; + put ',b.name as display_value'; + put ',"C" as display_type'; + put ',b.name as RAW_VALUE_CHAR'; + put ',. as RAW_VALUE_NUM'; + put 'from work.dynamic_values a'; + put 'left join work.source b'; + put 'on a.display_value=b.memname'; + put 'where b.type=''num'';'; + put 'data work.dynamic_extended_values;'; + put 'set work.DYNAMIC_EXTENDED_VALUES;'; + put 'extra_col_name=''VAR_PROCESSED'';output;'; + put 'extra_col_name=''VAR_TXFROM'';output;'; + put 'extra_col_name=''VAR_TXTO'';output;'; + put 'extra_col_name=''VAR_BUSFROM'';output;'; + put 'extra_col_name=''VAR_BUSTO'';output;'; + put 'run;'; + put '/* set some force flags */'; + put 'data work.dynamic_extended_values;'; + put 'set work.DYNAMIC_EXTENDED_VALUES;'; + put 'forced_value=0;'; + put 'if extra_col_name=''VAR_TXFROM'' & raw_value_char=''TX_FROM'' then forced_value=1;'; + put 'if extra_col_name=''VAR_TXTO'' & raw_value_char=''TX_TO'' then forced_value=1;'; + put 'run;'; + put 'proc sort;'; + put 'by extra_col_name display_index;'; + put 'run;'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=mpe_x_test.some_num; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Files

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as FMTCAT,'; + put 'FMTNAME'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'LENGTH num'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.length as MAXW'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put ')))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] workobs= (0) When set to a positive integer, will create a new'; + put 'output object (WORK) which contains this number of observations from all'; + put 'tables in the WORK library.'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX,workobs=0'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&workobs) > 0 %then %do;'; + put '/* if debug mode, send back first XX records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10'; + put ',maxobs=&workobs'; + put ')'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '%macro mm_getlibs('; + put 'outds=work.mm_getLibs'; + put ')/*/STORE SOURCE*/;'; + put '/*'; + put 'flags:'; + put 'OMI_SUCCINCT (2048) Do not return attributes with null values.'; + put 'OMI_GET_METADATA (256) Executes a GetMetadata call for each object that'; + put 'is returned by the GetMetadataObjects method.'; + put 'OMI_ALL_SIMPLE (8) Gets all of the attributes of the requested object.'; + put '*/'; + put 'data _null_;'; + put 'flags=2048+256+8;'; + put 'call symputx(''flags'',flags,''l'');'; + put 'run;'; + put '* use a temporary fileref to hold the response;'; + put 'filename response temp;'; + put '/* get list of libraries */'; + put 'proc metadata in='; + put ''''; + put '$METAREPOSITORY'; + put 'SASLibrary'; + put ''; + put 'SAS'; + put '&flags'; + put ''; + put ''''; + put 'out=response;'; + put 'run;'; + put '/* write the response to the log for debugging */'; + put 'data _null_;'; + put 'infile response lrecl=32767;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '/* create an XML map to read the response */'; + put 'filename sxlemap temp;'; + put 'data _null_;'; + put 'file sxlemap;'; + put 'put '''';'; + put 'put '''';'; + put 'put ''//Objects/SASLibrary'';'; + put 'put ''>17'';'; + put 'put ''//Objects/SASLibrary/@Id'';'; + put 'put ''256>'';'; + put 'put ''//Objects/SASLibrary/@Name'';'; + put 'put ''8'';'; + put 'put ''//Objects/SASLibrary/@Libref'';'; + put 'put ''>12'';'; + put 'put ''//Objects/SASLibrary/@Engine'';'; + put 'put ''
'';'; + put 'run;'; + put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; + put '/* sort the response by library name */'; + put 'proc sort data=_XML_.saslibrary out=&outds;'; + put 'by libraryname;'; + put 'run;'; + put '/* clear references */'; + put 'filename sxlemap clear;'; + put 'filename response clear;'; + put 'libname _XML_ clear;'; + put '%mend mm_getlibs;'; + put '%macro mm_getrepos('; + put 'outds=work.mm_getrepos'; + put ')/*/STORE SOURCE*/;'; + put '* use a temporary fileref to hold the response;'; + put 'filename response temp;'; + put '/* get list of libraries */'; + put 'proc metadata in='; + put '"1"'; + put 'out=response;'; + put 'run;'; + put '/* write the response to the log for debugging */'; + put '/*'; + put 'data _null_;'; + put 'infile response lrecl=1048576;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '*/'; + put '/* create an XML map to read the response */'; + put 'filename sxlemap temp;'; + put 'data _null_;'; + put 'file sxlemap;'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository";'; + put 'put "";'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Id";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Name";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Desc";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@DefaultNS";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryType";'; + put 'put "characterstring20";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryFormat";'; + put 'put "characterstring10";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@Access";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@CurrentAccess";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@PauseState";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Path";'; + put 'put "";'; + put 'put "characterstring256";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Engine";'; + put 'put "";'; + put 'put "characterstring8";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Options";'; + put 'put "";'; + put 'put "characterstring32";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataCreated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataUpdated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put ''
'';'; + put 'run;'; + put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; + put 'proc sort data= _XML_.SASRepos out=&outds;'; + put 'by name;'; + put 'run;'; + put '/* clear references */'; + put 'filename sxlemap clear;'; + put 'filename response clear;'; + put 'libname _XML_ clear;'; + put '%mend mm_getrepos;'; + put '%macro dc_getlibs(outds=mm_getlibs);'; + put '/* take current repository */'; + put '%local repo repocnt x;'; + put '%let repo=%sysfunc(getoption(metarepository));'; + put '/* get list of repositories and filter */'; + put '%mm_getrepos(outds=repos)'; + put '%let repocnt=0;'; + put 'data repos;'; + put 'set repos;'; + put 'where repositorytype in(''CUSTOM'',''FOUNDATION'')'; + put '& upcase(name) ne "%upcase(&repo)";'; + put 'keep id name ;'; + put 'call symputx(''repo''!!cats(_n_),name,''l'');'; + put 'call symputx(''repocnt'',_n_,''l'');'; + put 'run;'; + put '%put _local_;'; + put '%mm_getlibs(outds=&outds)'; + put '%do x=1 %to &repocnt;'; + put 'options metarepository=&&repo&x;'; + put '%mm_getlibs(outds=&outds.a)'; + put 'proc append base=&outds data=&outds.a;'; + put 'run;'; + put '%end;'; + put 'options metarepository=&repo;'; + put '%mend dc_getlibs;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file'; + put '@brief Generic validator for libraries'; + put '@details The input table is simply one row from the target table in table'; + put 'called "work.source_row".'; + put 'Available macro variables:'; + put '@li DC_LIBREF - The DC control library'; + put '@li LIBDS - The library.dataset being filtered'; + put '@li VARIABLE_NM - The column being filtered'; + put '

Service Outputs

'; + put 'Output should be a single table called "work.dynamic_values" in the format'; + put 'below. display_value should always be character, raw_value is unformatted'; + put 'character/numeric.'; + put '|DISPLAY_VALUE:$|RAW_VALUE:??|'; + put '|---|---|'; + put '|$44.00|44|'; + put '

SAS Macros

'; + put '@li dc_getlibs.sas'; + put '**/'; + put 'proc sql;'; + put 'create table work.DYNAMIC_VALUES as'; + put 'select distinct cats(some_num) as display_value,'; + put 'some_num as raw_value'; + put 'from &libds'; + put 'order by 1;'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=sas_groups; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Files

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as FMTCAT,'; + put 'FMTNAME'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'LENGTH num'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.length as MAXW'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put ')))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] workobs= (0) When set to a positive integer, will create a new'; + put 'output object (WORK) which contains this number of observations from all'; + put 'tables in the WORK library.'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX,workobs=0'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&workobs) > 0 %then %do;'; + put '/* if debug mode, send back first XX records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10'; + put ',maxobs=&workobs'; + put ')'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '%macro mm_getGroups('; + put 'user='; + put ',outds=work.mm_getGroups'; + put ',repo=foundation'; + put ',mDebug=0'; + put ')/*/STORE SOURCE*/;'; + put '%local mD oldrepo;'; + put '%let oldrepo=%sysfunc(getoption(metarepository));'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing mm_getGroups.sas;'; + put '%&mD.put _local_;'; + put '/* on some sites, user / group info is in a different metadata repo to the'; + put 'default */'; + put '%if &oldrepo ne &repo %then %do;'; + put 'options metarepository=&repo;'; + put '%end;'; + put '%if %length(&user)=0 %then %do;'; + put 'data &outds (keep=groupuri groupname groupdesc);'; + put 'length groupuri groupname groupdesc group_or_role $256;'; + put 'call missing(of _all_);'; + put 'i+1;'; + put 'do while'; + put '(metadata_getnobj("omsobj:IdentityGroup?@Id contains ''.''",i,groupuri)>0);'; + put 'rc=metadata_getattr(groupuri, "Name", groupname);'; + put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; + put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; + put 'if Group_or_Role = ''UserGroup'' then output;'; + put 'i+1;'; + put 'end;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put 'data &outds (keep=groupuri groupname groupdesc);'; + put 'length uri groupuri groupname groupdesc group_or_role $256;'; + put 'call missing(of _all_);'; + put 'rc=metadata_getnobj("omsobj:Person?@Name=''&user''",1,uri);'; + put 'if rc<=0 then do;'; + put 'putlog "%str(WARN)ING: rc=" rc "&user not found "'; + put '", or there was an issue reading the repository.";'; + put 'stop;'; + put 'end;'; + put 'a=1;'; + put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; + put 'if grpassn in (-3,-4) then do;'; + put 'putlog "%str(WARN)ING: No metadata groups found for &user";'; + put 'output;'; + put 'end;'; + put 'else do while (grpassn > 0);'; + put 'rc=metadata_getattr(groupuri, "Name", groupname);'; + put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; + put 'a+1;'; + put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; + put 'if Group_or_Role = ''UserGroup'' then output;'; + put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; + put 'end;'; + put 'run;'; + put '%end;'; + put '%if &oldrepo ne &repo %then %do;'; + put 'options metarepository=&oldrepo;'; + put '%end;'; + put '%mend mm_getGroups;'; + put '%macro mm_getrepos('; + put 'outds=work.mm_getrepos'; + put ')/*/STORE SOURCE*/;'; + put '* use a temporary fileref to hold the response;'; + put 'filename response temp;'; + put '/* get list of libraries */'; + put 'proc metadata in='; + put '"1"'; + put 'out=response;'; + put 'run;'; + put '/* write the response to the log for debugging */'; + put '/*'; + put 'data _null_;'; + put 'infile response lrecl=1048576;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '*/'; + put '/* create an XML map to read the response */'; + put 'filename sxlemap temp;'; + put 'data _null_;'; + put 'file sxlemap;'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository";'; + put 'put "";'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Id";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Name";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Desc";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@DefaultNS";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryType";'; + put 'put "characterstring20";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryFormat";'; + put 'put "characterstring10";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@Access";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@CurrentAccess";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@PauseState";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Path";'; + put 'put "";'; + put 'put "characterstring256";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Engine";'; + put 'put "";'; + put 'put "characterstring8";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Options";'; + put 'put "";'; + put 'put "characterstring32";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataCreated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataUpdated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put ''
'';'; + put 'run;'; + put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; + put 'proc sort data= _XML_.SASRepos out=&outds;'; + put 'by name;'; + put 'run;'; + put '/* clear references */'; + put 'filename sxlemap clear;'; + put 'filename response clear;'; + put 'libname _XML_ clear;'; + put '%mend mm_getrepos;'; + put '%macro dc_getgroups(outds=mm_getlibs);'; + put '%local repo repocnt x;'; + put '%let repo=%sysfunc(getoption(metarepository));'; + put '/* get list of repositories and filter */'; + put '%mm_getrepos(outds=repos)'; + put '%let repocnt=0;'; + put 'data repos;'; + put 'set repos;'; + put 'where repositorytype in(''CUSTOM'',''FOUNDATION'')'; + put '& upcase(name) ne "%upcase(&repo)";'; + put 'keep id name ;'; + put 'call symputx(cats(''repo'',_n_),name,''l'');'; + put 'call symputx(''repocnt'',_n_,''l'');'; + put 'run;'; + put '%put _local_;'; + put '%mm_getgroups(outds=&outds,repo=foundation)'; + put '%do x=1 %to &repocnt;'; + put '%mm_getgroups(outds=&outds.a, repo=&&repo&x)'; + put 'proc append base=&outds data=&outds.a;'; + put 'run;'; + put '%end;'; + put 'proc sort data=&outds noduprec;'; + put 'by groupname;'; + put 'run;'; + put '%mend dc_getgroups;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file'; + put '@brief validating the mpe_security.sas_group column'; + put '@details The input table is simply one row from the target table in table'; + put 'called "work.source_row".'; + put 'Available macro variables:'; + put '@li LIBDS - The library.dataset being filtered'; + put '@li VARIABLE_NM - The column being filtered'; + put '

Service Outputs

'; + put 'The values provided below are generic samples - we encourage you to replace'; + put 'these with realistic values in your own deployments.'; + put '
DYNAMIC_VALUES
'; + put 'The RAW_VALUE column may be charactor or numeric. If DISPLAY_INDEX is not'; + put 'provided, it is added automatically.'; + put '|DISPLAY_INDEX:best.|DISPLAY_VALUE:$|RAW_VALUE|'; + put '|---|---|---|'; + put '|1|$77.43|77.43|'; + put '|2|$88.43|88.43|'; + put '
DYNAMIC_EXTENDED_VALUES
'; + put 'This table is optional. If provided, it will map the DISPLAY_INDEX from the'; + put 'DYNAMIC_VALUES table to additional column/value pairs, that will be used to'; + put 'populate dropdowns for _other_ cells in the _same_ row.'; + put 'Should be used sparingly! The use of large tables here can slow down the'; + put 'browser.'; + put '|DISPLAY_INDEX:best.|EXTRA_COL_NAME:$32.|DISPLAY_VALUE:$|DISPLAY_TYPE:$1.|RAW_VALUE_NUM|RAW_VALUE_CHAR:$5000|'; + put '|---|---|---|'; + put '|1|DISCOUNT_RT|"50%"|N|0.5||'; + put '|1|DISCOUNT_RT|"40%"|N|0.4||'; + put '|1|DISCOUNT_RT|"30%"|N|0.3||'; + put '|1|CURRENCY_SYMBOL|"GBP"|C||"GBP"|'; + put '|1|CURRENCY_SYMBOL|"RSD"|C||"RSD"|'; + put '|2|DISCOUNT_RT|"50%"|N|0.5||'; + put '|2|DISCOUNT_RT|"40%"|N|0.4||'; + put '|2|CURRENCY_SYMBOL|"EUR"|C||"EUR"|'; + put '|2|CURRENCY_SYMBOL|"HKD"|C||"HKD"|'; + put '

SAS Macros

'; + put '@li dc_getgroups.sas'; + put '**/'; + put '%dc_getgroups(outds=groups)'; + put 'proc sql;'; + put 'create table work.DYNAMIC_VALUES as'; + put 'select distinct groupname as display_value,'; + put 'groupname as raw_value'; + put 'from work.groups'; + put 'order by 1;'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=tables_all; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Files

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as FMTCAT,'; + put 'FMTNAME'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'LENGTH num'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.length as MAXW'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put ')))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] workobs= (0) When set to a positive integer, will create a new'; + put 'output object (WORK) which contains this number of observations from all'; + put 'tables in the WORK library.'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX,workobs=0'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&workobs) > 0 %then %do;'; + put '/* if debug mode, send back first XX records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10'; + put ',maxobs=&workobs'; + put ')'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '%macro mm_assignlib('; + put 'libref'; + put ',mAbort=HARD'; + put ')/*/STORE SOURCE*/;'; + put '%local mp_abort msg;'; + put '%let mp_abort=0;'; + put '%if %sysfunc(libref(&libref)) %then %do;'; + put 'data _null_;'; + put 'length liburi LibName msg $200;'; + put 'call missing(of _all_);'; + put 'nobj=metadata_getnobj("omsobj:SASLibrary?@Libref=''&libref''",1,liburi);'; + put 'if nobj=1 then do;'; + put 'rc=metadata_getattr(liburi,"Name",LibName);'; + put '/* now try and assign it */'; + put 'if libname("&libref",,''meta'',cats(''liburi="'',liburi,''";'')) ne 0 then do;'; + put 'putlog "&libref could not be assigned";'; + put 'putlog liburi=;'; + put '/**'; + put '* Fetch the system message for display in the abort modal. This is'; + put '* not always helpful though. One example, previously received:'; + put '* NOTE: Libref XX refers to the same library metadata as libref XX.'; + put '*/'; + put 'msg=sysmsg();'; + put 'if msg=:''ERROR: Libref SAVE is not assigned.'' then do;'; + put 'msg=catx(" ",'; + put '"Could not assign %upcase(&libref).",'; + put '"Please check metadata permissions! Libname:",libname,'; + put '"Liburi:",liburi'; + put ');'; + put 'end;'; + put 'else if msg="ERROR: User does not have appropriate authorization "!!'; + put '"level for library SAVE."'; + put 'then do;'; + put 'msg=catx(" ",'; + put '"ERROR: User does not have appropriate authorization level",'; + put '"for library %upcase(&libref), libname:",libname,'; + put '"Liburi:",liburi'; + put ');'; + put 'end;'; + put 'call symputx(''msg'',msg,''l'');'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1,''l'');'; + put 'end;'; + put 'else do;'; + put 'put (_all_)(=);'; + put 'call symputx(''libname'',libname,''L'');'; + put 'call symputx(''liburi'',liburi,''L'');'; + put 'end;'; + put 'end;'; + put 'else if nobj>1 then do;'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; + put 'call symputx(''msg'',"More than one library with libref=&libref");'; + put 'end;'; + put 'else do;'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; + put 'call symputx(''msg'',"Library &libref not found in metadata");'; + put 'end;'; + put 'run;'; + put '%put NOTE: &msg;'; + put '%end;'; + put '%else %do;'; + put '%put NOTE: Library &libref is already assigned;'; + put '%end;'; + put '%mp_abort(iftrue= (&mp_abort=1)'; + put ',mac=mm_assignlib.sas'; + put ',msg=%superq(msg)'; + put ')'; + put '%mend mm_assignlib;'; + put '/** @cond */'; + put '%macro mf_getengine(libref'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid engnum rc engine;'; + put '/* in case the parameter is a libref.tablename, pull off just the libref */'; + put '%let libref = %upcase(%scan(&libref, 1, %str(.)));'; + put '%let dsid=%sysfunc('; + put 'open(sashelp.vlibnam(where=(libname="%upcase(&libref)")),i)'; + put ');'; + put '%if (&dsid ^= 0) %then %do;'; + put '%let engnum=%sysfunc(varnum(&dsid,ENGINE));'; + put '%let rc=%sysfunc(fetch(&dsid));'; + put '%let engine=%sysfunc(getvarc(&dsid,&engnum));'; + put '%put &libref. ENGINE is &engine.;'; + put '%let rc= %sysfunc(close(&dsid));'; + put '%end;'; + put '%upcase(&engine)'; + put '%mend mf_getengine;'; + put '/** @endcond */'; + put '%macro mm_assigndirectlib('; + put 'libref /* libref to assign from metadata */'; + put ',open_passthrough= /* provide an alias to produce the'; + put 'CONNECT TO statement for the'; + put 'relevant external database */'; + put ',sql_options= /* add any options to add to proc sql statement eg outobs='; + put '(only valid for pass through) */'; + put ',mDebug=0'; + put ',mAbort=0'; + put ')/*/STORE SOURCE*/;'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing mm_assigndirectlib.sas;'; + put '%&mD.put _local_;'; + put '%if &mAbort=1 %then %let mAbort=;'; + put '%else %let mAbort=%str(*);'; + put '%&mD.put NOTE: Creating direct (non META) connection to &libref library;'; + put '%local cur_engine;'; + put '%let cur_engine=%mf_getengine(&libref);'; + put '%if &cur_engine ne META and &cur_engine ne %then %do;'; + put '%put NOTE: &libref already has a direct (&cur_engine) libname connection;'; + put '%return;'; + put '%end;'; + put '%else %if %upcase(&libref)=WORK %then %do;'; + put '%put NOTE: We already have a direct connection to WORK :-) ;'; + put '%return;'; + put '%end;'; + put '/* need to determine the library ENGINE first */'; + put '%local engine;'; + put 'data _null_;'; + put 'length lib_uri engine $256;'; + put 'call missing (of _all_);'; + put '/* get URI for the particular library */'; + put 'rc1=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put '/* get the Engine attribute of the previous object */'; + put 'rc2=metadata_getattr(lib_uri,''Engine'',engine);'; + put 'putlog "mm_assigndirectlib for &libref:" rc1= lib_uri= rc2= engine=;'; + put 'call symputx("liburi",lib_uri,''l'');'; + put 'call symputx("engine",engine,''l'');'; + put 'run;'; + put '/* now obtain engine specific connection details */'; + put '%if &engine=BASE %then %do;'; + put '%&mD.put NOTE: Retrieving BASE library path;'; + put 'data _null_;'; + put 'length up_uri $256 path cat_path $1024;'; + put 'retain cat_path;'; + put 'call missing (of _all_);'; + put '/* get all the filepaths of the UsingPackages association */'; + put 'i=1;'; + put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; + put 'do while (rc3>0);'; + put '/* get the DirectoryName attribute of the previous object */'; + put 'rc4=metadata_getattr(up_uri,''DirectoryName'',path);'; + put 'if i=1 then path = ''("''!!trim(path)!!''" '';'; + put 'else path ='' "''!!trim(path)!!''" '';'; + put 'cat_path = trim(cat_path) !! " " !! trim(path) ;'; + put 'i+1;'; + put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; + put 'end;'; + put 'cat_path = trim(cat_path) !! ")";'; + put '&mD.putlog "NOTE: Getting physical path for &libref library";'; + put '&mD.putlog rc3= up_uri= rc4= cat_path= path=;'; + put '&mD.putlog "NOTE: Libname cmd will be:";'; + put '&mD.putlog "libname &libref" cat_path;'; + put 'call symputx("filepath",cat_path,''l'');'; + put 'run;'; + put '%if %sysevalf(&sysver<9.4) %then %do;'; + put 'libname &libref &filepath;'; + put '%end;'; + put '%else %do;'; + put '/* apply the new filelocks option to cater for temporary locks */'; + put 'libname &libref &filepath filelockwait=5;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=REMOTE %then %do;'; + put 'data x;'; + put 'length rcCon rcProp rc k 3 uriCon uriProp PropertyValue PropertyName'; + put 'Delimiter $256 properties $2048;'; + put 'retain properties;'; + put 'rcCon = metadata_getnasn("&liburi", "LibraryConnection", 1, uriCon);'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", 1, uriProp);'; + put 'k = 1;'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; + put 'do while (rcProp > 0);'; + put 'rc = metadata_getattr(uriProp , "DefaultValue",PropertyValue);'; + put 'rc = metadata_getattr(uriProp , "PropertyName",PropertyName);'; + put 'rc = metadata_getattr(uriProp , "Delimiter",Delimiter);'; + put 'properties = trim(properties) !! " " !! trim(PropertyName)'; + put '!! trim(Delimiter) !! trim(PropertyValue);'; + put 'output;'; + put 'k+1;'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; + put 'end;'; + put '%&mD.put NOTE: Getting properties for REMOTE SHARE &libref library;'; + put '&mD.put _all_;'; + put '%&mD.put NOTE: Libname cmd will be:;'; + put '%&mD.put libname &libref &engine &properties slibref=&libref;'; + put 'call symputx ("properties",trim(properties),''l'');'; + put 'run;'; + put 'libname &libref &engine &properties slibref=&libref;'; + put '%end;'; + put '%else %if &engine=OLEDB %then %do;'; + put '%&mD.put NOTE: Retrieving OLEDB connection details;'; + put 'data _null_;'; + put 'length domain datasource provider properties schema'; + put 'connx_uri domain_uri conprop_uri lib_uri schema_uri value $256.;'; + put 'call missing (of _all_);'; + put '/* get source connection ID */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; + put '/* get connection domain */'; + put 'rc1=metadata_getnasn(connx_uri,''Domain'',1,domain_uri);'; + put 'rc2=metadata_getattr(domain_uri,''Name'',domain);'; + put '&mD.putlog / ''NOTE: '' // ''NOTE- connection id: '' connx_uri ;'; + put '&mD.putlog ''NOTE- domain: '' domain;'; + put '/* get DSN and PROVIDER from connection properties */'; + put 'i=0;'; + put 'do until (rc<0);'; + put 'i+1;'; + put 'rc=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; + put 'rc2=metadata_getattr(conprop_uri,''Name'',value);'; + put 'if value=''Connection.OLE.Property.DATASOURCE.Name.xmlKey.txt'' then do;'; + put 'rc3=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; + put 'end;'; + put 'else if value=''Connection.OLE.Property.PROVIDER.Name.xmlKey.txt'' then do;'; + put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',provider);'; + put 'end;'; + put 'else if value=''Connection.OLE.Property.PROPERTIES.Name.xmlKey.txt'' then'; + put 'do;'; + put 'rc5=metadata_getattr(conprop_uri,''DefaultValue'',properties);'; + put 'end;'; + put 'end;'; + put '&mD.putlog ''NOTE- dsn/provider/properties: '' /'; + put 'datasource provider properties;'; + put '&mD.putlog ''NOTE- schema: '' schema // ''NOTE-'';'; + put '/* get SCHEMA */'; + put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,lib_uri);'; + put 'rc7=metadata_getattr(lib_uri,''SchemaName'',schema);'; + put 'call symputx(''SQL_domain'',domain,''l'');'; + put 'call symputx(''SQL_dsn'',datasource,''l'');'; + put 'call symputx(''SQL_provider'',provider,''l'');'; + put 'call symputx(''SQL_properties'',properties,''l'');'; + put 'call symputx(''SQL_schema'',schema,''l'');'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put 'proc sql &sql_options;'; + put 'connect to OLEDB as &open_passthrough(INSERT_SQL=YES'; + put '/* need additional properties to make this work */'; + put 'properties=(''Integrated Security''=SSPI'; + put '''Persist Security Info''=True'; + put '%sysfunc(compress(%str(&SQL_properties),%str(())))'; + put ')'; + put 'DATASOURCE=&sql_dsn PROMPT=NO'; + put 'PROVIDER=&sql_provider SCHEMA=&sql_schema CONNECTION = GLOBAL);'; + put '%end;'; + put '%else %do;'; + put 'LIBNAME &libref OLEDB PROPERTIES=&sql_properties'; + put 'DATASOURCE=&sql_dsn PROVIDER=&sql_provider SCHEMA=&sql_schema'; + put '%if %length(&sql_domain)>0 %then %do;'; + put 'authdomain="&sql_domain"'; + put '%end;'; + put 'connection=shared;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=ODBC %then %do;'; + put '&mD.%put NOTE: Retrieving ODBC connection details;'; + put 'data _null_;'; + put 'length connx_uri conprop_uri value datasource up_uri schema $256.;'; + put 'call missing (of _all_);'; + put '/* get source connection ID */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; + put '/* get connection properties */'; + put 'i=0;'; + put 'do until (rc2<0);'; + put 'i+1;'; + put 'rc2=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; + put 'rc3=metadata_getattr(conprop_uri,''Name'',value);'; + put 'if value=''Connection.ODBC.Property.DATASRC.Name.xmlKey.txt'' then do;'; + put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; + put 'rc2=-1;'; + put 'end;'; + put 'end;'; + put '/* get SCHEMA */'; + put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,up_uri);'; + put 'rc7=metadata_getattr(up_uri,''SchemaName'',schema);'; + put '&mD.put rc= connx_uri= rc2= conprop_uri= rc3= value= rc4= datasource='; + put 'rc6= up_uri= rc7= schema=;'; + put 'call symputx(''SQL_schema'',schema,''l'');'; + put 'call symputx(''SQL_dsn'',datasource,''l'');'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put 'proc sql &sql_options;'; + put 'connect to ODBC as &open_passthrough'; + put '(INSERT_SQL=YES DATASRC=&sql_dsn. CONNECTION=global);'; + put '%end;'; + put '%else %do;'; + put 'libname &libref ODBC DATASRC=&sql_dsn SCHEMA=&sql_schema;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=POSTGRES %then %do;'; + put '%put NOTE: Obtaining POSTGRES library details;'; + put 'data _null_;'; + put 'length database ignore_read_only_columns direct_exe preserve_col_names'; + put 'preserve_tab_names server schema authdomain user password'; + put 'prop name value uri urisrc $256.;'; + put 'call missing (of _all_);'; + put '/* get database value */'; + put 'prop=''Connection.DBMS.Property.DB.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,database,"");'; + put 'if database^='''' then database=''database=''!!quote(trim(database));'; + put 'call symputx(''database'',database,''l'');'; + put '/* get IGNORE_READ_ONLY_COLUMNS value */'; + put 'prop=''Library.DBMS.Property.DBIROC.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,ignore_read_only_columns,"");'; + put 'if ignore_read_only_columns^='''' then ignore_read_only_columns='; + put '''ignore_read_only_columns=''!!ignore_read_only_columns;'; + put 'call symputx(''ignore_read_only_columns'',ignore_read_only_columns,''l'');'; + put '/* get DIRECT_EXE value */'; + put 'prop=''Library.DBMS.Property.DirectExe.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,direct_exe,"");'; + put 'if direct_exe^='''' then direct_exe=''direct_exe=''!!direct_exe;'; + put 'call symputx(''direct_exe'',direct_exe,''l'');'; + put '/* get PRESERVE_COL_NAMES value */'; + put 'prop=''Library.DBMS.Property.PreserveColNames.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,preserve_col_names,"");'; + put 'if preserve_col_names^='''' then preserve_col_names='; + put '''preserve_col_names=''!!preserve_col_names;'; + put 'call symputx(''preserve_col_names'',preserve_col_names,''l'');'; + put '/* get PRESERVE_TAB_NAMES value */'; + put '/* be careful with PRESERVE_TAB_NAMES=YES - it will mean your table will'; + put 'become case sensitive!! */'; + put 'prop=''Library.DBMS.Property.PreserveTabNames.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,preserve_tab_names,"");'; + put 'if preserve_tab_names^='''' then preserve_tab_names='; + put '''preserve_tab_names=''!!preserve_tab_names;'; + put 'call symputx(''preserve_tab_names'',preserve_tab_names,''l'');'; + put '/* get SERVER value */'; + put 'if metadata_getnasn("&liburi","LibraryConnection",1,uri)>0 then do;'; + put 'prop=''Connection.DBMS.Property.SERVER.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop(uri,prop,server,"");'; + put 'end;'; + put 'if server^='''' then server=''server=''!!quote(cats(server));'; + put 'call symputx(''server'',server,''l'');'; + put '/* get SCHEMA value */'; + put 'if metadata_getnasn("&liburi","UsingPackages",1,uri)>0 then do;'; + put 'rc=metadata_getattr(uri,"SchemaName",schema);'; + put 'end;'; + put 'if schema^='''' then schema=''schema=''!!schema;'; + put 'call symputx(''schema'',schema,''l'');'; + put '/* get AUTHDOMAIN value */'; + put '/* this is only useful if the user account contains that auth domain'; + put 'if metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then do;'; + put 'rc=metadata_getnasn(uri,"Domain",1,urisrc);'; + put 'rc=metadata_getattr(urisrc,"Name",authdomain);'; + put 'end;'; + put 'if authdomain^='''' then authdomain=''authdomain=''!!quote(trim(authdomain));'; + put '*/'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/* get user & pass */'; + put 'if authdomain='''' & metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then'; + put 'do;'; + put 'rc=metadata_getattr(uri,"UserID",user);'; + put 'rc=metadata_getattr(uri,"Password",password);'; + put 'end;'; + put 'if user^='''' then do;'; + put 'user=''user=''!!quote(trim(user));'; + put 'password=''password=''!!quote(trim(password));'; + put 'end;'; + put 'call symputx(''user'',user,''l'');'; + put 'call symputx(''password'',password,''l'');'; + put '&md.put _all_;'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put '%put %str(WARN)ING: Passthrough option for postgres not yet supported;'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put '%if &mdebug=1 %then %do;'; + put '%put NOTE: Executing the following:/;'; + put '%put NOTE- libname &libref POSTGRES &database &ignore_read_only_columns;'; + put '%put NOTE- &direct_exe &preserve_col_names &preserve_tab_names;'; + put '%put NOTE- &server &schema &authdomain &user &password //;'; + put '%end;'; + put 'libname &libref POSTGRES &database &ignore_read_only_columns &direct_exe'; + put '&preserve_col_names &preserve_tab_names &server &schema &authdomain'; + put '&user &password;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=ORACLE %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null_;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema $256;'; + put 'call missing (of _all_);'; + put '/* get auth domain */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; + put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; + put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/* path */'; + put 'rc=metadata_getprop(assocuri1,'; + put '''Connection.Oracle.Property.PATH.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref ORACLE path=&path schema=&schema;'; + put '%put NOTE- authdomain=&authdomain;'; + put '%put NOTE-;'; + put 'libname &libref ORACLE path=&path schema=&schema authdomain=&authdomain;'; + put '%end;'; + put '%else %if &engine=SQLSVR %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; + put 'passwd $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; + put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; + put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; + put 'call symputx(''user'',userid,''l'');'; + put 'call symputx(''pass'',passwd,''l'');'; + put '/* path */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; + put 'rc=metadata_getprop(assocuri2,'; + put '''Connection.SQL.Property.Datasrc.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref SQLSVR datasrc=&path schema=&schema ;'; + put '%put NOTE- user="&user" pass="XXX";'; + put '%put NOTE-;'; + put 'libname &libref SQLSVR datasrc=&path schema=&schema user="&user" pass="&pass";'; + put '%end;'; + put '%else %if &engine=TERADATA %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; + put 'passwd $256;'; + put 'call missing (of _all_);'; + put '/* get auth domain */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; + put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; + put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/*'; + put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; + put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; + put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; + put 'call symputx(''user'',userid,''l'');'; + put 'call symputx(''pass'',passwd,''l'');'; + put '*/'; + put '/* path */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; + put 'rc=metadata_getprop(assocuri2,'; + put '''Connection.Teradata.Property.SERVER.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref TERADATA server="&path" schema=&schema ;'; + put '%put NOTe- authdomain=&authdomain;'; + put '%put NOTE-;'; + put 'libname &libref TERADATA server="&path" schema=&schema authdomain=&authdomain;'; + put '%end;'; + put '%else %if &engine= %then %do;'; + put '%put NOTE: Libref &libref is not registered in metadata;'; + put '%&mAbort.mp_abort('; + put 'msg=%str(ERR)OR: Libref &libref is not registered in metadata'; + put ',mac=mm_assigndirectlib.sas);'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put '%put %str(WARN)ING: Engine &engine is currently unsupported;'; + put '%put %str(WARN)ING- Please contact your support team.;'; + put '%return;'; + put '%end;'; + put '%mend mm_assigndirectlib;'; + put '%macro mm_getrepos('; + put 'outds=work.mm_getrepos'; + put ')/*/STORE SOURCE*/;'; + put '* use a temporary fileref to hold the response;'; + put 'filename response temp;'; + put '/* get list of libraries */'; + put 'proc metadata in='; + put '"1"'; + put 'out=response;'; + put 'run;'; + put '/* write the response to the log for debugging */'; + put '/*'; + put 'data _null_;'; + put 'infile response lrecl=1048576;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '*/'; + put '/* create an XML map to read the response */'; + put 'filename sxlemap temp;'; + put 'data _null_;'; + put 'file sxlemap;'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository";'; + put 'put "";'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Id";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Name";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Desc";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@DefaultNS";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryType";'; + put 'put "characterstring20";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryFormat";'; + put 'put "characterstring10";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@Access";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@CurrentAccess";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@PauseState";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Path";'; + put 'put "";'; + put 'put "characterstring256";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Engine";'; + put 'put "";'; + put 'put "characterstring8";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Options";'; + put 'put "";'; + put 'put "characterstring32";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataCreated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataUpdated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put ''
'';'; + put 'run;'; + put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; + put 'proc sort data= _XML_.SASRepos out=&outds;'; + put 'by name;'; + put 'run;'; + put '/* clear references */'; + put 'filename sxlemap clear;'; + put 'filename response clear;'; + put 'libname _XML_ clear;'; + put '%mend mm_getrepos;'; + put '%macro dc_assignlib(type,libref,passthru=);'; + put '%put &sysmacroname entry vars:;'; + put '%put _local_;'; + put '/* take current repository */'; + put '%local repo repocnt x;'; + put '%let repo=%sysfunc(getoption(metarepository));'; + put '/* get list of repositories and filter */'; + put '%mm_getrepos(outds=repos)'; + put '%let repocnt=0;'; + put 'data repos;'; + put 'set repos;'; + put 'where repositorytype in(''CUSTOM'',''FOUNDATION'')'; + put '& upcase(name) ne "%upcase(&repo)";'; + put 'keep id name ;'; + put 'call symputx(cats(''repo'',_n_),name,''l'');'; + put 'call symputx(''repocnt'',_n_,''l'');'; + put 'run;'; + put '/* find out which of these repositories has the libref we are searching for */'; + put '%local lib_uri;'; + put '%let lib_uri=NOTFOUND;'; + put 'data _null_; /* check default repo first */'; + put 'length lib_uri $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; + put 'run;'; + put '%if &lib_uri=NOTFOUND %then %do;'; + put '%do x=1 %to &repocnt;'; + put 'options metarepository=&&repo&x;'; + put 'data _null_;'; + put 'length lib_uri $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; + put 'run;'; + put '%if &lib_uri ne NOTFOUND %then %let x=%eval(&repocnt+1);'; + put '%end;'; + put '%end;'; + put '%if &type=READ %then %do;'; + put '%mm_assignlib(&libref)'; + put '%end;'; + put '%else %if &type=WRITE %then %do;'; + put '%mm_assigndirectlib(&libref,open_passthrough=&passthru)'; + put '%end;'; + put 'options metarepository=&repo;'; + put '%mend dc_assignlib;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file'; + put '@brief Generic validator for tables in a library'; + put '@details The input table is simply one row from the target table in table'; + put 'called "work.source_row".'; + put 'Available macro variables:'; + put '@li MPELIB - The DC control library'; + put '@li LIBDS - The library.dataset being filtered'; + put '@li VARIABLE_NM - The column being filtered'; + put '

Service Outputs

'; + put 'The values provided below are generic samples - we encourage you to replace'; + put 'these with realistic values in your own deployments.'; + put '
DYNAMIC_VALUES
'; + put 'The RAW_VALUE column may be charactor or numeric. If DISPLAY_INDEX is not'; + put 'provided, it is added automatically.'; + put '|DISPLAY_INDEX:best.|DISPLAY_VALUE:$|RAW_VALUE|'; + put '|---|---|---|'; + put '|1|$77.43|77.43|'; + put '|2|$88.43|88.43|'; + put '
DYNAMIC_EXTENDED_VALUES
'; + put 'This table is optional. If provided, it will map the DISPLAY_INDEX from the'; + put 'DYNAMIC_VALUES table to additional column/value pairs, that will be used to'; + put 'populate dropdowns for _other_ cells in the _same_ row.'; + put 'Should be used sparingly! The use of large tables here can slow down the'; + put 'browser.'; + put '|DISPLAY_INDEX:best.|EXTRA_COL_NAME:$32.|DISPLAY_VALUE:$|DISPLAY_TYPE:$1.|RAW_VALUE_NUM|RAW_VALUE_CHAR:$5000|'; + put '|---|---|---|'; + put '|1|DISCOUNT_RT|"50%"|N|0.5||'; + put '|1|DISCOUNT_RT|"40%"|N|0.4||'; + put '|1|DISCOUNT_RT|"30%"|N|0.3||'; + put '|1|CURRENCY_SYMBOL|"GBP"|C||"GBP"|'; + put '|1|CURRENCY_SYMBOL|"RSD"|C||"RSD"|'; + put '|2|DISCOUNT_RT|"50%"|N|0.5||'; + put '|2|DISCOUNT_RT|"40%"|N|0.4||'; + put '|2|CURRENCY_SYMBOL|"EUR"|C||"EUR"|'; + put '|2|CURRENCY_SYMBOL|"HKD"|C||"HKD"|'; + put '

SAS Macros

'; + put '@li dc_assignlib.sas'; + put '**/'; + put '/* send back the raw and formatted values */'; + put '%let tgtlib=0;'; + put '%let varlibds=%mf_getuniquename();'; + put '%let vartgtlib=%mf_getuniquename();'; + put '%let var_is_lib=%mf_getuniquename();'; + put 'data _null_;'; + put 'length &varlibds $41 &vartgtlib $8 libref $8 rls_libref $8;'; + put 'if _n_=1 then call missing(of _all_);'; + put 'set work.source_row;'; + put '&varlibds=upcase(symget(''libds''));'; + put 'if &varlibds="&mpelib..MPE_TABLES" then &vartgtlib=LIBREF;'; + put 'else if &varlibds="&mpelib..MPE_ROW_LEVEL_SECURITY"'; + put 'then &vartgtlib=RLS_LIBREF;'; + put 'else if &varlibds="&mpelib..MPE_COLUMN_LEVEL_SECURITY"'; + put 'then &vartgtlib=CLS_LIBREF;'; + put '/* validate name */'; + put 'if nvalid(&vartgtlib,''v7'') then call symputx(''tgtlib'',&vartgtlib);'; + put 'call symputx(''vartgtlib'',&vartgtlib);'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= ("&tgtlib" ="0" )'; + put ',mac=&_program..sas'; + put ',msg=%str(Invalid library - %superq(vartgtlib))'; + put ',errds=work.dc_error_response'; + put ')'; + put '%dc_assignlib(READ,&tgtlib)'; + put 'data members; /* empty table */'; + put 'name='' '';'; + put 'run;'; + put 'ods output Members=Members;'; + put 'proc datasets library=&tgtlib ;'; + put 'run;'; + put '/* send back the raw and formatted values */'; + put 'proc sql;'; + put 'create table work.DYNAMIC_VALUES as'; + put 'select distinct name as display_value,'; + put 'upcase(name) as raw_value'; + put 'from work.members'; + put 'where MemType=''DATA'''; + put 'order by 1;'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=tables_editable; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Files

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as FMTCAT,'; + put 'FMTNAME'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'LENGTH num'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.length as MAXW'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put ')))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] workobs= (0) When set to a positive integer, will create a new'; + put 'output object (WORK) which contains this number of observations from all'; + put 'tables in the WORK library.'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX,workobs=0'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&workobs) > 0 %then %do;'; + put '/* if debug mode, send back first XX records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10'; + put ',maxobs=&workobs'; + put ')'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file'; + put '@brief Generic validator for editable libraries'; + put '@details The input table is simply one row from the target table in table'; + put 'called "work.source_row".'; + put 'Available macro variables:'; + put '@li MPELIB - The DC control library'; + put '@li LIBDS - The library.dataset being filtered'; + put '@li VARIABLE_NM - The column being filtered'; + put '

Service Inputs

'; + put '
work.source_row
'; + put '|libref:$8|'; + put '|somelib|'; + put '

Service Outputs

'; + put 'The values provided below are generic samples - we encourage you to replace'; + put 'these with realistic values in your own deployments.'; + put '
DYNAMIC_VALUES
'; + put 'The RAW_VALUE column may be charactor or numeric. If DISPLAY_INDEX is not'; + put 'provided, it is added automatically.'; + put '|DISPLAY_INDEX:best.|DISPLAY_VALUE:$|RAW_VALUE|'; + put '|---|---|---|'; + put '|1|$77.43|77.43|'; + put '|2|$88.43|88.43|'; + put '
DYNAMIC_EXTENDED_VALUES
'; + put 'This table is optional. If provided, it will map the DISPLAY_INDEX from the'; + put 'DYNAMIC_VALUES table to additional column/value pairs, that will be used to'; + put 'populate dropdowns for _other_ cells in the _same_ row.'; + put 'Should be used sparingly! The use of large tables here can slow down the'; + put 'browser.'; + put '|DISPLAY_INDEX:best.|EXTRA_COL_NAME:$32.|DISPLAY_VALUE:$|DISPLAY_TYPE:$1.|RAW_VALUE_NUM|RAW_VALUE_CHAR:$5000|'; + put '|---|---|---|---|---|---|'; + put '|1|DISCOUNT_RT|"50%"|N|0.5|` `|'; + put '|1|DISCOUNT_RT|"40%"|N|0.4|` `|'; + put '|1|DISCOUNT_RT|"30%"|N|0.3|` `|'; + put '|1|CURRENCY_SYMBOL|"GBP"|C|` `|"GBP"|'; + put '|1|CURRENCY_SYMBOL|"RSD"|C|` `|"RSD"|'; + put '|2|DISCOUNT_RT|"50%"|N|0.5|` `|'; + put '|2|DISCOUNT_RT|"40%"|N|0.4|` `|'; + put '|2|CURRENCY_SYMBOL|"EUR"|C|` `|"EUR"|'; + put '|2|CURRENCY_SYMBOL|"HKD"|C|` `|"HKD"|'; + put '**/'; + put '/* send back the raw and formatted values */'; + put 'data _null_;'; + put 'var=symget(''variable_nm'');'; + put 'libds=symget(''libds'');'; + put 'if libds="&mpelib..MPE_EXCEL_CONFIG" and var=''XL_TABLE'' then do;'; + put 'call symputx(''srccol'',''XL_LIBREF'');'; + put 'end;'; + put 'else call symputx(''srccol'',''libref'');'; + put 'run;'; + put 'proc sql;'; + put 'create table work.DYNAMIC_VALUES as'; + put 'select distinct dsn as display_value,'; + put 'upcase(dsn) as raw_value'; + put 'from &mpelib..mpe_tables'; + put '(where=(&dc_dttmtfmt. < tx_to))'; + put 'where libref in (select &srccol from work.source_row)'; + put 'order by 1;'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let path=services/web9; + +%let service=index-html; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put 'options mprint;'; + put '%macro mp_replace(infile,'; + put 'findvar=,'; + put 'replacevar=,'; + put 'outfile=0'; + put ')/*/STORE SOURCE*/;'; + put '%local inref outref dttm ds1 rc;'; + put '/* create filerefs */'; + put '%let rc=%sysfunc(filename(inref,,temp,lrecl=200));'; + put '%let rc=%sysfunc(filename(outref,,temp,lrecl=200));'; + put '%if &outfile=0 %then %let outfile=&infile;'; + put '/* uniquely named 32 char datasets */'; + put '%let ds1=all%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,29);'; + put '%let ds2=start%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,27);'; + put '/* START */'; + put '%let dttm=%sysfunc(datetime());'; + put 'filename &inref &infile lrecl=1 recfm=n;'; + put 'data &ds1;'; + put 'infile &inref;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'run;'; + put 'data &ds2;'; + put '/* set find string to length in bytes to cover trailing spaces */'; + put 'length string $ %length(%superq(&findvar));'; + put 'string =symget("&findvar");'; + put 'drop string;'; + put 'firstchar=char(string,1);'; + put 'findlen=lengthm(string); /* <- for trailing bytes */'; + put 'do _N_=1 to nobs;'; + put 'set &ds1 nobs=nobs point=_N_;'; + put 'if sourcechar=firstchar then do;'; + put 'pos=1;'; + put 's=0;'; + put 'do point=_N_ to min(_N_ + findlen -1,nobs);'; + put 'set &ds1 point=point;'; + put 'if sourcechar=char(string, pos) then s + 1;'; + put 'else goto _leave_;'; + put 'pos+1;'; + put 'end;'; + put '_leave_:'; + put 'if s=findlen then do;'; + put 'START =_N_;'; + put '_N_ =_N_+ s - 1;'; + put 'STOP =_N_;'; + put 'output;'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'stop;'; + put 'keep START STOP;'; + put 'run;'; + put 'data &ds1;'; + put 'declare hash HS(dataset:"&ds2(keep=start)");'; + put 'HS.defineKey("start");'; + put 'HS.defineDone();'; + put 'declare hash HE(dataset:"&ds2(keep=stop)");'; + put 'HE.defineKey("stop");'; + put 'HE.defineDone();'; + put 'do until(eof);'; + put 'set &ds1 end=eof curobs =n;'; + put 'start = ^HS.check(key:n);'; + put 'stop = ^HE.check(key:n);'; + put 'length strt $ 1;'; + put 'strt =put(start,best. -L);'; + put 'retain out 1;'; + put 'if out then output;'; + put 'if start then out=0;'; + put 'if stop then out=1;'; + put 'end;'; + put 'stop;'; + put 'keep sourcechar strt;'; + put 'run;'; + put 'filename &outref &outfile recfm=n;'; + put 'data _null_;'; + put 'length replace $ %length(%superq(&replacevar));'; + put 'replace=symget("&replacevar");'; + put 'file &outref;'; + put 'do until(eof);'; + put 'set &ds1 end=eof;'; + put 'if strt ="1" then put replace char.;'; + put 'else put sourcechar char1.;'; + put 'end;'; + put 'stop;'; + put 'run;'; + put '/* END */'; + put '%put &sysmacroname took %sysevalf(%sysfunc(datetime())-&dttm) seconds to run;'; + put '%mend mp_replace;'; + put '%macro sasjsout(type,fref=sasjs);'; + put '%global sysprocessmode SYS_JES_JOB_URI;'; + put '%if &type=JS or &type=JS64 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header('; + put 'Content-type,application/javascript%str(;)charset=UTF-8'; + put '));'; + put '%end;'; + put '%else %if &type=CSS or &type=CSS64 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,text/css));'; + put '%end;'; + put '%else %if &type=PNG or &type=GIF or &type=JPEG or &type=JPG %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,image/%lowcase(&type)));'; + put '%end;'; + put '%else %if &type=SVG or &type=SVG64 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,image/svg+xml));'; + put '%end;'; + put '%else %if &type=ICO %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,image/vnd.microsoft.icon));'; + put '%end;'; + put '%else %if &type=JSON %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,application/json));'; + put '%end;'; + put '%else %if &type=MP3 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/mpeg));'; + put '%end;'; + put '%else %if &type=WAV %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/x-wav));'; + put '%end;'; + put '%else %if &type=OGG %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/ogg));'; + put '%end;'; + put '%else %if &type=WOFF or &type=WOFF2 or &type=TTF %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,font/%lowcase(&type)));'; + put '%end;'; + put '%else %if &type=MP4 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,video/mp4));'; + put '%end;'; + put '%if &type=HTML %then %do;'; + put '/*'; + put 'We need to perform some substitutions -eg to get the APPLOC and SERVERTYPE.'; + put 'Therefore the developer should avoid writing lines that exceed 32k'; + put 'characters (eg base64 encoded images) as they will get truncated when passing'; + put 'through the datastep. This could of course be re-written using LUA, removing'; + put 'the length restriction. Pull requests are welcome!'; + put '*/'; + put 'filename _sjsout temp;'; + put 'data _null_;'; + put 'file _sjsout lrecl=32767 encoding=''utf-8'';'; + put 'infile &fref lrecl=32767;'; + put 'input;'; + put 'length appLoc expanded_path $1048;'; + put 'if _n_=1 then do;'; + put 'retain pgm "&_program" appLoc expanded_path;'; + put '/* index is deployed in the /services/ folder under the appLoc */'; + put 'appLoc=substr(pgm,1,find(pgm,''/services/'')-1);'; + put 'expanded_path=cats(''?_PROGRAM='',appLoc,''/services/'');'; + put 'end;'; + put 'if find(_infile_,'' appLoc: '') then put '' appLoc: '' apploc:$quote1048. '','';'; + put 'else if find(_infile_,'' serverType: '') then do;'; + put 'put '' serverType: "SAS9" ,'';'; + put 'end;'; + put 'else if find(_infile_,'' serverUrl: '') then do;'; + put '/* nothing - we are streaming, so remove to default as hostname */'; + put 'end;'; + put 'else do;'; + put '/* More recently, SASjs apps avoid inline JS to allow strict CSP */'; + put 'length infile in1 in2 $32767;'; + put 'infile=cats(_infile_);'; + put 'spos1=index(upcase(infile),''APPLOC="'');'; + put 'if spos1>0 then do;'; + put 'in1=substr(infile,1,spos1+7);'; + put 'in2=subpad(infile,spos1+8);'; + put 'in2=substr(in2,index(in2,''"''));'; + put 'infile=cats(in1,appLoc,in2);'; + put 'putlog "new apploc: " infile=;'; + put 'end;'; + put '/* find & replace serverType in HTML attributes */'; + put 'spos2=index(upcase(infile),''SERVERTYPE="'');'; + put 'if spos2>0 then do;'; + put 'in1=substr(infile,1,spos2+11);'; + put 'in2=subpad(infile,spos2+12);'; + put 'in2=substr(in2,index(in2,''"''));'; + put 'infile=cats(in1,"SAS9",in2);'; + put 'putlog "new servertype: " infile=;'; + put 'end;'; + put '/* find & replace serverUrl in HTML attributes */'; + put 'spos3=index(upcase(infile),''SERVERURL="'');'; + put 'if spos3>0 then do;'; + put 'in1=substr(infile,1,spos3+10);'; + put 'in2=subpad(infile,spos3+11);'; + put 'in2=substr(in2,index(in2,''"''));'; + put 'infile=cats(in1,in2);'; + put 'putlog "new serverUrl: " infile=;'; + put 'end;'; + put 'if sum(spos1,spos2,spos3)>0 then put infile;'; + put 'else do;'; + put '/* during SAS9 sasjs compile, dependencies get static GUID */'; + put 'infile=tranwrd(_infile_,''?_PROGRAM=pZKd6F95jECvRQlN0LCfdA=='',cats(expanded_path));'; + put 'put infile;'; + put 'end;'; + put 'end;'; + put 'run;'; + put '%let fref=_sjsout;'; + put '%end;'; + put '%else %if &type=JS64 or &type=CSS64 %then %do;'; + put 'options nobomfile;'; + put '%let fvar=pZKd6F95jECvRQlN0LCfdA==;'; + put '%let stgfile="%sysfunc(pathname(work))/stgfile.txt";'; + put '%let newfile="%sysfunc(pathname(work))/newfile.txt";'; + put '/* convert from base64 */'; + put 'filename _out64 &stgfile encoding=''utf-8'';'; + put 'data _null_;'; + put 'length filein 8 fileout 8;'; + put 'filein = fopen("&fref",''I'',4,''B'');'; + put 'fileout = fopen("_out64",''A'',1,''B'');'; + put 'char= ''20''x;'; + put 'do while(fread(filein)=0);'; + put 'length raw $4 ;'; + put 'do i=1 to 4;'; + put 'rc=fget(filein,char,1);'; + put 'substr(raw,i,1)=char;'; + put 'end;'; + put 'rc = fput(fileout, input(raw,$base64X4.));'; + put 'rc =fwrite(fileout);'; + put 'end;'; + put 'rc = fclose(filein);'; + put 'rc = fclose(fileout);'; + put 'run;'; + put '/* get appLoc from _program */'; + put 'data _null_;'; + put 'pgm="&_program";'; + put 'appLoc=substr(pgm,1,find(pgm,''/services/'')-1);'; + put 'call symputx(''apploc'',cats(appLoc,''/services/''));'; + put 'run;'; + put '%put &=fvar;'; + put '%put &=apploc;'; + put '/* replace the GUID with appLoc */'; + put '%mp_replace(&stgfile,'; + put 'findvar=fvar,'; + put 'replacevar=apploc,'; + put 'outfile=&newfile'; + put ')'; + put 'filename &fref &newfile encoding=''utf-8'';'; + put '%end;'; + put '/**'; + put '* In SAS9, JS & CSS files are base64 encoded to avoid UTF8 issues in WLATIN1'; + put '* metadata - so in this case, decode and stream byte by byte.'; + put '* */'; + put '%if &type=GIF or &type=PNG or &type=JPG or &type=JPEG or &type=ICO or &type=MP3'; + put 'or &type=WAV or &type=OGG or &type=WOFF or &type=WOFF2 or &type=TTF or &type=MP4'; + put 'or &type=SVG64'; + put '%then %do;'; + put 'data _null_;'; + put 'length filein 8 fileout 8;'; + put 'filein = fopen("&fref",''I'',4,''B'');'; + put 'fileout = fopen("_webout",''A'',1,''B'');'; + put 'char = ''20''x;'; + put 'do while(fread(filein)=0);'; + put 'length raw $4 ;'; + put 'do i=1 to 4;'; + put 'rc=fget(filein,char,1);'; + put 'substr(raw,i,1)=char;'; + put 'end;'; + put 'rc = fput(fileout, input(raw,$base64X4.));'; + put 'rc = fwrite(fileout);'; + put 'end;'; + put 'rc = fclose(filein);'; + put 'rc = fclose(fileout);'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%put streaming to _webout;'; + put 'data _null_;'; + put 'infile &fref lrecl=1 recfm=n;'; + put 'file _webout mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put '%end;'; + put '%mend sasjsout;'; + put 'filename sasjs temp lrecl=99999999;'; + put 'data _null_;'; + put 'file sasjs;'; + put 'put ''PCFET0NUWVBFIGh0bWw+CjxodG1sPgogIDxoZWFkPgogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiLz4KICAgIDx0aXRsZT5EYXRhIENvbnRyb2xsZXI8L3RpdGxlPgogICAgPCEtLSA8YmFzZSBocmVmPSIvIj4gLS0+CgogICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRo''@;'; + put 'put ''PWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xIi8+CiAgICA8bWV0YSBodHRwLWVxdWl2PSJYLVVBLUNvbXBhdGlibGUiIGNvbnRlbnQ9IklFPWVkZ2UiLz4KICAgIDxsaW5rIHJlbD0iaWNvbiIgdHlwZT0iaW1hZ2UveC1pY29uIiBocmVmPSJpbWFnZXMvZmF2aWNvbi5pY28iLz4KICA8''@;'; + put 'put ''bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9InN0eWxlcy43MDkwYzExMGM0YTdjNjFjLmNzcyI+PC9oZWFkPgoKICA8IS0tCiAgICAjIyBTQVNKUyBBZGFwdGVyIGNvbmZpZyBkZXRhaWxzICMjCgogICAgKiBhcHBMb2M6IFRoZSBsb2NhdGlvbiBpbiBtZXRhZGF0YSBvciBTQVMgZHJpdmUg''@;'; + put 'put ''d2hlcmUgREMgd2lsbCBiZSBkZXBsb3llZAogICAgKiBzZXJ2ZXJUeXBlOiBlaXRoZXIgU0FTOSwgU0FTVklZQSBvciBTQVNKUwogICAgKiBsb2dpbk1lY2hhbmlzbTogVXNlICdEZWZhdWx0JyBmb3IgcmVndWxhciAodXNlci9wYXNzKSBsb2dpbnMsIG9yICdSZWRpcmVjdGVkJyBmb3IgMkZB''@;'; + put 'put ''L1NTTwogICAgKiBkZWJ1ZzogV2hldGhlciB0byBlbmFibGUgZGVidWcgb24gc3RhcnR1cAoKICAgICMjIFZpeWEgb25seSBzZXR0aW5ncyAjIwogICAgKiBhZG1pbkdyb3VwOiBUaGlzIGdyb3VwIHdpbGwgaGF2ZSB1bnJlc3RyaWN0ZWQgYWNjZXNzIChWaXlhIE9ubHkpCiAgICAqIGRjUGF0''@;'; + put 'put ''aDogVGhlIHBoeXNpY2FsIGxvY2F0aW9uIGluIHdoaWNoIHRvIGRlcGxveSB0aGUgc3RhZ2luZyBhcmVhIChWaXlhIG9ubHkpCiAgICAqIHVzZUNvbXB1dGVBcGk6IENvbm5lY3Rpb24gbWV0aG9kIChWaXlhIG9ubHkpCiAgICAqIGNvbnRleHROYW1lOiBDb21wdXRlIENvbnRleHQgKFZpeWEg''@;'; + put 'put ''b25seSkKCiAgLS0+CgogIDxib2R5IGNsYXNzPSJtLTAiPgogICAgPG15LWFwcCBzZXJ2ZXJ1cmw9Imh0dHA6Ly9sb2NhbGhvc3Q6NTAwNCIgYXBwbG9jPSIvUHVibGljL2FwcC9taWhhamxvIiBzZXJ2ZXJ0eXBlPSJTQVM5IiBsb2dpbm1lY2hhbmlzbT0iRGVmYXVsdCIgZGVidWc9ImZhbHNl''@;'; + put 'put ''IiB1c2Vjb21wdXRlYXBpPSJ0cnVlIiBjb250ZXh0bmFtZT0iU0FTIEpvYiBFeGVjdXRpb24gY29tcHV0ZSBjb250ZXh0IiBhZG1pbmdyb3VwPSJzZWMtc2FzOS1wcmQtaW50LXNhc3BsYXRmb3JtLTMwMDExNHNhc2pzIiBkY3BhdGg9Ii90bXAvZGMiIGhvdGxpY2VuY2VrZXk9Im5vbi1jb21t''@;'; + put 'put ''ZXJjaWFsLWFuZC1ldmFsdWF0aW9uIj48L215LWFwcD4KICA8c2NyaXB0IHNyYz0icnVudGltZS42MWU3NzFiNDcyZWNiNTg4LmpzIiB0eXBlPSJtb2R1bGUiPjwvc2NyaXB0PjxzY3JpcHQgc3JjPSJzY3JpcHRzLjdjYjFlOTRlMmZmYWQwY2QuanMiIGRlZmVyPjwvc2NyaXB0PjxzY3JpcHQg''@;'; + put 'put ''c3JjPSJtYWluLmFlYzhiMzU2NGQxOTNkNTEuanMiIHR5cGU9Im1vZHVsZSI+PC9zY3JpcHQ+PC9ib2R5Pgo8L2h0bWw+Cg=='';'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=main.aec8b3564d193d51-js; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put 'options mprint;'; + put '%macro mp_replace(infile,'; + put 'findvar=,'; + put 'replacevar=,'; + put 'outfile=0'; + put ')/*/STORE SOURCE*/;'; + put '%local inref outref dttm ds1 rc;'; + put '/* create filerefs */'; + put '%let rc=%sysfunc(filename(inref,,temp,lrecl=200));'; + put '%let rc=%sysfunc(filename(outref,,temp,lrecl=200));'; + put '%if &outfile=0 %then %let outfile=&infile;'; + put '/* uniquely named 32 char datasets */'; + put '%let ds1=all%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,29);'; + put '%let ds2=start%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,27);'; + put '/* START */'; + put '%let dttm=%sysfunc(datetime());'; + put 'filename &inref &infile lrecl=1 recfm=n;'; + put 'data &ds1;'; + put 'infile &inref;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'run;'; + put 'data &ds2;'; + put '/* set find string to length in bytes to cover trailing spaces */'; + put 'length string $ %length(%superq(&findvar));'; + put 'string =symget("&findvar");'; + put 'drop string;'; + put 'firstchar=char(string,1);'; + put 'findlen=lengthm(string); /* <- for trailing bytes */'; + put 'do _N_=1 to nobs;'; + put 'set &ds1 nobs=nobs point=_N_;'; + put 'if sourcechar=firstchar then do;'; + put 'pos=1;'; + put 's=0;'; + put 'do point=_N_ to min(_N_ + findlen -1,nobs);'; + put 'set &ds1 point=point;'; + put 'if sourcechar=char(string, pos) then s + 1;'; + put 'else goto _leave_;'; + put 'pos+1;'; + put 'end;'; + put '_leave_:'; + put 'if s=findlen then do;'; + put 'START =_N_;'; + put '_N_ =_N_+ s - 1;'; + put 'STOP =_N_;'; + put 'output;'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'stop;'; + put 'keep START STOP;'; + put 'run;'; + put 'data &ds1;'; + put 'declare hash HS(dataset:"&ds2(keep=start)");'; + put 'HS.defineKey("start");'; + put 'HS.defineDone();'; + put 'declare hash HE(dataset:"&ds2(keep=stop)");'; + put 'HE.defineKey("stop");'; + put 'HE.defineDone();'; + put 'do until(eof);'; + put 'set &ds1 end=eof curobs =n;'; + put 'start = ^HS.check(key:n);'; + put 'stop = ^HE.check(key:n);'; + put 'length strt $ 1;'; + put 'strt =put(start,best. -L);'; + put 'retain out 1;'; + put 'if out then output;'; + put 'if start then out=0;'; + put 'if stop then out=1;'; + put 'end;'; + put 'stop;'; + put 'keep sourcechar strt;'; + put 'run;'; + put 'filename &outref &outfile recfm=n;'; + put 'data _null_;'; + put 'length replace $ %length(%superq(&replacevar));'; + put 'replace=symget("&replacevar");'; + put 'file &outref;'; + put 'do until(eof);'; + put 'set &ds1 end=eof;'; + put 'if strt ="1" then put replace char.;'; + put 'else put sourcechar char1.;'; + put 'end;'; + put 'stop;'; + put 'run;'; + put '/* END */'; + put '%put &sysmacroname took %sysevalf(%sysfunc(datetime())-&dttm) seconds to run;'; + put '%mend mp_replace;'; + put '%macro sasjsout(type,fref=sasjs);'; + put '%global sysprocessmode SYS_JES_JOB_URI;'; + put '%if &type=JS or &type=JS64 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header('; + put 'Content-type,application/javascript%str(;)charset=UTF-8'; + put '));'; + put '%end;'; + put '%else %if &type=CSS or &type=CSS64 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,text/css));'; + put '%end;'; + put '%else %if &type=PNG or &type=GIF or &type=JPEG or &type=JPG %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,image/%lowcase(&type)));'; + put '%end;'; + put '%else %if &type=SVG or &type=SVG64 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,image/svg+xml));'; + put '%end;'; + put '%else %if &type=ICO %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,image/vnd.microsoft.icon));'; + put '%end;'; + put '%else %if &type=JSON %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,application/json));'; + put '%end;'; + put '%else %if &type=MP3 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/mpeg));'; + put '%end;'; + put '%else %if &type=WAV %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/x-wav));'; + put '%end;'; + put '%else %if &type=OGG %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/ogg));'; + put '%end;'; + put '%else %if &type=WOFF or &type=WOFF2 or &type=TTF %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,font/%lowcase(&type)));'; + put '%end;'; + put '%else %if &type=MP4 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,video/mp4));'; + put '%end;'; + put '%if &type=HTML %then %do;'; + put '/*'; + put 'We need to perform some substitutions -eg to get the APPLOC and SERVERTYPE.'; + put 'Therefore the developer should avoid writing lines that exceed 32k'; + put 'characters (eg base64 encoded images) as they will get truncated when passing'; + put 'through the datastep. This could of course be re-written using LUA, removing'; + put 'the length restriction. Pull requests are welcome!'; + put '*/'; + put 'filename _sjsout temp;'; + put 'data _null_;'; + put 'file _sjsout lrecl=32767 encoding=''utf-8'';'; + put 'infile &fref lrecl=32767;'; + put 'input;'; + put 'length appLoc expanded_path $1048;'; + put 'if _n_=1 then do;'; + put 'retain pgm "&_program" appLoc expanded_path;'; + put '/* index is deployed in the /services/ folder under the appLoc */'; + put 'appLoc=substr(pgm,1,find(pgm,''/services/'')-1);'; + put 'expanded_path=cats(''?_PROGRAM='',appLoc,''/services/'');'; + put 'end;'; + put 'if find(_infile_,'' appLoc: '') then put '' appLoc: '' apploc:$quote1048. '','';'; + put 'else if find(_infile_,'' serverType: '') then do;'; + put 'put '' serverType: "SAS9" ,'';'; + put 'end;'; + put 'else if find(_infile_,'' serverUrl: '') then do;'; + put '/* nothing - we are streaming, so remove to default as hostname */'; + put 'end;'; + put 'else do;'; + put '/* More recently, SASjs apps avoid inline JS to allow strict CSP */'; + put 'length infile in1 in2 $32767;'; + put 'infile=cats(_infile_);'; + put 'spos1=index(upcase(infile),''APPLOC="'');'; + put 'if spos1>0 then do;'; + put 'in1=substr(infile,1,spos1+7);'; + put 'in2=subpad(infile,spos1+8);'; + put 'in2=substr(in2,index(in2,''"''));'; + put 'infile=cats(in1,appLoc,in2);'; + put 'putlog "new apploc: " infile=;'; + put 'end;'; + put '/* find & replace serverType in HTML attributes */'; + put 'spos2=index(upcase(infile),''SERVERTYPE="'');'; + put 'if spos2>0 then do;'; + put 'in1=substr(infile,1,spos2+11);'; + put 'in2=subpad(infile,spos2+12);'; + put 'in2=substr(in2,index(in2,''"''));'; + put 'infile=cats(in1,"SAS9",in2);'; + put 'putlog "new servertype: " infile=;'; + put 'end;'; + put '/* find & replace serverUrl in HTML attributes */'; + put 'spos3=index(upcase(infile),''SERVERURL="'');'; + put 'if spos3>0 then do;'; + put 'in1=substr(infile,1,spos3+10);'; + put 'in2=subpad(infile,spos3+11);'; + put 'in2=substr(in2,index(in2,''"''));'; + put 'infile=cats(in1,in2);'; + put 'putlog "new serverUrl: " infile=;'; + put 'end;'; + put 'if sum(spos1,spos2,spos3)>0 then put infile;'; + put 'else do;'; + put '/* during SAS9 sasjs compile, dependencies get static GUID */'; + put 'infile=tranwrd(_infile_,''?_PROGRAM=pZKd6F95jECvRQlN0LCfdA=='',cats(expanded_path));'; + put 'put infile;'; + put 'end;'; + put 'end;'; + put 'run;'; + put '%let fref=_sjsout;'; + put '%end;'; + put '%else %if &type=JS64 or &type=CSS64 %then %do;'; + put 'options nobomfile;'; + put '%let fvar=pZKd6F95jECvRQlN0LCfdA==;'; + put '%let stgfile="%sysfunc(pathname(work))/stgfile.txt";'; + put '%let newfile="%sysfunc(pathname(work))/newfile.txt";'; + put '/* convert from base64 */'; + put 'filename _out64 &stgfile encoding=''utf-8'';'; + put 'data _null_;'; + put 'length filein 8 fileout 8;'; + put 'filein = fopen("&fref",''I'',4,''B'');'; + put 'fileout = fopen("_out64",''A'',1,''B'');'; + put 'char= ''20''x;'; + put 'do while(fread(filein)=0);'; + put 'length raw $4 ;'; + put 'do i=1 to 4;'; + put 'rc=fget(filein,char,1);'; + put 'substr(raw,i,1)=char;'; + put 'end;'; + put 'rc = fput(fileout, input(raw,$base64X4.));'; + put 'rc =fwrite(fileout);'; + put 'end;'; + put 'rc = fclose(filein);'; + put 'rc = fclose(fileout);'; + put 'run;'; + put '/* get appLoc from _program */'; + put 'data _null_;'; + put 'pgm="&_program";'; + put 'appLoc=substr(pgm,1,find(pgm,''/services/'')-1);'; + put 'call symputx(''apploc'',cats(appLoc,''/services/''));'; + put 'run;'; + put '%put &=fvar;'; + put '%put &=apploc;'; + put '/* replace the GUID with appLoc */'; + put '%mp_replace(&stgfile,'; + put 'findvar=fvar,'; + put 'replacevar=apploc,'; + put 'outfile=&newfile'; + put ')'; + put 'filename &fref &newfile encoding=''utf-8'';'; + put '%end;'; + put '/**'; + put '* In SAS9, JS & CSS files are base64 encoded to avoid UTF8 issues in WLATIN1'; + put '* metadata - so in this case, decode and stream byte by byte.'; + put '* */'; + put '%if &type=GIF or &type=PNG or &type=JPG or &type=JPEG or &type=ICO or &type=MP3'; + put 'or &type=WAV or &type=OGG or &type=WOFF or &type=WOFF2 or &type=TTF or &type=MP4'; + put 'or &type=SVG64'; + put '%then %do;'; + put 'data _null_;'; + put 'length filein 8 fileout 8;'; + put 'filein = fopen("&fref",''I'',4,''B'');'; + put 'fileout = fopen("_webout",''A'',1,''B'');'; + put 'char = ''20''x;'; + put 'do while(fread(filein)=0);'; + put 'length raw $4 ;'; + put 'do i=1 to 4;'; + put 'rc=fget(filein,char,1);'; + put 'substr(raw,i,1)=char;'; + put 'end;'; + put 'rc = fput(fileout, input(raw,$base64X4.));'; + put 'rc = fwrite(fileout);'; + put 'end;'; + put 'rc = fclose(filein);'; + put 'rc = fclose(fileout);'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%put streaming to _webout;'; + put 'data _null_;'; + put 'infile &fref lrecl=1 recfm=n;'; + put 'file _webout mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put '%end;'; + put '%mend sasjsout;'; + put 'filename sasjs temp lrecl=99999999;'; + put 'data _null_;'; + put 'file sasjs;'; + put 'put ''dmFyICRBdD1PYmplY3QuZGVmaW5lUHJvcGVydHkscUF0PU9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzLGV5dD1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyxGTGU9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyx0eXQ9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSxu''@;'; + put 'put ''eXQ9T2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZSxNTT1NYXRoLnBvdyxITGU9KFhlLEplLEwpPT5KZSBpbiBYZT8kQXQoWGUsSmUse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOkx9KTpYZVtKZV09TCxncz0oWGUsSmUpPT57Zm9y''@;'; + put 'put ''KHZhciBMIGluIEplfHwoSmU9e30pKXR5dC5jYWxsKEplLEwpJiZITGUoWGUsTCxKZVtMXSk7aWYoRkxlKWZvcih2YXIgTCBvZiBGTGUoSmUpKW55dC5jYWxsKEplLEwpJiZITGUoWGUsTCxKZVtMXSk7cmV0dXJuIFhlfSxHej0oWGUsSmUpPT5xQXQoWGUsZXl0KEplKSk7KHNlbGYud2VicGFj''@;'; + put 'put ''a0NodW5rZGF0YWNvbnRyb2xsZXI9c2VsZi53ZWJwYWNrQ2h1bmtkYXRhY29udHJvbGxlcnx8W10pLnB1c2goW1sxNzldLHs1Njc3MTpmdW5jdGlvbihYZSl7WGUuZXhwb3J0cz1mdW5jdGlvbihKZSl7dmFyIEw9e307ZnVuY3Rpb24gbWUoQil7aWYoTFtCXSlyZXR1cm4gTFtCXS5leHBvcnRz''@;'; + put 'put ''O3ZhciBFPUxbQl09e2k6QixsOiExLGV4cG9ydHM6e319O3JldHVybiBKZVtCXS5jYWxsKEUuZXhwb3J0cyxFLEUuZXhwb3J0cyxtZSksRS5sPSEwLEUuZXhwb3J0c31yZXR1cm4gbWUubT1KZSxtZS5jPUwsbWUuZD1mdW5jdGlvbihCLEUsTWUpe21lLm8oQixFKXx8T2JqZWN0LmRlZmluZVBy''@;'; + put 'put ''b3BlcnR5KEIsRSx7ZW51bWVyYWJsZTohMCxnZXQ6TWV9KX0sbWUucj1mdW5jdGlvbihCKXsidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmU3ltYm9sLnRvU3RyaW5nVGFnJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoQixTeW1ib2wudG9TdHJpbmdUYWcse3ZhbHVlOiJNb2R1bGUifSksT2Jq''@;'; + put 'put ''ZWN0LmRlZmluZVByb3BlcnR5KEIsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pfSxtZS50PWZ1bmN0aW9uKEIsRSl7aWYoMSZFJiYoQj1tZShCKSksOCZFfHw0JkUmJiJvYmplY3QiPT10eXBlb2YgQiYmQiYmQi5fX2VzTW9kdWxlKXJldHVybiBCO3ZhciBNZT1PYmplY3QuY3JlYXRlKG51bGwp''@;'; + put 'put ''O2lmKG1lLnIoTWUpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShNZSwiZGVmYXVsdCIse2VudW1lcmFibGU6ITAsdmFsdWU6Qn0pLDImRSYmInN0cmluZyIhPXR5cGVvZiBCKWZvcih2YXIgVSBpbiBCKW1lLmQoTWUsVSxmdW5jdGlvbihRKXtyZXR1cm4gQltRXX0uYmluZChudWxsLFUpKTtyZXR1''@;'; + put 'put ''cm4gTWV9LG1lLm49ZnVuY3Rpb24oQil7dmFyIEU9QiYmQi5fX2VzTW9kdWxlP2Z1bmN0aW9uKCl7cmV0dXJuIEIuZGVmYXVsdH06ZnVuY3Rpb24oKXtyZXR1cm4gQn07cmV0dXJuIG1lLmQoRSwiYSIsRSksRX0sbWUubz1mdW5jdGlvbihCLEUpe3JldHVybiBPYmplY3QucHJvdG90eXBlLmhh''@;'; + put 'put ''c093blByb3BlcnR5LmNhbGwoQixFKX0sbWUucD0iIixtZShtZS5zPSIuL3Byb2plY3RzL2ljb25zL3NyYy9pbmRleC50cyIpfSh7Ii4vcHJvamVjdHMvaWNvbnMvc3JjL2Nsci1pY29ucy1hcGkudHMiOmZ1bmN0aW9uKEplLEwsbWUpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVy''@;'; + put 'put ''dHkoTCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksTC5DbGFyaXR5SWNvbnNBcGk9dm9pZCAwO3ZhciBCPW1lKCIuL3Byb2plY3RzL2ljb25zL3NyYy91dGlscy9zaGFwZS10ZW1wbGF0ZS1vYnNlcnZlci50cyIpLEU9e30sTWU9ZnVuY3Rpb24oKXtmdW5jdGlvbiBVKCl7fXJldHVybiBPYmpl''@;'; + put 'put ''Y3QuZGVmaW5lUHJvcGVydHkoVSwiaW5zdGFuY2UiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gVS5zaW5nbGVJbnN0YW5jZXx8KFUuc2luZ2xlSW5zdGFuY2U9bmV3IFUpLFUuc2luZ2xlSW5zdGFuY2V9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksVS5wcm90b3R5cGUudmFsaWRh''@;'; + put 'put ''dGVOYW1lPWZ1bmN0aW9uKFEpe2lmKDA9PT1RLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoIlNoYXBlIG5hbWUgb3IgYWxpYXMgbXVzdCBiZSBhIG5vbi1lbXB0eSBzdHJpbmchIik7aWYoL1xzLy50ZXN0KFEpKXRocm93IG5ldyBFcnJvcigiU2hhcGUgbmFtZSBvciBhbGlhcyBtdXN0IG5vdCBj''@;'; + put 'put ''b250YWluIGFueSB3aGl0ZXNwYWNlIGNoYXJhY3RlcnMhIik7cmV0dXJuITB9LFUucHJvdG90eXBlLm5vcm1hbGl6ZVNoYXBlTmFtZT1mdW5jdGlvbihRKXtyZXR1cm4gUS50b0xvd2VyQ2FzZSgpfSxVLnByb3RvdHlwZS5zZXRJY29uVGVtcGxhdGU9ZnVuY3Rpb24oUSxaKXt2YXIgaWU9Wi50''@;'; + put 'put ''cmltKCk7dGhpcy52YWxpZGF0ZU5hbWUoUSkmJihRPXRoaXMubm9ybWFsaXplU2hhcGVOYW1lKFEpLEVbUV0mJmRlbGV0ZSBFW1FdLEVbUV09aWUsQi5TaGFwZVRlbXBsYXRlT2JzZXJ2ZXIuaW5zdGFuY2UuZW1pdENoYW5nZXMoUSxpZSkpfSxVLnByb3RvdHlwZS5zZXRJY29uQWxpYXNlcz1m''@;'; + put 'put ''dW5jdGlvbihRLFosaWUpe2Zvcih2YXIgYWU9MCxZPWllO2FlPFkubGVuZ3RoO2FlKyspe3ZhciBXPVlbYWVdO3RoaXMudmFsaWRhdGVOYW1lKFcpJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoUSxXLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gUVtaXX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFi''@;'; + put 'put ''bGU6ITB9KX19LFUucHJvdG90eXBlLmFkZD1mdW5jdGlvbihRKXtpZigib2JqZWN0IiE9dHlwZW9mIFEpdGhyb3cgbmV3IEVycm9yKCdUaGUgYXJndW1lbnQgbXVzdCBiZSBhbiBvYmplY3QgbGl0ZXJhbCBwYXNzZWQgaW4gdGhlIGZvbGxvd2luZyBwYXR0ZXJuOlxuICAgICAgICAgICAgICAg''@;'; + put 'put ''IHsgInNoYXBlLW5hbWUiOiAic2hhcGUtdGVtcGxhdGUiIH0nKTtmb3IodmFyIFogaW4gUSlRLmhhc093blByb3BlcnR5KFopJiZ0aGlzLnNldEljb25UZW1wbGF0ZShaLFFbWl0pfSxVLnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24oUSl7cmV0dXJuISFFW3RoaXMubm9ybWFsaXplU2hhcGVOYW1l''@;'; + put 'put ''KFEpXX0sVS5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKFEpe2lmKCFRKXJldHVybiBFO2lmKCJzdHJpbmciIT10eXBlb2YgUSl0aHJvdyBuZXcgVHlwZUVycm9yKCJPbmx5IHN0cmluZyBhcmd1bWVudCBpcyBhbGxvd2VkIGluIHRoaXMgbWV0aG9kLiIpO3JldHVybiBFW3RoaXMubm9ybWFsaXpl''@;'; + put 'put ''U2hhcGVOYW1lKFEpXX0sVS5wcm90b3R5cGUuYWxpYXM9ZnVuY3Rpb24oUSl7aWYoIm9iamVjdCIhPXR5cGVvZiBRKXRocm93IG5ldyBFcnJvcignVGhlIGFyZ3VtZW50IG11c3QgYmUgYW4gb2JqZWN0IGxpdGVyYWwgcGFzc2VkIGluIHRoZSBmb2xsb3dpbmcgcGF0dGVybjpcbiAgICAgICAg''@;'; + put 'put ''ICAgICAgICB7ICJzaGFwZS1uYW1lIjogWyJhbGlhcy1uYW1lIiwgLi4uXSB9Jyk7Zm9yKHZhciBaIGluIFEpaWYoUS5oYXNPd25Qcm9wZXJ0eShaKSl7aWYoIUUuaGFzT3duUHJvcGVydHkoWikpdGhyb3cgbmV3IEVycm9yKCdBbiBpY29uICInK1orIlwiIHlvdSBhcmUgdHJ5aW5nIHRvIHNl''@;'; + put 'put ''dCBhbGlhc2VzIHRvIGRvZXNuJ3QgZXhpc3QgaW4gdGhlIENsYXJpdHkgSWNvbnMgc2V0cyEiKTt0aGlzLnNldEljb25BbGlhc2VzKEUsWixRW1pdKX19LFV9KCk7TC5DbGFyaXR5SWNvbnNBcGk9TWV9LCIuL3Byb2plY3RzL2ljb25zL3NyYy9jbHItaWNvbnMtZWxlbWVudC50cyI6ZnVuY3Rp''@;'; + put 'put ''b24oSmUsTCxtZSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShMLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxMLkNsYXJpdHlJY29uRWxlbWVudD12b2lkIDA7dmFyIEI9bWUoIi4vcHJvamVjdHMvaWNvbnMvc3JjL2Nsci1pY29ucy1hcGkudHMiKSxFPW1lKCIuL3Byb2pl''@;'; + put 'put ''Y3RzL2ljb25zL3NyYy91dGlscy9zaGFwZS10ZW1wbGF0ZS1vYnNlcnZlci50cyIpLE1lPTAsVT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7VS5jbGFzc05hbWU9ImlzLW9mZi1zY3JlZW4iO3ZhciBRPWZ1bmN0aW9uKCl7cmV0dXJuIEhUTUxFbGVtZW50LmFwcGx5KHRoaXMsYXJn''@;'; + put 'put ''dW1lbnRzKX07ZnVuY3Rpb24gWigpe3ZhciBpZT1RLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gaWUuY2xySWNvblVuaXFJZD0iX2Nscl9pY29uXyIrTWUsTWUrKyxpZX0ib2JqZWN0Ij09dHlwZW9mIFJlZmxlY3QmJihRPWZ1bmN0aW9uKCl7cmV0dXJuIFJlZmxlY3QuY29uc3RydWN0''@;'; + put 'put ''KEhUTUxFbGVtZW50LGFyZ3VtZW50cyx0aGlzLmNvbnN0cnVjdG9yKX0pLEwuQ2xhcml0eUljb25FbGVtZW50PVosWi5vYnNlcnZlZEF0dHJpYnV0ZXM9WyJzaGFwZSIsInNpemUiLCJ0aXRsZSJdLChaLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKEhUTUxFbGVtZW50LnByb3RvdHlwZSx7Y29u''@;'; + put 'put ''c3RydWN0b3I6e2NvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpafX0pKS5jb25zdHJ1Y3Rvcj1aLFoucHJvdG90eXBlLl9hcHBlbmRDdXN0b21UaXRsZT1mdW5jdGlvbigpe3ZhciBpZT1VLmNsb25lTm9kZSghMSk7aWUuaWQ9dGhpcy5jbHJJY29uVW5pcUlkLGllLnRleHRDb250''@;'; + put 'put ''ZW50PXRoaXMuY3VycmVudFRpdGxlQXR0clZhbCx0aGlzLmFwcGVuZENoaWxkKGllKX0sWi5wcm90b3R5cGUuX3NldEljb25TaXplPWZ1bmN0aW9uKGllKXshTnVtYmVyKGllKXx8TnVtYmVyKGllKTwwPyh0aGlzLnN0eWxlLndpZHRoPW51bGwsdGhpcy5zdHlsZS5oZWlnaHQ9bnVsbCk6KHRo''@;'; + put 'put ''aXMuc3R5bGUud2lkdGg9aWUrInB4Iix0aGlzLnN0eWxlLmhlaWdodD1pZSsicHgiKX0sWi5wcm90b3R5cGUuX25vcm1hbGl6ZVNoYXBlPWZ1bmN0aW9uKGllKXtyZXR1cm4gaWUuc3BsaXQoL1xzLylbMF0udG9Mb3dlckNhc2UoKX0sWi5wcm90b3R5cGUuY29ubmVjdGVkQ2FsbGJhY2s9ZnVu''@;'; + put 'put ''Y3Rpb24oKXt2YXIgaWU9dGhpcztpZih0aGlzLmdldEF0dHJpYnV0ZSgicm9sZSIpfHx0aGlzLnNldEF0dHJpYnV0ZSgicm9sZSIsIm5vbmUiKSx0aGlzLmhhc0F0dHJpYnV0ZSgic2l6ZSIpKXt2YXIgYWU9dGhpcy5nZXRBdHRyaWJ1dGUoInNpemUiKTt0aGlzLmN1cnJlbnRTaXplQXR0clZh''@;'; + put 'put ''bCE9PWFlJiYodGhpcy5jdXJyZW50U2l6ZUF0dHJWYWw9YWUsdGhpcy5fc2V0SWNvblNpemUoYWUpKX1pZih0aGlzLmhhc0F0dHJpYnV0ZSgic2hhcGUiKSl7dmFyIFk9dGhpcy5fbm9ybWFsaXplU2hhcGUodGhpcy5nZXRBdHRyaWJ1dGUoInNoYXBlIikpO2lmKHRoaXMuX3NoYXBlVGVtcGxh''@;'; + put 'put ''dGVTdWJzY3JpcHRpb249RS5TaGFwZVRlbXBsYXRlT2JzZXJ2ZXIuaW5zdGFuY2Uuc3Vic2NyaWJlVG8oWSxmdW5jdGlvbihlZSl7aWUuX2luamVjdFRlbXBsYXRlKGVlKX0pLHRoaXMuY3VycmVudFNoYXBlQXR0clZhbD1ZLCFCLkNsYXJpdHlJY29uc0FwaS5pbnN0YW5jZS5oYXModGhpcy5j''@;'; + put 'put ''dXJyZW50U2hhcGVBdHRyVmFsKSlyZXR1cm4gdm9pZCB0aGlzLl9pbmplY3RFcnJvclRlbXBsYXRlKCk7dmFyIFc9Qi5DbGFyaXR5SWNvbnNBcGkuaW5zdGFuY2UuZ2V0KHRoaXMuY3VycmVudFNoYXBlQXR0clZhbCk7aWYoVz09PXRoaXMuY3VycmVudFNoYXBlVGVtcGxhdGUpcmV0dXJuO3Ro''@;'; + put 'put ''aXMuY3VycmVudFNoYXBlVGVtcGxhdGU9V31pZih0aGlzLmhhc0F0dHJpYnV0ZSgidGl0bGUiKSl7dmFyIE49dGhpcy5nZXRBdHRyaWJ1dGUoInRpdGxlIik7aWYodGhpcy5jdXJyZW50VGl0bGVBdHRyVmFsIT09TiYmKHRoaXMuY3VycmVudFRpdGxlQXR0clZhbD1OKSwhdGhpcy5jdXJyZW50''@;'; + put 'put ''U2hhcGVBdHRyVmFsKXJldHVybn10aGlzLl9pbmplY3RUZW1wbGF0ZSgpfSxaLnByb3RvdHlwZS5hdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2s9ZnVuY3Rpb24oaWUsYWUsWSl7dmFyIFc9dGhpcztpZigic2l6ZSI9PT1pZSYmdGhpcy5fc2V0SWNvblNpemUoWSksInNoYXBlIj09PWllKXtpZih0''@;'; + put 'put ''aGlzLmN1cnJlbnRTaGFwZUF0dHJWYWw9dGhpcy5fbm9ybWFsaXplU2hhcGUoWSksdGhpcy5fc2hhcGVUZW1wbGF0ZVN1YnNjcmlwdGlvbiYmKHRoaXMuX3NoYXBlVGVtcGxhdGVTdWJzY3JpcHRpb24oKSx0aGlzLl9zaGFwZVRlbXBsYXRlU3Vic2NyaXB0aW9uPUUuU2hhcGVUZW1wbGF0ZU9i''@;'; + put 'put ''c2VydmVyLmluc3RhbmNlLnN1YnNjcmliZVRvKHRoaXMuY3VycmVudFNoYXBlQXR0clZhbCxmdW5jdGlvbihOKXtXLl9pbmplY3RUZW1wbGF0ZShOKX0pKSwhQi5DbGFyaXR5SWNvbnNBcGkuaW5zdGFuY2UuaGFzKHRoaXMuY3VycmVudFNoYXBlQXR0clZhbCkpcmV0dXJuIHZvaWQgdGhpcy5f''@;'; + put 'put ''aW5qZWN0RXJyb3JUZW1wbGF0ZSgpO3RoaXMuY3VycmVudFNoYXBlVGVtcGxhdGU9Qi5DbGFyaXR5SWNvbnNBcGkuaW5zdGFuY2UuZ2V0KHRoaXMuY3VycmVudFNoYXBlQXR0clZhbCl9InRpdGxlIj09PWllJiYodGhpcy5jdXJyZW50VGl0bGVBdHRyVmFsPVksIXRoaXMuY3VycmVudFNoYXBl''@;'; + put 'put ''QXR0clZhbCl8fHRoaXMuX2luamVjdFRlbXBsYXRlKCl9LFoucHJvdG90eXBlLmRpc2Nvbm5lY3RlZENhbGxiYWNrPWZ1bmN0aW9uKCl7dGhpcy5fc2hhcGVUZW1wbGF0ZVN1YnNjcmlwdGlvbiYmdGhpcy5fc2hhcGVUZW1wbGF0ZVN1YnNjcmlwdGlvbigpfSxaLnByb3RvdHlwZS5fc2V0QXJp''@;'; + put 'put ''YUxhYmVsbGVkQnk9ZnVuY3Rpb24oKXt2YXIgaWU9dGhpcy5nZXRBdHRyaWJ1dGUoImFyaWEtbGFiZWxsZWRieSIpLFk9dGhpcy5xdWVyeVNlbGVjdG9yKCJzdmciKXx8dGhpcztpZT9pZSYmaWUuaW5kZXhPZih0aGlzLmNsckljb25VbmlxSWQpPDAmJlkuc2V0QXR0cmlidXRlKCJhcmlhLWxh''@;'; + put 'put ''YmVsbGVkYnkiLGllKyIgIit0aGlzLmNsckljb25VbmlxSWQpOlkuc2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsbGVkYnkiLHRoaXMuY2xySWNvblVuaXFJZCl9LFoucHJvdG90eXBlLl9pbmplY3RUZW1wbGF0ZT1mdW5jdGlvbihpZSl7aWUmJmllIT09dGhpcy5jdXJyZW50U2hhcGVUZW1wbGF0''@;'; + put 'put ''ZSYmKHRoaXMuY3VycmVudFNoYXBlVGVtcGxhdGU9aWUpLHRoaXMuaW5uZXJIVE1MPXRoaXMuY3VycmVudFNoYXBlVGVtcGxhdGUsdGhpcy5jdXJyZW50VGl0bGVBdHRyVmFsJiYodGhpcy5fc2V0QXJpYUxhYmVsbGVkQnkoKSx0aGlzLl9hcHBlbmRDdXN0b21UaXRsZSgpKX0sWi5wcm90b3R5''@;'; + put 'put ''cGUuX2luamVjdEVycm9yVGVtcGxhdGU9ZnVuY3Rpb24oKXt0aGlzLmN1cnJlbnRTaGFwZVRlbXBsYXRlPUIuQ2xhcml0eUljb25zQXBpLmluc3RhbmNlLmdldCgiZXJyb3IiKSx0aGlzLl9pbmplY3RUZW1wbGF0ZSgpfX0sIi4vcHJvamVjdHMvaWNvbnMvc3JjL2luZGV4LnRzIjpmdW5jdGlv''@;'; + put 'put ''bihKZSxMLG1lKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KEwsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLEwuQ2xhcml0eUljb25zPXZvaWQgMDt2YXIgQj1tZSgiLi9wcm9qZWN0cy9pY29ucy9zcmMvY2xyLWljb25zLWFwaS50cyIpLEU9bWUoIi4vcHJvamVjdHMvaWNv''@;'; + put 'put ''bnMvc3JjL2Nsci1pY29ucy1lbGVtZW50LnRzIiksTWU9bWUoIi4vcHJvamVjdHMvaWNvbnMvc3JjL3NoYXBlcy9jb3JlLXNoYXBlcy50cyIpLFU9Qi5DbGFyaXR5SWNvbnNBcGkuaW5zdGFuY2U7TC5DbGFyaXR5SWNvbnM9VSxVLmFkZChNZS5Db3JlU2hhcGVzKSwidW5kZWZpbmVkIiE9dHlw''@;'; + put 'put ''ZW9mIHdpbmRvdyYmKHdpbmRvdy5oYXNPd25Qcm9wZXJ0eSgiQ2xhcml0eUljb25zIil8fCh3aW5kb3cuQ2xhcml0eUljb25zPVUpLGN1c3RvbUVsZW1lbnRzLmdldCgiY2xyLWljb24iKXx8Y3VzdG9tRWxlbWVudHMuZGVmaW5lKCJjbHItaWNvbiIsRS5DbGFyaXR5SWNvbkVsZW1lbnQpKX0s''@;'; + put 'put ''Ii4vcHJvamVjdHMvaWNvbnMvc3JjL3NoYXBlcy9jb3JlLXNoYXBlcy50cyI6ZnVuY3Rpb24oSmUsTCxtZSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShMLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxMLkNvcmVTaGFwZXM9TC5DbHJTaGFwZUFycm93PUwuQ2xyU2hhcGVT''@;'; + put 'put ''dGVwRm9yd2FyZDI9TC5DbHJTaGFwZUV5ZUhpZGU9TC5DbHJTaGFwZUV5ZT1MLkNsclNoYXBlRXZlbnQ9TC5DbHJTaGFwZUNhbGVuZGFyPUwuQ2xyU2hhcGVBbmdsZURvdWJsZT1MLkNsclNoYXBlVmlld0NvbHVtbnM9TC5DbHJTaGFwZVNlYXJjaD1MLkNsclNoYXBlVm1CdWc9TC5DbHJTaGFw''@;'; + put 'put ''ZUZpbHRlckdyaWRDaXJjbGU9TC5DbHJTaGFwZUZpbHRlckdyaWQ9TC5DbHJTaGFwZUVsbGlwc2lzVmVydGljYWw9TC5DbHJTaGFwZUVsbGlwc2lzSG9yaXpvbnRhbD1MLkNsclNoYXBlQ2xvdWQ9TC5DbHJTaGFwZUltYWdlPUwuQ2xyU2hhcGVCZWxsPUwuQ2xyU2hhcGVGb2xkZXJPcGVuPUwu''@;'; + put 'put ''Q2xyU2hhcGVGb2xkZXI9TC5DbHJTaGFwZUFuZ2xlPUwuQ2xyU2hhcGVVc2VyPUwuQ2xyU2hhcGVCYXJzPUwuQ2xyU2hhcGVIZWxwSW5mbz1MLkNsclNoYXBlV2FybmluZ1N0YW5kYXJkPUwuQ2xyU2hhcGVFcnJvclN0YW5kYXJkPUwuQ2xyU2hhcGVTdWNjZXNzU3RhbmRhcmQ9TC5DbHJTaGFw''@;'; + put 'put ''ZUluZm9TdGFuZGFyZD1MLkNsclNoYXBlSW5mb0NpcmNsZT1MLkNsclNoYXBlQ2hlY2tDaXJjbGU9TC5DbHJTaGFwZUV4Y2xhbWF0aW9uQ2lyY2xlPUwuQ2xyU2hhcGVFeGNsYW1hdGlvblRyaWFuZ2xlPUwuQ2xyU2hhcGVUaW1lcz1MLkNsclNoYXBlQ2hlY2s9TC5DbHJTaGFwZUNvZz1MLkNs''@;'; + put 'put ''clNoYXBlSG9tZT1MLkNsclNoYXBlVW5rbm93blN0YXR1cz12b2lkIDA7dmFyIEI9bWUoIi4vcHJvamVjdHMvaWNvbnMvc3JjL3V0aWxzL2Rlc2NyaXB0b3ItY29uZmlnLnRzIiksRT1tZSgiLi9wcm9qZWN0cy9pY29ucy9zcmMvdXRpbHMvc3ZnLXRhZy1nZW5lcmF0b3IudHMiKTtMLkNsclNo''@;'; + put 'put ''YXBlVW5rbm93blN0YXR1cz0oMCxFLmNsckljb25TVkcpKCc8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBjeD0iMTcuNTgiIGN5PSIyNi4yMyIgcj0iMS40Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xy''@;'; + put 'put ''LWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0yNC43LDEzYTUuMTgsNS4xOCwwLDAsMC0yLjE2LTMuNTYsNy4yNiw3LjI2LDAsMCwwLTUuNzEtMS4wOUExMS4zNCwxMS4zNCwwLDAsMCwxMiwxMC40NCwxLDEsMCwxLDAsMTMuMjYsMTJhOS4zMiw5LjMyLDAsMCwxLDMuOTQtMS43Miw1LjI5LDUuMjks''@;'; + put 'put ''MCwwLDEsNC4xNi43NCwzLjIxLDMuMjEsMCwwLDEsMS4zNSwyLjE5Yy4zMywyLjY5LTMuMTksMy43NS01LjMyLDQuMTRsLS44Mi4xNXY0LjM2YTEsMSwwLDAsMCwyLDBWMTkuMTdDMjQuNjEsMTcuNzksMjQuODgsMTQuNDEsMjQuNywxM1oiLz4nKSxMLkNsclNoYXBlSG9tZT0oMCxFLmNscklj''@;'; + put 'put ''b25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMzLjcxLDE3LjI5bC0xNS0xNWExLDEsMCwwLDAtMS40MSwwbC0xNSwxNWExLDEsMCwwLDAsMS40MSwxLjQxTDE4LDQuNDEsMzIuMjksMTguNzFhMSwxLDAsMCwwLDEuNDEtMS40MVoi''@;'; + put 'put ''Lz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTI4LDMyaC01VjIySDEzVjMySDhWMThMNiwyMFYzMmEyLDIsMCwwLDAsMiwyaDdWMjRoNlYzNGg3YTIsMiwwLDAsMCwyLTJWMTkuNzZsLTItMloiLz5cbiAgICAg''@;'; + put 'put ''ICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzMsMTlhMSwxLDAsMCwxLS43MS0uMjlMMTgsNC40MSwzLjcxLDE4LjcxYTEsMSwwLDAsMS0xLjQxLTEuNDFsMTUtMTVhMSwxLDAsMCwxLDEuNDEsMGwxNSwxNUExLDEsMCwwLDEsMzMs''@;'; + put 'put ''MTlaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgZD0iTTE4LDcuNzksNiwxOS44M1YzMmEyLDIsMCwwLDAsMiwyaDdWMjRoNlYzNGg3YTIsMiwwLDAsMCwyLTJWMTkuNzZaIi8+JyksTC5DbHJTaGFwZUNvZz0oMCxFLmNs''@;'; + put 'put ''ckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTE4LjEsMTFjLTMuOSwwLTcsMy4xLTcsN3MzLjEsNyw3LDdjMy45LDAsNy0zLjEsNy03UzIyLDExLDE4LjEsMTF6IE0xOC4xLDIzYy0yLjgsMC01LTIuMi01LTVzMi4yLTUsNS01''@;'; + put 'put ''YzIuOCwwLDUsMi4yLDUsNVMyMC45LDIzLDE4LjEsMjN6Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0zMi44LDE0LjdMMzAsMTMuOGwtMC42LTEuNWwxLjQtMi42YzAuMy0wLjYsMC4yLTEuNC0wLjMtMS45''@;'; + put 'put ''bC0yLjQtMi40Yy0wLjUtMC41LTEuMy0wLjYtMS45LTAuM2wtMi42LDEuNGwtMS41LTAuNmwtMC45LTIuOEMyMSwyLjUsMjAuNCwyLDE5LjcsMmgtMy40Yy0wLjcsMC0xLjMsMC41LTEuNCwxLjJMMTQsNmMtMC42LDAuMS0xLjEsMC4zLTEuNiwwLjZMOS44LDUuMkM5LjIsNC45LDguNCw1LDcu''@;'; + put 'put ''OSw1LjVMNS41LDcuOUM1LDguNCw0LjksOS4yLDUuMiw5LjhsMS4zLDIuNWMtMC4yLDAuNS0wLjQsMS4xLTAuNiwxLjZsLTIuOCwwLjlDMi41LDE1LDIsMTUuNiwyLDE2LjN2My40YzAsMC43LDAuNSwxLjMsMS4yLDEuNUw2LDIyLjFsMC42LDEuNWwtMS40LDIuNmMtMC4zLDAuNi0wLjIsMS40''@;'; + put 'put ''LDAuMywxLjlsMi40LDIuNGMwLjUsMC41LDEuMywwLjYsMS45LDAuM2wyLjYtMS40bDEuNSwwLjZsMC45LDIuOWMwLjIsMC42LDAuOCwxLjEsMS41LDEuMWgzLjRjMC43LDAsMS4zLTAuNSwxLjUtMS4xbDAuOS0yLjlsMS41LTAuNmwyLjYsMS40YzAuNiwwLjMsMS40LDAuMiwxLjktMC4zbDIu''@;'; + put 'put ''NC0yLjRjMC41LTAuNSwwLjYtMS4zLDAuMy0xLjlsLTEuNC0yLjZsMC42LTEuNWwyLjktMC45YzAuNi0wLjIsMS4xLTAuOCwxLjEtMS41di0zLjRDMzQsMTUuNiwzMy41LDE0LjksMzIuOCwxNC43eiBNMzIsMTkuNGwtMy42LDEuMUwyOC4zLDIxYy0wLjMsMC43LTAuNiwxLjQtMC45LDIuMWwt''@;'; + put 'put ''MC4zLDAuNWwxLjgsMy4zbC0yLDJsLTMuMy0xLjhsLTAuNSwwLjNjLTAuNywwLjQtMS40LDAuNy0yLjEsMC45bC0wLjUsMC4xTDE5LjQsMzJoLTIuOGwtMS4xLTMuNkwxNSwyOC4zYy0wLjctMC4zLTEuNC0wLjYtMi4xLTAuOWwtMC41LTAuM2wtMy4zLDEuOGwtMi0ybDEuOC0zLjNsLTAuMy0w''@;'; + put 'put ''LjVjLTAuNC0wLjctMC43LTEuNC0wLjktMi4xbC0wLjEtMC41TDQsMTkuNHYtMi44bDMuNC0xbDAuMi0wLjVjMC4yLTAuOCwwLjUtMS41LDAuOS0yLjJsMC4zLTAuNUw3LjEsOS4xbDItMmwzLjIsMS44bDAuNS0wLjNjMC43LTAuNCwxLjQtMC43LDIuMi0wLjlsMC41LTAuMkwxNi42LDRoMi44''@;'; + put 'put ''bDEuMSwzLjVMMjEsNy43YzAuNywwLjIsMS40LDAuNSwyLjEsMC45bDAuNSwwLjNsMy4zLTEuOGwyLDJsLTEuOCwzLjNsMC4zLDAuNWMwLjQsMC43LDAuNywxLjQsMC45LDIuMWwwLjEsMC41bDMuNiwxLjFWMTkuNHoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0''@;'; + put 'put ''bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0xMS4xLDE4YzAsMy45LDMuMSw3LDcsN2MzLjksMCw3LTMuMSw3LTdzLTMuMS03LTctN0MxNC4yLDExLDExLjEsMTQuMSwxMS4xLDE4eiBNMjMuMSwxOGMwLDIuOC0yLjIsNS01LDVjLTIuOCwwLTUtMi4yLTUt''@;'; + put 'put ''NXMyLjItNSw1LTVDMjAuOSwxMywyMy4xLDE1LjIsMjMuMSwxOHoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiIGQ9Ik0zMi44LDE0LjdMMzAsMTMuOGwtMC4xLTAuM2MtMC44LDAtMS42''@;'; + put 'put ''LTAuMi0yLjQtMC40YzAuMywwLjYsMC42LDEuMywwLjgsMS45bDAuMSwwLjVsMy42LDEuMXYyLjhsLTMuNiwxLjFMMjguMywyMWMtMC4zLDAuNy0wLjYsMS40LTAuOSwyLjFsLTAuMywwLjVsMS44LDMuM2wtMiwybC0zLjMtMS44bC0wLjUsMC4zYy0wLjcsMC40LTEuNCwwLjctMi4xLDAuOWwt''@;'; + put 'put ''MC41LDAuMUwxOS40LDMyaC0yLjhsLTEuMS0zLjZMMTUsMjguM2MtMC43LTAuMy0xLjQtMC42LTIuMS0wLjlsLTAuNS0wLjNsLTMuMywxLjhsLTItMmwxLjgtMy4zbC0wLjMtMC41Yy0wLjQtMC43LTAuNy0xLjQtMC45LTIuMWwtMC4xLTAuNUw0LDE5LjR2LTIuOGwzLjQtMWwwLjItMC41YzAu''@;'; + put 'put ''Mi0wLjgsMC41LTEuNSwwLjktMi4ybDAuMy0wLjVMNy4xLDkuMWwyLTJsMy4yLDEuOGwwLjUtMC4zYzAuNy0wLjQsMS40LTAuNywyLjItMC45bDAuNS0wLjJMMTYuNiw0aDIuOGwxLjEsMy41TDIxLDcuN2MwLjcsMC4yLDEuMywwLjUsMS45LDAuOGMtMC4zLTAuOC0wLjQtMS42LTAuNC0yLjVs''@;'; + put 'put ''LTAuNC0wLjJsLTAuOS0yLjhDMjEsMi41LDIwLjQsMiwxOS43LDJoLTMuNGMtMC43LDAtMS4zLDAuNS0xLjQsMS4yTDE0LDZjLTAuNiwwLjEtMS4xLDAuMy0xLjYsMC42TDkuOCw1LjJDOS4yLDQuOSw4LjQsNSw3LjksNS41TDUuNSw3LjlDNSw4LjQsNC45LDkuMiw1LjIsOS44bDEuMywyLjVj''@;'; + put 'put ''LTAuMiwwLjUtMC40LDEuMS0wLjYsMS42bC0yLjgsMC45QzIuNSwxNSwyLDE1LjYsMiwxNi4zdjMuNGMwLDAuNywwLjUsMS4zLDEuMiwxLjVMNiwyMi4xbDAuNiwxLjVsLTEuNCwyLjZjLTAuMywwLjYtMC4yLDEuNCwwLjMsMS45bDIuNCwyLjRjMC41LDAuNSwxLjMsMC42LDEuOSwwLjNsMi42''@;'; + put 'put ''LTEuNGwxLjUsMC42bDAuOSwyLjljMC4yLDAuNiwwLjgsMS4xLDEuNSwxLjFoMy40YzAuNywwLDEuMy0wLjUsMS41LTEuMWwwLjktMi45bDEuNS0wLjZsMi42LDEuNGMwLjYsMC4zLDEuNCwwLjIsMS45LTAuM2wyLjQtMi40YzAuNS0wLjUsMC42LTEuMywwLjMtMS45bC0xLjQtMi42bDAuNi0x''@;'; + put 'put ''LjVsMi45LTAuOWMwLjYtMC4yLDEuMS0wLjgsMS4xLTEuNXYtMy40QzM0LDE1LjYsMzMuNSwxNC45LDMyLjgsMTQuN3oiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCBjbHItaS1iYWRn''@;'; + put 'put ''ZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiBkPSJNMzMuNywxNS40aC01LjN2MC4xbDMuNiwxLjF2Mi44bC0zLjYsMS4xTDI4LjMsMjFjLTAu''@;'; + put 'put ''MywwLjctMC42LDEuNC0wLjksMi4xbC0wLjMsMC41bDEuOCwzLjNsLTIsMmwtMy4zLTEuOGwtMC41LDAuM2MtMC43LDAuNC0xLjQsMC43LTIuMSwwLjlsLTAuNSwwLjFMMTkuNCwzMmgtMi44bC0xLjEtMy42TDE1LDI4LjNjLTAuNy0wLjMtMS40LTAuNi0yLjEtMC45bC0wLjUtMC4zbC0zLjMs''@;'; + put 'put ''MS44bC0yLTJsMS44LTMuM2wtMC4zLTAuNWMtMC40LTAuNy0wLjctMS40LTAuOS0yLjFsLTAuMS0wLjVMNCwxOS40di0yLjhsMy40LTFsMC4yLTAuNWMwLjItMC44LDAuNS0xLjUsMC45LTIuMmwwLjMtMC41TDcuMSw5LjFsMi0ybDMuMiwxLjhsMC41LTAuM2MwLjctMC40LDEuNC0wLjcsMi4y''@;'; + put 'put ''LTAuOWwwLjUtMC4yTDE2LjYsNGgyLjhsMS4xLDMuNGwxLjQtMi4zbC0wLjYtMkMyMSwyLjQsMjAuNCwyLDE5LjcsMmgtMy40Yy0wLjcsMC0xLjMsMC41LTEuNCwxLjJMMTQsNmMtMC42LDAuMS0xLjEsMC4zLTEuNiwwLjZMOS44LDUuMkM5LjIsNC45LDguNCw1LDcuOSw1LjVMNS41LDcuOUM1''@;'; + put 'put ''LDguNCw0LjksOS4yLDUuMiw5LjhsMS4zLDIuNWMtMC4yLDAuNS0wLjQsMS4xLTAuNiwxLjZsLTIuOCwwLjlDMi41LDE1LDIsMTUuNiwyLDE2LjN2My40YzAsMC43LDAuNSwxLjMsMS4yLDEuNUw2LDIyLjFsMC42LDEuNWwtMS40LDIuNmMtMC4zLDAuNi0wLjIsMS40LDAuMywxLjlsMi40LDIu''@;'; + put 'put ''NGMwLjUsMC41LDEuMywwLjYsMS45LDAuM2wyLjYtMS40bDEuNSwwLjZsMC45LDIuOWMwLjIsMC42LDAuOCwxLjEsMS41LDEuMWgzLjRjMC43LDAsMS4zLTAuNSwxLjUtMS4xbDAuOS0yLjlsMS41LTAuNmwyLjYsMS40YzAuNiwwLjMsMS40LDAuMiwxLjktMC4zbDIuNC0yLjRjMC41LTAuNSww''@;'; + put 'put ''LjYtMS4zLDAuMy0xLjlsLTEuNC0yLjZsMC42LTEuNWwyLjktMC45YzAuNi0wLjIsMS4xLTAuOCwxLjEtMS41di0zLjRDMzQsMTYsMzMuOSwxNS43LDMzLjcsMTUuNHoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5l''@;'; + put 'put ''LXBhdGgtMi0tYWxlcnRlZCIgZD0iTTE4LjEsMjNjLTIuOCwwLTUtMi4yLTUtNXMyLjItNSw1LTVjMC4yLDAsMC41LDAsMC43LDAuMWMtMC4yLTAuNi0wLjMtMS4zLTAuMi0yaC0wLjVjLTMuOSwwLTcsMy4xLTcsN2MwLDMuOSwzLjEsNyw3LDdjMy45LDAsNy0zLjEsNy03YzAtMC45LTAuMi0x''@;'; + put 'put ''LjgtMC41LTIuNmgtMi4yYzAuNSwwLjgsMC43LDEuNiwwLjcsMi41QzIzLjEsMjAuOCwyMC45LDIzLDE4LjEsMjN6Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQi''@;'; + put 'put ''IGQ9Ik0yNi45LDEuMUwyMS4xLDExYy0wLjQsMC42LTAuMiwxLjQsMC4zLDEuOGMwLjIsMC4yLDAuNSwwLjIsMC44LDAuMmgxMS41YzAuNywwLDEuMy0wLjUsMS4zLTEuMmMwLTAuMy0wLjEtMC41LTAuMi0wLjhsLTUuNy05LjljLTAuNC0wLjYtMS4xLTAuOC0xLjgtMC41QzI3LjEsMC44LDI3''@;'; + put 'put ''LDEsMjYuOSwxLjF6Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTMyLjU3LDE1LjcybC0zLjM1LTFhMTEuNjUsMTEuNjUsMCwwLDAtLjk1LTIuMzNsMS42NC0zLjA3YS42MS42MSwwLDAsMC0uMTEtLjcyTDI3LjQx''@;'; + put 'put ''LDYuMmEuNjEuNjEsMCwwLDAtLjcyLS4xMUwyMy42NCw3LjcyYTExLjYyLDExLjYyLDAsMCwwLTIuMzYtMWwtMS0zLjMxQS42MS42MSwwLDAsMCwxOS42OSwzSDE2LjMxYS42MS42MSwwLDAsMC0uNTguNDNsLTEsMy4zYTExLjYzLDExLjYzLDAsMCwwLTIuMzgsMWwtMy0xLjYyYS42MS42MSww''@;'; + put 'put ''LDAsMC0uNzIuMTFMNi4yLDguNTlhLjYxLjYxLDAsMCwwLS4xMS43MmwxLjYyLDNhMTEuNjMsMTEuNjMsMCwwLDAtMSwyLjM3bC0zLjMxLDFhLjYxLjYxLDAsMCwwLS40My41OHYzLjM4YS42MS42MSwwLDAsMCwuNDMuNThsMy4zMywxYTExLjYyLDExLjYyLDAsMCwwLDEsMi4zM0w2LjA5LDI2''@;'; + put 'put ''LjY5YS42MS42MSwwLDAsMCwuMTEuNzJMOC41OSwyOS44YS42MS42MSwwLDAsMCwuNzIuMTFsMy4wOS0xLjY1YTExLjY1LDExLjY1LDAsMCwwLDIuMy45NGwxLDMuMzdhLjYxLjYxLDAsMCwwLC41OC40M2gzLjM4YS42MS42MSwwLDAsMCwuNTgtLjQzbDEtMy4zOGExMS42MywxMS42MywwLDAs''@;'; + put 'put ''MCwyLjI4LS45NGwzLjExLDEuNjZhLjYxLjYxLDAsMCwwLC43Mi0uMTFsMi4zOS0yLjM5YS42MS42MSwwLDAsMCwuMTEtLjcybC0xLjY2LTMuMWExMS42MywxMS42MywwLDAsMCwuOTUtMi4yOWwzLjM3LTFhLjYxLjYxLDAsMCwwLC40My0uNThWMTYuMzFBLjYxLjYxLDAsMCwwLDMyLjU3LDE1''@;'; + put 'put ''LjcyWk0xOCwyMy41QTUuNSw1LjUsMCwxLDEsMjMuNSwxOCw1LjUsNS41LDAsMCwxLDE4LDIzLjVaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0zMi41NywxNS43MmwtMy4zNS0xYTEy''@;'; + put 'put ''LjEyLDEyLjEyLDAsMCwwLS40Ny0xLjMyLDcuNDksNy40OSwwLDAsMS02LjE0LTYuMTYsMTEuODIsMTEuODIsMCwwLDAtMS4zMy0uNDhsLTEtMy4zMUEuNjEuNjEsMCwwLDAsMTkuNjksM0gxNi4zMWEuNjEuNjEsMCwwLDAtLjU4LjQzbC0xLDMuM2ExMS42MywxMS42MywwLDAsMC0yLjM4LDFs''@;'; + put 'put ''LTMtMS42MmEuNjEuNjEsMCwwLDAtLjcyLjExTDYuMiw4LjU5YS42MS42MSwwLDAsMC0uMTEuNzJsMS42MiwzYTExLjYzLDExLjYzLDAsMCwwLTEsMi4zN2wtMy4zMSwxYS42MS42MSwwLDAsMC0uNDMuNTh2My4zOGEuNjEuNjEsMCwwLDAsLjQzLjU4bDMuMzMsMWExMS42MiwxMS42MiwwLDAs''@;'; + put 'put ''MCwxLDIuMzNMNi4wOSwyNi42OWEuNjEuNjEsMCwwLDAsLjExLjcyTDguNTksMjkuOGEuNjEuNjEsMCwwLDAsLjcyLjExbDMuMDktMS42NWExMS42NSwxMS42NSwwLDAsMCwyLjMuOTRsMSwzLjM3YS42MS42MSwwLDAsMCwuNTguNDNoMy4zOGEuNjEuNjEsMCwwLDAsLjU4LS40M2wxLTMuMzhh''@;'; + put 'put ''MTEuNjMsMTEuNjMsMCwwLDAsMi4yOC0uOTRsMy4xMSwxLjY2YS42MS42MSwwLDAsMCwuNzItLjExbDIuMzktMi4zOWEuNjEuNjEsMCwwLDAsLjExLS43MmwtMS42Ni0zLjFhMTEuNjMsMTEuNjMsMCwwLDAsLjk1LTIuMjlsMy4zNy0xYS42MS42MSwwLDAsMCwuNDMtLjU4VjE2LjMxQS42MS42''@;'; + put 'put ''MSwwLDAsMCwzMi41NywxNS43MlpNMTgsMjMuNUE1LjUsNS41LDAsMSwxLDIzLjUsMTgsNS41LDUuNSwwLDAsMSwxOCwyMy41WiIvPlxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFk''@;'; + put 'put ''Z2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiBkPSJNMzIuNTcsMTUuNzIsMzEuNSwxNS40SDIyLjg1QTUuNSw1LjUsMCwxLDEsMTgsMTIuNWE1LjUz''@;'; + put 'put ''LDUuNTMsMCwwLDEsLjY1LDBBMy42OCwzLjY4LDAsMCwxLDE5LDkuODlsMi4wOS0zLjYyLS44Ni0yLjgzQS42MS42MSwwLDAsMCwxOS42OSwzSDE2LjMxYS42MS42MSwwLDAsMC0uNTguNDNsLTEsMy4zYTExLjYzLDExLjYzLDAsMCwwLTIuMzgsMWwtMy0xLjYyYS42MS42MSwwLDAsMC0uNzIu''@;'; + put 'put ''MTFMNi4yLDguNTlhLjYxLjYxLDAsMCwwLS4xMS43MmwxLjYyLDNhMTEuNjMsMTEuNjMsMCwwLDAtMSwyLjM3bC0zLjMxLDFhLjYxLjYxLDAsMCwwLS40My41OHYzLjM4YS42MS42MSwwLDAsMCwuNDMuNThsMy4zMywxYTExLjYyLDExLjYyLDAsMCwwLDEsMi4zM0w2LjA5LDI2LjY5YS42MS42''@;'; + put 'put ''MSwwLDAsMCwuMTEuNzJMOC41OSwyOS44YS42MS42MSwwLDAsMCwuNzIuMTFsMy4wOS0xLjY1YTExLjY1LDExLjY1LDAsMCwwLDIuMy45NGwxLDMuMzdhLjYxLjYxLDAsMCwwLC41OC40M2gzLjM4YS42MS42MSwwLDAsMCwuNTgtLjQzbDEtMy4zOGExMS42MywxMS42MywwLDAsMCwyLjI4LS45''@;'; + put 'put ''NGwzLjExLDEuNjZhLjYxLjYxLDAsMCwwLC43Mi0uMTFsMi4zOS0yLjM5YS42MS42MSwwLDAsMCwuMTEtLjcybC0xLjY2LTMuMWExMS42MywxMS42MywwLDAsMCwuOTUtMi4yOWwzLjM3LTFhLjYxLjYxLDAsMCwwLC40My0uNThWMTYuMzFBLjYxLjYxLDAsMCwwLDMyLjU3LDE1LjcyWiIvPlxu''@;'; + put 'put ''ICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQu''@;'; + put 'put ''NzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiLz4nKSxMLkNsclNoYXBlQ2hlY2s9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xMy43MiwyNy42OSwzLjI5LDE3LjI3YTEsMSww''@;'; + put 'put ''LDAsMSwxLjQxLTEuNDFsOSw5TDMxLjI5LDcuMjlhMSwxLDAsMCwxLDEuNDEsMS40MVoiLz4nKSxMLkNsclNoYXBlVGltZXM9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xOS40MSwxOGw4LjI5LTguMjlhMSwx''@;'; + put 'put ''LDAsMCwwLTEuNDEtMS40MUwxOCwxNi41OSw5LjcxLDguMjlBMSwxLDAsMCwwLDguMjksOS43MUwxNi41OSwxOCw4LjI5LDI2LjI5YTEsMSwwLDEsMCwxLjQxLDEuNDFMMTgsMTkuNDFsOC4yOSw4LjI5YTEsMSwwLDAsMCwxLjQxLTEuNDFaIi8+JyksTC5DbHJTaGFwZUV4Y2xhbWF0aW9uVHJp''@;'; + put 'put ''YW5nbGU9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xOCwyMS4zMmExLjMsMS4zLDAsMCwwLDEuMy0xLjNWMTRhMS4zLDEuMywwLDEsMC0yLjYsMHY2QTEuMywxLjMsMCwwLDAsMTgsMjEuMzJaIi8+XG4gICAg''@;'; + put 'put ''ICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgY3g9IjE3Ljk1IiBjeT0iMjQuMjciIHI9IjEuNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJN''@;'; + put 'put ''MzAuMzMsMjUuNTQsMjAuNTksNy42YTMsMywwLDAsMC01LjI3LDBMNS41NywyNS41NEEzLDMsMCwwLDAsOC4yMSwzMEgyNy42OWEzLDMsMCwwLDAsMi42NC00LjQzWm0tMS43OCwxLjk0YTEsMSwwLDAsMS0uODYuNDlIOC4yMWExLDEsMCwwLDEtLjg4LTEuNDhMMTcuMDcsOC41NWExLDEsMCww''@;'; + put 'put ''LDEsMS43NiwwbDkuNzQsMTcuOTRBMSwxLDAsMCwxLDI4LjU1LDI3LjQ4WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zMC4zMywyNS41NCwyMC41OSw3LjZhMywzLDAsMCwwLTUuMjcsMEw1LjU3LDI1LjU0QTMs''@;'; + put 'put ''MywwLDAsMCw4LjIxLDMwSDI3LjY5YTMsMywwLDAsMCwyLjY0LTQuNDNaTTE2LjQ2LDEyLjc0YTEuNDksMS40OSwwLDAsMSwzLDB2Ni44OWExLjQ5LDEuNDksMCwxLDEtMywwWk0xOCwyNi4yNWExLjcyLDEuNzIsMCwxLDEsMS43Mi0xLjcyQTEuNzIsMS43MiwwLDAsMSwxOCwyNi4yNVoiLz4n''@;'; + put 'put ''KSxMLkNsclNoYXBlRXhjbGFtYXRpb25DaXJjbGU9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xOCw2QTEyLDEyLDAsMSwwLDMwLDE4LDEyLDEyLDAsMCwwLDE4LDZabTAsMjJBMTAsMTAsMCwxLDEsMjgsMTgs''@;'; + put 'put ''MTAsMTAsMCwwLDEsMTgsMjhaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0xOCwyMC4wN2ExLjMsMS4zLDAsMCwxLTEuMy0xLjN2LTZhMS4zLDEuMywwLDEsMSwyLjYsMHY2QTEuMywxLjMsMCwwLDEsMTgs''@;'; + put 'put ''MjAuMDdaIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgY3g9IjE3Ljk1IiBjeT0iMjMuMDIiIHI9IjEuNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1w''@;'; + put 'put ''YXRoLTEiIGQ9Ik0xOCw2QTEyLDEyLDAsMSwwLDMwLDE4LDEyLDEyLDAsMCwwLDE4LDZabS0xLjQ5LDZhMS40OSwxLjQ5LDAsMCwxLDMsMHY2Ljg5YTEuNDksMS40OSwwLDEsMS0zLDBaTTE4LDI1LjVhMS43MiwxLjcyLDAsMSwxLDEuNzItMS43MkExLjcyLDEuNzIsMCwwLDEsMTgsMjUuNVoi''@;'; + put 'put ''Lz4nKSxMLkNsclNoYXBlQ2hlY2tDaXJjbGU9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xOCw2QTEyLDEyLDAsMSwwLDMwLDE4LDEyLDEyLDAsMCwwLDE4LDZabTAsMjJBMTAsMTAsMCwxLDEsMjgsMTgsMTAs''@;'; + put 'put ''MTAsMCwwLDEsMTgsMjhaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0xNi4zNCwyMy43NGwtNS01YTEsMSwwLDAsMSwxLjQxLTEuNDFsMy41OSwzLjU5LDYuNzgtNi43OGExLDEsMCwwLDEsMS40MSwxLjQx''@;'; + put 'put ''WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zMCwxOEExMiwxMiwwLDEsMSwxOCw2LDEyLDEyLDAsMCwxLDMwLDE4Wm0tNC43Ny0yLjE2YTEuNCwxLjQsMCwwLDAtMi0ybC02Ljc3LDYuNzdMMTMsMTcuMTZhMS40''@;'; + put 'put ''LDEuNCwwLDAsMC0yLDJsNS40NSw1LjQ1WiIvPicpLEwuQ2xyU2hhcGVJbmZvQ2lyY2xlPSgwLEUuY2xySWNvblNWRykoJzxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiICBjeD0iMTcuOTMiIGN5PSIxMS45IiByPSIxLjQiLz5cbiAgICAgICAgICAg''@;'; + put 'put ''ICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgIGQ9Ik0yMSwyM0gxOVYxNUgxNmExLDEsMCwwLDAsMCwyaDF2NkgxNWExLDEsMCwxLDAsMCwyaDZhMSwxLDAsMCwwLDAtMloiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWkt''@;'; + put 'put ''b3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgIGQ9Ik0xOCw2QTEyLDEyLDAsMSwwLDMwLDE4LDEyLDEyLDAsMCwwLDE4LDZabTAsMjJBMTAsMTAsMCwxLDEsMjgsMTgsMTAsMTAsMCwwLDEsMTgsMjhaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNs''@;'; + put 'put ''ci1pLXNvbGlkLXBhdGgtMSIgZD0iTTE4LDZBMTIsMTIsMCwxLDAsMzAsMTgsMTIsMTIsMCwwLDAsMTgsNlptLTIsNS4xNWEyLDIsMCwxLDEsMiwyQTIsMiwwLDAsMSwxNS45LDExLjE1Wk0yMywyNGExLDEsMCwwLDEtMSwxSDE1YTEsMSwwLDEsMSwwLTJoMlYxN0gxNmExLDEsMCwwLDEsMC0y''@;'; + put 'put ''aDR2OGgyQTEsMSwwLDAsMSwyMywyNFoiLz4nKSxMLkNsclNoYXBlSW5mb1N0YW5kYXJkPSgwLEUuY2xySWNvblNWRykoJzxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGN4PSIxNy45NyIgY3k9IjEwLjQ1IiByPSIxLjQiLz5cbiAgICAgICAgICAg''@;'; + put 'put ''ICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTIxLDI1SDE5VjE0LjFIMTZhMSwxLDAsMCwwLDAsMmgxVjI1SDE1YTEsMSwwLDAsMCwwLDJoNmExLDEsMCwwLDAsMC0yWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHIt''@;'; + put 'put ''aS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJNMTgsMzRBMTYsMTYsMCwxLDEsMzQsMTgsMTYsMTYsMCwwLDEsMTgsMzRaTTE4LDRBMTQsMTQsMCwxLDAsMzIsMTgsMTQsMTQsMCwwLDAsMTgsNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQg''@;'; + put 'put ''Y2xyLWktc29saWQtcGF0aC0xIiBkPSJNMTgsMi4xYTE2LDE2LDAsMSwwLDE2LDE2QTE2LDE2LDAsMCwwLDE4LDIuMVptLS4xLDUuMjhhMiwyLDAsMSwxLTIsMkEyLDIsMCwwLDEsMTcuOSw3LjM4Wm0zLjYsMjEuMjVoLTdhMS40LDEuNCwwLDEsMSwwLTIuOGgyLjF2LTkuMkgxNWExLjQsMS40''@;'; + put 'put ''LDAsMSwxLDAtMi44aDQuNHYxMmgyLjFhMS40LDEuNCwwLDEsMSwwLDIuOFoiLz4nKSxMLkNsclNoYXBlU3VjY2Vzc1N0YW5kYXJkPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMTgsMkExNiwxNiwwLDEsMCwz''@;'; + put 'put ''NCwxOCwxNiwxNiwwLDAsMCwxOCwyWm0wLDMwQTE0LDE0LDAsMSwxLDMyLDE4LDE0LDE0LDAsMCwxLDE4LDMyWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMjgsMTIuMWExLDEsMCwwLDAtMS40MSwwTDE1''@;'; + put 'put ''LjQ5LDIzLjE1bC02LTZBMSwxLDAsMCwwLDgsMTguNTNMMTUuNDksMjYsMjgsMTMuNTJBMSwxLDAsMCwwLDI4LDEyLjFaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYs''@;'; + put 'put ''MTYsMCwwLDAsMTgsMlpNMjguNDUsMTIuNjMsMTUuMzEsMjUuNzYsNy41NSwxOGExLjQsMS40LDAsMCwxLDItMmw1Ljc4LDUuNzhMMjYuNDcsMTAuNjVhMS40LDEuNCwwLDEsMSwyLDJaIi8+JyksTC5DbHJTaGFwZUVycm9yU3RhbmRhcmQ9KDAsRS5jbHJJY29uU1ZHKSgnPGNpcmNsZSBjbGFz''@;'; + put 'put ''cz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgY3g9IjE4IiBjeT0iMjYuMDYiIHI9IjEuMzMiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTE4LDIyLjYxYTEsMSwwLDAsMS0xLTF2LTEy''@;'; + put 'put ''YTEsMSwwLDEsMSwyLDB2MTJBMSwxLDAsMCwxLDE4LDIyLjYxWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJNMTgsMzRBMTYsMTYsMCwxLDEsMzQsMTgsMTYsMTYsMCwwLDEsMTgsMzRaTTE4LDRBMTQsMTQs''@;'; + put 'put ''MCwxLDAsMzIsMTgsMTQsMTQsMCwwLDAsMTgsNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMTgsMi4xYTE2LDE2LDAsMSwwLDE2LDE2QTE2LDE2LDAsMCwwLDE4LDIuMVpNMTYuNiw4LjhhMS40LDEuNCwwLDAs''@;'; + put 'put ''MSwyLjgsMHYxMmExLjQsMS40LDAsMCwxLTIuOCwwWk0xOCwyOC42YTEuOCwxLjgsMCwxLDEsMS44LTEuOEExLjgsMS44LDAsMCwxLDE4LDI4LjZaIi8+JyksTC5DbHJTaGFwZVdhcm5pbmdTdGFuZGFyZD0oMCxFLmNsckljb25TVkcpKCc8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNs''@;'; + put 'put ''ci1pLW91dGxpbmUtcGF0aC0xIiBjeD0iMTgiIGN5PSIyNi4wNiIgcj0iMS4zMyIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMTgsMjIuNjFhMSwxLDAsMCwxLTEtMXYtMTJhMSwxLDAsMSwxLDIsMHYxMkEx''@;'; + put 'put ''LDEsMCwwLDEsMTgsMjIuNjFaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIGQ9Ik0xNS4wNjIwNzgyLDEuNjgxMTk2IEMxNS42Mjk4ODE5LDAuNjQ5MjY2MzU1IDE2LjcxMDkwOTEsMC4wMTAyMjE5Mzk2IDE3Ljg4''@;'; + put 'put ''NSwwLjAxMDIyMTkzOTYgQzE5LjA1OTA5MDksMC4wMTAyMjE5Mzk2IDIwLjE0MDExODEsMC42NDkyNjYzNTUgMjAuNzA4NjQzMywxLjY4MjUyMTI5IEwzNC41OTg2NDQsMjcuMjQyNTIyNSBDMzUuMTQwNzc0NiwyOC4yNDAxMzk3IDM1LjExNzQzNDUsMjkuNDQ5NTM3MyAzNC41MzcyMTYxLDMw''@;'; + put 'put ''LjQyNTQ5NDMgQzMzLjk1Njk5NzcsMzEuNDAxNDUxNCAzMi45MDU2NzEsMzEuOTk5Njk4NCAzMS43NywzMiBMNC4wMjIzOTMyMywzMS45OTk3NDkyIEMyLjg3NDA5MDA5LDMyLjAyNTQ2OTkgMS43OTkwMjg0MywzMS40Mzc1NzUzIDEuMjAxMDYzMzUsMzAuNDU2OTEyNiBDMC42MDMwOTgyNjUs''@;'; + put 'put ''MjkuNDc2MjQ5OSAwLjU3Mjc3Nzg5OSwyOC4yNTEzMTc5IDEuMTIyMDc4MTgsMjcuMjQxMTk2IEwxNS4wNjIwNzgyLDEuNjgxMTk2IFogTTIuODc4NTA3NjcsMjguMTk3NzI4MiBDMi42NzA2MDk2NiwyOC41ODAwMzc2IDIuNjgyMDk3NSwyOS4wNDQxNDIzIDIuOTA4NjU1NywyOS40MTU2OTc3''@;'; + put 'put ''IEMzLjEzNTIxMzksMjkuNzg3MjUzMiAzLjU0MjUzNTQsMzAuMDA5OTk1OSA0LDMwIEwzMS43Njk3MzQ0LDMwIEMzMi4xOTk5MTkxLDI5Ljk5OTg4NTggMzIuNTk4MjQ3OCwyOS43NzMyMjA4IDMyLjgxODA4MjEsMjkuNDAzNDQ4MiBDMzMuMDM3OTE2NCwyOS4wMzM2NzU3IDMzLjA0Njc1OTUs''@;'; + put 'put ''MjguNTc1NDU2NyAzMi44NDEzNTY3LDI4LjE5NzQ3ODcgTDE4Ljk1Mzg3MzksMi42NDIwODE5NSBDMTguNzM5NDIzNiwyLjI1MjM0NDM2IDE4LjMyOTg0MTksMi4wMTAyMjE5NCAxNy44ODUsMi4wMTAyMjE5NCBDMTcuNDQwNjg4OSwyLjAxMDIyMTk0IDE3LjAzMTU1MzgsMi4yNTE3NjY5MiAx''@;'; + put 'put ''Ni44MTY4OTQ2LDIuNjQwNjg3NTMgTDIuODc4NTA3NjcsMjguMTk3NzI4MiBaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTM0LjYsMjkuMjEsMjAuNzEsMy42NWEzLjIyLDMuMjIsMCwwLDAtNS42NiwwTDEuMTcs''@;'; + put 'put ''MjkuMjFBMy4yMiwzLjIyLDAsMCwwLDQsMzRIMzEuNzdhMy4yMiwzLjIyLDAsMCwwLDIuODMtNC43NVpNMTYuNiwxMGExLjQsMS40LDAsMCwxLDIuOCwwdjEyYTEuNCwxLjQsMCwwLDEtMi44LDBaTTE4LDI5Ljg1YTEuOCwxLjgsMCwxLDEsMS44LTEuOEExLjgsMS44LDAsMCwxLDE4LDI5Ljg1''@;'; + put 'put ''WiIvPicpLEwuQ2xyU2hhcGVIZWxwSW5mbz0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjUuMzksMjUuNDVhMSwxLDAsMCwwLTEuMzguMjljLTEuNDEsMi4xNi00LDQuODEtNi4zMSw1LjdzLTQuMTIuNTctNC44NCwwYy0uMzEtLjI3LTEuMTItMS0uNDMtMy40OS40Ni0xLjY2LDMuMzIt''@;'; + put 'put ''OS40OCw0LTExLjM4bC0yLjE4LjI4Yy0uNjksMS44Ni0zLjI5LDguODQtMy43NiwxMC41OC0uNjgsMi40OS0uMzQsNC4zLDEuMDksNS41NkE1LjU5LDUuNTksMCwwLDAsMTUsMzRhOS41Myw5LjUzLDAsMCwwLDMuNDUtLjdjMi43OS0xLjA5LDUuNzItNC4xMiw3LjI2LTYuNDdBMSwxLDAsMCww''@;'; + put 'put ''LDI1LjM5LDI1LjQ1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTkuMywxMWE0LjUsNC41LDAsMSwwLTQuNS00LjVBNC41LDQuNSwwLDAsMCwxOS4zLDExWm0wLTdhMi41LDIuNSwwLDEsMS0yLjUsMi41QTIu''@;'; + put 'put ''NSwyLjUsMCwwLDEsMTkuMyw0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTEuODEsMTVjLjA2LDAsNi4yNy0uODIsNy43My0xLC42NS0uMSwxLjE0LDAsMS4zLjE1cy4yMS44LS4wNywxLjY4Yy0uNjEsMS44''@;'; + put 'put ''Ni0zLjY5LDExLTQuNTksMTMuNzFhOCw4LDAsMCwwLDEuMjktLjM4LDcuMzIsNy4zMiwwLDAsMCwxLjE1LS42QzE5Ljg1LDI1LDIyLjE1LDE4LjEsMjIuNjcsMTYuNTJzLjM5LTIuNzgtLjMtMy42YTMuMTYsMy4xNiwwLDAsMC0zLjA4LS44M2MtMS40My4xNS03LjQ3Ljk0LTcuNzMsMWExLDEs''@;'; + put 'put ''MCwwLDAsLjI2LDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjIwLjc1IiBjeT0iNiIgcj0iNCIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRo''@;'; + put 'put ''IGQ9Ik0yNC44NCwyNi4yM2ExLDEsMCwwLDAtMS40LjI5LDE2LjYsMTYuNiwwLDAsMS0zLjUxLDMuNzdjLS4zMy4yNS0xLjU2LDEuMi0yLjA4LDEtLjM2LS4xMS0uMTUtLjgyLS4wOC0xLjEybC41My0xLjU3Yy4yMi0uNjQsNC4wNS0xMiw0LjQ3LTEzLjMuNjItMS45LjM1LTMuNzctMi40OC0z''@;'; + put 'put ''LjMyLS43Ny4wOC04LjU4LDEuMDktOC43MiwxLjFhMSwxLDAsMCwwLC4xMywyczMtLjM5LDMuMzMtLjQyYS44OC44OCwwLDAsMSwuODUuNDQsMi40NywyLjQ3LDAsMCwxLS4wNywxLjcxYy0uMjYsMS00LjM3LDEyLjU4LTQuNSwxMy4yNWEyLjc4LDIuNzgsMCwwLDAsMS4xOCwzLDUsNSwwLDAs''@;'; + put 'put ''MCwzLjA4LjgzaDBhOC41Myw4LjUzLDAsMCwwLDMuMDktLjYyYzIuNDktMSw1LjA5LTMuNjYsNi40Ni01Ljc1QTEsMSwwLDAsMCwyNC44NCwyNi4yM1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+JyksTC5DbHJTaGFwZUJhcnM9KDAsRS5jbHJJY29uU1ZHKSgn''@;'; + put 'put ''PHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMiwyOUg0YTEsMSwwLDAsMSwwLTJIMzJhMSwxLDAsMCwxLDAsMloiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0i''@;'; + put 'put ''TTMyLDE5SDRhMSwxLDAsMCwxLDAtMkgzMmExLDEsMCwwLDEsMCwyWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJNMzIsOUg0QTEsMSwwLDAsMSw0LDdIMzJhMSwxLDAsMCwxLDAsMloiLz4nKSxMLkNsclNo''@;'; + put 'put ''YXBlVXNlcj0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTgsMTdhNyw3LDAsMSwwLTctN0E3LDcsMCwwLDAsMTgsMTdaTTE4LDVhNSw1LDAsMSwxLTUsNUE1LDUsMCwwLDEsMTgsNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAg''@;'; + put 'put ''ICAgPHBhdGggZD0iTTMwLjQ3LDI0LjM3YTE3LjE2LDE3LjE2LDAsMCwwLTI0LjkzLDBBMiwyLDAsMCwwLDUsMjUuNzRWMzFhMiwyLDAsMCwwLDIsMkgyOWEyLDIsMCwwLDAsMi0yVjI1Ljc0QTIsMiwwLDAsMCwzMC40NywyNC4zN1pNMjksMzFIN1YyNS43M2ExNS4xNywxNS4xNywwLDAsMSwy''@;'; + put 'put ''MiwwaDBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMC40NywyNC4zN2ExNy4xNiwxNy4xNiwwLDAsMC0yNC45MywwQTIsMiwwLDAsMCw1LDI1Ljc0VjMxYTIsMiwwLDAsMCwyLDJIMjlhMiwyLDAsMCwwLDIt''@;'; + put 'put ''MlYyNS43NEEyLDIsMCwwLDAsMzAuNDcsMjQuMzdaTTI5LDMxSDdWMjUuNzNhMTUuMTcsMTUuMTcsMCwwLDEsMjIsMGgwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMTdh''@;'; + put 'put ''Nyw3LDAsMCwwLDQuNDUtMS42aC0uMjJBMy42OCwzLjY4LDAsMCwxLDIwLDE0LjZhNSw1LDAsMSwxLDEuMjQtOC40MmwxLTEuNzZBNyw3LDAsMSwwLDE4LDE3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIC8+XG4gICAgICAg''@;'; + put 'put ''ICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiAgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xy''@;'; + put 'put ''LWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAuNDcsMjQuMzdhMTcuMTYsMTcuMTYsMCwwLDAtMjQuOTMsMEEyLDIsMCwwLDAsNSwyNS43NFYzMWEyLDIsMCwwLDAsMiwySDI5YTIsMiwwLDAsMCwyLTJWMjUuNzRBMiwy''@;'; + put 'put ''LDAsMCwwLDMwLjQ3LDI0LjM3Wk0yOSwzMUg3VjI1LjczYTE1LjE3LDE1LjE3LDAsMCwxLDIyLDBoMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwxN2E3LDcsMCwwLDAsNi44''@;'; + put 'put ''NS01LjU2LDcuNCw3LjQsMCwwLDEtMi4yNC02LjY5QTcsNywwLDEsMCwxOCwxN1pNMTgsNWE1LDUsMCwxLDEtNSw1QTUsNSwwLDAsMSwxOCw1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNs''@;'; + put 'put ''ZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLjYxLDI0LjUyYTE3LjE2LDE3LjE2LDAsMCwwLTI1LjIyLDAsMS41MSwx''@;'; + put 'put ''LjUxLDAsMCwwLS4zOSwxdjZBMS41LDEuNSwwLDAsMCw2LjUsMzNoMjNBMS41LDEuNSwwLDAsMCwzMSwzMS41di02QTEuNTEsMS41MSwwLDAsMCwzMC42MSwyNC41MloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIx''@;'; + put 'put ''OCIgY3k9IjEwIiByPSI3IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLjYxLDI0LjUyYTE3LjE2LDE3LjE2LDAsMCwwLTI1LjIyLDAsMS41MSwxLjUxLDAsMCwwLS4zOSwxdjZBMS41LDEuNSwwLDAsMCw2LjUsMzNo''@;'; + put 'put ''MjNBMS41LDEuNSwwLDAsMCwzMSwzMS41di02QTEuNTEsMS41MSwwLDAsMCwzMC42MSwyNC41MloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMTdhNyw3LDAsMCwwLDQuNDUtMS42''@;'; + put 'put ''aC0uMjJBMy42OCwzLjY4LDAsMCwxLDE5LDkuODlsMy4xNi01LjQ3QTcsNywwLDEsMCwxOCwxN1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4''@;'; + put 'put ''LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiAgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMy0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5c''@;'; + put 'put ''biAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMC42MSwyNC41MmExNy4xNiwxNy4xNiwwLDAsMC0yNS4yMiwwLDEuNTEsMS41MSwwLDAsMC0uMzksMXY2QTEuNSwxLjUsMCwwLDAsNi41LDMzaDIzQTEuNSwxLjUsMCwwLDAsMzEsMzEuNXYtNkExLjUxLDEuNTEsMCwwLDAsMzAuNjEsMjQuNTJaIiBj''@;'; + put 'put ''bGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwxN2E3LDcsMCwwLDAsNi44NS01LjU2LDcuNCw3LjQsMCwwLDEtMi4yNC02LjY5QTcsNywwLDEsMCwxOCwxN1oiIGNsYXNzPSJjbHItaS1zb2xp''@;'; + put 'put ''ZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0zLS1iYWRnZWQgY2xyLWktYmFkZ2UiIC8+JyksTC5DbHJTaGFw''@;'; + put 'put ''ZUFuZ2xlPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMjkuNTIsMjIuNTIsMTgsMTAuNiw2LjQ4LDIyLjUyYTEuNywxLjcsMCwwLDAsMi40NSwyLjM2TDE4LDE1LjQ5bDkuMDgsOS4zOWExLjcsMS43LDAsMCww''@;'; + put 'put ''LDIuNDUtMi4zNloiLz4nKSxMLkNsclNoYXBlRm9sZGVyPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzAsOUgxNi40MkwxNC4xMSw1LjgyQTIsMiwwLDAsMCwxMi40OSw1SDZBMiwyLDAsMCwwLDQsN1YyOWEy''@;'; + put 'put ''LDIsMCwwLDAsMiwySDMwYTIsMiwwLDAsMCwyLTJWMTFBMiwyLDAsMCwwLDMwLDlabTAsMjBINlYxM2g3LjMxYTIsMiwwLDAsMCwyLTJINlY3aDYuNDlsMi42MSwzLjU5YTEsMSwwLDAsMCwuODEuNDFIMzBaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUt''@;'; + put 'put ''LWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMzAsMTMuNVYyOUg2VjEzaDcuMzFhMiwyLDAsMCwwLDItMkg2VjdoNi40OWwyLjYxLDMuNTlhMSwxLDAsMCwwLC44MS40MWg4LjUxYTcuNSw3LjUsMCwwLDEtMS4yOS0ySDE2LjQyTDE0LjExLDUuODJBMiwyLDAsMCww''@;'; + put 'put ''LDEyLjQ5LDVINkEyLDIsMCwwLDAsNCw3VjI5YTIsMiwwLDAsMCwyLDJIMzBhMiwyLDAsMCwwLDItMlYxMy4yMkE3LjQ5LDcuNDksMCwwLDEsMzAsMTMuNVoiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRo''@;'; + put 'put ''LTItLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiBkPSJNMzAsMTUuNFYyOUg2VjEzaDcuMzFhMiwyLDAsMCww''@;'; + put 'put ''LDItMkg2VjdoNi40OWwyLjYxLDMuNTlhMSwxLDAsMCwwLC44MS40MWgyLjczQTMuNjYsMy42NiwwLDAsMSwxOSw5Ljg5TDE5LjU2LDlIMTYuNDJMMTQuMTEsNS44MkEyLDIsMCwwLDAsMTIuNDksNUg2QTIsMiwwLDAsMCw0LDdWMjlhMiwyLDAsMCwwLDIsMkgzMGEyLDIsMCwwLDAsMi0yVjE1''@;'; + put 'put ''LjRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEu''@;'; + put 'put ''MjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzAsOUgxNi40MkwxNC4xMSw1LjgyQTIsMiwwLDAsMCwxMi40OSw1''@;'; + put 'put ''SDZBMiwyLDAsMCwwLDQsN1YyOWEyLDIsMCwwLDAsMiwySDMwYTIsMiwwLDAsMCwyLTJWMTFBMiwyLDAsMCwwLDMwLDlaTTYsMTFWN2g2LjQ5bDIuNzIsNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1h''@;'; + put 'put ''bGVydGVkIiBkPSJNMjIuMjMsMTUuNEEzLjY4LDMuNjgsMCwwLDEsMTksOS44OUwxOS41Niw5SDE2LjQyTDE0LjExLDUuODJBMiwyLDAsMCwwLDEyLjQ5LDVINkEyLDIsMCwwLDAsNCw3VjI5YTIsMiwwLDAsMCwyLDJIMzBhMiwyLDAsMCwwLDItMlYxNS40Wk02LDExVjdoNi40OWwyLjcyLDRa''@;'; + put 'put ''Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAs''@;'; + put 'put ''MCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMzAsMTMuNUE3LjUsNy41LDAsMCwxLDIzLjEzLDlI''@;'; + put 'put ''MTYuNDJMMTQuMTEsNS44MkEyLDIsMCwwLDAsMTIuNDksNUg2QTIsMiwwLDAsMCw0LDdWMjlhMiwyLDAsMCwwLDIsMkgzMGEyLDIsMCwwLDAsMi0yVjEzLjIyQTcuNDksNy40OSwwLDAsMSwzMCwxMy41Wk02LDExVjdoNi40OWwyLjcyLDRaIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBj''@;'; + put 'put ''bGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPicpLEwuQ2xyU2hhcGVGb2xkZXJPcGVuPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91''@;'; + put 'put ''dGxpbmUtcGF0aC0xIiBkPSJNMzUuMzIsMTMuNzRBMS43MSwxLjcxLDAsMCwwLDMzLjg3LDEzSDExLjE3YTIuNTksMi41OSwwLDAsMC0yLjI1LDEuNTIsMSwxLDAsMCwwLDAsLjE0TDYsMjVWN2g2LjQ5bDIuNjEsMy41OWExLDEsMCwwLDAsLjgxLjQxSDMyYTIsMiwwLDAsMC0yLTJIMTYuNDJM''@;'; + put 'put ''MTQuMTEsNS44MkEyLDIsMCwwLDAsMTIuNDksNUg2QTIsMiwwLDAsMCw0LDdWMjkuNjlBMS4zNywxLjM3LDAsMCwwLDUuNDEsMzFIMzAuMzRhMSwxLDAsMCwwLDEtLjcybDQuMTktMTUuMUExLjY0LDEuNjQsMCwwLDAsMzUuMzIsMTMuNzRaTTI5LjU1LDI5SDYuOWwzLjg4LTEzLjgxYS42Ni42''@;'; + put 'put ''NiwwLDAsMSwuMzgtLjI0SDMzLjQ5WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgZD0iTTM1LjMyLDEzLjc0QTEuNzEsMS43MSwwLDAsMCwzMy44NywxM0gxMS4xN2EyLjU5LDIuNTks''@;'; + put 'put ''MCwwLDAtMi4yNSwxLjUyLDEsMSwwLDAsMCwwLC4xNEw2LDI1VjdoNi40OWwyLjYxLDMuNTlhMSwxLDAsMCwwLC44MS40MWg4LjUyYTcuNDksNy40OSwwLDAsMS0xLjI5LTJIMTYuNDJMMTQuMTEsNS44MkEyLDIsMCwwLDAsMTIuNDksNUg2QTIsMiwwLDAsMCw0LDdWMjkuNjlBMS4zNywxLjM3''@;'; + put 'put ''LDAsMCwwLDUuNDEsMzFIMzAuMzRhMSwxLDAsMCwwLDEtLjcybDQuMTktMTUuMUExLjY0LDEuNjQsMCwwLDAsMzUuMzIsMTMuNzRaTTI5LjU1LDI5SDYuOWwzLjg4LTEzLjgxYS42Ni42NiwwLDAsMSwuMzgtLjI0SDMzLjQ5WiIvPlxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNs''@;'; + put 'put ''ci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0''@;'; + put 'put ''ZWQiIGQ9Ik0zMy42OCwxNS40aC0uM0wyOS41NSwyOUg2LjlsMy44OC0xMy44MWEuNjYuNjYsMCwwLDEsLjM4LS4yNGg5LjQyQTMuNjcsMy42NywwLDAsMSwxOSwxMy41NmEzLjYzLDMuNjMsMCwwLDEtLjI2LS41NkgxMS4xN2EyLjU5LDIuNTksMCwwLDAtMi4yNSwxLjUyLDEsMSwwLDAsMCww''@;'; + put 'put ''LC4xNEw2LDI1VjdoNi40OWwyLjYxLDMuNTlhMSwxLDAsMCwwLC44MS40MWgyLjczQTMuNjYsMy42NiwwLDAsMSwxOSw5Ljg5TDE5LjU2LDlIMTYuNDJMMTQuMTEsNS44MkEyLDIsMCwwLDAsMTIuNDksNUg2QTIsMiwwLDAsMCw0LDdWMjkuNjlBMS4zNywxLjM3LDAsMCwwLDUuNDEsMzFIMzAu''@;'; + put 'put ''MzRhMSwxLDAsMCwwLDEtLjcybDQuMTktMTUuMWExLjY4LDEuNjgsMCwwLDAsLjA3LS4zMkEzLjY3LDMuNjcsMCwwLDEsMzMuNjgsMTUuNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRl''@;'; + put 'put ''ZCBjbHItaS1hbGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNz''@;'; + put 'put ''PSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zNS4zMiwxMy43NEExLjcxLDEuNzEsMCwwLDAsMzMuODcsMTNIMTEuMTdhMi41OSwyLjU5LDAsMCwwLTIuMjUsMS41MiwxLDEsMCwwLDAsMCwuMTRMNiwyNVY3aDYuNDlsMi42MSwzLjU5YTEsMSwwLDAsMCwuODEuNDFIMzJh''@;'; + put 'put ''MiwyLDAsMCwwLTItMkgxNi40MkwxNC4xMSw1LjgyQTIsMiwwLDAsMCwxMi40OSw1SDZBMiwyLDAsMCwwLDQsN1YyOS42OUExLjM3LDEuMzcsMCwwLDAsNS40MSwzMUgzMC4zNGExLDEsMCwwLDAsMS0uNzJsNC4xOS0xNS4xQTEuNjQsMS42NCwwLDAsMCwzNS4zMiwxMy43NFoiLz5cbiAgICAg''@;'; + put 'put ''ICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiBkPSJNMzMuNjgsMTUuNEgyMi4yM0EzLjY5LDMuNjksMCwwLDEsMTksMTMuNTZhMy42MywzLjYzLDAsMCwxLS4yNi0uNTZIMTEuMTdhMi41OSwyLjU5LDAsMCww''@;'; + put 'put ''LTIuMjUsMS41MiwxLDEsMCwwLDAsMCwuMTRMNiwyNVY3aDYuNDlsMi42MSwzLjU5YTEsMSwwLDAsMCwuODEuNDFoMi43M0EzLjY2LDMuNjYsMCwwLDEsMTksOS44OUwxOS41Niw5SDE2LjQyTDE0LjExLDUuODJBMiwyLDAsMCwwLDEyLjQ5LDVINkEyLDIsMCwwLDAsNCw3VjI5LjY5QTEuMzcs''@;'; + put 'put ''MS4zNywwLDAsMCw1LjQxLDMxSDMwLjM0YTEsMSwwLDAsMCwxLS43Mmw0LjE5LTE1LjFhMS42OCwxLjY4LDAsMCwwLC4wNy0uMzJBMy42NywzLjY3LDAsMCwxLDMzLjY4LDE1LjRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNv''@;'; + put 'put ''bGlkLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIvPlxuICAgICAgICAg''@;'; + put 'put ''ICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMzUuMzIsMTMuNzRBMS43MSwxLjcxLDAsMCwwLDMzLjg3LDEzSDExLjE3YTIuNTksMi41OSwwLDAsMC0yLjI1LDEuNTIsMSwxLDAsMCwwLDAsLjE0TDYsMjVWN2g2''@;'; + put 'put ''LjQ5bDIuNjEsMy41OWExLDEsMCwwLDAsLjgxLjQxaDguNTJhNy40OSw3LjQ5LDAsMCwxLTEuMzEtMkgxNi40MkwxNC4xMSw1LjgyQTIsMiwwLDAsMCwxMi40OSw1SDZBMiwyLDAsMCwwLDQsN1YyOS42OUExLjM3LDEuMzcsMCwwLDAsNS40MSwzMUgzMC4zNGExLDEsMCwwLDAsMS0uNzJsNC4x''@;'; + put 'put ''OS0xNS4xQTEuNjQsMS42NCwwLDAsMCwzNS4zMiwxMy43NFoiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+JyksTC5DbHJTaGFw''@;'; + put 'put ''ZUJlbGw9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMi41MSwyNy44M0ExNC40LDE0LjQsMCwwLDEsMzAsMjQuOWExMi42MywxMi42MywwLDAsMS0xLjM1LTQuODFWMTUuMTVBMTAuODEsMTAuODEsMCwwLDAs''@;'; + put 'put ''MTkuMjEsNC40VjMuMTFhMS4zMywxLjMzLDAsMSwwLTIuNjcsMFY0LjQyQTEwLjgxLDEwLjgxLDAsMCwwLDcuMjEsMTUuMTV2NC45NEExMi42MywxMi42MywwLDAsMSw1Ljg2LDI0LjlhMTQuNCwxNC40LDAsMCwxLTIuNDcsMi45MywxLDEsMCwwLDAtLjM0Ljc1djEuMzZhMSwxLDAsMCwwLDEs''@;'; + put 'put ''MWgyNy44YTEsMSwwLDAsMCwxLTFWMjguNThBMSwxLDAsMCwwLDMyLjUxLDI3LjgzWk01LjEzLDI4Ljk0YTE2LjE3LDE2LjE3LDAsMCwwLDIuNDQtMywxNC4yNCwxNC4yNCwwLDAsMCwxLjY1LTUuODVWMTUuMTVhOC43NCw4Ljc0LDAsMSwxLDE3LjQ3LDB2NC45NGExNC4yNCwxNC4yNCwwLDAs''@;'; + put 'put ''MCwxLjY1LDUuODUsMTYuMTcsMTYuMTcsMCwwLDAsMi40NCwzWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMTgsMzQuMjhBMi42NywyLjY3LDAsMCwwLDIwLjU4LDMySDE1LjMyQTIuNjcsMi42NywwLDAs''@;'; + put 'put ''MCwxOCwzNC4yOFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0xOCwzNC4yOEEyLjY3LDIuNjcsMCwwLDAsMjAuNTgsMzJIMTUuMzJBMi42NywyLjY3LDAsMCwwLDE4LDM0LjI4''@;'; + put 'put ''WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgZD0iTTMyLjUxLDI3LjgzQTE0LjQsMTQuNCwwLDAsMSwzMCwyNC45YTEyLjYzLDEyLjYzLDAsMCwxLTEuMzUtNC44MVYxNS4xNWExMC45''@;'; + put 'put ''MiwxMC45MiwwLDAsMC0uMTYtMS43OSw3LjQ0LDcuNDQsMCwwLDEtMi4yNC0uODQsOC44OSw4Ljg5LDAsMCwxLC40LDIuNjR2NC45NGExNC4yNCwxNC4yNCwwLDAsMCwxLjY1LDUuODUsMTYuMTcsMTYuMTcsMCwwLDAsMi40NCwzSDUuMTNhMTYuMTcsMTYuMTcsMCwwLDAsMi40NC0zLDE0LjI0''@;'; + put 'put ''LDE0LjI0LDAsMCwwLDEuNjUtNS44NVYxNS4xNUE4LjgsOC44LDAsMCwxLDE4LDYuMzFhOC42MSw4LjYxLDAsMCwxLDQuNzYsMS40NEE3LjQ5LDcuNDksMCwwLDEsMjIuNSw2YzAtLjIxLDAtLjQyLDAtLjYzYTEwLjU4LDEwLjU4LDAsMCwwLTMuMzItMVYzLjExYTEuMzMsMS4zMywwLDEsMC0y''@;'; + put 'put ''LjY3LDBWNC40MkExMC44MSwxMC44MSwwLDAsMCw3LjIxLDE1LjE1djQuOTRBMTIuNjMsMTIuNjMsMCwwLDEsNS44NiwyNC45YTE0LjQsMTQuNCwwLDAsMS0yLjQ3LDIuOTMsMSwxLDAsMCwwLS4zNC43NXYxLjM2YTEsMSwwLDAsMCwxLDFoMjcuOGExLDEsMCwwLDAsMS0xVjI4LjU4QTEsMSww''@;'; + put 'put ''LDAsMCwzMi41MSwyNy44M1oiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNs''@;'; + put 'put ''YXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zMi44NSwyOC4xM2wtLjM0LS4zQTE0LjM3LDE0LjM3LDAsMCwxLDMwLDI0LjlhMTIuNjMsMTIuNjMsMCwwLDEtMS4zNS00LjgxVjE1LjE1QTEwLjgxLDEwLjgxLDAsMCwwLDE5LjIxLDQuNFYzLjExYTEuMzMsMS4zMyww''@;'; + put 'put ''LDEsMC0yLjY3LDBWNC40MkExMC44MSwxMC44MSwwLDAsMCw3LjIxLDE1LjE1djQuOTRBMTIuNjMsMTIuNjMsMCwwLDEsNS44NiwyNC45YTE0LjQsMTQuNCwwLDAsMS0yLjQ3LDIuOTNsLS4zNC4zdjIuODJIMzIuODVaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNv''@;'; + put 'put ''bGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgZD0iTTE1LjMyLDMyYTIuNjUsMi42NSwwLDAsMCw1LjI1LDBaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0xOCwzNC4yOEEyLjY3LDIuNjcs''@;'; + put 'put ''MCwwLDAsMjAuNTgsMzJIMTUuMzJBMi42NywyLjY3LDAsMCwwLDE4LDM0LjI4WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIiBkPSJNMzIuODUsMjguMTNsLS4zNC0uM0ExNC4zNywxNC4zNyww''@;'; + put 'put ''LDAsMSwzMCwyNC45YTEyLjYzLDEyLjYzLDAsMCwxLTEuMzUtNC44MVYxNS4xNWExMC45MiwxMC45MiwwLDAsMC0uMTYtMS43OUE3LjUsNy41LDAsMCwxLDIyLjUsNmMwLS4yMSwwLS40MiwwLS42M2ExMC41NywxMC41NywwLDAsMC0zLjMyLTFWMy4xMWExLjMzLDEuMzMsMCwxLDAtMi42Nyww''@;'; + put 'put ''VjQuNDJBMTAuODEsMTAuODEsMCwwLDAsNy4yMSwxNS4xNXY0Ljk0QTEyLjYzLDEyLjYzLDAsMCwxLDUuODYsMjQuOWExNC40LDE0LjQsMCwwLDEtMi40NywyLjkzbC0uMzQuM3YyLjgySDMyLjg1WiIvPlxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRn''@;'; + put 'put ''ZWQgY2xyLWktc29saWQtcGF0aC0zLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz4nKSxMLkNsclNoYXBlSW1hZ2U9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMyLDRINEEyLDIsMCwwLDAsMiw2VjMwYTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDIt''@;'; + put 'put ''MlY2QTIsMiwwLDAsMCwzMiw0Wk00LDMwVjZIMzJWMzBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTguOTIsMTRhMywzLDAsMSwwLTMtM0EzLDMsMCwwLDAsOC45MiwxNFptMC00LjZBMS42LDEuNiwwLDEsMSw3''@;'; + put 'put ''LjMzLDExLDEuNiwxLjYsMCwwLDEsOC45Miw5LjQxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMi43OCwxNS4zN2wtNS40LDUuNC00LTRhMSwxLDAsMCwwLTEuNDEsMEw1LjkyLDIyLjl2Mi44M2w2Ljc5LTYu''@;'; + put 'put ''NzlMMTYsMjIuMThsLTMuNzUsMy43NUgxNWw4LjQ1LTguNDVMMzAsMjRWMjEuMThsLTUuODEtNS44MUExLDEsMCwwLDAsMjIuNzgsMTUuMzdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTExLjkzLDExYTMsMyww''@;'; + put 'put ''LDEsMC0zLDNBMywzLDAsMCwwLDExLjkzLDExWm0tNC42LDBhMS42LDEuNiwwLDEsMSwxLjYsMS42QTEuNiwxLjYsMCwwLDEsNy4zMywxMVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0i''@;'; + put 'put ''TTE3LjM4LDIwLjc3bC00LTRhMSwxLDAsMCwwLTEuNDEsMEw1LjkyLDIyLjl2Mi44M2w2Ljc5LTYuNzlMMTYsMjIuMThsLTMuNzUsMy43NUgxNWw4LjQ1LTguNDVMMzAsMjRWMjEuMThsLTUuODEtNS44MWExLDEsMCwwLDAtMS40MSwwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBj''@;'; + put 'put ''bHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIsMTMuMjJWMzBINFY2SDIyLjVhNy40OSw3LjQ5LDAsMCwxLC4yOC0ySDRBMiwyLDAsMCwwLDIsNlYzMGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMTIuMzRBNy40NSw3LjQ1LDAs''@;'; + put 'put ''MCwxLDMyLDEzLjIyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRo''@;'; + put 'put ''LTQtLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMyLDRINEEyLDIsMCwwLDAsMiw2VjMwYTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlY2QTIsMiwwLDAsMCwzMiw0Wk04LjkyLDhhMywzLDAsMSwxLTMsM0EzLDMsMCwwLDEsOC45Miw4Wk02LDI3''@;'; + put 'put ''VjIyLjlsNi02LjA4YTEsMSwwLDAsMSwxLjQxLDBMMTYsMTkuMzUsOC4zMiwyN1ptMjQsMEgxMS4xNWw2LjIzLTYuMjMsNS40LTUuNGExLDEsMCwwLDEsMS40MSwwTDMwLDIxLjE4WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGgg''@;'; + put 'put ''ZD0iTTMwLDEzLjVBNy40OCw3LjQ4LDAsMCwxLDIyLjc4LDRINEEyLDIsMCwwLDAsMiw2VjMwYTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYxMi4zNEE3LjQ2LDcuNDYsMCwwLDEsMzAsMTMuNVpNOC45Miw4YTMsMywwLDEsMS0zLDNBMywzLDAsMCwxLDguOTIsOFpNNiwyN1YyMi45''@;'; + put 'put ''bDYtNi4wOGExLDEsMCwwLDEsMS40MSwwTDE2LDE5LjM1LDguMzIsMjdabTI0LDBIMTEuMTVsNi4yMy02LjIzLDUuNC01LjRhMSwxLDAsMCwxLDEuNDEsMEwzMCwyMS4xOFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAg''@;'; + put 'put ''ICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+JyksTC5DbHJTaGFwZUNsb3VkPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5l''@;'; + put 'put ''IGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMjcuMTQsMzNIMTAuNjJDNS42NywzMywxLDI4LjE5LDEsMjMuMWExMCwxMCwwLDAsMSw4LTkuNzUsMTAuMTksMTAuMTksMCwwLDEsMjAuMzMsMS4wNkExMC4wNywxMC4wNywwLDAsMSwyOSwxNi42NmE4LjI5LDguMjksMCwwLDEsNiw4QzM1LDI5''@;'; + put 'put ''LjEsMzEuMzMsMzMsMjcuMTQsMzNaTTE5LjA5LDYuMjNhOC4yNCw4LjI0LDAsMCwwLTguMTksOGwwLC44Ny0uODYuMUE3Ljk0LDcuOTQsMCwwLDAsMywyMy4xYzAsNCwzLjc3LDcuOSw3LjYyLDcuOUgyNy4xNEMzMC4yMSwzMSwzMywyOCwzMywyNC42NWE2LjMxLDYuMzEsMCwwLDAtNS4zNy02''@;'; + put 'put ''LjI2bC0xLjE4LS4xOC4zOS0xLjEzQTguMTgsOC4xOCwwLDAsMCwxOS4wOSw2LjIzWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgZD0iTTI5LDE2LjY2YTEwLjA3LDEwLjA3LDAsMCww''@;'; + put 'put ''LC4yNS0yLjI0YzAtLjMzLDAtLjY1LDAtMWE3LjQ1LDcuNDUsMCwwLDEtMi4xLS41NCw4LDgsMCwwLDEtLjMsNC4xNmwtLjM5LDEuMTMsMS4xOC4xOGE2LjMxLDYuMzEsMCwwLDEsNS4zNyw2LjI2QzMyLjk1LDI4LDMwLjE2LDMxLDI3LjA5LDMxSDEwLjU3Yy0zLjg0LDAtNy42Mi0zLjkxLTcu''@;'; + put 'put ''NjItNy45YTcuOTQsNy45NCwwLDAsMSw3LTcuODlsLjg2LS4xLDAtLjg3YTguMjQsOC4yNCwwLDAsMSw4LjE5LThBOC4xMyw4LjEzLDAsMCwxLDIyLjU4LDdhNy41Myw3LjUzLDAsMCwxLS4wOC0xLDcuNTEsNy41MSwwLDAsMSwuMDktMS4xMkExMC4xMywxMC4xMywwLDAsMCwxOSw0LjIzLDEw''@;'; + put 'put ''LjI2LDEwLjI2LDAsMCwwLDguOTEsMTMuMzZhMTAsMTAsMCwwLDAtOCw5Ljc1YzAsNS4wOSw0LjY3LDkuOSw5LjYyLDkuOUgyNy4wOWM0LjE5LDAsNy44Ni0zLjksNy44Ni04LjM1QTguMjksOC4yOSwwLDAsMCwyOSwxNi42NloiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJj''@;'; + put 'put ''bHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVy''@;'; + put 'put ''dGVkIiBkPSJNMjksMTYuNjZhMTAuMTQsMTAuMTQsMCwwLDAsLjItMS4zaC0yYTguMjgsOC4yOCwwLDAsMS0uMzcsMS43MmwtLjM5LDEuMTMsMS4xOC4xOGE2LjMxLDYuMzEsMCwwLDEsNS4zNyw2LjI2QzMyLjk1LDI4LDMwLjE2LDMxLDI3LjA5LDMxSDEwLjU3Yy0zLjg0LDAtNy42Mi0zLjkx''@;'; + put 'put ''LTcuNjItNy45YTcuOTQsNy45NCwwLDAsMSw3LTcuODlsLjg2LS4xLDAtLjg3QTguMTYsOC4xNiwwLDAsMSwyMSw2LjQ3bDEtMS44QTEwLjE5LDEwLjE5LDAsMCwwLDguOTEsMTMuMzZhMTAsMTAsMCwwLDAtOCw5Ljc1YzAsNS4wOSw0LjY3LDkuOSw5LjYyLDkuOUgyNy4wOWM0LjE5LDAsNy44''@;'; + put 'put ''Ni0zLjksNy44Ni04LjM1QTguMjksOC4yOSwwLDAsMCwyOSwxNi42NloiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFB''@;'; + put 'put ''MS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0y''@;'; + put 'put ''OSwxNi42NmExMC4wNywxMC4wNywwLDAsMCwuMjUtMi4yNEExMC4xOSwxMC4xOSwwLDAsMCw4LjkxLDEzLjM2LDEwLDEwLDAsMCwwLDEsMjMuMUMxLDI4LjE5LDUuNjIsMzMsMTAuNTcsMzNIMjcuMDlDMzEuMjgsMzMsMzUsMjkuMSwzNSwyNC42NUE4LjI5LDguMjksMCwwLDAsMjksMTYuNjZa''@;'; + put 'put ''Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0yOSwxNi42NmExMC4wNywxMC4wNywwLDAsMCwuMjUtMi4yNGMwLS4zMywwLS42NSwwLTFhNy40NCw3LjQ0LDAsMCwxLTYuNi04LjU4QTEw''@;'; + put 'put ''LjEzLDEwLjEzLDAsMCwwLDE5LDQuMjMsMTAuMjYsMTAuMjYsMCwwLDAsOC45MSwxMy4zNiwxMCwxMCwwLDAsMCwxLDIzLjFDMSwyOC4xOSw1LjYyLDMzLDEwLjU3LDMzSDI3LjA5QzMxLjI4LDMzLDM1LDI5LjEsMzUsMjQuNjVBOC4yOSw4LjI5LDAsMCwwLDI5LDE2LjY2WiIvPlxuICAgICAg''@;'; + put 'put ''ICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWkt''@;'; + put 'put ''c29saWQtcGF0aC0xLS1hbGVydGVkIiBkPSJNMjksMTYuNjZhMTAuMTUsMTAuMTUsMCwwLDAsLjItMS4yNmgtN0EzLjY4LDMuNjgsMCwwLDEsMTksOS44OWwzLTUuMjFBMTAuMTksMTAuMTksMCwwLDAsOC45MSwxMy4zNiwxMCwxMCwwLDAsMCwxLDIzLjFDMSwyOC4xOSw1LjYyLDMzLDEwLjU3''@;'; + put 'put ''LDMzSDI3LjA5QzMxLjI4LDMzLDM1LDI5LjEsMzUsMjQuNjVBOC4yOSw4LjI5LDAsMCwwLDI5LDE2LjY2WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44''@;'; + put 'put ''NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiLz4nKSxMLkNsclNoYXBlRWxsaXBzaXNIb3Jpem9udGFsPSgwLEUuY2xySWNvblNWRykoJzxj''@;'; + put 'put ''aXJjbGUgY3g9IjMxLjEiIGN5PSIxOCIgcj0iMi45IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjE4IiBjeT0iMTgiIHI9IjIuOSIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIi''@;'; + put 'put ''IC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSI0LjkiIGN5PSIxOCIgcj0iMi45IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMxLjEiIGN5PSIxOCIgcj0iMi45IiBjbGFzcz0iY2xyLWktb3V0bGluZS0t''@;'; + put 'put ''YmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIxOCIgY3k9IjE4IiByPSIyLjkiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJj''@;'; + put 'put ''bGUgY3g9IjQuOSIgY3k9IjE4IiByPSIyLjkiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xy''@;'; + put 'put ''LWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCBjbHItaS1iYWRnZSIgLz4nKSxMLkNsclNoYXBlRWxsaXBzaXNWZXJ0aWNhbD0oMCxFLmNsckljb25TVkcpKCc8Y2lyY2xlIGN4PSIxOCIgY3k9IjQuOSIgcj0iMi45IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIg''@;'; + put 'put ''Lz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjE4IiBjeT0iMTgiIHI9IjIuOSIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIxOCIgY3k9IjMxLjEiIHI9IjIuOSIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xy''@;'; + put 'put ''LWktb3V0bGluZS1wYXRoLTMiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIxOCIgY3k9IjQuOSIgcj0iMi45IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIxOCIgY3k9IjE4''@;'; + put 'put ''IiByPSIyLjkiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjE4IiBjeT0iMzEuMSIgcj0iMi45IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0''@;'; + put 'put ''aC0zLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiICBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQgY2xyLWktYmFkZ2UiIC8+JyksTC5DbHJTaGFwZUZpbHRlckdyaWQ9KDAsRS5jbHJJ''@;'; + put 'put ''Y29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xNSwyNS44NmwyLDFWMjAuMjdhMSwxLDAsMCwwLS4yOS0uN0wxMC4yMywxM0gyNS43OWwtNi40Nyw2LjU3YTEsMSwwLDAsMC0uMjkuN0wxOSwyOGwyLDFWMjAuNjhMMjcuNTgsMTRB''@;'; + put 'put ''MS40NiwxLjQ2LDAsMCwwLDI4LDEzVjEyYTEsMSwwLDAsMC0xLTFIOWExLDEsMCwwLDAtMSwxdjFhMS40NiwxLjQ2LDAsMCwwLC40MiwxTDE1LDIwLjY4WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik04LDExdjEu''@;'; + put 'put ''MTJhLjUuNSwwLDAsMCwuMTUuMzVsNy4yOCw3LjM2YS41LjUsMCwwLDEsLjE1LjM1djYuODlhLjUuNSwwLDAsMCwuMjguNDVsMy45NSwxLjQxYS41LjUsMCwwLDAsLjcyLS40NWwwLTguMzlhLjU0LjU0LDAsMCwxLC4xOC0uMzVsNy4xMi03LjI1YS41LjUsMCwwLDAsLjE1LS4zNVYxMVoiLz4n''@;'; + put 'put ''KSxMLkNsclNoYXBlRmlsdGVyR3JpZENpcmNsZT0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTE1LDI1Ljg2bDIsMVYyMC4yN2ExLDEsMCwwLDAtLjI5LS43TDEwLjIzLDEzSDI1Ljc5bC02LjQ3LDYuNTdhMSwx''@;'; + put 'put ''LDAsMCwwLS4yOS43TDE5LDI4bDIsMVYyMC42OEwyNy41OCwxNEExLjQ2LDEuNDYsMCwwLDAsMjgsMTNWMTJhMSwxLDAsMCwwLTEtMUg5YTEsMSwwLDAsMC0xLDF2MWExLjQ2LDEuNDYsMCwwLDAsLjQyLDFMMTUsMjAuNjhaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1p''@;'; + put 'put ''LW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJabTAsMzBBMTQsMTQsMCwxLDEsMzIsMTgsMTQsMTQsMCwwLDEsMTgsMzJaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNs''@;'; + put 'put ''ci1pLXNvbGlkLXBhdGgtMSIgZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlptMCwzMEExNCwxNCwwLDEsMSwzMiwxOCwxNCwxNCwwLDAsMSwxOCwzMloiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0''@;'; + put 'put ''aC0yIiBkPSJNOCwxMXYxLjEyYS41LjUsMCwwLDAsLjE1LjM1bDcuMjgsNy4zNmEuNS41LDAsMCwxLC4xNS4zNXY2Ljg5YS41LjUsMCwwLDAsLjI4LjQ1bDMuOTUsMS40MWEuNS41LDAsMCwwLC43Mi0uNDVsMC04LjM5YS41NC41NCwwLDAsMSwuMTgtLjM1bDcuMTItNy4yNWEuNS41LDAsMCww''@;'; + put 'put ''LC4xNS0uMzVWMTFaIi8+JyksTC5DbHJTaGFwZVZtQnVnPSgwLEUuY2xySWNvblNWRykoJzxyZWN0IHdpZHRoPSIzNiIgaGVpZ2h0PSIzNiIgcng9IjMiIGZpbGw9IiNmZmZmZmYiIG9wYWNpdHk9IjAuMTUiIHN0eWxlPSJpc29sYXRpb246aXNvbGF0ZSIvPjxwYXRoIGQ9Ik0zLjc5LDE0Ljgz''@;'; + put 'put ''YTEuMDksMS4wOSwwLDAsMC0xLjQ3LS41NiwxLjA5LDEuMDksMCwwLDAtLjU0LDEuNDlsMi40Nyw1LjRjLjM5Ljg1LjgsMS4yOSwxLjU3LDEuMjlTNywyMiw3LjM5LDIxLjE2bDIuMTctNC43N2EuMzMuMzMsMCwwLDEsLjMxLS4yLjM1LjM1LDAsMCwxLC4zNS4zNXY0LjYxYTEuMTUsMS4xNSww''@;'; + put 'put ''LDAsMCwxLjE0LDEuMywxLjE3LDEuMTcsMCwwLDAsMS4xNy0xLjNWMTcuMzhhMS4xNSwxLjE1LDAsMCwxLDEuMjItMS4yLDEuMTMsMS4xMywwLDAsMSwxLjE4LDEuMnYzLjc3YTEuMTcsMS4xNywwLDEsMCwyLjMyLDBWMTcuMzhhMS4xNSwxLjE1LDAsMCwxLDEuMjItMS4yLDEuMTMsMS4xMyww''@;'; + put 'put ''LDAsMSwxLjE4LDEuMnYzLjc3YTEuMTYsMS4xNiwwLDEsMCwyLjMxLDBWMTYuODZhMi42OSwyLjY5LDAsMCwwLTIuNzgtMi42OSwzLjU3LDMuNTcsMCwwLDAtMi40NywxLjA1LDIuNzUsMi43NSwwLDAsMC0yLjM4LTEuMDVBMy45MywzLjkzLDAsMCwwLDEyLDE1LjIyYTIuODIsMi44MiwwLDAs''@;'; + put 'put ''MC0yLjA4LTEuMDVBMi41NSwyLjU1LDAsMCwwLDcuNCwxNS44OUw1LjgyLDE5LjYzbC0yLTQuOCIgZmlsbD0iI2ZmZmZmZiIvPjxwYXRoIGQ9Ik0zMywxNC4xOEExLjE0LDEuMTQsMCwwLDAsMzEuOSwxNWwtMS4xOSwzLjczTDI5LjUsMTUuMDVhMS4xOCwxLjE4LDAsMCwwLTEuMTUtLjg3aC0u''@;'; + put 'put ''MWExLjIsMS4yLDAsMCwwLTEuMTUuODdsLTEuMTksMy43MS0xLjE4LTMuNzFhMS4xNSwxLjE1LDAsMCwwLTEuMTEtLjg3LDEuMDgsMS4wOCwwLDAsMC0xLjEyLDEuMDcsMS42OCwxLjY4LDAsMCwwLC4xLjU0bDIsNS43YTEuMjcsMS4yNywwLDAsMCwxLjI3LDEsMS4yNCwxLjI0LDAsMCwwLDEu''@;'; + put 'put ''Mi0uOTNsMS4yLTMuNjQsMS4yLDMuNjRhMS4yNSwxLjI1LDAsMCwwLDEuMjYuOTNBMS4yNywxLjI3LDAsMCwwLDMyLDIxLjVMMzQsMTUuNzNhMS43NywxLjc3LDAsMCwwLC4wOC0uNDhBMS4wNywxLjA3LDAsMCwwLDMzLDE0LjE4WiIgZmlsbD0iI2ZmZmZmZiIvPicpLEwuQ2xyU2hhcGVTZWFy''@;'; + put 'put ''Y2g9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xNi4zMyw1LjA1QTEwLjk1LDEwLjk1LDAsMSwxLDUuMzksMTYsMTEsMTEsMCwwLDEsMTYuMzMsNS4wNW0wLTIuMDVhMTMsMTMsMCwxLDAsMTMsMTMsMTMsMTMs''@;'; + put 'put ''MCwwLDAtMTMtMTNaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0zNSwzMy4yOWwtNy4zNy03LjQyLTEuNDIsMS40MSw3LjM3LDcuNDJBMSwxLDAsMSwwLDM1LDMzLjI5WiIvPicpLEwuQ2xyU2hhcGVWaWV3''@;'; + put 'put ''Q29sdW1ucz0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMxLDVINUEyLDIsMCwwLDAsMyw3VjI5YTIsMiwwLDAsMCwyLDJIMzFhMiwyLDAsMCwwLDItMlY3QTIsMiwwLDAsMCwzMSw1Wk0xMywyOUg1VjdoOFpt''@;'; + put 'put ''MTAsMEgxNVY3aDhaIi8+JyksTC5DbHJTaGFwZUFuZ2xlRG91YmxlPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMjksMTkuNDFhMSwxLDAsMCwxLS43MS0uMjlMMTgsOC44Myw3LjcxLDE5LjEyYTEsMSwwLDAs''@;'; + put 'put ''MS0xLjQxLTEuNDFMMTgsNiwyOS43MSwxNy43MUExLDEsMCwwLDEsMjksMTkuNDFaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0yOSwzMC40MWExLDEsMCwwLDEtLjcxLS4yOUwxOCwxOS44Myw3LjcxLDMw''@;'; + put 'put ''LjEyYTEsMSwwLDAsMS0xLjQxLTEuNDFMMTgsMTcsMjkuNzEsMjguNzFBMSwxLDAsMCwxLDI5LDMwLjQxWiIvPicpLEwuQ2xyU2hhcGVDYWxlbmRhcj0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMyLjI1LDZI''@;'; + put 'put ''MjlWOGgzVjMwSDRWOEg3VjZIMy43NUExLjc4LDEuNzgsMCwwLDAsMiw3LjgxVjMwLjE5QTEuNzgsMS43OCwwLDAsMCwzLjc1LDMyaDI4LjVBMS43OCwxLjc4LDAsMCwwLDM0LDMwLjE5VjcuODFBMS43OCwxLjc4LDAsMCwwLDMyLjI1LDZaIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xh''@;'; + put 'put ''c3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIHg9IjgiIHk9IjE0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIHg9IjE0IiB5PSIxNCIgd2lkdGg9IjIi''@;'; + put 'put ''IGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiB4PSIyMCIgeT0iMTQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHIt''@;'; + put 'put ''aS1vdXRsaW5lLXBhdGgtNSIgeD0iMjYiIHk9IjE0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIHg9IjgiIHk9IjE5IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAg''@;'; + put 'put ''ICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTciIHg9IjE0IiB5PSIxOSIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC04IiB4PSIy''@;'; + put 'put ''MCIgeT0iMTkiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtOSIgeD0iMjYiIHk9IjE5IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9''@;'; + put 'put ''ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEwIiB4PSI4IiB5PSIyNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xMSIgeD0iMTQiIHk9IjI0IiB3aWR0aD0iMiIg''@;'; + put 'put ''aGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEyIiB4PSIyMCIgeT0iMjQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHIt''@;'; + put 'put ''aS1vdXRsaW5lLXBhdGgtMTMiIHg9IjI2IiB5PSIyNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xNCIgZD0iTTEwLDEwYTEsMSwwLDAsMCwxLTFWM0ExLDEsMCwwLDAsOSwzVjlB''@;'; + put 'put ''MSwxLDAsMCwwLDEwLDEwWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xNSIgZD0iTTI2LDEwYTEsMSwwLDAsMCwxLTFWM2ExLDEsMCwwLDAtMiwwVjlBMSwxLDAsMCwwLDI2LDEwWiIvPlxuICAgICAgICAgICAgICAg''@;'; + put 'put ''IDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xNiIgeD0iMTMiIHk9IjYiIHdpZHRoPSIxMCIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFk''@;'; + put 'put ''Z2VkIiBkPSJNMzIsMTMuMjJWMzBINFY4SDdWNkgzLjc1QTEuNzgsMS43OCwwLDAsMCwyLDcuODFWMzAuMTlBMS43OCwxLjc4LDAsMCwwLDMuNzUsMzJoMjguNUExLjc4LDEuNzgsMCwwLDAsMzQsMzAuMTlWMTIuMzRBNy40NSw3LjQ1LDAsMCwxLDMyLDEzLjIyWiIvPlxuICAgICAgICAgICAg''@;'; + put 'put ''ICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgeD0iOCIgeT0iMTQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91''@;'; + put 'put ''dGxpbmUtcGF0aC0zLS1iYWRnZWQiIHg9IjE0IiB5PSIxNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCIgeD0iMjAiIHk9IjE0IiB3aWR0aD0iMiIg''@;'; + put 'put ''aGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYmFkZ2VkIiB4PSIyNiIgeT0iMTQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xy''@;'; + put 'put ''LWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC02LS1iYWRnZWQiIHg9IjgiIHk9IjE5IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNy0tYmFkZ2Vk''@;'; + put 'put ''IiB4PSIxNCIgeT0iMTkiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC04LS1iYWRnZWQiIHg9IjIwIiB5PSIxOSIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAg''@;'; + put 'put ''ICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTktLWJhZGdlZCIgeD0iMjYiIHk9IjE5IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBj''@;'; + put 'put ''bHItaS1vdXRsaW5lLXBhdGgtMTAtLWJhZGdlZCIgeD0iOCIgeT0iMjQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xMS0tYmFkZ2VkIiB4PSIxNCIgeT0iMjQiIHdp''@;'; + put 'put ''ZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xMi0tYmFkZ2VkIiB4PSIyMCIgeT0iMjQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBj''@;'; + put 'put ''bGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xMy0tYmFkZ2VkIiB4PSIyNiIgeT0iMjQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0''@;'; + put 'put ''aC0xNC0tYmFkZ2VkIiBkPSJNMTAsMTBhMSwxLDAsMCwwLDEtMVYzQTEsMSwwLDAsMCw5LDNWOUExLDEsMCwwLDAsMTAsMTBaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMTUtLWJhZGdlZCIgZD0iTTIy''@;'; + put 'put ''LjUsNkgxM1Y4aDkuNzhBNy40OSw3LjQ5LDAsMCwxLDIyLjUsNloiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTE2LS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAg''@;'; + put 'put ''ICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgZD0iTTMzLjY4LDE1LjRIMzJWMzBINFY4SDdWNkgzLjc1QTEuNzgsMS43OCwwLDAsMCwyLDcuODFWMzAuMTlBMS43OCwxLjc4LDAsMCwwLDMuNzUs''@;'; + put 'put ''MzJoMjguNUExLjc4LDEuNzgsMCwwLDAsMzQsMzAuMTlWMTUuMzhaIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIHg9IjgiIHk9IjE0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4g''@;'; + put 'put ''ICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiIHg9IjE0IiB5PSIxNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1h''@;'; + put 'put ''bGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIiB4PSI4IiB5PSIxOSIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC01LS1hbGVydGVkIiB4PSIxNCIg''@;'; + put 'put ''eT0iMTkiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNi0tYWxlcnRlZCIgeD0iMjAiIHk9IjE5IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAg''@;'; + put 'put ''ICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTctLWFsZXJ0ZWQiIHg9IjI2IiB5PSIxOSIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1p''@;'; + put 'put ''LW91dGxpbmUtcGF0aC04LS1hbGVydGVkIiB4PSI4IiB5PSIyNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC05LS1hbGVydGVkIiB4PSIxNCIgeT0iMjQiIHdpZHRo''@;'; + put 'put ''PSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMTAtLWFsZXJ0ZWQiIHg9IjIwIiB5PSIyNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNs''@;'; + put 'put ''YXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xMS0tYWxlcnRlZCIgeD0iMjYiIHk9IjI0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1w''@;'; + put 'put ''YXRoLTEyLS1hbGVydGVkIiBkPSJNMTAsMTBhMSwxLDAsMCwwLDEtMVYzQTEsMSwwLDAsMCw5LDNWOUExLDEsMCwwLDAsMTAsMTBaIi8+PHBvbHlnb24gcG9pbnRzPSIyMS4yOSA2IDEzIDYgMTMgOCAyMC4xNCA4IDIxLjI5IDYiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xy''@;'; + put 'put ''LWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgs''@;'; + put 'put ''MCwwLDAsMjYuODUsMS4xNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzIuMjUsNmgtNFY5YTIuMiwyLjIsMCwxLDEtNC40LDBWNkgxMi4yVjlBMi4yLDIuMiwwLDAsMSw3LjgsOVY2aC00QTEuNzgsMS43OCww''@;'; + put 'put ''LDAsMCwyLDcuODFWMzAuMTlBMS43OCwxLjc4LDAsMCwwLDMuNzUsMzJoMjguNUExLjc4LDEuNzgsMCwwLDAsMzQsMzAuMTlWNy44MUExLjc4LDEuNzgsMCwwLDAsMzIuMjUsNlpNMTAsMjZIOFYyNGgyWm0wLTVIOFYxOWgyWm0wLTVIOFYxNGgyWm02LDEwSDE0VjI0aDJabTAtNUgxNFYxOWgy''@;'; + put 'put ''Wm0wLTVIMTRWMTRoMlptNiwxMEgyMFYyNGgyWm0wLTVIMjBWMTloMlptMC01SDIwVjE0aDJabTYsMTBIMjZWMjRoMlptMC01SDI2VjE5aDJabTAtNUgyNlYxNGgyWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGQ9Ik0x''@;'; + put 'put ''MCwxMGExLDEsMCwwLDAsMS0xVjNBMSwxLDAsMCwwLDksM1Y5QTEsMSwwLDAsMCwxMCwxMFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiBkPSJNMjYsMTBhMSwxLDAsMCwwLDEtMVYzYTEsMSwwLDAsMC0yLDBWOUExLDEs''@;'; + put 'put ''MCwwLDAsMjYsMTBaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0xMCwxMGExLDEsMCwwLDAsMS0xVjNBMSwxLDAsMCwwLDksM1Y5QTEsMSwwLDAsMCwxMCwxMFoiLz5cbiAgICAgICAg''@;'; + put 'put ''ICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCIgZD0iTTMwLDEzLjVBNy41LDcuNSwwLDAsMSwyMi41LDZIMTIuMlY5QTIuMiwyLjIsMCwwLDEsNy44LDlWNmgtNEExLjc4LDEuNzgsMCwwLDAsMiw3LjgxVjMwLjE5QTEu''@;'; + put 'put ''NzgsMS43OCwwLDAsMCwzLjc1LDMyaDI4LjVBMS43OCwxLjc4LDAsMCwwLDM0LDMwLjE5VjEyLjM0QTcuNDUsNy40NSwwLDAsMSwzMCwxMy41Wk0xMCwyNkg4VjI0aDJabTAtNUg4VjE5aDJabTAtNUg4VjE0aDJabTYsMTBIMTRWMjRoMlptMC01SDE0VjE5aDJabTAtNUgxNFYxNGgyWm02LDEw''@;'; + put 'put ''SDIwVjI0aDJabTAtNUgyMFYxOWgyWm0wLTVIMjBWMTRoMlptNiwxMEgyNlYyNGgyWm0wLTVIMjZWMTloMlptMC01SDI2VjE0aDJaIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWJhZGdlZCBjbHItaS1i''@;'; + put 'put ''YWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0zMy42OCwxNS40SDIyLjIzQTMuNjgsMy42OCwwLDAsMSwxOSw5Ljg5TDIxLjI5LDZIMTIu''@;'; + put 'put ''MlY5QTIuMiwyLjIsMCwwLDEsNy44LDlWNmgtNEExLjc4LDEuNzgsMCwwLDAsMiw3LjgxVjMwLjE5QTEuNzgsMS43OCwwLDAsMCwzLjc1LDMyaDI4LjVBMS43OCwxLjc4LDAsMCwwLDM0LDMwLjE5VjE1LjM4Wk0xMCwyNkg4VjI0aDJabTAtNUg4VjE5aDJabTAtNUg4VjE0aDJabTYsMTBIMTRW''@;'; + put 'put ''MjRoMlptMC01SDE0VjE5aDJabTAtNUgxNFYxNGgyWm02LDEwSDIwVjI0aDJabTAtNUgyMFYxOWgyWm02LDVIMjZWMjRoMlptMC01SDI2VjE5aDJaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRl''@;'; + put 'put ''ZCIgZD0iTTEwLDEwYTEsMSwwLDAsMCwxLTFWM0ExLDEsMCwwLDAsOSwzVjlBMSwxLDAsMCwwLDEwLDEwWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44''@;'; + put 'put ''NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiLz4nKSxMLkNsclNoYXBlRXZlbnQ9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNs''@;'; + put 'put ''ci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xNi4xNywyNS44NiwxMC44MSwyMC41YTEsMSwwLDAsMSwxLjQxLTEuNDFMMTYuMTcsMjNsOC42NC04LjY0YTEsMSwwLDAsMSwxLjQxLDEuNDFaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxp''@;'; + put 'put ''bmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0zMi4yNSw2SDI5VjhoM1YzMEg0VjhIN1Y2SDMuNzVBMS43OCwxLjc4LDAsMCwwLDIsNy44MVYzMC4xOUExLjc4LDEuNzgsMCwwLDAsMy43NSwzMmgyOC41QTEuNzgsMS43OCwwLDAsMCwzNCwzMC4xOVY3LjgxQTEuNzgsMS43OCwwLDAsMCwz''@;'; + put 'put ''Mi4yNSw2WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJNMTAsMTBhMSwxLDAsMCwwLDEtMVYzQTEsMSwwLDAsMCw5LDNWOUExLDEsMCwwLDAsMTAsMTBaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xh''@;'; + put 'put ''c3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIGQ9Ik0yNiwxMGExLDEsMCwwLDAsMS0xVjNhMSwxLDAsMCwwLTIsMFY5QTEsMSwwLDAsMCwyNiwxMFoiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgt''@;'; + put 'put ''NSIgeD0iMTMiIHk9IjYiIHdpZHRoPSIxMCIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMTAuODEsMjAuNWw1LjM2LDUuMzZMMjYuMjIsMTUuODFhMSwxLDAs''@;'; + put 'put ''MCwwLTEuNDEtMS40MUwxNi4xNywyM2wtMy45NC0zLjk0YTEsMSwwLDAsMC0xLjQxLDEuNDFaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIiBkPSJNMTAsMTBhMSwxLDAsMCwwLDEtMVYz''@;'; + put 'put ''QTEsMSwwLDAsMCw5LDNWOUExLDEsMCwwLDAsMTAsMTBaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIiBkPSJNMzIsMTMuMjJWMzBINFY4SDdWNkgzLjc1QTEuNzgsMS43OCwwLDAsMCwy''@;'; + put 'put ''LDcuODFWMzAuMTlBMS43OCwxLjc4LDAsMCwwLDMuNzUsMzJoMjguNUExLjc4LDEuNzgsMCwwLDAsMzQsMzAuMTlWMTIuMzRBNy40NSw3LjQ1LDAsMCwxLDMyLDEzLjIyWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGlu''@;'; + put 'put ''ZS1wYXRoLTQtLWJhZGdlZCIgZD0iTTIyLjUsNkgxM1Y4aDkuNzhBNy40OSw3LjQ5LDAsMCwxLDIyLjUsNloiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9''@;'; + put 'put ''IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiBkPSJNMTAsMTBhMSwxLDAsMCwwLDEtMVYzQTEsMSwwLDAsMCw5LDNWOUExLDEsMCwwLDAsMTAsMTBaIi8+''@;'; + put 'put ''XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIGQ9Ik0xMC44MSwyMC41bDUuMzYsNS4zNkwyNi4yMiwxNS44MWExLDEsMCwwLDAsLjIzLS40MUgyMy44TDE2LjE3LDIzbC0zLjk0LTMuOTRh''@;'; + put 'put ''MSwxLDAsMCwwLTEuNDEsMS40MVoiLz5cbiAgICAgICAgICAgICAgICA8cG9seWdvbiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCIgcG9pbnRzPSIyMS4yOSA2IDEzIDYgMTMgOCAyMC4xNCA4IDIxLjI5IDYiLz5cbiAgICAgICAg''@;'; + put 'put ''ICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRlZCIgZD0iTTMzLjY4LDE1LjRIMzJWMzBINFY4SDdWNkgzLjc1QTEuNzgsMS43OCwwLDAsMCwyLDcuODFWMzAuMTlBMS43OCwxLjc4LDAsMCwwLDMuNzUsMzJoMjgu''@;'; + put 'put ''NUExLjc4LDEuNzgsMCwwLDAsMzQsMzAuMTlWMTUuMzhaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4y''@;'; + put 'put ''OCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMTAsMTBhMSwx''@;'; + put 'put ''LDAsMCwwLDEtMVYzQTEsMSwwLDAsMCw5LDNWOUExLDEsMCwwLDAsMTAsMTBaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgZD0iTTI2LDEwYTEsMSwwLDAsMCwxLTFWM2ExLDEsMCwwLDAtMiwwVjlBMSwxLDAsMCwwLDI2''@;'; + put 'put ''LDEwWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIGQ9Ik0zMi4yNSw2aC00VjlhMi4yLDIuMiwwLDAsMS00LjQsMFY2SDEyLjJWOUEyLjIsMi4yLDAsMCwxLDcuOCw5VjZoLTRBMS43OCwxLjc4LDAsMCwwLDIsNy44MVYz''@;'; + put 'put ''MC4xOUExLjc4LDEuNzgsMCwwLDAsMy43NSwzMmgyOC41QTEuNzgsMS43OCwwLDAsMCwzNCwzMC4xOVY3LjgxQTEuNzgsMS43OCwwLDAsMCwzMi4yNSw2Wk0yNS45NCwxNi41OGwtOS42Nyw5LjY3TDExLDIwLjk0QTEuMzYsMS4zNiwwLDAsMSwxMi45LDE5bDMuMzgsMy4zOEwyNCwxNC42NmEx''@;'; + put 'put ''LjM2LDEuMzYsMCwxLDEsMS45MywxLjkzWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0xMCwxMGExLDEsMCwwLDAsMS0xVjNBMSwxLDAsMCwwLDksM1Y5QTEsMSwwLDAsMCwxMCwx''@;'; + put 'put ''MFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIiBkPSJNMzMuNjgsMTUuNEgyNi4zYTEuMzQsMS4zNCwwLDAsMS0uMzYsMS4xOGwtOS42Nyw5LjY3TDExLDIwLjk0QTEuMzYsMS4zNiwwLDAs''@;'; + put 'put ''MSwxMi45LDE5bDMuMzgsMy4zOCw3LTdoLTFBMy42OCwzLjY4LDAsMCwxLDE5LDkuODlMMjEuMjksNkgxMi4yVjlBMi4yLDIuMiwwLDAsMSw3LjgsOVY2aC00QTEuNzgsMS43OCwwLDAsMCwyLDcuODFWMzAuMTlBMS43OCwxLjc4LDAsMCwwLDMuNzUsMzJoMjguNUExLjc4LDEuNzgsMCwwLDAs''@;'; + put 'put ''MzQsMzAuMTlWMTUuMzhaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMy0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4''@;'; + put 'put ''QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMTAsMTBhMSwxLDAsMCww''@;'; + put 'put ''LDEtMVYzQTEsMSwwLDAsMCw5LDNWOUExLDEsMCwwLDAsMTAsMTBaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQiIGQ9Ik0zMCwxMy41QTcuNSw3LjUsMCwwLDEsMjIuNSw2SDEyLjJWOUEyLjIs''@;'; + put 'put ''Mi4yLDAsMCwxLDcuOCw5VjZoLTRBMS43OCwxLjc4LDAsMCwwLDIsNy44MVYzMC4xOUExLjc4LDEuNzgsMCwwLDAsMy43NSwzMmgyOC41QTEuNzgsMS43OCwwLDAsMCwzNCwzMC4xOVYxMi4zNEE3LjQ1LDcuNDUsMCwwLDEsMzAsMTMuNVptLTQuMDYsMy4wOC05LjY3LDkuNjdMMTEsMjAuOTRB''@;'; + put 'put ''MS4zNiwxLjM2LDAsMCwxLDEyLjksMTlsMy4zOCwzLjM4TDI0LDE0LjY2YTEuMzYsMS4zNiwwLDEsMSwxLjkzLDEuOTNaIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIg''@;'; + put 'put ''Y3g9IjMwIiBjeT0iNiIgcj0iNSIvPicpLEwuQ2xyU2hhcGVFeWU9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMzLjYyLDE3LjUzYy0zLjM3LTYuMjMtOS4yOC0xMC0xNS44Mi0xMFM1LjM0LDExLjMsMiwxNy41M0wxLjcyLDE4bC4yNi40OGMzLjM3LDYuMjMsOS4yOCwxMCwxNS44Miwx''@;'; + put 'put ''MHMxMi40Ni0zLjcyLDE1LjgyLTEwbC4yNi0uNDhaTTE3LjgsMjYuNDNDMTIuMTcsMjYuNDMsNywyMy4yOSw0LDE4YzMtNS4yOSw4LjE3LTguNDMsMTMuOC04LjQzUzI4LjU0LDEyLjcyLDMxLjU5LDE4QzI4LjU0LDIzLjI5LDIzLjQyLDI2LjQzLDE3LjgsMjYuNDNaIiBjbGFzcz0iY2xyLWkt''@;'; + put 'put ''b3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LjA5LDExLjE3QTYuODYsNi44NiwwLDEsMCwyNSwxOCw2Ljg2LDYuODYsMCwwLDAsMTguMDksMTEuMTdabTAsMTEuNzJBNC44Niw0Ljg2LDAsMSwxLDIzLDE4LDQuODcsNC44NywwLDAsMSwx''@;'; + put 'put ''OC4wOSwyMi44OVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuNjIsMTcuNTNjLTMuMzctNi4yMy05LjI4LTEwLTE1LjgyLTEwUzUuMzQsMTEuMywyLDE3LjUzTDEuNzIsMThsLjI2LjQ4YzMuMzcsNi4yMyw5''@;'; + put 'put ''LjI4LDEwLDE1LjgyLDEwczEyLjQ2LTMuNzIsMTUuODItMTBsLjI2LS40OFpNMTcuOCwyNi40M0MxMi4xNywyNi40Myw3LDIzLjI5LDQsMThjMy01LjI5LDguMTctOC40MywxMy44LTguNDNTMjguNTQsMTIuNzIsMzEuNTksMThDMjguNTQsMjMuMjksMjMuNDIsMjYuNDMsMTcuOCwyNi40M1oi''@;'; + put 'put ''IGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjE4LjA5IiBjeT0iMTguMDMiIHI9IjYuODYiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiLz4nKSxMLkNsclNoYXBlRXllSGlkZT0oMCxFLmNscklj''@;'; + put 'put ''b25TVkcpKCc8cGF0aCBkPSJNMjUuMTksMjAuNEE2Ljc4LDYuNzgsMCwwLDAsMjUuNjIsMThhNi44Niw2Ljg2LDAsMCwwLTYuODYtNi44Niw2Ljc5LDYuNzksMCwwLDAtMi4zNy40M0wxOCwxMy4yM2E0Ljc4LDQuNzgsMCwwLDEsLjc0LS4wNkE0Ljg3LDQuODcsMCwwLDEsMjMuNjIsMThhNC43''@;'; + put 'put ''OSw0Ljc5LDAsMCwxLS4wNi43NFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzQuMjksMTcuNTNjLTMuMzctNi4yMy05LjI4LTEwLTE1LjgyLTEwYTE2LjgyLDE2LjgyLDAsMCwwLTUuMjQuODVMMTQuODQsMTBh''@;'; + put 'put ''MTQuNzgsMTQuNzgsMCwwLDEsMy42My0uNDdjNS42MywwLDEwLjc1LDMuMTQsMTMuOCw4LjQzYTE3Ljc1LDE3Ljc1LDAsMCwxLTQuMzcsNS4xbDEuNDIsMS40MmExOS45MywxOS45MywwLDAsMCw1LTZsLjI2LS40OFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0y''@;'; + put 'put ''Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNNC44Nyw1Ljc4bDQuNDYsNC40NmExOS41MiwxOS41MiwwLDAsMC02LjY5LDcuMjlMMi4zOCwxOGwuMjYuNDhjMy4zNyw2LjIzLDkuMjgsMTAsMTUuODIsMTBhMTYuOTMsMTYuOTMsMCwwLDAsNy4zNy0xLjY5bDUsNSwxLjc1LTEuNS0yNi0yNlpt''@;'; + put 'put ''OS43NSw5Ljc1LDYuNjUsNi42NWE0LjgxLDQuODEsMCwwLDEtMi41LjcyQTQuODcsNC44NywwLDAsMSwxMy45LDE4LDQuODEsNC44MSwwLDAsMSwxNC42MiwxNS41M1ptLTEuNDUtMS40NWE2Ljg1LDYuODUsMCwwLDAsOS41NSw5LjU1bDEuNiwxLjZhMTQuOTEsMTQuOTEsMCwwLDEtNS44Niwx''@;'; + put 'put ''LjJjLTUuNjMsMC0xMC43NS0zLjE0LTEzLjgtOC40M2ExNy4yOSwxNy4yOSwwLDAsMSw2LjEyLTYuM1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTguMzcsMTEuMTdBNi43OSw2Ljc5LDAsMCwwLDE2LDExLjZs''@;'; + put 'put ''OC44LDguOEE2Ljc4LDYuNzgsMCwwLDAsMjUuMjMsMTgsNi44Niw2Ljg2LDAsMCwwLDE4LjM3LDExLjE3WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTM0LjI5LDE3LjUzYy0zLjM3LTYuMjMtOS4yOC0xMC0xNS44Mi0x''@;'; + put 'put ''MGExNi44MiwxNi44MiwwLDAsMC01LjI0Ljg1TDE0Ljg0LDEwYTE0Ljc4LDE0Ljc4LDAsMCwxLDMuNjMtLjQ3YzUuNjMsMCwxMC43NSwzLjE0LDEzLjgsOC40M2ExNy43NSwxNy43NSwwLDAsMS00LjM3LDUuMWwxLjQyLDEuNDJhMTkuOTMsMTkuOTMsMCwwLDAsNS02bC4yNi0uNDhaIiBjbGFz''@;'; + put 'put ''cz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNNC44Nyw1Ljc4bDQuNDYsNC40NmExOS41MiwxOS41MiwwLDAsMC02LjY5LDcuMjlMMi4zOCwxOGwuMjYuNDhjMy4zNyw2LjIzLDkuMjgsMTAsMTUuODIsMTBhMTYuOTMsMTYuOTMsMCww''@;'; + put 'put ''LDAsNy4zNy0xLjY5bDUsNSwxLjc1LTEuNS0yNi0yNlptOC4zLDguM2E2Ljg1LDYuODUsMCwwLDAsOS41NSw5LjU1bDEuNiwxLjZhMTQuOTEsMTQuOTEsMCwwLDEtNS44NiwxLjJjLTUuNjMsMC0xMC43NS0zLjE0LTEzLjgtOC40M2ExNy4yOSwxNy4yOSwwLDAsMSw2LjEyLTYuM1oiIGNsYXNz''@;'; + put 'put ''PSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiLz4nKSxMLkNsclNoYXBlU3RlcEZvcndhcmQyPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik03LjA4LDYuNTJhMS42OCwxLjY4LDAsMCwwLDAsMi40TDE2LjUxLDE4LDcuMTIsMjcuMDhhMS43LDEuNywwLDAsMCwyLjM2LDIuNDRo''@;'; + put 'put ''MEwyMS40LDE4LDkuNDgsNi40N0ExLjY5LDEuNjksMCwwLDAsNy4wOCw2LjUyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTI2LjQ5LDVhMS43LDEuNywwLDAsMC0xLjcsMS43VjI5LjNhMS43LDEuNywwLDAsMCwzLjQsMFY2LjdBMS43''@;'; + put 'put ''LDEuNywwLDAsMCwyNi40OSw1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+JyksTC5DbHJTaGFwZUFycm93PSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yNy42NiwxNS42MSwxOCw2LDguMzQsMTUuNjFBMSwxLDAsMSwwLDkuNzUsMTdMMTcsOS44''@;'; + put 'put ''MVYyOC45NGExLDEsMCwxLDAsMiwwVjkuODFMMjYuMjUsMTdhMSwxLDAsMCwwLDEuNDEtMS40MloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+JyksTC5Db3JlU2hhcGVzPXsidW5rbm93bi1zdGF0dXMiOkwuQ2xyU2hhcGVVbmtub3duU3RhdHVzLGhvbWU6''@;'; + put 'put ''TC5DbHJTaGFwZUhvbWUsY29nOkwuQ2xyU2hhcGVDb2csY2hlY2s6TC5DbHJTaGFwZUNoZWNrLHRpbWVzOkwuQ2xyU2hhcGVUaW1lcywiZXhjbGFtYXRpb24tdHJpYW5nbGUiOkwuQ2xyU2hhcGVFeGNsYW1hdGlvblRyaWFuZ2xlLCJleGNsYW1hdGlvbi1jaXJjbGUiOkwuQ2xyU2hhcGVFeGNs''@;'; + put 'put ''YW1hdGlvbkNpcmNsZSwiY2hlY2stY2lyY2xlIjpMLkNsclNoYXBlQ2hlY2tDaXJjbGUsImluZm8tY2lyY2xlIjpMLkNsclNoYXBlSW5mb0NpcmNsZSwiaW5mby1zdGFuZGFyZCI6TC5DbHJTaGFwZUluZm9TdGFuZGFyZCwic3VjY2Vzcy1zdGFuZGFyZCI6TC5DbHJTaGFwZVN1Y2Nlc3NTdGFu''@;'; + put 'put ''ZGFyZCwiZXJyb3Itc3RhbmRhcmQiOkwuQ2xyU2hhcGVFcnJvclN0YW5kYXJkLCJ3YXJuaW5nLXN0YW5kYXJkIjpMLkNsclNoYXBlV2FybmluZ1N0YW5kYXJkLCJoZWxwLWluZm8iOkwuQ2xyU2hhcGVIZWxwSW5mbyxiYXJzOkwuQ2xyU2hhcGVCYXJzLHVzZXI6TC5DbHJTaGFwZVVzZXIsYW5n''@;'; + put 'put ''bGU6TC5DbHJTaGFwZUFuZ2xlLGZvbGRlcjpMLkNsclNoYXBlRm9sZGVyLCJmb2xkZXItb3BlbiI6TC5DbHJTaGFwZUZvbGRlck9wZW4sYmVsbDpMLkNsclNoYXBlQmVsbCxpbWFnZTpMLkNsclNoYXBlSW1hZ2UsY2xvdWQ6TC5DbHJTaGFwZUNsb3VkLCJlbGxpcHNpcy1ob3Jpem9udGFsIjpM''@;'; + put 'put ''LkNsclNoYXBlRWxsaXBzaXNIb3Jpem9udGFsLCJlbGxpcHNpcy12ZXJ0aWNhbCI6TC5DbHJTaGFwZUVsbGlwc2lzVmVydGljYWwsImZpbHRlci1ncmlkIjpMLkNsclNoYXBlRmlsdGVyR3JpZCwiZmlsdGVyLWdyaWQtY2lyY2xlIjpMLkNsclNoYXBlRmlsdGVyR3JpZENpcmNsZSwidm0tYnVn''@;'; + put 'put ''IjpMLkNsclNoYXBlVm1CdWcsc2VhcmNoOkwuQ2xyU2hhcGVTZWFyY2gsInZpZXctY29sdW1ucyI6TC5DbHJTaGFwZVZpZXdDb2x1bW5zLCJhbmdsZS1kb3VibGUiOkwuQ2xyU2hhcGVBbmdsZURvdWJsZSxjYWxlbmRhcjpMLkNsclNoYXBlQ2FsZW5kYXIsZXZlbnQ6TC5DbHJTaGFwZUV2ZW50''@;'; + put 'put ''LGV5ZTpMLkNsclNoYXBlRXllLCJleWUtaGlkZSI6TC5DbHJTaGFwZUV5ZUhpZGUsInN0ZXAtZm9yd2FyZC0yIjpMLkNsclNoYXBlU3RlcEZvcndhcmQyLGFycm93OkwuQ2xyU2hhcGVBcnJvd30sT2JqZWN0LmRlZmluZVByb3BlcnR5KEwuQ29yZVNoYXBlcywiaG91c2UiLCgwLEIuZGVzY3Jp''@;'; + put 'put ''cHRvckNvbmZpZykoTC5Db3JlU2hhcGVzLmhvbWUpKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoTC5Db3JlU2hhcGVzLCJzZXR0aW5ncyIsKDAsQi5kZXNjcmlwdG9yQ29uZmlnKShMLkNvcmVTaGFwZXMuY29nKSksT2JqZWN0LmRlZmluZVByb3BlcnR5KEwuQ29yZVNoYXBlcywic3VjY2VzcyIs''@;'; + put 'put ''KDAsQi5kZXNjcmlwdG9yQ29uZmlnKShMLkNvcmVTaGFwZXMuY2hlY2spKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoTC5Db3JlU2hhcGVzLCJjbG9zZSIsKDAsQi5kZXNjcmlwdG9yQ29uZmlnKShMLkNvcmVTaGFwZXMudGltZXMpKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoTC5Db3JlU2hhcGVz''@;'; + put 'put ''LCJ3YXJuaW5nIiwoMCxCLmRlc2NyaXB0b3JDb25maWcpKEwuQ29yZVNoYXBlc1siZXhjbGFtYXRpb24tdHJpYW5nbGUiXSkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShMLkNvcmVTaGFwZXMsImVycm9yIiwoMCxCLmRlc2NyaXB0b3JDb25maWcpKEwuQ29yZVNoYXBlc1siZXhjbGFtYXRpb24t''@;'; + put 'put ''Y2lyY2xlIl0pKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoTC5Db3JlU2hhcGVzLCJpbmZvIiwoMCxCLmRlc2NyaXB0b3JDb25maWcpKEwuQ29yZVNoYXBlc1siaW5mby1jaXJjbGUiXSkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShMLkNvcmVTaGFwZXMsIm1lbnUiLCgwLEIuZGVzY3JpcHRvckNv''@;'; + put 'put ''bmZpZykoTC5Db3JlU2hhcGVzLmJhcnMpKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoTC5Db3JlU2hhcGVzLCJhdmF0YXIiLCgwLEIuZGVzY3JpcHRvckNvbmZpZykoTC5Db3JlU2hhcGVzLnVzZXIpKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoTC5Db3JlU2hhcGVzLCJjYXJldCIsKDAsQi5kZXNj''@;'; + put 'put ''cmlwdG9yQ29uZmlnKShMLkNvcmVTaGFwZXMuYW5nbGUpKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoTC5Db3JlU2hhcGVzLCJkaXJlY3RvcnkiLCgwLEIuZGVzY3JpcHRvckNvbmZpZykoTC5Db3JlU2hhcGVzLmZvbGRlcikpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShMLkNvcmVTaGFwZXMsIm5v''@;'; + put 'put ''dGlmaWNhdGlvbiIsKDAsQi5kZXNjcmlwdG9yQ29uZmlnKShMLkNvcmVTaGFwZXMuYmVsbCkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShMLkNvcmVTaGFwZXMsImNvbGxhcHNlIiwoMCxCLmRlc2NyaXB0b3JDb25maWcpKEwuQ29yZVNoYXBlc1siYW5nbGUtZG91YmxlIl0pKX0sIi4vcHJvamVj''@;'; + put 'put ''dHMvaWNvbnMvc3JjL3V0aWxzL2Rlc2NyaXB0b3ItY29uZmlnLnRzIjpmdW5jdGlvbihKZSxMLG1lKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KEwsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLEwuZGVzY3JpcHRvckNvbmZpZz12b2lkIDAsTC5kZXNjcmlwdG9yQ29uZmln''@;'; + put 'put ''PWZ1bmN0aW9uIEIoRSl7cmV0dXJue2VudW1lcmFibGU6ITAsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwLHZhbHVlOkV9fX0sIi4vcHJvamVjdHMvaWNvbnMvc3JjL3V0aWxzL3NoYXBlLXRlbXBsYXRlLW9ic2VydmVyLnRzIjpmdW5jdGlvbihKZSxMLG1lKXsidXNlIHN0cmljdCI7T2Jq''@;'; + put 'put ''ZWN0LmRlZmluZVByb3BlcnR5KEwsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLEwuU2hhcGVUZW1wbGF0ZU9ic2VydmVyPUwuY2hhbmdlSGFuZGxlckNhbGxiYWNrcz12b2lkIDAsTC5jaGFuZ2VIYW5kbGVyQ2FsbGJhY2tzPXt9O3ZhciBCPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gRSgpe3RoaXMu''@;'; + put 'put ''Y2FsbGJhY2tzPUwuY2hhbmdlSGFuZGxlckNhbGxiYWNrc31yZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KEUsImluc3RhbmNlIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEUuc2luZ2xlSW5zdGFuY2V8fChFLnNpbmdsZUluc3RhbmNlPW5ldyBFKSxFLnNpbmdsZUluc3RhbmNlfSxlbnVt''@;'; + put 'put ''ZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLEUucHJvdG90eXBlLnN1YnNjcmliZVRvPWZ1bmN0aW9uKE1lLFUpe3ZhciBRPXRoaXM7cmV0dXJuIHRoaXMuY2FsbGJhY2tzW01lXT8tMT09PXRoaXMuY2FsbGJhY2tzW01lXS5pbmRleE9mKFUpJiZ0aGlzLmNhbGxiYWNrc1tNZV0ucHVzaChV''@;'; + put 'put ''KTp0aGlzLmNhbGxiYWNrc1tNZV09W1VdLGZ1bmN0aW9uKCl7dmFyIFo9US5jYWxsYmFja3NbTWVdLmluZGV4T2YoVSk7US5jYWxsYmFja3NbTWVdLnNwbGljZShaLDEpLDA9PT1RLmNhbGxiYWNrc1tNZV0ubGVuZ3RoJiZkZWxldGUgUS5jYWxsYmFja3NbTWVdfX0sRS5wcm90b3R5cGUuZW1p''@;'; + put 'put ''dENoYW5nZXM9ZnVuY3Rpb24oTWUsVSl7dGhpcy5jYWxsYmFja3NbTWVdJiZ0aGlzLmNhbGxiYWNrc1tNZV0ubWFwKGZ1bmN0aW9uKFEpe1EoVSl9KX0sRX0oKTtMLlNoYXBlVGVtcGxhdGVPYnNlcnZlcj1CfSwiLi9wcm9qZWN0cy9pY29ucy9zcmMvdXRpbHMvc3ZnLXRhZy1nZW5lcmF0b3Iu''@;'; + put 'put ''dHMiOmZ1bmN0aW9uKEplLEwsbWUpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoTCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksTC5jbHJJY29uU1ZHPXZvaWQgMDtMLmNsckljb25TVkc9ZnVuY3Rpb24gVShRKXt2YXIgWj0iIjtyZXR1cm4gUS5pbmRleE9mKCItLWJhZGdl''@;'; + put 'put ''ZCIpPi0xJiYoWis9ImNhbi1iYWRnZSAiKSxRLmluZGV4T2YoIi0tYWxlcnRlZCIpPi0xJiYoWis9ImNhbi1hbGVydCAiKSxRLmluZGV4T2YoImNsci1pLXNvbGlkIik+LTEmJihaKz0iaGFzLXNvbGlkICIpLChaPyc8c3ZnIHZlcnNpb249IjEuMSIgY2xhc3M9IicrWisnIiB2aWV3Qm94PSIw''@;'; + put 'put ''IDAgMzYgMzYiIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaWRZTWlkIG1lZXQiXG4gICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgZm9jdXNhYmxlPSJmYWxzZSIgcm9sZT0iaW1nIj4nOic8c3Zn''@;'; + put 'put ''IHZlcnNpb249IjEuMSIgdmlld0JveD0iMCAwIDM2IDM2IiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWlkWU1pZCBtZWV0IlxuICAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIGZvY3VzYWJsZT0i''@;'; + put 'put ''ZmFsc2UiIHJvbGU9ImltZyI+JykrUSsiPC9zdmc+In19fSl9LDkzODc3OmZ1bmN0aW9uKFhlKXtYZS5leHBvcnRzPWZ1bmN0aW9uKEplKXt2YXIgTD17fTtmdW5jdGlvbiBtZShCKXtpZihMW0JdKXJldHVybiBMW0JdLmV4cG9ydHM7dmFyIEU9TFtCXT17aTpCLGw6ITEsZXhwb3J0czp7fX07''@;'; + put 'put ''cmV0dXJuIEplW0JdLmNhbGwoRS5leHBvcnRzLEUsRS5leHBvcnRzLG1lKSxFLmw9ITAsRS5leHBvcnRzfXJldHVybiBtZS5tPUplLG1lLmM9TCxtZS5kPWZ1bmN0aW9uKEIsRSxNZSl7bWUubyhCLEUpfHxPYmplY3QuZGVmaW5lUHJvcGVydHkoQixFLHtlbnVtZXJhYmxlOiEwLGdldDpNZX0p''@;'; + put 'put ''fSxtZS5yPWZ1bmN0aW9uKEIpeyJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZTeW1ib2wudG9TdHJpbmdUYWcmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShCLFN5bWJvbC50b1N0cmluZ1RhZyx7dmFsdWU6Ik1vZHVsZSJ9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoQiwiX19lc01vZHVsZSIs''@;'; + put 'put ''e3ZhbHVlOiEwfSl9LG1lLnQ9ZnVuY3Rpb24oQixFKXtpZigxJkUmJihCPW1lKEIpKSw4JkV8fDQmRSYmIm9iamVjdCI9PXR5cGVvZiBCJiZCJiZCLl9fZXNNb2R1bGUpcmV0dXJuIEI7dmFyIE1lPU9iamVjdC5jcmVhdGUobnVsbCk7aWYobWUucihNZSksT2JqZWN0LmRlZmluZVByb3BlcnR5''@;'; + put 'put ''KE1lLCJkZWZhdWx0Iix7ZW51bWVyYWJsZTohMCx2YWx1ZTpCfSksMiZFJiYic3RyaW5nIiE9dHlwZW9mIEIpZm9yKHZhciBVIGluIEIpbWUuZChNZSxVLGZ1bmN0aW9uKFEpe3JldHVybiBCW1FdfS5iaW5kKG51bGwsVSkpO3JldHVybiBNZX0sbWUubj1mdW5jdGlvbihCKXt2YXIgRT1CJiZC''@;'; + put 'put ''Ll9fZXNNb2R1bGU/ZnVuY3Rpb24oKXtyZXR1cm4gQi5kZWZhdWx0fTpmdW5jdGlvbigpe3JldHVybiBCfTtyZXR1cm4gbWUuZChFLCJhIixFKSxFfSxtZS5vPWZ1bmN0aW9uKEIsRSl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChCLEUpfSxtZS5wPSIiLG1l''@;'; + put 'put ''KG1lLnM9Ii4vcHJvamVjdHMvaWNvbnMvc3JjL3NoYXBlcy9hbGwtc2hhcGVzLnRzIil9KHsiLi9wcm9qZWN0cy9pY29ucy9zcmMvc2hhcGVzL2FsbC1zaGFwZXMudHMiOmZ1bmN0aW9uKEplLEwsbWUpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoTCwiX19lc01vZHVsZSIs''@;'; + put 'put ''e3ZhbHVlOiEwfSksTC5BbGxTaGFwZXM9dm9pZCAwO3ZhciBCPW1lKCIuL3Byb2plY3RzL2ljb25zL3NyYy9zaGFwZXMvY2hhcnQtc2hhcGVzLnRzIiksRT1tZSgiLi9wcm9qZWN0cy9pY29ucy9zcmMvc2hhcGVzL2NvbW1lcmNlLXNoYXBlcy50cyIpLE1lPW1lKCIuL3Byb2plY3RzL2ljb25z''@;'; + put 'put ''L3NyYy9zaGFwZXMvY29yZS1zaGFwZXMudHMiKSxVPW1lKCIuL3Byb2plY3RzL2ljb25zL3NyYy9zaGFwZXMvZXNzZW50aWFsLXNoYXBlcy50cyIpLFE9bWUoIi4vcHJvamVjdHMvaWNvbnMvc3JjL3NoYXBlcy9tZWRpYS1zaGFwZXMudHMiKSxaPW1lKCIuL3Byb2plY3RzL2ljb25zL3NyYy9z''@;'; + put 'put ''aGFwZXMvc29jaWFsLXNoYXBlcy50cyIpLGllPW1lKCIuL3Byb2plY3RzL2ljb25zL3NyYy9zaGFwZXMvdGVjaG5vbG9neS1zaGFwZXMudHMiKSxhZT1tZSgiLi9wcm9qZWN0cy9pY29ucy9zcmMvc2hhcGVzL3RleHQtZWRpdC1zaGFwZXMudHMiKSxZPW1lKCIuL3Byb2plY3RzL2ljb25zL3Ny''@;'; + put 'put ''Yy9zaGFwZXMvdHJhdmVsLXNoYXBlcy50cyIpLFc9W01lLkNvcmVTaGFwZXMsRS5Db21tZXJjZVNoYXBlcyxVLkVzc2VudGlhbFNoYXBlcyxRLk1lZGlhU2hhcGVzLFouU29jaWFsU2hhcGVzLGllLlRlY2hub2xvZ3lTaGFwZXMsWS5UcmF2ZWxTaGFwZXMsQi5DaGFydFNoYXBlcyxhZS5UZXh0''@;'; + put 'put ''RWRpdFNoYXBlc10sTj17fTtMLkFsbFNoYXBlcz1OO2Zvcih2YXIgZWU9MCxxPVc7ZWU8cS5sZW5ndGg7ZWUrKyl7dmFyIEo9cVtlZV07Zm9yKHZhciBzZSBpbiBKKUouaGFzT3duUHJvcGVydHkoc2UpJiYoTltzZV09SltzZV0pfSJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiZ3aW5kb3cu''@;'; + put 'put ''aGFzT3duUHJvcGVydHkoIkNsYXJpdHlJY29ucyIpJiZ3aW5kb3cuQ2xhcml0eUljb25zLmFkZChOKX0sIi4vcHJvamVjdHMvaWNvbnMvc3JjL3NoYXBlcy9jaGFydC1zaGFwZXMudHMiOmZ1bmN0aW9uKEplLEwsbWUpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoTCwiX19l''@;'; + put 'put ''c01vZHVsZSIse3ZhbHVlOiEwfSksTC5DaGFydFNoYXBlcz1MLkNsclNoYXBlQmVsbEN1cnZlPUwuQ2xyU2hhcGVUaWNrQ2hhcnQ9TC5DbHJTaGFwZVNjYXR0ZXJQbG90PUwuQ2xyU2hhcGVQaWVDaGFydD1MLkNsclNoYXBlTGluZUNoYXJ0PUwuQ2xyU2hhcGVIZWF0TWFwPUwuQ2xyU2hhcGVH''@;'; + put 'put ''cmlkQ2hhcnQ9TC5DbHJTaGFwZUN1cnZlQ2hhcnQ9TC5DbHJTaGFwZUNsb3VkQ2hhcnQ9TC5DbHJTaGFwZUJ1YmJsZUNoYXJ0PUwuQ2xyU2hhcGVCb3hQbG90PUwuQ2xyU2hhcGVCYXJDaGFydD1MLkNsclNoYXBlQXhpc0NoYXJ0PXZvaWQgMDt2YXIgQj1tZSgiLi9wcm9qZWN0cy9pY29ucy9z''@;'; + put 'put ''cmMvdXRpbHMvZGVzY3JpcHRvci1jb25maWcudHMiKSxFPW1lKCIuL3Byb2plY3RzL2ljb25zL3NyYy91dGlscy9zdmctdGFnLWdlbmVyYXRvci50cyIpO0wuQ2xyU2hhcGVBeGlzQ2hhcnQ9KDAsRS5jbHJJY29uU1ZHKSgnXG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91''@;'; + put 'put ''dGxpbmUtcGF0aC0xIiBkPSJNIDMyIDUgTCA0IDUgQyAyLjg5NSA1IDIgNS44OTUgMiA3IEwgMiAyOSBDIDIgMzAuMTA1IDIuODk1IDMxIDQgMzEgTCAzMiAzMSBDIDMzLjEwNSAzMSAzNCAzMC4xMDUgMzQgMjkgTCAzNCA3IEMgMzQgNS44OTUgMzMuMTA1IDUgMzIgNSBaIE0gNCAyOSBMIDQg''@;'; + put 'put ''NyBMIDMyIDcgTCAzMiAyOSBaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNIDYuMDA3IDI2LjczMSBMIDI3LjczIDI2LjczIEMgMjguNDkgMjYuNjcgMjguOTEgMjUuOCAyOC40NyAyNS4xNyBDIDI4LjMgMjQuOTIgMjguMDMgMjQu''@;'; + put 'put ''NzYgMjcuNzMgMjQuNzQgTCA4LjAwMSAyNC43MzYgTCA4LjAxIDExLjAxIEMgOC4wMSAxMC4yMyA3LjE3IDkuNzUgNi41IDEwLjE0IEMgNi4xOSAxMC4zMSA2IDEwLjY1IDYgMTEuMDEgTCA2LjAwNyAyNi43MzEgWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQt''@;'; + put 'put ''cGF0aC0xIiBkPSJNIDM0IDcgTCAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIgMzEgTCA0IDMxIEMgMi44OTYgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBDIDIgNS44OTYgMi44OTYgNSA0IDUgTCAzMiA1IEMgMzMuMTA1IDUgMzQgNS44OTYgMzQgNyBaIE0gNi4wMDcgMjYuNzMxIEwg''@;'; + put 'put ''MjcuNzMgMjYuNzMgQyAyOC40OSAyNi42NyAyOC45MSAyNS44IDI4LjQ3IDI1LjE3IEMgMjguMyAyNC45MiAyOC4wMyAyNC43NiAyNy43MyAyNC43NCBMIDguMDAxIDI0LjczNiBMIDguMDEgMTEuMDEgQyA4LjAxIDEwLjIzIDcuMTcgOS43NSA2LjUgMTAuMTQgQyA2LjE5IDEwLjMxIDYgMTAu''@;'; + put 'put ''NjUgNiAxMS4wMSBaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgZD0iTSAzMiAxMy4yMiBMIDMyIDI5IEwgNCAyOSBMIDQgNyBMIDIyLjU3IDcgQyAyMi41MjQgNi42NjggMjIuNTAxIDYuMzM0IDIyLjUgNiBD''@;'; + put 'put ''IDIyLjUwMSA1LjY2NSAyMi41MjQgNS4zMzEgMjIuNTcgNSBMIDQgNSBDIDIuODk1IDUgMiA1Ljg5NSAyIDcgTCAyIDI5IEMgMiAzMC4xMDQgMi44OTUgMzEgNCAzMSBMIDMyIDMxIEMgMzMuMTA0IDMxIDM0IDMwLjEwNCAzNCAyOSBMIDM0IDEyLjM0IEMgMzMuMzggMTIuNzMgMzIuNzA2IDEz''@;'; + put 'put ''LjAyNiAzMiAxMy4yMiBaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgZD0iTSA2LjAwNyAyNi43MzEgTCAyNy43MyAyNi43MyBDIDI4LjQ5IDI2LjY3IDI4LjkxIDI1LjggMjguNDcgMjUuMTcgQyAyOC4zIDI0''@;'; + put 'put ''LjkyIDI4LjAzIDI0Ljc2IDI3LjczIDI0Ljc0IEwgOC4wMDEgMjQuNzM2IEwgOC4wMSAxMS4wMSBDIDguMDEgMTAuMjMgNy4xNyA5Ljc1IDYuNSAxMC4xNCBDIDYuMTkgMTAuMzEgNiAxMC42NSA2IDExLjAxIEwgNi4wMDcgMjYuNzMxIFoiLz5cbiAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0''@;'; + put 'put ''bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0gMzQgMTIuMzQgTCAzNCAyOSBD''@;'; + put 'put ''IDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIgMzEgTCA0IDMxIEMgMi44OTYgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBDIDIgNS44OTYgMi44OTYgNSA0IDUgTCAyMi41NyA1IEMgMjEuOTY5IDkuMjMzIDI1LjA1IDEzLjEgMjkuMzEgMTMuNDYgTCAzMC4zMiAxMy40OCBDIDMxLjYyNiAxMy40Mjkg''@;'; + put 'put ''MzIuODk1IDEzLjAzNiAzNCAxMi4zNCBaIE0gNi4wMDcgMjYuNzMxIEwgMjcuNzMgMjYuNzMgQyAyOC40OSAyNi42NyAyOC45MSAyNS44IDI4LjQ3IDI1LjE3IEMgMjguMyAyNC45MiAyOC4wMyAyNC43NiAyNy43MyAyNC43NCBMIDguMDAxIDI0LjczNiBMIDguMDEgMTEuMDEgQyA4LjAxIDEw''@;'; + put 'put ''LjIzIDcuMTcgOS43NSA2LjUgMTAuMTQgQyA2LjE5IDEwLjMxIDYgMTAuNjUgNiAxMS4wMSBaIi8+XG4gIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgPHBh''@;'; + put 'put ''dGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0gMzQgMjkgQyAzNCAzMC4xMDUgMzMuMTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIuODk1IDMxIDIgMzAuMTA1IDIgMjkgTCAyIDcgQyAyIDUuODk1IDIuODk1IDUgNCA1IEwg''@;'; + put 'put ''MjEuOTU4IDUgTCAyMC43ODYgNyBMIDQgNyBMIDQgMjkgTCAzMiAyOSBMIDMyIDE1LjM1NyBMIDM0IDE1LjM1NyBaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIiBkPSJNIDYuMDA3IDI2LjczMSBMIDI3Ljcz''@;'; + put 'put ''IDI2LjczIEMgMjguNDkgMjYuNjcgMjguOTEgMjUuOCAyOC40NyAyNS4xNyBDIDI4LjMgMjQuOTIgMjguMDMgMjQuNzYgMjcuNzMgMjQuNzQgTCA4LjAwMSAyNC43MzYgTCA4LjAxIDExLjAxIEMgOC4wMSAxMC4yMyA3LjE3IDkuNzUgNi41IDEwLjE0IEMgNi4xOSAxMC4zMSA2IDEwLjY1IDYg''@;'; + put 'put ''MTEuMDEgTCA2LjAwNyAyNi43MzEgWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTSAyNi44NTQgMS4xNDQgTCAyMS4xMzQgMTEuMDA0IEMgMjAuNTc5IDExLjgxOCAyMS4xMTQg''@;'; + put 'put ''MTIuOTI4IDIyLjA5NyAxMy4wMDEgQyAyMi4xNDIgMTMuMDA1IDIyLjE4OCAxMy4wMDYgMjIuMjM0IDEzLjAwNCBMIDMzLjY4NCAxMy4wMDQgQyAzNC42NjkgMTMuMDM2IDM1LjMxOSAxMS45OTEgMzQuODU1IDExLjEyMiBDIDM0LjgzNCAxMS4wODEgMzQuODEgMTEuMDQyIDM0Ljc4NCAxMS4w''@;'; + put 'put ''MDQgTCAyOS4wNjQgMS4xNDQgQyAyOC41NyAwLjI5OSAyNy4zNDggMC4yOTkgMjYuODU0IDEuMTQ0IFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIgZD0iTSAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIg''@;'; + put 'put ''MzEgTCA0IDMxIEMgMi44OTYgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBDIDIgNS44OTYgMi44OTYgNSA0IDUgTCAyMS45NTggNSBMIDE3LjYyNSAxMi4zOTUgQyAxNi43OTUgMTMuNjAxIDE3LjU5NCAxNS4yNDUgMTkuMDY0IDE1LjM1MSBDIDE5LjEzNCAxNS4zNTcgMTkuMjAxIDE1LjM1OSAx''@;'; + put 'put ''OS4yNyAxNS4zNTcgTCAzNCAxNS4zNTcgWiBNIDYuMDA3IDI2LjczMSBMIDI3LjczIDI2LjczIEMgMjguNDkgMjYuNjcgMjguOTEgMjUuOCAyOC40NyAyNS4xNyBDIDI4LjMgMjQuOTIgMjguMDMgMjQuNzYgMjcuNzMgMjQuNzQgTCA4LjAwMSAyNC43MzYgTCA4LjAxIDExLjAxIEMgOC4wMSAx''@;'; + put 'put ''MC4yMyA3LjE3IDkuNzUgNi41IDEwLjE0IEMgNi4xOSAxMC4zMSA2IDEwLjY1IDYgMTEuMDEgWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNIDI2Ljg1NCAxLjE0NCBMIDIxLjEzNCAx''@;'; + put 'put ''MS4wMDQgQyAyMC41NzkgMTEuODE4IDIxLjExNCAxMi45MjggMjIuMDk3IDEzLjAwMSBDIDIyLjE0MiAxMy4wMDUgMjIuMTg4IDEzLjAwNiAyMi4yMzQgMTMuMDA0IEwgMzMuNjg0IDEzLjAwNCBDIDM0LjY2OSAxMy4wMzYgMzUuMzE5IDExLjk5MSAzNC44NTUgMTEuMTIyIEMgMzQuODM0IDEx''@;'; + put 'put ''LjA4MSAzNC44MSAxMS4wNDIgMzQuNzg0IDExLjAwNCBMIDI5LjA2NCAxLjE0NCBDIDI4LjU3IDAuMjk5IDI3LjM0OCAwLjI5OSAyNi44NTQgMS4xNDQgWiIvPicpLEwuQ2xyU2hhcGVCYXJDaGFydD0oMCxFLmNsckljb25TVkcpKCdcbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xy''@;'; + put 'put ''LWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMiw1SDRBMiwyLDAsMCwwLDIsN1YyOWEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWN0EyLDIsMCwwLDAsMzIsNVpNNCwyOVY3SDMyVjI5WiI+PC9wYXRoPlxuICA8cGF0aCBkPSJNIDcgMTAgTCAxMyAxMCBMIDEzIDI2IEwgMTEuNCAyNiBM''@;'; + put 'put ''IDExLjQgMTEuNiBMIDguNiAxMS42IEwgOC42IDI2IEwgNyAyNiBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiI+PC9wYXRoPlxuICA8cGF0aCBkPSJNIDE1IDE5IEwgMjEgMTkgTCAyMSAyNiBMIDE5LjQgMjYgTCAxOS40IDIwLjYgTCAxNi42IDIwLjYgTCAx''@;'; + put 'put ''Ni42IDI2IEwgMTUgMjYgWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSAyMyAxNiBMIDI5IDE2IEwgMjkgMjYgTCAyNy40IDI2IEwgMjcuNCAxNy42IEwgMjQuNiAxNy42IEwgMjQuNiAyNiBMIDIzIDI2IFoiIGNsYXNz''@;'; + put 'put ''PSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00Ij48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0gMzQgNyBMIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NSAzMSAyIDMwLjEw''@;'; + put 'put ''NSAyIDI5IEwgMiA3IEMgMiA1Ljg5NSAyLjg5NSA1IDQgNSBMIDMyIDUgQyAzMy4xMDUgNSAzNCA1Ljg5NSAzNCA3IFogTSA3IDI2IEwgMTMgMjYgTCAxMyAxMCBMIDcgMTAgWiBNIDE1IDI2IEwgMjEgMjYgTCAyMSAxOSBMIDE1IDE5IFogTSAyMyAyNiBMIDI5IDI2IEwgMjkgMTYgTCAyMyAx''@;'; + put 'put ''NiBaIj48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgZD0iTSAzMiAxMy4yMiBMIDMyIDI5IEwgNCAyOSBMIDQgNyBMIDIyLjU3IDcgQyAyMi41MjQgNi42NjggMjIuNTAxIDYuMzM0IDIyLjUgNiBDIDIy''@;'; + put 'put ''LjUwMSA1LjY2NSAyMi41MjQgNS4zMzEgMjIuNTcgNSBMIDQgNSBDIDIuODk1IDUgMiA1Ljg5NSAyIDcgTCAyIDI5IEMgMiAzMC4xMDQgMi44OTUgMzEgNCAzMSBMIDMyIDMxIEMgMzMuMTA1IDMxIDM0IDMwLjEwNCAzNCAyOSBMIDM0IDEyLjM0IEMgMzMuMzggMTIuNzMgMzIuNzA2IDEzLjAy''@;'; + put 'put ''NiAzMiAxMy4yMiBaIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gNyAxMCBMIDEzIDEwIEwgMTMgMjYgTCAxMS40IDI2IEwgMTEuNCAxMS42IEwgOC42IDExLjYgTCA4LjYgMjYgTCA3IDI2IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdl''@;'; + put 'put ''ZCI+PC9wYXRoPlxuICA8cGF0aCBkPSJNIDE1IDE5IEwgMjEgMTkgTCAyMSAyNiBMIDE5LjQgMjYgTCAxOS40IDIwLjYgTCAxNi42IDIwLjYgTCAxNi42IDI2IEwgMTUgMjYgWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIj48L3Bh''@;'; + put 'put ''dGg+XG4gIDxwYXRoIGQ9Ik0gMjMgMTYgTCAyOSAxNiBMIDI5IDI2IEwgMjcuNCAyNiBMIDI3LjQgMTcuNiBMIDI0LjYgMTcuNiBMIDI0LjYgMjYgTCAyMyAyNiBaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQiPjwvcGF0aD5cbiAg''@;'; + put 'put ''PGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC01LS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiPjwvY2lyY2xlPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEt''@;'; + put 'put ''LWJhZGdlZCIgZD0iTSAzNCAxMi4zNCBMIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NSAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3IEMgMiA1Ljg5NSAyLjg5NSA1IDQgNSBMIDIyLjU3IDUgQyAyMS45NjkgOS4yMzMgMjUuMDUgMTMuMSAyOS4zMSAxMy40''@;'; + put 'put ''NiBMIDMwLjMyIDEzLjQ4IEMgMzEuNjI1IDEzLjQyOSAzMi44OTUgMTMuMDM2IDM0IDEyLjM0IFogTSA3IDI2IEwgMTMgMjYgTCAxMyAxMCBMIDcgMTAgWiBNIDE1IDI2IEwgMjEgMjYgTCAyMSAxOSBMIDE1IDE5IFogTSAyMyAyNiBMIDI5IDI2IEwgMjkgMTYgTCAyMyAxNiBaIj48L3BhdGg+''@;'; + put 'put ''XG4gIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiPjwvY2lyY2xlPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBh''@;'; + put 'put ''dGgtMS0tYWxlcnRlZCIgZD0iTSAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIgMzEgTCA0IDMxIEMgMi44OTUgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBDIDIgNS44OTUgMi44OTUgNSA0IDUgTCAyMS45NTggNSBMIDIwLjc4NiA3IEwgNCA3IEwgNCAyOSBMIDMyIDI5IEwgMzIgMTUu''@;'; + put 'put ''MzU3IEwgMzQgMTUuMzU3IFoiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSA3IDEwIEwgMTMgMTAgTCAxMyAyNiBMIDExLjQgMjYgTCAxMS40IDExLjYgTCA4LjYgMTEuNiBMIDguNiAyNiBMIDcgMjYgWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTIt''@;'; + put 'put ''LWFsZXJ0ZWQiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSAxNSAxOSBMIDIxIDE5IEwgMjEgMjYgTCAxOS40IDI2IEwgMTkuNCAyMC42IEwgMTYuNiAyMC42IEwgMTYuNiAyNiBMIDE1IDI2IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVy''@;'; + put 'put ''dGVkIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gMjMgMTYgTCAyOSAxNiBMIDI5IDI2IEwgMjcuNCAyNiBMIDI3LjQgMTcuNiBMIDI0LjYgMTcuNiBMIDI0LjYgMjYgTCAyMyAyNiBaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRlZCI+''@;'; + put 'put ''PC9wYXRoPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTSAyNi44NTQgMS4xNDQgTCAyMS4xMzQgMTEuMDA0IEMgMjAuNTc5IDExLjgxOCAyMS4xMTQgMTIuOTI4IDIyLjA5NyAxMy4w''@;'; + put 'put ''MDEgQyAyMi4xNDIgMTMuMDA1IDIyLjE4OCAxMy4wMDYgMjIuMjM0IDEzLjAwNCBMIDMzLjY4NCAxMy4wMDQgQyAzNC42NjkgMTMuMDM2IDM1LjMxOSAxMS45OTEgMzQuODU1IDExLjEyMiBDIDM0LjgzNCAxMS4wODEgMzQuODEgMTEuMDQyIDM0Ljc4NCAxMS4wMDQgTCAyOS4wNjQgMS4xNDQg''@;'; + put 'put ''QyAyOC41NyAwLjI5OSAyNy4zNDggMC4yOTkgMjYuODU0IDEuMTQ0IFoiPjwvcGF0aD5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIgZD0iTSAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIgMzEgTCA0IDMxIEMg''@;'; + put 'put ''Mi44OTUgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBDIDIgNS44OTUgMi44OTUgNSA0IDUgTCAyMS45NTggNSBMIDE3LjYyNSAxMi4zOTUgQyAxNi43OTUgMTMuNjAxIDE3LjU5NCAxNS4yNDUgMTkuMDY0IDE1LjM1MSBDIDE5LjEzNCAxNS4zNTcgMTkuMjAxIDE1LjM1OSAxOS4yNyAxNS4zNTcg''@;'; + put 'put ''TCAzNCAxNS4zNTcgWiBNIDcgMjYgTCAxMyAyNiBMIDEzIDEwIEwgNyAxMCBaIE0gMTUgMjYgTCAyMSAyNiBMIDIxIDE5IEwgMTUgMTkgWiBNIDIzIDI2IEwgMjkgMjYgTCAyOSAxNiBMIDIzIDE2IFoiPjwvcGF0aD5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1p''@;'; + put 'put ''LXNvbGlkLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTSAyNi44NTQgMS4xNDQgTCAyMS4xMzQgMTEuMDA0IEMgMjAuNTc5IDExLjgxOCAyMS4xMTQgMTIuOTI4IDIyLjA5NyAxMy4wMDEgQyAyMi4xNDIgMTMuMDA1IDIyLjE4OCAxMy4wMDYgMjIuMjM0IDEzLjAwNCBMIDMzLjY4''@;'; + put 'put ''NCAxMy4wMDQgQyAzNC42NjkgMTMuMDM2IDM1LjMxOSAxMS45OTEgMzQuODU1IDExLjEyMiBDIDM0LjgzNCAxMS4wODEgMzQuODEgMTEuMDQyIDM0Ljc4NCAxMS4wMDQgTCAyOS4wNjQgMS4xNDQgQyAyOC41NyAwLjI5OSAyNy4zNDggMC4yOTkgMjYuODU0IDEuMTQ0IFoiPjwvcGF0aD4nKSxM''@;'; + put 'put ''LkNsclNoYXBlQm94UGxvdD0oMCxFLmNsckljb25TVkcpKCdcbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMiw1SDRBMiwyLDAsMCwwLDIsN1YyOWEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWN0EyLDIsMCwwLDAsMzIsNVpN''@;'; + put 'put ''NCwyOVY3SDMyVjI5WiI+PC9wYXRoPlxuICA8cGF0aCBkPSJNIDcgMTIgTCAxNyAxMiBMIDE3IDI2IEwgNyAyNiBMIDcgMTIgWiBNIDguNiAyNC40IEwgMTUuNCAyNC40IEwgMTUuNCAxOC44IEwgOC42IDE4LjggTCA4LjYgMjQuNCBaIE0gMTUuNCAxMy42IEwgOC42IDEzLjYgTCA4LjYgMTcu''@;'; + put 'put ''MiBMIDE1LjQgMTcuMiBMIDE1LjQgMTMuNiBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiI+PC9wYXRoPlxuICA8cGF0aCBkPSJNIDE5IDI0IEwgMjkgMjQgTCAyOSAxMCBMIDE5IDEwIEwgMTkgMjQgWiBNIDIwLjYgMTEuNiBMIDI3LjQgMTEuNiBMIDI3LjQg''@;'; + put 'put ''MTcuMiBMIDIwLjYgMTcuMiBMIDIwLjYgMTEuNiBaIE0gMjcuNCAyMi40IEwgMjAuNiAyMi40IEwgMjAuNiAxOC44IEwgMjcuNCAxOC44IEwgMjcuNCAyMi40IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIj48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHIt''@;'; + put 'put ''aS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0gMzQgNyBMIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NSAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3IEMgMiA1Ljg5NSAyLjg5NSA1IDQgNSBMIDMyIDUgQyAzMy4xMDUgNSAzNCA1Ljg5NSAzNCA3''@;'; + put 'put ''IFogTSA3IDI2IEwgMTcgMjYgTCAxNyAxMiBMIDcgMTIgWiBNIDkgMTkgTCAxNSAxOSBMIDE1IDI0IEwgOSAyNCBaIE0gMTUgMTcgTCA5IDE3IEwgOSAxNCBMIDE1IDE0IFogTSAxOSAyNCBMIDI5IDI0IEwgMjkgMTAgTCAxOSAxMCBaIE0gMjEgMTIgTCAyNyAxMiBMIDI3IDE3IEwgMjEgMTcg''@;'; + put 'put ''WiBNIDI3IDIyIEwgMjEgMjIgTCAyMSAxOSBMIDI3IDE5IFoiPjwvcGF0aD5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiBkPSJNIDMyIDEzLjIyIEwgMzIgMjkgTCA0IDI5IEwgNCA3IEwgMjIuNTcgNyBDIDIyLjUy''@;'; + put 'put ''NCA2LjY2OCAyMi41MDEgNi4zMzQgMjIuNSA2IEMgMjIuNTAxIDUuNjY1IDIyLjUyNCA1LjMzMSAyMi41NyA1IEwgNCA1IEMgMi44OTUgNSAyIDUuODk1IDIgNyBMIDIgMjkgQyAyIDMwLjEwNCAyLjg5NSAzMSA0IDMxIEwgMzIgMzEgQyAzMy4xMDUgMzEgMzQgMzAuMTA0IDM0IDI5IEwgMzQg''@;'; + put 'put ''MTIuMzQgQyAzMy4zOCAxMi43MyAzMi43MDYgMTMuMDI2IDMyIDEzLjIyIFoiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSA3IDEyIEwgMTcgMTIgTCAxNyAyNiBMIDcgMjYgTCA3IDEyIFogTSA4LjYgMjQuNCBMIDE1LjQgMjQuNCBMIDE1LjQgMTguOCBMIDguNiAxOC44IEwgOC42IDI0LjQgWiBN''@;'; + put 'put ''IDE1LjQgMTMuNiBMIDguNiAxMy42IEwgOC42IDE3LjIgTCAxNS40IDE3LjIgTCAxNS40IDEzLjYgWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gMTkgMTAgTCAyMy43MjggMTAgQyAyNC4x''@;'; + put 'put ''MDUgMTAuNTk2IDI0LjU2NCAxMS4xMzUgMjUuMDkgMTEuNiBMIDIwLjYgMTEuNiBMIDIwLjYgMTcuMiBMIDI3LjQgMTcuMiBMIDI3LjQgMTIuOTg3IEMgMjcuOTA5IDEzLjE3NyAyOC40NDUgMTMuMzEzIDI5IDEzLjM4NyBMIDI5IDI0IEwgMTkgMjQgWiBNIDI3LjQgMTguOCBMIDIwLjYgMTgu''@;'; + put 'put ''OCBMIDIwLjYgMjIuNCBMIDI3LjQgMjIuNCBaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiPjwvcGF0aD5cbiAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQg''@;'; + put 'put ''Y2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiPjwvY2lyY2xlPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgZD0iTSAzNCAxMi4zNCBMIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEg''@;'; + put 'put ''QyAyLjg5NSAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3IEMgMiA1Ljg5NSAyLjg5NSA1IDQgNSBMIDIyLjU3IDUgQyAyMi4zMTIgNi44MTcgMjIuNzMyIDguNTY2IDIzLjYzMyAxMCBMIDE5IDEwIEwgMTkgMjQgTCAyOSAyNCBMIDI5IDEzLjQyNyBDIDI5LjEwMyAxMy40NCAyOS4yMDYgMTMuNDUx''@;'; + put 'put ''IDI5LjMxIDEzLjQ2IEwgMzAuMzIgMTMuNDggQyAzMS42MjUgMTMuNDI5IDMyLjg5NSAxMy4wMzYgMzQgMTIuMzQgWiBNIDcgMjYgTCAxNyAyNiBMIDE3IDEyIEwgNyAxMiBaIE0gOSAxOSBMIDE1IDE5IEwgMTUgMjQgTCA5IDI0IFogTSAxNSAxNyBMIDkgMTcgTCA5IDE0IEwgMTUgMTQgWiBN''@;'; + put 'put ''IDIxIDEyIEwgMjUuNDcyIDEyIEMgMjUuOTQgMTIuMzUyIDI2LjQ1MiAxMi42NSAyNyAxMi44ODUgTCAyNyAxNyBMIDIxIDE3IFogTSAyNyAyMiBMIDIxIDIyIEwgMjEgMTkgTCAyNyAxOSBaIj48L3BhdGg+XG4gIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29s''@;'; + put 'put ''aWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiPjwvY2lyY2xlPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgZD0iTSAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEg''@;'; + put 'put ''MzIgMzEgTCA0IDMxIEMgMi44OTUgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBDIDIgNS44OTUgMi44OTUgNSA0IDUgTCAyMS45NTggNSBMIDIwLjc4NiA3IEwgNCA3IEwgNCAyOSBMIDMyIDI5IEwgMzIgMTUuMzU3IEwgMzQgMTUuMzU3IFoiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSA3IDEyIEwg''@;'; + put 'put ''MTcgMTIgTCAxNyAyNiBMIDcgMjYgTCA3IDEyIFogTSA4LjYgMjQuNCBMIDE1LjQgMjQuNCBMIDE1LjQgMTguOCBMIDguNiAxOC44IEwgOC42IDI0LjQgWiBNIDE1LjQgMTMuNiBMIDguNiAxMy42IEwgOC42IDE3LjIgTCAxNS40IDE3LjIgTCAxNS40IDEzLjYgWiIgY2xhc3M9ImNsci1pLW91''@;'; + put 'put ''dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSAyOSAyNCBMIDE5IDI0IEwgMTkgMTUuMzQ1IEMgMTkuMDIxIDE1LjM0OCAyMC42IDE1LjM2IDIwLjYgMTUuMzYgTCAyMC42IDE3LjIgTCAyNy40IDE3LjIgTCAyNy40IDE1''@;'; + put 'put ''LjM2IEwgMjkgMTUuMzU3IEwgMjkgMjQgWiBNIDI3LjQgMTguOCBMIDIwLjYgMTguOCBMIDIwLjYgMjIuNCBMIDI3LjQgMjIuNCBMIDI3LjQgMTguOCBaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCI+PC9wYXRoPlxuICA8cGF0''@;'; + put 'put ''aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTSAyNi44NTQgMS4xNDQgTCAyMS4xMzQgMTEuMDA0IEMgMjAuNTc5IDExLjgxOCAyMS4xMTQgMTIuOTI4IDIyLjA5NyAxMy4wMDEgQyAyMi4xNDIgMTMu''@;'; + put 'put ''MDA1IDIyLjE4OCAxMy4wMDYgMjIuMjM0IDEzLjAwNCBMIDMzLjY4NCAxMy4wMDQgQyAzNC42NjkgMTMuMDM2IDM1LjMxOSAxMS45OTEgMzQuODU1IDExLjEyMiBDIDM0LjgzNCAxMS4wODEgMzQuODEgMTEuMDQyIDM0Ljc4NCAxMS4wMDQgTCAyOS4wNjQgMS4xNDQgQyAyOC41NyAwLjI5OSAy''@;'; + put 'put ''Ny4zNDggMC4yOTkgMjYuODU0IDEuMTQ0IFoiPjwvcGF0aD5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIgZD0iTSAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIgMzEgTCA0IDMxIEMgMi44OTUgMzEgMiAzMC4x''@;'; + put 'put ''MDUgMiAyOSBMIDIgNyBDIDIgNS44OTUgMi44OTUgNSA0IDUgTCAyMS45NTggNSBMIDE5LjAyOCAxMCBMIDE5IDEwIEwgMTkgMTAuMDQ4IEwgMTcuNjI1IDEyLjM5NSBDIDE2LjgwNyAxMy41ODMgMTcuNTcxIDE1LjE5NyAxOSAxNS4zNDUgTCAxOSAyNCBMIDI5IDI0IEwgMjkgMTUuMzU3IEwg''@;'; + put 'put ''MzQgMTUuMzU3IFogTSA3IDI2IEwgMTcgMjYgTCAxNyAxMiBMIDcgMTIgWiBNIDkgMTkgTCAxNSAxOSBMIDE1IDI0IEwgOSAyNCBaIE0gMTUgMTcgTCA5IDE3IEwgOSAxNCBMIDE1IDE0IFogTSAyNyAxNyBMIDIxIDE3IEwgMjEgMTUuMzU3IEwgMjcgMTUuMzU3IFogTSAyNyAyMiBMIDIxIDIy''@;'; + put 'put ''IEwgMjEgMTkgTCAyNyAxOSBaIj48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0gMjYuODU0IDEuMTQ0IEwgMjEuMTM0IDExLjAwNCBDIDIwLjU3OSAxMS44MTggMjEuMTE0IDEy''@;'; + put 'put ''LjkyOCAyMi4wOTcgMTMuMDAxIEMgMjIuMTQyIDEzLjAwNSAyMi4xODggMTMuMDA2IDIyLjIzNCAxMy4wMDQgTCAzMy42ODQgMTMuMDA0IEMgMzQuNjY5IDEzLjAzNiAzNS4zMTkgMTEuOTkxIDM0Ljg1NSAxMS4xMjIgQyAzNC44MzQgMTEuMDgxIDM0LjgxIDExLjA0MiAzNC43ODQgMTEuMDA0''@;'; + put 'put ''IEwgMjkuMDY0IDEuMTQ0IEMgMjguNTcgMC4yOTkgMjcuMzQ4IDAuMjk5IDI2Ljg1NCAxLjE0NCBaIj48L3BhdGg+JyksTC5DbHJTaGFwZUJ1YmJsZUNoYXJ0PSgwLEUuY2xySWNvblNWRykoJ1xuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0i''@;'; + put 'put ''TSAzMiA1IEwgNCA1IEMgMi44OTUgNSAyIDUuODk1IDIgNyBMIDIgMjkgQyAyIDMwLjEwNSAyLjg5NSAzMSA0IDMxIEwgMzIgMzEgQyAzMy4xMDUgMzEgMzQgMzAuMTA1IDM0IDI5IEwgMzQgNyBDIDM0IDUuODk1IDMzLjEwNSA1IDMyIDUgWiBNIDQgMjkgTCA0IDcgTCAzMiA3IEwgMzIgMjkg''@;'; + put 'put ''WiI+PC9wYXRoPlxuICA8cGF0aCBkPSJNIDI5IDE4IEMgMjkgMTkuNjU3IDI3LjY1NyAyMSAyNiAyMSBDIDI0LjM0MyAyMSAyMyAxOS42NTcgMjMgMTggQyAyMyAxNi4zNDMgMjQuMzQzIDE1IDI2IDE1IEMgMjcuNjU3IDE1IDI5IDE2LjM0MyAyOSAxOCBaIE0gMjYgMTYuNiBDIDI1LjIyNyAx''@;'; + put 'put ''Ni42IDI0LjYgMTcuMjI3IDI0LjYgMTggQyAyNC42IDE4Ljc3MyAyNS4yMjcgMTkuNCAyNiAxOS40IEMgMjYuNzczIDE5LjQgMjcuNCAxOC43NzMgMjcuNCAxOCBDIDI3LjQgMTcuMjI3IDI2Ljc3MyAxNi42IDI2IDE2LjYgWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1w''@;'; + put 'put ''YXRoLTIiIHJ4PSIzIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gMTUgMTQgQyAxNSAxNi4yMDkgMTMuMjA5IDE4IDExIDE4IEMgOC43OTEgMTggNyAxNi4yMDkgNyAxNCBDIDcgMTEuNzkxIDguNzkxIDEwIDExIDEwIEMgMTMuMjA5IDEwIDE1IDExLjc5MSAxNSAxNCBaIE0gMTEgMTEuNiBDIDku''@;'; + put 'put ''Njc1IDExLjYgOC42IDEyLjY3NSA4LjYgMTQgQyA4LjYgMTUuMzI1IDkuNjc1IDE2LjQgMTEgMTYuNCBDIDEyLjMyNSAxNi40IDEzLjQgMTUuMzI1IDEzLjQgMTQgQyAxMy40IDEyLjY3NSAxMi4zMjUgMTEuNiAxMSAxMS42IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUt''@;'; + put 'put ''cGF0aC0zIiByeD0iMyI+PC9wYXRoPlxuICA8cGF0aCBkPSJNIDIxIDIzIEMgMjEgMjQuNjU3IDE5LjY1NyAyNiAxOCAyNiBDIDE2LjM0MyAyNiAxNSAyNC42NTcgMTUgMjMgQyAxNSAyMS4zNDMgMTYuMzQzIDIwIDE4IDIwIEMgMTkuNjU3IDIwIDIxIDIxLjM0MyAyMSAyMyBaIE0gMTggMjEu''@;'; + put 'put ''NiBDIDE3LjIyNyAyMS42IDE2LjYgMjIuMjI3IDE2LjYgMjMgQyAxNi42IDIzLjc3MyAxNy4yMjcgMjQuNCAxOCAyNC40IEMgMTguNzczIDI0LjQgMTkuNCAyMy43NzMgMTkuNCAyMyBDIDE5LjQgMjIuMjI3IDE4Ljc3MyAyMS42IDE4IDIxLjYgWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xy''@;'; + put 'put ''LWktb3V0bGluZS1wYXRoLTQiIHJ4PSIzIj48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0gMzQgNyBMIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NiAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3''@;'; + put 'put ''IEMgMiA1Ljg5NiAyLjg5NiA1IDQgNSBMIDMyIDUgQyAzMy4xMDUgNSAzNCA1Ljg5NiAzNCA3IFogTSAxMSAxMCBDIDguNzkxIDEwIDcgMTEuNzkxIDcgMTQgQyA3IDE2LjIwOSA4Ljc5MSAxOCAxMSAxOCBDIDEzLjIwOSAxOCAxNSAxNi4yMDkgMTUgMTQgQyAxNSAxMS43OTEgMTMuMjA5IDEw''@;'; + put 'put ''IDExIDEwIFogTSAyNiAxNSBDIDI0LjM0MyAxNSAyMyAxNi4zNDMgMjMgMTggQyAyMyAxOS42NTcgMjQuMzQzIDIxIDI2IDIxIEMgMjcuNjU3IDIxIDI5IDE5LjY1NyAyOSAxOCBDIDI5IDE2LjM0MyAyNy42NTcgMTUgMjYgMTUgWiBNIDE4IDIwIEMgMTYuMzQzIDIwIDE1IDIxLjM0MyAxNSAy''@;'; + put 'put ''MyBDIDE1IDI0LjY1NyAxNi4zNDMgMjYgMTggMjYgQyAxOS42NTcgMjYgMjEgMjQuNjU3IDIxIDIzIEMgMjEgMjEuMzQzIDE5LjY1NyAyMCAxOCAyMCBaIj48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIg''@;'; + put 'put ''ZD0iTSAzMiAxMy4yMiBMIDMyIDI5IEwgNCAyOSBMIDQgNyBMIDIyLjU3IDcgQyAyMi41MjQgNi42NjggMjIuNTAxIDYuMzM0IDIyLjUgNiBDIDIyLjUwMSA1LjY2NSAyMi41MjQgNS4zMzEgMjIuNTcgNSBMIDQgNSBDIDIuODk1IDUgMiA1Ljg5NSAyIDcgTCAyIDI5IEMgMiAzMC4xMDQgMi44''@;'; + put 'put ''OTUgMzEgNCAzMSBMIDMyIDMxIEMgMzMuMTA0IDMxIDM0IDMwLjEwNCAzNCAyOSBMIDM0IDEyLjM0IEMgMzMuMzggMTIuNzMgMzIuNzA2IDEzLjAyNiAzMiAxMy4yMiBaIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gMjkgMTggQyAyOSAxOS42NTcgMjcuNjU3IDIxIDI2IDIxIEMgMjQuMzQzIDIx''@;'; + put 'put ''IDIzIDE5LjY1NyAyMyAxOCBDIDIzIDE2LjM0MyAyNC4zNDMgMTUgMjYgMTUgQyAyNy42NTcgMTUgMjkgMTYuMzQzIDI5IDE4IFogTSAyNiAxNi42IEMgMjUuMjI3IDE2LjYgMjQuNiAxNy4yMjcgMjQuNiAxOCBDIDI0LjYgMTguNzczIDI1LjIyNyAxOS40IDI2IDE5LjQgQyAyNi43NzMgMTku''@;'; + put 'put ''NCAyNy40IDE4Ljc3MyAyNy40IDE4IEMgMjcuNCAxNy4yMjcgMjYuNzczIDE2LjYgMjYgMTYuNiBaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiIHJ4PSIzIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gMTUgMTQgQyAxNSAxNi4yMDkg''@;'; + put 'put ''MTMuMjA5IDE4IDExIDE4IEMgOC43OTEgMTggNyAxNi4yMDkgNyAxNCBDIDcgMTEuNzkxIDguNzkxIDEwIDExIDEwIEMgMTMuMjA5IDEwIDE1IDExLjc5MSAxNSAxNCBaIE0gMTEgMTEuNiBDIDkuNjc1IDExLjYgOC42IDEyLjY3NSA4LjYgMTQgQyA4LjYgMTUuMzI1IDkuNjc1IDE2LjQgMTEg''@;'; + put 'put ''MTYuNCBDIDEyLjMyNSAxNi40IDEzLjQgMTUuMzI1IDEzLjQgMTQgQyAxMy40IDEyLjY3NSAxMi4zMjUgMTEuNiAxMSAxMS42IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIgcng9IjMiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSAy''@;'; + put 'put ''MSAyMyBDIDIxIDI0LjY1NyAxOS42NTcgMjYgMTggMjYgQyAxNi4zNDMgMjYgMTUgMjQuNjU3IDE1IDIzIEMgMTUgMjEuMzQzIDE2LjM0MyAyMCAxOCAyMCBDIDE5LjY1NyAyMCAyMSAyMS4zNDMgMjEgMjMgWiBNIDE4IDIxLjYgQyAxNy4yMjcgMjEuNiAxNi42IDIyLjIyNyAxNi42IDIzIEMg''@;'; + put 'put ''MTYuNiAyMy43NzMgMTcuMjI3IDI0LjQgMTggMjQuNCBDIDE4Ljc3MyAyNC40IDE5LjQgMjMuNzczIDE5LjQgMjMgQyAxOS40IDIyLjIyNyAxOC43NzMgMjEuNiAxOCAyMS42IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCIgcng9''@;'; + put 'put ''IjMiPjwvcGF0aD5cbiAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC01LS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiPjwvY2lyY2xlPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHIt''@;'; + put 'put ''aS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgZD0iTSAzNCAxMi4zNCBMIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NiAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3IEMgMiA1Ljg5NiAyLjg5NiA1IDQgNSBMIDIyLjU3IDUgQyAyMS45NjkgOS4yMzMgMjUuMDUg''@;'; + put 'put ''MTMuMSAyOS4zMSAxMy40NiBMIDMwLjMyIDEzLjQ4IEMgMzEuNjI2IDEzLjQyOSAzMi44OTUgMTMuMDM2IDM0IDEyLjM0IFogTSAxMSAxMCBDIDguNzkxIDEwIDcgMTEuNzkxIDcgMTQgQyA3IDE2LjIwOSA4Ljc5MSAxOCAxMSAxOCBDIDEzLjIwOSAxOCAxNSAxNi4yMDkgMTUgMTQgQyAxNSAx''@;'; + put 'put ''MS43OTEgMTMuMjA5IDEwIDExIDEwIFogTSAyNiAxNSBDIDI0LjM0MyAxNSAyMyAxNi4zNDMgMjMgMTggQyAyMyAxOS42NTcgMjQuMzQzIDIxIDI2IDIxIEMgMjcuNjU3IDIxIDI5IDE5LjY1NyAyOSAxOCBDIDI5IDE2LjM0MyAyNy42NTcgMTUgMjYgMTUgWiBNIDE4IDIwIEMgMTYuMzQzIDIw''@;'; + put 'put ''IDE1IDIxLjM0MyAxNSAyMyBDIDE1IDI0LjY1NyAxNi4zNDMgMjYgMTggMjYgQyAxOS42NTcgMjYgMjEgMjQuNjU3IDIxIDIzIEMgMjEgMjEuMzQzIDE5LjY1NyAyMCAxOCAyMCBaIj48L3BhdGg+XG4gIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0''@;'; + put 'put ''aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiPjwvY2lyY2xlPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgZD0iTSAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIgMzEg''@;'; + put 'put ''TCA0IDMxIEMgMi44OTUgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBDIDIgNS44OTUgMi44OTUgNSA0IDUgTCAyMS45NTggNSBMIDIwLjc4NiA3IEwgNCA3IEwgNCAyOSBMIDMyIDI5IEwgMzIgMTUuMzU3IEwgMzQgMTUuMzU3IFoiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSAyOSAxOCBDIDI5IDE5''@;'; + put 'put ''LjY1NyAyNy42NTcgMjEgMjYgMjEgQyAyNC4zNDMgMjEgMjMgMTkuNjU3IDIzIDE4IEMgMjMgMTYuMzQzIDI0LjM0MyAxNSAyNiAxNSBDIDI3LjY1NyAxNSAyOSAxNi4zNDMgMjkgMTggWiBNIDI2IDE2LjYgQyAyNS4yMjcgMTYuNiAyNC42IDE3LjIyNyAyNC42IDE4IEMgMjQuNiAxOC43NzMg''@;'; + put 'put ''MjUuMjI3IDE5LjQgMjYgMTkuNCBDIDI2Ljc3MyAxOS40IDI3LjQgMTguNzczIDI3LjQgMTggQyAyNy40IDE3LjIyNyAyNi43NzMgMTYuNiAyNiAxNi42IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIiByeD0iMyI+PC9wYXRo''@;'; + put 'put ''PlxuICA8cGF0aCBkPSJNIDE1IDE0IEMgMTUgMTYuMjA5IDEzLjIwOSAxOCAxMSAxOCBDIDguNzkxIDE4IDcgMTYuMjA5IDcgMTQgQyA3IDExLjc5MSA4Ljc5MSAxMCAxMSAxMCBDIDEzLjIwOSAxMCAxNSAxMS43OTEgMTUgMTQgWiBNIDExIDExLjYgQyA5LjY3NSAxMS42IDguNiAxMi42NzUg''@;'; + put 'put ''OC42IDE0IEMgOC42IDE1LjMyNSA5LjY3NSAxNi40IDExIDE2LjQgQyAxMi4zMjUgMTYuNCAxMy40IDE1LjMyNSAxMy40IDE0IEMgMTMuNCAxMi42NzUgMTIuMzI1IDExLjYgMTEgMTEuNiBaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxl''@;'; + put 'put ''cnRlZCIgcng9IjMiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSAyMSAyMyBDIDIxIDI0LjY1NyAxOS42NTcgMjYgMTggMjYgQyAxNi4zNDMgMjYgMTUgMjQuNjU3IDE1IDIzIEMgMTUgMjEuMzQzIDE2LjM0MyAyMCAxOCAyMCBDIDE5LjY1NyAyMCAyMSAyMS4zNDMgMjEgMjMgWiBNIDE4IDIxLjYg''@;'; + put 'put ''QyAxNy4yMjcgMjEuNiAxNi42IDIyLjIyNyAxNi42IDIzIEMgMTYuNiAyMy43NzMgMTcuMjI3IDI0LjQgMTggMjQuNCBDIDE4Ljc3MyAyNC40IDE5LjQgMjMuNzczIDE5LjQgMjMgQyAxOS40IDIyLjIyNyAxOC43NzMgMjEuNiAxOCAyMS42IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVy''@;'; + put 'put ''dGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIiByeD0iMyI+PC9wYXRoPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTSAyNi44NTQgMS4xNDQgTCAyMS4xMzQgMTEuMDA0''@;'; + put 'put ''IEMgMjAuNTc5IDExLjgxOCAyMS4xMTQgMTIuOTI4IDIyLjA5NyAxMy4wMDEgQyAyMi4xNDIgMTMuMDA1IDIyLjE4OCAxMy4wMDYgMjIuMjM0IDEzLjAwNCBMIDMzLjY4NCAxMy4wMDQgQyAzNC42NjkgMTMuMDM2IDM1LjMxOSAxMS45OTEgMzQuODU1IDExLjEyMiBDIDM0LjgzNCAxMS4wODEg''@;'; + put 'put ''MzQuODEgMTEuMDQyIDM0Ljc4NCAxMS4wMDQgTCAyOS4wNjQgMS4xNDQgQyAyOC41NyAwLjI5OSAyNy4zNDggMC4yOTkgMjYuODU0IDEuMTQ0IFoiPjwvcGF0aD5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIgZD0iTSAz''@;'; + put 'put ''NCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIgMzEgTCA0IDMxIEMgMi44OTYgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBDIDIgNS44OTYgMi44OTYgNSA0IDUgTCAyMS45NTggNSBMIDE3LjYyNSAxMi4zOTUgQyAxNi43OTUgMTMuNjAxIDE3LjU5NCAxNS4yNDUgMTkuMDY0IDE1LjM1MSBD''@;'; + put 'put ''IDE5LjEzNCAxNS4zNTcgMTkuMjAxIDE1LjM1OSAxOS4yNyAxNS4zNTcgTCAyNC41NzkgMTUuMzU3IEMgMjMuNjM5IDE1Ljg2MyAyMyAxNi44NTcgMjMgMTggQyAyMyAxOS42NTcgMjQuMzQzIDIxIDI2IDIxIEMgMjcuNjU3IDIxIDI5IDE5LjY1NyAyOSAxOCBDIDI5IDE2Ljg1NyAyOC4zNjEg''@;'; + put 'put ''MTUuODYzIDI3LjQyMSAxNS4zNTcgTCAzNCAxNS4zNTcgWiBNIDExIDEwIEMgOC43OTEgMTAgNyAxMS43OTEgNyAxNCBDIDcgMTYuMjA5IDguNzkxIDE4IDExIDE4IEMgMTMuMjA5IDE4IDE1IDE2LjIwOSAxNSAxNCBDIDE1IDExLjc5MSAxMy4yMDkgMTAgMTEgMTAgWiBNIDE4IDIwIEMgMTYu''@;'; + put 'put ''MzQzIDIwIDE1IDIxLjM0MyAxNSAyMyBDIDE1IDI0LjY1NyAxNi4zNDMgMjYgMTggMjYgQyAxOS42NTcgMjYgMjEgMjQuNjU3IDIxIDIzIEMgMjEgMjEuMzQzIDE5LjY1NyAyMCAxOCAyMCBaIj48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xp''@;'; + put 'put ''ZC1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0gMjYuODU0IDEuMTQ0IEwgMjEuMTM0IDExLjAwNCBDIDIwLjU3OSAxMS44MTggMjEuMTE0IDEyLjkyOCAyMi4wOTcgMTMuMDAxIEMgMjIuMTQyIDEzLjAwNSAyMi4xODggMTMuMDA2IDIyLjIzNCAxMy4wMDQgTCAzMy42ODQgMTMu''@;'; + put 'put ''MDA0IEMgMzQuNjY5IDEzLjAzNiAzNS4zMTkgMTEuOTkxIDM0Ljg1NSAxMS4xMjIgQyAzNC44MzQgMTEuMDgxIDM0LjgxIDExLjA0MiAzNC43ODQgMTEuMDA0IEwgMjkuMDY0IDEuMTQ0IEMgMjguNTcgMC4yOTkgMjcuMzQ4IDAuMjk5IDI2Ljg1NCAxLjE0NCBaIj48L3BhdGg+JyksTC5DbHJT''@;'; + put 'put ''aGFwZUNsb3VkQ2hhcnQ9KDAsRS5jbHJJY29uU1ZHKSgnXG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzIsNUg0QTIsMiwwLDAsMCwyLDdWMjlhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjdBMiwyLDAsMCwwLDMyLDVaTTQs''@;'; + put 'put ''MjlWN0gzMlYyOVoiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSAyMC45NzEgMTEuMjQzIEMgMjMuMzE0IDEzLjU4NiAyMi4zNjQgMTguMzM1IDE4Ljg0OSAyMS44NDkgQyAxNS4zMzQgMjUuMzY0IDEwLjU4NiAyNi4zMTQgOC4yNDMgMjMuOTcgQyA1Ljg5OSAyMS42MjcgNi44NDkgMTYuODc4IDEw''@;'; + put 'put ''LjM2NCAxMy4zNjQgQyAxMy44NzkgOS44NDkgMTguNjI4IDguOSAyMC45NzEgMTEuMjQzIFogTSAxMS42MzYgMTQuNjM3IEMgOC44MjQgMTcuNDQ5IDcuODc1IDIxLjA1OCA5LjUxNSAyMi42OTggQyAxMS4xNTUgMjQuMzM4IDE0Ljc2NCAyMy4zODkgMTcuNTc2IDIwLjU3NyBDIDIwLjM4OCAx''@;'; + put 'put ''Ny43NjUgMjEuMzM4IDE0LjE1NiAxOS42OTcgMTIuNTE2IEMgMTguMDU3IDEwLjg3NiAxNC40NDggMTEuODI1IDExLjYzNiAxNC42MzcgWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSAyOCAyMiBDIDI4IDIzLjY1NyAy''@;'; + put 'put ''Ni42NTcgMjUgMjUgMjUgQyAyMy4zNDMgMjUgMjIgMjMuNjU3IDIyIDIyIEMgMjIgMjAuMzQzIDIzLjM0MyAxOSAyNSAxOSBDIDI2LjY1NyAxOSAyOCAyMC4zNDMgMjggMjIgWiBNIDI1IDIwLjYgQyAyNC4yMjcgMjAuNiAyMy42IDIxLjIyNyAyMy42IDIyIEMgMjMuNiAyMi43NzMgMjQuMjI3''@;'; + put 'put ''IDIzLjQgMjUgMjMuNCBDIDI1Ljc3MyAyMy40IDI2LjQgMjIuNzczIDI2LjQgMjIgQyAyNi40IDIxLjIyNyAyNS43NzMgMjAuNiAyNSAyMC42IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiB4PSI3Ij48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1z''@;'; + put 'put ''b2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0gMzQgNyBMIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NSAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3IEMgMiA1Ljg5NSAyLjg5NSA1IDQgNSBMIDMyIDUgQyAzMy4xMDUgNSAzNCA1Ljg5NSAzNCA3IFog''@;'; + put 'put ''TSAxMC4zNjQgMTMuMzY0IEMgNi44NDkgMTYuODc4IDUuODk5IDIxLjYyNyA4LjI0MyAyMy45NyBDIDEwLjU4NiAyNi4zMTQgMTUuMzM0IDI1LjM2NCAxOC44NDkgMjEuODQ5IEMgMjIuMzY0IDE4LjMzNSAyMy4zMTQgMTMuNTg2IDIwLjk3MSAxMS4yNDMgQyAxOC42MjggOC45IDEzLjg3OSA5''@;'; + put 'put ''Ljg0OSAxMC4zNjQgMTMuMzY0IFogTSAyNSAxOSBDIDIzLjM0MyAxOSAyMiAyMC4zNDMgMjIgMjIgQyAyMiAyMy42NTcgMjMuMzQzIDI1IDI1IDI1IEMgMjYuNjU3IDI1IDI4IDIzLjY1NyAyOCAyMiBDIDI4IDIwLjM0MyAyNi42NTcgMTkgMjUgMTkgWiI+PC9wYXRoPlxuICA8cGF0aCBjbGFz''@;'; + put 'put ''cz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0gMzIgMTMuMjIgTCAzMiAyOSBMIDQgMjkgTCA0IDcgTCAyMi41NyA3IEMgMjIuNTI0IDYuNjY4IDIyLjUwMSA2LjMzNCAyMi41IDYgQyAyMi41MDEgNS42NjUgMjIuNTI0IDUuMzMxIDIy''@;'; + put 'put ''LjU3IDUgTCA0IDUgQyAyLjg5NSA1IDIgNS44OTUgMiA3IEwgMiAyOSBDIDIgMzAuMTA0IDIuODk1IDMxIDQgMzEgTCAzMiAzMSBDIDMzLjEwNSAzMSAzNCAzMC4xMDQgMzQgMjkgTCAzNCAxMi4zNCBDIDMzLjM4IDEyLjczIDMyLjcwNiAxMy4wMjYgMzIgMTMuMjIgWiI+PC9wYXRoPlxuICA8''@;'; + put 'put ''cGF0aCBkPSJNIDIwLjk3MSAxMS4yNDMgQyAyMy4zMTQgMTMuNTg2IDIyLjM2NCAxOC4zMzUgMTguODQ5IDIxLjg0OSBDIDE1LjMzNCAyNS4zNjQgMTAuNTg2IDI2LjMxNCA4LjI0MyAyMy45NyBDIDUuODk5IDIxLjYyNyA2Ljg0OSAxNi44NzggMTAuMzY0IDEzLjM2NCBDIDEzLjg3OSA5Ljg0''@;'; + put 'put ''OSAxOC42MjggOC45IDIwLjk3MSAxMS4yNDMgWiBNIDExLjYzNiAxNC42MzcgQyA4LjgyNCAxNy40NDkgNy44NzUgMjEuMDU4IDkuNTE1IDIyLjY5OCBDIDExLjE1NSAyNC4zMzggMTQuNzY0IDIzLjM4OSAxNy41NzYgMjAuNTc3IEMgMjAuMzg4IDE3Ljc2NSAyMS4zMzggMTQuMTU2IDE5LjY5''@;'; + put 'put ''NyAxMi41MTYgQyAxOC4wNTcgMTAuODc2IDE0LjQ0OCAxMS44MjUgMTEuNjM2IDE0LjYzNyBaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSAyOCAyMiBDIDI4IDIzLjY1NyAyNi42NTcgMjUg''@;'; + put 'put ''MjUgMjUgQyAyMy4zNDMgMjUgMjIgMjMuNjU3IDIyIDIyIEMgMjIgMjAuMzQzIDIzLjM0MyAxOSAyNSAxOSBDIDI2LjY1NyAxOSAyOCAyMC4zNDMgMjggMjIgWiBNIDI1IDIwLjYgQyAyNC4yMjYgMjAuNiAyMy42IDIxLjIyNiAyMy42IDIyIEMgMjMuNiAyMi43NzMgMjQuMjI2IDIzLjQgMjUg''@;'; + put 'put ''MjMuNCBDIDI1Ljc3MyAyMy40IDI2LjQgMjIuNzczIDI2LjQgMjIgQyAyNi40IDIxLjIyNiAyNS43NzMgMjAuNiAyNSAyMC42IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIgeD0iNyI+PC9wYXRoPlxuICA8Y2lyY2xlIGNsYXNz''@;'; + put 'put ''PSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSI+PC9jaXJjbGU+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiBkPSJN''@;'; + put 'put ''IDM0IDEyLjM0IEwgMzQgMjkgQyAzNCAzMC4xMDUgMzMuMTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIuODk1IDMxIDIgMzAuMTA1IDIgMjkgTCAyIDcgQyAyIDUuODk1IDIuODk1IDUgNCA1IEwgMjIuNTcgNSBDIDIxLjk2OSA5LjIzMyAyNS4wNSAxMy4xIDI5LjMxIDEzLjQ2IEwgMzAuMzIgMTMu''@;'; + put 'put ''NDggQyAzMS42MjUgMTMuNDI5IDMyLjg5NSAxMy4wMzYgMzQgMTIuMzQgWiBNIDEwLjM2NCAxMy4zNjQgQyA2Ljg0OSAxNi44NzggNS44OTkgMjEuNjI3IDguMjQzIDIzLjk3IEMgMTAuNTg2IDI2LjMxNCAxNS4zMzQgMjUuMzY0IDE4Ljg0OSAyMS44NDkgQyAyMi4zNjQgMTguMzM1IDIzLjMx''@;'; + put 'put ''NCAxMy41ODYgMjAuOTcxIDExLjI0MyBDIDE4LjYyOCA4LjkgMTMuODc5IDkuODQ5IDEwLjM2NCAxMy4zNjQgWiBNIDI1IDE5IEMgMjMuMzQzIDE5IDIyIDIwLjM0MyAyMiAyMiBDIDIyIDIzLjY1NyAyMy4zNDMgMjUgMjUgMjUgQyAyNi42NTcgMjUgMjggMjMuNjU3IDI4IDIyIEMgMjggMjAu''@;'; + put 'put ''MzQzIDI2LjY1NyAxOSAyNSAxOSBaIj48L3BhdGg+XG4gIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiPjwvY2lyY2xlPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0''@;'; + put 'put ''bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgZD0iTSAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIgMzEgTCA0IDMxIEMgMi44OTUgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBDIDIgNS44OTUgMi44OTUgNSA0IDUgTCAyMS45NTggNSBMIDIwLjc4NiA3''@;'; + put 'put ''IEwgNCA3IEwgNCAyOSBMIDMyIDI5IEwgMzIgMTUuMzU3IEwgMzQgMTUuMzU3IFoiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSAxOC44NDkgMjEuODQ5IEMgMTUuMzM0IDI1LjM2NCAxMC41ODYgMjYuMzE0IDguMjQzIDIzLjk3IEMgNS44OTkgMjEuNjI3IDYuODQ5IDE2Ljg3OCAxMC4zNjQgMTMu''@;'; + put 'put ''MzY0IEMgMTMuMDQ5IDEwLjY3OSAxNi40NTMgOS40OTIgMTguOTU2IDEwLjEyNCBMIDE4LjAwOCAxMS43NDEgQyAxNi4xOCAxMS41MTggMTMuNjk1IDEyLjU3OCAxMS42MzYgMTQuNjM3IEMgOC44MjQgMTcuNDQ5IDcuODc1IDIxLjA1OCA5LjUxNSAyMi42OTggQyAxMS4xNTUgMjQuMzM4IDE0''@;'; + put 'put ''Ljc2NCAyMy4zODkgMTcuNTc2IDIwLjU3NyBDIDE5LjIyOCAxOC45MjUgMjAuMjM3IDE2Ljk5OCAyMC40NTYgMTUuMzU3IEwgMjIuMjIgMTUuMzU3IEMgMjIuMDA2IDE3LjQ3NyAyMC44MzggMTkuODYxIDE4Ljg0OSAyMS44NDkgWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xy''@;'; + put 'put ''LWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSAyOCAyMiBDIDI4IDIzLjY1NyAyNi42NTcgMjUgMjUgMjUgQyAyMy4zNDMgMjUgMjIgMjMuNjU3IDIyIDIyIEMgMjIgMjAuMzQzIDIzLjM0MyAxOSAyNSAxOSBDIDI2LjY1NyAxOSAyOCAyMC4zNDMgMjgg''@;'; + put 'put ''MjIgWiBNIDI1IDIwLjYgQyAyNC4yMjYgMjAuNiAyMy42IDIxLjIyNiAyMy42IDIyIEMgMjMuNiAyMi43NzMgMjQuMjI2IDIzLjQgMjUgMjMuNCBDIDI1Ljc3MyAyMy40IDI2LjQgMjIuNzczIDI2LjQgMjIgQyAyNi40IDIxLjIyNiAyNS43NzMgMjAuNiAyNSAyMC42IFoiIGNsYXNzPSJjbHIt''@;'; + put 'put ''aS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIiB4PSI3Ij48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNIDI2Ljg1NCAxLjE0NCBM''@;'; + put 'put ''IDIxLjEzNCAxMS4wMDQgQyAyMC41NzkgMTEuODE4IDIxLjExNCAxMi45MjggMjIuMDk3IDEzLjAwMSBDIDIyLjE0MiAxMy4wMDUgMjIuMTg4IDEzLjAwNiAyMi4yMzQgMTMuMDA0IEwgMzMuNjg0IDEzLjAwNCBDIDM0LjY2OSAxMy4wMzYgMzUuMzE5IDExLjk5MSAzNC44NTUgMTEuMTIyIEMg''@;'; + put 'put ''MzQuODM0IDExLjA4MSAzNC44MSAxMS4wNDIgMzQuNzg0IDExLjAwNCBMIDI5LjA2NCAxLjE0NCBDIDI4LjU3IDAuMjk5IDI3LjM0OCAwLjI5OSAyNi44NTQgMS4xNDQgWiI+PC9wYXRoPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1h''@;'; + put 'put ''bGVydGVkIiBkPSJNIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NSAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3IEMgMiA1Ljg5NSAyLjg5NSA1IDQgNSBMIDIxLjk1OCA1IEwgMTguOTU2IDEwLjEyNCBDIDE2LjQ1MyA5LjQ5MiAxMy4wNDkgMTAuNjc5IDEw''@;'; + put 'put ''LjM2NCAxMy4zNjQgQyA2Ljg0OSAxNi44NzggNS44OTkgMjEuNjI3IDguMjQzIDIzLjk3IEMgMTAuNTg2IDI2LjMxNCAxNS4zMzQgMjUuMzY0IDE4Ljg0OSAyMS44NDkgQyAyMC44MzggMTkuODYxIDIyLjAwNiAxNy40NzcgMjIuMjIgMTUuMzU3IEwgMzQgMTUuMzU3IFogTSAyNSAxOSBDIDIz''@;'; + put 'put ''LjM0MyAxOSAyMiAyMC4zNDMgMjIgMjIgQyAyMiAyMy42NTcgMjMuMzQzIDI1IDI1IDI1IEMgMjYuNjU3IDI1IDI4IDIzLjY1NyAyOCAyMiBDIDI4IDIwLjM0MyAyNi42NTcgMTkgMjUgMTkgWiI+PC9wYXRoPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29s''@;'; + put 'put ''aWQtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNIDI2Ljg1NCAxLjE0NCBMIDIxLjEzNCAxMS4wMDQgQyAyMC41NzkgMTEuODE4IDIxLjExNCAxMi45MjggMjIuMDk3IDEzLjAwMSBDIDIyLjE0MiAxMy4wMDUgMjIuMTg4IDEzLjAwNiAyMi4yMzQgMTMuMDA0IEwgMzMuNjg0IDEz''@;'; + put 'put ''LjAwNCBDIDM0LjY2OSAxMy4wMzYgMzUuMzE5IDExLjk5MSAzNC44NTUgMTEuMTIyIEMgMzQuODM0IDExLjA4MSAzNC44MSAxMS4wNDIgMzQuNzg0IDExLjAwNCBMIDI5LjA2NCAxLjE0NCBDIDI4LjU3IDAuMjk5IDI3LjM0OCAwLjI5OSAyNi44NTQgMS4xNDQgWiI+PC9wYXRoPicpLEwuQ2xy''@;'; + put 'put ''U2hhcGVDdXJ2ZUNoYXJ0PSgwLEUuY2xySWNvblNWRykoJ1xuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTSAzMiA1IEwgNCA1IEMgMi44OTUgNSAyIDUuODk1IDIgNyBMIDIgMjkgQyAyIDMwLjEwNSAyLjg5NSAzMSA0IDMxIEwgMzIgMzEg''@;'; + put 'put ''QyAzMy4xMDUgMzEgMzQgMzAuMTA1IDM0IDI5IEwgMzQgNyBDIDM0IDUuODk1IDMzLjEwNSA1IDMyIDUgWiBNIDQgMjkgTCA0IDcgTCAzMiA3IEwgMzIgMjkgWiI+PC9wYXRoPlxuICA8cGF0aCBkPSJNIDcgMTEuOCBDIDYuNTU4IDExLjggNi4yIDExLjQ0MiA2LjIgMTEgQyA2LjIgMTAuNTU4''@;'; + put 'put ''IDYuNTU4IDEwLjIgNyAxMC4yIEwgMTMgMTAuMiBDIDE1LjQwNCAxMC4yIDE2LjM2OCAxMS45MDcgMTcuNjUzIDE2LjQ3OCBDIDE3LjY5NSAxNi42MjggMTcuNzQ0IDE2LjgwMyAxNy44MzUgMTcuMTI5IEMgMTcuOTA5IDE3LjM5MiAxNy45NjQgMTcuNTg4IDE4LjAxOSAxNy43OCBDIDE5LjMz''@;'; + put 'put ''MiAyMi4zNzUgMjAuNTQ5IDI0LjIgMjMgMjQuMiBMIDI5IDI0LjIgQyAyOS40NDIgMjQuMiAyOS44IDI0LjU1OCAyOS44IDI1IEMgMjkuOCAyNS40NDIgMjkuNDQyIDI1LjggMjkgMjUuOCBMIDIzIDI1LjggQyAxOS41MzUgMjUuOCAxNy45ODEgMjMuNDY5IDE2LjQ4MSAxOC4yMiBDIDE2LjQy''@;'; + put 'put ''NSAxOC4wMjUgMTYuMzY5IDE3LjgyNiAxNi4yOTUgMTcuNTYgQyAxNi4yMDMgMTcuMjM0IDE2LjE1NCAxNy4wNiAxNi4xMTMgMTYuOTExIEMgMTUuMDQzIDEzLjEwNSAxNC4zMDUgMTEuOCAxMyAxMS44IEwgNyAxMS44IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0''@;'; + put 'put ''aC0yIj48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0gMzQgNyBMIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NiAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3IEMgMiA1Ljg5NiAyLjg5NiA1IDQg''@;'; + put 'put ''NSBMIDMyIDUgQyAzMy4xMDUgNSAzNCA1Ljg5NiAzNCA3IFogTSAxMyAxMiBDIDE0LjgxNyAxMiAxNS42NzQgMTMuNDk5IDE3LjAzOSAxOC4yNzUgQyAxNy44MTMgMjAuOTg0IDE4LjIwMSAyMi4xMTggMTguODgyIDIzLjMwOSBDIDE5Ljg3IDI1LjAzOCAyMS4yMDUgMjYgMjMgMjYgTCAyOSAy''@;'; + put 'put ''NiBDIDI5LjU1MiAyNiAzMCAyNS41NTIgMzAgMjUgQyAzMCAyNC40NDggMjkuNTUyIDI0IDI5IDI0IEwgMjMgMjQgQyAyMS4xODMgMjQgMjAuMzI2IDIyLjUwMSAxOC45NjIgMTcuNzI1IEMgMTguMTg4IDE1LjAxNiAxNy43OTkgMTMuODgyIDE3LjExOCAxMi42OTEgQyAxNi4xMyAxMC45NjIg''@;'; + put 'put ''MTQuNzk1IDEwIDEzIDEwIEwgNyAxMCBDIDYuNDQ4IDEwIDYgMTAuNDQ4IDYgMTEgQyA2IDExLjU1MiA2LjQ0OCAxMiA3IDEyIFoiPjwvcGF0aD5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiBkPSJNIDMyIDEzLjIy''@;'; + put 'put ''IEwgMzIgMjkgTCA0IDI5IEwgNCA3IEwgMjIuNTcgNyBDIDIyLjUyNCA2LjY2OCAyMi41MDEgNi4zMzQgMjIuNSA2IEMgMjIuNTAxIDUuNjY1IDIyLjUyNCA1LjMzMSAyMi41NyA1IEwgNCA1IEMgMi44OTUgNSAyIDUuODk1IDIgNyBMIDIgMjkgQyAyIDMwLjEwNCAyLjg5NSAzMSA0IDMxIEwg''@;'; + put 'put ''MzIgMzEgQyAzMy4xMDQgMzEgMzQgMzAuMTA0IDM0IDI5IEwgMzQgMTIuMzQgQyAzMy4zOCAxMi43MyAzMi43MDYgMTMuMDI2IDMyIDEzLjIyIFoiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSA3IDExLjggQyA2LjU1OCAxMS44IDYuMiAxMS40NDIgNi4yIDExIEMgNi4yIDEwLjU1OCA2LjU1OCAx''@;'; + put 'put ''MC4yIDcgMTAuMiBMIDEzIDEwLjIgQyAxNS40MDQgMTAuMiAxNi4zNjggMTEuOTA3IDE3LjY1MyAxNi40NzggQyAxNy42OTUgMTYuNjI4IDE3Ljc0NCAxNi44MDMgMTcuODM1IDE3LjEyOSBDIDE3LjkwOSAxNy4zOTIgMTcuOTY0IDE3LjU4OCAxOC4wMTkgMTcuNzggQyAxOS4zMzIgMjIuMzc1''@;'; + put 'put ''IDIwLjU0OSAyNC4yIDIzIDI0LjIgTCAyOSAyNC4yIEMgMjkuNDQyIDI0LjIgMjkuOCAyNC41NTggMjkuOCAyNSBDIDI5LjggMjUuNDQyIDI5LjQ0MiAyNS44IDI5IDI1LjggTCAyMyAyNS44IEMgMTkuNTM1IDI1LjggMTcuOTgxIDIzLjQ2OSAxNi40ODEgMTguMjIgQyAxNi40MjUgMTguMDI1''@;'; + put 'put ''IDE2LjM2OSAxNy44MjYgMTYuMjk1IDE3LjU2IEMgMTYuMjAzIDE3LjIzNCAxNi4xNTQgMTcuMDYgMTYuMTEzIDE2LjkxMSBDIDE1LjA0MyAxMy4xMDUgMTQuMzA1IDExLjggMTMgMTEuOCBMIDcgMTEuOCBaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0''@;'; + put 'put ''aC0yLS1iYWRnZWQiPjwvcGF0aD5cbiAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiPjwvY2lyY2xlPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJh''@;'; + put 'put ''ZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgZD0iTSAzNCAxMi4zNCBMIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NiAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3IEMgMiA1Ljg5NiAyLjg5NiA1IDQgNSBMIDIyLjU3IDUgQyAyMS45NjkgOS4y''@;'; + put 'put ''MzMgMjUuMDUgMTMuMSAyOS4zMSAxMy40NiBMIDMwLjMyIDEzLjQ4IEMgMzEuNjI2IDEzLjQyOSAzMi44OTUgMTMuMDM2IDM0IDEyLjM0IFogTSAxMyAxMiBDIDE0LjgxNyAxMiAxNS42NzQgMTMuNDk5IDE3LjAzOSAxOC4yNzUgQyAxNy44MTMgMjAuOTg0IDE4LjIwMSAyMi4xMTggMTguODgy''@;'; + put 'put ''IDIzLjMwOSBDIDE5Ljg3IDI1LjAzOCAyMS4yMDUgMjYgMjMgMjYgTCAyOSAyNiBDIDI5LjU1MiAyNiAzMCAyNS41NTIgMzAgMjUgQyAzMCAyNC40NDggMjkuNTUyIDI0IDI5IDI0IEwgMjMgMjQgQyAyMS4xODMgMjQgMjAuMzI2IDIyLjUwMSAxOC45NjIgMTcuNzI1IEMgMTguMTg4IDE1LjAx''@;'; + put 'put ''NiAxNy43OTkgMTMuODgyIDE3LjExOCAxMi42OTEgQyAxNi4xMyAxMC45NjIgMTQuNzk1IDEwIDEzIDEwIEwgNyAxMCBDIDYuNDQ4IDEwIDYgMTAuNDQ4IDYgMTEgQyA2IDExLjU1MiA2LjQ0OCAxMiA3IDEyIFoiPjwvcGF0aD5cbiAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdl''@;'; + put 'put ''ZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSI+PC9jaXJjbGU+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiBkPSJNIDM0IDI5IEMgMzQgMzAuMTA1''@;'; + put 'put ''IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NSAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3IEMgMiA1Ljg5NSAyLjg5NSA1IDQgNSBMIDIxLjk1OCA1IEwgMjAuNzg2IDcgTCA0IDcgTCA0IDI5IEwgMzIgMjkgTCAzMiAxNS4zNTcgTCAzNCAxNS4zNTcgWiI+PC9wYXRoPlxuICA8cGF0aCBk''@;'; + put 'put ''PSJNIDcgMTEuOCBDIDYuNTU4IDExLjggNi4yIDExLjQ0MiA2LjIgMTEgQyA2LjIgMTAuNTU4IDYuNTU4IDEwLjIgNyAxMC4yIEwgMTMgMTAuMiBDIDE1LjQwNCAxMC4yIDE2LjM2OCAxMS45MDcgMTcuNjUzIDE2LjQ3OCBDIDE3LjY5NSAxNi42MjggMTcuNzQ0IDE2LjgwMyAxNy44MzUgMTcu''@;'; + put 'put ''MTI5IEMgMTcuOTA5IDE3LjM5MiAxNy45NjQgMTcuNTg4IDE4LjAxOSAxNy43OCBDIDE5LjMzMiAyMi4zNzUgMjAuNTQ5IDI0LjIgMjMgMjQuMiBMIDI5IDI0LjIgQyAyOS40NDIgMjQuMiAyOS44IDI0LjU1OCAyOS44IDI1IEMgMjkuOCAyNS40NDIgMjkuNDQyIDI1LjggMjkgMjUuOCBMIDIz''@;'; + put 'put ''IDI1LjggQyAxOS41MzUgMjUuOCAxNy45ODEgMjMuNDY5IDE2LjQ4MSAxOC4yMiBDIDE2LjQyNSAxOC4wMjUgMTYuMzY5IDE3LjgyNiAxNi4yOTUgMTcuNTYgQyAxNi4yMDMgMTcuMjM0IDE2LjE1NCAxNy4wNiAxNi4xMTMgMTYuOTExIEMgMTUuMDQzIDEzLjEwNSAxNC4zMDUgMTEuOCAxMyAx''@;'; + put 'put ''MS44IEwgNyAxMS44IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIj48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIGNsci1pLWFsZXJ0''@;'; + put 'put ''IiBkPSJNIDI2Ljg1NCAxLjE0NCBMIDIxLjEzNCAxMS4wMDQgQyAyMC41NzkgMTEuODE4IDIxLjExNCAxMi45MjggMjIuMDk3IDEzLjAwMSBDIDIyLjE0MiAxMy4wMDUgMjIuMTg4IDEzLjAwNiAyMi4yMzQgMTMuMDA0IEwgMzMuNjg0IDEzLjAwNCBDIDM0LjY2OSAxMy4wMzYgMzUuMzE5IDEx''@;'; + put 'put ''Ljk5MSAzNC44NTUgMTEuMTIyIEMgMzQuODM0IDExLjA4MSAzNC44MSAxMS4wNDIgMzQuNzg0IDExLjAwNCBMIDI5LjA2NCAxLjE0NCBDIDI4LjU3IDAuMjk5IDI3LjM0OCAwLjI5OSAyNi44NTQgMS4xNDQgWiI+PC9wYXRoPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQg''@;'; + put 'put ''Y2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiBkPSJNIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NiAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3IEMgMiA1Ljg5NiAyLjg5NiA1IDQgNSBMIDIxLjk1OCA1IEwgMTcuNjI1IDEyLjM5NSBDIDE3LjQ3NiAx''@;'; + put 'put ''Mi42MTIgMTcuMzc5IDEyLjg0MyAxNy4zMyAxMy4wNzcgQyAxNy4yNjIgMTIuOTQ4IDE3LjE5MiAxMi44MiAxNy4xMTggMTIuNjkxIEMgMTYuMTMgMTAuOTYyIDE0Ljc5NSAxMCAxMyAxMCBMIDcgMTAgQyA2LjQ0OCAxMCA2IDEwLjQ0OCA2IDExIEMgNiAxMS41NTIgNi40NDggMTIgNyAxMiBM''@;'; + put 'put ''IDEzIDEyIEMgMTQuODE3IDEyIDE1LjY3NCAxMy40OTkgMTcuMDM5IDE4LjI3NSBDIDE3LjgxMyAyMC45ODQgMTguMjAxIDIyLjExOCAxOC44ODIgMjMuMzA5IEMgMTkuODcgMjUuMDM4IDIxLjIwNSAyNiAyMyAyNiBMIDI5IDI2IEMgMjkuNTUyIDI2IDMwIDI1LjU1MiAzMCAyNSBDIDMwIDI0''@;'; + put 'put ''LjQ0OCAyOS41NTIgMjQgMjkgMjQgTCAyMyAyNCBDIDIxLjE4MyAyNCAyMC4zMjYgMjIuNTAxIDE4Ljk2MiAxNy43MjUgQyAxOC42NCAxNi41OTggMTguMzg1IDE1Ljc0NCAxOC4xNDcgMTUuMDQ0IEMgMTguNDA3IDE1LjIxNSAxOC43MTcgMTUuMzI2IDE5LjA2NCAxNS4zNTEgQyAxOS4xMzQg''@;'; + put 'put ''MTUuMzU3IDE5LjIwMSAxNS4zNTkgMTkuMjcgMTUuMzU3IEwgMzQgMTUuMzU3IFoiPjwvcGF0aD5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTSAyNi44NTQgMS4xNDQgTCAyMS4xMzQgMTEu''@;'; + put 'put ''MDA0IEMgMjAuNTc5IDExLjgxOCAyMS4xMTQgMTIuOTI4IDIyLjA5NyAxMy4wMDEgQyAyMi4xNDIgMTMuMDA1IDIyLjE4OCAxMy4wMDYgMjIuMjM0IDEzLjAwNCBMIDMzLjY4NCAxMy4wMDQgQyAzNC42NjkgMTMuMDM2IDM1LjMxOSAxMS45OTEgMzQuODU1IDExLjEyMiBDIDM0LjgzNCAxMS4w''@;'; + put 'put ''ODEgMzQuODEgMTEuMDQyIDM0Ljc4NCAxMS4wMDQgTCAyOS4wNjQgMS4xNDQgQyAyOC41NyAwLjI5OSAyNy4zNDggMC4yOTkgMjYuODU0IDEuMTQ0IFoiPjwvcGF0aD4nKSxMLkNsclNoYXBlR3JpZENoYXJ0PSgwLEUuY2xySWNvblNWRykoJ1xuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGlu''@;'; + put 'put ''ZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTE1LDE3SDRhMiwyLDAsMCwxLTItMlY4QTIsMiwwLDAsMSw0LDZIMTVhMiwyLDAsMCwxLDIsMnY3QTIsMiwwLDAsMSwxNSwxN1pNNCw4djdIMTVWOFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRo''@;'; + put 'put ''LTIiIGQ9Ik0zMiwxN0gyMWEyLDIsMCwwLDEtMi0yVjhhMiwyLDAsMCwxLDItMkgzMmEyLDIsMCwwLDEsMiwydjdBMiwyLDAsMCwxLDMyLDE3Wk0yMSw4djdIMzJWOFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIGQ9Ik0xNSwzMEg0YTIs''@;'; + put 'put ''MiwwLDAsMS0yLTJWMjFhMiwyLDAsMCwxLDItMkgxNWEyLDIsMCwwLDEsMiwydjdBMiwyLDAsMCwxLDE1LDMwWk00LDIxdjdIMTVWMjFaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiBkPSJNMzIsMzBIMjFhMiwyLDAsMCwxLTItMlYyMWEy''@;'; + put 'put ''LDIsMCwwLDEsMi0ySDMyYTIsMiwwLDAsMSwyLDJ2N0EyLDIsMCwwLDEsMzIsMzBaTTIxLDIxdjdIMzJWMjFaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0gMTUgMTcgTCA0IDE3IEMgMi44OTUgMTcgMiAxNi4xMDUgMiAxNSBMIDIgOCBD''@;'; + put 'put ''IDIgNi44OTUgMi44OTUgNiA0IDYgTCAxNSA2IEMgMTYuMTA1IDYgMTcgNi44OTUgMTcgOCBMIDE3IDE1IEMgMTcgMTYuMTA1IDE2LjEwNSAxNyAxNSAxNyBaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGQ9Ik0gMzIgMTcgTCAyMSAxNyBDIDE5''@;'; + put 'put ''Ljg5NSAxNyAxOSAxNi4xMDUgMTkgMTUgTCAxOSA4IEMgMTkgNi44OTUgMTkuODk1IDYgMjEgNiBMIDMyIDYgQyAzMy4xMDUgNiAzNCA2Ljg5NSAzNCA4IEwgMzQgMTUgQyAzNCAxNi4xMDUgMzMuMTA1IDE3IDMyIDE3IFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNv''@;'; + put 'put ''bGlkLXBhdGgtMyIgZD0iTSAxNSAzMCBMIDQgMzAgQyAyLjg5NSAzMCAyIDI5LjEwNSAyIDI4IEwgMiAyMSBDIDIgMTkuODk1IDIuODk1IDE5IDQgMTkgTCAxNSAxOSBDIDE2LjEwNSAxOSAxNyAxOS44OTUgMTcgMjEgTCAxNyAyOCBDIDE3IDI5LjEwNSAxNi4xMDUgMzAgMTUgMzAgWiIvPlxu''@;'; + put 'put ''ICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC00IiBkPSJNIDMyIDMwIEwgMjEgMzAgQyAxOS44OTUgMzAgMTkgMjkuMTA1IDE5IDI4IEwgMTkgMjEgQyAxOSAxOS44OTUgMTkuODk1IDE5IDIxIDE5IEwgMzIgMTkgQyAzMy4xMDUgMTkgMzQgMTkuODk1IDM0IDIx''@;'; + put 'put ''IEwgMzQgMjggQyAzNCAyOS4xMDUgMzMuMTA1IDMwIDMyIDMwIFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS1hbGVydGVkIiBkPSJNMTUsMTdINGEyLDIsMCwwLDEtMi0yVjhBMiwyLDAsMCwxLDQsNkgxNWEyLDIsMCwwLDEs''@;'; + put 'put ''MiwydjdBMiwyLDAsMCwxLDE1LDE3Wk00LDh2N0gxNVY4WiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLWFsZXJ0ZWQiIGQ9Ik0gMzIgMTcgTCAyMSAxNyBDIDIwLjAxNCAxNyAxOS4xOTUgMTYuMjg3IDE5LjAzIDE1LjM0OCBD''@;'; + put 'put ''IDE5LjA0MSAxNS4zNDkgMTkuMDUzIDE1LjM1IDE5LjA2NCAxNS4zNTEgQyAxOS4xMzQgMTUuMzU3IDE5LjIwMSAxNS4zNTkgMTkuMjcgMTUuMzU3IEwgMzMuOTY4IDE1LjM1NyBDIDMzLjggMTYuMjkyIDMyLjk4MyAxNyAzMiAxNyBaIE0gMTkgOCBDIDE5IDYuODk1IDE5Ljg5NSA2IDIxIDYg''@;'; + put 'put ''TCAyMS4zNzIgNiBMIDE5IDEwLjA0OCBaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtYWxlcnRlZCIgZD0iTTE1LDMwSDRhMiwyLDAsMCwxLTItMlYyMWEyLDIsMCwwLDEsMi0ySDE1YTIsMiwwLDAsMSwyLDJ2N0EyLDIsMCww''@;'; + put 'put ''LDEsMTUsMzBaTTQsMjF2N0gxNVYyMVoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC1hbGVydGVkIiBkPSJNMzIsMzBIMjFhMiwyLDAsMCwxLTItMlYyMWEyLDIsMCwwLDEsMi0ySDMyYTIsMiwwLDAsMSwyLDJ2N0EyLDIsMCww''@;'; + put 'put ''LDEsMzIsMzBaTTIxLDIxdjdIMzJWMjFaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC01LS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNIDI2Ljg1NCAxLjE0NCBMIDIxLjEzNCAxMS4wMDQgQyAyMC41NzkgMTEuODE4IDIxLjEx''@;'; + put 'put ''NCAxMi45MjggMjIuMDk3IDEzLjAwMSBDIDIyLjE0MiAxMy4wMDUgMjIuMTg4IDEzLjAwNiAyMi4yMzQgMTMuMDA0IEwgMzMuNjg0IDEzLjAwNCBDIDM0LjY2OSAxMy4wMzYgMzUuMzE5IDExLjk5MSAzNC44NTUgMTEuMTIyIEMgMzQuODM0IDExLjA4MSAzNC44MSAxMS4wNDIgMzQuNzg0IDEx''@;'; + put 'put ''LjAwNCBMIDI5LjA2NCAxLjE0NCBDIDI4LjU3IDAuMjk5IDI3LjM0OCAwLjI5OSAyNi44NTQgMS4xNDQgWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiBkPSJNIDE1IDE3IEwgNCAxNyBDIDIuODk1IDE3IDIgMTYu''@;'; + put 'put ''MTA1IDIgMTUgTCAyIDggQyAyIDYuODk1IDIuODk1IDYgNCA2IEwgMTUgNiBDIDE2LjEwNSA2IDE3IDYuODk1IDE3IDggTCAxNyAxNSBDIDE3IDE2LjEwNSAxNi4xMDUgMTcgMTUgMTcgWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0y''@;'; + put 'put ''LS1hbGVydGVkIiBkPSJNIDMyIDE3IEwgMjEgMTcgQyAyMC4wMTQgMTcgMTkuMTk1IDE2LjI4NyAxOS4wMyAxNS4zNDggQyAxOS4wNDEgMTUuMzQ5IDE5LjA1MyAxNS4zNSAxOS4wNjQgMTUuMzUxIEMgMTkuMTM0IDE1LjM1NyAxOS4yMDEgMTUuMzU5IDE5LjI3IDE1LjM1NyBMIDMzLjk2OCAx''@;'; + put 'put ''NS4zNTcgQyAzMy44IDE2LjI5MiAzMi45ODMgMTcgMzIgMTcgWiBNIDE5IDggQyAxOSA2Ljg5NSAxOS44OTUgNiAyMSA2IEwgMjEuMzcyIDYgTCAxOSAxMC4wNDggWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0zLS1hbGVydGVkIiBk''@;'; + put 'put ''PSJNIDE1IDMwIEwgNCAzMCBDIDIuODk1IDMwIDIgMjkuMTA1IDIgMjggTCAyIDIxIEMgMiAxOS44OTUgMi44OTUgMTkgNCAxOSBMIDE1IDE5IEMgMTYuMTA1IDE5IDE3IDE5Ljg5NSAxNyAyMSBMIDE3IDI4IEMgMTcgMjkuMTA1IDE2LjEwNSAzMCAxNSAzMCBaIi8+XG4gIDxwYXRoIGNsYXNz''@;'; + put 'put ''PSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTQtLWFsZXJ0ZWQiIGQ9Ik0gMzIgMzAgTCAyMSAzMCBDIDE5Ljg5NSAzMCAxOSAyOS4xMDUgMTkgMjggTCAxOSAyMSBDIDE5IDE5Ljg5NSAxOS44OTUgMTkgMjEgMTkgTCAzMiAxOSBDIDMzLjEwNSAxOSAzNCAxOS44OTUg''@;'; + put 'put ''MzQgMjEgTCAzNCAyOCBDIDM0IDI5LjEwNSAzMy4xMDUgMzAgMzIgMzAgWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC01LS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNIDI2Ljg1NCAxLjE0NCBMIDIxLjEzNCAxMS4wMDQgQyAyMC41''@;'; + put 'put ''NzkgMTEuODE4IDIxLjExNCAxMi45MjggMjIuMDk3IDEzLjAwMSBDIDIyLjE0MiAxMy4wMDUgMjIuMTg4IDEzLjAwNiAyMi4yMzQgMTMuMDA0IEwgMzMuNjg0IDEzLjAwNCBDIDM0LjY2OSAxMy4wMzYgMzUuMzE5IDExLjk5MSAzNC44NTUgMTEuMTIyIEMgMzQuODM0IDExLjA4MSAzNC44MSAx''@;'; + put 'put ''MS4wNDIgMzQuNzg0IDExLjAwNCBMIDI5LjA2NCAxLjE0NCBDIDI4LjU3IDAuMjk5IDI3LjM0OCAwLjI5OSAyNi44NTQgMS4xNDQgWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0xNSwxN0g0YTIsMiww''@;'; + put 'put ''LDAsMS0yLTJWOEEyLDIsMCwwLDEsNCw2SDE1YTIsMiwwLDAsMSwyLDJ2N0EyLDIsMCwwLDEsMTUsMTdaTTQsOHY3SDE1VjhaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgZD0iTSAzMiAxNyBMIDIxIDE3IEMg''@;'; + put 'put ''MTkuODk1IDE3IDE5IDE2LjEwNSAxOSAxNSBMIDE5IDggQyAxOSA2Ljg5NSAxOS44OTUgNiAyMSA2IEwgMjIuNTkgNiBDIDIyLjU5IDYuMDE5IDIyLjU5IDYuMDM3IDIyLjU5IDYuMDU2IEMgMjIuNTkgNi43MjkgMjIuNjggNy4zODEgMjIuODQ4IDggTCAyMSA4IEwgMjEgMTUgTCAzMiAxNSBM''@;'; + put 'put ''IDMyIDEzLjE3NSBDIDMyLjcxNyAxMi45NzIgMzMuMzg5IDEyLjY2NCAzNCAxMi4yNjkgTCAzNCAxNSBDIDM0IDE2LjEwNSAzMy4xMDUgMTcgMzIgMTcgWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiIGQ9Ik0x''@;'; + put 'put ''NSwzMEg0YTIsMiwwLDAsMS0yLTJWMjFhMiwyLDAsMCwxLDItMkgxNWEyLDIsMCwwLDEsMiwydjdBMiwyLDAsMCwxLDE1LDMwWk00LDIxdjdIMTVWMjFaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCIgZD0iTTMy''@;'; + put 'put ''LDMwSDIxYTIsMiwwLDAsMS0yLTJWMjFhMiwyLDAsMCwxLDItMkgzMmEyLDIsMCwwLDEsMiwydjdBMiwyLDAsMCwxLDMyLDMwWk0yMSwyMXY3SDMyVjIxWiIvPlxuICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWJhZGdlZCBjbHIt''@;'; + put 'put ''aS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgZD0iTSAxNSAxNyBMIDQgMTcgQyAyLjg5NSAxNyAyIDE2LjEwNSAyIDE1IEwgMiA4IEMgMiA2Ljg5NSAyLjg5NSA2IDQg''@;'; + put 'put ''NiBMIDE1IDYgQyAxNi4xMDUgNiAxNyA2Ljg5NSAxNyA4IEwgMTcgMTUgQyAxNyAxNi4xMDUgMTYuMTA1IDE3IDE1IDE3IFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQiIGQ9Ik0gMzIgMTcgTCAyMSAxNyBDIDE5Ljg5''@;'; + put 'put ''NSAxNyAxOSAxNi4xMDUgMTkgMTUgTCAxOSA4IEMgMTkgNi44OTUgMTkuODk1IDYgMjEgNiBMIDIyLjU5IDYgQyAyMi41OSA2LjAxOSAyMi41OSA2LjAzNyAyMi41OSA2LjA1NiBDIDIyLjU5IDEwLjE0MSAyNS45MDEgMTMuNDUyIDI5Ljk4NiAxMy40NTIgQyAzMS40NjYgMTMuNDUyIDMyLjg0''@;'; + put 'put ''NCAxMy4wMTggMzQgMTIuMjY5IEwgMzQgMTUgQyAzNCAxNi4xMDUgMzMuMTA1IDE3IDMyIDE3IFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0zLS1iYWRnZWQiIGQ9Ik0gMTUgMzAgTCA0IDMwIEMgMi44OTUgMzAgMiAyOS4xMDUgMiAy''@;'; + put 'put ''OCBMIDIgMjEgQyAyIDE5Ljg5NSAyLjg5NSAxOSA0IDE5IEwgMTUgMTkgQyAxNi4xMDUgMTkgMTcgMTkuODk1IDE3IDIxIEwgMTcgMjggQyAxNyAyOS4xMDUgMTYuMTA1IDMwIDE1IDMwIFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC00''@;'; + put 'put ''LS1iYWRnZWQiIGQ9Ik0gMzIgMzAgTCAyMSAzMCBDIDE5Ljg5NSAzMCAxOSAyOS4xMDUgMTkgMjggTCAxOSAyMSBDIDE5IDE5Ljg5NSAxOS44OTUgMTkgMjEgMTkgTCAzMiAxOSBDIDMzLjEwNSAxOSAzNCAxOS44OTUgMzQgMjEgTCAzNCAyOCBDIDM0IDI5LjEwNSAzMy4xMDUgMzAgMzIgMzAg''@;'; + put 'put ''WiIvPlxuICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtNS0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+JyksTC5DbHJTaGFwZUhlYXRNYXA9KDAsRS5jbHJJY29uU1ZHKSgnXG4gIDxwYXRoIGNsYXNzPSJjbHIt''@;'; + put 'put ''aS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNIDMyIDUgTCA0IDUgQyAyLjg5NSA1IDIgNS44OTUgMiA3IEwgMiAyOSBDIDIgMzAuMTA1IDIuODk1IDMxIDQgMzEgTCAzMiAzMSBDIDMzLjEwNSAzMSAzNCAzMC4xMDUgMzQgMjkgTCAzNCA3IEMgMzQgNS44OTUgMzMuMTA1IDUg''@;'; + put 'put ''MzIgNSBaIE0gNCAyOSBMIDQgNyBMIDMyIDcgTCAzMiAyOSBaIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gOCAxMCBMIDI4IDEwIEwgMjggMjYgTCA4IDI2IFogTSA5LjYgMjQgTCAxNC4xIDI0IEwgMTQuMSAxOC44IEwgOS42IDE4LjggWiBNIDE0LjEgMTEuNiBMIDkuNiAxMS42IEwgOS42IDE3''@;'; + put 'put ''LjIgTCAxNC4xIDE3LjIgWiBNIDI2IDI0IEwgMjYgMTguOCBMIDIxLjkgMTguOCBMIDIxLjkgMjQgWiBNIDI2IDExLjYgTCAyMS45IDExLjYgTCAyMS45IDE3LjIgTCAyNiAxNy4yIFogTSAxNS43IDExLjYgTCAxNS43IDE3LjIgTCAyMC4zIDE3LjIgTCAyMC4zIDExLjYgWiBNIDE1LjcgMjQg''@;'; + put 'put ''TCAyMC4zIDI0IEwgMjAuMyAxOC44IEwgMTUuNyAxOC44IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIj48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgZD0iTSAzMiAx''@;'; + put 'put ''My4yMiBMIDMyIDI5IEwgNCAyOSBMIDQgNyBMIDIyLjU3IDcgQyAyMi41MjQgNi42NjggMjIuNTAxIDYuMzM0IDIyLjUgNiBDIDIyLjUwMSA1LjY2NSAyMi41MjQgNS4zMzEgMjIuNTcgNSBMIDQgNSBDIDIuODk1IDUgMiA1Ljg5NSAyIDcgTCAyIDI5IEMgMiAzMC4xMDQgMi44OTUgMzEgNCAz''@;'; + put 'put ''MSBMIDMyIDMxIEMgMzMuMTA0IDMxIDM0IDMwLjEwNCAzNCAyOSBMIDM0IDEyLjM0IEMgMzMuMzggMTIuNzMgMzIuNzA2IDEzLjAyNiAzMiAxMy4yMiBaIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gOCAxMCBMIDIzLjcyOCAxMCBDIDI0LjEwNSAxMC41OTYgMjQuNTY0IDExLjEzNSAyNS4wOSAx''@;'; + put 'put ''MS42IEwgMjEuOSAxMS42IEwgMjEuOSAxNy4yIEwgMjYgMTcuMiBMIDI2IDEyLjI4NyBDIDI2LjYxMSAxMi42NzkgMjcuMjg0IDEyLjk4MyAyOCAxMy4xODIgTCAyOCAyNiBMIDggMjYgWiBNIDkuNiAyNCBMIDE0LjEgMjQgTCAxNC4xIDE4LjggTCA5LjYgMTguOCBaIE0gMTQuMSAxMS42IEwg''@;'; + put 'put ''OS42IDExLjYgTCA5LjYgMTcuMiBMIDE0LjEgMTcuMiBaIE0gMjYgMjQgTCAyNiAxOC44IEwgMjEuOSAxOC44IEwgMjEuOSAyNCBaIE0gMTUuNyAxMS42IEwgMTUuNyAxNy4yIEwgMjAuMyAxNy4yIEwgMjAuMyAxMS42IFogTSAxNS43IDI0IEwgMjAuMyAyNCBMIDIwLjMgMTguOCBMIDE1Ljcg''@;'; + put 'put ''MTguOCBaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiPjwvcGF0aD5cbiAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAi''@;'; + put 'put ''IGN5PSI2IiByPSI1Ij48L2NpcmNsZT5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0gMzQgMjkgQyAzNCAzMC4xMDUgMzMuMTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIuODk1IDMxIDIgMzAuMTA1IDIgMjkg''@;'; + put 'put ''TCAyIDcgQyAyIDUuODk1IDIuODk1IDUgNCA1IEwgMjEuOTU4IDUgTCAyMC43ODYgNyBMIDQgNyBMIDQgMjkgTCAzMiAyOSBMIDMyIDE1LjM1NyBMIDM0IDE1LjM1NyBaIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gOCAxMCBMIDE5LjAyOCAxMCBMIDE4LjA5MSAxMS42IEwgMTUuNyAxMS42IEwg''@;'; + put 'put ''MTUuNyAxNy4yIEwgMjAuMyAxNy4yIEwgMjAuMyAxNS4zNTcgTCAyMS45IDE1LjM1NyBMIDIxLjkgMTcuMiBMIDI2IDE3LjIgTCAyNiAxNS4zNTcgTCAyOCAxNS4zNTcgTCAyOCAyNiBMIDggMjYgWiBNIDkuNiAyNCBMIDE0LjEgMjQgTCAxNC4xIDE4LjggTCA5LjYgMTguOCBaIE0gMTQuMSAx''@;'; + put 'put ''MS42IEwgOS42IDExLjYgTCA5LjYgMTcuMiBMIDE0LjEgMTcuMiBaIE0gMjYgMjQgTCAyNiAxOC44IEwgMjEuOSAxOC44IEwgMjEuOSAyNCBaIE0gMTUuNyAyNCBMIDIwLjMgMjQgTCAyMC4zIDE4LjggTCAxNS43IDE4LjggWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWkt''@;'; + put 'put ''b3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiPjwvcGF0aD5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTIyLS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNIDI2Ljg1NCAxLjE0NCBMIDIxLjEzNCAxMS4wMDQgQyAyMC41NzkgMTEuODE4''@;'; + put 'put ''IDIxLjExNCAxMi45MjggMjIuMDk3IDEzLjAwMSBDIDIyLjE0MiAxMy4wMDUgMjIuMTg4IDEzLjAwNiAyMi4yMzQgMTMuMDA0IEwgMzMuNjg0IDEzLjAwNCBDIDM0LjY2OSAxMy4wMzYgMzUuMzE5IDExLjk5MSAzNC44NTUgMTEuMTIyIEMgMzQuODM0IDExLjA4MSAzNC44MSAxMS4wNDIgMzQu''@;'; + put 'put ''Nzg0IDExLjAwNCBMIDI5LjA2NCAxLjE0NCBDIDI4LjU3IDAuMjk5IDI3LjM0OCAwLjI5OSAyNi44NTQgMS4xNDQgWiI+PC9wYXRoPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNIDM0IDcgTCAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEg''@;'; + put 'put ''MzIgMzEgTCA0IDMxIEMgMi44OTYgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBDIDIgNS44OTYgMi44OTYgNSA0IDUgTCAzMiA1IEMgMzMuMTA1IDUgMzQgNS44OTYgMzQgNyBaIE0gOCAyNiBMIDI4IDI2IEwgMjggMTAgTCA4IDEwIFogTSAxMCAxOSBMIDE0IDE5IEwgMTQgMjQgTCAxMCAyNCBa''@;'; + put 'put ''IE0gMjIgMjQgTCAyMiAxOSBMIDI2IDE5IEwgMjYgMjQgWiBNIDIwIDE5IEwgMjAgMjQgTCAxNiAyNCBMIDE2IDE5IFogTSAyNiAxNyBMIDIyIDE3IEwgMjIgMTIgTCAyNiAxMiBaIE0gMjAgMTIgTCAyMCAxNyBMIDE2IDE3IEwgMTYgMTIgWiBNIDE0IDEyIEwgMTQgMTcgTCAxMCAxNyBMIDEw''@;'; + put 'put ''IDEyIFoiPjwvcGF0aD5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0gMzQgMTIuMzQgTCAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIgMzEgTCA0IDMxIEMgMi44OTYgMzEgMiAzMC4xMDUgMiAyOSBMIDIg''@;'; + put 'put ''NyBDIDIgNS44OTYgMi44OTYgNSA0IDUgTCAyMi41NyA1IEMgMjIuMzEyIDYuODE3IDIyLjczMiA4LjU2NiAyMy42MzMgMTAgTCA4IDEwIEwgOCAyNiBMIDI4IDI2IEwgMjggMTMuMjMyIEMgMjguNDIxIDEzLjM0NSAyOC44NTkgMTMuNDIyIDI5LjMxIDEzLjQ2IEwgMzAuMzIgMTMuNDggQyAz''@;'; + put 'put ''MS42MjYgMTMuNDI5IDMyLjg5NSAxMy4wMzYgMzQgMTIuMzQgWiBNIDEwIDE5IEwgMTQgMTkgTCAxNCAyNCBMIDEwIDI0IFogTSAyMiAyNCBMIDIyIDE5IEwgMjYgMTkgTCAyNiAyNCBaIE0gMjAgMTkgTCAyMCAyNCBMIDE2IDI0IEwgMTYgMTkgWiBNIDI2IDE3IEwgMjIgMTcgTCAyMiAxMiBM''@;'; + put 'put ''IDI1LjU4NCAxMiBDIDI1LjcxOSAxMi4xIDI1Ljg1OCAxMi4xOTYgMjYgMTIuMjg3IFogTSAyMCAxMiBMIDIwIDE3IEwgMTYgMTcgTCAxNiAxMiBaIE0gMTQgMTIgTCAxNCAxNyBMIDEwIDE3IEwgMTAgMTIgWiI+PC9wYXRoPlxuICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2Vk''@;'; + put 'put ''IGNsci1pLXNvbGlkLXBhdGgtMjItLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSI+PC9jaXJjbGU+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0gMzQgMjkgQyAzNCAzMC4xMDUgMzMu''@;'; + put 'put ''MTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIuODk2IDMxIDIgMzAuMTA1IDIgMjkgTCAyIDcgQyAyIDUuODk2IDIuODk2IDUgNCA1IEwgMjEuOTU4IDUgTCAxOS4wMjggMTAgTCA4IDEwIEwgOCAyNiBMIDI4IDI2IEwgMjggMTUuMzU3IEwgMzQgMTUuMzU3IFogTSAxMCAxOSBMIDE0IDE5IEwgMTQg''@;'; + put 'put ''MjQgTCAxMCAyNCBaIE0gMjIgMjQgTCAyMiAxOSBMIDI2IDE5IEwgMjYgMjQgWiBNIDIwIDE5IEwgMjAgMjQgTCAxNiAyNCBMIDE2IDE5IFogTSAyNiAxNyBMIDIyIDE3IEwgMjIgMTUuMzU3IEwgMjYgMTUuMzU3IFogTSAyMCAxNyBMIDE2IDE3IEwgMTYgMTIgTCAxNy44NTYgMTIgTCAxNy42''@;'; + put 'put ''MjUgMTIuMzk1IEMgMTYuNzk1IDEzLjYwMSAxNy41OTQgMTUuMjQ1IDE5LjA2NCAxNS4zNTEgQyAxOS4xMzQgMTUuMzU3IDE5LjIwMSAxNS4zNTkgMTkuMjcgMTUuMzU3IEwgMjAgMTUuMzU3IFogTSAxNCAxMiBMIDE0IDE3IEwgMTAgMTcgTCAxMCAxMiBaIj48L3BhdGg+XG4gIDxwYXRoIGNs''@;'; + put 'put ''YXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTIyLS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNIDI2Ljg1NCAxLjE0NCBMIDIxLjEzNCAxMS4wMDQgQyAyMC41NzkgMTEuODE4IDIxLjExNCAxMi45MjggMjIuMDk3IDEzLjAwMSBDIDIyLjE0MiAxMy4wMDUgMjIu''@;'; + put 'put ''MTg4IDEzLjAwNiAyMi4yMzQgMTMuMDA0IEwgMzMuNjg0IDEzLjAwNCBDIDM0LjY2OSAxMy4wMzYgMzUuMzE5IDExLjk5MSAzNC44NTUgMTEuMTIyIEMgMzQuODM0IDExLjA4MSAzNC44MSAxMS4wNDIgMzQuNzg0IDExLjAwNCBMIDI5LjA2NCAxLjE0NCBDIDI4LjU3IDAuMjk5IDI3LjM0OCAw''@;'; + put 'put ''LjI5OSAyNi44NTQgMS4xNDQgWiI+PC9wYXRoPicpLEwuQ2xyU2hhcGVMaW5lQ2hhcnQ9KDAsRS5jbHJJY29uU1ZHKSgnXG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNIDMyIDUgTCA0IDUgQyAyLjg5NSA1IDIgNS44OTUgMiA3IEwgMiAy''@;'; + put 'put ''OSBDIDIgMzAuMTA1IDIuODk1IDMxIDQgMzEgTCAzMiAzMSBDIDMzLjEwNSAzMSAzNCAzMC4xMDUgMzQgMjkgTCAzNCA3IEMgMzQgNS44OTUgMzMuMTA1IDUgMzIgNSBaIE0gNCAyOSBMIDQgNyBMIDMyIDcgTCAzMiAyOSBaIj48L3BhdGg+XG4gIDxwb2x5Z29uIHBvaW50cz0iMTUuNjIgMTUu''@;'; + put 'put ''MjIyIDkuNjAyIDIzLjk2OCA1LjU1IDIwLjM4NCA2LjYxIDE5LjE4NiA5LjMwOCAyMS41NzIgMTUuNjM0IDEyLjM4IDIyLjM4NCAyMi4zOTUgMjkuMTM4IDEzLjQ3IDMwLjQxNCAxNC40MzYgMjIuMzA4IDI1LjE0NSIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIi''@;'; + put 'put ''PjwvcG9seWdvbj5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTSAzMiA1IEwgNCA1IEMgMi44OTYgNSAyIDUuODk2IDIgNyBMIDIgMjkgQyAyIDMwLjEwNSAyLjg5NiAzMSA0IDMxIEwgMzIgMzEgQyAzMy4xMDUgMzEgMzQgMzAuMTA1IDM0IDI5''@;'; + put 'put ''IEwgMzQgNyBDIDM0IDUuODk2IDMzLjEwNSA1IDMyIDUgWiBNIDIyLjU2IDI1Ljk0IEwgMTUuNDYgMTUuMzYgTCA5LjEyIDI0LjY0IEwgNC42MiAyMC42NCBMIDYgMTkuMDUgTCA4LjcgMjEuNDQgTCAxNS40NiAxMS41NiBMIDIyLjY1IDIyLjI3IEwgMjkuNjUgMTMgTCAzMS4zNSAxNC4yOCBa''@;'; + put 'put ''Ij48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgZD0iTSAzMiAxMy4yMiBMIDMyIDI5IEwgNCAyOSBMIDQgNyBMIDIyLjU3IDcgQyAyMi41MjQgNi42NjggMjIuNTAxIDYuMzM0IDIyLjUgNiBDIDIyLjUw''@;'; + put 'put ''MSA1LjY2NSAyMi41MjQgNS4zMzEgMjIuNTcgNSBMIDQgNSBDIDIuODk1IDUgMiA1Ljg5NSAyIDcgTCAyIDI5IEMgMiAzMC4xMDQgMi44OTUgMzEgNCAzMSBMIDMyIDMxIEMgMzMuMTA0IDMxIDM0IDMwLjEwNCAzNCAyOSBMIDM0IDEyLjM0IEMgMzMuMzggMTIuNzMgMzIuNzA2IDEzLjAyNiAz''@;'; + put 'put ''MiAxMy4yMiBaIj48L3BhdGg+XG4gIDxwb2x5Z29uIHBvaW50cz0iMTUuNjIgMTUuMjIyIDkuNjAyIDIzLjk2OCA1LjU1IDIwLjM4NCA2LjYxIDE5LjE4NiA5LjMwOCAyMS41NzIgMTUuNjM0IDEyLjM4IDIyLjM4NCAyMi4zOTUgMjkuMTM4IDEzLjQ3IDMwLjQxNCAxNC40MzYgMjIuMzA4IDI1''@;'; + put 'put ''LjE0NSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIj48L3BvbHlnb24+XG4gIDxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAi''@;'; + put 'put ''IGN5PSI2IiByPSI1Ij48L2NpcmNsZT5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0gMzAuMzIgMTMuNDggTCAzMS4zOCAxNC4yOCBMIDIyLjU2IDI1Ljk0IEwgMTUuNDYgMTUuMzYgTCA5LjEyIDI0LjY0IEwgNC42''@;'; + put 'put ''MiAyMC42NCBMIDYgMTkuMDUgTCA4LjcgMjEuNDQgTCAxNS40NiAxMS41NiBMIDIyLjY1IDIyLjI3IEwgMjkuMzEgMTMuNDYgQyAyNS4wNSAxMy4xIDIxLjk2OSA5LjIzMyAyMi41NyA1IEwgNCA1IEMgMi44OTYgNSAyIDUuODk2IDIgNyBMIDIgMjkgQyAyIDMwLjEwNSAyLjg5NiAzMSA0IDMx''@;'; + put 'put ''IEwgMzIgMzEgQyAzMy4xMDUgMzEgMzQgMzAuMTA1IDM0IDI5IEwgMzQgMTIuMzQgQyAzMi44OTUgMTMuMDM2IDMxLjYyNiAxMy40MjkgMzAuMzIgMTMuNDggWiI+PC9wYXRoPlxuICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2Vk''@;'; + put 'put ''IGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ij48L2NpcmNsZT5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0gMzQgMjkgQyAzNCAzMC4xMDUgMzMuMTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIu''@;'; + put 'put ''ODk1IDMxIDIgMzAuMTA1IDIgMjkgTCAyIDcgQyAyIDUuODk1IDIuODk1IDUgNCA1IEwgMjEuOTU4IDUgTCAyMC43ODYgNyBMIDQgNyBMIDQgMjkgTCAzMiAyOSBMIDMyIDE1LjM1NyBMIDM0IDE1LjM1NyBaIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gMTUuNjIgMTUuMjIyIEwgOS42MDIgMjMu''@;'; + put 'put ''OTY4IEwgNS41NSAyMC4zODQgTCA2LjYxIDE5LjE4NiBMIDkuMzA4IDIxLjU3MiBMIDE1LjYzNCAxMi4zOCBMIDIyLjM4NCAyMi4zOTUgTCAyNy43MTcgMTUuMzQ4IEwgMjkuNzI0IDE1LjM0OCBMIDIyLjMwOCAyNS4xNDUgWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWkt''@;'; + put 'put ''b3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiPjwvcGF0aD5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0gMjYuODU0IDEuMTQ0IEwgMjEuMTM0IDExLjAwNCBDIDIwLjU3OSAxMS44MTgg''@;'; + put 'put ''MjEuMTE0IDEyLjkyOCAyMi4wOTcgMTMuMDAxIEMgMjIuMTQyIDEzLjAwNSAyMi4xODggMTMuMDA2IDIyLjIzNCAxMy4wMDQgTCAzMy42ODQgMTMuMDA0IEMgMzQuNjY5IDEzLjAzNiAzNS4zMTkgMTEuOTkxIDM0Ljg1NSAxMS4xMjIgQyAzNC44MzQgMTEuMDgxIDM0LjgxIDExLjA0MiAzNC43''@;'; + put 'put ''ODQgMTEuMDA0IEwgMjkuMDY0IDEuMTQ0IEMgMjguNTcgMC4yOTkgMjcuMzQ4IDAuMjk5IDI2Ljg1NCAxLjE0NCBaIj48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0gMzQgMjkgQyAzNCAzMC4xMDUg''@;'; + put 'put ''MzMuMTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIuODk2IDMxIDIgMzAuMTA1IDIgMjkgTCAyIDcgQyAyIDUuODk2IDIuODk2IDUgNCA1IEwgMjEuOTU4IDUgTCAxNy42MjUgMTIuMzk1IEMgMTYuNzk1IDEzLjYwMSAxNy41OTQgMTUuMjQ1IDE5LjA2NCAxNS4zNTEgQyAxOS4xMzQgMTUuMzU3IDE5''@;'; + put 'put ''LjIwMSAxNS4zNTkgMTkuMjcgMTUuMzU3IEwgMjcuNDUyIDE1LjM1NyBMIDIyLjM4IDIyLjA2IEwgMTUuNjMgMTIgTCA5LjI4IDIxLjI4IEwgNi43NSAxOS4wNCBMIDUuNDIgMjAuNTMgTCA5LjY1IDI0LjI4IEwgMTUuNjEgMTUuNTYgTCAyMi4yOCAyNS41IEwgMjkuOTU5IDE1LjM1NyBMIDM0''@;'; + put 'put ''IDE1LjM1NyBaIj48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0gMjYuODU0IDEuMTQ0IEwgMjEuMTM0IDExLjAwNCBDIDIwLjU3OSAxMS44MTggMjEuMTE0IDEyLjkyOCAyMi4w''@;'; + put 'put ''OTcgMTMuMDAxIEMgMjIuMTQyIDEzLjAwNSAyMi4xODggMTMuMDA2IDIyLjIzNCAxMy4wMDQgTCAzMy42ODQgMTMuMDA0IEMgMzQuNjY5IDEzLjAzNiAzNS4zMTkgMTEuOTkxIDM0Ljg1NSAxMS4xMjIgQyAzNC44MzQgMTEuMDgxIDM0LjgxIDExLjA0MiAzNC43ODQgMTEuMDA0IEwgMjkuMDY0''@;'; + put 'put ''IDEuMTQ0IEMgMjguNTcgMC4yOTkgMjcuMzQ4IDAuMjk5IDI2Ljg1NCAxLjE0NCBaIj48L3BhdGg+JyksTC5DbHJTaGFwZVBpZUNoYXJ0PSgwLEUuY2xySWNvblNWRykoJ1xuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTSAzMiA1IEwgNCA1''@;'; + put 'put ''IEMgMi44OTUgNSAyIDUuODk1IDIgNyBMIDIgMjkgQyAyIDMwLjEwNSAyLjg5NSAzMSA0IDMxIEwgMzIgMzEgQyAzMy4xMDUgMzEgMzQgMzAuMTA1IDM0IDI5IEwgMzQgNyBDIDM0IDUuODk1IDMzLjEwNSA1IDMyIDUgWiBNIDQgMjkgTCA0IDcgTCAzMiA3IEwgMzIgMjkgWiI+PC9wYXRoPlxu''@;'; + put 'put ''ICA8cGF0aCBkPSJNIDE3IDI3IEMgMTIuNTgyIDI3IDkgMjMuNDE4IDkgMTkgQyA5IDE0LjU4MiAxMi41ODIgMTEgMTcgMTEgTCAxNyAxOSBMIDI1IDE5IEMgMjUgMjMuNDE4IDIxLjQxOCAyNyAxNyAyNyBaIE0gMjMuMjQ3IDIwLjQgTCAxNS40IDIwLjQgTCAxNS40IDEyLjgwMiBDIDEyLjY0''@;'; + put 'put ''IDEzLjUxMyAxMC42MDEgMTYuMDE4IDEwLjYgMTkgQyAxMC42IDIyLjUzNSAxMy40NjUgMjUuNCAxNyAyNS40IEMgMjAuMDU0IDI1LjQwMSAyMi42MDggMjMuMjYxIDIzLjI0NyAyMC40IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIj48L3BhdGg+XG4gIDxw''@;'; + put 'put ''YXRoIGQ9Ik0gMTkgOSBDIDIzLjQxOCA5IDI3IDEyLjU4MiAyNyAxNyBMIDE5IDE3IFogTSAyNS4xOTggMTUuNCBDIDI0LjYyIDEzLjE1IDIyLjg0OSAxMS4zOCAyMC42IDEwLjgwMSBMIDIwLjYgMTUuNCBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyI+PC9w''@;'; + put 'put ''YXRoPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNIDM0IDcgTCAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIgMzEgQyAzMiAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3IEMgMiA1Ljg5NiAyLjg5NiA1IDQgNSBMIDMyIDUgQyAzMy4xMDUg''@;'; + put 'put ''NSAzNCA1Ljg5NiAzNCA3IFogTSAyNSAxOSBMIDE3IDE5IEwgMTcgMTEgQyAxMi41ODIgMTEgOSAxNC41ODIgOSAxOSBDIDkgMjMuNDE4IDEyLjU4MiAyNyAxNyAyNyBDIDIxLjQxOCAyNyAyNSAyMy40MTggMjUgMTkgWiBNIDE5IDE3IEwgMjcgMTcgQyAyNyAxMi41ODIgMjMuNDE4IDkgMTkg''@;'; + put 'put ''OSBaIj48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgZD0iTSAzMiAxMy4yMiBMIDMyIDI5IEwgNCAyOSBMIDQgNyBMIDIyLjU3IDcgQyAyMi41MjQgNi42NjggMjIuNTAxIDYuMzM0IDIyLjUgNiBDIDIy''@;'; + put 'put ''LjUwMSA1LjY2NSAyMi41MjQgNS4zMzEgMjIuNTcgNSBMIDQgNSBDIDIuODk1IDUgMiA1Ljg5NSAyIDcgTCAyIDI5IEMgMiAzMC4xMDQgMi44OTUgMzEgNCAzMSBMIDMyIDMxIEMgMzMuMTA0IDMxIDM0IDMwLjEwNCAzNCAyOSBMIDM0IDEyLjM0IEMgMzMuMzggMTIuNzMgMzIuNzA2IDEzLjAy''@;'; + put 'put ''NiAzMiAxMy4yMiBaIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gMTcgMjcgQyAxMi41ODIgMjcgOSAyMy40MTggOSAxOSBDIDkgMTQuNTgyIDEyLjU4MiAxMSAxNyAxMSBMIDE3IDE5IEwgMjUgMTkgQyAyNSAyMy40MTggMjEuNDE4IDI3IDE3IDI3IFogTSAyMy4yNDcgMjAuNCBMIDE1LjQgMjAu''@;'; + put 'put ''NCBMIDE1LjQgMTIuODAyIEMgMTIuNjQgMTMuNTEzIDEwLjYwMSAxNi4wMTggMTAuNiAxOSBDIDEwLjYgMjIuNTM1IDEzLjQ2NSAyNS40IDE3IDI1LjQgQyAyMC4wNTQgMjUuNDAxIDIyLjYwOCAyMy4yNjEgMjMuMjQ3IDIwLjQgWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHIt''@;'; + put 'put ''aS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gMTkgOSBDIDIzLjQxOCA5IDI3IDEyLjU4MiAyNyAxNyBMIDE5IDE3IFogTSAyNS4xOTggMTUuNCBDIDI0LjYyIDEzLjE1IDIyLjg0OSAxMS4zOCAyMC42IDEwLjgwMSBMIDIwLjYgMTUuNCBaIiBjbGFzcz0i''@;'; + put 'put ''Y2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiPjwvcGF0aD5cbiAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiPjwv''@;'; + put 'put ''Y2lyY2xlPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgZD0iTSAzNCAxMi4zNCBMIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NiAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3IEMgMiA1''@;'; + put 'put ''Ljg5NiAyLjg5NiA1IDQgNSBMIDIyLjU3IDUgQyAyMS45NjkgOS4yMzMgMjUuMDUgMTMuMSAyOS4zMSAxMy40NiBMIDMwLjMyIDEzLjQ4IEMgMzEuNjI2IDEzLjQyOSAzMi44OTUgMTMuMDM2IDM0IDEyLjM0IFogTSAyNSAxOSBMIDE3IDE5IEwgMTcgMTEgQyAxMi41ODIgMTEgOSAxNC41ODIg''@;'; + put 'put ''OSAxOSBDIDkgMjMuNDE4IDEyLjU4MiAyNyAxNyAyNyBDIDIxLjQxOCAyNyAyNSAyMy40MTggMjUgMTkgWiBNIDE5IDE3IEwgMjcgMTcgQyAyNyAxMi41ODIgMjMuNDE4IDkgMTkgOSBaIj48L3BhdGg+XG4gIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQt''@;'; + put 'put ''cGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiPjwvY2lyY2xlPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgZD0iTSAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIg''@;'; + put 'put ''MzEgTCA0IDMxIEMgMi44OTUgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBDIDIgNS44OTUgMi44OTUgNSA0IDUgTCAyMS45NTggNSBMIDIwLjc4NiA3IEwgNCA3IEwgNCAyOSBMIDMyIDI5IEwgMzIgMTUuMzU3IEwgMzQgMTUuMzU3IFoiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSAxNyAyNyBDIDEy''@;'; + put 'put ''LjU4MiAyNyA5IDIzLjQxOCA5IDE5IEMgOSAxNC41ODIgMTIuNTgyIDExIDE3IDExIEwgMTcgMTkgTCAyNSAxOSBDIDI1IDIzLjQxOCAyMS40MTggMjcgMTcgMjcgWiBNIDIzLjI0NyAyMC40IEwgMTUuNCAyMC40IEwgMTUuNCAxMi44MDIgQyAxMi42NCAxMy41MTMgMTAuNjAxIDE2LjAxOCAx''@;'; + put 'put ''MC42IDE5IEMgMTAuNiAyMi41MzUgMTMuNDY1IDI1LjQgMTcgMjUuNCBDIDIwLjA1NCAyNS40MDEgMjIuNjA4IDIzLjI2MSAyMy4yNDcgMjAuNCBaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCI+PC9wYXRoPlxuICA8cGF0aCBk''@;'; + put 'put ''PSJNIDI3IDE3IEwgMTkgMTcgTCAxOSAxNS4zNDUgQyAxOS4wMjEgMTUuMzQ4IDE5LjA0MyAxNS4zNDkgMTkuMDY0IDE1LjM1MSBDIDE5LjEzNCAxNS4zNTcgMTkuMjAxIDE1LjM1OSAxOS4yNyAxNS4zNTcgTCAyNi44MzEgMTUuMzU3IEMgMjYuOTQyIDE1Ljg4NyAyNyAxNi40MzcgMjcgMTcg''@;'; + put 'put ''WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiPjwvcGF0aD5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0gMjYuODU0''@;'; + put 'put ''IDEuMTQ0IEwgMjEuMTM0IDExLjAwNCBDIDIwLjU3OSAxMS44MTggMjEuMTE0IDEyLjkyOCAyMi4wOTcgMTMuMDAxIEMgMjIuMTQyIDEzLjAwNSAyMi4xODggMTMuMDA2IDIyLjIzNCAxMy4wMDQgTCAzMy42ODQgMTMuMDA0IEMgMzQuNjY5IDEzLjAzNiAzNS4zMTkgMTEuOTkxIDM0Ljg1NSAx''@;'; + put 'put ''MS4xMjIgQyAzNC44MzQgMTEuMDgxIDM0LjgxIDExLjA0MiAzNC43ODQgMTEuMDA0IEwgMjkuMDY0IDEuMTQ0IEMgMjguNTcgMC4yOTkgMjcuMzQ4IDAuMjk5IDI2Ljg1NCAxLjE0NCBaIj48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1w''@;'; + put 'put ''YXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0gMzQgMjkgQyAzNCAzMC4xMDUgMzMuMTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIuODk2IDMxIDIgMzAuMTA1IDIgMjkgTCAyIDcgQyAyIDUuODk2IDIuODk2IDUgNCA1IEwgMjEuOTU4IDUgTCAxNy42MjUgMTIuMzk1IEMgMTYuODA3IDEzLjU4MyAxNy41NzEg''@;'; + put 'put ''MTUuMTk3IDE5IDE1LjM0NSBMIDE5IDE3IEwgMjcgMTcgQyAyNyAxNi40MzcgMjYuOTQyIDE1Ljg4NyAyNi44MzEgMTUuMzU3IEwgMzQgMTUuMzU3IFogTSAyNSAxOSBMIDE3IDE5IEwgMTcgMTEgQyAxMi41ODIgMTEgOSAxNC41ODIgOSAxOSBDIDkgMjMuNDE4IDEyLjU4MiAyNyAxNyAyNyBD''@;'; + put 'put ''IDIxLjQxOCAyNyAyNSAyMy40MTggMjUgMTkgWiI+PC9wYXRoPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNIDI2Ljg1NCAxLjE0NCBMIDIxLjEzNCAxMS4wMDQgQyAyMC41NzkgMTEuODE4''@;'; + put 'put ''IDIxLjExNCAxMi45MjggMjIuMDk3IDEzLjAwMSBDIDIyLjE0MiAxMy4wMDUgMjIuMTg4IDEzLjAwNiAyMi4yMzQgMTMuMDA0IEwgMzMuNjg0IDEzLjAwNCBDIDM0LjY2OSAxMy4wMzYgMzUuMzE5IDExLjk5MSAzNC44NTUgMTEuMTIyIEMgMzQuODM0IDExLjA4MSAzNC44MSAxMS4wNDIgMzQu''@;'; + put 'put ''Nzg0IDExLjAwNCBMIDI5LjA2NCAxLjE0NCBDIDI4LjU3IDAuMjk5IDI3LjM0OCAwLjI5OSAyNi44NTQgMS4xNDQgWiI+PC9wYXRoPicpLEwuQ2xyU2hhcGVTY2F0dGVyUGxvdD0oMCxFLmNsckljb25TVkcpKCdcbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1w''@;'; + put 'put ''YXRoLTEiIGQ9Ik0gMzIgNSBMIDQgNSBDIDIuODk1IDUgMiA1Ljg5NSAyIDcgTCAyIDI5IEMgMiAzMC4xMDUgMi44OTUgMzEgNCAzMSBMIDMyIDMxIEMgMzMuMTA1IDMxIDM0IDMwLjEwNSAzNCAyOSBMIDM0IDcgQyAzNCA1Ljg5NSAzMy4xMDUgNSAzMiA1IFogTSA0IDI5IEwgNCA3IEwgMzIg''@;'; + put 'put ''NyBMIDMyIDI5IFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0gOS4xMDEgMTUuOCBDIDkuNDEzIDE2LjExMSA5LjkxOSAxNi4xMTEgMTAuMjMxIDE1LjggTCAxMS4zOTEgMTQuNjQgTCAxMi41NTEgMTUuOCBDIDEyLjk2NCAxNi4y''@;'; + put 'put ''NTYgMTMuNzE3IDE2LjA5NCAxMy45MDUgMTUuNTA3IEMgMTQuMDAyIDE1LjIwOCAxMy45MTQgMTQuODgxIDEzLjY4MSAxNC42NyBMIDEyLjUzMSAxMy41NCBMIDEzLjY5MSAxMi4zOCBDIDE0LjE0NyAxMS45NjYgMTMuOTg1IDExLjIxNCAxMy4zOTkgMTEuMDI1IEMgMTMuMSAxMC45MjkgMTIu''@;'; + put 'put ''NzcyIDExLjAxNyAxMi41NjEgMTEuMjUgTCAxMS40MDEgMTIuNDEgTCAxMC4yMzEgMTEuMjIgQyA5LjgxNyAxMC43NjMgOS4wNjUgMTAuOTI2IDguODc3IDExLjUxMiBDIDguNzggMTEuODExIDguODY4IDEyLjEzOSA5LjEwMSAxMi4zNSBMIDEwLjI2MSAxMy41NCBMIDkuMTAxIDE0LjY3IEMg''@;'; + put 'put ''OC43ODkgMTQuOTgyIDguNzg5IDE1LjQ4NyA5LjEwMSAxNS44IFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIGQ9Ik0gMTUuMTc2IDI1LjUzNiBDIDE1LjQ4OCAyNS44NDcgMTUuOTk0IDI1Ljg0NyAxNi4zMDYgMjUuNTM2IEwgMTcuNDY2''@;'; + put 'put ''IDI0LjM3NiBMIDE4LjYyNiAyNS41MzYgQyAxOS4wMzkgMjUuOTkyIDE5Ljc5MiAyNS44MyAxOS45OCAyNS4yNDMgQyAyMC4wNzcgMjQuOTQ0IDE5Ljk4OSAyNC42MTcgMTkuNzU2IDI0LjQwNiBMIDE4LjYwNiAyMy4yNzYgTCAxOS43NjYgMjIuMTE2IEMgMjAuMjIyIDIxLjcwMiAyMC4wNiAy''@;'; + put 'put ''MC45NSAxOS40NzQgMjAuNzYxIEMgMTkuMTc1IDIwLjY2NSAxOC44NDcgMjAuNzUzIDE4LjYzNiAyMC45ODYgTCAxNy40NzYgMjIuMTQ2IEwgMTYuMzA2IDIwLjk1NiBDIDE1Ljg5MiAyMC40OTkgMTUuMTQgMjAuNjYyIDE0Ljk1MiAyMS4yNDggQyAxNC44NTUgMjEuNTQ3IDE0Ljk0MyAyMS44''@;'; + put 'put ''NzUgMTUuMTc2IDIyLjA4NiBMIDE2LjMzNiAyMy4yNzYgTCAxNS4xNzYgMjQuNDA2IEMgMTQuODY0IDI0LjcxOCAxNC44NjQgMjUuMjIzIDE1LjE3NiAyNS41MzYgWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgZD0iTSAyMi45MTIgMjAu''@;'; + put 'put ''MzQzIEMgMjMuMjI0IDIwLjY1NCAyMy43MyAyMC42NTQgMjQuMDQyIDIwLjM0MyBMIDI1LjIwMiAxOS4xODMgTCAyNi4zNjIgMjAuMzQzIEMgMjYuNzc1IDIwLjc5OSAyNy41MjggMjAuNjM3IDI3LjcxNiAyMC4wNSBDIDI3LjgxMyAxOS43NTEgMjcuNzI1IDE5LjQyNCAyNy40OTIgMTkuMjEz''@;'; + put 'put ''IEwgMjYuMzQyIDE4LjA4MyBMIDI3LjUwMiAxNi45MjMgQyAyNy45NTggMTYuNTA5IDI3Ljc5NiAxNS43NTcgMjcuMjEgMTUuNTY4IEMgMjYuOTExIDE1LjQ3MiAyNi41ODMgMTUuNTYgMjYuMzcyIDE1Ljc5MyBMIDI1LjIxMiAxNi45NTMgTCAyNC4wNDIgMTUuNzYzIEMgMjMuNjI4IDE1LjMw''@;'; + put 'put ''NiAyMi44NzYgMTUuNDY5IDIyLjY4OCAxNi4wNTUgQyAyMi41OTEgMTYuMzU0IDIyLjY3OSAxNi42ODIgMjIuOTEyIDE2Ljg5MyBMIDI0LjA3MiAxOC4wODMgTCAyMi45MTIgMTkuMjEzIEMgMjIuNiAxOS41MjUgMjIuNiAyMC4wMyAyMi45MTIgMjAuMzQzIFoiLz5cbiAgPHBhdGggY2xhc3M9''@;'; + put 'put ''ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTSAzNCA3IEwgMzQgMjkgQyAzNCAzMC4xMDUgMzMuMTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIuODk2IDMxIDIgMzAuMTA1IDIgMjkgTCAyIDcgQyAyIDUuODk2IDIuODk2IDUgNCA1IEwgMzIgNSBDIDMzLjEwNSA1IDM0IDUuODk2''@;'; + put 'put ''IDM0IDcgWiBNIDkuMTAxIDE1LjggQyA5LjQxMyAxNi4xMTEgOS45MTkgMTYuMTExIDEwLjIzMSAxNS44IEwgMTEuMzkxIDE0LjY0IEwgMTIuNTUxIDE1LjggQyAxMi45NjQgMTYuMjU2IDEzLjcxNyAxNi4wOTQgMTMuOTA1IDE1LjUwNyBDIDE0LjAwMiAxNS4yMDggMTMuOTE0IDE0Ljg4MSAx''@;'; + put 'put ''My42ODEgMTQuNjcgTCAxMi41MzEgMTMuNTQgTCAxMy42OTEgMTIuMzggQyAxNC4xNDcgMTEuOTY2IDEzLjk4NSAxMS4yMTQgMTMuMzk5IDExLjAyNSBDIDEzLjEgMTAuOTI5IDEyLjc3MiAxMS4wMTcgMTIuNTYxIDExLjI1IEwgMTEuNDAxIDEyLjQxIEwgMTAuMjMxIDExLjIyIEMgOS44MTcg''@;'; + put 'put ''MTAuNzYzIDkuMDY1IDEwLjkyNiA4Ljg3NyAxMS41MTIgQyA4Ljc4IDExLjgxMSA4Ljg2OCAxMi4xMzkgOS4xMDEgMTIuMzUgTCAxMC4yNjEgMTMuNTQgTCA5LjEwMSAxNC42NyBDIDguNzg5IDE0Ljk4MiA4Ljc4OSAxNS40ODcgOS4xMDEgMTUuOCBaIE0gMTUuMTc2IDI1LjUzNiBDIDE1LjQ4''@;'; + put 'put ''OCAyNS44NDcgMTUuOTk0IDI1Ljg0NyAxNi4zMDYgMjUuNTM2IEwgMTcuNDY2IDI0LjM3NiBMIDE4LjYyNiAyNS41MzYgQyAxOS4wMzkgMjUuOTkyIDE5Ljc5MiAyNS44MyAxOS45OCAyNS4yNDMgQyAyMC4wNzcgMjQuOTQ0IDE5Ljk4OSAyNC42MTcgMTkuNzU2IDI0LjQwNiBMIDE4LjYwNiAy''@;'; + put 'put ''My4yNzYgTCAxOS43NjYgMjIuMTE2IEMgMjAuMjIyIDIxLjcwMiAyMC4wNiAyMC45NSAxOS40NzQgMjAuNzYxIEMgMTkuMTc1IDIwLjY2NSAxOC44NDcgMjAuNzUzIDE4LjYzNiAyMC45ODYgTCAxNy40NzYgMjIuMTQ2IEwgMTYuMzA2IDIwLjk1NiBDIDE1Ljg5MiAyMC40OTkgMTUuMTQgMjAu''@;'; + put 'put ''NjYyIDE0Ljk1MiAyMS4yNDggQyAxNC44NTUgMjEuNTQ3IDE0Ljk0MyAyMS44NzUgMTUuMTc2IDIyLjA4NiBMIDE2LjMzNiAyMy4yNzYgTCAxNS4xNzYgMjQuNDA2IEMgMTQuODY0IDI0LjcxOCAxNC44NjQgMjUuMjIzIDE1LjE3NiAyNS41MzYgWiBNIDIyLjkxMiAyMC4zNDMgQyAyMy4yMjQg''@;'; + put 'put ''MjAuNjU0IDIzLjczIDIwLjY1NCAyNC4wNDIgMjAuMzQzIEwgMjUuMjAyIDE5LjE4MyBMIDI2LjM2MiAyMC4zNDMgQyAyNi43NzUgMjAuNzk5IDI3LjUyOCAyMC42MzcgMjcuNzE2IDIwLjA1IEMgMjcuODEzIDE5Ljc1MSAyNy43MjUgMTkuNDI0IDI3LjQ5MiAxOS4yMTMgTCAyNi4zNDIgMTgu''@;'; + put 'put ''MDgzIEwgMjcuNTAyIDE2LjkyMyBDIDI3Ljk1OCAxNi41MDkgMjcuNzk2IDE1Ljc1NyAyNy4yMSAxNS41NjggQyAyNi45MTEgMTUuNDcyIDI2LjU4MyAxNS41NiAyNi4zNzIgMTUuNzkzIEwgMjUuMjEyIDE2Ljk1MyBMIDI0LjA0MiAxNS43NjMgQyAyMy42MjggMTUuMzA2IDIyLjg3NiAxNS40''@;'; + put 'put ''NjkgMjIuNjg4IDE2LjA1NSBDIDIyLjU5MSAxNi4zNTQgMjIuNjc5IDE2LjY4MiAyMi45MTIgMTYuODkzIEwgMjQuMDcyIDE4LjA4MyBMIDIyLjkxMiAxOS4yMTMgQyAyMi42IDE5LjUyNSAyMi42IDIwLjAzIDIyLjkxMiAyMC4zNDMgWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGlu''@;'; + put 'put ''ZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0gMzIgMTMuMjIgTCAzMiAyOSBMIDQgMjkgTCA0IDcgTCAyMi41NyA3IEMgMjIuNTI0IDYuNjY4IDIyLjUwMSA2LjMzNCAyMi41IDYgQyAyMi41MDEgNS42NjUgMjIuNTI0IDUuMzMxIDIyLjU3IDUgTCA0IDUgQyAy''@;'; + put 'put ''Ljg5NSA1IDIgNS44OTUgMiA3IEwgMiAyOSBDIDIgMzAuMTA0IDIuODk1IDMxIDQgMzEgTCAzMiAzMSBDIDMzLjEwNCAzMSAzNCAzMC4xMDQgMzQgMjkgTCAzNCAxMi4zNCBDIDMzLjM4IDEyLjczIDMyLjcwNiAxMy4wMjYgMzIgMTMuMjIgWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0''@;'; + put 'put ''bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiIGQ9Ik0gOS4xMDEgMTUuOCBDIDkuNDEzIDE2LjExMSA5LjkxOSAxNi4xMTEgMTAuMjMxIDE1LjggTCAxMS4zOTEgMTQuNjQgTCAxMi41NTEgMTUuOCBDIDEyLjk2NCAxNi4yNTYgMTMuNzE3IDE2LjA5NCAxMy45MDUg''@;'; + put 'put ''MTUuNTA3IEMgMTQuMDAyIDE1LjIwOCAxMy45MTQgMTQuODgxIDEzLjY4MSAxNC42NyBMIDEyLjUzMSAxMy41NCBMIDEzLjY5MSAxMi4zOCBDIDE0LjE0NyAxMS45NjYgMTMuOTg1IDExLjIxNCAxMy4zOTkgMTEuMDI1IEMgMTMuMSAxMC45MjkgMTIuNzcyIDExLjAxNyAxMi41NjEgMTEuMjUg''@;'; + put 'put ''TCAxMS40MDEgMTIuNDEgTCAxMC4yMzEgMTEuMjIgQyA5LjgxNyAxMC43NjMgOS4wNjUgMTAuOTI2IDguODc3IDExLjUxMiBDIDguNzggMTEuODExIDguODY4IDEyLjEzOSA5LjEwMSAxMi4zNSBMIDEwLjI2MSAxMy41NCBMIDkuMTAxIDE0LjY3IEMgOC43ODkgMTQuOTgyIDguNzg5IDE1LjQ4''@;'; + put 'put ''NyA5LjEwMSAxNS44IFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIiBkPSJNIDE1LjE3NiAyNS41MzYgQyAxNS40ODggMjUuODQ3IDE1Ljk5NCAyNS44NDcgMTYuMzA2IDI1LjUzNiBMIDE3LjQ2NiAyNC4zNzYg''@;'; + put 'put ''TCAxOC42MjYgMjUuNTM2IEMgMTkuMDM5IDI1Ljk5MiAxOS43OTIgMjUuODMgMTkuOTggMjUuMjQzIEMgMjAuMDc3IDI0Ljk0NCAxOS45ODkgMjQuNjE3IDE5Ljc1NiAyNC40MDYgTCAxOC42MDYgMjMuMjc2IEwgMTkuNzY2IDIyLjExNiBDIDIwLjIyMiAyMS43MDIgMjAuMDYgMjAuOTUgMTku''@;'; + put 'put ''NDc0IDIwLjc2MSBDIDE5LjE3NSAyMC42NjUgMTguODQ3IDIwLjc1MyAxOC42MzYgMjAuOTg2IEwgMTcuNDc2IDIyLjE0NiBMIDE2LjMwNiAyMC45NTYgQyAxNS44OTIgMjAuNDk5IDE1LjE0IDIwLjY2MiAxNC45NTIgMjEuMjQ4IEMgMTQuODU1IDIxLjU0NyAxNC45NDMgMjEuODc1IDE1LjE3''@;'; + put 'put ''NiAyMi4wODYgTCAxNi4zMzYgMjMuMjc2IEwgMTUuMTc2IDI0LjQwNiBDIDE0Ljg2NCAyNC43MTggMTQuODY0IDI1LjIyMyAxNS4xNzYgMjUuNTM2IFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIiBkPSJNIDIy''@;'; + put 'put ''LjkxMiAyMC4zNDMgQyAyMy4yMjQgMjAuNjU0IDIzLjczIDIwLjY1NCAyNC4wNDIgMjAuMzQzIEwgMjUuMjAyIDE5LjE4MyBMIDI2LjM2MiAyMC4zNDMgQyAyNi43NzUgMjAuNzk5IDI3LjUyOCAyMC42MzcgMjcuNzE2IDIwLjA1IEMgMjcuODEzIDE5Ljc1MSAyNy43MjUgMTkuNDI0IDI3LjQ5''@;'; + put 'put ''MiAxOS4yMTMgTCAyNi4zNDIgMTguMDgzIEwgMjcuNTAyIDE2LjkyMyBDIDI3Ljk1OCAxNi41MDkgMjcuNzk2IDE1Ljc1NyAyNy4yMSAxNS41NjggQyAyNi45MTEgMTUuNDcyIDI2LjU4MyAxNS41NiAyNi4zNzIgMTUuNzkzIEwgMjUuMjEyIDE2Ljk1MyBMIDI0LjA0MiAxNS43NjMgQyAyMy42''@;'; + put 'put ''MjggMTUuMzA2IDIyLjg3NiAxNS40NjkgMjIuNjg4IDE2LjA1NSBDIDIyLjU5MSAxNi4zNTQgMjIuNjc5IDE2LjY4MiAyMi45MTIgMTYuODkzIEwgMjQuMDcyIDE4LjA4MyBMIDIyLjkxMiAxOS4yMTMgQyAyMi42IDE5LjUyNSAyMi42IDIwLjAzIDIyLjkxMiAyMC4zNDMgWiIvPlxuICA8Y2ly''@;'; + put 'put ''Y2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgZD0i''@;'; + put 'put ''TSAzNCAxMi4zNCBMIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NiAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3IEMgMiA1Ljg5NiAyLjg5NiA1IDQgNSBMIDIyLjU3IDUgQyAyMS45NjkgOS4yMzMgMjUuMDUgMTMuMSAyOS4zMSAxMy40NiBMIDMwLjMyIDEz''@;'; + put 'put ''LjQ4IEMgMzEuNjI2IDEzLjQyOSAzMi44OTUgMTMuMDM2IDM0IDEyLjM0IFogTSA5LjEwMSAxNS44IEMgOS40MTMgMTYuMTExIDkuOTE5IDE2LjExMSAxMC4yMzEgMTUuOCBMIDExLjM5MSAxNC42NCBMIDEyLjU1MSAxNS44IEMgMTIuOTY0IDE2LjI1NiAxMy43MTcgMTYuMDk0IDEzLjkwNSAx''@;'; + put 'put ''NS41MDcgQyAxNC4wMDIgMTUuMjA4IDEzLjkxNCAxNC44ODEgMTMuNjgxIDE0LjY3IEwgMTIuNTMxIDEzLjU0IEwgMTMuNjkxIDEyLjM4IEMgMTQuMTQ3IDExLjk2NiAxMy45ODUgMTEuMjE0IDEzLjM5OSAxMS4wMjUgQyAxMy4xIDEwLjkyOSAxMi43NzIgMTEuMDE3IDEyLjU2MSAxMS4yNSBM''@;'; + put 'put ''IDExLjQwMSAxMi40MSBMIDEwLjIzMSAxMS4yMiBDIDkuODE3IDEwLjc2MyA5LjA2NSAxMC45MjYgOC44NzcgMTEuNTEyIEMgOC43OCAxMS44MTEgOC44NjggMTIuMTM5IDkuMTAxIDEyLjM1IEwgMTAuMjYxIDEzLjU0IEwgOS4xMDEgMTQuNjcgQyA4Ljc4OSAxNC45ODIgOC43ODkgMTUuNDg3''@;'; + put 'put ''IDkuMTAxIDE1LjggWiBNIDE1LjE3NiAyNS41MzYgQyAxNS40ODggMjUuODQ3IDE1Ljk5NCAyNS44NDcgMTYuMzA2IDI1LjUzNiBMIDE3LjQ2NiAyNC4zNzYgTCAxOC42MjYgMjUuNTM2IEMgMTkuMDM5IDI1Ljk5MiAxOS43OTIgMjUuODMgMTkuOTggMjUuMjQzIEMgMjAuMDc3IDI0Ljk0NCAx''@;'; + put 'put ''OS45ODkgMjQuNjE3IDE5Ljc1NiAyNC40MDYgTCAxOC42MDYgMjMuMjc2IEwgMTkuNzY2IDIyLjExNiBDIDIwLjIyMiAyMS43MDIgMjAuMDYgMjAuOTUgMTkuNDc0IDIwLjc2MSBDIDE5LjE3NSAyMC42NjUgMTguODQ3IDIwLjc1MyAxOC42MzYgMjAuOTg2IEwgMTcuNDc2IDIyLjE0NiBMIDE2''@;'; + put 'put ''LjMwNiAyMC45NTYgQyAxNS44OTIgMjAuNDk5IDE1LjE0IDIwLjY2MiAxNC45NTIgMjEuMjQ4IEMgMTQuODU1IDIxLjU0NyAxNC45NDMgMjEuODc1IDE1LjE3NiAyMi4wODYgTCAxNi4zMzYgMjMuMjc2IEwgMTUuMTc2IDI0LjQwNiBDIDE0Ljg2NCAyNC43MTggMTQuODY0IDI1LjIyMyAxNS4x''@;'; + put 'put ''NzYgMjUuNTM2IFogTSAyMi45MTIgMjAuMzQzIEMgMjMuMjI0IDIwLjY1NCAyMy43MyAyMC42NTQgMjQuMDQyIDIwLjM0MyBMIDI1LjIwMiAxOS4xODMgTCAyNi4zNjIgMjAuMzQzIEMgMjYuNzc1IDIwLjc5OSAyNy41MjggMjAuNjM3IDI3LjcxNiAyMC4wNSBDIDI3LjgxMyAxOS43NTEgMjcu''@;'; + put 'put ''NzI1IDE5LjQyNCAyNy40OTIgMTkuMjEzIEwgMjYuMzQyIDE4LjA4MyBMIDI3LjUwMiAxNi45MjMgQyAyNy45NTggMTYuNTA5IDI3Ljc5NiAxNS43NTcgMjcuMjEgMTUuNTY4IEMgMjYuOTExIDE1LjQ3MiAyNi41ODMgMTUuNTYgMjYuMzcyIDE1Ljc5MyBMIDI1LjIxMiAxNi45NTMgTCAyNC4w''@;'; + put 'put ''NDIgMTUuNzYzIEMgMjMuNjI4IDE1LjMwNiAyMi44NzYgMTUuNDY5IDIyLjY4OCAxNi4wNTUgQyAyMi41OTEgMTYuMzU0IDIyLjY3OSAxNi42ODIgMjIuOTEyIDE2Ljg5MyBMIDI0LjA3MiAxOC4wODMgTCAyMi45MTIgMTkuMjEzIEMgMjIuNiAxOS41MjUgMjIuNiAyMC4wMyAyMi45MTIgMjAu''@;'; + put 'put ''MzQzIFoiLz5cbiAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBh''@;'; + put 'put ''dGgtMS0tYWxlcnRlZCIgZD0iTSAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIgMzEgTCA0IDMxIEMgMi44OTUgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBDIDIgNS44OTUgMi44OTUgNSA0IDUgTCAyMS45NTggNSBMIDIwLjc4NiA3IEwgNCA3IEwgNCAyOSBMIDMyIDI5IEwgMzIgMTUu''@;'; + put 'put ''MzU3IEwgMzQgMTUuMzU3IFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIGQ9Ik0gOS4xMDEgMTUuOCBDIDkuNDEzIDE2LjExMSA5LjkxOSAxNi4xMTEgMTAuMjMxIDE1LjggTCAxMS4zOTEgMTQuNjQgTCAx''@;'; + put 'put ''Mi41NTEgMTUuOCBDIDEyLjk2NCAxNi4yNTYgMTMuNzE3IDE2LjA5NCAxMy45MDUgMTUuNTA3IEMgMTQuMDAyIDE1LjIwOCAxMy45MTQgMTQuODgxIDEzLjY4MSAxNC42NyBMIDEyLjUzMSAxMy41NCBMIDEzLjY5MSAxMi4zOCBDIDE0LjE0NyAxMS45NjYgMTMuOTg1IDExLjIxNCAxMy4zOTkg''@;'; + put 'put ''MTEuMDI1IEMgMTMuMSAxMC45MjkgMTIuNzcyIDExLjAxNyAxMi41NjEgMTEuMjUgTCAxMS40MDEgMTIuNDEgTCAxMC4yMzEgMTEuMjIgQyA5LjgxNyAxMC43NjMgOS4wNjUgMTAuOTI2IDguODc3IDExLjUxMiBDIDguNzggMTEuODExIDguODY4IDEyLjEzOSA5LjEwMSAxMi4zNSBMIDEwLjI2''@;'; + put 'put ''MSAxMy41NCBMIDkuMTAxIDE0LjY3IEMgOC43ODkgMTQuOTgyIDguNzg5IDE1LjQ4NyA5LjEwMSAxNS44IFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiIGQ9Ik0gMTUuMTc2IDI1LjUzNiBDIDE1LjQ4OCAy''@;'; + put 'put ''NS44NDcgMTUuOTk0IDI1Ljg0NyAxNi4zMDYgMjUuNTM2IEwgMTcuNDY2IDI0LjM3NiBMIDE4LjYyNiAyNS41MzYgQyAxOS4wMzkgMjUuOTkyIDE5Ljc5MiAyNS44MyAxOS45OCAyNS4yNDMgQyAyMC4wNzcgMjQuOTQ0IDE5Ljk4OSAyNC42MTcgMTkuNzU2IDI0LjQwNiBMIDE4LjYwNiAyMy4y''@;'; + put 'put ''NzYgTCAxOS43NjYgMjIuMTE2IEMgMjAuMjIyIDIxLjcwMiAyMC4wNiAyMC45NSAxOS40NzQgMjAuNzYxIEMgMTkuMTc1IDIwLjY2NSAxOC44NDcgMjAuNzUzIDE4LjYzNiAyMC45ODYgTCAxNy40NzYgMjIuMTQ2IEwgMTYuMzA2IDIwLjk1NiBDIDE1Ljg5MiAyMC40OTkgMTUuMTQgMjAuNjYy''@;'; + put 'put ''IDE0Ljk1MiAyMS4yNDggQyAxNC44NTUgMjEuNTQ3IDE0Ljk0MyAyMS44NzUgMTUuMTc2IDIyLjA4NiBMIDE2LjMzNiAyMy4yNzYgTCAxNS4xNzYgMjQuNDA2IEMgMTQuODY0IDI0LjcxOCAxNC44NjQgMjUuMjIzIDE1LjE3NiAyNS41MzYgWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0''@;'; + put 'put ''bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRlZCIgZD0iTSAyMi45MTIgMjAuMzQzIEMgMjMuMjI0IDIwLjY1NCAyMy43MyAyMC42NTQgMjQuMDQyIDIwLjM0MyBMIDI1LjIwMiAxOS4xODMgTCAyNi4zNjIgMjAuMzQzIEMgMjYuNzc1IDIwLjc5OSAyNy41MjggMjAu''@;'; + put 'put ''NjM3IDI3LjcxNiAyMC4wNSBDIDI3LjgxMyAxOS43NTEgMjcuNzI1IDE5LjQyNCAyNy40OTIgMTkuMjEzIEwgMjYuMzQyIDE4LjA4MyBMIDI3LjUwMiAxNi45MjMgQyAyNy45NTggMTYuNTA5IDI3Ljc5NiAxNS43NTcgMjcuMjEgMTUuNTY4IEMgMjYuOTExIDE1LjQ3MiAyNi41ODMgMTUuNTYg''@;'; + put 'put ''MjYuMzcyIDE1Ljc5MyBMIDI1LjIxMiAxNi45NTMgTCAyNC4wNDIgMTUuNzYzIEMgMjMuNjI4IDE1LjMwNiAyMi44NzYgMTUuNDY5IDIyLjY4OCAxNi4wNTUgQyAyMi41OTEgMTYuMzU0IDIyLjY3OSAxNi42ODIgMjIuOTEyIDE2Ljg5MyBMIDI0LjA3MiAxOC4wODMgTCAyMi45MTIgMTkuMjEz''@;'; + put 'put ''IEMgMjIuNiAxOS41MjUgMjIuNiAyMC4wMyAyMi45MTIgMjAuMzQzIFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0gMjYuODU0IDEuMTQ0IEwgMjEuMTM0IDExLjAwNCBDIDIw''@;'; + put 'put ''LjU3OSAxMS44MTggMjEuMTE0IDEyLjkyOCAyMi4wOTcgMTMuMDAxIEMgMjIuMTQyIDEzLjAwNSAyMi4xODggMTMuMDA2IDIyLjIzNCAxMy4wMDQgTCAzMy42ODQgMTMuMDA0IEMgMzQuNjY5IDEzLjAzNiAzNS4zMTkgMTEuOTkxIDM0Ljg1NSAxMS4xMjIgQyAzNC44MzQgMTEuMDgxIDM0Ljgx''@;'; + put 'put ''IDExLjA0MiAzNC43ODQgMTEuMDA0IEwgMjkuMDY0IDEuMTQ0IEMgMjguNTcgMC4yOTkgMjcuMzQ4IDAuMjk5IDI2Ljg1NCAxLjE0NCBaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0gMzQgMjkgQyAzNCAz''@;'; + put 'put ''MC4xMDUgMzMuMTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIuODk2IDMxIDIgMzAuMTA1IDIgMjkgTCAyIDcgQyAyIDUuODk2IDIuODk2IDUgNCA1IEwgMjEuOTU4IDUgTCAxNy42MjUgMTIuMzk1IEMgMTYuNzk1IDEzLjYwMSAxNy41OTQgMTUuMjQ1IDE5LjA2NCAxNS4zNTEgQyAxOS4xMzQgMTUu''@;'; + put 'put ''MzU3IDE5LjIwMSAxNS4zNTkgMTkuMjcgMTUuMzU3IEwgMzQgMTUuMzU3IFogTSA5LjEwMSAxNS44IEMgOS40MTMgMTYuMTExIDkuOTE5IDE2LjExMSAxMC4yMzEgMTUuOCBMIDExLjM5MSAxNC42NCBMIDEyLjU1MSAxNS44IEMgMTIuOTY0IDE2LjI1NiAxMy43MTcgMTYuMDk0IDEzLjkwNSAx''@;'; + put 'put ''NS41MDcgQyAxNC4wMDIgMTUuMjA4IDEzLjkxNCAxNC44ODEgMTMuNjgxIDE0LjY3IEwgMTIuNTMxIDEzLjU0IEwgMTMuNjkxIDEyLjM4IEMgMTQuMTQ3IDExLjk2NiAxMy45ODUgMTEuMjE0IDEzLjM5OSAxMS4wMjUgQyAxMy4xIDEwLjkyOSAxMi43NzIgMTEuMDE3IDEyLjU2MSAxMS4yNSBM''@;'; + put 'put ''IDExLjQwMSAxMi40MSBMIDEwLjIzMSAxMS4yMiBDIDkuODE3IDEwLjc2MyA5LjA2NSAxMC45MjYgOC44NzcgMTEuNTEyIEMgOC43OCAxMS44MTEgOC44NjggMTIuMTM5IDkuMTAxIDEyLjM1IEwgMTAuMjYxIDEzLjU0IEwgOS4xMDEgMTQuNjcgQyA4Ljc4OSAxNC45ODIgOC43ODkgMTUuNDg3''@;'; + put 'put ''IDkuMTAxIDE1LjggWiBNIDE1LjE3NiAyNS41MzYgQyAxNS40ODggMjUuODQ3IDE1Ljk5NCAyNS44NDcgMTYuMzA2IDI1LjUzNiBMIDE3LjQ2NiAyNC4zNzYgTCAxOC42MjYgMjUuNTM2IEMgMTkuMDM5IDI1Ljk5MiAxOS43OTIgMjUuODMgMTkuOTggMjUuMjQzIEMgMjAuMDc3IDI0Ljk0NCAx''@;'; + put 'put ''OS45ODkgMjQuNjE3IDE5Ljc1NiAyNC40MDYgTCAxOC42MDYgMjMuMjc2IEwgMTkuNzY2IDIyLjExNiBDIDIwLjIyMiAyMS43MDIgMjAuMDYgMjAuOTUgMTkuNDc0IDIwLjc2MSBDIDE5LjE3NSAyMC42NjUgMTguODQ3IDIwLjc1MyAxOC42MzYgMjAuOTg2IEwgMTcuNDc2IDIyLjE0NiBMIDE2''@;'; + put 'put ''LjMwNiAyMC45NTYgQyAxNS44OTIgMjAuNDk5IDE1LjE0IDIwLjY2MiAxNC45NTIgMjEuMjQ4IEMgMTQuODU1IDIxLjU0NyAxNC45NDMgMjEuODc1IDE1LjE3NiAyMi4wODYgTCAxNi4zMzYgMjMuMjc2IEwgMTUuMTc2IDI0LjQwNiBDIDE0Ljg2NCAyNC43MTggMTQuODY0IDI1LjIyMyAxNS4x''@;'; + put 'put ''NzYgMjUuNTM2IFogTSAyMi45MTIgMjAuMzQzIEMgMjMuMjI0IDIwLjY1NCAyMy43MyAyMC42NTQgMjQuMDQyIDIwLjM0MyBMIDI1LjIwMiAxOS4xODMgTCAyNi4zNjIgMjAuMzQzIEMgMjYuNzc1IDIwLjc5OSAyNy41MjggMjAuNjM3IDI3LjcxNiAyMC4wNSBDIDI3LjgxMyAxOS43NTEgMjcu''@;'; + put 'put ''NzI1IDE5LjQyNCAyNy40OTIgMTkuMjEzIEwgMjYuMzQyIDE4LjA4MyBMIDI3LjUwMiAxNi45MjMgQyAyNy45NTggMTYuNTA5IDI3Ljc5NiAxNS43NTcgMjcuMjEgMTUuNTY4IEMgMjYuOTExIDE1LjQ3MiAyNi41ODMgMTUuNTYgMjYuMzcyIDE1Ljc5MyBMIDI1LjIxMiAxNi45NTMgTCAyNC4w''@;'; + put 'put ''NDIgMTUuNzYzIEMgMjMuNjI4IDE1LjMwNiAyMi44NzYgMTUuNDY5IDIyLjY4OCAxNi4wNTUgQyAyMi41OTEgMTYuMzU0IDIyLjY3OSAxNi42ODIgMjIuOTEyIDE2Ljg5MyBMIDI0LjA3MiAxOC4wODMgTCAyMi45MTIgMTkuMjEzIEMgMjIuNiAxOS41MjUgMjIuNiAyMC4wMyAyMi45MTIgMjAu''@;'; + put 'put ''MzQzIFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTSAyNi44NTQgMS4xNDQgTCAyMS4xMzQgMTEuMDA0IEMgMjAuNTc5IDExLjgxOCAyMS4xMTQgMTIuOTI4IDIyLjA5NyAxMy4wMDEg''@;'; + put 'put ''QyAyMi4xNDIgMTMuMDA1IDIyLjE4OCAxMy4wMDYgMjIuMjM0IDEzLjAwNCBMIDMzLjY4NCAxMy4wMDQgQyAzNC42NjkgMTMuMDM2IDM1LjMxOSAxMS45OTEgMzQuODU1IDExLjEyMiBDIDM0LjgzNCAxMS4wODEgMzQuODEgMTEuMDQyIDM0Ljc4NCAxMS4wMDQgTCAyOS4wNjQgMS4xNDQgQyAy''@;'; + put 'put ''OC41NyAwLjI5OSAyNy4zNDggMC4yOTkgMjYuODU0IDEuMTQ0IFoiLz5cbiAgPHJlY3Qgd2lkdGg9IjM2IiBoZWlnaHQ9IjM2IiBmaWxsLW9wYWNpdHk9IjAiLz4nKSxMLkNsclNoYXBlVGlja0NoYXJ0PSgwLEUuY2xySWNvblNWRykoJ1xuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBj''@;'; + put 'put ''bHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTSAzMiA1IEwgNCA1IEMgMi44OTUgNSAyIDUuODk1IDIgNyBMIDIgMjkgQyAyIDMwLjEwNSAyLjg5NSAzMSA0IDMxIEwgMzIgMzEgQyAzMy4xMDUgMzEgMzQgMzAuMTA1IDM0IDI5IEwgMzQgNyBDIDM0IDUuODk1IDMzLjEwNSA1IDMyIDUgWiBNIDQg''@;'; + put 'put ''MjkgTCA0IDcgTCAzMiA3IEwgMzIgMjkgWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTSA2IDI1IEwgOCAyNSBMIDggMjIgTCAxMCAyMiBMIDEwIDI1IEwgMTMgMjUgTCAxMyAyMiBMIDE1IDIyIEwgMTUgMjUgTCAxOCAyNSBMIDE4''@;'; + put 'put ''IDIyIEwgMjAgMjIgTCAyMCAyNSBMIDIzIDI1IEwgMjMgMjIgTCAyNSAyMiBMIDI1IDI1IEwgMjcuNzIzIDI1IEMgMjguMDIzIDI1LjAyIDI4LjI5MyAyNS4xOCAyOC40NjMgMjUuNDMgQyAyOC45MDMgMjYuMDYgMjguNDgzIDI2LjkzIDI3LjcyMyAyNi45OSBMIDYgMjYuOTkxIFoiLz5cbiAg''@;'; + put 'put ''PHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTSAzNCA3IEwgMzQgMjkgQyAzNCAzMC4xMDUgMzMuMTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIuODk2IDMxIDIgMzAuMTA1IDIgMjkgTCAyIDcgQyAyIDUuODk2IDIuODk2IDUgNCA1IEwgMzIgNSBDIDMzLjEw''@;'; + put 'put ''NSA1IDM0IDUuODk2IDM0IDcgWiBNIDYgMjYuOTkxIEwgMjcuNzIzIDI2Ljk5IEMgMjguNDgzIDI2LjkzIDI4LjkwMyAyNi4wNiAyOC40NjMgMjUuNDMgQyAyOC4yOTMgMjUuMTggMjguMDIzIDI1LjAyIDI3LjcyMyAyNSBMIDI1IDI1IEwgMjUgMjIgTCAyMyAyMiBMIDIzIDI1IEwgMjAgMjUg''@;'; + put 'put ''TCAyMCAyMiBMIDE4IDIyIEwgMTggMjUgTCAxNSAyNSBMIDE1IDIyIEwgMTMgMjIgTCAxMyAyNSBMIDEwIDI1IEwgMTAgMjIgTCA4IDIyIEwgOCAyNSBMIDYgMjUgWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQi''@;'; + put 'put ''IGQ9Ik0gMzIgMTMuMjIgTCAzMiAyOSBMIDQgMjkgTCA0IDcgTCAyMi41NyA3IEMgMjIuNTI0IDYuNjY4IDIyLjUwMSA2LjMzNCAyMi41IDYgQyAyMi41MDEgNS42NjUgMjIuNTI0IDUuMzMxIDIyLjU3IDUgTCA0IDUgQyAyLjg5NSA1IDIgNS44OTUgMiA3IEwgMiAyOSBDIDIgMzAuMTA0IDIu''@;'; + put 'put ''ODk1IDMxIDQgMzEgTCAzMiAzMSBDIDMzLjEwNCAzMSAzNCAzMC4xMDQgMzQgMjkgTCAzNCAxMi4zNCBDIDMzLjM4IDEyLjczIDMyLjcwNiAxMy4wMjYgMzIgMTMuMjIgWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRn''@;'; + put 'put ''ZWQiIGQ9Ik0gNiAyNSBMIDggMjUgTCA4IDIyIEwgMTAgMjIgTCAxMCAyNSBMIDEzIDI1IEwgMTMgMjIgTCAxNSAyMiBMIDE1IDI1IEwgMTggMjUgTCAxOCAyMiBMIDIwIDIyIEwgMjAgMjUgTCAyMyAyNSBMIDIzIDIyIEwgMjUgMjIgTCAyNSAyNSBMIDI3LjcyMyAyNSBDIDI4LjAyMyAyNS4w''@;'; + put 'put ''MiAyOC4yOTMgMjUuMTggMjguNDYzIDI1LjQzIEMgMjguOTAzIDI2LjA2IDI4LjQ4MyAyNi45MyAyNy43MjMgMjYuOTkgTCA2IDI2Ljk5MSBaIi8+XG4gIDxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdl''@;'; + put 'put ''IiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiBkPSJNIDM0IDEyLjM0IEwgMzQgMjkgQyAzNCAzMC4xMDUgMzMuMTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIuODk2IDMxIDIgMzAuMTA1''@;'; + put 'put ''IDIgMjkgTCAyIDcgQyAyIDUuODk2IDIuODk2IDUgNCA1IEwgMjIuNTcgNSBDIDIxLjk2OSA5LjIzMyAyNS4wNSAxMy4xIDI5LjMxIDEzLjQ2IEwgMzAuMzIgMTMuNDggQyAzMS42MjYgMTMuNDI5IDMyLjg5NSAxMy4wMzYgMzQgMTIuMzQgWiBNIDYgMjYuOTkxIEwgMjcuNzIzIDI2Ljk5IEMg''@;'; + put 'put ''MjguNDgzIDI2LjkzIDI4LjkwMyAyNi4wNiAyOC40NjMgMjUuNDMgQyAyOC4yOTMgMjUuMTggMjguMDIzIDI1LjAyIDI3LjcyMyAyNSBMIDI1IDI1IEwgMjUgMjIgTCAyMyAyMiBMIDIzIDI1IEwgMjAgMjUgTCAyMCAyMiBMIDE4IDIyIEwgMTggMjUgTCAxNSAyNSBMIDE1IDIyIEwgMTMgMjIg''@;'; + put 'put ''TCAxMyAyNSBMIDEwIDI1IEwgMTAgMjIgTCA4IDIyIEwgOCAyNSBMIDYgMjUgWiIvPlxuICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+XG4gIDxwYXRoIGNsYXNz''@;'; + put 'put ''PSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiBkPSJNIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NSAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3IEMgMiA1Ljg5NSAyLjg5NSA1IDQgNSBMIDIxLjk1OCA1''@;'; + put 'put ''IEwgMjAuNzg2IDcgTCA0IDcgTCA0IDI5IEwgMzIgMjkgTCAzMiAxNS4zNTcgTCAzNCAxNS4zNTcgWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIgZD0iTSA2IDI1IEwgOCAyNSBMIDggMjIgTCAxMCAyMiBM''@;'; + put 'put ''IDEwIDI1IEwgMTMgMjUgTCAxMyAyMiBMIDE1IDIyIEwgMTUgMjUgTCAxOCAyNSBMIDE4IDIyIEwgMjAgMjIgTCAyMCAyNSBMIDIzIDI1IEwgMjMgMjIgTCAyNSAyMiBMIDI1IDI1IEwgMjcuNzIzIDI1IEMgMjguMDIzIDI1LjAyIDI4LjI5MyAyNS4xOCAyOC40NjMgMjUuNDMgQyAyOC45MDMg''@;'; + put 'put ''MjYuMDYgMjguNDgzIDI2LjkzIDI3LjcyMyAyNi45OSBMIDYgMjYuOTkxIFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0gMjYuODU0IDEuMTQ0IEwgMjEuMTM0IDExLjAwNCBD''@;'; + put 'put ''IDIwLjU3OSAxMS44MTggMjEuMTE0IDEyLjkyOCAyMi4wOTcgMTMuMDAxIEMgMjIuMTQyIDEzLjAwNSAyMi4xODggMTMuMDA2IDIyLjIzNCAxMy4wMDQgTCAzMy42ODQgMTMuMDA0IEMgMzQuNjY5IDEzLjAzNiAzNS4zMTkgMTEuOTkxIDM0Ljg1NSAxMS4xMjIgQyAzNC44MzQgMTEuMDgxIDM0''@;'; + put 'put ''LjgxIDExLjA0MiAzNC43ODQgMTEuMDA0IEwgMjkuMDY0IDEuMTQ0IEMgMjguNTcgMC4yOTkgMjcuMzQ4IDAuMjk5IDI2Ljg1NCAxLjE0NCBaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0gMzQgMjkgQyAz''@;'; + put 'put ''NCAzMC4xMDUgMzMuMTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIuODk2IDMxIDIgMzAuMTA1IDIgMjkgTCAyIDcgQyAyIDUuODk2IDIuODk2IDUgNCA1IEwgMjEuOTU4IDUgTCAxNy42MjUgMTIuMzk1IEMgMTYuNzk1IDEzLjYwMSAxNy41OTQgMTUuMjQ1IDE5LjA2NCAxNS4zNTEgQyAxOS4xMzQg''@;'; + put 'put ''MTUuMzU3IDE5LjIwMSAxNS4zNTkgMTkuMjcgMTUuMzU3IEwgMzQgMTUuMzU3IFogTSA2IDI2Ljk5MSBMIDI3LjcyMyAyNi45OSBDIDI4LjQ4MyAyNi45MyAyOC45MDMgMjYuMDYgMjguNDYzIDI1LjQzIEMgMjguMjkzIDI1LjE4IDI4LjAyMyAyNS4wMiAyNy43MjMgMjUgTCAyNSAyNSBMIDI1''@;'; + put 'put ''IDIyIEwgMjMgMjIgTCAyMyAyNSBMIDIwIDI1IEwgMjAgMjIgTCAxOCAyMiBMIDE4IDI1IEwgMTUgMjUgTCAxNSAyMiBMIDEzIDIyIEwgMTMgMjUgTCAxMCAyNSBMIDEwIDIyIEwgOCAyMiBMIDggMjUgTCA2IDI1IFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNs''@;'; + put 'put ''ci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTSAyNi44NTQgMS4xNDQgTCAyMS4xMzQgMTEuMDA0IEMgMjAuNTc5IDExLjgxOCAyMS4xMTQgMTIuOTI4IDIyLjA5NyAxMy4wMDEgQyAyMi4xNDIgMTMuMDA1IDIyLjE4OCAxMy4wMDYgMjIuMjM0IDEzLjAwNCBMIDMz''@;'; + put 'put ''LjY4NCAxMy4wMDQgQyAzNC42NjkgMTMuMDM2IDM1LjMxOSAxMS45OTEgMzQuODU1IDExLjEyMiBDIDM0LjgzNCAxMS4wODEgMzQuODEgMTEuMDQyIDM0Ljc4NCAxMS4wMDQgTCAyOS4wNjQgMS4xNDQgQyAyOC41NyAwLjI5OSAyNy4zNDggMC4yOTkgMjYuODU0IDEuMTQ0IFoiLz4nKSxMLkNs''@;'; + put 'put ''clNoYXBlQmVsbEN1cnZlPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMywyOUgzQTEsMSwwLDEsMSwzLDI3SDMzQTEsMSwwLDEsMSwzMywyOVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0zMywyNWgtLjYyYTguMTEsOC4xMSww''@;'; + put 'put ''LDAsMS04LTYuNjdDMjMuNjIsMTQuNDQsMjEuODksNy45NCwxOCw3Ljk0cy01LjY5LDYuNTEtNi4zOCwxMC4zOWE4LjExLDguMTEsMCwwLDEtOCw2LjY1SDNhMSwxLDAsMSwxLDAtMmguNkE2LjExLDYuMTEsMCwwLDAsOS42LDE4YzEuNDEtNy44OCw0LjMtMTIsOC4zNS0xMnM2LjkzLDQuMTYs''@;'; + put 'put ''OC4zMywxMmE2LjExLDYuMTEsMCwwLDAsNiw1SDMzYTEsMSwwLDAsMSwwLDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz4nKSxMLkNoYXJ0U2hhcGVzPXsiYXhpcy1jaGFydCI6TC5DbHJTaGFwZUF4aXNDaGFydCwiYmFyLWNoYXJ0IjpMLkNsclNoYXBl''@;'; + put 'put ''QmFyQ2hhcnQsImJ1YmJsZS1jaGFydCI6TC5DbHJTaGFwZUJ1YmJsZUNoYXJ0LCJjbG91ZC1jaGFydCI6TC5DbHJTaGFwZUNsb3VkQ2hhcnQsImN1cnZlLWNoYXJ0IjpMLkNsclNoYXBlQ3VydmVDaGFydCwiZ3JpZC1jaGFydCI6TC5DbHJTaGFwZUdyaWRDaGFydCwibGluZS1jaGFydCI6TC5D''@;'; + put 'put ''bHJTaGFwZUxpbmVDaGFydCwicGllLWNoYXJ0IjpMLkNsclNoYXBlUGllQ2hhcnQsInRpY2stY2hhcnQiOkwuQ2xyU2hhcGVUaWNrQ2hhcnQsInNjYXR0ZXItcGxvdCI6TC5DbHJTaGFwZVNjYXR0ZXJQbG90LCJib3gtcGxvdCI6TC5DbHJTaGFwZUJveFBsb3QsImhlYXQtbWFwIjpMLkNsclNo''@;'; + put 'put ''YXBlSGVhdE1hcCwiYmVsbC1jdXJ2ZSI6TC5DbHJTaGFwZUJlbGxDdXJ2ZX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KEwuQ2hhcnRTaGFwZXMsImFuYWx5dGljcyIsKDAsQi5kZXNjcmlwdG9yQ29uZmlnKShMLkNoYXJ0U2hhcGVzWyJsaW5lLWNoYXJ0Il0pKSwidW5kZWZpbmVkIiE9dHlwZW9m''@;'; + put 'put ''IHdpbmRvdyYmd2luZG93Lmhhc093blByb3BlcnR5KCJDbGFyaXR5SWNvbnMiKSYmd2luZG93LkNsYXJpdHlJY29ucy5hZGQoTC5DaGFydFNoYXBlcyl9LCIuL3Byb2plY3RzL2ljb25zL3NyYy9zaGFwZXMvY29tbWVyY2Utc2hhcGVzLnRzIjpmdW5jdGlvbihKZSxMLG1lKXsidXNlIHN0cmlj''@;'; + put 'put ''dCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KEwsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLEwuQ29tbWVyY2VTaGFwZXM9TC5DbHJTaGFwZUZhY3Rvcnk9TC5DbHJTaGFwZUVtcGxveWVlPUwuQ2xyU2hhcGVFbXBsb3llZUdyb3VwPUwuQ2xyU2hhcGVSdWJsZT1MLkNsclNoYXBlUGVzbz1MLkNs''@;'; + put 'put ''clNoYXBlQ29pbkJhZz1MLkNsclNoYXBlQml0Y29pbj1MLkNsclNoYXBlWWVuPUwuQ2xyU2hhcGVXb249TC5DbHJTaGFwZVJ1cGVlPUwuQ2xyU2hhcGVQb3VuZD1MLkNsclNoYXBlRUNoZWNrPUwuQ2xyU2hhcGVEb2xsYXJCaWxsPUwuQ2xyU2hhcGVCYW5rPUwuQ2xyU2hhcGVDcmVkaXRDYXJk''@;'; + put 'put ''PUwuQ2xyU2hhcGVEb2xsYXI9TC5DbHJTaGFwZUV1cm89TC5DbHJTaGFwZVN0b3JlPUwuQ2xyU2hhcGVXYWxsZXQ9TC5DbHJTaGFwZVNob3BwaW5nQ2FydD1MLkNsclNoYXBlUGlnZ3lCYW5rPUwuQ2xyU2hhcGVTaG9wcGluZ0JhZz1MLkNsclNoYXBlQ2FsY3VsYXRvcj12b2lkIDA7dmFyIEI9''@;'; + put 'put ''bWUoIi4vcHJvamVjdHMvaWNvbnMvc3JjL3V0aWxzL2Rlc2NyaXB0b3ItY29uZmlnLnRzIiksRT1tZSgiLi9wcm9qZWN0cy9pY29ucy9zcmMvdXRpbHMvc3ZnLXRhZy1nZW5lcmF0b3IudHMiKTtMLkNsclNoYXBlQ2FsY3VsYXRvcj0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xy''@;'; + put 'put ''LWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTI4LDJIOEEyLDIsMCwwLDAsNiw0VjMyYTIsMiwwLDAsMCwyLDJIMjhhMiwyLDAsMCwwLDItMlY0QTIsMiwwLDAsMCwyOCwyWk04LDMyVjRIMjhWMzJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGlu''@;'; + put 'put ''ZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTEyLDhIMjUuNjdWNkgxMWExLDEsMCwwLDAtMSwxdjQuNjdoMloiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBwb2ludHM9IjEyIDE2IDEwIDE2IDEwIDE4IDE0IDE4''@;'; + put 'put ''IDE0IDE0IDEyIDE0IDEyIDE2Ii8+XG4gICAgICAgICAgICA8cG9seWdvbiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgcG9pbnRzPSIyNCAxNiAyMiAxNiAyMiAxOCAyNiAxOCAyNiAxNCAyNCAxNCAyNCAxNiIvPlxuICAgICAgICAgICAgPHBvbHlnb24gY2xh''@;'; + put 'put ''c3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIHBvaW50cz0iMTggMTYgMTYgMTYgMTYgMTggMjAgMTggMjAgMTQgMTggMTQgMTggMTYiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02IiBwb2ludHM9''@;'; + put 'put ''IjEyIDIyIDEwIDIyIDEwIDI0IDE0IDI0IDE0IDIwIDEyIDIwIDEyIDIyIi8+XG4gICAgICAgICAgICA8cG9seWdvbiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNyIgcG9pbnRzPSIyNCAyMiAyMiAyMiAyMiAyNCAyNiAyNCAyNiAyMCAyNCAyMCAyNCAyMiIvPlxu''@;'; + put 'put ''ICAgICAgICAgICAgPHBvbHlnb24gY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTgiIHBvaW50cz0iMTggMjIgMTYgMjIgMTYgMjQgMjAgMjQgMjAgMjAgMTggMjAgMTggMjIiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1p''@;'; + put 'put ''LW91dGxpbmUtcGF0aC05IiBwb2ludHM9IjEyIDI4IDEwIDI4IDEwIDMwIDE0IDMwIDE0IDI2IDEyIDI2IDEyIDI4Ii8+XG4gICAgICAgICAgICA8cG9seWdvbiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMTAiIHBvaW50cz0iMjQgMjggMjIgMjggMjIgMzAgMjYg''@;'; + put 'put ''MzAgMjYgMjYgMjQgMjYgMjQgMjgiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xMSIgcG9pbnRzPSIxOCAyOCAxNiAyOCAxNiAzMCAyMCAzMCAyMCAyNiAxOCAyNiAxOCAyOCIvPlxuICAgICAgICAgICAgPHBhdGggY2xh''@;'; + put 'put ''c3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTI4LDJIOEEyLDIsMCwwLDAsNiw0VjMyYTIsMiwwLDAsMCwyLDJIMjhhMiwyLDAsMCwwLDItMlY0QTIsMiwwLDAsMCwyOCwyWk0xMiwyOEgxMFYyNmgyWm0wLTZIMTBWMjBoMlptMC02SDEwVjE0aDJabTcsMTJIMTdWMjZo''@;'; + put 'put ''MlptMC02SDE3VjIwaDJabTAtNkgxN1YxNGgyWm03LDEySDI0VjI2aDJabTAtNkgyNFYyMGgyWm0wLTZIMjRWMTRoMlptMC03SDEwVjVIMjZaIi8+JyksTC5DbHJTaGFwZVNob3BwaW5nQmFnPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxp''@;'; + put 'put ''bmUtcGF0aC0xIiBkPSJNMjUsMTJWOS4wNWE3LDcsMCwxLDAtMTQsMHY3YTEsMSwwLDAsMCwyLDBWMTRoOFYxMkgxM1Y5LjA1YTUsNSwwLDEsMSwxMCwwVjE2YTEsMSwwLDEsMCwyLDBWMTRoNVYzMkg2VjE0SDlWMTJINFYzMi4wOUExLjkxLDEuOTEsMCwwLDAsNS45MSwzNEgzMC4wOUExLjkx''@;'; + put 'put ''LDEuOTEsMCwwLDAsMzIsMzIuMDlWMTJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMTMsOS4yMmE1LDUsMCwxLDEsMTAsMFYxMmgyVjkuMjJhNyw3LDAsMSwwLTE0LDBWMTJoMloiLz5cbiAgICAgICAgICAgIDxwYXRo''@;'; + put 'put ''IGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGQ9Ik0yNSwxMnYzLjFhMSwxLDAsMSwxLTIsMFYxMkgxM3YzLjFhMSwxLDAsMCwxLTIsMFYxMkg0VjMyYTIsMiwwLDAsMCwyLDJIMzBhMiwyLDAsMCwwLDItMlYxMloiLz4nKSxMLkNsclNoYXBlUGlnZ3lCYW5rPSgwLEUu''@;'; + put 'put ''Y2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMTkuNzIsMTAuNDdhMTEuNjUsMTEuNjUsMCwwLDAtNi4zMS41MkEuOC44LDAsMSwwLDE0LDEyLjQ4LDEwLjExLDEwLjExLDAsMCwxLDE5LjQ0LDEyYS44LjgsMCwxLDAsLjI4''@;'; + put 'put ''LTEuNTdaIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBjeD0iMjUuMzgiIGN5PSIxNi43MSIgcj0iMS4zNiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRo''@;'; + put 'put ''LTMiIGQ9Ik0zNS41MSwxOC42M2ExLDEsMCwwLDAtLjg0LS40NCwzLjQyLDMuNDIsMCwwLDEtMi4wOS0xLjEyLDE3LjM1LDE3LjM1LDAsMCwxLTIuNjMtMy43OGwyLjg4LTQuNUExLjg5LDEuODksMCwwLDAsMzMsN2ExLjc3LDEuNzcsMCwwLDAtMS4zMy0xLDEwLjEyLDEwLjEyLDAsMCwwLTUu''@;'; + put 'put ''MzkuNzUsMTIuNzIsMTIuNzIsMCwwLDAtMi43MiwxLjYzLDE2Ljk0LDE2Ljk0LDAsMCwwLTUuMTYtMS4zOUMxMS4zMSw2LjMsNC44MywxMC45LDQsMTdINGEyLjU2LDIuNTYsMCwwLDEtMS4zOC0xLjUzLDEuODEsMS44MSwwLDAsMSwuMTQtMS40LDEuMTksMS4xOSwwLDAsMSwuNDMtLjQzLDEu''@;'; + put 'put ''MDgsMS4wOCwwLDAsMC0xLjEyLTEuODVBMy4zMSwzLjMxLDAsMCwwLC45MSwxM2E0LDQsMCwwLDAtLjMzLDMuMDhBNC43Niw0Ljc2LDAsMCwwLDMsMTguOTVsLjkyLjQ2YTE3LjU4LDE3LjU4LDAsMCwwLDEuODIsN2wuMTcuMzhBMjMsMjMsMCwwLDAsOS4yLDMxLjg4YTEsMSwwLDAsMCwuNzUu''@;'; + put 'put ''MzRoNC41MmExLDEsMCwwLDAsLjkyLTEuMzhMMTUsMjkuOTRsMS4xOC4xM2EyMC4zMywyMC4zMywwLDAsMCw0LDBjLjM3LjYuNzcsMS4yLDEuMjEsMS43OWExLDEsMCwwLDAsLjguNDFoNC4zNGExLDEsMCwwLDAsLjkyLTEuMzljLS4xNy0uNC0uMzQtLjgzLS40Ny0xLjItLjE4LS41My0uMzIt''@;'; + put 'put ''MS0uNDMtMS40NUExMy4xOCwxMy4xOCwwLDAsMCwyOS41NiwyNmExMi41LDEyLjUsMCwwLDAsMywwLDEsMSwwLDAsMCwuNzgtLjYybDIuMjYtNS44MUExLDEsMCwwLDAsMzUuNTEsMTguNjNabS0zLjc4LDUuNDRhMTEuMzcsMTEuMzcsMCwwLDEtMi4zNS0uMTFoMGE4LjIsOC4yLDAsMCwxLTIu''@;'; + put 'put ''NTMtLjg3LDEsMSwwLDAsMC0uOTMsMS43NywxMS43MiwxMS43MiwwLDAsMCwxLjI5LjU4LDgsOCwwLDAsMS0xLjgsMS4xNmwtMS4wNi40OHMuNDksMi4xOS44MiwzLjE2SDIyLjc5Yy0uMjQtLjM0LTEuNDUtMi4zNi0xLjQ1LTIuMzZsLS42Ny4wOWExOC41MywxOC41MywwLDAsMS00LjI1LjEy''@;'; + put 'put ''Yy0uNjYtLjA2LTEuNzYtLjItMi42Mi0uMzVsLTEuNTUtLjI3cy42MywyLjQzLjc1LDIuNzR2MEgxMC40MkEyMC41NywyMC41NywwLDAsMSw3Ljc2LDI2bC0uMTgtLjM5QTE0LjYyLDE0LjYyLDAsMCwxLDYsMTcuNDhjLjU0LTUuMTksNi4xMi05LjExLDEyLjE5LTguNTRhMTUuNDcsMTUuNDcs''@;'; + put 'put ''MCwwLDEsNS4wOCwxLjQ4bC42Mi4yOS41LS40N0ExMC4yOSwxMC4yOSwwLDAsMSwyNyw4LjU0YTguMjUsOC4yNSwwLDAsMSw0LS42NWwtMy4zOCw1LjI5LjI1LjVoMGEyMS4xNiwyMS4xNiwwLDAsMCwzLjMxLDQuODQsNi40OSw2LjQ5LDAsMCwwLDIuMTQsMS4zOVoiLz5cbiAgICAgICAgICAg''@;'; + put 'put ''IDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zNSwxOC44N0E1LjgzLDUuODMsMCwwLDEsMzMsMTcuNjFhMjEuNjMsMjEuNjMsMCwwLDEtMy4yOS00Ljg0bDMuMzktNS4yOWEuOS45LDAsMCwwLS41NC0xLjM4LDkuNjcsOS42NywwLDAsMC01LjEzLjcy''@;'; + put 'put ''LDEyLDEyLDAsMCwwLTMuMTMsMkExNy4zNywxNy4zNywwLDAsMCwxOC42LDcuMTVDMTEuOCw2LjUyLDUuMjcsMTAuOSw0LjU0LDE3bC0uMTQtLjA3QTIuNzYsMi43NiwwLDAsMSwyLjksMTUuMjlhMiwyLDAsMCwxLC4xNS0xLjU1LDEuMzIsMS4zMiwwLDAsMSwuNDctLjQ4LDEuMDgsMS4wOCww''@;'; + put 'put ''LDEsMC0xLjEyLTEuODUsMy40NSwzLjQ1LDAsMCwwLTEuMjMsMS4yNUE0LjE2LDQuMTYsMCwwLDAsLjg0LDE1LjlhNSw1LDAsMCwwLDIuNTcsM2wxLC41NGExOC42MiwxOC42MiwwLDAsMCwyLDcuMywyMywyMywwLDAsMCwzLDQuNzksMSwxLDAsMCwwLC44LjM4aDMuNjFhLjUyLjUyLDAsMCww''@;'; + put 'put ''LC40LS43NUwxNCwzMC4zOGExMSwxMSwwLDAsMS0uMzMtMS4xOGMuOTEuMTYsMi4wOC4zMSwyLjg3LjM4YTIwLjA3LDIwLjA3LDAsMCwwLDMuMTIsMGMuMzkuNy43OSwxLjMzLDEuMTUsMS44NWEuOTMuOTMsMCwwLDAsLjc3LjQxaDMuMTFhLjY1LjY1LDAsMCwwLC42MS0uODVjLS4yMy0uNzQt''@;'; + put 'put ''LjUzLTEuNzUtLjcxLTIuMzdhMTUuOSwxNS45LDAsMCwwLDMuNzUtMS43NmMuMTYtLjExLjMyLS4yNi40OC0uMzlhMTMuNzcsMTMuNzcsMCwwLDEtMi40Mi0xLC44LjgsMCwwLDEsLjc0LTEuNDIsMTEuNjQsMTEuNjQsMCwwLDAsMy4xOCwxLjEsMTMuMzEsMTMuMzEsMCwwLDAsMi42OC4xMiwx''@;'; + put 'put ''LDEsMCwwLDAsLjktLjY2bDEuNzMtNC40NEExLDEsMCwwLDAsMzUsMTguODdaTTEzLjc5LDExLjU5YS44Ni44NiwwLDAsMS0uMy4wNS44NS44NSwwLDAsMS0uMy0xLjY0LDEyLjQxLDEyLjQxLDAsMCwxLDYuNjktLjU1Ljg1Ljg1LDAsMSwxLS4zLDEuNjdBMTAuNzUsMTAuNzUsMCwwLDAsMTMu''@;'; + put 'put ''NzksMTEuNTlabTEyLjUyLDYuMTJhMS40NCwxLjQ0LDAsMSwxLDEuNDQtMS40NEExLjQ0LDEuNDQsMCwwLDEsMjYuMzIsMTcuNzJaIi8+JyksTC5DbHJTaGFwZVNob3BwaW5nQ2FydD0oMCxFLmNsckljb25TVkcpKCc8Y2lyY2xlIGN4PSIxMy4zMyIgY3k9IjI5Ljc1IiByPSIyLjI1IiBjbGFz''@;'; + put 'put ''cz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjI3IiBjeT0iMjkuNzUiIHI9IjIuMjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLjA4''@;'; + put 'put ''LDUuMzdBMSwxLDAsMCwwLDMyLjMxLDVIMTEuNDlsLjY1LDJIMzFMMjguMzMsMTloLTE1TDguNzYsNC41M2ExLDEsMCwwLDAtLjY2LS42NUw0LDIuNjJhMSwxLDAsMSwwLS41OSwxLjkyTDcsNS42NGw0LjU5LDE0LjVMOS45NSwyMS40OGwtLjEzLjEzQTIuNjYsMi42NiwwLDAsMCw5Ljc0LDI1''@;'; + put 'put ''LDIuNzUsMi43NSwwLDAsMCwxMiwyNkgyOC42OWExLDEsMCwwLDAsMC0ySDExLjg0YS42Ny42NywwLDAsMS0uNTYtMWwyLjQxLTJIMjkuMTNhMSwxLDAsMCwwLDEtLjc4bDMuMTctMTRBMSwxLDAsMCwwLDMzLjA4LDUuMzdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBh''@;'; + put 'put ''dGgtMyIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjEzLjMzIiBjeT0iMjkuNzUiIHI9IjIuMjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMjciIGN5PSIyOS43NSIg''@;'; + put 'put ''cj0iMi4yNSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cG9seWdvbiBwb2ludHM9IjIwLjcxIDcgMjEuODcgNSAxMS40OSA1IDEyLjE0IDcgMjAuNzEgNyIgY2xhc3M9ImNsci1pLW91dGxpbmUt''@;'; + put 'put ''LWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjkuMTUsMTUuNCwyOC4zMywxOWgtMTVMOC43Niw0LjUzYTEsMSwwLDAsMC0uNjYtLjY1TDQsMi42MmExLDEsMCwxLDAtLjU5LDEuOTJMNyw1LjY0bDQuNTksMTQuNUw5Ljk1''@;'; + put 'put ''LDIxLjQ4bC0uMTMuMTNBMi42NiwyLjY2LDAsMCwwLDkuNzQsMjUsMi43NSwyLjc1LDAsMCwwLDEyLDI2SDI4LjY5YTEsMSwwLDAsMCwwLTJIMTEuODRhLjY3LjY3LDAsMCwxLS41Ni0xbDIuNDEtMkgyOS4xM2ExLDEsMCwwLDAsMS0uNzhsMS4wOS00LjgyWiIgY2xhc3M9ImNsci1pLW91dGxp''@;'; + put 'put ''bmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4''@;'; + put 'put ''LDAsMCwwLDI2Ljg1LDEuMTRaIiAgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIxMy4zMyIgY3k9IjI5Ljc1IiByPSIyLjI1IiBjbGFzcz0iY2xyLWktb3V0''@;'; + put 'put ''bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIyNyIgY3k9IjI5Ljc1IiByPSIyLjI1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiIC8+XG4gICAgICAg''@;'; + put 'put ''ICAgICA8cGF0aCBkPSJNMjIuNTcsN2E3LjUyLDcuNTIsMCwwLDEtLjA3LTEsNy41Miw3LjUyLDAsMCwxLC4wNy0xSDExLjQ5bC42NSwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0i''@;'; + put 'put ''TTMwLDEzLjVsLS40MiwwTDI4LjMzLDE5aC0xNUw4Ljc2LDQuNTNhMSwxLDAsMCwwLS42Ni0uNjVMNCwyLjYyYTEsMSwwLDEsMC0uNTksMS45Mkw3LDUuNjRsNC41OSwxNC41TDkuOTUsMjEuNDhsLS4xMy4xM0EyLjY2LDIuNjYsMCwwLDAsOS43NCwyNSwyLjc1LDIuNzUsMCwwLDAsMTIsMjZI''@;'; + put 'put ''MjguNjlhMSwxLDAsMCwwLDAtMkgxMS44NGEuNjcuNjcsMCwwLDEtLjU2LTFsMi40MS0ySDI5LjEzYTEsMSwwLDAsMCwxLS43OGwxLjU3LTYuOTFBNy41MSw3LjUxLDAsMCwxLDMwLDEzLjVaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRn''@;'; + put 'put ''ZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiICBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC01LS1iYWRnZWQgY2xyLWktYmFkZ2UiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIxMy41IiBjeT0iMjkuNSIg''@;'; + put 'put ''cj0iMi41IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMjYuNSIgY3k9IjI5LjUiIHI9IjIuNSIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0z''@;'; + put 'put ''My4xLDYuMzlBMSwxLDAsMCwwLDMyLjMxLDZIOS4yMUw4Ljc2LDQuNTdhMSwxLDAsMCwwLS42Ni0uNjVMNCwyLjY2YTEsMSwwLDEsMC0uNTksMS45Mkw3LDUuNjhsNC41OCwxNC40N0w5Ljk1LDIxLjQ5bC0uMTMuMTNBMi42NiwyLjY2LDAsMCwwLDkuNzQsMjUsMi43NSwyLjc1LDAsMCwwLDEy''@;'; + put 'put ''LDI2SDI4LjY5YTEsMSwwLDAsMCwwLTJIMTEuODRhLjY3LjY3LDAsMCwxLS41Ni0xbDIuNDEtMkgyOS4xMmExLDEsMCwwLDAsMS0uNzZsMy4yLTEzQTEsMSwwLDAsMCwzMy4xLDYuMzlaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiAvPlxuICAgICAgICAgICAgPGNp''@;'; + put 'put ''cmNsZSBjeD0iMTMuNSIgY3k9IjI5LjUiIHI9IjIuNSIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjI2LjUiIGN5PSIyOS41IiByPSIyLjUiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxl''@;'; + put 'put ''cnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIuMjMsMTUuNEEzLjY4LDMuNjgsMCwwLDEsMTksOS44OUwyMS4yOSw2SDkuMjFMOC43Niw0LjU3YTEsMSwwLDAsMC0uNjYtLjY1TDQsMi42NmExLDEsMCwxLDAtLjU5LDEuOTJMNyw1''@;'; + put 'put ''LjY4bDQuNTgsMTQuNDdMOS45NSwyMS40OWwtLjEzLjEzQTIuNjYsMi42NiwwLDAsMCw5Ljc0LDI1LDIuNzUsMi43NSwwLDAsMCwxMiwyNkgyOC42OWExLDEsMCwwLDAsMC0ySDExLjg0YS42Ny42NywwLDAsMS0uNTYtMWwyLjQxLTJIMjkuMTJhMSwxLDAsMCwwLDEtLjc2bDEuMTktNC44NFoi''@;'; + put 'put ''IGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2''@;'; + put 'put ''LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiAgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtNC0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjEzLjUiIGN5PSIyOS41IiByPSIyLjUiIGNsYXNzPSJj''@;'; + put 'put ''bHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMjYuNSIgY3k9IjI5LjUiIHI9IjIuNSIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQiIC8+XG4gICAgICAg''@;'; + put 'put ''ICAgICA8cGF0aCBkPSJNMzAsMTMuNUE3LjUsNy41LDAsMCwxLDIyLjUsNkg5LjIxTDguNzYsNC41N2ExLDEsMCwwLDAtLjY2LS42NUw0LDIuNjZhMSwxLDAsMSwwLS41OSwxLjkyTDcsNS42OGw0LjU4LDE0LjQ3TDkuOTUsMjEuNDlsLS4xMy4xM0EyLjY2LDIuNjYsMCwwLDAsOS43NCwyNSwy''@;'; + put 'put ''Ljc1LDIuNzUsMCwwLDAsMTIsMjZIMjguNjlhMSwxLDAsMCwwLDAtMkgxMS44NGEuNjcuNjcsMCwwLDEtLjU2LTFsMi40MS0ySDI5LjEyYTEsMSwwLDAsMCwxLS43NmwxLjcxLTdBNy40OSw3LjQ5LDAsMCwxLDMwLDEzLjVaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xp''@;'; + put 'put ''ZC1wYXRoLTMtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtNC0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPicpLEwuQ2xyU2hhcGVXYWxsZXQ9KDAsRS5jbHJJY29u''@;'; + put 'put ''U1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMiwxNUgzMVY5YTEsMSwwLDAsMC0xLTFINmExLDEsMCwwLDEtMS0uODJWNi44MkExLDEsMCwwLDEsNiw2SDI5LjU4YTEsMSwwLDAsMCwwLTJINkEzLDMsMCwwLDAsMyw3YTMuMDgsMy4w''@;'; + put 'put ''OCwwLDAsMCwwLC4zNlYyNy45M0E0LjEsNC4xLDAsMCwwLDcuMTMsMzJIMzBhMSwxLDAsMCwwLDEtMVYyNWgxYTEsMSwwLDAsMCwxLTFWMTZBMSwxLDAsMCwwLDMyLDE1Wk0yOSwzMEg3LjEzQTIuMTEsMi4xMSwwLDAsMSw1LDI3LjkzVjkuODhBMy4xMSwzLjExLDAsMCwwLDYsMTBIMjl2NUgy''@;'; + put 'put ''MmE1LDUsMCwwLDAsMCwxMGg3Wm0yLTdIMjJhMywzLDAsMCwxLDAtNkgzMVoiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGN4PSIyMy4wMSIgY3k9IjIwIiByPSIxLjUiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNz''@;'; + put 'put ''PSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zMi45NCwxNEgzMVY5YTEsMSwwLDAsMC0xLTFINkExLDEsMCwwLDEsNSw3SDVWN0ExLDEsMCwwLDEsNiw2SDI5LjZhMSwxLDAsMSwwLDAtMkg2QTIuOTQsMi45NCwwLDAsMCwzLDYuODh2MjFBNC4xMyw0LjEzLDAsMCwwLDcu''@;'; + put 'put ''MTUsMzJIMzBhMSwxLDAsMCwwLDEtMVYyNmgxLjk0YS45My45MywwLDAsMCwxLS45MXYtMTBBMS4wOCwxLjA4LDAsMCwwLDMyLjk0LDE0Wk0zMiwyNGwtOC41OCwwYTMuODcsMy44NywwLDAsMS0zLjczLTQsMy44NywzLjg3LDAsMCwxLDMuNzMtNEwzMiwxNloiLz5cbiAgICAgICAgICAgIDxj''@;'; + put 'put ''aXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgY3g9IjI0LjA0IiBjeT0iMTkuOTIiIHI9IjEuNSIvPicpLEwuQ2xyU2hhcGVTdG9yZT0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0i''@;'; + put 'put ''TTI4LDMwSDE2VjIySDE0djhIOFYyMkg2djhhMiwyLDAsMCwwLDIsMkgyOGEyLDIsMCwwLDAsMi0yVjIySDI4WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0zMy43OSwxMy4yNywyOS43MSw1LjExQTIsMiwwLDAs''@;'; + put 'put ''MCwyNy45Miw0SDguMDhBMiwyLDAsMCwwLDYuMjksNS4xMUwyLjIxLDEzLjI3YTIsMiwwLDAsMC0uMjEuOXYzLjA4YTIsMiwwLDAsMCwuNDYsMS4yOEE0LjY3LDQuNjcsMCwwLDAsNiwyMC4xM2E0LjcyLDQuNzIsMCwwLDAsMy0xLjA3LDQuNzMsNC43MywwLDAsMCw2LDAsNC43Myw0LjczLDAs''@;'; + put 'put ''MCwwLDYsMCw0LjczLDQuNzMsMCwwLDAsNiwwLDQuNzIsNC43MiwwLDAsMCw2LjUzLS41MkEyLDIsMCwwLDAsMzQsMTcuMjZWMTQuMTdBMiwyLDAsMCwwLDMzLjc5LDEzLjI3Wk0zMCwxOC4xM0EyLjY4LDIuNjgsMCwwLDEsMjcuODIsMTdMMjcsMTUuODgsMjYuMTksMTdhMi43MSwyLjcxLDAs''@;'; + put 'put ''MCwxLTQuMzcsMEwyMSwxNS44OCwyMC4xOSwxN2EyLjcxLDIuNzEsMCwwLDEtNC4zNywwTDE1LDE1Ljg4LDE0LjE5LDE3YTIuNzEsMi43MSwwLDAsMS00LjM3LDBMOSwxNS44OCw4LjE4LDE3QTIuNjgsMi42OCwwLDAsMSw2LDE4LjEzYTIuNjQsMi42NCwwLDAsMS0yLS44OFYxNC4xN0w4LjA4''@;'; + put 'put ''LDZIMjcuOTJMMzIsMTQuMTZ2LjY3bDAsMi4zOUEyLjY3LDIuNjcsMCwwLDEsMzAsMTguMTNaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMjgsMzBIMTZWMjJIMTR2OEg4VjIySDZ2OGEyLDIsMCwwLDAsMiwySDI4YTIs''@;'; + put 'put ''MiwwLDAsMCwyLTJWMjJIMjhaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiBkPSJNMzMuNzksMTMuMjcsMjkuNzEsNS4xMUEyLDIsMCwwLDAsMjcuOTIsNEg4LjA4QTIsMiwwLDAsMCw2LjI5LDUuMTFMMi4yMSwxMy4yN2EyLDIs''@;'; + put 'put ''MCwwLDAtLjIxLjl2My4wOGEyLDIsMCwwLDAsLjQ2LDEuMjhBNC42Nyw0LjY3LDAsMCwwLDYsMjAuMTNhNC43Miw0LjcyLDAsMCwwLDMtMS4wNyw0LjczLDQuNzMsMCwwLDAsNiwwLDQuNzMsNC43MywwLDAsMCw2LDAsNC43Myw0LjczLDAsMCwwLDYsMCw0LjcyLDQuNzIsMCwwLDAsNi41My0u''@;'; + put 'put ''NTJBMiwyLDAsMCwwLDM0LDE3LjI2VjE0LjE3QTIsMiwwLDAsMCwzMy43OSwxMy4yN1pNMTUsMTQuNHYxLjUyTDE0LjE4LDE3YTIuNzEsMi43MSwwLDAsMS00LjM3LDBMOSwxNS44OFYxNC40TDExLjU5LDZIMTZabTEyLDEuNDhMMjYuMTksMTdhMi43MSwyLjcxLDAsMCwxLTQuMzcsMEwyMSwx''@;'; + put 'put ''NS44OGwwLDBWMTQuNEwyMCw2aDQuNDVMMjcsMTQuNFoiLz4nKSxMLkNsclNoYXBlRXVybz0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMxLjQ4LDI4LjQ5YTEsMSwwLDAsMC0xLjM4LS4zMkExMiwxMiwwLDAs''@;'; + put 'put ''MSwxMi40NSwyMkgyNC4xNmExLDEsMCwwLDAsMC0ySDExLjkzYTExLjE2LDExLjE2LDAsMCwxLDAtNEgyNC4xNmExLDEsMCwwLDAsMC0ySDEyLjQ1QTEyLDEyLDAsMCwxLDMwLjA2LDcuOGExLDEsMCwwLDAsMS4wNi0xLjdBMTQsMTQsMCwwLDAsMTAuMzQsMTRIMy41NGExLDEsMCwxLDAsMCwy''@;'; + put 'put ''SDkuOTFhMTQsMTQsMCwwLDAtLjE2LDIsMTQsMTQsMCwwLDAsLjE2LDJIMy41NGExLDEsMCwxLDAsMCwyaDYuOGExNCwxNCwwLDAsMCwyMC44Myw3Ljg3QTEsMSwwLDAsMCwzMS40OCwyOC40OVoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1w''@;'; + put 'put ''YXRoLTEiIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJabTcuNDIsMjUuMTZBMTAuODgsMTAuODgsMCwwLDEsOS4yMywyMUg1Ljg0YTEsMSwwLDAsMSwwLTJoM2MwLS4zNS0uMDUtLjcxLS4wNS0xLjA3czAtLjYzLDAtLjkzaC0zYTEsMSwwLDAsMSwwLTJIOS4x''@;'; + put 'put ''OUExMC44NiwxMC44NiwwLDAsMSwyNS4zOCw4LjY5YTEuMjUsMS4yNSwwLDAsMS0xLjMyLDIuMTJBOC4zNiw4LjM2LDAsMCwwLDExLjgyLDE1aDkuMzZhMSwxLDAsMCwxLDAsMkgxMS4zM2E3LjcyLDcuNzIsMCwwLDAsMCwyaDkuODJhMSwxLDAsMCwxLDAsMkgxMS44N2E4LjM2LDguMzYsMCww''@;'; + put 'put ''LDAsMTIuMjIsNCwxLjI1LDEuMjUsMCwxLDEsMS4zMywyLjEyWiIvPicpLEwuQ2xyU2hhcGVEb2xsYXI9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0yNiwyMS4xNWE2LjkxLDYuOTEsMCwwLDAtNC4zOC0zLjMy''@;'; + put 'put ''QTI2LDI2LDAsMCwwLDE5LDE3LjE5VjguMTJBMTAuMDUsMTAuMDUsMCwwLDEsMjMuODYsMTBhMSwxLDAsMCwwLDEuMzMtMS41QTExLjc1LDExLjc1LDAsMCwwLDE5LDYuMVYzYTEsMSwwLDAsMC0yLDBWNmMtNC40LjEtNi44MywyLjI5LTcuNTcsNC4xOEE1LjU2LDUuNTYsMCwwLDAsMTEuNjYs''@;'; + put 'put ''MTcsMTMuMiwxMy4yLDAsMCwwLDE3LDE4Ljg0VjI4YTEyLjMsMTIuMywwLDAsMS03LjE0LTIuNzRBMSwxLDAsMSwwLDguNDksMjYuNywxNC4wOSwxNC4wOSwwLDAsMCwxNywzMHYzYTEsMSwwLDAsMCwyLDBWMzBjMi44Mi0uMTksNi4wNy0xLjA5LDcuMy00Ljc2QTUuMzMsNS4zMywwLDAsMCwy''@;'; + put 'put ''NiwyMS4xNVpNMTIuNzksMTUuMzJhMy41NywzLjU3LDAsMCwxLTEuNDktNC4zOUMxMS40MSwxMC42MywxMi41Myw4LjEyLDE3LDh2OC44QTEwLjcsMTAuNywwLDAsMSwxMi43OSwxNS4zMlpNMjQuNCwyNC41NmMtLjcyLDIuMTQtMi4zMiwzLjE3LTUuNCwzLjRWMTkuMjNjLjY0LjE0LDEuMy4z''@;'; + put 'put ''LDIsLjUxYTUsNSwwLDAsMSwzLjE5LDIuMzJBMy4zNCwzLjM0LDAsMCwxLDI0LjQsMjQuNTZaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIlxuICAgICAgICAgICAgICAgIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2''@;'; + put 'put ''LDAsMCwwLDE4LDJabTcuNjUsMjEuNTljLTEsMy0zLjYxLDMuODQtNS45LDR2MmExLjI1LDEuMjUsMCwwLDEtMi41LDBWMjcuNTlBMTEuNDcsMTEuNDcsMCwwLDEsMTEsMjVhMS4yNSwxLjI1LDAsMSwxLDEuNzEtMS44Myw5LjExLDkuMTEsMCwwLDAsNC41NSwxLjk0VjE4LjgzYTkuNjMsOS42''@;'; + put 'put ''MywwLDAsMS0zLjczLTEuNDEsNC44LDQuOCwwLDAsMS0xLjkxLTUuODRjLjU5LTEuNTEsMi40Mi0zLjIzLDUuNjQtMy41MVY2LjI1YTEuMjUsMS4yNSwwLDAsMSwyLjUsMFY4LjExYTkuNjcsOS42NywwLDAsMSw0LjksMkExLjI1LDEuMjUsMCwwLDEsMjMsMTEuOTVhNy4xNCw3LjE0LDAsMCww''@;'; + put 'put ''LTMuMjQtMS4zMXY2LjEzYy42LjEzLDEuMjQuMjcsMS45MS40OGE1Ljg1LDUuODUsMCwwLDEsMy42OSwyLjgyQTQuNjQsNC42NCwwLDAsMSwyNS42NSwyMy41OVoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGQ9Ik0yMC45Miwx''@;'; + put 'put ''OS42NGMtLjQtLjEyLS43OS0uMjItMS4xNy0uM3Y1Ljc2YzItLjIsMy4wNy0uOSwzLjUzLTIuM2EyLjE1LDIuMTUsMCwwLDAtLjE1LTEuNThBMy40OSwzLjQ5LDAsMCwwLDIwLjkyLDE5LjY0WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBh''@;'; + put 'put ''dGgtMyIgZD0iTTEzLjk0LDEyLjQ4YTIuMzEsMi4zMSwwLDAsMCwxLDIuODcsNi41Myw2LjUzLDAsMCwwLDIuMzIuOTJWMTAuNTVDMTUuMTYsMTAuOCwxNC4xOSwxMS44NCwxMy45NCwxMi40OFoiLz4nKSxMLkNsclNoYXBlQ3JlZGl0Q2FyZD0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJN''@;'; + put 'put ''MzIsNkg0QTIsMiwwLDAsMCwyLDhWMjhhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjhBMiwyLDAsMCwwLDMyLDZabTAsMiwwLDEySDRMNCw4Wk00LDI4VjI0SDMydjRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxy''@;'; + put 'put ''ZWN0IHg9IjciIHk9IjMiIHdpZHRoPSIyMiIgaGVpZ2h0PSIzMCIgcng9IjAuOTYiIHJ5PSIwLjk2IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzNikgcm90YXRlKDkwKSIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMDAwIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjIiIGNs''@;'; + put 'put ''YXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIsNkg0QTIsMiwwLDAsMCwyLDhWMjhhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjhBMiwyLDAsMCwwLDMyLDZabTAsMThINFYyMEgzMloiIGNsYXNzPSJjbHItaS1z''@;'; + put 'put ''b2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+JyksTC5DbHJTaGFwZUJhbms9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMuNSwxMy41NiwxOCw1LjIzbDE0LjUsOC4zM2ExLDEsMCwwLDAsMS0xLjczTDE4LDIuOTIsMi41LDExLjgzYTEsMSwwLDEsMCwxLDEuNzNaIiBjbGFzcz0iY2xy''@;'; + put 'put ''LWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTQsMjZhMSwxLDAsMCwwLDEsMUgzMWExLDEsMCwwLDAsMC0ySDI4VjE3LjYzSDI2VjI1SDE5VjE3LjYzSDE3VjI1SDEwVjE3LjYzSDhWMjVINUExLDEsMCwwLDAsNCwyNloiIGNsYXNzPSJj''@;'; + put 'put ''bHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSI1LjAyIiB5PSIxNCIgd2lkdGg9IjI2IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMs''@;'; + put 'put ''MjlIM2ExLDEsMCwwLDAsMCwySDMzYTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIyLjE1LDExLjU4aDMuMjFMMTguNjUsNy43MmEuOC44LDAsMCwwLS44LDBsLTYuNzIsMy44NmgzLjIx''@;'; + put 'put ''bDMuOS0yLjI0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik00LDI2YTEsMSwwLDAsMCwxLDFIMzFhMSwxLDAsMCwwLDAtMkgyOFYxNy42M0gyNlYyNUgxOVYxNy42M0gxN1YyNUgxMFYxNy42M0g4VjI1SDVBMSwx''@;'; + put 'put ''LDAsMCwwLDQsMjZaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjUuMDIiIHk9IjE0IiB3aWR0aD0iMjYiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHIt''@;'; + put 'put ''aS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMsMjlIM2ExLDEsMCwwLDAsMCwySDMzYTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiLz5cbiAgICAgICAgICAg''@;'; + put 'put ''IDxwYXRoIGQ9Ik0yMi4xNSwxMS41OGgzLjIxTDE4LjY1LDcuNzJhLjguOCwwLDAsMC0uOCwwbC02LjcyLDMuODZoMy4yMWwzLjktMi4yNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0i''@;'; + put 'put ''TTIyLjUsNmMwLS4xNiwwLS4zMiwwLS40OEwxOCwyLjkyLDIuNSwxMS44M2ExLDEsMCwxLDAsMSwxLjczTDE4LDUuMjMsMjIuNzcsOEE3LjQ5LDcuNDksMCwwLDEsMjIuNSw2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIi8+XG4g''@;'; + put 'put ''ICAgICAgICAgICA8cGF0aCBkPSJNMzEuOTQsMTMuMjRsLjU2LjMyYTEsMSwwLDAsMCwxLjQ0LTEuMTlBNy40NSw3LjQ1LDAsMCwxLDMxLjk0LDEzLjI0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8''@;'; + put 'put ''Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTYtLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTQsMjZhMSwxLDAsMCwwLDEsMUgzMWExLDEsMCwwLDAsMC0ySDI4VjE3''@;'; + put 'put ''LjYzSDI2VjI1SDE5VjE3LjYzSDE3VjI1SDEwVjE3LjYzSDhWMjVINUExLDEsMCwwLDAsNCwyNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMsMjlIM2ExLDEsMCwwLDAsMCwy''@;'; + put 'put ''SDMzYTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIyLjUsMTVBMy41MSwzLjUxLDAsMCwxLDIwLDE0SDV2MkgzMVYxNVoiIGNsYXNzPSJjbHItaS1vdXRs''@;'; + put 'put ''aW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTkuNDYsOS43NGwuNjgtMS4xNy0xLjQ5LS44NWEuOC44LDAsMCwwLS44LDBsLTYuNzIsMy44NmgzLjIxbDMuOS0yLjI0LDEuMS42M0MxOS4zOSw5Ljg5LDE5LjQyLDku''@;'; + put 'put ''ODEsMTkuNDYsOS43NFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIuMDUsNS4yNSwxOCwyLjkyLDIuNSwxMS44M2ExLDEsMCwxLDAsMSwxLjczTDE4LDUuMjMsMjEuMDUsN1oi''@;'; + put 'put ''IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC01LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5''@;'; + put 'put ''LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNi0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMuNSwxMy41Niw1LDEyLjY4VjE2SDMxVjEyLjcx''@;'; + put 'put ''bDEuNDguODVhMSwxLDAsMCwwLDEtMS43M0wxOCwyLjkyLDIuNSwxMS44M2ExLDEsMCwxLDAsMSwxLjczWk0xNy44NSw3LjExYS44LjgsMCwwLDEsLjgsMEwyNS4zNywxMUgyMi4xNWwtMy45LTIuMjRMMTQuMzUsMTFIMTEuMTRaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0''@;'; + put 'put ''aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIuODUsMjdIMzJ2LS44NUExLjE1LDEuMTUsMCwwLDAsMzAuODUsMjVIMjhWMTcuNjNIMjRWMjVIMjBWMTcuNjNIMTZWMjVIMTJWMTcuNjNIOFYyNUg1LjE1QTEuMTUsMS4xNSwwLDAsMCw0LDI2LjE1VjI3SDMuMTVBMS4xNSwxLjE1LDAs''@;'; + put 'put ''MCwwLDIsMjguMTVWMzFIMzRWMjguMTVBMS4xNSwxLjE1LDAsMCwwLDMyLjg1LDI3WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMyLjg1LDI3SDMydi0uODVBMS4xNSwxLjE1LDAsMCwwLDMwLjg1LDI1SDI4VjE3LjYz''@;'; + put 'put ''SDI0VjI1SDIwVjE3LjYzSDE2VjI1SDEyVjE3LjYzSDhWMjVINS4xNUExLjE1LDEuMTUsMCwwLDAsNCwyNi4xNVYyN0gzLjE1QTEuMTUsMS4xNSwwLDAsMCwyLDI4LjE1VjMxSDM0VjI4LjE1QTEuMTUsMS4xNSwwLDAsMCwzMi44NSwyN1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNs''@;'; + put 'put ''ci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAsMTMuNUE3LjQ3LDcuNDcsMCwwLDEsMjQuMzksMTFIMjIuMTVsLTMuOS0yLjI0TDE0LjM1LDExSDExLjE0bDYuNzItMy44NmEuOC44LDAsMCwxLC44LDBsNSwyLjg3QTcuNDUsNy40NSwwLDAsMSwy''@;'; + put 'put ''Mi41LDZjMC0uMTYsMC0uMzIsMC0uNDhMMTgsMi45MiwyLjUsMTEuODNhMSwxLDAsMSwwLDEsMS43M0w1LDEyLjY4VjE2SDMxVjEzLjQyQTcuNTMsNy41MywwLDAsMSwzMCwxMy41WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQiLz5cbiAg''@;'; + put 'put ''ICAgICAgICAgIDxwYXRoIGQ9Ik0zMS45NCwxMy4yNGwuNTYuMzJhMSwxLDAsMCwwLDEuNDQtMS4xOUE3LjQ1LDcuNDUsMCwwLDEsMzEuOTQsMTMuMjRaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNs''@;'; + put 'put ''ZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC00LS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMi44NSwyN0gzMnYtLjg1QTEuMTUsMS4xNSwwLDAsMCwzMC44NSwyNUgyOFYxNy42''@;'; + put 'put ''M0gyNFYyNUgyMFYxNy42M0gxNlYyNUgxMlYxNy42M0g4VjI1SDUuMTVBMS4xNSwxLjE1LDAsMCwwLDQsMjYuMTVWMjdIMy4xNUExLjE1LDEuMTUsMCwwLDAsMiwyOC4xNVYzMUgzNFYyOC4xNUExLjE1LDEuMTUsMCwwLDAsMzIuODUsMjdaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQg''@;'; + put 'put ''Y2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIuNSwxNWEzLjUxLDMuNTEsMCwwLDEtMy01LjI2bC4xNC0uMjQtMS4zNS0uNzhMMTQuMzUsMTFIMTEuMTRsNi43Mi0zLjg2YS44LjgsMCwwLDEsLjgsMGwxLjc1LDEsMS42NS0yLjg2TDE4LDIu''@;'; + put 'put ''OTIsMi41LDExLjgzYTEsMSwwLDEsMCwxLDEuNzNMNSwxMi42OFYxNkgzMVYxNVoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAs''@;'; + put 'put ''MCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz4nKSxMLkNsclNoYXBl''@;'; + put 'put ''RG9sbGFyQmlsbD0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMyLDhINGEyLDIsMCwwLDAtMiwyVjI2YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYxMEEyLDIsMCwwLDAsMzIsOFptMCw2YTQuMjUs''@;'; + put 'put ''NC4yNSwwLDAsMS0zLjktNEgzMlptMCwxLjYydjQuODNBNS44Nyw1Ljg3LDAsMCwwLDI2LjQ5LDI2aC0xN0E1Ljg3LDUuODcsMCwwLDAsNCwyMC40NFYxNS42QTUuODcsNS44NywwLDAsMCw5LjUxLDEwaDE3QTUuODcsNS44NywwLDAsMCwzMiwxNS42Wk03LjksMTBBNC4yNSw0LjI1LDAsMCwx''@;'; + put 'put ''LDQsMTRWMTBaTTQsMjIuMDZBNC4yNSw0LjI1LDAsMCwxLDcuOSwyNkg0Wk0yOC4xLDI2QTQuMjUsNC4yNSwwLDAsMSwzMiwyMi4wNlYyNloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMTgsMTAuODVjLTMuNDcs''@;'; + put 'put ''MC02LjMsMy4yMS02LjMsNy4xNXMyLjgzLDcuMTUsNi4zLDcuMTUsNi4zLTMuMjEsNi4zLTcuMTVTMjEuNDcsMTAuODUsMTgsMTAuODVabTAsMTIuNjljLTIuNTksMC00LjctMi40OS00LjctNS41NXMyLjExLTUuNTUsNC43LTUuNTUsNC43LDIuNDksNC43LDUuNTVTMjAuNTksMjMuNTUsMTgs''@;'; + put 'put ''MjMuNTVaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzIsOEg0YTIsMiwwLDAsMC0yLDJWMjZhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjEwQTIsMiwwLDAsMCwzMiw4Wk00LDI2VjIxLjE1QTUuMTgsNS4x''@;'; + put 'put ''OCwwLDAsMSw4Ljc5LDI2Wk00LDE0Ljg1VjEwSDguNzlBNS4xOCw1LjE4LDAsMCwxLDQsMTQuODVaTTE4LDI1LjE1Yy0zLjQ3LDAtNi4zLTMuMjEtNi4zLTcuMTVzMi44My03LjE1LDYuMy03LjE1LDYuMywzLjIxLDYuMyw3LjE1UzIxLjQ3LDI1LjE1LDE4LDI1LjE1Wk0zMiwyNkgyNy4yNUE1''@;'; + put 'put ''LjE4LDUuMTgsMCwwLDEsMzIsMjEuMTVabTAtMTEuMTVBNS4xOCw1LjE4LDAsMCwxLDI3LjI1LDEwSDMyWiIvPlxuICAgICAgICAgICAgPGVsbGlwc2UgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgY3g9IjE4IiBjeT0iMTgiIHJ4PSI0IiByeT0iNC43MiIvPicpLEwu''@;'; + put 'put ''Q2xyU2hhcGVFQ2hlY2s9KDAsRS5jbHJJY29uU1ZHKSgnPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIHg9IjE2IiB5PSIxNiIgd2lkdGg9IjE1IiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1p''@;'; + put 'put ''LW91dGxpbmUtcGF0aC0yIiB4PSIyMCIgeT0iMjEiIHdpZHRoPSIxMSIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgZD0iTTM0LDhIMTIuOTNhOC4zNSw4LjM1LDAsMCwxLC43OSwySDMzVjI2SDNWMTku''@;'; + put 'put ''OWE3LjgzLDcuODMsMCwwLDEtMi0xLjM0VjI3YTEsMSwwLDAsMCwxLDFIMzRhMSwxLDAsMCwwLDEtMVY5QTEsMSwwLDAsMCwzNCw4WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIGQ9Ik02LjU3LDE4LjY4YTYuMTcsNi4x''@;'; + put 'put ''NywwLDAsMCw0LjMyLTEuNTksMS4yLDEuMiwwLDAsMCwuMzYtLjg0LDEuMDgsMS4wOCwwLDAsMC0xLjA5LTEuMTEsMSwxLDAsMCwwLS43MS4yNSw0LjMyLDQuMzIsMCwwLDEtMi44NCwxLDMuMzUsMy4zNSwwLDAsMS0zLjQ2LTNoNy41M0ExLjI5LDEuMjksMCwwLDAsMTIsMTIuMDYsNS42OCw1''@;'; + put 'put ''LjY4LDAsMCwwLDYuMjcsNi4xNCw2LDYsMCwwLDAsLjQsMTIuNHYwQTYsNiwwLDAsMCw2LjU3LDE4LjY4Wk02LjI1LDguMzljMS44MiwwLDIuODcsMS4zOSwzLDMuMTZIMy4xM0MzLjM4LDkuNjksNC41Niw4LjM5LDYuMjUsOC4zOVoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHIt''@;'; + put 'put ''aS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zNCw4SDEyLjkxYTguNjEsOC42MSwwLDAsMSwxLjIsNC4zOSw4LDgsMCwwLDEtNy43OCw4LjI3QTcuNTEsNy41MSwwLDAsMSwxLDE4LjQxVjI3YTEsMSwwLDAsMCwxLDFIMzRhMSwxLDAsMCwwLDEtMVY5QTEsMSwwLDAsMCwzNCw4Wk0z''@;'; + put 'put ''MSwyM0gyMFYyMUgzMVptMC01SDE2VjE2SDMxWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgZD0iTTYuNTcsMTguNjhBNiw2LDAsMCwxLC40LDEyLjQ0djBBNiw2LDAsMCwxLDYuMjcsNi4xNCw1LjY4LDUuNjgsMCwwLDEsMTIs''@;'; + put 'put ''MTIuMDZhMS4yOSwxLjI5LDAsMCwxLTEuMywxLjMySDMuMTVhMy4zNSwzLjM1LDAsMCwwLDMuNDYsMyw0LjMyLDQuMzIsMCwwLDAsMi44NC0xLDEsMSwwLDAsMSwuNzEtLjI1LDEuMDgsMS4wOCwwLDAsMSwxLjA5LDEuMTEsMS4yLDEuMiwwLDAsMS0uMzYuODRBNi4xNyw2LjE3LDAsMCwxLDYu''@;'; + put 'put ''NTcsMTguNjhaTTkuMywxMS41NWMtLjE4LTEuNzctMS4yMy0zLjE2LTMtMy4xNnMtMi44NywxLjMtMy4xMiwzLjE2WiIvPicpLEwuQ2xyU2hhcGVQb3VuZD0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTI3Ljks''@;'; + put 'put ''MzBIMTMuNEE4LjQ1LDguNDUsMCwwLDAsMTUsMjQuNjVWMjFoNC4zMWExLDEsMCwwLDAsMC0ySDE1VjExLjMxQTUuMjQsNS4yNCwwLDAsMSwyMC4yMSw2LDUuMTksNS4xOSwwLDAsMSwyNCw3LjczYTEsMSwwLDAsMCwxLjQ4LTEuMzVBNy4xOSw3LjE5LDAsMCwwLDEzLDExLjMxVjE5SDguNzJh''@;'; + put 'put ''MSwxLDAsMSwwLDAsMkgxM3YzLjY1QzEzLDI5LjM4LDEwLjEyLDMwLDEwLDMwYTEsMSwwLDAsMCwuMTcsMkgyNy45YTEsMSwwLDEsMCwwLTJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMTgsMkExNiwxNiwwLDEsMCwz''@;'; + put 'put ''NCwxOCwxNiwxNiwwLDAsMCwxOCwyWm02LjUsMjUuOTJIMTEuNzRhMS4yNSwxLjI1LDAsMCwxLS4yMi0yLjQ4Yy4xNSwwLDEuNzItLjQ5LDEuNzItMy41NFYxOWgtMi41YTEsMSwwLDAsMSwwLTJoMi41VjExLjg4YTUuODUsNS44NSwwLDAsMSw1LjcyLTYsNS42Myw1LjYzLDAsMCwxLDQuMjEs''@;'; + put 'put ''MS45NEExLjI1LDEuMjUsMCwxLDEsMjEuMyw5LjUxLDMuMDgsMy4wOCwwLDAsMCwxOSw4LjQyYTMuMzUsMy4zNSwwLDAsMC0zLjIyLDMuNDZWMTdoM2ExLDEsMCwwLDEsMCwyaC0zdjIuOUE3LjY1LDcuNjUsMCwwLDEsMTUsMjUuNDJIMjQuNWExLjI1LDEuMjUsMCwwLDEsMCwyLjVaIi8+Jyks''@;'; + put 'put ''TC5DbHJTaGFwZVJ1cGVlPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMjgsOEgyNC4xNEE3LjUyLDcuNTIsMCwwLDAsMjIuNiw2SDI4YTEsMSwwLDAsMCwwLTJIMTBhMSwxLDAsMCwwLDAsMmg3LjU1YTUuNDIs''@;'; + put 'put ''NS40MiwwLDAsMSw0LjIsMkgxMGExLDEsMCwwLDAsMCwySDIyLjc5QTUuNTQsNS41NCwwLDAsMSwyMywxMS41MSw1LjQ4LDUuNDgsMCwwLDEsMTcuNTUsMTdIMTEuMTRhMSwxLDAsMCwwLS43NSwxLjY2TDIyLjA2LDMyYTEsMSwwLDEsMCwxLjUtMS4zMkwxMy4zNSwxOWg0LjIxYTcuNTEsNy41''@;'; + put 'put ''MSwwLDAsMCw3LjMtOUgyOGExLDEsMCwwLDAsMC0yWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlptNS44OCw5SDI2YTEsMSwwLDAsMSwwLDJIMjQu''@;'; + put 'put ''MjZjMCwuMDYsMCwuMTIsMCwuMTlhNi4wOSw2LjA5LDAsMCwxLTYsNi4yaC0ybDYuODIsOC4wNmExLjI1LDEuMjUsMCwwLDEtMS45MSwxLjYyTDEyLjYzLDE4Ljk0YTEuMjUsMS4yNSwwLDAsMSwxLTIuMDZoNC43MWEzLjU5LDMuNTksMCwwLDAsMy40OC0zLjY5YzAtLjA3LDAtLjEzLDAtLjJo''@;'; + put 'put ''LTlhMSwxLDAsMCwxLDAtMmg4LjMyYTMuNDEsMy40MSwwLDAsMC0yLjc4LTEuNUgxMi43NWExLjI1LDEuMjUsMCwwLDEsMC0yLjVIMjZhMSwxLDAsMCwxLDAsMkgyMi42OEE2LjIzLDYuMjMsMCwwLDEsMjMuODgsMTFaIi8+JyksTC5DbHJTaGFwZVdvbj0oMCxFLmNsckljb25TVkcpKCc8cGF0''@;'; + put 'put ''aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMzLDE4SDI4Ljc1bC41LTJIMzNhMSwxLDAsMCwwLDAtMkgyOS43NGwyLjE3LTguNzZBMSwxLDAsMCwwLDMwLDQuNzZMMjcuNjgsMTRIMjEuMzFMMTksNC43NmExLDEsMCwwLDAtMS45NCwwTDE0Ljc5LDE0''@;'; + put 'put ''SDguNDJMNi4xMyw0Ljc2YTEsMSwwLDAsMC0xLjk0LjQ4TDYuMzYsMTRIM2ExLDEsMCwwLDAsMCwySDYuODVsLjUsMkgzYTEsMSwwLDAsMCwwLDJINy44NGwyLjc5LDExLjI0YTEsMSwwLDAsMCwxLjk0LDBMMTUuMzYsMjBoNS4zOGwyLjc5LDExLjI0YTEsMSwwLDAsMCwxLjk0LDBMMjguMjUs''@;'; + put 'put ''MjBIMzNhMSwxLDAsMCwwLDAtMlptLTUuODItMi0uNSwySDIyLjNsLS41LTJaTTE4LDkuMTYsMTkuMjUsMTRoLTIuNFpNOC45MSwxNmg1LjM4bC0uNSwySDkuNDFaTTExLjYsMjYuODQsOS45MSwyMEgxMy4zWk0xNS44NSwxOGwuNS0yaDMuMzlsLjUsMlptOC42NCw4Ljg0TDIyLjgsMjBoMy4z''@;'; + put 'put ''OVoiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIHBvaW50cz0iMTcuNzQgMTYgMTcuMjIgMTggMTguODUgMTggMTguMzIgMTYgMTcuNzQgMTYiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIGNsYXNzPSJjbHItaS1zb2xpZCBj''@;'; + put 'put ''bHItaS1zb2xpZC1wYXRoLTIiIHBvaW50cz0iMTEuOTQgMTggMTQuNjMgMTggMTUuMTYgMTYgMTEuNDEgMTYgMTEuOTQgMTgiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIHBvaW50cz0iMTMuMjkgMjMuMSAxNC4xIDIwIDEy''@;'; + put 'put ''LjQ3IDIwIDEzLjI5IDIzLjEiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTQiIHBvaW50cz0iMjEuNDQgMTggMjQuMTMgMTggMjQuNjYgMTYgMjAuOTEgMTYgMjEuNDQgMTgiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIGNsYXNz''@;'; + put 'put ''PSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTUiIHBvaW50cz0iMjIuNzggMjMuMSAyMy42IDIwIDIxLjk3IDIwIDIyLjc4IDIzLjEiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTYiIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0''@;'; + put 'put ''LDE4LDE2LDE2LDAsMCwwLDE4LDJaTTI5LDIwSDI2LjE5TDI0LDI4LjMyYTEuMjUsMS4yNSwwLDAsMS0yLjQyLDBMMTkuMzgsMjBIMTYuNjlsLTIuMTksOC4zMmExLjI1LDEuMjUsMCwwLDEtMi40MiwwTDkuODgsMjBIN2ExLDEsMCwwLDEsMC0ySDkuMzVsLS41My0ySDdhMSwxLDAsMCwxLDAt''@;'; + put 'put ''Mkg4LjNsLTEtMy42OGExLjI1LDEuMjUsMCwwLDEsMi40Mi0uNjRMMTAuODgsMTRoNC44bDEuMTQtNC4zMmExLjI1LDEuMjUsMCwwLDEsMi40MiwwTDIwLjM4LDE0aDQuOGwxLjE0LTQuMzJhMS4yNSwxLjI1LDAsMCwxLDIuNDIuNjRsLTEsMy42OEgyOWExLDEsMCwwLDEsMCwySDI3LjI0bC0u''@;'; + put 'put ''NTMsMkgyOWExLDEsMCwwLDEsMCwyWiIvPicpLEwuQ2xyU2hhcGVZZW49KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0yOS4zNCw0LjU1YTEsMSwwLDEsMC0xLjY3LTEuMUwxOCwxOC4yMyw4LjMzLDMuNDVhMSwx''@;'; + put 'put ''LDAsMCwwLTEuNjcsMS4xTDE3LDIwLjM1VjIyLjJIMTJhLjguOCwwLDAsMCwwLDEuNmg1djIuNEgxMmEuOC44LDAsMCwwLDAsMS42aDVWMzJhMSwxLDAsMCwwLDIsMFYyNy44aDVhLjguOCwwLDAsMCwwLTEuNkgxOVYyMy44aDVhLjguOCwwLDAsMCwwLTEuNkgxOVYyMC4zNVoiLz5cbiAgICAg''@;'; + put 'put ''ICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJabTguMDcsNy45MUwxOS43NCwyMEgyMmExLDEsMCwwLDEsMCwySDE5LjI1djJIMjJhMSwxLDAsMCwxLDAsMkgxOS4yNXYy''@;'; + put 'put ''Ljc1YTEuMjUsMS4yNSwwLDAsMS0yLjUsMFYyNkgxNGExLDEsMCwxLDEsMC0yaDIuNzVWMjJIMTRhMSwxLDAsMSwxLDAtMmgyLjI2TDkuOTMsOS45MWExLjI1LDEuMjUsMCwxLDEsMi4xMi0xLjMzTDE4LDE4LjA4bDUuOTUtOS40OWExLjI1LDEuMjUsMCwxLDEsMi4xMiwxLjMzWiIvPicpLEwu''@;'; + put 'put ''Q2xyU2hhcGVCaXRjb2luPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yNC4xMSwxNi44OEE1LjQ5LDUuNDksMCwwLDAsMjEsN1Y0YTEsMSwwLDAsMC0yLDBWN0gxNlY0YTEsMSwwLDAsMC0yLDBWN0gxMWExLDEsMCwwLDAtMSwxVjI4YTEsMSwwLDAsMCwxLDFoM3YzYTEsMSwwLDAsMCwy''@;'; + put 'put ''LDBWMjloM3YzYTEsMSwwLDAsMCwyLDBWMjloLjA4QTYuMDcsNi4wNywwLDAsMCwyNywyMi44MXYtLjYyQTYuMjUsNi4yNSwwLDAsMCwyNC4xMSwxNi44OFpNMTIsOWg4LjY5YTMuNTksMy41OSwwLDAsMSwzLjQzLDIuMzZBMy41MSwzLjUxLDAsMCwxLDIwLjc5LDE2SDEyWk0yNSwyMi44MUE0''@;'; + put 'put ''LjA4LDQuMDgsMCwwLDEsMjEuMDYsMjdIMTJWMThoOS4wNkE0LjA4LDQuMDgsMCwwLDEsMjUsMjIuMTlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMS4xOCwxOC40N0gxNC41djZoNi42OGEyLjcsMi43LDAs''@;'; + put 'put ''MCwwLDIuNjMtMi43N3YtLjQ4QTIuNzEsMi43MSwwLDAsMCwyMS4xOCwxOC40N1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjMsMTMuNzVhMi4yNCwyLjI0LDAsMCwwLTIuMjMtMi4yNUgxNC41VjE2aDYuM0EyLjIy''@;'; + put 'put ''LDIuMjIsMCwwLDAsMjMsMTMuNzVaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlptOC4zMSwxOS43M0E1LjIyLDUuMjIsMCwwLDEsMjEuMTgsMjdI''@;'; + put 'put ''MjF2MS45YTEsMSwwLDAsMS0yLDBWMjdIMTd2MS45YTEsMSwwLDAsMS0yLDBWMjdIMTMuMjVBMS4yNSwxLjI1LDAsMCwxLDEyLDI1Ljc1VjE3LjIzaDB2LTdBMS4yNSwxLjI1LDAsMCwxLDEzLjI1LDlIMTVWNy4wN2ExLDEsMCwwLDEsMiwwVjloMlY3LjA3YTEsMSwwLDAsMSwyLDBWOWE0Ljcy''@;'; + put 'put ''LDQuNzIsMCwwLDEsMy4yLDgsNS4zMSw1LjMxLDAsMCwxLDIuMTEsNC4yNFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIC8+JyksTC5DbHJTaGFwZUNvaW5CYWc9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTIxLjYsMjlhMSwxLDAsMCwwLTEtMWgtNmExLDEs''@;'; + put 'put ''MCwwLDAsMCwyaDZBMSwxLDAsMCwwLDIxLjYsMjlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMjIuNTQsMjRoLTZhMSwxLDAsMCwwLDAsMmg2YTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5l''@;'; + put 'put ''LXBhdGgtMiIgLz48cGF0aCBkPSJNMjIsMzJIMTZhMSwxLDAsMCwwLDAsMmg2YTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz48cGF0aCBkPSJNMzIuNywzMmgtN2ExLDEsMCwwLDAsMCwyaDdhMSwxLDAsMCwwLDAtMloiIGNsYXNz''@;'; + put 'put ''PSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPjxwYXRoIGQ9Ik0zMy43LDI4aC03YTEsMSwwLDAsMCwwLDJoN2ExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIC8+PHBhdGggZD0iTTMzLjc0LDI2YTI4LDI4LDAs''@;'; + put 'put ''MCwwLTIuODItMTAuMTJBMjAuMjQsMjAuMjQsMCwwLDAsMjQuNiw4LjcxTDI3LDMuNDJhMSwxLDAsMCwwLS4wNy0xQTEsMSwwLDAsMCwyNi4xMywySDkuOGExLDEsMCwwLDAtLjkxLDEuNDJsMi40NSw1LjMxYTIwLjMzLDIwLjMzLDAsMCwwLTYuMjgsNy4xNWMtMi4xNSw0LTIuODIsOC44OS0z''@;'; + put 'put ''LDEyLjI4YTMuNiwzLjYsMCwwLDAsMSwyLjcxQTMuNzksMy43OSwwLDAsMCw1LjgsMzEuOTRIMTJWMzBINS43MmExLjY4LDEuNjgsMCwwLDEtMS4yMS0uNTIsMS42MiwxLjYyLDAsMCwxLS40NS0xLjIzYy4xNC0yLjYxLjY5LTcuNTgsMi43Ni0xMS40NUExOCwxOCwwLDAsMSwxMy4wOCwxMGgx''@;'; + put 'put ''YTMwLjgxLDMwLjgxLDAsMCwwLTEuODcsMi45MiwyMi43OCwyMi43OCwwLDAsMC0xLjQ3LDMuMzRsMS4zNy45MmEyNCwyNCwwLDAsMSwxLjQ5LTMuNDdBMjkuMSwyOS4xLDAsMCwxLDE2LjA1LDEwaDFhMjEuNDUsMjEuNDUsMCwwLDEsMS40MSw1LDIyLjU0LDIyLjU0LDAsMCwxLC4zMiwzLjg2''@;'; + put 'put ''bDEuNTgtMS4xMWEyNC4xNSwyNC4xNSwwLDAsMC0uMzItM0EyNC44MiwyNC44MiwwLDAsMCwxOC43NiwxMGguNzhsLjkxLTJIMTMuMjFMMTEuMzYsNEgyNC41N2wtMi41LDUuNDdhOS45Myw5LjkzLDAsMCwxLDEuMjMuNzgsMTguNjMsMTguNjMsMCwwLDEsNS44Niw2LjU3QTI2LjU5LDI2LjU5''@;'; + put 'put ''LDAsMCwxLDMxLjczLDI2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIC8+XG4gICAgPHBhdGggZD0iTTI0Ljg5LDI2aDcuODZjLS42Ni04LjcxLTQuNDEtMTQuMTItOS4yMi0xNy4zMkwyNS43MiwzLjlhMSwxLDAsMCwwLS45MS0xLjRIMTEuMWExLDEsMCww''@;'; + put 'put ''LDAtLjkxLDEuNGwxLjIsMi42SDIxLjUxbC0uOSwySDE4Ljc2QTI0LjksMjQuOSwwLDAsMSwyMCwxMy4xOWEyNC40OSwyNC40OSwwLDAsMSwuMzIsM2wtMS41OCwxLjExYTIyLjU0LDIyLjU0LDAsMCwwLS4zMi0zLjg2QTIxLjc0LDIxLjc0LDAsMCwwLDE3LDguNWgtMWEyOC4yMiwyOC4yMiww''@;'; + put 'put ''LDAsMC0yLjQ4LDMuNywyMy45MSwyMy45MSwwLDAsMC0xLjQ5LDMuNDZsLTEuMzctLjkxYTIyLjc4LDIyLjc4LDAsMCwxLDEuNDctMy4zNEEzMC44MSwzMC44MSwwLDAsMSwxNC4wNSw4LjVIMTIuM2wuMDguMTdDNy4wOCwxMi4yLDMuMDUsMTguNCwzLjA1LDI4Ljc1QTEuNjUsMS42NSwwLDAs''@;'; + put 'put ''MCw0LjYxLDMwLjVoOEEyLjY3LDIuNjcsMCwwLDEsMTQuMjEsMjZhMi42NywyLjY3LDAsMCwxLS4zNy0xLjM0LDIuNywyLjcsMCwwLDEsMi43LTIuN2g2YTIuNywyLjcsMCwwLDEsMi43LDIuN0EyLjYzLDIuNjMsMCwwLDEsMjQuODksMjZaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29s''@;'; + put 'put ''aWQtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0yMS42LDI4LjVhMSwxLDAsMCwwLTEtMWgtNmExLDEsMCwwLDAsMCwyaDZBMSwxLDAsMCwwLDIxLjYsMjguNVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+PHBhdGggZD0iTTIyLjU0LDIzLjVoLTZhMSwxLDAsMCwwLDAs''@;'; + put 'put ''Mmg2YTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0yMiwzMS41SDE2YTEsMSwwLDAsMCwwLDJoNmExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNCIgLz48cGF0aCBkPSJN''@;'; + put 'put ''MzIuNywzMS41aC03YTEsMSwwLDAsMCwwLDJoN2ExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNSIgLz48cGF0aCBkPSJNMzMuNywyNy41aC03YTEsMSwwLDAsMCwwLDJoN2ExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1p''@;'; + put 'put ''LXNvbGlkLXBhdGgtNiIgLz4nKSxMLkNsclNoYXBlUGVzbz0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzEsMTMuMkgyNy44OUE2LjgxLDYuODEsMCwwLDAsMjgsMTJhNy44NSw3Ljg1LDAsMCwwLS4xLTEuMTloMi45M2EuOC44LDAsMCwwLDAtMS42SDI3LjQ2QTguNDQsOC40NCwwLDAs''@;'; + put 'put ''MCwxOS41Nyw0SDExYTEsMSwwLDAsMC0xLDFWOS4ySDdhLjguOCwwLDAsMCwwLDEuNmgzdjIuNEg3YS44LjgsMCwwLDAsMCwxLjZoM1YzMWExLDEsMCwwLDAsMiwwVjIwaDcuNTdhOC40NSw4LjQ1LDAsMCwwLDcuODktNS4ySDMxYS44LjgsMCwwLDAsMC0xLjZaTTEyLDZoNy41N2E2LjUxLDYu''@;'; + put 'put ''NTEsMCwwLDEsNS42OCwzLjJIMTJabTAsNC44SDI1Ljg3YTUuNiw1LjYsMCwwLDEsMCwyLjRIMTJaTTE5LjU3LDE4SDEyVjE0LjhIMjUuMjVBNi41MSw2LjUxLDAsMCwxLDE5LjU3LDE4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTE0''@;'; + put 'put ''LjE4LDEzLjhWMTZoOS40NWE1LjI2LDUuMjYsMCwwLDAsLjA4LS44OSw0LjcyLDQuNzIsMCwwLDAtLjItMS4zMVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+PHBhdGggZD0iTTE0LjE4LDE5LjdoNS4xOWE0LjI4LDQuMjgsMCwwLDAsMy41LTEuOUgxNC4xOFoi''@;'; + put 'put ''IGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+PHBhdGggZD0iTTE5LjM3LDEwLjUxSDE0LjE4VjEyaDguMzdBNC4yMSw0LjIxLDAsMCwwLDE5LjM3LDEwLjUxWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIgLz48cGF0aCBkPSJNMTcuNjcs''@;'; + put 'put ''MmExNiwxNiwwLDEsMCwxNiwxNkExNiwxNiwwLDAsMCwxNy42NywyWm0xMC41LDE1LjhIMjUuN2E2Ljg3LDYuODcsMCwwLDEtNi4zMyw0LjRIMTQuMTh2Ni41NGExLjI1LDEuMjUsMCwxLDEtMi41LDBWMTcuOEg4Ljc2YS45LjksMCwxLDEsMC0xLjhoMi45MlYxMy44SDguNzZhLjkuOSwwLDEs''@;'; + put 'put ''MSwwLTEuOGgyLjkyVjkuMjZBMS4yNSwxLjI1LDAsMCwxLDEyLjkzLDhoNi40NGE2Ljg0LDYuODQsMCwwLDEsNi4xNSw0aDIuNjVhLjkuOSwwLDAsMSwwLDEuOEgyNi4wOWE2LjkxLDYuOTEsMCwwLDEsLjEyLDEuMyw2LjgsNi44LDAsMCwxLS4wNi45aDJhLjkuOSwwLDAsMSwwLDEuOFoiIGNs''@;'; + put 'put ''YXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTQiIC8+JyksTC5DbHJTaGFwZVJ1YmxlPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yMC41NywyMEE4LjIzLDguMjMsMCwwLDAsMjksMTJhOC4yMyw4LjIzLDAsMCwwLTguNDMtOEgxMmExLDEsMCwwLDAtMSwxVjE4SDlhMSwx''@;'; + put 'put ''LDAsMCwwLDAsMmgydjJIOWExLDEsMCwwLDAsMCwyaDJ2N2ExLDEsMCwwLDAsMiwwVjI0aDlhMSwxLDAsMCwwLDAtMkgxM1YyMFpNMTMsNmg3LjU3QTYuMjQsNi4yNCwwLDAsMSwyNywxMmE2LjIzLDYuMjMsMCwwLDEtNi40Myw2SDEzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0''@;'; + put 'put ''bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTIwLjc1LDkuMjVIMTV2OC44MWg1Ljc5YTQuNjYsNC42NiwwLDAsMCw0Ljg2LTQuNEE0LjY1LDQuNjUsMCwwLDAsMjAuNzUsOS4yNVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+PHBhdGggZD0iTTE4LDJBMTYsMTYs''@;'; + put 'put ''MCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlptMi43NSwxOC41NkgxNVYyMmg4LjI5YTEsMSwwLDAsMSwwLDJIMTV2NWExLjI1LDEuMjUsMCwwLDEtMi41LDBWMjRIMTEuMjVhMSwxLDAsMCwxLDAtMmgxLjIxVjIwLjU2SDExLjI1YTEuMjUsMS4yNSwwLDAsMSwwLTIuNWgxLjIxVjhhMS4y''@;'; + put 'put ''NSwxLjI1LDAsMCwxLDEuMjUtMS4yNWg3YTcuMTQsNy4xNCwwLDAsMSw3LjM2LDYuOUE3LjE1LDcuMTUsMCwwLDEsMjAuNzUsMjAuNTZaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPicpLEwuQ2xyU2hhcGVFbXBsb3llZUdyb3VwPSgwLEUuY2xySWNvblNWRyko''@;'; + put 'put ''JzxwYXRoIGQ9Ik0xOC40MiwxNi4zMWE1LjcsNS43LDAsMSwxLDUuNzYtNS43QTUuNzQsNS43NCwwLDAsMSwxOC40MiwxNi4zMVptMC05LjRhMy43LDMuNywwLDEsMCwzLjc2LDMuN0EzLjc0LDMuNzQsMCwwLDAsMTguNDIsNi45MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxp''@;'; + put 'put ''bmUtcGF0aC0xIi8+XG4gIDxwYXRoIGQ9Ik0xOC40MiwxNi4zMWE1LjcsNS43LDAsMSwxLDUuNzYtNS43QTUuNzQsNS43NCwwLDAsMSwxOC40MiwxNi4zMVptMC05LjRhMy43LDMuNywwLDEsMCwzLjc2LDMuN0EzLjc0LDMuNzQsMCwwLDAsMTguNDIsNi45MVoiIGNsYXNzPSJjbHItaS1vdXRs''@;'; + put 'put ''aW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gIDxwYXRoIGQ9Ik0yMS45MSwxNy42NWEyMC42LDIwLjYsMCwwLDAtMTMsMkExLjc3LDEuNzcsMCwwLDAsOCwyMS4yNXYzLjU2YTEsMSwwLDAsMCwyLDBWMjEuMzhhMTguOTIsMTguOTIsMCwwLDEsMTItMS42OFoiIGNsYXNzPSJjbHItaS1v''@;'; + put 'put ''dXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gIDxwYXRoIGQ9Ik0zMywyMkgyNi4zVjIwLjUyYTEsMSwwLDAsMC0yLDBWMjJIMTdhMSwxLDAsMCwwLTEsMVYzM2ExLDEsMCwwLDAsMSwxSDMzYTEsMSwwLDAsMCwxLTFWMjNBMSwxLDAsMCwwLDMzLDIyWk0zMiwzMkgxOFYyNGg2LjN2''@;'; + put 'put ''LjQxYTEsMSwwLDAsMCwyLDBWMjRIMzJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIvPlxuICA8cmVjdCB4PSIyMS44MSIgeT0iMjcuNDIiIHdpZHRoPSI1Ljk2IiBoZWlnaHQ9IjEuNCIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRo''@;'; + put 'put ''LTUiLz5cbiAgPHBhdGggZD0iTTEwLjg0LDEyLjI0YTE4LDE4LDAsMCwwLTcuOTUsMkExLjY3LDEuNjcsMCwwLDAsMiwxNS43MXYzLjFhMSwxLDAsMCwwLDIsMHYtMi45YTE2LDE2LDAsMCwxLDcuNTgtMS42N0E3LjI4LDcuMjgsMCwwLDEsMTAuODQsMTIuMjRaIiBjbGFzcz0iY2xyLWktb3V0''@;'; + put 'put ''bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIvPlxuICA8cGF0aCBkPSJNMzMuMTEsMTQuMjNhMTcuOCwxNy44LDAsMCwwLTcuMTItMiw3LjQ2LDcuNDYsMCwwLDEtLjczLDJBMTUuODksMTUuODksMCwwLDEsMzIsMTUuOTF2Mi45YTEsMSwwLDEsMCwyLDB2LTMuMUExLjY3LDEuNjcsMCwwLDAs''@;'; + put 'put ''MzMuMTEsMTQuMjNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNyIvPlxuICA8cGF0aCBkPSJNMTAuNjYsMTAuNjFjMC0uMjMsMC0uNDUsMC0uNjdhMy4wNywzLjA3LDAsMCwxLC41NC02LjExLDMuMTUsMy4xNSwwLDAsMSwyLjIuODksOC4xNiw4LjE2LDAsMCwx''@;'; + put 'put ''LDEuNy0xLjA4LDUuMTMsNS4xMywwLDAsMC05LDMuMjcsNS4xLDUuMSwwLDAsMCw0LjcsNUE3LjQyLDcuNDIsMCwwLDEsMTAuNjYsMTAuNjFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtOCIvPlxuICA8cGF0aCBkPSJNMjQuNzcsMS44M2E1LjE3LDUuMTcsMCww''@;'; + put 'put ''LDAtMy42OSwxLjU1LDcuODcsNy44NywwLDAsMSwxLjksMSwzLjE0LDMuMTQsMCwwLDEsNC45MywyLjUyLDMuMDksMy4wOSwwLDAsMS0xLjc5LDIuNzcsNy4xNCw3LjE0LDAsMCwxLC4wNi45Myw3Ljg4LDcuODgsMCwwLDEtLjEsMS4yLDUuMSw1LjEsMCwwLDAsMy44My00LjlBNS4xMiw1LjEy''@;'; + put 'put ''LDAsMCwwLDI0Ljc3LDEuODNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtOSIvPlxuICBcbiAgPGVsbGlwc2UgY3g9IjE4IiBjeT0iMTEuMjgiIHJ4PSI0Ljc2IiByeT0iNC43IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG4gIDxw''@;'; + put 'put ''YXRoIGQ9Ik0xMC43OCwxMS43NWMuMTYsMCwuMzIsMCwuNDgsMCwwLS4xNSwwLS4yOCwwLS40M2E2LjcsNi43LDAsMCwxLDMuNzUtNiw0LjYyLDQuNjIsMCwxLDAtNC4yMSw2LjQ2WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIvPlxuICA8cGF0aCBkPSJNMjQuNzYs''@;'; + put 'put ''MTEuMjhjMCwuMTUsMCwuMjgsMCwuNDMuMTYsMCwuMzIsMCwuNDgsMEE0LjU4LDQuNTgsMCwxLDAsMjEsNS4yOSw2LjcsNi43LDAsMCwxLDI0Ljc2LDExLjI4WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIvPlxuICA8cGF0aCBkPSJNMjIuMjksMTYuNDVhMjEuNDUs''@;'; + put 'put ''MjEuNDUsMCwwLDEsNS43MSwyLDIuNzEsMi43MSwwLDAsMSwuNjguNTNIMzRWMTUuNTZhLjcyLjcyLDAsMCwwLS4zOC0uNjQsMTgsMTgsMCwwLDAtOC40LTIuMDVsLS42NiwwQTYuNjYsNi42NiwwLDAsMSwyMi4yOSwxNi40NVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRo''@;'; + put 'put ''LTQiLz5cbiAgPHBhdGggZD0iTTYuNTMsMjAuOTJBMi43NiwyLjc2LDAsMCwxLDgsMTguNDdhMjEuNDUsMjEuNDUsMCwwLDEsNS43MS0yLDYuNjYsNi42NiwwLDAsMS0yLjI3LTMuNTVsLS42NiwwYTE4LDE4LDAsMCwwLTguNCwyLjA1LjcyLjcyLDAsMCwwLS4zOC42NFYyMkg2LjUzWiIgY2xh''@;'; + put 'put ''c3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNSIvPlxuICA8cmVjdCB4PSIyMS40NiIgeT0iMjYuNjkiIHdpZHRoPSI1Ljk2IiBoZWlnaHQ9IjEuNCIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNiIvPlxuICA8cGF0aCBkPSJNMzIuODEsMjEuMjZIMjUuOTR2''@;'; + put 'put ''LTFhMSwxLDAsMCwwLTIsMHYxSDIyVjE4LjQzQTIwLjE3LDIwLjE3LDAsMCwwLDE4LDE4YTE5LjI3LDE5LjI3LDAsMCwwLTkuMDYsMi4yMi43Ni43NiwwLDAsMC0uNDEuNjh2NS42MWg3LjExdjYuMDlhMSwxLDAsMCwwLDEsMUgzMi44MWExLDEsMCwwLDAsMS0xVjIyLjI2QTEsMSwwLDAsMCwz''@;'; + put 'put ''Mi44MSwyMS4yNlptLTEsMTAuMzZIMTcuNjRWMjMuMjZoNi4zdi45MWExLDEsMCwwLDAsMiwwdi0uOTFoNS44N1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTciLz4nKSxMLkNsclNoYXBlRW1wbG95ZWU9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE2LjQzLDE2''@;'; + put 'put ''LjY5YTcsNywwLDEsMSw3LTdBNyw3LDAsMCwxLDE2LjQzLDE2LjY5Wm0wLTExLjkyYTUsNSwwLDEsMCw1LDVBNSw1LDAsMCwwLDE2LjQzLDQuNzdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICA8cGF0aCBkPSJNMjIsMTcuOUEyNS40MSwyNS40MSww''@;'; + put 'put ''LDAsMCw1Ljg4LDE5LjU3YTQuMDYsNC4wNiwwLDAsMC0yLjMxLDMuNjhWMjkuMmExLDEsMCwxLDAsMiwwVjIzLjI1YTIsMiwwLDAsMSwxLjE2LTEuODYsMjIuOTEsMjIuOTEsMCwwLDEsOS43LTIuMTEsMjMuNTgsMjMuNTgsMCwwLDEsNS41Ny42NloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNs''@;'; + put 'put ''ci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gIDxyZWN0IHg9IjIyLjE0IiB5PSIyNy40MSIgd2lkdGg9IjYuMTQiIGhlaWdodD0iMS40IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIvPlxuICA8cGF0aCBkPSJNMzMuMTcsMjEuNDdIMjh2Mmg0LjE3djguMzdIMThW''@;'; + put 'put ''MjMuNDdoNi4zdi40MmExLDEsMCwwLDAsMiwwVjIwYTEsMSwwLDAsMC0yLDB2MS40N0gxN2ExLDEsMCwwLDAtMSwxVjMyLjg0YTEsMSwwLDAsMCwxLDFIMzMuMTdhMSwxLDAsMCwwLDEtMVYyMi40N0ExLDEsMCwwLDAsMzMuMTcsMjEuNDdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1v''@;'; + put 'put ''dXRsaW5lLXBhdGgtNCIvPlxuICBcbiAgPGNpcmNsZSBjeD0iMTYuODYiIGN5PSI5LjczIiByPSI2LjQ2IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG4gIDxyZWN0IHg9IjIxIiB5PSIyOCIgd2lkdGg9IjciIGhlaWdodD0iMS40IiBjbGFzcz0iY2xyLWktc29s''@;'; + put 'put ''aWQgY2xyLWktc29saWQtcGF0aC0yIi8+XG4gIDxwYXRoIGQ9Ik0xNSwzMHYzYTEsMSwwLDAsMCwxLDFIMzNhMSwxLDAsMCwwLDEtMVYyM2ExLDEsMCwwLDAtMS0xSDI2VjIwLjUzYTEsMSwwLDAsMC0yLDBWMjJIMjJWMTguNDJBMzIuMTIsMzIuMTIsMCwwLDAsMTYuODYsMThhMjYsMjYsMCww''@;'; + put 'put ''LDAtMTEsMi4zOSwzLjI4LDMuMjgsMCwwLDAtMS44OCwzVjMwWm0xNywySDE3VjI0aDd2LjQyYTEsMSwwLDAsMCwyLDBWMjRoNloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiLz4nKSxMLkNsclNoYXBlRmFjdG9yeT0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJN''@;'; + put 'put ''MzMuNDcsNy4zN2ExLDEsMCwwLDAtMSwuMDZMMjMsMTMuNzdWOC4yNmExLDEsMCwwLDAtMS42NC0uNzdMMTMuNDgsMTRIMTBWNC42MmExLDEsMCwwLDAtLjc4LTFsLTQtLjlhMSwxLDAsMCwwLS44NS4yQTEsMSwwLDAsMCw0LDMuNzNWMTRIM2ExLDEsMCwwLDAtMSwxVjMxYTEsMSwwLDAsMCwx''@;'; + put 'put ''LDFIMzNhMSwxLDAsMCwwLDEtMVY4LjI2QTEsMSwwLDAsMCwzMy40Nyw3LjM3Wk02LDVsMiwuNDRWMTRINlpNMzIsMzBINFYxNmg5LjgzYTEsMSwwLDAsMCwuNjQtLjIzTDIxLDEwLjM3djUuMjhhMSwxLDAsMCwwLDEuNTYuODNMMzIsMTAuMTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHIt''@;'; + put 'put ''aS1vdXRsaW5lLXBhdGgtMSIvPlxuICA8cmVjdCB4PSI2IiB5PSIxNy45OSIgd2lkdGg9IjgiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgPHJlY3QgeD0iNiIgeT0iMjEuOTkiIHdpZHRoPSI4IiBoZWlnaHQ9IjIiIGNsYXNzPSJj''@;'; + put 'put ''bHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gIDxyZWN0IHg9IjYiIHk9IjI1Ljk5IiB3aWR0aD0iOCIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIvPlxuICA8cmVjdCB4PSIxOSIgeT0iMTguOTkiIHdpZHRoPSIyIiBo''@;'; + put 'put ''ZWlnaHQ9IjMiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01Ii8+XG4gIDxyZWN0IHg9IjE5IiB5PSIyNC45OSIgd2lkdGg9IjIiIGhlaWdodD0iMyIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiLz5cbiAgPHJlY3QgeD0iMjMiIHk9''@;'; + put 'put ''IjE4Ljk5IiB3aWR0aD0iMiIgaGVpZ2h0PSIzIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNyIvPlxuICA8cmVjdCB4PSIyMyIgeT0iMjQuOTkiIHdpZHRoPSIyIiBoZWlnaHQ9IjMiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC04Ii8+''@;'; + put 'put ''XG4gIDxyZWN0IHg9IjI3IiB5PSIxOC45OSIgd2lkdGg9IjIiIGhlaWdodD0iMyIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTkiLz5cbiAgPHJlY3QgeD0iMjciIHk9IjI0Ljk5IiB3aWR0aD0iMiIgaGVpZ2h0PSIzIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHIt''@;'; + put 'put ''aS1vdXRsaW5lLXBhdGgtMTAiLz5cbiAgXG4gIDxwYXRoIGQ9Ik0zMi40NSw4LjQ0LDIyLDE1LjNWOS41MWExLDEsMCwwLDAtMS42My0uNzhMMTQuMDcsMTRIMTBWNC4wNkw0LDIuNzFWMTRIMlYzMWExLDEsMCwwLDAsMSwxSDMzYTEsMSwwLDAsMCwxLTFWOS4yN0ExLDEsMCwwLDAsMzIuNDUs''@;'; + put 'put ''OC40NFpNMTQsMjlINlYyN2g4Wm0wLTRINlYyM2g4Wm0wLTRINlYxOWg4Wm04LDhIMjBWMjZoMlptMC02SDIwVjIwaDJabTQsNkgyNFYyNmgyWm0wLTZIMjRWMjBoMlptNCw2SDI4VjI2aDJabTAtNkgyOFYyMGgyWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPicp''@;'; + put 'put ''LEwuQ29tbWVyY2VTaGFwZXM9e2NhbGN1bGF0b3I6TC5DbHJTaGFwZUNhbGN1bGF0b3IsInBpZ2d5LWJhbmsiOkwuQ2xyU2hhcGVQaWdneUJhbmssInNob3BwaW5nLWJhZyI6TC5DbHJTaGFwZVNob3BwaW5nQmFnLCJzaG9wcGluZy1jYXJ0IjpMLkNsclNoYXBlU2hvcHBpbmdDYXJ0LHdhbGxl''@;'; + put 'put ''dDpMLkNsclNoYXBlV2FsbGV0LHN0b3JlOkwuQ2xyU2hhcGVTdG9yZSxldXJvOkwuQ2xyU2hhcGVFdXJvLGRvbGxhcjpMLkNsclNoYXBlRG9sbGFyLHBlc286TC5DbHJTaGFwZVBlc28sImNyZWRpdC1jYXJkIjpMLkNsclNoYXBlQ3JlZGl0Q2FyZCxiYW5rOkwuQ2xyU2hhcGVCYW5rLCJkb2xs''@;'; + put 'put ''YXItYmlsbCI6TC5DbHJTaGFwZURvbGxhckJpbGwsImUtY2hlY2siOkwuQ2xyU2hhcGVFQ2hlY2sscG91bmQ6TC5DbHJTaGFwZVBvdW5kLHJ1cGVlOkwuQ2xyU2hhcGVSdXBlZSx3b246TC5DbHJTaGFwZVdvbix5ZW46TC5DbHJTaGFwZVllbixiaXRjb2luOkwuQ2xyU2hhcGVCaXRjb2luLHJ1''@;'; + put 'put ''YmxlOkwuQ2xyU2hhcGVSdWJsZSwiY29pbi1iYWciOkwuQ2xyU2hhcGVDb2luQmFnLCJlbXBsb3llZS1ncm91cCI6TC5DbHJTaGFwZUVtcGxveWVlR3JvdXAsZW1wbG95ZWU6TC5DbHJTaGFwZUVtcGxveWVlLGZhY3Rvcnk6TC5DbHJTaGFwZUZhY3Rvcnl9LE9iamVjdC5kZWZpbmVQcm9wZXJ0''@;'; + put 'put ''eShMLkNvbW1lcmNlU2hhcGVzLCJzYXZpbmdzIiwoMCxCLmRlc2NyaXB0b3JDb25maWcpKEwuQ29tbWVyY2VTaGFwZXNbInBpZ2d5LWJhbmsiXSkpLCJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiZ3aW5kb3cuaGFzT3duUHJvcGVydHkoIkNsYXJpdHlJY29ucyIpJiZ3aW5kb3cuQ2xhcml0''@;'; + put 'put ''eUljb25zLmFkZChMLkNvbW1lcmNlU2hhcGVzKX0sIi4vcHJvamVjdHMvaWNvbnMvc3JjL3NoYXBlcy9jb3JlLXNoYXBlcy50cyI6ZnVuY3Rpb24oSmUsTCxtZSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShMLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxMLkNvcmVTaGFw''@;'; + put 'put ''ZXM9TC5DbHJTaGFwZUFycm93PUwuQ2xyU2hhcGVTdGVwRm9yd2FyZDI9TC5DbHJTaGFwZUV5ZUhpZGU9TC5DbHJTaGFwZUV5ZT1MLkNsclNoYXBlRXZlbnQ9TC5DbHJTaGFwZUNhbGVuZGFyPUwuQ2xyU2hhcGVBbmdsZURvdWJsZT1MLkNsclNoYXBlVmlld0NvbHVtbnM9TC5DbHJTaGFwZVNl''@;'; + put 'put ''YXJjaD1MLkNsclNoYXBlVm1CdWc9TC5DbHJTaGFwZUZpbHRlckdyaWRDaXJjbGU9TC5DbHJTaGFwZUZpbHRlckdyaWQ9TC5DbHJTaGFwZUVsbGlwc2lzVmVydGljYWw9TC5DbHJTaGFwZUVsbGlwc2lzSG9yaXpvbnRhbD1MLkNsclNoYXBlQ2xvdWQ9TC5DbHJTaGFwZUltYWdlPUwuQ2xyU2hh''@;'; + put 'put ''cGVCZWxsPUwuQ2xyU2hhcGVGb2xkZXJPcGVuPUwuQ2xyU2hhcGVGb2xkZXI9TC5DbHJTaGFwZUFuZ2xlPUwuQ2xyU2hhcGVVc2VyPUwuQ2xyU2hhcGVCYXJzPUwuQ2xyU2hhcGVIZWxwSW5mbz1MLkNsclNoYXBlV2FybmluZ1N0YW5kYXJkPUwuQ2xyU2hhcGVFcnJvclN0YW5kYXJkPUwuQ2xy''@;'; + put 'put ''U2hhcGVTdWNjZXNzU3RhbmRhcmQ9TC5DbHJTaGFwZUluZm9TdGFuZGFyZD1MLkNsclNoYXBlSW5mb0NpcmNsZT1MLkNsclNoYXBlQ2hlY2tDaXJjbGU9TC5DbHJTaGFwZUV4Y2xhbWF0aW9uQ2lyY2xlPUwuQ2xyU2hhcGVFeGNsYW1hdGlvblRyaWFuZ2xlPUwuQ2xyU2hhcGVUaW1lcz1MLkNs''@;'; + put 'put ''clNoYXBlQ2hlY2s9TC5DbHJTaGFwZUNvZz1MLkNsclNoYXBlSG9tZT1MLkNsclNoYXBlVW5rbm93blN0YXR1cz12b2lkIDA7dmFyIEI9bWUoIi4vcHJvamVjdHMvaWNvbnMvc3JjL3V0aWxzL2Rlc2NyaXB0b3ItY29uZmlnLnRzIiksRT1tZSgiLi9wcm9qZWN0cy9pY29ucy9zcmMvdXRpbHMv''@;'; + put 'put ''c3ZnLXRhZy1nZW5lcmF0b3IudHMiKTtMLkNsclNoYXBlVW5rbm93blN0YXR1cz0oMCxFLmNsckljb25TVkcpKCc8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBjeD0iMTcuNTgiIGN5PSIyNi4yMyIgcj0iMS40Ii8+XG4gICAgICAgICAgICAgICAg''@;'; + put 'put ''PHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0yNC43LDEzYTUuMTgsNS4xOCwwLDAsMC0yLjE2LTMuNTYsNy4yNiw3LjI2LDAsMCwwLTUuNzEtMS4wOUExMS4zNCwxMS4zNCwwLDAsMCwxMiwxMC40NCwxLDEsMCwxLDAsMTMuMjYsMTJhOS4zMiw5''@;'; + put 'put ''LjMyLDAsMCwxLDMuOTQtMS43Miw1LjI5LDUuMjksMCwwLDEsNC4xNi43NCwzLjIxLDMuMjEsMCwwLDEsMS4zNSwyLjE5Yy4zMywyLjY5LTMuMTksMy43NS01LjMyLDQuMTRsLS44Mi4xNXY0LjM2YTEsMSwwLDAsMCwyLDBWMTkuMTdDMjQuNjEsMTcuNzksMjQuODgsMTQuNDEsMjQuNywxM1oi''@;'; + put 'put ''Lz4nKSxMLkNsclNoYXBlSG9tZT0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMzLjcxLDE3LjI5bC0xNS0xNWExLDEsMCwwLDAtMS40MSwwbC0xNSwxNWExLDEsMCwwLDAsMS40MSwxLjQxTDE4LDQuNDEsMzIu''@;'; + put 'put ''MjksMTguNzFhMSwxLDAsMCwwLDEuNDEtMS40MVoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTI4LDMyaC01VjIySDEzVjMySDhWMThMNiwyMFYzMmEyLDIsMCwwLDAsMiwyaDdWMjRoNlYzNGg3YTIsMiww''@;'; + put 'put ''LDAsMCwyLTJWMTkuNzZsLTItMloiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzMsMTlhMSwxLDAsMCwxLS43MS0uMjlMMTgsNC40MSwzLjcxLDE4LjcxYTEsMSwwLDAsMS0xLjQxLTEuNDFsMTUtMTVhMSwxLDAs''@;'; + put 'put ''MCwxLDEuNDEsMGwxNSwxNUExLDEsMCwwLDEsMzMsMTlaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgZD0iTTE4LDcuNzksNiwxOS44M1YzMmEyLDIsMCwwLDAsMiwyaDdWMjRoNlYzNGg3YTIsMiwwLDAsMCwyLTJWMTku''@;'; + put 'put ''NzZaIi8+JyksTC5DbHJTaGFwZUNvZz0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTE4LjEsMTFjLTMuOSwwLTcsMy4xLTcsN3MzLjEsNyw3LDdjMy45LDAsNy0zLjEsNy03UzIyLDExLDE4LjEsMTF6IE0xOC4x''@;'; + put 'put ''LDIzYy0yLjgsMC01LTIuMi01LTVzMi4yLTUsNS01YzIuOCwwLDUsMi4yLDUsNVMyMC45LDIzLDE4LjEsMjN6Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0zMi44LDE0LjdMMzAsMTMuOGwtMC42LTEuNWwx''@;'; + put 'put ''LjQtMi42YzAuMy0wLjYsMC4yLTEuNC0wLjMtMS45bC0yLjQtMi40Yy0wLjUtMC41LTEuMy0wLjYtMS45LTAuM2wtMi42LDEuNGwtMS41LTAuNmwtMC45LTIuOEMyMSwyLjUsMjAuNCwyLDE5LjcsMmgtMy40Yy0wLjcsMC0xLjMsMC41LTEuNCwxLjJMMTQsNmMtMC42LDAuMS0xLjEsMC4zLTEu''@;'; + put 'put ''NiwwLjZMOS44LDUuMkM5LjIsNC45LDguNCw1LDcuOSw1LjVMNS41LDcuOUM1LDguNCw0LjksOS4yLDUuMiw5LjhsMS4zLDIuNWMtMC4yLDAuNS0wLjQsMS4xLTAuNiwxLjZsLTIuOCwwLjlDMi41LDE1LDIsMTUuNiwyLDE2LjN2My40YzAsMC43LDAuNSwxLjMsMS4yLDEuNUw2LDIyLjFsMC42''@;'; + put 'put ''LDEuNWwtMS40LDIuNmMtMC4zLDAuNi0wLjIsMS40LDAuMywxLjlsMi40LDIuNGMwLjUsMC41LDEuMywwLjYsMS45LDAuM2wyLjYtMS40bDEuNSwwLjZsMC45LDIuOWMwLjIsMC42LDAuOCwxLjEsMS41LDEuMWgzLjRjMC43LDAsMS4zLTAuNSwxLjUtMS4xbDAuOS0yLjlsMS41LTAuNmwyLjYs''@;'; + put 'put ''MS40YzAuNiwwLjMsMS40LDAuMiwxLjktMC4zbDIuNC0yLjRjMC41LTAuNSwwLjYtMS4zLDAuMy0xLjlsLTEuNC0yLjZsMC42LTEuNWwyLjktMC45YzAuNi0wLjIsMS4xLTAuOCwxLjEtMS41di0zLjRDMzQsMTUuNiwzMy41LDE0LjksMzIuOCwxNC43eiBNMzIsMTkuNGwtMy42LDEuMUwyOC4z''@;'; + put 'put ''LDIxYy0wLjMsMC43LTAuNiwxLjQtMC45LDIuMWwtMC4zLDAuNWwxLjgsMy4zbC0yLDJsLTMuMy0xLjhsLTAuNSwwLjNjLTAuNywwLjQtMS40LDAuNy0yLjEsMC45bC0wLjUsMC4xTDE5LjQsMzJoLTIuOGwtMS4xLTMuNkwxNSwyOC4zYy0wLjctMC4zLTEuNC0wLjYtMi4xLTAuOWwtMC41LTAu''@;'; + put 'put ''M2wtMy4zLDEuOGwtMi0ybDEuOC0zLjNsLTAuMy0wLjVjLTAuNC0wLjctMC43LTEuNC0wLjktMi4xbC0wLjEtMC41TDQsMTkuNHYtMi44bDMuNC0xbDAuMi0wLjVjMC4yLTAuOCwwLjUtMS41LDAuOS0yLjJsMC4zLTAuNUw3LjEsOS4xbDItMmwzLjIsMS44bDAuNS0wLjNjMC43LTAuNCwxLjQt''@;'; + put 'put ''MC43LDIuMi0wLjlsMC41LTAuMkwxNi42LDRoMi44bDEuMSwzLjVMMjEsNy43YzAuNywwLjIsMS40LDAuNSwyLjEsMC45bDAuNSwwLjNsMy4zLTEuOGwyLDJsLTEuOCwzLjNsMC4zLDAuNWMwLjQsMC43LDAuNywxLjQsMC45LDIuMWwwLjEsMC41bDMuNiwxLjFWMTkuNHoiLz5cbiAgICAgICAg''@;'; + put 'put ''ICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0xMS4xLDE4YzAsMy45LDMuMSw3LDcsN2MzLjksMCw3LTMuMSw3LTdzLTMuMS03LTctN0MxNC4yLDExLDExLjEsMTQuMSwxMS4xLDE4eiBNMjMuMSwxOGMw''@;'; + put 'put ''LDIuOC0yLjIsNS01LDVjLTIuOCwwLTUtMi4yLTUtNXMyLjItNSw1LTVDMjAuOSwxMywyMy4xLDE1LjIsMjMuMSwxOHoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiIGQ9Ik0zMi44LDE0''@;'; + put 'put ''LjdMMzAsMTMuOGwtMC4xLTAuM2MtMC44LDAtMS42LTAuMi0yLjQtMC40YzAuMywwLjYsMC42LDEuMywwLjgsMS45bDAuMSwwLjVsMy42LDEuMXYyLjhsLTMuNiwxLjFMMjguMywyMWMtMC4zLDAuNy0wLjYsMS40LTAuOSwyLjFsLTAuMywwLjVsMS44LDMuM2wtMiwybC0zLjMtMS44bC0wLjUs''@;'; + put 'put ''MC4zYy0wLjcsMC40LTEuNCwwLjctMi4xLDAuOWwtMC41LDAuMUwxOS40LDMyaC0yLjhsLTEuMS0zLjZMMTUsMjguM2MtMC43LTAuMy0xLjQtMC42LTIuMS0wLjlsLTAuNS0wLjNsLTMuMywxLjhsLTItMmwxLjgtMy4zbC0wLjMtMC41Yy0wLjQtMC43LTAuNy0xLjQtMC45LTIuMWwtMC4xLTAu''@;'; + put 'put ''NUw0LDE5LjR2LTIuOGwzLjQtMWwwLjItMC41YzAuMi0wLjgsMC41LTEuNSwwLjktMi4ybDAuMy0wLjVMNy4xLDkuMWwyLTJsMy4yLDEuOGwwLjUtMC4zYzAuNy0wLjQsMS40LTAuNywyLjItMC45bDAuNS0wLjJMMTYuNiw0aDIuOGwxLjEsMy41TDIxLDcuN2MwLjcsMC4yLDEuMywwLjUsMS45''@;'; + put 'put ''LDAuOGMtMC4zLTAuOC0wLjQtMS42LTAuNC0yLjVsLTAuNC0wLjJsLTAuOS0yLjhDMjEsMi41LDIwLjQsMiwxOS43LDJoLTMuNGMtMC43LDAtMS4zLDAuNS0xLjQsMS4yTDE0LDZjLTAuNiwwLjEtMS4xLDAuMy0xLjYsMC42TDkuOCw1LjJDOS4yLDQuOSw4LjQsNSw3LjksNS41TDUuNSw3LjlD''@;'; + put 'put ''NSw4LjQsNC45LDkuMiw1LjIsOS44bDEuMywyLjVjLTAuMiwwLjUtMC40LDEuMS0wLjYsMS42bC0yLjgsMC45QzIuNSwxNSwyLDE1LjYsMiwxNi4zdjMuNGMwLDAuNywwLjUsMS4zLDEuMiwxLjVMNiwyMi4xbDAuNiwxLjVsLTEuNCwyLjZjLTAuMywwLjYtMC4yLDEuNCwwLjMsMS45bDIuNCwy''@;'; + put 'put ''LjRjMC41LDAuNSwxLjMsMC42LDEuOSwwLjNsMi42LTEuNGwxLjUsMC42bDAuOSwyLjljMC4yLDAuNiwwLjgsMS4xLDEuNSwxLjFoMy40YzAuNywwLDEuMy0wLjUsMS41LTEuMWwwLjktMi45bDEuNS0wLjZsMi42LDEuNGMwLjYsMC4zLDEuNCwwLjIsMS45LTAuM2wyLjQtMi40YzAuNS0wLjUs''@;'; + put 'put ''MC42LTEuMywwLjMtMS45bC0xLjQtMi42bDAuNi0xLjVsMi45LTAuOWMwLjYtMC4yLDEuMS0wLjgsMS4xLTEuNXYtMy40QzM0LDE1LjYsMzMuNSwxNC45LDMyLjgsMTQuN3oiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0''@;'; + put 'put ''bGluZS1wYXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiBkPSJNMzMuNywxNS40aC01LjN2MC4xbDMu''@;'; + put 'put ''NiwxLjF2Mi44bC0zLjYsMS4xTDI4LjMsMjFjLTAuMywwLjctMC42LDEuNC0wLjksMi4xbC0wLjMsMC41bDEuOCwzLjNsLTIsMmwtMy4zLTEuOGwtMC41LDAuM2MtMC43LDAuNC0xLjQsMC43LTIuMSwwLjlsLTAuNSwwLjFMMTkuNCwzMmgtMi44bC0xLjEtMy42TDE1LDI4LjNjLTAuNy0wLjMt''@;'; + put 'put ''MS40LTAuNi0yLjEtMC45bC0wLjUtMC4zbC0zLjMsMS44bC0yLTJsMS44LTMuM2wtMC4zLTAuNWMtMC40LTAuNy0wLjctMS40LTAuOS0yLjFsLTAuMS0wLjVMNCwxOS40di0yLjhsMy40LTFsMC4yLTAuNWMwLjItMC44LDAuNS0xLjUsMC45LTIuMmwwLjMtMC41TDcuMSw5LjFsMi0ybDMuMiwx''@;'; + put 'put ''LjhsMC41LTAuM2MwLjctMC40LDEuNC0wLjcsMi4yLTAuOWwwLjUtMC4yTDE2LjYsNGgyLjhsMS4xLDMuNGwxLjQtMi4zbC0wLjYtMkMyMSwyLjQsMjAuNCwyLDE5LjcsMmgtMy40Yy0wLjcsMC0xLjMsMC41LTEuNCwxLjJMMTQsNmMtMC42LDAuMS0xLjEsMC4zLTEuNiwwLjZMOS44LDUuMkM5''@;'; + put 'put ''LjIsNC45LDguNCw1LDcuOSw1LjVMNS41LDcuOUM1LDguNCw0LjksOS4yLDUuMiw5LjhsMS4zLDIuNWMtMC4yLDAuNS0wLjQsMS4xLTAuNiwxLjZsLTIuOCwwLjlDMi41LDE1LDIsMTUuNiwyLDE2LjN2My40YzAsMC43LDAuNSwxLjMsMS4yLDEuNUw2LDIyLjFsMC42LDEuNWwtMS40LDIuNmMt''@;'; + put 'put ''MC4zLDAuNi0wLjIsMS40LDAuMywxLjlsMi40LDIuNGMwLjUsMC41LDEuMywwLjYsMS45LDAuM2wyLjYtMS40bDEuNSwwLjZsMC45LDIuOWMwLjIsMC42LDAuOCwxLjEsMS41LDEuMWgzLjRjMC43LDAsMS4zLTAuNSwxLjUtMS4xbDAuOS0yLjlsMS41LTAuNmwyLjYsMS40YzAuNiwwLjMsMS40''@;'; + put 'put ''LDAuMiwxLjktMC4zbDIuNC0yLjRjMC41LTAuNSwwLjYtMS4zLDAuMy0xLjlsLTEuNC0yLjZsMC42LTEuNWwyLjktMC45YzAuNi0wLjIsMS4xLTAuOCwxLjEtMS41di0zLjRDMzQsMTYsMzMuOSwxNS43LDMzLjcsMTUuNHoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWkt''@;'; + put 'put ''b3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIgZD0iTTE4LjEsMjNjLTIuOCwwLTUtMi4yLTUtNXMyLjItNSw1LTVjMC4yLDAsMC41LDAsMC43LDAuMWMtMC4yLTAuNi0wLjMtMS4zLTAuMi0yaC0wLjVjLTMuOSwwLTcsMy4xLTcsN2MwLDMuOSwzLjEsNyw3''@;'; + put 'put ''LDdjMy45LDAsNy0zLjEsNy03YzAtMC45LTAuMi0xLjgtMC41LTIuNmgtMi4yYzAuNSwwLjgsMC43LDEuNiwwLjcsMi41QzIzLjEsMjAuOCwyMC45LDIzLDE4LjEsMjN6Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGlu''@;'; + put 'put ''ZS1wYXRoLTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi45LDEuMUwyMS4xLDExYy0wLjQsMC42LTAuMiwxLjQsMC4zLDEuOGMwLjIsMC4yLDAuNSwwLjIsMC44LDAuMmgxMS41YzAuNywwLDEuMy0wLjUsMS4zLTEuMmMwLTAuMy0wLjEtMC41LTAuMi0wLjhsLTUuNy05LjljLTAuNC0w''@;'; + put 'put ''LjYtMS4xLTAuOC0xLjgtMC41QzI3LjEsMC44LDI3LDEsMjYuOSwxLjF6Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTMyLjU3LDE1LjcybC0zLjM1LTFhMTEuNjUsMTEuNjUsMCwwLDAtLjk1LTIuMzNsMS42NC0z''@;'; + put 'put ''LjA3YS42MS42MSwwLDAsMC0uMTEtLjcyTDI3LjQxLDYuMmEuNjEuNjEsMCwwLDAtLjcyLS4xMUwyMy42NCw3LjcyYTExLjYyLDExLjYyLDAsMCwwLTIuMzYtMWwtMS0zLjMxQS42MS42MSwwLDAsMCwxOS42OSwzSDE2LjMxYS42MS42MSwwLDAsMC0uNTguNDNsLTEsMy4zYTExLjYzLDExLjYz''@;'; + put 'put ''LDAsMCwwLTIuMzgsMWwtMy0xLjYyYS42MS42MSwwLDAsMC0uNzIuMTFMNi4yLDguNTlhLjYxLjYxLDAsMCwwLS4xMS43MmwxLjYyLDNhMTEuNjMsMTEuNjMsMCwwLDAtMSwyLjM3bC0zLjMxLDFhLjYxLjYxLDAsMCwwLS40My41OHYzLjM4YS42MS42MSwwLDAsMCwuNDMuNThsMy4zMywxYTEx''@;'; + put 'put ''LjYyLDExLjYyLDAsMCwwLDEsMi4zM0w2LjA5LDI2LjY5YS42MS42MSwwLDAsMCwuMTEuNzJMOC41OSwyOS44YS42MS42MSwwLDAsMCwuNzIuMTFsMy4wOS0xLjY1YTExLjY1LDExLjY1LDAsMCwwLDIuMy45NGwxLDMuMzdhLjYxLjYxLDAsMCwwLC41OC40M2gzLjM4YS42MS42MSwwLDAsMCwu''@;'; + put 'put ''NTgtLjQzbDEtMy4zOGExMS42MywxMS42MywwLDAsMCwyLjI4LS45NGwzLjExLDEuNjZhLjYxLjYxLDAsMCwwLC43Mi0uMTFsMi4zOS0yLjM5YS42MS42MSwwLDAsMCwuMTEtLjcybC0xLjY2LTMuMWExMS42MywxMS42MywwLDAsMCwuOTUtMi4yOWwzLjM3LTFhLjYxLjYxLDAsMCwwLC40My0u''@;'; + put 'put ''NThWMTYuMzFBLjYxLjYxLDAsMCwwLDMyLjU3LDE1LjcyWk0xOCwyMy41QTUuNSw1LjUsMCwxLDEsMjMuNSwxOCw1LjUsNS41LDAsMCwxLDE4LDIzLjVaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRn''@;'; + put 'put ''ZWQiIGQ9Ik0zMi41NywxNS43MmwtMy4zNS0xYTEyLjEyLDEyLjEyLDAsMCwwLS40Ny0xLjMyLDcuNDksNy40OSwwLDAsMS02LjE0LTYuMTYsMTEuODIsMTEuODIsMCwwLDAtMS4zMy0uNDhsLTEtMy4zMUEuNjEuNjEsMCwwLDAsMTkuNjksM0gxNi4zMWEuNjEuNjEsMCwwLDAtLjU4LjQzbC0x''@;'; + put 'put ''LDMuM2ExMS42MywxMS42MywwLDAsMC0yLjM4LDFsLTMtMS42MmEuNjEuNjEsMCwwLDAtLjcyLjExTDYuMiw4LjU5YS42MS42MSwwLDAsMC0uMTEuNzJsMS42MiwzYTExLjYzLDExLjYzLDAsMCwwLTEsMi4zN2wtMy4zMSwxYS42MS42MSwwLDAsMC0uNDMuNTh2My4zOGEuNjEuNjEsMCwwLDAs''@;'; + put 'put ''LjQzLjU4bDMuMzMsMWExMS42MiwxMS42MiwwLDAsMCwxLDIuMzNMNi4wOSwyNi42OWEuNjEuNjEsMCwwLDAsLjExLjcyTDguNTksMjkuOGEuNjEuNjEsMCwwLDAsLjcyLjExbDMuMDktMS42NWExMS42NSwxMS42NSwwLDAsMCwyLjMuOTRsMSwzLjM3YS42MS42MSwwLDAsMCwuNTguNDNoMy4z''@;'; + put 'put ''OGEuNjEuNjEsMCwwLDAsLjU4LS40M2wxLTMuMzhhMTEuNjMsMTEuNjMsMCwwLDAsMi4yOC0uOTRsMy4xMSwxLjY2YS42MS42MSwwLDAsMCwuNzItLjExbDIuMzktMi4zOWEuNjEuNjEsMCwwLDAsLjExLS43MmwtMS42Ni0zLjFhMTEuNjMsMTEuNjMsMCwwLDAsLjk1LTIuMjlsMy4zNy0xYS42''@;'; + put 'put ''MS42MSwwLDAsMCwuNDMtLjU4VjE2LjMxQS42MS42MSwwLDAsMCwzMi41NywxNS43MlpNMTgsMjMuNUE1LjUsNS41LDAsMSwxLDIzLjUsMTgsNS41LDUuNSwwLDAsMSwxOCwyMy41WiIvPlxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWkt''@;'; + put 'put ''c29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiBkPSJNMzIuNTcsMTUuNzIsMzEuNSwxNS40SDIy''@;'; + put 'put ''Ljg1QTUuNSw1LjUsMCwxLDEsMTgsMTIuNWE1LjUzLDUuNTMsMCwwLDEsLjY1LDBBMy42OCwzLjY4LDAsMCwxLDE5LDkuODlsMi4wOS0zLjYyLS44Ni0yLjgzQS42MS42MSwwLDAsMCwxOS42OSwzSDE2LjMxYS42MS42MSwwLDAsMC0uNTguNDNsLTEsMy4zYTExLjYzLDExLjYzLDAsMCwwLTIu''@;'; + put 'put ''MzgsMWwtMy0xLjYyYS42MS42MSwwLDAsMC0uNzIuMTFMNi4yLDguNTlhLjYxLjYxLDAsMCwwLS4xMS43MmwxLjYyLDNhMTEuNjMsMTEuNjMsMCwwLDAtMSwyLjM3bC0zLjMxLDFhLjYxLjYxLDAsMCwwLS40My41OHYzLjM4YS42MS42MSwwLDAsMCwuNDMuNThsMy4zMywxYTExLjYyLDExLjYy''@;'; + put 'put ''LDAsMCwwLDEsMi4zM0w2LjA5LDI2LjY5YS42MS42MSwwLDAsMCwuMTEuNzJMOC41OSwyOS44YS42MS42MSwwLDAsMCwuNzIuMTFsMy4wOS0xLjY1YTExLjY1LDExLjY1LDAsMCwwLDIuMy45NGwxLDMuMzdhLjYxLjYxLDAsMCwwLC41OC40M2gzLjM4YS42MS42MSwwLDAsMCwuNTgtLjQzbDEt''@;'; + put 'put ''My4zOGExMS42MywxMS42MywwLDAsMCwyLjI4LS45NGwzLjExLDEuNjZhLjYxLjYxLDAsMCwwLC43Mi0uMTFsMi4zOS0yLjM5YS42MS42MSwwLDAsMCwuMTEtLjcybC0xLjY2LTMuMWExMS42MywxMS42MywwLDAsMCwuOTUtMi4yOWwzLjM3LTFhLjYxLjYxLDAsMCwwLC40My0uNThWMTYuMzFB''@;'; + put 'put ''LjYxLjYxLDAsMCwwLDMyLjU3LDE1LjcyWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4y''@;'; + put 'put ''MywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiLz4nKSxMLkNsclNoYXBlQ2hlY2s9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9''@;'; + put 'put ''Ik0xMy43MiwyNy42OSwzLjI5LDE3LjI3YTEsMSwwLDAsMSwxLjQxLTEuNDFsOSw5TDMxLjI5LDcuMjlhMSwxLDAsMCwxLDEuNDEsMS40MVoiLz4nKSxMLkNsclNoYXBlVGltZXM9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRo''@;'; + put 'put ''LTEiIGQ9Ik0xOS40MSwxOGw4LjI5LTguMjlhMSwxLDAsMCwwLTEuNDEtMS40MUwxOCwxNi41OSw5LjcxLDguMjlBMSwxLDAsMCwwLDguMjksOS43MUwxNi41OSwxOCw4LjI5LDI2LjI5YTEsMSwwLDEsMCwxLjQxLDEuNDFMMTgsMTkuNDFsOC4yOSw4LjI5YTEsMSwwLDAsMCwxLjQxLTEuNDFa''@;'; + put 'put ''Ii8+JyksTC5DbHJTaGFwZUV4Y2xhbWF0aW9uVHJpYW5nbGU9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xOCwyMS4zMmExLjMsMS4zLDAsMCwwLDEuMy0xLjNWMTRhMS4zLDEuMywwLDEsMC0yLjYsMHY2QTEu''@;'; + put 'put ''MywxLjMsMCwwLDAsMTgsMjEuMzJaIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgY3g9IjE3Ljk1IiBjeT0iMjQuMjciIHI9IjEuNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRs''@;'; + put 'put ''aW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJNMzAuMzMsMjUuNTQsMjAuNTksNy42YTMsMywwLDAsMC01LjI3LDBMNS41NywyNS41NEEzLDMsMCwwLDAsOC4yMSwzMEgyNy42OWEzLDMsMCwwLDAsMi42NC00LjQzWm0tMS43OCwxLjk0YTEsMSwwLDAsMS0uODYuNDlIOC4yMWExLDEsMCww''@;'; + put 'put ''LDEtLjg4LTEuNDhMMTcuMDcsOC41NWExLDEsMCwwLDEsMS43NiwwbDkuNzQsMTcuOTRBMSwxLDAsMCwxLDI4LjU1LDI3LjQ4WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zMC4zMywyNS41NCwyMC41OSw3LjZh''@;'; + put 'put ''MywzLDAsMCwwLTUuMjcsMEw1LjU3LDI1LjU0QTMsMywwLDAsMCw4LjIxLDMwSDI3LjY5YTMsMywwLDAsMCwyLjY0LTQuNDNaTTE2LjQ2LDEyLjc0YTEuNDksMS40OSwwLDAsMSwzLDB2Ni44OWExLjQ5LDEuNDksMCwxLDEtMywwWk0xOCwyNi4yNWExLjcyLDEuNzIsMCwxLDEsMS43Mi0xLjcy''@;'; + put 'put ''QTEuNzIsMS43MiwwLDAsMSwxOCwyNi4yNVoiLz4nKSxMLkNsclNoYXBlRXhjbGFtYXRpb25DaXJjbGU9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xOCw2QTEyLDEyLDAsMSwwLDMwLDE4LDEyLDEyLDAsMCww''@;'; + put 'put ''LDE4LDZabTAsMjJBMTAsMTAsMCwxLDEsMjgsMTgsMTAsMTAsMCwwLDEsMTgsMjhaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0xOCwyMC4wN2ExLjMsMS4zLDAsMCwxLTEuMy0xLjN2LTZhMS4zLDEuMyww''@;'; + put 'put ''LDEsMSwyLjYsMHY2QTEuMywxLjMsMCwwLDEsMTgsMjAuMDdaIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgY3g9IjE3Ljk1IiBjeT0iMjMuMDIiIHI9IjEuNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNs''@;'; + put 'put ''YXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0xOCw2QTEyLDEyLDAsMSwwLDMwLDE4LDEyLDEyLDAsMCwwLDE4LDZabS0xLjQ5LDZhMS40OSwxLjQ5LDAsMCwxLDMsMHY2Ljg5YTEuNDksMS40OSwwLDEsMS0zLDBaTTE4LDI1LjVhMS43MiwxLjcyLDAsMSwxLDEuNzIt''@;'; + put 'put ''MS43MkExLjcyLDEuNzIsMCwwLDEsMTgsMjUuNVoiLz4nKSxMLkNsclNoYXBlQ2hlY2tDaXJjbGU9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xOCw2QTEyLDEyLDAsMSwwLDMwLDE4LDEyLDEyLDAsMCwwLDE4''@;'; + put 'put ''LDZabTAsMjJBMTAsMTAsMCwxLDEsMjgsMTgsMTAsMTAsMCwwLDEsMTgsMjhaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0xNi4zNCwyMy43NGwtNS01YTEsMSwwLDAsMSwxLjQxLTEuNDFsMy41OSwzLjU5''@;'; + put 'put ''LDYuNzgtNi43OGExLDEsMCwwLDEsMS40MSwxLjQxWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zMCwxOEExMiwxMiwwLDEsMSwxOCw2LDEyLDEyLDAsMCwxLDMwLDE4Wm0tNC43Ny0yLjE2YTEuNCwxLjQsMCww''@;'; + put 'put ''LDAtMi0ybC02Ljc3LDYuNzdMMTMsMTcuMTZhMS40LDEuNCwwLDAsMC0yLDJsNS40NSw1LjQ1WiIvPicpLEwuQ2xyU2hhcGVJbmZvQ2lyY2xlPSgwLEUuY2xySWNvblNWRykoJzxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiICBjeD0iMTcuOTMiIGN5''@;'; + put 'put ''PSIxMS45IiByPSIxLjQiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgIGQ9Ik0yMSwyM0gxOVYxNUgxNmExLDEsMCwwLDAsMCwyaDF2NkgxNWExLDEsMCwxLDAsMCwyaDZhMSwxLDAsMCwwLDAtMloiLz5cbiAgICAg''@;'; + put 'put ''ICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgIGQ9Ik0xOCw2QTEyLDEyLDAsMSwwLDMwLDE4LDEyLDEyLDAsMCwwLDE4LDZabTAsMjJBMTAsMTAsMCwxLDEsMjgsMTgsMTAsMTAsMCwwLDEsMTgsMjhaIi8+XG4gICAgICAgICAgICAg''@;'; + put 'put ''ICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTE4LDZBMTIsMTIsMCwxLDAsMzAsMTgsMTIsMTIsMCwwLDAsMTgsNlptLTIsNS4xNWEyLDIsMCwxLDEsMiwyQTIsMiwwLDAsMSwxNS45LDExLjE1Wk0yMywyNGExLDEsMCwwLDEtMSwxSDE1YTEsMSww''@;'; + put 'put ''LDEsMSwwLTJoMlYxN0gxNmExLDEsMCwwLDEsMC0yaDR2OGgyQTEsMSwwLDAsMSwyMywyNFoiLz4nKSxMLkNsclNoYXBlSW5mb1N0YW5kYXJkPSgwLEUuY2xySWNvblNWRykoJzxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGN4PSIxNy45NyIgY3k9''@;'; + put 'put ''IjEwLjQ1IiByPSIxLjQiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTIxLDI1SDE5VjE0LjFIMTZhMSwxLDAsMCwwLDAsMmgxVjI1SDE1YTEsMSwwLDAsMCwwLDJoNmExLDEsMCwwLDAsMC0yWiIvPlxuICAg''@;'; + put 'put ''ICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJNMTgsMzRBMTYsMTYsMCwxLDEsMzQsMTgsMTYsMTYsMCwwLDEsMTgsMzRaTTE4LDRBMTQsMTQsMCwxLDAsMzIsMTgsMTQsMTQsMCwwLDAsMTgsNFoiLz5cbiAgICAgICAgICAg''@;'; + put 'put ''ICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMTgsMi4xYTE2LDE2LDAsMSwwLDE2LDE2QTE2LDE2LDAsMCwwLDE4LDIuMVptLS4xLDUuMjhhMiwyLDAsMSwxLTIsMkEyLDIsMCwwLDEsMTcuOSw3LjM4Wm0zLjYsMjEuMjVoLTdhMS40LDEuNCww''@;'; + put 'put ''LDEsMSwwLTIuOGgyLjF2LTkuMkgxNWExLjQsMS40LDAsMSwxLDAtMi44aDQuNHYxMmgyLjFhMS40LDEuNCwwLDEsMSwwLDIuOFoiLz4nKSxMLkNsclNoYXBlU3VjY2Vzc1N0YW5kYXJkPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUt''@;'; + put 'put ''cGF0aC0xIiBkPSJNMTgsMkExNiwxNiwwLDEsMCwzNCwxOCwxNiwxNiwwLDAsMCwxOCwyWm0wLDMwQTE0LDE0LDAsMSwxLDMyLDE4LDE0LDE0LDAsMCwxLDE4LDMyWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBk''@;'; + put 'put ''PSJNMjgsMTIuMWExLDEsMCwwLDAtMS40MSwwTDE1LjQ5LDIzLjE1bC02LTZBMSwxLDAsMCwwLDgsMTguNTNMMTUuNDksMjYsMjgsMTMuNTJBMSwxLDAsMCwwLDI4LDEyLjFaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIg''@;'; + put 'put ''ZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlpNMjguNDUsMTIuNjMsMTUuMzEsMjUuNzYsNy41NSwxOGExLjQsMS40LDAsMCwxLDItMmw1Ljc4LDUuNzhMMjYuNDcsMTAuNjVhMS40LDEuNCwwLDEsMSwyLDJaIi8+JyksTC5DbHJTaGFwZUVycm9yU3RhbmRhcmQ9''@;'; + put 'put ''KDAsRS5jbHJJY29uU1ZHKSgnPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgY3g9IjE4IiBjeT0iMjYuMDYiIHI9IjEuMzMiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIg''@;'; + put 'put ''ZD0iTTE4LDIyLjYxYTEsMSwwLDAsMS0xLTF2LTEyYTEsMSwwLDEsMSwyLDB2MTJBMSwxLDAsMCwxLDE4LDIyLjYxWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJNMTgsMzRBMTYsMTYsMCwxLDEsMzQsMTgs''@;'; + put 'put ''MTYsMTYsMCwwLDEsMTgsMzRaTTE4LDRBMTQsMTQsMCwxLDAsMzIsMTgsMTQsMTQsMCwwLDAsMTgsNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMTgsMi4xYTE2LDE2LDAsMSwwLDE2LDE2QTE2LDE2LDAsMCww''@;'; + put 'put ''LDE4LDIuMVpNMTYuNiw4LjhhMS40LDEuNCwwLDAsMSwyLjgsMHYxMmExLjQsMS40LDAsMCwxLTIuOCwwWk0xOCwyOC42YTEuOCwxLjgsMCwxLDEsMS44LTEuOEExLjgsMS44LDAsMCwxLDE4LDI4LjZaIi8+JyksTC5DbHJTaGFwZVdhcm5pbmdTdGFuZGFyZD0oMCxFLmNsckljb25TVkcpKCc8''@;'; + put 'put ''Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBjeD0iMTgiIGN5PSIyNi4wNiIgcj0iMS4zMyIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMTgsMjIuNjFhMSwxLDAs''@;'; + put 'put ''MCwxLTEtMXYtMTJhMSwxLDAsMSwxLDIsMHYxMkExLDEsMCwwLDEsMTgsMjIuNjFaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIGQ9Ik0xNS4wNjIwNzgyLDEuNjgxMTk2IEMxNS42Mjk4ODE5LDAuNjQ5MjY2MzU1''@;'; + put 'put ''IDE2LjcxMDkwOTEsMC4wMTAyMjE5Mzk2IDE3Ljg4NSwwLjAxMDIyMTkzOTYgQzE5LjA1OTA5MDksMC4wMTAyMjE5Mzk2IDIwLjE0MDExODEsMC42NDkyNjYzNTUgMjAuNzA4NjQzMywxLjY4MjUyMTI5IEwzNC41OTg2NDQsMjcuMjQyNTIyNSBDMzUuMTQwNzc0NiwyOC4yNDAxMzk3IDM1LjEx''@;'; + put 'put ''NzQzNDUsMjkuNDQ5NTM3MyAzNC41MzcyMTYxLDMwLjQyNTQ5NDMgQzMzLjk1Njk5NzcsMzEuNDAxNDUxNCAzMi45MDU2NzEsMzEuOTk5Njk4NCAzMS43NywzMiBMNC4wMjIzOTMyMywzMS45OTk3NDkyIEMyLjg3NDA5MDA5LDMyLjAyNTQ2OTkgMS43OTkwMjg0MywzMS40Mzc1NzUzIDEuMjAx''@;'; + put 'put ''MDYzMzUsMzAuNDU2OTEyNiBDMC42MDMwOTgyNjUsMjkuNDc2MjQ5OSAwLjU3Mjc3Nzg5OSwyOC4yNTEzMTc5IDEuMTIyMDc4MTgsMjcuMjQxMTk2IEwxNS4wNjIwNzgyLDEuNjgxMTk2IFogTTIuODc4NTA3NjcsMjguMTk3NzI4MiBDMi42NzA2MDk2NiwyOC41ODAwMzc2IDIuNjgyMDk3NSwy''@;'; + put 'put ''OS4wNDQxNDIzIDIuOTA4NjU1NywyOS40MTU2OTc3IEMzLjEzNTIxMzksMjkuNzg3MjUzMiAzLjU0MjUzNTQsMzAuMDA5OTk1OSA0LDMwIEwzMS43Njk3MzQ0LDMwIEMzMi4xOTk5MTkxLDI5Ljk5OTg4NTggMzIuNTk4MjQ3OCwyOS43NzMyMjA4IDMyLjgxODA4MjEsMjkuNDAzNDQ4MiBDMzMu''@;'; + put 'put ''MDM3OTE2NCwyOS4wMzM2NzU3IDMzLjA0Njc1OTUsMjguNTc1NDU2NyAzMi44NDEzNTY3LDI4LjE5NzQ3ODcgTDE4Ljk1Mzg3MzksMi42NDIwODE5NSBDMTguNzM5NDIzNiwyLjI1MjM0NDM2IDE4LjMyOTg0MTksMi4wMTAyMjE5NCAxNy44ODUsMi4wMTAyMjE5NCBDMTcuNDQwNjg4OSwyLjAx''@;'; + put 'put ''MDIyMTk0IDE3LjAzMTU1MzgsMi4yNTE3NjY5MiAxNi44MTY4OTQ2LDIuNjQwNjg3NTMgTDIuODc4NTA3NjcsMjguMTk3NzI4MiBaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTM0LjYsMjkuMjEsMjAuNzEsMy42''@;'; + put 'put ''NWEzLjIyLDMuMjIsMCwwLDAtNS42NiwwTDEuMTcsMjkuMjFBMy4yMiwzLjIyLDAsMCwwLDQsMzRIMzEuNzdhMy4yMiwzLjIyLDAsMCwwLDIuODMtNC43NVpNMTYuNiwxMGExLjQsMS40LDAsMCwxLDIuOCwwdjEyYTEuNCwxLjQsMCwwLDEtMi44LDBaTTE4LDI5Ljg1YTEuOCwxLjgsMCwxLDEs''@;'; + put 'put ''MS44LTEuOEExLjgsMS44LDAsMCwxLDE4LDI5Ljg1WiIvPicpLEwuQ2xyU2hhcGVIZWxwSW5mbz0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjUuMzksMjUuNDVhMSwxLDAsMCwwLTEuMzguMjljLTEuNDEsMi4xNi00LDQuODEtNi4zMSw1LjdzLTQuMTIuNTctNC44NCwwYy0uMzEtLjI3''@;'; + put 'put ''LTEuMTItMS0uNDMtMy40OS40Ni0xLjY2LDMuMzItOS40OCw0LTExLjM4bC0yLjE4LjI4Yy0uNjksMS44Ni0zLjI5LDguODQtMy43NiwxMC41OC0uNjgsMi40OS0uMzQsNC4zLDEuMDksNS41NkE1LjU5LDUuNTksMCwwLDAsMTUsMzRhOS41Myw5LjUzLDAsMCwwLDMuNDUtLjdjMi43OS0xLjA5''@;'; + put 'put ''LDUuNzItNC4xMiw3LjI2LTYuNDdBMSwxLDAsMCwwLDI1LjM5LDI1LjQ1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTkuMywxMWE0LjUsNC41LDAsMSwwLTQuNS00LjVBNC41LDQuNSwwLDAsMCwxOS4zLDEx''@;'; + put 'put ''Wm0wLTdhMi41LDIuNSwwLDEsMS0yLjUsMi41QTIuNSwyLjUsMCwwLDEsMTkuMyw0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTEuODEsMTVjLjA2LDAsNi4yNy0uODIsNy43My0xLC42NS0uMSwxLjE0LDAs''@;'; + put 'put ''MS4zLjE1cy4yMS44LS4wNywxLjY4Yy0uNjEsMS44Ni0zLjY5LDExLTQuNTksMTMuNzFhOCw4LDAsMCwwLDEuMjktLjM4LDcuMzIsNy4zMiwwLDAsMCwxLjE1LS42QzE5Ljg1LDI1LDIyLjE1LDE4LjEsMjIuNjcsMTYuNTJzLjM5LTIuNzgtLjMtMy42YTMuMTYsMy4xNiwwLDAsMC0zLjA4LS44''@;'; + put 'put ''M2MtMS40My4xNS03LjQ3Ljk0LTcuNzMsMWExLDEsMCwwLDAsLjI2LDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjIwLjc1IiBjeT0iNiIgcj0iNCIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlk''@;'; + put 'put ''LXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNC44NCwyNi4yM2ExLDEsMCwwLDAtMS40LjI5LDE2LjYsMTYuNiwwLDAsMS0zLjUxLDMuNzdjLS4zMy4yNS0xLjU2LDEuMi0yLjA4LDEtLjM2LS4xMS0uMTUtLjgyLS4wOC0xLjEybC41My0xLjU3Yy4yMi0uNjQsNC4wNS0xMiw0''@;'; + put 'put ''LjQ3LTEzLjMuNjItMS45LjM1LTMuNzctMi40OC0zLjMyLS43Ny4wOC04LjU4LDEuMDktOC43MiwxLjFhMSwxLDAsMCwwLC4xMywyczMtLjM5LDMuMzMtLjQyYS44OC44OCwwLDAsMSwuODUuNDQsMi40NywyLjQ3LDAsMCwxLS4wNywxLjcxYy0uMjYsMS00LjM3LDEyLjU4LTQuNSwxMy4yNWEy''@;'; + put 'put ''Ljc4LDIuNzgsMCwwLDAsMS4xOCwzLDUsNSwwLDAsMCwzLjA4LjgzaDBhOC41Myw4LjUzLDAsMCwwLDMuMDktLjYyYzIuNDktMSw1LjA5LTMuNjYsNi40Ni01Ljc1QTEsMSwwLDAsMCwyNC44NCwyNi4yM1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+JyksTC5D''@;'; + put 'put ''bHJTaGFwZUJhcnM9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMiwyOUg0YTEsMSwwLDAsMSwwLTJIMzJhMSwxLDAsMCwxLDAsMloiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0''@;'; + put 'put ''bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTMyLDE5SDRhMSwxLDAsMCwxLDAtMkgzMmExLDEsMCwwLDEsMCwyWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJNMzIsOUg0QTEsMSwwLDAsMSw0LDdI''@;'; + put 'put ''MzJhMSwxLDAsMCwxLDAsMloiLz4nKSxMLkNsclNoYXBlVXNlcj0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTgsMTdhNyw3LDAsMSwwLTctN0E3LDcsMCwwLDAsMTgsMTdaTTE4LDVhNSw1LDAsMSwxLTUsNUE1LDUsMCwwLDEsMTgsNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1p''@;'; + put 'put ''LW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLjQ3LDI0LjM3YTE3LjE2LDE3LjE2LDAsMCwwLTI0LjkzLDBBMiwyLDAsMCwwLDUsMjUuNzRWMzFhMiwyLDAsMCwwLDIsMkgyOWEyLDIsMCwwLDAsMi0yVjI1Ljc0QTIsMiwwLDAsMCwzMC40NywyNC4zN1pNMjks''@;'; + put 'put ''MzFIN1YyNS43M2ExNS4xNywxNS4xNywwLDAsMSwyMiwwaDBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMC40NywyNC4zN2ExNy4xNiwxNy4xNiwwLDAsMC0yNC45MywwQTIsMiwwLDAsMCw1LDI1Ljc0VjMx''@;'; + put 'put ''YTIsMiwwLDAsMCwyLDJIMjlhMiwyLDAsMCwwLDItMlYyNS43NEEyLDIsMCwwLDAsMzAuNDcsMjQuMzdaTTI5LDMxSDdWMjUuNzNhMTUuMTcsMTUuMTcsMCwwLDEsMjIsMGgwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIC8+''@;'; + put 'put ''XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMTdhNyw3LDAsMCwwLDQuNDUtMS42aC0uMjJBMy42OCwzLjY4LDAsMCwxLDIwLDE0LjZhNSw1LDAsMSwxLDEuMjQtOC40MmwxLTEuNzZBNyw3LDAsMSwwLDE4LDE3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGlu''@;'; + put 'put ''ZS1wYXRoLTItLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiAgY2xh''@;'; + put 'put ''c3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAuNDcsMjQuMzdhMTcuMTYsMTcuMTYsMCwwLDAtMjQuOTMsMEEyLDIsMCwwLDAsNSwyNS43NFYzMWEyLDIsMCwwLDAs''@;'; + put 'put ''MiwySDI5YTIsMiwwLDAsMCwyLTJWMjUuNzRBMiwyLDAsMCwwLDMwLjQ3LDI0LjM3Wk0yOSwzMUg3VjI1LjczYTE1LjE3LDE1LjE3LDAsMCwxLDIyLDBoMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAg''@;'; + put 'put ''IDxwYXRoIGQ9Ik0xOCwxN2E3LDcsMCwwLDAsNi44NS01LjU2LDcuNCw3LjQsMCwwLDEtMi4yNC02LjY5QTcsNywwLDEsMCwxOCwxN1pNMTgsNWE1LDUsMCwxLDEtNSw1QTUsNSwwLDAsMSwxOCw1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0t''@;'; + put 'put ''YmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLjYxLDI0LjUyYTE3''@;'; + put 'put ''LjE2LDE3LjE2LDAsMCwwLTI1LjIyLDAsMS41MSwxLjUxLDAsMCwwLS4zOSwxdjZBMS41LDEuNSwwLDAsMCw2LjUsMzNoMjNBMS41LDEuNSwwLDAsMCwzMSwzMS41di02QTEuNTEsMS41MSwwLDAsMCwzMC42MSwyNC41MloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEi''@;'; + put 'put ''IC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIxOCIgY3k9IjEwIiByPSI3IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLjYxLDI0LjUyYTE3LjE2LDE3LjE2LDAsMCwwLTI1LjIyLDAsMS41MSwxLjUxLDAsMCww''@;'; + put 'put ''LS4zOSwxdjZBMS41LDEuNSwwLDAsMCw2LjUsMzNoMjNBMS41LDEuNSwwLDAsMCwzMSwzMS41di02QTEuNTEsMS41MSwwLDAsMCwzMC42MSwyNC41MloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0''@;'; + put 'put ''aCBkPSJNMTgsMTdhNyw3LDAsMCwwLDQuNDUtMS42aC0uMjJBMy42OCwzLjY4LDAsMCwxLDE5LDkuODlsMy4xNi01LjQ3QTcsNywwLDEsMCwxOCwxN1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0''@;'; + put 'put ''aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiAgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBh''@;'; + put 'put ''dGgtMy0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMC42MSwyNC41MmExNy4xNiwxNy4xNiwwLDAsMC0yNS4yMiwwLDEuNTEsMS41MSwwLDAsMC0uMzksMXY2QTEuNSwxLjUsMCwwLDAsNi41LDMzaDIzQTEuNSwxLjUsMCwwLDAsMzEsMzEuNXYtNkEx''@;'; + put 'put ''LjUxLDEuNTEsMCwwLDAsMzAuNjEsMjQuNTJaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwxN2E3LDcsMCwwLDAsNi44NS01LjU2LDcuNCw3LjQsMCwwLDEtMi4yNC02LjY5QTcsNyww''@;'; + put 'put ''LDEsMCwxOCwxN1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0zLS1iYWRn''@;'; + put 'put ''ZWQgY2xyLWktYmFkZ2UiIC8+JyksTC5DbHJTaGFwZUFuZ2xlPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMjkuNTIsMjIuNTIsMTgsMTAuNiw2LjQ4LDIyLjUyYTEuNywxLjcsMCwwLDAsMi40NSwyLjM2TDE4''@;'; + put 'put ''LDE1LjQ5bDkuMDgsOS4zOWExLjcsMS43LDAsMCwwLDIuNDUtMi4zNloiLz4nKSxMLkNsclNoYXBlRm9sZGVyPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzAsOUgxNi40MkwxNC4xMSw1LjgyQTIsMiwwLDAs''@;'; + put 'put ''MCwxMi40OSw1SDZBMiwyLDAsMCwwLDQsN1YyOWEyLDIsMCwwLDAsMiwySDMwYTIsMiwwLDAsMCwyLTJWMTFBMiwyLDAsMCwwLDMwLDlabTAsMjBINlYxM2g3LjMxYTIsMiwwLDAsMCwyLTJINlY3aDYuNDlsMi42MSwzLjU5YTEsMSwwLDAsMCwuODEuNDFIMzBaIi8+XG4gICAgICAgICAgICAg''@;'; + put 'put ''ICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMzAsMTMuNVYyOUg2VjEzaDcuMzFhMiwyLDAsMCwwLDItMkg2VjdoNi40OWwyLjYxLDMuNTlhMSwxLDAsMCwwLC44MS40MWg4LjUxYTcuNSw3LjUsMCwwLDEtMS4y''@;'; + put 'put ''OS0ySDE2LjQyTDE0LjExLDUuODJBMiwyLDAsMCwwLDEyLjQ5LDVINkEyLDIsMCwwLDAsNCw3VjI5YTIsMiwwLDAsMCwyLDJIMzBhMiwyLDAsMCwwLDItMlYxMy4yMkE3LjQ5LDcuNDksMCwwLDEsMzAsMTMuNVoiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRs''@;'; + put 'put ''aW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiBkPSJN''@;'; + put 'put ''MzAsMTUuNFYyOUg2VjEzaDcuMzFhMiwyLDAsMCwwLDItMkg2VjdoNi40OWwyLjYxLDMuNTlhMSwxLDAsMCwwLC44MS40MWgyLjczQTMuNjYsMy42NiwwLDAsMSwxOSw5Ljg5TDE5LjU2LDlIMTYuNDJMMTQuMTEsNS44MkEyLDIsMCwwLDAsMTIuNDksNUg2QTIsMiwwLDAsMCw0LDdWMjlhMiwy''@;'; + put 'put ''LDAsMCwwLDIsMkgzMGEyLDIsMCwwLDAsMi0yVjE1LjRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4y''@;'; + put 'put ''OCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzAsOUgxNi40''@;'; + put 'put ''MkwxNC4xMSw1LjgyQTIsMiwwLDAsMCwxMi40OSw1SDZBMiwyLDAsMCwwLDQsN1YyOWEyLDIsMCwwLDAsMiwySDMwYTIsMiwwLDAsMCwyLTJWMTFBMiwyLDAsMCwwLDMwLDlaTTYsMTFWN2g2LjQ5bDIuNzIsNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQt''@;'; + put 'put ''LWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiBkPSJNMjIuMjMsMTUuNEEzLjY4LDMuNjgsMCwwLDEsMTksOS44OUwxOS41Niw5SDE2LjQyTDE0LjExLDUuODJBMiwyLDAsMCwwLDEyLjQ5LDVINkEyLDIsMCwwLDAsNCw3VjI5YTIsMiwwLDAsMCwyLDJIMzBhMiwyLDAsMCww''@;'; + put 'put ''LDItMlYxNS40Wk02LDExVjdoNi40OWwyLjcyLDRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCww''@;'; + put 'put ''LDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiBkPSJN''@;'; + put 'put ''MzAsMTMuNUE3LjUsNy41LDAsMCwxLDIzLjEzLDlIMTYuNDJMMTQuMTEsNS44MkEyLDIsMCwwLDAsMTIuNDksNUg2QTIsMiwwLDAsMCw0LDdWMjlhMiwyLDAsMCwwLDIsMkgzMGEyLDIsMCwwLDAsMi0yVjEzLjIyQTcuNDksNy40OSwwLDAsMSwzMCwxMy41Wk02LDExVjdoNi40OWwyLjcyLDRa''@;'; + put 'put ''Ii8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPicpLEwuQ2xyU2hhcGVGb2xkZXJPcGVuPSgwLEUuY2xySWNvblNWRykoJzxwYXRo''@;'; + put 'put ''IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzUuMzIsMTMuNzRBMS43MSwxLjcxLDAsMCwwLDMzLjg3LDEzSDExLjE3YTIuNTksMi41OSwwLDAsMC0yLjI1LDEuNTIsMSwxLDAsMCwwLDAsLjE0TDYsMjVWN2g2LjQ5bDIuNjEsMy41OWExLDEsMCwwLDAs''@;'; + put 'put ''LjgxLjQxSDMyYTIsMiwwLDAsMC0yLTJIMTYuNDJMMTQuMTEsNS44MkEyLDIsMCwwLDAsMTIuNDksNUg2QTIsMiwwLDAsMCw0LDdWMjkuNjlBMS4zNywxLjM3LDAsMCwwLDUuNDEsMzFIMzAuMzRhMSwxLDAsMCwwLDEtLjcybDQuMTktMTUuMUExLjY0LDEuNjQsMCwwLDAsMzUuMzIsMTMuNzRa''@;'; + put 'put ''TTI5LjU1LDI5SDYuOWwzLjg4LTEzLjgxYS42Ni42NiwwLDAsMSwuMzgtLjI0SDMzLjQ5WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgZD0iTTM1LjMyLDEzLjc0QTEuNzEsMS43MSww''@;'; + put 'put ''LDAsMCwzMy44NywxM0gxMS4xN2EyLjU5LDIuNTksMCwwLDAtMi4yNSwxLjUyLDEsMSwwLDAsMCwwLC4xNEw2LDI1VjdoNi40OWwyLjYxLDMuNTlhMSwxLDAsMCwwLC44MS40MWg4LjUyYTcuNDksNy40OSwwLDAsMS0xLjI5LTJIMTYuNDJMMTQuMTEsNS44MkEyLDIsMCwwLDAsMTIuNDksNUg2''@;'; + put 'put ''QTIsMiwwLDAsMCw0LDdWMjkuNjlBMS4zNywxLjM3LDAsMCwwLDUuNDEsMzFIMzAuMzRhMSwxLDAsMCwwLDEtLjcybDQuMTktMTUuMUExLjY0LDEuNjQsMCwwLDAsMzUuMzIsMTMuNzRaTTI5LjU1LDI5SDYuOWwzLjg4LTEzLjgxYS42Ni42NiwwLDAsMSwuMzgtLjI0SDMzLjQ5WiIvPlxuICAg''@;'; + put 'put ''ICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0''@;'; + put 'put ''ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0zMy42OCwxNS40aC0uM0wyOS41NSwyOUg2LjlsMy44OC0xMy44MWEuNjYuNjYsMCwwLDEsLjM4LS4yNGg5LjQyQTMuNjcsMy42NywwLDAsMSwxOSwxMy41NmEzLjYzLDMuNjMsMCwwLDEtLjI2LS41NkgxMS4xN2EyLjU5LDIu''@;'; + put 'put ''NTksMCwwLDAtMi4yNSwxLjUyLDEsMSwwLDAsMCwwLC4xNEw2LDI1VjdoNi40OWwyLjYxLDMuNTlhMSwxLDAsMCwwLC44MS40MWgyLjczQTMuNjYsMy42NiwwLDAsMSwxOSw5Ljg5TDE5LjU2LDlIMTYuNDJMMTQuMTEsNS44MkEyLDIsMCwwLDAsMTIuNDksNUg2QTIsMiwwLDAsMCw0LDdWMjku''@;'; + put 'put ''NjlBMS4zNywxLjM3LDAsMCwwLDUuNDEsMzFIMzAuMzRhMSwxLDAsMCwwLDEtLjcybDQuMTktMTUuMWExLjY4LDEuNjgsMCwwLDAsLjA3LS4zMkEzLjY3LDMuNjcsMCwwLDEsMzMuNjgsMTUuNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRl''@;'; + put 'put ''ZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIv''@;'; + put 'put ''PlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zNS4zMiwxMy43NEExLjcxLDEuNzEsMCwwLDAsMzMuODcsMTNIMTEuMTdhMi41OSwyLjU5LDAsMCwwLTIuMjUsMS41MiwxLDEsMCwwLDAsMCwuMTRMNiwyNVY3aDYuNDls''@;'; + put 'put ''Mi42MSwzLjU5YTEsMSwwLDAsMCwuODEuNDFIMzJhMiwyLDAsMCwwLTItMkgxNi40MkwxNC4xMSw1LjgyQTIsMiwwLDAsMCwxMi40OSw1SDZBMiwyLDAsMCwwLDQsN1YyOS42OUExLjM3LDEuMzcsMCwwLDAsNS40MSwzMUgzMC4zNGExLDEsMCwwLDAsMS0uNzJsNC4xOS0xNS4xQTEuNjQsMS42''@;'; + put 'put ''NCwwLDAsMCwzNS4zMiwxMy43NFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiBkPSJNMzMuNjgsMTUuNEgyMi4yM0EzLjY5LDMuNjksMCwwLDEsMTksMTMuNTZhMy42MywzLjYzLDAsMCwx''@;'; + put 'put ''LS4yNi0uNTZIMTEuMTdhMi41OSwyLjU5LDAsMCwwLTIuMjUsMS41MiwxLDEsMCwwLDAsMCwuMTRMNiwyNVY3aDYuNDlsMi42MSwzLjU5YTEsMSwwLDAsMCwuODEuNDFoMi43M0EzLjY2LDMuNjYsMCwwLDEsMTksOS44OUwxOS41Niw5SDE2LjQyTDE0LjExLDUuODJBMiwyLDAsMCwwLDEyLjQ5''@;'; + put 'put ''LDVINkEyLDIsMCwwLDAsNCw3VjI5LjY5QTEuMzcsMS4zNywwLDAsMCw1LjQxLDMxSDMwLjM0YTEsMSwwLDAsMCwxLS43Mmw0LjE5LTE1LjFhMS42OCwxLjY4LDAsMCwwLC4wNy0uMzJBMy42NywzLjY3LDAsMCwxLDMzLjY4LDE1LjRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9''@;'; + put 'put ''ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCww''@;'; + put 'put ''LDAsMCwyNi44NSwxLjE0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMzUuMzIsMTMuNzRBMS43MSwxLjcxLDAsMCwwLDMzLjg3LDEzSDExLjE3YTIuNTksMi41OSwwLDAsMC0yLjI1''@;'; + put 'put ''LDEuNTIsMSwxLDAsMCwwLDAsLjE0TDYsMjVWN2g2LjQ5bDIuNjEsMy41OWExLDEsMCwwLDAsLjgxLjQxaDguNTJhNy40OSw3LjQ5LDAsMCwxLTEuMzEtMkgxNi40MkwxNC4xMSw1LjgyQTIsMiwwLDAsMCwxMi40OSw1SDZBMiwyLDAsMCwwLDQsN1YyOS42OUExLjM3LDEuMzcsMCwwLDAsNS40''@;'; + put 'put ''MSwzMUgzMC4zNGExLDEsMCwwLDAsMS0uNzJsNC4xOS0xNS4xQTEuNjQsMS42NCwwLDAsMCwzNS4zMiwxMy43NFoiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0i''@;'; + put 'put ''MzAiIGN5PSI2IiByPSI1Ii8+JyksTC5DbHJTaGFwZUJlbGw9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMi41MSwyNy44M0ExNC40LDE0LjQsMCwwLDEsMzAsMjQuOWExMi42MywxMi42MywwLDAsMS0xLjM1''@;'; + put 'put ''LTQuODFWMTUuMTVBMTAuODEsMTAuODEsMCwwLDAsMTkuMjEsNC40VjMuMTFhMS4zMywxLjMzLDAsMSwwLTIuNjcsMFY0LjQyQTEwLjgxLDEwLjgxLDAsMCwwLDcuMjEsMTUuMTV2NC45NEExMi42MywxMi42MywwLDAsMSw1Ljg2LDI0LjlhMTQuNCwxNC40LDAsMCwxLTIuNDcsMi45MywxLDEs''@;'; + put 'put ''MCwwLDAtLjM0Ljc1djEuMzZhMSwxLDAsMCwwLDEsMWgyNy44YTEsMSwwLDAsMCwxLTFWMjguNThBMSwxLDAsMCwwLDMyLjUxLDI3LjgzWk01LjEzLDI4Ljk0YTE2LjE3LDE2LjE3LDAsMCwwLDIuNDQtMywxNC4yNCwxNC4yNCwwLDAsMCwxLjY1LTUuODVWMTUuMTVhOC43NCw4Ljc0LDAsMSwx''@;'; + put 'put ''LDE3LjQ3LDB2NC45NGExNC4yNCwxNC4yNCwwLDAsMCwxLjY1LDUuODUsMTYuMTcsMTYuMTcsMCwwLDAsMi40NCwzWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMTgsMzQuMjhBMi42NywyLjY3LDAsMCww''@;'; + put 'put ''LDIwLjU4LDMySDE1LjMyQTIuNjcsMi42NywwLDAsMCwxOCwzNC4yOFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0xOCwzNC4yOEEyLjY3LDIuNjcsMCwwLDAsMjAuNTgsMzJI''@;'; + put 'put ''MTUuMzJBMi42NywyLjY3LDAsMCwwLDE4LDM0LjI4WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgZD0iTTMyLjUxLDI3LjgzQTE0LjQsMTQuNCwwLDAsMSwzMCwyNC45YTEyLjYzLDEy''@;'; + put 'put ''LjYzLDAsMCwxLTEuMzUtNC44MVYxNS4xNWExMC45MiwxMC45MiwwLDAsMC0uMTYtMS43OSw3LjQ0LDcuNDQsMCwwLDEtMi4yNC0uODQsOC44OSw4Ljg5LDAsMCwxLC40LDIuNjR2NC45NGExNC4yNCwxNC4yNCwwLDAsMCwxLjY1LDUuODUsMTYuMTcsMTYuMTcsMCwwLDAsMi40NCwzSDUuMTNh''@;'; + put 'put ''MTYuMTcsMTYuMTcsMCwwLDAsMi40NC0zLDE0LjI0LDE0LjI0LDAsMCwwLDEuNjUtNS44NVYxNS4xNUE4LjgsOC44LDAsMCwxLDE4LDYuMzFhOC42MSw4LjYxLDAsMCwxLDQuNzYsMS40NEE3LjQ5LDcuNDksMCwwLDEsMjIuNSw2YzAtLjIxLDAtLjQyLDAtLjYzYTEwLjU4LDEwLjU4LDAsMCww''@;'; + put 'put ''LTMuMzItMVYzLjExYTEuMzMsMS4zMywwLDEsMC0yLjY3LDBWNC40MkExMC44MSwxMC44MSwwLDAsMCw3LjIxLDE1LjE1djQuOTRBMTIuNjMsMTIuNjMsMCwwLDEsNS44NiwyNC45YTE0LjQsMTQuNCwwLDAsMS0yLjQ3LDIuOTMsMSwxLDAsMCwwLS4zNC43NXYxLjM2YTEsMSwwLDAsMCwxLDFo''@;'; + put 'put ''MjcuOGExLDEsMCwwLDAsMS0xVjI4LjU4QTEsMSwwLDAsMCwzMi41MSwyNy44M1oiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0i''@;'; + put 'put ''NSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zMi44NSwyOC4xM2wtLjM0LS4zQTE0LjM3LDE0LjM3LDAsMCwxLDMwLDI0LjlhMTIuNjMsMTIuNjMsMCwwLDEtMS4zNS00LjgxVjE1LjE1QTEwLjgxLDEwLjgxLDAs''@;'; + put 'put ''MCwwLDE5LjIxLDQuNFYzLjExYTEuMzMsMS4zMywwLDEsMC0yLjY3LDBWNC40MkExMC44MSwxMC44MSwwLDAsMCw3LjIxLDE1LjE1djQuOTRBMTIuNjMsMTIuNjMsMCwwLDEsNS44NiwyNC45YTE0LjQsMTQuNCwwLDAsMS0yLjQ3LDIuOTNsLS4zNC4zdjIuODJIMzIuODVaIi8+XG4gICAgICAg''@;'; + put 'put ''ICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgZD0iTTE1LjMyLDMyYTIuNjUsMi42NSwwLDAsMCw1LjI1LDBaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1i''@;'; + put 'put ''YWRnZWQiIGQ9Ik0xOCwzNC4yOEEyLjY3LDIuNjcsMCwwLDAsMjAuNTgsMzJIMTUuMzJBMi42NywyLjY3LDAsMCwwLDE4LDM0LjI4WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIiBkPSJNMzIu''@;'; + put 'put ''ODUsMjguMTNsLS4zNC0uM0ExNC4zNywxNC4zNywwLDAsMSwzMCwyNC45YTEyLjYzLDEyLjYzLDAsMCwxLTEuMzUtNC44MVYxNS4xNWExMC45MiwxMC45MiwwLDAsMC0uMTYtMS43OUE3LjUsNy41LDAsMCwxLDIyLjUsNmMwLS4yMSwwLS40MiwwLS42M2ExMC41NywxMC41NywwLDAsMC0zLjMy''@;'; + put 'put ''LTFWMy4xMWExLjMzLDEuMzMsMCwxLDAtMi42NywwVjQuNDJBMTAuODEsMTAuODEsMCwwLDAsNy4yMSwxNS4xNXY0Ljk0QTEyLjYzLDEyLjYzLDAsMCwxLDUuODYsMjQuOWExNC40LDE0LjQsMCwwLDEtMi40NywyLjkzbC0uMzQuM3YyLjgySDMyLjg1WiIvPlxuICAgICAgICAgICAgICAgIDxj''@;'; + put 'put ''aXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0zLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz4nKSxMLkNsclNoYXBlSW1hZ2U9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMyLDRINEEyLDIsMCwwLDAsMiw2VjMw''@;'; + put 'put ''YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlY2QTIsMiwwLDAsMCwzMiw0Wk00LDMwVjZIMzJWMzBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTguOTIsMTRhMywzLDAsMSwwLTMtM0EzLDMsMCwwLDAs''@;'; + put 'put ''OC45MiwxNFptMC00LjZBMS42LDEuNiwwLDEsMSw3LjMzLDExLDEuNiwxLjYsMCwwLDEsOC45Miw5LjQxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMi43OCwxNS4zN2wtNS40LDUuNC00LTRhMSwxLDAsMCww''@;'; + put 'put ''LTEuNDEsMEw1LjkyLDIyLjl2Mi44M2w2Ljc5LTYuNzlMMTYsMjIuMThsLTMuNzUsMy43NUgxNWw4LjQ1LTguNDVMMzAsMjRWMjEuMThsLTUuODEtNS44MUExLDEsMCwwLDAsMjIuNzgsMTUuMzdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIvPlxuICAgICAg''@;'; + put 'put ''ICAgICAgPHBhdGggZD0iTTExLjkzLDExYTMsMywwLDEsMC0zLDNBMywzLDAsMCwwLDExLjkzLDExWm0tNC42LDBhMS42LDEuNiwwLDEsMSwxLjYsMS42QTEuNiwxLjYsMCwwLDEsNy4zMywxMVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJh''@;'; + put 'put ''ZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE3LjM4LDIwLjc3bC00LTRhMSwxLDAsMCwwLTEuNDEsMEw1LjkyLDIyLjl2Mi44M2w2Ljc5LTYuNzlMMTYsMjIuMThsLTMuNzUsMy43NUgxNWw4LjQ1LTguNDVMMzAsMjRWMjEuMThsLTUuODEtNS44MWExLDEsMCwwLDAtMS40MSwwWiIg''@;'; + put 'put ''Y2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIsMTMuMjJWMzBINFY2SDIyLjVhNy40OSw3LjQ5LDAsMCwxLC4yOC0ySDRBMiwyLDAsMCwwLDIsNlYzMGEyLDIsMCwwLDAsMiwySDMyYTIs''@;'; + put 'put ''MiwwLDAsMCwyLTJWMTIuMzRBNy40NSw3LjQ1LDAsMCwxLDMyLDEzLjIyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1vdXRs''@;'; + put 'put ''aW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMyLDRINEEyLDIsMCwwLDAsMiw2VjMwYTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlY2QTIsMiwwLDAsMCwzMiw0Wk04LjkyLDhhMywzLDAs''@;'; + put 'put ''MSwxLTMsM0EzLDMsMCwwLDEsOC45Miw4Wk02LDI3VjIyLjlsNi02LjA4YTEsMSwwLDAsMSwxLjQxLDBMMTYsMTkuMzUsOC4zMiwyN1ptMjQsMEgxMS4xNWw2LjIzLTYuMjMsNS40LTUuNGExLDEsMCwwLDEsMS40MSwwTDMwLDIxLjE4WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlk''@;'; + put 'put ''LXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLDEzLjVBNy40OCw3LjQ4LDAsMCwxLDIyLjc4LDRINEEyLDIsMCwwLDAsMiw2VjMwYTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYxMi4zNEE3LjQ2LDcuNDYsMCwwLDEsMzAsMTMuNVpNOC45Miw4YTMsMywwLDEsMS0z''@;'; + put 'put ''LDNBMywzLDAsMCwxLDguOTIsOFpNNiwyN1YyMi45bDYtNi4wOGExLDEsMCwwLDEsMS40MSwwTDE2LDE5LjM1LDguMzIsMjdabTI0LDBIMTEuMTVsNi4yMy02LjIzLDUuNC01LjRhMSwxLDAsMCwxLDEuNDEsMEwzMCwyMS4xOFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNv''@;'; + put 'put ''bGlkLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+JyksTC5DbHJTaGFwZUNsb3VkPSgwLEUuY2xySWNvblNW''@;'; + put 'put ''RykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMjcuMTQsMzNIMTAuNjJDNS42NywzMywxLDI4LjE5LDEsMjMuMWExMCwxMCwwLDAsMSw4LTkuNzUsMTAuMTksMTAuMTksMCwwLDEsMjAuMzMsMS4wNkExMC4wNywxMC4wNywwLDAsMSwyOSwx''@;'; + put 'put ''Ni42NmE4LjI5LDguMjksMCwwLDEsNiw4QzM1LDI5LjEsMzEuMzMsMzMsMjcuMTQsMzNaTTE5LjA5LDYuMjNhOC4yNCw4LjI0LDAsMCwwLTguMTksOGwwLC44Ny0uODYuMUE3Ljk0LDcuOTQsMCwwLDAsMywyMy4xYzAsNCwzLjc3LDcuOSw3LjYyLDcuOUgyNy4xNEMzMC4yMSwzMSwzMywyOCwz''@;'; + put 'put ''MywyNC42NWE2LjMxLDYuMzEsMCwwLDAtNS4zNy02LjI2bC0xLjE4LS4xOC4zOS0xLjEzQTguMTgsOC4xOCwwLDAsMCwxOS4wOSw2LjIzWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIg''@;'; + put 'put ''ZD0iTTI5LDE2LjY2YTEwLjA3LDEwLjA3LDAsMCwwLC4yNS0yLjI0YzAtLjMzLDAtLjY1LDAtMWE3LjQ1LDcuNDUsMCwwLDEtMi4xLS41NCw4LDgsMCwwLDEtLjMsNC4xNmwtLjM5LDEuMTMsMS4xOC4xOGE2LjMxLDYuMzEsMCwwLDEsNS4zNyw2LjI2QzMyLjk1LDI4LDMwLjE2LDMxLDI3LjA5''@;'; + put 'put ''LDMxSDEwLjU3Yy0zLjg0LDAtNy42Mi0zLjkxLTcuNjItNy45YTcuOTQsNy45NCwwLDAsMSw3LTcuODlsLjg2LS4xLDAtLjg3YTguMjQsOC4yNCwwLDAsMSw4LjE5LThBOC4xMyw4LjEzLDAsMCwxLDIyLjU4LDdhNy41Myw3LjUzLDAsMCwxLS4wOC0xLDcuNTEsNy41MSwwLDAsMSwuMDktMS4x''@;'; + put 'put ''MkExMC4xMywxMC4xMywwLDAsMCwxOSw0LjIzLDEwLjI2LDEwLjI2LDAsMCwwLDguOTEsMTMuMzZhMTAsMTAsMCwwLDAtOCw5Ljc1YzAsNS4wOSw0LjY3LDkuOSw5LjYyLDkuOUgyNy4wOWM0LjE5LDAsNy44Ni0zLjksNy44Ni04LjM1QTguMjksOC4yOSwwLDAsMCwyOSwxNi42NloiLz5cbiAg''@;'; + put 'put ''ICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVy''@;'; + put 'put ''dGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiBkPSJNMjksMTYuNjZhMTAuMTQsMTAuMTQsMCwwLDAsLjItMS4zaC0yYTguMjgsOC4yOCwwLDAsMS0uMzcsMS43MmwtLjM5LDEuMTMsMS4xOC4xOGE2LjMxLDYuMzEsMCwwLDEsNS4zNyw2LjI2QzMyLjk1LDI4LDMwLjE2LDMxLDI3''@;'; + put 'put ''LjA5LDMxSDEwLjU3Yy0zLjg0LDAtNy42Mi0zLjkxLTcuNjItNy45YTcuOTQsNy45NCwwLDAsMSw3LTcuODlsLjg2LS4xLDAtLjg3QTguMTYsOC4xNiwwLDAsMSwyMSw2LjQ3bDEtMS44QTEwLjE5LDEwLjE5LDAsMCwwLDguOTEsMTMuMzZhMTAsMTAsMCwwLDAtOCw5Ljc1YzAsNS4wOSw0LjY3''@;'; + put 'put ''LDkuOSw5LjYyLDkuOUgyNy4wOWM0LjE5LDAsNy44Ni0zLjksNy44Ni04LjM1QTguMjksOC4yOSwwLDAsMCwyOSwxNi42NloiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1h''@;'; + put 'put ''bGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1z''@;'; + put 'put ''b2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0yOSwxNi42NmExMC4wNywxMC4wNywwLDAsMCwuMjUtMi4yNEExMC4xOSwxMC4xOSwwLDAsMCw4LjkxLDEzLjM2LDEwLDEwLDAsMCwwLDEsMjMuMUMxLDI4LjE5LDUuNjIsMzMsMTAuNTcsMzNIMjcuMDlDMzEuMjgsMzMsMzUsMjkuMSwzNSwy''@;'; + put 'put ''NC42NUE4LjI5LDguMjksMCwwLDAsMjksMTYuNjZaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0yOSwxNi42NmExMC4wNywxMC4wNywwLDAsMCwuMjUtMi4yNGMwLS4zMywwLS42NSww''@;'; + put 'put ''LTFhNy40NCw3LjQ0LDAsMCwxLTYuNi04LjU4QTEwLjEzLDEwLjEzLDAsMCwwLDE5LDQuMjMsMTAuMjYsMTAuMjYsMCwwLDAsOC45MSwxMy4zNiwxMCwxMCwwLDAsMCwxLDIzLjFDMSwyOC4xOSw1LjYyLDMzLDEwLjU3LDMzSDI3LjA5QzMxLjI4LDMzLDM1LDI5LjEsMzUsMjQuNjVBOC4yOSw4''@;'; + put 'put ''LjI5LDAsMCwwLDI5LDE2LjY2WiIvPlxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFz''@;'; + put 'put ''cz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiBkPSJNMjksMTYuNjZhMTAuMTUsMTAuMTUsMCwwLDAsLjItMS4yNmgtN0EzLjY4LDMuNjgsMCwwLDEsMTksOS44OWwzLTUuMjFBMTAuMTksMTAuMTksMCwwLDAsOC45MSwxMy4zNiwxMCwxMCwwLDAs''@;'; + put 'put ''MCwxLDIzLjFDMSwyOC4xOSw1LjYyLDMzLDEwLjU3LDMzSDI3LjA5QzMxLjI4LDMzLDM1LDI5LjEsMzUsMjQuNjVBOC4yOSw4LjI5LDAsMCwwLDI5LDE2LjY2WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTIt''@;'; + put 'put ''LWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiLz4nKSxMLkNsclNoYXBlRWxsaXBzaXNI''@;'; + put 'put ''b3Jpem9udGFsPSgwLEUuY2xySWNvblNWRykoJzxjaXJjbGUgY3g9IjMxLjEiIGN5PSIxOCIgcj0iMi45IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjE4IiBjeT0iMTgiIHI9IjIuOSIgY2xhc3M9ImNsci1p''@;'; + put 'put ''LW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSI0LjkiIGN5PSIxOCIgcj0iMi45IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMxLjEiIGN5PSIxOCIg''@;'; + put 'put ''cj0iMi45IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIxOCIgY3k9IjE4IiByPSIyLjkiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTIt''@;'; + put 'put ''LWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjQuOSIgY3k9IjE4IiByPSIyLjkiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNs''@;'; + put 'put ''YXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCBjbHItaS1iYWRnZSIgLz4nKSxMLkNsclNoYXBlRWxsaXBzaXNWZXJ0aWNhbD0oMCxFLmNsckljb25TVkcpKCc8Y2lyY2xlIGN4PSIxOCIgY3k9IjQuOSIgcj0iMi45IiBjbGFzcz0iY2xyLWkt''@;'; + put 'put ''b3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjE4IiBjeT0iMTgiIHI9IjIuOSIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIxOCIgY3k9IjMxLjEiIHI9''@;'; + put 'put ''IjIuOSIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIxOCIgY3k9IjQuOSIgcj0iMi45IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIC8+XG4gICAg''@;'; + put 'put ''ICAgICAgICA8Y2lyY2xlIGN4PSIxOCIgY3k9IjE4IiByPSIyLjkiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjE4IiBjeT0iMzEuMSIgcj0iMi45IiBjbGFzcz0iY2xyLWktb3V0''@;'; + put 'put ''bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiICBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQgY2xyLWktYmFkZ2UiIC8+Jyks''@;'; + put 'put ''TC5DbHJTaGFwZUZpbHRlckdyaWQ9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xNSwyNS44NmwyLDFWMjAuMjdhMSwxLDAsMCwwLS4yOS0uN0wxMC4yMywxM0gyNS43OWwtNi40Nyw2LjU3YTEsMSwwLDAsMC0u''@;'; + put 'put ''MjkuN0wxOSwyOGwyLDFWMjAuNjhMMjcuNTgsMTRBMS40NiwxLjQ2LDAsMCwwLDI4LDEzVjEyYTEsMSwwLDAsMC0xLTFIOWExLDEsMCwwLDAtMSwxdjFhMS40NiwxLjQ2LDAsMCwwLC40MiwxTDE1LDIwLjY4WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBj''@;'; + put 'put ''bHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik04LDExdjEuMTJhLjUuNSwwLDAsMCwuMTUuMzVsNy4yOCw3LjM2YS41LjUsMCwwLDEsLjE1LjM1djYuODlhLjUuNSwwLDAsMCwuMjguNDVsMy45NSwxLjQxYS41LjUsMCwwLDAsLjcyLS40NWwwLTguMzlhLjU0LjU0LDAsMCwxLC4xOC0uMzVsNy4xMi03''@;'; + put 'put ''LjI1YS41LjUsMCwwLDAsLjE1LS4zNVYxMVoiLz4nKSxMLkNsclNoYXBlRmlsdGVyR3JpZENpcmNsZT0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTE1LDI1Ljg2bDIsMVYyMC4yN2ExLDEsMCwwLDAtLjI5LS43''@;'; + put 'put ''TDEwLjIzLDEzSDI1Ljc5bC02LjQ3LDYuNTdhMSwxLDAsMCwwLS4yOS43TDE5LDI4bDIsMVYyMC42OEwyNy41OCwxNEExLjQ2LDEuNDYsMCwwLDAsMjgsMTNWMTJhMSwxLDAsMCwwLTEtMUg5YTEsMSwwLDAsMC0xLDF2MWExLjQ2LDEuNDYsMCwwLDAsLjQyLDFMMTUsMjAuNjhaIi8+XG4gICAg''@;'; + put 'put ''ICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJabTAsMzBBMTQsMTQsMCwxLDEsMzIsMTgsMTQsMTQsMCwwLDEsMTgsMzJaIi8+XG4gICAgICAgICAgICAg''@;'; + put 'put ''ICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlptMCwzMEExNCwxNCwwLDEsMSwzMiwxOCwxNCwxNCwwLDAsMSwxOCwzMloiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFz''@;'; + put 'put ''cz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiBkPSJNOCwxMXYxLjEyYS41LjUsMCwwLDAsLjE1LjM1bDcuMjgsNy4zNmEuNS41LDAsMCwxLC4xNS4zNXY2Ljg5YS41LjUsMCwwLDAsLjI4LjQ1bDMuOTUsMS40MWEuNS41LDAsMCwwLC43Mi0uNDVsMC04LjM5YS41NC41NCwwLDAs''@;'; + put 'put ''MSwuMTgtLjM1bDcuMTItNy4yNWEuNS41LDAsMCwwLC4xNS0uMzVWMTFaIi8+JyksTC5DbHJTaGFwZVZtQnVnPSgwLEUuY2xySWNvblNWRykoJzxyZWN0IHdpZHRoPSIzNiIgaGVpZ2h0PSIzNiIgcng9IjMiIGZpbGw9IiNmZmZmZmYiIG9wYWNpdHk9IjAuMTUiIHN0eWxlPSJpc29sYXRpb246''@;'; + put 'put ''aXNvbGF0ZSIvPjxwYXRoIGQ9Ik0zLjc5LDE0LjgzYTEuMDksMS4wOSwwLDAsMC0xLjQ3LS41NiwxLjA5LDEuMDksMCwwLDAtLjU0LDEuNDlsMi40Nyw1LjRjLjM5Ljg1LjgsMS4yOSwxLjU3LDEuMjlTNywyMiw3LjM5LDIxLjE2bDIuMTctNC43N2EuMzMuMzMsMCwwLDEsLjMxLS4yLjM1LjM1''@;'; + put 'put ''LDAsMCwxLC4zNS4zNXY0LjYxYTEuMTUsMS4xNSwwLDAsMCwxLjE0LDEuMywxLjE3LDEuMTcsMCwwLDAsMS4xNy0xLjNWMTcuMzhhMS4xNSwxLjE1LDAsMCwxLDEuMjItMS4yLDEuMTMsMS4xMywwLDAsMSwxLjE4LDEuMnYzLjc3YTEuMTcsMS4xNywwLDEsMCwyLjMyLDBWMTcuMzhhMS4xNSwx''@;'; + put 'put ''LjE1LDAsMCwxLDEuMjItMS4yLDEuMTMsMS4xMywwLDAsMSwxLjE4LDEuMnYzLjc3YTEuMTYsMS4xNiwwLDEsMCwyLjMxLDBWMTYuODZhMi42OSwyLjY5LDAsMCwwLTIuNzgtMi42OSwzLjU3LDMuNTcsMCwwLDAtMi40NywxLjA1LDIuNzUsMi43NSwwLDAsMC0yLjM4LTEuMDVBMy45MywzLjkz''@;'; + put 'put ''LDAsMCwwLDEyLDE1LjIyYTIuODIsMi44MiwwLDAsMC0yLjA4LTEuMDVBMi41NSwyLjU1LDAsMCwwLDcuNCwxNS44OUw1LjgyLDE5LjYzbC0yLTQuOCIgZmlsbD0iI2ZmZmZmZiIvPjxwYXRoIGQ9Ik0zMywxNC4xOEExLjE0LDEuMTQsMCwwLDAsMzEuOSwxNWwtMS4xOSwzLjczTDI5LjUsMTUu''@;'; + put 'put ''MDVhMS4xOCwxLjE4LDAsMCwwLTEuMTUtLjg3aC0uMWExLjIsMS4yLDAsMCwwLTEuMTUuODdsLTEuMTksMy43MS0xLjE4LTMuNzFhMS4xNSwxLjE1LDAsMCwwLTEuMTEtLjg3LDEuMDgsMS4wOCwwLDAsMC0xLjEyLDEuMDcsMS42OCwxLjY4LDAsMCwwLC4xLjU0bDIsNS43YTEuMjcsMS4yNyww''@;'; + put 'put ''LDAsMCwxLjI3LDEsMS4yNCwxLjI0LDAsMCwwLDEuMi0uOTNsMS4yLTMuNjQsMS4yLDMuNjRhMS4yNSwxLjI1LDAsMCwwLDEuMjYuOTNBMS4yNywxLjI3LDAsMCwwLDMyLDIxLjVMMzQsMTUuNzNhMS43NywxLjc3LDAsMCwwLC4wOC0uNDhBMS4wNywxLjA3LDAsMCwwLDMzLDE0LjE4WiIgZmls''@;'; + put 'put ''bD0iI2ZmZmZmZiIvPicpLEwuQ2xyU2hhcGVTZWFyY2g9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xNi4zMyw1LjA1QTEwLjk1LDEwLjk1LDAsMSwxLDUuMzksMTYsMTEsMTEsMCwwLDEsMTYuMzMsNS4wNW0w''@;'; + put 'put ''LTIuMDVhMTMsMTMsMCwxLDAsMTMsMTMsMTMsMTMsMCwwLDAtMTMtMTNaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0zNSwzMy4yOWwtNy4zNy03LjQyLTEuNDIsMS40MSw3LjM3LDcuNDJBMSwxLDAsMSww''@;'; + put 'put ''LDM1LDMzLjI5WiIvPicpLEwuQ2xyU2hhcGVWaWV3Q29sdW1ucz0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMxLDVINUEyLDIsMCwwLDAsMyw3VjI5YTIsMiwwLDAsMCwyLDJIMzFhMiwyLDAsMCwwLDItMlY3''@;'; + put 'put ''QTIsMiwwLDAsMCwzMSw1Wk0xMywyOUg1VjdoOFptMTAsMEgxNVY3aDhaIi8+JyksTC5DbHJTaGFwZUFuZ2xlRG91YmxlPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMjksMTkuNDFhMSwxLDAsMCwxLS43MS0u''@;'; + put 'put ''MjlMMTgsOC44Myw3LjcxLDE5LjEyYTEsMSwwLDAsMS0xLjQxLTEuNDFMMTgsNiwyOS43MSwxNy43MUExLDEsMCwwLDEsMjksMTkuNDFaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0yOSwzMC40MWExLDEs''@;'; + put 'put ''MCwwLDEtLjcxLS4yOUwxOCwxOS44Myw3LjcxLDMwLjEyYTEsMSwwLDAsMS0xLjQxLTEuNDFMMTgsMTcsMjkuNzEsMjguNzFBMSwxLDAsMCwxLDI5LDMwLjQxWiIvPicpLEwuQ2xyU2hhcGVDYWxlbmRhcj0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHIt''@;'; + put 'put ''aS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMyLjI1LDZIMjlWOGgzVjMwSDRWOEg3VjZIMy43NUExLjc4LDEuNzgsMCwwLDAsMiw3LjgxVjMwLjE5QTEuNzgsMS43OCwwLDAsMCwzLjc1LDMyaDI4LjVBMS43OCwxLjc4LDAsMCwwLDM0LDMwLjE5VjcuODFBMS43OCwxLjc4LDAsMCwwLDMyLjI1LDZa''@;'; + put 'put ''Ii8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIHg9IjgiIHk9IjE0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1w''@;'; + put 'put ''YXRoLTMiIHg9IjE0IiB5PSIxNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiB4PSIyMCIgeT0iMTQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8''@;'; + put 'put ''cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgeD0iMjYiIHk9IjE0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIHg9IjgiIHk9IjE5IiB3''@;'; + put 'put ''aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTciIHg9IjE0IiB5PSIxOSIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRs''@;'; + put 'put ''aW5lIGNsci1pLW91dGxpbmUtcGF0aC04IiB4PSIyMCIgeT0iMTkiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtOSIgeD0iMjYiIHk9IjE5IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+''@;'; + put 'put ''XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEwIiB4PSI4IiB5PSIyNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0''@;'; + put 'put ''aC0xMSIgeD0iMTQiIHk9IjI0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEyIiB4PSIyMCIgeT0iMjQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8''@;'; + put 'put ''cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMTMiIHg9IjI2IiB5PSIyNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xNCIgZD0iTTEwLDEwYTEs''@;'; + put 'put ''MSwwLDAsMCwxLTFWM0ExLDEsMCwwLDAsOSwzVjlBMSwxLDAsMCwwLDEwLDEwWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xNSIgZD0iTTI2LDEwYTEsMSwwLDAsMCwxLTFWM2ExLDEsMCwwLDAtMiwwVjlBMSwxLDAs''@;'; + put 'put ''MCwwLDI2LDEwWiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xNiIgeD0iMTMiIHk9IjYiIHdpZHRoPSIxMCIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJh''@;'; + put 'put ''ZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMzIsMTMuMjJWMzBINFY4SDdWNkgzLjc1QTEuNzgsMS43OCwwLDAsMCwyLDcuODFWMzAuMTlBMS43OCwxLjc4LDAsMCwwLDMuNzUsMzJoMjguNUExLjc4LDEuNzgsMCwwLDAsMzQsMzAuMTlWMTIuMzRBNy40NSw3LjQ1LDAs''@;'; + put 'put ''MCwxLDMyLDEzLjIyWiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgeD0iOCIgeT0iMTQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0i''@;'; + put 'put ''Y2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiIHg9IjE0IiB5PSIxNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJh''@;'; + put 'put ''ZGdlZCIgeD0iMjAiIHk9IjE0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYmFkZ2VkIiB4PSIyNiIgeT0iMTQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAg''@;'; + put 'put ''ICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC02LS1iYWRnZWQiIHg9IjgiIHk9IjE5IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdl''@;'; + put 'put ''ZCBjbHItaS1vdXRsaW5lLXBhdGgtNy0tYmFkZ2VkIiB4PSIxNCIgeT0iMTkiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC04LS1iYWRnZWQiIHg9IjIwIiB5PSIxOSIg''@;'; + put 'put ''d2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTktLWJhZGdlZCIgeD0iMjYiIHk9IjE5IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3Qg''@;'; + put 'put ''Y2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMTAtLWJhZGdlZCIgeD0iOCIgeT0iMjQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0''@;'; + put 'put ''aC0xMS0tYmFkZ2VkIiB4PSIxNCIgeT0iMjQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xMi0tYmFkZ2VkIiB4PSIyMCIgeT0iMjQiIHdpZHRoPSIyIiBoZWlnaHQ9''@;'; + put 'put ''IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xMy0tYmFkZ2VkIiB4PSIyNiIgeT0iMjQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0''@;'; + put 'put ''bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xNC0tYmFkZ2VkIiBkPSJNMTAsMTBhMSwxLDAsMCwwLDEtMVYzQTEsMSwwLDAsMCw5LDNWOUExLDEsMCwwLDAsMTAsMTBaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1v''@;'; + put 'put ''dXRsaW5lLXBhdGgtMTUtLWJhZGdlZCIgZD0iTTIyLjUsNkgxM1Y4aDkuNzhBNy40OSw3LjQ5LDAsMCwxLDIyLjUsNloiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTE2LS1iYWRnZWQgY2xyLWktYmFk''@;'; + put 'put ''Z2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgZD0iTTMzLjY4LDE1LjRIMzJWMzBINFY4SDdWNkgzLjc1QTEuNzgsMS43OCwwLDAsMCwyLDcu''@;'; + put 'put ''ODFWMzAuMTlBMS43OCwxLjc4LDAsMCwwLDMuNzUsMzJoMjguNUExLjc4LDEuNzgsMCwwLDAsMzQsMzAuMTlWMTUuMzhaIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIHg9IjgiIHk9''@;'; + put 'put ''IjE0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiIHg9IjE0IiB5PSIxNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAg''@;'; + put 'put ''IDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIiB4PSI4IiB5PSIxOSIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91''@;'; + put 'put ''dGxpbmUtcGF0aC01LS1hbGVydGVkIiB4PSIxNCIgeT0iMTkiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNi0tYWxlcnRlZCIgeD0iMjAiIHk9IjE5IiB3aWR0aD0i''@;'; + put 'put ''MiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTctLWFsZXJ0ZWQiIHg9IjI2IiB5PSIxOSIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNz''@;'; + put 'put ''PSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC04LS1hbGVydGVkIiB4PSI4IiB5PSIyNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC05''@;'; + put 'put ''LS1hbGVydGVkIiB4PSIxNCIgeT0iMjQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMTAtLWFsZXJ0ZWQiIHg9IjIwIiB5PSIyNCIgd2lkdGg9IjIiIGhlaWdodD0i''@;'; + put 'put ''MiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xMS0tYWxlcnRlZCIgeD0iMjYiIHk9IjI0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91''@;'; + put 'put ''dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEyLS1hbGVydGVkIiBkPSJNMTAsMTBhMSwxLDAsMCwwLDEtMVYzQTEsMSwwLDAsMCw5LDNWOUExLDEsMCwwLDAsMTAsMTBaIi8+PHBvbHlnb24gcG9pbnRzPSIyMS4yOSA2IDEzIDYgMTMgOCAyMC4xNCA4IDIxLjI5IDYiLz5cbiAg''@;'; + put 'put ''ICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAs''@;'; + put 'put ''MzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzIuMjUsNmgtNFY5YTIuMiwyLjIsMCwxLDEtNC40LDBWNkgxMi4yVjlBMi4yLDIu''@;'; + put 'put ''MiwwLDAsMSw3LjgsOVY2aC00QTEuNzgsMS43OCwwLDAsMCwyLDcuODFWMzAuMTlBMS43OCwxLjc4LDAsMCwwLDMuNzUsMzJoMjguNUExLjc4LDEuNzgsMCwwLDAsMzQsMzAuMTlWNy44MUExLjc4LDEuNzgsMCwwLDAsMzIuMjUsNlpNMTAsMjZIOFYyNGgyWm0wLTVIOFYxOWgyWm0wLTVIOFYx''@;'; + put 'put ''NGgyWm02LDEwSDE0VjI0aDJabTAtNUgxNFYxOWgyWm0wLTVIMTRWMTRoMlptNiwxMEgyMFYyNGgyWm0wLTVIMjBWMTloMlptMC01SDIwVjE0aDJabTYsMTBIMjZWMjRoMlptMC01SDI2VjE5aDJabTAtNUgyNlYxNGgyWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1z''@;'; + put 'put ''b2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGQ9Ik0xMCwxMGExLDEsMCwwLDAsMS0xVjNBMSwxLDAsMCwwLDksM1Y5QTEsMSwwLDAsMCwxMCwxMFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiBkPSJNMjYsMTBhMSwxLDAs''@;'; + put 'put ''MCwwLDEtMVYzYTEsMSwwLDAsMC0yLDBWOUExLDEsMCwwLDAsMjYsMTBaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0xMCwxMGExLDEsMCwwLDAsMS0xVjNBMSwxLDAsMCwwLDksM1Y5''@;'; + put 'put ''QTEsMSwwLDAsMCwxMCwxMFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCIgZD0iTTMwLDEzLjVBNy41LDcuNSwwLDAsMSwyMi41LDZIMTIuMlY5QTIuMiwyLjIsMCwwLDEsNy44LDlWNmgtNEEx''@;'; + put 'put ''Ljc4LDEuNzgsMCwwLDAsMiw3LjgxVjMwLjE5QTEuNzgsMS43OCwwLDAsMCwzLjc1LDMyaDI4LjVBMS43OCwxLjc4LDAsMCwwLDM0LDMwLjE5VjEyLjM0QTcuNDUsNy40NSwwLDAsMSwzMCwxMy41Wk0xMCwyNkg4VjI0aDJabTAtNUg4VjE5aDJabTAtNUg4VjE0aDJabTYsMTBIMTRWMjRoMlpt''@;'; + put 'put ''MC01SDE0VjE5aDJabTAtNUgxNFYxNGgyWm02LDEwSDIwVjI0aDJabTAtNUgyMFYxOWgyWm0wLTVIMjBWMTRoMlptNiwxMEgyNlYyNGgyWm0wLTVIMjZWMTloMlptMC01SDI2VjE0aDJaIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHIt''@;'; + put 'put ''aS1zb2xpZC1wYXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0zMy42OCwxNS40SDIyLjIzQTMuNjgs''@;'; + put 'put ''My42OCwwLDAsMSwxOSw5Ljg5TDIxLjI5LDZIMTIuMlY5QTIuMiwyLjIsMCwwLDEsNy44LDlWNmgtNEExLjc4LDEuNzgsMCwwLDAsMiw3LjgxVjMwLjE5QTEuNzgsMS43OCwwLDAsMCwzLjc1LDMyaDI4LjVBMS43OCwxLjc4LDAsMCwwLDM0LDMwLjE5VjE1LjM4Wk0xMCwyNkg4VjI0aDJabTAt''@;'; + put 'put ''NUg4VjE5aDJabTAtNUg4VjE0aDJabTYsMTBIMTRWMjRoMlptMC01SDE0VjE5aDJabTAtNUgxNFYxNGgyWm02LDEwSDIwVjI0aDJabTAtNUgyMFYxOWgyWm02LDVIMjZWMjRoMlptMC01SDI2VjE5aDJaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVy''@;'; + put 'put ''dGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCIgZD0iTTEwLDEwYTEsMSwwLDAsMCwxLTFWM0ExLDEsMCwwLDAsOSwzVjlBMSwxLDAsMCwwLDEwLDEwWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTMt''@;'; + put 'put ''LWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiLz4nKSxMLkNsclNoYXBlRXZlbnQ9KDAs''@;'; + put 'put ''RS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xNi4xNywyNS44NiwxMC44MSwyMC41YTEsMSwwLDAsMSwxLjQxLTEuNDFMMTYuMTcsMjNsOC42NC04LjY0YTEsMSwwLDAsMSwxLjQxLDEuNDFaIi8+XG4gICAgICAgICAg''@;'; + put 'put ''ICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0zMi4yNSw2SDI5VjhoM1YzMEg0VjhIN1Y2SDMuNzVBMS43OCwxLjc4LDAsMCwwLDIsNy44MVYzMC4xOUExLjc4LDEuNzgsMCwwLDAsMy43NSwzMmgyOC41QTEuNzgsMS43OCwwLDAsMCwz''@;'; + put 'put ''NCwzMC4xOVY3LjgxQTEuNzgsMS43OCwwLDAsMCwzMi4yNSw2WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJNMTAsMTBhMSwxLDAsMCwwLDEtMVYzQTEsMSwwLDAsMCw5LDNWOUExLDEsMCwwLDAsMTAsMTBa''@;'; + put 'put ''Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIGQ9Ik0yNiwxMGExLDEsMCwwLDAsMS0xVjNhMSwxLDAsMCwwLTIsMFY5QTEsMSwwLDAsMCwyNiwxMFoiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xy''@;'; + put 'put ''LWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgeD0iMTMiIHk9IjYiIHdpZHRoPSIxMCIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMTAuODEsMjAu''@;'; + put 'put ''NWw1LjM2LDUuMzZMMjYuMjIsMTUuODFhMSwxLDAsMCwwLTEuNDEtMS40MUwxNi4xNywyM2wtMy45NC0zLjk0YTEsMSwwLDAsMC0xLjQxLDEuNDFaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFk''@;'; + put 'put ''Z2VkIiBkPSJNMTAsMTBhMSwxLDAsMCwwLDEtMVYzQTEsMSwwLDAsMCw5LDNWOUExLDEsMCwwLDAsMTAsMTBaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIiBkPSJNMzIsMTMuMjJWMzBI''@;'; + put 'put ''NFY4SDdWNkgzLjc1QTEuNzgsMS43OCwwLDAsMCwyLDcuODFWMzAuMTlBMS43OCwxLjc4LDAsMCwwLDMuNzUsMzJoMjguNUExLjc4LDEuNzgsMCwwLDAsMzQsMzAuMTlWMTIuMzRBNy40NSw3LjQ1LDAsMCwxLDMyLDEzLjIyWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHIt''@;'; + put 'put ''aS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCIgZD0iTTIyLjUsNkgxM1Y4aDkuNzhBNy40OSw3LjQ5LDAsMCwxLDIyLjUsNloiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1w''@;'; + put 'put ''YXRoLTUtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiBkPSJNMTAsMTBhMSwxLDAsMCwwLDEtMVYzQTEsMSww''@;'; + put 'put ''LDAsMCw5LDNWOUExLDEsMCwwLDAsMTAsMTBaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIGQ9Ik0xMC44MSwyMC41bDUuMzYsNS4zNkwyNi4yMiwxNS44MWExLDEsMCwwLDAsLjIz''@;'; + put 'put ''LS40MUgyMy44TDE2LjE3LDIzbC0zLjk0LTMuOTRhMSwxLDAsMCwwLTEuNDEsMS40MVoiLz5cbiAgICAgICAgICAgICAgICA8cG9seWdvbiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCIgcG9pbnRzPSIyMS4yOSA2IDEzIDYgMTMg''@;'; + put 'put ''OCAyMC4xNCA4IDIxLjI5IDYiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRlZCIgZD0iTTMzLjY4LDE1LjRIMzJWMzBINFY4SDdWNkgzLjc1QTEuNzgsMS43OCwwLDAsMCwyLDcuODFWMzAu''@;'; + put 'put ''MTlBMS43OCwxLjc4LDAsMCwwLDMuNzUsMzJoMjguNUExLjc4LDEuNzgsMCwwLDAsMzQsMzAuMTlWMTUuMzhaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9''@;'; + put 'put ''Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xy''@;'; + put 'put ''LWktc29saWQtcGF0aC0xIiBkPSJNMTAsMTBhMSwxLDAsMCwwLDEtMVYzQTEsMSwwLDAsMCw5LDNWOUExLDEsMCwwLDAsMTAsMTBaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgZD0iTTI2LDEwYTEsMSwwLDAsMCwxLTFW''@;'; + put 'put ''M2ExLDEsMCwwLDAtMiwwVjlBMSwxLDAsMCwwLDI2LDEwWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIGQ9Ik0zMi4yNSw2aC00VjlhMi4yLDIuMiwwLDAsMS00LjQsMFY2SDEyLjJWOUEyLjIsMi4yLDAsMCwxLDcuOCw5''@;'; + put 'put ''VjZoLTRBMS43OCwxLjc4LDAsMCwwLDIsNy44MVYzMC4xOUExLjc4LDEuNzgsMCwwLDAsMy43NSwzMmgyOC41QTEuNzgsMS43OCwwLDAsMCwzNCwzMC4xOVY3LjgxQTEuNzgsMS43OCwwLDAsMCwzMi4yNSw2Wk0yNS45NCwxNi41OGwtOS42Nyw5LjY3TDExLDIwLjk0QTEuMzYsMS4zNiwwLDAs''@;'; + put 'put ''MSwxMi45LDE5bDMuMzgsMy4zOEwyNCwxNC42NmExLjM2LDEuMzYsMCwxLDEsMS45MywxLjkzWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0xMCwxMGExLDEsMCwwLDAsMS0xVjNB''@;'; + put 'put ''MSwxLDAsMCwwLDksM1Y5QTEsMSwwLDAsMCwxMCwxMFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIiBkPSJNMzMuNjgsMTUuNEgyNi4zYTEuMzQsMS4zNCwwLDAsMS0uMzYsMS4xOGwtOS42''@;'; + put 'put ''Nyw5LjY3TDExLDIwLjk0QTEuMzYsMS4zNiwwLDAsMSwxMi45LDE5bDMuMzgsMy4zOCw3LTdoLTFBMy42OCwzLjY4LDAsMCwxLDE5LDkuODlMMjEuMjksNkgxMi4yVjlBMi4yLDIuMiwwLDAsMSw3LjgsOVY2aC00QTEuNzgsMS43OCwwLDAsMCwyLDcuODFWMzAuMTlBMS43OCwxLjc4LDAsMCww''@;'; + put 'put ''LDMuNzUsMzJoMjguNUExLjc4LDEuNzgsMCwwLDAsMzQsMzAuMTlWMTUuMzhaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMy0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFB''@;'; + put 'put ''MS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgt''@;'; + put 'put ''MS0tYmFkZ2VkIiBkPSJNMTAsMTBhMSwxLDAsMCwwLDEtMVYzQTEsMSwwLDAsMCw5LDNWOUExLDEsMCwwLDAsMTAsMTBaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQiIGQ9Ik0zMCwxMy41QTcu''@;'; + put 'put ''NSw3LjUsMCwwLDEsMjIuNSw2SDEyLjJWOUEyLjIsMi4yLDAsMCwxLDcuOCw5VjZoLTRBMS43OCwxLjc4LDAsMCwwLDIsNy44MVYzMC4xOUExLjc4LDEuNzgsMCwwLDAsMy43NSwzMmgyOC41QTEuNzgsMS43OCwwLDAsMCwzNCwzMC4xOVYxMi4zNEE3LjQ1LDcuNDUsMCwwLDEsMzAsMTMuNVpt''@;'; + put 'put ''LTQuMDYsMy4wOC05LjY3LDkuNjdMMTEsMjAuOTRBMS4zNiwxLjM2LDAsMCwxLDEyLjksMTlsMy4zOCwzLjM4TDI0LDE0LjY2YTEuMzYsMS4zNiwwLDEsMSwxLjkzLDEuOTNaIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xp''@;'; + put 'put ''ZC1wYXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPicpLEwuQ2xyU2hhcGVFeWU9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMzLjYyLDE3LjUzYy0zLjM3LTYuMjMtOS4yOC0xMC0xNS44Mi0xMFM1LjM0LDExLjMsMiwxNy41M0wxLjcyLDE4bC4y''@;'; + put 'put ''Ni40OGMzLjM3LDYuMjMsOS4yOCwxMCwxNS44MiwxMHMxMi40Ni0zLjcyLDE1LjgyLTEwbC4yNi0uNDhaTTE3LjgsMjYuNDNDMTIuMTcsMjYuNDMsNywyMy4yOSw0LDE4YzMtNS4yOSw4LjE3LTguNDMsMTMuOC04LjQzUzI4LjU0LDEyLjcyLDMxLjU5LDE4QzI4LjU0LDIzLjI5LDIzLjQyLDI2''@;'; + put 'put ''LjQzLDE3LjgsMjYuNDNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LjA5LDExLjE3QTYuODYsNi44NiwwLDEsMCwyNSwxOCw2Ljg2LDYuODYsMCwwLDAsMTguMDksMTEuMTdabTAsMTEuNzJBNC44Niw0Ljg2''@;'; + put 'put ''LDAsMSwxLDIzLDE4LDQuODcsNC44NywwLDAsMSwxOC4wOSwyMi44OVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuNjIsMTcuNTNjLTMuMzctNi4yMy05LjI4LTEwLTE1LjgyLTEwUzUuMzQsMTEuMywyLDE3''@;'; + put 'put ''LjUzTDEuNzIsMThsLjI2LjQ4YzMuMzcsNi4yMyw5LjI4LDEwLDE1LjgyLDEwczEyLjQ2LTMuNzIsMTUuODItMTBsLjI2LS40OFpNMTcuOCwyNi40M0MxMi4xNywyNi40Myw3LDIzLjI5LDQsMThjMy01LjI5LDguMTctOC40MywxMy44LTguNDNTMjguNTQsMTIuNzIsMzEuNTksMThDMjguNTQs''@;'; + put 'put ''MjMuMjksMjMuNDIsMjYuNDMsMTcuOCwyNi40M1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjE4LjA5IiBjeT0iMTguMDMiIHI9IjYuODYiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiLz4n''@;'; + put 'put ''KSxMLkNsclNoYXBlRXllSGlkZT0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjUuMTksMjAuNEE2Ljc4LDYuNzgsMCwwLDAsMjUuNjIsMThhNi44Niw2Ljg2LDAsMCwwLTYuODYtNi44Niw2Ljc5LDYuNzksMCwwLDAtMi4zNy40M0wxOCwxMy4yM2E0Ljc4LDQuNzgsMCwwLDEsLjc0LS4w''@;'; + put 'put ''NkE0Ljg3LDQuODcsMCwwLDEsMjMuNjIsMThhNC43OSw0Ljc5LDAsMCwxLS4wNi43NFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzQuMjksMTcuNTNjLTMuMzctNi4yMy05LjI4LTEwLTE1LjgyLTEwYTE2Ljgy''@;'; + put 'put ''LDE2LjgyLDAsMCwwLTUuMjQuODVMMTQuODQsMTBhMTQuNzgsMTQuNzgsMCwwLDEsMy42My0uNDdjNS42MywwLDEwLjc1LDMuMTQsMTMuOCw4LjQzYTE3Ljc1LDE3Ljc1LDAsMCwxLTQuMzcsNS4xbDEuNDIsMS40MmExOS45MywxOS45MywwLDAsMCw1LTZsLjI2LS40OFoiIGNsYXNzPSJjbHIt''@;'; + put 'put ''aS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNNC44Nyw1Ljc4bDQuNDYsNC40NmExOS41MiwxOS41MiwwLDAsMC02LjY5LDcuMjlMMi4zOCwxOGwuMjYuNDhjMy4zNyw2LjIzLDkuMjgsMTAsMTUuODIsMTBhMTYuOTMsMTYuOTMsMCwwLDAs''@;'; + put 'put ''Ny4zNy0xLjY5bDUsNSwxLjc1LTEuNS0yNi0yNlptOS43NSw5Ljc1LDYuNjUsNi42NWE0LjgxLDQuODEsMCwwLDEtMi41LjcyQTQuODcsNC44NywwLDAsMSwxMy45LDE4LDQuODEsNC44MSwwLDAsMSwxNC42MiwxNS41M1ptLTEuNDUtMS40NWE2Ljg1LDYuODUsMCwwLDAsOS41NSw5LjU1bDEu''@;'; + put 'put ''NiwxLjZhMTQuOTEsMTQuOTEsMCwwLDEtNS44NiwxLjJjLTUuNjMsMC0xMC43NS0zLjE0LTEzLjgtOC40M2ExNy4yOSwxNy4yOSwwLDAsMSw2LjEyLTYuM1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTguMzcs''@;'; + put 'put ''MTEuMTdBNi43OSw2Ljc5LDAsMCwwLDE2LDExLjZsOC44LDguOEE2Ljc4LDYuNzgsMCwwLDAsMjUuMjMsMTgsNi44Niw2Ljg2LDAsMCwwLDE4LjM3LDExLjE3WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTM0LjI5LDE3''@;'; + put 'put ''LjUzYy0zLjM3LTYuMjMtOS4yOC0xMC0xNS44Mi0xMGExNi44MiwxNi44MiwwLDAsMC01LjI0Ljg1TDE0Ljg0LDEwYTE0Ljc4LDE0Ljc4LDAsMCwxLDMuNjMtLjQ3YzUuNjMsMCwxMC43NSwzLjE0LDEzLjgsOC40M2ExNy43NSwxNy43NSwwLDAsMS00LjM3LDUuMWwxLjQyLDEuNDJhMTkuOTMs''@;'; + put 'put ''MTkuOTMsMCwwLDAsNS02bC4yNi0uNDhaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNNC44Nyw1Ljc4bDQuNDYsNC40NmExOS41MiwxOS41MiwwLDAsMC02LjY5LDcuMjlMMi4zOCwxOGwuMjYuNDhjMy4zNyw2LjIzLDku''@;'; + put 'put ''MjgsMTAsMTUuODIsMTBhMTYuOTMsMTYuOTMsMCwwLDAsNy4zNy0xLjY5bDUsNSwxLjc1LTEuNS0yNi0yNlptOC4zLDguM2E2Ljg1LDYuODUsMCwwLDAsOS41NSw5LjU1bDEuNiwxLjZhMTQuOTEsMTQuOTEsMCwwLDEtNS44NiwxLjJjLTUuNjMsMC0xMC43NS0zLjE0LTEzLjgtOC40M2ExNy4y''@;'; + put 'put ''OSwxNy4yOSwwLDAsMSw2LjEyLTYuM1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiLz4nKSxMLkNsclNoYXBlU3RlcEZvcndhcmQyPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik03LjA4LDYuNTJhMS42OCwxLjY4LDAsMCwwLDAsMi40TDE2LjUxLDE4LDcuMTIs''@;'; + put 'put ''MjcuMDhhMS43LDEuNywwLDAsMCwyLjM2LDIuNDRoMEwyMS40LDE4LDkuNDgsNi40N0ExLjY5LDEuNjksMCwwLDAsNy4wOCw2LjUyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTI2LjQ5LDVhMS43LDEuNywwLDAsMC0xLjcsMS43VjI5''@;'; + put 'put ''LjNhMS43LDEuNywwLDAsMCwzLjQsMFY2LjdBMS43LDEuNywwLDAsMCwyNi40OSw1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+JyksTC5DbHJTaGFwZUFycm93PSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yNy42NiwxNS42MSwxOCw2LDguMzQs''@;'; + put 'put ''MTUuNjFBMSwxLDAsMSwwLDkuNzUsMTdMMTcsOS44MVYyOC45NGExLDEsMCwxLDAsMiwwVjkuODFMMjYuMjUsMTdhMSwxLDAsMCwwLDEuNDEtMS40MloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+JyksTC5Db3JlU2hhcGVzPXsidW5rbm93bi1zdGF0dXMi''@;'; + put 'put ''OkwuQ2xyU2hhcGVVbmtub3duU3RhdHVzLGhvbWU6TC5DbHJTaGFwZUhvbWUsY29nOkwuQ2xyU2hhcGVDb2csY2hlY2s6TC5DbHJTaGFwZUNoZWNrLHRpbWVzOkwuQ2xyU2hhcGVUaW1lcywiZXhjbGFtYXRpb24tdHJpYW5nbGUiOkwuQ2xyU2hhcGVFeGNsYW1hdGlvblRyaWFuZ2xlLCJleGNs''@;'; + put 'put ''YW1hdGlvbi1jaXJjbGUiOkwuQ2xyU2hhcGVFeGNsYW1hdGlvbkNpcmNsZSwiY2hlY2stY2lyY2xlIjpMLkNsclNoYXBlQ2hlY2tDaXJjbGUsImluZm8tY2lyY2xlIjpMLkNsclNoYXBlSW5mb0NpcmNsZSwiaW5mby1zdGFuZGFyZCI6TC5DbHJTaGFwZUluZm9TdGFuZGFyZCwic3VjY2Vzcy1z''@;'; + put 'put ''dGFuZGFyZCI6TC5DbHJTaGFwZVN1Y2Nlc3NTdGFuZGFyZCwiZXJyb3Itc3RhbmRhcmQiOkwuQ2xyU2hhcGVFcnJvclN0YW5kYXJkLCJ3YXJuaW5nLXN0YW5kYXJkIjpMLkNsclNoYXBlV2FybmluZ1N0YW5kYXJkLCJoZWxwLWluZm8iOkwuQ2xyU2hhcGVIZWxwSW5mbyxiYXJzOkwuQ2xyU2hh''@;'; + put 'put ''cGVCYXJzLHVzZXI6TC5DbHJTaGFwZVVzZXIsYW5nbGU6TC5DbHJTaGFwZUFuZ2xlLGZvbGRlcjpMLkNsclNoYXBlRm9sZGVyLCJmb2xkZXItb3BlbiI6TC5DbHJTaGFwZUZvbGRlck9wZW4sYmVsbDpMLkNsclNoYXBlQmVsbCxpbWFnZTpMLkNsclNoYXBlSW1hZ2UsY2xvdWQ6TC5DbHJTaGFw''@;'; + put 'put ''ZUNsb3VkLCJlbGxpcHNpcy1ob3Jpem9udGFsIjpMLkNsclNoYXBlRWxsaXBzaXNIb3Jpem9udGFsLCJlbGxpcHNpcy12ZXJ0aWNhbCI6TC5DbHJTaGFwZUVsbGlwc2lzVmVydGljYWwsImZpbHRlci1ncmlkIjpMLkNsclNoYXBlRmlsdGVyR3JpZCwiZmlsdGVyLWdyaWQtY2lyY2xlIjpMLkNs''@;'; + put 'put ''clNoYXBlRmlsdGVyR3JpZENpcmNsZSwidm0tYnVnIjpMLkNsclNoYXBlVm1CdWcsc2VhcmNoOkwuQ2xyU2hhcGVTZWFyY2gsInZpZXctY29sdW1ucyI6TC5DbHJTaGFwZVZpZXdDb2x1bW5zLCJhbmdsZS1kb3VibGUiOkwuQ2xyU2hhcGVBbmdsZURvdWJsZSxjYWxlbmRhcjpMLkNsclNoYXBl''@;'; + put 'put ''Q2FsZW5kYXIsZXZlbnQ6TC5DbHJTaGFwZUV2ZW50LGV5ZTpMLkNsclNoYXBlRXllLCJleWUtaGlkZSI6TC5DbHJTaGFwZUV5ZUhpZGUsInN0ZXAtZm9yd2FyZC0yIjpMLkNsclNoYXBlU3RlcEZvcndhcmQyLGFycm93OkwuQ2xyU2hhcGVBcnJvd30sT2JqZWN0LmRlZmluZVByb3BlcnR5KEwu''@;'; + put 'put ''Q29yZVNoYXBlcywiaG91c2UiLCgwLEIuZGVzY3JpcHRvckNvbmZpZykoTC5Db3JlU2hhcGVzLmhvbWUpKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoTC5Db3JlU2hhcGVzLCJzZXR0aW5ncyIsKDAsQi5kZXNjcmlwdG9yQ29uZmlnKShMLkNvcmVTaGFwZXMuY29nKSksT2JqZWN0LmRlZmluZVBy''@;'; + put 'put ''b3BlcnR5KEwuQ29yZVNoYXBlcywic3VjY2VzcyIsKDAsQi5kZXNjcmlwdG9yQ29uZmlnKShMLkNvcmVTaGFwZXMuY2hlY2spKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoTC5Db3JlU2hhcGVzLCJjbG9zZSIsKDAsQi5kZXNjcmlwdG9yQ29uZmlnKShMLkNvcmVTaGFwZXMudGltZXMpKSxPYmpl''@;'; + put 'put ''Y3QuZGVmaW5lUHJvcGVydHkoTC5Db3JlU2hhcGVzLCJ3YXJuaW5nIiwoMCxCLmRlc2NyaXB0b3JDb25maWcpKEwuQ29yZVNoYXBlc1siZXhjbGFtYXRpb24tdHJpYW5nbGUiXSkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShMLkNvcmVTaGFwZXMsImVycm9yIiwoMCxCLmRlc2NyaXB0b3JDb25m''@;'; + put 'put ''aWcpKEwuQ29yZVNoYXBlc1siZXhjbGFtYXRpb24tY2lyY2xlIl0pKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoTC5Db3JlU2hhcGVzLCJpbmZvIiwoMCxCLmRlc2NyaXB0b3JDb25maWcpKEwuQ29yZVNoYXBlc1siaW5mby1jaXJjbGUiXSkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShMLkNvcmVT''@;'; + put 'put ''aGFwZXMsIm1lbnUiLCgwLEIuZGVzY3JpcHRvckNvbmZpZykoTC5Db3JlU2hhcGVzLmJhcnMpKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoTC5Db3JlU2hhcGVzLCJhdmF0YXIiLCgwLEIuZGVzY3JpcHRvckNvbmZpZykoTC5Db3JlU2hhcGVzLnVzZXIpKSxPYmplY3QuZGVmaW5lUHJvcGVydHko''@;'; + put 'put ''TC5Db3JlU2hhcGVzLCJjYXJldCIsKDAsQi5kZXNjcmlwdG9yQ29uZmlnKShMLkNvcmVTaGFwZXMuYW5nbGUpKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoTC5Db3JlU2hhcGVzLCJkaXJlY3RvcnkiLCgwLEIuZGVzY3JpcHRvckNvbmZpZykoTC5Db3JlU2hhcGVzLmZvbGRlcikpLE9iamVjdC5k''@;'; + put 'put ''ZWZpbmVQcm9wZXJ0eShMLkNvcmVTaGFwZXMsIm5vdGlmaWNhdGlvbiIsKDAsQi5kZXNjcmlwdG9yQ29uZmlnKShMLkNvcmVTaGFwZXMuYmVsbCkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShMLkNvcmVTaGFwZXMsImNvbGxhcHNlIiwoMCxCLmRlc2NyaXB0b3JDb25maWcpKEwuQ29yZVNoYXBl''@;'; + put 'put ''c1siYW5nbGUtZG91YmxlIl0pKX0sIi4vcHJvamVjdHMvaWNvbnMvc3JjL3NoYXBlcy9lc3NlbnRpYWwtc2hhcGVzLnRzIjpmdW5jdGlvbihKZSxMLG1lKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KEwsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLEwuQ2xyU2hhcGVMb2dv''@;'; + put 'put ''dXQ9TC5DbHJTaGFwZUxvZ2luPUwuQ2xyU2hhcGVIZWxwPUwuQ2xyU2hhcGVDb3B5PUwuQ2xyU2hhcGVDaGlsZEFycm93PUwuQ2xyU2hhcGVDaXJjbGVBcnJvdz1MLkNsclNoYXBlQWxhcm1DbG9jaz1MLkNsclNoYXBlQ2xvY2s9TC5DbHJTaGFwZUhpc3Rvcnk9TC5DbHJTaGFwZVRhZ3M9TC5D''@;'; + put 'put ''bHJTaGFwZVRhZz1MLkNsclNoYXBlVHJhc2g9TC5DbHJTaGFwZVRpbWVzQ2lyY2xlPUwuQ2xyU2hhcGVCYW49TC5DbHJTaGFwZVBsdXNDaXJjbGU9TC5DbHJTaGFwZU1pbnVzQ2lyY2xlPUwuQ2xyU2hhcGVNaW51cz1MLkNsclNoYXBlUGx1cz1MLkNsclNoYXBlRmlsZT1MLkNsclNoYXBlUGlu''@;'; + put 'put ''PUwuQ2xyU2hhcGVGaWx0ZXI9TC5DbHJTaGFwZVBvcE91dD1MLkNsclNoYXBlVXNlcnM9TC5DbHJTaGFwZVVubG9jaz1MLkNsclNoYXBlTG9jaz1MLkNsclNoYXBlVXBsb2FkPUwuQ2xyU2hhcGVEb3dubG9hZD1MLkNsclNoYXBlTGlnaHRidWxiPUwuQ2xyU2hhcGVWaWV3Q2FyZHM9TC5DbHJT''@;'; + put 'put ''aGFwZVZpZXdMaXN0PUwuQ2xyU2hhcGVTeW5jPUwuQ2xyU2hhcGVSZWZyZXNoPUwuQ2xyU2hhcGVOb3RlPUwuQ2xyU2hhcGVQZW5jaWw9TC5DbHJTaGFwZVRoZXJtb21ldGVyPUwuQ2xyU2hhcGVCdWc9TC5DbHJTaGFwZVNjaXNzb3JzPUwuQ2xyU2hhcGVBc3Rlcmlzaz1MLkNsclNoYXBlQm9v''@;'; + put 'put ''az1MLkNsclNoYXBlT2JqZWN0cz1MLkNsclNoYXBlUmVzaXplPUwuQ2xyU2hhcGVDdXJzb3JIYW5kQ2xpY2s9TC5DbHJTaGFwZUN1cnNvckhhbmQ9TC5DbHJTaGFwZUN1cnNvckFycm93PUwuQ2xyU2hhcGVHcmlkVmlldz1MLkNsclNoYXBlQnViYmxlRXhjbGFtYXRpb249TC5DbHJTaGFwZU5l''@;'; + put 'put ''dz1MLkNsclNoYXBlQWxhcm1PZmY9TC5DbHJTaGFwZVBpbmJvYXJkPUwuQ2xyU2hhcGVBZGRUZXh0PXZvaWQgMCxMLkNsclNoYXBlQ2xvbmU9TC5DbHJTaGFwZUN1cnNvck1vdmU9TC5DbHJTaGFwZVdhbmQ9TC5DbHJTaGFwZVN1bj1MLkNsclNoYXBlTW9vbj1MLkNsclNoYXBlRmlsdGVyMj1M''@;'; + put 'put ''LkNsclNoYXBlRHJhZ0hhbmRsZT1MLkNsclNoYXBlQ29weVRvQ2xpcGJvYXJkPUwuQ2xyU2hhcGVDb2xvclBpY2tlcj1MLkNsclNoYXBlQnJpZWZjYXNlPUwuQ2xyU2hhcGVFeHBhbmRDYXJkPUwuQ2xyU2hhcGVDb2xsYXBzZUNhcmQ9TC5DbHJTaGFwZVNvcnRCeT1MLkNsclNoYXBlQWNjZXNz''@;'; + put 'put ''aWJpbGl0eTI9TC5DbHJTaGFwZUFjY2Vzc2liaWxpdHkxPUwuQ2xyU2hhcGVTaHJpbms9TC5DbHJTaGFwZVBhcGVyY2xpcD1MLkNsclNoYXBlRmlsZUdyb3VwPUwuQ2xyU2hhcGVSZXBlYXQ9TC5DbHJTaGFwZUlkQmFkZ2U9TC5DbHJTaGFwZUJhbGFuY2U9TC5DbHJTaGFwZU9yZ2FuaXphdGlv''@;'; + put 'put ''bj1MLkNsclNoYXBlTm9BY2Nlc3M9TC5DbHJTaGFwZUhvdXJnbGFzcz1MLkNsclNoYXBlRmxhbWU9TC5DbHJTaGFwZVRhcmdldD1MLkNsclNoYXBlQnVsbHNleWU9TC5DbHJTaGFwZVdyZW5jaD1MLkNsclNoYXBlQm9sdD1MLkNsclNoYXBlTGlicmFyeT1MLkNsclNoYXBlS2V5PUwuQ2xyU2hh''@;'; + put 'put ''cGVab29tT3V0PUwuQ2xyU2hhcGVab29tSW49TC5DbHJTaGFwZVdpbmRvd1Jlc3RvcmU9TC5DbHJTaGFwZVdpbmRvd01pbj1MLkNsclNoYXBlV2luZG93TWF4PUwuQ2xyU2hhcGVXaW5kb3dDbG9zZT1MLkNsclNoYXBlVG9vbHM9TC5DbHJTaGFwZVN3aXRjaD1MLkNsclNoYXBlVHdvV2F5QXJy''@;'; + put 'put ''b3dzPUwuQ2xyU2hhcGVGaWxlU2V0dGluZ3M9TC5DbHJTaGFwZVNjcm9sbD1MLkNsclNoYXBlVW5kbz1MLkNsclNoYXBlUmVkbz1MLkNsclNoYXBlTGlzdD1MLkNsclNoYXBlRmlyZXdhbGw9TC5DbHJTaGFwZUNsaXBib2FyZD1MLkNsclNoYXBlU2xpZGVyPUwuQ2xyU2hhcGVXb3JsZD1MLkNs''@;'; + put 'put ''clNoYXBlUHJpbnRlcj12b2lkIDAsTC5Fc3NlbnRpYWxTaGFwZXM9TC5DbHJTaGFwZUNvbG9yUGFsZXR0ZT1MLkNsclNoYXBlRmlyc3RBaWQ9TC5DbHJTaGFwZUJldGE9TC5DbHJTaGFwZURvdENpcmNsZT1MLkNsclNoYXBlQ2lyY2xlPUwuQ2xyU2hhcGVDcm9zc2hhaXJzPUwuQ2xyU2hhcGVW''@;'; + put 'put ''b2x1bWU9TC5DbHJTaGFwZVRhYmxlPUwuQ2xyU2hhcGVTbm93Zmxha2U9TC5DbHJTaGFwZUZ1ZWw9TC5DbHJTaGFwZUZvcm09TC5DbHJTaGFwZUZpc2g9TC5DbHJTaGFwZVRyZWU9TC5DbHJTaGFwZVJlY3ljbGU9TC5DbHJTaGFwZUZpbHRlck9mZj1MLkNsclNoYXBlRmlsZVppcD1MLkNsclNo''@;'; + put 'put ''YXBlQ3Vyc29ySGFuZE9wZW49TC5DbHJTaGFwZUN1cnNvckhhbmRHcmFiPUwuQ2xyU2hhcGVUcmVlVmlldz1MLkNsclNoYXBlUG9ydHJhaXQ9TC5DbHJTaGFwZVBhc3RlPUwuQ2xyU2hhcGVMYW5kc2NhcGU9TC5DbHJTaGFwZUVyYXNlcj1MLkNsclNoYXBlRHJhZ0hhbmRsZUNvcm5lcj1MLkNs''@;'; + put 'put ''clNoYXBlRGV0YWlscz12b2lkIDA7dmFyIEI9bWUoIi4vcHJvamVjdHMvaWNvbnMvc3JjL3V0aWxzL2Rlc2NyaXB0b3ItY29uZmlnLnRzIiksRT1tZSgiLi9wcm9qZWN0cy9pY29ucy9zcmMvdXRpbHMvc3ZnLXRhZy1nZW5lcmF0b3IudHMiKSxNZT1tZSgiLi9wcm9qZWN0cy9pY29ucy9zcmMv''@;'; + put 'put ''c2hhcGVzL2NvcmUtc2hhcGVzLnRzIik7TC5DbHJTaGFwZUFkZFRleHQ9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMSwyMUgxM2ExLDEsMCwwLDAsMCwySDMxYTEsMSwwLDAsMCwwLTJaIi8+XG4gICAgICAg''@;'; + put 'put ''ICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTEyLDE2YTEsMSwwLDAsMCwxLDFIMzFhMSwxLDAsMCwwLDAtMkgxM0ExLDEsMCwwLDAsMTIsMTZaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1v''@;'; + put 'put ''dXRsaW5lLXBhdGgtMyIgZD0iTTI3LDI3SDEzYTEsMSwwLDAsMCwwLDJIMjdhMSwxLDAsMCwwLDAtMloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiBkPSJNMTUuODksOWExLDEsMCwwLDAtMS0xSDEwVjMuMjFhMSwxLDAs''@;'; + put 'put ''MCwwLTIsMFY4SDIuODlhMSwxLDAsMCwwLDAsMkg4djUuMjFhMSwxLDAsMCwwLDIsMFYxMGg0Ljg5QTEsMSwwLDAsMCwxNS44OSw5WiIvPicpLEwuQ2xyU2hhcGVQaW5ib2FyZD0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgt''@;'; + put 'put ''MSIgZD0iTTMwLDMwLDYsMzAsNiw2SDIyVjRINkEyLDIsMCwwLDAsNCw2VjMwYTIsMiwwLDAsMCwyLDJIMzBhMiwyLDAsMCwwLDItMlYxNEgzMFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMzMuNTcsOS4zM2wt''@;'; + put 'put ''Ny03YTEsMSwwLDAsMC0xLjQxLDEuNDFsNyw3YTEsMSwwLDEsMCwxLjQxLTEuNDFaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgZD0iTTIyLjEsMTEuMTlsLjcuNUwyNi40Niw4LDI1LDYuNTYsMjIuNTEsOS4xM2MtMi0u''@;'; + put 'put ''ODctNC4zNS4xNC01LjkyLDEuNjhsLS43Mi43MSwzLjU0LDMuNTQtMy42NywzLjY3LDEuNDEsMS40MSwzLjY3LTMuNjdMMjQuMzcsMjBsLjcxLS43MmMxLjU0LTEuNTcsMi41NS0zLjkyLDEuNjgtNS45M2wyLjU0LTIuNTdMMjcuODgsOS4zOCwyNC4yMSwxMy4xbC40OS42OWMuNzYsMSwuMjUs''@;'; + put 'put ''Mi4zNy0uNDEsMy4zM0wxOC43NywxMS42QzE5Ljg0LDEwLjg2LDIxLjE1LDEwLjUsMjIuMSwxMS4xOVoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zMCwzMCw2LDMwLDYsNkgyMlY0SDZBMiwyLDAsMCwwLDQsNlYzMGEy''@;'; + put 'put ''LDIsMCwwLDAsMiwySDMwYTIsMiwwLDAsMCwyLTJWMTRIMzBaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiBkPSJNMzMuNTcsOS4zM2wtNy03YTEsMSwwLDAsMC0xLjQxLDEuNDFsMS4zOCwxLjM4LTQsNGMtMi0uODctNC4zNS4x''@;'; + put 'put ''NC01LjkyLDEuNjhsLS43Mi43MSwzLjU0LDMuNTQtMy42NywzLjY3LDEuNDEsMS40MSwzLjY3LTMuNjdMMjQuMzcsMjBsLjcxLS43MmMxLjU0LTEuNTcsMi41NS0zLjkxLDEuNjgtNS45Mmw0LTQsMS4zOCwxLjM4YTEsMSwwLDEsMCwxLjQxLTEuNDFaIi8+JyksTC5DbHJTaGFwZUFsYXJtT2Zm''@;'; + put 'put ''PSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzEuNDcsMy44NGE1Ljc4LDUuNzgsMCwwLDAtNy4zNy0uNjMsMTYuMDgsMTYuMDgsMCwwLDEsOC4yLDcuNjVBNS43Myw1LjczLDAsMCwwLDMxLjQ3LDMuODRaIi8+''@;'; + put 'put ''XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTI1LjMzLDIxLjU0YS45LjksMCwwLDAtLjQxLTEuMmwtMy4yLTEuNTZMMjQuODksMjJBLjg5Ljg5LDAsMCwwLDI1LjMzLDIxLjU0WiIvPlxuICAgICAgICAgICAgPHBhdGgg''@;'; + put 'put ''Y2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIGQ9Ik0xOCw4LjZhLjkuOSwwLDAsMC0uOS45djQuNmwxLjgsMS44MVY5LjVBLjkuOSwwLDAsMCwxOCw4LjZaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBh''@;'; + put 'put ''dGgtNCIgZD0iTTExLjQyLDMuNDNhNS44LDUuOCwwLDAsMC01LjgxLS44MUw4LjMsNS4zMkExNiwxNiwwLDAsMSwxMS40MiwzLjQzWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIGQ9Ik0xOCw0YTEzLjkxLDEzLjkxLDAs''@;'; + put 'put ''MCwwLTguMywyLjc1bDEuNDIsMS40M0ExMiwxMiwwLDAsMSwyNy44MiwyNC45bDEuNDIsMS40M0ExNCwxNCwwLDAsMCwxOCw0WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIGQ9Ik0xLjU2LDQuMjEsMi43Myw1LjM4YTUu''@;'; + put 'put ''Nyw1LjcsMCwwLDAsLjY3LDYuMUExNS43OCwxNS43OCwwLDAsMSw1LjQ2LDguMTJMNi44OCw5LjU1QTEzLjk0LDEzLjk0LDAsMCwwLDguMTEsMjcuODhMNS41NiwzMC40M0ExLDEsMCwxLDAsNywzMS44NGwyLjY2LTIuNjZhMTMuODksMTMuODksMCwwLDAsMTYuOCwwbDQuMTQsNC4xNUwzMiwz''@;'; + put 'put ''MS45LDMsMi44Wk0yNSwyNy43MkExMS44OSwxMS44OSwwLDAsMSwxOCwzMCwxMiwxMiwwLDAsMSw2LDE4YTExLjg5LDExLjg5LDAsMCwxLDIuMjktN1oiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zMS40NywzLjg0YTUu''@;'; + put 'put ''NzgsNS43OCwwLDAsMC03LjM3LS42MywxNi4wOCwxNi4wOCwwLDAsMSw4LjIsNy42NUE1LjczLDUuNzMsMCwwLDAsMzEuNDcsMy44NFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGQ9Ik0xMS40MiwzLjQzYTUuOCw1LjgsMCww''@;'; + put 'put ''LDAtNS43Ny0uODJMOC4zMyw1LjNBMTYsMTYsMCwwLDEsMTEuNDIsMy40M1oiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIGQ9Ik0yNC45MiwyMS45NGw0LjM0LDQuMzZBMTQsMTQsMCwwLDAsOS43NSw2LjczTDE3LDE0VjkuNjlh''@;'; + put 'put ''MSwxLDAsMCwxLDIsMFYxNmwyLjMzLDIuMzRMMjUsMjAuMWExLDEsMCwwLDEsLjQ3LDEuMzNBMSwxLDAsMCwxLDI0LjkyLDIxLjk0WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNCIgZD0iTTEuNjEsNC4yMSwyLjczLDUuMzRhNS43''@;'; + put 'put ''Myw1LjczLDAsMCwwLC42Nyw2LjE1QTE1Ljg4LDE1Ljg4LDAsMCwxLDUuNDgsOC4xTDYuOTEsOS41MkExMy45NCwxMy45NCwwLDAsMCw4LjExLDI3Ljg4TDUuNTYsMzAuNDNBMSwxLDAsMSwwLDcsMzEuODRsMi42Ni0yLjY2YTEzLjg5LDEzLjg5LDAsMCwwLDE2LjgzLDBsNC4xNiw0LjE3TDMy''@;'; + put 'put ''LDMxLjksMywyLjhaIi8+JyksTC5DbHJTaGFwZU5ldz0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTM0LjU5LDIzbC00LjA4LTUsNC00LjlhMS44MiwxLjgyLDAsMCwwLC4yMy0xLjk0QTEuOTMsMS45MywwLDAs''@;'; + put 'put ''MCwzMi45NCwxMGgtMzFBMS45MSwxLjkxLDAsMCwwLDAsMTEuODhWMjQuMTNBMS45MSwxLjkxLDAsMCwwLDEuOTQsMjZIMzMuMDVhMS45MywxLjkzLDAsMCwwLDEuNzctMS4wOUExLjgyLDEuODIsMCwwLDAsMzQuNTksMjNaTTIsMjRWMTJIMzIuNzhsLTQuODQsNS45M0wzMi44NSwyNFoiLz5c''@;'; + put 'put ''biAgICAgICAgICAgIDxwb2x5Z29uICBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgcG9pbnRzPSI5LjM5IDE5LjM1IDYuMTMgMTUgNSAxNSA1IDIxLjE4IDYuMTMgMjEuMTggNi4xMyAxNi44NCA5LjM5IDIxLjE4IDEwLjUxIDIxLjE4IDEwLjUxIDE1IDkuMzkg''@;'; + put 'put ''MTUgOS4zOSAxOS4zNSIvPlxuICAgICAgICAgICAgPHBvbHlnb24gIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBwb2ludHM9IjEyLjE4IDIxLjE4IDE2Ljg0IDIxLjE4IDE2Ljg0IDIwLjE2IDEzLjMxIDIwLjE2IDEzLjMxIDE4LjU1IDE2LjUgMTguNTUgMTYu''@;'; + put 'put ''NSAxNy41MiAxMy4zMSAxNy41MiAxMy4zMSAxNi4wMyAxNi44NCAxNi4wMyAxNi44NCAxNSAxMi4xOCAxNSAxMi4xOCAyMS4xOCIvPlxuICAgICAgICAgICAgPHBvbHlnb24gIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiBwb2ludHM9IjI0LjUyIDE5LjQzIDIz''@;'; + put 'put ''LjA2IDE1IDIxLjg0IDE1IDIwLjM3IDE5LjQzIDE5LjA1IDE1IDE3LjgyIDE1IDE5Ljc4IDIxLjE4IDIwLjg5IDIxLjE4IDIyLjQ1IDE2LjU5IDI0IDIxLjE4IDI1LjEzIDIxLjE4IDI3LjA4IDE1IDI1Ljg1IDE1IDI0LjUyIDE5LjQzIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xy''@;'; + put 'put ''LWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzQuMTEsMjQuNDlsLTMuOTItNi42MiwzLjg4LTYuMzVBMSwxLDAsMCwwLDMzLjIyLDEwSDJhMiwyLDAsMCwwLTIsMlYyNGEyLDIsMCwwLDAsMiwySDMzLjI1QTEsMSwwLDAsMCwzNC4xMSwyNC40OVptLTIzLjYtMy4zMUg5LjM5TDYu''@;'; + put 'put ''MTMsMTYuODR2NC4zNUg1VjE1SDYuMTNsMy4yNyw0LjM1VjE1aDEuMTJaTTE2Ljg0LDE2SDEzLjMxdjEuNDloMy4ydjFoLTMuMnYxLjYxaDMuNTN2MUgxMi4xOFYxNWg0LjY1Wm04LjI5LDUuMTZIMjRsLTEuNTUtNC41OUwyMC45LDIxLjE4SDE5Ljc4bC0yLTYuMThIMTlsMS4zMiw0LjQzTDIx''@;'; + put 'put ''Ljg0LDE1aDEuMjJsMS40Niw0LjQzTDI1Ljg1LDE1aDEuMjNaIi8+JyksTC5DbHJTaGFwZUJ1YmJsZUV4Y2xhbWF0aW9uPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMTgsMi41Yy04LjgyLDAtMTYsNi4yOC0x''@;'; + put 'put ''NiwxNHM3LjE4LDE0LDE2LDE0YTE4LDE4LDAsMCwwLDQuODgtLjY4bDUuNTMsMy41MmExLDEsMCwwLDAsMS41NC0uODRsMC02LjczYTEzLDEzLDAsMCwwLDQtOS4yN0MzNCw4Ljc4LDI2LjgyLDIuNSwxOCwyLjVaTTI4LjI5LDI0LjYxYTEsMSwwLDAsMC0uMzIuNzNsMCw1LjM0LTQuMzgtMi43''@;'; + put 'put ''OWExLDEsMCwwLDAtLjgzLS4xMUExNiwxNiwwLDAsMSwxOCwyOC41Yy03LjcyLDAtMTQtNS4zOC0xNC0xMnM2LjI4LTEyLDE0LTEyLDE0LDUuMzgsMTQsMTJBMTEuMDgsMTEuMDgsMCwwLDEsMjguMjksMjQuNjFaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBj''@;'; + put 'put ''bHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTE4LDIwLjYzYTEsMSwwLDAsMCwxLTFWOC40OGExLDEsMCwxLDAtMiwwVjE5LjYxQTEsMSwwLDAsMCwxOCwyMC42M1oiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIGN4PSIx''@;'; + put 'put ''OCIgY3k9IjI0LjA0IiByPSIxLjMzIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMTgsMi41Yy04LjgyLDAtMTYsNi4yOC0xNiwxNHM3LjE4LDE0LDE2LDE0YTE4LDE4LDAsMCwwLDQuODgtLjY4bDUuNTMsMy41MmExLDEs''@;'; + put 'put ''MCwwLDAsMS41NC0uODRsMC02LjczYTEzLDEzLDAsMCwwLDQtOS4yN0MzNCw4Ljc4LDI2LjgyLDIuNSwxOCwyLjVaTTE2LjkzLDkuMTNhMS40MSwxLjQxLDAsMSwxLDIuODEsMFYxOC45YTEuNDEsMS40MSwwLDEsMS0yLjgxLDBabTEuNDEsMTcuMzVhMS44NywxLjg3LDAsMSwxLDEuODctMS44''@;'; + put 'put ''N0ExLjg3LDEuODcsMCwwLDEsMTguMzQsMjYuNDdaIi8+JyksTC5DbHJTaGFwZUdyaWRWaWV3PSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMTQsNEg2QTIsMiwwLDAsMCw0LDZ2OGEyLDIsMCwwLDAsMiwyaDhh''@;'; + put 'put ''MiwyLDAsMCwwLDItMlY2QTIsMiwwLDAsMCwxNCw0Wk02LDE0VjZoOHY4WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0zMCw0SDIyYTIsMiwwLDAsMC0yLDJ2OGEyLDIsMCwwLDAsMiwyaDhhMiwyLDAsMCwwLDIt''@;'; + put 'put ''MlY2QTIsMiwwLDAsMCwzMCw0Wk0yMiwxNFY2aDh2OFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJNMTQsMjBINmEyLDIsMCwwLDAtMiwydjhhMiwyLDAsMCwwLDIsMmg4YTIsMiwwLDAsMCwyLTJWMjJBMiwyLDAs''@;'; + put 'put ''MCwwLDE0LDIwWk02LDMwVjIyaDh2OFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiBkPSJNMzAsMjBIMjJhMiwyLDAsMCwwLTIsMnY4YTIsMiwwLDAsMCwyLDJoOGEyLDIsMCwwLDAsMi0yVjIyQTIsMiwwLDAsMCwzMCwy''@;'; + put 'put ''MFpNMjIsMzBWMjJoOHY4WiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgeD0iNCIgeT0iNCIgd2lkdGg9IjEyIiBoZWlnaHQ9IjEyIiByeD0iMiIgcnk9IjIiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1zb2xp''@;'; + put 'put ''ZCBjbHItaS1zb2xpZC1wYXRoLTIiIHg9IjIwIiB5PSI0IiB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHJ4PSIyIiByeT0iMiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIgeD0iNCIgeT0iMjAiIHdpZHRoPSIxMiIgaGVpZ2h0PSIx''@;'; + put 'put ''MiIgcng9IjIiIHJ5PSIyIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC00IiB4PSIyMCIgeT0iMjAiIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiIgcng9IjIiIHJ5PSIyIi8+JyksTC5DbHJTaGFwZUN1cnNvckFycm93PSgwLEUuY2xySWNv''@;'; + put 'put ''blNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMTQuNTgsMzIuMzFhMSwxLDAsMCwxLS45NC0uNjVMNCw1LjY1QTEsMSwwLDAsMSw1LjI1LDQuMzdsMjYsOS42OGExLDEsMCwwLDEtLjA1LDEuODlsLTguMzYsMi41Nyw4LjMsOC4zYTEs''@;'; + put 'put ''MSwwLDAsMSwwLDEuNDFsLTMuMjYsMy4yNmExLDEsMCwwLDEtLjcxLjI5aDBhMSwxLDAsMCwxLS43MS0uMjlsLTguMzMtOC4zMy0yLjYsOC40NWExLDEsMCwwLDEtLjkzLjcxWm0zLjA5LTEyYTEsMSwwLDAsMSwuNzEuMjlsOC43OSw4Ljc5TDI5LDI3LjUxbC04Ljc2LTguNzZhMSwxLDAsMCwx''@;'; + put 'put ''LC40MS0xLjY2bDcuMTMtMi4yTDYuNiw3bDcuODksMjEuMkwxNi43MSwyMWExLDEsMCwwLDEsLjcxLS42OFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0yOSwxMi4zNiwzLjg4LDNBMSwxLDAsMCwwLDIuNTksNC4yOEwx''@;'; + put 'put ''MiwyOS40NGExLDEsMCwwLDAsMS44OS0uMDVsMi42OS04Ljc1LDkuMTIsOC45YTEsMSwwLDAsMCwxLjQxLDBsMi4zNS0yLjM1YTEsMSwwLDAsMCwwLTEuNDFsLTkuMDktOC44NkwyOSwxNC4yNUExLDEsMCwwLDAsMjksMTIuMzZaIi8+JyksTC5DbHJTaGFwZUN1cnNvckhhbmQ9KDAsRS5jbHJJ''@;'; + put 'put ''Y29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMC43NCwxNS4xOWExMy42NiwxMy42NiwwLDAsMC02Ljg3LTMuODNBMjYsMjYsMCwwLDAsMTgsMTAuNThWNS4yOEEzLjQsMy40LDAsMCwwLDE0LjUsMiwzLjQsMy40LDAsMCwwLDEx''@;'; + put 'put ''LDUuMjh2MTBMOS40LDEzLjdhMy43NywzLjc3LDAsMCwwLTUuMjgsMEEzLjY3LDMuNjcsMCwwLDAsMywxNi4zM2EzLjYsMy42LDAsMCwwLDEsMi41Nmw0LjY2LDUuNTJhMTEuNTMsMTEuNTMsMCwwLDAsMS40Myw0LDEwLjEyLDEwLjEyLDAsMCwwLDIsMi41NHYxLjkyYTEuMDcsMS4wNywwLDAs''@;'; + put 'put ''MCwxLDEuMDhIMjdhMS4wNywxLjA3LDAsMCwwLDEtMS4wOHYtMi43YTEyLjgxLDEyLjgxLDAsMCwwLDMtOC4zNnYtNkExLDEsMCwwLDAsMzAuNzQsMTUuMTlaTTI5LDIxLjg2YTEwLjcyLDEwLjcyLDAsMCwxLTIuNiw3LjI2LDEuMTEsMS4xMSwwLDAsMC0uNC43MlYzMkgxNC4xNFYzMC41MmEx''@;'; + put 'put ''LDEsMCwwLDAtLjQ0LS44Myw3LjI2LDcuMjYsMCwwLDEtMS44Mi0yLjIzLDkuMTQsOS4xNCwwLDAsMS0xLjItMy41MiwxLDEsMCwwLDAtLjIzLS41OUw1LjUzLDE3LjUzYTEuNywxLjcsMCwwLDEsMC0yLjQyLDEuNzYsMS43NiwwLDAsMSwyLjQ3LDBsMywzdjMuMTRsMi0xVjUuMjhBMS40Miwx''@;'; + put 'put ''LjQyLDAsMCwxLDE0LjUsNCwxLjQyLDEuNDIsMCwwLDEsMTYsNS4yOHYxMS44bDIsLjQzVjEyLjU5YTI0LjI3LDI0LjI3LDAsMCwxLDIuNTEuMThWMThsMS42LjM1VjEzYy40MS4wOC44My4xNywxLjI2LjI4YTE0Ljg4LDE0Ljg4LDAsMCwxLDEuNTMuNDl2NS4xNWwxLjYuMzVWMTQuNUExMS4w''@;'; + put 'put ''NiwxMS4wNiwwLDAsMSwyOSwxNi4yM1oiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0yOC42OSwxNC4zM3Y0LjgzbC0yLS40M1YxMy4yNGExNi4xOSwxNi4xOSwwLDAsMC0yLjMzLS44NHY1LjgybC0yLS40M1YxMmMtMS4x''@;'; + put 'put ''LS4xOC0yLjE4LS4zLTMuMDgtLjM2djUuNTFsLTItLjQzVjExLjQ4aDBWNC4zNGEyLjUzLDIuNTMsMCwwLDAtMi42LTIuNDMsMi41MywyLjUzLDAsMCwwLTIuNiwyLjQzVjE3LjI3aDB2Mi41OWwtMiwxVjE1LjZMNy43NSwxMy4yMWEyLjgzLDIuODMsMCwwLDAtNCwwLDIuOTMsMi45MywwLDAs''@;'; + put 'put ''MCwwLDQuMDlsNiw3LjFhMTAuODIsMTAuODIsMCwwLDAsMS4zOSw0LjIyLDguNDIsOC40MiwwLDAsMCwyLjIxLDIuNzN2Mi41NkgyNy43OVYzMC42MmExMi41NCwxMi41NCwwLDAsMCwzLTguNXYtNkExMCwxMCwwLDAsMCwyOC42OSwxNC4zM1oiLz4nKSxMLkNsclNoYXBlQ3Vyc29ySGFuZENs''@;'; + put 'put ''aWNrPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzAuNCwxNy42Yy0xLjgtMS45LTQuMi0zLjItNi43LTMuN2MtMS4xLTAuMy0yLjItMC41LTMuMy0wLjZjMi44LTMuMywyLjMtOC4zLTEtMTEuMXMtOC4zLTIu''@;'; + put 'put ''My0xMS4xLDFzLTIuMyw4LjMsMSwxMS4xXG4gICAgICAgICAgICAgICAgICAgIGMwLjYsMC41LDEuMiwwLjksMS44LDEuMXYyLjJsLTEuNi0xLjVjLTEuNC0xLjQtMy43LTEuNC01LjIsMGMtMS40LDEuNC0xLjUsMy42LTAuMSw1bDQuNiw1LjRjMC4yLDEuNCwwLjcsMi43LDEuNCwzLjlcbiAg''@;'; + put 'put ''ICAgICAgICAgICAgICAgICAgYzAuNSwwLjksMS4yLDEuOCwxLjksMi41djEuOWMwLDAuNiwwLjQsMSwxLDFoMTMuNmMwLjUsMCwxLTAuNSwxLTF2LTIuNmMxLjktMi4zLDIuOS01LjIsMi45LTguMXYtNS44XG4gICAgICAgICAgICAgICAgICAgIEMzMC43LDE3LjksMzAuNiwxNy43LDMwLjQs''@;'; + put 'put ''MTcuNnogTTguNCw4LjJjMC0zLjMsMi43LTUuOSw2LTUuOGMzLjMsMCw1LjksMi43LDUuOCw2YzAsMS44LTAuOCwzLjQtMi4yLDQuNVY3LjlcbiAgICAgICAgICAgICAgICAgICAgYy0wLjEtMS44LTEuNi0zLjItMy40LTMuMmMtMS44LTAuMS0zLjQsMS40LTMuNCwzLjJ2NS4yQzkuNSwxMi4x''@;'; + put 'put ''LDguNSwxMC4yLDguNCw4LjJMOC40LDguMnogTTI4LjcsMjRjMC4xLDIuNi0wLjgsNS4xLTIuNSw3LjFcbiAgICAgICAgICAgICAgICAgICAgYy0wLjIsMC4yLTAuNCwwLjQtMC40LDAuN3YyLjFIMTQuMnYtMS40YzAtMC4zLTAuMi0wLjYtMC40LTAuOGMtMC43LTAuNi0xLjMtMS4zLTEuOC0y''@;'; + put 'put ''LjJjLTAuNi0xLTEtMi4yLTEuMi0zLjRcbiAgICAgICAgICAgICAgICAgICAgYzAtMC4yLTAuMS0wLjQtMC4yLTAuNmwtNC44LTUuN2MtMC4zLTAuMy0wLjUtMC43LTAuNS0xLjJjMC0wLjQsMC4yLTAuOSwwLjUtMS4yYzAuNy0wLjYsMS43LTAuNiwyLjQsMGwyLjksMi45djNsMS45LTFWNy45''@;'; + put 'put ''XG4gICAgICAgICAgICAgICAgICAgIGMwLjEtMC43LDAuNy0xLjMsMS41LTEuMmMwLjcsMCwxLjQsMC41LDEuNCwxLjJ2MTEuNWwyLDAuNHYtNC42YzAuMS0wLjEsMC4yLTAuMSwwLjMtMC4yYzAuNywwLDEuNCwwLjEsMi4xLDAuMnY1LjFsMS42LDAuM3YtNS4yXG4gICAgICAgICAgICAgICAg''@;'; + put 'put ''ICAgIGwxLjIsMC4zYzAuNSwwLjEsMSwwLjMsMS41LDAuNXY1bDEuNiwwLjN2LTQuNmMwLjksMC40LDEuNywxLDIuNCwxLjdMMjguNywyNHoiLz4nKSxMLkNsclNoYXBlUmVzaXplPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0''@;'; + put 'put ''aC0xIiBkPSJNMTksNGExLDEsMCwwLDAsMCwyaDkuNTlsLTkuMjUsOS4yNWExLDEsMCwxLDAsMS40MSwxLjQxTDMwLDcuNDFWMTdhMSwxLDAsMCwwLDIsMFY0WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik00LDE5''@;'; + put 'put ''YTEsMSwwLDAsMSwyLDB2OS41OWw5LjI1LTkuMjVhMSwxLDAsMSwxLDEuNDEsMS40MUw3LjQxLDMwSDE3YTEsMSwwLDAsMSwwLDJINFoiLz4nKSxMLkNsclNoYXBlT2JqZWN0cz0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgt''@;'; + put 'put ''MSIgZD0iTTE2LjA4LDE0LjlhMTAuNDEsMTAuNDEsMCwwLDEsMS44Ny0uNzFsLTQtMTAuNzdhMiwyLDAsMCwwLTMuNzUsMEwyLDI1LjI2QTIsMiwwLDAsMCwzLjkyLDI4aDYuOTRhMTAsMTAsMCwwLDEtLjUyLTJIMy45MkwxMi4wNiw0LjEyWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9''@;'; + put 'put ''ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0zMiw5SDIyYTIsMiwwLDAsMC0yLDJ2Mi44NWMuMjMsMCwuNDYsMCwuNjksMEExMC41MSwxMC41MSwwLDAsMSwyMiwxMy45VjExSDMyVjIxSDMwLjY1YTEwLjQyLDEwLjQyLDAsMCwxLC40NSwySDMyYTIsMiwwLDAsMCwy''@;'; + put 'put ''LTJWMTFBMiwyLDAsMCwwLDMyLDlaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgZD0iTTIwLjY5LDE1LjgxYTguNSw4LjUsMCwxLDAsOC41LDguNUE4LjUxLDguNTEsMCwwLDAsMjAuNjksMTUuODFabTAsMTVhNi41LDYu''@;'; + put 'put ''NSwwLDEsMSw2LjUtNi41QTYuNTEsNi41MSwwLDAsMSwyMC42OSwzMC44MVoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0xMC42NSwyNC40NGE5LjUxLDkuNTEsMCwwLDEsNy4wNi05LjE3TDEzLDNhMSwxLDAsMCwwLTEu''@;'; + put 'put ''ODcsMEwyLjA3LDI2LjU2QTEsMSwwLDAsMCwzLDI3LjkyaDguMzJBOS40NCw5LjQ0LDAsMCwxLDEwLjY1LDI0LjQ0WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgZD0iTTMyLDEwSDIwYTEsMSwwLDAsMC0xLDF2NGE5LjQzLDku''@;'; + put 'put ''NDMsMCwwLDEsMTAuNjMsOUgzMmExLDEsMCwwLDAsMS0xVjExQTEsMSwwLDAsMCwzMiwxMFoiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIgY3g9IjIwLjE1IiBjeT0iMjQuNDQiIHI9IjcuNSIvPicpLEwuQ2xyU2hhcGVCb29r''@;'; + put 'put ''PSgwLEUuY2xySWNvblNWRykoJzxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiB4PSIxMCIgeT0iNS4yIiB3aWR0aD0iMTgiIGhlaWdodD0iMS41NSIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1w''@;'; + put 'put ''YXRoLTIiIGQ9Ik0yOSw4SDkuODZBMS44OSwxLjg5LDAsMCwxLDgsNiwyLDIsMCwwLDEsOS44Niw0SDI5YTEsMSwwLDAsMCwwLTJIOS44NkE0LDQsMCwwLDAsNiw2YTQuMTQsNC4xNCwwLDAsMCwwLC40OSwxLDEsMCwwLDAsMCwuMjRWMzBhNCw0LDAsMCwwLDMuODYsNEgyOWExLDEsMCwwLDAs''@;'; + put 'put ''MS0xVjkuMjVzMC0uMDYsMC0uMDksMC0uMDYsMC0uMDlBMS4wNywxLjA3LDAsMCwwLDI5LDhaTTI4LDMySDkuODZBMiwyLDAsMCwxLDgsMzBWOS41NUEzLjYzLDMuNjMsMCwwLDAsOS44NiwxMEgyOFoiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xp''@;'; + put 'put ''ZC1wYXRoLTEiIHg9IjEwIiB5PSI1LjIiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxLjU1Ii8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiBkPSJNMjksOEg5Ljg2QTEuODksMS44OSwwLDAsMSw4LDYsMiwyLDAsMCwxLDkuODYsNEgyOWEx''@;'; + put 'put ''LDEsMCwxLDAsMC0ySDkuODZBNCw0LDAsMCwwLDYsNmE0LjE0LDQuMTQsMCwwLDAsMCwuNDksMSwxLDAsMCwwLDAsLjI0VjMwYTQsNCwwLDAsMCwzLjg2LDRIMjlhMSwxLDAsMCwwLDEtMVY5LjI1czAtLjA2LDAtLjA5LDAtLjA2LDAtLjA5QTEuMDcsMS4wNywwLDAsMCwyOSw4WiIvPicpLEwu''@;'; + put 'put ''Q2xyU2hhcGVBc3Rlcmlzaz0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTI4Ljg5LDIwLjkxbC01LTIuOTEsNC44Ny0yLjg2YTMuMTEsMy4xMSwwLDAsMCwxLjE0LTEuMDgsMywzLDAsMCwwLTQuMDktNC4xNUwy''@;'; + put 'put ''MSwxMi43NlY3YTMsMywwLDAsMC02LDB2NS43NkwxMC4xNSw5LjkxYTMsMywwLDEsMC0zLDUuMThsNSwyLjkxTDcuMiwyMC44NmEzLjExLDMuMTEsMCwwLDAtMS4xNCwxLjA4LDMsMywwLDAsMCw0LjA5LDQuMTRMMTUsMjMuMjRWMjguOWEzLDMsMCwwLDAsMiwyLjk0QTMsMywwLDAsMCwyMSwy''@;'; + put 'put ''OVYyMy4yNGw0Ljg1LDIuODVhMywzLDAsMSwwLDMtNS4xOFpNMjguMjQsMjRhMSwxLDAsMCwxLTEuMzcuMzZMMTksMTkuNzVWMjlhMSwxLDAsMCwxLTIsMFYxOS43NUw5LjEzLDI0LjM2YTEsMSwwLDAsMS0xLTEuNzJMMTYsMThsLTcuOS00LjY0YTEsMSwwLDEsMSwxLTEuNzJMMTcsMTYuMjVW''@;'; + put 'put ''N2ExLDEsMCwwLDEsMiwwdjkuMjVsNy44Ny00LjYyYTEsMSwwLDAsMSwxLDEuNzJMMjAsMThsNy45LDQuNjRBMSwxLDAsMCwxLDI4LjI0LDI0WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTI4Ljg5LDIwLjkxbC01LTIu''@;'; + put 'put ''OTEsNC44Ny0yLjg2YTMuMTEsMy4xMSwwLDAsMCwxLjE0LTEuMDgsMywzLDAsMCwwLTQuMDktNC4xNUwyMSwxMi43NlY3YTMsMywwLDAsMC02LDB2NS43NkwxMC4xNSw5LjkxYTMsMywwLDEsMC0zLDUuMThsNSwyLjkxTDcuMiwyMC44NmEzLjExLDMuMTEsMCwwLDAtMS4xNCwxLjA4LDMsMyww''@;'; + put 'put ''LDAsMCw0LjA5LDQuMTRMMTUsMjMuMjRWMjguOWEzLDMsMCwwLDAsMiwyLjk0QTMsMywwLDAsMCwyMSwyOVYyMy4yNGw0Ljg1LDIuODVhMywzLDAsMSwwLDMtNS4xOFoiLz4nKSxMLkNsclNoYXBlU2Npc3NvcnM9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUg''@;'; + put 'put ''Y2xyLWktb3V0bGluZS1wYXRoLTEiXG4gICAgICAgICAgICBkPSJNMjQuMDYsMTguMThsOS42MS04Ljc3YTEsMSwwLDAsMC0uMDktMS41NWwtMi4yNC0xLjZhMy41NywzLjU3LDAsMCwwLTQuMjguMTJMMTUuODgsMTUuM2wtMy4yNi0yLjUyYTUuNDUsNS40NSwwLDEsMC0xLDEuNzdsMi42Miwy''@;'; + put 'put ''TDEwLDIwYTUuNDgsNS40OCwwLDEsMCwxLjU5LDEuMjlMMjguMyw3Ljk0YTEuNTcsMS41NywwLDAsMSwxLjg4LS4wNWwxLjIzLjg4TDIxLjEsMTguMTlsMTAuMzEsOS40LTEuMjMuODhhMS41NywxLjU3LDAsMCwxLTEuODgtLjA1bC05LjgxLTcuODVMMTcsMjEuOTNsMTAuMDYsOGEzLjU3LDMu''@;'; + put 'put ''NTcsMCwwLDAsNC4yOS4xMmwyLjI0LTEuNmExLDEsMCwwLDAsLjA5LTEuNTVaTTcuNDUsMTQuNTRhMy40NiwzLjQ2LDAsMSwxLDMuNDUtMy40NkEzLjQ2LDMuNDYsMCwwLDEsNy40NSwxNC41NFptMCwxMy43MkEzLjQ2LDMuNDYsMCwxLDEsMTAuOSwyNC44LDMuNDYsMy40NiwwLDAsMSw3LjQ1''@;'; + put 'put ''LDI4LjI2WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTMzLjgxLDguMTMsMzEuNjMsNi40OGExLjkyLDEuOTIsMCwwLDAtMi4zNiwwTDEwLDIyLjA2YTUuNDYsNS40NiwwLDEsMCwyLDEuODFsMy45LTMuMTJMMjkuMjcs''@;'; + put 'put ''MzEuNTJhMS45MiwxLjkyLDAsMCwwLDIuMzYsMGwyLjE4LTEuNjRMMjAuOTQsMTlaTTcuNDUsMjkuNzVhMi44NiwyLjg2LDAsMSwxLDIuODYtMi44NkEyLjg3LDIuODcsMCwwLDEsNy40NSwyOS43NVoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xp''@;'; + put 'put ''ZC1wYXRoLTIiIGQ9Ik0xNC4zLDE1LjI0LDEyLDEzLjM4YTUuNDYsNS40NiwwLDEsMC0yLDEuODFMMTIuMTYsMTdabS02Ljg1LTJhMi44NiwyLjg2LDAsMSwxLDIuODYtMi44NkEyLjg2LDIuODYsMCwwLDEsNy40NSwxMy4yM1oiLz4nKSxMLkNsclNoYXBlQnVnPSgwLEUuY2xySWNvblNWRyko''@;'; + put 'put ''JzxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGN4PSIyMy41NiIgY3k9IjE3Ljc0IiByPSIxLjk1Ii8+XG4gICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBjeD0iMjIuNDIiIGN5PSIy''@;'; + put 'put ''NS44OCIgcj0iMS41OCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgY3g9IjEyLjg2IiBjeT0iMTcuNzQiIHI9IjEuOTUiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0''@;'; + put 'put ''bGluZS1wYXRoLTQiIGN4PSIxMy45OSIgY3k9IjI1Ljg4IiByPSIxLjU4Ii8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgZD0iTTMwLjgzLDIwSDI5YTE5LjI5LDE5LjI5LDAsMCwwLTEuMTgtNS43M2wxLjQ2LS43OWExLDEs''@;'; + put 'put ''MCwwLDAtLjk1LTEuNzZsLTMsMS42NEExNy42NSwxNy42NSwwLDAsMSwyNywyMC43MkMyNywyNywyMy44LDMxLjIzLDE4LjgsMzEuNjJWMTVIMTcuMlYzMS42MkMxMi4yMiwzMS4yMSw5LDI3LDksMjAuNzJhMTcuNzQsMTcuNzQsMCwwLDEsMS43My03LjM0TDcuNywxMS43MmExLDEsMCwwLDAt''@;'; + put 'put ''Ljk1LDEuNzZsMS41LjhBMTkuMzgsMTkuMzgsMCwwLDAsNy4wNywyMEg1LjE3YTEsMSwwLDAsMCwwLDJINy4xYTE0LjYyLDE0LjYyLDAsMCwwLDEuNjYsNi4xN0w2Ljg3LDI5LjQ5QTEsMSwwLDEsMCw4LDMxLjEybDEuODQtMS4yOUExMC4zOCwxMC4zOCwwLDAsMCwxOCwzMy42NmExMC4zOCwx''@;'; + put 'put ''MC4zOCwwLDAsMCw4LjE0LTMuODFMMjgsMzEuMTJhMSwxLDAsMSwwLDEuMTUtMS42NGwtMS44Ni0xLjNBMTQuNjEsMTQuNjEsMCwwLDAsMjguOTQsMjJoMS44OWExLDEsMCwwLDAsMC0yWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1w''@;'; + put 'put ''YXRoLTYiIGQ9Ik0xMS41MSw1LjM2YTEuNjcsMS42NywwLDAsMCwxLjA3LS41MUEzLjIxLDMuMjEsMCwwLDEsMTMuNzYsNmExNi4zOCwxNi4zOCwwLDAsMC0yLjY1LDIuODksMiwyLDAsMCwwLDEuNjEsMy4xOUgyMy4zMkEyLDIsMCwwLDAsMjUuMSwxMWEyLDIsMCwwLDAtLjE3LTIuMUExNi4z''@;'; + put 'put ''NCwxNi4zNCwwLDAsMCwyMi4yNSw2YTMuMjEsMy4yMSwwLDAsMSwxLjE3LTEuMTFBMS42OCwxLjY4LDAsMSwwLDIzLDMuMjcsNC43Nyw0Ljc3LDAsMCwwLDIxLDVhNS44MSw1LjgxLDAsMCwwLTIuOTMtMSw1LjgzLDUuODMsMCwwLDAtMywxQTQuNzcsNC43NywwLDAsMCwxMywzLjI3YTEuNjgs''@;'; + put 'put ''MS42OCwwLDEsMC0xLjQ5LDIuMDlaTTE4LDYuMDdjMS40NSwwLDMuNTMsMS41Nyw1LjMxLDRoMGwtMTAuNiwwQzE0LjQ5LDcuNjMsMTYuNTYsNi4wNywxOCw2LjA3WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTMwLjgz''@;'; + put 'put ''LDIwSDI5YTE5LjI5LDE5LjI5LDAsMCwwLTEuMTgtNS43M2wxLjQ2LS43OWExLDEsMCwwLDAtLjk1LTEuNzZsLTMsMS4yOEgxMC43OEw3LjcsMTEuNzJhMSwxLDAsMCwwLS45NSwxLjc2bDEuNS44QTE5LjM4LDE5LjM4LDAsMCwwLDcuMDcsMjBINS4xN2ExLDEsMCwwLDAsMCwySDcuMWExNC42''@;'; + put 'put ''MiwxNC42MiwwLDAsMCwxLjY2LDYuMTdMNi44NywyOS40OUExLDEsMCwxLDAsOCwzMS4xMmwxLjg0LTEuMjlBMTAuMjksMTAuMjksMCwwLDAsMTcsMzMuNlYxNWgyVjMzLjZhMTAuMjksMTAuMjksMCwwLDAsNy4xNi0zLjc1TDI4LDMxLjEyYTEsMSwwLDEsMCwxLjE1LTEuNjRsLTEuODYtMS4z''@;'; + put 'put ''QTE0LjYxLDE0LjYxLDAsMCwwLDI4Ljk0LDIyaDEuODlhMSwxLDAsMCwwLDAtMlpNMTAuOTEsMTcuNzRhMS45NSwxLjk1LDAsMSwxLDEuOTUsMS45NUExLjk1LDEuOTUsMCwwLDEsMTAuOTEsMTcuNzRaTTE0LDI3LjQ2YTEuNTgsMS41OCwwLDEsMSwxLjU4LTEuNThBMS41OCwxLjU4LDAsMCwx''@;'; + put 'put ''LDE0LDI3LjQ2Wm04LjQzLDBBMS41OCwxLjU4LDAsMSwxLDI0LDI1Ljg4LDEuNTgsMS41OCwwLDAsMSwyMi40MiwyNy40NlptMS4xMy03Ljc3YTEuOTUsMS45NSwwLDEsMSwxLjk1LTEuOTVBMS45NSwxLjk1LDAsMCwxLDIzLjU2LDE5LjY5WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9''@;'; + put 'put ''ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgZD0iTTExLjIzLDUuMjZhMS42NywxLjY3LDAsMCwwLC41NC0uMzIsNS45LDUuOSwwLDAsMSwuODkuNTgsNy40NCw3LjQ0LDAsMCwxLC45NS45NEExOC40OCwxOC40OCwwLDAsMCwxMC43OSw5LjdjLS40LjU3LjA5LDEuMjguODYsMS4y''@;'; + put 'put ''OEgyNC40NGMuNzcsMCwxLjI2LS43MS44Ni0xLjI4YTE4LjM4LDE4LjM4LDAsMCwwLTIuODgtMy4yOCw3LjI4LDcuMjgsMCwwLDEsLjkxLS45LDUuOSw1LjksMCwwLDEsLjg5LS41OCwxLjY5LDEuNjksMCwxLDAtLjU2LTEuNTEsNy40OSw3LjQ5LDAsMCwwLTEuMzIuODMsOS4wNiw5LjA2LDAs''@;'; + put 'put ''MCwwLTEuMTksMS4xOEE1Ljg1LDUuODUsMCwwLDAsMTgsNC4zYTUuOTEsNS45MSwwLDAsMC0zLjE3LDEuMTksOS4yLDkuMiwwLDAsMC0xLjIyLTEuMjEsNy40OSw3LjQ5LDAsMCwwLTEuMzItLjgzLDEuNjgsMS42OCwwLDEsMC0xLjExLDEuODNaIi8+JyksTC5DbHJTaGFwZVRoZXJtb21ldGVy''@;'; + put 'put ''PSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMTksMjMuMTdWMTEuNDZIMTdWMjMuMmEzLDMsMCwxLDAsMiwwWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGlu''@;'; + put 'put ''ZS1wYXRoLTIiIGQ9Ik0yNiwxNWExLDEsMCwwLDAsMC0ySDIzLjkyVjExSDI2YTEsMSwwLDAsMCwwLTJIMjMuOTJWOGE2LDYsMCwwLDAtMTIsMFYyMC44MWE4LDgsMCwxLDAsMTItLjJWMTlIMjZhMSwxLDAsMCwwLDAtMkgyMy45MlYxNVpNMjQsMjZhNiw2LDAsMSwxLTEwLjM2LTQuMTJsLjI3''@;'; + put 'put ''LS4yOVY4YTQsNCwwLDAsMSw4LDBWMjEuNDRsLjMuMjlBNiw2LDAsMCwxLDI0LDI2WiIvPicpLEwuQ2xyU2hhcGVQZW5jaWw9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMy44Nyw4LjMyLDI4LDIuNDJhMi4w''@;'; + put 'put ''NywyLjA3LDAsMCwwLTIuOTIsMEw0LjI3LDIzLjJsLTEuOSw4LjJhMi4wNiwyLjA2LDAsMCwwLDIsMi41LDIuMTQsMi4xNCwwLDAsMCwuNDMsMEwxMy4wOSwzMiwzMy44NywxMS4yNEEyLjA3LDIuMDcsMCwwLDAsMzMuODcsOC4zMlpNMTIuMDksMzAuMiw0LjMyLDMxLjgzbDEuNzctNy42Mkwy''@;'; + put 'put ''MS42Niw4LjdsNiw2Wk0yOSwxMy4yNWwtNi02LDMuNDgtMy40Niw1LjksNloiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNNC4yMiwyMy4ybC0xLjksOC4yYTIuMDYsMi4wNiwwLDAsMCwyLDIuNSwyLjE0LDIuMTQs''@;'; + put 'put ''MCwwLDAsLjQzLDBMMTMsMzIsMjguODQsMTYuMjIsMjAsNy40WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGQ9Ik0zMy44Miw4LjMybC01LjktNS45YTIuMDcsMi4wNywwLDAsMC0yLjkyLDBMMjEuNzIsNS43bDguODMs''@;'; + put 'put ''OC44MywzLjI4LTMuMjhBMi4wNywyLjA3LDAsMCwwLDMzLjgyLDguMzJaIi8+JyksTC5DbHJTaGFwZU5vdGU9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI4LDMwSDZWOEgxOS4yMmwyLTJINkEyLDIsMCwwLDAsNCw4VjMwYTIsMiwwLDAsMCwyLDJIMjhhMiwyLDAsMCwwLDItMlYxNWwt''@;'; + put 'put ''MiwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuNTMsNS44NCwzMC4xNiwyLjQ3YTEuNjEsMS42MSwwLDAsMC0yLjI4LDBMMTQuMTcsMTYuMjZsLTEuMTEsNC44MUExLjYxLDEuNjEsMCwwLDAsMTQuNjMs''@;'; + put 'put ''MjMsMS42OSwxLjY5LDAsMCwwLDE1LDIzbDQuODUtMS4wN0wzMy41Myw4LjEyQTEuNjEsMS42MSwwLDAsMCwzMy41Myw1Ljg0Wk0xOC44MSwyMC4wOGwtMy42Ni44MUwxNiwxNy4yNiwyNi4zMiw2Ljg3bDIuODIsMi44MlpNMzAuMjcsOC41NiwyNy40NSw1Ljc0LDI5LDQuMTYsMzEuODQsN1oi''@;'; + put 'put ''IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLDYuNCwyOS4zLDIuN2ExLjcxLDEuNzEsMCwwLDAtMi4zNiwwTDIzLjY1LDZINkEyLDIsMCwwLDAsNCw4VjMwYTIsMiwwLDAsMCwyLDJIMjhhMiwyLDAsMCwwLDIt''@;'; + put 'put ''MlYxMS43NmwzLTNBMS42NywxLjY3LDAsMCwwLDMzLDYuNFpNMTguODMsMjAuMTNsLTQuMTkuOTMsMS00LjE1LDkuNTUtOS41NywzLjIzLDMuMjNaTTI5LjUsOS40MywyNi4yNyw2LjJsMS44NS0xLjg1LDMuMjMsMy4yM1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEi''@;'; + put 'put ''IC8+JyksTC5DbHJTaGFwZVJlZnJlc2g9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0yMi40LDExLjY1YTEuMDksMS4wOSwwLDAsMCwxLjA5LDEuMDlIMzQuNDNWMS44MWExLjA5LDEuMDksMCwxLDAtMi4xOSww''@;'; + put 'put ''VjguOTVhMTYuNDEsMTYuNDEsMCwxLDAsMS40NywxNS44NiwxLjEyLDEuMTIsMCwwLDAtMi4wNS0uOSwxNC4xOCwxNC4xOCwwLDEsMS0xLjA1LTEzLjM2SDIzLjVBMS4wOSwxLjA5LDAsMCwwLDIyLjQsMTEuNjVaIi8+JyksTC5DbHJTaGFwZVN5bmM9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGgg''@;'; + put 'put ''Y2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMi44NCwxNS43MmExLDEsMCwxLDAtMiwuMjlBMTMuMTUsMTMuMTUsMCwwLDEsMzEsMTcuOTQsMTMsMTMsMCwwLDEsOC43LDI3aDUuMzZhMSwxLDAsMCwwLDAtMmgtOXY5YTEsMSwwLDEsMCwyLDBWMjguMkEx''@;'; + put 'put ''NSwxNSwwLDAsMCwzMi44NCwxNS43MloiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTMwLjA2LDFBMS4wNSwxLjA1LDAsMCwwLDI5LDJWNy44M0ExNC45NCwxNC45NCwwLDAsMCwzLDE3Ljk0YTE1LjE2LDE1''@;'; + put 'put ''LjE2LDAsMCwwLC4yLDIuNDgsMSwxLDAsMCwwLDEsLjg0aC4xNmExLDEsMCwwLDAsLjgyLTEuMTVBMTMuMjMsMTMuMjMsMCwwLDEsNSwxNy45NGExMywxMywwLDAsMSwxMy0xM0ExMi44NywxMi44NywwLDAsMSwyNy40NCw5SDIyLjA2YTEsMSwwLDAsMCwwLDJIMzFWMkExLDEsMCwwLDAsMzAu''@;'; + put 'put ''MDYsMVoiLz4nKSxMLkNsclNoYXBlVmlld0xpc3Q9KDAsRS5jbHJJY29uU1ZHKSgnPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIHg9IjIiIHk9IjgiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xy''@;'; + put 'put ''LWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTcsMTBIMzFhMSwxLDAsMCwwLDAtMkg3YTEsMSwwLDAsMCwwLDJaIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIHg9IjIiIHk9IjE0IiB3aWR0aD0i''@;'; + put 'put ''MiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIGQ9Ik0zMSwxNEg3YTEsMSwwLDAsMCwwLDJIMzFhMSwxLDAsMCwwLDAtMloiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWkt''@;'; + put 'put ''b3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgeD0iMiIgeT0iMjAiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIgZD0iTTMxLDIwSDdhMSwxLDAsMCwwLDAsMkgzMWExLDEs''@;'; + put 'put ''MCwwLDAsMC0yWiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC03IiB4PSIyIiB5PSIyNiIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1p''@;'; + put 'put ''LW91dGxpbmUtcGF0aC04IiBkPSJNMzEsMjZIN2ExLDEsMCwwLDAsMCwySDMxYTEsMSwwLDAsMCwwLTJaIi8+JyksTC5DbHJTaGFwZVZpZXdDYXJkcz0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTE1LDE3SDRh''@;'; + put 'put ''MiwyLDAsMCwxLTItMlY4QTIsMiwwLDAsMSw0LDZIMTVhMiwyLDAsMCwxLDIsMnY3QTIsMiwwLDAsMSwxNSwxN1pNNCw4djdIMTVWOFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTMyLDE3SDIxYTIsMiww''@;'; + put 'put ''LDAsMS0yLTJWOGEyLDIsMCwwLDEsMi0ySDMyYTIsMiwwLDAsMSwyLDJ2N0EyLDIsMCwwLDEsMzIsMTdaTTIxLDh2N0gzMlY4WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJNMTUsMzBINGEyLDIsMCwwLDEt''@;'; + put 'put ''Mi0yVjIxYTIsMiwwLDAsMSwyLTJIMTVhMiwyLDAsMCwxLDIsMnY3QTIsMiwwLDAsMSwxNSwzMFpNNCwyMXY3SDE1VjIxWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiBkPSJNMzIsMzBIMjFhMiwyLDAsMCwxLTIt''@;'; + put 'put ''MlYyMWEyLDIsMCwwLDEsMi0ySDMyYTIsMiwwLDAsMSwyLDJ2N0EyLDIsMCwwLDEsMzIsMzBaTTIxLDIxdjdIMzJWMjFaIi8+JyksTC5DbHJTaGFwZUxpZ2h0YnVsYj0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTgsMi4yNWExMSwxMSwwLDAsMC0xMSwxMSwxMC42OCwxMC42OCwwLDAs''@;'; + put 'put ''MCwxLDQuNjMsMTYuMzYsMTYuMzYsMCwwLDAsMS4xMiwxLjc4LDE3LDE3LDAsMCwxLDIsMy40NywxNi4xOSwxNi4xOSwwLDAsMSwuNTksNGgyQTE4LjE3LDE4LjE3LDAsMCwwLDEzLDIyLjQ0YTE4LjQ2LDE4LjQ2LDAsMCwwLTIuMjItMy45MiwxNS43OSwxNS43OSwwLDAsMS0xLTEuNTRBOC42''@;'; + put 'put ''NCw4LjY0LDAsMCwxLDksMTMuMjNhOSw5LDAsMCwxLDE4LjA3LDBBOC42NCw4LjY0LDAsMCwxLDI2LjIxLDE3YTE1Ljc5LDE1Ljc5LDAsMCwxLTEsMS41NEExOC40NiwxOC40NiwwLDAsMCwyMywyMi40NGExOC4xNywxOC4xNywwLDAsMC0uNzEsNC43MWgyYTE2LjE5LDE2LjE5LDAsMCwxLC41''@;'; + put 'put ''OS00LDE3LDE3LDAsMCwxLDItMy40N0ExNi4zMSwxNi4zMSwwLDAsMCwyOCwxNy44NmExMC42OCwxMC42OCwwLDAsMCwxLTQuNjNBMTEsMTEsMCwwLDAsMTgsMi4yNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJN''@;'; + put 'put ''MTguNjMsMTUuNTFhLjguOCwwLDAsMC0xLjEzLDBsLTMsMywyLjg2LDMuMTN2NS41NEgxOVYyMWwtMi4yNC0yLjQ1LDEuODktMS44OUEuOC44LDAsMCwwLDE4LjYzLDE1LjUxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRo''@;'; + put 'put ''IGQ9Ik0yMy44NiwyOS4xNUgxMi4xMWEuOC44LDAsMSwwLDAsMS42SDIzLjg2YS44LjgsMCwwLDAsMC0xLjZaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIyLDMyLjE1SDE0YS44LjgsMCwxLDAsMCwxLjZIMjJh''@;'; + put 'put ''LjguOCwwLDEsMCwwLTEuNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTcuMzIsMTAuODlsLTIuNzMsMi43M2EuOC44LDAsMCwwLDEuMTMsMS4xM0wxOC40NSwxMmEuOC44LDAsMSwwLTEuMTMtMS4xM1oiIGNs''@;'; + put 'put ''YXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTksMjcuMTVWMjFsLTIuMjQtMi40NSwxLjg5LTEuODlhLjguOCwwLDAsMC0xLjEzLTEuMTNsLTMsMywyLjg2LDMuMTN2NS41NFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1i''@;'; + put 'put ''YWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIzLjg2LDI5LjE1SDEyLjExYS44LjgsMCwxLDAsMCwxLjZIMjMuODZhLjguOCwwLDAsMCwwLTEuNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1w''@;'; + put 'put ''YXRoLTItLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIyLDMyLjE1SDE0YS44LjgsMCwxLDAsMCwxLjZIMjJhLjguOCwwLDEsMCwwLTEuNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIvPlxuICAgICAgICAgICAg''@;'; + put 'put ''PHBhdGggZD0iTTE1LjcyLDE0Ljc1LDE4LjQ1LDEyYS44LjgsMCwxLDAtMS4xMy0xLjEzbC0yLjczLDIuNzNhLjguOCwwLDAsMCwxLjEzLDEuMTNaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRo''@;'; + put 'put ''IGQ9Ik0yNywxMi44OGMwLC4xMiwwLC4yMywwLC4zNUE4LjY0LDguNjQsMCwwLDEsMjYuMjEsMTdhMTUuNzksMTUuNzksMCwwLDEtMSwxLjU0QTE4LjQ2LDE4LjQ2LDAsMCwwLDIzLDIyLjQ0YTE4LjE3LDE4LjE3LDAsMCwwLS43MSw0LjcxaDJhMTYuMTksMTYuMTksMCwwLDEsLjU5LTQsMTcs''@;'; + put 'put ''MTcsMCwwLDEsMi0zLjQ3QTE2LjMxLDE2LjMxLDAsMCwwLDI4LDE3Ljg2YTEwLjYzLDEwLjYzLDAsMCwwLDEtNC40M0E3LjQ1LDcuNDUsMCwwLDEsMjcsMTIuODhaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC01LS1iYWRnZWQiLz5cbiAgICAgICAg''@;'; + put 'put ''ICAgIDxwYXRoIGQ9Ik0xMy43MSwyNy4xNUExOC4xNywxOC4xNywwLDAsMCwxMywyMi40NGExOC40NiwxOC40NiwwLDAsMC0yLjIyLTMuOTIsMTUuNzksMTUuNzksMCwwLDEtMS0xLjU0QTguNjQsOC42NCwwLDAsMSw5LDEzLjIzLDksOSwwLDAsMSwyMi41Myw1LjQ3YTcuNDUsNy40NSwwLDAs''@;'; + put 'put ''MSwuNDMtMiwxMSwxMSwwLDAsMC0xNiw5LjgsMTAuNjgsMTAuNjgsMCwwLDAsMSw0LjYzLDE2LjM2LDE2LjM2LDAsMCwwLDEuMTIsMS43OCwxNywxNywwLDAsMSwyLDMuNDcsMTYuMTksMTYuMTksMCwwLDEsLjU5LDRaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxp''@;'; + put 'put ''bmUtcGF0aC02LS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNy0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjMuODYs''@;'; + put 'put ''MjkuMTVIMTIuMTFhLjguOCwwLDEsMCwwLDEuNkgyMy44NmEuOC44LDAsMCwwLDAtMS42WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIyLDMyLjE1SDE0YS44LjgsMCwxLDAsMCwxLjZIMjJhLjguOCwwLDEsMCwwLTEu''@;'; + put 'put ''NloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwyLjI1YTExLDExLDAsMCwwLTExLDExLDEwLjY4LDEwLjY4LDAsMCwwLDEsNC42MywxNi4zNiwxNi4zNiwwLDAsMCwxLjEyLDEuNzgsMTcsMTcsMCwwLDEsMiwzLjQ3''@;'; + put 'put ''LDE2LjE5LDE2LjE5LDAsMCwxLC41OSw0aDUuNjlWMjEuNjFsLTIuODYtMy4xMywzLTNhLjguOCwwLDAsMSwxLjEzLDEuMTNsLTEuODksMS44OUwxOSwyMXY2LjE3SDI0LjNhMTYuMTksMTYuMTksMCwwLDEsLjU5LTQsMTcsMTcsMCwwLDEsMi0zLjQ3QTE2LjMxLDE2LjMxLDAsMCwwLDI4LDE3''@;'; + put 'put ''Ljg2YTEwLjY4LDEwLjY4LDAsMCwwLDEtNC42M0ExMSwxMSwwLDAsMCwxOCwyLjI1Wk0xOC40NSwxMmwtMi43MywyLjczYS44LjgsMCwxLDEtMS4xMy0xLjEzbDIuNzMtMi43M0EuOC44LDAsMSwxLDE4LjQ1LDEyWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIvPlxu''@;'; + put 'put ''ICAgICAgICAgICAgPHBhdGggZD0iTTIzLjg2LDI5LjE1SDEyLjExYS44LjgsMCwxLDAsMCwxLjZIMjMuODZhLjguOCwwLDAsMCwwLTEuNloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIs''@;'; + put 'put ''MzIuMTVIMTRhLjguOCwwLDEsMCwwLDEuNkgyMmEuOC44LDAsMSwwLDAtMS42WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMi41LDZBNy40Nyw3LjQ3LDAsMCwxLDIzLDMuNDRhMTEsMTEs''@;'; + put 'put ''MCwwLDAtMTYsOS44LDEwLjY4LDEwLjY4LDAsMCwwLDEsNC42MywxNi4zNiwxNi4zNiwwLDAsMCwxLjEyLDEuNzgsMTcsMTcsMCwwLDEsMiwzLjQ3LDE2LjE5LDE2LjE5LDAsMCwxLC41OSw0aDUuNjlWMjEuNjFsLTIuODYtMy4xMywzLTNhLjguOCwwLDAsMSwxLjEzLDEuMTNsLTEuODksMS44''@;'; + put 'put ''OUwxOSwyMXY2LjE3SDI0LjNhMTYuMTksMTYuMTksMCwwLDEsLjU5LTQsMTcsMTcsMCwwLDEsMi0zLjQ3QTE2LjMxLDE2LjMxLDAsMCwwLDI4LDE3Ljg2YTEwLjYzLDEwLjYzLDAsMCwwLDEtNC40M0E3LjUsNy41LDAsMCwxLDIyLjUsNlptLTQsNi0yLjczLDIuNzNhLjguOCwwLDEsMS0xLjEz''@;'; + put 'put ''LTEuMTNsMi43My0yLjczQS44LjgsMCwxLDEsMTguNDUsMTJaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBj''@;'; + put 'put ''bHItaS1zb2xpZC1wYXRoLTQtLWJhZGdlZCBjbHItaS1iYWRnZSIvPicpLEwuQ2xyU2hhcGVEb3dubG9hZD0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMxLDMxSDVhMSwxLDAsMCwwLDAsMkgzMWExLDEsMCww''@;'; + put 'put ''LDAsMC0yWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMTgsMjkuNDgsMjguNjEsMTguODdhMSwxLDAsMCwwLTEuNDEtMS40MUwxOSwyNS42NVY1YTEsMSwwLDAsMC0yLDBWMjUuNjVMOC44MSwxNy40NmEx''@;'; + put 'put ''LDEsMCwxLDAtMS40MSwxLjQxWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgZD0iTTMxLDMxSDVhMSwxLDAsMCwwLDAsMkgzMWExLDEsMCwwLDAsMC0yWiIvPlxuICAgICAgICAgICAg''@;'; + put 'put ''ICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgZD0iTTE4LDI5LjQ4LDI4LjYxLDE4Ljg3YTEsMSwwLDAsMC0xLjQxLTEuNDFMMTksMjUuNjVWNWExLDEsMCwwLDAtMiwwVjI1LjY1TDguODEsMTcuNDZhMSwxLDAsMSww''@;'; + put 'put ''LTEuNDEsMS40MVoiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJj''@;'; + put 'put ''bHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiBkPSJNMzEsMzFINWExLDEsMCwwLDAsMCwySDMxYTEsMSwwLDAsMCwwLTJaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGlu''@;'; + put 'put ''ZS1wYXRoLTItLWFsZXJ0ZWQiIGQ9Ik0xOCwyOS40OCwyOC42MSwxOC44N2ExLDEsMCwwLDAtMS40MS0xLjQxTDE5LDI1LjY1VjVhMSwxLDAsMCwwLTIsMFYyNS42NUw4LjgxLDE3LjQ2YTEsMSwwLDEsMC0xLjQxLDEuNDFaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1p''@;'; + put 'put ''LW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCww''@;'; + put 'put ''LDAsMjYuODUsMS4xNFoiLz4nKSxMLkNsclNoYXBlVXBsb2FkPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzEsMzFINWExLDEsMCwwLDAsMCwySDMxYTEsMSwwLDAsMCwwLTJaIi8+XG4gICAgICAgICAgICAg''@;'; + put 'put ''ICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik04LjgxLDE1LDE3LDYuODNWMjcuNDhhMSwxLDAsMCwwLDIsMFY2LjgzTDI3LjE5LDE1YTEsMSwwLDAsMCwxLjQxLTEuNDFMMTgsMyw3LjM5LDEzLjYxQTEsMSwwLDEsMCw4LjgxLDE1WiIvPlxu''@;'; + put 'put ''ICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiBkPSJNMzEsMzFINWMtMC42LDAtMSwwLjQtMSwxczAuNCwxLDEsMWgyNmMwLjYsMCwxLTAuNCwxLTFTMzEuNiwzMSwzMSwzMXoiLz5cbiAgICAg''@;'; + put 'put ''ICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgZD0iTTguOCwxNUwxNyw2Ljh2MjAuNmMwLDAuNiwwLjQsMSwxLDFzMS0wLjQsMS0xVjYuOEwyMC4xLDhsMS0xLjhMMTgsM0w3LjQsMTMuNkM3LDE0LDYu''@;'; + put 'put ''OSwxNC42LDcuMiwxNXMxLDAuNSwxLjQsMC4xQzguNywxNS4xLDguOCwxNS4xLDguOCwxNXoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2LjksMS4x''@;'; + put 'put ''TDIxLjEsMTFjLTAuNCwwLjYtMC4yLDEuNCwwLjMsMS44YzAuMiwwLjIsMC41LDAuMiwwLjgsMC4yaDExLjVjMC43LDAsMS4zLTAuNSwxLjMtMS4yYzAtMC4zLTAuMS0wLjUtMC4yLTAuOGwtNS43LTkuOWMtMC40LTAuNi0xLjEtMC44LTEuOC0wLjVDMjcuMSwwLjgsMjcsMSwyNi45LDEuMXoi''@;'; + put 'put ''Lz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0zMSwzMUg1YTEsMSwwLDAsMCwwLDJIMzFhMSwxLDAsMCwwLDAtMloiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xy''@;'; + put 'put ''LWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik04LjgxLDE1LDE3LDYuODNWMjcuNDhhMSwxLDAsMCwwLDIsMFY2LjgzTDI3LjE5LDE1YTEsMSwwLDAsMCwxLjQxLTEuNDFMMTgsMyw3LjM5LDEzLjYxQTEsMSwwLDEsMCw4LjgxLDE1WiIvPlxuICAg''@;'; + put 'put ''ICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+JyksTC5DbHJTaGFwZUxvY2s9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNs''@;'; + put 'put ''ci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xOC4wOSwyMC41OUEyLjQxLDIuNDEsMCwwLDAsMTcsMjUuMTRWMjhoMlYyNS4yM2EyLjQxLDIuNDEsMCwwLDAtLjkxLTQuNjRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWkt''@;'; + put 'put ''b3V0bGluZS1wYXRoLTIiIGQ9Ik0yNiwxNVYxMC43MmE4LjIsOC4yLDAsMCwwLTgtOC4zNiw4LjIsOC4yLDAsMCwwLTgsOC4zNlYxNUg3VjMyYTIsMiwwLDAsMCwyLDJIMjdhMiwyLDAsMCwwLDItMlYxNVpNMTIsMTAuNzJhNi4yLDYuMiwwLDAsMSw2LTYuMzYsNi4yLDYuMiwwLDAsMSw2LDYu''@;'; + put 'put ''MzZWMTVIMTJaTTksMzJWMTdIMjdWMzJaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTI2LDE1VjEwLjcyYTguMiw4LjIsMCwwLDAtOC04LjM2LDguMiw4LjIsMCwwLDAtOCw4LjM2VjE1SDdWMzJhMiwyLDAsMCww''@;'; + put 'put ''LDIsMkgyN2EyLDIsMCwwLDAsMi0yVjE1Wk0xOSwyNS4yM1YyOEgxN1YyNS4xNGEyLjQsMi40LDAsMSwxLDIsLjA5Wk0yNCwxNUgxMlYxMC43MmE2LjIsNi4yLDAsMCwxLDYtNi4zNiw2LjIsNi4yLDAsMCwxLDYsNi4zNloiLz4nKSxMLkNsclNoYXBlVW5sb2NrPSgwLEUuY2xySWNvblNWRyko''@;'; + put 'put ''JzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMTIsMjUuMTRWMjhoMlYyNS4yM2EyLjQyLDIuNDIsMCwxLDAtMi0uMDlaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIi''@;'; + put 'put ''IGQ9Ik0yNiwyYTguMiw4LjIsMCwwLDAtOCw4LjM2VjE1SDJWMzJhMiwyLDAsMCwwLDIsMkgyMmEyLDIsMCwwLDAsMi0yVjE1SDIwVjEwLjM2QTYuMiw2LjIsMCwwLDEsMjYsNGE2LjIsNi4yLDAsMCwxLDYsNi4zNnY2LjgzYTEsMSwwLDAsMCwyLDBWMTAuMzZBOC4yLDguMiwwLDAsMCwyNiwy''@;'; + put 'put ''Wk0yMiwxN1YzMkg0VjE3WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0yNiwyYTguMiw4LjIsMCwwLDAtOCw4LjM2VjE1SDJWMzJhMiwyLDAsMCwwLDIsMkgyMmEyLDIsMCwwLDAsMi0yVjE1SDIwVjEwLjM2QTYu''@;'; + put 'put ''Miw2LjIsMCwwLDEsMjYsNGE2LjIsNi4yLDAsMCwxLDYsNi4zNnY2LjgzYTEsMSwwLDAsMCwyLDBWMTAuMzZBOC4yLDguMiwwLDAsMCwyNiwyWk0xNCwyNS4yM1YyOEgxMlYyNS4xNGEyLjQsMi40LDAsMSwxLDIsLjA5WiIvPicpLEwuQ2xyU2hhcGVVc2Vycz0oMCxFLmNsckljb25TVkcpKCc8''@;'; + put 'put ''cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTE3LjksMTcuM2MyLjcsMCw0LjgtMi4yLDQuOC00LjljMC0yLjctMi4yLTQuOC00LjktNC44Yy0yLjcsMC00LjgsMi4yLTQuOCw0LjhDMTMsMTUuMSwxNS4yLDE3LjMsMTcuOSwxNy4zeiBNMTcuOCw5''@;'; + put 'put ''LjZDMTcuOSw5LjYsMTcuOSw5LjYsMTcuOCw5LjZjMS42LDAsMi45LDEuMywyLjksMi45cy0xLjMsMi44LTIuOSwyLjhjLTEuNiwwLTIuOC0xLjMtMi44LTIuOEMxNSwxMC45LDE2LjMsOS42LDE3LjgsOS42eiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5l''@;'; + put 'put ''IGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMzIuNywxNi43Yy0xLjktMS43LTQuNC0yLjYtNy0yLjVjLTAuMywwLTAuNSwwLTAuOCwwYy0wLjIsMC44LTAuNSwxLjUtMC45LDIuMWMwLjYtMC4xLDEuMS0wLjEsMS43LTAuMWMxLjktMC4xLDMuOCwwLjUsNS4zLDEuNlYyNWgydi04TDMyLjcs''@;'; + put 'put ''MTYuN3oiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgZD0iTTIzLjQsNy44YzAuNS0xLjIsMS45LTEuOCwzLjItMS4zYzEuMiwwLjUsMS44LDEuOSwxLjMsMy4yYy0wLjQsMC45LTEuMywxLjUtMi4yLDEuNWMtMC4y''@;'; + put 'put ''LDAtMC41LDAtMC43LTAuMWMwLjEsMC41LDAuMSwxLDAuMSwxLjRjMCwwLjIsMCwwLjQsMCwwLjZjMC4yLDAsMC40LDAuMSwwLjYsMC4xYzIuNSwwLDQuNS0yLDQuNS00LjRjMC0yLjUtMi00LjUtNC40LTQuNWMtMS42LDAtMywwLjgtMy44LDIuMkMyMi41LDYuOCwyMyw3LjIsMjMuNCw3Ljh6''@;'; + put 'put ''Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIGQ9Ik0xMiwxNi40Yy0wLjQtMC42LTAuNy0xLjMtMC45LTIuMWMtMC4zLDAtMC41LDAtMC44LDBjLTIuNi0wLjEtNS4xLDAuOC03LDIuNEwzLDE3djhoMnYtNy4yYzEu''@;'; + put 'put ''Ni0xLjEsMy40LTEuNyw1LjMtMS42QzEwLjksMTYuMiwxMS41LDE2LjMsMTIsMTYuNHoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgZD0iTTEwLjMsMTMuMWMwLjIsMCwwLjQsMCwwLjYtMC4xYzAtMC4yLDAtMC40''@;'; + put 'put ''LDAtMC42YzAtMC41LDAtMSwwLjEtMS40Yy0wLjIsMC4xLTAuNSwwLjEtMC43LDAuMWMtMS4zLDAtMi40LTEuMS0yLjQtMi40YzAtMS4zLDEuMS0yLjQsMi40LTIuNGMxLDAsMS45LDAuNiwyLjMsMS41YzAuNC0wLjUsMS0xLDEuNS0xLjRjLTEuMy0yLjEtNC0yLjgtNi4xLTEuNWMtMi4xLDEu''@;'; + put 'put ''My0yLjgsNC0xLjUsNi4xQzcuMywxMi4zLDguNywxMy4xLDEwLjMsMTMuMXoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIgZD0iTTI2LjEsMjIuN2wtMC4yLTAuM2MtMi0yLjItNC44LTMuNS03LjgtMy40Yy0zLTAu''@;'; + put 'put ''MS01LjksMS4yLTcuOSwzLjRMMTAsMjIuN3Y3LjZjMCwwLjksMC43LDEuNywxLjcsMS43YzAsMCwwLDAsMCwwaDEyLjhjMC45LDAsMS43LTAuOCwxLjctMS43YzAsMCwwLDAsMCwwVjIyLjd6IE0yNC4xLDMwSDEydi02LjZjMS42LTEuNiwzLjgtMi40LDYuMS0yLjRjMi4yLTAuMSw0LjQsMC44''@;'; + put 'put ''LDYsMi40VjMweiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiBkPSJNMTEuMDksMTQuNTdjLjEsMCwuMiwwLC4zMSwwYTYuNDMsNi40MywwLDAsMSwuMDktMiwyLjA5LDIuMDksMCwx''@;'; + put 'put ''LDEsMS40Ny0zLDYuNTgsNi41OCwwLDAsMSwxLjU1LTEuMzEsNC4wOSw0LjA5LDAsMSwwLTMuNDIsNi4zM1oiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIgZD0iTTEzLDE4LjE0YTYu''@;'; + put 'put ''NTMsNi41MywwLDAsMS0xLjI4LTIuMmwtLjYzLDBhOC42Nyw4LjY3LDAsMCwwLTYuNDMsMi41MmwtLjI0LjI4djdoMlYxOS41MWE3LDcsMCwwLDEsNC42Ny0xLjZBOC4wOSw4LjA5LDAsMCwxLDEzLDE4LjE0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5l''@;'; + put 'put ''LS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIiBkPSJNMzEuMzUsMTguNDJBOC41OSw4LjU5LDAsMCwwLDI1LDE1LjkxYy0uMzIsMC0uNiwwLS45LjA2YTYuNTMsNi41MywwLDAsMS0xLjM1LDIuMjVBNy45LDcuOSwwLDAsMSwyNSwxNy45MWE2Ljk0LDYuOTQsMCwwLDEs''@;'; + put 'put ''NC42NCwxLjU4djYuMjdoMlYxOC43WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIiBkPSJNMTguMSwxOS43M0E5LjY5LDkuNjksMCwwLDAsMTEsMjIuNDdsLS4yNS4yOHY3LjMzYTEu''@;'; + put 'put ''NTcsMS41NywwLDAsMCwxLjYxLDEuNTRIMjMuODNhMS41NywxLjU3LDAsMCwwLDEuNjEtMS41NFYyMi43M2wtLjI1LS4yOEE5LjU4LDkuNTgsMCwwLDAsMTguMSwxOS43M1ptNS4zMyw5Ljg4SDEyLjczVjIzLjU1YTguMDgsOC4wOCwwLDAsMSw1LjM3LTEuODIsOCw4LDAsMCwxLDUuMzMsMS44''@;'; + put 'put ''WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC01LS1hbGVydGVkIiBkPSJNMjAuMjgsMTQuMjdhMi40NiwyLjQ2LDAsMSwxLTIuNDItMi44OSwyLjQ0LDIuNDQsMCwwLDEsMSwuMjQsMy42NywzLjY3LDAs''@;'; + put 'put ''MCwxLC40My0yLDQuNDEsNC40MSwwLDAsMC0xLjQ4LS4yN0E0LjQ3LDQuNDcsMCwxLDAsMjIuMTQsMTUsMy42OSwzLjY5LDAsMCwxLDIwLjI4LDE0LjI3WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC02''@;'; + put 'put ''LS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNMjcuMTguOGwtNS43Miw5LjkxYTEuMjgsMS4yOCwwLDAsMCwxLjEsMS45MUgzNGExLjI4LDEuMjgsMCwwLDAsMS4xLTEuOTFMMjkuMzkuOEExLjI4LDEuMjgsMCwwLDAsMjcuMTguOFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0i''@;'; + put 'put ''Y2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0xMS4wOSwxNC41N2MuMSwwLC4yLDAsLjMxLDBhNi40Myw2LjQzLDAsMCwxLC4wOS0yLDIuMDksMi4wOSwwLDEsMSwxLjQ3LTMsNi41OCw2LjU4LDAsMCwxLDEuNTUtMS4zMSw0LjA5LDQuMDks''@;'; + put 'put ''MCwxLDAtMy40Miw2LjMzWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgZD0iTTEzLDE4LjE0YTYuNTMsNi41MywwLDAsMS0xLjI4LTIuMmwtLjYzLDBhOC42Nyw4LjY3LDAsMCwwLTYu''@;'; + put 'put ''NDMsMi41MmwtLjI0LjI4djdoMlYxOS41MWE3LDcsMCwwLDEsNC42Ny0xLjZBOC4wOSw4LjA5LDAsMCwxLDEzLDE4LjE0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIgZD0iTTMxLjM1''@;'; + put 'put ''LDE4LjQyQTguNTksOC41OSwwLDAsMCwyNSwxNS45MWMtLjMyLDAtLjYsMC0uOS4wNmE2LjUzLDYuNTMsMCwwLDEtMS4zNSwyLjI1QTcuOSw3LjksMCwwLDEsMjUsMTcuOTFhNi45NCw2Ljk0LDAsMCwxLDQuNjQsMS41OHY2LjI3aDJWMTguN1oiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBj''@;'; + put 'put ''bGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQiIGQ9Ik0xNy44NiwxOC4zYTQuNDcsNC40NywwLDEsMC00LjQ3LTQuNDdBNC40Nyw0LjQ3LDAsMCwwLDE3Ljg2LDE4LjNabTAtNi45M2EyLjQ3LDIuNDcsMCwxLDEtMi40NywyLjQ3QTIuNDcs''@;'; + put 'put ''Mi40NywwLDAsMSwxNy44NiwxMS4zN1oiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC01LS1iYWRnZWQiIGQ9Ik0xOC4xLDE5LjczQTkuNjksOS42OSwwLDAsMCwxMSwyMi40N2wtLjI1LjI4djcuMzNhMS41''@;'; + put 'put ''NywxLjU3LDAsMCwwLDEuNjEsMS41NEgyMy44M2ExLjU3LDEuNTcsMCwwLDAsMS42MS0xLjU0VjIyLjczbC0uMjUtLjI4QTkuNTgsOS41OCwwLDAsMCwxOC4xLDE5LjczWm01LjMzLDkuODhIMTIuNzNWMjMuNTVhOC4wOCw4LjA4LDAsMCwxLDUuMzctMS44Miw4LDgsMCwwLDEsNS4zMywxLjha''@;'; + put 'put ''Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNi0tYmFkZ2VkIiBkPSJNMjYuMzcsMTJhMiwyLDAsMCwxLTIuMDkuNDIsNi41Myw2LjUzLDAsMCwxLC4xNSwxLjM4LDYuNTksNi41OSwwLDAsMSwwLC42OCw0''@;'; + put 'put ''LDQsMCwwLDAsLjU3LjA2LDQuMDgsNC4wOCwwLDAsMCwzLjMtMS43QTcuNDUsNy40NSwwLDAsMSwyNi4zNywxMloiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC03LS1iYWRnZWQiIGQ9Ik0yMi45NSw2Ljkz''@;'; + put 'put ''YTQuMTYsNC4xNiwwLDAsMC0xLjQ3LDEuNDRBNi41OSw2LjU5LDAsMCwxLDIzLDkuNzdhMi4xLDIuMSwwLDAsMSwuNTktLjgzQTcuNDQsNy40NCwwLDAsMSwyMi45NSw2LjkzWiIvPlxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1v''@;'; + put 'put ''dXRsaW5lLXBhdGgtOC0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAuMzMiIGN5PSI1LjY3IiByPSI1Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTEyLDE2LjE0cS0uNDMsMC0uODcsMGE4LjY3LDguNjcsMCww''@;'; + put 'put ''LDAtNi40MywyLjUybC0uMjQuMjh2OC4yOEg4LjU0di00LjdsLjU1LS42Mi4yNS0uMjlhMTEsMTEsMCwwLDEsNC43MS0yLjg2QTYuNTksNi41OSwwLDAsMSwxMiwxNi4xNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiBk''@;'; + put 'put ''PSJNMzEuMzQsMTguNjNhOC42Nyw4LjY3LDAsMCwwLTYuNDMtMi41MiwxMC40NywxMC40NywwLDAsMC0xLjA5LjA2LDYuNTksNi41OSwwLDAsMS0yLDIuNDUsMTAuOTEsMTAuOTEsMCwwLDEsNSwzbC4yNS4yOC41NC42MnY0LjcxaDMuOTRWMTguOTFaIi8+XG4gICAgICAgICAgICAgICAgPHBh''@;'; + put 'put ''dGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIgZD0iTTExLjEsMTQuMTljLjExLDAsLjIsMCwuMzEsMGE2LjQ1LDYuNDUsMCwwLDEsMy4xMS02LjI5LDQuMDksNC4wOSwwLDEsMC0zLjQyLDYuMzNaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1p''@;'; + put 'put ''LXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNCIgZD0iTTI0LjQzLDEzLjQ0YTYuNTQsNi41NCwwLDAsMSwwLC42OSw0LjA5LDQuMDksMCwwLDAsLjU4LjA1aC4xOUE0LjA5LDQuMDksMCwxLDAsMjEuNDcsOCw2LjUzLDYuNTMsMCwwLDEsMjQuNDMsMTMuNDRaIi8+XG4gICAgICAgICAgICAgICAg''@;'; + put 'put ''PGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC01IiBjeD0iMTcuODciIGN5PSIxMy40NSIgcj0iNC40NyIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTYiIGQ9Ik0xOC4xMSwyMC4zQTkuNjksOS42''@;'; + put 'put ''OSwwLDAsMCwxMSwyM2wtLjI1LjI4djYuMzNhMS41NywxLjU3LDAsMCwwLDEuNiwxLjU0SDIzLjg0YTEuNTcsMS41NywwLDAsMCwxLjYtMS41NFYyMy4zTDI1LjIsMjNBOS41OCw5LjU4LDAsMCwwLDE4LjExLDIwLjNaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNv''@;'; + put 'put ''bGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIgZD0iTTEyLDE2LjE0cS0uNDMsMC0uODcsMGE4LjY3LDguNjcsMCwwLDAtNi40MywyLjUybC0uMjQuMjh2OC4yOEg4LjU0di00LjdsLjU1LS42Mi4yNS0uMjlhMTEsMTEsMCwwLDEsNC43MS0yLjg2QTYuNTksNi41OSww''@;'; + put 'put ''LDAsMSwxMiwxNi4xNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIiBkPSJNMzEuMzQsMTguNjNhOC42Nyw4LjY3LDAsMCwwLTYuNDMtMi41MiwxMC40NywxMC40NywwLDAsMC0xLjA5LjA2''@;'; + put 'put ''LDYuNTksNi41OSwwLDAsMS0yLDIuNDUsMTAuOTEsMTAuOTEsMCwwLDEsNSwzbC4yNS4yOC41NC42MnY0LjcxaDMuOTRWMTguOTFaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMy0tYWxlcnRlZCIgZD0iTTEx''@;'; + put 'put ''LjEsMTQuMTljLjExLDAsLjIsMCwuMzEsMGE2LjQ1LDYuNDUsMCwwLDEsMy4xMS02LjI5LDQuMDksNC4wOSwwLDEsMC0zLjQyLDYuMzNaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtNC0tYWxlcnRlZCIgZD0i''@;'; + put 'put ''TTE4LjExLDIwLjNBOS42OSw5LjY5LDAsMCwwLDExLDIzbC0uMjUuMjh2Ni4zM2ExLjU3LDEuNTcsMCwwLDAsMS42LDEuNTRIMjMuODRhMS41NywxLjU3LDAsMCwwLDEuNi0xLjU0VjIzLjNMMjUuMiwyM0E5LjU4LDkuNTgsMCwwLDAsMTguMTEsMjAuM1oiLz5cbiAgICAgICAgICAgICAgICA8''@;'; + put 'put ''cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC01LS1hbGVydGVkIiBkPSJNMTcuODcsMTcuOTJhNC40Niw0LjQ2LDAsMCwwLDQtMi41NEEzLjY3LDMuNjcsMCwwLDEsMTksOS44OWwuMzUtLjYxQTQuNDIsNC40MiwwLDAsMCwxNy44Nyw5YTQuNDcsNC40''@;'; + put 'put ''NywwLDEsMCwwLDguOTNaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtNi0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4''@;'; + put 'put ''QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMTIsMTYuMTRxLS40Myww''@;'; + put 'put ''LS44NywwYTguNjcsOC42NywwLDAsMC02LjQzLDIuNTJsLS4yNC4yOHY4LjI4SDguNTR2LTQuN2wuNTUtLjYyLjI1LS4yOWExMSwxMSwwLDAsMSw0LjcxLTIuODZBNi41OCw2LjU4LDAsMCwxLDEyLDE2LjE0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0t''@;'; + put 'put ''YmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIiBkPSJNMzEuMzQsMTguNjNhOC42Nyw4LjY3LDAsMCwwLTYuNDMtMi41MiwxMC40NywxMC40NywwLDAsMC0xLjA5LjA2LDYuNTksNi41OSwwLDAsMS0yLDIuNDUsMTAuOTEsMTAuOTEsMCwwLDEsNSwzbC4yNS4yOC41NC42MnY0Ljcx''@;'; + put 'put ''aDMuOTRWMTguOTFaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0zLS1iYWRnZWQiIGQ9Ik0xMS4xLDE0LjE5Yy4xMSwwLC4yLDAsLjMxLDBhNi40NSw2LjQ1LDAsMCwxLDMuMTEtNi4yOSw0LjA5LDQuMDksMCwx''@;'; + put 'put ''LDAtMy40Miw2LjMzWiIvPlxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC00LS1iYWRnZWQiIGN4PSIxNy44NyIgY3k9IjEzLjQ1IiByPSI0LjQ3Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1p''@;'; + put 'put ''LXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC01LS1iYWRnZWQiIGQ9Ik0xOC4xMSwyMC4zQTkuNjksOS42OSwwLDAsMCwxMSwyM2wtLjI1LjI4djYuMzNhMS41NywxLjU3LDAsMCwwLDEuNiwxLjU0SDIzLjg0YTEuNTcsMS41NywwLDAsMCwxLjYtMS41NFYyMy4zTDI1LjIsMjNBOS41''@;'; + put 'put ''OCw5LjU4LDAsMCwwLDE4LjExLDIwLjNaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC02LS1iYWRnZWQiIGQ9Ik0yNC40MywxMy40NGE2LjU0LDYuNTQsMCwwLDEsMCwuNjksNC4wOSw0LjA5LDAsMCwwLC41OC4w''@;'; + put 'put ''NWguMTlhNC4wNSw0LjA1LDAsMCwwLDIuNTItMSw3LjUsNy41LDAsMCwxLTUuMTQtNi4zMkE0LjEzLDQuMTMsMCwwLDAsMjEuNDcsOCw2LjUzLDYuNTMsMCwwLDEsMjQuNDMsMTMuNDRaIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHIt''@;'; + put 'put ''aS1zb2xpZC1wYXRoLTctLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPicpLEwuQ2xyU2hhcGVQb3BPdXQ9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0yNywzM0g1YTIsMiwwLDAs''@;'; + put 'put ''MS0yLTJWOUEyLDIsMCwwLDEsNSw3SDE1VjlINVYzMUgyN1YyMWgyVjMxQTIsMiwwLDAsMSwyNywzM1oiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTE4LDNhMSwxLDAsMCwwLDAsMkgyOS41OUwxNS43NCwx''@;'; + put 'put ''OC44NWExLDEsMCwxLDAsMS40MSwxLjQxTDMxLDYuNDFWMThhMSwxLDAsMCwwLDIsMFYzWiIvPicpLEwuQ2xyU2hhcGVGaWx0ZXI9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMyw0SDNBMSwxLDAsMCwwLDIs''@;'; + put 'put ''NVY2LjY3YTEuNzksMS43OSwwLDAsMCwuNTMsMS4yN0wxNCwxOS41OHYxMC4ybDIsLjc2VjE5YTEsMSwwLDAsMC0uMjktLjcxTDQsNi41OVY2SDMydi42MUwyMC4zMywxOC4yOUExLDEsMCwwLDAsMjAsMTlsMCwxMy4yMUwyMiwzM1YxOS41TDMzLjQ3LDhBMS44MSwxLjgxLDAsMCwwLDM0LDYu''@;'; + put 'put ''N1Y1QTEsMSwwLDAsMCwzMyw0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0yMiwzM1YxOS41TDMzLjQ3LDhBMS44MSwxLjgxLDAsMCwwLDM0LDYuN1Y1YTEsMSwwLDAsMC0xLTFIM0ExLDEsMCwwLDAsMiw1VjYu''@;'; + put 'put ''NjdhMS43OSwxLjc5LDAsMCwwLC41MywxLjI3TDE0LDE5LjU4djEwLjJaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggZD0iTTMzLjQ4LDRoLTMxQS41Mi41MiwwLDAsMCwyLDQuNTJWNi4yNGExLjMzLDEuMzMsMCwwLDAsLjM5Ljk1bDEyLDEydjEwbDcuMjUsMy42MVYxOS4xN2wxMi0xMkEx''@;'; + put 'put ''LjM1LDEuMzUsMCwwLDAsMzQsNi4yNlY0LjUyQS41Mi41MiwwLDAsMCwzMy40OCw0WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz4nKSxMLkNsclNoYXBlUGluPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxp''@;'; + put 'put ''bmUtcGF0aC0xIiBkPSJNMzMsMTYuNTlhMSwxLDAsMCwxLS43MS0uMjlMMTkuNywzLjcxYTEsMSwwLDAsMSwxLjQxLTEuNDFMMzMuNzEsMTQuODlBMSwxLDAsMCwxLDMzLDE2LjU5WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUt''@;'; + put 'put ''cGF0aC0yIiBkPSJNMjguNTIsMTUuNTZsLTEuNDEtMS40MS03LjIsNy4yYTEsMSwwLDAsMC0uMjUsMSw5LDksMCwwLDEtMS41Myw4LjA5TDUuNTgsMTcuODdhOSw5LDAsMCwxLDguMDktMS41MywxLDEsMCwwLDAsMS0uMjVsNy4yLTcuMkwyMC40NCw3LjQ4bC02Ljc5LDYuNzlBMTAuOTQsMTAu''@;'; + put 'put ''OTQsMCwwLDAsMy40MSwxNy4xMWExLDEsMCwwLDAsMCwxLjQybDYuMzMsNi4zM0wyLjI5LDMyLjI5YTEsMSwwLDEsMCwxLjQxLDEuNDFsNy40NC03LjQ0LDYuMzMsNi4zM2ExLDEsMCwwLDAsLjcxLjI5aDBhMSwxLDAsMCwwLC43MS0uMywxMSwxMSwwLDAsMCwyLjg0LTEwLjI0WiIvPlxuICAg''@;'; + put 'put ''ICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zMywxNi43MWExLDEsMCwwLDEtLjcxLS4yOUwxOS43LDMuODJhMSwxLDAsMCwxLDEuNDEtMS40MUwzMy43MSwxNUExLDEsMCwwLDEsMzMsMTYuNzFaIi8+XG4gICAgICAgICAgICAg''@;'; + put 'put ''ICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgZD0iTTIwLjQ0LDcuNTlsLTYuNzksNi43OUExMC45NCwxMC45NCwwLDAsMCwzLjQxLDE3LjIyYTEsMSwwLDAsMCwwLDEuNDJMOS43MywyNSwyLjI5LDMyLjQxYTEsMSwwLDEsMCwxLjQxLDEuNDFsNy40NC03''@;'; + put 'put ''LjQ0LDYuMzMsNi4zM2ExLDEsMCwwLDAsLjcxLjI5aDBhMSwxLDAsMCwwLC43MS0uMywxMSwxMSwwLDAsMCwyLjg0LTEwLjI0bDYuNzktNi43OVoiLz4nKSxMLkNsclNoYXBlRmlsZT0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBh''@;'; + put 'put ''dGgtMSIgZD0iTTIxLjg5LDRINy44M0ExLjg4LDEuODgsMCwwLDAsNiw1LjkxVjMwLjA5QTEuODgsMS44OCwwLDAsMCw3LjgzLDMySDI4LjE3QTEuODgsMS44OCwwLDAsMCwzMCwzMC4wOVYxMS45MlptLS4zLDIuNDksNiw1LjloLTZaTTgsMzBWNkgyMHY4aDhWMzBaIi8+XG4gICAgICAgICAg''@;'; + put 'put ''ICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMjEuNTksMTIuMzlWNi40OWwxLjA3LDFhNy4zMSw3LjMxLDAsMCwxLDAtMi44MkwyMS44OSw0SDcuODNBMS44OCwxLjg4LDAsMCwwLDYsNS45MVYzMC4wOUEx''@;'; + put 'put ''Ljg4LDEuODgsMCwwLDAsNy44MywzMkgyOC4xN0ExLjg4LDEuODgsMCwwLDAsMzAsMzAuMDlWMTMuNWE3LjQ1LDcuNDUsMCwwLDEtMy45MS0xLjExWk0yOCwzMEg4VjZIMjB2OGg4WiIvPlxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHIt''@;'; + put 'put ''aS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0yOCwxNS40VjMwSDhWNkgy''@;'; + put 'put ''MFY4LjI1bDIuMjUtMy45TDIxLjg5LDRINy44M0ExLjg4LDEuODgsMCwwLDAsNiw1LjkxVjMwLjA5QTEuODgsMS44OCwwLDAsMCw3LjgzLDMySDI4LjE3QTEuODgsMS44OCwwLDAsMCwzMCwzMC4wOVYxNS40WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5l''@;'; + put 'put ''LS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1''@;'; + put 'put ''LDEuMTRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTIxLjg5LDRINy44M0ExLjg4LDEuODgsMCwwLDAsNiw1LjkxVjMwLjA5QTEuODgsMS44OCwwLDAsMCw3LjgzLDMySDI4LjE3QTEuODgsMS44OCwwLDAsMCwz''@;'; + put 'put ''MCwzMC4wOVYxMS45MlpNMjEsMTNWNS44NEwyOC4zLDEzWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMjcuMjUsMTNIMjFWNS44NGwxLjY0LDEuNmE3LjI1LDcuMjUsMCwwLDEsMC0y''@;'; + put 'put ''Ljc0TDIxLjg5LDRINy44M0ExLjg4LDEuODgsMCwwLDAsNiw1LjkxVjMwLjA5QTEuODgsMS44OCwwLDAsMCw3LjgzLDMySDI4LjE3QTEuODgsMS44OCwwLDAsMCwzMCwzMC4wOVYxMy41QTcuNDcsNy40NywwLDAsMSwyNy4yNSwxM1oiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNz''@;'; + put 'put ''PSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIg''@;'; + put 'put ''ZD0iTTIyLjIsMTUuNGMtMiwwLTMuNy0xLjYtMy43LTMuNmMwLTAuNywwLjItMS4zLDAuNS0xLjlsMy4yLTUuNUwyMS45LDRINy44QzYuOCw0LDYsNC45LDYsNS45djI0LjJjMCwxLDAuOCwxLjksMS44LDEuOWgyMC4zYzEsMCwxLjgtMC45LDEuOC0xLjlWMTUuNEgyMi4yeiIvPlxuICAgICAg''@;'; + put 'put ''ICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi45LDEuMUwyMS4xLDExYy0wLjQsMC42LTAuMiwxLjQsMC4zLDEuOGMwLjIsMC4yLDAuNSwwLjIsMC44LDAuMmgxMS41YzAuNyww''@;'; + put 'put ''LDEuMy0wLjUsMS4zLTEuMmMwLTAuMy0wLjEtMC41LTAuMi0wLjhsLTUuNy05LjljLTAuNC0wLjYtMS4xLTAuOC0xLjgtMC41QzI3LjEsMC44LDI3LDEsMjYuOSwxLjF6Ii8+JyksTC5DbHJTaGFwZVBsdXM9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xy''@;'; + put 'put ''LWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMCwxN0gxOVY2YTEsMSwwLDEsMC0yLDBWMTdINmExLDEsMCwwLDAtMSwxLC45MS45MSwwLDAsMCwxLC45NEgxN1YzMGExLDEsMCwxLDAsMiwwVjE5SDMwYTEsMSwwLDAsMCwxLTFBMSwxLDAsMCwwLDMwLDE3WiIvPicpLEwuQ2xyU2hhcGVNaW51cz0o''@;'; + put 'put ''MCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjYsMTdIMTBhMSwxLDAsMCwwLDAsMkgyNmExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+JyksTC5DbHJTaGFwZU1pbnVzQ2lyY2xlPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9''@;'; + put 'put ''Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJabTAsMzBBMTQsMTQsMCwxLDEsMzIsMTgsMTQsMTQsMCwwLDEsMTgsMzJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNCwxN0gxMmEx''@;'; + put 'put ''LDEsMCwwLDAsMCwySDI0YTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJabTYsMTcuNUgxMmExLjUsMS41LDAsMCwx''@;'; + put 'put ''LDAtM0gyNGExLjUsMS41LDAsMCwxLDAsM1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+JyksTC5DbHJTaGFwZVBsdXNDaXJjbGU9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI2LjE3LDE3SDE5VjkuODNhMSwxLDAsMCwwLTIsMFYxN0g5LjgzYTEsMSww''@;'; + put 'put ''LDAsMCwwLDJIMTd2Ny4xN2ExLDEsMCwwLDAsMiwwVjE5aDcuMTdhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMkExNiwxNiwwLDEsMCwzNCwxOCwxNiwxNiwwLDAsMCwxOCwyWm0w''@;'; + put 'put ''LDMwQTE0LDE0LDAsMSwxLDMyLDE4LDE0LDE0LDAsMCwxLDE4LDMyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zNCwxOEExNiwxNiwwLDEsMSwxOCwyLDE2LDE2LDAsMCwxLDM0LDE4Wm0tOC40MS0xLjVIMTku''@;'; + put 'put ''NVYxMC40MWExLjUsMS41LDAsMCwwLTMsMFYxNi41SDEwLjQxYTEuNSwxLjUsMCwwLDAsMCwzSDE2LjV2Ni4wOWExLjUsMS41LDAsMCwwLDMsMFYxOS41aDYuMDlhMS41LDEuNSwwLDAsMCwwLTNaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+JyksTC5DbHJTaGFw''@;'; + put 'put ''ZUJhbj0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlpNNCwxOEExMy45MywxMy45MywwLDAsMSw3LjQzLDguODVMMjcuMTUsMjguNTdBMTQs''@;'; + put 'put ''MTQsMCwwLDEsNCwxOFptMjQuNTcsOS4xNUw4Ljg1LDcuNDNBMTQsMTQsMCwwLDEsMjguNTcsMjcuMTVaIi8+JyksTC5DbHJTaGFwZVRpbWVzQ2lyY2xlPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMTkuNjEs''@;'; + put 'put ''MThsNC44Ni00Ljg2YTEsMSwwLDAsMC0xLjQxLTEuNDFMMTguMiwxNi41NGwtNC44OS00Ljg5YTEsMSwwLDAsMC0xLjQxLDEuNDFMMTYuNzgsMTgsMTIsMjIuNzJhMSwxLDAsMSwwLDEuNDEsMS40MWw0Ljc3LTQuNzcsNC43NCw0Ljc0YTEsMSwwLDAsMCwxLjQxLTEuNDFaIi8+XG4gICAgICAg''@;'; + put 'put ''ICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0xOCwzNEExNiwxNiwwLDEsMSwzNCwxOCwxNiwxNiwwLDAsMSwxOCwzNFpNMTgsNEExNCwxNCwwLDEsMCwzMiwxOCwxNCwxNCwwLDAsMCwxOCw0WiIvPlxuICAgICAgICAgICAgICAg''@;'; + put 'put ''IDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJabTgsMjIuMWExLjQsMS40LDAsMCwxLTIsMmwtNi02TDEyLDI2LjEyYTEuNCwxLjQsMCwxLDEtMi0yTDE2LDE4LjA4LDkuODMsMTEu''@;'; + put 'put ''ODZhMS40LDEuNCwwLDEsMSwyLTJMMTgsMTYuMWw2LjE3LTYuMTdhMS40LDEuNCwwLDEsMSwyLDJMMjAsMTguMDhaIi8+JyksTC5DbHJTaGFwZVRyYXNoPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMjcuMTQs''@;'; + put 'put ''MzRIOC44NkEyLjkzLDIuOTMsMCwwLDEsNiwzMVYxMS4yM0g4VjMxYS45My45MywwLDAsMCwuODYsMUgyNy4xNEEuOTMuOTMsMCwwLDAsMjgsMzFWMTEuMjNoMlYzMUEyLjkzLDIuOTMsMCwwLDEsMjcuMTQsMzRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxp''@;'; + put 'put ''bmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0zMC43OCw5SDVBMSwxLDAsMCwxLDUsN0gzMC43OGExLDEsMCwwLDEsMCwyWiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiB4PSIyMSIgeT0iMTMiIHdpZHRoPSIy''@;'; + put 'put ''IiBoZWlnaHQ9IjE1Ii8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIHg9IjEzIiB5PSIxMyIgd2lkdGg9IjIiIGhlaWdodD0iMTUiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBj''@;'; + put 'put ''bHItaS1vdXRsaW5lLXBhdGgtNSIgZD0iTTIzLDUuODZIMjEuMVY0SDE0LjlWNS44NkgxM1Y0YTIsMiwwLDAsMSwxLjktMmg2LjJBMiwyLDAsMCwxLDIzLDRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTYsOVYz''@;'; + put 'put ''MWEyLjkzLDIuOTMsMCwwLDAsMi44NiwzSDI3LjA5QTIuOTMsMi45MywwLDAsMCwzMCwzMVY5Wm05LDIwSDEzVjE0aDJabTgsMEgyMVYxNGgyWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGQ9Ik0zMC43Myw1SDIzVjRB''@;'; + put 'put ''MiwyLDAsMCwwLDIxLDJoLTYuMkEyLDIsMCwwLDAsMTMsNFY1SDVBMSwxLDAsMSwwLDUsN0gzMC43M2ExLDEsMCwwLDAsMC0yWiIvPicpLEwuQ2xyU2hhcGVUYWc9KDAsRS5jbHJJY29uU1ZHKSgnPGNpcmNsZSBjeD0iMTAuNTIiIGN5PSIxMC41MiIgcj0iMS40MyIgY2xhc3M9ImNsci1pLW91''@;'; + put 'put ''dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMS45MywxOS4yLDE3LjMzLDQuNkEyLDIsMCwwLDAsMTUuOTIsNEw2LDRBMiwyLDAsMCwwLDQsNmwwLDkuOTJhMiwyLDAsMCwwLC41OSwxLjQxbDE0LjYsMTQuNmEyLDIsMCwwLDAsMi44MywwbDku''@;'; + put 'put ''OS05LjlBMiwyLDAsMCwwLDMxLjkzLDE5LjJaTTIwLjYyLDMwLjUyLDYsMTUuOTFWNmg5LjkybDE0LjYsMTQuNjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMTAuNTIiIGN5PSIxMC41MiIgcj0iMS40MyIg''@;'; + put 'put ''Y2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMS45MywxOS4ybC0zLjgtMy44SDI1LjMxbDUuMjIsNS4yMi05LjksOS45TDYsMTUuOTFWNmg5LjkybDMuNDEsMy40MSwxLTEuNzgtMy0z''@;'; + put 'put ''QTIsMiwwLDAsMCwxNS45Miw0TDYsNEEyLDIsMCwwLDAsNCw2bDAsOS45MmEyLDIsMCwwLDAsLjU5LDEuNDFsMTQuNiwxNC42YTIsMiwwLDAsMCwyLjgzLDBsOS45LTkuOUEyLDIsMCwwLDAsMzEuOTMsMTkuMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUt''@;'; + put 'put ''cGF0aC0yLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiBjbGFzcz0i''@;'; + put 'put ''Y2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMTAuNTIiIGN5PSIxMC41MiIgcj0iMS40MyIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBh''@;'; + put 'put ''dGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzEuOTMsMTkuMiwxNy4zMyw0LjZBMiwyLDAsMCwwLDE1LjkyLDRMNiw0QTIsMiwwLDAsMCw0LDZsMCw5LjkyYTIsMiwwLDAsMCwuNTksMS40MWwxNC42LDE0LjZhMiwyLDAsMCwwLDIuODMsMGw5LjktOS45QTIsMiwwLDAs''@;'; + put 'put ''MCwzMS45MywxOS4yWk0yMC42MiwzMC41Miw2LDE1LjkxVjZoOS45MmwxNC42LDE0LjYyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJj''@;'; + put 'put ''bHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMxLjkzLDE5LjIsMTcuMzMsNC42QTIsMiwwLDAsMCwxNS45Miw0TDYsNEEyLDIsMCwwLDAsNCw2bDAsOS45MmEyLDIsMCwwLDAsLjU5''@;'; + put 'put ''LDEuNDFsMTQuNiwxNC42YTIsMiwwLDAsMCwyLjgzLDBsOS45LTkuOUEyLDIsMCwwLDAsMzEuOTMsMTkuMlpNOS42NSwxMS4zMWExLjY2LDEuNjYsMCwxLDEsMS42Ni0xLjY2QTEuNjYsMS42NiwwLDAsMSw5LjY1LDExLjMxWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgt''@;'; + put 'put ''MSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4LjQ2LDE1LjczSDIyLjIzQTMuNjgsMy42OCwwLDAsMSwxOSwxMC4yMmwxLjQzLTIuNDdMMTcuMzMsNC42QTIsMiwwLDAsMCwxNS45Miw0TDYsNEEyLDIsMCwwLDAsNCw2bDAsOS45MmEyLDIsMCwwLDAsLjU5LDEuNDFsMTQuNiwxNC42YTIs''@;'; + put 'put ''MiwwLDAsMCwyLjgzLDBsOS45LTkuOWEyLDIsMCwwLDAsMC0yLjgzWk05LjY1LDExLjMxYTEuNjYsMS42NiwwLDEsMSwxLjY2LTEuNjZBMS42NiwxLjY2LDAsMCwxLDkuNjUsMTEuMzFaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIi8+''@;'; + put 'put ''XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS40N2wtNS43Miw5LjkxYTEuMjgsMS4yOCwwLDAsMCwxLjEsMS45MUgzMy42OGExLjI4LDEuMjgsMCwwLDAsMS4xLTEuOTFMMjkuMDYsMS40N0ExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS40N1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxl''@;'; + put 'put ''cnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMS45MywxOS4yLDE3LjMzLDQuNkEyLDIsMCwwLDAsMTUuOTIsNEw2LDRBMiwyLDAsMCwwLDQsNmwwLDkuOTJhMiwyLDAsMCwwLC41OSwxLjQxbDE0LjYsMTQuNmEy''@;'; + put 'put ''LDIsMCwwLDAsMi44MywwbDkuOS05LjlBMiwyLDAsMCwwLDMxLjkzLDE5LjJaTTkuNjUsMTEuMzFhMS42NiwxLjY2LDAsMSwxLDEuNjYtMS42NkExLjY2LDEuNjYsMCwwLDEsOS42NSwxMS4zMVoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2Vk''@;'; + put 'put ''Ii8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYuMzMiIHI9IjUiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+JyksTC5DbHJTaGFwZVRhZ3M9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMz''@;'; + put 'put ''LjE2LDE5LjEzLDE5LjU4LDUuNTVBMS45MiwxLjkyLDAsMCwwLDE4LjIxLDVIMTYuMTJMMzEuNzUsMjAuNDUsMjEuMjIsMzEuMDdhMS45MywxLjkzLDAsMCwwLDIuNzMsMGw5LjIxLTkuMjFhMS45MywxLjkzLDAsMCwwLDAtMi43M1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxp''@;'; + put 'put ''bmUtcGF0aC0xIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSI3LjgxIiBjeT0iMTEuMTQiIHI9IjEuMzMiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjcuNzgsMTkuMTcsMTQuMiw1LjU4QTEuOTIsMS45Miww''@;'; + put 'put ''LDAsMCwxMi44Myw1SDMuNjFBMS45MywxLjkzLDAsMCwwLDEuNjgsNi45M3Y5LjIyYTEuOTIsMS45MiwwLDAsMCwuNTcsMS4zNkwxNS44NCwzMS4xYTEuOTMsMS45MywwLDAsMCwyLjczLDBsOS4yMS05LjIxQTEuOTMsMS45MywwLDAsMCwyNy43OCwxOS4xN1pNMTcuMjYsMjkuNjksMy42OSwx''@;'; + put 'put ''Ni4xNVY3aDkuMUwyNi4zNywyMC40OFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSI3LjgxIiBjeT0iMTEuMTQiIHI9IjEuMzMiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1w''@;'; + put 'put ''YXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI3Ljc4LDE5LjE3LDE0LjIsNS41OEExLjkyLDEuOTIsMCwwLDAsMTIuODMsNUgzLjYxQTEuOTMsMS45MywwLDAsMCwxLjY4LDYuOTN2OS4yMmExLjkyLDEuOTIsMCwwLDAsLjU3LDEuMzZMMTUuODQsMzEuMWExLjkzLDEu''@;'; + put 'put ''OTMsMCwwLDAsMi43MywwbDkuMjEtOS4yMUExLjkzLDEuOTMsMCwwLDAsMjcuNzgsMTkuMTdaTTE3LjI2LDI5LjY5LDMuNjksMTYuMTVWN2g5LjFMMjYuMzcsMjAuNDhaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiLz5cbiAgICAg''@;'; + put 'put ''ICAgICAgIDxwYXRoIGQ9Ik0zMy4xNiwxOS4xMywxOS41OCw1LjU1QTEuOTIsMS45MiwwLDAsMCwxOC4yMSw1SDE2LjEyTDMxLjc1LDIwLjQ1LDIxLjIyLDMxLjA3YTEuOTMsMS45MywwLDAsMCwyLjczLDBsOS4yMS05LjIxYTEuOTMsMS45MywwLDAsMCwwLTIuNzNaIiBjbGFzcz0iY2xyLWkt''@;'; + put 'put ''b3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4g''@;'; + put 'put ''ICAgICAgICAgICA8Y2lyY2xlIGN4PSI3LjgxIiBjeT0iMTEuMTQiIHI9IjEuMzMiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjcuNzgsMTkuMTcsMjQsMTUuNEgyMi4yM0EzLjY1''@;'; + put 'put ''LDMuNjUsMCwwLDEsMjEsMTUuMTlsNS4zMyw1LjI5LTkuMTEsOS4yMUwzLjY5LDE2LjE1VjdoOS4xbDYsNS45NGEzLjY4LDMuNjgsMCwwLDEsLjEtMi42OUwxNC4yLDUuNThBMS45MiwxLjkyLDAsMCwwLDEyLjgzLDVIMy42MUExLjkzLDEuOTMsMCwwLDAsMS42OCw2LjkzdjkuMjJhMS45Miwx''@;'; + put 'put ''LjkyLDAsMCwwLC41NywxLjM2TDE1Ljg0LDMxLjFhMS45MywxLjkzLDAsMCwwLDIuNzMsMGw5LjIxLTkuMjFBMS45MywxLjkzLDAsMCwwLDI3Ljc4LDE5LjE3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiLz5cbiAgICAgICAg''@;'; + put 'put ''ICAgIDxwYXRoIGQ9Ik0yMC44Myw2LjgsMTkuNTgsNS41NUExLjkyLDEuOTIsMCwwLDAsMTguMjEsNUgxNi4xMkwxOS43OSw4LjZaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMz''@;'; + put 'put ''LjE2LDE5LjEzLDI5LjQzLDE1LjRIMjYuNjVsNS4xLDVMMjEuMjIsMzEuMDdhMS45MywxLjkzLDAsMCwwLDIuNzMsMGw5LjIxLTkuMjFhMS45MywxLjkzLDAsMCwwLDAtMi43M1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIi8+''@;'; + put 'put ''XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxl''@;'; + put 'put ''cnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLjE2LDE5LjEzLDE5LjU4LDUuNTVBMS45MiwxLjkyLDAsMCwwLDE4LjIxLDVIMTYuMTJMMzEuNzUsMjAuNDUsMjEuMjIsMzEuMDdhMS45MywxLjkzLDAsMCww''@;'; + put 'put ''LDIuNzMsMGw5LjIxLTkuMjFhMS45MywxLjkzLDAsMCwwLDAtMi43M1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNy43OCwxOS4xNywxNC4yLDUuNThBMS45MiwxLjkyLDAsMCwwLDEyLjgzLDVIMy42MUExLjkzLDEu''@;'; + put 'put ''OTMsMCwwLDAsMS42OCw2LjkzdjkuMjJhMS45MiwxLjkyLDAsMCwwLC41NywxLjM2TDE1Ljg0LDMxLjFhMS45MywxLjkzLDAsMCwwLDIuNzMsMGw5LjIxLTkuMjFBMS45MywxLjkzLDAsMCwwLDI3Ljc4LDE5LjE3Wk02LjY3LDExLjcyQTEuNzMsMS43MywwLDEsMSw4LjQsMTAsMS43MywxLjcz''@;'; + put 'put ''LDAsMCwxLDYuNjcsMTEuNzJaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjcuNzgsMTkuMTcsMTQuMiw1LjU4QTEuOTIsMS45MiwwLDAsMCwxMi44Myw1SDMuNjFBMS45MywxLjkzLDAsMCwwLDEuNjgsNi45M3Y5LjIy''@;'; + put 'put ''YTEuOTIsMS45MiwwLDAsMCwuNTcsMS4zNkwxNS44NCwzMS4xYTEuOTMsMS45MywwLDAsMCwyLjczLDBsOS4yMS05LjIxQTEuOTMsMS45MywwLDAsMCwyNy43OCwxOS4xN1pNNi42NywxMS43MkExLjczLDEuNzMsMCwxLDEsOC40LDEwLDEuNzMsMS43MywwLDAsMSw2LjY3LDExLjcyWiIgY2xh''@;'; + put 'put ''c3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy4xNiwxOS4xMywxOS41OCw1LjU1QTEuOTIsMS45MiwwLDAsMCwxOC4yMSw1SDE2LjEyTDMxLjc1LDIwLjQ1LDIxLjIyLDMxLjA3YTEuOTMsMS45Myww''@;'; + put 'put ''LDAsMCwyLjczLDBsOS4yMS05LjIxYTEuOTMsMS45MywwLDAsMCwwLTIuNzNaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktc29saWQt''@;'; + put 'put ''LWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIwLjgzLDYuOCwxOS41OCw1LjU1QTEuOTIsMS45MiwwLDAsMCwxOC4yMSw1SDE2LjEyTDE5Ljc5LDguNloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBj''@;'; + put 'put ''bHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy4xNiwxOS4xMywyOS40MywxNS40SDI2LjY1bDUuMSw1TDIxLjIyLDMxLjA3YTEuOTMsMS45MywwLDAsMCwyLjczLDBsOS4yMS05LjIxYTEuOTMsMS45MywwLDAsMCwwLTIuNzNaIiBjbGFzcz0i''@;'; + put 'put ''Y2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjcuNzgsMTkuMTcsMjQsMTUuNEgyMi4yM2EzLjY3LDMuNjcsMCwwLDEtMy4zNi01LjE1TDE0LjIsNS41OEExLjkyLDEuOTIsMCwwLDAsMTIuODMsNUgzLjYx''@;'; + put 'put ''QTEuOTMsMS45MywwLDAsMCwxLjY4LDYuOTN2OS4yMmExLjkyLDEuOTIsMCwwLDAsLjU3LDEuMzZMMTUuODQsMzEuMWExLjkzLDEuOTMsMCwwLDAsMi43MywwbDkuMjEtOS4yMUExLjkzLDEuOTMsMCwwLDAsMjcuNzgsMTkuMTdaTTYuNjcsMTEuNzJBMS43MywxLjczLDAsMSwxLDguNCwxMCwx''@;'; + put 'put ''LjczLDEuNzMsMCwwLDEsNi42NywxMS43MloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4''@;'; + put 'put ''LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTQtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz4nKSxMLkNsclNoYXBlSGlzdG9yeT0oMCxFLmNsckljb25T''@;'; + put 'put ''VkcpKCc8cGF0aCBkPSJNMTgsOS44M2ExLDEsMCwwLDAtMSwxdjguNzJsNS45LDRBMSwxLDAsMCwwLDI0LDIxLjg4bC01LTMuMzlWMTAuODNBMSwxLDAsMCwwLDE4LDkuODNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGgg''@;'; + put 'put ''ZD0iTTE4LDJBMTYuMDksMTYuMDksMCwwLDAsNCwxMC4yNlY1LjJhMSwxLDAsMCwwLTIsMFYxNGg4LjhhMSwxLDAsMCwwLDAtMkg1LjM1QTE0LDE0LDAsMSwxLDguNTgsMjguMzVhMSwxLDAsMCwwLTEuMzUsMS40OEExNiwxNiwwLDEsMCwxOCwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xy''@;'; + put 'put ''LWktb3V0bGluZS1wYXRoLTIiLz4nKSxMLkNsclNoYXBlQ2xvY2s9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlptMCwzMEExNCwxNCwwLDEsMSwzMiwxOCwxNCwxNCwwLDAsMSwxOCwzMloiIGNsYXNzPSJjbHItaS1v''@;'; + put 'put ''dXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTguOTIsMTguNFYxMC43NWExLDEsMCwwLDAtMiwwdjguNzJsNS45LDRhMSwxLDAsMSwwLDEuMTEtMS42NloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4g''@;'; + put 'put ''ICAgICAgICAgICA8cGF0aCBkPSJNOCwxNy45NEE5Ljk0LDkuOTQsMCwwLDEsMjMuNDEsOS41OWwuODUtMS4zNmExMS41NSwxMS41NSwwLDEsMC04LjUzLDIxTDE2LDI3LjdBMTAsMTAsMCwwLDEsOCwxNy45NFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+''@;'; + put 'put ''XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTguOTIsMTAuNzVhMSwxLDAsMCwwLTIsMHY4LjcybDUuOSw0YTEsMSwwLDEsMCwxLjExLTEuNjZsLTUtMy4zOVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAg''@;'; + put 'put ''PHBhdGggZD0iTTMzLjEyLDEyLjgxYTcuNDQsNy40NCwwLDAsMS0xLjkxLjU4LDE0LjA1LDE0LjA1LDAsMSwxLTguNi04LjYsNy40NCw3LjQ0LDAsMCwxLC41OC0xLjkxLDE2LjA2LDE2LjA2LDAsMSwwLDkuOTMsOS45M1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0''@;'; + put 'put ''bGluZS1wYXRoLTItLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDYuMzhhMTEuNTYsMTEuNTYsMCwwLDAtMi4yNywyMi44OUwxNiwyNy43YTEwLDEwLDAsMSwxLDcuMzktMTguMWgwYTcuNDUsNy40NSwwLDAsMS0uNzgtMi4yM0ExMS40NSwxMS40NSwwLDAsMCwxOCw2LjM4''@;'; + put 'put ''WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCBj''@;'; + put 'put ''bHItaS1iYWRnZSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LjkyLDEwLjc1YTEsMSwwLDAsMC0yLDB2OC43Mmw1LjksNGExLDEsMCwxLDAsMS4xMS0xLjY2bC01LTMuMzlaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIv''@;'; + put 'put ''PlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLjc3LDE1LjM5aC0yQTE0LDE0LDAsMSwxLDIyLjA5LDQuNjFsMS0xLjc2QTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDMzLjc3LDE1LjM5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTIt''@;'; + put 'put ''LWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCw4YTkuODEsOS44MSwwLDAsMSwyLC4yM2wuODUtMS40NmExMS41NSwxMS41NSwwLDEsMC01LjEzLDIyLjUyTDE2LDI3LjdBMTAsMTAsMCwwLDEsMTgsOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91''@;'; + put 'put ''dGxpbmUtcGF0aC0zLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiBj''@;'; + put 'put ''bGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlptNi4yLDIxLjE4YTEsMSwwLDAsMS0xLjM5LjI4''@;'; + put 'put ''bC01LjktNFYxMC43NWExLDEsMCwwLDEsMiwwVjE4LjRsNSwzLjM5QTEsMSwwLDAsMSwyNC4yLDIzLjE4Wk0yMy44NSw4LjIzYTExLjM5LDExLjM5LDAsMSwwLTguNTQsMjAuODNMMTUsMzAuNjNhMTMsMTMsMCwxLDEsOS43LTIzLjc3WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlk''@;'; + put 'put ''LXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLjEyLDEyLjgxQTcuNDgsNy40OCwwLDAsMSwyMi42OCw3LjYzLDExLjI0LDExLjI0LDAsMCwwLDE4LDYuNmExMS4zOSwxMS4zOSwwLDAsMC0yLjY5LDIyLjQ3TDE1LDMwLjYzQTEzLDEzLDAsMCwxLDE4LDVhMTIuODEsMTIuODEs''@;'; + put 'put ''MCwwLDEsNC41MS44Miw3LjQ2LDcuNDYsMCwwLDEsLjY4LTIuOTQsMTYuMDYsMTYuMDYsMCwxLDAsOS45Myw5LjkzWk0yNC4yLDIzLjE4YTEsMSwwLDAsMS0xLjM5LjI4bC01LjktNFYxMC43NWExLDEsMCwwLDEsMiwwVjE4LjRsNSwzLjM5QTEsMSwwLDAsMSwyNC4yLDIzLjE4WiIgY2xhc3M9''@;'; + put 'put ''ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAg''@;'; + put 'put ''ICAgICAgICAgIDxwYXRoIGQ9Ik0zMy43NywxNS4zOUgyMi4yM0EzLjY5LDMuNjksMCwwLDEsMTksMTMuNTZjMC0uMDktLjA5LS4xOC0uMTMtLjI3VjE4LjRsNSwzLjM5YTEsMSwwLDAsMS0xLjExLDEuNjZsLTUuOS00VjEwLjc1YTEsMSwwLDAsMSwxLjkxLS40MUEzLjY1LDMuNjUsMCwwLDEs''@;'; + put 'put ''MTksOS44OUwyMC43NCw3QTExLjE5LDExLjE5LDAsMCwwLDE4LDYuNmExMS4zOSwxMS4zOSwwLDAsMC0yLjY5LDIyLjQ3TDE1LDMwLjYzQTEzLDEzLDAsMCwxLDE4LDVhMTIuOCwxMi44LDAsMCwxLDMuNTcuNTFsMS41My0yLjY2QTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDMzLjc3''@;'; + put 'put ''LDE1LjM5WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwx''@;'; + put 'put ''MUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCBjbHItaS1hbGVydCIvPicpLEwuQ2xyU2hhcGVBbGFybUNsb2NrPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0z''@;'; + put 'put ''MS40NywzLjg0YTUuNzgsNS43OCwwLDAsMC03LjM3LS42MywxNi4wOCwxNi4wOCwwLDAsMSw4LjIsNy42NUE1LjczLDUuNzMsMCwwLDAsMzEuNDcsMy44NFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTEuNDIs''@;'; + put 'put ''My40M2E1Ljc3LDUuNzcsMCwwLDAtNy42NC40MSw1LjcyLDUuNzIsMCwwLDAtLjM4LDcuNjRBMTYuMDgsMTYuMDgsMCwwLDEsMTEuNDIsMy40M1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTYuNCw0LjA5QTE0''@;'; + put 'put ''LDE0LDAsMCwwLDguMTEsMjcuODhMNS41NiwzMC40M0ExLDEsMCwxLDAsNywzMS44NGwyLjY2LTIuNjZhMTMuOSwxMy45LDAsMCwwLDE2Ljg4LS4wOGwyLjc0LDIuNzRhMSwxLDAsMCwwLDEuNDEtMS40MUwyOCwyNy43OEExNCwxNCwwLDAsMCwxNi40LDQuMDlaTTE5LjU4LDI5LjlBMTIsMTIs''@;'; + put 'put ''MCwxLDEsMjkuOTIsMTkuNTYsMTIsMTIsMCwwLDEsMTkuNTgsMjkuOVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjQuOTIsMjAuMzRsLTYuMDYtM1Y5LjVhLjkuOSwwLDAsMC0xLjgsMHY5TDI0LjEyLDIyYS45''@;'; + put 'put ''LjksMCwxLDAsLjc5LTEuNjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTExLjQyLDMuNDNhNS43Nyw1Ljc3LDAsMCwwLTcuNjQuNDEsNS43Miw1LjcyLDAsMCwwLS4zOCw3LjY0QTE2LjA4LDE2LjA4LDAsMCwx''@;'; + put 'put ''LDExLjQyLDMuNDNaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4Ljg2LDkuNWEuOS45LDAsMCwwLTEuOCwwdjlMMjQuMTIsMjJhLjkuOSwwLDEsMCwuNzktMS42MmwtNi4wNi0z''@;'; + put 'put ''WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOCwyNy43OEExMy44OCwxMy44OCwwLDAsMCwzMS43NywxNS40aC0yYTEyLjA3LDEyLjA3LDAsMSwxLTguNjctOWwxLTEuOGExNCwx''@;'; + put 'put ''NCwwLDAsMC0xNCwyMy4yN0w1LjU2LDMwLjQzQTEsMSwwLDEsMCw3LDMxLjg0bDIuNjYtMi42NmExMy45LDEzLjksMCwwLDAsMTYuODgtLjA4bDIuNzQsMi43NGExLDEsMCwwLDAsMS40MS0xLjQxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMt''@;'; + put 'put ''LWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1v''@;'; + put 'put ''dXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTEuNDIsMy40M2E1Ljc3LDUuNzcsMCwwLDAtNy42NC40MSw1LjcyLDUuNzIsMCwwLDAtLjM4LDcuNjRBMTYuMDgsMTYuMDgsMCwwLDEsMTEu''@;'; + put 'put ''NDIsMy40M1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOCwyNy43OEExMy44OCwxMy44OCwwLDAsMCwzMS43NywxNS40SDIyLjIzQTMuNjksMy42OSwwLDAsMSwxOSwxMy41NkwxOSwx''@;'; + put 'put ''My40djMuNzhMMjUsMjAuMWExLDEsMCwxLDEtLjg3LDEuOEwxNywxOC40NFY5LjY5YTEsMSwwLDAsMSwyLDBWMTBMMTksOS44OWwzLTUuMjhhMTQsMTQsMCwwLDAtMTQsMjMuMjdMNS41NiwzMC40M0ExLDEsMCwxLDAsNywzMS44NGwyLjY2LTIuNjZhMTMuOSwxMy45LDAsMCwwLDE2Ljg4LS4w''@;'; + put 'put ''OGwyLjc0LDIuNzRhMSwxLDAsMCwwLDEuNDEtMS40MVoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42''@;'; + put 'put ''OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMS40''@;'; + put 'put ''MiwzLjQzYTUuNzcsNS43NywwLDAsMC03LjY0LjQxLDUuNzIsNS43MiwwLDAsMC0uMzgsNy42NEExNi4wOCwxNi4wOCwwLDAsMSwxMS40MiwzLjQzWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9''@;'; + put 'put ''Ik0yOCwyNy43OGExMy44OSwxMy44OSwwLDAsMCwzLjIxLTE0LjM5QTcuNDYsNy40NiwwLDAsMSwyMi41LDZhNy41Miw3LjUyLDAsMCwxLC4xMS0xLjIxQTE0LDE0LDAsMCwwLDguMTEsMjcuODhMNS41NiwzMC40M0ExLDEsMCwxLDAsNywzMS44NGwyLjY2LTIuNjZhMTMuOSwxMy45LDAsMCww''@;'; + put 'put ''LDE2Ljg4LS4wOGwyLjc0LDIuNzRhMSwxLDAsMCwwLDEuNDEtMS40MVptLTIuNTItNi4zNWExLDEsMCwwLDEtMS4zMy40N0wxNywxOC40NFY5LjY5YTEsMSwwLDAsMSwyLDB2Ny41TDI1LDIwLjFBMSwxLDAsMCwxLDI1LjQ5LDIxLjQzWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xy''@;'; + put 'put ''LWktc29saWQtcGF0aC0yLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0zLS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMS40''@;'; + put 'put ''MiwzLjQzYTUuNzcsNS43NywwLDAsMC03LjY0LjQxLDUuNzIsNS43MiwwLDAsMC0uMzgsNy42NEExNi4wOCwxNi4wOCwwLDAsMSwxMS40MiwzLjQzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0''@;'; + put 'put ''aCBkPSJNMTguODYsOS41YS45LjksMCwwLDAtMS44LDB2OUwyNC4xMiwyMmEuOS45LDAsMSwwLC43OS0xLjYybC02LjA2LTNaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOCwyNy43''@;'; + put 'put ''OGExMy44OSwxMy44OSwwLDAsMCwzLjIxLTE0LjM5LDcsNywwLDAsMS0yLjExLjA1QTEyLDEyLDAsMSwxLDIyLjU2LDYuOSw3LjU0LDcuNTQsMCwwLDEsMjIuNSw2YTcuNTIsNy41MiwwLDAsMSwuMTEtMS4yMUExNCwxNCwwLDAsMCw4LjExLDI3Ljg4TDUuNTYsMzAuNDNBMSwxLDAsMSwwLDcs''@;'; + put 'put ''MzEuODRsMi42Ni0yLjY2YTEzLjksMTMuOSwwLDAsMCwxNi44OC0uMDhsMi43NCwyLjc0YTEsMSwwLDAsMCwxLjQxLTEuNDFaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBj''@;'; + put 'put ''eT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzEuNDcsMy44NGE1Ljc4LDUuNzgsMCwwLDAtNy4zNy0uNjMsMTYuMDgsMTYuMDgsMCwwLDEsOC4y''@;'; + put 'put ''LDcuNjVBNS43Myw1LjczLDAsMCwwLDMxLjQ3LDMuODRaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTEuNDIsMy40M2E1Ljc3LDUuNzcsMCwwLDAtNy42NC40MSw1LjcyLDUuNzIsMCwwLDAtLjM4LDcuNjRBMTYuMDgs''@;'; + put 'put ''MTYuMDgsMCwwLDEsMTEuNDIsMy40M1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCw0QTE0LDE0LDAsMCwwLDguMTEsMjcuODhMNS41NiwzMC40M0ExLDEsMCwxLDAsNywzMS44NGwyLjY2LTIuNjZhMTMuOSwxMy45''@;'; + put 'put ''LDAsMCwwLDE2Ljg4LS4wOGwyLjc0LDIuNzRhMSwxLDAsMCwwLDEuNDEtMS40MUwyOCwyNy43OEExNCwxNCwwLDAsMCwxOCw0Wm03LjQ3LDE3LjQzYTEsMSwwLDAsMS0xLjMzLjQ3TDE3LDE4LjQ0VjkuNjlhMSwxLDAsMCwxLDIsMHY3LjVMMjUsMjAuMUExLDEsMCwwLDEsMjUuNDksMjEuNDNa''@;'; + put 'put ''IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIi8+JyksTC5DbHJTaGFwZUNpcmNsZUFycm93PSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJabTAsMzBBMTQsMTQsMCwxLDEsMzIsMTgsMTQsMTQs''@;'; + put 'put ''MCwwLDEsMTgsMzJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LjA4LDguMjZsLTcuNjEsNy42MWExLDEsMCwxLDAsMS40MSwxLjQxTDE3LDEyLjE4djE1YTEsMSwwLDAsMCwyLDBWMTJsNS4yOCw1LjI4YTEs''@;'; + put 'put ''MSwwLDEsMCwxLjQxLTEuNDFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlptOCwxNS41N2ExLjQzLDEuNDMsMCwwLDEtMiwwTDE5LjQsMTNW''@;'; + put 'put ''MjcuMTRhMS40LDEuNCwwLDAsMS0yLjgsMHYtMTRsLTQuNDMsNC40M2ExLjQsMS40LDAsMCwxLTItMkwxOC4wOCw3LjcsMjYsMTUuNTlBMS40LDEuNCwwLDAsMSwyNiwxNy41N1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz4nKSxMLkNsclNoYXBlQ2hpbGRBcnJv''@;'; + put 'put ''dz0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjQuODIsMTUuOGExLDEsMCwwLDAtMS40MSwwLDEsMSwwLDAsMCwwLDEuNDFMMjcuMiwyMUg5VjMuNzhhMSwxLDAsMSwwLTIsMFYyMWEyLDIsMCwwLDAsMiwySDI3LjE1bC0zLjc0LDMuNzVhMSwxLDAsMCwwLDAsMS40MSwxLDEsMCwwLDAs''@;'; + put 'put ''LjcuMjksMSwxLDAsMCwwLC43MS0uMjlMMzEsMjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz4nKSxMLkNsclNoYXBlQ29weT0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjkuNSw3aC0xOUExLjUsMS41LDAsMCwwLDksOC41djI0QTEuNSwxLjUs''@;'; + put 'put ''MCwwLDAsMTAuNSwzNGgxOUExLjUsMS41LDAsMCwwLDMxLDMyLjVWOC41QTEuNSwxLjUsMCwwLDAsMjkuNSw3Wk0yOSwzMkgxMVY5SDI5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNiwzLjVBMS41LDEuNSww''@;'; + put 'put ''LDAsMCwyNC41LDJINS41QTEuNSwxLjUsMCwwLDAsNCwzLjV2MjRBMS41LDEuNSwwLDAsMCw1LjUsMjlINlY0SDI2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNywzLjU2QTEuNTYsMS41NiwwLDAsMCwyNS40''@;'; + put 'put ''MywySDUuNTdBMS41NiwxLjU2LDAsMCwwLDQsMy41NlYyOC40NEExLjU2LDEuNTYsMCwwLDAsNS41NywzMGguNTJWNC4wN0gyN1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjgiIHk9IjYiIHdpZHRoPSIyMyIgaGVpZ2h0''@;'; + put 'put ''PSIyOCIgcng9IjEuNSIgcnk9IjEuNSIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIvPicpLEwuQ2xyU2hhcGVIZWxwPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJabTAsMzBBMTQsMTQsMCwx''@;'; + put 'put ''LDEsMzIsMTgsMTQsMTQsMCwwLDEsMTgsMzJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LjI5LDguOTJhNy4zOCw3LjM4LDAsMCwwLTUuNzIsMi41NywxLDEsMCwwLDAtLjMyLjcxLjkyLjkyLDAsMCwwLC45''@;'; + put 'put ''NS45MiwxLjA4LDEuMDgsMCwwLDAsLjcxLS4yOSw1LjcsNS43LDAsMCwxLDQuMzMtMmMyLjM2LDAsMy44MywxLjUyLDMuODMsMy40MXYuMDVjMCwyLjIxLTEuNzYsMy40NC00LjU0LDMuNjVhLjguOCwwLDAsMC0uNzYuOTJzMCwyLjMyLDAsMi43NWExLDEsMCwwLDAsMSwuOWguMTFhMSwxLDAs''@;'; + put 'put ''MCwwLC45LTFWMTkuNDVjMy0uNDIsNS40My0yLDUuNDMtNS4yOHYtLjA1QzI0LjE4LDExLjEyLDIxLjg0LDguOTIsMTguMjksOC45MloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIxNy43OCIgY3k9IjI2LjIi''@;'; + put 'put ''IHI9IjEuMjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjQuMTgsMTQuMTd2LS4wNWMwLTMtMi4zNC01LjItNS44OC01LjJhNy4zOCw3LjM4LDAsMCwwLTUuNzIsMi41NywxLDEsMCwwLDAtLjMyLjcxLjkyLjky''@;'; + put 'put ''LDAsMCwwLC45NS45MiwxLjA4LDEuMDgsMCwwLDAsLjcxLS4yOSw1LjcsNS43LDAsMCwxLDQuMzMtMmMyLjM2LDAsMy44MywxLjUyLDMuODMsMy40MXYuMDVjMCwyLjIxLTEuNzYsMy40NC00LjU0LDMuNjVhLjguOCwwLDAsMC0uNzYuOTJzMCwyLjMyLDAsMi43NWExLDEsMCwwLDAsMSwuOWgu''@;'; + put 'put ''MTFhMSwxLDAsMCwwLC45LTFWMTkuNDVDMjEuNzUsMTksMjQuMTgsMTcuNDUsMjQuMTgsMTQuMTdaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjE3Ljc4IiBjeT0iMjYuMiIgcj0i''@;'; + put 'put ''MS4yNSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuMTIsMTIuODFhNy40Myw3LjQzLDAsMCwxLTEuOTEuNTgsMTQuMDUsMTQuMDUsMCwxLDEtOC42LTguNiw3LjQ0LDcuNDQsMCww''@;'; + put 'put ''LDEsLjU4LTEuOTEsMTYuMDYsMTYuMDYsMCwxLDAsOS45Myw5LjkzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1vdXRsaW5l''@;'; + put 'put ''LS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLjEyLDEyLjgxYTcuNDksNy40OSwwLDAsMS05LjkzLTkuOTMsMTYuMDYsMTYuMDYsMCwxLDAsOS45Myw5LjkzWm0tMTUuMzQsMTVhMS42NSwxLjY1LDAs''@;'; + put 'put ''MSwxLDEuNjUtMS42NUExLjY1LDEuNjUsMCwwLDEsMTcuNzgsMjcuODVabTEuMzctOC4wNnYxLjcyYTEuMzcsMS4zNywwLDAsMS0xLjMsMS4zNmgtLjExYTEuMzQsMS4zNCwwLDAsMS0xLjM5LTEuM2MwLS40NCwwLTIuNzYsMC0yLjc2YTEuMTksMS4xOSwwLDAsMSwxLjEyLTEuMzFjMS41Ny0u''@;'; + put 'put ''MTIsNC4xOC0uNyw0LjE4LTMuMjUsMC0xLjgzLTEuNDEtMy4wNy0zLjQzLTMuMDdhNS4zMSw1LjMxLDAsMCwwLTQsMS45MiwxLjM2LDEuMzYsMCwwLDEtMi4zNS0uOSwxLjQzLDEuNDMsMCwwLDEsLjQzLTEsNy43Nyw3Ljc3LDAsMCwxLDYtMi42OWMzLjcsMCw2LjI4LDIuMyw2LjI4LDUuNkMy''@;'; + put 'put ''NC41OCwxNy4xNiwyMi42MSwxOS4yLDE5LjE1LDE5Ljc5WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xy''@;'; + put 'put ''LWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJabS0uMjIsMjUuODVhMS42NSwxLjY1LDAsMSwxLDEuNjUtMS42NUExLjY1LDEuNjUsMCwwLDEsMTcuNzgsMjcu''@;'; + put 'put ''ODVabTEuMzctOC4wNnYxLjcyYTEuMzcsMS4zNywwLDAsMS0xLjMsMS4zNmgtLjExYTEuMzQsMS4zNCwwLDAsMS0xLjM5LTEuM2MwLS40NCwwLTIuNzYsMC0yLjc2YTEuMTksMS4xOSwwLDAsMSwxLjEyLTEuMzFjMS41Ny0uMTIsNC4xOC0uNyw0LjE4LTMuMjUsMC0xLjgzLTEuNDEtMy4wNy0z''@;'; + put 'put ''LjQzLTMuMDdhNS4zMSw1LjMxLDAsMCwwLTQsMS45MiwxLjM2LDEuMzYsMCwwLDEtMi4zNS0uOSwxLjQzLDEuNDMsMCwwLDEsLjQzLTEsNy43Nyw3Ljc3LDAsMCwxLDYtMi42OWMzLjcsMCw2LjI4LDIuMyw2LjI4LDUuNkMyNC41OCwxNy4xNiwyMi42MSwxOS4yLDE5LjE1LDE5Ljc5WiIgY2xh''@;'; + put 'put ''c3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPicpLEwuQ2xyU2hhcGVMb2dpbj0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjgsNEgxMmEyLDIsMCwwLDAtMiwySDI4VjMwSDEyVjIwLjJIMTBWMzBhMiwyLDAsMCwwLDIsMkgyOGEyLDIsMCwwLDAsMi0yVjZBMiwyLDAs''@;'; + put 'put ''MCwwLDI4LDRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNS4xMiwxOC40NmExLDEsMCwxLDAsMS40MSwxLjQxbDUuNzktNS43OUwxNi41NCw4LjI5YTEsMSwwLDAsMC0xLjQxLDEuNDFMMTguNSwxM0g0YTEs''@;'; + put 'put ''MSwwLDAsMC0xLDEsMSwxLDAsMCwwLDEsMUgxOC41WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjgsNEgxMmEyLDIsMCwwLDAtMiwydjdoOC41TDE1LjEyLDkuNzFhMSwxLDAsMCwxLDEuNDEtMS40MWw1Ljc5''@;'; + put 'put ''LDUuNzktNS43OSw1Ljc5YTEsMSwwLDAsMS0xLjQxLTEuNDFMMTguNSwxNUgxMFYzMGEyLDIsMCwwLDAsMiwySDI4YTIsMiwwLDAsMCwyLTJWNkEyLDIsMCwwLDAsMjgsNFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJN''@;'; + put 'put ''MTAsMTNINGExLDEsMCwwLDAtMSwxLDEsMSwwLDAsMCwxLDFoNloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+JyksTC5DbHJTaGFwZUxvZ291dD0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNNyw2SDIzdjkuOGgyVjZhMiwyLDAsMCwwLTItMkg3QTIsMiww''@;'; + put 'put ''LDAsMCw1LDZWMzBhMiwyLDAsMCwwLDIsMkgyM2EyLDIsMCwwLDAsMi0ySDdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4LjE2LDE3LjI4YTEsMSwwLDAsMC0xLjQxLDEuNDFMMzAuMTMsMjJIMTUuNjNhMSwx''@;'; + put 'put ''LDAsMCwwLTEsMSwxLDEsMCwwLDAsMSwxaDE0LjVsLTMuMzgsMy40NmExLDEsMCwxLDAsMS40MSwxLjQxTDM0LDIzLjA3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMyw0SDdBMiwyLDAsMCwwLDUsNlYzMGEy''@;'; + put 'put ''LDIsMCwwLDAsMiwySDIzYTIsMiwwLDAsMCwyLTJWMjRIMTUuNjNhMSwxLDAsMCwxLTEtMSwxLDEsMCwwLDEsMS0xSDI1VjZBMiwyLDAsMCwwLDIzLDRaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjguMTYsMTcuMjhh''@;'; + put 'put ''MSwxLDAsMCwwLTEuNDEsMS40MUwzMC4xMywyMkgyNXYyaDUuMTNsLTMuMzgsMy40NmExLDEsMCwxLDAsMS40MSwxLjQxTDM0LDIzLjA3WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIvPicpLEwuQ2xyU2hhcGVQcmludGVyPSgwLEUuY2xySWNvblNWRykoJzxwYXRo''@;'; + put 'put ''IGQ9Ik0yOSw5SDI3VjVIOVY5SDdhNCw0LDAsMCwwLTQsNFYyNEg2LjkyVjIyLjA5SDVWMTNhMiwyLDAsMCwxLDItMkgyOWEyLDIsMCwwLDEsMiwydjlIMjkuMDhWMjRIMzNWMTNBNCw0LDAsMCwwLDI5LDlaTTI1LDlIMTFWN0gyNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxp''@;'; + put 'put ''bmUtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjgsMThIOGExLDEsMCwwLDAsMCwySDlWMzJIMjdWMjBoMWExLDEsMCwwLDAsMC0yWk0yNSwzMEgxMVYyMEgyNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cmVj''@;'; + put 'put ''dCB4PSIyNyIgeT0iMTMuMDQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjgsMThIOGExLDEsMCwwLDAsMCwySDlWMzJIMjdWMjBoMWExLDEsMCwwLDAsMC0yWk0yNSwzMEgx''@;'; + put 'put ''MVYyMEgyNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cG9seWdvbiBwb2ludHM9IjMxIDE1LjQgMzEgMjIuMDkgMjkuMDggMjIuMDkgMjkuMDggMjQgMzMgMjQgMzMgMTUuNCAzMSAxNS40IiBj''@;'; + put 'put ''bGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTUsMTNhMiwyLDAsMCwxLDItMkgxOC42NEEzLjY1LDMuNjUsMCwwLDEsMTksOS44OUwxOS41NCw5SDExVjdoOS43MWwxLjEzLTJIOVY5SDdh''@;'; + put 'put ''NCw0LDAsMCwwLTQsNFYyNEg2LjkyVjIyLjA5SDVaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMz''@;'; + put 'put ''LjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9''@;'; + put 'put ''Ik0yOCwxOEg4YTEsMSwwLDAsMCwwLDJIOVYzMkgyN1YyMGgxYTEsMSwwLDAsMCwwLTJaTTI1LDMwSDExVjIwSDI1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIyNyIgeT0iMTMuMDQi''@;'; + put 'put ''IHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLDEyLjg4YTcuNDUsNy40NSwwLDAsMS0yLC41NXY4LjY2SDI5LjA4VjI0SDMzVjEzQzMzLDEzLDMz''@;'; + put 'put ''LDEyLjkzLDMzLDEyLjg4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNNSwxM2EyLDIsMCwwLDEsMi0ySDI0LjQyYTcuNSw3LjUsMCwwLDEtMS4yNy0ySDExVjdIMjIuNTdhNy41Miw3''@;'; + put 'put ''LjUyLDAsMCwxLS4wNy0xLDcuNTQsNy41NCwwLDAsMSwuMDctMUg5VjlIN2E0LDQsMCwwLDAtNCw0VjI0SDYuOTJWMjIuMDlINVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAi''@;'; + put 'put ''IGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC01LS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOSw5SDI3VjVIOVY5SDdhNCw0LDAsMCwwLTQsNFYyNEg5djhIMjdWMjRoNlYxM0E0LDQsMCww''@;'; + put 'put ''LDAsMjksOVpNMjUsMjR2NkgxMVYxOUgyNVpNMjUsOUgxMVY3SDI1Wm00LDZIMjdWMTNoMloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMi4yMywxNS40QTMuNjgsMy42OCwwLDAsMSwxOSw5Ljg5TDE5LjU0LDlIMTFW''@;'; + put 'put ''N2g5LjcxbDEuMTMtMkg5VjlIN2E0LDQsMCwwLDAtNCw0VjI0SDl2OEgyN1YyNGg2VjE1LjRaTTI1LDI0djZIMTFWMTlIMjVaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4x''@;'; + put 'put ''NCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIGNs''@;'; + put 'put ''ci1pLWFsZXJ0Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMsMTIuODhhNy4zLDcuMywwLDAsMS00LC41NVYxNUgyN1YxM2guMzJhNy41Miw3LjUyLDAsMCwxLTQuMTgtNEgxMVY3SDIyLjU3YTcuNTIsNy41MiwwLDAsMS0uMDctMSw3LjU0LDcuNTQsMCwwLDEsLjA3LTFIOVY5SDdhNCw0''@;'; + put 'put ''LDAsMCwwLTQsNFYyNEg5djhIMjdWMjRoNlYxM0MzMywxMywzMywxMi45MywzMywxMi44OFpNMjUsMjR2NkgxMVYxOUgyNVoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYi''@;'; + put 'put ''IHI9IjUiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+JyksTC5DbHJTaGFwZVdvcmxkPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yNi41NCwxOGExOS4zOCwxOS4zOCwwLDAsMC0uNDMtNGgzLjZhMTIuMywx''@;'; + put 'put ''Mi4zLDAsMCwwLS42Ny0xLjZIMjUuNjlBMTkuNzIsMTkuNzIsMCwwLDAsMjIuOCw2LjUzYTEyLjMsMTIuMywwLDAsMC0yLjU1LS43NiwxNy44MywxNy44MywwLDAsMSwzLjg5LDYuNTlIMTguNzVWNS42Yy0uMjUsMC0uNTEsMC0uNzcsMHMtLjQ5LDAtLjczLDB2Ni43N0gxMS44NmExNy44Mywx''@;'; + put 'put ''Ny44MywwLDAsMSwzLjktNi42LDEyLjI4LDEyLjI4LDAsMCwwLTIuNTQuNzUsMTkuNzIsMTkuNzIsMCwwLDAtMi45MSw1Ljg1SDYuOTRBMTIuMywxMi4zLDAsMCwwLDYuMjYsMTRIOS44OWExOS4zOCwxOS4zOCwwLDAsMC0uNDMsNCwxOS42NywxOS42NywwLDAsMCwuNSw0LjM3SDYuNDJBMTIu''@;'; + put 'put ''MzQsMTIuMzQsMCwwLDAsNy4xNiwyNGgzLjIzYTE5LjMyLDE5LjMyLDAsMCwwLDIuNjksNS4zNiwxMi4yOCwxMi4yOCwwLDAsMCwyLjYxLjc5QTE3LjkxLDE3LjkxLDAsMCwxLDEyLDI0aDUuMjZ2Ni4zNGMuMjQsMCwuNDksMCwuNzMsMHMuNTEsMCwuNzcsMFYyNEgyNGExNy45LDE3LjksMCww''@;'; + put 'put ''LDEtMy43LDYuMTUsMTIuMjgsMTIuMjgsMCwwLDAsMi42Mi0uODFBMTkuMzIsMTkuMzIsMCwwLDAsMjUuNjEsMjRoMy4yYTEyLjM0LDEyLjM0LDAsMCwwLC43NC0xLjZIMjZBMTkuNjcsMTkuNjcsMCwwLDAsMjYuNTQsMThabS05LjI5LDQuMzdIMTEuNTFhMTcuNjksMTcuNjksMCwwLDEtLjA5''@;'; + put 'put ''LTguNGg1LjgzWm03LjI0LDBIMTguNzVWMTRoNS44M0ExOC4yMSwxOC4yMSwwLDAsMSwyNSwxOCwxOC4xMiwxOC4xMiwwLDAsMSwyNC40OSwyMi4zN1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMkExNiwx''@;'; + put 'put ''NiwwLDEsMCwzNCwxOCwxNiwxNiwwLDAsMCwxOCwyWm0wLDMwQTE0LDE0LDAsMSwxLDMyLDE4LDE0LDE0LDAsMCwxLDE4LDMyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy4xMiwxMi44MWE3LjQ0LDcuNDQs''@;'; + put 'put ''MCwwLDEtMS45MS41OCwxNC4wNSwxNC4wNSwwLDEsMS04LjYtOC42LDcuNDMsNy40MywwLDAsMSwuNTgtMS45MSwxNi4wNiwxNi4wNiwwLDEsMCw5LjkzLDkuOTNaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAg''@;'; + put 'put ''ICAgIDxwYXRoIGQ9Ik0yMC4yNSw1Ljc3YTE3LjgzLDE3LjgzLDAsMCwxLDMuODksNi41OUgxOC43NVY1LjZjLS4yNSwwLS41MSwwLS43Nywwcy0uNDksMC0uNzMsMHY2Ljc3SDExLjg2YTE3LjgzLDE3LjgzLDAsMCwxLDMuOS02LjYsMTIuMjgsMTIuMjgsMCwwLDAtMi41NC43NSwxOS43Miwx''@;'; + put 'put ''OS43MiwwLDAsMC0yLjkxLDUuODVINi45NEExMi4zLDEyLjMsMCwwLDAsNi4yNiwxNEg5Ljg5YTE5LjM4LDE5LjM4LDAsMCwwLS40Myw0LDE5LjY3LDE5LjY3LDAsMCwwLC41LDQuMzdINi40MkExMi4zNCwxMi4zNCwwLDAsMCw3LjE2LDI0aDMuMjNhMTkuMzIsMTkuMzIsMCwwLDAsMi42OSw1''@;'; + put 'put ''LjM2LDEyLjI4LDEyLjI4LDAsMCwwLDIuNjEuNzlBMTcuOTEsMTcuOTEsMCwwLDEsMTIsMjRoNS4yNnY2LjM0Yy4yNCwwLC40OSwwLC43Mywwcy41MSwwLC43NywwVjI0SDI0YTE3LjksMTcuOSwwLDAsMS0zLjcsNi4xNSwxMi4yOCwxMi4yOCwwLDAsMCwyLjYyLS44MUExOS4zMiwxOS4zMiww''@;'; + put 'put ''LDAsMCwyNS42MSwyNGgzLjJhMTIuMzQsMTIuMzQsMCwwLDAsLjc0LTEuNkgyNmExOS42NywxOS42NywwLDAsMCwuNS00LjM3LDE5LjM4LDE5LjM4LDAsMCwwLS40My00aDMuNmMtLjA2LS4xNy0uMTItLjMzLS4xOS0uNDlhNy40NSw3LjQ1LDAsMCwxLTMuNDctMS4xMWgtLjM2YzAtLjExLS4w''@;'; + put 'put ''OC0uMjEtLjExLS4zMmE3LjQ4LDcuNDgsMCwwLDEtMy4wNi01LjYyQTEyLjQxLDEyLjQxLDAsMCwwLDIwLjI1LDUuNzdabS0zLDE2LjU5SDExLjUxYTE3LjY5LDE3LjY5LDAsMCwxLS4wOS04LjRoNS44M1pNMjUsMThhMTguMTIsMTguMTIsMCwwLDEtLjU1LDQuMzdIMTguNzVWMTRoNS44M0Ex''@;'; + put 'put ''OC4yMSwxOC4yMSwwLDAsMSwyNSwxOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91''@;'; + put 'put ''dGxpbmUtcGF0aC0zLS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMC4wNSwxOGEyMC40NiwyMC40NiwwLDAsMCwuNjIsNC45M2g2LjQ4VjEzLjQ1SDEwLjU4QTIwLjU1LDIwLjU1LDAsMCwwLDEwLjA1LDE4WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1p''@;'; + put 'put ''LXNvbGlkLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4Ljg1LDEzLjQ1djkuNDhoNi40OEEyMC40NiwyMC40NiwwLDAsMCwyNiwxOGEyMC41NSwyMC41NSwwLDAsMC0uNTItNC41NVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiLz5cbiAgICAgICAg''@;'; + put 'put ''ICAgIDxwYXRoIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJaTTMwLjIyLDI0LjcxSDI2LjZhMjEuOCwyMS44LDAsMCwxLTMsNiwxMy44NiwxMy44NiwwLDAsMS0zLC45MiwyMC4yMSwyMC4yMSwwLDAsMCw0LjE4LTYuOTRIMTguODZ2Ny4xNWMtLjI5LDAtLjU3''@;'; + put 'put ''LDAtLjg2LDBzLS41NSwwLS44MywwVjI0LjcxSDExLjIyYTIwLjIxLDIwLjIxLDAsMCwwLDQuMTgsNi45NSwxMy44NiwxMy44NiwwLDAsMS0yLjk0LS45LDIxLjgsMjEuOCwwLDAsMS0zLTYuMDVINS43OGExMy45NCwxMy45NCwwLDAsMS0uODMtMS44MWg0QTIyLjIsMjIuMiwwLDAsMSw4LjM3''@;'; + put 'put ''LDE4YTIxLjg4LDIxLjg4LDAsMCwxLC40OC00LjU1SDQuNzZhMTMuODgsMTMuODgsMCwwLDEsLjc2LTEuODFIOS4zM0EyMi4yNiwyMi4yNiwwLDAsMSwxMi42MSw1YTEzLjg2LDEzLjg2LDAsMCwxLDIuODctLjg0LDIwLjEzLDIwLjEzLDAsMCwwLTQuNCw3LjQ1aDYuMDlWNGMuMjgsMCwuNTUs''@;'; + put 'put ''MCwuODMsMHMuNTgsMCwuODYsMHY3LjY0aDYuMDlhMjAuMTMsMjAuMTMsMCwwLDAtNC4zOS03LjQ0QTEzLjg5LDEzLjg5LDAsMCwxLDIzLjQzLDVhMjIuMjYsMjIuMjYsMCwwLDEsMy4yNyw2LjU5aDMuNzdhMTMuODksMTMuODksMCwwLDEsLjc2LDEuODFIMjcuMTdBMjEuODgsMjEuODgsMCww''@;'; + put 'put ''LDEsMjcuNjYsMThhMjIuMiwyMi4yLDAsMCwxLS41Nyw0LjkzaDRBMTMuOTQsMTMuOTQsMCwwLDEsMzAuMjIsMjQuNzFaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTAuMDUsMThhMjAuNDYsMjAuNDYsMCwwLDAsLjYy''@;'; + put 'put ''LDQuOTNoNi40OFYxMy40NUgxMC41OEEyMC41NSwyMC41NSwwLDAsMCwxMC4wNSwxOFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTguODUsMjIuOTRoNi40OEEyMC40NiwyMC40NiwwLDAs''@;'; + put 'put ''MCwyNiwxOGEyMC41NSwyMC41NSwwLDAsMC0uNTItNC41NUgxOC44NVoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuMTIsMTIuODFhNy40NCw3LjQ0LDAsMCwxLTEuOS41OHYwSDMxYTYu''@;'; + put 'put ''NzcsNi43NywwLDAsMS0yLjA3LDBoLTEuOEEyMS44OCwyMS44OCwwLDAsMSwyNy42NiwxOGEyMi4yLDIyLjIsMCwwLDEtLjU3LDQuOTNoNGExMy45NCwxMy45NCwwLDAsMS0uODMsMS44MUgyNi42YTIxLjgsMjEuOCwwLDAsMS0zLDYsMTMuODYsMTMuODYsMCwwLDEtMywuOTIsMjAuMjEsMjAu''@;'; + put 'put ''MjEsMCwwLDAsNC4xOC02Ljk0SDE4Ljg2djcuMTVjLS4yOSwwLS41NywwLS44Niwwcy0uNTUsMC0uODMsMFYyNC43MUgxMS4yMmEyMC4yMSwyMC4yMSwwLDAsMCw0LjE4LDYuOTUsMTMuODYsMTMuODYsMCwwLDEtMi45NC0uOSwyMS44LDIxLjgsMCwwLDEtMy02LjA1SDUuNzhhMTMuOTQsMTMu''@;'; + put 'put ''OTQsMCwwLDEtLjgzLTEuODFoNEEyMi4yLDIyLjIsMCwwLDEsOC4zNywxOGEyMS44OCwyMS44OCwwLDAsMSwuNDgtNC41NUg0Ljc2YTEzLjg4LDEzLjg4LDAsMCwxLC43Ni0xLjgxSDkuMzNBMjIuMjYsMjIuMjYsMCwwLDEsMTIuNjEsNWExMy44NiwxMy44NiwwLDAsMSwyLjg3LS44NCwyMC4x''@;'; + put 'put ''MywyMC4xMywwLDAsMC00LjQsNy40NWg2LjA5VjRjLjI4LDAsLjU1LDAsLjgzLDBzLjU4LDAsLjg2LDB2Ny42NGg2LjA5bDAtLjEzYTcuNDcsNy40NywwLDAsMS0yLjM2LTQuNzYsMjAuMzcsMjAuMzcsMCwwLDAtMi0yLjU1LDE0LjIzLDE0LjIzLDAsMCwxLDIuMDYuNTYsNy40NCw3LjQ0LDAs''@;'; + put 'put ''MCwxLC41Ny0xLjg2LDE2LjA2LDE2LjA2LDAsMSwwLDkuOTMsOS45M1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFk''@;'; + put 'put ''Z2VkIGNsci1pLXNvbGlkLXBhdGgtNC0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+JyksTC5DbHJTaGFwZVNsaWRlcj0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTIsMTIuMzdBNCw0LDAsMCwwLDksOC40OFY1QTEsMSwwLDEsMCw3LDVWOC40OGE0LDQsMCwwLDAsMCw3Ljc4VjMxYTEsMSww''@;'; + put 'put ''LDEsMCwyLDBWMTYuMjZBNCw0LDAsMCwwLDEyLDEyLjM3Wm0tNCwyYTIsMiwwLDEsMSwyLTJBMiwyLDAsMCwxLDgsMTQuNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIsMTUuODNhNCw0LDAsMCwwLTMtMy44''@;'; + put 'put ''OVY1YTEsMSwwLDEsMC0yLDB2Ni45NGE0LDQsMCwwLDAsMCw3Ljc4VjMxYTEsMSwwLDEsMCwyLDBWMTkuNzJBNCw0LDAsMCwwLDMyLDE1LjgzWm0tNCwyYTIsMiwwLDEsMSwyLTJBMiwyLDAsMCwxLDI4LDE3Ljg3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIi''@;'; + put 'put ''Lz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMiwyNC41YTQsNCwwLDAsMC0zLTMuODlWNWExLDEsMCwxLDAtMiwwVjIwLjYxYTQsNCwwLDAsMCwwLDcuNzhWMzFhMSwxLDAsMSwwLDIsMFYyOC4zOUE0LDQsMCwwLDAsMjIsMjQuNVptLTQsMmEyLDIsMCwxLDEsMi0yQTIsMiwwLDAsMSwxOCwy''@;'; + put 'put ''Ni41M1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNOSw5LjI5VjVBMSwxLDAsMSwwLDcsNVY5LjNhMy4yMiwzLjIyLDAsMCwwLDAsNi4xMVYzMWExLDEsMCwxLDAsMiwwVjE1LjQzQTMuMjIsMy4yMiwwLDAsMCw5''@;'; + put 'put ''LDkuMjlaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTksMjEuNDVWNWExLDEsMCwxLDAtMiwwVjIxLjQ3YTMuMjIsMy4yMiwwLDAsMCwwLDYuMTFWMzFhMSwxLDAsMSwwLDIsMFYyNy42YTMuMjIsMy4yMiwwLDAsMCww''@;'; + put 'put ''LTYuMTRaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjksMTIuNzVWNWExLDEsMCwxLDAtMiwwdjcuNzZhMy4yMiwzLjIyLDAsMCwwLDAsNi4xMVYzMWExLDEsMCwxLDAsMiwwVjE4Ljg5YTMuMjIsMy4yMiwwLDAsMCww''@;'; + put 'put ''LTYuMTRaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIi8+JyksTC5DbHJTaGFwZUNsaXBib2FyZD0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjkuMjksNUgyN1Y3aDJWMzJIN1Y3SDlWNUg3QTEuNzUsMS43NSwwLDAsMCw1LDYuNjlWMzIuMzFBMS43LDEuNyww''@;'; + put 'put ''LDAsMCw2LjcxLDM0SDI5LjI5QTEuNywxLjcsMCwwLDAsMzEsMzIuMzFWNi42OUExLjcsMS43LDAsMCwwLDI5LjI5LDVaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNiw3LjMzQTIuMzQsMi4zNCwwLDAsMCwy''@;'; + put 'put ''My42Nyw1SDIxLjg3YTQsNCwwLDAsMC03Ljc1LDBIMTIuMzNBMi4zNCwyLjM0LDAsMCwwLDEwLDcuMzNWMTFIMjZaTTI0LDlIMTJWNy4zM0EuMzMuMzMsMCwwLDEsMTIuMzMsN0gxNlY2YTIsMiwwLDAsMSw0LDBWN2gzLjY3YS4zMy4zMywwLDAsMSwuMzMuMzNaIiBjbGFzcz0iY2xyLWktb3V0''@;'; + put 'put ''bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjExIiB5PSIxNCIgd2lkdGg9IjE0IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTEiIHk9IjE4IiB3''@;'; + put 'put ''aWR0aD0iMTQiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMSIgeT0iMjIiIHdpZHRoPSIxNCIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIg''@;'; + put 'put ''Lz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjExIiB5PSIyNiIgd2lkdGg9IjE0IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02IiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTEiIHk9IjE0IiB3aWR0aD0iMTQiIGhlaWdodD0iMiIgY2xhc3M9''@;'; + put 'put ''ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTEiIHk9IjE4IiB3aWR0aD0iMTQiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFk''@;'; + put 'put ''Z2VkIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTEiIHk9IjIyIiB3aWR0aD0iMTQiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTEiIHk9IjI2IiB3aWR0aD0i''@;'; + put 'put ''MTQiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIzLjEzLDlIMTJWNy4zM0EuMzMuMzMsMCwwLDEsMTIuMzMsN0gxNlY2YTIsMiwwLDAsMSw0LDBWN2gyLjU3YTcu''@;'; + put 'put ''NTIsNy41MiwwLDAsMS0uMDctMSw3LjUyLDcuNTIsMCwwLDEsLjA3LTFoLS43YTQsNCwwLDAsMC03Ljc1LDBIMTIuMzNBMi4zNCwyLjM0LDAsMCwwLDEwLDcuMzNWMTFIMjQuNDJBNy41LDcuNSwwLDAsMSwyMy4xMyw5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRs''@;'; + put 'put ''aW5lLXBhdGgtNS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLDEzLjVhNy41Miw3LjUyLDAsMCwxLTEtLjA3VjMySDdWN0g5VjVIN0ExLjc1LDEuNzUsMCwwLDAsNSw2LjY5VjMyLjMxQTEuNywxLjcsMCwwLDAsNi43MSwzNEgyOS4yOUExLjcsMS43LDAsMCwwLDMxLDMy''@;'; + put 'put ''LjMxVjEzLjQzQTcuNTIsNy41MiwwLDAsMSwzMCwxMy41WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNi0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJh''@;'; + put 'put ''ZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNy0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI5LjI5LDVIMjIuMTdhNC40NSw0LjQ1LDAsMCwwLTQuMTEtM0E0LjQ2LDQuNDYsMCwwLDAsMTQsNUg3QTEuNzUsMS43NSwwLDAsMCw1LDYuNjlWMzIuMzFBMS43''@;'; + put 'put ''LDEuNywwLDAsMCw2LjcxLDM0SDI5LjI5QTEuNywxLjcsMCwwLDAsMzEsMzIuMzFWNi42OUExLjcsMS43LDAsMCwwLDI5LjI5LDVabS0xOCwzYTEsMSwwLDAsMSwxLTFoMy40NFY2LjMxYTIuMzEsMi4zMSwwLDEsMSw0LjYzLDBWN2gzLjQ0YTEsMSwwLDAsMSwxLDF2MkgxMS4zMVpNMjUsMjhI''@;'; + put 'put ''MTFWMjZIMjVabTAtNEgxMVYyMkgyNVptMC00SDExVjE4SDI1Wm0wLTRIMTFWMTRIMjVaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLDEzLjVBNy40OSw3LjQ5LDAsMCwxLDIzLjY2LDEwSDExLjMxVjhhMSwxLDAs''@;'; + put 'put ''MCwxLDEtMWgzLjQ0VjYuMzFhMi4zMSwyLjMxLDAsMSwxLDQuNjMsMFY3aDIuMTlhNy41NCw3LjU0LDAsMCwxLS4wNy0xLDcuNTIsNy41MiwwLDAsMSwuMDctMWgtLjRhNC40NSw0LjQ1LDAsMCwwLTQuMTEtM0E0LjQ2LDQuNDYsMCwwLDAsMTQsNUg3QTEuNzUsMS43NSwwLDAsMCw1LDYuNjlW''@;'; + put 'put ''MzIuMzFBMS43LDEuNywwLDAsMCw2LjcxLDM0SDI5LjI5QTEuNywxLjcsMCwwLDAsMzEsMzIuMzFWMTMuNDNBNy41Miw3LjUyLDAsMCwxLDMwLDEzLjVaTTI1LDI4SDExVjI2SDI1Wm0wLTRIMTFWMjJIMjVabTAtNEgxMVYxOEgyNVptMC00SDExVjE0SDI1WiIgY2xhc3M9ImNsci1pLXNvbGlk''@;'; + put 'put ''LS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiICBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIgLz4nKSxMLkNsclNoYXBl''@;'; + put 'put ''RmlyZXdhbGw9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMyLDZINEEyLDIsMCwwLDAsMiw4VjI4YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlY4QTIsMiwwLDAsMCwzMiw2Wk00LDhIMzJ2NS4wOEgyMy44di00SDIydjRIMTR2LTRIMTJ2NEg0Wm0wLDdIMzJ2Ni4wOEgyOC45''@;'; + put 'put ''MlYxNi4yN0gyN3Y0LjgxSDE4LjkyVjE2LjI3SDE3djQuODFIOC45VjE2LjI3SDd2NC44MUg0Wk0yMy44LDI4VjI0LjI3SDIyLjJWMjhIMTRWMjQuMjdoLTEuNlYyOEg0VjIzSDMydjVaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAg''@;'; + put 'put ''IDxwYXRoIGQ9Ik0zMy42OCwxNS40SDMydjUuNjhIMjguOTJWMTYuMjdIMjd2NC44MUgxOC45MlYxNi4yN0gxN3Y0LjgxSDguOVYxNi4yN0g3djQuODFINFYxNUgyMC41OGEzLjU4LDMuNTgsMCwwLDEtMS43Ni0xLjkySDE0di00SDEydjRINFY4SDIwLjE0bDEuMTUtMkg0QTIsMiwwLDAsMCwy''@;'; + put 'put ''LDhWMjhhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjE1LjM4Wk0yMy44LDI4VjI0LjI3SDIyLjJWMjhIMTRWMjQuMjdoLTEuNlYyOEg0VjIzSDMydjVaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgLz5cbiAgICAg''@;'; + put 'put ''ICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiICBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBj''@;'; + put 'put ''bHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMCwxMy41YTcuNDcsNy40NywwLDAsMS0yLjQ1LS40MkgyMy44VjEwLjIyYTcuNSw3LjUsMCwwLDEtLjYzLTEuMTRIMjJ2NEgxNHYtNEgxMnY0SDRWOEgyMi43OGE3LjQ5''@;'; + put 'put ''LDcuNDksMCwwLDEtLjI4LTJINEEyLDIsMCwwLDAsMiw4VjI4YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYxMi4zNEE3LjQ1LDcuNDUsMCwwLDEsMzAsMTMuNVpNNCwxNUgzMnY2LjA4SDI4LjkyVjE2LjI3SDI3djQuODFIMTguOTJWMTYuMjdIMTd2NC44MUg4LjlWMTYuMjdIN3Y0''@;'; + put 'put ''LjgxSDRaTTIzLjgsMjhWMjQuMjdIMjIuMlYyOEgxNFYyNC4yN2gtMS42VjI4SDRWMjNIMzJ2NVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNs''@;'; + put 'put ''YXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMiw2SDRBMiwyLDAsMCwwLDIsOFYyOGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWOEEyLDIsMCwwLDAsMzIs''@;'; + put 'put ''NlpNMTQsMjhIMTJWMjRoMlptMTAsMEgyMlYyNGgyWm04LTZINFYyMEg3VjE2SDl2NGg4VjE2aDJ2NGg4VjE2aDJ2NGgzWm0wLThINFYxMmg4VjhoMnY0aDhWOGgydjRoOFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJN''@;'; + put 'put ''MzMuNjgsMTUuNEgyMi4yM0EzLjY5LDMuNjksMCwwLDEsMTkuMzUsMTRINFYxMmg4VjhoMnY0aDQuNTdBMy42NywzLjY3LDAsMCwxLDE5LDkuODlMMjEuMjksNkg0QTIsMiwwLDAsMCwyLDhWMjhhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjE1LjM4Wk0xNCwyOEgxMlYyNGgyWm0x''@;'; + put 'put ''MCwwSDIyVjI0aDJabTgtNkg0VjIwSDdWMTZIOXY0aDhWMTZoMnY0aDhWMTZoMnY0aDNaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4''@;'; + put 'put ''LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIC8+XG4gICAg''@;'; + put 'put ''ICAgICAgICA8cGF0aCBkPSJNMjQsMTAuNDlWMTJoMS41MUE3LjUzLDcuNTMsMCwwLDEsMjQsMTAuNDlaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMiwxMy4yMlYxNEg0VjEyaDhWOGgy''@;'; + put 'put ''djRoOFY4aC43OGE3LjQ5LDcuNDksMCwwLDEtLjI4LTJINEEyLDIsMCwwLDAsMiw4VjI4YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYxMi4zNEE3LjQ1LDcuNDUsMCwwLDEsMzIsMTMuMjJaTTE0LDI4SDEyVjI0aDJabTEwLDBIMjJWMjRoMlptOC02SDRWMjBIN1YxNkg5djRoOFYx''@;'; + put 'put ''NmgydjRoOFYxNmgydjRoM1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0z''@;'; + put 'put ''LS1iYWRnZWQgY2xyLWktYmFkZ2UiIC8+JyksTC5DbHJTaGFwZUxpc3Q9KDAsRS5jbHJJY29uU1ZHKSgnPHJlY3QgeD0iMTUiIHk9IjgiIHdpZHRoPSI5IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHJlY3Qg''@;'; + put 'put ''eD0iMTUiIHk9IjEyIiB3aWR0aD0iOSIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE1IiB5PSIxNiIgd2lkdGg9IjkiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0''@;'; + put 'put ''bGluZS1wYXRoLTMiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNSIgeT0iMjAiIHdpZHRoPSI5IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTUiIHk9IjI0IiB3aWR0aD0iOSIgaGVpZ2h0''@;'; + put 'put ''PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjExIiB5PSI4IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIgLz5cbiAgICAgICAgICAgIDxy''@;'; + put 'put ''ZWN0IHg9IjExIiB5PSIxMiIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTciIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMSIgeT0iMTYiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1p''@;'; + put 'put ''LW91dGxpbmUtcGF0aC04IiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTEiIHk9IjIwIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtOSIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjExIiB5PSIyNCIgd2lkdGg9IjIiIGhl''@;'; + put 'put ''aWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEwIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4LDJIOEEyLDIsMCwwLDAsNiw0VjMyYTIsMiwwLDAsMCwyLDJIMjhhMiwyLDAsMCwwLDItMlY0QTIsMiwwLDAsMCwyOCwyWm0wLDMwSDhWNEgyOFoi''@;'; + put 'put ''IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xMSIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE1IiB5PSIxMiIgd2lkdGg9IjkiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiAvPlxu''@;'; + put 'put ''ICAgICAgICAgICAgPHJlY3QgeD0iMTUiIHk9IjE2IiB3aWR0aD0iOSIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNSIgeT0iMjAiIHdpZHRoPSI5IiBoZWlnaHQ9''@;'; + put 'put ''IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE1IiB5PSIyNCIgd2lkdGg9IjkiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBh''@;'; + put 'put ''dGgtNC0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTEiIHk9IjgiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjExIiB5PSIxMiIg''@;'; + put 'put ''d2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNi0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTEiIHk9IjE2IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2Vk''@;'; + put 'put ''IGNsci1pLW91dGxpbmUtcGF0aC03LS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMSIgeT0iMjAiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTgtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxy''@;'; + put 'put ''ZWN0IHg9IjExIiB5PSIyNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtOS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE1LDh2Mmg4LjY2YTcuNDUsNy40NSwwLDAsMS0uODktMloiIGNsYXNz''@;'; + put 'put ''PSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEwLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjgsMTMuMjJWMzJIOFY0SDIyLjc4YTcuNDUsNy40NSwwLDAsMSwuODgtMkg4QTIsMiwwLDAsMCw2LDRWMzJhMiwyLDAsMCwwLDIsMkgyOGEyLDIs''@;'; + put 'put ''MCwwLDAsMi0yVjEzLjVBNy40OSw3LjQ5LDAsMCwxLDI4LDEzLjIyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1vdXRs''@;'; + put 'put ''aW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEyLS1iYWRnZWQgY2xyLWktYmFkZ2UiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjgsMkg4QTIsMiwwLDAsMCw2LDRWMzJhMiwyLDAsMCwwLDIsMkgyOGEyLDIsMCwwLDAsMi0yVjRBMiwyLDAsMCwwLDI4LDJaTTEzLDI2SDExVjI0''@;'; + put 'put ''aDJabTAtNEgxMVYyMGgyWm0wLTRIMTFWMTZoMlptMC00SDExVjEyaDJabTAtNEgxMVY4aDJaTTI1LDI2SDE1VjI0SDI1Wm0wLTRIMTVWMjBIMjVabTAtNEgxNVYxNkgyNVptMC00SDE1VjEySDI1Wm0wLTRIMTVWOEgyNVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEi''@;'; + put 'put ''IC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjMuNjYsMTBIMTVWOGg3Ljc4YTcuNDIsNy40MiwwLDAsMSwuODktNkg4QTIsMiwwLDAsMCw2LDRWMzJhMiwyLDAsMCwwLDIsMkgyOGEyLDIsMCwwLDAsMi0yVjEzLjVBNy40OSw3LjQ5LDAsMCwxLDIzLjY2LDEwWk0xMywyNkgxMVYyNGgyWm0w''@;'; + put 'put ''LTRIMTFWMjBoMlptMC00SDExVjE2aDJabTAtNEgxMVYxMmgyWm0wLTRIMTFWOGgyWk0yNSwyNkgxNVYyNEgyNVptMC00SDE1VjIwSDI1Wm0wLTRIMTVWMTZIMjVabTAtNEgxNVYxMkgyNVoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiAv''@;'; + put 'put ''PlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIC8+JyksTC5DbHJTaGFwZVJlZG89KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI0LDQu''@;'; + put 'put ''MjJhMSwxLDAsMCwwLTEuNDEsMS40Mmw1LjU2LDUuNDloLTEzQTExLDExLDAsMCwwLDEwLjA3LDMyLDEsMSwwLDAsMCwxMSwzMC4xOGE5LDksMCwwLDEtNS04LDkuMDgsOS4wOCwwLDAsMSw5LjEzLTloMTNsLTUuNTQsNS40OEExLDEsMCwwLDAsMjQsMjBsOC03LjkxWiIgY2xhc3M9ImNsci1p''@;'; + put 'put ''LW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+JyksTC5DbHJTaGFwZVVuZG89KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTIwLjg3LDExLjE0aC0xM2w1LjU2LTUuNDlBMSwxLDAsMCwwLDEyLDQuMjJMNCwxMi4xMywxMiwyMGExLDEsMCwwLDAsMS40MS0xLjQyTDcuODYsMTMu''@;'; + put 'put ''MTRoMTNhOS4wOCw5LjA4LDAsMCwxLDkuMTMsOSw5LDksMCwwLDEtNSw4QTEsMSwwLDAsMCwyNS45MywzMmExMSwxMSwwLDAsMC01LjA2LTIwLjgyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+JyksTC5DbHJTaGFwZVNjcm9sbD0oMCxFLmNsckljb25T''@;'; + put 'put ''VkcpKCc8cGF0aCBkPSJNMzQsMTEuMTJWNi41OGE0LjUsNC41LDAsMCwwLTQuNS00LjVoLTE2QTQuNSw0LjUsMCwwLDAsOSw2LjU4djIzYTIuNSwyLjUsMCwxLDEtNSwwVjI2SDcuMTlWMjRIMnY1LjVBNC41LDQuNSwwLDAsMCw2LjUsMzRIMjUuNThhNC41LDQuNSwwLDAsMCw0LjUtNC41VjEz''@;'; + put 'put ''LjEzaC0yVjI5LjU0YTIuNSwyLjUsMCwwLDEtMi41LDIuNUgxMC4yNGE0LjQ3LDQuNDcsMCwwLDAsLjc2LTIuNXYtMjNhMi41LDIuNSwwLDAsMSw1LDB2NC41NFptLTQuNS03QTIuNSwyLjUsMCwwLDEsMzIsNi41OFY5LjEySDE4VjYuNThhNC40OCw0LjQ4LDAsMCwwLS43Ni0yLjVaIiBjbGFz''@;'; + put 'put ''cz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOC4wOCwxNS40VjI5LjU0YTIuNSwyLjUsMCwwLDEtMi41LDIuNUgxMC4yNGE0LjQ3LDQuNDcsMCwwLDAsLjc2LTIuNXYtMjNhMi41LDIuNSwwLDAsMSw1LDB2NC41NGgyLjYx''@;'; + put 'put ''QTMuNjYsMy42NiwwLDAsMSwxOSw5Ljg5bC40NC0uNzZIMThWNi41OGE0LjQ4LDQuNDgsMCwwLDAtLjc2LTIuNUgyMi40bDEuMTUtMkgxMy41QTQuNSw0LjUsMCwwLDAsOSw2LjU4djIzYTIuNSwyLjUsMCwxLDEtNSwwVjI2SDcuMTlWMjRIMnY1LjVBNC41LDQuNSwwLDAsMCw2LjUsMzRIMjUu''@;'; + put 'put ''NThhNC41LDQuNSwwLDAsMCw0LjUtNC41VjE1LjRaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gz''@;'; + put 'put ''My42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiICBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxwYXRo''@;'; + put 'put ''IGQ9Ik0zMCwxMy41YTcuNDksNy40OSwwLDAsMS0xLjkyLS4yNnYxNi4zYTIuNSwyLjUsMCwwLDEtMi41LDIuNUgxMC4yNGE0LjQ3LDQuNDcsMCwwLDAsLjc2LTIuNXYtMjNhMi41LDIuNSwwLDAsMSw1LDB2NC41NGg4LjU0YTcuNSw3LjUsMCwwLDEtMS4zNS0ySDE4VjYuNThhNC40OCw0LjQ4''@;'; + put 'put ''LDAsMCwwLS43Ni0yLjVoNS41MmE3LjQ0LDcuNDQsMCwwLDEsLjg2LTJIMTMuNUE0LjUsNC41LDAsMCwwLDksNi41OHYyM2EyLjUsMi41LDAsMSwxLTUsMFYyNkg3LjE5VjI0SDJ2NS41QTQuNSw0LjUsMCwwLDAsNi41LDM0SDI1LjU4YTQuNSw0LjUsMCwwLDAsNC41LTQuNXYtMTZaIiBjbGFz''@;'; + put 'put ''cz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiICBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQgY2xyLWkt''@;'; + put 'put ''YmFkZ2UiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzQsMTEuMTJWNi41OGE0LjUsNC41LDAsMCwwLTQuNS00LjVoLTE2QTQuNSw0LjUsMCwwLDAsOSw2LjU4VjI0SDJ2NS41QTQuNSw0LjUsMCwwLDAsNi41LDM0SDI1LjU4YTQuNSw0LjUsMCwwLDAsNC41LTQuNVYxMy4xM2gtMlYyOS41''@;'; + put 'put ''NGEyLjUsMi41LDAsMCwxLTIuNSwyLjVIMTAuMjRhNC40Nyw0LjQ3LDAsMCwwLC43Ni0yLjV2LTIzYTIuNSwyLjUsMCwwLDEsNSwwdjQuNTRaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4LjA4LDE1LjRWMjkuNTRh''@;'; + put 'put ''Mi41LDIuNSwwLDAsMS0yLjUsMi41SDEwLjI0YTQuNDcsNC40NywwLDAsMCwuNzYtMi41di0yM2EyLjUsMi41LDAsMCwxLDUsMHY0LjU0aDIuNjFBMy42NiwzLjY2LDAsMCwxLDE5LDkuODlsNC41MS03LjhIMTMuNUE0LjUsNC41LDAsMCwwLDksNi41OFYyNEgydjUuNUE0LjUsNC41LDAsMCww''@;'; + put 'put ''LDYuNSwzNEgyNS41OGE0LjUsNC41LDAsMCwwLDQuNS00LjVWMTUuNFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIu''@;'; + put 'put ''MjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiAgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxw''@;'; + put 'put ''YXRoIGQ9Ik0zMCwxMy41YTcuNDksNy40OSwwLDAsMS0xLjkyLS4yNnYxNi4zYTIuNSwyLjUsMCwwLDEtMi41LDIuNUgxMC4yNGE0LjQ3LDQuNDcsMCwwLDAsLjc2LTIuNXYtMjNhMi41LDIuNSwwLDAsMSw1LDB2NC41NGg4LjU0YTcuNDYsNy40NiwwLDAsMS0uOTItOUgxMy41QTQuNSw0LjUs''@;'; + put 'put ''MCwwLDAsOSw2LjU4VjI0SDJ2NS41QTQuNSw0LjUsMCwwLDAsNi41LDM0SDI1LjU4YTQuNSw0LjUsMCwwLDAsNC41LTQuNXYtMTZaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBj''@;'; + put 'put ''eT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPicpLEwuQ2xyU2hhcGVGaWxlU2V0dGluZ3M9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMzLjgzLDIzLjQzYTEuMTYsMS4xNiwwLDAsMC0u''@;'; + put 'put ''NzEtMS4xMmwtMS42OC0uNWMtLjA5LS4yNC0uMTgtLjQ4LS4yOS0uNzFsLjc4LTEuNDRhMS4xNiwxLjE2LDAsMCwwLS4yMS0xLjM3bC0xLjQyLTEuNDFhMS4xNiwxLjE2LDAsMCwwLTEuMzctLjJsLTEuNDUuNzZhNy44NCw3Ljg0LDAsMCwwLS43Ni0uMzJsLS40OC0xLjU4YTEuMTUsMS4xNSww''@;'; + put 'put ''LDAsMC0xLjExLS43N2gtMmExLjE2LDEuMTYsMCwwLDAtMS4xMS44MmwtLjQ3LDEuNTRhNy43Niw3Ljc2LDAsMCwwLS43Ny4zMmwtMS40Mi0uNzZhMS4xNiwxLjE2LDAsMCwwLTEuMzYuMmwtMS40NSwxLjRhMS4xNiwxLjE2LDAsMCwwLS4yMSwxLjM4TDE3LjA4LDIxYTcuNjQsNy42NCwwLDAs''@;'; + put 'put ''MC0uMzEuNzRsLTEuNTguNDdhMS4xNSwxLjE1LDAsMCwwLS44MywxLjExdjJhMS4xNSwxLjE1LDAsMCwwLC44MywxLjFsMS41OS40N2E3LjUzLDcuNTMsMCwwLDAsLjMxLjcybC0uNzgsMS40NmExLjE2LDEuMTYsMCwwLDAsLjIxLDEuMzdsMS40MiwxLjRhMS4xNiwxLjE2LDAsMCwwLDEuMzcu''@;'; + put 'put ''MjFsMS40OC0uNzhjLjIzLjExLjQ3LjIuNzIuMjlMMjIsMzMuMThhMS4xNiwxLjE2LDAsMCwwLDEuMTEuODFoMmExLjE2LDEuMTYsMCwwLDAsMS4xMS0uODJsLjQ3LTEuNThjLjI0LS4wOC40Ny0uMTguNy0uMjlsMS41Ljc5YTEuMTYsMS4xNiwwLDAsMCwxLjM2LS4ybDEuNDItMS40YTEuMTYs''@;'; + put 'put ''MS4xNiwwLDAsMCwuMjEtMS4zOGwtLjc5LTEuNDVxLjE2LS4zNC4yOS0uNjlMMzMsMjYuNWExLjE1LDEuMTUsMCwwLDAsLjgzLTEuMTFabS0xLjYsMS42My0yLjExLjYyLS4xMi40MmE2LDYsMCwwLDEtLjUsMS4xOWwtLjIxLjM4LDEsMS45MS0xLDEtMi0xLS4zNy4yYTYuMjEsNi4yMSwwLDAs''@;'; + put 'put ''MS0xLjIuNDlsLS40Mi4xMi0uNjMsMi4wOUgyMy40MmwtLjYzLTIuMDgtLjQyLS4xMmE2LjIzLDYuMjMsMCwwLDEtMS4yMS0uNDlsLS4zNy0uMi0xLjk0LDEtMS0xLDEtMS45NC0uMjItLjM4QTYsNiwwLDAsMSwxOC4xNywyNkwxOCwyNS42MywxNiwyNVYyMy42OUwxOCwyMy4wOGwuMTMtLjQx''@;'; + put 'put ''YTUuOTQsNS45NCwwLDAsMSwuNTMtMS4yM0wxOC45LDIxbC0xLTEuODUsMS0uOTQsMS44OSwxLC4zOC0uMjFhNi4yMyw2LjIzLDAsMCwxLDEuMjYtLjUybC40MS0uMTIuNjMtMmgxLjM4bC42MiwyLC40MS4xMkE2LjIxLDYuMjEsMCwwLDEsMjcuMSwxOWwuMzguMjEsMS45Mi0xLDEsMS0xLDEu''@;'; + put 'put ''ODkuMjEuMzhhNi4wOCw2LjA4LDAsMCwxLC41LDEuMjFsLjEyLjQyLDIuMDYuNjFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNC4xMiwyMC4zNWE0LDQsMCwxLDAsNC4wOCw0QTQuMDYsNC4wNiwwLDAsMCwy''@;'; + put 'put ''NC4xMiwyMC4zNVptMCw2LjQ2YTIuNDMsMi40MywwLDEsMSwyLjQ4LTIuNDNBMi40NiwyLjQ2LDAsMCwxLDI0LjEyLDI2LjgyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTQuNDksMzFINlY1SDI2djcuODlh''@;'; + put 'put ''My4yLDMuMiwwLDAsMSwyLDEuNzJWNWEyLDIsMCwwLDAtMi0ySDZBMiwyLDAsMCwwLDQsNVYzMWEyLDIsMCwwLDAsMiwySDE2LjIzbC0xLjEtMS4wOEEzLjExLDMuMTEsMCwwLDEsMTQuNDksMzFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz5cbiAgICAg''@;'; + put 'put ''ICAgICAgIDxwYXRoIGQ9Ik0yNC4xMiwyMC4zNWE0LDQsMCwxLDAsNC4wOCw0QTQuMDYsNC4wNiwwLDAsMCwyNC4xMiwyMC4zNVptMCw2LjQ2YTIuNDMsMi40MywwLDEsMSwyLjQ4LTIuNDNBMi40NiwyLjQ2LDAsMCwxLDI0LjEyLDI2LjgyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0''@;'; + put 'put ''ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuODMsMjMuNDNhMS4xNiwxLjE2LDAsMCwwLS43MS0xLjEybC0xLjY4LS41Yy0uMDktLjI0LS4xOC0uNDgtLjI5LS43MWwuNzgtMS40NGExLjE2LDEuMTYsMCwwLDAtLjIxLTEuMzds''@;'; + put 'put ''LTEuNDItMS40MWExLjE2LDEuMTYsMCwwLDAtMS4zNy0uMmwtMS40NS43NmE3Ljg0LDcuODQsMCwwLDAtLjc2LS4zMmwtLjQ4LTEuNThhMS4xNSwxLjE1LDAsMCwwLTEuMTEtLjc3aC0yYTEuMTYsMS4xNiwwLDAsMC0xLjExLjgybC0uNDcsMS41NGE3Ljc2LDcuNzYsMCwwLDAtLjc3LjMybC0x''@;'; + put 'put ''LjQyLS43NmExLjE2LDEuMTYsMCwwLDAtMS4zNi4ybC0xLjQ1LDEuNGExLjE2LDEuMTYsMCwwLDAtLjIxLDEuMzhMMTcuMDgsMjFhNy42NCw3LjY0LDAsMCwwLS4zMS43NGwtMS41OC40N2ExLjE1LDEuMTUsMCwwLDAtLjgzLDEuMTF2MmExLjE1LDEuMTUsMCwwLDAsLjgzLDEuMWwxLjU5LjQ3''@;'; + put 'put ''YTcuNTMsNy41MywwLDAsMCwuMzEuNzJsLS43OCwxLjQ2YTEuMTYsMS4xNiwwLDAsMCwuMjEsMS4zN2wxLjQyLDEuNGExLjE2LDEuMTYsMCwwLDAsMS4zNy4yMWwxLjQ4LS43OGMuMjMuMTEuNDcuMi43Mi4yOUwyMiwzMy4xOGExLjE2LDEuMTYsMCwwLDAsMS4xMS44MWgyYTEuMTYsMS4xNiww''@;'; + put 'put ''LDAsMCwxLjExLS44MmwuNDctMS41OGMuMjQtLjA4LjQ3LS4xOC43LS4yOWwxLjUuNzlhMS4xNiwxLjE2LDAsMCwwLDEuMzYtLjJsMS40Mi0xLjRhMS4xNiwxLjE2LDAsMCwwLC4yMS0xLjM4bC0uNzktMS40NXEuMTYtLjM0LjI5LS42OUwzMywyNi41YTEuMTUsMS4xNSwwLDAsMCwuODMtMS4x''@;'; + put 'put ''MVptLTEuNiwxLjYzLTIuMTEuNjItLjEyLjQyYTYsNiwwLDAsMS0uNSwxLjE5bC0uMjEuMzgsMSwxLjkxLTEsMS0yLTEtLjM3LjJhNi4yMSw2LjIxLDAsMCwxLTEuMi40OWwtLjQyLjEyLS42MywyLjA5SDIzLjQybC0uNjMtMi4wOC0uNDItLjEyYTYuMjMsNi4yMywwLDAsMS0xLjIxLS40OWwt''@;'; + put 'put ''LjM3LS4yLTEuOTQsMS0xLTEsMS0xLjk0LS4yMi0uMzhBNiw2LDAsMCwxLDE4LjE3LDI2TDE4LDI1LjYzLDE2LDI1VjIzLjY5TDE4LDIzLjA4bC4xMy0uNDFhNS45NCw1Ljk0LDAsMCwxLC41My0xLjIzTDE4LjksMjFsLTEtMS44NSwxLS45NCwxLjg5LDEsLjM4LS4yMWE2LjIzLDYuMjMsMCww''@;'; + put 'put ''LDEsMS4yNi0uNTJsLjQxLS4xMi42My0yaDEuMzhsLjYyLDIsLjQxLjEyQTYuMjEsNi4yMSwwLDAsMSwyNy4xLDE5bC4zOC4yMSwxLjkyLTEsMSwxLTEsMS44OS4yMS4zOGE2LjA4LDYuMDgsMCwwLDEsLjUsMS4yMWwuMTIuNDIsMi4wNi42MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVy''@;'; + put 'put ''dGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE0LjQ5LDMxSDZWNUgyMS44N0wyMywzSDZBMiwyLDAsMCwwLDQsNVYzMWEyLDIsMCwwLDAsMiwySDE2LjIzbC0xLjEtMS4wOEEzLjExLDMuMTEsMCwwLDEsMTQuNDksMzFaIiBjbGFz''@;'; + put 'put ''cz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYs''@;'; + put 'put ''MS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiICBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy44MywyMy40M2ExLjE2LDEuMTYsMCwwLDAtLjcx''@;'; + put 'put ''LTEuMTJsLTEuNjgtLjVjLS4wOS0uMjQtLjE4LS40OC0uMjktLjcxbC43OC0xLjQ0YTEuMTYsMS4xNiwwLDAsMC0uMjEtMS4zN2wtMS40Mi0xLjQxYTEuMTYsMS4xNiwwLDAsMC0xLjM3LS4ybC0xLjQ1Ljc2YTcuODQsNy44NCwwLDAsMC0uNzYtLjMybC0uNDgtMS41OGExLjE1LDEuMTUsMCww''@;'; + put 'put ''LDAtMS4xMS0uNzdoLTJhMS4xNiwxLjE2LDAsMCwwLTEuMTEuODJsLS40NywxLjU0YTcuNzYsNy43NiwwLDAsMC0uNzcuMzJsLTEuNDItLjc2YTEuMTYsMS4xNiwwLDAsMC0xLjM2LjJsLTEuNDUsMS40YTEuMTYsMS4xNiwwLDAsMC0uMjEsMS4zOEwxNy4wOCwyMWE3LjY0LDcuNjQsMCwwLDAt''@;'; + put 'put ''LjMxLjc0bC0xLjU4LjQ3YTEuMTUsMS4xNSwwLDAsMC0uODMsMS4xMXYyYTEuMTUsMS4xNSwwLDAsMCwuODMsMS4xbDEuNTkuNDdhNy41Myw3LjUzLDAsMCwwLC4zMS43MmwtLjc4LDEuNDZhMS4xNiwxLjE2LDAsMCwwLC4yMSwxLjM3bDEuNDIsMS40YTEuMTYsMS4xNiwwLDAsMCwxLjM3LjIx''@;'; + put 'put ''bDEuNDgtLjc4Yy4yMy4xMS40Ny4yLjcyLjI5TDIyLDMzLjE4YTEuMTYsMS4xNiwwLDAsMCwxLjExLjgxaDJhMS4xNiwxLjE2LDAsMCwwLDEuMTEtLjgybC40Ny0xLjU4Yy4yNC0uMDguNDctLjE4LjctLjI5bDEuNS43OWExLjE2LDEuMTYsMCwwLDAsMS4zNi0uMmwxLjQyLTEuNGExLjE2LDEu''@;'; + put 'put ''MTYsMCwwLDAsLjIxLTEuMzhsLS43OS0xLjQ1cS4xNi0uMzQuMjktLjY5TDMzLDI2LjVhMS4xNSwxLjE1LDAsMCwwLC44My0xLjExWm0tMS42LDEuNjMtMi4xMS42Mi0uMTIuNDJhNiw2LDAsMCwxLS41LDEuMTlsLS4yMS4zOCwxLDEuOTEtMSwxLTItMS0uMzcuMmE2LjIxLDYuMjEsMCwwLDEt''@;'; + put 'put ''MS4yLjQ5bC0uNDIuMTItLjYzLDIuMDlIMjMuNDJsLS42My0yLjA4LS40Mi0uMTJhNi4yMyw2LjIzLDAsMCwxLTEuMjEtLjQ5bC0uMzctLjItMS45NCwxLTEtMSwxLTEuOTQtLjIyLS4zOEE2LDYsMCwwLDEsMTguMTcsMjZMMTgsMjUuNjMsMTYsMjVWMjMuNjlMMTgsMjMuMDhsLjEzLS40MWE1''@;'; + put 'put ''Ljk0LDUuOTQsMCwwLDEsLjUzLTEuMjNMMTguOSwyMWwtMS0xLjg1LDEtLjk0LDEuODksMSwuMzgtLjIxYTYuMjMsNi4yMywwLDAsMSwxLjI2LS41MmwuNDEtLjEyLjYzLTJoMS4zOGwuNjIsMiwuNDEuMTJBNi4yMSw2LjIxLDAsMCwxLDI3LjEsMTlsLjM4LjIxLDEuOTItMSwxLDEtMSwxLjg5''@;'; + put 'put ''LjIxLjM4YTYuMDgsNi4wOCwwLDAsMSwuNSwxLjIxbC4xMi40MiwyLjA2LjYxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI0LjEyLDIwLjM1YTQsNCwwLDEsMCw0LjA4LDRBNC4w''@;'; + put 'put ''Niw0LjA2LDAsMCwwLDI0LjEyLDIwLjM1Wm0wLDYuNDZhMi40MywyLjQzLDAsMSwxLDIuNDgtMi40M0EyLjQ2LDIuNDYsMCwwLDEsMjQuMTIsMjYuODJaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8''@;'; + put 'put ''cGF0aCBkPSJNMTQuNDksMzFINlY1SDIzLjA4YTYuOTQsNi45NCwwLDAsMSwuNi0ySDZBMiwyLDAsMCwwLDQsNVYzMWEyLDIsMCwwLDAsMiwySDE2LjIzbC0xLjEtMS4wOEEzLjExLDMuMTEsMCwwLDEsMTQuNDksMzFaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxp''@;'; + put 'put ''bmUtcGF0aC0zLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjgsMTUuMzNWMTIuNzFhNyw3LDAsMCwxLTItMXYxLjg4QTMuMiwzLjIsMCwwLDEsMjgsMTUuMzNaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQiIC8+''@;'; + put 'put ''XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiICBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC01LS1iYWRnZWQgY2xyLWktYmFkZ2UiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTUuNTUsMzFINlY1SDI2djguNzhhMi4z''@;'; + put 'put ''NywyLjM3LDAsMCwxLDIsMS41N1Y1YTIsMiwwLDAsMC0yLTJINkEyLDIsMCwwLDAsNCw1VjMxYTIsMiwwLDAsMCwyLDJIMTcuMTZsLTEtMUEyLjM4LDIuMzgsMCwwLDEsMTUuNTUsMzFaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBh''@;'; + put 'put ''dGggZD0iTTMzLjU0LDIzLjQ3bC0yLS42MWE3LjA2LDcuMDYsMCwwLDAtLjU4LTEuNDFsMS0xLjg2YS4zNy4zNywwLDAsMC0uMDctLjQ0TDMwLjQxLDE3LjdhLjM3LjM3LDAsMCwwLS40NC0uMDdsLTEuODUsMUE3LDcsMCwwLDAsMjYuNjksMThsLS42MS0yYS4zNy4zNywwLDAsMC0uMzYtLjI1''@;'; + put 'put ''aC0yYS4zNy4zNywwLDAsMC0uMzUuMjZsLS42MSwyYTcsNywwLDAsMC0xLjQ0LjYxbC0xLjgyLTFhLjM3LjM3LDAsMCwwLS40NC4wN2wtMS40NywxLjQ0YS4zNy4zNywwLDAsMC0uMDcuNDRsMSwxLjgyYTcsNywwLDAsMC0uNjEsMS40NGwtMiwuNjFhLjM3LjM3LDAsMCwwLS4yNi4zNXYyYS4z''@;'; + put 'put ''Ny4zNywwLDAsMCwuMjYuMzVsMiwuNjFhNyw3LDAsMCwwLC42MSwxLjQxbC0xLDEuOWEuMzcuMzcsMCwwLDAsLjA3LjQ0TDE5LDMyYS4zNy4zNywwLDAsMCwuNDQuMDdsMS44Ny0xYTcuMDYsNy4wNiwwLDAsMCwxLjM5LjU3bC42MSwyYS4zNy4zNywwLDAsMCwuMzUuMjZoMmEuMzcuMzcsMCww''@;'; + put 'put ''LDAsLjM1LS4yNmwuNjEtMmE3LDcsMCwwLDAsMS4zOC0uNTdsMS44OSwxYS4zNy4zNywwLDAsMCwuNDQtLjA3bDEuNDUtMS40NWEuMzcuMzcsMCwwLDAsLjA3LS40NGwtMS0xLjg4YTcuMDYsNy4wNiwwLDAsMCwuNTgtMS4zOWwyLS42MWEuMzcuMzcsMCwwLDAsLjI2LS4zNVYyMy44M0EuMzcu''@;'; + put 'put ''MzcsMCwwLDAsMzMuNTQsMjMuNDdaTTI0LjcsMjguMTlBMy4zMywzLjMzLDAsMSwxLDI4LDI0Ljg2LDMuMzMsMy4zMywwLDAsMSwyNC43LDI4LjE5WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy41NCwyMy40N2wt''@;'; + put 'put ''Mi0uNjFhNy4wNiw3LjA2LDAsMCwwLS41OC0xLjQxbDEtMS44NmEuMzcuMzcsMCwwLDAtLjA3LS40NEwzMC40MSwxNy43YS4zNy4zNywwLDAsMC0uNDQtLjA3bC0xLjg1LDFBNyw3LDAsMCwwLDI2LjY5LDE4bC0uNjEtMmEuMzcuMzcsMCwwLDAtLjM2LS4yNWgtMmEuMzcuMzcsMCwwLDAtLjM1''@;'; + put 'put ''LjI2bC0uNjEsMmE3LDcsMCwwLDAtMS40NC42MWwtMS44Mi0xYS4zNy4zNywwLDAsMC0uNDQuMDdsLTEuNDcsMS40NGEuMzcuMzcsMCwwLDAtLjA3LjQ0bDEsMS44MmE3LDcsMCwwLDAtLjYxLDEuNDRsLTIsLjYxYS4zNy4zNywwLDAsMC0uMjYuMzV2MmEuMzcuMzcsMCwwLDAsLjI2LjM1bDIs''@;'; + put 'put ''LjYxYTcsNywwLDAsMCwuNjEsMS40MWwtMSwxLjlhLjM3LjM3LDAsMCwwLC4wNy40NEwxOSwzMmEuMzcuMzcsMCwwLDAsLjQ0LjA3bDEuODctMWE3LjA2LDcuMDYsMCwwLDAsMS4zOS41N2wuNjEsMmEuMzcuMzcsMCwwLDAsLjM1LjI2aDJhLjM3LjM3LDAsMCwwLC4zNS0uMjZsLjYxLTJhNyw3''@;'; + put 'put ''LDAsMCwwLDEuMzgtLjU3bDEuODksMWEuMzcuMzcsMCwwLDAsLjQ0LS4wN2wxLjQ1LTEuNDVhLjM3LjM3LDAsMCwwLC4wNy0uNDRsLTEtMS44OGE3LjA2LDcuMDYsMCwwLDAsLjU4LTEuMzlsMi0uNjFhLjM3LjM3LDAsMCwwLC4yNi0uMzVWMjMuODNBLjM3LjM3LDAsMCwwLDMzLjU0LDIzLjQ3''@;'; + put 'put ''Wk0yNC43LDI4LjE5QTMuMzMsMy4zMywwLDEsMSwyOCwyNC44NiwzLjMzLDMuMzMsMCwwLDEsMjQuNywyOC4xOVoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTUuNTUsMzFINlY1SDIx''@;'; + put 'put ''Ljg3TDIzLDNINkEyLDIsMCwwLDAsNCw1VjMxYTIsMiwwLDAsMCwyLDJIMTcuMTZsLTEtMUEyLjM4LDIuMzgsMCwwLDEsMTUuNTUsMzFaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2''@;'; + put 'put ''Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWFs''@;'; + put 'put ''ZXJ0ZWQgY2xyLWktYWxlcnQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiICBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCBjbHItaS1iYWRnZSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy41NCwy''@;'; + put 'put ''My40N2wtMi0uNjFhNy4wNiw3LjA2LDAsMCwwLS41OC0xLjQxbDEtMS44NmEuMzcuMzcsMCwwLDAtLjA3LS40NEwzMC40MSwxNy43YS4zNy4zNywwLDAsMC0uNDQtLjA3bC0xLjg1LDFBNyw3LDAsMCwwLDI2LjY5LDE4bC0uNjEtMmEuMzcuMzcsMCwwLDAtLjM2LS4yNWgtMmEuMzcuMzcsMCww''@;'; + put 'put ''LDAtLjM1LjI2bC0uNjEsMmE3LDcsMCwwLDAtMS40NC42MWwtMS44Mi0xYS4zNy4zNywwLDAsMC0uNDQuMDdsLTEuNDcsMS40NGEuMzcuMzcsMCwwLDAtLjA3LjQ0bDEsMS44MmE3LDcsMCwwLDAtLjYxLDEuNDRsLTIsLjYxYS4zNy4zNywwLDAsMC0uMjYuMzV2MmEuMzcuMzcsMCwwLDAsLjI2''@;'; + put 'put ''LjM1bDIsLjYxYTcsNywwLDAsMCwuNjEsMS40MWwtMSwxLjlhLjM3LjM3LDAsMCwwLC4wNy40NEwxOSwzMmEuMzcuMzcsMCwwLDAsLjQ0LjA3bDEuODctMWE3LjA2LDcuMDYsMCwwLDAsMS4zOS41N2wuNjEsMmEuMzcuMzcsMCwwLDAsLjM1LjI2aDJhLjM3LjM3LDAsMCwwLC4zNS0uMjZsLjYx''@;'; + put 'put ''LTJhNyw3LDAsMCwwLDEuMzgtLjU3bDEuODksMWEuMzcuMzcsMCwwLDAsLjQ0LS4wN2wxLjQ1LTEuNDVhLjM3LjM3LDAsMCwwLC4wNy0uNDRsLTEtMS44OGE3LjA2LDcuMDYsMCwwLDAsLjU4LTEuMzlsMi0uNjFhLjM3LjM3LDAsMCwwLC4yNi0uMzVWMjMuODNBLjM3LjM3LDAsMCwwLDMzLjU0''@;'; + put 'put ''LDIzLjQ3Wk0yNC43LDI4LjE5QTMuMzMsMy4zMywwLDEsMSwyOCwyNC44NiwzLjMzLDMuMzMsMCwwLDEsMjQuNywyOC4xOVoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE1LjU1LDMxSDZW''@;'; + put 'put ''NUgyMy4wOGE2Ljk0LDYuOTQsMCwwLDEsLjYtMkg2QTIsMiwwLDAsMCw0LDVWMzFhMiwyLDAsMCwwLDIsMkgxNy4xNmwtMS0xQTIuMzgsMi4zOCwwLDAsMSwxNS41NSwzMVoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIiAvPlxuICAgICAg''@;'; + put 'put ''ICAgICAgPHBhdGggZD0iTTI4LDE1LjM2VjEyLjcxYTcsNywwLDAsMS0yLTF2MkEyLjM3LDIuMzcsMCwwLDEsMjgsMTUuMzZaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTQtLWJhZGdlZCIgLz4nKSxMLkNsclNoYXBlVHdvV2F5QXJyb3dzPSgwLEUuY2xy''@;'; + put 'put ''SWNvblNWRykoJzxwYXRoIGQ9Ik0yMy40MywxNi44M0ExLDEsMCwwLDAsMjIsMTguMjRMMjUuNzIsMjJINy44M2ExLDEsMCwwLDAsMCwySDI1LjcyTDIyLDI3LjdhMSwxLDAsMSwwLDEuNDIsMS40MUwyOS41MywyM1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0x''@;'; + put 'put ''IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTEzLjI0LDE4LjQ1YTEsMSwwLDAsMCwuNzEtMS43MUwxMC4yNCwxM0gyOC4xMmExLDEsMCwwLDAsMC0ySDEwLjI0bDMuNzEtMy43M2ExLDEsMCwwLDAtMS40Mi0xLjQxTDYuNDIsMTJsNi4xMSw2LjE0QTEsMSwwLDAsMCwxMy4yNCwxOC40NVoi''@;'; + put 'put ''IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPicpLEwuQ2xyU2hhcGVTd2l0Y2g9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTUuNzEsMTRIMjAuOTJWMTJINS43MUw5LjQyLDguMjdBMSwxLDAsMSwwLDgsNi44NkwxLjg5LDEzLDgsMTkuMTRhMSwxLDAs''@;'; + put 'put ''MSwwLDEuNDItMS40WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIyMyIgeT0iMTIiIHdpZHRoPSIzIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAg''@;'; + put 'put ''ICAgICAgICAgPHJlY3QgeD0iMjgiIHk9IjEyIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNy45MiwxNy44NmExLDEsMCwwLDAtMS40MiwxLjQxTDMwLjIxLDIzSDE1djJI''@;'; + put 'put ''MzAuMjFMMjYuNSwyOC43NGExLDEsMCwxLDAsMS40MiwxLjRMMzQsMjRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjEwIiB5PSIyMyIgd2lkdGg9IjMiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUg''@;'; + put 'put ''Y2xyLWktb3V0bGluZS1wYXRoLTUiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSI2IiB5PSIyMyIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIC8+JyksTC5DbHJTaGFwZVRvb2xzPSgwLEUuY2xySWNvblNWRykoJzxwYXRo''@;'; + put 'put ''IGQ9Ik0yMCwxNEgxNmExLDEsMCwwLDAtMSwxdjZhMSwxLDAsMCwwLDEsMWg0YTEsMSwwLDAsMCwxLTFWMTVBMSwxLDAsMCwwLDIwLDE0Wm0tLjQsNi42SDE2LjRWMTUuNGgzLjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxw''@;'; + put 'put ''YXRoIGQ9Ik0zMy43MSwxMi4zOCwyOS42Miw4LjI5QTEsMSwwLDAsMCwyOC45Miw4aC01VjYuMDVBMiwyLDAsMCwwLDIyLDRIMTMuODRBMS45MiwxLjkyLDAsMCwwLDEyLDYuMDVWOEg3LjA4YTEsMSwwLDAsMC0uNzEuMjlMMi4yOSwxMi4zOGExLDEsMCwwLDAtLjI5LjcxVjI4YTIsMiwwLDAs''@;'; + put 'put ''MCwyLDJIMzJhMiwyLDAsMCwwLDItMlYxMy4wOEExLDEsMCwwLDAsMzMuNzEsMTIuMzhaTTE0LDZoOFY4SDE0Wk0zMiwxN0gyMnYxLjkzSDMyVjI4SDRWMTguOTNIMTRWMTdINFYxMy41TDcuNSwxMGgyMUwzMiwxMy41WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRo''@;'; + put 'put ''LTIiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNi40IiB5PSIxNS40IiB3aWR0aD0iMy4yIiBoZWlnaHQ9IjUuMiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMSwyMWExLDEsMCwwLDEtMSwxSDE2YTEsMSwwLDAs''@;'; + put 'put ''MS0xLTFWMTlIMnY5YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYxOUgyMVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuNzEsMTIuMzgsMjkuNjIsOC4yOUExLDEsMCwwLDAsMjguOTIsOGgtNVY2LjA1''@;'; + put 'put ''QTIsMiwwLDAsMCwyMiw0SDEzLjg0QTEuOTIsMS45MiwwLDAsMCwxMiw2LjA1VjhINy4wOGExLDEsMCwwLDAtLjcxLjI5TDIuMjksMTIuMzhhMSwxLDAsMCwwLS4yOS43MVYxN0gxNVYxNWExLDEsMCwwLDEsMS0xaDRhMSwxLDAsMCwxLDEsMXYySDM0VjEzLjA4QTEsMSwwLDAsMCwzMy43MSwx''@;'; + put 'put ''Mi4zOFpNMjIsOEgxNFY2aDhaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiAvPicpLEwuQ2xyU2hhcGVXaW5kb3dDbG9zZT0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTkuNDEsMThsNy4yOS03LjI5YTEsMSwwLDAsMC0xLjQxLTEuNDFMMTgsMTYuNTksMTAu''@;'; + put 'put ''NzEsOS4yOWExLDEsMCwwLDAtMS40MSwxLjQxTDE2LjU5LDE4LDkuMjksMjUuMjlhMSwxLDAsMSwwLDEuNDEsMS40MUwxOCwxOS40MWw3LjI5LDcuMjlhMSwxLDAsMCwwLDEuNDEtMS40MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPicpLEwuQ2xyU2hh''@;'; + put 'put ''cGVXaW5kb3dNYXg9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI3Ljg5LDloLTIwYTIsMiwwLDAsMC0yLDJWMjVhMiwyLDAsMCwwLDIsMmgyMGEyLDIsMCwwLDAsMi0yVjExQTIsMiwwLDAsMCwyNy44OSw5Wm0tMjAsMTZWMTFoMjBWMjVaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHIt''@;'; + put 'put ''aS1vdXRsaW5lLXBhdGgtMSIgLz4nKSxMLkNsclNoYXBlV2luZG93TWluPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yNywyN0g5YTEsMSwwLDAsMSwwLTJIMjdhMSwxLDAsMCwxLDAsMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPicpLEwuQ2xy''@;'; + put 'put ''U2hhcGVXaW5kb3dSZXN0b3JlPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yOCw4SDE0YTIsMiwwLDAsMC0yLDJ2MmgyVjEwSDI4VjIwSDI2djJoMmEyLDIsMCwwLDAsMi0yVjEwQTIsMiwwLDAsMCwyOCw4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEi''@;'; + put 'put ''IC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIsMTRIOGEyLDIsMCwwLDAtMiwyVjI2YTIsMiwwLDAsMCwyLDJIMjJhMiwyLDAsMCwwLDItMlYxNkEyLDIsMCwwLDAsMjIsMTRaTTgsMjZWMTZIMjJWMjZaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz4n''@;'; + put 'put ''KSxMLkNsclNoYXBlWm9vbUluPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xNiw0QTEyLDEyLDAsMSwwLDI4LDE2LDEyLDEyLDAsMCwwLDE2LDRabTAsMjEuOTFBMTAsMTAsMCwxLDEsMjYsMTYsMTAsMTAsMCwwLDEsMTYsMjUuOTFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1v''@;'; + put 'put ''dXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMS43MSwyOS42OWwtNS4xNy01LjE3QTEzLjY4LDEzLjY4LDAsMCwxLDI1LjE1LDI2bDUuMTUsNS4xNWExLDEsMCwwLDAsMS40MS0xLjQxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIi''@;'; + put 'put ''IC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjEsMTVIMTdWMTFhMSwxLDAsMCwwLTIsMHY0SDExYTEsMSwwLDAsMCwwLDJoNHY0YTEsMSwwLDAsMCwyLDBWMTdoNGExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+JyksTC5DbHJT''@;'; + put 'put ''aGFwZVpvb21PdXQ9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE2LDRBMTIsMTIsMCwxLDAsMjgsMTYsMTIsMTIsMCwwLDAsMTYsNFptMCwyMS45MUExMCwxMCwwLDEsMSwyNiwxNiwxMCwxMCwwLDAsMSwxNiwyNS45MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUt''@;'; + put 'put ''cGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMxLjcxLDI5LjY5bC01LjE3LTUuMTdBMTMuNjgsMTMuNjgsMCwwLDEsMjUuMTUsMjZsNS4xNSw1LjE1YTEsMSwwLDAsMCwxLjQxLTEuNDFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAg''@;'; + put 'put ''ICAgICAgICAgIDxwYXRoIGQ9Ik0yMCwxNUgxMmExLDEsMCwwLDAsMCwyaDhhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPicpLEwuQ2xyU2hhcGVLZXk9KDAsRS5jbHJJY29uU1ZHKSgnPHJlY3QgeD0iNi4zMyIgeT0iMTAuNzEi''@;'; + put 'put ''IHdpZHRoPSI5LjcxIiBoZWlnaHQ9IjIuNTciIHJ4PSIxIiByeT0iMSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTUuMjEgMTEuNDMpIHJvdGF0ZSgtNDUpIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMy4zNSwx''@;'; + put 'put ''Ni44bC42My0uNjNBNSw1LDAsMCwwLDI0LDkuMUwxOC43MSwzLjg0YTUsNSwwLDAsMC03LjA3LDBMMy4wOSwxMi4zOWE1LDUsMCwwLDAsMCw3LjA3bDUuMjYsNS4yNmE1LDUsMCwwLDAsNy4wNywwbC40LS40TDE4LDI2LjQ4aDMuNDR2M2gzLjY5djEuNjNMMjgsMzRoNlYyNy40NVpNMzIsMzJI''@;'; + put 'put ''MjguODZsLTEuNzctMS43NnYtMi44SDIzLjQxdi0zSDE4LjhsLTMtM0wxNCwyMy4zMWEzLDMsMCwwLDEtNC4yNCwwTDQuNSwxOGEzLDMsMCwwLDEsMC00LjI0bDguNTYtOC41NmEzLDMsMCwwLDEsNC4yNCwwbDUuMjYsNS4yNmEzLDMsMCwwLDEsMCw0LjI0bC0yLDJMMzIsMjguMjhaIiBjbGFz''@;'; + put 'put ''cz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjYuMzMiIHk9IjEwLjcxIiB3aWR0aD0iOS43MSIgaGVpZ2h0PSIyLjU3IiByeD0iMSIgcnk9IjEiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC01LjIxIDExLjQzKSByb3RhdGUoLTQ1''@;'; + put 'put ''KSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjMuMzUsMTYuOGwuNjMtLjYzYTUsNSwwLDAsMCwuNjMtLjc3SDIyLjIzbC0uMjksMEwyMC41MiwxNi44LDMyLDI4LjI4VjMySDI4''@;'; + put 'put ''Ljg2bC0xLjc3LTEuNzZ2LTIuOEgyMy40MXYtM0gxOC44bC0zLTNMMTQsMjMuMzFhMywzLDAsMCwxLTQuMjQsMEw0LjUsMThhMywzLDAsMCwxLDAtNC4yNGw4LjU2LTguNTZhMywzLDAsMCwxLDQuMjQsMEwyMC4xLDguMDZsMS0xLjc5TDE4LjcxLDMuODRhNSw1LDAsMCwwLTcuMDcsMEwzLjA5''@;'; + put 'put ''LDEyLjM5YTUsNSwwLDAsMCwwLDcuMDdsNS4yNiw1LjI2YTUsNSwwLDAsMCw3LjA3LDBsLjQtLjRMMTgsMjYuNDhoMy40NHYzaDMuNjl2MS42M0wyOCwzNGg2VjI3LjQ1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIC8+XG4g''@;'; + put 'put ''ICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiAgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0''@;'; + put 'put ''ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSI2LjMzIiB5PSIxMC43MSIgd2lkdGg9IjkuNzEiIGhlaWdodD0iMi41NyIgcng9IjEiIHJ5PSIxIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtNS4yMSAxMS40Mykgcm90''@;'; + put 'put ''YXRlKC00NSkiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMy4zNSwxNi44bC42My0uNjNBNSw1LDAsMCwwLDI0LDkuMUwxOC43MSwzLjg0YTUsNSwwLDAsMC03LjA3LDBMMy4wOSwx''@;'; + put 'put ''Mi4zOWE1LDUsMCwwLDAsMCw3LjA3bDUuMjYsNS4yNmE1LDUsMCwwLDAsNy4wNywwbC40LS40TDE4LDI2LjQ4aDMuNDR2M2gzLjY5djEuNjNMMjgsMzRoNlYyNy40NVpNMzIsMzJIMjguODZsLTEuNzctMS43NnYtMi44SDIzLjQxdi0zSDE4LjhsLTMtM0wxNCwyMy4zMWEzLDMsMCwwLDEtNC4y''@;'; + put 'put ''NCwwTDQuNSwxOGEzLDMsMCwwLDEsMC00LjI0bDguNTYtOC41NmEzLDMsMCwwLDEsNC4yNCwwbDUuMjYsNS4yNmEzLDMsMCwwLDEsMCw0LjI0bC0yLDJMMzIsMjguMjhaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiIC8+XG4gICAg''@;'; + put 'put ''ICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiICBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQgY2xyLWktYmFkZ2UiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjMuMzgsMTYuNzdsLjYtLjZBNSw1LDAsMCwwLDI0''@;'; + put 'put ''LDkuMUwxOC43MSwzLjg0YTUsNSwwLDAsMC03LjA3LDBMMy4wOSwxMi4zOWE1LDUsMCwwLDAsMCw3LjA3bDUuMjYsNS4yNmE1LDUsMCwwLDAsNy4wNywwbC40NS0uNDUsMi4xLDIuMmgzLjQ0djNoMy42OXYxLjYzTDI4LDM0aDZWMjcuNDVabS04LjU2LTYuNTlMOS4zNywxNS42NGExLDEsMCww''@;'; + put 'put ''LDEtMS40MSwwbC0uNC0uNGExLDEsMCwwLDEsMC0xLjQxTDEzLDguMzZhMSwxLDAsMCwxLDEuNDEsMGwuNC40QTEsMSwwLDAsMSwxNC44MiwxMC4xOFpNMzIsMzJIMjguODZsLTEuNzctMS43NnYtMi44SDIzLjQxdi0zSDE4LjhsLTEuNTItMS42MUwyMiwxOC4xOCwzMiwyOC4yOFoiIGNsYXNz''@;'; + put 'put ''PSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjMuMzgsMTYuNzdsLjYtLjZhNSw1LDAsMCwwLC42My0uNzdIMjIuMjNBMy42OCwzLjY4LDAsMCwxLDE5LDkuODlsMi4wOS0zLjYyTDE4LjcxLDMuODRhNSw1LDAsMCwwLTcuMDcsMEwz''@;'; + put 'put ''LjA5LDEyLjM5YTUsNSwwLDAsMCwwLDcuMDdsNS4yNiw1LjI2YTUsNSwwLDAsMCw3LjA3LDBsLjQ1LS40NSwyLjEsMi4yaDMuNDR2M2gzLjY5djEuNjNMMjgsMzRoNlYyNy40NVptLTguNTYtNi41OUw5LjM3LDE1LjY0YTEsMSwwLDAsMS0xLjQxLDBsLS40LS40YTEsMSwwLDAsMSwwLTEuNDFM''@;'; + put 'put ''MTMsOC4zNmExLDEsMCwwLDEsMS40MSwwbC40LjRBMSwxLDAsMCwxLDE0LjgyLDEwLjE4Wk0zMiwzMkgyOC44NmwtMS43Ny0xLjc2di0yLjhIMjMuNDF2LTNIMTguOGwtMS41Mi0xLjYxTDIyLDE4LjE4LDMyLDI4LjI4WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlk''@;'; + put 'put ''LXBhdGgtMS0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiICBjbGFz''@;'; + put 'put ''cz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIzLjM4LDE2Ljc3bC42LS42QTUsNSwwLDAsMCwyNCw5LjFMMTguNzEsMy44NGE1LDUsMCwwLDAtNy4wNywwTDMuMDksMTIuMzlh''@;'; + put 'put ''NSw1LDAsMCwwLDAsNy4wN2w1LjI2LDUuMjZhNSw1LDAsMCwwLDcuMDcsMGwuNDUtLjQ1LDIuMSwyLjJoMy40NHYzaDMuNjl2MS42M0wyOCwzNGg2VjI3LjQ1Wm0tOC41Ni02LjU5TDkuMzcsMTUuNjRhMSwxLDAsMCwxLTEuNDEsMGwtLjQtLjRhMSwxLDAsMCwxLDAtMS40MUwxMyw4LjM2YTEs''@;'; + put 'put ''MSwwLDAsMSwxLjQxLDBsLjQuNEExLDEsMCwwLDEsMTQuODIsMTAuMThaTTMyLDMySDI4Ljg2bC0xLjc3LTEuNzZ2LTIuOEgyMy40MXYtM0gxOC44bC0xLjUyLTEuNjFMMjIsMTguMTgsMzIsMjguMjhaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJh''@;'; + put 'put ''ZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPicpLEwuQ2xyU2hhcGVMaWJyYXJ5PSgwLEUuY2xySWNvblNWRykoJzxwYXRo''@;'; + put 'put ''IGQ9Ik0zMy40OCwyOS42MywyNi43NCwxMS44MmEyLDIsMCwwLDAtMi41OC0xLjE2TDIxLDExLjg1VjguOTJBMS45MiwxLjkyLDAsMCwwLDE5LjA4LDdIMTRWNC45MkExLjkyLDEuOTIsMCwwLDAsMTIuMDgsM0g1QTIsMiwwLDAsMCwzLDVWMzJhMSwxLDAsMCwwLDEsMUgyMGExLDEsMCwwLDAs''@;'; + put 'put ''MS0xVjE5LjI3bDUsMTMuMjFhMSwxLDAsMCwwLDEuMjkuNThsNS42MS0yLjE0YTEsMSwwLDAsMCwuNTgtMS4yOVpNMTIsOC44M1YzMUg1VjVoN1pNMTksMzFIMTRWOWg1Wm04LjUxLS4yNUwyMS4xMywxMy45MmwzLjc0LTEuNDIsNi4zOSwxNi44M1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNs''@;'; + put 'put ''ci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTEyLjc1LDNINS4yNUExLjE1LDEuMTUsMCwwLDAsNCw0VjMzSDE0VjRBMS4xNSwxLjE1LDAsMCwwLDEyLjc1LDNaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAgICAg''@;'; + put 'put ''ICAgPHBhdGggZD0iTTMzLjc3LDMxLjA5bC02Ljk0LTE4LjNhMSwxLDAsMCwwLTEuMjktLjU4TDIyLDEzLjU5VjlhMSwxLDAsMCwwLTEtMUgxNlYzM2g2VjE0LjY5TDI4LjkzLDMzWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz4nKSxMLkNsclNoYXBlQm9sdD0o''@;'; + put 'put ''MCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTAuNTIsMzRoLTNhMSwxLDAsMCwxLS44OC0xLjQ0TDEyLjU1LDIxSDZhMSwxLDAsMCwxLS44NS0xLjU0bDEwLjY4LTE3QTEsMSwwLDAsMSwxNi42NCwySDMwLjA3YTEsMSwwLDAsMSwuNzcsMS42OUwyMS43OCwxNGg1LjM4YTEsMSwwLDAsMSwu''@;'; + put 'put ''NzMsMS42NmwtMTYuNjMsMThBMSwxLDAsMCwxLDEwLjUyLDM0Wk05LjE4LDMyaC45MUwyNC44NiwxNkgxOS41OWExLDEsMCwwLDEtLjc3LTEuNjlMMjcuODgsNEgxNy4xOUw3Ljc3LDE5SDE0LjJhMSwxLDAsMCwxLC44OCwxLjQ0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGlu''@;'; + put 'put ''ZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAuOCwyLjI5QS40OS40OSwwLDAsMCwzMC4zNSwySDE2LjQyYS41LjUsMCwwLDAtLjQyLjIzbC0xMC43MSwxN0EuNDkuNDksMCwwLDAsNS43LDIwaDcuNjdMNi42LDMzLjI1YS41Mi41MiwwLDAsMCwuNDYuNzVoM2EuNS41LDAs''@;'; + put 'put ''MCwwLC4zNy0uMTZMMjgsMTQuODVhLjUuNSwwLDAsMC0uMzctLjg1SDIwLjg5TDMwLjcyLDIuODJBLjQ5LjQ5LDAsMCwwLDMwLjgsMi4yOVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+JyksTC5DbHJTaGFwZVdyZW5jaD0oMCxFLmNsckljb25TVkcpKCc8cGF0''@;'; + put 'put ''aCBkPSJNMzMuMTgsMjYuMTEsMjAuMzUsMTMuMjhBOS4yOCw5LjI4LDAsMCwwLDcuNTQsMi43OWwtMS4zNC41OSw1LjM4LDUuMzhMOC43NiwxMS41OSwzLjM4LDYuMjEsMi43OSw3LjU0QTkuMjcsOS4yNywwLDAsMCwxMy4yOCwyMC4zNUwyNi4xMSwzMy4xOGEyLDIsMCwwLDAsMi44MywwbDQu''@;'; + put 'put ''MjQtNC4yNEEyLDIsMCwwLDAsMzMuMTgsMjYuMTFabS01LjY2LDUuNjZMMTMuODgsMTguMTJsLS41Ny4xNmE3LjI3LDcuMjcsMCwwLDEtOS4zMS03LDcuMiw3LjIsMCwwLDEsLjE1LTEuNDhsNC42MSw0LjYxLDUuNjYtNS42Nkw5LjgxLDQuMTVhNy4yNyw3LjI3LDAsMCwxLDguNDcsOS4xNmwt''@;'; + put 'put ''LjE2LjU3TDMxLjc3LDI3LjUzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIyNy4xMyIgY3k9IjI3LjA5IiByPSIxLjMiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xMS4yMSAyNy4xMikgcm90YXRlKC00NSki''@;'; + put 'put ''IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLjczLDI3LjcyLDE5LjY3LDEzLjY2YTguNzksOC43OSwwLDAsMC0xMi0xMC41TDEzLDguNTMsOC41MywxMywzLjE2LDcuNjdhOC43OSw4Ljc5LDAsMCwwLDEwLjUs''@;'; + put 'put ''MTJMMjcuNzIsMzMuNzNhMS4wNywxLjA3LDAsMCwwLDEuNSwwbDQuNTEtNC41MUExLjA3LDEuMDcsMCwwLDAsMzMuNzMsMjcuNzJaTTI5LDI5YTEuMzgsMS4zOCwwLDEsMSwwLTJBMS4zOCwxLjM4LDAsMCwxLDI5LDI5WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIg''@;'; + put 'put ''Lz4nKSxMLkNsclNoYXBlQnVsbHNleWU9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE4LDJhMTUuOTIsMTUuOTIsMCwwLDAtNC4yNS41OWwuNzcsMS44NmExNC4wNywxNC4wNywwLDEsMS0xMCwxMGwtMS44Ni0uNzhBMTYsMTYsMCwxLDAsMTgsMloiIGNsYXNzPSJjbHItaS1vdXRsaW5l''@;'; + put 'put ''IGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTcuNDUsMTUuN2ExMC44MSwxMC44MSwwLDEsMCw4LjMtOC4yNkwxNi4zNyw5QTkuMjQsOS4yNCwwLDEsMSw5LDE2LjMyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+''@;'; + put 'put ''XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMjIuMDlhNC4wOCw0LjA4LDAsMCwxLTQtMy42OGwtMS42My0uNjhjMCwuMDksMCwuMTgsMCwuMjdBNS42OSw1LjY5LDAsMSwwLDE4LDEyLjMxaC0uMjRMMTguNDMsMTRBNC4wNyw0LjA3LDAsMCwxLDE4LDIyLjA5WiIgY2xhc3M9ImNsci1pLW91''@;'; + put 'put ''dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNOC4yLDEzLjM0YS41LjUsMCwwLDAsLjM1LjE1SDEyLjJsNS4zNyw1LjM3QTEsMSwwLDAsMCwxOSwxNy40NEwxMy41MywxMlY4LjUxYS41LjUsMCwwLDAtLjE1LS4zNUw3Ljc5LDIuNTdhLjUuNSww''@;'; + put 'put ''LDAsMC0uODUuMzV2NEgzYS41LjUsMCwwLDAtLjM1Ljg1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTksMTguODVhMSwxLDAsMCwxLTEuNDEsMGwtMy0zQTQsNCwwLDAsMCwxMy45MSwxOCw0LjA5LDQuMDks''@;'; + put 'put ''MCwxLDAsMTgsMTMuOTFhNCw0LDAsMCwwLTIsLjU1bDMsM0ExLDEsMCwwLDEsMTksMTguODVaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDJhMTUuOTIsMTUuOTIsMCwwLDAtNC4yNS41OWwxLjYsMy44OUExMS44''@;'; + put 'put ''OSwxMS44OSwwLDEsMSw2LjQ5LDE1LjNMMi42MSwxMy42OEExNiwxNiwwLDEsMCwxOCwyWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik04LDE1Ljk0QTEwLjE3LDEwLjE3LDAsMSwwLDE2LDhsMS42OSw0LjExLjMxLDBB''@;'; + put 'put ''NS44OCw1Ljg4LDAsMSwxLDEyLjEyLDE4YzAtLjEyLDAtLjIzLDAtLjM1WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik04LjIsMTMuMzRhLjUuNSwwLDAsMCwuMzUuMTVIMTIuMmwyLjM1LDIuMzVBNC4wOSw0LjA5LDAs''@;'; + put 'put ''MCwxLDE2LDE0LjQ2TDEzLjUzLDEyVjguNTFhLjUuNSwwLDAsMC0uMTUtLjM1TDcuNzksMi41N2EuNS41LDAsMCwwLS44NS4zNXY0SDNhLjUuNSwwLDAsMC0uMzUuODVaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC00IiAvPicpLEwuQ2xyU2hhcGVUYXJnZXQ9KDAsRS5j''@;'; + put 'put ''bHJJY29uU1ZHKSgnPHBhdGggZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlptMCwzMEExNCwxNCwwLDEsMSwzMiwxOCwxNCwxNCwwLDAsMSwxOCwzMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAg''@;'; + put 'put ''PHBhdGggZD0iTTE4LDcuMkExMC44LDEwLjgsMCwxLDAsMjguOCwxOCwxMC44MSwxMC44MSwwLDAsMCwxOCw3LjJabTAsMjBBOS4yLDkuMiwwLDEsMSwyNy4yLDE4LDkuMjEsOS4yMSwwLDAsMSwxOCwyNy4yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+''@;'; + put 'put ''XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMTIuMzFBNS42OSw1LjY5LDAsMSwwLDIzLjY5LDE4LDUuNjksNS42OSwwLDAsMCwxOCwxMi4zMVptMCw5Ljc3QTQuMDksNC4wOSwwLDEsMSwyMi4wOSwxOCw0LjA5LDQuMDksMCwwLDEsMTgsMjIuMDlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBj''@;'; + put 'put ''bHItaS1vdXRsaW5lLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjE4IiBjeT0iMTgiIHI9IjQuMDkiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsNy44M0ExMC4xNywxMC4xNywwLDEsMCwyOC4x''@;'; + put 'put ''NywxOCwxMC4xOCwxMC4xOCwwLDAsMCwxOCw3LjgzWm0wLDE2QTUuODgsNS44OCwwLDEsMSwyMy44OCwxOCw1Ljg4LDUuODgsMCwwLDEsMTgsMjMuODhaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDJBMTYsMTYs''@;'; + put 'put ''MCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlptMCwyNy44M0ExMS44MywxMS44MywwLDEsMSwyOS44MywxOCwxMS44NSwxMS44NSwwLDAsMSwxOCwyOS44M1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIC8+JyksTC5DbHJTaGFwZUZsYW1lPSgwLEUuY2xySWNv''@;'; + put 'put ''blNWRykoJzxwYXRoIGQ9Ik0zMS4zLDE2LjY2Yy0xLjE5LTIuMDktNy45NC0xNC4xNS03Ljk0LTE0LjE1YTEsMSwwLDAsMC0xLjc1LDBsLTYsMTAuNjQtMy01LjI4YTEsMSwwLDAsMC0xLjc1LDBTNS40LDE3Ljc4LDQuNDIsMTkuNUE5LjMsOS4zLDAsMCwwLDMsMjQuNjFDMywyOS43Miw1Ljg2''@;'; + put 'put ''LDM0LDExLjY3LDM0SDIyLjQ4QzI4LjI4LDM0LDMzLDI5LDMzLDIyLjc4QTExLjEzLDExLjEzLDAsMCwwLDMxLjMsMTYuNjZaTTIyLjQ4LDMySDExLjc3QzguMTMsMzIsNSwyOC42Niw1LDI0LjYxYTcuNDMsNy40MywwLDAsMSwxLjE2LTQuMTNjLjczLTEuMjksNC4wNS03LjIxLDUuNjUtMTAu''@;'; + put 'put ''MDdsMyw1LjI4YTEsMSwwLDAsMCwuODcuNTFoMGExLDEsMCwwLDAsLjg3LS41MUwyMi40OSw1YzEuODYsMy4zMyw2LjE1LDExLDcuMDcsMTIuNkE5LjI0LDkuMjQsMCwwLDEsMzEsMjIuNzhDMzEsMjcuODcsMjcuMTgsMzIsMjIuNDgsMzJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1v''@;'; + put 'put ''dXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNS43NSwyMS43M2MtLjY1LTEuMTYtNC4zOC03LjgxLTQuMzgtNy44MWEuOC44LDAsMCwwLTEuNCwwbC00LjIsNy40OC0xLjU5LTIuNDlhLjguOCwwLDAsMC0xLjM1LDBMOS4zNywyNC4zNWE0LjM1LDQuMzUsMCwwLDAt''@;'; + put 'put ''LjgyLDIuNiw0LjQ5LDQuNDksMCwwLDAsLjUsMkgxMWEzLDMsMCwwLDEtLjgzLTIsMi43OCwyLjc4LDAsMCwxLC41Ni0xLjczbDIuOC00LjM4LDEuNjYsMi42YS44LjgsMCwwLDAsMS40MS0uMTIsNy44Miw3LjgyLDAsMCwxLC40LS44TDIwLjY3LDE2bDMuNjksNi41N2E0LjgzLDQuODMsMCww''@;'; + put 'put ''LDEsLjc3LDIuNzFBNSw1LDAsMCwxLDIzLjQ2LDI5aDIuMTNhNi42OCw2LjY4LDAsMCwwLDEuMTQtMy43NCw2LjQ1LDYuNDUsMCwwLDAtMS0zLjVaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMS4zLDE2LjMy''@;'; + put 'put ''Yy0xLjE5LTIuMDktNy45NC0xNC4xNS03Ljk0LTE0LjE1YTEsMSwwLDAsMC0xLjc1LDBsLTYsMTAuNjQtMy01LjI4YTEsMSwwLDAsMC0xLjc1LDBTNS40LDE3LjQzLDQuNDIsMTkuMTVBOS4zLDkuMywwLDAsMCwzLDI0LjI2YzAsNS4xMSwzLjg4LDkuNjUsOC42Nyw5Ljc0SDIyLjQ4QzI4LjI4''@;'; + put 'put ''LDM0LDMzLDI4LjYyLDMzLDIyLjQ0QTExLjEzLDExLjEzLDAsMCwwLDMxLjMsMTYuMzJaTTIxLjQ4LDMySDE0LjU0QTQuNjgsNC42OCwwLDAsMSwxMCwyNy40MWEzLjkxLDMuOTEsMCwwLDEsLjc1LTIuMzRsMy4zNS01LjIxYS41LjUsMCwwLDEsLjg0LDBsMS43OCwyLjc3LDAtLjA4Yy42My0x''@;'; + put 'put ''LjExLDQuMjMtNy40OCw0LjIzLTcuNDhhLjUuNSwwLDAsMSwuODcsMHMzLjYsNi4zOCw0LjIzLDcuNDhBNS44Myw1LjgzLDAsMCwxLDI3LDI1Ljc2QzI3LDMyLDIyLjEsMzIsMjEuNDgsMzJaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPicpLEwuQ2xyU2hhcGVI''@;'; + put 'put ''b3VyZ2xhc3M9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI5LDMySDI2VjI0LjkxYTYuNjcsNi42NywwLDAsMC0yLjY5LTUuMzNsLTEuMjgtMUE2LjM2LDYuMzYsMCwwLDAsMjEsMThoMGE2LjI5LDYuMjksMCwwLDAsMS0uNjJsMS4yOC0xQTYuNjcsNi42NywwLDAsMCwyNiwxMS4wOVY0''@;'; + put 'put ''aDNhMSwxLDAsMCwwLDAtMkg3QTEsMSwwLDAsMCw3LDRoM3Y3LjA5YTYuNjcsNi42NywwLDAsMCwyLjY5LDUuMzNsMS4yOCwxQTYuMzYsNi4zNiwwLDAsMCwxNSwxOGgwYTYuMjcsNi4yNywwLDAsMC0xLC42MmwtMS4yOCwxQTYuNjcsNi42NywwLDAsMCwxMCwyNC45MVYzMkg3YTEsMSwwLDAs''@;'; + put 'put ''MCwwLDJIMjlhMSwxLDAsMCwwLDAtMlpNMTIsMjQuOTFhNC42Niw0LjY2LDAsMCwxLDEuODgtMy43MmwxLjI4LTFhNC42Niw0LjY2LDAsMCwxLDEuMTgtLjYzLDEsMSwwLDAsMCwuNjUtLjk0VjE3LjMzYTEsMSwwLDAsMC0uNjUtLjk0LDQuNjcsNC42NywwLDAsMS0xLjE5LS42M2wtMS4yOC0x''@;'; + put 'put ''QTQuNjYsNC42NiwwLDAsMSwxMiwxMS4wOVY0SDI0djcuMDlhNC42Niw0LjY2LDAsMCwxLTEuODgsMy43MmwtMS4yOCwxaDBhNC42Niw0LjY2LDAsMCwxLTEuMTguNjMsMSwxLDAsMCwwLS42NS45NHYxLjM0YTEsMSwwLDAsMCwuNjUuOTQsNC42Nyw0LjY3LDAsMCwxLDEuMTkuNjNsMS4yOCwx''@;'; + put 'put ''QTQuNjYsNC42NiwwLDAsMSwyNCwyNC45MVYzMkgxMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI5LDMySDI2VjI0LjkxYTYuNjcsNi42NywwLDAsMC0yLjY5LTUuMzNsLTEuMjgtMUE2LjM2LDYuMzYsMCww''@;'; + put 'put ''LDAsMjEsMThoMGE2LjI5LDYuMjksMCwwLDAsMS0uNjJsMS4yOC0xYTYuNjQsNi42NCwwLDAsMCwxLjA5LTFIMjIuMjNhMy42NCwzLjY0LDAsMCwxLS43OC0uMDlsLS42Mi40NmgwYTQuNjYsNC42NiwwLDAsMS0xLjE4LjYzLDEsMSwwLDAsMC0uNjUuOTR2MS4zNGExLDEsMCwwLDAsLjY1Ljk0''@;'; + put 'put ''LDQuNjcsNC42NywwLDAsMSwxLjE5LjYzbDEuMjgsMUE0LjY2LDQuNjYsMCwwLDEsMjQsMjQuOTFWMzJIMTJWMjQuOTFhNC42Niw0LjY2LDAsMCwxLDEuODgtMy43MmwxLjI4LTFhNC42Niw0LjY2LDAsMCwxLDEuMTgtLjYzLDEsMSwwLDAsMCwuNjUtLjk0VjE3LjMzYTEsMSwwLDAsMC0uNjUt''@;'; + put 'put ''Ljk0LDQuNjcsNC42NywwLDAsMS0xLjE5LS42M2wtMS4yOC0xQTQuNjYsNC42NiwwLDAsMSwxMiwxMS4wOVY0SDIyLjQ1TDIzLjYsMkg3QTEsMSwwLDAsMCw3LDRoM3Y3LjA5YTYuNjcsNi42NywwLDAsMCwyLjY5LDUuMzNsMS4yOCwxQTYuMzYsNi4zNiwwLDAsMCwxNSwxOGgwYTYuMjcsNi4y''@;'; + put 'put ''NywwLDAsMC0xLC42MmwtMS4yOCwxQTYuNjcsNi42NywwLDAsMCwxMCwyNC45MVYzMkg3YTEsMSwwLDAsMCwwLDJIMjlhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBh''@;'; + put 'put ''dGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxp''@;'; + put 'put ''bmUtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI5LDMySDI2VjI0LjkxYTYuNjcsNi42NywwLDAsMC0yLjY5LTUuMzNsLTEuMjgtMUE2LjM2LDYuMzYsMCwwLDAsMjEsMThoMGE2LjI5LDYuMjksMCwwLDAsMS0uNjJsMS4yOC0xYTYuNjgs''@;'; + put 'put ''Ni42OCwwLDAsMCwyLjU3LTQuMTZBNy41Myw3LjUzLDAsMCwxLDI0LDEwLjQ5di42MWE0LjY2LDQuNjYsMCwwLDEtMS44OCwzLjcybC0xLjI4LDFoMGE0LjY2LDQuNjYsMCwwLDEtMS4xOC42MywxLDEsMCwwLDAtLjY1Ljk0djEuMzRhMSwxLDAsMCwwLC42NS45NCw0LjY3LDQuNjcsMCwwLDEs''@;'; + put 'put ''MS4xOS42M2wxLjI4LDFBNC42Niw0LjY2LDAsMCwxLDI0LDI0LjkxVjMySDEyVjI0LjkxYTQuNjYsNC42NiwwLDAsMSwxLjg4LTMuNzJsMS4yOC0xYTQuNjYsNC42NiwwLDAsMSwxLjE4LS42MywxLDEsMCwwLDAsLjY1LS45NFYxNy4zM2ExLDEsMCwwLDAtLjY1LS45NCw0LjY3LDQuNjcsMCww''@;'; + put 'put ''LDEtMS4xOS0uNjNsLTEuMjgtMUE0LjY2LDQuNjYsMCwwLDEsMTIsMTEuMDlWNEgyMi43OGE3LjQ1LDcuNDUsMCwwLDEsLjg5LTJIN0ExLDEsMCwwLDAsNyw0aDN2Ny4wOWE2LjY3LDYuNjcsMCwwLDAsMi42OSw1LjMzbDEuMjgsMUE2LjM2LDYuMzYsMCwwLDAsMTUsMThoMGE2LjI3LDYuMjcs''@;'; + put 'put ''MCwwLDAtMSwuNjJsLTEuMjgsMUE2LjY3LDYuNjcsMCwwLDAsMTAsMjQuOTFWMzJIN2ExLDEsMCwwLDAsMCwySDI5YTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xl''@;'; + put 'put ''IGN4PSIzMCIgY3k9IjYiIHI9IjUiICBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNNi42Nyw0aDIyYTEsMSwwLDAsMCwwLTJoLTIyYTEsMSwwLDEsMCwwLDJaIiBj''@;'; + put 'put ''bGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4LjY3LDMyaC0yMmExLDEsMCwwLDAsMCwyaDIyYTEsMSwwLDEsMCwwLTJaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPlxuICAgICAgICAgICAg''@;'; + put 'put ''PHBhdGggZD0iTTIyLjU1LDE1LjY3QTYuMDcsNi4wNywwLDAsMCwyNSwxMS4xMlY2SDEwLjA2djUuMTJhNi4wNyw2LjA3LDAsMCwwLDIuNDUsNC41NSwxMS40OCwxMS40OCwwLDAsMCwyLjkxLDEuNzJ2MS4xNmExMS40OCwxMS40OCwwLDAsMC0yLjkxLDEuNzIsNi4wNyw2LjA3LDAsMCwwLTIu''@;'; + put 'put ''NDUsNC41NXY1LjEySDI1VjI0LjgyYTYuMDcsNi4wNywwLDAsMC0yLjQ1LTQuNTUsMTEuNDgsMTEuNDgsMCwwLDAtMi45MS0xLjcyVjE3LjM5QTExLjQ4LDExLjQ4LDAsMCwwLDIyLjU1LDE1LjY3WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIgLz5cbiAgICAgICAg''@;'; + put 'put ''ICAgIDxwYXRoIGQ9Ik0yOC42NywzMmgtMjJhMSwxLDAsMCwwLDAsMmgyMmExLDEsMCwxLDAsMC0yWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik02LjY3LDRIMjIuNDVMMjMuNiwySDYu''@;'; + put 'put ''NjdhMSwxLDAsMSwwLDAsMloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTIuNTEsMjAuMjdhNi4wNyw2LjA3LDAsMCwwLTIuNDUsNC41NXY1LjEySDI1VjI0LjgyYTYuMDcsNi4wNyww''@;'; + put 'put ''LDAsMC0yLjQ1LTQuNTUsMTEuNDgsMTEuNDgsMCwwLDAtMi45MS0xLjcyVjE3LjM5YTExLjQ4LDExLjQ4LDAsMCwwLDIuOTEtMS43MmwuMy0uMjdoLS42MkEzLjY4LDMuNjgsMCwwLDEsMTksOS44OUwyMS4yOSw2SDEwLjA2djUuMTJhNi4wNyw2LjA3LDAsMCwwLDIuNDUsNC41NSwxMS40OCwx''@;'; + put 'put ''MS40OCwwLDAsMCwyLjkxLDEuNzJ2MS4xNkExMS40OCwxMS40OCwwLDAsMCwxMi41MSwyMC4yN1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4''@;'; + put 'put ''LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiAgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtNC0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5c''@;'; + put 'put ''biAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOC42NywzMmgtMjJhMSwxLDAsMCwwLDAsMmgyMmExLDEsMCwxLDAsMC0yWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNNi42Nyw0SDIyLjc4YTcu''@;'; + put 'put ''NDUsNy40NSwwLDAsMSwuODktMmgtMTdhMSwxLDAsMSwwLDAsMloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIyLjU1LDIwLjI3YTExLjQ4LDExLjQ4LDAsMCwwLTIuOTEtMS43MlYxNy4z''@;'; + put 'put ''OWExMS40OCwxMS40OCwwLDAsMCwyLjkxLTEuNzJBNi4yNSw2LjI1LDAsMCwwLDI1LDExLjU1LDcuNDcsNy40NywwLDAsMSwyMi41LDZIMTAuMDZ2NS4xMmE2LjA3LDYuMDcsMCwwLDAsMi40NSw0LjU1LDExLjQ4LDExLjQ4LDAsMCwwLDIuOTEsMS43MnYxLjE2YTExLjQ4LDExLjQ4LDAsMCww''@;'; + put 'put ''LTIuOTEsMS43Miw2LjA3LDYuMDcsMCwwLDAtMi40NSw0LjU1djUuMTJIMjVWMjQuODJBNi4wNyw2LjA3LDAsMCwwLDIyLjU1LDIwLjI3WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0zLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIz''@;'; + put 'put ''MCIgY3k9IjYiIHI9IjUiICBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTQtLWJhZGdlZCBjbHItaS1iYWRnZSIgLz4nKSxMLkNsclNoYXBlTm9BY2Nlc3M9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYs''@;'; + put 'put ''MCwwLDAsMTgsMlptMCwzMEExNCwxNCwwLDEsMSwzMiwxOCwxNCwxNCwwLDAsMSwxOCwzMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI3LjE1LDE1SDguODVBMS44NSwxLjg1LDAsMCwwLDcsMTYuODV2Mi4y''@;'; + put 'put ''OUExLjg1LDEuODUsMCwwLDAsOC44NSwyMUgyNy4xNUExLjg1LDEuODUsMCwwLDAsMjksMTkuMTVWMTYuODVBMS44NSwxLjg1LDAsMCwwLDI3LjE1LDE1Wm0uMjUsNC4xNWEuMjUuMjUsMCwwLDEtLjI1LjI1SDguODVhLjI1LjI1LDAsMCwxLS4yNS0uMjVWMTYuODVhLjI1LjI1LDAsMCwxLC4y''@;'; + put 'put ''NS0uMjVIMjcuMTVhLjI1LjI1LDAsMCwxLC4yNS4yNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlpNMjkuMTUsMjBINi44NUEuODUuODUs''@;'; + put 'put ''MCwwLDEsNiwxOS4xNVYxNi44NUEuODUuODUsMCwwLDEsNi44NSwxNkgyOS4xNWEuODUuODUsMCwwLDEsLjg1Ljg1djIuMjlBLjg1Ljg1LDAsMCwxLDI5LjE1LDIwWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz4nKSxMLkNsclNoYXBlT3JnYW5pemF0aW9uPSgw''@;'; + put 'put ''LEUuY2xySWNvblNWRykoJzxwb2x5Z29uIHBvaW50cz0iOS44IDE4LjggMjYuMiAxOC44IDI2LjIgMjEuODggMjcuOCAyMS44OCAyNy44IDE3LjIgMTguOCAxNy4yIDE4LjggMTQgMTcuMiAxNCAxNy4yIDE3LjIgOC4yIDE3LjIgOC4yIDIxLjg4IDkuOCAyMS44OCA5LjggMTguOCIgY2xhc3M9''@;'; + put 'put ''ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTQsMjNINGEyLDIsMCwwLDAtMiwydjZhMiwyLDAsMCwwLDIsMkgxNGEyLDIsMCwwLDAsMi0yVjI1QTIsMiwwLDAsMCwxNCwyM1pNNCwzMVYyNUgxNHY2WiIgY2xhc3M9ImNsci1p''@;'; + put 'put ''LW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIsMjNIMjJhMiwyLDAsMCwwLTIsMnY2YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYyNUEyLDIsMCwwLDAsMzIsMjNaTTIyLDMxVjI1SDMydjZaIiBjbGFzcz0iY2xyLWktb3V0''@;'; + put 'put ''bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMywxM0gyM2EyLDIsMCwwLDAsMi0yVjVhMiwyLDAsMCwwLTItMkgxM2EyLDIsMCwwLDAtMiwydjZBMiwyLDAsMCwwLDEzLDEzWm0wLThIMjN2NkgxM1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNs''@;'; + put 'put ''ci1pLW91dGxpbmUtcGF0aC00IiAvPlxuICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSI5LjggMTguOCAyNi4yIDE4LjggMjYuMiAyMS44OCAyNy44IDIxLjg4IDI3LjggMTcuMiAxOC44IDE3LjIgMTguOCAxNCAxNy4yIDE0IDE3LjIgMTcuMiA4LjIgMTcuMiA4LjIgMjEuODggOS44IDIx''@;'; + put 'put ''Ljg4IDkuOCAxOC44IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMiIgeT0iMjMiIHdpZHRoPSIxNCIgaGVpZ2h0PSIxMCIgcng9IjIiIHJ5PSIyIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAv''@;'; + put 'put ''PlxuICAgICAgICAgICAgPHJlY3QgeD0iMjAiIHk9IjIzIiB3aWR0aD0iMTQiIGhlaWdodD0iMTAiIHJ4PSIyIiByeT0iMiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjExIiB5PSIzIiB3aWR0aD0iMTQiIGhlaWdodD0i''@;'; + put 'put ''MTAiIHJ4PSIyIiByeT0iMiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNCIgLz4nKSxMLkNsclNoYXBlQmFsYW5jZT0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjQsMzNIMTJhMSwxLDAsMCwxLDAtMkgyNGExLDEsMCwwLDEsMCwyWiIgY2xhc3M9ImNsci1pLW91''@;'; + put 'put ''dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNyIgeT0iOSIgd2lkdGg9IjIiIGhlaWdodD0iMjIuNSIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjgsN0g4QTEs''@;'; + put 'put ''MSwwLDAsMSw4LDVIMjhhMSwxLDAsMCwxLDAsMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2LjkzLDI0Ljc5YTcuMjMsNy4yMywwLDAsMS01LjgxLTIuODlsLS42LS44LDEuNTktMS4yMS42LjhhNS4yOCw1''@;'; + put 'put ''LjI4LDAsMCwwLDguNDIsMGwuNi0uOCwxLjU5LDEuMjEtLjYuOEE3LjIzLDcuMjMsMCwwLDEsMjYuOTMsMjQuNzlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMC41MSwxOS4yNWEuOC44LDAsMCwxLS43My0u''@;'; + put 'put ''NDhMMjYuOTMsMTIuMmwtMi44NSw2LjU3YS44LjgsMCwwLDEtMS40Ny0uNjRMMjYuMiw5Ljg3YS44My44MywwLDAsMSwxLjQ3LDBsMy41OCw4LjI2YS44LjgsMCwwLDEtLjczLDEuMTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgLz5cbiAgICAgICAgICAg''@;'; + put 'put ''IDxwYXRoIGQ9Ik05LjY4LDI0Ljc5QTcuMjMsNy4yMywwLDAsMSwzLjg4LDIxLjlsLS42LS44TDQuODYsMTkuOWwuNi44YTUuMjgsNS4yOCwwLDAsMCw4LjQyLDBsLjYtLjgsMS41OSwxLjIxLS42LjhBNy4yMyw3LjIzLDAsMCwxLDkuNjgsMjQuNzlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBj''@;'; + put 'put ''bHItaS1vdXRsaW5lLXBhdGgtNiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMy4yNiwxOS4yNWEuOC44LDAsMCwxLS43My0uNDhMOS42OCwxMi4yLDYuODQsMTguNzdhLjguOCwwLDAsMS0xLjQ3LS42NEw4Ljk1LDkuODdhLjgzLjgzLDAsMCwxLDEuNDcsMEwxNCwxOC4xM2EuOC44LDAs''@;'; + put 'put ''MCwxLS43MywxLjEyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTciIC8+JyksTC5DbHJTaGFwZUlkQmFkZ2U9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE4LDIyYTQuMjMsNC4yMywwLDEsMC00LjIzLTQuMjNBNC4yMyw0LjIzLDAsMCwwLDE4LDIyWm0w''@;'; + put 'put ''LTYuODZhMi42MywyLjYzLDAsMSwxLTIuNjMsMi42M0EyLjYzLDIuNjMsMCwwLDEsMTgsMTUuMTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMiw0YTIsMiwwLDAsMC0yLTJIMTZhMiwyLDAsMCwwLTIsMnY3''@;'; + put 'put ''aDhaTTIwLDlIMTZWNGg0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYsMzBWMjcuN2ExLjEyLDEuMTIsMCwwLDAtLjI2LS43M0E5LjksOS45LDAsMCwwLDE4LDIzLjY5LDkuOSw5LjksMCwwLDAsMTAuMjYs''@;'; + put 'put ''MjdhMS4xMywxLjEzLDAsMCwwLS4yNi43M1YzMGgxLjZWMjcuODdBOC4zMyw4LjMzLDAsMCwxLDE4LDI1LjI5YTguMzMsOC4zMywwLDAsMSw2LjQsMi41OVYzMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4''@;'; + put 'put ''LDZIMjRWOGg0VjMySDhWOGg0VjZIOEEyLDIsMCwwLDAsNiw4VjMyYTIsMiwwLDAsMCwyLDJIMjhhMiwyLDAsMCwwLDItMlY4QTIsMiwwLDAsMCwyOCw2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMjJh''@;'; + put 'put ''NC4yMyw0LjIzLDAsMSwwLTQuMjMtNC4yM0E0LjIzLDQuMjMsMCwwLDAsMTgsMjJabTAtNi44NmEyLjYzLDIuNjMsMCwxLDEtMi42MywyLjYzQTIuNjMsMi42MywwLDAsMSwxOCwxNS4xNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVy''@;'; + put 'put ''dGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTEwLjI2LDI3YTEuMTMsMS4xMywwLDAsMC0uMjYuNzNWMzBoMS42VjI3Ljg3QTguMzMsOC4zMywwLDAsMSwxOCwyNS4yOWE4LjMzLDguMzMsMCwwLDEsNi40LDIuNTlWMzBIMjZWMjcuN2ExLjEyLDEuMTIsMCwwLDAtLjI2LS43M0E5Ljks''@;'; + put 'put ''OS45LDAsMCwwLDE4LDIzLjY5LDkuOSw5LjksMCwwLDAsMTAuMjYsMjdaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOSw5Ljg5LDE5LjU2LDlIMTZWNGg0VjguMjRsMi0zLjQ2''@;'; + put 'put ''VjRhMiwyLDAsMCwwLTItMkgxNmEyLDIsMCwwLDAtMiwydjdoNC42NEEzLjY2LDMuNjYsMCwwLDEsMTksOS44OVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4LDE1LjRWMzJI''@;'; + put 'put ''OFY4aDRWNkg4QTIsMiwwLDAsMCw2LDhWMzJhMiwyLDAsMCwwLDIsMkgyOGEyLDIsMCwwLDAsMi0yVjE1LjRaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIx''@;'; + put 'put ''LjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiICBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYWxlcnRlZCBj''@;'; + put 'put ''bHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwyMmE0LjIzLDQuMjMsMCwxLDAtNC4yMy00LjIzQTQuMjMsNC4yMywwLDAsMCwxOCwyMlptMC02Ljg2YTIuNjMsMi42MywwLDEsMS0yLjYzLDIuNjNBMi42MywyLjYzLDAsMCwxLDE4LDE1LjE0WiIgY2xhc3M9ImNsci1p''@;'; + put 'put ''LW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIyLDRhMiwyLDAsMCwwLTItMkgxNmEyLDIsMCwwLDAtMiwydjdoOFpNMjAsOUgxNlY0aDRaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91''@;'; + put 'put ''dGxpbmUtcGF0aC0yLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTAuMjYsMjdhMS4xMywxLjEzLDAsMCwwLS4yNi43M1YzMGgxLjZWMjcuODdBOC4zMyw4LjMzLDAsMCwxLDE4LDI1LjI5YTguMzMsOC4zMywwLDAsMSw2LjQsMi41OVYzMEgyNlYyNy43YTEuMTIsMS4xMiww''@;'; + put 'put ''LDAsMC0uMjYtLjczQTkuOSw5LjksMCwwLDAsMTgsMjMuNjksOS45LDkuOSwwLDAsMCwxMC4yNiwyN1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOCwxMy4yMlYzMkg4VjhoNFY2''@;'; + put 'put ''SDhBMiwyLDAsMCwwLDYsOFYzMmEyLDIsMCwwLDAsMiwySDI4YTIsMiwwLDAsMCwyLTJWMTMuNUE3LjQ5LDcuNDksMCwwLDEsMjgsMTMuMjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xl''@;'; + put 'put ''IGN4PSIzMCIgY3k9IjYiIHI9IjUiICBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC01LS1iYWRnZWQgY2xyLWktYmFkZ2UiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIxOCIgY3k9IjE3Ljc3IiByPSI0LjIzIiBjbGFzcz0iY2xyLWktc29saWQg''@;'; + put 'put ''Y2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIxLDRhMiwyLDAsMCwwLTItMkgxN2EyLDIsMCwwLDAtMiwydjZoNloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTAuMjYsMjdhMS4x''@;'; + put 'put ''MywxLjEzLDAsMCwwLS4yNi43M1YzMEgyNlYyNy43YTEuMTIsMS4xMiwwLDAsMC0uMjYtLjczQTkuOSw5LjksMCwwLDAsMTgsMjMuNjksOS45LDkuOSwwLDAsMCwxMC4yNiwyN1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIC8+XG4gICAgICAgICAgICA8cGF0aCBk''@;'; + put 'put ''PSJNMjgsNkgyM1Y4aDVWMzJIOFY4aDVWNkg4QTIsMiwwLDAsMCw2LDhWMzJhMiwyLDAsMCwwLDIsMkgyOGEyLDIsMCwwLDAsMi0yVjhBMiwyLDAsMCwwLDI4LDZaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC00IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE5LDku''@;'; + put 'put ''ODksMjEsNi41VjRhMiwyLDAsMCwwLTItMkgxN2EyLDIsMCwwLDAtMiwydjZoNFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIxOCIgY3k9IjE3Ljc3IiByPSI0LjIzIiBjbGFzcz0i''@;'; + put 'put ''Y2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTEwLjI2LDI3YTEuMTMsMS4xMywwLDAsMC0uMjYuNzNWMzBIMjZWMjcuN2ExLjEyLDEuMTIsMCwwLDAtLjI2LS43M0E5LjksOS45LDAsMCwwLDE4LDIzLjY5''@;'; + put 'put ''LDkuOSw5LjksMCwwLDAsMTAuMjYsMjdaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0zLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4LDE1LjRWMzJIOFY4aDVWNkg4QTIsMiwwLDAsMCw2LDhWMzJhMiwyLDAsMCwwLDIsMkgyOGEy''@;'; + put 'put ''LDIsMCwwLDAsMi0yVjE1LjRaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC00LS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCww''@;'; + put 'put ''LDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTUtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIxOCIgY3k9IjE3Ljc3''@;'; + put 'put ''IiByPSI0LjIzIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMSw0YTIsMiwwLDAsMC0yLTJIMTdhMiwyLDAsMCwwLTIsMnY2aDZaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHIt''@;'; + put 'put ''aS1zb2xpZC1wYXRoLTItLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMC4yNiwyN2ExLjEzLDEuMTMsMCwwLDAtLjI2LjczVjMwSDI2VjI3LjdhMS4xMiwxLjEyLDAsMCwwLS4yNi0uNzNBOS45LDkuOSwwLDAsMCwxOCwyMy42OSw5LjksOS45LDAsMCwwLDEwLjI2LDI3WiIg''@;'; + put 'put ''Y2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0zLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjgsMTMuMjJWMzJIOFY4aDVWNkg4QTIsMiwwLDAsMCw2LDhWMzJhMiwyLDAsMCwwLDIsMkgyOGEyLDIsMCwwLDAsMi0yVjEzLjVBNy40OSw3LjQ5''@;'; + put 'put ''LDAsMCwxLDI4LDEzLjIyWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC00LS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiICBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTUt''@;'; + put 'put ''LWJhZGdlZCBjbHItaS1iYWRnZSIgLz4nKSxMLkNsclNoYXBlUmVwZWF0PSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNNiwxNC4xNUEzLjE3LDMuMTcsMCwwLDEsOS4xNywxMUgyOC40bC00LjI4LDQuNTRhMSwx''@;'; + put 'put ''LDAsMSwwLDEuNDYsMS4zN0wzMi4wOSwxMCwyNS41OCwzLjA5YTEsMSwwLDEsMC0xLjQ2LDEuMzdMMjguNCw5SDkuMTdBNS4xNyw1LjE3LDAsMCwwLDQsMTQuMTV2Ni4xbDItMi4xMloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0''@;'; + put 'put ''aC0yIiBkPSJNMzAsMjEuODVBMy4xNywzLjE3LDAsMCwxLDI2LjgzLDI1SDcuNmw0LjI4LTQuNTRhMSwxLDAsMSwwLTEuNDYtMS4zN0wzLjkxLDI2bDYuNTEsNi45MWExLDEsMCwxLDAsMS40Ni0xLjM3TDcuNiwyN0gyNi44M0E1LjE3LDUuMTcsMCwwLDAsMzIsMjEuODV2LTYuMWwtMiwyLjEy''@;'; + put 'put ''WiIvPicpLEwuQ2xyU2hhcGVGaWxlR3JvdXA9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMSwzNEgxM2ExLDEsMCwwLDEtMS0xVjExYTEsMSwwLDAsMSwxLTFIMzFhMSwxLDAsMCwxLDEsMVYzM0ExLDEsMCww''@;'; + put 'put ''LDEsMzEsMzRaTTE0LDMySDMwVjEySDE0WiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIHg9IjE2IiB5PSIxNiIgd2lkdGg9IjEyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRs''@;'; + put 'put ''aW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiB4PSIxNiIgeT0iMjAiIHdpZHRoPSIxMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgeD0iMTYiIHk9IjI0IiB3aWR0aD0iMTIiIGhlaWdodD0iMiIvPlxu''@;'; + put 'put ''ICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIGQ9Ik02LDI0VjRIMjRWM2ExLDEsMCwwLDAtMS0xSDVBMSwxLDAsMCwwLDQsM1YyNWExLDEsMCwwLDAsMSwxSDZaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0''@;'; + put 'put ''bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIgZD0iTTEwLDI4VjhIMjhWN2ExLDEsMCwwLDAtMS0xSDlBMSwxLDAsMCwwLDgsN1YyOWExLDEsMCwwLDAsMSwxaDFaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzEsMTBI''@;'; + put 'put ''MTNhMSwxLDAsMCwwLTEsMVYzM2ExLDEsMCwwLDAsMSwxSDMxYTEsMSwwLDAsMCwxLTFWMTFBMSwxLDAsMCwwLDMxLDEwWk0yOCwyNkgxNlYyNEgyOFptMC00SDE2VjIwSDI4Wm0wLTRIMTZWMTZIMjhaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29s''@;'; + put 'put ''aWQtcGF0aC0yIiBkPSJNNiwyNFY0SDI0VjNhMSwxLDAsMCwwLTEtMUg1QTEsMSwwLDAsMCw0LDNWMjVhMSwxLDAsMCwwLDEsMUg2WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIgZD0iTTEwLDI4VjhIMjhWN2ExLDEsMCwwLDAt''@;'; + put 'put ''MS0xSDlBMSwxLDAsMCwwLDgsN1YyOWExLDEsMCwwLDAsMSwxaDFaIi8+JyksTC5DbHJTaGFwZVBhcGVyY2xpcD0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTguNDIsMzIuNkE2LjMsNi4zLDAsMCwxLDQsMzAu''@;'; + put 'put ''NzlsLS4xMy0uMTNBNi4yLDYuMiwwLDAsMSwyLDI2LjIyLDYuNzcsNi43NywwLDAsMSw0LDIxLjRMMTkuNSw2LjA3YTguNjcsOC42NywwLDAsMSwxMi4xNS0uMzVBOCw4LDAsMCwxLDM0LDExLjQ0YTksOSwwLDAsMS0yLjcsNi4zNkwxNy4zNywzMS42QTEsMSwwLDEsMSwxNiwzMC4xOEwyOS44''@;'; + put 'put ''OSwxNi4zOEE3LDcsMCwwLDAsMzIsMTEuNDRhNiw2LDAsMCwwLTEuNzYtNC4zLDYuNjcsNi42NywwLDAsMC05LjM0LjM1TDUuNDUsMjIuODJBNC43OCw0Ljc4LDAsMCwwLDQsMjYuMjJhNC4yMSw0LjIxLDAsMCwwLDEuMjQsM2wuMTMuMTNhNC42NCw0LjY0LDAsMCwwLDYuNS0uMjFMMjUuMjIs''@;'; + put 'put ''MTUuOTRBMi43LDIuNywwLDAsMCwyNiwxNGEyLjM1LDIuMzUsMCwwLDAtLjY5LTEuNjgsMi42MSwyLjYxLDAsMCwwLTMuNjYuMTNsLTkuMiw5LjEyYTEsMSwwLDEsMS0xLjQxLTEuNDJMMjAuMjgsMTFhNC42Miw0LjYyLDAsMCwxLDYuNDgtLjEzQTQuMzMsNC4zMywwLDAsMSwyOCwxNGE0LjY4''@;'; + put 'put ''LDQuNjgsMCwwLDEtMS40MSwzLjM0TDEzLjI4LDMwLjU4QTYuOTEsNi45MSwwLDAsMSw4LjQyLDMyLjZaIi8+JyksTC5DbHJTaGFwZVNocmluaz0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMyLDE1SDIyLjQx''@;'; + put 'put ''bDkuMjUtOS4yNWExLDEsMCwwLDAtMS40MS0xLjQxTDIxLDEzLjU5VjRhMSwxLDAsMCwwLTIsMFYxN0gzMmExLDEsMCwwLDAsMC0yWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik00LDE5YTEsMSwwLDAsMCwwLDJo''@;'; + put 'put ''OS41OUw0LjMzLDMwLjI1YTEsMSwwLDEsMCwxLjQxLDEuNDFMMTUsMjIuNDFWMzJhMSwxLDAsMCwwLDIsMFYxOVoiLz4nKSxMLkNsclNoYXBlQWNjZXNzaWJpbGl0eTE9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE0LjQ0LDMxLjk0YTcuMzEsNy4zMSwwLDAsMS01LjctMTEuODhMNy4z''@;'; + put 'put ''MiwxOC42NGE5LjMsOS4zLDAsMCwwLDEzLjEsMTMuMTFMMTksMzAuMzNBNy4yOSw3LjI5LDAsMCwxLDE0LjQ0LDMxLjk0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjUuMzYsMS42N2E0LjEyLDQuMTIsMCwx''@;'; + put 'put ''LDAsNC4xMSw0LjExQTQuMTIsNC4xMiwwLDAsMCwyNS4zNiwxLjY3Wm0wLDYuMjNhMi4xMiwyLjEyLDAsMSwxLDIuMTEtMi4xMkEyLjEyLDIuMTIsMCwwLDEsMjUuMzYsNy45WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0''@;'; + put 'put ''aCBkPSJNMjYuNTYsMTguMThoLTVhMSwxLDAsMCwwLS4yNC4wNWwzLjA5LTMuNTVhMi44MywyLjgzLDAsMCwwLS42OS00LjMzbC04LTQuNmExLDEsMCwwLDAtMS4xMi4wOEw5LjgzLDkuNThBMSwxLDAsMCwwLDkuNjYsMTFhMSwxLDAsMCwwLC43OS4zOCwxLDEsMCwwLDAsLjYxLS4yMWw0LjI3''@;'; + put 'put ''LTMuMzQsMy4xMSwxLjc3LTUuMDgsNS43OGgwYTkuMjgsOS4yOCwwLDAsMC00LjUzLDEuODNsMS40MywxLjQzQTcuMyw3LjMsMCwwLDEsMjAuNDIsMjguODFsMS40MiwxLjQzYTkuMjcsOS4yNywwLDAsMCwuNzctMTAuMDZoMi44MmwtLjc3LDYuNTFhMSwxLDAsMCwwLC44OCwxLjExaC4xMmEx''@;'; + put 'put ''LDEsMCwwLDAsMS0uODhsLjktNy42MmExLDEsMCwwLDAtLjI1LS43OEExLDEsMCwwLDAsMjYuNTYsMTguMThabS02LjM3LTcuNTYsMi41MiwxLjQ2YS43OS43OSwwLDAsMSwuNC41OS44MS44MSwwLDAsMS0uMi42OUwxOS43NSwxN0E5LjE3LDkuMTcsMCwwLDAsMTYsMTUuNDVaIiBjbGFzcz0i''@;'; + put 'put ''Y2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNC43NywzMS45NGE3LjMxLDcuMzEsMCwwLDEtNS43LTExLjg4TDcuNjUsMTguNjRhOS4zLDkuMywwLDAsMCwxMy4xLDEzLjExbC0xLjQyLTEuNDJBNy4yOSw3LjI5LDAsMCwxLDE0''@;'; + put 'put ''Ljc3LDMxLjk0WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi42NSwyLjFhMy4xMiwzLjEyLDAsMSwwLDMuMTEsMy4xMkEzLjEyLDMuMTIsMCwwLDAsMjYuNjUsMi4xWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1p''@;'; + put 'put ''LXNvbGlkLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44MSwxOC4xOEgyMS40N3EtLjMxLS4zMy0uNjYtLjYzbDQuMzgtNC44NmEyLjE0LDIuMTQsMCwwLDAtLjUzLTMuMjdMMjAuOSw3LjIzbDAsMEwxNy4wNSw1LjA3YTEsMSwwLDAsMC0xLjExLjA4TDExLjE1LDguOWEx''@;'; + put 'put ''LDEsMCwwLDAsMS4yMywxLjU4bDQuMjctMy4zNCwyLjg3LDEuNjNMMTMuNiwxNS4zOWE5LjMzLDkuMzMsMCwwLDAtNC40NCwxLjgybDEuNDIsMS40M0E3LjMsNy4zLDAsMCwxLDIwLjc1LDI4LjgxbDEuNDMsMS40M0E5LjI3LDkuMjcsMCwwLDAsMjMsMjAuMThoMi43NGwtLjc3LDYuNTFhMSwx''@;'; + put 'put ''LDAsMCwwLC44NywxLjExaC4xMmExLDEsMCwwLDAsMS0uODhsLjktNy42MmExLDEsMCwwLDAtLjI1LS43OEExLDEsMCwwLDAsMjYuODEsMTguMThaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiAvPicpLEwuQ2xyU2hhcGVBY2Nlc3NpYmlsaXR5Mj0oMCxFLmNscklj''@;'; + put 'put ''b25TVkcpKCc8cGF0aCBkPSJNMzAuMDYsMTFoLTI0YTEsMSwwLDEsMCwwLDJIMTR2OS42NXMwLDAsMCwwbC0zLjc1LDEwYTEsMSwwLDAsMCwuNTgsMS4yOSwxLjEzLDEuMTMsMCwwLDAsLjM2LjA2LDEsMSwwLDAsMCwuOTMtLjY1TDE1LjYyLDI0aDQuNzZsMy41Miw5LjM1YTEsMSwwLDAsMCwu''@;'; + put 'put ''OTMuNjUsMS4xMywxLjEzLDAsMCwwLC4zNi0uMDYsMSwxLDAsMCwwLC41OC0xLjI5TDIyLDIyLjY4czAsMCwwLDBWMTNoOC4wNmExLDEsMCwxLDAsMC0yWk0yMCwyMkgxNlYxM2g0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8''@;'; + put 'put ''cGF0aCBkPSJNMTgsMTBhNCw0LDAsMSwwLTQtNEE0LDQsMCwwLDAsMTgsMTBabTAtNmEyLDIsMCwxLDEtMiwyQTIsMiwwLDAsMSwxOCw0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIxNy45NiIgY3k9IjUi''@;'; + put 'put ''IHI9IjMiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAsMTBINmExLDEsMCwwLDAsMCwyaDh2OC4zNnMwLDAsMCwwTDEwLjExLDMzLjE3YTEsMSwwLDAsMCwuNjYsMS4yNSwxLjU1LDEuNTUsMCwwLDAsLjI5LDAsMSwx''@;'; + put 'put ''LDAsMCwwLDEtLjcxbDMuMjktMTAuODRoNS4zOEwyNCwzMy43NWExLDEsMCwwLDAsMSwuNzEsMS41NSwxLjU1LDAsMCwwLC4yOSwwLDEsMSwwLDAsMCwuNjYtMS4yNUwyMiwyMC40czAsMCwwLDBWMTJoOGExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBh''@;'; + put 'put ''dGgtMiIgLz4nKSxMLkNsclNoYXBlU29ydEJ5PSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yOC41NCwxM0g3LjQ2YTEsMSwwLDAsMSwwLTJIMjguNTRhMSwxLDAsMCwxLDAsMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAg''@;'; + put 'put ''PHBhdGggZD0iTTIxLjE3LDE5SDcuNDZhMSwxLDAsMCwxLDAtMkgyMS4xN2ExLDEsMCwwLDEsMCwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTMuNzQsMjVINy40NmExLDEsMCwwLDEsMC0yaDYuMjhhMSwx''@;'; + put 'put ''LDAsMCwxLDAsMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPicpLEwuQ2xyU2hhcGVDb2xsYXBzZUNhcmQ9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMzLDIxSDNhMSwxLDAsMCwwLTEsMXY2YTEsMSwwLDAsMCwxLDFIMzNhMSwxLDAsMCwwLDEt''@;'; + put 'put ''MVYyMkExLDEsMCwwLDAsMzMsMjFabS0xLDZINFYyM0gzMloiICBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDIwLjIybDUuNjUtNS42NWEuODEuODEsMCwwLDAsMC0xLjE0LjguOCwwLDAsMC0xLjEzLDBMMTgs''@;'; + put 'put ''MThsLTQuNTItNC41MmEuOC44LDAsMCwwLTEuMTMsMCwuODEuODEsMCwwLDAsMCwxLjE0WiIgIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMTQuMjJsNS42NS01LjY1YS44MS44MSwwLDAsMCwwLTEuMTQuOC44''@;'; + put 'put ''LDAsMCwwLTEuMTMsMEwxOCwxMiwxMy40OCw3LjQzYS44LjgsMCwwLDAtMS4xMywwLC44MS44MSwwLDAsMCwwLDEuMTRaIiAgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjIiIHk9IjIyIiB3aWR0aD0iMzIiIGhlaWdo''@;'; + put 'put ''dD0iOCIgcng9IjEiIHJ5PSIxIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDIwLjdsLTUuNzktNS43OWExLDEsMCwwLDEsMC0xLjQxLDEsMSwwLDAsMSwxLjQxLDBMMTgsMTcuODdsNC4zOC00LjM3YTEsMSwwLDAs''@;'; + put 'put ''MSwxLjQxLDAsMSwxLDAsMCwxLDAsMS40MVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMTQuNSwxMi4yMSw4LjcxYTEsMSwwLDAsMSwwLTEuNDIsMSwxLDAsMCwxLDEuNDEsMEwxOCwxMS42N2w0LjM4LTQuMzhh''@;'; + put 'put ''MSwxLDAsMCwxLDEuNDEsMCwxLDEsMCwwLDEsMCwxLjQyWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIgLz4nKSxMLkNsclNoYXBlRXhwYW5kQ2FyZD0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzMsNkgzQTEsMSwwLDAsMCwyLDdWMjlhMSwxLDAsMCwwLDEs''@;'; + put 'put ''MUgzM2ExLDEsMCwwLDAsMS0xVjdBMSwxLDAsMCwwLDMzLDZaTTMyLDI4SDRWOEgzMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTMuNDgsMTUuODYsMTgsMTEuMzRsNC41Miw0LjUyYS43Ny43NywwLDAsMCwu''@;'; + put 'put ''NTYuMjQuODEuODEsMCwwLDAsLjU3LTEuMzdMMTgsOS4wOGwtNS42NSw1LjY1YS44LjgsMCwxLDAsMS4xMywxLjEzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMy40OCwyMS44NiwxOCwxNy4zNGw0LjUyLDQu''@;'; + put 'put ''NTJhLjc3Ljc3LDAsMCwwLC41Ni4yNC44MS44MSwwLDAsMCwuNTctMS4zN0wxOCwxNS4wOGwtNS42NSw1LjY1YS44LjgsMCwxLDAsMS4xMywxLjEzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMyw2SDNBMSwx''@;'; + put 'put ''LDAsMCwwLDIsN1YyOWExLDEsMCwwLDAsMSwxSDMzYTEsMSwwLDAsMCwxLTFWN0ExLDEsMCwwLDAsMzMsNlpNMjMuNzksMjEuNDFhMSwxLDAsMCwxLTEuNDEsMEwxOCwxN2wtNC4zOCw0LjM4YTEsMSwwLDAsMS0xLjQxLDAsMSwxLDAsMCwxLDAtMS40MkwxOCwxNC4yLDIzLjc5LDIwQTEsMSww''@;'; + put 'put ''LDAsMSwyMy43OSwyMS40MVptMC02LjJhMSwxLDAsMCwxLTEuNDEsMEwxOCwxMC44M2wtNC4zOCw0LjM4YTEsMSwwLDAsMS0xLjQxLDAsMSwxLDAsMCwxLDAtMS40MkwxOCw4bDUuNzksNS43OUExLDEsMCwwLDEsMjMuNzksMTUuMjFaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQt''@;'; + put 'put ''cGF0aC0xIiAvPicpLEwuQ2xyU2hhcGVCcmllZmNhc2U9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMyLDI4YTAsMCwwLDAsMSwwLDBINFYyMS4zMmE3LjEsNy4xLDAsMCwxLTItMS40M1YyOGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMTkuODlhNi43NCw2Ljc0LDAsMCwx''@;'; + put 'put ''LTIsMS40MloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuPHBhdGggZD0iTTI1LDIyLjRhMSwxLDAsMCwwLDEtMVYxNS45NEgyNFYxOEgxNHYySDI0djEuNEExLDEsMCwwLDAsMjUsMjIuNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxp''@;'; + put 'put ''bmUtcGF0aC0yIiAvPlxuPHBhdGggZD0iTTMzLDZIMjRWNC4zOEEyLjQyLDIuNDIsMCwwLDAsMjEuNTUsMmgtNy4xQTIuNDIsMi40MiwwLDAsMCwxMiw0LjM4VjZIM0ExLDEsMCwwLDAsMiw3djhhNSw1LDAsMCwwLDUsNWgzdjEuNGExLDEsMCwwLDAsMiwwVjE1Ljk0SDEwVjE4SDdhMywzLDAs''@;'; + put 'put ''MCwxLTMtM1Y4SDMydjdhMywzLDAsMCwxLTMsM0gyOHYyaDFhNSw1LDAsMCwwLDUtNVY3QTEsMSwwLDAsMCwzMyw2Wk0yMiw2SDE0VjQuNDNBLjQ1LjQ1LDAsMCwxLDE0LjQ1LDRoNy4xMWEuNDMuNDMsMCwwLDEsLjQ0LjQyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1w''@;'; + put 'put ''YXRoLTMiIC8+XG48cGF0aCBkPSJNMzAsMThBNC4wNiw0LjA2LDAsMCwwLDM0LDE0VjZIMjRWNC40M0EyLjQ0LDIuNDQsMCwwLDAsMjEuNTUsMmgtNy4xQTIuNDQsMi40NCwwLDAsMCwxMiw0LjQzVjZIMnY4QTQuMDYsNC4wNiwwLDAsMCw2LjA1LDE4aDRWMTUuOTJoMnY1LjdhMSwxLDAsMSwx''@;'; + put 'put ''LTIsMFYyMC4wNkg2LjA2QTYuMDYsNi4wNiwwLDAsMSwyLDE4LjQ5djkuNDVhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjE4LjQ5YTYsNiwwLDAsMS00LjA2LDEuNTdIMjhWMThaTTE0LDQuNDNBLjQ1LjQ1LDAsMCwxLDE0LjQ1LDRoNy4xYS40NS40NSwwLDAsMSwuNDUuNDNWNkgx''@;'; + put 'put ''NFpNMjYsMjEuNjJhMSwxLDAsMSwxLTIsMFYyMC4wNkgxNFYxOEgyNFYxNS45MmgyWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz4nKSxMLkNsclNoYXBlQ29sb3JQaWNrZXI9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMzLDEwLjA1YTUuMDcsNS4wNyww''@;'; + put 'put ''LDAsMCwuMS03LjE3QTUuMDYsNS4wNiwwLDAsMCwyNiwzTDIwLjc4LDguMTVhMi4xMywyLjEzLDAsMCwxLTMsMGwtLjY3LS42N0wxNS43Miw4LjkyLDI3LjA4LDIwLjI4bDEuNDItMS40Mi0uNjctLjY3YTIuMTMsMi4xMywwLDAsMSwwLTNaTTI2LjQ0LDEzLjhhNC4wNyw0LjA3LDAsMCwwLTEu''@;'; + put 'put ''MDgsMS45MmwtNS4wOC01LjA4QTQuMDcsNC4wNywwLDAsMCwyMi4yLDkuNTZsNS4xNi01LjE3YTMuMDksMy4wOSwwLDAsMSw0LjM1LS4xLDMuMDksMy4wOSwwLDAsMS0uMSw0LjM1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG48cGF0aCBkPSJNNy4z''@;'; + put 'put ''LDMxLjUxYTIsMiwwLDEsMS0yLjgzLTIuODNMMTguNTgsMTQuNTdsLTEuNDItMS40MUwzLjA1LDI3LjI3YTQsNCwwLDAsMC0uNjgsNC44TC44OSwzMy41NUExLDEsMCwwLDAsLjg5LDM1YTEsMSwwLDAsMCwxLjQyLDBsMS40My0xLjQ0YTMuOTMsMy45MywwLDAsMCwyLjA5LjYsNC4wNiw0LjA2''@;'; + put 'put ''LDAsMCwwLDIuODgtMS4yTDIyLjgyLDE4LjgxLDIxLjQxLDE3LjRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbjxwYXRoIGQ9Ik0zMy43MywyLjExYTQuMDksNC4wOSwwLDAsMC01Ljc2LjFMMjIuODEsNy4zOGEzLjEzLDMuMTMsMCwwLDEtNC4zLjEx''@;'; + put 'put ''TDE3LjA5LDguOTEsMjcsMTguNzlsMS40Mi0xLjQyQTMuMTgsMy4xOCwwLDAsMSwyOC40NiwxM2w1LjE3LTUuMTdBNC4wOCw0LjA4LDAsMCwwLDMzLjczLDIuMTFaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuPHBhdGggZD0iTTIyLjE4LDE2Ljc5LDcuNDYs''@;'; + put 'put ''MzEuNTFhMiwyLDAsMSwxLTIuODItMi44M0wxOS4zNSwxNGwtMS40MS0xLjQxTDMuMjIsMjcuMjdhNCw0LDAsMCwwLS42OCw0LjhMMS4wNiwzMy41NWExLDEsMCwwLDAsMCwxLjQxLDEsMSwwLDAsMCwxLjQxLDBsMS40NC0xLjQ0YTMuOTMsMy45MywwLDAsMCwyLjA5LjYsNC4wNiw0LjA2LDAs''@;'; + put 'put ''MCwwLDIuODgtMS4yTDIzLjYsMTguMjFaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPicpLEwuQ2xyU2hhcGVDb3B5VG9DbGlwYm9hcmQ9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTIyLjYsNEgyMS41NWEzLjg5LDMuODksMCwwLDAtNy4zMSwwSDEzLjRB''@;'; + put 'put ''Mi40MSwyLjQxLDAsMCwwLDExLDYuNFYxMEgyNVY2LjRBMi40MSwyLjQxLDAsMCwwLDIyLjYsNFpNMjMsOEgxM1Y2LjI1QS4yNS4yNSwwLDAsMSwxMy4yNSw2aDIuNjlsLjEyLTEuMTFBMS4yNCwxLjI0LDAsMCwxLDE2LjYxLDRhMiwyLDAsMCwxLDMuMTUsMS4xOGwuMDkuODRoMi45YS4yNS4y''@;'; + put 'put ''NSwwLDAsMSwuMjUuMjVaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbjxwYXRoIGQ9Ik0zMy4yNSwxOC4wNkgyMS4zM2wyLjg0LTIuODNhMSwxLDAsMSwwLTEuNDItMS40MkwxNy41LDE5LjA2bDUuMjUsNS4yNWExLDEsMCwwLDAsLjcxLjI5LDEsMSww''@;'; + put 'put ''LDAsMCwuNzEtMS43bC0yLjg0LTIuODRIMzMuMjVhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuPHBhdGggZD0iTTI5LDE2aDJWNi42OEExLjY2LDEuNjYsMCwwLDAsMjkuMzUsNUgyNy4wOFY3SDI5WiIgY2xhc3M9ImNsci1p''@;'; + put 'put ''LW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+XG48cGF0aCBkPSJNMjksMzFIN1Y3SDlWNUg2LjY0QTEuNjYsMS42NiwwLDAsMCw1LDYuNjdWMzEuMzJBMS42NiwxLjY2LDAsMCwwLDYuNjUsMzNIMjkuMzZBMS42NiwxLjY2LDAsMCwwLDMxLDMxLjMzVjIyLjA2SDI5WiIgY2xhc3M9''@;'; + put 'put ''ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+JyksTC5DbHJTaGFwZURyYWdIYW5kbGU9KDAsRS5jbHJJY29uU1ZHKSgnPGNpcmNsZSBjeD0iMTUiIGN5PSIxMiIgcj0iMS41IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48Y2lyY2xl''@;'; + put 'put ''IGN4PSIxNSIgY3k9IjI0IiByPSIxLjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxjaXJjbGUgY3g9IjIxIiBjeT0iMTIiIHI9IjEuNSIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+PGNpcmNsZSBjeD0iMjEiIGN5''@;'; + put 'put ''PSIyNCIgcj0iMS41IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz48Y2lyY2xlIGN4PSIyMSIgY3k9IjE4IiByPSIxLjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiAvPjxjaXJjbGUgY3g9IjE1IiBjeT0iMTgiIHI9IjEu''@;'; + put 'put ''NSIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIC8+JyksTC5DbHJTaGFwZUZpbHRlcjI9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMzLDExSDNhMSwxLDAsMCwwLDAsMkgzM2ExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWkt''@;'; + put 'put ''b3V0bGluZS1wYXRoLTEiIC8+XG48cGF0aCBkPSJNMjgsMTdIOGExLDEsMCwwLDAsMCwySDI4YTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbjxwYXRoIGQ9Ik0yMywyM0gxM2ExLDEsMCwwLDAsMCwySDIzYTEsMSwwLDAsMCww''@;'; + put 'put ''LTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz4nKSxMLkNsclNoYXBlTW9vbj0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzEsMjcuMTlhMSwxLDAsMCwwLTEtLjU2Yy0uMjgsMC0uNTYsMC0uODUsMEExMSwxMSwwLDAsMSwyNC45Miw1LjYxYTEs''@;'; + put 'put ''MSwwLDAsMCwuNjEtMSwxLDEsMCwwLDAtLjY3LS45MSwxNC43LDE0LjcsMCwwLDAtNS0uODcsMTUuMTIsMTUuMTIsMCwwLDAsMCwzMC4yNCwxNC43OCwxNC43OCwwLDAsMCwxMS00LjgxQTEsMSwwLDAsMCwzMSwyNy4xOVpNMTkuODksMzEuMTJhMTMuMTIsMTMuMTIsMCwwLDEsMC0yNi4yNCwx''@;'; + put 'put ''MS44MSwxMS44MSwwLDAsMSwyLC4xNiwxMywxMywwLDAsMCw1LjcyLDIzLjUzQTEyLjc1LDEyLjc1LDAsMCwxLDE5Ljg5LDMxLjEyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG48cGF0aCBkPSJNMjkuMiwyNi43MkExMi4wNywxMi4wNywwLDAsMSwy''@;'; + put 'put ''Mi45LDQuNDQsMTMuNjgsMTMuNjgsMCwwLDAsMTkuNDksNGExNCwxNCwwLDAsMCwwLDI4LDEzLjgyLDEzLjgyLDAsMCwwLDEwLjktNS4zNEExMS43MSwxMS43MSwwLDAsMSwyOS4yLDI2LjcyWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz4nKSxMLkNsclNoYXBl''@;'; + put 'put ''U3VuPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xOCw2LjMxYTEsMSwwLDAsMCwxLTFWMS45MWExLDEsMCwwLDAtMiwwdjMuNEExLDEsMCwwLDAsMTgsNi4zMVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuPHBhdGggZD0iTTE4LDI5LjY5YTEs''@;'; + put 'put ''MSwwLDAsMC0xLDF2My40YTEsMSwwLDAsMCwyLDB2LTMuNEExLDEsMCwwLDAsMTgsMjkuNjlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbjxwYXRoIGQ9Ik04LjMyLDkuNzRBMSwxLDAsMCwwLDksMTBhMSwxLDAsMCwwLC43MS0uMjksMSwxLDAsMCww''@;'; + put 'put ''LDAtMS40Mkw3LjMzLDUuOTJBMSwxLDAsMCwwLDUuOTIsNy4zM1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0yNy42OCwyNi4yNmExLDEsMCwxLDAtMS40MiwxLjQybDIuNDEsMi40YTEsMSwwLDAsMCwuNzEuMywxLDEsMCwwLDAsLjct''@;'; + put 'put ''LjMsMSwxLDAsMCwwLDAtMS40MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPjxwYXRoIGQ9Ik02LjMxLDE4YTEsMSwwLDAsMC0xLTFIMS45MWExLDEsMCwwLDAsMCwyaDMuNEExLDEsMCwwLDAsNi4zMSwxOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNs''@;'; + put 'put ''ci1pLW91dGxpbmUtcGF0aC01IiAvPjxwYXRoIGQ9Ik0zNC4wOSwxN2gtMy40YTEsMSwwLDEsMCwwLDJoMy40YTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIgLz48cGF0aCBkPSJNOC4zMiwyNi4yNmwtMi40LDIuNDFhMSwxLDAsMCww''@;'; + put 'put ''LC43LDEuNzEsMSwxLDAsMCwwLC43MS0uM2wyLjQxLTIuNGExLDEsMCwxLDAtMS40Mi0xLjQyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTciIC8+PHBhdGggZD0iTTI3LDEwYTEsMSwwLDAsMCwuNzEtLjI5bDIuNC0yLjQxYTEsMSwwLDAsMCwwLTEuNDEsMSwx''@;'; + put 'put ''LDAsMCwwLTEuNDEsMGwtMi40MSwyLjRhMSwxLDAsMCwwLDAsMS40MkExLDEsMCwwLDAsMjcsMTBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtOCIgLz48cGF0aCBkPSJNMTguMTMsNy43NWExMC4xMywxMC4xMywwLDEsMCwxMCwxMC4xM0ExMC4wOCwxMC4wOCww''@;'; + put 'put ''LDAsMCwxOC4xMyw3Ljc1Wm0wLDE4LjI1YTguMTMsOC4xMywwLDEsMSw4LTguMTJBOC4wOCw4LjA4LDAsMCwxLDE4LjEzLDI2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTkiIC8+PHBhdGggZD0iTTE4LDYuNDJhMSwxLDAsMCwwLDEtMVYxLjkxYTEsMSwwLDAs''@;'; + put 'put ''MC0yLDBWNS40MkExLDEsMCwwLDAsMTgsNi40MloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+PHBhdGggZD0iTTE4LDI5LjU4YTEsMSwwLDAsMC0xLDF2My41MWExLDEsMCwwLDAsMiwwVjMwLjU4QTEsMSwwLDAsMCwxOCwyOS41OFoiIGNsYXNzPSJjbHItaS1z''@;'; + put 'put ''b2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+PHBhdGggZD0iTTguNCw5LjgxQTEsMSwwLDAsMCw5LjgxLDguNEw3LjMzLDUuOTJBMSwxLDAsMCwwLDUuOTIsNy4zM1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIC8+PHBhdGggZD0iTTI3LjYsMjYuMTlhMSwxLDAs''@;'; + put 'put ''MCwwLTEuNDEsMS40MWwyLjQ4LDIuNDhhMSwxLDAsMCwwLDEuNDEtMS40MVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTQiIC8+PHBhdGggZD0iTTYuNDIsMThhMSwxLDAsMCwwLTEtMUgxLjkxYTEsMSwwLDAsMCwwLDJINS40MkExLDEsMCwwLDAsNi40MiwxOFoiIGNs''@;'; + put 'put ''YXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTUiIC8+PHBhdGggZD0iTTM0LjA5LDE3SDMwLjU4YTEsMSwwLDAsMCwwLDJoMy41MWExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNiIgLz48cGF0aCBkPSJNOC40LDI2LjE5LDUuOTIs''@;'; + put 'put ''MjguNjdhMSwxLDAsMCwwLDEuNDEsMS40MUw5LjgxLDI3LjZBMSwxLDAsMCwwLDguNCwyNi4xOVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTciIC8+PHBhdGggZD0iTTI3LjYsOS44MWwyLjQ4LTIuNDhhMSwxLDAsMCwwLTEuNDEtMS40MUwyNi4xOSw4LjRBMSwxLDAs''@;'; + put 'put ''MCwwLDI3LjYsOS44MVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTgiIC8+PGNpcmNsZSBjeD0iMTgiIGN5PSIxOCIgcj0iMTAiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTkiIC8+JyksTC5DbHJTaGFwZVdhbmQ9KDAsRS5jbHJJY29uU1ZHKSgn''@;'; + put 'put ''PHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zNC4xLDQsMzEuNzEsMS42YTEuODMsMS44MywwLDAsMC0xLjMxLS41NGgwYTIuMDUsMi4wNSwwLDAsMC0xLjQ1LjYyTDEuNzYsMjkuMjNBMiwyLDAsMCwwLDEuNjgsMzJsMi40LDIuNDNBMS44Mywx''@;'; + put 'put ''LjgzLDAsMCwwLDUuMzksMzVoMGEyLjA1LDIuMDUsMCwwLDAsMS40NS0uNjJMMzQsNi43OUEyLDIsMCwwLDAsMzQuMSw0Wk01LjQyLDMyLjkzLDMuMTYsMzAuNjVoMEwyNC4xMSw5LjQzbDIuMjUsMi4yOFpNMzIuNjEsNS4zOWwtNS4xMiw1LjE4TDI1LjI0LDguMjlsNS4xMy01LjIsMi4yNSwy''@;'; + put 'put ''LjI4WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0zMi41MywyMC40N2wyLjA5LTIuMDlhLjguOCwwLDAsMC0xLjEzLTEuMTNsLTIuMDksMi4wOS0yLjA5LTIuMDlhLjguOCwwLDAsMC0xLjEzLDEuMTNsMi4wOSwy''@;'; + put 'put ''LjA5LTIuMDksMi4wOWEuOC44LDAsMCwwLDEuMTMsMS4xM2wyLjA5LTIuMDksMi4wOSwyLjA5YS44LjgsMCwwLDAsMS4xMy0xLjEzWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIGQ9Ik0xNC43OCw2LjUxYS44LjgsMCww''@;'; + put 'put ''LDAsMS4xMywwTDE3LjQsNWwxLjQ5LDEuNDlBLjguOCwwLDAsMCwyMCw1LjM4TDE4LjU0LDMuODksMjAsMi40YS44LjgsMCwwLDAtMS4xMy0xLjEzTDE3LjQsMi43NiwxNS45MSwxLjI3QS44LjgsMCwxLDAsMTQuNzgsMi40bDEuNDksMS40OUwxNC43OCw1LjM4QS44LjgsMCwwLDAsMTQuNzgs''@;'; + put 'put ''Ni41MVoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiBkPSJNOC4zMywxNS4yNmEuOC44LDAsMCwwLDEuMTMsMGwxLjE2LTEuMTYsMS4xNiwxLjE2YS44LjgsMCwxLDAsMS4xMy0xLjEzTDExLjc2LDEzbDEuMTYtMS4xNmEu''@;'; + put 'put ''OC44LDAsMSwwLTEuMTMtMS4xM2wtMS4xNiwxLjE2TDkuNDYsMTAuNjhhLjguOCwwLDEsMC0xLjEzLDEuMTNMOS40OSwxMyw4LjMzLDE0LjEzQS44LjgsMCwwLDAsOC4zMywxNS4yNloiLz4nKSxMLkNsclNoYXBlQ3Vyc29yTW92ZT0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjguODUs''@;'; + put 'put ''MTIuODlhMSwxLDAsMCwwLTEuNDIsMCwxLDEsMCwwLDAsMCwxLjQxTDMwLjE0LDE3SDE5VjUuODZsMi42OSwyLjdhMSwxLDAsMCwwLDEuNDEsMCwxLDEsMCwwLDAsMC0xLjQyTDE4LDIsMTIuODksNy4xNWExLDEsMCwwLDAtLjI5LjcxLDEsMSwwLDAsMCwxLjcxLjdMMTcsNS44NlYxN0g1Ljg2''@;'; + put 'put ''bDIuNy0yLjY5YTEsMSwwLDAsMCwwLTEuNDEsMSwxLDAsMCwwLTEuNDIsMEwyLDE4bDUuMTQsNS4xMWExLDEsMCwwLDAsLjcxLjI5LDEsMSwwLDAsMCwuNy0xLjcxTDUuODYsMTlIMTdWMzAuMTRsLTIuNjktMi43YTEsMSwwLDAsMC0xLjcxLjcsMSwxLDAsMCwwLC4yOS43MUwxOCwzNGw1LjEx''@;'; + put 'put ''LTUuMTRhMSwxLDAsMCwwLDAtMS40MiwxLDEsMCwwLDAtMS40MSwwTDE5LDMwLjE0VjE5SDMwLjE0bC0yLjcsMi42OWExLDEsMCwwLDAsLjcsMS43MSwxLDEsMCwwLDAsLjcxLS4yOUwzNCwxOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPicpLEwuQ2xy''@;'; + put 'put ''U2hhcGVDbG9uZT0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNNiw2SDIydjRoMlY2YTIsMiwwLDAsMC0yLTJINkEyLDIsMCwwLDAsNCw2VjIyYTIsMiwwLDAsMCwyLDJoNFYyMkg2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTMw''@;'; + put 'put ''LDEySDE0YTIsMiwwLDAsMC0yLDJWMzBhMiwyLDAsMCwwLDIsMkgzMGEyLDIsMCwwLDAsMi0yVjE0QTIsMiwwLDAsMCwzMCwxMlptMCwxOEgxNFYxNEgzMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwb2x5Z29uIHBvaW50cz0iMjEgMjggMjMgMjgg''@;'; + put 'put ''MjMgMjMgMjggMjMgMjggMjEgMjMgMjEgMjMgMTYgMjEgMTYgMjEgMjEgMTYgMjEgMTYgMjMgMjEgMjMgMjEgMjgiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0yNCwxMFY2YTIsMiwwLDAsMC0yLTJINkEyLDIsMCwwLDAsNCw2VjIyYTIs''@;'; + put 'put ''MiwwLDAsMCwyLDJoNFYxMmEyLDIsMCwwLDEsMi0yWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz48cGF0aCBkPSJNMzAsMTJIMTRhMiwyLDAsMCwwLTIsMlYzMGEyLDIsMCwwLDAsMiwySDMwYTIsMiwwLDAsMCwyLTJWMTRBMiwyLDAsMCwwLDMwLDEyWk0yOCwy''@;'; + put 'put ''M0gyM3Y1SDIxVjIzSDE2VjIxaDVWMTZoMnY1aDVaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPicpLEwuQ2xyU2hhcGVEZXRhaWxzPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMiw2SDRBMiwyLDAsMCwwLDIsOFYyOGEyLDIsMCwwLDAsMiwySDMyYTIs''@;'; + put 'put ''MiwwLDAsMCwyLTJWOEEyLDIsMCwwLDAsMzIsNlptMCwyMkg0VjhIMzJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNOSwxNEgyN2ExLDEsMCwwLDAsMC0ySDlhMSwxLDAsMCwwLDAsMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1p''@;'; + put 'put ''LW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik05LDE4SDI3YTEsMSwwLDAsMCwwLTJIOWExLDEsMCwwLDAsMCwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+PHBhdGggZD0iTTksMjJIMTlhMSwxLDAsMCwwLDAtMkg5YTEsMSwwLDAsMCwwLDJaIiBj''@;'; + put 'put ''bGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz48cGF0aCBkPSJNMzIsNkg0QTIsMiwwLDAsMCwyLDhWMjhhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjhBMiwyLDAsMCwwLDMyLDZaTTE5LDIySDlhMSwxLDAsMCwxLDAtMkgxOWExLDEsMCwwLDEsMCwy''@;'; + put 'put ''Wm04LTRIOWExLDEsMCwwLDEsMC0ySDI3YTEsMSwwLDAsMSwwLDJabTAtNEg5YTEsMSwwLDAsMSwwLTJIMjdhMSwxLDAsMCwxLDAsMloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+JyksTC5DbHJTaGFwZURyYWdIYW5kbGVDb3JuZXI9KDAsRS5jbHJJY29uU1ZH''@;'; + put 'put ''KSgnPGNpcmNsZSBjeD0iMTIiIGN5PSIyNCIgcj0iMS41IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48Y2lyY2xlIGN4PSIxOCIgY3k9IjI0IiByPSIxLjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxjaXJjbGUg''@;'; + put 'put ''Y3g9IjE4IiBjeT0iMTgiIHI9IjEuNSIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+PGNpcmNsZSBjeD0iMjQiIGN5PSIxMiIgcj0iMS41IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz48Y2lyY2xlIGN4PSIyNCIgY3k9''@;'; + put 'put ''IjI0IiByPSIxLjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiAvPjxjaXJjbGUgY3g9IjI0IiBjeT0iMTgiIHI9IjEuNSIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIC8+JyksTC5DbHJTaGFwZUVyYXNlcj0oMCxFLmNscklj''@;'; + put 'put ''b25TVkcpKCc8cGF0aCBkPSJNMzUuNjIsMTJhMi44MiwyLjgyLDAsMCwwLS44NC0yTDI3LjQ5LDIuNjVhMi45LDIuOSwwLDAsMC00LDBMMi44MywyMy4yOGEyLjg0LDIuODQsMCwwLDAsMCw0TDcuNTMsMzJIM2ExLDEsMCwwLDAsMCwySDI4YTEsMSwwLDAsMCwwLTJIMTYuNzRsMTgtMThBMi44''@;'; + put 'put ''MiwyLjgyLDAsMCwwLDM1LjYyLDEyWk0xMy45MSwzMkgxMC4zNkw0LjI1LDI1Ljg5YS44NC44NCwwLDAsMSwwLTEuMTlsNS41MS01LjUyLDguNDksOC40OFpNMzMuMzcsMTIuNTQsMTkuNjYsMjYuMjVsLTguNDgtOC40OSwxMy43LTEzLjdhLjg2Ljg2LDAsMCwxLDEuMTksMGw3LjMsNy4yOWEu''@;'; + put 'put ''ODYuODYsMCwwLDEsLjI1LjZBLjgyLjgyLDAsMCwxLDMzLjM3LDEyLjU0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTI4LDMySDE1LjMzTDE5LDI4LjM3bC05LjktOS45TDMuNTQsMjRhMS44MywxLjgzLDAsMCwwLDAsMi42TDksMzJI''@;'; + put 'put ''M2ExLDEsMCwwLDAsMCwySDI4YTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0zNC4wOCwxMC42NWwtNy4zLTcuM2ExLjgzLDEuODMsMCwwLDAtMi42LDBMMTAuNDcsMTcuMDZsOS45LDkuOUwzNC4wOCwxMy4yNUExLjg1''@;'; + put 'put ''LDEuODUsMCwwLDAsMzQuMDgsMTAuNjVaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPicpLEwuQ2xyU2hhcGVMYW5kc2NhcGU9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMyLDZINEEyLDIsMCwwLDAsMiw4VjI4YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAs''@;'; + put 'put ''MCwwLDItMlY4QTIsMiwwLDAsMCwzMiw2Wm0wLDIySDRWOEgzMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik05LDIyYS44Mi44MiwwLDAsMCwuNTUtLjIxLjguOCwwLDAsMCwwLTEuMTNMNy44MywxOC44SDI4LjE3bC0xLjcyLDEuODZh''@;'; + put 'put ''LjguOCwwLDAsMCwwLDEuMTNBLjgyLjgyLDAsMCwwLDI3LDIyYS43OC43OCwwLDAsMCwuNTgtLjI2TDMxLjA5LDE4bC0zLjQ3LTMuNzRhLjc5Ljc5LDAsMCwwLTEuMTMsMCwuOC44LDAsMCwwLDAsMS4xM2wxLjcyLDEuODZINy44M2wxLjcyLTEuODZhLjguOCwwLDAsMCwwLTEuMTMuNzkuNzks''@;'; + put 'put ''MCwwLDAtMS4xMywwTDQuOTEsMThsMy40NywzLjc0QS43OC43OCwwLDAsMCw5LDIyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTMyLDZINEEyLDIsMCwwLDAsMiw4VjI4YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlY4QTIs''@;'; + put 'put ''MiwwLDAsMCwzMiw2Wk0yNy43NywyMS44OGExLDEsMCwwLDEtLjczLjMyLDEsMSwwLDAsMS0uNjgtLjI3LDEsMSwwLDAsMS0uMDYtMS40MUwyNy43MSwxOUg4LjI5TDkuNywyMC41MmExLDEsMCwwLDEtLjA2LDEuNDFBMSwxLDAsMCwxLDksMjIuMmExLDEsMCwwLDEtLjczLS4zMkw0LjY0LDE4''@;'; + put 'put ''bDMuNTktMy44OEExLDEsMCwwLDEsOS43LDE1LjQ4TDguMjksMTdIMjcuNzFMMjYuMywxNS40OGExLDEsMCwwLDEsMS40Ny0xLjM2TDMxLjM2LDE4WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz4nKSxMLkNsclNoYXBlUGFzdGU9KDAsRS5jbHJJY29uU1ZHKSgn''@;'; + put 'put ''PHBhdGggZD0iTTMwLDEySDI2djJoNHYyaDJWMTRBMiwyLDAsMCwwLDMwLDEyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHJlY3QgeD0iMzAiIHk9IjE4IiB3aWR0aD0iMiIgaGVpZ2h0PSI2IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRs''@;'; + put 'put ''aW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMzAsMzBIMjh2MmgyYTIsMiwwLDAsMCwyLTJWMjZIMzBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz48cGF0aCBkPSJNMjQsMjJWNmEyLDIsMCwwLDAtMi0ySDZBMiwyLDAsMCwwLDQsNlYyMmEyLDIsMCwwLDAs''@;'; + put 'put ''MiwySDIyQTIsMiwwLDAsMCwyNCwyMlpNNiw2SDIyVjIySDZaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz48cmVjdCB4PSIyMCIgeT0iMzAiIHdpZHRoPSI2IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01''@;'; + put 'put ''IiAvPjxwYXRoIGQ9Ik0xNCwyNkgxMnY0YTIsMiwwLDAsMCwyLDJoNFYzMEgxNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02IiAvPjxwYXRoIGQ9Ik0zMCwxMkgyNnYyaDR2MmgyVjE0QTIsMiwwLDAsMCwzMCwxMloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHIt''@;'; + put 'put ''aS1zb2xpZC1wYXRoLTEiIC8+PHJlY3QgeD0iMzAiIHk9IjE4IiB3aWR0aD0iMiIgaGVpZ2h0PSI2IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0zMCwzMEgyOHYyaDJhMiwyLDAsMCwwLDItMlYyNkgzMFoiIGNsYXNzPSJjbHItaS1zb2xpZCBj''@;'; + put 'put ''bHItaS1zb2xpZC1wYXRoLTMiIC8+PHJlY3QgeD0iNCIgeT0iNCIgd2lkdGg9IjIwIiBoZWlnaHQ9IjIwIiByeD0iMiIgcnk9IjIiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTQiIC8+PHJlY3QgeD0iMjAiIHk9IjMwIiB3aWR0aD0iNiIgaGVpZ2h0PSIyIiBjbGFzcz0i''@;'; + put 'put ''Y2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC01IiAvPjxwYXRoIGQ9Ik0xNCwyNkgxMnY0YTIsMiwwLDAsMCwyLDJoNFYzMEgxNFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTYiIC8+JyksTC5DbHJTaGFwZVBvcnRyYWl0PSgwLEUuY2xySWNvblNWRykoJzxwYXRo''@;'; + put 'put ''IGQ9Ik0xNS4zNCwyNi40NWEuOC44LDAsMCwwLTEuMTMsMCwuNzkuNzksMCwwLDAsMCwxLjEzTDE4LDMxLjA5bDMuNzQtMy40N2EuNzkuNzksMCwwLDAsLjA1LTEuMTMuOC44LDAsMCwwLTEuMTMsMEwxOC44LDI4LjE3VjcuODNsMS44NiwxLjcyYS44LjgsMCwxLDAsMS4wOC0xLjE3TDE4LDQu''@;'; + put 'put ''OTEsMTQuMjYsOC4zOGEuNzkuNzksMCwwLDAsMCwxLjEzLjguOCwwLDAsMCwxLjEzLDBMMTcuMiw3LjgzVjI4LjE3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTI4LDJIOEEyLDIsMCwwLDAsNiw0VjMyYTIsMiwwLDAsMCwyLDJIMjhh''@;'; + put 'put ''MiwyLDAsMCwwLDItMlY0QTIsMiwwLDAsMCwyOCwyWm0wLDMwSDhWNEgyOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0yOCwySDhBMiwyLDAsMCwwLDYsNFYzMmEyLDIsMCwwLDAsMiwySDI4YTIsMiwwLDAsMCwyLTJWNEEyLDIsMCww''@;'; + put 'put ''LDAsMjgsMlpNMjAuNTIsMjYuM2ExLDEsMCwwLDEsMS4zNiwxLjQ3TDE4LDMxLjM2bC0zLjg4LTMuNTlhMSwxLDAsMCwxLDEuMzYtMS40N0wxNywyNy43MVY4LjI5TDE1LjQ4LDkuN2ExLDEsMCwwLDEtMS4zNi0xLjQ3TDE4LDQuNjRsMy44OCwzLjU5YTEsMSwwLDAsMSwuMDUsMS40MSwxLDEs''@;'; + put 'put ''MCwwLDEtLjczLjMyLDEsMSwwLDAsMS0uNjgtLjI2TDE5LDguMjlWMjcuNzFaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPicpLEwuQ2xyU2hhcGVUcmVlVmlldz0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTUsMzJIMTFhMSwxLDAsMCwxLTEtMVYyN2Ex''@;'; + put 'put ''LDEsMCwwLDEsMS0xaDRhMSwxLDAsMCwxLDEsMXY0QTEsMSwwLDAsMSwxNSwzMlptLTMtMmgyVjI4SDEyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTE1LDE2SDExYTEsMSwwLDAsMC0xLDF2MS4ySDUuOFYxMkg3YTEsMSwwLDAsMCwx''@;'; + put 'put ''LTFWN0ExLDEsMCwwLDAsNyw2SDNBMSwxLDAsMCwwLDIsN3Y0YTEsMSwwLDAsMCwxLDFINC4yVjI5LjhoNi4zNmEuOC44LDAsMCwwLDAtMS42SDUuOFYxOS44SDEwVjIxYTEsMSwwLDAsMCwxLDFoNGExLDEsMCwwLDAsMS0xVjE3QTEsMSwwLDAsMCwxNSwxNlpNNCw4SDZ2Mkg0Wk0xNCwyMEgx''@;'; + put 'put ''MlYxOGgyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTM0LDlhMSwxLDAsMCwwLTEtMUgxMHYySDMzQTEsMSwwLDAsMCwzNCw5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+PHBhdGggZD0iTTMz''@;'; + put 'put ''LDE4SDE4djJIMzNhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPjxwYXRoIGQ9Ik0zMywyOEgxOHYySDMzYTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgLz48cmVjdCB4''@;'; + put 'put ''PSIxMCIgeT0iMjYiIHdpZHRoPSI2IiBoZWlnaHQ9IjYiIHJ4PSIxIiByeT0iMSIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz48cGF0aCBkPSJNMTUsMTZIMTFhMSwxLDAsMCwwLTEsMXYxLjJINS44VjEySDdhMSwxLDAsMCwwLDEtMVY3QTEsMSwwLDAsMCw3LDZI''@;'; + put 'put ''M0ExLDEsMCwwLDAsMiw3djRhMSwxLDAsMCwwLDEsMUg0LjJWMjkuOEgxMWEuOC44LDAsMSwwLDAtMS42SDUuOFYxOS44SDEwVjIxYTEsMSwwLDAsMCwxLDFoNGExLDEsMCwwLDAsMS0xVjE3QTEsMSwwLDAsMCwxNSwxNloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIi''@;'; + put 'put ''IC8+PHBhdGggZD0iTTMzLDhIMTB2MkgzM2ExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIgLz48cGF0aCBkPSJNMzMsMThIMTh2MkgzM2ExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNCIgLz48''@;'; + put 'put ''cGF0aCBkPSJNMzMsMjhIMTh2MkgzM2ExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNSIgLz4nKSxMLkNsclNoYXBlQ3Vyc29ySGFuZEdyYWI9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI4LjA5LDkuNzRhNCw0LDAsMCwwLTEuMTYuMTlj''@;'; + put 'put ''LS4xOS0xLjI0LTEuNTUtMi4xOC0zLjI3LTIuMThBNCw0LDAsMCwwLDIyLjEzLDgsMy4zNywzLjM3LDAsMCwwLDE5LDYuM2EzLjQ1LDMuNDUsMCwwLDAtMi44NywxLjMyLDMuNjUsMy42NSwwLDAsMC0xLjg5LS41MUEzLjA1LDMuMDUsMCwwLDAsMTEsOS44OXYuOTFjLTEuMDYuNC00LjExLDEu''@;'; + put 'put ''OC00LjkxLDQuODRzLjM0LDgsMi42OSwxMS43OGEyNS4yMSwyNS4yMSwwLDAsMCw1LjksNi40MS45LjksMCwwLDAsLjUzLjE3SDI1LjU1YS45Mi45MiwwLDAsMCwuNTUtLjE5LDEzLjEzLDEzLjEzLDAsMCwwLDMuNzUtNi4xM0EyNS44LDI1LjgsMCwwLDAsMzEuNDEsMTh2LTUuNUEzLjA4LDMu''@;'; + put 'put ''MDgsMCwwLDAsMjguMDksOS43NFpNMjkuNjEsMThhMjQsMjQsMCwwLDEtMS40Nyw5LjE1QTEyLjQ2LDEyLjQ2LDAsMCwxLDI1LjIsMzIuMkgxNS40N2EyMy43NSwyMy43NSwwLDAsMS01LjItNS43MmMtMi4zNy0zLjg2LTMtOC4yMy0yLjQ4LTEwLjM5QTUuNyw1LjcsMCwwLDEsMTEsMTIuNzZ2''@;'; + put 'put ''Ny42NWEuOS45LDAsMCwwLDEuOCwwVjkuODljMC0uNDcuNTktMSwxLjQ2LTFzMS40OS41MiwxLjQ5LDF2NS43MmgxLjhWOC44MWMwLS4yOC41OC0uNzEsMS40Ni0uNzFzMS41My40OCwxLjUzLjc1djYuODloMS44VjEwbC4xNy0uMTJhMi4xLDIuMSwwLDAsMSwxLjE4LS4zMmMuOTMsMCwxLjUu''@;'; + put 'put ''NDQsMS41LjY4bDAsNi41SDI3VjExLjg3YTEuOTEsMS45MSwwLDAsMSwxLjEyLS4zM2MuODYsMCwxLjUyLjUxLDEuNTIuOTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz4nKSxMLkNsclNoYXBlQ3Vyc29ySGFuZE9wZW49KDAsRS5jbHJJY29uU1ZHKSgn''@;'; + put 'put ''PHBhdGggZD0iTTMxLjQ2LDguNTdBMy4xMSwzLjExLDAsMCwwLDI3LDUuNzVhMy4xOSwzLjE5LDAsMCwwLTQuNjYtMi42NCwzLjI5LDMuMjksMCwwLDAtNi40Mi0uNzYsMy4yMywzLjIzLDAsMCwwLTEuNjYtLjQ2QTMuMjcsMy4yNywwLDAsMCwxMSw1LjE4VjE3Ljg0Yy0xLjI4LTEuNi0yLjUz''@;'; + put 'put ''LTMuMTgtMi43Mi0zLjQ1QTMuMTksMy4xOSwwLDAsMCw1LjU2LDEyLjlhMy4zNywzLjM3LDAsMCwwLTMuNDcsMy40OEMyLjE4LDE4LjE4LDUuNjYsMjQuNTQsOCwyOGMzLjU0LDUuMjQsNi45Miw2LDcuMDcsNmwuMTgsMEgyNS41OWEuOTIuOTIsMCwwLDAsLjU1LS4xOSwxMy4xMywxMy4xMyww''@;'; + put 'put ''LDAsMCwzLjc1LTYuMTNjMS0zLjA5LDEuNTMtNy41MywxLjU4LTEzLjU2Wk0yOC4xOCwyNy4xMmExMi40NiwxMi40NiwwLDAsMS0yLjk0LDUuMDhIMTUuMzNjLS40Ny0uMTQtMy4wNy0xLjEtNS44Ny01LjI1UzMuOTQsMTcuMjcsMy44OSwxNi4yOWExLjUsMS41LDAsMCwxLC40NS0xLjEzLDEu''@;'; + put 'put ''NTIsMS41MiwwLDAsMSwxLjE0LS40NiwxLjQzLDEuNDMsMCwwLDEsMS4zMi43MWMuMjkuNDMsMi4zNiwzLDMuNTcsNC41M0wxMi44LDE4LjNWNS4xOGExLjQ4LDEuNDgsMCwxLDEsMi45NSwwVjE2LjMyaDEuOHYtMTNhMS41MSwxLjUxLDAsMCwxLDMsMFYxNi40NWgxLjhWNmExLjQzLDEuNDMs''@;'; + put 'put ''MCwxLDEsMi44NSwwVjE3LjQ0SDI3VjguNTRhMS4zMywxLjMzLDAsMCwxLDIuNjUsMHY1LjU1QzI5LjYyLDIwLDI5LjE0LDI0LjIxLDI4LjE4LDI3LjEyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+JyksTC5DbHJTaGFwZUZpbGVaaXA9KDAsRS5jbHJJ''@;'; + put 'put ''Y29uU1ZHKSgnPHBhdGggZD0iTTMwLDMwLjJWMTJsLTguMS03LjlINy44QzYuOCw0LjEsNiw0LjksNiw2YzAsMCwwLDAsMCwwdjI0LjJjMCwxLDAuNywxLjgsMS43LDEuOGMwLDAsMC4xLDAsMC4xLDBoMjAuM1xuXHRcdGMxLDAsMS44LTAuNywxLjgtMS43QzMwLDMwLjMsMzAsMzAuMiwzMCwz''@;'; + put 'put ''MC4yeiBNMjIsNi42bDUuNiw1LjRIMjJWNi42eiBNMjgsMzBINy45TDgsNmgxMnY4aDhWMzB6IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMTIsMjRjMCwxLjcsMS4zLDMsMywzczMtMS4zLDMtM3YtNGgtNlYyNHogTTEzLjQsMjR2LTIu''@;'; + put 'put ''NmgzLjJWMjRjMC4xLDAuOS0wLjYsMS43LTEuNSwxLjdjLTAuOSwwLjEtMS43LTAuNi0xLjctMS41XG5cdFx0QzEzLjQsMjQuMiwxMy40LDI0LjEsMTMuNCwyNHoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0xOC4yLDljMC0wLjYtMC40''@;'; + put 'put ''LTEtMS0xSDE1djJoMi4yQzE3LjgsMTAsMTguMiw5LjYsMTguMiw5eiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+PHBhdGggZD0iTTEyLjcsMTBjLTAuNiwwLTEsMC40LTEsMXMwLjQsMSwxLDFIMTV2LTJIMTIuN3oiIGNsYXNzPSJjbHItaS1vdXRsaW5l''@;'; + put 'put ''IGNsci1pLW91dGxpbmUtcGF0aC00IiAvPjxwYXRoIGQ9Ik0xNy4yLDE0YzAuNiwwLDEtMC40LDEtMXMtMC40LTEtMS0xSDE1djJIMTcuMnoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiAvPjxwYXRoIGQ9Ik0xMS43LDE1YzAsMC42LDAuNCwxLDEsMUgxNXYt''@;'; + put 'put ''MmgtMi4zQzEyLjIsMTQsMTEuNywxNC40LDExLjcsMTV6IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIgLz48cGF0aCBkPSJNMTcuMiwxOGMwLjYsMCwxLTAuNCwxLTFzLTAuNC0xLTEtMUgxNXYySDE3LjJ6IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1v''@;'; + put 'put ''dXRsaW5lLXBhdGgtNyIgLz48cGF0aCBkPSJNMTUsMjUuNmMwLjksMCwxLjYtMC43LDEuNi0xLjZ2LTIuNmgtMy4yVjI0QzEzLjQsMjQuOSwxNC4xLDI1LjYsMTUsMjUuNnoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+PHBhdGggZD0iTTIxLjksNEg3LjhDNi44''@;'; + put 'put ''LDQsNiw0LjksNiw1Ljl2MjQuMmMwLDEsMC44LDEuOSwxLjgsMS45aDIwLjNjMSwwLDEuOC0wLjksMS44LTEuOVYxMS45TDIxLjksNHogTTE4LDI0YzAsMS43LTEuMywzLTMsM1xuXHRcdHMtMy0xLjMtMy0zdi00aDZWMjR6IE0xNy4yLDEyYzAuNiwwLDEsMC40LDEsMXMtMC40LDEtMSwxSDE1''@;'; + put 'put ''djJoMi4yYzAuNiwwLDEsMC40LDEsMXMtMC40LDEtMSwxSDE1di0yaC0yLjJjLTAuNiwwLTEtMC40LTEtMVxuXHRcdHMwLjQtMSwxLTFIMTV2LTJoLTIuMmMtMC42LDAtMS0wLjQtMS0xczAuNC0xLDEtMUgxNVY4aDIuMmMwLjYsMCwxLDAuNCwxLDFzLTAuNCwxLTEsMUgxNXYySDE3LjJ6IE0y''@;'; + put 'put ''MS45LDEyVjYuNWw1LjcsNS41SDIxLjl6IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPicpLEwuQ2xyU2hhcGVGaWx0ZXJPZmY9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTM0LDYuNEMzNCw1LjYsMzMuMyw1LDMyLjUsNUgxMC4zbDIsMkgzMnYwLjZsLTku''@;'; + put 'put ''Niw5LjZsMS40LDEuNEwzMy40LDlDMzMuOCw4LjYsMzQsOC4xLDM0LDcuNlY2LjVDMzQsNi41LDM0LDYuNCwzNCw2LjR6IlxuXHRcdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMi43LDNsMiwyaC0xQzIuOSw0LjksMi4xLDUuNSwyLDYu''@;'; + put 'put ''M3YxLjFjMCwwLjUsMC4yLDEsMC42LDEuNEwxNCwyMC4ydjEwLjNsMS45LDAuOFYxOS40TDQsNy41VjdoMi43TDIwLDIwLjN2MTIuOWwyLDAuOFxuXHRcdGMwLDAsMCwwLDAtMC4xVjIyLjNsMTAuMSwxMC4xbDEuNC0xLjRMNC4xLDEuNkwyLjcsM3oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNs''@;'; + put 'put ''ci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0yMy45LDE4LjZMMTAuMyw1LjFoMjIuMkMzMy4zLDUsMzQsNS42LDM0LDYuNGMwLDAsMCwwLDAsMC4xdjEuMWMwLDAuNS0wLjIsMS0wLjYsMS40TDIzLjksMTguNnoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEi''@;'; + put 'put ''IC8+PHBhdGggZD0iTTMzLjUsMzFMNC4xLDEuNkwyLjYsM2wyLjEsMi4xSDMuNUMyLjcsNSwyLDUuNiwyLDYuNGMwLDAsMCwwLDAsMC4xdjEuMWMwLDAuNSwwLjIsMSwwLjYsMS40TDE0LDIwLjV2MTAuMWw4LDMuNFYyMi40XG5cdGwxMC4xLDEwLjFMMzMuNSwzMXoiIGNsYXNzPSJjbHItaS1z''@;'; + put 'put ''b2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+JyksTC5DbHJTaGFwZVJlY3ljbGU9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTYuNCwxNy40YzAuMiwwLjEsMC4zLDAuMSwwLjUsMC4xYzAuMiwwLDAuNC0wLjEsMC41LTAuMWw3LTQuMWMwLjMtMC4yLDAuNS0wLjUsMC41LTAuOWMwLTAu''@;'; + put 'put ''NC0wLjItMC43LTAuNS0wLjlMMTEuOSwxMFxuXHRcdEwxNCw2LjJjMC40LTAuNywxLTEuMywxLjctMS43YzItMS4xLDQuNS0wLjMsNS42LDEuN2MwLjMsMC41LDAuOSwwLjYsMS40LDAuM2MwLDAsMCwwLDAuMSwwYzAuNC0wLjMsMC41LTAuOSwwLjMtMS4zXG5cdFx0Yy0wLjYtMS0xLjQtMS45''@;'; + put 'put ''LTIuNC0yLjRjLTMtMS42LTYuNy0wLjYtOC4zLDIuNEw5LjYsOS45Yy0wLjMsMC41LTAuMSwxLjEsMC4zLDEuNGwyLDEuMmwtNCwyLjRWOC4yYzAtMC42LTAuNC0xLTEtMVxuXHRcdEM2LjQsNy4zLDYsNy43LDYsOC4zdjguM0M2LDE2LjksNi4yLDE3LjIsNi40LDE3LjR6IiBjbGFzcz0iY2xy''@;'; + put 'put ''LWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMzIuMSwyMWwtMy41LTYuMmMtMC4xLTAuMi0wLjQtMC40LTAuNi0wLjVjLTAuMy0wLjEtMC41LDAtMC44LDAuMWwtMi4yLDEuM1YxMWw1LjUsMy4zYzAuMSwwLDAuMSwwLjEsMC4yLDAuMVxuXHRcdGMwLjUsMC4y''@;'; + put 'put ''LDEuMSwwLDEuMy0wLjVjMC4yLTAuNSwwLTEuMS0wLjUtMS4zbC03LTQuMmMtMC4zLTAuMi0wLjctMC4yLTEsMEMyMy4xLDguNSwyMyw4LjgsMjMsOS4ydjguM2MwLDAuNCwwLjEsMC44LDAuNCwxXG5cdFx0YzAuMywwLjIsMC43LDAuMiwxLDBsMi45LTEuN2wzLDUuM2MwLjcsMS4zLDAuNywy''@;'; + put 'put ''LjgsMCw0LjFjLTAuNiwxLjItMS45LDEuOS0zLjIsMS45aC0wLjljLTAuNSwwLTEuMiwwLjQtMS4yLDFcblx0XHRjMC4xLDAuNiwwLjYsMSwxLjIsMWgwLjljMi4xLDAsNC0xLjEsNS0yLjlDMzMuMiwyNS4yLDMzLjIsMjIuOSwzMi4xLDIxeiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWkt''@;'; + put 'put ''b3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTIyLjQsMjguMmwtNy00LjJjLTAuMy0wLjItMC43LTAuMi0xLDBjLTAuMywwLjItMC40LDAuNS0wLjQsMC45djMuM0g5LjFjLTEuNS0wLjEtMi45LTAuOS0zLjYtMi4zXG5cdFx0Yy0wLjgtMS40LTAuOC0zLjIsMC00LjZjMC4zLTAuNSwwLjEt''@;'; + put 'put ''MS4xLTAuNC0xLjRjLTAuNS0wLjMtMS4xLTAuMS0xLjQsMC40Yy0xLjIsMi4xLTEuMSw0LjYsMC4xLDYuNkM0LjksMjguOCw3LDMwLDkuMiwzMEgxNVxuXHRcdGMwLjYsMCwxLTAuNCwxLTF2LTIuNGw0LDIuNGwtNS42LDMuM2MtMC4zLDAuMi0wLjUsMC41LTAuNSwwLjljMCwwLjYsMC41LDEs''@;'; + put 'put ''MSwxYzAuMiwwLDAuMy0wLjEsMC41LTAuMmw3LTQuMlxuXHRcdGMwLjItMC4xLDAuMy0wLjIsMC40LTAuNEMyMy4xLDI5LDIyLjksMjguNCwyMi40LDI4LjJ6IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz48cGF0aCBkPSJNMjAuOCwzLjFjLTMtMS42LTYu''@;'; + put 'put ''Ny0wLjYtOC40LDIuNGwtMi4yLDMuOGwtMi0xLjFDOC4yLDgsOCw4LDcuOSw4QzcuNCw4LDcsOC40LDcsOC45djcuMmMwLDAuMywwLjEsMC42LDAuNCwwLjhcblx0XHRjMC4xLDAuMSwwLjMsMC4xLDAuNCwwLjFjMC4yLDAsMC4zLDAsMC40LTAuMWw2LjMtMy42YzAuMy0wLjIsMC40LTAuNCww''@;'; + put 'put ''LjQtMC44YzAtMC4zLTAuMi0wLjYtMC40LTAuOEwxMiwxMC4zbDIuMi0zLjhcblx0XHRjMC40LTAuNywxLTEuMywxLjctMS43YzItMS4xLDQuNS0wLjMsNS42LDEuN2MwLjMsMC41LDAuOSwwLjYsMS40LDAuNGMwLjUtMC4zLDAuNi0wLjksMC40LTEuNEMyMi42LDQuNSwyMS44LDMuNiwyMC44''@;'; + put 'put ''LDMuMXoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+PHBhdGggZD0iTTMyLjIsMjEuMWwtMy01LjNsMi4zLTEuM2MwLjMtMC4yLDAuNC0wLjQsMC40LTAuOGMwLTAuMy0wLjItMC42LTAuNC0wLjhsLTYuMi0zLjZjLTAuMS0wLjEtMC4zLTAuMS0wLjQtMC4xXG5c''@;'; + put 'put ''dFx0Yy0wLjUsMC0wLjksMC40LTAuOSwwLjl2Ny4yYzAsMC4zLDAuMiwwLjYsMC40LDAuOGMwLjEsMC4xLDAuMywwLjEsMC40LDAuMWMwLjIsMCwwLjMtMC4xLDAuNC0wLjFsMi4yLTEuM2wzLDUuM1xuXHRcdGMwLjcsMS4yLDAuNywyLjgsMCw0Yy0wLjcsMS4yLTEuOSwxLjktMy4yLDEuOWgt''@;'; + put 'put ''MC45Yy0wLjYsMC0xLDAuNC0xLDFjMCwwLjYsMC40LDEsMSwxaDAuOWMyLjEsMCw0LTEuMSw1LTNcblx0XHRDMzMuMiwyNS4zLDMzLjIsMjMsMzIuMiwyMS4xeiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz48cGF0aCBkPSJNMjEuNywyOC40bC02LjItMy42Yy0w''@;'; + put 'put ''LjEtMC4xLTAuMy0wLjEtMC40LTAuMWMtMC41LDAtMC45LDAuNC0wLjksMC45djIuNkg5LjNjLTEuNSwwLTIuOS0wLjgtMy42LTIuMVxuXHRcdGMtMC44LTEuNC0wLjgtMy4xLDAtNC41YzAuMy0wLjUsMC4xLTEuMS0wLjQtMS40Yy0wLjUtMC4zLTEuMS0wLjEtMS40LDAuNGMtMS4yLDItMS4y''@;'; + put 'put ''LDQuNSwwLDYuNWMxLjEsMS45LDMuMSwzLjEsNS40LDMuMWg0Ljh2Mi42XG5cdFx0YzAsMC4zLDAuMiwwLjYsMC40LDAuOGMwLjEsMC4xLDAuMywwLjEsMC40LDAuMWMwLjEsMCwwLjMsMCwwLjQtMC4xbDYuMy0zLjZjMC4zLTAuMiwwLjQtMC40LDAuNC0wLjhcblx0XHRDMjIuMSwyOC44LDIx''@;'; + put 'put ''LjksMjguNSwyMS43LDI4LjR6IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiAvPicpLEwuQ2xyU2hhcGVUcmVlPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMC42LDExLjdDMjkuMiw1LjgsMjQsMS43LDE4LDEuN2MtNy4yLDAtMTMsNS44LTEzLDEzYzAsNi44''@;'; + put 'put ''LDUuMywxMi40LDEyLDEyLjl2NWMwLDAuNiwwLjQsMSwxLDFzMS0wLjQsMS0xdi01di0yVjIyXG5cdGMwLDAsMCwwLDAtMC4xdi0zLjZsNC43LTQuN2MwLjQtMC40LDAuNC0xLDAtMS40Yy0wLjQtMC40LTEtMC40LTEuNCwwTDE5LDE1LjZ2LTNsLTMuMy0zLjNjLTAuNC0wLjQtMS0wLjQtMS40''@;'; + put 'put ''LDBcblx0Yy0wLjQsMC40LTAuNCwxLDAsMS40bDIuNywyLjd2Ni4ybC0zLjgtMy44Yy0wLjQtMC40LTEtMC40LTEuNCwwYy0wLjQsMC40LTAuNCwxLDAsMS40bDUuMiw1LjJ2My4yYy01LjYtMC41LTEwLTUuMi0xMC0xMC45XG5cdGMwLTYuMSw0LjktMTEsMTEtMTFzMTEsNC45LDExLDExYzAs''@;'; + put 'put ''NC45LTMuMyw5LjItOCwxMC42djIuMUMyOCwyNS43LDMyLjMsMTguNywzMC42LDExLjd6IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMTgsMkMxMC44LDEuNyw0LjgsNy4zLDQuNSwxNC41QzQuMiwyMS43LDkuOCwyNy43LDE3LDI4di01''@;'; + put 'put ''LjJsLTUuMi01LjJjLTAuNC0wLjQtMC40LTEsMC0xLjRjMC40LTAuNCwxLTAuNCwxLjQsMFxuXHRjMCwwLDAsMCwwLDBsMy44LDMuOHYtNi4ybC0yLjctMi43Yy0wLjQtMC40LTAuNC0xLDAtMS40YzAuNC0wLjQsMS0wLjQsMS40LDBjMCwwLDAsMCwwLDBsMy4zLDMuM3YzbDMuMy0zLjNjMC40''@;'; + put 'put ''LTAuNCwxLTAuNCwxLjQsMFxuXHRjMCwwLDAsMCwwLDBjMC40LDAuNCwwLjQsMSwwLDEuNEwxOSwxOC44VjI4YzcuMi0wLjMsMTIuOC02LjMsMTIuNS0xMy41UzI1LjIsMS43LDE4LDJ6IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0xOCwyOGMt''@;'; + put 'put ''MC4zLDAtMC42LDAtMSwwdjVjMCwwLjYsMC40LDEsMSwxczEtMC40LDEtMXYtNUMxOC43LDI4LDE4LjMsMjgsMTgsMjh6IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPicpLEwuQ2xyU2hhcGVGaXNoPSgwLEUuY2xySWNvblNWRykoJzxjaXJjbGUgY3g9IjExLjQ5''@;'; + put 'put ''IiBjeT0iMTcuNSIgcj0iMS41IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMzMuNDgsOS4yOWExLDEsMCwwLDAtMSwwYy0zLjM3LDItNS45MSw1LjgxLTYuOSw3LjQ1TDI0Ljg1LDE4cy0xLDEuNjItMSwxLjYyYy0xLjc2LDIuNDktNS4x''@;'; + put 'put ''LDYuMzYtOC43OSw2LjM2LTQuNjUsMC04Ljc1LTYuMTUtOS44NC03Ljk0LDEuMDktMS43OSw1LjE4LTcuOTQsOS44NC03Ljk0LDMuNTQsMCw2Ljc3LDMuNTgsOC41OCw2LjA3bC4yOC0uNDhzLjM2LS41MS45My0xLjI1QzIyLjcyLDExLjY0LDE5LjE4LDguMDYsMTUsOC4wNmMtNi41OSwwLTEx''@;'; + put 'put ''LjY3LDkuMDctMTEuODgsOS40NkwyLjg5LDE4bC4yNy40OGMuMjEuMzksNS4yOSw5LjQ2LDExLjg4LDkuNDYsNS4wNiwwLDkuMjItNS4zNCwxMS04QzI2LDIwLDI3LjE4LDE4LDI3LjE4LDE4aDBsLjA3LS4xMWExOC4wNiwxOC4wNiwwLDAsMSwxLjg4LTIuNzVzMCwwLDAsMGEyMC4zMSwyMC4z''@;'; + put 'put ''MSwwLDAsMSwyLjg2LTNWMjMuODhhMjAuOTMsMjAuOTMsMCwwLDEtMy42MS00bC0uMTYuMjZoMGwtMSwxLjU5YTE4Ljc0LDE4Ljc0LDAsMCwwLDUuMjEsNC45NSwxLDEsMCwwLDAsLjUuMTQsMS4xMywxLjEzLDAsMCwwLC41LS4xMywxLDEsMCwwLDAsLjUtLjg3VjEwLjE2QTEsMSwwLDAsMCwz''@;'; + put 'put ''My40OCw5LjI5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+JyksTC5DbHJTaGFwZUZvcm09KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTIxLDEySDdhMSwxLDAsMCwxLTEtMVY3QTEsMSwwLDAsMSw3LDZIMjFhMSwxLDAsMCwxLDEsMXY0QTEsMSww''@;'; + put 'put ''LDAsMSwyMSwxMlpNOCwxMEgyMFY3Ljk0SDhaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMjEsMTQuMDhIN2ExLDEsMCwwLDAtMSwxVjE5YTEsMSwwLDAsMCwxLDFIMTguMzZMMjIsMTYuM1YxNS4wOEExLDEsMCwwLDAsMjEsMTQuMDha''@;'; + put 'put ''TTIwLDE4SDhWMTZIMjBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMTEuMDYsMzEuNTF2LS4wNmwuMzItMS4zOUg0VjRoMjBWMTQuMjVMMjYsMTIuMzZWM2ExLDEsMCwwLDAtMS0xSDNBMSwxLDAsMCwwLDIsM1YzMWExLDEsMCwwLDAs''@;'; + put 'put ''MSwxaDhBMy40NCwzLjQ0LDAsMCwxLDExLjA2LDMxLjUxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+PHBhdGggZD0iTTIyLDE5LjE3bC0uNzguNzlBMSwxLDAsMCwwLDIyLDE5LjE3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1w''@;'; + put 'put ''YXRoLTQiIC8+PHBhdGggZD0iTTYsMjYuOTRhMSwxLDAsMCwwLDEsMWg0Ljg0bC4zLTEuMy4xMy0uNTUsMC0uMDVIOFYyNGg2LjM0bDItMkg3YTEsMSwwLDAsMC0xLDFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgLz48cGF0aCBkPSJNMzMuNDksMTYuNjcs''@;'; + put 'put ''MzAuMTIsMTMuM2ExLjYxLDEuNjEsMCwwLDAtMi4yOCwwaDBMMTQuMTMsMjcuMDksMTMsMzEuOWExLjYxLDEuNjEsMCwwLDAsMS4yNiwxLjksMS41NSwxLjU1LDAsMCwwLC4zMSwwLDEuMTUsMS4xNSwwLDAsMCwuMzcsMGw0Ljg1LTEuMDdMMzMuNDksMTlhMS42LDEuNiwwLDAsMCwwLTIuMjda''@;'; + put 'put ''TTE4Ljc3LDMwLjkxbC0zLjY2LjgxTDE2LDI4LjA5LDI2LjI4LDE3LjdsMi44MiwyLjgyWk0zMC4yMywxOS4zOWwtMi44Mi0yLjgyTDI5LDE1bDIuODQsMi44NFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02IiAvPicpLEwuQ2xyU2hhcGVGdWVsPSgwLEUuY2xy''@;'; + put 'put ''SWNvblNWRykoJzxwYXRoIGQ9Ik0yMC4xMiwzNEg1LjlBMi44MSwyLjgxLDAsMCwxLDMsMzEuMTlWNC44NkEyLjksMi45LDAsMCwxLDYsMi4wN0gyMC4yMkEyLjcyLDIuNzIsMCwwLDEsMjMsNC44NlYzMS4xOUEyLjgyLDIuODIsMCwwLDEsMjAuMTIsMzRaTTUuOSw0QS44Ny44NywwLDAsMCw1''@;'; + put 'put ''LDQuODZWMzEuMTlhLjg3Ljg3LDAsMCwwLC44Ny44N0gyMC4xMmEuOTQuOTQsMCwwLDAsLjk1LS44N1Y0Ljg2QS45NC45NCwwLDAsMCwyMC4xMiw0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTI5LjUzLDM0QTMuNSwzLjUsMCwwLDEs''@;'; + put 'put ''MjYsMzAuNVYyM2EyLDIsMCwwLDAtMi0ySDIyLjU3YTEsMSwwLDAsMSwwLTJIMjRhNCw0LDAsMCwxLDQsNFYzMC41YTEuNSwxLjUsMCwwLDAsMywwVjE3LjNsLTMuMTMtN0EyLjI5LDIuMjksMCwwLDAsMjUuOCw5aC0uNzNhMSwxLDAsMSwxLDAtMmguNzNhNC4zLDQuMywwLDAsMSwzLjkzLDIu''@;'; + put 'put ''NTVsMy4yMSw3LjE2YTEsMSwwLDAsMSwuMDkuNDFWMzAuNUEzLjUsMy41LDAsMCwxLDI5LjUzLDM0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTE4LDlIOEExLDEsMCwxLDEsOCw3SDE4YTEsMSwwLDAsMSwwLDJaIiBjbGFzcz0iY2xy''@;'; + put 'put ''LWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz48cGF0aCBkPSJNMTgsMTNIOEExLDEsMCwxLDEsOCwxMUgxOEExLDEsMCwxLDEsMTgsMTNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz48cGF0aCBkPSJNMjUsMTIuMDhhMSwxLDAsMCwxLTEt''@;'; + put 'put ''MXYtNmExLDEsMCwwLDEsMiwwdjZBMSwxLDAsMCwxLDI1LDEyLjA4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIC8+JyksTC5DbHJTaGFwZVNub3dmbGFrZT0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTguMDUsMzMuNjFhMSwxLDAsMCwxLTEtMVYz''@;'; + put 'put ''LjM3YTEsMSwwLDEsMSwxLjk1LDBWMzIuNjNBMSwxLDAsMCwxLDE4LjA1LDMzLjYxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTE4LjA2LDEwLjA3LDE0LjUyLDYuNTRhMSwxLDAsMCwxLDAtMS40MSwxLDEsMCwwLDEsMS40MSwwbDIu''@;'; + put 'put ''MTMsMi4xMiwyLjEyLTIuMTJhMSwxLDAsMCwxLDEuNDEsMCwxLDEsMCwwLDEsMCwxLjQxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTIwLjg1LDMxLjE3YTEsMSwwLDAsMS0uNy0uMjlMMTgsMjguNzYsMTUuOSwzMC44OGExLDEsMCww''@;'; + put 'put ''LDEtMS40MSwwLDEsMSwwLDAsMSwwLTEuNDJMMTgsMjUuOTNsMy41NCwzLjUzYTEsMSwwLDAsMSwwLDEuNDJBMSwxLDAsMCwxLDIwLjg1LDMxLjE3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+PHBhdGggZD0iTTMwLjkyLDI2LjVhMSwxLDAsMCwxLS41''@;'; + put 'put ''LS4xM2wtMjYtMTVBMSwxLDAsMCwxLDQuMDcsMTBhMSwxLDAsMCwxLDEuMzctLjM2bDI2LDE1YTEsMSwwLDAsMS0uNSwxLjg3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+PHBhdGggZD0iTTYsMTUuMzdhMSwxLDAsMCwxLS4yNi0ybDIuOS0uNzhMNy44''@;'; + put 'put ''NCw5LjczYTEsMSwwLDEsMSwxLjkzLS41MkwxMS4wNywxNCw2LjI0LDE1LjMzQS44Mi44MiwwLDAsMSw2LDE1LjM3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIC8+PHBhdGggZD0iTTI3LjA1LDI3LjU0YTEsMSwwLDAsMS0xLS43NUwyNC44LDIybDQuODIt''@;'; + put 'put ''MS4zYTEsMSwwLDEsMSwuNTIsMS45M2wtMi45Ljc4Ljc4LDIuOWExLDEsMCwwLDEtLjcxLDEuMjJBLjc1Ljc1LDAsMCwxLDI3LjA1LDI3LjU0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIC8+PHBhdGggZD0iTTQuOTQsMjYuNWExLDEsMCwwLDEtLjUtMS44''@;'; + put 'put ''N2wyNi0xNWExLDEsMCwwLDEsMS4zNi4zNiwxLDEsMCwwLDEtLjM2LDEuMzdsLTI2LDE1QTEsMSwwLDAsMSw0Ljk0LDI2LjVaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNyIgLz48cGF0aCBkPSJNOC44MSwyNy41NGEuNzUuNzUsMCwwLDEtLjI2LDAsMSwxLDAs''@;'; + put 'put ''MCwxLS43MS0xLjIybC43OC0yLjktMi45LS43OEExLDEsMCwwLDEsNSwyMS4zOGExLDEsMCwwLDEsMS4yMy0uNzFMMTEuMDcsMjJsLTEuMyw0LjgyQTEsMSwwLDAsMSw4LjgxLDI3LjU0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTgiIC8+PHBhdGggZD0iTTI5''@;'; + put 'put ''Ljg4LDE1LjM3YS44Mi44MiwwLDAsMS0uMjYsMEwyNC44LDE0bDEuMjktNC44M0ExLDEsMCwxLDEsMjgsOS43M2wtLjc4LDIuODksMi45Ljc4YTEsMSwwLDAsMS0uMjYsMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC05IiAvPicpLEwuQ2xyU2hhcGVUYWJsZT0o''@;'; + put 'put ''MCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNOCwzNGExLDEsMCwwLDEtMS0xVjIuOTJhMSwxLDAsMCwxLDIsMFYzM0ExLDEsMCwwLDEsOCwzNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0xNywzMy45MmExLDEsMCwwLDEtMS0xVjku''@;'; + put 'put ''MWExLDEsMCwxLDEsMiwwVjMyLjkyQTEsMSwwLDAsMSwxNywzMy45MloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0yNiwzNGExLDEsMCwwLDEtMS0xVjlhMSwxLDAsMCwxLDIsMFYzM0ExLDEsMCwwLDEsMjYsMzRaIiBjbGFzcz0iY2xy''@;'; + put 'put ''LWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz48cGF0aCBkPSJNMzMuMTEsMThoLTI1YTEsMSwwLDEsMSwwLTJoMjVhMSwxLDAsMSwxLDAsMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPjxwYXRoIGQ9Ik0zMy4xLDI2Ljk0SDguMUExLDEs''@;'; + put 'put ''MCwxLDEsOC4xLDI1aDI1YTEsMSwwLDEsMSwwLDEuOTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgLz48cGF0aCBkPSJNMzMsOC45MkgzQTEsMSwwLDEsMSwzLDdIMzNhMSwxLDAsMSwxLDAsMS45NFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91''@;'; + put 'put ''dGxpbmUtcGF0aC02IiAvPicpLEwuQ2xyU2hhcGVWb2x1bWU9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI1Ljg4LDMySDEyYTQsNCwwLDAsMS00LTRWMTEuNDZMMi4zMSw1Ljc3YTEsMSwwLDAsMS0uMjItMS4wOUExLDEsMCwwLDEsMyw0LjA2SDI4Ljg2YTEsMSwwLDAsMSwxLDFWMjhB''@;'; + put 'put ''NCw0LDAsMCwxLDI1Ljg4LDMyWk01LjQzLDZsNC4yOCw0LjM0YS43NS43NSwwLDAsMSwuMjEuNjN2MTdBMi4xMywyLjEzLDAsMCwwLDEyLDMwSDI1Ljg4QTIuMSwyLjEsMCwwLDAsMjgsMjhWNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9''@;'; + put 'put ''Ik0zMywxNmExLDEsMCwwLDEtMS0xVjZIMjguODZhLjkyLjkyLDAsMCwxLTEtLjksMSwxLDAsMCwxLDEtMUgzM2ExLDEsMCwwLDEsMSwxVjE1QTEsMSwwLDAsMSwzMywxNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0yNCwxMUgxOGEx''@;'; + put 'put ''LDEsMCwxLDEsMC0ySDI0YTEsMSwwLDEsMSwwLDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz48cGF0aCBkPSJNMjQsMTVIMjFhMSwxLDAsMSwxLDAtMkgyNGExLDEsMCwxLDEsMCwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1w''@;'; + put 'put ''YXRoLTQiIC8+PHBhdGggZD0iTTI0LDE5SDE4YTEsMSwwLDEsMSwwLTJIMjRhMSwxLDAsMSwxLDAsMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiAvPjxwYXRoIGQ9Ik0yNCwyN0gxOGExLDEsMCwxLDEsMC0ySDI0YTEsMSwwLDEsMSwwLDJaIiBjbGFzcz0i''@;'; + put 'put ''Y2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIgLz48cGF0aCBkPSJNMjQsMjNIMjFBMSwxLDAsMSwxLDIxLDIxSDI0QTEsMSwwLDEsMSwyNCwyM1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC03IiAvPicpLEwuQ2xyU2hhcGVDcm9zc2hhaXJzPSgw''@;'; + put 'put ''LEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xOCwyOUExMSwxMSwwLDEsMSwyOSwxOCwxMSwxMSwwLDAsMSwxOCwyOVpNMTgsOWE5LDksMCwxLDAsOSw5QTksOSwwLDAsMCwxOCw5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTE4LDIz''@;'; + put 'put ''YTUsNSwwLDEsMSw1LTVBNSw1LDAsMCwxLDE4LDIzWm0wLThhMywzLDAsMSwwLDMsM0EzLDMsMCwwLDAsMTgsMTVaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMTgsOWExLDEsMCwwLDEtMS0xVjIuOGExLDEsMCwwLDEsMiwwVjhBMSwx''@;'; + put 'put ''LDAsMCwxLDE4LDlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz48cGF0aCBkPSJNMTgsMzRhMSwxLDAsMCwxLTEtMVYyOGExLDEsMCwwLDEsMiwwdjVBMSwxLDAsMCwxLDE4LDM0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRo''@;'; + put 'put ''LTQiIC8+PHBhdGggZD0iTTgsMTlIMy4xN2ExLDEsMCwwLDEsMC0ySDhhMSwxLDAsMCwxLDAsMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiAvPjxwYXRoIGQ9Ik0zMy4xLDE5SDI4YTEsMSwwLDAsMSwwLTJoNS4xYTEsMSwwLDAsMSwwLDJaIiBjbGFzcz0i''@;'; + put 'put ''Y2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIgLz4nKSxMLkNsclNoYXBlQ2lyY2xlPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xOCwzNEExNiwxNiwwLDEsMSwzNCwxOCwxNiwxNiwwLDAsMSwxOCwzNFpNMTgsNEExNCwxNCwwLDEsMCwzMiwxOCwxNCwxNCwwLDAsMCwx''@;'; + put 'put ''OCw0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTE4LDM0QTE2LDE2LDAsMSwxLDM0LDE4LDE2LDE2LDAsMCwxLDE4LDM0WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz4nKSxMLkNsclNoYXBlRG90Q2ly''@;'; + put 'put ''Y2xlPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xOCwxMWE3LDcsMCwxLDEtNyw3LDcsNywwLDAsMSw3LTciIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0xOCwzNEExNiwxNiwwLDEsMSwzNCwxOCwxNiwxNiwwLDAsMSwxOCwzNFpN''@;'; + put 'put ''MTgsNEExNCwxNCwwLDEsMCwzMiwxOCwxNCwxNCwwLDAsMCwxOCw0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+JyksTC5DbHJTaGFwZUJldGE9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTcuMjEsMTQuMDdoM2ExLjYxLDEuNjEsMCwwLDEsMS44''@;'; + put 'put ''MSwxLjUsMS40NCwxLjQ0LDAsMCwxLS44NCwxLjM0LDEuNjcsMS42NywwLDAsMSwxLjEsMS41MywxLjc1LDEuNzUsMCwwLDEtMiwxLjYzSDcuMjFabTIuNzEsMi40MmMuNDgsMCwuODItLjI4LjgyLS42N3MtLjM0LS42NS0uODItLjY1SDguNDl2MS4zMlptLjIsMi40OGEuNzUuNzUsMCwxLDAs''@;'; + put 'put ''MC0xLjQ3SDguNDlWMTlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICA8cGF0aCBkPSJNMTQuNTUsMTUuMjN2MS4yaDN2MS4xNmgtM3YxLjMyaDMuMzN2MS4xNkgxMy4yNnYtNmg0LjYydjEuMTZaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1v''@;'; + put 'put ''dXRsaW5lLXBhdGgtMiIvPlxuICA8cGF0aCBkPSJNMjAuNDEsMTUuMjNIMTguNTRWMTQuMDdoNXYxLjE2SDIxLjd2NC44NEgyMC40MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gIDxwYXRoIGQ9Ik0yOCwxOS4xMkgyNS4zMmwtLjM4Ljk1SDIzLjVs''@;'; + put 'put ''Mi40NC02aDEuNDRsMi40NSw2SDI4LjM4Wk0yNy41NSwxOGwtLjg5LTIuMTlMMjUuNzcsMThaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIvPlxuICA8cGF0aCBkPSJNOC4wNiwzMGEuODQuODQsMCwwLDEtLjM4LS4wOEExLDEsMCwwLDEsNy4wNiwyOVYyNWgt''@;'; + put 'put ''NGExLDEsMCwwLDEtMS0xVjEwYTEsMSwwLDAsMSwxLTFoMzBhMSwxLDAsMCwxLDEsMVYyNGExLDEsMCwwLDEtMSwxSDEzLjQ4TDguNzcsMjkuNzFBMSwxLDAsMCwxLDguMDYsMzBabS00LTdoNGExLDEsMCwwLDEsMSwxdjIuNTlsMy4zLTMuM2ExLDEsMCwwLDEsLjctLjI5aDE5VjExaC0yOFoi''@;'; + put 'put ''IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01Ii8+XG5cbiAgPHBvbHlnb24gcG9pbnRzPSIyNS44LDE4IDI3LjUsMTggMjYuNywxNS44IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG5cdDxwYXRoIGQ9Ik0xMC40LDE3LjVjLTAuMSww''@;'; + put 'put ''LTAuMiwwLTAuMywwSDguNVYxOWwxLjYsMGMwLjQsMC4xLDAuOC0wLjIsMC45LTAuNkMxMS4xLDE4LDEwLjgsMTcuNiwxMC40LDE3LjV6IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIi8+XG5cdDxwYXRoIGQ9Ik0xMC43LDE1LjhjMC0wLjQtMC4zLTAuNy0wLjgtMC43''@;'; + put 'put ''SDguNXYxLjNoMS40QzEwLjQsMTYuNSwxMC43LDE2LjIsMTAuNywxNS44eiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIvPlxuXHQ8cGF0aCBkPSJNMzMuMSw5aC0zMGMtMC42LDAtMSwwLjQtMSwxdjE0YzAsMC42LDAuNCwxLDEsMWg0djRjMCwwLjQsMC4yLDAuOCww''@;'; + put 'put ''LjYsMC45QzcuOCwzMCw3LjksMzAsOC4xLDMwYzAuMywwLDAuNS0wLjEsMC43LTAuM1xuXHRcdGw0LjctNC43aDE5LjZjMC42LDAsMS0wLjQsMS0xVjEwQzM0LjEsOS40LDMzLjYsOSwzMy4xLDl6IE0xMC40LDIwLjFjLTAuMSwwLTAuMSwwLTAuMiwwSDcuMnYtNmgzYzAuOS0wLjEsMS43LDAu''@;'; + put 'put ''NSwxLjgsMS40XG5cdFx0YzAsMCwwLDAuMSwwLDAuMWMwLDAuNi0wLjMsMS4xLTAuOCwxLjNjMC42LDAuMiwxLjEsMC44LDEuMSwxLjVDMTIuMiwxOS40LDExLjQsMjAuMSwxMC40LDIwLjF6IE0xNy45LDE1LjJoLTMuM3YxLjJoM3YxLjJoLTN2MS4zXG5cdFx0aDMuM3YxLjJoLTQuNnYtNmg0''@;'; + put 'put ''LjZWMTUuMnogTTIxLjcsMjAuMWgtMS4zdi00LjhoLTEuOXYtMS4yaDV2MS4yaC0xLjhWMjAuMXogTTI4LjQsMjAuMWwtMC40LTFoLTIuN2wtMC40LDFoLTEuNGwyLjQtNmgxLjRsMi41LDZcblx0XHRIMjguNHoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTQiLz5cbicp''@;'; + put 'put ''LEwuQ2xyU2hhcGVGaXJzdEFpZD0oMCxFLmNsckljb25TVkcpKCdcbiAgPHBhdGggZD0iTTMyLDZIMjMuOTFWNC41QTIuNSwyLjUsMCwwLDAsMjEuNDEsMmgtN2EyLjUsMi41LDAsMCwwLTIuNSwyLjVWNkg0QTIsMiwwLDAsMCwyLDhWMjhhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0y''@;'; + put 'put ''VjhBMiwyLDAsMCwwLDMyLDZaTTEzLjkxLDQuNWEuNS41LDAsMCwxLC41LS41aDdhLjUuNSwwLDAsMSwuNS41VjZoLThaTTQsMjhWOEgzMlYyOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gIDxwYXRoIGQ9Ik0yMC4xNSwyNS4ySDE2Ljc0YTEuMywx''@;'; + put 'put ''LjMsMCwwLDEtMS4zLTEuM1YyMS4yaC0yLjdhMS4zLDEuMywwLDAsMS0xLjMtMS4zVjE2LjVhMS4zLDEuMywwLDAsMSwxLjMtMS4zaDIuN1YxMi41YTEuMywxLjMsMCwwLDEsMS4zLTEuM2gzLjQxYTEuMywxLjMsMCwwLDEsMS4yOSwxLjN2Mi43aDIuNzFhMS4zLDEuMywwLDAsMSwxLjI5LDEu''@;'; + put 'put ''M3YzLjRhMS4zLDEuMywwLDAsMS0xLjI5LDEuM0gyMS40NHYyLjdBMS4zLDEuMywwLDAsMSwyMC4xNSwyNS4yWk0xNywyMy42aDIuODF2LTRoNFYxNi44aC00di00SDE3djRIMTN2Mi44aDRabTcuMTEtNi44WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5c''@;'; + put 'put ''blxuICA8cGF0aCBkPSJNMzIsNkgyMy45MVY0LjVBMi41LDIuNSwwLDAsMCwyMS40MSwyaC03YTIuNSwyLjUsMCwwLDAtMi41LDIuNVY2SDRBMiwyLDAsMCwwLDIsOFYyOGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWOEEyLDIsMCwwLDAsMzIsNlpNMTMuOTEsNC41YS41LjUsMCww''@;'; + put 'put ''LDEsLjUtLjVoN2EuNS41LDAsMCwxLC41LjVWNmgtOFpNMjQuNjQsMTkuOWEuNS41LDAsMCwxLS41LjVoLTMuNXYzLjVhLjUuNSwwLDAsMS0uNS41aC0zLjRhLjUuNSwwLDAsMS0uNS0uNVYyMC40aC0zLjVhLjUuNSwwLDAsMS0uNS0uNVYxNi41YS41LjUsMCwwLDEsLjUtLjVoMy41VjEyLjVh''@;'; + put 'put ''LjUuNSwwLDAsMSwuNS0uNWgzLjRhLjUuNSwwLDAsMSwuNS41VjE2aDMuNWEuNS41LDAsMCwxLC41LjVaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG4gICcpLEwuQ2xyU2hhcGVDb2xvclBhbGV0dGU9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTIxLjU0''@;'; + put 'put ''LDIzLjA1YTMuMjIsMy4yMiwwLDAsMS0zLTEuNzdBMy4wNSwzLjA1LDAsMCwxLDE4LjUsMTlhMy43NCwzLjc0LDAsMCwxLDEuOTUtMi4wNkEzLjQsMy40LDAsMCwxLDI1LDE4LjNhMywzLDAsMCwxLC4wOCwyLjMyLDMuNjksMy42OSwwLDAsMS0yLDIuMDdBMy44NSwzLjg1LDAsMCwxLDIxLjU0''@;'; + put 'put ''LDIzLjA1Wm0uNTQtNC45MWEyLjQxLDIuNDEsMCwwLDAtMSwuMjFoMEEyLjEzLDIuMTMsMCwwLDAsMjAsMTkuNTFhMS4zNywxLjM3LDAsMCwwLDAsMS4wOSwxLjgxLDEuODEsMCwwLDAsMi40NS42MywyLjEsMi4xLDAsMCwwLDEuMTItMS4xNSwxLjQsMS40LDAsMCwwLDAtMS4xQTEuNTksMS41''@;'; + put 'put ''OSwwLDAsMCwyMi4wOCwxOC4xNFptLTEuMjktLjUyaDBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICA8cGF0aCBkPSJNMTYuMTksMzMuODdBMTMuNzIsMTMuNzIsMCwwLDEsNi40LDMwLDEzLjg2LDEzLjg2LDAsMCwxLDIsMjBjMC00LjQsMi04Ljg0''@;'; + put 'put ''LDUuNjgtMTIuNWExOC4yLDE4LjIsMCwwLDEsMTMuMS01LjM3aC4xMmMzLjMzLDAsNi44NSwxLjQ5LDcuMjQsNC43My4yMSwxLjc3LS41OSwzLjQ3LTEuMjksNS0uNTUsMS4xNy0xLjExLDIuMzktLjcyLDIuODFzMSwuMTIsMi4wOS0uMmE2LjI3LDYuMjcsMCwwLDEsMy4zOC0uMzYsMywzLDAs''@;'; + put 'put ''MCwxLDEuODcsMS41NmMuOTQsMS44My40Nyw0LjY3LS4yMyw2LjU0aDBBMTcuMzgsMTcuMzgsMCwwLDEsMjksMjguNzQsMTkuNDMsMTkuNDMsMCwwLDEsMTYuMTksMzMuODdaTTIwLjc4LDQuMTZBMTYuMjIsMTYuMjIsMCwwLDAsOS4wOSw5QzUuNzksMTIuMjMsNCwxNi4xNiw0LDIwQTExLjky''@;'; + put 'put ''LDExLjkyLDAsMCwwLDcuOCwyOC42YzUuMzgsNS4yNSwxNC42MiwzLjU1LDE5Ljg3LTEuMzNhMTUuNTIsMTUuNTIsMCwwLDAsMy43LTUuNzVoMGMuNy0xLjkuODQtMy45Mi4zMi00LjkyYTEsMSwwLDAsMC0uNjEtLjU1LDQuODYsNC44NiwwLDAsMC0yLjI5LjM1Yy0xLjMxLjM5LTMsLjg5LTQu''@;'; + put 'put ''MTItLjM1LTEuMzItMS40LS40Ni0zLjI1LjM3LTVhNy45Myw3LjkzLDAsMCwwLDEuMTEtMy45Yy0uMjQtMi0yLjgxLTIuOTUtNS4yNi0zWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgPHBhdGggZD0iTTIzLjg3LDI2LjY1QTIuNTksMi41OSwwLDAs''@;'; + put 'put ''MCwyMi4zNSwyNUwyMiwyNC45bC0uNDYsMS41My4xNiwwYTEsMSwwLDAsMSwuNi42MWMuMTcuNi0uNDEsMS4zMS0xLjI2LDEuNTVzLTEuNzEtLjA3LTEuODgtLjY2bC0xLjU0LjQzaDBhMi44MywyLjgzLDAsMCwwLDIuODQsMS45MSw0LDQsMCwwLDAsMS0uMTRBMywzLDAsMCwwLDIzLjg3LDI2''@;'; + put 'put ''LjY1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgPHBhdGggZD0iTTE1LjA3LDI1LjU5aDBhMi43MywyLjczLDAsMCwwLTIuMjQtMS44NGwtLjI3LDEuNThhMS4xMiwxLjEyLDAsMCwxLDEsLjdjLjE3LjU5LS40MSwxLjMtMS4yNiwxLjU0QTEuOTIs''@;'; + put 'put ''MS45MiwwLDAsMSwxMSwyNy41MmExLDEsMCwwLDEtLjYtLjYxczAtLjA5LDAtLjEzbC0xLjU4LjE2YTIsMiwwLDAsMCwuMDYuNDFBMi41OSwyLjU5LDAsMCwwLDEwLjM3LDI5YTMuMzYsMy4zNiwwLDAsMCwxLjMxLjI1LDMuNywzLjcsMCwwLDAsMS0uMTRBMywzLDAsMCwwLDE1LjA3LDI1LjU5''@;'; + put 'put ''WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiLz5cbiAgPHBhdGggZD0iTTEwLjc4LDE5LjE3YTIuNTksMi41OSwwLDAsMC0xLjUyLTEuNjUsMi45MSwyLjkxLDAsMCwwLS41LS4xNmwtLjM3LDEuNTZhMS4yMSwxLjIxLDAsMCwxLC4yNS4wOCwxLDEsMCwwLDEs''@;'; + put 'put ''LjYuNmMuMTcuNi0uNDEsMS4zMS0xLjI2LDEuNTVzLTEuNzEtLjA2LTEuODgtLjY2YS44Ni44NiwwLDAsMSwwLS4zOWwtMS41Ni0uMzRhMi40LDIuNCwwLDAsMCwwLDEuMTZBMi44MywyLjgzLDAsMCwwLDcuNCwyMi44M2E0LDQsMCwwLDAsMS0uMTRBMywzLDAsMCwwLDEwLjc4LDE5LjE3WiIg''@;'; + put 'put ''Y2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiLz5cbiAgPHBhdGggZD0iTTEzLjQ1LDExLjRhMi41OSwyLjU5LDAsMCwwLTEuNTItMS42NSwxLjE3LDEuMTcsMCwwLDAtLjItLjA2bC0uNTIsMS41MWEuMzguMzgsMCwwLDEsLjEsMCwxLDEsMCwwLDEsLjYuNmMuMTcu''@;'; + put 'put ''Ni0uNDEsMS4zMS0xLjI2LDEuNTVhMi4wNiwyLjA2LDAsMCwxLTEuMjgtLjA1LDEsMSwwLDAsMS0uNi0uNjEuODUuODUsMCwwLDEsMC0uMzJsLTEuNTgtLjE5YTIuMywyLjMsMCwwLDAsLjA2Ljk0QTIuNTYsMi41NiwwLDAsMCw4Ljc1LDE0LjhhMy4zNywzLjM3LDAsMCwwLDEuMzEuMjYsNCw0''@;'; + put 'put ''LDAsMCwwLDEtLjE0QTMsMywwLDAsMCwxMy40NSwxMS40WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiLz5cbiAgPHBhdGggZD0iTTIxLDYuNzhhMi41NiwyLjU2LDAsMCwwLTEuNTItMS42NWwtLjMtLjFMMTguNyw2LjU2bC4xNSwwYTEsMSwwLDAsMSwuNi42''@;'; + put 'put ''MWMuMTcuNi0uNDEsMS4zLTEuMjYsMS41NHMtMS43MS0uMDYtMS44OC0uNjVhLjkuOSwwLDAsMSwuMDYtLjU4TDE0Ljg5LDYuOWEyLjQ3LDIuNDcsMCwwLDAtLjEyLDEuNjMsMi44NCwyLjg0LDAsMCwwLDIuODQsMS45MSwzLjU4LDMuNTgsMCwwLDAsMS0uMTVBMywzLDAsMCwwLDIxLDYuNzha''@;'; + put 'put ''IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNyIvPlxuXG4gIDxwYXRoIGQ9Ik0zMi4yMywxNC44OWMtMi4xLS41Ni00LjkzLDEuOC02LjM0LjMtMS43MS0xLjgyLDIuMjctNS41MywxLjg2LTguOTItLjMzLTIuNzgtMy41MS00LjA4LTYuNjYtNC4xQTE4LjUsMTgu''@;'; + put 'put ''NSwwLDAsMCw3Ljc0LDcuNTljLTYuNjQsNi41OS04LjA3LDE2LTEuMzcsMjIuNDgsNi4yMSw2LDE2LjYxLDQuMjMsMjIuNjctMS40YTE3LjczLDE3LjczLDAsMCwwLDQuMjItNi41NEMzNC4zNCwxOS4yMywzNC40NCwxNS40OSwzMi4yMywxNC44OVpNOS40LDEwLjU3YTIuMjMsMi4yMywwLDAs''@;'; + put 'put ''MSwyLjg3LDEuMjEsMi4yMiwyLjIyLDAsMCwxLTEuODEsMi41M0EyLjIyLDIuMjIsMCwwLDEsNy41OSwxMy4xLDIuMjMsMi4yMywwLDAsMSw5LjQsMTAuNTdaTTUuMDcsMjAuODJhMi4yMiwyLjIyLDAsMCwxLDEuODItMi41M0EyLjIyLDIuMjIsMCwwLDEsOS43NSwxOS41LDIuMjMsMi4yMyww''@;'; + put 'put ''LDAsMSw3Ljk0LDIyLDIuMjQsMi4yNCwwLDAsMSw1LjA3LDIwLjgyWm03LDguMzNhMi4yMiwyLjIyLDAsMCwxLTIuODctMS4yMUEyLjIzLDIuMjMsMCwwLDEsMTEsMjUuNDFhMi4yMywyLjIzLDAsMCwxLDIuODcsMS4yMUEyLjIyLDIuMjIsMCwwLDEsMTIsMjkuMTVaTTE1LDguMjZhMi4yMywy''@;'; + put 'put ''LjIzLDAsMCwxLDEuODEtMi41MywyLjI0LDIuMjQsMCwwLDEsMi44NywxLjIxLDIuMjIsMi4yMiwwLDAsMS0xLjgyLDIuNTNBMi4yMSwyLjIxLDAsMCwxLDE1LDguMjZabTUuODIsMjIuMTlhMi4yMiwyLjIyLDAsMCwxLTIuODctMS4yMSwyLjIzLDIuMjMsMCwwLDEsMS44MS0yLjUzLDIuMjQs''@;'; + put 'put ''Mi4yNCwwLDAsMSwyLjg3LDEuMjFBMi4yMiwyLjIyLDAsMCwxLDIwLjc4LDMwLjQ1Wm01LTEwLjQ2YTMuMiwzLjIsMCwwLDEtMS42OSwxLjc2LDMuNTMsMy41MywwLDAsMS0xLjQuMywyLjc4LDIuNzgsMCwwLDEtMi41Ni0xLjUsMi40OSwyLjQ5LDAsMCwxLS4wNy0yLDMuMiwzLjIsMCwwLDEs''@;'; + put 'put ''MS42OS0xLjc2LDMsMywwLDAsMSw0LDEuMkEyLjU0LDIuNTQsMCwwLDEsMjUuNzksMjBaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+JyksTC5Fc3NlbnRpYWxTaGFwZXM9eyJhZGQtdGV4dCI6TC5DbHJTaGFwZUFkZFRleHQsImFsYXJtLW9mZiI6TC5DbHJTaGFw''@;'; + put 'put ''ZUFsYXJtT2ZmLHBpbmJvYXJkOkwuQ2xyU2hhcGVQaW5ib2FyZCxuZXc6TC5DbHJTaGFwZU5ldywiYnViYmxlLWV4Y2xhbWF0aW9uIjpMLkNsclNoYXBlQnViYmxlRXhjbGFtYXRpb24sImdyaWQtdmlldyI6TC5DbHJTaGFwZUdyaWRWaWV3LCJjdXJzb3ItYXJyb3ciOkwuQ2xyU2hhcGVDdXJz''@;'; + put 'put ''b3JBcnJvdywiY3Vyc29yLWhhbmQiOkwuQ2xyU2hhcGVDdXJzb3JIYW5kLCJjdXJzb3ItaGFuZC1jbGljayI6TC5DbHJTaGFwZUN1cnNvckhhbmRDbGljaywiY3Vyc29yLWhhbmQtZ3JhYiI6TC5DbHJTaGFwZUN1cnNvckhhbmRHcmFiLCJjdXJzb3ItaGFuZC1vcGVuIjpMLkNsclNoYXBlQ3Vy''@;'; + put 'put ''c29ySGFuZE9wZW4sImN1cnNvci1tb3ZlIjpMLkNsclNoYXBlQ3Vyc29yTW92ZSwiZmlyc3QtYWlkIjpMLkNsclNoYXBlRmlyc3RBaWQscmVzaXplOkwuQ2xyU2hhcGVSZXNpemUsb2JqZWN0czpMLkNsclNoYXBlT2JqZWN0cyxib29rOkwuQ2xyU2hhcGVCb29rLGFzdGVyaXNrOkwuQ2xyU2hh''@;'; + put 'put ''cGVBc3RlcmlzayxidWc6TC5DbHJTaGFwZUJ1ZyxzY2lzc29yczpMLkNsclNoYXBlU2Npc3NvcnMsdGhlcm1vbWV0ZXI6TC5DbHJTaGFwZVRoZXJtb21ldGVyLHBlbmNpbDpMLkNsclNoYXBlUGVuY2lsLG5vdGU6TC5DbHJTaGFwZU5vdGUscmVmcmVzaDpMLkNsclNoYXBlUmVmcmVzaCxzeW5j''@;'; + put 'put ''OkwuQ2xyU2hhcGVTeW5jLCJ2aWV3LWxpc3QiOkwuQ2xyU2hhcGVWaWV3TGlzdCwidmlldy1jYXJkcyI6TC5DbHJTaGFwZVZpZXdDYXJkcywidHJlZS12aWV3IjpMLkNsclNoYXBlVHJlZVZpZXcsbGlnaHRidWxiOkwuQ2xyU2hhcGVMaWdodGJ1bGIsZG93bmxvYWQ6TC5DbHJTaGFwZURvd25s''@;'; + put 'put ''b2FkLHVwbG9hZDpMLkNsclNoYXBlVXBsb2FkLGxvY2s6TC5DbHJTaGFwZUxvY2ssdW5sb2NrOkwuQ2xyU2hhcGVVbmxvY2ssdXNlcnM6TC5DbHJTaGFwZVVzZXJzLCJwb3Atb3V0IjpMLkNsclNoYXBlUG9wT3V0LGZpbHRlcjpMLkNsclNoYXBlRmlsdGVyLHBpbjpMLkNsclNoYXBlUGluLGZp''@;'; + put 'put ''bGU6TC5DbHJTaGFwZUZpbGUscGx1czpMLkNsclNoYXBlUGx1cyxtaW51czpMLkNsclNoYXBlTWludXMsIm1pbnVzLWNpcmNsZSI6TC5DbHJTaGFwZU1pbnVzQ2lyY2xlLCJwbHVzLWNpcmNsZSI6TC5DbHJTaGFwZVBsdXNDaXJjbGUsYmFuOkwuQ2xyU2hhcGVCYW4sInRpbWVzLWNpcmNsZSI6''@;'; + put 'put ''TC5DbHJTaGFwZVRpbWVzQ2lyY2xlLHRyYXNoOkwuQ2xyU2hhcGVUcmFzaCxjaXJjbGU6TC5DbHJTaGFwZUNpcmNsZSx0YWc6TC5DbHJTaGFwZVRhZyx0YWdzOkwuQ2xyU2hhcGVUYWdzLGhpc3Rvcnk6TC5DbHJTaGFwZUhpc3RvcnksY2xvY2s6TC5DbHJTaGFwZUNsb2NrLCJhbGFybS1jbG9j''@;'; + put 'put ''ayI6TC5DbHJTaGFwZUFsYXJtQ2xvY2ssYXJyb3c6TWUuQ2xyU2hhcGVBcnJvdywiY2lyY2xlLWFycm93IjpMLkNsclNoYXBlQ2lyY2xlQXJyb3csImNoaWxkLWFycm93IjpMLkNsclNoYXBlQ2hpbGRBcnJvdyxjb3B5OkwuQ2xyU2hhcGVDb3B5LGhlbHA6TC5DbHJTaGFwZUhlbHAsbG9naW46''@;'; + put 'put ''TC5DbHJTaGFwZUxvZ2luLGxvZ291dDpMLkNsclNoYXBlTG9nb3V0LHByaW50ZXI6TC5DbHJTaGFwZVByaW50ZXIsd29ybGQ6TC5DbHJTaGFwZVdvcmxkLHNsaWRlcjpMLkNsclNoYXBlU2xpZGVyLGNsaXBib2FyZDpMLkNsclNoYXBlQ2xpcGJvYXJkLGZpcmV3YWxsOkwuQ2xyU2hhcGVGaXJl''@;'; + put 'put ''d2FsbCxsaXN0OkwuQ2xyU2hhcGVMaXN0LHJlZG86TC5DbHJTaGFwZVJlZG8sdW5kbzpMLkNsclNoYXBlVW5kbyxzY3JvbGw6TC5DbHJTaGFwZVNjcm9sbCwiZmlsZS1zZXR0aW5ncyI6TC5DbHJTaGFwZUZpbGVTZXR0aW5ncywidHdvLXdheS1hcnJvd3MiOkwuQ2xyU2hhcGVUd29XYXlBcnJv''@;'; + put 'put ''d3Msc3dpdGNoOkwuQ2xyU2hhcGVTd2l0Y2gsdG9vbHM6TC5DbHJTaGFwZVRvb2xzLCJ3aW5kb3ctY2xvc2UiOkwuQ2xyU2hhcGVXaW5kb3dDbG9zZSwid2luZG93LW1heCI6TC5DbHJTaGFwZVdpbmRvd01heCwid2luZG93LW1pbiI6TC5DbHJTaGFwZVdpbmRvd01pbiwid2luZG93LXJlc3Rv''@;'; + put 'put ''cmUiOkwuQ2xyU2hhcGVXaW5kb3dSZXN0b3JlLCJ6b29tLWluIjpMLkNsclNoYXBlWm9vbUluLCJ6b29tLW91dCI6TC5DbHJTaGFwZVpvb21PdXQsa2V5OkwuQ2xyU2hhcGVLZXksbGlicmFyeTpMLkNsclNoYXBlTGlicmFyeSxib2x0OkwuQ2xyU2hhcGVCb2x0LHdyZW5jaDpMLkNsclNoYXBl''@;'; + put 'put ''V3JlbmNoLGJ1bGxzZXllOkwuQ2xyU2hhcGVCdWxsc2V5ZSx0YXJnZXQ6TC5DbHJTaGFwZVRhcmdldCxmbGFtZTpMLkNsclNoYXBlRmxhbWUsaG91cmdsYXNzOkwuQ2xyU2hhcGVIb3VyZ2xhc3MsIm5vLWFjY2VzcyI6TC5DbHJTaGFwZU5vQWNjZXNzLG9yZ2FuaXphdGlvbjpMLkNsclNoYXBl''@;'; + put 'put ''T3JnYW5pemF0aW9uLGJhbGFuY2U6TC5DbHJTaGFwZUJhbGFuY2UsImlkLWJhZGdlIjpMLkNsclNoYXBlSWRCYWRnZSxyZXBlYXQ6TC5DbHJTaGFwZVJlcGVhdCwiZmlsZS1ncm91cCI6TC5DbHJTaGFwZUZpbGVHcm91cCxwYXBlcmNsaXA6TC5DbHJTaGFwZVBhcGVyY2xpcCxzaHJpbms6TC5D''@;'; + put 'put ''bHJTaGFwZVNocmluaywiYWNjZXNzaWJpbGl0eS0xIjpMLkNsclNoYXBlQWNjZXNzaWJpbGl0eTEsImFjY2Vzc2liaWxpdHktMiI6TC5DbHJTaGFwZUFjY2Vzc2liaWxpdHkyLCJzb3J0LWJ5IjpMLkNsclNoYXBlU29ydEJ5LCJjb2xsYXBzZS1jYXJkIjpMLkNsclNoYXBlQ29sbGFwc2VDYXJk''@;'; + put 'put ''LCJleHBhbmQtY2FyZCI6TC5DbHJTaGFwZUV4cGFuZENhcmQsYnJpZWZjYXNlOkwuQ2xyU2hhcGVCcmllZmNhc2UsImNvbG9yLXBpY2tlciI6TC5DbHJTaGFwZUNvbG9yUGlja2VyLCJjb3B5LXRvLWNsaXBib2FyZCI6TC5DbHJTaGFwZUNvcHlUb0NsaXBib2FyZCwiZmlsdGVyLTIiOkwuQ2xy''@;'; + put 'put ''U2hhcGVGaWx0ZXIyLCJkcmFnLWhhbmRsZSI6TC5DbHJTaGFwZURyYWdIYW5kbGUsbW9vbjpMLkNsclNoYXBlTW9vbixzdW46TC5DbHJTaGFwZVN1bix3YW5kOkwuQ2xyU2hhcGVXYW5kLGNsb25lOkwuQ2xyU2hhcGVDbG9uZSxkZXRhaWxzOkwuQ2xyU2hhcGVEZXRhaWxzLCJkcmFnLWhhbmRs''@;'; + put 'put ''ZS1jb3JuZXIiOkwuQ2xyU2hhcGVEcmFnSGFuZGxlQ29ybmVyLGVyYXNlcjpMLkNsclNoYXBlRXJhc2VyLGxhbmRzY2FwZTpMLkNsclNoYXBlTGFuZHNjYXBlLHBhc3RlOkwuQ2xyU2hhcGVQYXN0ZSxwb3J0cmFpdDpMLkNsclNoYXBlUG9ydHJhaXQsImZpbGUtemlwIjpMLkNsclNoYXBlRmls''@;'; + put 'put ''ZVppcCwiZmlsdGVyLW9mZiI6TC5DbHJTaGFwZUZpbHRlck9mZixyZWN5Y2xlOkwuQ2xyU2hhcGVSZWN5Y2xlLHRyZWU6TC5DbHJTaGFwZVRyZWUsZmlzaDpMLkNsclNoYXBlRmlzaCxmb3JtOkwuQ2xyU2hhcGVGb3JtLGZ1ZWw6TC5DbHJTaGFwZUZ1ZWwsc25vd2ZsYWtlOkwuQ2xyU2hhcGVT''@;'; + put 'put ''bm93Zmxha2UsdGFibGU6TC5DbHJTaGFwZVRhYmxlLCJkb3QtY2lyY2xlIjpMLkNsclNoYXBlRG90Q2lyY2xlLHZvbHVtZTpMLkNsclNoYXBlVm9sdW1lLGNyb3NzaGFpcnM6TC5DbHJTaGFwZUNyb3NzaGFpcnMsYmV0YTpMLkNsclNoYXBlQmV0YSwiY29sb3ItcGFsZXR0ZSI6TC5DbHJTaGFw''@;'; + put 'put ''ZUNvbG9yUGFsZXR0ZX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KEwuRXNzZW50aWFsU2hhcGVzLCJlZGl0IiwoMCxCLmRlc2NyaXB0b3JDb25maWcpKEwuRXNzZW50aWFsU2hhcGVzLnBlbmNpbCkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShMLkVzc2VudGlhbFNoYXBlcywibm90ZS1lZGl0Iiwo''@;'; + put 'put ''MCxCLmRlc2NyaXB0b3JDb25maWcpKEwuRXNzZW50aWFsU2hhcGVzLm5vdGUpKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoTC5Fc3NlbnRpYWxTaGFwZXMsImdyb3VwIiwoMCxCLmRlc2NyaXB0b3JDb25maWcpKEwuRXNzZW50aWFsU2hhcGVzLnVzZXJzKSksT2JqZWN0LmRlZmluZVByb3BlcnR5''@;'; + put 'put ''KEwuRXNzZW50aWFsU2hhcGVzLCJkb2N1bWVudCIsKDAsQi5kZXNjcmlwdG9yQ29uZmlnKShMLkVzc2VudGlhbFNoYXBlcy5maWxlKSksT2JqZWN0LmRlZmluZVByb3BlcnR5KEwuRXNzZW50aWFsU2hhcGVzLCJhZGQiLCgwLEIuZGVzY3JpcHRvckNvbmZpZykoTC5Fc3NlbnRpYWxTaGFwZXMu''@;'; + put 'put ''cGx1cykpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShMLkVzc2VudGlhbFNoYXBlcywiY2FuY2VsIiwoMCxCLmRlc2NyaXB0b3JDb25maWcpKEwuRXNzZW50aWFsU2hhcGVzLmJhbikpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShMLkVzc2VudGlhbFNoYXBlcywicmVtb3ZlIiwoMCxCLmRlc2NyaXB0''@;'; + put 'put ''b3JDb25maWcpKEwuRXNzZW50aWFsU2hhcGVzWyJ0aW1lcy1jaXJjbGUiXSkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShMLkVzc2VudGlhbFNoYXBlcywic2lnbi1pbiIsKDAsQi5kZXNjcmlwdG9yQ29uZmlnKShMLkVzc2VudGlhbFNoYXBlcy5sb2dpbikpLE9iamVjdC5kZWZpbmVQcm9wZXJ0''@;'; + put 'put ''eShMLkVzc2VudGlhbFNoYXBlcywic2lnbi1vdXQiLCgwLEIuZGVzY3JpcHRvckNvbmZpZykoTC5Fc3NlbnRpYWxTaGFwZXMubG9nb3V0KSksT2JqZWN0LmRlZmluZVByb3BlcnR5KEwuRXNzZW50aWFsU2hhcGVzLCJsaWdodG5pbmciLCgwLEIuZGVzY3JpcHRvckNvbmZpZykoTC5Fc3NlbnRp''@;'; + put 'put ''YWxTaGFwZXMuYm9sdCkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShMLkVzc2VudGlhbFNoYXBlcywiZmxvdy1jaGFydCIsKDAsQi5kZXNjcmlwdG9yQ29uZmlnKShMLkVzc2VudGlhbFNoYXBlcy5vcmdhbml6YXRpb24pKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoTC5Fc3NlbnRpYWxTaGFwZXMs''@;'; + put 'put ''ImFsZXJ0IiwoMCxCLmRlc2NyaXB0b3JDb25maWcpKEwuRXNzZW50aWFsU2hhcGVzWyJidWJibGUtZXhjbGFtYXRpb24iXSkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShMLkVzc2VudGlhbFNoYXBlcywicGlubmVkIiwoMCxCLmRlc2NyaXB0b3JDb25maWcpKEwuRXNzZW50aWFsU2hhcGVzLnBp''@;'; + put 'put ''bmJvYXJkKSksT2JqZWN0LmRlZmluZVByb3BlcnR5KEwuRXNzZW50aWFsU2hhcGVzLCJhdHRhY2htZW50IiwoMCxCLmRlc2NyaXB0b3JDb25maWcpKEwuRXNzZW50aWFsU2hhcGVzLnBhcGVyY2xpcCkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShMLkVzc2VudGlhbFNoYXBlcywiYXR0YWNobWVu''@;'; + put 'put ''dCIsKDAsQi5kZXNjcmlwdG9yQ29uZmlnKShMLkVzc2VudGlhbFNoYXBlcy5wYXBlcmNsaXApKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoTC5Fc3NlbnRpYWxTaGFwZXMsInJlc2l6ZS1kb3duIiwoMCxCLmRlc2NyaXB0b3JDb25maWcpKEwuRXNzZW50aWFsU2hhcGVzLnNocmluaykpLE9iamVj''@;'; + put 'put ''dC5kZWZpbmVQcm9wZXJ0eShMLkVzc2VudGlhbFNoYXBlcywicmVzaXplLXVwIiwoMCxCLmRlc2NyaXB0b3JDb25maWcpKEwuRXNzZW50aWFsU2hhcGVzLnJlc2l6ZSkpLCJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiZ3aW5kb3cuaGFzT3duUHJvcGVydHkoIkNsYXJpdHlJY29ucyIpJiZ3''@;'; + put 'put ''aW5kb3cuQ2xhcml0eUljb25zLmFkZChMLkVzc2VudGlhbFNoYXBlcyl9LCIuL3Byb2plY3RzL2ljb25zL3NyYy9zaGFwZXMvbWVkaWEtc2hhcGVzLnRzIjpmdW5jdGlvbihKZSxMLG1lKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KEwsIl9fZXNNb2R1bGUiLHt2YWx1ZToh''@;'; + put 'put ''MH0pLEwuTWVkaWFTaGFwZXM9TC5DbHJTaGFwZU1pY3JvcGhvbmVNdXRlPUwuQ2xyU2hhcGVNaWNyb3Bob25lPUwuQ2xyU2hhcGVWaWRlb0dhbGxlcnk9TC5DbHJTaGFwZVJlcGxheU9uZT1MLkNsclNoYXBlUmVwbGF5QWxsPUwuQ2xyU2hhcGVJbWFnZUdhbGxlcnk9TC5DbHJTaGFwZU11c2lj''@;'; + put 'put ''Tm90ZT1MLkNsclNoYXBlRmlsbVN0cmlwPUwuQ2xyU2hhcGVIZWFkcGhvbmVzPUwuQ2xyU2hhcGVWb2x1bWVNdXRlPUwuQ2xyU2hhcGVWb2x1bWVVcD1MLkNsclNoYXBlVm9sdW1lRG93bj1MLkNsclNoYXBlU2h1ZmZsZT1MLkNsclNoYXBlVmlkZW9DYW1lcmE9TC5DbHJTaGFwZUNhbWVyYT1M''@;'; + put 'put ''LkNsclNoYXBlRmFzdEZvcndhcmQ9TC5DbHJTaGFwZVJld2luZD1MLkNsclNoYXBlUG93ZXI9TC5DbHJTaGFwZVN0b3A9TC5DbHJTaGFwZVN0ZXBGb3J3YXJkPUwuQ2xyU2hhcGVQYXVzZT1MLkNsclNoYXBlUGxheT12b2lkIDA7dmFyIEI9bWUoIi4vcHJvamVjdHMvaWNvbnMvc3JjL3V0aWxz''@;'; + put 'put ''L3N2Zy10YWctZ2VuZXJhdG9yLnRzIik7TC5DbHJTaGFwZVBsYXk9KDAsQi5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik04LjA3LDMxLjZBMi4wNywyLjA3LDAsMCwxLDYsMjkuNTNWNi4zMkEyLjA3LDIuMDcsMCwwLDEs''@;'; + put 'put ''OSw0LjQ3TDMyLjIxLDE2LjA4YTIuMDcsMi4wNywwLDAsMSwwLDMuN0w5LDMxLjM4QTIuMDYsMi4wNiwwLDAsMSw4LjA3LDMxLjZabTAtMjUuMzRMOCw2LjMyVjI5LjUzbC4xLjA2TDMxLjMxLDE4YS4wNi4wNiwwLDAsMCwwLS4wNloiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0i''@;'; + put 'put ''Y2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzIuMTYsMTYuMDgsOC45NCw0LjQ3QTIuMDcsMi4wNywwLDAsMCw2LDYuMzJWMjkuNTNhMi4wNiwyLjA2LDAsMCwwLDMsMS44NUwzMi4xNiwxOS43N2EyLjA3LDIuMDcsMCwwLDAsMC0zLjdaIi8+JyksTC5DbHJTaGFwZVBhdXNl''@;'; + put 'put ''PSgwLEIuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMTIuOTMsMzJINi4wN0EyLjA3LDIuMDcsMCwwLDEsNCwyOS45M1Y2LjA3QTIuMDcsMi4wNywwLDAsMSw2LjA3LDRoNi44N0EyLjA3LDIuMDcsMCwwLDEsMTUsNi4w''@;'; + put 'put ''N1YyOS45M0EyLjA3LDIuMDcsMCwwLDEsMTIuOTMsMzJaTTEzLDZINlYzMGg3WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMjkuOTMsMzJIMjMuMDdBMi4wNywyLjA3LDAsMCwxLDIxLDI5LjkzVjYuMDdB''@;'; + put 'put ''Mi4wNywyLjA3LDAsMCwxLDIzLjA3LDRoNi44N0EyLjA3LDIuMDcsMCwwLDEsMzIsNi4wN1YyOS45M0EyLjA3LDIuMDcsMCwwLDEsMjkuOTMsMzJaTTMwLDZIMjNWMzBoN1oiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiB4''@;'; + put 'put ''PSIzLjk1IiB5PSI0IiB3aWR0aD0iMTEiIGhlaWdodD0iMjgiIHJ4PSIyLjA3IiByeT0iMi4wNyIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIHg9IjIwLjk1IiB5PSI0IiB3aWR0aD0iMTEiIGhlaWdodD0iMjgiIHJ4PSIy''@;'; + put 'put ''LjA3IiByeT0iMi4wNyIvPicpLEwuQ2xyU2hhcGVTdGVwRm9yd2FyZD0oMCxCLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTUsMzIuMjNhMiwyLDAsMCwxLTItMlY1Ljc3QTIsMiwwLDAsMSw2LjE3LDQuMTRMMjMuMjMs''@;'; + put 'put ''MTYuMzhhMiwyLDAsMCwxLDAsMy4yNWgwTDYuMTcsMzEuODZBMiwyLDAsMCwxLDUsMzIuMjNaTTUsNS43N1YzMC4yM0wyMi4wNywxOFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTMxLDMySDI4YTIsMiww''@;'; + put 'put ''LDAsMS0yLTJWNmEyLDIsMCwwLDEsMi0yaDNhMiwyLDAsMCwxLDIsMlYzMEEyLDIsMCwwLDEsMzEsMzJaTTI4LDZWMzBoM1Y2WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik01LDMxLjlhMiwyLDAsMCwxLTItMlY1''@;'; + put 'put ''LjQ0QTIsMiwwLDAsMSw2LjEyLDMuODFMMjMuMTgsMTZhMiwyLDAsMCwxLDAsMy4yNWgwTDYuMTIsMzEuNTJBMiwyLDAsMCwxLDUsMzEuOVoiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiB4PSIyNS45NSIgeT0iMy42NyIg''@;'; + put 'put ''d2lkdGg9IjciIGhlaWdodD0iMjgiIHJ4PSIyIiByeT0iMiIvPicpLEwuQ2xyU2hhcGVTdG9wPSgwLEIuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzAsMzJINmEyLDIsMCwwLDEtMi0yVjZBMiwyLDAsMCwxLDYsNEgz''@;'; + put 'put ''MGEyLDIsMCwwLDEsMiwyVjMwQTIsMiwwLDAsMSwzMCwzMlpNNiw2VjMwSDMwVjZaIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgeD0iMy45NiIgeT0iNCIgd2lkdGg9IjI3Ljk5IiBoZWlnaHQ9IjI4IiByeD0iMiIgcnk9''@;'; + put 'put ''IjIiLz4nKSxMLkNsclNoYXBlUG93ZXI9KDAsQi5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xOCwyMWExLDEsMCwwLDEtMS0xVjRhMSwxLDAsMCwxLDIsMFYyMEExLDEsMCwwLDEsMTgsMjFaIi8+XG4gICAgICAgICAg''@;'; + put 'put ''ICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0xOCwzNC4xNWExNSwxNSwwLDAsMS03LjUyLTI4LDEsMSwwLDAsMSwxLDEuNzMsMTMsMTMsMCwxLDAsMTMsMCwxLDEsMCwxLDEsMS0xLjczLDE1LDE1LDAsMCwxLTcuNTIsMjhaIi8+XG4g''@;'; + put 'put ''ICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0xOCwyMWExLDEsMCwwLDAsMS0xVjRhMSwxLDAsMCwwLTIsMFYyMEExLDEsMCwwLDAsMTgsMjFaIi8+XG4gICAgICAgICAgICAgICAgPHBh''@;'; + put 'put ''dGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIGQ9Ik0zMi41MSwxNS40SDMwLjQ0YTEzLDEzLDAsMSwxLTE5LTcuNSwxLDEsMCwwLDAtMS0xLjczQTE1LDE1LDAsMSwwLDMzLDE5LjE1LDE0LjksMTQuOSwwLDAsMCwzMi41MSwx''@;'; + put 'put ''NS40WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwx''@;'; + put 'put ''LjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMTgsMjFhMSwxLDAsMCwxLTEt''@;'; + put 'put ''MVY0YTEsMSwwLDAsMSwyLDBWMjBBMSwxLDAsMCwxLDE4LDIxWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgZD0iTTMwLDEzLjVsLS4zMSwwQTEzLDEzLDAsMSwxLDExLjQ4LDcuOWEx''@;'; + put 'put ''LDEsMCwwLDAtMS0xLjczLDE1LDE1LDAsMSwwLDIxLjMxLDcuMUE3LjQ5LDcuNDksMCwwLDEsMzAsMTMuNVoiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9''@;'; + put 'put ''IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJabS4wNiwxNy42OGExLjI4LDEuMjgsMCwwLDEtMS4yOS0xLjI4Vjgu''@;'; + put 'put ''NjVhMS4yOSwxLjI5LDAsMCwxLDIuNTgsMFYxOC40QTEuMjgsMS4yOCwwLDAsMSwxOC4wNiwxOS42OFpNMTgsMjcuNzlBOS44OCw5Ljg4LDAsMCwxLDEyLjE3LDkuODVhMS40LDEuNCwwLDAsMSwxLjk0LjMxLDEuMzcsMS4zNywwLDAsMS0uMzEsMS45Miw3LjE4LDcuMTgsMCwxLDAsMTEuNDMs''@;'; + put 'put ''NS44LDcuMDcsNy4wNywwLDAsMC0zLTUuNzZBMS4zNywxLjM3LDAsMCwxLDIyLDEwLjJhMS40LDEuNCwwLDAsMSwxLjk0LS4yOUE5Ljg4LDkuODgsMCwwLDEsMTgsMjcuNzlaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlk''@;'; + put 'put ''LXBhdGgtMS0tYWxlcnRlZCIgZD0iTTMzLjY4LDE1LjRoLTZBOS43LDkuNywwLDAsMSwyOCwxNy44OWExMCwxMCwwLDEsMS0xNS44My04LDEuNCwxLjQsMCwwLDEsMS45NC4zMSwxLjM3LDEuMzcsMCwwLDEtLjMxLDEuOTIsNy4xOCw3LjE4LDAsMSwwLDExLjQzLDUuOCw3LjA4LDcuMDgsMCww''@;'; + put 'put ''LDAtLjQ1LTIuNDlIMjIuMjNBMy42OSwzLjY5LDAsMCwxLDE5LjM1LDE0djQuNGExLjI5LDEuMjksMCwwLDEtMi41OCwwVjguNjVhMS4yOSwxLjI5LDAsMCwxLDIuNTgsMHYuNzFsMy43Ni02LjUxQTE2LDE2LDAsMSwwLDM0LDE4YTE2LDE2LDAsMCwwLS4yMy0yLjYxWiIvPlxuICAgICAgICAg''@;'; + put 'put ''ICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjku''@;'; + put 'put ''MDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgZD0iTTMwLDEzLjVhNy40Nyw3LjQ3LDAsMCwxLTMuNTctLjlBOS44Myw5LjgzLDAs''@;'; + put 'put ''MCwxLDI4LDE3Ljg5YTEwLDEwLDAsMSwxLTE1LjgzLTgsMS40LDEuNCwwLDAsMSwxLjk0LjMxLDEuMzcsMS4zNywwLDAsMS0uMzEsMS45Miw3LjE4LDcuMTgsMCwxLDAsMTEuNDMsNS44LDcuMDcsNy4wNywwLDAsMC0zLTUuNzZBMS4zNywxLjM3LDAsMCwxLDIyLDEwLjJhMS4zOCwxLjM4LDAs''@;'; + put 'put ''MCwxLDEuNTItLjQ5LDcuNDUsNy40NSwwLDAsMS0uMy02LjgzLDE2LjA2LDE2LjA2LDAsMSwwLDkuOTMsOS45M0E3LjQ2LDcuNDYsMCwwLDEsMzAsMTMuNVpNMTYuNzcsOC42NWExLjI5LDEuMjksMCwwLDEsMi41OCwwVjE4LjRhMS4yOSwxLjI5LDAsMCwxLTIuNTgsMFoiLz5cbiAgICAgICAg''@;'; + put 'put ''ICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+JyksTC5DbHJTaGFwZVJld2luZD0oMCxCLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0''@;'; + put 'put ''bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTE3LjA5LDMxLjU4bC0xNS4zMi0xMmEyLDIsMCwwLDEsMC0zLjE1bDE1LjMyLTEyYTEuOTMsMS45MywwLDAsMSwyLjA2LS4yMkExLjc3LDEuNzcsMCwwLDEsMjAsNnY2LjdMMzAuODMsNC40MmExLjkzLDEuOTMsMCwwLDEsMi4wNi0uMjJB''@;'; + put 'put ''MiwyLDAsMCwxLDM0LDZWMzBhMiwyLDAsMCwxLTEuMTEsMS43OSwxLjk0LDEuOTQsMCwwLDEtMi4wNi0uMjJMMjAsMjMuMzFWMzBhMS43NywxLjc3LDAsMCwxLS44NSwxLjc5LDEuOTQsMS45NCwwLDAsMS0yLjA2LS4yMlpNMzIsMzBsLjA2LTI0TDE4LDE2LjhWNkwzLDE4LDE4LDMwVjE5LjJa''@;'; + put 'put ''Ii8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMTYuOTIsMzEuNTgsMS42LDE5LjU3YTIsMiwwLDAsMSwwLTMuMTVsMTUuMzItMTJBMS45MywxLjkzLDAsMCwxLDE5LDQuMiwxLjg5LDEuODksMCwwLDEsMjAsNnY2LjdMMzAu''@;'; + put 'put ''NjYsNC40MmExLjkzLDEuOTMsMCwwLDEsMi4wNi0uMjJBMiwyLDAsMCwxLDMzLjgzLDZWMzBhMiwyLDAsMCwxLTEuMTEsMS43OSwxLjk0LDEuOTQsMCwwLDEtMi4wNi0uMjJMMjAsMjMuMzFWMzBhMS44OSwxLjg5LDAsMCwxLTEsMS43OSwxLjk0LDEuOTQsMCwwLDEtMi4wNi0uMjJaIi8+Jyks''@;'; + put 'put ''TC5DbHJTaGFwZUZhc3RGb3J3YXJkPSgwLEIuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMTcuNzcsMzEuOTJhMiwyLDAsMCwxLS44Ni0uMkExLjgxLDEuODEsMCwwLDEsMTYsMjkuOTN2LTYuN0w1LjI0LDMxLjVhMS45''@;'; + put 'put ''NCwxLjk0LDAsMCwxLTIuMDYuMjIsMiwyLDAsMCwxLTEuMTEtMS43OXYtMjRBMiwyLDAsMCwxLDMuMTgsNC4xMmExLjkzLDEuOTMsMCwwLDEsMi4wNi4yMkwxNiwxMi42MVY1LjkxYTEuODEsMS44MSwwLDAsMSwuOTEtMS43OUExLjkzLDEuOTMsMCwwLDEsMTksNC4zNGwxNS4zMiwxMmEyLDIs''@;'; + put 'put ''MCwwLDEsMCwzLjE1TDE5LDMxLjVBMiwyLDAsMCwxLDE3Ljc3LDMxLjkyWm0wLTEyLjhWMjkuOTNsMTUuMjYtMTItMTUuMzItMTIsLjA2LDEwLjgxTDQsNS45MXYyNFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0xNy43''@;'; + put 'put ''MSwzMmEyLDIsMCwwLDEtLjg2LS4yQTEuNzcsMS43NywwLDAsMSwxNiwzMHYtNi43TDUuMTcsMzEuNThhMS45NCwxLjk0LDAsMCwxLTIuMDYuMjJBMiwyLDAsMCwxLDIsMzBWNkEyLDIsMCwwLDEsMy4xMSw0LjJhMS45MywxLjkzLDAsMCwxLDIuMDYuMjJMMTYsMTIuNjlWNmExLjc3LDEuNzcs''@;'; + put 'put ''MCwwLDEsLjg1LTEuNzksMS45MywxLjkzLDAsMCwxLDIuMDYuMjJsMTUuMzIsMTJhMiwyLDAsMCwxLDAsMy4xNWwtMTUuMzIsMTJBMiwyLDAsMCwxLDE3LjcxLDMyWiIvPicpLEwuQ2xyU2hhcGVDYW1lcmE9KDAsQi5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMyLDhIMjQuN0wyMy42NCw1LjI4''@;'; + put 'put ''QTIsMiwwLDAsMCwyMS43OCw0SDE0LjIyYTIsMiwwLDAsMC0xLjg3LDEuMjhMMTEuMyw4SDRhMiwyLDAsMCwwLTIsMlYzMGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMTBBMiwyLDAsMCwwLDMyLDhabTAsMjJINFYxMGg4LjY3bDEuNTUtNGg3LjU2bDEuNTUsNEgzMloiIGNsYXNz''@;'; + put 'put ''PSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNOSwxOWE5LDksMCwxLDAsOS05QTksOSwwLDAsMCw5LDE5Wm0xNi40LDBBNy40LDcuNCwwLDEsMSwxOCwxMS42LDcuNDEsNy40MSwwLDAsMSwyNS40LDE5WiIgY2xhc3M9ImNsci1p''@;'; + put 'put ''LW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik05LjM3LDEyLjgzYS44LjgsMCwwLDAtLjgtLjhINi4xN2EuOC44LDAsMCwwLDAsMS42aDIuNEEuOC44LDAsMCwwLDkuMzcsMTIuODNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRs''@;'; + put 'put ''aW5lLXBhdGgtMyIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTEyLjM0LDE5YTUuNTcsNS41NywwLDAsMCwzLjI0LDVsLjg1LTEuMzdhNCw0LDAsMSwxLDQuMTEtNi42MWwuODYtMS4zOEE1LjU2LDUuNTYsMCwwLDAsMTIuMzQsMTlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRs''@;'; + put 'put ''aW5lLXBhdGgtNCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMyLDhIMjQuN0wyMy42NCw1LjI4QTIsMiwwLDAsMCwyMS43OCw0SDE0LjIyYTIsMiwwLDAsMC0xLjg3LDEuMjhMMTEuMyw4SDRhMiwyLDAsMCwwLTIsMlYzMGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMTBBMiwy''@;'; + put 'put ''LDAsMCwwLDMyLDhaTTYuMTcsMTMuNjNhLjguOCwwLDAsMSwwLTEuNmgyLjRhLjguOCwwLDAsMSwwLDEuNlpNMTgsMjhhOSw5LDAsMSwxLDktOUE5LDksMCwwLDEsMTgsMjhaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJN''@;'; + put 'put ''MTEuMTEsMTkuMDZhNy4wNyw3LjA3LDAsMCwwLDQuMTEsNi40MWwxLjA5LTEuNzRhNSw1LDAsMSwxLDUuMjItOC4zOWwxLjA5LTEuNzZhNy4wNiw3LjA2LDAsMCwwLTExLjUxLDUuNDhaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIi8+JyksTC5DbHJTaGFwZVZpZGVv''@;'; + put 'put ''Q2FtZXJhPSgwLEIuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzQsMTAuMzRhMi4xMSwyLjExLDAsMCwwLTEuMTYtMS45LDIsMiwwLDAsMC0yLjEzLjE1TDI2LDExLjZWOGEyLDIsMCwwLDAtMi0ySDZhNCw0LDAsMCww''@;'; + put 'put ''LTQsNFYyNmE0LDQsMCwwLDAsNCw0SDI0YTIsMiwwLDAsMCwyLTJWMjQuNGw0LjY0LDNhMi4wNywyLjA3LDAsMCwwLDIuMi4yQTIuMTEsMi4xMSwwLDAsMCwzNCwyNS42NlpNMzEuOTMsMjUuNzdjLS4wNiwwLS4xMSwwLS4xOS0uMDZMMjQsMjAuNzdWMjhINmEyLDIsMCwwLDEtMi0yVjEwQTIs''@;'; + put 'put ''MiwwLDAsMSw2LDhIMjR2Ny4yM2w3LjgtNWEuMTEuMTEsMCwwLDEsLjEzLDAsLjExLjExLDAsMCwxLC4wNy4xMVYyNS42NkEuMTEuMTEsMCwwLDEsMzEuOTMsMjUuNzdaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzIu''@;'; + put 'put ''Myw5LjM1LDI2LDEyLjlWOGEyLDIsMCwwLDAtMi0ySDZhNCw0LDAsMCwwLTQsNFYyNmE0LDQsMCwwLDAsNCw0SDI0YTIsMiwwLDAsMCwyLTJWMjMuMDhsNi4zLDMuNTVBMS4xLDEuMSwwLDAsMCwzNCwyNS43N1YxMC4yQTEuMSwxLjEsMCwwLDAsMzIuMyw5LjM1WiIvPicpLEwuQ2xyU2hhcGVT''@;'; + put 'put ''aHVmZmxlPSgwLEIuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMjEuNjEsMTFoOC42MmwtMy4zLDMuM2ExLDEsMCwxLDAsMS40MSwxLjQyTDM0LDEwLjA4bC0uNzEtLjcxaDBMMjguMzQsNC40M2ExLDEsMCwwLDAtMS40''@;'; + put 'put ''MSwxLjQyTDMwLjExLDlIMjFhMSwxLDAsMCwwLS44Ni41TDE3LjUsMTQuMDlsMS4xNiwyWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0xMS4wNywyNS4wN0gzYTEsMSwwLDAsMCwwLDJoOC42NWExLDEsMCwwLDAs''@;'; + put 'put ''Ljg2LS41TDE1LjE4LDIyLDE0LDIwWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIGQ9Ik0yOC4zNCwyMC4xN2ExLDEsMCwwLDAtMS40MSwxLjQybDMuNSwzLjVIMjEuNjFMMTIuNTEsOS41M2ExLDEsMCwwLDAtLjg2LS41''@;'; + put 'put ''SDNhMSwxLDAsMSwwLDAsMmg4LjA3bDkuMSwxNS41NWExLDEsMCwwLDAsLjg2LjVIMjkuOWwtMywzYTEsMSwwLDAsMCwxLjQxLDEuNDJsNC45NS00Ljk0aDBsLjcxLS43MVoiLz4nKSxMLkNsclNoYXBlVm9sdW1lRG93bj0oMCxCLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0''@;'; + put 'put ''bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTIzLjQxLDI1LjExYTEsMSwwLDAsMS0uNTQtMS44NSw2LjIxLDYuMjEsMCwwLDAtLjE5LTEwLjY1LDEsMSwwLDEsMSwxLTEuNzNBOC4yMSw4LjIxLDAsMCwxLDIzLjk0LDI1LDEsMSwwLDAsMSwyMy40MSwyNS4xMVoiLz5cbiAgICAgICAg''@;'; + put 'put ''ICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMTgsMzJhMiwyLDAsMCwxLTEuNDItLjU5TDkuMTQsMjRINGEyLDIsMCwwLDEtMi0yVjE0YTIsMiwwLDAsMSwyLTJIOS4yMmw3LjMzLTcuNDFBMiwyLDAsMCwxLDIwLDZWMzBhMiwyLDAsMCwx''@;'; + put 'put ''LTEuMjQsMS44NUEyLDIsMCwwLDEsMTgsMzJaTTQsMTR2OEg5LjU2YTEsMSwwLDAsMSwuNzEuMjhMMTgsMzBWNmwtNy42NSw3LjY4YTEsMSwwLDAsMS0uNzEuM1pNMTgsNloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0y''@;'; + put 'put ''My40MSwyNS4xMWExLDEsMCwwLDEtLjU0LTEuODUsNi4yMSw2LjIxLDAsMCwwLS4xOS0xMC42NSwxLDEsMCwxLDEsMS0xLjczQTguMjEsOC4yMSwwLDAsMSwyMy45NCwyNSwxLDEsMCwwLDEsMjMuNDEsMjUuMTFaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xy''@;'; + put 'put ''LWktc29saWQtcGF0aC0yIiBkPSJNMTguMzQsMy44Nyw5LDEySDNhMSwxLDAsMCwwLTEsMVYyM2ExLDEsMCwwLDAsMSwxSDguODNsOS41MSw4LjNBMSwxLDAsMCwwLDIwLDMxLjU1VjQuNjJBMSwxLDAsMCwwLDE4LjM0LDMuODdaIi8+JyksTC5DbHJTaGFwZVZvbHVtZVVwPSgwLEIuY2xySWNv''@;'; + put 'put ''blNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMjMuNDEsMjUuMjVhMSwxLDAsMCwxLS41NC0xLjg1LDYuMjEsNi4yMSwwLDAsMC0uMTktMTAuNjUsMSwxLDAsMSwxLDEtMS43Myw4LjIxLDguMjEsMCwwLDEsLjI0LDE0LjA2QTEsMSww''@;'; + put 'put ''LDAsMSwyMy40MSwyNS4yNVoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMjUuNjIsMzEuMThhMSwxLDAsMCwxLS40NS0xLjg5QTEyLjQ0LDEyLjQ0LDAsMCwwLDI1LDYuODlhMSwxLDAsMSwxLC44Ny0xLjgsMTQu''@;'; + put 'put ''NDQsMTQuNDQsMCwwLDEsLjI0LDI2QTEsMSwwLDAsMSwyNS42MiwzMS4xOFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJNMTgsMzIuMDZhMiwyLDAsMCwxLTEuNDItLjU5TDkuMTQsMjRINGEyLDIsMCwwLDEtMi0y''@;'; + put 'put ''VjE0YTIsMiwwLDAsMSwyLTJIOS4yMmw3LjMzLTcuMzlBMiwyLDAsMCwxLDIwLDZ2MjRhMiwyLDAsMCwxLTEuMjQsMS44NUEyLDIsMCwwLDEsMTgsMzIuMDZaTTQsMTR2OEg5LjU2YTEsMSwwLDAsMSwuNzEuM0wxOCwzMC4wNlY2TDEwLjM1LDEzLjdhMSwxLDAsMCwxLS43MS4zWk0xOCw2WiIv''@;'; + put 'put ''PlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTIzLjQxLDI1LjI1YTEsMSwwLDAsMS0uNTQtMS44NSw2LjIxLDYuMjEsMCwwLDAtLjE5LTEwLjY1LDEsMSwwLDEsMSwxLTEuNzMsOC4yMSw4LjIxLDAsMCwxLC4yNCwxNC4wNkEx''@;'; + put 'put ''LDEsMCwwLDEsMjMuNDEsMjUuMjVaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiBkPSJNMjUuNjIsMzEuMThhMSwxLDAsMCwxLS40NS0xLjg5QTEyLjQ0LDEyLjQ0LDAsMCwwLDI1LDYuODlhMSwxLDAsMSwxLC44Ny0xLjgsMTQu''@;'; + put 'put ''NDQsMTQuNDQsMCwwLDEsLjI0LDI2QTEsMSwwLDAsMSwyNS42MiwzMS4xOFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIGQ9Ik0xOC4zMyw0LDkuMDcsMTJoLTZhMSwxLDAsMCwwLTEsMXY5LjkyYTEsMSwwLDAsMCwxLDFIOC44''@;'; + put 'put ''OGw5LjQ2LDguMjRBMSwxLDAsMCwwLDIwLDMxLjQzVjQuNzJBMSwxLDAsMCwwLDE4LjMzLDRaIi8+JyksTC5DbHJTaGFwZVZvbHVtZU11dGU9KDAsQi5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zLjYxLDYuNDEsOS4x''@;'; + put 'put ''OSwxMkg0YTIsMiwwLDAsMC0yLDJ2OGEyLDIsMCwwLDAsMiwySDkuMTRsNy40MSw3LjQ3QTIsMiwwLDAsMCwxOCwzMmEyLDIsMCwwLDAsLjc2LS4xNUEyLDIsMCwwLDAsMjAsMzBWMjIuNzdsNS44OSw1Ljg5Yy0uMjUuMTUtLjQ5LjI5LS43NS40MmExLDEsMCwwLDAsLjksMS43OSwxNC40LDE0''@;'; + put 'put ''LjQsMCwwLDAsMS4zMS0uNzVsMi4yOCwyLjI4TDMxLDMxLDUsNVpNMTgsMzBsLTcuNzMtNy43N0ExLDEsMCwwLDAsOS41NiwyMkg0VjE0SDkuNjRhMSwxLDAsMCwwLC43MS0uM2wuMjYtLjI2TDE4LDIwLjgxWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xy''@;'; + put 'put ''LWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0yNC44OSw2LjY5QTEyLjQyLDEyLjQyLDAsMCwxLDI5LDI2LjFsMS40MiwxLjQyQTE0LjQyLDE0LjQyLDAsMCwwLDI1Ljc2LDQuODhhMSwxLDAsMSwwLS44NywxLjhaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHIt''@;'; + put 'put ''aS1vdXRsaW5lLXBhdGgtMyIgZD0iTTIyLjY5LDEyLjYyQTYuMjcsNi4yNywwLDAsMSwyNS44LDE4YTYuMTcsNi4xNywwLDAsMS0xLjI0LDMuNzFMMjYsMjMuMTNBOC4xNSw4LjE1LDAsMCwwLDI3LjgsMThhOC4yOCw4LjI4LDAsMCwwLTQuMS03LjExLDEsMSwwLDEsMC0xLDEuNzNaIi8+XG4g''@;'; + put 'put ''ICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgZD0iTTE4LDZ2OS4xNWwyLDJWNmEyLDIsMCwwLDAtMy40Mi0xLjQxTDEyLDkuMTdsMS40MSwxLjQxWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1p''@;'; + put 'put ''LXNvbGlkLXBhdGgtMSIgZD0iTTI0Ljg3LDYuNjlBMTIuNDIsMTIuNDIsMCwwLDEsMjguNzUsMjYuM2wxLjQyLDEuNDJBMTQuNDMsMTQuNDMsMCwwLDAsMjUuNzQsNC44OGExLDEsMCwwLDAtLjg3LDEuOFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1z''@;'; + put 'put ''b2xpZC1wYXRoLTIiIGQ9Ik0yNy4zLDI3LjY3aDBsLTMuODQtMy44NC0uNTctLjU3aDBMNC42Myw1LDMuMjEsNi40MSw4LjgsMTJIM2ExLDEsMCwwLDAtMSwxVjIzYTEsMSwwLDAsMCwxLDFIOC44M2w5LjUxLDguM0ExLDEsMCwwLDAsMjAsMzEuNTVWMjMuMmw1LjU5LDUuNTljLS4xNy4xLS4z''@;'; + put 'put ''NC4yLS41MS4yOWExLDEsMCwwLDAsLjksMS43OWMuMzctLjE5LjcyLS40LDEuMDgtLjYybDIuMTQsMi4xNEwzMC42MSwzMWwtMy4yNS0zLjI1WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIgZD0iTTIyLjY5LDEyLjYyQTYuMjcs''@;'; + put 'put ''Ni4yNywwLDAsMSwyNS44LDE4YTYuMTcsNi4xNywwLDAsMS0xLjQyLDMuOTJsMS40MiwxLjQyYTguMTYsOC4xNiwwLDAsMCwyLTUuMzQsOC4yOCw4LjI4LDAsMCwwLTQuMS03LjExLDEsMSwwLDEsMC0xLDEuNzNaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xy''@;'; + put 'put ''LWktc29saWQtcGF0aC00IiBkPSJNMjAsNC42MmExLDEsMCwwLDAtMS42Ni0uNzVsLTYuNDIsNS42TDIwLDE3LjU0WiIvPicpLEwuQ2xyU2hhcGVIZWFkcGhvbmVzPSgwLEIuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJN''@;'; + put 'put ''MTgsM0ExNC4yNywxNC4yNywwLDAsMCw0LDE3LjVWMzFIOS4yQTIuNzQsMi43NCwwLDAsMCwxMiwyOC4zM1YyMS42N0EyLjc0LDIuNzQsMCwwLDAsOS4yLDE5SDZWMTcuNUExMi4yNywxMi4yNywwLDAsMSwxOCw1LDEyLjI3LDEyLjI3LDAsMCwxLDMwLDE3LjVWMTlIMjYuOEEyLjc0LDIuNzQs''@;'; + put 'put ''MCwwLDAsMjQsMjEuNjd2Ni42N0EyLjc0LDIuNzQsMCwwLDAsMjYuOCwzMUgzMlYxNy41QTE0LjI3LDE0LjI3LDAsMCwwLDE4LDNaTTkuMiwyMWEuNzUuNzUsMCwwLDEsLjguNjd2Ni42N2EuNzUuNzUsMCwwLDEtLjguNjdINlYyMVpNMjYsMjguMzNWMjEuNjdhLjc1Ljc1LDAsMCwxLC44LS42''@;'; + put 'put ''N0gzMHY4SDI2LjhBLjc1Ljc1LDAsMCwxLDI2LDI4LjMzWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTE4LDNBMTQuMjcsMTQuMjcsMCwwLDAsNCwxNy41VjMxSDguMkExLjc0LDEuNzQsMCwwLDAsMTAsMjkuMzNWMjIu''@;'; + put 'put ''NjdBMS43NCwxLjc0LDAsMCwwLDguMiwyMUg2VjE3LjVBMTIuMjcsMTIuMjcsMCwwLDEsMTgsNSwxMi4yNywxMi4yNywwLDAsMSwzMCwxNy41VjIxSDI3LjhBMS43NCwxLjc0LDAsMCwwLDI2LDIyLjY3djYuNjdBMS43NCwxLjc0LDAsMCwwLDI3LjgsMzFIMzJWMTcuNUExNC4yNywxNC4yNyww''@;'; + put 'put ''LDAsMCwxOCwzWiIvPicpLEwuQ2xyU2hhcGVGaWxtU3RyaXA9KDAsQi5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMCw0SDZBMiwyLDAsMCwwLDQsNlYzMGEyLDIsMCwwLDAsMiwySDMwYTIsMiwwLDAsMCwyLTJWNkEy''@;'; + put 'put ''LDIsMCwwLDAsMzAsNFptMCwyNkg2VjZIMzBaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTE0LjYsMjMuMDdhMS4yOSwxLjI5LDAsMCwwLDEuMjQuMDlsOC43My00YTEuMywxLjMsMCwwLDAsMC0yLjM3aDBsLTgu''@;'; + put 'put ''NzMtNEExLjMsMS4zLDAsMCwwLDE0LDE0djhBMS4yOSwxLjI5LDAsMCwwLDE0LjYsMjMuMDdabTEtOC42TDIzLjMxLDE4LDE1LjYsMjEuNTFaIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgeD0iOCIgeT0iNyIgd2lkdGg9''@;'; + put 'put ''IjIiIGhlaWdodD0iMyIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIHg9IjE0IiB5PSI3IiB3aWR0aD0iMiIgaGVpZ2h0PSIzIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRs''@;'; + put 'put ''aW5lLXBhdGgtNSIgeD0iMjAiIHk9IjciIHdpZHRoPSIyIiBoZWlnaHQ9IjMiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02IiB4PSIyNiIgeT0iNyIgd2lkdGg9IjIiIGhlaWdodD0iMyIvPlxuICAgICAgICAgICAgPHJlY3Qg''@;'; + put 'put ''Y2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTciIHg9IjgiIHk9IjI2IiB3aWR0aD0iMiIgaGVpZ2h0PSIzIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtOCIgeD0iMTQiIHk9IjI2IiB3aWR0aD0iMiIg''@;'; + put 'put ''aGVpZ2h0PSIzIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtOSIgeD0iMjAiIHk9IjI2IiB3aWR0aD0iMiIgaGVpZ2h0PSIzIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5l''@;'; + put 'put ''LXBhdGgtMTAiIHg9IjI2IiB5PSIyNiIgd2lkdGg9IjIiIGhlaWdodD0iMyIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTMwLDRINkEyLDIsMCwwLDAsNCw2VjMwYTIsMiwwLDAsMCwyLDJIMzBhMiwyLDAsMCwwLDItMlY2''@;'; + put 'put ''QTIsMiwwLDAsMCwzMCw0Wk0yMCw3aDJ2M0gyMFpNMTQsN2gydjNIMTRaTTEwLDI5SDhWMjZoMlptMC0xOUg4VjdoMlptNiwxOUgxNFYyNmgyWm02LDBIMjBWMjZoMlptMy4xNi0xMC4xNkwxNS4zOSwyMy4yQTEsMSwwLDAsMSwxNCwyMi4yOFYxMy41N2ExLDEsMCwwLDEsMS40MS0uOTFMMjUu''@;'; + put 'put ''MTYsMTdBMSwxLDAsMCwxLDI1LjE2LDE4Ljg0Wk0yOCwyOUgyNlYyNmgyWm0wLTE5SDI2VjdoMloiLz4nKSxMLkNsclNoYXBlTXVzaWNOb3RlPSgwLEIuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIlxuICAgICAgICAgICAgICAg''@;'; + put 'put ''IGQ9Ik0zMS42OCw2LjE2Yy0xLjkyLTMuMy0xMC42LTQtMTEuNTgtNC4wOUwxOSwyVjIyLjM0YTUuODksNS44OSwwLDAsMC0uODItLjU2LDguMzMsOC4zMywwLDAsMC02LjUzLS40MUM3LjU3LDIyLjcsNC45MiwyNi41LDUuNzgsMjkuODRhNS4zMyw1LjMzLDAsMCwwLDIuNjYsMy4zMiw3LjQ4''@;'; + put 'put ''LDcuNDgsMCwwLDAsMy42MS44OEE5LjU0LDkuNTQsMCwwLDAsMTUsMzMuNTdjMy42Ny0xLjE4LDYuMTctNC4zMyw2LjA2LTcuMzZWOS4zNGEyOS4xNCwyOS4xNCwwLDAsMSw2LjU1LDEuNDMsMSwxLDAsMSwwLC43Mi0xLjg3QTMxLjM3LDMxLjM3LDAsMCwwLDIxLDcuMzNWNC4xN2MzLjMzLjM2''@;'; + put 'put ''LDgsMS4zOCw4LjkyLDMsMiwzLjQxLTIuMzMsNy4zNi0yLjM3LDcuNGExLDEsMCwwLDAsMS4zMywxLjQ5QzI5LjE1LDE1Ljg1LDM0LjUsMTEsMzEuNjgsNi4xNlpNMTQuMzUsMzEuNjdhNi40Myw2LjQzLDAsMCwxLTUtLjI2LDMuMzEsMy4zMSwwLDAsMS0xLjY5LTIuMDdjLS42LTIuMzMsMS40''@;'; + put 'put ''NS01LjA1LDQuNTgtNi4wNmE3LjUyLDcuNTIsMCwwLDEsMi4zLS4zNyw1LjUyLDUuNTIsMCwwLDEsMi42NS42MiwzLjMxLDMuMzEsMCwwLDEsMS42OSwyLjA3QzE5LjU0LDI3Ljk0LDE3LjQ5LDMwLjY2LDE0LjM1LDMxLjY3WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNv''@;'; + put 'put ''bGlkIGNsci1pLXNvbGlkLXBhdGgtMSJcbiAgICAgICAgICAgICAgICBkPSJNMzEuNjgsNi4xNmMtMS45Mi0zLjMtMTAuNi00LTExLjU4LTQuMDlMMTksMlYyMi4yOWE1Ljg4LDUuODgsMCwwLDAtLjgxLS41NSw4LjMzLDguMzMsMCwwLDAtNi41My0uNDFjLTQuMTIsMS4zMy02Ljc3LDUuMTMt''@;'; + put 'put ''NS45MSw4LjQ3YTUuMzMsNS4zMywwLDAsMCwyLjY2LDMuMzIsNy40OCw3LjQ4LDAsMCwwLDMuNjEuODhBOS41NCw5LjU0LDAsMCwwLDE1LDMzLjUyYzMuNy0xLjE5LDYuMi00LjM3LDYuMDYtNy40MiwwLDAsMCwwLDAsMFY4LjQ5YzEsLjEyLDIuMzcuMzMsMy44Mi42NGExMS4xNywxMS4xNyww''@;'; + put 'put ''LDAsMSw0LjA2LDEuNDZjMSwuNjYuMzgsMS45LjMzLDJhMTEuOCwxMS44LDAsMCwxLTEuNjYsMiwxLDEsMCwwLDAsMS4zMywxLjQ5QzI5LjE1LDE1Ljg1LDM0LjUsMTEsMzEuNjgsNi4xNloiLz4nKSxMLkNsclNoYXBlSW1hZ2VHYWxsZXJ5PSgwLEIuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0z''@;'; + put 'put ''Mi4xMiwxMEgzLjg4QTEuODgsMS44OCwwLDAsMCwyLDExLjg4VjMwLjEyQTEuODgsMS44OCwwLDAsMCwzLjg4LDMySDMyLjEyQTEuODgsMS44OCwwLDAsMCwzNCwzMC4xMlYxMS44OEExLjg4LDEuODgsMCwwLDAsMzIuMTIsMTBaTTMyLDMwSDRWMTJIMzJaIiBjbGFzcz0iY2xyLWktb3V0bGlu''@;'; + put 'put ''ZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNOC41NiwxOS40NWEzLDMsMCwxLDAtMy0zQTMsMywwLDAsMCw4LjU2LDE5LjQ1Wm0wLTQuNkExLjYsMS42LDAsMSwxLDcsMTYuNDUsMS42LDEuNiwwLDAsMSw4LjU2LDE0Ljg1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWkt''@;'; + put 'put ''b3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTcuOSwyOGw2LTYsMy4xOCwzLjE4TDE0LjI2LDI4aDJsNy40Ni03LjQ2TDMwLDI2Ljc3di0yTDI0LjIsMTlhLjcxLjcxLDAsMCwwLTEsMGwtNS4xNiw1LjE2TDE0LjM3LDIwLjVhLjcxLjcxLDAsMCwwLTEsMEw1LjkyLDI4WiIgY2xhc3M9ImNs''@;'; + put 'put ''ci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+PHBhdGggZD0iTTMwLjE0LDNoMGExLDEsMCwwLDAtMS0xaC0yMmExLDEsMCwwLDAtMSwxaDBWNGgyNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPjxwYXRoIGQ9Ik0zMi4xMiw3VjdhMSwx''@;'; + put 'put ''LDAsMCwwLTEtMWgtMjZhMSwxLDAsMCwwLTEsMWgwVjhoMjhaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgLz48cGF0aCBkPSJNMzAuMTQsM2gwYTEsMSwwLDAsMC0xLTFoLTIyYTEsMSwwLDAsMC0xLDFoMFY0aDI0WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNs''@;'; + put 'put ''ci1pLXNvbGlkLXBhdGgtMSIgLz48cGF0aCBkPSJNMzIuMTIsN1Y3YTEsMSwwLDAsMC0xLTFoLTI2YTEsMSwwLDAsMC0xLDFoMFY4aDI4WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz48cGF0aCBkPSJNMzIuMTIsMTBIMy44OEExLjg4LDEuODgsMCwwLDAsMiwx''@;'; + put 'put ''MS44OFYzMC4xMkExLjg4LDEuODgsMCwwLDAsMy44OCwzMkgzMi4xMkExLjg4LDEuODgsMCwwLDAsMzQsMzAuMTJWMTEuODhBMS44OCwxLjg4LDAsMCwwLDMyLjEyLDEwWk04LjU2LDEzLjQ1YTMsMywwLDEsMS0zLDNBMywzLDAsMCwxLDguNTYsMTMuNDVaTTMwLDI4aC0yNGw3LjQ2LTcuNDdh''@;'; + put 'put ''LjcxLjcxLDAsMCwxLDEsMGwzLjY4LDMuNjhMMjMuMjEsMTlhLjcxLjcxLDAsMCwxLDEsMEwzMCwyNC43OVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIC8+JyksTC5DbHJTaGFwZVJlcGxheUFsbD0oMCxCLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTcuNDYsMjYu''@;'; + put 'put ''MjJhMS40LDEuNCwwLDAsMCwxLS40Mmw1LjU5LTUuNTZhMS40MywxLjQzLDAsMCwwLC40Mi0xLDEuNDYsMS40NiwwLDAsMC0uNDItMWwtNS41OS01LjU2YTEuNDMsMS40MywwLDAsMC0yLjQ0LDFWMjQuNzlhMS40MSwxLjQxLDAsMCwwLC44OCwxLjMyQTEuNTQsMS41NCwwLDAsMCwxNy40Niwy''@;'; + put 'put ''Ni4yMlptLjE2LTEyLjE2LDUuMTksNS4xNi01LjE5LDUuMTdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMTguMDYsNWgtNi43bDIuOTItMi42NEExLDEsMCwwLDAsMTIuOTQuODhMNy4zMiw2LDEyLjk0LDExYTEsMSwwLDAsMCwuNjcu''@;'; + put 'put ''MjYsMSwxLDAsMCwwLC43NC0uMzMsMSwxLDAsMCwwLS4wNy0xLjQyTDExLjQ2LDdoNi42QTExLjc4LDExLjc4LDAsMSwxLDcuNzEsMjQuNDEsMSwxLDAsMCwwLDYsMjUuMzYsMTMuNzgsMTMuNzgsMCwxLDAsMTguMDYsNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0''@;'; + put 'put ''aC0yIiAvPicpLEwuQ2xyU2hhcGVSZXBsYXlPbmU9KDAsQi5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE5LDI3LjI3YTEsMSwwLDAsMCwxLTFWMTRhMSwxLDAsMCwwLTEtMUgxOWEzLjgsMy44LDAsMCwwLTEuMS4yM2wtMiwuNjJhLjkyLjkyLDAsMCwwLS43Mi44Ni44OC44OCwwLDAsMCwuODgu''@;'; + put 'put ''ODYsMS40NiwxLjQ2LDAsMCwwLC40My0uMDhMMTgsMTUuMDd2MTEuMkExLDEsMCwwLDAsMTksMjcuMjdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMTguMDYsNWgtNi43bDIuOTItMi42NEExLDEsMCwwLDAsMTIuOTQuODhMNy4zMiw2''@;'; + put 'put ''LDEyLjk0LDExYTEsMSwwLDAsMCwuNjcuMjYsMSwxLDAsMCwwLC43NC0uMzMsMSwxLDAsMCwwLS4wNy0xLjQyTDExLjQ2LDdoNi42QTExLjc4LDExLjc4LDAsMSwxLDcuNzEsMjQuNDEsMSwxLDAsMCwwLDYsMjUuMzYsMTMuNzgsMTMuNzgsMCwxLDAsMTguMDYsNVoiIGNsYXNzPSJjbHItaS1v''@;'; + put 'put ''dXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPicpLEwuQ2xyU2hhcGVWaWRlb0dhbGxlcnk9KDAsQi5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMyLjEyLDEwSDMuODhBMS44OCwxLjg4LDAsMCwwLDIsMTEuODhWMzAuMTJBMS44OCwxLjg4LDAsMCwwLDMuODgsMzJIMzIuMTJBMS44OCwx''@;'; + put 'put ''Ljg4LDAsMCwwLDM0LDMwLjEyVjExLjg4QTEuODgsMS44OCwwLDAsMCwzMi4xMiwxMFpNMzIsMzBINFYxMkgzMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0zMC4xNCwzaDBhMSwxLDAsMCwwLTEtMWgtMjJhMSwxLDAsMCwwLTEsMWgw''@;'; + put 'put ''VjRoMjRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMzIuMTIsN1Y3YTEsMSwwLDAsMC0xLTFoLTI2YTEsMSwwLDAsMC0xLDFoMFY4aDI4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+PHBhdGgg''@;'; + put 'put ''ZD0iTTEyLjgyLDI2Ljc5YTEuNzQsMS43NCwwLDAsMCwuOTMuMjgsMS42OCwxLjY4LDAsMCwwLC42OS0uMTVsOS43Ny00LjM2YTEuNjksMS42OSwwLDAsMCwwLTMuMUwxNC40NCwxNS4xYTEuNywxLjcsMCwwLDAtMi4zOSwxLjU1djguNzJBMS43LDEuNywwLDAsMCwxMi44MiwyNi43OVptLjYz''@;'; + put 'put ''LTEwLjE0YS4yOS4yOSwwLDAsMSwuMTQtLjI1LjMuMywwLDAsMSwuMTYsMCwuMjcuMjcsMCwwLDEsLjEyLDBsOS43Nyw0LjM1YS4yOS4yOSwwLDAsMSwuMTguMjguMjguMjgsMCwwLDEtLjE4LjI3bC05Ljc3LDQuMzZhLjI4LjI4LDAsMCwxLS4yOCwwLC4zMS4zMSwwLDAsMS0uMTQtLjI1WiIg''@;'; + put 'put ''Y2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+PHBhdGggZD0iTTMyLjEyLDEwSDMuODhBMS44OCwxLjg4LDAsMCwwLDIsMTEuODhWMzAuMTJBMS44OCwxLjg4LDAsMCwwLDMuODgsMzJIMzIuMTJBMS44OCwxLjg4LDAsMCwwLDM0LDMwLjEyVjExLjg4QTEuODgs''@;'; + put 'put ''MS44OCwwLDAsMCwzMi4xMiwxMFpNMjQuMTgsMjEuODNsLTkuNzcsNC4zNkExLDEsMCwwLDEsMTMsMjUuMjhWMTYuNTZhMSwxLDAsMCwxLDEuNDEtLjkxTDI0LjE4LDIwQTEsMSwwLDAsMSwyNC4xOCwyMS44M1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+PHBh''@;'; + put 'put ''dGggZD0iTTMwLjE0LDNoMGExLDEsMCwwLDAtMS0xaC0yMmExLDEsMCwwLDAtMSwxaDBWNGgyNFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+PHBhdGggZD0iTTMyLjEyLDdWN2ExLDEsMCwwLDAtMS0xaC0yNmExLDEsMCwwLDAtMSwxaDBWOGgyOFoiIGNsYXNz''@;'; + put 'put ''PSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIC8+JyksTC5DbHJTaGFwZU1pY3JvcGhvbmU9KDAsQi5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE4LDI0YzMuOSwwLDctMy4xLDctN1Y5YzAtMy45LTMuMS03LTctN3MtNywzLjEtNyw3djhDMTEsMjAuOSwxNC4xLDI0LDE4LDI0eiBN''@;'; + put 'put ''MTMsOWMwLTIuOCwyLjItNSw1LTVzNSwyLjIsNSw1djhcblx0XHRjMCwyLjgtMi4yLDUtNSw1cy01LTIuMi01LTVWOXoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0zMCwxN2gtMmMwLDUuNS00LjUsMTAtMTAsMTBTOCwyMi41LDgsMTdI''@;'; + put 'put ''NmMwLDYuMyw0LjgsMTEuNCwxMSwxMS45VjMyaC0zYy0wLjYsMC0xLDAuNC0xLDFzMC40LDEsMSwxaDhjMC42LDAsMS0wLjQsMS0xXG5cdFx0cy0wLjQtMS0xLTFoLTN2LTMuMUMyNS4yLDI4LjQsMzAsMjMuMywzMCwxN3oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0''@;'; + put 'put ''aC0yIiAvPjxwYXRoIGQ9Ik0xOCwyNGMzLjksMCw3LTMuMSw3LTdWOWMwLTMuOS0zLjEtNy03LTdzLTcsMy4xLTcsN3Y4QzExLDIwLjksMTQuMSwyNCwxOCwyNHoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+PHBhdGggZD0iTTMwLDE3aC0yYzAsNS41LTQuNSwx''@;'; + put 'put ''MC0xMCwxMFM4LDIyLjUsOCwxN0g2YzAsNi4zLDQuOCwxMS40LDExLDExLjlWMzJoLTNjLTAuNiwwLTEsMC40LTEsMXMwLjQsMSwxLDFoOGMwLjYsMCwxLTAuNCwxLTFcblx0XHRzLTAuNC0xLTEtMWgtM3YtMy4xQzI1LjIsMjguNCwzMCwyMy4zLDMwLDE3eiIgY2xhc3M9ImNsci1pLXNvbGlk''@;'; + put 'put ''IGNsci1pLXNvbGlkLXBhdGgtMiIgLz4nKSxMLkNsclNoYXBlTWljcm9waG9uZU11dGU9KDAsQi5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMwLDE3aC0yYzAsMS44LTAuNSwzLjUtMS40LDVsMS41LDEuNUMyOS4zLDIxLjUsMjkuOSwxOS4zLDMwLDE3eiIgY2xhc3M9ImNsci1pLW91dGxpbmUg''@;'; + put 'put ''Y2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTE4LDRjMi44LDAsNSwyLjIsNSw1djhjMCwwLjQtMC4xLDAuOC0wLjIsMS4ybDEuNiwxLjZjMC40LTAuOSwwLjYtMS44LDAuNi0yLjhWOWMwLTMuOS0zLjItNy03LjEtNi45XG5cdFx0Yy0yLjksMC01LjYsMS45LTYuNSw0LjdMMTMs''@;'; + put 'put ''OC4zQzEzLjUsNS45LDE1LjYsNC4yLDE4LDR6IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMjUuMiwyNi42bDYuOSw2LjlsMS40LTEuNEw0LDIuNkwyLjYsNGw4LjQsOC40VjE3YzAsMy45LDMuMSw3LDcsN2MxLjMsMCwyLjUtMC4zLDMu''@;'; + put 'put ''Ni0xbDIuMiwyLjJDMjIuMSwyNi40LDIwLjEsMjcsMTgsMjdcblx0XHRjLTUuNCwwLjItOS44LTQuMS0xMC05LjRjMC0wLjIsMC0wLjQsMC0wLjZINmMwLjEsNi4yLDQuOCwxMS40LDExLDEydjNoLTNjLTAuNiwwLTEsMC40LTEsMXMwLjQsMSwxLDFoOGMwLjYsMCwxLTAuNCwxLTFcblx0XHRz''@;'; + put 'put ''LTAuNC0xLTEtMWgtM3YtM0MyMS4yLDI4LjgsMjMuNCwyOCwyNS4yLDI2LjZ6IE0xMy44LDE5LjdDMTMuMywxOC45LDEzLDE4LDEzLDE3di0yLjZsNy4xLDcuMUMxNy45LDIyLjUsMTUuMiwyMS44LDEzLjgsMTkuN3oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0z''@;'; + put 'put ''IiAvPjxwYXRoIGQ9Ik0zMCwxN2gtMmMwLDEuOC0wLjUsMy41LTEuNCw1bDEuNSwxLjVDMjkuMywyMS41LDI5LjksMTkuMywzMCwxN3oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+PHBhdGggZD0iTTI1LDE3VjljMC0zLjktMy4yLTctNy4xLTYuOWMtMi45LDAt''@;'; + put 'put ''NS42LDEuOS02LjUsNC43bDEzLDEzQzI0LjgsMTguOSwyNSwxNy45LDI1LDE3eiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz48cGF0aCBkPSJNMjUuMiwyNi42bDYuOSw2LjlsMS40LTEuNEw0LDIuNkwyLjYsNGw4LjQsOC40VjE3YzAsMy45LDMuMSw3LDcsN2Mx''@;'; + put 'put ''LjMsMCwyLjUtMC4zLDMuNi0xbDIuMiwyLjJDMjIuMSwyNi40LDIwLjEsMjcsMTgsMjdcblx0XHRjLTUuNCwwLjItOS44LTQuMS0xMC05LjRjMC0wLjIsMC0wLjQsMC0wLjZINmMwLjEsNi4yLDQuOCwxMS40LDExLDEydjNoLTNjLTAuNiwwLTEsMC40LTEsMXMwLjQsMSwxLDFoOGMwLjYsMCwx''@;'; + put 'put ''LTAuNCwxLTFcblx0XHRzLTAuNC0xLTEtMWgtM3YtM0MyMS4yLDI4LjgsMjMuNCwyOCwyNS4yLDI2LjZ6IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiAvPicpLEwuTWVkaWFTaGFwZXM9e3BsYXk6TC5DbHJTaGFwZVBsYXkscGF1c2U6TC5DbHJTaGFwZVBhdXNlLCJz''@;'; + put 'put ''dGVwLWZvcndhcmQiOkwuQ2xyU2hhcGVTdGVwRm9yd2FyZCxzdG9wOkwuQ2xyU2hhcGVTdG9wLHBvd2VyOkwuQ2xyU2hhcGVQb3dlcixyZXdpbmQ6TC5DbHJTaGFwZVJld2luZCwiZmFzdC1mb3J3YXJkIjpMLkNsclNoYXBlRmFzdEZvcndhcmQsY2FtZXJhOkwuQ2xyU2hhcGVDYW1lcmEsInZp''@;'; + put 'put ''ZGVvLWNhbWVyYSI6TC5DbHJTaGFwZVZpZGVvQ2FtZXJhLHNodWZmbGU6TC5DbHJTaGFwZVNodWZmbGUsInZvbHVtZS11cCI6TC5DbHJTaGFwZVZvbHVtZVVwLCJ2b2x1bWUtZG93biI6TC5DbHJTaGFwZVZvbHVtZURvd24sInZvbHVtZS1tdXRlIjpMLkNsclNoYXBlVm9sdW1lTXV0ZSxoZWFk''@;'; + put 'put ''cGhvbmVzOkwuQ2xyU2hhcGVIZWFkcGhvbmVzLCJmaWxtLXN0cmlwIjpMLkNsclNoYXBlRmlsbVN0cmlwLCJtdXNpYy1ub3RlIjpMLkNsclNoYXBlTXVzaWNOb3RlLCJpbWFnZS1nYWxsZXJ5IjpMLkNsclNoYXBlSW1hZ2VHYWxsZXJ5LCJyZXBsYXktYWxsIjpMLkNsclNoYXBlUmVwbGF5QWxs''@;'; + put 'put ''LCJyZXBsYXktb25lIjpMLkNsclNoYXBlUmVwbGF5T25lLCJ2aWRlby1nYWxsZXJ5IjpMLkNsclNoYXBlVmlkZW9HYWxsZXJ5LG1pY3JvcGhvbmU6TC5DbHJTaGFwZU1pY3JvcGhvbmUsIm1pY3JvcGhvbmUtbXV0ZSI6TC5DbHJTaGFwZU1pY3JvcGhvbmVNdXRlfSwidW5kZWZpbmVkIiE9dHlw''@;'; + put 'put ''ZW9mIHdpbmRvdyYmd2luZG93Lmhhc093blByb3BlcnR5KCJDbGFyaXR5SWNvbnMiKSYmd2luZG93LkNsYXJpdHlJY29ucy5hZGQoTC5NZWRpYVNoYXBlcyl9LCIuL3Byb2plY3RzL2ljb25zL3NyYy9zaGFwZXMvc29jaWFsLXNoYXBlcy50cyI6ZnVuY3Rpb24oSmUsTCxtZSl7InVzZSBzdHJp''@;'; + put 'put ''Y3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShMLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxMLlNvY2lhbFNoYXBlcz1MLkNsclNoYXBlSGFzaHRhZz1MLkNsclNoYXBlQ3Jvd249TC5DbHJTaGFwZVRodW1ic0Rvd249TC5DbHJTaGFwZVRodW1ic1VwPUwuQ2xyU2hhcGVTYWRGYWNlPUwuQ2xy''@;'; + put 'put ''U2hhcGVOZXV0cmFsRmFjZT1MLkNsclNoYXBlSGFwcHlGYWNlPUwuQ2xyU2hhcGVQaWN0dXJlPUwuQ2xyU2hhcGVDaGF0QnViYmxlPUwuQ2xyU2hhcGVUYWxrQnViYmxlcz1MLkNsclNoYXBlSGVhcnRCcm9rZW49TC5DbHJTaGFwZUhlYXJ0PUwuQ2xyU2hhcGVJbmJveD1MLkNsclNoYXBlRmxh''@;'; + put 'put ''Zz1MLkNsclNoYXBlVGFza3M9TC5DbHJTaGFwZUVudmVsb3BlPUwuQ2xyU2hhcGVCb29rbWFyaz1MLkNsclNoYXBlSGFsZlN0YXI9TC5DbHJTaGFwZVN0YXI9TC5DbHJTaGFwZVNoYXJlPXZvaWQgMDt2YXIgQj1tZSgiLi9wcm9qZWN0cy9pY29ucy9zcmMvdXRpbHMvZGVzY3JpcHRvci1jb25m''@;'; + put 'put ''aWcudHMiKSxFPW1lKCIuL3Byb2plY3RzL2ljb25zL3NyYy91dGlscy9zdmctdGFnLWdlbmVyYXRvci50cyIpLE1lPW1lKCIuL3Byb2plY3RzL2ljb25zL3NyYy9zaGFwZXMvY29yZS1zaGFwZXMudHMiKTtMLkNsclNoYXBlU2hhcmU9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNs''@;'; + put 'put ''ci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0yNy41MywyNGE1LDUsMCwwLDAtMy42LDEuNTVMMTEuNzQsMTkuNDVhNC40Nyw0LjQ3LDAsMCwwLDAtMi44bDEyLjIxLTYuMjFhNS4xMiw1LjEyLDAsMSwwLTEuMDctMS43TDEwLjc5LDE0Ljg5YTUsNSwwLDEsMCwwLDYuMzNs''@;'; + put 'put ''MTIuMDYsNi4wN0E0LjkzLDQuOTMsMCwwLDAsMjIuNTQsMjlhNSw1LDAsMSwwLDUtNVptMC0yMGEzLDMsMCwxLDEtMywzQTMsMywwLDAsMSwyNy41Myw0Wk03LDIxYTMsMywwLDEsMSwzLTNBMywzLDAsMCwxLDcsMjFaTTI3LjUzLDMyYTMsMywwLDEsMSwzLTNBMywzLDAsMCwxLDI3LjUzLDMy''@;'; + put 'put ''WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0yNy41MywyNGE1LDUsMCwwLDAtMy42LDEuNTVMMTEuNzQsMTkuNDVhNC40Nyw0LjQ3LDAsMCwwLDAtMi44bDEyLjIxLTYuMjFhNS4xMiw1LjEyLDAsMSwwLTEuMDct''@;'; + put 'put ''MS43TDEwLjc5LDE0Ljg5YTUsNSwwLDEsMCwwLDYuMzNsMTIuMDYsNi4wN0E0LjkzLDQuOTMsMCwwLDAsMjIuNTQsMjlhNSw1LDAsMSwwLDUtNVoiLz4nKSxMLkNsclNoYXBlU3Rhcj0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBh''@;'; + put 'put ''dGgtMSIgZD0iTTI3LjE5LDM0YTIuMjIsMi4yMiwwLDAsMS0xLjI0LS4zOGwtNy40Ni01YS4yMi4yMiwwLDAsMC0uMjUsMGwtNy40Niw1QTIuMjIsMi4yMiwwLDAsMSw3LjQsMzEuMjFsMi40NS04LjY0YS4yMy4yMywwLDAsMC0uMDgtLjI0TDIuNzEsMTYuNzhhMi4yMiwyLjIyLDAsMCwxLDEu''@;'; + put 'put ''MjktNGw5LS4zNGEuMjMuMjMsMCwwLDAsLjItLjE1bDMuMS04LjQzYTIuMjIsMi4yMiwwLDAsMSw0LjE3LDBsMy4xLDguNDNhLjIzLjIzLDAsMCwwLC4yLjE1bDksLjM0YTIuMjIsMi4yMiwwLDAsMSwxLjI5LDRMMjcsMjIuMzNhLjIyLjIyLDAsMCwwLS4wOC4yNGwyLjQ1LDguNjRBMi4yMywy''@;'; + put 'put ''LjIzLDAsMCwxLDI3LjE5LDM0Wm0tOC44Mi03LjQyQTIuMjEsMi4yMSwwLDAsMSwxOS42LDI3bDcuNDYsNWEuMjIuMjIsMCwwLDAsLjM0LS4yNWwtMi40NS04LjY0YTIuMjEsMi4yMSwwLDAsMSwuNzctMi4zNWw3LjA2LTUuNTVhLjIyLjIyLDAsMCwwLS4xMy0uNGwtOS0uMzRhMi4yMiwyLjIy''@;'; + put 'put ''LDAsMCwxLTItMS40NmwtMy4xLTguNDNhLjIyLjIyLDAsMCwwLS40MiwwTDE1LjA2LDEzYTIuMjIsMi4yMiwwLDAsMS0yLDEuNDZsLTksLjM0YS4yMi4yMiwwLDAsMC0uMTMuNEwxMSwyMC43NmEyLjIyLDIuMjIsMCwwLDEsLjc3LDIuMzVMOS4zMywzMS43NWEuMjEuMjEsMCwwLDAsLjA4LjI0''@;'; + put 'put ''LjIuMiwwLDAsMCwuMjYsMGw3LjQ2LTVBMi4yMiwyLjIyLDAsMCwxLDE4LjM2LDI2LjYyWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zNCwxNi43OGEyLjIyLDIuMjIsMCwwLDAtMS4yOS00bC05LS4zNGEuMjMu''@;'; + put 'put ''MjMsMCwwLDEtLjItLjE1TDIwLjQsMy44OWEyLjIyLDIuMjIsMCwwLDAtNC4xNywwbC0zLjEsOC40M2EuMjMuMjMsMCwwLDEtLjIuMTVsLTksLjM0YTIuMjIsMi4yMiwwLDAsMC0xLjI5LDRsNy4wNiw1LjU1YS4yMy4yMywwLDAsMSwuMDguMjRMNy4zNSwzMS4yMWEyLjIyLDIuMjIsMCwwLDAs''@;'; + put 'put ''My4zOCwyLjQ1bDcuNDYtNWEuMjIuMjIsMCwwLDEsLjI1LDBsNy40Niw1YTIuMiwyLjIsMCwwLDAsMi41NSwwLDIuMiwyLjIsMCwwLDAsLjgzLTIuNGwtMi40NS04LjY0YS4yMi4yMiwwLDAsMSwuMDgtLjI0WiIvPicpLEwuQ2xyU2hhcGVIYWxmU3Rhcj0oMCxFLmNsckljb25TVkcpKCc8cGF0''@;'; + put 'put ''aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTM0LDE2Ljc4YTIuMjIsMi4yMiwwLDAsMC0xLjI5LTRsLTktLjM0YS4yMy4yMywwLDAsMS0uMi0uMTVMMjAuNCwzLjg5YTIuMjIsMi4yMiwwLDAsMC00LjE3LDBsLTMuMSw4LjQzYS4yMy4yMywwLDAsMS0u''@;'; + put 'put ''Mi4xNWwtOSwuMzRhMi4yMiwyLjIyLDAsMCwwLTEuMjksNGw3LjA2LDUuNTVhLjIyLjIyLDAsMCwxLC4wOC4yNEw3LjM1LDMxLjIxQTIuMjMsMi4yMywwLDAsMCw5LjQ5LDM0YTIuMjIsMi4yMiwwLDAsMCwxLjI0LS4zOGw3LjQ2LTVhLjIyLjIyLDAsMCwxLC4yNSwwbDcuNDYsNWEyLjIyLDIu''@;'; + put 'put ''MjIsMCwwLDAsMy4zOC0yLjQ1bC0yLjQ1LTguNjRhLjIzLjIzLDAsMCwxLC4wOC0uMjRaTTE4LjMzLDI2LjYyaDBhMi4yMSwyLjIxLDAsMCwwLTEuMjQuMzhMOS42MiwzMmEuMjIuMjIsMCwwLDEtLjM0LS4yNWwyLjQ1LTguNjRBMi4yMSwyLjIxLDAsMCwwLDExLDIwLjc2TDMuOSwxNS4yMWEu''@;'; + put 'put ''MjIuMjIsMCwwLDEsLjEzLS40bDktLjM0QTIuMjIsMi4yMiwwLDAsMCwxNSwxM2wzLjEtOC40M2EuMi4yLDAsMCwxLC4yMS0uMTVoMFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzQsMTYuNzhhMi4yMiwyLjIy''@;'; + put 'put ''LDAsMCwwLTEuMjktNGwtOS0uMzRhLjIzLjIzLDAsMCwxLS4yLS4xNUwyMC40LDMuODlhMi4yMiwyLjIyLDAsMCwwLTQuMTcsMGwtMy4xLDguNDNhLjIzLjIzLDAsMCwxLS4yLjE1bC05LC4zNGEyLjIyLDIuMjIsMCwwLDAtMS4yOSw0bDcuMDYsNS41NWEuMjMuMjMsMCwwLDEsLjA4LjI0TDcu''@;'; + put 'put ''MzUsMzEuMjFhMi4yMiwyLjIyLDAsMCwwLDMuMzgsMi40NWw3LjQ2LTVhLjIyLjIyLDAsMCwxLC4yNSwwbDcuNDYsNWEyLjIsMi4yLDAsMCwwLDIuNTUsMCwyLjIsMi4yLDAsMCwwLC44My0yLjRsLTIuNDUtOC42NGEuMjIuMjIsMCwwLDEsLjA4LS4yNFpNMjQuOSwyMy4xMWwyLjQ1LDguNjRB''@;'; + put 'put ''LjIyLjIyLDAsMCwxLDI3LDMybC03LjQ2LTVhMi4yMSwyLjIxLDAsMCwwLTEuMjQtLjM4aDBWNC40NGgwYS4yLjIsMCwwLDEsLjIxLjE1TDIxLjYyLDEzYTIuMjIsMi4yMiwwLDAsMCwyLDEuNDZsOSwuMzRhLjIyLjIyLDAsMCwxLC4xMy40bC03LjA2LDUuNTVBMi4yMSwyLjIxLDAsMCwwLDI0''@;'; + put 'put ''LjksMjMuMTFaIi8+JyksTC5DbHJTaGFwZUJvb2ttYXJrPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMjYsMzRhMiwyLDAsMCwxLTEuNDEtLjU4TDE4LDI2LjgybC02LjU0LDYuNTJBMiwyLDAsMCwxLDgsMzEu''@;'; + put 'put ''OTNWNGEyLDIsMCwwLDEsMi0ySDI2YTIsMiwwLDAsMSwyLDJWMzJhMiwyLDAsMCwxLTIsMlptMC0yaDBWNEgxMFYzMS45M0wxOCwyNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMjYsMkgxMEEyLDIsMCwwLDAs''@;'; + put 'put ''OCw0VjMxLjkzYTIsMiwwLDAsMCwzLjQyLDEuNDFsNi41NC02LjUyLDYuNjMsNi42QTIsMiwwLDAsMCwyOCwzMlY0QTIsMiwwLDAsMCwyNiwyWiIvPicpLEwuQ2xyU2hhcGVFbnZlbG9wZT0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5l''@;'; + put 'put ''LXBhdGgtMSIgZD0iTTMyLDZINEEyLDIsMCwwLDAsMiw4VjI4YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlY4QTIsMiwwLDAsMCwzMiw2Wk0zMC40NiwyOEg1LjY2bDctNy4yNC0xLjQ0LTEuMzlMNCwyNi44NFY5LjUyTDE2LjQzLDIxLjg5YTIsMiwwLDAsMCwyLjgyLDBMMzIsOS4y''@;'; + put 'put ''MXYxNy41bC03LjM2LTcuMzYtMS40MSwxLjQxWk01LjMxLDhIMzAuMzhMMTcuODQsMjAuNDdaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMzIsMTMuMDhWMjYuNzFsLTcuMzYt''@;'; + put 'put ''Ny4zNi0xLjQxLDEuNDFMMzAuNDYsMjhINS42Nmw3LTcuMjQtMS40NC0xLjM5TDQsMjYuODRWOS41MkwxNi40MywyMS44OWEyLDIsMCwwLDAsMi44MiwwbDguODMtOC43OGE3LjQ0LDcuNDQsMCwwLDEtMi0uODVsLTguMjYsOC4yMUw1LjMxLDhIMjIuODFhNy40OSw3LjQ5LDAsMCwxLS4zMS0y''@;'; + put 'put ''SDRBMiwyLDAsMCwwLDIsOFYyOGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMTIuMkE3LjQ1LDcuNDUsMCwwLDEsMzIsMTMuMDhaIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRn''@;'; + put 'put ''ZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjUuODYiIHI9IjUiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgZD0iTTMzLjY4LDE1LjI2SDMyVjI2LjcxbC03LjM2LTcuMzYtMS40''@;'; + put 'put ''MSwxLjQxTDMwLjQ2LDI4SDUuNjZsNy03LjI0LTEuNDQtMS4zOUw0LDI2Ljg0VjkuNTJMMTYuNDMsMjEuODlhMiwyLDAsMCwwLDIuODIsMGw2LjY2LTYuNjNIMjMuMDhsLTUuMjQsNS4yMUw1LjMxLDhIMjAuMDZsMS4xNS0ySDRBMiwyLDAsMCwwLDIsOFYyOGEyLDIsMCwwLDAsMiwySDMyYTIs''@;'; + put 'put ''MiwwLDAsMCwyLTJWMTUuMjRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44NSwxbC01LjcyLDkuOTFhMS4yOCwxLjI4LDAsMCwwLDEuMSwxLjkx''@;'; + put 'put ''SDMzLjY4YTEuMjgsMS4yOCwwLDAsMCwxLjEtMS45MUwyOS4wNiwxQTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zMi4zMyw2YTIsMiwwLDAsMC0uNDEsMGgtMjhhMiwy''@;'; + put 'put ''LDAsMCwwLS41My4wOEwxNy44NCwyMC40N1oiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiBkPSJNMzMuODEsNy4zOSwxOS4yNSwyMS44OWEyLDIsMCwwLDEtMi44MiwwTDIsNy41YTIsMiwwLDAsMC0uMDcuNVYyOGEyLDIs''@;'; + put 'put ''MCwwLDAsMiwyaDI4YTIsMiwwLDAsMCwyLTJWOEEyLDIsMCwwLDAsMzMuODEsNy4zOVpNNS4zLDI4SDMuOTFWMjYuNTdsNy4yNy03LjIxLDEuNDEsMS40MVptMjYuNjEsMEgzMC41MWwtNy4yOS03LjIzLDEuNDEtMS40MSw3LjI3LDcuMjFaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xh''@;'; + put 'put ''c3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0yNiwxMi4zNEE3LjQ5LDcuNDksMCwwLDEsMjIuNSw2SDMuOTJhMiwyLDAsMCwwLS41My4wOEwxNy44NCwyMC40N1oiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29s''@;'; + put 'put ''aWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCIgZD0iTTMwLDEzLjVhNy40OSw3LjQ5LDAsMCwxLTItLjI5bC04LjcxLDguNjhhMiwyLDAsMCwxLTIuODIsMEwyLDcuNWEyLDIsMCwwLDAtLjA3LjVWMjhhMiwyLDAsMCwwLDIsMmgyOGEyLDIsMCwwLDAsMi0yVjEyLjM5QTcu''@;'; + put 'put ''NDUsNy40NSwwLDAsMSwzMCwxMy41Wk01LjMsMjhIMy45MVYyNi41N2w3LjI3LTcuMjEsMS40MSwxLjQxWm0yNi42MSwwSDMwLjUxbC03LjI5LTcuMjMsMS40MS0xLjQxLDcuMjcsNy4yMVoiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNs''@;'; + put 'put ''ci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIgZD0iTTMzLjY4LDE1LjRIMjUuNzdsLTYu''@;'; + put 'put ''NTIsNi40OWEyLDIsMCwwLDEtMi44MiwwTDIsNy41YTIsMiwwLDAsMC0uMDcuNVYyOGEyLDIsMCwwLDAsMiwyaDI4YTIsMiwwLDAsMCwyLTJWMTUuMzhaTTUuMywyOEgzLjkxVjI2LjU3bDcuMjctNy4yMSwxLjQxLDEuNDFabTI2LjYxLDBIMzAuNTFsLTcuMjktNy4yMywxLjQxLTEuNDEsNy4y''@;'; + put 'put ''Nyw3LjIxWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQiIGQ9Ik0yMi45NCwxNS40aC0uN0EzLjY4LDMuNjgsMCwwLDEsMTksOS44OUwyMS4yOSw2SDMuOTJhMiwyLDAsMCwwLS41My4wOEwx''@;'; + put 'put ''Ny44NCwyMC40N1oiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0zLS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4y''@;'; + put 'put ''OCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIi8+JyksTC5DbHJTaGFwZVRhc2tzPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMjkuMjksMzRINi43''@;'; + put 'put ''MUExLjcsMS43LDAsMCwxLDUsMzIuMzFWNi42OUExLjc1LDEuNzUsMCwwLDEsNyw1SDlWN0g3VjMySDI5VjdIMjdWNWgyLjI1QTEuNywxLjcsMCwwLDEsMzEsNi42OVYzMi4zMUExLjcsMS43LDAsMCwxLDI5LjI5LDM0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1v''@;'; + put 'put ''dXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMTYuNjYsMjUuNzYsMTEuMywyMC40QTEsMSwwLDAsMSwxMi43MiwxOWwzLjk0LDMuOTQsOC42NC04LjY0YTEsMSwwLDAsMSwxLjQxLDEuNDFaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xy''@;'; + put 'put ''LWktb3V0bGluZS1wYXRoLTMiIGQ9Ik0yNiwxMUgxMFY3LjMzQTIuMzQsMi4zNCwwLDAsMSwxMi4zMyw1aDEuNzlhNCw0LDAsMCwxLDcuNzUsMGgxLjc5QTIuMzQsMi4zNCwwLDAsMSwyNiw3LjMzWk0xMiw5SDI0VjcuMzNBLjMzLjMzLDAsMCwwLDIzLjY3LDdIMjBWNmEyLDIsMCwwLDAtNCww''@;'; + put 'put ''VjdIMTIuMzNhLjMzLjMzLDAsMCwwLS4zMy4zM1oiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgZD0iTTE5LDkuODksMTkuNTYsOUgxMlY3LjMzQS4zMy4zMywwLDAsMSwxMi4zMyw3''@;'; + put 'put ''SDE2VjZhMiwyLDAsMCwxLDQsMFY3aC43MWwxLjE2LTJhNCw0LDAsMCwwLTcuNzQsMEgxMi4zM0EyLjM0LDIuMzQsMCwwLDAsMTAsNy4zM1YxMWg4LjY0QTMuNjUsMy42NSwwLDAsMSwxOSw5Ljg5WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVy''@;'; + put 'put ''dGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIiBkPSJNMjQuMTksMTUuNGwtNy41Myw3LjUzTDEyLjcyLDE5QTEsMSwwLDAsMCwxMS4zLDIwLjRsNS4zNiw1LjM2TDI2LjcxLDE1LjcxYTEsMSwwLDAsMCwuMi0uMzFaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNs''@;'; + put 'put ''ci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiIGQ9Ik0yOSwxNS40VjMySDdWN0g5VjVIN0ExLjc1LDEuNzUsMCwwLDAsNSw2LjY5VjMyLjMxQTEuNywxLjcsMCwwLDAsNi43MSwzNEgyOS4yOUExLjcsMS43LDAsMCwwLDMxLDMyLjMxVjE1LjRaIi8+''@;'; + put 'put ''XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCww''@;'; + put 'put ''LDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0xMi43MiwxOUExLDEsMCwwLDAsMTEuMywy''@;'; + put 'put ''MC40bDUuMzYsNS4zNkwyNi43MSwxNS43MWExLDEsMCwwLDAtMS40MS0xLjQxbC04LjY0LDguNjRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIiBkPSJNMjMuMTMsOUgxMlY3LjMzQS4z''@;'; + put 'put ''My4zMywwLDAsMSwxMi4zMyw3SDE2VjZhMiwyLDAsMCwxLDQsMFY3aDIuNTdhNy41Miw3LjUyLDAsMCwxLS4wNy0xLDcuNTIsNy41MiwwLDAsMSwuMDctMWgtLjdhNCw0LDAsMCwwLTcuNzUsMEgxMi4zM0EyLjM0LDIuMzQsMCwwLDAsMTAsNy4zM1YxMUgyNC40MkE3LjUsNy41LDAsMCwxLDIz''@;'; + put 'put ''LjEzLDlaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIiBkPSJNMzAsMTMuNWE3LjUyLDcuNTIsMCwwLDEtMS0uMDdWMzJIN1Y3SDlWNUg3QTEuNzUsMS43NSwwLDAsMCw1LDYuNjlWMzIu''@;'; + put 'put ''MzFBMS43LDEuNywwLDAsMCw2LjcxLDM0SDI5LjI5QTEuNywxLjcsMCwwLDAsMzEsMzIuMzFWMTMuNDNBNy41Miw3LjUyLDAsMCwxLDMwLDEzLjVaIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1i''@;'; + put 'put ''YWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMjkuMjksNC45NWgtNy4yYTQuMzEsNC4zMSwwLDAsMC04LjE3LDBIN0ExLjc1LDEuNzUsMCwwLDAs''@;'; + put 'put ''NSw2LjY0VjMyLjI2YTEuNywxLjcsMCwwLDAsMS43MSwxLjY5SDI5LjI5QTEuNywxLjcsMCwwLDAsMzEsMzIuMjZWNi42NEExLjcsMS43LDAsMCwwLDI5LjI5LDQuOTVabS0xOCwzYTEsMSwwLDAsMSwxLTFoMy40NFY2LjMyYTIuMzEsMi4zMSwwLDAsMSw0LjYzLDBWN2gzLjQ0YTEsMSwwLDAs''@;'; + put 'put ''MSwxLDFWOS44SDExLjI1Wm0xNC41Miw5LjIzLTkuMTIsOS4xMi01LjI0LTUuMjRhMS40LDEuNCwwLDAsMSwyLTJsMy4yNiwzLjI2LDcuMTQtNy4xNGExLjQsMS40LDAsMSwxLDIsMloiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWkt''@;'; + put 'put ''c29saWQtcGF0aC0xLS1hbGVydGVkIiBkPSJNMjUuODgsMTUuNGExLjM4LDEuMzgsMCwwLDEtLjExLDEuODFsLTkuMTIsOS4xMi01LjI0LTUuMjRhMS40LDEuNCwwLDAsMSwyLTJsMy4yNiwzLjI2LDctN0gyMi4yM0EzLjY4LDMuNjgsMCwwLDEsMTksOS44OWwwLS4wOUgxMS4yNVY4YTEsMSww''@;'; + put 'put ''LDAsMSwxLTFoMy40NFY2LjMyYTIuMzEsMi4zMSwwLDAsMSw0LjYzLDBWN2guNDJMMjIsNC43NmE0LjMsNC4zLDAsMCwwLTguMDkuMTlIN0ExLjc1LDEuNzUsMCwwLDAsNSw2LjY0VjMyLjI2YTEuNywxLjcsMCwwLDAsMS43MSwxLjY5SDI5LjI5QTEuNywxLjcsMCwwLDAsMzEsMzIuMjZWMTUu''@;'; + put 'put ''NFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAs''@;'; + put 'put ''MCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0zMCwxMy41YTcuNDksNy40OSwwLDAsMS02LjQ2''@;'; + put 'put ''LTMuN0gxMS4yNVY4YTEsMSwwLDAsMSwxLTFoMy40NFY2LjMyYTIuMzEsMi4zMSwwLDAsMSw0LjYzLDBWN2gyLjI2YTcuNTMsNy41MywwLDAsMS0uMDctMSw3LjUzLDcuNTMsMCwwLDEsLjA4LTEuMDVoLS41YTQuMzEsNC4zMSwwLDAsMC04LjE3LDBIN0ExLjc1LDEuNzUsMCwwLDAsNSw2LjY0''@;'; + put 'put ''VjMyLjI2YTEuNywxLjcsMCwwLDAsMS43MSwxLjY5SDI5LjI5QTEuNywxLjcsMCwwLDAsMzEsMzIuMjZWMTMuNDNBNy41Miw3LjUyLDAsMCwxLDMwLDEzLjVabS00LjIzLDMuNzEtOS4xMiw5LjEyLTUuMjQtNS4yNGExLjQsMS40LDAsMCwxLDItMmwzLjI2LDMuMjYsNy4xNC03LjE0YTEuNCwx''@;'; + put 'put ''LjQsMCwxLDEsMiwyWiIvPlxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz4nKSxMLkNsclNoYXBlRmxhZz0oMCxFLmNsckljb25TVkcp''@;'; + put 'put ''KCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTYsMzRhMSwxLDAsMCwxLTEtMVYzQTEsMSwwLDAsMSw3LDNWMzNBMSwxLDAsMCwxLDYsMzRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0''@;'; + put 'put ''bGluZS1wYXRoLTIiIGQ9Ik0zMC41NSwzLjgyYTEsMSwwLDAsMC0xLDAsMTQuOSwxNC45LDAsMCwxLTYuMTMsMS4xNiwxMy4xMSwxMy4xMSwwLDAsMS01LjE4LTEuNDksMTIuNzgsMTIuNzgsMCwwLDAtNS0xLjQ1QTEwLjg2LDEwLjg2LDAsMCwwLDksMi44NVY1LjA4QTguOCw4LjgsMCwwLDEs''@;'; + put 'put ''MTMuMjUsNGExMS4yMiwxMS4yMiwwLDAsMSw0LjIsMS4yOCwxNC44NCwxNC44NCwwLDAsMCw2LDEuNjZBMTguNzUsMTguNzUsMCwwLDAsMjksNi4xMlYxOC45NWExNi4xNiwxNi4xNiwwLDAsMS01LjU4LjkzLDEzLjExLDEzLjExLDAsMCwxLTUuMTgtMS40OSwxMi43OCwxMi43OCwwLDAsMC01''@;'; + put 'put ''LTEuNDVBMTAuODYsMTAuODYsMCwwLDAsOSwxNy43OVYyMGE4LjgsOC44LDAsMCwxLDQuMjUtMS4wOCwxMS4yMiwxMS4yMiwwLDAsMSw0LjIsMS4yOCwxNC44NCwxNC44NCwwLDAsMCw2LDEuNjYsMTYuNzksMTYuNzksMCwwLDAsNy0xLjM3LDEsMSwwLDAsMCwuNTUtLjg5VjQuNjdBMSwxLDAs''@;'; + put 'put ''MCwwLDMwLjU1LDMuODJaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTUuOTIsMmExLDEsMCwwLDAtMSwxVjMzYTEsMSwwLDAsMCwyLDBWM0ExLDEsMCwwLDAsNS45MiwyWiIvPlxuICAgICAgICAgICAgICAgIDxw''@;'; + put 'put ''YXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGQ9Ik0zMC41LDMuODJhMSwxLDAsMCwwLTEsMCwxNC45LDE0LjksMCwwLDEtNi4xMywxLjE2LDEzLjExLDEzLjExLDAsMCwxLTUuMTgtMS40OUExMi43OCwxMi43OCwwLDAsMCwxMy4yLDIsMTAuODYsMTAuODYsMCww''@;'; + put 'put ''LDAsOSwyLjg1VjIwYTguOCw4LjgsMCwwLDEsNC4yNS0xLjA4LDExLjIyLDExLjIyLDAsMCwxLDQuMiwxLjI4LDE0Ljg0LDE0Ljg0LDAsMCwwLDYsMS42NiwxNi43OSwxNi43OSwwLDAsMCw3LTEuMzcsMSwxLDAsMCwwLC41NS0uODlWNC42N0ExLDEsMCwwLDAsMzAuNSwzLjgyWiIvPicpLEwu''@;'; + put 'put ''Q2xyU2hhcGVJbmJveD0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTIuMjMsMTMuMDlhMSwxLDAsMCwwLDAsMS40MUwxOCwyMC4zbDUuNzktNS43OWExLDEsMCwwLDAtMS40MS0xLjQxTDE5LDE2LjQ3VjJBMSwxLDAsMCwwLDE4LDFhMSwxLDAsMCwwLTEsMXYxNC41bC0zLjM4LTMuMzhB''@;'; + put 'put ''MSwxLDAsMCwwLDEyLjIzLDEzLjA5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOS41LDVIMjJWN2g3VjIxSDIzLjYxbC0uMS44OWE1LjQyLDUuNDIsMCwwLDEtMTAuNzcsMGwtLjEtLjg5SDdWN2g3VjVINi41''@;'; + put 'put ''QTEuNSwxLjUsMCwwLDAsNSw2LjV2MjVBMS41LDEuNSwwLDAsMCw2LjUsMzNoMjNBMS41LDEuNSwwLDAsMCwzMSwzMS41VjYuNUExLjUsMS41LDAsMCwwLDI5LjUsNVpNMjksMzFIN1YyM2gzLjkxYTcuNDIsNy40MiwwLDAsMCwxNC40NCwwSDI5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xy''@;'; + put 'put ''LWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMi4yMywxMy4wOWExLDEsMCwwLDAsMCwxLjQxTDE4LDIwLjNsNS43OS01Ljc5YTEsMSwwLDAsMC0xLjQxLTEuNDFMMTksMTYuNDdWMkExLDEsMCwwLDAsMTgsMWExLDEsMCwwLDAtMSwxdjE0LjVsLTMuMzgtMy4z''@;'; + put 'put ''OEExLDEsMCwwLDAsMTIuMjMsMTMuMDlaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMCwxMy41YTcuNTIsNy41MiwwLDAsMS0xLS4wN1YyMUgyMy42MWwtLjEuODlhNS40Miw1LjQy''@;'; + put 'put ''LDAsMCwxLTEwLjc3LDBsLS4xLS44OUg3VjdoN1Y1SDYuNUExLjUsMS41LDAsMCwwLDUsNi41djI1QTEuNSwxLjUsMCwwLDAsNi41LDMzaDIzQTEuNSwxLjUsMCwwLDAsMzEsMzEuNVYxMy40M0E3LjUyLDcuNTIsMCwwLDEsMzAsMTMuNVpNMjksMzFIN1YyM2gzLjkxYTcuNDIsNy40MiwwLDAs''@;'; + put 'put ''MCwxNC40NCwwSDI5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRo''@;'; + put 'put ''LTMtLWJhZGdlZCBjbHItaS1iYWRnZSIvPicpLEwuQ2xyU2hhcGVIZWFydD0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTgsMzIuNDNhMSwxLDAsMCwxLS42MS0uMjFDMTEuODMsMjcuOSw4LDI0LjE4LDUuMzIsMjAuNTEsMS45LDE1LjgyLDEuMTIsMTEuNDksMyw3LjY0YzEuMzQtMi43''@;'; + put 'put ''NSw1LjE5LTUsOS42OS0zLjY5QTkuODcsOS44NywwLDAsMSwxOCw3LjcyYTkuODcsOS44NywwLDAsMSw1LjMxLTMuNzdjNC40OS0xLjI5LDguMzUuOTQsOS42OSwzLjY5LDEuODgsMy44NSwxLjEsOC4xOC0yLjMyLDEyLjg3QzI4LDI0LjE4LDI0LjE3LDI3LjksMTguNjEsMzIuMjJBMSwxLDAs''@;'; + put 'put ''MCwxLDE4LDMyLjQzWk0xMC4xMyw1LjU4QTUuOSw1LjksMCwwLDAsNC44LDguNTFjLTEuNTUsMy4xOC0uODUsNi43MiwyLjE0LDEwLjgxQTU3LjEzLDU3LjEzLDAsMCwwLDE4LDMwLjE2LDU3LjEzLDU3LjEzLDAsMCwwLDI5LjA2LDE5LjMzYzMtNC4xLDMuNjktNy42NCwyLjE0LTEwLjgxLTEt''@;'; + put 'put ''Mi00LTMuNTktNy4zNC0yLjY1YTgsOCwwLDAsMC00Ljk0LDQuMiwxLDEsMCwwLDEtMS44NSwwLDcuOTMsNy45MywwLDAsMC00Ljk0LTQuMkE3LjMxLDcuMzEsMCwwLDAsMTAuMTMsNS41OFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gICAgICAgICAg''@;'; + put 'put ''ICA8cGF0aCBkPSJNMzMsNy42NGMtMS4zNC0yLjc1LTUuMi01LTkuNjktMy42OUE5Ljg3LDkuODcsMCwwLDAsMTgsNy43MmE5Ljg3LDkuODcsMCwwLDAtNS4zMS0zLjc3QzguMTksMi42Niw0LjM0LDQuODksMyw3LjY0Yy0xLjg4LDMuODUtMS4xLDguMTgsMi4zMiwxMi44N0M4LDI0LjE4LDEx''@;'; + put 'put ''LjgzLDI3LjksMTcuMzksMzIuMjJhMSwxLDAsMCwwLDEuMjMsMGM1LjU1LTQuMzEsOS4zOS04LDEyLjA3LTExLjcxQzM0LjEsMTUuODIsMzQuODgsMTEuNDksMzMsNy42NFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz4nKSxMLkNsclNoYXBlSGVhcnRCcm9rZW49''@;'; + put 'put ''KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMzLDcuNjRjLTEuMzQtMi43NS01LjA5LTUtOS42OS0zLjY5YTkuODcsOS44NywwLDAsMC02LDQuODQsMTguOSwxOC45LDAsMCwwLTIuMjMsNS4zM2w1LjI4LDIuMzQtNC42LDQuMzcsMy40OSw0LjEsMS41Mi0xLjNMMTguNTQsMjFsNS40LTUu''@;'; + put 'put ''MTNMMTcuNTgsMTNBMTYuMjMsMTYuMjMsMCwwLDEsMTkuNzUsOC45YTcuNjgsNy42OCwwLDAsMSw0LjExLTNjMy4zNC0uODksNi4zNC42LDcuMzQsMi42NSwxLjU1LDMuMTguODUsNi43Mi0yLjE0LDEwLjgxQTU3LjE2LDU3LjE2LDAsMCwxLDE4LDMwLjE2LDU3LjE2LDU3LjE2LDAsMCwxLDYu''@;'; + put 'put ''OTQsMTkuMzNjLTMtNC4xLTMuNjktNy42NC0yLjE0LTEwLjgxYTUuOSw1LjksMCwwLDEsNS4zMy0yLjkzLDcuMzEsNy4zMSwwLDAsMSwyLC4yOSw3LjcsNy43LDAsMCwxLDMuMzgsMmwuMTUtLjNhMTAuNjYsMTAuNjYsMCwwLDEsMS0xLjQxLDkuNjQsOS42NCwwLDAsMC0zLjk0LTIuMjJDOC4y''@;'; + put 'put ''LDIuNjYsNC4zNCw0Ljg5LDMsNy42NGMtMS44OCwzLjg1LTEuMSw4LjE4LDIuMzIsMTIuODdDOCwyNC4xOCwxMS44MywyNy45LDE3LjM5LDMyLjIyYTEsMSwwLDAsMCwxLjIzLDBjNS41NS00LjMxLDkuMzktOCwxMi4wNy0xMS43MUMzNC4xLDE1LjgyLDM0Ljg4LDExLjQ5LDMzLDcuNjRaIiBj''@;'; + put 'put ''bGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLDcuNjRjLTEuMzQtMi43NS01LjItNS05LjY5LTMuNjlBMTEuNTUsMTEuNTUsMCwwLDAsMTguMTksNy41YTE2Ljg5LDE2Ljg5LDAsMCwwLTIuNDgsNC41NkwyMi4yNywx''@;'; + put 'put ''NSwxNi43LDIwLjI2LDE5LDIzbC0xLjU3LDEuMzQtMy42LTQuMjIsNC43NC00LjUxLTUuNDQtMi40MWExOS40OSwxOS40OSwwLDAsMSwyLjMtNS41LDE0Ljc3LDE0Ljc3LDAsMCwxLDEuMDYtMS41NGwuMDYsMGE5LjY2LDkuNjYsMCwwLDAtMy44OS0yLjE4QzguMTksMi42Niw0LjM0LDQuODks''@;'; + put 'put ''Myw3LjY0Yy0xLjg4LDMuODUtMS4xLDguMTgsMi4zMiwxMi44N0M4LDI0LjE4LDExLjgzLDI3LjksMTcuMzksMzIuMjJhMSwxLDAsMCwwLDEuMjMsMGM1LjU1LTQuMzEsOS4zOS04LDEyLjA3LTExLjcxQzM0LjEsMTUuODIsMzQuODgsMTEuNDksMzMsNy42NFoiIGNsYXNzPSJjbHItaS1zb2xp''@;'; + put 'put ''ZCBjbHItaS1zb2xpZC1wYXRoLTEiLz4nKSxMLkNsclNoYXBlVGFsa0J1YmJsZXM9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTIzLDI2YTEsMSwwLDAsMS0xLDFIOGMtLjIyLDAtLjQzLjItLjYxLjMzTDQsMzBWMTRhMSwxLDAsMCwxLDEtMUg4Ljg2VjExSDVhMywzLDAsMCwwLTMsM1Yz''@;'; + put 'put ''MmExLDEsMCwwLDAsLjU2Ljg5LDEsMSwwLDAsMCwxLS4xTDguNzEsMjlIMjIuMTVBMi43NywyLjc3LDAsMCwwLDI1LDI2LjEzVjI1SDIzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMSw0SDE0YTMsMywwLDAs''@;'; + put 'put ''MC0zLDNWMTlhMywzLDAsMCwwLDMsM0gyNy41NWw0Ljc4LDMuNzFhMSwxLDAsMCwwLDEsLjExLDEsMSwwLDAsMCwuNTctLjlWN0EzLDMsMCwwLDAsMzEsNFpNMzIsMjIuOTQsMjguNSwyMC4yMWExLDEsMCwwLDAtLjYxLS4yMUgxNGExLDEsMCwwLDEtMS0xVjdhMSwxLDAsMCwxLDEtMUgzMUEx''@;'; + put 'put ''LjEsMS4xLDAsMCwxLDMyLDcuMDZaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIzLDI2YTEsMSwwLDAsMS0xLDFIOGMtLjIyLDAtLjQzLjItLjYxLjMzTDQsMzBWMTRhMSwxLDAsMCwxLDEtMUg4Ljg2VjExSDVh''@;'; + put 'put ''MywzLDAsMCwwLTMsM1YzMmExLDEsMCwwLDAsLjU2Ljg5LDEsMSwwLDAsMCwxLS4xTDguNzEsMjlIMjIuMTVBMi43NywyLjc3LDAsMCwwLDI1LDI2LjEzVjI1SDIzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAg''@;'; + put 'put ''ICAgICA8cGF0aCBkPSJNMzIsMTMuMjJ2OS43MkwyOC41LDIwLjIxYTEsMSwwLDAsMC0uNjEtLjIxSDE0YTEsMSwwLDAsMS0xLTFWN2ExLDEsMCwwLDEsMS0xSDIyLjVhNy40OSw3LjQ5LDAsMCwxLC4yOC0ySDE0YTMsMywwLDAsMC0zLDNWMTlhMywzLDAsMCwwLDMsM0gyNy41NWw0Ljc4LDMu''@;'; + put 'put ''NzFhMSwxLDAsMCwwLDEsLjExLDEsMSwwLDAsMCwuNTctLjlWMTIuMzdBNy40NSw3LjQ1LDAsMCwxLDMyLDEzLjIyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYi''@;'; + put 'put ''IHI9IjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTgsMTlWMTFINWEzLDMsMCwwLDAtMywzVjMyYTEsMSwwLDAsMCwuNTYuODksMSwxLDAsMCwwLDEtLjFMOC43''@;'; + put 'put ''MSwyOUgyMi4xNUEyLjc3LDIuNzcsMCwwLDAsMjUsMjYuMTNWMjVIMTRBNiw2LDAsMCwxLDgsMTlaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzEsNEgxNGEzLDMsMCwwLDAtMywzVjE5YTMsMywwLDAsMCwzLDNIMjcu''@;'; + put 'put ''NTVsNC43OCwzLjcxYTEsMSwwLDAsMCwxLC4xMSwxLDEsMCwwLDAsLjU3LS45VjdBMywzLDAsMCwwLDMxLDRaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNOCwxOVYxMUg1YTMsMywwLDAsMC0zLDNWMzJhMSwxLDAsMCww''@;'; + put 'put ''LC41Ni44OSwxLDEsMCwwLDAsMS0uMUw4LjcxLDI5SDIyLjE1QTIuNzcsMi43NywwLDAsMCwyNSwyNi4xM1YyNUgxNEE2LDYsMCwwLDEsOCwxOVoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJN''@;'; + put 'put ''MzAsMTMuNUE3LjQ4LDcuNDgsMCwwLDEsMjIuNzgsNEgxNGEzLDMsMCwwLDAtMywzVjE5YTMsMywwLDAsMCwzLDNIMjcuNTVsNC43OCwzLjcxYTEsMSwwLDAsMCwxLC4xMSwxLDEsMCwwLDAsLjU3LS45VjEyLjM3QTcuNDUsNy40NSwwLDAsMSwzMCwxMy41WiIgY2xhc3M9ImNsci1pLXNvbGlk''@;'; + put 'put ''LS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0zLS1iYWRnZWQgY2xyLWktYmFkZ2UiLz4nKSxMLkNsclNoYXBlQ2hh''@;'; + put 'put ''dEJ1YmJsZT0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTgsMi41Yy04LjgyLDAtMTYsNi4yOC0xNiwxNHM3LjE4LDE0LDE2LDE0YTE4LDE4LDAsMCwwLDQuODgtLjY4bDUuNTMsMy41MmExLDEsMCwwLDAsMS41NC0uODRsMC02LjczYTEzLDEzLDAsMCwwLDQtOS4yN0MzNCw4Ljc4LDI2''@;'; + put 'put ''LjgyLDIuNSwxOCwyLjVaTTI4LjI5LDI0LjYxYTEsMSwwLDAsMC0uMzIuNzNsMCw1LjM0LTQuMzgtMi43OWExLDEsMCwwLDAtLjgzLS4xMUExNiwxNiwwLDAsMSwxOCwyOC41Yy03LjcyLDAtMTQtNS4zOC0xNC0xMnM2LjI4LTEyLDE0LTEyLDE0LDUuMzgsMTQsMTJBMTEuMDgsMTEuMDgsMCww''@;'; + put 'put ''LDEsMjguMjksMjQuNjFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNSwxNS41SDExYTEsMSwwLDAsMCwwLDJIMjVhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUt''@;'; + put 'put ''cGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIxLjc1LDIwLjVoLTcuNWExLDEsMCwwLDAsMCwyaDcuNWExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTEuMjgsMTIuNUgy''@;'; + put 'put ''NC43MmExLDEsMCwwLDAsMC0ySDExLjI4YTEsMSwwLDAsMCwwLDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy4zOCwxMi42OWE3LjQzLDcuNDMsMCwwLDEtMS44OS42NkExMC4zNSwxMC4zNSwwLDAsMSwz''@;'; + put 'put ''MiwxNi41YTExLjA4LDExLjA4LDAsMCwxLTMuNzEsOC4xMSwxLDEsMCwwLDAtLjMyLjczbDAsNS4zNC00LjM4LTIuNzlhMSwxLDAsMCwwLS44My0uMTFBMTYsMTYsMCwwLDEsMTgsMjguNWMtNy43MiwwLTE0LTUuMzgtMTQtMTJzNi4yOC0xMiwxNC0xMmExNiwxNiwwLDAsMSw0LjU1LjY2QTcu''@;'; + put 'put ''NDQsNy40NCwwLDAsMSwyMywzLjIyYTE4LDE4LDAsMCwwLTUtLjcyYy04LjgyLDAtMTYsNi4yOC0xNiwxNHM3LjE4LDE0LDE2LDE0YTE4LDE4LDAsMCwwLDQuODgtLjY4bDUuNTMsMy41MmExLDEsMCwwLDAsMS41NC0uODRsMC02LjczYTEzLDEzLDAsMCwwLDQtOS4yN0ExMi4zMiwxMi4zMiww''@;'; + put 'put ''LDAsMCwzMy4zOCwxMi42OVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMSwxNS41YTEsMSwwLDAsMCwwLDJIMjVhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1vdXRsaW5l''@;'; + put 'put ''LS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNC4yNSwyMC41YTEsMSwwLDAsMCwwLDJoNy41YTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRn''@;'; + put 'put ''ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTAuMjgsMTEuNWExLDEsMCwwLDAsMSwxSDI0LjcyYTEsMSwwLDAsMCwuODMtLjQ3QTcuNTMsNy41MywwLDAsMSwyNCwxMC41SDExLjI4QTEsMSwwLDAsMCwxMC4yOCwxMS41WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHIt''@;'; + put 'put ''aS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPlxuICAgICAgICAgICAgPHBhdGgg''@;'; + put 'put ''ZD0iTTE4LDIuNWMtOC44MiwwLTE2LDYuMjgtMTYsMTRzNy4xOCwxNCwxNiwxNGExOCwxOCwwLDAsMCw0Ljg4LS42OGw1LjUzLDMuNTJhMSwxLDAsMCwwLDEuNTQtLjg0bDAtNi43M2ExMywxMywwLDAsMCw0LTkuMjdDMzQsOC43OCwyNi44MiwyLjUsMTgsMi41Wm04LDE0YTEsMSwwLDAsMS0x''@;'; + put 'put ''LDFIMTFhMSwxLDAsMCwxLDAtMkgyNUExLDEsMCwwLDEsMjYsMTYuNVptLTMuMjUsNWExLDEsMCwwLDEtMSwxaC03LjVhMSwxLDAsMCwxLDAtMmg3LjVBMSwxLDAsMCwxLDIyLjc1LDIxLjVabS0xMi40Ny0xMGExLDEsMCwwLDEsMS0xSDI0LjcyYTEsMSwwLDAsMSwwLDJIMTEuMjhBMSwxLDAs''@;'; + put 'put ''MCwxLDEwLjI4LDExLjVaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLDEzLjI1YTcuNDYsNy40NiwwLDAsMS00LjM1LTEuNCwxLDEsMCwwLDEtLjkzLjY1SDExLjI4YTEsMSwwLDAsMSwwLTJIMjQuMkE3LjQ2LDcu''@;'; + put 'put ''NDYsMCwwLDEsMjMsMy4yYTE4LDE4LDAsMCwwLTUtLjdjLTguODIsMC0xNiw2LjI4LTE2LDE0czcuMTgsMTQsMTYsMTRhMTgsMTgsMCwwLDAsNC44OC0uNjhsNS41MywzLjUyYTEsMSwwLDAsMCwxLjU0LS44NGwwLTYuNzNhMTMsMTMsMCwwLDAsNC05LjI3LDEyLjM0LDEyLjM0LDAsMCwwLS42''@;'; + put 'put ''OC00QTcuNDYsNy40NiwwLDAsMSwzMCwxMy4yNVpNMjEuNzUsMjIuNWgtNy41YTEsMSwwLDAsMSwwLTJoNy41YTEsMSwwLDAsMSwwLDJabTMuMjUtNUgxMWExLDEsMCwwLDEsMC0ySDI1YTEsMSwwLDAsMSwwLDJaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRo''@;'; + put 'put ''LTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNS43NSIgcj0iNSIgIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPicpLEwuQ2xyU2hhcGVQaWN0dXJlPSgwLEUuY2xySWNvblNW''@;'; + put 'put ''RykoJzxwYXRoIGQ9Ik0zMiw0SDRBMiwyLDAsMCwwLDIsNlYzMGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWNkEyLDIsMCwwLDAsMzIsNFpNNCwzMFY2SDMyVjMwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRo''@;'; + put 'put ''IGQ9Ik04LjkyLDE0YTMsMywwLDEsMC0zLTNBMywzLDAsMCwwLDguOTIsMTRabTAtNC42QTEuNiwxLjYsMCwxLDEsNy4zMywxMSwxLjYsMS42LDAsMCwxLDguOTIsOS40MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cGF0aCBk''@;'; + put 'put ''PSJNMjIuNzgsMTUuMzdsLTUuNCw1LjQtNC00YTEsMSwwLDAsMC0xLjQxLDBMNS45MiwyMi45djIuODNsNi43OS02Ljc5TDE2LDIyLjE4bC0zLjc1LDMuNzVIMTVsOC40NS04LjQ1TDMwLDI0VjIxLjE4bC01LjgxLTUuODFBMSwxLDAsMCwwLDIyLjc4LDE1LjM3WiIgY2xhc3M9ImNsci1pLW91''@;'; + put 'put ''dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMS45MywxMWEzLDMsMCwxLDAtMywzQTMsMywwLDAsMCwxMS45MywxMVptLTQuNiwwYTEuNiwxLjYsMCwxLDEsMS42LDEuNkExLjYsMS42LDAsMCwxLDcuMzMsMTFaIiBjbGFzcz0iY2xyLWktb3V0''@;'; + put 'put ''bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNy4zOCwyMC43N2wtNC00YTEsMSwwLDAsMC0xLjQxLDBMNS45MiwyMi45djIuODNsNi43OS02Ljc5TDE2LDIyLjE4bC0zLjc1LDMuNzVIMTVsOC40NS04LjQ1TDMwLDI0''@;'; + put 'put ''VjIxLjE4bC01LjgxLTUuODFhMSwxLDAsMCwwLTEuNDEsMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMyLDEzLjIyVjMwSDRWNkgyMi41YTcuNDksNy40OSwwLDAsMSwuMjgtMkg0''@;'; + put 'put ''QTIsMiwwLDAsMCwyLDZWMzBhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjEyLjM0QTcuNDUsNy40NSwwLDAsMSwzMiwxMy4yMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBj''@;'; + put 'put ''eD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMiw0SDRBMiwyLDAsMCwwLDIsNlYzMGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAs''@;'; + put 'put ''MCwyLTJWNkEyLDIsMCwwLDAsMzIsNFpNOC45Miw4YTMsMywwLDEsMS0zLDNBMywzLDAsMCwxLDguOTIsOFpNNiwyN1YyMi45bDYtNi4wOGExLDEsMCwwLDEsMS40MSwwTDE2LDE5LjM1LDguMzIsMjdabTI0LDBIMTEuMTVsNi4yMy02LjIzLDUuNC01LjRhMSwxLDAsMCwxLDEuNDEsMEwzMCwy''@;'; + put 'put ''MS4xOFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMCwxMy41QTcuNDgsNy40OCwwLDAsMSwyMi43OCw0SDRBMiwyLDAsMCwwLDIsNlYzMGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMTIuMzRBNy40Niw3''@;'; + put 'put ''LjQ2LDAsMCwxLDMwLDEzLjVaTTguOTIsOGEzLDMsMCwxLDEtMywzQTMsMywwLDAsMSw4LjkyLDhaTTYsMjdWMjIuOWw2LTYuMDhhMSwxLDAsMCwxLDEuNDEsMEwxNiwxOS4zNSw4LjMyLDI3Wm0yNCwwSDExLjE1bDYuMjMtNi4yMyw1LjQtNS40YTEsMSwwLDAsMSwxLjQxLDBMMzAsMjEuMTha''@;'; + put 'put ''IiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRn''@;'; + put 'put ''ZSIvPicpLEwuQ2xyU2hhcGVIYXBweUZhY2U9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlptMCwzMEExNCwxNCwwLDEsMSwzMiwxOCwxNCwxNCwwLDAsMSwxOCwzMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1p''@;'; + put 'put ''LW91dGxpbmUtcGF0aC0xIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIxMC44OSIgY3k9IjEzLjg5IiByPSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMjUuMDUiIGN5PSIxMy44OSIgcj0iMiIgY2xh''@;'; + put 'put ''c3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOC4xMywyOC4yMWE4LjY3LDguNjcsMCwwLDAsOC4yNi02SDkuODdBOC42Nyw4LjY3LDAsMCwwLDE4LjEzLDI4LjIxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0''@;'; + put 'put ''bGluZS1wYXRoLTQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJaTTguODksMTMuODlhMiwyLDAsMSwxLDIsMkEyLDIsMCwwLDEsOC44OSwxMy44OVptOS4yNCwxNC4zMmE4LjY3LDguNjcsMCwwLDEtOC4yNi02SDI2LjM4''@;'; + put 'put ''QTguNjcsOC42NywwLDAsMSwxOC4xMywyOC4yMVptNi45My0xMi4zMmEyLDIsMCwxLDEsMi0yQTIsMiwwLDAsMSwyNS4wNSwxNS44OVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz4nKSxMLkNsclNoYXBlTmV1dHJhbEZhY2U9KDAsRS5jbHJJY29uU1ZHKSgnPHBh''@;'; + put 'put ''dGggZD0iTTI0LjA1LDIyLjA2aC0xMmExLDEsMCwwLDAsMCwyaDEyYTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlpt''@;'; + put 'put ''MCwzMEExNCwxNCwwLDEsMSwzMiwxOCwxNCwxNCwwLDAsMSwxOCwzMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIyNS4xNiIgY3k9IjE0LjI4IiByPSIxLjgiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1p''@;'; + put 'put ''LW91dGxpbmUtcGF0aC0zIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIxMS4xNiIgY3k9IjE0LjI4IiByPSIxLjgiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMkExNiwxNiwwLDEsMCwzNCwxOCwxNiwx''@;'; + put 'put ''NiwwLDAsMCwxOCwyWm03LjA1LDIxLjA2YTEsMSwwLDAsMS0xLDFoLTEyYTEsMSwwLDAsMSwwLTJoMTJBMSwxLDAsMCwxLDI1LjA1LDIzLjA2Wk0yNywxNC4yOGExLjgsMS44LDAsMSwxLTEuOC0xLjhBMS44LDEuOCwwLDAsMSwyNywxNC4yOFptLTE1LjgsMS44YTEuOCwxLjgsMCwxLDEsMS44''@;'; + put 'put ''LTEuOEExLjgsMS44LDAsMCwxLDExLjE2LDE2LjA4WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPicpLEwuQ2xyU2hhcGVTYWRGYWNlPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJabTAs''@;'; + put 'put ''MzBBMTQsMTQsMCwxLDEsMzIsMTgsMTQsMTQsMCwwLDEsMTgsMzJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMjUuMTYiIGN5PSIxNC4yOCIgcj0iMS44IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1v''@;'; + put 'put ''dXRsaW5lLXBhdGgtMiIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMTEuNDEiIGN5PSIxNC4yOCIgcj0iMS44IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LjE2LDIwYTksOSwwLDAsMC03LjMzLDMuNzgs''@;'; + put 'put ''MSwxLDAsMSwwLDEuNjMsMS4xNiw3LDcsMCwwLDEsMTEuMzEtLjEzLDEsMSwwLDAsMCwxLjYtMS4yQTksOSwwLDAsMCwxOC4xNiwyMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMkExNiwxNiwwLDEsMCwz''@;'; + put 'put ''NCwxOCwxNiwxNiwwLDAsMCwxOCwyWm05LDEyLjI4YTEuOCwxLjgsMCwxLDEtMS44LTEuOEExLjgsMS44LDAsMCwxLDI3LDE0LjI4Wm0tMTUuNTUsMS44YTEuOCwxLjgsMCwxLDEsMS44LTEuOEExLjgsMS44LDAsMCwxLDExLjQxLDE2LjA4Wm0xNCw3LjUzYTEsMSwwLDAsMS0xLjYsMS4yLDcs''@;'; + put 'put ''NywwLDAsMC0xMS4zMS4xMywxLDEsMCwxLDEtMS42My0xLjE2LDksOSwwLDAsMSwxNC41NC0uMTdaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+JyksTC5DbHJTaGFwZVRodW1ic1VwPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yNCwyNmMtMi45MiwxLjgy''@;'; + put 'put ''LTcuMyw0LTkuMzcsNGgtNmExNi42OCwxNi42OCwwLDAsMS0zLjMxLTYuMDhBMjYuNzEsMjYuNzEsMCwwLDEsNCwxNmg5VjZhMi4wNSwyLjA1LDAsMCwxLDEuMjYtMS42OWMuNzcsMiwyLjYyLDYuNTcsNC4yMyw4LjcyQTExLjM5LDExLjM5LDAsMCwwLDI0LDE2LjkxVjE0Ljc4YTkuMTMsOS4x''@;'; + put 'put ''MywwLDAsMS0zLjkxLTNjLTEuODgtMi41MS00LjI5LTkuMTEtNC4zMS05LjE3QTEsMSwwLDAsMCwxNC41OSwyQzEzLjI1LDIuMzgsMTEsMy42LDExLDZ2OEgzYTEsMSwwLDAsMC0xLDEsMjksMjksMCwwLDAsMS40LDkuNjJjMS44OSw1LjQsNC4xLDcuMTQsNC4yLDcuMjJhMSwxLDAsMCwwLC42''@;'; + put 'put ''MS4yMWg2LjQyYzIuNDMsMCw2LjU1LTIsOS4zNy0zLjYzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzQsMzFIMjdhMSwxLDAsMCwxLTEtMVYxNGExLDEsMCwwLDEsMS0xaDdabS02LTJoNFYxNUgyOFoiIGNs''@;'; + put 'put ''YXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE5LjYzLDEyLjEyQzE3LjUxLDkuMjgsMTQuODgsMiwxNC44OCwyUzEyLDIuODMsMTIsNS4yNVYxNUgyLjIzYTI5LjQ2LDI5LjQ2LDAsMCwwLDEuNDQsOS43NEM1LjYxLDMw''@;'; + put 'put ''LjI3LDcuOCwzMiw3LjgsMzJoNi44NkMxNi45LDMyLDIxLDMwLjA2LDI0LDI4LjMxVjE1LjUxQTEwLjg0LDEwLjg0LDAsMCwxLDE5LjYzLDEyLjEyWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNywxM2ExLDEsMCww''@;'; + put 'put ''LDAtMSwxVjMwYTEsMSwwLDAsMCwxLDFoN1YxM1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+JyksTC5DbHJTaGFwZVRodW1ic0Rvd249KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTEyLDEwYzIuOTItMS44Miw3LjMtNCw5LjM3LTRoNmExNi42OCwxNi42''@;'; + put 'put ''OCwwLDAsMSwzLjMxLDYuMDhBMjYuNzEsMjYuNzEsMCwwLDEsMzIsMjBIMjNWMzBhMi4wNSwyLjA1LDAsMCwxLTEuMjYsMS42OWMtLjc3LTItMi42Mi02LjU3LTQuMjMtOC43MkExMS4zOSwxMS4zOSwwLDAsMCwxMiwxOS4wOXYyLjEzYTkuMTMsOS4xMywwLDAsMSwzLjkxLDNjMS44OCwyLjUx''@;'; + put 'put ''LDQuMjksOS4xMSw0LjMxLDkuMTdhMSwxLDAsMCwwLDEuMTkuNjNDMjIuNzUsMzMuNjIsMjUsMzIuNCwyNSwzMFYyMmg4YTEsMSwwLDAsMCwxLTEsMjksMjksMCwwLDAtMS40LTkuNjJjLTEuODktNS40LTQuMS03LjE0LTQuMi03LjIyQTEsMSwwLDAsMCwyNy43OSw0SDIxLjM3QzE4Ljk0LDQs''@;'; + put 'put ''MTQuODMsNiwxMiw3LjYzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMiw1SDlhMSwxLDAsMCwxLDEsMVYyMmExLDEsMCwwLDEtMSwxSDJaTTgsN0g0VjIxSDhaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHIt''@;'; + put 'put ''aS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNi4zNywyMy44NGMyLjEyLDIuODQsNC43NiwxMC4wNyw0Ljc2LDEwLjA3UzI0LDMzLjEzLDI0LDMwLjcxVjIxaDkuNzdhMjkuNDYsMjkuNDYsMCwwLDAtMS40NC05Ljc0QzMwLjM5LDUuNjgsMjguMiw0LDI4LjIs''@;'; + put 'put ''NEgyMS4zNUMxOS4xLDQsMTUsNS45LDEyLDcuNjV2MTIuOEExMC44NCwxMC44NCwwLDAsMSwxNi4zNywyMy44NFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNOSwyM2ExLDEsMCwwLDAsMS0xVjZBMSwxLDAsMCwwLDks''@;'; + put 'put ''NUgyVjIzWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz4nKSxMLkNsclNoYXBlQ3Jvd249KDAsRS5jbHJJY29uU1ZHKSgnXG4gIDxwYXRoIGQ9Ik00LDEzLjMzQTEuMzksMS4zOSwwLDEsMCwyLjYsMTQuNzIsMS4zOSwxLjM5LDAsMCwwLDQsMTMuMzNaIiBjbGFz''@;'; + put 'put ''cz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICA8cGF0aCBkPSJNMzEuODEsMTUuODRhMjAuMzUsMjAuMzUsMCwwLDAtNC41OCwxLjQzLDIyLjcsMjIuNywwLDAsMC0zLjQ4LDIuMUExNy42OSwxNy42OSwwLDAsMSwyMiwxNi41N2E0Ny42NSw0Ny42NSwwLDAsMS0y''@;'; + put 'put ''LjgtNy42OSwxLDEsMCwwLDAtMS0uNzQsMSwxLDAsMCwwLTEsLjc0LDQ2LjcxLDQ2LjcxLDAsMCwxLTIuOCw3LjY5LDE3LDE3LDAsMCwxLTEuNzYsMi44LDIyLjcsMjIuNywwLDAsMC0zLjQ4LTIuMSwyMC42NiwyMC42NiwwLDAsMC00LjU4LTEuNDMsMSwxLDAsMCwwLTEsLjM5LDEsMSwwLDAs''@;'; + put 'put ''MC0uMDksMS4wNUE1MC4xMyw1MC4xMywwLDAsMSw3LjgyLDMxLjE3YTEsMSwwLDAsMCwxLC44M0gyNy42MmExLDEsMCwwLDAsMS0uODMsNTAuMTUsNTAuMTUsMCwwLDEsNC4yNi0xMy44OSwxLDEsMCwwLDAtLjA5LTEuMDVBMSwxLDAsMCwwLDMxLjgxLDE1Ljg0Wk0yNi43OSwzMEg5LjY0YTU1''@;'; + put 'put ''LjY2LDU1LjY2LDAsMCwwLTMuNC0xMS43MSwxNS43NSwxNS43NSwwLDAsMSwyLjA5Ljc4LDIwLDIwLDAsMCwxLDMuODUsMi40NSwxLDEsMCwwLDAsMS4zOS0uMDksMTkuMjgsMTkuMjgsMCwwLDAsMi42Ny00LDQzLjQ2LDQzLjQ2LDAsMCwwLDItNC44OSw0MS43NCw0MS43NCwwLDAsMCwyLDQu''@;'; + put 'put ''ODksMTkuOTIsMTkuOTIsMCwwLDAsMi42Niw0LDEsMSwwLDAsMCwxLjQuMDksMTkuMjEsMTkuMjEsMCwwLDEsMy44NS0yLjQ1LDE0Ljc3LDE0Ljc3LDAsMCwxLDIuMDktLjc4QTU1LjA3LDU1LjA3LDAsMCwwLDI2Ljc5LDMwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1w''@;'; + put 'put ''YXRoLTIiLz5cbiAgPGVsbGlwc2UgY3g9IjMzLjgzIiBjeT0iMTMuMzMiIHJ4PSIxLjM5IiByeT0iMS4zOSIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgPHBhdGggZD0iTTE4LjIyLDYuMzlBMS4zOSwxLjM5LDAsMSwwLDE2Ljg0LDUsMS4zOSwxLjM5''@;'; + put 'put ''LDAsMCwwLDE4LjIyLDYuMzlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIvPlxuICA8cGF0aCBkPSJNMTguMjMsMjYuMzRhMS4xMSwxLjExLDAsMSwwLDEuMSwxLjFBMS4xLDEuMSwwLDAsMCwxOC4yMywyNi4zNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNs''@;'; + put 'put ''ci1pLW91dGxpbmUtcGF0aC01Ii8+XG4gIDxwYXRoIGQ9Ik0xMi41OCwyNi4zNGExLjExLDEuMTEsMCwxLDAsMS4xLDEuMUExLjEsMS4xLDAsMCwwLDEyLjU4LDI2LjM0WiIvPjxwYXRoIGQ9Ik0yMy44OSwyNi4zNGExLjExLDEuMTEsMCwxLDAsMS4xLDEuMUExLjEsMS4xLDAsMCwwLDIzLjg5''@;'; + put 'put ''LDI2LjM0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiLz5cblxuICA8cGF0aCBkPSJNMi42LDExLjkzQTEuNCwxLjQsMCwxLDAsNCwxMy4zMywxLjQsMS40LDAsMCwwLDIuNiwxMS45M1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEi''@;'; + put 'put ''Lz5cbiAgPGVsbGlwc2UgY3g9IjMzLjgzIiBjeT0iMTMuMzMiIHJ4PSIxLjM5IiByeT0iMS4zOSIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIvPlxuICA8cGF0aCBkPSJNMTguMjIsNi4zOUExLjM5LDEuMzksMCwxLDAsMTYuODQsNSwxLjM5LDEuMzksMCwwLDAsMTgu''@;'; + put 'put ''MjIsNi4zOVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiLz5cbiAgPHBhdGggZD0iTTMxLjYzLDE2LjFBMTguNjEsMTguNjEsMCwwLDAsMjgsMTcuMzRhMjEuNTcsMjEuNTcsMCwwLDAtNCwyLjQ5LDE5LjIsMTkuMiwwLDAsMS0yLjI2LTMuNDksNDguOTIsNDguOTIs''@;'; + put 'put ''MCwwLDEtMi41Mi02LjU4LDEsMSwwLDAsMC0xLS43MWgwYTEsMSwwLDAsMC0xLC43MSw0OC40Miw0OC40MiwwLDAsMS0yLjUyLDYuNTgsMTguNjksMTguNjksMCwwLDEtMi4yNiwzLjQ4LDIyLjgxLDIyLjgxLDAsMCwwLTQtMi40OEExOC44MywxOC44MywwLDAsMCw0LjksMTYuMWExLDEsMCww''@;'; + put 'put ''LDAtMSwuMzMsMSwxLDAsMCwwLS4xMywxLjA3LDU1LjksNTUuOSwwLDAsMSw0LDEzLjUsMSwxLDAsMCwwLDEsLjgzaDE5YTEsMSwwLDAsMCwxLS44Myw1NS45LDU1LjksMCwwLDEsNC0xMy41LDEsMSwwLDAsMC0uMTMtMS4wN0ExLDEsMCwwLDAsMzEuNjMsMTYuMVpNMTEuMDgsMjguNTVhMS4x''@;'; + put 'put ''MSwxLjExLDAsMSwxLDEuMS0xLjExQTEuMTEsMS4xMSwwLDAsMSwxMS4wOCwyOC41NVptNy4xNSwwYTEuMTEsMS4xMSwwLDAsMSwwLTIuMjEsMS4xMSwxLjExLDAsMCwxLDAsMi4yMVptNy4xNiwwYTEuMTEsMS4xMSwwLDEsMSwxLjEtMS4xMUExLjExLDEuMTEsMCwwLDEsMjUuMzksMjguNTVa''@;'; + put 'put ''IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC00Ii8+XG4gICcpLEwuQ2xyU2hhcGVIYXNodGFnPSgwLEUuY2xySWNvblNWRykoJ1xuICA8cGF0aCBkPSJNMzIsMTJIMjUuMzRsMS41NS03Ljc0YTEsMSwwLDAsMC0yLS4zOUwyMy4zLDEySDE1LjExbDEuNTUtNy43NGExLDEs''@;'; + put 'put ''MCwwLDAtMi0uMzlMMTMuMDcsMTJINmExLDEsMCwwLDAsMCwyaDYuNjdsLTEuNiw4SDRhMSwxLDAsMCwwLDAsMmg2LjY2TDkuMTEsMzEuNzRhMSwxLDAsMCwwLC43OSwxLjE3LjY4LjY4LDAsMCwwLC4yLDAsMSwxLDAsMCwwLDEtLjhMMTIuNywyNGg4LjE5bC0xLjU1LDcuNzRhMSwxLDAsMCww''@;'; + put 'put ''LC43OSwxLjE3LjYyLjYyLDAsMCwwLC4xOSwwLDEsMSwwLDAsMCwxLS44TDIyLjkzLDI0SDMwYTEsMSwwLDAsMCwwLTJIMjMuMzNsMS42MS04SDMyYTEsMSwwLDAsMCwwLTJaTTIxLjI5LDIySDEzLjFsMS42MS04SDIyLjlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBh''@;'; + put 'put ''dGgtMSIvPlxuXG4gIDxwYXRoIGQ9Ik0zMS44NywxMEgyNi4zMmwxLTQuODNBMSwxLDAsMCwwLDI2LjM1LDRoLTJhMSwxLDAsMCwwLTEsLjc4TDIyLjMzLDEwaC01LjRsMS00LjgzQTEsMSwwLDAsMCwxNyw0SDE1YTEsMSwwLDAsMC0xLC43OEwxMywxMEg3YTEsMSwwLDAsMC0xLC44bC0uNDEs''@;'; + put 'put ''MmExLDEsMCwwLDAsMSwxLjJoNS41NUwxMC41LDIyaC02YTEsMSwwLDAsMC0xLC44bC0uNDEsMmExLDEsMCwwLDAsMSwxLjJIOS42OGwtMSw0LjgzYTEsMSwwLDAsMCwxLDEuMTdoMmExLDEsMCwwLDAsLjk1LS43OEwxMy42NywyNmg1LjRsLTEsNC44M0ExLDEsMCwwLDAsMTksMzJoMmExLDEs''@;'; + put 'put ''MCwwLDAsMS0uNzhMMjMuMDUsMjZoNmExLDEsMCwwLDAsMS0uOGwuNC0yYTEsMSwwLDAsMC0xLTEuMkgyMy44N2wxLjYzLThoNmExLDEsMCwwLDAsMS0uOGwuNDEtMkExLDEsMCwwLDAsMzEuODcsMTBabS0xMiwxMmgtNS40bDEuNjQtOGg1LjRaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWkt''@;'; + put 'put ''c29saWQtcGF0aC0xIi8+XG4gICcpLEwuU29jaWFsU2hhcGVzPXtjcm93bjpMLkNsclNoYXBlQ3Jvd24sc2hhcmU6TC5DbHJTaGFwZVNoYXJlLHN0YXI6TC5DbHJTaGFwZVN0YXIsImhhbGYtc3RhciI6TC5DbHJTaGFwZUhhbGZTdGFyLGJvb2ttYXJrOkwuQ2xyU2hhcGVCb29rbWFyayxlbnZl''@;'; + put 'put ''bG9wZTpMLkNsclNoYXBlRW52ZWxvcGUsY2FsZW5kYXI6TWUuQ2xyU2hhcGVDYWxlbmRhcixldmVudDpNZS5DbHJTaGFwZUV2ZW50LHRhc2tzOkwuQ2xyU2hhcGVUYXNrcyxmbGFnOkwuQ2xyU2hhcGVGbGFnLGluYm94OkwuQ2xyU2hhcGVJbmJveCxoYXNodGFnOkwuQ2xyU2hhcGVIYXNodGFn''@;'; + put 'put ''LGhlYXJ0OkwuQ2xyU2hhcGVIZWFydCwiaGVhcnQtYnJva2VuIjpMLkNsclNoYXBlSGVhcnRCcm9rZW4sInRhbGstYnViYmxlcyI6TC5DbHJTaGFwZVRhbGtCdWJibGVzLCJjaGF0LWJ1YmJsZSI6TC5DbHJTaGFwZUNoYXRCdWJibGUscGljdHVyZTpMLkNsclNoYXBlUGljdHVyZSwiaGFwcHkt''@;'; + put 'put ''ZmFjZSI6TC5DbHJTaGFwZUhhcHB5RmFjZSwibmV1dHJhbC1mYWNlIjpMLkNsclNoYXBlTmV1dHJhbEZhY2UsInNhZC1mYWNlIjpMLkNsclNoYXBlU2FkRmFjZSwidGh1bWJzLXVwIjpMLkNsclNoYXBlVGh1bWJzVXAsInRodW1icy1kb3duIjpMLkNsclNoYXBlVGh1bWJzRG93bn0sT2JqZWN0''@;'; + put 'put ''LmRlZmluZVByb3BlcnR5KEwuU29jaWFsU2hhcGVzLCJmYXZvcml0ZSIsKDAsQi5kZXNjcmlwdG9yQ29uZmlnKShMLlNvY2lhbFNoYXBlcy5zdGFyKSksT2JqZWN0LmRlZmluZVByb3BlcnR5KEwuU29jaWFsU2hhcGVzLCJlbWFpbCIsKDAsQi5kZXNjcmlwdG9yQ29uZmlnKShMLlNvY2lhbFNo''@;'; + put 'put ''YXBlcy5lbnZlbG9wZSkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShMLlNvY2lhbFNoYXBlcywiZGF0ZSIsKDAsQi5kZXNjcmlwdG9yQ29uZmlnKShMLlNvY2lhbFNoYXBlcy5jYWxlbmRhcikpLCJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiZ3aW5kb3cuaGFzT3duUHJvcGVydHkoIkNsYXJp''@;'; + put 'put ''dHlJY29ucyIpJiZ3aW5kb3cuQ2xhcml0eUljb25zLmFkZChMLlNvY2lhbFNoYXBlcyl9LCIuL3Byb2plY3RzL2ljb25zL3NyYy9zaGFwZXMvdGVjaG5vbG9neS1zaGFwZXMudHMiOmZ1bmN0aW9uKEplLEwsbWUpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoTCwiX19lc01v''@;'; + put 'put ''ZHVsZSIse3ZhbHVlOiEwfSksTC5DbHJTaGFwZVZNV0FwcD1MLkNsclNoYXBlVk09TC5DbHJTaGFwZVJvdXRlcj1MLkNsclNoYXBlTmV0d29ya1N3aXRjaD1MLkNsclNoYXBlTmV0d29ya1NldHRpbmdzPUwuQ2xyU2hhcGVOZXR3b3JrR2xvYmU9TC5DbHJTaGFwZVRhYmxldD1MLkNsclNoYXBl''@;'; + put 'put ''TW9iaWxlPUwuQ2xyU2hhcGVCYXR0ZXJ5PUwuQ2xyU2hhcGVBcHBsaWNhdGlvbj1MLkNsclNoYXBlQ29kZT1MLkNsclNoYXBlVGVybWluYWw9TC5DbHJTaGFwZURpc3BsYXk9TC5DbHJTaGFwZUNvbXB1dGVyPUwuQ2xyU2hhcGVGbG9wcHk9TC5DbHJTaGFwZVBsdWdpbj1MLkNsclNoYXBlRG93''@;'; + put 'put ''bmxvYWRDbG91ZD1MLkNsclNoYXBlVXBsb2FkQ2xvdWQ9TC5DbHJTaGFwZUV4cG9ydD1MLkNsclNoYXBlSW1wb3J0PUwuQ2xyU2hhcGVTaGllbGRYPUwuQ2xyU2hhcGVTaGllbGQ9TC5DbHJTaGFwZVNoaWVsZENoZWNrPUwuQ2xyU2hhcGVSZXNvdXJjZVBvb2w9TC5DbHJTaGFwZURhdGFDbHVz''@;'; + put 'put ''dGVyPUwuQ2xyU2hhcGVNZW1vcnk9TC5DbHJTaGFwZUNQVT1MLkNsclNoYXBlQnVpbGRpbmc9TC5DbHJTaGFwZUFwcGxpY2F0aW9ucz1MLkNsclNoYXBlQ2x1c3Rlcj1MLkNsclNoYXBlU3RvcmFnZT1MLkNsclNoYXBlSG9zdD1MLkNsclNoYXBlRGFzaGJvYXJkPUwuQ2xyU2hhcGVNb3VzZT1M''@;'; + put 'put ''LkNsclNoYXBlS2V5Ym9hcmQ9TC5DbHJTaGFwZURldmljZXM9TC5DbHJTaGFwZUJhY2t1cD1MLkNsclNoYXBlQmFja3VwUmVzdG9yZT1MLkNsclNoYXBlSGFyZERpc2s9TC5DbHJTaGFwZVJhY2tTZXJ2ZXI9TC5DbHJTaGFwZVdpZmk9TC5DbHJTaGFwZUJ1bmRsZT1MLkNsclNoYXBlQmxvY2tz''@;'; + put 'put ''R3JvdXA9TC5DbHJTaGFwZUJsb2NrPUwuQ2xyU2hhcGVMYXllcnM9TC5DbHJTaGFwZVVuaW5zdGFsbD1MLkNsclNoYXBlSW5zdGFsbD1MLkNsclNoYXBlTm9XaWZpPUwuQ2xyU2hhcGVQaG9uZUhhbmRzZXQ9TC5DbHJTaGFwZVJ1bGVyUGVuY2lsPXZvaWQgMCxMLlRlY2hub2xvZ3lTaGFwZXM9''@;'; + put 'put ''TC5DbHJTaGFwZUZpbGVTaGFyZTI9TC5DbHJTaGFwZUNpQ2Q9TC5DbHJTaGFwZUFuaW1hdGlvbj1MLkNsclNoYXBlVGFwZURyaXZlPUwuQ2xyU2hhcGVNZWRpYUNoYW5nZXI9TC5DbHJDb250cm9sTHVuPUwuQ2xyU2hhcGVQb2Q9TC5DbHJTaGFwZU5vZGU9TC5DbHJTaGFwZU5hbWVzcGFjZT1M''@;'; + put 'put ''LkNsclNoYXBlTm9kZXM9TC5DbHJTaGFwZU5vZGVHcm91cD1MLkNsclNoYXBlU3RvcmFnZUFkYXB0ZXI9TC5DbHJTaGFwZUhvc3RHcm91cD1MLkNsclNoYXBlU3F1aWQ9TC5DbHJTaGFwZUNhcGFjaXRvcj1MLkNsclNoYXBlUmVzaXN0b3I9TC5DbHJTaGFwZUluZHVjdG9yPUwuQ2xyU2hhcGVS''@;'; + put 'put ''YWRhcj1MLkNsclNoYXBlVXNiPUwuQ2xyU2hhcGVRckNvZGU9TC5DbHJTaGFwZUZpbGVTaGFyZT1MLkNsclNoYXBlQ29udGFpbmVyVm9sdW1lPUwuQ2xyU2hhcGVDb250YWluZXI9TC5DbHJTaGFwZUNkRHZkPUwuQ2xyU2hhcGVCYXJDb2RlPUwuQ2xyU2hhcGVBdG9tPUwuQ2xyU2hhcGVBc3Np''@;'; + put 'put ''Z25Vc2VyPUwuQ2xyU2hhcGVQcm9jZXNzT25WTT1MLkNsclNoYXBlQmx1ZXRvb3RoT2ZmPUwuQ2xyU2hhcGVCbHVldG9vdGg9TC5DbHJTaGFwZVNTRD1MLkNsclNoYXBlTlZNZT1MLkNsclNoYXBlSGFyZERyaXZlRGlza3M9TC5DbHJTaGFwZUhhcmREcml2ZT1MLkNsclNoYXBlQWRtaW5pc3Ry''@;'; + put 'put ''YXRvcj1MLkNsclNoYXBlRmxhc2s9TC5DbHJTaGFwZUhlbGl4PUwuQ2xyU2hhcGVEZXBsb3k9TC5DbHJTaGFwZUNsb3VkVHJhZmZpYz1MLkNsclNoYXBlQ2xvdWRTY2FsZT1MLkNsclNoYXBlQ2xvdWROZXR3b3JrPUwuQ2xyU2hhcGVVbmxpbms9TC5DbHJTaGFwZUxpbms9TC5DbHJTaGFwZURp''@;'; + put 'put ''c2Nvbm5lY3Q9TC5DbHJTaGFwZUNvbm5lY3Q9TC5DbHJTaGFwZVVuYXJjaGl2ZT1MLkNsclNoYXBlQXJjaGl2ZT1MLkNsclNoYXBlQ2VydGlmaWNhdGU9dm9pZCAwO3ZhciBCPW1lKCIuL3Byb2plY3RzL2ljb25zL3NyYy91dGlscy9kZXNjcmlwdG9yLWNvbmZpZy50cyIpLEU9bWUoIi4vcHJv''@;'; + put 'put ''amVjdHMvaWNvbnMvc3JjL3V0aWxzL3N2Zy10YWctZ2VuZXJhdG9yLnRzIik7TC5DbHJTaGFwZVJ1bGVyUGVuY2lsPSgwLEUuY2xySWNvblNWRykoJzxwb2x5Z29uIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBwb2ludHM9IjkgMTcuNDEgOSAyNyAxOC41OSAy''@;'; + put 'put ''NyAxNi41OSAyNSAxMSAyNSAxMSAxOS40MSA5IDE3LjQxIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTM0Ljg3LDMyLjI5LDMyLDI5LjM4VjMySDRWMjcuODVINnYtMS42SDRWMTkuNkg2VjE4SDRWMTEuNkg2VjEw''@;'; + put 'put ''SDRWNC40MUwxOS45NCwyMC4yNlYxNy40NEwzLjcxLDEuMjlBMSwxLDAsMCwwLDIsMlYzM2ExLDEsMCwwLDAsMSwxSDM0LjE2YTEsMSwwLDAsMCwuNzEtMS43MVoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJNMjQs''@;'; + put 'put ''MzBoNGEyLDIsMCwwLDAsMi0yVjguN0wyNy43LDQuNDdhMiwyLDAsMCwwLTEuNzYtMWgwYTIsMiwwLDAsMC0xLjc2LDEuMDhMMjIsOC43MlYyOEEyLDIsMCwwLDAsMjQsMzBaTTI0LDkuMmwxLjk0LTMuNzdMMjgsOS4yMVYyNEgyNFptMCwxNi40M2g0djIuNDRIMjRaIi8+XG4gICAgICAgICAg''@;'; + put 'put ''ICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzQuODcsMzIuMjEsMzAsMjcuMzdWOC43NUwyNy43LDQuNTJhMiwyLDAsMCwwLTMuNTQsMEwyMiw4Ljc2VjE5LjQxTDMuNzEsMS4yMUExLDEsMCwwLDAsMiwxLjkyVjEwSDQuMTd2MS42SDJWMThINC4x''@;'; + put 'put ''N3YxLjZIMnY2LjY1SDQuMTd2MS42SDJ2NS4wN2ExLDEsMCwwLDAsMSwxSDM0LjE2YTEsMSwwLDAsMCwuNzEtMS43MVpNMTAsMjZWMTYuOTRMMTkuMDcsMjZabTE4LDIuMTFIMjRWMjUuNjhoNFptMC00SDI0VjkuMjVsMS45NC0zLjc3TDI4LDkuMjZaIi8+XG4nKSxMLkNsclNoYXBlUGhvbmVI''@;'; + put 'put ''YW5kc2V0PSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMjcuNzMsMzUuNDRhNC43Miw0LjcyLDAsMCwxLTEtLjExLDMzLjkxLDMzLjkxLDAsMCwxLTE2LjYyLTguNzUsMzIuNzEsMzIuNzEsMCwwLDEtOS0xNi4y''@;'; + put 'put ''NUE0LjU4LDQuNTgsMCwwLDEsMi40Niw2LjA1bDQtMy44NUEyLDIsMCwwLDEsOCwxLjY2YTIsMiwwLDAsMSwxLjQ1Ljg3bDUsNy4zOWExLjYsMS42LDAsMCwxLS4xMSwxLjlsLTIuNTEsM2ExOC45NCwxOC45NCwwLDAsMCw0LjE3LDUuODloMGExOS4yNiwxOS4yNiwwLDAsMCw2LjA3LDQuMDls''@;'; + put 'put ''My4xMS0yLjQ3YTEuNjQsMS42NCwwLDAsMSwxLjg2LS4xMmw3LjU1LDQuODhBMiwyLDAsMCwxLDM1LDMwLjJsLTMuOSwzLjg2QTQuNzQsNC43NCwwLDAsMSwyNy43MywzNS40NFpNNy44NCwzLjY0bC00LDMuODVhMi41NCwyLjU0LDAsMCwwLS43NSwyLjQsMzAuNywzMC43LDAsMCwwLDguNDEs''@;'; + put 'put ''MTUuMjYsMzEuOSwzMS45LDAsMCwwLDE1LjY0LDguMjMsMi43NSwyLjc1LDAsMCwwLDIuNS0uNzRsMy45LTMuODYtNy4yOS00LjcxLTMuMzQsMi42NmExLDEsMCwwLDEtLjkyLjE3LDIwLjA2LDIwLjA2LDAsMCwxLTcuMzYtNC43NWgwYTE5LjQ5LDE5LjQ5LDAsMCwxLTQuODctNy4yQTEsMSww''@;'; + put 'put ''LDAsMSwxMCwxNGwyLjctMy4yM1oiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0xNS4yMiwyMC42NGEyMC4zNywyMC4zNywwLDAsMCw3LjQsNC43OWwzLjc3LTNhLjY3LjY3LDAsMCwxLC43NiwwbDcsNC41MWEyLDIsMCww''@;'; + put 'put ''LDEsLjMzLDMuMThsLTMuMjgsMy4yNGE0LDQsMCwwLDEtMy42MywxLjA3LDM1LjA5LDM1LjA5LDAsMCwxLTE3LjE1LTlBMzMuNzksMzMuNzksMCwwLDEsMS4xNSw4LjZhMy43OCwzLjc4LDAsMCwxLDEuMS0zLjU1bDMuNC0zLjI4YTIsMiwwLDAsMSwzLjEyLjMyTDEzLjQzLDlhLjYzLjYzLDAs''@;'; + put 'put ''MCwxLDAsLjc1bC0zLjA3LDMuNjlBMTkuNzUsMTkuNzUsMCwwLDAsMTUuMjIsMjAuNjRaIi8+XG4nKSxMLkNsclNoYXBlTm9XaWZpPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMTgsMjQuNDJhNCw0LDAsMSww''@;'; + put 'put ''LDQsNEE0LDQsMCwwLDAsMTgsMjQuNDJabTAsNmEyLDIsMCwxLDEsMi0yQTIsMiwwLDAsMSwxOCwzMC40MloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMjYuMjEsMjEuODVhMSwxLDAsMCwwLS4yMy0xLjQsMTMu''@;'; + put 'put ''NTYsMTMuNTYsMCwwLDAtNS0yLjIzbDMuODcsMy44N0ExLDEsMCwwLDAsMjYuMjEsMjEuODVaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgZD0iTTE4LjA1LDEwLjcyYTIwLjg4LDIwLjg4LDAsMCwwLTQuMTYuNDNsMS43''@;'; + put 'put ''NCwxLjc0YTE5LDE5LDAsMCwxLDIuNDItLjE3QTE4Ljc2LDE4Ljc2LDAsMCwxLDI4LjY0LDE2YTEsMSwwLDAsMCwxLjEyLTEuNjVBMjAuNzUsMjAuNzUsMCwwLDAsMTguMDUsMTAuNzJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBh''@;'; + put 'put ''dGgtNCIgZD0iTTMzLjU1LDguMkEyOC4xMSwyOC4xMSwwLDAsMCw4LjExLDUuMzZMOS42OSw2LjkzQTI2LDI2LDAsMCwxLDMyLjQ1LDkuODdhMSwxLDAsMCwwLDEuMS0xLjY3WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUi''@;'; + put 'put ''IGQ9Ik0xLjg0LDQuNzUsNC4yNyw3LjE4Yy0uNjIuMzQtMS4yMy43LTEuODMsMS4xQTEsMSwwLDEsMCwzLjU2LDkuOTRDNC4yNiw5LjQ3LDUsOSw1Ljc0LDguNjVsMy44NywzLjg3QTIwLjU5LDIwLjU5LDAsMCwwLDYuMjMsMTQuNCwxLDEsMCwwLDAsNy4zNiwxNmExOC44MiwxOC44MiwwLDAs''@;'; + put 'put ''MSwzLjc3LTJsNC4xNiw0LjE2QTEzLjUxLDEzLjUxLDAsMCwwLDEwLDIwLjU1YTEsMSwwLDAsMCwxLjE4LDEuNjFBMTEuNTIsMTEuNTIsMCwwLDEsMTcsMjBsMTAuOCwxMC44LDEuNDEtMS40MS0yNi0yNloiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1p''@;'; + put 'put ''LXNvbGlkLXBhdGgtMSIgY3g9IjE4IiBjeT0iMjkuNTQiIHI9IjMiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGQ9Ik0yOS4xOCwxNy43MWwuMTEtLjE3YTEuNTEsMS41MSwwLDAsMC0uNDctMi4xQTIwLjU3LDIwLjU3LDAsMCww''@;'; + put 'put ''LDE4LDEyLjM3Yy0uNTYsMC0xLjExLDAtMS42NS4wN2wzLjIxLDMuMjFhMTcuNDEsMTcuNDEsMCwwLDEsNy42LDIuNTJBMS40OSwxLjQ5LDAsMCwwLDI5LjE4LDE3LjcxWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIgZD0iTTMy''@;'; + put 'put ''Ljc2LDkuMzhBMjcuOSwyNy45LDAsMCwwLDEwLjE4LDYuMjdMMTIuODEsOC45QTI0LjY4LDI0LjY4LDAsMCwxLDMxLjEsMTIuMTJhMS40OSwxLjQ5LDAsMCwwLDItLjQ2bC4xMS0uMTdBMS41MSwxLjUxLDAsMCwwLDMyLjc2LDkuMzhaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xy''@;'; + put 'put ''LWktc29saWQgY2xyLWktc29saWQtcGF0aC00IiBkPSJNMyw0Ljc1bDMuMSwzLjFBMjcuMjgsMjcuMjgsMCwwLDAsMy4xOCw5LjQyYTEuNTEsMS41MSwwLDAsMC0uNDgsMi4xMWwuMTEuMTdhMS40OSwxLjQ5LDAsMCwwLDIsLjQ2LDI0LjY5LDI0LjY5LDAsMCwxLDMuNjctMS45bDMuMTQsMy4x''@;'; + put 'put ''NGEyMC42MywyMC42MywwLDAsMC00LjUzLDIuMDksMS41MSwxLjUxLDAsMCwwLS40NiwyLjFsLjExLjE3YTEuNDksMS40OSwwLDAsMCwyLC40NkExNy40NiwxNy40NiwwLDAsMSwxNC4yNSwxNmwzLjYsMy42YTEzLjM5LDEzLjM5LDAsMCwwLTYuNzksMS45MywxLjUsMS41LDAsMCwwLS40Niwy''@;'; + put 'put ''LjA5bC4xLjE2YTEuNTIsMS41MiwwLDAsMCwyLjA2LjQ0LDEwLjIsMTAuMiwwLDAsMSw5LS43TDI5LDMwLjc1bDEuNDEtMS40MS0yNi0yNloiLz5cbicpLEwuQ2xyU2hhcGVJbnN0YWxsPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUt''@;'; + put 'put ''cGF0aC0xIiBkPSJNMzAuOTIsOEgyNi41NWExLDEsMCwwLDAsMCwySDMxVjMwSDVWMTBIOS4zOGExLDEsMCwwLDAsMC0ySDUuMDhBMiwyLDAsMCwwLDMsMTBWMzBhMiwyLDAsMCwwLDIuMDgsMkgzMC45MkEyLDIsMCwwLDAsMzMsMzBWMTBBMiwyLDAsMCwwLDMwLjkyLDhaIi8+XG4gICAgICAg''@;'; + put 'put ''ICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTEwLjMsMTguODdsNyw2Ljg5YTEsMSwwLDAsMCwxLjQsMGw3LTYuODlhMSwxLDAsMCwwLTEuNC0xLjQzTDE5LDIyLjY1VjRhMSwxLDAsMCwwLTIsMFYyMi42NWwtNS4zLTUuMjFhMSwxLDAs''@;'; + put 'put ''MCwwLTEuNCwxLjQzWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMTAuMywxOC44N2w3LDYuODlhMSwxLDAsMCwwLDEuNCwwbDctNi44OWExLDEsMCwwLDAtMS40LTEuNDNMMTksMjIu''@;'; + put 'put ''NjVWNGExLDEsMCwwLDAtMiwwVjIyLjY1bC01LjMtNS4yMWExLDEsMCwwLDAtMS40LDEuNDNaIi8+PHBhdGggZD0iTTMxLDEzLjQzVjMwSDVWMTBIOS4zOGExLDEsMCwwLDAsMC0ySDUuMDhBMiwyLDAsMCwwLDMsMTBWMzBhMiwyLDAsMCwwLDIuMDgsMkgzMC45MkEyLDIsMCwwLDAsMzMsMzBW''@;'; + put 'put ''MTIuODdBNy40NSw3LjQ1LDAsMCwxLDMxLDEzLjQzWiIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgICAgICAgICAgIDxw''@;'; + put 'put ''YXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiBkPSJNMTAuMywxOC44N2w3LDYuODlhMSwxLDAsMCwwLDEuNCwwbDctNi44OWExLDEsMCwwLDAtMS40LTEuNDNMMTksMjIuNjVWNGExLDEsMCwwLDAtMiwwVjIyLjY1bC01LjMt''@;'; + put 'put ''NS4yMWExLDEsMCwwLDAtMS40LDEuNDNaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIgZD0iTTMxLDE1LjRWMzBINVYxMEg5LjM4YTEsMSwwLDAsMCwwLTJINS4wOEEyLDIsMCwwLDAsMywx''@;'; + put 'put ''MFYzMGEyLDIsMCwwLDAsMi4wOCwySDMwLjkyQTIsMiwwLDAsMCwzMywzMFYxNS40WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44NSwxLjE0LDIxLjEz''@;'; + put 'put ''LDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiLz5cbicpLEwuQ2xyU2hhcGVVbmluc3RhbGw9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91''@;'; + put 'put ''dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xMS4yOSwyNi43MmExLDEsMCwwLDAsMS40MSwwTDE4LDIxLjQ5bDUuMyw1LjIzQTEsMSwwLDAsMCwyNC43LDI1LjNsLTUuMjgtNS4yMSw1LjI4LTUuMjFhMSwxLDAsMCwwLTEuNDEtMS40MkwxOCwxOC42OGwtNS4zLTUuMjNhMSwxLDAs''@;'; + put 'put ''MCwwLTEuNDEsMS40Mmw1LjI4LDUuMjFMMTEuMywyNS4zQTEsMSwwLDAsMCwxMS4yOSwyNi43MloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMzAuOTIsOEgyNi41NWExLDEsMCwwLDAsMCwySDMxVjMwSDVWMTBI''@;'; + put 'put ''OS4zOGExLDEsMCwwLDAsMC0ySDUuMDhBMiwyLDAsMCwwLDMsMTBWMzBhMiwyLDAsMCwwLDIuMDgsMkgzMC45MkEyLDIsMCwwLDAsMzMsMzBWMTBBMiwyLDAsMCwwLDMwLjkyLDhaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxp''@;'; + put 'put ''bmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0xMS4yOSwyNi43MmExLDEsMCwwLDAsMS40MSwwTDE4LDIxLjQ5bDUuMyw1LjIzQTEsMSwwLDAsMCwyNC43LDI1LjNsLTUuMjgtNS4yMSw1LjI4LTUuMjFhMSwxLDAsMCwwLTEuNDEtMS40MkwxOCwxOC42OGwtNS4zLTUuMjNhMSwxLDAsMCwwLTEuNDEs''@;'; + put 'put ''MS40Mmw1LjI4LDUuMjFMMTEuMywyNS4zQTEsMSwwLDAsMCwxMS4yOSwyNi43MloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgZD0iTTMxLDEzLjQzVjMwSDVWMTBIOS4zOGExLDEsMCwwLDAs''@;'; + put 'put ''MC0ySDUuMDhBMiwyLDAsMCwwLDMsMTBWMzBhMiwyLDAsMCwwLDIuMDgsMkgzMC45MkEyLDIsMCwwLDAsMzMsMzBWMTIuODdBNy40NSw3LjQ1LDAsMCwxLDMxLDEzLjQzWiIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUt''@;'; + put 'put ''cGF0aC0zLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiBkPSJNMTEuMjksMjYuNzJhMSwxLDAsMCwwLDEuNDEsMEwx''@;'; + put 'put ''OCwyMS40OWw1LjMsNS4yM0ExLDEsMCwwLDAsMjQuNywyNS4zbC01LjI4LTUuMjEsNC43NS00LjY5SDIyLjIzYTMuNjUsMy42NSwwLDAsMS0uODEtLjFMMTgsMTguNjhsLTUuMy01LjIzYTEsMSwwLDAsMC0xLjQxLDEuNDJsNS4yOCw1LjIxTDExLjMsMjUuM0ExLDEsMCwwLDAsMTEuMjksMjYu''@;'; + put 'put ''NzJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIgZD0iTTMxLDE1LjRWMzBINVYxMEg5LjM4YTEsMSwwLDAsMCwwLTJINS4wOEEyLDIsMCwwLDAsMywxMFYzMGEyLDIsMCwwLDAsMi4wOCwy''@;'; + put 'put ''SDMwLjkyQTIsMiwwLDAsMCwzMywzMFYxNS40WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwy''@;'; + put 'put ''Mi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiLz5cbicpLEwuQ2xyU2hhcGVMYXllcnM9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRo''@;'; + put 'put ''LTEiIGQ9Ik0xOCwyMC4yNWExLDEsMCwwLDEtLjQzLS4xbC0xNS03LjA5YTEsMSwwLDAsMSwwLTEuODFsMTUtNy4wOWExLDEsMCwwLDEsLjg1LDBsMTUsNy4wOWExLDEsMCwwLDEsMCwxLjgxbC0xNSw3LjA5QTEsMSwwLDAsMSwxOCwyMC4yNVpNNS4zNCwxMi4xNmwxMi42Niw2LDEyLjY2LTZM''@;'; + put 'put ''MTgsNi4xOFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMTgsMjYuMTZhMSwxLDAsMCwxLS40My0uMUwyLjU3LDE5YTEsMSwwLDEsMSwuODUtMS44MUwxOCwyNC4wNmwxNC41Ny02Ljg5QTEsMSwwLDEsMSwzMy40''@;'; + put 'put ''MywxOWwtMTUsNy4wOUExLDEsMCwwLDEsMTgsMjYuMTZaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgZD0iTTE4LDMyLjA3YTEsMSwwLDAsMS0uNDMtLjFsLTE1LTcuMDlhMSwxLDAsMCwxLC44NS0xLjgxTDE4LDMwbDE0''@;'; + put 'put ''LjU3LTYuODlhMSwxLDAsMSwxLC44NSwxLjgxTDE4LjQzLDMyQTEsMSwwLDAsMSwxOCwzMi4wN1oiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0xOCwyMC4yNWExLDEsMCwwLDEtLjQzLS4xbC0xNS03LjA5YTEsMSwwLDAs''@;'; + put 'put ''MSwwLTEuODFsMTUtNy4wOWExLDEsMCwwLDEsLjg1LDBsMTUsNy4wOWExLDEsMCwwLDEsMCwxLjgxbC0xNSw3LjA5QTEsMSwwLDAsMSwxOCwyMC4yNVoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGQ9Ik0xOCwyNi4xNmExLDEs''@;'; + put 'put ''MCwwLDEtLjQzLS4xTDIuNTcsMTlhMSwxLDAsMSwxLC44NS0xLjgxTDE4LDI0LjA2bDE0LjU3LTYuODlBMSwxLDAsMSwxLDMzLjQzLDE5bC0xNSw3LjA5QTEsMSwwLDAsMSwxOCwyNi4xNloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRo''@;'; + put 'put ''LTMiIGQ9Ik0xOCwzMi4wN2ExLDEsMCwwLDEtLjQzLS4xbC0xNS03LjA5YTEsMSwwLDAsMSwuODUtMS44MUwxOCwzMGwxNC41Ny02Ljg5YTEsMSwwLDEsMSwuODUsMS44MUwxOC40MywzMkExLDEsMCwwLDEsMTgsMzIuMDdaIi8+XG4nKSxMLkNsclNoYXBlQmxvY2s9KDAsRS5jbHJJY29uU1ZH''@;'; + put 'put ''KSgnPHBhdGggZD0iTTMxLjQyLDkuMDlsLTEzLTZhMSwxLDAsMCwwLS44NCwwbC0xMyw2QTEsMSwwLDAsMCw0LDEwVjI3YTEsMSwwLDAsMCwuNTguOTFsMTMsNmExLDEsMCwwLDAsLjg0LDBsMTMtNkExLDEsMCwwLDAsMzIsMjdWMTBBMSwxLDAsMCwwLDMxLjQyLDkuMDlaTTE4LDUuMSwyOC42''@;'; + put 'put ''MSwxMCwxOCwxNC45LDcuMzksMTBaTTYsMTEuNTZsMTEsNS4wOHYxNC44TDYsMjYuMzZaTTE5LDMxLjQ0VjE2LjY0bDExLTUuMDh2MTQuOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLDE1LjUzVjI2LjM2''@;'; + put 'put ''TDE5LDMxLjQ0VjE2LjY0bDIuNTctMS4xOWEzLjY3LDMuNjcsMCwwLDEtMi4xMS0xLjIyTDE4LDE0LjksNy4zOSwxMCwxOCw1LjFsMy4wOCwxLjQyLDEtMS43NEwxOC40MiwzLjA5YTEsMSwwLDAsMC0uODQsMGwtMTMsNkExLDEsMCwwLDAsNCwxMFYyN2ExLDEsMCwwLDAsLjU4LjkxbDEzLDZh''@;'; + put 'put ''MSwxLDAsMCwwLC44NCwwbDEzLTZBMSwxLDAsMCwwLDMyLDI3VjE1LjUzWk0xNywzMS40NCw2LDI2LjM2VjExLjU2bDExLDUuMDhaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0y''@;'; + put 'put ''Ni44NywxLjI2bC01LjcyLDkuOTFhMS4yOCwxLjI4LDAsMCwwLDEuMSwxLjkySDMzLjdhMS4yOCwxLjI4LDAsMCwwLDEuMS0xLjkyTDI5LjA4LDEuMjZBMS4yOCwxLjI4LDAsMCwwLDI2Ljg3LDEuMjZaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgt''@;'; + put 'put ''Mi0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMCwxMy41VjI2LjM2TDE5LDMxLjQ0VjE2LjY0bDguMDgtMy43M2E3LjU3LDcuNTcsMCwwLDEtMi0xLjI3TDE4LDE0LjksNy4zOSwxMCwxOCw1LjFsNC42MSwyLjEzQTcuMTIsNy4xMiwwLDAsMSwyMi41''@;'; + put 'put ''LDZhOCw4LDAsMCwxLC4wNy0xTDE4LjQyLDMuMDlhMSwxLDAsMCwwLS44NCwwbC0xMyw2QTEsMSwwLDAsMCw0LDEwVjI3YTEsMSwwLDAsMCwuNTguOTFsMTMsNmExLDEsMCwwLDAsLjg0LDBsMTMtNkExLDEsMCwwLDAsMzIsMjdWMTMuMjJBNy4zNyw3LjM3LDAsMCwxLDMwLDEzLjVaTTE3LDMx''@;'; + put 'put ''LjQ0LDYsMjYuMzZWMTEuNTZsMTEsNS4wOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHIt''@;'; + put 'put ''aS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPlxuICAgICAgICAgICAgXG4gICAgICAgICAgICA8cGF0aCBkPSJNMzEuNDIsOS4wOWwtMTMtNmExLDEsMCwwLDAtLjg0LDBsLTEzLDZBMSwxLDAsMCwwLDQsMTBWMjdhMSwxLDAsMCwwLC41OC45MWwxMyw2YTEsMSwwLDAs''@;'; + put 'put ''MCwuODQsMGwxMy02QTEsMSwwLDAsMCwzMiwyN1YxMEExLDEsMCwwLDAsMzEuNDIsOS4wOVpNMTgsMTQuOSw3LjM5LDEwLDE4LDUuMSwyOC42MSwxMFpNMzAsMjYuMzYsMTksMzEuNDRWMTYuNjRsMTEtNS4wOFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4g''@;'; + put 'put ''ICAgICAgICAgICA8cGF0aCBkPSJNMzAsMTUuMzh2MTFMMTksMzEuNDRWMTYuNjRsMi43OS0xLjI5YTMuNjgsMy42OCwwLDAsMS0yLjI1LTEuMTZMMTgsMTQuOSw3LjM5LDEwLDE4LDUuMWwzLDEuMzksMS0xLjc1TDE4LjQyLDMuMDlhMSwxLDAsMCwwLS44NCwwbC0xMyw2QTEsMSwwLDAsMCw0''@;'; + put 'put ''LDEwVjI3YTEsMSwwLDAsMCwuNTguOTFsMTMsNmExLDEsMCwwLDAsLjg0LDBsMTMtNkExLDEsMCwwLDAsMzIsMjdWMTUuMzhaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEu''@;'; + put 'put ''MTIsMjEuMTMsMTFhMS4yNywxLjI3LDAsMCwwLDEuMSwxLjkxSDMzLjY4QTEuMjcsMS4yNywwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjEyQTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjEyWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCBj''@;'; + put 'put ''bHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMCwxMy41VjI2LjM2TDE5LDMxLjQ0VjE2LjY0bDguMDgtMy43M2E3LjU3LDcuNTcsMCwwLDEtMi0xLjI3TDE4LDE0LjksNy4zOSwxMCwxOCw1LjFsNC42MSwyLjEzQTcuMTIsNy4xMiwwLDAsMSwyMi41LDZhOCw4LDAsMCwx''@;'; + put 'put ''LC4wNy0xTDE4LjQyLDMuMDlhMSwxLDAsMCwwLS44NCwwbC0xMyw2QTEsMSwwLDAsMCw0LDEwVjI3YTEsMSwwLDAsMCwuNTguOTFsMTMsNmExLDEsMCwwLDAsLjg0LDBsMTMtNkExLDEsMCwwLDAsMzIsMjdWMTMuMjJBNy4zNyw3LjM3LDAsMCwxLDMwLDEzLjVaIiBjbGFzcz0iY2xyLWktc29s''@;'; + put 'put ''aWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIC8+JyksTC5DbHJTaGFw''@;'; + put 'put ''ZUJsb2Nrc0dyb3VwPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMy41MywxOC43NiwyNi42LDE1LjU3VjYuNDNBMSwxLDAsMCwwLDI2LDUuNTNsLTcuNS0zLjQ1YTEsMSwwLDAsMC0uODQsMGwtNy41LDMuNDVhMSwxLDAsMCwwLS41OC45MXY5LjE0TDIuNjgsMTguNzZhMSwxLDAsMCww''@;'; + put 'put ''LS41OC45MXY5Ljc4aDBhMSwxLDAsMCwwLC41OC45MWw3LjUsMy40NWExLDEsMCwwLDAsLjg0LDBsNy4wOC0zLjI2LDcuMDgsMy4yNmExLDEsMCwwLDAsLjg0LDBsNy41LTMuNDVhMSwxLDAsMCwwLC41OC0uOTFoMFYxOS42N0ExLDEsMCwwLDAsMzMuNTMsMTguNzZabS0yLjgxLjkxTDI1LjYx''@;'; + put 'put ''LDIyLDIwLjUsMTkuNjdsNS4xMS0yLjM1Wk0xOC4xLDQuMDhsNS4xMSwyLjM1TDE4LjEsOC43OCwxMyw2LjQzWk0xMC42LDE3LjMxbDUuMTEsMi4zNUwxMC42LDIyLDUuNDksMTkuNjdabTYuNSwxMS40OS02LjUsMy02LjUtM1YyMS4yM0wxMC4xOCwyNEExLDEsMCwwLDAsMTEsMjRsNi4wOC0y''@;'; + put 'put ''LjhaTTExLjYsMTUuNTdoMFY4bDYuMDgsMi44YTEsMSwwLDAsMCwuODQsMEwyNC42LDh2Ny41OGgwbC02LjUsM1pNMzIuMTEsMjguODFsLTYuNSwzLTYuNTEtM1YyMS4yMkwyNS4xOSwyNEExLDEsMCwwLDAsMjYsMjRsNi4wOC0yLjhaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRs''@;'; + put 'put ''aW5lLXBhdGgtMSIgLz5cbjxwYXRoIGQ9Ik0zMy41MywxOC43NiwyNi42LDE1LjU3aC0ydjBsLTYuNSwzLTYuNS0zVjhsNi4wOCwyLjhhMSwxLDAsMCwwLC44NCwwbC4yNC0uMTFhNC4xNyw0LjE3LDAsMCwxLC4yOS0uNjVsMS4zMy0yLjMxLTIuMjgsMUwxMyw2LjQzbDUuMS0yLjM1LDMuNDcs''@;'; + put 'put ''MS42LDEtMS43M0wxOC41LDIuMDhhMSwxLDAsMCwwLS44NCwwbC03LjUsMy40NWExLDEsMCwwLDAtLjU4LjkxdjkuMTRsLTYuOSwzLjE4YTEsMSwwLDAsMC0uNTguOTF2OS43OGExLDEsMCwwLDAsLjU4LjkxbDcuNSwzLjQ1YTEsMSwwLDAsMCwuODQsMGw3LjA4LTMuMjYsNy4wOCwzLjI2YTEs''@;'; + put 'put ''MSwwLDAsMCwuODQsMGw3LjUtMy40NWExLDEsMCwwLDAsLjU4LS45MVYxOS42N0ExLDEsMCwwLDAsMzMuNTMsMTguNzZaTTEwLjYsMTcuMzFsNS4xMSwyLjM1TDEwLjYsMjIsNS40OSwxOS42N1ptMCwxNC40OS02LjUtM1YyMS4yM0wxMC4xOCwyNEExLDEsMCwwLDAsMTEsMjRsNi4wOC0yLjgs''@;'; + put 'put ''MCw3LjZabTE1LTE0LjQ4LDUuMTEsMi4zNUwyNS42MSwyMiwyMC41LDE5LjY3Wm0wLDE0LjQ5LTYuNTEtM1YyMS4yMkwyNS4xOSwyNEExLDEsMCwwLDAsMjYsMjRsNi4wOC0yLjgsMCw3LjYxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFs''@;'; + put 'put ''ZXJ0ZWQiIC8+XG48cGF0aCBkPSJNMjYuODUsMS4xNGwtNS43Miw5LjkxQTEuMjcsMS4yNywwLDAsMCwyMi4yMywxM0gzMy42OGExLjI3LDEuMjcsMCwwLDAsMS4xLTEuOTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVy''@;'; + put 'put ''dGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0IiAvPlxuPHBhdGggZD0iTTMzLjUzLDE4Ljc2LDI2LjYsMTUuNTdWMTIuN2E3LjU4LDcuNTgsMCwwLDEtMi0xLjUxdjQuMzlsLTYuNSwzLTYuNS0zVjhsNi4wOCwyLjhhMSwxLDAsMCwwLC44NCwwTDIzLDguNzJh''@;'; + put 'put ''Ny4wNSw3LjA1LDAsMCwxLS40Ny0ybC00LjQ3LDJMMTMsNi40M2w1LjEtMi4zNSw0LjQ0LDJzMC0uMDYsMC0uMDlhNy41NSw3LjU1LDAsMCwxLC4yNy0ybC00LjMtMmExLDEsMCwwLDAtLjg0LDBsLTcuNSwzLjQ1YTEsMSwwLDAsMC0uNTguOTF2OS4xNGwtNi45LDMuMThhMSwxLDAsMCwwLS41''@;'; + put 'put ''OC45MXY5Ljc4YTEsMSwwLDAsMCwuNTguOTFsNy41LDMuNDVhMSwxLDAsMCwwLC44NCwwbDcuMDgtMy4yNiw3LjA4LDMuMjZhMSwxLDAsMCwwLC44NCwwbDcuNS0zLjQ1YTEsMSwwLDAsMCwuNTgtLjkxVjE5LjY3QTEsMSwwLDAsMCwzMy41MywxOC43NlpNMTAuNiwxNy4zMWw1LjExLDIuMzVM''@;'; + put 'put ''MTAuNiwyMiw1LjQ5LDE5LjY3Wm0wLDE0LjQ5LTYuNS0zVjIxLjIzTDEwLjE4LDI0QTEsMSwwLDAsMCwxMSwyNGw2LjA4LTIuOCwwLDcuNlptMTUtMTQuNDgsNS4xMSwyLjM1TDI1LjYxLDIyLDIwLjUsMTkuNjdabTAsMTQuNDktNi41MS0zVjIxLjIyTDI1LjE5LDI0QTEsMSwwLDAsMCwyNiwy''@;'; + put 'put ''NGw2LjA4LTIuOCwwLDcuNjFaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIC8+XG48Y2lyY2xlIGN4PSIzMC4wMyIgY3k9IjYuMDMiIHI9IjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRo''@;'; + put 'put ''LTItLWJhZGdlZCBjbHItaS1iYWRnZSIgLz5cbjxwYXRoIGQ9Ik0zMy41MywxOC43NiwyNi42LDE1LjU3VjYuNDNBMSwxLDAsMCwwLDI2LDUuNTNsLTcuNS0zLjQ1YTEsMSwwLDAsMC0uODQsMGwtNy41LDMuNDVhMSwxLDAsMCwwLS41OC45MXY5LjE0TDIuNjgsMTguNzZhMSwxLDAsMCwwLS41''@;'; + put 'put ''OC45MXY5Ljc4aDBhMSwxLDAsMCwwLC41OC45MWw3LjUsMy40NWExLDEsMCwwLDAsLjg0LDBsNy4wOC0zLjI2LDcuMDgsMy4yNmExLDEsMCwwLDAsLjg0LDBsNy41LTMuNDVhMSwxLDAsMCwwLC41OC0uOTFoMFYxOS42N0ExLDEsMCwwLDAsMzMuNTMsMTguNzZaTTI1LjYxLDIyLDIwLjUsMTku''@;'; + put 'put ''NjdsNS4xMS0yLjM1LDUuMTEsMi4zNVptLTEtNi40NC02LjQ0LDNWMTAuODdhMSwxLDAsMCwwLC4zNS0uMDhMMjQuNiw4djcuNThaTTE4LjEsNC4wOGw1LjExLDIuMzVMMTguMSw4Ljc4LDEzLDYuNDNaTTEwLjYsMTcuMzFsNS4xMSwyLjM1TDEwLjYsMjIsNS40OSwxOS42N1ptNi41LDExLjQ5''@;'; + put 'put ''LTYuNSwzaDBWMjQuMTFoMEExLDEsMCwwLDAsMTEsMjRsNi4wOC0yLjhabTE1LDAtNi40NiwzVjI0LjExQTEsMSwwLDAsMCwyNiwyNGw2LjA4LTIuOFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG48cGF0aCBkPSJNMzMuNTMsMTguNzYsMjYuNiwxNS41N3Yw''@;'; + put 'put ''aC0ydjBsLTYuNDMsM1YxMC44N2ExLjA1LDEuMDUsMCwwLDAsLjM1LS4wOGwuMTQtLjA2QTMuMjMsMy4yMywwLDAsMSwxOSwxMGwxLjI4LTIuMjItMi4xNCwxTDEzLDYuNDNsNS4xLTIuMzUsMy4zOSwxLjU2LDEtMS43My00LTEuODNhMSwxLDAsMCwwLS44NCwwbC03LjUsMy40NWExLDEsMCww''@;'; + put 'put ''LDAtLjU4LjkxdjkuMTRsLTYuOSwzLjE4YTEsMSwwLDAsMC0uNTguOTF2OS43OGExLDEsMCwwLDAsLjU4LjkxbDcuNSwzLjQ1YTEsMSwwLDAsMCwuODQsMGw3LjA4LTMuMjYsNy4wOCwzLjI2YTEsMSwwLDAsMCwuODQsMGw3LjUtMy40NWExLDEsMCwwLDAsLjU4LS45MVYxOS42N0ExLDEsMCww''@;'; + put 'put ''LDAsMzMuNTMsMTguNzZabS0yOCwuOTEsNS4xMS0yLjM2LDUuMTEsMi4zNUwxMC42LDIyWk0xMC42LDMxLjhWMjQuMTFBMS4wOCwxLjA4LDAsMCwwLDExLDI0bDYuMDgtMi44LDAsNy42Wm05LjktMTIuMTMsNS4xMS0yLjM1LDUuMTEsMi4zNUwyNS42MSwyMlpNMjUuNjQsMzEuOFYyNC4xMUEu''@;'; + put 'put ''ODkuODksMCwwLDAsMjYsMjRsNi4wOC0yLjgsMCw3LjZaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiAvPlxuPHBhdGggZD0iTTI2Ljg5LDEuMTRsLTUuNzIsOS45MUExLjI3LDEuMjcsMCwwLDAsMjIuMjcsMTNIMzMuNzJhMS4yNywx''@;'; + put 'put ''LjI3LDAsMCwwLDEuMS0xLjkxTDI5LjEsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODksMS4xNFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIC8+XG48cGF0aCBkPSJNMzMuNTMsMTguNzYsMjYuNiwxNS41N1Yx''@;'; + put 'put ''Mi42OWE3LjY2LDcuNjYsMCwwLDEtMi0xLjQ3djQuMzRsLTYuNDMsM1YxMC44N2ExLjA1LDEuMDUsMCwwLDAsLjM1LS4wOEwyMyw4LjczYTcuNjUsNy42NSwwLDAsMS0uNDgtMmwtNC40MiwyTDEzLDYuNDNsNS4xLTIuMzUsNC4zOCwyVjZhNy41NSw3LjU1LDAsMCwxLC4yNy0yTDE4LjUsMi4w''@;'; + put 'put ''OGExLDEsMCwwLDAtLjg0LDBsLTcuNSwzLjQ1YTEsMSwwLDAsMC0uNTguOTF2OS4xNGwtNi45LDMuMThhMSwxLDAsMCwwLS41OC45MXY5Ljc4YTEsMSwwLDAsMCwuNTguOTFsNy41LDMuNDVhMSwxLDAsMCwwLC44NCwwbDcuMDgtMy4yNiw3LjA4LDMuMjZhMSwxLDAsMCwwLC44NCwwbDcuNS0z''@;'; + put 'put ''LjQ1YTEsMSwwLDAsMCwuNTgtLjkxVjE5LjY3QTEsMSwwLDAsMCwzMy41MywxOC43NlptLTI4LC45MSw1LjExLTIuMzYsNS4xMSwyLjM1TDEwLjYsMjJaTTEwLjYsMzEuOFYyNC4xMUExLjA4LDEuMDgsMCwwLDAsMTEsMjRsNi4wOC0yLjgsMCw3LjZabTkuOS0xMi4xMyw1LjExLTIuMzUsNS4x''@;'; + put 'put ''MSwyLjM1TDI1LjYxLDIyWk0yNS42NCwzMS44VjI0LjExQS44OS44OSwwLDAsMCwyNiwyNGw2LjA4LTIuOCwwLDcuNloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiAvPlxuPGNpcmNsZSBjeD0iMjkuOTgiIGN5PSI2IiByPSI1IiBjbGFz''@;'; + put 'put ''cz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIgLz4nKSxMLkNsclNoYXBlQnVuZGxlPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzIuNDMsOC4z''@;'; + put 'put ''NWwtMTMtNi4yMWExLDEsMCwwLDAtLjg3LDBsLTE1LDcuMjRhMSwxLDAsMCwwLS41Ny45VjI2LjgzYTEsMSwwLDAsMCwuNi45MmwxMyw2LjE5YTEsMSwwLDAsMCwuODcsMGwxNS03LjI0YTEsMSwwLDAsMCwuNTctLjlWOS4yNUExLDEsMCwwLDAsMzIuNDMsOC4zNVpNMTksNC4xNSwyOS45Myw5''@;'; + put 'put ''LjM3bC01LjA1LDIuNDRMMTQuMjEsNi40NlpNMTcsMTUuNjQsNiwxMC40MWw1LjktMi44NUwyMi42LDEyLjkxWk01LDEyLjEzLDE2LDE3LjRWMzEuNDZMNSwyNi4yWk0xOCwzMS40NVYxNy4zNmwxMy02LjI5djE0LjFaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQg''@;'; + put 'put ''Y2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzIuNDMsOC4zNWwtMTMtNi4yMWExLDEsMCwwLDAtLjg3LDBsLTE1LDcuMjRhMSwxLDAsMCwwLS41Ny45VjI2LjgzYTEsMSwwLDAsMCwuNi45MmwxMyw2LjE5YTEsMSwwLDAsMCwuODcsMGwxNS03LjI0YTEsMSwwLDAsMCwuNTctLjlWOS4yNUExLDEs''@;'; + put 'put ''MCwwLDAsMzIuNDMsOC4zNVpNMTksNC4xNSwyOS45Myw5LjM3bC01LjA1LDIuNDRMMTQuMjEsNi40NlpNMTcsMTUuNjQsNiwxMC40MWw1LjktMi44NUwyMi42LDEyLjkxWm0xLDE1LjhWMTcuMzZsMTMtNi4yOXYxNC4xWiIvPlxuJyksTC5DbHJTaGFwZVdpZmk9KDAsRS5jbHJJY29uU1ZHKSgn''@;'; + put 'put ''PHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMy41NSw4LjJhMjguMSwyOC4xLDAsMCwwLTMxLjExLjA4QTEsMSwwLDEsMCwzLjU2LDkuOTRhMjYuMTEsMjYuMTEsMCwwLDEsMjguODktLjA3LDEsMSwwLDAsMCwxLjEtMS42N1oiLz5cbiAgICAg''@;'; + put 'put ''ICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMTguMDUsMTAuNzJBMjAuNzQsMjAuNzQsMCwwLDAsNi4yMywxNC40LDEsMSwwLDAsMCw3LjM2LDE2LDE4Ljg1LDE4Ljg1LDAsMCwxLDI4LjY0LDE2YTEsMSwwLDAsMCwxLjEyLTEuNjVB''@;'; + put 'put ''MjAuNzUsMjAuNzUsMCwwLDAsMTguMDUsMTAuNzJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgZD0iTTE4LjA1LDE3LjlhMTMuNTEsMTMuNTEsMCwwLDAtOCwyLjY0LDEsMSwwLDAsMCwxLjE4LDEuNjEsMTEuNTYsMTEu''@;'; + put 'put ''NTYsMCwwLDEsMTMuNjItLjA4QTEsMSwwLDEsMCwyNiwyMC40NiwxMy41MiwxMy41MiwwLDAsMCwxOC4wNSwxNy45WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIGQ9Ik0xOCwyNC40MmE0LDQsMCwxLDAsNCw0QTQsNCww''@;'; + put 'put ''LDAsMCwxOCwyNC40MlptMCw2YTIsMiwwLDEsMSwyLTJBMiwyLDAsMCwxLDE4LDMwLjQyWiIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBjeD0iMTgiIGN5PSIyOS41NCIgcj0iMyIvPlxuICAgICAgICAgICAgPHBhdGggY2xh''@;'; + put 'put ''c3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgZD0iTTMyLjc2LDkuMzhhMjcuODcsMjcuODcsMCwwLDAtMjkuNTcsMCwxLjUxLDEuNTEsMCwwLDAtLjQ4LDIuMTFsLjExLjE3YTEuNDksMS40OSwwLDAsMCwyLC40NiwyNC42OCwyNC42OCwwLDAsMSwyNi4yNiwwLDEuNDksMS40''@;'; + put 'put ''OSwwLDAsMCwyLS40NmwuMTEtLjE3QTEuNTEsMS41MSwwLDAsMCwzMi43Niw5LjM4WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIgZD0iTTI4LjgyLDE1LjQ0YTIwLjU5LDIwLjU5LDAsMCwwLTIxLjcsMCwxLjUxLDEuNTEsMCww''@;'; + put 'put ''LDAtLjQ2LDIuMWwuMTEuMTdhMS40OSwxLjQ5LDAsMCwwLDIsLjQ2LDE3LjQsMTcuNCwwLDAsMSwxOC4zNiwwLDEuNDksMS40OSwwLDAsMCwyLS40NmwuMTEtLjE3QTEuNTEsMS41MSwwLDAsMCwyOC44MiwxNS40NFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBj''@;'; + put 'put ''bHItaS1zb2xpZC1wYXRoLTQiIGQ9Ik0yNC44OCwyMS40OWExMy40MSwxMy40MSwwLDAsMC0xMy44MiwwLDEuNSwxLjUsMCwwLDAtLjQ2LDIuMDlsLjEuMTZhMS41MiwxLjUyLDAsMCwwLDIuMDYuNDQsMTAuMjcsMTAuMjcsMCwwLDEsMTAuNDIsMCwxLjUyLDEuNTIsMCwwLDAsMi4wNi0uNDVs''@;'; + put 'put ''LjEtLjE2QTEuNDksMS40OSwwLDAsMCwyNC44OCwyMS40OVoiLz5cbicpLEwuQ2xyU2hhcGVSYWNrU2VydmVyPSgwLEUuY2xySWNvblNWRykoJzxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiB4PSIxMCIgeT0iMTciIHdp''@;'; + put 'put ''ZHRoPSIxNCIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIgeD0iNiIgeT0iMjUiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJj''@;'; + put 'put ''bHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIiB4PSIxMCIgeT0iMjUiIHdpZHRoPSIxNCIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxl''@;'; + put 'put ''cnRlZCIgZD0iTTE4LjY0LDExQTMuNjUsMy42NSwwLDAsMSwxOSw5Ljg5TDE5LjU2LDlIMTB2MloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC01LS1hbGVydGVkIiBkPSJNMzMuNjgsMTUuNEgzMlYyMUg0VjE1''@;'; + put 'put ''SDIwLjU4QTMuNjcsMy42NywwLDAsMSwxOSwxMy41NmEzLjYzLDMuNjMsMCwwLDEtLjI2LS41Nkg0VjdIMjAuNzFsMS4xNS0ySDRBMiwyLDAsMCwwLDIsN1YyOWEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMTUuMzhaTTQsMjlWMjNIMzJ2NloiLz5cbiAgICAgICAgICAgIDxwYXRo''@;'; + put 'put ''IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC02LS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRB''@;'; + put 'put ''MS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIHg9IjYiIHk9IjkiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgIDxyZWN0IGNs''@;'; + put 'put ''YXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgeD0iNiIgeT0iMTciIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJh''@;'; + put 'put ''ZGdlZCIgeD0iMTAiIHk9IjE3IiB3aWR0aD0iMTQiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIiB4PSI2IiB5PSIyNSIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAg''@;'; + put 'put ''ICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYmFkZ2VkIiB4PSIxMCIgeT0iMjUiIHdpZHRoPSIxNCIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91''@;'; + put 'put ''dGxpbmUtcGF0aC02LS1iYWRnZWQiIGQ9Ik0xMCwxMUgyNHYtLjUxQTcuNDgsNy40OCwwLDAsMSwyMy4xMyw5SDEwWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNy0tYmFkZ2VkIiBkPSJNMzAsMTMuNWE3LjQ3''@;'; + put 'put ''LDcuNDcsMCwwLDEtMi42OC0uNUg0VjdIMjIuNTdhNy41Miw3LjUyLDAsMCwxLS4wNy0xLDcuNTIsNy41MiwwLDAsMSwuMDctMUg0QTIsMiwwLDAsMCwyLDdWMjlhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjEyLjM0QTcuNDYsNy40NiwwLDAsMSwzMCwxMy41Wk00LDE1SDMydjZI''@;'; + put 'put ''NFpNNCwyOVYyM0gzMnY2WiIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC04LS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHIt''@;'; + put 'put ''aS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiB4PSI2IiB5PSI5IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgeD0iMTAiIHk9IjkiIHdpZHRoPSIxNCIgaGVpZ2h0PSIyIi8+''@;'; + put 'put ''XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgeD0iNiIgeT0iMTciIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiB4PSIx''@;'; + put 'put ''MCIgeT0iMTciIHdpZHRoPSIxNCIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgZD0iTTMyLDVINEEyLDIsMCwwLDAsMiw3VjI5YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlY3QTIsMiwwLDAs''@;'; + put 'put ''MCwzMiw1Wk00LDdIMzJ2Nkg0Wm0wLDhIMzJ2Nkg0Wk00LDI5VjIzSDMydjZaIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIgeD0iNiIgeT0iMjUiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgIDxyZWN0''@;'; + put 'put ''IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC03IiB4PSIxMCIgeT0iMjUiIHdpZHRoPSIxNCIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiBkPSJNMiwz''@;'; + put 'put ''MGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMjRIMlptOC0zSDI0djJIMTBaTTYsMjdIOHYySDZaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIiBkPSJNMTksOS44OSwxOS41Niw5SDEw''@;'; + put 'put ''VjdIMjAuNzFsMS43My0zSDRBMiwyLDAsMCwwLDIsNnY2SDE4LjU3QTMuNjcsMy42NywwLDAsMSwxOSw5Ljg5Wk04LDlINlY3SDhaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0zLS1hbGVydGVkIiBkPSJNMzMuNjgs''@;'; + put 'put ''MTUuNEgyMi4yM0EzLjY5LDMuNjksMCwwLDEsMTkuMzUsMTRIMnY4SDM0VjE1LjM4Wk04LDE5SDZWMTdIOFptMTYsMEgxMFYxN0gyNFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTQtLWFsZXJ0ZWQgY2xyLWktYWxl''@;'; + put 'put ''cnQiIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0t''@;'; + put 'put ''YmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMiwxNHY4SDM0VjE0Wm02LDVINlYxN0g4Wm0xNiwwSDEwVjE3SDI0WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQiIGQ9Ik0yLDMw''@;'; + put 'put ''YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYyNEgyWm04LTNIMjR2MkgxMFpNNiwyN0g4djJINloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIiBkPSJNMjMuMTMsOUgxMFY3SDIyLjU3YTcu''@;'; + put 'put ''NTIsNy41MiwwLDAsMS0uMDctMSw3LjQ5LDcuNDksMCwwLDEsLjI4LTJINEEyLDIsMCwwLDAsMiw2djZIMjUuNTFBNy41Miw3LjUyLDAsMCwxLDIzLjEzLDlaTTgsOUg2VjdIOFoiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQt''@;'; + put 'put ''cGF0aC00LS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0yLDIySDM0VjE0SDJabTgtNUgyNHYySDEwWk02LDE3SDh2Mkg2WiIvPlxuICAgICAgICAg''@;'; + put 'put ''ICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgZD0iTTMyLDRINEEyLDIsMCwwLDAsMiw2djZIMzRWNkEyLDIsMCwwLDAsMzIsNFpNOCw5SDZWN0g4Wk0yNCw5SDEwVjdIMjRaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xy''@;'; + put 'put ''LWktc29saWQtcGF0aC0zIiBkPSJNMiwzMGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMjRIMlptOC0zSDI0djJIMTBaTTYsMjdIOHYySDZaIi8+XG4nKSxMLkNsclNoYXBlSGFyZERpc2s9KDAsRS5jbHJJY29uU1ZHKSgnPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0''@;'; + put 'put ''ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIHg9IjYiIHk9IjIwIiB3aWR0aD0iMjQiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIHg9IjI2IiB5PSIyNCIg''@;'; + put 'put ''d2lkdGg9IjQiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiIGQ9Ik0zNCwyMS4wOGwtMS40LTUuNjhIMzAuNTFsMS40OSw2VjI5SDRWMjEuNDRMNy4wNiw5aDEyLjVsMS4x''@;'; + put 'put ''NS0ySDcuMDZBMiwyLDAsMCwwLDUuMTMsOC40N0wyLDIxLjA4YTEsMSwwLDAsMCwwLC4yNFYyOWEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMjEuMzFBMSwxLDAsMCwwLDM0LDIxLjA4WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQg''@;'; + put 'put ''Y2xyLWktb3V0bGluZS1wYXRoLTQtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiLz5c''@;'; + put 'put ''biAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgeD0iNiIgeT0iMjAiIHdpZHRoPSIyNCIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNs''@;'; + put 'put ''ci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiIHg9IjI2IiB5PSIyNCIgd2lkdGg9IjQiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIiBkPSJNMzQsMjEuMDgsMzIsMTMuMjFh''@;'; + put 'put ''Ny40OSw3LjQ5LDAsMCwxLTIsLjI5bDIsNy45NFYyOUg0VjIxLjQ0TDcuMDYsOUgyMy4xM2E3LjQ1LDcuNDUsMCwwLDEtLjU1LTJINy4wNkEyLDIsMCwwLDAsNS4xMyw4LjQ3TDIsMjEuMDhhMSwxLDAsMCwwLDAsLjI0VjI5YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYyMS4zMUEx''@;'; + put 'put ''LDEsMCwwLDAsMzQsMjEuMDhaIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNs''@;'; + put 'put ''ci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zNCwyMS4wOCwzMC44Niw4LjQzQTIsMiwwLDAsMCwyOC45NCw3SDcuMDZBMiwyLDAsMCwwLDUuMTMsOC40N0wyLDIxLjA4YTEsMSwwLDAsMCwwLC4yNFYyOWEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMjEuMzFB''@;'; + put 'put ''MSwxLDAsMCwwLDM0LDIxLjA4Wk00LDI5VjIxLjQ0TDcuMDYsOUgyOC45M0wzMiwyMS40NFYyOVoiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiB4PSI2IiB5PSIyMCIgd2lkdGg9IjI0IiBoZWlnaHQ9IjIiLz5cbiAgICAg''@;'; + put 'put ''ICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiB4PSIyNiIgeT0iMjQiIHdpZHRoPSI0IiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0''@;'; + put 'put ''ZWQiIGQ9Ik0yLDIydjdhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjIyWm0yOCw1SDI2VjI1aDRaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIiBkPSJNMzIuNTgsMTUuNEgyMi4yM0Ez''@;'; + put 'put ''LjY4LDMuNjgsMCwwLDEsMTksOS44OUwyMC43MSw3SDcuMDZBMiwyLDAsMCwwLDUuMTMsOC40N0wyLjI5LDIwSDMzLjcxWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMy0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0i''@;'; + put 'put ''TTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQg''@;'; + put 'put ''Y2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0yLDIydjdhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjIyWm0yOCw1SDI2VjI1aDRaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIg''@;'; + put 'put ''ZD0iTTMyLDEzLjIxQTcuNDcsNy40NywwLDAsMSwyMi41Nyw3SDcuMDZBMiwyLDAsMCwwLDUuMTMsOC40N0wyLjI5LDIwSDMzLjcxWiIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCBjbHItaS1iYWRn''@;'; + put 'put ''ZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTMwLjg2LDguNDNBMiwyLDAsMCwwLDI4Ljk0LDdINy4wNkEyLDIsMCwwLDAsNS4xMyw4LjQ3TDIuMjksMjBIMzMuNzFaIi8+XG4gICAg''@;'; + put 'put ''ICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiBkPSJNMiwyMnY3YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYyMlptMjgsNUgyNlYyNWg0WiIvPlxuJyksTC5DbHJTaGFwZUJhY2t1cFJlc3RvcmU9KDAsRS5jbHJJY29uU1ZHKSgnPHJl''@;'; + put 'put ''Y3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIHg9IjYiIHk9IjIyIiB3aWR0aD0iMjQiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1w''@;'; + put 'put ''YXRoLTItLWFsZXJ0ZWQiIHg9IjI2IiB5PSIyNiIgd2lkdGg9IjQiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiIGQ9Ik0xMyw5LjkyLDE3LDZWMTlhMSwxLDAsMSwwLDIs''@;'; + put 'put ''MFY2bDEuNDcsMS40NiwxLTEuNzlMMTgsMi4xNiwxMS42MSw4LjVBMSwxLDAsMCwwLDEzLDkuOTJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRlZCIgZD0iTTMxLjU4LDE1LjRIMjkuNDZjMSwy''@;'; + put 'put ''Ljg1LDIuMzEsNi4zNywyLjU0LDcuMDhWMzBINFYyMi40OEM0LjI4LDIxLjY1LDcuMDUsMTQsNy4wNSwxNEgxNVYxMkg3LjA3YTEuOTIsMS45MiwwLDAsMC0xLjksMS4zMkMyLDIyLDIsMjIuMSwyLDIyLjMzVjMwYTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYyMi4zM0MzNCwyMi4x''@;'; + put 'put ''MiwzNCwyMiwzMS41OCwxNS40WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gz''@;'; + put 'put ''My42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgeD0iNiIgeT0iMjIiIHdp''@;'; + put 'put ''ZHRoPSIyNCIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiIHg9IjI2IiB5PSIyNiIgd2lkdGg9IjQiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNs''@;'; + put 'put ''ci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIiBkPSJNMTMsOS45MiwxNyw2VjE5YTEsMSwwLDEsMCwyLDBWNmw0LDMuOTVhMSwxLDAsMCwwLC43MS4yOWwuMTEsMGE3LjQ2LDcuNDYsMCwwLDEtMS4yNS0zLjUyTDE4LDIuMTYsMTEuNjEsOC41QTEsMSww''@;'; + put 'put ''LDAsMCwxMyw5LjkyWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIiBkPSJNMzAuODcsMTMuNDVhNy41NSw3LjU1LDAsMCwxLS44Ny4wNUE3LjQ2LDcuNDYsMCwwLDEsMjUuNTEsMTJIMjF2Mmg3''@;'; + put 'put ''Ljk1QzMwLDE2Ljk0LDMxLjcyLDIxLjY1LDMyLDIyLjQ4VjMwSDRWMjIuNDhDNC4yOCwyMS42NSw3LjA1LDE0LDcuMDUsMTRIMTVWMTJINy4wN2ExLjkyLDEuOTIsMCwwLDAtMS45LDEuMzJDMiwyMiwyLDIyLjEsMiwyMi4zM1YzMGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMjIu''@;'; + put 'put ''MzNDMzQsMjIuMSwzNCwyMiwzMC44NywxMy40NVoiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+XG4gICAgICAgICAgICA8cmVj''@;'; + put 'put ''dCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgeD0iNiIgeT0iMjIiIHdpZHRoPSIyNCIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgeD0iMjYiIHk9IjI2IiB3aWR0aD0i''@;'; + put 'put ''NCIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgZD0iTTEzLDkuOTIsMTcsNlYxOWExLDEsMCwxLDAsMiwwVjZsNCwzLjk1QTEsMSwwLDEsMCwyNC4zOCw4LjVMMTgsMi4xNiwxMS42MSw4LjVBMSwxLDAs''@;'; + put 'put ''MCwwLDEzLDkuOTJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgZD0iTTMwLjg0LDEzLjM3QTEuOTQsMS45NCwwLDAsMCwyOC45MywxMkgyMXYyaDcuOTVDMzAsMTYuOTQsMzEuNzIsMjEuNjUsMzIsMjIuNDhWMzBINFYy''@;'; + put 'put ''Mi40OEM0LjI4LDIxLjY1LDcuMDUsMTQsNy4wNSwxNEgxNVYxMkg3LjA3YTEuOTIsMS45MiwwLDAsMC0xLjksMS4zMkMyLDIyLDIsMjIuMSwyLDIyLjMzVjMwYTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYyMi4zM0MzNCwyMi4xLDM0LDIyLDMwLjg0LDEzLjM3WiIvPlxuICAgICAg''@;'; + put 'put ''ICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIgZD0iTTIsMjR2NmEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMjRabTI4LDVIMjZWMjdoNFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1z''@;'; + put 'put ''b2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQiIGQ9Ik0xMyw5LjkyLDE3LDZWMThhMSwxLDAsMSwwLDIsMFY2bDEuNDcsMS40NiwxLTEuNzlMMTgsMi4xNiwxMS42MSw4LjVBMSwxLDAsMCwwLDEzLDkuOTJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xy''@;'; + put 'put ''LWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0zLS1hbGVydGVkIiBkPSJNMzEuNTgsMTUuNEgyMi4yM0EzLjYyLDMuNjIsMCwwLDEsMjEsMTUuMTZWMThhMywzLDAsMSwxLTYsMFYxMkg3LjA3YTEuOTIsMS45MiwwLDAsMC0xLjksMS4zMkMyLjg2LDE5LjY4LDIuMjQsMjEuNDMs''@;'; + put 'put ''Mi4wNywyMkgzMy45M0MzMy43OSwyMS40OSwzMy4yOCwyMC4wNywzMS41OCwxNS40WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtNC0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFB''@;'; + put 'put ''MS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1i''@;'; + put 'put ''YWRnZWQiIGQ9Ik0yLDI0djZhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjI0Wm0yOCw1SDI2VjI3aDRaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCIgZD0iTTEzLDkuOTIsMTcsNlYxOGEx''@;'; + put 'put ''LDEsMCwxLDAsMiwwVjZsNCwzLjk1YTEsMSwwLDAsMCwuNzEuMjlsLjExLDBhNy40Niw3LjQ2LDAsMCwxLTEuMjUtMy41MkwxOCwyLjE2LDExLjYxLDguNUExLDEsMCwwLDAsMTMsOS45MloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNv''@;'; + put 'put ''bGlkLXBhdGgtMy0tYmFkZ2VkIiBkPSJNMzAuODcsMTMuNDVhNy41NSw3LjU1LDAsMCwxLS44Ny4wNUE3LjQ2LDcuNDYsMCwwLDEsMjUuNTEsMTJIMjF2NmEzLDMsMCwxLDEtNiwwVjEySDcuMDdhMS45MiwxLjkyLDAsMCwwLTEuOSwxLjMyQzIuODYsMTkuNjgsMi4yNCwyMS40MywyLjA3LDIy''@;'; + put 'put ''SDMzLjkzQzMzLjc3LDIxLjQzLDMzLjE1LDE5LjcsMzAuODcsMTMuNDVaIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtNC0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+XG4gICAgICAg''@;'; + put 'put ''ICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMiwyNHY2YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYyNFptMjgsNUgyNlYyN2g0WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBh''@;'; + put 'put ''dGgtMiIgZD0iTTMwLjg0LDEzLjM3QTEuOTQsMS45NCwwLDAsMCwyOC45MywxMkgyMXY2YTMsMywwLDEsMS02LDBWMTJINy4wN2ExLjkyLDEuOTIsMCwwLDAtMS45LDEuMzJDMi44NiwxOS42OCwyLjI0LDIxLjQzLDIuMDcsMjJIMzMuOTNDMzMuNzcsMjEuNDMsMzMuMTQsMTkuNjksMzAuODQs''@;'; + put 'put ''MTMuMzdaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiBkPSJNMTMsOS45MiwxNyw2VjE4YTEsMSwwLDEsMCwyLDBWNmw0LDMuOTVBMSwxLDAsMSwwLDI0LjM4LDguNUwxOCwyLjE2LDExLjYxLDguNUExLDEsMCwwLDAsMTMsOS45''@;'; + put 'put ''MloiLz5cbicpLEwuQ2xyU2hhcGVCYWNrdXA9KDAsRS5jbHJJY29uU1ZHKSgnPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIHg9IjYiIHk9IjIyIiB3aWR0aD0iMjQiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHJl''@;'; + put 'put ''Y3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIHg9IjI2IiB5PSIyNiIgd2lkdGg9IjQiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1w''@;'; + put 'put ''YXRoLTMtLWFsZXJ0ZWQiIGQ9Ik0xOCwxOS44NGw0LjQ3LTQuNDRoLS4yM2EzLjY3LDMuNjcsMCwwLDEtMi0uNjFMMTksMTZWNGExLDEsMCwxLDAtMiwwVjE2bC00LTMuOTVhMSwxLDAsMCwwLTEuNDEsMS40MloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1h''@;'; + put 'put ''bGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIiBkPSJNMzEuNTgsMTUuNEgyOS40NmMxLDIuODUsMi4zMSw2LjM3LDIuNTQsNy4wOFYzMEg0VjIyLjQ4QzQuMjgsMjEuNjUsNy4wNSwxNCw3LjA1LDE0SDkuNThhMywzLDAsMCwxLS4xNC0ySDcuMDdhMS45MiwxLjkyLDAsMCww''@;'; + put 'put ''LTEuOSwxLjMyQzIsMjIsMiwyMi4xLDIsMjIuMzNWMzBhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjIyLjMzQzM0LDIyLjEyLDM0LDIyLDMxLjU4LDE1LjRaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBh''@;'; + put 'put ''dGgtNS0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIvPlxuICAgICAgICAgICAgPHJl''@;'; + put 'put ''Y3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiB4PSI2IiB5PSIyMiIgd2lkdGg9IjI0IiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRo''@;'; + put 'put ''LTItLWJhZGdlZCIgeD0iMjYiIHk9IjI2IiB3aWR0aD0iNCIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiIGQ9Ik0xOCwxOS44NGw2LjM4LTYuMzVBMSwxLDAsMSwwLDIzLDEy''@;'; + put 'put ''LjA4TDE5LDE2VjRhMSwxLDAsMSwwLTIsMFYxNmwtNC0zLjk1YTEsMSwwLDAsMC0xLjQxLDEuNDJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQiIGQ9Ik0zMC44NywxMy40NWE3LjU1LDcuNTUs''@;'; + put 'put ''MCwwLDEtLjg3LjA1LDcuNDYsNy40NiwwLDAsMS0zLjM1LS44LDMsMywwLDAsMS0uMjQsMS4zaDIuNTRDMzAsMTYuOTQsMzEuNzIsMjEuNjUsMzIsMjIuNDhWMzBINFYyMi40OEM0LjI4LDIxLjY1LDcuMDUsMTQsNy4wNSwxNEg5LjU4YTMsMywwLDAsMS0uMTQtMkg3LjA3YTEuOTIsMS45Miww''@;'; + put 'put ''LDAsMC0xLjksMS4zMkMyLDIyLDIsMjIuMSwyLDIyLjMzVjMwYTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYyMi4zM0MzNCwyMi4xLDM0LDIyLDMwLjg3LDEzLjQ1WiIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxp''@;'; + put 'put ''bmUtcGF0aC01LS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiB4PSI2IiB5PSIyMiIgd2lkdGg9IjI0IiBoZWlnaHQ9IjIiLz48cmVjdCB4PSIyNiIg''@;'; + put 'put ''eT0iMjYiIHdpZHRoPSI0IiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIlxuICAgICAgICAgICAgICAgIGQ9Ik0zMC44NCwxMy4zN0ExLjk0LDEuOTQsMCwwLDAsMjguOTMsMTJIMjYuNTVhMywzLDAsMCwx''@;'; + put 'put ''LS4xNCwyaDIuNTRDMzAsMTYuOTQsMzEuNzIsMjEuNjUsMzIsMjIuNDhWMzBINFYyMi40OEM0LjI4LDIxLjY1LDcuMDUsMTQsNy4wNSwxNEg5LjU4YTMsMywwLDAsMS0uMTQtMkg3LjA3YTEuOTIsMS45MiwwLDAsMC0xLjksMS4zMkMyLDIyLDIsMjIuMSwyLDIyLjMzVjMwYTIsMiwwLDAsMCwy''@;'; + put 'put ''LDJIMzJhMiwyLDAsMCwwLDItMlYyMi4zM0MzNCwyMi4xLDM0LDIyLDMwLjg0LDEzLjM3WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIGQ9Ik0xOCwxOS44NGw2LjM4LTYuMzVBMSwxLDAsMSwwLDIzLDEyLjA4TDE5LDE2''@;'; + put 'put ''VjRhMSwxLDAsMSwwLTIsMFYxNmwtNC0zLjk1YTEsMSwwLDAsMC0xLjQxLDEuNDJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiBkPSJNMTYuNTgsMjEuMjYsMTAuMiwxNC45MUEzLDMsMCwwLDEs''@;'; + put 'put ''OS40NCwxMkg3LjA3YTEuOTIsMS45MiwwLDAsMC0xLjksMS4zMkMyLjg2LDE5LjY4LDIuMjQsMjEuNDMsMi4wNywyMkgxNy4zM1oiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQiIGQ9Ik0yLDI0djZh''@;'; + put 'put ''MiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjI0Wm0yOCw0SDI2VjI2aDRaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0zLS1hbGVydGVkIiBkPSJNMTguNjYsMjJIMzMuOTNjLS4xNS0uNTEtLjY1LTEuOTMt''@;'; + put 'put ''Mi4zNS02LjZIMjUuM2wtNS44OSw1Ljg2WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtNC0tYWxlcnRlZCIgZD0iTTE4LDE5Ljg0bDQuNDctNC40NGgtLjIzYTMuNjQsMy42NCwwLDAsMS0yLS42MUwxOSwxNlY0YTEs''@;'; + put 'put ''MSwwLDEsMC0yLDBWMTZsLTQtMy45NWExLDEsMCwwLDAtMS40MSwxLjQyWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtNS0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwx''@;'; + put 'put ''LjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQi''@;'; + put 'put ''IGQ9Ik0xOCwxOS44NGw2LjM4LTYuMzVBMSwxLDAsMSwwLDIzLDEyLjA4TDE5LDE2VjRhMSwxLDAsMSwwLTIsMFYxNmwtNC0zLjk1YTEsMSwwLDAsMC0xLjQxLDEuNDJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTIt''@;'; + put 'put ''LWJhZGdlZCIgZD0iTTE2LjU4LDIxLjI2LDEwLjIsMTQuOTFBMywzLDAsMCwxLDkuNDQsMTJINy4wN2ExLjkyLDEuOTIsMCwwLDAtMS45LDEuMzJDMi44NiwxOS42OCwyLjI0LDIxLjQzLDIuMDcsMjJIMTcuMzNaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJh''@;'; + put 'put ''ZGdlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWJhZGdlZCIgZD0iTTIsMjR2NmEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMjRabTI4LDRIMjZWMjZoNFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtNC0tYmFk''@;'; + put 'put ''Z2VkIiBkPSJNMTguNjYsMjJIMzMuOTNjLS4xNy0uNTctLjc5LTIuMy0zLjA2LTguNTVhNy41NSw3LjU1LDAsMCwxLS44Ny4wNSw3LjQ2LDcuNDYsMCwwLDEtMy4zNS0uOCwzLDMsMCwwLDEtLjg2LDIuMjFsLTYuMzgsNi4zNVoiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1p''@;'; + put 'put ''LXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC01LS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0xOCwxOS44NGw2LjM4LTYuMzVBMSwxLDAs''@;'; + put 'put ''MSwwLDIzLDEyLjA4TDE5LDE2VjRhMSwxLDAsMSwwLTIsMFYxNmwtNC0zLjk1YTEsMSwwLDAsMC0xLjQxLDEuNDJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiBkPSJNMTkuNDEsMjEuMjZsLS43NC43NEgzMy45M2MtLjE3LS41''@;'; + put 'put ''Ny0uNzktMi4zMS0zLjA5LTguNjNBMS45NCwxLjk0LDAsMCwwLDI4LjkzLDEySDI2LjU1YTMsMywwLDAsMS0uNzYsMi45MloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIGQ9Ik0xNi41OCwyMS4yNiwxMC4yLDE0LjkxQTMsMyww''@;'; + put 'put ''LDAsMSw5LjQ0LDEySDcuMDdhMS45MiwxLjkyLDAsMCwwLTEuOSwxLjMyQzIuODYsMTkuNjgsMi4yNCwyMS40MywyLjA3LDIySDE3LjMzWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNCIgZD0iTTIsMjR2NmEyLDIsMCwwLDAsMiwy''@;'; + put 'put ''SDMyYTIsMiwwLDAsMCwyLTJWMjRabTI4LDRIMjZWMjZoNFoiLz5cbicpLEwuQ2xyU2hhcGVEZXZpY2VzPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzIsMTNIMjRhMiwyLDAsMCwwLTIsMlYzMGEyLDIsMCww''@;'; + put 'put ''LDAsMiwyaDhhMiwyLDAsMCwwLDItMlYxNUEyLDIsMCwwLDAsMzIsMTNabTAsMlYyNkgyNFYxNVpNMjQsMzBWMjcuNmg4VjMwWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0yMCwyMkg0VjZIMjh2NWgyVjZhMiwy''@;'; + put 'put ''LDAsMCwwLTItMkg0QTIsMiwwLDAsMCwyLDZWMjJhMiwyLDAsMCwwLDIsMkgyMFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJNMjAsMjZIOWExLDEsMCwwLDAsMCwySDIwWiIvPlxuICAgICAgICAgICAgPHBhdGgg''@;'; + put 'put ''Y2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTMyLDEzSDI0YTIsMiwwLDAsMC0yLDJWMzBhMiwyLDAsMCwwLDIsMmg4YTIsMiwwLDAsMCwyLTJWMTVBMiwyLDAsMCwwLDMyLDEzWm0wLDJWMjhIMjRWMTVaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xy''@;'; + put 'put ''LWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiBkPSJNMjgsNEg0QTIsMiwwLDAsMCwyLDZWMjJhMiwyLDAsMCwwLDIsMmg4djJIOS4zMkExLjIsMS4yLDAsMCwwLDgsMjdhMS4yLDEuMiwwLDAsMCwxLjMyLDFIMTkuOTJ2LS4zN0gyMFYyMkg0VjZIMjh2NWgyVjZBMiwyLDAsMCwwLDI4LDRa''@;'; + put 'put ''Ii8+XG4nKSxMLkNsclNoYXBlS2V5Ym9hcmQ9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMiw4SDRhMiwyLDAsMCwwLTIsMlYyNmEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMTBBMiwyLDAsMCww''@;'; + put 'put ''LDMyLDhabTAsMThINFYxMEgzMloiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiB4PSI3IiB5PSIxMyIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xy''@;'; + put 'put ''LWktb3V0bGluZS1wYXRoLTMiIHg9IjExIiB5PSIxMyIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIHg9IjE1IiB5PSIxMyIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAg''@;'; + put 'put ''ICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIHg9IjE5IiB5PSIxMyIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIHg9IjIzIiB5PSIxMyIg''@;'; + put 'put ''d2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTciIHg9IjI3IiB5PSIxMyIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xy''@;'; + put 'put ''LWktb3V0bGluZS1wYXRoLTgiIHg9IjciIHk9IjE3IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtOSIgeD0iMTEiIHk9IjE3IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAg''@;'; + put 'put ''ICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMTAiIHg9IjE1IiB5PSIxNyIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTExIiB4PSIxOSIgeT0iMTci''@;'; + put 'put ''IHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xMiIgeD0iMjMiIHk9IjE3IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBj''@;'; + put 'put ''bHItaS1vdXRsaW5lLXBhdGgtMTMiIHg9IjI3IiB5PSIxNyIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTE0IiB4PSIyNyIgeT0iMjIiIHdpZHRoPSIxLjk0IiBoZWlnaHQ9IjIiLz5cbiAg''@;'; + put 'put ''ICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xNSIgeD0iNyIgeT0iMjIiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xNiIgeD0iMTEu''@;'; + put 'put ''MTMiIHk9IjIyIiB3aWR0aD0iMTMuNzUiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTMyLDhINGEyLDIsMCwwLDAtMiwyVjI2YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYxMEEyLDIsMCww''@;'; + put 'put ''LDAsMzIsOFpNMTksMTNoMnYySDE5Wm0wLDRoMnYySDE5Wm0tNC00aDJ2MkgxNVptMCw0aDJ2MkgxNVptLTQtNGgydjJIMTFaTTksMjRIN1YyMkg5Wm0wLTVIN1YxN0g5Wm0wLTRIN1YxM0g5Wm0yLDJoMnYySDExWm0xMy44OCw3SDExLjEzVjIySDI0Ljg4Wk0yNSwxOUgyM1YxN2gyWm0wLTRI''@;'; + put 'put ''MjNWMTNoMlptMy45NCw5SDI3VjIyaDEuOTRaTTI5LDE5SDI3VjE3aDJabTAtNEgyN1YxM2gyWiIvPlxuJyksTC5DbHJTaGFwZU1vdXNlPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMTgsMzRBMTAsMTAsMCww''@;'; + put 'put ''LDEsOCwyNFYxMmExMCwxMCwwLDAsMSwyMCwwVjI0QTEwLDEwLDAsMCwxLDE4LDM0Wk0xOCw0YTgsOCwwLDAsMC04LDhWMjRhOCw4LDAsMCwwLDE2LDBWMTJBOCw4LDAsMCwwLDE4LDRaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBh''@;'; + put 'put ''dGgtMiIgZD0iTTE4LDE1YTEsMSwwLDAsMS0xLTFWMTBhMSwxLDAsMCwxLDIsMHY0QTEsMSwwLDAsMSwxOCwxNVoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0xOCwyQTEwLDEwLDAsMCwwLDgsMTJWMjRhMTAsMTAsMCww''@;'; + put 'put ''LDAsMjAsMFYxMkExMCwxMCwwLDAsMCwxOCwyWm0xLjMsMTEuNDRhMS4zLDEuMywwLDAsMS0yLjYsMFYxMGExLjMsMS4zLDAsMCwxLDIuNiwwWiIvPlxuJyksTC5DbHJTaGFwZURhc2hib2FyZD0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRs''@;'; + put 'put ''aW5lLXBhdGgtMSIgZD0iTTI1LjE4LDEyLjMybC01LjkxLDUuODFhMywzLDAsMSwwLDEuNDEsMS40Mmw1LjkyLTUuODFaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0xOCw0LjI1QTE2LjQ5LDE2LjQ5LDAs''@;'; + put 'put ''MCwwLDUuNCwzMS40bC4zLjM1SDMwLjNsLjMtLjM1QTE2LjQ5LDE2LjQ5LDAsMCwwLDE4LDQuMjVabTExLjM0LDI1LjVINi42NmExNC40MywxNC40MywwLDAsMS0zLjExLTcuODRIN3YtMkgzLjU1QTE0LjQxLDE0LjQxLDAsMCwxLDcsMTEuMjlsMi40NSwyLjQ1LDEuNDEtMS40MUw4LjQzLDku''@;'; + put 'put ''ODdBMTQuNDEsMTQuNDEsMCwwLDEsMTcsNi4yOXYzLjVoMlY2LjNhMTQuNDcsMTQuNDcsMCwwLDEsMTMuNCwxMy42MUgyOC45MnYyaDMuNTNBMTQuNDMsMTQuNDMsMCwwLDEsMjkuMzQsMjkuNzVaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdl''@;'; + put 'put ''ZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMTUuODUsMTguNjlhMywzLDAsMSwwLDQuODMuODVsNS45Mi01LjgxLTEuNDEtMS40MS01LjkxLDUuODFBMywzLDAsMCwwLDE1Ljg1LDE4LjY5WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5l''@;'; + put 'put ''LS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgZD0iTTMyLjU4LDEzYTcuNDUsNy40NSwwLDAsMS0yLjA2LjQ0LDE0LjQsMTQuNCwwLDAsMSwxLjkzLDYuNDNIMjguOTJ2MmgzLjUzYTE0LjQzLDE0LjQzLDAsMCwxLTMuMTEsNy44NEg2LjY2YTE0LjQzLDE0LjQzLDAsMCwx''@;'; + put 'put ''LTMuMTEtNy44NEg3di0ySDMuNTVBMTQuNDEsMTQuNDEsMCwwLDEsNywxMS4yOWwyLjQ1LDIuNDUsMS40MS0xLjQxTDguNDMsOS44N0ExNC40MSwxNC40MSwwLDAsMSwxNyw2LjI5djMuNWgyVjYuM0ExNC40MSwxNC40MSwwLDAsMSwyMi41OCw3YTcuNTIsNy41MiwwLDAsMS0uMDgtMSw3LjUy''@;'; + put 'put ''LDcuNTIsMCwwLDEsLjA5LTEuMDlBMTYuNDksMTYuNDksMCwwLDAsNS40LDMxLjRsLjMuMzVIMzAuM2wuMy0uMzVhMTYuNDUsMTYuNDUsMCwwLDAsMi0xOC4zNloiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1w''@;'; + put 'put ''YXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0xOCw0LjI1QTE2LjQ5LDE2LjQ5LDAsMCwwLDUuNCwzMS40bC4zLjM1SDMwLjNsLjMt''@;'; + put 'put ''LjM1QTE2LjQ5LDE2LjQ5LDAsMCwwLDE4LDQuMjVabTguNiw5LjQ4LTUuOTIsNS44MWEzLDMsMCwxLDEtMS40MS0xLjQybDUuOTEtNS44MVptLTIzLDYuMTdIN3YySDMuNTZjMC0uMzktLjA1LS43Ny0uMDUtMS4xN1MzLjUzLDIwLjE4LDMuNTUsMTkuOVptNC44OC0xMCwyLjQ2LDIuNDZMOS40''@;'; + put 'put ''NywxMy43NCw3LDExLjI5QTE0LjU3LDE0LjU3LDAsMCwxLDguNDMsOS44N1pNMTksOS43OUgxN1Y2LjI5Yy4zMiwwLC42MywwLDEsMHMuNywwLDEsLjA1Wk0zMi40OSwyMC43NGMwLC4zOSwwLC43OS0uMDUsMS4xN0gyOC45MnYtMmgzLjUzQzMyLjQ3LDIwLjE4LDMyLjQ5LDIwLjQ2LDMyLjQ5''@;'; + put 'put ''LDIwLjc0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMzIuNTgsMTNhNy40Niw3LjQ2LDAsMCwxLTEwLTguMTJBMTYuNDksMTYuNDksMCwwLDAsNS40LDMxLjRsLjMuMzVIMzAuM2wu''@;'; + put 'put ''My0uMzVhMTYuNDUsMTYuNDUsMCwwLDAsMi0xOC4zNlpNMTcsNi4yOWMuMzIsMCwuNjMsMCwxLDBzLjcsMCwxLC4wNXYzLjVIMTdaTTcsMjEuOTFIMy41NmMwLS4zOS0uMDUtLjc3LS4wNS0xLjE3czAtLjU2LDAtLjgzSDdabTIuNTEtOC4xNkw3LDExLjI5QTE0LjU3LDE0LjU3LDAsMCwxLDgu''@;'; + put 'put ''NDMsOS44N2wyLjQ2LDIuNDZabTEwLjYyLDkuMTlhMywzLDAsMSwxLS44Mi00LjgxbDUuOTEtNS44MSwxLjQxLDEuNDEtNS45Miw1LjgxQTMsMywwLDAsMSwyMC4wOSwyMi45M1ptMTIuMzUtMUgyOC45MnYtMmgzLjUzYzAsLjI4LDAsLjU1LDAsLjgzUzMyLjQ3LDIxLjUyLDMyLjQ0LDIxLjkx''@;'; + put 'put ''WiIvPlxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbicpLEwuQ2xyU2hhcGVIb3N0PSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGNs''@;'; + put 'put ''YXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMTgsMjQuM2EyLjQ4LDIuNDgsMCwxLDAsMi40OCwyLjQ3QTIuNDgsMi40OCwwLDAsMCwxOCwyNC4zWm0wLDMuNmExLjEzLDEuMTMsMCwxLDEsMS4xMy0xLjEyQTEuMTMsMS4xMywwLDAsMSwxOCwyNy45WiIvPjxy''@;'; + put 'put ''ZWN0IHg9IjEzLjUiIHk9IjIwLjciIHdpZHRoPSI5IiBoZWlnaHQ9IjEuNDQiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTI1LjY1LDMuNkgxMC4zNUExLjM1LDEuMzUsMCwwLDAsOSw0Ljk1VjMyLjRIMjdW''@;'; + put 'put ''NC45NUExLjM1LDEuMzUsMCwwLDAsMjUuNjUsMy42Wm0tLjQ1LDI3SDEwLjhWNS40SDI1LjJaIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIHg9IjEyLjYiIHk9IjcuMiIgd2lkdGg9IjEwLjgiIGhlaWdodD0iMS40''@;'; + put 'put ''NCIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiB4PSIxMi42IiB5PSIxMC44IiB3aWR0aD0iMTAuOCIgaGVpZ2h0PSIxLjQ0Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFs''@;'; + put 'put ''ZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0xNS4yLDI3LjhjMCwxLjUsMS4yLDIuOCwyLjgsMi44czIuOC0xLjIsMi44LTIuOFMxOS41LDI1LDE4LDI1UzE1LjIsMjYuMiwxNS4yLDI3Ljh6IE0xOS4yLDI3LjhjMCwwLjctMC42LDEuMi0xLjIsMS4ycy0xLjItMC42''@;'; + put 'put ''LTEuMi0xLjJzMC42LTEuMiwxLjItMS4yUzE5LjIsMjcuMSwxOS4yLDI3Ljh6Ii8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIHg9IjEzIiB5PSIyMSIgd2lkdGg9IjEwIiBoZWlnaHQ9''@;'; + put 'put ''IjEuNiIvPlxuICAgICAgICAgICAgICAgIDxwb2x5Z29uIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIiBwb2ludHM9IjIxLjMsNiAxMiw2IDEyLDcuNiAyMC40LDcuNiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJj''@;'; + put 'put ''bHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIiBkPSJNMTIsMTEuNmg2LjZjMC0wLjYsMC4yLTEuMSwwLjQtMS42aC03VjExLjZ6Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0''@;'; + put 'put ''bGluZS1wYXRoLTUtLWFsZXJ0ZWQiIGQ9Ik0yNiwxNS40VjMySDEwVjRoMTIuNWwxLjEtMkg5LjVDOC43LDIsOCwyLjcsOCwzLjVWMzRoMjBWMTUuNEgyNnoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgt''@;'; + put 'put ''Ni0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2LjksMS4xTDIxLjEsMTFjLTAuNCwwLjYtMC4yLDEuNCwwLjMsMS44YzAuMiwwLjIsMC41LDAuMiwwLjgsMC4yaDExLjVjMC43LDAsMS4zLTAuNSwxLjMtMS4yYzAtMC4zLTAuMS0wLjUtMC4yLTAuOGwtNS43LTkuOWMtMC40LTAuNi0xLjEt''@;'; + put 'put ''MC44LTEuOC0wLjVDMjcuMSwwLjgsMjcsMSwyNi45LDEuMXoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0xNS4yLDI3LjhjMCwxLjUsMS4yLDIuOCwyLjgsMi44czIuOC0xLjIs''@;'; + put 'put ''Mi44LTIuOFMxOS41LDI1LDE4LDI1UzE1LjIsMjYuMiwxNS4yLDI3Ljh6IE0xOS4yLDI3LjhjMCwwLjctMC42LDEuMi0xLjIsMS4ycy0xLjItMC42LTEuMi0xLjJzMC42LTEuMiwxLjItMS4yUzE5LjIsMjcuMSwxOS4yLDI3Ljh6Ii8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNs''@;'; + put 'put ''ci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIiB4PSIxMyIgeT0iMjEiIHdpZHRoPSIxMCIgaGVpZ2h0PSIxLjYiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1i''@;'; + put 'put ''YWRnZWQiIGQ9Ik0yNCwxMC41Yy0wLjEtMC4yLTAuMi0wLjMtMC4zLTAuNUgxMnYxLjZoMTJWMTAuNXoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQiIGQ9Ik0xMiw2djEuNmgxMC43Yy0w''@;'; + put 'put ''LjEtMC41LTAuMi0xLjEtMC4yLTEuNkgxMnoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC01LS1iYWRnZWQiIGQ9Ik0yNiwxMi4zVjMySDEwVjRoMTIuOGMwLjItMC43LDAuNS0xLjQsMC45LTJIOS41Qzgu''@;'; + put 'put ''NywyLDgsMi43LDgsMy41VjM0aDIwVjEzLjJDMjcuMywxMywyNi42LDEyLjcsMjYsMTIuM3oiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTYtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0i''@;'; + put 'put ''NiIgcj0iNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0yNi41LDJoLTE3QzguNywyLDgsMi43LDgsMy41VjM0aDIwVjMuNUMyOCwyLjcsMjcuMywyLDI2LjUsMnogTTE4LDMwLjVjLTEuNSwwLTIuOC0xLjItMi44''@;'; + put 'put ''LTIuOFMxNi41LDI1LDE4LDI1czIuOCwxLjIsMi44LDIuOFMxOS41LDMwLjUsMTgsMzAuNXogTTIzLDIyLjZIMTNWMjFoMTBWMjIuNnogTTI0LDExLjZIMTJWMTBoMTJWMTEuNnogTTI0LDcuNkgxMlY2aDEyVjcuNnoiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1z''@;'; + put 'put ''b2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGN4PSIxOCIgY3k9IjI3LjgiIHI9IjEuMiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0yMi4yLDE1LjNjLTIsMC0zLjctMS42LTMuNy0z''@;'; + put 'put ''LjdIMTJWMTBoNi45YzAtMC4xLDAuMS0wLjIsMC4xLTAuMmwxLjItMi4ySDEyVjZoOS4ybDIuMy00aC0xNEM4LjcsMiw4LDIuNyw4LDMuNVYzNGgyMFYxNS4zSDIyLjJ6IE0xOCwzMC41Yy0xLjUsMC0yLjgtMS4yLTIuOC0yLjhTMTYuNSwyNSwxOCwyNXMyLjgsMS4yLDIuOCwyLjhTMTkuNSwz''@;'; + put 'put ''MC41LDE4LDMwLjV6IE0yMywyMi42SDEzVjIxaDEwVjIyLjZ6Ii8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIiBjeD0iMTgiIGN5PSIyNy44IiByPSIxLjIiLz5cbiAgICAgICAgICAgICAg''@;'; + put 'put ''ICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0zLS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNMjYuOSwxbC01LjcsOS45Yy0wLjMsMC42LTAuMSwxLjQsMC41LDEuN2MwLjIsMC4xLDAuNCwwLjIsMC42LDAuMmgxMS40YzAuNywwLDEuMy0wLjYs''@;'; + put 'put ''MS4zLTEuM2MwLTAuMi0wLjEtMC40LTAuMi0wLjZMMjkuMSwxYy0wLjQtMC42LTEuMS0wLjgtMS44LTAuNUMyNy4xLDAuNywyNywwLjgsMjYuOSwxeiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2Vk''@;'; + put 'put ''IiBkPSJNMjQsMTAuM3YxLjJIMTJWMTBoMTEuOGMtMC41LTAuNy0wLjgtMS41LTEtMi40SDEyVjZoMTAuNWMwLDAsMC0wLjEsMC0wLjFjMC0xLjQsMC40LTIuNywxLjEtMy45SDkuNUM4LjcsMiw4LDIuNyw4LDMuNVYzNGgyMFYxMy4xQzI2LjQsMTIuNiwyNSwxMS43LDI0LDEwLjN6IE0xOCwz''@;'; + put 'put ''MC41Yy0xLjUsMC0yLjgtMS4yLTIuOC0yLjhTMTYuNSwyNSwxOCwyNXMyLjgsMS4yLDIuOCwyLjhTMTkuNSwzMC41LDE4LDMwLjV6TTIzLDIyLjZIMTNWMjFoMTBWMjIuNnoiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlk''@;'; + put 'put ''LXBhdGgtMi0tYmFkZ2VkIiBjeD0iMTgiIGN5PSIyNy44IiByPSIxLjIiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI1LjkiIHI9IjUiLz5cbicp''@;'; + put 'put ''LEwuQ2xyU2hhcGVTdG9yYWdlPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzMsNi42OWgwYy0uMTgtMy40MS05LjQ3LTQuMzMtMTUtNC4zM1MzLDMuMjksMyw2Ljc4VjI5LjM3YzAsMy40OSw5LjQzLDQuNDMs''@;'; + put 'put ''MTUsNC40M3MxNS0uOTMsMTUtNC40M1Y2Ljc4czAsMCwwLDBTMzMsNi43LDMzLDYuNjlabS0yLDcuNTZjLS4zMy44Ni01LjA2LDIuNDUtMTMsMi40NUEzNy40NSwzNy40NSwwLDAsMSw3LDE1LjM0djIuMDhBNDMuMzIsNDMuMzIsMCwwLDAsMTgsMTguN2M0LDAsOS45My0uNDgsMTMtMnY1LjE3''@;'; + put 'put ''Yy0uMzMuODYtNS4wNiwyLjQ1LTEzLDIuNDVBMzcuNDUsMzcuNDUsMCwwLDEsNywyMi45MlYyNWE0My4zMiw0My4zMiwwLDAsMCwxMSwxLjI4YzQsMCw5LjkzLS40OCwxMy0ydjUuMWMtLjM1Ljg2LTUuMDgsMi40NS0xMywyLjQ1UzUuMywzMC4yLDUsMjkuMzdWNi44MkM1LjMsNiwxMCw0LjM2''@;'; + put 'put ''LDE4LDQuMzZjNy43NywwLDEyLjQ2LDEuNTMsMTMsMi4zNy0uNTIuODctNS4yMSwyLjM5LTEzLDIuMzlBMzcuNiwzNy42LDAsMCwxLDcsNy43NlY5Ljg1YTQzLjUzLDQzLjUzLDAsMCwwLDExLDEuMjdjNCwwLDkuOTMtLjQ4LDEzLTJaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9''@;'; + put 'put ''ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0xOS41MSw5LjA5LDE4LDkuMTFBMzcuNiwzNy42LDAsMCwxLDcsNy43NlY5Ljg1YTQzLjUzLDQzLjUzLDAsMCwwLDExLDEuMjdoLjYxQTMuNjYsMy42NiwwLDAsMSwxOSw5Ljg5WiIvPlxu''@;'; + put 'put ''ICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIiBkPSJNMjguODMsMTUuNEEzOC4zNywzOC4zNywwLDAsMSwxOCwxNi43LDM3LjQ1LDM3LjQ1LDAsMCwxLDcsMTUuMzR2Mi4wOEE0My4zMyw0My4z''@;'; + put 'put ''MywwLDAsMCwxOCwxOC43YzQsMCw5LjkzLS40OCwxMy0ydjUuMTdjLS4zMy44Ni01LjA2LDIuNDUtMTMsMi40NUEzNy40NSwzNy40NSwwLDAsMSw3LDIyLjkyVjI1YTQzLjMzLDQzLjMzLDAsMCwwLDExLDEuMjhjNCwwLDkuOTMtLjQ4LDEzLTJ2NS4xYy0uMzUuODYtNS4wOCwyLjQ1LTEzLDIu''@;'; + put 'put ''NDVTNS4zLDMwLjIsNSwyOS4zN1Y2LjgyQzUuMyw2LDEwLDQuMzYsMTgsNC4zNmMxLjUsMCwyLjg5LjA2LDQuMTUuMTZsMS4xLTEuOWMtMS44Ni0uMTgtMy43LS4yNi01LjI1LS4yNi01LjU3LDAtMTUsLjkzLTE1LDQuNDNWMjkuMzdjMCwzLjQ5LDkuNDMsNC40MywxNSw0LjQzczE1LS45Mywx''@;'; + put 'put ''NS00LjQzdi0xNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4''@;'; + put 'put ''QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgZD0iTTcsNy43NlY5Ljg1''@;'; + put 'put ''YTQzLjUzLDQzLjUzLDAsMCwwLDExLDEuMjcsNTQuODIsNTQuODIsMCwwLDAsNi4yLS4zNiw3LjUsNy41LDAsMCwxLTEuMTMtMS44OGMtMS41LjE1LTMuMi4yNC01LjA3LjI0QTM3LjYsMzcuNiwwLDAsMSw3LDcuNzZaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91''@;'; + put 'put ''dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIiBkPSJNMzEsMTMuNDN2LjgyYy0uMzMuODYtNS4wNiwyLjQ1LTEzLDIuNDVBMzcuNDUsMzcuNDUsMCwwLDEsNywxNS4zNHYyLjA4QTQzLjMzLDQzLjMzLDAsMCwwLDE4LDE4LjdjNCwwLDkuOTMtLjQ4LDEzLTJ2NS4x''@;'; + put 'put ''N2MtLjMzLjg2LTUuMDYsMi40NS0xMywyLjQ1QTM3LjQ1LDM3LjQ1LDAsMCwxLDcsMjIuOTJWMjVhNDMuMzMsNDMuMzMsMCwwLDAsMTEsMS4yOGM0LDAsOS45My0uNDgsMTMtMnY1LjFjLS4zNS44Ni01LjA4LDIuNDUtMTMsMi40NVM1LjMsMzAuMiw1LDI5LjM3VjYuODJDNS4zLDYsMTAsNC4z''@;'; + put 'put ''NiwxOCw0LjM2YzEuNywwLDMuMjUuMDgsNC42NC4yYTcuNDQsNy40NCwwLDAsMSwuNjctMS45NGMtMS44OC0uMTgtMy43NS0uMjYtNS4zMS0uMjYtNS41NywwLTE1LC45My0xNSw0LjQzVjI5LjM3YzAsMy40OSw5LjQzLDQuNDMsMTUsNC40M3MxNS0uOTMsMTUtNC40M1YxMi44N0E3LjQ1LDcu''@;'; + put 'put ''NDUsMCwwLDEsMzEsMTMuNDNaIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBj''@;'; + put 'put ''bGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMTcuOTEsMTguMjhjOC4wOCwwLDE0LjY2LTEuNzQsMTUuMDktMy45NFY4LjU5Yy0uNDMsMi4yLTcsMy45NC0xNS4wOSwzLjk0QTM5LjQsMzkuNCwwLDAsMSw2LjI1LDExVjlhMzkuNCwzOS40LDAsMCwwLDExLjY2LDEu''@;'; + put 'put ''NTFDMjYsMTAuNTMsMzIuNTIsOC43OSwzMyw2LjYxaDBDMzIuOCwzLjIsMjMuNTIsMi4yOCwxOCwyLjI4UzMsMy4yMSwzLDYuNzFWMjkuMjljMCwzLjQ5LDkuNDMsNC40MywxNSw0LjQzczE1LS45MywxNS00LjQzVjI0LjA5QzMyLjU3LDI2LjI4LDI2LDI4LDE3LjkxLDI4QTM5LjQsMzkuNCww''@;'; + put 'put ''LDAsMSw2LjI1LDI2LjUydi0yQTM5LjQsMzkuNCwwLDAsMCwxNy45MSwyNkMyNiwyNiwzMi41NywyNC4yOCwzMywyMi4wOVYxNi4zNGMtLjQzLDIuMi03LDMuOTQtMTUuMDksMy45NEEzOS40LDM5LjQsMCwwLDEsNi4yNSwxOC43N3YtMkEzOS40LDM5LjQsMCwwLDAsMTcuOTEsMTguMjhaIi8+''@;'; + put 'put ''XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIgZD0iTTE3LjkxLDIwLjI4QTM5LjQsMzkuNCwwLDAsMSw2LjI1LDE4Ljc3di0yYTM5LjQsMzkuNCwwLDAsMCwxMS42NiwxLjUxYzYuOSwwLDEyLjct''@;'; + put 'put ''MS4yNywxNC41MS0zSDIyLjIzYTMuNjcsMy42NywwLDAsMS0zLjU1LTIuNzVoLS43N0EzOS40LDM5LjQsMCwwLDEsNi4yNSwxMVY5YTM5LjQsMzkuNCwwLDAsMCwxMS42NiwxLjUxaC44MkEzLjY0LDMuNjQsMCwwLDEsMTksOS43NWw0LjE3LTcuMjJjLTEuODUtLjE4LTMuNjgtLjI1LTUuMjEt''@;'; + put 'put ''LjI1LTUuNTcsMC0xNSwuOTMtMTUsNC40M1YyOS4yOWMwLDMuNDksOS40Myw0LjQzLDE1LDQuNDNzMTUtLjkzLDE1LTQuNDNWMjQuMDlDMzIuNTcsMjYuMjgsMjYsMjgsMTcuOTEsMjhBMzkuNCwzOS40LDAsMCwxLDYuMjUsMjYuNTJ2LTJBMzkuNCwzOS40LDAsMCwwLDE3LjkxLDI2QzI2LDI2''@;'; + put 'put ''LDMyLjU3LDI0LjI4LDMzLDIyLjA5VjE2LjM0QzMyLjU3LDE4LjUzLDI2LDIwLjI4LDE3LjkxLDIwLjI4WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44''@;'; + put 'put ''NSwxbC01LjcyLDkuOTFhMS4yOCwxLjI4LDAsMCwwLDEuMSwxLjkxSDMzLjY4YTEuMjgsMS4yOCwwLDAsMCwxLjEtMS45MUwyOS4wNiwxQTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNv''@;'; + put 'put ''bGlkLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMTcuOTEsMTguMjhjOC4wOCwwLDE0LjY2LTEuNzQsMTUuMDktMy45NHYtMS42YTcuNDcsNy40NywwLDAsMS03LjM4LS44LDQ4LjMsNDguMywwLDAsMS03LjcxLjU5QTM5LjQsMzkuNCwwLDAsMSw2LjI1LDExVjlhMzkuNCwzOS40LDAsMCwwLDExLjY2''@;'; + put 'put ''LDEuNTEsNTEsNTEsMCwwLDAsNi0uMzQsNy40Niw3LjQ2LDAsMCwxLS41OS03LjY1Yy0xLjg3LS4xOC0zLjczLS4yNi01LjI4LS4yNi01LjU3LDAtMTUsLjkzLTE1LDQuNDNWMjkuMjljMCwzLjQ5LDkuNDMsNC40MywxNSw0LjQzczE1LS45MywxNS00LjQzVjI0LjA5QzMyLjU3LDI2LjI4LDI2''@;'; + put 'put ''LDI4LDE3LjkxLDI4QTM5LjQsMzkuNCwwLDAsMSw2LjI1LDI2LjUydi0yQTM5LjQsMzkuNCwwLDAsMCwxNy45MSwyNkMyNiwyNiwzMi41NywyNC4yOCwzMywyMi4wOVYxNi4zNGMtLjQzLDIuMi03LDMuOTQtMTUuMDksMy45NEEzOS40LDM5LjQsMCwwLDEsNi4yNSwxOC43N3YtMkEzOS40LDM5''@;'; + put 'put ''LjQsMCwwLDAsMTcuOTEsMTguMjhaIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNS44NiIgcj0iNSIvPlxuJyksTC5DbHJTaGFwZUNsdXN0ZXI9''@;'; + put 'put ''KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMxLjM2LDhIMjcuNXYySDMxVjMwSDI3LjV2MkgzM1Y5LjY3QTEuNjUsMS42NSwwLDAsMCwzMS4zNiw4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik01LDEwSDgu''@;'; + put 'put ''NVY4SDQuNjRBMS42NSwxLjY1LDAsMCwwLDMsOS42N1YzMkg4LjVWMzBINVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+PGVsbGlwc2UgY3g9IjE4LjAxIiBjeT0iMjUuOTkiIHJ4PSIxLjgiIHJ5PSIxLjc5IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHIt''@;'; + put 'put ''aS1vdXRsaW5lLXBhdGgtMyIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI0LjMyLDRIMTEuNjhBMS42OCwxLjY4LDAsMCwwLDEwLDUuNjhWMzJIMjZWNS42OEExLjY4LDEuNjgsMCwwLDAsMjQuMzIsNFpNMjQsMzBIMTJWNkgyNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxp''@;'; + put 'put ''bmUtcGF0aC00Ii8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMy41IiB5PSI5LjIxIiB3aWR0aD0iOSIgaGVpZ2h0PSIxLjYiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNNSwxMEg4LjVWOEg0LjY0QTEuNjUsMS42''@;'; + put 'put ''NSwwLDAsMCwzLDkuNjdWMzJIOC41VjMwSDVaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIvPjxlbGxpcHNlIGN4PSIxOC4wMSIgY3k9IjI1Ljk5IiByeD0iMS44IiByeT0iMS43OSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFs''@;'; + put 'put ''ZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOSw5Ljg5bC4zOS0uNjhIMTMuNXYxLjZoNS4xN0EzLjY1LDMuNjUsMCwwLDEsMTksOS44OVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0''@;'; + put 'put ''aC0zLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjQsMzBIMTJWNmg5LjI5bDEuMTUtMkgxMS42OEExLjY4LDEuNjgsMCwwLDAsMTAsNS42OFYzMkgyNlYxNS40SDI0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWFsZXJ0''@;'; + put 'put ''ZWQiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMzEgMTUuNCAzMSAzMCAyNy41IDMwIDI3LjUgMzIgMzMgMzIgMzMgMTUuNCAzMSAxNS40IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAg''@;'; + put 'put ''PHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0''@;'; + put 'put ''bGluZS1wYXRoLTYtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik01LDEwSDguNVY4SDQuNjRBMS42NSwxLjY1LDAsMCwwLDMsOS42N1YzMkg4LjVWMzBINVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJh''@;'; + put 'put ''ZGdlZCIvPjxlbGxpcHNlIGN4PSIxOC4wMSIgY3k9IjI1Ljk5IiByeD0iMS44IiByeT0iMS43OSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMy41IiB5PSI5LjIxIiB3aWR0aD0iOSIg''@;'; + put 'put ''aGVpZ2h0PSIxLjYiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI0LDEwLjQ5VjMwSDEyVjZIMjIuNWE3LjQ5LDcuNDksMCwwLDEsLjI4LTJIMTEuNjhBMS42OCwxLjY4LDAsMCwwLDEw''@;'; + put 'put ''LDUuNjhWMzJIMjZWMTIuMzRBNy41Myw3LjUzLDAsMCwxLDI0LDEwLjQ5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzEsMTMuNDNWMzBIMjcuNXYySDMzVjEyLjg3QTcuNDUsNy40''@;'; + put 'put ''NSwwLDAsMSwzMSwxMy40M1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUt''@;'; + put 'put ''cGF0aC02LS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMS4zNiw4SDI3LjVWMzJIMzNWOS42N0ExLjY1LDEuNjUsMCwwLDAsMzEuMzYsOFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9''@;'; + put 'put ''Ik0zLDkuNjdWMzJIOC41VjhINC42NEExLjY1LDEuNjUsMCwwLDAsMyw5LjY3WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI0LjMyLDRIMTEuNjhBMS42OCwxLjY4LDAsMCwwLDEwLDUuNjhWMzJIMjZWNS42OEExLjY4''@;'; + put 'put ''LDEuNjgsMCwwLDAsMjQuMzIsNFpNMTgsMjcuNzlBMS43OSwxLjc5LDAsMSwxLDE5LjgxLDI2LDEuOCwxLjgsMCwwLDEsMTgsMjcuNzlaTTIzLDEwLjZIMTNWOUgyM1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zLDku''@;'; + put 'put ''NjdWMzJIOC41VjhINC42NEExLjY1LDEuNjUsMCwwLDAsMyw5LjY3WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMjcuNSIgeT0iMTUuNCIgd2lkdGg9IjUuNSIgaGVpZ2h0PSIxNi42IiBj''@;'; + put 'put ''bGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTksMTMuNTZhMy42OCwzLjY4LDAsMCwxLS4zMS0zSDEzVjloNi41NmwyLjg5LTVIMTEuNjhBMS42OCwxLjY4LDAsMCwwLDEwLDUuNjhWMzJIMjZW''@;'; + put 'put ''MTUuNEgyMi4yM0EzLjY5LDMuNjksMCwwLDEsMTksMTMuNTZaTTE4LDI3Ljc5QTEuNzksMS43OSwwLDEsMSwxOS44MSwyNiwxLjgsMS44LDAsMCwxLDE4LDI3Ljc5WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMy0tYWxlcnRlZCIvPlxuICAgICAgICAg''@;'; + put 'put ''ICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNv''@;'; + put 'put ''bGlkLXBhdGgtNC0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMsOS42N1YzMkg4LjVWOEg0LjY0QTEuNjUsMS42NSwwLDAsMCwzLDkuNjdaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIvPlxuICAg''@;'; + put 'put ''ICAgICAgICAgPHBhdGggZD0iTTIyLjUsNmE3LjQ5LDcuNDksMCwwLDEsLjI4LTJIMTEuNjhBMS42OCwxLjY4LDAsMCwwLDEwLDUuNjhWMzJIMjZWMTIuMzRBNy40OSw3LjQ5LDAsMCwxLDIyLjUsNlpNMTgsMjcuNzlBMS43OSwxLjc5LDAsMSwxLDE5LjgxLDI2LDEuOCwxLjgsMCwwLDEsMTgs''@;'; + put 'put ''MjcuNzlaTTIzLDEwLjZIMTNWOUgyM1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAsMTMuNWE3LjQ3LDcuNDcsMCwwLDEtMi41LS40NFYzMkgzM1YxMi44N0E3LjQ3LDcuNDcsMCwwLDEs''@;'; + put 'put ''MzAsMTMuNVoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtNC0tYmFkZ2VkIGNs''@;'; + put 'put ''ci1pLWJhZGdlIi8+XG4gICAgICAgICcpLEwuQ2xyU2hhcGVBcHBsaWNhdGlvbnM9KDAsRS5jbHJJY29uU1ZHKSgnPHBvbHlnb24gcG9pbnRzPSI4IDggNCA4IDQgMTAgMTAgMTAgMTAgNCA4IDQgOCA4IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAg''@;'; + put 'put ''ICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSIxOSA4IDE1IDggMTUgMTAgMjEgMTAgMjEgNCAxOSA0IDE5IDgiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cG9seWdvbiBwb2ludHM9IjMwIDQgMzAgOCAyNiA4IDI2IDEwIDMyIDEw''@;'; + put 'put ''IDMyIDQgMzAgNCIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iOCAxOSA0IDE5IDQgMjEgMTAgMjEgMTAgMTUgOCAxNSA4IDE5IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgt''@;'; + put 'put ''NCIvPlxuICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSIxOSAxOSAxNSAxOSAxNSAyMSAyMSAyMSAyMSAxNSAxOSAxNSAxOSAxOSIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMzAgMTkgMjYgMTkg''@;'; + put 'put ''MjYgMjEgMzIgMjEgMzIgMTUgMzAgMTUgMzAgMTkiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02Ii8+XG4gICAgICAgICAgICA8cG9seWdvbiBwb2ludHM9IjggMzAgNCAzMCA0IDMyIDEwIDMyIDEwIDI2IDggMjYgOCAzMCIgY2xhc3M9ImNsci1pLW91dGxpbmUg''@;'; + put 'put ''Y2xyLWktb3V0bGluZS1wYXRoLTciLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMTkgMzAgMTUgMzAgMTUgMzIgMjEgMzIgMjEgMjYgMTkgMjYgMTkgMzAiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC04Ii8+XG4gICAgICAgICAgICA8cG9seWdvbiBw''@;'; + put 'put ''b2ludHM9IjMwIDMwIDI2IDMwIDI2IDMyIDMyIDMyIDMyIDI2IDMwIDI2IDMwIDMwIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtOSIvPlxuICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSI4IDggNCA4IDQgMTAgMTAgMTAgMTAgNCA4IDQgOCA4IiBjbGFzcz0i''@;'; + put 'put ''Y2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMTkgOCAxNSA4IDE1IDEwIDIxIDEwIDIxIDQgMTkgNCAxOSA4IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUt''@;'; + put 'put ''cGF0aC0yLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iOCAxOSA0IDE5IDQgMjEgMTAgMjEgMTAgMTUgOCAxNSA4IDE5IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwb2x5''@;'; + put 'put ''Z29uIHBvaW50cz0iMTkgMTkgMTUgMTkgMTUgMjEgMjEgMjEgMjEgMTUgMTkgMTUgMTkgMTkiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSIzMCAxOSAyNiAxOSAyNiAyMSAz''@;'; + put 'put ''MiAyMSAzMiAxNSAzMCAxNSAzMCAxOSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cG9seWdvbiBwb2ludHM9IjggMzAgNCAzMCA0IDMyIDEwIDMyIDEwIDI2IDggMjYgOCAzMCIgY2xhc3M9ImNsci1p''@;'; + put 'put ''LW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cG9seWdvbiBwb2ludHM9IjE5IDMwIDE1IDMwIDE1IDMyIDIxIDMyIDIxIDI2IDE5IDI2IDE5IDMwIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUt''@;'; + put 'put ''cGF0aC03LS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMzAgMzAgMjYgMzAgMjYgMzIgMzIgMzIgMzIgMjYgMzAgMjYgMzAgMzAiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTgtLWJhZGdlZCIvPlxuICAgICAgICAgICAg''@;'; + put 'put ''PGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC05LS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iOCA4IDQgOCA0IDEwIDEwIDEwIDEwIDQgOCA0IDggOCIg''@;'; + put 'put ''Y2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iOCAxOSA0IDE5IDQgMjEgMTAgMjEgMTAgMTUgOCAxNSA4IDE5IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHIt''@;'; + put 'put ''aS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSIxOSAxOSAxNSAxOSAxNSAyMSAyMSAyMSAyMSAxNSAxOSAxNSAxOSAxOSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiLz5c''@;'; + put 'put ''biAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMzAgMTUgMzAgMTkgMjYgMTkgMjYgMjEgMzIgMjEgMzIgMTUgMzAgMTUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cG9seWdvbiBwb2ludHM9''@;'; + put 'put ''IjggMzAgNCAzMCA0IDMyIDEwIDMyIDEwIDI2IDggMjYgOCAzMCIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMTkgMzAgMTUgMzAgMTUgMzIgMjEgMzIgMjEgMjYgMTkg''@;'; + put 'put ''MjYgMTkgMzAiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC02LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cG9seWdvbiBwb2ludHM9IjMwIDMwIDI2IDMwIDI2IDMyIDMyIDMyIDMyIDI2IDMwIDI2IDMwIDMwIiBjbGFzcz0iY2xyLWktb3V0bGlu''@;'; + put 'put ''ZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNy0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE5LDhIMTV2Mmg0TDE5LDkuODksMjEsNi41VjRIMTlaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtOC0tYWxlcnRlZCIvPlxu''@;'; + put 'put ''ICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0''@;'; + put 'put ''ZWQgY2xyLWktb3V0bGluZS1wYXRoLTktLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjQiIHk9IjQiIHdpZHRoPSI2IiBoZWlnaHQ9IjYiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjQi''@;'; + put 'put ''IHk9IjE1IiB3aWR0aD0iNiIgaGVpZ2h0PSI2IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSI0IiB5PSIyNiIgd2lkdGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIvPlxu''@;'; + put 'put ''ICAgICAgICAgICAgPHJlY3QgeD0iMTUiIHk9IjQiIHdpZHRoPSI2IiBoZWlnaHQ9IjYiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE1IiB5PSIxNSIgd2lkdGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9ImNsci1pLXNvbGlk''@;'; + put 'put ''IGNsci1pLXNvbGlkLXBhdGgtNSIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTUiIHk9IjI2IiB3aWR0aD0iNiIgaGVpZ2h0PSI2IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC02Ii8+XG4gICAgICAgICAgICA8cmVjdCB4PSIyNiIgeT0iNCIgd2lkdGg9IjYiIGhlaWdo''@;'; + put 'put ''dD0iNiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNyIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMjYiIHk9IjE1IiB3aWR0aD0iNiIgaGVpZ2h0PSI2IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC04Ii8+XG4gICAgICAgICAgICA8cmVjdCB4PSIy''@;'; + put 'put ''NiIgeT0iMjYiIHdpZHRoPSI2IiBoZWlnaHQ9IjYiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTkiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjQiIHk9IjQiIHdpZHRoPSI2IiBoZWlnaHQ9IjYiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1w''@;'; + put 'put ''YXRoLTEtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjQiIHk9IjE1IiB3aWR0aD0iNiIgaGVpZ2h0PSI2IiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSI0IiB5PSIyNiIgd2lk''@;'; + put 'put ''dGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMy0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTUiIHk9IjE1IiB3aWR0aD0iNiIgaGVpZ2h0PSI2IiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWkt''@;'; + put 'put ''c29saWQtcGF0aC00LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNSIgeT0iMjYiIHdpZHRoPSI2IiBoZWlnaHQ9IjYiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTUtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjI2IiB5''@;'; + put 'put ''PSIxNSIgd2lkdGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtNi0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMjYiIHk9IjI2IiB3aWR0aD0iNiIgaGVpZ2h0PSI2IiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0''@;'; + put 'put ''ZWQgY2xyLWktc29saWQtcGF0aC03LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTUsMTBoNEwxOSw5Ljg5LDIxLDYuNVY0SDE1WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtOC0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGgg''@;'; + put 'put ''ZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgt''@;'; + put 'put ''OS0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iNCIgeT0iNCIgd2lkdGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjQiIHk9IjE1''@;'; + put 'put ''IiB3aWR0aD0iNiIgaGVpZ2h0PSI2IiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iNCIgeT0iMjYiIHdpZHRoPSI2IiBoZWlnaHQ9IjYiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1p''@;'; + put 'put ''LXNvbGlkLXBhdGgtMy0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNSIgeT0iNCIgd2lkdGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC00LS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE1IiB5PSIx''@;'; + put 'put ''NSIgd2lkdGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC01LS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE1IiB5PSIyNiIgd2lkdGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xy''@;'; + put 'put ''LWktc29saWQtcGF0aC02LS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjI2IiB5PSIxNSIgd2lkdGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC03LS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjI2IiB5''@;'; + put 'put ''PSIyNiIgd2lkdGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC04LS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQt''@;'; + put 'put ''cGF0aC05LS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgJyksTC5DbHJTaGFwZUJ1aWxkaW5nPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xOS44OCwzSDYuMTJBMi4xMiwyLjEyLDAsMCwwLDQsNS4xMlYzM0gyMlY1LjEyQTIuMTIsMi4xMiwwLDAsMCwxOS44OCwzWk0yMCwz''@;'; + put 'put ''MUgxN1YyOEg5djNINlY1LjEyQS4xMi4xMiwwLDAsMSw2LjEyLDVIMTkuODhhLjEyLjEyLDAsMCwxLC4xMi4xMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iOCIgeT0iOCIgd2lkdGg9''@;'; + put 'put ''IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMiIgeT0iOCIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1v''@;'; + put 'put ''dXRsaW5lLXBhdGgtMy0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNiIgeT0iOCIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSI4IiB5''@;'; + put 'put ''PSIxMyIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMiIgeT0iMTMiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1i''@;'; + put 'put ''YWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTYtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTYiIHk9IjEzIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC03LS1iYWRnZWQiLz5cbiAgICAgICAgICAg''@;'; + put 'put ''IDxyZWN0IHg9IjgiIHk9IjE4IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC04LS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjEyIiB5PSIxOCIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNs''@;'; + put 'put ''ci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtOS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNiIgeT0iMTgiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEwLS1iYWRnZWQi''@;'; + put 'put ''Lz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjgiIHk9IjIzIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMiIgeT0iMjMiIHdpZHRoPSIyIiBoZWln''@;'; + put 'put ''aHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEyLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE2IiB5PSIyMyIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5l''@;'; + put 'put ''LXBhdGgtMTMtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMjMiIHk9IjEzIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xNC0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIyNyIgeT0i''@;'; + put 'put ''MTMiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTE1LS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjIzIiB5PSIxOCIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJh''@;'; + put 'put ''ZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMTYtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMjciIHk9IjE4IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xNy0tYmFkZ2VkIi8+XG4gICAgICAgICAg''@;'; + put 'put ''ICA8cmVjdCB4PSIyMyIgeT0iMjMiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTE4LS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjI3IiB5PSIyMyIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9''@;'; + put 'put ''ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMTktLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMxLDEzLjQzVjMxSDIzdjJIMzNWMTIuODdBNy40NSw3LjQ1LDAsMCwxLDMxLDEzLjQzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHIt''@;'; + put 'put ''aS1vdXRsaW5lLXBhdGgtMjAtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yMS0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICAgICA8cmVjdCB4''@;'; + put 'put ''PSI4IiB5PSI4IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTIiIHk9IjgiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRs''@;'; + put 'put ''aW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNiIgeT0iOCIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiLz5cbiAg''@;'; + put 'put ''ICAgICAgICAgIDxyZWN0IHg9IjgiIHk9IjEzIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTIiIHk9IjEzIiB3aWR0aD0iMiIgaGVpZ2h0PSIy''@;'; + put 'put ''IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTYiIHk9IjEzIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBh''@;'; + put 'put ''dGgtNi0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iOCIgeT0iMTgiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC03LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMiIgeT0iMTgi''@;'; + put 'put ''IHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC04LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNiIgeT0iMTgiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVy''@;'; + put 'put ''dGVkIGNsci1pLW91dGxpbmUtcGF0aC05LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSI4IiB5PSIyMyIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEwLS1hbGVydGVkIi8+XG4gICAgICAgICAg''@;'; + put 'put ''ICA8cmVjdCB4PSIxMiIgeT0iMjMiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTYiIHk9IjIzIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFz''@;'; + put 'put ''cz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMTItLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjIzIiB5PSIxOCIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEz''@;'; + put 'put ''LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIyNyIgeT0iMTgiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xNC0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMjMiIHk9IjIzIiB3''@;'; + put 'put ''aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMTUtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjI3IiB5PSIyMyIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0''@;'; + put 'put ''ZWQgY2xyLWktb3V0bGluZS1wYXRoLTE2LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjAsMzFIMTdWMjhIOXYzSDZWNS4xMkEuMTIuMTIsMCwwLDEsNi4xMiw1SDE5Ljg4YS4xMi4xMiwwLDAsMSwuMTIuMTJWOC4yNGwyLTMuNDFBMi4xMiwyLjEyLDAsMCwwLDE5Ljg4LDNI''@;'; + put 'put ''Ni4xMkEyLjEyLDIuMTIsMCwwLDAsNCw1LjEyVjMzSDIyVjE1LjM4YTMuNjgsMy42OCwwLDAsMS0yLS43NFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xNy0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSIzMSAxNS40''@;'; + put 'put ''IDMxIDMxIDIzIDMxIDIzIDMzIDMzIDMzIDMzIDE1LjQgMzEgMTUuNCIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTE4LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAs''@;'; + put 'put ''MjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMTktLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAg''@;'; + put 'put ''ICAgIDxwYXRoIGQ9Ik0zMSw4SDIyVjMzSDMzVjEwQTIsMiwwLDAsMCwzMSw4Wk0yNiwyNUgyNFYyM2gyWm0wLTVIMjRWMThoMlptMC01SDI0VjEzaDJabTQsMTBIMjhWMjNoMlptMC01SDI4VjE4aDJabTAtNUgyOFYxM2gyWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgt''@;'; + put 'put ''MSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE3Ljg4LDNINi4xMkEyLjEyLDIuMTIsMCwwLDAsNCw1LjEyVjMzSDlWMzBoNnYzaDVWNS4xMkEyLjEyLDIuMTIsMCwwLDAsMTcuODgsM1pNOSwyNUg3VjIzSDlabTAtNUg3VjE4SDlabTAtNUg3VjEzSDlabTAtNUg3VjhIOVptNCwxNUgxMVYy''@;'; + put 'put ''M2gyWm0wLTVIMTFWMThoMlptMC01SDExVjEzaDJabTAtNUgxMVY4aDJabTQsMTVIMTVWMjNoMlptMC01SDE1VjE4aDJabTAtNUgxNVYxM2gyWm0wLTVIMTVWOGgyWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE3Ljg4''@;'; + put 'put ''LDNINi4xMkEyLjEyLDIuMTIsMCwwLDAsNCw1LjEyVjMzSDlWMzBoNnYzaDVWMTQuNjRhMy42NywzLjY3LDAsMCwxLTEtNC43NmwxLTEuNjVWNS4xMkEyLjEyLDIuMTIsMCwwLDAsMTcuODgsM1pNOSwyNUg3VjIzSDlabTAtNUg3VjE4SDlabTAtNUg3VjEzSDlabTAtNUg3VjhIOVptNCwxNUgx''@;'; + put 'put ''MVYyM2gyWm0wLTVIMTFWMThoMlptMC01SDExVjEzaDJabTAtNUgxMVY4aDJabTQsMTVIMTVWMjNoMlptMC01SDE1VjE4aDJabTAtNUgxNVYxM2gyWm0wLTVIMTVWOGgyWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAg''@;'; + put 'put ''ICAgICAgPHBhdGggZD0iTTIyLjIzLDE1LjRsLS4yMywwVjMzSDMzVjE1LjRaTTI2LDI1SDI0VjIzaDJabTAtNUgyNFYxOGgyWm00LDVIMjhWMjNoMlptMC01SDI4VjE4aDJaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIi8+XG4gICAg''@;'; + put 'put ''ICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xy''@;'; + put 'put ''LWktc29saWQtcGF0aC0zLS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTcuODgsM0g2LjEyQTIuMTIsMi4xMiwwLDAsMCw0LDUuMTJWMzNIOVYzMGg2djNoNVY1LjEyQTIuMTIsMi4xMiwwLDAsMCwxNy44OCwzWk05LDI1SDdWMjNIOVptMC01SDdWMThI''@;'; + put 'put ''OVptMC01SDdWMTNIOVptMC01SDdWOEg5Wm00LDE1SDExVjIzaDJabTAtNUgxMVYxOGgyWm0wLTVIMTFWMTNoMlptMC01SDExVjhoMlptNCwxNUgxNVYyM2gyWm0wLTVIMTVWMThoMlptMC01SDE1VjEzaDJabTAtNUgxNVY4aDJaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1z''@;'; + put 'put ''b2xpZC1wYXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLDEzLjVWMTVIMjhWMTMuMjJBNy41LDcuNSwwLDAsMSwyMi43OCw4SDIyVjMzSDMzVjEyLjg3QTcuNDcsNy40NywwLDAsMSwzMCwxMy41Wk0yNiwyNUgyNFYyM2gyWm0wLTVIMjRWMThoMlptMC01SDI0VjEz''@;'; + put 'put ''aDJabTQsMTBIMjhWMjNoMlptMC01SDI4VjE4aDJaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1z''@;'; + put 'put ''b2xpZC1wYXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMxLDhIMjN2Mmg4VjMxSDIzdjJIMzNWMTBBMiwyLDAsMCwwLDMxLDhaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGgg''@;'; + put 'put ''ZD0iTTE5Ljg4LDNINi4xMkEyLjEyLDIuMTIsMCwwLDAsNCw1LjEyVjMzSDIyVjUuMTJBMi4xMiwyLjEyLDAsMCwwLDE5Ljg4LDNaTTIwLDMxSDE3VjI4SDl2M0g2VjUuMTJBLjEyLjEyLDAsMCwxLDYuMTIsNUgxOS44OGEuMTIuMTIsMCwwLDEsLjEyLjEyWiIgY2xhc3M9ImNsci1pLW91dGxp''@;'; + put 'put ''bmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjgiIHk9IjgiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMiIgeT0iOCIgd2lkdGg9IjIi''@;'; + put 'put ''IGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE2IiB5PSI4IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIvPlxuICAgICAgICAg''@;'; + put 'put ''ICAgPHJlY3QgeD0iOCIgeT0iMTMiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02Ii8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMiIgeT0iMTMiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNs''@;'; + put 'put ''ci1pLW91dGxpbmUtcGF0aC03Ii8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNiIgeT0iMTMiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC04Ii8+XG4gICAgICAgICAgICA8cmVjdCB4PSI4IiB5PSIxOCIgd2lkdGg9IjIiIGhl''@;'; + put 'put ''aWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTkiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjEyIiB5PSIxOCIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEwIi8+XG4gICAgICAgICAg''@;'; + put 'put ''ICA8cmVjdCB4PSIxNiIgeT0iMTgiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xMSIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iOCIgeT0iMjMiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNs''@;'; + put 'put ''ci1pLW91dGxpbmUtcGF0aC0xMiIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTIiIHk9IjIzIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMTMiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE2IiB5PSIyMyIgd2lkdGg9IjIi''@;'; + put 'put ''IGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTE0Ii8+XG4gICAgICAgICAgICA8cmVjdCB4PSIyMyIgeT0iMTMiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xNSIvPlxuICAgICAg''@;'; + put 'put ''ICAgICAgPHJlY3QgeD0iMjciIHk9IjEzIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMTYiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjIzIiB5PSIxOCIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxp''@;'; + put 'put ''bmUgY2xyLWktb3V0bGluZS1wYXRoLTE3Ii8+XG4gICAgICAgICAgICA8cmVjdCB4PSIyNyIgeT0iMTgiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xOCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMjMiIHk9IjIzIiB3aWR0''@;'; + put 'put ''aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMTkiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjI3IiB5PSIyMyIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIwIi8+XG4g''@;'; + put 'put ''ICAgICAgICcpLEwuQ2xyU2hhcGVDUFU9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTIzLjA4LDIzLjA3aC0xMXYxLjVIMjMuODNhLjc1Ljc1LDAsMCwwLC43NS0uNzVWMTEuMzNoLTEuNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gICAgICAg''@;'; + put 'put ''ICAgICA8cGF0aCBkPSJNMzIuMiwxOC4xNWEuOC44LDAsMSwwLDAtMS42SDMwdi01LjRoMi4yYS44LjgsMCwxLDAsMC0xLjZIMzBWOC4xQTIuMSwyLjEsMCwwLDAsMjcuOSw2SDI2LjM1VjMuOGEuOC44LDAsMSwwLTEuNiwwVjZoLTUuNFYzLjhhLjguOCwwLDEsMC0xLjYsMFY2aC01LjRWMy44''@;'; + put 'put ''YS44LjgsMCwxLDAtMS42LDBWNkg4LjFBMi4xLDIuMSwwLDAsMCw2LDguMVY5LjU1SDMuOGEuOC44LDAsMSwwLDAsMS42SDZ2NS40SDMuOGEuOC44LDAsMSwwLDAsMS42SDZ2NS40SDMuOGEuOC44LDAsMSwwLDAsMS42SDZWMjcuOUEyLjEsMi4xLDAsMCwwLDguMSwzMGgyLjY1djIuMmEuOC44''@;'; + put 'put ''LDAsMSwwLDEuNiwwVjMwaDUuNHYyLjJhLjguOCwwLDEsMCwxLjYsMFYzMGg1LjR2Mi4yYS44LjgsMCwxLDAsMS42LDBWMzBIMjcuOUEyLjEsMi4xLDAsMCwwLDMwLDI3LjlWMjUuMTVoMi4yYS44LjgsMCwxLDAsMC0xLjZIMzB2LTUuNFpNMjgsMjcuOWEuMS4xLDAsMCwxLS4xLjFIOC4xYS4x''@;'; + put 'put ''LjEsMCwwLDEtLjEtLjFWOC4xQS4xLjEsMCwwLDEsOC4xLDhIMjcuOWEuMS4xLDAsMCwxLC4xLjFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTEyLjA2LDI0LjU3SDIzLjgzYS43NS43NSwwLDAsMCwuNzUtLjc1''@;'; + put 'put ''VjExLjMzaC0xLjVWMjMuMDdoLTExWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIuMiwyMy41NUgzMHYtNS40aDIuMmEuOC44LDAsMSwwLDAtMS42SDMwVjEzLjVhNy40OSw3LjQ5''@;'; + put 'put ''LDAsMCwxLTItLjI4VjI3LjlhLjEuMSwwLDAsMS0uMS4xSDguMWEuMS4xLDAsMCwxLS4xLS4xVjguMUEuMS4xLDAsMCwxLDguMSw4SDIyLjc4YTcuNDksNy40OSwwLDAsMS0uMjgtMkgxOS4zNVYzLjhhLjguOCwwLDEsMC0xLjYsMFY2aC01LjRWMy44YS44LjgsMCwxLDAtMS42LDBWNkg4LjFB''@;'; + put 'put ''Mi4xLDIuMSwwLDAsMCw2LDguMVY5LjU1SDMuOGEuOC44LDAsMSwwLDAsMS42SDZ2NS40SDMuOGEuOC44LDAsMSwwLDAsMS42SDZ2NS40SDMuOGEuOC44LDAsMSwwLDAsMS42SDZWMjcuOUEyLjEsMi4xLDAsMCwwLDguMSwzMGgyLjY1djIuMmEuOC44LDAsMSwwLDEuNiwwVjMwaDUuNHYyLjJh''@;'; + put 'put ''LjguOCwwLDEsMCwxLjYsMFYzMGg1LjR2Mi4yYS44LjgsMCwxLDAsMS42LDBWMzBIMjcuOUEyLjEsMi4xLDAsMCwwLDMwLDI3LjlWMjUuMTVoMi4yYS44LjgsMCwxLDAsMC0xLjZaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiLz5c''@;'; + put 'put ''biAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIuMiwyMy41NUgzMHYtNS40aDIuMmEuOC44''@;'; + put 'put ''LDAsMSwwLDAtMS42SDMwVjE1LjRIMjhWMjcuOWEuMS4xLDAsMCwxLS4xLjFIOC4xYS4xLjEsMCwwLDEtLjEtLjFWOC4xQS4xLjEsMCwwLDEsOC4xLDhoMTJsMS4xNS0ySDE5LjM1VjMuOGEuOC44LDAsMSwwLTEuNiwwVjZoLTUuNFYzLjhhLjguOCwwLDEsMC0xLjYsMFY2SDguMUEyLjEsMi4x''@;'; + put 'put ''LDAsMCwwLDYsOC4xVjkuNTVIMy44YS44LjgsMCwxLDAsMCwxLjZINnY1LjRIMy44YS44LjgsMCwxLDAsMCwxLjZINnY1LjRIMy44YS44LjgsMCwxLDAsMCwxLjZINlYyNy45QTIuMSwyLjEsMCwwLDAsOC4xLDMwaDIuNjV2Mi4yYS44LjgsMCwxLDAsMS42LDBWMzBoNS40djIuMmEuOC44LDAs''@;'; + put 'put ''MSwwLDEuNiwwVjMwaDUuNHYyLjJhLjguOCwwLDEsMCwxLjYsMFYzMEgyNy45QTIuMSwyLjEsMCwwLDAsMzAsMjcuOVYyNS4xNWgyLjJhLjguOCwwLDEsMCwwLTEuNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIi8+XG4gICAg''@;'; + put 'put ''ICAgICAgICA8cGF0aCBkPSJNMTIuMDYsMjQuNTdIMjMuODNhLjc1Ljc1LDAsMCwwLC43NS0uNzVWMTUuNGgtMS41djcuNjdoLTExWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJN''@;'; + put 'put ''MjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgt''@;'; + put 'put ''My0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMyLjIsMjMuNTVIMzB2LTUuNGgyLjJhLjguOCwwLDEsMCwwLTEuNkgzMFYxNS40SDI1djguNDFBMS4xOCwxLjE4LDAsMCwxLDI0LDI1SDEzVjIzSDIzVjE1LjRoLS43N0EzLjY4LDMuNjgsMCwwLDEsMTks''@;'; + put 'put ''OS44OUwyMS4yOSw2SDE5LjM1VjMuOGEuOC44LDAsMSwwLTEuNiwwVjZoLTUuNFYzLjhhLjguOCwwLDEsMC0xLjYsMFY2SDguMUEyLjEsMi4xLDAsMCwwLDYsOC4xVjkuNTVIMy44YS44LjgsMCwxLDAsMCwxLjZINnY1LjRIMy44YS44LjgsMCwxLDAsMCwxLjZINnY1LjRIMy44YS44LjgsMCwx''@;'; + put 'put ''LDAsMCwxLjZINlYyNy45QTIuMSwyLjEsMCwwLDAsOC4xLDMwaDIuNjV2Mi4yYS44LjgsMCwxLDAsMS42LDBWMzBoNS40djIuMmEuOC44LDAsMSwwLDEuNiwwVjMwaDUuNHYyLjJhLjguOCwwLDEsMCwxLjYsMFYzMEgyNy45QTIuMSwyLjEsMCwwLDAsMzAsMjcuOVYyNS4xNWgyLjJhLjguOCww''@;'; + put 'put ''LDEsMCwwLTEuNloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQu''@;'; + put 'put ''NzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMi4yLDIzLjU1SDMwdi01LjRoMi4yYS44''@;'; + put 'put ''LjgsMCwxLDAsMC0xLjZIMzBWMTMuNWE3LjQ2LDcuNDYsMCwwLDEtNS0xLjkyVjIzLjgxQTEuMTgsMS4xOCwwLDAsMSwyNCwyNUgxM1YyM0gyM1YxMWgxLjQyQTcuNDYsNy40NiwwLDAsMSwyMi41LDZIMTkuMzVWMy44YS44LjgsMCwxLDAtMS42LDBWNmgtNS40VjMuOGEuOC44LDAsMSwwLTEu''@;'; + put 'put ''NiwwVjZIOC4xQTIuMSwyLjEsMCwwLDAsNiw4LjFWOS41NUgzLjhhLjguOCwwLDEsMCwwLDEuNkg2djUuNEgzLjhhLjguOCwwLDEsMCwwLDEuNkg2djUuNEgzLjhhLjguOCwwLDEsMCwwLDEuNkg2VjI3LjlBMi4xLDIuMSwwLDAsMCw4LjEsMzBoMi42NXYyLjJhLjguOCwwLDEsMCwxLjYsMFYz''@;'; + put 'put ''MGg1LjR2Mi4yYS44LjgsMCwxLDAsMS42LDBWMzBoNS40djIuMmEuOC44LDAsMSwwLDEuNiwwVjMwSDI3LjlBMi4xLDIuMSwwLDAsMCwzMCwyNy45VjI1LjE1aDIuMmEuOC44LDAsMSwwLDAtMS42WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRn''@;'; + put 'put ''ZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMi4yLDE4LjE1YS44LjgsMCwxLDAsMC0x''@;'; + put 'put ''LjZIMzB2LTUuNGgyLjJhLjguOCwwLDEsMCwwLTEuNkgzMFY4LjFBMi4xLDIuMSwwLDAsMCwyNy45LDZIMjYuMzVWMy44YS44LjgsMCwxLDAtMS42LDBWNmgtNS40VjMuOGEuOC44LDAsMSwwLTEuNiwwVjZoLTUuNFYzLjhhLjguOCwwLDEsMC0xLjYsMFY2SDguMUEyLjEsMi4xLDAsMCwwLDYs''@;'; + put 'put ''OC4xVjkuNTVIMy44YS44LjgsMCwxLDAsMCwxLjZINnY1LjRIMy44YS44LjgsMCwxLDAsMCwxLjZINnY1LjRIMy44YS44LjgsMCwxLDAsMCwxLjZINlYyNy45QTIuMSwyLjEsMCwwLDAsOC4xLDMwaDIuNjV2Mi4yYS44LjgsMCwxLDAsMS42LDBWMzBoNS40djIuMmEuOC44LDAsMSwwLDEuNiww''@;'; + put 'put ''VjMwaDUuNHYyLjJhLjguOCwwLDEsMCwxLjYsMFYzMEgyNy45QTIuMSwyLjEsMCwwLDAsMzAsMjcuOVYyNS4xNWgyLjJhLjguOCwwLDEsMCwwLTEuNkgzMHYtNS40Wk0yNSwyMy44MUExLjE4LDEuMTgsMCwwLDEsMjQsMjVIMTNWMjNIMjNWMTFoMloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHIt''@;'; + put 'put ''aS1zb2xpZC1wYXRoLTEiLz5cbiAgICAgICAgJyksTC5DbHJTaGFwZU1lbW9yeT0oMCxFLmNsckljb25TVkcpKCc8cmVjdCB4PSI4IiB5PSIxMiIgd2lkdGg9IjQiIGhlaWdodD0iOCIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxy''@;'; + put 'put ''ZWN0IHg9IjE2IiB5PSIxMiIgd2lkdGg9IjQiIGhlaWdodD0iOCIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjI0IiB5PSIxMiIgd2lkdGg9IjQiIGhlaWdodD0iOCIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWkt''@;'; + put 'put ''b3V0bGluZS1wYXRoLTMiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNSwyN0g0VjE3SDJWMjdhMiwyLDAsMCwwLDIsMkgxNi42MVYyNS41NWgyLjI2VjI0SDE1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0z''@;'; + put 'put ''Miw3SDRBMiwyLDAsMCwwLDIsOXY0SDRWOUgzMnY0aDJWOUEyLDIsMCwwLDAsMzIsN1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIsMjdIMTl2MkgzMmEyLDIsMCwwLDAsMi0yVjE3SDMyWiIgY2xhc3M9ImNs''@;'; + put 'put ''ci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjgiIHk9IjEyIiB3aWR0aD0iNCIgaGVpZ2h0PSI4IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAg''@;'; + put 'put ''PHBhdGggZD0iTTE1LDI3SDRWMTdIMlYyN2EyLDIsMCwwLDAsMiwySDE2LjYxVjI1LjU1aDIuMjZWMjRIMTVaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMyLDE3VjI3SDE5djJI''@;'; + put 'put ''MzJhMiwyLDAsMCwwLDItMlYxN1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTksMTMuNTZBMy42NiwzLjY2LDAsMCwxLDE4LjU3LDEySDE2djhoNFYxNC42NEEzLjY3LDMuNjcs''@;'; + put 'put ''MCwwLDEsMTksMTMuNTZaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMjQiIHk9IjE1LjQiIHdpZHRoPSI0IiBoZWlnaHQ9IjQuNiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0''@;'; + put 'put ''ZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik00LDlIMTkuNTZsMS4xNS0ySDRBMiwyLDAsMCwwLDIsOXY0SDRaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNi0tYWxlcnRlZCIvPlxuICAg''@;'; + put 'put ''ICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQg''@;'; + put 'put ''Y2xyLWktb3V0bGluZS1wYXRoLTctLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjgiIHk9IjEyIiB3aWR0aD0iNCIgaGVpZ2h0PSI4IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAg''@;'; + put 'put ''ICAgICAgIDxyZWN0IHg9IjE2IiB5PSIxMiIgd2lkdGg9IjQiIGhlaWdodD0iOCIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTUsMjdINFYxN0gyVjI3YTIsMiwwLDAsMCwyLDJIMTYu''@;'; + put 'put ''NjFWMjUuNTVoMi4yNlYyNEgxNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMyLDE3VjI3SDE5djJIMzJhMiwyLDAsMCwwLDItMlYxN1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1i''@;'; + put 'put ''YWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4LDEzLjIyQTcuNDYsNy40NiwwLDAsMSwyNS41MSwxMkgyNHY4aDRaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC01LS1iYWRnZWQiLz5c''@;'; + put 'put ''biAgICAgICAgICAgIDxwYXRoIGQ9Ik00LDlIMjMuMTNhNy40NSw3LjQ1LDAsMCwxLS41NS0ySDRBMiwyLDAsMCwwLDIsOXY0SDRaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC02LS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMw''@;'; + put 'put ''IiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNy0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzQsMTNWOWEyLDIsMCwwLDAtMi0ySDRBMiwyLDAsMCwwLDIsOXY0SDR2NEgyVjI3YTIsMiww''@;'; + put 'put ''LDAsMCwyLDJIMTYuNjFWMjUuNTVIMTlWMjlIMzJhMiwyLDAsMCwwLDItMlYxN0gzMlYxM1pNMTIsMjBIOFYxMmg0Wm04LDBIMTZWMTJoNFptOCwwSDI0VjEyaDRaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIsMTdW''@;'; + put 'put ''MTUuMDdIMjhWMjBIMjRWMTUuMDdIMjIuMjNBMy42OCwzLjY4LDAsMCwxLDIwLDE0LjMxVjIwSDE2VjEyaDIuNjFBMy42OCwzLjY4LDAsMCwxLDE5LDkuNTVMMjAuNTIsN0g0QTIsMiwwLDAsMCwyLDl2NEg0djRIMlYyN2EyLDIsMCwwLDAsMiwySDE2LjYxVjI1LjU1SDE5VjI5SDMyYTIsMiww''@;'; + put 'put ''LDAsMCwyLTJWMTdaTTEyLDIwSDhWMTJoNFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NS44bC01LjcyLDkuOTFhMS4yOCwxLjI4LDAsMCwwLDEuMSwxLjkxSDMzLjY4YTEuMjgs''@;'; + put 'put ''MS4yOCwwLDAsMCwxLjEtMS45MUwyOS4wNi44QTEuMjgsMS4yOCwwLDAsMCwyNi44NS44WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMyLDE3VjEzLjIyYTcuMzMs''@;'; + put 'put ''Ny4zMywwLDAsMS00LDBWMjBIMjRWMTJoMS41MWE3LjQ4LDcuNDgsMCwwLDEtMi45NC01SDRBMiwyLDAsMCwwLDIsOXY0SDR2NEgyVjI3YTIsMiwwLDAsMCwyLDJIMTYuNjFWMjUuNTVIMTlWMjlIMzJhMiwyLDAsMCwwLDItMlYxN1pNMTIsMjBIOFYxMmg0Wm04LDBIMTZWMTJoNFoiIGNsYXNz''@;'; + put 'put ''PSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4g''@;'; + put 'put ''ICAgICAgICcpLEwuQ2xyU2hhcGVEYXRhQ2x1c3Rlcj0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjYuNSw0LjA4QzIyLjc3LDQuMDgsMTksNS40LDE5LDcuOTFWOS41YTE4Ljc1LDE4Ljc1LDAsMCwxLDIsLjJWNy45MWMwLS42NSwyLjA5LTEuODQsNS41LTEuODRTMzIsNy4yNywzMiw3''@;'; + put 'put ''LjkxVjE4LjI0YzAsLjU0LTEuNDYsMS40NC0zLjksMS43M3YyYzMuMTMtLjMyLDUuOS0xLjYsNS45LTMuNzVWNy45MUMzNCw1LjQsMzAuMjMsNC4wOCwyNi41LDQuMDhaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0i''@;'; + put 'put ''TTQsMTguMjRWNy45MWMwLS42NSwyLjA5LTEuODQsNS41LTEuODRTMTUsNy4yNywxNSw3LjkxVjkuN2ExOC43NSwxOC43NSwwLDAsMSwyLS4yVjcuOTFjMC0yLjUyLTMuNzctMy44NC03LjUtMy44NFMyLDUuNCwyLDcuOTFWMTguMjRDMiwyMC40LDQuNzcsMjEuNjcsNy45LDIyVjIwQzUuNDYs''@;'; + put 'put ''MTkuNjgsNCwxOC43OCw0LDE4LjI0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwxMC44NWMtNC45MywwLTguNjUsMS44OC04LjY1LDQuMzhWMjcuNTRjMCwyLjUsMy43Miw0LjM4LDguNjUsNC4zOHM4LjY1''@;'; + put 'put ''LTEuODgsOC42NS00LjM4VjE1LjIzQzI2LjY1LDEyLjczLDIyLjkzLDEwLjg1LDE4LDEwLjg1Wm02LjY1LDcuNjdjLS44NSwxLTMuNDIsMi02LjY1LDJBMTQuNDksMTQuNDksMCwwLDEsMTQsMjB2MS40NmExNi4zMywxNi4zMywwLDAsMCw0LC40NywxMi43NiwxMi43NiwwLDAsMCw2LjY1LTEu''@;'; + put 'put ''NTZ2My4xMmMtLjg1LDEtMy40MiwyLTYuNjUsMmExNC40OSwxNC40OSwwLDAsMS00LS41M3YxLjQ2YTE2LjMzLDE2LjMzLDAsMCwwLDQsLjQ3LDEyLjc2LDEyLjc2LDAsMCwwLDYuNjUtMS41NnYyLjI5YzAsLjk1LTIuNjUsMi4zOC02LjY1LDIuMzhzLTYuNjUtMS40My02LjY1LTIuMzhWMTUu''@;'; + put 'put ''MjNjMC0uOTUsMi42NS0yLjM4LDYuNjUtMi4zOHM2LjY1LDEuNDMsNi42NSwyLjM4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik00LDE4LjI0VjcuOTFjMC0uNjUsMi4wOS0xLjg0LDUuNS0xLjg0UzE1LDcuMjcs''@;'; + put 'put ''MTUsNy45MVY5LjdhMTguNzUsMTguNzUsMCwwLDEsMi0uMlY3LjkxYzAtMi41Mi0zLjc3LTMuODQtNy41LTMuODRTMiw1LjQsMiw3LjkxVjE4LjI0QzIsMjAuNCw0Ljc3LDIxLjY3LDcuOSwyMlYyMEM1LjQ2LDE5LjY4LDQsMTguNzgsNCwxOC4yNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1h''@;'; + put 'put ''bGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjQuNjUsMTguNTJjLS44NSwxLTMuNDIsMi02LjY1LDJBMTQuNDksMTQuNDksMCwwLDEsMTQsMjB2MS40NmExNi4zMywxNi4zMywwLDAsMCw0LC40NywxMi43NiwxMi43NiwwLDAs''@;'; + put 'put ''MCw2LjY1LTEuNTZ2My4xMmMtLjg1LDEtMy40MiwyLTYuNjUsMmExNC40OSwxNC40OSwwLDAsMS00LS41M3YxLjQ2YTE2LjMzLDE2LjMzLDAsMCwwLDQsLjQ3LDEyLjc2LDEyLjc2LDAsMCwwLDYuNjUtMS41NnYyLjI5YzAsLjk1LTIuNjUsMi4zOC02LjY1LDIuMzhzLTYuNjUtMS40My02LjY1''@;'; + put 'put ''LTIuMzhWMTUuMjNjMC0uOTUsMi42NS0yLjM4LDYuNjUtMi4zOGwuNzUsMGEzLjY5LDMuNjksMCwwLDEtLjA4LTJsLS42NiwwYy00LjkzLDAtOC42NSwxLjg4LTguNjUsNC4zOFYyNy41NGMwLDIuNSwzLjcyLDQuMzgsOC42NSw0LjM4czguNjUtMS44OCw4LjY1LTQuMzhWMTUuNGgtMloiIGNs''@;'; + put 'put ''YXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIsNC44Yy0xLjc1LjYzLTMsMS42OC0zLDMuMTJWOS41bC4yNSwwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0''@;'; + put 'put ''bGluZS1wYXRoLTMtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy42OCwxNS40SDMydjIuODRjMCwuNTQtMS40NiwxLjQ0LTMuOSwxLjczdjJjMy4xMy0uMzIsNS45LTEuNiw1LjktMy43NVYxNS4zOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91''@;'; + put 'put ''dGxpbmUtcGF0aC00LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiBj''@;'; + put 'put ''bGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTQsMTguMjRWNy45MWMwLS42NSwyLjA5LTEuODQsNS41LTEuODRTMTUsNy4yNywxNSw3LjkxVjkuN2ExOC43NSwxOC43''@;'; + put 'put ''NSwwLDAsMSwyLS4yVjcuOTFjMC0yLjUyLTMuNzctMy44NC03LjUtMy44NFMyLDUuNCwyLDcuOTFWMTguMjRDMiwyMC40LDQuNzcsMjEuNjcsNy45LDIyVjIwQzUuNDYsMTkuNjgsNCwxOC43OCw0LDE4LjI0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBh''@;'; + put 'put ''dGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMTAuODVjLTQuOTMsMC04LjY1LDEuODgtOC42NSw0LjM4VjI3LjU0YzAsMi41LDMuNzIsNC4zOCw4LjY1LDQuMzhzOC42NS0xLjg4LDguNjUtNC4zOFYxNS4yM0MyNi42NSwxMi43MywyMi45MywxMC44NSwxOCwxMC44''@;'; + put 'put ''NVptNi42NSw3LjY3Yy0uODUsMS0zLjQyLDItNi42NSwyQTE0LjQ5LDE0LjQ5LDAsMCwxLDE0LDIwdjEuNDZhMTYuMzMsMTYuMzMsMCwwLDAsNCwuNDcsMTIuNzYsMTIuNzYsMCwwLDAsNi42NS0xLjU2djMuMTJjLS44NSwxLTMuNDIsMi02LjY1LDJhMTQuNDksMTQuNDksMCwwLDEtNC0uNTN2''@;'; + put 'put ''MS40NmExNi4zMywxNi4zMywwLDAsMCw0LC40NywxMi43NiwxMi43NiwwLDAsMCw2LjY1LTEuNTZ2Mi4yOWMwLC45NS0yLjY1LDIuMzgtNi42NSwyLjM4cy02LjY1LTEuNDMtNi42NS0yLjM4VjE1LjIzYzAtLjk1LDIuNjUtMi4zOCw2LjY1LTIuMzhzNi42NSwxLjQzLDYuNjUsMi4zOFoiIGNs''@;'; + put 'put ''YXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIxLDcuOTFjMC0uMzMuNTUtLjgsMS41NC0xLjE4LDAtLjI0LDAtLjQ4LDAtLjczYTcuNTIsNy41MiwwLDAsMSwuMTQtMS40MUMyMC41NSw1LjE5''@;'; + put 'put ''LDE5LDYuMywxOSw3LjkxVjkuNWExOC43NSwxOC43NSwwLDAsMSwyLC4yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIsMTMuMjJ2NWMwLC41NC0xLjQ2LDEuNDQtMy45LDEuNzN2''@;'; + put 'put ''MmMzLjEzLS4zMiw1LjktMS42LDUuOS0zLjc1di01LjlBNy40NSw3LjQ1LDAsMCwxLDMyLDEzLjIyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNs''@;'; + put 'put ''YXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2LjUsNC4wOEMyMi43Nyw0LjA4LDE5LDUuNCwxOSw3LjkxVjkuNDhjNS4zLjI2LDksMi42LDksNS43NnY2LjdsLjA1LjA2''@;'; + put 'put ''YzMuMTMtLjMyLDUuOS0xLjYsNS45LTMuNzVWNy45MUMzNCw1LjQsMzAuMjMsNC4wOCwyNi41LDQuMDhaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTcsOS40OFY3LjkxYzAtMi41Mi0zLjc3LTMuODQtNy41LTMuODRT''@;'; + put 'put ''Miw1LjQsMiw3LjkxVjE4LjI0QzIsMjAuNCw0Ljc3LDIxLjY3LDcuOSwyMkw4LDIxLjkzdi02LjdDOCwxMi4wOCwxMS43LDkuNzQsMTcsOS40OFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwxMC44NWMtNC45Myww''@;'; + put 'put ''LTguNjUsMS44OC04LjY1LDQuMzhWMjcuNTRjMCwyLjUsMy43Miw0LjM4LDguNjUsNC4zOHM4LjY1LTEuODgsOC42NS00LjM4VjI1LjM4QTEzLjU4LDEzLjU4LDAsMCwxLDE4LDI4YTE2Ljc3LDE2Ljc3LDAsMCwxLTYtMVYyNS4yN2ExNC41LDE0LjUsMCwwLDAsNiwxLjE3YzQuMjEsMCw3LjY1''@;'; + put 'put ''LTEuMjMsOC42My0zLjIzVjIwLjQ3QzI0LjgsMjIsMjEuNzIsMjMsMTgsMjNhMTYuNzcsMTYuNzcsMCwwLDEtNi0xVjIwLjIzYTE0LjUsMTQuNSwwLDAsMCw2LDEuMTdjNC4yMSwwLDcuNjUtMS4xMSw4LjYzLTMuMTFWMTUuMjNDMjYuNjUsMTIuNzMsMjIuOTMsMTAuODUsMTgsMTAuODVaIiBj''@;'; + put 'put ''bGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTcsOS40OFY3LjkxYzAtMi41Mi0zLjc3LTMuODQtNy41LTMuODRTMiw1LjQsMiw3LjkxVjE4LjI0QzIsMjAuNCw0Ljc3LDIxLjY3LDcuOSwyMkw4LDIxLjkzdi02LjdDOCwxMi4w''@;'; + put 'put ''OCwxMS43LDkuNzQsMTcsOS40OFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOSwxMy41NmEzLjY4LDMuNjgsMCwwLDEtLjM5LTIuN2wtLjY2LDBjLTQuOTMsMC04LjY1LDEuODgtOC42''@;'; + put 'put ''NSw0LjM4VjI3LjU0YzAsMi41LDMuNzIsNC4zOCw4LjY1LDQuMzhzOC42NS0xLjg4LDguNjUtNC4zOFYyNS4zOEExMy41OCwxMy41OCwwLDAsMSwxOCwyOGExNi43NywxNi43NywwLDAsMS02LTFWMjUuMjdhMTQuNSwxNC41LDAsMCwwLDYsMS4xN2M0LjIxLDAsNy42NS0xLjIzLDguNjMtMy4y''@;'; + put 'put ''M1YyMC40N0MyNC44LDIyLDIxLjcyLDIzLDE4LDIzYTE2Ljc3LDE2Ljc3LDAsMCwxLTYtMVYyMC4yM2ExNC41LDE0LjUsMCwwLDAsNiwxLjE3YzQuMjEsMCw3LjY1LTEuMTEsOC42My0zLjExVjE1LjRIMjIuMjNBMy42OSwzLjY5LDAsMCwxLDE5LDEzLjU2WiIgY2xhc3M9ImNsci1pLXNvbGlk''@;'; + put 'put ''LS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIyLDQuOGMtMS43NS42My0zLDEuNjgtMywzLjEyVjkuNDhsLjI3LDBaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0zLS1hbGVydGVkIi8+''@;'; + put 'put ''XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuNjgsMTUuNEgyOHY2LjUzbC4wNS4wNmMzLjEzLS4zMiw1LjktMS42LDUuOS0zLjc1VjE1LjM4WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtNC0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0i''@;'; + put 'put ''TTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtNS0t''@;'; + put 'put ''YWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE3LDkuNDhWNy45MWMwLTIuNTItMy43Ny0zLjg0LTcuNS0zLjg0UzIsNS40LDIsNy45MVYxOC4yNEMyLDIwLjQsNC43NywyMS42Nyw3LjksMjJMOCwyMS45M3YtNi43QzgsMTIuMDgsMTEuNyw5Ljc0LDE3LDku''@;'; + put 'put ''NDhaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDEwLjg1Yy00LjkzLDAtOC42NSwxLjg4LTguNjUsNC4zOFYyNy41NGMwLDIuNSwzLjcyLDQuMzgsOC42NSw0LjM4czguNjUtMS44OCw4''@;'; + put 'put ''LjY1LTQuMzhWMjUuMzhBMTMuNTgsMTMuNTgsMCwwLDEsMTgsMjhhMTYuNzcsMTYuNzcsMCwwLDEtNi0xVjI1LjI3YTE0LjUsMTQuNSwwLDAsMCw2LDEuMTdjNC4yMSwwLDcuNjUtMS4yMyw4LjYzLTMuMjNWMjAuNDdDMjQuOCwyMiwyMS43MiwyMywxOCwyM2ExNi43NywxNi43NywwLDAsMS02''@;'; + put 'put ''LTFWMjAuMjNhMTQuNSwxNC41LDAsMCwwLDYsMS4xN2M0LjIxLDAsNy42NS0xLjExLDguNjMtMy4xMVYxNS4yM0MyNi42NSwxMi43MywyMi45MywxMC44NSwxOCwxMC44NVoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAg''@;'; + put 'put ''ICAgICA8cGF0aCBkPSJNMjIuNSw2YTcuNTIsNy41MiwwLDAsMSwuMTQtMS40QzIwLjU1LDUuMTksMTksNi4zLDE5LDcuOTFWOS40OGExNS4zMywxNS4zMywwLDAsMSw1LDFBNy40Niw3LjQ2LDAsMCwxLDIyLjUsNloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBh''@;'; + put 'put ''dGgtMy0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAsMTMuNDlBNy40Nyw3LjQ3LDAsMCwxLDI3LjM1LDEzYTQsNCwwLDAsMSwuNywyLjIzdjYuN2wuMDUuMDZjMy4xMy0uMzIsNS45LTEuNiw1LjktMy43NVYxMi4zM0E3LjQ2LDcuNDYsMCwwLDEsMzAsMTMuNDlaIiBjbGFz''@;'; + put 'put ''cz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTQtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI1Ljk5IiByPSI1IiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTUtLWJhZGdlZCBjbHItaS1iYWRnZSIv''@;'; + put 'put ''PlxuICAgICAgICAnKSxMLkNsclNoYXBlUmVzb3VyY2VQb29sPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMy42OCwxNS40SDMxLjczYTE0LDE0LDAsMCwxLC4yMiwxLjZIMTcuNDlMOC4zLDI4LjA3QTE0LDE0LDAsMCwxLDIyLjA5LDQuNjJsMS0xLjc2QTE2LDE2LDAsMSwwLDM0LDE4''@;'; + put 'put ''YTE2LDE2LDAsMCwwLS4yMy0yLjYxWk0xOCwzMmExMy45MSwxMy45MSwwLDAsMS04LjE2LTIuNjVMMTguNDMsMTlIMzEuOTVBMTQsMTQsMCwwLDEsMTgsMzJaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAgICAg''@;'; + put 'put ''ICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWkt''@;'; + put 'put ''b3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJaTTQsMThhMTQsMTQsMCwwLDEsMjcuOTUtMUgxNy40OUw4LjMsMjguMDdBMTQsMTQsMCwwLDEsNCwxOFpNMTgs''@;'; + put 'put ''MzJhMTMuOTEsMTMuOTEsMCwwLDEtOC4xNi0yLjY1TDE4LjQzLDE5SDMxLjk1QTE0LDE0LDAsMCwxLDE4LDMyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMS4yLDEzLjRhMTMuOTEsMTMuOTEsMCwwLDEsLjc1''@;'; + put 'put ''LDMuNkgxNy40OUw4LjMsMjguMDdBMTQsMTQsMCwwLDEsMjIuNjEsNC44YTcuNDMsNy40MywwLDAsMSwuNTgtMS45MiwxNi4wNiwxNi4wNiwwLDEsMCw5LjkzLDkuOTNBNy40Myw3LjQzLDAsMCwxLDMxLjIsMTMuNFpNMTgsMzJhMTMuOTEsMTMuOTEsMCwwLDEtOC4xNi0yLjY1TDE4LjQzLDE5''@;'; + put 'put ''SDMxLjk1QTE0LDE0LDAsMCwxLDE4LDMyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWkt''@;'; + put 'put ''b3V0bGluZS1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTguNTcsMzAuOUExNiwxNiwwLDAsMCwzMy45NSwxOUgxOC40M1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0z''@;'; + put 'put ''My45NSwxN0ExNiwxNiwwLDEsMCw3LDI5LjZMMTcuNDksMTdaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNOC41NywzMC45QTE2LDE2LDAsMCwwLDMzLjk1LDE5SDE4LjQzWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRn''@;'; + put 'put ''ZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy45NSwxN2ExNS45MSwxNS45MSwwLDAsMC0uODQtNC4xOCw3LjQ5LDcuNDksMCwwLDEtOS45Mi05Ljk0QTE2LDE2LDAsMCwwLDcsMjkuNkwxNy40OSwxN1oiIGNsYXNzPSJjbHItaS1zb2xp''@;'; + put 'put ''ZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICAgICA8''@;'; + put 'put ''cGF0aCBkPSJNOC41NywzMC45QTE2LDE2LDAsMCwwLDMzLjk1LDE5SDE4LjQzWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLjk1LDE3YTE2LDE2LDAsMCwwLS4xOC0xLjYxSDIyLjIz''@;'; + put 'put ''QTMuNjgsMy42OCwwLDAsMSwxOSw5Ljg5bDQuMDYtN0ExNiwxNiwwLDAsMCw3LDI5LjZMMTcuNDksMTdaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUEx''@;'; + put 'put ''LjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0zLS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+''@;'; + put 'put ''XG4gICAgICAgICcpLEwuQ2xyU2hhcGVTaGllbGRDaGVjaz0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzEuMjUsNy40YTQzLjc5LDQzLjc5LDAsMCwxLTYuNjItMi4zNSw0NSw0NSwwLDAsMS02LjA4LTMuMjFMMTgsMS41bC0uNTQuMzVhNDUsNDUsMCwwLDEtNi4wOCwzLjIxQTQzLjc5''@;'; + put 'put ''LDQzLjc5LDAsMCwxLDQuNzUsNy40TDQsNy41OXY4LjM0YzAsMTMuMzksMTMuNTMsMTguNCwxMy42NiwxOC40NWwuMzQuMTIuMzQtLjEyYy4xNCwwLDEzLjY2LTUuMDUsMTMuNjYtMTguNDVWNy41OVpNMzAsMTUuOTNjMCwxMS0xMCwxNS42MS0xMiwxNi40My0yLS44Mi0xMi01LjQ0LTEyLTE2''@;'; + put 'put ''LjQzVjkuMTRhNDcuNTQsNDcuNTQsMCwwLDAsNi4xOC0yLjI1LDQ4LjIzLDQ4LjIzLDAsMCwwLDUuODItMyw0OC4yMyw0OC4yMywwLDAsMCw1LjgyLDNBNDcuNTQsNDcuNTQsMCwwLDAsMzAsOS4xNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gICAg''@;'; + put 'put ''ICAgICAgICA8cGF0aCBkPSJNMTAuODgsMTYuODdhMSwxLDAsMCwwLTEuNDEsMS40MWw2LDZMMjYuNCwxMy43N0ExLDEsMCwwLDAsMjUsMTIuMzNsLTkuNDcsOS4xOVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJN''@;'; + put 'put ''MzEuMjUsNy40YTQzLjc5LDQzLjc5LDAsMCwxLTYuNjItMi4zNSw0NSw0NSwwLDAsMS02LjA4LTMuMjFMMTgsMS41bC0uNTQuMzVhNDUsNDUsMCwwLDEtNi4wOCwzLjIxQTQzLjc5LDQzLjc5LDAsMCwxLDQuNzUsNy40TDQsNy41OXY4LjM0YzAsMTMuMzksMTMuNTMsMTguNCwxMy42NiwxOC40''@;'; + put 'put ''NWwuMzQuMTIuMzQtLjEyYy4xNCwwLDEzLjY2LTUuMDUsMTMuNjYtMTguNDVWNy41OVptLTQuNTcsNi42NUwxNS41MSwyNC45LDkuMTksMTguNTdhMS40LDEuNCwwLDAsMSwyLTJMMTUuNTQsMjEsMjQuNzMsMTJhMS40LDEuNCwwLDEsMSwyLDJaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWkt''@;'; + put 'put ''c29saWQtcGF0aC0xIi8+XG4gICAgICAgICcpLEwuQ2xyU2hhcGVTaGllbGQ9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMxLjI1LDcuNGE0My43OSw0My43OSwwLDAsMS02LjYyLTIuMzUsNDUsNDUsMCwwLDEtNi4wOC0zLjIxTDE4LDEuNWwtLjU0LjM1YTQ1LDQ1LDAsMCwxLTYuMDgs''@;'; + put 'put ''My4yMUE0My43OSw0My43OSwwLDAsMSw0Ljc1LDcuNEw0LDcuNTl2OC4zNGMwLDEzLjM5LDEzLjUzLDE4LjQsMTMuNjYsMTguNDVsLjM0LjEyLjM0LS4xMmMuMTQsMCwxMy42Ni01LjA1LDEzLjY2LTE4LjQ1VjcuNTlaTTMwLDE1LjkzYzAsMTEtMTAsMTUuNjEtMTIsMTYuNDMtMi0uODItMTIt''@;'; + put 'put ''NS40NC0xMi0xNi40M1Y5LjE0YTQ3LjU0LDQ3LjU0LDAsMCwwLDYuMTgtMi4yNSw0OC4yMyw0OC4yMywwLDAsMCw1LjgyLTMsNDguMjMsNDguMjMsMCwwLDAsNS44MiwzQTQ3LjU0LDQ3LjU0LDAsMCwwLDMwLDkuMTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgt''@;'; + put 'put ''MSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLDE1LjR2LjUzYzAsMTEtMTAsMTUuNjEtMTIsMTYuNDMtMi0uODItMTItNS40NC0xMi0xNi40M1Y5LjE0YTQ3LjU0LDQ3LjU0LDAsMCwwLDYuMTgtMi4yNSw0OC4yMyw0OC4yMywwLDAsMCw1LjgyLTNjMSwuNjQsMi4yLDEuMjcsMy40Mywx''@;'; + put 'put ''Ljg5bDEtMS43NGE0MS4xLDQxLjEsMCwwLDEtMy44OS0yLjE4TDE4LDEuNWwtLjU0LjM1YTQ1LDQ1LDAsMCwxLTYuMDgsMy4yMUE0My43OSw0My43OSwwLDAsMSw0Ljc1LDcuNEw0LDcuNTl2OC4zNGMwLDEzLjM5LDEzLjUzLDE4LjQsMTMuNjYsMTguNDVsLjM0LjEyLjM0LS4xMmMuMTQsMCwx''@;'; + put 'put ''My42Ni01LjA1LDEzLjY2LTE4LjQ1VjE1LjRaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4''@;'; + put 'put ''QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0z''@;'; + put 'put ''MCwxMy41djIuNDNjMCwxMS0xMCwxNS42MS0xMiwxNi40My0yLS44Mi0xMi01LjQ0LTEyLTE2LjQzVjkuMTRhNDcuNTQsNDcuNTQsMCwwLDAsNi4xOC0yLjI1LDQ4LjIzLDQ4LjIzLDAsMCwwLDUuODItMyw0Ni4xOSw0Ni4xOSwwLDAsMCw0LjUxLDIuNDJjMC0uMSwwLS4xOSwwLS4yOWE3LjQ5''@;'; + put 'put ''LDcuNDksMCwwLDEsLjIzLTEuODMsNDEuNjEsNDEuNjEsMCwwLDEtNC4xOS0yLjMzTDE4LDEuNWwtLjU0LjM1YTQ1LDQ1LDAsMCwxLTYuMDgsMy4yMUE0My43OSw0My43OSwwLDAsMSw0Ljc1LDcuNEw0LDcuNTl2OC4zNGMwLDEzLjM5LDEzLjUzLDE4LjQsMTMuNjYsMTguNDVsLjM0LjEyLjM0''@;'; + put 'put ''LS4xMmMuMTQsMCwxMy42Ni01LjA1LDEzLjY2LTE4LjQ1VjEzLjIyQTcuNDksNy40OSwwLDAsMSwzMCwxMy41WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9''@;'; + put 'put ''IjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMxLjI1LDcuNGE0My43OSw0My43OSwwLDAsMS02LjYyLTIuMzUsNDUsNDUsMCwwLDEtNi4wOC0zLjIxTDE4LDEu''@;'; + put 'put ''NWwtLjU0LjM1YTQ1LDQ1LDAsMCwxLTYuMDgsMy4yMUE0My43OSw0My43OSwwLDAsMSw0Ljc1LDcuNEw0LDcuNTl2OC4zNGMwLDEzLjM5LDEzLjUzLDE4LjQsMTMuNjYsMTguNDVsLjM0LjEyLjM0LS4xMmMuMTQsMCwxMy42Ni01LjA1LDEzLjY2LTE4LjQ1VjcuNTlaIiBjbGFzcz0iY2xyLWkt''@;'; + put 'put ''c29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIuMjMsMTUuNEEzLjY4LDMuNjgsMCwwLDEsMTksOS44OUwyMi40Myw0YTQxLjEsNDEuMSwwLDAsMS0zLjg5LTIuMThMMTgsMS41bC0uNTQuMzVhNDUsNDUsMCwwLDEtNi4wOCwzLjIxQTQzLjc5LDQz''@;'; + put 'put ''Ljc5LDAsMCwxLDQuNzUsNy40TDQsNy41OXY4LjM0YzAsMTMuMzksMTMuNTMsMTguNCwxMy42NiwxOC40NWwuMzQuMTIuMzQtLjEyYy4xNCwwLDEzLjY2LTUuMDUsMTMuNjYtMTguNDVWMTUuNFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0''@;'; + put 'put ''ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1zb2xpZC0t''@;'; + put 'put ''YWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMCwxMy41YTcuNDcsNy40NywwLDAsMS03LjI3LTkuMzMsNDEuNjEsNDEuNjEsMCwwLDEtNC4xOS0yLjMzTDE4LDEuNWwtLjU0LjM1YTQ1LDQ1LDAsMCwxLTYu''@;'; + put 'put ''MDgsMy4yMUE0My43OSw0My43OSwwLDAsMSw0Ljc1LDcuNEw0LDcuNTl2OC4zNGMwLDEzLjM5LDEzLjUzLDE4LjQsMTMuNjYsMTguNDVsLjM0LjEyLjM0LS4xMmMuMTQsMCwxMy42Ni01LjA1LDEzLjY2LTE4LjQ1VjEzLjIyQTcuNDksNy40OSwwLDAsMSwzMCwxMy41WiIgY2xhc3M9ImNsci1p''@;'; + put 'put ''LXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAg''@;'; + put 'put ''JyksTC5DbHJTaGFwZVNoaWVsZFg9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMxLjI1LDcuNGE0My43OSw0My43OSwwLDAsMS02LjYyLTIuMzUsNDUsNDUsMCwwLDEtNi4wOC0zLjIxTDE4LDEuNWwtLjU0LjM1YTQ1LDQ1LDAsMCwxLTYuMDgsMy4yMUE0My43OSw0My43OSwwLDAsMSw0''@;'; + put 'put ''Ljc1LDcuNEw0LDcuNTl2OC4zNGMwLDEzLjM5LDEzLjUzLDE4LjQsMTMuNjYsMTguNDVsLjM0LjEyLjM0LS4xMmMuMTQsMCwxMy42Ni01LjA1LDEzLjY2LTE4LjQ1VjcuNTlaTTMwLDE1LjkzYzAsMTEtMTAsMTUuNjEtMTIsMTYuNDMtMi0uODItMTItNS40NC0xMi0xNi40M1Y5LjE0YTQ3LjU0''@;'; + put 'put ''LDQ3LjU0LDAsMCwwLDYuMTgtMi4yNSw0OC4yMyw0OC4yMywwLDAsMCw1LjgyLTMsNDguMjMsNDguMjMsMCwwLDAsNS44MiwzQTQ3LjU0LDQ3LjU0LDAsMCwwLDMwLDkuMTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGgg''@;'; + put 'put ''ZD0iTTIyLjgxLDEwLjc5LDE4LDE1LjYxbC00LjgxLTQuODFhMSwxLDAsMCwwLTEuNDEsMS40MUwxNi41OSwxN2wtNC44MSw0LjgxYTEsMSwwLDEsMCwxLjQxLDEuNDFMMTgsMTguNDNsNC44MSw0LjgxYTEsMSwwLDAsMCwxLjQxLTEuNDFMMTkuNDEsMTdsNC44MS00LjgxYTEsMSwwLDAsMC0x''@;'; + put 'put ''LjQxLTEuNDFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMxLjI1LDcuNGE0My43OSw0My43OSwwLDAsMS02LjYyLTIuMzUsNDUsNDUsMCwwLDEtNi4wOC0zLjIxTDE4LDEuNWwtLjU0LjM1YTQ1LDQ1LDAsMCwx''@;'; + put 'put ''LTYuMDgsMy4yMUE0My43OSw0My43OSwwLDAsMSw0Ljc1LDcuNEw0LDcuNTl2OC4zNGMwLDEzLjM5LDEzLjUzLDE4LjQsMTMuNjYsMTguNDVsLjM0LjEyLjM0LS4xMmMuMTQsMCwxMy42Ni01LjA1LDEzLjY2LTE4LjQ1VjcuNTlaTTI0LjUxLDIxLjU1YTEuNCwxLjQsMCwwLDEtMiwyTDE4LDE5''@;'; + put 'put ''bC00LjUzLDQuNTNhMS40MywxLjQzLDAsMCwxLTIsMCwxLjQsMS40LDAsMCwxLDAtMkwxNiwxN2wtNC41My00LjUzYTEuNCwxLjQsMCwxLDEsMi0yTDE4LDE1bDQuNTMtNC41M2ExLjQsMS40LDAsMCwxLDIsMkwyMCwxN1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEi''@;'; + put 'put ''Lz5cbiAgICAgICAgJyksTC5DbHJTaGFwZUltcG9ydD0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjgsNEgxNC44N0w4LDEwLjg2VjE1aDJWMTMuNjFoNy42MVY2SDI4VjMwSDhhMiwyLDAsMCwwLDIsMkgyOGEyLDIsMCwwLDAsMi0yVjZBMiwyLDAsMCwwLDI4LDRaTTE2LDEySDEwdi0u''@;'; + put 'put ''MzJMMTUuNyw2SDE2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMS45NCwyNi4yOGExLDEsMCwxLDAsMS40MSwxLjQxTDE5LDIybC01LjY4LTUuNjhhMSwxLDAsMCwwLTEuNDEsMS40MUwxNS4yLDIxSDNhMSwx''@;'; + put 'put ''LDAsMSwwLDAsMkgxNS4yM1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTEuOTQsMjYuMjhhMSwxLDAsMSwwLDEuNDEsMS40MUwxOSwyMmwtNS42OC01LjY4YTEsMSwwLDAsMC0xLjQxLDEuNDFMMTUuMiwyMUgz''@;'; + put 'put ''YTEsMSwwLDEsMCwwLDJIMTUuMjNaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4LDE1LjRWMzBIOGEyLDIsMCwwLDAsMiwySDI4YTIsMiwwLDAsMCwyLTJWMTUuNFoiIGNsYXNz''@;'; + put 'put ''PSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTAsMTMuNjFoNy42MVY2aDMuNjhsMS4xNS0ySDE0Ljg3TDgsMTAuODZWMTVoMlptMC0xLjkyTDE1LjcsNkgxNnY2SDEwWiIgY2xhc3M9ImNsci1p''@;'; + put 'put ''LW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4''@;'; + put 'put ''LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTEuOTQsMjYuMjhhMSwxLDAsMSwwLDEuNDEsMS40MUwxOSwyMmwtNS42''@;'; + put 'put ''OC01LjY4YTEsMSwwLDAsMC0xLjQxLDEuNDFMMTUuMiwyMUgzYTEsMSwwLDEsMCwwLDJIMTUuMjNaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOCwxMy4yMlYzMEg4YTIsMiwwLDAs''@;'; + put 'put ''MCwyLDJIMjhhMiwyLDAsMCwwLDItMlYxMy41QTcuNDksNy40OSwwLDAsMSwyOCwxMy4yMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTEwLDEzLjYxaDcuNjFWNkgyMi41YTcuNDks''@;'; + put 'put ''Ny40OSwwLDAsMSwuMjgtMkgxNC44N0w4LDEwLjg2VjE1aDJabTAtMS45MkwxNS43LDZIMTZ2NkgxMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBj''@;'; + put 'put ''bGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zLDIxYTEsMSwwLDEsMCwwLDJIOFYyMVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAg''@;'; + put 'put ''ICAgICAgICAgIDxwYXRoIGQ9Ik0yOCw0SDE0Ljg3TDgsMTAuODZWMjFIMTUuMmwtMy4yNS0zLjI1YTEsMSwwLDAsMSwxLjQxLTEuNDFMMTksMjJsLTUuNjgsNS42OGExLDEsMCwwLDEtMS40MS0xLjQxTDE1LjIzLDIzSDh2N2EyLDIsMCwwLDAsMiwySDI4YTIsMiwwLDAsMCwyLTJWNkEyLDIs''@;'; + put 'put ''MCwwLDAsMjgsNFpNMTYsMTJIMTB2LS4zMkwxNS42OSw2SDE2WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMsMjFhMSwxLDAsMSwwLDAsMkg4VjIxWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNv''@;'; + put 'put ''bGlkLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIyLjIzLDE1LjRBMy42OCwzLjY4LDAsMCwxLDE5LDkuODlMMjIuNDUsNEgxNC44N0w4LDEwLjg2VjIxSDE1LjJsLTMuMjUtMy4yNWExLDEsMCwwLDEsMS40MS0xLjQxTDE5LDIybC01LjY4LDUuNjhhMSwxLDAs''@;'; + put 'put ''MCwxLTEuNDEtMS40MUwxNS4yMywyM0g4djdhMiwyLDAsMCwwLDIsMkgyOGEyLDIsMCwwLDAsMi0yVjE1LjRaTTE2LDEySDEwdi0uMzJMMTUuNjksNkgxNloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxw''@;'; + put 'put ''YXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1w''@;'; + put 'put ''YXRoLTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zLDIxYTEsMSwwLDEsMCwwLDJIOFYyMVoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIuNSw2''@;'; + put 'put ''YTcuNDksNy40OSwwLDAsMSwuMjgtMkgxNC44N0w4LDEwLjg2VjIxSDE1LjJsLTMuMjUtMy4yNWExLDEsMCwwLDEsMS40MS0xLjQxTDE5LDIybC01LjY4LDUuNjhhMSwxLDAsMCwxLTEuNDEtMS40MUwxNS4yMywyM0g4djdhMiwyLDAsMCwwLDIsMkgyOGEyLDIsMCwwLDAsMi0yVjEzLjVBNy41''@;'; + put 'put ''LDcuNSwwLDAsMSwyMi41LDZaTTE2LDEySDEwdi0uMzJMMTUuNjksNkgxNloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1zb2xpZC0t''@;'; + put 'put ''YmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICcpLEwuQ2xyU2hhcGVFeHBvcnQ9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTYsMTMuNjFoNy42MVY2SDI0djguMzhoMlY2YTIsMiwwLDAsMC0yLTJIMTAuODdMNCwxMC44N1YzMGEy''@;'; + put 'put ''LDIsMCwwLDAsMiwySDI0YTIsMiwwLDAsMCwyLTJINlptMC0xLjkyTDExLjY5LDZIMTJ2Nkg2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOC4zMiwxNi4zNWExLDEsMCwwLDAtMS40MSwxLjQxTDMwLjE2LDIx''@;'; + put 'put ''SDE4YTEsMSwwLDAsMCwwLDJIMzAuMTlsLTMuMjgsMy4yOGExLDEsMCwxLDAsMS40MSwxLjQxTDM0LDIyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOC4zMiwxNi4zNWExLDEsMCwwLDAtMS40MSwxLjQxTDMw''@;'; + put 'put ''LjE2LDIxSDE4YTEsMSwwLDAsMCwwLDJIMzAuMTlsLTMuMjgsMy4yOGExLDEsMCwxLDAsMS40MSwxLjQxTDM0LDIyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik02LDEzLjYxaDcu''@;'; + put 'put ''NjFWNmg3LjY4bDEuMTUtMkgxMC44N0w0LDEwLjg3VjMwYTIsMiwwLDAsMCwyLDJIMjRhMiwyLDAsMCwwLDItMkg2Wm0wLTEuOTJMMTEuNjksNkgxMnY2SDZaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIvPlxuICAgICAgICAg''@;'; + put 'put ''ICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWkt''@;'; + put 'put ''b3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOC4zMiwxNi4zNWExLDEsMCwwLDAtMS40MSwxLjQxTDMwLjE2LDIxSDE4YTEsMSwwLDAsMCwwLDJIMzAuMTlsLTMuMjgsMy4yOGExLDEsMCwxLDAsMS40MSwxLjQxTDM0LDIyWiIg''@;'; + put 'put ''Y2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYsMTIuMzRhNy41Myw3LjUzLDAsMCwxLTItMS44NXYzLjg5aDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxp''@;'; + put 'put ''bmUtcGF0aC0yLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik02LDEzLjYxaDcuNjFWNkgyMi41YTcuNDksNy40OSwwLDAsMSwuMjgtMkgxMC44N0w0LDEwLjg3VjMwYTIsMiwwLDAsMCwyLDJIMjRhMiwyLDAsMCwwLDItMkg2Wm0wLTEuOTJMMTEuNjksNkgxMnY2SDZaIiBjbGFz''@;'; + put 'put ''cz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIGNsci1pLWJh''@;'; + put 'put ''ZGdlIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTcsMjJhMSwxLDAsMCwxLDEtMWg4VjZhMiwyLDAsMCwwLTItMkgxMC44N0w0LDEwLjg2VjMwYTIsMiwwLDAsMCwyLDJIMjRhMiwyLDAsMCwwLDItMlYyM0gxOEExLDEsMCwwLDEsMTcsMjJaTTEyLDEySDZ2LS4zMkwxMS42OSw2SDEyWiIg''@;'; + put 'put ''Y2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI5LjMyLDE2LjM1YTEsMSwwLDAsMC0xLjQxLDEuNDFMMzEuMTYsMjFIMjZ2Mmg1LjE5bC0zLjI4LDMuMjhhMSwxLDAsMSwwLDEuNDEsMS40MUwzNSwyMloiIGNsYXNzPSJjbHIt''@;'; + put 'put ''aS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOS4zMiwxNi4zNWExLDEsMCwwLDAtMS40MSwxLjQxTDMxLjE2LDIxSDI2djJoNS4xOWwtMy4yOCwzLjI4YTEsMSwwLDEsMCwxLjQxLDEuNDFMMzUsMjJaIiBjbGFzcz0iY2xyLWktc29saWQtLWFs''@;'; + put 'put ''ZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTcsMjJhMSwxLDAsMCwxLDEtMWg4VjE1LjRIMjIuMjNBMy42OCwzLjY4LDAsMCwxLDE5LDkuODlMMjIuNDUsNEgxMC44N0w0LDEwLjg2VjMwYTIsMiwwLDAsMCwyLDJIMjRhMiwyLDAs''@;'; + put 'put ''MCwwLDItMlYyM0gxOEExLDEsMCwwLDEsMTcsMjJaTTEyLDEySDZ2LS4zMkwxMS42OSw2SDEyWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwx''@;'; + put 'put ''LjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMy0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAg''@;'; + put 'put ''ICAgICAgICAgPHBhdGggZD0iTTI5LjMyLDE2LjM1YTEsMSwwLDAsMC0xLjQxLDEuNDFMMzEuMTYsMjFIMjZ2Mmg1LjE5bC0zLjI4LDMuMjhhMSwxLDAsMSwwLDEuNDEsMS40MUwzNSwyMloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIi8+''@;'; + put 'put ''XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTcsMjJhMSwxLDAsMCwxLDEtMWg4VjEyLjM0QTcuNDYsNy40NiwwLDAsMSwyMi43OCw0SDEwLjg3TDQsMTAuODZWMzBhMiwyLDAsMCwwLDIsMkgyNGEyLDIsMCwwLDAsMi0yVjIzSDE4QTEsMSwwLDAsMSwxNywyMlpNMTIsMTJINnYtLjMyTDExLjY5''@;'; + put 'put ''LDZIMTJaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWJhZGdlZCBjbHIt''@;'; + put 'put ''aS1iYWRnZSIvPlxuICAgICAgICAnKSxMLkNsclNoYXBlVXBsb2FkQ2xvdWQ9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMwLjMxLDEzYzAtLjEsMC0uMjEsMC0uMzJhMTAuMjYsMTAuMjYsMCwwLDAtMTAuNDUtMTAsMTAuNDcsMTAuNDcsMCwwLDAtOS42LDYuMUE5Ljc0LDkuNzQsMCww''@;'; + put 'put ''LDAsMS42LDE4LjQsOS42Miw5LjYyLDAsMCwwLDExLjI1LDI4SDE1VjI2SDExLjI1QTcuNjUsNy42NSwwLDAsMSwxMSwxMC43NGwuNjcsMCwuMjMtLjYzYTguNDMsOC40MywwLDAsMSw4LTUuNCw4LjI2LDguMjYsMCwwLDEsOC40NSw4LDcuNzUsNy43NSwwLDAsMSwwLC44bC0uMDguNzIuNjUu''@;'; + put 'put ''M0E2LDYsMCwwLDEsMjYuMzgsMjZIMjF2Mmg1LjM4YTgsOCwwLDAsMCwzLjkzLTE1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMi4yOCwyMS44NUExLDEsMCwwLDAsMjMsMjAuMTRsLTUtNS01LDVhMSwxLDAs''@;'; + put 'put ''MCwwLDEuNDEsMS40MUwxNywxOVYzMS4yNWExLDEsMCwxLDAsMiwwVjE5bDIuNTcsMi41N0ExLDEsMCwwLDAsMjIuMjgsMjEuODVaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIyLjI4LDIxLjg1QTEsMSwwLDAs''@;'; + put 'put ''MCwyMywyMC4xNGwtNS01LTUsNWExLDEsMCwwLDAsMS40MSwxLjQxTDE3LDE5VjMxLjI1YTEsMSwwLDEsMCwyLDBWMTlsMi41NywyLjU3QTEsMSwwLDAsMCwyMi4yOCwyMS44NVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIi8+''@;'; + put 'put ''XG4gICAgICAgICAgICA8cGF0aCBkPSJNMy42LDE4LjM4QTcuNzEsNy43MSwwLDAsMSwxMSwxMC43NGwuNjcsMCwuMjMtLjYzYTguNDMsOC40MywwLDAsMSw4LTUuNCw4LjgxLDguODEsMCwwLDEsMiwuMjVsMS0xLjhhMTAuOCwxMC44LDAsMCwwLTMuMDctLjQ1LDEwLjQ3LDEwLjQ3LDAsMCww''@;'; + put 'put ''LTkuNiw2LjFBOS43NCw5Ljc0LDAsMCwwLDEuNiwxOC40LDkuNjIsOS42MiwwLDAsMCwxMS4yNSwyOEgxNVYyNkgxMS4yNUE3LjY2LDcuNjYsMCwwLDEsMy42LDE4LjM4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiLz5cbiAg''@;'; + put 'put ''ICAgICAgICAgIDxwYXRoIGQ9Ik0zMi45LDE1LjRIMzAuMjFBNiw2LDAsMCwxLDI2LjM4LDI2SDIxdjJoNS4zOEE4LDgsMCwwLDAsMzIuOSwxNS40WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxw''@;'; + put 'put ''YXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxp''@;'; + put 'put ''bmUtcGF0aC00LS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIuMjgsMjEuODVBMSwxLDAsMCwwLDIzLDIwLjE0bC01LTUtNSw1YTEsMSwwLDAsMCwxLjQxLDEuNDFMMTcsMTlWMzEuMjVhMSwxLDAsMSwwLDIsMFYxOWwyLjU3LDIuNTdBMSwxLDAsMCww''@;'; + put 'put ''LDIyLjI4LDIxLjg1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAuOTIsMTMuNDRhNy4xMyw3LjEzLDAsMCwxLTIuNjMtLjE0YzAsLjA4LDAsLjE1LDAsLjIzbC0uMDguNzIuNjUu''@;'; + put 'put ''M0E2LDYsMCwwLDEsMjYuMzgsMjZIMjF2Mmg1LjM4YTgsOCwwLDAsMCw0LjU0LTE0LjU2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMy42LDE4LjM4QTcuNzEsNy43MSwwLDAsMSwx''@;'; + put 'put ''MSwxMC43NGwuNjcsMCwuMjMtLjYzYTguNDMsOC40MywwLDAsMSw4LTUuNCw4Ljc5LDguNzksMCwwLDEsMi42OC40Miw3LjQ1LDcuNDUsMCwwLDEsLjUtMS45NCwxMC43OSwxMC43OSwwLDAsMC0zLjE4LS40OCwxMC40NywxMC40NywwLDAsMC05LjYsNi4xQTkuNzQsOS43NCwwLDAsMCwxLjYs''@;'; + put 'put ''MTguNCw5LjYyLDkuNjIsMCwwLDAsMTEuMjUsMjhIMTVWMjZIMTEuMjVBNy42Niw3LjY2LDAsMCwxLDMuNiwxOC4zOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2''@;'; + put 'put ''IiByPSI1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgJyksTC5DbHJTaGFwZURvd25sb2FkQ2xvdWQ9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMwLjMxLDEzYzAtLjEsMC0uMjEs''@;'; + put 'put ''MC0uMzJhMTAuMjYsMTAuMjYsMCwwLDAtMTAuNDUtMTAsMTAuNDcsMTAuNDcsMCwwLDAtOS42LDYuMUE5LjY1LDkuNjUsMCwwLDAsMTAuODksMjhhMywzLDAsMCwxLDAtMkE3LjY1LDcuNjUsMCwwLDEsMTEsMTAuNzRsLjY3LDAsLjIzLS42M2E4LjQzLDguNDMsMCwwLDEsOC01LjQsOC4yNiw4''@;'; + put 'put ''LjI2LDAsMCwxLDguNDUsOCw3Ljc1LDcuNzUsMCwwLDEsMCwuOGwtLjA4LjcyLjY1LjNBNiw2LDAsMCwxLDI2LjM4LDI2SDI1LjA5YTMsMywwLDAsMSwwLDJoMS4yOGE4LDgsMCwwLDAsMy45My0xNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gICAg''@;'; + put 'put ''ICAgICAgICA8cGF0aCBkPSJNMjIuMjgsMjYuMDdhMSwxLDAsMCwwLS43MS4yOUwxOSwyOC45NFYxNi42OGExLDEsMCwxLDAtMiwwVjI4Ljk0bC0yLjU3LTIuNTdBMSwxLDAsMCwwLDEzLDI3Ljc4bDUsNSw1LTVhMSwxLDAsMCwwLS43MS0xLjcxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xy''@;'; + put 'put ''LWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMi4yOCwyNi4wN2ExLDEsMCwwLDAtLjcxLjI5TDE5LDI4Ljk0VjE2LjY4YTEsMSwwLDEsMC0yLDBWMjguOTRsLTIuNTctMi41N0ExLDEsMCwwLDAsMTMsMjcuNzhsNSw1LDUtNWExLDEsMCwwLDAtLjcxLTEuNzFa''@;'; + put 'put ''IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE5Ljg3LDQuNjlhOC44MSw4LjgxLDAsMCwxLDIsLjI1bDEtMS44YTEwLjgsMTAuOCwwLDAsMC0zLjA3LS40NSwxMC40NywxMC40Nyww''@;'; + put 'put ''LDAsMC05LjYsNi4xQTkuNjUsOS42NSwwLDAsMCwxMC44OSwyOGEzLDMsMCwwLDEsMC0yQTcuNjUsNy42NSwwLDAsMSwxMSwxMC43NGwuNjcsMCwuMjMtLjYzQTguNDMsOC40MywwLDAsMSwxOS44Nyw0LjY5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1w''@;'; + put 'put ''YXRoLTItLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMi45LDE1LjRIMzAuMjFBNiw2LDAsMCwxLDI2LjM4LDI2SDI1LjA5YTMsMywwLDAsMSwwLDJoMS4yOEE4LDgsMCwwLDAsMzIuOSwxNS40WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGlu''@;'; + put 'put ''ZS1wYXRoLTMtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNz''@;'; + put 'put ''PSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIuMjgsMjYuMDdhMSwxLDAsMCwwLS43MS4yOUwxOSwyOC45NFYxNi42OGExLDEsMCwxLDAtMiwwVjI4Ljk0bC0yLjU3LTIu''@;'; + put 'put ''NTdBMSwxLDAsMCwwLDEzLDI3Ljc4bDUsNSw1LTVhMSwxLDAsMCwwLS43MS0xLjcxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTkuODcsNC42OWE4Ljc5LDguNzksMCwwLDEsMi42''@;'; + put 'put ''OC40Miw3LjQ1LDcuNDUsMCwwLDEsLjUtMS45NCwxMC43OSwxMC43OSwwLDAsMC0zLjE4LS40OCwxMC40NywxMC40NywwLDAsMC05LjYsNi4xQTkuNjUsOS42NSwwLDAsMCwxMC44OSwyOGEzLDMsMCwwLDEsMC0yQTcuNjUsNy42NSwwLDAsMSwxMSwxMC43NGwuNjcsMCwuMjMtLjYzQTguNDMs''@;'; + put 'put ''OC40MywwLDAsMSwxOS44Nyw0LjY5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAuOTIsMTMuNDRhNy4xMyw3LjEzLDAsMCwxLTIuNjMtLjE0YzAsLjA4LDAsLjE1LDAsLjIzbC0u''@;'; + put 'put ''MDguNzIuNjUuM0E2LDYsMCwwLDEsMjYuMzgsMjZIMjUuMDlhMywzLDAsMCwxLDAsMmgxLjI4YTgsOCwwLDAsMCw0LjU0LTE0LjYxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIz''@;'; + put 'put ''MCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAnKSxMLkNsclNoYXBlUGx1Z2luPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yOS44MSwxNkgyOVY4LjgzYTIs''@;'; + put 'put ''MiwwLDAsMC0yLTJIMjFBNS4xNCw1LjE0LDAsMCwwLDE2LjUxLDIsNSw1LDAsMCwwLDExLDYuODNINGEyLDIsMCwwLDAtMiwyVjE3SDQuODFBMy4xMywzLjEzLDAsMCwxLDgsMTkuNjksMywzLDAsMCwxLDcuMjIsMjIsMywzLDAsMCwxLDUsMjNIMnY4LjgzYTIsMiwwLDAsMCwyLDJIMjdhMiwy''@;'; + put 'put ''LDAsMCwwLDItMlYyNmgxYTUsNSwwLDAsMCw1LTUuNTFBNS4xNSw1LjE1LDAsMCwwLDI5LjgxLDE2Wm0yLjQxLDdBMywzLDAsMCwxLDMwLDI0SDI3djcuODNINFYyNUg1YTUsNSwwLDAsMCw1LTUuNTFBNS4xNSw1LjE1LDAsMCwwLDQuODEsMTVINFY4LjgzaDlWN2EzLDMsMCwwLDEsMS0yLjIy''@;'; + put 'put ''QTMsMywwLDAsMSwxNi4zMSw0LDMuMTMsMy4xMywwLDAsMSwxOSw3LjE5VjguODNoOFYxOGgyLjgxQTMuMTMsMy4xMywwLDAsMSwzMywyMC42OSwzLDMsMCwwLDEsMzIuMjIsMjNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBh''@;'; + put 'put ''dGggZD0iTTI5LjgxLDE2SDI5di0uNkgyN1YxOGgyLjgxQTMuMTMsMy4xMywwLDAsMSwzMywyMC42OSwzLDMsMCwwLDEsMzIuMjIsMjMsMywzLDAsMCwxLDMwLDI0SDI3djcuODNINFYyNUg1YTUsNSwwLDAsMCw1LTUuNTFBNS4xNSw1LjE1LDAsMCwwLDQuODEsMTVINFY4LjgzaDlWN2EzLDMs''@;'; + put 'put ''MCwwLDEsMS0yLjIyQTMsMywwLDAsMSwxNi4zMSw0LDMuMTMsMy4xMywwLDAsMSwxOSw3LjE5VjguODNoLjY2TDIxLDYuNTlBNS4xMiw1LjEyLDAsMCwwLDE2LjUxLDIsNSw1LDAsMCwwLDExLDYuODNINGEyLDIsMCwwLDAtMiwyVjE3SDQuODFBMy4xMywzLjEzLDAsMCwxLDgsMTkuNjksMywz''@;'; + put 'put ''LDAsMCwxLDcuMjIsMjIsMywzLDAsMCwxLDUsMjNIMnY4LjgzYTIsMiwwLDAsMCwyLDJIMjdhMiwyLDAsMCwwLDItMlYyNmgxYTUsNSwwLDAsMCw1LTUuNTFBNS4xNSw1LjE1LDAsMCwwLDI5LjgxLDE2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRo''@;'; + put 'put ''LTEtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHIt''@;'; + put 'put ''aS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjkuODEsMTZIMjlWMTMuNDNhNy40NSw3LjQ1LDAsMCwxLTItLjU1VjE4aDIuODFBMy4xMywzLjEzLDAsMCwxLDMzLDIwLjY5LDMsMyww''@;'; + put 'put ''LDAsMSwzMi4yMiwyMywzLDMsMCwwLDEsMzAsMjRIMjd2Ny44M0g0VjI1SDVhNSw1LDAsMCwwLDUtNS41MUE1LjE1LDUuMTUsMCwwLDAsNC44MSwxNUg0VjguODNoOVY3YTMsMywwLDAsMSwxLTIuMjJBMywzLDAsMCwxLDE2LjMxLDQsMy4xMywzLjEzLDAsMCwxLDE5LDcuMTlWOC44M2g0LjA2''@;'; + put 'put ''YTcuNDQsNy40NCwwLDAsMS0uNTEtMkgyMUE1LjE0LDUuMTQsMCwwLDAsMTYuNTEsMiw1LDUsMCwwLDAsMTEsNi44M0g0YTIsMiwwLDAsMC0yLDJWMTdINC44MUEzLjEzLDMuMTMsMCwwLDEsOCwxOS42OSwzLDMsMCwwLDEsNy4yMiwyMiwzLDMsMCwwLDEsNSwyM0gydjguODNhMiwyLDAsMCww''@;'; + put 'put ''LDIsMkgyN2EyLDIsMCwwLDAsMi0yVjI2aDFhNSw1LDAsMCwwLDUtNS41MUE1LjE1LDUuMTUsMCwwLDAsMjkuODEsMTZaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0i''@;'; + put 'put ''NiIgcj0iNSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjkuODEsMTZIMjlWOC44M2EyLDIsMCwwLDAtMi0ySDIxQTUuMTQsNS4xNCwwLDAsMCwxNi41MSwyLDUs''@;'; + put 'put ''NSwwLDAsMCwxMSw2LjgzSDRhMiwyLDAsMCwwLTIsMlYxN0g0LjgxQTMuMTMsMy4xMywwLDAsMSw4LDE5LjY5LDMsMywwLDAsMSw3LjIyLDIyLDMsMywwLDAsMSw1LDIzSDJ2OC44M2EyLDIsMCwwLDAsMiwySDI3YTIsMiwwLDAsMCwyLTJWMjZoMWE1LDUsMCwwLDAsNS01LjUxQTUuMTUsNS4x''@;'; + put 'put ''NSwwLDAsMCwyOS44MSwxNloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOS44MSwxNkgyOXYtLjZIMjIuMjNBMy42OCwzLjY4LDAsMCwxLDE5LDkuODlMMjEsNi41OUE1LjEyLDUuMTIsMCwwLDAsMTYuNTEsMiw1LDUs''@;'; + put 'put ''MCwwLDAsMTEsNi44M0g0YTIsMiwwLDAsMC0yLDJWMTdINC44MUEzLjEzLDMuMTMsMCwwLDEsOCwxOS42OSwzLDMsMCwwLDEsNy4yMiwyMiwzLDMsMCwwLDEsNSwyM0gydjguODNhMiwyLDAsMCwwLDIsMkgyN2EyLDIsMCwwLDAsMi0yVjI2aDFhNSw1LDAsMCwwLDUtNS41MUE1LjE1LDUuMTUs''@;'; + put 'put ''MCwwLDAsMjkuODEsMTZaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCww''@;'; + put 'put ''LDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjkuODEsMTZIMjlWMTMuNDNhNy41''@;'; + put 'put ''LDcuNSwwLDAsMS02LjQ1LTYuNTlIMjFBNS4xNCw1LjE0LDAsMCwwLDE2LjUxLDIsNSw1LDAsMCwwLDExLDYuODNINGEyLDIsMCwwLDAtMiwyVjE3SDQuODFBMy4xMywzLjEzLDAsMCwxLDgsMTkuNjksMywzLDAsMCwxLDcuMjIsMjIsMywzLDAsMCwxLDUsMjNIMnY4LjgzYTIsMiwwLDAsMCwy''@;'; + put 'put ''LDJIMjdhMiwyLDAsMCwwLDItMlYyNmgxYTUsNSwwLDAsMCw1LTUuNTFBNS4xNSw1LjE1LDAsMCwwLDI5LjgxLDE2WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0i''@;'; + put 'put ''NSIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgJyksTC5DbHJTaGFwZUZsb3BweT0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjcuMzYsNEg2QTIsMiwwLDAsMCw0LDZWMzBhMiwyLDAsMCww''@;'; + put 'put ''LDIsMkgzMGEyLDIsMCwwLDAsMi0yVjguNzhaTTI1LDMwSDExVjIySDI1Wm01LDBIMjdWMjJhMiwyLDAsMCwwLTItMkgxMWEyLDIsMCwwLDAtMiwydjhINlY2aDR2NmEyLDIsMCwwLDAsMiwySDI0YTIsMiwwLDAsMCwyLTJIMTJWNkgyNi41MUwzMCw5LjU5WiIgY2xhc3M9ImNsci1pLW91dGxp''@;'; + put 'put ''bmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAsMTMuNWgwVjMwSDI3VjIyYTIsMiwwLDAsMC0yLTJIMTFhMiwyLDAsMCwwLTIsMnY4SDZWNmg0djZhMiwyLDAsMCwwLDIsMkgyNGEyLDIsMCwwLDAsMi0xLjY4bC0uNDMtLjNIMTJWNkgyMi41YTcu''@;'; + put 'put ''NDksNy40OSwwLDAsMSwuMjgtMkg2QTIsMiwwLDAsMCw0LDZWMzBhMiwyLDAsMCwwLDIsMkgzMGEyLDIsMCwwLDAsMi0yVjEzLjIyQTcuNDksNy40OSwwLDAsMSwzMCwxMy41Wk0yNSwzMEgxMVYyMkgyNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRo''@;'; + put 'put ''LTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMCwxNS40VjMwSDI3''@;'; + put 'put ''VjIyYTIsMiwwLDAsMC0yLTJIMTFhMiwyLDAsMCwwLTIsMnY4SDZWNmg0djZhMiwyLDAsMCwwLDIsMmg3LjM1YTMuNTQsMy41NCwwLDAsMS0uNzctMkgxMlY2aDkuMjlsMS4xNS0ySDZBMiwyLDAsMCwwLDQsNlYzMGEyLDIsMCwwLDAsMiwySDMwYTIsMiwwLDAsMCwyLTJWMTUuNFpNMjUsMzBI''@;'; + put 'put ''MTFWMjJIMjVaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwz''@;'; + put 'put ''NC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNy4zNiw0SDZBMiwyLDAsMCww''@;'; + put 'put ''LDQsNlYzMGEyLDIsMCwwLDAsMiwySDMwYTIsMiwwLDAsMCwyLTJWOC43OFpNMjYsMzBIMTBWMjEuNUExLjUsMS41LDAsMCwxLDExLjUsMjBoMTNBMS41LDEuNSwwLDAsMSwyNiwyMS41Wk0yNCwxNEgxMmEyLDIsMCwwLDEtMi0yVjZoMnY2SDI2QTIsMiwwLDAsMSwyNCwxNFoiIGNsYXNzPSJj''@;'; + put 'put ''bHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMCwxMy41YTcuNDYsNy40NiwwLDAsMS00LTEuMThBMiwyLDAsMCwxLDI0LDE0SDEyYTIsMiwwLDAsMS0yLTJWNmgydjZIMjUuNTRhNy40NSw3LjQ1LDAsMCwxLTIuNzYtOEg2QTIsMiwwLDAs''@;'; + put 'put ''MCw0LDZWMzBhMiwyLDAsMCwwLDIsMkgzMGEyLDIsMCwwLDAsMi0yVjEzLjIyQTcuNDksNy40OSwwLDAsMSwzMCwxMy41Wk0yNiwzMEgxMFYyMS41QTEuNSwxLjUsMCwwLDEsMTEuNSwyMGgxM0ExLjUsMS41LDAsMCwxLDI2LDIxLjVaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHIt''@;'; + put 'put ''aS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIyLjIz''@;'; + put 'put ''LDE1LjRBMy42OSwzLjY5LDAsMCwxLDE5LjM1LDE0SDEyYTIsMiwwLDAsMS0yLTJWNmgydjZoNi41OEEzLjY3LDMuNjcsMCwwLDEsMTksOS44OUwyMi40NSw0SDZBMiwyLDAsMCwwLDQsNlYzMGEyLDIsMCwwLDAsMiwySDMwYTIsMiwwLDAsMCwyLTJWMTUuNFpNMjYsMzBIMTBWMjEuNUExLjUs''@;'; + put 'put ''MS41LDAsMCwxLDExLjUsMjBoMTNBMS41LDEuNSwwLDAsMSwyNiwyMS41WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIy''@;'; + put 'put ''LjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAgICAgICAnKSxMLkNs''@;'; + put 'put ''clNoYXBlQ29tcHV0ZXI9KDAsRS5jbHJJY29uU1ZHKSgnPHBvbHlnb24gcG9pbnRzPSI5LjYgMjIuODggOS42IDEwLjYgMjQuNCAxMC42IDI1Ljk4IDkgOCA5IDggMjIuODggOS42IDIyLjg4IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAg''@;'; + put 'put ''ICAgPHBhdGggZD0iTTYsN0gzMFYyM2gyVjYuNUExLjUsMS41LDAsMCwwLDMwLjUsNUg1LjVBMS41LDEuNSwwLDAsMCw0LDYuNVYyM0g2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xLDI1djMuNEEyLjYsMi42''@;'; + put 'put ''LDAsMCwwLDMuNiwzMUgzMi4zNGEyLjYsMi42LDAsMCwwLDIuNi0yLjZWMjVabTMyLDMuNGEuNi42LDAsMCwxLS42LjZIMy41NmEuNi42LDAsMCwxLS42LS42VjI2LjUzaDkuOTVhMS42NCwxLjY0LDAsMCwwLDEuNSwxaDcuMTNhMS42NCwxLjY0LDAsMCwwLDEuNS0xSDMzWiIgY2xhc3M9ImNs''@;'; + put 'put ''ci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xLDI1djMuNEEyLjYsMi42LDAsMCwwLDMuNiwzMUgzMi4zNGEyLjYsMi42LDAsMCwwLDIuNi0yLjZWMjVabTMyLDMuNGEuNi42LDAsMCwxLS42LjZIMy41NmEuNi42LDAsMCwxLS42LS42''@;'; + put 'put ''VjI2LjUzaDkuOTVhMS42NCwxLjY0LDAsMCwwLDEuNSwxaDcuMTNhMS42NCwxLjY0LDAsMCwwLDEuNS0xSDMzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik05LjYsMjIuODhWMTAu''@;'; + put 'put ''Nmg5LjE0QTMuNjQsMy42NCwwLDAsMSwxOSw5Ljg5TDE5LjU2LDlIOFYyMi44OFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNNiw3SDIwLjcxbDEuMTUtMkg1LjVBMS41LDEuNSww''@;'; + put 'put ''LDAsMCw0LDYuNVYyM0g2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjMwIiB5PSIxNS40IiB3aWR0aD0iMiIgaGVpZ2h0PSI3LjYiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVy''@;'; + put 'put ''dGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2''@;'; + put 'put ''Ljg1LDEuMTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTEsMjV2My40QTIuNiwyLjYsMCwwLDAsMy42LDMxSDMyLjM0YTIuNiwyLjYsMCwwLDAsMi42LTIu''@;'; + put 'put ''NlYyNVptMzIsMy40YS42LjYsMCwwLDEtLjYuNkgzLjU2YS42LjYsMCwwLDEtLjYtLjZWMjYuNTNoOS45NWExLjY0LDEuNjQsMCwwLDAsMS41LDFoNy4xM2ExLjY0LDEuNjQsMCwwLDAsMS41LTFIMzNaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0x''@;'; + put 'put ''LS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMi41LDZhNy41Miw3LjUyLDAsMCwxLC4wNy0xSDUuNUExLjUsMS41LDAsMCwwLDQsNi41VjIzSDZWN0gyMi41N0E3LjUyLDcuNTIsMCwwLDEsMjIuNSw2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRs''@;'; + put 'put ''aW5lLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAsMTMuNVYyM2gyVjEzLjIyQTcuNDksNy40OSwwLDAsMSwzMCwxMy41WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8''@;'; + put 'put ''cGF0aCBkPSJNMjMuMTMsOUg4VjIyLjg4SDkuNlYxMC42SDI0LjA4QTcuNDksNy40OSwwLDAsMSwyMy4xMyw5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9''@;'; + put 'put ''IjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIzLjgxLDI2Yy0uMzUuOS0uOTQsMS41LTEuNjEsMS41SDEzLjc0Yy0uNjgsMC0xLjI2LS42LTEuNjEtMS41SDF2''@;'; + put 'put ''MS43NUEyLjQ1LDIuNDUsMCwwLDAsMy42LDMwSDMyLjRBMi40NSwyLjQ1LDAsMCwwLDM1LDI3Ljc1VjI2WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTcsMTBIMjlWMjRoM1Y3LjU3QTEuNTQsMS41NCwwLDAsMCwzMC41''@;'; + put 'put ''LDZINS41QTEuNTQsMS41NCwwLDAsMCw0LDcuNTdWMjRIN1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMy44MSwyNmMtLjM1LjktLjk0LDEuNS0xLjYxLDEuNUgxMy43NGMtLjY4LDAtMS4yNi0uNi0xLjYxLTEuNUgx''@;'; + put 'put ''djEuNzVBMi40NSwyLjQ1LDAsMCwwLDMuNiwzMEgzMi40QTIuNDUsMi40NSwwLDAsMCwzNSwyNy43NVYyNloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjI5IiB5PSIxNS40IiB3aWR0aD0i''@;'; + put 'put ''MyIgaGVpZ2h0PSI4LjYiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik03LDEwSDE5TDE5LDkuODksMjEuMjksNkg1LjVBMS41NCwxLjU0LDAsMCwwLDQsNy41N1YyNEg3WiIgY2xhc3M9ImNs''@;'; + put 'put ''ci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMy0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgs''@;'; + put 'put ''MS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtNC0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIzLjgxLDI2Yy0uMzUuOS0uOTQsMS41LTEuNjEsMS41SDEzLjc0Yy0uNjgsMC0x''@;'; + put 'put ''LjI2LS42LTEuNjEtMS41SDF2MS43NUEyLjQ1LDIuNDUsMCwwLDAsMy42LDMwSDMyLjRBMi40NSwyLjQ1LDAsMCwwLDM1LDI3Ljc1VjI2WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik03LDEw''@;'; + put 'put ''SDIzLjY2QTcuNDYsNy40NiwwLDAsMSwyMi41LDZINS41QTEuNTQsMS41NCwwLDAsMCw0LDcuNTdWMjRIN1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIsMTMuMjJhNy4xNCw3LjE0LDAs''@;'; + put 'put ''MCwxLTMsLjJWMjRoM1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtNC0tYmFk''@;'; + put 'put ''Z2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICcpLEwuQ2xyU2hhcGVEaXNwbGF5PSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMi41LDNIMy41QTEuNSwxLjUsMCwwLDAsMiw0LjV2MjFBMS41LDEuNSwwLDAsMCwzLjUsMjdoMjlBMS41LDEuNSwwLDAsMCwzNCwyNS41VjQuNUExLjUs''@;'; + put 'put ''MS41LDAsMCwwLDMyLjUsM1pNMzIsMjVINFY1SDMyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iNy43IDguNzYgMjguMTMgOC43NiAyOS45NCA3LjE2IDYuMSA3LjE2IDYuMSAyMyA3LjcgMjMgNy43''@;'; + put 'put ''IDguNzYiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYsMzJIMjQuMjZhMy42MSwzLjYxLDAsMCwxLTEuNS0yLjUyVjI4LjEzSDIxLjI0VjI5LjVBNC4yLDQuMiwwLDAsMCwyMi4xNywzMkgxMy44M2E0LjIsNC4y''@;'; + put 'put ''LDAsMCwwLC45My0yLjUyVjI4LjEzSDEzLjI0VjI5LjVBMy42MSwzLjYxLDAsMCwxLDExLjc0LDMySDkuOTRhMSwxLDAsMSwwLDAsMkgyNi4wNmEuOTIuOTIsMCwwLDAsMS0xQTEsMSwwLDAsMCwyNiwzMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4g''@;'; + put 'put ''ICAgICAgICAgICA8cGF0aCBkPSJNMjYsMzJIMjQuMjZhMy42MSwzLjYxLDAsMCwxLTEuNS0yLjUyVjI4LjEzSDIxLjI0VjI5LjVBNC4yLDQuMiwwLDAsMCwyMi4xNywzMkgxMy44M2E0LjIsNC4yLDAsMCwwLC45My0yLjUyVjI4LjEzSDEzLjI0VjI5LjVBMy42MSwzLjYxLDAsMCwxLDExLjc0''@;'; + put 'put ''LDMySDkuOTRhMSwxLDAsMSwwLDAsMkgyNi4wNmEuOTIuOTIsMCwwLDAsMS0xQTEsMSwwLDAsMCwyNiwzMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuNjgsMTUuNEgzMlYy''@;'; + put 'put ''NUg0VjVIMjEuODdMMjMsM0gzLjVBMS41LDEuNSwwLDAsMCwyLDQuNXYyMUExLjUsMS41LDAsMCwwLDMuNSwyN2gyOUExLjUsMS41LDAsMCwwLDM0LDI1LjVWMTUuMzhaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIvPlxuICAg''@;'; + put 'put ''ICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSI3LjcgMjMgNy43IDguNzYgMTkuNyA4Ljc2IDIwLjYyIDcuMTYgNi4xIDcuMTYgNi4xIDIzIDcuNyAyMyIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxw''@;'; + put 'put ''YXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxp''@;'; + put 'put ''bmUtcGF0aC00LS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYsMzJIMjQuMjZhMy42MSwzLjYxLDAsMCwxLTEuNS0yLjUyVjI4LjEzSDIxLjI0VjI5LjVBNC4yLDQuMiwwLDAsMCwyMi4xNywzMkgxMy44M2E0LjIsNC4yLDAsMCwwLC45My0yLjUyVjI4''@;'; + put 'put ''LjEzSDEzLjI0VjI5LjVBMy42MSwzLjYxLDAsMCwxLDExLjc0LDMySDkuOTRhMSwxLDAsMSwwLDAsMkgyNi4wNmEuOTIuOTIsMCwwLDAsMS0xQTEsMSwwLDAsMCwyNiwzMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIvPlxuICAg''@;'; + put 'put ''ICAgICAgICAgPHBhdGggZD0iTTYuMSwyM0g3LjdWOC43NkgyM2E3LjQ0LDcuNDQsMCwwLDEtLjQzLTEuNkg2LjFaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMiwxMy4yMlYyNUg0''@;'; + put 'put ''VjVIMjIuNTdhNy40NSw3LjQ1LDAsMCwxLC41NS0ySDMuNUExLjUsMS41LDAsMCwwLDIsNC41djIxQTEuNSwxLjUsMCwwLDAsMy41LDI3aDI5QTEuNSwxLjUsMCwwLDAsMzQsMjUuNVYxMi4zNEE3LjQ1LDcuNDUsMCwwLDEsMzIsMTMuMjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2Vk''@;'; + put 'put ''IGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICAgICA8cGF0''@;'; + put 'put ''aCBkPSJNMjYsMzJIMjQuMjZhMy42MSwzLjYxLDAsMCwxLTEuNS0yLjUyVjI4LjEzSDEzLjI0VjI5LjVBMy42MSwzLjYxLDAsMCwxLDExLjc0LDMySDkuOTRhMSwxLDAsMSwwLDAsMkgyNi4wNmEuOTIuOTIsMCwwLDAsMS0xQTEsMSwwLDAsMCwyNiwzMloiIGNsYXNzPSJjbHItaS1zb2xpZCBj''@;'; + put 'put ''bHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMi41LDNIMy41QTEuNSwxLjUsMCwwLDAsMiw0LjV2MjFBMS41LDEuNSwwLDAsMCwzLjUsMjdoMjlBMS41LDEuNSwwLDAsMCwzNCwyNS41VjQuNUExLjUsMS41LDAsMCwwLDMyLjUsM1pNMzEsMjEuODNINVY3SDMx''@;'; + put 'put ''WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2LDMySDI0LjI2YTMuNjEsMy42MSwwLDAsMS0xLjUtMi41MlYyOC4xM0gxMy4yNFYyOS41QTMuNjEsMy42MSwwLDAsMSwxMS43NCwzMkg5Ljk0YTEsMSwwLDEsMCwwLDJI''@;'; + put 'put ''MjYuMDZhLjkyLjkyLDAsMCwwLDEtMUExLDEsMCwwLDAsMjYsMzJaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuNjgsMTUuNEgzMXY2LjQzSDVWN0gyMC43MUwyMywzSDMuNUExLjUs''@;'; + put 'put ''MS41LDAsMCwwLDIsNC41djIxQTEuNSwxLjUsMCwwLDAsMy41LDI3aDI5QTEuNSwxLjUsMCwwLDAsMzQsMjUuNVYxNS4zOFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0''@;'; + put 'put ''LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWFsZXJ0ZWQgY2xy''@;'; + put 'put ''LWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNiwzMkgyNC4yNmEzLjYxLDMuNjEsMCwwLDEtMS41LTIuNTJWMjguMTNIMTMuMjRWMjkuNUEzLjYxLDMuNjEsMCwwLDEsMTEuNzQsMzJIOS45NGExLDEsMCwxLDAsMCwySDI2LjA2YS45Mi45MiwwLDAsMCwxLTFBMSwxLDAsMCww''@;'; + put 'put ''LDI2LDMyWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMSwxMy40M3Y4LjQxSDVWN0gyMi41N2E3LjI5LDcuMjksMCwwLDEsLjU1LTRIMy41QTEuNSwxLjUsMCwwLDAsMiw0LjV2MjFBMS41''@;'; + put 'put ''LDEuNSwwLDAsMCwzLjUsMjdoMjlBMS41LDEuNSwwLDAsMCwzNCwyNS41VjEyLjM0QTcuNDQsNy40NCwwLDAsMSwzMSwxMy40M1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9''@;'; + put 'put ''IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICcpLEwuQ2xyU2hhcGVUZXJtaW5hbD0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzIsNUg0QTIsMiwwLDAsMCwyLDdWMjlhMiwy''@;'; + put 'put ''LDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjdBMiwyLDAsMCwwLDMyLDVaTTQsN0gzMlY5LjJINFpNNCwyOVYxMC44SDMyVjI5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNyIgeT0iMjMiIHdpZHRoPSI2''@;'; + put 'put ''IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSI3IDE1LjY4IDEzLjc5IDE4LjggNyAyMS45MSA3IDI0LjExIDE2LjYgMTkuNyAxNi42IDE3Ljg5IDcgMTMuNDggNyAxNS42OCIgY2xh''@;'; + put 'put ''c3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNyIgeT0iMjMiIHdpZHRoPSI2IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiAvPlxuICAg''@;'; + put 'put ''ICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSI3IDI0LjExIDE2LjYgMTkuNyAxNi42IDE3Ljg5IDcgMTMuNDggNyAxNS42OCAxMy43OSAxOC44IDcgMjEuOTEgNyAyNC4xMSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIC8+XG4g''@;'; + put 'put ''ICAgICAgICAgICA8cGF0aCBkPSJNMzMuNjgsMTUuNEgzMlYyOUg0VjEwLjhIMTguNjhBMy42NiwzLjY2LDAsMCwxLDE5LDkuODlsLjQtLjY5SDRWN0gyMC43MWwxLjE1LTJINEEyLDIsMCwwLDAsMiw3VjI5YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYxNS4zOFoiIGNsYXNzPSJj''@;'; + put 'put ''bHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0''@;'; + put 'put ''QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIGNsci1pLWFsZXJ0IiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTciIHk9IjIzIiB3aWR0aD0iNiIgaGVpZ2h0PSIyIiBjbGFz''@;'; + put 'put ''cz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cG9seWdvbiBwb2ludHM9IjcgMjQuMTEgMTYuNiAxOS43IDE2LjYgMTcuODkgNyAxMy40OCA3IDE1LjY4IDEzLjc5IDE4LjggNyAyMS45MSA3IDI0LjExIiBjbGFz''@;'; + put 'put ''cz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIsMTMuMjJWMjlINFYxMC44SDI0LjI0YTcuNTEsNy41MSwwLDAsMS0xLTEuNkg0VjdIMjIuNTdhNy41Miw3LjUyLDAsMCwxLS4wNy0xLDcuNTIs''@;'; + put 'put ''Ny41MiwwLDAsMSwuMDctMUg0QTIsMiwwLDAsMCwyLDdWMjlhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjEyLjM0QTcuNDUsNy40NSwwLDAsMSwzMiwxMy4yMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIgLz5cbiAg''@;'; + put 'put ''ICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCBjbHItaS1iYWRnZSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMiw1SDRBMiwyLDAsMCwwLDIsN1YyOWEyLDIs''@;'; + put 'put ''MCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWN0EyLDIsMCwwLDAsMzIsNVpNNi44LDE1LjgxVjEzLjE3bDEwLDQuNTl2Mi4wOGwtMTAsNC41OVYyMS43OGw2LjUxLTNaTTIzLjQsMjUuNEgxN1YyM2g2LjRaTTQsOS4yVjdIMzJWOS4yWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlk''@;'; + put 'put ''LXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy42OCwxNS40SDIyLjIzQTMuNjgsMy42OCwwLDAsMSwxOSw5Ljg5bC40LS42OUg0VjdIMjAuNzFsMS4xNS0ySDRBMiwyLDAsMCwwLDIsN1YyOWEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMTUuMzhaTTE2LjgsMTku''@;'; + put 'put ''ODNsLTEwLDQuNTlWMjEuNzhsNi41MS0zLTYuNTEtM1YxMy4xN2wxMCw0LjU5Wm02LjYsNS41N0gxN1YyM2g2LjRaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEu''@;'; + put 'put ''MTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQgY2xyLWkt''@;'; + put 'put ''YWxlcnQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAsMTMuNWE3LjQ5LDcuNDksMCwwLDEtNi43OC00LjNINFY3SDIyLjU3YTcuNTIsNy41MiwwLDAsMS0uMDctMSw3LjUyLDcuNTIsMCwwLDEsLjA3LTFINEEyLDIsMCwwLDAsMiw3VjI5YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCww''@;'; + put 'put ''LDItMlYxMi4zNEE3LjQ2LDcuNDYsMCwwLDEsMzAsMTMuNVpNMTYuOCwxOS44M2wtMTAsNC41OVYyMS43OGw2LjUxLTMtNi41MS0zVjEzLjE3bDEwLDQuNTlabTYuNiw1LjU3SDE3VjIzaDYuNFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2Vk''@;'; + put 'put ''IiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIC8+XG4gICAgICAgICcpLEwuQ2xyU2hhcGVDb2RlPSgwLEUuY2xySWNvblNWRykoJzxw''@;'; + put 'put ''YXRoIGQ9Ik0xMy43MSwxMi41OWExLDEsMCwwLDAtMS4zOS0uMjZMNS43OSwxNi43OGExLDEsMCwwLDAsMCwxLjY1bDYuNTMsNC40NWExLDEsMCwxLDAsMS4xMy0xLjY1TDguMTMsMTcuNjEsMTMuNDUsMTRBMSwxLDAsMCwwLDEzLjcxLDEyLjU5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xy''@;'; + put 'put ''LWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAuMjEsMTYuNzhsLTYuNTMtNC40NUExLDEsMCwxLDAsMjIuNTUsMTRsNS4zMiwzLjYzLTUuMzIsMy42M2ExLDEsMCwwLDAsMS4xMywxLjY1bDYuNTMtNC40NWExLDEsMCwwLDAsMC0xLjY1WiIgY2xhc3M9ImNs''@;'; + put 'put ''ci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTkuOTQsOS44M2EuOS45LDAsMCwwLTEuMDkuNjZMMTUuNDEsMjQuMjlhLjkuOSwwLDAsMCwuNjYsMS4wOWwuMjIsMGEuOS45LDAsMCwwLC44Ny0uNjhsMy40NC0xMy44MUEuOS45LDAs''@;'; + put 'put ''MCwwLDE5Ljk0LDkuODNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMy43MSwxMi41OWExLDEsMCwwLDAtMS4zOS0uMjZMNS43OSwxNi43OGExLDEsMCwwLDAsMCwxLjY1bDYuNTMsNC40NWExLDEsMCwxLDAs''@;'; + put 'put ''MS4xMy0xLjY1TDguMTMsMTcuNjEsMTMuNDUsMTRBMSwxLDAsMCwwLDEzLjcxLDEyLjU5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTguNTYsMTEuNjIsMTUuNDEsMjQuMjlh''@;'; + put 'put ''LjkuOSwwLDAsMCwuNjYsMS4wOWwuMjIsMGEuOS45LDAsMCwwLC44Ny0uNjhMMTkuNzMsMTQuNGEzLjU5LDMuNTksMCwwLDEtMS4xNi0yLjc5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0''@;'; + put 'put ''aCBkPSJNMzAuMjEsMTYuNzhsLTItMS4zOEgyNC42NGwzLjI0LDIuMjEtNS4zMiwzLjYzYTEsMSwwLDAsMCwxLjEzLDEuNjVsNi41My00LjQ1YTEsMSwwLDAsMCwwLTEuNjVaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCIgLz5c''@;'; + put 'put ''biAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiICBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxl''@;'; + put 'put ''cnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMy43MSwxMi41OWExLDEsMCwwLDAtMS4zOS0uMjZMNS43OSwxNi43OGExLDEsMCwwLDAsMCwxLjY1bDYuNTMsNC40NWExLDEsMCwxLDAsMS4xMy0xLjY1TDgu''@;'; + put 'put ''MTMsMTcuNjEsMTMuNDUsMTRBMSwxLDAsMCwwLDEzLjcxLDEyLjU5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLjIxLDE2Ljc4bC02LjUzLTQuNDVBMSwxLDAsMSwwLDIyLjU1''@;'; + put 'put ''LDE0bDUuMzIsMy42My01LjMyLDMuNjNhMSwxLDAsMCwwLDEuMTMsMS42NWw2LjUzLTQuNDVhMSwxLDAsMCwwLDAtMS42NVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOS45NCw5''@;'; + put 'put ''LjgzYS45LjksMCwwLDAtMS4wOS42NkwxNS40MSwyNC4yOWEuOS45LDAsMCwwLC42NiwxLjA5bC4yMiwwYS45LjksMCwwLDAsLjg3LS42OGwzLjQ0LTEzLjgxQS45LjksMCwwLDAsMTkuOTQsOS44M1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMt''@;'; + put 'put ''LWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCBjbHItaS1iYWRnZSIgLz5cbiAgICAgICAgJyksTC5DbHJTaGFwZUFwcGxpY2F0aW9uPSgw''@;'; + put 'put ''LEUuY2xySWNvblNWRykoJzxyZWN0IHg9IjUiIHk9IjciIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iOSIgeT0iNyIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1p''@;'; + put 'put ''LW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMyIgeT0iNyIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIsNEg0QTIs''@;'; + put 'put ''MiwwLDAsMCwyLDZWMzBhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjZBMiwyLDAsMCwwLDMyLDRaTTQsNkgzMnY0LjJINFpNNCwzMFYxMS44SDMyVjMwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJN''@;'; + put 'put ''MzIsNEg0QTIsMiwwLDAsMCwyLDZWMzBhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjZBMiwyLDAsMCwwLDMyLDRabTAsNi4ySDRWNkgzMloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSI1IiB5PSI3IiB3aWR0''@;'; + put 'put ''aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iOSIgeT0iNyIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIgLz5cbiAgICAgICAgICAg''@;'; + put 'put ''IDxyZWN0IHg9IjEzIiB5PSI3IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC00IiAvPlxuICAgICAgICAnKSxMLkNsclNoYXBlQmF0dGVyeT0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTguNTksMTEuNzdhMSwxLDAsMCwwLTEu''@;'; + put 'put ''NzMsMWwyLjUsNC4zNC02LjA3LTEsNS4yOSwxMC41OWExLDEsMCwwLDAsMS43OS0uODlsLTMuNTMtNy4wOCw2LjM4LDEuMDZaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNS4xMiw0SDIzVjMuNThBMS41OCwx''@;'; + put 'put ''LjU4LDAsMCwwLDIxLjQyLDJIMTQuNThBMS41OCwxLjU4LDAsMCwwLDEzLDMuNThWNEgxMC44OEExLjg4LDEuODgsMCwwLDAsOSw1Ljg4VjMyLjEyQTEuODgsMS44OCwwLDAsMCwxMC44OCwzNEgyNS4xMkExLjg4LDEuODgsMCwwLDAsMjcsMzIuMTJWNS44OEExLjg4LDEuODgsMCwwLDAsMjUu''@;'; + put 'put ''MTIsNFpNMjUsMzJIMTFWNmg0VjRoNlY2aDRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOC41OSwxMS43N2ExLDEsMCwwLDAtMS43MywxbDIuNSw0LjM0LTYuMDctMSw1LjI5LDEwLjU5YTEsMSwwLDAsMCwx''@;'; + put 'put ''Ljc5LS44OWwtMy41My03LjA4LDYuMzgsMS4wNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMz''@;'; + put 'put ''LjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0IiAvPlxuICAgICAgICAgICAgPHBhdGgg''@;'; + put 'put ''ZD0iTTI1LDE1LjRWMzJIMTFWNmg0VjRoNlY2aC4yOGwxLjY0LTIuODVBMS41NywxLjU3LDAsMCwwLDIxLjQyLDJIMTQuNThBMS41OCwxLjU4LDAsMCwwLDEzLDMuNThWNEgxMC44OEExLjg4LDEuODgsMCwwLDAsOSw1Ljg4VjMyLjEyQTEuODgsMS44OCwwLDAsMCwxMC44OCwzNEgyNS4xMkEx''@;'; + put 'put ''Ljg4LDEuODgsMCwwLDAsMjcsMzIuMTJWMTUuNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdl''@;'; + put 'put ''ZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LjU5LDExLjc3YTEsMSwwLDAsMC0xLjczLDFsMi41LDQuMzQtNi4wNy0xLDUuMjksMTAuNTlhMSwxLDAsMCwwLDEuNzktLjg5bC0zLjUzLTcuMDgsNi4zOCwxLjA2''@;'; + put 'put ''WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI1LDExLjU4VjMySDExVjZoNFY0aDZWNkgyMi41QTcuNDcsNy40NywwLDAsMSwyMywzLjM4LDEuNTcsMS41NywwLDAsMCwyMS40Miwy''@;'; + put 'put ''SDE0LjU4QTEuNTgsMS41OCwwLDAsMCwxMywzLjU4VjRIMTAuODhBMS44OCwxLjg4LDAsMCwwLDksNS44OFYzMi4xMkExLjg4LDEuODgsMCwwLDAsMTAuODgsMzRIMjUuMTJBMS44OCwxLjg4LDAsMCwwLDI3LDMyLjEyVjEyLjg3QTcuNSw3LjUsMCwwLDEsMjUsMTEuNThaIiBjbGFzcz0iY2xy''@;'; + put 'put ''LWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIsNFYyLjYyQS42LjYsMCwwLDAsMjEuNDIsMkgxNC41OGEuNi42LDAsMCwwLS41OC42MlY0SDEwQTEuMDksMS4wOSwwLDAsMCw5LDUuMDd2MjhBMSwxLDAs''@;'; + put 'put ''MCwwLDEwLDM0SDI2YTEsMSwwLDAsMCwxLS45NHYtMjhBMS4wOSwxLjA5LDAsMCwwLDI2LDRaTTIwLjI2LDI1LjQ0YTEuMiwxLjIsMCwwLDEtMi4xNSwxLjA3TDEyLjY1LDE1LjU2bDYsMS0yLjI5LTRhMS4yLDEuMiwwLDEsMSwyLjA4LTEuMmw0LjgzLDguMzdMMTYuOSwxOC43WiIgY2xhc3M9''@;'; + put 'put ''ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYu''@;'; + put 'put ''ODUsMS4xNFoiICBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIGNsci1pLWFsZXJ0IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIyLjIzLDE1LjRBMy42NiwzLjY2LDAsMCwxLDIwLjU1LDE1bDIuNzYsNC43OUwxNi45LDE4LjdsMy4z''@;'; + put 'put ''Niw2LjczYTEuMiwxLjIsMCwwLDEtMi4xNSwxLjA3TDEyLjY1LDE1LjU2bDYsMS0yLjI5LTRhMS4yLDEuMiwwLDEsMSwyLjA4LTEuMmwuMDkuMTVBMy42NiwzLjY2LDAsMCwxLDE5LDkuODlMMjIuNDUsNEgyMlYyLjYyQS42LjYsMCwwLDAsMjEuNDIsMkgxNC41OGEuNi42LDAsMCwwLS41OC42''@;'; + put 'put ''MlY0SDEwQTEuMDksMS4wOSwwLDAsMCw5LDUuMDd2MjhBMSwxLDAsMCwwLDEwLDM0SDI2YTEsMSwwLDAsMCwxLS45NFYxNS40WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBj''@;'; + put 'put ''eT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIyLjUsNmE3LjQ5LDcuNDksMCwwLDEsLjI4LTJIMjJWMi42MkEuNi42LDAsMCwwLDIxLjQyLDJIMTQu''@;'; + put 'put ''NThhLjYuNiwwLDAsMC0uNTguNjJWNEgxMEExLjA5LDEuMDksMCwwLDAsOSw1LjA3djI4QTEsMSwwLDAsMCwxMCwzNEgyNmExLDEsMCwwLDAsMS0uOTRWMTIuODdBNy41LDcuNSwwLDAsMSwyMi41LDZaTTIwLjI2LDI1LjQ0YTEuMiwxLjIsMCwwLDEtMi4xNSwxLjA3TDEyLjY1LDE1LjU2bDYs''@;'; + put 'put ''MS0yLjI5LTRhMS4yLDEuMiwwLDEsMSwyLjA4LTEuMmw0LjgzLDguMzdMMTYuOSwxOC43WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQiIC8+XG4gICAgICAgICcpLEwuQ2xyU2hhcGVNb2JpbGU9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGgg''@;'; + put 'put ''ZD0iTTI1LDRIMTFBMiwyLDAsMCwwLDksNlYzMGEyLDIsMCwwLDAsMiwySDI1YTIsMiwwLDAsMCwyLTJWNkEyLDIsMCwwLDAsMjUsNFpNMTEsNkgyNVYyNEgxMVptMCwyNFYyNkgyNXY0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAg''@;'; + put 'put ''ICA8cmVjdCB4PSIxNyIgeT0iMjciIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI1LDRIMTFBMiwyLDAsMCwwLDksNlYzMGEyLDIsMCwwLDAsMiwySDI1YTIsMiwwLDAsMCwy''@;'; + put 'put ''LTJWNkEyLDIsMCwwLDAsMjUsNFpNMTksMzBIMTdWMjhoMlptLTgtNFY2SDI1VjI2WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgJyksTC5DbHJTaGFwZVRhYmxldD0oMCxFLmNsckljb25TVkcpKCc8cmVjdCB4PSIxNyIgeT0iMjkiIHdpZHRo''@;'; + put 'put ''PSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLDJINkEyLDIsMCwwLDAsNCw0VjMyYTIsMiwwLDAsMCwyLDJIMzBhMiwyLDAsMCwwLDItMlY0QTIsMiwwLDAsMCwzMCwyWm0wLDJWMjYu''@;'; + put 'put ''MzhINlY0Wk02LDMyVjI4SDMwdjRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMCwySDZBMiwyLDAsMCwwLDQsNFYzMmEyLDIsMCwwLDAsMiwySDMwYTIsMiwwLDAsMCwyLTJWNEEyLDIsMCwwLDAsMzAsMlpN''@;'; + put 'put ''MTksMzJIMTdWMzBoMlpNNiwyOFY0SDMwVjI4WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgJyksTC5DbHJTaGFwZU5ldHdvcmtHbG9iZT0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjYuNTgsMzJoLTE4YTEsMSwwLDEsMCwwLDJoMThh''@;'; + put 'put ''MSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE3Ljc1LDJhMTQsMTQsMCwwLDAtMTQsMTRjMCwuNDUsMCwuODkuMDcsMS4zM2wwLDBoMEExNCwxNCwwLDEsMCwxNy43NSwyWm0wLDJhMTIs''@;'; + put 'put ''MTIsMCwwLDEsOC40NCwzLjQ4YzAsLjMzLDAsLjY2LDAsMUExOC41MSwxOC41MSwwLDAsMCwxNCw4LjUzYTIuMzMsMi4zMywwLDAsMC0xLjE0LS42MWwtLjI1LDBjLS4xMi0uNDItLjIzLS44NC0uMzItMS4yN3MtLjE0LS44MS0uMTktMS4yMkExMS45MiwxMS45MiwwLDAsMSwxNy43NSw0Wm0t''@;'; + put 'put ''Myw1Ljg3QTE3LDE3LDAsMCwxLDI1LjkyLDEwYTE2LjksMTYuOSwwLDAsMS0zLjExLDcsMi4yOCwyLjI4LDAsMCwwLTIuNTguNTdjLS4zNS0uMi0uNy0uNC0xLS42M2ExNiwxNiwwLDAsMS00LjkzLTUuMjMsMi4yNSwyLjI1LDAsMCwwLC40Ny0xLjc3Wm0tNC0zLjZjMCwuMjEuMDYuNDMuMS42''@;'; + put 'put ''NC4wOS40NC4yMS44Ny4zMywxLjNhMi4yOCwyLjI4LDAsMCwwLTEuMSwyLjI1QTE4LjMyLDE4LjMyLDAsMCwwLDUuOSwxNC4yMiwxMiwxMiwwLDAsMSwxMC43Niw2LjI3Wm0wLDE1LjcxQTIuMzQsMi4zNCwwLDAsMCw5LjIsMjMuNzRsLS42NCwwQTExLjk0LDExLjk0LDAsMCwxLDUuOCwxNi45''@;'; + put 'put ''MmwuMTEtLjE5YTE2LjksMTYuOSwwLDAsMSw0LjgxLTQuODksMi4zMSwyLjMxLDAsMCwwLDIuMjguNjMsMTcuNTMsMTcuNTMsMCwwLDAsNS4zNSw1LjY1Yy40MS4yNy44My41MiwxLjI1Ljc2QTIuMzIsMi4zMiwwLDAsMCwxOS43OCwyMGExNi45NCwxNi45NCwwLDAsMS02LjIsMy4xMUEyLjM0''@;'; + put 'put ''LDIuMzQsMCwwLDAsMTAuNzYsMjJabTcsNmExMS45MiwxMS45MiwwLDAsMS01LjgxLTEuNTFsLjI4LS4wNmEyLjM0LDIuMzQsMCwwLDAsMS41Ny0xLjc5LDE4LjQzLDE4LjQzLDAsMCwwLDctMy41LDIuMjksMi4yOSwwLDAsMCwzLS42MiwxNy40MSwxNy40MSwwLDAsMCw0LjMyLjU2bC41Myww''@;'; + put 'put ''QTEyLDEyLDAsMCwxLDE3Ljc1LDI4Wm02LjUxLTguOWEyLjMzLDIuMzMsMCwwLDAtLjMzLTEuMTksMTguNCwxOC40LDAsMCwwLDMuMzktNy4zN3EuNzUuMzUsMS40OC43OGExMiwxMiwwLDAsMSwuNDIsOC4yQTE2LDE2LDAsMCwxLDI0LjI3LDE5LjExWiIgY2xhc3M9ImNsci1pLW91dGxpbmUg''@;'; + put 'put ''Y2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuNTgsMzJoLTE4YTEsMSwwLDEsMCwwLDJoMThhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiAvPlxuICAgICAg''@;'; + put 'put ''ICAgICAgPHBhdGggZD0iTTMxLjczLDE1LjRoLTJjMCwuMiwwLC40LDAsLjYxYTEyLDEyLDAsMCwxLS41MywzLjUyLDE2LDE2LDAsMCwxLTUtLjQxLDIuMzMsMi4zMywwLDAsMC0uMzMtMS4xOSwxOC44NywxOC44NywwLDAsMCwxLjYyLTIuNTJIMjMuODNhMTcuMjksMTcuMjksMCwwLDEtMSwx''@;'; + put 'put ''LjU0LDIuMjgsMi4yOCwwLDAsMC0yLjU4LjU3Yy0uMzUtLjItLjctLjQtMS0uNjNhMTYsMTYsMCwwLDEtNC45My01LjIzLDIuMjUsMi4yNSwwLDAsMCwuNDctMS43N0ExNy4wOCwxNy4wOCwwLDAsMSwxOS41Niw5bC44Ny0xLjUxYTE4LjU5LDE4LjU5LDAsMCwwLTYuMzksMSwyLjMzLDIuMzMs''@;'; + put 'put ''MCwwLDAtMS4xNC0uNjFsLS4yNSwwYy0uMTItLjQyLS4yMy0uODQtLjMyLTEuMjdzLS4xNC0uODEtLjE5LTEuMjJBMTEuODgsMTEuODgsMCwwLDEsMjIsNC43OUwyMywzQTE0LDE0LDAsMCwwLDMuNzUsMTZjMCwuNDUsMCwuODkuMDcsMS4zM2wwLDBoMEExNCwxNCwwLDAsMCwzMS43NiwxNkMz''@;'; + put 'put ''MS43NiwxNS44LDMxLjc0LDE1LjYsMzEuNzMsMTUuNFptLTIxLTkuMTNjMCwuMjEuMDYuNDMuMS42NC4wOS40NC4yMS44Ny4zMywxLjNhMi4yOCwyLjI4LDAsMCwwLTEuMSwyLjI1QTE4LjMyLDE4LjMyLDAsMCwwLDUuOSwxNC4yMiwxMiwxMiwwLDAsMSwxMC43Niw2LjI3Wm0wLDE1LjcxQTIu''@;'; + put 'put ''MzQsMi4zNCwwLDAsMCw5LjIsMjMuNzRsLS42NCwwQTExLjk0LDExLjk0LDAsMCwxLDUuOCwxNi45MmwuMTEtLjE5YTE2LjksMTYuOSwwLDAsMSw0LjgxLTQuODksMi4zMSwyLjMxLDAsMCwwLDIuMjguNjMsMTcuNTMsMTcuNTMsMCwwLDAsNS4zNSw1LjY1Yy40MS4yNy44My41MiwxLjI1Ljc2''@;'; + put 'put ''QTIuMzIsMi4zMiwwLDAsMCwxOS43OCwyMGExNi45NCwxNi45NCwwLDAsMS02LjIsMy4xMUEyLjM0LDIuMzQsMCwwLDAsMTAuNzYsMjJabTcsNmExMS45MiwxMS45MiwwLDAsMS01LjgxLTEuNTFsLjI4LS4wNmEyLjM0LDIuMzQsMCwwLDAsMS41Ny0xLjc5LDE4LjQzLDE4LjQzLDAsMCwwLDct''@;'; + put 'put ''My41LDIuMjksMi4yOSwwLDAsMCwzLS42MiwxNy40MSwxNy40MSwwLDAsMCw0LjMyLjU2bC41MywwQTEyLDEyLDAsMCwxLDE3Ljc1LDI4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBk''@;'; + put 'put ''PSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiAgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1w''@;'; + put 'put ''YXRoLTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuNTgsMzJoLTE4YTEsMSwwLDEsMCwwLDJoMThhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgLz5cbiAg''@;'; + put 'put ''ICAgICAgICAgIDxwYXRoIGQ9Ik0zMS41LDEzLjM1YTcuNTQsNy41NCwwLDAsMS0xLjUuMTVsLS41MSwwYTExLjkxLDExLjkxLDAsMCwxLS4yNSw2LDE2LDE2LDAsMCwxLTUtLjQxLDIuMzMsMi4zMywwLDAsMC0uMzMtMS4xOSwxOC41OSwxOC41OSwwLDAsMCwyLjc4LTUuMTgsNy40OSw3LjQ5''@;'; + put 'put ''LDAsMCwxLTEuMzEtLjgyLDE3LDE3LDAsMCwxLTIuNjEsNSwyLjI4LDIuMjgsMCwwLDAtMi41OC41N2MtLjM1LS4yLS43LS40LTEtLjYzYTE2LDE2LDAsMCwxLTQuOTMtNS4yMywyLjI1LDIuMjUsMCwwLDAsLjQ3LTEuNzcsMTcsMTcsMCwwLDEsOC41My0uNjIsNy40Myw3LjQzLDAsMCwxLS41''@;'; + put 'put ''Ni0xLjU5QTE4LjU2LDE4LjU2LDAsMCwwLDE0LDguNTNhMi4zMywyLjMzLDAsMCwwLTEuMTQtLjYxbC0uMjUsMGMtLjEyLS40Mi0uMjMtLjg0LS4zMi0xLjI3cy0uMTQtLjgxLS4xOS0xLjIyQTExLjkyLDExLjkyLDAsMCwxLDIyLjU3LDVhNy40NSw3LjQ1LDAsMCwxLC41My0yQTE0LDE0LDAs''@;'; + put 'put ''MCwwLDMuNzUsMTZjMCwuNDUsMCwuODkuMDcsMS4zM2wwLDBoMGExNCwxNCwwLDEsMCwyNy42OC00Wk0xMC43Niw2LjI3YzAsLjIxLjA2LjQzLjEuNjQuMDkuNDQuMjEuODcuMzMsMS4zYTIuMjgsMi4yOCwwLDAsMC0xLjEsMi4yNUExOC4zMiwxOC4zMiwwLDAsMCw1LjksMTQuMjIsMTIsMTIs''@;'; + put 'put ''MCwwLDEsMTAuNzYsNi4yN1ptMCwxNS43MUEyLjM0LDIuMzQsMCwwLDAsOS4yLDIzLjc0bC0uNjQsMEExMS45NCwxMS45NCwwLDAsMSw1LjgsMTYuOTJsLjExLS4xOWExNi45LDE2LjksMCwwLDEsNC44MS00Ljg5LDIuMzEsMi4zMSwwLDAsMCwyLjI4LjYzLDE3LjUzLDE3LjUzLDAsMCwwLDUu''@;'; + put 'put ''MzUsNS42NWMuNDEuMjcuODMuNTIsMS4yNS43NkEyLjMyLDIuMzIsMCwwLDAsMTkuNzgsMjBhMTYuOTQsMTYuOTQsMCwwLDEtNi4yLDMuMTFBMi4zNCwyLjM0LDAsMCwwLDEwLjc2LDIyWm03LDZhMTEuOTIsMTEuOTIsMCwwLDEtNS44MS0xLjUxbC4yOC0uMDZhMi4zNCwyLjM0LDAsMCwwLDEu''@;'; + put 'put ''NTctMS43OSwxOC40MywxOC40MywwLDAsMCw3LTMuNSwyLjI5LDIuMjksMCwwLDAsMy0uNjIsMTcuNDEsMTcuNDEsMCwwLDAsNC4zMi41NmwuNTMsMEExMiwxMiwwLDAsMSwxNy43NSwyOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdl''@;'; + put 'put ''ZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi41OCwzMmgtMThhMSwxLDAs''@;'; + put 'put ''MSwwLDAsMmgxOGExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNC43Miw5Ljg3YTIuMjUsMi4yNSwwLDAsMS0uNDcsMS43NywxNiwxNiwwLDAsMCw0LjkzLDUuMjNjLjM0LjIzLjY5LjQzLDEs''@;'; + put 'put ''LjYzYTIuMjgsMi4yOCwwLDAsMSwyLjU4LS41NywxNi45LDE2LjksMCwwLDAsMy4xMS03QTE3LDE3LDAsMCwwLDE0LjcyLDkuODdaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE3Ljc1LDJhMTQsMTQsMCwwLDAtMTQs''@;'; + put 'put ''MTRjMCwuNDUsMCwuODkuMDcsMS4zM2wwLDBoMEExNCwxNCwwLDEsMCwxNy43NSwyWk0yOC4xLDIxLjA5YTE3LjQxLDE3LjQxLDAsMCwxLTQuMzItLjU2LDIuMjksMi4yOSwwLDAsMS0zLC42MiwxOC40MywxOC40MywwLDAsMS03LDMuNSwyLjM0LDIuMzQsMCwwLDEtMS41NywxLjc5bC0uMjku''@;'; + put 'put ''MDZhMTEuOTMsMTEuOTMsMCwwLDEtMy4zOS0yLjhsLjY2LDBhMi4zMywyLjMzLDAsMCwxLDQuMzctLjU4QTE2Ljk0LDE2Ljk0LDAsMCwwLDE5Ljc4LDIwYTIuMzIsMi4zMiwwLDAsMS0uMTgtMS4xN2MtLjQyLS4yNC0uODQtLjQ5LTEuMjUtLjc2QTE3LjUzLDE3LjUzLDAsMCwxLDEzLDEyLjQ3''@;'; + put 'put ''YTIuMzEsMi4zMSwwLDAsMS0yLjI4LS42MywyNy4zMSwyNy4zMSwwLDAsMC01LDQuNzRjMC0uMiwwLS4zOSwwLS41N2ExMiwxMiwwLDAsMSwuMTQtMS43MywxOC43NSwxOC43NSwwLDAsMSw0LjItMy44LDIuMjgsMi4yOCwwLDAsMSwxLjEtMi4yNWMtLjEyLS40My0uMjQtLjg2LS4zMy0xLjMs''@;'; + put 'put ''MC0uMTQsMC0uMjktLjExLS42NGExMiwxMiwwLDAsMSwxLjM3LS44N2MuMS41OS4xNC45LjIxLDEuMjFzLjIuODUuMzIsMS4yN2wuMjUsMEEyLjMzLDIuMzMsMCwwLDEsMTQsOC41M2ExOC41MSwxOC41MSwwLDAsMSwxMi4xMS0uMDdjMC0uMzIsMC0uNjUsMC0xaDBhMTIsMTIsMCwwLDEsMi42''@;'; + put 'put ''MiwzLjg1aDBxLS43My0uNDMtMS40OC0uNzhhMTguNCwxOC40LDAsMCwxLTMuMzksNy4zNywyLjMzLDIuMzMsMCwwLDEsLjMzLDEuMTksMjIsMjIsMCwwLDAsNSwuNDUsMTEuODgsMTEuODgsMCwwLDEtLjYxLDEuNTNaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiAv''@;'; + put 'put ''PlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2LjU4LDMyaC0xOGExLDEsMCwxLDAsMCwyaDE4YTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMxLjczLDE1LjRI''@;'; + put 'put ''MjUuNTZhMTguODcsMTguODcsMCwwLDEtMS42MiwyLjUyLDIuMzMsMi4zMywwLDAsMSwuMzMsMS4xOSwyMiwyMiwwLDAsMCw1LC40NSwxMS44OCwxMS44OCwwLDAsMS0uNjEsMS41M0gyOC4xYTE3LjQxLDE3LjQxLDAsMCwxLTQuMzItLjU2LDIuMjksMi4yOSwwLDAsMS0zLC42MiwxOC40Mywx''@;'; + put 'put ''OC40MywwLDAsMS03LDMuNSwyLjM0LDIuMzQsMCwwLDEtMS41NywxLjc5bC0uMjkuMDZhMTEuOTMsMTEuOTMsMCwwLDEtMy4zOS0yLjhsLjY2LDBhMi4zMywyLjMzLDAsMCwxLDQuMzctLjU4QTE2Ljk0LDE2Ljk0LDAsMCwwLDE5Ljc4LDIwYTIuMzIsMi4zMiwwLDAsMS0uMTgtMS4xN2MtLjQy''@;'; + put 'put ''LS4yNC0uODQtLjQ5LTEuMjUtLjc2QTE3LjUzLDE3LjUzLDAsMCwxLDEzLDEyLjQ3YTIuMzEsMi4zMSwwLDAsMS0yLjI4LS42MywyNy4zMSwyNy4zMSwwLDAsMC01LDQuNzRjMC0uMiwwLS4zOSwwLS41N2ExMiwxMiwwLDAsMSwuMTQtMS43MywxOC43NSwxOC43NSwwLDAsMSw0LjItMy44LDIu''@;'; + put 'put ''MjgsMi4yOCwwLDAsMSwxLjEtMi4yNWMtLjEyLS40My0uMjQtLjg2LS4zMy0xLjMsMC0uMTQsMC0uMjktLjExLS42NGExMiwxMiwwLDAsMSwxLjM3LS44N2MuMS41OS4xNC45LjIxLDEuMjFzLjIuODUuMzIsMS4yN2wuMjUsMEEyLjMzLDIuMzMsMCwwLDEsMTQsOC41M2ExOC41OSwxOC41OSww''@;'; + put 'put ''LDAsMSw2LjM5LTFMMjMsM0ExNCwxNCwwLDAsMCwzLjc1LDE2YzAsLjQ1LDAsLjg5LjA3LDEuMzNsMCwwaDBBMTQsMTQsMCwwLDAsMzEuNzYsMTZDMzEuNzYsMTUuOCwzMS43NCwxNS42LDMxLjczLDE1LjRaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0y''@;'; + put 'put ''LS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE0LjI2LDExLjY0YTE2LDE2LDAsMCwwLDQuOTMsNS4yM2MuMzQuMjMuNjkuNDMsMSwuNjNhMi4yOCwyLjI4LDAsMCwxLDIuNTgtLjU3LDE3LjI5LDE3LjI5LDAsMCwwLDEtMS41NGgtMS42QTMuNjgsMy42OCwwLDAsMSwxOSw5''@;'; + put 'put ''Ljg5TDE5LjU2LDlhMTcuMDgsMTcuMDgsMCwwLDAtNC44NC44OCwyLjI1LDIuMjUsMCwwLDEtLjQ3LDEuNzdaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0zLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMs''@;'; + put 'put ''MTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTQtLWFsZXJ0ZWQgY2xyLWktYWxl''@;'; + put 'put ''cnQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuNTgsMzJoLTE4YTEsMSwwLDEsMCwwLDJoMThhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzEuNSwxMy4z''@;'; + put 'put ''NWE3LjU0LDcuNTQsMCwwLDEtMS41LjE1LDcuNDYsNy40NiwwLDAsMS0zLjI4LS43NiwxOC41OSwxOC41OSwwLDAsMS0yLjc4LDUuMTgsMi4zMywyLjMzLDAsMCwxLC4zMywxLjE5LDIyLDIyLDAsMCwwLDUsLjQ1LDExLjg4LDExLjg4LDAsMCwxLS42MSwxLjUzSDI4LjFhMTcuNDEsMTcuNDEs''@;'; + put 'put ''MCwwLDEtNC4zMi0uNTYsMi4yOSwyLjI5LDAsMCwxLTMsLjYyLDE4LjQzLDE4LjQzLDAsMCwxLTcsMy41LDIuMzQsMi4zNCwwLDAsMS0xLjU3LDEuNzlsLS4yOS4wNmExMS45MywxMS45MywwLDAsMS0zLjM5LTIuOGwuNjYsMGEyLjMzLDIuMzMsMCwwLDEsNC4zNy0uNThBMTYuOTQsMTYuOTQs''@;'; + put 'put ''MCwwLDAsMTkuNzgsMjBhMi4zMiwyLjMyLDAsMCwxLS4xOC0xLjE3Yy0uNDItLjI0LS44NC0uNDktMS4yNS0uNzZBMTcuNTMsMTcuNTMsMCwwLDEsMTMsMTIuNDdhMi4zMSwyLjMxLDAsMCwxLTIuMjgtLjYzLDI3LjMxLDI3LjMxLDAsMCwwLTUsNC43NGMwLS4yLDAtLjM5LDAtLjU3YTEyLDEy''@;'; + put 'put ''LDAsMCwxLC4xNC0xLjczLDE4Ljc1LDE4Ljc1LDAsMCwxLDQuMi0zLjgsMi4yOCwyLjI4LDAsMCwxLDEuMS0yLjI1Yy0uMTItLjQzLS4yNC0uODYtLjMzLTEuMywwLS4xNCwwLS4yOS0uMTEtLjY0YTEyLDEyLDAsMCwxLDEuMzctLjg3Yy4xLjU5LjE0LjkuMjEsMS4yMXMuMi44NS4zMiwxLjI3''@;'; + put 'put ''bC4yNSwwQTIuMzMsMi4zMywwLDAsMSwxNCw4LjUzYTE4LjU2LDE4LjU2LDAsMCwxLDguNjUtLjg3LDcuNDUsNy40NSwwLDAsMSwuNDEtNC41OUExNCwxNCwwLDAsMCwzLjc1LDE2YzAsLjQ1LDAsLjg5LjA3LDEuMzNsMCwwaDBhMTQsMTQsMCwxLDAsMjcuNjgtNFoiIGNsYXNzPSJjbHItaS1z''@;'; + put 'put ''b2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTQuNzIsOS44N2EyLjI1LDIuMjUsMCwwLDEtLjQ3LDEuNzcsMTYsMTYsMCwwLDAsNC45Myw1LjIzYy4zNC4yMy42OS40MywxLC42M2EyLjI4LDIuMjgsMCwwLDEsMi41OC0u''@;'; + put 'put ''NTcsMTcsMTcsMCwwLDAsMi42MS01LDcuNTIsNy41MiwwLDAsMS0yLjE2LTIuNjdBMTcsMTcsMCwwLDAsMTQuNzIsOS44N1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYi''@;'; + put 'put ''IHI9IjUiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtNC0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICcpLEwuQ2xyU2hhcGVOZXR3b3JrU2V0dGluZ3M9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTEwLjg1LDI3LjQ0YTIuMjksMi4yOSww''@;'; + put 'put ''LDAsMCwxLjc0LTEuNjhjLjU0LS4xNCwxLjA2LS4zMiwxLjU5LS41MXYtMS4yYTIuNzcsMi43NywwLDAsMSwuMDYtLjUxLDE3LjQ0LDE3LjQ0LDAsMCwxLTEuODIuNjIsMi4yOCwyLjI4LDAsMCwwLTQuMjguNjNsLS40NSwwaDBhMTEuOTMsMTEuOTMsMCwwLDEtMi44OC03LjI3LDE3Ljc5LDE3''@;'; + put 'put ''Ljc5LDAsMCwxLDUtNC43MiwyLjIzLDIuMjMsMCwwLDAsMi4yOS41NiwxOC41MiwxOC41MiwwLDAsMCw0LjQ3LDUsMi43NCwyLjc0LDAsMCwxLC4yMS0uMjRsLjk1LS45MWExNi45LDE2LjksMCwwLDEtNC4zNS00Ljc5LDIuMjcsMi4yNywwLDAsMCwuMzUtMS4yYzAtLjA3LDAtLjE0LDAtLjIy''@;'; + put 'put ''QTE3LjY5LDE3LjY5LDAsMCwxLDI1LDExYTE3LjQ5LDE3LjQ5LDAsMCwxLTEuMTUsMy4zNGwuMTksMGgxLjU2YTE5LDE5LDAsMCwwLC45MS0yLjcyYy40My4xOS44NC40MSwxLjI2LjY0YTExLjk0LDExLjk0LDAsMCwxLDEsNC4wOWwwLDBBMi43NywyLjc3LDAsMCwxLDMwLDE2YTIuNzMsMi43''@;'; + put 'put ''MywwLDAsMSwuNjguMUExNCwxNCwwLDEsMCwxNi4wOCwzMWEyLjcyLDIuNzIsMCwwLDEsMC0yQTExLjkzLDExLjkzLDAsMCwxLDEwLjg1LDI3LjQ0Wk0xNi43Niw1YTEyLDEyLDAsMCwxLDguNjEsMy42NmMwLC4yNSwwLC41MS0uMDguNzZhMTkuMjEsMTkuMjEsMCwwLDAtMTIuMzUuMTFBMi4y''@;'; + put 'put ''OCwyLjI4LDAsMCwwLDExLjc0LDlhMTcsMTcsMCwwLDEtLjYxLTIuNTNBMTEuOTIsMTEuOTIsMCwwLDEsMTYuNzYsNVpNOS42Niw3LjM2YTE4LjcyLDE4LjcyLDAsMCwwLC40OSwxLjkyLDIuMjgsMi4yOCwwLDAsMC0xLjA3LDEuOTNzMCwuMSwwLC4xNUExOS40NSwxOS40NSwwLDAsMCw1LDE0''@;'; + put 'put ''Ljc5LDEyLDEyLDAsMCwxLDkuNjYsNy4zNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI1LDIxLjE5QTMuODQsMy44NCwwLDEsMCwyOC44OCwyNSwzLjg3LDMuODcsMCwwLDAsMjUsMjEuMTlabTAsNi4wOEEy''@;'; + put 'put ''LjI0LDIuMjQsMCwxLDEsMjcuMjgsMjUsMi4yNiwyLjI2LDAsMCwxLDI1LDI3LjI3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzQuMTcsMjQuMTRhMS4xNCwxLjE0LDAsMCwwLS43LTEuMWwtMS41Ni0uNDZx''@;'; + put 'put ''LS4xMS0uMzItLjI2LS42M2wuNzItMS4zM2ExLjE0LDEuMTQsMCwwLDAtLjIxLTEuMzRsLTEuMzQtMS4zMmExLjE0LDEuMTQsMCwwLDAtMS4zNC0uMmwtMS4zNC43MWE3LjI4LDcuMjgsMCwwLDAtLjY3LS4yOEwyNywxNi43MWExLjE0LDEuMTQsMCwwLDAtMS4wOC0uNzZIMjRhMS4xNCwxLjE0''@;'; + put 'put ''LDAsMCwwLTEuMDguOGwtLjQ0LDEuNDNhNy4zMiw3LjMyLDAsMCwwLS42OC4yOGwtMS4zMi0uN2ExLjE0LDEuMTQsMCwwLDAtMS4zMy4xOWwtMS4zNywxLjMxYTEuMTQsMS4xNCwwLDAsMC0uMjEsMS4zNWwuNywxLjI4cS0uMTYuMzItLjI4LjY1TDE2LjU4LDIzYTEuMTMsMS4xMywwLDAsMC0u''@;'; + put 'put ''ODEsMS4wOXYxLjg3QTEuMTQsMS4xNCwwLDAsMCwxNi41OSwyN2wxLjQ3LjQ0cS4xMi4zMi4yOC42NGwtLjcyLDEuMzVhMS4xNCwxLjE0LDAsMCwwLC4yLDEuMzVsMS4zNCwxLjMyYTEuMTQsMS4xNCwwLDAsMCwxLjM0LjJsMS4zNy0uNzJxLjMxLjE0LjYzLjI2bC40NCwxLjQ3YTEuMTQsMS4x''@;'; + put 'put ''NCwwLDAsMCwxLjA5LjhoMS45QTEuMTQsMS4xNCwwLDAsMCwyNywzMy4zMWwuNDQtMS40N2MuMjEtLjA3LjQyLS4xNi42Mi0uMjVsMS4zOC43M2ExLjE0LDEuMTQsMCwwLDAsMS4zMy0uMmwxLjM0LTEuMzJhMS4xNCwxLjE0LDAsMCwwLC4yMS0xLjM1bC0uNzMtMS4zNHEuMTQtLjMuMjUtLjZs''@;'; + put 'put ''MS41LS40NEExLjEzLDEuMTMsMCwwLDAsMzQuMTcsMjZabS0xLjYsMS41LTIsLjU4LS4xMi40MkE1LjU1LDUuNTUsMCwwLDEsMzAsMjcuNzNsLS4yMS4zOCwxLDEuNzktLjg2Ljg0LTEuODItMS0uMzcuMmE1Ljc4LDUuNzgsMCwwLDEtMS4xMi40NmwtLjQyLjEyLS41OSwySDI0LjM4bC0uNTkt''@;'; + put 'put ''MS45NS0uNDItLjEyQTUuODYsNS44NiwwLDAsMSwyMi4yNCwzMGwtLjM3LS4yLTEuODEsMS0uODYtLjg1LDEtMS44Mi0uMjItLjM4YTUuNiw1LjYsMCwwLDEtLjQ5LTEuMTNsLS4xMy0uNDEtMS45NS0uNThWMjQuNDJsMS45NC0uNTguMTItLjQxYTUuNTMsNS41MywwLDAsMSwuNDktMS4xNGwu''@;'; + put 'put ''MjItLjM5LTEtMS43My44Ny0uODQsMS43Ny45NC4zOC0uMjFhNS44LDUuOCwwLDAsMSwxLjE3LS40OWwuNDEtLjEyLjU5LTEuOTFoMS4yM2wuNTgsMS45LjQxLjEyYTUuNzksNS43OSwwLDAsMSwxLjE2LjQ4bC4zOC4yMSwxLjgtLjk1Ljg2Ljg1LTEsMS43Ny4yMS4zOGE1LjUzLDUuNTMsMCww''@;'; + put 'put ''LDEsLjQ3LDEuMTNsLjEyLjQyLDEuOTMuNTdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zNCwyMy42MywzMiwyM2E3LjA2LDcuMDYsMCwwLDAtLjU4LTEuNDFsMS0xLjg2YS4zNy4zNywwLDAsMC0uMDctLjQ0''@;'; + put 'put ''TDMwLjksMTcuODZhLjM3LjM3LDAsMCwwLS40NC0uMDdsLTEuODUsMWE3LDcsMCwwLDAtMS40My0uNjFsLS42MS0yYS4zNy4zNywwLDAsMC0uMzYtLjI1aC0yYS4zNy4zNywwLDAsMC0uMzUuMjZsLS42MSwyYTcsNywwLDAsMC0xLjQ0LjYxTDIwLDE3LjhhLjM3LjM3LDAsMCwwLS40NC4wN0wx''@;'; + put 'put ''OCwxOS4zMWEuMzcuMzcsMCwwLDAtLjA3LjQ0bDEsMS44MkE3LDcsMCwwLDAsMTguMzUsMjNsLTIsLjYxYS4zNy4zNywwLDAsMC0uMjYuMzV2MmEuMzcuMzcsMCwwLDAsLjI2LjM1bDIsLjYxQTcsNywwLDAsMCwxOSwyOC4zN2wtMSwxLjlhLjM3LjM3LDAsMCwwLC4wNy40NGwxLjQ1LDEuNDVh''@;'; + put 'put ''LjM3LjM3LDAsMCwwLC40NC4wN2wxLjg3LTFhNy4wNiw3LjA2LDAsMCwwLDEuMzkuNTdsLjYxLDJhLjM3LjM3LDAsMCwwLC4zNS4yNmgyYS4zNy4zNywwLDAsMCwuMzUtLjI2bC42MS0yYTcsNywwLDAsMCwxLjM4LS41N2wxLjg5LDFhLjM3LjM3LDAsMCwwLC40NC0uMDdsMS40NS0xLjQ1YS4z''@;'; + put 'put ''Ny4zNywwLDAsMCwuMDctLjQ0bC0xLTEuODhBNyw3LDAsMCwwLDMxLjk1LDI3bDItLjYxYS4zNy4zNywwLDAsMCwuMjYtLjM1VjI0QS4zNy4zNywwLDAsMCwzNCwyMy42M1ptLTguODMsNC43MkEzLjMzLDMuMzMsMCwxLDEsMjguNTMsMjUsMy4zMywzLjMzLDAsMCwxLDI1LjE5LDI4LjM0WiIg''@;'; + put 'put ''Y2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMC44NSwyNy40NGEyLjI5LDIuMjksMCwwLDAsMS43NC0xLjY4LDE5LjcxLDE5LjcxLDAsMCwwLDEuODktLjZWMjMuOTVhMiwyLDAsMCwxLC4wOS0uNTUsMTcuNDIsMTcuNDIs''@;'; + put 'put ''MCwwLDEtMi4xNy43OCwyLjI4LDIuMjgsMCwwLDAtNC4yOC42M2wtLjQ1LDBoMGExMS45MywxMS45MywwLDAsMS0yLjg4LTcuMjcsMTcuNzksMTcuNzksMCwwLDEsNS00LjcyLDIuMjMsMi4yMywwLDAsMCwyLjI5LjU2LDE4LjUyLDE4LjUyLDAsMCwwLDQuNjUsNS4wOSwxLjkzLDEuOTMsMCww''@;'; + put 'put ''LDEsLjIzLS4zMmwuODktLjg3YTE2Ljg5LDE2Ljg5LDAsMCwxLTQuNDktNC44OSwyLjI3LDIuMjcsMCwwLDAsLjM1LTEuMmMwLS4wNywwLS4xNCwwLS4yMkExNy42OSwxNy42OSwwLDAsMSwyNSwxMWExNy40OSwxNy40OSwwLDAsMS0xLjE1LDMuMzUsMS45NCwxLjk0LDAsMCwxLC4zMS0uMDVo''@;'; + put 'put ''MS40NWExOS4wNiwxOS4wNiwwLDAsMCwuOS0yLjdjLjQzLjE5Ljg0LjQxLDEuMjYuNjRhMTEuOTMsMTEuOTMsMCwwLDEsMSw0LjYzbDEtLjUxYTIsMiwwLDAsMSwuOTItLjIzaC4wOEExNCwxNCwwLDEsMCwxNi40NCwzMWExLjk0LDEuOTQsMCwwLDEsLjEyLTEuNDZsLjI4LS41M2gtLjA3QTEx''@;'; + put 'put ''LjkxLDExLjkxLDAsMCwxLDEwLjg1LDI3LjQ0Wk0xNi43Niw1YTEyLDEyLDAsMCwxLDguNjEsMy42NmMwLC4yNSwwLC41MS0uMDguNzZhMTkuMjEsMTkuMjEsMCwwLDAtMTIuMzUuMTFBMi4yOCwyLjI4LDAsMCwwLDExLjc0LDlhMTcsMTcsMCwwLDEtLjYxLTIuNTNBMTEuOTIsMTEuOTIsMCww''@;'; + put 'put ''LDEsMTYuNzYsNVpNOS42Niw3LjM2YTE4LjcyLDE4LjcyLDAsMCwwLC40OSwxLjkyLDIuMjgsMi4yOCwwLDAsMC0xLjA3LDEuOTNzMCwuMSwwLC4xNUExOS40NSwxOS40NSwwLDAsMCw1LDE0Ljc5LDEyLDEyLDAsMCwxLDkuNjYsNy4zNloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xp''@;'; + put 'put ''ZC1wYXRoLTIiIC8+XG4gICAgICAgICcpLEwuQ2xyU2hhcGVOZXR3b3JrU3dpdGNoPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMy45MSwxOC40NywzMC43OCw4LjQxQTIsMiwwLDAsMCwyOC44Nyw3SDcuMTNBMiwyLDAsMCwwLDUuMjIsOC40MUwyLjA5LDE4LjQ4YTIsMiwwLDAsMC0u''@;'; + put 'put ''MDkuNTlWMjdhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjE5LjA2QTIsMiwwLDAsMCwzMy45MSwxOC40N1pNMzIsMjdINFYxOS4wNkw3LjEzLDlIMjguODdMMzIsMTkuMDZaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAg''@;'; + put 'put ''IDxyZWN0IHg9IjcuMTIiIHk9IjIyIiB3aWR0aD0iMS44IiBoZWlnaHQ9IjMiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTIuMTIiIHk9IjIyIiB3aWR0aD0iMS44IiBoZWlnaHQ9IjMiIGNsYXNzPSJjbHItaS1v''@;'; + put 'put ''dXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTcuMTEiIHk9IjIyIiB3aWR0aD0iMS44IiBoZWlnaHQ9IjMiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMjIuMSIg''@;'; + put 'put ''eT0iMjIiIHdpZHRoPSIxLjgiIGhlaWdodD0iMyIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIyNy4xIiB5PSIyMiIgd2lkdGg9IjEuOCIgaGVpZ2h0PSIzIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRs''@;'; + put 'put ''aW5lLXBhdGgtNiIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjYuMjMiIHk9IjE4IiB3aWR0aD0iMjMuNjkiIGhlaWdodD0iMS40IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNyIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjcuMTIiIHk9IjIyIiB3aWR0aD0i''@;'; + put 'put ''MS44IiBoZWlnaHQ9IjMiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTIuMTIiIHk9IjIyIiB3aWR0aD0iMS44IiBoZWlnaHQ9IjMiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVy''@;'; + put 'put ''dGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTcuMTEiIHk9IjIyIiB3aWR0aD0iMS44IiBoZWlnaHQ9IjMiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIiAvPlxuICAg''@;'; + put 'put ''ICAgICAgICAgPHJlY3QgeD0iMjIuMSIgeT0iMjIiIHdpZHRoPSIxLjgiIGhlaWdodD0iMyIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIyNy4xIiB5PSIyMiIgd2lkdGg9IjEuOCIg''@;'; + put 'put ''aGVpZ2h0PSIzIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjYuMjMiIHk9IjE4IiB3aWR0aD0iMjMuNjkiIGhlaWdodD0iMS40IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRl''@;'; + put 'put ''ZCBjbHItaS1vdXRsaW5lLXBhdGgtNi0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy45MSwxOC40NywzMywxNS40SDMwLjg2TDMyLDE5LjA2VjI3SDRWMTkuMDZMNy4xMyw5SDE5LjU2bDEuMTUtMkg3LjEzQTIsMiwwLDAsMCw1LjIyLDguNDFMMi4wOSwxOC40OGEyLDIs''@;'; + put 'put ''MCwwLDAtLjA5LjU5VjI3YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYxOS4wNkEyLDIsMCwwLDAsMzMuOTEsMTguNDdaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNy0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0y''@;'; + put 'put ''Ni44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiICBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgt''@;'; + put 'put ''OC0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjcuMTIiIHk9IjIyIiB3aWR0aD0iMS44IiBoZWlnaHQ9IjMiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxyZWN0''@;'; + put 'put ''IHg9IjEyLjEyIiB5PSIyMiIgd2lkdGg9IjEuOCIgaGVpZ2h0PSIzIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNy4xMSIgeT0iMjIiIHdpZHRoPSIxLjgiIGhlaWdodD0iMyIgY2xh''@;'; + put 'put ''c3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMjIuMSIgeT0iMjIiIHdpZHRoPSIxLjgiIGhlaWdodD0iMyIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgt''@;'; + put 'put ''NC0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMjcuMSIgeT0iMjIiIHdpZHRoPSIxLjgiIGhlaWdodD0iMyIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iNi4yMyIgeT0i''@;'; + put 'put ''MTgiIHdpZHRoPSIyMy42OSIgaGVpZ2h0PSIxLjQiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTYtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy45MSwxOC40N2wtMS42NS01LjMyYTcuNDksNy40OSwwLDAsMS0yLC4zM0wzMiwx''@;'; + put 'put ''OS4wNlYyN0g0VjE5LjA2TDcuMTMsOWgxNmE3LjQ1LDcuNDUsMCwwLDEtLjU1LTJINy4xM0EyLDIsMCwwLDAsNS4yMiw4LjQxTDIuMDksMTguNDhhMiwyLDAsMCwwLS4wOS41OVYyN2EyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMTkuMDZBMiwyLDAsMCwwLDMzLjkxLDE4LjQ3WiIg''@;'; + put 'put ''Y2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNy0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtOC0tYmFkZ2VkIGNs''@;'; + put 'put ''ci1pLWJhZGdlIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLjkxLDE4LjQ3LDMwLjc4LDguNDFBMiwyLDAsMCwwLDI4Ljg3LDdINy4xM0EyLDIsMCwwLDAsNS4yMiw4LjQxTDIuMDksMTguNDhhMiwyLDAsMCwwLS4wOS41OVYyN2EyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJW''@;'; + put 'put ''MTkuMDZBMiwyLDAsMCwwLDMzLjkxLDE4LjQ3Wk04LjkyLDI1SDcuMTJWMjJoMS44Wm01LDBoLTEuOFYyMmgxLjhabTUsMGgtMS44VjIyaDEuOFptNSwwSDIyLjFWMjJoMS44Wm01LDBIMjcuMVYyMmgxLjhaTTMxLDE5LjRINVYxOEgzMVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xp''@;'; + put 'put ''ZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMsMTUuNEgyMi4yM0EzLjY4LDMuNjgsMCwwLDEsMTksOS44OUwyMC43MSw3SDcuMTNBMiwyLDAsMCwwLDUuMjIsOC40MUwyLjA5LDE4LjQ4YTIsMiwwLDAsMC0uMDkuNTlWMjdhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAs''@;'; + put 'put ''Mi0yVjE5LjA2YTIsMiwwLDAsMC0uMDktLjU5Wk04LjkyLDI1SDcuMTJWMjJoMS44Wm01LDBoLTEuOFYyMmgxLjhabTUsMGgtMS44VjIyaDEuOFptNSwwSDIyLjFWMjJoMS44Wm01LDBIMjcuMVYyMmgxLjhaTTMxLDE5LjRINVYxOEgzMVoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBj''@;'; + put 'put ''bHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEu''@;'; + put 'put ''MTRaIiAgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMi4yNiwxMy4xNUE3LjQ5LDcuNDksMCwwLDEsMjIuNTcsN0g3LjEzQTIsMiwwLDAsMCw1LjIyLDguNDFMMi4w''@;'; + put 'put ''OSwxOC40OGEyLDIsMCwwLDAtLjA5LjU5VjI3YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYxOS4wNmEyLDIsMCwwLDAtLjA5LS41OVpNOC45MiwyNUg3LjEyVjIyaDEuOFptNSwwaC0xLjhWMjJoMS44Wm01LDBoLTEuOFYyMmgxLjhabTUsMEgyMi4xVjIyaDEuOFptNSwwSDI3LjFW''@;'; + put 'put ''MjJoMS44Wk0zMSwxOS40SDVWMThIMzFaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlk''@;'; + put 'put ''LXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPlxuICAgICAgICAnKSxMLkNsclNoYXBlUm91dGVyPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xOCwxNC44N2w1LjExLTUuMTRhMSwxLDAsMSwwLTEuNDItMS40MUwxOSwxMVYzLjMzYTEsMSwwLDAsMC0yLDBWMTFMMTQuMzEsOC4z''@;'; + put 'put ''MmExLDEsMCwxLDAtMS40MiwxLjQxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMjEuMTNsLTUuMTEsNS4xNGExLDEsMCwwLDAsMS40MiwxLjQxTDE3LDI1djcuNjlhMSwxLDAsMCwwLDIsMFYyNWwyLjY5''@;'; + put 'put ''LDIuNzFhMSwxLDAsMCwwLDEuNDItMS40MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4Ljg1LDEyLjg5YTEsMSwwLDAsMC0xLjQxLDEuNDJMMzAuMTUsMTdIMjIuNDZhMSwxLDAsMSwwLDAsMmg3LjY5bC0y''@;'; + put 'put ''LjcxLDIuNjlhMSwxLDAsMCwwLDEuNDEsMS40MkwzNCwxOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTUuODUsMTloNy42OWExLDEsMCwwLDAsMC0ySDUuODVsMi43MS0yLjY5YTEsMSwwLDEsMC0xLjQxLTEu''@;'; + put 'put ''NDJMMiwxOGw1LjE0LDUuMTFhMSwxLDAsMSwwLDEuNDEtMS40MloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDIxLjEzbC01LjExLDUuMTRhMSwxLDAsMCwwLDEuNDIsMS40MUwxNywyNXY3LjY5YTEsMSww''@;'; + put 'put ''LDAsMCwyLDBWMjVsMi42OSwyLjcxYTEsMSwwLDAsMCwxLjQyLTEuNDFaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik01Ljg1LDE5aDcuNjlhMSwxLDAsMCwwLDAtMkg1Ljg1bDIu''@;'; + put 'put ''NzEtMi42OWExLDEsMCwxLDAtMS40MS0xLjQyTDIsMThsNS4xNCw1LjExYTEsMSwwLDEsMCwxLjQxLTEuNDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMS4zOCwxNS40SDI4''@;'; + put 'put ''LjU0TDMwLjE1LDE3SDIyLjQ2YTEsMSwwLDEsMCwwLDJoNy42OWwtMi43MSwyLjY5YTEsMSwwLDAsMCwxLjQxLDEuNDJMMzQsMThaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0x''@;'; + put 'put ''OCwxNC44N2wxLjE1LTEuMTYtLjEtLjE1QTMuNjgsMy42OCwwLDAsMSwxOSwxMFYzLjMzYTEsMSwwLDAsMC0yLDBWMTFMMTQuMzEsOC4zMmExLDEsMCwxLDAtMS40MiwxLjQxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWFsZXJ0ZWQiIC8+''@;'; + put 'put ''XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiAgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFs''@;'; + put 'put ''ZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMTQuODdsNS4xMS01LjE0YTEsMSwwLDEsMC0xLjQyLTEuNDFMMTksMTFWMy4zM2ExLDEsMCwwLDAtMiwwVjExTDE0LjMxLDguMzJhMSwxLDAsMSwwLTEu''@;'; + put 'put ''NDIsMS40MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwyMS4xM2wtNS4xMSw1LjE0YTEsMSwwLDAsMCwxLjQyLDEuNDFMMTcsMjV2Ny42OWExLDEsMCwwLDAsMiwwVjI1bDIu''@;'; + put 'put ''NjksMi43MWExLDEsMCwwLDAsMS40Mi0xLjQxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4Ljg1LDEyLjg5YTEsMSwwLDAsMC0xLjQxLDEuNDJMMzAuMTUsMTdIMjIuNDZhMSwx''@;'; + put 'put ''LDAsMSwwLDAsMmg3LjY5bC0yLjcxLDIuNjlhMSwxLDAsMCwwLDEuNDEsMS40MkwzNCwxOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik01Ljg1LDE5aDcuNjlhMSwxLDAsMCwwLDAt''@;'; + put 'put ''Mkg1Ljg1bDIuNzEtMi42OWExLDEsMCwxLDAtMS40MS0xLjQyTDIsMThsNS4xNCw1LjExYTEsMSwwLDEsMCwxLjQxLTEuNDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIg''@;'; + put 'put ''Y3k9IjYiIHI9IjUiICBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC01LS1iYWRnZWQgY2xyLWktYmFkZ2UiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMS42N2ExNiwxNiwwLDEsMCwxNiwxNkExNiwxNiwwLDAsMCwxOCwxLjY3Wk0xMy44Niw5''@;'; + put 'put ''LjkyYS44LjgsMCwwLDEsMS4xMywwbDIuMjEsMi4xOVY1LjkzYS44LjgsMCwwLDEsMS42LDB2Ni4xOEwyMSw5LjkyYS44LjgsMCwxLDEsMS4xMywxLjE0TDE4LDE1LjE1bC00LjE0LTQuMUEuOC44LDAsMCwxLDEzLjg2LDkuOTJaTTEwLjMyLDIxLjc0YS44LjgsMCwwLDEtMS4xMywwTDUsMTcu''@;'; + put 'put ''NjdsNC4xOS00LjA5YS44LjgsMCwxLDEsMS4xMiwxLjE0bC0yLjIsMi4xNGg2LjI3YS44LjgsMCwwLDEsMCwxLjZIOC4xMWwyLjIsMi4xNUEuOC44LDAsMCwxLDEwLjMyLDIxLjc0Wm0xMS44MiwzLjY3YS44LjgsMCwwLDEtMS4xMywwTDE4LjgsMjMuMjNWMjkuNGEuOC44LDAsMCwxLTEuNiww''@;'; + put 'put ''VjIzLjIzTDE1LDI1LjQyYS44LjgsMCwxLDEtMS4xMy0xLjE0TDE4LDIwLjE4bDQuMTQsNC4xQS44LjgsMCwwLDEsMjIuMTQsMjUuNDFabTQuNjctMy42NmEuOC44LDAsMSwxLTEuMTItMS4xNGwyLjItMi4xNUgyMS42M2EuOC44LDAsMCwxLDAtMS42aDYuMjdsLTIuMi0yLjE0YS44LjgsMCwx''@;'; + put 'put ''LDEsMS4xMi0xLjE0TDMxLDE3LjY3WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy44MiwxNS4zOUgyOC42OEwzMSwxNy42N2wtNC4xOSw0LjA5YS44LjgsMCwxLDEtMS4xMi0xLjE0bDIuMi0yLjE1SDIxLjYzYS44''@;'; + put 'put ''LjgsMCwwLDEsMC0xLjZoNi4yN2wtMS41LTEuNDdIMjIuMjNhMy42OCwzLjY4LDAsMCwxLTMtMS41MUwxOCwxNS4xNWwtNC4xNC00LjFBLjguOCwwLDEsMSwxNSw5LjkybDIuMjEsMi4xOVY1LjkzYS44LjgsMCwwLDEsMS42LDB2NC40OUEzLjY1LDMuNjUsMCwwLDEsMTksOS44OWw0LjIyLTcu''@;'; + put 'put ''MzFBMTYsMTYsMCwxLDAsMzQsMTcuNjcsMTYsMTYsMCwwLDAsMzMuODIsMTUuMzlabS0yMy41LDYuMzVhLjguOCwwLDAsMS0xLjEzLDBMNSwxNy42N2w0LjE5LTQuMDlhLjguOCwwLDEsMSwxLjEyLDEuMTRsLTIuMiwyLjE0aDYuMjdhLjguOCwwLDAsMSwwLDEuNkg4LjExbDIuMiwyLjE1QS44''@;'; + put 'put ''LjgsMCwwLDEsMTAuMzIsMjEuNzRabTExLjgyLDMuNjdhLjguOCwwLDAsMS0xLjEzLDBMMTguOCwyMy4yM1YyOS40YS44LjgsMCwwLDEtMS42LDBWMjMuMjNMMTUsMjUuNDJhLjguOCwwLDEsMS0xLjEzLTEuMTRMMTgsMjAuMThsNC4xNCw0LjFBLjguOCwwLDAsMSwyMi4xNCwyNS40MVoiIGNs''@;'; + put 'put ''YXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEu''@;'; + put 'put ''MTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiAgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy4yMiwxMi43NkE3LjQ5LDcuNDksMCwwLDEsMjMuMzIsMi42''@;'; + put 'put ''YTE2LDE2LDAsMSwwLDkuOSwxMC4xN1pNMTMuODYsOS45MmEuOC44LDAsMCwxLDEuMTMsMGwyLjIxLDIuMTlWNS45M2EuOC44LDAsMCwxLDEuNiwwdjYuMThMMjEsOS45MmEuOC44LDAsMSwxLDEuMTMsMS4xNEwxOCwxNS4xNWwtNC4xNC00LjFBLjguOCwwLDAsMSwxMy44Niw5LjkyWk0xMC4z''@;'; + put 'put ''MiwyMS43NGEuOC44LDAsMCwxLTEuMTMsMEw1LDE3LjY3bDQuMTktNC4wOWEuOC44LDAsMSwxLDEuMTIsMS4xNGwtMi4yLDIuMTRoNi4yN2EuOC44LDAsMCwxLDAsMS42SDguMTFsMi4yLDIuMTVBLjguOCwwLDAsMSwxMC4zMiwyMS43NFptMTEuODIsMy42N2EuOC44LDAsMCwxLTEuMTMsMEwx''@;'; + put 'put ''OC44LDIzLjIzVjI5LjRhLjguOCwwLDAsMS0xLjYsMFYyMy4yM0wxNSwyNS40MmEuOC44LDAsMSwxLTEuMTMtMS4xNEwxOCwyMC4xOGw0LjE0LDQuMUEuOC44LDAsMCwxLDIyLjE0LDI1LjQxWm00LjY3LTMuNjZhLjguOCwwLDEsMS0xLjEyLTEuMTRsMi4yLTIuMTVIMjEuNjNhLjguOCwwLDAs''@;'; + put 'put ''MSwwLTEuNmg2LjI3bC0yLjItMi4xNGEuOC44LDAsMSwxLDEuMTItMS4xNEwzMSwxNy42N1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNs''@;'; + put 'put ''ci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIC8+XG4gICAgICAgICcpLEwuQ2xyU2hhcGVWTT0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTEsNUgyNVY4aDJWNWEyLDIsMCwwLDAtMi0ySDExQTIsMiwwLDAsMCw5LDV2Ni44NWgy''@;'; + put 'put ''WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAsMTBIMTd2Mmg4djZoMlYxMmgzVjI2SDIyVjE3YTIsMiwwLDAsMC0yLTJINmEyLDIsMCwwLDAtMiwyVjMxYTIsMiwwLDAsMCwyLDJIMjBhMiwyLDAsMCwwLDIt''@;'; + put 'put ''MlYyOGg4YTIsMiwwLDAsMCwyLTJWMTJBMiwyLDAsMCwwLDMwLDEwWk02LDMxVjE3SDIwdjlIMTZWMjBIMTR2NmEyLDIsMCwwLDAsMiwyaDR2M1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTExLDVIMjEuODdM''@;'; + put 'put ''MjMsM0gxMUEyLDIsMCwwLDAsOSw1djYuODVoMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMjUuMDEiIHk9IjE1LjQiIHdpZHRoPSIxLjk5IiBoZWlnaHQ9IjIuNiIgY2xhc3M9''@;'; + put 'put ''ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAsMTUuNFYyNkgyMlYxN2EyLDIsMCwwLDAtMi0ySDZhMiwyLDAsMCwwLTIsMlYzMWEyLDIsMCwwLDAsMiwySDIwYTIsMiwwLDAsMCwyLTJWMjho''@;'; + put 'put ''OGEyLDIsMCwwLDAsMi0yVjE1LjRaTTYsMzFWMTdIMjB2OUgxNlYyMEgxNHY2YTIsMiwwLDAsMCwyLDJoNHYzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTcsMTB2MmgxLjU3''@;'; + put 'put ''QTMuNjcsMy42NywwLDAsMSwxOSwxMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEu''@;'; + put 'put ''MjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC01LS1hbGVydGVkIGNsci1pLWFsZXJ0IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTEx''@;'; + put 'put ''LDVIMjIuNTdhNy40NSw3LjQ1LDAsMCwxLC41NS0ySDExQTIsMiwwLDAsMCw5LDV2Ni44NWgyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLDEzLjVoMFYyNkgyMlYxN2EyLDIs''@;'; + put 'put ''MCwwLDAtMi0ySDZhMiwyLDAsMCwwLTIsMlYzMWEyLDIsMCwwLDAsMiwySDIwYTIsMiwwLDAsMCwyLTJWMjhoOGEyLDIsMCwwLDAsMi0yVjEzLjIyQTcuNDksNy40OSwwLDAsMSwzMCwxMy41Wk02LDMxVjE3SDIwdjlIMTZWMjBIMTR2NmEyLDIsMCwwLDAsMiwyaDR2M1oiIGNsYXNzPSJjbHIt''@;'; + put 'put ''aS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNywxMmg4djZoMlYxMi44N0E3LjUyLDcuNTIsMCwwLDEsMjMuNjYsMTBIMTdaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUt''@;'; + put 'put ''cGF0aC0zLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiICBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQgY2xyLWktYmFkZ2UiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTMuNTks''@;'; + put 'put ''MTJhMy42LDMuNiwwLDAsMSwzLjYtMy42SDI3VjVhMiwyLDAsMCwwLTItMkgxMUEyLDIsMCwwLDAsOSw1djguNGg0LjU5WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMCwxMEgxNy4xOWEyLDIsMCwwLDAtMiwydjEu''@;'; + put 'put ''NEgyMEEzLjYsMy42LDAsMCwxLDIzLjYsMTd2OEgyMlYxN2EyLDIsMCwwLDAtMi0ySDZhMiwyLDAsMCwwLTIsMlYzMWEyLDIsMCwwLDAsMiwySDIwYTIsMiwwLDAsMCwyLTJWMjkuNkgxNy4xOWEzLjYsMy42LDAsMCwxLTMuNi0zLjZWMjBoMS42djZhMiwyLDAsMCwwLDIsMkgzMGEyLDIsMCww''@;'; + put 'put ''LDAsMi0yVjEyQTIsMiwwLDAsMCwzMCwxMFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTMuNTksMTJhMy42LDMuNiwwLDAsMSwzLjYtMy42aDIuNzJMMjMsM0gxMUEyLDIsMCwwLDAsOSw1djguNGg0LjU5WiIgY2xh''@;'; + put 'put ''c3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNy4xOSwxMGEyLDIsMCwwLDAtMiwydjEuNEgxOUEzLjY4LDMuNjgsMCwwLDEsMTksMTBaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xy''@;'; + put 'put ''LWktc29saWQtcGF0aC0yLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIzLjIxLDE1LjRBMy41NSwzLjU1LDAsMCwxLDIzLjYsMTd2OEgyMlYxN2EyLDIsMCwwLDAtMi0ySDZhMiwyLDAsMCwwLTIsMlYzMWEyLDIsMCwwLDAsMiwySDIwYTIsMiwwLDAsMCwyLTJWMjkuNkgx''@;'; + put 'put ''Ny4xOWEzLjYsMy42LDAsMCwxLTMuNi0zLjZWMjBoMS42djZhMiwyLDAsMCwwLDIsMkgzMGEyLDIsMCwwLDAsMi0yVjE1LjRaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0zLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEu''@;'; + put 'put ''MTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTQtLWFsZXJ0ZWQg''@;'; + put 'put ''Y2xyLWktYWxlcnQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTMuNTksMTJhMy42LDMuNiwwLDAsMSwzLjYtMy42SDIyLjlBNy40NSw3LjQ1LDAsMCwxLDIzLjEzLDNIMTFBMiwyLDAsMCwwLDksNXY4LjRoNC41OVoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlk''@;'; + put 'put ''LXBhdGgtMS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLDEzLjVBNy40OSw3LjQ5LDAsMCwxLDIzLjY2LDEwSDE3LjE5YTIsMiwwLDAsMC0yLDJ2MS40SDIwQTMuNiwzLjYsMCwwLDEsMjMuNiwxN3Y4SDIyVjE3YTIsMiwwLDAsMC0yLTJINmEyLDIsMCwwLDAtMiwyVjMx''@;'; + put 'put ''YTIsMiwwLDAsMCwyLDJIMjBhMiwyLDAsMCwwLDItMlYyOS42SDE3LjE5YTMuNiwzLjYsMCwwLDEtMy42LTMuNlYyMGgxLjZ2NmEyLDIsMCwwLDAsMiwySDMwYTIsMiwwLDAsMCwyLTJWMTMuMjJBNy40OSw3LjQ5LDAsMCwxLDMwLDEzLjVaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBj''@;'; + put 'put ''bHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPlxuICAgICAgICAnKSxMLkNsclNoYXBl''@;'; + put 'put ''Vk1XQXBwPSgwLEUuY2xySWNvblNWRykoJzxwb2x5Z29uIHBvaW50cz0iMjggMjIgMzAgMjIgMzAgMzAgMjIgMzAgMjIgMjggMjAgMjggMjAgMzIgMzIgMzIgMzIgMjAgMjggMjAgMjggMjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAg''@;'; + put 'put ''ICAgPHBvbHlnb24gcG9pbnRzPSIxNCAzMCA2IDMwIDYgMjIgOCAyMiA4IDIwIDQgMjAgNCAzMiAxNiAzMiAxNiAyOCAxNCAyOCAxNCAzMCIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cG9seWdvbiBwb2ludHM9IjggMTQgNiAx''@;'; + put 'put ''NCA2IDYgMTQgNiAxNCA4IDE2IDggMTYgNCA0IDQgNCAxNiA4IDE2IDggMTQiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPlxuICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSIyMCA0IDIwIDggMjIgOCAyMiA2IDMwIDYgMzAgMTQgMjggMTQgMjggMTYg''@;'; + put 'put ''MzIgMTYgMzIgNCAyMCA0IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjExIiB5PSIxMSIgd2lkdGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIC8+XG4g''@;'; + put 'put ''ICAgICAgICAgICA8cmVjdCB4PSIxOSIgeT0iMTEiIHdpZHRoPSI2IiBoZWlnaHQ9IjYiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02IiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTEiIHk9IjE5IiB3aWR0aD0iNiIgaGVpZ2h0PSI2IiBjbGFzcz0iY2xyLWkt''@;'; + put 'put ''b3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNyIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE5IiB5PSIxOSIgd2lkdGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTgiIC8+XG4gICAgICAgICAgICA8cG9seWdvbiBwb2ludHM9IjI4''@;'; + put 'put ''IDIyIDMwIDIyIDMwIDMwIDIyIDMwIDIyIDI4IDIwIDI4IDIwIDMyIDMyIDMyIDMyIDIwIDI4IDIwIDI4IDIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMTQgMzAg''@;'; + put 'put ''NiAzMCA2IDIyIDggMjIgOCAyMCA0IDIwIDQgMzIgMTYgMzIgMTYgMjggMTQgMjggMTQgMzAiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSI4IDE0IDYgMTQgNiA2IDE0''@;'; + put 'put ''IDYgMTQgOCAxNiA4IDE2IDQgNCA0IDQgMTYgOCAxNiA4IDE0IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjExIiB5PSIxMSIgd2lkdGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9ImNs''@;'; + put 'put ''ci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMSIgeT0iMTkiIHdpZHRoPSI2IiBoZWlnaHQ9IjYiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC01LS1hbGVy''@;'; + put 'put ''dGVkIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTkiIHk9IjE5IiB3aWR0aD0iNiIgaGVpZ2h0PSI2IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNi0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNSwxNS40SDIyLjIzQTMu''@;'; + put 'put ''NjksMy42OSwwLDAsMSwxOSwxMy41NmwwLS4xVjE3aDZaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNy0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMjIuNDUgNCAyMCA0IDIwIDggMjAuMTQgOCAyMi40NSA0IiBj''@;'; + put 'put ''bGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtOC0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjI4IiB5PSIxNS40IiB3aWR0aD0iNCIgaGVpZ2h0PSIwLjYiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUt''@;'; + put 'put ''cGF0aC05LS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgIGNsYXNz''@;'; + put 'put ''PSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xMC0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMjggMjIgMzAgMjIgMzAgMzAgMjIgMzAgMjIgMjggMjAgMjggMjAgMzIgMzIgMzIgMzIgMjAgMjggMjAgMjgg''@;'; + put 'put ''MjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMTQgMzAgNiAzMCA2IDIyIDggMjIgOCAyMCA0IDIwIDQgMzIgMTYgMzIgMTYgMjggMTQgMjggMTQgMzAiIGNsYXNzPSJj''@;'; + put 'put ''bHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iOCAxNCA2IDE0IDYgNiAxNCA2IDE0IDggMTYgOCAxNiA0IDQgNCA0IDE2IDggMTYgOCAxNCIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdl''@;'; + put 'put ''ZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTEiIHk9IjExIiB3aWR0aD0iNiIgaGVpZ2h0PSI2IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8''@;'; + put 'put ''cmVjdCB4PSIxMSIgeT0iMTkiIHdpZHRoPSI2IiBoZWlnaHQ9IjYiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE5IiB5PSIxOSIgd2lkdGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9ImNs''@;'; + put 'put ''ci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNi0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIyLDZoLjVhNy40OSw3LjQ5LDAsMCwxLC4yOC0ySDIwVjhoMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTct''@;'; + put 'put ''LWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMCwxMy41VjE0SDI4djJoNFYxMy4yMkE3LjQ5LDcuNDksMCwwLDEsMzAsMTMuNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTgtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRo''@;'; + put 'put ''IGQ9Ik0yNSwxMS41OGE3LjUzLDcuNTMsMCwwLDEtLjU4LS41OEgxOXY2aDZaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC05LS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiICBjbGFzcz0iY2xyLWkt''@;'; + put 'put ''b3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xMC0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPlxuICAgICAgICAnKSxMLkNsclNoYXBlQ2VydGlmaWNhdGU9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMyLDZINEEyLDIsMCwwLDAsMiw4VjI4YTIsMiwwLDAsMCwyLDJIMTls''@;'; + put 'put ''LjU3LS43LjkzLTEuMTRMMjAuNDEsMjhINFY4SDMybDAsOC41NmE4LjQxLDguNDEsMCwwLDEsMiwxLjgxVjhBMiwyLDAsMCwwLDMyLDZaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjciIHk9IjEyIiB3aWR0aD0i''@;'; + put 'put ''MTciIGhlaWdodD0iMS42IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjciIHk9IjE2IiB3aWR0aD0iMTEiIGhlaWdodD0iMS42IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz5c''@;'; + put 'put ''biAgICAgICAgICAgIDxyZWN0IHg9IjciIHk9IjIzIiB3aWR0aD0iMTAiIGhlaWdodD0iMS42IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNy40NiwxNy4yM2E2LjM2LDYuMzYsMCwwLDAtNC40LDExbC0xLjk0''@;'; + put 'put ''LDIuMzcuOSwzLjYxLDMuNjYtNC40NmE2LjI2LDYuMjYsMCwwLDAsMy41NSwwbDMuNjYsNC40Ni45LTMuNjEtMS45NC0yLjM3YTYuMzYsNi4zNiwwLDAsMC00LjQtMTFabTAsMTAuNjhhNC4zMSw0LjMxLDAsMSwxLDQuMzctNC4zMUE0LjM1LDQuMzUsMCwwLDEsMjcuNDYsMjcuOTFaIiBjbGFz''@;'; + put 'put ''cz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjciIHk9IjE2IiB3aWR0aD0iMTEiIGhlaWdodD0iMS42IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgLz5cbiAg''@;'; + put 'put ''ICAgICAgICAgIDxyZWN0IHg9IjciIHk9IjIzIiB3aWR0aD0iMTAiIGhlaWdodD0iMS42IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNy40NiwxNy4yM2E2LjM2LDYuMzYsMCww''@;'; + put 'put ''LDAtNC40LDExbC0xLjk0LDIuMzcuOSwzLjYxLDMuNjYtNC40NmE2LjI2LDYuMjYsMCwwLDAsMy41NSwwbDMuNjYsNC40Ni45LTMuNjEtMS45NC0yLjM3YTYuMzYsNi4zNiwwLDAsMC00LjQtMTFabTAsMTAuNjhhNC4zMSw0LjMxLDAsMSwxLDQuMzctNC4zMUE0LjM1LDQuMzUsMCwwLDEsMjcu''@;'; + put 'put ''NDYsMjcuOTFaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOSwxMy41NkEzLjY2LDMuNjYsMCwwLDEsMTguNTcsMTJIN3YxLjZIMTkuMDdaIiBjbGFzcz0iY2xyLWktb3V0bGlu''@;'; + put 'put ''ZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy42OCwxNS40SDMydjEuMTZhOC40MSw4LjQxLDAsMCwxLDIsMS44MXYtM1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC01''@;'; + put 'put ''LS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTQsMjhWOEgyMC4xNGwxLjE1LTJINEEyLDIsMCwwLDAsMiw4VjI4YTIsMiwwLDAsMCwyLDJIMTlsLjU3LS43LjkzLTEuMTRMMjAuNDEsMjhaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBh''@;'; + put 'put ''dGgtNi0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiICBjbGFzcz0i''@;'; + put 'put ''Y2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNy0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjciIHk9IjEyIiB3aWR0aD0iMTciIGhlaWdodD0iMS42IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxp''@;'; + put 'put ''bmUtcGF0aC0xLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSI3IiB5PSIxNiIgd2lkdGg9IjExIiBoZWlnaHQ9IjEuNiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iNyIg''@;'; + put 'put ''eT0iMjMiIHdpZHRoPSIxMCIgaGVpZ2h0PSIxLjYiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNy40NiwxNy4yM2E2LjM2LDYuMzYsMCwwLDAtNC40LDExbC0xLjk0LDIuMzcuOSwz''@;'; + put 'put ''LjYxLDMuNjYtNC40NmE2LjI2LDYuMjYsMCwwLDAsMy41NSwwbDMuNjYsNC40Ni45LTMuNjEtMS45NC0yLjM3YTYuMzYsNi4zNiwwLDAsMC00LjQtMTFabTAsMTAuNjhhNC4zMSw0LjMxLDAsMSwxLDQuMzctNC4zMUE0LjM1LDQuMzUsMCwwLDEsMjcuNDYsMjcuOTFaIiBjbGFzcz0iY2xyLWkt''@;'; + put 'put ''b3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIsMTMuMjJ2My4zNGE4LjQxLDguNDEsMCwwLDEsMiwxLjgxdi02QTcuNDUsNy40NSwwLDAsMSwzMiwxMy4yMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRn''@;'; + put 'put ''ZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik00LDI4VjhIMjIuNzhhNy40OSw3LjQ5LDAsMCwxLS4yOC0ySDRBMiwyLDAsMCwwLDIsOFYyOGEyLDIsMCwwLDAsMiwySDE5bC41Ny0uNy45My0xLjE0TDIwLjQxLDI4WiIgY2xhc3M9ImNs''@;'; + put 'put ''ci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNi0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNy0tYmFkZ2VkIGNsci1pLWJhZGdl''@;'; + put 'put ''IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE5LDMwSDRhMiwyLDAsMCwxLTItMlY4QTIsMiwwLDAsMSw0LDZIMzJhMiwyLDAsMCwxLDIsMlYxOC4zN2E4LjM0LDguMzQsMCwwLDAtMTMuNDksOS43OWwtLjkzLDEuMTRaTTcsMTJ2MS42SDI0VjEyWm0wLDUuNkgxOFYxNkg3Wm0wLDdIMTdW''@;'; + put 'put ''MjNIN1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuODMsMjMuNTlhNi4zNyw2LjM3LDAsMSwwLTEwLjc3LDQuNTlsLTEuOTQsMi4zNy45LDMuNjEsMy42Ni00LjQ2YTYuMjYsNi4yNiwwLDAsMCwzLjU1LDBsMy42''@;'; + put 'put ''Niw0LjQ2LjktMy42MS0xLjk0LTIuMzdBNi4zNCw2LjM0LDAsMCwwLDMzLjgzLDIzLjU5Wm0tMTAuNzQsMGE0LjM3LDQuMzcsMCwxLDEsNC4zNyw0LjMxQTQuMzUsNC4zNSwwLDAsMSwyMy4xLDIzLjU5WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz5cbiAgICAg''@;'; + put 'put ''ICAgICAgIDxwYXRoIGQ9Ik0zMy44MywyMy41OWE2LjM3LDYuMzcsMCwxLDAtMTAuNzcsNC41OWwtMS45NCwyLjM3LjksMy42MSwzLjY2LTQuNDZhNi4yNiw2LjI2LDAsMCwwLDMuNTUsMGwzLjY2LDQuNDYuOS0zLjYxLTEuOTQtMi4zN0E2LjM0LDYuMzQsMCwwLDAsMzMuODMsMjMuNTlabS0x''@;'; + put 'put ''MC43NCwwYTQuMzcsNC4zNywwLDEsMSw0LjM3LDQuMzFBNC4zNSw0LjM1LDAsMCwxLDIzLjEsMjMuNTlaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLjY4LDE1LjRIMjkuMjVhOC4z''@;'; + put 'put ''Niw4LjM2LDAsMCwxLDQuNzUsM3YtM1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTkuMDcsMTMuNkg3VjEySDE4LjU3QTMuNjcsMy42NywwLDAsMSwxOSw5Ljg5TDIxLjI5LDZINEEy''@;'; + put 'put ''LDIsMCwwLDAsMiw4VjI4YTIsMiwwLDAsMCwyLDJIMTlsLjU3LS43LjkzLTEuMTRBOC4zNCw4LjM0LDAsMCwxLDI1LjY2LDE1LjRIMjIuMjNBMy42OCwzLjY4LDAsMCwxLDE5LjA3LDEzLjZaTTE3LDI0LjZIN1YyM0gxN1ptMS03SDdWMTZIMThaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0''@;'; + put 'put ''ZWQgY2xyLWktc29saWQtcGF0aC0zLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44''@;'; + put 'put ''NSwxLjE0WiIgIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTQtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjcuNDYsMTcuMjNhNi4zNiw2LjM2LDAsMCwwLTQuNCwxMWwtMS45NCwyLjM3LjksMy42MSwzLjY2LTQu''@;'; + put 'put ''NDZhNi4yNiw2LjI2LDAsMCwwLDMuNTUsMGwzLjY2LDQuNDYuOS0zLjYxLTEuOTQtMi4zN2E2LjM2LDYuMzYsMCwwLDAtNC40LTExWm0wLDEwLjY4YTQuMzEsNC4zMSwwLDEsMSw0LjM3LTQuMzFBNC4zNSw0LjM1LDAsMCwxLDI3LjQ2LDI3LjkxWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRn''@;'; + put 'put ''ZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAsMTMuNUE3LjUsNy41LDAsMCwxLDIyLjUsNkg0QTIsMiwwLDAsMCwyLDhWMjhhMiwyLDAsMCwwLDIsMkgxOWwuNTctLjcuOTMtMS4xNEE4LjM0LDguMzQsMCwwLDEsMzQsMTguMzd2LTZB''@;'; + put 'put ''Ny40Niw3LjQ2LDAsMCwxLDMwLDEzLjVaTTE3LDI0LjZIN1YyM0gxN1ptMS03SDdWMTZIMThabTYtNEg3VjEySDI0WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9''@;'; + put 'put ''IjUiICBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIgLz5cbiAgICAgICAgJyksTC5DbHJTaGFwZUFyY2hpdmU9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI5LDMySDdWMjJINVYzMmEyLDIsMCwwLDAsMiwySDI5''@;'; + put 'put ''YTIsMiwwLDAsMCwyLTJWMjJIMjlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNCwyNGExLDEsMCwwLDAsMSwxaDZhMSwxLDAsMCwwLDAtMkgxNUExLDEsMCwwLDAsMTQsMjRaIiBjbGFzcz0iY2xyLWktb3V0''@;'; + put 'put ''bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNCwxOEg2VjE0aDRhMywzLDAsMCwxLS42OC0xLjg3czAtLjA5LDAtLjEzSDUuNUExLjUsMS41LDAsMCwwLDQsMTMuNVYyMEgxNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUt''@;'; + put 'put ''cGF0aC0zIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLjUsMTJIMjYuNjZzMCwuMDksMCwuMTNBMywzLDAsMCwxLDI2LDE0aDR2NEgyMmwtMiwySDMyVjEzLjVBMS41LDEuNSwwLDAsMCwzMC41LDEyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+''@;'; + put 'put ''XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMTkuMThsNi4zOC02LjM1QTEsMSwwLDEsMCwyMywxMS40MWwtNCwzLjk1VjNhMSwxLDAsMSwwLTIsMHYxMi40bC00LTMuOTVhMSwxLDAsMCwwLTEuNDEsMS40MloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiAv''@;'; + put 'put ''PlxuICAgICAgICAgICAgPHBhdGggZD0iTTE5LjQxLDIwLjYsMTgsMjJsLTEuNDEtMS40TDE2LDIwSDVWMzJhMiwyLDAsMCwwLDIsMkgyOWEyLDIsMCwwLDAsMi0yVjIwSDIwWk0yMiwyNGExLDEsMCwwLDEtMSwxSDE1YTEsMSwwLDAsMSwwLTJoNkExLDEsMCwwLDEsMjIsMjRaIiBjbGFzcz0i''@;'; + put 'put ''Y2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLjUsMTJIMjYuNjZzMCwuMDksMCwuMTNhMywzLDAsMCwxLS44OCwyLjEyTDIyLDE4SDMyVjEzLjVBMS41LDEuNSwwLDAsMCwzMC41LDEyWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1p''@;'; + put 'put ''LXNvbGlkLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMC4yLDE0LjI1YTMsMywwLDAsMS0uODgtMi4xMnMwLS4wOSwwLS4xM0g1LjVBMS41LDEuNSwwLDAsMCw0LDEzLjVWMThIMTRaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiAvPlxuICAgICAg''@;'; + put 'put ''ICAgICAgPHBhdGggZD0iTTE4LDE5LjE4bDYuMzgtNi4zNUExLDEsMCwxLDAsMjMsMTEuNDFsLTQsMy45NVYzYTEsMSwwLDEsMC0yLDB2MTIuNGwtNC0zLjk1YTEsMSwwLDAsMC0xLjQxLDEuNDJaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC00IiAvPlxuICAgICAgICAn''@;'; + put 'put ''KSxMLkNsclNoYXBlVW5hcmNoaXZlPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yOSwzMkg3VjIySDVWMzJhMiwyLDAsMCwwLDIsMkgyOWEyLDIsMCwwLDAsMi0yVjIySDI5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8''@;'; + put 'put ''cGF0aCBkPSJNMTQsMjRhMSwxLDAsMCwwLDEsMWg2YTEsMSwwLDAsMCwwLTJIMTVBMSwxLDAsMCwwLDE0LDI0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTUsMThINlYxNGg5VjEySDUuNUExLjUsMS41LDAs''@;'; + put 'put ''MCwwLDQsMTMuNVYyMEgxNS43OEEzLDMsMCwwLDEsMTUsMThaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMC41LDEySDIxdjJoOXY0SDIxYTMsMywwLDAsMS0uNzgsMkgzMlYxMy41QTEuNSwxLjUsMCwwLDAs''@;'; + put 'put ''MzAuNSwxMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTEzLDkuNTUsMTcsNS42VjE4YTEsMSwwLDEsMCwyLDBWNS42bDQsMy45NWExLDEsMCwxLDAsMS40MS0xLjQyTDE4LDEuNzgsMTEuNjEsOC4xM0ExLDEs''@;'; + put 'put ''MCwwLDAsMTMsOS41NVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDIxYTMsMywwLDAsMS0yLjIyLTFINVYzMmEyLDIsMCwwLDAsMiwySDI5YTIsMiwwLDAsMCwyLTJWMjBIMjAuMjFBMywzLDAsMCwxLDE4''@;'; + put 'put ''LDIxWm00LDNhMSwxLDAsMCwxLTEsMUgxNWExLDEsMCwwLDEsMC0yaDZBMSwxLDAsMCwxLDIyLDI0WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNSwxMkg1LjVBMS41LDEuNSwwLDAsMCw0LDEzLjVWMThIMTVaIiBj''@;'; + put 'put ''bGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLjUsMTJIMjF2NkgzMlYxMy41QTEuNSwxLjUsMCwwLDAsMzAuNSwxMloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIC8+XG4gICAgICAgICAgICA8''@;'; + put 'put ''cGF0aCBkPSJNMTMsOS41NSwxNyw1LjZWMThhMSwxLDAsMSwwLDIsMFY1LjZsNCwzLjk1YTEsMSwwLDEsMCwxLjQxLTEuNDJMMTgsMS43OCwxMS42MSw4LjEzQTEsMSwwLDAsMCwxMyw5LjU1WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNCIgLz5cbiAgICAgICAgJyks''@;'; + put 'put ''TC5DbHJTaGFwZUNvbm5lY3Q9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTM0LDE3SDI4LjIzQTYuMjUsNi4yNSwwLDAsMCwyMiwxMkgxNC4xNWE2LjI1LDYuMjUsMCwwLDAtNi4yMSw1SDJ2Mkg3LjkzYTYuMjIsNi4yMiwwLDAsMCw2LjIyLDVIMjJhNi4yMiw2LjIyLDAsMCwwLDYuMjIt''@;'; + put 'put ''NUgzNFpNMTcuMDgsMjJIMTQuMTVhNC4xNyw0LjE3LDAsMCwxLTQuMzEtNCw0LjE3LDQuMTcsMCwwLDEsNC4zMS00aDIuOTRaTTIyLDIySDE5VjE0aDNhNC4xNyw0LjE3LDAsMCwxLDQuMzEsNEE0LjE3LDQuMTcsMCwwLDEsMjIsMjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRs''@;'; + put 'put ''aW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNywxMkgxNC4xNWE2LjI1LDYuMjUsMCwwLDAtNi4yMSw1SDJ2Mkg3LjkzYTYuMjIsNi4yMiwwLDAsMCw2LjIyLDVIMTdaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAgICAgICAg''@;'; + put 'put ''PHBhdGggZD0iTTI4LjIzLDE3QTYuMjUsNi4yNSwwLDAsMCwyMiwxMkgxOVYyNGgzYTYuMjIsNi4yMiwwLDAsMCw2LjIyLTVIMzRWMTdaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPlxuICAgICAgICAnKSxMLkNsclNoYXBlRGlzY29ubmVjdD0oMCxFLmNscklj''@;'; + put 'put ''b25TVkcpKCc8cGF0aCBkPSJNMTIuMTcsNkE2LjIxLDYuMjEsMCwwLDAsNiwxMUgyLjEzdjJINmE2LjIzLDYuMjMsMCwwLDAsNi4yMSw1SDE3VjZaTTE1LjEsMTZIMTIuMTdhNC4yLDQuMiwwLDAsMS00LjMxLTQsNC4xNyw0LjE3LDAsMCwxLDQuMzEtNEgxNS4xWiIgY2xhc3M9ImNsci1pLW91''@;'; + put 'put ''dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuOTIsMjNIMzAuMTRhNi4yNSw2LjI1LDAsMCwwLTYuMjEtNUgxOXYySDE0YTEsMSwwLDEsMCwwLDJoNXY0SDE0YTEsMSwwLDAsMC0xLDEsMSwxLDAsMCwwLDEsMWg1djJoNC45NGE2LjIzLDYu''@;'; + put 'put ''MjMsMCwwLDAsNi4yMi01aDMuNzZabS0xMCw1SDIxVjIwaDIuOTRhNC4xNyw0LjE3LDAsMCwxLDQuMzEsNEE0LjE3LDQuMTcsMCwwLDEsMjMuOTQsMjhaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMiw2YTYu''@;'; + put 'put ''MjEsNi4yMSwwLDAsMC02LjIxLDVIMnYySDUuODNBNi4yMyw2LjIzLDAsMCwwLDEyLDE4SDE3VjZaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLjc5LDIzSDMwLjE0YTYuMjUsNi4yNSwwLDAsMC02LjIxLTVIMTl2''@;'; + put 'put ''MkgxNGExLDEsMCwwLDAtMSwxLDEsMSwwLDAsMCwxLDFoNXY0SDE0YTEsMSwwLDAsMC0xLDEsMSwxLDAsMCwwLDEsMWg1djJoNC45NGE2LjIzLDYuMjMsMCwwLDAsNi4yMi01aDMuNjRaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPlxuICAgICAgICAnKSxMLkNs''@;'; + put 'put ''clNoYXBlTGluaz0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTcuNiwyNC4zMmwtMi40NiwyLjQ0YTQsNCwwLDAsMS01LjYyLDAsMy45MiwzLjkyLDAsMCwxLDAtNS41NWw0LjY5LTQuNjVhNCw0LDAsMCwxLDUuNjIsMCwzLjg2LDMuODYsMCwwLDEsMSwxLjcxQTIsMiwwLDAsMCwyMS4x''@;'; + put 'put ''LDE4bDEuMjktMS4yOGE1Ljg5LDUuODksMCwwLDAtMS4xNS0xLjYyLDYsNiwwLDAsMC04LjQ0LDBMOC4xLDE5Ljc5YTUuOTEsNS45MSwwLDAsMCwwLDguMzksNiw2LDAsMCwwLDguNDQsMGwzLjY1LTMuNjJjLS4xNywwLS4zMywwLS41LDBBOCw4LDAsMCwxLDE3LjYsMjQuMzJaIiBjbGFzcz0i''@;'; + put 'put ''Y2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOC42MSw3LjgyYTYsNiwwLDAsMC04LjQ0LDBsLTMuNjUsMy42MmMuMTcsMCwuMzMsMCwuNDksMGgwYTgsOCwwLDAsMSwyLjEuMjhsMi40Ni0yLjQ0YTQsNCwwLDAsMSw1LjYyLDAs''@;'; + put 'put ''My45MiwzLjkyLDAsMCwxLDAsNS41NWwtNC42OSw0LjY1YTQsNCwwLDAsMS01LjYyLDAsMy44NiwzLjg2LDAsMCwxLTEtMS43MSwyLDIsMCwwLDAtLjI4LjIzbC0xLjI5LDEuMjhhNS44OSw1Ljg5LDAsMCwwLDEuMTUsMS42Miw2LDYsMCwwLDAsOC40NCwwbDQuNjktNC42NWE1LjkyLDUuOTIs''@;'; + put 'put ''MCwwLDAsMC04LjM5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICcpLEwuQ2xyU2hhcGVVbmxpbms9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTUsNSwzLjU5LDYuNDFsOSw5TDguMSwxOS43OWE1LjkxLDUuOTEsMCwwLDAsMCw4''@;'; + put 'put ''LjM5LDYsNiwwLDAsMCw4LjQ0LDBMMjEsMjMuNzhsOC42Myw4LjYzTDMxLDMxWk0xNS4xMywyNi43NmE0LDQsMCwwLDEtNS42MiwwLDMuOTIsMy45MiwwLDAsMSwwLTUuNTVMMTQsMTYuNzlsNS41OCw1LjU4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+''@;'; + put 'put ''XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjEuNTMsOS4yMmE0LDQsMCwwLDEsNS42MiwwLDMuOTIsMy45MiwwLDAsMSwwLDUuNTVsLTQuNzksNC43NkwyMy43OCwyMWw0Ljc5LTQuNzZhNS45Miw1LjkyLDAsMCwwLDAtOC4zOSw2LDYsMCwwLDAtOC40NCwwbC00Ljc2LDQuNzRMMTYuNzgsMTRa''@;'; + put 'put ''IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgJyksTC5DbHJTaGFwZUNsb3VkTmV0d29yaz0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzAuNzEsMTUuMTh2LTFBMTEuMjgsMTEuMjgsMCwwLDAsMTkuNTYsMi44M2gtLjExYTExLjI4''@;'; + put 'put ''LDExLjI4LDAsMCwwLTExLDguOTMsNy40Nyw3LjQ3LDAsMCwwLDAsMTQuOTRIMjkuMTNhNS44Niw1Ljg2LDAsMCwwLDEuNTgtMTEuNTJaTTI5LjEzLDI0LjdIOC40NmE1LjQ3LDUuNDcsMCwxLDEsMC0xMC45NGgxLjY5bC4xMS0uODdhOS4yNyw5LjI3LDAsMCwxLDE4LjQ1LDEuM3YxLjI4YzAs''@;'; + put 'put ''LjA5LDAsLjE4LDAsLjI3bC0uMDcsMS4xNS45NC4xMWEzLjg2LDMuODYsMCwwLDEtLjQzLDcuNzFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOS41OCwzMS4xOEgxOC44NXYtMi40aC0ydjIuNEg2LjA4YTEs''@;'; + put 'put ''MSwwLDAsMCwwLDJoMjMuNWExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICcpLEwuQ2xyU2hhcGVDbG91ZFNjYWxlPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik02LjMyLDExLjExSDcuODRMOCwxMC4yNEE3''@;'; + put 'put ''LjE5LDcuMTksMCwwLDEsMTUuMDcsNGguMDdhNy4xNSw3LjE1LDAsMCwxLDQuNzEsMS44MywxMS4xLDExLjEsMCwwLDEsMy4wOS42NEE5LjE4LDkuMTgsMCwwLDAsMTUuMTYsMmgtLjA5QTkuMiw5LjIsMCwwLDAsNi4xMyw5LjExLDYuMTUsNi4xNSwwLDAsMCwyLjMzLDE5Ljk1LDguMDksOC4w''@;'; + put 'put ''OSwwLDAsMSwzLDE3LjcxYTQuMTIsNC4xMiwwLDAsMS0uODEtMi40NEE0LjE2LDQuMTYsMCwwLDEsNi4zMiwxMS4xMVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTEwLjQsMTYuOTFoMS41MkwxMiwxNmE3LjE5''@;'; + put 'put ''LDcuMTksMCwwLDEsNy4xMi02LjI1aC4wN2E3LjE3LDcuMTcsMCwwLDEsNS43LDIuOTIsMTEuMDUsMTEuMDUsMCwwLDEsMi43Mi43Nyw5LjIsOS4yLDAsMCwwLTguNC01LjY5aC0uMDlhOS4yLDkuMiwwLDAsMC04Ljk0LDcuMTIsNi4xNSw2LjE1LDAsMCwwLTMuNjQsMTEsOC4xMSw4LjExLDAs''@;'; + put 'put ''MCwxLC43OS0yLDQuMTQsNC4xNCwwLDAsMSwzLTdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMi40MiwyNC40N3YtLjYyYTkuMTgsOS4xOCwwLDAsMC0xOC4xMy0yLjE2QTYuMTYsNi4xNiwwLDAsMCwxNC40''@;'; + put 'put ''OCwzNEgzMWE0Ljg4LDQuODgsMCwwLDAsMS40Ni05LjUzWk0zMSwzMkgxNC40OGE0LjE2LDQuMTYsMCwxLDEsMC04LjMySDE2bC4xMS0uODdhNy4xOSw3LjE5LDAsMCwxLDcuMTItNi4yNWguMDdhNy4yMSw3LjIxLDAsMCwxLDcuMTIsNy4yNXYxYzAsLjA3LDAsLjEzLDAsLjJsLS4wNywxLjEx''@;'; + put 'put ''Ljk0LjExQTIuODgsMi44OCwwLDAsMSwzMSwzMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPlxuICAgICAgICAnKSxMLkNsclNoYXBlQ2xvdWRUcmFmZmljPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yNi41NCwyMC44MmEuODguODgsMCwwLDAt''@;'; + put 'put ''Ljg4LS44OEgyMC43NWwxLjEtMS4xQS44OC44OCwwLDAsMCwyMC42LDE3LjZsLTMuMjEsMy4yMkwyMC42LDI0YS44OC44OCwwLDEsMCwxLjI1LTEuMjRMMjAuNzYsMjEuN2g0LjlBLjg4Ljg4LDAsMCwwLDI2LjU0LDIwLjgyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1w''@;'; + put 'put ''YXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjkuMjcsMjEuN2EuODguODgsMCwxLDAsMC0xLjc2aC0uNThhLjg4Ljg4LDAsMSwwLDAsMS43NloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMyLjIx''@;'; + put 'put ''LDIwaC0uMDZhLjg1Ljg1LDAsMCwwLS44NS44OC45MS45MSwwLDAsMCwuOTEuODguODguODgsMCwxLDAsMC0xLjc2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIuNTksMTFhLjg4Ljg4LDAsMCwwLTEuMjUs''@;'; + put 'put ''MS4yNGwxLjEsMS4xSDI3LjUzYS44OC44OCwwLDEsMCwwLDEuNzZoNC45bC0xLjA5LDEuMDlhLjg4Ljg4LDAsMCwwLDEuMjUsMS4yNGwzLjIxLTMuMjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNC41LDE1''@;'; + put 'put ''LjA3YS44OC44OCwwLDEsMCwwLTEuNzZoLS41OGEuODguODgsMCwxLDAsMCwxLjc2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjEuOSwxNC4yN2EuODUuODUsMCwwLDAtLjg1LS44OEgyMWEuODguODgsMCwx''@;'; + put 'put ''LDAsMCwxLjc2QS45MS45MSwwLDAsMCwyMS45LDE0LjI3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAuMzYsMjMuNjVjMCwuMTMsMCwuMjYsMCwuMzlhMy43NywzLjc3LDAsMCwxLTMuNjIsMy44OUg3LjI4''@;'; + put 'put ''YTUuMzIsNS4zMiwwLDAsMS01LjEzLTUuNDhBNS4zMiw1LjMyLDAsMCwxLDcuMjgsMTdIOC45MUw5LDE2LjEyYTguOTIsOC45MiwwLDAsMSw4LjYyLThoLjA4YTguNDksOC40OSwwLDAsMSw2LjU2LDMuMjloMi4zN2ExMC41NSwxMC41NSwwLDAsMC04LjkxLTUuMjVoLS4xMUExMC44MiwxMC44''@;'; + put 'put ''MiwwLDAsMCw3LjIyLDE1YTcuMjgsNy4yOCwwLDAsMC03LDcuNDMsNy4yNyw3LjI3LDAsMCwwLDcuMDgsNy40M0gyNi43N0E1LjcyLDUuNzIsMCwwLDAsMzIuMzUsMjRhMy43NywzLjc3LDAsMCwwLDAtLjM5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTciIC8+''@;'; + put 'put ''XG4gICAgICAgICcpLEwuQ2xyU2hhcGVEZXBsb3k9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMywySDIyLjFhMSwxLDAsMCwwLDAsMmg4LjUzbC04LjgyLDlhMSwxLDAsMSwwLDEuNDMsMS40TDMyLDUuNDZW''@;'; + put 'put ''MTMuOWExLDEsMCwwLDAsMiwwVjNBMSwxLDAsMCwwLDMzLDJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTExLjU0LDEwLjczbC05LDUuMTdhMSwxLDAsMCwwLS41Ljg3djExYTEsMSwwLDAsMCwuNS44N2w5LDUu''@;'; + put 'put ''MTVhMSwxLDAsMCwwLDEsMGw5LTUuMTVhMSwxLDAsMCwwLC41LS44N3YtMTFhMSwxLDAsMCwwLS41LS44N2wtOS01LjE3QTEsMSwwLDAsMCwxMS41NCwxMC43M1pNMTEsMzEuMDhsLTctNFYxOC40NGw3LDRaTTEyLDIxLDQuODEsMTYuODcsMTIsMTIuNzhsNy4yMSw0LjEyWm04LDYuMDktNyw0''@;'; + put 'put ''VjIyLjQ0bDctNFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zMywySDIyLjFhMSwxLDAsMCwwLDAsMmg4LjUzbC04LjgyLDlhMSwxLDAsMSwwLDEuNDMsMS40TDMyLDUuNDZWMTMuOWExLDEsMCwwLDAsMiwwVjNBMSwx''@;'; + put 'put ''LDAsMCwwLDMzLDJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiBkPSJNMTIuNDYsMTAuNzNhMSwxLDAsMCwwLTEsMGwtOC42OCw1TDEyLDIxbDkuMTktNS4yNloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1z''@;'; + put 'put ''b2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIGQ9Ik0yLDI3LjczYTEsMSwwLDAsMCwuNS44N0wxMSwzMy40NnYtMTFMMiwxNy4yOFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTQiIGQ9Ik0xMywzMy40Nmw4LjUtNC44NmExLDEsMCww''@;'; + put 'put ''LDAsLjUtLjg3VjE3LjI5bC05LDUuMTVaIi8+XG4gICAgICAgICcpLEwuQ2xyU2hhcGVIZWxpeD0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTguODgsMTMuMDdhLjkuOSwwLDAsMS0uNDktMS42Nmw4LjkzLTUu''@;'; + put 'put ''NzNhLjkuOSwwLDEsMSwxLDEuNTJMOS4zNywxMi45MkEuOS45LDAsMCwxLDguODgsMTMuMDdaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTEzLjI1LDE1LjExYS45LjksMCwwLDEtLjQ5LTEuNjZMMTgsMTAuMDhh''@;'; + put 'put ''LjkuOSwwLDEsMSwxLDEuNTJMMTMuNzQsMTVBLjkuOSwwLDAsMSwxMy4yNSwxNS4xMVoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJNMTkuNzIsMzAuMjNhLjkuOSwwLDAsMS0uNDktMS42Nmw4LjkzLTUuNzNhLjku''@;'; + put 'put ''OSwwLDAsMSwxLDEuNTJMMjAuMiwzMC4wOUEuOS45LDAsMCwxLDE5LjcyLDMwLjIzWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIGQ9Ik0xOC45MiwyNS45NGEuOS45LDAsMCwxLS40OS0xLjY2bDUuMjUtMy4zN2EuOS45''@;'; + put 'put ''LDAsMSwxLDEsMS41MUwxOS40LDI1LjhBLjg5Ljg5LDAsMCwxLDE4LjkyLDI1Ljk0WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIGQ9Ik0yMS41Niw1LjY5YTMuNTksMy41OSwwLDAsMSwuMTUsMy41M0wxOC44MywxNWgy''@;'; + put 'put ''LjI1bDIuNDMtNC44N2E1LjYxLDUuNjEsMCwwLDAtNS04LjE0SDEzLjI2bC0xLDJoNi4yMkEzLjYxLDMuNjEsMCwwLDEsMjEuNTYsNS42OVoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzIuOTEsMjAuNzhBNS41''@;'; + put 'put ''Myw1LjUzLDAsMCwwLDI3LjY2LDE3SDkuMzFhMy41NCwzLjU0LDAsMCwxLTMuNTYtMy42NywzLjYxLDMuNjEsMCwwLDEsLjQyLTEuNTRsNC4yNi04LjQ5YTEsMSwwLDEsMC0xLjc5LS45TDQuNCwxMC44NEE1LjY3LDUuNjcsMCwwLDAsNCwxNS4yMiw1LjUzLDUuNTMsMCwwLDAsOS4yOCwxOWg3''@;'; + put 'put ''LjZsLTMuNDQsNi44N2E1LjY0LDUuNjQsMCwwLDAsMS41LDYuOTJBNS4zOCw1LjM4LDAsMCwwLDE4LjQxLDM0aDUuMjVsMS0ySDE4LjQzYTMuNTgsMy41OCwwLDAsMS0zLjIyLTUuMjFMMTkuMTEsMTloOC41NGEzLjQyLDMuNDIsMCwwLDEsMi4xNS43MSwzLjU3LDMuNTcsMCwwLDEsMSw0LjQz''@;'; + put 'put ''bC00LjEyLDguMjJhMSwxLDAsMSwwLDEuNzkuOWw0LjA2LTguMUE1LjY3LDUuNjcsMCwwLDAsMzIuOTEsMjAuNzhaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzIuMTYsMTkuNjNBNS41NSw1LjU1LDAsMCwwLDI3LjQy''@;'; + put 'put ''LDE3SDEwLjA2YTQuMzYsNC4zNiwwLDAsMS0zLjY3LTIsNC4wNyw0LjA3LDAsMCwxLS4xOS00LjEzbDMuNjItNywxLjQyLDEuNjMtMi43NCw1LjMsOC44NC01LjY2YS45MS45MSwwLDAsMSwxLDEuNTNMNy44NCwxMy4zOGEyLjEzLDIuMTMsMCwwLDAsLjI0LjUyLDIuMjgsMi4yOCwwLDAsMCwx''@;'; + put 'put ''LjY1LDFMMTguMTEsOS41YS45MS45MSwwLDAsMSwxLDEuNTJMMTMsMTQuOTRIMjAuOGwyLjQxLTQuODJhNS42LDUuNiwwLDAsMC01LTguMTJIOWExLDEsMCwwLDAtLjkuNTZMMy44OCwxMC44OWE1LjYsNS42LDAsMCwwLDUsOC4xMmg3LjY1bC0zLjQzLDYuODdhNS42LDUuNiwwLDAsMCw1LDgu''@;'; + put 'put ''MTJoOS4yOGExLDEsMCwwLDAsLjkzLS42NWw0LjE0LTguMjRBNS41OCw1LjU4LDAsMCwwLDMyLjE2LDE5LjYzWk0xNy43NSwyNS41N0EuOTEuOTEsMCwwLDEsMTgsMjQuMzFsNi0zLjg4QS45MS45MSwwLDEsMSwyNSwyMmwtNiwzLjg4YS45MS45MSwwLDAsMS0xLjI2LS4yN1pNMjksMjQuMzRs''@;'; + put 'put ''LTksNS43OGEuOTEuOTEsMCwxLDEtMS0xLjUzbDktNS43OGEuOTEuOTEsMCwxLDEsMSwxLjUzWiIvPlxuICAgICAgICAnKSxMLkNsclNoYXBlRmxhc2s9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMxLjQzLDI3LjI4LDIzLDE0Ljg0VjRoMWExLDEsMCwwLDAsMC0ySDEyYTEsMSwwLDAs''@;'; + put 'put ''MCwwLDJoMVYxNC44NEw0LjUxLDI3LjM2QTQuMjksNC4yOSwwLDAsMCw1LDMyLjgsNC4zOCw0LjM4LDAsMCwwLDguMTUsMzRIMjhhNC4yNCw0LjI0LDAsMCwwLDMuNDItNi43MlpNMjkuODUsMzFhMi42MiwyLjYyLDAsMCwxLTIsMUg4YTIuMiwyLjIsMCwwLDEtMi4wNi0xLjQxLDIuNjgsMi42''@;'; + put 'put ''OCwwLDAsMSwuMjktMi4xN2wzLTQuNDQsMTQsMC0xLjMxLTJIMTAuNTdMMTUsMTUuNDZWNGg2VjE1LjQ2bDguODQsMTMuMDVBMi4yMywyLjIzLDAsMCwxLDI5Ljg1LDMxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBk''@;'; + put 'put ''PSJNMzEuNDksMjcuNCwyMywxNC45NFY0aDFhMSwxLDAsMCwwLDAtMkgxMi4wOGExLDEsMCwwLDAsMCwySDEzVjE0Ljk0TDQuNTgsMjcuMzFhNC4zMSw0LjMxLDAsMCwwLS43OCwzQTQuMjMsNC4yMywwLDAsMCw4LDM0SDI3Ljg2QTQuMzYsNC4zNiwwLDAsMCwzMSwzMi44LDQuMjMsNC4yMyww''@;'; + put 'put ''LDAsMCwzMS40OSwyNy40Wk0xNSwxNS40OVY0aDZWMTUuNDlMMjYuMTUsMjNIOS44NVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICcpLEwuQ2xyU2hhcGVBZG1pbmlzdHJhdG9yPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xNC42OCwx''@;'; + put 'put ''NC44MWE2Ljc2LDYuNzYsMCwxLDEsNi43Ni02Ljc1QTYuNzcsNi43NywwLDAsMSwxNC42OCwxNC44MVptMC0xMS41MWE0Ljc2LDQuNzYsMCwxLDAsNC43Niw0Ljc2QTQuNzYsNC43NiwwLDAsMCwxNC42OCwzLjNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIg''@;'; + put 'put ''Lz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNi40MiwzMS42OEEyLjE0LDIuMTQsMCwwLDEsMTUuOCwzMEg0VjI0LjIyYTE0LjgxLDE0LjgxLDAsMCwxLDExLjA5LTQuNjhsLjcyLDBhMi4yLDIuMiwwLDAsMSwuNjItMS44NWwuMTItLjExYy0uNDcsMC0xLS4wNi0xLjQ2LS4wNkExNi40Nywx''@;'; + put 'put ''Ni40NywwLDAsMCwyLjIsMjMuMjZhMSwxLDAsMCwwLS4yLjZWMzBhMiwyLDAsMCwwLDIsMkgxNi43WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODcsMTYuMjlhLjM3LjM3LDAsMCwxLC4xNSwwLC40Mi40''@;'; + put 'put ''MiwwLDAsMC0uMTUsMFoiICBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy42OCwyMy4zMmwtMi0uNjFhNy4yMSw3LjIxLDAsMCwwLS41OC0xLjQxbDEtMS44NkEuMzguMzgsMCwwLDAsMzIsMTlsLTEuNDUtMS40''@;'; + put 'put ''NWEuMzYuMzYsMCwwLDAtLjQ0LS4wN2wtMS44NCwxYTcuMTUsNy4xNSwwLDAsMC0xLjQzLS42MWwtLjYxLTJhLjM2LjM2LDAsMCwwLS4zNi0uMjRIMjMuODJhLjM2LjM2LDAsMCwwLS4zNS4yNmwtLjYxLDJhNyw3LDAsMCwwLTEuNDQuNmwtMS44Mi0xYS4zNS4zNSwwLDAsMC0uNDMuMDdMMTcu''@;'; + put 'put ''NjksMTlhLjM4LjM4LDAsMCwwLS4wNi40NGwxLDEuODJBNi43Nyw2Ljc3LDAsMCwwLDE4LDIyLjY5bC0yLC42YS4zNi4zNiwwLDAsMC0uMjYuMzV2Mi4wNUEuMzUuMzUsMCwwLDAsMTYsMjZsMiwuNjFhNyw3LDAsMCwwLC42LDEuNDFsLTEsMS45MWEuMzYuMzYsMCwwLDAsLjA2LjQzbDEuNDUs''@;'; + put 'put ''MS40NWEuMzguMzgsMCwwLDAsLjQ0LjA3bDEuODctMWE3LjA5LDcuMDksMCwwLDAsMS40LjU3bC42LDJhLjM4LjM4LDAsMCwwLC4zNS4yNmgyLjA1YS4zNy4zNywwLDAsMCwuMzUtLjI2bC42MS0yLjA1YTYuOTIsNi45MiwwLDAsMCwxLjM4LS41N2wxLjg5LDFhLjM2LjM2LDAsMCwwLC40My0u''@;'; + put 'put ''MDdMMzIsMzAuNEEuMzUuMzUsMCwwLDAsMzIsMzBsLTEtMS44OGE3LDcsMCwwLDAsLjU4LTEuMzlsMi0uNjFhLjM2LjM2LDAsMCwwLC4yNi0uMzVWMjMuNjdBLjM2LjM2LDAsMCwwLDMzLjY4LDIzLjMyWk0yNC44NSwyOGEzLjM0LDMuMzQsMCwxLDEsMy4zMy0zLjMzQTMuMzQsMy4zNCwwLDAs''@;'; + put 'put ''MSwyNC44NSwyOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMTQuNjciIGN5PSI4LjMiIHI9IjYiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0''@;'; + put 'put ''aCBkPSJNMTYuNDQsMzEuODJhMi4xNSwyLjE1LDAsMCwxLS4zOC0yLjU1bC41My0xLTEuMDktLjMzQTIuMTQsMi4xNCwwLDAsMSwxNCwyNS44NFYyMy43OWEyLjE2LDIuMTYsMCwwLDEsMS41My0yLjA3bDEuMDktLjMzLS41Mi0xYTIuMTcsMi4xNywwLDAsMSwuMzUtMi41MiwxOC45MiwxOC45''@;'; + put 'put ''MiwwLDAsMC0yLjMyLS4xNkExNS41OCwxNS41OCwwLDAsMCwyLDIzLjA3djcuNzVhMSwxLDAsMCwwLDEsMUgxNi40NFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuNywyMy40NmwtMi0uNmE2LjczLDYuNzMsMCww''@;'; + put 'put ''LDAtLjU4LTEuNDJsMS0xLjg2YS4zNS4zNSwwLDAsMC0uMDctLjQzbC0xLjQ1LTEuNDZhLjM4LjM4LDAsMCwwLS40My0uMDdsLTEuODUsMWE3Ljc0LDcuNzQsMCwwLDAtMS40My0uNmwtLjYxLTJhLjM4LjM4LDAsMCwwLS4zNi0uMjVIMjMuODRhLjM4LjM4LDAsMCwwLS4zNS4yNmwtLjYsMmE2''@;'; + put 'put ''Ljg1LDYuODUsMCwwLDAtMS40NS42MWwtMS44MS0xYS4zOC4zOCwwLDAsMC0uNDQuMDZsLTEuNDcsMS40NGEuMzcuMzcsMCwwLDAtLjA3LjQ0bDEsMS44MkE3LjI0LDcuMjQsMCwwLDAsMTgsMjIuODNsLTIsLjYxYS4zNi4zNiwwLDAsMC0uMjYuMzV2Mi4wNWEuMzYuMzYsMCwwLDAsLjI2LjM1''@;'; + put 'put ''bDIsLjYxYTcuMjksNy4yOSwwLDAsMCwuNiwxLjQxbC0xLDEuOWEuMzcuMzcsMCwwLDAsLjA3LjQ0TDE5LjE2LDMyYS4zOC4zOCwwLDAsMCwuNDQuMDZsMS44Ny0xYTcuMDksNy4wOSwwLDAsMCwxLjQuNTdsLjYsMi4wNWEuMzguMzgsMCwwLDAsLjM2LjI2aDIuMDVhLjM4LjM4LDAsMCwwLC4z''@;'; + put 'put ''NS0uMjZsLjYtMi4wNWE2LjY4LDYuNjgsMCwwLDAsMS4zOC0uNTdsMS44OSwxYS4zOC4zOCwwLDAsMCwuNDQtLjA2TDMyLDMwLjU1YS4zOC4zOCwwLDAsMCwuMDYtLjQ0bC0xLTEuODhhNi45Miw2LjkyLDAsMCwwLC41Ny0xLjM4bDItLjYxYS4zOS4zOSwwLDAsMCwuMjctLjM1VjIzLjgyQS40''@;'; + put 'put ''LjQsMCwwLDAsMzMuNywyMy40NlptLTguODMsNC43MmEzLjM0LDMuMzQsMCwxLDEsMy4zMy0zLjM0QTMuMzQsMy4zNCwwLDAsMSwyNC44NywyOC4xOFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIC8+XG4gICAgICAgICcpLEwuQ2xyU2hhcGVIYXJkRHJpdmU9KDAs''@;'; + put 'put ''RS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTM0LDhhMiwyLDAsMCwwLTItMkg0QTIsMiwwLDAsMCwyLDhWMjhhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yWk0zMiwyOEg0VjhIMzJWMjhaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAg''@;'; + put 'put ''ICAgICAgIDxjaXJjbGUgY3g9IjYuMjEiIGN5PSIxMC4yNSIgcj0iMS4yNSIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIyOS44MSIgY3k9IjEwLjI1IiByPSIxLjI1IiBjbGFzcz0iY2xyLWktb3V0bGluZSBj''@;'; + put 'put ''bHItaS1vdXRsaW5lLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjYuMjEiIGN5PSIyNS40MiIgcj0iMS4yNSIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIyOS44MSIgY3k9IjI1LjQyIiBy''@;'; + put 'put ''PSIxLjI1IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMS44OCwxOC4wOGEzLjU5LDMuNTksMCwxLDAsMy41OS0zLjU5LDMuODQsMy44NCwwLDAsMC0uOTEuMTNMMTUsMTYuMTZhMi4wOCwyLjA4LDAsMCwxLC41''@;'; + put 'put ''LS4wNywyLDIsMCwxLDEtMiwyLDEuNjQsMS42NCwwLDAsMSwuMDgtLjVMMTIsMTcuMTZBMy41MywzLjUzLDAsMCwwLDExLjg4LDE4LjA4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTUuNDcsMjUuNzNhNy42''@;'; + put 'put ''Niw3LjY2LDAsMCwxLTcuNjUtNy42NSw3LjU1LDcuNTUsMCwwLDEsLjI3LTJMNi41NCwxNS43YTkuMjQsOS4yNCwwLDAsMCwxNy44LDQuOTVIMjIuNjZBNy42NCw3LjY0LDAsMCwxLDE1LjQ3LDI1LjczWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTciIC8+XG4g''@;'; + put 'put ''ICAgICAgICAgICA8cGF0aCBkPSJNMjguMjIsMTcuODNhLjguOCwwLDAsMC0uOC0uOEgyNC42NmE5LjI2LDkuMjYsMCwwLDAtOS4xOS04LjIsOS4zNiw5LjM2LDAsMCwwLTIuMzguMzJsLjQyLDEuNTRhNy44Niw3Ljg2LDAsMCwxLDItLjI2QTcuNjYsNy42NiwwLDAsMSwyMywxN0gyMC45MmEu''@;'; + put 'put ''OC44LDAsMCwwLDAsMS42aDYuNUEuOC44LDAsMCwwLDI4LjIyLDE3LjgzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTgiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIsNkg0QTIsMiwwLDAsMCwyLDhWMjhhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAs''@;'; + put 'put ''Mi0yVjhBMiwyLDAsMCwwLDMyLDZaTTEyLDE3LjE2bDEuNTQuNDJhMS42NCwxLjY0LDAsMCwwLS4wOC41LDIsMiwwLDEsMCwyLTIsMi4wOCwyLjA4LDAsMCwwLS41LjA3bC0uNDEtMS41NGEzLjg0LDMuODQsMCwwLDEsLjkxLS4xMywzLjU5LDMuNTksMCwxLDEtMy41OSwzLjU5QTMuNTMsMy41''@;'; + put 'put ''MywwLDAsMSwxMiwxNy4xNlpNNS4zMSw4QTEuMjUsMS4yNSwwLDEsMSw0LjA2LDkuMjUsMS4yNSwxLjI1LDAsMCwxLDUuMzEsOFptMCwyMC4wNmExLjI1LDEuMjUsMCwxLDEsMS4yNS0xLjI1QTEuMjUsMS4yNSwwLDAsMSw1LjMxLDI4LjA2Wm0xMC4xNi0uNzNBOS4yMiw5LjIyLDAsMCwxLDYu''@;'; + put 'put ''NTQsMTUuN2wxLjU1LjQxYTcuNTUsNy41NSwwLDAsMC0uMjcsMiw3LjY0LDcuNjQsMCwwLDAsMTQuODQsMi41N2gxLjY4QTkuMjUsOS4yNSwwLDAsMSwxNS40NywyNy4zM1ptMTItOC43aC02LjVhLjguOCwwLDAsMSwwLTEuNkgyM2E3LjY2LDcuNjYsMCwwLDAtNy41Ny02LjYsNy44Niw3Ljg2''@;'; + put 'put ''LDAsMCwwLTIsLjI2bC0uNDItMS41NGE5LjM2LDkuMzYsMCwwLDEsMi4zOC0uMzJBOS4yNiw5LjI2LDAsMCwxLDI0LjY2LDE3aDIuNzZhLjguOCwwLDAsMSwwLDEuNlptMy4zOSw5LjQzYTEuMjUsMS4yNSwwLDEsMSwxLjI1LTEuMjVBMS4yNSwxLjI1LDAsMCwxLDMwLjgxLDI4LjA2Wm0wLTE3''@;'; + put 'put ''LjU2YTEuMjUsMS4yNSwwLDEsMSwxLjI1LTEuMjVBMS4yNSwxLjI1LDAsMCwxLDMwLjgxLDEwLjVaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAgICAnKSxMLkNsclNoYXBlSGFyZERyaXZlRGlza3M9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0i''@;'; + put 'put ''TTI2LDUuNzRBMS43NCwxLjc0LDAsMCwwLDI0LjI2LDRIMy43NEExLjc0LDEuNzQsMCwwLDAsMiw1Ljc0VjIwLjI2QTEuNzQsMS43NCwwLDAsMCwzLjc0LDIySDRWNkgyNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGgg''@;'; + put 'put ''ZD0iTTMwLDkuNzRBMS43NCwxLjc0LDAsMCwwLDI4LjI2LDhINy43NEExLjc0LDEuNzQsMCwwLDAsNiw5Ljc0VjI0LjI2QTEuNzQsMS43NCwwLDAsMCw3Ljc0LDI2SDhWMTBIMzBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxw''@;'; + put 'put ''YXRoIGQ9Ik0zMi4yNiwxMkgxMS43NEExLjc0LDEuNzQsMCwwLDAsMTAsMTMuNzRWMjguMjZBMS43NCwxLjc0LDAsMCwwLDExLjc0LDMwSDMyLjI2QTEuNzQsMS43NCwwLDAsMCwzNCwyOC4yNlYxMy43NEExLjc0LDEuNzQsMCwwLDAsMzIuMjYsMTJaTTMyLDI4SDEyVjE0SDMyWiIgY2xhc3M9''@;'; + put 'put ''ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTkuOTQsMjMuNjhhMi42NCwyLjY0LDAsMSwwLTIuNy0yLjYzQTIuNjcsMi42NywwLDAsMCwxOS45NCwyMy42OFptMC0zLjg3YTEuMjQsMS4yNCwwLDEsMS0xLjI5LDEuMjRBMS4y''@;'; + put 'put ''NywxLjI3LDAsMCwxLDE5Ljk0LDE5LjgxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTkuOTQsMTYuMjJhNC45Myw0LjkzLDAsMCwxLDQuOTUsNC4zNUgyMy43MVYyMmg0LjQxYS43LjcsMCwwLDAsMC0xLjRI''@;'; + put 'put ''MjYuMzFhNi4zMyw2LjMzLDAsMCwwLTYuMzctNS43NSw2LjU4LDYuNTgsMCwwLDAtMS40OC4xN2wuMzUsMS4zN0E0LjczLDQuNzMsMCwwLDEsMTkuOTQsMTYuMjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0x''@;'; + put 'put ''OS45NCwyNy4yN2E2LjQyLDYuNDIsMCwwLDAsNS42Ny0zLjM1SDIzLjkzYTUsNSwwLDAsMS00LDEuOTUsNC45MSw0LjkxLDAsMCwxLTUtNC44Miw1LjE2LDUuMTYsMCwwLDEsLjA4LS43OUwxMy42MywyMGE3LDcsMCwwLDAtLjA5LDFBNi4zMiw2LjMyLDAsMCwwLDE5Ljk0LDI3LjI3WiIgY2xh''@;'; + put 'put ''c3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYsNS43NEExLjc0LDEuNzQsMCwwLDAsMjQuMjYsNEgzLjc0QTEuNzQsMS43NCwwLDAsMCwyLDUuNzRWMjAuMjZBMS43NCwxLjc0LDAsMCwwLDMuNzQsMjJINFY2SDI2WiIg''@;'; + put 'put ''Y2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMCw5Ljc0QTEuNzQsMS43NCwwLDAsMCwyOC4yNiw4SDcuNzRBMS43NCwxLjc0LDAsMCwwLDYsOS43NFYyNC4yNkExLjc0LDEuNzQsMCwwLDAsNy43NCwyNkg4VjEwSDMwWiIg''@;'; + put 'put ''Y2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOS42MiwyMi42QTEuNTUsMS41NSwwLDEsMCwxOCwyMS4wNSwxLjYsMS42LDAsMCwwLDE5LjYyLDIyLjZaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0z''@;'; + put 'put ''IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMyLjI2LDEySDExLjc0QTEuNzQsMS43NCwwLDAsMCwxMCwxMy43NFYyOC4yNkExLjc0LDEuNzQsMCwwLDAsMTEuNzQsMzBIMzIuMjZBMS43NCwxLjc0LDAsMCwwLDM0LDI4LjI2VjEzLjc0QTEuNzQsMS43NCwwLDAsMCwzMi4yNiwxMlpNMTku''@;'; + put 'put ''NjIsMTcuNzRhMy4zMSwzLjMxLDAsMSwxLTMuMzgsMy4zMUEzLjM1LDMuMzUsMCwwLDEsMTkuNjIsMTcuNzRabTAsMTEuMTNhNy45NCw3Ljk0LDAsMCwxLTgtNy44Miw3LjgzLDcuODMsMCwwLDEsLjExLTEuMjlsMS43NS4zYTUuMzYsNS4zNiwwLDAsMC0uMTEsMSw2LjE4LDYuMTgsMCwwLDAs''@;'; + put 'put ''Ni4yOCw2LjA2LDYuMzUsNi4zNSwwLDAsMCw1LTIuNDZoMi4xQTguMDYsOC4wNiwwLDAsMSwxOS42MiwyOC44N1pNMjkuODksMjIuMkgyNC4zNlYyMC40NGgxLjQ4QTYuMTksNi4xOSwwLDAsMCwxOS42MiwxNWE2LjQ4LDYuNDgsMCwwLDAtMS40MS4xNmwtLjQ1LTEuN2E4LjE2LDguMTYsMCww''@;'; + put 'put ''LDEsMS44Ni0uMjIsOCw4LDAsMCwxLDgsNy4yMWgyLjI2YS44OC44OCwwLDAsMSwwLDEuNzZaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC00IiAvPlxuICAgICAgICAnKSxMLkNsclNoYXBlTlZNZT0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjcsMjJWMTRhMiwy''@;'; + put 'put ''LDAsMCwwLTItMkgxMWEyLDIsMCwwLDAtMiwydjhhMiwyLDAsMCwwLDIsMkgyNUEyLDIsMCwwLDAsMjcsMjJaTTExLDE0SDI1djhIMTFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE5IiB5PSI2IiB3aWR0aD0i''@;'; + put 'put ''NCIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjI1LjAxIiB5PSI2IiB3aWR0aD0iMS45NyIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz5c''@;'; + put 'put ''biAgICAgICAgICAgIDxwYXRoIGQ9Ik01LjgsOEgxNi44N1Y2aC0xMUw3Ljc4LDQuMDhhMSwxLDAsMCwwLDAtMS40MiwxLDEsMCwwLDAtMS40MSwwTDIsNyw2LjM3LDExLjRhMSwxLDAsMCwwLDEuNDEsMCwxLDEsMCwwLDAsMC0xLjQxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0''@;'; + put 'put ''bGluZS1wYXRoLTQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjkuNjEsMjQuNjhhMSwxLDAsMCwwLTEuNDEsMCwxLDEsMCwwLDAsMCwxLjQyTDMwLjEsMjhIMTl2MkgzMC4ybC0yLDJhMSwxLDAsMCwwLDAsMS40MSwxLDEsMCwwLDAsLjcuMjksMSwxLDAsMCwwLC43MS0uMjlMMzQsMjku''@;'; + put 'put ''MDVaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjEzIiB5PSIyOCIgd2lkdGg9IjQiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIC8+XG4gICAgICAgICAgICA8''@;'; + put 'put ''cmVjdCB4PSI5IiB5PSIyOCIgd2lkdGg9IjEuOTciIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTciIC8+XG4gICAgICAgICcpLEwuQ2xyU2hhcGVTU0Q9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMyLDZINEEyLDIsMCwwLDAsMiw4VjI4''@;'; + put 'put ''YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlY4QTIsMiwwLDAsMCwzMiw2Wm0wLDIySDRWOEgzMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iNi4yMSIgY3k9IjEwLjI1IiByPSIxLjI1IiBjbGFz''@;'; + put 'put ''cz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjI5LjgxIiBjeT0iMTAuMjUiIHI9IjEuMjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0i''@;'; + put 'put ''Ni4yMSIgY3k9IjI1LjQyIiByPSIxLjI1IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjI5LjgxIiBjeT0iMjUuNDIiIHI9IjEuMjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01''@;'; + put 'put ''IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTEwLDE4LjYyYzEuMzIuMzEsMS45MS41NCwxLjkxLDEuMjJzLS41MywxLjA5LTEuNTUsMS4wOWE0LDQsMCwwLDEtMi43MS0xLjExbC0uODYsMS4wNmE1LDUsMCwwLDAsMy41MiwxLjM0YzIsMCwzLjEtMSwzLjEtMi41MnMtMS4xNS0yLjA1LTIu''@;'; + put 'put ''ODctMi40NGMtMS4zMS0uMy0xLjkyLS41NC0xLjkyLTEuMjFBMS4yNSwxLjI1LDAsMCwxLDEwLDE1YTMuNjgsMy42OCwwLDAsMSwyLjM3LDFsLjgxLTEuMUE0LjU4LDQuNTgsMCwwLDAsMTAsMTMuNjljLTEuNzQsMC0zLDEuMDUtMywyLjQ5UzguMjYsMTguMjIsMTAsMTguNjJaIiBjbGFzcz0i''@;'; + put 'put ''Y2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNy44MywyMC45M2E0LDQsMCwwLDEtMi43MS0xLjExbC0uODYsMS4wNmE1LDUsMCwwLDAsMy41MiwxLjM0YzIsMCwzLjEtMSwzLjEtMi41MlMxOS43MywxNy42NSwxOCwxNy4yNmMt''@;'; + put 'put ''MS4zMS0uMy0xLjkyLS41NC0xLjkyLTEuMjFBMS4yNSwxLjI1LDAsMCwxLDE3LjQ4LDE1YTMuNjgsMy42OCwwLDAsMSwyLjM3LDFsLjgxLTEuMWE0LjU2LDQuNTYsMCwwLDAtMy4xMi0xLjE1Yy0xLjczLDAtMywxLjA1LTMsMi40OXMxLjE5LDIsMi44OSwyLjQ0YzEuMzIuMzEsMS45MS41NCwx''@;'; + put 'put ''LjkxLDEuMjJTMTguODUsMjAuOTMsMTcuODMsMjAuOTNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNyIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOS45LDE4YzAtMi40MS0xLjkyLTQuMTItNC42NC00LjEyaC0yLjl2OC4yNGgyLjlDMjgsMjIuMDgsMjku''@;'; + put 'put ''OSwyMC4zNywyOS45LDE4Wm0tNi0yLjc2aDEuNTZhMi43NywyLjc3LDAsMSwxLDAsNS41M0gyMy44NloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC04IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMyLDZINEEyLDIsMCwwLDAsMiw4VjI4YTIsMiwwLDAsMCwy''@;'; + put 'put ''LDJIMzJhMiwyLDAsMCwwLDItMlY4QTIsMiwwLDAsMCwzMiw2Wk01LjIxLDhBMS4yNSwxLjI1LDAsMSwxLDQsOS4yNSwxLjI1LDEuMjUsMCwwLDEsNS4yMSw4Wm0wLDIwYTEuMjUsMS4yNSwwLDEsMSwxLjI1LTEuMjVBMS4yNSwxLjI1LDAsMCwxLDUuMjEsMjhabTUuMDYtNS43OGE1LDUsMCww''@;'; + put 'put ''LDEtMy41Mi0xLjM0bC44Ni0xLjA2YTQsNCwwLDAsMCwyLjcxLDEuMTFjMSwwLDEuNTUtLjUsMS41NS0xLjA5cy0uNTktLjkxLTEuOTEtMS4yMmMtMS43LS40LTIuODktLjg5LTIuODktMi40NHMxLjIyLTIuNDksMy0yLjQ5YTQuNTgsNC41OCwwLDAsMSwzLjEyLDEuMTVsLS44MSwxLjFBMy42''@;'; + put 'put ''OCwzLjY4LDAsMCwwLDEwLDE1YTEuMjUsMS4yNSwwLDAsMC0xLjM5LDEuMDhjMCwuNjcuNjEuOTEsMS45MiwxLjIxLDEuNzIuMzksMi44Ny45NCwyLjg3LDIuNDRTMTIuMjQsMjIuMjIsMTAuMjcsMjIuMjJabTcuNTEsMGE1LDUsMCwwLDEtMy41Mi0xLjM0bC44Ni0xLjA2YTQsNCwwLDAsMCwy''@;'; + put 'put ''LjcxLDEuMTFjMSwwLDEuNTUtLjUsMS41NS0xLjA5cy0uNTktLjkxLTEuOTEtMS4yMmMtMS43LS40LTIuODktLjg5LTIuODktMi40NHMxLjIzLTIuNDksMy0yLjQ5YTQuNTYsNC41NiwwLDAsMSwzLjEyLDEuMTVsLS44MSwxLjFhMy42OCwzLjY4LDAsMCwwLTIuMzctMSwxLjI1LDEuMjUsMCww''@;'; + put 'put ''LDAtMS4zOSwxLjA4YzAsLjY3LjYxLjkxLDEuOTIsMS4yMSwxLjcyLjM5LDIuODcuOTQsMi44NywyLjQ0UzE5Ljc1LDIyLjIyLDE3Ljc4LDIyLjIyWm00LjU4LS4xNFYxMy44NGgyLjljMi43MiwwLDQuNjQsMS43MSw0LjY0LDQuMTJTMjgsMjIuMDgsMjUuMjYsMjIuMDhaTTMwLjY5LDI4YTEu''@;'; + put 'put ''MjUsMS4yNSwwLDEsMSwxLjI1LTEuMjVBMS4yNSwxLjI1LDAsMCwxLDMwLjY5LDI4Wm0wLTE3LjVhMS4yNSwxLjI1LDAsMSwxLDEuMjUtMS4yNUExLjI1LDEuMjUsMCwwLDEsMzAuNjksMTAuNVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAg''@;'; + put 'put ''ICA8cGF0aCBkPSJNMjMuODYsMTUuMmgxLjU2YTIuNzcsMi43NywwLDEsMSwwLDUuNTNIMjMuODZaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPlxuICAgICAgICAnKSxMLkNsclNoYXBlQmx1ZXRvb3RoPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yNi42''@;'; + put 'put ''NCwyNS4yNywxOSwxNy41MywxOSwzLDI1LjIxLDkuNGwtNS42NSw1Ljc5TDIxLDE2LjYybDUuNjgtNS44MmEyLDIsMCwwLDAsMC0yLjc4TDIwLjQ4LDEuN0EyLjA4LDIuMDgsMCwwLDAsMTguODUsMSwyLDIsMCwwLDAsMTcsM1YxNS4zOEwxMC4wNSw4LjI3QTEsMSwwLDAsMCw4LjYyLDkuNjZM''@;'; + put 'put ''MTYuNzksMTgsOS4wNiwyNmExLDEsMCwwLDAsMCwxLjQxLDEsMSwwLDAsMCwuNy4yOSwxLDEsMCwwLDAsLjcyLS4zMUwxNywyMC42OFYzM2EyLjA3LDIuMDcsMCwwLDAsLjcxLDEuNjJBMiwyLDAsMCwwLDE5LDM1YTEuOTQsMS45NCwwLDAsMCwxLjQyLS42bDYuMjMtNi4zOEEyLDIsMCwwLDAs''@;'; + put 'put ''MjYuNjQsMjUuMjdaTTE5LDMzLjA1VjIwLjI5bDYuMjEsNi4zNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICA8cGF0aCBkPSJNMjYuNTIsMjQuNTJsLTUuNjUtNS44My0xLjQ2LTEuNXYtMTJMMjMuNzksOS43bC0zLjYsMy43MSwyLjI0LDIuMjks''@;'; + put 'put ''NC4wOS00LjIyYTIuNTQsMi41NCwwLDAsMCwwLTMuNTZMMjAuNTcsMS43OEEyLjU0LDIuNTQsMCwwLDAsMTYuMiwzLjU1VjEzLjg2bC01LjUzLTUuN2ExLjYsMS42LDAsMSwwLTIuMywyLjIzTDE1Ljc1LDE4bC03LDcuMTlhMS42LDEuNiwwLDAsMCwwLDIuMjYsMS42MywxLjYzLDAsMCwwLDEu''@;'; + put 'put ''MTIuNDUsMS41OCwxLjU4LDAsMCwwLDEuMTUtLjQ5bDUuMTEtNS4yN1YzMi40NWEyLjUzLDIuNTMsMCwwLDAsMS41OSwyLjM2LDIuNDQsMi40NCwwLDAsMCwuOTUuMTksMi41NiwyLjU2LDAsMCwwLDEuODMtLjc3bDUuOTUtNi4xNUEyLjU0LDIuNTQsMCwwLDAsMjYuNTIsMjQuNTJaTTE5LjQs''@;'; + put 'put ''MzAuODNWMjEuNzdsNC4zOSw0LjUzWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz4nKSxMLkNsclNoYXBlQmx1ZXRvb3RoT2ZmPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xOSwzLDI1LjIyLDkuNGwtNS42Niw1LjhMMjEsMTYuNjNsNS42OC01LjgzYTIs''@;'; + put 'put ''MiwwLDAsMCwwLTIuNzhMMjAuNDgsMS43QTIsMiwwLDAsMCwxOC44NSwxLDIsMiwwLDAsMCwxNywzdjExLjRsMiwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTQuNzcsNSwzLjM2LDYuNDIsMTUuODksMTksOS4wNiwyNmExLDEsMCww''@;'; + put 'put ''LDAsLjcxLDEuNywxLDEsMCwwLDAsLjcyLS4zMUwxNywyMC42OFYzMi45NGEyLjA4LDIuMDgsMCwwLDAsLjcxLDEuNjNBMiwyLDAsMCwwLDE5LDM1YTIsMiwwLDAsMCwxLjQyLS42bDUuNDEtNS41NCwzLjU0LDMuNTNMMzAuNzcsMzFaTTE5LDMzLjA1di0xMWw1LjQxLDUuNDFaIiBjbGFzcz0i''@;'; + put 'put ''Y2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMTkuMzEsNS4xNywyMy43LDkuN2wtMy41OSwzLjcxLDIuMjQsMi4yOSw0LjA5LTQuMjJhMi41NiwyLjU2LDAsMCwwLDAtMy41NmwtNi02LjE0YTIuNTEsMi41MSwwLDAsMC0yLjc3LS41OSwyLjU0LDIuNTQs''@;'; + put 'put ''MCwwLDAtMS42LDIuMzZ2MTBsMy4yMSwzLjIxWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz48cGF0aCBkPSJNNC41LDUsMy4wOSw2LjQyLDE1LjE3LDE4LjUxLDguNywyNS4xOUExLjYsMS42LDAsMCwwLDkuODUsMjcuOSwxLjU3LDEuNTcsMCwwLDAsMTEsMjcu''@;'; + put 'put ''NDFsNS4xMS01LjI3VjMyLjQ1YTIuNTQsMi41NCwwLDAsMCwxLjYsMi4zNiwyLjQ0LDIuNDQsMCwwLDAsLjk1LjE5LDIuNTUsMi41NSwwLDAsMCwxLjgyLS43N2w1LjEyLTUuMjksMy40OSwzLjQ4TDMwLjUsMzFaTTE5LjgxLDMwLjgzVjIyLjY1bDQsNFoiIGNsYXNzPSJjbHItaS1zb2xpZCBj''@;'; + put 'put ''bHItaS1zb2xpZC1wYXRoLTIiIC8+JyksTC5DbHJTaGFwZVByb2Nlc3NPblZNPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMy40OSwyNi4yOGExLDEsMCwwLDAtMS4yLS43bC0yLjQ5LjY3YTE0LjIzLDE0LjIzLDAsMCwwLDIuNC02Ljc1QTE0LjQ4LDE0LjQ4LDAsMCwwLDI3LjM3LDcu''@;'; + put 'put ''MzUsMSwxLDAsMCwwLDI2LDcuNDRhMSwxLDAsMCwwLC4wOSwxLjQxLDEyLjQ1LDEyLjQ1LDAsMCwxLDQuMTYsMTAuNDYsMTIuMTksMTIuMTksMCwwLDEtMiw1Ljc0TDI4LDIyLjU0YTEsMSwwLDEsMC0xLjk1LjE2bC41LDYuNDQsNi4yNS0xLjY2QTEsMSwwLDAsMCwzMy40OSwyNi4yOFoiIGNs''@;'; + put 'put ''YXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik00LjMxLDE3LjA4YTEuMDYsMS4wNiwwLDAsMCwuNDQuMTYsMSwxLDAsMCwwLDEuMTItLjg1QTEyLjIxLDEyLjIxLDAsMCwxLDE4LjY5LDUuODRMMTYuNDUsNy4zN2ExLDEsMCwwLDAsLjQ3LDEuNzlB''@;'; + put 'put ''MSwxLDAsMCwwLDE3LjU2LDlsNS4zMy0zLjY2TDE4LjMzLjc2YTEsMSwwLDEsMC0xLjM5LDEuMzhsMS43LDEuN0ExNC4yLDE0LjIsMCwwLDAsMy44OSwxNi4xMiwxLDEsMCwwLDAsNC4zMSwxNy4wOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRo''@;'; + put 'put ''IGQ9Ik0yMS43MywyOS45M2ExMiwxMiwwLDAsMS00Ljg0LjUxLDEyLjMsMTIuMywwLDAsMS05LjU3LTYuM2wyLjQ5LjkzYTEsMSwwLDAsMCwuNjktMS44NGwtNC41OS0xLjdoMEw0LjQ0LDIxLDMuMzMsMjcuMzVhMSwxLDAsMCwwLC43OSwxLjEzbC4xNywwYTEsMSwwLDAsMCwxLS44MWwuNDIt''@;'; + put 'put ''Mi40YTE0LjMsMTQuMywwLDAsMCwxMSw3LjE0LDEzLjkxLDEzLjkxLDAsMCwwLDUuNjMtLjYsMSwxLDAsMCwwLS42LTEuOVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0yMiwxM0gxNGExLDEsMCwwLDAtMSwxdjhhMSwxLDAsMCwwLDEs''@;'; + put 'put ''MWg4YTEsMSwwLDAsMCwxLTFWMTRBMSwxLDAsMCwwLDIyLDEzWm0tMSw4SDE1VjE1aDZaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz4nKSxMLkNsclNoYXBlQXNzaWduVXNlcj0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTgsMTdhNy40Niw3LjQ2''@;'; + put 'put ''LDAsMSwwLTcuNDUtNy40NkE3LjQ2LDcuNDYsMCwwLDAsMTgsMTdaTTE4LDQuMDdhNS40Niw1LjQ2LDAsMSwxLTUuNDUsNS40NUE1LjQ2LDUuNDYsMCwwLDEsMTgsNC4wN1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik02LDMxLjg5VjI1''@;'; + put 'put ''Ljc3YTE2LjEzLDE2LjEzLDAsMCwxLDEyLTUsMTYuNjEsMTYuNjEsMCwwLDEsOC43MSwyLjMzbDEuMzUtMS41MUExOC41MywxOC41MywwLDAsMCwxOCwxOC43NCwxNy43LDE3LjcsMCwwLDAsNC4yMSwyNC44YTEsMSwwLDAsMC0uMjEuNnY2LjQ5QTIuMDYsMi4wNiwwLDAsMCw2LDM0SDE4LjM5''@;'; + put 'put ''bC0xLjktMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0zMCwzMS44OSwzMCwzMkgyNi44NWwtMS44LDJIMzBhMi4wNiwyLjA2LDAsMCwwLDItMi4wN1YyNi4ybC0yLDIuMjNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRs''@;'; + put 'put ''aW5lLXBhdGgtMyIgLz48cGF0aCBkPSJNMzQuNzYsMTguNjJhMSwxLDAsMCwwLTEuNDEuMDhsLTExLjYyLDEzLTUuMi01LjU5QTEsMSwwLDAsMCwxNS4xMiwyNmExLDEsMCwwLDAtLjA2LDEuNDJsNi42OSw3LjJMMzQuODQsMjBBMSwxLDAsMCwwLDM0Ljc2LDE4LjYyWiIgY2xhc3M9ImNsci1p''@;'; + put 'put ''LW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+PGNpcmNsZSBjeD0iMTcuOTkiIGN5PSIxMC4zNiIgcj0iNi44MSIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz48cGF0aCBkPSJNMTIsMjYuNjVhMi44LDIuOCwwLDAsMSw0Ljg1LTEuOEwyMC43MSwyOWw2''@;'; + put 'put ''Ljg0LTcuNjNBMTYuODEsMTYuODEsMCwwLDAsMTgsMTguNTUsMTYuMTMsMTYuMTMsMCwwLDAsNS41LDI0YTEsMSwwLDAsMC0uMi42MVYzMGEyLDIsMCwwLDAsMS45NCwyaDguNTdsLTMuMDctMy4zQTIuODEsMi44MSwwLDAsMSwxMiwyNi42NVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1z''@;'; + put 'put ''b2xpZC1wYXRoLTIiIC8+PHBhdGggZD0iTTI4Ljc2LDMyYTIsMiwwLDAsMCwxLjk0LTJWMjYuMjRMMjUuNTcsMzJaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0zMy43NywxOC42MmExLDEsMCwwLDAtMS40Mi4wOGwtMTEuNjIsMTMtNS4yLTUu''@;'; + put 'put ''NTlBMSwxLDAsMCwwLDE0LjEyLDI2YTEsMSwwLDAsMCwwLDEuNDJsNi42OCw3LjJMMzMuODQsMjBBMSwxLDAsMCwwLDMzLjc3LDE4LjYyWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNCIgLz4nKSxMLkNsclNoYXBlQXRvbT0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBk''@;'; + put 'put ''PSJNMTgsMTQuMDVhNCw0LDAsMSwwLDQsNEE0LDQsMCwwLDAsMTgsMTQuMDVabTAsNi40NGEyLjQyLDIuNDIsMCwxLDEsMi40Mi0yLjQyQTIuNDIsMi40MiwwLDAsMSwxOCwyMC40OVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0yNC4y''@;'; + put 'put ''MywxMS43MWEzOS4xNCwzOS4xNCwwLDAsMC00LjU3LTMuOTIsMjIuODYsMjIuODYsMCwwLDEsMy40OC0xLjcyYy4zMi0uMTIuNjItLjIxLjkyLS4zYTIuMjgsMi4yOCwwLDAsMCwzLjgxLS40NiwzLjMxLDMuMzEsMCwwLDEsMS45Mi44NGMxLjE5LDEuMTksMS4yMiwzLjU5LjEsNi41OC40OS42''@;'; + put 'put ''NS45NCwxLjMxLDEuMzUsMiwuMTctLjQuMzUtLjc5LjQ5LTEuMTgsMS40Ny0zLjg1LDEuMjgtNy0uNTMtOC43OGE1LjI5LDUuMjksMCwwLDAtMy4zMy0xLjQ0LDIuMjksMi4yOSwwLDAsMC00LjMxLjU0Yy0uMzcuMTEtLjc0LjIyLTEuMTMuMzdhMjUuNzksMjUuNzksMCwwLDAtNC41NywyLjM1''@;'; + put 'put ''QTI2LjIxLDI2LjIxLDAsMCwwLDEzLjI4LDQuMmMtMy44NS0xLjQ2LTctMS4yOC04Ljc3LjUzQzIuODUsNi40LDIuNTgsOS4xNywzLjY4LDEyLjU5YTIuMjgsMi4yOCwwLDAsMCwxLjU5LDMuNjdjLjMyLjYxLjY3LDEuMjIsMS4wNiwxLjgyQTI1LjU0LDI1LjU0LDAsMCwwLDQsMjIuNjZjLTEu''@;'; + put 'put ''NDcsMy44NC0xLjI4LDcsLjUzLDguNzdhNS42Myw1LjYzLDAsMCwwLDQuMTIsMS41MSwxMy4zNCwxMy4zNCwwLDAsMCw0LjY1LTEsMjYuMjEsMjYuMjEsMCwwLDAsNC41OC0yLjM1QTI1Ljc5LDI1Ljc5LDAsMCwwLDIyLjQzLDMyYTE0LjE2LDE0LjE2LDAsMCwwLDMuNjUuOUEyLjMsMi4zLDAs''@;'; + put 'put ''MCwwLDMwLjQ2LDMyYTQuNTUsNC41NSwwLDAsMCwuNzQtLjU3YzEuODEtMS44MSwyLTQuOTMuNTMtOC43N0EzMi42OCwzMi42OCwwLDAsMCwyNC4yMywxMS43MVpNMTIuNTcsMzAuMDljLTMsMS4xNS01LjQ1LDEuMTMtNi42NS0uMDhzLTEuMjMtMy42Mi0uMDctNi42NGEyMi43NywyMi43Nyww''@;'; + put 'put ''LDAsMSwxLjcxLTMuNDgsNDAuMTksNDAuMTksMCwwLDAsMy45Miw0LjU2Yy40My40My44Ny44NSwxLjMxLDEuMjVxLjktLjQ2LDEuODMtMS4wNWMtLjU4LS41Mi0xLjE2LTEtMS43Mi0xLjYxYTM0LDM0LDAsMCwxLTUuNzQtNy40N0EyLjI5LDIuMjksMCwwLDAsNS41LDExLjY5aDBjLS43NS0y''@;'; + put 'put ''LjUtLjYyLTQuNDkuNDMtNS41NGEzLjcyLDMuNzIsMCwwLDEsMi43Mi0uOTIsMTEuNCwxMS40LDAsMCwxLDMuOTMuODQsMjIuODYsMjIuODYsMCwwLDEsMy40OCwxLjcyLDM5LjE0LDM5LjE0LDAsMCwwLTQuNTcsMy45MmMtLjQ0LjQ0LS44Ny45LTEuMjksMS4zNmEyMC4yNywyMC4yNywwLDAs''@;'; + put 'put ''MCwxLDEuODVjLjU0LS42MSwxLjA5LTEuMjEsMS42OC0xLjhhMzYuMzMsMzYuMzMsMCwwLDEsNS00LjE3LDM2Ljg4LDM2Ljg4LDAsMCwxLDQuOTUsNC4xNywzNi4yNiwzNi4yNiwwLDAsMSw0LjE3LDUsMzcsMzcsMCwwLDEtNC4xNyw1QTMwLjY4LDMwLjY4LDAsMCwxLDEyLjU3LDMwLjA5Wk0y''@;'; + put 'put ''OS43OSwzMGwtLjE2LjEzYTIuMjcsMi4yNywwLDAsMC0zLjUuNzIsMTIuNTcsMTIuNTcsMCwwLDEtMy0uNzcsMjIsMjIsMCwwLDEtMy40OC0xLjcyLDM5LjE0LDM5LjE0LDAsMCwwLDQuNTctMy45MiwzOC4yNiwzOC4yNiwwLDAsMCwzLjkyLTQuNTYsMjIuODgsMjIuODgsMCwwLDEsMS43Miwz''@;'; + put 'put ''LjQ4QzMxLDI2LjM5LDMxLDI4LjgxLDI5Ljc5LDMwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTI0LjIzLDExLjcxYTM5LjE0LDM5LjE0LDAsMCwwLTQuNTctMy45MiwyMi44NiwyMi44NiwwLDAsMSwzLjQ4LTEuNzJjLjMyLS4xMi42''@;'; + put 'put ''Mi0uMjEuOTItLjNhMi4yOCwyLjI4LDAsMCwwLDMuODEtLjQ2LDMuMzEsMy4zMSwwLDAsMSwxLjkyLjg0YzEuMTksMS4xOSwxLjIyLDMuNTkuMSw2LjU4LjQ5LjY1Ljk0LDEuMzEsMS4zNSwyLC4xNy0uNC4zNS0uNzkuNDktMS4xOCwxLjQ3LTMuODUsMS4yOC03LS41My04Ljc4YTUuMjksNS4y''@;'; + put 'put ''OSwwLDAsMC0zLjMzLTEuNDQsMi4yOSwyLjI5LDAsMCwwLTQuMzEuNTRjLS4zNy4xMS0uNzQuMjItMS4xMy4zN2EyNS43OSwyNS43OSwwLDAsMC00LjU3LDIuMzVBMjYuMjEsMjYuMjEsMCwwLDAsMTMuMjgsNC4yYy0zLjg1LTEuNDYtNy0xLjI4LTguNzcuNTNDMi44NSw2LjQsMi41OCw5LjE3''@;'; + put 'put ''LDMuNjgsMTIuNTlhMi4yOCwyLjI4LDAsMCwwLDEuNTksMy42N2MuMzIuNjEuNjcsMS4yMiwxLjA2LDEuODJBMjUuNTQsMjUuNTQsMCwwLDAsNCwyMi42NmMtMS40NywzLjg0LTEuMjgsNywuNTMsOC43N2E1LjYzLDUuNjMsMCwwLDAsNC4xMiwxLjUxLDEzLjM0LDEzLjM0LDAsMCwwLDQuNjUt''@;'; + put 'put ''MSwyNi4yMSwyNi4yMSwwLDAsMCw0LjU4LTIuMzVBMjUuNzksMjUuNzksMCwwLDAsMjIuNDMsMzJhMTQuMTYsMTQuMTYsMCwwLDAsMy42NS45QTIuMywyLjMsMCwwLDAsMzAuNDYsMzJhNC41NSw0LjU1LDAsMCwwLC43NC0uNTdjMS44MS0xLjgxLDItNC45My41My04Ljc3QTMyLjY4LDMyLjY4''@;'; + put 'put ''LDAsMCwwLDI0LjIzLDExLjcxWk0xMi41NywzMC4wOWMtMywxLjE1LTUuNDUsMS4xMy02LjY1LS4wOHMtMS4yMy0zLjYyLS4wNy02LjY0YTIyLjc3LDIyLjc3LDAsMCwxLDEuNzEtMy40OCw0MC4xOSw0MC4xOSwwLDAsMCwzLjkyLDQuNTZjLjQzLjQzLjg3Ljg1LDEuMzEsMS4yNXEuOS0uNDYs''@;'; + put 'put ''MS44My0xLjA1Yy0uNTgtLjUyLTEuMTYtMS0xLjcyLTEuNjFhMzQsMzQsMCwwLDEtNS43NC03LjQ3QTIuMjksMi4yOSwwLDAsMCw1LjUsMTEuNjloMGMtLjc1LTIuNS0uNjItNC40OS40My01LjU0YTMuNzIsMy43MiwwLDAsMSwyLjcyLS45MiwxMS40LDExLjQsMCwwLDEsMy45My44NCwyMi44''@;'; + put 'put ''NiwyMi44NiwwLDAsMSwzLjQ4LDEuNzIsMzkuMTQsMzkuMTQsMCwwLDAtNC41NywzLjkyYy0uNDQuNDQtLjg3LjktMS4yOSwxLjM2YTIwLjI3LDIwLjI3LDAsMCwwLDEsMS44NWMuNTQtLjYxLDEuMDktMS4yMSwxLjY4LTEuOGEzNi4zMywzNi4zMywwLDAsMSw1LTQuMTcsMzYuODgsMzYuODgs''@;'; + put 'put ''MCwwLDEsNC45NSw0LjE3LDM2LjI2LDM2LjI2LDAsMCwxLDQuMTcsNSwzNywzNywwLDAsMS00LjE3LDVBMzAuNjgsMzAuNjgsMCwwLDEsMTIuNTcsMzAuMDlaTTI5Ljc5LDMwbC0uMTYuMTNhMi4yNywyLjI3LDAsMCwwLTMuNS43MiwxMi41NywxMi41NywwLDAsMS0zLS43NywyMiwyMiwwLDAs''@;'; + put 'put ''MS0zLjQ4LTEuNzIsMzkuMTQsMzkuMTQsMCwwLDAsNC41Ny0zLjkyLDM4LjI2LDM4LjI2LDAsMCwwLDMuOTItNC41NiwyMi44OCwyMi44OCwwLDAsMSwxLjcyLDMuNDhDMzEsMjYuMzksMzEsMjguODEsMjkuNzksMzBaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAv''@;'; + put 'put ''PjxjaXJjbGUgY3g9IjE3Ljk5IiBjeT0iMTguMDciIHI9IjMuMyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTIuNjYgMy4xMSkgcm90YXRlKC05LjIyKSIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz4nKSxMLkNsclNoYXBlQmFyQ29kZT0oMCxFLmNsckljb25TVkcp''@;'; + put 'put ''KCc8cGF0aCBkPSJNNSw3QTEsMSwwLDAsMCw0LDhWMzBhMSwxLDAsMCwwLDIsMFY4QTEsMSwwLDAsMCw1LDdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNOSw3QTEsMSwwLDAsMCw4LDhWMjZhMSwxLDAsMCwwLDIsMFY4QTEsMSwwLDAs''@;'; + put 'put ''MCw5LDdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMTMsN2ExLDEsMCwwLDAtMSwxVjI2YTEsMSwwLDAsMCwyLDBWOEExLDEsMCwwLDAsMTMsN1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxw''@;'; + put 'put ''YXRoIGQ9Ik0xNyw3YTEsMSwwLDAsMC0xLDFWMjZhMSwxLDAsMCwwLDIsMFY4QTEsMSwwLDAsMCwxNyw3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+PHBhdGggZD0iTTIxLDdhMSwxLDAsMCwwLTEsMVYyNmExLDEsMCwwLDAsMiwwVjhBMSwxLDAsMCww''@;'; + put 'put ''LDIxLDdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgLz48cGF0aCBkPSJNMjUsN2ExLDEsMCwwLDAtMSwxVjI2YTEsMSwwLDAsMCwyLDBWOEExLDEsMCwwLDAsMjUsN1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02IiAvPjxw''@;'; + put 'put ''YXRoIGQ9Ik0yOSw3YTEsMSwwLDAsMC0xLDFWMjZhMSwxLDAsMCwwLDIsMFY4QTEsMSwwLDAsMCwyOSw3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTciIC8+PHBhdGggZD0iTTMzLDdhMSwxLDAsMCwwLTEsMVYzMGExLDEsMCwwLDAsMiwwVjhBMSwxLDAsMCww''@;'; + put 'put ''LDMzLDdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtOCIgLz4nKSxMLkNsclNoYXBlQ2REdmQ9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlptMCwzMEExNCwxNCwwLDEsMSwzMiwxOCwx''@;'; + put 'put ''NCwxNCwwLDAsMSwxOCwzMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0yMi4zMywxOGE0LjQ2LDQuNDYsMCwxLDAtNC40NSw0LjQ2QTQuNDYsNC40NiwwLDAsMCwyMi4zMywxOFpNMTcuODgsMjAuOUEyLjg2LDIuODYsMCwxLDEsMjAu''@;'; + put 'put ''NzMsMTgsMi44NiwyLjg2LDAsMCwxLDE3Ljg4LDIwLjlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMTcuODgsNy40M0gxOFY1Ljg0aC0uMTJBMTIuMjEsMTIuMjEsMCwwLDAsNS42OCwxNy43NWgxLjZBMTAuNjEsMTAuNjEsMCwwLDEs''@;'; + put 'put ''MTcuODgsNy40M1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0zMC4wOCwxOEgyOC40OXYwQTEwLjYxLDEwLjYxLDAsMCwxLDE4LjI1LDI4LjYzdjEuNkExMi4yMiwxMi4yMiwwLDAsMCwzMC4wOSwxOFMzMC4wOCwxOCwzMC4wOCwxOFoi''@;'; + put 'put ''IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPjxwYXRoIGQ9Ik0xOCwxMVY5LjQ0aC0uMTJhOC42Miw4LjYyLDAsMCwwLTguNiw4LjMyaDEuNmE3LDcsMCwwLDEsNy02LjcyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIC8+''@;'; + put 'put ''PHBhdGggZD0iTTE4LjI1LDI1djEuNkE4LjYxLDguNjEsMCwwLDAsMjYuNDgsMTh2MGgtMS42djBBNyw3LDAsMCwxLDE4LjI1LDI1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIC8+PHBhdGggZD0iTTE4LjE3LDEuOTJhMTYsMTYsMCwxLDAsMTYsMTZBMTYs''@;'; + put 'put ''MTYsMCwwLDAsMTguMTcsMS45MlpNMjYuMjMsMThoMS41NGE5LjYxLDkuNjEsMCwwLDEtOS42LDkuNTNIMThWMjZoLjE3QTguMDcsOC4wNywwLDAsMCwyNi4yMywxOFpNNi4wNSwxOEg0LjQ1di0uMDhBMTMuNzIsMTMuNzIsMCwwLDEsMTgsNC4yMXYxLjZBMTIuMTMsMTIuMTMsMCwwLDAsNi4w''@;'; + put 'put ''NSwxNy45MlptNC4wNSwwSDguNTZ2LS4wOEE5LjYxLDkuNjEsMCwwLDEsMTgsOC4zMlY5Ljg2YTguMDcsOC4wNywwLDAsMC03LjksOC4wNlptNC4zMi0uMDhhMy43NSwzLjc1LDAsMSwxLDMuNzUsMy43NUEzLjc1LDMuNzUsMCwwLDEsMTQuNDIsMTcuOTJabTMuNzUsMTMuNzFIMThWMzBoLjE3''@;'; + put 'put ''QTEyLjEzLDEyLjEzLDAsMCwwLDMwLjI4LDE4aDEuNkExMy43MywxMy43MywwLDAsMSwxOC4xNywzMS42M1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+JyksTC5DbHJTaGFwZUNvbnRhaW5lcj0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzIsMzBINGEy''@;'; + put 'put ''LDIsMCwwLDEtMi0yVjhBMiwyLDAsMCwxLDQsNkgzMmEyLDIsMCwwLDEsMiwyVjI4QTIsMiwwLDAsMSwzMiwzMFpNNCw4VjI4SDMyVjhaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNOSwyNS4zYS44LjgsMCwwLDEtLjgtLjh2LTEzYS44''@;'; + put 'put ''LjgsMCwwLDEsMS42LDB2MTNBLjguOCwwLDAsMSw5LDI1LjNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMTQuOTIsMjUuM2EuOC44LDAsMCwxLS44LS44di0xM2EuOC44LDAsMCwxLDEuNiwwdjEzQS44LjgsMCwwLDEsMTQuOTIsMjUu''@;'; + put 'put ''M1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0yMSwyNS4zYS44LjgsMCwwLDEtLjgtLjh2LTEzYS44LjgsMCwwLDEsMS42LDB2MTNBLjguOCwwLDAsMSwyMSwyNS4zWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1w''@;'; + put 'put ''YXRoLTQiIC8+PHBhdGggZD0iTTI3LDI1LjNhLjguOCwwLDAsMS0uOC0uOHYtMTNhLjguOCwwLDAsMSwxLjYsMHYxM0EuOC44LDAsMCwxLDI3LDI1LjNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgLz48cGF0aCBkPSJNMzIsNkg0QTIsMiwwLDAsMCwyLDhW''@;'; + put 'put ''MjhhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjhBMiwyLDAsMCwwLDMyLDZaTTkuNjMsMjQuMjNhLjc5Ljc5LDAsMCwxLS44MS43N0EuNzkuNzksMCwwLDEsOCwyNC4yM1YxMS43N0EuNzkuNzksMCwwLDEsOC44MiwxMWEuNzkuNzksMCwwLDEsLjgxLjc3Wm02LDBhLjc5Ljc5LDAs''@;'; + put 'put ''MCwxLS44Mi43Ny43OS43OSwwLDAsMS0uODEtLjc3VjExLjc3YS43OS43OSwwLDAsMSwuODEtLjc3Ljc5Ljc5LDAsMCwxLC44Mi43N1ptNi4yMSwwYS43OS43OSwwLDAsMS0uODIuNzcuNzkuNzksMCwwLDEtLjgxLS43N1YxMS43N2EuNzkuNzksMCwwLDEsLjgxLS43Ny43OS43OSwwLDAsMSwu''@;'; + put 'put ''ODIuNzdabTYuMTIsMGEuNzkuNzksMCwwLDEtLjgyLjc3Ljc5Ljc5LDAsMCwxLS44MS0uNzdWMTEuNzdhLjc5Ljc5LDAsMCwxLC44MS0uNzcuNzkuNzksMCwwLDEsLjgyLjc3WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz4nKSxMLkNsclNoYXBlQ29udGFpbmVy''@;'; + put 'put ''Vm9sdW1lPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik04LDE3LjU4YTMyLjM1LDMyLjM1LDAsMCwwLDYuMy45Miw0LjEzLDQuMTMsMCwwLDEsLjkyLTEuMzcsMzAuOTQsMzAuOTQsMCwwLDEtNy4yMi0xWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+''@;'; + put 'put ''PHBhdGggZD0iTTYsMjhWOC4xOWMuMzQtLjc2LDQuMzEtMi4xMSwxMS0yLjExczEwLjY3LDEuMzUsMTEsMnYuM2MtLjgyLjc5LTQuNTgsMi4wNS0xMS4xMSwyLjA1QTMzLjQ4LDMzLjQ4LDAsMCwxLDgsOS40NHYxLjQ0YTM1LjYsMzUuNiwwLDAsMCw4Ljg5LDFjNC4yOSwwLDguOC0uNTgsMTEu''@;'; + put 'put ''MTEtMS44MnY1LjA3YTUuMyw1LjMsMCwwLDEtMS44MS44OEgzMFY4LjEyYzAtMy4xOS04LjE3LTQtMTMtNHMtMTMsLjg1LTEzLDRWMjhDNCwzMC42Myw5LjM5LDMxLjY4LDE0LDMyVjMwQzkuMTMsMjkuNjYsNi4yOCwyOC42Miw2LDI4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0''@;'; + put 'put ''bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTgsMjQuMjhhMzEuMywzMS4zLDAsMCwwLDYsLjg5di0xLjRhMjguOTMsMjguOTMsMCwwLDEtNi0uOTNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz48cGF0aCBkPSJNMzIsMThIMThhMiwyLDAsMCwwLTIsMlYz''@;'; + put 'put ''MmEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMjBBMiwyLDAsMCwwLDMyLDE4Wk0xOCwzMlYyMEgzMlYzMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPjxwYXRoIGQ9Ik0yMSwyMS43YS43LjcsMCwwLDAtLjcuN3Y3LjQ5YS43LjcsMCwwLDAs''@;'; + put 'put ''MS40LDBWMjIuNEEuNy43LDAsMCwwLDIxLDIxLjdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgLz48cGF0aCBkPSJNMjUsMjEuODJhLjcuNywwLDAsMC0uNy43VjMwYS43LjcsMCwxLDAsMS40LDBWMjIuNTJBLjcuNywwLDAsMCwyNSwyMS44MloiIGNsYXNz''@;'; + put 'put ''PSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02IiAvPjxwYXRoIGQ9Ik0yOSwyMS43YS43LjcsMCwwLDAtLjcuN3Y3LjQ5YS43LjcsMCwxLDAsMS40LDBWMjIuNEEuNy43LDAsMCwwLDI5LDIxLjdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNyIg''@;'; + put 'put ''Lz48cGF0aCBkPSJNMzIsMThIMThhMiwyLDAsMCwwLTIsMlYzMmEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMjBBMiwyLDAsMCwwLDMyLDE4Wk0xOCwzMlYyMEgzMlYzMloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+PHBhdGggZD0iTTIxLDIxLjdh''@;'; + put 'put ''LjcuNywwLDAsMC0uNy43djcuNDlhLjcuNywwLDAsMCwxLjQsMFYyMi40QS43LjcsMCwwLDAsMjEsMjEuN1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+PHBhdGggZD0iTTI1LDIxLjgyYS43LjcsMCwwLDAtLjcuN1YzMGEuNy43LDAsMSwwLDEuNCwwVjIyLjUy''@;'; + put 'put ''QS43LjcsMCwwLDAsMjUsMjEuODJaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0yOSwyMS43YS43LjcsMCwwLDAtLjcuN3Y3LjQ5YS43LjcsMCwxLDAsMS40LDBWMjIuNEEuNy43LDAsMCwwLDI5LDIxLjdaIiBjbGFzcz0iY2xyLWktc29saWQg''@;'; + put 'put ''Y2xyLWktc29saWQtcGF0aC00IiAvPjxwYXRoIGQ9Ik0xOCwxNkgyOFY4LjEyYzAtMS42OC01LjM4LTMtMTItM1M0LDYuNDQsNCw4LjEyVjI4YzAsMS41LDQuMzMsMi43NSwxMCwzVjI1LjIyYTI5LjE3LDI5LjE3LDAsMCwxLTgtMS4yOVYyMi40NGwuMjQuMUEyNi42MywyNi42MywwLDAsMCwx''@;'; + put 'put ''NCwyMy44MlYyMGE0LDQsMCwwLDEsLjI5LTEuNDdBMjkuMTksMjkuMTksMCwwLDEsNiwxNy4yM1YxNS43NWwuMjQuMDlhMjksMjksMCwwLDAsOSwxLjMyaDBBNCw0LDAsMCwxLDE4LDE2Wk02LDEwLjU0VjkuMDVsLjI0LjA5QTMwLjEyLDMwLjEyLDAsMCwwLDE2LDEwLjQ3LDI4LjMzLDI4LjMz''@;'; + put 'put ''LDAsMCwwLDI2LDkuMDV2MS41YTMyLjUzLDMyLjUzLDAsMCwxLTEwLDEuMzJBMzIuNDQsMzIuNDQsMCwwLDEsNiwxMC41NFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTUiIC8+JyksTC5DbHJTaGFwZUZpbGVTaGFyZT0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJN''@;'; + put 'put ''MzAsOUgxNi40MkwxNC4xMSw1LjgyQTIsMiwwLDAsMCwxMi40OSw1SDZBMiwyLDAsMCwwLDQsN1YyOWEyLDIsMCwwLDAsMiwySDMwYTIsMiwwLDAsMCwyLTJWMTFBMiwyLDAsMCwwLDMwLDlabTAsMjBINlYxM2g3LjMxYTIsMiwwLDAsMCwyLTJINlY3aDYuNDlsMi42MSwzLjU5YTEsMSwwLDAs''@;'; + put 'put ''MCwuODEuNDFIMzBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMjEuOTEsMjIuNDhhMi4wNiwyLjA2LDAsMCwwLTEuNDQuNjJsLTUuNzItMi42NlYyMGw1LjY2LTIuNjVhMi4wOCwyLjA4LDAsMSwwLC4wNi0yLjk0LDIuMTIsMi4xMiww''@;'; + put 'put ''LDAsMC0uNjQsMS40OHYuMjNsLTUuNjQsMi42NmEyLjA4LDIuMDgsMCwxLDAtLjA4LDIuOTVsLjA4LS4wOCw1LjY3LDIuNjZ2LjNhMi4wOSwyLjA5LDAsMSwwLDIuMDgtMi4xWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTMwLDlIMTYu''@;'; + put 'put ''NDJMMTQuMTEsNS44MkEyLDIsMCwwLDAsMTIuNDksNUg2QTIsMiwwLDAsMCw0LDdWMjlhMiwyLDAsMCwwLDIsMkgzMGEyLDIsMCwwLDAsMi0yVjExQTIsMiwwLDAsMCwzMCw5Wk02LDdoNi40OWwyLjcyLDRINlpNMjEuOTQsMjYuNjRhMi4wOSwyLjA5LDAsMCwxLTIuMTEtMi4wNmwwLS4zLTUu''@;'; + put 'put ''NjctMi42Ni0uMDguMDhhMi4wOCwyLjA4LDAsMSwxLC4wOC0yLjk1bDUuNjQtMi42NnYtLjIzYTIuMDgsMi4wOCwwLDEsMSwuNTgsMS40NkwxNC43NSwyMHYuNDdsNS43MiwyLjY2YTIuMDcsMi4wNywwLDEsMSwxLjQ3LDMuNTRaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0''@;'; + put 'put ''aC0xIiAvPicpLEwuQ2xyU2hhcGVRckNvZGU9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTUuNiw0QTEuNiwxLjYsMCwwLDAsNCw1LjZWMTJoOFY0Wk0xMCwxMEg2VjZoNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik00LDMwLjRB''@;'; + put 'put ''MS42LDEuNiwwLDAsMCw1LjYsMzJIMTJWMjRINFpNNiwyNmg0djRINloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0yNCwzMmg2LjRBMS42LDEuNiwwLDAsMCwzMiwzMC40VjI0SDI0Wm0yLTZoNHY0SDI2WiIgY2xhc3M9ImNsci1pLW91''@;'; + put 'put ''dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+PHBhdGggZD0iTTMwLjQsNEgyNHY4aDhWNS42QTEuNiwxLjYsMCwwLDAsMzAuNCw0Wk0zMCwxMEgyNlY2aDRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz48cG9seWdvbiBwb2ludHM9IjIwIDEwIDIw''@;'; + put 'put ''IDggMTYgOCAxNiAxMiAxOCAxMiAxOCAxMCAyMCAxMCIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIC8+PHJlY3QgeD0iMTIiIHk9IjEyIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIgLz48''@;'; + put 'put ''cmVjdCB4PSIxNCIgeT0iMTQiIHdpZHRoPSI0IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC03IiAvPjxwb2x5Z29uIHBvaW50cz0iMjAgNiAyMCA4IDIyIDggMjIgNCAxNCA0IDE0IDggMTYgOCAxNiA2IDIwIDYiIGNsYXNzPSJjbHItaS1vdXRs''@;'; + put 'put ''aW5lIGNsci1pLW91dGxpbmUtcGF0aC04IiAvPjxyZWN0IHg9IjQiIHk9IjE0IiB3aWR0aD0iMiIgaGVpZ2h0PSI0IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtOSIgLz48cG9seWdvbiBwb2ludHM9IjEyIDE2IDEyIDE4IDEwIDE4IDEwIDE0IDggMTQgOCAxOCA2''@;'; + put 'put ''IDE4IDYgMjAgNCAyMCA0IDIyIDggMjIgOCAyMCAxMCAyMCAxMCAyMiAxMiAyMiAxMiAyMCAxNCAyMCAxNCAxNiAxMiAxNiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEwIiAvPjxwb2x5Z29uIHBvaW50cz0iMjAgMTYgMjIgMTYgMjIgMTggMjQgMTggMjQgMTYg''@;'; + put 'put ''MjYgMTYgMjYgMTQgMjIgMTQgMjIgMTAgMjAgMTAgMjAgMTIgMTggMTIgMTggMTQgMjAgMTQgMjAgMTYiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xMSIgLz48cG9seWdvbiBwb2ludHM9IjE4IDMwIDE0IDMwIDE0IDMyIDIyIDMyIDIyIDMwIDIwIDMwIDIwIDI4''@;'; + put 'put ''IDE4IDI4IDE4IDMwIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMTIiIC8+PHBvbHlnb24gcG9pbnRzPSIyMiAyMCAyMiAxOCAyMCAxOCAyMCAxNiAxOCAxNiAxOCAxOCAxNiAxOCAxNiAyMCAxOCAyMCAxOCAyMiAyMCAyMiAyMCAyMCAyMiAyMCIgY2xhc3M9ImNs''@;'; + put 'put ''ci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEzIiAvPjxyZWN0IHg9IjMwIiB5PSIyMCIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTE0IiAvPjxyZWN0IHg9IjIyIiB5PSIyMCIgd2lkdGg9IjYiIGhlaWdodD0iMiIg''@;'; + put 'put ''Y2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTE1IiAvPjxwb2x5Z29uIHBvaW50cz0iMzAgMTQgMjggMTQgMjggMTYgMjYgMTYgMjYgMTggMjggMTggMjggMjAgMzAgMjAgMzAgMTggMzIgMTggMzIgMTYgMzAgMTYgMzAgMTQiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNs''@;'; + put 'put ''ci1pLW91dGxpbmUtcGF0aC0xNiIgLz48cmVjdCB4PSIyMCIgeT0iMjIiIHdpZHRoPSIyIiBoZWlnaHQ9IjYiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xNyIgLz48cG9seWdvbiBwb2ludHM9IjE0IDI4IDE2IDI4IDE2IDI2IDE4IDI2IDE4IDI0IDE2IDI0IDE2''@;'; + put 'put ''IDIwIDE0IDIwIDE0IDI4IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMTgiIC8+JyksTC5DbHJTaGFwZVVzYj0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTQuMjksMTEuNGExLjQ5LDEuNDksMCwwLDEsMS4yOC0uNzJoMWEyLjg5LDIuODksMCwwLDAsMi43''@;'; + put 'put ''NSwyLjA5LDMsMywwLDAsMCwwLTUuOTEsMi45LDIuOSwwLDAsMC0yLjY3LDEuODJIMTUuNTdhMy40OSwzLjQ5LDAsMCwwLTMsMS42NmwtMyw0LjgzaDIuMzZabTUtMi45NEExLjM2LDEuMzYsMCwxLDEsMTgsOS44MSwxLjMyLDEuMzIsMCwwLDEsMTkuMzMsOC40NloiIGNsYXNzPSJjbHItaS1v''@;'; + put 'put ''dXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0zNC4zLDE3LjM3bC02LjExLTMuNjZhLjcuNywwLDAsMC0uNywwLC43MS43MSwwLDAsMC0uMzYuNjFWMTdINi45MmEyLjMzLDIuMzMsMCwwLDEsLjMyLDEuMTcsMi40NywyLjQ3LDAsMSwxLTIuNDctMi40NiwyLjM3LDIu''@;'; + put 'put ''MzcsMCwwLDEsMS4xNS4zbC45My0xLjc2QTQuNDQsNC40NCwwLDEsMCw5LjE1LDE5aDMuNThsNC4xNyw2LjY1YTMuNDksMy40OSwwLDAsMCwzLDEuNjZoMS42NnYxLjI4YS43OS43OSwwLDAsMCwuOC43OWg0LjQ5YS43OS43OSwwLDAsMCwuOC0uNzl2LTQuNGEuNzkuNzksMCwwLDAtLjgtLjhI''@;'; + put 'put ''MjIuMzRhLjguOCwwLDAsMC0uOC44djEuMTJIMTkuODhhMS41MSwxLjUxLDAsMCwxLTEuMjgtLjcyTDE1LjA5LDE5aDEydjIuNjZhLjY5LjY5LDAsMCwwLC4zNi42MS42Ny42NywwLDAsMCwuMzQuMDkuNjUuNjUsMCwwLDAsLjM2LS4xbDYuMTEtMy42NmEuNjkuNjksMCwwLDAsLjM0LS42QS43''@;'; + put 'put ''MS43MSwwLDAsMCwzNC4zLDE3LjM3Wk0yMy4xNCwyNUgyNnYyLjhIMjMuMTRabTUuMzktNC41NlYxNS41NWw0LDIuNDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMzQuNzIsMTcuMzdsLTUuNTEtMy4zMWEuNzEuNzEsMCwwLDAtMS4w''@;'; + put 'put ''Ny42VjE3SDExLjc3bDMuNTItNS42YTEuNDksMS40OSwwLDAsMSwxLjI4LS43MmgxLjY0YTIuNDEsMi40MSwwLDAsMCwyLjI1LDEuNjEsMi40OCwyLjQ4LDAsMCwwLDAtNC45NSwyLjM4LDIuMzgsMCwwLDAtMi4xMywxLjM0SDE2LjU3YTMuNDksMy40OSwwLDAsMC0zLDEuNjZMOS40MSwxN0g4''@;'; + put 'put ''YTMuNDYsMy40NiwwLDEsMCwuMDgsMmg1LjY0bDQuMTUsNi42MmEzLjQ5LDMuNDksMCwwLDAsMywxLjY2aDIuNTl2LjkyaDQuNFYyMy44aC00LjR2MS40OEgyMC44OGExLjUxLDEuNTEsMCwwLDEtMS4yOC0uNzJMMTYuMTEsMTloMTJ2Mi4yOGEuNy43LDAsMCwwLC4zNi42MS43Mi43MiwwLDAs''@;'; + put 'put ''MCwuMzQuMDkuNjUuNjUsMCwwLDAsLjM2LS4xbDUuNTItMy4zMWEuNy43LDAsMCwwLDAtMS4yWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz4nKSxMLkNsclNoYXBlUmFkYXI9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMyLDE4YzAsNy43LTYuMywxNC0x''@;'; + put 'put ''NCwxNGMtNy43LDAtMTQtNi4zLTE0LTE0QzQsMTAuNiw5LjcsNC41LDE3LjEsNHYzLjdjLTUuNywwLjUtOS45LDUuNS05LjQsMTEuMnM1LjUsOS45LDExLjIsOS40XG5cdGM1LjMtMC41LDkuNC00LjksOS40LTEwLjNoLTJjMCw0LjYtMy43LDguMy04LjMsOC4zcy04LjMtMy43LTguMy04LjNj''@;'; + put 'put ''MC00LjIsMy4xLTcuOCw3LjMtOC4zdjQuNGMtMS44LDAuNC0zLjEsMi0zLjEsMy45XG5cdGMwLDIuMiwxLjgsNCw0LDRzNC0xLjgsNC00YzAtMS44LTEuMy0zLjQtMy0zLjhWMi4xQzE4LjYsMiwxOC4zLDIsMTgsMkM5LjIsMiwyLDkuMiwyLDE4czcuMiwxNiwxNiwxNnMxNi03LjIsMTYtMTZI''@;'; + put 'put ''MzJ6IE0yMCwxOFxuXHRjMCwxLjEtMC45LDItMiwycy0yLTAuOS0yLTJzMC45LTIsMi0yUzIwLDE2LjksMjAsMTh6IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMzIsMThjMCw3LjctNi4yLDE0LTE0LDE0UzQsMjUuOCw0LDE4YzAtNy40''@;'; + put 'put ''LDUuNy0xMy41LDEzLjEtMTR2My43Yy01LjcsMC41LTkuOCw1LjUtOS4zLDExLjJzNS41LDkuOCwxMS4yLDkuM1xuXHRcdGM1LjMtMC41LDkuMy00LjksOS4zLTEwLjJoLTJjMCw0LjYtMy43LDguMy04LjMsOC4zUzkuNywyMi42LDkuNywxOGMwLTQuMiwzLjItNy44LDcuMy04LjJ2NC40Yy0y''@;'; + put 'put ''LjEsMC42LTMuNCwyLjctMi45LDQuOVxuXHRcdGMwLjYsMi4xLDIuNywzLjQsNC45LDIuOWMyLjEtMC42LDMuNC0yLjcsMi45LTQuOWMtMC40LTEuNC0xLjUtMi41LTIuOS0yLjlWMmMtMC40LDAtMC43LDAtMS4xLDBjLTguOCwwLTE2LDcuMi0xNiwxNlxuXHRcdGMwLDguOCw3LjIsMTYsMTYs''@;'; + put 'put ''MTZzMTYtNy4yLDE2LTE2YzAsMCwwLDAsMCwwSDMyeiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz4nKSxMLkNsclNoYXBlSW5kdWN0b3I9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI0LjMxLDI1LjgxYy0xLjc1LDAtMy0yLjQ5LTMtNmExMi43OSwxMi43''@;'; + put 'put ''OSwwLDAsMSwxLjcyLTYuNywyLjU3LDIuNTcsMCwwLDAtMy43OSwwQTEyLjc5LDEyLjc5LDAsMCwxLDIxLDE5Ljc2YzAsMy41Ni0xLjIzLDYtMyw2cy0zLTIuNDktMy02YTEyLjc5LDEyLjc5LDAsMCwxLDEuNzItNi43LDIuNTcsMi41NywwLDAsMC0zLjc5LDAsMTIuNzksMTIuNzksMCwwLDEs''@;'; + put 'put ''MS43Miw2LjdjMCwzLjU2LTEuMjMsNi0zLDZzLTMtMi40OS0zLTZhMTIuODgsMTIuODgsMCwwLDEsMS43MS02LjcsMi43LDIuNywwLDAsMC0xLjg5LS44N0M3LjEsMTIuMTksNS42OSwxMy43LDUsMTZsLS4yMy43SDJhMSwxLDAsMCwxLDAtMkgzLjI5YzEuMS0yLjgzLDMuMDYtNC41NSw1LjI0''@;'; + put 'put ''LTQuNTVhNC42Nyw0LjY3LDAsMCwxLDMuMTYsMS4zMiw0LjYyLDQuNjIsMCwwLDEsMy4xNS0xLjMyQTQuNjUsNC42NSwwLDAsMSwxOCwxMS41MWE0LjQzLDQuNDMsMCwwLDEsNi4zMSwwLDQuNjcsNC42NywwLDAsMSwzLjE2LTEuMzJjMi4xOCwwLDQuMTQsMS43Miw1LjI0LDQuNTVIMzRhMSwx''@;'; + put 'put ''LDAsMCwxLDAsMkgzMS4yOGwtLjIzLS43Yy0uNzQtMi4zNC0yLjE1LTMuODUtMy41OC0zLjg1YTIuNywyLjcsMCwwLDAtMS44OS44NywxMi44OCwxMi44OCwwLDAsMSwxLjcxLDYuN0MyNy4yOSwyMy4zMiwyNi4wNywyNS44MSwyNC4zMSwyNS44MVpNMTgsMTQuOTNhMTEuNzEsMTEuNzEsMCww''@;'; + put 'put ''LDAtMSw0LjgzYzAsMi41NC42NiwzLjc1LDEsNCwuMzItLjI3LDEtMS40OCwxLTRBMTEuNzEsMTEuNzEsMCwwLDAsMTgsMTQuOTNabTYuMzEsMGExMS43MSwxMS43MSwwLDAsMC0xLDQuODNjMCwyLjU0LjY2LDMuNzUsMSw0LC4zMi0uMjcsMS0xLjQ4LDEtNEExMS43MSwxMS43MSwwLDAsMCwy''@;'; + put 'put ''NC4zMSwxNC45M1ptLTEyLjYyLDBhMTEuNzEsMTEuNzEsMCwwLDAtMSw0LjgzYzAsMi41NC42NiwzLjc1LDEsNCwuMzItLjI3LDEtMS40OCwxLTRBMTEuNzEsMTEuNzEsMCwwLDAsMTEuNjksMTQuOTNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz4nKSxM''@;'; + put 'put ''LkNsclNoYXBlUmVzaXN0b3I9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI5LjQzLDI2LjM0aDBBMS40NywxLjQ3LDAsMCwxLDI4LDI1LjIyTDI0Ljg2LDEzLjE1LDIxLjc0LDI1LjIyYTEuNDksMS40OSwwLDAsMS0xLjQ1LDEuMTJoMGExLjQ5LDEuNDksMCwwLDEtMS40Ni0xLjEyTDE1''@;'; + put 'put ''LjcxLDEzLjE1LDEyLjYsMjUuMjJhMS41MSwxLjUxLDAsMCwxLTIuOTEsMEw2LjU3LDEzLjE1LDUuMjIsMTguMzdIMmExLDEsMCwwLDEsMC0ySDMuNjdsMS40NS01LjU5QTEuNDgsMS40OCwwLDAsMSw2LjU3LDkuNjZoMEExLjQ3LDEuNDcsMCwwLDEsOCwxMC43OGwzLjEyLDEyLjA3LDMuMTIt''@;'; + put 'put ''MTIuMDdhMS40OSwxLjQ5LDAsMCwxLDEuNDUtMS4xMmgwYTEuNDksMS40OSwwLDAsMSwxLjQ2LDEuMTJsMy4xMiwxMi4wNywzLjEyLTEyLjA3YTEuNSwxLjUsMCwwLDEsMi45LDBsMy4xMiwxMi4wNywxLjM1LTUuMjJIMzRhMSwxLDAsMCwxLDAsMkgzMi4zM2wtMS40NSw1LjU5QTEuNDgsMS40''@;'; + put 'put ''OCwwLDAsMSwyOS40MywyNi4zNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPicpLEwuQ2xyU2hhcGVDYXBhY2l0b3I9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE1LDM0LjA2YTEsMSwwLDAsMS0xLTFWMy4xNWExLDEsMCwxLDEsMiwwVjMzLjA2''@;'; + put 'put ''QTEsMSwwLDAsMSwxNSwzNC4wNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0yMSwzNC4wNmExLDEsMCwwLDEtMS0xVjMuMTVhMSwxLDAsMSwxLDIsMFYzMy4wNkExLDEsMCwwLDEsMjEsMzQuMDZaIiBjbGFzcz0iY2xyLWktb3V0bGlu''@;'; + put 'put ''ZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMTQuNDYsMTlIM2ExLDEsMCwwLDEsMC0ySDE0LjQ2YTEsMSwwLDAsMSwwLDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz48cGF0aCBkPSJNMzMsMTlIMjEuNTRhMSwxLDAsMCwxLDAtMkgz''@;'; + put 'put ''M2ExLDEsMCwwLDEsMCwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+JyksTC5DbHJTaGFwZVNxdWlkPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xOCw3YTEsMSwwLDAsMS0xLTFWMy4xOWExLDEsMCwwLDEsMiwwVjZBMSwxLDAsMCwxLDE4LDda''@;'; + put 'put ''IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMTgsMzRhMSwxLDAsMCwxLTEtMVYzMGExLDEsMCwwLDEsMiwwdjNBMSwxLDAsMCwxLDE4LDM0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGgg''@;'; + put 'put ''ZD0iTTcuNDEsMThsMS43OC0xLjc3YTEsMSwwLDEsMC0xLjQyLTEuNDJMNiwxNi41OSw0LjIzLDE0LjgxYTEsMSwwLDEsMC0xLjQyLDEuNDJMNC41OSwxOCwyLjgxLDE5Ljc3YTEsMSwwLDAsMCwwLDEuNDIsMSwxLDAsMCwwLC43MS4yOSwxLDEsMCwwLDAsLjcxLS4yOUw2LDE5LjQxbDEuNzcs''@;'; + put 'put ''MS43OGExLDEsMCwwLDAsMS40MiwwLDEsMSwwLDAsMCwwLTEuNDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz48cGF0aCBkPSJNNiwxMy43NmwuMzYtLjM2YTMsMywwLDAsMSwyLjExLS44OCwxMSwxMSwwLDAsMSwxOSwwLDMsMywwLDAsMSwyLjEyLjg4''@;'; + put 'put ''bC4zNi4zNi4yLS4yYTEzLDEzLDAsMCwwLTI0LjQsMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPjxwYXRoIGQ9Ik0zMCwyMi4yNGwtLjM2LjM2YTMsMywwLDAsMS0yLjEyLjg4LDExLDExLDAsMCwxLTE5LDAsMywzLDAsMCwxLTIuMTItLjg4TDYsMjIu''@;'; + put 'put ''MjRsLS4yLjJhMTMsMTMsMCwwLDAsMjQuNCwwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIC8+PHBhdGggZD0iTTMxLjQxLDE4bDEuNzgtMS43N2ExLDEsMCwwLDAtMS40Mi0xLjQyTDMwLDE2LjU5bC0xLjc3LTEuNzhhMSwxLDAsMSwwLTEuNDIsMS40Mkwy''@;'; + put 'put ''OC41OSwxOGwtMS43OCwxLjc3YTEsMSwwLDAsMCwwLDEuNDIsMSwxLDAsMCwwLC43MS4yOSwxLDEsMCwwLDAsLjcxLS4yOUwzMCwxOS40MWwxLjc3LDEuNzhhMSwxLDAsMCwwLDEuNDIsMCwxLDEsMCwwLDAsMC0xLjQyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRo''@;'; + put 'put ''LTYiIC8+JyksTC5DbHJTaGFwZUhvc3RHcm91cD0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjEuMDgsMzRoLTE0QTEuMDgsMS4wOCwwLDAsMSw2LDMzVjEyYTEuMDgsMS4wOCwwLDAsMSwxLjA4LTEuMDhoMTRBMS4wOCwxLjA4LDAsMCwxLDIyLjE2LDEyVjMzQTEuMDgsMS4wOCwwLDAs''@;'; + put 'put ''MSwyMS4wOCwzNFpNOC4xNiwzMS44OEgyMFYxM0g4LjE2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG48cmVjdCB4PSIxMC4wOCIgeT0iMTQuOTYiIHdpZHRoPSI4IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUt''@;'; + put 'put ''cGF0aC0yIiAvPjxwYXRoIGQ9Ik0yNi4xLDI3LjgxaC0yVjloLTEyVjdoMTNhMSwxLDAsMCwxLDEsMVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPlxuPHBhdGggZD0iTTMwLjA4LDIzaC0yVjVoLTExVjNoMTJhMSwxLDAsMCwxLDEsMVoiIGNsYXNzPSJj''@;'; + put 'put ''bHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPjxyZWN0IHg9IjEzLjA4IiB5PSIyNy44OCIgd2lkdGg9IjIiIGhlaWdodD0iMi4xNiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIC8+XG5cbjxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHIt''@;'; + put 'put ''aS1zb2xpZC1wYXRoLTEiIGQ9Ik0xNS4wOCwzMSBMMS4wOCwzMSBDMC41MTM0MjcxOTcsMzEuMDAxNTU2NCAwLjA0MTk2NjM3NjUsMzAuNTY1MDE4NiAwLDMwIEwwLDkgQzAsOC40MDM1MzI0NyAwLjQ4MzUzMjQ3LDcuOTIgMS4wOCw3LjkyIEwxNS4wOCw3LjkyIEMxNS42NzY0Njc1LDcuOTIg''@;'; + put 'put ''MTYuMTYsOC40MDM1MzI0NyAxNi4xNiw5IEwxNi4xNiwzMCBDMTYuMTE4MDMzNiwzMC41NjUwMTg2IDE1LjY0NjU3MjgsMzEuMDAxNTU2NCAxNS4wOCwzMSBaIE00LjA4LDExLjk2IEw0LjA4LDEzLjk2IEwxMi4wOCwxMy45NiBMMTIuMDgsMTEuOTYgTDQuMDgsMTEuOTYgWiBNNy4wOCwyNC44''@;'; + put 'put ''OCBMNy4wOCwyNy4wNCBMOS4wOCwyNy4wNCBMOS4wOCwyNC44OCBMNy4wOCwyNC44OCBaIiAvPlxuPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgZD0iTTIwLjEsMjQuODEgTDE4LjEsMjQuODEgTDE4LjEsNiBMNi4xLDYgTDYuMSw0IEwxOS4xLDQgQzE5LjY1''@;'; + put 'put ''MjI4NDcsNCAyMC4xLDQuNDQ3NzE1MjUgMjAuMSw1IEwyMC4xLDI0LjgxIFoiIC8+XG48cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiBkPSJNMjQuMDgsMjAgTDIyLjA4LDIwIEwyMi4wOCwyIEwxMS4wOCwyIEwxMS4wOCwwIEwyMy4wOCwwIEMyMy42MzIyODQ3''@;'; + put 'put ''LDAgMjQuMDgsMC40NDc3MTUyNSAyNC4wOCwxIEwyNC4wOCwyMCBaIiAvPicpLEwuQ2xyU2hhcGVTdG9yYWdlQWRhcHRlcj0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNNi4wNiwzMGExLDEsMCwwLDEtMS0xVjhoLTJhMSwxLDAsMCwxLDAtMmg0VjI5QTEsMSwwLDAsMSw2LjA2LDMwWiIg''@;'; + put 'put ''Y2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgPHBhdGggZD0iTTMwLjA2LDI3aC0yNVY5aDI1YTMsMywwLDAsMSwzLDNWMjRBMywzLDAsMCwxLDMwLjA2LDI3Wm0tMjMtMmgyM2ExLDEsMCwwLDAsMS0xVjEyYTEsMSwwLDAsMC0xLTFoLTIzWiIgY2xhc3M9''@;'; + put 'put ''ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgPHJlY3QgeD0iMjIuMDYiIHk9IjIwIiB3aWR0aD0iNiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIvPlxuICA8cmVjdCB4PSIyMi4wNiIgeT0iMTQiIHdpZHRoPSI2''@;'; + put 'put ''IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00Ii8+XG4gIDxwYXRoIGQ9Ik0xOS4wNiwyMmgtOFYyMGg3VjE0aDJ2N0ExLDEsMCwwLDEsMTkuMDYsMjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIvPicpLEwu''@;'; + put 'put ''Q2xyU2hhcGVOb2RlR3JvdXA9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMzLjUzLDIxLjU4bC00Ljk0LTIuODNWMTMuMDlhMSwxLDAsMCwwLS41MS0uODdMMjIuNjQsOS4xYTEsMSwwLDAsMC0xLDBMMTYuMiwxMi4yMmExLDEsMCwwLDAtLjUxLjg3djUuNjZsLTQuOTQsMi44M2ExLDEs''@;'; + put 'put ''MCwwLDAtLjUuODd2Ni4yNGExLDEsMCwwLDAsLjUuODZsNS40NSwzLjEyYTEsMSwwLDAsMCwxLDBsNC45NS0yLjgzLDQuOTUsMi44M2ExLDEsMCwwLDAsLjUuMTQsMSwxLDAsMCwwLC40OS0uMTRsNS40NS0zLjEyYTEsMSwwLDAsMCwuNS0uODZWMjIuNDVBMSwxLDAsMCwwLDMzLjUzLDIxLjU4''@;'; + put 'put ''Wk0yMi4xNCwxMS4xMmw0LjQ1LDIuNTVWMTlsLTQuNDYsMi41Ni00LjQ0LTIuNlYxMy42N1pNMTYuNjksMzAuNjVsLTQuNDQtMi41NFYyM2w0LjY4LTIuNjgsNC40LDIuNTdWMjhaTTMyLDI4LjExbC00LjQ0LDIuNTRMMjIuOTMsMjhWMjIuOTNsNC40Ni0yLjU3TDMyLDIzWiIgY2xhc3M9ImNs''@;'; + put 'put ''ci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgPHBhdGggZD0iTTcsMjcuNDNhMSwxLDAsMCwxLTEtMVYxOS45QTEsMSwwLDAsMSw2LjUsMTlsNC45NS0yLjgzVjEwLjU0YTEsMSwwLDAsMSwuNS0uODdsNS4yMS0zYTEsMSwwLDAsMSwxLjM3LjM3LDEsMSwwLDAsMS0uMzgs''@;'; + put 'put ''MS4zN2wtNC43LDIuNjh2NS42NmExLDEsMCwwLDEtLjUxLjg3TDgsMjAuNDh2NS45NUExLDEsMCwwLDEsNywyNy40M1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gIDxwYXRoIGQ9Ik0zLDI1LjA1YTEsMSwwLDAsMS0xLTFWMTcuNTNhMSwxLDAsMCwx''@;'; + put 'put ''LC41LS44Nmw1LTIuODRWOC4xN0ExLDEsMCwwLDEsOCw3LjMxbDUuMjUtM2ExLDEsMCwwLDEsMSwxLjc0TDkuNDUsOC43NXY1LjY2YTEsMSwwLDAsMS0uNTEuODdMNCwxOC4xMXY1Ljk0QTEsMSwwLDAsMSwzLDI1LjA1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRo''@;'; + put 'put ''LTMiLz4nKSxMLkNsclNoYXBlTm9kZXM9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTEwLjUsMzQuMjksMiwyOS4zOVYxOS41OGw4LjUtNC45LDguNSw0Ljl2OS44MVpNNCwyOC4yMywxMC41LDMyLDE3LDI4LjIzVjIwLjc0TDEwLjUsMTcsNCwyMC43NFoiIGNsYXNzPSJjbHItaS1vdXRs''@;'; + put 'put ''aW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gIDxwYXRoIGQ9Ik0yNS41LDM0LjI5LDE3LDI5LjM5VjE5LjU4bDguNS00LjksOC41LDQuOXY5LjgxWk0xOSwyOC4yMywyNS41LDMyLDMyLDI4LjIzVjIwLjc0TDI1LjUsMTcsMTksMjAuNzRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHIt''@;'; + put 'put ''aS1vdXRsaW5lLXBhdGgtMiIvPlxuICA8cGF0aCBkPSJNMTgsMjEuMzJsLTguNS00LjlWNi42MUwxOCwxLjcxbDguNSw0Ljl2OS44MVptLTYuNS02LjA2TDE4LDE5bDYuNS0zLjc1VjcuNzdMMTgsNCwxMS41LDcuNzdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgt''@;'; + put 'put ''MyIvPicpLEwuQ2xyU2hhcGVOYW1lc3BhY2U9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI3LDQuMThhMSwxLDAsMSwwLTEsMS43M2w2LDMuNDdWMjYuNjJsLTYsMy40N2ExLDEsMCwwLDAtLjM3LDEuMzYsMSwxLDAsMCwwLDEuMzcuMzdsNy00LjA1VjguMjNaIiBjbGFzcz0iY2xyLWkt''@;'; + put 'put ''b3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICA8cGF0aCBkPSJNOS42OCwyOS45LDQsMjYuNjJWOS4zOEw5LjY4LDYuMWExLDEsMCwxLDAtMS0xLjczTDIsOC4yM1YyNy43N2w2LjY4LDMuODZhMSwxLDAsMCwwLDEuMzctLjM3QTEsMSwwLDAsMCw5LjY4LDI5LjlaIiBjbGFzcz0i''@;'; + put 'put ''Y2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICA8cGF0aCBkPSJNMTAsMTJWMjRhMiwyLDAsMCwwLDIsMkgyNGEyLDIsMCwwLDAsMi0yVjEyYTIsMiwwLDAsMC0yLTJIMTJBMiwyLDAsMCwwLDEwLDEyWm03LDB2NUgxMlYxMlptLTUsN2g1djVIMTJabTcsNVYxOWg1djVa''@;'; + put 'put ''bTUtN0gxOVYxMmg1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz4nKSxMLkNsclNoYXBlTm9kZT0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTgsMzAuNjYsNywyNC4zM1YxMS42N0wxOCw1LjM0bDExLDYuMzNWMjQuMzNaTTksMjMuMThsOSw1LjE3''@;'; + put 'put ''LDktNS4xN1YxMi44MkwxOCw3LjY1LDksMTIuODJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPicpLEwuQ2xyU2hhcGVQb2Q9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI2LDMySDEwYTYsNiwwLDAsMS02LTZWMTBhNiw2LDAsMCwxLDYtNkgyNmE2''@;'; + put 'put ''LDYsMCwwLDEsNiw2VjI2QTYsNiwwLDAsMSwyNiwzMlpNMTAsNmE0LDQsMCwwLDAtNCw0VjI2YTQsNCwwLDAsMCw0LDRIMjZhNCw0LDAsMCwwLDQtNFYxMGE0LDQsMCwwLDAtNC00WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgPHBhdGggZD0iTTI2''@;'; + put 'put ''LjU2LDE1SDE1LjQ0QTEuNDMsMS40MywwLDAsMCwxNCwxNi40NHY4LjEyQTEuNDMsMS40MywwLDAsMCwxNS40NCwyNkgyNi41NkExLjQzLDEuNDMsMCwwLDAsMjgsMjQuNTZWMTYuNDRBMS40MywxLjQzLDAsMCwwLDI2LjU2LDE1Wk0yNiwyNEgxNlYxN0gyNloiIGNsYXNzPSJjbHItaS1vdXRs''@;'; + put 'put ''aW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gIDxwYXRoIGQ9Ik0xMi40LDE5SDEwVjEySDIwdjEuNGgydi0yQTEuNDMsMS40MywwLDAsMCwyMC41NiwxMEg5LjQ0QTEuNDMsMS40MywwLDAsMCw4LDExLjQ0djguMTJBMS40MywxLjQzLDAsMCwwLDkuNDQsMjFoM1oiIGNsYXNzPSJjbHIt''@;'; + put 'put ''aS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+JyksTC5DbHJDb250cm9sTHVuPSgwLEUuY2xySWNvblNWRykoJ1xuICA8cGF0aCBkPSJNOCwyNC41OWEyNS41LDI1LjUsMCwwLDAsMi43NS41OWwxLjIxLTEuNDFhMjQuMTMsMjQuMTMsMCwwLDEtNC0uODNaIiBjbGFzcz0iY2xyLWkt''@;'; + put 'put ''b3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICA8cGF0aCBkPSJNNiwyNy41M1YxMC4zYzIuOSwxLjQzLDguMzQsMS44OCwxMiwxLjg4czkuMS0uNDUsMTItMS44OHY1LjExYy0uOTEuODItNSwyLjEzLTEyLDIuMTNBMzQuODEsMzQuODEsMCwwLDEsOCwxNi4zM1YxOGE0MC44Niw0''@;'; + put 'put ''MC44NiwwLDAsMCwxMCwxLjE2YzMuNDYsMCw5LjEzLS40NSwxMi0xLjkxdjMuMjNoMlY4aDBzMCwwLDAtLjA3YzAtMy4zNS04LjgtNC4yNS0xNC00LjI1UzQsNC41OCw0LDcuOTN2MTkuNmMwLDIsMy4xNywzLjE0LDYuODMsMy43Mkw4LjM4LDI4LjY4QzcsMjguMjgsNi4xMywyNy44NCw2LDI3''@;'; + put 'put ''LjUzWk0xOCw1LjY4YzcuMTUsMCwxMS41MywxLjQ0LDEyLDIuMjUtLjQ2LjgxLTQuODQsMi4yNS0xMiwyLjI1UzYuMzEsOC42OSw2LDhDNi4zMSw3LjE4LDEwLjcxLDUuNjgsMTgsNS42OFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gIDxwYXRoIGQ9''@;'; + put 'put ''Ik0zMi4wOSwyMkgxNS40NmwtNS40MSw2LjMxTDE1LjQ5LDM0aDE2LjZhMiwyLDAsMCwwLDItMlYyMy45M0EyLDIsMCwwLDAsMzIuMDksMjJabTAsMTBIMTYuMzRsLTMuNTktMy43N0wxNi4zOCwyNEgzMi4wOXY4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMi''@;'; + put 'put ''Lz5cbiAgPHBhdGggZD0iTTE2LjExLDI3YTEsMSwwLDEsMCwxLDFBMSwxLDAsMCwwLDE2LjExLDI3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiLz5cblxuICA8cGF0aCBkPSJNOCwyNC41OWEyNS41LDI1LjUsMCwwLDAsMi43NS41OWwxLjIxLTEuNDFhMjQu''@;'; + put 'put ''MTMsMjQuMTMsMCwwLDEtNC0uODNaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiLz5cbiAgPHBhdGggZD0iTTMyLjA5LDIySDE1LjQ2bC01LjQxLDYuMzFMMTUuNDksMzRoMTYuNmEyLDIsMCwwLDAsMi0yVjIzLjkzQTIsMiwwLDAs''@;'; + put 'put ''MCwzMi4wOSwyMlptMCwxMEgxNi4zNGwtMy41OS0zLjc3TDE2LjM4LDI0SDMyLjA5djhaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiLz5cbiAgPHBhdGggZD0iTTE2LjExLDI3YTEsMSwwLDEsMCwxLDFBMSwxLDAsMCwwLDE2LjEx''@;'; + put 'put ''LDI3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIi8+XG4gIDxwYXRoIGQ9Ik0xOCwxNy41NEEzNC44MSwzNC44MSwwLDAsMSw4LDE2LjMzVjE4YTQwLjg2LDQwLjg2LDAsMCwwLDEwLDEuMTZjMy40NiwwLDkuMTMtLjQ1LDEyLTEu''@;'; + put 'put ''OTF2My4yM2gyVjEzLjIyYTcuMzIsNy4zMiwwLDAsMS0yLC4yOHYxLjkxQzI5LjA5LDE2LjIzLDI1LDE3LjU0LDE4LDE3LjU0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIi8+XG4gIDxwYXRoIGQ9Ik02LDI3LjUzVjEwLjNjMi45''@;'; + put 'put ''LDEuNDMsOC4zNCwxLjg4LDEyLDEuODhhNDcuNjYsNDcuNjYsMCwwLDAsNy4wOS0uNTIsNy40NSw3LjQ1LDAsMCwxLTEuNTEtMS44LDQ3LjQsNDcuNCwwLDAsMS01LjU4LjMyQzEwLjcxLDEwLjE4LDYuMzEsOC42OSw2LDhjLjMyLS44LDQuNzItMi4zLDEyLTIuMywxLjY2LDAsMy4xNi4wOCw0''@;'; + put 'put ''LjUxLjIxYTcuNTYsNy41NiwwLDAsMSwuMjktMmMtMS43LS4xNy0zLjM4LS4yNC00LjgtLjI0LTUuMiwwLTE0LC45LTE0LDQuMjV2MTkuNmMwLDIsMy4xNywzLjE0LDYuODMsMy43Mkw4LjM4LDI4LjY4QzcsMjguMjgsNi4xMywyNy44NCw2LDI3LjUzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUt''@;'; + put 'put ''LWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYmFkZ2VkIi8+XG4gIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNi0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG5cbiAgPHBhdGggZD0iTTgsMjQu''@;'; + put 'put ''NTlhMjUuNSwyNS41LDAsMCwwLDIuNzUuNTlsMS4yMS0xLjQxYTI0LjEzLDI0LjEzLDAsMCwxLTQtLjgzWiIvPjxwYXRoIGQ9Ik0zMi4wOSwyMkgxNS40NmwtNS40MSw2LjMxTDE1LjQ5LDM0aDE2LjZhMiwyLDAsMCwwLDItMlYyMy45M0EyLDIsMCwwLDAsMzIuMDksMjJabTAsMTBIMTYuMzRs''@;'; + put 'put ''LTMuNTktMy43N0wxNi4zOCwyNEgzMi4wOXY4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgPHBhdGggZD0iTTE2LjExLDI3YTEsMSwwLDEsMCwxLDFBMSwxLDAsMCwwLDE2LjExLDI3WiIgY2xhc3M9ImNsci1pLW91''@;'; + put 'put ''dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiLz5cbiAgPHBhdGggZD0iTTYsMjcuNTNWMTAuM2MyLjksMS40Myw4LjM0LDEuODgsMTIsMS44OGguNTlhMy41OSwzLjU5LDAsMCwxLC4zMi0ySDE4QzEwLjcxLDEwLjE4LDYuMzEsOC42OSw2LDhjLjMyLS44LDQu''@;'; + put 'put ''NzItMi4zLDEyLTIuMywxLjIyLDAsMi4zNS4wNSwzLjQxLjEybDEuMS0xLjkxYy0xLjYtLjE1LTMuMTctLjIxLTQuNTEtLjIxLTUuMiwwLTE0LC45LTE0LDQuMjV2MTkuNmMwLDIsMy4xNywzLjE0LDYuODMsMy43Mkw4LjM4LDI4LjY4QzcsMjguMjgsNi4xMywyNy44NCw2LDI3LjUzWiIgY2xh''@;'; + put 'put ''c3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiLz5cbiAgPHBhdGggZD0iTTgsMTYuMzNWMThhNDAuODYsNDAuODYsMCwwLDAsMTAsMS4xNmMzLjQ2LDAsOS4xMy0uNDUsMTItMS45MXYzLjIzaDJWMTUuNEgzMGMtLjkxLjgyLTUsMi4xMy0x''@;'; + put 'put ''MiwyLjEzQTM0LjgxLDM0LjgxLDAsMCwxLDgsMTYuMzNaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRlZCIvPlxuICA8cGF0aCBkPSJNMjYuODUsMS4xNGwtNS43Miw5LjkxQTEuMjcsMS4yNywwLDAsMCwyMi4yMywxM0gzMy42OGEx''@;'; + put 'put ''LjI3LDEuMjcsMCwwLDAsMS4xLTEuOTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC01LS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+XG5cbiAgPHBhdGggZD0iTTE2LjExLDI3YTEs''@;'; + put 'put ''MSwwLDEsMCwxLDFBMSwxLDAsMCwwLDE2LjExLDI3WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPlxuICA8cGF0aCBkPSJNMzIuMDksMjFIMzJWMTcuMzJjLTEuOSwyLjkzLTEwLjQ2LDMuMy0xNCwzLjNBNDIuNDMsNDIuNDMsMCwwLDEsOCwxOS41NlYxNy44OEE0''@;'; + put 'put ''MC41OSw0MC41OSwwLDAsMCwxOCwxOWM1LDAsMTMuMi0uODIsMTQtMy44MlYxMC43MmMtMi4yMSwzLjM2LTEwLjQ5LDMuNDYtMTQsMy40NkE0Mi4xMiw0Mi4xMiwwLDAsMSw4LDEzLjExVjExYTQwLjU5LDQwLjU5LDAsMCwwLDEwLDEuMTRjNSwwLDEzLjI4LS44MywxNC0zLjg4VjcuODNoMGMt''@;'; + put 'put ''LjE5LTMuMjctOC44NC00LjE1LTE0LTQuMTVTNC4yMSw0LjU2LDQsNy44M0g0djE5LjdjMCwyLjE2LDMuNjQsMy4zLDcuNjMsMy44NGwyLjg0LDMsLjU5LjYyaDE3YTMsMywwLDAsMCwzLTNWMjMuOTNBMywzLDAsMCwwLDMyLjA5LDIxWk04LDI2LjA4VjI0LjRhMjUuNzksMjUuNzksMCwwLDAs''@;'; + put 'put ''My40Ni43bC0xLjI0LDEuNDRDOS40NiwyNi40Miw4LjcxLDI2LjI3LDgsMjYuMDhaTTMzLjA5LDMyYTEsMSwwLDAsMS0xLDFIMTUuOTJMMTEuNCwyOC4yMywxNS45MiwyM0gzMi4wOWExLDEsMCwwLDEsMSwxWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIvPlxuXG4g''@;'; + put 'put ''IDxwYXRoIGQ9Ik0xNi4xMSwyN2ExLDEsMCwxLDAsMSwxQTEsMSwwLDAsMCwxNi4xMSwyN1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIi8+XG4gIDxwYXRoIGQ9Ik0zMi4wOSwyMUgzMlYxNy4zMmMtMS45LDIuOTMtMTAuNDYsMy4zLTE0''@;'; + put 'put ''LDMuM0E0Mi40Myw0Mi40MywwLDAsMSw4LDE5LjU2VjE3Ljg4QTQwLjU5LDQwLjU5LDAsMCwwLDE4LDE5YzUsMCwxMy4yLS44MiwxNC0zLjgydi0yYTcuMzQsNy4zNCwwLDAsMS00LjEyLDAsMzkuNDcsMzkuNDcsMCwwLDEtOS44OCwxQTQyLjEyLDQyLjEyLDAsMCwxLDgsMTMuMTFWMTFhNDAu''@;'; + put 'put ''NTksNDAuNTksMCwwLDAsMTAsMS4xNCw0Ny43Niw0Ny43NiwwLDAsMCw3LjA5LS41MkE3LjQ1LDcuNDUsMCwwLDEsMjIuOCwzLjkyYy0xLjctLjE3LTMuMzgtLjI0LTQuOC0uMjQtNS4xNCwwLTEzLjc5Ljg4LTE0LDQuMTVINHYxOS43YzAsMi4xNiwzLjY0LDMuMyw3LjYzLDMuODRsMi44NCwz''@;'; + put 'put ''LC41OS42MmgxN2EzLDMsMCwwLDAsMy0zVjIzLjkzQTMsMywwLDAsMCwzMi4wOSwyMVpNOCwyNi4wOFYyNC40YTI1Ljc5LDI1Ljc5LDAsMCwwLDMuNDYuN2wtMS4yNCwxLjQ0QzkuNDYsMjYuNDIsOC43MSwyNi4yNyw4LDI2LjA4Wk0zMy4wOSwzMmExLDEsMCwwLDEtMSwxSDE1LjkyTDExLjQs''@;'; + put 'put ''MjguMjMsMTUuOTIsMjNIMzIuMDlhMSwxLDAsMCwxLDEsMVoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIi8+XG4gIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQt''@;'; + put 'put ''cGF0aC0zLS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cblxuICA8cGF0aCBkPSJNMTYuMTEsMjdhMSwxLDAsMSwwLDEsMUExLDEsMCwwLDAsMTYuMTEsMjdaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIi8+XG4gIDxwYXRoIGQ9Ik0zMi4w''@;'; + put 'put ''OSwyMUgzMlYxNy4zMmMtMS45LDIuOTMtMTAuNDYsMy4zLTE0LDMuM0E0Mi40Myw0Mi40MywwLDAsMSw4LDE5LjU2VjE3Ljg4QTQwLjU5LDQwLjU5LDAsMCwwLDE4LDE5YzQuODUsMCwxMi44LS43OSwxMy45MS0zLjYySDIyLjIzYTMuNjgsMy42OCwwLDAsMS0yLjczLTEuMjNIMThBNDIuMTIs''@;'; + put 'put ''NDIuMTIsMCwwLDEsOCwxMy4xMVYxMWE0MC41OSw0MC41OSwwLDAsMCwxMCwxLjE0aC41OWEzLjYxLDMuNjEsMCwwLDEsLjQ2LTIuMjlsMy40Ni02Yy0xLjYtLjE1LTMuMTctLjIxLTQuNTEtLjIxLTUuMTQsMC0xMy43OS44OC0xNCw0LjE1SDR2MTkuN2MwLDIuMTYsMy42NCwzLjMsNy42Mywz''@;'; + put 'put ''Ljg0bDIuODQsMywuNTkuNjJoMTdhMywzLDAsMCwwLDMtM1YyMy45M0EzLDMsMCwwLDAsMzIuMDksMjFaTTgsMjYuMDhWMjQuNGEyNS43OSwyNS43OSwwLDAsMCwzLjQ2LjdsLTEuMjQsMS40NEM5LjQ2LDI2LjQyLDguNzEsMjYuMjcsOCwyNi4wOFpNMzMuMDksMzJhMSwxLDAsMCwxLTEsMUgx''@;'; + put 'put ''NS45MkwxMS40LDI4LjIzLDE1LjkyLDIzSDMyLjA5YTEsMSwwLDAsMSwxLDFaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIi8+XG4gIDxwYXRoIGQ9Ik0yNi44NSwxLjE0bC01LjcyLDkuOTFBMS4yNywxLjI3LDAsMCwwLDIyLjIzLDEz''@;'; + put 'put ''SDMzLjY4YTEuMjcsMS4yNywwLDAsMCwxLjEtMS45MUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMy0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAnKSxMLkNsclNoYXBlTWVkaWFD''@;'; + put 'put ''aGFuZ2VyPSgwLEUuY2xySWNvblNWRykoJ1xuICA8cGF0aCBkPSJNMzAsNEg2QTIsMiwwLDAsMCw0LDZWMzBhMiwyLDAsMCwwLDIsMkg3Ljg4djEuNTdhMSwxLDAsMCwwLDIsMFYzMmgxNnYxLjU3YTEsMSwwLDAsMCwyLDBWMzJIMzBhMiwyLDAsMCwwLDItMlY2QTIsMiwwLDAsMCwzMCw0Wk02''@;'; + put 'put ''LDMwVjZIMzBWMzBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICA8cmVjdCB4PSIyMCIgeT0iMTgiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz48cmVjdCB4PSIyNCIgeT0iMTgiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5l''@;'; + put 'put ''IGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gIDxyZWN0IHg9IjIwIiB5PSIyMiIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgPHJlY3QgeD0iMjQiIHk9IjIyIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0i''@;'; + put 'put ''Y2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIvPlxuICA8cGF0aCBkPSJNMjcuMjIsMTBIMjB2NGEuOC44LDAsMSwwLDEuNTksMFYxMS42aDUuNjNhLjguOCwwLDEsMCwwLTEuNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01Ii8+XG4gIDxyZWN0''@;'; + put 'put ''IHg9IjguODEiIHk9IjEwIiB3aWR0aD0iOC4xNCIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIvPlxuICA8cmVjdCB4PSI4LjgxIiB5PSIxNCIgd2lkdGg9IjguMTQiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0''@;'; + put 'put ''bGluZS1wYXRoLTciLz5cbiAgPHJlY3QgeD0iOC44MSIgeT0iMTgiIHdpZHRoPSI4LjE0IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC04Ii8+XG4gIDxyZWN0IHg9IjguODEiIHk9IjIyIiB3aWR0aD0iOC4xNCIgaGVpZ2h0PSIyIiBjbGFzcz0i''@;'; + put 'put ''Y2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtOSIvPlxuICA8cmVjdCB4PSI4LjgxIiB5PSIyNiIgd2lkdGg9IjguMTQiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEwIi8+XG5cbiAgPHJlY3QgeD0iMjAiIHk9IjE4IiB3aWR0aD0i''@;'; + put 'put ''MiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiLz5cbiAgPHJlY3QgeD0iMjQiIHk9IjE4IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0''@;'; + put 'put ''aC0yLS1iYWRnZWQiLz5cbiAgPHJlY3QgeD0iMjAiIHk9IjIyIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiLz5cbiAgPHJlY3QgeD0iMjQiIHk9IjIyIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBj''@;'; + put 'put ''bGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQiLz5cbiAgPHJlY3QgeD0iOC44MSIgeT0iMTAiIHdpZHRoPSI4LjE0IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWJhZGdl''@;'; + put 'put ''ZCIvPlxuICA8cmVjdCB4PSI4LjgxIiB5PSIxNCIgd2lkdGg9IjguMTQiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNi0tYmFkZ2VkIi8+XG4gIDxyZWN0IHg9IjguODEiIHk9IjE4IiB3aWR0aD0iOC4xNCIgaGVpZ2h0PSIyIiBj''@;'; + put 'put ''bGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC03LS1iYWRnZWQiLz5cbiAgPHJlY3QgeD0iOC44MSIgeT0iMjIiIHdpZHRoPSI4LjE0IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTgtLWJhZGdl''@;'; + put 'put ''ZCIvPlxuICA8cmVjdCB4PSI4LjgxIiB5PSIyNiIgd2lkdGg9IjguMTQiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtOS0tYmFkZ2VkIi8+XG4gIDxwYXRoIGQ9Ik0yMCwxNGEuOC44LDAsMSwwLDEuNTksMFYxMS42SDI1QTcuNzQs''@;'; + put 'put ''Ny43NCwwLDAsMSwyMy42NiwxMEgyMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEwLS1iYWRnZWQiLz5cbiAgPHBhdGggZD0iTTMwLDEzLjVoMFYzMEg2VjZIMjIuNVY2YTcuMzcsNy4zNywwLDAsMSwuMjgtMkg2QTIsMiwwLDAsMCw0LDZWMzBh''@;'; + put 'put ''MiwyLDAsMCwwLDIsMkg3Ljg4djEuNTdhMSwxLDAsMCwwLDIsMFYzMmgxNnYxLjU3YTEsMSwwLDAsMCwyLDBWMzJIMzBhMiwyLDAsMCwwLDItMlYxMy4yMkE3LjM3LDcuMzcsMCwwLDEsMzAsMTMuNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEx''@;'; + put 'put ''LS1iYWRnZWQiLz5cbiAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xMi0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG5cbiAgPHJlY3QgeD0iMjAiIHk9IjE4IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBj''@;'; + put 'put ''bGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIvPlxuICA8cmVjdCB4PSIyNCIgeT0iMTgiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVk''@;'; + put 'put ''Ii8+XG4gIDxyZWN0IHg9IjIwIiB5PSIyMiIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiLz5cbiAgPHJlY3QgeD0iMjQiIHk9IjIyIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xy''@;'; + put 'put ''LWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRlZCIvPlxuICA8cmVjdCB4PSI4LjgxIiB5PSIxMCIgd2lkdGg9IjguMTQiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWFsZXJ0ZWQiLz5c''@;'; + put 'put ''biAgPHJlY3QgeD0iOC44MSIgeT0iMTQiIHdpZHRoPSI4LjE0IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC02LS1hbGVydGVkIi8+XG4gIDxyZWN0IHg9IjguODEiIHk9IjE4IiB3aWR0aD0iOC4xNCIgaGVpZ2h0PSIyIiBjbGFz''@;'; + put 'put ''cz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNy0tYWxlcnRlZCIvPlxuICA8cmVjdCB4PSI4LjgxIiB5PSIyMiIgd2lkdGg9IjguMTQiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTgtLWFsZXJ0''@;'; + put 'put ''ZWQiLz5cbiAgPHJlY3QgeD0iOC44MSIgeT0iMjYiIHdpZHRoPSI4LjE0IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC05LS1hbGVydGVkIi8+XG4gIDxwYXRoIGQ9Ik0zMCwxNS40VjMwSDZWNkgyMS4yN2wxLjE4LTJINkEyLDIs''@;'; + put 'put ''MCwwLDAsNCw2VjMwYTIsMiwwLDAsMCwyLDJINy44OHYxLjU3YTEsMSwwLDAsMCwyLDBWMzJoMTZ2MS41N2ExLDEsMCwwLDAsMiwwVjMySDMwYTIsMiwwLDAsMCwyLTJWMTUuNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xMC0tYWxlcnRlZCIv''@;'; + put 'put ''PlxuICA8cGF0aCBkPSJNMjYuODUsMS4xNGwtNS43Miw5LjkxQTEuMjcsMS4yNywwLDAsMCwyMi4yMywxM0gzMy42OGExLjI3LDEuMjcsMCwwLDAsMS4xLTEuOTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNs''@;'; + put 'put ''ci1pLW91dGxpbmUtcGF0aC0xMS0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuXG4gIDxwYXRoIGQ9Ik0zMCw0SDZBMiwyLDAsMCwwLDQsNlYzMGEyLDIsMCwwLDAsMiwySDcuODh2MS41N2ExLDEsMCwwLDAsMiwwVjMyaDE2djEuNTdhMSwxLDAsMCwwLDIsMFYzMkgzMGEyLDIsMCwwLDAsMi0y''@;'; + put 'put ''VjZBMiwyLDAsMCwwLDMwLDRaTTE3LDI4SDguODFWMjZIMTdabTAtNEg4LjgxVjIySDE3Wm0wLTRIOC44MVYxOEgxN1ptMC00SDguODFWMTRIMTdabTAtNEg4LjgxVjEwSDE3Wk0yMiwyNEgyMFYyMmgyWm0wLTRIMjBWMThoMlptNCw0SDI0VjIyaDJabTAtNEgyNFYxOGgyWm0wLTZIMjBWMTBo''@;'; + put 'put ''NloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cblxuICA8cGF0aCBkPSJNMzAsMTMuNWE3LjQ5LDcuNDksMCwwLDEtNC0xLjE2VjE0SDIwVjEwaDMuNjZBNy40OSw3LjQ5LDAsMCwxLDIyLjUsNmE3LjM3LDcuMzcsMCwwLDEsLjI4LTJINkEyLDIsMCwwLDAsNCw2''@;'; + put 'put ''VjMwYTIsMiwwLDAsMCwyLDJINy44OHYxLjU3YTEsMSwwLDAsMCwyLDBWMzJoMTZ2MS41N2ExLDEsMCwwLDAsMiwwVjMySDMwYTIsMiwwLDAsMCwyLTJWMTMuMjJBNy4zNyw3LjM3LDAsMCwxLDMwLDEzLjVaTTE3LDI4SDguODFWMjZIMTdabTAtNEg4LjgxVjIySDE3Wm0wLTRIOC44MVYxOEgx''@;'; + put 'put ''N1ptMC00SDguODFWMTRIMTdabTAtNEg4LjgxVjEwSDE3Wk0yMiwyNEgyMFYyMmgyWm0wLTRIMjBWMThoMlptNCw0SDI0VjIyaDJabTAtNEgyNFYxOGgyWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiLz5cbiAgPGNpcmNsZSBjeD0iMzAi''@;'; + put 'put ''IGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuXG4gIDxwYXRoIGQ9Ik0yMi4yMywxNS40YTMuNjgsMy42OCwwLDAsMS0zLjE4LTUuNTFMMjIuNDUsNEg2QTIsMiwwLDAsMCw0LDZWMzBhMiwy''@;'; + put 'put ''LDAsMCwwLDIsMkg3Ljg4djEuNTdhMSwxLDAsMCwwLDIsMFYzMmgxNnYxLjU3YTEsMSwwLDAsMCwyLDBWMzJIMzBhMiwyLDAsMCwwLDItMlYxNS40Wk0xNywyOEg4LjgxVjI2SDE3Wm0wLTRIOC44MVYyMkgxN1ptMC00SDguODFWMThIMTdabTAtNEg4LjgxVjE0SDE3Wm0wLTRIOC44MVYxMEgx''@;'; + put 'put ''N1pNMjIsMjRIMjBWMjJoMlptMC00SDIwVjE4aDJabTQsNEgyNFYyMmgyWm0wLTRIMjRWMThoMloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgPHBhdGggZD0iTTI2Ljg1LDEuMTRsLTUuNzIsOS45MUExLjI3LDEuMjcsMCww''@;'; + put 'put ''LDAsMjIuMjMsMTNIMzMuNjhhMS4yNywxLjI3LDAsMCwwLDEuMS0xLjkxTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+XG4gICcpLEwuQ2xy''@;'; + put 'put ''U2hhcGVUYXBlRHJpdmU9KDAsRS5jbHJJY29uU1ZHKSgnXG4gIDxwYXRoIGQ9Ik0zMiw2SDRBMiwyLDAsMCwwLDIsOFYyOGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWOEEyLDIsMCwwLDAsMzIsNlpNNCwyOFY4SDMyVjI4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0''@;'; + put 'put ''bGluZS1wYXRoLTEiLz5cbiAgPHBhdGggZD0iTTEzLjMzLDEzLjM1YTQuNTIsNC41MiwwLDEsMCw0LjUzLDQuNTJBNC41Myw0LjUzLDAsMCwwLDEzLjMzLDEzLjM1Wm0wLDcuNDRhMi45MiwyLjkyLDAsMSwxLDIuOTMtMi45MkEyLjkyLDIuOTIsMCwwLDEsMTMuMzMsMjAuNzlaIiBjbGFzcz0i''@;'; + put 'put ''Y2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICA8cGF0aCBkPSJNMjMuNjIsMTMuMzVhNC41Miw0LjUyLDAsMSwwLDQuNTIsNC41MkE0LjUzLDQuNTMsMCwwLDAsMjMuNjIsMTMuMzVabTAsNy40NGEyLjkyLDIuOTIsMCwxLDEsMi45Mi0yLjkyQTIuOTIsMi45MiwwLDAs''@;'; + put 'put ''MSwyMy42MiwyMC43OVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gIDxwYXRoIGQ9Ik02LDExVjIzLjU1SDhWMTJIMjkuMzRWMTBIN0ExLDEsMCwwLDAsNiwxMVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00Ii8+XG5c''@;'; + put 'put ''biAgPHBhdGggZD0iTTguODEsMTcuODdhNC41Myw0LjUzLDAsMSwwLDQuNTItNC41MkE0LjUzLDQuNTMsMCwwLDAsOC44MSwxNy44N1ptNy40NSwwQTIuOTMsMi45MywwLDEsMSwxMy4zMywxNSwyLjkzLDIuOTMsMCwwLDEsMTYuMjYsMTcuODdaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFk''@;'; + put 'put ''Z2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiLz5cbiAgPHBhdGggZD0iTTE5LjEsMTcuODdhNC41Miw0LjUyLDAsMSwwLDQuNTItNC41MkE0LjUzLDQuNTMsMCwwLDAsMTkuMSwxNy44N1ptNy40NCwwQTIuOTIsMi45MiwwLDEsMSwyMy42MiwxNSwyLjkyLDIuOTIsMCwwLDEsMjYu''@;'; + put 'put ''NTQsMTcuODdaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiLz5cbiAgPHBhdGggZD0iTTMyLDEzLjIyVjI4SDRWOEgyMi43OGE3LjM3LDcuMzcsMCwwLDEtLjI4LTJINEEyLDIsMCwwLDAsMiw4VjI4YTIsMiwwLDAsMCwyLDJIMzJh''@;'; + put 'put ''MiwyLDAsMCwwLDItMlYxMi4zNEE3LjY1LDcuNjUsMCwwLDEsMzIsMTMuMjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiLz5cbiAgPHBhdGggZD0iTTYsMTFWMjMuNTVIOFYxMkgyNS41MWE3LjY2LDcuNjYsMCwwLDEtMS44NS0y''@;'; + put 'put ''SDdBMSwxLDAsMCwwLDYsMTFaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQiLz5cbiAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC01LS1i''@;'; + put 'put ''YWRnZWQgY2xyLWktYmFkZ2UiLz5cblxuICA8cGF0aCBkPSJNOC44MSwxNy44N2E0LjUzLDQuNTMsMCwxLDAsNC41Mi00LjUyQTQuNTMsNC41MywwLDAsMCw4LjgxLDE3Ljg3Wm03LjQ1LDBBMi45MywyLjkzLDAsMSwxLDEzLjMzLDE1LDIuOTMsMi45MywwLDAsMSwxNi4yNiwxNy44N1oiIGNs''@;'; + put 'put ''YXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIi8+XG4gIDxwYXRoIGQ9Ik03LDEwYTEsMSwwLDAsMC0xLDFWMjMuNTVIOFYxMkgxOC41N0EzLjcsMy43LDAsMCwxLDE5LDEwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xy''@;'; + put 'put ''LWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiLz5cbiAgPHBhdGggZD0iTTMzLjY4LDE1LjRIMzJWMjhINFY4SDIwLjE0bDEuMTUtMkg0QTIsMiwwLDAsMCwyLDhWMjhhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjE1LjM4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQg''@;'; + put 'put ''Y2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiLz5cbiAgPHBhdGggZD0iTTIyLjA5LDE1LjM5YTMuNjUsMy42NSwwLDAsMS0xLjgtLjU1LDQuNTEsNC41MSwwLDEsMCw3LjExLjU2SDI1LjE3YTIuOTIsMi45MiwwLDEsMS0zLjA4LDBaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRl''@;'; + put 'put ''ZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRlZCIvPlxuICA8cGF0aCBkPSJNMjYuODUsMS4xNGwtNS43Miw5LjkxQTEuMjcsMS4yNywwLDAsMCwyMi4yMywxM0gzMy42OGExLjI3LDEuMjcsMCwwLDAsMS4xLTEuOTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoi''@;'; + put 'put ''IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC01LS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+XG5cbiAgPHBhdGggZD0iTTMyLDZINEEyLDIsMCwwLDAsMiw4VjI4YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlY4QTIsMiwwLDAsMCwzMiw2Wk0z''@;'; + put 'put ''MCwyNEg2VjEySDMwWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPlxuICA8cGF0aCBkPSJNMTIuMjEsMjNhNSw1LDAsMSwwLTUtNUE1LDUsMCwwLDAsMTIuMjEsMjNabTAtN2EyLDIsMCwxLDEtMiwyQTIsMiwwLDAsMSwxMi4yMSwxNloiIGNsYXNzPSJjbHItaS1z''@;'; + put 'put ''b2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiLz5cbiAgPHBhdGggZD0iTTIzLjc5LDIzYTUsNSwwLDEsMC01LTVBNSw1LDAsMCwwLDIzLjc5LDIzWm0wLTdhMiwyLDAsMSwxLTIsMkEyLDIsMCwwLDEsMjMuNzksMTZaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIi8+XG5c''@;'; + put 'put ''biAgPHBhdGggZD0iTTEyLjIxLDIzYTUsNSwwLDEsMC01LTVBNSw1LDAsMCwwLDEyLjIxLDIzWm0wLTdhMiwyLDAsMSwxLTIsMkEyLDIsMCwwLDEsMTIuMjEsMTZaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIvPlxuICA8cGF0aCBkPSJN''@;'; + put 'put ''MjMuNzksMjNhNSw1LDAsMSwwLTUtNUE1LDUsMCwwLDAsMjMuNzksMjNabTAtN2EyLDIsMCwxLDEtMiwyQTIsMiwwLDAsMSwyMy43OSwxNloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIi8+XG4gIDxwYXRoIGQ9Ik0zMCwxMy41VjI0SDZW''@;'; + put 'put ''MTJIMjUuNTFhNy40OSw3LjQ5LDAsMCwxLTMtNkg0QTIsMiwwLDAsMCwyLDhWMjhhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjEyLjM0QTcuNDksNy40OSwwLDAsMSwzMCwxMy41WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0zLS1iYWRnZWQi''@;'; + put 'put ''Lz5cbiAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTQtLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuXG4gIDxwYXRoIGQ9Ik03LjIsMThhNSw1LDAsMSwwLDUtNUE1LDUsMCwwLDAsNy4yLDE4Wm03LDBhMiwy''@;'; + put 'put ''LDAsMSwxLTItMkEyLDIsMCwwLDEsMTQuMjIsMThaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIi8+XG4gIDxwYXRoIGQ9Ik0xOC43OCwxOGE1LDUsMCwxLDAsOS4yNy0yLjZIMjIuMjNhMy43MSwzLjcxLDAsMCwxLTIuMTctLjcxQTUs''@;'; + put 'put ''NSwwLDAsMCwxOC43OCwxOFptNS0yYTIsMiwwLDEsMS0yLDJBMiwyLDAsMCwxLDIzLjc5LDE2WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCIvPlxuICA8cGF0aCBkPSJNMzMuNjgsMTUuNEgzMFYyNEg2VjEySDE4LjU3YTMuNjUsMy42''@;'; + put 'put ''NSwwLDAsMSwuNDgtMi4xMUwyMS4yOSw2SDRBMiwyLDAsMCwwLDIsOFYyOGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMTUuMzhaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0zLS1hbGVydGVkIi8+XG4gIDxwYXRoIGQ9Ik0yNi44NSwxLjE0''@;'; + put 'put ''bC01LjcyLDkuOTFBMS4yNywxLjI3LDAsMCwwLDIyLjIzLDEzSDMzLjY4YTEuMjcsMS4yNywwLDAsMCwxLjEtMS45MUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtNC0tYWxlcnRlZCBj''@;'; + put 'put ''bHItaS1hbGVydCIvPlxuICAnKSxMLkNsclNoYXBlQW5pbWF0aW9uPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xMC4xNiwzMS43MWE0LjQsNC40LDAsMCwxLTQuNjQtMUE0LjM0LDQuMzQsMCwwLDEsNC4yMywyNy42YTQuNDEsNC40MSwwLDAsMSwuMTgtMS4yLDExLjYxLDExLjYxLDAs''@;'; + put 'put ''MCwxLTEtMi41Niw2LjQsNi40LDAsMCwwLDkuMzMsOC42M0ExMS41NSwxMS41NSwwLDAsMSwxMC4xNiwzMS43MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gIDxwYXRoIGQ9Ik0xOC40MSwyNy42OGE3LjYxLDcuNjEsMCwwLDEtOS4wOC0xLjI2LDcu''@;'; + put 'put ''NTgsNy41OCwwLDAsMS0xLjI3LTkuMDYsMTQuMjYsMTQuMjYsMCwwLDEtLjM3LTIuODUsOS41OCw5LjU4LDAsMCwwLC4yMiwxMy4zMyw5LjYzLDkuNjMsMCwwLDAsMTMuMzUuMjJBMTQuNDYsMTQuNDYsMCwwLDEsMTguNDEsMjcuNjhaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRs''@;'; + put 'put ''aW5lLXBhdGgtMiIvPlxuICA8cGF0aCBkPSJNMjEuNjYsMjYuMjFhMTIuMSwxMi4xLDAsMSwxLDguNTctMy41NGgwQTEyLjExLDEyLjExLDAsMCwxLDIxLjY2LDI2LjIxWk0yMS42Niw0QTEwLjExLDEwLjExLDAsMCwwLDExLjU0LDE0LjExYTEwLDEwLDAsMCwwLDMsNy4xNCwxMC4xMiwxMC4x''@;'; + put 'put ''MiwwLDAsMCwxNC4zMSwwQTEwLjExLDEwLjExLDAsMCwwLDIxLjY2LDRabTcuODYsMThoMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gIFxuICA8cGF0aCBkPSJNMy41LDIzLjc3YTYuNDEsNi40MSwwLDAsMCw5LjMzLDguNjdBMTEuNjUsMTEuNjUs''@;'; + put 'put ''MCwwLDEsMy41LDIzLjc3WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPlxuICA8cGF0aCBkPSJNNy42OCwxNC41M2E5LjYsOS42LDAsMCwwLDEzLjQsMTMuN0ExNC4xMSwxNC4xMSwwLDAsMSw3LjY4LDE0LjUzWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNv''@;'; + put 'put ''bGlkLXBhdGgtMiIvPlxuICA8cGF0aCBkPSJNMjEuNzgsMkExMi4xMiwxMi4xMiwwLDEsMSw5LjY2LDE0LjE1LDEyLjEyLDEyLjEyLDAsMCwxLDIxLjc4LDIiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiLz5cbiAgJyksTC5DbHJTaGFwZUNpQ2Q9KDAsRS5jbHJJY29u''@;'; + put 'put ''U1ZHKSgnPHBhdGggZD0iTTIzLjUzLDE5LjgxYTcuNDUsNy40NSwwLDAsMS0xLjY1LS4xOCwxMC40OCwxMC40OCwwLDAsMSwuNzIsMi4xM2MuMywwLC42MSwwLC45MywwYTkuNTIsOS41MiwwLDAsMCwzLS40OWwtLjkzLTEuODFBNy42Nyw3LjY3LDAsMCwxLDIzLjUzLDE5LjgxWiIgY2xhc3M9''@;'; + put 'put ''ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgPHBhdGggZD0iTTE4LjM2LDE3Ljg3LDE4LDE3LjQ5YTcuNCw3LjQsMCwwLDEtMi4yLTUuOTIsNy4zMSw3LjMxLDAsMCwxLDEuNTQtNEwxNy4yNiw5QTEsMSwwLDAsMCwxOC4xNywxMGguMDlhMSwxLDAsMCwwLDEtLjkx''@;'; + put 'put ''TDE5LjYsNWExLDEsMCwwLDAtLjI5LS43OUExLDEsMCwwLDAsMTguNTIsNGwtNC4wOS4zNWExLDEsMCwwLDAsLjE3LDJsMS4yOS0uMTFhOS40NSw5LjQ1LDAsMCwwLTIuMDUsNS4zMiw5LjI4LDkuMjgsMCwwLDAsMi42Nyw3LjI2bC4zMS4zN2E3LjMzLDcuMzMsMCwwLDEsMi4wNiw0LjkxLDcu''@;'; + put 'put ''MzksNy4zOSwwLDAsMS0uMjYsMi40N2wxLjguOTFhOC43Niw4Ljc2LDAsMCwwLC40NS0zLjUxQTkuMjgsOS4yOCwwLDAsMCwxOC4zNiwxNy44N1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gIDxwYXRoIGQ9Ik0zMi40LDE3LjkxLDMxLjE5LDE4QTku''@;'; + put 'put ''NjUsOS42NSwwLDAsMCwyMy41MywyLjQ1YTkuMzMsOS4zMywwLDAsMC0zLC40OWwuOTEsMS44YTcuNjcsNy42NywwLDAsMSw5Ljc2LDcuMzksNy41OCw3LjU4LDAsMCwxLTEuNjUsNC43MmwuMS0xLjU0YTEsMSwwLDEsMC0yLS4xM2wtLjI4LDQuMDhhMSwxLDAsMCwwLC4zMS43OC45NC45NCww''@;'; + put 'put ''LDAsMCwuNjkuMjhoLjFsNC4wOC0uNDJhMSwxLDAsMCwwLC45LTEuMUExLDEsMCwwLDAsMzIuNCwxNy45MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gIDxwYXRoIGQ9Ik00LjA3LDIwLjQ0aC4wOGw0LjA5LS4zNWExLDEsMCwxLDAtLjE3LTJsLTEu''@;'; + put 'put ''MzkuMTJhNy42Myw3LjYzLDAsMCwxLDQuNTItMS40OSw3LjksNy45LDAsMCwxLDEuNjMuMTgsMTAuMjMsMTAuMjMsMCwwLDEtLjcxLTIuMTNjLS4zLDAtLjYxLDAtLjkyLDBhOS42Niw5LjY2LDAsMCwwLTUuOSwybC4xMi0xLjMxYTEsMSwwLDAsMC0uOTItMS4wOCwxLDEsMCwwLDAtMS4wOC45''@;'; + put 'put ''MWwtLjM1LDQuMDhhMSwxLDAsMCwwLDEsMS4wOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00Ii8+XG4gIDxwYXRoIGQ9Ik0xOC40MiwyOC4yM2wtNC4wOS4yN2ExLDEsMCwwLDAsLjEzLDJMMTYsMzAuMzlhNy43MSw3LjcxLDAsMCwxLTEyLjU0LTYsNy42LDcu''@;'; + put 'put ''NiwwLDAsMSwuMjktMkwyLDIxLjQ2YTkuNTksOS41OSwwLDAsMC0uNDcsMi45NUE5LjcsOS43LDAsMCwwLDE3LjE5LDMybC0uMTIsMS4xOGExLDEsMCwwLDAsLjg5LDEuMWguMTFhMSwxLDAsMCwwLDEtLjlsLjQyLTQuMDZhMSwxLDAsMCwwLTEuMDYtMS4xWiIgY2xhc3M9ImNsci1pLW91dGxp''@;'; + put 'put ''bmUgY2xyLWktb3V0bGluZS1wYXRoLTUiLz4nKSxMLkNsclNoYXBlRmlsZVNoYXJlMj0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjUsNEg3LjgzQTEuODksMS44OSwwLDAsMCw2LDUuOTFWMzAuMDlBMS44OSwxLjg5LDAsMCwwLDcuODMsMzJIMjguMTdBMS44NywxLjg3LDAsMCwwLDMw''@;'; + put 'put ''LDMwLjA5VjlaTTI0LDUuNzgsMjguMiwxMEgyNFpNOCwzMFY2SDIydjZoNlYzMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gIDxwYXRoIGQ9Ik0yMiwyMS44MWEyLjExLDIuMTEsMCwwLDAtMS40NC42MmwtNS43Mi0yLjY2di0uNDRsNS42Ni0yLjY1''@;'; + put 'put ''YTIuMDgsMi4wOCwwLDEsMCwuMDYtMi45NGgwYTIuMTQsMi4xNCwwLDAsMC0uNjQsMS40OHYuMjNsLTUuNjQsMi42NmEyLjA4LDIuMDgsMCwxLDAtLjA4LDIuOTVsLjA4LS4wOCw1LjY3LDIuNjZ2LjNBMi4wOSwyLjA5LDAsMSwwLDIyLDIxLjg0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xy''@;'; + put 'put ''LWktb3V0bGluZS1wYXRoLTIiLz5cbiAgXG4gIDxwYXRoIGQ9Ik0yNSw0LjA2SDcuODNBMS44OSwxLjg5LDAsMCwwLDYsNlYzMC4xNWExLjg5LDEuODksMCwwLDAsMS44MywxLjkxSDI4LjE3QTEuODcsMS44NywwLDAsMCwzMCwzMC4xNVY5Wk0yMiwyNmEyLjA5LDIuMDksMCwwLDEtMi4xLTIu''@;'; + put 'put ''MDh2LS4zTDE0LjI3LDIxbC0uMDguMDhhMi4wOCwyLjA4LDAsMSwxLC4wOC0yLjk1bDUuNjQtMi42NnYtLjIzYTIuMTQsMi4xNCwwLDAsMSwuNjQtMS40OGgwYTIuMDgsMi4wOCwwLDEsMS0uMDYsMi45NGwtNS42NiwyLjY1di40NGw1LjcyLDIuNjZBMi4xMSwyLjExLDAsMCwxLDIyLDIxLjgx''@;'; + put 'put ''bDAsMEEyLjA5LDIuMDksMCwwLDEsMjIsMjZabTItMTZWNS44NGw0LjIsNC4yMloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz4nKSxMLlRlY2hub2xvZ3lTaGFwZXM9eyJydWxlci1wZW5jaWwiOkwuQ2xyU2hhcGVSdWxlclBlbmNpbCwicGhvbmUtaGFuZHNldCI6''@;'; + put 'put ''TC5DbHJTaGFwZVBob25lSGFuZHNldCwibm8td2lmaSI6TC5DbHJTaGFwZU5vV2lmaSxpbnN0YWxsOkwuQ2xyU2hhcGVJbnN0YWxsLHVuaW5zdGFsbDpMLkNsclNoYXBlVW5pbnN0YWxsLGxheWVyczpMLkNsclNoYXBlTGF5ZXJzLGJsb2NrOkwuQ2xyU2hhcGVCbG9jaywiYmxvY2tzLWdyb3Vw''@;'; + put 'put ''IjpMLkNsclNoYXBlQmxvY2tzR3JvdXAsYnVuZGxlOkwuQ2xyU2hhcGVCdW5kbGUsd2lmaTpMLkNsclNoYXBlV2lmaSwicmFjay1zZXJ2ZXIiOkwuQ2xyU2hhcGVSYWNrU2VydmVyLCJoYXJkLWRpc2siOkwuQ2xyU2hhcGVIYXJkRGlzaywiYmFja3VwLXJlc3RvcmUiOkwuQ2xyU2hhcGVCYWNr''@;'; + put 'put ''dXBSZXN0b3JlLGJhY2t1cDpMLkNsclNoYXBlQmFja3VwLGRldmljZXM6TC5DbHJTaGFwZURldmljZXMsa2V5Ym9hcmQ6TC5DbHJTaGFwZUtleWJvYXJkLG1vdXNlOkwuQ2xyU2hhcGVNb3VzZSxkYXNoYm9hcmQ6TC5DbHJTaGFwZURhc2hib2FyZCxob3N0OkwuQ2xyU2hhcGVIb3N0LHN0b3Jh''@;'; + put 'put ''Z2U6TC5DbHJTaGFwZVN0b3JhZ2UsY2x1c3RlcjpMLkNsclNoYXBlQ2x1c3RlcixhcHBsaWNhdGlvbnM6TC5DbHJTaGFwZUFwcGxpY2F0aW9ucyxidWlsZGluZzpMLkNsclNoYXBlQnVpbGRpbmcsY3B1OkwuQ2xyU2hhcGVDUFUsbWVtb3J5OkwuQ2xyU2hhcGVNZW1vcnksImRhdGEtY2x1c3Rl''@;'; + put 'put ''ciI6TC5DbHJTaGFwZURhdGFDbHVzdGVyLCJyZXNvdXJjZS1wb29sIjpMLkNsclNoYXBlUmVzb3VyY2VQb29sLHNoaWVsZDpMLkNsclNoYXBlU2hpZWxkLCJzaGllbGQtY2hlY2siOkwuQ2xyU2hhcGVTaGllbGRDaGVjaywic2hpZWxkLXgiOkwuQ2xyU2hhcGVTaGllbGRYLGltcG9ydDpMLkNs''@;'; + put 'put ''clNoYXBlSW1wb3J0LGV4cG9ydDpMLkNsclNoYXBlRXhwb3J0LCJ1cGxvYWQtY2xvdWQiOkwuQ2xyU2hhcGVVcGxvYWRDbG91ZCwiZG93bmxvYWQtY2xvdWQiOkwuQ2xyU2hhcGVEb3dubG9hZENsb3VkLHBsdWdpbjpMLkNsclNoYXBlUGx1Z2luLGZsb3BweTpMLkNsclNoYXBlRmxvcHB5LGNv''@;'; + put 'put ''bXB1dGVyOkwuQ2xyU2hhcGVDb21wdXRlcixkaXNwbGF5OkwuQ2xyU2hhcGVEaXNwbGF5LHRlcm1pbmFsOkwuQ2xyU2hhcGVUZXJtaW5hbCxjb2RlOkwuQ2xyU2hhcGVDb2RlLGFwcGxpY2F0aW9uOkwuQ2xyU2hhcGVBcHBsaWNhdGlvbixiYXR0ZXJ5OkwuQ2xyU2hhcGVCYXR0ZXJ5LG1vYmls''@;'; + put 'put ''ZTpMLkNsclNoYXBlTW9iaWxlLHRhYmxldDpMLkNsclNoYXBlVGFibGV0LCJuZXR3b3JrLWdsb2JlIjpMLkNsclNoYXBlTmV0d29ya0dsb2JlLCJuZXR3b3JrLXNldHRpbmdzIjpMLkNsclNoYXBlTmV0d29ya1NldHRpbmdzLCJuZXR3b3JrLXN3aXRjaCI6TC5DbHJTaGFwZU5ldHdvcmtTd2l0''@;'; + put 'put ''Y2gscm91dGVyOkwuQ2xyU2hhcGVSb3V0ZXIsdm06TC5DbHJTaGFwZVZNLCJ2bXctYXBwIjpMLkNsclNoYXBlVk1XQXBwLGNlcnRpZmljYXRlOkwuQ2xyU2hhcGVDZXJ0aWZpY2F0ZSxhcmNoaXZlOkwuQ2xyU2hhcGVBcmNoaXZlLHVuYXJjaGl2ZTpMLkNsclNoYXBlVW5hcmNoaXZlLGNvbm5l''@;'; + put 'put ''Y3Q6TC5DbHJTaGFwZUNvbm5lY3QsZGlzY29ubmVjdDpMLkNsclNoYXBlRGlzY29ubmVjdCxsaW5rOkwuQ2xyU2hhcGVMaW5rLHVubGluazpMLkNsclNoYXBlVW5saW5rLCJjbG91ZC1uZXR3b3JrIjpMLkNsclNoYXBlQ2xvdWROZXR3b3JrLCJjbG91ZC1zY2FsZSI6TC5DbHJTaGFwZUNsb3Vk''@;'; + put 'put ''U2NhbGUsImNsb3VkLXRyYWZmaWMiOkwuQ2xyU2hhcGVDbG91ZFRyYWZmaWMsImNvbnRyb2wtbHVuIjpMLkNsckNvbnRyb2xMdW4sZGVwbG95OkwuQ2xyU2hhcGVEZXBsb3ksaGVsaXg6TC5DbHJTaGFwZUhlbGl4LGZsYXNrOkwuQ2xyU2hhcGVGbGFzayxhZG1pbmlzdHJhdG9yOkwuQ2xyU2hh''@;'; + put 'put ''cGVBZG1pbmlzdHJhdG9yLCJoYXJkLWRyaXZlIjpMLkNsclNoYXBlSGFyZERyaXZlLCJoYXJkLWRyaXZlLWRpc2tzIjpMLkNsclNoYXBlSGFyZERyaXZlRGlza3MsbnZtZTpMLkNsclNoYXBlTlZNZSxzc2Q6TC5DbHJTaGFwZVNTRCxibHVldG9vdGg6TC5DbHJTaGFwZUJsdWV0b290aCwiYmx1''@;'; + put 'put ''ZXRvb3RoLW9mZiI6TC5DbHJTaGFwZUJsdWV0b290aE9mZiwicHJvY2Vzcy1vbi12bSI6TC5DbHJTaGFwZVByb2Nlc3NPblZNLCJhc3NpZ24tdXNlciI6TC5DbHJTaGFwZUFzc2lnblVzZXIsYXRvbTpMLkNsclNoYXBlQXRvbSwiYmFyLWNvZGUiOkwuQ2xyU2hhcGVCYXJDb2RlLCJjZC1kdmQi''@;'; + put 'put ''OkwuQ2xyU2hhcGVDZER2ZCxjb250YWluZXI6TC5DbHJTaGFwZUNvbnRhaW5lciwiY29udGFpbmVyLXZvbHVtZSI6TC5DbHJTaGFwZUNvbnRhaW5lclZvbHVtZSwiZmlsZS1zaGFyZSI6TC5DbHJTaGFwZUZpbGVTaGFyZSwicXItY29kZSI6TC5DbHJTaGFwZVFyQ29kZSx1c2I6TC5DbHJTaGFw''@;'; + put 'put ''ZVVzYixyYWRhcjpMLkNsclNoYXBlUmFkYXIsY2FwYWNpdG9yOkwuQ2xyU2hhcGVDYXBhY2l0b3Isc3F1aWQ6TC5DbHJTaGFwZVNxdWlkLGluZHVjdG9yOkwuQ2xyU2hhcGVJbmR1Y3RvcixyZXNpc3RvcjpMLkNsclNoYXBlUmVzaXN0b3IsImhvc3QtZ3JvdXAiOkwuQ2xyU2hhcGVIb3N0R3Jv''@;'; + put 'put ''dXAsInN0b3JhZ2UtYWRhcHRlciI6TC5DbHJTaGFwZVN0b3JhZ2VBZGFwdGVyLCJub2RlLWdyb3VwIjpMLkNsclNoYXBlTm9kZUdyb3VwLG5vZGVzOkwuQ2xyU2hhcGVOb2RlcyxuYW1lc3BhY2U6TC5DbHJTaGFwZU5hbWVzcGFjZSxub2RlOkwuQ2xyU2hhcGVOb2RlLHBvZDpMLkNsclNoYXBl''@;'; + put 'put ''UG9kLCJtZWRpYS1jaGFuZ2VyIjpMLkNsclNoYXBlTWVkaWFDaGFuZ2VyLCJ0YXBlLWRyaXZlIjpMLkNsclNoYXBlVGFwZURyaXZlLGFuaW1hdGlvbjpMLkNsclNoYXBlQW5pbWF0aW9uLCJjaS1jZCI6TC5DbHJTaGFwZUNpQ2QsImZpbGUtc2hhcmUtMiI6TC5DbHJTaGFwZUZpbGVTaGFyZTJ9''@;'; + put 'put ''LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShMLlRlY2hub2xvZ3lTaGFwZXMsInNlcnZlciIsKDAsQi5kZXNjcmlwdG9yQ29uZmlnKShMLlRlY2hub2xvZ3lTaGFwZXMuaG9zdCkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShMLlRlY2hub2xvZ3lTaGFwZXMsImNvbW1hbmQiLCgwLEIuZGVzY3JpcHRv''@;'; + put 'put ''ckNvbmZpZykoTC5UZWNobm9sb2d5U2hhcGVzLnRlcm1pbmFsKSksT2JqZWN0LmRlZmluZVByb3BlcnR5KEwuVGVjaG5vbG9neVNoYXBlcywibW9iaWxlLXBob25lIiwoMCxCLmRlc2NyaXB0b3JDb25maWcpKEwuVGVjaG5vbG9neVNoYXBlcy5tb2JpbGUpKSxPYmplY3QuZGVmaW5lUHJvcGVy''@;'; + put 'put ''dHkoTC5UZWNobm9sb2d5U2hhcGVzLCJsaWNlbnNlIiwoMCxCLmRlc2NyaXB0b3JDb25maWcpKEwuVGVjaG5vbG9neVNoYXBlcy5jZXJ0aWZpY2F0ZSkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShMLlRlY2hub2xvZ3lTaGFwZXMsImRpc2Nvbm5lY3RlZCIsKDAsQi5kZXNjcmlwdG9yQ29uZmln''@;'; + put 'put ''KShMLlRlY2hub2xvZ3lTaGFwZXNbIm5vLXdpZmkiXSkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShMLlRlY2hub2xvZ3lTaGFwZXMsInJlY2VpdmVyIiwoMCxCLmRlc2NyaXB0b3JDb25maWcpKEwuVGVjaG5vbG9neVNoYXBlc1sicGhvbmUtaGFuZHNldCJdKSksT2JqZWN0LmRlZmluZVByb3Bl''@;'; + put 'put ''cnR5KEwuVGVjaG5vbG9neVNoYXBlcywiZGVzaWduIiwoMCxCLmRlc2NyaXB0b3JDb25maWcpKEwuVGVjaG5vbG9neVNoYXBlc1sicnVsZXItcGVuY2lsIl0pKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoTC5UZWNobm9sb2d5U2hhcGVzLCJkbmEiLCgwLEIuZGVzY3JpcHRvckNvbmZpZykoTC5U''@;'; + put 'put ''ZWNobm9sb2d5U2hhcGVzLmhlbGl4KSksT2JqZWN0LmRlZmluZVByb3BlcnR5KEwuVGVjaG5vbG9neVNoYXBlcywiZm9sZGVyLXNoYXJlIiwoMCxCLmRlc2NyaXB0b3JDb25maWcpKEwuVGVjaG5vbG9neVNoYXBlc1siZmlsZS1zaGFyZSJdKSksInVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cm''@;'; + put 'put ''JndpbmRvdy5oYXNPd25Qcm9wZXJ0eSgiQ2xhcml0eUljb25zIikmJndpbmRvdy5DbGFyaXR5SWNvbnMuYWRkKEwuVGVjaG5vbG9neVNoYXBlcyl9LCIuL3Byb2plY3RzL2ljb25zL3NyYy9zaGFwZXMvdGV4dC1lZGl0LXNoYXBlcy50cyI6ZnVuY3Rpb24oSmUsTCxtZSl7InVzZSBzdHJpY3Qi''@;'; + put 'put ''O09iamVjdC5kZWZpbmVQcm9wZXJ0eShMLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxMLlRleHRFZGl0U2hhcGVzPUwuQ2xyU2hhcGVTdXBlcnNjcmlwdD1MLkNsclNoYXBlU3Vic2NyaXB0PUwuQ2xyU2hhcGVTdHJpa2V0aHJvdWdoPUwuQ2xyU2hhcGVJbmRlbnQ9TC5DbHJTaGFwZU91dGRl''@;'; + put 'put ''bnQ9TC5DbHJTaGFwZUhpZ2hsaWdodGVyPUwuQ2xyU2hhcGVUZXh0Q29sb3I9TC5DbHJTaGFwZUxhbmd1YWdlPUwuQ2xyU2hhcGVBbGlnblRvcD1MLkNsclNoYXBlQWxpZ25NaWRkbGU9TC5DbHJTaGFwZUFsaWduQm90dG9tPUwuQ2xyU2hhcGVVbmRlcmxpbmU9TC5DbHJTaGFwZVRleHQ9TC5D''@;'; + put 'put ''bHJTaGFwZUFsaWduUmlnaHRUZXh0PUwuQ2xyU2hhcGVCbG9ja1F1b3RlPUwuQ2xyU2hhcGVQYWludFJvbGxlcj1MLkNsclNoYXBlTnVtYmVyTGlzdD1MLkNsclNoYXBlQWxpZ25MZWZ0VGV4dD1MLkNsclNoYXBlSnVzdGlmeVRleHQ9TC5DbHJTaGFwZUl0YWxpYz1MLkNsclNoYXBlQWxpZ25S''@;'; + put 'put ''aWdodD1MLkNsclNoYXBlQWxpZ25MZWZ0PUwuQ2xyU2hhcGVBbGlnbkNlbnRlcj1MLkNsclNoYXBlRm9udFNpemU9TC5DbHJTaGFwZUNoZWNrYm94TGlzdD1MLkNsclNoYXBlQ2VudGVyVGV4dD1MLkNsclNoYXBlQnVsbGV0TGlzdD1MLkNsclNoYXBlQm9sZD12b2lkIDA7dmFyIEI9bWUoIi4v''@;'; + put 'put ''cHJvamVjdHMvaWNvbnMvc3JjL3V0aWxzL3N2Zy10YWctZ2VuZXJhdG9yLnRzIik7TC5DbHJTaGFwZUJvbGQ9KDAsQi5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTIyLjQzLDE3LjU0YTQuNjcsNC42NywwLDAsMCwyLjgtNC4zN3YtLjA2YTQuNDMsNC40MywwLDAsMC0xLjMxLTMuMjUsNy4wOSw3''@;'; + put 'put ''LjA5LDAsMCwwLTUuMTMtMS43M2gtN0ExLjcxLDEuNzEsMCwwLDAsMTAsOS44NlYyNmExLjcyLDEuNzIsMCwwLDAsMS43NCwxLjc0aDcuMzNjNC4zNywwLDcuMjUtMS44OCw3LjI1LTUuMzhWMjIuM0MyNi4zMiwxOS42NCwyNC43MywxOC4zMiwyMi40MywxNy41NFpNMTMuNjgsMTEuNGg0LjU0''@;'; + put 'put ''YzIsMCwzLjE1Ljg5LDMuMTUsMi4zM3YuMDZjMCwxLjY4LTEuMzYsMi40OS0zLjM4LDIuNDlIMTMuNjhaTTIyLjM3LDIyYzAsMS41OS0xLjMxLDIuNDMtMy40NiwyLjQzSDEzLjY4VjE5LjYyaDVjMi40OSwwLDMuNjkuODgsMy42OSwyLjM3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWkt''@;'; + put 'put ''b3V0bGluZS1wYXRoLTEiIC8+JyksTC5DbHJTaGFwZUJ1bGxldExpc3Q9KDAsQi5jbHJJY29uU1ZHKSgnPGNpcmNsZSBjeD0iNS4yMSIgY3k9IjkuMTciIHI9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxjaXJjbGUgY3g9IjUuMjEiIGN5PSIxNy4x''@;'; + put 'put ''NyIgcj0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PGNpcmNsZSBjeD0iNS4yMSIgY3k9IjI1LjE3IiByPSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz48cGF0aCBkPSJNMzIuNDIsOWExLDEsMCwwLDAtMS0x''@;'; + put 'put ''SDEwdjJIMzEuNDJBMSwxLDAsMCwwLDMyLjQyLDlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz48cGF0aCBkPSJNMzEuNDIsMTZIMTB2MkgzMS40MmExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUi''@;'; + put 'put ''IC8+PHBhdGggZD0iTTMxLjQyLDI0SDEwdjJIMzEuNDJhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02IiAvPicpLEwuQ2xyU2hhcGVDZW50ZXJUZXh0PSgwLEIuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMC44OCw4SDUuMTJhMS4xLDEu''@;'; + put 'put ''MSwwLDAsMCwwLDIuMkgzMC44OGExLjEsMS4xLDAsMSwwLDAtMi4yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTI1LjUsMTYuMmExLjEsMS4xLDAsMSwwLDAtMi4yaC0xNWExLjEsMS4xLDAsMSwwLDAsMi4yWiIgY2xhc3M9ImNsci1p''@;'; + put 'put ''LW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTMwLjI1LDIwSDUuNzVhMS4xLDEuMSwwLDAsMCwwLDIuMmgyNC41YTEuMSwxLjEsMCwwLDAsMC0yLjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz48cGF0aCBkPSJNMjQuODgs''@;'; + put 'put ''MjZIMTEuMTJhMS4xLDEuMSwwLDEsMCwwLDIuMkgyNC44OGExLjEsMS4xLDAsMSwwLDAtMi4yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+JyksTC5DbHJTaGFwZUNoZWNrYm94TGlzdD0oMCxCLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzEuNDMsMTZI''@;'; + put 'put ''MTB2MkgzMS40M2ExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTMxLjQzLDI0SDEwdjJIMzEuNDNhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxw''@;'; + put 'put ''YXRoIGQ9Ik0xNS40NSwxMGgxNmExLDEsMCwwLDAsMC0yaC0xNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0xNy41LDMuNDJhMS4wOSwxLjA5LDAsMCwwLTEuNTUsMEw3Ljg5LDExLjQ4LDQuNTEsNy44NEExLjEsMS4xLDAsMSwwLDIu''@;'; + put 'put ''OSw5LjM0bDQuOTQsNS4zTDE3LjUsNUExLjEsMS4xLDAsMCwwLDE3LjUsMy40MloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPicpLEwuQ2xyU2hhcGVGb250U2l6ZT0oMCxCLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjEsOS4wOEExLjEzLDEuMTMsMCww''@;'; + put 'put ''LDAsMTkuODYsOEg0LjYyYTEuMSwxLjEsMCwxLDAsMCwyLjE5SDExVjI3YTEuMDksMS4wOSwwLDAsMCwyLjE3LDBWMTAuMTloNi42OUExLjE0LDEuMTQsMCwwLDAsMjEsOS4wOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0zMC42Nywx''@;'; + put 'put ''NUgyMS4xNWExLjEsMS4xLDAsMSwwLDAsMi4xOUgyNVYyNi41YTEuMDksMS4wOSwwLDAsMCwyLjE3LDBWMTcuMjNoMy41NGExLjEsMS4xLDAsMSwwLDAtMi4xOVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPicpLEwuQ2xyU2hhcGVBbGlnbkNlbnRlcj0o''@;'; + put 'put ''MCxCLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzEsMjBIMTlWMTZoNmExLDEsMCwwLDAsMS0xVjdhMSwxLDAsMCwwLTEtMUgxOVYyYTEsMSwwLDAsMC0yLDBWNkgxMWExLDEsMCwwLDAtMSwxdjhhMSwxLDAsMCwwLDEsMWg2djRINWExLDEsMCwwLDAtMSwxdjhhMSwxLDAsMCwwLDEsMUgxN3Y0''@;'; + put 'put ''YTEsMSwwLDAsMCwyLDBWMzBIMzFhMSwxLDAsMCwwLDEtMVYyMUExLDEsMCwwLDAsMzEsMjBaTTEyLDE0VjhIMjR2NlpNMzAsMjhINlYyMkgzMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPicpLEwuQ2xyU2hhcGVBbGlnbkxlZnQ9KDAsQi5jbHJJY29u''@;'; + put 'put ''U1ZHKSgnPHBhdGggZD0iTTUsMUExLDEsMCwwLDAsNCwyVjM0YTEsMSwwLDAsMCwyLDBWMkExLDEsMCwwLDAsNSwxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTMxLDIwSDhWMzBIMzFhMSwxLDAsMCwwLDEtMVYyMUExLDEsMCwwLDAs''@;'; + put 'put ''MzEsMjBabS0xLDhIMTBWMjJIMzBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMjQsMTVWN2ExLDEsMCwwLDAtMS0xSDhWMTZIMjNBMSwxLDAsMCwwLDI0LDE1Wm0tMi0xSDEwVjhIMjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHIt''@;'; + put 'put ''aS1vdXRsaW5lLXBhdGgtMyIgLz4nKSxMLkNsclNoYXBlQWxpZ25SaWdodD0oMCxCLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzEsMWExLDEsMCwwLDAtMSwxVjM0YTEsMSwwLDAsMCwyLDBWMkExLDEsMCwwLDAsMzEsMVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0''@;'; + put 'put ''aC0xIiAvPjxwYXRoIGQ9Ik00LDIxdjhhMSwxLDAsMCwwLDEsMUgyOFYyMEg1QTEsMSwwLDAsMCw0LDIxWm0yLDFIMjZ2Nkg2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTEyLDd2OGExLDEsMCwwLDAsMSwxSDI4VjZIMTNBMSwxLDAs''@;'; + put 'put ''MCwwLDEyLDdabTIsMUgyNnY2SDE0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+JyksTC5DbHJTaGFwZUl0YWxpYz0oMCxCLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjQuNDIsOEgxNy4xYTEuMSwxLjEsMCwxLDAsMCwyLjE5aDIuMTNMMTMuMTEsMjUu''@;'; + put 'put ''NTVIMTAuNDdhMS4xLDEuMSwwLDEsMCwwLDIuMTlIMTcuOGExLjEsMS4xLDAsMSwwLDAtMi4xOUgxNS41MWw2LjEzLTE1LjM2aDIuNzhhMS4xLDEuMSwwLDEsMCwwLTIuMTlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz4nKSxMLkNsclNoYXBlSnVzdGlm''@;'; + put 'put ''eVRleHQ9KDAsQi5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTYsMTAuMkgzMS43NWExLjEsMS4xLDAsMSwwLDAtMi4ySDZhMS4xLDEuMSwwLDEsMCwwLDIuMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0zMS43NSwxNEg2YTEuMSwxLjEs''@;'; + put 'put ''MCwxLDAsMCwyLjJIMzEuNzVhMS4xLDEuMSwwLDEsMCwwLTIuMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0zMS4xMiwyMEg2LjYyYTEuMSwxLjEsMCwxLDAsMCwyLjJoMjQuNWExLjEsMS4xLDAsMSwwLDAtMi4yWiIgY2xhc3M9ImNs''@;'; + put 'put ''ci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+PHBhdGggZD0iTTMwLjQ1LDI1LjgzSDYuNmExLjEsMS4xLDAsMCwwLDAsMi4ySDMwLjQ1YTEuMSwxLjEsMCwwLDAsMC0yLjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz4nKSxMLkNsclNo''@;'; + put 'put ''YXBlQWxpZ25MZWZ0VGV4dD0oMCxCLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjAuMjUsMjZINnYyLjJIMjAuMjVhMS4xLDEuMSwwLDAsMCwwLTIuMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0yOCwyMEg2djIuMkgyOEExLjEsMS4x''@;'; + put 'put ''LDAsMCwwLDI4LDIwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTIyLjYsMTUuMUExLjEsMS4xLDAsMCwwLDIxLjUsMTRINnYyLjJIMjEuNUExLjEsMS4xLDAsMCwwLDIyLjYsMTUuMVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1p''@;'; + put 'put ''LW91dGxpbmUtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0yOS4yNSw4SDZ2Mi4ySDI5LjI1YTEuMSwxLjEsMCwxLDAsMC0yLjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz4nKSxMLkNsclNoYXBlTnVtYmVyTGlzdD0oMCxCLmNsckljb25TVkcpKCc8cG9seWdv''@;'; + put 'put ''biBwb2ludHM9IjUuNDYgNy40MSA1LjQ2IDExLjU2IDYuNjUgMTEuNTYgNi42NSA2LjA1IDUuNyA2LjA1IDQuMDUgNy4xNiA0LjUyIDggNS40NiA3LjQxIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNNS41NywxNC44MmEuNzYuNzYsMCww''@;'; + put 'put ''LDEsLjgzLjczYzAsLjM4LS4yMS43NC0uODcsMS4yN2wtMiwxLjU3djFINy42N1YxOC4yOEg1LjMzbDEtLjc3YzEtLjcsMS4yOC0xLjI3LDEuMjgtMmExLjgzLDEuODMsMCwwLDAtMi0xLjc2LDIuNjMsMi42MywwLDAsMC0yLjE0LDEuMDhsLjc2LjczQTEuNzUsMS43NSwwLDAsMSw1LjU3LDE0''@;'; + put 'put ''LjgyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTYuNTYsMjQuNjRhMS4zMiwxLjMyLDAsMCwwLDEtMS4yN2MwLS44Ny0uNzgtMS41MS0yLTEuNTFhMi42MSwyLjYxLDAsMCwwLTIuMSwxbC42OS43MmExLjc4LDEuNzgsMCwwLDEsMS4z''@;'; + put 'put ''LS42NGMuNTQsMCwuOTIuMjYuOTIuNjZzLS4zNi42Mi0xLC42Mkg0Ljc5djFoLjY0Yy43NCwwLDEuMDcuMjEsMS4wNy42M3MtLjM1LjY4LTEsLjY4YTIsMiwwLDAsMS0xLjQ2LS42NWwtLjcuNzhhMi44NSwyLjg1LDAsMCwwLDIuMjEuOTNjMS4yOSwwLDIuMTMtLjY5LDIuMTMtMS42NEExLjMz''@;'; + put 'put ''LDEuMzMsMCwwLDAsNi41NiwyNC42NFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0zMi40Miw5YTEsMSwwLDAsMC0xLTFIMTB2MkgzMS40MkExLDEsMCwwLDAsMzIuNDIsOVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxp''@;'; + put 'put ''bmUtcGF0aC00IiAvPjxwYXRoIGQ9Ik0zMS40MiwxNkgxMHYySDMxLjQyYTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgLz48cGF0aCBkPSJNMzEuNDIsMjRIMTB2MkgzMS40MmExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLW91''@;'; + put 'put ''dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIC8+JyksTC5DbHJTaGFwZVBhaW50Um9sbGVyPSgwLEIuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMSwxMFY0YTIsMiwwLDAsMC0yLTJINkEyLDIsMCwwLDAsNCw0djZhMiwyLDAsMCwwLDIsMkgyOUEyLDIsMCwwLDAsMzEsMTBaTTYsNEgyOXY2''@;'; + put 'put ''SDZaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMzMsNkgzMnY2LjI5TDE4LjcsMTYuNTRhMSwxLDAsMCwwLS43LDFWMTlIMTZWMzNhMiwyLDAsMCwwLDIsMmgyYTIsMiwwLDAsMCwyLTJWMTlIMjB2LS43M0wzMy4zLDE0YTEsMSwwLDAs''@;'; + put 'put ''MCwuNy0xVjdBMSwxLDAsMCwwLDMzLDZaTTIwLDMzSDE4VjIxaDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cmVjdCB4PSI0IiB5PSIyIiB3aWR0aD0iMjciIGhlaWdodD0iMTAiIHJ4PSIxIiByeT0iMSIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1p''@;'; + put 'put ''LXNvbGlkLXBhdGgtMSIgLz48cGF0aCBkPSJNMzMsNkgzMnY2LjI0TDE4LjcxLDE2LjQ1YTEsMSwwLDAsMC0uNzEsMVYxOUgxNlYzNGExLDEsMCwwLDAsMSwxaDRhMSwxLDAsMCwwLDEtMVYxOUgyMHYtLjgyTDMzLjI5LDE0QTEsMSwwLDAsMCwzNCwxM1Y3QTEsMSwwLDAsMCwzMyw2WiIgY2xh''@;'; + put 'put ''c3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz4nKSxMLkNsclNoYXBlQmxvY2tRdW90ZT0oMCxCLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTEuODYsMTYuNTVhNC4zMSw0LjMxLDAsMCwwLTIuMTEuNTYsMTQuNDQsMTQuNDQsMCwwLDEsNC4zNi02LDEuMSwxLjEsMCwwLDAt''@;'; + put 'put ''MS40LTEuN2MtNCwzLjI1LTUuNzgsNy43NS01Ljc4LDEwLjU0QTUuMDgsNS4wOCwwLDAsMCwxMCwyNC41OGE0LjQsNC40LDAsMCwwLDEuODguNDQsNC4yNCw0LjI0LDAsMSwwLDAtOC40N1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0y''@;'; + put 'put ''MywxNi41NWE0LjI5LDQuMjksMCwwLDAtMi4xMS41NiwxNC41LDE0LjUsMCwwLDEsNC4zNS02LDEuMSwxLjEsMCwxLDAtMS4zOS0xLjdjLTQsMy4yNS01Ljc4LDcuNzUtNS43OCwxMC41NGE1LjA4LDUuMDgsMCwwLDAsMyw0LjYxQTQuMzcsNC4zNywwLDAsMCwyMywyNWE0LjI0LDQuMjQsMCwx''@;'; + put 'put ''LDAsMC04LjQ3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+JyksTC5DbHJTaGFwZUFsaWduUmlnaHRUZXh0PSgwLEIuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xNC42NSwyNy4xYTEuMSwxLjEsMCwwLDAsMS4xLDEuMUgzMFYyNkgxNS43NUExLjEsMS4x''@;'; + put 'put ''LDAsMCwwLDE0LjY1LDI3LjFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNNi45LDIxLjFBMS4xLDEuMSwwLDAsMCw4LDIyLjJIMzBWMjBIOEExLjEsMS4xLDAsMCwwLDYuOSwyMS4xWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWkt''@;'; + put 'put ''b3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTEzLjQsMTUuMWExLjEsMS4xLDAsMCwwLDEuMSwxLjFIMzBWMTRIMTQuNUExLjEsMS4xLDAsMCwwLDEzLjQsMTUuMVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxwYXRoIGQ9Ik02Ljc1LDhhMS4xLDEu''@;'; + put 'put ''MSwwLDEsMCwwLDIuMkgzMFY4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+JyksTC5DbHJTaGFwZVRleHQ9KDAsQi5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTEyLjE5LDguODRhMS40NSwxLjQ1LDAsMCwwLTEuNC0xaC0uMTJhMS40NiwxLjQ2LDAsMCww''@;'; + put 'put ''LTEuNDIsMUwxLjE0LDI2LjU2YTEuMjksMS4yOSwwLDAsMC0uMTQuNTksMSwxLDAsMCwwLDEsMSwxLjEyLDEuMTIsMCwwLDAsMS4wOC0uNzdsMi4wOC00LjY1aDExbDIuMDgsNC41OWExLjI0LDEuMjQsMCwwLDAsMS4xMi44MywxLjA4LDEuMDgsMCwwLDAsMS4wOC0xLjA4LDEuNjQsMS42NCww''@;'; + put 'put ''LDAsMC0uMTQtLjU3Wk02LjA4LDIwLjcxbDQuNTktMTAuMjIsNC42LDEwLjIyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTMyLjI0LDE0Ljc4QTYuMzUsNi4zNSwwLDAsMCwyNy42LDEzLjJhMTEuMzYsMTEuMzYsMCwwLDAtNC43LDEs''@;'; + put 'put ''MSwxLDAsMCwwLS41OC44OSwxLDEsMCwwLDAsLjk0LjkyLDEuMjMsMS4yMywwLDAsMCwuMzktLjA4LDguODcsOC44NywwLDAsMSwzLjcyLS44MWMyLjcsMCw0LjI4LDEuMzMsNC4yOCwzLjkydi41YTE1LjI5LDE1LjI5LDAsMCwwLTQuNDItLjYxYy0zLjY0LDAtNi4xNCwxLjYxLTYuMTQsNC42''@;'; + put 'put ''NHYuMDVjMCwyLjk1LDIuNyw0LjQ4LDUuMzcsNC40OGE2LjI5LDYuMjksMCwwLDAsNS4xOS0yLjQ4VjI2LjlhMSwxLDAsMCwwLDEsMSwxLDEsMCwwLDAsMS0xLjA2VjE5QTUuNzEsNS43MSwwLDAsMCwzMi4yNCwxNC43OFptLS41Niw3LjdjMCwyLjI4LTIuMTcsMy44OS00LjgxLDMuODktMS45''@;'; + put 'put ''NCwwLTMuNjEtMS4wNi0zLjYxLTIuODZ2LS4wNmMwLTEuOCwxLjUtMyw0LjItM2ExNS4yLDE1LjIsMCwwLDEsNC4yMi42MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPicpLEwuQ2xyU2hhcGVVbmRlcmxpbmU9KDAsQi5jbHJJY29uU1ZHKSgnPHBhdGgg''@;'; + put 'put ''ZD0iTTE4LDI4LjE3YzUuMDgsMCw4LjQ4LTMuMDgsOC40OC05VjguNTRhMS4xNSwxLjE1LDAsMSwwLTIuMywwdjEwLjhjMCw0LjQ0LTIuMzgsNi43MS02LjEzLDYuNzFzLTYuMjEtMi40Ny02LjIxLTYuODVWOC41NGExLjE1LDEuMTUsMCwxLDAtMi4zLDB2MTAuOEM5LjUzLDI1LjA5LDEzLDI4''@;'; + put 'put ''LjE3LDE4LDI4LjE3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTMxLDMwSDVhMS4xMSwxLjExLDAsMCwwLDAsMi4yMUgzMUExLjExLDEuMTEsMCwwLDAsMzEsMzBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBh''@;'; + put 'put ''dGgtMiIgLz4nKSxMLkNsclNoYXBlQWxpZ25Cb3R0b209KDAsQi5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTM0LDMwSDJhMSwxLDAsMCwwLDAsMkgzNGExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTE2LDVhMSwx''@;'; + put 'put ''LDAsMCwwLTEtMUg3QTEsMSwwLDAsMCw2LDVWMjhIMTZaTTE0LDI2SDhWNmg2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTMwLDEzYTEsMSwwLDAsMC0xLTFIMjFhMSwxLDAsMCwwLTEsMVYyOEgzMFpNMjgsMjZIMjJWMTRoNloiIGNs''@;'; + put 'put ''YXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPicpLEwuQ2xyU2hhcGVBbGlnbk1pZGRsZT0oMCxCLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzQsMTdIMzBWMTFhMSwxLDAsMCwwLTEtMUgyMWExLDEsMCwwLDAtMSwxdjZIMTZWNWExLDEsMCwwLDAtMS0xSDdBMSwx''@;'; + put 'put ''LDAsMCwwLDYsNVYxN0gyYTEsMSwwLDAsMCwwLDJINlYzMWExLDEsMCwwLDAsMSwxaDhhMSwxLDAsMCwwLDEtMVYxOWg0djZhMSwxLDAsMCwwLDEsMWg4YTEsMSwwLDAsMCwxLTFWMTloNGExLDEsMCwwLDAsMC0yWk0xNCwzMEg4VjZoNlptMTQtNkgyMlYxMmg2WiIgY2xhc3M9ImNsci1pLW91''@;'; + put 'put ''dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+JyksTC5DbHJTaGFwZUFsaWduVG9wPSgwLEIuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zNCw0SDJBMSwxLDAsMCwwLDIsNkgzNGExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+''@;'; + put 'put ''PHBhdGggZD0iTTYsMzFhMSwxLDAsMCwwLDEsMWg4YTEsMSwwLDAsMCwxLTFWOEg2Wk04LDEwaDZWMzBIOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0yMCwyM2ExLDEsMCwwLDAsMSwxaDhhMSwxLDAsMCwwLDEtMVY4SDIwWm0yLTEz''@;'; + put 'put ''aDZWMjJIMjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz4nKSxMLkNsclNoYXBlTGFuZ3VhZ2U9KDAsQi5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMwLDNIMTR2NWgyVjVoMTRjMC42LDAsMSwwLjQsMSwxdjExYzAsMC42LTAuNCwxLTEsMUgxN3Y3aC01''@;'; + put 'put ''LjNMOCwyNy45VjI1SDVjLTAuNiwwLTEtMC40LTEtMVYxM2MwLTAuNiwwLjQtMSwxLTFoMTN2LTJINVxuXHRcdGMtMS43LDAtMywxLjMtMywzdjExYzAsMS43LDEuMywzLDMsM2gxdjUuMWw2LjMtNS4xSDE5di03aDExYzEuNywwLDMtMS4zLDMtM1Y2QzMzLDQuMywzMS43LDMsMzAsM3oiIGNs''@;'; + put 'put ''YXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik02LjIsMjIuOWgyLjRsMC42LTEuNmgzLjFsMC42LDEuNmgyLjRMMTEuOSwxNEg5LjVMNi4yLDIyLjl6IE0xMC43LDE2LjVsMSwzLjFoLTJMMTAuNywxNi41eiIgY2xhc3M9ImNsci1pLW91dGxpbmUg''@;'; + put 'put ''Y2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTIwLDE3YzEuMSwwLDIuNi0wLjMsNC0xYzEuNCwwLjcsMywxLDQsMXYtMmMwLDAtMSwwLTIuMS0wLjRjMS4yLTEuMiwyLjEtMywyLjEtNS42VjhoLTNWNmgtMnYyaC0zdjJoNS45XG5cdFx0Yy0wLjIsMS44LTEsMi45LTEuOSwzLjZj''@;'; + put 'put ''LTAuNi0wLjUtMS4yLTEuMi0xLjYtMi4xaC0yLjFjMC40LDEuMywxLDIuMywxLjgsMy4xQzIxLjEsMTUsMjAuMiwxNSwyMCwxNVYxN3oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxwb2x5Z29uIHBvaW50cz0iMTEsMTYuNSAxMCwxOS42IDEyLDE5LjYg''@;'; + put 'put ''MTEsMTYuNSBcdCIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz48cGF0aCBkPSJNMzAuMywzaC0xNnY1aDR2MmgtMTNjLTEuNywwLTMsMS4zLTMsM3YxMWMwLDEuNywxLjMsMywzLDNoMXY1LjFsNi4zLTUuMWg2Ljd2LTdoMTFjMS43LDAsMy0xLjMsMy0zVjZcblx0''@;'; + put 'put ''XHRDMzMuMyw0LjMsMzIsMywzMC4zLDN6IE0xMy4xLDIyLjlsLTAuNS0xLjZIOS41bC0wLjYsMS42SDYuNUw5LjgsMTRoMi40bDMuMyw4LjlMMTMuMSwyMi45eiBNMjguMywxNXYyYy0xLjMsMC0yLjctMC40LTMuOS0xXG5cdFx0Yy0xLjIsMC42LTIuNiwwLjktNCwxbC0wLjEtMmMwLjcsMCwx''@;'; + put 'put ''LjQtMC4xLDIuMS0wLjNjLTAuOS0wLjktMS41LTItMS44LTMuMmgyLjFjMC4zLDAuOSwwLjksMS42LDEuNiwyLjJjMS4xLTAuOSwxLjgtMi4yLDEuOS0zLjdcblx0XHRoLTZWOGgzVjZoMnYyaDMuM2wwLjEsMWMwLjEsMi4xLTAuNyw0LjItMi4yLDUuN0MyNy4xLDE0LjksMjcuNywxNSwyOC4z''@;'; + put 'put ''LDE1eiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz4nKSxMLkNsclNoYXBlVGV4dENvbG9yPSgwLEIuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xOS40NywzLjg0YTEuNDUsMS40NSwwLDAsMC0xLjQtMUgxOGExLjQ1LDEuNDUsMCwwLDAtMS40MiwxTDguNDIsMjEu''@;'; + put 'put ''NTZhMS4zNSwxLjM1LDAsMCwwLS4xNC41OSwxLDEsMCwwLDAsMSwxLDEuMTEsMS4xMSwwLDAsMCwxLjA4LS43N2wyLjA4LTQuNjVoMTFsMi4wOCw0LjU5YTEuMjQsMS4yNCwwLDAsMCwxLjEyLjgzLDEuMDgsMS4wOCwwLDAsMCwxLjA4LTEuMDgsMS41OSwxLjU5LDAsMCwwLS4xNC0uNTdaTTEz''@;'; + put 'put ''LjM2LDE1LjcxLDE4LDUuNDlsNC42LDEwLjIyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgPHJlY3QgeD0iNC4wNiIgeT0iMjUiIHdpZHRoPSIyOCIgaGVpZ2h0PSI4IiByeD0iMiIgcnk9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91''@;'; + put 'put ''dGxpbmUtcGF0aC0yIi8+JyksTC5DbHJTaGFwZUhpZ2hsaWdodGVyPSgwLEIuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xNS44MiwyNi4wNmExLDEsMCwwLDEtLjcxLS4yOUw4LjY3LDE5LjMzYTEsMSwwLDAsMS0uMjktLjcxLDEsMSwwLDAsMSwuMjktLjcxTDIzLDMuNTRhNS41NSw1LjU1LDAs''@;'; + put 'put ''MSwxLDcuODUsNy44NkwxNi41MywyNS43N0ExLDEsMCwwLDEsMTUuODIsMjYuMDZabS01LTcuNDQsNSw1TDI5LjQ4LDEwYTMuNTQsMy41NCwwLDAsMCwwLTUsMy42MywzLjYzLDAsMCwwLTUsMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gIDxwYXRo''@;'; + put 'put ''IGQ9Ik0xMC4zOCwyOC4yOEExLDEsMCwwLDEsOS42NywyOEw2LjQ1LDI0Ljc3YTEsMSwwLDAsMS0uMjItMS4wOWwyLjIyLTUuNDRhMSwxLDAsMCwxLDEuNjMtLjMzbDYuNDUsNi40NEExLDEsMCwwLDEsMTYuMiwyNmwtNS40NCwyLjIyQTEuMzMsMS4zMywwLDAsMSwxMC4zOCwyOC4yOFpNOC4z''@;'; + put 'put ''MywyMy44MmwyLjI5LDIuMjgsMy40My0xLjRMOS43NCwyMC4zOVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gIDxwYXRoIGQ9Ik04Ljk0LDMwaC01YTEsMSwwLDAsMS0uODQtMS41NWwzLjIyLTQuOTRhMSwxLDAsMCwxLDEuNTUtLjE2bDMuMjEsMy4y''@;'; + put 'put ''MmExLDEsMCwwLDEsLjA2LDEuMzVMOS43LDI5LjY0QTEsMSwwLDAsMSw4Ljk0LDMwWk01Ljc4LDI4SDguNDdMOSwyNy4zNGwtMS43LTEuN1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gIDxyZWN0IHg9IjMuMDYiIHk9IjMxIiB3aWR0aD0iMzAiIGhl''@;'; + put 'put ''aWdodD0iMyIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiLz4nKSxMLkNsclNoYXBlT3V0ZGVudD0oMCxCLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzEuMDYsOWgtMjZhMSwxLDAsMSwxLDAtMmgyNmExLDEsMCwxLDEsMCwyWiIgY2xhc3M9ImNsci1pLW91dGxp''@;'; + put 'put ''bmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgPHBhdGggZD0iTTMxLjA2LDE0aC0xN2ExLDEsMCwwLDEsMC0yaDE3YTEsMSwwLDEsMSwwLDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICA8cGF0aCBkPSJNMzEuMDYsMTloLTE3YTEsMSwwLDAs''@;'; + put 'put ''MSwwLTJoMTdhMSwxLDAsMSwxLDAsMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gIDxwYXRoIGQ9Ik0zMS4wNiwyNGgtMTdhMSwxLDAsMCwxLDAtMmgxN2ExLDEsMCwxLDEsMCwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1w''@;'; + put 'put ''YXRoLTQiLz5cbiAgPHBhdGggZD0iTTMxLjA2LDI5aC0yNmExLDEsMCwwLDEsMC0yaDI2YTEsMSwwLDEsMSwwLDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIvPlxuICA8cGF0aCBkPSJNOS41NiwyMi41NGExLDEsMCwwLDEtLjctLjNMNC42MSwxOGw0LjI1''@;'; + put 'put ''LTQuMjRhMSwxLDAsMCwxLDEuNDEsMS40MUw3LjQ0LDE4bDIuODMsMi44M2ExLDEsMCwwLDEtLjcxLDEuNzFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIvPicpLEwuQ2xyU2hhcGVJbmRlbnQ9KDAsQi5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMxLjA2LDlo''@;'; + put 'put ''LTI2YTEsMSwwLDEsMSwwLTJoMjZhMSwxLDAsMSwxLDAsMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gIDxwYXRoIGQ9Ik0zMS4wNiwxNGgtMTdhMSwxLDAsMCwxLDAtMmgxN2ExLDEsMCwxLDEsMCwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xy''@;'; + put 'put ''LWktb3V0bGluZS1wYXRoLTIiLz5cbiAgPHBhdGggZD0iTTMxLjA2LDE5aC0xN2ExLDEsMCwwLDEsMC0yaDE3YTEsMSwwLDEsMSwwLDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIvPlxuICA8cGF0aCBkPSJNMzEuMDYsMjRoLTE3YTEsMSwwLDAsMSwwLTJo''@;'; + put 'put ''MTdhMSwxLDAsMSwxLDAsMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00Ii8+XG4gIDxwYXRoIGQ9Ik0zMS4wNiwyOWgtMjZhMSwxLDAsMCwxLDAtMmgyNmExLDEsMCwxLDEsMCwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUi''@;'; + put 'put ''Lz5cbiAgPHBhdGggZD0iTTUuNTYsMjIuNTRhMSwxLDAsMCwxLS43LTEuNzFMNy42OCwxOCw0Ljg2LDE1LjE3YTEsMSwwLDAsMSwwLTEuNDEsMSwxLDAsMCwxLDEuNDEsMEwxMC41MSwxOCw2LjI3LDIyLjI0QTEsMSwwLDAsMSw1LjU2LDIyLjU0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xy''@;'; + put 'put ''LWktb3V0bGluZS1wYXRoLTYiLz4nKSxMLkNsclNoYXBlU3RyaWtldGhyb3VnaD0oMCxCLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzIuODgsMTkuOTJoLTMwYTEsMSwwLDEsMSwwLTJoMzBhMSwxLDAsMCwxLDAsMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0x''@;'; + put 'put ''Ii8+XG4gIDxwYXRoIGQ9Ik03LjI3LDE1Ljg2YTEyLjksMTIuOSwwLDAsMSwxLjI5LS41MkE1LjY5LDUuNjksMCwwLDEsMTAuMzksMTVhMy4xOCwzLjE4LDAsMCwxLDIuNzUsMS4xMUE0LjQ0LDQuNDQsMCwwLDEsMTQsMTguODV2LjQ5YTEzLjgzLDEzLjgzLDAsMCwwLTQuMjktLjc0LDYuMTks''@;'; + put 'put ''Ni4xOSwwLDAsMC0yLjU5LjU0QTUsNSwwLDAsMCw1LjgxLDIwSDE1Ljg4VjE4Ljg1YTUuNjcsNS42NywwLDAsMC0xLjM3LTQsNS4xNiw1LjE2LDAsMCwwLTQtMS40OSwxMCwxMCwwLDAsMC0zLjkxLjg4Ljg3Ljg3LDAsMCwwLS40NCwxLjE4QS44NC44NCwwLDAsMCw3LjI3LDE1Ljg2WiIgY2xh''@;'; + put 'put ''c3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgPHBhdGggZD0iTTIxLDIwYTUuOTQsNS45NCwwLDAsMSwuNTQtMi4zMSw0LjM1LDQuMzUsMCwwLDEsMS41OC0xLjgzLDQuMjcsNC4yNywwLDAsMSw0LjU5LDAsNC40Nyw0LjQ3LDAsMCwxLDEuNTcsMS44M0E2LjEy''@;'; + put 'put ''LDYuMTIsMCwwLDEsMjkuODUsMjBoMmE3LjczLDcuNzMsMCwwLDAtLjc4LTMuMTksNiw2LDAsMCwwLTIuMTgtMi40NSw1Ljc0LDUuNzQsMCwwLDAtMy4xLS44OCw1LjM5LDUuMzksMCwwLDAtMi44LjczLDUuNTUsNS41NSwwLDAsMC0yLDIuMDVWMTBhLjg3Ljg3LDAsMCwwLS44Ni0uODZIMjBh''@;'; + put 'put ''Ljg3Ljg3LDAsMCwwLS44Ni44NlYyMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gIDxwYXRoIGQ9Ik0yOS42NywyMmE1LjYxLDUuNjEsMCwwLDEtLjM2LDEuMDcsNC40Nyw0LjQ3LDAsMCwxLTEuNTcsMS44NSw0LjMyLDQuMzIsMCwwLDEtNC41OSww''@;'; + put 'put ''LDQuMzUsNC4zNSwwLDAsMS0xLjU4LTEuODVBNS42NCw1LjY0LDAsMCwxLDIxLjIsMjJIMTkuMDl2NC4xM0EuODcuODcsMCwwLDAsMjAsMjdoLjJhLjg3Ljg3LDAsMCwwLC44Ni0uODZWMjQuNTFhNS41OCw1LjU4LDAsMCwwLDIsMi4wNiw1LjQ4LDUuNDgsMCwwLDAsMi44LjcyLDUuNjYsNS42''@;'; + put 'put ''NiwwLDAsMCwzLjEtLjg4QTUuODgsNS44OCwwLDAsMCwzMS4wOSwyNCw3LjA5LDcuMDksMCwwLDAsMzEuNzMsMjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIvPlxuICA8cGF0aCBkPSJNMTQsMjJ2Ljc2YTMuMzQsMy4zNCwwLDAsMS0xLjYyLDIsNS4zNCw1''@;'; + put 'put ''LjM0LDAsMCwxLTIuNjkuNzIsMy43OCwzLjc4LDAsMCwxLTIuMzYtLjcsMi4yNCwyLjI0LDAsMCwxLS45NC0xLjksMi4yOSwyLjI5LDAsMCwxLC4yLS45MUg0LjYyYTQsNCwwLDAsMC0uMTMsMSwzLjgzLDMuODMsMCwwLDAsMS4zNSwzLjA2QTUuMTUsNS4xNSwwLDAsMCw5LjMxLDI3LjIsNiw2''@;'; + put 'put ''LDAsMCwwLDEyLDI2LjU3YTQuNjIsNC42MiwwLDAsMCwyLTEuNzRWMjZhLjg2Ljg2LDAsMCwwLC44Ni44NkgxNWEuODYuODYsMCwwLDAsLjg2LS44NlYyMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01Ii8+JyksTC5DbHJTaGFwZVN1YnNjcmlwdD0oMCxCLmNs''@;'; + put 'put ''ckljb25TVkcpKCc8cGF0aCBkPSJNMTQuNTUsMThsNi44LDguNmExLjE3LDEuMTcsMCwwLDEtLjkyLDEuOWgwYTEuMTcsMS4xNywwLDAsMS0uOTItLjQ0TDEzLDE5LjkxLDYuNiwyOGExLjE3LDEuMTcsMCwwLDEtLjkyLjQ0aDBhMS4xNywxLjE3LDAsMCwxLS45Mi0xLjlMMTEuNTUsMThsLTYu''@;'; + put 'put ''OC04LjZhMS4xNywxLjE3LDAsMCwxLC45Mi0xLjloMEExLjE3LDEuMTcsMCwwLDEsNi42Myw4bDYuNDQsOC4xM0wxOS41LDhhMS4xNywxLjE3LDAsMCwxLC45Mi0uNDRoMGExLjE3LDEuMTcsMCwwLDEsLjkyLDEuOVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0x''@;'; + put 'put ''Ii8+XG4gIDxwYXRoIGQ9Ik0yMywzMS44LDI3LjQ5LDI4YTkuOSw5LjksMCwwLDAsMS44OC0yLjA1QTMuNDQsMy40NCwwLDAsMCwzMCwyNGEyLjM1LDIuMzUsMCwwLDAtLjM1LTEuMjcsMi40NCwyLjQ0LDAsMCwwLTEtLjg0LDIuOSwyLjksMCwwLDAtMS4yNi0uMjgsMy4zNiwzLjM2LDAsMCww''@;'; + put 'put ''LTEuODMuNSw1LjY0LDUuNjQsMCwwLDAtMS40OCwxLjQybC0xLS44MWE1LjExLDUuMTEsMCwwLDEsNC4zNi0yLjM3LDQuMzUsNC4zNSwwLDAsMSwyLC40NSwzLjQzLDMuNDMsMCwwLDEsMiwzLjE4LDQuNDUsNC40NSwwLDAsMS0uNjgsMi4zNSwxMC45LDEwLjksMCwwLDEtMi4yNCwyLjQ2bC0z''@;'; + put 'put ''LjI0LDIuODFIMzEuNVYzM0gyM1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+JyksTC5DbHJTaGFwZVN1cGVyc2NyaXB0PSgwLEIuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xNC40MywxOGw2Ljc5LDguNmExLjE3LDEuMTcsMCwwLDEtLjkyLDEuOWgwYTEu''@;'; + put 'put ''MTcsMS4xNywwLDAsMS0uOTItLjQ0bC02LjQ0LTguMTNMNi40NywyOGExLjE3LDEuMTcsMCwwLDEtLjkyLjQ0aDBhMS4xNywxLjE3LDAsMCwxLS45Mi0xLjlMMTEuNDMsMThsLTYuOC04LjZhMS4xNywxLjE3LDAsMCwxLC45Mi0xLjloMEExLjIsMS4yLDAsMCwxLDYuNTEsOGw2LjQzLDguMTNM''@;'; + put 'put ''MTkuMzgsOGExLjE3LDEuMTcsMCwwLDEsLjkyLS40NGgwYTEuMTcsMS4xNywwLDAsMSwuOTIsMS45WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgPHBhdGggZD0iTTIyLjg1LDE0LjQ3bDQuNTEtMy44NWE5LjM3LDkuMzcsMCwwLDAsMS44OC0yLDMu''@;'; + put 'put ''NDMsMy40MywwLDAsMCwuNTktMS44NiwyLjI3LDIuMjcsMCwwLDAtLjM2LTEuMjcsMi4zOCwyLjM4LDAsMCwwLS45NS0uODMsMi43NywyLjc3LDAsMCwwLTEuMjYtLjI5LDMuMzksMy4zOSwwLDAsMC0xLjgzLjUsNS44Myw1LjgzLDAsMCwwLTEuNDksMS40MmwtMS0uODFhNS4xMiw1LjEyLDAs''@;'; + put 'put ''MCwxLDQuMzYtMi4zNyw0LjM2LDQuMzYsMCwwLDEsMiwuNDUsMy40NywzLjQ3LDAsMCwxLDIsMy4xOEE0LjQ0LDQuNDQsMCwwLDEsMzAuNTgsOWExMS4xNCwxMS4xNCwwLDAsMS0yLjI0LDIuNDZMMjUuMSwxNC4zMWg2LjI4djEuMzNIMjIuODVaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHIt''@;'; + put 'put ''aS1vdXRsaW5lLXBhdGgtMiIvPicpLEwuVGV4dEVkaXRTaGFwZXM9e2JvbGQ6TC5DbHJTaGFwZUJvbGQsImJ1bGxldC1saXN0IjpMLkNsclNoYXBlQnVsbGV0TGlzdCwiY2hlY2tib3gtbGlzdCI6TC5DbHJTaGFwZUNoZWNrYm94TGlzdCwibnVtYmVyLWxpc3QiOkwuQ2xyU2hhcGVOdW1iZXJM''@;'; + put 'put ''aXN0LCJmb250LXNpemUiOkwuQ2xyU2hhcGVGb250U2l6ZSxpdGFsaWM6TC5DbHJTaGFwZUl0YWxpYywianVzdGlmeS10ZXh0IjpMLkNsclNoYXBlSnVzdGlmeVRleHQsImNlbnRlci10ZXh0IjpMLkNsclNoYXBlQ2VudGVyVGV4dCwiYWxpZ24tbGVmdC10ZXh0IjpMLkNsclNoYXBlQWxpZ25M''@;'; + put 'put ''ZWZ0VGV4dCwiYWxpZ24tcmlnaHQtdGV4dCI6TC5DbHJTaGFwZUFsaWduUmlnaHRUZXh0LCJwYWludC1yb2xsZXIiOkwuQ2xyU2hhcGVQYWludFJvbGxlciwiYmxvY2stcXVvdGUiOkwuQ2xyU2hhcGVCbG9ja1F1b3RlLHRleHQ6TC5DbHJTaGFwZVRleHQsdW5kZXJsaW5lOkwuQ2xyU2hhcGVV''@;'; + put 'put ''bmRlcmxpbmUsImFsaWduLWNlbnRlciI6TC5DbHJTaGFwZUFsaWduQ2VudGVyLCJhbGlnbi1sZWZ0IjpMLkNsclNoYXBlQWxpZ25MZWZ0LCJhbGlnbi1yaWdodCI6TC5DbHJTaGFwZUFsaWduUmlnaHQsImFsaWduLWJvdHRvbSI6TC5DbHJTaGFwZUFsaWduQm90dG9tLCJhbGlnbi1taWRkbGUi''@;'; + put 'put ''OkwuQ2xyU2hhcGVBbGlnbk1pZGRsZSwiYWxpZ24tdG9wIjpMLkNsclNoYXBlQWxpZ25Ub3AsbGFuZ3VhZ2U6TC5DbHJTaGFwZUxhbmd1YWdlLCJ0ZXh0LWNvbG9yIjpMLkNsclNoYXBlVGV4dENvbG9yLGhpZ2hsaWdodGVyOkwuQ2xyU2hhcGVIaWdobGlnaHRlcixpbmRlbnQ6TC5DbHJTaGFw''@;'; + put 'put ''ZUluZGVudCxvdXRkZW50OkwuQ2xyU2hhcGVPdXRkZW50LHN0cmlrZXRocm91Z2g6TC5DbHJTaGFwZVN0cmlrZXRocm91Z2gsc3Vic2NyaXB0OkwuQ2xyU2hhcGVTdWJzY3JpcHQsc3VwZXJzY3JpcHQ6TC5DbHJTaGFwZVN1cGVyc2NyaXB0fSwidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyYm''@;'; + put 'put ''d2luZG93Lmhhc093blByb3BlcnR5KCJDbGFyaXR5SWNvbnMiKSYmd2luZG93LkNsYXJpdHlJY29ucy5hZGQoTC5UZXh0RWRpdFNoYXBlcyl9LCIuL3Byb2plY3RzL2ljb25zL3NyYy9zaGFwZXMvdHJhdmVsLXNoYXBlcy50cyI6ZnVuY3Rpb24oSmUsTCxtZSl7InVzZSBzdHJpY3QiO09iamVj''@;'; + put 'put ''dC5kZWZpbmVQcm9wZXJ0eShMLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxMLlRyYXZlbFNoYXBlcz1MLkNsclNoYXBlT25Ib2xpZGF5PUwuQ2xyU2hhcGVUcmFpbGVyPUwuQ2xyU2hhcGVGZXJyeT1MLkNsclNoYXBlQ2FyYXZhbj1MLkNsclNoYXBlQ2FtcGVydmFuPUwuQ2xyU2hhcGVCb2F0''@;'; + put 'put ''PUwuQ2xyU2hhcGVCaWN5Y2xlPUwuQ2xyU2hhcGVNYXBNYXJrZXI9TC5DbHJTaGFwZUNvbXBhc3M9TC5DbHJTaGFwZU1hcD1MLkNsclNoYXBlQ2FyPUwuQ2xyU2hhcGVBaXJwbGFuZT1MLkNsclNoYXBlVHJ1Y2s9dm9pZCAwO3ZhciBCPW1lKCIuL3Byb2plY3RzL2ljb25zL3NyYy91dGlscy9k''@;'; + put 'put ''ZXNjcmlwdG9yLWNvbmZpZy50cyIpLEU9bWUoIi4vcHJvamVjdHMvaWNvbnMvc3JjL3V0aWxzL3N2Zy10YWctZ2VuZXJhdG9yLnRzIik7TC5DbHJTaGFwZVRydWNrPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJN''@;'; + put 'put ''MzAsMTJIMjZWN2ExLDEsMCwwLDAtMS0xSDNBMSwxLDAsMCwwLDIsN1YyNWExLDEsMCwwLDAsMSwxSDRWOEgyNFYxOS43YTYuNDUsNi40NSwwLDAsMSwxLjU2LS4yYy4xNSwwLC4yOSwwLC40NCwwVjE0aDRhMiwyLDAsMCwxLDIsMnYxSDI4djJoNHY1SDI5LjZhNC41NCw0LjU0LDAsMCwwLTgu''@;'; + put 'put ''MzQsMEgxNC40M2E0LjUsNC41LDAsMCwwLTQuMTctMi43NkE0LjM4LDQuMzgsMCwxLDAsMTQuNzIsMjZIMjFhNC40OSw0LjQ5LDAsMCwwLDguOTIsMEgzM2ExLDEsMCwwLDAsMS0xVjE2QTQsNCwwLDAsMCwzMCwxMlpNMTAuMjYsMjhhMi4zOCwyLjM4LDAsMSwxLDAtNC43NSwyLjM4LDIuMzgs''@;'; + put 'put ''MCwxLDEsMCw0Ljc1Wm0xNS4xNywwYTIuMzgsMi4zOCwwLDEsMSwyLjUtMi4zN0EyLjQ0LDIuNDQsMCwwLDEsMjUuNDMsMjhaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzAsMTJIMjZWN2ExLDEsMCwwLDAtMS0xSDNB''@;'; + put 'put ''MSwxLDAsMCwwLDIsN1YyNWExLDEsMCwwLDAsMSwxSDRWOEgyNFYyMS40OUE0LjQ1LDQuNDUsMCwwLDAsMjEuMjUsMjRIMTQuNDNhNC41LDQuNSwwLDAsMC00LjE3LTIuNzZBNC4zOCw0LjM4LDAsMSwwLDE0LjcyLDI2SDIxYTQuNDgsNC40OCwwLDAsMCw4LjkxLDBIMzRWMTZBNCw0LDAsMCww''@;'; + put 'put ''LDMwLDEyWk0xMC4yNiwyOGEyLjM4LDIuMzgsMCwxLDEsMC00Ljc1LDIuMzgsMi4zOCwwLDEsMSwwLDQuNzVabTE1LjE3LDBhMi4zOCwyLjM4LDAsMSwxLDIuNS0yLjM3QTIuNDQsMi40NCwwLDAsMSwyNS40MiwyOFpNMzIsMTdIMjZWMTRoNGEyLDIsMCwwLDEsMiwyWiIvPicpLEwuQ2xyU2hh''@;'; + put 'put ''cGVBaXJwbGFuZT0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTM1Ljc3LDguMTZhMi40MywyLjQzLDAsMCwwLTEuOS0yTDI4LDQuODdhNC41LDQuNSwwLDAsMC0zLjY1Ljc5TDcsMTguMywyLjE0LDE4LjFBMS44''@;'; + put 'put ''NiwxLjg2LDAsMCwwLC45MSwyMS40MWw1LDMuOTNjLjYuNzMsMSwuNTksMTAuOTMtNC44MmwuOTMsOS40MmExLjM2LDEuMzYsMCwwLDAsLjg1LDEuMTgsMS40MywxLjQzLDAsMCwwLC41NC4xLDEuNTQsMS41NCwwLDAsMCwxLS40MWwyLjM5LTIuMThhMS41MiwxLjUyLDAsMCwwLC40Ni0uODNM''@;'; + put 'put ''MjUuMiwxNS45YzMuNTctMiw2Ljk1LTMuODgsOS4zNi01LjI1QTIuNDMsMi40MywwLDAsMCwzNS43Nyw4LjE2Wm0tMi4yLjc1Yy0yLjUsMS40Mi02LDMuNDEtOS43Niw1LjQ3bC0uNDEuMjNMMjEuMDcsMjcuMjhsLTEuNDcsMS4zNEwxOC41LDE3LjMyLDE3LjE3LDE4QzEwLDIyLDcuNjEsMjMu''@;'; + put 'put ''MTYsNi43OSwyMy41MmwtNC4zLTMuNDEsNS4wOC4yMiwxOC0xMy4wNmEyLjUxLDIuNTEsMCwwLDEsMi0uNDVsNS44NSwxLjI2YS40My40MywwLDAsMSwuMzUuMzdBLjQyLjQyLDAsMCwxLDMzLjU3LDguOTFaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHIt''@;'; + put 'put ''aS1vdXRsaW5lLXBhdGgtMiIgZD0iTTcsMTIuNTRsMy41NiwxLDEuNjQtMS4xOS00LTEuMTZMMTAsMTAuMDlsNS40Ny0uMTYsMi4zLTEuNjdMMTAsOC41YTEuMjUsMS4yNSwwLDAsMC0uNy4xN0w2LjY3LDEwLjJBMS4yOCwxLjI4LDAsMCwwLDcsMTIuNTRaIi8+XG4gICAgICAgICAgICA8cGF0''@;'; + put 'put ''aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNNi4yNSwxMS41LDEyLDEzLjE2bDYuMzItNC41OS05LjA3LjI2QS41Mi41MiwwLDAsMCw5LDguOTFMNi4xMywxMC41NkEuNTEuNTEsMCwwLDAsNi4yNSwxMS41WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9''@;'; + put 'put ''ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgZD0iTTM0LjUyLDYuMzYsMjguMjIsNWEzLjc4LDMuNzgsMCwwLDAtMy4wNy42N0w2LjEyLDE5LjVsLTQuNTctLjJhMS4yNSwxLjI1LDAsMCwwLS44MywyLjIybDQuNDUsMy41M2EuNTUuNTUsMCwwLDAsLjUzLjA5YzEuMjctLjQ5LDYt''@;'; + put 'put ''MywxMS41OS02LjA3bDEuMTIsMTEuNTFhLjU1LjU1LDAsMCwwLC45LjM3bDIuNS0yLjA4YS43Ni43NiwwLDAsMCwuMjYtLjQ1bDIuMzctMTMuMjljNC0yLjIyLDcuODItNC4zNywxMC41MS01Ljg5QTEuNTUsMS41NSwwLDAsMCwzNC41Miw2LjM2WiIvPicpLEwuQ2xyU2hhcGVDYXI9KDAsRS5j''@;'; + put 'put ''bHJJY29uU1ZHKSgnPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIHg9IjE1IiB5PSIxNyIgd2lkdGg9IjMiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBk''@;'; + put 'put ''PSJNMjYuNDUsMTQuMTdBMjIuMSwyMi4xLDAsMCwwLDE5LjM4LDdhOS42NCw5LjY0LDAsMCwwLTktLjcsOC42LDguNiwwLDAsMC00LjgyLDYuNGMtLjA4LjQ3LS4xNC45Mi0uMiwxLjM2QTQsNCwwLDAsMCwyLDE4djYuMTNhMiwyLDAsMCwwLDIsMlYyMEg0VjE4YTIsMiwwLDAsMSwyLTJIMjQu''@;'; + put 'put ''NzNBNy4yOCw3LjI4LDAsMCwxLDMyLDIzLjI3VjI0aC0yYTQuNTMsNC41MywwLDEsMCwuMzMsMkgzMmEyLDIsMCwwLDAsMi0ydi0uNzNBOS4yOCw5LjI4LDAsMCwwLDI2LjQ1LDE0LjE3Wk0xMSwxNEg2LjkzYzAtLjMxLjA5LS42My4xNS0xQTYuNTIsNi41MiwwLDAsMSwxMSw4aDBabTIsMFY3''@;'; + put 'put ''LjU4YTguMTcsOC4xNywwLDAsMSw1LjM2LDEuMTZBMTksMTksMCwwLDEsMjMuOSwxNFpNMjUuOCwyOC4zOGEyLjUsMi41LDAsMSwxLDIuNS0yLjVBMi41LDIuNSwwLDAsMSwyNS44LDI4LjM4WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91''@;'; + put 'put ''dGxpbmUtcGF0aC0zIiBkPSJNMTQuMTcsMjRhNC41Myw0LjUzLDAsMSwwLC4zMywyaDUuM2MwLS4wOCwwLS4xNywwLS4yNUE2LDYsMCwwLDEsMjAsMjRaTTEwLDI4LjM4YTIuNSwyLjUsMCwxLDEsMi41LTIuNUEyLjUsMi41LDAsMCwxLDEwLDI4LjM4WiIvPlxuICAgICAgICAgICAgICAgIDxw''@;'; + put 'put ''YXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0yNi44NywxNC4yOEEyMi4zNiwyMi4zNiwwLDAsMCwxOS42NSw2LjlhOS42NCw5LjY0LDAsMCwwLTktLjcsOC42LDguNiwwLDAsMC00LjgyLDYuNGMtLjA4LjQ5LS4xNSwxLS4yMSwxLjRoLTFBMi41OSwyLjU5''@;'; + put 'put ''LDAsMCwwLDIsMTYuNTl2OC41NWEuODYuODYsMCwwLDAsLjg2Ljg2SDQuNTljMC0uMTMsMC0uMjYsMC0uMzlhNS43Nyw1Ljc3LDAsMCwxLDcuNzEtNS40NWwtMSwxYTQuNTYsNC41NiwwLDAsMC00LjM0LDEuNTgsMywzLDAsMCwwLS42My45M0E0LjUsNC41LDAsMSwwLDE0LjgyLDI2aDUuNDhj''@;'; + put 'put ''MC0uMTMsMC0uMjYsMC0uMzlBNS43Nyw1Ljc3LDAsMCwxLDI4LDIwLjE2bC0xLDFhNC41Niw0LjU2LDAsMCwwLTQuMzQsMS41OCwzLDMsMCwwLDAtLjYzLjkzQTQuNSw0LjUsMCwxLDAsMzAuNTMsMjZoMi42MWEuODYuODYsMCwwLDAsLjg2LS44NlYyMy4zNkE5LjM5LDkuMzksMCwwLDAsMjYu''@;'; + put 'put ''ODcsMTQuMjhaTTEyLDE0SDhjMC0uMzUuMS0uNzEuMTYtMS4wN2E2LjUyLDYuNTIsMCwwLDEsMy44Ny01aDBaTTEwLjM2LDI4LjM2YTIuNSwyLjUsMCwxLDEsMi41LTIuNUEyLjUsMi41LDAsMCwxLDEwLjM2LDI4LjM2Wk0xOSwxOUgxNlYxN2gzWm0tNi01VjcuNDdhOC4xNiw4LjE2LDAsMCwx''@;'; + put 'put ''LDUuNCwxLjE1QTE5LjE1LDE5LjE1LDAsMCwxLDI0LDE0Wk0yNi4wNiwyOC4zNmEyLjUsMi41LDAsMSwxLDIuNS0yLjVBMi41LDIuNSwwLDAsMSwyNi4wNiwyOC4zNloiLz4nKSxMLkNsclNoYXBlTWFwPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1p''@;'; + put 'put ''LW91dGxpbmUtcGF0aC0xIiBkPSJNMzMuNTksNi4xOUExLDEsMCwwLDAsMzIuNyw2TDIzLjA5LDksMTMuNDYsNC4xMWExLDEsMCwwLDAtLjg0LDBMMi42Miw4LjJBMSwxLDAsMCwwLDIsOS4xM1YyOS42MWExLDEsMCwwLDAsMS4zOC45MkwxMywyNi41OGw5LjU5LDQuOTJhMSwxLDAsMCwwLC40''@;'; + put 'put ''Ni4xMSwxLDEsMCwwLDAsLjMsMGwxMC0zLjEyYTEsMSwwLDAsMCwuNy0xVjdBMSwxLDAsMCwwLDMzLjU5LDYuMTlaTTMyLDI2Ljc1bC04LjMyLDIuNlYyNy4wNmgtMS42djJsLTguNC00LjMxVjIzLjA2aC0xLjZ2MS43Mkw0LDI4LjExVjkuNzlsOC4wOC0zLjMzVjguODFoMS42VjYuNDdsOC40''@;'; + put 'put ''LDQuM3YyLjFoMS42VjExTDMyLDguMzZaIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIHg9IjIyLjA4IiB5PSIxNS4wNiIgd2lkdGg9IjEuNiIgaGVpZ2h0PSIzLjgxIi8+XG4gICAgICAgICAgICAgICAgPHJlY3Qg''@;'; + put 'put ''Y2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIHg9IjIyLjA4IiB5PSIyMS4wNiIgd2lkdGg9IjEuNiIgaGVpZ2h0PSIzLjgxIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIHg9IjEyLjA4''@;'; + put 'put ''IiB5PSIxMS4wNiIgd2lkdGg9IjEuNiIgaGVpZ2h0PSIzLjgxIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIHg9IjEyLjA4IiB5PSIxNy4xMyIgd2lkdGg9IjEuNiIgaGVpZ2h0PSIzLjc1Ii8+XG4gICAgICAgICAg''@;'; + put 'put ''ICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTMzLjMxLDcuMzUsMjUsOS45NFYxNEgyM1YxMC4yOUwxNCw1LjY4VjlIMTJWNS4yN2wtOS42Nyw0QS41My41MywwLDAsMCwyLDkuNzVWMzAuNDVhLjUzLjUzLDAsMCwwLC43NC40OUwxMiwyNy4x''@;'; + put 'put ''MlYyM2gydjQuNTNsOSw0LjYxVjI4aDJ2My43OWw4LjYzLTIuN2EuNTMuNTMsMCwwLDAsLjM3LS41MVY3Ljg2QS41My41MywwLDAsMCwzMy4zMSw3LjM1Wk0xNCwyMUgxMlYxN2gyWm0wLTZIMTJWMTFoMlpNMjUsMjZIMjNWMjJoMlptMC02SDIzVjE2aDJaIi8+JyksTC5DbHJTaGFwZUNvbXBh''@;'; + put 'put ''c3M9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTIwLjgyLDE1LjMxaDBMMTAuNDYsOWMtLjQ2LS4yNi0xLjExLjM3LS44Ni44NGw2LjE1LDEwLjU2LDEwLjU2LDYuMTVhLjY2LjY2LDAsMCwwLC44NC0uODZabS00LDQsMy0zLDQuNTUsNy40NFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNs''@;'; + put 'put ''ci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlptMSwyOS45NVYyOS41M0gxN3YyLjQyQTE0LDE0LDAsMCwxLDQuMDUsMTlINi40N1YxN0g0LjA1QTE0LDE0LDAsMCwxLDE3LDQuMDVWNi40''@;'; + put 'put ''N2gyVjQuMDVBMTQsMTQsMCwwLDEsMzEuOTUsMTdIMjkuNTN2MmgyLjQyQTE0LDE0LDAsMCwxLDE5LDMxLjk1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMkExNiwxNiwwLDEsMCwzNCwxOCwxNiwxNiww''@;'; + put 'put ''LDAsMCwxOCwyWk02LjQ3LDE5SDQuMDVjMC0uMzMtLjA1LS42Ni0uMDUtMXMwLS42Ny4wNS0xSDYuNDdaTTE3LDQuMDVjLjMzLDAsLjY2LS4wNSwxLS4wNXMuNjcsMCwxLC4wNVY2LjQ3SDE3Wm0yLDI3LjljLS4zMywwLS42Ni4wNS0xLC4wNXMtLjY3LDAtMS0uMDVWMjkuNTNoMlptOC01LjU4''@;'; + put 'put ''YS41OS41OSwwLDAsMS0uNjkuMTZMMTUuNzUsMjAuMzgsOS42LDkuODJjLS4yNS0uNDcuMzktMS4xLjg2LS44NGwxMC4zNyw2LjMzaDBsNi4zMywxMC4zN0EuNTkuNTksMCwwLDEsMjcsMjYuMzdaTTI5LjUzLDE5VjE3aDIuNDJjMCwuMzMuMDUuNjYuMDUsMXMwLC42Ny0uMDUsMVoiIGNsYXNz''@;'; + put 'put ''PSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cG9seWdvbiBwb2ludHM9IjE2Ljc3IDE5LjM1IDI0LjM1IDIzLjc3IDE5LjggMTYuMzMgMTYuNzcgMTkuMzUiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+JyksTC5DbHJT''@;'; + put 'put ''aGFwZU1hcE1hcmtlcj0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTE4LDYuNzJhNS43Myw1LjczLDAsMSwwLDUuNzMsNS43M0E1LjczLDUuNzMsMCwwLDAsMTgsNi43MlptMCw5LjQ2YTMuNzMsMy43MywwLDEs''@;'; + put 'put ''MSwzLjczLTMuNzNBMy43MywzLjczLDAsMCwxLDE4LDE2LjE3WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMTgsMkExMS43OSwxMS43OSwwLDAsMCw2LjIyLDEzLjczYzAsNC42NywyLjYyLDguNTgsNC41''@;'; + put 'put ''NCwxMS40M2wuMzUuNTJhOTkuNjEsOTkuNjEsMCwwLDAsNi4xNCw4bC43Ni44OS43Ni0uODlhOTkuODIsOTkuODIsMCwwLDAsNi4xNC04bC4zNS0uNTNjMS45MS0yLjg1LDQuNTMtNi43NSw0LjUzLTExLjQyQTExLjc5LDExLjc5LDAsMCwwLDE4LDJaTTIzLjU5LDI0bC0uMzYuNTNjLTEuNzIs''@;'; + put 'put ''Mi41OC00LDUuNDctNS4yMyw2LjktMS4xOC0xLjQzLTMuNTEtNC4zMi01LjIzLTYuOUwxMi40MiwyNGMtMS43Ny0yLjY0LTQuMi02LjI1LTQuMi0xMC4zMWE5Ljc4LDkuNzgsMCwxLDEsMTkuNTYsMEMyNy43OCwxNy43OSwyNS4zNiwyMS40LDIzLjU5LDI0WiIvPlxuICAgICAgICAgICAgICAg''@;'; + put 'put ''IDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgZD0iTTE4LDYuNzJhNS43Myw1LjczLDAsMSwwLDUuNzMsNS43M0E1LjczLDUuNzMsMCwwLDAsMTgsNi43MlptMCw5LjQ2YTMuNzMsMy43MywwLDEsMSwzLjczLTMuNzNBMy43''@;'; + put 'put ''MywzLjczLDAsMCwxLDE4LDE2LjE3WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgZD0iTTI5Ljc3LDEzLjQ5YTcuNDksNy40OSwwLDAsMS0yLS4zM2MwLC4xOSwwLC4zOCwwLC41Nyww''@;'; + put 'put ''LDQuMDYtMi40Miw3LjY3LTQuMTksMTAuMzFsLS4zNi41M2MtMS43MiwyLjU4LTQsNS40Ny01LjIzLDYuOS0xLjE4LTEuNDMtMy41MS00LjMyLTUuMjMtNi45TDEyLjQyLDI0Yy0xLjc3LTIuNjQtNC4yLTYuMjUtNC4yLTEwLjMxQTkuNzcsOS43NywwLDAsMSwyMi41Niw1LjA5YTcuNDUsNy40''@;'; + put 'put ''NSwwLDAsMSwuNTItMkExMS43NSwxMS43NSwwLDAsMCw2LjIyLDEzLjczYzAsNC42NywyLjYyLDguNTgsNC41NCwxMS40M2wuMzUuNTJhOTkuNjEsOTkuNjEsMCwwLDAsNi4xNCw4bC43Ni44OS43Ni0uODlhOTkuODIsOTkuODIsMCwwLDAsNi4xNC04bC4zNS0uNTNjMS45MS0yLjg1LDQuNTMt''@;'; + put 'put ''Ni43NSw0LjUzLTExLjQyQzI5Ljc4LDEzLjY1LDI5Ljc3LDEzLjU3LDI5Ljc3LDEzLjQ5WiIvPlxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2''@;'; + put 'put ''IiByPSI1Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTE4LDJBMTEuNzksMTEuNzksMCwwLDAsNi4yMiwxMy43M2MwLDQuNjcsMi42Miw4LjU4LDQuNTQsMTEuNDNsLjM1LjUyYTk5LjYxLDk5LjYxLDAsMCwwLDYu''@;'; + put 'put ''MTQsOGwuNzYuODkuNzYtLjg5YTk5LjgyLDk5LjgyLDAsMCwwLDYuMTQtOGwuMzUtLjUzYzEuOTEtMi44NSw0LjUzLTYuNzUsNC41My0xMS40MkExMS43OSwxMS43OSwwLDAsMCwxOCwyWm0wLDE3YTYuNTYsNi41NiwwLDEsMSw2LjU2LTYuNTZBNi41Niw2LjU2LDAsMCwxLDE4LDE5WiIvPlxu''@;'; + put 'put ''ICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgY3g9IjE4IiBjeT0iMTIuNDQiIHI9IjMuNzMiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJh''@;'; + put 'put ''ZGdlZCIgZD0iTTI5Ljc3LDEzLjQ5QTcuNDcsNy40NywwLDAsMSwyNC4zOCwxMWE2LjU4LDYuNTgsMCwxLDEtMS42MS0zLDcuNDIsNy40MiwwLDAsMSwuMzEtNC44NEExMS43NSwxMS43NSwwLDAsMCw2LjIyLDEzLjczYzAsNC42NywyLjYyLDguNTgsNC41NCwxMS40M2wuMzUuNTJhOTkuNjEs''@;'; + put 'put ''OTkuNjEsMCwwLDAsNi4xNCw4bC43Ni44OS43Ni0uODlhOTkuODIsOTkuODIsMCwwLDAsNi4xNC04bC4zNS0uNTNjMS45MS0yLjg1LDQuNTMtNi43NSw0LjUzLTExLjQyQzI5Ljc4LDEzLjY1LDI5Ljc3LDEzLjU3LDI5Ljc3LDEzLjQ5WiIvPlxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xh''@;'; + put 'put ''c3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQiIGN4PSIxOCIgY3k9IjEyLjQ0IiByPSIzLjczIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWJhZGdlZCBjbHIt''@;'; + put 'put ''aS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPicpLEwuQ2xyU2hhcGVCaWN5Y2xlPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik04LjUsMjkuNjVBNi41MSw2LjUxLDAsMCwxLDIsMjMuMTVhNi4zOSw2LjM5LDAsMCwxLDYuNS02LjM2QTYuMzksNi4zOSwwLDAsMSwxNSwyMy4xNSw2''@;'; + put 'put ''LjUxLDYuNTEsMCwwLDEsOC41LDI5LjY1Wm0wLTExYTQuNSw0LjUsMCwxLDAsNC41LDQuNUE0LjUxLDQuNTEsMCwwLDAsOC41LDE4LjY1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTI3LjUsMjkuNjVhNi41MSw2LjUxLDAsMCwxLTYu''@;'; + put 'put ''NS02LjUsNi41LDYuNSwwLDAsMSwxMywwQTYuNTEsNi41MSwwLDAsMSwyNy41LDI5LjY1Wm0wLTExYTQuNSw0LjUsMCwxLDAsNC41LDQuNUE0LjUxLDQuNTEsMCwwLDAsMjcuNSwxOC42NVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0x''@;'; + put 'put ''OSwyNC42Nkg4YTEsMSwwLDAsMS0uODktMS40NWw1LTEwLDEuNzguOUw5LjYyLDIyLjczSDE5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+PHJlY3QgeD0iMTMiIHk9IjEyLjY4IiB3aWR0aD0iMTEiIGhlaWdodD0iMS45MSIgY2xhc3M9ImNsci1pLW91''@;'; + put 'put ''dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+PHBhdGggZD0iTTI4LDI0LjY2YTEsMSwwLDAsMS0uOTQtLjY2TDIyLjI5LDEwLjY2SDIwYTEsMSwwLDAsMS0xLTEsMSwxLDAsMCwxLDEtLjkzaDNhLjk0Ljk0LDAsMCwxLC45NC42bDUsMTRhMSwxLDAsMCwxLS42LDEuMjdBMSwxLDAsMCwx''@;'; + put 'put ''LDI4LDI0LjY2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIC8+PHBhdGggZD0iTTEzLDE0LjY2YTEsMSwwLDAsMS0uNzEtLjI5bC0xLjctMS43MUg4YTEsMSwwLDAsMS0xLTEsLjk0Ljk0LDAsMCwxLDEtMWgzYTEuMDgsMS4wOCwwLDAsMSwuNzUuMjdsMiwy''@;'; + put 'put ''YTEsMSwwLDAsMSwwLDEuNDFBMSwxLDAsMCwxLDEzLDE0LjY2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIC8+PHBhdGggZD0iTTE1LDIxLjljLTAuMi0yLTEuMi0zLjgtMi45LTQuOWwtMi41LDQuOUgxNXoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1z''@;'; + put 'put ''b2xpZC1wYXRoLTEiIC8+PHBhdGggZD0iTTcuMiwyMy40Yy0wLjItMC4zLTAuMi0wLjcsMC0xbDMuMi02LjNjLTAuNi0wLjItMS4yLTAuMi0xLjgtMC4yQzUsMTUuOSwyLDE4LjgsMiwyMi40YzAsMy42LDIuOSw2LjUsNi41LDYuNVxuXHRjMywwLDUuNi0yLjEsNi4zLTVIOEM3LjcsMjMuOSw3''@;'; + put 'put ''LjMsMjMuNyw3LjIsMjMuNHoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+PHBhdGggZD0iTTE5LDIxLjloLTRjMCwwLjIsMCwwLjMsMCwwLjVjMCwwLjUtMC4xLDEtMC4yLDEuNUgxOVYyMS45eiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgt''@;'; + put 'put ''MyIgLz48cGF0aCBkPSJNMjcuNSwxNS45Yy0wLjMsMC0wLjYsMC0wLjksMC4xbDIuNCw2LjZjMC4yLDAuNS0wLjEsMS4xLTAuNiwxLjNjLTAuMSwwLTAuMiwwLjEtMC4zLDAuMWMtMC40LDAtMC44LTAuMy0wLjktMC43bC0yLjQtNi43XG5cdGMtMy4yLDEuNi00LjUsNS41LTMsOC43YzEuNiwz''@;'; + put 'put ''LjIsNS41LDQuNSw4LjcsM2MzLjItMS42LDQuNS01LjUsMy04LjdDMzIuMiwxNy4zLDMwLDE1LjksMjcuNSwxNS45eiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNCIgLz48cGF0aCBkPSJNMjQuNywxNi43YzAuNi0wLjMsMS4zLTAuNSwxLjktMC42bC0yLjctNy40QzIz''@;'; + put 'put ''LjgsOC4yLDIzLjQsOCwyMyw3LjloLTNjLTAuNiwwLTEsMC41LTEsMS4xYzAsMC41LDAuNCwwLjksMSwwLjlcblx0YzAsMCwwLDAsMCwwaDIuM2wwLjcsMmgtOS42bC0xLjctMS43QzExLjUsMTAuMSwxMS4zLDEwLDExLDEwSDhjLTAuNiwwLTEsMC40LTEsMXMwLjQsMSwxLDFoMi42bDEuMiwx''@;'; + put 'put ''LjJsLTEuNSwzXG5cdGMwLjYsMC4yLDEuMywwLjUsMS44LDAuOGwxLjYtMy4yaDEwTDI0LjcsMTYuN3oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTUiIC8+JyksTC5DbHJTaGFwZUJvYXQ9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI5LjEsMjcuMUMyOCwyNywy''@;'; + put 'put ''Ni45LDI3LjQsMjYsMjguMmMtMS4xLDEuMS0yLjksMS4xLTQuMSwwYy0xLTAuNy0yLjEtMS4xLTMuMy0xLjFjLTEuMi0wLjEtMi40LDAuMy0zLjMsMS4xXG5cdFx0QzE0LjcsMjguNywxNCwyOSwxMy4yLDI5cy0xLjUtMC4zLTIuMS0wLjhjLTEtMC44LTIuMi0xLjItMy40LTEuMnMtMi40LDAu''@;'; + put 'put ''NC0zLjQsMS4yQzMuNywyOC43LDIuOCwyOSwyLDI5djJcblx0XHRjMS4zLDAuMSwyLjYtMC4zLDMuNi0xLjJDNi4yLDI5LjMsNy4xLDI5LDcuOSwyOWMwLjcsMCwxLjUsMC4zLDIuMSwwLjhjMS44LDEuNiw0LjYsMS42LDYuNSwwYzAuNi0wLjUsMS4zLTAuOCwyLjEtMC44XG5cdFx0YzAuNyww''@;'; + put 'put ''LDEuNCwwLjMsMiwwLjhjMS45LDEuNiw0LjYsMS42LDYuNSwwYzAuNS0wLjUsMS4zLTAuOCwyLTAuOGMwLjcsMCwxLjQsMC4zLDEuOSwwLjhjMC45LDAuNywxLjksMS4xLDMsMS4ydi0yXG5cdFx0Yy0xLDAtMS4yLTAuNC0xLjctMC44QzMxLjQsMjcuNSwzMC4zLDI3LjEsMjkuMSwyNy4xeiIg''@;'; + put 'put ''Y2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTYsMjNjMC0wLjYsMC41LTEsMS4xLTFIMzJsLTMuNSwzLjFoMC4yYzAuOCwwLDEuNiwwLjIsMi4yLDAuNWwyLjUtMi4ybDAuMi0wLjJjMC43LTAuOCwwLjYtMi4xLTAuMi0yLjhcblx0XHRDMzMs''@;'; + put 'put ''MjAuMiwzMi42LDIwLDMyLjEsMjBoLTI1Yy0xLjcsMC0zLDEuMy0zLDN2My4yYzAuNS0wLjUsMS4yLTAuOCwxLjktMS4xVjIzeiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTguOSwxOUgxNXYtNy44YzAtMC42LTAuMy0xLjItMC44LTEu''@;'; + put 'put ''NkMxMy4zLDguOSwxMiw5LjEsMTEuNCwxMGwtNC4xLDUuOWMtMC40LDAuNi0wLjQsMS40LTAuMSwyLjFDNy41LDE4LjYsOC4yLDE5LDguOSwxOVxuXHRcdHogTTEzLjEsMTEuMkwxMywxN0g4LjlMMTMuMSwxMS4yeiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMi''@;'; + put 'put ''IC8+PHBhdGggZD0iTTI2LDE4YzAuNC0wLjYsMC40LTEuNCwwLTJMMTkuNyw1LjZjLTAuNC0wLjYtMS0xLTEuNy0xYy0xLjEsMC0yLDAuOS0yLDJWMTloOC4zQzI1LDE5LDI1LjcsMTguNiwyNiwxOHogTTE3LjksNi42XG5cdFx0bDYuNCwxMC41aC02LjRWNi42eiIgY2xhc3M9ImNsci1pLW91''@;'; + put 'put ''dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+PHBhdGggZD0iTTM0LDMxYy0xLjEtMC4xLTIuMS0wLjUtMy0xLjJjLTAuNS0wLjUtMS4yLTAuOC0yLTAuOGMtMC43LDAtMS41LDAuMy0yLDAuOGMtMC45LDAuOC0yLDEuMS0zLjEsMS4xYy0xLjIsMC0yLjQtMC40LTMuMy0xLjFcblx0Yy0x''@;'; + put 'put ''LjItMS4xLTMtMS4xLTQuMSwwYy0wLjksMC44LTIuMSwxLjItMy40LDEuMmMtMS4yLDAtMi4zLTAuNC0zLjItMS4yYy0wLjYtMC41LTEuMy0wLjgtMi0wLjhjLTAuOCwwLTEuNywwLjMtMi4zLDAuOFxuXHRjLTEsMC44LTIuMywxLjItMy41LDEuMVYyOWMwLjgsMCwxLjctMC4zLDIuMy0wLjlj''@;'; + put 'put ''MS0wLjgsMi4yLTEuMiwzLjQtMS4xYzEuMiwwLDIuNCwwLjQsMy4zLDEuMmMxLjIsMS4xLDMsMS4xLDQuMiwwXG5cdGMxLjktMS42LDQuNy0xLjYsNi41LDBjMS4yLDEuMSwzLDEuMSw0LjEsMGMwLjktMC44LDIuMS0xLjIsMy4zLTEuMmMxLjEsMCwyLjIsMC40LDMsMS4yQzMyLjgsMjguNywz''@;'; + put 'put ''MywyOSwzNCwyOUwzNCwzMXoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+PHBhdGggZD0iTTQuMSwyNi4yYzAuNi0wLjUsMS4yLTAuOCwxLjktMVYyM2MwLTAuNiwwLjQtMS4xLDEtMS4xaDI1TDI4LjQsMjVoMC4yYzAuOCwwLDEuNiwwLjIsMi4yLDAuNWwyLjUt''@;'; + put 'put ''Mi4ybDAuMi0wLjJcblx0YzAuNy0wLjksMC41LTIuMS0wLjQtMi44QzMyLjksMjAuMSwzMi40LDIwLDMyLDIwSDdjLTEuNywwLTMsMS4zLTMsM0w0LjEsMjYuMkw0LjEsMjYuMnoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+PHBhdGggZD0iTTE0LjksMTguOUg4''@;'; + put 'put ''LjljLTEuMSwwLTItMC45LTItMmMwLTAuNCwwLjEtMC44LDAuNC0xLjJsNC4xLTUuOGMwLjYtMC45LDEuOS0xLjEsMi44LTAuNWMwLjUsMC40LDAuOCwxLDAuOCwxLjZWMTguOXoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIC8+PHBhdGggZD0iTTI0LjMsMTguOUgx''@;'; + put 'put ''NlY2LjRjMC0xLjEsMC45LTIsMi0yYzAuNywwLDEuMywwLjQsMS43LDFMMjYsMTUuOGMwLjYsMSwwLjIsMi4yLTAuNywyLjdDMjUsMTguNywyNC42LDE4LjgsMjQuMywxOC45XG5cdEwyNC4zLDE4Ljl6IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC00IiAvPicpLEwuQ2xy''@;'; + put 'put ''U2hhcGVDYW1wZXJ2YW49KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTkuNSwyNEM5LjUsMjQsOS41LDI0LDkuNSwyNEM3LjYsMjQsNiwyNS42LDYsMjcuNWMwLDAsMCwwLDAsMEM2LDI5LjQsNy42LDMxLDkuNSwzMWMxLjksMCwzLjUtMS42LDMuNS0zLjVcblx0XHRTMTEuNCwyNCw5LjUs''@;'; + put 'put ''MjR6IE05LjUsMjlDOC43LDI5LDgsMjguMyw4LDI3LjVTOC43LDI2LDkuNSwyNnMxLjUsMC43LDEuNSwxLjVTMTAuMywyOSw5LjUsMjl6IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMjMuNSwyNEMyMy41LDI0LDIzLjUsMjQsMjMuNSwy''@;'; + put 'put ''NGMtMS45LDAtMy41LDEuNi0zLjUsMy41YzAsMCwwLDAsMCwwYzAsMS45LDEuNSwzLjUsMy41LDMuNWMxLjksMCwzLjUtMS42LDMuNS0zLjVcblx0XHRTMjUuNCwyNCwyMy41LDI0eiBNMjMuNSwyOWMtMC44LDAtMS41LTAuNy0xLjUtMS41czAuNy0xLjUsMS41LTEuNXMxLjUsMC43LDEuNSwx''@;'; + put 'put ''LjVTMjQuMywyOSwyMy41LDI5eiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTMzLDIwLjFWMjBoLTAuMWwtMy41LTUuNUMzMSwxMy42LDMyLDEyLDMyLDEwLjNWOS43QzMyLDcuMSwyOS45LDUsMjcuMyw1aC04LjVjLTEuOSwwLTMuNywx''@;'; + put 'put ''LjItNC40LDNINWMtMS43LDAtMywxLjMtMywzXG5cdFx0djE3aDJWMTFjMC0wLjYsMC40LTEsMS0xaDEwLjlMMTYsOS4yQzE2LjMsNy45LDE3LjQsNywxOC43LDdoOC41QzI4LjgsNywzMCw4LjIsMzAsOS43djAuNWMwLDEuNS0xLjIsMi43LTIuNywyLjdIMjR2OWg3Ljhcblx0XHRsMC4yLDAu''@;'; + put 'put ''M1YyNWMwLDAuNi0wLjQsMS0xLDFoLTJ2MmgyYzEuNywwLDMtMS4zLDMtM3YtMy4zTDMzLDIwLjF6IE0yNiwyMHYtNWgxLjVsMy4xLDVIMjZ6IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz48cmVjdCB4PSIxOSIgeT0iOSIgd2lkdGg9IjgiIGhlaWdodD0i''@;'; + put 'put ''MiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+PHBvbHlnb24gcG9pbnRzPSIyMCwyMiAyMiwyMiAyMiwxMyAxNSwxMyAxNSwyOCAxNywyOCAxNywxNSAyMCwxNSBcdCIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIC8+PHBh''@;'; + put 'put ''dGggZD0iTTYsMjBoN3YtN0g2VjIweiBNOCwxNWgzdjNIOFYxNXoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02IiAvPjxwYXRoIGQ9Ik05LjUsMjRDNy42LDI0LDYsMjUuNiw2LDI3LjVTNy42LDMxLDkuNSwzMWMwLDAsMCwwLDAsMGMxLjksMCwzLjUtMS42LDMu''@;'; + put 'put ''NS0zLjVjMCwwLDAtMC4xLDAtMC4xQzEzLDI1LjUsMTEuNCwyNCw5LjUsMjR6IlxuXHRcdCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPjxjaXJjbGUgY3g9IjIzLjUiIGN5PSIyNy41IiByPSIzLjUiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRo''@;'; + put 'put ''LTIiIC8+PHBhdGggZD0iTTI5LjUsMTQuNUMzMSwxMy42LDMyLDEyLDMyLDEwLjJWOS43YzAsMCwwLDAsMC0wLjFDMzIsNywyOS45LDUsMjcuMyw1aC04LjVjLTEuOSwwLTMuNywxLjItNC40LDNINWMtMS43LDAtMywxLjMtMywzdjE3XG5cdFx0aDJWMTFjMC0wLjYsMC40LTEsMS0xaDEwLjlM''@;'; + put 'put ''MTYsOS4yQzE2LjMsNy45LDE3LjQsNywxOC43LDdoOC41QzI4LjgsNywzMCw4LjIsMzAsOS43djAuNWMwLDEuNS0xLjIsMi43LTIuNywyLjdIMjdoLTN2OWg3Ljhcblx0XHRsMC4yLDAuM1YyNWMwLDAuNi0wLjQsMS0xLDFoLTJ2MmgyYzEuNywwLDMtMS4zLDMtM3YtMy4zTDI5LjUsMTQuNXoi''@;'; + put 'put ''IGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIC8+PHJlY3QgeD0iMTkiIHk9IjkiIHdpZHRoPSI3LjkiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNCIgLz48cG9seWdvbiBwb2ludHM9IjIwLDIyIDIxLjksMjIgMjEuOSwxMyAx''@;'; + put 'put ''NSwxMyAxNSwyOCAxNi45LDI4IDE2LjksMTUgMjAsMTUgXHQiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTUiIC8+PHJlY3QgeD0iNiIgeT0iMTMiIHdpZHRoPSI2LjkiIGhlaWdodD0iNyIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNiIgLz4nKSxM''@;'; + put 'put ''LkNsclNoYXBlQ2FyYXZhbj0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTMuNSwyMUMxMSwyMSw5LDIzLDksMjUuNXMyLDQuNSw0LjUsNC41YzIuNSwwLDQuNS0yLDQuNS00LjVDMTgsMjMsMTYsMjEsMTMuNSwyMXogTTEzLjUsMjhjLTEuNCwwLTIuNS0xLjEtMi41LTIuNVxuXHRcdHMx''@;'; + put 'put ''LjEtMi41LDIuNS0yLjVzMi41LDEuMSwyLjUsMi41UzE0LjksMjgsMTMuNSwyOHoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0zMywyNGgtMnYtNy41YzAtMC41LTAuMS0xLTAuNC0xLjVsLTQuMi03LjVjLTAuNS0xLTEuNS0xLjUtMi42''@;'; + put 'put ''LTEuNUg1QzMuMyw2LDIsNy4zLDIsOXYxNGMwLDEuNywxLjMsMywzLDNoMnYtMkg1XG5cdFx0Yy0wLjYsMC0xLTAuNC0xLTFWOWMwLTAuNiwwLjQtMSwxLTFoMTguOGMwLjQsMCwwLjcsMC4yLDAuOSwwLjVsNC4yLDcuNWMwLjEsMC4xLDAuMSwwLjMsMC4xLDAuNVYyNGgtNFYxMmgtN3Y4aDJ2''@;'; + put 'put ''LTZoM3YxMGgtM3YyaDEzXG5cdFx0YzAuNiwwLDEtMC40LDEtMVMzMy42LDI0LDMzLDI0eiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTE2LDEySDd2Nmg5VjEyeiBNMTQsMTZIOXYtMmg1VjE2eiIgY2xhc3M9ImNsci1pLW91dGxpbmUg''@;'; + put 'put ''Y2xyLWktb3V0bGluZS1wYXRoLTMiIC8+PHBhdGggZD0iTTEzLjUsMzBDMTEsMzAsOSwyOCw5LDI1LjVzMi00LjUsNC41LTQuNXM0LjUsMiw0LjUsNC41QzE4LDI4LDE2LDMwLDEzLjUsMzB6IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0zMywy''@;'; + put 'put ''NGgtMnYtNy41YzAtMC41LTAuMS0xLTAuNC0xLjVsLTQuMi03LjVjLTAuNS0xLTEuNS0xLjUtMi42LTEuNUg1QzMuMyw2LDIsNy4zLDIsOXYxNGMwLDEuNywxLjMsMywzLDNoMnYtMkg1XG5cdGMtMC42LDAtMS0wLjQtMS0xVjljMC0wLjYsMC40LTEsMS0xaDE4LjhjMC40LDAsMC43LDAuMiww''@;'; + put 'put ''LjksMC41bDQuMiw3LjVjMC4xLDAuMSwwLjEsMC4zLDAuMSwwLjVWMjRoLTRWMTJoLTd2OGgydi02aDN2MTBoLTN2MmgxM1xuXHRjMC42LDAsMS0wLjQsMS0xUzMzLjYsMjQsMzMsMjR6IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0xNiwxOEg3''@;'; + put 'put ''di02aDlWMTh6IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiAvPicpLEwuQ2xyU2hhcGVGZXJyeT0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjksMjUuMWMtMS4yLDAtMi4zLDAuNC0zLjMsMS4xYzAsMCwwLDAsMCwwYy0xLjEsMS4xLTMsMS4xLTQuMSwwYy0w''@;'; + put 'put ''LjktMC44LTIuMS0xLjItMy4zLTEuMmMtMS4yLDAtMi4zLDAuNC0zLjIsMS4yXG5cdFx0Yy0xLjIsMS4xLTMsMS4xLTQuMiwwQzEwLDI1LjQsOC44LDI1LDcuNiwyNWMtMS4yLDAtMi40LDAuNC0zLjQsMS4xQzMuNiwyNi43LDIuOCwyNywyLDI3djJjMS4zLDAuMSwyLjUtMC40LDMuNC0xLjJc''@;'; + put 'put ''blx0XHRDNi4xLDI3LjMsNi45LDI3LDcuNywyN2MwLjgsMCwxLjUsMC4zLDIuMSwwLjhjMS45LDEuNiw0LjcsMS42LDYuNSwwYzAuNi0wLjUsMS4zLTAuOCwyLjEtMC44YzAuOCwwLDEuNSwwLjMsMi4xLDAuOFxuXHRcdGMxLjksMS42LDQuNiwxLjYsNi41LDBjMC41LTAuNSwxLjMtMC44LDIt''@;'; + put 'put ''MC44YzAuNywwLDEuNSwwLjMsMiwwLjhjMC45LDAuNywyLDEuMSwzLjEsMS4ydi0xLjljLTAuNywwLTEuNC0wLjMtMS45LTAuOVxuXHRcdEMzMS4zLDI1LjQsMzAuMSwyNSwyOSwyNS4xeiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTUu''@;'; + put 'put ''OSwyMy4yVjIwSDMybC0zLjUsM2gwLjJjMC44LDAsMS42LDAuMiwyLjIsMC41bDIuNS0yLjJsMC4yLTAuMmMwLjUtMC42LDAuNS0xLjQsMC4yLTIuMWMtMC40LTAuNy0xLTEtMS44LTFoLTQuNFxuXHRcdEwyMi41LDExSDE3Yy0xLjcsMC0zLDEuMy0zLDNoLTJWOC4xSDZ2Ni4xYy0xLjIsMC40''@;'; + put 'put ''LTIsMS41LTIsMi44djEuMVYyMHY0LjNsMC4xLTAuMUM0LjYsMjMuNyw1LjIsMjMuNCw1LjksMjMuMnogTTgsMTBoMnY0SDhWMTB6XG5cdFx0IE02LDE3YzAtMC42LDAuNC0xLDEtMWg5di0yYzAtMC42LDAuNC0xLDEtMWg1bDAuNiwxSDE4djJoNS44bDEuMiwyLjFINlYxN3oiIGNsYXNzPSJj''@;'; + put 'put ''bHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0yOC4yLDI1Yy0xLjIsMC0yLjQsMC40LTMuMywxLjJjLTEuMiwxLjEtMywxLjEtNC4xLDBjLTEuOS0xLjYtNC42LTEuNi02LjUsMGMtMS4yLDEuMS0yLjksMS4xLTQuMSwwXG5cdFx0Yy0wLjktMC44LTItMS4y''@;'; + put 'put ''LTMuMi0xLjJjLTEuMiwwLTIuMywwLjQtMy4yLDEuMkMzLjQsMjYuNywyLjcsMjcsMiwyN3YyYzEuMS0wLjEsMi4yLTAuNSwzLjEtMS4yQzUuNiwyNy4zLDYuMywyNyw3LDI3XG5cdFx0YzAuNywwLDEuNSwwLjMsMiwwLjhjMS45LDEuNiw0LjcsMS42LDYuNiwwYzAuNi0wLjUsMS4zLTAuOCwy''@;'; + put 'put ''LjEtMC44YzAuOCwwLDEuNSwwLjMsMi4xLDAuOGMxLjksMS42LDQuNywxLjYsNi41LDBcblx0XHRjMC42LTAuNSwxLjMtMC44LDIuMS0wLjhjMC44LDAsMS42LDAuMywyLjEsMC44YzAuOSwwLjgsMi4yLDEuMywzLjQsMS4ydi0yYy0wLjgsMC0xLjYtMC4zLTIuMi0wLjhDMzAuNywyNS40LDI5''@;'; + put 'put ''LjUsMjUsMjguMiwyNXoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+PHBhdGggZD0iTTUuOCwyMy4ydi0zLjNoMjYuMUwyOC40LDIzaDAuMmMwLjgsMCwxLjYsMC4yLDIuMiwwLjVsMi41LTIuMmwwLjEtMC4yYzAuNy0wLjksMC41LTIuMS0wLjQtMi44Yy0wLjMt''@;'; + put 'put ''MC4zLTAuOC0wLjQtMS4yLTAuNFxuXHRcdGgtNC4xbC01LjQtN2gtNS41Yy0xLjcsMC0zLDEuMy0zLDNoLTJWOEg2djYuMmMtMS4yLDAuNC0yLjEsMS41LTIuMSwyLjhsMCw3LjJsMC4xLDBDNC41LDIzLjcsNS4xLDIzLjQsNS44LDIzLjJ6IE0xNy45LDE0aDQuMlxuXHRcdGwxLjQsMmgtNS43''@;'; + put 'put ''VjE0eiBNNy45LDEwaDJ2NGgtMlYxMHoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+JyksTC5DbHJTaGFwZVRyYWlsZXI9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE1LDE5LjJjLTMuMiwwLTUuOCwyLjYtNS44LDUuOHMyLjYsNS44LDUuOCw1LjhzNS44''@;'; + put 'put ''LTIuNiw1LjgtNS44UzE4LjIsMTkuMiwxNSwxOS4yeiBNMTUsMjkuMmMtMi4zLDAtNC4yLTEuOS00LjItNC4yXG5cdFx0czEuOS00LjIsNC4yLTQuMnM0LjIsMS45LDQuMiw0LjJTMTcuMywyOS4yLDE1LDI5LjJ6IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIg''@;'; + put 'put ''Lz48cmVjdCB4PSIxNCIgeT0iMjQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0zMyw5SDJ2MTMuMWMwLDAsMCwwLDAsMEMyLDI0LjMsMy43LDI2LDUuOSwyNkg3di0ySDUuOWMtMSwwLTEuOC0wLjgt''@;'; + put 'put ''MS45LTEuOVYxNWgyMnY3LjFjMCwxLTAuOCwxLjgtMS45LDEuOUgyM3YyaDEuMVxuXHRcdGMwLDAsMCwwLDAsMGMyLjEsMCwzLjgtMS43LDMuOC0zLjlWMTFoNWMwLjYsMCwxLTAuNCwxLTFTMzMuNiw5LDMzLDl6IE0yNiwxM0g0di0yaDIyVjEzeiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xy''@;'; + put 'put ''LWktb3V0bGluZS1wYXRoLTMiIC8+PHBhdGggZD0iTTMzLDlIMnYxMy4xYzAsMCwwLDAsMCwwQzIsMjQuMywzLjcsMjYsNS45LDI2SDd2LTJINS45Yy0xLDAtMS44LTAuOC0xLjktMS45VjE1aDIydjcuMWMwLDEtMC44LDEuOC0xLjksMS45SDIzdjJoMS4xXG5cdGMwLDAsMCwwLDAsMGMyLjEs''@;'; + put 'put ''MCwzLjgtMS43LDMuOC0zLjlWMTFoNWMwLjYsMCwxLTAuNCwxLTFTMzMuNiw5LDMzLDl6IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0xNSwxOS4yYy0zLjIsMC01LjgsMi42LTUuOCw1LjhzMi42LDUuOCw1LjgsNS44czUuOC0yLjYsNS44LTUu''@;'; + put 'put ''OGwwLDBDMjAuOCwyMS44LDE4LjIsMTkuMiwxNSwxOS4yeiBNMTYsMjZoLTJ2LTJoMlYyNnoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+JyksTC5DbHJTaGFwZU9uSG9saWRheT0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTguMDgsMi4zNGMtOC44Miww''@;'; + put 'put ''LTE2LDYuMjgtMTYsMTRzNy4xOCwxNCwxNiwxNEExNy45MSwxNy45MSwwLDAsMCwyMywyOS42Nmw1LjUzLDMuNTJhMSwxLDAsMCwwLDEuMzgtLjMsMSwxLDAsMCwwLC4xNi0uNTRWMjUuNjFhMTMsMTMsMCwwLDAsNC05LjI3QzM0LjA4LDguNjIsMjYuOSwyLjM0LDE4LjA4LDIuMzRaTTI4LjM3''@;'; + put 'put ''LDI0LjQ1YTEsMSwwLDAsMC0uMzIuNzN2NS4zNGwtNC4zOC0yLjc5YTEsMSwwLDAsMC0uODMtLjExLDE2LDE2LDAsMCwxLTQuNzYuNzJjLTcuNzIsMC0xNC01LjM4LTE0LTEyczYuMjgtMTIsMTQtMTIsMTQsNS4zOCwxNCwxMkExMS4xLDExLjEsMCwwLDEsMjguMzcsMjQuNDVaIiBjbGFzcz0i''@;'; + put 'put ''Y2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICA8cGF0aCBkPSJNMzEuMSwxNS44MiwzMSwxNS42NywyOC41LDEzLjQ0YTMuMjUsMy4yNSwwLDAsMC0yLjM5LS44NGwtNS4zOC4zNC0zLjU5LTNhLjgxLjgxLDAsMCwwLS41Mi0uMTlIMTMuNTZhLjc4Ljc4LDAsMCwwLS42''@;'; + put 'put ''OS40Ljc3Ljc3LDAsMCwwLDAsLjc5bDEuMzYsMi40NC00LjcxLjI5LDEuMzEsMS41MiwxNS4zOS0xYTEuNjUsMS42NSwwLDAsMSwxLjIyLjQzbDIuMzYsMi4xM2EuMTEuMTEsMCwwLDEsMCwuMDdjMCwuMDYtLjA5LjA1LS4xLjA2SDIxLjgybC0uMzUuMzctNS4xOSw1LjUzSDE0LjY0bDIuNzMt''@;'; + put 'put ''NS45SDguNTRMNy4xMywxNC4xNiw2LjUxLDEzYS44LjgsMCwwLDAtMS0uMkEuODEuODEsMCwwLDAsNS4yLDEzLjlsMiwzLjk0YTEuMjEsMS4yMSwwLDAsMCwxLjA4LjY1aDYuNTdsLTEuOTQsNC4xOEExLjIsMS4yLDAsMCwwLDEzLDIzLjgzYTEuMjIsMS4yMiwwLDAsMCwxLC41NmgyLjQzYTEu''@;'; + put 'put ''MTcsMS4xNywwLDAsMCwuODgtLjM5bDUuMTgtNS41MWg3LjE2YTEuNjUsMS42NSwwLDAsMCwxLjUyLS45MUExLjc0LDEuNzQsMCwwLDAsMzEuMSwxNS44MlpNMTQuOTIsMTEuMzFoMS40MWwyLjA5LDEuNzdMMTYsMTMuMjNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBh''@;'; + put 'put ''dGgtMiIvPlxuICBcbiAgPHBhdGggZD0iTTE4LDIuNWMtOC44MiwwLTE2LDYuMjgtMTYsMTRzNy4xOCwxNCwxNiwxNGExNy45MSwxNy45MSwwLDAsMCw0Ljg4LS42OGw1LjUzLDMuNTJhMSwxLDAsMCwwLDEuMzgtLjNBMSwxLDAsMCwwLDMwLDMyLjVWMjUuNzdhMTMsMTMsMCwwLDAsNC05LjI3''@;'; + put 'put ''QzM0LDguNzgsMjYuODIsMi41LDE4LDIuNVpNMjkuODQsMThIMjEuNTFhLjQyLjQyLDAsMCwwLS4zLjEzbC01LjMsNS42NGEuMzkuMzksMCwwLDEtLjI5LjEzSDEzLjE5YS40MS40MSwwLDAsMS0uMzctLjU4bDIuNDctNS4zMkg3LjQ2YS40Mi40MiwwLDAsMS0uMzYtLjIybC0yLjctNUg2LjI0''@;'; + put 'put ''YS41My41MywwLDAsMSwuMzkuMThsMS41NiwxLjY5YS4zOC4zOCwwLDAsMCwuMzMuMTRsNi4xOC0uMzgtMi0zLjU1aDIuODlhLjQ3LjQ3LDAsMCwxLC4zMS4xMUwxOS42MywxNGw2LjY5LS4zNWEyLjQ0LDIuNDQsMCwwLDEsMS44MS42M2wyLjQ3LDIuMjNBLjkyLjkyLDAsMCwxLDI5Ljg0LDE4''@;'; + put 'put ''WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPlxuICAnKSxMLlRyYXZlbFNoYXBlcz17dHJ1Y2s6TC5DbHJTaGFwZVRydWNrLGFpcnBsYW5lOkwuQ2xyU2hhcGVBaXJwbGFuZSxjYXI6TC5DbHJTaGFwZUNhcixtYXA6TC5DbHJTaGFwZU1hcCxjb21wYXNzOkwuQ2xy''@;'; + put 'put ''U2hhcGVDb21wYXNzLCJtYXAtbWFya2VyIjpMLkNsclNoYXBlTWFwTWFya2VyLGJpY3ljbGU6TC5DbHJTaGFwZUJpY3ljbGUsYm9hdDpMLkNsclNoYXBlQm9hdCxjYW1wZXJ2YW46TC5DbHJTaGFwZUNhbXBlcnZhbixjYXJhdmFuOkwuQ2xyU2hhcGVDYXJhdmFuLGZlcnJ5OkwuQ2xyU2hhcGVG''@;'; + put 'put ''ZXJyeSx0cmFpbGVyOkwuQ2xyU2hhcGVUcmFpbGVyLCJvbi1ob2xpZGF5IjpMLkNsclNoYXBlT25Ib2xpZGF5fSxPYmplY3QuZGVmaW5lUHJvcGVydHkoTC5UcmF2ZWxTaGFwZXMsInBsYW5lIiwoMCxCLmRlc2NyaXB0b3JDb25maWcpKEwuVHJhdmVsU2hhcGVzLmFpcnBsYW5lKSksT2JqZWN0''@;'; + put 'put ''LmRlZmluZVByb3BlcnR5KEwuVHJhdmVsU2hhcGVzLCJhdXRvIiwoMCxCLmRlc2NyaXB0b3JDb25maWcpKEwuVHJhdmVsU2hhcGVzLmNhcikpLCJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiZ3aW5kb3cuaGFzT3duUHJvcGVydHkoIkNsYXJpdHlJY29ucyIpJiZ3aW5kb3cuQ2xhcml0eUlj''@;'; + put 'put ''b25zLmFkZChMLlRyYXZlbFNoYXBlcyl9LCIuL3Byb2plY3RzL2ljb25zL3NyYy91dGlscy9kZXNjcmlwdG9yLWNvbmZpZy50cyI6ZnVuY3Rpb24oSmUsTCxtZSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShMLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxMLmRlc2NyaXB0''@;'; + put 'put ''b3JDb25maWc9dm9pZCAwLEwuZGVzY3JpcHRvckNvbmZpZz1mdW5jdGlvbiBCKEUpe3JldHVybntlbnVtZXJhYmxlOiEwLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx2YWx1ZTpFfX19LCIuL3Byb2plY3RzL2ljb25zL3NyYy91dGlscy9zdmctdGFnLWdlbmVyYXRvci50cyI6ZnVuY3Rp''@;'; + put 'put ''b24oSmUsTCxtZSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShMLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxMLmNsckljb25TVkc9dm9pZCAwO0wuY2xySWNvblNWRz1mdW5jdGlvbiBVKFEpe3ZhciBaPSIiO3JldHVybiBRLmluZGV4T2YoIi0tYmFkZ2VkIik+LTEmJiha''@;'; + put 'put ''Kz0iY2FuLWJhZGdlICIpLFEuaW5kZXhPZigiLS1hbGVydGVkIik+LTEmJihaKz0iY2FuLWFsZXJ0ICIpLFEuaW5kZXhPZigiY2xyLWktc29saWQiKT4tMSYmKForPSJoYXMtc29saWQgIiksKFo/JzxzdmcgdmVyc2lvbj0iMS4xIiBjbGFzcz0iJytaKyciIHZpZXdCb3g9IjAgMCAzNiAzNiIg''@;'; + put 'put ''cHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQgbWVldCJcbiAgICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBmb2N1c2FibGU9ImZhbHNlIiByb2xlPSJpbWciPic6JzxzdmcgdmVyc2lvbj0i''@;'; + put 'put ''MS4xIiB2aWV3Qm94PSIwIDAgMzYgMzYiIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaWRZTWlkIG1lZXQiXG4gICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgZm9jdXNhYmxlPSJmYWxzZSIgcm9s''@;'; + put 'put ''ZT0iaW1nIj4nKStRKyI8L3N2Zz4ifX19KX0sNjA5MzI6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT17fTtMLnIobWUpLEwuZChtZSx7Y2FuY2VsQW5pbWF0aW9uRnJhbWU6KCk9PlRaLGdldENvbXBhcmlzb25GdW5jdGlvbjooKT0+c2JlLGhhc0NhcHRpb25Qcm9ibGVtOigpPT5Z''@;'; + put 'put ''aGUsaXNDbGFzc0xpc3RTdXBwb3J0ZWQ6KCk9Pm9iZSxpc0dldENvbXB1dGVkU3R5bGVTdXBwb3J0ZWQ6KCk9PmxiZSxpc1Bhc3NpdmVFdmVudFN1cHBvcnRlZDooKT0+dWJlLGlzVGV4dENvbnRlbnRTdXBwb3J0ZWQ6KCk9PmFiZSxpc1RvdWNoU3VwcG9ydGVkOigpPT5HaGUscmVxdWVzdEFu''@;'; + put 'put ''aW1hdGlvbkZyYW1lOigpPT56aGV9KTt2YXIgQj17fTtMLnIoQiksTC5kKEIse2FycmF5QXZnOigpPT5RamUsYXJyYXlFYWNoOigpPT5VcixhcnJheUZpbHRlcjooKT0+ZzQsYXJyYXlGbGF0dGVuOigpPT5oYmUsYXJyYXlNYXA6KCk9Pk9sLGFycmF5TWF4OigpPT5ZamUsYXJyYXlNaW46KCk9''@;'; + put 'put ''PlVqZSxhcnJheVJlZHVjZTooKT0+U3UsYXJyYXlTdW06KCk9PmZiZSxhcnJheVVuaXF1ZTooKT0+UWhlLGV4dGVuZEFycmF5OigpPT5VaGUsZ2V0RGlmZmVyZW5jZU9mQXJyYXlzOigpPT5KaGUsZ2V0SW50ZXJzZWN0aW9uT2ZBcnJheXM6KCk9PkpqZSxnZXRVbmlvbk9mQXJyYXlzOigpPT5Y''@;'; + put 'put ''amUscGl2b3Q6KCk9PkRaLHN0cmluZ1RvQXJyYXk6KCk9PlhoZSx0bzJkQXJyYXk6KCk9PmNiZX0pO3ZhciBFPXt9O0wucihFKSxMLmQoRSx7Y2xvbmU6KCk9PmEzLGNyZWF0ZU9iamVjdFByb3BMaXN0ZW5lcjooKT0+U1MsZGVlcENsb25lOigpPT5naCxkZWVwRXh0ZW5kOigpPT5MWixkZWVw''@;'; + put 'put ''T2JqZWN0U2l6ZTooKT0+SnEsZGVmaW5lR2V0dGVyOigpPT5TZyxkdWNrU2NoZW1hOigpPT5hTyxleHRlbmQ6KCk9PkkxLGdldFByb3BlcnR5OigpPT5wYmUsaGFzT3duUHJvcGVydHk6KCk9Pm8xLGluaGVyaXQ6KCk9Pmt2LGlzT2JqZWN0OigpPT54bCxpc09iamVjdEVxdWFsOigpPT5LaGUs''@;'; + put 'put ''bWl4aW46KCk9PkIyLG9iamVjdEVhY2g6KCk9PkdsLHNldFByb3BlcnR5OigpPT5RcX0pO3ZhciBNZT17fTtMLnIoTWUpLEwuZChNZSx7aXNDaHJvbWU6KCk9PnZiZSxpc0Nocm9tZVdlYktpdDooKT0+QWJlLGlzRWRnZTooKT0+YmJlLGlzRWRnZVdlYktpdDooKT0+S2plLGlzRmlyZWZveDoo''@;'; + put 'put ''KT0+WHEsaXNGaXJlZm94V2ViS2l0OigpPT55YmUsaXNJRTooKT0+X2JlLGlzSUU5OigpPT5DYmUsaXNJT1M6KCk9PiRoZSxpc0lwYWRPUzooKT0+cWhlLGlzTGludXhPUzooKT0+cWplLGlzTVNCcm93c2VyOigpPT4kamUsaXNNYWNPUzooKT0+S3EsaXNNb2JpbGVCcm93c2VyOigpPT5iOCxp''@;'; + put 'put ''c1NhZmFyaTooKT0+d2JlLGlzV2luZG93c09TOigpPT5lM2Usc2V0QnJvd3Nlck1ldGE6KCk9PmdiZSxzZXRQbGF0Zm9ybU1ldGE6KCk9Pm1iZX0pO3ZhciBVPXt9O0wucihVKSxMLmQoVSx7X2luamVjdFByb2R1Y3RJbmZvOigpPT5CYmUsaXNEZWZpbmVkOigpPT5Ubyxpc0VtcHR5OigpPT5k''@;'; + put 'put ''Yyxpc1JlZ0V4cDooKT0+SWJlLGlzVW5kZWZpbmVkOigpPT5hMSxzdHJpbmdpZnk6KCk9PmV1fSk7dmFyIFE9e307TC5yKFEpLEwuZChRLHtlcXVhbHNJZ25vcmVDYXNlOigpPT5pWmUsaXNQZXJjZW50VmFsdWU6KCk9PmkzZSxyYW5kb21TdHJpbmc6KCk9PnIzZSxzYW5pdGl6ZTooKT0+cXEs''@;'; + put 'put ''c3RyaXBUYWdzOigpPT5hM2Usc3Vic3RpdHV0ZTooKT0+bzNlLHRvVXBwZXJDYXNlRmlyc3Q6KCk9PnNkfSk7dmFyIFo9e307TC5yKFopLEwuZChaLHtIVE1MX0NIQVJBQ1RFUlM6KCk9PmpiZSxhZGRDbGFzczooKT0+TzAsYWRkRXZlbnQ6KCk9PmZaZSxjbGVhclRleHRTZWxlY3Rpb246KCk9''@;'; + put 'put ''PmczZSxjbG9zZXN0OigpPT5TdixjbG9zZXN0RG93bjooKT0+UFosZW1wdHk6KCk9PkRwLGZhc3RJbm5lckhUTUw6KCk9Pmt3LGZhc3RJbm5lclRleHQ6KCk9PlN3LGdldENhcmV0UG9zaXRpb246KCk9PnAzZSxnZXRDb21wdXRlZFN0eWxlOigpPT5NdyxnZXRDc3NUcmFuc2Zvcm06KCk9PnBa''@;'; + put 'put ''ZSxnZXRGcmFtZUVsZW1lbnQ6KCk9PkhiZSxnZXRQYXJlbnQ6KCk9PkZiZSxnZXRQYXJlbnRXaW5kb3c6KCk9PnMzZSxnZXRTY3JvbGxMZWZ0OigpPT50ZWUsZ2V0U2Nyb2xsVG9wOigpPT5GWixnZXRTY3JvbGxhYmxlRWxlbWVudDooKT0+SFosZ2V0U2Nyb2xsYmFyV2lkdGg6KCk9PkJjLGdl''@;'; + put 'put ''dFNlbGVjdGlvbkVuZFBvc2l0aW9uOigpPT5aYmUsZ2V0U2VsZWN0aW9uVGV4dDooKT0+emJlLGdldFN0eWxlOigpPT5uZWUsZ2V0VHJpbW1pbmdDb250YWluZXI6KCk9PmZPLGdldFdpbmRvd1Njcm9sbExlZnQ6KCk9Pk1TLGdldFdpbmRvd1Njcm9sbFRvcDooKT0+Y08saGFzQWNjZXNzVG9Q''@;'; + put 'put ''YXJlbnRXaW5kb3c6KCk9PnVaZSxoYXNDbGFzczooKT0+dGwsaGFzSG9yaXpvbnRhbFNjcm9sbGJhcjooKT0+V2JlLGhhc1ZlcnRpY2FsU2Nyb2xsYmFyOigpPT5HYmUsaW5kZXg6KCk9Pk5iZSxpbm5lckhlaWdodDooKT0+TXYsaW5uZXJXaWR0aDooKT0+TlosaXNDaGlsZE9mOigpPT5fdyxp''@;'; + put 'put ''c0RldGFjaGVkOigpPT5BM2UsaXNJbnB1dDooKT0+WlosaXNPdXRzaWRlSW5wdXQ6KCk9PnYzZSxpc1Zpc2libGU6KCk9PnVPLG1hdGNoZXNDU1NSdWxlczooKT0+Y1plLG9mZnNldDooKT0+anUsb3V0ZXJIZWlnaHQ6KCk9PkQxLG91dGVyV2lkdGg6KCk9PkUyLG92ZXJsYXlDb250YWluc0Vs''@;'; + put 'put ''ZW1lbnQ6KCk9PkN3LHJlbW92ZUNsYXNzOigpPT5wbCxyZW1vdmVFdmVudDooKT0+aFplLHJlbW92ZVRleHROb2RlczooKT0+ZDNlLHJlc2V0Q3NzVHJhbnNmb3JtOigpPT5qWixzZWxlY3RFbGVtZW50SWZBbGxvd2VkOigpPT5ZYmUsc2V0Q2FyZXRQb3NpdGlvbjooKT0+Vlosc2V0T3Zlcmxh''@;'; + put 'put ''eVBvc2l0aW9uOigpPT5yZWV9KTt2YXIgaWU9e307TC5yKGllKSxMLmQoaWUse2N1cnJ5OigpPT5RYmUsY3VycnlSaWdodDooKT0+dlplLGRlYm91bmNlOigpPT55M2UsZmFzdENhbGw6KCk9PmllZSxpc0Z1bmN0aW9uOigpPT5VMixwYXJ0aWFsOigpPT53M2UscGlwZTooKT0+bVplLHRocm90''@;'; + put 'put ''dGxlOigpPT5VYmUsdGhyb3R0bGVBZnRlckhpdHM6KCk9PmdaZX0pO3ZhciBhZT17fTtMLnIoYWUpLEwuZChhZSx7S0VZX0NPREVTOigpPT5Rbyxpc0N0cmxLZXk6KCk9PnlaZSxpc0N0cmxNZXRhS2V5OigpPT5YYmUsaXNGdW5jdGlvbktleTooKT0+YjNlLGlzS2V5OigpPT5oTyxpc1ByaW50''@;'; + put 'put ''YWJsZUNoYXI6KCk9PkpiZX0pO3ZhciBZPXt9O0wucihZKSxMLmQoWSx7aXNJbW1lZGlhdGVQcm9wYWdhdGlvblN0b3BwZWQ6KCk9PkVTLGlzTGVmdENsaWNrOigpPT5vZWUsaXNSaWdodENsaWNrOigpPT5FdyxzdG9wSW1tZWRpYXRlUHJvcGFnYXRpb246KCk9Pl84fSk7dmFyIFc9e307TC5y''@;'; + put 'put ''KFcpLEwuZChXLHtfZGF0YVRvSFRNTDooKT0+TDNlLGh0bWxUb0dyaWRTZXR0aW5nczooKT0+Y19lLGluc3RhbmNlVG9IVE1MOigpPT5EM2V9KTt2YXIgTj17fTtMLnIoTiksTC5kKE4se2lzTnVtZXJpYzooKT0+djQsaXNOdW1lcmljTGlrZTooKT0+Zl9lLHJhbmdlRWFjaDooKT0+aWEscmFu''@;'; + put 'put ''Z2VFYWNoUmV2ZXJzZTooKT0+c2VlLHZhbHVlQWNjb3JkaW5nUGVyY2VudDooKT0+QjNlfSk7dmFyIGVlPXt9O0wucihlZSksTC5kKGVlLHtjZWxsTWV0aG9kTG9va3VwRmFjdG9yeTooKT0+cVosY291bnRGaXJzdFJvd0tleXM6KCk9PlFkZSxjcmVhdGVFbXB0eVNwcmVhZHNoZWV0RGF0YToo''@;'; + put 'put ''KT0+WlFlLGNyZWF0ZVNwcmVhZHNoZWV0RGF0YTooKT0+VlFlLGNyZWF0ZVNwcmVhZHNoZWV0T2JqZWN0RGF0YTooKT0+alFlLGRhdGFSb3dUb0NoYW5nZXNBcnJheTooKT0+VWRlLGlzQXJyYXlPZkFycmF5czooKT0+S0NlLGlzQXJyYXlPZk9iamVjdHM6KCk9PiRDZSxzcHJlYWRzaGVldENv''@;'; + put 'put ''bHVtbkluZGV4OigpPT5OUWUsc3ByZWFkc2hlZXRDb2x1bW5MYWJlbDooKT0+emVlfSk7dmFyIHE9e307TC5yKHEpLEwuZChxLHtDT05URVhUTUVOVV9JVEVNU19BRERfQ09NTUVOVDooKT0+VjRlLENPTlRFWFRNRU5VX0lURU1TX0FMSUdOTUVOVDooKT0+RzRlLENPTlRFWFRNRU5VX0lURU1T''@;'; + put 'put ''X0FMSUdOTUVOVF9CT1RUT006KCk9Pks0ZSxDT05URVhUTUVOVV9JVEVNU19BTElHTk1FTlRfQ0VOVEVSOigpPT5ZNGUsQ09OVEVYVE1FTlVfSVRFTVNfQUxJR05NRU5UX0pVU1RJRlk6KCk9PlE0ZSxDT05URVhUTUVOVV9JVEVNU19BTElHTk1FTlRfTEVGVDooKT0+VzRlLENPTlRFWFRNRU5V''@;'; + put 'put ''X0lURU1TX0FMSUdOTUVOVF9NSURETEU6KCk9Plg0ZSxDT05URVhUTUVOVV9JVEVNU19BTElHTk1FTlRfUklHSFQ6KCk9PlU0ZSxDT05URVhUTUVOVV9JVEVNU19BTElHTk1FTlRfVE9QOigpPT5KNGUsQ09OVEVYVE1FTlVfSVRFTVNfQk9SREVSUzooKT0+JDRlLENPTlRFWFRNRU5VX0lURU1T''@;'; + put 'put ''X0JPUkRFUlNfQk9UVE9NOigpPT50cGUsQ09OVEVYVE1FTlVfSVRFTVNfQk9SREVSU19MRUZUOigpPT5ucGUsQ09OVEVYVE1FTlVfSVRFTVNfQk9SREVSU19SSUdIVDooKT0+ZXBlLENPTlRFWFRNRU5VX0lURU1TX0JPUkRFUlNfVE9QOigpPT5xNGUsQ09OVEVYVE1FTlVfSVRFTVNfQ0xFQVJf''@;'; + put 'put ''Q09MVU1OOigpPT5PNGUsQ09OVEVYVE1FTlVfSVRFTVNfQ09QWTooKT0+UjRlLENPTlRFWFRNRU5VX0lURU1TX0NVVDooKT0+QjRlLENPTlRFWFRNRU5VX0lURU1TX0VESVRfQ09NTUVOVDooKT0+ajRlLENPTlRFWFRNRU5VX0lURU1TX0ZSRUVaRV9DT0xVTU46KCk9PlA0ZSxDT05URVhUTUVO''@;'; + put 'put ''VV9JVEVNU19ISURFX0NPTFVNTjooKT0+YXBlLENPTlRFWFRNRU5VX0lURU1TX0hJREVfUk9XOigpPT5zcGUsQ09OVEVYVE1FTlVfSVRFTVNfSU5TRVJUX0xFRlQ6KCk9Pk00ZSxDT05URVhUTUVOVV9JVEVNU19JTlNFUlRfUklHSFQ6KCk9PkU0ZSxDT05URVhUTUVOVV9JVEVNU19NRVJHRV9D''@;'; + put 'put ''RUxMUzooKT0+SDRlLENPTlRFWFRNRU5VX0lURU1TX05FU1RFRF9ST1dTX0RFVEFDSF9DSElMRDooKT0+b3BlLENPTlRFWFRNRU5VX0lURU1TX05FU1RFRF9ST1dTX0lOU0VSVF9DSElMRDooKT0+aXBlLENPTlRFWFRNRU5VX0lURU1TX05PX0lURU1TOigpPT5DNGUsQ09OVEVYVE1FTlVfSVRF''@;'; + put 'put ''TVNfUkVBRF9PTkxZOigpPT5MNGUsQ09OVEVYVE1FTlVfSVRFTVNfUkVBRF9PTkxZX0NPTU1FTlQ6KCk9Pno0ZSxDT05URVhUTUVOVV9JVEVNU19SRURPOigpPT5ENGUsQ09OVEVYVE1FTlVfSVRFTVNfUkVNT1ZFX0JPUkRFUlM6KCk9PnJwZSxDT05URVhUTUVOVV9JVEVNU19SRU1PVkVfQ09M''@;'; + put 'put ''VU1OOigpPT5UNGUsQ09OVEVYVE1FTlVfSVRFTVNfUkVNT1ZFX0NPTU1FTlQ6KCk9Plo0ZSxDT05URVhUTUVOVV9JVEVNU19SRU1PVkVfUk9XOigpPT54NGUsQ09OVEVYVE1FTlVfSVRFTVNfUk9XX0FCT1ZFOigpPT5rNGUsQ09OVEVYVE1FTlVfSVRFTVNfUk9XX0JFTE9XOigpPT5TNGUsQ09O''@;'; + put 'put ''VEVYVE1FTlVfSVRFTVNfU0hPV19DT0xVTU46KCk9PmxwZSxDT05URVhUTUVOVV9JVEVNU19TSE9XX1JPVzooKT0+dXBlLENPTlRFWFRNRU5VX0lURU1TX1VORE86KCk9Pkk0ZSxDT05URVhUTUVOVV9JVEVNU19VTkZSRUVaRV9DT0xVTU46KCk9PkY0ZSxDT05URVhUTUVOVV9JVEVNU19VTk1F''@;'; + put 'put ''UkdFX0NFTExTOigpPT5ONGUsQ09OVEVYVF9NRU5VX0lURU1TX05BTUVTUEFDRTooKT0+UmwsRklMVEVSU19CVVRUT05TX0NBTkNFTDooKT0+QnBlLEZJTFRFUlNfQlVUVE9OU19DTEVBUjooKT0+T3BlLEZJTFRFUlNfQlVUVE9OU19PSzooKT0+UnBlLEZJTFRFUlNfQlVUVE9OU19QTEFDRUhP''@;'; + put 'put ''TERFUl9TRUFSQ0g6KCk9PlBwZSxGSUxURVJTX0JVVFRPTlNfUExBQ0VIT0xERVJfU0VDT05EX1ZBTFVFOigpPT5IcGUsRklMVEVSU19CVVRUT05TX1BMQUNFSE9MREVSX1ZBTFVFOigpPT5GcGUsRklMVEVSU19CVVRUT05TX1NFTEVDVF9BTEw6KCk9PkxwZSxGSUxURVJTX0NPTkRJVElPTlNf''@;'; + put 'put ''QUZURVI6KCk9PmtwZSxGSUxURVJTX0NPTkRJVElPTlNfQkVGT1JFOigpPT5TcGUsRklMVEVSU19DT05ESVRJT05TX0JFR0lOU19XSVRIOigpPT5wcGUsRklMVEVSU19DT05ESVRJT05TX0JFVFdFRU46KCk9Pl9wZSxGSUxURVJTX0NPTkRJVElPTlNfQllfVkFMVUU6KCk9PkxYZSxGSUxURVJT''@;'; + put 'put ''X0NPTkRJVElPTlNfQ09OVEFJTlM6KCk9Pm1wZSxGSUxURVJTX0NPTkRJVElPTlNfRU1QVFk6KCk9PmNwZSxGSUxURVJTX0NPTkRJVElPTlNfRU5EU19XSVRIOigpPT5ncGUsRklMVEVSU19DT05ESVRJT05TX0VRVUFMOigpPT5ocGUsRklMVEVSU19DT05ESVRJT05TX0dSRUFURVJfVEhBTjoo''@;'; + put 'put ''KT0+QXBlLEZJTFRFUlNfQ09ORElUSU9OU19HUkVBVEVSX1RIQU5fT1JfRVFVQUw6KCk9PnlwZSxGSUxURVJTX0NPTkRJVElPTlNfTEVTU19USEFOOigpPT53cGUsRklMVEVSU19DT05ESVRJT05TX0xFU1NfVEhBTl9PUl9FUVVBTDooKT0+YnBlLEZJTFRFUlNfQ09ORElUSU9OU19OQU1FU1BB''@;'; + put 'put ''Q0U6KCk9PnR1LEZJTFRFUlNfQ09ORElUSU9OU19OT05FOigpPT5ldGUsRklMVEVSU19DT05ESVRJT05TX05PVF9CRVRXRUVOOigpPT5DcGUsRklMVEVSU19DT05ESVRJT05TX05PVF9DT05UQUlOOigpPT52cGUsRklMVEVSU19DT05ESVRJT05TX05PVF9FTVBUWTooKT0+ZnBlLEZJTFRFUlNf''@;'; + put 'put ''Q09ORElUSU9OU19OT1RfRVFVQUw6KCk9PmRwZSxGSUxURVJTX0NPTkRJVElPTlNfVE9EQVk6KCk9Pk1wZSxGSUxURVJTX0NPTkRJVElPTlNfVE9NT1JST1c6KCk9PkVwZSxGSUxURVJTX0NPTkRJVElPTlNfWUVTVEVSREFZOigpPT54cGUsRklMVEVSU19ESVZTX0ZJTFRFUl9CWV9DT05ESVRJ''@;'; + put 'put ''T046KCk9PlRwZSxGSUxURVJTX0RJVlNfRklMVEVSX0JZX1ZBTFVFOigpPT5JcGUsRklMVEVSU19MQUJFTFNfQ09OSlVOQ1RJT046KCk9PkRwZSxGSUxURVJTX0xBQkVMU19ESVNKVU5DVElPTjooKT0+dHRlLEZJTFRFUlNfTkFNRVNQQUNFOigpPT5sMyxGSUxURVJTX1ZBTFVFU19CTEFOS19D''@;'; + put 'put ''RUxMUzooKT0+bnRlfSk7dmFyIEo9e307ZnVuY3Rpb24gc2UoZCl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIGR9TC5yKEopLEwuZChKLHtnZXROb3JtYWxpemVkRGF0ZTooKT0+cE1lfSk7bGV0IG9lPSExO2NvbnN0IGNlPXtQcm9taXNlOnZvaWQgMCxzZXQgdXNlRGVwcmVjYXRlZFN5bmNo''@;'; + put 'put ''cm9ub3VzRXJyb3JIYW5kbGluZyhkKXtpZihkKXtjb25zdCBnPW5ldyBFcnJvcjtjb25zb2xlLndhcm4oIkRFUFJFQ0FURUQhIFJ4SlMgd2FzIHNldCB0byB1c2UgZGVwcmVjYXRlZCBzeW5jaHJvbm91cyBlcnJvciBoYW5kbGluZyBiZWhhdmlvciBieSBjb2RlIGF0OiBcbiIrZy5zdGFjayl9''@;'; + put 'put ''ZWxzZSBvZSYmY29uc29sZS5sb2coIlJ4SlM6IEJhY2sgdG8gYSBiZXR0ZXIgZXJyb3IgYmVoYXZpb3IuIFRoYW5rIHlvdS4gPDMiKTtvZT1kfSxnZXQgdXNlRGVwcmVjYXRlZFN5bmNocm9ub3VzRXJyb3JIYW5kbGluZygpe3JldHVybiBvZX19O2Z1bmN0aW9uIGRlKGQpe3NldFRpbWVvdXQo''@;'; + put 'put ''KCk9Pnt0aHJvdyBkfSwwKX1jb25zdCB2ZT17Y2xvc2VkOiEwLG5leHQoZCl7fSxlcnJvcihkKXtpZihjZS51c2VEZXByZWNhdGVkU3luY2hyb25vdXNFcnJvckhhbmRsaW5nKXRocm93IGQ7ZGUoZCl9LGNvbXBsZXRlKCl7fX0sQWU9QXJyYXkuaXNBcnJheXx8KGQ9PmQmJiJudW1iZXIiPT10''@;'; + put 'put ''eXBlb2YgZC5sZW5ndGgpO2Z1bmN0aW9uIGtlKGQpe3JldHVybiBudWxsIT09ZCYmIm9iamVjdCI9PXR5cGVvZiBkfWNvbnN0IEllPSgoKT0+e2Z1bmN0aW9uIGQoZyl7cmV0dXJuIEVycm9yLmNhbGwodGhpcyksdGhpcy5tZXNzYWdlPWc/YCR7Zy5sZW5ndGh9IGVycm9ycyBvY2N1cnJlZCBk''@;'; + put 'put ''dXJpbmcgdW5zdWJzY3JpcHRpb246XG4ke2cubWFwKChoLHYpPT5gJHt2KzF9KSAke2gudG9TdHJpbmcoKX1gKS5qb2luKCJcbiAgIil9YDoiIix0aGlzLm5hbWU9IlVuc3Vic2NyaXB0aW9uRXJyb3IiLHRoaXMuZXJyb3JzPWcsdGhpc31yZXR1cm4gZC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0''@;'; + put 'put ''ZShFcnJvci5wcm90b3R5cGUpLGR9KSgpO2NsYXNzIFRle2NvbnN0cnVjdG9yKGcpe3RoaXMuY2xvc2VkPSExLHRoaXMuX3BhcmVudE9yUGFyZW50cz1udWxsLHRoaXMuX3N1YnNjcmlwdGlvbnM9bnVsbCxnJiYodGhpcy5fY3RvclVuc3Vic2NyaWJlPSEwLHRoaXMuX3Vuc3Vic2NyaWJlPWcp''@;'; + put 'put ''fXVuc3Vic2NyaWJlKCl7bGV0IGc7aWYodGhpcy5jbG9zZWQpcmV0dXJuO2xldHtfcGFyZW50T3JQYXJlbnRzOmgsX2N0b3JVbnN1YnNjcmliZTp2LF91bnN1YnNjcmliZTp5LF9zdWJzY3JpcHRpb25zOkN9PXRoaXM7aWYodGhpcy5jbG9zZWQ9ITAsdGhpcy5fcGFyZW50T3JQYXJlbnRzPW51''@;'; + put 'put ''bGwsdGhpcy5fc3Vic2NyaXB0aW9ucz1udWxsLGggaW5zdGFuY2VvZiBUZSloLnJlbW92ZSh0aGlzKTtlbHNlIGlmKG51bGwhPT1oKWZvcihsZXQgST0wO0k8aC5sZW5ndGg7KytJKWhbSV0ucmVtb3ZlKHRoaXMpO2lmKHNlKHkpKXt2JiYodGhpcy5fdW5zdWJzY3JpYmU9dm9pZCAwKTt0cnl7''@;'; + put 'put ''eS5jYWxsKHRoaXMpfWNhdGNoKEkpe2c9SSBpbnN0YW5jZW9mIEllP0VlKEkuZXJyb3JzKTpbSV19fWlmKEFlKEMpKXtsZXQgST0tMSxqPUMubGVuZ3RoO2Zvcig7KytJPGo7KXtjb25zdCB1ZT1DW0ldO2lmKGtlKHVlKSl0cnl7dWUudW5zdWJzY3JpYmUoKX1jYXRjaChfZSl7Zz1nfHxbXSxf''@;'; + put 'put ''ZSBpbnN0YW5jZW9mIEllP2c9Zy5jb25jYXQoRWUoX2UuZXJyb3JzKSk6Zy5wdXNoKF9lKX19fWlmKGcpdGhyb3cgbmV3IEllKGcpfWFkZChnKXtsZXQgaD1nO2lmKCFnKXJldHVybiBUZS5FTVBUWTtzd2l0Y2godHlwZW9mIGcpe2Nhc2UiZnVuY3Rpb24iOmg9bmV3IFRlKGcpO2Nhc2Uib2Jq''@;'; + put 'put ''ZWN0IjppZihoPT09dGhpc3x8aC5jbG9zZWR8fCJmdW5jdGlvbiIhPXR5cGVvZiBoLnVuc3Vic2NyaWJlKXJldHVybiBoO2lmKHRoaXMuY2xvc2VkKXJldHVybiBoLnVuc3Vic2NyaWJlKCksaDtpZighKGggaW5zdGFuY2VvZiBUZSkpe2NvbnN0IEM9aDtoPW5ldyBUZSxoLl9zdWJzY3JpcHRp''@;'; + put 'put ''b25zPVtDXX1icmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcigidW5yZWNvZ25pemVkIHRlYXJkb3duICIrZysiIGFkZGVkIHRvIFN1YnNjcmlwdGlvbi4iKX1sZXR7X3BhcmVudE9yUGFyZW50czp2fT1oO2lmKG51bGw9PT12KWguX3BhcmVudE9yUGFyZW50cz10aGlzO2Vsc2UgaWYodiBp''@;'; + put 'put ''bnN0YW5jZW9mIFRlKXtpZih2PT09dGhpcylyZXR1cm4gaDtoLl9wYXJlbnRPclBhcmVudHM9W3YsdGhpc119ZWxzZXtpZigtMSE9PXYuaW5kZXhPZih0aGlzKSlyZXR1cm4gaDt2LnB1c2godGhpcyl9Y29uc3QgeT10aGlzLl9zdWJzY3JpcHRpb25zO3JldHVybiBudWxsPT09eT90aGlzLl9z''@;'; + put 'put ''dWJzY3JpcHRpb25zPVtoXTp5LnB1c2goaCksaH1yZW1vdmUoZyl7Y29uc3QgaD10aGlzLl9zdWJzY3JpcHRpb25zO2lmKGgpe2NvbnN0IHY9aC5pbmRleE9mKGcpOy0xIT09diYmaC5zcGxpY2UodiwxKX19fXZhciBkO2Z1bmN0aW9uIEVlKGQpe3JldHVybiBkLnJlZHVjZSgoZyxoKT0+Zy5j''@;'; + put 'put ''b25jYXQoaCBpbnN0YW5jZW9mIEllP2guZXJyb3JzOmgpLFtdKX1UZS5FTVBUWT0oKGQ9bmV3IFRlKS5jbG9zZWQ9ITAsZCk7Y29uc3QgaGU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbD9TeW1ib2woInJ4U3Vic2NyaWJlciIpOiJAQHJ4U3Vic2NyaWJlcl8iK01hdGgucmFuZG9tKCk7Y2xh''@;'; + put 'put ''c3MgeiBleHRlbmRzIFRle2NvbnN0cnVjdG9yKGcsaCx2KXtzd2l0Y2goc3VwZXIoKSx0aGlzLnN5bmNFcnJvclZhbHVlPW51bGwsdGhpcy5zeW5jRXJyb3JUaHJvd249ITEsdGhpcy5zeW5jRXJyb3JUaHJvd2FibGU9ITEsdGhpcy5pc1N0b3BwZWQ9ITEsYXJndW1lbnRzLmxlbmd0aCl7Y2Fz''@;'; + put 'put ''ZSAwOnRoaXMuZGVzdGluYXRpb249dmU7YnJlYWs7Y2FzZSAxOmlmKCFnKXt0aGlzLmRlc3RpbmF0aW9uPXZlO2JyZWFrfWlmKCJvYmplY3QiPT10eXBlb2YgZyl7ZyBpbnN0YW5jZW9mIHo/KHRoaXMuc3luY0Vycm9yVGhyb3dhYmxlPWcuc3luY0Vycm9yVGhyb3dhYmxlLHRoaXMuZGVzdGlu''@;'; + put 'put ''YXRpb249ZyxnLmFkZCh0aGlzKSk6KHRoaXMuc3luY0Vycm9yVGhyb3dhYmxlPSEwLHRoaXMuZGVzdGluYXRpb249bmV3IG5lKHRoaXMsZykpO2JyZWFrfWRlZmF1bHQ6dGhpcy5zeW5jRXJyb3JUaHJvd2FibGU9ITAsdGhpcy5kZXN0aW5hdGlvbj1uZXcgbmUodGhpcyxnLGgsdil9fVtoZV0o''@;'; + put 'put ''KXtyZXR1cm4gdGhpc31zdGF0aWMgY3JlYXRlKGcsaCx2KXtjb25zdCB5PW5ldyB6KGcsaCx2KTtyZXR1cm4geS5zeW5jRXJyb3JUaHJvd2FibGU9ITEseX1uZXh0KGcpe3RoaXMuaXNTdG9wcGVkfHx0aGlzLl9uZXh0KGcpfWVycm9yKGcpe3RoaXMuaXNTdG9wcGVkfHwodGhpcy5pc1N0b3Bw''@;'; + put 'put ''ZWQ9ITAsdGhpcy5fZXJyb3IoZykpfWNvbXBsZXRlKCl7dGhpcy5pc1N0b3BwZWR8fCh0aGlzLmlzU3RvcHBlZD0hMCx0aGlzLl9jb21wbGV0ZSgpKX11bnN1YnNjcmliZSgpe3RoaXMuY2xvc2VkfHwodGhpcy5pc1N0b3BwZWQ9ITAsc3VwZXIudW5zdWJzY3JpYmUoKSl9X25leHQoZyl7dGhp''@;'; + put 'put ''cy5kZXN0aW5hdGlvbi5uZXh0KGcpfV9lcnJvcihnKXt0aGlzLmRlc3RpbmF0aW9uLmVycm9yKGcpLHRoaXMudW5zdWJzY3JpYmUoKX1fY29tcGxldGUoKXt0aGlzLmRlc3RpbmF0aW9uLmNvbXBsZXRlKCksdGhpcy51bnN1YnNjcmliZSgpfV91bnN1YnNjcmliZUFuZFJlY3ljbGUoKXtjb25z''@;'; + put 'put ''dHtfcGFyZW50T3JQYXJlbnRzOmd9PXRoaXM7cmV0dXJuIHRoaXMuX3BhcmVudE9yUGFyZW50cz1udWxsLHRoaXMudW5zdWJzY3JpYmUoKSx0aGlzLmNsb3NlZD0hMSx0aGlzLmlzU3RvcHBlZD0hMSx0aGlzLl9wYXJlbnRPclBhcmVudHM9Zyx0aGlzfX1jbGFzcyBuZSBleHRlbmRzIHp7Y29u''@;'; + put 'put ''c3RydWN0b3IoZyxoLHYseSl7c3VwZXIoKSx0aGlzLl9wYXJlbnRTdWJzY3JpYmVyPWc7bGV0IEMsST10aGlzO3NlKGgpP0M9aDpoJiYoQz1oLm5leHQsdj1oLmVycm9yLHk9aC5jb21wbGV0ZSxoIT09dmUmJihJPU9iamVjdC5jcmVhdGUoaCksc2UoSS51bnN1YnNjcmliZSkmJnRoaXMuYWRk''@;'; + put 'put ''KEkudW5zdWJzY3JpYmUuYmluZChJKSksSS51bnN1YnNjcmliZT10aGlzLnVuc3Vic2NyaWJlLmJpbmQodGhpcykpKSx0aGlzLl9jb250ZXh0PUksdGhpcy5fbmV4dD1DLHRoaXMuX2Vycm9yPXYsdGhpcy5fY29tcGxldGU9eX1uZXh0KGcpe2lmKCF0aGlzLmlzU3RvcHBlZCYmdGhpcy5fbmV4''@;'; + put 'put ''dCl7Y29uc3R7X3BhcmVudFN1YnNjcmliZXI6aH09dGhpcztjZS51c2VEZXByZWNhdGVkU3luY2hyb25vdXNFcnJvckhhbmRsaW5nJiZoLnN5bmNFcnJvclRocm93YWJsZT90aGlzLl9fdHJ5T3JTZXRFcnJvcihoLHRoaXMuX25leHQsZykmJnRoaXMudW5zdWJzY3JpYmUoKTp0aGlzLl9fdHJ5''@;'; + put 'put ''T3JVbnN1Yih0aGlzLl9uZXh0LGcpfX1lcnJvcihnKXtpZighdGhpcy5pc1N0b3BwZWQpe2NvbnN0e19wYXJlbnRTdWJzY3JpYmVyOmh9PXRoaXMse3VzZURlcHJlY2F0ZWRTeW5jaHJvbm91c0Vycm9ySGFuZGxpbmc6dn09Y2U7aWYodGhpcy5fZXJyb3IpdiYmaC5zeW5jRXJyb3JUaHJvd2Fi''@;'; + put 'put ''bGU/KHRoaXMuX190cnlPclNldEVycm9yKGgsdGhpcy5fZXJyb3IsZyksdGhpcy51bnN1YnNjcmliZSgpKToodGhpcy5fX3RyeU9yVW5zdWIodGhpcy5fZXJyb3IsZyksdGhpcy51bnN1YnNjcmliZSgpKTtlbHNlIGlmKGguc3luY0Vycm9yVGhyb3dhYmxlKXY/KGguc3luY0Vycm9yVmFsdWU9''@;'; + put 'put ''ZyxoLnN5bmNFcnJvclRocm93bj0hMCk6ZGUoZyksdGhpcy51bnN1YnNjcmliZSgpO2Vsc2V7aWYodGhpcy51bnN1YnNjcmliZSgpLHYpdGhyb3cgZztkZShnKX19fWNvbXBsZXRlKCl7aWYoIXRoaXMuaXNTdG9wcGVkKXtjb25zdHtfcGFyZW50U3Vic2NyaWJlcjpnfT10aGlzO2lmKHRoaXMu''@;'; + put 'put ''X2NvbXBsZXRlKXtjb25zdCBoPSgpPT50aGlzLl9jb21wbGV0ZS5jYWxsKHRoaXMuX2NvbnRleHQpO2NlLnVzZURlcHJlY2F0ZWRTeW5jaHJvbm91c0Vycm9ySGFuZGxpbmcmJmcuc3luY0Vycm9yVGhyb3dhYmxlPyh0aGlzLl9fdHJ5T3JTZXRFcnJvcihnLGgpLHRoaXMudW5zdWJzY3JpYmUo''@;'; + put 'put ''KSk6KHRoaXMuX190cnlPclVuc3ViKGgpLHRoaXMudW5zdWJzY3JpYmUoKSl9ZWxzZSB0aGlzLnVuc3Vic2NyaWJlKCl9fV9fdHJ5T3JVbnN1YihnLGgpe3RyeXtnLmNhbGwodGhpcy5fY29udGV4dCxoKX1jYXRjaCh2KXtpZih0aGlzLnVuc3Vic2NyaWJlKCksY2UudXNlRGVwcmVjYXRlZFN5''@;'; + put 'put ''bmNocm9ub3VzRXJyb3JIYW5kbGluZyl0aHJvdyB2O2RlKHYpfX1fX3RyeU9yU2V0RXJyb3IoZyxoLHYpe2lmKCFjZS51c2VEZXByZWNhdGVkU3luY2hyb25vdXNFcnJvckhhbmRsaW5nKXRocm93IG5ldyBFcnJvcigiYmFkIGNhbGwiKTt0cnl7aC5jYWxsKHRoaXMuX2NvbnRleHQsdil9Y2F0''@;'; + put 'put ''Y2goeSl7cmV0dXJuIGNlLnVzZURlcHJlY2F0ZWRTeW5jaHJvbm91c0Vycm9ySGFuZGxpbmc/KGcuc3luY0Vycm9yVmFsdWU9eSxnLnN5bmNFcnJvclRocm93bj0hMCwhMCk6KGRlKHkpLCEwKX1yZXR1cm4hMX1fdW5zdWJzY3JpYmUoKXtjb25zdHtfcGFyZW50U3Vic2NyaWJlcjpnfT10aGlz''@;'; + put 'put ''O3RoaXMuX2NvbnRleHQ9bnVsbCx0aGlzLl9wYXJlbnRTdWJzY3JpYmVyPW51bGwsZy51bnN1YnNjcmliZSgpfX1jb25zdCBQPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJlN5bWJvbC5vYnNlcnZhYmxlfHwiQEBvYnNlcnZhYmxlIjtmdW5jdGlvbiBWKGQpe3JldHVybiBkfWZ1bmN0aW9u''@;'; + put 'put ''IFMoZCl7cmV0dXJuIDA9PT1kLmxlbmd0aD9WOjE9PT1kLmxlbmd0aD9kWzBdOmZ1bmN0aW9uKGgpe3JldHVybiBkLnJlZHVjZSgodix5KT0+eSh2KSxoKX19bGV0IEY9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoKXt0aGlzLl9pc1NjYWxhcj0hMSxoJiYodGhpcy5fc3Vic2NyaWJlPWgp''@;'; + put 'put ''fWxpZnQoaCl7Y29uc3Qgdj1uZXcgZDtyZXR1cm4gdi5zb3VyY2U9dGhpcyx2Lm9wZXJhdG9yPWgsdn1zdWJzY3JpYmUoaCx2LHkpe2NvbnN0e29wZXJhdG9yOkN9PXRoaXMsST1mdW5jdGlvbiB4KGQsZyxoKXtpZihkKXtpZihkIGluc3RhbmNlb2YgeilyZXR1cm4gZDtpZihkW2hlXSlyZXR1''@;'; + put 'put ''cm4gZFtoZV0oKX1yZXR1cm4gZHx8Z3x8aD9uZXcgeihkLGcsaCk6bmV3IHoodmUpfShoLHYseSk7aWYoSS5hZGQoQz9DLmNhbGwoSSx0aGlzLnNvdXJjZSk6dGhpcy5zb3VyY2V8fGNlLnVzZURlcHJlY2F0ZWRTeW5jaHJvbm91c0Vycm9ySGFuZGxpbmcmJiFJLnN5bmNFcnJvclRocm93YWJs''@;'; + put 'put ''ZT90aGlzLl9zdWJzY3JpYmUoSSk6dGhpcy5fdHJ5U3Vic2NyaWJlKEkpKSxjZS51c2VEZXByZWNhdGVkU3luY2hyb25vdXNFcnJvckhhbmRsaW5nJiZJLnN5bmNFcnJvclRocm93YWJsZSYmKEkuc3luY0Vycm9yVGhyb3dhYmxlPSExLEkuc3luY0Vycm9yVGhyb3duKSl0aHJvdyBJLnN5bmNF''@;'; + put 'put ''cnJvclZhbHVlO3JldHVybiBJfV90cnlTdWJzY3JpYmUoaCl7dHJ5e3JldHVybiB0aGlzLl9zdWJzY3JpYmUoaCl9Y2F0Y2godil7Y2UudXNlRGVwcmVjYXRlZFN5bmNocm9ub3VzRXJyb3JIYW5kbGluZyYmKGguc3luY0Vycm9yVGhyb3duPSEwLGguc3luY0Vycm9yVmFsdWU9diksZnVuY3Rp''@;'; + put 'put ''b24gdGUoZCl7Zm9yKDtkOyl7Y29uc3R7Y2xvc2VkOmcsZGVzdGluYXRpb246aCxpc1N0b3BwZWQ6dn09ZDtpZihnfHx2KXJldHVybiExO2Q9aCYmaCBpbnN0YW5jZW9mIHo/aDpudWxsfXJldHVybiEwfShoKT9oLmVycm9yKHYpOmNvbnNvbGUud2Fybih2KX19Zm9yRWFjaChoLHYpe3JldHVy''@;'; + put 'put ''biBuZXcodj15ZSh2KSkoKHksQyk9PntsZXQgSTtJPXRoaXMuc3Vic2NyaWJlKGo9Pnt0cnl7aChqKX1jYXRjaCh1ZSl7Qyh1ZSksSSYmSS51bnN1YnNjcmliZSgpfX0sQyx5KX0pfV9zdWJzY3JpYmUoaCl7Y29uc3R7c291cmNlOnZ9PXRoaXM7cmV0dXJuIHYmJnYuc3Vic2NyaWJlKGgpfVtQ''@;'; + put 'put ''XSgpe3JldHVybiB0aGlzfXBpcGUoLi4uaCl7cmV0dXJuIDA9PT1oLmxlbmd0aD90aGlzOlMoaCkodGhpcyl9dG9Qcm9taXNlKGgpe3JldHVybiBuZXcoaD15ZShoKSkoKHYseSk9PntsZXQgQzt0aGlzLnN1YnNjcmliZShJPT5DPUksST0+eShJKSwoKT0+dihDKSl9KX19cmV0dXJuIGQuY3Jl''@;'; + put 'put ''YXRlPWc9Pm5ldyBkKGcpLGR9KSgpO2Z1bmN0aW9uIHllKGQpe2lmKGR8fChkPWNlLlByb21pc2V8fFByb21pc2UpLCFkKXRocm93IG5ldyBFcnJvcigibm8gUHJvbWlzZSBpbXBsIGZvdW5kIik7cmV0dXJuIGR9Y29uc3QgRGU9KCgpPT57ZnVuY3Rpb24gZCgpe3JldHVybiBFcnJvci5jYWxs''@;'; + put 'put ''KHRoaXMpLHRoaXMubWVzc2FnZT0ib2JqZWN0IHVuc3Vic2NyaWJlZCIsdGhpcy5uYW1lPSJPYmplY3RVbnN1YnNjcmliZWRFcnJvciIsdGhpc31yZXR1cm4gZC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShFcnJvci5wcm90b3R5cGUpLGR9KSgpO2NsYXNzIFBlIGV4dGVuZHMgVGV7Y29uc3Ry''@;'; + put 'put ''dWN0b3IoZyxoKXtzdXBlcigpLHRoaXMuc3ViamVjdD1nLHRoaXMuc3Vic2NyaWJlcj1oLHRoaXMuY2xvc2VkPSExfXVuc3Vic2NyaWJlKCl7aWYodGhpcy5jbG9zZWQpcmV0dXJuO3RoaXMuY2xvc2VkPSEwO2NvbnN0IGc9dGhpcy5zdWJqZWN0LGg9Zy5vYnNlcnZlcnM7aWYodGhpcy5zdWJq''@;'; + put 'put ''ZWN0PW51bGwsIWh8fDA9PT1oLmxlbmd0aHx8Zy5pc1N0b3BwZWR8fGcuY2xvc2VkKXJldHVybjtjb25zdCB2PWguaW5kZXhPZih0aGlzLnN1YnNjcmliZXIpOy0xIT09diYmaC5zcGxpY2UodiwxKX19Y2xhc3MgUWUgZXh0ZW5kcyB6e2NvbnN0cnVjdG9yKGcpe3N1cGVyKGcpLHRoaXMuZGVz''@;'; + put 'put ''dGluYXRpb249Z319bGV0ICRlPSgoKT0+e2NsYXNzIGQgZXh0ZW5kcyBGe2NvbnN0cnVjdG9yKCl7c3VwZXIoKSx0aGlzLm9ic2VydmVycz1bXSx0aGlzLmNsb3NlZD0hMSx0aGlzLmlzU3RvcHBlZD0hMSx0aGlzLmhhc0Vycm9yPSExLHRoaXMudGhyb3duRXJyb3I9bnVsbH1baGVdKCl7cmV0''@;'; + put 'put ''dXJuIG5ldyBRZSh0aGlzKX1saWZ0KGgpe2NvbnN0IHY9bmV3IGd0KHRoaXMsdGhpcyk7cmV0dXJuIHYub3BlcmF0b3I9aCx2fW5leHQoaCl7aWYodGhpcy5jbG9zZWQpdGhyb3cgbmV3IERlO2lmKCF0aGlzLmlzU3RvcHBlZCl7Y29uc3R7b2JzZXJ2ZXJzOnZ9PXRoaXMseT12Lmxlbmd0aCxD''@;'; + put 'put ''PXYuc2xpY2UoKTtmb3IobGV0IEk9MDtJPHk7SSsrKUNbSV0ubmV4dChoKX19ZXJyb3IoaCl7aWYodGhpcy5jbG9zZWQpdGhyb3cgbmV3IERlO3RoaXMuaGFzRXJyb3I9ITAsdGhpcy50aHJvd25FcnJvcj1oLHRoaXMuaXNTdG9wcGVkPSEwO2NvbnN0e29ic2VydmVyczp2fT10aGlzLHk9di5s''@;'; + put 'put ''ZW5ndGgsQz12LnNsaWNlKCk7Zm9yKGxldCBJPTA7STx5O0krKylDW0ldLmVycm9yKGgpO3RoaXMub2JzZXJ2ZXJzLmxlbmd0aD0wfWNvbXBsZXRlKCl7aWYodGhpcy5jbG9zZWQpdGhyb3cgbmV3IERlO3RoaXMuaXNTdG9wcGVkPSEwO2NvbnN0e29ic2VydmVyczpofT10aGlzLHY9aC5sZW5n''@;'; + put 'put ''dGgseT1oLnNsaWNlKCk7Zm9yKGxldCBDPTA7Qzx2O0MrKyl5W0NdLmNvbXBsZXRlKCk7dGhpcy5vYnNlcnZlcnMubGVuZ3RoPTB9dW5zdWJzY3JpYmUoKXt0aGlzLmlzU3RvcHBlZD0hMCx0aGlzLmNsb3NlZD0hMCx0aGlzLm9ic2VydmVycz1udWxsfV90cnlTdWJzY3JpYmUoaCl7aWYodGhp''@;'; + put 'put ''cy5jbG9zZWQpdGhyb3cgbmV3IERlO3JldHVybiBzdXBlci5fdHJ5U3Vic2NyaWJlKGgpfV9zdWJzY3JpYmUoaCl7aWYodGhpcy5jbG9zZWQpdGhyb3cgbmV3IERlO3JldHVybiB0aGlzLmhhc0Vycm9yPyhoLmVycm9yKHRoaXMudGhyb3duRXJyb3IpLFRlLkVNUFRZKTp0aGlzLmlzU3RvcHBl''@;'; + put 'put ''ZD8oaC5jb21wbGV0ZSgpLFRlLkVNUFRZKToodGhpcy5vYnNlcnZlcnMucHVzaChoKSxuZXcgUGUodGhpcyxoKSl9YXNPYnNlcnZhYmxlKCl7Y29uc3QgaD1uZXcgRjtyZXR1cm4gaC5zb3VyY2U9dGhpcyxofX1yZXR1cm4gZC5jcmVhdGU9KGcsaCk9Pm5ldyBndChnLGgpLGR9KSgpO2NsYXNz''@;'; + put 'put ''IGd0IGV4dGVuZHMgJGV7Y29uc3RydWN0b3IoZyxoKXtzdXBlcigpLHRoaXMuZGVzdGluYXRpb249Zyx0aGlzLnNvdXJjZT1ofW5leHQoZyl7Y29uc3R7ZGVzdGluYXRpb246aH09dGhpcztoJiZoLm5leHQmJmgubmV4dChnKX1lcnJvcihnKXtjb25zdHtkZXN0aW5hdGlvbjpofT10aGlzO2gm''@;'; + put 'put ''JmguZXJyb3ImJnRoaXMuZGVzdGluYXRpb24uZXJyb3IoZyl9Y29tcGxldGUoKXtjb25zdHtkZXN0aW5hdGlvbjpnfT10aGlzO2cmJmcuY29tcGxldGUmJnRoaXMuZGVzdGluYXRpb24uY29tcGxldGUoKX1fc3Vic2NyaWJlKGcpe2NvbnN0e3NvdXJjZTpofT10aGlzO3JldHVybiBoP3RoaXMu''@;'; + put 'put ''c291cmNlLnN1YnNjcmliZShnKTpUZS5FTVBUWX19ZnVuY3Rpb24gd3QoZCl7cmV0dXJuIGQmJiJmdW5jdGlvbiI9PXR5cGVvZiBkLnNjaGVkdWxlfWZ1bmN0aW9uIG10KGQsZyl7cmV0dXJuIGZ1bmN0aW9uKHYpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBkKXRocm93IG5ldyBUeXBlRXJyb3Io''@;'; + put 'put ''ImFyZ3VtZW50IGlzIG5vdCBhIGZ1bmN0aW9uLiBBcmUgeW91IGxvb2tpbmcgZm9yIGBtYXBUbygpYD8iKTtyZXR1cm4gdi5saWZ0KG5ldyB2dChkLGcpKX19Y2xhc3MgdnR7Y29uc3RydWN0b3IoZyxoKXt0aGlzLnByb2plY3Q9Zyx0aGlzLnRoaXNBcmc9aH1jYWxsKGcsaCl7cmV0dXJuIGgu''@;'; + put 'put ''c3Vic2NyaWJlKG5ldyBBdChnLHRoaXMucHJvamVjdCx0aGlzLnRoaXNBcmcpKX19Y2xhc3MgQXQgZXh0ZW5kcyB6e2NvbnN0cnVjdG9yKGcsaCx2KXtzdXBlcihnKSx0aGlzLnByb2plY3Q9aCx0aGlzLmNvdW50PTAsdGhpcy50aGlzQXJnPXZ8fHRoaXN9X25leHQoZyl7bGV0IGg7dHJ5e2g9''@;'; + put 'put ''dGhpcy5wcm9qZWN0LmNhbGwodGhpcy50aGlzQXJnLGcsdGhpcy5jb3VudCsrKX1jYXRjaCh2KXtyZXR1cm4gdm9pZCB0aGlzLmRlc3RpbmF0aW9uLmVycm9yKHYpfXRoaXMuZGVzdGluYXRpb24ubmV4dChoKX19Y29uc3QgaHQ9ZD0+Zz0+e2ZvcihsZXQgaD0wLHY9ZC5sZW5ndGg7aDx2JiYh''@;'; + put 'put ''Zy5jbG9zZWQ7aCsrKWcubmV4dChkW2hdKTtnLmNvbXBsZXRlKCl9LF90PWZ1bmN0aW9uIG9uKCl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmU3ltYm9sLml0ZXJhdG9yP1N5bWJvbC5pdGVyYXRvcjoiQEBpdGVyYXRvciJ9KCksTHQ9ZD0+ZCYmIm51bWJlciI9PXR5cGVvZiBk''@;'; + put 'put ''Lmxlbmd0aCYmImZ1bmN0aW9uIiE9dHlwZW9mIGQ7ZnVuY3Rpb24gQ3QoZCl7cmV0dXJuISFkJiYiZnVuY3Rpb24iIT10eXBlb2YgZC5zdWJzY3JpYmUmJiJmdW5jdGlvbiI9PXR5cGVvZiBkLnRoZW59Y29uc3QgZnQ9ZD0+e2lmKGQmJiJmdW5jdGlvbiI9PXR5cGVvZiBkW1BdKXJldHVybihk''@;'; + put 'put ''PT5nPT57Y29uc3QgaD1kW1BdKCk7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGguc3Vic2NyaWJlKXRocm93IG5ldyBUeXBlRXJyb3IoIlByb3ZpZGVkIG9iamVjdCBkb2VzIG5vdCBjb3JyZWN0bHkgaW1wbGVtZW50IFN5bWJvbC5vYnNlcnZhYmxlIik7cmV0dXJuIGguc3Vic2NyaWJlKGcpfSko''@;'; + put 'put ''ZCk7aWYoTHQoZCkpcmV0dXJuIGh0KGQpO2lmKEN0KGQpKXJldHVybihkPT5nPT4oZC50aGVuKGg9PntnLmNsb3NlZHx8KGcubmV4dChoKSxnLmNvbXBsZXRlKCkpfSxoPT5nLmVycm9yKGgpKS50aGVuKG51bGwsZGUpLGcpKShkKTtpZihkJiYiZnVuY3Rpb24iPT10eXBlb2YgZFtfdF0pcmV0''@;'; + put 'put ''dXJuKGQ9Pmc9Pntjb25zdCBoPWRbX3RdKCk7Zm9yKDs7KXtsZXQgdjt0cnl7dj1oLm5leHQoKX1jYXRjaCh5KXtyZXR1cm4gZy5lcnJvcih5KSxnfWlmKHYuZG9uZSl7Zy5jb21wbGV0ZSgpO2JyZWFrfWlmKGcubmV4dCh2LnZhbHVlKSxnLmNsb3NlZClicmVha31yZXR1cm4iZnVuY3Rpb24i''@;'; + put 'put ''PT10eXBlb2YgaC5yZXR1cm4mJmcuYWRkKCgpPT57aC5yZXR1cm4mJmgucmV0dXJuKCl9KSxnfSkoZCk7e2NvbnN0IGg9YFlvdSBwcm92aWRlZCAke2tlKGQpPyJhbiBpbnZhbGlkIG9iamVjdCI6YCcke2R9J2B9IHdoZXJlIGEgc3RyZWFtIHdhcyBleHBlY3RlZC4gWW91IGNhbiBwcm92aWRl''@;'; + put 'put ''IGFuIE9ic2VydmFibGUsIFByb21pc2UsIEFycmF5LCBvciBJdGVyYWJsZS5gO3Rocm93IG5ldyBUeXBlRXJyb3IoaCl9fTtmdW5jdGlvbiBVZShkLGcpe3JldHVybiBuZXcgRihoPT57Y29uc3Qgdj1uZXcgVGU7bGV0IHk9MDtyZXR1cm4gdi5hZGQoZy5zY2hlZHVsZShmdW5jdGlvbigpe3kh''@;'; + put 'put ''PT1kLmxlbmd0aD8oaC5uZXh0KGRbeSsrXSksaC5jbG9zZWR8fHYuYWRkKHRoaXMuc2NoZWR1bGUoKSkpOmguY29tcGxldGUoKX0pKSx2fSl9ZnVuY3Rpb24gZG4oZCxnKXtyZXR1cm4gZz9mdW5jdGlvbiBnbihkLGcpe2lmKG51bGwhPWQpe2lmKGZ1bmN0aW9uIGp0KGQpe3JldHVybiBkJiYi''@;'; + put 'put ''ZnVuY3Rpb24iPT10eXBlb2YgZFtQXX0oZCkpcmV0dXJuIGZ1bmN0aW9uIEh0KGQsZyl7cmV0dXJuIG5ldyBGKGg9Pntjb25zdCB2PW5ldyBUZTtyZXR1cm4gdi5hZGQoZy5zY2hlZHVsZSgoKT0+e2NvbnN0IHk9ZFtQXSgpO3YuYWRkKHkuc3Vic2NyaWJlKHtuZXh0KEMpe3YuYWRkKGcuc2No''@;'; + put 'put ''ZWR1bGUoKCk9PmgubmV4dChDKSkpfSxlcnJvcihDKXt2LmFkZChnLnNjaGVkdWxlKCgpPT5oLmVycm9yKEMpKSl9LGNvbXBsZXRlKCl7di5hZGQoZy5zY2hlZHVsZSgoKT0+aC5jb21wbGV0ZSgpKSl9fSkpfSkpLHZ9KX0oZCxnKTtpZihDdChkKSlyZXR1cm4gZnVuY3Rpb24gR2UoZCxnKXty''@;'; + put 'put ''ZXR1cm4gbmV3IEYoaD0+e2NvbnN0IHY9bmV3IFRlO3JldHVybiB2LmFkZChnLnNjaGVkdWxlKCgpPT5kLnRoZW4oeT0+e3YuYWRkKGcuc2NoZWR1bGUoKCk9PntoLm5leHQoeSksdi5hZGQoZy5zY2hlZHVsZSgoKT0+aC5jb21wbGV0ZSgpKSl9KSl9LHk9Pnt2LmFkZChnLnNjaGVkdWxlKCgp''@;'; + put 'put ''PT5oLmVycm9yKHkpKSl9KSkpLHZ9KX0oZCxnKTtpZihMdChkKSlyZXR1cm4gVWUoZCxnKTtpZihmdW5jdGlvbiBRdChkKXtyZXR1cm4gZCYmImZ1bmN0aW9uIj09dHlwZW9mIGRbX3RdfShkKXx8InN0cmluZyI9PXR5cGVvZiBkKXJldHVybiBmdW5jdGlvbiB5dChkLGcpe2lmKCFkKXRocm93''@;'; + put 'put ''IG5ldyBFcnJvcigiSXRlcmFibGUgY2Fubm90IGJlIG51bGwiKTtyZXR1cm4gbmV3IEYoaD0+e2NvbnN0IHY9bmV3IFRlO2xldCB5O3JldHVybiB2LmFkZCgoKT0+e3kmJiJmdW5jdGlvbiI9PXR5cGVvZiB5LnJldHVybiYmeS5yZXR1cm4oKX0pLHYuYWRkKGcuc2NoZWR1bGUoKCk9Pnt5PWRb''@;'; + put 'put ''X3RdKCksdi5hZGQoZy5zY2hlZHVsZShmdW5jdGlvbigpe2lmKGguY2xvc2VkKXJldHVybjtsZXQgQyxJO3RyeXtjb25zdCBqPXkubmV4dCgpO0M9ai52YWx1ZSxJPWouZG9uZX1jYXRjaChqKXtyZXR1cm4gdm9pZCBoLmVycm9yKGopfUk/aC5jb21wbGV0ZSgpOihoLm5leHQoQyksdGhpcy5z''@;'; + put 'put ''Y2hlZHVsZSgpKX0pKX0pKSx2fSl9KGQsZyl9dGhyb3cgbmV3IFR5cGVFcnJvcigobnVsbCE9PWQmJnR5cGVvZiBkfHxkKSsiIGlzIG5vdCBvYnNlcnZhYmxlIil9KGQsZyk6ZCBpbnN0YW5jZW9mIEY/ZDpuZXcgRihmdChkKSl9Y2xhc3MgeW4gZXh0ZW5kcyB6e2NvbnN0cnVjdG9yKGcpe3N1''@;'; + put 'put ''cGVyKCksdGhpcy5wYXJlbnQ9Z31fbmV4dChnKXt0aGlzLnBhcmVudC5ub3RpZnlOZXh0KGcpfV9lcnJvcihnKXt0aGlzLnBhcmVudC5ub3RpZnlFcnJvcihnKSx0aGlzLnVuc3Vic2NyaWJlKCl9X2NvbXBsZXRlKCl7dGhpcy5wYXJlbnQubm90aWZ5Q29tcGxldGUoKSx0aGlzLnVuc3Vic2Ny''@;'; + put 'put ''aWJlKCl9fWNsYXNzIE5uIGV4dGVuZHMgentub3RpZnlOZXh0KGcpe3RoaXMuZGVzdGluYXRpb24ubmV4dChnKX1ub3RpZnlFcnJvcihnKXt0aGlzLmRlc3RpbmF0aW9uLmVycm9yKGcpfW5vdGlmeUNvbXBsZXRlKCl7dGhpcy5kZXN0aW5hdGlvbi5jb21wbGV0ZSgpfX1mdW5jdGlvbiBlcihk''@;'; + put 'put ''LGcpe2lmKGcuY2xvc2VkKXJldHVybjtpZihkIGluc3RhbmNlb2YgRilyZXR1cm4gZC5zdWJzY3JpYmUoZyk7bGV0IGg7dHJ5e2g9ZnQoZCkoZyl9Y2F0Y2godil7Zy5lcnJvcih2KX1yZXR1cm4gaH1mdW5jdGlvbiBzcihkLGcsaD1OdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkpe3JldHVybiJm''@;'; + put 'put ''dW5jdGlvbiI9PXR5cGVvZiBnP3Y9PnYucGlwZShzcigoeSxDKT0+ZG4oZCh5LEMpKS5waXBlKG10KChJLGopPT5nKHksSSxDLGopKSksaCkpOigibnVtYmVyIj09dHlwZW9mIGcmJihoPWcpLHY9PnYubGlmdChuZXcgWG4oZCxoKSkpfWNsYXNzIFhue2NvbnN0cnVjdG9yKGcsaD1OdW1iZXIu''@;'; + put 'put ''UE9TSVRJVkVfSU5GSU5JVFkpe3RoaXMucHJvamVjdD1nLHRoaXMuY29uY3VycmVudD1ofWNhbGwoZyxoKXtyZXR1cm4gaC5zdWJzY3JpYmUobmV3IEZyKGcsdGhpcy5wcm9qZWN0LHRoaXMuY29uY3VycmVudCkpfX1jbGFzcyBGciBleHRlbmRzIE5ue2NvbnN0cnVjdG9yKGcsaCx2PU51bWJl''@;'; + put 'put ''ci5QT1NJVElWRV9JTkZJTklUWSl7c3VwZXIoZyksdGhpcy5wcm9qZWN0PWgsdGhpcy5jb25jdXJyZW50PXYsdGhpcy5oYXNDb21wbGV0ZWQ9ITEsdGhpcy5idWZmZXI9W10sdGhpcy5hY3RpdmU9MCx0aGlzLmluZGV4PTB9X25leHQoZyl7dGhpcy5hY3RpdmU8dGhpcy5jb25jdXJyZW50P3Ro''@;'; + put 'put ''aXMuX3RyeU5leHQoZyk6dGhpcy5idWZmZXIucHVzaChnKX1fdHJ5TmV4dChnKXtsZXQgaDtjb25zdCB2PXRoaXMuaW5kZXgrKzt0cnl7aD10aGlzLnByb2plY3QoZyx2KX1jYXRjaCh5KXtyZXR1cm4gdm9pZCB0aGlzLmRlc3RpbmF0aW9uLmVycm9yKHkpfXRoaXMuYWN0aXZlKyssdGhpcy5f''@;'; + put 'put ''aW5uZXJTdWIoaCl9X2lubmVyU3ViKGcpe2NvbnN0IGg9bmV3IHluKHRoaXMpLHY9dGhpcy5kZXN0aW5hdGlvbjt2LmFkZChoKTtjb25zdCB5PWVyKGcsaCk7eSE9PWgmJnYuYWRkKHkpfV9jb21wbGV0ZSgpe3RoaXMuaGFzQ29tcGxldGVkPSEwLDA9PT10aGlzLmFjdGl2ZSYmMD09PXRoaXMu''@;'; + put 'put ''YnVmZmVyLmxlbmd0aCYmdGhpcy5kZXN0aW5hdGlvbi5jb21wbGV0ZSgpLHRoaXMudW5zdWJzY3JpYmUoKX1ub3RpZnlOZXh0KGcpe3RoaXMuZGVzdGluYXRpb24ubmV4dChnKX1ub3RpZnlDb21wbGV0ZSgpe2NvbnN0IGc9dGhpcy5idWZmZXI7dGhpcy5hY3RpdmUtLSxnLmxlbmd0aD4wP3Ro''@;'; + put 'put ''aXMuX25leHQoZy5zaGlmdCgpKTowPT09dGhpcy5hY3RpdmUmJnRoaXMuaGFzQ29tcGxldGVkJiZ0aGlzLmRlc3RpbmF0aW9uLmNvbXBsZXRlKCl9fWZ1bmN0aW9uIHF0KGQ9TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZKXtyZXR1cm4gc3IoVixkKX1mdW5jdGlvbiBwcihkLGcpe3JldHVybiBn''@;'; + put 'put ''P1VlKGQsZyk6bmV3IEYoaHQoZCkpfWZ1bmN0aW9uIG5yKC4uLmQpe2xldCBnPU51bWJlci5QT1NJVElWRV9JTkZJTklUWSxoPW51bGwsdj1kW2QubGVuZ3RoLTFdO3JldHVybiB3dCh2KT8oaD1kLnBvcCgpLGQubGVuZ3RoPjEmJiJudW1iZXIiPT10eXBlb2YgZFtkLmxlbmd0aC0xXSYmKGc9''@;'; + put 'put ''ZC5wb3AoKSkpOiJudW1iZXIiPT10eXBlb2YgdiYmKGc9ZC5wb3AoKSksbnVsbD09PWgmJjE9PT1kLmxlbmd0aCYmZFswXWluc3RhbmNlb2YgRj9kWzBdOnF0KGcpKHByKGQsaCkpfWZ1bmN0aW9uIEFuKCl7cmV0dXJuIGZ1bmN0aW9uKGcpe3JldHVybiBnLmxpZnQobmV3IHFuKGcpKX19Y2xh''@;'; + put 'put ''c3MgcW57Y29uc3RydWN0b3IoZyl7dGhpcy5jb25uZWN0YWJsZT1nfWNhbGwoZyxoKXtjb25zdHtjb25uZWN0YWJsZTp2fT10aGlzO3YuX3JlZkNvdW50Kys7Y29uc3QgeT1uZXcgV3QoZyx2KSxDPWguc3Vic2NyaWJlKHkpO3JldHVybiB5LmNsb3NlZHx8KHkuY29ubmVjdGlvbj12LmNvbm5l''@;'; + put 'put ''Y3QoKSksQ319Y2xhc3MgV3QgZXh0ZW5kcyB6e2NvbnN0cnVjdG9yKGcsaCl7c3VwZXIoZyksdGhpcy5jb25uZWN0YWJsZT1ofV91bnN1YnNjcmliZSgpe2NvbnN0e2Nvbm5lY3RhYmxlOmd9PXRoaXM7aWYoIWcpcmV0dXJuIHZvaWQodGhpcy5jb25uZWN0aW9uPW51bGwpO3RoaXMuY29ubmVj''@;'; + put 'put ''dGFibGU9bnVsbDtjb25zdCBoPWcuX3JlZkNvdW50O2lmKGg8PTApcmV0dXJuIHZvaWQodGhpcy5jb25uZWN0aW9uPW51bGwpO2lmKGcuX3JlZkNvdW50PWgtMSxoPjEpcmV0dXJuIHZvaWQodGhpcy5jb25uZWN0aW9uPW51bGwpO2NvbnN0e2Nvbm5lY3Rpb246dn09dGhpcyx5PWcuX2Nvbm5l''@;'; + put 'put ''Y3Rpb247dGhpcy5jb25uZWN0aW9uPW51bGwseSYmKCF2fHx5PT09dikmJnkudW5zdWJzY3JpYmUoKX19Y2xhc3MgcG4gZXh0ZW5kcyBGe2NvbnN0cnVjdG9yKGcsaCl7c3VwZXIoKSx0aGlzLnNvdXJjZT1nLHRoaXMuc3ViamVjdEZhY3Rvcnk9aCx0aGlzLl9yZWZDb3VudD0wLHRoaXMuX2lz''@;'; + put 'put ''Q29tcGxldGU9ITF9X3N1YnNjcmliZShnKXtyZXR1cm4gdGhpcy5nZXRTdWJqZWN0KCkuc3Vic2NyaWJlKGcpfWdldFN1YmplY3QoKXtjb25zdCBnPXRoaXMuX3N1YmplY3Q7cmV0dXJuKCFnfHxnLmlzU3RvcHBlZCkmJih0aGlzLl9zdWJqZWN0PXRoaXMuc3ViamVjdEZhY3RvcnkoKSksdGhp''@;'; + put 'put ''cy5fc3ViamVjdH1jb25uZWN0KCl7bGV0IGc9dGhpcy5fY29ubmVjdGlvbjtyZXR1cm4gZ3x8KHRoaXMuX2lzQ29tcGxldGU9ITEsZz10aGlzLl9jb25uZWN0aW9uPW5ldyBUZSxnLmFkZCh0aGlzLnNvdXJjZS5zdWJzY3JpYmUobmV3IE50KHRoaXMuZ2V0U3ViamVjdCgpLHRoaXMpKSksZy5j''@;'; + put 'put ''bG9zZWQmJih0aGlzLl9jb25uZWN0aW9uPW51bGwsZz1UZS5FTVBUWSkpLGd9cmVmQ291bnQoKXtyZXR1cm4gQW4oKSh0aGlzKX19Y29uc3QgS249KCgpPT57Y29uc3QgZD1wbi5wcm90b3R5cGU7cmV0dXJue29wZXJhdG9yOnt2YWx1ZTpudWxsfSxfcmVmQ291bnQ6e3ZhbHVlOjAsd3JpdGFi''@;'; + put 'put ''bGU6ITB9LF9zdWJqZWN0Ont2YWx1ZTpudWxsLHdyaXRhYmxlOiEwfSxfY29ubmVjdGlvbjp7dmFsdWU6bnVsbCx3cml0YWJsZTohMH0sX3N1YnNjcmliZTp7dmFsdWU6ZC5fc3Vic2NyaWJlfSxfaXNDb21wbGV0ZTp7dmFsdWU6ZC5faXNDb21wbGV0ZSx3cml0YWJsZTohMH0sZ2V0U3ViamVj''@;'; + put 'put ''dDp7dmFsdWU6ZC5nZXRTdWJqZWN0fSxjb25uZWN0Ont2YWx1ZTpkLmNvbm5lY3R9LHJlZkNvdW50Ont2YWx1ZTpkLnJlZkNvdW50fX19KSgpO2NsYXNzIE50IGV4dGVuZHMgUWV7Y29uc3RydWN0b3IoZyxoKXtzdXBlcihnKSx0aGlzLmNvbm5lY3RhYmxlPWh9X2Vycm9yKGcpe3RoaXMuX3Vu''@;'; + put 'put ''c3Vic2NyaWJlKCksc3VwZXIuX2Vycm9yKGcpfV9jb21wbGV0ZSgpe3RoaXMuY29ubmVjdGFibGUuX2lzQ29tcGxldGU9ITAsdGhpcy5fdW5zdWJzY3JpYmUoKSxzdXBlci5fY29tcGxldGUoKX1fdW5zdWJzY3JpYmUoKXtjb25zdCBnPXRoaXMuY29ubmVjdGFibGU7aWYoZyl7dGhpcy5jb25u''@;'; + put 'put ''ZWN0YWJsZT1udWxsO2NvbnN0IGg9Zy5fY29ubmVjdGlvbjtnLl9yZWZDb3VudD0wLGcuX3N1YmplY3Q9bnVsbCxnLl9jb25uZWN0aW9uPW51bGwsaCYmaC51bnN1YnNjcmliZSgpfX19Y2xhc3MgdG57Y29uc3RydWN0b3IoZyxoKXt0aGlzLnN1YmplY3RGYWN0b3J5PWcsdGhpcy5zZWxlY3Rv''@;'; + put 'put ''cj1ofWNhbGwoZyxoKXtjb25zdHtzZWxlY3Rvcjp2fT10aGlzLHk9dGhpcy5zdWJqZWN0RmFjdG9yeSgpLEM9dih5KS5zdWJzY3JpYmUoZyk7cmV0dXJuIEMuYWRkKGguc3Vic2NyaWJlKHkpKSxDfX1mdW5jdGlvbiB6bigpe3JldHVybiBuZXcgJGV9ZnVuY3Rpb24gQm4oZCl7Zm9yKGxldCBn''@;'; + put 'put ''IGluIGQpaWYoZFtnXT09PUJuKXJldHVybiBnO3Rocm93IEVycm9yKCJDb3VsZCBub3QgZmluZCByZW5hbWVkIHByb3BlcnR5IG9uIHRhcmdldCBvYmplY3QuIil9ZnVuY3Rpb24ga3IoZCxnKXtmb3IoY29uc3QgaCBpbiBnKWcuaGFzT3duUHJvcGVydHkoaCkmJiFkLmhhc093blByb3BlcnR5''@;'; + put 'put ''KGgpJiYoZFtoXT1nW2hdKX1mdW5jdGlvbiBtbihkKXtpZigic3RyaW5nIj09dHlwZW9mIGQpcmV0dXJuIGQ7aWYoQXJyYXkuaXNBcnJheShkKSlyZXR1cm4iWyIrZC5tYXAobW4pLmpvaW4oIiwgIikrIl0iO2lmKG51bGw9PWQpcmV0dXJuIiIrZDtpZihkLm92ZXJyaWRkZW5OYW1lKXJldHVy''@;'; + put 'put ''bmAke2Qub3ZlcnJpZGRlbk5hbWV9YDtpZihkLm5hbWUpcmV0dXJuYCR7ZC5uYW1lfWA7Y29uc3QgZz1kLnRvU3RyaW5nKCk7aWYobnVsbD09ZylyZXR1cm4iIitnO2NvbnN0IGg9Zy5pbmRleE9mKCJcbiIpO3JldHVybi0xPT09aD9nOmcuc3Vic3RyaW5nKDAsaCl9ZnVuY3Rpb24gdW4oZCxn''@;'; + put 'put ''KXtyZXR1cm4gbnVsbD09ZHx8IiI9PT1kP251bGw9PT1nPyIiOmc6bnVsbD09Z3x8IiI9PT1nP2Q6ZCsiICIrZ31jb25zdCBjbj1Cbih7X19mb3J3YXJkX3JlZl9fOkJufSk7ZnVuY3Rpb24gX24oZCl7cmV0dXJuIGQuX19mb3J3YXJkX3JlZl9fPV9uLGQudG9TdHJpbmc9ZnVuY3Rpb24oKXty''@;'; + put 'put ''ZXR1cm4gbW4odGhpcygpKX0sZH1mdW5jdGlvbiBHdChkKXtyZXR1cm4ga24oZCk/ZCgpOmR9ZnVuY3Rpb24ga24oZCl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIGQmJmQuaGFzT3duUHJvcGVydHkoY24pJiZkLl9fZm9yd2FyZF9yZWZfXz09PV9ufWNsYXNzIGVuIGV4dGVuZHMgRXJyb3J7''@;'; + put 'put ''Y29uc3RydWN0b3IoZyxoKXtzdXBlcihmdW5jdGlvbiBJbihkLGcpe3JldHVybmBORzAke01hdGguYWJzKGQpfSR7Zz8iOiAiK2cudHJpbSgpOiIifWB9KGcsaCkpLHRoaXMuY29kZT1nfX1mdW5jdGlvbiBKbihkKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGQ/ZDpudWxsPT1kPyIiOlN0cmlu''@;'; + put 'put ''ZyhkKX1mdW5jdGlvbiBpaShkLGcpe3Rocm93IG5ldyBlbigtMjAxLCExKX1mdW5jdGlvbiBsbChkLGcpe251bGw9PWQmJmZ1bmN0aW9uIFFpKGQsZyxoLHYpe3Rocm93IG5ldyBFcnJvcihgQVNTRVJUSU9OIEVSUk9SOiAke2R9YCsobnVsbD09dj8iIjpgIFtFeHBlY3RlZD0+ICR7aH0gJHt2''@;'; + put 'put ''fSAke2d9IDw9QWN0dWFsXWApKX0oZyxkLG51bGwsIiE9Iil9ZnVuY3Rpb24gQWkoZCl7cmV0dXJue3Rva2VuOmQudG9rZW4scHJvdmlkZWRJbjpkLnByb3ZpZGVkSW58fG51bGwsZmFjdG9yeTpkLmZhY3RvcnksdmFsdWU6dm9pZCAwfX1jb25zdCB2aT1BaTtmdW5jdGlvbiBiMChkKXtyZXR1''@;'; + put 'put ''cm57cHJvdmlkZXJzOmQucHJvdmlkZXJzfHxbXSxpbXBvcnRzOmQuaW1wb3J0c3x8W119fWZ1bmN0aW9uIHNhKGQpe3JldHVybiBybChkLFUwKXx8cmwoZCxYMCl9ZnVuY3Rpb24gcmwoZCxnKXtyZXR1cm4gZC5oYXNPd25Qcm9wZXJ0eShnKT9kW2ddOm51bGx9ZnVuY3Rpb24gSGMoZCl7cmV0''@;'; + put 'put ''dXJuIGQmJihkLmhhc093blByb3BlcnR5KFJzKXx8ZC5oYXNPd25Qcm9wZXJ0eSh1YSkpP2RbUnNdOm51bGx9Y29uc3QgVTA9Qm4oe1x1MDI3NXByb3Y6Qm59KSxScz1Cbih7XHUwMjc1aW5qOkJufSksWDA9Qm4oe25nSW5qZWN0YWJsZURlZjpCbn0pLHVhPUJuKHtuZ0luamVjdG9yRGVmOkJu''@;'; + put 'put ''fSk7dmFyIGowPSgoKT0+KChqMD1qMHx8e30pW2owLkRlZmF1bHQ9MF09IkRlZmF1bHQiLGowW2owLkhvc3Q9MV09Ikhvc3QiLGowW2owLlNlbGY9Ml09IlNlbGYiLGowW2owLlNraXBTZWxmPTRdPSJTa2lwU2VsZiIsajBbajAuT3B0aW9uYWw9OF09Ik9wdGlvbmFsIixqMCkpKCk7bGV0IEJs''@;'; + put 'put ''O2Z1bmN0aW9uIF8wKGQpe2NvbnN0IGc9Qmw7cmV0dXJuIEJsPWQsZ31mdW5jdGlvbiBnYyhkLGcsaCl7Y29uc3Qgdj1zYShkKTtyZXR1cm4gdiYmInJvb3QiPT12LnByb3ZpZGVkSW4/dm9pZCAwPT09di52YWx1ZT92LnZhbHVlPXYuZmFjdG9yeSgpOnYudmFsdWU6aCZqMC5PcHRpb25hbD9u''@;'; + put 'put ''dWxsOnZvaWQgMCE9PWc/Zzp2b2lkIGlpKG1uKGQpKX1mdW5jdGlvbiBCMShkKXtyZXR1cm57dG9TdHJpbmc6ZH0udG9TdHJpbmcoKX12YXIgYXU9KCgpPT4oKGF1PWF1fHx7fSlbYXUuT25QdXNoPTBdPSJPblB1c2giLGF1W2F1LkRlZmF1bHQ9MV09IkRlZmF1bHQiLGF1KSkoKSx4Mj0oKCk9''@;'; + put 'put ''PihmdW5jdGlvbihkKXtkW2QuRW11bGF0ZWQ9MF09IkVtdWxhdGVkIixkW2QuTm9uZT0yXT0iTm9uZSIsZFtkLlNoYWRvd0RvbT0zXT0iU2hhZG93RG9tIn0oeDJ8fCh4Mj17fSkpLHgyKSkoKTtjb25zdCBQbD0oKCk9PiJ1bmRlZmluZWQiIT10eXBlb2YgZ2xvYmFsVGhpcyYmZ2xvYmFsVGhp''@;'; + put 'put ''c3x8InVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWwmJmdsb2JhbHx8InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cmJndpbmRvd3x8InVuZGVmaW5lZCIhPXR5cGVvZiBzZWxmJiYidW5kZWZpbmVkIiE9dHlwZW9mIFdvcmtlckdsb2JhbFNjb3BlJiZzZWxmIGluc3RhbmNlb2YgV29ya2VyR2xv''@;'; + put 'put ''YmFsU2NvcGUmJnNlbGYpKCksczE9e30sWjA9W10sZmk9Qm4oe1x1MDI3NWNtcDpCbn0pLFIwPUJuKHtcdTAyNzVkaXI6Qm59KSxtbz1Cbih7XHUwMjc1cGlwZTpCbn0pLHJzPUJuKHtcdTAyNzVtb2Q6Qm59KSxocz1Cbih7XHUwMjc1ZmFjOkJufSksbjI9Qm4oe19fTkdfRUxFTUVOVF9JRF9f''@;'; + put 'put ''OkJufSk7bGV0IFQyPTA7ZnVuY3Rpb24gVGkoZCl7cmV0dXJuIEIxKCgpPT57Y29uc3QgaD0hMD09PWQuc3RhbmRhbG9uZSx2PXt9LHk9e3R5cGU6ZC50eXBlLHByb3ZpZGVyc1Jlc29sdmVyOm51bGwsZGVjbHM6ZC5kZWNscyx2YXJzOmQudmFycyxmYWN0b3J5Om51bGwsdGVtcGxhdGU6ZC50''@;'; + put 'put ''ZW1wbGF0ZXx8bnVsbCxjb25zdHM6ZC5jb25zdHN8fG51bGwsbmdDb250ZW50U2VsZWN0b3JzOmQubmdDb250ZW50U2VsZWN0b3JzLGhvc3RCaW5kaW5nczpkLmhvc3RCaW5kaW5nc3x8bnVsbCxob3N0VmFyczpkLmhvc3RWYXJzfHwwLGhvc3RBdHRyczpkLmhvc3RBdHRyc3x8bnVsbCxjb250''@;'; + put 'put ''ZW50UXVlcmllczpkLmNvbnRlbnRRdWVyaWVzfHxudWxsLGRlY2xhcmVkSW5wdXRzOnYsaW5wdXRzOm51bGwsb3V0cHV0czpudWxsLGV4cG9ydEFzOmQuZXhwb3J0QXN8fG51bGwsb25QdXNoOmQuY2hhbmdlRGV0ZWN0aW9uPT09YXUuT25QdXNoLGRpcmVjdGl2ZURlZnM6bnVsbCxwaXBlRGVm''@;'; + put 'put ''czpudWxsLHN0YW5kYWxvbmU6aCxkZXBlbmRlbmNpZXM6aCYmZC5kZXBlbmRlbmNpZXN8fG51bGwsZ2V0U3RhbmRhbG9uZUluamVjdG9yOm51bGwsc2VsZWN0b3JzOmQuc2VsZWN0b3JzfHxaMCx2aWV3UXVlcnk6ZC52aWV3UXVlcnl8fG51bGwsZmVhdHVyZXM6ZC5mZWF0dXJlc3x8bnVsbCxk''@;'; + put 'put ''YXRhOmQuZGF0YXx8e30sZW5jYXBzdWxhdGlvbjpkLmVuY2Fwc3VsYXRpb258fHgyLkVtdWxhdGVkLGlkOiJjIitUMisrLHN0eWxlczpkLnN0eWxlc3x8WjAsXzpudWxsLHNldElucHV0Om51bGwsc2NoZW1hczpkLnNjaGVtYXN8fG51bGwsdFZpZXc6bnVsbH0sQz1kLmRlcGVuZGVuY2llcyxJ''@;'; + put 'put ''PWQuZmVhdHVyZXM7cmV0dXJuIHkuaW5wdXRzPXIyKGQuaW5wdXRzLHYpLHkub3V0cHV0cz1yMihkLm91dHB1dHMpLEkmJkkuZm9yRWFjaChqPT5qKHkpKSx5LmRpcmVjdGl2ZURlZnM9Qz8oKT0+KCJmdW5jdGlvbiI9PXR5cGVvZiBDP0MoKTpDKS5tYXAoTmYpLmZpbHRlcihZbCk6bnVsbCx5''@;'; + put 'put ''LnBpcGVEZWZzPUM/KCk9PigiZnVuY3Rpb24iPT10eXBlb2YgQz9DKCk6QykubWFwKEtsKS5maWx0ZXIoWWwpOm51bGwseX0pfWZ1bmN0aW9uIE5mKGQpe3JldHVybiBtcyhkKXx8RjEoZCl9ZnVuY3Rpb24gWWwoZCl7cmV0dXJuIG51bGwhPT1kfWNvbnN0IE5jPXt9O2Z1bmN0aW9uIGNvKGQp''@;'; + put 'put ''e3JldHVybiBCMSgoKT0+e2NvbnN0IGc9e3R5cGU6ZC50eXBlLGJvb3RzdHJhcDpkLmJvb3RzdHJhcHx8WjAsZGVjbGFyYXRpb25zOmQuZGVjbGFyYXRpb25zfHxaMCxpbXBvcnRzOmQuaW1wb3J0c3x8WjAsZXhwb3J0czpkLmV4cG9ydHN8fFowLHRyYW5zaXRpdmVDb21waWxlU2NvcGVzOm51''@;'; + put 'put ''bGwsc2NoZW1hczpkLnNjaGVtYXN8fG51bGwsaWQ6ZC5pZHx8bnVsbH07cmV0dXJuIG51bGwhPWQuaWQmJihOY1tkLmlkXT1kLnR5cGUpLGd9KX1mdW5jdGlvbiByMihkLGcpe2lmKG51bGw9PWQpcmV0dXJuIHMxO2NvbnN0IGg9e307Zm9yKGNvbnN0IHYgaW4gZClpZihkLmhhc093blByb3Bl''@;'; + put 'put ''cnR5KHYpKXtsZXQgeT1kW3ZdLEM9eTtBcnJheS5pc0FycmF5KHkpJiYoQz15WzFdLHk9eVswXSksaFt5XT12LGcmJihnW3ldPUMpfXJldHVybiBofWNvbnN0IFdpPVRpO2Z1bmN0aW9uIFVzKGQpe3JldHVybnt0eXBlOmQudHlwZSxuYW1lOmQubmFtZSxmYWN0b3J5Om51bGwscHVyZTohMSE9''@;'; + put 'put ''PWQucHVyZSxzdGFuZGFsb25lOiEwPT09ZC5zdGFuZGFsb25lLG9uRGVzdHJveTpkLnR5cGUucHJvdG90eXBlLm5nT25EZXN0cm95fHxudWxsfX1mdW5jdGlvbiBtcyhkKXtyZXR1cm4gZFtmaV18fG51bGx9ZnVuY3Rpb24gRjEoZCl7cmV0dXJuIGRbUjBdfHxudWxsfWZ1bmN0aW9uIEtsKGQp''@;'; + put 'put ''e3JldHVybiBkW21vXXx8bnVsbH1mdW5jdGlvbiBfcyhkLGcpe2NvbnN0IGg9ZFtyc118fG51bGw7aWYoIWgmJiEwPT09Zyl0aHJvdyBuZXcgRXJyb3IoYFR5cGUgJHttbihkKX0gZG9lcyBub3QgaGF2ZSAnXHUwMjc1bW9kJyBwcm9wZXJ0eS5gKTtyZXR1cm4gaH1mdW5jdGlvbiBUdShkKXty''@;'; + put 'put ''ZXR1cm4gQXJyYXkuaXNBcnJheShkKSYmIm9iamVjdCI9PXR5cGVvZiBkWzFdfWZ1bmN0aW9uIHNmKGQpe3JldHVybiBBcnJheS5pc0FycmF5KGQpJiYhMD09PWRbMV19ZnVuY3Rpb24gS28oZCl7cmV0dXJuIDAhPSg4JmQuZmxhZ3MpfWZ1bmN0aW9uIENzKGQpe3JldHVybiAyPT0oMiZkLmZs''@;'; + put 'put ''YWdzKX1mdW5jdGlvbiB6ZyhkKXtyZXR1cm4gMT09KDEmZC5mbGFncyl9ZnVuY3Rpb24gVmYoZCl7cmV0dXJuIG51bGwhPT1kLnRlbXBsYXRlfWZ1bmN0aW9uIHF3KGQpe3JldHVybiAwIT0oMjU2JmRbMl0pfWZ1bmN0aW9uIGpmKGQsZyl7cmV0dXJuIGQuaGFzT3duUHJvcGVydHkoaHMpP2Rb''@;'; + put 'put ''aHNdOm51bGx9Y2xhc3MgdGJ7Y29uc3RydWN0b3IoZyxoLHYpe3RoaXMucHJldmlvdXNWYWx1ZT1nLHRoaXMuY3VycmVudFZhbHVlPWgsdGhpcy5maXJzdENoYW5nZT12fWlzRmlyc3RDaGFuZ2UoKXtyZXR1cm4gdGhpcy5maXJzdENoYW5nZX19ZnVuY3Rpb24gRDIoKXtyZXR1cm4gYzl9ZnVu''@;'; + put 'put ''Y3Rpb24gYzkoZCl7cmV0dXJuIGQudHlwZS5wcm90b3R5cGUubmdPbkNoYW5nZXMmJihkLnNldElucHV0PVFnKSxuYn1mdW5jdGlvbiBuYigpe2NvbnN0IGQ9UXModGhpcyksZz1udWxsPT1kP3ZvaWQgMDpkLmN1cnJlbnQ7aWYoZyl7Y29uc3QgaD1kLnByZXZpb3VzO2lmKGg9PT1zMSlkLnBy''@;'; + put 'put ''ZXZpb3VzPWc7ZWxzZSBmb3IobGV0IHYgaW4gZyloW3ZdPWdbdl07ZC5jdXJyZW50PW51bGwsdGhpcy5uZ09uQ2hhbmdlcyhnKX19ZnVuY3Rpb24gUWcoZCxnLGgsdil7Y29uc3QgeT1RcyhkKXx8ZnVuY3Rpb24gYmgoZCxnKXtyZXR1cm4gZFtXcF09Z30oZCx7cHJldmlvdXM6czEsY3VycmVu''@;'; + put 'put ''dDpudWxsfSksQz15LmN1cnJlbnR8fCh5LmN1cnJlbnQ9e30pLEk9eS5wcmV2aW91cyxqPXRoaXMuZGVjbGFyZWRJbnB1dHNbaF0sdWU9SVtqXTtDW2pdPW5ldyB0Yih1ZSYmdWUuY3VycmVudFZhbHVlLGcsST09PXMxKSxkW3ZdPWd9RDIubmdJbmhlcml0PSEwO2NvbnN0IFdwPSJfX25nU2lt''@;'; + put 'put ''cGxlQ2hhbmdlc19fIjtmdW5jdGlvbiBRcyhkKXtyZXR1cm4gZFtXcF18fG51bGx9ZnVuY3Rpb24gWDIoZCl7Zm9yKDtBcnJheS5pc0FycmF5KGQpOylkPWRbMF07cmV0dXJuIGR9ZnVuY3Rpb24gVXAoZCxnKXtyZXR1cm4gWDIoZ1tkXSl9ZnVuY3Rpb24gdmMoZCxnKXtyZXR1cm4gWDIoZ1tk''@;'; + put 'put ''LmluZGV4XSl9ZnVuY3Rpb24gWGcoZCxnKXtyZXR1cm4gZC5kYXRhW2ddfWZ1bmN0aW9uIFFwKGQsZyl7cmV0dXJuIGRbZ119ZnVuY3Rpb24gUXUoZCxnKXtjb25zdCBoPWdbZF07cmV0dXJuIFR1KGgpP2g6aFswXX1mdW5jdGlvbiBLZyhkKXtyZXR1cm4gND09KDQmZFsyXSl9ZnVuY3Rpb24g''@;'; + put 'put ''dXUoZCl7cmV0dXJuIDY0PT0oNjQmZFsyXSl9ZnVuY3Rpb24gTjEoZCxnKXtyZXR1cm4gbnVsbD09Zz9udWxsOmRbZ119ZnVuY3Rpb24gX2goZCl7ZFsxOF09MH1mdW5jdGlvbiBBZChkLGcpe2RbNV0rPWc7bGV0IGg9ZCx2PWRbM107Zm9yKDtudWxsIT09diYmKDE9PT1nJiYxPT09aFs1XXx8''@;'; + put 'put ''LTE9PT1nJiYwPT09aFs1XSk7KXZbNV0rPWcsaD12LHY9dlszXX1jb25zdCBDYT17bEZyYW1lOmhhKG51bGwpLGJpbmRpbmdzRW5hYmxlZDohMH07ZnVuY3Rpb24gTE0oKXtyZXR1cm4gQ2EuYmluZGluZ3NFbmFibGVkfWZ1bmN0aW9uIFB0KCl7cmV0dXJuIENhLmxGcmFtZS5sVmlld31mdW5j''@;'; + put 'put ''dGlvbiBmZSgpe3JldHVybiBDYS5sRnJhbWUudFZpZXd9ZnVuY3Rpb24gaXQoZCl7cmV0dXJuIENhLmxGcmFtZS5jb250ZXh0TFZpZXc9ZCxkWzhdfWZ1bmN0aW9uIGEoZCl7cmV0dXJuIENhLmxGcmFtZS5jb250ZXh0TFZpZXc9bnVsbCxkfWZ1bmN0aW9uIFh0KCl7bGV0IGQ9aHIoKTtmb3Io''@;'; + put 'put ''O251bGwhPT1kJiY2ND09PWQudHlwZTspZD1kLnBhcmVudDtyZXR1cm4gZH1mdW5jdGlvbiBocigpe3JldHVybiBDYS5sRnJhbWUuY3VycmVudFROb2RlfWZ1bmN0aW9uIGpuKGQsZyl7Y29uc3QgaD1DYS5sRnJhbWU7aC5jdXJyZW50VE5vZGU9ZCxoLmlzUGFyZW50PWd9ZnVuY3Rpb24gXygp''@;'; + put 'put ''e3JldHVybiBDYS5sRnJhbWUuaXNQYXJlbnR9ZnVuY3Rpb24gQW8oKXtDYS5sRnJhbWUuaXNQYXJlbnQ9ITF9ZnVuY3Rpb24gbHMoKXtjb25zdCBkPUNhLmxGcmFtZTtsZXQgZz1kLmJpbmRpbmdSb290SW5kZXg7cmV0dXJuLTE9PT1nJiYoZz1kLmJpbmRpbmdSb290SW5kZXg9ZC50Vmlldy5i''@;'; + put 'put ''aW5kaW5nU3RhcnRJbmRleCksZ31mdW5jdGlvbiBNbigpe3JldHVybiBDYS5sRnJhbWUuYmluZGluZ0luZGV4fWZ1bmN0aW9uIGkyKCl7cmV0dXJuIENhLmxGcmFtZS5iaW5kaW5nSW5kZXgrK31mdW5jdGlvbiBvMihkKXtjb25zdCBnPUNhLmxGcmFtZSxoPWcuYmluZGluZ0luZGV4O3JldHVy''@;'; + put 'put ''biBnLmJpbmRpbmdJbmRleD1nLmJpbmRpbmdJbmRleCtkLGh9ZnVuY3Rpb24gT00oZCxnKXtjb25zdCBoPUNhLmxGcmFtZTtoLmJpbmRpbmdJbmRleD1oLmJpbmRpbmdSb290SW5kZXg9ZCxwOShnKX1mdW5jdGlvbiBwOShkKXtDYS5sRnJhbWUuY3VycmVudERpcmVjdGl2ZUluZGV4PWR9ZnVu''@;'; + put 'put ''Y3Rpb24gZzkoZCl7Y29uc3QgZz1DYS5sRnJhbWUuY3VycmVudERpcmVjdGl2ZUluZGV4O3JldHVybi0xPT09Zz9udWxsOmRbZ119ZnVuY3Rpb24gb2IoKXtyZXR1cm4gQ2EubEZyYW1lLmN1cnJlbnRRdWVyeUluZGV4fWZ1bmN0aW9uIERuKGQpe0NhLmxGcmFtZS5jdXJyZW50UXVlcnlJbmRl''@;'; + put 'put ''eD1kfWZ1bmN0aW9uIGNmKGQpe2NvbnN0IGc9ZFsxXTtyZXR1cm4gMj09PWcudHlwZT9nLmRlY2xUTm9kZToxPT09Zy50eXBlP2RbNl06bnVsbH1mdW5jdGlvbiBlbyhkLGcsaCl7aWYoaCZqMC5Ta2lwU2VsZil7bGV0IHk9ZyxDPWQ7Zm9yKDshKHk9eS5wYXJlbnQsbnVsbCE9PXl8fGgmajAu''@;'; + put 'put ''SG9zdHx8KHk9Y2YoQyksbnVsbD09PXl8fChDPUNbMTVdLDEwJnkudHlwZSkpKTspO2lmKG51bGw9PT15KXJldHVybiExO2c9eSxkPUN9Y29uc3Qgdj1DYS5sRnJhbWU9cWwoKTtyZXR1cm4gdi5jdXJyZW50VE5vZGU9Zyx2LmxWaWV3PWQsITB9ZnVuY3Rpb24gRDAoZCl7Y29uc3QgZz1xbCgp''@;'; + put 'put ''LGg9ZFsxXTtDYS5sRnJhbWU9ZyxnLmN1cnJlbnRUTm9kZT1oLmZpcnN0Q2hpbGQsZy5sVmlldz1kLGcudFZpZXc9aCxnLmNvbnRleHRMVmlldz1kLGcuYmluZGluZ0luZGV4PWguYmluZGluZ1N0YXJ0SW5kZXgsZy5pbkkxOG49ITF9ZnVuY3Rpb24gcWwoKXtjb25zdCBkPUNhLmxGcmFtZSxn''@;'; + put 'put ''PW51bGw9PT1kP251bGw6ZC5jaGlsZDtyZXR1cm4gbnVsbD09PWc/aGEoZCk6Z31mdW5jdGlvbiBoYShkKXtjb25zdCBnPXtjdXJyZW50VE5vZGU6bnVsbCxpc1BhcmVudDohMCxsVmlldzpudWxsLHRWaWV3Om51bGwsc2VsZWN0ZWRJbmRleDotMSxjb250ZXh0TFZpZXc6bnVsbCxlbGVtZW50''@;'; + put 'put ''RGVwdGhDb3VudDowLGN1cnJlbnROYW1lc3BhY2U6bnVsbCxjdXJyZW50RGlyZWN0aXZlSW5kZXg6LTEsYmluZGluZ1Jvb3RJbmRleDotMSxiaW5kaW5nSW5kZXg6LTEsY3VycmVudFF1ZXJ5SW5kZXg6MCxwYXJlbnQ6ZCxjaGlsZDpudWxsLGluSTE4bjohMX07cmV0dXJuIG51bGwhPT1kJiYo''@;'; + put 'put ''ZC5jaGlsZD1nKSxnfWZ1bmN0aW9uIERhKCl7Y29uc3QgZD1DYS5sRnJhbWU7cmV0dXJuIENhLmxGcmFtZT1kLnBhcmVudCxkLmN1cnJlbnRUTm9kZT1udWxsLGQubFZpZXc9bnVsbCxkfWNvbnN0IFQ4PURhO2Z1bmN0aW9uIEpwKCl7Y29uc3QgZD1EYSgpO2QuaXNQYXJlbnQ9ITAsZC50Vmll''@;'; + put 'put ''dz1udWxsLGQuc2VsZWN0ZWRJbmRleD0tMSxkLmNvbnRleHRMVmlldz1udWxsLGQuZWxlbWVudERlcHRoQ291bnQ9MCxkLmN1cnJlbnREaXJlY3RpdmVJbmRleD0tMSxkLmN1cnJlbnROYW1lc3BhY2U9bnVsbCxkLmJpbmRpbmdSb290SW5kZXg9LTEsZC5iaW5kaW5nSW5kZXg9LTEsZC5jdXJy''@;'; + put 'put ''ZW50UXVlcnlJbmRleD0wfWZ1bmN0aW9uIFVsKCl7cmV0dXJuIENhLmxGcmFtZS5zZWxlY3RlZEluZGV4fWZ1bmN0aW9uIHpmKGQpe0NhLmxGcmFtZS5zZWxlY3RlZEluZGV4PWR9ZnVuY3Rpb24gRjIoKXtjb25zdCBkPUNhLmxGcmFtZTtyZXR1cm4gWGcoZC50VmlldyxkLnNlbGVjdGVkSW5k''@;'; + put 'put ''ZXgpfWZ1bmN0aW9uIGVtKGQsZyl7Zm9yKGxldCBoPWcuZGlyZWN0aXZlU3RhcnQsdj1nLmRpcmVjdGl2ZUVuZDtoPHY7aCsrKXtjb25zdCBDPWQuZGF0YVtoXS50eXBlLnByb3RvdHlwZSx7bmdBZnRlckNvbnRlbnRJbml0OkksbmdBZnRlckNvbnRlbnRDaGVja2VkOmosbmdBZnRlclZpZXdJ''@;'; + put 'put ''bml0OnVlLG5nQWZ0ZXJWaWV3Q2hlY2tlZDpfZSxuZ09uRGVzdHJveTpCZX09QztJJiYoZC5jb250ZW50SG9va3N8fChkLmNvbnRlbnRIb29rcz1bXSkpLnB1c2goLWgsSSksaiYmKChkLmNvbnRlbnRIb29rc3x8KGQuY29udGVudEhvb2tzPVtdKSkucHVzaChoLGopLChkLmNvbnRlbnRDaGVj''@;'; + put 'put ''a0hvb2tzfHwoZC5jb250ZW50Q2hlY2tIb29rcz1bXSkpLnB1c2goaCxqKSksdWUmJihkLnZpZXdIb29rc3x8KGQudmlld0hvb2tzPVtdKSkucHVzaCgtaCx1ZSksX2UmJigoZC52aWV3SG9va3N8fChkLnZpZXdIb29rcz1bXSkpLnB1c2goaCxfZSksKGQudmlld0NoZWNrSG9va3N8fChkLnZp''@;'; + put 'put ''ZXdDaGVja0hvb2tzPVtdKSkucHVzaChoLF9lKSksbnVsbCE9QmUmJihkLmRlc3Ryb3lIb29rc3x8KGQuZGVzdHJveUhvb2tzPVtdKSkucHVzaChoLEJlKX19ZnVuY3Rpb24gd2QoZCxnLGgpe0k4KGQsZywzLGgpfWZ1bmN0aW9uIEtwKGQsZyxoLHYpeygzJmRbMl0pPT09aCYmSTgoZCxnLGgs''@;'; + put 'put ''dil9ZnVuY3Rpb24gZmYoZCxnKXtsZXQgaD1kWzJdOygzJmgpPT09ZyYmKGgmPTIwNDcsaCs9MSxkWzJdPWgpfWZ1bmN0aW9uIEk4KGQsZyxoLHYpe2NvbnN0IEM9bnVsbCE9dj92Oi0xLEk9Zy5sZW5ndGgtMTtsZXQgaj0wO2ZvcihsZXQgdWU9dm9pZCAwIT09dj82NTUzNSZkWzE4XTowO3Vl''@;'; + put 'put ''PEk7dWUrKylpZigibnVtYmVyIj09dHlwZW9mIGdbdWUrMV0pe2lmKGo9Z1t1ZV0sbnVsbCE9diYmaj49dilicmVha31lbHNlIGdbdWVdPDAmJihkWzE4XSs9NjU1MzYpLChqPEN8fC0xPT1DKSYmKFBNKGQsaCxnLHVlKSxkWzE4XT0oNDI5NDkwMTc2MCZkWzE4XSkrdWUrMiksdWUrK31mdW5j''@;'; + put 'put ''dGlvbiBQTShkLGcsaCx2KXtjb25zdCB5PWhbdl08MCxDPWhbdisxXSxqPWRbeT8taFt2XTpoW3ZdXTtpZih5KXtpZihkWzJdPj4xMTxkWzE4XT4+MTYmJigzJmRbMl0pPT09Zyl7ZFsyXSs9MjA0ODt0cnl7Qy5jYWxsKGopfWZpbmFsbHl7fX19ZWxzZSB0cnl7Qy5jYWxsKGopfWZpbmFsbHl7''@;'; + put 'put ''fX1jbGFzcyBiZHtjb25zdHJ1Y3RvcihnLGgsdil7dGhpcy5mYWN0b3J5PWcsdGhpcy5yZXNvbHZpbmc9ITEsdGhpcy5jYW5TZWVWaWV3UHJvdmlkZXJzPWgsdGhpcy5pbmplY3RJbXBsPXZ9fWZ1bmN0aW9uIFpjKGQsZyxoKXtsZXQgdj0wO2Zvcig7djxoLmxlbmd0aDspe2NvbnN0IHk9aFt2''@;'; + put 'put ''XTtpZigibnVtYmVyIj09dHlwZW9mIHkpe2lmKDAhPT15KWJyZWFrO3YrKztjb25zdCBDPWhbdisrXSxJPWhbdisrXSxqPWhbdisrXTtkLnNldEF0dHJpYnV0ZShnLEksaixDKX1lbHNle2NvbnN0IEM9eSxJPWhbKyt2XTtaMShDKT9kLnNldFByb3BlcnR5KGcsQyxJKTpkLnNldEF0dHJpYnV0''@;'; + put 'put ''ZShnLEMsSSksdisrfX1yZXR1cm4gdn1mdW5jdGlvbiBzcyhkKXtyZXR1cm4gMz09PWR8fDQ9PT1kfHw2PT09ZH1mdW5jdGlvbiBaMShkKXtyZXR1cm4gNjQ9PT1kLmNoYXJDb2RlQXQoMCl9ZnVuY3Rpb24gemMoZCxnKXtpZihudWxsIT09ZyYmMCE9PWcubGVuZ3RoKWlmKG51bGw9PT1kfHww''@;'; + put 'put ''PT09ZC5sZW5ndGgpZD1nLnNsaWNlKCk7ZWxzZXtsZXQgaD0tMTtmb3IobGV0IHY9MDt2PGcubGVuZ3RoO3YrKyl7Y29uc3QgeT1nW3ZdOyJudW1iZXIiPT10eXBlb2YgeT9oPXk6MD09PWh8fGxiKGQsaCx5LG51bGwsLTE9PT1ofHwyPT09aD9nWysrdl06bnVsbCl9fXJldHVybiBkfWZ1bmN0''@;'; + put 'put ''aW9uIGxiKGQsZyxoLHYseSl7bGV0IEM9MCxJPWQubGVuZ3RoO2lmKC0xPT09ZylJPS0xO2Vsc2UgZm9yKDtDPGQubGVuZ3RoOyl7Y29uc3Qgaj1kW0MrK107aWYoIm51bWJlciI9PXR5cGVvZiBqKXtpZihqPT09Zyl7ST0tMTticmVha31pZihqPmcpe0k9Qy0xO2JyZWFrfX19Zm9yKDtDPGQu''@;'; + put 'put ''bGVuZ3RoOyl7Y29uc3Qgaj1kW0NdO2lmKCJudW1iZXIiPT10eXBlb2YgailicmVhaztpZihqPT09aCl7aWYobnVsbD09PXYpcmV0dXJuIHZvaWQobnVsbCE9PXkmJihkW0MrMV09eSkpO2lmKHY9PT1kW0MrMV0pcmV0dXJuIHZvaWQoZFtDKzJdPXkpfUMrKyxudWxsIT09diYmQysrLG51bGwh''@;'; + put 'put ''PT15JiZDKyt9LTEhPT1JJiYoZC5zcGxpY2UoSSwwLGcpLEM9SSsxKSxkLnNwbGljZShDKyssMCxoKSxudWxsIT09diYmZC5zcGxpY2UoQysrLDAsdiksbnVsbCE9PXkmJmQuc3BsaWNlKEMrKywwLHkpfWZ1bmN0aW9uIEdjKGQpe3JldHVybi0xIT09ZH1mdW5jdGlvbiBjdShkKXtyZXR1cm4g''@;'; + put 'put ''MzI3NjcmZH1mdW5jdGlvbiBkZihkLGcpe2xldCBoPWZ1bmN0aW9uIHg0KGQpe3JldHVybiBkPj4xNn0oZCksdj1nO2Zvcig7aD4wOyl2PXZbMTVdLGgtLTtyZXR1cm4gdn1sZXQgUHI9ITA7ZnVuY3Rpb24gTDgoZCl7Y29uc3QgZz1QcjtyZXR1cm4gUHI9ZCxnfWxldCBxcD0wO2NvbnN0IHBm''@;'; + put 'put ''PXt9O2Z1bmN0aW9uIGU2KGQsZyl7Y29uc3QgaD1SOChkLGcpO2lmKC0xIT09aClyZXR1cm4gaDtjb25zdCB2PWdbMV07di5maXJzdENyZWF0ZVBhc3MmJihkLmluamVjdG9ySW5kZXg9Zy5sZW5ndGgsdDYodi5kYXRhLGQpLHQ2KGcsbnVsbCksdDYodi5ibHVlcHJpbnQsbnVsbCkpO2NvbnN0''@;'; + put 'put ''IHk9QWMoZCxnKSxDPWQuaW5qZWN0b3JJbmRleDtpZihHYyh5KSl7Y29uc3QgST1jdSh5KSxqPWRmKHksZyksdWU9alsxXS5kYXRhO2ZvcihsZXQgX2U9MDtfZTw4O19lKyspZ1tDK19lXT1qW0krX2VdfHVlW0krX2VdfXJldHVybiBnW0MrOF09eSxDfWZ1bmN0aW9uIHQ2KGQsZyl7ZC5wdXNo''@;'; + put 'put ''KDAsMCwwLDAsMCwwLDAsMCxnKX1mdW5jdGlvbiBSOChkLGcpe3JldHVybi0xPT09ZC5pbmplY3RvckluZGV4fHxkLnBhcmVudCYmZC5wYXJlbnQuaW5qZWN0b3JJbmRleD09PWQuaW5qZWN0b3JJbmRleHx8bnVsbD09PWdbZC5pbmplY3RvckluZGV4KzhdPy0xOmQuaW5qZWN0b3JJbmRleH1m''@;'; + put 'put ''dW5jdGlvbiBBYyhkLGcpe2lmKGQucGFyZW50JiYtMSE9PWQucGFyZW50LmluamVjdG9ySW5kZXgpcmV0dXJuIGQucGFyZW50LmluamVjdG9ySW5kZXg7bGV0IGg9MCx2PW51bGwseT1nO2Zvcig7bnVsbCE9PXk7KXtpZih2PUR1KHkpLG51bGw9PT12KXJldHVybi0xO2lmKGgrKyx5PXlbMTVd''@;'; + put 'put ''LC0xIT09di5pbmplY3RvckluZGV4KXJldHVybiB2LmluamVjdG9ySW5kZXh8aDw8MTZ9cmV0dXJuLTF9ZnVuY3Rpb24gR2YoZCxnLGgpeyFmdW5jdGlvbiBraChkLGcsaCl7bGV0IHY7InN0cmluZyI9PXR5cGVvZiBoP3Y9aC5jaGFyQ29kZUF0KDApfHwwOmguaGFzT3duUHJvcGVydHkobjIp''@;'; + put 'put ''JiYodj1oW24yXSksbnVsbD09diYmKHY9aFtuMl09cXArKyk7Y29uc3QgeT0yNTUmdjtnLmRhdGFbZCsoeT4+NSldfD0xPDx5fShkLGcsaCl9ZnVuY3Rpb24gX2QoZCxnLGgpe2lmKGgmajAuT3B0aW9uYWwpcmV0dXJuIGQ7aWkoKX1mdW5jdGlvbiBtOShkLGcsaCx2KXtpZihoJmowLk9wdGlv''@;'; + put 'put ''bmFsJiZ2b2lkIDA9PT12JiYodj1udWxsKSwwPT0oaCYoajAuU2VsZnxqMC5Ib3N0KSkpe2NvbnN0IHk9ZFs5XSxDPV8wKHZvaWQgMCk7dHJ5e3JldHVybiB5P3kuZ2V0KGcsdixoJmowLk9wdGlvbmFsKTpnYyhnLHYsaCZqMC5PcHRpb25hbCl9ZmluYWxseXtfMChDKX19cmV0dXJuIF9kKHYs''@;'; + put 'put ''MCxoKX1mdW5jdGlvbiB0bShkLGcsaCx2PWowLkRlZmF1bHQseSl7aWYobnVsbCE9PWQpe2lmKDEwMjQmZ1syXSl7Y29uc3QgST1mdW5jdGlvbiBYdShkLGcsaCx2LHkpe2xldCBDPWQsST1nO2Zvcig7bnVsbCE9PUMmJm51bGwhPT1JJiYxMDI0JklbMl0mJiEoMjU2JklbMl0pOyl7Y29uc3Qg''@;'; + put 'put ''aj1COChDLEksaCx2fGowLlNlbGYscGYpO2lmKGohPT1wZilyZXR1cm4gajtsZXQgdWU9Qy5wYXJlbnQ7aWYoIXVlKXtjb25zdCBfZT1JWzIxXTtpZihfZSl7Y29uc3QgQmU9X2UuZ2V0KGgscGYsdik7aWYoQmUhPT1wZilyZXR1cm4gQmV9dWU9RHUoSSksST1JWzE1XX1DPXVlfXJldHVybiB5''@;'; + put 'put ''fShkLGcsaCx2LHBmKTtpZihJIT09cGYpcmV0dXJuIEl9Y29uc3QgQz1COChkLGcsaCx2LHBmKTtpZihDIT09cGYpcmV0dXJuIEN9cmV0dXJuIG05KGcsaCx2LHkpfWZ1bmN0aW9uIEI4KGQsZyxoLHYseSl7Y29uc3QgQz1mdW5jdGlvbiByNihkKXtpZigic3RyaW5nIj09dHlwZW9mIGQpcmV0''@;'; + put 'put ''dXJuIGQuY2hhckNvZGVBdCgwKXx8MDtjb25zdCBnPWQuaGFzT3duUHJvcGVydHkobjIpP2RbbjJdOnZvaWQgMDtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIGc/Zz49MD8yNTUmZzpITTpnfShoKTtpZigiZnVuY3Rpb24iPT10eXBlb2YgQyl7aWYoIWVvKGcsZCx2KSlyZXR1cm4gdiZqMC5Ib3N0''@;'; + put 'put ''P19kKHksMCx2KTptOShnLGgsdix5KTt0cnl7Y29uc3QgST1DKHYpO2lmKG51bGwhPUl8fHYmajAuT3B0aW9uYWwpcmV0dXJuIEk7aWkoKX1maW5hbGx5e1Q4KCl9fWVsc2UgaWYoIm51bWJlciI9PXR5cGVvZiBDKXtsZXQgST1udWxsLGo9UjgoZCxnKSx1ZT0tMSxfZT12JmowLkhvc3Q/Z1sx''@;'; + put 'put ''Nl1bNl06bnVsbDtmb3IoKC0xPT09anx8diZqMC5Ta2lwU2VsZikmJih1ZT0tMT09PWo/QWMoZCxnKTpnW2orOF0sLTEhPT11ZSYmdjkodiwhMSk/KEk9Z1sxXSxqPWN1KHVlKSxnPWRmKHVlLGcpKTpqPS0xKTstMSE9PWo7KXtjb25zdCBCZT1nWzFdO2lmKHViKEMsaixCZS5kYXRhKSl7Y29u''@;'; + put 'put ''c3QgTmU9bjYoaixnLGgsSSx2LF9lKTtpZihOZSE9PXBmKXJldHVybiBOZX11ZT1nW2orOF0sLTEhPT11ZSYmdjkodixnWzFdLmRhdGFbais4XT09PV9lKSYmdWIoQyxqLGcpPyhJPUJlLGo9Y3UodWUpLGc9ZGYodWUsZykpOmo9LTF9fXJldHVybiB5fWZ1bmN0aW9uIG42KGQsZyxoLHYseSxD''@;'; + put 'put ''KXtjb25zdCBJPWdbMV0saj1JLmRhdGFbZCs4XSxCZT1KdShqLEksaCxudWxsPT12P0NzKGopJiZQcjp2IT1JJiYwIT0oMyZqLnR5cGUpLHkmajAuSG9zdCYmQz09PWopO3JldHVybiBudWxsIT09QmU/VDQoZyxJLEJlLGopOnBmfWZ1bmN0aW9uIEp1KGQsZyxoLHYseSl7Y29uc3QgQz1kLnBy''@;'; + put 'put ''b3ZpZGVySW5kZXhlcyxJPWcuZGF0YSxqPTEwNDg1NzUmQyx1ZT1kLmRpcmVjdGl2ZVN0YXJ0LEJlPUM+PjIwLEtlPXk/aitCZTpkLmRpcmVjdGl2ZUVuZDtmb3IobGV0IGR0PXY/ajpqK0JlO2R0PEtlO2R0Kyspe2NvbnN0IE90PUlbZHRdO2lmKGR0PHVlJiZoPT09T3R8fGR0Pj11ZSYmT3Qu''@;'; + put 'put ''dHlwZT09PWgpcmV0dXJuIGR0fWlmKHkpe2NvbnN0IGR0PUlbdWVdO2lmKGR0JiZWZihkdCkmJmR0LnR5cGU9PT1oKXJldHVybiB1ZX1yZXR1cm4gbnVsbH1mdW5jdGlvbiBUNChkLGcsaCx2KXtsZXQgeT1kW2hdO2NvbnN0IEM9Zy5kYXRhO2lmKGZ1bmN0aW9uIGEwKGQpe3JldHVybiBkIGlu''@;'; + put 'put ''c3RhbmNlb2YgYmR9KHkpKXtjb25zdCBJPXk7SS5yZXNvbHZpbmcmJmZ1bmN0aW9uIGdyKGQsZyl7Y29uc3QgaD1nP2AuIERlcGVuZGVuY3kgcGF0aDogJHtnLmpvaW4oIiA+ICIpfSA+ICR7ZH1gOiIiO3Rocm93IG5ldyBlbigtMjAwLGBDaXJjdWxhciBkZXBlbmRlbmN5IGluIERJIGRldGVj''@;'; + put 'put ''dGVkIGZvciAke2R9JHtofWApfShmdW5jdGlvbiBvcihkKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgZD9kLm5hbWV8fGQudG9TdHJpbmcoKToib2JqZWN0Ij09dHlwZW9mIGQmJm51bGwhPWQmJiJmdW5jdGlvbiI9PXR5cGVvZiBkLnR5cGU/ZC50eXBlLm5hbWV8fGQudHlwZS50b1N0cmlu''@;'; + put 'put ''ZygpOkpuKGQpfShDW2hdKSk7Y29uc3Qgaj1MOChJLmNhblNlZVZpZXdQcm92aWRlcnMpO0kucmVzb2x2aW5nPSEwO2NvbnN0IHVlPUkuaW5qZWN0SW1wbD9fMChJLmluamVjdEltcGwpOm51bGw7ZW8oZCx2LGowLkRlZmF1bHQpO3RyeXt5PWRbaF09SS5mYWN0b3J5KHZvaWQgMCxDLGQsdiks''@;'; + put 'put ''Zy5maXJzdENyZWF0ZVBhc3MmJmg+PXYuZGlyZWN0aXZlU3RhcnQmJmZ1bmN0aW9uIHcyKGQsZyxoKXtjb25zdHtuZ09uQ2hhbmdlczp2LG5nT25Jbml0OnksbmdEb0NoZWNrOkN9PWcudHlwZS5wcm90b3R5cGU7aWYodil7Y29uc3QgST1jOShnKTsoaC5wcmVPcmRlckhvb2tzfHwoaC5wcmVP''@;'; + put 'put ''cmRlckhvb2tzPVtdKSkucHVzaChkLEkpLChoLnByZU9yZGVyQ2hlY2tIb29rc3x8KGgucHJlT3JkZXJDaGVja0hvb2tzPVtdKSkucHVzaChkLEkpfXkmJihoLnByZU9yZGVySG9va3N8fChoLnByZU9yZGVySG9va3M9W10pKS5wdXNoKDAtZCx5KSxDJiYoKGgucHJlT3JkZXJIb29rc3x8KGgu''@;'; + put 'put ''cHJlT3JkZXJIb29rcz1bXSkpLnB1c2goZCxDKSwoaC5wcmVPcmRlckNoZWNrSG9va3N8fChoLnByZU9yZGVyQ2hlY2tIb29rcz1bXSkpLnB1c2goZCxDKSl9KGgsQ1toXSxnKX1maW5hbGx5e251bGwhPT11ZSYmXzAodWUpLEw4KGopLEkucmVzb2x2aW5nPSExLFQ4KCl9fXJldHVybiB5fWZ1''@;'; + put 'put ''bmN0aW9uIHViKGQsZyxoKXtyZXR1cm4hIShoW2crKGQ+PjUpXSYxPDxkKX1mdW5jdGlvbiB2OShkLGcpe3JldHVybiEoZCZqMC5TZWxmfHxkJmowLkhvc3QmJmcpfWNsYXNzIEk0e2NvbnN0cnVjdG9yKGcsaCl7dGhpcy5fdE5vZGU9Zyx0aGlzLl9sVmlldz1ofWdldChnLGgsdil7cmV0dXJu''@;'; + put 'put ''IHRtKHRoaXMuX3ROb2RlLHRoaXMuX2xWaWV3LGcsdixoKX19ZnVuY3Rpb24gSE0oKXtyZXR1cm4gbmV3IEk0KFh0KCksUHQoKSl9ZnVuY3Rpb24gZmwoZCl7cmV0dXJuIEIxKCgpPT57Y29uc3QgZz1kLnByb3RvdHlwZS5jb25zdHJ1Y3RvcixoPWdbaHNdfHxubShnKSx2PU9iamVjdC5wcm90''@;'; + put 'put ''b3R5cGU7bGV0IHk9T2JqZWN0LmdldFByb3RvdHlwZU9mKGQucHJvdG90eXBlKS5jb25zdHJ1Y3Rvcjtmb3IoO3kmJnkhPT12Oyl7Y29uc3QgQz15W2hzXXx8bm0oeSk7aWYoQyYmQyE9PWgpcmV0dXJuIEM7eT1PYmplY3QuZ2V0UHJvdG90eXBlT2YoeSl9cmV0dXJuIEM9Pm5ldyBDfSl9ZnVu''@;'; + put 'put ''Y3Rpb24gbm0oZCl7cmV0dXJuIGtuKGQpPygpPT57Y29uc3QgZz1ubShHdChkKSk7cmV0dXJuIGcmJmcoKX06amYoZCl9ZnVuY3Rpb24gRHUoZCl7Y29uc3QgZz1kWzFdLGg9Zy50eXBlO3JldHVybiAyPT09aD9nLmRlY2xUTm9kZToxPT09aD9kWzZdOm51bGx9ZnVuY3Rpb24gZzMoZCl7cmV0''@;'; + put 'put ''dXJuIGZ1bmN0aW9uIHNiKGQsZyl7aWYoImNsYXNzIj09PWcpcmV0dXJuIGQuY2xhc3NlcztpZigic3R5bGUiPT09ZylyZXR1cm4gZC5zdHlsZXM7Y29uc3QgaD1kLmF0dHJzO2lmKGgpe2NvbnN0IHY9aC5sZW5ndGg7bGV0IHk9MDtmb3IoO3k8djspe2NvbnN0IEM9aFt5XTtpZihzcyhDKSli''@;'; + put 'put ''cmVhaztpZigwPT09Qyl5Kz0yO2Vsc2UgaWYoIm51bWJlciI9PXR5cGVvZiBDKWZvcih5Kys7eTx2JiYic3RyaW5nIj09dHlwZW9mIGhbeV07KXkrKztlbHNle2lmKEM9PT1nKXJldHVybiBoW3krMV07eSs9Mn19fXJldHVybiBudWxsfShYdCgpLGQpfWNvbnN0IG82PSJfX3BhcmFtZXRlcnNf''@;'; + put 'put ''XyI7ZnVuY3Rpb24gV2YoZCxnLGgpe3JldHVybiBCMSgoKT0+e2NvbnN0IHY9ZnVuY3Rpb24gUDgoZCl7cmV0dXJuIGZ1bmN0aW9uKC4uLmgpe2lmKGQpe2NvbnN0IHY9ZCguLi5oKTtmb3IoY29uc3QgeSBpbiB2KXRoaXNbeV09dlt5XX19fShnKTtmdW5jdGlvbiB5KC4uLkMpe2lmKHRoaXMg''@;'; + put 'put ''aW5zdGFuY2VvZiB5KXJldHVybiB2LmFwcGx5KHRoaXMsQyksdGhpcztjb25zdCBJPW5ldyB5KC4uLkMpO3JldHVybiBqLmFubm90YXRpb249SSxqO2Z1bmN0aW9uIGoodWUsX2UsQmUpe2NvbnN0IE5lPXVlLmhhc093blByb3BlcnR5KG82KT91ZVtvNl06T2JqZWN0LmRlZmluZVByb3BlcnR5''@;'; + put 'put ''KHVlLG82LHt2YWx1ZTpbXX0pW282XTtmb3IoO05lLmxlbmd0aDw9QmU7KU5lLnB1c2gobnVsbCk7cmV0dXJuKE5lW0JlXT1OZVtCZV18fFtdKS5wdXNoKEkpLHVlfX1yZXR1cm4gaCYmKHkucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoaC5wcm90b3R5cGUpKSx5LnByb3RvdHlwZS5uZ01ldGFk''@;'; + put 'put ''YXRhTmFtZT1kLHkuYW5ub3RhdGlvbkNscz15LHl9KX1jbGFzcyB6ZXtjb25zdHJ1Y3RvcihnLGgpe3RoaXMuX2Rlc2M9Zyx0aGlzLm5nTWV0YWRhdGFOYW1lPSJJbmplY3Rpb25Ub2tlbiIsdGhpcy5cdTAyNzVwcm92PXZvaWQgMCwibnVtYmVyIj09dHlwZW9mIGg/dGhpcy5fX05HX0VMRU1F''@;'; + put 'put ''TlRfSURfXz1oOnZvaWQgMCE9PWgmJih0aGlzLlx1MDI3NXByb3Y9QWkoe3Rva2VuOnRoaXMscHJvdmlkZWRJbjpoLnByb3ZpZGVkSW58fCJyb290IixmYWN0b3J5OmguZmFjdG9yeX0pKX1nZXQgbXVsdGkoKXtyZXR1cm4gdGhpc310b1N0cmluZygpe3JldHVybmBJbmplY3Rpb25Ub2tlbiAk''@;'; + put 'put ''e3RoaXMuX2Rlc2N9YH19Y29uc3QgV2M9RnVuY3Rpb247ZnVuY3Rpb24gZ2YoZCxnKXt2b2lkIDA9PT1nJiYoZz1kKTtmb3IobGV0IGg9MDtoPGQubGVuZ3RoO2grKyl7bGV0IHY9ZFtoXTtBcnJheS5pc0FycmF5KHYpPyhnPT09ZCYmKGc9ZC5zbGljZSgwLGgpKSxnZih2LGcpKTpnIT09ZCYm''@;'; + put 'put ''Zy5wdXNoKHYpfXJldHVybiBnfWZ1bmN0aW9uIENkKGQsZyl7ZC5mb3JFYWNoKGg9PkFycmF5LmlzQXJyYXkoaCk/Q2QoaCxnKTpnKGgpKX1mdW5jdGlvbiBmYihkLGcsaCl7Zz49ZC5sZW5ndGg/ZC5wdXNoKGgpOmQuc3BsaWNlKGcsMCxoKX1mdW5jdGlvbiBrZChkLGcpe3JldHVybiBnPj1k''@;'; + put 'put ''Lmxlbmd0aC0xP2QucG9wKCk6ZC5zcGxpY2UoZywxKVswXX1mdW5jdGlvbiBtMyhkLGcpe2NvbnN0IGg9W107Zm9yKGxldCB2PTA7djxkO3YrKyloLnB1c2goZyk7cmV0dXJuIGh9ZnVuY3Rpb24gWWMoZCxnLGgpe2xldCB2PUY4KGQsZyk7cmV0dXJuIHY+PTA/ZFsxfHZdPWg6KHY9fnYsZnVu''@;'; + put 'put ''Y3Rpb24gbDYoZCxnLGgsdil7bGV0IHk9ZC5sZW5ndGg7aWYoeT09ZylkLnB1c2goaCx2KTtlbHNlIGlmKDE9PT15KWQucHVzaCh2LGRbMF0pLGRbMF09aDtlbHNle2Zvcih5LS0sZC5wdXNoKGRbeS0xXSxkW3ldKTt5Pmc7KWRbeV09ZFt5LTJdLHktLTtkW2ddPWgsZFtnKzFdPXZ9fShkLHYs''@;'; + put 'put ''ZyxoKSksdn1mdW5jdGlvbiBpbShkLGcpe2NvbnN0IGg9RjgoZCxnKTtpZihoPj0wKXJldHVybiBkWzF8aF19ZnVuY3Rpb24gRjgoZCxnKXtyZXR1cm4gZnVuY3Rpb24gb20oZCxnLGgpe2xldCB2PTAseT1kLmxlbmd0aD4+aDtmb3IoO3khPT12Oyl7Y29uc3QgQz12Kyh5LXY+PjEpLEk9ZFtD''@;'; + put 'put ''PDxoXTtpZihnPT09SSlyZXR1cm4gQzw8aDtJPmc/eT1DOnY9QysxfXJldHVybn4oeTw8aCl9KGQsZywxKX1jb25zdCBIOD17fSxOOD0iX19OR19ESV9GTEFHX18iLEQ0PSJuZ1RlbXBUb2tlblBhdGgiLFpNPS9cbi9nbSxwYj0iX19zb3VyY2UiO2xldCBWODtmdW5jdGlvbiBqOChkKXtjb25z''@;'; + put 'put ''dCBnPVY4O3JldHVybiBWOD1kLGd9ZnVuY3Rpb24gYlIoZCxnPWowLkRlZmF1bHQpe2lmKHZvaWQgMD09PVY4KXRocm93IG5ldyBlbigtMjAzLCExKTtyZXR1cm4gbnVsbD09PVY4P2djKGQsdm9pZCAwLGcpOlY4LmdldChkLGcmajAuT3B0aW9uYWw/bnVsbDp2b2lkIDAsZyl9ZnVuY3Rpb24g''@;'; + put 'put ''Q2koZCxnPWowLkRlZmF1bHQpe3JldHVybihmdW5jdGlvbiB2bigpe3JldHVybiBCbH0oKXx8YlIpKEd0KGQpLGcpfWZ1bmN0aW9uIGgyKGQsZz1qMC5EZWZhdWx0KXtyZXR1cm4ibnVtYmVyIiE9dHlwZW9mIGcmJihnPTB8KGcub3B0aW9uYWwmJjgpfChnLmhvc3QmJjEpfChnLnNlbGYmJjIp''@;'; + put 'put ''fChnLnNraXBTZWxmJiY0KSksQ2koZCxnKX1mdW5jdGlvbiB3OShkKXtjb25zdCBnPVtdO2ZvcihsZXQgaD0wO2g8ZC5sZW5ndGg7aCsrKXtjb25zdCB2PUd0KGRbaF0pO2lmKEFycmF5LmlzQXJyYXkodikpe2lmKDA9PT12Lmxlbmd0aCl0aHJvdyBuZXcgZW4oOTAwLCExKTtsZXQgeSxDPWow''@;'; + put 'put ''LkRlZmF1bHQ7Zm9yKGxldCBJPTA7STx2Lmxlbmd0aDtJKyspe2NvbnN0IGo9dltJXSx1ZT1fUihqKTsibnVtYmVyIj09dHlwZW9mIHVlPy0xPT09dWU/eT1qLnRva2VuOkN8PXVlOnk9an1nLnB1c2goQ2koeSxDKSl9ZWxzZSBnLnB1c2goQ2kodikpfXJldHVybiBnfWZ1bmN0aW9uIGxtKGQs''@;'; + put 'put ''Zyl7cmV0dXJuIGRbTjhdPWcsZC5wcm90b3R5cGVbTjhdPWcsZH1mdW5jdGlvbiBfUihkKXtyZXR1cm4gZFtOOF19Y29uc3QgbWY9bG0oV2YoIk9wdGlvbmFsIiksOCksTDQ9bG0oV2YoIlNraXBTZWxmIiksNCk7bGV0IG1iLEc4LEEzO2Z1bmN0aW9uIFlmKGQpe3ZhciBnO3JldHVybihudWxs''@;'; + put 'put ''PT09KGc9ZnVuY3Rpb24gY20oKXtpZih2b2lkIDA9PT1HOCYmKEc4PW51bGwsUGwudHJ1c3RlZFR5cGVzKSl0cnl7Rzg9UGwudHJ1c3RlZFR5cGVzLmNyZWF0ZVBvbGljeSgiYW5ndWxhciIse2NyZWF0ZUhUTUw6ZD0+ZCxjcmVhdGVTY3JpcHQ6ZD0+ZCxjcmVhdGVTY3JpcHRVUkw6ZD0+ZH0p''@;'; + put 'put ''fWNhdGNoKGQpe31yZXR1cm4gRzh9KCkpfHx2b2lkIDA9PT1nP3ZvaWQgMDpnLmNyZWF0ZUhUTUwoZCkpfHxkfWZ1bmN0aW9uIEcxKGQpe3ZhciBnO3JldHVybihudWxsPT09KGc9ZnVuY3Rpb24gQWIoKXtpZih2b2lkIDA9PT1BMyYmKEEzPW51bGwsUGwudHJ1c3RlZFR5cGVzKSl0cnl7QTM9''@;'; + put 'put ''UGwudHJ1c3RlZFR5cGVzLmNyZWF0ZVBvbGljeSgiYW5ndWxhciN1bnNhZmUtYnlwYXNzIix7Y3JlYXRlSFRNTDpkPT5kLGNyZWF0ZVNjcmlwdDpkPT5kLGNyZWF0ZVNjcmlwdFVSTDpkPT5kfSl9Y2F0Y2goZCl7fXJldHVybiBBM30oKSl8fHZvaWQgMD09PWc/dm9pZCAwOmcuY3JlYXRlSFRN''@;'; + put 'put ''TChkKSl8fGR9Y2xhc3MgTzR7Y29uc3RydWN0b3IoZyl7dGhpcy5jaGFuZ2luZ1RoaXNCcmVha3NBcHBsaWNhdGlvblNlY3VyaXR5PWd9dG9TdHJpbmcoKXtyZXR1cm5gU2FmZVZhbHVlIG11c3QgdXNlIFtwcm9wZXJ0eV09YmluZGluZzogJHt0aGlzLmNoYW5naW5nVGhpc0JyZWFrc0FwcGxp''@;'; + put 'put ''Y2F0aW9uU2VjdXJpdHl9IChzZWUgaHR0cHM6Ly9nLmNvL25nL3NlY3VyaXR5I3hzcylgfX1jbGFzcyBobSBleHRlbmRzIE80e2dldFR5cGVOYW1lKCl7cmV0dXJuIkhUTUwifX1jbGFzcyBtYSBleHRlbmRzIE80e2dldFR5cGVOYW1lKCl7cmV0dXJuIlN0eWxlIn19Y2xhc3MgdTYgZXh0ZW5k''@;'; + put 'put ''cyBPNHtnZXRUeXBlTmFtZSgpe3JldHVybiJTY3JpcHQifX1jbGFzcyBobCBleHRlbmRzIE80e2dldFR5cGVOYW1lKCl7cmV0dXJuIlVSTCJ9fWNsYXNzIFVmIGV4dGVuZHMgTzR7Z2V0VHlwZU5hbWUoKXtyZXR1cm4iUmVzb3VyY2VVUkwifX1mdW5jdGlvbiBkMihkKXtyZXR1cm4gZCBpbnN0''@;'; + put 'put ''YW5jZW9mIE80P2QuY2hhbmdpbmdUaGlzQnJlYWtzQXBwbGljYXRpb25TZWN1cml0eTpkfWZ1bmN0aW9uICR1KGQsZyl7Y29uc3QgaD1mdW5jdGlvbiBrYShkKXtyZXR1cm4gZCBpbnN0YW5jZW9mIE80JiZkLmdldFR5cGVOYW1lKCl8fG51bGx9KGQpO2lmKG51bGwhPWgmJmghPT1nKXtpZigi''@;'; + put 'put ''UmVzb3VyY2VVUkwiPT09aCYmIlVSTCI9PT1nKXJldHVybiEwO3Rocm93IG5ldyBFcnJvcihgUmVxdWlyZWQgYSBzYWZlICR7Z30sIGdvdCBhICR7aH0gKHNlZSBodHRwczovL2cuY28vbmcvc2VjdXJpdHkjeHNzKWApfXJldHVybiBoPT09Z31jbGFzcyB4aHtjb25zdHJ1Y3RvcihnKXt0aGlz''@;'; + put 'put ''LmluZXJ0RG9jdW1lbnRIZWxwZXI9Z31nZXRJbmVydEJvZHlFbGVtZW50KGcpe2c9Ijxib2R5PjxyZW1vdmU+PC9yZW1vdmU+IitnO3RyeXtjb25zdCBoPShuZXcgd2luZG93LkRPTVBhcnNlcikucGFyc2VGcm9tU3RyaW5nKFlmKGcpLCJ0ZXh0L2h0bWwiKS5ib2R5O3JldHVybiBudWxsPT09''@;'; + put 'put ''aD90aGlzLmluZXJ0RG9jdW1lbnRIZWxwZXIuZ2V0SW5lcnRCb2R5RWxlbWVudChnKTooaC5yZW1vdmVDaGlsZChoLmZpcnN0Q2hpbGQpLGgpfWNhdGNoKGgpe3JldHVybiBudWxsfX19Y2xhc3MgdEV7Y29uc3RydWN0b3IoZyl7aWYodGhpcy5kZWZhdWx0RG9jPWcsdGhpcy5pbmVydERvY3Vt''@;'; + put 'put ''ZW50PXRoaXMuZGVmYXVsdERvYy5pbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnQoInNhbml0aXphdGlvbi1pbmVydCIpLG51bGw9PXRoaXMuaW5lcnREb2N1bWVudC5ib2R5KXtjb25zdCBoPXRoaXMuaW5lcnREb2N1bWVudC5jcmVhdGVFbGVtZW50KCJodG1sIik7dGhpcy5pbmVy''@;'; + put 'put ''dERvY3VtZW50LmFwcGVuZENoaWxkKGgpO2NvbnN0IHY9dGhpcy5pbmVydERvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJvZHkiKTtoLmFwcGVuZENoaWxkKHYpfX1nZXRJbmVydEJvZHlFbGVtZW50KGcpe2NvbnN0IGg9dGhpcy5pbmVydERvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRlbXBsYXRl''@;'; + put 'put ''Iik7aWYoImNvbnRlbnQiaW4gaClyZXR1cm4gaC5pbm5lckhUTUw9WWYoZyksaDtjb25zdCB2PXRoaXMuaW5lcnREb2N1bWVudC5jcmVhdGVFbGVtZW50KCJib2R5Iik7cmV0dXJuIHYuaW5uZXJIVE1MPVlmKGcpLHRoaXMuZGVmYXVsdERvYy5kb2N1bWVudE1vZGUmJnRoaXMuc3RyaXBDdXN0''@;'; + put 'put ''b21Oc0F0dHJzKHYpLHZ9c3RyaXBDdXN0b21Oc0F0dHJzKGcpe2NvbnN0IGg9Zy5hdHRyaWJ1dGVzO2ZvcihsZXQgeT1oLmxlbmd0aC0xOzA8eTt5LS0pe2NvbnN0IEk9aC5pdGVtKHkpLm5hbWU7KCJ4bWxuczpuczEiPT09SXx8MD09PUkuaW5kZXhPZigibnMxOiIpKSYmZy5yZW1vdmVBdHRy''@;'; + put 'put ''aWJ1dGUoSSl9bGV0IHY9Zy5maXJzdENoaWxkO2Zvcig7djspdi5ub2RlVHlwZT09PU5vZGUuRUxFTUVOVF9OT0RFJiZ0aGlzLnN0cmlwQ3VzdG9tTnNBdHRycyh2KSx2PXYubmV4dFNpYmxpbmd9fWNvbnN0IExSPS9eKD86KD86aHR0cHM/fG1haWx0b3xmdHB8dGVsfGZpbGV8c21zKTp8W14m''@;'; + put 'put ''Oi8/I10qKD86Wy8/I118JCkpL2dpLG5FPS9eZGF0YTooPzppbWFnZVwvKD86Ym1wfGdpZnxqcGVnfGpwZ3xwbmd8dGlmZnx3ZWJwKXx2aWRlb1wvKD86bXBlZ3xtcDR8b2dnfHdlYm0pfGF1ZGlvXC8oPzptcDN8b2dhfG9nZ3xvcHVzKSk7YmFzZTY0LFthLXowLTkrXC9dKz0qJC9pO2Z1bmN0''@;'; + put 'put ''aW9uIHZmKGQpe3JldHVybihkPVN0cmluZyhkKSkubWF0Y2goTFIpfHxkLm1hdGNoKG5FKT9kOiJ1bnNhZmU6IitkfWZ1bmN0aW9uIHJFKGQpe3JldHVybihkPVN0cmluZyhkKSkuc3BsaXQoIiwiKS5tYXAoZz0+dmYoZy50cmltKCkpKS5qb2luKCIsICIpfWZ1bmN0aW9uIHczKGQpe2NvbnN0''@;'; + put 'put ''IGc9e307Zm9yKGNvbnN0IGggb2YgZC5zcGxpdCgiLCIpKWdbaF09ITA7cmV0dXJuIGd9ZnVuY3Rpb24gcG0oLi4uZCl7Y29uc3QgZz17fTtmb3IoY29uc3QgaCBvZiBkKWZvcihjb25zdCB2IGluIGgpaC5oYXNPd25Qcm9wZXJ0eSh2KSYmKGdbdl09ITApO3JldHVybiBnfWNvbnN0IGlFPXcz''@;'; + put 'put ''KCJhcmVhLGJyLGNvbCxocixpbWcsd2JyIiksb0U9dzMoImNvbGdyb3VwLGRkLGR0LGxpLHAsdGJvZHksdGQsdGZvb3QsdGgsdGhlYWQsdHIiKSxhRT13MygicnAscnQiKSx5Yj1wbShpRSxwbShvRSx3MygiYWRkcmVzcyxhcnRpY2xlLGFzaWRlLGJsb2NrcXVvdGUsY2FwdGlvbixjZW50ZXIs''@;'; + put 'put ''ZGVsLGRldGFpbHMsZGlhbG9nLGRpcixkaXYsZGwsZmlndXJlLGZpZ2NhcHRpb24sZm9vdGVyLGgxLGgyLGgzLGg0LGg1LGg2LGhlYWRlcixoZ3JvdXAsaHIsaW5zLG1haW4sbWFwLG1lbnUsbmF2LG9sLHByZSxzZWN0aW9uLHN1bW1hcnksdGFibGUsdWwiKSkscG0oYUUsdzMoImEsYWJicixh''@;'; + put 'put ''Y3JvbnltLGF1ZGlvLGIsYmRpLGJkbyxiaWcsYnIsY2l0ZSxjb2RlLGRlbCxkZm4sZW0sZm9udCxpLGltZyxpbnMsa2JkLGxhYmVsLG1hcCxtYXJrLHBpY3R1cmUscSxydWJ5LHJwLHJ0LHMsc2FtcCxzbWFsbCxzb3VyY2Usc3BhbixzdHJpa2Usc3Ryb25nLHN1YixzdXAsdGltZSx0cmFjayx0''@;'; + put 'put ''dCx1LHZhcix2aWRlbyIpKSxwbShhRSxvRSkpLHdiPXczKCJiYWNrZ3JvdW5kLGNpdGUsaHJlZixpdGVtdHlwZSxsb25nZGVzYyxwb3N0ZXIsc3JjLHhsaW5rOmhyZWYiKSxiYj13Mygic3Jjc2V0IiksUzk9cG0od2IsYmIsdzMoImFiYnIsYWNjZXNza2V5LGFsaWduLGFsdCxhdXRvcGxheSxh''@;'; + put 'put ''eGlzLGJnY29sb3IsYm9yZGVyLGNlbGxwYWRkaW5nLGNlbGxzcGFjaW5nLGNsYXNzLGNsZWFyLGNvbG9yLGNvbHMsY29sc3Bhbixjb21wYWN0LGNvbnRyb2xzLGNvb3JkcyxkYXRldGltZSxkZWZhdWx0LGRpcixkb3dubG9hZCxmYWNlLGhlYWRlcnMsaGVpZ2h0LGhpZGRlbixocmVmbGFuZyxo''@;'; + put 'put ''c3BhY2UsaXNtYXAsaXRlbXNjb3BlLGl0ZW1wcm9wLGtpbmQsbGFiZWwsbGFuZyxsYW5ndWFnZSxsb29wLG1lZGlhLG11dGVkLG5vaHJlZixub3dyYXAsb3BlbixwcmVsb2FkLHJlbCxyZXYscm9sZSxyb3dzLHJvd3NwYW4scnVsZXMsc2NvcGUsc2Nyb2xsaW5nLHNoYXBlLHNpemUsc2l6ZXMs''@;'; + put 'put ''c3BhbixzcmNsYW5nLHN0YXJ0LHN1bW1hcnksdGFiaW5kZXgsdGFyZ2V0LHRpdGxlLHRyYW5zbGF0ZSx0eXBlLHVzZW1hcCx2YWxpZ24sdmFsdWUsdnNwYWNlLHdpZHRoIiksdzMoImFyaWEtYWN0aXZlZGVzY2VuZGFudCxhcmlhLWF0b21pYyxhcmlhLWF1dG9jb21wbGV0ZSxhcmlhLWJ1c3ks''@;'; + put 'put ''YXJpYS1jaGVja2VkLGFyaWEtY29sY291bnQsYXJpYS1jb2xpbmRleCxhcmlhLWNvbHNwYW4sYXJpYS1jb250cm9scyxhcmlhLWN1cnJlbnQsYXJpYS1kZXNjcmliZWRieSxhcmlhLWRldGFpbHMsYXJpYS1kaXNhYmxlZCxhcmlhLWRyb3BlZmZlY3QsYXJpYS1lcnJvcm1lc3NhZ2UsYXJpYS1l''@;'; + put 'put ''eHBhbmRlZCxhcmlhLWZsb3d0byxhcmlhLWdyYWJiZWQsYXJpYS1oYXNwb3B1cCxhcmlhLWhpZGRlbixhcmlhLWludmFsaWQsYXJpYS1rZXlzaG9ydGN1dHMsYXJpYS1sYWJlbCxhcmlhLWxhYmVsbGVkYnksYXJpYS1sZXZlbCxhcmlhLWxpdmUsYXJpYS1tb2RhbCxhcmlhLW11bHRpbGluZSxh''@;'; + put 'put ''cmlhLW11bHRpc2VsZWN0YWJsZSxhcmlhLW9yaWVudGF0aW9uLGFyaWEtb3ducyxhcmlhLXBsYWNlaG9sZGVyLGFyaWEtcG9zaW5zZXQsYXJpYS1wcmVzc2VkLGFyaWEtcmVhZG9ubHksYXJpYS1yZWxldmFudCxhcmlhLXJlcXVpcmVkLGFyaWEtcm9sZWRlc2NyaXB0aW9uLGFyaWEtcm93Y291''@;'; + put 'put ''bnQsYXJpYS1yb3dpbmRleCxhcmlhLXJvd3NwYW4sYXJpYS1zZWxlY3RlZCxhcmlhLXNldHNpemUsYXJpYS1zb3J0LGFyaWEtdmFsdWVtYXgsYXJpYS12YWx1ZW1pbixhcmlhLXZhbHVlbm93LGFyaWEtdmFsdWV0ZXh0IikpLE05PXczKCJzY3JpcHQsc3R5bGUsdGVtcGxhdGUiKTtjbGFzcyBC''@;'; + put 'put ''Untjb25zdHJ1Y3Rvcigpe3RoaXMuc2FuaXRpemVkU29tZXRoaW5nPSExLHRoaXMuYnVmPVtdfXNhbml0aXplQ2hpbGRyZW4oZyl7bGV0IGg9Zy5maXJzdENoaWxkLHY9ITA7Zm9yKDtoOylpZihoLm5vZGVUeXBlPT09Tm9kZS5FTEVNRU5UX05PREU/dj10aGlzLnN0YXJ0RWxlbWVudChoKTpo''@;'; + put 'put ''Lm5vZGVUeXBlPT09Tm9kZS5URVhUX05PREU/dGhpcy5jaGFycyhoLm5vZGVWYWx1ZSk6dGhpcy5zYW5pdGl6ZWRTb21ldGhpbmc9ITAsdiYmaC5maXJzdENoaWxkKWg9aC5maXJzdENoaWxkO2Vsc2UgZm9yKDtoOyl7aC5ub2RlVHlwZT09PU5vZGUuRUxFTUVOVF9OT0RFJiZ0aGlzLmVuZEVs''@;'; + put 'put ''ZW1lbnQoaCk7bGV0IHk9dGhpcy5jaGVja0Nsb2JiZXJlZEVsZW1lbnQoaCxoLm5leHRTaWJsaW5nKTtpZih5KXtoPXk7YnJlYWt9aD10aGlzLmNoZWNrQ2xvYmJlcmVkRWxlbWVudChoLGgucGFyZW50Tm9kZSl9cmV0dXJuIHRoaXMuYnVmLmpvaW4oIiIpfXN0YXJ0RWxlbWVudChnKXtjb25z''@;'; + put 'put ''dCBoPWcubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtpZigheWIuaGFzT3duUHJvcGVydHkoaCkpcmV0dXJuIHRoaXMuc2FuaXRpemVkU29tZXRoaW5nPSEwLCFNOS5oYXNPd25Qcm9wZXJ0eShoKTt0aGlzLmJ1Zi5wdXNoKCI8IiksdGhpcy5idWYucHVzaChoKTtjb25zdCB2PWcuYXR0cmlidXRl''@;'; + put 'put ''cztmb3IobGV0IHk9MDt5PHYubGVuZ3RoO3krKyl7Y29uc3QgQz12Lml0ZW0oeSksST1DLm5hbWUsaj1JLnRvTG93ZXJDYXNlKCk7aWYoIVM5Lmhhc093blByb3BlcnR5KGopKXt0aGlzLnNhbml0aXplZFNvbWV0aGluZz0hMDtjb250aW51ZX1sZXQgdWU9Qy52YWx1ZTt3YltqXSYmKHVlPXZm''@;'; + put 'put ''KHVlKSksYmJbal0mJih1ZT1yRSh1ZSkpLHRoaXMuYnVmLnB1c2goIiAiLEksJz0iJyxsRSh1ZSksJyInKX1yZXR1cm4gdGhpcy5idWYucHVzaCgiPiIpLCEwfWVuZEVsZW1lbnQoZyl7Y29uc3QgaD1nLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7eWIuaGFzT3duUHJvcGVydHkoaCkmJiFpRS5o''@;'; + put 'put ''YXNPd25Qcm9wZXJ0eShoKSYmKHRoaXMuYnVmLnB1c2goIjwvIiksdGhpcy5idWYucHVzaChoKSx0aGlzLmJ1Zi5wdXNoKCI+IikpfWNoYXJzKGcpe3RoaXMuYnVmLnB1c2gobEUoZykpfWNoZWNrQ2xvYmJlcmVkRWxlbWVudChnLGgpe2lmKGgmJihnLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9u''@;'; + put 'put ''KGgpJk5vZGUuRE9DVU1FTlRfUE9TSVRJT05fQ09OVEFJTkVEX0JZKT09PU5vZGUuRE9DVU1FTlRfUE9TSVRJT05fQ09OVEFJTkVEX0JZKXRocm93IG5ldyBFcnJvcihgRmFpbGVkIHRvIHNhbml0aXplIGh0bWwgYmVjYXVzZSB0aGUgZWxlbWVudCBpcyBjbG9iYmVyZWQ6ICR7Zy5vdXRlckhU''@;'; + put 'put ''TUx9YCk7cmV0dXJuIGh9fWNvbnN0IFBSPS9bXHVEODAwLVx1REJGRl1bXHVEQzAwLVx1REZGRl0vZyxGUj0vKFteXCMtfiB8IV0pL2c7ZnVuY3Rpb24gbEUoZCl7cmV0dXJuIGQucmVwbGFjZSgvJi9nLCImYW1wOyIpLnJlcGxhY2UoUFIsZnVuY3Rpb24oZyl7cmV0dXJuIiYjIisoMTAyNCoo''@;'; + put 'put ''Zy5jaGFyQ29kZUF0KDApLTU1Mjk2KSsoZy5jaGFyQ29kZUF0KDEpLTU2MzIwKSs2NTUzNikrIjsifSkucmVwbGFjZShGUixmdW5jdGlvbihnKXtyZXR1cm4iJiMiK2cuY2hhckNvZGVBdCgwKSsiOyJ9KS5yZXBsYWNlKC88L2csIiZsdDsiKS5yZXBsYWNlKC8+L2csIiZndDsiKX1sZXQgZ207''@;'; + put 'put ''ZnVuY3Rpb24gRTkoZCxnKXtsZXQgaD1udWxsO3RyeXtnbT1nbXx8ZnVuY3Rpb24gZUUoZCl7Y29uc3QgZz1uZXcgdEUoZCk7cmV0dXJuIGZ1bmN0aW9uIERSKCl7dHJ5e3JldHVybiEhKG5ldyB3aW5kb3cuRE9NUGFyc2VyKS5wYXJzZUZyb21TdHJpbmcoWWYoIiIpLCJ0ZXh0L2h0bWwiKX1j''@;'; + put 'put ''YXRjaChkKXtyZXR1cm4hMX19KCk/bmV3IHhoKGcpOmd9KGQpO2xldCB2PWc/U3RyaW5nKGcpOiIiO2g9Z20uZ2V0SW5lcnRCb2R5RWxlbWVudCh2KTtsZXQgeT01LEM9djtkb3tpZigwPT09eSl0aHJvdyBuZXcgRXJyb3IoIkZhaWxlZCB0byBzYW5pdGl6ZSBodG1sIGJlY2F1c2UgdGhlIGlu''@;'; + put 'put ''cHV0IGlzIHVuc3RhYmxlIik7eS0tLHY9QyxDPWguaW5uZXJIVE1MLGg9Z20uZ2V0SW5lcnRCb2R5RWxlbWVudCh2KX13aGlsZSh2IT09Qyk7cmV0dXJuIFlmKChuZXcgQlIpLnNhbml0aXplQ2hpbGRyZW4oWTgoaCl8fGgpKX1maW5hbGx5e2lmKGgpe2NvbnN0IHY9WTgoaCl8fGg7Zm9yKDt2''@;'; + put 'put ''LmZpcnN0Q2hpbGQ7KXYucmVtb3ZlQ2hpbGQodi5maXJzdENoaWxkKX19fWZ1bmN0aW9uIFk4KGQpe3JldHVybiJjb250ZW50ImluIGQmJmZ1bmN0aW9uIGIzKGQpe3JldHVybiBkLm5vZGVUeXBlPT09Tm9kZS5FTEVNRU5UX05PREUmJiJURU1QTEFURSI9PT1kLm5vZGVOYW1lfShkKT9kLmNv''@;'; + put 'put ''bnRlbnQ6bnVsbH12YXIgYTI9KCgpPT4oKGEyPWEyfHx7fSlbYTIuTk9ORT0wXT0iTk9ORSIsYTJbYTIuSFRNTD0xXT0iSFRNTCIsYTJbYTIuU1RZTEU9Ml09IlNUWUxFIixhMlthMi5TQ1JJUFQ9M109IlNDUklQVCIsYTJbYTIuVVJMPTRdPSJVUkwiLGEyW2EyLlJFU09VUkNFX1VSTD01XT0i''@;'; + put 'put ''UkVTT1VSQ0VfVVJMIixhMikpKCk7ZnVuY3Rpb24gVTgoZCl7Y29uc3QgZz1jNigpO3JldHVybiBnP0cxKGcuc2FuaXRpemUoYTIuSFRNTCxkKXx8IiIpOiR1KGQsIkhUTUwiKT9HMShkMihkKSk6RTkoZnVuY3Rpb24gS00oKXtyZXR1cm4gdm9pZCAwIT09bWI/bWI6InVuZGVmaW5lZCIhPXR5''@;'; + put 'put ''cGVvZiBkb2N1bWVudD9kb2N1bWVudDp2b2lkIDB9KCksSm4oZCkpfWZ1bmN0aW9uIHg5KGQpe2NvbnN0IGc9YzYoKTtyZXR1cm4gZz9nLnNhbml0aXplKGEyLlVSTCxkKXx8IiI6JHUoZCwiVVJMIik/ZDIoZCk6dmYoSm4oZCkpfWZ1bmN0aW9uIGM2KCl7Y29uc3QgZD1QdCgpO3JldHVybiBk''@;'; + put 'put ''JiZkWzEyXX1jb25zdCB1RT1uZXcgemUoIkVOVklST05NRU5UX0lOSVRJQUxJWkVSIikseWM9bmV3IHplKCJJTkpFQ1RPUiIsLTEpLHdjPW5ldyB6ZSgiSU5KRUNUT1JfREVGX1RZUEVTIik7Y2xhc3MgUjR7Z2V0KGcsaD1IOCl7aWYoaD09PUg4KXtjb25zdCB2PW5ldyBFcnJvcihgTnVsbElu''@;'; + put 'put ''amVjdG9yRXJyb3I6IE5vIHByb3ZpZGVyIGZvciAke21uKGcpfSFgKTt0aHJvdyB2Lm5hbWU9Ik51bGxJbmplY3RvckVycm9yIix2fXJldHVybiBofX1mdW5jdGlvbiBUaCguLi5kKXtyZXR1cm57XHUwMjc1cHJvdmlkZXJzOkFmKDAsZCl9fWZ1bmN0aW9uIEFmKGQsLi4uZyl7Y29uc3QgaD1b''@;'; + put 'put ''XSx2PW5ldyBTZXQ7bGV0IHk7cmV0dXJuIENkKGcsQz0+e2NvbnN0IEk9QztKOChJLGgsW10sdikmJih5fHwoeT1bXSkseS5wdXNoKEkpKX0pLHZvaWQgMCE9PXkmJkMzKHksaCksaH1mdW5jdGlvbiBDMyhkLGcpe2ZvcihsZXQgaD0wO2g8ZC5sZW5ndGg7aCsrKXtjb25zdHtwcm92aWRlcnM6''@;'; + put 'put ''eX09ZFtoXTtDZCh5LEM9PntnLnB1c2goQyl9KX19ZnVuY3Rpb24gSjgoZCxnLGgsdil7aWYoIShkPUd0KGQpKSlyZXR1cm4hMTtsZXQgeT1udWxsLEM9SGMoZCk7Y29uc3QgST0hQyYmbXMoZCk7aWYoQ3x8SSl7aWYoSSYmIUkuc3RhbmRhbG9uZSlyZXR1cm4hMTt5PWR9ZWxzZXtjb25zdCB1''@;'; + put 'put ''ZT1kLm5nTW9kdWxlO2lmKEM9SGModWUpLCFDKXJldHVybiExO3k9dWV9Y29uc3Qgaj12Lmhhcyh5KTtpZihJKXtpZihqKXJldHVybiExO2lmKHYuYWRkKHkpLEkuZGVwZW5kZW5jaWVzKXtjb25zdCB1ZT0iZnVuY3Rpb24iPT10eXBlb2YgSS5kZXBlbmRlbmNpZXM/SS5kZXBlbmRlbmNpZXMo''@;'; + put 'put ''KTpJLmRlcGVuZGVuY2llcztmb3IoY29uc3QgX2Ugb2YgdWUpSjgoX2UsZyxoLHYpfX1lbHNle2lmKCFDKXJldHVybiExO3tpZihudWxsIT1DLmltcG9ydHMmJiFqKXtsZXQgX2U7di5hZGQoeSk7dHJ5e0NkKEMuaW1wb3J0cyxCZT0+e0o4KEJlLGcsaCx2KSYmKF9lfHwoX2U9W10pLF9lLnB1''@;'; + put 'put ''c2goQmUpKX0pfWZpbmFsbHl7fXZvaWQgMCE9PV9lJiZDMyhfZSxnKX1pZighail7Y29uc3QgX2U9amYoeSl8fCgoKT0+bmV3IHkpO2cucHVzaCh7cHJvdmlkZTp5LHVzZUZhY3Rvcnk6X2UsZGVwczpaMH0se3Byb3ZpZGU6d2MsdXNlVmFsdWU6eSxtdWx0aTohMH0se3Byb3ZpZGU6dUUsdXNl''@;'; + put 'put ''VmFsdWU6KCk9PkNpKHkpLG11bHRpOiEwfSl9Y29uc3QgdWU9Qy5wcm92aWRlcnM7bnVsbD09dWV8fGp8fENkKHVlLEJlPT57Zy5wdXNoKEJlKX0pfX1yZXR1cm4geSE9PWQmJnZvaWQgMCE9PWQucHJvdmlkZXJzfWNvbnN0IGNFPUJuKHtwcm92aWRlOlN0cmluZyx1c2VWYWx1ZTpCbn0pO2Z1''@;'; + put 'put ''bmN0aW9uIEk5KGQpe3JldHVybiBudWxsIT09ZCYmIm9iamVjdCI9PXR5cGVvZiBkJiZjRSBpbiBkfWZ1bmN0aW9uIGszKGQpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBkfWNvbnN0IHZtPW5ldyB6ZSgiU2V0IEluamVjdG9yIHNjb3BlLiIpLFMzPXt9LGpSPXt9O2xldCBoNjtmdW5jdGlv''@;'; + put 'put ''biBNMygpe3JldHVybiB2b2lkIDA9PT1oNiYmKGg2PW5ldyBSNCksaDZ9Y2xhc3MgRTN7fWNsYXNzIGtiIGV4dGVuZHMgRTN7Y29uc3RydWN0b3IoZyxoLHYseSl7c3VwZXIoKSx0aGlzLnBhcmVudD1oLHRoaXMuc291cmNlPXYsdGhpcy5zY29wZXM9eSx0aGlzLnJlY29yZHM9bmV3IE1hcCx0''@;'; + put 'put ''aGlzLl9uZ09uRGVzdHJveUhvb2tzPW5ldyBTZXQsdGhpcy5fb25EZXN0cm95SG9va3M9W10sdGhpcy5fZGVzdHJveWVkPSExLHgzKGcsST0+dGhpcy5wcm9jZXNzUHJvdmlkZXIoSSkpLHRoaXMucmVjb3Jkcy5zZXQoeWMsZDYodm9pZCAwLHRoaXMpKSx5LmhhcygiZW52aXJvbm1lbnQiKSYm''@;'; + put 'put ''dGhpcy5yZWNvcmRzLnNldChFMyxkNih2b2lkIDAsdGhpcykpO2NvbnN0IEM9dGhpcy5yZWNvcmRzLmdldCh2bSk7bnVsbCE9QyYmInN0cmluZyI9PXR5cGVvZiBDLnZhbHVlJiZ0aGlzLnNjb3Blcy5hZGQoQy52YWx1ZSksdGhpcy5pbmplY3RvckRlZlR5cGVzPW5ldyBTZXQodGhpcy5nZXQo''@;'; + put 'put ''d2MubXVsdGksWjAsajAuU2VsZikpfWdldCBkZXN0cm95ZWQoKXtyZXR1cm4gdGhpcy5fZGVzdHJveWVkfWRlc3Ryb3koKXt0aGlzLmFzc2VydE5vdERlc3Ryb3llZCgpLHRoaXMuX2Rlc3Ryb3llZD0hMDt0cnl7Zm9yKGNvbnN0IGcgb2YgdGhpcy5fbmdPbkRlc3Ryb3lIb29rcylnLm5nT25E''@;'; + put 'put ''ZXN0cm95KCk7Zm9yKGNvbnN0IGcgb2YgdGhpcy5fb25EZXN0cm95SG9va3MpZygpfWZpbmFsbHl7dGhpcy5yZWNvcmRzLmNsZWFyKCksdGhpcy5fbmdPbkRlc3Ryb3lIb29rcy5jbGVhcigpLHRoaXMuaW5qZWN0b3JEZWZUeXBlcy5jbGVhcigpLHRoaXMuX29uRGVzdHJveUhvb2tzLmxlbmd0''@;'; + put 'put ''aD0wfX1vbkRlc3Ryb3koZyl7dGhpcy5fb25EZXN0cm95SG9va3MucHVzaChnKX1ydW5JbkNvbnRleHQoZyl7dGhpcy5hc3NlcnROb3REZXN0cm95ZWQoKTtjb25zdCBoPWo4KHRoaXMpLHY9XzAodm9pZCAwKTt0cnl7cmV0dXJuIGcoKX1maW5hbGx5e2o4KGgpLF8wKHYpfX1nZXQoZyxoPUg4''@;'; + put 'put ''LHY9ajAuRGVmYXVsdCl7dGhpcy5hc3NlcnROb3REZXN0cm95ZWQoKTtjb25zdCB5PWo4KHRoaXMpLEM9XzAodm9pZCAwKTt0cnl7aWYoISh2JmowLlNraXBTZWxmKSl7bGV0IGo9dGhpcy5yZWNvcmRzLmdldChnKTtpZih2b2lkIDA9PT1qKXtjb25zdCB1ZT1mdW5jdGlvbiBkRShkKXtyZXR1''@;'; + put 'put ''cm4iZnVuY3Rpb24iPT10eXBlb2YgZHx8Im9iamVjdCI9PXR5cGVvZiBkJiZkIGluc3RhbmNlb2YgemV9KGcpJiZzYShnKTtqPXVlJiZ0aGlzLmluamVjdGFibGVEZWZJblNjb3BlKHVlKT9kNihTZChnKSxTMyk6bnVsbCx0aGlzLnJlY29yZHMuc2V0KGcsail9aWYobnVsbCE9ailyZXR1cm4g''@;'; + put 'put ''dGhpcy5oeWRyYXRlKGcsail9cmV0dXJuKHYmajAuU2VsZj9NMygpOnRoaXMucGFyZW50KS5nZXQoZyxoPXYmajAuT3B0aW9uYWwmJmg9PT1IOD9udWxsOmgpfWNhdGNoKEkpe2lmKCJOdWxsSW5qZWN0b3JFcnJvciI9PT1JLm5hbWUpe2lmKChJW0Q0XT1JW0Q0XXx8W10pLnVuc2hpZnQobW4o''@;'; + put 'put ''ZykpLHkpdGhyb3cgSTtyZXR1cm4gZnVuY3Rpb24gQ1IoZCxnLGgsdil7Y29uc3QgeT1kW0Q0XTt0aHJvdyBnW3BiXSYmeS51bnNoaWZ0KGdbcGJdKSxkLm1lc3NhZ2U9ZnVuY3Rpb24gejEoZCxnLGgsdj1udWxsKXtkPWQmJiJcbiI9PT1kLmNoYXJBdCgwKSYmIlx1MDI3NSI9PWQuY2hhckF0''@;'; + put 'put ''KDEpP2Quc2xpY2UoMik6ZDtsZXQgeT1tbihnKTtpZihBcnJheS5pc0FycmF5KGcpKXk9Zy5tYXAobW4pLmpvaW4oIiAtPiAiKTtlbHNlIGlmKCJvYmplY3QiPT10eXBlb2YgZyl7bGV0IEM9W107Zm9yKGxldCBJIGluIGcpaWYoZy5oYXNPd25Qcm9wZXJ0eShJKSl7bGV0IGo9Z1tJXTtDLnB1''@;'; + put 'put ''c2goSSsiOiIrKCJzdHJpbmciPT10eXBlb2Ygaj9KU09OLnN0cmluZ2lmeShqKTptbihqKSkpfXk9YHske0Muam9pbigiLCAiKX19YH1yZXR1cm5gJHtofSR7dj8iKCIrdisiKSI6IiJ9WyR7eX1dOiAke2QucmVwbGFjZShaTSwiXG4gICIpfWB9KCJcbiIrZC5tZXNzYWdlLHksaCx2KSxkLm5n''@;'; + put 'put ''VG9rZW5QYXRoPXksZFtENF09bnVsbCxkfShJLGcsIlIzSW5qZWN0b3JFcnJvciIsdGhpcy5zb3VyY2UpfXRocm93IEl9ZmluYWxseXtfMChDKSxqOCh5KX19cmVzb2x2ZUluamVjdG9ySW5pdGlhbGl6ZXJzKCl7Y29uc3QgZz1qOCh0aGlzKSxoPV8wKHZvaWQgMCk7dHJ5e2NvbnN0IHY9dGhp''@;'; + put 'put ''cy5nZXQodUUubXVsdGksWjAsajAuU2VsZik7Zm9yKGNvbnN0IHkgb2Ygdil5KCl9ZmluYWxseXtqOChnKSxfMChoKX19dG9TdHJpbmcoKXtjb25zdCBnPVtdLGg9dGhpcy5yZWNvcmRzO2Zvcihjb25zdCB2IG9mIGgua2V5cygpKWcucHVzaChtbih2KSk7cmV0dXJuYFIzSW5qZWN0b3JbJHtn''@;'; + put 'put ''LmpvaW4oIiwgIil9XWB9YXNzZXJ0Tm90RGVzdHJveWVkKCl7aWYodGhpcy5fZGVzdHJveWVkKXRocm93IG5ldyBlbigyMDUsITEpfXByb2Nlc3NQcm92aWRlcihnKXtsZXQgaD1rMyhnPUd0KGcpKT9nOkd0KGcmJmcucHJvdmlkZSk7Y29uc3Qgdj1mdW5jdGlvbiBmRShkKXtyZXR1cm4gSTko''@;'; + put 'put ''ZCk/ZDYodm9pZCAwLGQudXNlVmFsdWUpOmQ2KGhFKGQpLFMzKX0oZyk7aWYoazMoZyl8fCEwIT09Zy5tdWx0aSl0aGlzLnJlY29yZHMuZ2V0KGgpO2Vsc2V7bGV0IHk9dGhpcy5yZWNvcmRzLmdldChoKTt5fHwoeT1kNih2b2lkIDAsUzMsITApLHkuZmFjdG9yeT0oKT0+dzkoeS5tdWx0aSks''@;'; + put 'put ''dGhpcy5yZWNvcmRzLnNldChoLHkpKSxoPWcseS5tdWx0aS5wdXNoKGcpfXRoaXMucmVjb3Jkcy5zZXQoaCx2KX1oeWRyYXRlKGcsaCl7cmV0dXJuIGgudmFsdWU9PT1TMyYmKGgudmFsdWU9alIsaC52YWx1ZT1oLmZhY3RvcnkoKSksIm9iamVjdCI9PXR5cGVvZiBoLnZhbHVlJiZoLnZhbHVl''@;'; + put 'put ''JiZmdW5jdGlvbiBaUihkKXtyZXR1cm4gbnVsbCE9PWQmJiJvYmplY3QiPT10eXBlb2YgZCYmImZ1bmN0aW9uIj09dHlwZW9mIGQubmdPbkRlc3Ryb3l9KGgudmFsdWUpJiZ0aGlzLl9uZ09uRGVzdHJveUhvb2tzLmFkZChoLnZhbHVlKSxoLnZhbHVlfWluamVjdGFibGVEZWZJblNjb3BlKGcp''@;'; + put 'put ''e2lmKCFnLnByb3ZpZGVkSW4pcmV0dXJuITE7Y29uc3QgaD1HdChnLnByb3ZpZGVkSW4pO3JldHVybiJzdHJpbmciPT10eXBlb2YgaD8iYW55Ij09PWh8fHRoaXMuc2NvcGVzLmhhcyhoKTp0aGlzLmluamVjdG9yRGVmVHlwZXMuaGFzKGgpfX1mdW5jdGlvbiBTZChkKXtjb25zdCBnPXNhKGQp''@;'; + put 'put ''LGg9bnVsbCE9PWc/Zy5mYWN0b3J5OmpmKGQpO2lmKG51bGwhPT1oKXJldHVybiBoO2lmKGQgaW5zdGFuY2VvZiB6ZSl0aHJvdyBuZXcgZW4oMjA0LCExKTtpZihkIGluc3RhbmNlb2YgRnVuY3Rpb24pcmV0dXJuIGZ1bmN0aW9uIEQ5KGQpe2NvbnN0IGc9ZC5sZW5ndGg7aWYoZz4wKXRocm93''@;'; + put 'put ''IG0zKGcsIj8iKSxuZXcgZW4oMjA0LCExKTtjb25zdCBoPWZ1bmN0aW9uIF9pKGQpe2NvbnN0IGc9ZCYmKGRbVTBdfHxkW1gwXSk7aWYoZyl7Y29uc3QgaD1mdW5jdGlvbiBvdShkKXtpZihkLmhhc093blByb3BlcnR5KCJuYW1lIikpcmV0dXJuIGQubmFtZTtjb25zdCBnPSgiIitkKS5tYXRj''@;'; + put 'put ''aCgvXmZ1bmN0aW9uXHMqKFteXHMoXSspLyk7cmV0dXJuIG51bGw9PT1nPyIiOmdbMV19KGQpO3JldHVybiBjb25zb2xlLndhcm4oYERFUFJFQ0FURUQ6IERJIGlzIGluc3RhbnRpYXRpbmcgYSB0b2tlbiAiJHtofSIgdGhhdCBpbmhlcml0cyBpdHMgQEluamVjdGFibGUgZGVjb3JhdG9yIGJ1''@;'; + put 'put ''dCBkb2VzIG5vdCBwcm92aWRlIG9uZSBpdHNlbGYuXG5UaGlzIHdpbGwgYmVjb21lIGFuIGVycm9yIGluIGEgZnV0dXJlIHZlcnNpb24gb2YgQW5ndWxhci4gUGxlYXNlIGFkZCBASW5qZWN0YWJsZSgpIHRvIHRoZSAiJHtofSIgY2xhc3MuYCksZ31yZXR1cm4gbnVsbH0oZCk7cmV0dXJuIG51''@;'; + put 'put ''bGwhPT1oPygpPT5oLmZhY3RvcnkoZCk6KCk9Pm5ldyBkfShkKTt0aHJvdyBuZXcgZW4oMjA0LCExKX1mdW5jdGlvbiBoRShkLGcsaCl7bGV0IHY7aWYoazMoZCkpe2NvbnN0IHk9R3QoZCk7cmV0dXJuIGpmKHkpfHxTZCh5KX1pZihJOShkKSl2PSgpPT5HdChkLnVzZVZhbHVlKTtlbHNlIGlm''@;'; + put 'put ''KGZ1bmN0aW9uIGY2KGQpe3JldHVybiEoIWR8fCFkLnVzZUZhY3RvcnkpfShkKSl2PSgpPT5kLnVzZUZhY3RvcnkoLi4udzkoZC5kZXBzfHxbXSkpO2Vsc2UgaWYoZnVuY3Rpb24gWDgoZCl7cmV0dXJuISghZHx8IWQudXNlRXhpc3RpbmcpfShkKSl2PSgpPT5DaShHdChkLnVzZUV4aXN0aW5n''@;'; + put 'put ''KSk7ZWxzZXtjb25zdCB5PUd0KGQmJihkLnVzZUNsYXNzfHxkLnByb3ZpZGUpKTtpZighZnVuY3Rpb24gTDkoZCl7cmV0dXJuISFkLmRlcHN9KGQpKXJldHVybiBqZih5KXx8U2QoeSk7dj0oKT0+bmV3IHkoLi4udzkoZC5kZXBzKSl9cmV0dXJuIHZ9ZnVuY3Rpb24gZDYoZCxnLGg9ITEpe3Jl''@;'; + put 'put ''dHVybntmYWN0b3J5OmQsdmFsdWU6ZyxtdWx0aTpoP1tdOnZvaWQgMH19ZnVuY3Rpb24gcEUoZCl7cmV0dXJuISFkLlx1MDI3NXByb3ZpZGVyc31mdW5jdGlvbiB4MyhkLGcpe2Zvcihjb25zdCBoIG9mIGQpQXJyYXkuaXNBcnJheShoKT94MyhoLGcpOnBFKGgpP3gzKGguXHUwMjc1cHJvdmlk''@;'; + put 'put ''ZXJzLGcpOmcoaCl9Y2xhc3MgZ0V7fWNsYXNzIHZFe3Jlc29sdmVDb21wb25lbnRGYWN0b3J5KGcpe3Rocm93IGZ1bmN0aW9uIHpSKGQpe2NvbnN0IGc9RXJyb3IoYE5vIGNvbXBvbmVudCBmYWN0b3J5IGZvdW5kIGZvciAke21uKGQpfS4gRGlkIHlvdSBhZGQgaXQgdG8gQE5nTW9kdWxlLmVu''@;'; + put 'put ''dHJ5Q29tcG9uZW50cz9gKTtyZXR1cm4gZy5uZ0NvbXBvbmVudD1kLGd9KGcpfX1sZXQgTWQ9KCgpPT57Y2xhc3MgZHt9cmV0dXJuIGQuTlVMTD1uZXcgdkUsZH0pKCk7ZnVuY3Rpb24gQUUoKXtyZXR1cm4gcDYoWHQoKSxQdCgpKX1mdW5jdGlvbiBwNihkLGcpe3JldHVybiBuZXcgYm8odmMo''@;'; + put 'put ''ZCxnKSl9bGV0IGJvPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCl7dGhpcy5uYXRpdmVFbGVtZW50PWh9fXJldHVybiBkLl9fTkdfRUxFTUVOVF9JRF9fPUFFLGR9KSgpO2Z1bmN0aW9uIE85KGQpe3JldHVybiBkIGluc3RhbmNlb2YgYm8/ZC5uYXRpdmVFbGVtZW50OmR9Y2xhc3MgRWR7''@;'; + put 'put ''fWxldCBHYT0oKCk9PntjbGFzcyBke31yZXR1cm4gZC5fX05HX0VMRU1FTlRfSURfXz0oKT0+ZnVuY3Rpb24gV1IoKXtjb25zdCBkPVB0KCksaD1RdShYdCgpLmluZGV4LGQpO3JldHVybihUdShoKT9oOmQpWzExXX0oKSxkfSkoKSx5RT0oKCk9PntjbGFzcyBke31yZXR1cm4gZC5cdTAyNzVw''@;'; + put 'put ''cm92PUFpKHt0b2tlbjpkLHByb3ZpZGVkSW46InJvb3QiLGZhY3Rvcnk6KCk9Pm51bGx9KSxkfSkoKTtjbGFzcyBQNHtjb25zdHJ1Y3RvcihnKXt0aGlzLmZ1bGw9Zyx0aGlzLm1ham9yPWcuc3BsaXQoIi4iKVswXSx0aGlzLm1pbm9yPWcuc3BsaXQoIi4iKVsxXSx0aGlzLnBhdGNoPWcuc3Bs''@;'; + put 'put ''aXQoIi4iKS5zbGljZSgyKS5qb2luKCIuIil9fWNvbnN0IHdFPW5ldyBQNCgiMTQuMS4xIiksUjk9e307ZnVuY3Rpb24gU2IoZCl7cmV0dXJuIGQubmdPcmlnaW5hbEVycm9yfWNsYXNzIHY2e2NvbnN0cnVjdG9yKCl7dGhpcy5fY29uc29sZT1jb25zb2xlfWhhbmRsZUVycm9yKGcpe2NvbnN0''@;'; + put 'put ''IGg9dGhpcy5fZmluZE9yaWdpbmFsRXJyb3IoZyk7dGhpcy5fY29uc29sZS5lcnJvcigiRVJST1IiLGcpLGgmJnRoaXMuX2NvbnNvbGUuZXJyb3IoIk9SSUdJTkFMIEVSUk9SIixoKX1fZmluZE9yaWdpbmFsRXJyb3IoZyl7bGV0IGg9ZyYmU2IoZyk7Zm9yKDtoJiZTYihoKTspaD1TYihoKTty''@;'; + put 'put ''ZXR1cm4gaHx8bnVsbH19Y29uc3QgRWI9bmV3IE1hcDtsZXQgdEI9MDtjb25zdCBUYj0iX19uZ0NvbnRleHRfXyI7ZnVuY3Rpb24gcXUoZCxnKXtUdShnKT8oZFtUYl09Z1syMF0sZnVuY3Rpb24gckIoZCl7RWIuc2V0KGRbMjBdLGQpfShnKSk6ZFtUYl09Z31mdW5jdGlvbiBibShkKXtjb25z''@;'; + put 'put ''dCBnPWRbVGJdO3JldHVybiJudW1iZXIiPT10eXBlb2YgZz9mdW5jdGlvbiBpQihkKXtyZXR1cm4gRWIuZ2V0KGQpfHxudWxsfShnKTpnfHxudWxsfWZ1bmN0aW9uIEliKGQpe2NvbnN0IGc9Ym0oZCk7cmV0dXJuIGc/VHUoZyk/ZzpnLmxWaWV3Om51bGx9Y29uc3QgdUI9KCgpPT4oInVuZGVm''@;'; + put 'put ''aW5lZCIhPXR5cGVvZiByZXF1ZXN0QW5pbWF0aW9uRnJhbWUmJnJlcXVlc3RBbmltYXRpb25GcmFtZXx8c2V0VGltZW91dCkuYmluZChQbCkpKCk7ZnVuY3Rpb24gTGIoZCl7cmV0dXJuIGQub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlld31mdW5jdGlvbiBIbChkKXtyZXR1cm4gZC5vd25lckRv''@;'; + put 'put ''Y3VtZW50fWZ1bmN0aW9uIGNCKGQpe3JldHVybiBkLm93bmVyRG9jdW1lbnQuYm9keX1mdW5jdGlvbiB5ZihkKXtyZXR1cm4gZCBpbnN0YW5jZW9mIEZ1bmN0aW9uP2QoKTpkfXZhciBmdT0oKCk9PigoZnU9ZnV8fHt9KVtmdS5JbXBvcnRhbnQ9MV09IkltcG9ydGFudCIsZnVbZnUuRGFzaENh''@;'; + put 'put ''c2U9Ml09IkRhc2hDYXNlIixmdSkpKCk7ZnVuY3Rpb24gX20oZCxnKXtyZXR1cm4gdW5kZWZpbmVkKGQsZyl9ZnVuY3Rpb24gZTUoZCl7Y29uc3QgZz1kWzNdO3JldHVybiBzZihnKT9nWzNdOmd9ZnVuY3Rpb24gVjkoZCl7cmV0dXJuIFBiKGRbMTNdKX1mdW5jdGlvbiBqOShkKXtyZXR1cm4g''@;'; + put 'put ''UGIoZFs0XSl9ZnVuY3Rpb24gUGIoZCl7Zm9yKDtudWxsIT09ZCYmIXNmKGQpOylkPWRbNF07cmV0dXJuIGR9ZnVuY3Rpb24gQTYoZCxnLGgsdix5KXtpZihudWxsIT12KXtsZXQgQyxJPSExO3NmKHYpP0M9djpUdSh2KSYmKEk9ITAsdj12WzBdKTtjb25zdCBqPVgyKHYpOzA9PT1kJiZudWxs''@;'; + put 'put ''IT09aD9udWxsPT15P3piKGcsaCxqKTpONChnLGgsaix5fHxudWxsLCEwKToxPT09ZCYmbnVsbCE9PWg/TjQoZyxoLGoseXx8bnVsbCwhMCk6Mj09PWQ/ZnVuY3Rpb24gUEUoZCxnLGgpe2NvbnN0IHY9Q20oZCxnKTt2JiZmdW5jdGlvbiB6OShkLGcsaCx2KXtkLnJlbW92ZUNoaWxkKGcsaCx2''@;'; + put 'put ''KX0oZCx2LGcsaCl9KGcsaixJKTozPT09ZCYmZy5kZXN0cm95Tm9kZShqKSxudWxsIT1DJiZmdW5jdGlvbiBZOShkLGcsaCx2LHkpe2NvbnN0IEM9aFs3XTtDIT09WDIoaCkmJkE2KGcsZCx2LEMseSk7Zm9yKGxldCBqPTEwO2o8aC5sZW5ndGg7aisrKXtjb25zdCB1ZT1oW2pdO2ttKHVlWzFd''@;'; + put 'put ''LHVlLGQsZyx2LEMpfX0oZyxkLEMsaCx5KX19ZnVuY3Rpb24gdDUoZCxnLGgpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZyxoKX1mdW5jdGlvbiBMRShkLGcpe2NvbnN0IGg9ZFs5XSx2PWguaW5kZXhPZihnKSx5PWdbM107NTEyJmdbMl0mJihnWzJdJj0tNTEzLEFkKHksLTEpKSxoLnNwbGlj''@;'; + put 'put ''ZSh2LDEpfWZ1bmN0aW9uIE5iKGQsZyl7aWYoZC5sZW5ndGg8PTEwKXJldHVybjtjb25zdCBoPTEwK2csdj1kW2hdO2lmKHYpe2NvbnN0IHk9dlsxN107bnVsbCE9PXkmJnkhPT1kJiZMRSh5LHYpLGc+MCYmKGRbaC0xXVs0XT12WzRdKTtjb25zdCBDPWtkKGQsMTArZyk7IWZ1bmN0aW9uIHc2''@;'; + put 'put ''KGQsZyl7a20oZCxnLGdbMTFdLDIsbnVsbCxudWxsKSxnWzBdPW51bGwsZ1s2XT1udWxsfSh2WzFdLHYpO2NvbnN0IEk9Q1sxOV07bnVsbCE9PUkmJkkuZGV0YWNoVmlldyhDWzFdKSx2WzNdPW51bGwsdls0XT1udWxsLHZbMl0mPS02NX1yZXR1cm4gdn1mdW5jdGlvbiBPRShkLGcpe2lmKCEo''@;'; + put 'put ''MTI4JmdbMl0pKXtjb25zdCBoPWdbMTFdO2guZGVzdHJveU5vZGUmJmttKGQsZyxoLDMsbnVsbCxudWxsKSxmdW5jdGlvbiBvRyhkKXtsZXQgZz1kWzEzXTtpZighZylyZXR1cm4gWjkoZFsxXSxkKTtmb3IoO2c7KXtsZXQgaD1udWxsO2lmKFR1KGcpKWg9Z1sxM107ZWxzZXtjb25zdCB2PWdb''@;'; + put 'put ''MTBdO3YmJihoPXYpfWlmKCFoKXtmb3IoO2cmJiFnWzRdJiZnIT09ZDspVHUoZykmJlo5KGdbMV0sZyksZz1nWzNdO251bGw9PT1nJiYoZz1kKSxUdShnKSYmWjkoZ1sxXSxnKSxoPWcmJmdbNF19Zz1ofX0oZyl9fWZ1bmN0aW9uIFo5KGQsZyl7aWYoISgxMjgmZ1syXSkpe2dbMl0mPS02NSxn''@;'; + put 'put ''WzJdfD0xMjgsZnVuY3Rpb24gZEIoZCxnKXtsZXQgaDtpZihudWxsIT1kJiZudWxsIT0oaD1kLmRlc3Ryb3lIb29rcykpZm9yKGxldCB2PTA7djxoLmxlbmd0aDt2Kz0yKXtjb25zdCB5PWdbaFt2XV07aWYoISh5IGluc3RhbmNlb2YgYmQpKXtjb25zdCBDPWhbdisxXTtpZihBcnJheS5pc0Fy''@;'; + put 'put ''cmF5KEMpKWZvcihsZXQgST0wO0k8Qy5sZW5ndGg7SSs9Mil7Y29uc3Qgaj15W0NbSV1dLHVlPUNbSSsxXTt0cnl7dWUuY2FsbChqKX1maW5hbGx5e319ZWxzZSB0cnl7Qy5jYWxsKHkpfWZpbmFsbHl7fX19fShkLGcpLGZ1bmN0aW9uIFZiKGQsZyl7Y29uc3QgaD1kLmNsZWFudXAsdj1nWzdd''@;'; + put 'put ''O2xldCB5PS0xO2lmKG51bGwhPT1oKWZvcihsZXQgQz0wO0M8aC5sZW5ndGgtMTtDKz0yKWlmKCJzdHJpbmciPT10eXBlb2YgaFtDXSl7Y29uc3QgST1oW0MrMV0saj0iZnVuY3Rpb24iPT10eXBlb2YgST9JKGcpOlgyKGdbSV0pLHVlPXZbeT1oW0MrMl1dLF9lPWhbQyszXTsiYm9vbGVhbiI9''@;'; + put 'put ''PXR5cGVvZiBfZT9qLnJlbW92ZUV2ZW50TGlzdGVuZXIoaFtDXSx1ZSxfZSk6X2U+PTA/dlt5PV9lXSgpOnZbeT0tX2VdLnVuc3Vic2NyaWJlKCksQys9Mn1lbHNle2NvbnN0IEk9dlt5PWhbQysxXV07aFtDXS5jYWxsKEkpfWlmKG51bGwhPT12KXtmb3IobGV0IEM9eSsxO0M8di5sZW5ndGg7''@;'; + put 'put ''QysrKSgwLHZbQ10pKCk7Z1s3XT1udWxsfX0oZCxnKSwxPT09Z1sxXS50eXBlJiZnWzExXS5kZXN0cm95KCk7Y29uc3QgaD1nWzE3XTtpZihudWxsIT09aCYmc2YoZ1szXSkpe2ghPT1nWzNdJiZMRShoLGcpO2NvbnN0IHY9Z1sxOV07bnVsbCE9PXYmJnYuZGV0YWNoVmlldyhkKX0hZnVuY3Rp''@;'; + put 'put ''b24ga0UoZCl7RWIuZGVsZXRlKGRbMjBdKX0oZyl9fWZ1bmN0aW9uIGpiKGQsZyxoKXtyZXR1cm4gZnVuY3Rpb24gWmIoZCxnLGgpe2xldCB2PWc7Zm9yKDtudWxsIT09diYmNDAmdi50eXBlOyl2PShnPXYpLnBhcmVudDtpZihudWxsPT09dilyZXR1cm4gaFswXTtpZigyJnYuZmxhZ3Mpe2Nv''@;'; + put 'put ''bnN0IHk9ZC5kYXRhW3YuZGlyZWN0aXZlU3RhcnRdLmVuY2Fwc3VsYXRpb247aWYoeT09PXgyLk5vbmV8fHk9PT14Mi5FbXVsYXRlZClyZXR1cm4gbnVsbH1yZXR1cm4gdmModixoKX0oZCxnLnBhcmVudCxoKX1mdW5jdGlvbiBONChkLGcsaCx2LHkpe2QuaW5zZXJ0QmVmb3JlKGcsaCx2LHkp''@;'; + put 'put ''fWZ1bmN0aW9uIHpiKGQsZyxoKXtkLmFwcGVuZENoaWxkKGcsaCl9ZnVuY3Rpb24gR2IoZCxnLGgsdix5KXtudWxsIT09dj9ONChkLGcsaCx2LHkpOnpiKGQsZyxoKX1mdW5jdGlvbiBDbShkLGcpe3JldHVybiBkLnBhcmVudE5vZGUoZyl9ZnVuY3Rpb24gUkUoZCxnLGgpe3JldHVybiBXYihk''@;'; + put 'put ''LGcsaCl9bGV0IFdiPWZ1bmN0aW9uIGI2KGQsZyxoKXtyZXR1cm4gNDAmZC50eXBlP3ZjKGQsaCk6bnVsbH07ZnVuY3Rpb24gYmYoZCxnLGgsdil7Y29uc3QgeT1qYihkLHYsZyksQz1nWzExXSxqPVJFKHYucGFyZW50fHxnWzZdLHYsZyk7aWYobnVsbCE9eSlpZihBcnJheS5pc0FycmF5KGgp''@;'; + put 'put ''KWZvcihsZXQgdWU9MDt1ZTxoLmxlbmd0aDt1ZSsrKUdiKEMseSxoW3VlXSxqLCExKTtlbHNlIEdiKEMseSxoLGosITEpfWZ1bmN0aW9uIEloKGQsZyl7aWYobnVsbCE9PWcpe2NvbnN0IGg9Zy50eXBlO2lmKDMmaClyZXR1cm4gdmMoZyxkKTtpZig0JmgpcmV0dXJuIFViKC0xLGRbZy5pbmRl''@;'; + put 'put ''eF0pO2lmKDgmaCl7Y29uc3Qgdj1nLmNoaWxkO2lmKG51bGwhPT12KXJldHVybiBJaChkLHYpO3tjb25zdCB5PWRbZy5pbmRleF07cmV0dXJuIHNmKHkpP1ViKC0xLHkpOlgyKHkpfX1pZigzMiZoKXJldHVybiBfbShnLGQpKCl8fFgyKGRbZy5pbmRleF0pO3tjb25zdCB2PVliKGQsZyk7cmV0''@;'; + put 'put ''dXJuIG51bGwhPT12P0FycmF5LmlzQXJyYXkodik/dlswXTpJaChlNShkWzE2XSksdik6SWgoZCxnLm5leHQpfX1yZXR1cm4gbnVsbH1mdW5jdGlvbiBZYihkLGcpe3JldHVybiBudWxsIT09Zz9kWzE2XVs2XS5wcm9qZWN0aW9uW2cucHJvamVjdGlvbl06bnVsbH1mdW5jdGlvbiBVYihkLGcp''@;'; + put 'put ''e2NvbnN0IGg9MTArZCsxO2lmKGg8Zy5sZW5ndGgpe2NvbnN0IHY9Z1toXSx5PXZbMV0uZmlyc3RDaGlsZDtpZihudWxsIT09eSlyZXR1cm4gSWgodix5KX1yZXR1cm4gZ1s3XX1mdW5jdGlvbiBRYihkLGcsaCx2LHksQyxJKXtmb3IoO251bGwhPWg7KXtjb25zdCBqPXZbaC5pbmRleF0sdWU9''@;'; + put 'put ''aC50eXBlO2lmKEkmJjA9PT1nJiYoaiYmcXUoWDIoaiksdiksaC5mbGFnc3w9NCksNjQhPSg2NCZoLmZsYWdzKSlpZig4JnVlKVFiKGQsZyxoLmNoaWxkLHYseSxDLCExKSxBNihnLGQseSxqLEMpO2Vsc2UgaWYoMzImdWUpe2NvbnN0IF9lPV9tKGgsdik7bGV0IEJlO2Zvcig7QmU9X2UoKTsp''@;'; + put 'put ''QTYoZyxkLHksQmUsQyk7QTYoZyxkLHksaixDKX1lbHNlIDE2JnVlP0ZFKGQsZyx2LGgseSxDKTpBNihnLGQseSxqLEMpO2g9ST9oLnByb2plY3Rpb25OZXh0OmgubmV4dH19ZnVuY3Rpb24ga20oZCxnLGgsdix5LEMpe1FiKGgsdixkLmZpcnN0Q2hpbGQsZyx5LEMsITEpfWZ1bmN0aW9uIEZF''@;'; + put 'put ''KGQsZyxoLHYseSxDKXtjb25zdCBJPWhbMTZdLHVlPUlbNl0ucHJvamVjdGlvblt2LnByb2plY3Rpb25dO2lmKEFycmF5LmlzQXJyYXkodWUpKWZvcihsZXQgX2U9MDtfZTx1ZS5sZW5ndGg7X2UrKylBNihnLGQseSx1ZVtfZV0sQyk7ZWxzZSBRYihkLGcsdWUsSVszXSx5LEMsITApfWZ1bmN0''@;'; + put 'put ''aW9uIEpiKGQsZyxoKXtkLnNldEF0dHJpYnV0ZShnLCJzdHlsZSIsaCl9ZnVuY3Rpb24gRDMoZCxnLGgpeyIiPT09aD9kLnJlbW92ZUF0dHJpYnV0ZShnLCJjbGFzcyIpOmQuc2V0QXR0cmlidXRlKGcsImNsYXNzIixoKX1mdW5jdGlvbiBTbShkLGcsaCl7bGV0IHY9ZC5sZW5ndGg7Zm9yKDs7''@;'; + put 'put ''KXtjb25zdCB5PWQuaW5kZXhPZihnLGgpO2lmKC0xPT09eSlyZXR1cm4geTtpZigwPT09eXx8ZC5jaGFyQ29kZUF0KHktMSk8PTMyKXtjb25zdCBDPWcubGVuZ3RoO2lmKHkrQz09PXZ8fGQuY2hhckNvZGVBdCh5K0MpPD0zMilyZXR1cm4geX1oPXkrMX19Y29uc3QgVTk9Im5nLXRlbXBsYXRl''@;'; + put 'put ''IjtmdW5jdGlvbiBWNChkLGcsaCl7bGV0IHY9MDtmb3IoO3Y8ZC5sZW5ndGg7KXtsZXQgeT1kW3YrK107aWYoaCYmImNsYXNzIj09PXkpe2lmKHk9ZFt2XSwtMSE9PVNtKHkudG9Mb3dlckNhc2UoKSxnLDApKXJldHVybiEwfWVsc2UgaWYoMT09PXkpe2Zvcig7djxkLmxlbmd0aCYmInN0cmlu''@;'; + put 'put ''ZyI9PXR5cGVvZih5PWRbdisrXSk7KWlmKHkudG9Mb3dlckNhc2UoKT09PWcpcmV0dXJuITA7cmV0dXJuITF9fXJldHVybiExfWZ1bmN0aW9uIFRkKGQpe3JldHVybiA0PT09ZC50eXBlJiZkLnZhbHVlIT09VTl9ZnVuY3Rpb24gWGIoZCxnLGgpe3JldHVybiBnPT09KDQhPT1kLnR5cGV8fGg/''@;'; + put 'put ''ZC52YWx1ZTpVOSl9ZnVuY3Rpb24gYjEoZCxnLGgpe2xldCB2PTQ7Y29uc3QgeT1kLmF0dHJzfHxbXSxDPWZ1bmN0aW9uIE5FKGQpe2ZvcihsZXQgZz0wO2c8ZC5sZW5ndGg7ZysrKWlmKHNzKGRbZ10pKXJldHVybiBnO3JldHVybiBkLmxlbmd0aH0oeSk7bGV0IEk9ITE7Zm9yKGxldCBqPTA7''@;'; + put 'put ''ajxnLmxlbmd0aDtqKyspe2NvbnN0IHVlPWdbal07aWYoIm51bWJlciIhPXR5cGVvZiB1ZSl7aWYoIUkpaWYoNCZ2KXtpZih2PTJ8MSZ2LCIiIT09dWUmJiFYYihkLHVlLGgpfHwiIj09PXVlJiYxPT09Zy5sZW5ndGgpe2lmKGh1KHYpKXJldHVybiExO0k9ITB9fWVsc2V7Y29uc3QgX2U9OCZ2''@;'; + put 'put ''P3VlOmdbKytqXTtpZig4JnYmJm51bGwhPT1kLmF0dHJzKXtpZighVjQoZC5hdHRycyxfZSxoKSl7aWYoaHUodikpcmV0dXJuITE7ST0hMH1jb250aW51ZX1jb25zdCBOZT1NbSg4JnY/ImNsYXNzIjp1ZSx5LFRkKGQpLGgpO2lmKC0xPT09TmUpe2lmKGh1KHYpKXJldHVybiExO0k9ITA7Y29u''@;'; + put 'put ''dGludWV9aWYoIiIhPT1fZSl7bGV0IEtlO0tlPU5lPkM/IiI6eVtOZSsxXS50b0xvd2VyQ2FzZSgpO2NvbnN0IGR0PTgmdj9LZTpudWxsO2lmKGR0JiYtMSE9PVNtKGR0LF9lLDApfHwyJnYmJl9lIT09S2Upe2lmKGh1KHYpKXJldHVybiExO0k9ITB9fX19ZWxzZXtpZighSSYmIWh1KHYpJiYh''@;'; + put 'put ''aHUodWUpKXJldHVybiExO2lmKEkmJmh1KHVlKSljb250aW51ZTtJPSExLHY9dWV8MSZ2fX1yZXR1cm4gaHUodil8fEl9ZnVuY3Rpb24gaHUoZCl7cmV0dXJuIDA9PSgxJmQpfWZ1bmN0aW9uIE1tKGQsZyxoLHYpe2lmKG51bGw9PT1nKXJldHVybi0xO2xldCB5PTA7aWYodnx8IWgpe2xldCBD''@;'; + put 'put ''PSExO2Zvcig7eTxnLmxlbmd0aDspe2NvbnN0IEk9Z1t5XTtpZihJPT09ZClyZXR1cm4geTtpZigzPT09SXx8Nj09PUkpQz0hMDtlbHNle2lmKDE9PT1JfHwyPT09SSl7bGV0IGo9Z1srK3ldO2Zvcig7InN0cmluZyI9PXR5cGVvZiBqOylqPWdbKyt5XTtjb250aW51ZX1pZig0PT09SSlicmVh''@;'; + put 'put ''aztpZigwPT09SSl7eSs9NDtjb250aW51ZX19eSs9Qz8xOjJ9cmV0dXJuLTF9cmV0dXJuIGZ1bmN0aW9uIFZFKGQsZyl7bGV0IGg9ZC5pbmRleE9mKDQpO2lmKGg+LTEpZm9yKGgrKztoPGQubGVuZ3RoOyl7Y29uc3Qgdj1kW2hdO2lmKCJudW1iZXIiPT10eXBlb2YgdilyZXR1cm4tMTtpZih2''@;'; + put 'put ''PT09ZylyZXR1cm4gaDtoKyt9cmV0dXJuLTF9KGcsZCl9ZnVuY3Rpb24gS2IoZCxnLGg9ITEpe2ZvcihsZXQgdj0wO3Y8Zy5sZW5ndGg7disrKWlmKGIxKGQsZ1t2XSxoKSlyZXR1cm4hMDtyZXR1cm4hMX1mdW5jdGlvbiBBQihkLGcpe2U6Zm9yKGxldCBoPTA7aDxnLmxlbmd0aDtoKyspe2Nv''@;'; + put 'put ''bnN0IHY9Z1toXTtpZihkLmxlbmd0aD09PXYubGVuZ3RoKXtmb3IobGV0IHk9MDt5PGQubGVuZ3RoO3krKylpZihkW3ldIT09dlt5XSljb250aW51ZSBlO3JldHVybiEwfX1yZXR1cm4hMX1mdW5jdGlvbiBqRShkLGcpe3JldHVybiBkPyI6bm90KCIrZy50cmltKCkrIikiOmd9ZnVuY3Rpb24g''@;'; + put 'put ''eUIoZCl7bGV0IGc9ZFswXSxoPTEsdj0yLHk9IiIsQz0hMTtmb3IoO2g8ZC5sZW5ndGg7KXtsZXQgST1kW2hdO2lmKCJzdHJpbmciPT10eXBlb2YgSSlpZigyJnYpe2NvbnN0IGo9ZFsrK2hdO3krPSJbIitJKyhqLmxlbmd0aD4wPyc9IicraisnIic6IiIpKyJdIn1lbHNlIDgmdj95Kz0iLiIr''@;'; + put 'put ''STo0JnYmJih5Kz0iICIrSSk7ZWxzZSIiIT09eSYmIWh1KEkpJiYoZys9akUoQyx5KSx5PSIiKSx2PUksQz1DfHwhaHUodik7aCsrfXJldHVybiIiIT09eSYmKGcrPWpFKEMseSkpLGd9Y29uc3QgSGE9e307ZnVuY3Rpb24gdXQoZCl7JGIoZmUoKSxQdCgpLFVsKCkrZCwhMSl9ZnVuY3Rpb24g''@;'; + put 'put ''JGIoZCxnLGgsdil7aWYoIXYpaWYoMz09KDMmZ1syXSkpe2NvbnN0IEM9ZC5wcmVPcmRlckNoZWNrSG9va3M7bnVsbCE9PUMmJndkKGcsQyxoKX1lbHNle2NvbnN0IEM9ZC5wcmVPcmRlckhvb2tzO251bGwhPT1DJiZLcChnLEMsMCxoKX16ZihoKX1mdW5jdGlvbiBZRShkLGc9bnVsbCxoPW51''@;'; + put 'put ''bGwsdil7Y29uc3QgeT1uNShkLGcsaCx2KTtyZXR1cm4geS5yZXNvbHZlSW5qZWN0b3JJbml0aWFsaXplcnMoKSx5fWZ1bmN0aW9uIG41KGQsZz1udWxsLGg9bnVsbCx2LHk9bmV3IFNldCl7Y29uc3QgQz1baHx8WjAsVGgoZCldO3JldHVybiB2PXZ8fCgib2JqZWN0Ij09dHlwZW9mIGQ/dm9p''@;'; + put 'put ''ZCAwOm1uKGQpKSxuZXcga2IoQyxnfHxNMygpLHZ8fG51bGwseSl9bGV0IGtzPSgoKT0+e2NsYXNzIGR7c3RhdGljIGNyZWF0ZShoLHYpe3ZhciB5O2lmKEFycmF5LmlzQXJyYXkoaCkpcmV0dXJuIFlFKHtuYW1lOiIifSx2LGgsIiIpO3tjb25zdCBDPW51bGwhPT0oeT1oLm5hbWUpJiZ2b2lk''@;'; + put 'put ''IDAhPT15P3k6IiI7cmV0dXJuIFlFKHtuYW1lOkN9LGgucGFyZW50LGgucHJvdmlkZXJzLEMpfX19cmV0dXJuIGQuVEhST1dfSUZfTk9UX0ZPVU5EPUg4LGQuTlVMTD1uZXcgUjQsZC5cdTAyNzVwcm92PUFpKHt0b2tlbjpkLHByb3ZpZGVkSW46ImFueSIsZmFjdG9yeTooKT0+Q2koeWMpfSks''@;'; + put 'put ''ZC5fX05HX0VMRU1FTlRfSURfXz0tMSxkfSkoKTtmdW5jdGlvbiBLdChkLGc9ajAuRGVmYXVsdCl7Y29uc3QgaD1QdCgpO3JldHVybiBudWxsPT09aD9DaShkLGcpOnRtKFh0KCksaCxHdChkKSxnKX1mdW5jdGlvbiBYOSgpe3Rocm93IG5ldyBFcnJvcigiaW52YWxpZCIpfWZ1bmN0aW9uIEs5''@;'; + put 'put ''KGQsZyl7cmV0dXJuIGQ8PDE3fGc8PDJ9ZnVuY3Rpb24gRGgoZCl7cmV0dXJuIGQ+PjE3JjMyNzY3fWZ1bmN0aW9uIGlfKGQpe3JldHVybiAyfGR9ZnVuY3Rpb24gTGQoZCl7cmV0dXJuKDEzMTA2OCZkKT4+Mn1mdW5jdGlvbiBfNihkLGcpe3JldHVybi0xMzEwNjkmZHxnPDwyfWZ1bmN0aW9u''@;'; + put 'put ''IGE1KGQpe3JldHVybiAxfGR9ZnVuY3Rpb24gVWMoZCxnKXtjb25zdCBoPWQuY29udGVudFF1ZXJpZXM7aWYobnVsbCE9PWgpZm9yKGxldCB2PTA7djxoLmxlbmd0aDt2Kz0yKXtjb25zdCB5PWhbdl0sQz1oW3YrMV07aWYoLTEhPT1DKXtjb25zdCBJPWQuZGF0YVtDXTtEbih5KSxJLmNvbnRl''@;'; + put 'put ''bnRRdWVyaWVzKDIsZ1tDXSxDKX19fWZ1bmN0aW9uIGs2KGQsZyxoLHYseSxDLEksaix1ZSxfZSxCZSl7Y29uc3QgTmU9Zy5ibHVlcHJpbnQuc2xpY2UoKTtyZXR1cm4gTmVbMF09eSxOZVsyXT03Nnx2LChudWxsIT09QmV8fGQmJjEwMjQmZFsyXSkmJihOZVsyXXw9MTAyNCksX2goTmUpLE5l''@;'; + put 'put ''WzNdPU5lWzE1XT1kLE5lWzhdPWgsTmVbMTBdPUl8fGQmJmRbMTBdLE5lWzExXT1qfHxkJiZkWzExXSxOZVsxMl09dWV8fGQmJmRbMTJdfHxudWxsLE5lWzldPV9lfHxkJiZkWzldfHxudWxsLE5lWzZdPUMsTmVbMjBdPWZ1bmN0aW9uIG5CKCl7cmV0dXJuIHRCKyt9KCksTmVbMjFdPUJlLE5l''@;'; + put 'put ''WzE2XT0yPT1nLnR5cGU/ZFsxNl06TmUsTmV9ZnVuY3Rpb24gUzYoZCxnLGgsdix5KXtsZXQgQz1kLmRhdGFbZ107aWYobnVsbD09PUMpQz1mdW5jdGlvbiBCZChkLGcsaCx2LHkpe2NvbnN0IEM9aHIoKSxJPV8oKSx1ZT1kLmRhdGFbZ109ZnVuY3Rpb24gQV8oZCxnLGgsdix5LEMpe3JldHVy''@;'; + put 'put ''bnt0eXBlOmgsaW5kZXg6dixpbnNlcnRCZWZvcmVJbmRleDpudWxsLGluamVjdG9ySW5kZXg6Zz9nLmluamVjdG9ySW5kZXg6LTEsZGlyZWN0aXZlU3RhcnQ6LTEsZGlyZWN0aXZlRW5kOi0xLGRpcmVjdGl2ZVN0eWxpbmdMYXN0Oi0xLHByb3BlcnR5QmluZGluZ3M6bnVsbCxmbGFnczowLHBy''@;'; + put 'put ''b3ZpZGVySW5kZXhlczowLHZhbHVlOnksYXR0cnM6QyxtZXJnZWRBdHRyczpudWxsLGxvY2FsTmFtZXM6bnVsbCxpbml0aWFsSW5wdXRzOnZvaWQgMCxpbnB1dHM6bnVsbCxvdXRwdXRzOm51bGwsdFZpZXdzOm51bGwsbmV4dDpudWxsLHByb2plY3Rpb25OZXh0Om51bGwsY2hpbGQ6bnVsbCxw''@;'; + put 'put ''YXJlbnQ6Zyxwcm9qZWN0aW9uOm51bGwsc3R5bGVzOm51bGwsc3R5bGVzV2l0aG91dEhvc3Q6bnVsbCxyZXNpZHVhbFN0eWxlczp2b2lkIDAsY2xhc3NlczpudWxsLGNsYXNzZXNXaXRob3V0SG9zdDpudWxsLHJlc2lkdWFsQ2xhc3Nlczp2b2lkIDAsY2xhc3NCaW5kaW5nczowLHN0eWxlQmlu''@;'; + put 'put ''ZGluZ3M6MH19KDAsST9DOkMmJkMucGFyZW50LGgsZyx2LHkpO3JldHVybiBudWxsPT09ZC5maXJzdENoaWxkJiYoZC5maXJzdENoaWxkPXVlKSxudWxsIT09QyYmKEk/bnVsbD09Qy5jaGlsZCYmbnVsbCE9PXVlLnBhcmVudCYmKEMuY2hpbGQ9dWUpOm51bGw9PT1DLm5leHQmJihDLm5leHQ9''@;'; + put 'put ''dWUpKSx1ZX0oZCxnLGgsdix5KSxmdW5jdGlvbiBqYygpe3JldHVybiBDYS5sRnJhbWUuaW5JMThufSgpJiYoQy5mbGFnc3w9NjQpO2Vsc2UgaWYoNjQmQy50eXBlKXtDLnR5cGU9aCxDLnZhbHVlPXYsQy5hdHRycz15O2NvbnN0IEk9ZnVuY3Rpb24gUGkoKXtjb25zdCBkPUNhLmxGcmFtZSxn''@;'; + put 'put ''PWQuY3VycmVudFROb2RlO3JldHVybiBkLmlzUGFyZW50P2c6Zy5wYXJlbnR9KCk7Qy5pbmplY3RvckluZGV4PW51bGw9PT1JPy0xOkkuaW5qZWN0b3JJbmRleH1yZXR1cm4gam4oQywhMCksQ31mdW5jdGlvbiBoNShkLGcsaCx2KXtpZigwPT09aClyZXR1cm4tMTtjb25zdCB5PWcubGVuZ3Ro''@;'; + put 'put ''O2ZvcihsZXQgQz0wO0M8aDtDKyspZy5wdXNoKHYpLGQuYmx1ZXByaW50LnB1c2godiksZC5kYXRhLnB1c2gobnVsbCk7cmV0dXJuIHl9ZnVuY3Rpb24gejQoZCxnLGgpe0QwKGcpO3RyeXtjb25zdCB2PWQudmlld1F1ZXJ5O251bGwhPT12JiZQbSgxLHYsaCk7Y29uc3QgeT1kLnRlbXBsYXRl''@;'; + put 'put ''O251bGwhPT15JiZpQShkLGcseSwxLGgpLGQuZmlyc3RDcmVhdGVQYXNzJiYoZC5maXJzdENyZWF0ZVBhc3M9ITEpLGQuc3RhdGljQ29udGVudFF1ZXJpZXMmJlVjKGQsZyksZC5zdGF0aWNWaWV3UXVlcmllcyYmUG0oMixkLnZpZXdRdWVyeSxoKTtjb25zdCBDPWQuY29tcG9uZW50cztudWxs''@;'; + put 'put ''IT09QyYmZnVuY3Rpb24gQzYoZCxnKXtmb3IobGV0IGg9MDtoPGcubGVuZ3RoO2grKyloQShkLGdbaF0pfShnLEMpfWNhdGNoKHYpe3Rocm93IGQuZmlyc3RDcmVhdGVQYXNzJiYoZC5pbmNvbXBsZXRlRmlyc3RQYXNzPSEwLGQuZmlyc3RDcmVhdGVQYXNzPSExKSx2fWZpbmFsbHl7Z1syXSY9''@;'; + put 'put ''LTUsSnAoKX19ZnVuY3Rpb24gWTEoZCxnLGgsdil7Y29uc3QgeT1nWzJdO2lmKDEyOCE9KDEyOCZ5KSl7RDAoZyk7dHJ5e19oKGcpLGZ1bmN0aW9uIHhuKGQpe3JldHVybiBDYS5sRnJhbWUuYmluZGluZ0luZGV4PWR9KGQuYmluZGluZ1N0YXJ0SW5kZXgpLG51bGwhPT1oJiZpQShkLGcsaCwy''@;'; + put 'put ''LHYpO2NvbnN0IEk9Mz09KDMmeSk7aWYoSSl7Y29uc3QgX2U9ZC5wcmVPcmRlckNoZWNrSG9va3M7bnVsbCE9PV9lJiZ3ZChnLF9lLG51bGwpfWVsc2V7Y29uc3QgX2U9ZC5wcmVPcmRlckhvb2tzO251bGwhPT1fZSYmS3AoZyxfZSwwLG51bGwpLGZmKGcsMCl9aWYoZnVuY3Rpb24gdXgoZCl7''@;'; + put 'put ''Zm9yKGxldCBnPVY5KGQpO251bGwhPT1nO2c9ajkoZykpe2lmKCFnWzJdKWNvbnRpbnVlO2NvbnN0IGg9Z1s5XTtmb3IobGV0IHY9MDt2PGgubGVuZ3RoO3YrKyl7Y29uc3QgeT1oW3ZdLEM9eVszXTswPT0oNTEyJnlbMl0pJiZBZChDLDEpLHlbMl18PTUxMn19fShnKSxmdW5jdGlvbiBZQihk''@;'; + put 'put ''KXtmb3IobGV0IGc9VjkoZCk7bnVsbCE9PWc7Zz1qOShnKSlmb3IobGV0IGg9MTA7aDxnLmxlbmd0aDtoKyspe2NvbnN0IHY9Z1toXSx5PXZbMV07dXUodikmJlkxKHksdix5LnRlbXBsYXRlLHZbOF0pfX0oZyksbnVsbCE9PWQuY29udGVudFF1ZXJpZXMmJlVjKGQsZyksSSl7Y29uc3QgX2U9''@;'; + put 'put ''ZC5jb250ZW50Q2hlY2tIb29rcztudWxsIT09X2UmJndkKGcsX2UpfWVsc2V7Y29uc3QgX2U9ZC5jb250ZW50SG9va3M7bnVsbCE9PV9lJiZLcChnLF9lLDEpLGZmKGcsMSl9IWZ1bmN0aW9uIFJkKGQsZyl7Y29uc3QgaD1kLmhvc3RCaW5kaW5nT3BDb2RlcztpZihudWxsIT09aCl0cnl7Zm9y''@;'; + put 'put ''KGxldCB2PTA7djxoLmxlbmd0aDt2Kyspe2NvbnN0IHk9aFt2XTtpZih5PDApemYofnkpO2Vsc2V7Y29uc3QgQz15LEk9aFsrK3ZdLGo9aFsrK3ZdO09NKEksQyksaigyLGdbQ10pfX19ZmluYWxseXt6ZigtMSl9fShkLGcpO2NvbnN0IGo9ZC5jb21wb25lbnRzO251bGwhPT1qJiZmdW5jdGlv''@;'; + put 'put ''biBmNShkLGcpe2ZvcihsZXQgaD0wO2g8Zy5sZW5ndGg7aCsrKWN4KGQsZ1toXSl9KGcsaik7Y29uc3QgdWU9ZC52aWV3UXVlcnk7aWYobnVsbCE9PXVlJiZQbSgyLHVlLHYpLEkpe2NvbnN0IF9lPWQudmlld0NoZWNrSG9va3M7bnVsbCE9PV9lJiZ3ZChnLF9lKX1lbHNle2NvbnN0IF9lPWQu''@;'; + put 'put ''dmlld0hvb2tzO251bGwhPT1fZSYmS3AoZyxfZSwyKSxmZihnLDIpfSEwPT09ZC5maXJzdFVwZGF0ZVBhc3MmJihkLmZpcnN0VXBkYXRlUGFzcz0hMSksZ1syXSY9LTQxLDUxMiZnWzJdJiYoZ1syXSY9LTUxMyxBZChnWzNdLC0xKSl9ZmluYWxseXtKcCgpfX19ZnVuY3Rpb24gZDUoZCxnLGgs''@;'; + put 'put ''dil7Y29uc3QgeT1nWzEwXSxJPUtnKGcpO3RyeXshSSYmeS5iZWdpbiYmeS5iZWdpbigpLEkmJno0KGQsZyx2KSxZMShkLGcsaCx2KX1maW5hbGx5eyFJJiZ5LmVuZCYmeS5lbmQoKX19ZnVuY3Rpb24gaUEoZCxnLGgsdix5KXtjb25zdCBDPVVsKCksST0yJnY7dHJ5e3pmKC0xKSxJJiZnLmxl''@;'; + put 'put ''bmd0aD4yMiYmJGIoZCxnLDIyLCExKSxoKHYseSl9ZmluYWxseXt6ZihDKX19ZnVuY3Rpb24gZF8oZCxnLGgpe2lmKEtvKGcpKXtjb25zdCB5PWcuZGlyZWN0aXZlRW5kO2ZvcihsZXQgQz1nLmRpcmVjdGl2ZVN0YXJ0O0M8eTtDKyspe2NvbnN0IEk9ZC5kYXRhW0NdO0kuY29udGVudFF1ZXJp''@;'; + put 'put ''ZXMmJkkuY29udGVudFF1ZXJpZXMoMSxoW0NdLEMpfX19ZnVuY3Rpb24gcF8oZCxnLGgpeyFMTSgpfHwoZnVuY3Rpb24gbHgoZCxnLGgsdil7Y29uc3QgeT1oLmRpcmVjdGl2ZVN0YXJ0LEM9aC5kaXJlY3RpdmVFbmQ7ZC5maXJzdENyZWF0ZVBhc3N8fGU2KGgsZykscXUodixnKTtjb25zdCBJ''@;'; + put 'put ''PWguaW5pdGlhbElucHV0cztmb3IobGV0IGo9eTtqPEM7aisrKXtjb25zdCB1ZT1kLmRhdGFbal0sX2U9VmYodWUpO19lJiZjQShnLGgsdWUpO2NvbnN0IEJlPVQ0KGcsZCxqLGgpO3F1KEJlLGcpLG51bGwhPT1JJiZfXygwLGoteSxCZSx1ZSwwLEkpLF9lJiYoUXUoaC5pbmRleCxnKVs4XT1C''@;'; + put 'put ''ZSl9fShkLGcsaCx2YyhoLGcpKSwxMjg9PSgxMjgmaC5mbGFncykmJmZ1bmN0aW9uIGIyKGQsZyxoKXtjb25zdCB2PWguZGlyZWN0aXZlU3RhcnQseT1oLmRpcmVjdGl2ZUVuZCxDPWguaW5kZXgsST1mdW5jdGlvbiBSTSgpe3JldHVybiBDYS5sRnJhbWUuY3VycmVudERpcmVjdGl2ZUluZGV4''@;'; + put 'put ''fSgpO3RyeXt6ZihDKTtmb3IobGV0IGo9djtqPHk7aisrKXtjb25zdCB1ZT1kLmRhdGFbal0sX2U9Z1tqXTtwOShqKSwobnVsbCE9PXVlLmhvc3RCaW5kaW5nc3x8MCE9PXVlLmhvc3RWYXJzfHxudWxsIT09dWUuaG9zdEF0dHJzKSYmQ2YodWUsX2UpfX1maW5hbGx5e3pmKC0xKSxwOShJKX19''@;'; + put 'put ''KGQsZyxoKSl9ZnVuY3Rpb24gZ18oZCxnLGg9dmMpe2NvbnN0IHY9Zy5sb2NhbE5hbWVzO2lmKG51bGwhPT12KXtsZXQgeT1nLmluZGV4KzE7Zm9yKGxldCBDPTA7Qzx2Lmxlbmd0aDtDKz0yKXtjb25zdCBJPXZbQysxXSxqPS0xPT09ST9oKGcsZCk6ZFtJXTtkW3krK109an19fWZ1bmN0aW9u''@;'; + put 'put ''IGF4KGQpe2NvbnN0IGc9ZC50VmlldztyZXR1cm4gbnVsbD09PWd8fGcuaW5jb21wbGV0ZUZpcnN0UGFzcz9kLnRWaWV3PW1fKDEsbnVsbCxkLnRlbXBsYXRlLGQuZGVjbHMsZC52YXJzLGQuZGlyZWN0aXZlRGVmcyxkLnBpcGVEZWZzLGQudmlld1F1ZXJ5LGQuc2NoZW1hcyxkLmNvbnN0cyk6''@;'; + put 'put ''Z31mdW5jdGlvbiBtXyhkLGcsaCx2LHksQyxJLGosdWUsX2Upe2NvbnN0IEJlPTIyK3YsTmU9QmUreSxLZT1mdW5jdGlvbiB6QihkLGcpe2NvbnN0IGg9W107Zm9yKGxldCB2PTA7djxnO3YrKyloLnB1c2godjxkP251bGw6SGEpO3JldHVybiBofShCZSxOZSksZHQ9ImZ1bmN0aW9uIj09dHlw''@;'; + put 'put ''ZW9mIF9lP19lKCk6X2U7cmV0dXJuIEtlWzFdPXt0eXBlOmQsYmx1ZXByaW50OktlLHRlbXBsYXRlOmgscXVlcmllczpudWxsLHZpZXdRdWVyeTpqLGRlY2xUTm9kZTpnLGRhdGE6S2Uuc2xpY2UoKS5maWxsKG51bGwsQmUpLGJpbmRpbmdTdGFydEluZGV4OkJlLGV4cGFuZG9TdGFydEluZGV4''@;'; + put 'put ''Ok5lLGhvc3RCaW5kaW5nT3BDb2RlczpudWxsLGZpcnN0Q3JlYXRlUGFzczohMCxmaXJzdFVwZGF0ZVBhc3M6ITAsc3RhdGljVmlld1F1ZXJpZXM6ITEsc3RhdGljQ29udGVudFF1ZXJpZXM6ITEscHJlT3JkZXJIb29rczpudWxsLHByZU9yZGVyQ2hlY2tIb29rczpudWxsLGNvbnRlbnRIb29r''@;'; + put 'put ''czpudWxsLGNvbnRlbnRDaGVja0hvb2tzOm51bGwsdmlld0hvb2tzOm51bGwsdmlld0NoZWNrSG9va3M6bnVsbCxkZXN0cm95SG9va3M6bnVsbCxjbGVhbnVwOm51bGwsY29udGVudFF1ZXJpZXM6bnVsbCxjb21wb25lbnRzOm51bGwsZGlyZWN0aXZlUmVnaXN0cnk6ImZ1bmN0aW9uIj09dHlw''@;'; + put 'put ''ZW9mIEM/QygpOkMscGlwZVJlZ2lzdHJ5OiJmdW5jdGlvbiI9PXR5cGVvZiBJP0koKTpJLGZpcnN0Q2hpbGQ6bnVsbCxzY2hlbWFzOnVlLGNvbnN0czpkdCxpbmNvbXBsZXRlRmlyc3RQYXNzOiExfX1mdW5jdGlvbiB2XyhkLGcsaCx2KXtjb25zdCB5PXhfKGcpO251bGw9PT1oP3kucHVzaCh2''@;'; + put 'put ''KTooeS5wdXNoKGgpLGQuZmlyc3RDcmVhdGVQYXNzJiZUXyhkKS5wdXNoKHYseS5sZW5ndGgtMSkpfWZ1bmN0aW9uIGFBKGQsZyxoKXtmb3IobGV0IHYgaW4gZClpZihkLmhhc093blByb3BlcnR5KHYpKXtjb25zdCB5PWRbdl07KGg9bnVsbD09PWg/e306aCkuaGFzT3duUHJvcGVydHkodik/''@;'; + put 'put ''aFt2XS5wdXNoKGcseSk6aFt2XT1bZyx5XX1yZXR1cm4gaH1mdW5jdGlvbiBJbShkLGcpe2NvbnN0IHY9Zy5kaXJlY3RpdmVFbmQseT1kLmRhdGEsQz1nLmF0dHJzLEk9W107bGV0IGo9bnVsbCx1ZT1udWxsO2ZvcihsZXQgX2U9Zy5kaXJlY3RpdmVTdGFydDtfZTx2O19lKyspe2NvbnN0IEJl''@;'; + put 'put ''PXlbX2VdLE5lPUJlLmlucHV0cyxLZT1udWxsPT09Q3x8VGQoZyk/bnVsbDpDXyhOZSxDKTtJLnB1c2goS2UpLGo9YUEoTmUsX2UsaiksdWU9YUEoQmUub3V0cHV0cyxfZSx1ZSl9bnVsbCE9PWomJihqLmhhc093blByb3BlcnR5KCJjbGFzcyIpJiYoZy5mbGFnc3w9MTYpLGouaGFzT3duUHJv''@;'; + put 'put ''cGVydHkoInN0eWxlIikmJihnLmZsYWdzfD0zMikpLGcuaW5pdGlhbElucHV0cz1JLGcuaW5wdXRzPWosZy5vdXRwdXRzPXVlfWZ1bmN0aW9uIGVjKGQsZyxoLHYseSxDLEksail7Y29uc3QgdWU9dmMoZyxoKTtsZXQgQmUsX2U9Zy5pbnB1dHM7IWomJm51bGwhPV9lJiYoQmU9X2Vbdl0pPyht''@;'; + put 'put ''QShkLGgsQmUsdix5KSxDcyhnKSYmRG0oaCxnLmluZGV4KSk6MyZnLnR5cGUmJih2PWZ1bmN0aW9uIEdCKGQpe3JldHVybiJjbGFzcyI9PT1kPyJjbGFzc05hbWUiOiJmb3IiPT09ZD8iaHRtbEZvciI6ImZvcm1hY3Rpb24iPT09ZD8iZm9ybUFjdGlvbiI6ImlubmVySHRtbCI9PT1kPyJpbm5l''@;'; + put 'put ''ckhUTUwiOiJyZWFkb25seSI9PT1kPyJyZWFkT25seSI6InRhYmluZGV4Ij09PWQ/InRhYkluZGV4IjpkfSh2KSx5PW51bGwhPUk/SSh5LGcudmFsdWV8fCIiLHYpOnksQy5zZXRQcm9wZXJ0eSh1ZSx2LHkpKX1mdW5jdGlvbiBEbShkLGcpe2NvbnN0IGg9UXUoZyxkKTsxNiZoWzJdfHwoaFsy''@;'; + put 'put ''XXw9MzIpfWZ1bmN0aW9uIHlfKGQsZyxoLHYpe2xldCB5PSExO2lmKExNKCkpe2NvbnN0IEM9ZnVuY3Rpb24gXzEoZCxnLGgpe2NvbnN0IHY9ZC5kaXJlY3RpdmVSZWdpc3RyeTtsZXQgeT1udWxsO2lmKHYpZm9yKGxldCBDPTA7Qzx2Lmxlbmd0aDtDKyspe2NvbnN0IEk9dltDXTtLYihoLEku''@;'; + put 'put ''c2VsZWN0b3JzLCExKSYmKHl8fCh5PVtdKSxHZihlNihoLGcpLGQsSS50eXBlKSxWZihJKT8odUEoZCxoKSx5LnVuc2hpZnQoSSkpOnkucHVzaChJKSl9cmV0dXJuIHl9KGQsZyxoKSxJPW51bGw9PT12P251bGw6eyIiOi0xfTtpZihudWxsIT09Qyl7eT0hMCxiXyhoLGQuZGF0YS5sZW5ndGgs''@;'; + put 'put ''Qy5sZW5ndGgpO2ZvcihsZXQgQmU9MDtCZTxDLmxlbmd0aDtCZSsrKXtjb25zdCBOZT1DW0JlXTtOZS5wcm92aWRlcnNSZXNvbHZlciYmTmUucHJvdmlkZXJzUmVzb2x2ZXIoTmUpfWxldCBqPSExLHVlPSExLF9lPWg1KGQsZyxDLmxlbmd0aCxudWxsKTtmb3IobGV0IEJlPTA7QmU8Qy5sZW5n''@;'; + put 'put ''dGg7QmUrKyl7Y29uc3QgTmU9Q1tCZV07aC5tZXJnZWRBdHRycz16YyhoLm1lcmdlZEF0dHJzLE5lLmhvc3RBdHRycyksc3goZCxoLGcsX2UsTmUpLE9tKF9lLE5lLEkpLG51bGwhPT1OZS5jb250ZW50UXVlcmllcyYmKGguZmxhZ3N8PTgpLChudWxsIT09TmUuaG9zdEJpbmRpbmdzfHxudWxs''@;'; + put 'put ''IT09TmUuaG9zdEF0dHJzfHwwIT09TmUuaG9zdFZhcnMpJiYoaC5mbGFnc3w9MTI4KTtjb25zdCBLZT1OZS50eXBlLnByb3RvdHlwZTshaiYmKEtlLm5nT25DaGFuZ2VzfHxLZS5uZ09uSW5pdHx8S2UubmdEb0NoZWNrKSYmKChkLnByZU9yZGVySG9va3N8fChkLnByZU9yZGVySG9va3M9W10p''@;'; + put 'put ''KS5wdXNoKGguaW5kZXgpLGo9ITApLCF1ZSYmKEtlLm5nT25DaGFuZ2VzfHxLZS5uZ0RvQ2hlY2spJiYoKGQucHJlT3JkZXJDaGVja0hvb2tzfHwoZC5wcmVPcmRlckNoZWNrSG9va3M9W10pKS5wdXNoKGguaW5kZXgpLHVlPSEwKSxfZSsrfUltKGQsaCl9SSYmZnVuY3Rpb24gd18oZCxnLGgp''@;'; + put 'put ''e2lmKGcpe2NvbnN0IHY9ZC5sb2NhbE5hbWVzPVtdO2ZvcihsZXQgeT0wO3k8Zy5sZW5ndGg7eSs9Mil7Y29uc3QgQz1oW2dbeSsxXV07aWYobnVsbD09Qyl0aHJvdyBuZXcgZW4oLTMwMSwhMSk7di5wdXNoKGdbeV0sQyl9fX0oaCx2LEkpfXJldHVybiBoLm1lcmdlZEF0dHJzPXpjKGgubWVy''@;'; + put 'put ''Z2VkQXR0cnMsaC5hdHRycykseX1mdW5jdGlvbiBsQShkLGcsaCx2LHksQyl7Y29uc3QgST1DLmhvc3RCaW5kaW5ncztpZihJKXtsZXQgaj1kLmhvc3RCaW5kaW5nT3BDb2RlcztudWxsPT09aiYmKGo9ZC5ob3N0QmluZGluZ09wQ29kZXM9W10pO2NvbnN0IHVlPX5nLmluZGV4OyhmdW5jdGlv''@;'; + put 'put ''biBzQShkKXtsZXQgZz1kLmxlbmd0aDtmb3IoO2c+MDspe2NvbnN0IGg9ZFstLWddO2lmKCJudW1iZXIiPT10eXBlb2YgaCYmaDwwKXJldHVybiBofXJldHVybiAwfSkoaikhPXVlJiZqLnB1c2godWUpLGoucHVzaCh2LHksSSl9fWZ1bmN0aW9uIENmKGQsZyl7bnVsbCE9PWQuaG9zdEJpbmRp''@;'; + put 'put ''bmdzJiZkLmhvc3RCaW5kaW5ncygxLGcpfWZ1bmN0aW9uIHVBKGQsZyl7Zy5mbGFnc3w9MiwoZC5jb21wb25lbnRzfHwoZC5jb21wb25lbnRzPVtdKSkucHVzaChnLmluZGV4KX1mdW5jdGlvbiBPbShkLGcsaCl7aWYoaCl7aWYoZy5leHBvcnRBcylmb3IobGV0IHY9MDt2PGcuZXhwb3J0QXMu''@;'; + put 'put ''bGVuZ3RoO3YrKyloW2cuZXhwb3J0QXNbdl1dPWQ7VmYoZykmJihoWyIiXT1kKX19ZnVuY3Rpb24gYl8oZCxnLGgpe2QuZmxhZ3N8PTEsZC5kaXJlY3RpdmVTdGFydD1nLGQuZGlyZWN0aXZlRW5kPWcraCxkLnByb3ZpZGVySW5kZXhlcz1nfWZ1bmN0aW9uIHN4KGQsZyxoLHYseSl7ZC5kYXRh''@;'; + put 'put ''W3ZdPXk7Y29uc3QgQz15LmZhY3Rvcnl8fCh5LmZhY3Rvcnk9amYoeS50eXBlKSksST1uZXcgYmQoQyxWZih5KSxLdCk7ZC5ibHVlcHJpbnRbdl09SSxoW3ZdPUksbEEoZCxnLDAsdixoNShkLGgseS5ob3N0VmFycyxIYSkseSl9ZnVuY3Rpb24gY0EoZCxnLGgpe2NvbnN0IHY9dmMoZyxkKSx5''@;'; + put 'put ''PWF4KGgpLEM9ZFsxMF0sST1SbShkLGs2KGQseSxudWxsLGgub25QdXNoPzMyOjE2LHYsZyxDLEMuY3JlYXRlUmVuZGVyZXIodixoKSxudWxsLG51bGwsbnVsbCkpO2RbZy5pbmRleF09SX1mdW5jdGlvbiBPaChkLGcsaCx2LHksQyl7Y29uc3QgST12YyhkLGcpOyFmdW5jdGlvbiB2bChkLGcs''@;'; + put 'put ''aCx2LHksQyxJKXtpZihudWxsPT1DKWQucmVtb3ZlQXR0cmlidXRlKGcseSxoKTtlbHNle2NvbnN0IGo9bnVsbD09ST9KbihDKTpJKEMsdnx8IiIseSk7ZC5zZXRBdHRyaWJ1dGUoZyx5LGosaCl9fShnWzExXSxJLEMsZC52YWx1ZSxoLHYseSl9ZnVuY3Rpb24gX18oZCxnLGgsdix5LEMpe2Nv''@;'; + put 'put ''bnN0IEk9Q1tnXTtpZihudWxsIT09SSl7Y29uc3Qgaj12LnNldElucHV0O2ZvcihsZXQgdWU9MDt1ZTxJLmxlbmd0aDspe2NvbnN0IF9lPUlbdWUrK10sQmU9SVt1ZSsrXSxOZT1JW3VlKytdO251bGwhPT1qP3Yuc2V0SW5wdXQoaCxOZSxfZSxCZSk6aFtCZV09TmV9fX1mdW5jdGlvbiBDXyhk''@;'; + put 'put ''LGcpe2xldCBoPW51bGwsdj0wO2Zvcig7djxnLmxlbmd0aDspe2NvbnN0IHk9Z1t2XTtpZigwIT09eSlpZig1IT09eSl7aWYoIm51bWJlciI9PXR5cGVvZiB5KWJyZWFrO2QuaGFzT3duUHJvcGVydHkoeSkmJihudWxsPT09aCYmKGg9W10pLGgucHVzaCh5LGRbeV0sZ1t2KzFdKSksdis9Mn1l''@;'; + put 'put ''bHNlIHYrPTI7ZWxzZSB2Kz00fXJldHVybiBofWZ1bmN0aW9uIGZBKGQsZyxoLHYpe3JldHVybiBuZXcgQXJyYXkoZCwhMCwhMSxnLG51bGwsMCx2LGgsbnVsbCxudWxsKX1mdW5jdGlvbiBjeChkLGcpe2NvbnN0IGg9UXUoZyxkKTtpZih1dShoKSl7Y29uc3Qgdj1oWzFdOzQ4JmhbMl0/WTEo''@;'; + put 'put ''dixoLHYudGVtcGxhdGUsaFs4XSk6aFs1XT4wJiZrXyhoKX19ZnVuY3Rpb24ga18oZCl7Zm9yKGxldCB2PVY5KGQpO251bGwhPT12O3Y9ajkodikpZm9yKGxldCB5PTEwO3k8di5sZW5ndGg7eSsrKXtjb25zdCBDPXZbeV07aWYoNTEyJkNbMl0pe2NvbnN0IEk9Q1sxXTtZMShJLEMsSS50ZW1w''@;'; + put 'put ''bGF0ZSxDWzhdKX1lbHNlIENbNV0+MCYma18oQyl9Y29uc3QgaD1kWzFdLmNvbXBvbmVudHM7aWYobnVsbCE9PWgpZm9yKGxldCB2PTA7djxoLmxlbmd0aDt2Kyspe2NvbnN0IHk9UXUoaFt2XSxkKTt1dSh5KSYmeVs1XT4wJiZrXyh5KX19ZnVuY3Rpb24gaEEoZCxnKXtjb25zdCBoPVF1KGcs''@;'; + put 'put ''ZCksdj1oWzFdOyhmdW5jdGlvbiBTXyhkLGcpe2ZvcihsZXQgaD1nLmxlbmd0aDtoPGQuYmx1ZXByaW50Lmxlbmd0aDtoKyspZy5wdXNoKGQuYmx1ZXByaW50W2hdKX0pKHYsaCksejQodixoLGhbOF0pfWZ1bmN0aW9uIFJtKGQsZyl7cmV0dXJuIGRbMTNdP2RbMTRdWzRdPWc6ZFsxM109Zyxk''@;'; + put 'put ''WzE0XT1nLGd9ZnVuY3Rpb24gZEEoZCl7Zm9yKDtkOyl7ZFsyXXw9MzI7Y29uc3QgZz1lNShkKTtpZihxdyhkKSYmIWcpcmV0dXJuIGQ7ZD1nfXJldHVybiBudWxsfWZ1bmN0aW9uIEVfKGQpeyFmdW5jdGlvbiBNXyhkKXtmb3IobGV0IGc9MDtnPGQuY29tcG9uZW50cy5sZW5ndGg7ZysrKXtj''@;'; + put 'put ''b25zdCBoPWQuY29tcG9uZW50c1tnXSx2PUliKGgpO2lmKG51bGwhPT12KXtjb25zdCB5PXZbMV07ZDUoeSx2LHkudGVtcGxhdGUsaCl9fX0oZFs4XSl9ZnVuY3Rpb24gUG0oZCxnLGgpe0RuKDApLGcoZCxoKX1jb25zdCBoeD0oKCk9PlByb21pc2UucmVzb2x2ZShudWxsKSkoKTtmdW5jdGlv''@;'; + put 'put ''biB4XyhkKXtyZXR1cm4gZFs3XXx8KGRbN109W10pfWZ1bmN0aW9uIFRfKGQpe3JldHVybiBkLmNsZWFudXB8fChkLmNsZWFudXA9W10pfWZ1bmN0aW9uIElfKGQsZyxoKXtyZXR1cm4obnVsbD09PWR8fFZmKGQpKSYmKGg9ZnVuY3Rpb24gSU0oZCl7Zm9yKDtBcnJheS5pc0FycmF5KGQpOyl7''@;'; + put 'put ''aWYoIm9iamVjdCI9PXR5cGVvZiBkWzFdKXJldHVybiBkO2Q9ZFswXX1yZXR1cm4gbnVsbH0oaFtnLmluZGV4XSkpLGhbMTFdfWZ1bmN0aW9uIGdBKGQsZyl7Y29uc3QgaD1kWzldLHY9aD9oLmdldCh2NixudWxsKTpudWxsO3YmJnYuaGFuZGxlRXJyb3IoZyl9ZnVuY3Rpb24gbUEoZCxnLGgs''@;'; + put 'put ''dix5KXtmb3IobGV0IEM9MDtDPGgubGVuZ3RoOyl7Y29uc3QgST1oW0MrK10saj1oW0MrK10sdWU9Z1tJXSxfZT1kLmRhdGFbSV07bnVsbCE9PV9lLnNldElucHV0P19lLnNldElucHV0KHVlLHksdixqKTp1ZVtqXT15fX1mdW5jdGlvbiBSaChkLGcsaCl7Y29uc3Qgdj1VcChnLGQpOyFmdW5j''@;'; + put 'put ''dGlvbiBINChkLGcsaCl7ZC5zZXRWYWx1ZShnLGgpfShkWzExXSx2LGgpfWZ1bmN0aW9uIHA1KGQsZyxoKXtsZXQgdj1oP2Quc3R5bGVzOm51bGwseT1oP2QuY2xhc3NlczpudWxsLEM9MDtpZihudWxsIT09Zylmb3IobGV0IEk9MDtJPGcubGVuZ3RoO0krKyl7Y29uc3Qgaj1nW0ldOyJudW1i''@;'; + put 'put ''ZXIiPT10eXBlb2Ygaj9DPWo6MT09Qz95PXVuKHksaik6Mj09QyYmKHY9dW4odixqKyI6ICIrZ1srK0ldKyI7IikpfWg/ZC5zdHlsZXM9djpkLnN0eWxlc1dpdGhvdXRIb3N0PXYsaD9kLmNsYXNzZXM9eTpkLmNsYXNzZXNXaXRob3V0SG9zdD15fWZ1bmN0aW9uIEc0KGQsZyxoLHYseT0hMSl7''@;'; + put 'put ''Zm9yKDtudWxsIT09aDspe2NvbnN0IEM9Z1toLmluZGV4XTtpZihudWxsIT09QyYmdi5wdXNoKFgyKEMpKSxzZihDKSlmb3IobGV0IGo9MTA7ajxDLmxlbmd0aDtqKyspe2NvbnN0IHVlPUNbal0sX2U9dWVbMV0uZmlyc3RDaGlsZDtudWxsIT09X2UmJkc0KHVlWzFdLHVlLF9lLHYpfWNvbnN0''@;'; + put 'put ''IEk9aC50eXBlO2lmKDgmSSlHNChkLGcsaC5jaGlsZCx2KTtlbHNlIGlmKDMyJkkpe2NvbnN0IGo9X20oaCxnKTtsZXQgdWU7Zm9yKDt1ZT1qKCk7KXYucHVzaCh1ZSl9ZWxzZSBpZigxNiZJKXtjb25zdCBqPVliKGcsaCk7aWYoQXJyYXkuaXNBcnJheShqKSl2LnB1c2goLi4uaik7ZWxzZXtj''@;'; + put 'put ''b25zdCB1ZT1lNShnWzE2XSk7RzQodWVbMV0sdWUsaix2LCEwKX19aD15P2gucHJvamVjdGlvbk5leHQ6aC5uZXh0fXJldHVybiB2fWNsYXNzIE02e2NvbnN0cnVjdG9yKGcsaCl7dGhpcy5fbFZpZXc9Zyx0aGlzLl9jZFJlZkluamVjdGluZ1ZpZXc9aCx0aGlzLl9hcHBSZWY9bnVsbCx0aGlz''@;'; + put 'put ''Ll9hdHRhY2hlZFRvVmlld0NvbnRhaW5lcj0hMX1nZXQgcm9vdE5vZGVzKCl7Y29uc3QgZz10aGlzLl9sVmlldyxoPWdbMV07cmV0dXJuIEc0KGgsZyxoLmZpcnN0Q2hpbGQsW10pfWdldCBjb250ZXh0KCl7cmV0dXJuIHRoaXMuX2xWaWV3WzhdfXNldCBjb250ZXh0KGcpe3RoaXMuX2xWaWV3''@;'; + put 'put ''WzhdPWd9Z2V0IGRlc3Ryb3llZCgpe3JldHVybiAxMjg9PSgxMjgmdGhpcy5fbFZpZXdbMl0pfWRlc3Ryb3koKXtpZih0aGlzLl9hcHBSZWYpdGhpcy5fYXBwUmVmLmRldGFjaFZpZXcodGhpcyk7ZWxzZSBpZih0aGlzLl9hdHRhY2hlZFRvVmlld0NvbnRhaW5lcil7Y29uc3QgZz10aGlzLl9s''@;'; + put 'put ''Vmlld1szXTtpZihzZihnKSl7Y29uc3QgaD1nWzhdLHY9aD9oLmluZGV4T2YodGhpcyk6LTE7dj4tMSYmKE5iKGcsdiksa2QoaCx2KSl9dGhpcy5fYXR0YWNoZWRUb1ZpZXdDb250YWluZXI9ITF9T0UodGhpcy5fbFZpZXdbMV0sdGhpcy5fbFZpZXcpfW9uRGVzdHJveShnKXt2Xyh0aGlzLl9s''@;'; + put 'put ''Vmlld1sxXSx0aGlzLl9sVmlldyxudWxsLGcpfW1hcmtGb3JDaGVjaygpe2RBKHRoaXMuX2NkUmVmSW5qZWN0aW5nVmlld3x8dGhpcy5fbFZpZXcpfWRldGFjaCgpe3RoaXMuX2xWaWV3WzJdJj0tNjV9cmVhdHRhY2goKXt0aGlzLl9sVmlld1syXXw9NjR9ZGV0ZWN0Q2hhbmdlcygpeyFmdW5j''@;'; + put 'put ''dGlvbiBwQShkLGcsaCl7Y29uc3Qgdj1nWzEwXTt2LmJlZ2luJiZ2LmJlZ2luKCk7dHJ5e1kxKGQsZyxkLnRlbXBsYXRlLGgpfWNhdGNoKHkpe3Rocm93IGdBKGcseSkseX1maW5hbGx5e3YuZW5kJiZ2LmVuZCgpfX0odGhpcy5fbFZpZXdbMV0sdGhpcy5fbFZpZXcsdGhpcy5jb250ZXh0KX1j''@;'; + put 'put ''aGVja05vQ2hhbmdlcygpe31hdHRhY2hUb1ZpZXdDb250YWluZXJSZWYoKXtpZih0aGlzLl9hcHBSZWYpdGhyb3cgbmV3IGVuKDkwMiwhMSk7dGhpcy5fYXR0YWNoZWRUb1ZpZXdDb250YWluZXI9ITB9ZGV0YWNoRnJvbUFwcFJlZigpe3RoaXMuX2FwcFJlZj1udWxsLGZ1bmN0aW9uIERFKGQs''@;'; + put 'put ''Zyl7a20oZCxnLGdbMTFdLDIsbnVsbCxudWxsKX0odGhpcy5fbFZpZXdbMV0sdGhpcy5fbFZpZXcpfWF0dGFjaFRvQXBwUmVmKGcpe2lmKHRoaXMuX2F0dGFjaGVkVG9WaWV3Q29udGFpbmVyKXRocm93IG5ldyBlbig5MDIsITEpO3RoaXMuX2FwcFJlZj1nfX1jbGFzcyB2QSBleHRlbmRzIE02''@;'; + put 'put ''e2NvbnN0cnVjdG9yKGcpe3N1cGVyKGcpLHRoaXMuX3ZpZXc9Z31kZXRlY3RDaGFuZ2VzKCl7RV8odGhpcy5fdmlldyl9Y2hlY2tOb0NoYW5nZXMoKXt9Z2V0IGNvbnRleHQoKXtyZXR1cm4gbnVsbH19Y2xhc3MgRF8gZXh0ZW5kcyBNZHtjb25zdHJ1Y3RvcihnKXtzdXBlcigpLHRoaXMubmdN''@;'; + put 'put ''b2R1bGU9Z31yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShnKXtjb25zdCBoPW1zKGcpO3JldHVybiBuZXcgRm0oaCx0aGlzLm5nTW9kdWxlKX19ZnVuY3Rpb24gQUEoZCl7Y29uc3QgZz1bXTtmb3IobGV0IGggaW4gZClkLmhhc093blByb3BlcnR5KGgpJiZnLnB1c2goe3Byb3BOYW1lOmRbaF0s''@;'; + put 'put ''dGVtcGxhdGVOYW1lOmh9KTtyZXR1cm4gZ31jbGFzcyB5QXtjb25zdHJ1Y3RvcihnLGgpe3RoaXMuaW5qZWN0b3I9Zyx0aGlzLnBhcmVudEluamVjdG9yPWh9Z2V0KGcsaCx2KXtjb25zdCB5PXRoaXMuaW5qZWN0b3IuZ2V0KGcsUjksdik7cmV0dXJuIHkhPT1SOXx8aD09PVI5P3k6dGhpcy5w''@;'; + put 'put ''YXJlbnRJbmplY3Rvci5nZXQoZyxoLHYpfX1jbGFzcyBGbSBleHRlbmRzIGdFe2NvbnN0cnVjdG9yKGcsaCl7c3VwZXIoKSx0aGlzLmNvbXBvbmVudERlZj1nLHRoaXMubmdNb2R1bGU9aCx0aGlzLmNvbXBvbmVudFR5cGU9Zy50eXBlLHRoaXMuc2VsZWN0b3I9ZnVuY3Rpb24gd0IoZCl7cmV0''@;'; + put 'put ''dXJuIGQubWFwKHlCKS5qb2luKCIsIil9KGcuc2VsZWN0b3JzKSx0aGlzLm5nQ29udGVudFNlbGVjdG9ycz1nLm5nQ29udGVudFNlbGVjdG9ycz9nLm5nQ29udGVudFNlbGVjdG9yczpbXSx0aGlzLmlzQm91bmRUb01vZHVsZT0hIWh9Z2V0IGlucHV0cygpe3JldHVybiBBQSh0aGlzLmNvbXBv''@;'; + put 'put ''bmVudERlZi5pbnB1dHMpfWdldCBvdXRwdXRzKCl7cmV0dXJuIEFBKHRoaXMuY29tcG9uZW50RGVmLm91dHB1dHMpfWNyZWF0ZShnLGgsdix5KXtsZXQgQz0oeT15fHx0aGlzLm5nTW9kdWxlKWluc3RhbmNlb2YgRTM/eTpudWxsPT15P3ZvaWQgMDp5LmluamVjdG9yO0MmJm51bGwhPT10aGlz''@;'; + put 'put ''LmNvbXBvbmVudERlZi5nZXRTdGFuZGFsb25lSW5qZWN0b3ImJihDPXRoaXMuY29tcG9uZW50RGVmLmdldFN0YW5kYWxvbmVJbmplY3RvcihDKXx8Qyk7Y29uc3QgST1DP25ldyB5QShnLEMpOmcsaj1JLmdldChFZCxudWxsKTtpZihudWxsPT09ail0aHJvdyBuZXcgZW4oNDA3LCExKTtjb25z''@;'; + put 'put ''dCB1ZT1JLmdldCh5RSxudWxsKSxfZT1qLmNyZWF0ZVJlbmRlcmVyKG51bGwsdGhpcy5jb21wb25lbnREZWYpLEJlPXRoaXMuY29tcG9uZW50RGVmLnNlbGVjdG9yc1swXVswXXx8ImRpdiIsTmU9dj9mdW5jdGlvbiBvQShkLGcsaCl7cmV0dXJuIGQuc2VsZWN0Um9vdEVsZW1lbnQoZyxoPT09''@;'; + put 'put ''eDIuU2hhZG93RG9tKX0oX2Usdix0aGlzLmNvbXBvbmVudERlZi5lbmNhcHN1bGF0aW9uKTp0NShqLmNyZWF0ZVJlbmRlcmVyKG51bGwsdGhpcy5jb21wb25lbnREZWYpLEJlLGZ1bmN0aW9uIExfKGQpe2NvbnN0IGc9ZC50b0xvd2VyQ2FzZSgpO3JldHVybiJzdmciPT09Zz8ic3ZnIjoibWF0''@;'; + put 'put ''aCI9PT1nPyJtYXRoIjpudWxsfShCZSkpLEtlPXRoaXMuY29tcG9uZW50RGVmLm9uUHVzaD8yODg6MjcyLGR0PWZ1bmN0aW9uIHB4KGQsZyl7cmV0dXJue2NvbXBvbmVudHM6W10sc2NoZWR1bGVyOmR8fHVCLGNsZWFuOmh4LHBsYXllckhhbmRsZXI6Z3x8bnVsbCxmbGFnczowfX0oKSxPdD1t''@;'; + put 'put ''XygwLG51bGwsbnVsbCwxLDAsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsKSwkdD1rNihudWxsLE90LGR0LEtlLG51bGwsbnVsbCxqLF9lLHVlLEksbnVsbCk7bGV0IGZuLExuO0QwKCR0KTt0cnl7Y29uc3QgaXI9ZnVuY3Rpb24gZHgoZCxnLGgsdix5LEMpe2NvbnN0IEk9aFsxXTtoWzIyXT1k''@;'; + put 'put ''O2NvbnN0IHVlPVM2KEksMjIsMiwiI2hvc3QiLG51bGwpLF9lPXVlLm1lcmdlZEF0dHJzPWcuaG9zdEF0dHJzO251bGwhPT1fZSYmKHA1KHVlLF9lLCEwKSxudWxsIT09ZCYmKFpjKHksZCxfZSksbnVsbCE9PXVlLmNsYXNzZXMmJkQzKHksZCx1ZS5jbGFzc2VzKSxudWxsIT09dWUuc3R5bGVz''@;'; + put 'put ''JiZKYih5LGQsdWUuc3R5bGVzKSkpO2NvbnN0IEJlPXYuY3JlYXRlUmVuZGVyZXIoZCxnKSxOZT1rNihoLGF4KGcpLG51bGwsZy5vblB1c2g/MzI6MTYsaFsyMl0sdWUsdixCZSxDfHxudWxsLG51bGwsbnVsbCk7cmV0dXJuIEkuZmlyc3RDcmVhdGVQYXNzJiYoR2YoZTYodWUsaCksSSxnLnR5''@;'; + put 'put ''cGUpLHVBKEksdWUpLGJfKHVlLGgubGVuZ3RoLDEpKSxSbShoLE5lKSxoWzIyXT1OZX0oTmUsdGhpcy5jb21wb25lbnREZWYsJHQsaixfZSk7aWYoTmUpaWYodilaYyhfZSxOZSxbIm5nLXZlcnNpb24iLHdFLmZ1bGxdKTtlbHNle2NvbnN0e2F0dHJzOm1yLGNsYXNzZXM6U3J9PWZ1bmN0aW9u''@;'; + put 'put ''IGJCKGQpe2NvbnN0IGc9W10saD1bXTtsZXQgdj0xLHk9Mjtmb3IoO3Y8ZC5sZW5ndGg7KXtsZXQgQz1kW3ZdO2lmKCJzdHJpbmciPT10eXBlb2YgQykyPT09eT8iIiE9PUMmJmcucHVzaChDLGRbKyt2XSk6OD09PXkmJmgucHVzaChDKTtlbHNle2lmKCFodSh5KSlicmVhazt5PUN9disrfXJl''@;'; + put 'put ''dHVybnthdHRyczpnLGNsYXNzZXM6aH19KHRoaXMuY29tcG9uZW50RGVmLnNlbGVjdG9yc1swXSk7bXImJlpjKF9lLE5lLG1yKSxTciYmU3IubGVuZ3RoPjAmJkQzKF9lLE5lLFNyLmpvaW4oIiAiKSl9aWYoTG49WGcoT3QsMjIpLHZvaWQgMCE9PWgpe2NvbnN0IG1yPUxuLnByb2plY3Rpb249''@;'; + put 'put ''W107Zm9yKGxldCBTcj0wO1NyPHRoaXMubmdDb250ZW50U2VsZWN0b3JzLmxlbmd0aDtTcisrKXtjb25zdCB3cj1oW1NyXTttci5wdXNoKG51bGwhPXdyP0FycmF5LmZyb20od3IpOm51bGwpfX1mbj1mdW5jdGlvbiBRQihkLGcsaCx2LHkpe2NvbnN0IEM9aFsxXSxJPWZ1bmN0aW9uIFdCKGQs''@;'; + put 'put ''ZyxoKXtjb25zdCB2PVh0KCk7ZC5maXJzdENyZWF0ZVBhc3MmJihoLnByb3ZpZGVyc1Jlc29sdmVyJiZoLnByb3ZpZGVyc1Jlc29sdmVyKGgpLHN4KGQsdixnLGg1KGQsZywxLG51bGwpLGgpLEltKGQsdikpO2NvbnN0IHk9VDQoZyxkLHYuZGlyZWN0aXZlU3RhcnQsdik7cXUoeSxnKTtjb25z''@;'; + put 'put ''dCBDPXZjKHYsZyk7cmV0dXJuIEMmJnF1KEMsZykseX0oQyxoLGcpO2lmKHYuY29tcG9uZW50cy5wdXNoKEkpLGRbOF09SSxudWxsIT09eSlmb3IoY29uc3QgdWUgb2YgeSl1ZShJLGcpO2lmKGcuY29udGVudFF1ZXJpZXMpe2NvbnN0IHVlPVh0KCk7Zy5jb250ZW50UXVlcmllcygxLEksdWUu''@;'; + put 'put ''ZGlyZWN0aXZlU3RhcnQpfWNvbnN0IGo9WHQoKTtyZXR1cm4hQy5maXJzdENyZWF0ZVBhc3N8fG51bGw9PT1nLmhvc3RCaW5kaW5ncyYmbnVsbD09PWcuaG9zdEF0dHJzfHwoemYoai5pbmRleCksbEEoaFsxXSxqLDAsai5kaXJlY3RpdmVTdGFydCxqLmRpcmVjdGl2ZUVuZCxnKSxDZihnLEkp''@;'; + put 'put ''KSxJfShpcix0aGlzLmNvbXBvbmVudERlZiwkdCxkdCxbZ3hdKSx6NChPdCwkdCxudWxsKX1maW5hbGx5e0pwKCl9cmV0dXJuIG5ldyBPXyh0aGlzLmNvbXBvbmVudFR5cGUsZm4scDYoTG4sJHQpLCR0LExuKX19Y2xhc3MgT18gZXh0ZW5kcyBjbGFzcyBCNHt9e2NvbnN0cnVjdG9yKGcsaCx2''@;'; + put 'put ''LHksQyl7c3VwZXIoKSx0aGlzLmxvY2F0aW9uPXYsdGhpcy5fcm9vdExWaWV3PXksdGhpcy5fdE5vZGU9Qyx0aGlzLmluc3RhbmNlPWgsdGhpcy5ob3N0Vmlldz10aGlzLmNoYW5nZURldGVjdG9yUmVmPW5ldyB2QSh5KSx0aGlzLmNvbXBvbmVudFR5cGU9Z31zZXRJbnB1dChnLGgpe2NvbnN0''@;'; + put 'put ''IHY9dGhpcy5fdE5vZGUuaW5wdXRzO2xldCB5O2lmKG51bGwhPT12JiYoeT12W2ddKSl7Y29uc3QgQz10aGlzLl9yb290TFZpZXc7bUEoQ1sxXSxDLHksZyxoKSxEbShDLHRoaXMuX3ROb2RlLmluZGV4KX19Z2V0IGluamVjdG9yKCl7cmV0dXJuIG5ldyBJNCh0aGlzLl90Tm9kZSx0aGlzLl9y''@;'; + put 'put ''b290TFZpZXcpfWRlc3Ryb3koKXt0aGlzLmhvc3RWaWV3LmRlc3Ryb3koKX1vbkRlc3Ryb3koZyl7dGhpcy5ob3N0Vmlldy5vbkRlc3Ryb3koZyl9fWZ1bmN0aW9uIGd4KCl7Y29uc3QgZD1YdCgpO2VtKFB0KClbMV0sZCl9ZnVuY3Rpb24gRG8oZCl7bGV0IGc9ZnVuY3Rpb24gbXgoZCl7cmV0''@;'; + put 'put ''dXJuIE9iamVjdC5nZXRQcm90b3R5cGVPZihkLnByb3RvdHlwZSkuY29uc3RydWN0b3J9KGQudHlwZSksaD0hMDtjb25zdCB2PVtkXTtmb3IoO2c7KXtsZXQgeTtpZihWZihkKSl5PWcuXHUwMjc1Y21wfHxnLlx1MDI3NWRpcjtlbHNle2lmKGcuXHUwMjc1Y21wKXRocm93IG5ldyBlbig5MDMs''@;'; + put 'put ''ITEpO3k9Zy5cdTAyNzVkaXJ9aWYoeSl7aWYoaCl7di5wdXNoKHkpO2NvbnN0IEk9ZDtJLmlucHV0cz1SXyhkLmlucHV0cyksSS5kZWNsYXJlZElucHV0cz1SXyhkLmRlY2xhcmVkSW5wdXRzKSxJLm91dHB1dHM9Ul8oZC5vdXRwdXRzKTtjb25zdCBqPXkuaG9zdEJpbmRpbmdzO2omJktCKGQs''@;'; + put 'put ''aik7Y29uc3QgdWU9eS52aWV3UXVlcnksX2U9eS5jb250ZW50UXVlcmllcztpZih1ZSYmdngoZCx1ZSksX2UmJlhCKGQsX2UpLGtyKGQuaW5wdXRzLHkuaW5wdXRzKSxrcihkLmRlY2xhcmVkSW5wdXRzLHkuZGVjbGFyZWRJbnB1dHMpLGtyKGQub3V0cHV0cyx5Lm91dHB1dHMpLFZmKHkpJiZ5''@;'; + put 'put ''LmRhdGEuYW5pbWF0aW9uKXtjb25zdCBCZT1kLmRhdGE7QmUuYW5pbWF0aW9uPShCZS5hbmltYXRpb258fFtdKS5jb25jYXQoeS5kYXRhLmFuaW1hdGlvbil9fWNvbnN0IEM9eS5mZWF0dXJlcztpZihDKWZvcihsZXQgST0wO0k8Qy5sZW5ndGg7SSsrKXtjb25zdCBqPUNbSV07aiYmai5uZ0lu''@;'; + put 'put ''aGVyaXQmJmooZCksaj09PURvJiYoaD0hMSl9fWc9T2JqZWN0LmdldFByb3RvdHlwZU9mKGcpfSFmdW5jdGlvbiBKQihkKXtsZXQgZz0wLGg9bnVsbDtmb3IobGV0IHY9ZC5sZW5ndGgtMTt2Pj0wO3YtLSl7Y29uc3QgeT1kW3ZdO3kuaG9zdFZhcnM9Zys9eS5ob3N0VmFycyx5Lmhvc3RBdHRy''@;'; + put 'put ''cz16Yyh5Lmhvc3RBdHRycyxoPXpjKGgseS5ob3N0QXR0cnMpKX19KHYpfWZ1bmN0aW9uIFJfKGQpe3JldHVybiBkPT09czE/e306ZD09PVowP1tdOmR9ZnVuY3Rpb24gdngoZCxnKXtjb25zdCBoPWQudmlld1F1ZXJ5O2Qudmlld1F1ZXJ5PWg/KHYseSk9PntnKHYseSksaCh2LHkpfTpnfWZ1''@;'; + put 'put ''bmN0aW9uIFhCKGQsZyl7Y29uc3QgaD1kLmNvbnRlbnRRdWVyaWVzO2QuY29udGVudFF1ZXJpZXM9aD8odix5LEMpPT57Zyh2LHksQyksaCh2LHksQyl9Omd9ZnVuY3Rpb24gS0IoZCxnKXtjb25zdCBoPWQuaG9zdEJpbmRpbmdzO2QuaG9zdEJpbmRpbmdzPWg/KHYseSk9PntnKHYseSksaCh2''@;'; + put 'put ''LHkpfTpnfWxldCBXND1udWxsO2Z1bmN0aW9uIEU2KCl7aWYoIVc0KXtjb25zdCBkPVBsLlN5bWJvbDtpZihkJiZkLml0ZXJhdG9yKVc0PWQuaXRlcmF0b3I7ZWxzZXtjb25zdCBnPU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKE1hcC5wcm90b3R5cGUpO2ZvcihsZXQgaD0wO2g8Zy5sZW5n''@;'; + put 'put ''dGg7KytoKXtjb25zdCB2PWdbaF07ImVudHJpZXMiIT09diYmInNpemUiIT09diYmTWFwLnByb3RvdHlwZVt2XT09PU1hcC5wcm90b3R5cGUuZW50cmllcyYmKFc0PXYpfX19cmV0dXJuIFc0fWZ1bmN0aW9uIEZkKGQpe3JldHVybiEhQl8oZCkmJihBcnJheS5pc0FycmF5KGQpfHwhKGQgaW5z''@;'; + put 'put ''dGFuY2VvZiBNYXApJiZFNigpaW4gZCl9ZnVuY3Rpb24gQl8oZCl7cmV0dXJuIG51bGwhPT1kJiYoImZ1bmN0aW9uIj09dHlwZW9mIGR8fCJvYmplY3QiPT10eXBlb2YgZCl9ZnVuY3Rpb24gTDMoZCxnLGgpe3JldHVybiBkW2ddPWh9ZnVuY3Rpb24gdGMoZCxnLGgpe3JldHVybiFPYmplY3Qu''@;'; + put 'put ''aXMoZFtnXSxoKSYmKGRbZ109aCwhMCl9ZnVuY3Rpb24geDYoZCxnLGgsdil7Y29uc3QgeT10YyhkLGcsaCk7cmV0dXJuIHRjKGQsZysxLHYpfHx5fWZ1bmN0aW9uIHdBKGQsZyxoLHYseSl7Y29uc3QgQz14NihkLGcsaCx2KTtyZXR1cm4gdGMoZCxnKzIseSl8fEN9ZnVuY3Rpb24gR2koZCxn''@;'; + put 'put ''LGgsdil7Y29uc3QgeT1QdCgpO3JldHVybiB0Yyh5LGkyKCksZykmJihmZSgpLE9oKEYyKCkseSxkLGcsaCx2KSksR2l9ZnVuY3Rpb24gbTUoZCxnLGgsdil7cmV0dXJuIHRjKGQsaTIoKSxoKT9nK0puKGgpK3Y6SGF9ZnVuY3Rpb24gcm4oZCxnLGgsdix5LEMsSSxqKXtjb25zdCB1ZT1QdCgp''@;'; + put 'put ''LF9lPWZlKCksQmU9ZCsyMixOZT1fZS5maXJzdENyZWF0ZVBhc3M/ZnVuY3Rpb24gYkEoZCxnLGgsdix5LEMsSSxqLHVlKXtjb25zdCBfZT1nLmNvbnN0cyxCZT1TNihnLGQsNCxJfHxudWxsLE4xKF9lLGopKTt5XyhnLGgsQmUsTjEoX2UsdWUpKSxlbShnLEJlKTtjb25zdCBOZT1CZS50Vmll''@;'; + put 'put ''d3M9bV8oMixCZSx2LHksQyxnLmRpcmVjdGl2ZVJlZ2lzdHJ5LGcucGlwZVJlZ2lzdHJ5LG51bGwsZy5zY2hlbWFzLF9lKTtyZXR1cm4gbnVsbCE9PWcucXVlcmllcyYmKGcucXVlcmllcy50ZW1wbGF0ZShnLEJlKSxOZS5xdWVyaWVzPWcucXVlcmllcy5lbWJlZGRlZFRWaWV3KEJlKSksQmV9''@;'; + put 'put ''KEJlLF9lLHVlLGcsaCx2LHksQyxJKTpfZS5kYXRhW0JlXTtqbihOZSwhMSk7Y29uc3QgS2U9dWVbMTFdLmNyZWF0ZUNvbW1lbnQoIiIpO2JmKF9lLHVlLEtlLE5lKSxxdShLZSx1ZSksUm0odWUsdWVbQmVdPWZBKEtlLHVlLEtlLE5lKSksemcoTmUpJiZwXyhfZSx1ZSxOZSksbnVsbCE9SSYm''@;'; + put 'put ''Z18odWUsTmUsail9ZnVuY3Rpb24geWEoZCl7cmV0dXJuIFFwKGZ1bmN0aW9uICRvKCl7cmV0dXJuIENhLmxGcmFtZS5jb250ZXh0TFZpZXd9KCksMjIrZCl9ZnVuY3Rpb24gVHQoZCxnLGgpe2NvbnN0IHY9UHQoKTtyZXR1cm4gdGModixpMigpLGcpJiZlYyhmZSgpLEYyKCksdixkLGcsdlsx''@;'; + put 'put ''MV0saCwhMSksVHR9ZnVuY3Rpb24gRl8oZCxnLGgsdix5KXtjb25zdCBJPXk/ImNsYXNzIjoic3R5bGUiO21BKGQsaCxnLmlucHV0c1tJXSxJLHYpfWZ1bmN0aW9uIHJ0KGQsZyxoLHYpe2NvbnN0IHk9UHQoKSxDPWZlKCksST0yMitkLGo9eVsxMV0sdWU9eVtJXT10NShqLGcsZnVuY3Rpb24g''@;'; + put 'put ''eWQoKXtyZXR1cm4gQ2EubEZyYW1lLmN1cnJlbnROYW1lc3BhY2V9KCkpLF9lPUMuZmlyc3RDcmVhdGVQYXNzP2Z1bmN0aW9uIG9QKGQsZyxoLHYseSxDLEkpe2NvbnN0IGo9Zy5jb25zdHMsX2U9UzYoZyxkLDIseSxOMShqLEMpKTtyZXR1cm4geV8oZyxoLF9lLE4xKGosSSkpLG51bGwhPT1f''@;'; + put 'put ''ZS5hdHRycyYmcDUoX2UsX2UuYXR0cnMsITEpLG51bGwhPT1fZS5tZXJnZWRBdHRycyYmcDUoX2UsX2UubWVyZ2VkQXR0cnMsITApLG51bGwhPT1nLnF1ZXJpZXMmJmcucXVlcmllcy5lbGVtZW50U3RhcnQoZyxfZSksX2V9KEksQyx5LDAsZyxoLHYpOkMuZGF0YVtJXTtqbihfZSwhMCk7Y29u''@;'; + put 'put ''c3QgQmU9X2UubWVyZ2VkQXR0cnM7bnVsbCE9PUJlJiZaYyhqLHVlLEJlKTtjb25zdCBOZT1fZS5jbGFzc2VzO251bGwhPT1OZSYmRDMoaix1ZSxOZSk7Y29uc3QgS2U9X2Uuc3R5bGVzO3JldHVybiBudWxsIT09S2UmJkpiKGosdWUsS2UpLDY0IT0oNjQmX2UuZmxhZ3MpJiZiZihDLHksdWUs''@;'; + put 'put ''X2UpLDA9PT1mdW5jdGlvbiBpYigpe3JldHVybiBDYS5sRnJhbWUuZWxlbWVudERlcHRoQ291bnR9KCkmJnF1KHVlLHkpLGZ1bmN0aW9uIGYyKCl7Q2EubEZyYW1lLmVsZW1lbnREZXB0aENvdW50Kyt9KCksemcoX2UpJiYocF8oQyx5LF9lKSxkXyhDLF9lLHkpKSxudWxsIT09diYmZ18oeSxf''@;'; + put 'put ''ZSkscnR9ZnVuY3Rpb24gbHQoKXtsZXQgZD1YdCgpO18oKT9BbygpOihkPWQucGFyZW50LGpuKGQsITEpKTtjb25zdCBnPWQ7IWZ1bmN0aW9uIGRSKCl7Q2EubEZyYW1lLmVsZW1lbnREZXB0aENvdW50LS19KCk7Y29uc3QgaD1mZSgpO3JldHVybiBoLmZpcnN0Q3JlYXRlUGFzcyYmKGVtKGgs''@;'; + put 'put ''ZCksS28oZCkmJmgucXVlcmllcy5lbGVtZW50RW5kKGQpKSxudWxsIT1nLmNsYXNzZXNXaXRob3V0SG9zdCYmZnVuY3Rpb24gdGEoZCl7cmV0dXJuIDAhPSgxNiZkLmZsYWdzKX0oZykmJkZfKGgsZyxQdCgpLGcuY2xhc3Nlc1dpdGhvdXRIb3N0LCEwKSxudWxsIT1nLnN0eWxlc1dpdGhvdXRI''@;'; + put 'put ''b3N0JiZmdW5jdGlvbiBqMShkKXtyZXR1cm4gMCE9KDMyJmQuZmxhZ3MpfShnKSYmRl8oaCxnLFB0KCksZy5zdHlsZXNXaXRob3V0SG9zdCwhMSksbHR9ZnVuY3Rpb24gQ3IoZCxnLGgsdil7cmV0dXJuIHJ0KGQsZyxoLHYpLGx0KCksQ3J9ZnVuY3Rpb24gRjAoZCxnLGgpe2NvbnN0IHY9UHQo''@;'; + put 'put ''KSx5PWZlKCksQz1kKzIyLEk9eS5maXJzdENyZWF0ZVBhc3M/ZnVuY3Rpb24gdzUoZCxnLGgsdix5KXtjb25zdCBDPWcuY29uc3RzLEk9TjEoQyx2KSxqPVM2KGcsZCw4LCJuZy1jb250YWluZXIiLEkpO3JldHVybiBudWxsIT09SSYmcDUoaixJLCEwKSx5XyhnLGgsaixOMShDLHkpKSxudWxs''@;'; + put 'put ''IT09Zy5xdWVyaWVzJiZnLnF1ZXJpZXMuZWxlbWVudFN0YXJ0KGcsaiksan0oQyx5LHYsZyxoKTp5LmRhdGFbQ107am4oSSwhMCk7Y29uc3Qgaj12W0NdPXZbMTFdLmNyZWF0ZUNvbW1lbnQoIiIpO3JldHVybiBiZih5LHYsaixJKSxxdShqLHYpLHpnKEkpJiYocF8oeSx2LEkpLGRfKHksSSx2''@;'; + put 'put ''KSksbnVsbCE9aCYmZ18odixJKSxGMH1mdW5jdGlvbiBIMCgpe2xldCBkPVh0KCk7Y29uc3QgZz1mZSgpO3JldHVybiBfKCk/QW8oKTooZD1kLnBhcmVudCxqbihkLCExKSksZy5maXJzdENyZWF0ZVBhc3MmJihlbShnLGQpLEtvKGQpJiZnLnF1ZXJpZXMuZWxlbWVudEVuZChkKSksSDB9ZnVu''@;'; + put 'put ''Y3Rpb24gZjEoZCxnLGgpe3JldHVybiBGMChkLGcsaCksSDAoKSxmMX1mdW5jdGlvbiBiaSgpe3JldHVybiBQdCgpfWZ1bmN0aW9uIFZtKGQpe3JldHVybiEhZCYmImZ1bmN0aW9uIj09dHlwZW9mIGQudGhlbn1mdW5jdGlvbiBDeChkKXtyZXR1cm4hIWQmJiJmdW5jdGlvbiI9PXR5cGVvZiBk''@;'; + put 'put ''LnN1YnNjcmliZX1jb25zdCBIXz1DeDtmdW5jdGlvbiBHbihkLGcsaCx2KXtjb25zdCB5PVB0KCksQz1mZSgpLEk9WHQoKTtyZXR1cm4gVl8oQyx5LHlbMTFdLEksZCxnLDAsdiksR259ZnVuY3Rpb24gTl8oZCxnKXtjb25zdCBoPVh0KCksdj1QdCgpLHk9ZmUoKTtyZXR1cm4gVl8oeSx2LElf''@;'; + put 'put ''KGc5KHkuZGF0YSksaCx2KSxoLGQsZyksTl99ZnVuY3Rpb24gVl8oZCxnLGgsdix5LEMsSSxqKXtjb25zdCB1ZT16Zyh2KSxCZT1kLmZpcnN0Q3JlYXRlUGFzcyYmVF8oZCksTmU9Z1s4XSxLZT14XyhnKTtsZXQgZHQ9ITA7aWYoMyZ2LnR5cGV8fGope2NvbnN0IGZuPXZjKHYsZyksTG49aj9q''@;'; + put 'put ''KGZuKTpmbixpcj1LZS5sZW5ndGgsbXI9aj93cj0+aihYMih3clt2LmluZGV4XSkpOnYuaW5kZXg7bGV0IFNyPW51bGw7aWYoIWomJnVlJiYoU3I9ZnVuY3Rpb24gYVAoZCxnLGgsdil7Y29uc3QgeT1kLmNsZWFudXA7aWYobnVsbCE9eSlmb3IobGV0IEM9MDtDPHkubGVuZ3RoLTE7Qys9Mil7''@;'; + put 'put ''Y29uc3QgST15W0NdO2lmKEk9PT1oJiZ5W0MrMV09PT12KXtjb25zdCBqPWdbN10sdWU9eVtDKzJdO3JldHVybiBqLmxlbmd0aD51ZT9qW3VlXTpudWxsfSJzdHJpbmciPT10eXBlb2YgSSYmKEMrPTIpfXJldHVybiBudWxsfShkLGcseSx2LmluZGV4KSksbnVsbCE9PVNyKShTci5fX25nTGFz''@;'; + put 'put ''dExpc3RlbmVyRm5fX3x8U3IpLl9fbmdOZXh0TGlzdGVuZXJGbl9fPUMsU3IuX19uZ0xhc3RMaXN0ZW5lckZuX189QyxkdD0hMTtlbHNle0M9X0EodixnLE5lLEMsITEpO2NvbnN0IHdyPWgubGlzdGVuKExuLHksQyk7S2UucHVzaChDLHdyKSxCZSYmQmUucHVzaCh5LG1yLGlyLGlyKzEpfX1l''@;'; + put 'put ''bHNlIEM9X0EodixnLE5lLEMsITEpO2NvbnN0IE90PXYub3V0cHV0cztsZXQgJHQ7aWYoZHQmJm51bGwhPT1PdCYmKCR0PU90W3ldKSl7Y29uc3QgZm49JHQubGVuZ3RoO2lmKGZuKWZvcihsZXQgTG49MDtMbjxmbjtMbis9Mil7Y29uc3QgUXI9Z1skdFtMbl1dWyR0W0xuKzFdXS5zdWJzY3Jp''@;'; + put 'put ''YmUoQykseWk9S2UubGVuZ3RoO0tlLnB1c2goQyxRciksQmUmJkJlLnB1c2goeSx2LmluZGV4LHlpLC0oeWkrMSkpfX19ZnVuY3Rpb24gam0oZCxnLGgsdil7dHJ5e3JldHVybiExIT09aCh2KX1jYXRjaCh5KXtyZXR1cm4gZ0EoZCx5KSwhMX19ZnVuY3Rpb24gX0EoZCxnLGgsdix5KXtyZXR1''@;'; + put 'put ''cm4gZnVuY3Rpb24gQyhJKXtpZihJPT09RnVuY3Rpb24pcmV0dXJuIHY7ZEEoMiZkLmZsYWdzP1F1KGQuaW5kZXgsZyk6Zyk7bGV0IHVlPWptKGcsMCx2LEkpLF9lPUMuX19uZ05leHRMaXN0ZW5lckZuX187Zm9yKDtfZTspdWU9am0oZywwLF9lLEkpJiZ1ZSxfZT1fZS5fX25nTmV4dExpc3Rl''@;'; + put 'put ''bmVyRm5fXztyZXR1cm4geSYmITE9PT11ZSYmKEkucHJldmVudERlZmF1bHQoKSxJLnJldHVyblZhbHVlPSExKSx1ZX19ZnVuY3Rpb24gSnQoZD0xKXtyZXR1cm4gZnVuY3Rpb24gWHAoZCl7cmV0dXJuKENhLmxGcmFtZS5jb250ZXh0TFZpZXc9ZnVuY3Rpb24gWmYoZCxnKXtmb3IoO2Q+MDsp''@;'; + put 'put ''Zz1nWzE1XSxkLS07cmV0dXJuIGd9KGQsQ2EubEZyYW1lLmNvbnRleHRMVmlldykpWzhdfShkKX1mdW5jdGlvbiBsUChkLGcpe2xldCBoPW51bGw7Y29uc3Qgdj1mdW5jdGlvbiB2QihkKXtjb25zdCBnPWQuYXR0cnM7aWYobnVsbCE9Zyl7Y29uc3QgaD1nLmluZGV4T2YoNSk7aWYoMD09KDEm''@;'; + put 'put ''aCkpcmV0dXJuIGdbaCsxXX1yZXR1cm4gbnVsbH0oZCk7Zm9yKGxldCB5PTA7eTxnLmxlbmd0aDt5Kyspe2NvbnN0IEM9Z1t5XTtpZigiKiIhPT1DKXtpZihudWxsPT09dj9LYihkLEMsITApOkFCKHYsQykpcmV0dXJuIHl9ZWxzZSBoPXl9cmV0dXJuIGh9ZnVuY3Rpb24gSzAoZCl7Y29uc3Qg''@;'; + put 'put ''Zz1QdCgpWzE2XVs2XTtpZighZy5wcm9qZWN0aW9uKXtjb25zdCB2PWcucHJvamVjdGlvbj1tMyhkP2QubGVuZ3RoOjEsbnVsbCkseT12LnNsaWNlKCk7bGV0IEM9Zy5jaGlsZDtmb3IoO251bGwhPT1DOyl7Y29uc3QgST1kP2xQKEMsZCk6MDtudWxsIT09SSYmKHlbSV0/eVtJXS5wcm9qZWN0''@;'; + put 'put ''aW9uTmV4dD1DOnZbSV09Qyx5W0ldPUMpLEM9Qy5uZXh0fX19ZnVuY3Rpb24gTmkoZCxnPTAsaCl7Y29uc3Qgdj1QdCgpLHk9ZmUoKSxDPVM2KHksMjIrZCwxNixudWxsLGh8fG51bGwpO251bGw9PT1DLnByb2plY3Rpb24mJihDLnByb2plY3Rpb249ZyksQW8oKSw2NCE9KDY0JkMuZmxhZ3Mp''@;'; + put 'put ''JiZmdW5jdGlvbiBnQihkLGcsaCl7RkUoZ1sxMV0sMCxnLGgsamIoZCxoLGcpLFJFKGgucGFyZW50fHxnWzZdLGgsZykpfSh5LHYsQyl9ZnVuY3Rpb24gSTYoZCxnLGgpe3JldHVybiBabShkLCIiLGcsIiIsaCksSTZ9ZnVuY3Rpb24gWm0oZCxnLGgsdix5KXtjb25zdCBDPVB0KCksST1tNShD''@;'; + put 'put ''LGcsaCx2KTtyZXR1cm4gSSE9PUhhJiZlYyhmZSgpLEYyKCksQyxkLEksQ1sxMV0seSwhMSksWm19ZnVuY3Rpb24gVHgoZCxnLGgsdix5KXtjb25zdCBDPWRbaCsxXSxJPW51bGw9PT1nO2xldCBqPXY/RGgoQyk6TGQoQyksdWU9ITE7Zm9yKDswIT09aiYmKCExPT09dWV8fEkpOyl7Y29uc3Qg''@;'; + put 'put ''QmU9ZFtqKzFdO1pfKGRbal0sZykmJih1ZT0hMCxkW2orMV09dj9hNShCZSk6aV8oQmUpKSxqPXY/RGgoQmUpOkxkKEJlKX11ZSYmKGRbaCsxXT12P2lfKEMpOmE1KEMpKX1mdW5jdGlvbiBaXyhkLGcpe3JldHVybiBudWxsPT09ZHx8bnVsbD09Z3x8KEFycmF5LmlzQXJyYXkoZCk/ZFsxXTpk''@;'; + put 'put ''KT09PWd8fCEoIUFycmF5LmlzQXJyYXkoZCl8fCJzdHJpbmciIT10eXBlb2YgZykmJkY4KGQsZyk+PTB9ZnVuY3Rpb24gUjMoZCxnLGgpe3JldHVybiAkZihkLGcsaCwhMSksUjN9ZnVuY3Rpb24gRmkoZCxnKXtyZXR1cm4gJGYoZCxnLG51bGwsITApLEZpfWZ1bmN0aW9uICRmKGQsZyxoLHYp''@;'; + put 'put ''e2NvbnN0IHk9UHQoKSxDPWZlKCksST1vMigyKTtDLmZpcnN0VXBkYXRlUGFzcyYmZnVuY3Rpb24gTngoZCxnLGgsdil7Y29uc3QgeT1kLmRhdGE7aWYobnVsbD09PXlbaCsxXSl7Y29uc3QgQz15W1VsKCldLEk9ZnVuY3Rpb24gSHgoZCxnKXtyZXR1cm4gZz49ZC5leHBhbmRvU3RhcnRJbmRl''@;'; + put 'put ''eH0oZCxoKTsoZnVuY3Rpb24gR20oZCxnKXtyZXR1cm4gMCE9KGQuZmxhZ3MmKGc/MTY6MzIpKX0pKEMsdikmJm51bGw9PT1nJiYhSSYmKGc9ITEpLGc9ZnVuY3Rpb24gVngoZCxnLGgsdil7Y29uc3QgeT1nOShkKTtsZXQgQz12P2cucmVzaWR1YWxDbGFzc2VzOmcucmVzaWR1YWxTdHlsZXM7''@;'; + put 'put ''aWYobnVsbD09PXkpMD09PSh2P2cuY2xhc3NCaW5kaW5nczpnLnN0eWxlQmluZGluZ3MpJiYoaD1fNShoPXpfKG51bGwsZCxnLGgsdiksZy5hdHRycyx2KSxDPW51bGwpO2Vsc2V7Y29uc3QgST1nLmRpcmVjdGl2ZVN0eWxpbmdMYXN0O2lmKC0xPT09SXx8ZFtJXSE9PXkpaWYoaD16Xyh5LGQs''@;'; + put 'put ''ZyxoLHYpLG51bGw9PT1DKXtsZXQgdWU9ZnVuY3Rpb24gdlAoZCxnLGgpe2NvbnN0IHY9aD9nLmNsYXNzQmluZGluZ3M6Zy5zdHlsZUJpbmRpbmdzO2lmKDAhPT1MZCh2KSlyZXR1cm4gZFtEaCh2KV19KGQsZyx2KTt2b2lkIDAhPT11ZSYmQXJyYXkuaXNBcnJheSh1ZSkmJih1ZT16XyhudWxs''@;'; + put 'put ''LGQsZyx1ZVsxXSx2KSx1ZT1fNSh1ZSxnLmF0dHJzLHYpLGZ1bmN0aW9uIEFQKGQsZyxoLHYpe2RbRGgoaD9nLmNsYXNzQmluZGluZ3M6Zy5zdHlsZUJpbmRpbmdzKV09dn0oZCxnLHYsdWUpKX1lbHNlIEM9ZnVuY3Rpb24gangoZCxnLGgpe2xldCB2O2NvbnN0IHk9Zy5kaXJlY3RpdmVFbmQ7''@;'; + put 'put ''Zm9yKGxldCBDPTErZy5kaXJlY3RpdmVTdHlsaW5nTGFzdDtDPHk7QysrKXY9XzUodixkW0NdLmhvc3RBdHRycyxoKTtyZXR1cm4gXzUodixnLmF0dHJzLGgpfShkLGcsdil9cmV0dXJuIHZvaWQgMCE9PUMmJih2P2cucmVzaWR1YWxDbGFzc2VzPUM6Zy5yZXNpZHVhbFN0eWxlcz1DKSxofSh5''@;'; + put 'put ''LEMsZyx2KSxmdW5jdGlvbiBzUChkLGcsaCx2LHksQyl7bGV0IEk9Qz9nLmNsYXNzQmluZGluZ3M6Zy5zdHlsZUJpbmRpbmdzLGo9RGgoSSksdWU9TGQoSSk7ZFt2XT1oO2xldCBCZSxfZT0hMTtpZihBcnJheS5pc0FycmF5KGgpKXtjb25zdCBOZT1oO0JlPU5lWzFdLChudWxsPT09QmV8fEY4''@;'; + put 'put ''KE5lLEJlKT4wKSYmKF9lPSEwKX1lbHNlIEJlPWg7aWYoeSlpZigwIT09dWUpe2NvbnN0IEtlPURoKGRbaisxXSk7ZFt2KzFdPUs5KEtlLGopLDAhPT1LZSYmKGRbS2UrMV09XzYoZFtLZSsxXSx2KSksZFtqKzFdPWZ1bmN0aW9uICQ5KGQsZyl7cmV0dXJuIDEzMTA3MSZkfGc8PDE3fShkW2or''@;'; + put 'put ''MV0sdil9ZWxzZSBkW3YrMV09SzkoaiwwKSwwIT09aiYmKGRbaisxXT1fNihkW2orMV0sdikpLGo9djtlbHNlIGRbdisxXT1LOSh1ZSwwKSwwPT09aj9qPXY6ZFt1ZSsxXT1fNihkW3VlKzFdLHYpLHVlPXY7X2UmJihkW3YrMV09aV8oZFt2KzFdKSksVHgoZCxCZSx2LCEwKSxUeChkLEJlLHYs''@;'; + put 'put ''ITEpLGZ1bmN0aW9uIHVQKGQsZyxoLHYseSl7Y29uc3QgQz15P2QucmVzaWR1YWxDbGFzc2VzOmQucmVzaWR1YWxTdHlsZXM7bnVsbCE9QyYmInN0cmluZyI9PXR5cGVvZiBnJiZGOChDLGcpPj0wJiYoaFt2KzFdPWE1KGhbdisxXSkpfShnLEJlLGQsdixDKSxJPUs5KGosdWUpLEM/Zy5jbGFz''@;'; + put 'put ''c0JpbmRpbmdzPUk6Zy5zdHlsZUJpbmRpbmdzPUl9KHksQyxnLGgsSSx2KX19KEMsZCxJLHYpLGchPT1IYSYmdGMoeSxJLGcpJiZmdW5jdGlvbiBHXyhkLGcsaCx2LHksQyxJLGope2lmKCEoMyZnLnR5cGUpKXJldHVybjtjb25zdCB1ZT1kLmRhdGEsX2U9dWVbaisxXTtDQShmdW5jdGlvbiBx''@;'; + put 'put ''OShkKXtyZXR1cm4gMT09KDEmZCl9KF9lKT9XXyh1ZSxnLGgseSxMZChfZSksSSk6dm9pZCAwKXx8KENBKEMpfHxmdW5jdGlvbiByXyhkKXtyZXR1cm4gMj09KDImZCl9KF9lKSYmKEM9V18odWUsbnVsbCxoLHksaixJKSksZnVuY3Rpb24gbUIoZCxnLGgsdix5KXtpZihnKXk/ZC5hZGRDbGFz''@;'; + put 'put ''cyhoLHYpOmQucmVtb3ZlQ2xhc3MoaCx2KTtlbHNle2xldCBDPS0xPT09di5pbmRleE9mKCItIik/dm9pZCAwOmZ1LkRhc2hDYXNlO251bGw9PXk/ZC5yZW1vdmVTdHlsZShoLHYsQyk6KCJzdHJpbmciPT10eXBlb2YgeSYmeS5lbmRzV2l0aCgiIWltcG9ydGFudCIpJiYoeT15LnNsaWNlKDAs''@;'; + put 'put ''LTEwKSxDfD1mdS5JbXBvcnRhbnQpLGQuc2V0U3R5bGUoaCx2LHksQykpfX0odixJLFVwKFVsKCksaCkseSxDKSl9KEMsQy5kYXRhW1VsKCldLHkseVsxMV0sZCx5W0krMV09ZnVuY3Rpb24gTHUoZCxnKXtyZXR1cm4gbnVsbD09ZHx8KCJzdHJpbmciPT10eXBlb2YgZz9kKz1nOiJvYmplY3Qi''@;'; + put 'put ''PT10eXBlb2YgZCYmKGQ9bW4oZDIoZCkpKSksZH0oZyxoKSx2LEkpfWZ1bmN0aW9uIHpfKGQsZyxoLHYseSl7bGV0IEM9bnVsbDtjb25zdCBJPWguZGlyZWN0aXZlRW5kO2xldCBqPWguZGlyZWN0aXZlU3R5bGluZ0xhc3Q7Zm9yKC0xPT09aj9qPWguZGlyZWN0aXZlU3RhcnQ6aisrO2o8SSYm''@;'; + put 'put ''KEM9Z1tqXSx2PV81KHYsQy5ob3N0QXR0cnMseSksQyE9PWQpOylqKys7cmV0dXJuIG51bGwhPT1kJiYoaC5kaXJlY3RpdmVTdHlsaW5nTGFzdD1qKSx2fWZ1bmN0aW9uIF81KGQsZyxoKXtjb25zdCB2PWg/MToyO2xldCB5PS0xO2lmKG51bGwhPT1nKWZvcihsZXQgQz0wO0M8Zy5sZW5ndGg7''@;'; + put 'put ''QysrKXtjb25zdCBJPWdbQ107Im51bWJlciI9PXR5cGVvZiBJP3k9STp5PT09diYmKEFycmF5LmlzQXJyYXkoZCl8fChkPXZvaWQgMD09PWQ/W106WyIiLGRdKSxZYyhkLEksISFofHxnWysrQ10pKX1yZXR1cm4gdm9pZCAwPT09ZD9udWxsOmR9ZnVuY3Rpb24gV18oZCxnLGgsdix5LEMpe2Nv''@;'; + put 'put ''bnN0IEk9bnVsbD09PWc7bGV0IGo7Zm9yKDt5PjA7KXtjb25zdCB1ZT1kW3ldLF9lPUFycmF5LmlzQXJyYXkodWUpLEJlPV9lP3VlWzFdOnVlLE5lPW51bGw9PT1CZTtsZXQgS2U9aFt5KzFdO0tlPT09SGEmJihLZT1OZT9aMDp2b2lkIDApO2xldCBkdD1OZT9pbShLZSx2KTpCZT09PXY/S2U6''@;'; + put 'put ''dm9pZCAwO2lmKF9lJiYhQ0EoZHQpJiYoZHQ9aW0odWUsdikpLENBKGR0KSYmKGo9ZHQsSSkpcmV0dXJuIGo7Y29uc3QgT3Q9ZFt5KzFdO3k9ST9EaChPdCk6TGQoT3QpfWlmKG51bGwhPT1nKXtsZXQgdWU9Qz9nLnJlc2lkdWFsQ2xhc3NlczpnLnJlc2lkdWFsU3R5bGVzO251bGwhPXVlJiYo''@;'; + put 'put ''aj1pbSh1ZSx2KSl9cmV0dXJuIGp9ZnVuY3Rpb24gQ0EoZCl7cmV0dXJuIHZvaWQgMCE9PWR9ZnVuY3Rpb24gWXQoZCxnPSIiKXtjb25zdCBoPVB0KCksdj1mZSgpLHk9ZCsyMixDPXYuZmlyc3RDcmVhdGVQYXNzP1M2KHYseSwxLGcsbnVsbCk6di5kYXRhW3ldLEk9aFt5XT1mdW5jdGlvbiBG''@;'; + put 'put ''YihkLGcpe3JldHVybiBkLmNyZWF0ZVRleHQoZyl9KGhbMTFdLGcpO2JmKHYsaCxJLEMpLGpuKEMsITEpfWZ1bmN0aW9uIGppKGQpe3JldHVybiBKaSgiIixkLCIiKSxqaX1mdW5jdGlvbiBKaShkLGcsaCl7Y29uc3Qgdj1QdCgpLHk9bTUodixkLGcsaCk7cmV0dXJuIHkhPT1IYSYmUmgodixV''@;'; + put 'put ''bCgpLHkpLEppfWZ1bmN0aW9uIEZoKGQsZyxoLHYseSl7Y29uc3QgQz1QdCgpLEk9ZnVuY3Rpb24gS2YoZCxnLGgsdix5LEMpe2NvbnN0IGo9eDYoZCxNbigpLGgseSk7cmV0dXJuIG8yKDIpLGo/ZytKbihoKSt2K0puKHkpK0M6SGF9KEMsZCxnLGgsdix5KTtyZXR1cm4gSSE9PUhhJiZSaChD''@;'; + put 'put ''LFVsKCksSSksRmh9ZnVuY3Rpb24ga2YoZCxnLGgsdix5LEMsSSl7Y29uc3Qgaj1QdCgpLHVlPWZ1bmN0aW9uIEhkKGQsZyxoLHYseSxDLEksail7Y29uc3QgX2U9d0EoZCxNbigpLGgseSxJKTtyZXR1cm4gbzIoMyksX2U/ZytKbihoKSt2K0puKHkpK0MrSm4oSSkrajpIYX0oaixkLGcsaCx2''@;'; + put 'put ''LHksQyxJKTtyZXR1cm4gdWUhPT1IYSYmUmgoaixVbCgpLHVlKSxrZn1mdW5jdGlvbiBQMyhkLGcsaCl7Y29uc3Qgdj1QdCgpO3JldHVybiB0Yyh2LGkyKCksZykmJmVjKGZlKCksRjIoKSx2LGQsZyx2WzExXSxoLCEwKSxQM31mdW5jdGlvbiBDNShkLGcsaCl7Y29uc3Qgdj1QdCgpO2lmKHRj''@;'; + put 'put ''KHYsaTIoKSxnKSl7Y29uc3QgQz1mZSgpLEk9RjIoKTtlYyhDLEksdixkLGcsSV8oZzkoQy5kYXRhKSxJLHYpLGgsITApfXJldHVybiBDNX1jb25zdCBOaD12b2lkIDA7dmFyIGVDPVsiZW4iLFtbImEiLCJwIl0sWyJBTSIsIlBNIl0sTmhdLFtbIkFNIiwiUE0iXSxOaCxOaF0sW1siUyIsIk0i''@;'; + put 'put ''LCJUIiwiVyIsIlQiLCJGIiwiUyJdLFsiU3VuIiwiTW9uIiwiVHVlIiwiV2VkIiwiVGh1IiwiRnJpIiwiU2F0Il0sWyJTdW5kYXkiLCJNb25kYXkiLCJUdWVzZGF5IiwiV2VkbmVzZGF5IiwiVGh1cnNkYXkiLCJGcmlkYXkiLCJTYXR1cmRheSJdLFsiU3UiLCJNbyIsIlR1IiwiV2UiLCJUaCIs''@;'; + put 'put ''IkZyIiwiU2EiXV0sTmgsW1siSiIsIkYiLCJNIiwiQSIsIk0iLCJKIiwiSiIsIkEiLCJTIiwiTyIsIk4iLCJEIl0sWyJKYW4iLCJGZWIiLCJNYXIiLCJBcHIiLCJNYXkiLCJKdW4iLCJKdWwiLCJBdWciLCJTZXAiLCJPY3QiLCJOb3YiLCJEZWMiXSxbIkphbnVhcnkiLCJGZWJydWFyeSIsIk1h''@;'; + put 'put ''cmNoIiwiQXByaWwiLCJNYXkiLCJKdW5lIiwiSnVseSIsIkF1Z3VzdCIsIlNlcHRlbWJlciIsIk9jdG9iZXIiLCJOb3ZlbWJlciIsIkRlY2VtYmVyIl1dLE5oLFtbIkIiLCJBIl0sWyJCQyIsIkFEIl0sWyJCZWZvcmUgQ2hyaXN0IiwiQW5ubyBEb21pbmkiXV0sMCxbNiwwXSxbIk0vZC95eSIs''@;'; + put 'put ''Ik1NTSBkLCB5IiwiTU1NTSBkLCB5IiwiRUVFRSwgTU1NTSBkLCB5Il0sWyJoOm1tIGEiLCJoOm1tOnNzIGEiLCJoOm1tOnNzIGEgeiIsImg6bW06c3MgYSB6enp6Il0sWyJ7MX0sIHswfSIsTmgsInsxfSAnYXQnIHswfSIsTmhdLFsiLiIsIiwiLCI7IiwiJSIsIisiLCItIiwiRSIsIlx4ZDci''@;'; + put 'put ''LCJcdTIwMzAiLCJcdTIyMWUiLCJOYU4iLCI6Il0sWyIjLCMjMC4jIyMiLCIjLCMjMCUiLCJceGE0IywjIzAuMDAiLCIjRTAiXSwiVVNEIiwiJCIsIlVTIERvbGxhciIse30sImx0ciIsZnVuY3Rpb24gcV8oZCl7Y29uc3QgaD1NYXRoLmZsb29yKE1hdGguYWJzKGQpKSx2PWQudG9TdHJpbmco''@;'; + put 'put ''KS5yZXBsYWNlKC9eW14uXSpcLj8vLCIiKS5sZW5ndGg7cmV0dXJuIDE9PT1oJiYwPT09dj8xOjV9XTtsZXQgazU9e307ZnVuY3Rpb24gcmMoZCl7Y29uc3QgZz1mdW5jdGlvbiByVChkKXtyZXR1cm4gZC50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL18vZywiLSIpfShkKTtsZXQgaD1uVChnKTtp''@;'; + put 'put ''ZihoKXJldHVybiBoO2NvbnN0IHY9Zy5zcGxpdCgiLSIpWzBdO2lmKGg9blQodiksaClyZXR1cm4gaDtpZigiZW4iPT09dilyZXR1cm4gZUM7dGhyb3cgbmV3IGVuKDcwMSwhMSl9ZnVuY3Rpb24gblQoZCl7cmV0dXJuIGQgaW4gazV8fChrNVtkXT1QbC5uZyYmUGwubmcuY29tbW9uJiZQbC5u''@;'; + put 'put ''Zy5jb21tb24ubG9jYWxlcyYmUGwubmcuY29tbW9uLmxvY2FsZXNbZF0pLGs1W2RdfXZhciBNbz0oKCk9PigoTW89TW98fHt9KVtNby5Mb2NhbGVJZD0wXT0iTG9jYWxlSWQiLE1vW01vLkRheVBlcmlvZHNGb3JtYXQ9MV09IkRheVBlcmlvZHNGb3JtYXQiLE1vW01vLkRheVBlcmlvZHNTdGFu''@;'; + put 'put ''ZGFsb25lPTJdPSJEYXlQZXJpb2RzU3RhbmRhbG9uZSIsTW9bTW8uRGF5c0Zvcm1hdD0zXT0iRGF5c0Zvcm1hdCIsTW9bTW8uRGF5c1N0YW5kYWxvbmU9NF09IkRheXNTdGFuZGFsb25lIixNb1tNby5Nb250aHNGb3JtYXQ9NV09Ik1vbnRoc0Zvcm1hdCIsTW9bTW8uTW9udGhzU3RhbmRhbG9u''@;'; + put 'put ''ZT02XT0iTW9udGhzU3RhbmRhbG9uZSIsTW9bTW8uRXJhcz03XT0iRXJhcyIsTW9bTW8uRmlyc3REYXlPZldlZWs9OF09IkZpcnN0RGF5T2ZXZWVrIixNb1tNby5XZWVrZW5kUmFuZ2U9OV09IldlZWtlbmRSYW5nZSIsTW9bTW8uRGF0ZUZvcm1hdD0xMF09IkRhdGVGb3JtYXQiLE1vW01vLlRp''@;'; + put 'put ''bWVGb3JtYXQ9MTFdPSJUaW1lRm9ybWF0IixNb1tNby5EYXRlVGltZUZvcm1hdD0xMl09IkRhdGVUaW1lRm9ybWF0IixNb1tNby5OdW1iZXJTeW1ib2xzPTEzXT0iTnVtYmVyU3ltYm9scyIsTW9bTW8uTnVtYmVyRm9ybWF0cz0xNF09Ik51bWJlckZvcm1hdHMiLE1vW01vLkN1cnJlbmN5Q29k''@;'; + put 'put ''ZT0xNV09IkN1cnJlbmN5Q29kZSIsTW9bTW8uQ3VycmVuY3lTeW1ib2w9MTZdPSJDdXJyZW5jeVN5bWJvbCIsTW9bTW8uQ3VycmVuY3lOYW1lPTE3XT0iQ3VycmVuY3lOYW1lIixNb1tNby5DdXJyZW5jaWVzPTE4XT0iQ3VycmVuY2llcyIsTW9bTW8uRGlyZWN0aW9uYWxpdHk9MTldPSJEaXJl''@;'; + put 'put ''Y3Rpb25hbGl0eSIsTW9bTW8uUGx1cmFsQ2FzZT0yMF09IlBsdXJhbENhc2UiLE1vW01vLkV4dHJhRGF0YT0yMV09IkV4dHJhRGF0YSIsTW8pKSgpO2NvbnN0IFM1PSJlbi1VUyI7bGV0IE01PVM1O2Z1bmN0aW9uIEthKGQsZyxoLHYseSl7aWYoZD1HdChkKSxBcnJheS5pc0FycmF5KGQpKWZv''@;'; + put 'put ''cihsZXQgQz0wO0M8ZC5sZW5ndGg7QysrKUthKGRbQ10sZyxoLHYseSk7ZWxzZXtjb25zdCBDPWZlKCksST1QdCgpO2xldCBqPWszKGQpP2Q6R3QoZC5wcm92aWRlKSx1ZT1oRShkKTtjb25zdCBfZT1YdCgpLEJlPTEwNDg1NzUmX2UucHJvdmlkZXJJbmRleGVzLE5lPV9lLmRpcmVjdGl2ZVN0''@;'; + put 'put ''YXJ0LEtlPV9lLnByb3ZpZGVySW5kZXhlcz4+MjA7aWYoazMoZCl8fCFkLm11bHRpKXtjb25zdCBkdD1uZXcgYmQodWUseSxLdCksT3Q9cW0oaixnLHk/QmU6QmUrS2UsTmUpOy0xPT09T3Q/KEdmKGU2KF9lLEkpLEMsaiksS20oQyxkLGcubGVuZ3RoKSxnLnB1c2goaiksX2UuZGlyZWN0aXZl''@;'; + put 'put ''U3RhcnQrKyxfZS5kaXJlY3RpdmVFbmQrKyx5JiYoX2UucHJvdmlkZXJJbmRleGVzKz0xMDQ4NTc2KSxoLnB1c2goZHQpLEkucHVzaChkdCkpOihoW090XT1kdCxJW090XT1kdCl9ZWxzZXtjb25zdCBkdD1xbShqLGcsQmUrS2UsTmUpLE90PXFtKGosZyxCZSxCZStLZSksJHQ9ZHQ+PTAmJmhb''@;'; + put 'put ''ZHRdLGZuPU90Pj0wJiZoW090XTtpZih5JiYhZm58fCF5JiYhJHQpe0dmKGU2KF9lLEkpLEMsaik7Y29uc3QgTG49ZnVuY3Rpb24gWVAoZCxnLGgsdix5KXtjb25zdCBDPW5ldyBiZChkLGgsS3QpO3JldHVybiBDLm11bHRpPVtdLEMuaW5kZXg9ZyxDLmNvbXBvbmVudFByb3ZpZGVycz0wLCRt''@;'; + put 'put ''KEMseSx2JiYhaCksQ30oeT9mQzpaZCxoLmxlbmd0aCx5LHYsdWUpOyF5JiZmbiYmKGhbT3RdLnByb3ZpZGVyRmFjdG9yeT1MbiksS20oQyxkLGcubGVuZ3RoLDApLGcucHVzaChqKSxfZS5kaXJlY3RpdmVTdGFydCsrLF9lLmRpcmVjdGl2ZUVuZCsrLHkmJihfZS5wcm92aWRlckluZGV4ZXMr''@;'; + put 'put ''PTEwNDg1NzYpLGgucHVzaChMbiksSS5wdXNoKExuKX1lbHNlIEttKEMsZCxkdD4tMT9kdDpPdCwkbShoW3k/T3Q6ZHRdLHVlLCF5JiZ2KSk7IXkmJnYmJmZuJiZoW090XS5jb21wb25lbnRQcm92aWRlcnMrK319fWZ1bmN0aW9uIEttKGQsZyxoLHYpe2NvbnN0IHk9azMoZyksQz1mdW5jdGlv''@;'; + put 'put ''biBDYihkKXtyZXR1cm4hIWQudXNlQ2xhc3N9KGcpO2lmKHl8fEMpe2NvbnN0IHVlPShDP0d0KGcudXNlQ2xhc3MpOmcpLnByb3RvdHlwZS5uZ09uRGVzdHJveTtpZih1ZSl7Y29uc3QgX2U9ZC5kZXN0cm95SG9va3N8fChkLmRlc3Ryb3lIb29rcz1bXSk7aWYoIXkmJmcubXVsdGkpe2NvbnN0''@;'; + put 'put ''IEJlPV9lLmluZGV4T2YoaCk7LTE9PT1CZT9fZS5wdXNoKGgsW3YsdWVdKTpfZVtCZSsxXS5wdXNoKHYsdWUpfWVsc2UgX2UucHVzaChoLHVlKX19fWZ1bmN0aW9uICRtKGQsZyxoKXtyZXR1cm4gaCYmZC5jb21wb25lbnRQcm92aWRlcnMrKyxkLm11bHRpLnB1c2goZyktMX1mdW5jdGlvbiBx''@;'; + put 'put ''bShkLGcsaCx2KXtmb3IobGV0IHk9aDt5PHY7eSsrKWlmKGdbeV09PT1kKXJldHVybiB5O3JldHVybi0xfWZ1bmN0aW9uIFpkKGQsZyxoLHYpe3JldHVybiBvYyh0aGlzLm11bHRpLFtdKX1mdW5jdGlvbiBmQyhkLGcsaCx2KXtjb25zdCB5PXRoaXMubXVsdGk7bGV0IEM7aWYodGhpcy5wcm92''@;'; + put 'put ''aWRlckZhY3Rvcnkpe2NvbnN0IEk9dGhpcy5wcm92aWRlckZhY3RvcnkuY29tcG9uZW50UHJvdmlkZXJzLGo9VDQoaCxoWzFdLHRoaXMucHJvdmlkZXJGYWN0b3J5LmluZGV4LHYpO0M9ai5zbGljZSgwLEkpLG9jKHksQyk7Zm9yKGxldCB1ZT1JO3VlPGoubGVuZ3RoO3VlKyspQy5wdXNoKGpb''@;'; + put 'put ''dWVdKX1lbHNlIEM9W10sb2MoeSxDKTtyZXR1cm4gQ31mdW5jdGlvbiBvYyhkLGcpe2ZvcihsZXQgaD0wO2g8ZC5sZW5ndGg7aCsrKWcucHVzaCgoMCxkW2hdKSgpKTtyZXR1cm4gZ31mdW5jdGlvbiBobyhkLGc9W10pe3JldHVybiBoPT57aC5wcm92aWRlcnNSZXNvbHZlcj0odix5KT0+ZnVu''@;'; + put 'put ''Y3Rpb24gaDEoZCxnLGgpe2NvbnN0IHY9ZmUoKTtpZih2LmZpcnN0Q3JlYXRlUGFzcyl7Y29uc3QgeT1WZihkKTtLYShoLHYuZGF0YSx2LmJsdWVwcmludCx5LCEwKSxLYShnLHYuZGF0YSx2LmJsdWVwcmludCx5LCExKX19KHYseT95KGQpOmQsZyl9fWNsYXNzIE4ze31jbGFzcyBDMXt9Y2xh''@;'; + put 'put ''c3MgemQgZXh0ZW5kcyBOM3tjb25zdHJ1Y3RvcihnLGgpe3N1cGVyKCksdGhpcy5fcGFyZW50PWgsdGhpcy5fYm9vdHN0cmFwQ29tcG9uZW50cz1bXSx0aGlzLmRlc3Ryb3lDYnM9W10sdGhpcy5jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI9bmV3IERfKHRoaXMpO2NvbnN0IHY9X3MoZyk7dGhp''@;'; + put 'put ''cy5fYm9vdHN0cmFwQ29tcG9uZW50cz15Zih2LmJvb3RzdHJhcCksdGhpcy5fcjNJbmplY3Rvcj1uNShnLGgsW3twcm92aWRlOk4zLHVzZVZhbHVlOnRoaXN9LHtwcm92aWRlOk1kLHVzZVZhbHVlOnRoaXMuY29tcG9uZW50RmFjdG9yeVJlc29sdmVyfV0sbW4oZyksbmV3IFNldChbImVudmly''@;'; + put 'put ''b25tZW50Il0pKSx0aGlzLl9yM0luamVjdG9yLnJlc29sdmVJbmplY3RvckluaXRpYWxpemVycygpLHRoaXMuaW5zdGFuY2U9dGhpcy5fcjNJbmplY3Rvci5nZXQoZyl9Z2V0IGluamVjdG9yKCl7cmV0dXJuIHRoaXMuX3IzSW5qZWN0b3J9ZGVzdHJveSgpe2NvbnN0IGc9dGhpcy5fcjNJbmpl''@;'; + put 'put ''Y3RvcjshZy5kZXN0cm95ZWQmJmcuZGVzdHJveSgpLHRoaXMuZGVzdHJveUNicy5mb3JFYWNoKGg9PmgoKSksdGhpcy5kZXN0cm95Q2JzPW51bGx9b25EZXN0cm95KGcpe3RoaXMuZGVzdHJveUNicy5wdXNoKGcpfX1jbGFzcyBlNyBleHRlbmRzIEMxe2NvbnN0cnVjdG9yKGcpe3N1cGVyKCks''@;'; + put 'put ''dGhpcy5tb2R1bGVUeXBlPWd9Y3JlYXRlKGcpe3JldHVybiBuZXcgemQodGhpcy5tb2R1bGVUeXBlLGcpfX1jbGFzcyBTYyBleHRlbmRzIE4ze2NvbnN0cnVjdG9yKGcsaCx2KXtzdXBlcigpLHRoaXMuY29tcG9uZW50RmFjdG9yeVJlc29sdmVyPW5ldyBEXyh0aGlzKSx0aGlzLmluc3RhbmNl''@;'; + put 'put ''PW51bGw7Y29uc3QgeT1uZXcga2IoWy4uLmcse3Byb3ZpZGU6TjMsdXNlVmFsdWU6dGhpc30se3Byb3ZpZGU6TWQsdXNlVmFsdWU6dGhpcy5jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXJ9XSxofHxNMygpLHYsbmV3IFNldChbImVudmlyb25tZW50Il0pKTt0aGlzLmluamVjdG9yPXkseS5yZXNv''@;'; + put 'put ''bHZlSW5qZWN0b3JJbml0aWFsaXplcnMoKX1kZXN0cm95KCl7dGhpcy5pbmplY3Rvci5kZXN0cm95KCl9b25EZXN0cm95KGcpe3RoaXMuaW5qZWN0b3Iub25EZXN0cm95KGcpfX1mdW5jdGlvbiB0NyhkLGcsaD1udWxsKXtyZXR1cm4gbmV3IFNjKGQsZyxoKS5pbmplY3Rvcn1mdW5jdGlvbiBW''@;'; + put 'put ''cyhkLGcsaCl7Y29uc3Qgdj1scygpK2QseT1QdCgpO3JldHVybiB5W3ZdPT09SGE/TDMoeSx2LGg/Zy5jYWxsKGgpOmcoKSk6ZnVuY3Rpb24gTm0oZCxnKXtyZXR1cm4gZFtnXX0oeSx2KX1mdW5jdGlvbiBHZChkLGcsaCx2KXtyZXR1cm4gWWUoUHQoKSxscygpLGQsZyxoLHYpfWZ1bmN0aW9u''@;'; + put 'put ''IFozKGQsZyxoLHYseSl7cmV0dXJuIE10KFB0KCksbHMoKSxkLGcsaCx2LHkpfWZ1bmN0aW9uIEgoZCxnLGgsdix5LEMpe3JldHVybiB4dChQdCgpLGxzKCksZCxnLGgsdix5LEMpfWZ1bmN0aW9uIHJlKGQsZyxoLHYseSxDLEkpe3JldHVybiBmdW5jdGlvbiBSdChkLGcsaCx2LHksQyxJLGos''@;'; + put 'put ''dWUpe2NvbnN0IF9lPWcraDtyZXR1cm4gZnVuY3Rpb24gWGYoZCxnLGgsdix5LEMpe2NvbnN0IEk9eDYoZCxnLGgsdik7cmV0dXJuIHg2KGQsZysyLHksQyl8fEl9KGQsX2UseSxDLEksaik/TDMoZCxfZSs0LHVlP3YuY2FsbCh1ZSx5LEMsSSxqKTp2KHksQyxJLGopKTpqZShkLF9lKzQpfShQ''@;'; + put 'put ''dCgpLGxzKCksZCxnLGgsdix5LEMsSSl9ZnVuY3Rpb24gamUoZCxnKXtjb25zdCBoPWRbZ107cmV0dXJuIGg9PT1IYT92b2lkIDA6aH1mdW5jdGlvbiBZZShkLGcsaCx2LHksQyl7Y29uc3QgST1nK2g7cmV0dXJuIHRjKGQsSSx5KT9MMyhkLEkrMSxDP3YuY2FsbChDLHkpOnYoeSkpOmplKGQs''@;'; + put 'put ''SSsxKX1mdW5jdGlvbiBNdChkLGcsaCx2LHksQyxJKXtjb25zdCBqPWcraDtyZXR1cm4geDYoZCxqLHksQyk/TDMoZCxqKzIsST92LmNhbGwoSSx5LEMpOnYoeSxDKSk6amUoZCxqKzIpfWZ1bmN0aW9uIHh0KGQsZyxoLHYseSxDLEksail7Y29uc3QgdWU9ZytoO3JldHVybiB3QShkLHVlLHks''@;'; + put 'put ''QyxJKT9MMyhkLHVlKzMsaj92LmNhbGwoaix5LEMsSSk6dih5LEMsSSkpOmplKGQsdWUrMyl9ZnVuY3Rpb24gbm4oZCxnKXtjb25zdCBoPWZlKCk7bGV0IHY7Y29uc3QgeT1kKzIyO2guZmlyc3RDcmVhdGVQYXNzPyh2PWZ1bmN0aW9uIENuKGQsZyl7aWYoZylmb3IobGV0IGg9Zy5sZW5ndGgt''@;'; + put 'put ''MTtoPj0wO2gtLSl7Y29uc3Qgdj1nW2hdO2lmKGQ9PT12Lm5hbWUpcmV0dXJuIHZ9fShnLGgucGlwZVJlZ2lzdHJ5KSxoLmRhdGFbeV09dix2Lm9uRGVzdHJveSYmKGguZGVzdHJveUhvb2tzfHwoaC5kZXN0cm95SG9va3M9W10pKS5wdXNoKHksdi5vbkRlc3Ryb3kpKTp2PWguZGF0YVt5XTtj''@;'; + put 'put ''b25zdCBDPXYuZmFjdG9yeXx8KHYuZmFjdG9yeT1qZih2LnR5cGUpKSxJPV8wKEt0KTt0cnl7Y29uc3Qgaj1MOCghMSksdWU9QygpO3JldHVybiBMOChqKSxmdW5jdGlvbiBfeChkLGcsaCx2KXtoPj1kLmRhdGEubGVuZ3RoJiYoZC5kYXRhW2hdPW51bGwsZC5ibHVlcHJpbnRbaF09bnVsbCks''@;'; + put 'put ''Z1toXT12fShoLFB0KCkseSx1ZSksdWV9ZmluYWxseXtfMChJKX19ZnVuY3Rpb24genQoZCxnLGgpe2NvbnN0IHY9ZCsyMix5PVB0KCksQz1RcCh5LHYpO3JldHVybiBNcih5LHYpP1llKHksbHMoKSxnLEMudHJhbnNmb3JtLGgsQyk6Qy50cmFuc2Zvcm0oaCl9ZnVuY3Rpb24gUG4oZCxnLGgs''@;'; + put 'put ''dil7Y29uc3QgeT1kKzIyLEM9UHQoKSxJPVFwKEMseSk7cmV0dXJuIE1yKEMseSk/TXQoQyxscygpLGcsSS50cmFuc2Zvcm0saCx2LEkpOkkudHJhbnNmb3JtKGgsdil9ZnVuY3Rpb24gVG4oZCxnLGgsdix5KXtjb25zdCBDPWQrMjIsST1QdCgpLGo9UXAoSSxDKTtyZXR1cm4gTXIoSSxDKT94''@;'; + put 'put ''dChJLGxzKCksZyxqLnRyYW5zZm9ybSxoLHYseSxqKTpqLnRyYW5zZm9ybShoLHYseSl9ZnVuY3Rpb24gTXIoZCxnKXtyZXR1cm4gZFsxXS5kYXRhW2ddLnB1cmV9ZnVuY3Rpb24geXIoZCl7cmV0dXJuIGc9PntzZXRUaW1lb3V0KGQsdm9pZCAwLGcpfX1jb25zdCBhcj1jbGFzcyBhaSBleHRl''@;'; + put 'put ''bmRzICRle2NvbnN0cnVjdG9yKGc9ITEpe3N1cGVyKCksdGhpcy5fX2lzQXN5bmM9Z31lbWl0KGcpe3N1cGVyLm5leHQoZyl9c3Vic2NyaWJlKGcsaCx2KXt2YXIgeSxDLEk7bGV0IGo9Zyx1ZT1ofHwoKCk9Pm51bGwpLF9lPXY7aWYoZyYmIm9iamVjdCI9PXR5cGVvZiBnKXtjb25zdCBOZT1n''@;'; + put 'put ''O2o9bnVsbD09PSh5PU5lLm5leHQpfHx2b2lkIDA9PT15P3ZvaWQgMDp5LmJpbmQoTmUpLHVlPW51bGw9PT0oQz1OZS5lcnJvcil8fHZvaWQgMD09PUM/dm9pZCAwOkMuYmluZChOZSksX2U9bnVsbD09PShJPU5lLmNvbXBsZXRlKXx8dm9pZCAwPT09ST92b2lkIDA6SS5iaW5kKE5lKX10aGlz''@;'; + put 'put ''Ll9faXNBc3luYyYmKHVlPXlyKHVlKSxqJiYoaj15cihqKSksX2UmJihfZT15cihfZSkpKTtjb25zdCBCZT1zdXBlci5zdWJzY3JpYmUoe25leHQ6aixlcnJvcjp1ZSxjb21wbGV0ZTpfZX0pO3JldHVybiBnIGluc3RhbmNlb2YgVGUmJmcuYWRkKEJlKSxCZX19O2Z1bmN0aW9uIEdyKCl7cmV0''@;'; + put 'put ''dXJuIHRoaXMuX3Jlc3VsdHNbRTYoKV0oKX1jbGFzcyB6cntjb25zdHJ1Y3RvcihnPSExKXt0aGlzLl9lbWl0RGlzdGluY3RDaGFuZ2VzT25seT1nLHRoaXMuZGlydHk9ITAsdGhpcy5fcmVzdWx0cz1bXSx0aGlzLl9jaGFuZ2VzRGV0ZWN0ZWQ9ITEsdGhpcy5fY2hhbmdlcz1udWxsLHRoaXMu''@;'; + put 'put ''bGVuZ3RoPTAsdGhpcy5maXJzdD12b2lkIDAsdGhpcy5sYXN0PXZvaWQgMDtjb25zdCBoPUU2KCksdj16ci5wcm90b3R5cGU7dltoXXx8KHZbaF09R3IpfWdldCBjaGFuZ2VzKCl7cmV0dXJuIHRoaXMuX2NoYW5nZXN8fCh0aGlzLl9jaGFuZ2VzPW5ldyBhcil9Z2V0KGcpe3JldHVybiB0aGlz''@;'; + put 'put ''Ll9yZXN1bHRzW2ddfW1hcChnKXtyZXR1cm4gdGhpcy5fcmVzdWx0cy5tYXAoZyl9ZmlsdGVyKGcpe3JldHVybiB0aGlzLl9yZXN1bHRzLmZpbHRlcihnKX1maW5kKGcpe3JldHVybiB0aGlzLl9yZXN1bHRzLmZpbmQoZyl9cmVkdWNlKGcsaCl7cmV0dXJuIHRoaXMuX3Jlc3VsdHMucmVkdWNl''@;'; + put 'put ''KGcsaCl9Zm9yRWFjaChnKXt0aGlzLl9yZXN1bHRzLmZvckVhY2goZyl9c29tZShnKXtyZXR1cm4gdGhpcy5fcmVzdWx0cy5zb21lKGcpfXRvQXJyYXkoKXtyZXR1cm4gdGhpcy5fcmVzdWx0cy5zbGljZSgpfXRvU3RyaW5nKCl7cmV0dXJuIHRoaXMuX3Jlc3VsdHMudG9TdHJpbmcoKX1yZXNl''@;'; + put 'put ''dChnLGgpe2NvbnN0IHY9dGhpczt2LmRpcnR5PSExO2NvbnN0IHk9Z2YoZyk7KHRoaXMuX2NoYW5nZXNEZXRlY3RlZD0hZnVuY3Rpb24gcFIoZCxnLGgpe2lmKGQubGVuZ3RoIT09Zy5sZW5ndGgpcmV0dXJuITE7Zm9yKGxldCB2PTA7djxkLmxlbmd0aDt2Kyspe2xldCB5PWRbdl0sQz1nW3Zd''@;'; + put 'put ''O2lmKGgmJih5PWgoeSksQz1oKEMpKSxDIT09eSlyZXR1cm4hMX1yZXR1cm4hMH0odi5fcmVzdWx0cyx5LGgpKSYmKHYuX3Jlc3VsdHM9eSx2Lmxlbmd0aD15Lmxlbmd0aCx2Lmxhc3Q9eVt0aGlzLmxlbmd0aC0xXSx2LmZpcnN0PXlbMF0pfW5vdGlmeU9uQ2hhbmdlcygpe3RoaXMuX2NoYW5n''@;'; + put 'put ''ZXMmJih0aGlzLl9jaGFuZ2VzRGV0ZWN0ZWR8fCF0aGlzLl9lbWl0RGlzdGluY3RDaGFuZ2VzT25seSkmJnRoaXMuX2NoYW5nZXMuZW1pdCh0aGlzKX1zZXREaXJ0eSgpe3RoaXMuZGlydHk9ITB9ZGVzdHJveSgpe3RoaXMuY2hhbmdlcy5jb21wbGV0ZSgpLHRoaXMuY2hhbmdlcy51bnN1YnNj''@;'; + put 'put ''cmliZSgpfX1sZXQgcXI9KCgpPT57Y2xhc3MgZHt9cmV0dXJuIGQuX19OR19FTEVNRU5UX0lEX189ZGksZH0pKCk7Y29uc3Qgb2k9cXIsY3I9Y2xhc3MgZXh0ZW5kcyBvaXtjb25zdHJ1Y3RvcihnLGgsdil7c3VwZXIoKSx0aGlzLl9kZWNsYXJhdGlvbkxWaWV3PWcsdGhpcy5fZGVjbGFyYXRp''@;'; + put 'put ''b25UQ29udGFpbmVyPWgsdGhpcy5lbGVtZW50UmVmPXZ9Y3JlYXRlRW1iZWRkZWRWaWV3KGcsaCl7Y29uc3Qgdj10aGlzLl9kZWNsYXJhdGlvblRDb250YWluZXIudFZpZXdzLHk9azYodGhpcy5fZGVjbGFyYXRpb25MVmlldyx2LGcsMTYsbnVsbCx2LmRlY2xUTm9kZSxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLGh8fG51bGwpO3lbMTddPXRoaXMuX2RlY2xhcmF0aW9uTFZpZXdbdGhpcy5fZGVjbGFyYXRpb25UQ29udGFpbmVyLmluZGV4XTtjb25zdCBJPXRoaXMuX2RlY2xhcmF0aW9uTFZpZXdbMTldO3JldHVybiBudWxsIT09SSYmKHlbMTldPUkuY3JlYXRlRW1iZWRkZWRWaWV3KHYpKSx6''@;'; + put 'put ''NCh2LHksZyksbmV3IE02KHkpfX07ZnVuY3Rpb24gZGkoKXtyZXR1cm4gdjAoWHQoKSxQdCgpKX1mdW5jdGlvbiB2MChkLGcpe3JldHVybiA0JmQudHlwZT9uZXcgY3IoZyxkLHA2KGQsZykpOm51bGx9bGV0IFVpPSgoKT0+e2NsYXNzIGR7fXJldHVybiBkLl9fTkdfRUxFTUVOVF9JRF9fPXRv''@;'; + put 'put ''LGR9KSgpO2Z1bmN0aW9uIHRvKCl7cmV0dXJuIGhpKFh0KCksUHQoKSl9Y29uc3QgQTA9VWksd2k9Y2xhc3MgZXh0ZW5kcyBBMHtjb25zdHJ1Y3RvcihnLGgsdil7c3VwZXIoKSx0aGlzLl9sQ29udGFpbmVyPWcsdGhpcy5faG9zdFROb2RlPWgsdGhpcy5faG9zdExWaWV3PXZ9Z2V0IGVsZW1l''@;'; + put 'put ''bnQoKXtyZXR1cm4gcDYodGhpcy5faG9zdFROb2RlLHRoaXMuX2hvc3RMVmlldyl9Z2V0IGluamVjdG9yKCl7cmV0dXJuIG5ldyBJNCh0aGlzLl9ob3N0VE5vZGUsdGhpcy5faG9zdExWaWV3KX1nZXQgcGFyZW50SW5qZWN0b3IoKXtjb25zdCBnPUFjKHRoaXMuX2hvc3RUTm9kZSx0aGlzLl9o''@;'; + put 'put ''b3N0TFZpZXcpO2lmKEdjKGcpKXtjb25zdCBoPWRmKGcsdGhpcy5faG9zdExWaWV3KSx2PWN1KGcpO3JldHVybiBuZXcgSTQoaFsxXS5kYXRhW3YrOF0saCl9cmV0dXJuIG5ldyBJNChudWxsLHRoaXMuX2hvc3RMVmlldyl9Y2xlYXIoKXtmb3IoO3RoaXMubGVuZ3RoPjA7KXRoaXMucmVtb3Zl''@;'; + put 'put ''KHRoaXMubGVuZ3RoLTEpfWdldChnKXtjb25zdCBoPVlyKHRoaXMuX2xDb250YWluZXIpO3JldHVybiBudWxsIT09aCYmaFtnXXx8bnVsbH1nZXQgbGVuZ3RoKCl7cmV0dXJuIHRoaXMuX2xDb250YWluZXIubGVuZ3RoLTEwfWNyZWF0ZUVtYmVkZGVkVmlldyhnLGgsdil7bGV0IHksQzsibnVt''@;'; + put 'put ''YmVyIj09dHlwZW9mIHY/eT12Om51bGwhPXYmJih5PXYuaW5kZXgsQz12LmluamVjdG9yKTtjb25zdCBJPWcuY3JlYXRlRW1iZWRkZWRWaWV3KGh8fHt9LEMpO3JldHVybiB0aGlzLmluc2VydChJLHkpLEl9Y3JlYXRlQ29tcG9uZW50KGcsaCx2LHksQyl7Y29uc3QgST1nJiYhZnVuY3Rpb24g''@;'; + put 'put ''cm0oZCl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIGR9KGcpO2xldCBqO2lmKEkpaj1oO2Vsc2V7Y29uc3QgTmU9aHx8e307aj1OZS5pbmRleCx2PU5lLmluamVjdG9yLHk9TmUucHJvamVjdGFibGVOb2RlcyxDPU5lLmVudmlyb25tZW50SW5qZWN0b3J8fE5lLm5nTW9kdWxlUmVmfWNvbnN0''@;'; + put 'put ''IHVlPUk/ZzpuZXcgRm0obXMoZykpLF9lPXZ8fHRoaXMucGFyZW50SW5qZWN0b3I7aWYoIUMmJm51bGw9PXVlLm5nTW9kdWxlKXtjb25zdCBLZT0oST9fZTp0aGlzLnBhcmVudEluamVjdG9yKS5nZXQoRTMsbnVsbCk7S2UmJihDPUtlKX1jb25zdCBCZT11ZS5jcmVhdGUoX2UseSx2b2lkIDAs''@;'; + put 'put ''Qyk7cmV0dXJuIHRoaXMuaW5zZXJ0KEJlLmhvc3RWaWV3LGopLEJlfWluc2VydChnLGgpe2NvbnN0IHY9Zy5fbFZpZXcseT12WzFdO2lmKGZ1bmN0aW9uIERNKGQpe3JldHVybiBzZihkWzNdKX0odikpe2NvbnN0IEJlPXRoaXMuaW5kZXhPZihnKTtpZigtMSE9PUJlKXRoaXMuZGV0YWNoKEJl''@;'; + put 'put ''KTtlbHNle2NvbnN0IE5lPXZbM10sS2U9bmV3IHdpKE5lLE5lWzZdLE5lWzNdKTtLZS5kZXRhY2goS2UuaW5kZXhPZihnKSl9fWNvbnN0IEM9dGhpcy5fYWRqdXN0SW5kZXgoaCksST10aGlzLl9sQ29udGFpbmVyOyFmdW5jdGlvbiBIYihkLGcsaCx2KXtjb25zdCB5PTEwK3YsQz1oLmxlbmd0''@;'; + put 'put ''aDt2PjAmJihoW3ktMV1bNF09ZyksdjxDLTEwPyhnWzRdPWhbeV0sZmIoaCwxMCt2LGcpKTooaC5wdXNoKGcpLGdbNF09bnVsbCksZ1szXT1oO2NvbnN0IEk9Z1sxN107bnVsbCE9PUkmJmghPT1JJiZmdW5jdGlvbiBhRyhkLGcpe2NvbnN0IGg9ZFs5XTtnWzE2XSE9PWdbM11bM11bMTZdJiYo''@;'; + put 'put ''ZFsyXT0hMCksbnVsbD09PWg/ZFs5XT1bZ106aC5wdXNoKGcpfShJLGcpO2NvbnN0IGo9Z1sxOV07bnVsbCE9PWomJmouaW5zZXJ0VmlldyhkKSxnWzJdfD02NH0oeSx2LEksQyk7Y29uc3Qgaj1VYihDLEkpLHVlPXZbMTFdLF9lPUNtKHVlLElbN10pO3JldHVybiBudWxsIT09X2UmJmZ1bmN0''@;'; + put 'put ''aW9uIHdmKGQsZyxoLHYseSxDKXt2WzBdPXksdls2XT1nLGttKGQsdixoLDEseSxDKX0oeSxJWzZdLHVlLHYsX2UsaiksZy5hdHRhY2hUb1ZpZXdDb250YWluZXJSZWYoKSxmYihFaShJKSxDLGcpLGd9bW92ZShnLGgpe3JldHVybiB0aGlzLmluc2VydChnLGgpfWluZGV4T2YoZyl7Y29uc3Qg''@;'; + put 'put ''aD1Zcih0aGlzLl9sQ29udGFpbmVyKTtyZXR1cm4gbnVsbCE9PWg/aC5pbmRleE9mKGcpOi0xfXJlbW92ZShnKXtjb25zdCBoPXRoaXMuX2FkanVzdEluZGV4KGcsLTEpLHY9TmIodGhpcy5fbENvbnRhaW5lcixoKTt2JiYoa2QoRWkodGhpcy5fbENvbnRhaW5lciksaCksT0UodlsxXSx2KSl9''@;'; + put 'put ''ZGV0YWNoKGcpe2NvbnN0IGg9dGhpcy5fYWRqdXN0SW5kZXgoZywtMSksdj1OYih0aGlzLl9sQ29udGFpbmVyLGgpO3JldHVybiB2JiZudWxsIT1rZChFaSh0aGlzLl9sQ29udGFpbmVyKSxoKT9uZXcgTTYodik6bnVsbH1fYWRqdXN0SW5kZXgoZyxoPTApe3JldHVybiBudWxsPT1nP3RoaXMu''@;'; + put 'put ''bGVuZ3RoK2g6Z319O2Z1bmN0aW9uIFlyKGQpe3JldHVybiBkWzhdfWZ1bmN0aW9uIEVpKGQpe3JldHVybiBkWzhdfHwoZFs4XT1bXSl9ZnVuY3Rpb24gaGkoZCxnKXtsZXQgaDtjb25zdCB2PWdbZC5pbmRleF07aWYoc2YodikpaD12O2Vsc2V7bGV0IHk7aWYoOCZkLnR5cGUpeT1YMih2KTtl''@;'; + put 'put ''bHNle2NvbnN0IEM9Z1sxMV07eT1DLmNyZWF0ZUNvbW1lbnQoIiIpO2NvbnN0IEk9dmMoZCxnKTtONChDLENtKEMsSSkseSxmdW5jdGlvbiBHOShkLGcpe3JldHVybiBkLm5leHRTaWJsaW5nKGcpfShDLEkpLCExKX1nW2QuaW5kZXhdPWg9ZkEodixnLHksZCksUm0oZyxoKX1yZXR1cm4gbmV3''@;'; + put 'put ''IHdpKGgsZCxnKX1jbGFzcyB0MHtjb25zdHJ1Y3RvcihnKXt0aGlzLnF1ZXJ5TGlzdD1nLHRoaXMubWF0Y2hlcz1udWxsfWNsb25lKCl7cmV0dXJuIG5ldyB0MCh0aGlzLnF1ZXJ5TGlzdCl9c2V0RGlydHkoKXt0aGlzLnF1ZXJ5TGlzdC5zZXREaXJ0eSgpfX1jbGFzcyBpb3tjb25zdHJ1Y3Rv''@;'; + put 'put ''cihnPVtdKXt0aGlzLnF1ZXJpZXM9Z31jcmVhdGVFbWJlZGRlZFZpZXcoZyl7Y29uc3QgaD1nLnF1ZXJpZXM7aWYobnVsbCE9PWgpe2NvbnN0IHY9bnVsbCE9PWcuY29udGVudFF1ZXJpZXM/Zy5jb250ZW50UXVlcmllc1swXTpoLmxlbmd0aCx5PVtdO2ZvcihsZXQgQz0wO0M8djtDKyspe2Nv''@;'; + put 'put ''bnN0IEk9aC5nZXRCeUluZGV4KEMpO3kucHVzaCh0aGlzLnF1ZXJpZXNbSS5pbmRleEluRGVjbGFyYXRpb25WaWV3XS5jbG9uZSgpKX1yZXR1cm4gbmV3IGlvKHkpfXJldHVybiBudWxsfWluc2VydFZpZXcoZyl7dGhpcy5kaXJ0eVF1ZXJpZXNXaXRoTWF0Y2hlcyhnKX1kZXRhY2hWaWV3KGcp''@;'; + put 'put ''e3RoaXMuZGlydHlRdWVyaWVzV2l0aE1hdGNoZXMoZyl9ZGlydHlRdWVyaWVzV2l0aE1hdGNoZXMoZyl7Zm9yKGxldCBoPTA7aDx0aGlzLnF1ZXJpZXMubGVuZ3RoO2grKyludWxsIT09SXIoZyxoKS5tYXRjaGVzJiZ0aGlzLnF1ZXJpZXNbaF0uc2V0RGlydHkoKX19Y2xhc3Mgb2F7Y29uc3Ry''@;'; + put 'put ''dWN0b3IoZyxoLHY9bnVsbCl7dGhpcy5wcmVkaWNhdGU9Zyx0aGlzLmZsYWdzPWgsdGhpcy5yZWFkPXZ9fWNsYXNzICQwe2NvbnN0cnVjdG9yKGc9W10pe3RoaXMucXVlcmllcz1nfWVsZW1lbnRTdGFydChnLGgpe2ZvcihsZXQgdj0wO3Y8dGhpcy5xdWVyaWVzLmxlbmd0aDt2KyspdGhpcy5x''@;'; + put 'put ''dWVyaWVzW3ZdLmVsZW1lbnRTdGFydChnLGgpfWVsZW1lbnRFbmQoZyl7Zm9yKGxldCBoPTA7aDx0aGlzLnF1ZXJpZXMubGVuZ3RoO2grKyl0aGlzLnF1ZXJpZXNbaF0uZWxlbWVudEVuZChnKX1lbWJlZGRlZFRWaWV3KGcpe2xldCBoPW51bGw7Zm9yKGxldCB2PTA7djx0aGlzLmxlbmd0aDt2''@;'; + put 'put ''Kyspe2NvbnN0IHk9bnVsbCE9PWg/aC5sZW5ndGg6MCxDPXRoaXMuZ2V0QnlJbmRleCh2KS5lbWJlZGRlZFRWaWV3KGcseSk7QyYmKEMuaW5kZXhJbkRlY2xhcmF0aW9uVmlldz12LG51bGwhPT1oP2gucHVzaChDKTpoPVtDXSl9cmV0dXJuIG51bGwhPT1oP25ldyAkMChoKTpudWxsfXRlbXBs''@;'; + put 'put ''YXRlKGcsaCl7Zm9yKGxldCB2PTA7djx0aGlzLnF1ZXJpZXMubGVuZ3RoO3YrKyl0aGlzLnF1ZXJpZXNbdl0udGVtcGxhdGUoZyxoKX1nZXRCeUluZGV4KGcpe3JldHVybiB0aGlzLnF1ZXJpZXNbZ119Z2V0IGxlbmd0aCgpe3JldHVybiB0aGlzLnF1ZXJpZXMubGVuZ3RofXRyYWNrKGcpe3Ro''@;'; + put 'put ''aXMucXVlcmllcy5wdXNoKGcpfX1jbGFzcyBOYXtjb25zdHJ1Y3RvcihnLGg9LTEpe3RoaXMubWV0YWRhdGE9Zyx0aGlzLm1hdGNoZXM9bnVsbCx0aGlzLmluZGV4SW5EZWNsYXJhdGlvblZpZXc9LTEsdGhpcy5jcm9zc2VzTmdUZW1wbGF0ZT0hMSx0aGlzLl9hcHBsaWVzVG9OZXh0Tm9kZT0h''@;'; + put 'put ''MCx0aGlzLl9kZWNsYXJhdGlvbk5vZGVJbmRleD1ofWVsZW1lbnRTdGFydChnLGgpe3RoaXMuaXNBcHBseWluZ1RvTm9kZShoKSYmdGhpcy5tYXRjaFROb2RlKGcsaCl9ZWxlbWVudEVuZChnKXt0aGlzLl9kZWNsYXJhdGlvbk5vZGVJbmRleD09PWcuaW5kZXgmJih0aGlzLl9hcHBsaWVzVG9O''@;'; + put 'put ''ZXh0Tm9kZT0hMSl9dGVtcGxhdGUoZyxoKXt0aGlzLmVsZW1lbnRTdGFydChnLGgpfWVtYmVkZGVkVFZpZXcoZyxoKXtyZXR1cm4gdGhpcy5pc0FwcGx5aW5nVG9Ob2RlKGcpPyh0aGlzLmNyb3NzZXNOZ1RlbXBsYXRlPSEwLHRoaXMuYWRkTWF0Y2goLWcuaW5kZXgsaCksbmV3IE5hKHRoaXMu''@;'; + put 'put ''bWV0YWRhdGEpKTpudWxsfWlzQXBwbHlpbmdUb05vZGUoZyl7aWYodGhpcy5fYXBwbGllc1RvTmV4dE5vZGUmJjEhPSgxJnRoaXMubWV0YWRhdGEuZmxhZ3MpKXtjb25zdCBoPXRoaXMuX2RlY2xhcmF0aW9uTm9kZUluZGV4O2xldCB2PWcucGFyZW50O2Zvcig7bnVsbCE9PXYmJjgmdi50eXBl''@;'; + put 'put ''JiZ2LmluZGV4IT09aDspdj12LnBhcmVudDtyZXR1cm4gaD09PShudWxsIT09dj92LmluZGV4Oi0xKX1yZXR1cm4gdGhpcy5fYXBwbGllc1RvTmV4dE5vZGV9bWF0Y2hUTm9kZShnLGgpe2NvbnN0IHY9dGhpcy5tZXRhZGF0YS5wcmVkaWNhdGU7aWYoQXJyYXkuaXNBcnJheSh2KSlmb3IobGV0''@;'; + put 'put ''IHk9MDt5PHYubGVuZ3RoO3krKyl7Y29uc3QgQz12W3ldO3RoaXMubWF0Y2hUTm9kZVdpdGhSZWFkT3B0aW9uKGcsaCxqbyhoLEMpKSx0aGlzLm1hdGNoVE5vZGVXaXRoUmVhZE9wdGlvbihnLGgsSnUoaCxnLEMsITEsITEpKX1lbHNlIHY9PT1xcj80JmgudHlwZSYmdGhpcy5tYXRjaFROb2Rl''@;'; + put 'put ''V2l0aFJlYWRPcHRpb24oZyxoLC0xKTp0aGlzLm1hdGNoVE5vZGVXaXRoUmVhZE9wdGlvbihnLGgsSnUoaCxnLHYsITEsITEpKX1tYXRjaFROb2RlV2l0aFJlYWRPcHRpb24oZyxoLHYpe2lmKG51bGwhPT12KXtjb25zdCB5PXRoaXMubWV0YWRhdGEucmVhZDtpZihudWxsIT09eSlpZih5PT09''@;'; + put 'put ''Ym98fHk9PT1VaXx8eT09PXFyJiY0JmgudHlwZSl0aGlzLmFkZE1hdGNoKGguaW5kZXgsLTIpO2Vsc2V7Y29uc3QgQz1KdShoLGcseSwhMSwhMSk7bnVsbCE9PUMmJnRoaXMuYWRkTWF0Y2goaC5pbmRleCxDKX1lbHNlIHRoaXMuYWRkTWF0Y2goaC5pbmRleCx2KX19YWRkTWF0Y2goZyxoKXtu''@;'; + put 'put ''dWxsPT09dGhpcy5tYXRjaGVzP3RoaXMubWF0Y2hlcz1bZyxoXTp0aGlzLm1hdGNoZXMucHVzaChnLGgpfX1mdW5jdGlvbiBqbyhkLGcpe2NvbnN0IGg9ZC5sb2NhbE5hbWVzO2lmKG51bGwhPT1oKWZvcihsZXQgdj0wO3Y8aC5sZW5ndGg7dis9MilpZihoW3ZdPT09ZylyZXR1cm4gaFt2KzFd''@;'; + put 'put ''O3JldHVybiBudWxsfWZ1bmN0aW9uIGFvKGQsZyxoLHYpe3JldHVybi0xPT09aD9mdW5jdGlvbiB3YShkLGcpe3JldHVybiAxMSZkLnR5cGU/cDYoZCxnKTo0JmQudHlwZT92MChkLGcpOm51bGx9KGcsZCk6LTI9PT1oP2Z1bmN0aW9uIHgwKGQsZyxoKXtyZXR1cm4gaD09PWJvP3A2KGcsZCk6''@;'; + put 'put ''aD09PXFyP3YwKGcsZCk6aD09PVVpP2hpKGcsZCk6dm9pZCAwfShkLGcsdik6VDQoZCxkWzFdLGgsZyl9ZnVuY3Rpb24gaDAoZCxnLGgsdil7Y29uc3QgeT1nWzE5XS5xdWVyaWVzW3ZdO2lmKG51bGw9PT15Lm1hdGNoZXMpe2NvbnN0IEM9ZC5kYXRhLEk9aC5tYXRjaGVzLGo9W107Zm9yKGxl''@;'; + put 'put ''dCB1ZT0wO3VlPEkubGVuZ3RoO3VlKz0yKXtjb25zdCBfZT1JW3VlXTtqLnB1c2goX2U8MD9udWxsOmFvKGcsQ1tfZV0sSVt1ZSsxXSxoLm1ldGFkYXRhLnJlYWQpKX15Lm1hdGNoZXM9an1yZXR1cm4geS5tYXRjaGVzfWZ1bmN0aW9uIGpyKGQsZyxoLHYpe2NvbnN0IHk9ZC5xdWVyaWVzLmdl''@;'; + put 'put ''dEJ5SW5kZXgoaCksQz15Lm1hdGNoZXM7aWYobnVsbCE9PUMpe2NvbnN0IEk9aDAoZCxnLHksaCk7Zm9yKGxldCBqPTA7ajxDLmxlbmd0aDtqKz0yKXtjb25zdCB1ZT1DW2pdO2lmKHVlPjApdi5wdXNoKElbai8yXSk7ZWxzZXtjb25zdCBfZT1DW2orMV0sQmU9Z1stdWVdO2ZvcihsZXQgTmU9''@;'; + put 'put ''MTA7TmU8QmUubGVuZ3RoO05lKyspe2NvbnN0IEtlPUJlW05lXTtLZVsxN109PT1LZVszXSYmanIoS2VbMV0sS2UsX2Usdil9aWYobnVsbCE9PUJlWzldKXtjb25zdCBOZT1CZVs5XTtmb3IobGV0IEtlPTA7S2U8TmUubGVuZ3RoO0tlKyspe2NvbnN0IGR0PU5lW0tlXTtqcihkdFsxXSxkdCxf''@;'; + put 'put ''ZSx2KX19fX19cmV0dXJuIHZ9ZnVuY3Rpb24gSGkoZCl7Y29uc3QgZz1QdCgpLGg9ZmUoKSx2PW9iKCk7RG4odisxKTtjb25zdCB5PUlyKGgsdik7aWYoZC5kaXJ0eSYmS2coZyk9PT0oMj09KDImeS5tZXRhZGF0YS5mbGFncykpKXtpZihudWxsPT09eS5tYXRjaGVzKWQucmVzZXQoW10pO2Vs''@;'; + put 'put ''c2V7Y29uc3QgQz15LmNyb3NzZXNOZ1RlbXBsYXRlP2pyKGgsZyx2LFtdKTpoMChoLGcseSx2KTtkLnJlc2V0KEMsTzkpLGQubm90aWZ5T25DaGFuZ2VzKCl9cmV0dXJuITB9cmV0dXJuITF9ZnVuY3Rpb24gdm8oZCxnLGgpe2NvbnN0IHY9ZmUoKTt2LmZpcnN0Q3JlYXRlUGFzcyYmKHAyKHYs''@;'; + put 'put ''bmV3IG9hKGQsZyxoKSwtMSksMj09KDImZykmJih2LnN0YXRpY1ZpZXdRdWVyaWVzPSEwKSksTWModixQdCgpLGcpfWZ1bmN0aW9uIHhvKGQsZyxoLHYpe2NvbnN0IHk9ZmUoKTtpZih5LmZpcnN0Q3JlYXRlUGFzcyl7Y29uc3QgQz1YdCgpO3AyKHksbmV3IG9hKGcsaCx2KSxDLmluZGV4KSxm''@;'; + put 'put ''dW5jdGlvbiBycihkLGcpe2NvbnN0IGg9ZC5jb250ZW50UXVlcmllc3x8KGQuY29udGVudFF1ZXJpZXM9W10pO2chPT0oaC5sZW5ndGg/aFtoLmxlbmd0aC0xXTotMSkmJmgucHVzaChkLnF1ZXJpZXMubGVuZ3RoLTEsZyl9KHksZCksMj09KDImaCkmJih5LnN0YXRpY0NvbnRlbnRRdWVyaWVz''@;'; + put 'put ''PSEwKX1NYyh5LFB0KCksaCl9ZnVuY3Rpb24gJGkoKXtyZXR1cm4gZnVuY3Rpb24gbDIoZCxnKXtyZXR1cm4gZFsxOV0ucXVlcmllc1tnXS5xdWVyeUxpc3R9KFB0KCksb2IoKSl9ZnVuY3Rpb24gTWMoZCxnLGgpe2NvbnN0IHY9bmV3IHpyKDQ9PSg0JmgpKTt2XyhkLGcsdix2LmRlc3Ryb3kp''@;'; + put 'put ''LG51bGw9PT1nWzE5XSYmKGdbMTldPW5ldyBpbyksZ1sxOV0ucXVlcmllcy5wdXNoKG5ldyB0MCh2KSl9ZnVuY3Rpb24gcDIoZCxnLGgpe251bGw9PT1kLnF1ZXJpZXMmJihkLnF1ZXJpZXM9bmV3ICQwKSxkLnF1ZXJpZXMudHJhY2sobmV3IE5hKGcsaCkpfWZ1bmN0aW9uIElyKGQsZyl7cmV0''@;'; + put 'put ''dXJuIGQucXVlcmllcy5nZXRCeUluZGV4KGcpfWZ1bmN0aW9uIFpyKGQsZyl7cmV0dXJuIHYwKGQsZyl9ZnVuY3Rpb24gQUMoLi4uZCl7fWNvbnN0IHlDPW5ldyB6ZSgiQXBwbGljYXRpb24gSW5pdGlhbGl6ZXIiKTtsZXQgQVQ9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoKXt0aGlzLmFw''@;'; + put 'put ''cEluaXRzPWgsdGhpcy5yZXNvbHZlPUFDLHRoaXMucmVqZWN0PUFDLHRoaXMuaW5pdGlhbGl6ZWQ9ITEsdGhpcy5kb25lPSExLHRoaXMuZG9uZVByb21pc2U9bmV3IFByb21pc2UoKHYseSk9Pnt0aGlzLnJlc29sdmU9dix0aGlzLnJlamVjdD15fSl9cnVuSW5pdGlhbGl6ZXJzKCl7aWYodGhp''@;'; + put 'put ''cy5pbml0aWFsaXplZClyZXR1cm47Y29uc3QgaD1bXSx2PSgpPT57dGhpcy5kb25lPSEwLHRoaXMucmVzb2x2ZSgpfTtpZih0aGlzLmFwcEluaXRzKWZvcihsZXQgeT0wO3k8dGhpcy5hcHBJbml0cy5sZW5ndGg7eSsrKXtjb25zdCBDPXRoaXMuYXBwSW5pdHNbeV0oKTtpZihWbShDKSloLnB1''@;'; + put 'put ''c2goQyk7ZWxzZSBpZihIXyhDKSl7Y29uc3QgST1uZXcgUHJvbWlzZSgoaix1ZSk9PntDLnN1YnNjcmliZSh7Y29tcGxldGU6aixlcnJvcjp1ZX0pfSk7aC5wdXNoKEkpfX1Qcm9taXNlLmFsbChoKS50aGVuKCgpPT57digpfSkuY2F0Y2goeT0+e3RoaXMucmVqZWN0KHkpfSksMD09PWgubGVu''@;'; + put 'put ''Z3RoJiZ2KCksdGhpcy5pbml0aWFsaXplZD0hMH19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoQ2koeUMsOCkpfSxkLlx1MDI3NXByb3Y9QWkoe3Rva2VuOmQsZmFjdG9yeTpkLlx1MDI3NWZhYyxwcm92aWRlZEluOiJyb290In0pLGR9KSgpO2NvbnN0''@;'; + put 'put ''IHdDPW5ldyB6ZSgiQXBwSWQiLHtwcm92aWRlZEluOiJyb290IixmYWN0b3J5OmZ1bmN0aW9uIHlUKCl7cmV0dXJuYCR7d1QoKX0ke3dUKCl9JHt3VCgpfWB9fSk7ZnVuY3Rpb24gd1QoKXtyZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZSg5NytNYXRoLmZsb29yKDI1Kk1hdGgucmFuZG9tKCkp''@;'; + put 'put ''KX1jb25zdCBRUD1uZXcgemUoIlBsYXRmb3JtIEluaXRpYWxpemVyIiksTDI9bmV3IHplKCJQbGF0Zm9ybSBJRCIse3Byb3ZpZGVkSW46InBsYXRmb3JtIixmYWN0b3J5OigpPT4idW5rbm93biJ9KSxGNj1uZXcgemUoImFwcEJvb3RzdHJhcExpc3RlbmVyIiksSUc9bmV3IHplKCJBbmltYXRp''@;'; + put 'put ''b25Nb2R1bGVUeXBlIik7bGV0IHJyZT0oKCk9PntjbGFzcyBke2xvZyhoKXtjb25zb2xlLmxvZyhoKX13YXJuKGgpe2NvbnNvbGUud2FybihoKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5''@;'; + put 'put ''OmQuXHUwMjc1ZmFjLHByb3ZpZGVkSW46InBsYXRmb3JtIn0pLGR9KSgpO2NvbnN0IFlkPW5ldyB6ZSgiTG9jYWxlSWQiLHtwcm92aWRlZEluOiJyb290IixmYWN0b3J5OigpPT5oMihZZCxqMC5PcHRpb25hbHxqMC5Ta2lwU2VsZil8fGZ1bmN0aW9uIGlyZSgpe3JldHVybiJ1bmRlZmluZWQi''@;'; + put 'put ''IT10eXBlb2YgJGxvY2FsaXplJiYkbG9jYWxpemUubG9jYWxlfHxTNX0oKX0pO2NsYXNzIG9yZXtjb25zdHJ1Y3RvcihnLGgpe3RoaXMubmdNb2R1bGVGYWN0b3J5PWcsdGhpcy5jb21wb25lbnRGYWN0b3JpZXM9aH19bGV0IGJUPSgoKT0+e2NsYXNzIGR7Y29tcGlsZU1vZHVsZVN5bmMoaCl7''@;'; + put 'put ''cmV0dXJuIG5ldyBlNyhoKX1jb21waWxlTW9kdWxlQXN5bmMoaCl7cmV0dXJuIFByb21pc2UucmVzb2x2ZSh0aGlzLmNvbXBpbGVNb2R1bGVTeW5jKGgpKX1jb21waWxlTW9kdWxlQW5kQWxsQ29tcG9uZW50c1N5bmMoaCl7Y29uc3Qgdj10aGlzLmNvbXBpbGVNb2R1bGVTeW5jKGgpLEM9eWYo''@;'; + put 'put ''X3MoaCkuZGVjbGFyYXRpb25zKS5yZWR1Y2UoKEksaik9Pntjb25zdCB1ZT1tcyhqKTtyZXR1cm4gdWUmJkkucHVzaChuZXcgRm0odWUpKSxJfSxbXSk7cmV0dXJuIG5ldyBvcmUodixDKX1jb21waWxlTW9kdWxlQW5kQWxsQ29tcG9uZW50c0FzeW5jKGgpe3JldHVybiBQcm9taXNlLnJlc29s''@;'; + put 'put ''dmUodGhpcy5jb21waWxlTW9kdWxlQW5kQWxsQ29tcG9uZW50c1N5bmMoaCkpfWNsZWFyQ2FjaGUoKXt9Y2xlYXJDYWNoZUZvcihoKXt9Z2V0TW9kdWxlSWQoaCl7fX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVwcm92PUFpKHt0b2tl''@;'; + put 'put ''bjpkLGZhY3Rvcnk6ZC5cdTAyNzVmYWMscHJvdmlkZWRJbjoicm9vdCJ9KSxkfSkoKTtjb25zdCBLUD0oKCk9PlByb21pc2UucmVzb2x2ZSgwKSkoKTtmdW5jdGlvbiBfVChkKXsidW5kZWZpbmVkIj09dHlwZW9mIFpvbmU/S1AudGhlbigoKT0+e2QmJmQuYXBwbHkobnVsbCxudWxsKX0pOlpv''@;'; + put 'put ''bmUuY3VycmVudC5zY2hlZHVsZU1pY3JvVGFzaygic2NoZWR1bGVNaWNyb3Rhc2siLGQpfWNsYXNzIF9se2NvbnN0cnVjdG9yKHtlbmFibGVMb25nU3RhY2tUcmFjZTpnPSExLHNob3VsZENvYWxlc2NlRXZlbnRDaGFuZ2VEZXRlY3Rpb246aD0hMSxzaG91bGRDb2FsZXNjZVJ1bkNoYW5nZURl''@;'; + put 'put ''dGVjdGlvbjp2PSExfSl7aWYodGhpcy5oYXNQZW5kaW5nTWFjcm90YXNrcz0hMSx0aGlzLmhhc1BlbmRpbmdNaWNyb3Rhc2tzPSExLHRoaXMuaXNTdGFibGU9ITAsdGhpcy5vblVuc3RhYmxlPW5ldyBhcighMSksdGhpcy5vbk1pY3JvdGFza0VtcHR5PW5ldyBhcighMSksdGhpcy5vblN0YWJs''@;'; + put 'put ''ZT1uZXcgYXIoITEpLHRoaXMub25FcnJvcj1uZXcgYXIoITEpLCJ1bmRlZmluZWQiPT10eXBlb2YgWm9uZSl0aHJvdyBuZXcgZW4oOTA4LCExKTtab25lLmFzc2VydFpvbmVQYXRjaGVkKCk7Y29uc3QgeT10aGlzO2lmKHkuX25lc3Rpbmc9MCx5Ll9vdXRlcj15Ll9pbm5lcj1ab25lLmN1cnJl''@;'; + put 'put ''bnQsWm9uZS5Bc3luY1N0YWNrVGFnZ2luZ1pvbmVTcGVjKXtjb25zdCBDPVpvbmUuQXN5bmNTdGFja1RhZ2dpbmdab25lU3BlYzt5Ll9pbm5lcj15Ll9pbm5lci5mb3JrKG5ldyBDKCJBbmd1bGFyIikpfVpvbmUuVGFza1RyYWNraW5nWm9uZVNwZWMmJih5Ll9pbm5lcj15Ll9pbm5lci5mb3Jr''@;'; + put 'put ''KG5ldyBab25lLlRhc2tUcmFja2luZ1pvbmVTcGVjKSksZyYmWm9uZS5sb25nU3RhY2tUcmFjZVpvbmVTcGVjJiYoeS5faW5uZXI9eS5faW5uZXIuZm9yayhab25lLmxvbmdTdGFja1RyYWNlWm9uZVNwZWMpKSx5LnNob3VsZENvYWxlc2NlRXZlbnRDaGFuZ2VEZXRlY3Rpb249IXYmJmgseS5z''@;'; + put 'put ''aG91bGRDb2FsZXNjZVJ1bkNoYW5nZURldGVjdGlvbj12LHkubGFzdFJlcXVlc3RBbmltYXRpb25GcmFtZUlkPS0xLHkubmF0aXZlUmVxdWVzdEFuaW1hdGlvbkZyYW1lPWZ1bmN0aW9uIFJHKCl7bGV0IGQ9UGwucmVxdWVzdEFuaW1hdGlvbkZyYW1lLGc9UGwuY2FuY2VsQW5pbWF0aW9uRnJh''@;'; + put 'put ''bWU7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBab25lJiZkJiZnKXtjb25zdCBoPWRbWm9uZS5fX3N5bWJvbF9fKCJPcmlnaW5hbERlbGVnYXRlIildO2gmJihkPWgpO2NvbnN0IHY9Z1tab25lLl9fc3ltYm9sX18oIk9yaWdpbmFsRGVsZWdhdGUiKV07diYmKGc9dil9cmV0dXJue25hdGl2ZVJl''@;'; + put 'put ''cXVlc3RBbmltYXRpb25GcmFtZTpkLG5hdGl2ZUNhbmNlbEFuaW1hdGlvbkZyYW1lOmd9fSgpLm5hdGl2ZVJlcXVlc3RBbmltYXRpb25GcmFtZSxmdW5jdGlvbiBQRyhkKXtjb25zdCBnPSgpPT57IWZ1bmN0aW9uIEJHKGQpe2QuaXNDaGVja1N0YWJsZVJ1bm5pbmd8fC0xIT09ZC5sYXN0UmVx''@;'; + put 'put ''dWVzdEFuaW1hdGlvbkZyYW1lSWR8fChkLmxhc3RSZXF1ZXN0QW5pbWF0aW9uRnJhbWVJZD1kLm5hdGl2ZVJlcXVlc3RBbmltYXRpb25GcmFtZS5jYWxsKFBsLCgpPT57ZC5mYWtlVG9wRXZlbnRUYXNrfHwoZC5mYWtlVG9wRXZlbnRUYXNrPVpvbmUucm9vdC5zY2hlZHVsZUV2ZW50VGFzaygi''@;'; + put 'put ''ZmFrZVRvcEV2ZW50VGFzayIsKCk9PntkLmxhc3RSZXF1ZXN0QW5pbWF0aW9uRnJhbWVJZD0tMSxxUChkKSxkLmlzQ2hlY2tTdGFibGVSdW5uaW5nPSEwLCRQKGQpLGQuaXNDaGVja1N0YWJsZVJ1bm5pbmc9ITF9LHZvaWQgMCwoKT0+e30sKCk9Pnt9KSksZC5mYWtlVG9wRXZlbnRUYXNrLmlu''@;'; + put 'put ''dm9rZSgpfSkscVAoZCkpfShkKX07ZC5faW5uZXI9ZC5faW5uZXIuZm9yayh7bmFtZToiYW5ndWxhciIscHJvcGVydGllczp7aXNBbmd1bGFyWm9uZTohMH0sb25JbnZva2VUYXNrOihoLHYseSxDLEksaik9Pnt0cnl7cmV0dXJuIENUKGQpLGguaW52b2tlVGFzayh5LEMsSSxqKX1maW5hbGx5''@;'; + put 'put ''eyhkLnNob3VsZENvYWxlc2NlRXZlbnRDaGFuZ2VEZXRlY3Rpb24mJiJldmVudFRhc2siPT09Qy50eXBlfHxkLnNob3VsZENvYWxlc2NlUnVuQ2hhbmdlRGV0ZWN0aW9uKSYmZygpLF9DKGQpfX0sb25JbnZva2U6KGgsdix5LEMsSSxqLHVlKT0+e3RyeXtyZXR1cm4gQ1QoZCksaC5pbnZva2Uo''@;'; + put 'put ''eSxDLEksaix1ZSl9ZmluYWxseXtkLnNob3VsZENvYWxlc2NlUnVuQ2hhbmdlRGV0ZWN0aW9uJiZnKCksX0MoZCl9fSxvbkhhc1Rhc2s6KGgsdix5LEMpPT57aC5oYXNUYXNrKHksQyksdj09PXkmJigibWljcm9UYXNrIj09Qy5jaGFuZ2U/KGQuX2hhc1BlbmRpbmdNaWNyb3Rhc2tzPUMubWlj''@;'; + put 'put ''cm9UYXNrLHFQKGQpLCRQKGQpKToibWFjcm9UYXNrIj09Qy5jaGFuZ2UmJihkLmhhc1BlbmRpbmdNYWNyb3Rhc2tzPUMubWFjcm9UYXNrKSl9LG9uSGFuZGxlRXJyb3I6KGgsdix5LEMpPT4oaC5oYW5kbGVFcnJvcih5LEMpLGQucnVuT3V0c2lkZUFuZ3VsYXIoKCk9PmQub25FcnJvci5lbWl0''@;'; + put 'put ''KEMpKSwhMSl9KX0oeSl9c3RhdGljIGlzSW5Bbmd1bGFyWm9uZSgpe3JldHVybiJ1bmRlZmluZWQiIT10eXBlb2YgWm9uZSYmITA9PT1ab25lLmN1cnJlbnQuZ2V0KCJpc0FuZ3VsYXJab25lIil9c3RhdGljIGFzc2VydEluQW5ndWxhclpvbmUoKXtpZighX2wuaXNJbkFuZ3VsYXJab25lKCkp''@;'; + put 'put ''dGhyb3cgbmV3IGVuKDkwOSwhMSl9c3RhdGljIGFzc2VydE5vdEluQW5ndWxhclpvbmUoKXtpZihfbC5pc0luQW5ndWxhclpvbmUoKSl0aHJvdyBuZXcgZW4oOTA5LCExKX1ydW4oZyxoLHYpe3JldHVybiB0aGlzLl9pbm5lci5ydW4oZyxoLHYpfXJ1blRhc2soZyxoLHYseSl7Y29uc3QgQz10''@;'; + put 'put ''aGlzLl9pbm5lcixJPUMuc2NoZWR1bGVFdmVudFRhc2soIk5nWm9uZUV2ZW50OiAiK3ksZyxzcmUsQUMsQUMpO3RyeXtyZXR1cm4gQy5ydW5UYXNrKEksaCx2KX1maW5hbGx5e0MuY2FuY2VsVGFzayhJKX19cnVuR3VhcmRlZChnLGgsdil7cmV0dXJuIHRoaXMuX2lubmVyLnJ1bkd1YXJkZWQo''@;'; + put 'put ''ZyxoLHYpfXJ1bk91dHNpZGVBbmd1bGFyKGcpe3JldHVybiB0aGlzLl9vdXRlci5ydW4oZyl9fWNvbnN0IHNyZT17fTtmdW5jdGlvbiAkUChkKXtpZigwPT1kLl9uZXN0aW5nJiYhZC5oYXNQZW5kaW5nTWljcm90YXNrcyYmIWQuaXNTdGFibGUpdHJ5e2QuX25lc3RpbmcrKyxkLm9uTWljcm90''@;'; + put 'put ''YXNrRW1wdHkuZW1pdChudWxsKX1maW5hbGx5e2lmKGQuX25lc3RpbmctLSwhZC5oYXNQZW5kaW5nTWljcm90YXNrcyl0cnl7ZC5ydW5PdXRzaWRlQW5ndWxhcigoKT0+ZC5vblN0YWJsZS5lbWl0KG51bGwpKX1maW5hbGx5e2QuaXNTdGFibGU9ITB9fX1mdW5jdGlvbiBxUChkKXtkLmhhc1Bl''@;'; + put 'put ''bmRpbmdNaWNyb3Rhc2tzPSEhKGQuX2hhc1BlbmRpbmdNaWNyb3Rhc2tzfHwoZC5zaG91bGRDb2FsZXNjZUV2ZW50Q2hhbmdlRGV0ZWN0aW9ufHxkLnNob3VsZENvYWxlc2NlUnVuQ2hhbmdlRGV0ZWN0aW9uKSYmLTEhPT1kLmxhc3RSZXF1ZXN0QW5pbWF0aW9uRnJhbWVJZCl9ZnVuY3Rpb24g''@;'; + put 'put ''Q1QoZCl7ZC5fbmVzdGluZysrLGQuaXNTdGFibGUmJihkLmlzU3RhYmxlPSExLGQub25VbnN0YWJsZS5lbWl0KG51bGwpKX1mdW5jdGlvbiBfQyhkKXtkLl9uZXN0aW5nLS0sJFAoZCl9Y2xhc3MgRkd7Y29uc3RydWN0b3IoKXt0aGlzLmhhc1BlbmRpbmdNaWNyb3Rhc2tzPSExLHRoaXMuaGFz''@;'; + put 'put ''UGVuZGluZ01hY3JvdGFza3M9ITEsdGhpcy5pc1N0YWJsZT0hMCx0aGlzLm9uVW5zdGFibGU9bmV3IGFyLHRoaXMub25NaWNyb3Rhc2tFbXB0eT1uZXcgYXIsdGhpcy5vblN0YWJsZT1uZXcgYXIsdGhpcy5vbkVycm9yPW5ldyBhcn1ydW4oZyxoLHYpe3JldHVybiBnLmFwcGx5KGgsdil9cnVu''@;'; + put 'put ''R3VhcmRlZChnLGgsdil7cmV0dXJuIGcuYXBwbHkoaCx2KX1ydW5PdXRzaWRlQW5ndWxhcihnKXtyZXR1cm4gZygpfXJ1blRhc2soZyxoLHYseSl7cmV0dXJuIGcuYXBwbHkoaCx2KX19Y29uc3Qga1Q9bmV3IHplKCIiKSx6aD1uZXcgemUoIiIpO2xldCBDQyxTVD0oKCk9PntjbGFzcyBke2Nv''@;'; + put 'put ''bnN0cnVjdG9yKGgsdix5KXt0aGlzLl9uZ1pvbmU9aCx0aGlzLnJlZ2lzdHJ5PXYsdGhpcy5fcGVuZGluZ0NvdW50PTAsdGhpcy5faXNab25lU3RhYmxlPSEwLHRoaXMuX2RpZFdvcms9ITEsdGhpcy5fY2FsbGJhY2tzPVtdLHRoaXMudGFza1RyYWNraW5nWm9uZT1udWxsLENDfHwoZnVuY3Rp''@;'; + put 'put ''b24gdXJlKGQpe0NDPWR9KHkpLHkuYWRkVG9XaW5kb3codikpLHRoaXMuX3dhdGNoQW5ndWxhckV2ZW50cygpLGgucnVuKCgpPT57dGhpcy50YXNrVHJhY2tpbmdab25lPSJ1bmRlZmluZWQiPT10eXBlb2YgWm9uZT9udWxsOlpvbmUuY3VycmVudC5nZXQoIlRhc2tUcmFja2luZ1pvbmUiKX0p''@;'; + put 'put ''fV93YXRjaEFuZ3VsYXJFdmVudHMoKXt0aGlzLl9uZ1pvbmUub25VbnN0YWJsZS5zdWJzY3JpYmUoe25leHQ6KCk9Pnt0aGlzLl9kaWRXb3JrPSEwLHRoaXMuX2lzWm9uZVN0YWJsZT0hMX19KSx0aGlzLl9uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCk9Pnt0aGlzLl9uZ1pvbmUub25TdGFi''@;'; + put 'put ''bGUuc3Vic2NyaWJlKHtuZXh0OigpPT57X2wuYXNzZXJ0Tm90SW5Bbmd1bGFyWm9uZSgpLF9UKCgpPT57dGhpcy5faXNab25lU3RhYmxlPSEwLHRoaXMuX3J1bkNhbGxiYWNrc0lmUmVhZHkoKX0pfX0pfSl9aW5jcmVhc2VQZW5kaW5nUmVxdWVzdENvdW50KCl7cmV0dXJuIHRoaXMuX3BlbmRp''@;'; + put 'put ''bmdDb3VudCs9MSx0aGlzLl9kaWRXb3JrPSEwLHRoaXMuX3BlbmRpbmdDb3VudH1kZWNyZWFzZVBlbmRpbmdSZXF1ZXN0Q291bnQoKXtpZih0aGlzLl9wZW5kaW5nQ291bnQtPTEsdGhpcy5fcGVuZGluZ0NvdW50PDApdGhyb3cgbmV3IEVycm9yKCJwZW5kaW5nIGFzeW5jIHJlcXVlc3RzIGJl''@;'; + put 'put ''bG93IHplcm8iKTtyZXR1cm4gdGhpcy5fcnVuQ2FsbGJhY2tzSWZSZWFkeSgpLHRoaXMuX3BlbmRpbmdDb3VudH1pc1N0YWJsZSgpe3JldHVybiB0aGlzLl9pc1pvbmVTdGFibGUmJjA9PT10aGlzLl9wZW5kaW5nQ291bnQmJiF0aGlzLl9uZ1pvbmUuaGFzUGVuZGluZ01hY3JvdGFza3N9X3J1''@;'; + put 'put ''bkNhbGxiYWNrc0lmUmVhZHkoKXtpZih0aGlzLmlzU3RhYmxlKCkpX1QoKCk9Pntmb3IoOzAhPT10aGlzLl9jYWxsYmFja3MubGVuZ3RoOyl7bGV0IGg9dGhpcy5fY2FsbGJhY2tzLnBvcCgpO2NsZWFyVGltZW91dChoLnRpbWVvdXRJZCksaC5kb25lQ2IodGhpcy5fZGlkV29yayl9dGhpcy5f''@;'; + put 'put ''ZGlkV29yaz0hMX0pO2Vsc2V7bGV0IGg9dGhpcy5nZXRQZW5kaW5nVGFza3MoKTt0aGlzLl9jYWxsYmFja3M9dGhpcy5fY2FsbGJhY2tzLmZpbHRlcih2PT4hdi51cGRhdGVDYnx8IXYudXBkYXRlQ2IoaCl8fChjbGVhclRpbWVvdXQodi50aW1lb3V0SWQpLCExKSksdGhpcy5fZGlkV29yaz0h''@;'; + put 'put ''MH19Z2V0UGVuZGluZ1Rhc2tzKCl7cmV0dXJuIHRoaXMudGFza1RyYWNraW5nWm9uZT90aGlzLnRhc2tUcmFja2luZ1pvbmUubWFjcm9UYXNrcy5tYXAoaD0+KHtzb3VyY2U6aC5zb3VyY2UsY3JlYXRpb25Mb2NhdGlvbjpoLmNyZWF0aW9uTG9jYXRpb24sZGF0YTpoLmRhdGF9KSk6W119YWRk''@;'; + put 'put ''Q2FsbGJhY2soaCx2LHkpe2xldCBDPS0xO3YmJnY+MCYmKEM9c2V0VGltZW91dCgoKT0+e3RoaXMuX2NhbGxiYWNrcz10aGlzLl9jYWxsYmFja3MuZmlsdGVyKEk9PkkudGltZW91dElkIT09QyksaCh0aGlzLl9kaWRXb3JrLHRoaXMuZ2V0UGVuZGluZ1Rhc2tzKCkpfSx2KSksdGhpcy5fY2Fs''@;'; + put 'put ''bGJhY2tzLnB1c2goe2RvbmVDYjpoLHRpbWVvdXRJZDpDLHVwZGF0ZUNiOnl9KX13aGVuU3RhYmxlKGgsdix5KXtpZih5JiYhdGhpcy50YXNrVHJhY2tpbmdab25lKXRocm93IG5ldyBFcnJvcignVGFzayB0cmFja2luZyB6b25lIGlzIHJlcXVpcmVkIHdoZW4gcGFzc2luZyBhbiB1cGRhdGUg''@;'; + put 'put ''Y2FsbGJhY2sgdG8gd2hlblN0YWJsZSgpLiBJcyAiem9uZS5qcy9wbHVnaW5zL3Rhc2stdHJhY2tpbmciIGxvYWRlZD8nKTt0aGlzLmFkZENhbGxiYWNrKGgsdix5KSx0aGlzLl9ydW5DYWxsYmFja3NJZlJlYWR5KCl9Z2V0UGVuZGluZ1JlcXVlc3RDb3VudCgpe3JldHVybiB0aGlzLl9wZW5k''@;'; + put 'put ''aW5nQ291bnR9cmVnaXN0ZXJBcHBsaWNhdGlvbihoKXt0aGlzLnJlZ2lzdHJ5LnJlZ2lzdGVyQXBwbGljYXRpb24oaCx0aGlzKX11bnJlZ2lzdGVyQXBwbGljYXRpb24oaCl7dGhpcy5yZWdpc3RyeS51bnJlZ2lzdGVyQXBwbGljYXRpb24oaCl9ZmluZFByb3ZpZGVycyhoLHYseSl7cmV0dXJu''@;'; + put 'put ''W119fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKENpKF9sKSxDaShlRiksQ2koemgpKX0sZC5cdTAyNzVwcm92PUFpKHt0b2tlbjpkLGZhY3Rvcnk6ZC5cdTAyNzVmYWN9KSxkfSkoKSxlRj0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKCl7dGhpcy5f''@;'; + put 'put ''YXBwbGljYXRpb25zPW5ldyBNYXB9cmVnaXN0ZXJBcHBsaWNhdGlvbihoLHYpe3RoaXMuX2FwcGxpY2F0aW9ucy5zZXQoaCx2KX11bnJlZ2lzdGVyQXBwbGljYXRpb24oaCl7dGhpcy5fYXBwbGljYXRpb25zLmRlbGV0ZShoKX11bnJlZ2lzdGVyQWxsQXBwbGljYXRpb25zKCl7dGhpcy5fYXBw''@;'; + put 'put ''bGljYXRpb25zLmNsZWFyKCl9Z2V0VGVzdGFiaWxpdHkoaCl7cmV0dXJuIHRoaXMuX2FwcGxpY2F0aW9ucy5nZXQoaCl8fG51bGx9Z2V0QWxsVGVzdGFiaWxpdGllcygpe3JldHVybiBBcnJheS5mcm9tKHRoaXMuX2FwcGxpY2F0aW9ucy52YWx1ZXMoKSl9Z2V0QWxsUm9vdEVsZW1lbnRzKCl7''@;'; + put 'put ''cmV0dXJuIEFycmF5LmZyb20odGhpcy5fYXBwbGljYXRpb25zLmtleXMoKSl9ZmluZFRlc3RhYmlsaXR5SW5UcmVlKGgsdj0hMCl7dmFyIHk7cmV0dXJuIG51bGwhPT0oeT1udWxsPT1DQz92b2lkIDA6Q0MuZmluZFRlc3RhYmlsaXR5SW5UcmVlKHRoaXMsaCx2KSkmJnZvaWQgMCE9PXk/eTpu''@;'; + put 'put ''dWxsfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVwcm92PUFpKHt0b2tlbjpkLGZhY3Rvcnk6ZC5cdTAyNzVmYWMscHJvdmlkZWRJbjoicGxhdGZvcm0ifSksZH0pKCkscTQ9bnVsbDtjb25zdCB0Rj1uZXcgemUoIkFsbG93TXVsdGlw''@;'; + put 'put ''bGVUb2tlbiIpLE1UPW5ldyB6ZSgiUGxhdGZvcm1EZXN0cm95TGlzdGVuZXJzIik7Y2xhc3MgTkd7Y29uc3RydWN0b3IoZyxoKXt0aGlzLm5hbWU9Zyx0aGlzLnRva2VuPWh9fWZ1bmN0aW9uIHJGKGQsZyxoPVtdKXtjb25zdCB2PWBQbGF0Zm9ybTogJHtnfWAseT1uZXcgemUodik7cmV0dXJu''@;'; + put 'put ''KEM9W10pPT57bGV0IEk9b0YoKTtpZighSXx8SS5pbmplY3Rvci5nZXQodEYsITEpKXtjb25zdCBqPVsuLi5oLC4uLkMse3Byb3ZpZGU6eSx1c2VWYWx1ZTohMH1dO2Q/ZChqKTpmdW5jdGlvbiBjcmUoZCl7aWYocTQmJiFxNC5nZXQodEYsITEpKXRocm93IG5ldyBlbig0MDAsITEpO3E0PWQ7''@;'; + put 'put ''Y29uc3QgZz1kLmdldChPcik7KGZ1bmN0aW9uIFZHKGQpe2NvbnN0IGc9ZC5nZXQoUVAsbnVsbCk7ZyYmZy5mb3JFYWNoKGg9PmgoKSl9KShkKX0oZnVuY3Rpb24gakcoZD1bXSxnKXtyZXR1cm4ga3MuY3JlYXRlKHtuYW1lOmcscHJvdmlkZXJzOlt7cHJvdmlkZTp2bSx1c2VWYWx1ZToicGxh''@;'; + put 'put ''dGZvcm0ifSx7cHJvdmlkZTpNVCx1c2VWYWx1ZTpuZXcgU2V0KFsoKT0+cTQ9bnVsbF0pfSwuLi5kXX0pfShqLHYpKX1yZXR1cm4gZnVuY3Rpb24gaUYoZCl7Y29uc3QgZz1vRigpO2lmKCFnKXRocm93IG5ldyBlbig0MDEsITEpO3JldHVybiBnfSgpfX1mdW5jdGlvbiBvRigpe3ZhciBkO3Jl''@;'; + put 'put ''dHVybiBudWxsIT09KGQ9bnVsbD09cTQ/dm9pZCAwOnE0LmdldChPcikpJiZ2b2lkIDAhPT1kP2Q6bnVsbH1sZXQgT3I9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoKXt0aGlzLl9pbmplY3Rvcj1oLHRoaXMuX21vZHVsZXM9W10sdGhpcy5fZGVzdHJveUxpc3RlbmVycz1bXSx0aGlzLl9k''@;'; + put 'put ''ZXN0cm95ZWQ9ITF9Ym9vdHN0cmFwTW9kdWxlRmFjdG9yeShoLHYpe2NvbnN0IHk9ZnVuY3Rpb24gYUYoZCxnKXtsZXQgaDtyZXR1cm4gaD0ibm9vcCI9PT1kP25ldyBGRzooInpvbmUuanMiPT09ZD92b2lkIDA6ZCl8fG5ldyBfbChnKSxofShudWxsPT12P3ZvaWQgMDp2Lm5nWm9uZSxmdW5j''@;'; + put 'put ''dGlvbiBacyhkKXtyZXR1cm57ZW5hYmxlTG9uZ1N0YWNrVHJhY2U6ITEsc2hvdWxkQ29hbGVzY2VFdmVudENoYW5nZURldGVjdGlvbjohKCFkfHwhZC5uZ1pvbmVFdmVudENvYWxlc2NpbmcpfHwhMSxzaG91bGRDb2FsZXNjZVJ1bkNoYW5nZURldGVjdGlvbjohKCFkfHwhZC5uZ1pvbmVSdW5D''@;'; + put 'put ''b2FsZXNjaW5nKXx8ITF9fSh2KSksQz1be3Byb3ZpZGU6X2wsdXNlVmFsdWU6eX1dO3JldHVybiB5LnJ1bigoKT0+e2NvbnN0IEk9a3MuY3JlYXRlKHtwcm92aWRlcnM6QyxwYXJlbnQ6dGhpcy5pbmplY3RvcixuYW1lOmgubW9kdWxlVHlwZS5uYW1lfSksaj1oLmNyZWF0ZShJKSx1ZT1qLmlu''@;'; + put 'put ''amVjdG9yLmdldCh2NixudWxsKTtpZighdWUpdGhyb3cgbmV3IGVuKDQwMiwhMSk7cmV0dXJuIHkucnVuT3V0c2lkZUFuZ3VsYXIoKCk9Pntjb25zdCBfZT15Lm9uRXJyb3Iuc3Vic2NyaWJlKHtuZXh0OkJlPT57dWUuaGFuZGxlRXJyb3IoQmUpfX0pO2oub25EZXN0cm95KCgpPT57RVQodGhp''@;'; + put 'put ''cy5fbW9kdWxlcyxqKSxfZS51bnN1YnNjcmliZSgpfSl9KSxmdW5jdGlvbiBuaChkLGcsaCl7dHJ5e2NvbnN0IHY9aCgpO3JldHVybiBWbSh2KT92LmNhdGNoKHk9Pnt0aHJvdyBnLnJ1bk91dHNpZGVBbmd1bGFyKCgpPT5kLmhhbmRsZUVycm9yKHkpKSx5fSk6dn1jYXRjaCh2KXt0aHJvdyBn''@;'; + put 'put ''LnJ1bk91dHNpZGVBbmd1bGFyKCgpPT5kLmhhbmRsZUVycm9yKHYpKSx2fX0odWUseSwoKT0+e2NvbnN0IF9lPWouaW5qZWN0b3IuZ2V0KEFUKTtyZXR1cm4gX2UucnVuSW5pdGlhbGl6ZXJzKCksX2UuZG9uZVByb21pc2UudGhlbigoKT0+KGZ1bmN0aW9uIGlUKGQpe2xsKGQsIkV4cGVjdGVk''@;'; + put 'put ''IGxvY2FsZUlkIHRvIGJlIGRlZmluZWQiKSwic3RyaW5nIj09dHlwZW9mIGQmJihNNT1kLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvXy9nLCItIikpfShqLmluamVjdG9yLmdldChZZCxTNSl8fFM1KSx0aGlzLl9tb2R1bGVEb0Jvb3RzdHJhcChqKSxqKSl9KX0pfWJvb3RzdHJhcE1vZHVsZSho''@;'; + put 'put ''LHY9W10pe2NvbnN0IHk9RzMoe30sdik7cmV0dXJuIGZ1bmN0aW9uIEhHKGQsZyxoKXtjb25zdCB2PW5ldyBlNyhoKTtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHYpfSgwLDAsaCkudGhlbihDPT50aGlzLmJvb3RzdHJhcE1vZHVsZUZhY3RvcnkoQyx5KSl9X21vZHVsZURvQm9vdHN0cmFwKGgp''@;'; + put 'put ''e2NvbnN0IHY9aC5pbmplY3Rvci5nZXQoa0MpO2lmKGguX2Jvb3RzdHJhcENvbXBvbmVudHMubGVuZ3RoPjApaC5fYm9vdHN0cmFwQ29tcG9uZW50cy5mb3JFYWNoKHk9PnYuYm9vdHN0cmFwKHkpKTtlbHNle2lmKCFoLmluc3RhbmNlLm5nRG9Cb290c3RyYXApdGhyb3cgbmV3IGVuKDQwMywh''@;'; + put 'put ''MSk7aC5pbnN0YW5jZS5uZ0RvQm9vdHN0cmFwKHYpfXRoaXMuX21vZHVsZXMucHVzaChoKX1vbkRlc3Ryb3koaCl7dGhpcy5fZGVzdHJveUxpc3RlbmVycy5wdXNoKGgpfWdldCBpbmplY3Rvcigpe3JldHVybiB0aGlzLl9pbmplY3Rvcn1kZXN0cm95KCl7aWYodGhpcy5fZGVzdHJveWVkKXRo''@;'; + put 'put ''cm93IG5ldyBlbig0MDQsITEpO3RoaXMuX21vZHVsZXMuc2xpY2UoKS5mb3JFYWNoKHY9PnYuZGVzdHJveSgpKSx0aGlzLl9kZXN0cm95TGlzdGVuZXJzLmZvckVhY2godj0+digpKTtjb25zdCBoPXRoaXMuX2luamVjdG9yLmdldChNVCxudWxsKTtoJiYoaC5mb3JFYWNoKHY9PnYoKSksaC5j''@;'; + put 'put ''bGVhcigpKSx0aGlzLl9kZXN0cm95ZWQ9ITB9Z2V0IGRlc3Ryb3llZCgpe3JldHVybiB0aGlzLl9kZXN0cm95ZWR9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKENpKGtzKSl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1''@;'; + put 'put ''ZmFjLHByb3ZpZGVkSW46InBsYXRmb3JtIn0pLGR9KSgpO2Z1bmN0aW9uIEczKGQsZyl7cmV0dXJuIEFycmF5LmlzQXJyYXkoZyk/Zy5yZWR1Y2UoRzMsZCk6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGQpLGcpfWxldCBrQz0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgsdix5''@;'; + put 'put ''KXt0aGlzLl96b25lPWgsdGhpcy5faW5qZWN0b3I9dix0aGlzLl9leGNlcHRpb25IYW5kbGVyPXksdGhpcy5fYm9vdHN0cmFwTGlzdGVuZXJzPVtdLHRoaXMuX3ZpZXdzPVtdLHRoaXMuX3J1bm5pbmdUaWNrPSExLHRoaXMuX3N0YWJsZT0hMCx0aGlzLl9kZXN0cm95ZWQ9ITEsdGhpcy5fZGVz''@;'; + put 'put ''dHJveUxpc3RlbmVycz1bXSx0aGlzLmNvbXBvbmVudFR5cGVzPVtdLHRoaXMuY29tcG9uZW50cz1bXSx0aGlzLl9vbk1pY3JvdGFza0VtcHR5U3Vic2NyaXB0aW9uPXRoaXMuX3pvbmUub25NaWNyb3Rhc2tFbXB0eS5zdWJzY3JpYmUoe25leHQ6KCk9Pnt0aGlzLl96b25lLnJ1bigoKT0+e3Ro''@;'; + put 'put ''aXMudGljaygpfSl9fSk7Y29uc3QgQz1uZXcgRihqPT57dGhpcy5fc3RhYmxlPXRoaXMuX3pvbmUuaXNTdGFibGUmJiF0aGlzLl96b25lLmhhc1BlbmRpbmdNYWNyb3Rhc2tzJiYhdGhpcy5fem9uZS5oYXNQZW5kaW5nTWljcm90YXNrcyx0aGlzLl96b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgp''@;'; + put 'put ''PT57ai5uZXh0KHRoaXMuX3N0YWJsZSksai5jb21wbGV0ZSgpfSl9KSxJPW5ldyBGKGo9PntsZXQgdWU7dGhpcy5fem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKT0+e3VlPXRoaXMuX3pvbmUub25TdGFibGUuc3Vic2NyaWJlKCgpPT57X2wuYXNzZXJ0Tm90SW5Bbmd1bGFyWm9uZSgpLF9UKCgp''@;'; + put 'put ''PT57IXRoaXMuX3N0YWJsZSYmIXRoaXMuX3pvbmUuaGFzUGVuZGluZ01hY3JvdGFza3MmJiF0aGlzLl96b25lLmhhc1BlbmRpbmdNaWNyb3Rhc2tzJiYodGhpcy5fc3RhYmxlPSEwLGoubmV4dCghMCkpfSl9KX0pO2NvbnN0IF9lPXRoaXMuX3pvbmUub25VbnN0YWJsZS5zdWJzY3JpYmUoKCk9''@;'; + put 'put ''PntfbC5hc3NlcnRJbkFuZ3VsYXJab25lKCksdGhpcy5fc3RhYmxlJiYodGhpcy5fc3RhYmxlPSExLHRoaXMuX3pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCk9PntqLm5leHQoITEpfSkpfSk7cmV0dXJuKCk9Pnt1ZS51bnN1YnNjcmliZSgpLF9lLnVuc3Vic2NyaWJlKCl9fSk7dGhpcy5pc1N0''@;'; + put 'put ''YWJsZT1ucihDLEkucGlwZShmdW5jdGlvbiBUcigpe3JldHVybiBkPT5BbigpKGZ1bmN0aW9uIHduKGQsZyl7cmV0dXJuIGZ1bmN0aW9uKHYpe2xldCB5O2lmKHk9ImZ1bmN0aW9uIj09dHlwZW9mIGQ/ZDpmdW5jdGlvbigpe3JldHVybiBkfSwiZnVuY3Rpb24iPT10eXBlb2YgZylyZXR1cm4g''@;'; + put 'put ''di5saWZ0KG5ldyB0bih5LGcpKTtjb25zdCBDPU9iamVjdC5jcmVhdGUodixLbik7cmV0dXJuIEMuc291cmNlPXYsQy5zdWJqZWN0RmFjdG9yeT15LEN9fSh6bikoZCkpfSgpKSl9Z2V0IGRlc3Ryb3llZCgpe3JldHVybiB0aGlzLl9kZXN0cm95ZWR9Z2V0IGluamVjdG9yKCl7cmV0dXJuIHRo''@;'; + put 'put ''aXMuX2luamVjdG9yfWJvb3RzdHJhcChoLHYpe2NvbnN0IHk9aCBpbnN0YW5jZW9mIGdFO2lmKCF0aGlzLl9pbmplY3Rvci5nZXQoQVQpLmRvbmUpdGhyb3cheSYmZnVuY3Rpb24gdGgoZCl7Y29uc3QgZz1tcyhkKXx8RjEoZCl8fEtsKGQpO3JldHVybiBudWxsIT09ZyYmZy5zdGFuZGFsb25l''@;'; + put 'put ''fShoKSxuZXcgZW4oNDA1LGZhbHNlKTtsZXQgSTtJPXk/aDp0aGlzLl9pbmplY3Rvci5nZXQoTWQpLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KGgpLHRoaXMuY29tcG9uZW50VHlwZXMucHVzaChJLmNvbXBvbmVudFR5cGUpO2NvbnN0IGo9ZnVuY3Rpb24gbkYoZCl7cmV0dXJuIGQuaXNCb3Vu''@;'; + put 'put ''ZFRvTW9kdWxlfShJKT92b2lkIDA6dGhpcy5faW5qZWN0b3IuZ2V0KE4zKSxfZT1JLmNyZWF0ZShrcy5OVUxMLFtdLHZ8fEkuc2VsZWN0b3IsaiksQmU9X2UubG9jYXRpb24ubmF0aXZlRWxlbWVudCxOZT1fZS5pbmplY3Rvci5nZXQoa1QsbnVsbCk7cmV0dXJuIG51bGw9PU5lfHxOZS5yZWdp''@;'; + put 'put ''c3RlckFwcGxpY2F0aW9uKEJlKSxfZS5vbkRlc3Ryb3koKCk9Pnt0aGlzLmRldGFjaFZpZXcoX2UuaG9zdFZpZXcpLEVUKHRoaXMuY29tcG9uZW50cyxfZSksbnVsbD09TmV8fE5lLnVucmVnaXN0ZXJBcHBsaWNhdGlvbihCZSl9KSx0aGlzLl9sb2FkQ29tcG9uZW50KF9lKSxfZX10aWNrKCl7''@;'; + put 'put ''aWYodGhpcy5fcnVubmluZ1RpY2spdGhyb3cgbmV3IGVuKDEwMSwhMSk7dHJ5e3RoaXMuX3J1bm5pbmdUaWNrPSEwO2ZvcihsZXQgaCBvZiB0aGlzLl92aWV3cyloLmRldGVjdENoYW5nZXMoKX1jYXRjaChoKXt0aGlzLl96b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpPT50aGlzLl9leGNlcHRp''@;'; + put 'put ''b25IYW5kbGVyLmhhbmRsZUVycm9yKGgpKX1maW5hbGx5e3RoaXMuX3J1bm5pbmdUaWNrPSExfX1hdHRhY2hWaWV3KGgpe2NvbnN0IHY9aDt0aGlzLl92aWV3cy5wdXNoKHYpLHYuYXR0YWNoVG9BcHBSZWYodGhpcyl9ZGV0YWNoVmlldyhoKXtjb25zdCB2PWg7RVQodGhpcy5fdmlld3Msdiks''@;'; + put 'put ''di5kZXRhY2hGcm9tQXBwUmVmKCl9X2xvYWRDb21wb25lbnQoaCl7dGhpcy5hdHRhY2hWaWV3KGguaG9zdFZpZXcpLHRoaXMudGljaygpLHRoaXMuY29tcG9uZW50cy5wdXNoKGgpLHRoaXMuX2luamVjdG9yLmdldChGNixbXSkuY29uY2F0KHRoaXMuX2Jvb3RzdHJhcExpc3RlbmVycykuZm9y''@;'; + put 'put ''RWFjaCh5PT55KGgpKX1uZ09uRGVzdHJveSgpe2lmKCF0aGlzLl9kZXN0cm95ZWQpdHJ5e3RoaXMuX2Rlc3Ryb3lMaXN0ZW5lcnMuZm9yRWFjaChoPT5oKCkpLHRoaXMuX3ZpZXdzLnNsaWNlKCkuZm9yRWFjaChoPT5oLmRlc3Ryb3koKSksdGhpcy5fb25NaWNyb3Rhc2tFbXB0eVN1YnNjcmlw''@;'; + put 'put ''dGlvbi51bnN1YnNjcmliZSgpfWZpbmFsbHl7dGhpcy5fZGVzdHJveWVkPSEwLHRoaXMuX3ZpZXdzPVtdLHRoaXMuX2Jvb3RzdHJhcExpc3RlbmVycz1bXSx0aGlzLl9kZXN0cm95TGlzdGVuZXJzPVtdfX1vbkRlc3Ryb3koaCl7cmV0dXJuIHRoaXMuX2Rlc3Ryb3lMaXN0ZW5lcnMucHVzaCho''@;'; + put 'put ''KSwoKT0+RVQodGhpcy5fZGVzdHJveUxpc3RlbmVycyxoKX1kZXN0cm95KCl7aWYodGhpcy5fZGVzdHJveWVkKXRocm93IG5ldyBlbig0MDYsITEpO2NvbnN0IGg9dGhpcy5faW5qZWN0b3I7aC5kZXN0cm95JiYhaC5kZXN0cm95ZWQmJmguZGVzdHJveSgpfWdldCB2aWV3Q291bnQoKXtyZXR1''@;'; + put 'put ''cm4gdGhpcy5fdmlld3MubGVuZ3RofXdhcm5JZkRlc3Ryb3llZCgpe319cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoQ2koX2wpLENpKEUzKSxDaSh2NikpfSxkLlx1MDI3NXByb3Y9QWkoe3Rva2VuOmQsZmFjdG9yeTpkLlx1MDI3NWZhYyxwcm92aWRl''@;'; + put 'put ''ZEluOiJyb290In0pLGR9KSgpO2Z1bmN0aW9uIEVUKGQsZyl7Y29uc3QgaD1kLmluZGV4T2YoZyk7aD4tMSYmZC5zcGxpY2UoaCwxKX1sZXQgeFQ9ITAsZDE9KCgpPT57Y2xhc3MgZHt9cmV0dXJuIGQuX19OR19FTEVNRU5UX0lEX189UkEsZH0pKCk7ZnVuY3Rpb24gUkEoZCl7cmV0dXJuIGZ1''@;'; + put 'put ''bmN0aW9uIFdHKGQsZyxoKXtpZihDcyhkKSYmIWgpe2NvbnN0IHY9UXUoZC5pbmRleCxnKTtyZXR1cm4gbmV3IE02KHYsdil9cmV0dXJuIDQ3JmQudHlwZT9uZXcgTTYoZ1sxNl0sZyk6bnVsbH0oWHQoKSxQdCgpLDE2PT0oMTYmZCkpfWNsYXNzIE1De2NvbnN0cnVjdG9yKCl7fXN1cHBvcnRz''@;'; + put 'put ''KGcpe3JldHVybiBGZChnKX1jcmVhdGUoZyl7cmV0dXJuIG5ldyBJVChnKX19Y29uc3QgVFQ9KGQsZyk9Pmc7Y2xhc3MgSVR7Y29uc3RydWN0b3IoZyl7dGhpcy5sZW5ndGg9MCx0aGlzLl9saW5rZWRSZWNvcmRzPW51bGwsdGhpcy5fdW5saW5rZWRSZWNvcmRzPW51bGwsdGhpcy5fcHJldmlv''@;'; + put 'put ''dXNJdEhlYWQ9bnVsbCx0aGlzLl9pdEhlYWQ9bnVsbCx0aGlzLl9pdFRhaWw9bnVsbCx0aGlzLl9hZGRpdGlvbnNIZWFkPW51bGwsdGhpcy5fYWRkaXRpb25zVGFpbD1udWxsLHRoaXMuX21vdmVzSGVhZD1udWxsLHRoaXMuX21vdmVzVGFpbD1udWxsLHRoaXMuX3JlbW92YWxzSGVhZD1udWxs''@;'; + put 'put ''LHRoaXMuX3JlbW92YWxzVGFpbD1udWxsLHRoaXMuX2lkZW50aXR5Q2hhbmdlc0hlYWQ9bnVsbCx0aGlzLl9pZGVudGl0eUNoYW5nZXNUYWlsPW51bGwsdGhpcy5fdHJhY2tCeUZuPWd8fFRUfWZvckVhY2hJdGVtKGcpe2xldCBoO2ZvcihoPXRoaXMuX2l0SGVhZDtudWxsIT09aDtoPWguX25l''@;'; + put 'put ''eHQpZyhoKX1mb3JFYWNoT3BlcmF0aW9uKGcpe2xldCBoPXRoaXMuX2l0SGVhZCx2PXRoaXMuX3JlbW92YWxzSGVhZCx5PTAsQz1udWxsO2Zvcig7aHx8djspe2NvbnN0IEk9IXZ8fGgmJmguY3VycmVudEluZGV4PERUKHYseSxDKT9oOnYsaj1EVChJLHksQyksdWU9SS5jdXJyZW50SW5kZXg7''@;'; + put 'put ''aWYoST09PXYpeS0tLHY9di5fbmV4dFJlbW92ZWQ7ZWxzZSBpZihoPWguX25leHQsbnVsbD09SS5wcmV2aW91c0luZGV4KXkrKztlbHNle0N8fChDPVtdKTtjb25zdCBfZT1qLXksQmU9dWUteTtpZihfZSE9QmUpe2ZvcihsZXQgS2U9MDtLZTxfZTtLZSsrKXtjb25zdCBkdD1LZTxDLmxlbmd0''@;'; + put 'put ''aD9DW0tlXTpDW0tlXT0wLE90PWR0K0tlO0JlPD1PdCYmT3Q8X2UmJihDW0tlXT1kdCsxKX1DW0kucHJldmlvdXNJbmRleF09QmUtX2V9fWohPT11ZSYmZyhJLGosdWUpfX1mb3JFYWNoUHJldmlvdXNJdGVtKGcpe2xldCBoO2ZvcihoPXRoaXMuX3ByZXZpb3VzSXRIZWFkO251bGwhPT1oO2g9''@;'; + put 'put ''aC5fbmV4dFByZXZpb3VzKWcoaCl9Zm9yRWFjaEFkZGVkSXRlbShnKXtsZXQgaDtmb3IoaD10aGlzLl9hZGRpdGlvbnNIZWFkO251bGwhPT1oO2g9aC5fbmV4dEFkZGVkKWcoaCl9Zm9yRWFjaE1vdmVkSXRlbShnKXtsZXQgaDtmb3IoaD10aGlzLl9tb3Zlc0hlYWQ7bnVsbCE9PWg7aD1oLl9u''@;'; + put 'put ''ZXh0TW92ZWQpZyhoKX1mb3JFYWNoUmVtb3ZlZEl0ZW0oZyl7bGV0IGg7Zm9yKGg9dGhpcy5fcmVtb3ZhbHNIZWFkO251bGwhPT1oO2g9aC5fbmV4dFJlbW92ZWQpZyhoKX1mb3JFYWNoSWRlbnRpdHlDaGFuZ2UoZyl7bGV0IGg7Zm9yKGg9dGhpcy5faWRlbnRpdHlDaGFuZ2VzSGVhZDtudWxs''@;'; + put 'put ''IT09aDtoPWguX25leHRJZGVudGl0eUNoYW5nZSlnKGgpfWRpZmYoZyl7aWYobnVsbD09ZyYmKGc9W10pLCFGZChnKSl0aHJvdyBuZXcgZW4oOTAwLCExKTtyZXR1cm4gdGhpcy5jaGVjayhnKT90aGlzOm51bGx9b25EZXN0cm95KCl7fWNoZWNrKGcpe3RoaXMuX3Jlc2V0KCk7bGV0IHksQyxJ''@;'; + put 'put ''LGg9dGhpcy5faXRIZWFkLHY9ITE7aWYoQXJyYXkuaXNBcnJheShnKSl7dGhpcy5sZW5ndGg9Zy5sZW5ndGg7Zm9yKGxldCBqPTA7ajx0aGlzLmxlbmd0aDtqKyspQz1nW2pdLEk9dGhpcy5fdHJhY2tCeUZuKGosQyksbnVsbCE9PWgmJk9iamVjdC5pcyhoLnRyYWNrQnlJZCxJKT8odiYmKGg9''@;'; + put 'put ''dGhpcy5fdmVyaWZ5UmVpbnNlcnRpb24oaCxDLEksaikpLE9iamVjdC5pcyhoLml0ZW0sQyl8fHRoaXMuX2FkZElkZW50aXR5Q2hhbmdlKGgsQykpOihoPXRoaXMuX21pc21hdGNoKGgsQyxJLGopLHY9ITApLGg9aC5fbmV4dH1lbHNlIHk9MCxmdW5jdGlvbiByUChkLGcpe2lmKEFycmF5Lmlz''@;'; + put 'put ''QXJyYXkoZCkpZm9yKGxldCBoPTA7aDxkLmxlbmd0aDtoKyspZyhkW2hdKTtlbHNle2NvbnN0IGg9ZFtFNigpXSgpO2xldCB2O2Zvcig7ISh2PWgubmV4dCgpKS5kb25lOylnKHYudmFsdWUpfX0oZyxqPT57ST10aGlzLl90cmFja0J5Rm4oeSxqKSxudWxsIT09aCYmT2JqZWN0LmlzKGgudHJh''@;'; + put 'put ''Y2tCeUlkLEkpPyh2JiYoaD10aGlzLl92ZXJpZnlSZWluc2VydGlvbihoLGosSSx5KSksT2JqZWN0LmlzKGguaXRlbSxqKXx8dGhpcy5fYWRkSWRlbnRpdHlDaGFuZ2UoaCxqKSk6KGg9dGhpcy5fbWlzbWF0Y2goaCxqLEkseSksdj0hMCksaD1oLl9uZXh0LHkrK30pLHRoaXMubGVuZ3RoPXk7''@;'; + put 'put ''cmV0dXJuIHRoaXMuX3RydW5jYXRlKGgpLHRoaXMuY29sbGVjdGlvbj1nLHRoaXMuaXNEaXJ0eX1nZXQgaXNEaXJ0eSgpe3JldHVybiBudWxsIT09dGhpcy5fYWRkaXRpb25zSGVhZHx8bnVsbCE9PXRoaXMuX21vdmVzSGVhZHx8bnVsbCE9PXRoaXMuX3JlbW92YWxzSGVhZHx8bnVsbCE9PXRo''@;'; + put 'put ''aXMuX2lkZW50aXR5Q2hhbmdlc0hlYWR9X3Jlc2V0KCl7aWYodGhpcy5pc0RpcnR5KXtsZXQgZztmb3IoZz10aGlzLl9wcmV2aW91c0l0SGVhZD10aGlzLl9pdEhlYWQ7bnVsbCE9PWc7Zz1nLl9uZXh0KWcuX25leHRQcmV2aW91cz1nLl9uZXh0O2ZvcihnPXRoaXMuX2FkZGl0aW9uc0hlYWQ7''@;'; + put 'put ''bnVsbCE9PWc7Zz1nLl9uZXh0QWRkZWQpZy5wcmV2aW91c0luZGV4PWcuY3VycmVudEluZGV4O2Zvcih0aGlzLl9hZGRpdGlvbnNIZWFkPXRoaXMuX2FkZGl0aW9uc1RhaWw9bnVsbCxnPXRoaXMuX21vdmVzSGVhZDtudWxsIT09ZztnPWcuX25leHRNb3ZlZClnLnByZXZpb3VzSW5kZXg9Zy5j''@;'; + put 'put ''dXJyZW50SW5kZXg7dGhpcy5fbW92ZXNIZWFkPXRoaXMuX21vdmVzVGFpbD1udWxsLHRoaXMuX3JlbW92YWxzSGVhZD10aGlzLl9yZW1vdmFsc1RhaWw9bnVsbCx0aGlzLl9pZGVudGl0eUNoYW5nZXNIZWFkPXRoaXMuX2lkZW50aXR5Q2hhbmdlc1RhaWw9bnVsbH19X21pc21hdGNoKGcsaCx2''@;'; + put 'put ''LHkpe2xldCBDO3JldHVybiBudWxsPT09Zz9DPXRoaXMuX2l0VGFpbDooQz1nLl9wcmV2LHRoaXMuX3JlbW92ZShnKSksbnVsbCE9PShnPW51bGw9PT10aGlzLl91bmxpbmtlZFJlY29yZHM/bnVsbDp0aGlzLl91bmxpbmtlZFJlY29yZHMuZ2V0KHYsbnVsbCkpPyhPYmplY3QuaXMoZy5pdGVt''@;'; + put 'put ''LGgpfHx0aGlzLl9hZGRJZGVudGl0eUNoYW5nZShnLGgpLHRoaXMuX3JlaW5zZXJ0QWZ0ZXIoZyxDLHkpKTpudWxsIT09KGc9bnVsbD09PXRoaXMuX2xpbmtlZFJlY29yZHM/bnVsbDp0aGlzLl9saW5rZWRSZWNvcmRzLmdldCh2LHkpKT8oT2JqZWN0LmlzKGcuaXRlbSxoKXx8dGhpcy5fYWRk''@;'; + put 'put ''SWRlbnRpdHlDaGFuZ2UoZyxoKSx0aGlzLl9tb3ZlQWZ0ZXIoZyxDLHkpKTpnPXRoaXMuX2FkZEFmdGVyKG5ldyB0cChoLHYpLEMseSksZ31fdmVyaWZ5UmVpbnNlcnRpb24oZyxoLHYseSl7bGV0IEM9bnVsbD09PXRoaXMuX3VubGlua2VkUmVjb3Jkcz9udWxsOnRoaXMuX3VubGlua2VkUmVj''@;'; + put 'put ''b3Jkcy5nZXQodixudWxsKTtyZXR1cm4gbnVsbCE9PUM/Zz10aGlzLl9yZWluc2VydEFmdGVyKEMsZy5fcHJldix5KTpnLmN1cnJlbnRJbmRleCE9eSYmKGcuY3VycmVudEluZGV4PXksdGhpcy5fYWRkVG9Nb3ZlcyhnLHkpKSxnfV90cnVuY2F0ZShnKXtmb3IoO251bGwhPT1nOyl7Y29uc3Qg''@;'; + put 'put ''aD1nLl9uZXh0O3RoaXMuX2FkZFRvUmVtb3ZhbHModGhpcy5fdW5saW5rKGcpKSxnPWh9bnVsbCE9PXRoaXMuX3VubGlua2VkUmVjb3JkcyYmdGhpcy5fdW5saW5rZWRSZWNvcmRzLmNsZWFyKCksbnVsbCE9PXRoaXMuX2FkZGl0aW9uc1RhaWwmJih0aGlzLl9hZGRpdGlvbnNUYWlsLl9uZXh0''@;'; + put 'put ''QWRkZWQ9bnVsbCksbnVsbCE9PXRoaXMuX21vdmVzVGFpbCYmKHRoaXMuX21vdmVzVGFpbC5fbmV4dE1vdmVkPW51bGwpLG51bGwhPT10aGlzLl9pdFRhaWwmJih0aGlzLl9pdFRhaWwuX25leHQ9bnVsbCksbnVsbCE9PXRoaXMuX3JlbW92YWxzVGFpbCYmKHRoaXMuX3JlbW92YWxzVGFpbC5f''@;'; + put 'put ''bmV4dFJlbW92ZWQ9bnVsbCksbnVsbCE9PXRoaXMuX2lkZW50aXR5Q2hhbmdlc1RhaWwmJih0aGlzLl9pZGVudGl0eUNoYW5nZXNUYWlsLl9uZXh0SWRlbnRpdHlDaGFuZ2U9bnVsbCl9X3JlaW5zZXJ0QWZ0ZXIoZyxoLHYpe251bGwhPT10aGlzLl91bmxpbmtlZFJlY29yZHMmJnRoaXMuX3Vu''@;'; + put 'put ''bGlua2VkUmVjb3Jkcy5yZW1vdmUoZyk7Y29uc3QgeT1nLl9wcmV2UmVtb3ZlZCxDPWcuX25leHRSZW1vdmVkO3JldHVybiBudWxsPT09eT90aGlzLl9yZW1vdmFsc0hlYWQ9Qzp5Ll9uZXh0UmVtb3ZlZD1DLG51bGw9PT1DP3RoaXMuX3JlbW92YWxzVGFpbD15OkMuX3ByZXZSZW1vdmVkPXks''@;'; + put 'put ''dGhpcy5faW5zZXJ0QWZ0ZXIoZyxoLHYpLHRoaXMuX2FkZFRvTW92ZXMoZyx2KSxnfV9tb3ZlQWZ0ZXIoZyxoLHYpe3JldHVybiB0aGlzLl91bmxpbmsoZyksdGhpcy5faW5zZXJ0QWZ0ZXIoZyxoLHYpLHRoaXMuX2FkZFRvTW92ZXMoZyx2KSxnfV9hZGRBZnRlcihnLGgsdil7cmV0dXJuIHRo''@;'; + put 'put ''aXMuX2luc2VydEFmdGVyKGcsaCx2KSx0aGlzLl9hZGRpdGlvbnNUYWlsPW51bGw9PT10aGlzLl9hZGRpdGlvbnNUYWlsP3RoaXMuX2FkZGl0aW9uc0hlYWQ9Zzp0aGlzLl9hZGRpdGlvbnNUYWlsLl9uZXh0QWRkZWQ9ZyxnfV9pbnNlcnRBZnRlcihnLGgsdil7Y29uc3QgeT1udWxsPT09aD90''@;'; + put 'put ''aGlzLl9pdEhlYWQ6aC5fbmV4dDtyZXR1cm4gZy5fbmV4dD15LGcuX3ByZXY9aCxudWxsPT09eT90aGlzLl9pdFRhaWw9Zzp5Ll9wcmV2PWcsbnVsbD09PWg/dGhpcy5faXRIZWFkPWc6aC5fbmV4dD1nLG51bGw9PT10aGlzLl9saW5rZWRSZWNvcmRzJiYodGhpcy5fbGlua2VkUmVjb3Jkcz1u''@;'; + put 'put ''ZXcgS0cpLHRoaXMuX2xpbmtlZFJlY29yZHMucHV0KGcpLGcuY3VycmVudEluZGV4PXYsZ31fcmVtb3ZlKGcpe3JldHVybiB0aGlzLl9hZGRUb1JlbW92YWxzKHRoaXMuX3VubGluayhnKSl9X3VubGluayhnKXtudWxsIT09dGhpcy5fbGlua2VkUmVjb3JkcyYmdGhpcy5fbGlua2VkUmVjb3Jk''@;'; + put 'put ''cy5yZW1vdmUoZyk7Y29uc3QgaD1nLl9wcmV2LHY9Zy5fbmV4dDtyZXR1cm4gbnVsbD09PWg/dGhpcy5faXRIZWFkPXY6aC5fbmV4dD12LG51bGw9PT12P3RoaXMuX2l0VGFpbD1oOnYuX3ByZXY9aCxnfV9hZGRUb01vdmVzKGcsaCl7cmV0dXJuIGcucHJldmlvdXNJbmRleD09PWh8fCh0aGlz''@;'; + put 'put ''Ll9tb3Zlc1RhaWw9bnVsbD09PXRoaXMuX21vdmVzVGFpbD90aGlzLl9tb3Zlc0hlYWQ9Zzp0aGlzLl9tb3Zlc1RhaWwuX25leHRNb3ZlZD1nKSxnfV9hZGRUb1JlbW92YWxzKGcpe3JldHVybiBudWxsPT09dGhpcy5fdW5saW5rZWRSZWNvcmRzJiYodGhpcy5fdW5saW5rZWRSZWNvcmRzPW5l''@;'; + put 'put ''dyBLRyksdGhpcy5fdW5saW5rZWRSZWNvcmRzLnB1dChnKSxnLmN1cnJlbnRJbmRleD1udWxsLGcuX25leHRSZW1vdmVkPW51bGwsbnVsbD09PXRoaXMuX3JlbW92YWxzVGFpbD8odGhpcy5fcmVtb3ZhbHNUYWlsPXRoaXMuX3JlbW92YWxzSGVhZD1nLGcuX3ByZXZSZW1vdmVkPW51bGwpOihn''@;'; + put 'put ''Ll9wcmV2UmVtb3ZlZD10aGlzLl9yZW1vdmFsc1RhaWwsdGhpcy5fcmVtb3ZhbHNUYWlsPXRoaXMuX3JlbW92YWxzVGFpbC5fbmV4dFJlbW92ZWQ9ZyksZ31fYWRkSWRlbnRpdHlDaGFuZ2UoZyxoKXtyZXR1cm4gZy5pdGVtPWgsdGhpcy5faWRlbnRpdHlDaGFuZ2VzVGFpbD1udWxsPT09dGhp''@;'; + put 'put ''cy5faWRlbnRpdHlDaGFuZ2VzVGFpbD90aGlzLl9pZGVudGl0eUNoYW5nZXNIZWFkPWc6dGhpcy5faWRlbnRpdHlDaGFuZ2VzVGFpbC5fbmV4dElkZW50aXR5Q2hhbmdlPWcsZ319Y2xhc3MgdHB7Y29uc3RydWN0b3IoZyxoKXt0aGlzLml0ZW09Zyx0aGlzLnRyYWNrQnlJZD1oLHRoaXMuY3Vy''@;'; + put 'put ''cmVudEluZGV4PW51bGwsdGhpcy5wcmV2aW91c0luZGV4PW51bGwsdGhpcy5fbmV4dFByZXZpb3VzPW51bGwsdGhpcy5fcHJldj1udWxsLHRoaXMuX25leHQ9bnVsbCx0aGlzLl9wcmV2RHVwPW51bGwsdGhpcy5fbmV4dER1cD1udWxsLHRoaXMuX3ByZXZSZW1vdmVkPW51bGwsdGhpcy5fbmV4''@;'; + put 'put ''dFJlbW92ZWQ9bnVsbCx0aGlzLl9uZXh0QWRkZWQ9bnVsbCx0aGlzLl9uZXh0TW92ZWQ9bnVsbCx0aGlzLl9uZXh0SWRlbnRpdHlDaGFuZ2U9bnVsbH19Y2xhc3MgX3Jle2NvbnN0cnVjdG9yKCl7dGhpcy5faGVhZD1udWxsLHRoaXMuX3RhaWw9bnVsbH1hZGQoZyl7bnVsbD09PXRoaXMuX2hl''@;'; + put 'put ''YWQ/KHRoaXMuX2hlYWQ9dGhpcy5fdGFpbD1nLGcuX25leHREdXA9bnVsbCxnLl9wcmV2RHVwPW51bGwpOih0aGlzLl90YWlsLl9uZXh0RHVwPWcsZy5fcHJldkR1cD10aGlzLl90YWlsLGcuX25leHREdXA9bnVsbCx0aGlzLl90YWlsPWcpfWdldChnLGgpe2xldCB2O2Zvcih2PXRoaXMuX2hl''@;'; + put 'put ''YWQ7bnVsbCE9PXY7dj12Ll9uZXh0RHVwKWlmKChudWxsPT09aHx8aDw9di5jdXJyZW50SW5kZXgpJiZPYmplY3QuaXModi50cmFja0J5SWQsZykpcmV0dXJuIHY7cmV0dXJuIG51bGx9cmVtb3ZlKGcpe2NvbnN0IGg9Zy5fcHJldkR1cCx2PWcuX25leHREdXA7cmV0dXJuIG51bGw9PT1oP3Ro''@;'; + put 'put ''aXMuX2hlYWQ9djpoLl9uZXh0RHVwPXYsbnVsbD09PXY/dGhpcy5fdGFpbD1oOnYuX3ByZXZEdXA9aCxudWxsPT09dGhpcy5faGVhZH19Y2xhc3MgS0d7Y29uc3RydWN0b3IoKXt0aGlzLm1hcD1uZXcgTWFwfXB1dChnKXtjb25zdCBoPWcudHJhY2tCeUlkO2xldCB2PXRoaXMubWFwLmdldCho''@;'; + put 'put ''KTt2fHwodj1uZXcgX3JlLHRoaXMubWFwLnNldChoLHYpKSx2LmFkZChnKX1nZXQoZyxoKXtjb25zdCB5PXRoaXMubWFwLmdldChnKTtyZXR1cm4geT95LmdldChnLGgpOm51bGx9cmVtb3ZlKGcpe2NvbnN0IGg9Zy50cmFja0J5SWQ7cmV0dXJuIHRoaXMubWFwLmdldChoKS5yZW1vdmUoZykm''@;'; + put 'put ''JnRoaXMubWFwLmRlbGV0ZShoKSxnfWdldCBpc0VtcHR5KCl7cmV0dXJuIDA9PT10aGlzLm1hcC5zaXplfWNsZWFyKCl7dGhpcy5tYXAuY2xlYXIoKX19ZnVuY3Rpb24gRFQoZCxnLGgpe2NvbnN0IHY9ZC5wcmV2aW91c0luZGV4O2lmKG51bGw9PT12KXJldHVybiB2O2xldCB5PTA7cmV0dXJu''@;'; + put 'put ''IGgmJnY8aC5sZW5ndGgmJih5PWhbdl0pLHYrZyt5fWNsYXNzICRHe2NvbnN0cnVjdG9yKCl7fXN1cHBvcnRzKGcpe3JldHVybiBnIGluc3RhbmNlb2YgTWFwfHxCXyhnKX1jcmVhdGUoKXtyZXR1cm4gbmV3IENyZX19Y2xhc3MgQ3Jle2NvbnN0cnVjdG9yKCl7dGhpcy5fcmVjb3Jkcz1uZXcg''@;'; + put 'put ''TWFwLHRoaXMuX21hcEhlYWQ9bnVsbCx0aGlzLl9hcHBlbmRBZnRlcj1udWxsLHRoaXMuX3ByZXZpb3VzTWFwSGVhZD1udWxsLHRoaXMuX2NoYW5nZXNIZWFkPW51bGwsdGhpcy5fY2hhbmdlc1RhaWw9bnVsbCx0aGlzLl9hZGRpdGlvbnNIZWFkPW51bGwsdGhpcy5fYWRkaXRpb25zVGFpbD1u''@;'; + put 'put ''dWxsLHRoaXMuX3JlbW92YWxzSGVhZD1udWxsLHRoaXMuX3JlbW92YWxzVGFpbD1udWxsfWdldCBpc0RpcnR5KCl7cmV0dXJuIG51bGwhPT10aGlzLl9hZGRpdGlvbnNIZWFkfHxudWxsIT09dGhpcy5fY2hhbmdlc0hlYWR8fG51bGwhPT10aGlzLl9yZW1vdmFsc0hlYWR9Zm9yRWFjaEl0ZW0o''@;'; + put 'put ''Zyl7bGV0IGg7Zm9yKGg9dGhpcy5fbWFwSGVhZDtudWxsIT09aDtoPWguX25leHQpZyhoKX1mb3JFYWNoUHJldmlvdXNJdGVtKGcpe2xldCBoO2ZvcihoPXRoaXMuX3ByZXZpb3VzTWFwSGVhZDtudWxsIT09aDtoPWguX25leHRQcmV2aW91cylnKGgpfWZvckVhY2hDaGFuZ2VkSXRlbShnKXts''@;'; + put 'put ''ZXQgaDtmb3IoaD10aGlzLl9jaGFuZ2VzSGVhZDtudWxsIT09aDtoPWguX25leHRDaGFuZ2VkKWcoaCl9Zm9yRWFjaEFkZGVkSXRlbShnKXtsZXQgaDtmb3IoaD10aGlzLl9hZGRpdGlvbnNIZWFkO251bGwhPT1oO2g9aC5fbmV4dEFkZGVkKWcoaCl9Zm9yRWFjaFJlbW92ZWRJdGVtKGcpe2xl''@;'; + put 'put ''dCBoO2ZvcihoPXRoaXMuX3JlbW92YWxzSGVhZDtudWxsIT09aDtoPWguX25leHRSZW1vdmVkKWcoaCl9ZGlmZihnKXtpZihnKXtpZighKGcgaW5zdGFuY2VvZiBNYXB8fEJfKGcpKSl0aHJvdyBuZXcgZW4oOTAwLCExKX1lbHNlIGc9bmV3IE1hcDtyZXR1cm4gdGhpcy5jaGVjayhnKT90aGlz''@;'; + put 'put ''Om51bGx9b25EZXN0cm95KCl7fWNoZWNrKGcpe3RoaXMuX3Jlc2V0KCk7bGV0IGg9dGhpcy5fbWFwSGVhZDtpZih0aGlzLl9hcHBlbmRBZnRlcj1udWxsLHRoaXMuX2ZvckVhY2goZywodix5KT0+e2lmKGgmJmgua2V5PT09eSl0aGlzLl9tYXliZUFkZFRvQ2hhbmdlcyhoLHYpLHRoaXMuX2Fw''@;'; + put 'put ''cGVuZEFmdGVyPWgsaD1oLl9uZXh0O2Vsc2V7Y29uc3QgQz10aGlzLl9nZXRPckNyZWF0ZVJlY29yZEZvcktleSh5LHYpO2g9dGhpcy5faW5zZXJ0QmVmb3JlT3JBcHBlbmQoaCxDKX19KSxoKXtoLl9wcmV2JiYoaC5fcHJldi5fbmV4dD1udWxsKSx0aGlzLl9yZW1vdmFsc0hlYWQ9aDtmb3Io''@;'; + put 'put ''bGV0IHY9aDtudWxsIT09djt2PXYuX25leHRSZW1vdmVkKXY9PT10aGlzLl9tYXBIZWFkJiYodGhpcy5fbWFwSGVhZD1udWxsKSx0aGlzLl9yZWNvcmRzLmRlbGV0ZSh2LmtleSksdi5fbmV4dFJlbW92ZWQ9di5fbmV4dCx2LnByZXZpb3VzVmFsdWU9di5jdXJyZW50VmFsdWUsdi5jdXJyZW50''@;'; + put 'put ''VmFsdWU9bnVsbCx2Ll9wcmV2PW51bGwsdi5fbmV4dD1udWxsfXJldHVybiB0aGlzLl9jaGFuZ2VzVGFpbCYmKHRoaXMuX2NoYW5nZXNUYWlsLl9uZXh0Q2hhbmdlZD1udWxsKSx0aGlzLl9hZGRpdGlvbnNUYWlsJiYodGhpcy5fYWRkaXRpb25zVGFpbC5fbmV4dEFkZGVkPW51bGwpLHRoaXMu''@;'; + put 'put ''aXNEaXJ0eX1faW5zZXJ0QmVmb3JlT3JBcHBlbmQoZyxoKXtpZihnKXtjb25zdCB2PWcuX3ByZXY7cmV0dXJuIGguX25leHQ9ZyxoLl9wcmV2PXYsZy5fcHJldj1oLHYmJih2Ll9uZXh0PWgpLGc9PT10aGlzLl9tYXBIZWFkJiYodGhpcy5fbWFwSGVhZD1oKSx0aGlzLl9hcHBlbmRBZnRlcj1n''@;'; + put 'put ''LGd9cmV0dXJuIHRoaXMuX2FwcGVuZEFmdGVyPyh0aGlzLl9hcHBlbmRBZnRlci5fbmV4dD1oLGguX3ByZXY9dGhpcy5fYXBwZW5kQWZ0ZXIpOnRoaXMuX21hcEhlYWQ9aCx0aGlzLl9hcHBlbmRBZnRlcj1oLG51bGx9X2dldE9yQ3JlYXRlUmVjb3JkRm9yS2V5KGcsaCl7aWYodGhpcy5fcmVj''@;'; + put 'put ''b3Jkcy5oYXMoZykpe2NvbnN0IHk9dGhpcy5fcmVjb3Jkcy5nZXQoZyk7dGhpcy5fbWF5YmVBZGRUb0NoYW5nZXMoeSxoKTtjb25zdCBDPXkuX3ByZXYsST15Ll9uZXh0O3JldHVybiBDJiYoQy5fbmV4dD1JKSxJJiYoSS5fcHJldj1DKSx5Ll9uZXh0PW51bGwseS5fcHJldj1udWxsLHl9Y29u''@;'; + put 'put ''c3Qgdj1uZXcga3JlKGcpO3JldHVybiB0aGlzLl9yZWNvcmRzLnNldChnLHYpLHYuY3VycmVudFZhbHVlPWgsdGhpcy5fYWRkVG9BZGRpdGlvbnModiksdn1fcmVzZXQoKXtpZih0aGlzLmlzRGlydHkpe2xldCBnO2Zvcih0aGlzLl9wcmV2aW91c01hcEhlYWQ9dGhpcy5fbWFwSGVhZCxnPXRo''@;'; + put 'put ''aXMuX3ByZXZpb3VzTWFwSGVhZDtudWxsIT09ZztnPWcuX25leHQpZy5fbmV4dFByZXZpb3VzPWcuX25leHQ7Zm9yKGc9dGhpcy5fY2hhbmdlc0hlYWQ7bnVsbCE9PWc7Zz1nLl9uZXh0Q2hhbmdlZClnLnByZXZpb3VzVmFsdWU9Zy5jdXJyZW50VmFsdWU7Zm9yKGc9dGhpcy5fYWRkaXRpb25z''@;'; + put 'put ''SGVhZDtudWxsIT1nO2c9Zy5fbmV4dEFkZGVkKWcucHJldmlvdXNWYWx1ZT1nLmN1cnJlbnRWYWx1ZTt0aGlzLl9jaGFuZ2VzSGVhZD10aGlzLl9jaGFuZ2VzVGFpbD1udWxsLHRoaXMuX2FkZGl0aW9uc0hlYWQ9dGhpcy5fYWRkaXRpb25zVGFpbD1udWxsLHRoaXMuX3JlbW92YWxzSGVhZD1u''@;'; + put 'put ''dWxsfX1fbWF5YmVBZGRUb0NoYW5nZXMoZyxoKXtPYmplY3QuaXMoaCxnLmN1cnJlbnRWYWx1ZSl8fChnLnByZXZpb3VzVmFsdWU9Zy5jdXJyZW50VmFsdWUsZy5jdXJyZW50VmFsdWU9aCx0aGlzLl9hZGRUb0NoYW5nZXMoZykpfV9hZGRUb0FkZGl0aW9ucyhnKXtudWxsPT09dGhpcy5fYWRk''@;'; + put 'put ''aXRpb25zSGVhZD90aGlzLl9hZGRpdGlvbnNIZWFkPXRoaXMuX2FkZGl0aW9uc1RhaWw9ZzoodGhpcy5fYWRkaXRpb25zVGFpbC5fbmV4dEFkZGVkPWcsdGhpcy5fYWRkaXRpb25zVGFpbD1nKX1fYWRkVG9DaGFuZ2VzKGcpe251bGw9PT10aGlzLl9jaGFuZ2VzSGVhZD90aGlzLl9jaGFuZ2Vz''@;'; + put 'put ''SGVhZD10aGlzLl9jaGFuZ2VzVGFpbD1nOih0aGlzLl9jaGFuZ2VzVGFpbC5fbmV4dENoYW5nZWQ9Zyx0aGlzLl9jaGFuZ2VzVGFpbD1nKX1fZm9yRWFjaChnLGgpe2cgaW5zdGFuY2VvZiBNYXA/Zy5mb3JFYWNoKGgpOk9iamVjdC5rZXlzKGcpLmZvckVhY2godj0+aChnW3ZdLHYpKX19Y2xh''@;'; + put 'put ''c3Mga3Jle2NvbnN0cnVjdG9yKGcpe3RoaXMua2V5PWcsdGhpcy5wcmV2aW91c1ZhbHVlPW51bGwsdGhpcy5jdXJyZW50VmFsdWU9bnVsbCx0aGlzLl9uZXh0UHJldmlvdXM9bnVsbCx0aGlzLl9uZXh0PW51bGwsdGhpcy5fcHJldj1udWxsLHRoaXMuX25leHRBZGRlZD1udWxsLHRoaXMuX25l''@;'; + put 'put ''eHRSZW1vdmVkPW51bGwsdGhpcy5fbmV4dENoYW5nZWQ9bnVsbH19ZnVuY3Rpb24gTFQoKXtyZXR1cm4gbmV3IEJBKFtuZXcgTUNdKX1sZXQgQkE9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoKXt0aGlzLmZhY3Rvcmllcz1ofXN0YXRpYyBjcmVhdGUoaCx2KXtpZihudWxsIT12KXtjb25z''@;'; + put 'put ''dCB5PXYuZmFjdG9yaWVzLnNsaWNlKCk7aD1oLmNvbmNhdCh5KX1yZXR1cm4gbmV3IGQoaCl9c3RhdGljIGV4dGVuZChoKXtyZXR1cm57cHJvdmlkZTpkLHVzZUZhY3Rvcnk6dj0+ZC5jcmVhdGUoaCx2fHxMVCgpKSxkZXBzOltbZCxuZXcgTDQsbmV3IG1mXV19fWZpbmQoaCl7Y29uc3Qgdj10''@;'; + put 'put ''aGlzLmZhY3Rvcmllcy5maW5kKHk9Pnkuc3VwcG9ydHMoaCkpO2lmKG51bGwhPXYpcmV0dXJuIHY7dGhyb3cgbmV3IGVuKDkwMSwhMSl9fXJldHVybiBkLlx1MDI3NXByb3Y9QWkoe3Rva2VuOmQscHJvdmlkZWRJbjoicm9vdCIsZmFjdG9yeTpMVH0pLGR9KSgpO2Z1bmN0aW9uIHFHKCl7cmV0''@;'; + put 'put ''dXJuIG5ldyBFQyhbbmV3ICRHXSl9bGV0IEVDPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCl7dGhpcy5mYWN0b3JpZXM9aH1zdGF0aWMgY3JlYXRlKGgsdil7aWYodil7Y29uc3QgeT12LmZhY3Rvcmllcy5zbGljZSgpO2g9aC5jb25jYXQoeSl9cmV0dXJuIG5ldyBkKGgpfXN0YXRpYyBl''@;'; + put 'put ''eHRlbmQoaCl7cmV0dXJue3Byb3ZpZGU6ZCx1c2VGYWN0b3J5OnY9PmQuY3JlYXRlKGgsdnx8cUcoKSksZGVwczpbW2QsbmV3IEw0LG5ldyBtZl1dfX1maW5kKGgpe2NvbnN0IHY9dGhpcy5mYWN0b3JpZXMuZmluZCh5PT55LnN1cHBvcnRzKGgpKTtpZih2KXJldHVybiB2O3Rocm93IG5ldyBl''@;'; + put 'put ''big5MDEsITEpfX1yZXR1cm4gZC5cdTAyNzVwcm92PUFpKHt0b2tlbjpkLHByb3ZpZGVkSW46InJvb3QiLGZhY3Rvcnk6cUd9KSxkfSkoKTtjb25zdCBuVz1yRihudWxsLCJjb3JlIixbXSk7bGV0IEVyZT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgpe319cmV0dXJuIGQuXHUwMjc1ZmFj''@;'; + put 'put ''PWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoQ2koa0MpKX0sZC5cdTAyNzVtb2Q9Y28oe3R5cGU6ZH0pLGQuXHUwMjc1aW5qPWIwKHt9KSxkfSkoKTtmdW5jdGlvbiBINihkKXtyZXR1cm4iYm9vbGVhbiI9PXR5cGVvZiBkP2Q6bnVsbCE9ZCYmImZhbHNlIiE9PWR9bGV0IG83PW51bGw7''@;'; + put 'put ''ZnVuY3Rpb24gVWQoKXtyZXR1cm4gbzd9Y29uc3QgcHM9bmV3IHplKCJEb2N1bWVudFRva2VuIik7bGV0IE9UPSgoKT0+e2NsYXNzIGR7aGlzdG9yeUdvKGgpe3Rocm93IG5ldyBFcnJvcigiTm90IGltcGxlbWVudGVkIil9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4g''@;'; + put 'put ''bmV3KGh8fGQpfSxkLlx1MDI3NXByb3Y9QWkoe3Rva2VuOmQsZmFjdG9yeTpmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbiBvVygpe3JldHVybiBDaShhVyl9KCl9LHByb3ZpZGVkSW46InBsYXRmb3JtIn0pLGR9KSgpO2NvbnN0IFJyZT1uZXcgemUoIkxvY2F0aW9uIEluaXRpYWxpemVkIik7''@;'; + put 'put ''bGV0IGFXPSgoKT0+e2NsYXNzIGQgZXh0ZW5kcyBPVHtjb25zdHJ1Y3RvcihoKXtzdXBlcigpLHRoaXMuX2RvYz1oLHRoaXMuX2luaXQoKX1faW5pdCgpe3RoaXMubG9jYXRpb249d2luZG93LmxvY2F0aW9uLHRoaXMuX2hpc3Rvcnk9d2luZG93Lmhpc3Rvcnl9Z2V0QmFzZUhyZWZGcm9tRE9N''@;'; + put 'put ''KCl7cmV0dXJuIFVkKCkuZ2V0QmFzZUhyZWYodGhpcy5fZG9jKX1vblBvcFN0YXRlKGgpe2NvbnN0IHY9VWQoKS5nZXRHbG9iYWxFdmVudFRhcmdldCh0aGlzLl9kb2MsIndpbmRvdyIpO3JldHVybiB2LmFkZEV2ZW50TGlzdGVuZXIoInBvcHN0YXRlIixoLCExKSwoKT0+di5yZW1vdmVFdmVu''@;'; + put 'put ''dExpc3RlbmVyKCJwb3BzdGF0ZSIsaCl9b25IYXNoQ2hhbmdlKGgpe2NvbnN0IHY9VWQoKS5nZXRHbG9iYWxFdmVudFRhcmdldCh0aGlzLl9kb2MsIndpbmRvdyIpO3JldHVybiB2LmFkZEV2ZW50TGlzdGVuZXIoImhhc2hjaGFuZ2UiLGgsITEpLCgpPT52LnJlbW92ZUV2ZW50TGlzdGVuZXIo''@;'; + put 'put ''Imhhc2hjaGFuZ2UiLGgpfWdldCBocmVmKCl7cmV0dXJuIHRoaXMubG9jYXRpb24uaHJlZn1nZXQgcHJvdG9jb2woKXtyZXR1cm4gdGhpcy5sb2NhdGlvbi5wcm90b2NvbH1nZXQgaG9zdG5hbWUoKXtyZXR1cm4gdGhpcy5sb2NhdGlvbi5ob3N0bmFtZX1nZXQgcG9ydCgpe3JldHVybiB0aGlz''@;'; + put 'put ''LmxvY2F0aW9uLnBvcnR9Z2V0IHBhdGhuYW1lKCl7cmV0dXJuIHRoaXMubG9jYXRpb24ucGF0aG5hbWV9Z2V0IHNlYXJjaCgpe3JldHVybiB0aGlzLmxvY2F0aW9uLnNlYXJjaH1nZXQgaGFzaCgpe3JldHVybiB0aGlzLmxvY2F0aW9uLmhhc2h9c2V0IHBhdGhuYW1lKGgpe3RoaXMubG9jYXRp''@;'; + put 'put ''b24ucGF0aG5hbWU9aH1wdXNoU3RhdGUoaCx2LHkpe2xXKCk/dGhpcy5faGlzdG9yeS5wdXNoU3RhdGUoaCx2LHkpOnRoaXMubG9jYXRpb24uaGFzaD15fXJlcGxhY2VTdGF0ZShoLHYseSl7bFcoKT90aGlzLl9oaXN0b3J5LnJlcGxhY2VTdGF0ZShoLHYseSk6dGhpcy5sb2NhdGlvbi5oYXNo''@;'; + put 'put ''PXl9Zm9yd2FyZCgpe3RoaXMuX2hpc3RvcnkuZm9yd2FyZCgpfWJhY2soKXt0aGlzLl9oaXN0b3J5LmJhY2soKX1oaXN0b3J5R28oaD0wKXt0aGlzLl9oaXN0b3J5LmdvKGgpfWdldFN0YXRlKCl7cmV0dXJuIHRoaXMuX2hpc3Rvcnkuc3RhdGV9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlv''@;'; + put 'put ''bihoKXtyZXR1cm4gbmV3KGh8fGQpKENpKHBzKSl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uIGhGKCl7cmV0dXJuIG5ldyBhVyhDaShwcykpfSgpfSxwcm92aWRlZEluOiJwbGF0Zm9ybSJ9KSxkfSkoKTtmdW5jdGlvbiBsVygp''@;'; + put 'put ''e3JldHVybiEhd2luZG93Lmhpc3RvcnkucHVzaFN0YXRlfWZ1bmN0aW9uIHJoKGQsZyl7aWYoMD09ZC5sZW5ndGgpcmV0dXJuIGc7aWYoMD09Zy5sZW5ndGgpcmV0dXJuIGQ7bGV0IGg9MDtyZXR1cm4gZC5lbmRzV2l0aCgiLyIpJiZoKyssZy5zdGFydHNXaXRoKCIvIikmJmgrKywyPT1oP2Qr''@;'; + put 'put ''Zy5zdWJzdHJpbmcoMSk6MT09aD9kK2c6ZCsiLyIrZ31mdW5jdGlvbiBkRihkKXtjb25zdCBnPWQubWF0Y2goLyN8XD98JC8pLGg9ZyYmZy5pbmRleHx8ZC5sZW5ndGg7cmV0dXJuIGQuc2xpY2UoMCxoLSgiLyI9PT1kW2gtMV0/MTowKSkrZC5zbGljZShoKX1mdW5jdGlvbiBucChkKXtyZXR1''@;'; + put 'put ''cm4gZCYmIj8iIT09ZFswXT8iPyIrZDpkfWxldCBONj0oKCk9PntjbGFzcyBke2hpc3RvcnlHbyhoKXt0aHJvdyBuZXcgRXJyb3IoIk5vdCBpbXBsZW1lbnRlZCIpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVwcm92PUFpKHt0b2tl''@;'; + put 'put ''bjpkLGZhY3Rvcnk6ZnVuY3Rpb24oKXtyZXR1cm4gaDIodVcpfSxwcm92aWRlZEluOiJyb290In0pLGR9KSgpO2NvbnN0IHNXPW5ldyB6ZSgiYXBwQmFzZUhyZWYiKTtsZXQgdVc9KCgpPT57Y2xhc3MgZCBleHRlbmRzIE42e2NvbnN0cnVjdG9yKGgsdil7dmFyIHksQyxJO3N1cGVyKCksdGhp''@;'; + put 'put ''cy5fcGxhdGZvcm1Mb2NhdGlvbj1oLHRoaXMuX3JlbW92ZUxpc3RlbmVyRm5zPVtdLHRoaXMuX2Jhc2VIcmVmPW51bGwhPT0oST1udWxsIT09KHk9bnVsbCE9dj92OnRoaXMuX3BsYXRmb3JtTG9jYXRpb24uZ2V0QmFzZUhyZWZGcm9tRE9NKCkpJiZ2b2lkIDAhPT15P3k6bnVsbD09PShDPWgy''@;'; + put 'put ''KHBzKS5sb2NhdGlvbil8fHZvaWQgMD09PUM/dm9pZCAwOkMub3JpZ2luKSYmdm9pZCAwIT09ST9JOiIifW5nT25EZXN0cm95KCl7Zm9yKDt0aGlzLl9yZW1vdmVMaXN0ZW5lckZucy5sZW5ndGg7KXRoaXMuX3JlbW92ZUxpc3RlbmVyRm5zLnBvcCgpKCl9b25Qb3BTdGF0ZShoKXt0aGlzLl9y''@;'; + put 'put ''ZW1vdmVMaXN0ZW5lckZucy5wdXNoKHRoaXMuX3BsYXRmb3JtTG9jYXRpb24ub25Qb3BTdGF0ZShoKSx0aGlzLl9wbGF0Zm9ybUxvY2F0aW9uLm9uSGFzaENoYW5nZShoKSl9Z2V0QmFzZUhyZWYoKXtyZXR1cm4gdGhpcy5fYmFzZUhyZWZ9cHJlcGFyZUV4dGVybmFsVXJsKGgpe3JldHVybiBy''@;'; + put 'put ''aCh0aGlzLl9iYXNlSHJlZixoKX1wYXRoKGg9ITEpe2NvbnN0IHY9dGhpcy5fcGxhdGZvcm1Mb2NhdGlvbi5wYXRobmFtZStucCh0aGlzLl9wbGF0Zm9ybUxvY2F0aW9uLnNlYXJjaCkseT10aGlzLl9wbGF0Zm9ybUxvY2F0aW9uLmhhc2g7cmV0dXJuIHkmJmg/YCR7dn0ke3l9YDp2fXB1c2hT''@;'; + put 'put ''dGF0ZShoLHYseSxDKXtjb25zdCBJPXRoaXMucHJlcGFyZUV4dGVybmFsVXJsKHkrbnAoQykpO3RoaXMuX3BsYXRmb3JtTG9jYXRpb24ucHVzaFN0YXRlKGgsdixJKX1yZXBsYWNlU3RhdGUoaCx2LHksQyl7Y29uc3QgST10aGlzLnByZXBhcmVFeHRlcm5hbFVybCh5K25wKEMpKTt0aGlzLl9w''@;'; + put 'put ''bGF0Zm9ybUxvY2F0aW9uLnJlcGxhY2VTdGF0ZShoLHYsSSl9Zm9yd2FyZCgpe3RoaXMuX3BsYXRmb3JtTG9jYXRpb24uZm9yd2FyZCgpfWJhY2soKXt0aGlzLl9wbGF0Zm9ybUxvY2F0aW9uLmJhY2soKX1nZXRTdGF0ZSgpe3JldHVybiB0aGlzLl9wbGF0Zm9ybUxvY2F0aW9uLmdldFN0YXRl''@;'; + put 'put ''KCl9aGlzdG9yeUdvKGg9MCl7dmFyIHYseTtudWxsPT09KHk9KHY9dGhpcy5fcGxhdGZvcm1Mb2NhdGlvbikuaGlzdG9yeUdvKXx8dm9pZCAwPT09eXx8eS5jYWxsKHYsaCl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKENpKE9UKSxDaShzVyw4KSl9''@;'; + put 'put ''LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1ZmFjLHByb3ZpZGVkSW46InJvb3QifSksZH0pKCksQnJlPSgoKT0+e2NsYXNzIGQgZXh0ZW5kcyBONntjb25zdHJ1Y3RvcihoLHYpe3N1cGVyKCksdGhpcy5fcGxhdGZvcm1Mb2NhdGlvbj1oLHRoaXMuX2Jhc2VIcmVm''@;'; + put 'put ''PSIiLHRoaXMuX3JlbW92ZUxpc3RlbmVyRm5zPVtdLG51bGwhPXYmJih0aGlzLl9iYXNlSHJlZj12KX1uZ09uRGVzdHJveSgpe2Zvcig7dGhpcy5fcmVtb3ZlTGlzdGVuZXJGbnMubGVuZ3RoOyl0aGlzLl9yZW1vdmVMaXN0ZW5lckZucy5wb3AoKSgpfW9uUG9wU3RhdGUoaCl7dGhpcy5fcmVt''@;'; + put 'put ''b3ZlTGlzdGVuZXJGbnMucHVzaCh0aGlzLl9wbGF0Zm9ybUxvY2F0aW9uLm9uUG9wU3RhdGUoaCksdGhpcy5fcGxhdGZvcm1Mb2NhdGlvbi5vbkhhc2hDaGFuZ2UoaCkpfWdldEJhc2VIcmVmKCl7cmV0dXJuIHRoaXMuX2Jhc2VIcmVmfXBhdGgoaD0hMSl7bGV0IHY9dGhpcy5fcGxhdGZvcm1M''@;'; + put 'put ''b2NhdGlvbi5oYXNoO3JldHVybiBudWxsPT12JiYodj0iIyIpLHYubGVuZ3RoPjA/di5zdWJzdHJpbmcoMSk6dn1wcmVwYXJlRXh0ZXJuYWxVcmwoaCl7Y29uc3Qgdj1yaCh0aGlzLl9iYXNlSHJlZixoKTtyZXR1cm4gdi5sZW5ndGg+MD8iIyIrdjp2fXB1c2hTdGF0ZShoLHYseSxDKXtsZXQg''@;'; + put 'put ''ST10aGlzLnByZXBhcmVFeHRlcm5hbFVybCh5K25wKEMpKTswPT1JLmxlbmd0aCYmKEk9dGhpcy5fcGxhdGZvcm1Mb2NhdGlvbi5wYXRobmFtZSksdGhpcy5fcGxhdGZvcm1Mb2NhdGlvbi5wdXNoU3RhdGUoaCx2LEkpfXJlcGxhY2VTdGF0ZShoLHYseSxDKXtsZXQgST10aGlzLnByZXBhcmVF''@;'; + put 'put ''eHRlcm5hbFVybCh5K25wKEMpKTswPT1JLmxlbmd0aCYmKEk9dGhpcy5fcGxhdGZvcm1Mb2NhdGlvbi5wYXRobmFtZSksdGhpcy5fcGxhdGZvcm1Mb2NhdGlvbi5yZXBsYWNlU3RhdGUoaCx2LEkpfWZvcndhcmQoKXt0aGlzLl9wbGF0Zm9ybUxvY2F0aW9uLmZvcndhcmQoKX1iYWNrKCl7dGhp''@;'; + put 'put ''cy5fcGxhdGZvcm1Mb2NhdGlvbi5iYWNrKCl9Z2V0U3RhdGUoKXtyZXR1cm4gdGhpcy5fcGxhdGZvcm1Mb2NhdGlvbi5nZXRTdGF0ZSgpfWhpc3RvcnlHbyhoPTApe3ZhciB2LHk7bnVsbD09PSh5PSh2PXRoaXMuX3BsYXRmb3JtTG9jYXRpb24pLmhpc3RvcnlHbyl8fHZvaWQgMD09PXl8fHku''@;'; + put 'put ''Y2FsbCh2LGgpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShDaShPVCksQ2koc1csOCkpfSxkLlx1MDI3NXByb3Y9QWkoe3Rva2VuOmQsZmFjdG9yeTpkLlx1MDI3NWZhY30pLGR9KSgpLFY2PSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCl7dGhp''@;'; + put 'put ''cy5fc3ViamVjdD1uZXcgYXIsdGhpcy5fdXJsQ2hhbmdlTGlzdGVuZXJzPVtdLHRoaXMuX3VybENoYW5nZVN1YnNjcmlwdGlvbj1udWxsLHRoaXMuX2xvY2F0aW9uU3RyYXRlZ3k9aDtjb25zdCB2PXRoaXMuX2xvY2F0aW9uU3RyYXRlZ3kuZ2V0QmFzZUhyZWYoKTt0aGlzLl9iYXNlSHJlZj1k''@;'; + put 'put ''RihUQyh2KSksdGhpcy5fbG9jYXRpb25TdHJhdGVneS5vblBvcFN0YXRlKHk9Pnt0aGlzLl9zdWJqZWN0LmVtaXQoe3VybDp0aGlzLnBhdGgoITApLHBvcDohMCxzdGF0ZTp5LnN0YXRlLHR5cGU6eS50eXBlfSl9KX1uZ09uRGVzdHJveSgpe3ZhciBoO251bGw9PT0oaD10aGlzLl91cmxDaGFu''@;'; + put 'put ''Z2VTdWJzY3JpcHRpb24pfHx2b2lkIDA9PT1ofHxoLnVuc3Vic2NyaWJlKCksdGhpcy5fdXJsQ2hhbmdlTGlzdGVuZXJzPVtdfXBhdGgoaD0hMSl7cmV0dXJuIHRoaXMubm9ybWFsaXplKHRoaXMuX2xvY2F0aW9uU3RyYXRlZ3kucGF0aChoKSl9Z2V0U3RhdGUoKXtyZXR1cm4gdGhpcy5fbG9j''@;'; + put 'put ''YXRpb25TdHJhdGVneS5nZXRTdGF0ZSgpfWlzQ3VycmVudFBhdGhFcXVhbFRvKGgsdj0iIil7cmV0dXJuIHRoaXMucGF0aCgpPT10aGlzLm5vcm1hbGl6ZShoK25wKHYpKX1ub3JtYWxpemUoaCl7cmV0dXJuIGQuc3RyaXBUcmFpbGluZ1NsYXNoKGZ1bmN0aW9uIGZXKGQsZyl7cmV0dXJuIGQm''@;'; + put 'put ''Jmcuc3RhcnRzV2l0aChkKT9nLnN1YnN0cmluZyhkLmxlbmd0aCk6Z30odGhpcy5fYmFzZUhyZWYsVEMoaCkpKX1wcmVwYXJlRXh0ZXJuYWxVcmwoaCl7cmV0dXJuIGgmJiIvIiE9PWhbMF0mJihoPSIvIitoKSx0aGlzLl9sb2NhdGlvblN0cmF0ZWd5LnByZXBhcmVFeHRlcm5hbFVybChoKX1n''@;'; + put 'put ''byhoLHY9IiIseT1udWxsKXt0aGlzLl9sb2NhdGlvblN0cmF0ZWd5LnB1c2hTdGF0ZSh5LCIiLGgsdiksdGhpcy5fbm90aWZ5VXJsQ2hhbmdlTGlzdGVuZXJzKHRoaXMucHJlcGFyZUV4dGVybmFsVXJsKGgrbnAodikpLHkpfXJlcGxhY2VTdGF0ZShoLHY9IiIseT1udWxsKXt0aGlzLl9sb2Nh''@;'; + put 'put ''dGlvblN0cmF0ZWd5LnJlcGxhY2VTdGF0ZSh5LCIiLGgsdiksdGhpcy5fbm90aWZ5VXJsQ2hhbmdlTGlzdGVuZXJzKHRoaXMucHJlcGFyZUV4dGVybmFsVXJsKGgrbnAodikpLHkpfWZvcndhcmQoKXt0aGlzLl9sb2NhdGlvblN0cmF0ZWd5LmZvcndhcmQoKX1iYWNrKCl7dGhpcy5fbG9jYXRp''@;'; + put 'put ''b25TdHJhdGVneS5iYWNrKCl9aGlzdG9yeUdvKGg9MCl7dmFyIHYseTtudWxsPT09KHk9KHY9dGhpcy5fbG9jYXRpb25TdHJhdGVneSkuaGlzdG9yeUdvKXx8dm9pZCAwPT09eXx8eS5jYWxsKHYsaCl9b25VcmxDaGFuZ2UoaCl7cmV0dXJuIHRoaXMuX3VybENoYW5nZUxpc3RlbmVycy5wdXNo''@;'; + put 'put ''KGgpLHRoaXMuX3VybENoYW5nZVN1YnNjcmlwdGlvbnx8KHRoaXMuX3VybENoYW5nZVN1YnNjcmlwdGlvbj10aGlzLnN1YnNjcmliZSh2PT57dGhpcy5fbm90aWZ5VXJsQ2hhbmdlTGlzdGVuZXJzKHYudXJsLHYuc3RhdGUpfSkpLCgpPT57dmFyIHY7Y29uc3QgeT10aGlzLl91cmxDaGFuZ2VM''@;'; + put 'put ''aXN0ZW5lcnMuaW5kZXhPZihoKTt0aGlzLl91cmxDaGFuZ2VMaXN0ZW5lcnMuc3BsaWNlKHksMSksMD09PXRoaXMuX3VybENoYW5nZUxpc3RlbmVycy5sZW5ndGgmJihudWxsPT09KHY9dGhpcy5fdXJsQ2hhbmdlU3Vic2NyaXB0aW9uKXx8dm9pZCAwPT09dnx8di51bnN1YnNjcmliZSgpLHRo''@;'; + put 'put ''aXMuX3VybENoYW5nZVN1YnNjcmlwdGlvbj1udWxsKX19X25vdGlmeVVybENoYW5nZUxpc3RlbmVycyhoPSIiLHYpe3RoaXMuX3VybENoYW5nZUxpc3RlbmVycy5mb3JFYWNoKHk9PnkoaCx2KSl9c3Vic2NyaWJlKGgsdix5KXtyZXR1cm4gdGhpcy5fc3ViamVjdC5zdWJzY3JpYmUoe25leHQ6''@;'; + put 'put ''aCxlcnJvcjp2LGNvbXBsZXRlOnl9KX19cmV0dXJuIGQubm9ybWFsaXplUXVlcnlQYXJhbXM9bnAsZC5qb2luV2l0aFNsYXNoPXJoLGQuc3RyaXBUcmFpbGluZ1NsYXNoPWRGLGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoQ2koTjYpKX0sZC5cdTAyNzVwcm92PUFp''@;'; + put 'put ''KHt0b2tlbjpkLGZhY3Rvcnk6ZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24gY1coKXtyZXR1cm4gbmV3IFY2KENpKE42KSl9KCl9LHByb3ZpZGVkSW46InJvb3QifSksZH0pKCk7ZnVuY3Rpb24gVEMoZCl7cmV0dXJuIGQucmVwbGFjZSgvXC9pbmRleC5odG1sJC8sIiIpfXZhciBOMj0oKCk9''@;'; + put 'put ''PigoTjI9TjJ8fHt9KVtOMi5Gb3JtYXQ9MF09IkZvcm1hdCIsTjJbTjIuU3RhbmRhbG9uZT0xXT0iU3RhbmRhbG9uZSIsTjIpKSgpLENsPSgoKT0+KChDbD1DbHx8e30pW0NsLk5hcnJvdz0wXT0iTmFycm93IixDbFtDbC5BYmJyZXZpYXRlZD0xXT0iQWJicmV2aWF0ZWQiLENsW0NsLldpZGU9''@;'; + put 'put ''Ml09IldpZGUiLENsW0NsLlNob3J0PTNdPSJTaG9ydCIsQ2wpKSgpLHAxPSgoKT0+KChwMT1wMXx8e30pW3AxLlNob3J0PTBdPSJTaG9ydCIscDFbcDEuTWVkaXVtPTFdPSJNZWRpdW0iLHAxW3AxLkxvbmc9Ml09IkxvbmciLHAxW3AxLkZ1bGw9M109IkZ1bGwiLHAxKSkoKTtmdW5jdGlvbiBy''@;'; + put 'put ''cChkLGcsaCl7Y29uc3Qgdj1yYyhkKSxDPVczKFt2W01vLkRheXNGb3JtYXRdLHZbTW8uRGF5c1N0YW5kYWxvbmVdXSxnKTtyZXR1cm4gVzMoQyxoKX1mdW5jdGlvbiBSVChkLGcsaCl7Y29uc3Qgdj1yYyhkKSxDPVczKFt2W01vLk1vbnRoc0Zvcm1hdF0sdltNby5Nb250aHNTdGFuZGFsb25l''@;'; + put 'put ''XV0sZyk7cmV0dXJuIFczKEMsaCl9ZnVuY3Rpb24gVzMoZCxnKXtmb3IobGV0IGg9ZztoPi0xO2gtLSlpZih2b2lkIDAhPT1kW2hdKXJldHVybiBkW2hdO3Rocm93IG5ldyBFcnJvcigiTG9jYWxlIGRhdGEgQVBJOiBsb2NhbGUgZGF0YSB1bmRlZmluZWQiKX1mdW5jdGlvbiBiVyhkLGcpe2c9''@;'; + put 'put ''ZW5jb2RlVVJJQ29tcG9uZW50KGcpO2Zvcihjb25zdCBoIG9mIGQuc3BsaXQoIjsiKSl7Y29uc3Qgdj1oLmluZGV4T2YoIj0iKSxbeSxDXT0tMT09dj9baCwiIl06W2guc2xpY2UoMCx2KSxoLnNsaWNlKHYrMSldO2lmKHkudHJpbSgpPT09ZylyZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KEMp''@;'; + put 'put ''fXJldHVybiBudWxsfWxldCBsYz0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgsdix5LEMpe3RoaXMuX2l0ZXJhYmxlRGlmZmVycz1oLHRoaXMuX2tleVZhbHVlRGlmZmVycz12LHRoaXMuX25nRWw9eSx0aGlzLl9yZW5kZXJlcj1DLHRoaXMuX2l0ZXJhYmxlRGlmZmVyPW51bGwsdGhpcy5f''@;'; + put 'put ''a2V5VmFsdWVEaWZmZXI9bnVsbCx0aGlzLl9pbml0aWFsQ2xhc3Nlcz1bXSx0aGlzLl9yYXdDbGFzcz1udWxsfXNldCBrbGFzcyhoKXt0aGlzLl9yZW1vdmVDbGFzc2VzKHRoaXMuX2luaXRpYWxDbGFzc2VzKSx0aGlzLl9pbml0aWFsQ2xhc3Nlcz0ic3RyaW5nIj09dHlwZW9mIGg/aC5zcGxp''@;'; + put 'put ''dCgvXHMrLyk6W10sdGhpcy5fYXBwbHlDbGFzc2VzKHRoaXMuX2luaXRpYWxDbGFzc2VzKSx0aGlzLl9hcHBseUNsYXNzZXModGhpcy5fcmF3Q2xhc3MpfXNldCBuZ0NsYXNzKGgpe3RoaXMuX3JlbW92ZUNsYXNzZXModGhpcy5fcmF3Q2xhc3MpLHRoaXMuX2FwcGx5Q2xhc3Nlcyh0aGlzLl9p''@;'; + put 'put ''bml0aWFsQ2xhc3NlcyksdGhpcy5faXRlcmFibGVEaWZmZXI9bnVsbCx0aGlzLl9rZXlWYWx1ZURpZmZlcj1udWxsLHRoaXMuX3Jhd0NsYXNzPSJzdHJpbmciPT10eXBlb2YgaD9oLnNwbGl0KC9ccysvKTpoLHRoaXMuX3Jhd0NsYXNzJiYoRmQodGhpcy5fcmF3Q2xhc3MpP3RoaXMuX2l0ZXJh''@;'; + put 'put ''YmxlRGlmZmVyPXRoaXMuX2l0ZXJhYmxlRGlmZmVycy5maW5kKHRoaXMuX3Jhd0NsYXNzKS5jcmVhdGUoKTp0aGlzLl9rZXlWYWx1ZURpZmZlcj10aGlzLl9rZXlWYWx1ZURpZmZlcnMuZmluZCh0aGlzLl9yYXdDbGFzcykuY3JlYXRlKCkpfW5nRG9DaGVjaygpe2lmKHRoaXMuX2l0ZXJhYmxl''@;'; + put 'put ''RGlmZmVyKXtjb25zdCBoPXRoaXMuX2l0ZXJhYmxlRGlmZmVyLmRpZmYodGhpcy5fcmF3Q2xhc3MpO2gmJnRoaXMuX2FwcGx5SXRlcmFibGVDaGFuZ2VzKGgpfWVsc2UgaWYodGhpcy5fa2V5VmFsdWVEaWZmZXIpe2NvbnN0IGg9dGhpcy5fa2V5VmFsdWVEaWZmZXIuZGlmZih0aGlzLl9yYXdD''@;'; + put 'put ''bGFzcyk7aCYmdGhpcy5fYXBwbHlLZXlWYWx1ZUNoYW5nZXMoaCl9fV9hcHBseUtleVZhbHVlQ2hhbmdlcyhoKXtoLmZvckVhY2hBZGRlZEl0ZW0odj0+dGhpcy5fdG9nZ2xlQ2xhc3Modi5rZXksdi5jdXJyZW50VmFsdWUpKSxoLmZvckVhY2hDaGFuZ2VkSXRlbSh2PT50aGlzLl90b2dnbGVD''@;'; + put 'put ''bGFzcyh2LmtleSx2LmN1cnJlbnRWYWx1ZSkpLGguZm9yRWFjaFJlbW92ZWRJdGVtKHY9Pnt2LnByZXZpb3VzVmFsdWUmJnRoaXMuX3RvZ2dsZUNsYXNzKHYua2V5LCExKX0pfV9hcHBseUl0ZXJhYmxlQ2hhbmdlcyhoKXtoLmZvckVhY2hBZGRlZEl0ZW0odj0+e2lmKCJzdHJpbmciIT10eXBl''@;'; + put 'put ''b2Ygdi5pdGVtKXRocm93IG5ldyBFcnJvcihgTmdDbGFzcyBjYW4gb25seSB0b2dnbGUgQ1NTIGNsYXNzZXMgZXhwcmVzc2VkIGFzIHN0cmluZ3MsIGdvdCAke21uKHYuaXRlbSl9YCk7dGhpcy5fdG9nZ2xlQ2xhc3Modi5pdGVtLCEwKX0pLGguZm9yRWFjaFJlbW92ZWRJdGVtKHY9PnRoaXMu''@;'; + put 'put ''X3RvZ2dsZUNsYXNzKHYuaXRlbSwhMSkpfV9hcHBseUNsYXNzZXMoaCl7aCYmKEFycmF5LmlzQXJyYXkoaCl8fGggaW5zdGFuY2VvZiBTZXQ/aC5mb3JFYWNoKHY9PnRoaXMuX3RvZ2dsZUNsYXNzKHYsITApKTpPYmplY3Qua2V5cyhoKS5mb3JFYWNoKHY9PnRoaXMuX3RvZ2dsZUNsYXNzKHYs''@;'; + put 'put ''ISFoW3ZdKSkpfV9yZW1vdmVDbGFzc2VzKGgpe2gmJihBcnJheS5pc0FycmF5KGgpfHxoIGluc3RhbmNlb2YgU2V0P2guZm9yRWFjaCh2PT50aGlzLl90b2dnbGVDbGFzcyh2LCExKSk6T2JqZWN0LmtleXMoaCkuZm9yRWFjaCh2PT50aGlzLl90b2dnbGVDbGFzcyh2LCExKSkpfV90b2dnbGVD''@;'; + put 'put ''bGFzcyhoLHYpeyhoPWgudHJpbSgpKSYmaC5zcGxpdCgvXHMrL2cpLmZvckVhY2goeT0+e3Y/dGhpcy5fcmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5fbmdFbC5uYXRpdmVFbGVtZW50LHkpOnRoaXMuX3JlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuX25nRWwubmF0aXZlRWxlbWVudCx5KX0pfX1y''@;'; + put 'put ''ZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShLdChCQSksS3QoRUMpLEt0KGJvKSxLdChHYSkpfSxkLlx1MDI3NWRpcj1XaSh7dHlwZTpkLHNlbGVjdG9yczpbWyIiLCJuZ0NsYXNzIiwiIl1dLGlucHV0czp7a2xhc3M6WyJjbGFzcyIsImtsYXNzIl0sbmdD''@;'; + put 'put ''bGFzczoibmdDbGFzcyJ9LHN0YW5kYWxvbmU6ITB9KSxkfSkoKTtjbGFzcyBlaWV7Y29uc3RydWN0b3IoZyxoLHYseSl7dGhpcy4kaW1wbGljaXQ9Zyx0aGlzLm5nRm9yT2Y9aCx0aGlzLmluZGV4PXYsdGhpcy5jb3VudD15fWdldCBmaXJzdCgpe3JldHVybiAwPT09dGhpcy5pbmRleH1nZXQg''@;'; + put 'put ''bGFzdCgpe3JldHVybiB0aGlzLmluZGV4PT09dGhpcy5jb3VudC0xfWdldCBldmVuKCl7cmV0dXJuIHRoaXMuaW5kZXglMj09MH1nZXQgb2RkKCl7cmV0dXJuIXRoaXMuZXZlbn19bGV0IEVzPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2LHkpe3RoaXMuX3ZpZXdDb250YWluZXI9aCx0''@;'; + put 'put ''aGlzLl90ZW1wbGF0ZT12LHRoaXMuX2RpZmZlcnM9eSx0aGlzLl9uZ0Zvck9mPW51bGwsdGhpcy5fbmdGb3JPZkRpcnR5PSEwLHRoaXMuX2RpZmZlcj1udWxsfXNldCBuZ0Zvck9mKGgpe3RoaXMuX25nRm9yT2Y9aCx0aGlzLl9uZ0Zvck9mRGlydHk9ITB9c2V0IG5nRm9yVHJhY2tCeShoKXt0''@;'; + put 'put ''aGlzLl90cmFja0J5Rm49aH1nZXQgbmdGb3JUcmFja0J5KCl7cmV0dXJuIHRoaXMuX3RyYWNrQnlGbn1zZXQgbmdGb3JUZW1wbGF0ZShoKXtoJiYodGhpcy5fdGVtcGxhdGU9aCl9bmdEb0NoZWNrKCl7aWYodGhpcy5fbmdGb3JPZkRpcnR5KXt0aGlzLl9uZ0Zvck9mRGlydHk9ITE7Y29uc3Qg''@;'; + put 'put ''aD10aGlzLl9uZ0Zvck9mOyF0aGlzLl9kaWZmZXImJmgmJih0aGlzLl9kaWZmZXI9dGhpcy5fZGlmZmVycy5maW5kKGgpLmNyZWF0ZSh0aGlzLm5nRm9yVHJhY2tCeSkpfWlmKHRoaXMuX2RpZmZlcil7Y29uc3QgaD10aGlzLl9kaWZmZXIuZGlmZih0aGlzLl9uZ0Zvck9mKTtoJiZ0aGlzLl9h''@;'; + put 'put ''cHBseUNoYW5nZXMoaCl9fV9hcHBseUNoYW5nZXMoaCl7Y29uc3Qgdj10aGlzLl92aWV3Q29udGFpbmVyO2guZm9yRWFjaE9wZXJhdGlvbigoeSxDLEkpPT57aWYobnVsbD09eS5wcmV2aW91c0luZGV4KXYuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMuX3RlbXBsYXRlLG5ldyBlaWUoeS5pdGVt''@;'; + put 'put ''LHRoaXMuX25nRm9yT2YsLTEsLTEpLG51bGw9PT1JP3ZvaWQgMDpJKTtlbHNlIGlmKG51bGw9PUkpdi5yZW1vdmUobnVsbD09PUM/dm9pZCAwOkMpO2Vsc2UgaWYobnVsbCE9PUMpe2NvbnN0IGo9di5nZXQoQyk7di5tb3ZlKGosSSksa1coaix5KX19KTtmb3IobGV0IHk9MCxDPXYubGVuZ3Ro''@;'; + put 'put ''O3k8Qzt5Kyspe2NvbnN0IGo9di5nZXQoeSkuY29udGV4dDtqLmluZGV4PXksai5jb3VudD1DLGoubmdGb3JPZj10aGlzLl9uZ0Zvck9mfWguZm9yRWFjaElkZW50aXR5Q2hhbmdlKHk9PntrVyh2LmdldCh5LmN1cnJlbnRJbmRleCkseSl9KX1zdGF0aWMgbmdUZW1wbGF0ZUNvbnRleHRHdWFy''@;'; + put 'put ''ZChoLHYpe3JldHVybiEwfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShLdChVaSksS3QocXIpLEt0KEJBKSl9LGQuXHUwMjc1ZGlyPVdpKHt0eXBlOmQsc2VsZWN0b3JzOltbIiIsIm5nRm9yIiwiIiwibmdGb3JPZiIsIiJdXSxpbnB1dHM6e25nRm9y''@;'; + put 'put ''T2Y6Im5nRm9yT2YiLG5nRm9yVHJhY2tCeToibmdGb3JUcmFja0J5IixuZ0ZvclRlbXBsYXRlOiJuZ0ZvclRlbXBsYXRlIn0sc3RhbmRhbG9uZTohMH0pLGR9KSgpO2Z1bmN0aW9uIGtXKGQsZyl7ZC5jb250ZXh0LiRpbXBsaWNpdD1nLml0ZW19bGV0IE5vPSgoKT0+e2NsYXNzIGR7Y29uc3Ry''@;'; + put 'put ''dWN0b3IoaCx2KXt0aGlzLl92aWV3Q29udGFpbmVyPWgsdGhpcy5fY29udGV4dD1uZXcgbmllLHRoaXMuX3RoZW5UZW1wbGF0ZVJlZj1udWxsLHRoaXMuX2Vsc2VUZW1wbGF0ZVJlZj1udWxsLHRoaXMuX3RoZW5WaWV3UmVmPW51bGwsdGhpcy5fZWxzZVZpZXdSZWY9bnVsbCx0aGlzLl90aGVu''@;'; + put 'put ''VGVtcGxhdGVSZWY9dn1zZXQgbmdJZihoKXt0aGlzLl9jb250ZXh0LiRpbXBsaWNpdD10aGlzLl9jb250ZXh0Lm5nSWY9aCx0aGlzLl91cGRhdGVWaWV3KCl9c2V0IG5nSWZUaGVuKGgpe1NXKCJuZ0lmVGhlbiIsaCksdGhpcy5fdGhlblRlbXBsYXRlUmVmPWgsdGhpcy5fdGhlblZpZXdSZWY9''@;'; + put 'put ''bnVsbCx0aGlzLl91cGRhdGVWaWV3KCl9c2V0IG5nSWZFbHNlKGgpe1NXKCJuZ0lmRWxzZSIsaCksdGhpcy5fZWxzZVRlbXBsYXRlUmVmPWgsdGhpcy5fZWxzZVZpZXdSZWY9bnVsbCx0aGlzLl91cGRhdGVWaWV3KCl9X3VwZGF0ZVZpZXcoKXt0aGlzLl9jb250ZXh0LiRpbXBsaWNpdD90aGlz''@;'; + put 'put ''Ll90aGVuVmlld1JlZnx8KHRoaXMuX3ZpZXdDb250YWluZXIuY2xlYXIoKSx0aGlzLl9lbHNlVmlld1JlZj1udWxsLHRoaXMuX3RoZW5UZW1wbGF0ZVJlZiYmKHRoaXMuX3RoZW5WaWV3UmVmPXRoaXMuX3ZpZXdDb250YWluZXIuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMuX3RoZW5UZW1wbGF0''@;'; + put 'put ''ZVJlZix0aGlzLl9jb250ZXh0KSkpOnRoaXMuX2Vsc2VWaWV3UmVmfHwodGhpcy5fdmlld0NvbnRhaW5lci5jbGVhcigpLHRoaXMuX3RoZW5WaWV3UmVmPW51bGwsdGhpcy5fZWxzZVRlbXBsYXRlUmVmJiYodGhpcy5fZWxzZVZpZXdSZWY9dGhpcy5fdmlld0NvbnRhaW5lci5jcmVhdGVFbWJl''@;'; + put 'put ''ZGRlZFZpZXcodGhpcy5fZWxzZVRlbXBsYXRlUmVmLHRoaXMuX2NvbnRleHQpKSl9c3RhdGljIG5nVGVtcGxhdGVDb250ZXh0R3VhcmQoaCx2KXtyZXR1cm4hMH19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoS3QoVWkpLEt0KHFyKSl9LGQuXHUwMjc1''@;'; + put 'put ''ZGlyPVdpKHt0eXBlOmQsc2VsZWN0b3JzOltbIiIsIm5nSWYiLCIiXV0saW5wdXRzOntuZ0lmOiJuZ0lmIixuZ0lmVGhlbjoibmdJZlRoZW4iLG5nSWZFbHNlOiJuZ0lmRWxzZSJ9LHN0YW5kYWxvbmU6ITB9KSxkfSkoKTtjbGFzcyBuaWV7Y29uc3RydWN0b3IoKXt0aGlzLiRpbXBsaWNpdD1u''@;'; + put 'put ''dWxsLHRoaXMubmdJZj1udWxsfX1mdW5jdGlvbiBTVyhkLGcpe2lmKGcmJiFnLmNyZWF0ZUVtYmVkZGVkVmlldyl0aHJvdyBuZXcgRXJyb3IoYCR7ZH0gbXVzdCBiZSBhIFRlbXBsYXRlUmVmLCBidXQgcmVjZWl2ZWQgJyR7bW4oZyl9Jy5gKX1jbGFzcyBTRntjb25zdHJ1Y3RvcihnLGgpe3Ro''@;'; + put 'put ''aXMuX3ZpZXdDb250YWluZXJSZWY9Zyx0aGlzLl90ZW1wbGF0ZVJlZj1oLHRoaXMuX2NyZWF0ZWQ9ITF9Y3JlYXRlKCl7dGhpcy5fY3JlYXRlZD0hMCx0aGlzLl92aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLl90ZW1wbGF0ZVJlZil9ZGVzdHJveSgpe3RoaXMuX2Ny''@;'; + put 'put ''ZWF0ZWQ9ITEsdGhpcy5fdmlld0NvbnRhaW5lclJlZi5jbGVhcigpfWVuZm9yY2VTdGF0ZShnKXtnJiYhdGhpcy5fY3JlYXRlZD90aGlzLmNyZWF0ZSgpOiFnJiZ0aGlzLl9jcmVhdGVkJiZ0aGlzLmRlc3Ryb3koKX19bGV0IEpkPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoKXt0aGlzLl9k''@;'; + put 'put ''ZWZhdWx0VXNlZD0hMSx0aGlzLl9jYXNlQ291bnQ9MCx0aGlzLl9sYXN0Q2FzZUNoZWNrSW5kZXg9MCx0aGlzLl9sYXN0Q2FzZXNNYXRjaGVkPSExfXNldCBuZ1N3aXRjaChoKXt0aGlzLl9uZ1N3aXRjaD1oLDA9PT10aGlzLl9jYXNlQ291bnQmJnRoaXMuX3VwZGF0ZURlZmF1bHRDYXNlcygh''@;'; + put 'put ''MCl9X2FkZENhc2UoKXtyZXR1cm4gdGhpcy5fY2FzZUNvdW50Kyt9X2FkZERlZmF1bHQoaCl7dGhpcy5fZGVmYXVsdFZpZXdzfHwodGhpcy5fZGVmYXVsdFZpZXdzPVtdKSx0aGlzLl9kZWZhdWx0Vmlld3MucHVzaChoKX1fbWF0Y2hDYXNlKGgpe2NvbnN0IHY9aD09dGhpcy5fbmdTd2l0Y2g7''@;'; + put 'put ''cmV0dXJuIHRoaXMuX2xhc3RDYXNlc01hdGNoZWQ9dGhpcy5fbGFzdENhc2VzTWF0Y2hlZHx8dix0aGlzLl9sYXN0Q2FzZUNoZWNrSW5kZXgrKyx0aGlzLl9sYXN0Q2FzZUNoZWNrSW5kZXg9PT10aGlzLl9jYXNlQ291bnQmJih0aGlzLl91cGRhdGVEZWZhdWx0Q2FzZXMoIXRoaXMuX2xhc3RD''@;'; + put 'put ''YXNlc01hdGNoZWQpLHRoaXMuX2xhc3RDYXNlQ2hlY2tJbmRleD0wLHRoaXMuX2xhc3RDYXNlc01hdGNoZWQ9ITEpLHZ9X3VwZGF0ZURlZmF1bHRDYXNlcyhoKXtpZih0aGlzLl9kZWZhdWx0Vmlld3MmJmghPT10aGlzLl9kZWZhdWx0VXNlZCl7dGhpcy5fZGVmYXVsdFVzZWQ9aDtmb3IobGV0''@;'; + put 'put ''IHY9MDt2PHRoaXMuX2RlZmF1bHRWaWV3cy5sZW5ndGg7disrKXRoaXMuX2RlZmF1bHRWaWV3c1t2XS5lbmZvcmNlU3RhdGUoaCl9fX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVkaXI9V2koe3R5cGU6ZCxzZWxlY3RvcnM6W1siIiwi''@;'; + put 'put ''bmdTd2l0Y2giLCIiXV0saW5wdXRzOntuZ1N3aXRjaDoibmdTd2l0Y2gifSxzdGFuZGFsb25lOiEwfSksZH0pKCksaXA9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYseSl7dGhpcy5uZ1N3aXRjaD15LHkuX2FkZENhc2UoKSx0aGlzLl92aWV3PW5ldyBTRihoLHYpfW5nRG9DaGVjaygp''@;'; + put 'put ''e3RoaXMuX3ZpZXcuZW5mb3JjZVN0YXRlKHRoaXMubmdTd2l0Y2guX21hdGNoQ2FzZSh0aGlzLm5nU3dpdGNoQ2FzZSkpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShLdChVaSksS3QocXIpLEt0KEpkLDkpKX0sZC5cdTAyNzVkaXI9V2koe3R5cGU6''@;'; + put 'put ''ZCxzZWxlY3RvcnM6W1siIiwibmdTd2l0Y2hDYXNlIiwiIl1dLGlucHV0czp7bmdTd2l0Y2hDYXNlOiJuZ1N3aXRjaENhc2UifSxzdGFuZGFsb25lOiEwfSksZH0pKCksRVc9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYseSl7dGhpcy5fbmdFbD1oLHRoaXMuX2RpZmZlcnM9dix0aGlz''@;'; + put 'put ''Ll9yZW5kZXJlcj15LHRoaXMuX25nU3R5bGU9bnVsbCx0aGlzLl9kaWZmZXI9bnVsbH1zZXQgbmdTdHlsZShoKXt0aGlzLl9uZ1N0eWxlPWgsIXRoaXMuX2RpZmZlciYmaCYmKHRoaXMuX2RpZmZlcj10aGlzLl9kaWZmZXJzLmZpbmQoaCkuY3JlYXRlKCkpfW5nRG9DaGVjaygpe2lmKHRoaXMu''@;'; + put 'put ''X2RpZmZlcil7Y29uc3QgaD10aGlzLl9kaWZmZXIuZGlmZih0aGlzLl9uZ1N0eWxlKTtoJiZ0aGlzLl9hcHBseUNoYW5nZXMoaCl9fV9zZXRTdHlsZShoLHYpe2NvbnN0W3ksQ109aC5zcGxpdCgiLiIpLEk9LTE9PT15LmluZGV4T2YoIi0iKT92b2lkIDA6ZnUuRGFzaENhc2U7bnVsbCE9dj90''@;'; + put 'put ''aGlzLl9yZW5kZXJlci5zZXRTdHlsZSh0aGlzLl9uZ0VsLm5hdGl2ZUVsZW1lbnQseSxDP2Ake3Z9JHtDfWA6dixJKTp0aGlzLl9yZW5kZXJlci5yZW1vdmVTdHlsZSh0aGlzLl9uZ0VsLm5hdGl2ZUVsZW1lbnQseSxJKX1fYXBwbHlDaGFuZ2VzKGgpe2guZm9yRWFjaFJlbW92ZWRJdGVtKHY9''@;'; + put 'put ''PnRoaXMuX3NldFN0eWxlKHYua2V5LG51bGwpKSxoLmZvckVhY2hBZGRlZEl0ZW0odj0+dGhpcy5fc2V0U3R5bGUodi5rZXksdi5jdXJyZW50VmFsdWUpKSxoLmZvckVhY2hDaGFuZ2VkSXRlbSh2PT50aGlzLl9zZXRTdHlsZSh2LmtleSx2LmN1cnJlbnRWYWx1ZSkpfX1yZXR1cm4gZC5cdTAy''@;'; + put 'put ''NzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShLdChibyksS3QoRUMpLEt0KEdhKSl9LGQuXHUwMjc1ZGlyPVdpKHt0eXBlOmQsc2VsZWN0b3JzOltbIiIsIm5nU3R5bGUiLCIiXV0saW5wdXRzOntuZ1N0eWxlOiJuZ1N0eWxlIn0sc3RhbmRhbG9uZTohMH0pLGR9KSgpLFhkPSgo''@;'; + put 'put ''KT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCl7dGhpcy5fdmlld0NvbnRhaW5lclJlZj1oLHRoaXMuX3ZpZXdSZWY9bnVsbCx0aGlzLm5nVGVtcGxhdGVPdXRsZXRDb250ZXh0PW51bGwsdGhpcy5uZ1RlbXBsYXRlT3V0bGV0PW51bGwsdGhpcy5uZ1RlbXBsYXRlT3V0bGV0SW5qZWN0b3I9bnVs''@;'; + put 'put ''bH1uZ09uQ2hhbmdlcyhoKXtpZihoLm5nVGVtcGxhdGVPdXRsZXR8fGgubmdUZW1wbGF0ZU91dGxldEluamVjdG9yKXtjb25zdCB2PXRoaXMuX3ZpZXdDb250YWluZXJSZWY7aWYodGhpcy5fdmlld1JlZiYmdi5yZW1vdmUodi5pbmRleE9mKHRoaXMuX3ZpZXdSZWYpKSx0aGlzLm5nVGVtcGxh''@;'; + put 'put ''dGVPdXRsZXQpe2NvbnN0e25nVGVtcGxhdGVPdXRsZXQ6eSxuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dDpDLG5nVGVtcGxhdGVPdXRsZXRJbmplY3RvcjpJfT10aGlzO3RoaXMuX3ZpZXdSZWY9di5jcmVhdGVFbWJlZGRlZFZpZXcoeSxDLEk/e2luamVjdG9yOkl9OnZvaWQgMCl9ZWxzZSB0aGlz''@;'; + put 'put ''Ll92aWV3UmVmPW51bGx9ZWxzZSB0aGlzLl92aWV3UmVmJiZoLm5nVGVtcGxhdGVPdXRsZXRDb250ZXh0JiZ0aGlzLm5nVGVtcGxhdGVPdXRsZXRDb250ZXh0JiYodGhpcy5fdmlld1JlZi5jb250ZXh0PXRoaXMubmdUZW1wbGF0ZU91dGxldENvbnRleHQpfX1yZXR1cm4gZC5cdTAyNzVmYWM9''@;'; + put 'put ''ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShLdChVaSkpfSxkLlx1MDI3NWRpcj1XaSh7dHlwZTpkLHNlbGVjdG9yczpbWyIiLCJuZ1RlbXBsYXRlT3V0bGV0IiwiIl1dLGlucHV0czp7bmdUZW1wbGF0ZU91dGxldENvbnRleHQ6Im5nVGVtcGxhdGVPdXRsZXRDb250ZXh0IixuZ1RlbXBs''@;'; + put 'put ''YXRlT3V0bGV0OiJuZ1RlbXBsYXRlT3V0bGV0IixuZ1RlbXBsYXRlT3V0bGV0SW5qZWN0b3I6Im5nVGVtcGxhdGVPdXRsZXRJbmplY3RvciJ9LHN0YW5kYWxvbmU6ITAsZmVhdHVyZXM6W0QyXX0pLGR9KSgpO2NsYXNzIGpUe2NyZWF0ZVN1YnNjcmlwdGlvbihnLGgpe3JldHVybiBnLnN1YnNj''@;'; + put 'put ''cmliZSh7bmV4dDpoLGVycm9yOnY9Pnt0aHJvdyB2fX0pfWRpc3Bvc2UoZyl7Zy51bnN1YnNjcmliZSgpfX1jbGFzcyBOQ3tjcmVhdGVTdWJzY3JpcHRpb24oZyxoKXtyZXR1cm4gZy50aGVuKGgsdj0+e3Rocm93IHZ9KX1kaXNwb3NlKGcpe319Y29uc3QgVkM9bmV3IE5DLEI1PW5ldyBqVDts''@;'; + put 'put ''ZXQgV2g9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoKXt0aGlzLl9sYXRlc3RWYWx1ZT1udWxsLHRoaXMuX3N1YnNjcmlwdGlvbj1udWxsLHRoaXMuX29iaj1udWxsLHRoaXMuX3N0cmF0ZWd5PW51bGwsdGhpcy5fcmVmPWh9bmdPbkRlc3Ryb3koKXt0aGlzLl9zdWJzY3JpcHRpb24mJnRo''@;'; + put 'put ''aXMuX2Rpc3Bvc2UoKSx0aGlzLl9yZWY9bnVsbH10cmFuc2Zvcm0oaCl7cmV0dXJuIHRoaXMuX29iaj9oIT09dGhpcy5fb2JqPyh0aGlzLl9kaXNwb3NlKCksdGhpcy50cmFuc2Zvcm0oaCkpOnRoaXMuX2xhdGVzdFZhbHVlOihoJiZ0aGlzLl9zdWJzY3JpYmUoaCksdGhpcy5fbGF0ZXN0VmFs''@;'; + put 'put ''dWUpfV9zdWJzY3JpYmUoaCl7dGhpcy5fb2JqPWgsdGhpcy5fc3RyYXRlZ3k9dGhpcy5fc2VsZWN0U3RyYXRlZ3koaCksdGhpcy5fc3Vic2NyaXB0aW9uPXRoaXMuX3N0cmF0ZWd5LmNyZWF0ZVN1YnNjcmlwdGlvbihoLHY9PnRoaXMuX3VwZGF0ZUxhdGVzdFZhbHVlKGgsdikpfV9zZWxlY3RT''@;'; + put 'put ''dHJhdGVneShoKXtpZihWbShoKSlyZXR1cm4gVkM7aWYoQ3goaCkpcmV0dXJuIEI1O3Rocm93IGZ1bmN0aW9uIEtkKGQsZyl7cmV0dXJuIG5ldyBlbigyMTAwLCExKX0oKX1fZGlzcG9zZSgpe3RoaXMuX3N0cmF0ZWd5LmRpc3Bvc2UodGhpcy5fc3Vic2NyaXB0aW9uKSx0aGlzLl9sYXRlc3RW''@;'; + put 'put ''YWx1ZT1udWxsLHRoaXMuX3N1YnNjcmlwdGlvbj1udWxsLHRoaXMuX29iaj1udWxsfV91cGRhdGVMYXRlc3RWYWx1ZShoLHYpe2g9PT10aGlzLl9vYmomJih0aGlzLl9sYXRlc3RWYWx1ZT12LHRoaXMuX3JlZi5tYXJrRm9yQ2hlY2soKSl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbiho''@;'; + put 'put ''KXtyZXR1cm4gbmV3KGh8fGQpKEt0KGQxLDE2KSl9LGQuXHUwMjc1cGlwZT1Vcyh7bmFtZToiYXN5bmMiLHR5cGU6ZCxwdXJlOiExLHN0YW5kYWxvbmU6ITB9KSxkfSkoKSxJVz0oKCk9PntjbGFzcyBke3RyYW5zZm9ybShoKXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkoaCxudWxsLDIpfX1yZXR1''@;'; + put 'put ''cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVwaXBlPVVzKHtuYW1lOiJqc29uIix0eXBlOmQscHVyZTohMSxzdGFuZGFsb25lOiEwfSksZH0pKCksR1Q9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoKXt0aGlzLmRpZmZlcnM9aCx0aGlzLmtl''@;'; + put 'put ''eVZhbHVlcz1bXSx0aGlzLmNvbXBhcmVGbj1URn10cmFuc2Zvcm0oaCx2PVRGKXtpZighaHx8IShoIGluc3RhbmNlb2YgTWFwKSYmIm9iamVjdCIhPXR5cGVvZiBoKXJldHVybiBudWxsO3RoaXMuZGlmZmVyfHwodGhpcy5kaWZmZXI9dGhpcy5kaWZmZXJzLmZpbmQoaCkuY3JlYXRlKCkpO2Nv''@;'; + put 'put ''bnN0IHk9dGhpcy5kaWZmZXIuZGlmZihoKSxDPXYhPT10aGlzLmNvbXBhcmVGbjtyZXR1cm4geSYmKHRoaXMua2V5VmFsdWVzPVtdLHkuZm9yRWFjaEl0ZW0oST0+e3RoaXMua2V5VmFsdWVzLnB1c2goZnVuY3Rpb24gYWllKGQsZyl7cmV0dXJue2tleTpkLHZhbHVlOmd9fShJLmtleSxJLmN1''@;'; + put 'put ''cnJlbnRWYWx1ZSkpfSkpLCh5fHxDKSYmKHRoaXMua2V5VmFsdWVzLnNvcnQodiksdGhpcy5jb21wYXJlRm49diksdGhpcy5rZXlWYWx1ZXN9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKEt0KEVDLDE2KSl9LGQuXHUwMjc1cGlwZT1Vcyh7bmFtZToi''@;'; + put 'put ''a2V5dmFsdWUiLHR5cGU6ZCxwdXJlOiExLHN0YW5kYWxvbmU6ITB9KSxkfSkoKTtmdW5jdGlvbiBURihkLGcpe2NvbnN0IGg9ZC5rZXksdj1nLmtleTtpZihoPT09dilyZXR1cm4gMDtpZih2b2lkIDA9PT1oKXJldHVybiAxO2lmKHZvaWQgMD09PXYpcmV0dXJuLTE7aWYobnVsbD09PWgpcmV0''@;'; + put 'put ''dXJuIDE7aWYobnVsbD09PXYpcmV0dXJuLTE7aWYoInN0cmluZyI9PXR5cGVvZiBoJiYic3RyaW5nIj09dHlwZW9mIHYpcmV0dXJuIGg8dj8tMToxO2lmKCJudW1iZXIiPT10eXBlb2YgaCYmIm51bWJlciI9PXR5cGVvZiB2KXJldHVybiBoLXY7aWYoImJvb2xlYW4iPT10eXBlb2YgaCYmImJv''@;'; + put 'put ''b2xlYW4iPT10eXBlb2YgdilyZXR1cm4gaDx2Py0xOjE7Y29uc3QgeT1TdHJpbmcoaCksQz1TdHJpbmcodik7cmV0dXJuIHk9PUM/MDp5PEM/LTE6MX1sZXQgYmE9KCgpPT57Y2xhc3MgZHt9cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1''@;'; + put 'put ''bW9kPWNvKHt0eXBlOmR9KSxkLlx1MDI3NWluaj1iMCh7fSksZH0pKCk7Y29uc3QgTFc9ImJyb3dzZXIiO2Z1bmN0aW9uIFNsKGQpe3JldHVybiBkPT09TFd9bGV0IGNpZT0oKCk9PntjbGFzcyBke31yZXR1cm4gZC5cdTAyNzVwcm92PUFpKHt0b2tlbjpkLHByb3ZpZGVkSW46InJvb3QiLGZh''@;'; + put 'put ''Y3Rvcnk6KCk9Pm5ldyBCVyhDaShwcyksd2luZG93KX0pLGR9KSgpO2NsYXNzIEJXe2NvbnN0cnVjdG9yKGcsaCl7dGhpcy5kb2N1bWVudD1nLHRoaXMud2luZG93PWgsdGhpcy5vZmZzZXQ9KCk9PlswLDBdfXNldE9mZnNldChnKXt0aGlzLm9mZnNldD1BcnJheS5pc0FycmF5KGcpPygpPT5n''@;'; + put 'put ''Omd9Z2V0U2Nyb2xsUG9zaXRpb24oKXtyZXR1cm4gdGhpcy5zdXBwb3J0c1Njcm9sbGluZygpP1t0aGlzLndpbmRvdy5wYWdlWE9mZnNldCx0aGlzLndpbmRvdy5wYWdlWU9mZnNldF06WzAsMF19c2Nyb2xsVG9Qb3NpdGlvbihnKXt0aGlzLnN1cHBvcnRzU2Nyb2xsaW5nKCkmJnRoaXMud2lu''@;'; + put 'put ''ZG93LnNjcm9sbFRvKGdbMF0sZ1sxXSl9c2Nyb2xsVG9BbmNob3IoZyl7aWYoIXRoaXMuc3VwcG9ydHNTY3JvbGxpbmcoKSlyZXR1cm47Y29uc3QgaD1mdW5jdGlvbiBmaWUoZCxnKXtjb25zdCBoPWQuZ2V0RWxlbWVudEJ5SWQoZyl8fGQuZ2V0RWxlbWVudHNCeU5hbWUoZylbMF07aWYoaCly''@;'; + put 'put ''ZXR1cm4gaDtpZigiZnVuY3Rpb24iPT10eXBlb2YgZC5jcmVhdGVUcmVlV2Fsa2VyJiZkLmJvZHkmJihkLmJvZHkuY3JlYXRlU2hhZG93Um9vdHx8ZC5ib2R5LmF0dGFjaFNoYWRvdykpe2NvbnN0IHY9ZC5jcmVhdGVUcmVlV2Fsa2VyKGQuYm9keSxOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCk7''@;'; + put 'put ''bGV0IHk9di5jdXJyZW50Tm9kZTtmb3IoO3k7KXtjb25zdCBDPXkuc2hhZG93Um9vdDtpZihDKXtjb25zdCBJPUMuZ2V0RWxlbWVudEJ5SWQoZyl8fEMucXVlcnlTZWxlY3RvcihgW25hbWU9IiR7Z30iXWApO2lmKEkpcmV0dXJuIEl9eT12Lm5leHROb2RlKCl9fXJldHVybiBudWxsfSh0aGlz''@;'; + put 'put ''LmRvY3VtZW50LGcpO2gmJih0aGlzLnNjcm9sbFRvRWxlbWVudChoKSxoLmZvY3VzKCkpfXNldEhpc3RvcnlTY3JvbGxSZXN0b3JhdGlvbihnKXtpZih0aGlzLnN1cHBvcnRTY3JvbGxSZXN0b3JhdGlvbigpKXtjb25zdCBoPXRoaXMud2luZG93Lmhpc3Rvcnk7aCYmaC5zY3JvbGxSZXN0b3Jh''@;'; + put 'put ''dGlvbiYmKGguc2Nyb2xsUmVzdG9yYXRpb249Zyl9fXNjcm9sbFRvRWxlbWVudChnKXtjb25zdCBoPWcuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksdj1oLmxlZnQrdGhpcy53aW5kb3cucGFnZVhPZmZzZXQseT1oLnRvcCt0aGlzLndpbmRvdy5wYWdlWU9mZnNldCxDPXRoaXMub2Zmc2V0KCk7''@;'; + put 'put ''dGhpcy53aW5kb3cuc2Nyb2xsVG8odi1DWzBdLHktQ1sxXSl9c3VwcG9ydFNjcm9sbFJlc3RvcmF0aW9uKCl7dHJ5e2lmKCF0aGlzLnN1cHBvcnRzU2Nyb2xsaW5nKCkpcmV0dXJuITE7Y29uc3QgZz1QVyh0aGlzLndpbmRvdy5oaXN0b3J5KXx8UFcoT2JqZWN0LmdldFByb3RvdHlwZU9mKHRo''@;'; + put 'put ''aXMud2luZG93Lmhpc3RvcnkpKTtyZXR1cm4hKCFnfHwhZy53cml0YWJsZSYmIWcuc2V0KX1jYXRjaChnKXtyZXR1cm4hMX19c3VwcG9ydHNTY3JvbGxpbmcoKXt0cnl7cmV0dXJuISF0aGlzLndpbmRvdyYmISF0aGlzLndpbmRvdy5zY3JvbGxUbyYmInBhZ2VYT2Zmc2V0ImluIHRoaXMud2lu''@;'; + put 'put ''ZG93fWNhdGNoKGcpe3JldHVybiExfX19ZnVuY3Rpb24gUFcoZCl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCwic2Nyb2xsUmVzdG9yYXRpb24iKX1jbGFzcyBGV3t9Y2xhc3MgREYgZXh0ZW5kcyBjbGFzcyBoaWUgZXh0ZW5kcyBjbGFzcyBPcmV7fXtjb25zdHJ1''@;'; + put 'put ''Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5zdXBwb3J0c0RPTUV2ZW50cz0hMH19e3N0YXRpYyBtYWtlQ3VycmVudCgpeyFmdW5jdGlvbiBpVyhkKXtvN3x8KG83PWQpfShuZXcgREYpfW9uQW5kQ2FuY2VsKGcsaCx2KXtyZXR1cm4gZy5hZGRFdmVudExpc3RlbmVyKGgsdiwhMSks''@;'; + put 'put ''KCk9PntnLnJlbW92ZUV2ZW50TGlzdGVuZXIoaCx2LCExKX19ZGlzcGF0Y2hFdmVudChnLGgpe2cuZGlzcGF0Y2hFdmVudChoKX1yZW1vdmUoZyl7Zy5wYXJlbnROb2RlJiZnLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZyl9Y3JlYXRlRWxlbWVudChnLGgpe3JldHVybihoPWh8fHRoaXMuZ2V0''@;'; + put 'put ''RGVmYXVsdERvY3VtZW50KCkpLmNyZWF0ZUVsZW1lbnQoZyl9Y3JlYXRlSHRtbERvY3VtZW50KCl7cmV0dXJuIGRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZUhUTUxEb2N1bWVudCgiZmFrZVRpdGxlIil9Z2V0RGVmYXVsdERvY3VtZW50KCl7cmV0dXJuIGRvY3VtZW50fWlzRWxlbWVu''@;'; + put 'put ''dE5vZGUoZyl7cmV0dXJuIGcubm9kZVR5cGU9PT1Ob2RlLkVMRU1FTlRfTk9ERX1pc1NoYWRvd1Jvb3QoZyl7cmV0dXJuIGcgaW5zdGFuY2VvZiBEb2N1bWVudEZyYWdtZW50fWdldEdsb2JhbEV2ZW50VGFyZ2V0KGcsaCl7cmV0dXJuIndpbmRvdyI9PT1oP3dpbmRvdzoiZG9jdW1lbnQiPT09''@;'; + put 'put ''aD9nOiJib2R5Ij09PWg/Zy5ib2R5Om51bGx9Z2V0QmFzZUhyZWYoZyl7Y29uc3QgaD1mdW5jdGlvbiBkaWUoKXtyZXR1cm4gWkM9WkN8fGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImJhc2UiKSxaQz9aQy5nZXRBdHRyaWJ1dGUoImhyZWYiKTpudWxsfSgpO3JldHVybiBudWxsPT1oP251bGw6''@;'; + put 'put ''ZnVuY3Rpb24gcGllKGQpe1dUPVdUfHxkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIiksV1Quc2V0QXR0cmlidXRlKCJocmVmIixkKTtjb25zdCBnPVdULnBhdGhuYW1lO3JldHVybiIvIj09PWcuY2hhckF0KDApP2c6YC8ke2d9YH0oaCl9cmVzZXRCYXNlRWxlbWVudCgpe1pDPW51bGx9Z2V0''@;'; + put 'put ''VXNlckFnZW50KCl7cmV0dXJuIHdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50fWdldENvb2tpZShnKXtyZXR1cm4gYlcoZG9jdW1lbnQuY29va2llLGcpfX1sZXQgV1QsWkM9bnVsbDtjb25zdCBIVz1uZXcgemUoIlRSQU5TSVRJT05fSUQiKSxtaWU9W3twcm92aWRlOnlDLHVzZUZhY3Rvcnk6''@;'; + put 'put ''ZnVuY3Rpb24gZ2llKGQsZyxoKXtyZXR1cm4oKT0+e2guZ2V0KEFUKS5kb25lUHJvbWlzZS50aGVuKCgpPT57Y29uc3Qgdj1VZCgpLHk9Zy5xdWVyeVNlbGVjdG9yQWxsKGBzdHlsZVtuZy10cmFuc2l0aW9uPSIke2R9Il1gKTtmb3IobGV0IEM9MDtDPHkubGVuZ3RoO0MrKyl2LnJlbW92ZSh5''@;'; + put 'put ''W0NdKX0pfX0sZGVwczpbSFcscHMsa3NdLG11bHRpOiEwfV07bGV0IEFpZT0oKCk9PntjbGFzcyBke2J1aWxkKCl7cmV0dXJuIG5ldyBYTUxIdHRwUmVxdWVzdH19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46''@;'; + put 'put ''ZCxmYWN0b3J5OmQuXHUwMjc1ZmFjfSksZH0pKCk7Y29uc3QgWVQ9bmV3IHplKCJFdmVudE1hbmFnZXJQbHVnaW5zIik7bGV0IHU3PSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2KXt0aGlzLl96b25lPXYsdGhpcy5fZXZlbnROYW1lVG9QbHVnaW49bmV3IE1hcCxoLmZvckVhY2goeT0+''@;'; + put 'put ''eS5tYW5hZ2VyPXRoaXMpLHRoaXMuX3BsdWdpbnM9aC5zbGljZSgpLnJldmVyc2UoKX1hZGRFdmVudExpc3RlbmVyKGgsdix5KXtyZXR1cm4gdGhpcy5fZmluZFBsdWdpbkZvcih2KS5hZGRFdmVudExpc3RlbmVyKGgsdix5KX1hZGRHbG9iYWxFdmVudExpc3RlbmVyKGgsdix5KXtyZXR1cm4g''@;'; + put 'put ''dGhpcy5fZmluZFBsdWdpbkZvcih2KS5hZGRHbG9iYWxFdmVudExpc3RlbmVyKGgsdix5KX1nZXRab25lKCl7cmV0dXJuIHRoaXMuX3pvbmV9X2ZpbmRQbHVnaW5Gb3IoaCl7Y29uc3Qgdj10aGlzLl9ldmVudE5hbWVUb1BsdWdpbi5nZXQoaCk7aWYodilyZXR1cm4gdjtjb25zdCB5PXRoaXMu''@;'; + put 'put ''X3BsdWdpbnM7Zm9yKGxldCBDPTA7Qzx5Lmxlbmd0aDtDKyspe2NvbnN0IEk9eVtDXTtpZihJLnN1cHBvcnRzKGgpKXJldHVybiB0aGlzLl9ldmVudE5hbWVUb1BsdWdpbi5zZXQoaCxJKSxJfXRocm93IG5ldyBFcnJvcihgTm8gZXZlbnQgbWFuYWdlciBwbHVnaW4gZm91bmQgZm9yIGV2ZW50''@;'; + put 'put ''ICR7aH1gKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoQ2koWVQpLENpKF9sKSl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1ZmFjfSksZH0pKCk7Y2xhc3MgTEZ7Y29uc3RydWN0b3IoZyl7dGhpcy5fZG9jPWd9YWRk''@;'; + put 'put ''R2xvYmFsRXZlbnRMaXN0ZW5lcihnLGgsdil7Y29uc3QgeT1VZCgpLmdldEdsb2JhbEV2ZW50VGFyZ2V0KHRoaXMuX2RvYyxnKTtpZigheSl0aHJvdyBuZXcgRXJyb3IoYFVuc3VwcG9ydGVkIGV2ZW50IHRhcmdldCAke3l9IGZvciBldmVudCAke2h9YCk7cmV0dXJuIHRoaXMuYWRkRXZlbnRM''@;'; + put 'put ''aXN0ZW5lcih5LGgsdil9fWxldCBOVz0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKCl7dGhpcy5fc3R5bGVzU2V0PW5ldyBTZXR9YWRkU3R5bGVzKGgpe2NvbnN0IHY9bmV3IFNldDtoLmZvckVhY2goeT0+e3RoaXMuX3N0eWxlc1NldC5oYXMoeSl8fCh0aGlzLl9zdHlsZXNTZXQuYWRkKHkp''@;'; + put 'put ''LHYuYWRkKHkpKX0pLHRoaXMub25TdHlsZXNBZGRlZCh2KX1vblN0eWxlc0FkZGVkKGgpe31nZXRBbGxTdHlsZXMoKXtyZXR1cm4gQXJyYXkuZnJvbSh0aGlzLl9zdHlsZXNTZXQpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVwcm92''@;'; + put 'put ''PUFpKHt0b2tlbjpkLGZhY3Rvcnk6ZC5cdTAyNzVmYWN9KSxkfSkoKSx6Qz0oKCk9PntjbGFzcyBkIGV4dGVuZHMgTld7Y29uc3RydWN0b3IoaCl7c3VwZXIoKSx0aGlzLl9kb2M9aCx0aGlzLl9ob3N0Tm9kZXM9bmV3IE1hcCx0aGlzLl9ob3N0Tm9kZXMuc2V0KGguaGVhZCxbXSl9X2FkZFN0''@;'; + put 'put ''eWxlc1RvSG9zdChoLHYseSl7aC5mb3JFYWNoKEM9Pntjb25zdCBJPXRoaXMuX2RvYy5jcmVhdGVFbGVtZW50KCJzdHlsZSIpO0kudGV4dENvbnRlbnQ9Qyx5LnB1c2godi5hcHBlbmRDaGlsZChJKSl9KX1hZGRIb3N0KGgpe2NvbnN0IHY9W107dGhpcy5fYWRkU3R5bGVzVG9Ib3N0KHRoaXMu''@;'; + put 'put ''X3N0eWxlc1NldCxoLHYpLHRoaXMuX2hvc3ROb2Rlcy5zZXQoaCx2KX1yZW1vdmVIb3N0KGgpe2NvbnN0IHY9dGhpcy5faG9zdE5vZGVzLmdldChoKTt2JiZ2LmZvckVhY2goVlcpLHRoaXMuX2hvc3ROb2Rlcy5kZWxldGUoaCl9b25TdHlsZXNBZGRlZChoKXt0aGlzLl9ob3N0Tm9kZXMuZm9y''@;'; + put 'put ''RWFjaCgodix5KT0+e3RoaXMuX2FkZFN0eWxlc1RvSG9zdChoLHksdil9KX1uZ09uRGVzdHJveSgpe3RoaXMuX2hvc3ROb2Rlcy5mb3JFYWNoKGg9PmguZm9yRWFjaChWVykpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShDaShwcykpfSxkLlx1MDI3''@;'; + put 'put ''NXByb3Y9QWkoe3Rva2VuOmQsZmFjdG9yeTpkLlx1MDI3NWZhY30pLGR9KSgpO2Z1bmN0aW9uIFZXKGQpe1VkKCkucmVtb3ZlKGQpfWNvbnN0IE9GPXtzdmc6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIix4aHRtbDoiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIseGxpbms6Imh0''@;'; + put 'put ''dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiLHhtbDoiaHR0cDovL3d3dy53My5vcmcvWE1MLzE5OTgvbmFtZXNwYWNlIix4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC94bWxucy8iLG1hdGg6Imh0dHA6Ly93d3cudzMub3JnLzE5OTgvTWF0aE1MLyJ9LFJGPS8lQ09NUCUvZztmdW5j''@;'; + put 'put ''dGlvbiBRVChkLGcsaCl7Zm9yKGxldCB2PTA7djxnLmxlbmd0aDt2Kyspe2xldCB5PWdbdl07QXJyYXkuaXNBcnJheSh5KT9RVChkLHksaCk6KHk9eS5yZXBsYWNlKFJGLGQpLGgucHVzaCh5KSl9cmV0dXJuIGh9ZnVuY3Rpb24gWlcoZCl7cmV0dXJuIGc9PntpZigiX19uZ1Vud3JhcF9fIj09''@;'; + put 'put ''PWcpcmV0dXJuIGQ7ITE9PT1kKGcpJiYoZy5wcmV2ZW50RGVmYXVsdCgpLGcucmV0dXJuVmFsdWU9ITEpfX1sZXQgSlQ9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYseSl7dGhpcy5ldmVudE1hbmFnZXI9aCx0aGlzLnNoYXJlZFN0eWxlc0hvc3Q9dix0aGlzLmFwcElkPXksdGhpcy5y''@;'; + put 'put ''ZW5kZXJlckJ5Q29tcElkPW5ldyBNYXAsdGhpcy5kZWZhdWx0UmVuZGVyZXI9bmV3IEJGKGgpfWNyZWF0ZVJlbmRlcmVyKGgsdil7aWYoIWh8fCF2KXJldHVybiB0aGlzLmRlZmF1bHRSZW5kZXJlcjtzd2l0Y2godi5lbmNhcHN1bGF0aW9uKXtjYXNlIHgyLkVtdWxhdGVkOntsZXQgeT10aGlz''@;'; + put 'put ''LnJlbmRlcmVyQnlDb21wSWQuZ2V0KHYuaWQpO3JldHVybiB5fHwoeT1uZXcga2llKHRoaXMuZXZlbnRNYW5hZ2VyLHRoaXMuc2hhcmVkU3R5bGVzSG9zdCx2LHRoaXMuYXBwSWQpLHRoaXMucmVuZGVyZXJCeUNvbXBJZC5zZXQodi5pZCx5KSkseS5hcHBseVRvSG9zdChoKSx5fWNhc2UgMTpj''@;'; + put 'put ''YXNlIHgyLlNoYWRvd0RvbTpyZXR1cm4gbmV3IFhUKHRoaXMuZXZlbnRNYW5hZ2VyLHRoaXMuc2hhcmVkU3R5bGVzSG9zdCxoLHYpO2RlZmF1bHQ6aWYoIXRoaXMucmVuZGVyZXJCeUNvbXBJZC5oYXModi5pZCkpe2NvbnN0IHk9UVQodi5pZCx2LnN0eWxlcyxbXSk7dGhpcy5zaGFyZWRTdHls''@;'; + put 'put ''ZXNIb3N0LmFkZFN0eWxlcyh5KSx0aGlzLnJlbmRlcmVyQnlDb21wSWQuc2V0KHYuaWQsdGhpcy5kZWZhdWx0UmVuZGVyZXIpfXJldHVybiB0aGlzLmRlZmF1bHRSZW5kZXJlcn19YmVnaW4oKXt9ZW5kKCl7fX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxk''@;'; + put 'put ''KShDaSh1NyksQ2koekMpLENpKHdDKSl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1ZmFjfSksZH0pKCk7Y2xhc3MgQkZ7Y29uc3RydWN0b3IoZyl7dGhpcy5ldmVudE1hbmFnZXI9Zyx0aGlzLmRhdGE9T2JqZWN0LmNyZWF0ZShudWxsKSx0aGlzLmRlc3Ryb3lO''@;'; + put 'put ''b2RlPW51bGx9ZGVzdHJveSgpe31jcmVhdGVFbGVtZW50KGcsaCl7cmV0dXJuIGg/ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKE9GW2hdfHxoLGcpOmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoZyl9Y3JlYXRlQ29tbWVudChnKXtyZXR1cm4gZG9jdW1lbnQuY3JlYXRlQ29tbWVudChnKX1jcmVh''@;'; + put 'put ''dGVUZXh0KGcpe3JldHVybiBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShnKX1hcHBlbmRDaGlsZChnLGgpeyhHVyhnKT9nLmNvbnRlbnQ6ZykuYXBwZW5kQ2hpbGQoaCl9aW5zZXJ0QmVmb3JlKGcsaCx2KXtnJiYoR1coZyk/Zy5jb250ZW50OmcpLmluc2VydEJlZm9yZShoLHYpfXJlbW92ZUNo''@;'; + put 'put ''aWxkKGcsaCl7ZyYmZy5yZW1vdmVDaGlsZChoKX1zZWxlY3RSb290RWxlbWVudChnLGgpe2xldCB2PSJzdHJpbmciPT10eXBlb2YgZz9kb2N1bWVudC5xdWVyeVNlbGVjdG9yKGcpOmc7aWYoIXYpdGhyb3cgbmV3IEVycm9yKGBUaGUgc2VsZWN0b3IgIiR7Z30iIGRpZCBub3QgbWF0Y2ggYW55''@;'; + put 'put ''IGVsZW1lbnRzYCk7cmV0dXJuIGh8fCh2LnRleHRDb250ZW50PSIiKSx2fXBhcmVudE5vZGUoZyl7cmV0dXJuIGcucGFyZW50Tm9kZX1uZXh0U2libGluZyhnKXtyZXR1cm4gZy5uZXh0U2libGluZ31zZXRBdHRyaWJ1dGUoZyxoLHYseSl7aWYoeSl7aD15KyI6IitoO2NvbnN0IEM9T0ZbeV07''@;'; + put 'put ''Qz9nLnNldEF0dHJpYnV0ZU5TKEMsaCx2KTpnLnNldEF0dHJpYnV0ZShoLHYpfWVsc2UgZy5zZXRBdHRyaWJ1dGUoaCx2KX1yZW1vdmVBdHRyaWJ1dGUoZyxoLHYpe2lmKHYpe2NvbnN0IHk9T0Zbdl07eT9nLnJlbW92ZUF0dHJpYnV0ZU5TKHksaCk6Zy5yZW1vdmVBdHRyaWJ1dGUoYCR7dn06''@;'; + put 'put ''JHtofWApfWVsc2UgZy5yZW1vdmVBdHRyaWJ1dGUoaCl9YWRkQ2xhc3MoZyxoKXtnLmNsYXNzTGlzdC5hZGQoaCl9cmVtb3ZlQ2xhc3MoZyxoKXtnLmNsYXNzTGlzdC5yZW1vdmUoaCl9c2V0U3R5bGUoZyxoLHYseSl7eSYoZnUuRGFzaENhc2V8ZnUuSW1wb3J0YW50KT9nLnN0eWxlLnNldFBy''@;'; + put 'put ''b3BlcnR5KGgsdix5JmZ1LkltcG9ydGFudD8iaW1wb3J0YW50IjoiIik6Zy5zdHlsZVtoXT12fXJlbW92ZVN0eWxlKGcsaCx2KXt2JmZ1LkRhc2hDYXNlP2cuc3R5bGUucmVtb3ZlUHJvcGVydHkoaCk6Zy5zdHlsZVtoXT0iIn1zZXRQcm9wZXJ0eShnLGgsdil7Z1toXT12fXNldFZhbHVlKGcs''@;'; + put 'put ''aCl7Zy5ub2RlVmFsdWU9aH1saXN0ZW4oZyxoLHYpe3JldHVybiJzdHJpbmciPT10eXBlb2YgZz90aGlzLmV2ZW50TWFuYWdlci5hZGRHbG9iYWxFdmVudExpc3RlbmVyKGcsaCxaVyh2KSk6dGhpcy5ldmVudE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihnLGgsWlcodikpfX1mdW5jdGlvbiBH''@;'; + put 'put ''VyhkKXtyZXR1cm4iVEVNUExBVEUiPT09ZC50YWdOYW1lJiZ2b2lkIDAhPT1kLmNvbnRlbnR9Y2xhc3Mga2llIGV4dGVuZHMgQkZ7Y29uc3RydWN0b3IoZyxoLHYseSl7c3VwZXIoZyksdGhpcy5jb21wb25lbnQ9djtjb25zdCBDPVFUKHkrIi0iK3YuaWQsdi5zdHlsZXMsW10pO2guYWRkU3R5''@;'; + put 'put ''bGVzKEMpLHRoaXMuY29udGVudEF0dHI9ZnVuY3Rpb24gYmllKGQpe3JldHVybiJfbmdjb250ZW50LSVDT01QJSIucmVwbGFjZShSRixkKX0oeSsiLSIrdi5pZCksdGhpcy5ob3N0QXR0cj1mdW5jdGlvbiBfaWUoZCl7cmV0dXJuIl9uZ2hvc3QtJUNPTVAlIi5yZXBsYWNlKFJGLGQpfSh5KyIt''@;'; + put 'put ''Iit2LmlkKX1hcHBseVRvSG9zdChnKXtzdXBlci5zZXRBdHRyaWJ1dGUoZyx0aGlzLmhvc3RBdHRyLCIiKX1jcmVhdGVFbGVtZW50KGcsaCl7Y29uc3Qgdj1zdXBlci5jcmVhdGVFbGVtZW50KGcsaCk7cmV0dXJuIHN1cGVyLnNldEF0dHJpYnV0ZSh2LHRoaXMuY29udGVudEF0dHIsIiIpLHZ9''@;'; + put 'put ''fWNsYXNzIFhUIGV4dGVuZHMgQkZ7Y29uc3RydWN0b3IoZyxoLHYseSl7c3VwZXIoZyksdGhpcy5zaGFyZWRTdHlsZXNIb3N0PWgsdGhpcy5ob3N0RWw9dix0aGlzLnNoYWRvd1Jvb3Q9di5hdHRhY2hTaGFkb3coe21vZGU6Im9wZW4ifSksdGhpcy5zaGFyZWRTdHlsZXNIb3N0LmFkZEhvc3Qo''@;'; + put 'put ''dGhpcy5zaGFkb3dSb290KTtjb25zdCBDPVFUKHkuaWQseS5zdHlsZXMsW10pO2ZvcihsZXQgST0wO0k8Qy5sZW5ndGg7SSsrKXtjb25zdCBqPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInN0eWxlIik7ai50ZXh0Q29udGVudD1DW0ldLHRoaXMuc2hhZG93Um9vdC5hcHBlbmRDaGlsZChqKX19''@;'; + put 'put ''bm9kZU9yU2hhZG93Um9vdChnKXtyZXR1cm4gZz09PXRoaXMuaG9zdEVsP3RoaXMuc2hhZG93Um9vdDpnfWRlc3Ryb3koKXt0aGlzLnNoYXJlZFN0eWxlc0hvc3QucmVtb3ZlSG9zdCh0aGlzLnNoYWRvd1Jvb3QpfWFwcGVuZENoaWxkKGcsaCl7cmV0dXJuIHN1cGVyLmFwcGVuZENoaWxkKHRo''@;'; + put 'put ''aXMubm9kZU9yU2hhZG93Um9vdChnKSxoKX1pbnNlcnRCZWZvcmUoZyxoLHYpe3JldHVybiBzdXBlci5pbnNlcnRCZWZvcmUodGhpcy5ub2RlT3JTaGFkb3dSb290KGcpLGgsdil9cmVtb3ZlQ2hpbGQoZyxoKXtyZXR1cm4gc3VwZXIucmVtb3ZlQ2hpbGQodGhpcy5ub2RlT3JTaGFkb3dSb290''@;'; + put 'put ''KGcpLGgpfXBhcmVudE5vZGUoZyl7cmV0dXJuIHRoaXMubm9kZU9yU2hhZG93Um9vdChzdXBlci5wYXJlbnROb2RlKHRoaXMubm9kZU9yU2hhZG93Um9vdChnKSkpfX1sZXQgV1c9KCgpPT57Y2xhc3MgZCBleHRlbmRzIExGe2NvbnN0cnVjdG9yKGgpe3N1cGVyKGgpfXN1cHBvcnRzKGgpe3Jl''@;'; + put 'put ''dHVybiEwfWFkZEV2ZW50TGlzdGVuZXIoaCx2LHkpe3JldHVybiBoLmFkZEV2ZW50TGlzdGVuZXIodix5LCExKSwoKT0+dGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKGgsdix5KX1yZW1vdmVFdmVudExpc3RlbmVyKGgsdix5KXtyZXR1cm4gaC5yZW1vdmVFdmVudExpc3RlbmVyKHYseSl9fXJl''@;'; + put 'put ''dHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKENpKHBzKSl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1ZmFjfSksZH0pKCk7Y29uc3QgWVc9WyJhbHQiLCJjb250cm9sIiwibWV0YSIsInNoaWZ0Il0sTWllPXsiXGIiOiJCYWNr''@;'; + put 'put ''c3BhY2UiLCJcdCI6IlRhYiIsIlx4N2YiOiJEZWxldGUiLCJceDFiIjoiRXNjYXBlIixEZWw6IkRlbGV0ZSIsRXNjOiJFc2NhcGUiLExlZnQ6IkFycm93TGVmdCIsUmlnaHQ6IkFycm93UmlnaHQiLFVwOiJBcnJvd1VwIixEb3duOiJBcnJvd0Rvd24iLE1lbnU6IkNvbnRleHRNZW51IixTY3Jv''@;'; + put 'put ''bGw6IlNjcm9sbExvY2siLFdpbjoiT1MifSxVVz17QToiMSIsQjoiMiIsQzoiMyIsRDoiNCIsRToiNSIsRjoiNiIsRzoiNyIsSDoiOCIsSToiOSIsSjoiKiIsSzoiKyIsTToiLSIsTjoiLiIsTzoiLyIsImAiOiIwIiwiXHg5MCI6Ik51bUxvY2sifSxFaWU9e2FsdDpkPT5kLmFsdEtleSxjb250''@;'; + put 'put ''cm9sOmQ9PmQuY3RybEtleSxtZXRhOmQ9PmQubWV0YUtleSxzaGlmdDpkPT5kLnNoaWZ0S2V5fTtsZXQgeGllPSgoKT0+e2NsYXNzIGQgZXh0ZW5kcyBMRntjb25zdHJ1Y3RvcihoKXtzdXBlcihoKX1zdXBwb3J0cyhoKXtyZXR1cm4gbnVsbCE9ZC5wYXJzZUV2ZW50TmFtZShoKX1hZGRFdmVu''@;'; + put 'put ''dExpc3RlbmVyKGgsdix5KXtjb25zdCBDPWQucGFyc2VFdmVudE5hbWUodiksST1kLmV2ZW50Q2FsbGJhY2soQy5mdWxsS2V5LHksdGhpcy5tYW5hZ2VyLmdldFpvbmUoKSk7cmV0dXJuIHRoaXMubWFuYWdlci5nZXRab25lKCkucnVuT3V0c2lkZUFuZ3VsYXIoKCk9PlVkKCkub25BbmRDYW5j''@;'; + put 'put ''ZWwoaCxDLmRvbUV2ZW50TmFtZSxJKSl9c3RhdGljIHBhcnNlRXZlbnROYW1lKGgpe2NvbnN0IHY9aC50b0xvd2VyQ2FzZSgpLnNwbGl0KCIuIikseT12LnNoaWZ0KCk7aWYoMD09PXYubGVuZ3RofHwia2V5ZG93biIhPT15JiYia2V5dXAiIT09eSlyZXR1cm4gbnVsbDtjb25zdCBDPWQuX25v''@;'; + put 'put ''cm1hbGl6ZUtleSh2LnBvcCgpKTtsZXQgST0iIjtpZihZVy5mb3JFYWNoKHVlPT57Y29uc3QgX2U9di5pbmRleE9mKHVlKTtfZT4tMSYmKHYuc3BsaWNlKF9lLDEpLEkrPXVlKyIuIil9KSxJKz1DLDAhPXYubGVuZ3RofHwwPT09Qy5sZW5ndGgpcmV0dXJuIG51bGw7Y29uc3Qgaj17fTtyZXR1''@;'; + put 'put ''cm4gai5kb21FdmVudE5hbWU9eSxqLmZ1bGxLZXk9SSxqfXN0YXRpYyBnZXRFdmVudEZ1bGxLZXkoaCl7bGV0IHY9IiIseT1mdW5jdGlvbiBUaWUoZCl7bGV0IGc9ZC5rZXk7aWYobnVsbD09Zyl7aWYoZz1kLmtleUlkZW50aWZpZXIsbnVsbD09ZylyZXR1cm4iVW5pZGVudGlmaWVkIjtnLnN0''@;'; + put 'put ''YXJ0c1dpdGgoIlUrIikmJihnPVN0cmluZy5mcm9tQ2hhckNvZGUocGFyc2VJbnQoZy5zdWJzdHJpbmcoMiksMTYpKSwzPT09ZC5sb2NhdGlvbiYmVVcuaGFzT3duUHJvcGVydHkoZykmJihnPVVXW2ddKSl9cmV0dXJuIE1pZVtnXXx8Z30oaCk7cmV0dXJuIHk9eS50b0xvd2VyQ2FzZSgpLCIg''@;'; + put 'put ''Ij09PXk/eT0ic3BhY2UiOiIuIj09PXkmJih5PSJkb3QiKSxZVy5mb3JFYWNoKEM9PntDIT15JiYoMCxFaWVbQ10pKGgpJiYodis9QysiLiIpfSksdis9eSx2fXN0YXRpYyBldmVudENhbGxiYWNrKGgsdix5KXtyZXR1cm4gQz0+e2QuZ2V0RXZlbnRGdWxsS2V5KEMpPT09aCYmeS5ydW5HdWFy''@;'; + put 'put ''ZGVkKCgpPT52KEMpKX19c3RhdGljIF9ub3JtYWxpemVLZXkoaCl7cmV0dXJuImVzYyI9PT1oPyJlc2NhcGUiOmh9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKENpKHBzKSl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1''@;'; + put 'put ''ZmFjfSksZH0pKCk7Y29uc3QgUVc9W3twcm92aWRlOkwyLHVzZVZhbHVlOkxXfSx7cHJvdmlkZTpRUCx1c2VWYWx1ZTpmdW5jdGlvbiBJaWUoKXtERi5tYWtlQ3VycmVudCgpfSxtdWx0aTohMH0se3Byb3ZpZGU6cHMsdXNlRmFjdG9yeTpmdW5jdGlvbiBMaWUoKXtyZXR1cm4gZnVuY3Rpb24g''@;'; + put 'put ''SVIoZCl7bWI9ZH0oZG9jdW1lbnQpLGRvY3VtZW50fSxkZXBzOltdfV0sT2llPXJGKG5XLCJicm93c2VyIixRVyksSlc9bmV3IHplKCIiKSxYVz1be3Byb3ZpZGU6emgsdXNlQ2xhc3M6Y2xhc3Mgdmlle2FkZFRvV2luZG93KGcpe1BsLmdldEFuZ3VsYXJUZXN0YWJpbGl0eT0odix5PSEwKT0+''@;'; + put 'put ''e2NvbnN0IEM9Zy5maW5kVGVzdGFiaWxpdHlJblRyZWUodix5KTtpZihudWxsPT1DKXRocm93IG5ldyBFcnJvcigiQ291bGQgbm90IGZpbmQgdGVzdGFiaWxpdHkgZm9yIGVsZW1lbnQuIik7cmV0dXJuIEN9LFBsLmdldEFsbEFuZ3VsYXJUZXN0YWJpbGl0aWVzPSgpPT5nLmdldEFsbFRlc3Rh''@;'; + put 'put ''YmlsaXRpZXMoKSxQbC5nZXRBbGxBbmd1bGFyUm9vdEVsZW1lbnRzPSgpPT5nLmdldEFsbFJvb3RFbGVtZW50cygpLFBsLmZyYW1ld29ya1N0YWJpbGl6ZXJzfHwoUGwuZnJhbWV3b3JrU3RhYmlsaXplcnM9W10pLFBsLmZyYW1ld29ya1N0YWJpbGl6ZXJzLnB1c2godj0+e2NvbnN0IHk9UGwu''@;'; + put 'put ''Z2V0QWxsQW5ndWxhclRlc3RhYmlsaXRpZXMoKTtsZXQgQz15Lmxlbmd0aCxJPSExO2NvbnN0IGo9ZnVuY3Rpb24odWUpe0k9SXx8dWUsQy0tLDA9PUMmJnYoSSl9O3kuZm9yRWFjaChmdW5jdGlvbih1ZSl7dWUud2hlblN0YWJsZShqKX0pfSl9ZmluZFRlc3RhYmlsaXR5SW5UcmVlKGcsaCx2''@;'; + put 'put ''KXtpZihudWxsPT1oKXJldHVybiBudWxsO2NvbnN0IHk9Zy5nZXRUZXN0YWJpbGl0eShoKTtyZXR1cm4gbnVsbCE9eT95OnY/VWQoKS5pc1NoYWRvd1Jvb3QoaCk/dGhpcy5maW5kVGVzdGFiaWxpdHlJblRyZWUoZyxoLmhvc3QsITApOnRoaXMuZmluZFRlc3RhYmlsaXR5SW5UcmVlKGcsaC5w''@;'; + put 'put ''YXJlbnRFbGVtZW50LCEwKTpudWxsfX0sZGVwczpbXX0se3Byb3ZpZGU6a1QsdXNlQ2xhc3M6U1QsZGVwczpbX2wsZUYsemhdfSx7cHJvdmlkZTpTVCx1c2VDbGFzczpTVCxkZXBzOltfbCxlRix6aF19XSxLVz1be3Byb3ZpZGU6dm0sdXNlVmFsdWU6InJvb3QifSx7cHJvdmlkZTp2Nix1c2VG''@;'; + put 'put ''YWN0b3J5OmZ1bmN0aW9uIERpZSgpe3JldHVybiBuZXcgdjZ9LGRlcHM6W119LHtwcm92aWRlOllULHVzZUNsYXNzOldXLG11bHRpOiEwLGRlcHM6W3BzLF9sLEwyXX0se3Byb3ZpZGU6WVQsdXNlQ2xhc3M6eGllLG11bHRpOiEwLGRlcHM6W3BzXX0se3Byb3ZpZGU6SlQsdXNlQ2xhc3M6SlQs''@;'; + put 'put ''ZGVwczpbdTcsekMsd0NdfSx7cHJvdmlkZTpFZCx1c2VFeGlzdGluZzpKVH0se3Byb3ZpZGU6TlcsdXNlRXhpc3Rpbmc6ekN9LHtwcm92aWRlOnpDLHVzZUNsYXNzOnpDLGRlcHM6W3BzXX0se3Byb3ZpZGU6dTcsdXNlQ2xhc3M6dTcsZGVwczpbWVQsX2xdfSx7cHJvdmlkZTpGVyx1c2VDbGFz''@;'; + put 'put ''czpBaWUsZGVwczpbXX0sW11dO2xldCAkVz0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgpe31zdGF0aWMgd2l0aFNlcnZlclRyYW5zaXRpb24oaCl7cmV0dXJue25nTW9kdWxlOmQscHJvdmlkZXJzOlt7cHJvdmlkZTp3Qyx1c2VWYWx1ZTpoLmFwcElkfSx7cHJvdmlkZTpIVyx1c2VFeGlz''@;'; + put 'put ''dGluZzp3Q30sbWllXX19fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKENpKEpXLDEyKSl9LGQuXHUwMjc1bW9kPWNvKHt0eXBlOmR9KSxkLlx1MDI3NWluaj1iMCh7cHJvdmlkZXJzOlsuLi5LVywuLi5YV10saW1wb3J0czpbYmEsRXJlXX0pLGR9KSgp''@;'; + put 'put ''LHpBPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCl7dGhpcy5fZG9jPWh9Z2V0VGl0bGUoKXtyZXR1cm4gdGhpcy5fZG9jLnRpdGxlfXNldFRpdGxlKGgpe3RoaXMuX2RvYy50aXRsZT1ofHwiIn19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoQ2ko''@;'; + put 'put ''cHMpKX0sZC5cdTAyNzVwcm92PUFpKHt0b2tlbjpkLGZhY3Rvcnk6ZnVuY3Rpb24oaCl7bGV0IHY9bnVsbDtyZXR1cm4gdj1oP25ldyBoOmZ1bmN0aW9uIGFwKCl7cmV0dXJuIG5ldyB6QShDaShwcykpfSgpLHZ9LHByb3ZpZGVkSW46InJvb3QifSksZH0pKCk7InVuZGVmaW5lZCIhPXR5cGVv''@;'; + put 'put ''ZiB3aW5kb3cmJndpbmRvdztsZXQgYzc9KCgpPT57Y2xhc3MgZHt9cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmZ1bmN0aW9uKGgpe2xldCB2PW51bGw7cmV0dXJuIHY9aD9uZXcoaHx8ZCk6''@;'; + put 'put ''Q2koclkpLHZ9LHByb3ZpZGVkSW46InJvb3QifSksZH0pKCksclk9KCgpPT57Y2xhc3MgZCBleHRlbmRzIGM3e2NvbnN0cnVjdG9yKGgpe3N1cGVyKCksdGhpcy5fZG9jPWh9c2FuaXRpemUoaCx2KXtpZihudWxsPT12KXJldHVybiBudWxsO3N3aXRjaChoKXtjYXNlIGEyLk5PTkU6cmV0dXJu''@;'; + put 'put ''IHY7Y2FzZSBhMi5IVE1MOnJldHVybiAkdSh2LCJIVE1MIik/ZDIodik6RTkodGhpcy5fZG9jLFN0cmluZyh2KSkudG9TdHJpbmcoKTtjYXNlIGEyLlNUWUxFOnJldHVybiAkdSh2LCJTdHlsZSIpP2QyKHYpOnY7Y2FzZSBhMi5TQ1JJUFQ6aWYoJHUodiwiU2NyaXB0IikpcmV0dXJuIGQyKHYp''@;'; + put 'put ''O3Rocm93IG5ldyBFcnJvcigidW5zYWZlIHZhbHVlIHVzZWQgaW4gYSBzY3JpcHQgY29udGV4dCIpO2Nhc2UgYTIuVVJMOnJldHVybiAkdSh2LCJVUkwiKT9kMih2KTp2ZihTdHJpbmcodikpO2Nhc2UgYTIuUkVTT1VSQ0VfVVJMOmlmKCR1KHYsIlJlc291cmNlVVJMIikpcmV0dXJuIGQyKHYp''@;'; + put 'put ''O3Rocm93IG5ldyBFcnJvcigidW5zYWZlIHZhbHVlIHVzZWQgaW4gYSByZXNvdXJjZSBVUkwgY29udGV4dCAoc2VlIGh0dHBzOi8vZy5jby9uZy9zZWN1cml0eSN4c3MpIik7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoYFVuZXhwZWN0ZWQgU2VjdXJpdHlDb250ZXh0ICR7aH0gKHNlZSBodHRw''@;'; + put 'put ''czovL2cuY28vbmcvc2VjdXJpdHkjeHNzKWApfX1ieXBhc3NTZWN1cml0eVRydXN0SHRtbChoKXtyZXR1cm4gZnVuY3Rpb24geTMoZCl7cmV0dXJuIG5ldyBobShkKX0oaCl9YnlwYXNzU2VjdXJpdHlUcnVzdFN0eWxlKGgpe3JldHVybiBmdW5jdGlvbiBRZihkKXtyZXR1cm4gbmV3IG1hKGQp''@;'; + put 'put ''fShoKX1ieXBhc3NTZWN1cml0eVRydXN0U2NyaXB0KGgpe3JldHVybiBmdW5jdGlvbiBXbyhkKXtyZXR1cm4gbmV3IHU2KGQpfShoKX1ieXBhc3NTZWN1cml0eVRydXN0VXJsKGgpe3JldHVybiBmdW5jdGlvbiBkbShkKXtyZXR1cm4gbmV3IGhsKGQpfShoKX1ieXBhc3NTZWN1cml0eVRydXN0''@;'; + put 'put ''UmVzb3VyY2VVcmwoaCl7cmV0dXJuIGZ1bmN0aW9uIHFNKGQpe3JldHVybiBuZXcgVWYoZCl9KGgpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShDaShwcykpfSxkLlx1MDI3NXByb3Y9QWkoe3Rva2VuOmQsZmFjdG9yeTpmdW5jdGlvbihoKXtsZXQg''@;'; + put 'put ''dj1udWxsO3JldHVybiB2PWg/bmV3IGg6ZnVuY3Rpb24gamllKGQpe3JldHVybiBuZXcgclkoZC5nZXQocHMpKX0oQ2koa3MpKSx2fSxwcm92aWRlZEluOiJyb290In0pLGR9KSgpO0woNDI0NCksTCg3NzY1NyksTCg4ODgxMyksTCg1MzEwKSxMKDUxNzcxKSxMKDYyMzE0KSxMKDE2MzQzKSxM''@;'; + put 'put ''KDY4MTQ4KSxMKDc2NzcpLEwoODI2OTEpLEwoMjkxMzIpLEwoMTc4NzgpLEwoNTIyOTgpLEwoNDM0OTkpLEwoNjc3OTUpLEwoODg1ODMpLEwoNTQyNjEpO3ZhciBaaWU9TCg5MzE3Mik7d2luZG93Lmdsb2JhbD13aW5kb3csd2luZG93Lmdsb2JhbC5CdWZmZXI9d2luZG93Lmdsb2JhbC5CdWZm''@;'; + put 'put ''ZXJ8fFppZS5CdWZmZXIsd2luZG93LnByb2Nlc3M9e3ZlcnNpb246IiJ9O0woNTY3NzEpLEwoOTM4NzcpO2NvbnN0IG5pPXtyb290UGFyYW06IiIsZWRpdG9yOntzdGFydHVwU2V0OiExLHRyZWVOb2RlTGlicmFyaWVzOltdLGxpYnNBbmRUYWJsZXM6W10sbGlicmFyaWVzOltdLGxpYnJhcnk6''@;'; + put 'put ''IiIsdGFibGU6IiIsZmlsdGVyOntjb2xzOltdLHZhbHM6W10sZ3JvdXBMb2dpYzoiIix3aGVyZUNsYXVzZToiIixsaWJkczoiIixjbGF1c2VzOltdLHF1ZXJ5OltdfX0sdmlld2VyOntzdGFydHVwU2V0OiExLHRhYmxlc1NldDohMSxsaWJyYXJpZXM6W10sdGFibGVzOm51bGwsbGlicmFyeToi''@;'; + put 'put ''Iix0YWJsZToiIixsaWJpbmZvOltdLGxpYnJhcmllc1NlYXJjaDoiIixmaWx0ZXI6e2NvbHM6W10sdmFsczpbXSxncm91cExvZ2ljOiIiLHdoZXJlQ2xhdXNlOiIiLGxpYmRzOiIiLGNsYXVzZXM6W10scXVlcnk6W119LGN1cnJlbnRTZWxlY3Rpb246IiJ9LGxpbmVhZ2U6e2xpYnJhcnlMaXN0''@;'; + put 'put ''OltdLHRhYmxlc0xpc3Q6W10sY29sdW1uc0xpc3Q6W10sbGlicmFyaWVzU2VhcmNoOiIiLGxpYjoiIix0YWJsZToiIixjb2x1bW46IiIsY3VycmVudExpbmVhZ2VQYXRoTGliVGFibGU6IiIsY3VycmVudExpbmVhZ2VQYXRoQ29sdW1uOiIifSxtZXRhZGF0YTp7bWV0YURhdGFMaXN0OnZvaWQg''@;'; + put 'put ''MCxtZXRhRGF0YVNlYXJjaDoiIixtZXRhT2JqZWN0TGlzdDpbXSxtZXRhT2JqZWN0U2VhcmNoOiIiLG1ldGFSZXBvc2l0b3JpZXM6dm9pZCAwLHNlbGVjdGVkUmVwb3NpdG9yeToiIn0sdXNlcm5hdjp7dXNlckxpc3Q6dm9pZCAwLHVzZXJTZWFyY2g6IiIsZ3JvdXBMaXN0OnZvaWQgMCxncm91''@;'; + put 'put ''cFNlYXJjaDoiIixyb2xlTGlzdDp2b2lkIDAscm9sZVNlYXJjaDoiIn0sb3BlcmF0b3JzOntudW1PcGVyYXRvcnM6WyI9IiwiPCIsIj4iLCI8PSIsIj49IiwiQkVUV0VFTiIsIklOIiwiTk9UIElOIiwiTkUiXSxjaGFyT3BlcmF0b3JzOlsiPSIsIjwiLCI+IiwiPD0iLCI+PSIsIkNPTlRBSU5T''@;'; + put 'put ''IiwiSU4iLCJOT1QgSU4iLCJORSJdfX07dmFyIFRsPUwoMTU0MzkpLGVJPUwubihUbCk7ZnVuY3Rpb24gVjIoZCxnLGgsdil7dmFyIEkseT1hcmd1bWVudHMubGVuZ3RoLEM9eTwzP2c6bnVsbD09PXY/dj1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGcsaCk6djtpZigib2JqZWN0''@;'; + put 'put ''Ij09dHlwZW9mIFJlZmxlY3QmJiJmdW5jdGlvbiI9PXR5cGVvZiBSZWZsZWN0LmRlY29yYXRlKUM9UmVmbGVjdC5kZWNvcmF0ZShkLGcsaCx2KTtlbHNlIGZvcih2YXIgaj1kLmxlbmd0aC0xO2o+PTA7ai0tKShJPWRbal0pJiYoQz0oeTwzP0koQyk6eT4zP0koZyxoLEMpOkkoZyxoKSl8fEMp''@;'; + put 'put ''O3JldHVybiB5PjMmJkMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShnLGgsQyksQ31mdW5jdGlvbiBubyhkLGcsaCx2KXtyZXR1cm4gbmV3KGh8fChoPVByb21pc2UpKShmdW5jdGlvbihDLEkpe2Z1bmN0aW9uIGooQmUpe3RyeXtfZSh2Lm5leHQoQmUpKX1jYXRjaChOZSl7SShOZSl9fWZ1bmN0''@;'; + put 'put ''aW9uIHVlKEJlKXt0cnl7X2Uodi50aHJvdyhCZSkpfWNhdGNoKE5lKXtJKE5lKX19ZnVuY3Rpb24gX2UoQmUpe0JlLmRvbmU/QyhCZS52YWx1ZSk6ZnVuY3Rpb24geShDKXtyZXR1cm4gQyBpbnN0YW5jZW9mIGg/QzpuZXcgaChmdW5jdGlvbihJKXtJKEMpfSl9KEJlLnZhbHVlKS50aGVuKGos''@;'; + put 'put ''dWUpfV9lKCh2PXYuYXBwbHkoZCxnfHxbXSkpLm5leHQoKSl9KX1mdW5jdGlvbiBhYSguLi5kKXtsZXQgZz1kW2QubGVuZ3RoLTFdO3JldHVybiB3dChnKT8oZC5wb3AoKSxVZShkLGcpKTpwcihkKX1jbGFzcyBjcyBleHRlbmRzICRle2NvbnN0cnVjdG9yKGcpe3N1cGVyKCksdGhpcy5fdmFs''@;'; + put 'put ''dWU9Z31nZXQgdmFsdWUoKXtyZXR1cm4gdGhpcy5nZXRWYWx1ZSgpfV9zdWJzY3JpYmUoZyl7Y29uc3QgaD1zdXBlci5fc3Vic2NyaWJlKGcpO3JldHVybiBoJiYhaC5jbG9zZWQmJmcubmV4dCh0aGlzLl92YWx1ZSksaH1nZXRWYWx1ZSgpe2lmKHRoaXMuaGFzRXJyb3IpdGhyb3cgdGhpcy50''@;'; + put 'put ''aHJvd25FcnJvcjtpZih0aGlzLmNsb3NlZCl0aHJvdyBuZXcgRGU7cmV0dXJuIHRoaXMuX3ZhbHVlfW5leHQoZyl7c3VwZXIubmV4dCh0aGlzLl92YWx1ZT1nKX19Y2xhc3MgWWllIGV4dGVuZHMgentub3RpZnlOZXh0KGcsaCx2LHksQyl7dGhpcy5kZXN0aW5hdGlvbi5uZXh0KGgpfW5vdGlm''@;'; + put 'put ''eUVycm9yKGcsaCl7dGhpcy5kZXN0aW5hdGlvbi5lcnJvcihnKX1ub3RpZnlDb21wbGV0ZShnKXt0aGlzLmRlc3RpbmF0aW9uLmNvbXBsZXRlKCl9fWNsYXNzIFVpZSBleHRlbmRzIHp7Y29uc3RydWN0b3IoZyxoLHYpe3N1cGVyKCksdGhpcy5wYXJlbnQ9Zyx0aGlzLm91dGVyVmFsdWU9aCx0''@;'; + put 'put ''aGlzLm91dGVySW5kZXg9dix0aGlzLmluZGV4PTB9X25leHQoZyl7dGhpcy5wYXJlbnQubm90aWZ5TmV4dCh0aGlzLm91dGVyVmFsdWUsZyx0aGlzLm91dGVySW5kZXgsdGhpcy5pbmRleCsrLHRoaXMpfV9lcnJvcihnKXt0aGlzLnBhcmVudC5ub3RpZnlFcnJvcihnLHRoaXMpLHRoaXMudW5z''@;'; + put 'put ''dWJzY3JpYmUoKX1fY29tcGxldGUoKXt0aGlzLnBhcmVudC5ub3RpZnlDb21wbGV0ZSh0aGlzKSx0aGlzLnVuc3Vic2NyaWJlKCl9fWZ1bmN0aW9uIFFpZShkLGcsaCx2LHk9bmV3IFVpZShkLGgsdikpe2lmKCF5LmNsb3NlZClyZXR1cm4gZyBpbnN0YW5jZW9mIEY/Zy5zdWJzY3JpYmUoeSk6''@;'; + put 'put ''ZnQoZykoeSl9Y29uc3Qgc1k9e307ZnVuY3Rpb24gckkoLi4uZCl7bGV0IGcsaDtyZXR1cm4gd3QoZFtkLmxlbmd0aC0xXSkmJihoPWQucG9wKCkpLCJmdW5jdGlvbiI9PXR5cGVvZiBkW2QubGVuZ3RoLTFdJiYoZz1kLnBvcCgpKSwxPT09ZC5sZW5ndGgmJkFlKGRbMF0pJiYoZD1kWzBdKSxw''@;'; + put 'put ''cihkLGgpLmxpZnQobmV3IE5GKGcpKX1jbGFzcyBORntjb25zdHJ1Y3RvcihnKXt0aGlzLnJlc3VsdFNlbGVjdG9yPWd9Y2FsbChnLGgpe3JldHVybiBoLnN1YnNjcmliZShuZXcgdVkoZyx0aGlzLnJlc3VsdFNlbGVjdG9yKSl9fWNsYXNzIHVZIGV4dGVuZHMgWWlle2NvbnN0cnVjdG9yKGcs''@;'; + put 'put ''aCl7c3VwZXIoZyksdGhpcy5yZXN1bHRTZWxlY3Rvcj1oLHRoaXMuYWN0aXZlPTAsdGhpcy52YWx1ZXM9W10sdGhpcy5vYnNlcnZhYmxlcz1bXX1fbmV4dChnKXt0aGlzLnZhbHVlcy5wdXNoKHNZKSx0aGlzLm9ic2VydmFibGVzLnB1c2goZyl9X2NvbXBsZXRlKCl7Y29uc3QgZz10aGlzLm9i''@;'; + put 'put ''c2VydmFibGVzLGg9Zy5sZW5ndGg7aWYoMD09PWgpdGhpcy5kZXN0aW5hdGlvbi5jb21wbGV0ZSgpO2Vsc2V7dGhpcy5hY3RpdmU9aCx0aGlzLnRvUmVzcG9uZD1oO2ZvcihsZXQgdj0wO3Y8aDt2KyspdGhpcy5hZGQoUWllKHRoaXMsZ1t2XSx2b2lkIDAsdikpfX1ub3RpZnlDb21wbGV0ZShn''@;'; + put 'put ''KXswPT0odGhpcy5hY3RpdmUtPTEpJiZ0aGlzLmRlc3RpbmF0aW9uLmNvbXBsZXRlKCl9bm90aWZ5TmV4dChnLGgsdil7Y29uc3QgeT10aGlzLnZhbHVlcyxJPXRoaXMudG9SZXNwb25kP3lbdl09PT1zWT8tLXRoaXMudG9SZXNwb25kOnRoaXMudG9SZXNwb25kOjA7eVt2XT1oLDA9PT1JJiYo''@;'; + put 'put ''dGhpcy5yZXN1bHRTZWxlY3Rvcj90aGlzLl90cnlSZXN1bHRTZWxlY3Rvcih5KTp0aGlzLmRlc3RpbmF0aW9uLm5leHQoeS5zbGljZSgpKSl9X3RyeVJlc3VsdFNlbGVjdG9yKGcpe2xldCBoO3RyeXtoPXRoaXMucmVzdWx0U2VsZWN0b3IuYXBwbHkodGhpcyxnKX1jYXRjaCh2KXtyZXR1cm4g''@;'; + put 'put ''dm9pZCB0aGlzLmRlc3RpbmF0aW9uLmVycm9yKHYpfXRoaXMuZGVzdGluYXRpb24ubmV4dChoKX19ZnVuY3Rpb24gVkYoLi4uZCl7cmV0dXJuIGZ1bmN0aW9uIEppZSgpe3JldHVybiBxdCgxKX0oKShhYSguLi5kKSl9Y29uc3QgWUE9bmV3IEYoZD0+ZC5jb21wbGV0ZSgpKTtmdW5jdGlvbiBp''@;'; + put 'put ''SShkKXtyZXR1cm4gZD9mdW5jdGlvbiBYaWUoZCl7cmV0dXJuIG5ldyBGKGc9PmQuc2NoZWR1bGUoKCk9PmcuY29tcGxldGUoKSkpfShkKTpZQX1mdW5jdGlvbiBjWShkKXtyZXR1cm4gbmV3IEYoZz0+e2xldCBoO3RyeXtoPWQoKX1jYXRjaCh5KXtyZXR1cm4gdm9pZCBnLmVycm9yKHkpfXJl''@;'; + put 'put ''dHVybihoP2RuKGgpOmlJKCkpLnN1YnNjcmliZShnKX0pfWZ1bmN0aW9uIFVBKGQsZyl7cmV0dXJuIG5ldyBGKGc/aD0+Zy5zY2hlZHVsZShLaWUsMCx7ZXJyb3I6ZCxzdWJzY3JpYmVyOmh9KTpoPT5oLmVycm9yKGQpKX1mdW5jdGlvbiBLaWUoe2Vycm9yOmQsc3Vic2NyaWJlcjpnfSl7Zy5l''@;'; + put 'put ''cnJvcihkKX1jb25zdCBRQT0oKCk9PntmdW5jdGlvbiBkKCl7cmV0dXJuIEVycm9yLmNhbGwodGhpcyksdGhpcy5tZXNzYWdlPSJubyBlbGVtZW50cyBpbiBzZXF1ZW5jZSIsdGhpcy5uYW1lPSJFbXB0eUVycm9yIix0aGlzfXJldHVybiBkLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKEVycm9y''@;'; + put 'put ''LnByb3RvdHlwZSksZH0pKCk7ZnVuY3Rpb24gWWgoZCxnKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgZz9oPT5oLnBpcGUoWWgoKHYseSk9PmRuKGQodix5KSkucGlwZShtdCgoQyxJKT0+Zyh2LEMseSxJKSkpKSk6aD0+aC5saWZ0KG5ldyAkaWUoZCkpfWNsYXNzICRpZXtjb25zdHJ1Y3Rv''@;'; + put 'put ''cihnKXt0aGlzLnByb2plY3Q9Z31jYWxsKGcsaCl7cmV0dXJuIGguc3Vic2NyaWJlKG5ldyBmWShnLHRoaXMucHJvamVjdCkpfX1jbGFzcyBmWSBleHRlbmRzIE5ue2NvbnN0cnVjdG9yKGcsaCl7c3VwZXIoZyksdGhpcy5wcm9qZWN0PWgsdGhpcy5pbmRleD0wfV9uZXh0KGcpe2xldCBoO2Nv''@;'; + put 'put ''bnN0IHY9dGhpcy5pbmRleCsrO3RyeXtoPXRoaXMucHJvamVjdChnLHYpfWNhdGNoKHkpe3JldHVybiB2b2lkIHRoaXMuZGVzdGluYXRpb24uZXJyb3IoeSl9dGhpcy5faW5uZXJTdWIoaCl9X2lubmVyU3ViKGcpe2NvbnN0IGg9dGhpcy5pbm5lclN1YnNjcmlwdGlvbjtoJiZoLnVuc3Vic2Ny''@;'; + put 'put ''aWJlKCk7Y29uc3Qgdj1uZXcgeW4odGhpcykseT10aGlzLmRlc3RpbmF0aW9uO3kuYWRkKHYpLHRoaXMuaW5uZXJTdWJzY3JpcHRpb249ZXIoZyx2KSx0aGlzLmlubmVyU3Vic2NyaXB0aW9uIT09diYmeS5hZGQodGhpcy5pbm5lclN1YnNjcmlwdGlvbil9X2NvbXBsZXRlKCl7Y29uc3R7aW5u''@;'; + put 'put ''ZXJTdWJzY3JpcHRpb246Z309dGhpczsoIWd8fGcuY2xvc2VkKSYmc3VwZXIuX2NvbXBsZXRlKCksdGhpcy51bnN1YnNjcmliZSgpfV91bnN1YnNjcmliZSgpe3RoaXMuaW5uZXJTdWJzY3JpcHRpb249dm9pZCAwfW5vdGlmeUNvbXBsZXRlKCl7dGhpcy5pbm5lclN1YnNjcmlwdGlvbj12b2lk''@;'; + put 'put ''IDAsdGhpcy5pc1N0b3BwZWQmJnN1cGVyLl9jb21wbGV0ZSgpfW5vdGlmeU5leHQoZyl7dGhpcy5kZXN0aW5hdGlvbi5uZXh0KGcpfX1jb25zdCBoWT0oKCk9PntmdW5jdGlvbiBkKCl7cmV0dXJuIEVycm9yLmNhbGwodGhpcyksdGhpcy5tZXNzYWdlPSJhcmd1bWVudCBvdXQgb2YgcmFuZ2Ui''@;'; + put 'put ''LHRoaXMubmFtZT0iQXJndW1lbnRPdXRPZlJhbmdlRXJyb3IiLHRoaXN9cmV0dXJuIGQucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoRXJyb3IucHJvdG90eXBlKSxkfSkoKTtmdW5jdGlvbiBINShkKXtyZXR1cm4gZz0+MD09PWQ/aUkoKTpnLmxpZnQobmV3IHFpZShkKSl9Y2xhc3MgcWlle2Nv''@;'; + put 'put ''bnN0cnVjdG9yKGcpe2lmKHRoaXMudG90YWw9Zyx0aGlzLnRvdGFsPDApdGhyb3cgbmV3IGhZfWNhbGwoZyxoKXtyZXR1cm4gaC5zdWJzY3JpYmUobmV3IGRZKGcsdGhpcy50b3RhbCkpfX1jbGFzcyBkWSBleHRlbmRzIHp7Y29uc3RydWN0b3IoZyxoKXtzdXBlcihnKSx0aGlzLnRvdGFsPWgs''@;'; + put 'put ''dGhpcy5jb3VudD0wfV9uZXh0KGcpe2NvbnN0IGg9dGhpcy50b3RhbCx2PSsrdGhpcy5jb3VudDt2PD1oJiYodGhpcy5kZXN0aW5hdGlvbi5uZXh0KGcpLHY9PT1oJiYodGhpcy5kZXN0aW5hdGlvbi5jb21wbGV0ZSgpLHRoaXMudW5zdWJzY3JpYmUoKSkpfX1mdW5jdGlvbiBONSguLi5kKXtj''@;'; + put 'put ''b25zdCBnPWRbZC5sZW5ndGgtMV07cmV0dXJuIHd0KGcpPyhkLnBvcCgpLGg9PlZGKGQsaCxnKSk6aD0+VkYoZCxoKX1mdW5jdGlvbiBPMihkLGcpe3JldHVybiBmdW5jdGlvbih2KXtyZXR1cm4gdi5saWZ0KG5ldyBlMGUoZCxnKSl9fWNsYXNzIGUwZXtjb25zdHJ1Y3RvcihnLGgpe3RoaXMu''@;'; + put 'put ''cHJlZGljYXRlPWcsdGhpcy50aGlzQXJnPWh9Y2FsbChnLGgpe3JldHVybiBoLnN1YnNjcmliZShuZXcgdDBlKGcsdGhpcy5wcmVkaWNhdGUsdGhpcy50aGlzQXJnKSl9fWNsYXNzIHQwZSBleHRlbmRzIHp7Y29uc3RydWN0b3IoZyxoLHYpe3N1cGVyKGcpLHRoaXMucHJlZGljYXRlPWgsdGhp''@;'; + put 'put ''cy50aGlzQXJnPXYsdGhpcy5jb3VudD0wfV9uZXh0KGcpe2xldCBoO3RyeXtoPXRoaXMucHJlZGljYXRlLmNhbGwodGhpcy50aGlzQXJnLGcsdGhpcy5jb3VudCsrKX1jYXRjaCh2KXtyZXR1cm4gdm9pZCB0aGlzLmRlc3RpbmF0aW9uLmVycm9yKHYpfWgmJnRoaXMuZGVzdGluYXRpb24ubmV4''@;'; + put 'put ''dChnKX19ZnVuY3Rpb24gaDcoZD1udWxsKXtyZXR1cm4gZz0+Zy5saWZ0KG5ldyBuMGUoZCkpfWNsYXNzIG4wZXtjb25zdHJ1Y3RvcihnKXt0aGlzLmRlZmF1bHRWYWx1ZT1nfWNhbGwoZyxoKXtyZXR1cm4gaC5zdWJzY3JpYmUobmV3IHIwZShnLHRoaXMuZGVmYXVsdFZhbHVlKSl9fWNsYXNz''@;'; + put 'put ''IHIwZSBleHRlbmRzIHp7Y29uc3RydWN0b3IoZyxoKXtzdXBlcihnKSx0aGlzLmRlZmF1bHRWYWx1ZT1oLHRoaXMuaXNFbXB0eT0hMH1fbmV4dChnKXt0aGlzLmlzRW1wdHk9ITEsdGhpcy5kZXN0aW5hdGlvbi5uZXh0KGcpfV9jb21wbGV0ZSgpe3RoaXMuaXNFbXB0eSYmdGhpcy5kZXN0aW5h''@;'; + put 'put ''dGlvbi5uZXh0KHRoaXMuZGVmYXVsdFZhbHVlKSx0aGlzLmRlc3RpbmF0aW9uLmNvbXBsZXRlKCl9fWZ1bmN0aW9uIHBZKGQ9bVkpe3JldHVybiBnPT5nLmxpZnQobmV3IGkwZShkKSl9Y2xhc3MgaTBle2NvbnN0cnVjdG9yKGcpe3RoaXMuZXJyb3JGYWN0b3J5PWd9Y2FsbChnLGgpe3JldHVy''@;'; + put 'put ''biBoLnN1YnNjcmliZShuZXcgZ1koZyx0aGlzLmVycm9yRmFjdG9yeSkpfX1jbGFzcyBnWSBleHRlbmRzIHp7Y29uc3RydWN0b3IoZyxoKXtzdXBlcihnKSx0aGlzLmVycm9yRmFjdG9yeT1oLHRoaXMuaGFzVmFsdWU9ITF9X25leHQoZyl7dGhpcy5oYXNWYWx1ZT0hMCx0aGlzLmRlc3RpbmF0''@;'; + put 'put ''aW9uLm5leHQoZyl9X2NvbXBsZXRlKCl7aWYodGhpcy5oYXNWYWx1ZSlyZXR1cm4gdGhpcy5kZXN0aW5hdGlvbi5jb21wbGV0ZSgpO3tsZXQgZzt0cnl7Zz10aGlzLmVycm9yRmFjdG9yeSgpfWNhdGNoKGgpe2c9aH10aGlzLmRlc3RpbmF0aW9uLmVycm9yKGcpfX19ZnVuY3Rpb24gbVkoKXty''@;'; + put 'put ''ZXR1cm4gbmV3IFFBfWZ1bmN0aW9uIFkzKGQsZyl7Y29uc3QgaD1hcmd1bWVudHMubGVuZ3RoPj0yO3JldHVybiB2PT52LnBpcGUoZD9PMigoeSxDKT0+ZCh5LEMsdikpOlYsSDUoMSksaD9oNyhnKTpwWSgoKT0+bmV3IFFBKSl9ZnVuY3Rpb24gVjUoZCxnKXtyZXR1cm4gc3IoZCxnLDEpfWZ1''@;'; + put 'put ''bmN0aW9uIGo1KCl7fWZ1bmN0aW9uIEFhKGQsZyxoKXtyZXR1cm4gZnVuY3Rpb24oeSl7cmV0dXJuIHkubGlmdChuZXcgSkEoZCxnLGgpKX19Y2xhc3MgSkF7Y29uc3RydWN0b3IoZyxoLHYpe3RoaXMubmV4dE9yT2JzZXJ2ZXI9Zyx0aGlzLmVycm9yPWgsdGhpcy5jb21wbGV0ZT12fWNhbGwo''@;'; + put 'put ''ZyxoKXtyZXR1cm4gaC5zdWJzY3JpYmUobmV3IG8wZShnLHRoaXMubmV4dE9yT2JzZXJ2ZXIsdGhpcy5lcnJvcix0aGlzLmNvbXBsZXRlKSl9fWNsYXNzIG8wZSBleHRlbmRzIHp7Y29uc3RydWN0b3IoZyxoLHYseSl7c3VwZXIoZyksdGhpcy5fdGFwTmV4dD1qNSx0aGlzLl90YXBFcnJvcj1q''@;'; + put 'put ''NSx0aGlzLl90YXBDb21wbGV0ZT1qNSx0aGlzLl90YXBFcnJvcj12fHxqNSx0aGlzLl90YXBDb21wbGV0ZT15fHxqNSxzZShoKT8odGhpcy5fY29udGV4dD10aGlzLHRoaXMuX3RhcE5leHQ9aCk6aCYmKHRoaXMuX2NvbnRleHQ9aCx0aGlzLl90YXBOZXh0PWgubmV4dHx8ajUsdGhpcy5fdGFw''@;'; + put 'put ''RXJyb3I9aC5lcnJvcnx8ajUsdGhpcy5fdGFwQ29tcGxldGU9aC5jb21wbGV0ZXx8ajUpfV9uZXh0KGcpe3RyeXt0aGlzLl90YXBOZXh0LmNhbGwodGhpcy5fY29udGV4dCxnKX1jYXRjaChoKXtyZXR1cm4gdm9pZCB0aGlzLmRlc3RpbmF0aW9uLmVycm9yKGgpfXRoaXMuZGVzdGluYXRpb24u''@;'; + put 'put ''bmV4dChnKX1fZXJyb3IoZyl7dHJ5e3RoaXMuX3RhcEVycm9yLmNhbGwodGhpcy5fY29udGV4dCxnKX1jYXRjaChoKXtyZXR1cm4gdm9pZCB0aGlzLmRlc3RpbmF0aW9uLmVycm9yKGgpfXRoaXMuZGVzdGluYXRpb24uZXJyb3IoZyl9X2NvbXBsZXRlKCl7dHJ5e3RoaXMuX3RhcENvbXBsZXRl''@;'; + put 'put ''LmNhbGwodGhpcy5fY29udGV4dCl9Y2F0Y2goZyl7cmV0dXJuIHZvaWQgdGhpcy5kZXN0aW5hdGlvbi5lcnJvcihnKX1yZXR1cm4gdGhpcy5kZXN0aW5hdGlvbi5jb21wbGV0ZSgpfX1mdW5jdGlvbiBaNShkKXtyZXR1cm4gZnVuY3Rpb24oaCl7Y29uc3Qgdj1uZXcgdlkoZCkseT1oLmxpZnQo''@;'; + put 'put ''dik7cmV0dXJuIHYuY2F1Z2h0PXl9fWNsYXNzIHZZe2NvbnN0cnVjdG9yKGcpe3RoaXMuc2VsZWN0b3I9Z31jYWxsKGcsaCl7cmV0dXJuIGguc3Vic2NyaWJlKG5ldyBhMGUoZyx0aGlzLnNlbGVjdG9yLHRoaXMuY2F1Z2h0KSl9fWNsYXNzIGEwZSBleHRlbmRzIE5ue2NvbnN0cnVjdG9yKGcs''@;'; + put 'put ''aCx2KXtzdXBlcihnKSx0aGlzLnNlbGVjdG9yPWgsdGhpcy5jYXVnaHQ9dn1lcnJvcihnKXtpZighdGhpcy5pc1N0b3BwZWQpe2xldCBoO3RyeXtoPXRoaXMuc2VsZWN0b3IoZyx0aGlzLmNhdWdodCl9Y2F0Y2goQyl7cmV0dXJuIHZvaWQgc3VwZXIuZXJyb3IoQyl9dGhpcy5fdW5zdWJzY3Jp''@;'; + put 'put ''YmVBbmRSZWN5Y2xlKCk7Y29uc3Qgdj1uZXcgeW4odGhpcyk7dGhpcy5hZGQodik7Y29uc3QgeT1lcihoLHYpO3khPT12JiZ0aGlzLmFkZCh5KX19fWZ1bmN0aW9uIG9JKGQsZyl7bGV0IGg9ITE7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg+PTImJihoPSEwKSxmdW5jdGlvbih5KXtyZXR1cm4g''@;'; + put 'put ''eS5saWZ0KG5ldyBsMGUoZCxnLGgpKX19Y2xhc3MgbDBle2NvbnN0cnVjdG9yKGcsaCx2PSExKXt0aGlzLmFjY3VtdWxhdG9yPWcsdGhpcy5zZWVkPWgsdGhpcy5oYXNTZWVkPXZ9Y2FsbChnLGgpe3JldHVybiBoLnN1YnNjcmliZShuZXcgakYoZyx0aGlzLmFjY3VtdWxhdG9yLHRoaXMuc2Vl''@;'; + put 'put ''ZCx0aGlzLmhhc1NlZWQpKX19Y2xhc3MgakYgZXh0ZW5kcyB6e2NvbnN0cnVjdG9yKGcsaCx2LHkpe3N1cGVyKGcpLHRoaXMuYWNjdW11bGF0b3I9aCx0aGlzLl9zZWVkPXYsdGhpcy5oYXNTZWVkPXksdGhpcy5pbmRleD0wfWdldCBzZWVkKCl7cmV0dXJuIHRoaXMuX3NlZWR9c2V0IHNlZWQo''@;'; + put 'put ''Zyl7dGhpcy5oYXNTZWVkPSEwLHRoaXMuX3NlZWQ9Z31fbmV4dChnKXtpZih0aGlzLmhhc1NlZWQpcmV0dXJuIHRoaXMuX3RyeU5leHQoZyk7dGhpcy5zZWVkPWcsdGhpcy5kZXN0aW5hdGlvbi5uZXh0KGcpfV90cnlOZXh0KGcpe2NvbnN0IGg9dGhpcy5pbmRleCsrO2xldCB2O3RyeXt2PXRo''@;'; + put 'put ''aXMuYWNjdW11bGF0b3IodGhpcy5zZWVkLGcsaCl9Y2F0Y2goeSl7dGhpcy5kZXN0aW5hdGlvbi5lcnJvcih5KX10aGlzLnNlZWQ9dix0aGlzLmRlc3RpbmF0aW9uLm5leHQodil9fWZ1bmN0aW9uIHo1KGQpe3JldHVybiBmdW5jdGlvbihoKXtyZXR1cm4gMD09PWQ/aUkoKTpoLmxpZnQobmV3''@;'; + put 'put ''IHMwZShkKSl9fWNsYXNzIHMwZXtjb25zdHJ1Y3RvcihnKXtpZih0aGlzLnRvdGFsPWcsdGhpcy50b3RhbDwwKXRocm93IG5ldyBoWX1jYWxsKGcsaCl7cmV0dXJuIGguc3Vic2NyaWJlKG5ldyB1MGUoZyx0aGlzLnRvdGFsKSl9fWNsYXNzIHUwZSBleHRlbmRzIHp7Y29uc3RydWN0b3IoZyxo''@;'; + put 'put ''KXtzdXBlcihnKSx0aGlzLnRvdGFsPWgsdGhpcy5yaW5nPW5ldyBBcnJheSx0aGlzLmNvdW50PTB9X25leHQoZyl7Y29uc3QgaD10aGlzLnJpbmcsdj10aGlzLnRvdGFsLHk9dGhpcy5jb3VudCsrO2gubGVuZ3RoPHY/aC5wdXNoKGcpOmhbeSV2XT1nfV9jb21wbGV0ZSgpe2NvbnN0IGc9dGhp''@;'; + put 'put ''cy5kZXN0aW5hdGlvbjtsZXQgaD10aGlzLmNvdW50O2lmKGg+MCl7Y29uc3Qgdj10aGlzLmNvdW50Pj10aGlzLnRvdGFsP3RoaXMudG90YWw6dGhpcy5jb3VudCx5PXRoaXMucmluZztmb3IobGV0IEM9MDtDPHY7QysrKXtjb25zdCBJPWgrKyV2O2cubmV4dCh5W0ldKX19Zy5jb21wbGV0ZSgp''@;'; + put 'put ''fX1mdW5jdGlvbiBBWShkLGcpe2NvbnN0IGg9YXJndW1lbnRzLmxlbmd0aD49MjtyZXR1cm4gdj0+di5waXBlKGQ/TzIoKHksQyk9PmQoeSxDLHYpKTpWLHo1KDEpLGg/aDcoZyk6cFkoKCk9Pm5ldyBRQSkpfWNsYXNzIGYwZXtjb25zdHJ1Y3RvcihnLGgpe3RoaXMucHJlZGljYXRlPWcsdGhp''@;'; + put 'put ''cy5pbmNsdXNpdmU9aH1jYWxsKGcsaCl7cmV0dXJuIGguc3Vic2NyaWJlKG5ldyBoMGUoZyx0aGlzLnByZWRpY2F0ZSx0aGlzLmluY2x1c2l2ZSkpfX1jbGFzcyBoMGUgZXh0ZW5kcyB6e2NvbnN0cnVjdG9yKGcsaCx2KXtzdXBlcihnKSx0aGlzLnByZWRpY2F0ZT1oLHRoaXMuaW5jbHVzaXZl''@;'; + put 'put ''PXYsdGhpcy5pbmRleD0wfV9uZXh0KGcpe2NvbnN0IGg9dGhpcy5kZXN0aW5hdGlvbjtsZXQgdjt0cnl7dj10aGlzLnByZWRpY2F0ZShnLHRoaXMuaW5kZXgrKyl9Y2F0Y2goeSl7cmV0dXJuIHZvaWQgaC5lcnJvcih5KX10aGlzLm5leHRPckNvbXBsZXRlKGcsdil9bmV4dE9yQ29tcGxldGUo''@;'; + put 'put ''ZyxoKXtjb25zdCB2PXRoaXMuZGVzdGluYXRpb247Qm9vbGVhbihoKT92Lm5leHQoZyk6KHRoaXMuaW5jbHVzaXZlJiZ2Lm5leHQoZyksdi5jb21wbGV0ZSgpKX19ZnVuY3Rpb24gRzUoZCl7cmV0dXJuIGc9PmcubGlmdChuZXcgV0MoZCkpfWNsYXNzIFdDe2NvbnN0cnVjdG9yKGcpe3RoaXMu''@;'; + put 'put ''dmFsdWU9Z31jYWxsKGcsaCl7cmV0dXJuIGguc3Vic2NyaWJlKG5ldyBYQShnLHRoaXMudmFsdWUpKX19Y2xhc3MgWEEgZXh0ZW5kcyB6e2NvbnN0cnVjdG9yKGcsaCl7c3VwZXIoZyksdGhpcy52YWx1ZT1ofV9uZXh0KGcpe3RoaXMuZGVzdGluYXRpb24ubmV4dCh0aGlzLnZhbHVlKX19ZnVu''@;'; + put 'put ''Y3Rpb24gYUkoZCl7cmV0dXJuIGc9PmcubGlmdChuZXcgZDBlKGQpKX1jbGFzcyBkMGV7Y29uc3RydWN0b3IoZyl7dGhpcy5jYWxsYmFjaz1nfWNhbGwoZyxoKXtyZXR1cm4gaC5zdWJzY3JpYmUobmV3IHlZKGcsdGhpcy5jYWxsYmFjaykpfX1jbGFzcyB5WSBleHRlbmRzIHp7Y29uc3RydWN0''@;'; + put 'put ''b3IoZyxoKXtzdXBlcihnKSx0aGlzLmFkZChuZXcgVGUoaCkpfX1jb25zdCBqbD0icHJpbWFyeSI7Y2xhc3Mgd1l7Y29uc3RydWN0b3IoZyl7dGhpcy5wYXJhbXM9Z3x8e319aGFzKGcpe3JldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGhpcy5wYXJhbXMsZyl9''@;'; + put 'put ''Z2V0KGcpe2lmKHRoaXMuaGFzKGcpKXtjb25zdCBoPXRoaXMucGFyYW1zW2ddO3JldHVybiBBcnJheS5pc0FycmF5KGgpP2hbMF06aH1yZXR1cm4gbnVsbH1nZXRBbGwoZyl7aWYodGhpcy5oYXMoZykpe2NvbnN0IGg9dGhpcy5wYXJhbXNbZ107cmV0dXJuIEFycmF5LmlzQXJyYXkoaCk/aDpb''@;'; + put 'put ''aF19cmV0dXJuW119Z2V0IGtleXMoKXtyZXR1cm4gT2JqZWN0LmtleXModGhpcy5wYXJhbXMpfX1mdW5jdGlvbiBkNyhkKXtyZXR1cm4gbmV3IHdZKGQpfWZ1bmN0aW9uIGJZKGQsZyxoKXtjb25zdCB2PWgucGF0aC5zcGxpdCgiLyIpO2lmKHYubGVuZ3RoPmQubGVuZ3RofHwiZnVsbCI9PT1o''@;'; + put 'put ''LnBhdGhNYXRjaCYmKGcuaGFzQ2hpbGRyZW4oKXx8di5sZW5ndGg8ZC5sZW5ndGgpKXJldHVybiBudWxsO2NvbnN0IHk9e307Zm9yKGxldCBDPTA7Qzx2Lmxlbmd0aDtDKyspe2NvbnN0IEk9dltDXSxqPWRbQ107aWYoSS5zdGFydHNXaXRoKCI6IikpeVtJLnN1YnN0cmluZygxKV09ajtlbHNl''@;'; + put 'put ''IGlmKEkhPT1qLnBhdGgpcmV0dXJuIG51bGx9cmV0dXJue2NvbnN1bWVkOmQuc2xpY2UoMCx2Lmxlbmd0aCkscG9zUGFyYW1zOnl9fWZ1bmN0aW9uIGxwKGQsZyl7Y29uc3QgaD1kP09iamVjdC5rZXlzKGQpOnZvaWQgMCx2PWc/T2JqZWN0LmtleXMoZyk6dm9pZCAwO2lmKCFofHwhdnx8aC5s''@;'; + put 'put ''ZW5ndGghPXYubGVuZ3RoKXJldHVybiExO2xldCB5O2ZvcihsZXQgQz0wO0M8aC5sZW5ndGg7QysrKWlmKHk9aFtDXSwhWkYoZFt5XSxnW3ldKSlyZXR1cm4hMTtyZXR1cm4hMH1mdW5jdGlvbiBaRihkLGcpe2lmKEFycmF5LmlzQXJyYXkoZCkmJkFycmF5LmlzQXJyYXkoZykpe2lmKGQubGVu''@;'; + put 'put ''Z3RoIT09Zy5sZW5ndGgpcmV0dXJuITE7Y29uc3QgaD1bLi4uZF0uc29ydCgpLHY9Wy4uLmddLnNvcnQoKTtyZXR1cm4gaC5ldmVyeSgoeSxDKT0+dltDXT09PXkpfXJldHVybiBkPT09Z31mdW5jdGlvbiB6RihkKXtyZXR1cm4gQXJyYXkucHJvdG90eXBlLmNvbmNhdC5hcHBseShbXSxkKX1m''@;'; + put 'put ''dW5jdGlvbiBHRihkKXtyZXR1cm4gZC5sZW5ndGg+MD9kW2QubGVuZ3RoLTFdOm51bGx9ZnVuY3Rpb24gVGMoZCxnKXtmb3IoY29uc3QgaCBpbiBkKWQuaGFzT3duUHJvcGVydHkoaCkmJmcoZFtoXSxoKX1mdW5jdGlvbiBCdShkKXtyZXR1cm4gSF8oZCk/ZDpWbShkKT9kbihQcm9taXNlLnJl''@;'; + put 'put ''c29sdmUoZCkpOmFhKGQpfWNvbnN0IG0wZT17ZXhhY3Q6ZnVuY3Rpb24gVUYoZCxnLGgpe2lmKCFwNyhkLnNlZ21lbnRzLGcuc2VnbWVudHMpfHwhWUMoZC5zZWdtZW50cyxnLnNlZ21lbnRzLGgpfHxkLm51bWJlck9mQ2hpbGRyZW4hPT1nLm51bWJlck9mQ2hpbGRyZW4pcmV0dXJuITE7Zm9y''@;'; + put 'put ''KGNvbnN0IHYgaW4gZy5jaGlsZHJlbilpZighZC5jaGlsZHJlblt2XXx8IVVGKGQuY2hpbGRyZW5bdl0sZy5jaGlsZHJlblt2XSxoKSlyZXR1cm4hMTtyZXR1cm4hMH0sc3Vic2V0OmtZfSxZRj17ZXhhY3Q6ZnVuY3Rpb24gbEkoZCxnKXtyZXR1cm4gbHAoZCxnKX0sc3Vic2V0OmZ1bmN0aW9u''@;'; + put 'put ''IFc1KGQsZyl7cmV0dXJuIE9iamVjdC5rZXlzKGcpLmxlbmd0aDw9T2JqZWN0LmtleXMoZCkubGVuZ3RoJiZPYmplY3Qua2V5cyhnKS5ldmVyeShoPT5aRihkW2hdLGdbaF0pKX0saWdub3JlZDooKT0+ITB9O2Z1bmN0aW9uIENZKGQsZyxoKXtyZXR1cm4gbTBlW2gucGF0aHNdKGQucm9vdCxn''@;'; + put 'put ''LnJvb3QsaC5tYXRyaXhQYXJhbXMpJiZZRltoLnF1ZXJ5UGFyYW1zXShkLnF1ZXJ5UGFyYW1zLGcucXVlcnlQYXJhbXMpJiYhKCJleGFjdCI9PT1oLmZyYWdtZW50JiZkLmZyYWdtZW50IT09Zy5mcmFnbWVudCl9ZnVuY3Rpb24ga1koZCxnLGgpe3JldHVybiBTWShkLGcsZy5zZWdtZW50cyxo''@;'; + put 'put ''KX1mdW5jdGlvbiBTWShkLGcsaCx2KXtpZihkLnNlZ21lbnRzLmxlbmd0aD5oLmxlbmd0aCl7Y29uc3QgeT1kLnNlZ21lbnRzLnNsaWNlKDAsaC5sZW5ndGgpO3JldHVybiEoIXA3KHksaCl8fGcuaGFzQ2hpbGRyZW4oKXx8IVlDKHksaCx2KSl9aWYoZC5zZWdtZW50cy5sZW5ndGg9PT1oLmxl''@;'; + put 'put ''bmd0aCl7aWYoIXA3KGQuc2VnbWVudHMsaCl8fCFZQyhkLnNlZ21lbnRzLGgsdikpcmV0dXJuITE7Zm9yKGNvbnN0IHkgaW4gZy5jaGlsZHJlbilpZighZC5jaGlsZHJlblt5XXx8IWtZKGQuY2hpbGRyZW5beV0sZy5jaGlsZHJlblt5XSx2KSlyZXR1cm4hMTtyZXR1cm4hMH17Y29uc3QgeT1o''@;'; + put 'put ''LnNsaWNlKDAsZC5zZWdtZW50cy5sZW5ndGgpLEM9aC5zbGljZShkLnNlZ21lbnRzLmxlbmd0aCk7cmV0dXJuISEocDcoZC5zZWdtZW50cyx5KSYmWUMoZC5zZWdtZW50cyx5LHYpJiZkLmNoaWxkcmVuW2psXSkmJlNZKGQuY2hpbGRyZW5bamxdLGcsQyx2KX19ZnVuY3Rpb24gWUMoZCxnLGgp''@;'; + put 'put ''e3JldHVybiBnLmV2ZXJ5KCh2LHkpPT5ZRltoXShkW3ldLnBhcmFtZXRlcnMsdi5wYXJhbWV0ZXJzKSl9Y2xhc3MgWTV7Y29uc3RydWN0b3IoZyxoLHYpe3RoaXMucm9vdD1nLHRoaXMucXVlcnlQYXJhbXM9aCx0aGlzLmZyYWdtZW50PXZ9Z2V0IHF1ZXJ5UGFyYW1NYXAoKXtyZXR1cm4gdGhp''@;'; + put 'put ''cy5fcXVlcnlQYXJhbU1hcHx8KHRoaXMuX3F1ZXJ5UGFyYW1NYXA9ZDcodGhpcy5xdWVyeVBhcmFtcykpLHRoaXMuX3F1ZXJ5UGFyYW1NYXB9dG9TdHJpbmcoKXtyZXR1cm4gTVkuc2VyaWFsaXplKHRoaXMpfX1jbGFzcyBjbHtjb25zdHJ1Y3RvcihnLGgpe3RoaXMuc2VnbWVudHM9Zyx0aGlz''@;'; + put 'put ''LmNoaWxkcmVuPWgsdGhpcy5wYXJlbnQ9bnVsbCxUYyhoLCh2LHkpPT52LnBhcmVudD10aGlzKX1oYXNDaGlsZHJlbigpe3JldHVybiB0aGlzLm51bWJlck9mQ2hpbGRyZW4+MH1nZXQgbnVtYmVyT2ZDaGlsZHJlbigpe3JldHVybiBPYmplY3Qua2V5cyh0aGlzLmNoaWxkcmVuKS5sZW5ndGh9''@;'; + put 'put ''dG9TdHJpbmcoKXtyZXR1cm4gUUModGhpcyl9fWNsYXNzIFVDe2NvbnN0cnVjdG9yKGcsaCl7dGhpcy5wYXRoPWcsdGhpcy5wYXJhbWV0ZXJzPWh9Z2V0IHBhcmFtZXRlck1hcCgpe3JldHVybiB0aGlzLl9wYXJhbWV0ZXJNYXB8fCh0aGlzLl9wYXJhbWV0ZXJNYXA9ZDcodGhpcy5wYXJhbWV0''@;'; + put 'put ''ZXJzKSksdGhpcy5fcGFyYW1ldGVyTWFwfXRvU3RyaW5nKCl7cmV0dXJuIHNJKHRoaXMpfX1mdW5jdGlvbiBwNyhkLGcpe3JldHVybiBkLmxlbmd0aD09PWcubGVuZ3RoJiZkLmV2ZXJ5KChoLHYpPT5oLnBhdGg9PT1nW3ZdLnBhdGgpfWNsYXNzIFU1e31jbGFzcyBRRntwYXJzZShnKXtjb25z''@;'; + put 'put ''dCBoPW5ldyB4WShnKTtyZXR1cm4gbmV3IFk1KGgucGFyc2VSb290U2VnbWVudCgpLGgucGFyc2VRdWVyeVBhcmFtcygpLGgucGFyc2VGcmFnbWVudCgpKX1zZXJpYWxpemUoZyl7Y29uc3QgaD1gLyR7c3AoZy5yb290LCEwKX1gLHY9ZnVuY3Rpb24gdUkoZCl7Y29uc3QgZz1PYmplY3Qua2V5''@;'; + put 'put ''cyhkKS5tYXAoaD0+e2NvbnN0IHY9ZFtoXTtyZXR1cm4gQXJyYXkuaXNBcnJheSh2KT92Lm1hcCh5PT5gJHskZChoKX09JHskZCh5KX1gKS5qb2luKCImIik6YCR7JGQoaCl9PSR7JGQodil9YH0pLmZpbHRlcihoPT4hIWgpO3JldHVybiBnLmxlbmd0aD9gPyR7Zy5qb2luKCImIil9YDoiIn0o''@;'; + put 'put ''Zy5xdWVyeVBhcmFtcykseT0ic3RyaW5nIj09dHlwZW9mIGcuZnJhZ21lbnQ/YCMke2Z1bmN0aW9uIEVZKGQpe3JldHVybiBlbmNvZGVVUkkoZCl9KGcuZnJhZ21lbnQpfWA6IiI7cmV0dXJuYCR7aH0ke3Z9JHt5fWB9fWNvbnN0IE1ZPW5ldyBRRjtmdW5jdGlvbiBRQyhkKXtyZXR1cm4gZC5z''@;'; + put 'put ''ZWdtZW50cy5tYXAoZz0+c0koZykpLmpvaW4oIi8iKX1mdW5jdGlvbiBzcChkLGcpe2lmKCFkLmhhc0NoaWxkcmVuKCkpcmV0dXJuIFFDKGQpO2lmKGcpe2NvbnN0IGg9ZC5jaGlsZHJlbltqbF0/c3AoZC5jaGlsZHJlbltqbF0sITEpOiIiLHY9W107cmV0dXJuIFRjKGQuY2hpbGRyZW4sKHks''@;'; + put 'put ''Qyk9PntDIT09amwmJnYucHVzaChgJHtDfToke3NwKHksITEpfWApfSksdi5sZW5ndGg+MD9gJHtofSgke3Yuam9pbigiLy8iKX0pYDpofXtjb25zdCBoPWZ1bmN0aW9uIEEwZShkLGcpe2xldCBoPVtdO3JldHVybiBUYyhkLmNoaWxkcmVuLCh2LHkpPT57eT09PWpsJiYoaD1oLmNvbmNhdChn''@;'; + put 'put ''KHYseSkpKX0pLFRjKGQuY2hpbGRyZW4sKHYseSk9Pnt5IT09amwmJihoPWguY29uY2F0KGcodix5KSkpfSksaH0oZCwodix5KT0+eT09PWpsP1tzcChkLmNoaWxkcmVuW2psXSwhMSldOltgJHt5fToke3NwKHYsITEpfWBdKTtyZXR1cm4gMT09PU9iamVjdC5rZXlzKGQuY2hpbGRyZW4pLmxl''@;'; + put 'put ''bmd0aCYmbnVsbCE9ZC5jaGlsZHJlbltqbF0/YCR7UUMoZCl9LyR7aFswXX1gOmAke1FDKGQpfS8oJHtoLmpvaW4oIi8vIil9KWB9fWZ1bmN0aW9uIFUzKGQpe3JldHVybiBlbmNvZGVVUklDb21wb25lbnQoZCkucmVwbGFjZSgvJTQwL2csIkAiKS5yZXBsYWNlKC8lM0EvZ2ksIjoiKS5yZXBs''@;'; + put 'put ''YWNlKC8lMjQvZywiJCIpLnJlcGxhY2UoLyUyQy9naSwiLCIpfWZ1bmN0aW9uICRkKGQpe3JldHVybiBVMyhkKS5yZXBsYWNlKC8lM0IvZ2ksIjsiKX1mdW5jdGlvbiBKRihkKXtyZXR1cm4gVTMoZCkucmVwbGFjZSgvXCgvZywiJTI4IikucmVwbGFjZSgvXCkvZywiJTI5IikucmVwbGFjZSgv''@;'; + put 'put ''JTI2L2dpLCImIil9ZnVuY3Rpb24gS0EoZCl7cmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChkKX1mdW5jdGlvbiBKYyhkKXtyZXR1cm4gS0EoZC5yZXBsYWNlKC9cKy9nLCIlMjAiKSl9ZnVuY3Rpb24gc0koZCl7cmV0dXJuYCR7SkYoZC5wYXRoKX0ke2Z1bmN0aW9uIHkwZShkKXtyZXR1cm4g''@;'; + put 'put ''T2JqZWN0LmtleXMoZCkubWFwKGc9PmA7JHtKRihnKX09JHtKRihkW2ddKX1gKS5qb2luKCIiKX0oZC5wYXJhbWV0ZXJzKX1gfWNvbnN0IHcwZT0vXlteXC8oKT87PSNdKy87ZnVuY3Rpb24gVWgoZCl7Y29uc3QgZz1kLm1hdGNoKHcwZSk7cmV0dXJuIGc/Z1swXToiIn1jb25zdCBjST0vXlte''@;'; + put 'put ''PT8mI10rLyx6Nj0vXlteJiNdKy87Y2xhc3MgeFl7Y29uc3RydWN0b3IoZyl7dGhpcy51cmw9Zyx0aGlzLnJlbWFpbmluZz1nfXBhcnNlUm9vdFNlZ21lbnQoKXtyZXR1cm4gdGhpcy5jb25zdW1lT3B0aW9uYWwoIi8iKSwiIj09PXRoaXMucmVtYWluaW5nfHx0aGlzLnBlZWtTdGFydHNXaXRo''@;'; + put 'put ''KCI/Iil8fHRoaXMucGVla1N0YXJ0c1dpdGgoIiMiKT9uZXcgY2woW10se30pOm5ldyBjbChbXSx0aGlzLnBhcnNlQ2hpbGRyZW4oKSl9cGFyc2VRdWVyeVBhcmFtcygpe2NvbnN0IGc9e307aWYodGhpcy5jb25zdW1lT3B0aW9uYWwoIj8iKSlkb3t0aGlzLnBhcnNlUXVlcnlQYXJhbShnKX13''@;'; + put 'put ''aGlsZSh0aGlzLmNvbnN1bWVPcHRpb25hbCgiJiIpKTtyZXR1cm4gZ31wYXJzZUZyYWdtZW50KCl7cmV0dXJuIHRoaXMuY29uc3VtZU9wdGlvbmFsKCIjIik/ZGVjb2RlVVJJQ29tcG9uZW50KHRoaXMucmVtYWluaW5nKTpudWxsfXBhcnNlQ2hpbGRyZW4oKXtpZigiIj09PXRoaXMucmVtYWlu''@;'; + put 'put ''aW5nKXJldHVybnt9O3RoaXMuY29uc3VtZU9wdGlvbmFsKCIvIik7Y29uc3QgZz1bXTtmb3IodGhpcy5wZWVrU3RhcnRzV2l0aCgiKCIpfHxnLnB1c2godGhpcy5wYXJzZVNlZ21lbnQoKSk7dGhpcy5wZWVrU3RhcnRzV2l0aCgiLyIpJiYhdGhpcy5wZWVrU3RhcnRzV2l0aCgiLy8iKSYmIXRo''@;'; + put 'put ''aXMucGVla1N0YXJ0c1dpdGgoIi8oIik7KXRoaXMuY2FwdHVyZSgiLyIpLGcucHVzaCh0aGlzLnBhcnNlU2VnbWVudCgpKTtsZXQgaD17fTt0aGlzLnBlZWtTdGFydHNXaXRoKCIvKCIpJiYodGhpcy5jYXB0dXJlKCIvIiksaD10aGlzLnBhcnNlUGFyZW5zKCEwKSk7bGV0IHY9e307cmV0dXJu''@;'; + put 'put ''IHRoaXMucGVla1N0YXJ0c1dpdGgoIigiKSYmKHY9dGhpcy5wYXJzZVBhcmVucyghMSkpLChnLmxlbmd0aD4wfHxPYmplY3Qua2V5cyhoKS5sZW5ndGg+MCkmJih2W2psXT1uZXcgY2woZyxoKSksdn1wYXJzZVNlZ21lbnQoKXtjb25zdCBnPVVoKHRoaXMucmVtYWluaW5nKTtpZigiIj09PWcm''@;'; + put 'put ''JnRoaXMucGVla1N0YXJ0c1dpdGgoIjsiKSl0aHJvdyBuZXcgZW4oNDAwOSwhMSk7cmV0dXJuIHRoaXMuY2FwdHVyZShnKSxuZXcgVUMoS0EoZyksdGhpcy5wYXJzZU1hdHJpeFBhcmFtcygpKX1wYXJzZU1hdHJpeFBhcmFtcygpe2NvbnN0IGc9e307Zm9yKDt0aGlzLmNvbnN1bWVPcHRpb25h''@;'; + put 'put ''bCgiOyIpOyl0aGlzLnBhcnNlUGFyYW0oZyk7cmV0dXJuIGd9cGFyc2VQYXJhbShnKXtjb25zdCBoPVVoKHRoaXMucmVtYWluaW5nKTtpZighaClyZXR1cm47dGhpcy5jYXB0dXJlKGgpO2xldCB2PSIiO2lmKHRoaXMuY29uc3VtZU9wdGlvbmFsKCI9Iikpe2NvbnN0IHk9VWgodGhpcy5yZW1h''@;'; + put 'put ''aW5pbmcpO3kmJih2PXksdGhpcy5jYXB0dXJlKHYpKX1nW0tBKGgpXT1LQSh2KX1wYXJzZVF1ZXJ5UGFyYW0oZyl7Y29uc3QgaD1mdW5jdGlvbiBYRihkKXtjb25zdCBnPWQubWF0Y2goY0kpO3JldHVybiBnP2dbMF06IiJ9KHRoaXMucmVtYWluaW5nKTtpZighaClyZXR1cm47dGhpcy5jYXB0''@;'; + put 'put ''dXJlKGgpO2xldCB2PSIiO2lmKHRoaXMuY29uc3VtZU9wdGlvbmFsKCI9Iikpe2NvbnN0IEk9ZnVuY3Rpb24gYjBlKGQpe2NvbnN0IGc9ZC5tYXRjaCh6Nik7cmV0dXJuIGc/Z1swXToiIn0odGhpcy5yZW1haW5pbmcpO0kmJih2PUksdGhpcy5jYXB0dXJlKHYpKX1jb25zdCB5PUpjKGgpLEM9''@;'; + put 'put ''SmModik7aWYoZy5oYXNPd25Qcm9wZXJ0eSh5KSl7bGV0IEk9Z1t5XTtBcnJheS5pc0FycmF5KEkpfHwoST1bSV0sZ1t5XT1JKSxJLnB1c2goQyl9ZWxzZSBnW3ldPUN9cGFyc2VQYXJlbnMoZyl7Y29uc3QgaD17fTtmb3IodGhpcy5jYXB0dXJlKCIoIik7IXRoaXMuY29uc3VtZU9wdGlvbmFs''@;'; + put 'put ''KCIpIikmJnRoaXMucmVtYWluaW5nLmxlbmd0aD4wOyl7Y29uc3Qgdj1VaCh0aGlzLnJlbWFpbmluZykseT10aGlzLnJlbWFpbmluZ1t2Lmxlbmd0aF07aWYoIi8iIT09eSYmIikiIT09eSYmIjsiIT09eSl0aHJvdyBuZXcgZW4oNDAxMCwhMSk7bGV0IEM7di5pbmRleE9mKCI6Iik+LTE/KEM9''@;'; + put 'put ''di5zbGljZSgwLHYuaW5kZXhPZigiOiIpKSx0aGlzLmNhcHR1cmUoQyksdGhpcy5jYXB0dXJlKCI6IikpOmcmJihDPWpsKTtjb25zdCBJPXRoaXMucGFyc2VDaGlsZHJlbigpO2hbQ109MT09PU9iamVjdC5rZXlzKEkpLmxlbmd0aD9JW2psXTpuZXcgY2woW10sSSksdGhpcy5jb25zdW1lT3B0''@;'; + put 'put ''aW9uYWwoIi8vIil9cmV0dXJuIGh9cGVla1N0YXJ0c1dpdGgoZyl7cmV0dXJuIHRoaXMucmVtYWluaW5nLnN0YXJ0c1dpdGgoZyl9Y29uc3VtZU9wdGlvbmFsKGcpe3JldHVybiEhdGhpcy5wZWVrU3RhcnRzV2l0aChnKSYmKHRoaXMucmVtYWluaW5nPXRoaXMucmVtYWluaW5nLnN1YnN0cmlu''@;'; + put 'put ''ZyhnLmxlbmd0aCksITApfWNhcHR1cmUoZyl7aWYoIXRoaXMuY29uc3VtZU9wdGlvbmFsKGcpKXRocm93IG5ldyBlbig0MDExLCExKX19ZnVuY3Rpb24gZkkoZCl7cmV0dXJuIGQuc2VnbWVudHMubGVuZ3RoPjA/bmV3IGNsKFtdLHtbamxdOmR9KTpkfWZ1bmN0aW9uIGhJKGQpe2NvbnN0IGc9''@;'; + put 'put ''e307Zm9yKGNvbnN0IHYgb2YgT2JqZWN0LmtleXMoZC5jaGlsZHJlbikpe2NvbnN0IEM9aEkoZC5jaGlsZHJlblt2XSk7KEMuc2VnbWVudHMubGVuZ3RoPjB8fEMuaGFzQ2hpbGRyZW4oKSkmJihnW3ZdPUMpfXJldHVybiBmdW5jdGlvbiBfMGUoZCl7aWYoMT09PWQubnVtYmVyT2ZDaGlsZHJl''@;'; + put 'put ''biYmZC5jaGlsZHJlbltqbF0pe2NvbnN0IGc9ZC5jaGlsZHJlbltqbF07cmV0dXJuIG5ldyBjbChkLnNlZ21lbnRzLmNvbmNhdChnLnNlZ21lbnRzKSxnLmNoaWxkcmVuKX1yZXR1cm4gZH0obmV3IGNsKGQuc2VnbWVudHMsZykpfWZ1bmN0aW9uIGc3KGQpe3JldHVybiBkIGluc3RhbmNlb2Yg''@;'; + put 'put ''WTV9ZnVuY3Rpb24gUzBlKGQsZyxoLHYseSl7dmFyIEM7aWYoMD09PWgubGVuZ3RoKXJldHVybiBxQShnLnJvb3QsZy5yb290LGcucm9vdCx2LHkpO2NvbnN0IGo9ZnVuY3Rpb24gS0YoZCl7aWYoInN0cmluZyI9PXR5cGVvZiBkWzBdJiYxPT09ZC5sZW5ndGgmJiIvIj09PWRbMF0pcmV0dXJu''@;'; + put 'put ''IG5ldyBUWSghMCwwLGQpO2xldCBnPTAsaD0hMTtjb25zdCB2PWQucmVkdWNlKCh5LEMsSSk9PntpZigib2JqZWN0Ij09dHlwZW9mIEMmJm51bGwhPUMpe2lmKEMub3V0bGV0cyl7Y29uc3Qgaj17fTtyZXR1cm4gVGMoQy5vdXRsZXRzLCh1ZSxfZSk9PntqW19lXT0ic3RyaW5nIj09dHlwZW9m''@;'; + put 'put ''IHVlP3VlLnNwbGl0KCIvIik6dWV9KSxbLi4ueSx7b3V0bGV0czpqfV19aWYoQy5zZWdtZW50UGF0aClyZXR1cm5bLi4ueSxDLnNlZ21lbnRQYXRoXX1yZXR1cm4ic3RyaW5nIiE9dHlwZW9mIEM/Wy4uLnksQ106MD09PUk/KEMuc3BsaXQoIi8iKS5mb3JFYWNoKChqLHVlKT0+ezA9PXVlJiYi''@;'; + put 'put ''LiI9PT1qfHwoMD09dWUmJiIiPT09aj9oPSEwOiIuLiI9PT1qP2crKzoiIiE9aiYmeS5wdXNoKGopKX0pLHkpOlsuLi55LENdfSxbXSk7cmV0dXJuIG5ldyBUWShoLGcsdil9KGgpO3JldHVybiBqLnRvUm9vdCgpP3FBKGcucm9vdCxnLnJvb3QsbmV3IGNsKFtdLHt9KSx2LHkpOmZ1bmN0aW9u''@;'; + put 'put ''IHVlKEJlKXt2YXIgTmU7Y29uc3QgS2U9ZnVuY3Rpb24gTTBlKGQsZyxoLHYpe2lmKGQuaXNBYnNvbHV0ZSlyZXR1cm4gbmV3IGV5KGcucm9vdCwhMCwwKTtpZigtMT09PXYpcmV0dXJuIG5ldyBleShoLGg9PT1nLnJvb3QsMCk7cmV0dXJuIGZ1bmN0aW9uIHFGKGQsZyxoKXtsZXQgdj1kLHk9''@;'; + put 'put ''ZyxDPWg7Zm9yKDtDPnk7KXtpZihDLT15LHY9di5wYXJlbnQsIXYpdGhyb3cgbmV3IGVuKDQwMDUsITEpO3k9di5zZWdtZW50cy5sZW5ndGh9cmV0dXJuIG5ldyBleSh2LCExLHktQyl9KGgsdisoJEEoZC5jb21tYW5kc1swXSk/MDoxKSxkLm51bWJlck9mRG91YmxlRG90cyl9KGosZyxudWxs''@;'; + put 'put ''PT09KE5lPWQuc25hcHNob3QpfHx2b2lkIDA9PT1OZT92b2lkIDA6TmUuX3VybFNlZ21lbnQsQmUpLGR0PUtlLnByb2Nlc3NDaGlsZHJlbj90eShLZS5zZWdtZW50R3JvdXAsS2UuaW5kZXgsai5jb21tYW5kcyk6cEkoS2Uuc2VnbWVudEdyb3VwLEtlLmluZGV4LGouY29tbWFuZHMpO3JldHVy''@;'; + put 'put ''biBxQShnLnJvb3QsS2Uuc2VnbWVudEdyb3VwLGR0LHYseSl9KG51bGw9PT0oQz1kLnNuYXBzaG90KXx8dm9pZCAwPT09Qz92b2lkIDA6Qy5fbGFzdFBhdGhJbmRleCl9ZnVuY3Rpb24gJEEoZCl7cmV0dXJuIm9iamVjdCI9PXR5cGVvZiBkJiZudWxsIT1kJiYhZC5vdXRsZXRzJiYhZC5zZWdt''@;'; + put 'put ''ZW50UGF0aH1mdW5jdGlvbiBYQyhkKXtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIGQmJm51bGwhPWQmJmQub3V0bGV0c31mdW5jdGlvbiBxQShkLGcsaCx2LHkpe2xldCBJLEM9e307diYmVGModiwodWUsX2UpPT57Q1tfZV09QXJyYXkuaXNBcnJheSh1ZSk/dWUubWFwKEJlPT5gJHtCZX1gKTpg''@;'; + put 'put ''JHt1ZX1gfSksST1kPT09Zz9oOmRJKGQsZyxoKTtjb25zdCBqPWZJKGhJKEkpKTtyZXR1cm4gbmV3IFk1KGosQyx5KX1mdW5jdGlvbiBkSShkLGcsaCl7Y29uc3Qgdj17fTtyZXR1cm4gVGMoZC5jaGlsZHJlbiwoeSxDKT0+e3ZbQ109eT09PWc/aDpkSSh5LGcsaCl9KSxuZXcgY2woZC5zZWdt''@;'; + put 'put ''ZW50cyx2KX1jbGFzcyBUWXtjb25zdHJ1Y3RvcihnLGgsdil7aWYodGhpcy5pc0Fic29sdXRlPWcsdGhpcy5udW1iZXJPZkRvdWJsZURvdHM9aCx0aGlzLmNvbW1hbmRzPXYsZyYmdi5sZW5ndGg+MCYmJEEodlswXSkpdGhyb3cgbmV3IGVuKDQwMDMsITEpO2NvbnN0IHk9di5maW5kKFhDKTtp''@;'; + put 'put ''Zih5JiZ5IT09R0YodikpdGhyb3cgbmV3IGVuKDQwMDQsITEpfXRvUm9vdCgpe3JldHVybiB0aGlzLmlzQWJzb2x1dGUmJjE9PT10aGlzLmNvbW1hbmRzLmxlbmd0aCYmIi8iPT10aGlzLmNvbW1hbmRzWzBdfX1jbGFzcyBleXtjb25zdHJ1Y3RvcihnLGgsdil7dGhpcy5zZWdtZW50R3JvdXA9''@;'; + put 'put ''Zyx0aGlzLnByb2Nlc3NDaGlsZHJlbj1oLHRoaXMuaW5kZXg9dn19ZnVuY3Rpb24gcEkoZCxnLGgpe2lmKGR8fChkPW5ldyBjbChbXSx7fSkpLDA9PT1kLnNlZ21lbnRzLmxlbmd0aCYmZC5oYXNDaGlsZHJlbigpKXJldHVybiB0eShkLGcsaCk7Y29uc3Qgdj1mdW5jdGlvbiBlSChkLGcsaCl7''@;'; + put 'put ''bGV0IHY9MCx5PWc7Y29uc3QgQz17bWF0Y2g6ITEscGF0aEluZGV4OjAsY29tbWFuZEluZGV4OjB9O2Zvcig7eTxkLnNlZ21lbnRzLmxlbmd0aDspe2lmKHY+PWgubGVuZ3RoKXJldHVybiBDO2NvbnN0IEk9ZC5zZWdtZW50c1t5XSxqPWhbdl07aWYoWEMoaikpYnJlYWs7Y29uc3QgdWU9YCR7''@;'; + put 'put ''an1gLF9lPXY8aC5sZW5ndGgtMT9oW3YrMV06bnVsbDtpZih5PjAmJnZvaWQgMD09PXVlKWJyZWFrO2lmKHVlJiZfZSYmIm9iamVjdCI9PXR5cGVvZiBfZSYmdm9pZCAwPT09X2Uub3V0bGV0cyl7aWYoIUtDKHVlLF9lLEkpKXJldHVybiBDO3YrPTJ9ZWxzZXtpZighS0ModWUse30sSSkpcmV0''@;'; + put 'put ''dXJuIEM7disrfXkrK31yZXR1cm57bWF0Y2g6ITAscGF0aEluZGV4OnksY29tbWFuZEluZGV4OnZ9fShkLGcsaCkseT1oLnNsaWNlKHYuY29tbWFuZEluZGV4KTtpZih2Lm1hdGNoJiZ2LnBhdGhJbmRleDxkLnNlZ21lbnRzLmxlbmd0aCl7Y29uc3QgQz1uZXcgY2woZC5zZWdtZW50cy5zbGlj''@;'; + put 'put ''ZSgwLHYucGF0aEluZGV4KSx7fSk7cmV0dXJuIEMuY2hpbGRyZW5bamxdPW5ldyBjbChkLnNlZ21lbnRzLnNsaWNlKHYucGF0aEluZGV4KSxkLmNoaWxkcmVuKSx0eShDLDAseSl9cmV0dXJuIHYubWF0Y2gmJjA9PT15Lmxlbmd0aD9uZXcgY2woZC5zZWdtZW50cyx7fSk6di5tYXRjaCYmIWQu''@;'; + put 'put ''aGFzQ2hpbGRyZW4oKT9nSShkLGcsaCk6di5tYXRjaD90eShkLDAseSk6Z0koZCxnLGgpfWZ1bmN0aW9uIHR5KGQsZyxoKXtpZigwPT09aC5sZW5ndGgpcmV0dXJuIG5ldyBjbChkLnNlZ21lbnRzLHt9KTt7Y29uc3Qgdj1mdW5jdGlvbiBFMGUoZCl7cmV0dXJuIFhDKGRbMF0pP2RbMF0ub3V0''@;'; + put 'put ''bGV0czp7W2psXTpkfX0oaCkseT17fTtyZXR1cm4gVGModiwoQyxJKT0+eyJzdHJpbmciPT10eXBlb2YgQyYmKEM9W0NdKSxudWxsIT09QyYmKHlbSV09cEkoZC5jaGlsZHJlbltJXSxnLEMpKX0pLFRjKGQuY2hpbGRyZW4sKEMsSSk9Pnt2b2lkIDA9PT12W0ldJiYoeVtJXT1DKX0pLG5ldyBj''@;'; + put 'put ''bChkLnNlZ21lbnRzLHkpfX1mdW5jdGlvbiBnSShkLGcsaCl7Y29uc3Qgdj1kLnNlZ21lbnRzLnNsaWNlKDAsZyk7bGV0IHk9MDtmb3IoO3k8aC5sZW5ndGg7KXtjb25zdCBDPWhbeV07aWYoWEMoQykpe2NvbnN0IHVlPUlZKEMub3V0bGV0cyk7cmV0dXJuIG5ldyBjbCh2LHVlKX1pZigwPT09''@;'; + put 'put ''eSYmJEEoaFswXSkpe3YucHVzaChuZXcgVUMoZC5zZWdtZW50c1tnXS5wYXRoLHRIKGhbMF0pKSkseSsrO2NvbnRpbnVlfWNvbnN0IEk9WEMoQyk/Qy5vdXRsZXRzW2psXTpgJHtDfWAsaj15PGgubGVuZ3RoLTE/aFt5KzFdOm51bGw7SSYmaiYmJEEoaik/KHYucHVzaChuZXcgVUMoSSx0SChq''@;'; + put 'put ''KSkpLHkrPTIpOih2LnB1c2gobmV3IFVDKEkse30pKSx5KyspfXJldHVybiBuZXcgY2wodix7fSl9ZnVuY3Rpb24gSVkoZCl7Y29uc3QgZz17fTtyZXR1cm4gVGMoZCwoaCx2KT0+eyJzdHJpbmciPT10eXBlb2YgaCYmKGg9W2hdKSxudWxsIT09aCYmKGdbdl09Z0kobmV3IGNsKFtdLHt9KSww''@;'; + put 'put ''LGgpKX0pLGd9ZnVuY3Rpb24gdEgoZCl7Y29uc3QgZz17fTtyZXR1cm4gVGMoZCwoaCx2KT0+Z1t2XT1gJHtofWApLGd9ZnVuY3Rpb24gS0MoZCxnLGgpe3JldHVybiBkPT1oLnBhdGgmJmxwKGcsaC5wYXJhbWV0ZXJzKX1jbGFzcyB1cHtjb25zdHJ1Y3RvcihnLGgpe3RoaXMuaWQ9Zyx0aGlz''@;'; + put 'put ''LnVybD1ofX1jbGFzcyBtSSBleHRlbmRzIHVwe2NvbnN0cnVjdG9yKGcsaCx2PSJpbXBlcmF0aXZlIix5PW51bGwpe3N1cGVyKGcsaCksdGhpcy50eXBlPTAsdGhpcy5uYXZpZ2F0aW9uVHJpZ2dlcj12LHRoaXMucmVzdG9yZWRTdGF0ZT15fXRvU3RyaW5nKCl7cmV0dXJuYE5hdmlnYXRpb25T''@;'; + put 'put ''dGFydChpZDogJHt0aGlzLmlkfSwgdXJsOiAnJHt0aGlzLnVybH0nKWB9fWNsYXNzIEc2IGV4dGVuZHMgdXB7Y29uc3RydWN0b3IoZyxoLHYpe3N1cGVyKGcsaCksdGhpcy51cmxBZnRlclJlZGlyZWN0cz12LHRoaXMudHlwZT0xfXRvU3RyaW5nKCl7cmV0dXJuYE5hdmlnYXRpb25FbmQoaWQ6''@;'; + put 'put ''ICR7dGhpcy5pZH0sIHVybDogJyR7dGhpcy51cmx9JywgdXJsQWZ0ZXJSZWRpcmVjdHM6ICcke3RoaXMudXJsQWZ0ZXJSZWRpcmVjdHN9JylgfX1jbGFzcyB2SSBleHRlbmRzIHVwe2NvbnN0cnVjdG9yKGcsaCx2LHkpe3N1cGVyKGcsaCksdGhpcy5yZWFzb249dix0aGlzLmNvZGU9eSx0aGlz''@;'; + put 'put ''LnR5cGU9Mn10b1N0cmluZygpe3JldHVybmBOYXZpZ2F0aW9uQ2FuY2VsKGlkOiAke3RoaXMuaWR9LCB1cmw6ICcke3RoaXMudXJsfScpYH19Y2xhc3MgbkggZXh0ZW5kcyB1cHtjb25zdHJ1Y3RvcihnLGgsdix5KXtzdXBlcihnLGgpLHRoaXMuZXJyb3I9dix0aGlzLnRhcmdldD15LHRoaXMu''@;'; + put 'put ''dHlwZT0zfXRvU3RyaW5nKCl7cmV0dXJuYE5hdmlnYXRpb25FcnJvcihpZDogJHt0aGlzLmlkfSwgdXJsOiAnJHt0aGlzLnVybH0nLCBlcnJvcjogJHt0aGlzLmVycm9yfSlgfX1jbGFzcyBEWSBleHRlbmRzIHVwe2NvbnN0cnVjdG9yKGcsaCx2LHkpe3N1cGVyKGcsaCksdGhpcy51cmxBZnRl''@;'; + put 'put ''clJlZGlyZWN0cz12LHRoaXMuc3RhdGU9eSx0aGlzLnR5cGU9NH10b1N0cmluZygpe3JldHVybmBSb3V0ZXNSZWNvZ25pemVkKGlkOiAke3RoaXMuaWR9LCB1cmw6ICcke3RoaXMudXJsfScsIHVybEFmdGVyUmVkaXJlY3RzOiAnJHt0aGlzLnVybEFmdGVyUmVkaXJlY3RzfScsIHN0YXRlOiAk''@;'; + put 'put ''e3RoaXMuc3RhdGV9KWB9fWNsYXNzIHgwZSBleHRlbmRzIHVwe2NvbnN0cnVjdG9yKGcsaCx2LHkpe3N1cGVyKGcsaCksdGhpcy51cmxBZnRlclJlZGlyZWN0cz12LHRoaXMuc3RhdGU9eSx0aGlzLnR5cGU9N310b1N0cmluZygpe3JldHVybmBHdWFyZHNDaGVja1N0YXJ0KGlkOiAke3RoaXMu''@;'; + put 'put ''aWR9LCB1cmw6ICcke3RoaXMudXJsfScsIHVybEFmdGVyUmVkaXJlY3RzOiAnJHt0aGlzLnVybEFmdGVyUmVkaXJlY3RzfScsIHN0YXRlOiAke3RoaXMuc3RhdGV9KWB9fWNsYXNzIHJIIGV4dGVuZHMgdXB7Y29uc3RydWN0b3IoZyxoLHYseSxDKXtzdXBlcihnLGgpLHRoaXMudXJsQWZ0ZXJS''@;'; + put 'put ''ZWRpcmVjdHM9dix0aGlzLnN0YXRlPXksdGhpcy5zaG91bGRBY3RpdmF0ZT1DLHRoaXMudHlwZT04fXRvU3RyaW5nKCl7cmV0dXJuYEd1YXJkc0NoZWNrRW5kKGlkOiAke3RoaXMuaWR9LCB1cmw6ICcke3RoaXMudXJsfScsIHVybEFmdGVyUmVkaXJlY3RzOiAnJHt0aGlzLnVybEFmdGVyUmVk''@;'; + put 'put ''aXJlY3RzfScsIHN0YXRlOiAke3RoaXMuc3RhdGV9LCBzaG91bGRBY3RpdmF0ZTogJHt0aGlzLnNob3VsZEFjdGl2YXRlfSlgfX1jbGFzcyBMWSBleHRlbmRzIHVwe2NvbnN0cnVjdG9yKGcsaCx2LHkpe3N1cGVyKGcsaCksdGhpcy51cmxBZnRlclJlZGlyZWN0cz12LHRoaXMuc3RhdGU9eSx0''@;'; + put 'put ''aGlzLnR5cGU9NX10b1N0cmluZygpe3JldHVybmBSZXNvbHZlU3RhcnQoaWQ6ICR7dGhpcy5pZH0sIHVybDogJyR7dGhpcy51cmx9JywgdXJsQWZ0ZXJSZWRpcmVjdHM6ICcke3RoaXMudXJsQWZ0ZXJSZWRpcmVjdHN9Jywgc3RhdGU6ICR7dGhpcy5zdGF0ZX0pYH19Y2xhc3MgVDBlIGV4dGVu''@;'; + put 'put ''ZHMgdXB7Y29uc3RydWN0b3IoZyxoLHYseSl7c3VwZXIoZyxoKSx0aGlzLnVybEFmdGVyUmVkaXJlY3RzPXYsdGhpcy5zdGF0ZT15LHRoaXMudHlwZT02fXRvU3RyaW5nKCl7cmV0dXJuYFJlc29sdmVFbmQoaWQ6ICR7dGhpcy5pZH0sIHVybDogJyR7dGhpcy51cmx9JywgdXJsQWZ0ZXJSZWRp''@;'; + put 'put ''cmVjdHM6ICcke3RoaXMudXJsQWZ0ZXJSZWRpcmVjdHN9Jywgc3RhdGU6ICR7dGhpcy5zdGF0ZX0pYH19Y2xhc3MgSTBle2NvbnN0cnVjdG9yKGcpe3RoaXMucm91dGU9Zyx0aGlzLnR5cGU9OX10b1N0cmluZygpe3JldHVybmBSb3V0ZUNvbmZpZ0xvYWRTdGFydChwYXRoOiAke3RoaXMucm91''@;'; + put 'put ''dGUucGF0aH0pYH19Y2xhc3MgJEN7Y29uc3RydWN0b3IoZyl7dGhpcy5yb3V0ZT1nLHRoaXMudHlwZT0xMH10b1N0cmluZygpe3JldHVybmBSb3V0ZUNvbmZpZ0xvYWRFbmQocGF0aDogJHt0aGlzLnJvdXRlLnBhdGh9KWB9fWNsYXNzIGlIe2NvbnN0cnVjdG9yKGcpe3RoaXMuc25hcHNob3Q9''@;'; + put 'put ''Zyx0aGlzLnR5cGU9MTF9dG9TdHJpbmcoKXtyZXR1cm5gQ2hpbGRBY3RpdmF0aW9uU3RhcnQocGF0aDogJyR7dGhpcy5zbmFwc2hvdC5yb3V0ZUNvbmZpZyYmdGhpcy5zbmFwc2hvdC5yb3V0ZUNvbmZpZy5wYXRofHwiIn0nKWB9fWNsYXNzIE9Ze2NvbnN0cnVjdG9yKGcpe3RoaXMuc25hcHNo''@;'; + put 'put ''b3Q9Zyx0aGlzLnR5cGU9MTJ9dG9TdHJpbmcoKXtyZXR1cm5gQ2hpbGRBY3RpdmF0aW9uRW5kKHBhdGg6ICcke3RoaXMuc25hcHNob3Qucm91dGVDb25maWcmJnRoaXMuc25hcHNob3Qucm91dGVDb25maWcucGF0aHx8IiJ9JylgfX1jbGFzcyBSWXtjb25zdHJ1Y3RvcihnKXt0aGlzLnNuYXBz''@;'; + put 'put ''aG90PWcsdGhpcy50eXBlPTEzfXRvU3RyaW5nKCl7cmV0dXJuYEFjdGl2YXRpb25TdGFydChwYXRoOiAnJHt0aGlzLnNuYXBzaG90LnJvdXRlQ29uZmlnJiZ0aGlzLnNuYXBzaG90LnJvdXRlQ29uZmlnLnBhdGh8fCIifScpYH19Y2xhc3MgRDBle2NvbnN0cnVjdG9yKGcpe3RoaXMuc25hcHNo''@;'; + put 'put ''b3Q9Zyx0aGlzLnR5cGU9MTR9dG9TdHJpbmcoKXtyZXR1cm5gQWN0aXZhdGlvbkVuZChwYXRoOiAnJHt0aGlzLnNuYXBzaG90LnJvdXRlQ29uZmlnJiZ0aGlzLnNuYXBzaG90LnJvdXRlQ29uZmlnLnBhdGh8fCIifScpYH19Y2xhc3MgQUl7Y29uc3RydWN0b3IoZyxoLHYpe3RoaXMucm91dGVy''@;'; + put 'put ''RXZlbnQ9Zyx0aGlzLnBvc2l0aW9uPWgsdGhpcy5hbmNob3I9dix0aGlzLnR5cGU9MTV9dG9TdHJpbmcoKXtyZXR1cm5gU2Nyb2xsKGFuY2hvcjogJyR7dGhpcy5hbmNob3J9JywgcG9zaXRpb246ICcke3RoaXMucG9zaXRpb24/YCR7dGhpcy5wb3NpdGlvblswXX0sICR7dGhpcy5wb3NpdGlv''@;'; + put 'put ''blsxXX1gOm51bGx9JylgfX1jbGFzcyB5SXtjb25zdHJ1Y3RvcihnKXt0aGlzLl9yb290PWd9Z2V0IHJvb3QoKXtyZXR1cm4gdGhpcy5fcm9vdC52YWx1ZX1wYXJlbnQoZyl7Y29uc3QgaD10aGlzLnBhdGhGcm9tUm9vdChnKTtyZXR1cm4gaC5sZW5ndGg+MT9oW2gubGVuZ3RoLTJdOm51bGx9''@;'; + put 'put ''Y2hpbGRyZW4oZyl7Y29uc3QgaD1ueShnLHRoaXMuX3Jvb3QpO3JldHVybiBoP2guY2hpbGRyZW4ubWFwKHY9PnYudmFsdWUpOltdfWZpcnN0Q2hpbGQoZyl7Y29uc3QgaD1ueShnLHRoaXMuX3Jvb3QpO3JldHVybiBoJiZoLmNoaWxkcmVuLmxlbmd0aD4wP2guY2hpbGRyZW5bMF0udmFsdWU6''@;'; + put 'put ''bnVsbH1zaWJsaW5ncyhnKXtjb25zdCBoPXJ5KGcsdGhpcy5fcm9vdCk7cmV0dXJuIGgubGVuZ3RoPDI/W106aFtoLmxlbmd0aC0yXS5jaGlsZHJlbi5tYXAoeT0+eS52YWx1ZSkuZmlsdGVyKHk9PnkhPT1nKX1wYXRoRnJvbVJvb3QoZyl7cmV0dXJuIHJ5KGcsdGhpcy5fcm9vdCkubWFwKGg9''@;'; + put 'put ''PmgudmFsdWUpfX1mdW5jdGlvbiBueShkLGcpe2lmKGQ9PT1nLnZhbHVlKXJldHVybiBnO2Zvcihjb25zdCBoIG9mIGcuY2hpbGRyZW4pe2NvbnN0IHY9bnkoZCxoKTtpZih2KXJldHVybiB2fXJldHVybiBudWxsfWZ1bmN0aW9uIHJ5KGQsZyl7aWYoZD09PWcudmFsdWUpcmV0dXJuW2ddO2Zv''@;'; + put 'put ''cihjb25zdCBoIG9mIGcuY2hpbGRyZW4pe2NvbnN0IHY9cnkoZCxoKTtpZih2Lmxlbmd0aClyZXR1cm4gdi51bnNoaWZ0KGcpLHZ9cmV0dXJuW119Y2xhc3MgVzZ7Y29uc3RydWN0b3IoZyxoKXt0aGlzLnZhbHVlPWcsdGhpcy5jaGlsZHJlbj1ofXRvU3RyaW5nKCl7cmV0dXJuYFRyZWVOb2Rl''@;'; + put 'put ''KCR7dGhpcy52YWx1ZX0pYH19ZnVuY3Rpb24gY3AoZCl7Y29uc3QgZz17fTtyZXR1cm4gZCYmZC5jaGlsZHJlbi5mb3JFYWNoKGg9PmdbaC52YWx1ZS5vdXRsZXRdPWgpLGd9Y2xhc3MgQlkgZXh0ZW5kcyB5SXtjb25zdHJ1Y3RvcihnLGgpe3N1cGVyKGcpLHRoaXMuc25hcHNob3Q9aCx3SSh0''@;'; + put 'put ''aGlzLGcpfXRvU3RyaW5nKCl7cmV0dXJuIHRoaXMuc25hcHNob3QudG9TdHJpbmcoKX19ZnVuY3Rpb24gUFkoZCxnKXtjb25zdCBoPWZ1bmN0aW9uIE8wZShkLGcpe2NvbnN0IEk9bmV3IHFDKFtdLHt9LHt9LCIiLHt9LGpsLGcsbnVsbCxkLnJvb3QsLTEse30pO3JldHVybiBuZXcgTlkoIiIs''@;'; + put 'put ''bmV3IFc2KEksW10pKX0oZCxnKSx2PW5ldyBjcyhbbmV3IFVDKCIiLHt9KV0pLHk9bmV3IGNzKHt9KSxDPW5ldyBjcyh7fSksST1uZXcgY3Moe30pLGo9bmV3IGNzKCIiKSx1ZT1uZXcgUHUodix5LEksaixDLGpsLGcsaC5yb290KTtyZXR1cm4gdWUuc25hcHNob3Q9aC5yb290LG5ldyBCWShu''@;'; + put 'put ''ZXcgVzYodWUsW10pLGgpfWNsYXNzIFB1e2NvbnN0cnVjdG9yKGcsaCx2LHksQyxJLGosdWUpe3RoaXMudXJsPWcsdGhpcy5wYXJhbXM9aCx0aGlzLnF1ZXJ5UGFyYW1zPXYsdGhpcy5mcmFnbWVudD15LHRoaXMuZGF0YT1DLHRoaXMub3V0bGV0PUksdGhpcy5jb21wb25lbnQ9aix0aGlzLl9m''@;'; + put 'put ''dXR1cmVTbmFwc2hvdD11ZX1nZXQgcm91dGVDb25maWcoKXtyZXR1cm4gdGhpcy5fZnV0dXJlU25hcHNob3Qucm91dGVDb25maWd9Z2V0IHJvb3QoKXtyZXR1cm4gdGhpcy5fcm91dGVyU3RhdGUucm9vdH1nZXQgcGFyZW50KCl7cmV0dXJuIHRoaXMuX3JvdXRlclN0YXRlLnBhcmVudCh0aGlz''@;'; + put 'put ''KX1nZXQgZmlyc3RDaGlsZCgpe3JldHVybiB0aGlzLl9yb3V0ZXJTdGF0ZS5maXJzdENoaWxkKHRoaXMpfWdldCBjaGlsZHJlbigpe3JldHVybiB0aGlzLl9yb3V0ZXJTdGF0ZS5jaGlsZHJlbih0aGlzKX1nZXQgcGF0aEZyb21Sb290KCl7cmV0dXJuIHRoaXMuX3JvdXRlclN0YXRlLnBhdGhG''@;'; + put 'put ''cm9tUm9vdCh0aGlzKX1nZXQgcGFyYW1NYXAoKXtyZXR1cm4gdGhpcy5fcGFyYW1NYXB8fCh0aGlzLl9wYXJhbU1hcD10aGlzLnBhcmFtcy5waXBlKG10KGc9PmQ3KGcpKSkpLHRoaXMuX3BhcmFtTWFwfWdldCBxdWVyeVBhcmFtTWFwKCl7cmV0dXJuIHRoaXMuX3F1ZXJ5UGFyYW1NYXB8fCh0''@;'; + put 'put ''aGlzLl9xdWVyeVBhcmFtTWFwPXRoaXMucXVlcnlQYXJhbXMucGlwZShtdChnPT5kNyhnKSkpKSx0aGlzLl9xdWVyeVBhcmFtTWFwfXRvU3RyaW5nKCl7cmV0dXJuIHRoaXMuc25hcHNob3Q/dGhpcy5zbmFwc2hvdC50b1N0cmluZygpOmBGdXR1cmUoJHt0aGlzLl9mdXR1cmVTbmFwc2hvdH0p''@;'; + put 'put ''YH19ZnVuY3Rpb24gRlkoZCxnPSJlbXB0eU9ubHkiKXtjb25zdCBoPWQucGF0aEZyb21Sb290O2xldCB2PTA7aWYoImFsd2F5cyIhPT1nKWZvcih2PWgubGVuZ3RoLTE7dj49MTspe2NvbnN0IHk9aFt2XSxDPWhbdi0xXTtpZih5LnJvdXRlQ29uZmlnJiYiIj09PXkucm91dGVDb25maWcucGF0''@;'; + put 'put ''aCl2LS07ZWxzZXtpZihDLmNvbXBvbmVudClicmVhazt2LS19fXJldHVybiBmdW5jdGlvbiBIWShkKXtyZXR1cm4gZC5yZWR1Y2UoKGcsaCk9Pnt2YXIgdjtyZXR1cm57cGFyYW1zOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxnLnBhcmFtcyksaC5wYXJhbXMpLGRhdGE6T2JqZWN0''@;'; + put 'put ''LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGcuZGF0YSksaC5kYXRhKSxyZXNvbHZlOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30saC5kYXRhKSxnLnJlc29sdmUpLG51bGw9PT0odj1oLnJvdXRlQ29uZmlnKXx8dm9pZCAwPT09dj92''@;'; + put 'put ''b2lkIDA6di5kYXRhKSxoLl9yZXNvbHZlZERhdGEpfX0se3BhcmFtczp7fSxkYXRhOnt9LHJlc29sdmU6e319KX0oaC5zbGljZSh2KSl9Y2xhc3MgcUN7Y29uc3RydWN0b3IoZyxoLHYseSxDLEksaix1ZSxfZSxCZSxOZSxLZSl7dGhpcy51cmw9Zyx0aGlzLnBhcmFtcz1oLHRoaXMucXVlcnlQ''@;'; + put 'put ''YXJhbXM9dix0aGlzLmZyYWdtZW50PXksdGhpcy5kYXRhPUMsdGhpcy5vdXRsZXQ9SSx0aGlzLmNvbXBvbmVudD1qLHRoaXMucm91dGVDb25maWc9dWUsdGhpcy5fdXJsU2VnbWVudD1fZSx0aGlzLl9sYXN0UGF0aEluZGV4PUJlLHRoaXMuX2NvcnJlY3RlZExhc3RQYXRoSW5kZXg9bnVsbCE9''@;'; + put 'put ''S2U/S2U6QmUsdGhpcy5fcmVzb2x2ZT1OZX1nZXQgcm9vdCgpe3JldHVybiB0aGlzLl9yb3V0ZXJTdGF0ZS5yb290fWdldCBwYXJlbnQoKXtyZXR1cm4gdGhpcy5fcm91dGVyU3RhdGUucGFyZW50KHRoaXMpfWdldCBmaXJzdENoaWxkKCl7cmV0dXJuIHRoaXMuX3JvdXRlclN0YXRlLmZpcnN0''@;'; + put 'put ''Q2hpbGQodGhpcyl9Z2V0IGNoaWxkcmVuKCl7cmV0dXJuIHRoaXMuX3JvdXRlclN0YXRlLmNoaWxkcmVuKHRoaXMpfWdldCBwYXRoRnJvbVJvb3QoKXtyZXR1cm4gdGhpcy5fcm91dGVyU3RhdGUucGF0aEZyb21Sb290KHRoaXMpfWdldCBwYXJhbU1hcCgpe3JldHVybiB0aGlzLl9wYXJhbU1h''@;'; + put 'put ''cHx8KHRoaXMuX3BhcmFtTWFwPWQ3KHRoaXMucGFyYW1zKSksdGhpcy5fcGFyYW1NYXB9Z2V0IHF1ZXJ5UGFyYW1NYXAoKXtyZXR1cm4gdGhpcy5fcXVlcnlQYXJhbU1hcHx8KHRoaXMuX3F1ZXJ5UGFyYW1NYXA9ZDcodGhpcy5xdWVyeVBhcmFtcykpLHRoaXMuX3F1ZXJ5UGFyYW1NYXB9dG9T''@;'; + put 'put ''dHJpbmcoKXtyZXR1cm5gUm91dGUodXJsOicke3RoaXMudXJsLm1hcCh2PT52LnRvU3RyaW5nKCkpLmpvaW4oIi8iKX0nLCBwYXRoOicke3RoaXMucm91dGVDb25maWc/dGhpcy5yb3V0ZUNvbmZpZy5wYXRoOiIifScpYH19Y2xhc3MgTlkgZXh0ZW5kcyB5SXtjb25zdHJ1Y3RvcihnLGgpe3N1''@;'; + put 'put ''cGVyKGgpLHRoaXMudXJsPWcsd0kodGhpcyxoKX10b1N0cmluZygpe3JldHVybiBWWSh0aGlzLl9yb290KX19ZnVuY3Rpb24gd0koZCxnKXtnLnZhbHVlLl9yb3V0ZXJTdGF0ZT1kLGcuY2hpbGRyZW4uZm9yRWFjaChoPT53SShkLGgpKX1mdW5jdGlvbiBWWShkKXtjb25zdCBnPWQuY2hpbGRy''@;'; + put 'put ''ZW4ubGVuZ3RoPjA/YCB7ICR7ZC5jaGlsZHJlbi5tYXAoVlkpLmpvaW4oIiwgIil9IH0gYDoiIjtyZXR1cm5gJHtkLnZhbHVlfSR7Z31gfWZ1bmN0aW9uIG9IKGQpe2lmKGQuc25hcHNob3Qpe2NvbnN0IGc9ZC5zbmFwc2hvdCxoPWQuX2Z1dHVyZVNuYXBzaG90O2Quc25hcHNob3Q9aCxscChn''@;'; + put 'put ''LnF1ZXJ5UGFyYW1zLGgucXVlcnlQYXJhbXMpfHxkLnF1ZXJ5UGFyYW1zLm5leHQoaC5xdWVyeVBhcmFtcyksZy5mcmFnbWVudCE9PWguZnJhZ21lbnQmJmQuZnJhZ21lbnQubmV4dChoLmZyYWdtZW50KSxscChnLnBhcmFtcyxoLnBhcmFtcyl8fGQucGFyYW1zLm5leHQoaC5wYXJhbXMpLGZ1''@;'; + put 'put ''bmN0aW9uIF9ZKGQsZyl7aWYoZC5sZW5ndGghPT1nLmxlbmd0aClyZXR1cm4hMTtmb3IobGV0IGg9MDtoPGQubGVuZ3RoOysraClpZighbHAoZFtoXSxnW2hdKSlyZXR1cm4hMTtyZXR1cm4hMH0oZy51cmwsaC51cmwpfHxkLnVybC5uZXh0KGgudXJsKSxscChnLmRhdGEsaC5kYXRhKXx8ZC5k''@;'; + put 'put ''YXRhLm5leHQoaC5kYXRhKX1lbHNlIGQuc25hcHNob3Q9ZC5fZnV0dXJlU25hcHNob3QsZC5kYXRhLm5leHQoZC5fZnV0dXJlU25hcHNob3QuZGF0YSl9ZnVuY3Rpb24gYkkoZCxnKXtjb25zdCBoPWxwKGQucGFyYW1zLGcucGFyYW1zKSYmZnVuY3Rpb24gdjBlKGQsZyl7cmV0dXJuIHA3KGQs''@;'; + put 'put ''ZykmJmQuZXZlcnkoKGgsdik9PmxwKGgucGFyYW1ldGVycyxnW3ZdLnBhcmFtZXRlcnMpKX0oZC51cmwsZy51cmwpO3JldHVybiBoJiYhKCFkLnBhcmVudCE9IWcucGFyZW50KSYmKCFkLnBhcmVudHx8YkkoZC5wYXJlbnQsZy5wYXJlbnQpKX1mdW5jdGlvbiBpeShkLGcsaCl7aWYoaCYmZC5z''@;'; + put 'put ''aG91bGRSZXVzZVJvdXRlKGcudmFsdWUsaC52YWx1ZS5zbmFwc2hvdCkpe2NvbnN0IHY9aC52YWx1ZTt2Ll9mdXR1cmVTbmFwc2hvdD1nLnZhbHVlO2NvbnN0IHk9ZnVuY3Rpb24gUjBlKGQsZyxoKXtyZXR1cm4gZy5jaGlsZHJlbi5tYXAodj0+e2Zvcihjb25zdCB5IG9mIGguY2hpbGRyZW4p''@;'; + put 'put ''aWYoZC5zaG91bGRSZXVzZVJvdXRlKHYudmFsdWUseS52YWx1ZS5zbmFwc2hvdCkpcmV0dXJuIGl5KGQsdix5KTtyZXR1cm4gaXkoZCx2KX0pfShkLGcsaCk7cmV0dXJuIG5ldyBXNih2LHkpfXtpZihkLnNob3VsZEF0dGFjaChnLnZhbHVlKSl7Y29uc3QgQz1kLnJldHJpZXZlKGcudmFsdWUp''@;'; + put 'put ''O2lmKG51bGwhPT1DKXtjb25zdCBJPUMucm91dGU7cmV0dXJuIEkudmFsdWUuX2Z1dHVyZVNuYXBzaG90PWcudmFsdWUsSS5jaGlsZHJlbj1nLmNoaWxkcmVuLm1hcChqPT5peShkLGopKSxJfX1jb25zdCB2PWZ1bmN0aW9uIFpZKGQpe3JldHVybiBuZXcgUHUobmV3IGNzKGQudXJsKSxuZXcg''@;'; + put 'put ''Y3MoZC5wYXJhbXMpLG5ldyBjcyhkLnF1ZXJ5UGFyYW1zKSxuZXcgY3MoZC5mcmFnbWVudCksbmV3IGNzKGQuZGF0YSksZC5vdXRsZXQsZC5jb21wb25lbnQsZCl9KGcudmFsdWUpLHk9Zy5jaGlsZHJlbi5tYXAoQz0+aXkoZCxDKSk7cmV0dXJuIG5ldyBXNih2LHkpfX1jb25zdCBfST0ibmdO''@;'; + put 'put ''YXZpZ2F0aW9uQ2FuY2VsaW5nRXJyb3IiO2Z1bmN0aW9uIGFIKGQsZyl7Y29uc3R7cmVkaXJlY3RUbzpoLG5hdmlnYXRpb25CZWhhdmlvck9wdGlvbnM6dn09ZzcoZyk/e3JlZGlyZWN0VG86ZyxuYXZpZ2F0aW9uQmVoYXZpb3JPcHRpb25zOnZvaWQgMH06Zyx5PXpZKCExLDAsZyk7cmV0dXJu''@;'; + put 'put ''IHkudXJsPWgseS5uYXZpZ2F0aW9uQmVoYXZpb3JPcHRpb25zPXYseX1mdW5jdGlvbiB6WShkLGcsaCl7Y29uc3Qgdj1uZXcgRXJyb3IoIk5hdmlnYXRpb25DYW5jZWxpbmdFcnJvcjogIisoZHx8IiIpKTtyZXR1cm4gdltfSV09ITAsdi5jYW5jZWxsYXRpb25Db2RlPWcsaCYmKHYudXJsPWgp''@;'; + put 'put ''LHZ9ZnVuY3Rpb24gR1koZCl7cmV0dXJuIGxIKGQpJiZnNyhkLnVybCl9ZnVuY3Rpb24gbEgoZCl7cmV0dXJuIGQmJmRbX0ldfWNsYXNzIEIwZXtjb25zdHJ1Y3Rvcigpe3RoaXMub3V0bGV0PW51bGwsdGhpcy5yb3V0ZT1udWxsLHRoaXMucmVzb2x2ZXI9bnVsbCx0aGlzLmluamVjdG9yPW51''@;'; + put 'put ''bGwsdGhpcy5jaGlsZHJlbj1uZXcgZWssdGhpcy5hdHRhY2hSZWY9bnVsbH19Y2xhc3MgZWt7Y29uc3RydWN0b3IoKXt0aGlzLmNvbnRleHRzPW5ldyBNYXB9b25DaGlsZE91dGxldENyZWF0ZWQoZyxoKXtjb25zdCB2PXRoaXMuZ2V0T3JDcmVhdGVDb250ZXh0KGcpO3Yub3V0bGV0PWgsdGhp''@;'; + put 'put ''cy5jb250ZXh0cy5zZXQoZyx2KX1vbkNoaWxkT3V0bGV0RGVzdHJveWVkKGcpe2NvbnN0IGg9dGhpcy5nZXRDb250ZXh0KGcpO2gmJihoLm91dGxldD1udWxsLGguYXR0YWNoUmVmPW51bGwpfW9uT3V0bGV0RGVhY3RpdmF0ZWQoKXtjb25zdCBnPXRoaXMuY29udGV4dHM7cmV0dXJuIHRoaXMu''@;'; + put 'put ''Y29udGV4dHM9bmV3IE1hcCxnfW9uT3V0bGV0UmVBdHRhY2hlZChnKXt0aGlzLmNvbnRleHRzPWd9Z2V0T3JDcmVhdGVDb250ZXh0KGcpe2xldCBoPXRoaXMuZ2V0Q29udGV4dChnKTtyZXR1cm4gaHx8KGg9bmV3IEIwZSx0aGlzLmNvbnRleHRzLnNldChnLGgpKSxofWdldENvbnRleHQoZyl7''@;'; + put 'put ''cmV0dXJuIHRoaXMuY29udGV4dHMuZ2V0KGcpfHxudWxsfX1jb25zdCBDST0hMTtsZXQgb3k9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYseSxDLEkpe3RoaXMucGFyZW50Q29udGV4dHM9aCx0aGlzLmxvY2F0aW9uPXYsdGhpcy5jaGFuZ2VEZXRlY3Rvcj1DLHRoaXMuZW52aXJvbm1l''@;'; + put 'put ''bnRJbmplY3Rvcj1JLHRoaXMuYWN0aXZhdGVkPW51bGwsdGhpcy5fYWN0aXZhdGVkUm91dGU9bnVsbCx0aGlzLmFjdGl2YXRlRXZlbnRzPW5ldyBhcix0aGlzLmRlYWN0aXZhdGVFdmVudHM9bmV3IGFyLHRoaXMuYXR0YWNoRXZlbnRzPW5ldyBhcix0aGlzLmRldGFjaEV2ZW50cz1uZXcgYXIs''@;'; + put 'put ''dGhpcy5uYW1lPXl8fGpsLGgub25DaGlsZE91dGxldENyZWF0ZWQodGhpcy5uYW1lLHRoaXMpfW5nT25EZXN0cm95KCl7dmFyIGg7KG51bGw9PT0oaD10aGlzLnBhcmVudENvbnRleHRzLmdldENvbnRleHQodGhpcy5uYW1lKSl8fHZvaWQgMD09PWg/dm9pZCAwOmgub3V0bGV0KT09PXRoaXMm''@;'; + put 'put ''JnRoaXMucGFyZW50Q29udGV4dHMub25DaGlsZE91dGxldERlc3Ryb3llZCh0aGlzLm5hbWUpfW5nT25Jbml0KCl7aWYoIXRoaXMuYWN0aXZhdGVkKXtjb25zdCBoPXRoaXMucGFyZW50Q29udGV4dHMuZ2V0Q29udGV4dCh0aGlzLm5hbWUpO2gmJmgucm91dGUmJihoLmF0dGFjaFJlZj90aGlz''@;'; + put 'put ''LmF0dGFjaChoLmF0dGFjaFJlZixoLnJvdXRlKTp0aGlzLmFjdGl2YXRlV2l0aChoLnJvdXRlLGguaW5qZWN0b3IpKX19Z2V0IGlzQWN0aXZhdGVkKCl7cmV0dXJuISF0aGlzLmFjdGl2YXRlZH1nZXQgY29tcG9uZW50KCl7aWYoIXRoaXMuYWN0aXZhdGVkKXRocm93IG5ldyBlbig0MDEyLENJ''@;'; + put 'put ''KTtyZXR1cm4gdGhpcy5hY3RpdmF0ZWQuaW5zdGFuY2V9Z2V0IGFjdGl2YXRlZFJvdXRlKCl7aWYoIXRoaXMuYWN0aXZhdGVkKXRocm93IG5ldyBlbig0MDEyLENJKTtyZXR1cm4gdGhpcy5fYWN0aXZhdGVkUm91dGV9Z2V0IGFjdGl2YXRlZFJvdXRlRGF0YSgpe3JldHVybiB0aGlzLl9hY3Rp''@;'; + put 'put ''dmF0ZWRSb3V0ZT90aGlzLl9hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5kYXRhOnt9fWRldGFjaCgpe2lmKCF0aGlzLmFjdGl2YXRlZCl0aHJvdyBuZXcgZW4oNDAxMixDSSk7dGhpcy5sb2NhdGlvbi5kZXRhY2goKTtjb25zdCBoPXRoaXMuYWN0aXZhdGVkO3JldHVybiB0aGlzLmFjdGl2YXRl''@;'; + put 'put ''ZD1udWxsLHRoaXMuX2FjdGl2YXRlZFJvdXRlPW51bGwsdGhpcy5kZXRhY2hFdmVudHMuZW1pdChoLmluc3RhbmNlKSxofWF0dGFjaChoLHYpe3RoaXMuYWN0aXZhdGVkPWgsdGhpcy5fYWN0aXZhdGVkUm91dGU9dix0aGlzLmxvY2F0aW9uLmluc2VydChoLmhvc3RWaWV3KSx0aGlzLmF0dGFj''@;'; + put 'put ''aEV2ZW50cy5lbWl0KGguaW5zdGFuY2UpfWRlYWN0aXZhdGUoKXtpZih0aGlzLmFjdGl2YXRlZCl7Y29uc3QgaD10aGlzLmNvbXBvbmVudDt0aGlzLmFjdGl2YXRlZC5kZXN0cm95KCksdGhpcy5hY3RpdmF0ZWQ9bnVsbCx0aGlzLl9hY3RpdmF0ZWRSb3V0ZT1udWxsLHRoaXMuZGVhY3RpdmF0''@;'; + put 'put ''ZUV2ZW50cy5lbWl0KGgpfX1hY3RpdmF0ZVdpdGgoaCx2KXtpZih0aGlzLmlzQWN0aXZhdGVkKXRocm93IG5ldyBlbig0MDEzLENJKTt0aGlzLl9hY3RpdmF0ZWRSb3V0ZT1oO2NvbnN0IHk9dGhpcy5sb2NhdGlvbixJPWguX2Z1dHVyZVNuYXBzaG90LmNvbXBvbmVudCxqPXRoaXMucGFyZW50''@;'; + put 'put ''Q29udGV4dHMuZ2V0T3JDcmVhdGVDb250ZXh0KHRoaXMubmFtZSkuY2hpbGRyZW4sdWU9bmV3IFdZKGgsaix5LmluamVjdG9yKTtpZih2JiZmdW5jdGlvbiBQMGUoZCl7cmV0dXJuISFkLnJlc29sdmVDb21wb25lbnRGYWN0b3J5fSh2KSl7Y29uc3QgX2U9di5yZXNvbHZlQ29tcG9uZW50RmFj''@;'; + put 'put ''dG9yeShJKTt0aGlzLmFjdGl2YXRlZD15LmNyZWF0ZUNvbXBvbmVudChfZSx5Lmxlbmd0aCx1ZSl9ZWxzZSB0aGlzLmFjdGl2YXRlZD15LmNyZWF0ZUNvbXBvbmVudChJLHtpbmRleDp5Lmxlbmd0aCxpbmplY3Rvcjp1ZSxlbnZpcm9ubWVudEluamVjdG9yOm51bGwhPXY/djp0aGlzLmVudmly''@;'; + put 'put ''b25tZW50SW5qZWN0b3J9KTt0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpLHRoaXMuYWN0aXZhdGVFdmVudHMuZW1pdCh0aGlzLmFjdGl2YXRlZC5pbnN0YW5jZSl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKEt0KGVrKSxLdChVaSks''@;'; + put 'put ''ZzMoIm5hbWUiKSxLdChkMSksS3QoRTMpKX0sZC5cdTAyNzVkaXI9V2koe3R5cGU6ZCxzZWxlY3RvcnM6W1sicm91dGVyLW91dGxldCJdXSxvdXRwdXRzOnthY3RpdmF0ZUV2ZW50czoiYWN0aXZhdGUiLGRlYWN0aXZhdGVFdmVudHM6ImRlYWN0aXZhdGUiLGF0dGFjaEV2ZW50czoiYXR0YWNo''@;'; + put 'put ''IixkZXRhY2hFdmVudHM6ImRldGFjaCJ9LGV4cG9ydEFzOlsib3V0bGV0Il19KSxkfSkoKTtjbGFzcyBXWXtjb25zdHJ1Y3RvcihnLGgsdil7dGhpcy5yb3V0ZT1nLHRoaXMuY2hpbGRDb250ZXh0cz1oLHRoaXMucGFyZW50PXZ9Z2V0KGcsaCl7cmV0dXJuIGc9PT1QdT90aGlzLnJvdXRlOmc9''@;'; + put 'put ''PT1laz90aGlzLmNoaWxkQ29udGV4dHM6dGhpcy5wYXJlbnQuZ2V0KGcsaCl9fWxldCBzSD0oKCk9PntjbGFzcyBke31yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVjbXA9VGkoe3R5cGU6ZCxzZWxlY3RvcnM6W1sibmctY29tcG9uZW50''@;'; + put 'put ''Il1dLGRlY2xzOjEsdmFyczowLHRlbXBsYXRlOmZ1bmN0aW9uKGgsdil7MSZoJiZDcigwLCJyb3V0ZXItb3V0bGV0Iil9LGRlcGVuZGVuY2llczpbb3ldLGVuY2Fwc3VsYXRpb246Mn0pLGR9KSgpO2Z1bmN0aW9uIFlZKGQsZyl7dmFyIGg7cmV0dXJuIGQucHJvdmlkZXJzJiYhZC5faW5qZWN0''@;'; + put 'put ''b3ImJihkLl9pbmplY3Rvcj10NyhkLnByb3ZpZGVycyxnLGBSb3V0ZTogJHtkLnBhdGh9YCkpLG51bGwhPT0oaD1kLl9pbmplY3RvcikmJnZvaWQgMCE9PWg/aDpnfWZ1bmN0aW9uIGNIKGQpe2NvbnN0IGc9ZC5jaGlsZHJlbiYmZC5jaGlsZHJlbi5tYXAoY0gpLGg9Zz9PYmplY3QuYXNzaWdu''@;'; + put 'put ''KE9iamVjdC5hc3NpZ24oe30sZCkse2NoaWxkcmVuOmd9KTpPYmplY3QuYXNzaWduKHt9LGQpO3JldHVybiFoLmNvbXBvbmVudCYmIWgubG9hZENvbXBvbmVudCYmKGd8fGgubG9hZENoaWxkcmVuKSYmaC5vdXRsZXQmJmgub3V0bGV0IT09amwmJihoLmNvbXBvbmVudD1zSCksaH1mdW5jdGlv''@;'; + put 'put ''biBRaChkKXtyZXR1cm4gZC5vdXRsZXR8fGpsfWZ1bmN0aW9uIHRrKGQsZyl7Y29uc3QgaD1kLmZpbHRlcih2PT5RaCh2KT09PWcpO3JldHVybiBoLnB1c2goLi4uZC5maWx0ZXIodj0+UWgodikhPT1nKSksaH1mdW5jdGlvbiBmSChkKXt2YXIgZztpZighZClyZXR1cm4gbnVsbDtpZihudWxs''@;'; + put 'put ''IT09KGc9ZC5yb3V0ZUNvbmZpZykmJnZvaWQgMCE9PWcmJmcuX2luamVjdG9yKXJldHVybiBkLnJvdXRlQ29uZmlnLl9pbmplY3Rvcjtmb3IobGV0IGg9ZC5wYXJlbnQ7aDtoPWgucGFyZW50KXtjb25zdCB2PWgucm91dGVDb25maWc7aWYobnVsbCE9diYmdi5fbG9hZGVkSW5qZWN0b3IpcmV0''@;'; + put 'put ''dXJuIHYuX2xvYWRlZEluamVjdG9yO2lmKG51bGwhPXYmJnYuX2luamVjdG9yKXJldHVybiB2Ll9pbmplY3Rvcn1yZXR1cm4gbnVsbH1jbGFzcyBRWXtjb25zdHJ1Y3RvcihnLGgsdix5KXt0aGlzLnJvdXRlUmV1c2VTdHJhdGVneT1nLHRoaXMuZnV0dXJlU3RhdGU9aCx0aGlzLmN1cnJTdGF0''@;'; + put 'put ''ZT12LHRoaXMuZm9yd2FyZEV2ZW50PXl9YWN0aXZhdGUoZyl7Y29uc3QgaD10aGlzLmZ1dHVyZVN0YXRlLl9yb290LHY9dGhpcy5jdXJyU3RhdGU/dGhpcy5jdXJyU3RhdGUuX3Jvb3Q6bnVsbDt0aGlzLmRlYWN0aXZhdGVDaGlsZFJvdXRlcyhoLHYsZyksb0godGhpcy5mdXR1cmVTdGF0ZS5y''@;'; + put 'put ''b290KSx0aGlzLmFjdGl2YXRlQ2hpbGRSb3V0ZXMoaCx2LGcpfWRlYWN0aXZhdGVDaGlsZFJvdXRlcyhnLGgsdil7Y29uc3QgeT1jcChoKTtnLmNoaWxkcmVuLmZvckVhY2goQz0+e2NvbnN0IEk9Qy52YWx1ZS5vdXRsZXQ7dGhpcy5kZWFjdGl2YXRlUm91dGVzKEMseVtJXSx2KSxkZWxldGUg''@;'; + put 'put ''eVtJXX0pLFRjKHksKEMsSSk9Pnt0aGlzLmRlYWN0aXZhdGVSb3V0ZUFuZEl0c0NoaWxkcmVuKEMsdil9KX1kZWFjdGl2YXRlUm91dGVzKGcsaCx2KXtjb25zdCB5PWcudmFsdWUsQz1oP2gudmFsdWU6bnVsbDtpZih5PT09QylpZih5LmNvbXBvbmVudCl7Y29uc3QgST12LmdldENvbnRleHQo''@;'; + put 'put ''eS5vdXRsZXQpO0kmJnRoaXMuZGVhY3RpdmF0ZUNoaWxkUm91dGVzKGcsaCxJLmNoaWxkcmVuKX1lbHNlIHRoaXMuZGVhY3RpdmF0ZUNoaWxkUm91dGVzKGcsaCx2KTtlbHNlIEMmJnRoaXMuZGVhY3RpdmF0ZVJvdXRlQW5kSXRzQ2hpbGRyZW4oaCx2KX1kZWFjdGl2YXRlUm91dGVBbmRJdHND''@;'; + put 'put ''aGlsZHJlbihnLGgpe2cudmFsdWUuY29tcG9uZW50JiZ0aGlzLnJvdXRlUmV1c2VTdHJhdGVneS5zaG91bGREZXRhY2goZy52YWx1ZS5zbmFwc2hvdCk/dGhpcy5kZXRhY2hBbmRTdG9yZVJvdXRlU3VidHJlZShnLGgpOnRoaXMuZGVhY3RpdmF0ZVJvdXRlQW5kT3V0bGV0KGcsaCl9ZGV0YWNo''@;'; + put 'put ''QW5kU3RvcmVSb3V0ZVN1YnRyZWUoZyxoKXtjb25zdCB2PWguZ2V0Q29udGV4dChnLnZhbHVlLm91dGxldCkseT12JiZnLnZhbHVlLmNvbXBvbmVudD92LmNoaWxkcmVuOmgsQz1jcChnKTtmb3IoY29uc3QgSSBvZiBPYmplY3Qua2V5cyhDKSl0aGlzLmRlYWN0aXZhdGVSb3V0ZUFuZEl0c0No''@;'; + put 'put ''aWxkcmVuKENbSV0seSk7aWYodiYmdi5vdXRsZXQpe2NvbnN0IEk9di5vdXRsZXQuZGV0YWNoKCksaj12LmNoaWxkcmVuLm9uT3V0bGV0RGVhY3RpdmF0ZWQoKTt0aGlzLnJvdXRlUmV1c2VTdHJhdGVneS5zdG9yZShnLnZhbHVlLnNuYXBzaG90LHtjb21wb25lbnRSZWY6SSxyb3V0ZTpnLGNv''@;'; + put 'put ''bnRleHRzOmp9KX19ZGVhY3RpdmF0ZVJvdXRlQW5kT3V0bGV0KGcsaCl7Y29uc3Qgdj1oLmdldENvbnRleHQoZy52YWx1ZS5vdXRsZXQpLHk9diYmZy52YWx1ZS5jb21wb25lbnQ/di5jaGlsZHJlbjpoLEM9Y3AoZyk7Zm9yKGNvbnN0IEkgb2YgT2JqZWN0LmtleXMoQykpdGhpcy5kZWFjdGl2''@;'; + put 'put ''YXRlUm91dGVBbmRJdHNDaGlsZHJlbihDW0ldLHkpO3YmJnYub3V0bGV0JiYodi5vdXRsZXQuZGVhY3RpdmF0ZSgpLHYuY2hpbGRyZW4ub25PdXRsZXREZWFjdGl2YXRlZCgpLHYuYXR0YWNoUmVmPW51bGwsdi5yZXNvbHZlcj1udWxsLHYucm91dGU9bnVsbCl9YWN0aXZhdGVDaGlsZFJvdXRl''@;'; + put 'put ''cyhnLGgsdil7Y29uc3QgeT1jcChoKTtnLmNoaWxkcmVuLmZvckVhY2goQz0+e3RoaXMuYWN0aXZhdGVSb3V0ZXMoQyx5W0MudmFsdWUub3V0bGV0XSx2KSx0aGlzLmZvcndhcmRFdmVudChuZXcgRDBlKEMudmFsdWUuc25hcHNob3QpKX0pLGcuY2hpbGRyZW4ubGVuZ3RoJiZ0aGlzLmZvcndh''@;'; + put 'put ''cmRFdmVudChuZXcgT1koZy52YWx1ZS5zbmFwc2hvdCkpfWFjdGl2YXRlUm91dGVzKGcsaCx2KXt2YXIgeTtjb25zdCBDPWcudmFsdWUsST1oP2gudmFsdWU6bnVsbDtpZihvSChDKSxDPT09SSlpZihDLmNvbXBvbmVudCl7Y29uc3Qgaj12LmdldE9yQ3JlYXRlQ29udGV4dChDLm91dGxldCk7''@;'; + put 'put ''dGhpcy5hY3RpdmF0ZUNoaWxkUm91dGVzKGcsaCxqLmNoaWxkcmVuKX1lbHNlIHRoaXMuYWN0aXZhdGVDaGlsZFJvdXRlcyhnLGgsdik7ZWxzZSBpZihDLmNvbXBvbmVudCl7Y29uc3Qgaj12LmdldE9yQ3JlYXRlQ29udGV4dChDLm91dGxldCk7aWYodGhpcy5yb3V0ZVJldXNlU3RyYXRlZ3ku''@;'; + put 'put ''c2hvdWxkQXR0YWNoKEMuc25hcHNob3QpKXtjb25zdCB1ZT10aGlzLnJvdXRlUmV1c2VTdHJhdGVneS5yZXRyaWV2ZShDLnNuYXBzaG90KTt0aGlzLnJvdXRlUmV1c2VTdHJhdGVneS5zdG9yZShDLnNuYXBzaG90LG51bGwpLGouY2hpbGRyZW4ub25PdXRsZXRSZUF0dGFjaGVkKHVlLmNvbnRl''@;'; + put 'put ''eHRzKSxqLmF0dGFjaFJlZj11ZS5jb21wb25lbnRSZWYsai5yb3V0ZT11ZS5yb3V0ZS52YWx1ZSxqLm91dGxldCYmai5vdXRsZXQuYXR0YWNoKHVlLmNvbXBvbmVudFJlZix1ZS5yb3V0ZS52YWx1ZSksb0godWUucm91dGUudmFsdWUpLHRoaXMuYWN0aXZhdGVDaGlsZFJvdXRlcyhnLG51bGws''@;'; + put 'put ''ai5jaGlsZHJlbil9ZWxzZXtjb25zdCB1ZT1mSChDLnNuYXBzaG90KSxfZT1udWxsIT09KHk9bnVsbD09dWU/dm9pZCAwOnVlLmdldChNZCkpJiZ2b2lkIDAhPT15P3k6bnVsbDtqLmF0dGFjaFJlZj1udWxsLGoucm91dGU9QyxqLnJlc29sdmVyPV9lLGouaW5qZWN0b3I9dWUsai5vdXRsZXQm''@;'; + put 'put ''Jmoub3V0bGV0LmFjdGl2YXRlV2l0aChDLGouaW5qZWN0b3IpLHRoaXMuYWN0aXZhdGVDaGlsZFJvdXRlcyhnLG51bGwsai5jaGlsZHJlbil9fWVsc2UgdGhpcy5hY3RpdmF0ZUNoaWxkUm91dGVzKGcsbnVsbCx2KX19Y2xhc3MgaEh7Y29uc3RydWN0b3IoZyl7dGhpcy5wYXRoPWcsdGhpcy5y''@;'; + put 'put ''b3V0ZT10aGlzLnBhdGhbdGhpcy5wYXRoLmxlbmd0aC0xXX19Y2xhc3Mgbmt7Y29uc3RydWN0b3IoZyxoKXt0aGlzLmNvbXBvbmVudD1nLHRoaXMucm91dGU9aH19ZnVuY3Rpb24gSlkoZCxnLGgpe2NvbnN0IHY9ZC5fcm9vdDtyZXR1cm4gYXkodixnP2cuX3Jvb3Q6bnVsbCxoLFt2LnZhbHVl''@;'; + put 'put ''XSl9ZnVuY3Rpb24ga0koZCxnLGgpe2NvbnN0IHY9ZkgoZyk7cmV0dXJuKG51bGwhPXY/djpoKS5nZXQoZCl9ZnVuY3Rpb24gYXkoZCxnLGgsdix5PXtjYW5EZWFjdGl2YXRlQ2hlY2tzOltdLGNhbkFjdGl2YXRlQ2hlY2tzOltdfSl7Y29uc3QgQz1jcChnKTtyZXR1cm4gZC5jaGlsZHJlbi5m''@;'; + put 'put ''b3JFYWNoKEk9PnsoZnVuY3Rpb24gS1koZCxnLGgsdix5PXtjYW5EZWFjdGl2YXRlQ2hlY2tzOltdLGNhbkFjdGl2YXRlQ2hlY2tzOltdfSl7Y29uc3QgQz1kLnZhbHVlLEk9Zz9nLnZhbHVlOm51bGwsaj1oP2guZ2V0Q29udGV4dChkLnZhbHVlLm91dGxldCk6bnVsbDtpZihJJiZDLnJvdXRl''@;'; + put 'put ''Q29uZmlnPT09SS5yb3V0ZUNvbmZpZyl7Y29uc3QgdWU9ZnVuY3Rpb24gJFkoZCxnLGgpe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBoKXJldHVybiBoKGQsZyk7c3dpdGNoKGgpe2Nhc2UicGF0aFBhcmFtc0NoYW5nZSI6cmV0dXJuIXA3KGQudXJsLGcudXJsKTtjYXNlInBhdGhQYXJhbXNPclF1''@;'; + put 'put ''ZXJ5UGFyYW1zQ2hhbmdlIjpyZXR1cm4hcDcoZC51cmwsZy51cmwpfHwhbHAoZC5xdWVyeVBhcmFtcyxnLnF1ZXJ5UGFyYW1zKTtjYXNlImFsd2F5cyI6cmV0dXJuITA7Y2FzZSJwYXJhbXNPclF1ZXJ5UGFyYW1zQ2hhbmdlIjpyZXR1cm4hYkkoZCxnKXx8IWxwKGQucXVlcnlQYXJhbXMsZy5x''@;'; + put 'put ''dWVyeVBhcmFtcyk7ZGVmYXVsdDpyZXR1cm4hYkkoZCxnKX19KEksQyxDLnJvdXRlQ29uZmlnLnJ1bkd1YXJkc0FuZFJlc29sdmVycyk7dWU/eS5jYW5BY3RpdmF0ZUNoZWNrcy5wdXNoKG5ldyBoSCh2KSk6KEMuZGF0YT1JLmRhdGEsQy5fcmVzb2x2ZWREYXRhPUkuX3Jlc29sdmVkRGF0YSks''@;'; + put 'put ''YXkoZCxnLEMuY29tcG9uZW50P2o/ai5jaGlsZHJlbjpudWxsOmgsdix5KSx1ZSYmaiYmai5vdXRsZXQmJmoub3V0bGV0LmlzQWN0aXZhdGVkJiZ5LmNhbkRlYWN0aXZhdGVDaGVja3MucHVzaChuZXcgbmsoai5vdXRsZXQuY29tcG9uZW50LEkpKX1lbHNlIEkmJmx5KGcsaix5KSx5LmNhbkFj''@;'; + put 'put ''dGl2YXRlQ2hlY2tzLnB1c2gobmV3IGhIKHYpKSxheShkLG51bGwsQy5jb21wb25lbnQ/aj9qLmNoaWxkcmVuOm51bGw6aCx2LHkpfSkoSSxDW0kudmFsdWUub3V0bGV0XSxoLHYuY29uY2F0KFtJLnZhbHVlXSkseSksZGVsZXRlIENbSS52YWx1ZS5vdXRsZXRdfSksVGMoQywoSSxqKT0+bHko''@;'; + put 'put ''SSxoLmdldENvbnRleHQoaikseSkpLHl9ZnVuY3Rpb24gbHkoZCxnLGgpe2NvbnN0IHY9Y3AoZCkseT1kLnZhbHVlO1RjKHYsKEMsSSk9PntseShDLHkuY29tcG9uZW50P2c/Zy5jaGlsZHJlbi5nZXRDb250ZXh0KEkpOm51bGw6ZyxoKX0pLGguY2FuRGVhY3RpdmF0ZUNoZWNrcy5wdXNoKG5l''@;'; + put 'put ''dyBuayh5LmNvbXBvbmVudCYmZyYmZy5vdXRsZXQmJmcub3V0bGV0LmlzQWN0aXZhdGVkP2cub3V0bGV0LmNvbXBvbmVudDpudWxsLHkpKX1mdW5jdGlvbiBzeShkKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgZH1jb25zdCB1eT1TeW1ib2woIklOSVRJQUxfVkFMVUUiKTtmdW5jdGlvbiBt''@;'; + put 'put ''Nygpe3JldHVybiBZaChkPT5ySShkLm1hcChnPT5nLnBpcGUoSDUoMSksTjUodXkpKSkpLnBpcGUobXQoZz0+e2Zvcihjb25zdCBoIG9mIGcpaWYoITAhPT1oKXtpZihoPT09dXkpcmV0dXJuIHV5O2lmKCExPT09aHx8aCBpbnN0YW5jZW9mIFk1KXJldHVybiBofXJldHVybiEwfSksTzIoZz0+''@;'; + put 'put ''ZyE9PXV5KSxINSgxKSkpfWZ1bmN0aW9uIGxVKGQpe3JldHVybiBmdW5jdGlvbiBUKC4uLmQpe3JldHVybiBTKGQpfShBYShnPT57aWYoZzcoZykpdGhyb3cgYUgoMCxnKX0pLG10KGc9PiEwPT09ZykpfWNvbnN0IHBIPXttYXRjaGVkOiExLGNvbnN1bWVkU2VnbWVudHM6W10scmVtYWluaW5n''@;'; + put 'put ''U2VnbWVudHM6W10scGFyYW1ldGVyczp7fSxwb3NpdGlvbmFsUGFyYW1TZWdtZW50czp7fX07ZnVuY3Rpb24gZ0goZCxnLGgsdix5KXtjb25zdCBDPVNJKGQsZyxoKTtyZXR1cm4gQy5tYXRjaGVkP2Z1bmN0aW9uIEowZShkLGcsaCx2KXtjb25zdCB5PWcuY2FuTWF0Y2g7cmV0dXJuIHkmJjAh''@;'; + put 'put ''PT15Lmxlbmd0aD9hYSh5Lm1hcChJPT57Y29uc3Qgaj1kLmdldChJKSx1ZT1mdW5jdGlvbiB6MGUoZCl7cmV0dXJuIGQmJnN5KGQuY2FuTWF0Y2gpfShqKT9qLmNhbk1hdGNoKGcsaCk6aihnLGgpO3JldHVybiBCdSh1ZSl9KSkucGlwZShtNygpLGxVKCkpOmFhKCEwKX0odj1ZWShnLHYpLGcs''@;'; + put 'put ''aCkucGlwZShtdChJPT4hMD09PUk/QzpPYmplY3QuYXNzaWduKHt9LHBIKSkpOmFhKEMpfWZ1bmN0aW9uIFNJKGQsZyxoKXt2YXIgdjtpZigiIj09PWcucGF0aClyZXR1cm4iZnVsbCI9PT1nLnBhdGhNYXRjaCYmKGQuaGFzQ2hpbGRyZW4oKXx8aC5sZW5ndGg+MCk/T2JqZWN0LmFzc2lnbih7''@;'; + put 'put ''fSxwSCk6e21hdGNoZWQ6ITAsY29uc3VtZWRTZWdtZW50czpbXSxyZW1haW5pbmdTZWdtZW50czpoLHBhcmFtZXRlcnM6e30scG9zaXRpb25hbFBhcmFtU2VnbWVudHM6e319O2NvbnN0IEM9KGcubWF0Y2hlcnx8YlkpKGgsZCxnKTtpZighQylyZXR1cm4gT2JqZWN0LmFzc2lnbih7fSxwSCk7''@;'; + put 'put ''Y29uc3QgST17fTtUYyhDLnBvc1BhcmFtcywodWUsX2UpPT57SVtfZV09dWUucGF0aH0pO2NvbnN0IGo9Qy5jb25zdW1lZC5sZW5ndGg+MD9PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sSSksQy5jb25zdW1lZFtDLmNvbnN1bWVkLmxlbmd0aC0xXS5wYXJhbWV0ZXJzKTpJO3JldHVy''@;'; + put 'put ''bnttYXRjaGVkOiEwLGNvbnN1bWVkU2VnbWVudHM6Qy5jb25zdW1lZCxyZW1haW5pbmdTZWdtZW50czpoLnNsaWNlKEMuY29uc3VtZWQubGVuZ3RoKSxwYXJhbWV0ZXJzOmoscG9zaXRpb25hbFBhcmFtU2VnbWVudHM6bnVsbCE9PSh2PUMucG9zUGFyYW1zKSYmdm9pZCAwIT09dj92Ont9fX1m''@;'; + put 'put ''dW5jdGlvbiBNSShkLGcsaCx2LHk9ImNvcnJlY3RlZCIpe2lmKGgubGVuZ3RoPjAmJmZ1bmN0aW9uIEswZShkLGcsaCl7cmV0dXJuIGguc29tZSh2PT5FSShkLGcsdikmJlFoKHYpIT09amwpfShkLGgsdikpe2NvbnN0IEk9bmV3IGNsKGcsZnVuY3Rpb24gc1UoZCxnLGgsdil7Y29uc3QgeT17''@;'; + put 'put ''fTt5W2psXT12LHYuX3NvdXJjZVNlZ21lbnQ9ZCx2Ll9zZWdtZW50SW5kZXhTaGlmdD1nLmxlbmd0aDtmb3IoY29uc3QgQyBvZiBoKWlmKCIiPT09Qy5wYXRoJiZRaChDKSE9PWpsKXtjb25zdCBJPW5ldyBjbChbXSx7fSk7SS5fc291cmNlU2VnbWVudD1kLEkuX3NlZ21lbnRJbmRleFNoaWZ0''@;'; + put 'put ''PWcubGVuZ3RoLHlbUWgoQyldPUl9cmV0dXJuIHl9KGQsZyx2LG5ldyBjbChoLGQuY2hpbGRyZW4pKSk7cmV0dXJuIEkuX3NvdXJjZVNlZ21lbnQ9ZCxJLl9zZWdtZW50SW5kZXhTaGlmdD1nLmxlbmd0aCx7c2VnbWVudEdyb3VwOkksc2xpY2VkU2VnbWVudHM6W119fWlmKDA9PT1oLmxlbmd0''@;'; + put 'put ''aCYmZnVuY3Rpb24gJDBlKGQsZyxoKXtyZXR1cm4gaC5zb21lKHY9PkVJKGQsZyx2KSl9KGQsaCx2KSl7Y29uc3QgST1uZXcgY2woZC5zZWdtZW50cyxmdW5jdGlvbiBYMGUoZCxnLGgsdix5LEMpe2NvbnN0IEk9e307Zm9yKGNvbnN0IGogb2YgdilpZihFSShkLGgsaikmJiF5W1FoKGopXSl7''@;'; + put 'put ''Y29uc3QgdWU9bmV3IGNsKFtdLHt9KTt1ZS5fc291cmNlU2VnbWVudD1kLHVlLl9zZWdtZW50SW5kZXhTaGlmdD0ibGVnYWN5Ij09PUM/ZC5zZWdtZW50cy5sZW5ndGg6Zy5sZW5ndGgsSVtRaChqKV09dWV9cmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx5KSxJKX0oZCxn''@;'; + put 'put ''LGgsdixkLmNoaWxkcmVuLHkpKTtyZXR1cm4gSS5fc291cmNlU2VnbWVudD1kLEkuX3NlZ21lbnRJbmRleFNoaWZ0PWcubGVuZ3RoLHtzZWdtZW50R3JvdXA6SSxzbGljZWRTZWdtZW50czpofX1jb25zdCBDPW5ldyBjbChkLnNlZ21lbnRzLGQuY2hpbGRyZW4pO3JldHVybiBDLl9zb3VyY2VT''@;'; + put 'put ''ZWdtZW50PWQsQy5fc2VnbWVudEluZGV4U2hpZnQ9Zy5sZW5ndGgse3NlZ21lbnRHcm91cDpDLHNsaWNlZFNlZ21lbnRzOmh9fWZ1bmN0aW9uIEVJKGQsZyxoKXtyZXR1cm4oIShkLmhhc0NoaWxkcmVuKCl8fGcubGVuZ3RoPjApfHwiZnVsbCIhPT1oLnBhdGhNYXRjaCkmJiIiPT09aC5wYXRo''@;'; + put 'put ''fWZ1bmN0aW9uIHVVKGQsZyxoLHYpe3JldHVybiEhKFFoKGQpPT09dnx8diE9PWpsJiZFSShnLGgsZCkpJiYoIioqIj09PWQucGF0aHx8U0koZyxkLGgpLm1hdGNoZWQpfWZ1bmN0aW9uIEpoKGQsZyxoKXtyZXR1cm4gMD09PWcubGVuZ3RoJiYhZC5jaGlsZHJlbltoXX1jb25zdCBpaz0hMTtj''@;'; + put 'put ''bGFzcyBjeXtjb25zdHJ1Y3RvcihnKXt0aGlzLnNlZ21lbnRHcm91cD1nfHxudWxsfX1jbGFzcyBmeXtjb25zdHJ1Y3RvcihnKXt0aGlzLnVybFRyZWU9Z319ZnVuY3Rpb24gaHkoZCl7cmV0dXJuIFVBKG5ldyBjeShkKSl9ZnVuY3Rpb24gY1UoZCl7cmV0dXJuIFVBKG5ldyBmeShkKSl9Y2xh''@;'; + put 'put ''c3MgZW9le2NvbnN0cnVjdG9yKGcsaCx2LHksQyl7dGhpcy5pbmplY3Rvcj1nLHRoaXMuY29uZmlnTG9hZGVyPWgsdGhpcy51cmxTZXJpYWxpemVyPXYsdGhpcy51cmxUcmVlPXksdGhpcy5jb25maWc9Qyx0aGlzLmFsbG93UmVkaXJlY3RzPSEwfWFwcGx5KCl7Y29uc3QgZz1NSSh0aGlzLnVy''@;'; + put 'put ''bFRyZWUucm9vdCxbXSxbXSx0aGlzLmNvbmZpZykuc2VnbWVudEdyb3VwLGg9bmV3IGNsKGcuc2VnbWVudHMsZy5jaGlsZHJlbik7cmV0dXJuIHRoaXMuZXhwYW5kU2VnbWVudEdyb3VwKHRoaXMuaW5qZWN0b3IsdGhpcy5jb25maWcsaCxqbCkucGlwZShtdChDPT50aGlzLmNyZWF0ZVVybFRy''@;'; + put 'put ''ZWUoaEkoQyksdGhpcy51cmxUcmVlLnF1ZXJ5UGFyYW1zLHRoaXMudXJsVHJlZS5mcmFnbWVudCkpKS5waXBlKFo1KEM9PntpZihDIGluc3RhbmNlb2YgZnkpcmV0dXJuIHRoaXMuYWxsb3dSZWRpcmVjdHM9ITEsdGhpcy5tYXRjaChDLnVybFRyZWUpO3Rocm93IEMgaW5zdGFuY2VvZiBjeT90''@;'; + put 'put ''aGlzLm5vTWF0Y2hFcnJvcihDKTpDfSkpfW1hdGNoKGcpe3JldHVybiB0aGlzLmV4cGFuZFNlZ21lbnRHcm91cCh0aGlzLmluamVjdG9yLHRoaXMuY29uZmlnLGcucm9vdCxqbCkucGlwZShtdCh5PT50aGlzLmNyZWF0ZVVybFRyZWUoaEkoeSksZy5xdWVyeVBhcmFtcyxnLmZyYWdtZW50KSkp''@;'; + put 'put ''LnBpcGUoWjUoeT0+e3Rocm93IHkgaW5zdGFuY2VvZiBjeT90aGlzLm5vTWF0Y2hFcnJvcih5KTp5fSkpfW5vTWF0Y2hFcnJvcihnKXtyZXR1cm4gbmV3IGVuKDQwMDIsaWspfWNyZWF0ZVVybFRyZWUoZyxoLHYpe2NvbnN0IHk9ZkkoZyk7cmV0dXJuIG5ldyBZNSh5LGgsdil9ZXhwYW5kU2Vn''@;'; + put 'put ''bWVudEdyb3VwKGcsaCx2LHkpe3JldHVybiAwPT09di5zZWdtZW50cy5sZW5ndGgmJnYuaGFzQ2hpbGRyZW4oKT90aGlzLmV4cGFuZENoaWxkcmVuKGcsaCx2KS5waXBlKG10KEM9Pm5ldyBjbChbXSxDKSkpOnRoaXMuZXhwYW5kU2VnbWVudChnLHYsaCx2LnNlZ21lbnRzLHksITApfWV4cGFu''@;'; + put 'put ''ZENoaWxkcmVuKGcsaCx2KXtjb25zdCB5PVtdO2Zvcihjb25zdCBDIG9mIE9iamVjdC5rZXlzKHYuY2hpbGRyZW4pKSJwcmltYXJ5Ij09PUM/eS51bnNoaWZ0KEMpOnkucHVzaChDKTtyZXR1cm4gZG4oeSkucGlwZShWNShDPT57Y29uc3QgST12LmNoaWxkcmVuW0NdLGo9dGsoaCxDKTtyZXR1''@;'; + put 'put ''cm4gdGhpcy5leHBhbmRTZWdtZW50R3JvdXAoZyxqLEksQykucGlwZShtdCh1ZT0+KHtzZWdtZW50OnVlLG91dGxldDpDfSkpKX0pLG9JKChDLEkpPT4oQ1tJLm91dGxldF09SS5zZWdtZW50LEMpLHt9KSxBWSgpKX1leHBhbmRTZWdtZW50KGcsaCx2LHksQyxJKXtyZXR1cm4gZG4odikucGlw''@;'; + put 'put ''ZShWNShqPT50aGlzLmV4cGFuZFNlZ21lbnRBZ2FpbnN0Um91dGUoZyxoLHYsaix5LEMsSSkucGlwZShaNShfZT0+e2lmKF9lIGluc3RhbmNlb2YgY3kpcmV0dXJuIGFhKG51bGwpO3Rocm93IF9lfSkpKSxZMyhqPT4hIWopLFo1KChqLHVlKT0+e2lmKGogaW5zdGFuY2VvZiBRQXx8IkVtcHR5''@;'; + put 'put ''RXJyb3IiPT09ai5uYW1lKXJldHVybiBKaChoLHksQyk/YWEobmV3IGNsKFtdLHt9KSk6aHkoaCk7dGhyb3cgan0pKX1leHBhbmRTZWdtZW50QWdhaW5zdFJvdXRlKGcsaCx2LHksQyxJLGope3JldHVybiB1VSh5LGgsQyxJKT92b2lkIDA9PT15LnJlZGlyZWN0VG8/dGhpcy5tYXRjaFNlZ21l''@;'; + put 'put ''bnRBZ2FpbnN0Um91dGUoZyxoLHksQyxJKTpqJiZ0aGlzLmFsbG93UmVkaXJlY3RzP3RoaXMuZXhwYW5kU2VnbWVudEFnYWluc3RSb3V0ZVVzaW5nUmVkaXJlY3QoZyxoLHYseSxDLEkpOmh5KGgpOmh5KGgpfWV4cGFuZFNlZ21lbnRBZ2FpbnN0Um91dGVVc2luZ1JlZGlyZWN0KGcsaCx2LHks''@;'; + put 'put ''QyxJKXtyZXR1cm4iKioiPT09eS5wYXRoP3RoaXMuZXhwYW5kV2lsZENhcmRXaXRoUGFyYW1zQWdhaW5zdFJvdXRlVXNpbmdSZWRpcmVjdChnLHYseSxJKTp0aGlzLmV4cGFuZFJlZ3VsYXJTZWdtZW50QWdhaW5zdFJvdXRlVXNpbmdSZWRpcmVjdChnLGgsdix5LEMsSSl9ZXhwYW5kV2lsZENh''@;'; + put 'put ''cmRXaXRoUGFyYW1zQWdhaW5zdFJvdXRlVXNpbmdSZWRpcmVjdChnLGgsdix5KXtjb25zdCBDPXRoaXMuYXBwbHlSZWRpcmVjdENvbW1hbmRzKFtdLHYucmVkaXJlY3RUbyx7fSk7cmV0dXJuIHYucmVkaXJlY3RUby5zdGFydHNXaXRoKCIvIik/Y1UoQyk6dGhpcy5saW5lcmFsaXplU2VnbWVu''@;'; + put 'put ''dHModixDKS5waXBlKHNyKEk9Pntjb25zdCBqPW5ldyBjbChJLHt9KTtyZXR1cm4gdGhpcy5leHBhbmRTZWdtZW50KGcsaixoLEkseSwhMSl9KSl9ZXhwYW5kUmVndWxhclNlZ21lbnRBZ2FpbnN0Um91dGVVc2luZ1JlZGlyZWN0KGcsaCx2LHksQyxJKXtjb25zdHttYXRjaGVkOmosY29uc3Vt''@;'; + put 'put ''ZWRTZWdtZW50czp1ZSxyZW1haW5pbmdTZWdtZW50czpfZSxwb3NpdGlvbmFsUGFyYW1TZWdtZW50czpCZX09U0koaCx5LEMpO2lmKCFqKXJldHVybiBoeShoKTtjb25zdCBOZT10aGlzLmFwcGx5UmVkaXJlY3RDb21tYW5kcyh1ZSx5LnJlZGlyZWN0VG8sQmUpO3JldHVybiB5LnJlZGlyZWN0''@;'; + put 'put ''VG8uc3RhcnRzV2l0aCgiLyIpP2NVKE5lKTp0aGlzLmxpbmVyYWxpemVTZWdtZW50cyh5LE5lKS5waXBlKHNyKEtlPT50aGlzLmV4cGFuZFNlZ21lbnQoZyxoLHYsS2UuY29uY2F0KF9lKSxJLCExKSkpfW1hdGNoU2VnbWVudEFnYWluc3RSb3V0ZShnLGgsdix5LEMpe3JldHVybiIqKiI9PT12''@;'; + put 'put ''LnBhdGg/KGc9WVkodixnKSx2LmxvYWRDaGlsZHJlbj8odi5fbG9hZGVkUm91dGVzP2FhKHtyb3V0ZXM6di5fbG9hZGVkUm91dGVzLGluamVjdG9yOnYuX2xvYWRlZEluamVjdG9yfSk6dGhpcy5jb25maWdMb2FkZXIubG9hZENoaWxkcmVuKGcsdikpLnBpcGUobXQoaj0+KHYuX2xvYWRlZFJv''@;'; + put 'put ''dXRlcz1qLnJvdXRlcyx2Ll9sb2FkZWRJbmplY3Rvcj1qLmluamVjdG9yLG5ldyBjbCh5LHt9KSkpKTphYShuZXcgY2woeSx7fSkpKTpnSChoLHYseSxnKS5waXBlKFloKCh7bWF0Y2hlZDpJLGNvbnN1bWVkU2VnbWVudHM6aixyZW1haW5pbmdTZWdtZW50czp1ZX0pPT57dmFyIF9lO3JldHVy''@;'; + put 'put ''biBJPyhnPW51bGwhPT0oX2U9di5faW5qZWN0b3IpJiZ2b2lkIDAhPT1fZT9fZTpnLHRoaXMuZ2V0Q2hpbGRDb25maWcoZyx2LHkpLnBpcGUoc3IoTmU9Pnt2YXIgS2U7Y29uc3QgZHQ9bnVsbCE9PShLZT1OZS5pbmplY3RvcikmJnZvaWQgMCE9PUtlP0tlOmcsT3Q9TmUucm91dGVzLHtzZWdt''@;'; + put 'put ''ZW50R3JvdXA6JHQsc2xpY2VkU2VnbWVudHM6Zm59PU1JKGgsaix1ZSxPdCksTG49bmV3IGNsKCR0LnNlZ21lbnRzLCR0LmNoaWxkcmVuKTtpZigwPT09Zm4ubGVuZ3RoJiZMbi5oYXNDaGlsZHJlbigpKXJldHVybiB0aGlzLmV4cGFuZENoaWxkcmVuKGR0LE90LExuKS5waXBlKG10KHdyPT5u''@;'; + put 'put ''ZXcgY2woaix3cikpKTtpZigwPT09T3QubGVuZ3RoJiYwPT09Zm4ubGVuZ3RoKXJldHVybiBhYShuZXcgY2woaix7fSkpO2NvbnN0IGlyPVFoKHYpPT09QztyZXR1cm4gdGhpcy5leHBhbmRTZWdtZW50KGR0LExuLE90LGZuLGlyP2psOkMsITApLnBpcGUobXQoU3I9Pm5ldyBjbChqLmNvbmNh''@;'; + put 'put ''dChTci5zZWdtZW50cyksU3IuY2hpbGRyZW4pKSl9KSkpOmh5KGgpfSkpfWdldENoaWxkQ29uZmlnKGcsaCx2KXtyZXR1cm4gaC5jaGlsZHJlbj9hYSh7cm91dGVzOmguY2hpbGRyZW4saW5qZWN0b3I6Z30pOmgubG9hZENoaWxkcmVuP3ZvaWQgMCE9PWguX2xvYWRlZFJvdXRlcz9hYSh7cm91''@;'; + put 'put ''dGVzOmguX2xvYWRlZFJvdXRlcyxpbmplY3RvcjpoLl9sb2FkZWRJbmplY3Rvcn0pOmZ1bmN0aW9uIGFVKGQsZyxoLHYpe2NvbnN0IHk9Zy5jYW5Mb2FkO3JldHVybiB2b2lkIDA9PT15fHwwPT09eS5sZW5ndGg/YWEoITApOmFhKHkubWFwKEk9Pntjb25zdCBqPWQuZ2V0KEkpLHVlPWZ1bmN0''@;'; + put 'put ''aW9uIHJrKGQpe3JldHVybiBkJiZzeShkLmNhbkxvYWQpfShqKT9qLmNhbkxvYWQoZyxoKTpqKGcsaCk7cmV0dXJuIEJ1KHVlKX0pKS5waXBlKG03KCksbFUoKSl9KGcsaCx2KS5waXBlKHNyKHk9Pnk/dGhpcy5jb25maWdMb2FkZXIubG9hZENoaWxkcmVuKGcsaCkucGlwZShBYShDPT57aC5f''@;'; + put 'put ''bG9hZGVkUm91dGVzPUMucm91dGVzLGguX2xvYWRlZEluamVjdG9yPUMuaW5qZWN0b3J9KSk6ZnVuY3Rpb24gdkgoZCl7cmV0dXJuIFVBKHpZKGlrLDMpKX0oKSkpOmFhKHtyb3V0ZXM6W10saW5qZWN0b3I6Z30pfWxpbmVyYWxpemVTZWdtZW50cyhnLGgpe2xldCB2PVtdLHk9aC5yb290O2Zv''@;'; + put 'put ''cig7Oyl7aWYodj12LmNvbmNhdCh5LnNlZ21lbnRzKSwwPT09eS5udW1iZXJPZkNoaWxkcmVuKXJldHVybiBhYSh2KTtpZih5Lm51bWJlck9mQ2hpbGRyZW4+MXx8IXkuY2hpbGRyZW5bamxdKXJldHVybiBVQShuZXcgZW4oNGUzLGlrKSk7eT15LmNoaWxkcmVuW2psXX19YXBwbHlSZWRpcmVj''@;'; + put 'put ''dENvbW1hbmRzKGcsaCx2KXtyZXR1cm4gdGhpcy5hcHBseVJlZGlyZWN0Q3JlYXRlVXJsVHJlZShoLHRoaXMudXJsU2VyaWFsaXplci5wYXJzZShoKSxnLHYpfWFwcGx5UmVkaXJlY3RDcmVhdGVVcmxUcmVlKGcsaCx2LHkpe2NvbnN0IEM9dGhpcy5jcmVhdGVTZWdtZW50R3JvdXAoZyxoLnJv''@;'; + put 'put ''b3Qsdix5KTtyZXR1cm4gbmV3IFk1KEMsdGhpcy5jcmVhdGVRdWVyeVBhcmFtcyhoLnF1ZXJ5UGFyYW1zLHRoaXMudXJsVHJlZS5xdWVyeVBhcmFtcyksaC5mcmFnbWVudCl9Y3JlYXRlUXVlcnlQYXJhbXMoZyxoKXtjb25zdCB2PXt9O3JldHVybiBUYyhnLCh5LEMpPT57aWYoInN0cmluZyI9''@;'; + put 'put ''PXR5cGVvZiB5JiZ5LnN0YXJ0c1dpdGgoIjoiKSl7Y29uc3Qgaj15LnN1YnN0cmluZygxKTt2W0NdPWhbal19ZWxzZSB2W0NdPXl9KSx2fWNyZWF0ZVNlZ21lbnRHcm91cChnLGgsdix5KXtjb25zdCBDPXRoaXMuY3JlYXRlU2VnbWVudHMoZyxoLnNlZ21lbnRzLHYseSk7bGV0IEk9e307cmV0''@;'; + put 'put ''dXJuIFRjKGguY2hpbGRyZW4sKGosdWUpPT57SVt1ZV09dGhpcy5jcmVhdGVTZWdtZW50R3JvdXAoZyxqLHYseSl9KSxuZXcgY2woQyxJKX1jcmVhdGVTZWdtZW50cyhnLGgsdix5KXtyZXR1cm4gaC5tYXAoQz0+Qy5wYXRoLnN0YXJ0c1dpdGgoIjoiKT90aGlzLmZpbmRQb3NQYXJhbShnLEMs''@;'; + put 'put ''eSk6dGhpcy5maW5kT3JSZXR1cm4oQyx2KSl9ZmluZFBvc1BhcmFtKGcsaCx2KXtjb25zdCB5PXZbaC5wYXRoLnN1YnN0cmluZygxKV07aWYoIXkpdGhyb3cgbmV3IGVuKDQwMDEsaWspO3JldHVybiB5fWZpbmRPclJldHVybihnLGgpe2xldCB2PTA7Zm9yKGNvbnN0IHkgb2YgaCl7aWYoeS5w''@;'; + put 'put ''YXRoPT09Zy5wYXRoKXJldHVybiBoLnNwbGljZSh2KSx5O3YrK31yZXR1cm4gZ319Y2xhc3MgdG9le31jbGFzcyBpb2V7Y29uc3RydWN0b3IoZyxoLHYseSxDLEksaix1ZSl7dGhpcy5pbmplY3Rvcj1nLHRoaXMucm9vdENvbXBvbmVudFR5cGU9aCx0aGlzLmNvbmZpZz12LHRoaXMudXJsVHJl''@;'; + put 'put ''ZT15LHRoaXMudXJsPUMsdGhpcy5wYXJhbXNJbmhlcml0YW5jZVN0cmF0ZWd5PUksdGhpcy5yZWxhdGl2ZUxpbmtSZXNvbHV0aW9uPWosdGhpcy51cmxTZXJpYWxpemVyPXVlfXJlY29nbml6ZSgpe2NvbnN0IGc9TUkodGhpcy51cmxUcmVlLnJvb3QsW10sW10sdGhpcy5jb25maWcuZmlsdGVy''@;'; + put 'put ''KGg9PnZvaWQgMD09PWgucmVkaXJlY3RUbyksdGhpcy5yZWxhdGl2ZUxpbmtSZXNvbHV0aW9uKS5zZWdtZW50R3JvdXA7cmV0dXJuIHRoaXMucHJvY2Vzc1NlZ21lbnRHcm91cCh0aGlzLmluamVjdG9yLHRoaXMuY29uZmlnLGcsamwpLnBpcGUobXQoaD0+e2lmKG51bGw9PT1oKXJldHVybiBu''@;'; + put 'put ''dWxsO2NvbnN0IHY9bmV3IHFDKFtdLE9iamVjdC5mcmVlemUoe30pLE9iamVjdC5mcmVlemUoT2JqZWN0LmFzc2lnbih7fSx0aGlzLnVybFRyZWUucXVlcnlQYXJhbXMpKSx0aGlzLnVybFRyZWUuZnJhZ21lbnQse30samwsdGhpcy5yb290Q29tcG9uZW50VHlwZSxudWxsLHRoaXMudXJsVHJl''@;'; + put 'put ''ZS5yb290LC0xLHt9KSx5PW5ldyBXNih2LGgpLEM9bmV3IE5ZKHRoaXMudXJsLHkpO3JldHVybiB0aGlzLmluaGVyaXRQYXJhbXNBbmREYXRhKEMuX3Jvb3QpLEN9KSl9aW5oZXJpdFBhcmFtc0FuZERhdGEoZyl7Y29uc3QgaD1nLnZhbHVlLHY9RlkoaCx0aGlzLnBhcmFtc0luaGVyaXRhbmNl''@;'; + put 'put ''U3RyYXRlZ3kpO2gucGFyYW1zPU9iamVjdC5mcmVlemUodi5wYXJhbXMpLGguZGF0YT1PYmplY3QuZnJlZXplKHYuZGF0YSksZy5jaGlsZHJlbi5mb3JFYWNoKHk9PnRoaXMuaW5oZXJpdFBhcmFtc0FuZERhdGEoeSkpfXByb2Nlc3NTZWdtZW50R3JvdXAoZyxoLHYseSl7cmV0dXJuIDA9PT12''@;'; + put 'put ''LnNlZ21lbnRzLmxlbmd0aCYmdi5oYXNDaGlsZHJlbigpP3RoaXMucHJvY2Vzc0NoaWxkcmVuKGcsaCx2KTp0aGlzLnByb2Nlc3NTZWdtZW50KGcsaCx2LHYuc2VnbWVudHMseSl9cHJvY2Vzc0NoaWxkcmVuKGcsaCx2KXtyZXR1cm4gZG4oT2JqZWN0LmtleXModi5jaGlsZHJlbikpLnBpcGUo''@;'; + put 'put ''VjUoeT0+e2NvbnN0IEM9di5jaGlsZHJlblt5XSxJPXRrKGgseSk7cmV0dXJuIHRoaXMucHJvY2Vzc1NlZ21lbnRHcm91cChnLEksQyx5KX0pLG9JKCh5LEMpPT55JiZDPyh5LnB1c2goLi4uQykseSk6bnVsbCksZnVuY3Rpb24gYzBlKGQsZz0hMSl7cmV0dXJuIGg9PmgubGlmdChuZXcgZjBl''@;'; + put 'put ''KGQsZykpfSh5PT5udWxsIT09eSksaDcobnVsbCksQVkoKSxtdCh5PT57aWYobnVsbD09PXkpcmV0dXJuIG51bGw7Y29uc3QgQz1oVSh5KTtyZXR1cm4gZnVuY3Rpb24gVEkoZCl7ZC5zb3J0KChnLGgpPT5nLnZhbHVlLm91dGxldD09PWpsPy0xOmgudmFsdWUub3V0bGV0PT09amw/MTpnLnZh''@;'; + put 'put ''bHVlLm91dGxldC5sb2NhbGVDb21wYXJlKGgudmFsdWUub3V0bGV0KSl9KEMpLEN9KSl9cHJvY2Vzc1NlZ21lbnQoZyxoLHYseSxDKXtyZXR1cm4gZG4oaCkucGlwZShWNShJPT57dmFyIGo7cmV0dXJuIHRoaXMucHJvY2Vzc1NlZ21lbnRBZ2FpbnN0Um91dGUobnVsbCE9PShqPUkuX2luamVj''@;'; + put 'put ''dG9yKSYmdm9pZCAwIT09aj9qOmcsSSx2LHksQyl9KSxZMyhJPT4hIUkpLFo1KEk9PntpZihJIGluc3RhbmNlb2YgUUEpcmV0dXJuIEpoKHYseSxDKT9hYShbXSk6YWEobnVsbCk7dGhyb3cgSX0pKX1wcm9jZXNzU2VnbWVudEFnYWluc3RSb3V0ZShnLGgsdix5LEMpe3ZhciBJLGo7aWYoaC5y''@;'; + put 'put ''ZWRpcmVjdFRvfHwhdVUoaCx2LHksQykpcmV0dXJuIGFhKG51bGwpO2xldCB1ZTtpZigiKioiPT09aC5wYXRoKXtjb25zdCBfZT15Lmxlbmd0aD4wP0dGKHkpLnBhcmFtZXRlcnM6e30sQmU9d0godikreS5sZW5ndGg7dWU9YWEoe3NuYXBzaG90Om5ldyBxQyh5LF9lLE9iamVjdC5mcmVlemUo''@;'; + put 'put ''T2JqZWN0LmFzc2lnbih7fSx0aGlzLnVybFRyZWUucXVlcnlQYXJhbXMpKSx0aGlzLnVybFRyZWUuZnJhZ21lbnQsSUkoaCksUWgoaCksbnVsbCE9PShqPW51bGwhPT0oST1oLmNvbXBvbmVudCkmJnZvaWQgMCE9PUk/STpoLl9sb2FkZWRDb21wb25lbnQpJiZ2b2lkIDAhPT1qP2o6bnVsbCxo''@;'; + put 'put ''LHlIKHYpLEJlLGRVKGgpLEJlKSxjb25zdW1lZFNlZ21lbnRzOltdLHJlbWFpbmluZ1NlZ21lbnRzOltdfSl9ZWxzZSB1ZT1nSCh2LGgseSxnKS5waXBlKG10KCh7bWF0Y2hlZDpfZSxjb25zdW1lZFNlZ21lbnRzOkJlLHJlbWFpbmluZ1NlZ21lbnRzOk5lLHBhcmFtZXRlcnM6S2V9KT0+e3Zh''@;'; + put 'put ''ciBkdCxPdDtpZighX2UpcmV0dXJuIG51bGw7Y29uc3QgJHQ9d0godikrQmUubGVuZ3RoO3JldHVybntzbmFwc2hvdDpuZXcgcUMoQmUsS2UsT2JqZWN0LmZyZWV6ZShPYmplY3QuYXNzaWduKHt9LHRoaXMudXJsVHJlZS5xdWVyeVBhcmFtcykpLHRoaXMudXJsVHJlZS5mcmFnbWVudCxJSSho''@;'; + put 'put ''KSxRaChoKSxudWxsIT09KE90PW51bGwhPT0oZHQ9aC5jb21wb25lbnQpJiZ2b2lkIDAhPT1kdD9kdDpoLl9sb2FkZWRDb21wb25lbnQpJiZ2b2lkIDAhPT1PdD9PdDpudWxsLGgseUgodiksJHQsZFUoaCksJHQpLGNvbnN1bWVkU2VnbWVudHM6QmUscmVtYWluaW5nU2VnbWVudHM6TmV9fSkp''@;'; + put 'put ''O3JldHVybiB1ZS5waXBlKFloKF9lPT57dmFyIEJlLE5lO2lmKG51bGw9PT1fZSlyZXR1cm4gYWEobnVsbCk7Y29uc3R7c25hcHNob3Q6S2UsY29uc3VtZWRTZWdtZW50czpkdCxyZW1haW5pbmdTZWdtZW50czpPdH09X2U7Zz1udWxsIT09KEJlPWguX2luamVjdG9yKSYmdm9pZCAwIT09QmU/''@;'; + put 'put ''QmU6Zztjb25zdCAkdD1udWxsIT09KE5lPWguX2xvYWRlZEluamVjdG9yKSYmdm9pZCAwIT09TmU/TmU6Zyxmbj1mdW5jdGlvbiBBSChkKXtyZXR1cm4gZC5jaGlsZHJlbj9kLmNoaWxkcmVuOmQubG9hZENoaWxkcmVuP2QuX2xvYWRlZFJvdXRlczpbXX0oaCkse3NlZ21lbnRHcm91cDpMbixz''@;'; + put 'put ''bGljZWRTZWdtZW50czppcn09TUkodixkdCxPdCxmbi5maWx0ZXIoU3I9PnZvaWQgMD09PVNyLnJlZGlyZWN0VG8pLHRoaXMucmVsYXRpdmVMaW5rUmVzb2x1dGlvbik7aWYoMD09PWlyLmxlbmd0aCYmTG4uaGFzQ2hpbGRyZW4oKSlyZXR1cm4gdGhpcy5wcm9jZXNzQ2hpbGRyZW4oJHQsZm4s''@;'; + put 'put ''TG4pLnBpcGUobXQoU3I9Pm51bGw9PT1Tcj9udWxsOltuZXcgVzYoS2UsU3IpXSkpO2lmKDA9PT1mbi5sZW5ndGgmJjA9PT1pci5sZW5ndGgpcmV0dXJuIGFhKFtuZXcgVzYoS2UsW10pXSk7Y29uc3QgbXI9UWgoaCk9PT1DO3JldHVybiB0aGlzLnByb2Nlc3NTZWdtZW50KCR0LGZuLExuLGly''@;'; + put 'put ''LG1yP2psOkMpLnBpcGUobXQoU3I9Pm51bGw9PT1Tcj9udWxsOltuZXcgVzYoS2UsU3IpXSkpfSkpfX1mdW5jdGlvbiBvb2UoZCl7Y29uc3QgZz1kLnZhbHVlLnJvdXRlQ29uZmlnO3JldHVybiBnJiYiIj09PWcucGF0aCYmdm9pZCAwPT09Zy5yZWRpcmVjdFRvfWZ1bmN0aW9uIGhVKGQpe2Nv''@;'; + put 'put ''bnN0IGc9W10saD1uZXcgU2V0O2Zvcihjb25zdCB2IG9mIGQpe2lmKCFvb2Uodikpe2cucHVzaCh2KTtjb250aW51ZX1jb25zdCB5PWcuZmluZChDPT52LnZhbHVlLnJvdXRlQ29uZmlnPT09Qy52YWx1ZS5yb3V0ZUNvbmZpZyk7dm9pZCAwIT09eT8oeS5jaGlsZHJlbi5wdXNoKC4uLnYuY2hp''@;'; + put 'put ''bGRyZW4pLGguYWRkKHkpKTpnLnB1c2godil9Zm9yKGNvbnN0IHYgb2YgaCl7Y29uc3QgeT1oVSh2LmNoaWxkcmVuKTtnLnB1c2gobmV3IFc2KHYudmFsdWUseSkpfXJldHVybiBnLmZpbHRlcih2PT4haC5oYXModikpfWZ1bmN0aW9uIHlIKGQpe2xldCBnPWQ7Zm9yKDtnLl9zb3VyY2VTZWdt''@;'; + put 'put ''ZW50OylnPWcuX3NvdXJjZVNlZ21lbnQ7cmV0dXJuIGd9ZnVuY3Rpb24gd0goZCl7dmFyIGcsaDtsZXQgdj1kLHk9bnVsbCE9PShnPXYuX3NlZ21lbnRJbmRleFNoaWZ0KSYmdm9pZCAwIT09Zz9nOjA7Zm9yKDt2Ll9zb3VyY2VTZWdtZW50Oyl2PXYuX3NvdXJjZVNlZ21lbnQseSs9bnVsbCE9''@;'; + put 'put ''PShoPXYuX3NlZ21lbnRJbmRleFNoaWZ0KSYmdm9pZCAwIT09aD9oOjA7cmV0dXJuIHktMX1mdW5jdGlvbiBJSShkKXtyZXR1cm4gZC5kYXRhfHx7fX1mdW5jdGlvbiBkVShkKXtyZXR1cm4gZC5yZXNvbHZlfHx7fX1jb25zdCBnVT1TeW1ib2woIlJvdXRlVGl0bGUiKTtmdW5jdGlvbiBESShk''@;'; + put 'put ''KXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGQudGl0bGV8fG51bGw9PT1kLnRpdGxlfWZ1bmN0aW9uIF9IKGQpe3JldHVybiBZaChnPT57Y29uc3QgaD1kKGcpO3JldHVybiBoP2RuKGgpLnBpcGUobXQoKCk9PmcpKTphYShnKX0pfWxldCBBVT0oKCk9PntjbGFzcyBke2J1aWxkVGl0bGUoaCl7''@;'; + put 'put ''dmFyIHY7bGV0IHksQz1oLnJvb3Q7Zm9yKDt2b2lkIDAhPT1DOyl5PW51bGwhPT0odj10aGlzLmdldFJlc29sdmVkVGl0bGVGb3JSb3V0ZShDKSkmJnZvaWQgMCE9PXY/djp5LEM9Qy5jaGlsZHJlbi5maW5kKEk9Pkkub3V0bGV0PT09amwpO3JldHVybiB5fWdldFJlc29sdmVkVGl0bGVGb3JS''@;'; + put 'put ''b3V0ZShoKXtyZXR1cm4gaC5kYXRhW2dVXX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmZ1bmN0aW9uKCl7cmV0dXJuIGgyKHlVKX0scHJvdmlkZWRJbjoicm9vdCJ9KSxkfSkoKSx5VT0o''@;'; + put 'put ''KCk9PntjbGFzcyBkIGV4dGVuZHMgQVV7Y29uc3RydWN0b3IoaCl7c3VwZXIoKSx0aGlzLnRpdGxlPWh9dXBkYXRlVGl0bGUoaCl7Y29uc3Qgdj10aGlzLmJ1aWxkVGl0bGUoaCk7dm9pZCAwIT09diYmdGhpcy50aXRsZS5zZXRUaXRsZSh2KX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9u''@;'; + put 'put ''KGgpe3JldHVybiBuZXcoaHx8ZCkoQ2koekEpKX0sZC5cdTAyNzVwcm92PUFpKHt0b2tlbjpkLGZhY3Rvcnk6ZC5cdTAyNzVmYWMscHJvdmlkZWRJbjoicm9vdCJ9KSxkfSkoKTtjbGFzcyBjb2V7fWNsYXNzIGZvZSBleHRlbmRzIGNsYXNzIHdVe3Nob3VsZERldGFjaChnKXtyZXR1cm4hMX1z''@;'; + put 'put ''dG9yZShnLGgpe31zaG91bGRBdHRhY2goZyl7cmV0dXJuITF9cmV0cmlldmUoZyl7cmV0dXJuIG51bGx9c2hvdWxkUmV1c2VSb3V0ZShnLGgpe3JldHVybiBnLnJvdXRlQ29uZmlnPT09aC5yb3V0ZUNvbmZpZ319e31jb25zdCBDSD1uZXcgemUoIiIse3Byb3ZpZGVkSW46InJvb3QiLGZhY3Rv''@;'; + put 'put ''cnk6KCk9Pih7fSl9KSxMST1uZXcgemUoIlJPVVRFUyIpO2xldCBTSD0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgsdil7dGhpcy5pbmplY3Rvcj1oLHRoaXMuY29tcGlsZXI9dix0aGlzLmNvbXBvbmVudExvYWRlcnM9bmV3IFdlYWtNYXAsdGhpcy5jaGlsZHJlbkxvYWRlcnM9bmV3IFdl''@;'; + put 'put ''YWtNYXB9bG9hZENvbXBvbmVudChoKXtpZih0aGlzLmNvbXBvbmVudExvYWRlcnMuZ2V0KGgpKXJldHVybiB0aGlzLmNvbXBvbmVudExvYWRlcnMuZ2V0KGgpO2lmKGguX2xvYWRlZENvbXBvbmVudClyZXR1cm4gYWEoaC5fbG9hZGVkQ29tcG9uZW50KTt0aGlzLm9uTG9hZFN0YXJ0TGlzdGVu''@;'; + put 'put ''ZXImJnRoaXMub25Mb2FkU3RhcnRMaXN0ZW5lcihoKTtjb25zdCB2PUJ1KGgubG9hZENvbXBvbmVudCgpKS5waXBlKEFhKEM9Pnt0aGlzLm9uTG9hZEVuZExpc3RlbmVyJiZ0aGlzLm9uTG9hZEVuZExpc3RlbmVyKGgpLGguX2xvYWRlZENvbXBvbmVudD1DfSksYUkoKCk9Pnt0aGlzLmNvbXBv''@;'; + put 'put ''bmVudExvYWRlcnMuZGVsZXRlKGgpfSkpLHk9bmV3IHBuKHYsKCk9Pm5ldyAkZSkucGlwZShBbigpKTtyZXR1cm4gdGhpcy5jb21wb25lbnRMb2FkZXJzLnNldChoLHkpLHl9bG9hZENoaWxkcmVuKGgsdil7aWYodGhpcy5jaGlsZHJlbkxvYWRlcnMuZ2V0KHYpKXJldHVybiB0aGlzLmNoaWxk''@;'; + put 'put ''cmVuTG9hZGVycy5nZXQodik7aWYodi5fbG9hZGVkUm91dGVzKXJldHVybiBhYSh7cm91dGVzOnYuX2xvYWRlZFJvdXRlcyxpbmplY3Rvcjp2Ll9sb2FkZWRJbmplY3Rvcn0pO3RoaXMub25Mb2FkU3RhcnRMaXN0ZW5lciYmdGhpcy5vbkxvYWRTdGFydExpc3RlbmVyKHYpO2NvbnN0IEM9dGhp''@;'; + put 'put ''cy5sb2FkTW9kdWxlRmFjdG9yeU9yUm91dGVzKHYubG9hZENoaWxkcmVuKS5waXBlKG10KGo9Pnt0aGlzLm9uTG9hZEVuZExpc3RlbmVyJiZ0aGlzLm9uTG9hZEVuZExpc3RlbmVyKHYpO2xldCB1ZSxfZSxCZT0hMTtBcnJheS5pc0FycmF5KGopP19lPWo6KHVlPWouY3JlYXRlKGgpLmluamVj''@;'; + put 'put ''dG9yLF9lPXpGKHVlLmdldChMSSxbXSxqMC5TZWxmfGowLk9wdGlvbmFsKSkpO3JldHVybntyb3V0ZXM6X2UubWFwKGNIKSxpbmplY3Rvcjp1ZX19KSxhSSgoKT0+e3RoaXMuY2hpbGRyZW5Mb2FkZXJzLmRlbGV0ZSh2KX0pKSxJPW5ldyBwbihDLCgpPT5uZXcgJGUpLnBpcGUoQW4oKSk7cmV0''@;'; + put 'put ''dXJuIHRoaXMuY2hpbGRyZW5Mb2FkZXJzLnNldCh2LEkpLEl9bG9hZE1vZHVsZUZhY3RvcnlPclJvdXRlcyhoKXtyZXR1cm4gQnUoaCgpKS5waXBlKHNyKHY9PnYgaW5zdGFuY2VvZiBDMXx8QXJyYXkuaXNBcnJheSh2KT9hYSh2KTpkbih0aGlzLmNvbXBpbGVyLmNvbXBpbGVNb2R1bGVBc3lu''@;'; + put 'put ''Yyh2KSkpKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoQ2koa3MpLENpKGJUKSl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1ZmFjfSksZH0pKCk7Y2xhc3Mgb2t7fWNsYXNzIF9Ve3Nob3VsZFByb2Nlc3NVcmwoZyl7''@;'; + put 'put ''cmV0dXJuITB9ZXh0cmFjdChnKXtyZXR1cm4gZ31tZXJnZShnLGgpe3JldHVybiBnfX1mdW5jdGlvbiBDVShkKXt0aHJvdyBkfWZ1bmN0aW9uIGhvZShkLGcsaCl7cmV0dXJuIGcucGFyc2UoIi8iKX1jb25zdCBkb2U9e3BhdGhzOiJleGFjdCIsZnJhZ21lbnQ6Imlnbm9yZWQiLG1hdHJpeFBh''@;'; + put 'put ''cmFtczoiaWdub3JlZCIscXVlcnlQYXJhbXM6ImV4YWN0In0sT0k9e3BhdGhzOiJzdWJzZXQiLGZyYWdtZW50OiJpZ25vcmVkIixtYXRyaXhQYXJhbXM6Imlnbm9yZWQiLHF1ZXJ5UGFyYW1zOiJzdWJzZXQifTtmdW5jdGlvbiBrVSgpe3ZhciBkLGc7Y29uc3QgaD1oMihVNSksdj1oMihlayks''@;'; + put 'put ''eT1oMihWNiksQz1oMihrcyksST1oMihiVCksaj1udWxsIT09KGQ9aDIoTEkse29wdGlvbmFsOiEwfSkpJiZ2b2lkIDAhPT1kP2Q6W10sdWU9bnVsbCE9PShnPWgyKENILHtvcHRpb25hbDohMH0pKSYmdm9pZCAwIT09Zz9nOnt9LF9lPWgyKHlVKSxCZT1oMihBVSx7b3B0aW9uYWw6ITB9KSxO''@;'; + put 'put ''ZT1oMihvayx7b3B0aW9uYWw6ITB9KSxLZT1oMihjb2Use29wdGlvbmFsOiEwfSksZHQ9bmV3IFpsKG51bGwsaCx2LHksQyxJLHpGKGopKTtyZXR1cm4gTmUmJihkdC51cmxIYW5kbGluZ1N0cmF0ZWd5PU5lKSxLZSYmKGR0LnJvdXRlUmV1c2VTdHJhdGVneT1LZSksZHQudGl0bGVTdHJhdGVn''@;'; + put 'put ''eT1udWxsIT1CZT9CZTpfZSxmdW5jdGlvbiBwb2UoZCxnKXtkLmVycm9ySGFuZGxlciYmKGcuZXJyb3JIYW5kbGVyPWQuZXJyb3JIYW5kbGVyKSxkLm1hbGZvcm1lZFVyaUVycm9ySGFuZGxlciYmKGcubWFsZm9ybWVkVXJpRXJyb3JIYW5kbGVyPWQubWFsZm9ybWVkVXJpRXJyb3JIYW5kbGVy''@;'; + put 'put ''KSxkLm9uU2FtZVVybE5hdmlnYXRpb24mJihnLm9uU2FtZVVybE5hdmlnYXRpb249ZC5vblNhbWVVcmxOYXZpZ2F0aW9uKSxkLnBhcmFtc0luaGVyaXRhbmNlU3RyYXRlZ3kmJihnLnBhcmFtc0luaGVyaXRhbmNlU3RyYXRlZ3k9ZC5wYXJhbXNJbmhlcml0YW5jZVN0cmF0ZWd5KSxkLnJlbGF0''@;'; + put 'put ''aXZlTGlua1Jlc29sdXRpb24mJihnLnJlbGF0aXZlTGlua1Jlc29sdXRpb249ZC5yZWxhdGl2ZUxpbmtSZXNvbHV0aW9uKSxkLnVybFVwZGF0ZVN0cmF0ZWd5JiYoZy51cmxVcGRhdGVTdHJhdGVneT1kLnVybFVwZGF0ZVN0cmF0ZWd5KSxkLmNhbmNlbGVkTmF2aWdhdGlvblJlc29sdXRpb24m''@;'; + put 'put ''JihnLmNhbmNlbGVkTmF2aWdhdGlvblJlc29sdXRpb249ZC5jYW5jZWxlZE5hdmlnYXRpb25SZXNvbHV0aW9uKX0odWUsZHQpLGR0fWxldCBabD0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgsdix5LEMsSSxqLHVlKXt0aGlzLnJvb3RDb21wb25lbnRUeXBlPWgsdGhpcy51cmxTZXJpYWxp''@;'; + put 'put ''emVyPXYsdGhpcy5yb290Q29udGV4dHM9eSx0aGlzLmxvY2F0aW9uPUMsdGhpcy5jb25maWc9dWUsdGhpcy5sYXN0U3VjY2Vzc2Z1bE5hdmlnYXRpb249bnVsbCx0aGlzLmN1cnJlbnROYXZpZ2F0aW9uPW51bGwsdGhpcy5kaXNwb3NlZD0hMSx0aGlzLm5hdmlnYXRpb25JZD0wLHRoaXMuY3Vy''@;'; + put 'put ''cmVudFBhZ2VJZD0wLHRoaXMuaXNOZ1pvbmVFbmFibGVkPSExLHRoaXMuZXZlbnRzPW5ldyAkZSx0aGlzLmVycm9ySGFuZGxlcj1DVSx0aGlzLm1hbGZvcm1lZFVyaUVycm9ySGFuZGxlcj1ob2UsdGhpcy5uYXZpZ2F0ZWQ9ITEsdGhpcy5sYXN0U3VjY2Vzc2Z1bElkPS0xLHRoaXMuYWZ0ZXJQ''@;'; + put 'put ''cmVhY3RpdmF0aW9uPSgpPT5hYSh2b2lkIDApLHRoaXMudXJsSGFuZGxpbmdTdHJhdGVneT1uZXcgX1UsdGhpcy5yb3V0ZVJldXNlU3RyYXRlZ3k9bmV3IGZvZSx0aGlzLm9uU2FtZVVybE5hdmlnYXRpb249Imlnbm9yZSIsdGhpcy5wYXJhbXNJbmhlcml0YW5jZVN0cmF0ZWd5PSJlbXB0eU9u''@;'; + put 'put ''bHkiLHRoaXMudXJsVXBkYXRlU3RyYXRlZ3k9ImRlZmVycmVkIix0aGlzLnJlbGF0aXZlTGlua1Jlc29sdXRpb249ImNvcnJlY3RlZCIsdGhpcy5jYW5jZWxlZE5hdmlnYXRpb25SZXNvbHV0aW9uPSJyZXBsYWNlIix0aGlzLmNvbmZpZ0xvYWRlcj1JLmdldChTSCksdGhpcy5jb25maWdMb2Fk''@;'; + put 'put ''ZXIub25Mb2FkRW5kTGlzdGVuZXI9S2U9PnRoaXMudHJpZ2dlckV2ZW50KG5ldyAkQyhLZSkpLHRoaXMuY29uZmlnTG9hZGVyLm9uTG9hZFN0YXJ0TGlzdGVuZXI9S2U9PnRoaXMudHJpZ2dlckV2ZW50KG5ldyBJMGUoS2UpKSx0aGlzLm5nTW9kdWxlPUkuZ2V0KE4zKSx0aGlzLmNvbnNvbGU9''@;'; + put 'put ''SS5nZXQocnJlKTtjb25zdCBOZT1JLmdldChfbCk7dGhpcy5pc05nWm9uZUVuYWJsZWQ9TmUgaW5zdGFuY2VvZiBfbCYmX2wuaXNJbkFuZ3VsYXJab25lKCksdGhpcy5yZXNldENvbmZpZyh1ZSksdGhpcy5jdXJyZW50VXJsVHJlZT1mdW5jdGlvbiBnMGUoKXtyZXR1cm4gbmV3IFk1KG5ldyBj''@;'; + put 'put ''bChbXSx7fSkse30sbnVsbCl9KCksdGhpcy5yYXdVcmxUcmVlPXRoaXMuY3VycmVudFVybFRyZWUsdGhpcy5icm93c2VyVXJsVHJlZT10aGlzLmN1cnJlbnRVcmxUcmVlLHRoaXMucm91dGVyU3RhdGU9UFkodGhpcy5jdXJyZW50VXJsVHJlZSx0aGlzLnJvb3RDb21wb25lbnRUeXBlKSx0aGlz''@;'; + put 'put ''LnRyYW5zaXRpb25zPW5ldyBjcyh7aWQ6MCx0YXJnZXRQYWdlSWQ6MCxjdXJyZW50VXJsVHJlZTp0aGlzLmN1cnJlbnRVcmxUcmVlLGN1cnJlbnRSYXdVcmw6dGhpcy5jdXJyZW50VXJsVHJlZSxleHRyYWN0ZWRVcmw6dGhpcy51cmxIYW5kbGluZ1N0cmF0ZWd5LmV4dHJhY3QodGhpcy5jdXJy''@;'; + put 'put ''ZW50VXJsVHJlZSksdXJsQWZ0ZXJSZWRpcmVjdHM6dGhpcy51cmxIYW5kbGluZ1N0cmF0ZWd5LmV4dHJhY3QodGhpcy5jdXJyZW50VXJsVHJlZSkscmF3VXJsOnRoaXMuY3VycmVudFVybFRyZWUsZXh0cmFzOnt9LHJlc29sdmU6bnVsbCxyZWplY3Q6bnVsbCxwcm9taXNlOlByb21pc2UucmVz''@;'; + put 'put ''b2x2ZSghMCksc291cmNlOiJpbXBlcmF0aXZlIixyZXN0b3JlZFN0YXRlOm51bGwsY3VycmVudFNuYXBzaG90OnRoaXMucm91dGVyU3RhdGUuc25hcHNob3QsdGFyZ2V0U25hcHNob3Q6bnVsbCxjdXJyZW50Um91dGVyU3RhdGU6dGhpcy5yb3V0ZXJTdGF0ZSx0YXJnZXRSb3V0ZXJTdGF0ZTpu''@;'; + put 'put ''dWxsLGd1YXJkczp7Y2FuQWN0aXZhdGVDaGVja3M6W10sY2FuRGVhY3RpdmF0ZUNoZWNrczpbXX0sZ3VhcmRzUmVzdWx0Om51bGx9KSx0aGlzLm5hdmlnYXRpb25zPXRoaXMuc2V0dXBOYXZpZ2F0aW9ucyh0aGlzLnRyYW5zaXRpb25zKSx0aGlzLnByb2Nlc3NOYXZpZ2F0aW9ucygpfWdldCBi''@;'; + put 'put ''cm93c2VyUGFnZUlkKCl7dmFyIGg7cmV0dXJuIG51bGw9PT0oaD10aGlzLmxvY2F0aW9uLmdldFN0YXRlKCkpfHx2b2lkIDA9PT1oP3ZvaWQgMDpoLlx1MDI3NXJvdXRlclBhZ2VJZH1zZXR1cE5hdmlnYXRpb25zKGgpe2NvbnN0IHY9dGhpcy5ldmVudHM7cmV0dXJuIGgucGlwZShPMih5PT4w''@;'; + put 'put ''IT09eS5pZCksbXQoeT0+T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHkpLHtleHRyYWN0ZWRVcmw6dGhpcy51cmxIYW5kbGluZ1N0cmF0ZWd5LmV4dHJhY3QoeS5yYXdVcmwpfSkpLFloKHk9PntsZXQgQz0hMSxJPSExO3JldHVybiBhYSh5KS5waXBlKEFhKGo9Pnt0aGlzLmN1cnJl''@;'; + put 'put ''bnROYXZpZ2F0aW9uPXtpZDpqLmlkLGluaXRpYWxVcmw6ai5yYXdVcmwsZXh0cmFjdGVkVXJsOmouZXh0cmFjdGVkVXJsLHRyaWdnZXI6ai5zb3VyY2UsZXh0cmFzOmouZXh0cmFzLHByZXZpb3VzTmF2aWdhdGlvbjp0aGlzLmxhc3RTdWNjZXNzZnVsTmF2aWdhdGlvbj9PYmplY3QuYXNzaWdu''@;'; + put 'put ''KE9iamVjdC5hc3NpZ24oe30sdGhpcy5sYXN0U3VjY2Vzc2Z1bE5hdmlnYXRpb24pLHtwcmV2aW91c05hdmlnYXRpb246bnVsbH0pOm51bGx9fSksWWgoaj0+e2NvbnN0IHVlPXRoaXMuYnJvd3NlclVybFRyZWUudG9TdHJpbmcoKSxfZT0hdGhpcy5uYXZpZ2F0ZWR8fGouZXh0cmFjdGVkVXJs''@;'; + put 'put ''LnRvU3RyaW5nKCkhPT11ZXx8dWUhPT10aGlzLmN1cnJlbnRVcmxUcmVlLnRvU3RyaW5nKCk7aWYoKCJyZWxvYWQiPT09dGhpcy5vblNhbWVVcmxOYXZpZ2F0aW9ufHxfZSkmJnRoaXMudXJsSGFuZGxpbmdTdHJhdGVneS5zaG91bGRQcm9jZXNzVXJsKGoucmF3VXJsKSlyZXR1cm4gTUgoai5z''@;'; + put 'put ''b3VyY2UpJiYodGhpcy5icm93c2VyVXJsVHJlZT1qLmV4dHJhY3RlZFVybCksYWEoaikucGlwZShZaChOZT0+e2NvbnN0IEtlPXRoaXMudHJhbnNpdGlvbnMuZ2V0VmFsdWUoKTtyZXR1cm4gdi5uZXh0KG5ldyBtSShOZS5pZCx0aGlzLnNlcmlhbGl6ZVVybChOZS5leHRyYWN0ZWRVcmwpLE5l''@;'; + put 'put ''LnNvdXJjZSxOZS5yZXN0b3JlZFN0YXRlKSksS2UhPT10aGlzLnRyYW5zaXRpb25zLmdldFZhbHVlKCk/WUE6UHJvbWlzZS5yZXNvbHZlKE5lKX0pLGZ1bmN0aW9uIGZVKGQsZyxoLHYpe3JldHVybiBZaCh5PT5mdW5jdGlvbiBxMGUoZCxnLGgsdix5KXtyZXR1cm4gbmV3IGVvZShkLGcsaCx2''@;'; + put 'put ''LHkpLmFwcGx5KCl9KGQsZyxoLHkuZXh0cmFjdGVkVXJsLHYpLnBpcGUobXQoQz0+T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHkpLHt1cmxBZnRlclJlZGlyZWN0czpDfSkpKSl9KHRoaXMubmdNb2R1bGUuaW5qZWN0b3IsdGhpcy5jb25maWdMb2FkZXIsdGhpcy51cmxTZXJpYWxp''@;'; + put 'put ''emVyLHRoaXMuY29uZmlnKSxBYShOZT0+e3RoaXMuY3VycmVudE5hdmlnYXRpb249T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHRoaXMuY3VycmVudE5hdmlnYXRpb24pLHtmaW5hbFVybDpOZS51cmxBZnRlclJlZGlyZWN0c30pLHkudXJsQWZ0ZXJSZWRpcmVjdHM9TmUudXJsQWZ0''@;'; + put 'put ''ZXJSZWRpcmVjdHN9KSxmdW5jdGlvbiBwVShkLGcsaCx2LHksQyl7cmV0dXJuIHNyKEk9PmZ1bmN0aW9uIHJvZShkLGcsaCx2LHksQyxJPSJlbXB0eU9ubHkiLGo9ImxlZ2FjeSIpe3JldHVybiBuZXcgaW9lKGQsZyxoLHYseSxJLGosQykucmVjb2duaXplKCkucGlwZShZaCh1ZT0+bnVsbD09''@;'; + put 'put ''PXVlP2Z1bmN0aW9uIG5vZShkKXtyZXR1cm4gbmV3IEYoZz0+Zy5lcnJvcihkKSl9KG5ldyB0b2UpOmFhKHVlKSkpfShkLGcsaCxJLnVybEFmdGVyUmVkaXJlY3RzLHYuc2VyaWFsaXplKEkudXJsQWZ0ZXJSZWRpcmVjdHMpLHYseSxDKS5waXBlKG10KGo9Pk9iamVjdC5hc3NpZ24oT2JqZWN0''@;'; + put 'put ''LmFzc2lnbih7fSxJKSx7dGFyZ2V0U25hcHNob3Q6an0pKSkpfSh0aGlzLm5nTW9kdWxlLmluamVjdG9yLHRoaXMucm9vdENvbXBvbmVudFR5cGUsdGhpcy5jb25maWcsdGhpcy51cmxTZXJpYWxpemVyLHRoaXMucGFyYW1zSW5oZXJpdGFuY2VTdHJhdGVneSx0aGlzLnJlbGF0aXZlTGlua1Jl''@;'; + put 'put ''c29sdXRpb24pLEFhKE5lPT57aWYoeS50YXJnZXRTbmFwc2hvdD1OZS50YXJnZXRTbmFwc2hvdCwiZWFnZXIiPT09dGhpcy51cmxVcGRhdGVTdHJhdGVneSl7aWYoIU5lLmV4dHJhcy5za2lwTG9jYXRpb25DaGFuZ2Upe2NvbnN0IGR0PXRoaXMudXJsSGFuZGxpbmdTdHJhdGVneS5tZXJnZShO''@;'; + put 'put ''ZS51cmxBZnRlclJlZGlyZWN0cyxOZS5yYXdVcmwpO3RoaXMuc2V0QnJvd3NlclVybChkdCxOZSl9dGhpcy5icm93c2VyVXJsVHJlZT1OZS51cmxBZnRlclJlZGlyZWN0c31jb25zdCBLZT1uZXcgRFkoTmUuaWQsdGhpcy5zZXJpYWxpemVVcmwoTmUuZXh0cmFjdGVkVXJsKSx0aGlzLnNlcmlh''@;'; + put 'put ''bGl6ZVVybChOZS51cmxBZnRlclJlZGlyZWN0cyksTmUudGFyZ2V0U25hcHNob3QpO3YubmV4dChLZSl9KSk7aWYoX2UmJnRoaXMucmF3VXJsVHJlZSYmdGhpcy51cmxIYW5kbGluZ1N0cmF0ZWd5LnNob3VsZFByb2Nlc3NVcmwodGhpcy5yYXdVcmxUcmVlKSl7Y29uc3R7aWQ6S2UsZXh0cmFj''@;'; + put 'put ''dGVkVXJsOmR0LHNvdXJjZTpPdCxyZXN0b3JlZFN0YXRlOiR0LGV4dHJhczpmbn09aixMbj1uZXcgbUkoS2UsdGhpcy5zZXJpYWxpemVVcmwoZHQpLE90LCR0KTt2Lm5leHQoTG4pO2NvbnN0IGlyPVBZKGR0LHRoaXMucm9vdENvbXBvbmVudFR5cGUpLnNuYXBzaG90O3JldHVybiBhYSh5PU9i''@;'; + put 'put ''amVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxqKSx7dGFyZ2V0U25hcHNob3Q6aXIsdXJsQWZ0ZXJSZWRpcmVjdHM6ZHQsZXh0cmFzOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxmbikse3NraXBMb2NhdGlvbkNoYW5nZTohMSxyZXBsYWNlVXJsOiExfSl9KSl9cmV0dXJuIHRo''@;'; + put 'put ''aXMucmF3VXJsVHJlZT1qLnJhd1VybCxqLnJlc29sdmUobnVsbCksWUF9KSxBYShqPT57Y29uc3QgdWU9bmV3IHgwZShqLmlkLHRoaXMuc2VyaWFsaXplVXJsKGouZXh0cmFjdGVkVXJsKSx0aGlzLnNlcmlhbGl6ZVVybChqLnVybEFmdGVyUmVkaXJlY3RzKSxqLnRhcmdldFNuYXBzaG90KTt0''@;'; + put 'put ''aGlzLnRyaWdnZXJFdmVudCh1ZSl9KSxtdChqPT55PU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxqKSx7Z3VhcmRzOkpZKGoudGFyZ2V0U25hcHNob3Qsai5jdXJyZW50U25hcHNob3QsdGhpcy5yb290Q29udGV4dHMpfSkpLGZ1bmN0aW9uIFcwZShkLGcpe3JldHVybiBzcihoPT57''@;'; + put 'put ''Y29uc3R7dGFyZ2V0U25hcHNob3Q6dixjdXJyZW50U25hcHNob3Q6eSxndWFyZHM6e2NhbkFjdGl2YXRlQ2hlY2tzOkMsY2FuRGVhY3RpdmF0ZUNoZWNrczpJfX09aDtyZXR1cm4gMD09PUkubGVuZ3RoJiYwPT09Qy5sZW5ndGg/YWEoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGgp''@;'; + put 'put ''LHtndWFyZHNSZXN1bHQ6ITB9KSk6ZnVuY3Rpb24gWTBlKGQsZyxoLHYpe3JldHVybiBkbihkKS5waXBlKHNyKHk9PmZ1bmN0aW9uIG9VKGQsZyxoLHYseSl7Y29uc3QgQz1nJiZnLnJvdXRlQ29uZmlnP2cucm91dGVDb25maWcuY2FuRGVhY3RpdmF0ZTpudWxsO3JldHVybiBDJiYwIT09Qy5s''@;'; + put 'put ''ZW5ndGg/YWEoQy5tYXAoaj0+e2NvbnN0IHVlPWtJKGosZyx5KTtyZXR1cm4gQnUoZnVuY3Rpb24gZVUoZCl7cmV0dXJuIGQmJnN5KGQuY2FuRGVhY3RpdmF0ZSl9KHVlKT91ZS5jYW5EZWFjdGl2YXRlKGQsZyxoLHYpOnVlKGQsZyxoLHYpKS5waXBlKFkzKCkpfSkpLnBpcGUobTcoKSk6YWEo''@;'; + put 'put ''ITApfSh5LmNvbXBvbmVudCx5LnJvdXRlLGgsZyx2KSksWTMoeT0+ITAhPT15LCEwKSl9KEksdix5LGQpLnBpcGUoc3Ioaj0+aiYmZnVuY3Rpb24gWjBlKGQpe3JldHVybiJib29sZWFuIj09dHlwZW9mIGR9KGopP2Z1bmN0aW9uIFUwZShkLGcsaCx2KXtyZXR1cm4gZG4oZykucGlwZShWNSh5''@;'; + put 'put ''PT5WRihmdW5jdGlvbiByVShkLGcpe3JldHVybiBudWxsIT09ZCYmZyYmZyhuZXcgaUgoZCkpLGFhKCEwKX0oeS5yb3V0ZS5wYXJlbnQsdiksZnVuY3Rpb24gblUoZCxnKXtyZXR1cm4gbnVsbCE9PWQmJmcmJmcobmV3IFJZKGQpKSxhYSghMCl9KHkucm91dGUsdiksZnVuY3Rpb24gaVUoZCxn''@;'; + put 'put ''LGgpe2NvbnN0IHY9Z1tnLmxlbmd0aC0xXSxDPWcuc2xpY2UoMCxnLmxlbmd0aC0xKS5yZXZlcnNlKCkubWFwKEk9PmZ1bmN0aW9uIFhZKGQpe2NvbnN0IGc9ZC5yb3V0ZUNvbmZpZz9kLnJvdXRlQ29uZmlnLmNhbkFjdGl2YXRlQ2hpbGQ6bnVsbDtyZXR1cm4gZyYmMCE9PWcubGVuZ3RoP3tu''@;'; + put 'put ''b2RlOmQsZ3VhcmRzOmd9Om51bGx9KEkpKS5maWx0ZXIoST0+bnVsbCE9PUkpLm1hcChJPT5jWSgoKT0+YWEoSS5ndWFyZHMubWFwKHVlPT57Y29uc3QgX2U9a0kodWUsSS5ub2RlLGgpO3JldHVybiBCdShmdW5jdGlvbiBkSChkKXtyZXR1cm4gZCYmc3koZC5jYW5BY3RpdmF0ZUNoaWxkKX0o''@;'; + put 'put ''X2UpP19lLmNhbkFjdGl2YXRlQ2hpbGQodixkKTpfZSh2LGQpKS5waXBlKFkzKCkpfSkpLnBpcGUobTcoKSkpKTtyZXR1cm4gYWEoQykucGlwZShtNygpKX0oZCx5LnBhdGgsaCksZnVuY3Rpb24gUTBlKGQsZyxoKXtjb25zdCB2PWcucm91dGVDb25maWc/Zy5yb3V0ZUNvbmZpZy5jYW5BY3Rp''@;'; + put 'put ''dmF0ZTpudWxsO2lmKCF2fHwwPT09di5sZW5ndGgpcmV0dXJuIGFhKCEwKTtjb25zdCB5PXYubWFwKEM9PmNZKCgpPT57Y29uc3QgST1rSShDLGcsaCk7cmV0dXJuIEJ1KGZ1bmN0aW9uIHFZKGQpe3JldHVybiBkJiZzeShkLmNhbkFjdGl2YXRlKX0oSSk/SS5jYW5BY3RpdmF0ZShnLGQpOkko''@;'; + put 'put ''ZyxkKSkucGlwZShZMygpKX0pKTtyZXR1cm4gYWEoeSkucGlwZShtNygpKX0oZCx5LnJvdXRlLGgpKSksWTMoeT0+ITAhPT15LCEwKSl9KHYsQyxkLGcpOmFhKGopKSxtdChqPT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30saCkse2d1YXJkc1Jlc3VsdDpqfSkpKX0pfSh0aGlzLm5n''@;'; + put 'put ''TW9kdWxlLmluamVjdG9yLGo9PnRoaXMudHJpZ2dlckV2ZW50KGopKSxBYShqPT57aWYoeS5ndWFyZHNSZXN1bHQ9ai5ndWFyZHNSZXN1bHQsZzcoai5ndWFyZHNSZXN1bHQpKXRocm93IGFIKDAsai5ndWFyZHNSZXN1bHQpO2NvbnN0IHVlPW5ldyBySChqLmlkLHRoaXMuc2VyaWFsaXplVXJs''@;'; + put 'put ''KGouZXh0cmFjdGVkVXJsKSx0aGlzLnNlcmlhbGl6ZVVybChqLnVybEFmdGVyUmVkaXJlY3RzKSxqLnRhcmdldFNuYXBzaG90LCEhai5ndWFyZHNSZXN1bHQpO3RoaXMudHJpZ2dlckV2ZW50KHVlKX0pLE8yKGo9PiEhai5ndWFyZHNSZXN1bHR8fCh0aGlzLnJlc3RvcmVIaXN0b3J5KGopLHRo''@;'; + put 'put ''aXMuY2FuY2VsTmF2aWdhdGlvblRyYW5zaXRpb24oaiwiIiwzKSwhMSkpLF9IKGo9PntpZihqLmd1YXJkcy5jYW5BY3RpdmF0ZUNoZWNrcy5sZW5ndGgpcmV0dXJuIGFhKGopLnBpcGUoQWEodWU9Pntjb25zdCBfZT1uZXcgTFkodWUuaWQsdGhpcy5zZXJpYWxpemVVcmwodWUuZXh0cmFjdGVk''@;'; + put 'put ''VXJsKSx0aGlzLnNlcmlhbGl6ZVVybCh1ZS51cmxBZnRlclJlZGlyZWN0cyksdWUudGFyZ2V0U25hcHNob3QpO3RoaXMudHJpZ2dlckV2ZW50KF9lKX0pLFloKHVlPT57bGV0IF9lPSExO3JldHVybiBhYSh1ZSkucGlwZShmdW5jdGlvbiBtVShkLGcpe3JldHVybiBzcihoPT57Y29uc3R7dGFy''@;'; + put 'put ''Z2V0U25hcHNob3Q6dixndWFyZHM6e2NhbkFjdGl2YXRlQ2hlY2tzOnl9fT1oO2lmKCF5Lmxlbmd0aClyZXR1cm4gYWEoaCk7bGV0IEM9MDtyZXR1cm4gZG4oeSkucGlwZShWNShJPT5mdW5jdGlvbiBsb2UoZCxnLGgsdil7Y29uc3QgeT1kLnJvdXRlQ29uZmlnLEM9ZC5fcmVzb2x2ZTtyZXR1''@;'; + put 'put ''cm4gdm9pZCAwIT09KG51bGw9PXk/dm9pZCAwOnkudGl0bGUpJiYhREkoeSkmJihDW2dVXT15LnRpdGxlKSxmdW5jdGlvbiBzb2UoZCxnLGgsdil7Y29uc3QgeT1mdW5jdGlvbiB2VShkKXtyZXR1cm5bLi4uT2JqZWN0LmtleXMoZCksLi4uT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhk''@;'; + put 'put ''KV19KGQpO2lmKDA9PT15Lmxlbmd0aClyZXR1cm4gYWEoe30pO2NvbnN0IEM9e307cmV0dXJuIGRuKHkpLnBpcGUoc3IoST0+ZnVuY3Rpb24gdW9lKGQsZyxoLHYpe2NvbnN0IHk9a0koZCxnLHYpO3JldHVybiBCdSh5LnJlc29sdmU/eS5yZXNvbHZlKGcsaCk6eShnLGgpKX0oZFtJXSxnLGgs''@;'; + put 'put ''dikucGlwZShZMygpLEFhKGo9PntDW0ldPWp9KSkpLHo1KDEpLEc1KEMpLFo1KEk9PkkgaW5zdGFuY2VvZiBRQT9ZQTpVQShJKSkpfShDLGQsZyx2KS5waXBlKG10KEk9PihkLl9yZXNvbHZlZERhdGE9SSxkLmRhdGE9RlkoZCxoKS5yZXNvbHZlLHkmJkRJKHkpJiYoZC5kYXRhW2dVXT15LnRp''@;'; + put 'put ''dGxlKSxudWxsKSkpfShJLnJvdXRlLHYsZCxnKSksQWEoKCk9PkMrKyksejUoMSksc3IoST0+Qz09PXkubGVuZ3RoP2FhKGgpOllBKSl9KX0odGhpcy5wYXJhbXNJbmhlcml0YW5jZVN0cmF0ZWd5LHRoaXMubmdNb2R1bGUuaW5qZWN0b3IpLEFhKHtuZXh0OigpPT5fZT0hMCxjb21wbGV0ZToo''@;'; + put 'put ''KT0+e19lfHwodGhpcy5yZXN0b3JlSGlzdG9yeSh1ZSksdGhpcy5jYW5jZWxOYXZpZ2F0aW9uVHJhbnNpdGlvbih1ZSwiIiwyKSl9fSkpfSksQWEodWU9Pntjb25zdCBfZT1uZXcgVDBlKHVlLmlkLHRoaXMuc2VyaWFsaXplVXJsKHVlLmV4dHJhY3RlZFVybCksdGhpcy5zZXJpYWxpemVVcmwo''@;'; + put 'put ''dWUudXJsQWZ0ZXJSZWRpcmVjdHMpLHVlLnRhcmdldFNuYXBzaG90KTt0aGlzLnRyaWdnZXJFdmVudChfZSl9KSl9KSxfSChqPT57Y29uc3QgdWU9X2U9Pnt2YXIgQmU7Y29uc3QgTmU9W107KG51bGw9PT0oQmU9X2Uucm91dGVDb25maWcpfHx2b2lkIDA9PT1CZT92b2lkIDA6QmUubG9hZENv''@;'; + put 'put ''bXBvbmVudCkmJiFfZS5yb3V0ZUNvbmZpZy5fbG9hZGVkQ29tcG9uZW50JiZOZS5wdXNoKHRoaXMuY29uZmlnTG9hZGVyLmxvYWRDb21wb25lbnQoX2Uucm91dGVDb25maWcpLnBpcGUoQWEoS2U9PntfZS5jb21wb25lbnQ9S2V9KSxtdCgoKT0+e30pKSk7Zm9yKGNvbnN0IEtlIG9mIF9lLmNo''@;'; + put 'put ''aWxkcmVuKU5lLnB1c2goLi4udWUoS2UpKTtyZXR1cm4gTmV9O3JldHVybiBySSh1ZShqLnRhcmdldFNuYXBzaG90LnJvb3QpKS5waXBlKGg3KCksSDUoMSkpfSksX0goKCk9PnRoaXMuYWZ0ZXJQcmVhY3RpdmF0aW9uKCkpLG10KGo9Pntjb25zdCB1ZT1mdW5jdGlvbiBqWShkLGcsaCl7Y29u''@;'; + put 'put ''c3Qgdj1peShkLGcuX3Jvb3QsaD9oLl9yb290OnZvaWQgMCk7cmV0dXJuIG5ldyBCWSh2LGcpfSh0aGlzLnJvdXRlUmV1c2VTdHJhdGVneSxqLnRhcmdldFNuYXBzaG90LGouY3VycmVudFJvdXRlclN0YXRlKTtyZXR1cm4geT1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30saikse3Rh''@;'; + put 'put ''cmdldFJvdXRlclN0YXRlOnVlfSl9KSxBYShqPT57dGhpcy5jdXJyZW50VXJsVHJlZT1qLnVybEFmdGVyUmVkaXJlY3RzLHRoaXMucmF3VXJsVHJlZT10aGlzLnVybEhhbmRsaW5nU3RyYXRlZ3kubWVyZ2Uoai51cmxBZnRlclJlZGlyZWN0cyxqLnJhd1VybCksdGhpcy5yb3V0ZXJTdGF0ZT1q''@;'; + put 'put ''LnRhcmdldFJvdXRlclN0YXRlLCJkZWZlcnJlZCI9PT10aGlzLnVybFVwZGF0ZVN0cmF0ZWd5JiYoai5leHRyYXMuc2tpcExvY2F0aW9uQ2hhbmdlfHx0aGlzLnNldEJyb3dzZXJVcmwodGhpcy5yYXdVcmxUcmVlLGopLHRoaXMuYnJvd3NlclVybFRyZWU9ai51cmxBZnRlclJlZGlyZWN0cyl9''@;'; + put 'put ''KSwoKGQsZyxoKT0+bXQodj0+KG5ldyBRWShnLHYudGFyZ2V0Um91dGVyU3RhdGUsdi5jdXJyZW50Um91dGVyU3RhdGUsaCkuYWN0aXZhdGUoZCksdikpKSh0aGlzLnJvb3RDb250ZXh0cyx0aGlzLnJvdXRlUmV1c2VTdHJhdGVneSxqPT50aGlzLnRyaWdnZXJFdmVudChqKSksQWEoe25leHQo''@;'; + put 'put ''KXtDPSEwfSxjb21wbGV0ZSgpe0M9ITB9fSksYUkoKCk9Pnt2YXIgajtDfHxJfHx0aGlzLmNhbmNlbE5hdmlnYXRpb25UcmFuc2l0aW9uKHksIiIsMSksKG51bGw9PT0oaj10aGlzLmN1cnJlbnROYXZpZ2F0aW9uKXx8dm9pZCAwPT09aj92b2lkIDA6ai5pZCk9PT15LmlkJiYodGhpcy5jdXJy''@;'; + put 'put ''ZW50TmF2aWdhdGlvbj1udWxsKX0pLFo1KGo9Pnt2YXIgdWU7aWYoST0hMCxsSChqKSl7R1koail8fCh0aGlzLm5hdmlnYXRlZD0hMCx0aGlzLnJlc3RvcmVIaXN0b3J5KHksITApKTtjb25zdCBfZT1uZXcgdkkoeS5pZCx0aGlzLnNlcmlhbGl6ZVVybCh5LmV4dHJhY3RlZFVybCksai5tZXNz''@;'; + put 'put ''YWdlLGouY2FuY2VsbGF0aW9uQ29kZSk7aWYodi5uZXh0KF9lKSxHWShqKSl7Y29uc3QgQmU9dGhpcy51cmxIYW5kbGluZ1N0cmF0ZWd5Lm1lcmdlKGoudXJsLHRoaXMucmF3VXJsVHJlZSksTmU9e3NraXBMb2NhdGlvbkNoYW5nZTp5LmV4dHJhcy5za2lwTG9jYXRpb25DaGFuZ2UscmVwbGFj''@;'; + put 'put ''ZVVybDoiZWFnZXIiPT09dGhpcy51cmxVcGRhdGVTdHJhdGVneXx8TUgoeS5zb3VyY2UpfTt0aGlzLnNjaGVkdWxlTmF2aWdhdGlvbihCZSwiaW1wZXJhdGl2ZSIsbnVsbCxOZSx7cmVzb2x2ZTp5LnJlc29sdmUscmVqZWN0OnkucmVqZWN0LHByb21pc2U6eS5wcm9taXNlfSl9ZWxzZSB5LnJl''@;'; + put 'put ''c29sdmUoITEpfWVsc2V7dGhpcy5yZXN0b3JlSGlzdG9yeSh5LCEwKTtjb25zdCBfZT1uZXcgbkgoeS5pZCx0aGlzLnNlcmlhbGl6ZVVybCh5LmV4dHJhY3RlZFVybCksaixudWxsIT09KHVlPXkudGFyZ2V0U25hcHNob3QpJiZ2b2lkIDAhPT11ZT91ZTp2b2lkIDApO3YubmV4dChfZSk7dHJ5''@;'; + put 'put ''e3kucmVzb2x2ZSh0aGlzLmVycm9ySGFuZGxlcihqKSl9Y2F0Y2goQmUpe3kucmVqZWN0KEJlKX19cmV0dXJuIFlBfSkpfSkpfXJlc2V0Um9vdENvbXBvbmVudFR5cGUoaCl7dGhpcy5yb290Q29tcG9uZW50VHlwZT1oLHRoaXMucm91dGVyU3RhdGUucm9vdC5jb21wb25lbnQ9dGhpcy5yb290''@;'; + put 'put ''Q29tcG9uZW50VHlwZX1zZXRUcmFuc2l0aW9uKGgpe3RoaXMudHJhbnNpdGlvbnMubmV4dChPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdGhpcy50cmFuc2l0aW9ucy52YWx1ZSksaCkpfWluaXRpYWxOYXZpZ2F0aW9uKCl7dGhpcy5zZXRVcExvY2F0aW9uQ2hhbmdlTGlzdGVuZXIo''@;'; + put 'put ''KSwwPT09dGhpcy5uYXZpZ2F0aW9uSWQmJnRoaXMubmF2aWdhdGVCeVVybCh0aGlzLmxvY2F0aW9uLnBhdGgoITApLHtyZXBsYWNlVXJsOiEwfSl9c2V0VXBMb2NhdGlvbkNoYW5nZUxpc3RlbmVyKCl7dGhpcy5sb2NhdGlvblN1YnNjcmlwdGlvbnx8KHRoaXMubG9jYXRpb25TdWJzY3JpcHRp''@;'; + put 'put ''b249dGhpcy5sb2NhdGlvbi5zdWJzY3JpYmUoaD0+e2NvbnN0IHY9InBvcHN0YXRlIj09PWgudHlwZT8icG9wc3RhdGUiOiJoYXNoY2hhbmdlIjsicG9wc3RhdGUiPT09diYmc2V0VGltZW91dCgoKT0+e3ZhciB5O2NvbnN0IEM9e3JlcGxhY2VVcmw6ITB9LEk9bnVsbCE9PSh5PWguc3RhdGUp''@;'; + put 'put ''JiZ2b2lkIDAhPT15JiZ5Lm5hdmlnYXRpb25JZD9oLnN0YXRlOm51bGw7aWYoSSl7Y29uc3QgdWU9T2JqZWN0LmFzc2lnbih7fSxJKTtkZWxldGUgdWUubmF2aWdhdGlvbklkLGRlbGV0ZSB1ZS5cdTAyNzVyb3V0ZXJQYWdlSWQsMCE9PU9iamVjdC5rZXlzKHVlKS5sZW5ndGgmJihDLnN0YXRl''@;'; + put 'put ''PXVlKX1jb25zdCBqPXRoaXMucGFyc2VVcmwoaC51cmwpO3RoaXMuc2NoZWR1bGVOYXZpZ2F0aW9uKGosdixJLEMpfSwwKX0pKX1nZXQgdXJsKCl7cmV0dXJuIHRoaXMuc2VyaWFsaXplVXJsKHRoaXMuY3VycmVudFVybFRyZWUpfWdldEN1cnJlbnROYXZpZ2F0aW9uKCl7cmV0dXJuIHRoaXMu''@;'; + put 'put ''Y3VycmVudE5hdmlnYXRpb259dHJpZ2dlckV2ZW50KGgpe3RoaXMuZXZlbnRzLm5leHQoaCl9cmVzZXRDb25maWcoaCl7dGhpcy5jb25maWc9aC5tYXAoY0gpLHRoaXMubmF2aWdhdGVkPSExLHRoaXMubGFzdFN1Y2Nlc3NmdWxJZD0tMX1uZ09uRGVzdHJveSgpe3RoaXMuZGlzcG9zZSgpfWRp''@;'; + put 'put ''c3Bvc2UoKXt0aGlzLnRyYW5zaXRpb25zLmNvbXBsZXRlKCksdGhpcy5sb2NhdGlvblN1YnNjcmlwdGlvbiYmKHRoaXMubG9jYXRpb25TdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSx0aGlzLmxvY2F0aW9uU3Vic2NyaXB0aW9uPXZvaWQgMCksdGhpcy5kaXNwb3NlZD0hMH1jcmVhdGVVcmxU''@;'; + put 'put ''cmVlKGgsdj17fSl7Y29uc3R7cmVsYXRpdmVUbzp5LHF1ZXJ5UGFyYW1zOkMsZnJhZ21lbnQ6SSxxdWVyeVBhcmFtc0hhbmRsaW5nOmoscHJlc2VydmVGcmFnbWVudDp1ZX09dixfZT15fHx0aGlzLnJvdXRlclN0YXRlLnJvb3QsQmU9dWU/dGhpcy5jdXJyZW50VXJsVHJlZS5mcmFnbWVudDpJ''@;'; + put 'put ''O2xldCBOZT1udWxsO3N3aXRjaChqKXtjYXNlIm1lcmdlIjpOZT1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdGhpcy5jdXJyZW50VXJsVHJlZS5xdWVyeVBhcmFtcyksQyk7YnJlYWs7Y2FzZSJwcmVzZXJ2ZSI6TmU9dGhpcy5jdXJyZW50VXJsVHJlZS5xdWVyeVBhcmFtczticmVh''@;'; + put 'put ''aztkZWZhdWx0Ok5lPUN8fG51bGx9cmV0dXJuIG51bGwhPT1OZSYmKE5lPXRoaXMucmVtb3ZlRW1wdHlQcm9wcyhOZSkpLFMwZShfZSx0aGlzLmN1cnJlbnRVcmxUcmVlLGgsTmUsbnVsbCE9QmU/QmU6bnVsbCl9bmF2aWdhdGVCeVVybChoLHY9e3NraXBMb2NhdGlvbkNoYW5nZTohMX0pe2Nv''@;'; + put 'put ''bnN0IHk9ZzcoaCk/aDp0aGlzLnBhcnNlVXJsKGgpLEM9dGhpcy51cmxIYW5kbGluZ1N0cmF0ZWd5Lm1lcmdlKHksdGhpcy5yYXdVcmxUcmVlKTtyZXR1cm4gdGhpcy5zY2hlZHVsZU5hdmlnYXRpb24oQywiaW1wZXJhdGl2ZSIsbnVsbCx2KX1uYXZpZ2F0ZShoLHY9e3NraXBMb2NhdGlvbkNo''@;'; + put 'put ''YW5nZTohMX0pe3JldHVybiBmdW5jdGlvbiBnb2UoZCl7Zm9yKGxldCBnPTA7ZzxkLmxlbmd0aDtnKyspe2lmKG51bGw9PWRbZ10pdGhyb3cgbmV3IGVuKDQwMDgsZmFsc2UpfX0oaCksdGhpcy5uYXZpZ2F0ZUJ5VXJsKHRoaXMuY3JlYXRlVXJsVHJlZShoLHYpLHYpfXNlcmlhbGl6ZVVybCho''@;'; + put 'put ''KXtyZXR1cm4gdGhpcy51cmxTZXJpYWxpemVyLnNlcmlhbGl6ZShoKX1wYXJzZVVybChoKXtsZXQgdjt0cnl7dj10aGlzLnVybFNlcmlhbGl6ZXIucGFyc2UoaCl9Y2F0Y2goeSl7dj10aGlzLm1hbGZvcm1lZFVyaUVycm9ySGFuZGxlcih5LHRoaXMudXJsU2VyaWFsaXplcixoKX1yZXR1cm4g''@;'; + put 'put ''dn1pc0FjdGl2ZShoLHYpe2xldCB5O2lmKHk9ITA9PT12P09iamVjdC5hc3NpZ24oe30sZG9lKTohMT09PXY/T2JqZWN0LmFzc2lnbih7fSxPSSk6dixnNyhoKSlyZXR1cm4gQ1kodGhpcy5jdXJyZW50VXJsVHJlZSxoLHkpO2NvbnN0IEM9dGhpcy5wYXJzZVVybChoKTtyZXR1cm4gQ1kodGhp''@;'; + put 'put ''cy5jdXJyZW50VXJsVHJlZSxDLHkpfXJlbW92ZUVtcHR5UHJvcHMoaCl7cmV0dXJuIE9iamVjdC5rZXlzKGgpLnJlZHVjZSgodix5KT0+e2NvbnN0IEM9aFt5XTtyZXR1cm4gbnVsbCE9QyYmKHZbeV09Qyksdn0se30pfXByb2Nlc3NOYXZpZ2F0aW9ucygpe3RoaXMubmF2aWdhdGlvbnMuc3Vi''@;'; + put 'put ''c2NyaWJlKGg9Pnt2YXIgdjt0aGlzLm5hdmlnYXRlZD0hMCx0aGlzLmxhc3RTdWNjZXNzZnVsSWQ9aC5pZCx0aGlzLmN1cnJlbnRQYWdlSWQ9aC50YXJnZXRQYWdlSWQsdGhpcy5ldmVudHMubmV4dChuZXcgRzYoaC5pZCx0aGlzLnNlcmlhbGl6ZVVybChoLmV4dHJhY3RlZFVybCksdGhpcy5z''@;'; + put 'put ''ZXJpYWxpemVVcmwodGhpcy5jdXJyZW50VXJsVHJlZSkpKSx0aGlzLmxhc3RTdWNjZXNzZnVsTmF2aWdhdGlvbj10aGlzLmN1cnJlbnROYXZpZ2F0aW9uLG51bGw9PT0odj10aGlzLnRpdGxlU3RyYXRlZ3kpfHx2b2lkIDA9PT12fHx2LnVwZGF0ZVRpdGxlKHRoaXMucm91dGVyU3RhdGUuc25h''@;'; + put 'put ''cHNob3QpLGgucmVzb2x2ZSghMCl9LGg9Pnt0aGlzLmNvbnNvbGUud2FybihgVW5oYW5kbGVkIE5hdmlnYXRpb24gRXJyb3I6ICR7aH1gKX0pfXNjaGVkdWxlTmF2aWdhdGlvbihoLHYseSxDLEkpe3ZhciBqLHVlO2lmKHRoaXMuZGlzcG9zZWQpcmV0dXJuIFByb21pc2UucmVzb2x2ZSghMSk7''@;'; + put 'put ''bGV0IF9lLEJlLE5lO0k/KF9lPUkucmVzb2x2ZSxCZT1JLnJlamVjdCxOZT1JLnByb21pc2UpOk5lPW5ldyBQcm9taXNlKChPdCwkdCk9PntfZT1PdCxCZT0kdH0pO2NvbnN0IEtlPSsrdGhpcy5uYXZpZ2F0aW9uSWQ7bGV0IGR0O3JldHVybiJjb21wdXRlZCI9PT10aGlzLmNhbmNlbGVkTmF2''@;'; + put 'put ''aWdhdGlvblJlc29sdXRpb24/KDA9PT10aGlzLmN1cnJlbnRQYWdlSWQmJih5PXRoaXMubG9jYXRpb24uZ2V0U3RhdGUoKSksZHQ9eSYmeS5cdTAyNzVyb3V0ZXJQYWdlSWQ/eS5cdTAyNzVyb3V0ZXJQYWdlSWQ6Qy5yZXBsYWNlVXJsfHxDLnNraXBMb2NhdGlvbkNoYW5nZT9udWxsIT09KGo9''@;'; + put 'put ''dGhpcy5icm93c2VyUGFnZUlkKSYmdm9pZCAwIT09aj9qOjA6KG51bGwhPT0odWU9dGhpcy5icm93c2VyUGFnZUlkKSYmdm9pZCAwIT09dWU/dWU6MCkrMSk6ZHQ9MCx0aGlzLnNldFRyYW5zaXRpb24oe2lkOktlLHRhcmdldFBhZ2VJZDpkdCxzb3VyY2U6dixyZXN0b3JlZFN0YXRlOnksY3Vy''@;'; + put 'put ''cmVudFVybFRyZWU6dGhpcy5jdXJyZW50VXJsVHJlZSxjdXJyZW50UmF3VXJsOnRoaXMucmF3VXJsVHJlZSxyYXdVcmw6aCxleHRyYXM6QyxyZXNvbHZlOl9lLHJlamVjdDpCZSxwcm9taXNlOk5lLGN1cnJlbnRTbmFwc2hvdDp0aGlzLnJvdXRlclN0YXRlLnNuYXBzaG90LGN1cnJlbnRSb3V0''@;'; + put 'put ''ZXJTdGF0ZTp0aGlzLnJvdXRlclN0YXRlfSksTmUuY2F0Y2goT3Q9PlByb21pc2UucmVqZWN0KE90KSl9c2V0QnJvd3NlclVybChoLHYpe2NvbnN0IHk9dGhpcy51cmxTZXJpYWxpemVyLnNlcmlhbGl6ZShoKSxDPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx2LmV4dHJhcy5zdGF0''@;'; + put 'put ''ZSksdGhpcy5nZW5lcmF0ZU5nUm91dGVyU3RhdGUodi5pZCx2LnRhcmdldFBhZ2VJZCkpO3RoaXMubG9jYXRpb24uaXNDdXJyZW50UGF0aEVxdWFsVG8oeSl8fHYuZXh0cmFzLnJlcGxhY2VVcmw/dGhpcy5sb2NhdGlvbi5yZXBsYWNlU3RhdGUoeSwiIixDKTp0aGlzLmxvY2F0aW9uLmdvKHks''@;'; + put 'put ''IiIsQyl9cmVzdG9yZUhpc3RvcnkoaCx2PSExKXt2YXIgeSxDO2lmKCJjb21wdXRlZCI9PT10aGlzLmNhbmNlbGVkTmF2aWdhdGlvblJlc29sdXRpb24pe2NvbnN0IEk9dGhpcy5jdXJyZW50UGFnZUlkLWgudGFyZ2V0UGFnZUlkOyJwb3BzdGF0ZSIhPT1oLnNvdXJjZSYmImVhZ2VyIiE9PXRo''@;'; + put 'put ''aXMudXJsVXBkYXRlU3RyYXRlZ3kmJnRoaXMuY3VycmVudFVybFRyZWUhPT0obnVsbD09PSh5PXRoaXMuY3VycmVudE5hdmlnYXRpb24pfHx2b2lkIDA9PT15P3ZvaWQgMDp5LmZpbmFsVXJsKXx8MD09PUk/dGhpcy5jdXJyZW50VXJsVHJlZT09PShudWxsPT09KEM9dGhpcy5jdXJyZW50TmF2''@;'; + put 'put ''aWdhdGlvbil8fHZvaWQgMD09PUM/dm9pZCAwOkMuZmluYWxVcmwpJiYwPT09SSYmKHRoaXMucmVzZXRTdGF0ZShoKSx0aGlzLmJyb3dzZXJVcmxUcmVlPWguY3VycmVudFVybFRyZWUsdGhpcy5yZXNldFVybFRvQ3VycmVudFVybFRyZWUoKSk6dGhpcy5sb2NhdGlvbi5oaXN0b3J5R28oSSl9''@;'; + put 'put ''ZWxzZSJyZXBsYWNlIj09PXRoaXMuY2FuY2VsZWROYXZpZ2F0aW9uUmVzb2x1dGlvbiYmKHYmJnRoaXMucmVzZXRTdGF0ZShoKSx0aGlzLnJlc2V0VXJsVG9DdXJyZW50VXJsVHJlZSgpKX1yZXNldFN0YXRlKGgpe3RoaXMucm91dGVyU3RhdGU9aC5jdXJyZW50Um91dGVyU3RhdGUsdGhpcy5j''@;'; + put 'put ''dXJyZW50VXJsVHJlZT1oLmN1cnJlbnRVcmxUcmVlLHRoaXMucmF3VXJsVHJlZT10aGlzLnVybEhhbmRsaW5nU3RyYXRlZ3kubWVyZ2UodGhpcy5jdXJyZW50VXJsVHJlZSxoLnJhd1VybCl9cmVzZXRVcmxUb0N1cnJlbnRVcmxUcmVlKCl7dGhpcy5sb2NhdGlvbi5yZXBsYWNlU3RhdGUodGhp''@;'; + put 'put ''cy51cmxTZXJpYWxpemVyLnNlcmlhbGl6ZSh0aGlzLnJhd1VybFRyZWUpLCIiLHRoaXMuZ2VuZXJhdGVOZ1JvdXRlclN0YXRlKHRoaXMubGFzdFN1Y2Nlc3NmdWxJZCx0aGlzLmN1cnJlbnRQYWdlSWQpKX1jYW5jZWxOYXZpZ2F0aW9uVHJhbnNpdGlvbihoLHYseSl7Y29uc3QgQz1uZXcgdkko''@;'; + put 'put ''aC5pZCx0aGlzLnNlcmlhbGl6ZVVybChoLmV4dHJhY3RlZFVybCksdix5KTt0aGlzLnRyaWdnZXJFdmVudChDKSxoLnJlc29sdmUoITEpfWdlbmVyYXRlTmdSb3V0ZXJTdGF0ZShoLHYpe3JldHVybiJjb21wdXRlZCI9PT10aGlzLmNhbmNlbGVkTmF2aWdhdGlvblJlc29sdXRpb24/e25hdmln''@;'; + put 'put ''YXRpb25JZDpoLFx1MDI3NXJvdXRlclBhZ2VJZDp2fTp7bmF2aWdhdGlvbklkOmh9fX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7WDkoKX0sZC5cdTAyNzVwcm92PUFpKHt0b2tlbjpkLGZhY3Rvcnk6ZnVuY3Rpb24oKXtyZXR1cm4ga1UoKX0scHJvdmlkZWRJbjoicm9vdCJ9KSxk''@;'; + put 'put ''fSkoKTtmdW5jdGlvbiBNSChkKXtyZXR1cm4iaW1wZXJhdGl2ZSIhPT1kfWxldCBZNj0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgsdix5LEMsSSl7dGhpcy5yb3V0ZXI9aCx0aGlzLnJvdXRlPXYsdGhpcy50YWJJbmRleEF0dHJpYnV0ZT15LHRoaXMucmVuZGVyZXI9Qyx0aGlzLmVsPUks''@;'; + put 'put ''dGhpcy5jb21tYW5kcz1udWxsLHRoaXMub25DaGFuZ2VzPW5ldyAkZSx0aGlzLnNldFRhYkluZGV4SWZOb3RPbk5hdGl2ZUVsKCIwIil9c2V0VGFiSW5kZXhJZk5vdE9uTmF0aXZlRWwoaCl7aWYobnVsbCE9dGhpcy50YWJJbmRleEF0dHJpYnV0ZSlyZXR1cm47Y29uc3Qgdj10aGlzLnJlbmRl''@;'; + put 'put ''cmVyLHk9dGhpcy5lbC5uYXRpdmVFbGVtZW50O251bGwhPT1oP3Yuc2V0QXR0cmlidXRlKHksInRhYmluZGV4IixoKTp2LnJlbW92ZUF0dHJpYnV0ZSh5LCJ0YWJpbmRleCIpfW5nT25DaGFuZ2VzKGgpe3RoaXMub25DaGFuZ2VzLm5leHQodGhpcyl9c2V0IHJvdXRlckxpbmsoaCl7bnVsbCE9''@;'; + put 'put ''aD8odGhpcy5jb21tYW5kcz1BcnJheS5pc0FycmF5KGgpP2g6W2hdLHRoaXMuc2V0VGFiSW5kZXhJZk5vdE9uTmF0aXZlRWwoIjAiKSk6KHRoaXMuY29tbWFuZHM9bnVsbCx0aGlzLnNldFRhYkluZGV4SWZOb3RPbk5hdGl2ZUVsKG51bGwpKX1vbkNsaWNrKCl7aWYobnVsbD09PXRoaXMudXJs''@;'; + put 'put ''VHJlZSlyZXR1cm4hMDtjb25zdCBoPXtza2lwTG9jYXRpb25DaGFuZ2U6SDYodGhpcy5za2lwTG9jYXRpb25DaGFuZ2UpLHJlcGxhY2VVcmw6SDYodGhpcy5yZXBsYWNlVXJsKSxzdGF0ZTp0aGlzLnN0YXRlfTtyZXR1cm4gdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCh0aGlzLnVybFRyZWUs''@;'; + put 'put ''aCksITB9Z2V0IHVybFRyZWUoKXtyZXR1cm4gbnVsbD09PXRoaXMuY29tbWFuZHM/bnVsbDp0aGlzLnJvdXRlci5jcmVhdGVVcmxUcmVlKHRoaXMuY29tbWFuZHMse3JlbGF0aXZlVG86dm9pZCAwIT09dGhpcy5yZWxhdGl2ZVRvP3RoaXMucmVsYXRpdmVUbzp0aGlzLnJvdXRlLHF1ZXJ5UGFy''@;'; + put 'put ''YW1zOnRoaXMucXVlcnlQYXJhbXMsZnJhZ21lbnQ6dGhpcy5mcmFnbWVudCxxdWVyeVBhcmFtc0hhbmRsaW5nOnRoaXMucXVlcnlQYXJhbXNIYW5kbGluZyxwcmVzZXJ2ZUZyYWdtZW50Okg2KHRoaXMucHJlc2VydmVGcmFnbWVudCl9KX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgp''@;'; + put 'put ''e3JldHVybiBuZXcoaHx8ZCkoS3QoWmwpLEt0KFB1KSxnMygidGFiaW5kZXgiKSxLdChHYSksS3QoYm8pKX0sZC5cdTAyNzVkaXI9V2koe3R5cGU6ZCxzZWxlY3RvcnM6W1siIiwicm91dGVyTGluayIsIiIsNSwiYSIsNSwiYXJlYSJdXSxob3N0QmluZGluZ3M6ZnVuY3Rpb24oaCx2KXsxJmgm''@;'; + put 'put ''JkduKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gdi5vbkNsaWNrKCl9KX0saW5wdXRzOntxdWVyeVBhcmFtczoicXVlcnlQYXJhbXMiLGZyYWdtZW50OiJmcmFnbWVudCIscXVlcnlQYXJhbXNIYW5kbGluZzoicXVlcnlQYXJhbXNIYW5kbGluZyIscHJlc2VydmVGcmFnbWVudDoicHJlc2Vy''@;'; + put 'put ''dmVGcmFnbWVudCIsc2tpcExvY2F0aW9uQ2hhbmdlOiJza2lwTG9jYXRpb25DaGFuZ2UiLHJlcGxhY2VVcmw6InJlcGxhY2VVcmwiLHN0YXRlOiJzdGF0ZSIscmVsYXRpdmVUbzoicmVsYXRpdmVUbyIscm91dGVyTGluazoicm91dGVyTGluayJ9LGZlYXR1cmVzOltEMl19KSxkfSkoKSx2Nz0o''@;'; + put 'put ''KCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgsdix5KXt0aGlzLnJvdXRlcj1oLHRoaXMucm91dGU9dix0aGlzLmxvY2F0aW9uU3RyYXRlZ3k9eSx0aGlzLmNvbW1hbmRzPW51bGwsdGhpcy5ocmVmPW51bGwsdGhpcy5vbkNoYW5nZXM9bmV3ICRlLHRoaXMuc3Vic2NyaXB0aW9uPWguZXZlbnRz''@;'; + put 'put ''LnN1YnNjcmliZShDPT57QyBpbnN0YW5jZW9mIEc2JiZ0aGlzLnVwZGF0ZVRhcmdldFVybEFuZEhyZWYoKX0pfXNldCByb3V0ZXJMaW5rKGgpe3RoaXMuY29tbWFuZHM9bnVsbCE9aD9BcnJheS5pc0FycmF5KGgpP2g6W2hdOm51bGx9bmdPbkNoYW5nZXMoaCl7dGhpcy51cGRhdGVUYXJnZXRV''@;'; + put 'put ''cmxBbmRIcmVmKCksdGhpcy5vbkNoYW5nZXMubmV4dCh0aGlzKX1uZ09uRGVzdHJveSgpe3RoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCl9b25DbGljayhoLHYseSxDLEkpe2lmKDAhPT1ofHx2fHx5fHxDfHxJfHwic3RyaW5nIj09dHlwZW9mIHRoaXMudGFyZ2V0JiYiX3NlbGYiIT10''@;'; + put 'put ''aGlzLnRhcmdldHx8bnVsbD09PXRoaXMudXJsVHJlZSlyZXR1cm4hMDtjb25zdCBqPXtza2lwTG9jYXRpb25DaGFuZ2U6SDYodGhpcy5za2lwTG9jYXRpb25DaGFuZ2UpLHJlcGxhY2VVcmw6SDYodGhpcy5yZXBsYWNlVXJsKSxzdGF0ZTp0aGlzLnN0YXRlfTtyZXR1cm4gdGhpcy5yb3V0ZXIu''@;'; + put 'put ''bmF2aWdhdGVCeVVybCh0aGlzLnVybFRyZWUsaiksITF9dXBkYXRlVGFyZ2V0VXJsQW5kSHJlZigpe3RoaXMuaHJlZj1udWxsIT09dGhpcy51cmxUcmVlP3RoaXMubG9jYXRpb25TdHJhdGVneS5wcmVwYXJlRXh0ZXJuYWxVcmwodGhpcy5yb3V0ZXIuc2VyaWFsaXplVXJsKHRoaXMudXJsVHJl''@;'; + put 'put ''ZSkpOm51bGx9Z2V0IHVybFRyZWUoKXtyZXR1cm4gbnVsbD09PXRoaXMuY29tbWFuZHM/bnVsbDp0aGlzLnJvdXRlci5jcmVhdGVVcmxUcmVlKHRoaXMuY29tbWFuZHMse3JlbGF0aXZlVG86dm9pZCAwIT09dGhpcy5yZWxhdGl2ZVRvP3RoaXMucmVsYXRpdmVUbzp0aGlzLnJvdXRlLHF1ZXJ5''@;'; + put 'put ''UGFyYW1zOnRoaXMucXVlcnlQYXJhbXMsZnJhZ21lbnQ6dGhpcy5mcmFnbWVudCxxdWVyeVBhcmFtc0hhbmRsaW5nOnRoaXMucXVlcnlQYXJhbXNIYW5kbGluZyxwcmVzZXJ2ZUZyYWdtZW50Okg2KHRoaXMucHJlc2VydmVGcmFnbWVudCl9KX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9u''@;'; + put 'put ''KGgpe3JldHVybiBuZXcoaHx8ZCkoS3QoWmwpLEt0KFB1KSxLdChONikpfSxkLlx1MDI3NWRpcj1XaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJhIiwicm91dGVyTGluayIsIiJdLFsiYXJlYSIsInJvdXRlckxpbmsiLCIiXV0saG9zdFZhcnM6Mixob3N0QmluZGluZ3M6ZnVuY3Rpb24oaCx2KXsx''@;'; + put 'put ''JmgmJkduKCJjbGljayIsZnVuY3Rpb24oQyl7cmV0dXJuIHYub25DbGljayhDLmJ1dHRvbixDLmN0cmxLZXksQy5zaGlmdEtleSxDLmFsdEtleSxDLm1ldGFLZXkpfSksMiZoJiZHaSgidGFyZ2V0Iix2LnRhcmdldCkoImhyZWYiLHYuaHJlZix4OSl9LGlucHV0czp7dGFyZ2V0OiJ0YXJnZXQi''@;'; + put 'put ''LHF1ZXJ5UGFyYW1zOiJxdWVyeVBhcmFtcyIsZnJhZ21lbnQ6ImZyYWdtZW50IixxdWVyeVBhcmFtc0hhbmRsaW5nOiJxdWVyeVBhcmFtc0hhbmRsaW5nIixwcmVzZXJ2ZUZyYWdtZW50OiJwcmVzZXJ2ZUZyYWdtZW50Iixza2lwTG9jYXRpb25DaGFuZ2U6InNraXBMb2NhdGlvbkNoYW5nZSIs''@;'; + put 'put ''cmVwbGFjZVVybDoicmVwbGFjZVVybCIsc3RhdGU6InN0YXRlIixyZWxhdGl2ZVRvOiJyZWxhdGl2ZVRvIixyb3V0ZXJMaW5rOiJyb3V0ZXJMaW5rIn0sZmVhdHVyZXM6W0QyXX0pLGR9KSgpLGxrPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2LHksQyxJLGope3RoaXMucm91dGVyPWgs''@;'; + put 'put ''dGhpcy5lbGVtZW50PXYsdGhpcy5yZW5kZXJlcj15LHRoaXMuY2RyPUMsdGhpcy5saW5rPUksdGhpcy5saW5rV2l0aEhyZWY9aix0aGlzLmNsYXNzZXM9W10sdGhpcy5pc0FjdGl2ZT0hMSx0aGlzLnJvdXRlckxpbmtBY3RpdmVPcHRpb25zPXtleGFjdDohMX0sdGhpcy5pc0FjdGl2ZUNoYW5n''@;'; + put 'put ''ZT1uZXcgYXIsdGhpcy5yb3V0ZXJFdmVudHNTdWJzY3JpcHRpb249aC5ldmVudHMuc3Vic2NyaWJlKHVlPT57dWUgaW5zdGFuY2VvZiBHNiYmdGhpcy51cGRhdGUoKX0pfW5nQWZ0ZXJDb250ZW50SW5pdCgpe2FhKHRoaXMubGlua3MuY2hhbmdlcyx0aGlzLmxpbmtzV2l0aEhyZWZzLmNoYW5n''@;'; + put 'put ''ZXMsYWEobnVsbCkpLnBpcGUocXQoKSkuc3Vic2NyaWJlKGg9Pnt0aGlzLnVwZGF0ZSgpLHRoaXMuc3Vic2NyaWJlVG9FYWNoTGlua09uQ2hhbmdlcygpfSl9c3Vic2NyaWJlVG9FYWNoTGlua09uQ2hhbmdlcygpe3ZhciBoO251bGw9PT0oaD10aGlzLmxpbmtJbnB1dENoYW5nZXNTdWJzY3Jp''@;'; + put 'put ''cHRpb24pfHx2b2lkIDA9PT1ofHxoLnVuc3Vic2NyaWJlKCk7Y29uc3Qgdj1bLi4udGhpcy5saW5rcy50b0FycmF5KCksLi4udGhpcy5saW5rc1dpdGhIcmVmcy50b0FycmF5KCksdGhpcy5saW5rLHRoaXMubGlua1dpdGhIcmVmXS5maWx0ZXIoeT0+ISF5KS5tYXAoeT0+eS5vbkNoYW5nZXMp''@;'; + put 'put ''O3RoaXMubGlua0lucHV0Q2hhbmdlc1N1YnNjcmlwdGlvbj1kbih2KS5waXBlKHF0KCkpLnN1YnNjcmliZSh5PT57dGhpcy5pc0FjdGl2ZSE9PXRoaXMuaXNMaW5rQWN0aXZlKHRoaXMucm91dGVyKSh5KSYmdGhpcy51cGRhdGUoKX0pfXNldCByb3V0ZXJMaW5rQWN0aXZlKGgpe2NvbnN0IHY9''@;'; + put 'put ''QXJyYXkuaXNBcnJheShoKT9oOmguc3BsaXQoIiAiKTt0aGlzLmNsYXNzZXM9di5maWx0ZXIoeT0+ISF5KX1uZ09uQ2hhbmdlcyhoKXt0aGlzLnVwZGF0ZSgpfW5nT25EZXN0cm95KCl7dmFyIGg7dGhpcy5yb3V0ZXJFdmVudHNTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSxudWxsPT09KGg9''@;'; + put 'put ''dGhpcy5saW5rSW5wdXRDaGFuZ2VzU3Vic2NyaXB0aW9uKXx8dm9pZCAwPT09aHx8aC51bnN1YnNjcmliZSgpfXVwZGF0ZSgpeyF0aGlzLmxpbmtzfHwhdGhpcy5saW5rc1dpdGhIcmVmc3x8IXRoaXMucm91dGVyLm5hdmlnYXRlZHx8UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+e2NvbnN0''@;'; + put 'put ''IGg9dGhpcy5oYXNBY3RpdmVMaW5rcygpO3RoaXMuaXNBY3RpdmUhPT1oJiYodGhpcy5pc0FjdGl2ZT1oLHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpLHRoaXMuY2xhc3Nlcy5mb3JFYWNoKHY9PntoP3RoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsdik6''@;'; + put 'put ''dGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCx2KX0pLGgmJnZvaWQgMCE9PXRoaXMuYXJpYUN1cnJlbnRXaGVuQWN0aXZlP3RoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LCJhcmlhLWN1cnJlbnQi''@;'; + put 'put ''LHRoaXMuYXJpYUN1cnJlbnRXaGVuQWN0aXZlLnRvU3RyaW5nKCkpOnRoaXMucmVuZGVyZXIucmVtb3ZlQXR0cmlidXRlKHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LCJhcmlhLWN1cnJlbnQiKSx0aGlzLmlzQWN0aXZlQ2hhbmdlLmVtaXQoaCkpfSl9aXNMaW5rQWN0aXZlKGgpe2NvbnN0''@;'; + put 'put ''IHY9ZnVuY3Rpb24gU1UoZCl7cmV0dXJuISFkLnBhdGhzfSh0aGlzLnJvdXRlckxpbmtBY3RpdmVPcHRpb25zKT90aGlzLnJvdXRlckxpbmtBY3RpdmVPcHRpb25zOnRoaXMucm91dGVyTGlua0FjdGl2ZU9wdGlvbnMuZXhhY3R8fCExO3JldHVybiB5PT4hIXkudXJsVHJlZSYmaC5pc0FjdGl2''@;'; + put 'put ''ZSh5LnVybFRyZWUsdil9aGFzQWN0aXZlTGlua3MoKXtjb25zdCBoPXRoaXMuaXNMaW5rQWN0aXZlKHRoaXMucm91dGVyKTtyZXR1cm4gdGhpcy5saW5rJiZoKHRoaXMubGluayl8fHRoaXMubGlua1dpdGhIcmVmJiZoKHRoaXMubGlua1dpdGhIcmVmKXx8dGhpcy5saW5rcy5zb21lKGgpfHx0''@;'; + put 'put ''aGlzLmxpbmtzV2l0aEhyZWZzLnNvbWUoaCl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKEt0KFpsKSxLdChibyksS3QoR2EpLEt0KGQxKSxLdChZNiw4KSxLdCh2Nyw4KSl9LGQuXHUwMjc1ZGlyPVdpKHt0eXBlOmQsc2VsZWN0b3JzOltbIiIsInJv''@;'; + put 'put ''dXRlckxpbmtBY3RpdmUiLCIiXV0sY29udGVudFF1ZXJpZXM6ZnVuY3Rpb24oaCx2LHkpe2lmKDEmaCYmKHhvKHksWTYsNSkseG8oeSx2Nyw1KSksMiZoKXtsZXQgQztIaShDPSRpKCkpJiYodi5saW5rcz1DKSxIaShDPSRpKCkpJiYodi5saW5rc1dpdGhIcmVmcz1DKX19LGlucHV0czp7cm91''@;'; + put 'put ''dGVyTGlua0FjdGl2ZU9wdGlvbnM6InJvdXRlckxpbmtBY3RpdmVPcHRpb25zIixhcmlhQ3VycmVudFdoZW5BY3RpdmU6ImFyaWFDdXJyZW50V2hlbkFjdGl2ZSIscm91dGVyTGlua0FjdGl2ZToicm91dGVyTGlua0FjdGl2ZSJ9LG91dHB1dHM6e2lzQWN0aXZlQ2hhbmdlOiJpc0FjdGl2ZUNo''@;'; + put 'put ''YW5nZSJ9LGV4cG9ydEFzOlsicm91dGVyTGlua0FjdGl2ZSJdLGZlYXR1cmVzOltEMl19KSxkfSkoKTtjbGFzcyBNVXt9bGV0IEVIPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2LHksQyxJKXt0aGlzLnJvdXRlcj1oLHRoaXMuaW5qZWN0b3I9eSx0aGlzLnByZWxvYWRpbmdTdHJhdGVn''@;'; + put 'put ''eT1DLHRoaXMubG9hZGVyPUl9c2V0VXBQcmVsb2FkaW5nKCl7dGhpcy5zdWJzY3JpcHRpb249dGhpcy5yb3V0ZXIuZXZlbnRzLnBpcGUoTzIoaD0+aCBpbnN0YW5jZW9mIEc2KSxWNSgoKT0+dGhpcy5wcmVsb2FkKCkpKS5zdWJzY3JpYmUoKCk9Pnt9KX1wcmVsb2FkKCl7cmV0dXJuIHRoaXMu''@;'; + put 'put ''cHJvY2Vzc1JvdXRlcyh0aGlzLmluamVjdG9yLHRoaXMucm91dGVyLmNvbmZpZyl9bmdPbkRlc3Ryb3koKXt0aGlzLnN1YnNjcmlwdGlvbiYmdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKX1wcm9jZXNzUm91dGVzKGgsdil7dmFyIHksQyxJO2NvbnN0IGo9W107Zm9yKGNvbnN0IHVl''@;'; + put 'put ''IG9mIHYpe3VlLnByb3ZpZGVycyYmIXVlLl9pbmplY3RvciYmKHVlLl9pbmplY3Rvcj10Nyh1ZS5wcm92aWRlcnMsaCxgUm91dGU6ICR7dWUucGF0aH1gKSk7Y29uc3QgX2U9bnVsbCE9PSh5PXVlLl9pbmplY3RvcikmJnZvaWQgMCE9PXk/eTpoLEJlPW51bGwhPT0oQz11ZS5fbG9hZGVkSW5q''@;'; + put 'put ''ZWN0b3IpJiZ2b2lkIDAhPT1DP0M6X2U7dWUubG9hZENoaWxkcmVuJiYhdWUuX2xvYWRlZFJvdXRlcyYmdm9pZCAwPT09dWUuY2FuTG9hZHx8dWUubG9hZENvbXBvbmVudCYmIXVlLl9sb2FkZWRDb21wb25lbnQ/ai5wdXNoKHRoaXMucHJlbG9hZENvbmZpZyhfZSx1ZSkpOih1ZS5jaGlsZHJl''@;'; + put 'put ''bnx8dWUuX2xvYWRlZFJvdXRlcykmJmoucHVzaCh0aGlzLnByb2Nlc3NSb3V0ZXMoQmUsbnVsbCE9PShJPXVlLmNoaWxkcmVuKSYmdm9pZCAwIT09ST9JOnVlLl9sb2FkZWRSb3V0ZXMpKX1yZXR1cm4gZG4oaikucGlwZShxdCgpKX1wcmVsb2FkQ29uZmlnKGgsdil7cmV0dXJuIHRoaXMucHJl''@;'; + put 'put ''bG9hZGluZ1N0cmF0ZWd5LnByZWxvYWQodiwoKT0+e2xldCB5O3k9di5sb2FkQ2hpbGRyZW4mJnZvaWQgMD09PXYuY2FuTG9hZD90aGlzLmxvYWRlci5sb2FkQ2hpbGRyZW4oaCx2KTphYShudWxsKTtjb25zdCBDPXkucGlwZShzcihJPT57dmFyIGo7cmV0dXJuIG51bGw9PT1JP2FhKHZvaWQg''@;'; + put 'put ''MCk6KHYuX2xvYWRlZFJvdXRlcz1JLnJvdXRlcyx2Ll9sb2FkZWRJbmplY3Rvcj1JLmluamVjdG9yLHRoaXMucHJvY2Vzc1JvdXRlcyhudWxsIT09KGo9SS5pbmplY3RvcikmJnZvaWQgMCE9PWo/ajpoLEkucm91dGVzKSl9KSk7cmV0dXJuIHYubG9hZENvbXBvbmVudCYmIXYuX2xvYWRlZENv''@;'; + put 'put ''bXBvbmVudD9kbihbQyx0aGlzLmxvYWRlci5sb2FkQ29tcG9uZW50KHYpXSkucGlwZShxdCgpKTpDfSl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKENpKFpsKSxDaShiVCksQ2koRTMpLENpKE1VKSxDaShTSCkpfSxkLlx1MDI3NXByb3Y9QWkoe3Rv''@;'; + put 'put ''a2VuOmQsZmFjdG9yeTpkLlx1MDI3NWZhY30pLGR9KSgpO2NvbnN0IEVVPW5ldyB6ZSgiIik7bGV0IG1vZT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgsdix5PXt9KXt0aGlzLnJvdXRlcj1oLHRoaXMudmlld3BvcnRTY3JvbGxlcj12LHRoaXMub3B0aW9ucz15LHRoaXMubGFzdElkPTAs''@;'; + put 'put ''dGhpcy5sYXN0U291cmNlPSJpbXBlcmF0aXZlIix0aGlzLnJlc3RvcmVkSWQ9MCx0aGlzLnN0b3JlPXt9LHkuc2Nyb2xsUG9zaXRpb25SZXN0b3JhdGlvbj15LnNjcm9sbFBvc2l0aW9uUmVzdG9yYXRpb258fCJkaXNhYmxlZCIseS5hbmNob3JTY3JvbGxpbmc9eS5hbmNob3JTY3JvbGxpbmd8''@;'; + put 'put ''fCJkaXNhYmxlZCJ9aW5pdCgpeyJkaXNhYmxlZCIhPT10aGlzLm9wdGlvbnMuc2Nyb2xsUG9zaXRpb25SZXN0b3JhdGlvbiYmdGhpcy52aWV3cG9ydFNjcm9sbGVyLnNldEhpc3RvcnlTY3JvbGxSZXN0b3JhdGlvbigibWFudWFsIiksdGhpcy5yb3V0ZXJFdmVudHNTdWJzY3JpcHRpb249dGhp''@;'; + put 'put ''cy5jcmVhdGVTY3JvbGxFdmVudHMoKSx0aGlzLnNjcm9sbEV2ZW50c1N1YnNjcmlwdGlvbj10aGlzLmNvbnN1bWVTY3JvbGxFdmVudHMoKX1jcmVhdGVTY3JvbGxFdmVudHMoKXtyZXR1cm4gdGhpcy5yb3V0ZXIuZXZlbnRzLnN1YnNjcmliZShoPT57aCBpbnN0YW5jZW9mIG1JPyh0aGlzLnN0''@;'; + put 'put ''b3JlW3RoaXMubGFzdElkXT10aGlzLnZpZXdwb3J0U2Nyb2xsZXIuZ2V0U2Nyb2xsUG9zaXRpb24oKSx0aGlzLmxhc3RTb3VyY2U9aC5uYXZpZ2F0aW9uVHJpZ2dlcix0aGlzLnJlc3RvcmVkSWQ9aC5yZXN0b3JlZFN0YXRlP2gucmVzdG9yZWRTdGF0ZS5uYXZpZ2F0aW9uSWQ6MCk6aCBpbnN0''@;'; + put 'put ''YW5jZW9mIEc2JiYodGhpcy5sYXN0SWQ9aC5pZCx0aGlzLnNjaGVkdWxlU2Nyb2xsRXZlbnQoaCx0aGlzLnJvdXRlci5wYXJzZVVybChoLnVybEFmdGVyUmVkaXJlY3RzKS5mcmFnbWVudCkpfSl9Y29uc3VtZVNjcm9sbEV2ZW50cygpe3JldHVybiB0aGlzLnJvdXRlci5ldmVudHMuc3Vic2Ny''@;'; + put 'put ''aWJlKGg9PntoIGluc3RhbmNlb2YgQUkmJihoLnBvc2l0aW9uPyJ0b3AiPT09dGhpcy5vcHRpb25zLnNjcm9sbFBvc2l0aW9uUmVzdG9yYXRpb24/dGhpcy52aWV3cG9ydFNjcm9sbGVyLnNjcm9sbFRvUG9zaXRpb24oWzAsMF0pOiJlbmFibGVkIj09PXRoaXMub3B0aW9ucy5zY3JvbGxQb3Np''@;'; + put 'put ''dGlvblJlc3RvcmF0aW9uJiZ0aGlzLnZpZXdwb3J0U2Nyb2xsZXIuc2Nyb2xsVG9Qb3NpdGlvbihoLnBvc2l0aW9uKTpoLmFuY2hvciYmImVuYWJsZWQiPT09dGhpcy5vcHRpb25zLmFuY2hvclNjcm9sbGluZz90aGlzLnZpZXdwb3J0U2Nyb2xsZXIuc2Nyb2xsVG9BbmNob3IoaC5hbmNob3Ip''@;'; + put 'put ''OiJkaXNhYmxlZCIhPT10aGlzLm9wdGlvbnMuc2Nyb2xsUG9zaXRpb25SZXN0b3JhdGlvbiYmdGhpcy52aWV3cG9ydFNjcm9sbGVyLnNjcm9sbFRvUG9zaXRpb24oWzAsMF0pKX0pfXNjaGVkdWxlU2Nyb2xsRXZlbnQoaCx2KXt0aGlzLnJvdXRlci50cmlnZ2VyRXZlbnQobmV3IEFJKGgsInBv''@;'; + put 'put ''cHN0YXRlIj09PXRoaXMubGFzdFNvdXJjZT90aGlzLnN0b3JlW3RoaXMucmVzdG9yZWRJZF06bnVsbCx2KSl9bmdPbkRlc3Ryb3koKXt0aGlzLnJvdXRlckV2ZW50c1N1YnNjcmlwdGlvbiYmdGhpcy5yb3V0ZXJFdmVudHNTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSx0aGlzLnNjcm9sbEV2''@;'; + put 'put ''ZW50c1N1YnNjcmlwdGlvbiYmdGhpcy5zY3JvbGxFdmVudHNTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe1g5KCl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1ZmFjfSksZH0pKCk7Y29uc3QgeFU9bmV3''@;'; + put 'put ''IHplKCJST1VURVJfRk9SUk9PVF9HVUFSRCIpLFRVPW5ldyB6ZSgiIiksSVU9W1Y2LHtwcm92aWRlOlU1LHVzZUNsYXNzOlFGfSx7cHJvdmlkZTpabCx1c2VGYWN0b3J5OmtVfSxlayx7cHJvdmlkZTpQdSx1c2VGYWN0b3J5OmZ1bmN0aW9uIGR5KGQpe3JldHVybiBkLnJvdXRlclN0YXRlLnJv''@;'; + put 'put ''b3R9LGRlcHM6W1psXX0sU0hdO2Z1bmN0aW9uIFJJKCl7cmV0dXJuIG5ldyBORygiUm91dGVyIixabCl9bGV0IFhoPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCl7fXN0YXRpYyBmb3JSb290KGgsdil7cmV0dXJue25nTW9kdWxlOmQscHJvdmlkZXJzOltJVSxbXSxMVShoKSx7cHJvdmlk''@;'; + put 'put ''ZTp4VSx1c2VGYWN0b3J5OkFvZSxkZXBzOltbWmwsbmV3IG1mLG5ldyBMNF1dfSx7cHJvdmlkZTpDSCx1c2VWYWx1ZTp2fHx7fX0sbnVsbCE9diYmdi51c2VIYXNoP3twcm92aWRlOk42LHVzZUNsYXNzOkJyZX06e3Byb3ZpZGU6TjYsdXNlQ2xhc3M6dVd9LHtwcm92aWRlOkVVLHVzZUZhY3Rv''@;'; + put 'put ''cnk6KCk9Pntjb25zdCBkPWgyKFpsKSxnPWgyKGNpZSksaD1oMihDSCk7cmV0dXJuIGguc2Nyb2xsT2Zmc2V0JiZnLnNldE9mZnNldChoLnNjcm9sbE9mZnNldCksbmV3IG1vZShkLGcsaCl9fSxudWxsIT12JiZ2LnByZWxvYWRpbmdTdHJhdGVneT9OVSh2LnByZWxvYWRpbmdTdHJhdGVneSk6''@;'; + put 'put ''W10se3Byb3ZpZGU6TkcsbXVsdGk6ITAsdXNlRmFjdG9yeTpSSX0sbnVsbCE9diYmdi5pbml0aWFsTmF2aWdhdGlvbj9SVSh2KTpbXSxbe3Byb3ZpZGU6T1UsdXNlRmFjdG9yeTpGSX0se3Byb3ZpZGU6RjYsbXVsdGk6ITAsdXNlRXhpc3Rpbmc6T1V9XV19fXN0YXRpYyBmb3JDaGlsZChoKXty''@;'; + put 'put ''ZXR1cm57bmdNb2R1bGU6ZCxwcm92aWRlcnM6W0xVKGgpXX19fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKENpKHhVLDgpKX0sZC5cdTAyNzVtb2Q9Y28oe3R5cGU6ZH0pLGQuXHUwMjc1aW5qPWIwKHt9KSxkfSkoKTtmdW5jdGlvbiBBb2UoZCl7cmV0''@;'; + put 'put ''dXJuImd1YXJkZWQifWZ1bmN0aW9uIExVKGQpe3JldHVyblt7cHJvdmlkZTpMSSxtdWx0aTohMCx1c2VWYWx1ZTpkfV19ZnVuY3Rpb24gRkkoKXtjb25zdCBkPWgyKGtzKTtyZXR1cm4gZz0+e3ZhciBoLHY7Y29uc3QgeT1kLmdldChrQyk7aWYoZyE9PXkuY29tcG9uZW50c1swXSlyZXR1cm47''@;'; + put 'put ''Y29uc3QgQz1kLmdldChabCksST1kLmdldChCVSk7MT09PWQuZ2V0KHhIKSYmQy5pbml0aWFsTmF2aWdhdGlvbigpLG51bGw9PT0oaD1kLmdldChUVSxudWxsLGowLk9wdGlvbmFsKSl8fHZvaWQgMD09PWh8fGguc2V0VXBQcmVsb2FkaW5nKCksbnVsbD09PSh2PWQuZ2V0KEVVLG51bGwsajAu''@;'; + put 'put ''T3B0aW9uYWwpKXx8dm9pZCAwPT09dnx8di5pbml0KCksQy5yZXNldFJvb3RDb21wb25lbnRUeXBlKHkuY29tcG9uZW50VHlwZXNbMF0pLEkubmV4dCgpLEkuY29tcGxldGUoKX19Y29uc3QgT1U9bmV3IHplKCIiKTtmdW5jdGlvbiBSVShkKXtyZXR1cm5bImRpc2FibGVkIj09PWQuaW5pdGlh''@;'; + put 'put ''bE5hdmlnYXRpb24/W3twcm92aWRlOnlDLG11bHRpOiEwLHVzZUZhY3Rvcnk6KCk9Pntjb25zdCBkPWgyKFpsKTtyZXR1cm4oKT0+e2Quc2V0VXBMb2NhdGlvbkNoYW5nZUxpc3RlbmVyKCl9fX0se3Byb3ZpZGU6eEgsdXNlVmFsdWU6Mn1dOltdLCJlbmFibGVkQmxvY2tpbmciPT09ZC5pbml0''@;'; + put 'put ''aWFsTmF2aWdhdGlvbj9be3Byb3ZpZGU6eEgsdXNlVmFsdWU6MH0se3Byb3ZpZGU6eUMsbXVsdGk6ITAsZGVwczpba3NdLHVzZUZhY3Rvcnk6ZD0+e2NvbnN0IGc9ZC5nZXQoUnJlLFByb21pc2UucmVzb2x2ZShudWxsKSk7bGV0IGg9ITE7cmV0dXJuKCk9PmcudGhlbigoKT0+bmV3IFByb21p''@;'; + put 'put ''c2UoeT0+e2NvbnN0IEM9ZC5nZXQoWmwpLEk9ZC5nZXQoQlUpOyhmdW5jdGlvbiB2KHkpe2QuZ2V0KFpsKS5ldmVudHMucGlwZShPMihJPT5JIGluc3RhbmNlb2YgRzZ8fEkgaW5zdGFuY2VvZiB2SXx8SSBpbnN0YW5jZW9mIG5IKSxtdChJPT5JIGluc3RhbmNlb2YgRzZ8fEkgaW5zdGFuY2Vv''@;'; + put 'put ''ZiB2SSYmKDA9PT1JLmNvZGV8fDE9PT1JLmNvZGUpJiZudWxsKSxPMihJPT5udWxsIT09SSksSDUoMSkpLnN1YnNjcmliZSgoKT0+e3koKX0pfSkoKCk9Pnt5KCEwKSxoPSEwfSksQy5hZnRlclByZWFjdGl2YXRpb249KCk9Pih5KCEwKSxofHxJLmNsb3NlZD9hYSh2b2lkIDApOkkpLEMuaW5p''@;'; + put 'put ''dGlhbE5hdmlnYXRpb24oKX0pKX19XTpbXV19Y29uc3QgQlU9bmV3IHplKCIiLHtmYWN0b3J5OigpPT5uZXcgJGV9KSx4SD1uZXcgemUoIiIse3Byb3ZpZGVkSW46InJvb3QiLGZhY3Rvcnk6KCk9PjF9KTtmdW5jdGlvbiBOVShkKXtyZXR1cm5bRUgse3Byb3ZpZGU6VFUsdXNlRXhpc3Rpbmc6''@;'; + put 'put ''RUh9LHtwcm92aWRlOk1VLHVzZUV4aXN0aW5nOmR9XX12YXIgVlU9TCg0MDM5MCksd29lPUwoMjQ4NzkpO2NvbnN0IGpVPXtleHBpcmF0aW9uX2RhdGVfdW5saW1pdGVkOiEwLHVzZXJzX2FsbG93ZWQ6NSxyb3dzX2FsbG93ZWQ6MTUsZGlzYWJsZWRGaWxlVXBsb2FkOiEwLGRpc2FibGVkRWRp''@;'; + put 'put ''dFJlY29yZDohMH0sYm9lPXt1c2Vyc19hbGxvd2VkOjF9O2xldCBzaz0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKCl7fXNldERjQWRhcHRlclNldHRpbmdzKGgpe3RoaXMuZGNBZGFwdGVyU2V0dGluZ3M9aH1nZXREY0FkYXB0ZXJTZXR0aW5ncygpe3JldHVybiB0aGlzLmRjQWRhcHRlclNl''@;'; + put 'put ''dHRpbmdzfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVwcm92PUFpKHt0b2tlbjpkLGZhY3Rvcnk6ZC5cdTAyNzVmYWMscHJvdmlkZWRJbjoicm9vdCJ9KSxkfSkoKTtjbGFzcyBaVXtjb25zdHJ1Y3Rvcigpe3RoaXMuc2FzU2Vydmlj''@;'; + put 'put ''ZT1udWxsLHRoaXMubWVzc2FnZT0iIix0aGlzLmRldGFpbHM9bmV3IElIfX1jbGFzcyBJSHt9bGV0IERIPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoKXt0aGlzLmFsZXJ0cz1uZXcgJGV9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1MDI3''@;'; + put 'put ''NXByb3Y9QWkoe3Rva2VuOmQsZmFjdG9yeTpkLlx1MDI3NWZhY30pLGR9KSgpLG11PSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCl7dGhpcy5hbGVydHNTZXJ2aWNlPWgsdGhpcy5vblNpZGViYXJUb2dnbGU9bmV3IGFyLHRoaXMub25TdGFydHVwRGF0YUxvYWRlZD1uZXcgYXIsdGhpcy5v''@;'; + put 'put ''blNob3dBYm9ydE1vZGFsPW5ldyBhcix0aGlzLm9uUmVxdWVzdHNNb2RhbE9wZW49bmV3IGFyLHRoaXMub25EZW1vTGltaXRNb2RhbFNob3c9bmV3IGFyLHRoaXMudmlld0xhc3RVcmw9bnVsbCx0aGlzLnNpZGViYXJDbG9zZUxpbWl0PTEyODB9c2hvd0RlbW9MaW1pdE1vZGFsKCl7dGhpcy5v''@;'; + put 'put ''bkRlbW9MaW1pdE1vZGFsU2hvdy5lbWl0KCl9c2hvd0luZm9Nb2RhbChoPSJJbmZvIix2KXt0aGlzLm9uU2hvd0Fib3J0TW9kYWwuZW1pdCh7bW9kYWxUaXRsZTpoLG1lc3NhZ2U6dixzYXNTZXJ2aWNlOiIiLGRldGFpbHM6bnVsbH0pfXNob3dBYm9ydE1vZGFsKGgsdix5LEMpe2xldCBJPXtz''@;'; + put 'put ''YXNTZXJ2aWNlOmgsbWVzc2FnZTp2LGRldGFpbHM6eT1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sbmV3IElIKSx5KX07QyYmKEkubW9kYWxUaXRsZT1DKSx0aGlzLm9uU2hvd0Fib3J0TW9kYWwuZW1pdChJKX1vcGVuUmVxdWVzdHNNb2RhbCgpe3RoaXMub25SZXF1ZXN0c01vZGFs''@;'; + put 'put ''T3Blbi5lbWl0KCEwKX1jYXRjaFJlc3BvbnNlRXJyb3IoaCx2KXtsZXQgeT0iU0FTIFNlcnZpY2UgZXJyb3Igb2N1cnJlZCI7aWYodi5lcnJvcil7bGV0IEM7eT12LmVycm9yLm1lc3NhZ2Usdi5lcnJvci5kZXRhaWxzJiZ2LmVycm9yLmRldGFpbHMubG9nJiYoQz12LmVycm9yLmRldGFpbHMu''@;'; + put 'put ''bG9nKSwoIXl8fHkudHJpbSgpLmxlbmd0aDwxKSYmKHk9IlNBUyBTZXJ2aWNlIGVycm9yIG9jdXJyZWQiKSx0aGlzLnNob3dBYm9ydE1vZGFsKGgseSx7TE9HOkN9LCJSZXF1ZXN0IGVycm9yIil9ZWxzZSB0aGlzLnNob3dBYm9ydE1vZGFsKGgseSl9dG9nZ2xlU2lkZWJhcigpe3RoaXMub25T''@;'; + put 'put ''aWRlYmFyVG9nZ2xlLmVtaXQoKX1jbG9zZVNpZGViYXIoKXt3aW5kb3cuaW5uZXJXaWR0aDx0aGlzLnNpZGViYXJDbG9zZUxpbWl0JiZ0aGlzLm9uU2lkZWJhclRvZ2dsZS5lbWl0KHtvcGVuOiExfSl9b3BlblNpZGViYXIoKXt0aGlzLm9uU2lkZWJhclRvZ2dsZS5lbWl0KHtvcGVuOiEwfSl9''@;'; + put 'put ''c3RhcnR1cERhdGFMb2FkZWQoKXt0aGlzLm9uU3RhcnR1cERhdGFMb2FkZWQuZW1pdCgpfWRpc3BhdGNoRXZlbnQoaCl7bGV0IHY7ImZ1bmN0aW9uIj09dHlwZW9mIEV2ZW50P3Y9bmV3IEV2ZW50KGgpOih2PWRvY3VtZW50LmNyZWF0ZUV2ZW50KCJFdmVudCIpLHYuaW5pdEV2ZW50KGgsITAs''@;'; + put 'put ''ITApKSx3aW5kb3cuZGlzcGF0Y2hFdmVudCh2KX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoQ2koREgpKX0sZC5cdTAyNzVwcm92PUFpKHt0b2tlbjpkLGZhY3Rvcnk6ZC5cdTAyNzVmYWMscHJvdmlkZWRJbjoicm9vdCJ9KSxkfSkoKTt2YXIgUTM9''@;'; + put 'put ''TCgxMTQwKSx6VT1MLm4oUTMpLEh1PUwoMjU4NTkpO2xldCBMSD0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKCl7dGhpcy51c2VyQ2hhbmdlPW5ldyAkZX1zZXQgdXNlcihoKXt0aGlzLl91c2VyPWgsdGhpcy51c2VyQ2hhbmdlLm5leHQoaCl9Z2V0IHVzZXIoKXtyZXR1cm4gdGhpcy5fdXNl''@;'; + put 'put ''cn19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1ZmFjfSksZH0pKCk7Y2xhc3MgR1V7fWNsYXNzIFdVe31jbGFzcyBocHtjb25zdHJ1Y3RvcihnKXt0aGlzLm5vcm1hbGl6ZWRO''@;'; + put 'put ''YW1lcz1uZXcgTWFwLHRoaXMubGF6eVVwZGF0ZT1udWxsLGc/dGhpcy5sYXp5SW5pdD0ic3RyaW5nIj09dHlwZW9mIGc/KCk9Pnt0aGlzLmhlYWRlcnM9bmV3IE1hcCxnLnNwbGl0KCJcbiIpLmZvckVhY2goaD0+e2NvbnN0IHY9aC5pbmRleE9mKCI6Iik7aWYodj4wKXtjb25zdCB5PWguc2xp''@;'; + put 'put ''Y2UoMCx2KSxDPXkudG9Mb3dlckNhc2UoKSxJPWguc2xpY2UodisxKS50cmltKCk7dGhpcy5tYXliZVNldE5vcm1hbGl6ZWROYW1lKHksQyksdGhpcy5oZWFkZXJzLmhhcyhDKT90aGlzLmhlYWRlcnMuZ2V0KEMpLnB1c2goSSk6dGhpcy5oZWFkZXJzLnNldChDLFtJXSl9fSl9OigpPT57dGhp''@;'; + put 'put ''cy5oZWFkZXJzPW5ldyBNYXAsT2JqZWN0LmtleXMoZykuZm9yRWFjaChoPT57bGV0IHY9Z1toXTtjb25zdCB5PWgudG9Mb3dlckNhc2UoKTsic3RyaW5nIj09dHlwZW9mIHYmJih2PVt2XSksdi5sZW5ndGg+MCYmKHRoaXMuaGVhZGVycy5zZXQoeSx2KSx0aGlzLm1heWJlU2V0Tm9ybWFsaXpl''@;'; + put 'put ''ZE5hbWUoaCx5KSl9KX06dGhpcy5oZWFkZXJzPW5ldyBNYXB9aGFzKGcpe3JldHVybiB0aGlzLmluaXQoKSx0aGlzLmhlYWRlcnMuaGFzKGcudG9Mb3dlckNhc2UoKSl9Z2V0KGcpe3RoaXMuaW5pdCgpO2NvbnN0IGg9dGhpcy5oZWFkZXJzLmdldChnLnRvTG93ZXJDYXNlKCkpO3JldHVybiBo''@;'; + put 'put ''JiZoLmxlbmd0aD4wP2hbMF06bnVsbH1rZXlzKCl7cmV0dXJuIHRoaXMuaW5pdCgpLEFycmF5LmZyb20odGhpcy5ub3JtYWxpemVkTmFtZXMudmFsdWVzKCkpfWdldEFsbChnKXtyZXR1cm4gdGhpcy5pbml0KCksdGhpcy5oZWFkZXJzLmdldChnLnRvTG93ZXJDYXNlKCkpfHxudWxsfWFwcGVu''@;'; + put 'put ''ZChnLGgpe3JldHVybiB0aGlzLmNsb25lKHtuYW1lOmcsdmFsdWU6aCxvcDoiYSJ9KX1zZXQoZyxoKXtyZXR1cm4gdGhpcy5jbG9uZSh7bmFtZTpnLHZhbHVlOmgsb3A6InMifSl9ZGVsZXRlKGcsaCl7cmV0dXJuIHRoaXMuY2xvbmUoe25hbWU6Zyx2YWx1ZTpoLG9wOiJkIn0pfW1heWJlU2V0''@;'; + put 'put ''Tm9ybWFsaXplZE5hbWUoZyxoKXt0aGlzLm5vcm1hbGl6ZWROYW1lcy5oYXMoaCl8fHRoaXMubm9ybWFsaXplZE5hbWVzLnNldChoLGcpfWluaXQoKXt0aGlzLmxhenlJbml0JiYodGhpcy5sYXp5SW5pdCBpbnN0YW5jZW9mIGhwP3RoaXMuY29weUZyb20odGhpcy5sYXp5SW5pdCk6dGhpcy5s''@;'; + put 'put ''YXp5SW5pdCgpLHRoaXMubGF6eUluaXQ9bnVsbCx0aGlzLmxhenlVcGRhdGUmJih0aGlzLmxhenlVcGRhdGUuZm9yRWFjaChnPT50aGlzLmFwcGx5VXBkYXRlKGcpKSx0aGlzLmxhenlVcGRhdGU9bnVsbCkpfWNvcHlGcm9tKGcpe2cuaW5pdCgpLEFycmF5LmZyb20oZy5oZWFkZXJzLmtleXMo''@;'; + put 'put ''KSkuZm9yRWFjaChoPT57dGhpcy5oZWFkZXJzLnNldChoLGcuaGVhZGVycy5nZXQoaCkpLHRoaXMubm9ybWFsaXplZE5hbWVzLnNldChoLGcubm9ybWFsaXplZE5hbWVzLmdldChoKSl9KX1jbG9uZShnKXtjb25zdCBoPW5ldyBocDtyZXR1cm4gaC5sYXp5SW5pdD10aGlzLmxhenlJbml0JiZ0''@;'; + put 'put ''aGlzLmxhenlJbml0IGluc3RhbmNlb2YgaHA/dGhpcy5sYXp5SW5pdDp0aGlzLGgubGF6eVVwZGF0ZT0odGhpcy5sYXp5VXBkYXRlfHxbXSkuY29uY2F0KFtnXSksaH1hcHBseVVwZGF0ZShnKXtjb25zdCBoPWcubmFtZS50b0xvd2VyQ2FzZSgpO3N3aXRjaChnLm9wKXtjYXNlImEiOmNhc2Ui''@;'; + put 'put ''cyI6bGV0IHY9Zy52YWx1ZTtpZigic3RyaW5nIj09dHlwZW9mIHYmJih2PVt2XSksMD09PXYubGVuZ3RoKXJldHVybjt0aGlzLm1heWJlU2V0Tm9ybWFsaXplZE5hbWUoZy5uYW1lLGgpO2NvbnN0IHk9KCJhIj09PWcub3A/dGhpcy5oZWFkZXJzLmdldChoKTp2b2lkIDApfHxbXTt5LnB1c2go''@;'; + put 'put ''Li4udiksdGhpcy5oZWFkZXJzLnNldChoLHkpO2JyZWFrO2Nhc2UiZCI6Y29uc3QgQz1nLnZhbHVlO2lmKEMpe2xldCBJPXRoaXMuaGVhZGVycy5nZXQoaCk7aWYoIUkpcmV0dXJuO0k9SS5maWx0ZXIoaj0+LTE9PT1DLmluZGV4T2YoaikpLDA9PT1JLmxlbmd0aD8odGhpcy5oZWFkZXJzLmRl''@;'; + put 'put ''bGV0ZShoKSx0aGlzLm5vcm1hbGl6ZWROYW1lcy5kZWxldGUoaCkpOnRoaXMuaGVhZGVycy5zZXQoaCxJKX1lbHNlIHRoaXMuaGVhZGVycy5kZWxldGUoaCksdGhpcy5ub3JtYWxpemVkTmFtZXMuZGVsZXRlKGgpfX1mb3JFYWNoKGcpe3RoaXMuaW5pdCgpLEFycmF5LmZyb20odGhpcy5ub3Jt''@;'; + put 'put ''YWxpemVkTmFtZXMua2V5cygpKS5mb3JFYWNoKGg9PmcodGhpcy5ub3JtYWxpemVkTmFtZXMuZ2V0KGgpLHRoaXMuaGVhZGVycy5nZXQoaCkpKX19Y2xhc3MgWVV7ZW5jb2RlS2V5KGcpe3JldHVybiBRVShnKX1lbmNvZGVWYWx1ZShnKXtyZXR1cm4gUVUoZyl9ZGVjb2RlS2V5KGcpe3JldHVy''@;'; + put 'put ''biBkZWNvZGVVUklDb21wb25lbnQoZyl9ZGVjb2RlVmFsdWUoZyl7cmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChnKX19Y29uc3QgVVU9LyUoXGRbYS1mMC05XSkvZ2ksQ29lPXs0MDoiQCIsIjNBIjoiOiIsMjQ6IiQiLCIyQyI6IiwiLCIzQiI6IjsiLCIzRCI6Ij0iLCIzRiI6Ij8iLCIyRiI6''@;'; + put 'put ''Ii8ifTtmdW5jdGlvbiBRVShkKXtyZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KGQpLnJlcGxhY2UoVVUsKGcsaCk9Pnt2YXIgdjtyZXR1cm4gbnVsbCE9PSh2PUNvZVtoXSkmJnZvaWQgMCE9PXY/djpnfSl9ZnVuY3Rpb24gSEkoZCl7cmV0dXJuYCR7ZH1gfWNsYXNzIFE1e2NvbnN0cnVjdG9y''@;'; + put 'put ''KGc9e30pe2lmKHRoaXMudXBkYXRlcz1udWxsLHRoaXMuY2xvbmVGcm9tPW51bGwsdGhpcy5lbmNvZGVyPWcuZW5jb2Rlcnx8bmV3IFlVLGcuZnJvbVN0cmluZyl7aWYoZy5mcm9tT2JqZWN0KXRocm93IG5ldyBFcnJvcigiQ2Fubm90IHNwZWNpZnkgYm90aCBmcm9tU3RyaW5nIGFuZCBmcm9t''@;'; + put 'put ''T2JqZWN0LiIpO3RoaXMubWFwPWZ1bmN0aW9uIF9vZShkLGcpe2NvbnN0IGg9bmV3IE1hcDtyZXR1cm4gZC5sZW5ndGg+MCYmZC5yZXBsYWNlKC9eXD8vLCIiKS5zcGxpdCgiJiIpLmZvckVhY2goeT0+e2NvbnN0IEM9eS5pbmRleE9mKCI9IiksW0ksal09LTE9PUM/W2cuZGVjb2RlS2V5KHkp''@;'; + put 'put ''LCIiXTpbZy5kZWNvZGVLZXkoeS5zbGljZSgwLEMpKSxnLmRlY29kZVZhbHVlKHkuc2xpY2UoQysxKSldLHVlPWguZ2V0KEkpfHxbXTt1ZS5wdXNoKGopLGguc2V0KEksdWUpfSksaH0oZy5mcm9tU3RyaW5nLHRoaXMuZW5jb2Rlcil9ZWxzZSBnLmZyb21PYmplY3Q/KHRoaXMubWFwPW5ldyBN''@;'; + put 'put ''YXAsT2JqZWN0LmtleXMoZy5mcm9tT2JqZWN0KS5mb3JFYWNoKGg9Pntjb25zdCB2PWcuZnJvbU9iamVjdFtoXSx5PUFycmF5LmlzQXJyYXkodik/di5tYXAoSEkpOltISSh2KV07dGhpcy5tYXAuc2V0KGgseSl9KSk6dGhpcy5tYXA9bnVsbH1oYXMoZyl7cmV0dXJuIHRoaXMuaW5pdCgpLHRo''@;'; + put 'put ''aXMubWFwLmhhcyhnKX1nZXQoZyl7dGhpcy5pbml0KCk7Y29uc3QgaD10aGlzLm1hcC5nZXQoZyk7cmV0dXJuIGg/aFswXTpudWxsfWdldEFsbChnKXtyZXR1cm4gdGhpcy5pbml0KCksdGhpcy5tYXAuZ2V0KGcpfHxudWxsfWtleXMoKXtyZXR1cm4gdGhpcy5pbml0KCksQXJyYXkuZnJvbSh0''@;'; + put 'put ''aGlzLm1hcC5rZXlzKCkpfWFwcGVuZChnLGgpe3JldHVybiB0aGlzLmNsb25lKHtwYXJhbTpnLHZhbHVlOmgsb3A6ImEifSl9YXBwZW5kQWxsKGcpe2NvbnN0IGg9W107cmV0dXJuIE9iamVjdC5rZXlzKGcpLmZvckVhY2godj0+e2NvbnN0IHk9Z1t2XTtBcnJheS5pc0FycmF5KHkpP3kuZm9y''@;'; + put 'put ''RWFjaChDPT57aC5wdXNoKHtwYXJhbTp2LHZhbHVlOkMsb3A6ImEifSl9KTpoLnB1c2goe3BhcmFtOnYsdmFsdWU6eSxvcDoiYSJ9KX0pLHRoaXMuY2xvbmUoaCl9c2V0KGcsaCl7cmV0dXJuIHRoaXMuY2xvbmUoe3BhcmFtOmcsdmFsdWU6aCxvcDoicyJ9KX1kZWxldGUoZyxoKXtyZXR1cm4g''@;'; + put 'put ''dGhpcy5jbG9uZSh7cGFyYW06Zyx2YWx1ZTpoLG9wOiJkIn0pfXRvU3RyaW5nKCl7cmV0dXJuIHRoaXMuaW5pdCgpLHRoaXMua2V5cygpLm1hcChnPT57Y29uc3QgaD10aGlzLmVuY29kZXIuZW5jb2RlS2V5KGcpO3JldHVybiB0aGlzLm1hcC5nZXQoZykubWFwKHY9PmgrIj0iK3RoaXMuZW5j''@;'; + put 'put ''b2Rlci5lbmNvZGVWYWx1ZSh2KSkuam9pbigiJiIpfSkuZmlsdGVyKGc9PiIiIT09Zykuam9pbigiJiIpfWNsb25lKGcpe2NvbnN0IGg9bmV3IFE1KHtlbmNvZGVyOnRoaXMuZW5jb2Rlcn0pO3JldHVybiBoLmNsb25lRnJvbT10aGlzLmNsb25lRnJvbXx8dGhpcyxoLnVwZGF0ZXM9KHRoaXMu''@;'; + put 'put ''dXBkYXRlc3x8W10pLmNvbmNhdChnKSxofWluaXQoKXtudWxsPT09dGhpcy5tYXAmJih0aGlzLm1hcD1uZXcgTWFwKSxudWxsIT09dGhpcy5jbG9uZUZyb20mJih0aGlzLmNsb25lRnJvbS5pbml0KCksdGhpcy5jbG9uZUZyb20ua2V5cygpLmZvckVhY2goZz0+dGhpcy5tYXAuc2V0KGcsdGhp''@;'; + put 'put ''cy5jbG9uZUZyb20ubWFwLmdldChnKSkpLHRoaXMudXBkYXRlcy5mb3JFYWNoKGc9Pntzd2l0Y2goZy5vcCl7Y2FzZSJhIjpjYXNlInMiOmNvbnN0IGg9KCJhIj09PWcub3A/dGhpcy5tYXAuZ2V0KGcucGFyYW0pOnZvaWQgMCl8fFtdO2gucHVzaChISShnLnZhbHVlKSksdGhpcy5tYXAuc2V0''@;'; + put 'put ''KGcucGFyYW0saCk7YnJlYWs7Y2FzZSJkIjppZih2b2lkIDA9PT1nLnZhbHVlKXt0aGlzLm1hcC5kZWxldGUoZy5wYXJhbSk7YnJlYWt9e2xldCB2PXRoaXMubWFwLmdldChnLnBhcmFtKXx8W107Y29uc3QgeT12LmluZGV4T2YoSEkoZy52YWx1ZSkpOy0xIT09eSYmdi5zcGxpY2UoeSwxKSx2''@;'; + put 'put ''Lmxlbmd0aD4wP3RoaXMubWFwLnNldChnLnBhcmFtLHYpOnRoaXMubWFwLmRlbGV0ZShnLnBhcmFtKX19fSksdGhpcy5jbG9uZUZyb209dGhpcy51cGRhdGVzPW51bGwpfX1jbGFzcyBSSHtjb25zdHJ1Y3Rvcigpe3RoaXMubWFwPW5ldyBNYXB9c2V0KGcsaCl7cmV0dXJuIHRoaXMubWFwLnNl''@;'; + put 'put ''dChnLGgpLHRoaXN9Z2V0KGcpe3JldHVybiB0aGlzLm1hcC5oYXMoZyl8fHRoaXMubWFwLnNldChnLGcuZGVmYXVsdFZhbHVlKCkpLHRoaXMubWFwLmdldChnKX1kZWxldGUoZyl7cmV0dXJuIHRoaXMubWFwLmRlbGV0ZShnKSx0aGlzfWhhcyhnKXtyZXR1cm4gdGhpcy5tYXAuaGFzKGcpfWtl''@;'; + put 'put ''eXMoKXtyZXR1cm4gdGhpcy5tYXAua2V5cygpfX1mdW5jdGlvbiBKVShkKXtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIEFycmF5QnVmZmVyJiZkIGluc3RhbmNlb2YgQXJyYXlCdWZmZXJ9ZnVuY3Rpb24gWFUoZCl7cmV0dXJuInVuZGVmaW5lZCIhPXR5cGVvZiBCbG9iJiZkIGluc3RhbmNl''@;'; + put 'put ''b2YgQmxvYn1mdW5jdGlvbiBLVShkKXtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIEZvcm1EYXRhJiZkIGluc3RhbmNlb2YgRm9ybURhdGF9Y2xhc3MgcHl7Y29uc3RydWN0b3IoZyxoLHYseSl7bGV0IEM7aWYodGhpcy51cmw9aCx0aGlzLmJvZHk9bnVsbCx0aGlzLnJlcG9ydFByb2dyZXNz''@;'; + put 'put ''PSExLHRoaXMud2l0aENyZWRlbnRpYWxzPSExLHRoaXMucmVzcG9uc2VUeXBlPSJqc29uIix0aGlzLm1ldGhvZD1nLnRvVXBwZXJDYXNlKCksZnVuY3Rpb24ga29lKGQpe3N3aXRjaChkKXtjYXNlIkRFTEVURSI6Y2FzZSJHRVQiOmNhc2UiSEVBRCI6Y2FzZSJPUFRJT05TIjpjYXNlIkpTT05Q''@;'; + put 'put ''IjpyZXR1cm4hMTtkZWZhdWx0OnJldHVybiEwfX0odGhpcy5tZXRob2QpfHx5Pyh0aGlzLmJvZHk9dm9pZCAwIT09dj92Om51bGwsQz15KTpDPXYsQyYmKHRoaXMucmVwb3J0UHJvZ3Jlc3M9ISFDLnJlcG9ydFByb2dyZXNzLHRoaXMud2l0aENyZWRlbnRpYWxzPSEhQy53aXRoQ3JlZGVudGlh''@;'; + put 'put ''bHMsQy5yZXNwb25zZVR5cGUmJih0aGlzLnJlc3BvbnNlVHlwZT1DLnJlc3BvbnNlVHlwZSksQy5oZWFkZXJzJiYodGhpcy5oZWFkZXJzPUMuaGVhZGVycyksQy5jb250ZXh0JiYodGhpcy5jb250ZXh0PUMuY29udGV4dCksQy5wYXJhbXMmJih0aGlzLnBhcmFtcz1DLnBhcmFtcykpLHRoaXMu''@;'; + put 'put ''aGVhZGVyc3x8KHRoaXMuaGVhZGVycz1uZXcgaHApLHRoaXMuY29udGV4dHx8KHRoaXMuY29udGV4dD1uZXcgUkgpLHRoaXMucGFyYW1zKXtjb25zdCBJPXRoaXMucGFyYW1zLnRvU3RyaW5nKCk7aWYoMD09PUkubGVuZ3RoKXRoaXMudXJsV2l0aFBhcmFtcz1oO2Vsc2V7Y29uc3Qgaj1oLmlu''@;'; + put 'put ''ZGV4T2YoIj8iKTt0aGlzLnVybFdpdGhQYXJhbXM9aCsoLTE9PT1qPyI/IjpqPGgubGVuZ3RoLTE/IiYiOiIiKStJfX1lbHNlIHRoaXMucGFyYW1zPW5ldyBRNSx0aGlzLnVybFdpdGhQYXJhbXM9aH1zZXJpYWxpemVCb2R5KCl7cmV0dXJuIG51bGw9PT10aGlzLmJvZHk/bnVsbDpKVSh0aGlz''@;'; + put 'put ''LmJvZHkpfHxYVSh0aGlzLmJvZHkpfHxLVSh0aGlzLmJvZHkpfHxmdW5jdGlvbiBTb2UoZCl7cmV0dXJuInVuZGVmaW5lZCIhPXR5cGVvZiBVUkxTZWFyY2hQYXJhbXMmJmQgaW5zdGFuY2VvZiBVUkxTZWFyY2hQYXJhbXN9KHRoaXMuYm9keSl8fCJzdHJpbmciPT10eXBlb2YgdGhpcy5ib2R5''@;'; + put 'put ''P3RoaXMuYm9keTp0aGlzLmJvZHkgaW5zdGFuY2VvZiBRNT90aGlzLmJvZHkudG9TdHJpbmcoKToib2JqZWN0Ij09dHlwZW9mIHRoaXMuYm9keXx8ImJvb2xlYW4iPT10eXBlb2YgdGhpcy5ib2R5fHxBcnJheS5pc0FycmF5KHRoaXMuYm9keSk/SlNPTi5zdHJpbmdpZnkodGhpcy5ib2R5KTp0''@;'; + put 'put ''aGlzLmJvZHkudG9TdHJpbmcoKX1kZXRlY3RDb250ZW50VHlwZUhlYWRlcigpe3JldHVybiBudWxsPT09dGhpcy5ib2R5fHxLVSh0aGlzLmJvZHkpP251bGw6WFUodGhpcy5ib2R5KT90aGlzLmJvZHkudHlwZXx8bnVsbDpKVSh0aGlzLmJvZHkpP251bGw6InN0cmluZyI9PXR5cGVvZiB0aGlz''@;'; + put 'put ''LmJvZHk/InRleHQvcGxhaW4iOnRoaXMuYm9keSBpbnN0YW5jZW9mIFE1PyJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hhcnNldD1VVEYtOCI6Im9iamVjdCI9PXR5cGVvZiB0aGlzLmJvZHl8fCJudW1iZXIiPT10eXBlb2YgdGhpcy5ib2R5fHwiYm9vbGVhbiI9PXR5cGVv''@;'; + put 'put ''ZiB0aGlzLmJvZHk/ImFwcGxpY2F0aW9uL2pzb24iOm51bGx9Y2xvbmUoZz17fSl7dmFyIGg7Y29uc3Qgdj1nLm1ldGhvZHx8dGhpcy5tZXRob2QseT1nLnVybHx8dGhpcy51cmwsQz1nLnJlc3BvbnNlVHlwZXx8dGhpcy5yZXNwb25zZVR5cGUsST12b2lkIDAhPT1nLmJvZHk/Zy5ib2R5OnRo''@;'; + put 'put ''aXMuYm9keSxqPXZvaWQgMCE9PWcud2l0aENyZWRlbnRpYWxzP2cud2l0aENyZWRlbnRpYWxzOnRoaXMud2l0aENyZWRlbnRpYWxzLHVlPXZvaWQgMCE9PWcucmVwb3J0UHJvZ3Jlc3M/Zy5yZXBvcnRQcm9ncmVzczp0aGlzLnJlcG9ydFByb2dyZXNzO2xldCBfZT1nLmhlYWRlcnN8fHRoaXMu''@;'; + put 'put ''aGVhZGVycyxCZT1nLnBhcmFtc3x8dGhpcy5wYXJhbXM7Y29uc3QgTmU9bnVsbCE9PShoPWcuY29udGV4dCkmJnZvaWQgMCE9PWg/aDp0aGlzLmNvbnRleHQ7cmV0dXJuIHZvaWQgMCE9PWcuc2V0SGVhZGVycyYmKF9lPU9iamVjdC5rZXlzKGcuc2V0SGVhZGVycykucmVkdWNlKChLZSxkdCk9''@;'; + put 'put ''PktlLnNldChkdCxnLnNldEhlYWRlcnNbZHRdKSxfZSkpLGcuc2V0UGFyYW1zJiYoQmU9T2JqZWN0LmtleXMoZy5zZXRQYXJhbXMpLnJlZHVjZSgoS2UsZHQpPT5LZS5zZXQoZHQsZy5zZXRQYXJhbXNbZHRdKSxCZSkpLG5ldyBweSh2LHksSSx7cGFyYW1zOkJlLGhlYWRlcnM6X2UsY29udGV4''@;'; + put 'put ''dDpOZSxyZXBvcnRQcm9ncmVzczp1ZSxyZXNwb25zZVR5cGU6Qyx3aXRoQ3JlZGVudGlhbHM6an0pfX12YXIgdnU9KCgpPT4oKHZ1PXZ1fHx7fSlbdnUuU2VudD0wXT0iU2VudCIsdnVbdnUuVXBsb2FkUHJvZ3Jlc3M9MV09IlVwbG9hZFByb2dyZXNzIix2dVt2dS5SZXNwb25zZUhlYWRlcj0y''@;'; + put 'put ''XT0iUmVzcG9uc2VIZWFkZXIiLHZ1W3Z1LkRvd25sb2FkUHJvZ3Jlc3M9M109IkRvd25sb2FkUHJvZ3Jlc3MiLHZ1W3Z1LlJlc3BvbnNlPTRdPSJSZXNwb25zZSIsdnVbdnUuVXNlcj01XT0iVXNlciIsdnUpKSgpO2NsYXNzIEE3e2NvbnN0cnVjdG9yKGcsaD0yMDAsdj0iT0siKXt0aGlzLmhl''@;'; + put 'put ''YWRlcnM9Zy5oZWFkZXJzfHxuZXcgaHAsdGhpcy5zdGF0dXM9dm9pZCAwIT09Zy5zdGF0dXM/Zy5zdGF0dXM6aCx0aGlzLnN0YXR1c1RleHQ9Zy5zdGF0dXNUZXh0fHx2LHRoaXMudXJsPWcudXJsfHxudWxsLHRoaXMub2s9dGhpcy5zdGF0dXM+PTIwMCYmdGhpcy5zdGF0dXM8MzAwfX1jbGFz''@;'; + put 'put ''cyBCSCBleHRlbmRzIEE3e2NvbnN0cnVjdG9yKGc9e30pe3N1cGVyKGcpLHRoaXMudHlwZT12dS5SZXNwb25zZUhlYWRlcn1jbG9uZShnPXt9KXtyZXR1cm4gbmV3IEJIKHtoZWFkZXJzOmcuaGVhZGVyc3x8dGhpcy5oZWFkZXJzLHN0YXR1czp2b2lkIDAhPT1nLnN0YXR1cz9nLnN0YXR1czp0''@;'; + put 'put ''aGlzLnN0YXR1cyxzdGF0dXNUZXh0Omcuc3RhdHVzVGV4dHx8dGhpcy5zdGF0dXNUZXh0LHVybDpnLnVybHx8dGhpcy51cmx8fHZvaWQgMH0pfX1jbGFzcyBneSBleHRlbmRzIEE3e2NvbnN0cnVjdG9yKGc9e30pe3N1cGVyKGcpLHRoaXMudHlwZT12dS5SZXNwb25zZSx0aGlzLmJvZHk9dm9p''@;'; + put 'put ''ZCAwIT09Zy5ib2R5P2cuYm9keTpudWxsfWNsb25lKGc9e30pe3JldHVybiBuZXcgZ3koe2JvZHk6dm9pZCAwIT09Zy5ib2R5P2cuYm9keTp0aGlzLmJvZHksaGVhZGVyczpnLmhlYWRlcnN8fHRoaXMuaGVhZGVycyxzdGF0dXM6dm9pZCAwIT09Zy5zdGF0dXM/Zy5zdGF0dXM6dGhpcy5zdGF0''@;'; + put 'put ''dXMsc3RhdHVzVGV4dDpnLnN0YXR1c1RleHR8fHRoaXMuc3RhdHVzVGV4dCx1cmw6Zy51cmx8fHRoaXMudXJsfHx2b2lkIDB9KX19Y2xhc3MgJFUgZXh0ZW5kcyBBN3tjb25zdHJ1Y3RvcihnKXtzdXBlcihnLDAsIlVua25vd24gRXJyb3IiKSx0aGlzLm5hbWU9Ikh0dHBFcnJvclJlc3BvbnNl''@;'; + put 'put ''Iix0aGlzLm9rPSExLHRoaXMubWVzc2FnZT10aGlzLnN0YXR1cz49MjAwJiZ0aGlzLnN0YXR1czwzMDA/YEh0dHAgZmFpbHVyZSBkdXJpbmcgcGFyc2luZyBmb3IgJHtnLnVybHx8Iih1bmtub3duIHVybCkifWA6YEh0dHAgZmFpbHVyZSByZXNwb25zZSBmb3IgJHtnLnVybHx8Iih1bmtub3du''@;'; + put 'put ''IHVybCkifTogJHtnLnN0YXR1c30gJHtnLnN0YXR1c1RleHR9YCx0aGlzLmVycm9yPWcuZXJyb3J8fG51bGx9fWZ1bmN0aW9uIFBIKGQsZyl7cmV0dXJue2JvZHk6ZyxoZWFkZXJzOmQuaGVhZGVycyxjb250ZXh0OmQuY29udGV4dCxvYnNlcnZlOmQub2JzZXJ2ZSxwYXJhbXM6ZC5wYXJhbXMs''@;'; + put 'put ''cmVwb3J0UHJvZ3Jlc3M6ZC5yZXBvcnRQcm9ncmVzcyxyZXNwb25zZVR5cGU6ZC5yZXNwb25zZVR5cGUsd2l0aENyZWRlbnRpYWxzOmQud2l0aENyZWRlbnRpYWxzfX1sZXQgRkg9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoKXt0aGlzLmhhbmRsZXI9aH1yZXF1ZXN0KGgsdix5PXt9KXts''@;'; + put 'put ''ZXQgQztpZihoIGluc3RhbmNlb2YgcHkpQz1oO2Vsc2V7bGV0IHVlLF9lO3VlPXkuaGVhZGVycyBpbnN0YW5jZW9mIGhwP3kuaGVhZGVyczpuZXcgaHAoeS5oZWFkZXJzKSx5LnBhcmFtcyYmKF9lPXkucGFyYW1zIGluc3RhbmNlb2YgUTU/eS5wYXJhbXM6bmV3IFE1KHtmcm9tT2JqZWN0Onku''@;'; + put 'put ''cGFyYW1zfSkpLEM9bmV3IHB5KGgsdix2b2lkIDAhPT15LmJvZHk/eS5ib2R5Om51bGwse2hlYWRlcnM6dWUsY29udGV4dDp5LmNvbnRleHQscGFyYW1zOl9lLHJlcG9ydFByb2dyZXNzOnkucmVwb3J0UHJvZ3Jlc3MscmVzcG9uc2VUeXBlOnkucmVzcG9uc2VUeXBlfHwianNvbiIsd2l0aENy''@;'; + put 'put ''ZWRlbnRpYWxzOnkud2l0aENyZWRlbnRpYWxzfSl9Y29uc3QgST1hYShDKS5waXBlKFY1KHVlPT50aGlzLmhhbmRsZXIuaGFuZGxlKHVlKSkpO2lmKGggaW5zdGFuY2VvZiBweXx8ImV2ZW50cyI9PT15Lm9ic2VydmUpcmV0dXJuIEk7Y29uc3Qgaj1JLnBpcGUoTzIodWU9PnVlIGluc3RhbmNl''@;'; + put 'put ''b2YgZ3kpKTtzd2l0Y2goeS5vYnNlcnZlfHwiYm9keSIpe2Nhc2UiYm9keSI6c3dpdGNoKEMucmVzcG9uc2VUeXBlKXtjYXNlImFycmF5YnVmZmVyIjpyZXR1cm4gai5waXBlKG10KHVlPT57aWYobnVsbCE9PXVlLmJvZHkmJiEodWUuYm9keSBpbnN0YW5jZW9mIEFycmF5QnVmZmVyKSl0aHJv''@;'; + put 'put ''dyBuZXcgRXJyb3IoIlJlc3BvbnNlIGlzIG5vdCBhbiBBcnJheUJ1ZmZlci4iKTtyZXR1cm4gdWUuYm9keX0pKTtjYXNlImJsb2IiOnJldHVybiBqLnBpcGUobXQodWU9PntpZihudWxsIT09dWUuYm9keSYmISh1ZS5ib2R5IGluc3RhbmNlb2YgQmxvYikpdGhyb3cgbmV3IEVycm9yKCJSZXNw''@;'; + put 'put ''b25zZSBpcyBub3QgYSBCbG9iLiIpO3JldHVybiB1ZS5ib2R5fSkpO2Nhc2UidGV4dCI6cmV0dXJuIGoucGlwZShtdCh1ZT0+e2lmKG51bGwhPT11ZS5ib2R5JiYic3RyaW5nIiE9dHlwZW9mIHVlLmJvZHkpdGhyb3cgbmV3IEVycm9yKCJSZXNwb25zZSBpcyBub3QgYSBzdHJpbmcuIik7cmV0''@;'; + put 'put ''dXJuIHVlLmJvZHl9KSk7ZGVmYXVsdDpyZXR1cm4gai5waXBlKG10KHVlPT51ZS5ib2R5KSl9Y2FzZSJyZXNwb25zZSI6cmV0dXJuIGo7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoYFVucmVhY2hhYmxlOiB1bmhhbmRsZWQgb2JzZXJ2ZSB0eXBlICR7eS5vYnNlcnZlfX1gKX19ZGVsZXRlKGgs''@;'; + put 'put ''dj17fSl7cmV0dXJuIHRoaXMucmVxdWVzdCgiREVMRVRFIixoLHYpfWdldChoLHY9e30pe3JldHVybiB0aGlzLnJlcXVlc3QoIkdFVCIsaCx2KX1oZWFkKGgsdj17fSl7cmV0dXJuIHRoaXMucmVxdWVzdCgiSEVBRCIsaCx2KX1qc29ucChoLHYpe3JldHVybiB0aGlzLnJlcXVlc3QoIkpTT05Q''@;'; + put 'put ''IixoLHtwYXJhbXM6KG5ldyBRNSkuYXBwZW5kKHYsIkpTT05QX0NBTExCQUNLIiksb2JzZXJ2ZToiYm9keSIscmVzcG9uc2VUeXBlOiJqc29uIn0pfW9wdGlvbnMoaCx2PXt9KXtyZXR1cm4gdGhpcy5yZXF1ZXN0KCJPUFRJT05TIixoLHYpfXBhdGNoKGgsdix5PXt9KXtyZXR1cm4gdGhpcy5y''@;'; + put 'put ''ZXF1ZXN0KCJQQVRDSCIsaCxQSCh5LHYpKX1wb3N0KGgsdix5PXt9KXtyZXR1cm4gdGhpcy5yZXF1ZXN0KCJQT1NUIixoLFBIKHksdikpfXB1dChoLHYseT17fSl7cmV0dXJuIHRoaXMucmVxdWVzdCgiUFVUIixoLFBIKHksdikpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0''@;'; + put 'put ''dXJuIG5ldyhofHxkKShDaShHVSkpfSxkLlx1MDI3NXByb3Y9QWkoe3Rva2VuOmQsZmFjdG9yeTpkLlx1MDI3NWZhY30pLGR9KSgpO2NsYXNzIHFVe2NvbnN0cnVjdG9yKGcsaCl7dGhpcy5uZXh0PWcsdGhpcy5pbnRlcmNlcHRvcj1ofWhhbmRsZShnKXtyZXR1cm4gdGhpcy5pbnRlcmNlcHRv''@;'; + put 'put ''ci5pbnRlcmNlcHQoZyx0aGlzLm5leHQpfX1jb25zdCBlUT1uZXcgemUoIkhUVFBfSU5URVJDRVBUT1JTIik7bGV0IE1vZT0oKCk9PntjbGFzcyBke2ludGVyY2VwdChoLHYpe3JldHVybiB2LmhhbmRsZShoKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8''@;'; + put 'put ''ZCl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1ZmFjfSksZH0pKCk7Y29uc3QgVG9lPS9eXClcXVx9Jyw/XG4vO2xldCBuUT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgpe3RoaXMueGhyRmFjdG9yeT1ofWhhbmRsZShoKXtpZigiSlNPTlAiPT09aC5tZXRo''@;'; + put 'put ''b2QpdGhyb3cgbmV3IEVycm9yKCJBdHRlbXB0ZWQgdG8gY29uc3RydWN0IEpzb25wIHJlcXVlc3Qgd2l0aG91dCBIdHRwQ2xpZW50SnNvbnBNb2R1bGUgaW5zdGFsbGVkLiIpO3JldHVybiBuZXcgRih2PT57Y29uc3QgeT10aGlzLnhockZhY3RvcnkuYnVpbGQoKTtpZih5Lm9wZW4oaC5tZXRo''@;'; + put 'put ''b2QsaC51cmxXaXRoUGFyYW1zKSxoLndpdGhDcmVkZW50aWFscyYmKHkud2l0aENyZWRlbnRpYWxzPSEwKSxoLmhlYWRlcnMuZm9yRWFjaCgoZHQsT3QpPT55LnNldFJlcXVlc3RIZWFkZXIoZHQsT3Quam9pbigiLCIpKSksaC5oZWFkZXJzLmhhcygiQWNjZXB0Iil8fHkuc2V0UmVxdWVzdEhl''@;'; + put 'put ''YWRlcigiQWNjZXB0IiwiYXBwbGljYXRpb24vanNvbiwgdGV4dC9wbGFpbiwgKi8qIiksIWguaGVhZGVycy5oYXMoIkNvbnRlbnQtVHlwZSIpKXtjb25zdCBkdD1oLmRldGVjdENvbnRlbnRUeXBlSGVhZGVyKCk7bnVsbCE9PWR0JiZ5LnNldFJlcXVlc3RIZWFkZXIoIkNvbnRlbnQtVHlwZSIs''@;'; + put 'put ''ZHQpfWlmKGgucmVzcG9uc2VUeXBlKXtjb25zdCBkdD1oLnJlc3BvbnNlVHlwZS50b0xvd2VyQ2FzZSgpO3kucmVzcG9uc2VUeXBlPSJqc29uIiE9PWR0P2R0OiJ0ZXh0In1jb25zdCBDPWguc2VyaWFsaXplQm9keSgpO2xldCBJPW51bGw7Y29uc3Qgaj0oKT0+e2lmKG51bGwhPT1JKXJldHVy''@;'; + put 'put ''biBJO2NvbnN0IGR0PXkuc3RhdHVzVGV4dHx8Ik9LIixPdD1uZXcgaHAoeS5nZXRBbGxSZXNwb25zZUhlYWRlcnMoKSksJHQ9ZnVuY3Rpb24gSEgoZCl7cmV0dXJuInJlc3BvbnNlVVJMImluIGQmJmQucmVzcG9uc2VVUkw/ZC5yZXNwb25zZVVSTDovXlgtUmVxdWVzdC1VUkw6L20udGVzdChk''@;'; + put 'put ''LmdldEFsbFJlc3BvbnNlSGVhZGVycygpKT9kLmdldFJlc3BvbnNlSGVhZGVyKCJYLVJlcXVlc3QtVVJMIik6bnVsbH0oeSl8fGgudXJsO3JldHVybiBJPW5ldyBCSCh7aGVhZGVyczpPdCxzdGF0dXM6eS5zdGF0dXMsc3RhdHVzVGV4dDpkdCx1cmw6JHR9KSxJfSx1ZT0oKT0+e2xldHtoZWFk''@;'; + put 'put ''ZXJzOmR0LHN0YXR1czpPdCxzdGF0dXNUZXh0OiR0LHVybDpmbn09aigpLExuPW51bGw7MjA0IT09T3QmJihMbj12b2lkIDA9PT15LnJlc3BvbnNlP3kucmVzcG9uc2VUZXh0OnkucmVzcG9uc2UpLDA9PT1PdCYmKE90PUxuPzIwMDowKTtsZXQgaXI9T3Q+PTIwMCYmT3Q8MzAwO2lmKCJqc29u''@;'; + put 'put ''Ij09PWgucmVzcG9uc2VUeXBlJiYic3RyaW5nIj09dHlwZW9mIExuKXtjb25zdCBtcj1MbjtMbj1Mbi5yZXBsYWNlKFRvZSwiIik7dHJ5e0xuPSIiIT09TG4/SlNPTi5wYXJzZShMbik6bnVsbH1jYXRjaChTcil7TG49bXIsaXImJihpcj0hMSxMbj17ZXJyb3I6U3IsdGV4dDpMbn0pfX1pcj8o''@;'; + put 'put ''di5uZXh0KG5ldyBneSh7Ym9keTpMbixoZWFkZXJzOmR0LHN0YXR1czpPdCxzdGF0dXNUZXh0OiR0LHVybDpmbnx8dm9pZCAwfSkpLHYuY29tcGxldGUoKSk6di5lcnJvcihuZXcgJFUoe2Vycm9yOkxuLGhlYWRlcnM6ZHQsc3RhdHVzOk90LHN0YXR1c1RleHQ6JHQsdXJsOmZufHx2b2lkIDB9''@;'; + put 'put ''KSl9LF9lPWR0PT57Y29uc3R7dXJsOk90fT1qKCksJHQ9bmV3ICRVKHtlcnJvcjpkdCxzdGF0dXM6eS5zdGF0dXN8fDAsc3RhdHVzVGV4dDp5LnN0YXR1c1RleHR8fCJVbmtub3duIEVycm9yIix1cmw6T3R8fHZvaWQgMH0pO3YuZXJyb3IoJHQpfTtsZXQgQmU9ITE7Y29uc3QgTmU9ZHQ9PntC''@;'; + put 'put ''ZXx8KHYubmV4dChqKCkpLEJlPSEwKTtsZXQgT3Q9e3R5cGU6dnUuRG93bmxvYWRQcm9ncmVzcyxsb2FkZWQ6ZHQubG9hZGVkfTtkdC5sZW5ndGhDb21wdXRhYmxlJiYoT3QudG90YWw9ZHQudG90YWwpLCJ0ZXh0Ij09PWgucmVzcG9uc2VUeXBlJiYhIXkucmVzcG9uc2VUZXh0JiYoT3QucGFy''@;'; + put 'put ''dGlhbFRleHQ9eS5yZXNwb25zZVRleHQpLHYubmV4dChPdCl9LEtlPWR0PT57bGV0IE90PXt0eXBlOnZ1LlVwbG9hZFByb2dyZXNzLGxvYWRlZDpkdC5sb2FkZWR9O2R0Lmxlbmd0aENvbXB1dGFibGUmJihPdC50b3RhbD1kdC50b3RhbCksdi5uZXh0KE90KX07cmV0dXJuIHkuYWRkRXZlbnRM''@;'; + put 'put ''aXN0ZW5lcigibG9hZCIsdWUpLHkuYWRkRXZlbnRMaXN0ZW5lcigiZXJyb3IiLF9lKSx5LmFkZEV2ZW50TGlzdGVuZXIoInRpbWVvdXQiLF9lKSx5LmFkZEV2ZW50TGlzdGVuZXIoImFib3J0IixfZSksaC5yZXBvcnRQcm9ncmVzcyYmKHkuYWRkRXZlbnRMaXN0ZW5lcigicHJvZ3Jlc3MiLE5l''@;'; + put 'put ''KSxudWxsIT09QyYmeS51cGxvYWQmJnkudXBsb2FkLmFkZEV2ZW50TGlzdGVuZXIoInByb2dyZXNzIixLZSkpLHkuc2VuZChDKSx2Lm5leHQoe3R5cGU6dnUuU2VudH0pLCgpPT57eS5yZW1vdmVFdmVudExpc3RlbmVyKCJlcnJvciIsX2UpLHkucmVtb3ZlRXZlbnRMaXN0ZW5lcigiYWJvcnQi''@;'; + put 'put ''LF9lKSx5LnJlbW92ZUV2ZW50TGlzdGVuZXIoImxvYWQiLHVlKSx5LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRpbWVvdXQiLF9lKSxoLnJlcG9ydFByb2dyZXNzJiYoeS5yZW1vdmVFdmVudExpc3RlbmVyKCJwcm9ncmVzcyIsTmUpLG51bGwhPT1DJiZ5LnVwbG9hZCYmeS51cGxvYWQucmVtb3Zl''@;'; + put 'put ''RXZlbnRMaXN0ZW5lcigicHJvZ3Jlc3MiLEtlKSkseS5yZWFkeVN0YXRlIT09eS5ET05FJiZ5LmFib3J0KCl9fSl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKENpKEZXKSl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1''@;'; + put 'put ''ZmFjfSksZH0pKCk7Y29uc3QgTkg9bmV3IHplKCJYU1JGX0NPT0tJRV9OQU1FIiksVkg9bmV3IHplKCJYU1JGX0hFQURFUl9OQU1FIik7Y2xhc3MgclF7fWxldCBJb2U9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYseSl7dGhpcy5kb2M9aCx0aGlzLnBsYXRmb3JtPXYsdGhpcy5jb29r''@;'; + put 'put ''aWVOYW1lPXksdGhpcy5sYXN0Q29va2llU3RyaW5nPSIiLHRoaXMubGFzdFRva2VuPW51bGwsdGhpcy5wYXJzZUNvdW50PTB9Z2V0VG9rZW4oKXtpZigic2VydmVyIj09PXRoaXMucGxhdGZvcm0pcmV0dXJuIG51bGw7Y29uc3QgaD10aGlzLmRvYy5jb29raWV8fCIiO3JldHVybiBoIT09dGhp''@;'; + put 'put ''cy5sYXN0Q29va2llU3RyaW5nJiYodGhpcy5wYXJzZUNvdW50KyssdGhpcy5sYXN0VG9rZW49YlcoaCx0aGlzLmNvb2tpZU5hbWUpLHRoaXMubGFzdENvb2tpZVN0cmluZz1oKSx0aGlzLmxhc3RUb2tlbn19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCko''@;'; + put 'put ''Q2kocHMpLENpKEwyKSxDaShOSCkpfSxkLlx1MDI3NXByb3Y9QWkoe3Rva2VuOmQsZmFjdG9yeTpkLlx1MDI3NWZhY30pLGR9KSgpLFZJPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2KXt0aGlzLnRva2VuU2VydmljZT1oLHRoaXMuaGVhZGVyTmFtZT12fWludGVyY2VwdChoLHYpe2Nv''@;'; + put 'put ''bnN0IHk9aC51cmwudG9Mb3dlckNhc2UoKTtpZigiR0VUIj09PWgubWV0aG9kfHwiSEVBRCI9PT1oLm1ldGhvZHx8eS5zdGFydHNXaXRoKCJodHRwOi8vIil8fHkuc3RhcnRzV2l0aCgiaHR0cHM6Ly8iKSlyZXR1cm4gdi5oYW5kbGUoaCk7Y29uc3QgQz10aGlzLnRva2VuU2VydmljZS5nZXRU''@;'; + put 'put ''b2tlbigpO3JldHVybiBudWxsIT09QyYmIWguaGVhZGVycy5oYXModGhpcy5oZWFkZXJOYW1lKSYmKGg9aC5jbG9uZSh7aGVhZGVyczpoLmhlYWRlcnMuc2V0KHRoaXMuaGVhZGVyTmFtZSxDKX0pKSx2LmhhbmRsZShoKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBu''@;'; + put 'put ''ZXcoaHx8ZCkoQ2koclEpLENpKFZIKSl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1ZmFjfSksZH0pKCksdWs9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYpe3RoaXMuYmFja2VuZD1oLHRoaXMuaW5qZWN0b3I9dix0aGlzLmNoYWluPW51bGx9aGFuZGxl''@;'; + put 'put ''KGgpe2lmKG51bGw9PT10aGlzLmNoYWluKXtjb25zdCB2PXRoaXMuaW5qZWN0b3IuZ2V0KGVRLFtdKTt0aGlzLmNoYWluPXYucmVkdWNlUmlnaHQoKHksQyk9Pm5ldyBxVSh5LEMpLHRoaXMuYmFja2VuZCl9cmV0dXJuIHRoaXMuY2hhaW4uaGFuZGxlKGgpfX1yZXR1cm4gZC5cdTAyNzVmYWM9''@;'; + put 'put ''ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShDaShXVSksQ2koa3MpKX0sZC5cdTAyNzVwcm92PUFpKHt0b2tlbjpkLGZhY3Rvcnk6ZC5cdTAyNzVmYWN9KSxkfSkoKSxqSD0oKCk9PntjbGFzcyBke3N0YXRpYyBkaXNhYmxlKCl7cmV0dXJue25nTW9kdWxlOmQscHJvdmlkZXJzOlt7cHJv''@;'; + put 'put ''dmlkZTpWSSx1c2VDbGFzczpNb2V9XX19c3RhdGljIHdpdGhPcHRpb25zKGg9e30pe3JldHVybntuZ01vZHVsZTpkLHByb3ZpZGVyczpbaC5jb29raWVOYW1lP3twcm92aWRlOk5ILHVzZVZhbHVlOmguY29va2llTmFtZX06W10saC5oZWFkZXJOYW1lP3twcm92aWRlOlZILHVzZVZhbHVlOmgu''@;'; + put 'put ''aGVhZGVyTmFtZX06W11dfX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1bW9kPWNvKHt0eXBlOmR9KSxkLlx1MDI3NWluaj1iMCh7cHJvdmlkZXJzOltWSSx7cHJvdmlkZTplUSx1c2VFeGlzdGluZzpWSSxtdWx0aTohMH0se3Byb3Zp''@;'; + put 'put ''ZGU6clEsdXNlQ2xhc3M6SW9lfSx7cHJvdmlkZTpOSCx1c2VWYWx1ZToiWFNSRi1UT0tFTiJ9LHtwcm92aWRlOlZILHVzZVZhbHVlOiJYLVhTUkYtVE9LRU4ifV19KSxkfSkoKSxqST0oKCk9PntjbGFzcyBke31yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxk''@;'; + put 'put ''KX0sZC5cdTAyNzVtb2Q9Y28oe3R5cGU6ZH0pLGQuXHUwMjc1aW5qPWIwKHtwcm92aWRlcnM6W0ZILHtwcm92aWRlOkdVLHVzZUNsYXNzOnVrfSxuUSx7cHJvdmlkZTpXVSx1c2VFeGlzdGluZzpuUX1dLGltcG9ydHM6W2pILndpdGhPcHRpb25zKHtjb29raWVOYW1lOiJYU1JGLVRPS0VOIixo''@;'; + put 'put ''ZWFkZXJOYW1lOiJYLVhTUkYtVE9LRU4ifSldfSksZH0pKCksaVE9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYpe3RoaXMuaHR0cD1oLHRoaXMuYXBwU3RvcmVTZXJ2aWNlPXYsdGhpcy51cmw9IiIsdGhpcy5kcml2ZVVybD0iIix0aGlzLmh0dHBPcHRpb25zPXt3aXRoQ3JlZGVudGlh''@;'; + put 'put ''bHM6ITB9fXNldHVwKCl7Y29uc3QgaD10aGlzLmFwcFN0b3JlU2VydmljZS5nZXREY0FkYXB0ZXJTZXR0aW5ncygpO3RoaXMudXJsPWAkeyhudWxsPT1oP3ZvaWQgMDpoLnNlcnZlclVybCl8fCIifS9TQVNqc0FwaWAsdGhpcy5kcml2ZVVybD1gJHt0aGlzLnVybH0vZHJpdmVgfWdldFNlcnZl''@;'; + put 'put ''ckluZm8oKXtyZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLnVybH0vaW5mb2ApfWdldEZpbGVGcm9tRHJpdmUoaCl7cmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5kcml2ZVVybH0vZmlsZS8/X2ZpbGVQYXRoPSR7aH1gLHRoaXMuaHR0cE9wdGlvbnMpfWdldEZvbGRlckNvbnRlbnRz''@;'; + put 'put ''RnJvbURyaXZlKGgpe3JldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuZHJpdmVVcmx9L2ZvbGRlcj9fZm9sZGVyUGF0aD0ke2h9YCx0aGlzLmh0dHBPcHRpb25zKX1nZXRGaWxlVHJlZUZyb21Ecml2ZSgpe3JldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuZHJpdmVVcmx9L2ZpbGV0cmVl''@;'; + put 'put ''YCx0aGlzLmh0dHBPcHRpb25zKX1nZXRGaWxlRnJvbUZpbGVUcmVlKGgpe3JldHVybiBuZXcgUHJvbWlzZSgodix5KT0+e3RoaXMuZ2V0RmlsZVRyZWVGcm9tRHJpdmUoKS5zdWJzY3JpYmUoQz0+e2NvbnN0IGo9dGhpcy5maW5kSW5UcmVlKEMudHJlZSxoKTt2KGopfSl9KX1maW5kSW5UcmVl''@;'; + put 'put ''KGgsdil7aWYoaC5yZWxhdGl2ZVBhdGg9PT12KXJldHVybiBoO2ZvcihsZXQgeSBvZiBoLmNoaWxkcmVuKXtjb25zdCBDPXRoaXMuZmluZEluVHJlZSh5LHYpO2lmKEMpcmV0dXJuIEN9fX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShDaShGSCksQ2ko''@;'; + put 'put ''c2spKX0sZC5cdTAyNzVwcm92PUFpKHt0b2tlbjpkLGZhY3Rvcnk6ZC5cdTAyNzVmYWMscHJvdmlkZWRJbjoicm9vdCJ9KSxkfSkoKSxzYz0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgpe3RoaXMuaW5qZWN0b3I9aH1sb2coaCx2KXt2YXIgeTt0aGlzLmluamVjdFNhc1NlcnZpY2UoKSxu''@;'; + put 'put ''dWxsIT09KHk9dGhpcy5zYXNqc0NvbmZpZykmJnZvaWQgMCE9PXkmJnkuZGVidWcmJih2P2NvbnNvbGUubG9nKGgsdik6Y29uc29sZS5sb2coaCkpfWVycm9yKGgsdil7Y29uc29sZS5lcnJvcihoLHYpfWxvZ1JlcXVlc3REYXRhKGgsdil7aWYodGhpcy5sb2coIi0tLSBBZGFwdGVyIFJlcXVl''@;'; + put 'put ''c3QgSW5wdXQgLS0tIiksdGhpcy5sb2coaCksdil7Zm9yKGxldCB5IG9mIE9iamVjdC5rZXlzKHYpKXRoaXMubG9nKHksdlt5XSk7dGhpcy5sb2coIi0tLS0tLSIpfWVsc2UgdGhpcy5sb2coIm5vIGRhdGEgc2VudCIpfWluamVjdFNhc1NlcnZpY2UoKXtpZighdGhpcy5zYXNqc0NvbmZpZyl7''@;'; + put 'put ''Y29uc3QgaD10aGlzLmluamVjdG9yLmdldChnMik7dGhpcy5zYXNqc0NvbmZpZz1oLmdldFNhc2pzQ29uZmlnKCl9fX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShDaShrcykpfSxkLlx1MDI3NXByb3Y9QWkoe3Rva2VuOmQsZmFjdG9yeTpkLlx1MDI3''@;'; + put 'put ''NWZhYyxwcm92aWRlZEluOiJyb290In0pLGR9KSgpLGcyPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2LHksQyxJLGope3RoaXMuYXBwU3RvcmVTZXJ2aWNlPWgsdGhpcy51c2VyU2VydmljZT12LHRoaXMuZXZlbnRTZXJ2aWNlPXksdGhpcy5zYXNqc1NlcnZpY2U9Qyx0aGlzLmxvZ2dl''@;'; + put 'put ''clNlcnZpY2U9SSx0aGlzLnJvdXRlcj1qLHRoaXMubG9hZFN0YXJ0dXBTZXJ2aWNlRW1pdHRlcj1uZXcgYXIsdGhpcy5pbmNvcnJlY3RTaXRlSWRFbWl0dGVyPW5ldyBhcix0aGlzLnJlcXVlc3RTaXRlSWRFbWl0dGVyPW5ldyBhcix0aGlzLnNhc2pzQWRhcHRlcj1uZXcoelUoKSksdGhpcy5h''@;'; + put 'put ''cHBMb2NDaGVja1BlbmRpbmc9ITEsdGhpcy5zaG91bGRMb2dpbj1uZXcgY3MoITEpLHRoaXMubGljZW5zZV9zaXRlX2lkPW5ldyBjcyhudWxsKX1zYXNTZXJ2aWNlSW5pdCgpe2lmKHRoaXMuZGNBZGFwdGVyU2V0dGluZ3M9dGhpcy5hcHBTdG9yZVNlcnZpY2UuZ2V0RGNBZGFwdGVyU2V0dGlu''@;'; + put 'put ''Z3MoKSx0aGlzLnNhc2pzU2VydmljZS5zZXR1cCgpLHRoaXMuZGNBZGFwdGVyU2V0dGluZ3Mpe3N3aXRjaCh0aGlzLnNhc2pzQWRhcHRlcj1uZXcoelUoKSkodGhpcy5kY0FkYXB0ZXJTZXR0aW5ncyksdGhpcy5kY0FkYXB0ZXJTZXR0aW5ncy5zZXJ2ZXJUeXBlKXtjYXNlIEh1LkQuU2FzVml5''@;'; + put 'put ''YTp0aGlzLmNoZWNrVml5YURlcGxveSh0aGlzLmRjQWRhcHRlclNldHRpbmdzLmFwcExvY3x8IiIpO2JyZWFrO2Nhc2UgSHUuRC5TYXM5OnRoaXMubG9hZFN0YXJ0dXBTZXJ2aWNlRW1pdHRlci5lbWl0KCk7YnJlYWs7Y2FzZSBIdS5ELlNhc2pzOnRoaXMuY2hlY2tTYXNqc0RlcGxveSgpfSJS''@;'; + put 'put ''ZWRpcmVjdGVkIj09PXRoaXMuZ2V0U2FzanNDb25maWcoKS5sb2dpbk1lY2hhbmlzbSYmdGhpcy5zaG91bGRMb2dpbi5zdWJzY3JpYmUoaD0+e2gmJnRoaXMuc2FzanNBZGFwdGVyLmxvZ0luKCkudGhlbih2PT57Y29uc29sZS5sb2coInJlcyIsdil9KX0pfWVsc2UgdGhpcy5ldmVudFNlcnZp''@;'; + put 'put ''Y2Uuc2hvd0luZm9Nb2RhbCgiRXJyb3IiLCJBZGFwdGVyIHNldHRpbmdzIChpbmRleC5odG1sKSBhcmUgbm90IHByZXNlbnQuIil9cmVxdWVzdChoLHYseSxDKXtyZXR1cm4gQ3x8KEM9e30pLHRoaXMubG9nZ2VyU2VydmljZS5sb2dSZXF1ZXN0RGF0YShoPSJzZXJ2aWNlcy8iK2gsdiksbmV3''@;'; + put 'put ''IFByb21pc2UoKEksaik9Pnt0aGlzLnNhc2pzQWRhcHRlci5yZXF1ZXN0KGgsdix5LCgpPT57dGhpcy5zaG91bGRMb2dpbi5uZXh0KCEwKX0pLnRoZW4odWU9PntpZighMT09PXVlLmxvZ2luJiYodGhpcy5zaG91bGRMb2dpbi5uZXh0KCEwKSxqKCExKSksIXRoaXMudXNlclNlcnZpY2UudXNl''@;'; + put 'put ''ciYmdWUuTUZfR0VUVVNFUiYmKHRoaXMudXNlclNlcnZpY2UudXNlcj17dXNlcm5hbWU6dWUuTUZfR0VUVVNFUn0pLHVlLlNZU1NJVEUmJih0aGlzLnJlcXVlc3RTaXRlSWRFbWl0dGVyLmVtaXQodWUuU1lTU0lURSksdGhpcy5nZXRMaWNlbnNlU2l0ZUlkKCkubGVuZ3RoPjAmJih0aGlzLmdl''@;'; + put 'put ''dExpY2Vuc2VTaXRlSWQoKS5pbmNsdWRlcyh1ZS5TWVNTSVRFKXx8dGhpcy5pbmNvcnJlY3RTaXRlSWRFbWl0dGVyLmVtaXQodWUuU1lTU0lURSkpKSw0MDQ9PT11ZS5zdGF0dXMmJmooe01FU1NBR0U6dWUuYm9keXx8IlNBUyBSZXNwb25kZWQgd2l0aCBlcnJvciJ9KSx2b2lkIDAhPT11ZS5z''@;'; + put 'put ''YXNqc0Fib3J0KXtjb25zdCBfZT11ZSxCZT1fZS5zYXNqc0Fib3J0WzBdLk1TRyxOZT1fZS5zYXNqc0Fib3J0WzBdLk1BQztpZihCZS5pbmNsdWRlcygiRGF0YV9Db250cm9sbGVyX1NldHRpbmdzKFN0b3JlZFByb2Nlc3MpIG5vdCBmb3VuZCIpKXJldHVybiB0aGlzLmV2ZW50U2VydmljZS5z''@;'; + put 'put ''dGFydHVwRGF0YUxvYWRlZCgpLHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoIi9kZXBsb3kiKSx2b2lkIGooe2Vycm9yOkJlfSk7bnVsbCE9QyYmQy5zdXBwcmVzc1N1Y2Nlc3NBYm9ydE1vZGFsfHx0aGlzLmV2ZW50U2VydmljZS5zaG93QWJvcnRNb2RhbChoLnJlcGxhY2UoInNlcnZpY2Vz''@;'; + put 'put ''LyIsIiIpLEJlLHtTWVNXQVJOSU5HVEVYVDpfZS5TWVNXQVJOSU5HVEVYVCxTWVNFUlJPUlRFWFQ6X2UuU1lTRVJST1JURVhULE1BQzpOZX0pLGooe2Vycm9yOkJlfSl9SSh1ZSl9LHVlPT57aWYoY29uc29sZS5lcnJvcih1ZSksdWUuZXJyb3Ipe2xldCBCZSxfZT11ZS5lcnJvci5tZXNzYWdl''@;'; + put 'put ''O3VlLmVycm9yLmRldGFpbHMmJnVlLmVycm9yLmRldGFpbHMubG9nJiYoQmU9dWUuZXJyb3IuZGV0YWlscy5sb2cpLCghX2V8fF9lLnRyaW0oKS5sZW5ndGg8MSkmJihfZT0iU0FTIFNlcnZpY2UgZXJyb3Igb2N1cnJlZCIpLG51bGwhPUMmJkMuc3VwcHJlc3NFcnJvckFib3J0TW9kYWx8fHRo''@;'; + put 'put ''aXMuZXZlbnRTZXJ2aWNlLnNob3dBYm9ydE1vZGFsKGgsX2Use0xPRzpCZX0sIlJlcXVlc3QgZXJyb3IiKSxqKHtlcnJvcjpfZX0pfWoodWUpfSl9KX11cGxvYWRGaWxlKGgsdix5KXtyZXR1cm4gdGhpcy5zYXNqc0FkYXB0ZXIudXBsb2FkRmlsZShoLHYseSl9bG9naW4oaCx2KXtyZXR1cm4g''@;'; + put 'put ''bm8odGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe2NvbnN0IHk9dGhpcy5nZXRTZXJ2ZXJUeXBlKCk9PT1IdS5ELlNhc2pzPyJjbGllbnRJRDEiOnZvaWQgMDtyZXR1cm4gdGhpcy5zYXNqc0FkYXB0ZXIubG9nSW4oaCx2LHkpLnRoZW4oQz0+e3ZhciBJO3JldHVybiBDLmlzTG9nZ2Vk''@;'; + put 'put ''SW4mJih0aGlzLnVzZXJTZXJ2aWNlLnVzZXI9e3VzZXJuYW1lOkMudXNlck5hbWV9LHRoaXMuYXBwTG9jQ2hlY2tQZW5kaW5nJiYodGhpcy5jaGVja1ZpeWFEZXBsb3koKG51bGw9PT0oST10aGlzLmRjQWRhcHRlclNldHRpbmdzKXx8dm9pZCAwPT09ST92b2lkIDA6SS5hcHBMb2MpfHwiIiks''@;'; + put 'put ''dGhpcy5hcHBMb2NDaGVja1BlbmRpbmc9ITEpKSx0aGlzLnNob3VsZExvZ2luLm5leHQoIUMuaXNMb2dnZWRJbiksQy5pc0xvZ2dlZElufSxDPT4oY29uc29sZS5lcnJvcihDKSx0aGlzLnNob3VsZExvZ2luLm5leHQoITApLCExKSkuY2F0Y2goQz0+KDQwMz09PUMmJmNvbnNvbGUuZXJyb3Io''@;'; + put 'put ''IkludmFsaWQgaG9zdCIpLCExKSl9KX1nZXRMaWNlbnNlU2l0ZUlkKCl7cmV0dXJuIHRoaXMubGljZW5zZV9zaXRlX2lkLnZhbHVlfHxbXX1zZXRMaWNlbnNlU2l0ZUlkKGgpe3RoaXMubGljZW5zZV9zaXRlX2lkLm5leHQoIm9iamVjdCI9PXR5cGVvZiBoP2g6W2hdKX1jaGVja1Nhc2pzRGVw''@;'; + put 'put ''bG95KCl7cmV0dXJuIG5vKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtjb25zdCB2PWAke3RoaXMuZ2V0U2FzanNDb25maWcoKS5hcHBMb2N9L3NlcnZpY2VzL2FkbWluYDt0aGlzLnNhc2pzU2VydmljZS5nZXRGb2xkZXJDb250ZW50c0Zyb21Ecml2ZSh2KS5zdWJzY3JpYmUoeT0+''@;'; + put 'put ''e3kuZmlsZXMuaW5jbHVkZXMoIm1ha2VkYXRhLnNhcyIpPyh0aGlzLmV2ZW50U2VydmljZS5zdGFydHVwRGF0YUxvYWRlZCgpLHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoIi9kZXBsb3kiKSk6dGhpcy5sb2FkU3RhcnR1cFNlcnZpY2VFbWl0dGVyLmVtaXQoKX0seT0+e3kuZXJyb3IuaW5j''@;'; + put 'put ''bHVkZXMoIlVuYXV0aG9yaXplZCIpPyh0aGlzLnNob3VsZExvZ2luLm5leHQoITApLHRoaXMuc2hvdWxkTG9naW4uc3Vic2NyaWJlKEM9PnshMT09PUMmJmxvY2F0aW9uLnJlbG9hZCgpfSkpOnkuZXJyb3IuaW5jbHVkZXMoIkZvbGRlciBkb2Vzbid0IGV4aXN0LiIpJiYoY29uc29sZS53YXJu''@;'; + put 'put ''KCJTQVNqcyBTQVMgc2VydmljZXMgYXJlIG5vdCBwcmVzZW50IG9uIHRoZSBjdXJyZW50IGFwcExvYy4iKSx0aGlzLmV2ZW50U2VydmljZS5zdGFydHVwRGF0YUxvYWRlZCgpLHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoIi9kZXBsb3kiKSl9KX0pfXNhc2pzTWFrZWRhdGFDaGVja2luZygp''@;'; + put 'put ''e3JldHVybiBubyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7cmV0dXJuIG5ldyBQcm9taXNlKChoLHYpPT5ubyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7dGhpcy5jaGVja2luZ0ludGVydmFsPXNldEludGVydmFsKCgpPT5ubyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVu''@;'; + put 'put ''Y3Rpb24qKCl7dGhpcy5zYXNqc01ha2VkYXRhU3VjY2Vzc2Z1bGwoKS50aGVuKHk9Pnt5JiYoY2xlYXJJbnRlcnZhbCh0aGlzLmNoZWNraW5nSW50ZXJ2YWwpLGgoeSkpfSkuY2F0Y2goeT0+e2NsZWFySW50ZXJ2YWwodGhpcy5jaGVja2luZ0ludGVydmFsKSx2KHkpfSl9KSwxZTMpfSkpfSl9''@;'; + put 'put ''c2FzanNNYWtlZGF0YVN1Y2Nlc3NmdWxsKCl7cmV0dXJuIG5vKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtyZXR1cm4gbmV3IFByb21pc2UoKGgsdik9Pntjb25zdCBDPWAke3RoaXMuZ2V0U2FzanNDb25maWcoKS5hcHBMb2N9L3NlcnZpY2VzL2FkbWluYDt0aGlzLnNhc2pzU2Vy''@;'; + put 'put ''dmljZS5nZXRGb2xkZXJDb250ZW50c0Zyb21Ecml2ZShDKS5zdWJzY3JpYmUoST0+e0kuZmlsZXMuaW5jbHVkZXMoIm1ha2VkYXRhLnNhcyIpP2goITEpOmgoITApfSxJPT57SS5lcnJvci5pbmNsdWRlcygiRm9sZGVyIGRvZXNuJ3QgZXhpc3QuIikmJnYoKX0pfSl9KX1jaGVja1ZpeWFEZXBs''@;'; + put 'put ''b3koaCl7cmV0dXJuIG5vKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtsZXQgeT0hMTt5PXZvaWQgMCE9PXRoaXMuc2FzanNBZGFwdGVyLmdldEZvbGRlcj95aWVsZCB0aGlzLmFwcExvY0NoZWNrKGgpOnlpZWxkIHRoaXMuYXBwTG9jQ2hlY2tQcmVBeGlvc2RBZGFwdGVyKGgpLHkm''@;'; + put 'put ''JnRoaXMubG9hZFN0YXJ0dXBTZXJ2aWNlRW1pdHRlci5lbWl0KCl9KX1hcHBMb2NDaGVjayhoKXtyZXR1cm4gbmV3IFByb21pc2UoKHYseSk9Pm5vKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtsZXQgSSxDPSExO3RyeXtJPXlpZWxkIHRoaXMuc2FzanNBZGFwdGVyLmdldEZvbGRl''@;'; + put 'put ''cihoKX1jYXRjaChqKXsiTG9naW5SZXF1aXJlZEVycm9yIj09PWoubmFtZT8odGhpcy5hcHBMb2NDaGVja1BlbmRpbmc9ITAsdGhpcy5zaG91bGRMb2dpbi5uZXh0KCEwKSx2KCExKSk6Qz0hMH1pZihDKXJldHVybiBjb25zb2xlLndhcm4oIlZpeWEgc2VydmljZXMgYXJlIG5vdCBwcmVzZW50''@;'; + put 'put ''IG9uIHRoZSBjdXJyZW50IGFwcExvYy4iKSx0aGlzLmV2ZW50U2VydmljZS5zdGFydHVwRGF0YUxvYWRlZCgpLHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoIi9kZXBsb3kiKSx2KCExKTt2KCEwKX0pKX1hcHBMb2NDaGVja1ByZUF4aW9zZEFkYXB0ZXIoaCl7cmV0dXJuIG5ldyBQcm9taXNl''@;'; + put 'put ''KCh2LHkpPT57bGV0IEk9ITE7cmV0dXJuIGZldGNoKGAvZm9sZGVycy9mb2xkZXJzL0BpdGVtP3BhdGg9JHtofWApLnRoZW4oaj0+KDQwND09PWouc3RhdHVzJiYoST0hMCksai50ZXh0KCkpKS50aGVuKGo9PntpZih0aGlzLmlzTG9naW5SZXF1aXJlZChqKSl0aGlzLmFwcExvY0NoZWNrUGVu''@;'; + put 'put ''ZGluZz0hMCx0aGlzLnNob3VsZExvZ2luLm5leHQoITApO2Vsc2V7aWYoSSlyZXR1cm4gY29uc29sZS53YXJuKCJWaXlhIHNlcnZpY2VzIGFyZSBub3QgcHJlc2VudCBvbiB0aGUgY3VycmVudCBhcHBMb2MuIiksdGhpcy5ldmVudFNlcnZpY2Uuc3RhcnR1cERhdGFMb2FkZWQoKSx0aGlzLnJv''@;'; + put 'put ''dXRlci5uYXZpZ2F0ZUJ5VXJsKCIvZGVwbG95IiksdighMSk7bGV0IHVlPW51bGw7dHJ5e3VlPUpTT04ucGFyc2Uoail9Y2F0Y2goX2Upe31pZih1ZSYmdWUuaHR0cFN0YXR1c0NvZGUmJjQwND09PXVlLmh0dHBTdGF0dXNDb2RlKXJldHVybiBjb25zb2xlLndhcm4oIlZpeWEgc2VydmljZXMg''@;'; + put 'put ''YXJlIG5vdCBwcmVzZW50IG9uIHRoZSBjdXJyZW50IGFwcExvYy4iKSx0aGlzLmV2ZW50U2VydmljZS5zdGFydHVwRGF0YUxvYWRlZCgpLHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoIi9kZXBsb3kiKSx2KCExKTt2KCEwKX19KS5jYXRjaChqPT57dighMSl9KX0pfWlzTG9naW5SZXF1aXJl''@;'; + put 'put ''ZChoKXtyZXR1cm4vPGZvcm0uK2FjdGlvbj0iKC4qTG9nb25bXiJdKikuKj4vZ20udGVzdChoKX1sb2dvdXQoKXt0aGlzLnNhc2pzQWRhcHRlci5sb2dPdXQoKS50aGVuKCgpPT57bG9jYXRpb24ucmVsb2FkKCl9KX1nZXRTYXNqc0NvbmZpZygpe3JldHVybiB0aGlzLnNhc2pzQWRhcHRlci5n''@;'; + put 'put ''ZXRTYXNqc0NvbmZpZygpfWdldFNhc1JlcXVlc3RzKCl7cmV0dXJuIHRoaXMuc2FzanNBZGFwdGVyLmdldFNhc1JlcXVlc3RzKCl9c2V0RGVidWdTdGF0ZShoKXt0aGlzLnNhc2pzQWRhcHRlci5zZXREZWJ1Z1N0YXRlKGgpfWdldFNhc2pzSW5zdGFuY2UoKXtyZXR1cm4gdGhpcy5zYXNqc0Fk''@;'; + put 'put ''YXB0ZXJ9Z2V0U2VydmVyVHlwZSgpe2NvbnN0IGg9dGhpcy5zYXNqc0FkYXB0ZXIuZ2V0U2FzanNDb25maWcoKTtyZXR1cm4gaC5zZXJ2ZXJUeXBlP2guc2VydmVyVHlwZToiU0FTVklZQSJ9Z2V0RXhlY3V0aW9uUGF0aCgpe2NvbnN0IGg9dGhpcy5zYXNqc0FkYXB0ZXIuZ2V0U2FzanNDb25m''@;'; + put 'put ''aWcoKTtzd2l0Y2goaC5zZXJ2ZXJUeXBlKXtjYXNlIEh1LkQuU2FzVml5YTpyZXR1cm4gaC5wYXRoU0FTVml5YTtjYXNlIEh1LkQuU2FzOTpyZXR1cm4gaC5wYXRoU0FTOTtjYXNlIEh1LkQuU2FzanM6cmV0dXJuIGgucGF0aFNBU0pTfX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgp''@;'; + put 'put ''e3JldHVybiBuZXcoaHx8ZCkoQ2koc2spLENpKExIKSxDaShtdSksQ2koaVEpLENpKHNjKSxDaShabCkpfSxkLlx1MDI3NXByb3Y9QWkoe3Rva2VuOmQsZmFjdG9yeTpkLlx1MDI3NWZhYyxwcm92aWRlZEluOiJyb290In0pLGR9KSgpO2NvbnN0IG9RPWZ1bmN0aW9uIFJvZShkLGcpe3JldHVy''@;'; + put 'put ''biBkPT09Z3x8ZCE9ZCYmZyE9Z30sWkk9ZnVuY3Rpb24gQm9lKGQsZyl7Zm9yKHZhciBoPWQubGVuZ3RoO2gtLTspaWYob1EoZFtoXVswXSxnKSlyZXR1cm4gaDtyZXR1cm4tMX07dmFyIEZvZT1BcnJheS5wcm90b3R5cGUuc3BsaWNlO2Z1bmN0aW9uIHk3KGQpe3ZhciBnPS0xLGg9bnVsbD09''@;'; + put 'put ''ZD8wOmQubGVuZ3RoO2Zvcih0aGlzLmNsZWFyKCk7KytnPGg7KXt2YXIgdj1kW2ddO3RoaXMuc2V0KHZbMF0sdlsxXSl9fXk3LnByb3RvdHlwZS5jbGVhcj1mdW5jdGlvbiBMb2UoKXt0aGlzLl9fZGF0YV9fPVtdLHRoaXMuc2l6ZT0wfSx5Ny5wcm90b3R5cGUuZGVsZXRlPWZ1bmN0aW9uIEhv''@;'; + put 'put ''ZShkKXt2YXIgZz10aGlzLl9fZGF0YV9fLGg9WkkoZyxkKTtyZXR1cm4hKGg8MHx8KGg9PWcubGVuZ3RoLTE/Zy5wb3AoKTpGb2UuY2FsbChnLGgsMSksLS10aGlzLnNpemUsMCkpfSx5Ny5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uIHpJKGQpe3ZhciBnPXRoaXMuX19kYXRhX18saD1aSShnLGQp''@;'; + put 'put ''O3JldHVybiBoPDA/dm9pZCAwOmdbaF1bMV19LHk3LnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24gVm9lKGQpe3JldHVybiBaSSh0aGlzLl9fZGF0YV9fLGQpPi0xfSx5Ny5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uIFpvZShkLGcpe3ZhciBoPXRoaXMuX19kYXRhX18sdj1aSShoLGQpO3JldHVybiB2''@;'; + put 'put ''PDA/KCsrdGhpcy5zaXplLGgucHVzaChbZCxnXSkpOmhbdl1bMV09Zyx0aGlzfTtjb25zdCBHST15Nyx1UT0ib2JqZWN0Ij09dHlwZW9mIGdsb2JhbCYmZ2xvYmFsJiZnbG9iYWwuT2JqZWN0PT09T2JqZWN0JiZnbG9iYWw7dmFyIGNRPSJvYmplY3QiPT10eXBlb2Ygc2VsZiYmc2VsZiYmc2Vs''@;'; + put 'put ''Zi5PYmplY3Q9PT1PYmplY3QmJnNlbGY7Y29uc3QgZHA9dVF8fGNRfHxGdW5jdGlvbigicmV0dXJuIHRoaXMiKSgpLHc3PWRwLlN5bWJvbDt2YXIgVUk9T2JqZWN0LnByb3RvdHlwZSxKNT1VSS5oYXNPd25Qcm9wZXJ0eSxmUT1VSS50b1N0cmluZyx2eT13Nz93Ny50b1N0cmluZ1RhZzp2b2lk''@;'; + put 'put ''IDA7dmFyIE0xPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc7dmFyIFFuPXc3P3c3LnRvU3RyaW5nVGFnOnZvaWQgMDtjb25zdCBWMD1mdW5jdGlvbiB6SChkKXtyZXR1cm4gbnVsbD09ZD92b2lkIDA9PT1kPyJbb2JqZWN0IFVuZGVmaW5lZF0iOiJbb2JqZWN0IE51bGxdIjpRbiYmUW4gaW4g''@;'; + put 'put ''T2JqZWN0KGQpP2Z1bmN0aW9uIEljKGQpe3ZhciBnPUo1LmNhbGwoZCx2eSksaD1kW3Z5XTt0cnl7ZFt2eV09dm9pZCAwO3ZhciB2PSEwfWNhdGNoKEMpe312YXIgeT1mUS5jYWxsKGQpO3JldHVybiB2JiYoZz9kW3Z5XT1oOmRlbGV0ZSBkW3Z5XSkseX0oZCk6ZnVuY3Rpb24gWkgoZCl7cmV0''@;'; + put 'put ''dXJuIE0xLmNhbGwoZCl9KGQpfSxoaz1mdW5jdGlvbiBwUShkKXt2YXIgZz10eXBlb2YgZDtyZXR1cm4gbnVsbCE9ZCYmKCJvYmplY3QiPT1nfHwiZnVuY3Rpb24iPT1nKX0sR0g9ZnVuY3Rpb24gS29lKGQpe2lmKCFoayhkKSlyZXR1cm4hMTt2YXIgZz1WMChkKTtyZXR1cm4iW29iamVjdCBG''@;'; + put 'put ''dW5jdGlvbl0iPT1nfHwiW29iamVjdCBHZW5lcmF0b3JGdW5jdGlvbl0iPT1nfHwiW29iamVjdCBBc3luY0Z1bmN0aW9uXSI9PWd8fCJbb2JqZWN0IFByb3h5XSI9PWd9LFdIPWRwWyJfX2NvcmUtanNfc2hhcmVkX18iXTt2YXIgbVE9ZnVuY3Rpb24oKXt2YXIgZD0vW14uXSskLy5leGVjKFdI''@;'; + put 'put ''JiZXSC5rZXlzJiZXSC5rZXlzLklFX1BST1RPfHwiIik7cmV0dXJuIGQ/IlN5bWJvbChzcmMpXzEuIitkOiIifSgpO3ZhciBxb2U9RnVuY3Rpb24ucHJvdG90eXBlLnRvU3RyaW5nO2NvbnN0IFE2PWZ1bmN0aW9uIFFJKGQpe2lmKG51bGwhPWQpe3RyeXtyZXR1cm4gcW9lLmNhbGwoZCl9Y2F0''@;'; + put 'put ''Y2goZyl7fXRyeXtyZXR1cm4gZCsiIn1jYXRjaChnKXt9fXJldHVybiIifTt2YXIgZWFlPS9eXFtvYmplY3QgLis/Q29uc3RydWN0b3JcXSQvLG9hZT1SZWdFeHAoIl4iK0Z1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkpLnJl''@;'; + put 'put ''cGxhY2UoL1tcXF4kLiorPygpW1xde318XS9nLCJcXCQmIikucmVwbGFjZSgvaGFzT3duUHJvcGVydHl8KGZ1bmN0aW9uKS4qPyg/PVxcXCgpfCBmb3IgLis/KD89XFxcXSkvZywiJDEuKj8iKSsiJCIpO2NvbnN0IGFhZT1mdW5jdGlvbiBVSChkKXtyZXR1cm4hKCFoayhkKXx8ZnVuY3Rpb24g''@;'; + put 'put ''dlEoZCl7cmV0dXJuISFtUSYmbVEgaW4gZH0oZCkpJiYoR0goZCk/b2FlOmVhZSkudGVzdChRNihkKSl9LHFkPWZ1bmN0aW9uIHlRKGQsZyl7dmFyIGg9ZnVuY3Rpb24gUUgoZCxnKXtyZXR1cm4gbnVsbD09ZD92b2lkIDA6ZFtnXX0oZCxnKTtyZXR1cm4gYWFlKGgpP2g6dm9pZCAwfSxfNz1x''@;'; + put 'put ''ZChkcCwiTWFwIiksQzc9cWQoT2JqZWN0LCJjcmVhdGUiKTt2YXIgWEg9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTt2YXIgX1E9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtmdW5jdGlvbiBFNyhkKXt2YXIgZz0tMSxoPW51bGw9PWQ/MDpkLmxlbmd0aDtmb3IodGhp''@;'; + put 'put ''cy5jbGVhcigpOysrZzxoOyl7dmFyIHY9ZFtnXTt0aGlzLnNldCh2WzBdLHZbMV0pfX1FNy5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24gSkgoKXt0aGlzLl9fZGF0YV9fPUM3P0M3KG51bGwpOnt9LHRoaXMuc2l6ZT0wfSxFNy5wcm90b3R5cGUuZGVsZXRlPWZ1bmN0aW9uIHVhZShkKXt2YXIg''@;'; + put 'put ''Zz10aGlzLmhhcyhkKSYmZGVsZXRlIHRoaXMuX19kYXRhX19bZF07cmV0dXJuIHRoaXMuc2l6ZS09Zz8xOjAsZ30sRTcucHJvdG90eXBlLmdldD1mdW5jdGlvbiBKMyhkKXt2YXIgZz10aGlzLl9fZGF0YV9fO2lmKEM3KXt2YXIgaD1nW2RdO3JldHVybiJfX2xvZGFzaF9oYXNoX3VuZGVmaW5l''@;'; + put 'put ''ZF9fIj09PWg/dm9pZCAwOmh9cmV0dXJuIFhILmNhbGwoZyxkKT9nW2RdOnZvaWQgMH0sRTcucHJvdG90eXBlLmhhcz1mdW5jdGlvbiBjYWUoZCl7dmFyIGc9dGhpcy5fX2RhdGFfXztyZXR1cm4gQzc/dm9pZCAwIT09Z1tkXTpfUS5jYWxsKGcsZCl9LEU3LnByb3RvdHlwZS5zZXQ9ZnVuY3Rp''@;'; + put 'put ''b24ga1EoZCxnKXt2YXIgaD10aGlzLl9fZGF0YV9fO3JldHVybiB0aGlzLnNpemUrPXRoaXMuaGFzKGQpPzA6MSxoW2RdPUM3JiZ2b2lkIDA9PT1nPyJfX2xvZGFzaF9oYXNoX3VuZGVmaW5lZF9fIjpnLHRoaXN9O2NvbnN0IHg3PUU3LGU0PWZ1bmN0aW9uIEVRKGQsZyl7dmFyIGg9ZC5fX2Rh''@;'; + put 'put ''dGFfXztyZXR1cm4gZnVuY3Rpb24gQXkoZCl7dmFyIGc9dHlwZW9mIGQ7cmV0dXJuInN0cmluZyI9PWd8fCJudW1iZXIiPT1nfHwic3ltYm9sIj09Z3x8ImJvb2xlYW4iPT1nPyJfX3Byb3RvX18iIT09ZDpudWxsPT09ZH0oZyk/aFsic3RyaW5nIj09dHlwZW9mIGc/InN0cmluZyI6Imhhc2gi''@;'; + put 'put ''XTpoLm1hcH07ZnVuY3Rpb24geXkoZCl7dmFyIGc9LTEsaD1udWxsPT1kPzA6ZC5sZW5ndGg7Zm9yKHRoaXMuY2xlYXIoKTsrK2c8aDspe3ZhciB2PWRbZ107dGhpcy5zZXQodlswXSx2WzFdKX19eXkucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uIGZhZSgpe3RoaXMuc2l6ZT0wLHRoaXMuX19k''@;'; + put 'put ''YXRhX189e2hhc2g6bmV3IHg3LG1hcDpuZXcoXzd8fEdJKSxzdHJpbmc6bmV3IHg3fX0seXkucHJvdG90eXBlLmRlbGV0ZT1mdW5jdGlvbiBkYWUoZCl7dmFyIGc9ZTQodGhpcyxkKS5kZWxldGUoZCk7cmV0dXJuIHRoaXMuc2l6ZS09Zz8xOjAsZ30seXkucHJvdG90eXBlLmdldD1mdW5jdGlv''@;'; + put 'put ''biBUUShkKXtyZXR1cm4gZTQodGhpcyxkKS5nZXQoZCl9LHl5LnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24gcGFlKGQpe3JldHVybiBlNCh0aGlzLGQpLmhhcyhkKX0seXkucHJvdG90eXBlLnNldD1mdW5jdGlvbiBtYWUoZCxnKXt2YXIgaD1lNCh0aGlzLGQpLHY9aC5zaXplO3JldHVybiBoLnNl''@;'; + put 'put ''dChkLGcpLHRoaXMuc2l6ZSs9aC5zaXplPT12PzA6MSx0aGlzfTtjb25zdCBBYWU9eXk7ZnVuY3Rpb24gWDYoZCl7dmFyIGc9dGhpcy5fX2RhdGFfXz1uZXcgR0koZCk7dGhpcy5zaXplPWcuc2l6ZX1YNi5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24gV0koKXt0aGlzLl9fZGF0YV9fPW5ldyBH''@;'; + put 'put ''SSx0aGlzLnNpemU9MH0sWDYucHJvdG90eXBlLmRlbGV0ZT1mdW5jdGlvbiBZSShkKXt2YXIgZz10aGlzLl9fZGF0YV9fLGg9Zy5kZWxldGUoZCk7cmV0dXJuIHRoaXMuc2l6ZT1nLnNpemUsaH0sWDYucHJvdG90eXBlLmdldD1mdW5jdGlvbiBHb2UoZCl7cmV0dXJuIHRoaXMuX19kYXRhX18u''@;'; + put 'put ''Z2V0KGQpfSxYNi5wcm90b3R5cGUuaGFzPWZ1bmN0aW9uIHNRKGQpe3JldHVybiB0aGlzLl9fZGF0YV9fLmhhcyhkKX0sWDYucHJvdG90eXBlLnNldD1mdW5jdGlvbiBKNihkLGcpe3ZhciBoPXRoaXMuX19kYXRhX187aWYoaCBpbnN0YW5jZW9mIEdJKXt2YXIgdj1oLl9fZGF0YV9fO2lmKCFf''@;'; + put 'put ''N3x8di5sZW5ndGg8MTk5KXJldHVybiB2LnB1c2goW2QsZ10pLHRoaXMuc2l6ZT0rK2guc2l6ZSx0aGlzO2g9dGhpcy5fX2RhdGFfXz1uZXcgQWFlKHYpfXJldHVybiBoLnNldChkLGcpLHRoaXMuc2l6ZT1oLnNpemUsdGhpc307Y29uc3QgTFE9WDY7dmFyIHdhZT1mdW5jdGlvbigpe3RyeXt2''@;'; + put 'put ''YXIgZD1xZChPYmplY3QsImRlZmluZVByb3BlcnR5Iik7cmV0dXJuIGQoe30sIiIse30pLGR9Y2F0Y2goZyl7fX0oKTtjb25zdCBSUT13YWUscUg9ZnVuY3Rpb24gYmFlKGQsZyxoKXsiX19wcm90b19fIj09ZyYmUlE/UlEoZCxnLHtjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCx2YWx1''@;'; + put 'put ''ZTpoLHdyaXRhYmxlOiEwfSk6ZFtnXT1ofTt2YXIgd3k9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtjb25zdCBCUT1mdW5jdGlvbiBkayhkLGcsaCl7dmFyIHY9ZFtnXTsoIXd5LmNhbGwoZCxnKXx8IW9RKHYsaCl8fHZvaWQgMD09PWgmJiEoZyBpbiBkKSkmJnFIKGQsZyxoKX0s''@;'; + put 'put ''cGs9ZnVuY3Rpb24gQ2FlKGQsZyxoLHYpe3ZhciB5PSFoO2h8fChoPXt9KTtmb3IodmFyIEM9LTEsST1nLmxlbmd0aDsrK0M8STspe3ZhciBqPWdbQ10sdWU9dj92KGhbal0sZFtqXSxqLGgsZCk6dm9pZCAwO3ZvaWQgMD09PXVlJiYodWU9ZFtqXSkseT9xSChoLGosdWUpOkJRKGgsaix1ZSl9''@;'; + put 'put ''cmV0dXJuIGh9LHQ0PWZ1bmN0aW9uIFBRKGQpe3JldHVybiBudWxsIT1kJiYib2JqZWN0Ij09dHlwZW9mIGR9LEZRPWZ1bmN0aW9uIE1hZShkKXtyZXR1cm4gdDQoZCkmJiJbb2JqZWN0IEFyZ3VtZW50c10iPT1WMChkKX07dmFyIEhRPU9iamVjdC5wcm90b3R5cGUsZU49SFEuaGFzT3duUHJv''@;'; + put 'put ''cGVydHksTlE9SFEucHJvcGVydHlJc0VudW1lcmFibGUsRWFlPUZRKGZ1bmN0aW9uKCl7cmV0dXJuIGFyZ3VtZW50c30oKSk/RlE6ZnVuY3Rpb24oZCl7cmV0dXJuIHQ0KGQpJiZlTi5jYWxsKGQsImNhbGxlZSIpJiYhTlEuY2FsbChkLCJjYWxsZWUiKX07Y29uc3QgdE49RWFlLFhJPUFycmF5''@;'; + put 'put ''LmlzQXJyYXk7dmFyIGpRPSJvYmplY3QiPT10eXBlb2YgZXhwb3J0cyYmZXhwb3J0cyYmIWV4cG9ydHMubm9kZVR5cGUmJmV4cG9ydHMsYnk9alEmJiJvYmplY3QiPT10eXBlb2YgbW9kdWxlJiZtb2R1bGUmJiFtb2R1bGUubm9kZVR5cGUmJm1vZHVsZSx6UT1ieSYmYnkuZXhwb3J0cz09PWpR''@;'; + put 'put ''P2RwLkJ1ZmZlcjp2b2lkIDA7Y29uc3Qgck49KHpRP3pRLmlzQnVmZmVyOnZvaWQgMCl8fGZ1bmN0aW9uIFZRKCl7cmV0dXJuITF9O3ZhciBJYWU9L14oPzowfFsxLTldXGQqKSQvO2NvbnN0IFlRPWZ1bmN0aW9uIFdRKGQsZyl7dmFyIGg9dHlwZW9mIGQ7cmV0dXJuISEoZz1udWxsPT1nPzkw''@;'; + put 'put ''MDcxOTkyNTQ3NDA5OTE6ZykmJigibnVtYmVyIj09aHx8InN5bWJvbCIhPWgmJklhZS50ZXN0KGQpKSYmZD4tMSYmZCUxPT0wJiZkPGd9LEs1PWZ1bmN0aW9uIExhZShkKXtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIGQmJmQ+LTEmJmQlMT09MCYmZDw9OTAwNzE5OTI1NDc0MDk5MX07dmFyIGoy''@;'; + put 'put ''PXt9O2oyWyJbb2JqZWN0IEZsb2F0MzJBcnJheV0iXT1qMlsiW29iamVjdCBGbG9hdDY0QXJyYXldIl09ajJbIltvYmplY3QgSW50OEFycmF5XSJdPWoyWyJbb2JqZWN0IEludDE2QXJyYXldIl09ajJbIltvYmplY3QgSW50MzJBcnJheV0iXT1qMlsiW29iamVjdCBVaW50OEFycmF5XSJdPWoy''@;'; + put 'put ''WyJbb2JqZWN0IFVpbnQ4Q2xhbXBlZEFycmF5XSJdPWoyWyJbb2JqZWN0IFVpbnQxNkFycmF5XSJdPWoyWyJbb2JqZWN0IFVpbnQzMkFycmF5XSJdPSEwLGoyWyJbb2JqZWN0IEFyZ3VtZW50c10iXT1qMlsiW29iamVjdCBBcnJheV0iXT1qMlsiW29iamVjdCBBcnJheUJ1ZmZlcl0iXT1qMlsi''@;'; + put 'put ''W29iamVjdCBCb29sZWFuXSJdPWoyWyJbb2JqZWN0IERhdGFWaWV3XSJdPWoyWyJbb2JqZWN0IERhdGVdIl09ajJbIltvYmplY3QgRXJyb3JdIl09ajJbIltvYmplY3QgRnVuY3Rpb25dIl09ajJbIltvYmplY3QgTWFwXSJdPWoyWyJbb2JqZWN0IE51bWJlcl0iXT1qMlsiW29iamVjdCBPYmpl''@;'; + put 'put ''Y3RdIl09ajJbIltvYmplY3QgUmVnRXhwXSJdPWoyWyJbb2JqZWN0IFNldF0iXT1qMlsiW29iamVjdCBTdHJpbmddIl09ajJbIltvYmplY3QgV2Vha01hcF0iXT0hMTtjb25zdCBreT1mdW5jdGlvbiBsTihkKXtyZXR1cm4gZnVuY3Rpb24oZyl7cmV0dXJuIGQoZyl9fTt2YXIgc049Im9iamVj''@;'; + put 'put ''dCI9PXR5cGVvZiBleHBvcnRzJiZleHBvcnRzJiYhZXhwb3J0cy5ub2RlVHlwZSYmZXhwb3J0cyxxNT1zTiYmIm9iamVjdCI9PXR5cGVvZiBtb2R1bGUmJm1vZHVsZSYmIW1vZHVsZS5ub2RlVHlwZSYmbW9kdWxlLCRJPXE1JiZxNS5leHBvcnRzPT09c04mJnVRLnByb2Nlc3M7Y29uc3QgU3k9''@;'; + put 'put ''ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHE1JiZxNS5yZXF1aXJlJiZxNS5yZXF1aXJlKCJ1dGlsIikudHlwZXN8fCRJJiYkSS5iaW5kaW5nJiYkSS5iaW5kaW5nKCJ1dGlsIil9Y2F0Y2goZyl7fX0oKTt2YXIgTXk9U3kmJlN5LmlzVHlwZWRBcnJheTtjb25zdCBlSj1NeT9reShNeSk6ZnVuY3Rp''@;'; + put 'put ''b24gV2FlKGQpe3JldHVybiB0NChkKSYmSzUoZC5sZW5ndGgpJiYhIWoyW1YwKGQpXX07dmFyIFVhZT1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O2NvbnN0IHRKPWZ1bmN0aW9uIFFhZShkLGcpe3ZhciBoPVhJKGQpLHY9IWgmJnROKGQpLHk9IWgmJiF2JiZyTihkKSxDPSFoJiYh''@;'; + put 'put ''diYmIXkmJmVKKGQpLEk9aHx8dnx8eXx8QyxqPUk/ZnVuY3Rpb24gZ3ZlKGQsZyl7Zm9yKHZhciBoPS0xLHY9QXJyYXkoZCk7KytoPGQ7KXZbaF09ZyhoKTtyZXR1cm4gdn0oZC5sZW5ndGgsU3RyaW5nKTpbXSx1ZT1qLmxlbmd0aDtmb3IodmFyIF9lIGluIGQpKGd8fFVhZS5jYWxsKGQsX2Up''@;'; + put 'put ''KSYmKCFJfHwhKCJsZW5ndGgiPT1fZXx8eSYmKCJvZmZzZXQiPT1fZXx8InBhcmVudCI9PV9lKXx8QyYmKCJidWZmZXIiPT1fZXx8ImJ5dGVMZW5ndGgiPT1fZXx8ImJ5dGVPZmZzZXQiPT1fZSl8fFlRKF9lLHVlKSkpJiZqLnB1c2goX2UpO3JldHVybiBqfTt2YXIgSmFlPU9iamVjdC5wcm90''@;'; + put 'put ''b3R5cGU7Y29uc3QgdU49ZnVuY3Rpb24gWGFlKGQpe3ZhciBnPWQmJmQuY29uc3RydWN0b3I7cmV0dXJuIGQ9PT0oImZ1bmN0aW9uIj09dHlwZW9mIGcmJmcucHJvdG90eXBlfHxKYWUpfSxuSj1mdW5jdGlvbiBLYWUoZCxnKXtyZXR1cm4gZnVuY3Rpb24oaCl7cmV0dXJuIGQoZyhoKSl9fSxy''@;'; + put 'put ''Sj1uSihPYmplY3Qua2V5cyxPYmplY3QpO3ZhciBpSj1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O2NvbnN0IGNOPWZ1bmN0aW9uIG9KKGQpe3JldHVybiBudWxsIT1kJiZLNShkLmxlbmd0aCkmJiFHSChkKX0sRXk9ZnVuY3Rpb24gbmxlKGQpe3JldHVybiBjTihkKT90SihkKTpm''@;'; + put 'put ''dW5jdGlvbiBlbGUoZCl7aWYoIXVOKGQpKXJldHVybiBySihkKTt2YXIgZz1bXTtmb3IodmFyIGggaW4gT2JqZWN0KGQpKWlKLmNhbGwoZCxoKSYmImNvbnN0cnVjdG9yIiE9aCYmZy5wdXNoKGgpO3JldHVybiBnfShkKX07dmFyIGFsZT1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5''@;'; + put 'put ''O2NvbnN0IGhOPWZ1bmN0aW9uIGZOKGQpe2lmKCFoayhkKSlyZXR1cm4gZnVuY3Rpb24gaWxlKGQpe3ZhciBnPVtdO2lmKG51bGwhPWQpZm9yKHZhciBoIGluIE9iamVjdChkKSlnLnB1c2goaCk7cmV0dXJuIGd9KGQpO3ZhciBnPXVOKGQpLGg9W107Zm9yKHZhciB2IGluIGQpImNvbnN0cnVj''@;'; + put 'put ''dG9yIj09diYmKGd8fCFhbGUuY2FsbChkLHYpKXx8aC5wdXNoKHYpO3JldHVybiBofSxkTj1mdW5jdGlvbiBBdShkKXtyZXR1cm4gY04oZCk/dEooZCwhMCk6aE4oZCl9O3ZhciBwTj0ib2JqZWN0Ij09dHlwZW9mIGV4cG9ydHMmJmV4cG9ydHMmJiFleHBvcnRzLm5vZGVUeXBlJiZleHBvcnRz''@;'; + put 'put ''LGdOPXBOJiYib2JqZWN0Ij09dHlwZW9mIG1vZHVsZSYmbW9kdWxlJiYhbW9kdWxlLm5vZGVUeXBlJiZtb2R1bGUsbEo9Z04mJmdOLmV4cG9ydHM9PT1wTj9kcC5CdWZmZXI6dm9pZCAwLG5EPWxKP2xKLmFsbG9jVW5zYWZlOnZvaWQgMDtjb25zdCB2az1mdW5jdGlvbiBtTigpe3JldHVybltd''@;'; + put 'put ''fTt2YXIgdUo9T2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZSxjSj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzLGNsZT1jSj9mdW5jdGlvbihkKXtyZXR1cm4gbnVsbD09ZD9bXTooZD1PYmplY3QoZCksZnVuY3Rpb24gckQoZCxnKXtmb3IodmFyIGg9LTEsdj1udWxs''@;'; + put 'put ''PT1kPzA6ZC5sZW5ndGgseT0wLEM9W107KytoPHY7KXt2YXIgST1kW2hdO2coSSxoLGQpJiYoQ1t5KytdPUkpfXJldHVybiBDfShjSihkKSxmdW5jdGlvbihnKXtyZXR1cm4gdUouY2FsbChkLGcpfSkpfTp2aztjb25zdCB0Zz1jbGUsdk49ZnVuY3Rpb24gaUQoZCxnKXtmb3IodmFyIGg9LTEs''@;'; + put 'put ''dj1nLmxlbmd0aCx5PWQubGVuZ3RoOysraDx2OylkW3kraF09Z1toXTtyZXR1cm4gZH0sQU49bkooT2JqZWN0LmdldFByb3RvdHlwZU9mLE9iamVjdCk7dmFyIGRsZT1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzP2Z1bmN0aW9uKGQpe2Zvcih2YXIgZz1bXTtkOyl2TihnLHRnKGQpKSxk''@;'; + put 'put ''PUFOKGQpO3JldHVybiBnfTp2aztjb25zdCBmSj1kbGUsb0Q9ZnVuY3Rpb24gZ2xlKGQsZyxoKXt2YXIgdj1nKGQpO3JldHVybiBYSShkKT92OnZOKHYsaChkKSl9LHZsZT1mdW5jdGlvbiBtbGUoZCl7cmV0dXJuIG9EKGQsRXksdGcpfSx5bGU9ZnVuY3Rpb24gQWxlKGQpe3JldHVybiBvRChk''@;'; + put 'put ''LGROLGZKKX0sd049cWQoZHAsIkRhdGFWaWV3IiksYk49cWQoZHAsIlByb21pc2UiKSxsRD1xZChkcCwiU2V0IiksRDc9cWQoZHAsIldlYWtNYXAiKTt2YXIgc0Q9IltvYmplY3QgTWFwXSIsTWw9IltvYmplY3QgUHJvbWlzZV0iLF9OPSJbb2JqZWN0IFNldF0iLHYyPSJbb2JqZWN0IFdlYWtN''@;'; + put 'put ''YXBdIixCYT0iW29iamVjdCBEYXRhVmlld10iLHBKPVE2KHdOKSx0MT1RNihfNyksbmc9UTYoYk4pLGcxPVE2KGxEKSx1RD1RNihENykscmc9VjA7KHdOJiZyZyhuZXcgd04obmV3IEFycmF5QnVmZmVyKDEpKSkhPUJhfHxfNyYmcmcobmV3IF83KSE9c0R8fGJOJiZyZyhiTi5yZXNvbHZlKCkp''@;'; + put 'put ''IT1NbHx8bEQmJnJnKG5ldyBsRCkhPV9OfHxENyYmcmcobmV3IEQ3KSE9djIpJiYocmc9ZnVuY3Rpb24oZCl7dmFyIGc9VjAoZCksaD0iW29iamVjdCBPYmplY3RdIj09Zz9kLmNvbnN0cnVjdG9yOnZvaWQgMCx2PWg/UTYoaCk6IiI7aWYodilzd2l0Y2godil7Y2FzZSBwSjpyZXR1cm4gQmE7''@;'; + put 'put ''Y2FzZSB0MTpyZXR1cm4gc0Q7Y2FzZSBuZzpyZXR1cm4gTWw7Y2FzZSBnMTpyZXR1cm4gX047Y2FzZSB1RDpyZXR1cm4gdjJ9cmV0dXJuIGd9KTtjb25zdCBDTj1yZzt2YXIgd3U9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtjb25zdCBnSj1kcC5VaW50OEFycmF5LGhEPWZ1bmN0''@;'; + put 'put ''aW9uIGtOKGQpe3ZhciBnPW5ldyBkLmNvbnN0cnVjdG9yKGQuYnl0ZUxlbmd0aCk7cmV0dXJuIG5ldyBnSihnKS5zZXQobmV3IGdKKGQpKSxnfTt2YXIgTDc9L1x3KiQvO3ZhciBNTj13Nz93Ny5wcm90b3R5cGU6dm9pZCAwLEVOPU1OP01OLnZhbHVlT2Y6dm9pZCAwO2NvbnN0IG9nPWZ1bmN0''@;'; + put 'put ''aW9uIExsZShkLGcsaCl7dmFyIHY9ZC5jb25zdHJ1Y3Rvcjtzd2l0Y2goZyl7Y2FzZSJbb2JqZWN0IEFycmF5QnVmZmVyXSI6cmV0dXJuIGhEKGQpO2Nhc2UiW29iamVjdCBCb29sZWFuXSI6Y2FzZSJbb2JqZWN0IERhdGVdIjpyZXR1cm4gbmV3IHYoK2QpO2Nhc2UiW29iamVjdCBEYXRhVmll''@;'; + put 'put ''d10iOnJldHVybiBmdW5jdGlvbiBrbGUoZCxnKXt2YXIgaD1nP2hEKGQuYnVmZmVyKTpkLmJ1ZmZlcjtyZXR1cm4gbmV3IGQuY29uc3RydWN0b3IoaCxkLmJ5dGVPZmZzZXQsZC5ieXRlTGVuZ3RoKX0oZCxoKTtjYXNlIltvYmplY3QgRmxvYXQzMkFycmF5XSI6Y2FzZSJbb2JqZWN0IEZsb2F0''@;'; + put 'put ''NjRBcnJheV0iOmNhc2UiW29iamVjdCBJbnQ4QXJyYXldIjpjYXNlIltvYmplY3QgSW50MTZBcnJheV0iOmNhc2UiW29iamVjdCBJbnQzMkFycmF5XSI6Y2FzZSJbb2JqZWN0IFVpbnQ4QXJyYXldIjpjYXNlIltvYmplY3QgVWludDhDbGFtcGVkQXJyYXldIjpjYXNlIltvYmplY3QgVWludDE2''@;'; + put 'put ''QXJyYXldIjpjYXNlIltvYmplY3QgVWludDMyQXJyYXldIjpyZXR1cm4gZnVuY3Rpb24gTzcoZCxnKXt2YXIgaD1nP2hEKGQuYnVmZmVyKTpkLmJ1ZmZlcjtyZXR1cm4gbmV3IGQuY29uc3RydWN0b3IoaCxkLmJ5dGVPZmZzZXQsZC5sZW5ndGgpfShkLGgpO2Nhc2UiW29iamVjdCBNYXBdIjpj''@;'; + put 'put ''YXNlIltvYmplY3QgU2V0XSI6cmV0dXJuIG5ldyB2O2Nhc2UiW29iamVjdCBOdW1iZXJdIjpjYXNlIltvYmplY3QgU3RyaW5nXSI6cmV0dXJuIG5ldyB2KGQpO2Nhc2UiW29iamVjdCBSZWdFeHBdIjpyZXR1cm4gZnVuY3Rpb24gU04oZCl7dmFyIGc9bmV3IGQuY29uc3RydWN0b3IoZC5zb3Vy''@;'; + put 'put ''Y2UsTDcuZXhlYyhkKSk7cmV0dXJuIGcubGFzdEluZGV4PWQubGFzdEluZGV4LGd9KGQpO2Nhc2UiW29iamVjdCBTeW1ib2xdIjpyZXR1cm4gZnVuY3Rpb24gdkooZCl7cmV0dXJuIEVOP09iamVjdChFTi5jYWxsKGQpKTp7fX0oZCl9fTt2YXIgTE49T2JqZWN0LmNyZWF0ZSxhZz1mdW5jdGlv''@;'; + put 'put ''bigpe2Z1bmN0aW9uIGQoKXt9cmV0dXJuIGZ1bmN0aW9uKGcpe2lmKCFoayhnKSlyZXR1cm57fTtpZihMTilyZXR1cm4gTE4oZyk7ZC5wcm90b3R5cGU9Zzt2YXIgaD1uZXcgZDtyZXR1cm4gZC5wcm90b3R5cGU9dm9pZCAwLGh9fSgpO2NvbnN0IHZEPWFnO3ZhciBSTj1TeSYmU3kuaXNNYXA7''@;'; + put 'put ''Y29uc3QgQ0o9Uk4/a3koUk4pOmZ1bmN0aW9uIE9OKGQpe3JldHVybiB0NChkKSYmIltvYmplY3QgTWFwXSI9PUNOKGQpfTt2YXIga0o9U3kmJlN5LmlzU2V0O2NvbnN0IEhsZT1rSj9reShrSik6ZnVuY3Rpb24gUGxlKGQpe3JldHVybiB0NChkKSYmIltvYmplY3QgU2V0XSI9PUNOKGQpfTt2''@;'; + put 'put ''YXIgQUQ9IltvYmplY3QgQXJndW1lbnRzXSIsUE49IltvYmplY3QgRnVuY3Rpb25dIixFSj0iW29iamVjdCBPYmplY3RdIixBMj17fTtBMltBRF09QTJbIltvYmplY3QgQXJyYXldIl09QTJbIltvYmplY3QgQXJyYXlCdWZmZXJdIl09QTJbIltvYmplY3QgRGF0YVZpZXddIl09QTJbIltvYmpl''@;'; + put 'put ''Y3QgQm9vbGVhbl0iXT1BMlsiW29iamVjdCBEYXRlXSJdPUEyWyJbb2JqZWN0IEZsb2F0MzJBcnJheV0iXT1BMlsiW29iamVjdCBGbG9hdDY0QXJyYXldIl09QTJbIltvYmplY3QgSW50OEFycmF5XSJdPUEyWyJbb2JqZWN0IEludDE2QXJyYXldIl09QTJbIltvYmplY3QgSW50MzJBcnJheV0i''@;'; + put 'put ''XT1BMlsiW29iamVjdCBNYXBdIl09QTJbIltvYmplY3QgTnVtYmVyXSJdPUEyW0VKXT1BMlsiW29iamVjdCBSZWdFeHBdIl09QTJbIltvYmplY3QgU2V0XSJdPUEyWyJbb2JqZWN0IFN0cmluZ10iXT1BMlsiW29iamVjdCBTeW1ib2xdIl09QTJbIltvYmplY3QgVWludDhBcnJheV0iXT1BMlsi''@;'; + put 'put ''W29iamVjdCBVaW50OENsYW1wZWRBcnJheV0iXT1BMlsiW29iamVjdCBVaW50MTZBcnJheV0iXT1BMlsiW29iamVjdCBVaW50MzJBcnJheV0iXT0hMCxBMlsiW29iamVjdCBFcnJvcl0iXT1BMltQTl09QTJbIltvYmplY3QgV2Vha01hcF0iXT0hMTtjb25zdCBITj1mdW5jdGlvbiBfayhkLGcs''@;'; + put 'put ''aCx2LHksQyl7dmFyIEksaj0xJmcsdWU9MiZnLF9lPTQmZztpZihoJiYoST15P2goZCx2LHksQyk6aChkKSksdm9pZCAwIT09SSlyZXR1cm4gSTtpZighaGsoZCkpcmV0dXJuIGQ7dmFyIEJlPVhJKGQpO2lmKEJlKXtpZihJPWZ1bmN0aW9uIF9sZShkKXt2YXIgZz1kLmxlbmd0aCxoPW5ldyBk''@;'; + put 'put ''LmNvbnN0cnVjdG9yKGcpO3JldHVybiBnJiYic3RyaW5nIj09dHlwZW9mIGRbMF0mJnd1LmNhbGwoZCwiaW5kZXgiKSYmKGguaW5kZXg9ZC5pbmRleCxoLmlucHV0PWQuaW5wdXQpLGh9KGQpLCFqKXJldHVybiBmdW5jdGlvbiBzbGUoZCxnKXt2YXIgaD0tMSx2PWQubGVuZ3RoO2ZvcihnfHwo''@;'; + put 'put ''Zz1BcnJheSh2KSk7KytoPHY7KWdbaF09ZFtoXTtyZXR1cm4gZ30oZCxJKX1lbHNle3ZhciBOZT1DTihkKSxLZT1OZT09UE58fCJbb2JqZWN0IEdlbmVyYXRvckZ1bmN0aW9uXSI9PU5lO2lmKHJOKGQpKXJldHVybiBmdW5jdGlvbiBsbGUoZCxnKXtpZihnKXJldHVybiBkLnNsaWNlKCk7dmFy''@;'; + put 'put ''IGg9ZC5sZW5ndGgsdj1uRD9uRChoKTpuZXcgZC5jb25zdHJ1Y3RvcihoKTtyZXR1cm4gZC5jb3B5KHYpLHZ9KGQsaik7aWYoTmU9PUVKfHxOZT09QUR8fEtlJiYheSl7aWYoST11ZXx8S2U/e306ZnVuY3Rpb24gWjIoZCl7cmV0dXJuImZ1bmN0aW9uIiE9dHlwZW9mIGQuY29uc3RydWN0b3J8''@;'; + put 'put ''fHVOKGQpP3t9OnZEKEFOKGQpKX0oZCksIWopcmV0dXJuIHVlP2Z1bmN0aW9uIGhKKGQsZyl7cmV0dXJuIHBrKGQsZkooZCksZyl9KGQsZnVuY3Rpb24gWDMoZCxnKXtyZXR1cm4gZCYmcGsoZyxkTihnKSxkKX0oSSxkKSk6ZnVuY3Rpb24gZmxlKGQsZyl7cmV0dXJuIHBrKGQsdGcoZCksZyl9''@;'; + put 'put ''KGQsZnVuY3Rpb24gcmxlKGQsZyl7cmV0dXJuIGQmJnBrKGcsRXkoZyksZCl9KEksZCkpfWVsc2V7aWYoIUEyW05lXSlyZXR1cm4geT9kOnt9O0k9b2coZCxOZSxqKX19Q3x8KEM9bmV3IExRKTt2YXIgZHQ9Qy5nZXQoZCk7aWYoZHQpcmV0dXJuIGR0O0Muc2V0KGQsSSksSGxlKGQpP2QuZm9y''@;'; + put 'put ''RWFjaChmdW5jdGlvbihmbil7SS5hZGQoX2soZm4sZyxoLGZuLGQsQykpfSk6Q0ooZCkmJmQuZm9yRWFjaChmdW5jdGlvbihmbixMbil7SS5zZXQoTG4sX2soZm4sZyxoLExuLGQsQykpfSk7dmFyICR0PUJlP3ZvaWQgMDooX2U/dWU/eWxlOnZsZTp1ZT9kTjpFeSkoZCk7cmV0dXJuIGZ1bmN0''@;'; + put 'put ''aW9uIE9RKGQsZyl7Zm9yKHZhciBoPS0xLHY9bnVsbD09ZD8wOmQubGVuZ3RoOysraDx2JiYhMSE9PWcoZFtoXSxoLGQpOyk7fSgkdHx8ZCxmdW5jdGlvbihmbixMbil7JHQmJihmbj1kW0xuPWZuXSksQlEoSSxMbixfayhmbixnLGgsTG4sZCxDKSl9KSxJfTt2YXIgbnNlPUwoOTQ5Myk7bGV0''@;'; + put 'put ''IFhjPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoKXt0aGlzLnNob3duTGlicmFyaWVzPTUwLHRoaXMubG9hZE1vcmVDb3VudD01MCx0aGlzLmlzTWljcm9zb2Z0PSExLHRoaXMuaXNNaWNyb3NvZnQ9dGhpcy5pc0lFb3JFREdFKCksY29uc29sZS5sb2coIklzIElFIG9yIEVkZ2U/Iix0aGlz''@;'; + put 'put ''LmlzTWljcm9zb2Z0KX1jb252ZXJ0SnNEYXRlVG9TYXNEYXRlKGgsdj0iZGF5cyIpe2xldCB5LEM9MDt5PWggaW5zdGFuY2VvZiBEYXRlP2g6bmV3IERhdGUoaCksQz1uZXcgRGF0ZShEYXRlLlVUQyh5LmdldEZ1bGxZZWFyKCkseS5nZXRNb250aCgpLHkuZ2V0RGF0ZSgpLHkuZ2V0SG91cnMo''@;'; + put 'put ''KSx5LmdldE1pbnV0ZXMoKSx5LmdldFNlY29uZHMoKSkpLnZhbHVlT2YoKTtjb25zdCB1ZT1DKzMxNTYxOTJlNTtzd2l0Y2godil7Y2FzZSJkYXlzIjp7bGV0IF9lPXVlLzg2NGU1O3JldHVybiBfZT1NYXRoLmFicyhfZSksX2U9TWF0aC5mbG9vcihfZSksX2V9Y2FzZSJzZWNvbmRzIjpyZXR1''@;'; + put 'put ''cm4gdWUvMWUzfXJldHVybiAwfWNvbnZlcnRTYXNEYXlzVG9Kc0RhdGUoaCx2PSJkYXlzIil7aWYoIm51bWJlciIhPXR5cGVvZiBoJiYoaD1wYXJzZUZsb2F0KGgpKSwic2Vjb25kcyI9PT12KXtsZXQgaj0xZTMqaC0zMTU2MTkyZTU7cmV0dXJuIGorPTYwKm5ldyBEYXRlKGopLmdldFRpbWV6''@;'; + put 'put ''b25lT2Zmc2V0KCkqMWUzLG5ldyBEYXRlKGopfXJldHVybiBuZXcgRGF0ZSg4NjRlNSpoLTMxNTYxOTJlNSl9dHJlZU9uRmlsdGVyKGgsdil7bGV0IHk9aC5zZWFyY2hTdHJpbmc/aC5zZWFyY2hTdHJpbmc6IiIsQz12LnNwbGl0KCIuIilbMF0sST12LnNwbGl0KCIuIilbMV0saj1DKyJBbGwi''@;'; + put 'put ''O2hbQ10mJihoW2pdfHwoaFtqXT10aGlzLmRlZXBDbG9uZShoW0NdKSksaFtDXT10aGlzLmRlZXBDbG9uZShoW2pdKSx5Lmxlbmd0aD4wJiYoaFtDXT1oW0NdLmZpbHRlcihJP3VlPT51ZVtJXS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHkudG9Mb3dlckNhc2UoKSk6dWU9PnVlLnRvTG93ZXJD''@;'; + put 'put ''YXNlKCkuaW5jbHVkZXMoeS50b0xvd2VyQ2FzZSgpKSkpKX1saWJyYXJ5T25GaWx0ZXIoaCx2LHkpe3YubGVuZ3RoPjA/aC5mb3JFYWNoKEM9PntDW3ldLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXModi50b0xvd2VyQ2FzZSgpKT8oQy5oaWRkZW49ITEsQy5pbkZvcmVncm91bmQ9ITApOihDLmhp''@;'; + put 'put ''ZGRlbj0hMCxDLmluRm9yZWdyb3VuZD0hMSl9KToodGhpcy5yZXNldEFycmF5RmlsdGVyKGgpLHRoaXMuZGlzcGxheUxpYnJhcmllcyhoKSl9ZGlzcGxheUxpYnJhcmllcyhoLHYpe3Y/dGhpcy5zaG93bkxpYnJhcmllcys9dGhpcy5sb2FkTW9yZUNvdW50Oih0aGlzLnNob3duTGlicmFyaWVz''@;'; + put 'put ''PTUwLHRoaXMucmVzZXRMaWJyYXJ5Rm9yZWdyb3VuZChoKSk7Zm9yKGxldCB5PTA7eTxoLmxlbmd0aCYmeSE9PXRoaXMuc2hvd25MaWJyYXJpZXM7eSsrKWhbeV0uaW5Gb3JlZ3JvdW5kPSEwfXJlc2V0TGlicmFyeUZvcmVncm91bmQoaCl7Zm9yKGxldCB2PTA7djxoLmxlbmd0aDt2KyspaFt2''@;'; + put 'put ''XS5pbkZvcmVncm91bmQ9ITF9bWV0YU9iamVjdE9uRmlsdGVyKGgsdix5KXt2Lmxlbmd0aD4wPyh0aGlzLnJlc2V0QXJyYXlGaWx0ZXIoaCksaC5mb3JFYWNoKEM9PntDW3ldLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXModi50b0xvd2VyQ2FzZSgpKXx8KEMuaGlkZGVuPSEwKX0pKTp0aGlzLnJl''@;'; + put 'put ''c2V0QXJyYXlGaWx0ZXIoaCl9cmVzZXRBcnJheUZpbHRlcihoKXtoLmZvckVhY2godj0+e3YuaGlkZGVuPSExLHYuaW5Gb3JlZ3JvdW5kJiZkZWxldGUgdi5pbkZvcmVncm91bmR9KX1pc0lFb3JFREdFKCl7dmFyIGg9d2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnQ7cmV0dXJuIGguaW5kZXhP''@;'; + put 'put ''ZigiTVNJRSAiKT4wfHwoaC5pbmRleE9mKCJUcmlkZW50LyIpPjA/KGguaW5kZXhPZigicnY6IiksITApOmguaW5kZXhPZigiRWRnZS8iKT4wKX1jb252ZXJ0T2JqZWN0c1RvQXJyYXkoaCx2PSExKXtyZXR1cm4gdiYmKGg9dGhpcy5kZWVwQ2xvbmUoaCkpLGgubWFwKHk9Pk9iamVjdC5rZXlz''@;'; + put 'put ''KHkpLm1hcChDPT55W0NdKSl9YWRkTGVhZGluZ1plcm8oaCl7cmV0dXJuInN0cmluZyIhPXR5cGVvZiBoJiYoaD1oLnRvU3RyaW5nKCkpLGgubGVuZ3RoPDI/IjAiK2g6aH1kZWxldGVLZXlzQW5kSGFzaChoLHYseT0hMCl7Y29uc3QgQz15P3RoaXMuZGVlcENsb25lKGgpOmg7Zm9yKGxldCBJ''@;'; + put 'put ''IG9mIHYpZGVsZXRlIENbSV07cmV0dXJuIG5zZShKU09OLnN0cmluZ2lmeShDKSkudG9TdHJpbmcoKX1kb3dubG9hZFRleHRGaWxlKGgsdil7Y29uc3QgeT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIik7eS5zZXRBdHRyaWJ1dGUoImhyZWYiLCJkYXRhOnRleHQvcGxhaW47Y2hhcnNldD11''@;'; + put 'put ''dGYtOCwiK2VuY29kZVVSSUNvbXBvbmVudCh2KSkseS5zZXRBdHRyaWJ1dGUoImRvd25sb2FkIixoKyIudHh0IikseS5zdHlsZS5kaXNwbGF5PSJub25lIixkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHkpLHkuY2xpY2soKSxkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKHkpfWNvbnZlcnRB''@;'; + put 'put ''cnJheVZhbHVlcyhoLHYpe2lmKGgubGVuZ3RoPDEpcmV0dXJuW107c3dpdGNoKHYpe2Nhc2UibnVtYmVyIjpyZXR1cm4gaC5tYXAoeT0+MSp5KTtjYXNlInN0cmluZyI6cmV0dXJuIGgudG9TdHJpbmcoKS5zcGxpdCgiLCIpfX1kZWJvdW5jZUNhbGwoaCx2KXtjbGVhclRpbWVvdXQodGhpcy5k''@;'; + put 'put ''ZWJvdW5jZVRpbWVvdXQpLHRoaXMuZGVib3VuY2VUaW1lb3V0PXNldFRpbWVvdXQodixoKX1kZWVwQ2xvbmUoaCl7cmV0dXJuIGZ1bmN0aW9uIE5OKGQpe3JldHVybiBITihkLDUpfShoKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1''@;'; + put 'put ''cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1ZmFjLHByb3ZpZGVkSW46InJvb3QifSksZH0pKCksUjc9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYseSxDLEksail7dGhpcy5hcHBTdG9yZVNlcnZpY2U9aCx0aGlzLmV2ZW50U2VydmljZT12LHRoaXMuc2FzU2VydmljZT15''@;'; + put 'put ''LHRoaXMubG9nZ2VyU2VydmljZT1DLHRoaXMuaGVscGVyU2VydmljZT1JLHRoaXMucm91dGVyPWosdGhpcy5pc0FwcEFjdGl2YXRlZD1uZXcgY3MobnVsbCksdGhpcy5pc0FwcE92ZXJDYXBhY2l0eT1uZXcgY3MoITEpLHRoaXMuY3VycmVudFVzZXJDYW5SZWdpc3Rlcj1uZXcgY3MoITEpLHRo''@;'; + put 'put ''aXMubGljZW5zZUV4cGlyZXNJbkRheXM9bmV3IGNzKG51bGwpLHRoaXMuaXNBcHBEZW1vPW5ldyBjcyghMSksdGhpcy5zeXNzaXRlPW5ldyBjcyhudWxsKSx0aGlzLnJlc3RyaWN0RWRpdFJlY29yZD0hMSx0aGlzLmhvdF9saWNlbnNlX2tleT1uZXcgY3Modm9pZCAwKSx0aGlzLmRlbW9MaW1p''@;'; + put 'put ''dHM9e30sdGhpcy5saWNlbnNlS2V5RGF0YT1udWxsLHRoaXMuc3Vic2NyaWJlKCksdGhpcy5yb3V0ZXIuZXZlbnRzLnN1YnNjcmliZSh1ZT0+e3VlIGluc3RhbmNlb2YgRzYmJiIvZGVwbG95Ij09PXVlLnVybCYmdGhpcy5ldmVudFNlcnZpY2Uuc3RhcnR1cERhdGFMb2FkZWQoKX0pfXNhc1Nl''@;'; + put 'put ''cnZpY2VJbml0KCl7dGhpcy5zYXNTZXJ2aWNlLnNhc1NlcnZpY2VJbml0KCl9c3Vic2NyaWJlKCl7dGhpcy5zYXNTZXJ2aWNlLmxvYWRTdGFydHVwU2VydmljZUVtaXR0ZXIuc3Vic2NyaWJlKCgpPT57dGhpcy5zdGFydFVwRGF0YSgpfSksdGhpcy5zYXNTZXJ2aWNlLmluY29ycmVjdFNpdGVJ''@;'; + put 'put ''ZEVtaXR0ZXIuc3Vic2NyaWJlKGg9PntudWxsIT09dGhpcy5pc0FwcEFjdGl2YXRlZC52YWx1ZSYmIXRoaXMuaXNBcHBEZW1vLnZhbHVlJiZ0aGlzLmRlYWN0aXZhdGVBcHAoYC9saWNlbnNpbmcva2V5P2Vycm9yPW1pc3NtYXRjaCZtaXNzbWF0Y2hJZD0ke2h9YCl9KSx0aGlzLnNhc1NlcnZp''@;'; + put 'put ''Y2UucmVxdWVzdFNpdGVJZEVtaXR0ZXIuc3Vic2NyaWJlKGg9Pnt0aGlzLnBhdGNoU3lzc2l0ZShoKX0pfWdldEhvdExpY2Vuc2VLZXkoKXtyZXR1cm4gdGhpcy5ob3RfbGljZW5zZV9rZXkudmFsdWV9Z2V0TGljZW5zZUtleURhdGEoKXtyZXR1cm4gdGhpcy5saWNlbnNlS2V5RGF0YX1kZWFj''@;'; + put 'put ''dGl2YXRlQXBwKGgpe3RoaXMuaXNBcHBBY3RpdmF0ZWQubmV4dCghMSksaCYmdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybChoKX1wYXRjaFN5c3NpdGUoaCl7bGV0IHY9dGhpcy5zeXNzaXRlLmdldFZhbHVlKCk7diYmKHYuaW5jbHVkZXMoaCl8fCh2LnB1c2goaCksdGhpcy5zeXNzaXRlLm5l''@;'; + put 'put ''eHQodikpKX1zdGFydFVwRGF0YSgpe3JldHVybiBubyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7bGV0IGg9ITE7eWllbGQgdGhpcy5zYXNTZXJ2aWNlLnJlcXVlc3QoInB1YmxpYy9zdGFydHVwc2VydmljZSIsbnVsbCkudGhlbih2PT5ubyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVu''@;'; + put 'put ''Y3Rpb24qKCl7dGhpcy5zeXNzaXRlLm5leHQoW3YuU1lTU0lURV0pO2xldCBJLGoseT12LnNhc2RhdGFzZXRzLEM9e307Zm9yKGxldCBOZSBvZiB5KUNbTmUuTElCUkVGXXx8KENbTmUuTElCUkVGXT1bXSksQ1tOZS5MSUJSRUZdLnB1c2goTmUuRFNOKTtsZXQgdWU9SlNPTi5wYXJzZShKU09O''@;'; + put 'put ''LnN0cmluZ2lmeShDKSksX2U9W107Zm9yKGxldCBOZSBvZiBPYmplY3Qua2V5cyh1ZSkpX2UucHVzaCh7TElCUkFSWVJFRjpOZSx0YWJsZXM6dWVbTmVdfSk7bGV0IEJlPV9lO0k9QyxqPU9iamVjdC5rZXlzKEMpLHZvaWQgMCE9PUkmJihuaS5lZGl0b3IubGlic0FuZFRhYmxlcz1JKSxuaS5l''@;'; + put 'put ''ZGl0b3IudHJlZU5vZGVMaWJyYXJpZXM9QmUsbmkuZWRpdG9yLmxpYnJhcmllcz1qLG5pLmVkaXRvci5zdGFydHVwU2V0PSEwLHRoaXMucmVzdHJpY3RFZGl0UmVjb3JkPSJZRVMiPT09di5nbG9idmFyc1swXS5EQ19SRVNUUklDVF9FRElUUkVDT1JELHlpZWxkIHRoaXMubGljZW5zaW5nKHYu''@;'; + put 'put ''Z2xvYnZhcnMsdi5TWVNTSVRFKX0pKS5jYXRjaCh2PT57aD0hMCx0aGlzLmlzQXBwQWN0aXZhdGVkLm5leHQoITEpfSksdGhpcy5sb2dnZXJTZXJ2aWNlLmxvZygiQWN0aXZhdGVkOiIsdGhpcy5pc0FwcEFjdGl2YXRlZC52YWx1ZSksaHx8KHRoaXMuZXZlbnRTZXJ2aWNlLnN0YXJ0dXBEYXRh''@;'; + put 'put ''TG9hZGVkKCksdGhpcy5pc0FwcEFjdGl2YXRlZC52YWx1ZT90aGlzLnJvdXRlci51cmwuaW5jbHVkZXMoImxpY2Vuc2luZyIpJiZ0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKCIvaG9tZSIpOiF0aGlzLnJvdXRlci51cmwuaW5jbHVkZXMoImRlcGxveSIpJiYhdGhpcy5yb3V0ZXIudXJsLmlu''@;'; + put 'put ''Y2x1ZGVzKCJsaWNlbnNpbmciKSYmdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCgiL2xpY2Vuc2luZy9rZXk/ZXJyb3I9bWlzc2luZyIpKX0pfWxpY2Vuc2luZyhoLHYpe3ZhciB5O3JldHVybiBubyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7aWYoIWh8fCFoWzBdKXJldHVybiBj''@;'; + put 'put ''b25zb2xlLmVycm9yKCJnbG9idmFycyBub3QgcHJlc2VudCIpLHZvaWQgdGhpcy5pc0FwcEFjdGl2YXRlZC5uZXh0KCExKTtsZXQgQz1oWzBdO2lmKEMuTElDRU5DRV9LRVkmJkMuQUNUSVZBVElPTl9LRVkmJm51bGwhPSFDLlJFR0lTVEVSQ09VTlQmJm51bGwhPSFDLklTUkVHSVNURVJFRCl0''@;'; + put 'put ''aGlzLmxpY2VuY2VLZXk9Qy5MSUNFTkNFX0tFWSx0aGlzLmFjdGl2YXRpb25LZXk9Qy5BQ1RJVkFUSU9OX0tFWSx5aWVsZCB0aGlzLmRlY3J5cHRMaWNlbnNlS2V5KEMuTElDRU5DRV9LRVksQy5BQ1RJVkFUSU9OX0tFWSkudGhlbihJPT57dGhpcy5hcHBsaWNhdGlvbkFjdGl2YXRpb24oSSxD''@;'; + put 'put ''LHYpfSxJPT57Y29uc29sZS5lcnJvcigiRXJyb3IgZGVjcnlwdGluZyBsaWNlbnNlIGtleS4iLEkpLHRoaXMuaXNBcHBBY3RpdmF0ZWQubmV4dCghMSksdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCgiL2xpY2Vuc2luZy9rZXk/ZXJyb3I9aW52YWxpZCIpfSk7ZWxzZXt0aGlzLmRlbW9MaW1p''@;'; + put 'put ''dHM9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGpVKSxib2UpO2NvbnN0IEk9e2RlbW86ITAsaG90X2xpY2Vuc2Vfa2V5Om51bGw9PT0oeT10aGlzLmFwcFN0b3JlU2VydmljZS5nZXREY0FkYXB0ZXJTZXR0aW5ncygpKXx8dm9pZCAwPT09eT92b2lkIDA6eS5ob3RMaWNlbmNlS2V5''@;'; + put 'put ''LHVzZXJzX2FsbG93ZWQ6dGhpcy5kZW1vTGltaXRzLnVzZXJzX2FsbG93ZWR8fDEsdmFsaWRfdW50aWw6IiIsc2l0ZV9pZDoiIixzaXRlX2lkX211bHRpcGxlOltdfTt0aGlzLmFwcGxpY2F0aW9uQWN0aXZhdGlvbihJLEMsdil9fSl9YXBwbGljYXRpb25BY3RpdmF0aW9uKGgsdix5KXtpZiho''@;'; + put 'put ''LnNpdGVfaWRfbXVsdGlwbGU/dGhpcy5zYXNTZXJ2aWNlLnNldExpY2Vuc2VTaXRlSWQoaC5zaXRlX2lkX211bHRpcGxlKTpoLnNpdGVfaWQmJnRoaXMuc2FzU2VydmljZS5zZXRMaWNlbnNlU2l0ZUlkKGguc2l0ZV9pZCksIWguZGVtbyl7bGV0IHVlPSExLF9lPSExO2lmKCghaC5zaXRlX2lk''@;'; + put 'put ''fHxoLnNpdGVfaWQhPT15KSYmKHVlPSEwKSwoIWguc2l0ZV9pZF9tdWx0aXBsZXx8IWguc2l0ZV9pZF9tdWx0aXBsZS5pbmNsdWRlcyh5KSkmJihfZT0hMCksdWUmJl9lKXJldHVybiBjb25zb2xlLmVycm9yKCJUaGUga2V5IHByb3ZpZGVkIGlzIGZvciBkaWZmZXJlbnQgb3JnYW5pemF0aW9u''@;'; + put 'put ''LiIpLHRoaXMuaXNBcHBBY3RpdmF0ZWQubmV4dCghMSksdm9pZCB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKCIvbGljZW5zaW5nL2tleT9lcnJvcj1taXNzbWF0Y2giKX10aGlzLmhvdF9saWNlbnNlX2tleS5uZXh0KHZvaWQgMCE9PWguaG90X2xpY2Vuc2Vfa2V5P2guaG90X2xpY2Vuc2Vf''@;'; + put 'put ''a2V5OnRoaXMuaG90X2xpY2Vuc2Vfa2V5LnZhbHVlKTtsZXQgQz1UbChoLnZhbGlkX3VudGlsLCJZWVlZLU1NLUREIiksST1UbCgpLGo9Qy5kaWZmKEksImRheXMiKTtyZXR1cm4gaC5kZW1vJiYoT2JqZWN0LmtleXModGhpcy5kZW1vTGltaXRzKS5sZW5ndGg8MSYmKHRoaXMuZGVtb0xpbWl0''@;'; + put 'put ''cz1qVSksITA9PT10aGlzLmRlbW9MaW1pdHMuZXhwaXJhdGlvbl9kYXRlX3VubGltaXRlZCYmKGo9MS8wKSx2b2lkIDAhPT10aGlzLmRlbW9MaW1pdHMudXNlcnNfYWxsb3dlZCYmKGgudXNlcnNfYWxsb3dlZD10aGlzLmRlbW9MaW1pdHMudXNlcnNfYWxsb3dlZD4tMT90aGlzLmRlbW9MaW1p''@;'; + put 'put ''dHMudXNlcnNfYWxsb3dlZDpoLnVzZXJzX2FsbG93ZWQpKSx0aGlzLmxpY2Vuc2VLZXlEYXRhPXRoaXMuaGVscGVyU2VydmljZS5kZWVwQ2xvbmUoaCksd2luZG93LmFwcGluZm8oKSxqPD0wPyhjb25zb2xlLmVycm9yKCJMaWNlbnNlIGtleSBoYXMgZXhwaXJlZCIpLHRoaXMuaXNBcHBBY3Rp''@;'; + put 'put ''dmF0ZWQubmV4dCghMSksdm9pZCB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKCIvbGljZW5zaW5nL2tleT9lcnJvcj1leHBpcmVkIikpOih3aW5kb3cubGljZW5zZUV4cGlyZXNJbj1qLHRoaXMubGljZW5zZUV4cGlyZXNJbkRheXMubmV4dChqKSx0aGlzLmlzQXBwRGVtby5uZXh0KCEhaC5k''@;'; + put 'put ''ZW1vKSx2LlJFR0lTVEVSQ09VTlQ+aC51c2Vyc19hbGxvd2VkPyhjb25zb2xlLndhcm4oIkFwcCBoYXMgbW9yZSB1c2VycyByZWdpc3RlcmVkIHRoZW4gbGljZW5zZWQuIiksdGhpcy5pc0FwcE92ZXJDYXBhY2l0eS5uZXh0KCEwKSk6di5SRUdJU1RFUkNPVU5UPT09aC51c2Vyc19hbGxvd2Vk''@;'; + put 'put ''JiZjb25zb2xlLndhcm4oIkFwcCBoYXMgaGl0IGxpbWl0IG9mIHVzZXJzIHJlZ2lzdGVyZWQuIiksMSE9PXYuSVNSRUdJU1RFUkVEP3YuUkVHSVNURVJDT1VOVDxoLnVzZXJzX2FsbG93ZWQ/KGNvbnNvbGUubG9nKCJVc2VyIGNhbiByZWdpc3RlciIpLHRoaXMuY3VycmVudFVzZXJDYW5SZWdp''@;'; + put 'put ''c3Rlci5uZXh0KCEwKSx0aGlzLmlzQXBwQWN0aXZhdGVkLm5leHQoITEpLHZvaWQgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCgiL2xpY2Vuc2luZy9yZWdpc3RlciIpKToodGhpcy5jdXJyZW50VXNlckNhblJlZ2lzdGVyLm5leHQoITEpLHRoaXMuaXNBcHBBY3RpdmF0ZWQubmV4dCghMSks''@;'; + put 'put ''dm9pZCB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKCIvbGljZW5zaW5nL2xpbWl0IikpOnZvaWQgdGhpcy5pc0FwcEFjdGl2YXRlZC5uZXh0KCEwKSl9ZGVjcnlwdExpY2Vuc2VLZXkoaCx2KXtyZXR1cm4gbmV3IFByb21pc2UoKHksQyk9Pm5vKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlv''@;'; + put 'put ''biooKXtpZighd2luZG93LmNyeXB0b3x8IXdpbmRvdy5jcnlwdG8uc3VidGxlKXRyeXtsZXQgQmU9YXRvYihoLnNwbGl0KCIiKS5yZXZlcnNlKCkuam9pbigiIikpO3koSlNPTi5wYXJzZShCZSkpfWNhdGNoKEJlKXtDKCJFcnJvciBwYXJzaW5nIGh0dHAgbGljZW5zZSBrZXkgZGF0YS4gIitC''@;'; + put 'put ''ZSl9bGV0IGosST15aWVsZCB0aGlzLmJhc2U2NFRvQXJyYXlCdWZmZXIoaCkuY2F0Y2goQmU9PntDKEJlKX0pO2NvbnN0IHVlPXlpZWxkIHRoaXMuYmFzZTY0VG9BcnJheUJ1ZmZlcih2KS5jYXRjaChCZT0+e0MoQmUpfSk7aWYoIXVlKXJldHVybiB2b2lkIEMoIk1pc3NpbmcgYWN0aXZhdGlv''@;'; + put 'put ''biBrZXkiKTtsZXQgX2U7aj11ZTt0cnl7X2U9eWllbGQgd2luZG93LmNyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJwa2NzOCIsaix7bmFtZToiUlNBLU9BRVAiLGhhc2g6IlNIQS0yNTYifSwhMCxbImRlY3J5cHQiXSl9Y2F0Y2goQmUpe0MoIlVuYWJsZSB0byBpbXBvcnQgZGVjcnlwdGlvbiBr''@;'; + put 'put ''ZXk6ICIrQmUpfWlmKF9lKWlmKEkpdHJ5e3dpbmRvdy5jcnlwdG8uc3VidGxlLmRlY3J5cHQoe25hbWU6IlJTQS1PQUVQIixoYXNoOntuYW1lOiJTSEEtMjU2In19LF9lLEkpLnRoZW4oQmU9PntsZXQgTmU9KG5ldyB3b2UuVGV4dERlY29kZXIpLmRlY29kZShCZSk7dHJ5e3koSlNPTi5wYXJz''@;'; + put 'put ''ZShOZSkpfWNhdGNoKEtlKXtDKCJFcnJvciBwYXJzaW5nIGxpY2Vuc2Uga2V5IGRhdGEuICIrS2UpfX0sQmU9PntDKEJlKX0pfWNhdGNoKEJlKXtDKEJlKX1lbHNlIEMoIkxpY2Vuc2Uga2V5IGJ5dGVzIG1pc3NpbmciKTtlbHNlIEMoIlVuYWJsZSB0byBpbXBvcnQgZGVjcnlwdGlvbiBrZXki''@;'; + put 'put ''KX0pKX1iYXNlNjRUb0FycmF5QnVmZmVyKGgpe3JldHVybiBuZXcgUHJvbWlzZSgodix5KT0+bm8odGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe3YoVlUuSihoKSl9KSl9YXJyYXlCdWZmZXJUb0Jhc2U2NChoKXtyZXR1cm4gbmV3IFByb21pc2UoKHYseSk9Pnt2KFZVLmMoaCkpfSl9''@;'; + put 'put ''fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKENpKHNrKSxDaShtdSksQ2koZzIpLENpKHNjKSxDaShYYyksQ2koWmwpKX0sZC5cdTAyNzVwcm92PUFpKHt0b2tlbjpkLGZhY3Rvcnk6ZC5cdTAyNzVmYWN9KSxkfSkoKTtjbGFzcyBMSntjb25zdHJ1Y3Rv''@;'; + put 'put ''cihnLGgpe3RoaXMuZm49Zyx0aGlzLnN1YnNjcmlwdGlvbnM9aH11bnN1YnNjcmliZSgpe2NvbnN0IGc9dGhpcy5zdWJzY3JpcHRpb25zLmluZGV4T2YodGhpcyk7LTEhPT1nJiZ0aGlzLnN1YnNjcmlwdGlvbnMuc3BsaWNlKGcsMSl9fWZ1bmN0aW9uIGxnKGQpe3JldHVybiBudWxsIT1kJiYi''@;'; + put 'put ''b2JqZWN0Ij09dHlwZW9mIGQmJiEwPT09ZFsiQEBmdW5jdGlvbmFsL3BsYWNlaG9sZGVyIl19ZnVuY3Rpb24gaTQoZCl7cmV0dXJuIGZ1bmN0aW9uIGcoaCl7cmV0dXJuIDA9PT1hcmd1bWVudHMubGVuZ3RofHxsZyhoKT9nOmQuYXBwbHkodGhpcyxhcmd1bWVudHMpfX1mdW5jdGlvbiBwcChk''@;'; + put 'put ''KXtyZXR1cm4gZnVuY3Rpb24gZyhoLHYpe3N3aXRjaChhcmd1bWVudHMubGVuZ3RoKXtjYXNlIDA6cmV0dXJuIGc7Y2FzZSAxOnJldHVybiBsZyhoKT9nOmk0KGZ1bmN0aW9uKHkpe3JldHVybiBkKGgseSl9KTtkZWZhdWx0OnJldHVybiBsZyhoKSYmbGcodik/ZzpsZyhoKT9pNChmdW5jdGlv''@;'; + put 'put ''bih5KXtyZXR1cm4gZCh5LHYpfSk6bGcodik/aTQoZnVuY3Rpb24oeSl7cmV0dXJuIGQoaCx5KX0pOmQoaCx2KX19fWNvbnN0IHlEPXBwKGZ1bmN0aW9uKGcsaCl7cmV0dXJuIGggaW5zdGFuY2VvZiBnfHxudWxsIT1oJiYoaC5jb25zdHJ1Y3Rvcj09PWd8fCJPYmplY3QiPT09Zy5uYW1lJiYi''@;'; + put 'put ''b2JqZWN0Ij09dHlwZW9mIGgpfSk7ZnVuY3Rpb24gd0QoZCxnKXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGcsZCl9dmFyIE9KPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc7Y29uc3QgWk49ZnVuY3Rpb24oKXtyZXR1cm4iW29iamVjdCBBcmd1bWVudHNd''@;'; + put 'put ''Ij09PU9KLmNhbGwoYXJndW1lbnRzKT9mdW5jdGlvbihnKXtyZXR1cm4iW29iamVjdCBBcmd1bWVudHNdIj09PU9KLmNhbGwoZyl9OmZ1bmN0aW9uKGcpe3JldHVybiB3RCgiY2FsbGVlIixnKX19KCksek49QXJyYXkuaXNBcnJheXx8ZnVuY3Rpb24oZyl7cmV0dXJuIG51bGwhPWcmJmcubGVu''@;'; + put 'put ''Z3RoPj0wJiYiW29iamVjdCBBcnJheV0iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGcpfTtmdW5jdGlvbiBiRChkKXtyZXR1cm4iW29iamVjdCBTdHJpbmddIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChkKX12YXIgdWc9aTQoZnVuY3Rpb24oZyl7cmV0dXJu''@;'; + put 'put ''IG51bGwhPWcmJiJmdW5jdGlvbiI9PXR5cGVvZiBnWyJmYW50YXN5LWxhbmQvZW1wdHkiXT9nWyJmYW50YXN5LWxhbmQvZW1wdHkiXSgpOm51bGwhPWcmJm51bGwhPWcuY29uc3RydWN0b3ImJiJmdW5jdGlvbiI9PXR5cGVvZiBnLmNvbnN0cnVjdG9yWyJmYW50YXN5LWxhbmQvZW1wdHkiXT9n''@;'; + put 'put ''LmNvbnN0cnVjdG9yWyJmYW50YXN5LWxhbmQvZW1wdHkiXSgpOm51bGwhPWcmJiJmdW5jdGlvbiI9PXR5cGVvZiBnLmVtcHR5P2cuZW1wdHkoKTpudWxsIT1nJiZudWxsIT1nLmNvbnN0cnVjdG9yJiYiZnVuY3Rpb24iPT10eXBlb2YgZy5jb25zdHJ1Y3Rvci5lbXB0eT9nLmNvbnN0cnVjdG9y''@;'; + put 'put ''LmVtcHR5KCk6ek4oZyk/W106YkQoZyk/IiI6ZnVuY3Rpb24gUkooZCl7cmV0dXJuIltvYmplY3QgT2JqZWN0XSI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZCl9KGcpP3t9OlpOKGcpP2Z1bmN0aW9uKCl7cmV0dXJuIGFyZ3VtZW50c30oKTpmdW5jdGlvbiBzZyhkKXt2YXIg''@;'; + put 'put ''Zz1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZCk7cmV0dXJuIltvYmplY3QgVWludDhDbGFtcGVkQXJyYXldIj09PWd8fCJbb2JqZWN0IEludDhBcnJheV0iPT09Z3x8IltvYmplY3QgVWludDhBcnJheV0iPT09Z3x8IltvYmplY3QgSW50MTZBcnJheV0iPT09Z3x8IltvYmplY3Qg''@;'; + put 'put ''VWludDE2QXJyYXldIj09PWd8fCJbb2JqZWN0IEludDMyQXJyYXldIj09PWd8fCJbb2JqZWN0IFVpbnQzMkFycmF5XSI9PT1nfHwiW29iamVjdCBGbG9hdDMyQXJyYXldIj09PWd8fCJbb2JqZWN0IEZsb2F0NjRBcnJheV0iPT09Z3x8IltvYmplY3QgQmlnSW50NjRBcnJheV0iPT09Z3x8Iltv''@;'; + put 'put ''YmplY3QgQmlnVWludDY0QXJyYXldIj09PWd9KGcpP2cuY29uc3RydWN0b3IuZnJvbSgiIik6dm9pZCAwfSk7Y29uc3QgQko9dWc7ZnVuY3Rpb24gQ2soZCl7Zm9yKHZhciBoLGc9W107IShoPWQubmV4dCgpKS5kb25lOylnLnB1c2goaC52YWx1ZSk7cmV0dXJuIGd9ZnVuY3Rpb24gR04oZCxn''@;'; + put 'put ''LGgpe2Zvcih2YXIgdj0wLHk9aC5sZW5ndGg7djx5Oyl7aWYoZChnLGhbdl0pKXJldHVybiEwO3YrPTF9cmV0dXJuITF9Y29uc3QgV049ImZ1bmN0aW9uIj09dHlwZW9mIE9iamVjdC5pcz9PYmplY3QuaXM6ZnVuY3Rpb24gUEooZCxnKXtyZXR1cm4gZD09PWc/MCE9PWR8fDEvZD09MS9nOmQh''@;'; + put 'put ''PWQmJmchPWd9O3ZhciBfRD0he3RvU3RyaW5nOm51bGx9LnByb3BlcnR5SXNFbnVtZXJhYmxlKCJ0b1N0cmluZyIpLEZKPVsiY29uc3RydWN0b3IiLCJ2YWx1ZU9mIiwiaXNQcm90b3R5cGVPZiIsInRvU3RyaW5nIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJoYXNPd25Qcm9wZXJ0eSIsInRv''@;'; + put 'put ''TG9jYWxlU3RyaW5nIl0sSEo9ZnVuY3Rpb24oKXtyZXR1cm4gYXJndW1lbnRzLnByb3BlcnR5SXNFbnVtZXJhYmxlKCJsZW5ndGgiKX0oKSxDRD1mdW5jdGlvbihnLGgpe2Zvcih2YXIgdj0wO3Y8Zy5sZW5ndGg7KXtpZihnW3ZdPT09aClyZXR1cm4hMDt2Kz0xfXJldHVybiExfTtjb25zdCBV''@;'; + put 'put ''Tj1pNCgiZnVuY3Rpb24iIT10eXBlb2YgT2JqZWN0LmtleXN8fEhKP2Z1bmN0aW9uKGcpe2lmKE9iamVjdChnKSE9PWcpcmV0dXJuW107dmFyIGgsdix5PVtdLEM9SEomJlpOKGcpO2ZvcihoIGluIGcpd0QoaCxnKSYmKCFDfHwibGVuZ3RoIiE9PWgpJiYoeVt5Lmxlbmd0aF09aCk7aWYoX0Qp''@;'; + put 'put ''Zm9yKHY9RkoubGVuZ3RoLTE7dj49MDspd0QoaD1GSlt2XSxnKSYmIUNEKHksaCkmJih5W3kubGVuZ3RoXT1oKSx2LT0xO3JldHVybiB5fTpmdW5jdGlvbihnKXtyZXR1cm4gT2JqZWN0KGcpIT09Zz9bXTpPYmplY3Qua2V5cyhnKX0pLFZKPWk0KGZ1bmN0aW9uKGcpe3JldHVybiBudWxsPT09''@;'; + put 'put ''Zz8iTnVsbCI6dm9pZCAwPT09Zz8iVW5kZWZpbmVkIjpPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZykuc2xpY2UoOCwtMSl9KTtmdW5jdGlvbiBRTihkLGcsaCx2KXt2YXIgeT1DayhkKTtmdW5jdGlvbiBJKGosdWUpe3JldHVybiBKTihqLHVlLGguc2xpY2UoKSx2LnNsaWNlKCkp''@;'; + put 'put ''fXJldHVybiFHTihmdW5jdGlvbihqLHVlKXtyZXR1cm4hR04oSSx1ZSxqKX0sQ2soZykseSl9ZnVuY3Rpb24gSk4oZCxnLGgsdil7aWYoV04oZCxnKSlyZXR1cm4hMDt2YXIgeT1WSihkKTtpZih5IT09VkooZykpcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGRbImZhbnRhc3ktbGFu''@;'; + put 'put ''ZC9lcXVhbHMiXXx8ImZ1bmN0aW9uIj09dHlwZW9mIGdbImZhbnRhc3ktbGFuZC9lcXVhbHMiXSlyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgZFsiZmFudGFzeS1sYW5kL2VxdWFscyJdJiZkWyJmYW50YXN5LWxhbmQvZXF1YWxzIl0oZykmJiJmdW5jdGlvbiI9PXR5cGVvZiBnWyJmYW50YXN5''@;'; + put 'put ''LWxhbmQvZXF1YWxzIl0mJmdbImZhbnRhc3ktbGFuZC9lcXVhbHMiXShkKTtpZigiZnVuY3Rpb24iPT10eXBlb2YgZC5lcXVhbHN8fCJmdW5jdGlvbiI9PXR5cGVvZiBnLmVxdWFscylyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgZC5lcXVhbHMmJmQuZXF1YWxzKGcpJiYiZnVuY3Rpb24iPT10''@;'; + put 'put ''eXBlb2YgZy5lcXVhbHMmJmcuZXF1YWxzKGQpO3N3aXRjaCh5KXtjYXNlIkFyZ3VtZW50cyI6Y2FzZSJBcnJheSI6Y2FzZSJPYmplY3QiOmlmKCJmdW5jdGlvbiI9PXR5cGVvZiBkLmNvbnN0cnVjdG9yJiYiUHJvbWlzZSI9PT1mdW5jdGlvbiBhc2UoZCl7dmFyIGc9U3RyaW5nKGQpLm1hdGNo''@;'; + put 'put ''KC9eZnVuY3Rpb24gKFx3KikvKTtyZXR1cm4gbnVsbD09Zz8iIjpnWzFdfShkLmNvbnN0cnVjdG9yKSlyZXR1cm4gZD09PWc7YnJlYWs7Y2FzZSJCb29sZWFuIjpjYXNlIk51bWJlciI6Y2FzZSJTdHJpbmciOmlmKHR5cGVvZiBkIT10eXBlb2YgZ3x8IVdOKGQudmFsdWVPZigpLGcudmFsdWVP''@;'; + put 'put ''ZigpKSlyZXR1cm4hMTticmVhaztjYXNlIkRhdGUiOmlmKCFXTihkLnZhbHVlT2YoKSxnLnZhbHVlT2YoKSkpcmV0dXJuITE7YnJlYWs7Y2FzZSJFcnJvciI6cmV0dXJuIGQubmFtZT09PWcubmFtZSYmZC5tZXNzYWdlPT09Zy5tZXNzYWdlO2Nhc2UiUmVnRXhwIjppZihkLnNvdXJjZSE9PWcu''@;'; + put 'put ''c291cmNlfHxkLmdsb2JhbCE9PWcuZ2xvYmFsfHxkLmlnbm9yZUNhc2UhPT1nLmlnbm9yZUNhc2V8fGQubXVsdGlsaW5lIT09Zy5tdWx0aWxpbmV8fGQuc3RpY2t5IT09Zy5zdGlja3l8fGQudW5pY29kZSE9PWcudW5pY29kZSlyZXR1cm4hMX1mb3IodmFyIEM9aC5sZW5ndGgtMTtDPj0wOyl7''@;'; + put 'put ''aWYoaFtDXT09PWQpcmV0dXJuIHZbQ109PT1nO0MtPTF9c3dpdGNoKHkpe2Nhc2UiTWFwIjpyZXR1cm4gZC5zaXplPT09Zy5zaXplJiZRTihkLmVudHJpZXMoKSxnLmVudHJpZXMoKSxoLmNvbmNhdChbZF0pLHYuY29uY2F0KFtnXSkpO2Nhc2UiU2V0IjpyZXR1cm4gZC5zaXplPT09Zy5zaXpl''@;'; + put 'put ''JiZRTihkLnZhbHVlcygpLGcudmFsdWVzKCksaC5jb25jYXQoW2RdKSx2LmNvbmNhdChbZ10pKTtjYXNlIkFyZ3VtZW50cyI6Y2FzZSJBcnJheSI6Y2FzZSJPYmplY3QiOmNhc2UiQm9vbGVhbiI6Y2FzZSJOdW1iZXIiOmNhc2UiU3RyaW5nIjpjYXNlIkRhdGUiOmNhc2UiRXJyb3IiOmNhc2Ui''@;'; + put 'put ''UmVnRXhwIjpjYXNlIkludDhBcnJheSI6Y2FzZSJVaW50OEFycmF5IjpjYXNlIlVpbnQ4Q2xhbXBlZEFycmF5IjpjYXNlIkludDE2QXJyYXkiOmNhc2UiVWludDE2QXJyYXkiOmNhc2UiSW50MzJBcnJheSI6Y2FzZSJVaW50MzJBcnJheSI6Y2FzZSJGbG9hdDMyQXJyYXkiOmNhc2UiRmxvYXQ2''@;'; + put 'put ''NEFycmF5IjpjYXNlIkFycmF5QnVmZmVyIjpicmVhaztkZWZhdWx0OnJldHVybiExfXZhciBJPVVOKGQpO2lmKEkubGVuZ3RoIT09VU4oZykubGVuZ3RoKXJldHVybiExO3ZhciBqPWguY29uY2F0KFtkXSksdWU9di5jb25jYXQoW2ddKTtmb3IoQz1JLmxlbmd0aC0xO0M+PTA7KXt2YXIgX2U9''@;'; + put 'put ''SVtDXTtpZighd0QoX2UsZyl8fCFKTihnW19lXSxkW19lXSxqLHVlKSlyZXR1cm4hMTtDLT0xfXJldHVybiEwfWNvbnN0IEs2PXBwKGZ1bmN0aW9uKGcsaCl7cmV0dXJuIEpOKGcsaCxbXSxbXSl9KSxYTj1pNChmdW5jdGlvbihnKXtyZXR1cm4gbnVsbCE9ZyYmSzYoZyxCSihnKSl9KTtmdW5j''@;'; + put 'put ''dGlvbiBUeShkKXtyZXR1cm4gbnVsbD09ZH1mdW5jdGlvbiAkNihkKXtyZXR1cm4gVHkoZCl8fFhOKGQpfWZ1bmN0aW9uIGtrKGQpe3JldHVybiB5RChTdHJpbmcsZCl9ZnVuY3Rpb24gU0QoZCl7cmV0dXJuIHlEKE9iamVjdCxkKX1mdW5jdGlvbiBsc2UoZCl7cmV0dXJuIHlEKE1hcCxkKX1m''@;'; + put 'put ''dW5jdGlvbiBHSihkLGcpe3JldHVybiBkIT09Z31mdW5jdGlvbiBVSihkLGcpe3JldHVybiBKU09OLnN0cmluZ2lmeShkKT09PUpTT04uc3RyaW5naWZ5KGcpfWZ1bmN0aW9uICROKGQpe2NvbnN0IGc9bmV3IE1hcDtmb3IoY29uc3RbaCx2XW9mIGQpbHNlKHYpP2cuc2V0KGgsJE4odikpOmcu''@;'; + put 'put ''c2V0KGgsdik7cmV0dXJuIGd9ZnVuY3Rpb24gdXNlKGQpe3N3aXRjaCghMCl7Y2FzZSBsc2UoZCk6cmV0dXJuICROKGQpO2Nhc2UgU0QoZCkmJiFBcnJheS5pc0FycmF5KGQpOnJldHVybiBQNyh7fSxkKTtkZWZhdWx0OnJldHVybiBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGQpKX19ZnVu''@;'; + put 'put ''Y3Rpb24gUDcoLi4uZCl7Y29uc3QgZz17fTtyZXR1cm4gZC5tYXAoaD0+U0QoaCk/Z3Moe30saCk6e30pLmZvckVhY2goaD0+e09iamVjdC5rZXlzKGgpLmZvckVhY2godj0+e2NvbnN0IHk9aFt2XTtnW3ZdPUFycmF5LmlzQXJyYXkoeSk/QXJyYXkuZnJvbSh5KTpTRCh5KT9QNyhnW3ZdfHx7''@;'; + put 'put ''fSx5KTp5fSl9KSxnfWZ1bmN0aW9uIEpKKGQ9d2luZG93KXtyZXR1cm4hVHkoZCl9bGV0IE1ELGRzZSx0VixuVjtmdW5jdGlvbiByVihkPSEwKXtpZighZHx8IU1EKXtjb25zdCBnPWRvY3VtZW50JiZkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJbbmctdmVyc2lvbl0iKTtNRD1nPyIiK2cuZ2V0''@;'; + put 'put ''QXR0cmlidXRlKCJuZy12ZXJzaW9uIik6dm9pZCAwfXJldHVybiBNRH1mdW5jdGlvbiBwc2UoZD0hMCl7dmFyIGcsaDtyZXR1cm4gZCYmTUR8fChkc2U9bnVsbD09KGg9bnVsbD09KGc9bnVsbD09d2luZG93P3ZvaWQgMDp3aW5kb3cuYW5ndWxhcik/dm9pZCAwOmcudmVyc2lvbik/dm9pZCAw''@;'; + put 'put ''OmguZnVsbCksZHNlfWZ1bmN0aW9uIGlWKGQ9ITApe3ZhciBnLGg7cmV0dXJuIGQmJnRWfHwodFY9bnVsbCE9KGg9bnVsbD09KGc9bnVsbD09d2luZG93P3ZvaWQgMDp3aW5kb3cuQ0RTKT92b2lkIDA6Zy5fcmVhY3QpJiZoLnZlcnNpb24/d2luZG93LkNEUy5fcmVhY3QudmVyc2lvbjpkb2N1''@;'; + put 'put ''bWVudC5xdWVyeVNlbGVjdG9yKCJbZGF0YS1yZWFjdHJvb3RdLCBbZGF0YS1yZWFjdGlkXSIpPyJ1bmtub3duIHZlcnNpb24iOnZvaWQgMCksdFZ9ZnVuY3Rpb24gWEooZD0hMCl7aWYoIWR8fCFuVil7Y29uc3QgZz1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIqIik7bGV0IGg7Zm9yKGxl''@;'; + put 'put ''dCB2PTA7djxnLmxlbmd0aDt2KyspaWYoZ1t2XS5fX3Z1ZV9fKXtoPWdbdl07YnJlYWt9blY9aD8idW5rbm93biB2ZXJzaW9uIjp2b2lkIDB9cmV0dXJuIG5WfWZ1bmN0aW9uIEY3KGQpe3JldHVybiBkLnJlcGxhY2UoL1tBLVpdL2csZz0+Ii0iK2cudG9Mb3dlckNhc2UoKSl9ZnVuY3Rpb24g''@;'; + put 'put ''ZVgoZCl7cmV0dXJuIGQuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkrZC5zbGljZSgxKX1jb25zdCBic2U9bmV3IGNsYXNze2NvbnN0cnVjdG9yKCl7aWYodGhpcy5zdXBwb3J0cz17anM6ITB9LCFkb2N1bWVudC5ib2R5Lmhhc0F0dHJpYnV0ZSgiY2RzLXN1cHBvcnRzIil8fCJuby1qcyI9PT1k''@;'; + put 'put ''b2N1bWVudC5ib2R5LmdldEF0dHJpYnV0ZSgiY2RzLXN1cHBvcnRzIikpe2NvbnN0IGQ9RjcoT2JqZWN0LmtleXModGhpcy5zdXBwb3J0cykucmVkdWNlKChnLGgpPT5gJHtnfSAke3RoaXMuc3VwcG9ydHNbaF0/aDoibm8tIitofWAsIiIpKS50cmltKCk7ZG9jdW1lbnQuYm9keS5zZXRBdHRy''@;'; + put 'put ''aWJ1dGUoImNkcy1zdXBwb3J0cyIsZCl9fX07ZnVuY3Rpb24gSDcoZCxnKXtzd2l0Y2goZCl7Y2FzZSAwOnJldHVybiBmdW5jdGlvbigpe3JldHVybiBnLmFwcGx5KHRoaXMsYXJndW1lbnRzKX07Y2FzZSAxOnJldHVybiBmdW5jdGlvbihoKXtyZXR1cm4gZy5hcHBseSh0aGlzLGFyZ3VtZW50''@;'; + put 'put ''cyl9O2Nhc2UgMjpyZXR1cm4gZnVuY3Rpb24oaCx2KXtyZXR1cm4gZy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9O2Nhc2UgMzpyZXR1cm4gZnVuY3Rpb24oaCx2LHkpe3JldHVybiBnLmFwcGx5KHRoaXMsYXJndW1lbnRzKX07Y2FzZSA0OnJldHVybiBmdW5jdGlvbihoLHYseSxDKXtyZXR1cm4g''@;'; + put 'put ''Zy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9O2Nhc2UgNTpyZXR1cm4gZnVuY3Rpb24oaCx2LHksQyxJKXtyZXR1cm4gZy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9O2Nhc2UgNjpyZXR1cm4gZnVuY3Rpb24oaCx2LHksQyxJLGope3JldHVybiBnLmFwcGx5KHRoaXMsYXJndW1lbnRzKX07Y2FzZSA3''@;'; + put 'put ''OnJldHVybiBmdW5jdGlvbihoLHYseSxDLEksaix1ZSl7cmV0dXJuIGcuYXBwbHkodGhpcyxhcmd1bWVudHMpfTtjYXNlIDg6cmV0dXJuIGZ1bmN0aW9uKGgsdix5LEMsSSxqLHVlLF9lKXtyZXR1cm4gZy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9O2Nhc2UgOTpyZXR1cm4gZnVuY3Rpb24oaCx2''@;'; + put 'put ''LHksQyxJLGosdWUsX2UsQmUpe3JldHVybiBnLmFwcGx5KHRoaXMsYXJndW1lbnRzKX07Y2FzZSAxMDpyZXR1cm4gZnVuY3Rpb24oaCx2LHksQyxJLGosdWUsX2UsQmUsTmUpe3JldHVybiBnLmFwcGx5KHRoaXMsYXJndW1lbnRzKX07ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIkZpcnN0IGFy''@;'; + put 'put ''Z3VtZW50IHRvIF9hcml0eSBtdXN0IGJlIGEgbm9uLW5lZ2F0aXZlIGludGVnZXIgbm8gZ3JlYXRlciB0aGFuIHRlbiIpfX1mdW5jdGlvbiBvWChkLGcsaCl7cmV0dXJuIGZ1bmN0aW9uKCl7Zm9yKHZhciB2PVtdLHk9MCxDPWQsST0wO0k8Zy5sZW5ndGh8fHk8YXJndW1lbnRzLmxlbmd0aDsp''@;'; + put 'put ''e3ZhciBqO0k8Zy5sZW5ndGgmJighbGcoZ1tJXSl8fHk+PWFyZ3VtZW50cy5sZW5ndGgpP2o9Z1tJXTooaj1hcmd1bWVudHNbeV0seSs9MSksdltJXT1qLGxnKGopfHwoQy09MSksSSs9MX1yZXR1cm4gQzw9MD9oLmFwcGx5KHRoaXMsdik6SDcoQyxvWChkLHYsaCkpfX1jb25zdCBhWD1wcChm''@;'; + put 'put ''dW5jdGlvbihnLGgpe3JldHVybiAxPT09Zz9pNChoKTpINyhnLG9YKGcsW10saCkpfSksbFg9TnVtYmVyLmlzSW50ZWdlcnx8ZnVuY3Rpb24oZyl7cmV0dXJuIGc8PDA9PT1nfSxrc2U9cHAoZnVuY3Rpb24oZyxoKXt2YXIgdj1nPDA/aC5sZW5ndGgrZzpnO3JldHVybiBiRChoKT9oLmNoYXJB''@;'; + put 'put ''dCh2KTpoW3ZdfSksTXNlPXBwKGZ1bmN0aW9uKGcsaCl7cmV0dXJuIGcubWFwKGZ1bmN0aW9uKHYpe2Zvcih2YXIgSSx5PWgsQz0wO0M8di5sZW5ndGg7KXtpZihudWxsPT15KXJldHVybjt5PWxYKEk9dltDXSk/a3NlKEkseSk6eVtJXSxDKz0xfXJldHVybiB5fSl9KSx4c2U9cHAoZnVuY3Rp''@;'; + put 'put ''b24oZyxoKXtyZXR1cm4gTXNlKFtnXSxoKVswXX0pLFRzZT1hWCgyLChkLGcpPT52b2lkIDAhPT14c2UoZCxnKSksRUQ9VHNlKHsiQEBmdW5jdGlvbmFsL3BsYWNlaG9sZGVyIjohMH0sd2luZG93KTtjbGFzcyBON3tzdGF0aWMgbG9nKC4uLmcpe3NWKCkmJmxWKCkmJmNvbnNvbGUubG9nKC4u''@;'; + put 'put ''LmcpfXN0YXRpYyB3YXJuKC4uLmcpe3NWKCkmJmxWKCkmJmNvbnNvbGUud2FybiguLi5nKX1zdGF0aWMgZXJyb3IoLi4uZyl7c1YoKSYmbFYoKSYmY29uc29sZS5lcnJvciguLi5nKX19ZnVuY3Rpb24gbFYoKXtyZXR1cm4hRUQoWyJqYXNtaW5lIl0pfWZ1bmN0aW9uIHNWKCl7cmV0dXJuIXdp''@;'; + put 'put ''bmRvdy5DRFMuZW52aXJvbm1lbnQucHJvZHVjdGlvbn1mdW5jdGlvbiB1Vigpe0pKKCkmJih3aW5kb3cuQ0RTPXdpbmRvdy5DRFN8fHtfdmVyc2lvbjpbXSxfcmVhY3Q6e3ZlcnNpb246dm9pZCAwfSxfc3VwcG9ydHM6YnNlLnN1cHBvcnRzLF9pc1N0YXRlUHJveGllZDohMSxfc3RhdGU6e2Zv''@;'; + put 'put ''Y3VzVHJhcEl0ZW1zOltdLGxheWVyRWxlbWVudHM6W10saTE4blJlZ2lzdHJ5Ont9LGVsZW1lbnRSZWdpc3RyeTp7fSxpY29uUmVnaXN0cnk6e30sbW90aW9uUmVnaXN0cnk6e319LGVudmlyb25tZW50Ontwcm9kdWN0aW9uOiExfSxnZXREZXRhaWxzOnVYLGxvZ0RldGFpbHM6Y1h9LGZ1bmN0''@;'; + put 'put ''aW9uKCl7dmFyIGc7Y29uc3QgZD0iNi4xLjAiO3dpbmRvdy5DRFMuX3ZlcnNpb24uaW5kZXhPZihkKTwwJiYod2luZG93LkNEUy5fdmVyc2lvbi5wdXNoKGQpLG51bGw9PShnPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImJvZHkiKSl8fGcuc2V0QXR0cmlidXRlKCJjZHMtdmVyc2lvbiIsd2lu''@;'; + put 'put ''ZG93LkNEUy5fdmVyc2lvbi5qb2luKCIgIikpKSx3aW5kb3cuQ0RTLl92ZXJzaW9uLmxlbmd0aD4xJiZONy53YXJuKCJSdW5uaW5nIG1vcmUgdGhhbiBvbmUgdmVyc2lvbiBvZiBDbGFyaXR5IGNhbiBjYXVzZSB1bmV4cGVjdGVkIGlzc3Vlcy4gUGxlYXNlIGVuc3VyZSBvbmx5IG9uZSB2ZXJz''@;'; + put 'put ''aW9uIGlzIGxvYWRlZC4iKX0oKSx3aW5kb3cuQ0RTLl9pc1N0YXRlUHJveGllZHx8KHdpbmRvdy5DRFMuX2lzU3RhdGVQcm94aWVkPSEwLHdpbmRvdy5DRFMuX3N0YXRlPW5ldyBQcm94eSh3aW5kb3cuQ0RTLl9zdGF0ZSx7c2V0OihkLGcsaCk9Pntjb25zdCB2PXtrZXk6ZyxwcmV2OndpbmRv''@;'; + put 'put ''dy5DRFMuX3N0YXRlW2ddLGN1cnJlbnQ6aH07cmV0dXJuIGRbZ109aCxkb2N1bWVudC5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiQ0RTX1NUQVRFX1VQREFURSIse2RldGFpbDp2fSkpLCEwfX0pKSl9ZnVuY3Rpb24gdVgoKXtyZXR1cm57dmVyc2lvbnM6d2luZG93LkNEUy5fdmVy''@;'; + put 'put ''c2lvbixlbnZpcm9ubWVudDp3aW5kb3cuQ0RTLmVudmlyb25tZW50LHVzZXJBZ2VudDpuYXZpZ2F0b3IudXNlckFnZW50LHN1cHBvcnRzOndpbmRvdy5DRFMuX3N1cHBvcnRzLGFuZ3VsYXJWZXJzaW9uOnJWKCExKSxhbmd1bGFySlNWZXJzaW9uOnBzZSghMSkscmVhY3RWZXJzaW9uOmlWKCEx''@;'; + put 'put ''KSx2dWVWZXJzaW9uOlhKKCExKSxzdGF0ZTpHeihncyh7fSx3aW5kb3cuQ0RTLl9zdGF0ZSkse2ljb25SZWdpc3RyeTpPYmplY3Qua2V5cyh3aW5kb3cuQ0RTLl9zdGF0ZS5pY29uUmVnaXN0cnkpLG1vdGlvblJlZ2lzdHJ5Ok9iamVjdC5rZXlzKHdpbmRvdy5DRFMuX3N0YXRlLm1vdGlvblJl''@;'; + put 'put ''Z2lzdHJ5KSxmb2N1c1RyYXBSZWdpc3RyeTpPYmplY3Qua2V5cyh3aW5kb3cuQ0RTLl9zdGF0ZS5mb2N1c1RyYXBJdGVtcy5tYXAoZD0+ZC5mb2N1c1RyYXBJZCkpfSl9fWZ1bmN0aW9uIGNYKCl7TjcubG9nKEpTT04uc3RyaW5naWZ5KHVYKCksbnVsbCwyKSl9Y29uc3QgeEQ9bmV3IGNsYXNz''@;'; + put 'put ''IHJzZXtjb25zdHJ1Y3Rvcigpe3RoaXMuc3Vic2NyaXB0aW9ucz1bXX1zdWJzY3JpYmUoZyl7Y29uc3QgaD1uZXcgTEooZyx0aGlzLnN1YnNjcmlwdGlvbnMpO3JldHVybiB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChoKSxofWVtaXQoZyl7dGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goaD0+''@;'; + put 'put ''aC5mbihnKSl9dG9FdmVudE9ic2VydmFibGUoKXtyZXR1cm4gdGhpc319O3hELmxpc3RlbmVyPWRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIkNEU19TVEFURV9VUERBVEUiLGQ9PnhELmVtaXQoZC5kZXRhaWwpKTtjbGFzcyBKMXtzdGF0aWMgZ2V0IHN0YXRlKCl7cmV0dXJuIHVWKCksd2lu''@;'; + put 'put ''ZG93LkNEUy5fc3RhdGV9c3RhdGljIGdldFZhbHVlKGcpe3JldHVybiBKMS5zdGF0ZVtnXX1zdGF0aWMgc2V0VmFsdWUoZyxoKXtKMS5zdGF0ZVtnXT1ofXN0YXRpYyBsb2coKXtONy5sb2coSlNPTi5zdHJpbmdpZnkoSjEuc3RhdGUsbnVsbCwyKSl9fUoxLnN0YXRlVXBkYXRlcz14RC50b0V2''@;'; + put 'put ''ZW50T2JzZXJ2YWJsZSgpO2NvbnN0IERzZT1bInVua25vd24iLHtvdXRsaW5lOic8Y2lyY2xlIGNsYXNzPSJjZHMtaW50ZXJuYWwtZG90LTMiIGN4PSIzMS4xIiBjeT0iMTgiIHI9IjIuOSIvPjxjaXJjbGUgY2xhc3M9ImNkcy1pbnRlcm5hbC1kb3QtMiIgY3g9IjE4IiBjeT0iMTgiIHI9IjIu''@;'; + put 'put ''OSIvPjxjaXJjbGUgY2xhc3M9ImNkcy1pbnRlcm5hbC1kb3QtMSIgY3g9IjQuOSIgY3k9IjE4IiByPSIyLjkiLz4nfV07Y2xhc3MgZnN7c3RhdGljIGdldCByZWdpc3RyeSgpe3JldHVybiBncyh7dW5rbm93bjpEc2VbMV19LEoxLnN0YXRlLmljb25SZWdpc3RyeSl9c3RhdGljIGFkZEljb25z''@;'; + put 'put ''KC4uLmcpe0oxLnN0YXRlLmljb25SZWdpc3RyeT1ncyhncyh7fSxKMS5zdGF0ZS5pY29uUmVnaXN0cnkpLE9iamVjdC5mcm9tRW50cmllcyhnLmZpbHRlcigoW2hdKT0+IWZzLnJlZ2lzdHJ5W2hdKSkpfXN0YXRpYyBhZGRBbGlhc2VzKC4uLmcpe2NvbnN0IGg9Zy5maWx0ZXIoKFt2XSk9PmZz''@;'; + put 'put ''LnJlZ2lzdHJ5W3ZdKS5mbGF0TWFwKChbdix5XSk9PnkubWFwKEM9PltDLGZzLnJlZ2lzdHJ5W3ZdXSkpO0oxLnN0YXRlLmljb25SZWdpc3RyeT1ncyhncyh7fSxKMS5zdGF0ZS5pY29uUmVnaXN0cnkpLE9iamVjdC5mcm9tRW50cmllcyhoKSl9c3RhdGljIGdldEljb25OYW1lRnJvbVNoYXBl''@;'; + put 'put ''KGcpe3JldHVybiBnWzBdfX1jb25zdCBJeT1bImFuZ2xlIix7b3V0bGluZTonPHBhdGggZD0iTTI5LjUyLDIyLjUyLDE4LDEwLjYsNi40OCwyMi41MmExLjcsMS43LDAsMCwwLDIuNDUsMi4zNkwxOCwxNS40OWw5LjA4LDkuMzlhMS43LDEuNywwLDAsMCwyLjQ1LTIuMzZaIi8+J31dLEtoPVsi''@;'; + put 'put ''ZXhjbGFtYXRpb24tY2lyY2xlIix7b3V0bGluZTonPHBhdGggZD0iTTE4LDZBMTIsMTIsMCwxLDAsMzAsMTgsMTIsMTIsMCwwLDAsMTgsNlptMCwyMkExMCwxMCwwLDEsMSwyOCwxOCwxMCwxMCwwLDAsMSwxOCwyOFoiLz48cGF0aCBkPSJNMTgsMjAuMDdhMS4zLDEuMywwLDAsMS0xLjMtMS4z''@;'; + put 'put ''di02YTEuMywxLjMsMCwxLDEsMi42LDB2NkExLjMsMS4zLDAsMCwxLDE4LDIwLjA3WiIvPjxjaXJjbGUgY3g9IjE3Ljk1IiBjeT0iMjMuMDIiIHI9IjEuNSIvPicsc29saWQ6JzxwYXRoIGQ9Ik0xOCw2QTEyLDEyLDAsMSwwLDMwLDE4LDEyLDEyLDAsMCwwLDE4LDZabS0xLjQ5LDZhMS40OSwx''@;'; + put 'put ''LjQ5LDAsMCwxLDMsMHY2Ljg5YTEuNDksMS40OSwwLDEsMS0zLDBaTTE4LDI1LjVhMS43MiwxLjcyLDAsMSwxLDEuNzItMS43MkExLjcyLDEuNzIsMCwwLDEsMTgsMjUuNVoiLz4nfV0sVGY9WyJjaGVjay1jaXJjbGUiLHtvdXRsaW5lOic8cGF0aCBkPSJNMTgsNkExMiwxMiwwLDEsMCwzMCwx''@;'; + put 'put ''OCwxMiwxMiwwLDAsMCwxOCw2Wm0wLDIyQTEwLDEwLDAsMSwxLDI4LDE4LDEwLDEwLDAsMCwxLDE4LDI4WiIvPjxwYXRoIGQ9Ik0xNi4zNCwyMy43NGwtNS01YTEsMSwwLDAsMSwxLjQxLTEuNDFsMy41OSwzLjU5LDYuNzgtNi43OGExLDEsMCwwLDEsMS40MSwxLjQxWiIvPicsc29saWQ6Jzxw''@;'; + put 'put ''YXRoIGQ9Ik0zMCwxOEExMiwxMiwwLDEsMSwxOCw2LDEyLDEyLDAsMCwxLDMwLDE4Wm0tNC43Ny0yLjE2YTEuNCwxLjQsMCwwLDAtMi0ybC02Ljc3LDYuNzdMMTMsMTcuMTZhMS40LDEuNCwwLDAsMC0yLDJsNS40NSw1LjQ1WiIvPid9XSxjVj1bImVsbGlwc2lzLWhvcml6b250YWwiLHtvdXRs''@;'; + put 'put ''aW5lOic8Y2lyY2xlIGN4PSIzMS4xIiBjeT0iMTgiIHI9IjIuOSIvPjxjaXJjbGUgY3g9IjE4IiBjeT0iMTgiIHI9IjIuOSIvPjxjaXJjbGUgY3g9IjQuOSIgY3k9IjE4IiByPSIyLjkiLz4nLG91dGxpbmVCYWRnZWQ6JzxjaXJjbGUgY3g9IjMxLjEiIGN5PSIxOCIgcj0iMi45Ii8+PGNpcmNs''@;'; + put 'put ''ZSBjeD0iMTgiIGN5PSIxOCIgcj0iMi45Ii8+PGNpcmNsZSBjeD0iNC45IiBjeT0iMTgiIHI9IjIuOSIvPid9XSxTaz1bIndpbmRvdy1jbG9zZSIse291dGxpbmU6JzxwYXRoIGQ9Ik0xOS40MSwxOGw3LjI5LTcuMjlhMSwxLDAsMCwwLTEuNDEtMS40MUwxOCwxNi41OSwxMC43MSw5LjI5YTEs''@;'; + put 'put ''MSwwLDAsMC0xLjQxLDEuNDFMMTYuNTksMTgsOS4yOSwyNS4yOWExLDEsMCwxLDAsMS40MSwxLjQxTDE4LDE5LjQxbDcuMjksNy4yOWExLDEsMCwwLDAsMS40MS0xLjQxWiIvPid9XSxMc2U9WyJldmVudCIse291dGxpbmU6JzxwYXRoIGQ9Ik0xNi4xNywyNS44NiwxMC44MSwyMC41YTEsMSww''@;'; + put 'put ''LDAsMSwxLjQxLTEuNDFMMTYuMTcsMjNsOC42NC04LjY0YTEsMSwwLDAsMSwxLjQxLDEuNDFaIi8+PHBhdGggZD0iTTMyLjI1LDZIMjlWOGgzVjMwSDRWOEg3VjZIMy43NUExLjc4LDEuNzgsMCwwLDAsMiw3LjgxVjMwLjE5QTEuNzgsMS43OCwwLDAsMCwzLjc1LDMyaDI4LjVBMS43OCwxLjc4''@;'; + put 'put ''LDAsMCwwLDM0LDMwLjE5VjcuODFBMS43OCwxLjc4LDAsMCwwLDMyLjI1LDZaIi8+PHBhdGggZD0iTTEwLDEwYTEsMSwwLDAsMCwxLTFWM0ExLDEsMCwwLDAsOSwzVjlBMSwxLDAsMCwwLDEwLDEwWiIvPjxwYXRoIGQ9Ik0yNiwxMGExLDEsMCwwLDAsMS0xVjNhMSwxLDAsMCwwLTIsMFY5QTEs''@;'; + put 'put ''MSwwLDAsMCwyNiwxMFoiLz48cmVjdCB4PSIxMyIgeT0iNiIgd2lkdGg9IjEwIiBoZWlnaHQ9IjIiLz4nLG91dGxpbmVBbGVydGVkOic8cGF0aCBkPSJNMTAsMTBhMSwxLDAsMCwwLDEtMVYzQTEsMSwwLDAsMCw5LDNWOUExLDEsMCwwLDAsMTAsMTBaIi8+PHBhdGggZD0iTTEwLjgxLDIwLjVs''@;'; + put 'put ''NS4zNiw1LjM2TDI2LjIyLDE1LjgxYTEsMSwwLDAsMCwuMjMtLjQxSDIzLjhMMTYuMTcsMjNsLTMuOTQtMy45NGExLDEsMCwwLDAtMS40MSwxLjQxWiIvPjxwb2x5Z29uIHBvaW50cz0iMjEuMjkgNiAxMyA2IDEzIDggMjAuMTQgOCAyMS4yOSA2Ii8+PHBhdGggZD0iTTMzLjY4LDE1LjRIMzJW''@;'; + put 'put ''MzBINFY4SDdWNkgzLjc1QTEuNzgsMS43OCwwLDAsMCwyLDcuODFWMzAuMTlBMS43OCwxLjc4LDAsMCwwLDMuNzUsMzJoMjguNUExLjc4LDEuNzgsMCwwLDAsMzQsMzAuMTlWMTUuMzhaIi8+JyxvdXRsaW5lQmFkZ2VkOic8cGF0aCBkPSJNMTAuODEsMjAuNWw1LjM2LDUuMzZMMjYuMjIsMTUu''@;'; + put 'put ''ODFhMSwxLDAsMCwwLTEuNDEtMS40MUwxNi4xNywyM2wtMy45NC0zLjk0YTEsMSwwLDAsMC0xLjQxLDEuNDFaIi8+PHBhdGggZD0iTTEwLDEwYTEsMSwwLDAsMCwxLTFWM0ExLDEsMCwwLDAsOSwzVjlBMSwxLDAsMCwwLDEwLDEwWiIvPjxwYXRoIGQ9Ik0zMiwxMy4yMlYzMEg0VjhIN1Y2SDMu''@;'; + put 'put ''NzVBMS43OCwxLjc4LDAsMCwwLDIsNy44MVYzMC4xOUExLjc4LDEuNzgsMCwwLDAsMy43NSwzMmgyOC41QTEuNzgsMS43OCwwLDAsMCwzNCwzMC4xOVYxMi4zNEE3LjQ1LDcuNDUsMCwwLDEsMzIsMTMuMjJaIi8+PHBhdGggZD0iTTIyLjUsNkgxM1Y4aDkuNzhBNy40OSw3LjQ5LDAsMCwxLDIy''@;'; + put 'put ''LjUsNloiLz4nLHNvbGlkOic8cGF0aCBkPSJNMTAsMTBhMSwxLDAsMCwwLDEtMVYzQTEsMSwwLDAsMCw5LDNWOUExLDEsMCwwLDAsMTAsMTBaIi8+PHBhdGggZD0iTTI2LDEwYTEsMSwwLDAsMCwxLTFWM2ExLDEsMCwwLDAtMiwwVjlBMSwxLDAsMCwwLDI2LDEwWiIvPjxwYXRoIGQ9Ik0zMi4y''@;'; + put 'put ''NSw2aC00VjlhMi4yLDIuMiwwLDAsMS00LjQsMFY2SDEyLjJWOUEyLjIsMi4yLDAsMCwxLDcuOCw5VjZoLTRBMS43OCwxLjc4LDAsMCwwLDIsNy44MVYzMC4xOUExLjc4LDEuNzgsMCwwLDAsMy43NSwzMmgyOC41QTEuNzgsMS43OCwwLDAsMCwzNCwzMC4xOVY3LjgxQTEuNzgsMS43OCwwLDAs''@;'; + put 'put ''MCwzMi4yNSw2Wk0yNS45NCwxNi41OGwtOS42Nyw5LjY3TDExLDIwLjk0QTEuMzYsMS4zNiwwLDAsMSwxMi45LDE5bDMuMzgsMy4zOEwyNCwxNC42NmExLjM2LDEuMzYsMCwxLDEsMS45MywxLjkzWiIvPicsc29saWRBbGVydGVkOic8cGF0aCBkPSJNMTAsMTBhMSwxLDAsMCwwLDEtMVYzQTEs''@;'; + put 'put ''MSwwLDAsMCw5LDNWOUExLDEsMCwwLDAsMTAsMTBaIi8+PHBhdGggZD0iTTMzLjY4LDE1LjRIMjYuM2ExLjM0LDEuMzQsMCwwLDEtLjM2LDEuMThsLTkuNjcsOS42N0wxMSwyMC45NEExLjM2LDEuMzYsMCwwLDEsMTIuOSwxOWwzLjM4LDMuMzgsNy03aC0xQTMuNjgsMy42OCwwLDAsMSwxOSw5''@;'; + put 'put ''Ljg5TDIxLjI5LDZIMTIuMlY5QTIuMiwyLjIsMCwwLDEsNy44LDlWNmgtNEExLjc4LDEuNzgsMCwwLDAsMiw3LjgxVjMwLjE5QTEuNzgsMS43OCwwLDAsMCwzLjc1LDMyaDI4LjVBMS43OCwxLjc4LDAsMCwwLDM0LDMwLjE5VjE1LjM4WiIvPicsc29saWRCYWRnZWQ6JzxwYXRoIGQ9Ik0xMCwx''@;'; + put 'put ''MGExLDEsMCwwLDAsMS0xVjNBMSwxLDAsMCwwLDksM1Y5QTEsMSwwLDAsMCwxMCwxMFoiLz48cGF0aCBkPSJNMzAsMTMuNUE3LjUsNy41LDAsMCwxLDIyLjUsNkgxMi4yVjlBMi4yLDIuMiwwLDAsMSw3LjgsOVY2aC00QTEuNzgsMS43OCwwLDAsMCwyLDcuODFWMzAuMTlBMS43OCwxLjc4LDAs''@;'; + put 'put ''MCwwLDMuNzUsMzJoMjguNUExLjc4LDEuNzgsMCwwLDAsMzQsMzAuMTlWMTIuMzRBNy40NSw3LjQ1LDAsMCwxLDMwLDEzLjVabS00LjA2LDMuMDgtOS42Nyw5LjY3TDExLDIwLjk0QTEuMzYsMS4zNiwwLDAsMSwxMi45LDE5bDMuMzgsMy4zOEwyNCwxNC42NmExLjM2LDEuMzYsMCwxLDEsMS45''@;'; + put 'put ''MywxLjkzWiIvPid9XSxPc2U9WyJjYWxlbmRhciIse291dGxpbmU6JzxwYXRoIGQ9Ik0zMi4yNSw2SDI5VjhoM1YzMEg0VjhIN1Y2SDMuNzVBMS43OCwxLjc4LDAsMCwwLDIsNy44MVYzMC4xOUExLjc4LDEuNzgsMCwwLDAsMy43NSwzMmgyOC41QTEuNzgsMS43OCwwLDAsMCwzNCwzMC4xOVY3''@;'; + put 'put ''LjgxQTEuNzgsMS43OCwwLDAsMCwzMi4yNSw2WiIvPjxyZWN0IHg9IjgiIHk9IjE0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+PHJlY3QgeD0iMTQiIHk9IjE0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+PHJlY3QgeD0iMjAiIHk9IjE0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+PHJlY3QgeD0i''@;'; + put 'put ''MjYiIHk9IjE0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+PHJlY3QgeD0iOCIgeT0iMTkiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz48cmVjdCB4PSIxNCIgeT0iMTkiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz48cmVjdCB4PSIyMCIgeT0iMTkiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz48cmVjdCB4''@;'; + put 'put ''PSIyNiIgeT0iMTkiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz48cmVjdCB4PSI4IiB5PSIyNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPjxyZWN0IiB4PSIxNCIgeT0iMjQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz48cmVjdCB4PSIyMCIgeT0iMjQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz48cmVj''@;'; + put 'put ''dCB4PSIyNiIgeT0iMjQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz48cGF0aCBkPSJNMTAsMTBhMSwxLDAsMCwwLDEtMVYzQTEsMSwwLDAsMCw5LDNWOUExLDEsMCwwLDAsMTAsMTBaIi8+PHBhdGggZD0iTTI2LDEwYTEsMSwwLDAsMCwxLTFWM2ExLDEsMCwwLDAtMiwwVjlBMSwxLDAsMCwwLDI2''@;'; + put 'put ''LDEwWiIvPjxyZWN0IHg9IjEzIiB5PSI2IiB3aWR0aD0iMTAiIGhlaWdodD0iMiIvPicsb3V0bGluZUFsZXJ0ZWQ6JzxwYXRoIGQ9Ik0zMy42OCwxNS40SDMyVjMwSDRWOEg3VjZIMy43NUExLjc4LDEuNzgsMCwwLDAsMiw3LjgxVjMwLjE5QTEuNzgsMS43OCwwLDAsMCwzLjc1LDMyaDI4LjVB''@;'; + put 'put ''MS43OCwxLjc4LDAsMCwwLDM0LDMwLjE5VjE1LjM4WiIvPjxyZWN0IHg9IjgiIHk9IjE0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+PHJlY3QgeD0iMTQiIHk9IjE0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+PHJlY3QgeD0iOCIgeT0iMTkiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz48cmVjdCB4''@;'; + put 'put ''PSIxNCIgeT0iMTkiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz48cmVjdCB4PSIyMCIgeT0iMTkiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz48cmVjdCB4PSIyNiIgeT0iMTkiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz48cmVjdCB4PSI4IiB5PSIyNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPjxyZWN0''@;'; + put 'put ''IHg9IjE0IiB5PSIyNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPjxyZWN0IHg9IjIwIiB5PSIyNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPjxyZWN0IHg9IjI2IiB5PSIyNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPjxwYXRoIGQ9Ik0xMCwxMGExLDEsMCwwLDAsMS0xVjNBMSwxLDAsMCwwLDks''@;'; + put 'put ''M1Y5QTEsMSwwLDAsMCwxMCwxMFoiLz48cG9seWdvbiBwb2ludHM9IjIxLjI5IDYgMTMgNiAxMyA4IDIwLjE0IDggMjEuMjkgNiIvPicsb3V0bGluZUJhZGdlZDonPHBhdGggZD0iTTMyLDEzLjIyVjMwSDRWOEg3VjZIMy43NUExLjc4LDEuNzgsMCwwLDAsMiw3LjgxVjMwLjE5QTEuNzgsMS43''@;'; + put 'put ''OCwwLDAsMCwzLjc1LDMyaDI4LjVBMS43OCwxLjc4LDAsMCwwLDM0LDMwLjE5VjEyLjM0QTcuNDUsNy40NSwwLDAsMSwzMiwxMy4yMloiLz48cmVjdCB4PSI4IiB5PSIxNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPjxyZWN0IHg9IjE0IiB5PSIxNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPjxy''@;'; + put 'put ''ZWN0IHg9IjIwIiB5PSIxNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPjxyZWN0IHg9IjI2IiB5PSIxNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPjxyZWN0IHg9IjgiIHk9IjE5IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+PHJlY3QgeD0iMTQiIHk9IjE5IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+''@;'; + put 'put ''PHJlY3QgeD0iMjAiIHk9IjE5IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+PHJlY3QgeD0iMjYiIHk9IjE5IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+PHJlY3QgeD0iOCIgeT0iMjQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz48cmVjdCB4PSIxNCIgeT0iMjQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIi''@;'; + put 'put ''Lz48cmVjdCB4PSIyMCIgeT0iMjQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz48cmVjdCB4PSIyNiIgeT0iMjQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz48cGF0aCBkPSJNMTAsMTBhMSwxLDAsMCwwLDEtMVYzQTEsMSwwLDAsMCw5LDNWOUExLDEsMCwwLDAsMTAsMTBaIi8+PHBhdGggZD0iTTIy''@;'; + put 'put ''LjUsNkgxM1Y4aDkuNzhBNy40OSw3LjQ5LDAsMCwxLDIyLjUsNloiLz4nLHNvbGlkOic8cGF0aCBkPSJNMzIuMjUsNmgtNFY5YTIuMiwyLjIsMCwxLDEtNC40LDBWNkgxMi4yVjlBMi4yLDIuMiwwLDAsMSw3LjgsOVY2aC00QTEuNzgsMS43OCwwLDAsMCwyLDcuODFWMzAuMTlBMS43OCwxLjc4''@;'; + put 'put ''LDAsMCwwLDMuNzUsMzJoMjguNUExLjc4LDEuNzgsMCwwLDAsMzQsMzAuMTlWNy44MUExLjc4LDEuNzgsMCwwLDAsMzIuMjUsNlpNMTAsMjZIOFYyNGgyWm0wLTVIOFYxOWgyWm0wLTVIOFYxNGgyWm02LDEwSDE0VjI0aDJabTAtNUgxNFYxOWgyWm0wLTVIMTRWMTRoMlptNiwxMEgyMFYyNGgy''@;'; + put 'put ''Wm0wLTVIMjBWMTloMlptMC01SDIwVjE0aDJabTYsMTBIMjZWMjRoMlptMC01SDI2VjE5aDJabTAtNUgyNlYxNGgyWiIvPjxwYXRoIGQ9Ik0xMCwxMGExLDEsMCwwLDAsMS0xVjNBMSwxLDAsMCwwLDksM1Y5QTEsMSwwLDAsMCwxMCwxMFoiLz48cGF0aCBkPSJNMjYsMTBhMSwxLDAsMCwwLDEt''@;'; + put 'put ''MVYzYTEsMSwwLDAsMC0yLDBWOUExLDEsMCwwLDAsMjYsMTBaIi8+Jyxzb2xpZEFsZXJ0ZWQ6JzxwYXRoIGQ9Ik0zMy42OCwxNS40SDIyLjIzQTMuNjgsMy42OCwwLDAsMSwxOSw5Ljg5TDIxLjI5LDZIMTIuMlY5QTIuMiwyLjIsMCwwLDEsNy44LDlWNmgtNEExLjc4LDEuNzgsMCwwLDAsMiw3''@;'; + put 'put ''LjgxVjMwLjE5QTEuNzgsMS43OCwwLDAsMCwzLjc1LDMyaDI4LjVBMS43OCwxLjc4LDAsMCwwLDM0LDMwLjE5VjE1LjM4Wk0xMCwyNkg4VjI0aDJabTAtNUg4VjE5aDJabTAtNUg4VjE0aDJabTYsMTBIMTRWMjRoMlptMC01SDE0VjE5aDJabTAtNUgxNFYxNGgyWm02LDEwSDIwVjI0aDJabTAt''@;'; + put 'put ''NUgyMFYxOWgyWm02LDVIMjZWMjRoMlptMC01SDI2VjE5aDJaIi8+PHBhdGggZD0iTTEwLDEwYTEsMSwwLDAsMCwxLTFWM0ExLDEsMCwwLDAsOSwzVjlBMSwxLDAsMCwwLDEwLDEwWiIvPicsc29saWRCYWRnZWQ6JzxwYXRoIGQ9Ik0xMCwxMGExLDEsMCwwLDAsMS0xVjNBMSwxLDAsMCwwLDks''@;'; + put 'put ''M1Y5QTEsMSwwLDAsMCwxMCwxMFoiLz48cGF0aCBkPSJNMzAsMTMuNUE3LjUsNy41LDAsMCwxLDIyLjUsNkgxMi4yVjlBMi4yLDIuMiwwLDAsMSw3LjgsOVY2aC00QTEuNzgsMS43OCwwLDAsMCwyLDcuODFWMzAuMTlBMS43OCwxLjc4LDAsMCwwLDMuNzUsMzJoMjguNUExLjc4LDEuNzgsMCww''@;'; + put 'put ''LDAsMzQsMzAuMTlWMTIuMzRBNy40NSw3LjQ1LDAsMCwxLDMwLDEzLjVaTTEwLDI2SDhWMjRoMlptMC01SDhWMTloMlptMC01SDhWMTRoMlptNiwxMEgxNFYyNGgyWm0wLTVIMTRWMTloMlptMC01SDE0VjE0aDJabTYsMTBIMjBWMjRoMlptMC01SDIwVjE5aDJabTAtNUgyMFYxNGgyWm02LDEw''@;'; + put 'put ''SDI2VjI0aDJabTAtNUgyNlYxOWgyWm0wLTVIMjZWMTRoMloiLz4nfV0sZlY9WyJleWUtaGlkZSIse291dGxpbmU6JzxwYXRoIGQ9Ik0yNS4xOSwyMC40QTYuNzgsNi43OCwwLDAsMCwyNS42MiwxOGE2Ljg2LDYuODYsMCwwLDAtNi44Ni02Ljg2LDYuNzksNi43OSwwLDAsMC0yLjM3LjQzTDE4''@;'; + put 'put ''LDEzLjIzYTQuNzgsNC43OCwwLDAsMSwuNzQtLjA2QTQuODcsNC44NywwLDAsMSwyMy42MiwxOGE0Ljc5LDQuNzksMCwwLDEtLjA2Ljc0WiIvPjxwYXRoIGQ9Ik0zNC4yOSwxNy41M2MtMy4zNy02LjIzLTkuMjgtMTAtMTUuODItMTBhMTYuODIsMTYuODIsMCwwLDAtNS4yNC44NUwxNC44NCwx''@;'; + put 'put ''MGExNC43OCwxNC43OCwwLDAsMSwzLjYzLS40N2M1LjYzLDAsMTAuNzUsMy4xNCwxMy44LDguNDNhMTcuNzUsMTcuNzUsMCwwLDEtNC4zNyw1LjFsMS40MiwxLjQyYTE5LjkzLDE5LjkzLDAsMCwwLDUtNmwuMjYtLjQ4WiIvPjxwYXRoIGQ9Ik00Ljg3LDUuNzhsNC40Niw0LjQ2YTE5LjUyLDE5''@;'; + put 'put ''LjUyLDAsMCwwLTYuNjksNy4yOUwyLjM4LDE4bC4yNi40OGMzLjM3LDYuMjMsOS4yOCwxMCwxNS44MiwxMGExNi45MywxNi45MywwLDAsMCw3LjM3LTEuNjlsNSw1LDEuNzUtMS41LTI2LTI2Wm05Ljc1LDkuNzUsNi42NSw2LjY1YTQuODEsNC44MSwwLDAsMS0yLjUuNzJBNC44Nyw0Ljg3LDAs''@;'; + put 'put ''MCwxLDEzLjksMTgsNC44MSw0LjgxLDAsMCwxLDE0LjYyLDE1LjUzWm0tMS40NS0xLjQ1YTYuODUsNi44NSwwLDAsMCw5LjU1LDkuNTVsMS42LDEuNmExNC45MSwxNC45MSwwLDAsMS01Ljg2LDEuMmMtNS42MywwLTEwLjc1LTMuMTQtMTMuOC04LjQzYTE3LjI5LDE3LjI5LDAsMCwxLDYuMTIt''@;'; + put 'put ''Ni4zWiIvPicsc29saWQ6JzxwYXRoIGQ9Ik0xOC4zNywxMS4xN0E2Ljc5LDYuNzksMCwwLDAsMTYsMTEuNmw4LjgsOC44QTYuNzgsNi43OCwwLDAsMCwyNS4yMywxOCw2Ljg2LDYuODYsMCwwLDAsMTguMzcsMTEuMTdaIi8+PHBhdGggZD0iTTM0LjI5LDE3LjUzYy0zLjM3LTYuMjMtOS4yOC0x''@;'; + put 'put ''MC0xNS44Mi0xMGExNi44MiwxNi44MiwwLDAsMC01LjI0Ljg1TDE0Ljg0LDEwYTE0Ljc4LDE0Ljc4LDAsMCwxLDMuNjMtLjQ3YzUuNjMsMCwxMC43NSwzLjE0LDEzLjgsOC40M2ExNy43NSwxNy43NSwwLDAsMS00LjM3LDUuMWwxLjQyLDEuNDJhMTkuOTMsMTkuOTMsMCwwLDAsNS02bC4yNi0u''@;'; + put 'put ''NDhaIi8+PHBhdGggZD0iTTQuODcsNS43OGw0LjQ2LDQuNDZhMTkuNTIsMTkuNTIsMCwwLDAtNi42OSw3LjI5TDIuMzgsMThsLjI2LjQ4YzMuMzcsNi4yMyw5LjI4LDEwLDE1LjgyLDEwYTE2LjkzLDE2LjkzLDAsMCwwLDcuMzctMS42OWw1LDUsMS43NS0xLjUtMjYtMjZabTguMyw4LjNhNi44''@;'; + put 'put ''NSw2Ljg1LDAsMCwwLDkuNTUsOS41NWwxLjYsMS42YTE0LjkxLDE0LjkxLDAsMCwxLTUuODYsMS4yYy01LjYzLDAtMTAuNzUtMy4xNC0xMy44LTguNDNhMTcuMjksMTcuMjksMCwwLDEsNi4xMi02LjNaIi8+J31dLFJzZT1bImV5ZSIse291dGxpbmU6JzxwYXRoIGQ9Ik0zMy42MiwxNy41M2Mt''@;'; + put 'put ''My4zNy02LjIzLTkuMjgtMTAtMTUuODItMTBTNS4zNCwxMS4zLDIsMTcuNTNMMS43MiwxOGwuMjYuNDhjMy4zNyw2LjIzLDkuMjgsMTAsMTUuODIsMTBzMTIuNDYtMy43MiwxNS44Mi0xMGwuMjYtLjQ4Wk0xNy44LDI2LjQzQzEyLjE3LDI2LjQzLDcsMjMuMjksNCwxOGMzLTUuMjksOC4xNy04''@;'; + put 'put ''LjQzLDEzLjgtOC40M1MyOC41NCwxMi43MiwzMS41OSwxOEMyOC41NCwyMy4yOSwyMy40MiwyNi40MywxNy44LDI2LjQzWiIvPjxwYXRoIGQ9Ik0xOC4wOSwxMS4xN0E2Ljg2LDYuODYsMCwxLDAsMjUsMTgsNi44Niw2Ljg2LDAsMCwwLDE4LjA5LDExLjE3Wm0wLDExLjcyQTQuODYsNC44Niww''@;'; + put 'put ''LDEsMSwyMywxOCw0Ljg3LDQuODcsMCwwLDEsMTguMDksMjIuODlaIi8+Jyxzb2xpZDonPHBhdGggZD0iTTMzLjYyLDE3LjUzYy0zLjM3LTYuMjMtOS4yOC0xMC0xNS44Mi0xMFM1LjM0LDExLjMsMiwxNy41M0wxLjcyLDE4bC4yNi40OGMzLjM3LDYuMjMsOS4yOCwxMCwxNS44MiwxMHMxMi40''@;'; + put 'put ''Ni0zLjcyLDE1LjgyLTEwbC4yNi0uNDhaTTE3LjgsMjYuNDNDMTIuMTcsMjYuNDMsNywyMy4yOSw0LDE4YzMtNS4yOSw4LjE3LTguNDMsMTMuOC04LjQzUzI4LjU0LDEyLjcyLDMxLjU5LDE4QzI4LjU0LDIzLjI5LDIzLjQyLDI2LjQzLDE3LjgsMjYuNDNaIi8+PGNpcmNsZSBjeD0iMTguMDki''@;'; + put 'put ''IGN5PSIxOC4wMyIgcj0iNi44NiIvPid9XSxoWD1bImVsbGlwc2lzLXZlcnRpY2FsIix7b3V0bGluZTonPGNpcmNsZSBjeD0iMTgiIGN5PSI0LjkiIHI9IjIuOSIvPjxjaXJjbGUgY3g9IjE4IiBjeT0iMTgiIHI9IjIuOSIvPjxjaXJjbGUgY3g9IjE4IiBjeT0iMzEuMSIgcj0iMi45Ii8+Jyxv''@;'; + put 'put ''dXRsaW5lQmFkZ2VkOic8Y2lyY2xlIGN4PSIxOCIgY3k9IjQuOSIgcj0iMi45Ii8+PGNpcmNsZSBjeD0iMTgiIGN5PSIxOCIgcj0iMi45Ii8+PGNpcmNsZSBjeD0iMTgiIGN5PSIzMS4xIiByPSIyLjkiLz4nfV0sZFg9WyJ2aWV3LWNvbHVtbnMiLHtvdXRsaW5lOic8cGF0aCBkPSJNMzEsNUg1''@;'; + put 'put ''QTIsMiwwLDAsMCwzLDdWMjlhMiwyLDAsMCwwLDIsMkgzMWEyLDIsMCwwLDAsMi0yVjdBMiwyLDAsMCwwLDMxLDVaTTEzLDI5SDVWN2g4Wm0xMCwwSDE1VjdoOFoiLz4nfV0sRnNlPVsiYXJyb3ciLHtvdXRsaW5lOic8cGF0aCBkPSJNMjcuNjYsMTUuNjEsMTgsNiw4LjM0LDE1LjYxQTEsMSww''@;'; + put 'put ''LDEsMCw5Ljc1LDE3TDE3LDkuODFWMjguOTRhMSwxLDAsMSwwLDIsMFY5LjgxTDI2LjI1LDE3YTEsMSwwLDAsMCwxLjQxLTEuNDJaIi8+J31dLHBYPVsidGltZXMiLHtvdXRsaW5lOic8cGF0aCBkPSJNMTkuNDEsMThsOC4yOS04LjI5YTEsMSwwLDAsMC0xLjQxLTEuNDFMMTgsMTYuNTksOS43''@;'; + put 'put ''MSw4LjI5QTEsMSwwLDAsMCw4LjI5LDkuNzFMMTYuNTksMTgsOC4yOSwyNi4yOWExLDEsMCwxLDAsMS40MSwxLjQxTDE4LDE5LjQxbDguMjksOC4yOWExLDEsMCwwLDAsMS40MS0xLjQxWiIvPid9XSxIc2U9WyJzdGVwLWZvcndhcmQtMiIse291dGxpbmU6JzxwYXRoIGQ9Ik03LjA4LDYuNTJh''@;'; + put 'put ''MS42OCwxLjY4LDAsMCwwLDAsMi40TDE2LjUxLDE4LDcuMTIsMjcuMDhhMS43LDEuNywwLDAsMCwyLjM2LDIuNDRoMEwyMS40LDE4LDkuNDgsNi40N0ExLjY5LDEuNjksMCwwLDAsNy4wOCw2LjUyWiIvPjxwYXRoIGQ9Ik0yNi40OSw1YTEuNywxLjcsMCwwLDAtMS43LDEuN1YyOS4zYTEuNywx''@;'; + put 'put ''LjcsMCwwLDAsMy40LDBWNi43QTEuNywxLjcsMCwwLDAsMjYuNDksNVoiLz4nfV0sZ1g9WyJhbmdsZS1kb3VibGUiLHtvdXRsaW5lOic8cGF0aCBkPSJNMjksMTkuNDFhMSwxLDAsMCwxLS43MS0uMjlMMTgsOC44Myw3LjcxLDE5LjEyYTEsMSwwLDAsMS0xLjQxLTEuNDFMMTgsNiwyOS43MSwx''@;'; + put 'put ''Ny43MUExLDEsMCwwLDEsMjksMTkuNDFaIi8+PHBhdGggZD0iTTI5LDMwLjQxYTEsMSwwLDAsMS0uNzEtLjI5TDE4LDE5LjgzLDcuNzEsMzAuMTJhMSwxLDAsMCwxLTEuNDEtMS40MUwxOCwxNywyOS43MSwyOC43MUExLDEsMCwwLDEsMjksMzAuNDFaIi8+J31dLE5zZT1bImZpbHRlci1ncmlk''@;'; + put 'put ''LWNpcmNsZSIse291dGxpbmU6JzxwYXRoIGQ9Ik0xNSwyNS44NmwyLDFWMjAuMjdhMSwxLDAsMCwwLS4yOS0uN0wxMC4yMywxM0gyNS43OWwtNi40Nyw2LjU3YTEsMSwwLDAsMC0uMjkuN0wxOSwyOGwyLDFWMjAuNjhMMjcuNTgsMTRBMS40NiwxLjQ2LDAsMCwwLDI4LDEzVjEyYTEsMSwwLDAs''@;'; + put 'put ''MC0xLTFIOWExLDEsMCwwLDAtMSwxdjFhMS40NiwxLjQ2LDAsMCwwLC40MiwxTDE1LDIwLjY4WiIvPjxwYXRoIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJabTAsMzBBMTQsMTQsMCwxLDEsMzIsMTgsMTQsMTQsMCwwLDEsMTgsMzJaIi8+Jyxzb2xpZDonPHBh''@;'; + put 'put ''dGggZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlptMCwzMEExNCwxNCwwLDEsMSwzMiwxOCwxNCwxNCwwLDAsMSwxOCwzMloiLz48cGF0aCBkPSJNOCwxMXYxLjEyYS41LjUsMCwwLDAsLjE1LjM1bDcuMjgsNy4zNmEuNS41LDAsMCwxLC4xNS4zNXY2Ljg5YS41''@;'; + put 'put ''LjUsMCwwLDAsLjI4LjQ1bDMuOTUsMS40MWEuNS41LDAsMCwwLC43Mi0uNDVsMC04LjM5YS41NC41NCwwLDAsMSwuMTgtLjM1bDcuMTItNy4yNWEuNS41LDAsMCwwLC4xNS0uMzVWMTFaIi8+J31dLGhWPVsiZmlsdGVyLWdyaWQiLHtvdXRsaW5lOic8cGF0aCBkPSJNMTUsMjUuODZsMiwxVjIw''@;'; + put 'put ''LjI3YTEsMSwwLDAsMC0uMjktLjdMMTAuMjMsMTNIMjUuNzlsLTYuNDcsNi41N2ExLDEsMCwwLDAtLjI5LjdMMTksMjhsMiwxVjIwLjY4TDI3LjU4LDE0QTEuNDYsMS40NiwwLDAsMCwyOCwxM1YxMmExLDEsMCwwLDAtMS0xSDlhMSwxLDAsMCwwLTEsMXYxYTEuNDYsMS40NiwwLDAsMCwuNDIs''@;'; + put 'put ''MUwxNSwyMC42OFoiLz4nLHNvbGlkOic8cGF0aCBkPSJNOCwxMXYxLjEyYS41LjUsMCwwLDAsLjE1LjM1bDcuMjgsNy4zNmEuNS41LDAsMCwxLC4xNS4zNXY2Ljg5YS41LjUsMCwwLDAsLjI4LjQ1bDMuOTUsMS40MWEuNS41LDAsMCwwLC43Mi0uNDVsMC04LjM5YS41NC41NCwwLDAsMSwuMTgt''@;'; + put 'put ''LjM1bDcuMTItNy4yNWEuNS41LDAsMCwwLC4xNS0uMzVWMTFaIi8+J31dLG1YPVsiaW5mby1jaXJjbGUiLHtvdXRsaW5lOic8Y2lyY2xlIGN4PSIxNy45MyIgY3k9IjExLjkiIHI9IjEuNCIvPjxwYXRoIGQ9Ik0yMSwyM0gxOVYxNUgxNmExLDEsMCwwLDAsMCwyaDF2NkgxNWExLDEsMCwxLDAs''@;'; + put 'put ''MCwyaDZhMSwxLDAsMCwwLDAtMloiLz48cGF0aCBkPSJNMTgsNkExMiwxMiwwLDEsMCwzMCwxOCwxMiwxMiwwLDAsMCwxOCw2Wm0wLDIyQTEwLDEwLDAsMSwxLDI4LDE4LDEwLDEwLDAsMCwxLDE4LDI4WiIvPicsc29saWQ6JzxwYXRoIGQ9Ik0xOCw2QTEyLDEyLDAsMSwwLDMwLDE4LDEyLDEy''@;'; + put 'put ''LDAsMCwwLDE4LDZabS0yLDUuMTVhMiwyLDAsMSwxLDIsMkEyLDIsMCwwLDEsMTUuOSwxMS4xNVpNMjMsMjRhMSwxLDAsMCwxLTEsMUgxNWExLDEsMCwxLDEsMC0yaDJWMTdIMTZhMSwxLDAsMCwxLDAtMmg0djhoMkExLDEsMCwwLDEsMjMsMjRaIi8+J31dLGpzZT1bImV4Y2xhbWF0aW9uLXRy''@;'; + put 'put ''aWFuZ2xlIix7b3V0bGluZTonPHBhdGggZD0iTTE4LDIxLjMyYTEuMywxLjMsMCwwLDAsMS4zLTEuM1YxNGExLjMsMS4zLDAsMSwwLTIuNiwwdjZBMS4zLDEuMywwLDAsMCwxOCwyMS4zMloiLz48Y2lyY2xlIGN4PSIxNy45NSIgY3k9IjI0LjI3IiByPSIxLjUiLz48cGF0aCBkPSJNMzAuMzMs''@;'; + put 'put ''MjUuNTQsMjAuNTksNy42YTMsMywwLDAsMC01LjI3LDBMNS41NywyNS41NEEzLDMsMCwwLDAsOC4yMSwzMEgyNy42OWEzLDMsMCwwLDAsMi42NC00LjQzWm0tMS43OCwxLjk0YTEsMSwwLDAsMS0uODYuNDlIOC4yMWExLDEsMCwwLDEtLjg4LTEuNDhMMTcuMDcsOC41NWExLDEsMCwwLDEsMS43''@;'; + put 'put ''NiwwbDkuNzQsMTcuOTRBMSwxLDAsMCwxLDI4LjU1LDI3LjQ4WiIvPicsc29saWQ6JzxwYXRoIGQ9Ik0zMC4zMywyNS41NCwyMC41OSw3LjZhMywzLDAsMCwwLTUuMjcsMEw1LjU3LDI1LjU0QTMsMywwLDAsMCw4LjIxLDMwSDI3LjY5YTMsMywwLDAsMCwyLjY0LTQuNDNaTTE2LjQ2LDEyLjc0''@;'; + put 'put ''YTEuNDksMS40OSwwLDAsMSwzLDB2Ni44OWExLjQ5LDEuNDksMCwxLDEtMywwWk0xOCwyNi4yNWExLjcyLDEuNzIsMCwxLDEsMS43Mi0xLjcyQTEuNzIsMS43MiwwLDAsMSwxOCwyNi4yNVoiLz4nfV0sWnNlPVsiY2lyY2xlIix7b3V0bGluZTonPHBhdGggZD0iTTE4LDM0QTE2LDE2LDAsMSwx''@;'; + put 'put ''LDM0LDE4LDE2LDE2LDAsMCwxLDE4LDM0Wk0xOCw0QTE0LDE0LDAsMSwwLDMyLDE4LDE0LDE0LDAsMCwwLDE4LDRaIi8+Jyxzb2xpZDonPHBhdGggZD0iTTE4LDM0QTE2LDE2LDAsMSwxLDM0LDE4LDE2LDE2LDAsMCwxLDE4LDM0WiIvPid9XSx6c2U9WyJkb3QtY2lyY2xlIix7b3V0bGluZTon''@;'; + put 'put ''PHBhdGggZD0iTTE4LDExYTcsNywwLDEsMS03LDcsNyw3LDAsMCwxLDctNyIvPjxwYXRoIGQ9Ik0xOCwzNEExNiwxNiwwLDEsMSwzNCwxOCwxNiwxNiwwLDAsMSwxOCwzNFpNMTgsNEExNCwxNCwwLDEsMCwzMiwxOCwxNCwxNCwwLDAsMCwxOCw0WiIvPid9XSx2WD1bImVycm9yLXN0YW5kYXJk''@;'; + put 'put ''Iix7b3V0bGluZTonPGNpcmNsZSBjeD0iMTgiIGN5PSIyNi4wNiIgcj0iMS4zMyIvPjxwYXRoIGQ9Ik0xOCwyMi42MWExLDEsMCwwLDEtMS0xdi0xMmExLDEsMCwxLDEsMiwwdjEyQTEsMSwwLDAsMSwxOCwyMi42MVoiLz48cGF0aCBkPSJNMTgsMzRBMTYsMTYsMCwxLDEsMzQsMTgsMTYsMTYs''@;'; + put 'put ''MCwwLDEsMTgsMzRaTTE4LDRBMTQsMTQsMCwxLDAsMzIsMTgsMTQsMTQsMCwwLDAsMTgsNFoiLz4nLHNvbGlkOic8cGF0aCBkPSJNMTgsMi4xYTE2LDE2LDAsMSwwLDE2LDE2QTE2LDE2LDAsMCwwLDE4LDIuMVpNMTYuNiw4LjhhMS40LDEuNCwwLDAsMSwyLjgsMHYxMmExLjQsMS40LDAsMCwx''@;'; + put 'put ''LTIuOCwwWk0xOCwyOC42YTEuOCwxLjgsMCwxLDEsMS44LTEuOEExLjgsMS44LDAsMCwxLDE4LDI4LjZaIi8+J31dLFdzZT1bInN1Y2Nlc3Mtc3RhbmRhcmQiLHtvdXRsaW5lOic8cGF0aCBkPSJNMTgsMkExNiwxNiwwLDEsMCwzNCwxOCwxNiwxNiwwLDAsMCwxOCwyWm0wLDMwQTE0LDE0LDAs''@;'; + put 'put ''MSwxLDMyLDE4LDE0LDE0LDAsMCwxLDE4LDMyWiIvPjxwYXRoIGQ9Ik0yOCwxMi4xYTEsMSwwLDAsMC0xLjQxLDBMMTUuNDksMjMuMTVsLTYtNkExLDEsMCwwLDAsOCwxOC41M0wxNS40OSwyNiwyOCwxMy41MkExLDEsMCwwLDAsMjgsMTIuMVoiLz4nLHNvbGlkOic8cGF0aCBkPSJNMTgsMkEx''@;'; + put 'put ''NiwxNiwwLDEsMCwzNCwxOCwxNiwxNiwwLDAsMCwxOCwyWk0yOC40NSwxMi42MywxNS4zMSwyNS43Niw3LjU1LDE4YTEuNCwxLjQsMCwwLDEsMi0ybDUuNzgsNS43OEwyNi40NywxMC42NWExLjQsMS40LDAsMSwxLDIsMloiLz4nfV07Y2xhc3MgWXNle2NvbnN0cnVjdG9yKGcsaCl7dGhpcy5j''@;'; + put 'put ''b21wYXJlPWcsdGhpcy5rZXlTZWxlY3Rvcj1ofWNhbGwoZyxoKXtyZXR1cm4gaC5zdWJzY3JpYmUobmV3IFVzZShnLHRoaXMuY29tcGFyZSx0aGlzLmtleVNlbGVjdG9yKSl9fWNsYXNzIFVzZSBleHRlbmRzIHp7Y29uc3RydWN0b3IoZyxoLHYpe3N1cGVyKGcpLHRoaXMua2V5U2VsZWN0b3I9''@;'; + put 'put ''dix0aGlzLmhhc0tleT0hMSwiZnVuY3Rpb24iPT10eXBlb2YgaCYmKHRoaXMuY29tcGFyZT1oKX1jb21wYXJlKGcsaCl7cmV0dXJuIGc9PT1ofV9uZXh0KGcpe2xldCBoO3RyeXtjb25zdHtrZXlTZWxlY3Rvcjp5fT10aGlzO2g9eT95KGcpOmd9Y2F0Y2goeSl7cmV0dXJuIHRoaXMuZGVzdGlu''@;'; + put 'put ''YXRpb24uZXJyb3IoeSl9bGV0IHY9ITE7aWYodGhpcy5oYXNLZXkpdHJ5e2NvbnN0e2NvbXBhcmU6eX09dGhpczt2PXkodGhpcy5rZXksaCl9Y2F0Y2goeSl7cmV0dXJuIHRoaXMuZGVzdGluYXRpb24uZXJyb3IoeSl9ZWxzZSB0aGlzLmhhc0tleT0hMDt2fHwodGhpcy5rZXk9aCx0aGlzLmRl''@;'; + put 'put ''c3RpbmF0aW9uLm5leHQoZykpfX1jbGFzcyBYc2UgZXh0ZW5kcyBUZXtjb25zdHJ1Y3RvcihnLGgpe3N1cGVyKCl9c2NoZWR1bGUoZyxoPTApe3JldHVybiB0aGlzfX1jbGFzcyB3WCBleHRlbmRzIFhzZXtjb25zdHJ1Y3RvcihnLGgpe3N1cGVyKGcsaCksdGhpcy5zY2hlZHVsZXI9Zyx0aGlz''@;'; + put 'put ''Lndvcms9aCx0aGlzLnBlbmRpbmc9ITF9c2NoZWR1bGUoZyxoPTApe2lmKHRoaXMuY2xvc2VkKXJldHVybiB0aGlzO3RoaXMuc3RhdGU9Zztjb25zdCB2PXRoaXMuaWQseT10aGlzLnNjaGVkdWxlcjtyZXR1cm4gbnVsbCE9diYmKHRoaXMuaWQ9dGhpcy5yZWN5Y2xlQXN5bmNJZCh5LHYsaCkp''@;'; + put 'put ''LHRoaXMucGVuZGluZz0hMCx0aGlzLmRlbGF5PWgsdGhpcy5pZD10aGlzLmlkfHx0aGlzLnJlcXVlc3RBc3luY0lkKHksdGhpcy5pZCxoKSx0aGlzfXJlcXVlc3RBc3luY0lkKGcsaCx2PTApe3JldHVybiBzZXRJbnRlcnZhbChnLmZsdXNoLmJpbmQoZyx0aGlzKSx2KX1yZWN5Y2xlQXN5bmNJ''@;'; + put 'put ''ZChnLGgsdj0wKXtpZihudWxsIT09diYmdGhpcy5kZWxheT09PXYmJiExPT09dGhpcy5wZW5kaW5nKXJldHVybiBoO2NsZWFySW50ZXJ2YWwoaCl9ZXhlY3V0ZShnLGgpe2lmKHRoaXMuY2xvc2VkKXJldHVybiBuZXcgRXJyb3IoImV4ZWN1dGluZyBhIGNhbmNlbGxlZCBhY3Rpb24iKTt0aGlz''@;'; + put 'put ''LnBlbmRpbmc9ITE7Y29uc3Qgdj10aGlzLl9leGVjdXRlKGcsaCk7aWYodilyZXR1cm4gdjshMT09PXRoaXMucGVuZGluZyYmbnVsbCE9dGhpcy5pZCYmKHRoaXMuaWQ9dGhpcy5yZWN5Y2xlQXN5bmNJZCh0aGlzLnNjaGVkdWxlcix0aGlzLmlkLG51bGwpKX1fZXhlY3V0ZShnLGgpe2xldCB5''@;'; + put 'put ''LHY9ITE7dHJ5e3RoaXMud29yayhnKX1jYXRjaChDKXt2PSEwLHk9ISFDJiZDfHxuZXcgRXJyb3IoQyl9aWYodilyZXR1cm4gdGhpcy51bnN1YnNjcmliZSgpLHl9X3Vuc3Vic2NyaWJlKCl7Y29uc3QgZz10aGlzLmlkLGg9dGhpcy5zY2hlZHVsZXIsdj1oLmFjdGlvbnMseT12LmluZGV4T2Yo''@;'; + put 'put ''dGhpcyk7dGhpcy53b3JrPW51bGwsdGhpcy5zdGF0ZT1udWxsLHRoaXMucGVuZGluZz0hMSx0aGlzLnNjaGVkdWxlcj1udWxsLC0xIT09eSYmdi5zcGxpY2UoeSwxKSxudWxsIT1nJiYodGhpcy5pZD10aGlzLnJlY3ljbGVBc3luY0lkKGgsZyxudWxsKSksdGhpcy5kZWxheT1udWxsfX1sZXQg''@;'; + put 'put ''Ylg9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHY9ZC5ub3cpe3RoaXMuU2NoZWR1bGVyQWN0aW9uPWgsdGhpcy5ub3c9dn1zY2hlZHVsZShoLHY9MCx5KXtyZXR1cm4gbmV3IHRoaXMuU2NoZWR1bGVyQWN0aW9uKHRoaXMsaCkuc2NoZWR1bGUoeSx2KX19cmV0dXJuIGQubm93PSgpPT5E''@;'; + put 'put ''YXRlLm5vdygpLGR9KSgpO2NsYXNzIGU4IGV4dGVuZHMgYlh7Y29uc3RydWN0b3IoZyxoPWJYLm5vdyl7c3VwZXIoZywoKT0+ZTguZGVsZWdhdGUmJmU4LmRlbGVnYXRlIT09dGhpcz9lOC5kZWxlZ2F0ZS5ub3coKTpoKCkpLHRoaXMuYWN0aW9ucz1bXSx0aGlzLmFjdGl2ZT0hMSx0aGlzLnNj''@;'; + put 'put ''aGVkdWxlZD12b2lkIDB9c2NoZWR1bGUoZyxoPTAsdil7cmV0dXJuIGU4LmRlbGVnYXRlJiZlOC5kZWxlZ2F0ZSE9PXRoaXM/ZTguZGVsZWdhdGUuc2NoZWR1bGUoZyxoLHYpOnN1cGVyLnNjaGVkdWxlKGcsaCx2KX1mbHVzaChnKXtjb25zdHthY3Rpb25zOmh9PXRoaXM7aWYodGhpcy5hY3Rp''@;'; + put 'put ''dmUpcmV0dXJuIHZvaWQgaC5wdXNoKGcpO2xldCB2O3RoaXMuYWN0aXZlPSEwO2Rve2lmKHY9Zy5leGVjdXRlKGcuc3RhdGUsZy5kZWxheSkpYnJlYWt9d2hpbGUoZz1oLnNoaWZ0KCkpO2lmKHRoaXMuYWN0aXZlPSExLHYpe2Zvcig7Zz1oLnNoaWZ0KCk7KWcudW5zdWJzY3JpYmUoKTt0aHJv''@;'; + put 'put ''dyB2fX19Y29uc3QgZFY9bmV3IGU4KHdYKTtmdW5jdGlvbiBURChkLGc9ZFYpe3JldHVybiBoPT5oLmxpZnQobmV3IHBWKGQsZykpfWNsYXNzIHBWe2NvbnN0cnVjdG9yKGcsaCl7dGhpcy5kdWVUaW1lPWcsdGhpcy5zY2hlZHVsZXI9aH1jYWxsKGcsaCl7cmV0dXJuIGguc3Vic2NyaWJlKG5l''@;'; + put 'put ''dyBnVihnLHRoaXMuZHVlVGltZSx0aGlzLnNjaGVkdWxlcikpfX1jbGFzcyBnViBleHRlbmRzIHp7Y29uc3RydWN0b3IoZyxoLHYpe3N1cGVyKGcpLHRoaXMuZHVlVGltZT1oLHRoaXMuc2NoZWR1bGVyPXYsdGhpcy5kZWJvdW5jZWRTdWJzY3JpcHRpb249bnVsbCx0aGlzLmxhc3RWYWx1ZT1u''@;'; + put 'put ''dWxsLHRoaXMuaGFzVmFsdWU9ITF9X25leHQoZyl7dGhpcy5jbGVhckRlYm91bmNlKCksdGhpcy5sYXN0VmFsdWU9Zyx0aGlzLmhhc1ZhbHVlPSEwLHRoaXMuYWRkKHRoaXMuZGVib3VuY2VkU3Vic2NyaXB0aW9uPXRoaXMuc2NoZWR1bGVyLnNjaGVkdWxlKF9YLHRoaXMuZHVlVGltZSx0aGlz''@;'; + put 'put ''KSl9X2NvbXBsZXRlKCl7dGhpcy5kZWJvdW5jZWROZXh0KCksdGhpcy5kZXN0aW5hdGlvbi5jb21wbGV0ZSgpfWRlYm91bmNlZE5leHQoKXtpZih0aGlzLmNsZWFyRGVib3VuY2UoKSx0aGlzLmhhc1ZhbHVlKXtjb25zdHtsYXN0VmFsdWU6Z309dGhpczt0aGlzLmxhc3RWYWx1ZT1udWxsLHRo''@;'; + put 'put ''aXMuaGFzVmFsdWU9ITEsdGhpcy5kZXN0aW5hdGlvbi5uZXh0KGcpfX1jbGVhckRlYm91bmNlKCl7Y29uc3QgZz10aGlzLmRlYm91bmNlZFN1YnNjcmlwdGlvbjtudWxsIT09ZyYmKHRoaXMucmVtb3ZlKGcpLGcudW5zdWJzY3JpYmUoKSx0aGlzLmRlYm91bmNlZFN1YnNjcmlwdGlvbj1udWxs''@;'; + put 'put ''KX19ZnVuY3Rpb24gX1goZCl7ZC5kZWJvdW5jZWROZXh0KCl9ZnVuY3Rpb24gajcoZCl7cmV0dXJuIGc9PmcubGlmdChuZXcgSUQoZCkpfWNsYXNzIElEe2NvbnN0cnVjdG9yKGcpe3RoaXMubm90aWZpZXI9Z31jYWxsKGcsaCl7Y29uc3Qgdj1uZXcgJHNlKGcpLHk9ZXIodGhpcy5ub3RpZmll''@;'; + put 'put ''cixuZXcgeW4odikpO3JldHVybiB5JiYhdi5zZWVuVmFsdWU/KHYuYWRkKHkpLGguc3Vic2NyaWJlKHYpKTp2fX1jbGFzcyAkc2UgZXh0ZW5kcyBObntjb25zdHJ1Y3RvcihnKXtzdXBlcihnKSx0aGlzLnNlZW5WYWx1ZT0hMX1ub3RpZnlOZXh0KCl7dGhpcy5zZWVuVmFsdWU9ITAsdGhpcy5j''@;'; + put 'put ''b21wbGV0ZSgpfW5vdGlmeUNvbXBsZXRlKCl7fX1mdW5jdGlvbiB0OChkLGcsaCx2KXtyZXR1cm4gc2UoaCkmJih2PWgsaD12b2lkIDApLHY/dDgoZCxnLGgpLnBpcGUobXQoeT0+QWUoeSk/diguLi55KTp2KHkpKSk6bmV3IEYoeT0+e0NYKGQsZyxmdW5jdGlvbiBDKEkpe3kubmV4dChhcmd1''@;'; + put 'put ''bWVudHMubGVuZ3RoPjE/QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzKTpJKX0seSxoKX0pfWZ1bmN0aW9uIENYKGQsZyxoLHYseSl7bGV0IEM7aWYoZnVuY3Rpb24gRWsoZCl7cmV0dXJuIGQmJiJmdW5jdGlvbiI9PXR5cGVvZiBkLmFkZEV2ZW50TGlzdGVuZXImJiJmdW5j''@;'; + put 'put ''dGlvbiI9PXR5cGVvZiBkLnJlbW92ZUV2ZW50TGlzdGVuZXJ9KGQpKXtjb25zdCBJPWQ7ZC5hZGRFdmVudExpc3RlbmVyKGcsaCx5KSxDPSgpPT5JLnJlbW92ZUV2ZW50TGlzdGVuZXIoZyxoLHkpfWVsc2UgaWYoZnVuY3Rpb24gTWsoZCl7cmV0dXJuIGQmJiJmdW5jdGlvbiI9PXR5cGVvZiBk''@;'; + put 'put ''Lm9uJiYiZnVuY3Rpb24iPT10eXBlb2YgZC5vZmZ9KGQpKXtjb25zdCBJPWQ7ZC5vbihnLGgpLEM9KCk9Pkkub2ZmKGcsaCl9ZWxzZSBpZihmdW5jdGlvbiBxc2UoZCl7cmV0dXJuIGQmJiJmdW5jdGlvbiI9PXR5cGVvZiBkLmFkZExpc3RlbmVyJiYiZnVuY3Rpb24iPT10eXBlb2YgZC5yZW1v''@;'; + put 'put ''dmVMaXN0ZW5lcn0oZCkpe2NvbnN0IEk9ZDtkLmFkZExpc3RlbmVyKGcsaCksQz0oKT0+SS5yZW1vdmVMaXN0ZW5lcihnLGgpfWVsc2V7aWYoIWR8fCFkLmxlbmd0aCl0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGV2ZW50IHRhcmdldCIpO2ZvcihsZXQgST0wLGo9ZC5sZW5ndGg7STxq''@;'; + put 'put ''O0krKylDWChkW0ldLGcsaCx2LHkpfXYuYWRkKEMpfWZ1bmN0aW9uIGtYKGQpe3JldHVybiEhZCYmKGQgaW5zdGFuY2VvZiBGfHwiZnVuY3Rpb24iPT10eXBlb2YgZC5saWZ0JiYiZnVuY3Rpb24iPT10eXBlb2YgZC5zdWJzY3JpYmUpfWNvbnN0IEREPW5ldyBjbGFzcyB0MmUgZXh0ZW5kcyBl''@;'; + put 'put ''OHt9KGNsYXNzIGUyZSBleHRlbmRzIHdYe2NvbnN0cnVjdG9yKGcsaCl7c3VwZXIoZyxoKSx0aGlzLnNjaGVkdWxlcj1nLHRoaXMud29yaz1ofXNjaGVkdWxlKGcsaD0wKXtyZXR1cm4gaD4wP3N1cGVyLnNjaGVkdWxlKGcsaCk6KHRoaXMuZGVsYXk9aCx0aGlzLnN0YXRlPWcsdGhpcy5zY2hl''@;'; + put 'put ''ZHVsZXIuZmx1c2godGhpcyksdGhpcyl9ZXhlY3V0ZShnLGgpe3JldHVybiBoPjB8fHRoaXMuY2xvc2VkP3N1cGVyLmV4ZWN1dGUoZyxoKTp0aGlzLl9leGVjdXRlKGcsaCl9cmVxdWVzdEFzeW5jSWQoZyxoLHY9MCl7cmV0dXJuIG51bGwhPT12JiZ2PjB8fG51bGw9PT12JiZ0aGlzLmRlbGF5''@;'; + put 'put ''PjA/c3VwZXIucmVxdWVzdEFzeW5jSWQoZyxoLHYpOmcuZmx1c2godGhpcyl9fSk7Y2xhc3MgSzN7Y29uc3RydWN0b3IoZyxoLHYpe3RoaXMua2luZD1nLHRoaXMudmFsdWU9aCx0aGlzLmVycm9yPXYsdGhpcy5oYXNWYWx1ZT0iTiI9PT1nfW9ic2VydmUoZyl7c3dpdGNoKHRoaXMua2luZCl7''@;'; + put 'put ''Y2FzZSJOIjpyZXR1cm4gZy5uZXh0JiZnLm5leHQodGhpcy52YWx1ZSk7Y2FzZSJFIjpyZXR1cm4gZy5lcnJvciYmZy5lcnJvcih0aGlzLmVycm9yKTtjYXNlIkMiOnJldHVybiBnLmNvbXBsZXRlJiZnLmNvbXBsZXRlKCl9fWRvKGcsaCx2KXtzd2l0Y2godGhpcy5raW5kKXtjYXNlIk4iOnJl''@;'; + put 'put ''dHVybiBnJiZnKHRoaXMudmFsdWUpO2Nhc2UiRSI6cmV0dXJuIGgmJmgodGhpcy5lcnJvcik7Y2FzZSJDIjpyZXR1cm4gdiYmdigpfX1hY2NlcHQoZyxoLHYpe3JldHVybiBnJiYiZnVuY3Rpb24iPT10eXBlb2YgZy5uZXh0P3RoaXMub2JzZXJ2ZShnKTp0aGlzLmRvKGcsaCx2KX10b09ic2Vy''@;'; + put 'put ''dmFibGUoKXtzd2l0Y2godGhpcy5raW5kKXtjYXNlIk4iOnJldHVybiBhYSh0aGlzLnZhbHVlKTtjYXNlIkUiOnJldHVybiBVQSh0aGlzLmVycm9yKTtjYXNlIkMiOnJldHVybiBpSSgpfXRocm93IG5ldyBFcnJvcigidW5leHBlY3RlZCBub3RpZmljYXRpb24ga2luZCB2YWx1ZSIpfXN0YXRp''@;'; + put 'put ''YyBjcmVhdGVOZXh0KGcpe3JldHVybiB2b2lkIDAhPT1nP25ldyBLMygiTiIsZyk6SzMudW5kZWZpbmVkVmFsdWVOb3RpZmljYXRpb259c3RhdGljIGNyZWF0ZUVycm9yKGcpe3JldHVybiBuZXcgSzMoIkUiLHZvaWQgMCxnKX1zdGF0aWMgY3JlYXRlQ29tcGxldGUoKXtyZXR1cm4gSzMuY29t''@;'; + put 'put ''cGxldGVOb3RpZmljYXRpb259fUszLmNvbXBsZXRlTm90aWZpY2F0aW9uPW5ldyBLMygiQyIpLEszLnVuZGVmaW5lZFZhbHVlTm90aWZpY2F0aW9uPW5ldyBLMygiTiIsdm9pZCAwKTtjbGFzcyBMRCBleHRlbmRzIHp7Y29uc3RydWN0b3IoZyxoLHY9MCl7c3VwZXIoZyksdGhpcy5zY2hlZHVs''@;'; + put 'put ''ZXI9aCx0aGlzLmRlbGF5PXZ9c3RhdGljIGRpc3BhdGNoKGcpe2NvbnN0e25vdGlmaWNhdGlvbjpoLGRlc3RpbmF0aW9uOnZ9PWc7aC5vYnNlcnZlKHYpLHRoaXMudW5zdWJzY3JpYmUoKX1zY2hlZHVsZU1lc3NhZ2UoZyl7dGhpcy5kZXN0aW5hdGlvbi5hZGQodGhpcy5zY2hlZHVsZXIuc2No''@;'; + put 'put ''ZWR1bGUoTEQuZGlzcGF0Y2gsdGhpcy5kZWxheSxuZXcgcjJlKGcsdGhpcy5kZXN0aW5hdGlvbikpKX1fbmV4dChnKXt0aGlzLnNjaGVkdWxlTWVzc2FnZShLMy5jcmVhdGVOZXh0KGcpKX1fZXJyb3IoZyl7dGhpcy5zY2hlZHVsZU1lc3NhZ2UoSzMuY3JlYXRlRXJyb3IoZykpLHRoaXMudW5z''@;'; + put 'put ''dWJzY3JpYmUoKX1fY29tcGxldGUoKXt0aGlzLnNjaGVkdWxlTWVzc2FnZShLMy5jcmVhdGVDb21wbGV0ZSgpKSx0aGlzLnVuc3Vic2NyaWJlKCl9fWNsYXNzIHIyZXtjb25zdHJ1Y3RvcihnLGgpe3RoaXMubm90aWZpY2F0aW9uPWcsdGhpcy5kZXN0aW5hdGlvbj1ofX1jbGFzcyB4ayBleHRl''@;'; + put 'put ''bmRzICRle2NvbnN0cnVjdG9yKGc9TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZLGg9TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZLHYpe3N1cGVyKCksdGhpcy5zY2hlZHVsZXI9dix0aGlzLl9ldmVudHM9W10sdGhpcy5faW5maW5pdGVUaW1lV2luZG93PSExLHRoaXMuX2J1ZmZlclNpemU9Zzwx''@;'; + put 'put ''PzE6Zyx0aGlzLl93aW5kb3dUaW1lPWg8MT8xOmgsaD09PU51bWJlci5QT1NJVElWRV9JTkZJTklUWT8odGhpcy5faW5maW5pdGVUaW1lV2luZG93PSEwLHRoaXMubmV4dD10aGlzLm5leHRJbmZpbml0ZVRpbWVXaW5kb3cpOnRoaXMubmV4dD10aGlzLm5leHRUaW1lV2luZG93fW5leHRJbmZp''@;'; + put 'put ''bml0ZVRpbWVXaW5kb3coZyl7aWYoIXRoaXMuaXNTdG9wcGVkKXtjb25zdCBoPXRoaXMuX2V2ZW50cztoLnB1c2goZyksaC5sZW5ndGg+dGhpcy5fYnVmZmVyU2l6ZSYmaC5zaGlmdCgpfXN1cGVyLm5leHQoZyl9bmV4dFRpbWVXaW5kb3coZyl7dGhpcy5pc1N0b3BwZWR8fCh0aGlzLl9ldmVu''@;'; + put 'put ''dHMucHVzaChuZXcgaTJlKHRoaXMuX2dldE5vdygpLGcpKSx0aGlzLl90cmltQnVmZmVyVGhlbkdldEV2ZW50cygpKSxzdXBlci5uZXh0KGcpfV9zdWJzY3JpYmUoZyl7Y29uc3QgaD10aGlzLl9pbmZpbml0ZVRpbWVXaW5kb3csdj1oP3RoaXMuX2V2ZW50czp0aGlzLl90cmltQnVmZmVyVGhl''@;'; + put 'put ''bkdldEV2ZW50cygpLHk9dGhpcy5zY2hlZHVsZXIsQz12Lmxlbmd0aDtsZXQgSTtpZih0aGlzLmNsb3NlZCl0aHJvdyBuZXcgRGU7aWYodGhpcy5pc1N0b3BwZWR8fHRoaXMuaGFzRXJyb3I/ST1UZS5FTVBUWToodGhpcy5vYnNlcnZlcnMucHVzaChnKSxJPW5ldyBQZSh0aGlzLGcpKSx5JiZn''@;'; + put 'put ''LmFkZChnPW5ldyBMRChnLHkpKSxoKWZvcihsZXQgaj0wO2o8QyYmIWcuY2xvc2VkO2orKylnLm5leHQodltqXSk7ZWxzZSBmb3IobGV0IGo9MDtqPEMmJiFnLmNsb3NlZDtqKyspZy5uZXh0KHZbal0udmFsdWUpO3JldHVybiB0aGlzLmhhc0Vycm9yP2cuZXJyb3IodGhpcy50aHJvd25FcnJv''@;'; + put 'put ''cik6dGhpcy5pc1N0b3BwZWQmJmcuY29tcGxldGUoKSxJfV9nZXROb3coKXtyZXR1cm4odGhpcy5zY2hlZHVsZXJ8fEREKS5ub3coKX1fdHJpbUJ1ZmZlclRoZW5HZXRFdmVudHMoKXtjb25zdCBnPXRoaXMuX2dldE5vdygpLGg9dGhpcy5fYnVmZmVyU2l6ZSx2PXRoaXMuX3dpbmRvd1RpbWUs''@;'; + put 'put ''eT10aGlzLl9ldmVudHMsQz15Lmxlbmd0aDtsZXQgST0wO2Zvcig7STxDJiYhKGcteVtJXS50aW1lPHYpOylJKys7cmV0dXJuIEM+aCYmKEk9TWF0aC5tYXgoSSxDLWgpKSxJPjAmJnkuc3BsaWNlKDAsSSkseX19Y2xhc3MgaTJle2NvbnN0cnVjdG9yKGcsaCl7dGhpcy50aW1lPWcsdGhpcy52''@;'; + put 'put ''YWx1ZT1ofX1jbGFzcyBTWHt9Y29uc3Qgbjg9IioiO2Z1bmN0aW9uICRoKGQsZyl7cmV0dXJue3R5cGU6NyxuYW1lOmQsZGVmaW5pdGlvbnM6ZyxvcHRpb25zOnt9fX1mdW5jdGlvbiBEYyhkLGc9bnVsbCl7cmV0dXJue3R5cGU6NCxzdHlsZXM6Zyx0aW1pbmdzOmR9fWZ1bmN0aW9uIFRrKGQs''@;'; + put 'put ''Zz1udWxsKXtyZXR1cm57dHlwZToyLHN0ZXBzOmQsb3B0aW9uczpnfX1mdW5jdGlvbiB5bChkKXtyZXR1cm57dHlwZTo2LHN0eWxlczpkLG9mZnNldDpudWxsfX1mdW5jdGlvbiBaNyhkLGcsaCl7cmV0dXJue3R5cGU6MCxuYW1lOmQsc3R5bGVzOmcsb3B0aW9uczpofX1mdW5jdGlvbiBhMmUo''@;'; + put 'put ''ZCl7cmV0dXJue3R5cGU6NSxzdGVwczpkfX1mdW5jdGlvbiBidShkLGcsaD1udWxsKXtyZXR1cm57dHlwZToxLGV4cHI6ZCxhbmltYXRpb246ZyxvcHRpb25zOmh9fWZ1bmN0aW9uIG1WKGQpe1Byb21pc2UucmVzb2x2ZShudWxsKS50aGVuKGQpfWNsYXNzIElre2NvbnN0cnVjdG9yKGc9MCxo''@;'; + put 'put ''PTApe3RoaXMuX29uRG9uZUZucz1bXSx0aGlzLl9vblN0YXJ0Rm5zPVtdLHRoaXMuX29uRGVzdHJveUZucz1bXSx0aGlzLl9vcmlnaW5hbE9uRG9uZUZucz1bXSx0aGlzLl9vcmlnaW5hbE9uU3RhcnRGbnM9W10sdGhpcy5fc3RhcnRlZD0hMSx0aGlzLl9kZXN0cm95ZWQ9ITEsdGhpcy5fZmlu''@;'; + put 'put ''aXNoZWQ9ITEsdGhpcy5fcG9zaXRpb249MCx0aGlzLnBhcmVudFBsYXllcj1udWxsLHRoaXMudG90YWxUaW1lPWcraH1fb25GaW5pc2goKXt0aGlzLl9maW5pc2hlZHx8KHRoaXMuX2ZpbmlzaGVkPSEwLHRoaXMuX29uRG9uZUZucy5mb3JFYWNoKGc9PmcoKSksdGhpcy5fb25Eb25lRm5zPVtd''@;'; + put 'put ''KX1vblN0YXJ0KGcpe3RoaXMuX29yaWdpbmFsT25TdGFydEZucy5wdXNoKGcpLHRoaXMuX29uU3RhcnRGbnMucHVzaChnKX1vbkRvbmUoZyl7dGhpcy5fb3JpZ2luYWxPbkRvbmVGbnMucHVzaChnKSx0aGlzLl9vbkRvbmVGbnMucHVzaChnKX1vbkRlc3Ryb3koZyl7dGhpcy5fb25EZXN0cm95''@;'; + put 'put ''Rm5zLnB1c2goZyl9aGFzU3RhcnRlZCgpe3JldHVybiB0aGlzLl9zdGFydGVkfWluaXQoKXt9cGxheSgpe3RoaXMuaGFzU3RhcnRlZCgpfHwodGhpcy5fb25TdGFydCgpLHRoaXMudHJpZ2dlck1pY3JvdGFzaygpKSx0aGlzLl9zdGFydGVkPSEwfXRyaWdnZXJNaWNyb3Rhc2soKXttVigoKT0+''@;'; + put 'put ''dGhpcy5fb25GaW5pc2goKSl9X29uU3RhcnQoKXt0aGlzLl9vblN0YXJ0Rm5zLmZvckVhY2goZz0+ZygpKSx0aGlzLl9vblN0YXJ0Rm5zPVtdfXBhdXNlKCl7fXJlc3RhcnQoKXt9ZmluaXNoKCl7dGhpcy5fb25GaW5pc2goKX1kZXN0cm95KCl7dGhpcy5fZGVzdHJveWVkfHwodGhpcy5fZGVz''@;'; + put 'put ''dHJveWVkPSEwLHRoaXMuaGFzU3RhcnRlZCgpfHx0aGlzLl9vblN0YXJ0KCksdGhpcy5maW5pc2goKSx0aGlzLl9vbkRlc3Ryb3lGbnMuZm9yRWFjaChnPT5nKCkpLHRoaXMuX29uRGVzdHJveUZucz1bXSl9cmVzZXQoKXt0aGlzLl9zdGFydGVkPSExLHRoaXMuX2ZpbmlzaGVkPSExLHRoaXMu''@;'; + put 'put ''X29uU3RhcnRGbnM9dGhpcy5fb3JpZ2luYWxPblN0YXJ0Rm5zLHRoaXMuX29uRG9uZUZucz10aGlzLl9vcmlnaW5hbE9uRG9uZUZuc31zZXRQb3NpdGlvbihnKXt0aGlzLl9wb3NpdGlvbj10aGlzLnRvdGFsVGltZT9nKnRoaXMudG90YWxUaW1lOjF9Z2V0UG9zaXRpb24oKXtyZXR1cm4gdGhp''@;'; + put 'put ''cy50b3RhbFRpbWU/dGhpcy5fcG9zaXRpb24vdGhpcy50b3RhbFRpbWU6MX10cmlnZ2VyQ2FsbGJhY2soZyl7Y29uc3QgaD0ic3RhcnQiPT1nP3RoaXMuX29uU3RhcnRGbnM6dGhpcy5fb25Eb25lRm5zO2guZm9yRWFjaCh2PT52KCkpLGgubGVuZ3RoPTB9fWNsYXNzIHo3e2NvbnN0cnVjdG9y''@;'; + put 'put ''KGcpe3RoaXMuX29uRG9uZUZucz1bXSx0aGlzLl9vblN0YXJ0Rm5zPVtdLHRoaXMuX2ZpbmlzaGVkPSExLHRoaXMuX3N0YXJ0ZWQ9ITEsdGhpcy5fZGVzdHJveWVkPSExLHRoaXMuX29uRGVzdHJveUZucz1bXSx0aGlzLnBhcmVudFBsYXllcj1udWxsLHRoaXMudG90YWxUaW1lPTAsdGhpcy5w''@;'; + put 'put ''bGF5ZXJzPWc7bGV0IGg9MCx2PTAseT0wO2NvbnN0IEM9dGhpcy5wbGF5ZXJzLmxlbmd0aDswPT1DP21WKCgpPT50aGlzLl9vbkZpbmlzaCgpKTp0aGlzLnBsYXllcnMuZm9yRWFjaChJPT57SS5vbkRvbmUoKCk9PnsrK2g9PUMmJnRoaXMuX29uRmluaXNoKCl9KSxJLm9uRGVzdHJveSgoKT0+''@;'; + put 'put ''eysrdj09QyYmdGhpcy5fb25EZXN0cm95KCl9KSxJLm9uU3RhcnQoKCk9PnsrK3k9PUMmJnRoaXMuX29uU3RhcnQoKX0pfSksdGhpcy50b3RhbFRpbWU9dGhpcy5wbGF5ZXJzLnJlZHVjZSgoSSxqKT0+TWF0aC5tYXgoSSxqLnRvdGFsVGltZSksMCl9X29uRmluaXNoKCl7dGhpcy5fZmluaXNo''@;'; + put 'put ''ZWR8fCh0aGlzLl9maW5pc2hlZD0hMCx0aGlzLl9vbkRvbmVGbnMuZm9yRWFjaChnPT5nKCkpLHRoaXMuX29uRG9uZUZucz1bXSl9aW5pdCgpe3RoaXMucGxheWVycy5mb3JFYWNoKGc9PmcuaW5pdCgpKX1vblN0YXJ0KGcpe3RoaXMuX29uU3RhcnRGbnMucHVzaChnKX1fb25TdGFydCgpe3Ro''@;'; + put 'put ''aXMuaGFzU3RhcnRlZCgpfHwodGhpcy5fc3RhcnRlZD0hMCx0aGlzLl9vblN0YXJ0Rm5zLmZvckVhY2goZz0+ZygpKSx0aGlzLl9vblN0YXJ0Rm5zPVtdKX1vbkRvbmUoZyl7dGhpcy5fb25Eb25lRm5zLnB1c2goZyl9b25EZXN0cm95KGcpe3RoaXMuX29uRGVzdHJveUZucy5wdXNoKGcpfWhh''@;'; + put 'put ''c1N0YXJ0ZWQoKXtyZXR1cm4gdGhpcy5fc3RhcnRlZH1wbGF5KCl7dGhpcy5wYXJlbnRQbGF5ZXJ8fHRoaXMuaW5pdCgpLHRoaXMuX29uU3RhcnQoKSx0aGlzLnBsYXllcnMuZm9yRWFjaChnPT5nLnBsYXkoKSl9cGF1c2UoKXt0aGlzLnBsYXllcnMuZm9yRWFjaChnPT5nLnBhdXNlKCkpfXJl''@;'; + put 'put ''c3RhcnQoKXt0aGlzLnBsYXllcnMuZm9yRWFjaChnPT5nLnJlc3RhcnQoKSl9ZmluaXNoKCl7dGhpcy5fb25GaW5pc2goKSx0aGlzLnBsYXllcnMuZm9yRWFjaChnPT5nLmZpbmlzaCgpKX1kZXN0cm95KCl7dGhpcy5fb25EZXN0cm95KCl9X29uRGVzdHJveSgpe3RoaXMuX2Rlc3Ryb3llZHx8''@;'; + put 'put ''KHRoaXMuX2Rlc3Ryb3llZD0hMCx0aGlzLl9vbkZpbmlzaCgpLHRoaXMucGxheWVycy5mb3JFYWNoKGc9PmcuZGVzdHJveSgpKSx0aGlzLl9vbkRlc3Ryb3lGbnMuZm9yRWFjaChnPT5nKCkpLHRoaXMuX29uRGVzdHJveUZucz1bXSl9cmVzZXQoKXt0aGlzLnBsYXllcnMuZm9yRWFjaChnPT5n''@;'; + put 'put ''LnJlc2V0KCkpLHRoaXMuX2Rlc3Ryb3llZD0hMSx0aGlzLl9maW5pc2hlZD0hMSx0aGlzLl9zdGFydGVkPSExfXNldFBvc2l0aW9uKGcpe2NvbnN0IGg9Zyp0aGlzLnRvdGFsVGltZTt0aGlzLnBsYXllcnMuZm9yRWFjaCh2PT57Y29uc3QgeT12LnRvdGFsVGltZT9NYXRoLm1pbigxLGgvdi50''@;'; + put 'put ''b3RhbFRpbWUpOjE7di5zZXRQb3NpdGlvbih5KX0pfWdldFBvc2l0aW9uKCl7Y29uc3QgZz10aGlzLnBsYXllcnMucmVkdWNlKChoLHYpPT5udWxsPT09aHx8di50b3RhbFRpbWU+aC50b3RhbFRpbWU/djpoLG51bGwpO3JldHVybiBudWxsIT1nP2cuZ2V0UG9zaXRpb24oKTowfWJlZm9yZURl''@;'; + put 'put ''c3Ryb3koKXt0aGlzLnBsYXllcnMuZm9yRWFjaChnPT57Zy5iZWZvcmVEZXN0cm95JiZnLmJlZm9yZURlc3Ryb3koKX0pfXRyaWdnZXJDYWxsYmFjayhnKXtjb25zdCBoPSJzdGFydCI9PWc/dGhpcy5fb25TdGFydEZuczp0aGlzLl9vbkRvbmVGbnM7aC5mb3JFYWNoKHY9PnYoKSksaC5sZW5n''@;'; + put 'put ''dGg9MH19ZnVuY3Rpb24gRGsoZCxnKXtyZXR1cm4gbmV3IEYoaD0+e2NvbnN0IHY9ZC5sZW5ndGg7aWYoMD09PXYpcmV0dXJuIHZvaWQgaC5jb21wbGV0ZSgpO2NvbnN0IHk9bmV3IEFycmF5KHYpO2xldCBDPTAsST0wO2ZvcihsZXQgaj0wO2o8djtqKyspe2NvbnN0IHVlPWRuKGRbal0pO2xl''@;'; + put 'put ''dCBfZT0hMTtoLmFkZCh1ZS5zdWJzY3JpYmUoe25leHQ6QmU9PntfZXx8KF9lPSEwLEkrKykseVtqXT1CZX0sZXJyb3I6QmU9PmguZXJyb3IoQmUpLGNvbXBsZXRlOigpPT57QysrLChDPT09dnx8IV9lKSYmKEk9PT12JiZoLm5leHQoZz9nLnJlZHVjZSgoQmUsTmUsS2UpPT4oQmVbTmVdPXlb''@;'; + put 'put ''S2VdLEJlKSx7fSk6eSksaC5jb21wbGV0ZSgpKX19KSl9fSl9bGV0IE1YPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2KXt0aGlzLl9yZW5kZXJlcj1oLHRoaXMuX2VsZW1lbnRSZWY9dix0aGlzLm9uQ2hhbmdlPXk9Pnt9LHRoaXMub25Ub3VjaGVkPSgpPT57fX1zZXRQcm9wZXJ0eSho''@;'; + put 'put ''LHYpe3RoaXMuX3JlbmRlcmVyLnNldFByb3BlcnR5KHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxoLHYpfXJlZ2lzdGVyT25Ub3VjaGVkKGgpe3RoaXMub25Ub3VjaGVkPWh9cmVnaXN0ZXJPbkNoYW5nZShoKXt0aGlzLm9uQ2hhbmdlPWh9c2V0RGlzYWJsZWRTdGF0ZShoKXt0aGlz''@;'; + put 'put ''LnNldFByb3BlcnR5KCJkaXNhYmxlZCIsaCl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKEt0KEdhKSxLdChibykpfSxkLlx1MDI3NWRpcj1XaSh7dHlwZTpkfSksZH0pKCksRzc9KCgpPT57Y2xhc3MgZCBleHRlbmRzIE1Ye31yZXR1cm4gZC5cdTAy''@;'; + put 'put ''NzVmYWM9ZnVuY3Rpb24oKXtsZXQgZztyZXR1cm4gZnVuY3Rpb24odil7cmV0dXJuKGd8fChnPWZsKGQpKSkodnx8ZCl9fSgpLGQuXHUwMjc1ZGlyPVdpKHt0eXBlOmQsZmVhdHVyZXM6W0RvXX0pLGR9KSgpO2NvbnN0IGdwPW5ldyB6ZSgiTmdWYWx1ZUFjY2Vzc29yIiksaDJlPXtwcm92aWRl''@;'; + put 'put ''OmdwLHVzZUV4aXN0aW5nOl9uKCgpPT5JZiksbXVsdGk6ITB9O2xldCBJZj0oKCk9PntjbGFzcyBkIGV4dGVuZHMgRzd7d3JpdGVWYWx1ZShoKXt0aGlzLnNldFByb3BlcnR5KCJjaGVja2VkIixoKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKCl7bGV0IGc7cmV0dXJuIGZ1bmN0aW9u''@;'; + put 'put ''KHYpe3JldHVybihnfHwoZz1mbChkKSkpKHZ8fGQpfX0oKSxkLlx1MDI3NWRpcj1XaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJpbnB1dCIsInR5cGUiLCJjaGVja2JveCIsImZvcm1Db250cm9sTmFtZSIsIiJdLFsiaW5wdXQiLCJ0eXBlIiwiY2hlY2tib3giLCJmb3JtQ29udHJvbCIsIiJdLFsi''@;'; + put 'put ''aW5wdXQiLCJ0eXBlIiwiY2hlY2tib3giLCJuZ01vZGVsIiwiIl1dLGhvc3RCaW5kaW5nczpmdW5jdGlvbihoLHYpezEmaCYmR24oImNoYW5nZSIsZnVuY3Rpb24oQyl7cmV0dXJuIHYub25DaGFuZ2UoQy50YXJnZXQuY2hlY2tlZCl9KSgiYmx1ciIsZnVuY3Rpb24oKXtyZXR1cm4gdi5vblRv''@;'; + put 'put ''dWNoZWQoKX0pfSxmZWF0dXJlczpbaG8oW2gyZV0pLERvXX0pLGR9KSgpO2NvbnN0IEVYPXtwcm92aWRlOmdwLHVzZUV4aXN0aW5nOl9uKCgpPT5tMSksbXVsdGk6ITB9LGQyZT1uZXcgemUoIkNvbXBvc2l0aW9uRXZlbnRNb2RlIik7bGV0IG0xPSgoKT0+e2NsYXNzIGQgZXh0ZW5kcyBNWHtj''@;'; + put 'put ''b25zdHJ1Y3RvcihoLHYseSl7c3VwZXIoaCx2KSx0aGlzLl9jb21wb3NpdGlvbk1vZGU9eSx0aGlzLl9jb21wb3Npbmc9ITEsbnVsbD09dGhpcy5fY29tcG9zaXRpb25Nb2RlJiYodGhpcy5fY29tcG9zaXRpb25Nb2RlPSFmdW5jdGlvbiB4WCgpe2NvbnN0IGQ9VWQoKT9VZCgpLmdldFVzZXJB''@;'; + put 'put ''Z2VudCgpOiIiO3JldHVybi9hbmRyb2lkIChcZCspLy50ZXN0KGQudG9Mb3dlckNhc2UoKSl9KCkpfXdyaXRlVmFsdWUoaCl7dGhpcy5zZXRQcm9wZXJ0eSgidmFsdWUiLG51bGw9PWg/IiI6aCl9X2hhbmRsZUlucHV0KGgpeyghdGhpcy5fY29tcG9zaXRpb25Nb2RlfHx0aGlzLl9jb21wb3Np''@;'; + put 'put ''dGlvbk1vZGUmJiF0aGlzLl9jb21wb3NpbmcpJiZ0aGlzLm9uQ2hhbmdlKGgpfV9jb21wb3NpdGlvblN0YXJ0KCl7dGhpcy5fY29tcG9zaW5nPSEwfV9jb21wb3NpdGlvbkVuZChoKXt0aGlzLl9jb21wb3Npbmc9ITEsdGhpcy5fY29tcG9zaXRpb25Nb2RlJiZ0aGlzLm9uQ2hhbmdlKGgpfX1y''@;'; + put 'put ''ZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShLdChHYSksS3QoYm8pLEt0KGQyZSw4KSl9LGQuXHUwMjc1ZGlyPVdpKHt0eXBlOmQsc2VsZWN0b3JzOltbImlucHV0IiwiZm9ybUNvbnRyb2xOYW1lIiwiIiwzLCJ0eXBlIiwiY2hlY2tib3giXSxbInRleHRh''@;'; + put 'put ''cmVhIiwiZm9ybUNvbnRyb2xOYW1lIiwiIl0sWyJpbnB1dCIsImZvcm1Db250cm9sIiwiIiwzLCJ0eXBlIiwiY2hlY2tib3giXSxbInRleHRhcmVhIiwiZm9ybUNvbnRyb2wiLCIiXSxbImlucHV0IiwibmdNb2RlbCIsIiIsMywidHlwZSIsImNoZWNrYm94Il0sWyJ0ZXh0YXJlYSIsIm5nTW9k''@;'; + put 'put ''ZWwiLCIiXSxbIiIsIm5nRGVmYXVsdENvbnRyb2wiLCIiXV0saG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGgsdil7MSZoJiZHbigiaW5wdXQiLGZ1bmN0aW9uKEMpe3JldHVybiB2Ll9oYW5kbGVJbnB1dChDLnRhcmdldC52YWx1ZSl9KSgiYmx1ciIsZnVuY3Rpb24oKXtyZXR1cm4gdi5vblRvdWNo''@;'; + put 'put ''ZWQoKX0pKCJjb21wb3NpdGlvbnN0YXJ0IixmdW5jdGlvbigpe3JldHVybiB2Ll9jb21wb3NpdGlvblN0YXJ0KCl9KSgiY29tcG9zaXRpb25lbmQiLGZ1bmN0aW9uKEMpe3JldHVybiB2Ll9jb21wb3NpdGlvbkVuZChDLnRhcmdldC52YWx1ZSl9KX0sZmVhdHVyZXM6W2hvKFtFWF0pLERvXX0p''@;'; + put 'put ''LGR9KSgpO2NvbnN0IEtjPW5ldyB6ZSgiTmdWYWxpZGF0b3JzIiksaGc9bmV3IHplKCJOZ0FzeW5jVmFsaWRhdG9ycyIpO2Z1bmN0aW9uIExYKGQpe3JldHVybiBudWxsIT1kfWZ1bmN0aW9uIGJWKGQpe3JldHVybiBWbShkKT9kbihkKTpkfWZ1bmN0aW9uIF9WKGQpe2xldCBnPXt9O3JldHVy''@;'; + put 'put ''biBkLmZvckVhY2goaD0+e2c9bnVsbCE9aD9PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sZyksaCk6Z30pLDA9PT1PYmplY3Qua2V5cyhnKS5sZW5ndGg/bnVsbDpnfWZ1bmN0aW9uIEx5KGQsZyl7cmV0dXJuIGcubWFwKGg9PmgoZCkpfWZ1bmN0aW9uIENWKGQpe3JldHVybiBkLm1h''@;'; + put 'put ''cChnPT5mdW5jdGlvbiBPRChkKXtyZXR1cm4hZC52YWxpZGF0ZX0oZyk/ZzpoPT5nLnZhbGlkYXRlKGgpKX1mdW5jdGlvbiBrVihkKXtyZXR1cm4gbnVsbCE9ZD9mdW5jdGlvbiBPWChkKXtpZighZClyZXR1cm4gbnVsbDtjb25zdCBnPWQuZmlsdGVyKExYKTtyZXR1cm4gMD09Zy5sZW5ndGg/''@;'; + put 'put ''bnVsbDpmdW5jdGlvbihoKXtyZXR1cm4gX1YoTHkoaCxnKSl9fShDVihkKSk6bnVsbH1mdW5jdGlvbiBPayhkKXtyZXR1cm4gbnVsbCE9ZD9mdW5jdGlvbiBTVihkKXtpZighZClyZXR1cm4gbnVsbDtjb25zdCBnPWQuZmlsdGVyKExYKTtyZXR1cm4gMD09Zy5sZW5ndGg/bnVsbDpmdW5jdGlv''@;'; + put 'put ''bihoKXtyZXR1cm4gZnVuY3Rpb24gZjJlKC4uLmQpe2lmKDE9PT1kLmxlbmd0aCl7Y29uc3QgZz1kWzBdO2lmKEFlKGcpKXJldHVybiBEayhnLG51bGwpO2lmKGtlKGcpJiZPYmplY3QuZ2V0UHJvdG90eXBlT2YoZyk9PT1PYmplY3QucHJvdG90eXBlKXtjb25zdCBoPU9iamVjdC5rZXlzKGcp''@;'; + put 'put ''O3JldHVybiBEayhoLm1hcCh2PT5nW3ZdKSxoKX19aWYoImZ1bmN0aW9uIj09dHlwZW9mIGRbZC5sZW5ndGgtMV0pe2NvbnN0IGc9ZC5wb3AoKTtyZXR1cm4gRGsoZD0xPT09ZC5sZW5ndGgmJkFlKGRbMF0pP2RbMF06ZCxudWxsKS5waXBlKG10KGg9PmcoLi4uaCkpKX1yZXR1cm4gRGsoZCxu''@;'; + put 'put ''dWxsKX0oTHkoaCxnKS5tYXAoYlYpKS5waXBlKG10KF9WKSl9fShDVihkKSk6bnVsbH1mdW5jdGlvbiBSWChkLGcpe3JldHVybiBudWxsPT09ZD9bZ106QXJyYXkuaXNBcnJheShkKT9bLi4uZCxnXTpbZCxnXX1mdW5jdGlvbiBNVihkKXtyZXR1cm4gZD9BcnJheS5pc0FycmF5KGQpP2Q6W2Rd''@;'; + put 'put ''OltdfWZ1bmN0aW9uIFJEKGQsZyl7cmV0dXJuIEFycmF5LmlzQXJyYXkoZCk/ZC5pbmNsdWRlcyhnKTpkPT09Z31mdW5jdGlvbiBpOChkLGcpe2NvbnN0IGg9TVYoZyk7cmV0dXJuIE1WKGQpLmZvckVhY2goeT0+e1JEKGgseSl8fGgucHVzaCh5KX0pLGh9ZnVuY3Rpb24gRlgoZCxnKXtyZXR1''@;'; + put 'put ''cm4gTVYoZykuZmlsdGVyKGg9PiFSRChkLGgpKX1jbGFzcyBvOHtjb25zdHJ1Y3Rvcigpe3RoaXMuX3Jhd1ZhbGlkYXRvcnM9W10sdGhpcy5fcmF3QXN5bmNWYWxpZGF0b3JzPVtdLHRoaXMuX29uRGVzdHJveUNhbGxiYWNrcz1bXX1nZXQgdmFsdWUoKXtyZXR1cm4gdGhpcy5jb250cm9sP3Ro''@;'; + put 'put ''aXMuY29udHJvbC52YWx1ZTpudWxsfWdldCB2YWxpZCgpe3JldHVybiB0aGlzLmNvbnRyb2w/dGhpcy5jb250cm9sLnZhbGlkOm51bGx9Z2V0IGludmFsaWQoKXtyZXR1cm4gdGhpcy5jb250cm9sP3RoaXMuY29udHJvbC5pbnZhbGlkOm51bGx9Z2V0IHBlbmRpbmcoKXtyZXR1cm4gdGhpcy5j''@;'; + put 'put ''b250cm9sP3RoaXMuY29udHJvbC5wZW5kaW5nOm51bGx9Z2V0IGRpc2FibGVkKCl7cmV0dXJuIHRoaXMuY29udHJvbD90aGlzLmNvbnRyb2wuZGlzYWJsZWQ6bnVsbH1nZXQgZW5hYmxlZCgpe3JldHVybiB0aGlzLmNvbnRyb2w/dGhpcy5jb250cm9sLmVuYWJsZWQ6bnVsbH1nZXQgZXJyb3Jz''@;'; + put 'put ''KCl7cmV0dXJuIHRoaXMuY29udHJvbD90aGlzLmNvbnRyb2wuZXJyb3JzOm51bGx9Z2V0IHByaXN0aW5lKCl7cmV0dXJuIHRoaXMuY29udHJvbD90aGlzLmNvbnRyb2wucHJpc3RpbmU6bnVsbH1nZXQgZGlydHkoKXtyZXR1cm4gdGhpcy5jb250cm9sP3RoaXMuY29udHJvbC5kaXJ0eTpudWxs''@;'; + put 'put ''fWdldCB0b3VjaGVkKCl7cmV0dXJuIHRoaXMuY29udHJvbD90aGlzLmNvbnRyb2wudG91Y2hlZDpudWxsfWdldCBzdGF0dXMoKXtyZXR1cm4gdGhpcy5jb250cm9sP3RoaXMuY29udHJvbC5zdGF0dXM6bnVsbH1nZXQgdW50b3VjaGVkKCl7cmV0dXJuIHRoaXMuY29udHJvbD90aGlzLmNvbnRy''@;'; + put 'put ''b2wudW50b3VjaGVkOm51bGx9Z2V0IHN0YXR1c0NoYW5nZXMoKXtyZXR1cm4gdGhpcy5jb250cm9sP3RoaXMuY29udHJvbC5zdGF0dXNDaGFuZ2VzOm51bGx9Z2V0IHZhbHVlQ2hhbmdlcygpe3JldHVybiB0aGlzLmNvbnRyb2w/dGhpcy5jb250cm9sLnZhbHVlQ2hhbmdlczpudWxsfWdldCBw''@;'; + put 'put ''YXRoKCl7cmV0dXJuIG51bGx9X3NldFZhbGlkYXRvcnMoZyl7dGhpcy5fcmF3VmFsaWRhdG9ycz1nfHxbXSx0aGlzLl9jb21wb3NlZFZhbGlkYXRvckZuPWtWKHRoaXMuX3Jhd1ZhbGlkYXRvcnMpfV9zZXRBc3luY1ZhbGlkYXRvcnMoZyl7dGhpcy5fcmF3QXN5bmNWYWxpZGF0b3JzPWd8fFtd''@;'; + put 'put ''LHRoaXMuX2NvbXBvc2VkQXN5bmNWYWxpZGF0b3JGbj1Payh0aGlzLl9yYXdBc3luY1ZhbGlkYXRvcnMpfWdldCB2YWxpZGF0b3IoKXtyZXR1cm4gdGhpcy5fY29tcG9zZWRWYWxpZGF0b3JGbnx8bnVsbH1nZXQgYXN5bmNWYWxpZGF0b3IoKXtyZXR1cm4gdGhpcy5fY29tcG9zZWRBc3luY1Zh''@;'; + put 'put ''bGlkYXRvckZufHxudWxsfV9yZWdpc3Rlck9uRGVzdHJveShnKXt0aGlzLl9vbkRlc3Ryb3lDYWxsYmFja3MucHVzaChnKX1faW52b2tlT25EZXN0cm95Q2FsbGJhY2tzKCl7dGhpcy5fb25EZXN0cm95Q2FsbGJhY2tzLmZvckVhY2goZz0+ZygpKSx0aGlzLl9vbkRlc3Ryb3lDYWxsYmFja3M9''@;'; + put 'put ''W119cmVzZXQoZyl7dGhpcy5jb250cm9sJiZ0aGlzLmNvbnRyb2wucmVzZXQoZyl9aGFzRXJyb3IoZyxoKXtyZXR1cm4hIXRoaXMuY29udHJvbCYmdGhpcy5jb250cm9sLmhhc0Vycm9yKGcsaCl9Z2V0RXJyb3IoZyxoKXtyZXR1cm4gdGhpcy5jb250cm9sP3RoaXMuY29udHJvbC5nZXRFcnJv''@;'; + put 'put ''cihnLGgpOm51bGx9fWNsYXNzIERmIGV4dGVuZHMgbzh7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuX3BhcmVudD1udWxsLHRoaXMubmFtZT1udWxsLHRoaXMudmFsdWVBY2Nlc3Nvcj1udWxsfX1jbGFzcyBMZiBleHRlbmRzIG84e2dldCBmb3JtRGlyZWN0aXZlKCl7''@;'; + put 'put ''cmV0dXJuIG51bGx9Z2V0IHBhdGgoKXtyZXR1cm4gbnVsbH19Y2xhc3MgQkR7Y29uc3RydWN0b3IoZyl7dGhpcy5fY2Q9Z31nZXQgaXNUb3VjaGVkKCl7dmFyIGcsaDtyZXR1cm4hKG51bGw9PT0oaD1udWxsPT09KGc9dGhpcy5fY2QpfHx2b2lkIDA9PT1nP3ZvaWQgMDpnLmNvbnRyb2wpfHx2''@;'; + put 'put ''b2lkIDA9PT1ofHwhaC50b3VjaGVkKX1nZXQgaXNVbnRvdWNoZWQoKXt2YXIgZyxoO3JldHVybiEobnVsbD09PShoPW51bGw9PT0oZz10aGlzLl9jZCl8fHZvaWQgMD09PWc/dm9pZCAwOmcuY29udHJvbCl8fHZvaWQgMD09PWh8fCFoLnVudG91Y2hlZCl9Z2V0IGlzUHJpc3RpbmUoKXt2YXIg''@;'; + put 'put ''ZyxoO3JldHVybiEobnVsbD09PShoPW51bGw9PT0oZz10aGlzLl9jZCl8fHZvaWQgMD09PWc/dm9pZCAwOmcuY29udHJvbCl8fHZvaWQgMD09PWh8fCFoLnByaXN0aW5lKX1nZXQgaXNEaXJ0eSgpe3ZhciBnLGg7cmV0dXJuIShudWxsPT09KGg9bnVsbD09PShnPXRoaXMuX2NkKXx8dm9pZCAw''@;'; + put 'put ''PT09Zz92b2lkIDA6Zy5jb250cm9sKXx8dm9pZCAwPT09aHx8IWguZGlydHkpfWdldCBpc1ZhbGlkKCl7dmFyIGcsaDtyZXR1cm4hKG51bGw9PT0oaD1udWxsPT09KGc9dGhpcy5fY2QpfHx2b2lkIDA9PT1nP3ZvaWQgMDpnLmNvbnRyb2wpfHx2b2lkIDA9PT1ofHwhaC52YWxpZCl9Z2V0IGlz''@;'; + put 'put ''SW52YWxpZCgpe3ZhciBnLGg7cmV0dXJuIShudWxsPT09KGg9bnVsbD09PShnPXRoaXMuX2NkKXx8dm9pZCAwPT09Zz92b2lkIDA6Zy5jb250cm9sKXx8dm9pZCAwPT09aHx8IWguaW52YWxpZCl9Z2V0IGlzUGVuZGluZygpe3ZhciBnLGg7cmV0dXJuIShudWxsPT09KGg9bnVsbD09PShnPXRo''@;'; + put 'put ''aXMuX2NkKXx8dm9pZCAwPT09Zz92b2lkIDA6Zy5jb250cm9sKXx8dm9pZCAwPT09aHx8IWgucGVuZGluZyl9Z2V0IGlzU3VibWl0dGVkKCl7dmFyIGc7cmV0dXJuIShudWxsPT09KGc9dGhpcy5fY2QpfHx2b2lkIDA9PT1nfHwhZy5zdWJtaXR0ZWQpfX1sZXQgeHM9KCgpPT57Y2xhc3MgZCBl''@;'; + put 'put ''eHRlbmRzIEJEe2NvbnN0cnVjdG9yKGgpe3N1cGVyKGgpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShLdChEZiwyKSl9LGQuXHUwMjc1ZGlyPVdpKHt0eXBlOmQsc2VsZWN0b3JzOltbIiIsImZvcm1Db250cm9sTmFtZSIsIiJdLFsiIiwibmdNb2Rl''@;'; + put 'put ''bCIsIiJdLFsiIiwiZm9ybUNvbnRyb2wiLCIiXV0saG9zdFZhcnM6MTQsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGgsdil7MiZoJiZGaSgibmctdW50b3VjaGVkIix2LmlzVW50b3VjaGVkKSgibmctdG91Y2hlZCIsdi5pc1RvdWNoZWQpKCJuZy1wcmlzdGluZSIsdi5pc1ByaXN0aW5lKSgibmct''@;'; + put 'put ''ZGlydHkiLHYuaXNEaXJ0eSkoIm5nLXZhbGlkIix2LmlzVmFsaWQpKCJuZy1pbnZhbGlkIix2LmlzSW52YWxpZCkoIm5nLXBlbmRpbmciLHYuaXNQZW5kaW5nKX0sZmVhdHVyZXM6W0RvXX0pLGR9KSgpLGRnPSgoKT0+e2NsYXNzIGQgZXh0ZW5kcyBCRHtjb25zdHJ1Y3RvcihoKXtzdXBlciho''@;'; + put 'put ''KX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoS3QoTGYsMTApKX0sZC5cdTAyNzVkaXI9V2koe3R5cGU6ZCxzZWxlY3RvcnM6W1siIiwiZm9ybUdyb3VwTmFtZSIsIiJdLFsiIiwiZm9ybUFycmF5TmFtZSIsIiJdLFsiIiwibmdNb2RlbEdyb3VwIiwi''@;'; + put 'put ''Il0sWyIiLCJmb3JtR3JvdXAiLCIiXSxbImZvcm0iLDMsIm5nTm9Gb3JtIiwiIl0sWyIiLCJuZ0Zvcm0iLCIiXV0saG9zdFZhcnM6MTYsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGgsdil7MiZoJiZGaSgibmctdW50b3VjaGVkIix2LmlzVW50b3VjaGVkKSgibmctdG91Y2hlZCIsdi5pc1RvdWNo''@;'; + put 'put ''ZWQpKCJuZy1wcmlzdGluZSIsdi5pc1ByaXN0aW5lKSgibmctZGlydHkiLHYuaXNEaXJ0eSkoIm5nLXZhbGlkIix2LmlzVmFsaWQpKCJuZy1pbnZhbGlkIix2LmlzSW52YWxpZCkoIm5nLXBlbmRpbmciLHYuaXNQZW5kaW5nKSgibmctc3VibWl0dGVkIix2LmlzU3VibWl0dGVkKX0sZmVhdHVy''@;'; + put 'put ''ZXM6W0RvXX0pLGR9KSgpO2NvbnN0IFJ5PSJWQUxJRCIsSEQ9IklOVkFMSUQiLEJ5PSJQRU5ESU5HIixSaz0iRElTQUJMRUQiO2Z1bmN0aW9uIElWKGQpe3JldHVybihCayhkKT9kLnZhbGlkYXRvcnM6ZCl8fG51bGx9ZnVuY3Rpb24gRFYoZCl7cmV0dXJuIEFycmF5LmlzQXJyYXkoZCk/a1Yo''@;'; + put 'put ''ZCk6ZHx8bnVsbH1mdW5jdGlvbiBORChkLGcpe3JldHVybihCayhnKT9nLmFzeW5jVmFsaWRhdG9yczpkKXx8bnVsbH1mdW5jdGlvbiBMVihkKXtyZXR1cm4gQXJyYXkuaXNBcnJheShkKT9PayhkKTpkfHxudWxsfWZ1bmN0aW9uIEJrKGQpe3JldHVybiBudWxsIT1kJiYhQXJyYXkuaXNBcnJh''@;'; + put 'put ''eShkKSYmIm9iamVjdCI9PXR5cGVvZiBkfWNsYXNzIGpYe2NvbnN0cnVjdG9yKGcsaCl7dGhpcy5fcGVuZGluZ0RpcnR5PSExLHRoaXMuX2hhc093blBlbmRpbmdBc3luY1ZhbGlkYXRvcj0hMSx0aGlzLl9wZW5kaW5nVG91Y2hlZD0hMSx0aGlzLl9vbkNvbGxlY3Rpb25DaGFuZ2U9KCk9Pnt9''@;'; + put 'put ''LHRoaXMuX3BhcmVudD1udWxsLHRoaXMucHJpc3RpbmU9ITAsdGhpcy50b3VjaGVkPSExLHRoaXMuX29uRGlzYWJsZWRDaGFuZ2U9W10sdGhpcy5fcmF3VmFsaWRhdG9ycz1nLHRoaXMuX3Jhd0FzeW5jVmFsaWRhdG9ycz1oLHRoaXMuX2NvbXBvc2VkVmFsaWRhdG9yRm49RFYodGhpcy5fcmF3''@;'; + put 'put ''VmFsaWRhdG9ycyksdGhpcy5fY29tcG9zZWRBc3luY1ZhbGlkYXRvckZuPUxWKHRoaXMuX3Jhd0FzeW5jVmFsaWRhdG9ycyl9Z2V0IHZhbGlkYXRvcigpe3JldHVybiB0aGlzLl9jb21wb3NlZFZhbGlkYXRvckZufXNldCB2YWxpZGF0b3IoZyl7dGhpcy5fcmF3VmFsaWRhdG9ycz10aGlzLl9j''@;'; + put 'put ''b21wb3NlZFZhbGlkYXRvckZuPWd9Z2V0IGFzeW5jVmFsaWRhdG9yKCl7cmV0dXJuIHRoaXMuX2NvbXBvc2VkQXN5bmNWYWxpZGF0b3JGbn1zZXQgYXN5bmNWYWxpZGF0b3IoZyl7dGhpcy5fcmF3QXN5bmNWYWxpZGF0b3JzPXRoaXMuX2NvbXBvc2VkQXN5bmNWYWxpZGF0b3JGbj1nfWdldCBw''@;'; + put 'put ''YXJlbnQoKXtyZXR1cm4gdGhpcy5fcGFyZW50fWdldCB2YWxpZCgpe3JldHVybiB0aGlzLnN0YXR1cz09PVJ5fWdldCBpbnZhbGlkKCl7cmV0dXJuIHRoaXMuc3RhdHVzPT09SER9Z2V0IHBlbmRpbmcoKXtyZXR1cm4gdGhpcy5zdGF0dXM9PUJ5fWdldCBkaXNhYmxlZCgpe3JldHVybiB0aGlz''@;'; + put 'put ''LnN0YXR1cz09PVJrfWdldCBlbmFibGVkKCl7cmV0dXJuIHRoaXMuc3RhdHVzIT09Umt9Z2V0IGRpcnR5KCl7cmV0dXJuIXRoaXMucHJpc3RpbmV9Z2V0IHVudG91Y2hlZCgpe3JldHVybiF0aGlzLnRvdWNoZWR9Z2V0IHVwZGF0ZU9uKCl7cmV0dXJuIHRoaXMuX3VwZGF0ZU9uP3RoaXMuX3Vw''@;'; + put 'put ''ZGF0ZU9uOnRoaXMucGFyZW50P3RoaXMucGFyZW50LnVwZGF0ZU9uOiJjaGFuZ2UifXNldFZhbGlkYXRvcnMoZyl7dGhpcy5fcmF3VmFsaWRhdG9ycz1nLHRoaXMuX2NvbXBvc2VkVmFsaWRhdG9yRm49RFYoZyl9c2V0QXN5bmNWYWxpZGF0b3JzKGcpe3RoaXMuX3Jhd0FzeW5jVmFsaWRhdG9y''@;'; + put 'put ''cz1nLHRoaXMuX2NvbXBvc2VkQXN5bmNWYWxpZGF0b3JGbj1MVihnKX1hZGRWYWxpZGF0b3JzKGcpe3RoaXMuc2V0VmFsaWRhdG9ycyhpOChnLHRoaXMuX3Jhd1ZhbGlkYXRvcnMpKX1hZGRBc3luY1ZhbGlkYXRvcnMoZyl7dGhpcy5zZXRBc3luY1ZhbGlkYXRvcnMoaTgoZyx0aGlzLl9yYXdB''@;'; + put 'put ''c3luY1ZhbGlkYXRvcnMpKX1yZW1vdmVWYWxpZGF0b3JzKGcpe3RoaXMuc2V0VmFsaWRhdG9ycyhGWChnLHRoaXMuX3Jhd1ZhbGlkYXRvcnMpKX1yZW1vdmVBc3luY1ZhbGlkYXRvcnMoZyl7dGhpcy5zZXRBc3luY1ZhbGlkYXRvcnMoRlgoZyx0aGlzLl9yYXdBc3luY1ZhbGlkYXRvcnMpKX1o''@;'; + put 'put ''YXNWYWxpZGF0b3IoZyl7cmV0dXJuIFJEKHRoaXMuX3Jhd1ZhbGlkYXRvcnMsZyl9aGFzQXN5bmNWYWxpZGF0b3IoZyl7cmV0dXJuIFJEKHRoaXMuX3Jhd0FzeW5jVmFsaWRhdG9ycyxnKX1jbGVhclZhbGlkYXRvcnMoKXt0aGlzLnZhbGlkYXRvcj1udWxsfWNsZWFyQXN5bmNWYWxpZGF0b3Jz''@;'; + put 'put ''KCl7dGhpcy5hc3luY1ZhbGlkYXRvcj1udWxsfW1hcmtBc1RvdWNoZWQoZz17fSl7dGhpcy50b3VjaGVkPSEwLHRoaXMuX3BhcmVudCYmIWcub25seVNlbGYmJnRoaXMuX3BhcmVudC5tYXJrQXNUb3VjaGVkKGcpfW1hcmtBbGxBc1RvdWNoZWQoKXt0aGlzLm1hcmtBc1RvdWNoZWQoe29ubHlT''@;'; + put 'put ''ZWxmOiEwfSksdGhpcy5fZm9yRWFjaENoaWxkKGc9PmcubWFya0FsbEFzVG91Y2hlZCgpKX1tYXJrQXNVbnRvdWNoZWQoZz17fSl7dGhpcy50b3VjaGVkPSExLHRoaXMuX3BlbmRpbmdUb3VjaGVkPSExLHRoaXMuX2ZvckVhY2hDaGlsZChoPT57aC5tYXJrQXNVbnRvdWNoZWQoe29ubHlTZWxm''@;'; + put 'put ''OiEwfSl9KSx0aGlzLl9wYXJlbnQmJiFnLm9ubHlTZWxmJiZ0aGlzLl9wYXJlbnQuX3VwZGF0ZVRvdWNoZWQoZyl9bWFya0FzRGlydHkoZz17fSl7dGhpcy5wcmlzdGluZT0hMSx0aGlzLl9wYXJlbnQmJiFnLm9ubHlTZWxmJiZ0aGlzLl9wYXJlbnQubWFya0FzRGlydHkoZyl9bWFya0FzUHJp''@;'; + put 'put ''c3RpbmUoZz17fSl7dGhpcy5wcmlzdGluZT0hMCx0aGlzLl9wZW5kaW5nRGlydHk9ITEsdGhpcy5fZm9yRWFjaENoaWxkKGg9PntoLm1hcmtBc1ByaXN0aW5lKHtvbmx5U2VsZjohMH0pfSksdGhpcy5fcGFyZW50JiYhZy5vbmx5U2VsZiYmdGhpcy5fcGFyZW50Ll91cGRhdGVQcmlzdGluZShn''@;'; + put 'put ''KX1tYXJrQXNQZW5kaW5nKGc9e30pe3RoaXMuc3RhdHVzPUJ5LCExIT09Zy5lbWl0RXZlbnQmJnRoaXMuc3RhdHVzQ2hhbmdlcy5lbWl0KHRoaXMuc3RhdHVzKSx0aGlzLl9wYXJlbnQmJiFnLm9ubHlTZWxmJiZ0aGlzLl9wYXJlbnQubWFya0FzUGVuZGluZyhnKX1kaXNhYmxlKGc9e30pe2Nv''@;'; + put 'put ''bnN0IGg9dGhpcy5fcGFyZW50TWFya2VkRGlydHkoZy5vbmx5U2VsZik7dGhpcy5zdGF0dXM9UmssdGhpcy5lcnJvcnM9bnVsbCx0aGlzLl9mb3JFYWNoQ2hpbGQodj0+e3YuZGlzYWJsZShPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sZykse29ubHlTZWxmOiEwfSkpfSksdGhpcy5f''@;'; + put 'put ''dXBkYXRlVmFsdWUoKSwhMSE9PWcuZW1pdEV2ZW50JiYodGhpcy52YWx1ZUNoYW5nZXMuZW1pdCh0aGlzLnZhbHVlKSx0aGlzLnN0YXR1c0NoYW5nZXMuZW1pdCh0aGlzLnN0YXR1cykpLHRoaXMuX3VwZGF0ZUFuY2VzdG9ycyhPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sZykse3Nr''@;'; + put 'put ''aXBQcmlzdGluZUNoZWNrOmh9KSksdGhpcy5fb25EaXNhYmxlZENoYW5nZS5mb3JFYWNoKHY9PnYoITApKX1lbmFibGUoZz17fSl7Y29uc3QgaD10aGlzLl9wYXJlbnRNYXJrZWREaXJ0eShnLm9ubHlTZWxmKTt0aGlzLnN0YXR1cz1SeSx0aGlzLl9mb3JFYWNoQ2hpbGQodj0+e3YuZW5hYmxl''@;'; + put 'put ''KE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxnKSx7b25seVNlbGY6ITB9KSl9KSx0aGlzLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoe29ubHlTZWxmOiEwLGVtaXRFdmVudDpnLmVtaXRFdmVudH0pLHRoaXMuX3VwZGF0ZUFuY2VzdG9ycyhPYmplY3QuYXNzaWduKE9iamVjdC5hc3Np''@;'; + put 'put ''Z24oe30sZykse3NraXBQcmlzdGluZUNoZWNrOmh9KSksdGhpcy5fb25EaXNhYmxlZENoYW5nZS5mb3JFYWNoKHY9PnYoITEpKX1fdXBkYXRlQW5jZXN0b3JzKGcpe3RoaXMuX3BhcmVudCYmIWcub25seVNlbGYmJih0aGlzLl9wYXJlbnQudXBkYXRlVmFsdWVBbmRWYWxpZGl0eShnKSxnLnNr''@;'; + put 'put ''aXBQcmlzdGluZUNoZWNrfHx0aGlzLl9wYXJlbnQuX3VwZGF0ZVByaXN0aW5lKCksdGhpcy5fcGFyZW50Ll91cGRhdGVUb3VjaGVkKCkpfXNldFBhcmVudChnKXt0aGlzLl9wYXJlbnQ9Z31nZXRSYXdWYWx1ZSgpe3JldHVybiB0aGlzLnZhbHVlfXVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoZz17''@;'; + put 'put ''fSl7dGhpcy5fc2V0SW5pdGlhbFN0YXR1cygpLHRoaXMuX3VwZGF0ZVZhbHVlKCksdGhpcy5lbmFibGVkJiYodGhpcy5fY2FuY2VsRXhpc3RpbmdTdWJzY3JpcHRpb24oKSx0aGlzLmVycm9ycz10aGlzLl9ydW5WYWxpZGF0b3IoKSx0aGlzLnN0YXR1cz10aGlzLl9jYWxjdWxhdGVTdGF0dXMo''@;'; + put 'put ''KSwodGhpcy5zdGF0dXM9PT1SeXx8dGhpcy5zdGF0dXM9PT1CeSkmJnRoaXMuX3J1bkFzeW5jVmFsaWRhdG9yKGcuZW1pdEV2ZW50KSksITEhPT1nLmVtaXRFdmVudCYmKHRoaXMudmFsdWVDaGFuZ2VzLmVtaXQodGhpcy52YWx1ZSksdGhpcy5zdGF0dXNDaGFuZ2VzLmVtaXQodGhpcy5zdGF0''@;'; + put 'put ''dXMpKSx0aGlzLl9wYXJlbnQmJiFnLm9ubHlTZWxmJiZ0aGlzLl9wYXJlbnQudXBkYXRlVmFsdWVBbmRWYWxpZGl0eShnKX1fdXBkYXRlVHJlZVZhbGlkaXR5KGc9e2VtaXRFdmVudDohMH0pe3RoaXMuX2ZvckVhY2hDaGlsZChoPT5oLl91cGRhdGVUcmVlVmFsaWRpdHkoZykpLHRoaXMudXBk''@;'; + put 'put ''YXRlVmFsdWVBbmRWYWxpZGl0eSh7b25seVNlbGY6ITAsZW1pdEV2ZW50OmcuZW1pdEV2ZW50fSl9X3NldEluaXRpYWxTdGF0dXMoKXt0aGlzLnN0YXR1cz10aGlzLl9hbGxDb250cm9sc0Rpc2FibGVkKCk/Ums6Unl9X3J1blZhbGlkYXRvcigpe3JldHVybiB0aGlzLnZhbGlkYXRvcj90aGlz''@;'; + put 'put ''LnZhbGlkYXRvcih0aGlzKTpudWxsfV9ydW5Bc3luY1ZhbGlkYXRvcihnKXtpZih0aGlzLmFzeW5jVmFsaWRhdG9yKXt0aGlzLnN0YXR1cz1CeSx0aGlzLl9oYXNPd25QZW5kaW5nQXN5bmNWYWxpZGF0b3I9ITA7Y29uc3QgaD1iVih0aGlzLmFzeW5jVmFsaWRhdG9yKHRoaXMpKTt0aGlzLl9h''@;'; + put 'put ''c3luY1ZhbGlkYXRpb25TdWJzY3JpcHRpb249aC5zdWJzY3JpYmUodj0+e3RoaXMuX2hhc093blBlbmRpbmdBc3luY1ZhbGlkYXRvcj0hMSx0aGlzLnNldEVycm9ycyh2LHtlbWl0RXZlbnQ6Z30pfSl9fV9jYW5jZWxFeGlzdGluZ1N1YnNjcmlwdGlvbigpe3RoaXMuX2FzeW5jVmFsaWRhdGlv''@;'; + put 'put ''blN1YnNjcmlwdGlvbiYmKHRoaXMuX2FzeW5jVmFsaWRhdGlvblN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpLHRoaXMuX2hhc093blBlbmRpbmdBc3luY1ZhbGlkYXRvcj0hMSl9c2V0RXJyb3JzKGcsaD17fSl7dGhpcy5lcnJvcnM9Zyx0aGlzLl91cGRhdGVDb250cm9sc0Vycm9ycyghMSE9''@;'; + put 'put ''PWguZW1pdEV2ZW50KX1nZXQoZyl7bGV0IGg9ZztyZXR1cm4gbnVsbD09aHx8KEFycmF5LmlzQXJyYXkoaCl8fChoPWguc3BsaXQoIi4iKSksMD09PWgubGVuZ3RoKT9udWxsOmgucmVkdWNlKCh2LHkpPT52JiZ2Ll9maW5kKHkpLHRoaXMpfWdldEVycm9yKGcsaCl7Y29uc3Qgdj1oP3RoaXMu''@;'; + put 'put ''Z2V0KGgpOnRoaXM7cmV0dXJuIHYmJnYuZXJyb3JzP3YuZXJyb3JzW2ddOm51bGx9aGFzRXJyb3IoZyxoKXtyZXR1cm4hIXRoaXMuZ2V0RXJyb3IoZyxoKX1nZXQgcm9vdCgpe2xldCBnPXRoaXM7Zm9yKDtnLl9wYXJlbnQ7KWc9Zy5fcGFyZW50O3JldHVybiBnfV91cGRhdGVDb250cm9sc0Vy''@;'; + put 'put ''cm9ycyhnKXt0aGlzLnN0YXR1cz10aGlzLl9jYWxjdWxhdGVTdGF0dXMoKSxnJiZ0aGlzLnN0YXR1c0NoYW5nZXMuZW1pdCh0aGlzLnN0YXR1cyksdGhpcy5fcGFyZW50JiZ0aGlzLl9wYXJlbnQuX3VwZGF0ZUNvbnRyb2xzRXJyb3JzKGcpfV9pbml0T2JzZXJ2YWJsZXMoKXt0aGlzLnZhbHVl''@;'; + put 'put ''Q2hhbmdlcz1uZXcgYXIsdGhpcy5zdGF0dXNDaGFuZ2VzPW5ldyBhcn1fY2FsY3VsYXRlU3RhdHVzKCl7cmV0dXJuIHRoaXMuX2FsbENvbnRyb2xzRGlzYWJsZWQoKT9Sazp0aGlzLmVycm9ycz9IRDp0aGlzLl9oYXNPd25QZW5kaW5nQXN5bmNWYWxpZGF0b3J8fHRoaXMuX2FueUNvbnRyb2xz''@;'; + put 'put ''SGF2ZVN0YXR1cyhCeSk/Qnk6dGhpcy5fYW55Q29udHJvbHNIYXZlU3RhdHVzKEhEKT9IRDpSeX1fYW55Q29udHJvbHNIYXZlU3RhdHVzKGcpe3JldHVybiB0aGlzLl9hbnlDb250cm9scyhoPT5oLnN0YXR1cz09PWcpfV9hbnlDb250cm9sc0RpcnR5KCl7cmV0dXJuIHRoaXMuX2FueUNvbnRy''@;'; + put 'put ''b2xzKGc9PmcuZGlydHkpfV9hbnlDb250cm9sc1RvdWNoZWQoKXtyZXR1cm4gdGhpcy5fYW55Q29udHJvbHMoZz0+Zy50b3VjaGVkKX1fdXBkYXRlUHJpc3RpbmUoZz17fSl7dGhpcy5wcmlzdGluZT0hdGhpcy5fYW55Q29udHJvbHNEaXJ0eSgpLHRoaXMuX3BhcmVudCYmIWcub25seVNlbGYm''@;'; + put 'put ''JnRoaXMuX3BhcmVudC5fdXBkYXRlUHJpc3RpbmUoZyl9X3VwZGF0ZVRvdWNoZWQoZz17fSl7dGhpcy50b3VjaGVkPXRoaXMuX2FueUNvbnRyb2xzVG91Y2hlZCgpLHRoaXMuX3BhcmVudCYmIWcub25seVNlbGYmJnRoaXMuX3BhcmVudC5fdXBkYXRlVG91Y2hlZChnKX1fcmVnaXN0ZXJPbkNv''@;'; + put 'put ''bGxlY3Rpb25DaGFuZ2UoZyl7dGhpcy5fb25Db2xsZWN0aW9uQ2hhbmdlPWd9X3NldFVwZGF0ZVN0cmF0ZWd5KGcpe0JrKGcpJiZudWxsIT1nLnVwZGF0ZU9uJiYodGhpcy5fdXBkYXRlT249Zy51cGRhdGVPbil9X3BhcmVudE1hcmtlZERpcnR5KGcpe3JldHVybiFnJiYhKCF0aGlzLl9wYXJl''@;'; + put 'put ''bnR8fCF0aGlzLl9wYXJlbnQuZGlydHkpJiYhdGhpcy5fcGFyZW50Ll9hbnlDb250cm9sc0RpcnR5KCl9X2ZpbmQoZyl7cmV0dXJuIG51bGx9fWNsYXNzIGpEIGV4dGVuZHMgalh7Y29uc3RydWN0b3IoZyxoLHYpe3N1cGVyKElWKGgpLE5EKHYsaCkpLHRoaXMuY29udHJvbHM9Zyx0aGlzLl9p''@;'; + put 'put ''bml0T2JzZXJ2YWJsZXMoKSx0aGlzLl9zZXRVcGRhdGVTdHJhdGVneShoKSx0aGlzLl9zZXRVcENvbnRyb2xzKCksdGhpcy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHtvbmx5U2VsZjohMCxlbWl0RXZlbnQ6ISF0aGlzLmFzeW5jVmFsaWRhdG9yfSl9cmVnaXN0ZXJDb250cm9sKGcsaCl7cmV0''@;'; + put 'put ''dXJuIHRoaXMuY29udHJvbHNbZ10/dGhpcy5jb250cm9sc1tnXToodGhpcy5jb250cm9sc1tnXT1oLGguc2V0UGFyZW50KHRoaXMpLGguX3JlZ2lzdGVyT25Db2xsZWN0aW9uQ2hhbmdlKHRoaXMuX29uQ29sbGVjdGlvbkNoYW5nZSksaCl9YWRkQ29udHJvbChnLGgsdj17fSl7dGhpcy5yZWdp''@;'; + put 'put ''c3RlckNvbnRyb2woZyxoKSx0aGlzLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoe2VtaXRFdmVudDp2LmVtaXRFdmVudH0pLHRoaXMuX29uQ29sbGVjdGlvbkNoYW5nZSgpfXJlbW92ZUNvbnRyb2woZyxoPXt9KXt0aGlzLmNvbnRyb2xzW2ddJiZ0aGlzLmNvbnRyb2xzW2ddLl9yZWdpc3Rlck9u''@;'; + put 'put ''Q29sbGVjdGlvbkNoYW5nZSgoKT0+e30pLGRlbGV0ZSB0aGlzLmNvbnRyb2xzW2ddLHRoaXMudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7ZW1pdEV2ZW50OmguZW1pdEV2ZW50fSksdGhpcy5fb25Db2xsZWN0aW9uQ2hhbmdlKCl9c2V0Q29udHJvbChnLGgsdj17fSl7dGhpcy5jb250cm9sc1tn''@;'; + put 'put ''XSYmdGhpcy5jb250cm9sc1tnXS5fcmVnaXN0ZXJPbkNvbGxlY3Rpb25DaGFuZ2UoKCk9Pnt9KSxkZWxldGUgdGhpcy5jb250cm9sc1tnXSxoJiZ0aGlzLnJlZ2lzdGVyQ29udHJvbChnLGgpLHRoaXMudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7ZW1pdEV2ZW50OnYuZW1pdEV2ZW50fSksdGhp''@;'; + put 'put ''cy5fb25Db2xsZWN0aW9uQ2hhbmdlKCl9Y29udGFpbnMoZyl7cmV0dXJuIHRoaXMuY29udHJvbHMuaGFzT3duUHJvcGVydHkoZykmJnRoaXMuY29udHJvbHNbZ10uZW5hYmxlZH1zZXRWYWx1ZShnLGg9e30peyhmdW5jdGlvbiBWRChkLGcsaCl7ZC5fZm9yRWFjaENoaWxkKCh2LHkpPT57aWYo''@;'; + put 'put ''dm9pZCAwPT09aFt5XSl0aHJvdyBuZXcgZW4oMTAwMiwiIil9KX0pKHRoaXMsMCxnKSxPYmplY3Qua2V5cyhnKS5mb3JFYWNoKHY9PnsoZnVuY3Rpb24gVlgoZCxnLGgpe2NvbnN0IHY9ZC5jb250cm9scztpZighKGc/T2JqZWN0LmtleXModik6dikubGVuZ3RoKXRocm93IG5ldyBlbigxZTMs''@;'; + put 'put ''IiIpO2lmKCF2W2hdKXRocm93IG5ldyBlbigxMDAxLCIiKX0pKHRoaXMsITAsdiksdGhpcy5jb250cm9sc1t2XS5zZXRWYWx1ZShnW3ZdLHtvbmx5U2VsZjohMCxlbWl0RXZlbnQ6aC5lbWl0RXZlbnR9KX0pLHRoaXMudXBkYXRlVmFsdWVBbmRWYWxpZGl0eShoKX1wYXRjaFZhbHVlKGcsaD17''@;'; + put 'put ''fSl7bnVsbCE9ZyYmKE9iamVjdC5rZXlzKGcpLmZvckVhY2godj0+e2NvbnN0IHk9dGhpcy5jb250cm9sc1t2XTt5JiZ5LnBhdGNoVmFsdWUoZ1t2XSx7b25seVNlbGY6ITAsZW1pdEV2ZW50OmguZW1pdEV2ZW50fSl9KSx0aGlzLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoaCkpfXJlc2V0KGc9''@;'; + put 'put ''e30saD17fSl7dGhpcy5fZm9yRWFjaENoaWxkKCh2LHkpPT57di5yZXNldChnW3ldLHtvbmx5U2VsZjohMCxlbWl0RXZlbnQ6aC5lbWl0RXZlbnR9KX0pLHRoaXMuX3VwZGF0ZVByaXN0aW5lKGgpLHRoaXMuX3VwZGF0ZVRvdWNoZWQoaCksdGhpcy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KGgp''@;'; + put 'put ''fWdldFJhd1ZhbHVlKCl7cmV0dXJuIHRoaXMuX3JlZHVjZUNoaWxkcmVuKHt9LChnLGgsdik9PihnW3ZdPWguZ2V0UmF3VmFsdWUoKSxnKSl9X3N5bmNQZW5kaW5nQ29udHJvbHMoKXtsZXQgZz10aGlzLl9yZWR1Y2VDaGlsZHJlbighMSwoaCx2KT0+ISF2Ll9zeW5jUGVuZGluZ0NvbnRyb2xz''@;'; + put 'put ''KCl8fGgpO3JldHVybiBnJiZ0aGlzLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoe29ubHlTZWxmOiEwfSksZ31fZm9yRWFjaENoaWxkKGcpe09iamVjdC5rZXlzKHRoaXMuY29udHJvbHMpLmZvckVhY2goaD0+e2NvbnN0IHY9dGhpcy5jb250cm9sc1toXTt2JiZnKHYsaCl9KX1fc2V0VXBDb250''@;'; + put 'put ''cm9scygpe3RoaXMuX2ZvckVhY2hDaGlsZChnPT57Zy5zZXRQYXJlbnQodGhpcyksZy5fcmVnaXN0ZXJPbkNvbGxlY3Rpb25DaGFuZ2UodGhpcy5fb25Db2xsZWN0aW9uQ2hhbmdlKX0pfV91cGRhdGVWYWx1ZSgpe3RoaXMudmFsdWU9dGhpcy5fcmVkdWNlVmFsdWUoKX1fYW55Q29udHJvbHMo''@;'; + put 'put ''Zyl7Zm9yKGNvbnN0W2gsdl1vZiBPYmplY3QuZW50cmllcyh0aGlzLmNvbnRyb2xzKSlpZih0aGlzLmNvbnRhaW5zKGgpJiZnKHYpKXJldHVybiEwO3JldHVybiExfV9yZWR1Y2VWYWx1ZSgpe3JldHVybiB0aGlzLl9yZWR1Y2VDaGlsZHJlbih7fSwoaCx2LHkpPT4oKHYuZW5hYmxlZHx8dGhp''@;'; + put 'put ''cy5kaXNhYmxlZCkmJihoW3ldPXYudmFsdWUpLGgpKX1fcmVkdWNlQ2hpbGRyZW4oZyxoKXtsZXQgdj1nO3JldHVybiB0aGlzLl9mb3JFYWNoQ2hpbGQoKHksQyk9Pnt2PWgodix5LEMpfSksdn1fYWxsQ29udHJvbHNEaXNhYmxlZCgpe2Zvcihjb25zdCBnIG9mIE9iamVjdC5rZXlzKHRoaXMu''@;'; + put 'put ''Y29udHJvbHMpKWlmKHRoaXMuY29udHJvbHNbZ10uZW5hYmxlZClyZXR1cm4hMTtyZXR1cm4gT2JqZWN0LmtleXModGhpcy5jb250cm9scykubGVuZ3RoPjB8fHRoaXMuZGlzYWJsZWR9X2ZpbmQoZyl7cmV0dXJuIHRoaXMuY29udHJvbHMuaGFzT3duUHJvcGVydHkoZyk/dGhpcy5jb250cm9s''@;'; + put 'put ''c1tnXTpudWxsfX1mdW5jdGlvbiBQeShkLGcpe3ZhciBoLHY7RmsoZCxnKSxnLnZhbHVlQWNjZXNzb3Iud3JpdGVWYWx1ZShkLnZhbHVlKSxkLmRpc2FibGVkJiYobnVsbD09PSh2PShoPWcudmFsdWVBY2Nlc3Nvcikuc2V0RGlzYWJsZWRTdGF0ZSl8fHZvaWQgMD09PXZ8fHYuY2FsbChoLCEw''@;'; + put 'put ''KSksZnVuY3Rpb24gYjJlKGQsZyl7Zy52YWx1ZUFjY2Vzc29yLnJlZ2lzdGVyT25DaGFuZ2UoaD0+e2QuX3BlbmRpbmdWYWx1ZT1oLGQuX3BlbmRpbmdDaGFuZ2U9ITAsZC5fcGVuZGluZ0RpcnR5PSEwLCJjaGFuZ2UiPT09ZC51cGRhdGVPbiYmR1goZCxnKX0pfShkLGcpLGZ1bmN0aW9uIEMy''@;'; + put 'put ''ZShkLGcpe2NvbnN0IGg9KHYseSk9PntnLnZhbHVlQWNjZXNzb3Iud3JpdGVWYWx1ZSh2KSx5JiZnLnZpZXdUb01vZGVsVXBkYXRlKHYpfTtkLnJlZ2lzdGVyT25DaGFuZ2UoaCksZy5fcmVnaXN0ZXJPbkRlc3Ryb3koKCk9PntkLl91bnJlZ2lzdGVyT25DaGFuZ2UoaCl9KX0oZCxnKSxmdW5j''@;'; + put 'put ''dGlvbiBfMmUoZCxnKXtnLnZhbHVlQWNjZXNzb3IucmVnaXN0ZXJPblRvdWNoZWQoKCk9PntkLl9wZW5kaW5nVG91Y2hlZD0hMCwiYmx1ciI9PT1kLnVwZGF0ZU9uJiZkLl9wZW5kaW5nQ2hhbmdlJiZHWChkLGcpLCJzdWJtaXQiIT09ZC51cGRhdGVPbiYmZC5tYXJrQXNUb3VjaGVkKCl9KX0o''@;'; + put 'put ''ZCxnKSxmdW5jdGlvbiB6WChkLGcpe2lmKGcudmFsdWVBY2Nlc3Nvci5zZXREaXNhYmxlZFN0YXRlKXtjb25zdCBoPXY9PntnLnZhbHVlQWNjZXNzb3Iuc2V0RGlzYWJsZWRTdGF0ZSh2KX07ZC5yZWdpc3Rlck9uRGlzYWJsZWRDaGFuZ2UoaCksZy5fcmVnaXN0ZXJPbkRlc3Ryb3koKCk9Pntk''@;'; + put 'put ''Ll91bnJlZ2lzdGVyT25EaXNhYmxlZENoYW5nZShoKX0pfX0oZCxnKX1mdW5jdGlvbiBVNyhkLGcpe2QuZm9yRWFjaChoPT57aC5yZWdpc3Rlck9uVmFsaWRhdG9yQ2hhbmdlJiZoLnJlZ2lzdGVyT25WYWxpZGF0b3JDaGFuZ2UoZyl9KX1mdW5jdGlvbiBGayhkLGcpe2NvbnN0IGg9ZnVuY3Rp''@;'; + put 'put ''b24gQlgoZCl7cmV0dXJuIGQuX3Jhd1ZhbGlkYXRvcnN9KGQpO251bGwhPT1nLnZhbGlkYXRvcj9kLnNldFZhbGlkYXRvcnMoUlgoaCxnLnZhbGlkYXRvcikpOiJmdW5jdGlvbiI9PXR5cGVvZiBoJiZkLnNldFZhbGlkYXRvcnMoW2hdKTtjb25zdCB2PWZ1bmN0aW9uIFBYKGQpe3JldHVybiBk''@;'; + put 'put ''Ll9yYXdBc3luY1ZhbGlkYXRvcnN9KGQpO251bGwhPT1nLmFzeW5jVmFsaWRhdG9yP2Quc2V0QXN5bmNWYWxpZGF0b3JzKFJYKHYsZy5hc3luY1ZhbGlkYXRvcikpOiJmdW5jdGlvbiI9PXR5cGVvZiB2JiZkLnNldEFzeW5jVmFsaWRhdG9ycyhbdl0pO2NvbnN0IHk9KCk9PmQudXBkYXRlVmFs''@;'; + put 'put ''dWVBbmRWYWxpZGl0eSgpO1U3KGcuX3Jhd1ZhbGlkYXRvcnMseSksVTcoZy5fcmF3QXN5bmNWYWxpZGF0b3JzLHkpfWZ1bmN0aW9uIEdYKGQsZyl7ZC5fcGVuZGluZ0RpcnR5JiZkLm1hcmtBc0RpcnR5KCksZC5zZXRWYWx1ZShkLl9wZW5kaW5nVmFsdWUse2VtaXRNb2RlbFRvVmlld0NoYW5n''@;'; + put 'put ''ZTohMX0pLGcudmlld1RvTW9kZWxVcGRhdGUoZC5fcGVuZGluZ1ZhbHVlKSxkLl9wZW5kaW5nQ2hhbmdlPSExfWNvbnN0IFVYPXtwcm92aWRlOkxmLHVzZUV4aXN0aW5nOl9uKCgpPT5MYyl9LE55PSgoKT0+UHJvbWlzZS5yZXNvbHZlKG51bGwpKSgpO2xldCBMYz0oKCk9PntjbGFzcyBkIGV4''@;'; + put 'put ''dGVuZHMgTGZ7Y29uc3RydWN0b3IoaCx2KXtzdXBlcigpLHRoaXMuc3VibWl0dGVkPSExLHRoaXMuX2RpcmVjdGl2ZXM9bmV3IFNldCx0aGlzLm5nU3VibWl0PW5ldyBhcix0aGlzLmZvcm09bmV3IGpEKHt9LGtWKGgpLE9rKHYpKX1uZ0FmdGVyVmlld0luaXQoKXt0aGlzLl9zZXRVcGRhdGVT''@;'; + put 'put ''dHJhdGVneSgpfWdldCBmb3JtRGlyZWN0aXZlKCl7cmV0dXJuIHRoaXN9Z2V0IGNvbnRyb2woKXtyZXR1cm4gdGhpcy5mb3JtfWdldCBwYXRoKCl7cmV0dXJuW119Z2V0IGNvbnRyb2xzKCl7cmV0dXJuIHRoaXMuZm9ybS5jb250cm9sc31hZGRDb250cm9sKGgpe055LnRoZW4oKCk9Pntjb25z''@;'; + put 'put ''dCB2PXRoaXMuX2ZpbmRDb250YWluZXIoaC5wYXRoKTtoLmNvbnRyb2w9di5yZWdpc3RlckNvbnRyb2woaC5uYW1lLGguY29udHJvbCksUHkoaC5jb250cm9sLGgpLGguY29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHtlbWl0RXZlbnQ6ITF9KSx0aGlzLl9kaXJlY3RpdmVzLmFkZCho''@;'; + put 'put ''KX0pfWdldENvbnRyb2woaCl7cmV0dXJuIHRoaXMuZm9ybS5nZXQoaC5wYXRoKX1yZW1vdmVDb250cm9sKGgpe055LnRoZW4oKCk9Pntjb25zdCB2PXRoaXMuX2ZpbmRDb250YWluZXIoaC5wYXRoKTt2JiZ2LnJlbW92ZUNvbnRyb2woaC5uYW1lKSx0aGlzLl9kaXJlY3RpdmVzLmRlbGV0ZSho''@;'; + put 'put ''KX0pfWFkZEZvcm1Hcm91cChoKXtOeS50aGVuKCgpPT57Y29uc3Qgdj10aGlzLl9maW5kQ29udGFpbmVyKGgucGF0aCkseT1uZXcgakQoe30pOyhmdW5jdGlvbiBXWChkLGcpe0ZrKGQsZyl9KSh5LGgpLHYucmVnaXN0ZXJDb250cm9sKGgubmFtZSx5KSx5LnVwZGF0ZVZhbHVlQW5kVmFsaWRp''@;'; + put 'put ''dHkoe2VtaXRFdmVudDohMX0pfSl9cmVtb3ZlRm9ybUdyb3VwKGgpe055LnRoZW4oKCk9Pntjb25zdCB2PXRoaXMuX2ZpbmRDb250YWluZXIoaC5wYXRoKTt2JiZ2LnJlbW92ZUNvbnRyb2woaC5uYW1lKX0pfWdldEZvcm1Hcm91cChoKXtyZXR1cm4gdGhpcy5mb3JtLmdldChoLnBhdGgpfXVw''@;'; + put 'put ''ZGF0ZU1vZGVsKGgsdil7TnkudGhlbigoKT0+e3RoaXMuZm9ybS5nZXQoaC5wYXRoKS5zZXRWYWx1ZSh2KX0pfXNldFZhbHVlKGgpe3RoaXMuY29udHJvbC5zZXRWYWx1ZShoKX1vblN1Ym1pdChoKXtyZXR1cm4gdGhpcy5zdWJtaXR0ZWQ9ITAsZnVuY3Rpb24gUFYoZCxnKXtkLl9zeW5jUGVu''@;'; + put 'put ''ZGluZ0NvbnRyb2xzKCksZy5mb3JFYWNoKGg9Pntjb25zdCB2PWguY29udHJvbDsic3VibWl0Ij09PXYudXBkYXRlT24mJnYuX3BlbmRpbmdDaGFuZ2UmJihoLnZpZXdUb01vZGVsVXBkYXRlKHYuX3BlbmRpbmdWYWx1ZSksdi5fcGVuZGluZ0NoYW5nZT0hMSl9KX0odGhpcy5mb3JtLHRoaXMu''@;'; + put 'put ''X2RpcmVjdGl2ZXMpLHRoaXMubmdTdWJtaXQuZW1pdChoKSwhMX1vblJlc2V0KCl7dGhpcy5yZXNldEZvcm0oKX1yZXNldEZvcm0oaCl7dGhpcy5mb3JtLnJlc2V0KGgpLHRoaXMuc3VibWl0dGVkPSExfV9zZXRVcGRhdGVTdHJhdGVneSgpe3RoaXMub3B0aW9ucyYmbnVsbCE9dGhpcy5vcHRp''@;'; + put 'put ''b25zLnVwZGF0ZU9uJiYodGhpcy5mb3JtLl91cGRhdGVPbj10aGlzLm9wdGlvbnMudXBkYXRlT24pfV9maW5kQ29udGFpbmVyKGgpe3JldHVybiBoLnBvcCgpLGgubGVuZ3RoP3RoaXMuZm9ybS5nZXQoaCk6dGhpcy5mb3JtfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJu''@;'; + put 'put ''IG5ldyhofHxkKShLdChLYywxMCksS3QoaGcsMTApKX0sZC5cdTAyNzVkaXI9V2koe3R5cGU6ZCxzZWxlY3RvcnM6W1siZm9ybSIsMywibmdOb0Zvcm0iLCIiLDMsImZvcm1Hcm91cCIsIiJdLFsibmctZm9ybSJdLFsiIiwibmdGb3JtIiwiIl1dLGhvc3RCaW5kaW5nczpmdW5jdGlvbihoLHYp''@;'; + put 'put ''ezEmaCYmR24oInN1Ym1pdCIsZnVuY3Rpb24oQyl7cmV0dXJuIHYub25TdWJtaXQoQyl9KSgicmVzZXQiLGZ1bmN0aW9uKCl7cmV0dXJuIHYub25SZXNldCgpfSl9LGlucHV0czp7b3B0aW9uczpbIm5nRm9ybU9wdGlvbnMiLCJvcHRpb25zIl19LG91dHB1dHM6e25nU3VibWl0OiJuZ1N1Ym1p''@;'; + put 'put ''dCJ9LGV4cG9ydEFzOlsibmdGb3JtIl0sZmVhdHVyZXM6W2hvKFtVWF0pLERvXX0pLGR9KSgpO2Z1bmN0aW9uIEZWKGQsZyl7Y29uc3QgaD1kLmluZGV4T2YoZyk7aD4tMSYmZC5zcGxpY2UoaCwxKX1mdW5jdGlvbiBIayhkKXtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIGQmJm51bGwhPT1kJiYy''@;'; + put 'put ''PT09T2JqZWN0LmtleXMoZCkubGVuZ3RoJiYidmFsdWUiaW4gZCYmImRpc2FibGVkImluIGR9Y29uc3QgTms9Y2xhc3MgZXh0ZW5kcyBqWHtjb25zdHJ1Y3RvcihnPW51bGwsaCx2KXtzdXBlcihJVihoKSxORCh2LGgpKSx0aGlzLmRlZmF1bHRWYWx1ZT1udWxsLHRoaXMuX29uQ2hhbmdlPVtd''@;'; + put 'put ''LHRoaXMuX3BlbmRpbmdDaGFuZ2U9ITEsdGhpcy5fYXBwbHlGb3JtU3RhdGUoZyksdGhpcy5fc2V0VXBkYXRlU3RyYXRlZ3koaCksdGhpcy5faW5pdE9ic2VydmFibGVzKCksdGhpcy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHtvbmx5U2VsZjohMCxlbWl0RXZlbnQ6ISF0aGlzLmFzeW5jVmFs''@;'; + put 'put ''aWRhdG9yfSksQmsoaCkmJihoLm5vbk51bGxhYmxlfHxoLmluaXRpYWxWYWx1ZUlzRGVmYXVsdCkmJih0aGlzLmRlZmF1bHRWYWx1ZT1IayhnKT9nLnZhbHVlOmcpfXNldFZhbHVlKGcsaD17fSl7dGhpcy52YWx1ZT10aGlzLl9wZW5kaW5nVmFsdWU9Zyx0aGlzLl9vbkNoYW5nZS5sZW5ndGgm''@;'; + put 'put ''JiExIT09aC5lbWl0TW9kZWxUb1ZpZXdDaGFuZ2UmJnRoaXMuX29uQ2hhbmdlLmZvckVhY2godj0+dih0aGlzLnZhbHVlLCExIT09aC5lbWl0Vmlld1RvTW9kZWxDaGFuZ2UpKSx0aGlzLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoaCl9cGF0Y2hWYWx1ZShnLGg9e30pe3RoaXMuc2V0VmFsdWUo''@;'; + put 'put ''ZyxoKX1yZXNldChnPXRoaXMuZGVmYXVsdFZhbHVlLGg9e30pe3RoaXMuX2FwcGx5Rm9ybVN0YXRlKGcpLHRoaXMubWFya0FzUHJpc3RpbmUoaCksdGhpcy5tYXJrQXNVbnRvdWNoZWQoaCksdGhpcy5zZXRWYWx1ZSh0aGlzLnZhbHVlLGgpLHRoaXMuX3BlbmRpbmdDaGFuZ2U9ITF9X3VwZGF0''@;'; + put 'put ''ZVZhbHVlKCl7fV9hbnlDb250cm9scyhnKXtyZXR1cm4hMX1fYWxsQ29udHJvbHNEaXNhYmxlZCgpe3JldHVybiB0aGlzLmRpc2FibGVkfXJlZ2lzdGVyT25DaGFuZ2UoZyl7dGhpcy5fb25DaGFuZ2UucHVzaChnKX1fdW5yZWdpc3Rlck9uQ2hhbmdlKGcpe0ZWKHRoaXMuX29uQ2hhbmdlLGcp''@;'; + put 'put ''fXJlZ2lzdGVyT25EaXNhYmxlZENoYW5nZShnKXt0aGlzLl9vbkRpc2FibGVkQ2hhbmdlLnB1c2goZyl9X3VucmVnaXN0ZXJPbkRpc2FibGVkQ2hhbmdlKGcpe0ZWKHRoaXMuX29uRGlzYWJsZWRDaGFuZ2UsZyl9X2ZvckVhY2hDaGlsZChnKXt9X3N5bmNQZW5kaW5nQ29udHJvbHMoKXtyZXR1''@;'; + put 'put ''cm4hKCJzdWJtaXQiIT09dGhpcy51cGRhdGVPbnx8KHRoaXMuX3BlbmRpbmdEaXJ0eSYmdGhpcy5tYXJrQXNEaXJ0eSgpLHRoaXMuX3BlbmRpbmdUb3VjaGVkJiZ0aGlzLm1hcmtBc1RvdWNoZWQoKSwhdGhpcy5fcGVuZGluZ0NoYW5nZSl8fCh0aGlzLnNldFZhbHVlKHRoaXMuX3BlbmRpbmdW''@;'; + put 'put ''YWx1ZSx7b25seVNlbGY6ITAsZW1pdE1vZGVsVG9WaWV3Q2hhbmdlOiExfSksMCkpfV9hcHBseUZvcm1TdGF0ZShnKXtIayhnKT8odGhpcy52YWx1ZT10aGlzLl9wZW5kaW5nVmFsdWU9Zy52YWx1ZSxnLmRpc2FibGVkP3RoaXMuZGlzYWJsZSh7b25seVNlbGY6ITAsZW1pdEV2ZW50OiExfSk6''@;'; + put 'put ''dGhpcy5lbmFibGUoe29ubHlTZWxmOiEwLGVtaXRFdmVudDohMX0pKTp0aGlzLnZhbHVlPXRoaXMuX3BlbmRpbmdWYWx1ZT1nfX0sRTJlPXtwcm92aWRlOkRmLHVzZUV4aXN0aW5nOl9uKCgpPT5Ucyl9LFE3PSgoKT0+UHJvbWlzZS5yZXNvbHZlKG51bGwpKSgpO2xldCBUcz0oKCk9PntjbGFz''@;'; + put 'put ''cyBkIGV4dGVuZHMgRGZ7Y29uc3RydWN0b3IoaCx2LHksQyxJKXtzdXBlcigpLHRoaXMuX2NoYW5nZURldGVjdG9yUmVmPUksdGhpcy5jb250cm9sPW5ldyBOayx0aGlzLl9yZWdpc3RlcmVkPSExLHRoaXMudXBkYXRlPW5ldyBhcix0aGlzLl9wYXJlbnQ9aCx0aGlzLl9zZXRWYWxpZGF0b3Jz''@;'; + put 'put ''KHYpLHRoaXMuX3NldEFzeW5jVmFsaWRhdG9ycyh5KSx0aGlzLnZhbHVlQWNjZXNzb3I9ZnVuY3Rpb24gSHkoZCxnKXtpZighZylyZXR1cm4gbnVsbDtsZXQgaCx2LHk7cmV0dXJuIEFycmF5LmlzQXJyYXkoZyksZy5mb3JFYWNoKEM9PntDLmNvbnN0cnVjdG9yPT09bTE/aD1DOmZ1bmN0aW9u''@;'; + put 'put ''IEJWKGQpe3JldHVybiBPYmplY3QuZ2V0UHJvdG90eXBlT2YoZC5jb25zdHJ1Y3Rvcik9PT1HN30oQyk/dj1DOnk9Q30pLHl8fHZ8fGh8fG51bGx9KDAsQyl9bmdPbkNoYW5nZXMoaCl7aWYodGhpcy5fY2hlY2tGb3JFcnJvcnMoKSwhdGhpcy5fcmVnaXN0ZXJlZHx8Im5hbWUiaW4gaCl7aWYo''@;'; + put 'put ''dGhpcy5fcmVnaXN0ZXJlZCYmKHRoaXMuX2NoZWNrTmFtZSgpLHRoaXMuZm9ybURpcmVjdGl2ZSkpe2NvbnN0IHY9aC5uYW1lLnByZXZpb3VzVmFsdWU7dGhpcy5mb3JtRGlyZWN0aXZlLnJlbW92ZUNvbnRyb2woe25hbWU6dixwYXRoOnRoaXMuX2dldFBhdGgodil9KX10aGlzLl9zZXRVcENv''@;'; + put 'put ''bnRyb2woKX0iaXNEaXNhYmxlZCJpbiBoJiZ0aGlzLl91cGRhdGVEaXNhYmxlZChoKSxmdW5jdGlvbiBSVihkLGcpe2lmKCFkLmhhc093blByb3BlcnR5KCJtb2RlbCIpKXJldHVybiExO2NvbnN0IGg9ZC5tb2RlbDtyZXR1cm4hIWguaXNGaXJzdENoYW5nZSgpfHwhT2JqZWN0LmlzKGcsaC5j''@;'; + put 'put ''dXJyZW50VmFsdWUpfShoLHRoaXMudmlld01vZGVsKSYmKHRoaXMuX3VwZGF0ZVZhbHVlKHRoaXMubW9kZWwpLHRoaXMudmlld01vZGVsPXRoaXMubW9kZWwpfW5nT25EZXN0cm95KCl7dGhpcy5mb3JtRGlyZWN0aXZlJiZ0aGlzLmZvcm1EaXJlY3RpdmUucmVtb3ZlQ29udHJvbCh0aGlzKX1n''@;'; + put 'put ''ZXQgcGF0aCgpe3JldHVybiB0aGlzLl9nZXRQYXRoKHRoaXMubmFtZSl9Z2V0IGZvcm1EaXJlY3RpdmUoKXtyZXR1cm4gdGhpcy5fcGFyZW50P3RoaXMuX3BhcmVudC5mb3JtRGlyZWN0aXZlOm51bGx9dmlld1RvTW9kZWxVcGRhdGUoaCl7dGhpcy52aWV3TW9kZWw9aCx0aGlzLnVwZGF0ZS5l''@;'; + put 'put ''bWl0KGgpfV9zZXRVcENvbnRyb2woKXt0aGlzLl9zZXRVcGRhdGVTdHJhdGVneSgpLHRoaXMuX2lzU3RhbmRhbG9uZSgpP3RoaXMuX3NldFVwU3RhbmRhbG9uZSgpOnRoaXMuZm9ybURpcmVjdGl2ZS5hZGRDb250cm9sKHRoaXMpLHRoaXMuX3JlZ2lzdGVyZWQ9ITB9X3NldFVwZGF0ZVN0cmF0''@;'; + put 'put ''ZWd5KCl7dGhpcy5vcHRpb25zJiZudWxsIT10aGlzLm9wdGlvbnMudXBkYXRlT24mJih0aGlzLmNvbnRyb2wuX3VwZGF0ZU9uPXRoaXMub3B0aW9ucy51cGRhdGVPbil9X2lzU3RhbmRhbG9uZSgpe3JldHVybiF0aGlzLl9wYXJlbnR8fCEoIXRoaXMub3B0aW9uc3x8IXRoaXMub3B0aW9ucy5z''@;'; + put 'put ''dGFuZGFsb25lKX1fc2V0VXBTdGFuZGFsb25lKCl7UHkodGhpcy5jb250cm9sLHRoaXMpLHRoaXMuY29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHtlbWl0RXZlbnQ6ITF9KX1fY2hlY2tGb3JFcnJvcnMoKXt0aGlzLl9pc1N0YW5kYWxvbmUoKXx8dGhpcy5fY2hlY2tQYXJlbnRUeXBl''@;'; + put 'put ''KCksdGhpcy5fY2hlY2tOYW1lKCl9X2NoZWNrUGFyZW50VHlwZSgpe31fY2hlY2tOYW1lKCl7dGhpcy5vcHRpb25zJiZ0aGlzLm9wdGlvbnMubmFtZSYmKHRoaXMubmFtZT10aGlzLm9wdGlvbnMubmFtZSksdGhpcy5faXNTdGFuZGFsb25lKCl9X3VwZGF0ZVZhbHVlKGgpe1E3LnRoZW4oKCk9''@;'; + put 'put ''Pnt2YXIgdjt0aGlzLmNvbnRyb2wuc2V0VmFsdWUoaCx7ZW1pdFZpZXdUb01vZGVsQ2hhbmdlOiExfSksbnVsbD09PSh2PXRoaXMuX2NoYW5nZURldGVjdG9yUmVmKXx8dm9pZCAwPT09dnx8di5tYXJrRm9yQ2hlY2soKX0pfV91cGRhdGVEaXNhYmxlZChoKXtjb25zdCB2PWguaXNEaXNhYmxl''@;'; + put 'put ''ZC5jdXJyZW50VmFsdWUseT0wIT09diYmSDYodik7UTcudGhlbigoKT0+e3ZhciBDO3kmJiF0aGlzLmNvbnRyb2wuZGlzYWJsZWQ/dGhpcy5jb250cm9sLmRpc2FibGUoKToheSYmdGhpcy5jb250cm9sLmRpc2FibGVkJiZ0aGlzLmNvbnRyb2wuZW5hYmxlKCksbnVsbD09PShDPXRoaXMuX2No''@;'; + put 'put ''YW5nZURldGVjdG9yUmVmKXx8dm9pZCAwPT09Q3x8Qy5tYXJrRm9yQ2hlY2soKX0pfV9nZXRQYXRoKGgpe3JldHVybiB0aGlzLl9wYXJlbnQ/ZnVuY3Rpb24gUGsoZCxnKXtyZXR1cm5bLi4uZy5wYXRoLGRdfShoLHRoaXMuX3BhcmVudCk6W2hdfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rp''@;'; + put 'put ''b24oaCl7cmV0dXJuIG5ldyhofHxkKShLdChMZiw5KSxLdChLYywxMCksS3QoaGcsMTApLEt0KGdwLDEwKSxLdChkMSw4KSl9LGQuXHUwMjc1ZGlyPVdpKHt0eXBlOmQsc2VsZWN0b3JzOltbIiIsIm5nTW9kZWwiLCIiLDMsImZvcm1Db250cm9sTmFtZSIsIiIsMywiZm9ybUNvbnRyb2wiLCIi''@;'; + put 'put ''XV0saW5wdXRzOntuYW1lOiJuYW1lIixpc0Rpc2FibGVkOlsiZGlzYWJsZWQiLCJpc0Rpc2FibGVkIl0sbW9kZWw6WyJuZ01vZGVsIiwibW9kZWwiXSxvcHRpb25zOlsibmdNb2RlbE9wdGlvbnMiLCJvcHRpb25zIl19LG91dHB1dHM6e3VwZGF0ZToibmdNb2RlbENoYW5nZSJ9LGV4cG9ydEFz''@;'; + put 'put ''OlsibmdNb2RlbCJdLGZlYXR1cmVzOltobyhbRTJlXSksRG8sRDJdfSksZH0pKCkscGc9KCgpPT57Y2xhc3MgZHt9cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1ZGlyPVdpKHt0eXBlOmQsc2VsZWN0b3JzOltbImZvcm0iLDMsIm5nTm9G''@;'; + put 'put ''b3JtIiwiIiwzLCJuZ05hdGl2ZVZhbGlkYXRlIiwiIl1dLGhvc3RBdHRyczpbIm5vdmFsaWRhdGUiLCIiXX0pLGR9KSgpO2NvbnN0ICRYPXtwcm92aWRlOmdwLHVzZUV4aXN0aW5nOl9uKCgpPT5WViksbXVsdGk6ITB9O2xldCBWVj0oKCk9PntjbGFzcyBkIGV4dGVuZHMgRzd7d3JpdGVWYWx1''@;'; + put 'put ''ZShoKXt0aGlzLnNldFByb3BlcnR5KCJ2YWx1ZSIsbnVsbD09aD8iIjpoKX1yZWdpc3Rlck9uQ2hhbmdlKGgpe3RoaXMub25DaGFuZ2U9dj0+e2goIiI9PXY/bnVsbDpwYXJzZUZsb2F0KHYpKX19fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbigpe2xldCBnO3JldHVybiBmdW5jdGlvbih2''@;'; + put 'put ''KXtyZXR1cm4oZ3x8KGc9ZmwoZCkpKSh2fHxkKX19KCksZC5cdTAyNzVkaXI9V2koe3R5cGU6ZCxzZWxlY3RvcnM6W1siaW5wdXQiLCJ0eXBlIiwibnVtYmVyIiwiZm9ybUNvbnRyb2xOYW1lIiwiIl0sWyJpbnB1dCIsInR5cGUiLCJudW1iZXIiLCJmb3JtQ29udHJvbCIsIiJdLFsiaW5wdXQi''@;'; + put 'put ''LCJ0eXBlIiwibnVtYmVyIiwibmdNb2RlbCIsIiJdXSxob3N0QmluZGluZ3M6ZnVuY3Rpb24oaCx2KXsxJmgmJkduKCJpbnB1dCIsZnVuY3Rpb24oQyl7cmV0dXJuIHYub25DaGFuZ2UoQy50YXJnZXQudmFsdWUpfSkoImJsdXIiLGZ1bmN0aW9uKCl7cmV0dXJuIHYub25Ub3VjaGVkKCl9KX0s''@;'; + put 'put ''ZmVhdHVyZXM6W2hvKFskWF0pLERvXX0pLGR9KSgpO2NvbnN0IHgyZT17cHJvdmlkZTpncCx1c2VFeGlzdGluZzpfbigoKT0+cWgpLG11bHRpOiEwfTtsZXQgcVg9KCgpPT57Y2xhc3MgZHt9cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1''@;'; + put 'put ''bW9kPWNvKHt0eXBlOmR9KSxkLlx1MDI3NWluaj1iMCh7fSksZH0pKCksZUs9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3Rvcigpe3RoaXMuX2FjY2Vzc29ycz1bXX1hZGQoaCx2KXt0aGlzLl9hY2Nlc3NvcnMucHVzaChbaCx2XSl9cmVtb3ZlKGgpe2ZvcihsZXQgdj10aGlzLl9hY2Nlc3NvcnMu''@;'; + put 'put ''bGVuZ3RoLTE7dj49MDstLXYpaWYodGhpcy5fYWNjZXNzb3JzW3ZdWzFdPT09aClyZXR1cm4gdm9pZCB0aGlzLl9hY2Nlc3NvcnMuc3BsaWNlKHYsMSl9c2VsZWN0KGgpe3RoaXMuX2FjY2Vzc29ycy5mb3JFYWNoKHY9Pnt0aGlzLl9pc1NhbWVHcm91cCh2LGgpJiZ2WzFdIT09aCYmdlsxXS5m''@;'; + put 'put ''aXJlVW5jaGVjayhoLnZhbHVlKX0pfV9pc1NhbWVHcm91cChoLHYpe3JldHVybiEhaFswXS5jb250cm9sJiZoWzBdLl9wYXJlbnQ9PT12Ll9jb250cm9sLl9wYXJlbnQmJmhbMV0ubmFtZT09PXYubmFtZX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9''@;'; + put 'put ''LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1ZmFjLHByb3ZpZGVkSW46cVh9KSxkfSkoKSxxaD0oKCk9PntjbGFzcyBkIGV4dGVuZHMgRzd7Y29uc3RydWN0b3IoaCx2LHksQyl7c3VwZXIoaCx2KSx0aGlzLl9yZWdpc3RyeT15LHRoaXMuX2luamVjdG9yPUMsdGhp''@;'; + put 'put ''cy5vbkNoYW5nZT0oKT0+e319bmdPbkluaXQoKXt0aGlzLl9jb250cm9sPXRoaXMuX2luamVjdG9yLmdldChEZiksdGhpcy5fY2hlY2tOYW1lKCksdGhpcy5fcmVnaXN0cnkuYWRkKHRoaXMuX2NvbnRyb2wsdGhpcyl9bmdPbkRlc3Ryb3koKXt0aGlzLl9yZWdpc3RyeS5yZW1vdmUodGhpcyl9''@;'; + put 'put ''d3JpdGVWYWx1ZShoKXt0aGlzLl9zdGF0ZT1oPT09dGhpcy52YWx1ZSx0aGlzLnNldFByb3BlcnR5KCJjaGVja2VkIix0aGlzLl9zdGF0ZSl9cmVnaXN0ZXJPbkNoYW5nZShoKXt0aGlzLl9mbj1oLHRoaXMub25DaGFuZ2U9KCk9PntoKHRoaXMudmFsdWUpLHRoaXMuX3JlZ2lzdHJ5LnNlbGVj''@;'; + put 'put ''dCh0aGlzKX19ZmlyZVVuY2hlY2soaCl7dGhpcy53cml0ZVZhbHVlKGgpfV9jaGVja05hbWUoKXshdGhpcy5uYW1lJiZ0aGlzLmZvcm1Db250cm9sTmFtZSYmKHRoaXMubmFtZT10aGlzLmZvcm1Db250cm9sTmFtZSl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3''@;'; + put 'put ''KGh8fGQpKEt0KEdhKSxLdChibyksS3QoZUspLEt0KGtzKSl9LGQuXHUwMjc1ZGlyPVdpKHt0eXBlOmQsc2VsZWN0b3JzOltbImlucHV0IiwidHlwZSIsInJhZGlvIiwiZm9ybUNvbnRyb2xOYW1lIiwiIl0sWyJpbnB1dCIsInR5cGUiLCJyYWRpbyIsImZvcm1Db250cm9sIiwiIl0sWyJpbnB1''@;'; + put 'put ''dCIsInR5cGUiLCJyYWRpbyIsIm5nTW9kZWwiLCIiXV0saG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGgsdil7MSZoJiZHbigiY2hhbmdlIixmdW5jdGlvbigpe3JldHVybiB2Lm9uQ2hhbmdlKCl9KSgiYmx1ciIsZnVuY3Rpb24oKXtyZXR1cm4gdi5vblRvdWNoZWQoKX0pfSxpbnB1dHM6e25hbWU6''@;'; + put 'put ''Im5hbWUiLGZvcm1Db250cm9sTmFtZToiZm9ybUNvbnRyb2xOYW1lIix2YWx1ZToidmFsdWUifSxmZWF0dXJlczpbaG8oW3gyZV0pLERvXX0pLGR9KSgpO2NvbnN0IFlEPW5ldyB6ZSgiTmdNb2RlbFdpdGhGb3JtQ29udHJvbFdhcm5pbmciKSxsSz17cHJvdmlkZTpncCx1c2VFeGlzdGluZzpf''@;'; + put 'put ''bigoKT0+T2YpLG11bHRpOiEwfTtmdW5jdGlvbiBhOChkLGcpe3JldHVybiBudWxsPT1kP2Ake2d9YDooZyYmIm9iamVjdCI9PXR5cGVvZiBnJiYoZz0iT2JqZWN0IiksYCR7ZH06ICR7Z31gLnNsaWNlKDAsNTApKX1sZXQgT2Y9KCgpPT57Y2xhc3MgZCBleHRlbmRzIEc3e2NvbnN0cnVjdG9y''@;'; + put 'put ''KCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLl9vcHRpb25NYXA9bmV3IE1hcCx0aGlzLl9pZENvdW50ZXI9MCx0aGlzLl9jb21wYXJlV2l0aD1PYmplY3QuaXN9c2V0IGNvbXBhcmVXaXRoKGgpe3RoaXMuX2NvbXBhcmVXaXRoPWh9d3JpdGVWYWx1ZShoKXt0aGlzLnZhbHVlPWg7Y29uc3Qg''@;'; + put 'put ''eT1hOCh0aGlzLl9nZXRPcHRpb25JZChoKSxoKTt0aGlzLnNldFByb3BlcnR5KCJ2YWx1ZSIseSl9cmVnaXN0ZXJPbkNoYW5nZShoKXt0aGlzLm9uQ2hhbmdlPXY9Pnt0aGlzLnZhbHVlPXRoaXMuX2dldE9wdGlvblZhbHVlKHYpLGgodGhpcy52YWx1ZSl9fV9yZWdpc3Rlck9wdGlvbigpe3Jl''@;'; + put 'put ''dHVybih0aGlzLl9pZENvdW50ZXIrKykudG9TdHJpbmcoKX1fZ2V0T3B0aW9uSWQoaCl7Zm9yKGNvbnN0IHYgb2YgQXJyYXkuZnJvbSh0aGlzLl9vcHRpb25NYXAua2V5cygpKSlpZih0aGlzLl9jb21wYXJlV2l0aCh0aGlzLl9vcHRpb25NYXAuZ2V0KHYpLGgpKXJldHVybiB2O3JldHVybiBu''@;'; + put 'put ''dWxsfV9nZXRPcHRpb25WYWx1ZShoKXtjb25zdCB2PWZ1bmN0aW9uIEQyZShkKXtyZXR1cm4gZC5zcGxpdCgiOiIpWzBdfShoKTtyZXR1cm4gdGhpcy5fb3B0aW9uTWFwLmhhcyh2KT90aGlzLl9vcHRpb25NYXAuZ2V0KHYpOmh9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbigpe2xldCBn''@;'; + put 'put ''O3JldHVybiBmdW5jdGlvbih2KXtyZXR1cm4oZ3x8KGc9ZmwoZCkpKSh2fHxkKX19KCksZC5cdTAyNzVkaXI9V2koe3R5cGU6ZCxzZWxlY3RvcnM6W1sic2VsZWN0IiwiZm9ybUNvbnRyb2xOYW1lIiwiIiwzLCJtdWx0aXBsZSIsIiJdLFsic2VsZWN0IiwiZm9ybUNvbnRyb2wiLCIiLDMsIm11''@;'; + put 'put ''bHRpcGxlIiwiIl0sWyJzZWxlY3QiLCJuZ01vZGVsIiwiIiwzLCJtdWx0aXBsZSIsIiJdXSxob3N0QmluZGluZ3M6ZnVuY3Rpb24oaCx2KXsxJmgmJkduKCJjaGFuZ2UiLGZ1bmN0aW9uKEMpe3JldHVybiB2Lm9uQ2hhbmdlKEMudGFyZ2V0LnZhbHVlKX0pKCJibHVyIixmdW5jdGlvbigpe3Jl''@;'; + put 'put ''dHVybiB2Lm9uVG91Y2hlZCgpfSl9LGlucHV0czp7Y29tcGFyZVdpdGg6ImNvbXBhcmVXaXRoIn0sZmVhdHVyZXM6W2hvKFtsS10pLERvXX0pLGR9KSgpLHEzPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2LHkpe3RoaXMuX2VsZW1lbnQ9aCx0aGlzLl9yZW5kZXJlcj12LHRoaXMuX3Nl''@;'; + put 'put ''bGVjdD15LHRoaXMuX3NlbGVjdCYmKHRoaXMuaWQ9dGhpcy5fc2VsZWN0Ll9yZWdpc3Rlck9wdGlvbigpKX1zZXQgbmdWYWx1ZShoKXtudWxsIT10aGlzLl9zZWxlY3QmJih0aGlzLl9zZWxlY3QuX29wdGlvbk1hcC5zZXQodGhpcy5pZCxoKSx0aGlzLl9zZXRFbGVtZW50VmFsdWUoYTgodGhp''@;'; + put 'put ''cy5pZCxoKSksdGhpcy5fc2VsZWN0LndyaXRlVmFsdWUodGhpcy5fc2VsZWN0LnZhbHVlKSl9c2V0IHZhbHVlKGgpe3RoaXMuX3NldEVsZW1lbnRWYWx1ZShoKSx0aGlzLl9zZWxlY3QmJnRoaXMuX3NlbGVjdC53cml0ZVZhbHVlKHRoaXMuX3NlbGVjdC52YWx1ZSl9X3NldEVsZW1lbnRWYWx1''@;'; + put 'put ''ZShoKXt0aGlzLl9yZW5kZXJlci5zZXRQcm9wZXJ0eSh0aGlzLl9lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsInZhbHVlIixoKX1uZ09uRGVzdHJveSgpe3RoaXMuX3NlbGVjdCYmKHRoaXMuX3NlbGVjdC5fb3B0aW9uTWFwLmRlbGV0ZSh0aGlzLmlkKSx0aGlzLl9zZWxlY3Qud3JpdGVWYWx1ZSh0''@;'; + put 'put ''aGlzLl9zZWxlY3QudmFsdWUpKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoS3QoYm8pLEt0KEdhKSxLdChPZiw5KSl9LGQuXHUwMjc1ZGlyPVdpKHt0eXBlOmQsc2VsZWN0b3JzOltbIm9wdGlvbiJdXSxpbnB1dHM6e25nVmFsdWU6Im5nVmFsdWUi''@;'; + put 'put ''LHZhbHVlOiJ2YWx1ZSJ9fSksZH0pKCk7Y29uc3QgVUQ9e3Byb3ZpZGU6Z3AsdXNlRXhpc3Rpbmc6X24oKCk9PnZwKSxtdWx0aTohMH07ZnVuY3Rpb24gVmsoZCxnKXtyZXR1cm4gbnVsbD09ZD9gJHtnfWA6KCJzdHJpbmciPT10eXBlb2YgZyYmKGc9YCcke2d9J2ApLGcmJiJvYmplY3QiPT10''@;'; + put 'put ''eXBlb2YgZyYmKGc9Ik9iamVjdCIpLGAke2R9OiAke2d9YC5zbGljZSgwLDUwKSl9bGV0IHZwPSgoKT0+e2NsYXNzIGQgZXh0ZW5kcyBHN3tjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5fb3B0aW9uTWFwPW5ldyBNYXAsdGhpcy5faWRDb3VudGVyPTAsdGhpcy5fY29t''@;'; + put 'put ''cGFyZVdpdGg9T2JqZWN0LmlzfXNldCBjb21wYXJlV2l0aChoKXt0aGlzLl9jb21wYXJlV2l0aD1ofXdyaXRlVmFsdWUoaCl7bGV0IHY7aWYodGhpcy52YWx1ZT1oLEFycmF5LmlzQXJyYXkoaCkpe2NvbnN0IHk9aC5tYXAoQz0+dGhpcy5fZ2V0T3B0aW9uSWQoQykpO3Y9KEMsSSk9PntDLl9z''@;'; + put 'put ''ZXRTZWxlY3RlZCh5LmluZGV4T2YoSS50b1N0cmluZygpKT4tMSl9fWVsc2Ugdj0oeSxDKT0+e3kuX3NldFNlbGVjdGVkKCExKX07dGhpcy5fb3B0aW9uTWFwLmZvckVhY2godil9cmVnaXN0ZXJPbkNoYW5nZShoKXt0aGlzLm9uQ2hhbmdlPXY9Pntjb25zdCB5PVtdLEM9di5zZWxlY3RlZE9w''@;'; + put 'put ''dGlvbnM7aWYodm9pZCAwIT09Qyl7Y29uc3QgST1DO2ZvcihsZXQgaj0wO2o8SS5sZW5ndGg7aisrKXtjb25zdCBfZT10aGlzLl9nZXRPcHRpb25WYWx1ZShJW2pdLnZhbHVlKTt5LnB1c2goX2UpfX1lbHNle2NvbnN0IEk9di5vcHRpb25zO2ZvcihsZXQgaj0wO2o8SS5sZW5ndGg7aisrKXtj''@;'; + put 'put ''b25zdCB1ZT1JW2pdO2lmKHVlLnNlbGVjdGVkKXtjb25zdCBfZT10aGlzLl9nZXRPcHRpb25WYWx1ZSh1ZS52YWx1ZSk7eS5wdXNoKF9lKX19fXRoaXMudmFsdWU9eSxoKHkpfX1fcmVnaXN0ZXJPcHRpb24oaCl7Y29uc3Qgdj0odGhpcy5faWRDb3VudGVyKyspLnRvU3RyaW5nKCk7cmV0dXJu''@;'; + put 'put ''IHRoaXMuX29wdGlvbk1hcC5zZXQodixoKSx2fV9nZXRPcHRpb25JZChoKXtmb3IoY29uc3QgdiBvZiBBcnJheS5mcm9tKHRoaXMuX29wdGlvbk1hcC5rZXlzKCkpKWlmKHRoaXMuX2NvbXBhcmVXaXRoKHRoaXMuX29wdGlvbk1hcC5nZXQodikuX3ZhbHVlLGgpKXJldHVybiB2O3JldHVybiBu''@;'; + put 'put ''dWxsfV9nZXRPcHRpb25WYWx1ZShoKXtjb25zdCB2PWZ1bmN0aW9uIFZ5KGQpe3JldHVybiBkLnNwbGl0KCI6IilbMF19KGgpO3JldHVybiB0aGlzLl9vcHRpb25NYXAuaGFzKHYpP3RoaXMuX29wdGlvbk1hcC5nZXQodikuX3ZhbHVlOmh9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbigp''@;'; + put 'put ''e2xldCBnO3JldHVybiBmdW5jdGlvbih2KXtyZXR1cm4oZ3x8KGc9ZmwoZCkpKSh2fHxkKX19KCksZC5cdTAyNzVkaXI9V2koe3R5cGU6ZCxzZWxlY3RvcnM6W1sic2VsZWN0IiwibXVsdGlwbGUiLCIiLCJmb3JtQ29udHJvbE5hbWUiLCIiXSxbInNlbGVjdCIsIm11bHRpcGxlIiwiIiwiZm9y''@;'; + put 'put ''bUNvbnRyb2wiLCIiXSxbInNlbGVjdCIsIm11bHRpcGxlIiwiIiwibmdNb2RlbCIsIiJdXSxob3N0QmluZGluZ3M6ZnVuY3Rpb24oaCx2KXsxJmgmJkduKCJjaGFuZ2UiLGZ1bmN0aW9uKEMpe3JldHVybiB2Lm9uQ2hhbmdlKEMudGFyZ2V0KX0pKCJibHVyIixmdW5jdGlvbigpe3JldHVybiB2''@;'; + put 'put ''Lm9uVG91Y2hlZCgpfSl9LGlucHV0czp7Y29tcGFyZVdpdGg6ImNvbXBhcmVXaXRoIn0sZmVhdHVyZXM6W2hvKFtVRF0pLERvXX0pLGR9KSgpLGVkPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2LHkpe3RoaXMuX2VsZW1lbnQ9aCx0aGlzLl9yZW5kZXJlcj12LHRoaXMuX3NlbGVjdD15''@;'; + put 'put ''LHRoaXMuX3NlbGVjdCYmKHRoaXMuaWQ9dGhpcy5fc2VsZWN0Ll9yZWdpc3Rlck9wdGlvbih0aGlzKSl9c2V0IG5nVmFsdWUoaCl7bnVsbCE9dGhpcy5fc2VsZWN0JiYodGhpcy5fdmFsdWU9aCx0aGlzLl9zZXRFbGVtZW50VmFsdWUoVmsodGhpcy5pZCxoKSksdGhpcy5fc2VsZWN0LndyaXRl''@;'; + put 'put ''VmFsdWUodGhpcy5fc2VsZWN0LnZhbHVlKSl9c2V0IHZhbHVlKGgpe3RoaXMuX3NlbGVjdD8odGhpcy5fdmFsdWU9aCx0aGlzLl9zZXRFbGVtZW50VmFsdWUoVmsodGhpcy5pZCxoKSksdGhpcy5fc2VsZWN0LndyaXRlVmFsdWUodGhpcy5fc2VsZWN0LnZhbHVlKSk6dGhpcy5fc2V0RWxlbWVu''@;'; + put 'put ''dFZhbHVlKGgpfV9zZXRFbGVtZW50VmFsdWUoaCl7dGhpcy5fcmVuZGVyZXIuc2V0UHJvcGVydHkodGhpcy5fZWxlbWVudC5uYXRpdmVFbGVtZW50LCJ2YWx1ZSIsaCl9X3NldFNlbGVjdGVkKGgpe3RoaXMuX3JlbmRlcmVyLnNldFByb3BlcnR5KHRoaXMuX2VsZW1lbnQubmF0aXZlRWxlbWVu''@;'; + put 'put ''dCwic2VsZWN0ZWQiLGgpfW5nT25EZXN0cm95KCl7dGhpcy5fc2VsZWN0JiYodGhpcy5fc2VsZWN0Ll9vcHRpb25NYXAuZGVsZXRlKHRoaXMuaWQpLHRoaXMuX3NlbGVjdC53cml0ZVZhbHVlKHRoaXMuX3NlbGVjdC52YWx1ZSkpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0''@;'; + put 'put ''dXJuIG5ldyhofHxkKShLdChibyksS3QoR2EpLEt0KHZwLDkpKX0sZC5cdTAyNzVkaXI9V2koe3R5cGU6ZCxzZWxlY3RvcnM6W1sib3B0aW9uIl1dLGlucHV0czp7bmdWYWx1ZToibmdWYWx1ZSIsdmFsdWU6InZhbHVlIn19KSxkfSkoKSxZVj0oKCk9PntjbGFzcyBke31yZXR1cm4gZC5cdTAy''@;'; + put 'put ''NzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVtb2Q9Y28oe3R5cGU6ZH0pLGQuXHUwMjc1aW5qPWIwKHtpbXBvcnRzOltxWF19KSxkfSkoKSxuZD0oKCk9PntjbGFzcyBke31yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0s''@;'; + put 'put ''ZC5cdTAyNzVtb2Q9Y28oe3R5cGU6ZH0pLGQuXHUwMjc1aW5qPWIwKHtpbXBvcnRzOltZVl19KSxkfSkoKSxQMmU9KCgpPT57Y2xhc3MgZHtzdGF0aWMgd2l0aENvbmZpZyhoKXtyZXR1cm57bmdNb2R1bGU6ZCxwcm92aWRlcnM6W3twcm92aWRlOllELHVzZVZhbHVlOmgud2Fybk9uTmdNb2Rl''@;'; + put 'put ''bFdpdGhGb3JtQ29udHJvbH1dfX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1bW9kPWNvKHt0eXBlOmR9KSxkLlx1MDI3NWluaj1iMCh7aW1wb3J0czpbWVZdfSksZH0pKCk7ZnVuY3Rpb24gS0QoZCl7dGhpcy53cmFwcGVkPWR9ZnVu''@;'; + put 'put ''Y3Rpb24gJEQoZCl7dmFyIGcsaDtmdW5jdGlvbiB5KEksail7dHJ5e3ZhciB1ZT1kW0ldKGopLF9lPXVlLnZhbHVlLEJlPV9lIGluc3RhbmNlb2YgS0Q7UHJvbWlzZS5yZXNvbHZlKEJlP19lLndyYXBwZWQ6X2UpLnRoZW4oZnVuY3Rpb24oTmUpe0JlP3koInJldHVybiI9PT1JPyJyZXR1cm4i''@;'; + put 'put ''OiJuZXh0IixOZSk6Qyh1ZS5kb25lPyJyZXR1cm4iOiJub3JtYWwiLE5lKX0sZnVuY3Rpb24oTmUpe3koInRocm93IixOZSl9KX1jYXRjaChOZSl7QygidGhyb3ciLE5lKX19ZnVuY3Rpb24gQyhJLGope3N3aXRjaChJKXtjYXNlInJldHVybiI6Zy5yZXNvbHZlKHt2YWx1ZTpqLGRvbmU6ITB9''@;'; + put 'put ''KTticmVhaztjYXNlInRocm93IjpnLnJlamVjdChqKTticmVhaztkZWZhdWx0OmcucmVzb2x2ZSh7dmFsdWU6aixkb25lOiExfSl9KGc9Zy5uZXh0KT95KGcua2V5LGcuYXJnKTpoPW51bGx9dGhpcy5faW52b2tlPWZ1bmN0aW9uIHYoSSxqKXtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24o''@;'; + put 'put ''dWUsX2Upe3ZhciBCZT17a2V5OkksYXJnOmoscmVzb2x2ZTp1ZSxyZWplY3Q6X2UsbmV4dDpudWxsfTtoP2g9aC5uZXh0PUJlOihnPWg9QmUseShJLGopKX0pfSwiZnVuY3Rpb24iIT10eXBlb2YgZC5yZXR1cm4mJih0aGlzLnJldHVybj12b2lkIDApfSRELnByb3RvdHlwZVsiZnVuY3Rpb24i''@;'; + put 'put ''PT10eXBlb2YgU3ltYm9sJiZTeW1ib2wuYXN5bmNJdGVyYXRvcnx8IkBAYXN5bmNJdGVyYXRvciJdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LCRELnByb3RvdHlwZS5uZXh0PWZ1bmN0aW9uKGQpe3JldHVybiB0aGlzLl9pbnZva2UoIm5leHQiLGQpfSwkRC5wcm90b3R5cGUudGhyb3c9ZnVu''@;'; + put 'put ''Y3Rpb24oZCl7cmV0dXJuIHRoaXMuX2ludm9rZSgidGhyb3ciLGQpfSwkRC5wcm90b3R5cGUucmV0dXJuPWZ1bmN0aW9uKGQpe3JldHVybiB0aGlzLl9pbnZva2UoInJldHVybiIsZCl9LCJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZTeW1ib2w7Y2xhc3MgdEx7c3RhdGljIGdldFRyYXBF''@;'; + put 'put ''bGVtZW50cygpe3JldHVyblsuLi5KMS5zdGF0ZS5mb2N1c1RyYXBJdGVtc119c3RhdGljIHNldFRyYXBFbGVtZW50cyhnKXtjb25zdCBoPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImh0bWwiKTtudWxsIT09aCYmZnVuY3Rpb24gcVYoZCwuLi5nKXtkJiZnLmZvckVhY2goKFtoLHZdKT0+eyEx''@;'; + put 'put ''PT09dnx8bnVsbD09PXY/ZC5yZW1vdmVBdHRyaWJ1dGUoaCk6ZC5zZXRBdHRyaWJ1dGUoaCx2KyIiKX0pfShoLFsiY2RzLWZvY3VzLXRyYXAiLCEhZy5sZW5ndGgmJiIiXSksSjEuc3RhdGUuZm9jdXNUcmFwSXRlbXM9Wy4uLmddfXN0YXRpYyByZW1vdmVUcmFwRWxlbWVudChnKXt0aGlzLmdl''@;'; + put 'put ''dFRyYXBFbGVtZW50cygpLmxlbmd0aDwxfHx0aGlzLnNldFRyYXBFbGVtZW50cyhbLi4udGhpcy5nZXRUcmFwRWxlbWVudHMoKS5maWx0ZXIoaD0+aC5mb2N1c1RyYXBJZCE9PWcuZm9jdXNUcmFwSWQpXSl9c3RhdGljIHNldEN1cnJlbnQoZyl7bnVsbCE9ZyYmZy5mb2N1c1RyYXBJZCYmdGhp''@;'; + put 'put ''cy5zZXRUcmFwRWxlbWVudHMoWy4uLnRoaXMuZ2V0VHJhcEVsZW1lbnRzKCkuZmlsdGVyKGg9PmguZm9jdXNUcmFwSWQhPT1nLmZvY3VzVHJhcElkKSxnXSl9c3RhdGljIGFjdGl2YXRlUHJldmlvdXNDdXJyZW50KCl7dGhpcy5zZXRUcmFwRWxlbWVudHMoWy4uLnRoaXMuZ2V0VHJhcEVsZW1l''@;'; + put 'put ''bnRzKCldLnNsaWNlKDAsLTEpKX1zdGF0aWMgZ2V0Q3VycmVudCgpe3JldHVybiBmdW5jdGlvbiBoSyhkKXtyZXR1cm4gZC5sZW5ndGg/ZFtkLmxlbmd0aC0xXTp2b2lkIDB9KHRoaXMuZ2V0VHJhcEVsZW1lbnRzKCkpfHxudWxsfX1jb25zdCBoMWU9YVgoMywoZCxnLGgpPT57IWZ1bmN0aW9u''@;'; + put 'put ''IElzZShkLGcpe3JldHVybiBnfHwoZz13aW5kb3cmJndpbmRvdy5jdXN0b21FbGVtZW50cyksIWd8fCEhZy5nZXQoZCl9KGQpfHxmdW5jdGlvbiBLSigpe3ZhciBkLGc7cmV0dXJuIG51bGw9PShnPW51bGw9PShkPW51bGw9PXdpbmRvdz92b2lkIDA6d2luZG93LmxvY2F0aW9uKT92b2lkIDA6''@;'; + put 'put ''ZC5ocmVmKT92b2lkIDA6Zy5pbmNsdWRlcygibG9jYWxob3N0OjYwMDYiKX0oKT8oaC5kZWZpbmUoZCxnKSx1VigpLHdpbmRvdyYmIU9iamVjdC5rZXlzKHdpbmRvdy5DRFMuX3N0YXRlLmVsZW1lbnRSZWdpc3RyeSkuc29tZSh2PT52PT09ZCkmJih3aW5kb3cuQ0RTLl9zdGF0ZS5lbGVtZW50''@;'; + put 'put ''UmVnaXN0cnk9R3ooZ3Moe30sd2luZG93LkNEUy5fc3RhdGUuZWxlbWVudFJlZ2lzdHJ5KSx7W2RdOnt9fSkpKTpONy53YXJuKGQrIiBoYXMgYWxyZWFkeSBiZWVuIHJlZ2lzdGVyZWQiKX0pO2Z1bmN0aW9uIENLKGQsZyl7SkooKSYmRUQoWyJjdXN0b21FbGVtZW50cyJdKSYmaDFlKGQsZyx3''@;'; + put 'put ''aW5kb3cuY3VzdG9tRWxlbWVudHMpfWxldCBrSz0hMTtmdW5jdGlvbiBkMWUoZCl7aWYoKGQ9TWF0aC50cnVuYyhkKXx8MCk8MCYmKGQrPXRoaXMubGVuZ3RoKSwhKGQ8MHx8ZD49dGhpcy5sZW5ndGgpKXJldHVybiB0aGlzW2RdfWlmKCFrSyl7a0s9ITA7Y29uc3QgZD1SZWZsZWN0LmdldFBy''@;'; + put 'put ''b3RvdHlwZU9mKEludDhBcnJheSk7Zm9yKGNvbnN0IGcgb2ZbQXJyYXksU3RyaW5nLGRdKU9iamVjdC5kZWZpbmVQcm9wZXJ0eShnLnByb3RvdHlwZSwiYXQiLHt2YWx1ZTpkMWUsd3JpdGFibGU6ITAsZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KX1sZXQgU0s9ITEsTUs9ITE7ZnVu''@;'; + put 'put ''Y3Rpb24gRUsoZCxnLGgpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGgse2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmhhc0F0dHJpYnV0ZShnKT90aGlzLmdldEF0dHJpYnV0ZShnKTpudWxsfSxzZXQ6ZnVuY3Rpb24odil7bnVsbCE9''@;'; + put 'put ''PXY/dGhpcy5zZXRBdHRyaWJ1dGUoZyx2KTp0aGlzLnJlbW92ZUF0dHJpYnV0ZShnKX19KX1mdW5jdGlvbiB4SyhkLGcsaCx2LHksQyxJKXt0cnl7dmFyIGo9ZFtDXShJKSx1ZT1qLnZhbHVlfWNhdGNoKF9lKXtyZXR1cm4gdm9pZCBoKF9lKX1qLmRvbmU/Zyh1ZSk6UHJvbWlzZS5yZXNvbHZl''@;'; + put 'put ''KHVlKS50aGVuKHYseSl9ZnVuY3Rpb24gVEsoZCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGc9dGhpcyxoPWFyZ3VtZW50cztyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24odix5KXt2YXIgQz1kLmFwcGx5KGcsaCk7ZnVuY3Rpb24gSSh1ZSl7eEsoQyx2LHksSSxqLCJuZXh0Iix1ZSl9ZnVu''@;'; + put 'put ''Y3Rpb24gaih1ZSl7eEsoQyx2LHksSSxqLCJ0aHJvdyIsdWUpfUkodm9pZCAwKX0pfX1TS3x8RWxlbWVudC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkoInJvbGUiKXx8KEVLKEVsZW1lbnQucHJvdG90eXBlLCJyb2xlIiwicm9sZSIpLFNLPSEwKSxNS3x8RWxlbWVudC5wcm90b3R5cGUuaGFz''@;'; + put 'put ''T3duUHJvcGVydHkoImFyaWFMYWJlbCIpfHwoTUs9ITAsWyJBY3RpdmVEZXNjZW5kYW50IiwiQXRvbWljIiwiQXV0b0NvbXBsZXRlIiwiQnVzeSIsIkNoZWNrZWQiLCJDb2xDb3VudCIsIkNvbEluZGV4IiwiQ29sU3BhbiIsIkNvbnRyb2xzIiwiQ3VycmVudCIsIkRlc2NyaWJlZEJ5IiwiRGV0''@;'; + put 'put ''YWlscyIsIkRpc2FibGVkIiwiRXJyb3JNZXNzYWdlIiwiRXhwYW5kZWQiLCJGbG93VG8iLCJIYXNQb3B1cCIsIkhpZGRlbiIsIkludmFsaWQiLCJLZXlTaG9ydGN1dHMiLCJMYWJlbCIsIkxhYmVsbGVkQnkiLCJMZXZlbCIsIkxpdmUiLCJNb2RhbCIsIk11bHRpTGluZSIsIk11bHRpU2VsZWN0''@;'; + put 'put ''YWJsZSIsIk9yaWVudGF0aW9uIiwiT3ducyIsIlBsYWNlaG9sZGVyIiwiUG9zSW5TZXQiLCJQcmVzc2VkIiwiUmVhZE9ubHkiLCJSZWxldmFudCIsIlJlcXVpcmVkIiwiUm9sZURlc2NyaXB0aW9uIiwiUm93Q291bnQiLCJSb3dJbmRleCIsIlJvd1NwYW4iLCJTZWxlY3RlZCIsIlNldFNpemUi''@;'; + put 'put ''LCJTb3J0IiwiVmFsdWVNYXgiLCJWYWx1ZU1pbiIsIlZhbHVlTm93IiwiVmFsdWVUZXh0Il0uZm9yRWFjaChkPT5FSyhFbGVtZW50LnByb3RvdHlwZSwiYXJpYS0iK2QudG9Mb3dlckNhc2UoKSwiYXJpYSIrZCkpKTtjb25zdCByaj13aW5kb3cuU2hhZG93Um9vdCYmKHZvaWQgMD09PXdpbmRv''@;'; + put 'put ''dy5TaGFkeUNTU3x8d2luZG93LlNoYWR5Q1NTLm5hdGl2ZVNoYWRvdykmJiJhZG9wdGVkU3R5bGVTaGVldHMiaW4gRG9jdW1lbnQucHJvdG90eXBlJiYicmVwbGFjZSJpbiBDU1NTdHlsZVNoZWV0LnByb3RvdHlwZSxpaj1TeW1ib2woKSxHeT1uZXcgV2Vha01hcDtjbGFzcyBaa3tjb25zdHJ1''@;'; + put 'put ''Y3RvcihnLGgsdil7aWYodGhpcy5fJGNzc1Jlc3VsdCQ9ITAsdiE9PWlqKXRocm93IEVycm9yKCJDU1NSZXN1bHQgaXMgbm90IGNvbnN0cnVjdGFibGUuIFVzZSBgdW5zYWZlQ1NTYCBvciBgY3NzYCBpbnN0ZWFkLiIpO3RoaXMuY3NzVGV4dD1nLHRoaXMudD1ofWdldCBzdHlsZVNoZWV0KCl7''@;'; + put 'put ''bGV0IGc9dGhpcy5vO2NvbnN0IGg9dGhpcy50O2lmKHJqJiZ2b2lkIDA9PT1nKXtjb25zdCB2PXZvaWQgMCE9PWgmJjE9PT1oLmxlbmd0aDt2JiYoZz1HeS5nZXQoaCkpLHZvaWQgMD09PWcmJigodGhpcy5vPWc9bmV3IENTU1N0eWxlU2hlZXQpLnJlcGxhY2VTeW5jKHRoaXMuY3NzVGV4dCks''@;'; + put 'put ''diYmR3kuc2V0KGgsZykpfXJldHVybiBnfXRvU3RyaW5nKCl7cmV0dXJuIHRoaXMuY3NzVGV4dH19Y29uc3Qgbkw9KGQsLi4uZyk9Pntjb25zdCBoPTE9PT1kLmxlbmd0aD9kWzBdOmcucmVkdWNlKCh2LHksQyk9PnYrKEk9PntpZighMD09PUkuXyRjc3NSZXN1bHQkKXJldHVybiBJLmNzc1Rl''@;'; + put 'put ''eHQ7aWYoIm51bWJlciI9PXR5cGVvZiBJKXJldHVybiBJO3Rocm93IEVycm9yKCJWYWx1ZSBwYXNzZWQgdG8gJ2NzcycgZnVuY3Rpb24gbXVzdCBiZSBhICdjc3MnIGZ1bmN0aW9uIHJlc3VsdDogIitJKyIuIFVzZSAndW5zYWZlQ1NTJyB0byBwYXNzIG5vbi1saXRlcmFsIHZhbHVlcywgYnV0''@;'; + put 'put ''IHRha2UgY2FyZSB0byBlbnN1cmUgcGFnZSBzZWN1cml0eS4iKX0pKHkpK2RbQysxXSxkWzBdKTtyZXR1cm4gbmV3IFprKGgsZCxpail9LHJMPXJqP2Q9PmQ6ZD0+ZCBpbnN0YW5jZW9mIENTU1N0eWxlU2hlZXQ/KGc9PntsZXQgaD0iIjtmb3IoY29uc3QgdiBvZiBnLmNzc1J1bGVzKWgrPXYu''@;'; + put 'put ''Y3NzVGV4dDtyZXR1cm4oZD0+bmV3IFprKCJzdHJpbmciPT10eXBlb2YgZD9kOmQrIiIsdm9pZCAwLGlqKSkoaCl9KShkKTpkO3ZhciBvajtjb25zdCBLNz13aW5kb3cudHJ1c3RlZFR5cGVzLERLPUs3P0s3LmVtcHR5U2NyaXB0OiIiLEdrPXdpbmRvdy5yZWFjdGl2ZUVsZW1lbnRQb2x5Zmls''@;'; + put 'put ''bFN1cHBvcnQsV2s9e3RvQXR0cmlidXRlKGQsZyl7c3dpdGNoKGcpe2Nhc2UgQm9vbGVhbjpkPWQ/REs6bnVsbDticmVhaztjYXNlIE9iamVjdDpjYXNlIEFycmF5OmQ9bnVsbD09ZD9kOkpTT04uc3RyaW5naWZ5KGQpfXJldHVybiBkfSxmcm9tQXR0cmlidXRlKGQsZyl7bGV0IGg9ZDtzd2l0''@;'; + put 'put ''Y2goZyl7Y2FzZSBCb29sZWFuOmg9bnVsbCE9PWQ7YnJlYWs7Y2FzZSBOdW1iZXI6aD1udWxsPT09ZD9udWxsOk51bWJlcihkKTticmVhaztjYXNlIE9iamVjdDpjYXNlIEFycmF5OnRyeXtoPUpTT04ucGFyc2UoZCl9Y2F0Y2godil7aD1udWxsfX1yZXR1cm4gaH19LFlrPShkLGcpPT5nIT09''@;'; + put 'put ''ZCYmKGc9PWd8fGQ9PWQpLGlMPXthdHRyaWJ1dGU6ITAsdHlwZTpTdHJpbmcsY29udmVydGVyOldrLHJlZmxlY3Q6ITEsaGFzQ2hhbmdlZDpZa307Y2xhc3MgJDcgZXh0ZW5kcyBIVE1MRWxlbWVudHtjb25zdHJ1Y3Rvcigpe3N1cGVyKCksdGhpcy5fJEVpPW5ldyBNYXAsdGhpcy5pc1VwZGF0''@;'; + put 'put ''ZVBlbmRpbmc9ITEsdGhpcy5oYXNVcGRhdGVkPSExLHRoaXMuXyRFbD1udWxsLHRoaXMudSgpfXN0YXRpYyBhZGRJbml0aWFsaXplcihnKXt2YXIgaDtudWxsIT09KGg9dGhpcy5oKSYmdm9pZCAwIT09aHx8KHRoaXMuaD1bXSksdGhpcy5oLnB1c2goZyl9c3RhdGljIGdldCBvYnNlcnZlZEF0''@;'; + put 'put ''dHJpYnV0ZXMoKXt0aGlzLmZpbmFsaXplKCk7Y29uc3QgZz1bXTtyZXR1cm4gdGhpcy5lbGVtZW50UHJvcGVydGllcy5mb3JFYWNoKChoLHYpPT57Y29uc3QgeT10aGlzLl8kRXAodixoKTt2b2lkIDAhPT15JiYodGhpcy5fJEV2LnNldCh5LHYpLGcucHVzaCh5KSl9KSxnfXN0YXRpYyBjcmVh''@;'; + put 'put ''dGVQcm9wZXJ0eShnLGg9aUwpe2lmKGguc3RhdGUmJihoLmF0dHJpYnV0ZT0hMSksdGhpcy5maW5hbGl6ZSgpLHRoaXMuZWxlbWVudFByb3BlcnRpZXMuc2V0KGcsaCksIWgubm9BY2Nlc3NvciYmIXRoaXMucHJvdG90eXBlLmhhc093blByb3BlcnR5KGcpKXtjb25zdCB2PSJzeW1ib2wiPT10''@;'; + put 'put ''eXBlb2YgZz9TeW1ib2woKToiX18iK2cseT10aGlzLmdldFByb3BlcnR5RGVzY3JpcHRvcihnLHYsaCk7dm9pZCAwIT09eSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMucHJvdG90eXBlLGcseSl9fXN0YXRpYyBnZXRQcm9wZXJ0eURlc2NyaXB0b3IoZyxoLHYpe3JldHVybntnZXQoKXty''@;'; + put 'put ''ZXR1cm4gdGhpc1toXX0sc2V0KHkpe2NvbnN0IEM9dGhpc1tnXTt0aGlzW2hdPXksdGhpcy5yZXF1ZXN0VXBkYXRlKGcsQyx2KX0sY29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITB9fXN0YXRpYyBnZXRQcm9wZXJ0eU9wdGlvbnMoZyl7cmV0dXJuIHRoaXMuZWxlbWVudFByb3BlcnRpZXMu''@;'; + put 'put ''Z2V0KGcpfHxpTH1zdGF0aWMgZmluYWxpemUoKXtpZih0aGlzLmhhc093blByb3BlcnR5KCJmaW5hbGl6ZWQiKSlyZXR1cm4hMTt0aGlzLmZpbmFsaXplZD0hMDtjb25zdCBnPU9iamVjdC5nZXRQcm90b3R5cGVPZih0aGlzKTtpZihnLmZpbmFsaXplKCksdGhpcy5lbGVtZW50UHJvcGVydGll''@;'; + put 'put ''cz1uZXcgTWFwKGcuZWxlbWVudFByb3BlcnRpZXMpLHRoaXMuXyRFdj1uZXcgTWFwLHRoaXMuaGFzT3duUHJvcGVydHkoInByb3BlcnRpZXMiKSl7Y29uc3QgaD10aGlzLnByb3BlcnRpZXMsdj1bLi4uT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoaCksLi4uT2JqZWN0LmdldE93blByb3Bl''@;'; + put 'put ''cnR5U3ltYm9scyhoKV07Zm9yKGNvbnN0IHkgb2Ygdil0aGlzLmNyZWF0ZVByb3BlcnR5KHksaFt5XSl9cmV0dXJuIHRoaXMuZWxlbWVudFN0eWxlcz10aGlzLmZpbmFsaXplU3R5bGVzKHRoaXMuc3R5bGVzKSwhMH1zdGF0aWMgZmluYWxpemVTdHlsZXMoZyl7Y29uc3QgaD1bXTtpZihBcnJh''@;'; + put 'put ''eS5pc0FycmF5KGcpKXtjb25zdCB2PW5ldyBTZXQoZy5mbGF0KDEvMCkucmV2ZXJzZSgpKTtmb3IoY29uc3QgeSBvZiB2KWgudW5zaGlmdChyTCh5KSl9ZWxzZSB2b2lkIDAhPT1nJiZoLnB1c2gockwoZykpO3JldHVybiBofXN0YXRpYyBfJEVwKGcsaCl7Y29uc3Qgdj1oLmF0dHJpYnV0ZTty''@;'; + put 'put ''ZXR1cm4hMT09PXY/dm9pZCAwOiJzdHJpbmciPT10eXBlb2Ygdj92OiJzdHJpbmciPT10eXBlb2YgZz9nLnRvTG93ZXJDYXNlKCk6dm9pZCAwfXUoKXt2YXIgZzt0aGlzLl8kRV89bmV3IFByb21pc2UoaD0+dGhpcy5lbmFibGVVcGRhdGluZz1oKSx0aGlzLl8kQUw9bmV3IE1hcCx0aGlzLl8k''@;'; + put 'put ''RWcoKSx0aGlzLnJlcXVlc3RVcGRhdGUoKSxudWxsPT09KGc9dGhpcy5jb25zdHJ1Y3Rvci5oKXx8dm9pZCAwPT09Z3x8Zy5mb3JFYWNoKGg9PmgodGhpcykpfWFkZENvbnRyb2xsZXIoZyl7dmFyIGgsdjsobnVsbCE9PShoPXRoaXMuXyRFUykmJnZvaWQgMCE9PWg/aDp0aGlzLl8kRVM9W10p''@;'; + put 'put ''LnB1c2goZyksdm9pZCAwIT09dGhpcy5yZW5kZXJSb290JiZ0aGlzLmlzQ29ubmVjdGVkJiYobnVsbD09PSh2PWcuaG9zdENvbm5lY3RlZCl8fHZvaWQgMD09PXZ8fHYuY2FsbChnKSl9cmVtb3ZlQ29udHJvbGxlcihnKXt2YXIgaDtudWxsPT09KGg9dGhpcy5fJEVTKXx8dm9pZCAwPT09aHx8''@;'; + put 'put ''aC5zcGxpY2UodGhpcy5fJEVTLmluZGV4T2YoZyk+Pj4wLDEpfV8kRWcoKXt0aGlzLmNvbnN0cnVjdG9yLmVsZW1lbnRQcm9wZXJ0aWVzLmZvckVhY2goKGcsaCk9Pnt0aGlzLmhhc093blByb3BlcnR5KGgpJiYodGhpcy5fJEVpLnNldChoLHRoaXNbaF0pLGRlbGV0ZSB0aGlzW2hdKX0pfWNy''@;'; + put 'put ''ZWF0ZVJlbmRlclJvb3QoKXt2YXIgZztjb25zdCBoPW51bGwhPT0oZz10aGlzLnNoYWRvd1Jvb3QpJiZ2b2lkIDAhPT1nP2c6dGhpcy5hdHRhY2hTaGFkb3codGhpcy5jb25zdHJ1Y3Rvci5zaGFkb3dSb290T3B0aW9ucyk7cmV0dXJuKChkLGcpPT57cmo/ZC5hZG9wdGVkU3R5bGVTaGVldHM9''@;'; + put 'put ''Zy5tYXAoaD0+aCBpbnN0YW5jZW9mIENTU1N0eWxlU2hlZXQ/aDpoLnN0eWxlU2hlZXQpOmcuZm9yRWFjaChoPT57Y29uc3Qgdj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpLHk9d2luZG93LmxpdE5vbmNlO3ZvaWQgMCE9PXkmJnYuc2V0QXR0cmlidXRlKCJub25jZSIseSksdi50''@;'; + put 'put ''ZXh0Q29udGVudD1oLmNzc1RleHQsZC5hcHBlbmRDaGlsZCh2KX0pfSkoaCx0aGlzLmNvbnN0cnVjdG9yLmVsZW1lbnRTdHlsZXMpLGh9Y29ubmVjdGVkQ2FsbGJhY2soKXt2YXIgZzt2b2lkIDA9PT10aGlzLnJlbmRlclJvb3QmJih0aGlzLnJlbmRlclJvb3Q9dGhpcy5jcmVhdGVSZW5kZXJS''@;'; + put 'put ''b290KCkpLHRoaXMuZW5hYmxlVXBkYXRpbmcoITApLG51bGw9PT0oZz10aGlzLl8kRVMpfHx2b2lkIDA9PT1nfHxnLmZvckVhY2goaD0+e3ZhciB2O3JldHVybiBudWxsPT09KHY9aC5ob3N0Q29ubmVjdGVkKXx8dm9pZCAwPT09dj92b2lkIDA6di5jYWxsKGgpfSl9ZW5hYmxlVXBkYXRpbmco''@;'; + put 'put ''Zyl7fWRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7dmFyIGc7bnVsbD09PShnPXRoaXMuXyRFUyl8fHZvaWQgMD09PWd8fGcuZm9yRWFjaChoPT57dmFyIHY7cmV0dXJuIG51bGw9PT0odj1oLmhvc3REaXNjb25uZWN0ZWQpfHx2b2lkIDA9PT12P3ZvaWQgMDp2LmNhbGwoaCl9KX1hdHRyaWJ1dGVD''@;'; + put 'put ''aGFuZ2VkQ2FsbGJhY2soZyxoLHYpe3RoaXMuXyRBSyhnLHYpfV8kRU8oZyxoLHY9aUwpe3ZhciB5LEM7Y29uc3QgST10aGlzLmNvbnN0cnVjdG9yLl8kRXAoZyx2KTtpZih2b2lkIDAhPT1JJiYhMD09PXYucmVmbGVjdCl7Y29uc3Qgaj0obnVsbCE9PShDPW51bGw9PT0oeT12LmNvbnZlcnRl''@;'; + put 'put ''cil8fHZvaWQgMD09PXk/dm9pZCAwOnkudG9BdHRyaWJ1dGUpJiZ2b2lkIDAhPT1DP0M6V2sudG9BdHRyaWJ1dGUpKGgsdi50eXBlKTt0aGlzLl8kRWw9ZyxudWxsPT1qP3RoaXMucmVtb3ZlQXR0cmlidXRlKEkpOnRoaXMuc2V0QXR0cmlidXRlKEksaiksdGhpcy5fJEVsPW51bGx9fV8kQUso''@;'; + put 'put ''ZyxoKXt2YXIgdix5O2NvbnN0IEM9dGhpcy5jb25zdHJ1Y3RvcixJPUMuXyRFdi5nZXQoZyk7aWYodm9pZCAwIT09SSYmdGhpcy5fJEVsIT09SSl7Y29uc3Qgaj1DLmdldFByb3BlcnR5T3B0aW9ucyhJKSx1ZT1qLmNvbnZlcnRlcixfZT1udWxsIT09KHk9bnVsbCE9PSh2PW51bGw9PXVlP3Zv''@;'; + put 'put ''aWQgMDp1ZS5mcm9tQXR0cmlidXRlKSYmdm9pZCAwIT09dj92OiJmdW5jdGlvbiI9PXR5cGVvZiB1ZT91ZTpudWxsKSYmdm9pZCAwIT09eT95OldrLmZyb21BdHRyaWJ1dGU7dGhpcy5fJEVsPUksdGhpc1tJXT1fZShoLGoudHlwZSksdGhpcy5fJEVsPW51bGx9fXJlcXVlc3RVcGRhdGUoZyxo''@;'; + put 'put ''LHYpe2xldCB5PSEwO3ZvaWQgMCE9PWcmJigoKHY9dnx8dGhpcy5jb25zdHJ1Y3Rvci5nZXRQcm9wZXJ0eU9wdGlvbnMoZykpLmhhc0NoYW5nZWR8fFlrKSh0aGlzW2ddLGgpPyh0aGlzLl8kQUwuaGFzKGcpfHx0aGlzLl8kQUwuc2V0KGcsaCksITA9PT12LnJlZmxlY3QmJnRoaXMuXyRFbCE9''@;'; + put 'put ''PWcmJih2b2lkIDA9PT10aGlzLl8kRUMmJih0aGlzLl8kRUM9bmV3IE1hcCksdGhpcy5fJEVDLnNldChnLHYpKSk6eT0hMSksIXRoaXMuaXNVcGRhdGVQZW5kaW5nJiZ5JiYodGhpcy5fJEVfPXRoaXMuXyRFaigpKX1fJEVqKCl7dmFyIGc9dGhpcztyZXR1cm4gVEsoZnVuY3Rpb24qKCl7Zy5p''@;'; + put 'put ''c1VwZGF0ZVBlbmRpbmc9ITA7dHJ5e3lpZWxkIGcuXyRFX31jYXRjaCh2KXtQcm9taXNlLnJlamVjdCh2KX1jb25zdCBoPWcuc2NoZWR1bGVVcGRhdGUoKTtyZXR1cm4gbnVsbCE9aCYmKHlpZWxkIGgpLCFnLmlzVXBkYXRlUGVuZGluZ30pKCl9c2NoZWR1bGVVcGRhdGUoKXtyZXR1cm4gdGhp''@;'; + put 'put ''cy5wZXJmb3JtVXBkYXRlKCl9cGVyZm9ybVVwZGF0ZSgpe3ZhciBnO2lmKCF0aGlzLmlzVXBkYXRlUGVuZGluZylyZXR1cm47dGhpcy5fJEVpJiYodGhpcy5fJEVpLmZvckVhY2goKHksQyk9PnRoaXNbQ109eSksdGhpcy5fJEVpPXZvaWQgMCk7bGV0IGg9ITE7Y29uc3Qgdj10aGlzLl8kQUw7''@;'; + put 'put ''dHJ5e2g9dGhpcy5zaG91bGRVcGRhdGUodiksaD8odGhpcy53aWxsVXBkYXRlKHYpLG51bGw9PT0oZz10aGlzLl8kRVMpfHx2b2lkIDA9PT1nfHxnLmZvckVhY2goeT0+e3ZhciBDO3JldHVybiBudWxsPT09KEM9eS5ob3N0VXBkYXRlKXx8dm9pZCAwPT09Qz92b2lkIDA6Qy5jYWxsKHkpfSks''@;'; + put 'put ''dGhpcy51cGRhdGUodikpOnRoaXMuXyRFaygpfWNhdGNoKHkpe3Rocm93IGg9ITEsdGhpcy5fJEVrKCkseX1oJiZ0aGlzLl8kQUUodil9d2lsbFVwZGF0ZShnKXt9XyRBRShnKXt2YXIgaDtudWxsPT09KGg9dGhpcy5fJEVTKXx8dm9pZCAwPT09aHx8aC5mb3JFYWNoKHY9Pnt2YXIgeTtyZXR1''@;'; + put 'put ''cm4gbnVsbD09PSh5PXYuaG9zdFVwZGF0ZWQpfHx2b2lkIDA9PT15P3ZvaWQgMDp5LmNhbGwodil9KSx0aGlzLmhhc1VwZGF0ZWR8fCh0aGlzLmhhc1VwZGF0ZWQ9ITAsdGhpcy5maXJzdFVwZGF0ZWQoZykpLHRoaXMudXBkYXRlZChnKX1fJEVrKCl7dGhpcy5fJEFMPW5ldyBNYXAsdGhpcy5p''@;'; + put 'put ''c1VwZGF0ZVBlbmRpbmc9ITF9Z2V0IHVwZGF0ZUNvbXBsZXRlKCl7cmV0dXJuIHRoaXMuZ2V0VXBkYXRlQ29tcGxldGUoKX1nZXRVcGRhdGVDb21wbGV0ZSgpe3JldHVybiB0aGlzLl8kRV99c2hvdWxkVXBkYXRlKGcpe3JldHVybiEwfXVwZGF0ZShnKXt2b2lkIDAhPT10aGlzLl8kRUMmJih0''@;'; + put 'put ''aGlzLl8kRUMuZm9yRWFjaCgoaCx2KT0+dGhpcy5fJEVPKHYsdGhpc1t2XSxoKSksdGhpcy5fJEVDPXZvaWQgMCksdGhpcy5fJEVrKCl9dXBkYXRlZChnKXt9Zmlyc3RVcGRhdGVkKGcpe319dmFyIFVrOyQ3LmZpbmFsaXplZD0hMCwkNy5lbGVtZW50UHJvcGVydGllcz1uZXcgTWFwLCQ3LmVs''@;'; + put 'put ''ZW1lbnRTdHlsZXM9W10sJDcuc2hhZG93Um9vdE9wdGlvbnM9e21vZGU6Im9wZW4ifSxudWxsPT1Ha3x8R2soe1JlYWN0aXZlRWxlbWVudDokN30pLChudWxsIT09KG9qPWdsb2JhbFRoaXMucmVhY3RpdmVFbGVtZW50VmVyc2lvbnMpJiZ2b2lkIDAhPT1vaj9vajpnbG9iYWxUaGlzLnJlYWN0''@;'; + put 'put ''aXZlRWxlbWVudFZlcnNpb25zPVtdKS5wdXNoKCIxLjMuNCIpO2NvbnN0IHE3PWdsb2JhbFRoaXMudHJ1c3RlZFR5cGVzLGFqPXE3P3E3LmNyZWF0ZVBvbGljeSgibGl0LWh0bWwiLHtjcmVhdGVIVE1MOmQ9PmR9KTp2b2lkIDAsQXA9YGxpdCQkeyhNYXRoLnJhbmRvbSgpKyIiKS5zbGljZSg5''@;'; + put 'put ''KX0kYCxldj0iPyIrQXAsV3k9YDwke2V2fT5gLFJhPWRvY3VtZW50LHVjPShkPSIiKT0+UmEuY3JlYXRlQ29tbWVudChkKSxRaz1kPT5udWxsPT09ZHx8Im9iamVjdCIhPXR5cGVvZiBkJiYiZnVuY3Rpb24iIT10eXBlb2YgZCxsaj1BcnJheS5pc0FycmF5LGFoPS88KD86KCEtLXxcL1teYS16''@;'; + put 'put ''QS1aXSl8KFwvP1thLXpBLVpdW14+XHNdKil8KFwvPyQpKS9nLGxoPS8tLT4vZyx0dj0vPi9nLHlwPVJlZ0V4cCgiPnxbIFx0XG5cZlxyXSg/OihbXlxcc1wiJz49L10rKShbIFx0XG5cZlxyXSo9WyBcdFxuXGZccl0qKD86W14gXHRcblxmXHJcIidgPD49XXwoXCJ8Jyl8KSl8JCkiLCJnIiks''@;'; + put 'put ''dWo9LycvZyxKaz0vIi9nLHdwPS9eKD86c2NyaXB0fHN0eWxlfHRleHRhcmVhfHRpdGxlKSQvaSxjaj1kPT4oZywuLi5oKT0+KHtfJGxpdFR5cGUkOmQsc3RyaW5nczpnLHZhbHVlczpofSksbzQ9Y2ooMSkscDFlPWNqKDIpLFl5PVN5bWJvbC5mb3IoImxpdC1ub0NoYW5nZSIpLE51PVN5bWJv''@;'; + put 'put ''bC5mb3IoImxpdC1ub3RoaW5nIiksTEs9bmV3IFdlYWtNYXAsT0s9KGQsZyxoKT0+e3ZhciB2LHk7Y29uc3QgQz1udWxsIT09KHY9bnVsbD09aD92b2lkIDA6aC5yZW5kZXJCZWZvcmUpJiZ2b2lkIDAhPT12P3Y6ZztsZXQgST1DLl8kbGl0UGFydCQ7aWYodm9pZCAwPT09SSl7Y29uc3Qgaj1u''@;'; + put 'put ''dWxsIT09KHk9bnVsbD09aD92b2lkIDA6aC5yZW5kZXJCZWZvcmUpJiZ2b2lkIDAhPT15P3k6bnVsbDtDLl8kbGl0UGFydCQ9ST1uZXcgUXkoZy5pbnNlcnRCZWZvcmUodWMoKSxqKSxqLHZvaWQgMCxudWxsIT1oP2g6e30pfXJldHVybiBJLl8kQUkoZCksSX0sVXk9UmEuY3JlYXRlVHJlZVdh''@;'; + put 'put ''bGtlcihSYSwxMjksbnVsbCwhMSk7Y2xhc3MgWGt7Y29uc3RydWN0b3Ioe3N0cmluZ3M6ZyxfJGxpdFR5cGUkOmh9LHYpe2xldCB5O3RoaXMucGFydHM9W107bGV0IEM9MCxJPTA7Y29uc3Qgaj1nLmxlbmd0aC0xLHVlPXRoaXMucGFydHMsW19lLEJlXT0oKGQsZyk9Pntjb25zdCBoPWQubGVu''@;'; + put 'put ''Z3RoLTEsdj1bXTtsZXQgeSxDPTI9PT1nPyI8c3ZnPiI6IiIsST1haDtmb3IobGV0IHVlPTA7dWU8aDt1ZSsrKXtjb25zdCBfZT1kW3VlXTtsZXQgQmUsTmUsS2U9LTEsZHQ9MDtmb3IoO2R0PF9lLmxlbmd0aCYmKEkubGFzdEluZGV4PWR0LE5lPUkuZXhlYyhfZSksbnVsbCE9PU5lKTspZHQ9''@;'; + put 'put ''SS5sYXN0SW5kZXgsST09PWFoPyIhLS0iPT09TmVbMV0/ST1saDp2b2lkIDAhPT1OZVsxXT9JPXR2OnZvaWQgMCE9PU5lWzJdPyh3cC50ZXN0KE5lWzJdKSYmKHk9UmVnRXhwKCI8LyIrTmVbMl0sImciKSksST15cCk6dm9pZCAwIT09TmVbM10mJihJPXlwKTpJPT09eXA/Ij4iPT09TmVbMF0/''@;'; + put 'put ''KEk9bnVsbCE9eT95OmFoLEtlPS0xKTp2b2lkIDA9PT1OZVsxXT9LZT0tMjooS2U9SS5sYXN0SW5kZXgtTmVbMl0ubGVuZ3RoLEJlPU5lWzFdLEk9dm9pZCAwPT09TmVbM10/eXA6JyInPT09TmVbM10/Sms6dWopOkk9PT1Ka3x8ST09PXVqP0k9eXA6ST09PWxofHxJPT09dHY/ST1haDooST15''@;'; + put 'put ''cCx5PXZvaWQgMCk7Y29uc3QgT3Q9ST09PXlwJiZkW3VlKzFdLnN0YXJ0c1dpdGgoIi8+Iik/IiAiOiIiO0MrPUk9PT1haD9fZStXeTpLZT49MD8odi5wdXNoKEJlKSxfZS5zbGljZSgwLEtlKSsiJGxpdCQiK19lLnNsaWNlKEtlKStBcCtPdCk6X2UrQXArKC0yPT09S2U/KHYucHVzaCh2b2lk''@;'; + put 'put ''IDApLHVlKTpPdCl9Y29uc3Qgaj1DKyhkW2hdfHwiPD8+IikrKDI9PT1nPyI8L3N2Zz4iOiIiKTtpZighQXJyYXkuaXNBcnJheShkKXx8IWQuaGFzT3duUHJvcGVydHkoInJhdyIpKXRocm93IEVycm9yKCJpbnZhbGlkIHRlbXBsYXRlIHN0cmluZ3MgYXJyYXkiKTtyZXR1cm5bdm9pZCAwIT09''@;'; + put 'put ''YWo/YWouY3JlYXRlSFRNTChqKTpqLHZdfSkoZyxoKTtpZih0aGlzLmVsPVhrLmNyZWF0ZUVsZW1lbnQoX2UsdiksVXkuY3VycmVudE5vZGU9dGhpcy5lbC5jb250ZW50LDI9PT1oKXtjb25zdCBOZT10aGlzLmVsLmNvbnRlbnQsS2U9TmUuZmlyc3RDaGlsZDtLZS5yZW1vdmUoKSxOZS5hcHBl''@;'; + put 'put ''bmQoLi4uS2UuY2hpbGROb2Rlcyl9Zm9yKDtudWxsIT09KHk9VXkubmV4dE5vZGUoKSkmJnVlLmxlbmd0aDxqOyl7aWYoMT09PXkubm9kZVR5cGUpe2lmKHkuaGFzQXR0cmlidXRlcygpKXtjb25zdCBOZT1bXTtmb3IoY29uc3QgS2Ugb2YgeS5nZXRBdHRyaWJ1dGVOYW1lcygpKWlmKEtlLmVu''@;'; + put 'put ''ZHNXaXRoKCIkbGl0JCIpfHxLZS5zdGFydHNXaXRoKEFwKSl7Y29uc3QgZHQ9QmVbSSsrXTtpZihOZS5wdXNoKEtlKSx2b2lkIDAhPT1kdCl7Y29uc3QgT3Q9eS5nZXRBdHRyaWJ1dGUoZHQudG9Mb3dlckNhc2UoKSsiJGxpdCQiKS5zcGxpdChBcCksJHQ9LyhbLj9AXSk/KC4qKS8uZXhlYyhk''@;'; + put 'put ''dCk7dWUucHVzaCh7dHlwZToxLGluZGV4OkMsbmFtZTokdFsyXSxzdHJpbmdzOk90LGN0b3I6Ii4iPT09JHRbMV0/Qks6Ij8iPT09JHRbMV0/aGo6IkAiPT09JHRbMV0/UEs6S2t9KX1lbHNlIHVlLnB1c2goe3R5cGU6NixpbmRleDpDfSl9Zm9yKGNvbnN0IEtlIG9mIE5lKXkucmVtb3ZlQXR0''@;'; + put 'put ''cmlidXRlKEtlKX1pZih3cC50ZXN0KHkudGFnTmFtZSkpe2NvbnN0IE5lPXkudGV4dENvbnRlbnQuc3BsaXQoQXApLEtlPU5lLmxlbmd0aC0xO2lmKEtlPjApe3kudGV4dENvbnRlbnQ9cTc/cTcuZW1wdHlTY3JpcHQ6IiI7Zm9yKGxldCBkdD0wO2R0PEtlO2R0KyspeS5hcHBlbmQoTmVbZHRd''@;'; + put 'put ''LHVjKCkpLFV5Lm5leHROb2RlKCksdWUucHVzaCh7dHlwZToyLGluZGV4OisrQ30pO3kuYXBwZW5kKE5lW0tlXSx1YygpKX19fWVsc2UgaWYoOD09PXkubm9kZVR5cGUpaWYoeS5kYXRhPT09ZXYpdWUucHVzaCh7dHlwZToyLGluZGV4OkN9KTtlbHNle2xldCBOZT0tMTtmb3IoOy0xIT09KE5l''@;'; + put 'put ''PXkuZGF0YS5pbmRleE9mKEFwLE5lKzEpKTspdWUucHVzaCh7dHlwZTo3LGluZGV4OkN9KSxOZSs9QXAubGVuZ3RoLTF9QysrfX1zdGF0aWMgY3JlYXRlRWxlbWVudChnLGgpe2NvbnN0IHY9UmEuY3JlYXRlRWxlbWVudCgidGVtcGxhdGUiKTtyZXR1cm4gdi5pbm5lckhUTUw9Zyx2fX1mdW5j''@;'; + put 'put ''dGlvbiBudihkLGcsaD1kLHYpe3ZhciB5LEMsSSxqO2lmKGc9PT1ZeSlyZXR1cm4gZztsZXQgdWU9dm9pZCAwIT09dj9udWxsPT09KHk9aC5fJENsKXx8dm9pZCAwPT09eT92b2lkIDA6eVt2XTpoLl8kQ3U7Y29uc3QgX2U9UWsoZyk/dm9pZCAwOmcuXyRsaXREaXJlY3RpdmUkO3JldHVybihu''@;'; + put 'put ''dWxsPT11ZT92b2lkIDA6dWUuY29uc3RydWN0b3IpIT09X2UmJihudWxsPT09KEM9bnVsbD09dWU/dm9pZCAwOnVlLl8kQU8pfHx2b2lkIDA9PT1DfHxDLmNhbGwodWUsITEpLHZvaWQgMD09PV9lP3VlPXZvaWQgMDoodWU9bmV3IF9lKGQpLHVlLl8kQVQoZCxoLHYpKSx2b2lkIDAhPT12Pyhu''@;'; + put 'put ''dWxsIT09KEk9KGo9aCkuXyRDbCkmJnZvaWQgMCE9PUk/STpqLl8kQ2w9W10pW3ZdPXVlOmguXyRDdT11ZSksdm9pZCAwIT09dWUmJihnPW52KGQsdWUuXyRBUyhkLGcudmFsdWVzKSx1ZSx2KSksZ31jbGFzcyBmantjb25zdHJ1Y3RvcihnLGgpe3RoaXMudj1bXSx0aGlzLl8kQU49dm9pZCAw''@;'; + put 'put ''LHRoaXMuXyRBRD1nLHRoaXMuXyRBTT1ofWdldCBwYXJlbnROb2RlKCl7cmV0dXJuIHRoaXMuXyRBTS5wYXJlbnROb2RlfWdldCBfJEFVKCl7cmV0dXJuIHRoaXMuXyRBTS5fJEFVfXAoZyl7dmFyIGg7Y29uc3R7ZWw6e2NvbnRlbnQ6dn0scGFydHM6eX09dGhpcy5fJEFELEM9KG51bGwhPT0o''@;'; + put 'put ''aD1udWxsPT1nP3ZvaWQgMDpnLmNyZWF0aW9uU2NvcGUpJiZ2b2lkIDAhPT1oP2g6UmEpLmltcG9ydE5vZGUodiwhMCk7VXkuY3VycmVudE5vZGU9QztsZXQgST1VeS5uZXh0Tm9kZSgpLGo9MCx1ZT0wLF9lPXlbMF07Zm9yKDt2b2lkIDAhPT1fZTspe2lmKGo9PT1fZS5pbmRleCl7bGV0IEJl''@;'; + put 'put ''OzI9PT1fZS50eXBlP0JlPW5ldyBReShJLEkubmV4dFNpYmxpbmcsdGhpcyxnKToxPT09X2UudHlwZT9CZT1uZXcgX2UuY3RvcihJLF9lLm5hbWUsX2Uuc3RyaW5ncyx0aGlzLGcpOjY9PT1fZS50eXBlJiYoQmU9bmV3IEZLKEksdGhpcyxnKSksdGhpcy52LnB1c2goQmUpLF9lPXlbKyt1ZV19''@;'; + put 'put ''aiE9PShudWxsPT1fZT92b2lkIDA6X2UuaW5kZXgpJiYoST1VeS5uZXh0Tm9kZSgpLGorKyl9cmV0dXJuIEN9bShnKXtsZXQgaD0wO2Zvcihjb25zdCB2IG9mIHRoaXMudil2b2lkIDAhPT12JiYodm9pZCAwIT09di5zdHJpbmdzPyh2Ll8kQUkoZyx2LGgpLGgrPXYuc3RyaW5ncy5sZW5ndGgt''@;'; + put 'put ''Mik6di5fJEFJKGdbaF0pKSxoKyt9fWNsYXNzIFF5e2NvbnN0cnVjdG9yKGcsaCx2LHkpe3ZhciBDO3RoaXMudHlwZT0yLHRoaXMuXyRBSD1OdSx0aGlzLl8kQU49dm9pZCAwLHRoaXMuXyRBQT1nLHRoaXMuXyRBQj1oLHRoaXMuXyRBTT12LHRoaXMub3B0aW9ucz15LHRoaXMuXyRDXz1udWxs''@;'; + put 'put ''PT09KEM9bnVsbD09eT92b2lkIDA6eS5pc0Nvbm5lY3RlZCl8fHZvaWQgMD09PUN8fEN9Z2V0IF8kQVUoKXt2YXIgZyxoO3JldHVybiBudWxsIT09KGg9bnVsbD09PShnPXRoaXMuXyRBTSl8fHZvaWQgMD09PWc/dm9pZCAwOmcuXyRBVSkmJnZvaWQgMCE9PWg/aDp0aGlzLl8kQ199Z2V0IHBh''@;'; + put 'put ''cmVudE5vZGUoKXtsZXQgZz10aGlzLl8kQUEucGFyZW50Tm9kZTtjb25zdCBoPXRoaXMuXyRBTTtyZXR1cm4gdm9pZCAwIT09aCYmMTE9PT1nLm5vZGVUeXBlJiYoZz1oLnBhcmVudE5vZGUpLGd9Z2V0IHN0YXJ0Tm9kZSgpe3JldHVybiB0aGlzLl8kQUF9Z2V0IGVuZE5vZGUoKXtyZXR1cm4g''@;'; + put 'put ''dGhpcy5fJEFCfV8kQUkoZyxoPXRoaXMpe2c9bnYodGhpcyxnLGgpLFFrKGcpP2c9PT1OdXx8bnVsbD09Z3x8IiI9PT1nPyh0aGlzLl8kQUghPT1OdSYmdGhpcy5fJEFSKCksdGhpcy5fJEFIPU51KTpnIT09dGhpcy5fJEFIJiZnIT09WXkmJnRoaXMuVChnKTp2b2lkIDAhPT1nLl8kbGl0VHlw''@;'; + put 'put ''ZSQ/dGhpcy4kKGcpOnZvaWQgMCE9PWcubm9kZVR5cGU/dGhpcy5rKGcpOihkPT5saihkKXx8ImZ1bmN0aW9uIj09dHlwZW9mKG51bGw9PWQ/dm9pZCAwOmRbU3ltYm9sLml0ZXJhdG9yXSkpKGcpP3RoaXMuUyhnKTp0aGlzLlQoZyl9aihnLGg9dGhpcy5fJEFCKXtyZXR1cm4gdGhpcy5fJEFB''@;'; + put 'put ''LnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGcsaCl9ayhnKXt0aGlzLl8kQUghPT1nJiYodGhpcy5fJEFSKCksdGhpcy5fJEFIPXRoaXMuaihnKSl9VChnKXt0aGlzLl8kQUghPT1OdSYmUWsodGhpcy5fJEFIKT90aGlzLl8kQUEubmV4dFNpYmxpbmcuZGF0YT1nOnRoaXMuayhSYS5jcmVhdGVU''@;'; + put 'put ''ZXh0Tm9kZShnKSksdGhpcy5fJEFIPWd9JChnKXt2YXIgaDtjb25zdHt2YWx1ZXM6dixfJGxpdFR5cGUkOnl9PWcsQz0ibnVtYmVyIj09dHlwZW9mIHk/dGhpcy5fJEFDKGcpOih2b2lkIDA9PT15LmVsJiYoeS5lbD1Yay5jcmVhdGVFbGVtZW50KHkuaCx0aGlzLm9wdGlvbnMpKSx5KTtpZigo''@;'; + put 'put ''bnVsbD09PShoPXRoaXMuXyRBSCl8fHZvaWQgMD09PWg/dm9pZCAwOmguXyRBRCk9PT1DKXRoaXMuXyRBSC5tKHYpO2Vsc2V7Y29uc3QgST1uZXcgZmooQyx0aGlzKSxqPUkucCh0aGlzLm9wdGlvbnMpO0kubSh2KSx0aGlzLmsoaiksdGhpcy5fJEFIPUl9fV8kQUMoZyl7bGV0IGg9TEsuZ2V0''@;'; + put 'put ''KGcuc3RyaW5ncyk7cmV0dXJuIHZvaWQgMD09PWgmJkxLLnNldChnLnN0cmluZ3MsaD1uZXcgWGsoZykpLGh9UyhnKXtsaih0aGlzLl8kQUgpfHwodGhpcy5fJEFIPVtdLHRoaXMuXyRBUigpKTtjb25zdCBoPXRoaXMuXyRBSDtsZXQgdix5PTA7Zm9yKGNvbnN0IEMgb2YgZyl5PT09aC5sZW5n''@;'; + put 'put ''dGg/aC5wdXNoKHY9bmV3IFF5KHRoaXMuaih1YygpKSx0aGlzLmoodWMoKSksdGhpcyx0aGlzLm9wdGlvbnMpKTp2PWhbeV0sdi5fJEFJKEMpLHkrKzt5PGgubGVuZ3RoJiYodGhpcy5fJEFSKHYmJnYuXyRBQi5uZXh0U2libGluZyx5KSxoLmxlbmd0aD15KX1fJEFSKGc9dGhpcy5fJEFBLm5l''@;'; + put 'put ''eHRTaWJsaW5nLGgpe3ZhciB2O2ZvcihudWxsPT09KHY9dGhpcy5fJEFQKXx8dm9pZCAwPT09dnx8di5jYWxsKHRoaXMsITEsITAsaCk7ZyYmZyE9PXRoaXMuXyRBQjspe2NvbnN0IHk9Zy5uZXh0U2libGluZztnLnJlbW92ZSgpLGc9eX19c2V0Q29ubmVjdGVkKGcpe3ZhciBoO3ZvaWQgMD09''@;'; + put 'put ''PXRoaXMuXyRBTSYmKHRoaXMuXyRDXz1nLG51bGw9PT0oaD10aGlzLl8kQVApfHx2b2lkIDA9PT1ofHxoLmNhbGwodGhpcyxnKSl9fWNsYXNzIEtre2NvbnN0cnVjdG9yKGcsaCx2LHksQyl7dGhpcy50eXBlPTEsdGhpcy5fJEFIPU51LHRoaXMuXyRBTj12b2lkIDAsdGhpcy5lbGVtZW50PWcs''@;'; + put 'put ''dGhpcy5uYW1lPWgsdGhpcy5fJEFNPXksdGhpcy5vcHRpb25zPUMsdi5sZW5ndGg+Mnx8IiIhPT12WzBdfHwiIiE9PXZbMV0/KHRoaXMuXyRBSD1BcnJheSh2Lmxlbmd0aC0xKS5maWxsKG5ldyBTdHJpbmcpLHRoaXMuc3RyaW5ncz12KTp0aGlzLl8kQUg9TnV9Z2V0IHRhZ05hbWUoKXtyZXR1''@;'; + put 'put ''cm4gdGhpcy5lbGVtZW50LnRhZ05hbWV9Z2V0IF8kQVUoKXtyZXR1cm4gdGhpcy5fJEFNLl8kQVV9XyRBSShnLGg9dGhpcyx2LHkpe2NvbnN0IEM9dGhpcy5zdHJpbmdzO2xldCBJPSExO2lmKHZvaWQgMD09PUMpZz1udih0aGlzLGcsaCwwKSxJPSFRayhnKXx8ZyE9PXRoaXMuXyRBSCYmZyE9''@;'; + put 'put ''PVl5LEkmJih0aGlzLl8kQUg9Zyk7ZWxzZXtjb25zdCBqPWc7bGV0IHVlLF9lO2ZvcihnPUNbMF0sdWU9MDt1ZTxDLmxlbmd0aC0xO3VlKyspX2U9bnYodGhpcyxqW3YrdWVdLGgsdWUpLF9lPT09WXkmJihfZT10aGlzLl8kQUhbdWVdKSxJfHwoST0hUWsoX2UpfHxfZSE9PXRoaXMuXyRBSFt1''@;'; + put 'put ''ZV0pLF9lPT09TnU/Zz1OdTpnIT09TnUmJihnKz0obnVsbCE9X2U/X2U6IiIpK0NbdWUrMV0pLHRoaXMuXyRBSFt1ZV09X2V9SSYmIXkmJnRoaXMuUChnKX1QKGcpe2c9PT1OdT90aGlzLmVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKHRoaXMubmFtZSk6dGhpcy5lbGVtZW50LnNldEF0dHJpYnV0''@;'; + put 'put ''ZSh0aGlzLm5hbWUsbnVsbCE9Zz9nOiIiKX19Y2xhc3MgQksgZXh0ZW5kcyBLa3tjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy50eXBlPTN9UChnKXt0aGlzLmVsZW1lbnRbdGhpcy5uYW1lXT1nPT09TnU/dm9pZCAwOmd9fWNvbnN0IG9MPXE3P3E3LmVtcHR5U2NyaXB0''@;'; + put 'put ''OiIiO2NsYXNzIGhqIGV4dGVuZHMgS2t7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMudHlwZT00fVAoZyl7ZyYmZyE9PU51P3RoaXMuZWxlbWVudC5zZXRBdHRyaWJ1dGUodGhpcy5uYW1lLG9MKTp0aGlzLmVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKHRoaXMubmFtZSl9''@;'; + put 'put ''fWNsYXNzIFBLIGV4dGVuZHMgS2t7Y29uc3RydWN0b3IoZyxoLHYseSxDKXtzdXBlcihnLGgsdix5LEMpLHRoaXMudHlwZT01fV8kQUkoZyxoPXRoaXMpe3ZhciB2O2lmKChnPW51bGwhPT0odj1udih0aGlzLGcsaCwwKSkmJnZvaWQgMCE9PXY/djpOdSk9PT1ZeSlyZXR1cm47Y29uc3QgeT10''@;'; + put 'put ''aGlzLl8kQUgsQz1nPT09TnUmJnkhPT1OdXx8Zy5jYXB0dXJlIT09eS5jYXB0dXJlfHxnLm9uY2UhPT15Lm9uY2V8fGcucGFzc2l2ZSE9PXkucGFzc2l2ZSxJPWchPT1OdSYmKHk9PT1OdXx8Qyk7QyYmdGhpcy5lbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIodGhpcy5uYW1lLHRoaXMseSks''@;'; + put 'put ''SSYmdGhpcy5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIodGhpcy5uYW1lLHRoaXMsZyksdGhpcy5fJEFIPWd9aGFuZGxlRXZlbnQoZyl7dmFyIGgsdjsiZnVuY3Rpb24iPT10eXBlb2YgdGhpcy5fJEFIP3RoaXMuXyRBSC5jYWxsKG51bGwhPT0odj1udWxsPT09KGg9dGhpcy5vcHRpb25zKXx8''@;'; + put 'put ''dm9pZCAwPT09aD92b2lkIDA6aC5ob3N0KSYmdm9pZCAwIT09dj92OnRoaXMuZWxlbWVudCxnKTp0aGlzLl8kQUguaGFuZGxlRXZlbnQoZyl9fWNsYXNzIEZLe2NvbnN0cnVjdG9yKGcsaCx2KXt0aGlzLmVsZW1lbnQ9Zyx0aGlzLnR5cGU9Nix0aGlzLl8kQU49dm9pZCAwLHRoaXMuXyRBTT1o''@;'; + put 'put ''LHRoaXMub3B0aW9ucz12fWdldCBfJEFVKCl7cmV0dXJuIHRoaXMuXyRBTS5fJEFVfV8kQUkoZyl7bnYodGhpcyxnKX19Y29uc3QgZGo9d2luZG93LmxpdEh0bWxQb2x5ZmlsbFN1cHBvcnQ7dmFyIHBqLGFMO251bGw9PWRqfHxkaihYayxReSksKG51bGwhPT0oVWs9Z2xvYmFsVGhpcy5saXRI''@;'; + put 'put ''dG1sVmVyc2lvbnMpJiZ2b2lkIDAhPT1Vaz9VazpnbG9iYWxUaGlzLmxpdEh0bWxWZXJzaW9ucz1bXSkucHVzaCgiMi4yLjciKTtjbGFzcyBKeSBleHRlbmRzICQ3e2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLnJlbmRlck9wdGlvbnM9e2hvc3Q6dGhpc30sdGhpcy5f''@;'; + put 'put ''JERvPXZvaWQgMH1jcmVhdGVSZW5kZXJSb290KCl7dmFyIGcsaDtjb25zdCB2PXN1cGVyLmNyZWF0ZVJlbmRlclJvb3QoKTtyZXR1cm4gbnVsbCE9PShnPShoPXRoaXMucmVuZGVyT3B0aW9ucykucmVuZGVyQmVmb3JlKSYmdm9pZCAwIT09Z3x8KGgucmVuZGVyQmVmb3JlPXYuZmlyc3RDaGls''@;'; + put 'put ''ZCksdn11cGRhdGUoZyl7Y29uc3QgaD10aGlzLnJlbmRlcigpO3RoaXMuaGFzVXBkYXRlZHx8KHRoaXMucmVuZGVyT3B0aW9ucy5pc0Nvbm5lY3RlZD10aGlzLmlzQ29ubmVjdGVkKSxzdXBlci51cGRhdGUoZyksdGhpcy5fJERvPU9LKGgsdGhpcy5yZW5kZXJSb290LHRoaXMucmVuZGVyT3B0''@;'; + put 'put ''aW9ucyl9Y29ubmVjdGVkQ2FsbGJhY2soKXt2YXIgZztzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLG51bGw9PT0oZz10aGlzLl8kRG8pfHx2b2lkIDA9PT1nfHxnLnNldENvbm5lY3RlZCghMCl9ZGlzY29ubmVjdGVkQ2FsbGJhY2soKXt2YXIgZztzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFj''@;'; + put 'put ''aygpLG51bGw9PT0oZz10aGlzLl8kRG8pfHx2b2lkIDA9PT1nfHxnLnNldENvbm5lY3RlZCghMSl9cmVuZGVyKCl7cmV0dXJuIFl5fX1KeS5maW5hbGl6ZWQ9ITAsSnkuXyRsaXRFbGVtZW50JD0hMCxudWxsPT09KHBqPWdsb2JhbFRoaXMubGl0RWxlbWVudEh5ZHJhdGVTdXBwb3J0KXx8dm9p''@;'; + put 'put ''ZCAwPT09cGp8fHBqLmNhbGwoZ2xvYmFsVGhpcyx7TGl0RWxlbWVudDpKeX0pO2NvbnN0IGdqPWdsb2JhbFRoaXMubGl0RWxlbWVudFBvbHlmaWxsU3VwcG9ydDtudWxsPT1nanx8Z2ooe0xpdEVsZW1lbnQ6Snl9KSwobnVsbCE9PShhTD1nbG9iYWxUaGlzLmxpdEVsZW1lbnRWZXJzaW9ucykm''@;'; + put 'put ''JnZvaWQgMCE9PWFMP2FMOmdsb2JhbFRoaXMubGl0RWxlbWVudFZlcnNpb25zPVtdKS5wdXNoKCIzLjIuMiIpO2NvbnN0IEhLPW5MYEBjaGFyc2V0ICJVVEYtOCI7Omhvc3QsOnJvb3R7LS3OtDI6dmFyKC0tY2RzLWdsb2JhbC1sYXlvdXQtc3BhY2UteHhzLCBjYWxjKDQgKiAxcmVtIC8gdmFy''@;'; + put 'put ''KC0tY2RzLWdsb2JhbC1iYXNlLCAyMCkpKTstLc60Mzp2YXIoLS1jZHMtZ2xvYmFsLWxheW91dC1zcGFjZS14cywgY2FsYyg4ICogMXJlbSAvIHZhcigtLWNkcy1nbG9iYWwtYmFzZSwgMjApKSk7LS3OtDQ6dmFyKC0tY2RzLWdsb2JhbC1sYXlvdXQtc3BhY2Utc20sIGNhbGMoMTIgKiAxcmVt''@;'; + put 'put ''IC8gdmFyKC0tY2RzLWdsb2JhbC1iYXNlLCAyMCkpKTstLc60NTp2YXIoLS1jZHMtZ2xvYmFsLWxheW91dC1zcGFjZS1tZCwgY2FsYygxNiAqIDFyZW0gLyB2YXIoLS1jZHMtZ2xvYmFsLWJhc2UsIDIwKSkpOy0tzrQ2OnZhcigtLWNkcy1nbG9iYWwtbGF5b3V0LXNwYWNlLWxnLCBjYWxjKDI0''@;'; + put 'put ''ICogMXJlbSAvIHZhcigtLWNkcy1nbG9iYWwtYmFzZSwgMjApKSk7LS3OtDc6dmFyKC0tY2RzLWdsb2JhbC1sYXlvdXQtc3BhY2UteGwsIGNhbGMoMzIgKiAxcmVtIC8gdmFyKC0tY2RzLWdsb2JhbC1iYXNlLCAyMCkpKX1bY2RzLWxheW91dH49IndyYXA6bm9uZSJde2ZsZXgtd3JhcDpub3dy''@;'; + put 'put ''YXAhaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0iYWxpZ246c3RyZXRjaCJde2ZsZXgtZ3JvdzoxIWltcG9ydGFudH1bY2RzLWxheW91dCo9ImFsaWduOnNocmluayJde2ZsZXgtc2hyaW5rOjEhaW1wb3J0YW50O2ZsZXgtZ3JvdzowIWltcG9ydGFudH1bY2RzLWxheW91dH49aG9yaXpvbnRhbF17''@;'; + put 'put ''ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOnJvdztmbGV4LXdyYXA6d3JhcDtqdXN0aWZ5LWl0ZW1zOmZsZXgtc3RhcnQ7YWxpZ24taXRlbXM6ZmxleC1zdGFydDt3aWR0aDoxMDAlO21hcmdpbjowO21pbi1oZWlnaHQ6MH1bY2RzLWxheW91dH49aG9yaXpvbnRhbF0+W2Nkcy1sYXlvdXR+''@;'; + put 'put ''PWhvcml6b250YWxdLFtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXT5bY2RzLWxheW91dH49dmVydGljYWxdLFtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXT5bY2RzLXRleHRde3dpZHRoOmluaXRpYWwhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXVtjZHMtbGF5b3V0Kj0iYWxpZ246''@;'; + put 'put ''dG9wIl17YWxpZ24taXRlbXM6ZmxleC1zdGFydH1bY2RzLWxheW91dH49aG9yaXpvbnRhbF1bY2RzLWxheW91dCo9ImFsaWduOmxlZnQiXXtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydH1bY2RzLWxheW91dH49aG9yaXpvbnRhbF1bY2RzLWxheW91dCo9ImFsaWduOnJpZ2h0Il17anVzdGlm''@;'; + put 'put ''eS1jb250ZW50OmZsZXgtZW5kfVtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXVtjZHMtbGF5b3V0Kj0iYWxpZ246dmVydGljYWwtY2VudGVyIl17YWxpZ24taXRlbXM6Y2VudGVyO2FsaWduLWNvbnRlbnQ6Y2VudGVyfVtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXVtjZHMtbGF5b3V0Kj0iYWxpZ246''@;'; + put 'put ''aG9yaXpvbnRhbC1jZW50ZXIiXXtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfVtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXVtjZHMtbGF5b3V0Kj0iYWxpZ246Y2VudGVyIl17YWxpZ24taXRlbXM6Y2VudGVyO2FsaWduLWNvbnRlbnQ6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXJ9W2Nkcy1s''@;'; + put 'put ''YXlvdXR+PWhvcml6b250YWxdW2Nkcy1sYXlvdXQqPSJvcmRlcjpyZXZlcnNlIl17ZmxleC1kaXJlY3Rpb246cm93LXJldmVyc2V9W2Nkcy1sYXlvdXR+PWhvcml6b250YWxdW2Nkcy1sYXlvdXQqPSJhbGlnbjpob3Jpem9udGFsLXN0cmV0Y2giXXtqdXN0aWZ5LWNvbnRlbnQ6c3RyZXRjaDtm''@;'; + put 'put ''bGV4LWdyb3c6MX1bY2RzLWxheW91dH49aG9yaXpvbnRhbF1bY2RzLWxheW91dCo9ImFsaWduOmhvcml6b250YWwtc3RyZXRjaCJdPip7ZmxleC1ncm93OjF9W2Nkcy1sYXlvdXR+PWhvcml6b250YWxdW2Nkcy1sYXlvdXQqPSJhbGlnbjpzdHJldGNoIl17YWxpZ24taXRlbXM6c3RyZXRjaDth''@;'; + put 'put ''bGlnbi1jb250ZW50OnN0cmV0Y2g7ZmxleC1ncm93OjF9W2Nkcy1sYXlvdXR+PWhvcml6b250YWxdW2Nkcy1sYXlvdXQqPSJhbGlnbjpzdHJldGNoIl0+KntmbGV4LWdyb3c6MX1bY2RzLWxheW91dH49aG9yaXpvbnRhbF0+W2Nkcy1sYXlvdXQqPSJhbGlnbjpjZW50ZXIiXSxbY2RzLWxheW91''@;'; + put 'put ''dH49aG9yaXpvbnRhbF0+W2Nkcy1sYXlvdXQqPSJhbGlnbjp2ZXJ0aWNhbC1jZW50ZXIiXXthbGlnbi1zZWxmOmNlbnRlcn1bY2RzLWxheW91dH49aG9yaXpvbnRhbF0+W2Nkcy1sYXlvdXQqPSJhbGlnbjpjZW50ZXIiXSxbY2RzLWxheW91dH49aG9yaXpvbnRhbF0+W2Nkcy1sYXlvdXQqPSJh''@;'; + put 'put ''bGlnbjpob3Jpem9udGFsLWNlbnRlciJde21hcmdpbi1sZWZ0OmF1dG8haW1wb3J0YW50O21hcmdpbi1yaWdodDphdXRvIWltcG9ydGFudH1bY2RzLWxheW91dH49aG9yaXpvbnRhbF0+W2Nkcy1sYXlvdXQqPSJhbGlnbjp0b3AiXXthbGlnbi1zZWxmOmZsZXgtc3RhcnR9W2Nkcy1sYXlvdXR+''@;'; + put 'put ''PWhvcml6b250YWxdPltjZHMtbGF5b3V0Kj0iYWxpZ246cmlnaHQiXXttYXJnaW4tbGVmdDphdXRvIWltcG9ydGFudH1bY2RzLWxheW91dH49aG9yaXpvbnRhbF0+W2Nkcy1sYXlvdXQqPSJhbGlnbjpsZWZ0Il17bWFyZ2luLXJpZ2h0OmF1dG8haW1wb3J0YW50fVtjZHMtbGF5b3V0fj12ZXJ0''@;'; + put 'put ''aWNhbF17d2lkdGg6MTAwJTtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOmZsZXgtc3RhcnR9W2Nkcy1sYXlvdXR+PXZlcnRpY2FsXSxbY2RzLWxheW91dH49dmVydGljYWxdW2Nkcy1sYXlvdXQqPSJhbGlnbjp0b3AiXXtqdXN0aWZ5LWNvbnRlbnQ6Zmxl''@;'; + put 'put ''eC1zdGFydH1bY2RzLWxheW91dH49dmVydGljYWxdW2Nkcy1sYXlvdXQqPSJhbGlnbjpsZWZ0Il17YWxpZ24taXRlbXM6ZmxleC1zdGFydH1bY2RzLWxheW91dH49dmVydGljYWxdW2Nkcy1sYXlvdXQqPSJhbGlnbjpyaWdodCJde2FsaWduLWl0ZW1zOmZsZXgtZW5kfVtjZHMtbGF5b3V0fj12''@;'; + put 'put ''ZXJ0aWNhbF1bY2RzLWxheW91dCo9ImFsaWduOnZlcnRpY2FsLWNlbnRlciJde2p1c3RpZnktY29udGVudDpjZW50ZXJ9W2Nkcy1sYXlvdXR+PXZlcnRpY2FsXVtjZHMtbGF5b3V0Kj0iYWxpZ246aG9yaXpvbnRhbC1jZW50ZXIiXXthbGlnbi1pdGVtczpjZW50ZXJ9W2Nkcy1sYXlvdXR+PXZl''@;'; + put 'put ''cnRpY2FsXVtjZHMtbGF5b3V0Kj0iYWxpZ246Y2VudGVyIl17YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXJ9W2Nkcy1sYXlvdXR+PXZlcnRpY2FsXVtjZHMtbGF5b3V0Kj0ib3JkZXI6cmV2ZXJzZSJde2ZsZXgtZGlyZWN0aW9uOmNvbHVtbi1yZXZlcnNlfVtjZHMt''@;'; + put 'put ''bGF5b3V0fj12ZXJ0aWNhbF1bY2RzLWxheW91dCo9ImFsaWduOmhvcml6b250YWwtc3RyZXRjaCJde2FsaWduLWl0ZW1zOnN0cmV0Y2h9W2Nkcy1sYXlvdXR+PXZlcnRpY2FsXVtjZHMtbGF5b3V0Kj0iYWxpZ246c3RyZXRjaCJde2FsaWduLWl0ZW1zOnN0cmV0Y2g7anVzdGlmeS1jb250ZW50''@;'; + put 'put ''OnN0cmV0Y2h9W2Nkcy1sYXlvdXR+PXZlcnRpY2FsXVtjZHMtbGF5b3V0Kj0iYWxpZ246c3RyZXRjaCJdPip7ZmxleC1ncm93OjF9W2Nkcy1sYXlvdXR+PXZlcnRpY2FsXT5bY2RzLWxheW91dCo9ImFsaWduOmNlbnRlciJdLFtjZHMtbGF5b3V0fj12ZXJ0aWNhbF0+W2Nkcy1sYXlvdXQqPSJh''@;'; + put 'put ''bGlnbjp2ZXJ0aWNhbC1jZW50ZXIiXXttYXJnaW4tdG9wOmF1dG87bWFyZ2luLWJvdHRvbTphdXRvfVtjZHMtbGF5b3V0fj12ZXJ0aWNhbF0+W2Nkcy1sYXlvdXQqPSJhbGlnbjpjZW50ZXIiXSxbY2RzLWxheW91dH49dmVydGljYWxdPltjZHMtbGF5b3V0Kj0iYWxpZ246aG9yaXpvbnRhbC1j''@;'; + put 'put ''ZW50ZXIiXXthbGlnbi1zZWxmOmNlbnRlcn1bY2RzLWxheW91dH49dmVydGljYWxdPltjZHMtbGF5b3V0Kj0iYWxpZ246dG9wIl17bWFyZ2luLWJvdHRvbTphdXRvIWltcG9ydGFudH1bY2RzLWxheW91dH49dmVydGljYWxdPltjZHMtbGF5b3V0Kj0iYWxpZ246cmlnaHQiXXttYXJnaW4tbGVm''@;'; + put 'put ''dDphdXRvfVtjZHMtbGF5b3V0fj12ZXJ0aWNhbF0+W2Nkcy1sYXlvdXQqPSJhbGlnbjpsZWZ0Il17bWFyZ2luLXJpZ2h0OmF1dG99W2Nkcy1sYXlvdXR+PWdyaWRde2Rpc3BsYXk6Z3JpZDthbGlnbi1pdGVtczpzdGFydDthbGlnbi1jb250ZW50OnN0YXJ0O2dyaWQtdGVtcGxhdGUtY29sdW1u''@;'; + put 'put ''czpyZXBlYXQodmFyKC0tY2RzLWdsb2JhbC1sYXlvdXQtZ3JpZC1jb2xzLDEyKSwxZnIpO3dpZHRoOjEwMCV9W2Nkcy1sYXlvdXR+PWdyaWRdW2Nkcy1sYXlvdXQqPXJvd3Nde2dyaWQtdGVtcGxhdGUtcm93czpyZXBlYXQoMTIsYXV0byl9W2Nkcy1sYXlvdXR+PWdyaWRdPltjZHMtbGF5b3V0''@;'; + put 'put ''Kj1yb3dde2FsaWduLXNlbGY6c3RyZXRjaH1bY2RzLWxheW91dH49Z3JpZF1bY2RzLWxheW91dCo9ImFsaWduOnRvcCJde2FsaWduLWNvbnRlbnQ6c3RhcnR9W2Nkcy1sYXlvdXR+PWdyaWRdW2Nkcy1sYXlvdXQqPSJhbGlnbjpyaWdodCJde2p1c3RpZnktY29udGVudDplbmR9W2Nkcy1sYXlv''@;'; + put 'put ''dXR+PWdyaWRdW2Nkcy1sYXlvdXQqPSJhbGlnbjpsZWZ0Il17anVzdGlmeS1jb250ZW50OnN0YXJ0fVtjZHMtbGF5b3V0fj1ncmlkXVtjZHMtbGF5b3V0Kj0iYWxpZ246aG9yaXpvbnRhbC1zdHJldGNoIl17anVzdGlmeS1pdGVtczpzdHJldGNoO2p1c3RpZnktY29udGVudDpzdHJldGNofVtj''@;'; + put 'put ''ZHMtbGF5b3V0fj1ncmlkXVtjZHMtbGF5b3V0Kj0iYWxpZ246c3RyZXRjaCJde2FsaWduLWl0ZW1zOnN0cmV0Y2g7YWxpZ24tY29udGVudDpzdHJldGNoO2p1c3RpZnktaXRlbXM6c3RyZXRjaDtqdXN0aWZ5LWNvbnRlbnQ6c3RyZXRjaH1bY2RzLWxheW91dH49Z3JpZF1bY2RzLWxheW91dCo9''@;'; + put 'put ''ImFsaWduOnZlcnRpY2FsLWNlbnRlciJde2FsaWduLWl0ZW1zOmNlbnRlcjthbGlnbi1jb250ZW50OmNlbnRlcn1bY2RzLWxheW91dH49Z3JpZF1bY2RzLWxheW91dCo9ImFsaWduOmhvcml6b250YWwtY2VudGVyIl17anVzdGlmeS1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRl''@;'; + put 'put ''cn1bY2RzLWxheW91dH49Z3JpZF1bY2RzLWxheW91dCo9ImFsaWduOmNlbnRlciJde2FsaWduLWl0ZW1zOmNlbnRlcjthbGlnbi1jb250ZW50OmNlbnRlcjtqdXN0aWZ5LWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfTo6c2xvdHRlZChbY2RzLWxheW91dH49ImRpc3BsYXk6''@;'; + put 'put ''c2NyZWVuLXJlYWRlci1vbmx5Il0pLFtjZHMtbGF5b3V0fj0iZGlzcGxheTpzY3JlZW4tcmVhZGVyLW9ubHkiXXtwb3NpdGlvbjphYnNvbHV0ZSFpbXBvcnRhbnQ7Y2xpcDpyZWN0KDFweCwxcHgsMXB4LDFweCk7Y2xpcC1wYXRoOmluc2V0KDUwJSk7cGFkZGluZzowO2JvcmRlcjowO2hlaWdo''@;'; + put 'put ''dDoxcHg7d2lkdGg6MXB4O292ZXJmbG93OmhpZGRlbjt3aGl0ZS1zcGFjZTpub3dyYXA7dG9wOjA7bGVmdDowO2Rpc3BsYXk6YmxvY2shaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0iZ2FwOm5vbmUiXXtnYXA6MH1bY2RzLWxheW91dCo9ImdhcDp4eHMiXXtnYXA6dmFyKC0tzrQyKX1bY2RzLWxh''@;'; + put 'put ''eW91dCo9ImdhcDp4cyJde2dhcDp2YXIoLS3OtDMpfVtjZHMtbGF5b3V0Kj0iZ2FwOnNtIl17Z2FwOnZhcigtLc60NCl9W2Nkcy1sYXlvdXQqPSJnYXA6bWQiXXtnYXA6dmFyKC0tzrQ1KX1bY2RzLWxheW91dCo9ImdhcDpsZyJde2dhcDp2YXIoLS3OtDYpfVtjZHMtbGF5b3V0fj0icDpub25l''@;'; + put 'put ''Il17cGFkZGluZzowIWltcG9ydGFudH1bY2RzLWxheW91dH49InA6eHhzIl17cGFkZGluZzp2YXIoLS3OtDIpIWltcG9ydGFudH1bY2RzLWxheW91dH49InA6eHMiXXtwYWRkaW5nOnZhcigtLc60MykhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icDpzbSJde3BhZGRpbmc6dmFyKC0tzrQ0KSFp''@;'; + put 'put ''bXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwOm1kIl17cGFkZGluZzp2YXIoLS3OtDUpIWltcG9ydGFudH1bY2RzLWxheW91dH49Im06bWQiXXttYXJnaW46dmFyKC0tzrQ1KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwOmxnIl17cGFkZGluZzp2YXIoLS3OtDYpIWltcG9ydGFudH1bY2RzLWxh''@;'; + put 'put ''eW91dH49InAteTp4cyJde3BhZGRpbmctdG9wOnZhcigtLc60MykhaW1wb3J0YW50O3BhZGRpbmctYm90dG9tOnZhcigtLc60MykhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC14OmxnIl17cGFkZGluZy1sZWZ0OnZhcigtLc60NikhaW1wb3J0YW50O3BhZGRpbmctcmlnaHQ6dmFyKC0tzrQ2''@;'; + put 'put ''KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwLWw6bWQiXXtwYWRkaW5nLWxlZnQ6dmFyKC0tzrQ1KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwLXQ6bGciXXtwYWRkaW5nLXRvcDp2YXIoLS3OtDYpIWltcG9ydGFudH1bY2RzLWxheW91dH49InAtYjpsZyJde3BhZGRpbmctYm90dG9tOnZh''@;'; + put 'put ''cigtLc60NikhaW1wb3J0YW50fUBtZWRpYSAobWluLXdpZHRoOjk5MnB4KXtbY2RzLWxheW91dCo9ImdhcEBtZDpsZyJde2dhcDp2YXIoLS3OtDYpfVtjZHMtbGF5b3V0fj0icEBtZDpsZyJde3BhZGRpbmc6dmFyKC0tzrQ2KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtQG1kOnhsIl17bWFy''@;'; + put 'put ''Z2luOnZhcigtLc60NykhaW1wb3J0YW50fX1bY2RzLWxheW91dH49ZmlsbF17d2lkdGg6MTAwJSFpbXBvcnRhbnR9Kiw6YWZ0ZXIsOmJlZm9yZXtib3gtc2l6aW5nOmJvcmRlci1ib3h9W2Nkcy1sYXlvdXR+PWhvcml6b250YWxdW2Nkcy1sYXlvdXQqPSJhbGlnbjpob3Jpem9udGFsLXN0cmV0''@;'; + put 'put ''Y2giXT46OnNsb3R0ZWQoKiksW2Nkcy1sYXlvdXR+PWhvcml6b250YWxdW2Nkcy1sYXlvdXQqPSJhbGlnbjpzdHJldGNoIl0+OjpzbG90dGVkKCopLFtjZHMtbGF5b3V0fj12ZXJ0aWNhbF1bY2RzLWxheW91dCo9ImFsaWduOnN0cmV0Y2giXT46OnNsb3R0ZWQoKil7ZmxleC1ncm93OjF9W2Nk''@;'; + put 'put ''cy1sYXlvdXR+PXZlcnRpY2FsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbjpjZW50ZXIiXSksW2Nkcy1sYXlvdXR+PXZlcnRpY2FsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbjp2ZXJ0aWNhbC1jZW50ZXIiXSl7bWFyZ2luLXRvcDphdXRvO21hcmdpbi1ib3R0b206YXV0''@;'; + put 'put ''b31bY2RzLWxheW91dH49dmVydGljYWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduOmNlbnRlciJdKSxbY2RzLWxheW91dH49dmVydGljYWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduOmhvcml6b250YWwtY2VudGVyIl0pe2FsaWduLXNlbGY6Y2VudGVyfVtjZHMtbGF5''@;'; + put 'put ''b3V0fj12ZXJ0aWNhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ246dG9wIl0pe21hcmdpbi1ib3R0b206YXV0byFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PXZlcnRpY2FsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbjpib3R0b20iXSl7bWFyZ2luLXRvcDphdXRvIWltcG9y''@;'; + put 'put ''dGFudH1bY2RzLWxheW91dH49dmVydGljYWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduOnJpZ2h0Il0pe21hcmdpbi1sZWZ0OmF1dG99W2Nkcy1sYXlvdXR+PXZlcnRpY2FsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbjpsZWZ0Il0pLFtjZHMtbGF5b3V0fj12ZXJ0aWNh''@;'; + put 'put ''bF0+W2Nkcy1sYXlvdXQqPSJhbGlnbjpsZWZ0Il17bWFyZ2luLXJpZ2h0OmF1dG99QG1lZGlhIChtaW4td2lkdGg6NTc2cHgpe1tjZHMtbGF5b3V0fj12ZXJ0aWNhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25AeHM6Y2VudGVyIl0pLFtjZHMtbGF5b3V0fj12ZXJ0aWNhbF0gOjpz''@;'; + put 'put ''bG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25AeHM6dmVydGljYWwtY2VudGVyIl0pe21hcmdpbi10b3A6YXV0bzttYXJnaW4tYm90dG9tOmF1dG99W2Nkcy1sYXlvdXR+PXZlcnRpY2FsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbkB4czpjZW50ZXIiXSksW2Nkcy1sYXlvdXR+PXZl''@;'; + put 'put ''cnRpY2FsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbkB4czpob3Jpem9udGFsLWNlbnRlciJdKXthbGlnbi1zZWxmOmNlbnRlcn1bY2RzLWxheW91dH49dmVydGljYWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduQHhzOnRvcCJdKXttYXJnaW4tYm90dG9tOmF1dG8haW1w''@;'; + put 'put ''b3J0YW50fVtjZHMtbGF5b3V0fj12ZXJ0aWNhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25AeHM6Ym90dG9tIl0pe21hcmdpbi10b3A6YXV0byFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PXZlcnRpY2FsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbkB4czpyaWdodCJdKXtt''@;'; + put 'put ''YXJnaW4tbGVmdDphdXRvfVtjZHMtbGF5b3V0fj12ZXJ0aWNhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25AeHM6bGVmdCJdKXttYXJnaW4tcmlnaHQ6YXV0b319QG1lZGlhIChtaW4td2lkdGg6NzY4cHgpe1tjZHMtbGF5b3V0fj12ZXJ0aWNhbF0gOjpzbG90dGVkKFtjZHMtbGF5''@;'; + put 'put ''b3V0Kj0iYWxpZ25Ac206Y2VudGVyIl0pLFtjZHMtbGF5b3V0fj12ZXJ0aWNhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25Ac206dmVydGljYWwtY2VudGVyIl0pe21hcmdpbi10b3A6YXV0bzttYXJnaW4tYm90dG9tOmF1dG99W2Nkcy1sYXlvdXR+PXZlcnRpY2FsXSA6OnNsb3R0''@;'; + put 'put ''ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbkBzbTpjZW50ZXIiXSksW2Nkcy1sYXlvdXR+PXZlcnRpY2FsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbkBzbTpob3Jpem9udGFsLWNlbnRlciJdKXthbGlnbi1zZWxmOmNlbnRlcn1bY2RzLWxheW91dH49dmVydGljYWxdIDo6c2xvdHRlZChb''@;'; + put 'put ''Y2RzLWxheW91dCo9ImFsaWduQHNtOnRvcCJdKXttYXJnaW4tYm90dG9tOmF1dG8haW1wb3J0YW50fVtjZHMtbGF5b3V0fj12ZXJ0aWNhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25Ac206Ym90dG9tIl0pe21hcmdpbi10b3A6YXV0byFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PXZl''@;'; + put 'put ''cnRpY2FsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbkBzbTpyaWdodCJdKXttYXJnaW4tbGVmdDphdXRvfVtjZHMtbGF5b3V0fj12ZXJ0aWNhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25Ac206bGVmdCJdKXttYXJnaW4tcmlnaHQ6YXV0b319QG1lZGlhIChtaW4td2lk''@;'; + put 'put ''dGg6OTkycHgpe1tjZHMtbGF5b3V0fj12ZXJ0aWNhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25AbWQ6Y2VudGVyIl0pLFtjZHMtbGF5b3V0fj12ZXJ0aWNhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25AbWQ6dmVydGljYWwtY2VudGVyIl0pe21hcmdpbi10b3A6YXV0''@;'; + put 'put ''bzttYXJnaW4tYm90dG9tOmF1dG99W2Nkcy1sYXlvdXR+PXZlcnRpY2FsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbkBtZDpjZW50ZXIiXSksW2Nkcy1sYXlvdXR+PXZlcnRpY2FsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbkBtZDpob3Jpem9udGFsLWNlbnRlciJdKXth''@;'; + put 'put ''bGlnbi1zZWxmOmNlbnRlcn1bY2RzLWxheW91dH49dmVydGljYWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduQG1kOnRvcCJdKXttYXJnaW4tYm90dG9tOmF1dG8haW1wb3J0YW50fVtjZHMtbGF5b3V0fj12ZXJ0aWNhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25AbWQ6''@;'; + put 'put ''Ym90dG9tIl0pe21hcmdpbi10b3A6YXV0byFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PXZlcnRpY2FsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbkBtZDpyaWdodCJdKXttYXJnaW4tbGVmdDphdXRvfVtjZHMtbGF5b3V0fj12ZXJ0aWNhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0i''@;'; + put 'put ''YWxpZ25AbWQ6bGVmdCJdKXttYXJnaW4tcmlnaHQ6YXV0b319QG1lZGlhIChtaW4td2lkdGg6MTIwMHB4KXtbY2RzLWxheW91dH49dmVydGljYWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduQGxnOmNlbnRlciJdKSxbY2RzLWxheW91dH49dmVydGljYWxdIDo6c2xvdHRlZChbY2Rz''@;'; + put 'put ''LWxheW91dCo9ImFsaWduQGxnOnZlcnRpY2FsLWNlbnRlciJdKXttYXJnaW4tdG9wOmF1dG87bWFyZ2luLWJvdHRvbTphdXRvfVtjZHMtbGF5b3V0fj12ZXJ0aWNhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25AbGc6Y2VudGVyIl0pLFtjZHMtbGF5b3V0fj12ZXJ0aWNhbF0gOjpz''@;'; + put 'put ''bG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25AbGc6aG9yaXpvbnRhbC1jZW50ZXIiXSl7YWxpZ24tc2VsZjpjZW50ZXJ9W2Nkcy1sYXlvdXR+PXZlcnRpY2FsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbkBsZzp0b3AiXSl7bWFyZ2luLWJvdHRvbTphdXRvIWltcG9ydGFudH1bY2Rz''@;'; + put 'put ''LWxheW91dH49dmVydGljYWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduQGxnOmJvdHRvbSJdKXttYXJnaW4tdG9wOmF1dG8haW1wb3J0YW50fVtjZHMtbGF5b3V0fj12ZXJ0aWNhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25AbGc6cmlnaHQiXSl7bWFyZ2luLWxlZnQ6''@;'; + put 'put ''YXV0b31bY2RzLWxheW91dH49dmVydGljYWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduQGxnOmxlZnQiXSl7bWFyZ2luLXJpZ2h0OmF1dG99fUBtZWRpYSAobWluLXdpZHRoOjE0NDBweCl7W2Nkcy1sYXlvdXR+PXZlcnRpY2FsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGln''@;'; + put 'put ''bkB4bDpjZW50ZXIiXSksW2Nkcy1sYXlvdXR+PXZlcnRpY2FsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbkB4bDp2ZXJ0aWNhbC1jZW50ZXIiXSl7bWFyZ2luLXRvcDphdXRvO21hcmdpbi1ib3R0b206YXV0b31bY2RzLWxheW91dH49dmVydGljYWxdIDo6c2xvdHRlZChbY2RzLWxh''@;'; + put 'put ''eW91dCo9ImFsaWduQHhsOmNlbnRlciJdKSxbY2RzLWxheW91dH49dmVydGljYWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduQHhsOmhvcml6b250YWwtY2VudGVyIl0pe2FsaWduLXNlbGY6Y2VudGVyfVtjZHMtbGF5b3V0fj12ZXJ0aWNhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0''@;'; + put 'put ''Kj0iYWxpZ25AeGw6dG9wIl0pe21hcmdpbi1ib3R0b206YXV0byFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PXZlcnRpY2FsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbkB4bDpib3R0b20iXSl7bWFyZ2luLXRvcDphdXRvIWltcG9ydGFudH1bY2RzLWxheW91dH49dmVydGljYWxdIDo6''@;'; + put 'put ''c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduQHhsOnJpZ2h0Il0pe21hcmdpbi1sZWZ0OmF1dG99W2Nkcy1sYXlvdXR+PXZlcnRpY2FsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbkB4bDpsZWZ0Il0pe21hcmdpbi1yaWdodDphdXRvfX1bY2RzLWxheW91dH49aG9yaXpvbnRhbF0g''@;'; + put 'put ''OjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ246Y2VudGVyIl0pLFtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbjp2ZXJ0aWNhbC1jZW50ZXIiXSl7YWxpZ24tc2VsZjpjZW50ZXJ9W2Nkcy1sYXlvdXR+PWhvcml6b250YWxdIDo6c2xvdHRl''@;'; + put 'put ''ZChbY2RzLWxheW91dCo9ImFsaWduOmNlbnRlciJdKSxbY2RzLWxheW91dH49aG9yaXpvbnRhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ246aG9yaXpvbnRhbC1jZW50ZXIiXSl7bWFyZ2luLWxlZnQ6YXV0byFpbXBvcnRhbnQ7bWFyZ2luLXJpZ2h0OmF1dG8haW1wb3J0YW50fVtj''@;'; + put 'put ''ZHMtbGF5b3V0fj1ob3Jpem9udGFsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbjp0b3AiXSl7YWxpZ24tc2VsZjpmbGV4LXN0YXJ0fVtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbjpib3R0b20iXSl7YWxpZ24tc2VsZjpmbGV4LWVu''@;'; + put 'put ''ZH1bY2RzLWxheW91dH49aG9yaXpvbnRhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ246cmlnaHQiXSl7bWFyZ2luLWxlZnQ6YXV0byFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PWhvcml6b250YWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduOmxlZnQiXSl7bWFyZ2luLXJp''@;'; + put 'put ''Z2h0OmF1dG8haW1wb3J0YW50fUBtZWRpYSAobWluLXdpZHRoOjU3NnB4KXtbY2RzLWxheW91dH49aG9yaXpvbnRhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25AeHM6Y2VudGVyIl0pLFtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGln''@;'; + put 'put ''bkB4czp2ZXJ0aWNhbC1jZW50ZXIiXSl7YWxpZ24tc2VsZjpjZW50ZXJ9W2Nkcy1sYXlvdXR+PWhvcml6b250YWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduQHhzOmNlbnRlciJdKSxbY2RzLWxheW91dH49aG9yaXpvbnRhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25A''@;'; + put 'put ''eHM6aG9yaXpvbnRhbC1jZW50ZXIiXSl7bWFyZ2luLWxlZnQ6YXV0byFpbXBvcnRhbnQ7bWFyZ2luLXJpZ2h0OmF1dG8haW1wb3J0YW50fVtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbkB4czp0b3AiXSl7YWxpZ24tc2VsZjpmbGV4LXN0YXJ0''@;'; + put 'put ''fVtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbkB4czpib3R0b20iXSl7YWxpZ24tc2VsZjpmbGV4LWVuZH1bY2RzLWxheW91dH49aG9yaXpvbnRhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25AeHM6cmlnaHQiXSl7bWFyZ2luLWxl''@;'; + put 'put ''ZnQ6YXV0byFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PWhvcml6b250YWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduQHhzOmxlZnQiXSl7bWFyZ2luLXJpZ2h0OmF1dG8haW1wb3J0YW50fX1AbWVkaWEgKG1pbi13aWR0aDo3NjhweCl7W2Nkcy1sYXlvdXR+PWhvcml6b250YWxdIDo6''@;'; + put 'put ''c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduQHNtOmNlbnRlciJdKSxbY2RzLWxheW91dH49aG9yaXpvbnRhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25Ac206dmVydGljYWwtY2VudGVyIl0pe2FsaWduLXNlbGY6Y2VudGVyfVtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXSA6OnNs''@;'; + put 'put ''b3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbkBzbTpjZW50ZXIiXSksW2Nkcy1sYXlvdXR+PWhvcml6b250YWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduQHNtOmhvcml6b250YWwtY2VudGVyIl0pe21hcmdpbi1sZWZ0OmF1dG8haW1wb3J0YW50O21hcmdpbi1yaWdodDphdXRvIWlt''@;'; + put 'put ''cG9ydGFudH1bY2RzLWxheW91dH49aG9yaXpvbnRhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25Ac206dG9wIl0pe2FsaWduLXNlbGY6ZmxleC1zdGFydH1bY2RzLWxheW91dH49aG9yaXpvbnRhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25Ac206Ym90dG9tIl0pe2Fs''@;'; + put 'put ''aWduLXNlbGY6ZmxleC1lbmR9W2Nkcy1sYXlvdXR+PWhvcml6b250YWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduQHNtOnJpZ2h0Il0pe21hcmdpbi1sZWZ0OmF1dG8haW1wb3J0YW50fVtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGln''@;'; + put 'put ''bkBzbTpsZWZ0Il0pe21hcmdpbi1yaWdodDphdXRvIWltcG9ydGFudH19QG1lZGlhIChtaW4td2lkdGg6OTkycHgpe1tjZHMtbGF5b3V0fj1ob3Jpem9udGFsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbkBtZDpjZW50ZXIiXSksW2Nkcy1sYXlvdXR+PWhvcml6b250YWxdIDo6c2xv''@;'; + put 'put ''dHRlZChbY2RzLWxheW91dCo9ImFsaWduQG1kOnZlcnRpY2FsLWNlbnRlciJdKXthbGlnbi1zZWxmOmNlbnRlcn1bY2RzLWxheW91dH49aG9yaXpvbnRhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25AbWQ6Y2VudGVyIl0pLFtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXSA6OnNsb3R0''@;'; + put 'put ''ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbkBtZDpob3Jpem9udGFsLWNlbnRlciJdKXttYXJnaW4tbGVmdDphdXRvIWltcG9ydGFudDttYXJnaW4tcmlnaHQ6YXV0byFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PWhvcml6b250YWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduQG1kOnRvcCJd''@;'; + put 'put ''KXthbGlnbi1zZWxmOmZsZXgtc3RhcnR9W2Nkcy1sYXlvdXR+PWhvcml6b250YWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduQG1kOmJvdHRvbSJdKXthbGlnbi1zZWxmOmZsZXgtZW5kfVtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGln''@;'; + put 'put ''bkBtZDpyaWdodCJdKXttYXJnaW4tbGVmdDphdXRvIWltcG9ydGFudH1bY2RzLWxheW91dH49aG9yaXpvbnRhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25AbWQ6bGVmdCJdKXttYXJnaW4tcmlnaHQ6YXV0byFpbXBvcnRhbnR9fUBtZWRpYSAobWluLXdpZHRoOjEyMDBweCl7W2Nk''@;'; + put 'put ''cy1sYXlvdXR+PWhvcml6b250YWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduQGxnOmNlbnRlciJdKSxbY2RzLWxheW91dH49aG9yaXpvbnRhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25AbGc6dmVydGljYWwtY2VudGVyIl0pe2FsaWduLXNlbGY6Y2VudGVyfVtjZHMt''@;'; + put 'put ''bGF5b3V0fj1ob3Jpem9udGFsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbkBsZzpjZW50ZXIiXSksW2Nkcy1sYXlvdXR+PWhvcml6b250YWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduQGxnOmhvcml6b250YWwtY2VudGVyIl0pe21hcmdpbi1sZWZ0OmF1dG8haW1wb3J0''@;'; + put 'put ''YW50O21hcmdpbi1yaWdodDphdXRvIWltcG9ydGFudH1bY2RzLWxheW91dH49aG9yaXpvbnRhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25AbGc6dG9wIl0pe2FsaWduLXNlbGY6ZmxleC1zdGFydH1bY2RzLWxheW91dH49aG9yaXpvbnRhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0''@;'; + put 'put ''Kj0iYWxpZ25AbGc6Ym90dG9tIl0pe2FsaWduLXNlbGY6ZmxleC1lbmR9W2Nkcy1sYXlvdXR+PWhvcml6b250YWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduQGxnOnJpZ2h0Il0pe21hcmdpbi1sZWZ0OmF1dG8haW1wb3J0YW50fVtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXSA6OnNs''@;'; + put 'put ''b3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbkBsZzpsZWZ0Il0pe21hcmdpbi1yaWdodDphdXRvIWltcG9ydGFudH19QG1lZGlhIChtaW4td2lkdGg6MTQ0MHB4KXtbY2RzLWxheW91dH49aG9yaXpvbnRhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25AeGw6Y2VudGVyIl0pLFtjZHMt''@;'; + put 'put ''bGF5b3V0fj1ob3Jpem9udGFsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbkB4bDp2ZXJ0aWNhbC1jZW50ZXIiXSl7YWxpZ24tc2VsZjpjZW50ZXJ9W2Nkcy1sYXlvdXR+PWhvcml6b250YWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduQHhsOmNlbnRlciJdKSxbY2RzLWxh''@;'; + put 'put ''eW91dH49aG9yaXpvbnRhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25AeGw6aG9yaXpvbnRhbC1jZW50ZXIiXSl7bWFyZ2luLWxlZnQ6YXV0byFpbXBvcnRhbnQ7bWFyZ2luLXJpZ2h0OmF1dG8haW1wb3J0YW50fVtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXSA6OnNsb3R0ZWQoW2Nk''@;'; + put 'put ''cy1sYXlvdXQqPSJhbGlnbkB4bDp0b3AiXSl7YWxpZ24tc2VsZjpmbGV4LXN0YXJ0fVtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbkB4bDpib3R0b20iXSl7YWxpZ24tc2VsZjpmbGV4LWVuZH1bY2RzLWxheW91dH49aG9yaXpvbnRhbF0gOjpz''@;'; + put 'put ''bG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25AeGw6cmlnaHQiXSl7bWFyZ2luLWxlZnQ6YXV0byFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PWhvcml6b250YWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduQHhsOmxlZnQiXSl7bWFyZ2luLXJpZ2h0OmF1dG8haW1wb3J0YW50fX1bY2Rz''@;'; + put 'put ''LXRleHRde2ZvbnQtZmFtaWx5OnZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1mb250LWZhbWlseSwgIkNsYXJpdHkgQ2l0eSIsICJBdmVuaXIgTmV4dCIsIHNhbnMtc2VyaWYpO21hcmdpbi10b3A6MDttYXJnaW4tYm90dG9tOjB9W2Nkcy10ZXh0XVtjZHMtbGF5b3V0fj1ncmlkXTo6YWZ0''@;'; + put 'put ''ZXIsW2Nkcy10ZXh0XVtjZHMtbGF5b3V0fj1ncmlkXTo6YmVmb3JlLFtjZHMtdGV4dF1bY2RzLWxheW91dH49aG9yaXpvbnRhbF06OmFmdGVyLFtjZHMtdGV4dF1bY2RzLWxheW91dH49aG9yaXpvbnRhbF06OmJlZm9yZSxbY2RzLXRleHRdW2Nkcy1sYXlvdXR+PXZlcnRpY2FsXTo6YWZ0ZXIs''@;'; + put 'put ''W2Nkcy10ZXh0XVtjZHMtbGF5b3V0fj12ZXJ0aWNhbF06OmJlZm9yZXtkaXNwbGF5Om5vbmV9W2Nkcy10ZXh0Kj1kaXNwbGF5XSxbY2RzLXRleHQqPXNlY3Rpb25dLFtjZHMtdGV4dCo9c3Vic2VjdGlvbl0sW2Nkcy10ZXh0Kj10aXRsZV17Zm9udC1mYW1pbHk6dmFyKC0tY2RzLWdsb2JhbC10''@;'; + put 'put ''eXBvZ3JhcGh5LWhlYWRlci1mb250LWZhbWlseSwgIkNsYXJpdHkgQ2l0eSIsICJBdmVuaXIgTmV4dCIsIHNhbnMtc2VyaWYpO2NvbG9yOnZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1jb2xvci00MDAsdmFyKC0tY2RzLWdsb2JhbC1jb2xvci1jb25zdHJ1Y3Rpb24tOTAwLCMyMTMzM2Ip''@;'; + put 'put ''KX1bY2RzLXRleHQqPWJvZHldLFtjZHMtdGV4dCo9bWVzc2FnZV0sW2Nkcy10ZXh0Kj1zZWNvbmRhcnlde2NvbG9yOnZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1jb2xvci01MDAsdmFyKC0tY2RzLWdsb2JhbC1jb2xvci1ibGFjaywjMDAwKSl9W2Nkcy10ZXh0Kj1pbmxpbmVde3dpZHRo''@;'; + put 'put ''OmF1dG8haW1wb3J0YW50O2Rpc3BsYXk6aW5saW5lLWJsb2NrIWltcG9ydGFudH1bY2RzLXRleHQqPWRpc3BsYXlde2ZvbnQtc2l6ZTp2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktZGlzcGxheS1mb250LXNpemUsY2FsYyg0MCAqIDFyZW0gLyB2YXIoLS1jZHMtZ2xvYmFsLWJhc2UsMjAp''@;'; + put 'put ''KSk7Zm9udC13ZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWRpc3BsYXktZm9udC13ZWlnaHQsNDAwKTtsaW5lLWhlaWdodDp2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktZGlzcGxheS1saW5lLWhlaWdodCwxLjFlbSk7bGV0dGVyLXNwYWNpbmc6dmFyKC0tY2RzLWdsb2Jh''@;'; + put 'put ''bC10eXBvZ3JhcGh5LWRpc3BsYXktbGV0dGVyLXNwYWNpbmcsLS4wMTI1ZW0pfVtjZHMtdGV4dCo9ZGlzcGxheV06OmJlZm9yZXtjb250ZW50OiIiO2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjA7d2lkdGg6MDttYXJnaW4tYm90dG9tOmNhbGMoKCh2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHkt''@;'; + put 'put ''dG9wLWdhcC1oZWlnaHQsLjE0NzVlbSkgKyBjYWxjKCh2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktZGlzcGxheS1saW5lLWhlaWdodCwxLjFlbSkgLSAxZW0pLyAyKSkqLTEpICsgLjAzN2VtKX1bY2RzLXRleHQqPWRpc3BsYXldOjphZnRlcntjb250ZW50OiIiO2Rpc3BsYXk6YmxvY2s7''@;'; + put 'put ''aGVpZ2h0OjA7d2lkdGg6MDttYXJnaW4tdG9wOmNhbGMoKCgoMWVtIC0gdmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXRvcC1nYXAtaGVpZ2h0LC4xNDc1ZW0pIC0gdmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWFzY2VuZGVyLWhlaWdodCwuMTcwM2VtKSAtIHZhcigtLWNkcy1nbG9i''@;'; + put 'put ''YWwtdHlwb2dyYXBoeS14LWhlaWdodCwuNTE3ZW0pKSArIGNhbGMoKHZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1kaXNwbGF5LWxpbmUtaGVpZ2h0LDEuMWVtKSAtIDFlbSkvIDIpKSotMSkgLSAuMDQ0ZW0pfVtjZHMtdGV4dCo9dGl0bGVde2ZvbnQtc2l6ZTp2YXIoLS1jZHMtZ2xvYmFs''@;'; + put 'put ''LXR5cG9ncmFwaHktdGl0bGUtZm9udC1zaXplLGNhbGMoMjQgKiAxcmVtIC8gdmFyKC0tY2RzLWdsb2JhbC1iYXNlLDIwKSkpO2ZvbnQtd2VpZ2h0OnZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS10aXRsZS1mb250LXdlaWdodCw0MDApO2xpbmUtaGVpZ2h0OnZhcigtLWNkcy1nbG9iYWwt''@;'; + put 'put ''dHlwb2dyYXBoeS10aXRsZS1saW5lLWhlaWdodCwxLjE2NjY3ZW0pO2xldHRlci1zcGFjaW5nOnZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS10aXRsZS1sZXR0ZXItc3BhY2luZywtLjAwODMzM2VtKX1bY2RzLXRleHQqPXRpdGxlXTo6YmVmb3Jle2NvbnRlbnQ6IiI7ZGlzcGxheTpibG9j''@;'; + put 'put ''aztoZWlnaHQ6MDt3aWR0aDowO21hcmdpbi1ib3R0b206Y2FsYygoKHZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS10b3AtZ2FwLWhlaWdodCwuMTQ3NWVtKSArIGNhbGMoKHZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS10aXRsZS1saW5lLWhlaWdodCwxLjE2NjY3ZW0pIC0gMWVtKS8g''@;'; + put 'put ''MikpKi0xKSArIC4wMzdlbSl9W2Nkcy10ZXh0Kj10aXRsZV06OmFmdGVye2NvbnRlbnQ6IiI7ZGlzcGxheTpibG9jaztoZWlnaHQ6MDt3aWR0aDowO21hcmdpbi10b3A6Y2FsYygoKCgxZW0gLSB2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktdG9wLWdhcC1oZWlnaHQsLjE0NzVlbSkgLSB2''@;'; + put 'put ''YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktYXNjZW5kZXItaGVpZ2h0LC4xNzAzZW0pIC0gdmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXgtaGVpZ2h0LC41MTdlbSkpICsgY2FsYygodmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXRpdGxlLWxpbmUtaGVpZ2h0LDEuMTY2NjdlbSkg''@;'; + put 'put ''LSAxZW0pLyAyKSkqLTEpIC0gLjA0NGVtKX1bY2RzLXRleHQqPXNlY3Rpb25de2ZvbnQtc2l6ZTp2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktc2VjdGlvbi1mb250LXNpemUsY2FsYygyMCAqIDFyZW0gLyB2YXIoLS1jZHMtZ2xvYmFsLWJhc2UsMjApKSk7Zm9udC13ZWlnaHQ6dmFyKC0t''@;'; + put 'put ''Y2RzLWdsb2JhbC10eXBvZ3JhcGh5LXNlY3Rpb24tZm9udC13ZWlnaHQsNDAwKTtsaW5lLWhlaWdodDp2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktc2VjdGlvbi1saW5lLWhlaWdodCwxLjJlbSk7bGV0dGVyLXNwYWNpbmc6dmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXNlY3Rpb24t''@;'; + put 'put ''bGV0dGVyLXNwYWNpbmcsLS4wMWVtKX1bY2RzLXRleHQqPXNlY3Rpb25dOjpiZWZvcmV7Y29udGVudDoiIjtkaXNwbGF5OmJsb2NrO2hlaWdodDowO3dpZHRoOjA7bWFyZ2luLWJvdHRvbTpjYWxjKCgodmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXRvcC1nYXAtaGVpZ2h0LC4xNDc1ZW0p''@;'; + put 'put ''ICsgY2FsYygodmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXNlY3Rpb24tbGluZS1oZWlnaHQsMS4yZW0pIC0gMWVtKS8gMikpKi0xKSArIC4wMzdlbSl9W2Nkcy10ZXh0Kj1zZWN0aW9uXTo6YWZ0ZXJ7Y29udGVudDoiIjtkaXNwbGF5OmJsb2NrO2hlaWdodDowO3dpZHRoOjA7bWFyZ2lu''@;'; + put 'put ''LXRvcDpjYWxjKCgoKDFlbSAtIHZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS10b3AtZ2FwLWhlaWdodCwuMTQ3NWVtKSAtIHZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1hc2NlbmRlci1oZWlnaHQsLjE3MDNlbSkgLSB2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHkteC1oZWlnaHQs''@;'; + put 'put ''LjUxN2VtKSkgKyBjYWxjKCh2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktc2VjdGlvbi1saW5lLWhlaWdodCwxLjJlbSkgLSAxZW0pLyAyKSkqLTEpIC0gLjA0NGVtKX1bY2RzLXRleHQqPXN1YnNlY3Rpb25de2ZvbnQtc2l6ZTp2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktc3Vic2Vj''@;'; + put 'put ''dGlvbi1mb250LXNpemUsY2FsYygxNiAqIDFyZW0gLyB2YXIoLS1jZHMtZ2xvYmFsLWJhc2UsMjApKSk7Zm9udC13ZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXN1YnNlY3Rpb24tZm9udC13ZWlnaHQsNDAwKTtsaW5lLWhlaWdodDp2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFw''@;'; + put 'put ''aHktc3Vic2VjdGlvbi1saW5lLWhlaWdodCwxLjI1ZW0pO2xldHRlci1zcGFjaW5nOnZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1zdWJzZWN0aW9uLWxldHRlci1zcGFjaW5nLC0uMDEyNWVtKX1bY2RzLXRleHQqPXN1YnNlY3Rpb25dOjpiZWZvcmV7Y29udGVudDoiIjtkaXNwbGF5OmJs''@;'; + put 'put ''b2NrO2hlaWdodDowO3dpZHRoOjA7bWFyZ2luLWJvdHRvbTpjYWxjKCgodmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXRvcC1nYXAtaGVpZ2h0LC4xNDc1ZW0pICsgY2FsYygodmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXN1YnNlY3Rpb24tbGluZS1oZWlnaHQsMS4yNWVtKSAtIDFl''@;'; + put 'put ''bSkvIDIpKSotMSkgKyAuMDM3ZW0pfVtjZHMtdGV4dCo9c3Vic2VjdGlvbl06OmFmdGVye2NvbnRlbnQ6IiI7ZGlzcGxheTpibG9jaztoZWlnaHQ6MDt3aWR0aDowO21hcmdpbi10b3A6Y2FsYygoKCgxZW0gLSB2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktdG9wLWdhcC1oZWlnaHQsLjE0''@;'; + put 'put ''NzVlbSkgLSB2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktYXNjZW5kZXItaGVpZ2h0LC4xNzAzZW0pIC0gdmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXgtaGVpZ2h0LC41MTdlbSkpICsgY2FsYygodmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXN1YnNlY3Rpb24tbGluZS1oZWln''@;'; + put 'put ''aHQsMS4yNWVtKSAtIDFlbSkvIDIpKSotMSkgLSAuMDQ0ZW0pfVtjZHMtdGV4dCo9Ym9keV17Zm9udC13ZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWJvZHktZm9udC13ZWlnaHQsNDAwKTtmb250LXNpemU6dmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWJvZHktZm9udC1z''@;'; + put 'put ''aXplLGNhbGMoMTQgKiAxcmVtIC8gdmFyKC0tY2RzLWdsb2JhbC1iYXNlLDIwKSkpO2xldHRlci1zcGFjaW5nOnZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1ib2R5LWxldHRlci1zcGFjaW5nLC0uMDE0Mjg2ZW0pO2xpbmUtaGVpZ2h0OnZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1i''@;'; + put 'put ''b2R5LWxpbmUtaGVpZ2h0LDEuNDI4NTdlbSl9W2Nkcy10ZXh0Kj1ib2R5XTo6YmVmb3Jle2NvbnRlbnQ6IiI7ZGlzcGxheTpibG9jaztoZWlnaHQ6MDt3aWR0aDowO21hcmdpbi1ib3R0b206Y2FsYygoKHZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS10b3AtZ2FwLWhlaWdodCwuMTQ3NWVt''@;'; + put 'put ''KSArIGNhbGMoKHZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1ib2R5LWxpbmUtaGVpZ2h0LDEuNDI4NTdlbSkgLSAxZW0pLyAyKSkqLTEpICsgLjFlbSl9W2Nkcy10ZXh0Kj1ib2R5XTo6YWZ0ZXJ7Y29udGVudDoiIjtkaXNwbGF5OmJsb2NrO2hlaWdodDowO3dpZHRoOjA7bWFyZ2luLXRv''@;'; + put 'put ''cDpjYWxjKCgoKDFlbSAtIHZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS10b3AtZ2FwLWhlaWdodCwuMTQ3NWVtKSAtIHZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1hc2NlbmRlci1oZWlnaHQsLjE3MDNlbSkgLSB2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHkteC1oZWlnaHQsLjUx''@;'; + put 'put ''N2VtKSkgKyBjYWxjKCh2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktYm9keS1saW5lLWhlaWdodCwxLjQyODU3ZW0pIC0gMWVtKS8gMikpKi0xKSAtIC4wNDRlbSl9W2Nkcy10ZXh0Kj1tZXNzYWdlXXtmb250LXNpemU6dmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LW1lc3NhZ2UtZm9u''@;'; + put 'put ''dC1zaXplLGNhbGMoMTYgKiAxcmVtIC8gdmFyKC0tY2RzLWdsb2JhbC1iYXNlLDIwKSkpO2ZvbnQtd2VpZ2h0OnZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1tZXNzYWdlLWZvbnQtd2VpZ2h0LGNhbGMoNDAwICogMXJlbSAvIHZhcigtLWNkcy1nbG9iYWwtYmFzZSwyMCkpKTtsaW5lLWhl''@;'; + put 'put ''aWdodDp2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktbWVzc2FnZS1saW5lLWhlaWdodCwxLjI1ZW0pO2xldHRlci1zcGFjaW5nOnZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1tZXNzYWdlLWxldHRlci1zcGFjaW5nLC0uMDEyNWVtKX1bY2RzLXRleHQqPW1lc3NhZ2VdOjpiZWZvcmV7''@;'; + put 'put ''Y29udGVudDoiIjtkaXNwbGF5OmJsb2NrO2hlaWdodDowO3dpZHRoOjA7bWFyZ2luLWJvdHRvbTpjYWxjKCgodmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXRvcC1nYXAtaGVpZ2h0LC4xNDc1ZW0pICsgY2FsYygodmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LW1lc3NhZ2UtbGluZS1o''@;'; + put 'put ''ZWlnaHQsMS4yNWVtKSAtIDFlbSkvIDIpKSotMSkgKyAuMDM3ZW0pfVtjZHMtdGV4dCo9bWVzc2FnZV06OmFmdGVye2NvbnRlbnQ6IiI7ZGlzcGxheTpibG9jaztoZWlnaHQ6MDt3aWR0aDowO21hcmdpbi10b3A6Y2FsYygoKCgxZW0gLSB2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktdG9w''@;'; + put 'put ''LWdhcC1oZWlnaHQsLjE0NzVlbSkgLSB2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktYXNjZW5kZXItaGVpZ2h0LC4xNzAzZW0pIC0gdmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXgtaGVpZ2h0LC41MTdlbSkpICsgY2FsYygodmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LW1lc3Nh''@;'; + put 'put ''Z2UtbGluZS1oZWlnaHQsMS4yNWVtKSAtIDFlbSkvIDIpKSotMSkgLSAuMDQ0ZW0pfVtjZHMtdGV4dCo9c2Vjb25kYXJ5XXtmb250LXNpemU6dmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXNlY29uZGFyeS1mb250LXNpemUsY2FsYygxMyAqIDFyZW0gLyB2YXIoLS1jZHMtZ2xvYmFsLWJh''@;'; + put 'put ''c2UsMjApKSk7Zm9udC13ZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXNlY29uZGFyeS1mb250LXdlaWdodCw0MDApO2xpbmUtaGVpZ2h0OnZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1zZWNvbmRhcnktbGluZS1oZWlnaHQsMS4yMzA3N2VtKTtsZXR0ZXItc3BhY2luZzp2''@;'; + put 'put ''YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktc2Vjb25kYXJ5LWxldHRlci1zcGFjaW5nLC0uMDA3NjkyZW0pfVtjZHMtdGV4dCo9c2Vjb25kYXJ5XTo6YmVmb3Jle2NvbnRlbnQ6IiI7ZGlzcGxheTpibG9jaztoZWlnaHQ6MDt3aWR0aDowO21hcmdpbi1ib3R0b206Y2FsYygoKHZhcigtLWNk''@;'; + put 'put ''cy1nbG9iYWwtdHlwb2dyYXBoeS10b3AtZ2FwLWhlaWdodCwuMTQ3NWVtKSArIGNhbGMoKHZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1zZWNvbmRhcnktbGluZS1oZWlnaHQsMS4yMzA3N2VtKSAtIDFlbSkvIDIpKSotMSkgKyAuMDM3ZW0pfVtjZHMtdGV4dCo9c2Vjb25kYXJ5XTo6YWZ0''@;'; + put 'put ''ZXJ7Y29udGVudDoiIjtkaXNwbGF5OmJsb2NrO2hlaWdodDowO3dpZHRoOjA7bWFyZ2luLXRvcDpjYWxjKCgoKDFlbSAtIHZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS10b3AtZ2FwLWhlaWdodCwuMTQ3NWVtKSAtIHZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1hc2NlbmRlci1oZWln''@;'; + put 'put ''aHQsLjE3MDNlbSkgLSB2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHkteC1oZWlnaHQsLjUxN2VtKSkgKyBjYWxjKCh2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktc2Vjb25kYXJ5LWxpbmUtaGVpZ2h0LDEuMjMwNzdlbSkgLSAxZW0pLyAyKSkqLTEpIC0gLjA0NGVtKX1bY2RzLXRleHR+''@;'; + put 'put ''PWxpbmtde2NvbG9yOnZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1saW5rLWNvbG9yLHZhcigtLWNkcy1nbG9iYWwtY29sb3ItYmx1ZS04MDAsIzAwNjA4YSkpIWltcG9ydGFudDt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lIWltcG9ydGFudDtsaW5lLWhlaWdodDppbmhlcml0IWltcG9y''@;'; + put 'put ''dGFudDtmb250LXNpemU6aW5oZXJpdCFpbXBvcnRhbnR9W2Nkcy10ZXh0fj1saW5rXTpmb2N1c3tvdXRsaW5lOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24tb3V0bGluZSxIaWdobGlnaHQgc29saWQgMnB4KTtvdXRsaW5lLW9mZnNldDp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0''@;'; + put 'put ''LWludGVyYWN0aW9uLW91dGxpbmUtb2Zmc2V0LDFweCl9W2Nkcy10ZXh0fj1saW5rXTpob3Zlcntjb2xvcjp2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktbGluay1jb2xvci1ob3Zlcix2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWJsdWUtOTAwLCMwMDRiNmIpKSFpbXBvcnRhbnR9W2Nkcy10''@;'; + put 'put ''ZXh0fj1saW5rXTp2aXNpdGVkOm5vdChbY2RzLXRleHR+PXN0YXRpY10pe2NvbG9yOnZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1saW5rLWNvbG9yLXZpc2l0ZWQsdmFyKC0tY2RzLWdsb2JhbC1jb2xvci1sYXZlbmRlci02MDAsIzNiNDBjZSkpIWltcG9ydGFudH1bY2RzLXRleHR+PWxp''@;'; + put 'put ''bmtdOnZpc2l0ZWQ6bm90KFtjZHMtdGV4dH49c3RhdGljXSk6aG92ZXJ7Y29sb3I6dmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWxpbmstY29sb3ItdmlzaXRlZC1ob3Zlcix2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWxhdmVuZGVyLTcwMCwjMjQyOWMyKSkhaW1wb3J0YW50fUBtZWRpYSAo''@;'; + put 'put ''LXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOjApe1tjZHMtdGV4dD1saW5rXTpmb2N1c3tvdXRsaW5lOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24tb3V0bGluZS13ZWJraXQsNXB4IGF1dG8gLXdlYmtpdC1mb2N1cy1yaW5nLWNvbG9yKX19W2Nkcy10ZXh0fj1jb2Rl''@;'; + put 'put ''XXtjb2xvcjp2YXIoLS1jZHMtYWxpYXMtc3RhdHVzLWRhbmdlcix2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLXJlZC03MDAsI2UwMjIwMCkpO2ZvbnQtZmFtaWx5Om1vbm9zcGFjZTtmb250LXNpemU6MS4xZW19W2Nkcy1kaXZpZGVyXXtkaXNwbGF5OmJsb2NrO2hlaWdodDp2YXIoLS1jZHMtYWxp''@;'; + put 'put ''YXMtb2JqZWN0LWJvcmRlci13aWR0aC0xMDAsY2FsYygxICogMXJlbSAvIHZhcigtLWNkcy1nbG9iYWwtYmFzZSwyMCkpKTtvdmVyZmxvdzpoaWRkZW47Ym94LXNoYWRvdzp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWJvcmRlci1jb2xvcix2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWNvbnN0cnVj''@;'; + put 'put ''dGlvbi0yMDAsI2NiZDRkOCkpIDAgMCAwIHZhcigtLWNkcy1hbGlhcy1vYmplY3QtYm9yZGVyLXdpZHRoLTEwMCxjYWxjKDEgKiAxcmVtIC8gdmFyKC0tY2RzLWdsb2JhbC1iYXNlLDIwKSkpIGluc2V0fVtjZHMtdGV4dH49bGlnaHRde2ZvbnQtd2VpZ2h0OnZhcigtLWNkcy1nbG9iYWwtdHlw''@;'; + put 'put ''b2dyYXBoeS1mb250LXdlaWdodC1saWdodCwzMDApIWltcG9ydGFudH1bY2RzLXRleHR+PWp1c3RpZnlde3RleHQtYWxpZ246anVzdGlmeSFpbXBvcnRhbnR9W2Nkcy10ZXh0fj1sZWZ0XXt0ZXh0LWFsaWduOmxlZnQhaW1wb3J0YW50fVtjZHMtdGV4dH49cmlnaHRde3RleHQtYWxpZ246cmln''@;'; + put 'put ''aHQhaW1wb3J0YW50fVtjZHMtdGV4dH49Y2VudGVyXXt0ZXh0LWFsaWduOmNlbnRlciFpbXBvcnRhbnR9W2Nkcy10ZXh0fj1saGVde3BhZGRpbmc6LjA1cHggMH1bY2RzLXRleHR+PWxoZV06OmJlZm9yZXtjb250ZW50OiIiO21hcmdpbi10b3A6LS4xMjRlbTtkaXNwbGF5OmJsb2NrO2hlaWdo''@;'; + put 'put ''dDowfVtjZHMtdGV4dH49bGhlXTo6YWZ0ZXJ7Y29udGVudDoiIjttYXJnaW4tYm90dG9tOi0uMjIxZW07ZGlzcGxheTpibG9jaztoZWlnaHQ6MH1bY2RzLXRleHQqPWgyXSxbY2RzLXRleHQqPWgzXXtmb250LWZhbWlseTp2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktaGVhZGVyLWZvbnQt''@;'; + put 'put ''ZmFtaWx5LCAiQ2xhcml0eSBDaXR5IiwgIkF2ZW5pciBOZXh0Iiwgc2Fucy1zZXJpZik7Zm9udC1zaXplOjEuNHJlbTtmb250LXdlaWdodDoyMDA7Y29sb3I6dmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWNvbG9yLTQwMCk7bGluZS1oZWlnaHQ6MS43MTQzZW07bGV0dGVyLXNwYWNpbmc6''@;'; + put 'put ''LS4wMTc4NTdlbX1bY2RzLXRleHQqPWgyXTo6YmVmb3Jle2NvbnRlbnQ6IiI7ZGlzcGxheTpibG9jaztoZWlnaHQ6MDt3aWR0aDowO21hcmdpbi1ib3R0b206Y2FsYygoKHZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS10b3AtZ2FwLWhlaWdodCwuMTQ3NWVtKSArIGNhbGMoKDEuNzE0M2Vt''@;'; + put 'put ''IC0gMWVtKS8gMikpKi0xKSArIC4wMzdlbSl9W2Nkcy10ZXh0Kj1oMl06OmFmdGVye2NvbnRlbnQ6IiI7ZGlzcGxheTpibG9jaztoZWlnaHQ6MDt3aWR0aDowO21hcmdpbi10b3A6Y2FsYygoKCgxZW0gLSB2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktdG9wLWdhcC1oZWlnaHQsLjE0NzVl''@;'; + put 'put ''bSkgLSB2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktYXNjZW5kZXItaGVpZ2h0LC4xNzAzZW0pIC0gdmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXgtaGVpZ2h0LC41MTdlbSkpICsgY2FsYygoMS43MTQzZW0gLSAxZW0pLyAyKSkqLTEpIC0gLjA0NGVtKX1bY2RzLXRleHQqPWgzXXtm''@;'; + put 'put ''b250LXNpemU6MS4xcmVtO2xpbmUtaGVpZ2h0OjEuMDkwOWVtO2xldHRlci1zcGFjaW5nOi0uMDEzNjM2ZW19W2Nkcy10ZXh0Kj1oM106OmJlZm9yZXtjb250ZW50OiIiO2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjA7d2lkdGg6MDttYXJnaW4tYm90dG9tOmNhbGMoKCh2YXIoLS1jZHMtZ2xvYmFs''@;'; + put 'put ''LXR5cG9ncmFwaHktdG9wLWdhcC1oZWlnaHQsLjE0NzVlbSkgKyBjYWxjKCgxLjA5MDllbSAtIDFlbSkvIDIpKSotMSkgKyAuMDM3ZW0pfVtjZHMtdGV4dCo9aDNdOjphZnRlcntjb250ZW50OiIiO2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjA7d2lkdGg6MDttYXJnaW4tdG9wOmNhbGMoKCgoMWVt''@;'; + put 'put ''IC0gdmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXRvcC1nYXAtaGVpZ2h0LC4xNDc1ZW0pIC0gdmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWFzY2VuZGVyLWhlaWdodCwuMTcwM2VtKSAtIHZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS14LWhlaWdodCwuNTE3ZW0pKSArIGNhbGMo''@;'; + put 'put ''KDEuMDkwOWVtIC0gMWVtKS8gMikpKi0xKSAtIC4wNDRlbSl9Omhvc3R7YWxsOmluaXRpYWw7ZGlzcGxheTpibG9jazt2aXNpYmlsaXR5OmluaGVyaXQ7Zm9udC1mYW1pbHk6dmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWZvbnQtZmFtaWx5LCAiQ2xhcml0eSBDaXR5IiwgIkF2ZW5pciBO''@;'; + put 'put ''ZXh0Iiwgc2Fucy1zZXJpZik7Y29udGFpbjpsYXlvdXQ7Ym94LXNpemluZzpib3JkZXItYm94IWltcG9ydGFudDstd2Via2l0LWFwcGVhcmFuY2U6bm9uZSFpbXBvcnRhbnR9Kiw6YWZ0ZXIsOmJlZm9yZXtib3gtc2l6aW5nOmluaGVyaXQhaW1wb3J0YW50fXNsb3R7Zm9udC1mYW1pbHk6dmFy''@;'; + put 'put ''KC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWZvbnQtZmFtaWx5LCAiQ2xhcml0eSBDaXR5IiwgIkF2ZW5pciBOZXh0Iiwgc2Fucy1zZXJpZik7ZGlzcGxheTpjb250ZW50cyFpbXBvcnRhbnR9OjpzbG90dGVkKCope2ZvbnQtZmFtaWx5OmluaGVyaXQ7Ym94LXNpemluZzppbmhlcml0fTo6c2xv''@;'; + put 'put ''dHRlZCgqKTo6cGxhY2Vob2xkZXJ7Y29sb3I6dmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWNvbG9yLTIwMCx2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWNvbnN0cnVjdGlvbi02MDAsIzRmNjE2OSkpfTpob3N0KFtfaXMtYW5jaG9yXSksOmhvc3QoW3JvbGU9YnV0dG9uXSl7Y3Vyc29yOnBv''@;'; + put 'put ''aW50ZXIhaW1wb3J0YW50fTpob3N0KFtfaXMtYW5jaG9yXSkgOjpzbG90dGVkKCopLDpob3N0KFtyb2xlPWJ1dHRvbl0pIDo6c2xvdHRlZCgqKXtjdXJzb3I6cG9pbnRlciFpbXBvcnRhbnR9Omhvc3QoW3JvbGU9YnV0dG9uXVtkaXNhYmxlZF0pe2N1cnNvcjpub3QtYWxsb3dlZCFpbXBvcnRh''@;'; + put 'put ''bnR9Omhvc3QoW3JvbGU9YnV0dG9uXVtkaXNhYmxlZF0pIDo6c2xvdHRlZCgqKXtjdXJzb3I6bm90LWFsbG93ZWQhaW1wb3J0YW50O3BvaW50ZXItZXZlbnRzOm5vbmV9Omhvc3QoW2hpZGRlbl0pLFtoaWRkZW5de2Rpc3BsYXk6bm9uZSFpbXBvcnRhbnR9Omhvc3QoW2hpZGRlbio9ZmFsc2Vd''@;'; + put 'put ''KXtkaXNwbGF5OmJsb2NrIWltcG9ydGFudH06aG9zdChbcm9sZT1kaWFsb2ddW2hpZGRlbl0pLDpob3N0KFtyb2xlPWRpYWxvZ11baGlkZGVuXSkgOjpzbG90dGVkKCope2Rpc3BsYXk6YmxvY2shaW1wb3J0YW50O3Zpc2liaWxpdHk6aGlkZGVuIWltcG9ydGFudH06aG9zdChbcm9sZT1kaWFs''@;'; + put 'put ''b2ddW2hpZGRlbio9ZmFsc2VdKSw6aG9zdChbcm9sZT1kaWFsb2ddW2hpZGRlbio9ZmFsc2VdKSA6OnNsb3R0ZWQoKil7dmlzaWJpbGl0eTp2aXNpYmxlIWltcG9ydGFudH06aG9zdChbX2ZvY3VzZWRdKSAuaW5wdXQsOmhvc3QoW19mb2N1c2VkXSkgW2ZvY3VzYWJsZV0sOmhvc3QoW3RhYmlu''@;'; + put 'put ''ZGV4PSIwIl06Zm9jdXMpLDpob3N0KFt0YWJpbmRleD0iMCJdOmZvY3VzKSBbZm9jdXNhYmxlXSxbdGFiaW5kZXg9IjAiXVtmb2N1c2FibGVdOmZvY3Vze291dGxpbmU6SGlnaGxpZ2h0IHNvbGlkIDJweDtvdXRsaW5lOjVweCBhdXRvIC13ZWJraXQtZm9jdXMtcmluZy1jb2xvcjtvdXRsaW5l''@;'; + put 'put ''LW9mZnNldDp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLW91dGxpbmUtb2Zmc2V0LDFweCl9YDtmdW5jdGlvbiBtaihkKXtyZXR1cm5gY2FsYygoJHtkfSAvIHZhcigtLWNkcy1nbG9iYWwtYmFzZSkpICogMXJlbSlgfWNvbnN0IHcxZT0oZCxnKT0+Im1ldGhvZCI9PT1nLmtp''@;'; + put 'put ''bmQmJmcuZGVzY3JpcHRvciYmISgidmFsdWUiaW4gZy5kZXNjcmlwdG9yKT9Heihncyh7fSxnKSx7ZmluaXNoZXIoaCl7aC5jcmVhdGVQcm9wZXJ0eShnLmtleSxkKX19KTp7a2luZDoiZmllbGQiLGtleTpTeW1ib2woKSxwbGFjZW1lbnQ6Im93biIsZGVzY3JpcHRvcjp7fSxvcmlnaW5hbEtl''@;'; + put 'put ''eTpnLmtleSxpbml0aWFsaXplcigpeyJmdW5jdGlvbiI9PXR5cGVvZiBnLmluaXRpYWxpemVyJiYodGhpc1tnLmtleV09Zy5pbml0aWFsaXplci5jYWxsKHRoaXMpKX0sZmluaXNoZXIoaCl7aC5jcmVhdGVQcm9wZXJ0eShnLmtleSxkKX19O2Z1bmN0aW9uIE5LKGQpe3JldHVybihnLGgpPT52''@;'; + put 'put ''b2lkIDAhPT1oP3ZvaWQgZy5jb25zdHJ1Y3Rvci5jcmVhdGVQcm9wZXJ0eShoLGQpOncxZShkLGcpfWZ1bmN0aW9uIFZLKGQsZyl7c3dpdGNoKGcmJmcudHlwZSl7Y2FzZSBBcnJheTpjYXNlIE9iamVjdDpyZXR1cm4gZ3Moe3JlZmxlY3Q6ITF9LGcpO2Nhc2UgU3RyaW5nOnJldHVybiBncyh7''@;'; + put 'put ''cmVmbGVjdDohMCxhdHRyaWJ1dGU6RjcoZCksY29udmVydGVyOnt0b0F0dHJpYnV0ZTpoPT5ofHxudWxsfX0sZyk7Y2FzZSBOdW1iZXI6cmV0dXJuIGdzKHtyZWZsZWN0OiEwLGF0dHJpYnV0ZTpGNyhkKX0sZyk7Y2FzZSBCb29sZWFuOnJldHVybiBncyh7cmVmbGVjdDohMCxhdHRyaWJ1dGU6''@;'; + put 'put ''RjcoZCksY29udmVydGVyOnt0b0F0dHJpYnV0ZTpoPT5oPyIiOm51bGwsZnJvbUF0dHJpYnV0ZTpoPT5mdW5jdGlvbiBjMWUoZCl7cmV0dXJuIG51bGwhPWQmJiIiK2QhPSJmYWxzZSJ9KGgpfX0sZyk7Y2FzZSBEYXRlOnJldHVybiBncyh7cmVmbGVjdDohMSxjb252ZXJ0ZXI6e2Zyb21BdHRy''@;'; + put 'put ''aWJ1dGU6aD0+bmV3IERhdGUoaCl9fSxnKTtkZWZhdWx0OnJldHVybiBncyh7fSxnKX19ZnVuY3Rpb24gRTEoZCl7cmV0dXJuKGcsaCk9PihudWxsIT1kJiZkLnJlcXVpcmVkJiZmdW5jdGlvbiBiMWUoZCxnLGgpe2NvbnN0IHY9ZC5maXJzdFVwZGF0ZWQ7ZC5maXJzdFVwZGF0ZWQ9ZnVuY3Rp''@;'; + put 'put ''b24oeSl7aWYoaCYmaC5yZXF1aXJlZCYmJDYodGhpc1tnXSkpe2NvbnN0IEM9aC5yZXF1aXJlZE1lc3NhZ2V8fGZ1bmN0aW9uKEk9Indhcm5pbmciLGosdWUpe2NvbnN0IF9lPXVlLnRvTG9jYWxlTG93ZXJDYXNlKCk7cmV0dXJuYCR7ZVgoSSl9OiAke2p9IGlzIHJlcXVpcmVkIHRvIHVzZSAk''@;'; + put 'put ''e19lfSBjb21wb25lbnQuIFNldCB0aGUgSlMgUHJvcGVydHkgb3IgSFRNTCBBdHRyaWJ1dGUuXG5cbmArKHJWKCk/YEFuZ3VsYXI6IDwke19lfSBbJHtqfV09Ii4uLiI+PC8ke19lfT5cbmA6IiIpKyhYSigpP2BWdWU6IDwke19lfSA6JHtqfT0iLi4uIj48LyR7X2V9PlxuYDoiIikrKGlWKCk/''@;'; + put 'put ''YFJlYWN0OiA8JHtmdW5jdGlvbiBtc2UoZCl7cmV0dXJuIGVYKGZ1bmN0aW9uIGdzZShkKXtyZXR1cm4gZC5zcGxpdCgiLSIpLm1hcCgoZyxoKT0+aD9nLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK2cuc2xpY2UoMSkudG9Mb3dlckNhc2UoKTpnKS5qb2luKCIiKX0oZCkpfShfZSl9ICR7QmU9''@;'; + put 'put ''aixCZS5zdGFydHNXaXRoKCJhcmlhIik/RjcoQmUpOkJlfT17Li4ufSAvPlxuYDoiIikrYEhUTUw6IDwke19lfSAke0Y3KGopfT0iLi4uIj48LyR7X2V9PlxuSmF2YVNjcmlwdDogZG9jdW1lbnQucXVlcnlTZWxlY3RvcignJHtfZX0nKS4ke2p9ID0gJy4uLic7XG5cbmA7dmFyIEJlfShoLnJl''@;'; + put 'put ''cXVpcmVkLGcsdGhpcy50YWdOYW1lKTtpZigiZXJyb3IiPT09aC5yZXF1aXJlZCl0aHJvdyBFcnJvcihDKTtONy53YXJuKEMsdGhpcyl9diYmdi5jYWxsKHRoaXMseSl9fShnLGgsZCksTksoVksoaCxkKSkoZyxoKSl9ZnVuY3Rpb24gaksoZCl7cmV0dXJuKGcsaCk9Pntjb25zdCB2PVZLKGgs''@;'; + put 'put ''ZCk7cmV0dXJuIHYmJih2LnJlZmxlY3Q9IShudWxsPT1kfHwhZC5yZWZsZWN0KSYmZC5yZWZsZWN0LHYucmVmbGVjdCYmIShudWxsIT1kJiZkLmF0dHJpYnV0ZSkmJih2LmF0dHJpYnV0ZT0iXyIrRjcoaCkpKSxOSyh2KShnLGgpfX12YXIgYnAsazFlPW5MYEBrZXlmcmFtZXMgZmFkZUluQW5k''@;'; + put 'put ''T3V0ezAlLHRve29wYWNpdHk6MH03NSV7b3BhY2l0eToxfX06aG9zdHstLWNvbG9yOmN1cnJlbnRDb2xvcjtkaXNwbGF5OmlubGluZS1ibG9jaztoZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS03LGNhbGMoMTYgKiAxcmVtIC8gdmFyKC0tY2RzLWdsb2JhbC1iYXNlLDIwKSkpO3dpZHRo''@;'; + put 'put ''OnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNyxjYWxjKDE2ICogMXJlbSAvIHZhcigtLWNkcy1nbG9iYWwtYmFzZSwyMCkpKTttaW4taGVpZ2h0OnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNyxjYWxjKDE2ICogMXJlbSAvIHZhcigtLWNkcy1nbG9iYWwtYmFzZSwyMCkpKTttaW4td2lkdGg6dmFy''@;'; + put 'put ''KC0tY2RzLWdsb2JhbC1zcGFjZS03LGNhbGMoMTYgKiAxcmVtIC8gdmFyKC0tY2RzLWdsb2JhbC1iYXNlLDIwKSkpO21hcmdpbjowO3ZlcnRpY2FsLWFsaWduOm1pZGRsZTtmaWxsOnZhcigtLWNvbG9yKTtjb2xvcjp2YXIoLS1jb2xvcik7Y29udGFpbjpzdHJpY3Q7Y3Vyc29yOmluaGVyaXR9''@;'; + put 'put ''c3Zne2Rpc3BsYXk6YmxvY2t9Omhvc3QoW3NpemUqPXhzXSl7aGVpZ2h0OnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNSxjYWxjKDggKiAxcmVtIC8gdmFyKC0tY2RzLWdsb2JhbC1iYXNlLDIwKSkpO3dpZHRoOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNSxjYWxjKDggKiAxcmVtIC8gdmFyKC0t''@;'; + put 'put ''Y2RzLWdsb2JhbC1iYXNlLDIwKSkpO21pbi1oZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS01LGNhbGMoOCAqIDFyZW0gLyB2YXIoLS1jZHMtZ2xvYmFsLWJhc2UsMjApKSk7bWluLXdpZHRoOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNSxjYWxjKDggKiAxcmVtIC8gdmFyKC0tY2RzLWds''@;'; + put 'put ''b2JhbC1iYXNlLDIwKSkpfTpob3N0KFtzaXplKj1zbV0pe2hlaWdodDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTcsY2FsYygxNiAqIDFyZW0gLyB2YXIoLS1jZHMtZ2xvYmFsLWJhc2UsMjApKSk7d2lkdGg6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS03LGNhbGMoMTYgKiAxcmVtIC8gdmFyKC0t''@;'; + put 'put ''Y2RzLWdsb2JhbC1iYXNlLDIwKSkpO21pbi1oZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS03LGNhbGMoMTYgKiAxcmVtIC8gdmFyKC0tY2RzLWdsb2JhbC1iYXNlLDIwKSkpO21pbi13aWR0aDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTcsY2FsYygxNiAqIDFyZW0gLyB2YXIoLS1jZHMt''@;'; + put 'put ''Z2xvYmFsLWJhc2UsMjApKSl9Omhvc3QoW3NpemUqPW1kXSl7aGVpZ2h0OnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtOSxjYWxjKDI0ICogMXJlbSAvIHZhcigtLWNkcy1nbG9iYWwtYmFzZSwyMCkpKTt3aWR0aDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTksY2FsYygyNCAqIDFyZW0gLyB2YXIo''@;'; + put 'put ''LS1jZHMtZ2xvYmFsLWJhc2UsMjApKSk7bWluLWhlaWdodDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTksY2FsYygyNCAqIDFyZW0gLyB2YXIoLS1jZHMtZ2xvYmFsLWJhc2UsMjApKSk7bWluLXdpZHRoOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtOSxjYWxjKDI0ICogMXJlbSAvIHZhcigtLWNk''@;'; + put 'put ''cy1nbG9iYWwtYmFzZSwyMCkpKX06aG9zdChbc2l6ZSo9bGddKXtoZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0xMSxjYWxjKDM2ICogMXJlbSAvIHZhcigtLWNkcy1nbG9iYWwtYmFzZSwyMCkpKTt3aWR0aDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTExLGNhbGMoMzYgKiAxcmVtIC8g''@;'; + put 'put ''dmFyKC0tY2RzLWdsb2JhbC1iYXNlLDIwKSkpO21pbi1oZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0xMSxjYWxjKDM2ICogMXJlbSAvIHZhcigtLWNkcy1nbG9iYWwtYmFzZSwyMCkpKTttaW4td2lkdGg6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0xMSxjYWxjKDM2ICogMXJlbSAvIHZh''@;'; + put 'put ''cigtLWNkcy1nbG9iYWwtYmFzZSwyMCkpKX06aG9zdChbc2l6ZSo9eGxdKXtoZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0xMixjYWxjKDQ4ICogMXJlbSAvIHZhcigtLWNkcy1nbG9iYWwtYmFzZSwyMCkpKTt3aWR0aDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTEyLGNhbGMoNDggKiAx''@;'; + put 'put ''cmVtIC8gdmFyKC0tY2RzLWdsb2JhbC1iYXNlLDIwKSkpO21pbi1oZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0xMixjYWxjKDQ4ICogMXJlbSAvIHZhcigtLWNkcy1nbG9iYWwtYmFzZSwyMCkpKTttaW4td2lkdGg6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0xMixjYWxjKDQ4ICogMXJl''@;'; + put 'put ''bSAvIHZhcigtLWNkcy1nbG9iYWwtYmFzZSwyMCkpKX06aG9zdChbc2l6ZSo9eHhsXSl7aGVpZ2h0OmNhbGModmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0xMyxjYWxjKDY0ICogMXJlbSAvIHZhcigtLWNkcy1nbG9iYWwtYmFzZSwyMCkpKSAtIHZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNSxjYWxj''@;'; + put 'put ''KDggKiAxcmVtIC8gdmFyKC0tY2RzLWdsb2JhbC1iYXNlLDIwKSkpKTt3aWR0aDpjYWxjKHZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMTMsY2FsYyg2NCAqIDFyZW0gLyB2YXIoLS1jZHMtZ2xvYmFsLWJhc2UsMjApKSkgLSB2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTUsY2FsYyg4ICogMXJlbSAv''@;'; + put 'put ''IHZhcigtLWNkcy1nbG9iYWwtYmFzZSwyMCkpKSk7bWluLWhlaWdodDpjYWxjKHZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMTMsY2FsYyg2NCAqIDFyZW0gLyB2YXIoLS1jZHMtZ2xvYmFsLWJhc2UsMjApKSkgLSB2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTUsY2FsYyg4ICogMXJlbSAvIHZhcigt''@;'; + put 'put ''LWNkcy1nbG9iYWwtYmFzZSwyMCkpKSk7bWluLXdpZHRoOmNhbGModmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0xMyxjYWxjKDY0ICogMXJlbSAvIHZhcigtLWNkcy1nbG9iYWwtYmFzZSwyMCkpKSAtIHZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNSxjYWxjKDggKiAxcmVtIC8gdmFyKC0tY2RzLWds''@;'; + put 'put ''b2JhbC1iYXNlLDIwKSkpKX06aG9zdChbc2l6ZSo9Zml0XSl7aGVpZ2h0OmF1dG87d2lkdGg6YXV0bztjb250YWluOmxheW91dH06aG9zdChbc3RhdHVzPXN1Y2Nlc3NdKXstLWNvbG9yOnZhcigtLWNkcy1hbGlhcy1zdGF0dXMtc3VjY2VzcywgdmFyKC0tY2RzLWdsb2JhbC1jb2xvci1ncmVl''@;'; + put 'put ''bi03MDAsICM0MjgxMGUpKX06aG9zdChbc3RhdHVzPWRhbmdlcl0pey0tY29sb3I6dmFyKC0tY2RzLWFsaWFzLXN0YXR1cy1kYW5nZXIsIHZhcigtLWNkcy1nbG9iYWwtY29sb3ItcmVkLTcwMCwgI2UwMjIwMCkpfTpob3N0KFtzdGF0dXM9d2FybmluZ10pey0tY29sb3I6dmFyKC0tY2RzLWFs''@;'; + put 'put ''aWFzLXN0YXR1cy13YXJuaW5nLWRhcmssIHZhcigtLWNkcy1nbG9iYWwtY29sb3Itb2NocmUtODAwLCAjYTM2NTAwKSl9Omhvc3QoW3N0YXR1cz1pbmZvXSl7LS1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtc3RhdHVzLWluZm8tc2hhZGUsIHZhcigtLWNkcy1nbG9iYWwtY29sb3ItYmx1ZS04MDAs''@;'; + put 'put ''ICMwMDYwOGEpKX06aG9zdChbaW52ZXJzZV0pey0tY29sb3I6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1jb25zdHJ1Y3Rpb24tMjAwLCAjY2JkNGQ4KX06aG9zdChbZGlyZWN0aW9uPXVwXSl7dHJhbnNmb3JtOnJvdGF0ZSgwKX06aG9zdChbZGlyZWN0aW9uPWRvd25dKXt0cmFuc2Zvcm06cm90''@;'; + put 'put ''YXRlKDE4MGRlZyl9Omhvc3QoW2RpcmVjdGlvbj1yaWdodF0pe3RyYW5zZm9ybTpyb3RhdGUoOTBkZWcpfTpob3N0KFtkaXJlY3Rpb249bGVmdF0pe3RyYW5zZm9ybTpyb3RhdGUoMjcwZGVnKX06aG9zdChbZmxpcD1ob3Jpem9udGFsXSl7dHJhbnNmb3JtOnNjYWxlKC0xKSByb3RhdGVYKDE4''@;'; + put 'put ''MGRlZyl9Omhvc3QoW2ZsaXA9dmVydGljYWxdKXt0cmFuc2Zvcm06c2NhbGUoLTEpIHJvdGF0ZVkoMTgwZGVnKX0uYWxlcnQsLmJhZGdle2ZpbGw6dmFyKC0tYmFkZ2UtY29sb3IsdmFyKC0tY2RzLWFsaWFzLXN0YXR1cy1kYW5nZXIsdmFyKC0tY2RzLWdsb2JhbC1jb2xvci1yZWQtNzAwLCNl''@;'; + put 'put ''MDIyMDApKSl9Omhvc3QoW2JhZGdlPXN1Y2Nlc3NdKXstLWJhZGdlLWNvbG9yOnZhcigtLWNkcy1hbGlhcy1zdGF0dXMtc3VjY2VzcywgdmFyKC0tY2RzLWdsb2JhbC1jb2xvci1ncmVlbi03MDAsICM0MjgxMGUpKX06aG9zdChbYmFkZ2U9ZGFuZ2VyXSl7LS1iYWRnZS1jb2xvcjp2YXIoLS1j''@;'; + put 'put ''ZHMtYWxpYXMtc3RhdHVzLWRhbmdlciwgdmFyKC0tY2RzLWdsb2JhbC1jb2xvci1yZWQtNzAwLCAjZTAyMjAwKSl9Omhvc3QoW2JhZGdlKj13YXJuaW5nXSl7LS1iYWRnZS1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtc3RhdHVzLXdhcm5pbmctZGFyaywgdmFyKC0tY2RzLWdsb2JhbC1jb2xvci1v''@;'; + put 'put ''Y2hyZS04MDAsICNhMzY1MDApKX06aG9zdChbYmFkZ2U9aW5oZXJpdF0pey0tYmFkZ2UtY29sb3I6Y3VycmVudENvbG9yfTpob3N0KFtiYWRnZT1pbmZvXSl7LS1iYWRnZS1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtc3RhdHVzLWluZm8sIHZhcigtLWNkcy1nbG9iYWwtY29sb3ItYmx1ZS03MDAs''@;'; + put 'put ''ICMwMDc5YWQpKX06aG9zdChbYmFkZ2U9aW5oZXJpdC10cmlhbmdsZV0pey0tYmFkZ2UtY29sb3I6Y3VycmVudENvbG9yfTpob3N0KFtiYWRnZV1baW52ZXJzZV0pey0tYmFkZ2UtY29sb3I6dmFyKC0tY2RzLWFsaWFzLXN0YXR1cy1kYW5nZXIsIHZhcigtLWNkcy1nbG9iYWwtY29sb3ItcmVk''@;'; + put 'put ''LTcwMCwgI2UwMjIwMCkpfTpob3N0KFtiYWRnZT1zdWNjZXNzXVtpbnZlcnNlXSl7LS1iYWRnZS1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtc3RhdHVzLXN1Y2Nlc3MsIHZhcigtLWNkcy1nbG9iYWwtY29sb3ItZ3JlZW4tNzAwLCAjNDI4MTBlKSl9Omhvc3QoW2JhZGdlKj13YXJuaW5nXVtpbnZl''@;'; + put 'put ''cnNlXSl7LS1iYWRnZS1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtc3RhdHVzLXdhcm5pbmctZGFyaywgdmFyKC0tY2RzLWdsb2JhbC1jb2xvci1vY2hyZS04MDAsICNhMzY1MDApKX06aG9zdChbYmFkZ2UqPWluaGVyaXRdW2ludmVyc2VdKXstLWJhZGdlLWNvbG9yOmN1cnJlbnRDb2xvcn06aG9z''@;'; + put 'put ''dChbYmFkZ2U9aW5mb11baW52ZXJzZV0pey0tYmFkZ2UtY29sb3I6dmFyKC0tY2RzLWFsaWFzLXN0YXR1cy1pbmZvLCB2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWJsdWUtNzAwLCAjMDA3OWFkKSl9LmNkcy1pbnRlcm5hbC1kb3QtMXthbmltYXRpb246ZmFkZUluQW5kT3V0IDEuOHMgZWFzZS1p''@;'; + put 'put ''biAwcyBpbmZpbml0ZX0uY2RzLWludGVybmFsLWRvdC0ye2FuaW1hdGlvbjpmYWRlSW5BbmRPdXQgMS44cyBlYXNlLW91dCAuNDIycyBpbmZpbml0ZX0uY2RzLWludGVybmFsLWRvdC0ze2FuaW1hdGlvbjpmYWRlSW5BbmRPdXQgMS44cyBlYXNlLW91dCAuNjc1cyBpbmZpbml0ZX1AbWVkaWEg''@;'; + put 'put ''KHByZWZlcnMtcmVkdWNlZC1tb3Rpb24pey5jZHMtaW50ZXJuYWwtZG90LTEsLmNkcy1pbnRlcm5hbC1kb3QtMiwuY2RzLWludGVybmFsLWRvdC0ze2FuaW1hdGlvbjpub25lfX1gO2Z1bmN0aW9uIGxMKGQsZyl7bGV0IGg9IiI7c3dpdGNoKGZ1bmN0aW9uIFMxZShkKXtzd2l0Y2goITApe2Nh''@;'; + put 'put ''c2UgJDYoZCk6cmV0dXJuIGJwLk5pbFNpemVWYWx1ZTtjYXNlIGZ1bmN0aW9uIFpLKGQpe3JldHVyblsieHhzIiwieHMiLCJzbSIsIm1kIiwibGciLCJ4bCIsInh4bCJdLmluZGV4T2YoZCk+LTF9KGQpOnJldHVybiBicC5WYWxpZFNpemVTdHJpbmc7Y2FzZSBmdW5jdGlvbiBrRChkKXtyZXR1''@;'; + put 'put ''cm4ga2soZCkmJiFYTihkLnRyaW0oKSkmJitkPT0rZH0oZCk6cmV0dXJuIGJwLlZhbGlkTnVtZXJpY1N0cmluZztkZWZhdWx0OnJldHVybiBicC5CYWRTaXplVmFsdWV9fShmdW5jdGlvbiBNMWUoZCl7cmV0dXJuICQ2KGQpPyIiOmZ1bmN0aW9uIEFzZShkLGcsaD0iIil7Y29uc3Qgdj1kLnNw''@;'; + put 'put ''bGl0KCIgIikseT0iIj09PWg/di5maWx0ZXIoQz0+QyE9PWcpOnYubWFwKEM9PkM9PT1nP2g6Qyk7cmV0dXJuIHkubGVuZ3RoPjA/eS5qb2luKCIgIik6IiJ9KGQsImZpdCIpfShnKSkpe2Nhc2UgYnAuVmFsaWROdW1lcmljU3RyaW5nOnJldHVybiBoPW1qKHBhcnNlSW50KGcpKSx2b2lkIGZ1''@;'; + put 'put ''bmN0aW9uIEExZShkLC4uLmcpe2cuZm9yRWFjaCgoW2gsdl0pPT57ZC5zdHlsZVtoXT12fSl9KGQsLi4uZnVuY3Rpb24gZjAoZCxnKXtyZXR1cm4hVHkoZCkmJmQuaW5kZXhPZigiZml0Iik+LTE/W1sid2lkdGgiLCJhdXRvIl0sWyJoZWlnaHQiLCJhdXRvIl0sWyJtaW4td2lkdGgiLGddLFsi''@;'; + put 'put ''bWluLWhlaWdodCIsZ11dOltbIndpZHRoIixnXSxbImhlaWdodCIsZ10sWyJtaW4td2lkdGgiLGddLFsibWluLWhlaWdodCIsZ11dfShnLGgpKTtjYXNlIGJwLlZhbGlkU2l6ZVN0cmluZzpjYXNlIGJwLk5pbFNpemVWYWx1ZTpyZXR1cm4gdm9pZCBmdW5jdGlvbiB5MWUoZCwuLi5nKXtnLmZv''@;'; + put 'put ''ckVhY2goaD0+e2Quc3R5bGVbaF09IiJ9KX0oZCwid2lkdGgiLCJoZWlnaHQiLCJtaW4td2lkdGgiLCJtaW4taGVpZ2h0Iik7ZGVmYXVsdDpyZXR1cm59fWZ1bmN0aW9uIHNMKGQpe3JldHVybiBkLmJhZGdlJiYoImluaGVyaXQtdHJpYW5nbGUiPT09ZC5iYWRnZXx8Indhcm5pbmctdHJpYW5n''@;'; + put 'put ''bGUiPT09ZC5iYWRnZSl9IWZ1bmN0aW9uKGQpe2QuQmFkU2l6ZVZhbHVlPSJiYWQtdmFsdWUiLGQuVmFsaWRTaXplU3RyaW5nPSJ2YWx1ZS1pcy1zdHJpbmciLGQuVmFsaWROdW1lcmljU3RyaW5nPSJ2YWx1ZS1pcy1udW1lcmljIixkLk5pbFNpemVWYWx1ZT0idmFsdWUtaXMtbmlsIn0oYnB8''@;'; + put 'put ''fChicD17fSkpO2NsYXNzIGE0IGV4dGVuZHMgSnl7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuX3NoYXBlPSJ1bmtub3duIix0aGlzLnNvbGlkPSExLHRoaXMuaW52ZXJzZT0hMX1zdGF0aWMgZ2V0IHN0eWxlcygpe3JldHVybltISyxrMWVdfWdldCBzaGFwZSgpe3Jl''@;'; + put 'put ''dHVybiB0aGlzLl9zaGFwZX1zZXQgc2hhcGUoZyl7aWYoZnVuY3Rpb24gY2coZCxnKXtyZXR1cm4hJDYoZCkmJkdKKGQsZyl9KGcsdGhpcy5fc2hhcGUpKXtjb25zdCBoPXRoaXMuX3NoYXBlO3RoaXMuX3NoYXBlPWcsdGhpcy5yZXF1ZXN0VXBkYXRlKCJzaGFwZSIsaCl9fWdldCBzaXplKCl7''@;'; + put 'put ''cmV0dXJuIHRoaXMuX3NpemV9c2V0IHNpemUoZyl7aWYoZnVuY3Rpb24gV0ooZCxnKXtyZXR1cm4gZnVuY3Rpb24gekooZCl7cmV0dXJuIHlEKFN0cmluZyxkKXx8VHkoZCl9KGQpJiZHSihkLGcpfShnLHRoaXMuX3NpemUpKXtjb25zdCBoPXRoaXMuX3NpemU7dGhpcy5fc2l6ZT1nLGxMKHRo''@;'; + put 'put ''aXMsZyksdGhpcy5yZXF1ZXN0VXBkYXRlKCJzaXplIixoKX19dXBkYXRlZChnKXtpZihnLmhhcygiaW5uZXJPZmZzZXQiKSYmdGhpcy5pbm5lck9mZnNldD4wKXtjb25zdCBoPW1qKC0xKnRoaXMuaW5uZXJPZmZzZXQpLHY9YGNhbGMoMTAwJSArICR7bWooMip0aGlzLmlubmVyT2Zmc2V0KX0p''@;'; + put 'put ''YDt0aGlzLnN2Zy5zdHlsZS53aWR0aD12LHRoaXMuc3ZnLnN0eWxlLmhlaWdodD12LHRoaXMuc3ZnLnN0eWxlLm1hcmdpbj1gJHtofSAwIDAgJHtofWB9fWZpcnN0VXBkYXRlZChnKXtpZihzdXBlci5maXJzdFVwZGF0ZWQoZyksdGhpcy5pc0Nvbm5lY3RlZCl7bGV0IGg9InVua25vd24iO3Ro''@;'; + put 'put ''aXMuc3Vic2NyaXB0aW9uPUoxLnN0YXRlVXBkYXRlcy5zdWJzY3JpYmUodj0+eyJpY29uUmVnaXN0cnkiPT09di5rZXkmJmZzLnJlZ2lzdHJ5W3RoaXMuc2hhcGVdJiZoIT09dGhpcy5zaGFwZSYmKGg9dGhpcy5zaGFwZSx0aGlzLnJlcXVlc3RVcGRhdGUoInNoYXBlIikpfSl9fWRpc2Nvbm5l''@;'; + put 'put ''Y3RlZENhbGxiYWNrKCl7dmFyIGc7c3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSxudWxsPT0oZz10aGlzLnN1YnNjcmlwdGlvbil8fGcudW5zdWJzY3JpYmUoKX1yZW5kZXIoKXtyZXR1cm4ga2soZnMucmVnaXN0cnlbdGhpcy5zaGFwZV0pP280YDxzcGFuIC5pbm5lckhUTUw9IiR7ZnMu''@;'; + put 'put ''cmVnaXN0cnlbdGhpcy5zaGFwZV19Ij48L3NwYW4+YDpwMWVgPHN2ZyAuaW5uZXJIVE1MPSIke2Z1bmN0aW9uIHgxZShkKXt2YXIgdix5LEMsSSxqO2NvbnN0IGc9bnVsbCE9KHY9ZnMucmVnaXN0cnlbZC5zaGFwZV0pP3Y6ZnMucmVnaXN0cnkudW5rbm93bjtsZXQgaD1kLnNvbGlkJiZnLnNv''@;'; + put 'put ''bGlkP2cuc29saWQ6Zy5vdXRsaW5lO3JldHVybiBkLmJhZGdlJiYhc0woZCkmJihoPWQuc29saWQ/bnVsbCE9KHk9Zy5zb2xpZEJhZGdlZCk/eTpoOm51bGwhPShDPWcub3V0bGluZUJhZGdlZCk/QzpoKSxzTChkKSYmKGg9ZC5zb2xpZD9udWxsIT0oST1nLnNvbGlkQWxlcnRlZCk/STpoOm51''@;'; + put 'put ''bGwhPShqPWcub3V0bGluZUFsZXJ0ZWQpP2o6aCksaH0odGhpcykrZnVuY3Rpb24gRTFlKGQpe2xldCBnPSIiO3JldHVybiBkLmJhZGdlJiZzTChkKT9nPSc8cGF0aCBkPSJNMjYuODUgMS4xNEwyMS4xMyAxMWExLjI4IDEuMjggMCAwMDEuMSAyaDExLjQ1YTEuMjggMS4yOCAwIDAwMS4xLTJs''@;'; + put 'put ''LTUuNzItOS44NmExLjI4IDEuMjggMCAwMC0yLjIxIDB6IiBjbGFzcz0iYWxlcnQiIC8+JzpkLmJhZGdlJiYoZz0nPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iYmFkZ2UiIC8+JyksZ30odGhpcyl9IiB2aWV3Qm94PSIwIDAgMzYgMzYiIHhtbG5zPSJodHRwOi8vd3d3Lncz''@;'; + put 'put ''Lm9yZy8yMDAwL3N2ZyIgYXJpYS1oaWRkZW49InRydWUiPjwvc3ZnPmB9fVYyKFtFMSh7dHlwZTpTdHJpbmd9KV0sYTQucHJvdG90eXBlLCJzaGFwZSIsbnVsbCksVjIoW0UxKHt0eXBlOlN0cmluZ30pXSxhNC5wcm90b3R5cGUsInNpemUiLG51bGwpLFYyKFtFMSh7dHlwZTpTdHJpbmd9KV0s''@;'; + put 'put ''YTQucHJvdG90eXBlLCJkaXJlY3Rpb24iLHZvaWQgMCksVjIoW0UxKHt0eXBlOlN0cmluZ30pXSxhNC5wcm90b3R5cGUsImZsaXAiLHZvaWQgMCksVjIoW0UxKHt0eXBlOkJvb2xlYW59KV0sYTQucHJvdG90eXBlLCJzb2xpZCIsdm9pZCAwKSxWMihbRTEoe3R5cGU6U3RyaW5nfSldLGE0LnBy''@;'; + put 'put ''b3RvdHlwZSwic3RhdHVzIix2b2lkIDApLFYyKFtFMSh7dHlwZTpCb29sZWFufSldLGE0LnByb3RvdHlwZSwiaW52ZXJzZSIsdm9pZCAwKSxWMihbRTEoe3R5cGU6U3RyaW5nfSldLGE0LnByb3RvdHlwZSwiYmFkZ2UiLHZvaWQgMCksVjIoW2pLKHt0eXBlOk51bWJlcn0pXSxhNC5wcm90b3R5''@;'; + put 'put ''cGUsImlubmVyT2Zmc2V0Iix2b2lkIDApLFYyKFtmdW5jdGlvbiBDMWUoZCxnKXtyZXR1cm4oKHtmaW5pc2hlcjpkLGRlc2NyaXB0b3I6Z30pPT4oaCx2KT0+e3ZhciB5O2lmKHZvaWQgMD09PXYpe2NvbnN0IEM9bnVsbCE9PSh5PWgub3JpZ2luYWxLZXkpJiZ2b2lkIDAhPT15P3k6aC5rZXks''@;'; + put 'put ''ST1udWxsIT1nP3traW5kOiJtZXRob2QiLHBsYWNlbWVudDoicHJvdG90eXBlIixrZXk6QyxkZXNjcmlwdG9yOmcoaC5rZXkpfTpHeihncyh7fSxoKSx7a2V5OkN9KTtyZXR1cm4gbnVsbCE9ZCYmKEkuZmluaXNoZXI9ZnVuY3Rpb24oail7ZChqLEMpfSksSX17Y29uc3QgQz1oLmNvbnN0cnVj''@;'; + put 'put ''dG9yO3ZvaWQgMCE9PWcmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShoLHYsZyh2KSksbnVsbD09ZHx8ZChDLHYpfX0pKHtkZXNjcmlwdG9yOmg9Pntjb25zdCB2PXtnZXQoKXt2YXIgeSxDO3JldHVybiBudWxsIT09KEM9bnVsbD09PSh5PXRoaXMucmVuZGVyUm9vdCl8fHZvaWQgMD09PXk/dm9p''@;'; + put 'put ''ZCAwOnkucXVlcnlTZWxlY3RvcihkKSkmJnZvaWQgMCE9PUM/QzpudWxsfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH07aWYoZyl7Y29uc3QgeT0ic3ltYm9sIj09dHlwZW9mIGg/U3ltYm9sKCk6Il9fIitoO3YuZ2V0PWZ1bmN0aW9uKCl7dmFyIEMsSTtyZXR1cm4gdm9pZCAwPT09''@;'; + put 'put ''dGhpc1t5XSYmKHRoaXNbeV09bnVsbCE9PShJPW51bGw9PT0oQz10aGlzLnJlbmRlclJvb3QpfHx2b2lkIDA9PT1DP3ZvaWQgMDpDLnF1ZXJ5U2VsZWN0b3IoZCkpJiZ2b2lkIDAhPT1JP0k6bnVsbCksdGhpc1t5XX19cmV0dXJuIHZ9fSl9KCJzdmciKV0sYTQucHJvdG90eXBlLCJzdmciLHZv''@;'; + put 'put ''aWQgMCksQ0soImNkcy1pY29uIixhNCk7Y2xhc3MgVDFle2NvbnN0cnVjdG9yKGcpe3RoaXMuaG9zdD1nLHRoaXMuaG9zdC5hZGRDb250cm9sbGVyKHRoaXMpfWhvc3RDb25uZWN0ZWQoKXt2YXIgZz10aGlzO3JldHVybiBUSyhmdW5jdGlvbiooKXt5aWVsZCBnLmhvc3QudXBkYXRlQ29tcGxl''@;'; + put 'put ''dGUsZy5ob3N0LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLGg9PmcuZW11bGF0ZUFjdGl2ZShoKSksZy5ob3N0LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsaD0+Zy5lbXVsYXRlQWN0aXZlKGgpKSxnLmhvc3QuYWRkRXZlbnRMaXN0ZW5lcigia2V5dXAiLCgpPT5nLmVtdWxhdGVJ''@;'; + put 'put ''bmFjdGl2ZSgpKSxnLmhvc3QuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsKCk9PmcuZW11bGF0ZUluYWN0aXZlKCkpLGcuaG9zdC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIiwoKT0+Zy5lbXVsYXRlSW5hY3RpdmUoKSl9KSgpfWVtdWxhdGVBY3RpdmUoZyl7dmFyIGg7dGhpcy5ob3N0LmRp''@;'; + put 'put ''c2FibGVkfHxudWxsPT0oaD10aGlzLmhvc3QpfHxoLnNldEF0dHJpYnV0ZSgiY2RzLWFjdGl2ZSIsIiIpLCJTcGFjZSI9PT1nLmNvZGUmJmcudGFyZ2V0PT09dGhpcy5ob3N0JiZnLnByZXZlbnREZWZhdWx0KCl9ZW11bGF0ZUluYWN0aXZlKCl7dGhpcy5ob3N0LnJlbW92ZUF0dHJpYnV0ZSgi''@;'; + put 'put ''Y2RzLWFjdGl2ZSIpfX1jbGFzcyBJMWV7Y29uc3RydWN0b3IoZyl7dGhpcy5ob3N0PWcsdGhpcy5ob3N0LmFkZENvbnRyb2xsZXIodGhpcyl9aG9zdENvbm5lY3RlZCgpe3RoaXMuaG9zdC5wb3B1cCYmKHRoaXMuaG9zdC5hcmlhQ29udHJvbHM9dGhpcy5ob3N0LnBvcHVwLHRoaXMuaG9zdC5h''@;'; + put 'put ''cmlhSGFzUG9wdXA9InRydWUiLHRoaXMuaG9zdC5hcmlhRXhwYW5kZWQ9ImZhbHNlIil9fWNsYXNzIFdLe2NvbnN0cnVjdG9yKGcpe3RoaXMuaG9zdD1nLHRoaXMuaG9zdC5hZGRDb250cm9sbGVyKHRoaXMpfWhvc3RVcGRhdGVkKCl7bnVsbCE9PXRoaXMuaG9zdC5kaXNhYmxlZCYmKHRoaXMu''@;'; + put 'put ''aG9zdC5hcmlhRGlzYWJsZWQ9dGhpcy5ob3N0LmRpc2FibGVkKSx0aGlzLmhvc3QucmVhZG9ubHkmJih0aGlzLmhvc3QuYXJpYURpc2FibGVkPW51bGwpfX1jbGFzcyBMMWV7Y29uc3RydWN0b3IoZyl7dGhpcy5ob3N0PWcsdGhpcy5ob3N0LmFkZENvbnRyb2xsZXIodGhpcyl9aG9zdFVwZGF0''@;'; + put 'put ''ZWQoKXtudWxsIT10aGlzLmhvc3QucHJlc3NlZCYmKHRoaXMuaG9zdC5hcmlhUHJlc3NlZD10aGlzLmhvc3QucHJlc3NlZD8idHJ1ZSI6ImZhbHNlIiksdGhpcy5ob3N0LnJlYWRvbmx5JiYodGhpcy5ob3N0LmFyaWFQcmVzc2VkPW51bGwpfX1jbGFzcyBVS3tjb25zdHJ1Y3RvcihnKXt0aGlz''@;'; + put 'put ''Lmhvc3Q9Zyx0aGlzLmhvc3QuYWRkQ29udHJvbGxlcih0aGlzKX1ob3N0Q29ubmVjdGVkKCl7dGhpcy5ob3N0LnRhYkluZGV4PTB9aG9zdFVwZGF0ZWQoKXt0aGlzLmhvc3Qucm9sZT10aGlzLmhvc3QucmVhZG9ubHk/bnVsbDoiYnV0dG9uIix0aGlzLmhvc3QudGFiSW5kZXg9dGhpcy5ob3N0''@;'; + put 'put ''LmRpc2FibGVkPy0xOjAsdGhpcy5ob3N0LnJlYWRvbmx5JiZ0aGlzLmhvc3QucmVtb3ZlQXR0cmlidXRlKCJ0YWJpbmRleCIpfX1jbGFzcyBSMWV7Y29uc3RydWN0b3IoZyl7dGhpcy5ob3N0PWcsdGhpcy5ob3N0LmFkZENvbnRyb2xsZXIodGhpcyl9Z2V0IGN1cnJlbnRBbmNob3IoKXt2YXIg''@;'; + put 'put ''ZztyZXR1cm4iQSI9PT0obnVsbD09KGc9dGhpcy5ob3N0LnBhcmVudEVsZW1lbnQpP3ZvaWQgMDpnLnRhZ05hbWUpP3RoaXMuaG9zdC5wYXJlbnRFbGVtZW50Om51bGx9aG9zdENvbm5lY3RlZCgpe3RoaXMuc2V0QW5jaG9yKCl9aG9zdFVwZGF0ZWQoKXt0aGlzLnNldEFuY2hvcigpfXNldEFu''@;'; + put 'put ''Y2hvcigpe3RoaXMuY3VycmVudEFuY2hvciYmdGhpcy5jdXJyZW50QW5jaG9yIT09dGhpcy5wcmV2aW91c0FuY2hvciYmKHRoaXMucHJldmlvdXNBbmNob3I9dGhpcy5jdXJyZW50QW5jaG9yLHRoaXMuaG9zdC5yZWFkb25seT0hMCx0aGlzLmN1cnJlbnRBbmNob3Iuc3R5bGUubGluZUhlaWdo''@;'; + put 'put ''dD0iMCIsdGhpcy5jdXJyZW50QW5jaG9yLnN0eWxlLnRleHREZWNvcmF0aW9uPSJub25lIil9fWNvbnN0IHZqPWQ9Pm51bGwhPWQ/ZDpOdTtmdW5jdGlvbiBRSyhkKXtkLnByZXZlbnREZWZhdWx0KCksZC5zdG9wUHJvcGFnYXRpb24oKX1jb25zdCB5aj1uZXcgTWFwKFtbImFycm93LWxlZnQi''@;'; + put 'put ''LCJBcnJvd0xlZnQiXSxbImFycm93LXJpZ2h0IiwiQXJyb3dSaWdodCJdLFsiYXJyb3ctdXAiLCJBcnJvd1VwIl0sWyJhcnJvdy1kb3duIiwiQXJyb3dEb3duIl0sWyJ0YWIiLCJUYWIiXSxbImVudGVyIiwiRW50ZXIiXSxbImVzY2FwZSIsIkVzY2FwZSJdLFsic3BhY2UiLCIgIl0sWyJob21l''@;'; + put 'put ''IiwiSG9tZSJdLFsiZW5kIiwiRW5kIl1dKTt2YXIgX3A7IWZ1bmN0aW9uKGQpe2QuQXJyb3dVcD0iQXJyb3dVcCIsZC5BcnJvd0Rvd249IkFycm93RG93biIsZC5BcnJvd0xlZnQ9IkFycm93TGVmdCIsZC5BcnJvd1JpZ2h0PSJBcnJvd1JpZ2h0IixkLkVuZD0iRW5kIixkLkhvbWU9IkhvbWUi''@;'; + put 'put ''LGQuUGFnZVVwPSJQYWdlVXAiLGQuUGFnZURvd249IlBhZ2VEb3duIn0oX3B8fChfcD17fSkpO2NsYXNzIFcxZXtjb25zdHJ1Y3RvcihnKXt0aGlzLmhvc3Q9Zyx0aGlzLnRyaWdnZXJOYXRpdmVCdXR0b25CZWhhdmlvckhhbmRsZXI9dGhpcy50cmlnZ2VyTmF0aXZlQnV0dG9uQmVoYXZpb3Iu''@;'; + put 'put ''YmluZCh0aGlzKSx0aGlzLmVtdWxhdGVLZXlCb2FyZEV2ZW50QmVoYXZpb3JIYW5kbGVyPXRoaXMuZW11bGF0ZUtleUJvYXJkRXZlbnRCZWhhdmlvci5iaW5kKHRoaXMpLHRoaXMuaG9zdC5hZGRDb250cm9sbGVyKHRoaXMpfWhvc3RVcGRhdGVkKCl7dGhpcy5zZXRCdXR0b25UeXBlKCksdGhp''@;'; + put 'put ''cy5zZXR1cE5hdGl2ZUJ1dHRvbkJlaGF2aW9yKCl9c2V0QnV0dG9uVHlwZSgpeyF0aGlzLmhvc3QudHlwZSYmdGhpcy5ob3N0LmNsb3Nlc3QoImZvcm0iKSYmKHRoaXMuaG9zdC50eXBlPSJzdWJtaXQiKX1zZXR1cE5hdGl2ZUJ1dHRvbkJlaGF2aW9yKCl7dGhpcy5ob3N0LnJlYWRvbmx5fHx0''@;'; + put 'put ''aGlzLmhvc3QuZGlzYWJsZWQ/KHRoaXMuaG9zdC5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIsdGhpcy50cmlnZ2VyTmF0aXZlQnV0dG9uQmVoYXZpb3JIYW5kbGVyKSx0aGlzLmhvc3QucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5dXAiLHRoaXMuZW11bGF0ZUtleUJvYXJkRXZlbnRCZWhh''@;'; + put 'put ''dmlvckhhbmRsZXIpKToodGhpcy5ob3N0LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzLnRyaWdnZXJOYXRpdmVCdXR0b25CZWhhdmlvckhhbmRsZXIpLHRoaXMuaG9zdC5hZGRFdmVudExpc3RlbmVyKCJrZXl1cCIsdGhpcy5lbXVsYXRlS2V5Qm9hcmRFdmVudEJlaGF2aW9ySGFuZGxl''@;'; + put 'put ''cikpfWVtdWxhdGVLZXlCb2FyZEV2ZW50QmVoYXZpb3IoZyl7IWZ1bmN0aW9uIEgxZShkLGcsaCl7ZC5maWx0ZXIodj0+ZnVuY3Rpb24gd2ooZCxnKXtyZXR1cm4gY2xhc3MgUDFle3N0YXRpYyBnZXQga2V5Y29kZXMoKXtyZXR1cm4gdXNlKHlqKX1zdGF0aWMgYWRkKGcsaCl7eWouc2V0KGcs''@;'; + put 'put ''aCl9c3RhdGljIGhhcyhnKXtyZXR1cm4geWouaGFzKGcpfXN0YXRpYyBnZXRDb2RlKGcsaD10aGlzLmtleWNvZGVzKXtyZXR1cm4gZnVuY3Rpb24gRjFlKGQsZyl7cmV0dXJuIGcuZ2V0KGQpfHwiIn0oZyxoKX19LmdldENvZGUoZyk9PT1kLmtleX0oZyx2KSkubGVuZ3RoPjAmJmgoKX0oWyJl''@;'; + put 'put ''bnRlciIsInNwYWNlIl0sZywoKT0+eyJzdWJtaXQiPT09dGhpcy5ob3N0LnR5cGU/dGhpcy50cmlnZ2VyTmF0aXZlQnV0dG9uQmVoYXZpb3IoZyk6dGhpcy5ob3N0LmNsaWNrKCksUUsoZyl9KX10cmlnZ2VyTmF0aXZlQnV0dG9uQmVoYXZpb3IoZyl7aWYodGhpcy5ob3N0LmRpc2FibGVkKVFL''@;'; + put 'put ''KGcpO2Vsc2UgaWYoIWcuZGVmYXVsdFByZXZlbnRlZCl7Y29uc3QgaD1mdW5jdGlvbiBHMWUoZCxnLGgpe2NvbnN0IHY9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Zy5hcHBlbmRDaGlsZCh2KSxPSyhkLGcsZ3Moe3JlbmRlckJlZm9yZTp2fSxoKSk7Y29uc3QgeT12LnByZXZpb3Vz''@;'; + put 'put ''U2libGluZztyZXR1cm4gdi5yZW1vdmUoKSx5fShvNGA8YnV0dG9uIGFyaWEtaGlkZGVuPSJ0cnVlIiByb2xlPSJwcmVzZW50YXRpb24iID9kaXNhYmxlZD0iJHt0aGlzLmhvc3QuZGlzYWJsZWR9IiB0YWJpbmRleD0iLTEiIHN0eWxlPSJkaXNwbGF5Om5vbmUhaW1wb3J0YW50IiB2YWx1ZT0i''@;'; + put 'put ''JHt2aih0aGlzLmhvc3QudmFsdWUpfSIgbmFtZT0iJHt2aih0aGlzLmhvc3QubmFtZSl9IiB0eXBlPSIke3ZqKHRoaXMuaG9zdC50eXBlKX0iPjwvYnV0dG9uPmAsdGhpcy5ob3N0KTtudWxsPT1ofHxoLmRpc3BhdGNoRXZlbnQobmV3IE1vdXNlRXZlbnQoImNsaWNrIix7cmVsYXRlZFRhcmdl''@;'; + put 'put ''dDp0aGlzLmhvc3QsY29tcG9zZWQ6ITB9KSksbnVsbD09aHx8aC5yZW1vdmUoKX19fWNsYXNzIEtLe2NvbnN0cnVjdG9yKGcpe3RoaXMuaG9zdD1nLHRoaXMuaG9zdC5hZGRDb250cm9sbGVyKHRoaXMpfWhvc3RVcGRhdGVkKCl7bnVsbCE9dGhpcy5ob3N0LmV4cGFuZGVkJiYodGhpcy5ob3N0''@;'; + put 'put ''LmFyaWFFeHBhbmRlZD10aGlzLmhvc3QuZXhwYW5kZWQ/InRydWUiOiJmYWxzZSIpLHRoaXMuaG9zdC5yZWFkb25seSYmKHRoaXMuaG9zdC5hcmlhRXhwYW5kZWQ9bnVsbCl9fWxldCByZD1jbGFzcyBleHRlbmRzIEp5e2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLmRp''@;'; + put 'put ''c2FibGVkPSExfX07VjIoW0UxKHt0eXBlOkJvb2xlYW59KV0scmQucHJvdG90eXBlLCJwcmVzc2VkIix2b2lkIDApLFYyKFtFMSh7dHlwZTpCb29sZWFufSldLHJkLnByb3RvdHlwZSwiZXhwYW5kZWQiLHZvaWQgMCksVjIoW0UxKHt0eXBlOkJvb2xlYW59KV0scmQucHJvdG90eXBlLCJyZWFk''@;'; + put 'put ''b25seSIsdm9pZCAwKSxWMihbRTEoe3R5cGU6U3RyaW5nfSldLHJkLnByb3RvdHlwZSwidHlwZSIsdm9pZCAwKSxWMihbRTEoe3R5cGU6U3RyaW5nfSldLHJkLnByb3RvdHlwZSwibmFtZSIsdm9pZCAwKSxWMihbRTEoe3R5cGU6U3RyaW5nfSldLHJkLnByb3RvdHlwZSwidmFsdWUiLHZvaWQg''@;'; + put 'put ''MCksVjIoW0UxKHt0eXBlOkJvb2xlYW59KV0scmQucHJvdG90eXBlLCJkaXNhYmxlZCIsdm9pZCAwKSxWMihbRTEoe3R5cGU6U3RyaW5nfSldLHJkLnByb3RvdHlwZSwicG9wdXAiLHZvaWQgMCkscmQ9VjIoW2Z1bmN0aW9uIHpLKCl7cmV0dXJuIGQ9PmQuYWRkSW5pdGlhbGl6ZXIoZz0+bmV3''@;'; + put 'put ''IFQxZShnKSl9KCksZnVuY3Rpb24gTzFlKCl7cmV0dXJuIGQ9PmQuYWRkSW5pdGlhbGl6ZXIoZz0+bmV3IFVLKGcpKX0oKSxmdW5jdGlvbiBZSygpe3JldHVybiBkPT5kLmFkZEluaXRpYWxpemVyKGc9Pm5ldyBMMWUoZykpfSgpLGZ1bmN0aW9uIFkxZSgpe3JldHVybiBkPT5kLmFkZEluaXRp''@;'; + put 'put ''YWxpemVyKGc9Pm5ldyBLSyhnKSl9KCksZnVuY3Rpb24gRDFlKCl7cmV0dXJuIGQ9PmQuYWRkSW5pdGlhbGl6ZXIoZz0+bmV3IFdLKGcpKX0oKSxmdW5jdGlvbiBHSygpe3JldHVybiBkPT5kLmFkZEluaXRpYWxpemVyKGc9Pm5ldyBJMWUoZykpfSgpLGZ1bmN0aW9uIFhLKCl7cmV0dXJuIGQ9''@;'; + put 'put ''PmQuYWRkSW5pdGlhbGl6ZXIoZz0+bmV3IFcxZShnKSl9KCksZnVuY3Rpb24gdUwoKXtyZXR1cm4gZD0+ZC5hZGRJbml0aWFsaXplcihnPT5uZXcgUjFlKGcpKX0oKV0scmQpO2NvbnN0IGNMPXthY3Rpb25zOntzb3J0OiJTb3J0IixleHBhbmQ6IkV4cGFuZCIsY2xvc2U6IkNsb3NlIixyZXNp''@;'; + put 'put ''emU6IlJlc2l6ZSIsZmlsdGVyOiJGaWx0ZXIifSxhbGVydDp7Y2xvc2VCdXR0b25BcmlhTGFiZWw6IkNsb3NlIixsb2FkaW5nOiJMb2FkaW5nIixpbmZvOiJJbmZvIixzdWNjZXNzOiJTdWNjZXNzIix3YXJuaW5nOiJXYXJuaW5nIixkYW5nZXI6IkVycm9yIn0sZHJvcGRvd246e29wZW46Ik9w''@;'; + put 'put ''ZW4ifSxmaWxlOnticm93c2U6ImJyb3dzZSIsZmlsZXM6ImZpbGVzIixyZW1vdmVGaWxlOiJyZW1vdmUgZmlsZSJ9LG1vZGFsOntjbG9zZUJ1dHRvbkFyaWFMYWJlbDoiQ2xvc2UgbW9kYWwiLGNvbnRlbnRTdGFydDoiQmVnaW5uaW5nIG9mIG1vZGFsIGNvbnRlbnQiLGNvbnRlbnRCb3g6IlNj''@;'; + put 'put ''cm9sbGFibGUgbW9kYWwgYm9keSIsY29udGVudEVuZDoiRW5kIG9mIG1vZGFsIGNvbnRlbnQifSxuYXZpZ2F0aW9uOntuYXZpZ2F0aW9uRWxlbWVudDoibmF2aWdhdGlvbiIsbmF2aWdhdGlvbkxhYmVsOiJuYXZpZ2F0aW9uIG1lbnUiLG5hdmlnYXRpb25BYnJpZGdlZFRleHQ6IlZpZXcgYWJy''@;'; + put 'put ''aWRnZWQgbWVudSIsbmF2aWdhdGlvblVuYWJyaWRnZWRUZXh0OiJWaWV3IHVuYWJyaWRnZWQgbWVudSJ9LG92ZXJsYXk6e2Nsb3NlQnV0dG9uQXJpYUxhYmVsOiJDbG9zZSBkaWFsb2ciLGNvbnRlbnRTdGFydDoiQmVnaW5uaW5nIG9mIGRpYWxvZyBjb250ZW50Iixjb250ZW50RW5kOiJFbmQg''@;'; + put 'put ''b2YgZGlhbG9nIGNvbnRlbnQifSxwb3B1cDp7Y2xvc2VCdXR0b25BcmlhTGFiZWw6IkNsb3NlIHBvcHVwIixjb250ZW50U3RhcnQ6IkJlZ2lubmluZyBvZiBwb3B1cCBjb250ZW50Iixjb250ZW50RW5kOiJFbmQgb2YgcG9wdXAgY29udGVudCJ9LHBhc3N3b3JkOntzaG93QnV0dG9uQXJpYUxh''@;'; + put 'put ''YmVsOiJTaG93IHBhc3N3b3JkIixoaWRlQnV0dG9uQXJpYUxhYmVsOiJIaWRlIHBhc3N3b3JkIn0scHJvZ3Jlc3M6e2xvYWRpbmc6IkxvYWRpbmciLGxvb3Bpbmc6IkxvYWRpbmcifSx0cmVldmlldzp7bG9hZGluZzoiTG9hZGluZyJ9LGdyaWQ6e3Jlc2l6ZUNvbHVtbjoiUmVzaXplIENvbHVt''@;'; + put 'put ''biIsY2xvc2VEZXRhaWxzOiJDbG9zZSBEZXRhaWxzIixub0RhdGE6Ik5vIFJlc3VsdHMgRm91bmQiLHJvd0RldGFpbFN0YXJ0OiJTdGFydCBvZiByb3cgZGV0YWlscyIscm93RGV0YWlsRW5kOiJFbmQgb2Ygcm93IGRldGFpbHMiLGZvb3RlckVuZDoiRW5kIG9mIGdyaWQgcm93cyIsYWN0aW9u''@;'; + put 'put ''OiJBY3Rpb24iLGRyb3BUYXJnZXQ6IkRyb3AgSXRlbSIscGFnaW5hdGlvbjp7bGFiZWw6ImdyaWQgcGFnaW5hdGlvbiIsZmlyc3RQYWdlOiJnbyB0byBmaXJzdCBwYWdlIixwcmV2aW91c1BhZ2U6ImdvIHRvIHByZXZpb3VzIHBhZ2UiLG5leHRQYWdlOiJnbyB0byBuZXh0IHBhZ2UiLGxhc3RQ''@;'; + put 'put ''YWdlOiJnbyB0byBsYXN0IHBhZ2UiLHBhZ2VTaXplOiJyb3dzIHBlciBwYWdlIixwYWdlOiJwYWdlIn19fTtjbGFzcyBydntzdGF0aWMgZ2V0IGtleXMoKXtyZXR1cm4gMD09PU9iamVjdC5rZXlzKEoxLnN0YXRlLmkxOG5SZWdpc3RyeSkubGVuZ3RoJiYoSjEuc3RhdGUuaTE4blJlZ2lzdHJ5''@;'; + put 'put ''PVA3KGNMLEoxLnN0YXRlLmkxOG5SZWdpc3RyeSkpLFA3KGNMLEoxLnN0YXRlLmkxOG5SZWdpc3RyeSl9c3RhdGljIGZpbmRLZXkoZyl7Y29uc3QgaD1ydi5rZXlzO3JldHVybiBPYmplY3Qua2V5cyhoKS5maW5kKHY9PlVKKGhbdl0sZykpfXN0YXRpYyBnZXQoZyl7cmV0dXJuIGcmJnJ2Lmtl''@;'; + put 'put ''eXNbZ118fHt9fXN0YXRpYyByZXNldCgpe0oxLnN0YXRlLmkxOG5SZWdpc3RyeT1QNyh7fSxjTCl9c3RhdGljIGh5ZHJhdGUoZyxoKXtyZXR1cm4gSlNPTi5wYXJzZShmdW5jdGlvbiBpWChkLGcsaCl7cmV0dXJuIGQucmVwbGFjZSgvXCRcey4rP1x9L2csdj0+ZnVuY3Rpb24gbXZlKGQsZyxo''@;'; + put 'put ''PWBcJHske2R9fWApe3JldHVybiBkLnNwbGl0KCIuIikucmVkdWNlKCh2LHkpPT57dHJ5e2NvbnN0IEM9dlt5XTtzd2l0Y2goITApe2Nhc2UgbnVsbD09PUM6Y2FzZSExPT09QzpjYXNlIiI9PT1DOmNhc2UgMD09PUM6cmV0dXJuIEM7ZGVmYXVsdDpyZXR1cm4gQ3x8aH19Y2F0Y2goQyl7cmV0''@;'; + put 'put ''dXJuIGh9fSxnKX0odi5zdWJzdHIoMix2Lmxlbmd0aC0zKS50cmltKCksZyxoKSl9KEpTT04uc3RyaW5naWZ5KGcpLGgpKX1zdGF0aWMgbG9jYWxpemUoZyl7SjEuc3RhdGUuaTE4blJlZ2lzdHJ5PVA3KGNMLEoxLnN0YXRlLmkxOG5SZWdpc3RyeSxnKX19dmFyIEoxZT1uTGA6aG9zdHstLWlj''@;'; + put 'put ''b24td2lkdGg6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS03LCBjYWxjKDE2ICogMXJlbSAvIHZhcigtLWNkcy1nbG9iYWwtYmFzZSwgMjApKSk7LS1pY29uLWhlaWdodDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTcsIGNhbGMoMTYgKiAxcmVtIC8gdmFyKC0tY2RzLWdsb2JhbC1iYXNlLCAyMCkp''@;'; + put 'put ''KTstLXdpZHRoOnZhcigtLWljb24td2lkdGgpOy0taGVpZ2h0OnZhcigtLWljb24td2lkdGgpOy0tY3Vyc29yOnBvaW50ZXI7LS1jb2xvcjp2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktY29sb3ItMzAwLCB2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWNvbnN0cnVjdGlvbi04MDAsICMyZDQw''@;'; + put 'put ''NDgpKTstLWZvbnQtc2l6ZTp2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktZm9udC1zaXplLTMsIGNhbGMoMTMgKiAxcmVtIC8gdmFyKC0tY2RzLWdsb2JhbC1iYXNlLCAyMCkpKTstLWJhY2tncm91bmQ6dHJhbnNwYXJlbnQ7LS1wYWRkaW5nOjA7LS1vdXRsaW5lOnZhcigtLWNkcy1hbGlh''@;'; + put 'put ''cy1vYmplY3QtaW50ZXJhY3Rpb24tb3V0bGluZSwgSGlnaGxpZ2h0IHNvbGlkIDJweCk7LS1vdXRsaW5lLW9mZnNldDpjYWxjKHZhcigtLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24tb3V0bGluZS1vZmZzZXQsIDFweCkgKiAtMSk7cG9pbnRlci1ldmVudHM6bm9uZTtkaXNwbGF5Omlu''@;'; + put 'put ''bGluZS1ibG9jaztvdXRsaW5lOjAhaW1wb3J0YW50fTpob3N0KFtyb2xlPWJ1dHRvbl0pe3BvaW50ZXItZXZlbnRzOmluaXRpYWw7Y3Vyc29yOnZhcigtLWN1cnNvcikhaW1wb3J0YW50fTpob3N0KFtzdGF0dXM9YWN0aXZlXSl7LS1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtc3RhdHVzLWluZm8s''@;'; + put 'put ''IHZhcigtLWNkcy1nbG9iYWwtY29sb3ItYmx1ZS03MDAsICMwMDc5YWQpKX06OnNsb3R0ZWQoW3NoYXBlPWNsb3NlXSksOjpzbG90dGVkKFtzaGFwZT1pbmZvLWNpcmNsZV0pLDo6c2xvdHRlZChbc2hhcGU9dGltZXNdKSw6aG9zdChbc2hhcGU9Y2xvc2VdKSw6aG9zdChbc2hhcGU9aW5mby1j''@;'; + put 'put ''aXJjbGVdKXstLWljb24td2lkdGg6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS04LCBjYWxjKDE4ICogMXJlbSAvIHZhcigtLWNkcy1nbG9iYWwtYmFzZSwgMjApKSk7LS1pY29uLWhlaWdodDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTgsIGNhbGMoMTggKiAxcmVtIC8gdmFyKC0tY2RzLWdsb2Jh''@;'; + put 'put ''bC1iYXNlLCAyMCkpKX06aG9zdCg6aG92ZXIpey0tY29sb3I6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi1jb2xvci1ob3ZlciwgdmFyKC0tY2RzLWdsb2JhbC1jb2xvci1jb25zdHJ1Y3Rpb24tMTAwMCwgIzFiMmIzMikpfTpob3N0KDphY3RpdmUpey0tY29sb3I6dmFyKC0t''@;'; + put 'put ''Y2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi1jb2xvci1hY3RpdmUsIHZhcigtLWNkcy1nbG9iYWwtY29sb3ItY29uc3RydWN0aW9uLTEwMDAsICMxYjJiMzIpKX06aG9zdCg6YWN0aXZlKSAucHJpdmF0ZS1ob3N0e3RyYW5zZm9ybTp0cmFuc2xhdGVZKGNhbGModmFyKC0tY2RzLWdsb2Jh''@;'; + put 'put ''bC1zcGFjZS0xLGNhbGMoMSAqIDFyZW0gLyB2YXIoLS1jZHMtZ2xvYmFsLWJhc2UsMjApKSkvIDIpKX06aG9zdChbZGlzYWJsZWRdKXstLWNvbG9yOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24tY29sb3ItZGlzYWJsZWQsIHZhcigtLWNkcy1nbG9iYWwtY29sb3ItY29uc3Ry''@;'; + put 'put ''dWN0aW9uLTMwMCwgI2FlYjhiYykpfS5wcml2YXRlLWhvc3R7LS1pY29uLWNvbG9yOnZhcigtLWNvbG9yKTtiYWNrZ3JvdW5kOnZhcigtLWJhY2tncm91bmQpO3BhZGRpbmc6dmFyKC0tcGFkZGluZyk7Y29sb3I6dmFyKC0tY29sb3IpO2ZvbnQtc2l6ZTp2YXIoLS1mb250LXNpemUpO2Rpc3Bs''@;'; + put 'put ''YXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjttaW4td2lkdGg6dmFyKC0td2lkdGgpO21pbi1oZWlnaHQ6dmFyKC0taGVpZ2h0KX06OnNsb3R0ZWQoY2RzLWljb24pLGNkcy1pY29ue3dpZHRoOnZhcigtLWljb24td2lkdGgpO2hlaWdodDp2YXIoLS1p''@;'; + put 'put ''Y29uLWhlaWdodCk7cG9pbnRlci1ldmVudHM6bm9uZX06OnNsb3R0ZWQoY2RzLWljb246bm90KFtzdGF0dXNdKSksY2RzLWljb257LS1jb2xvcjp2YXIoLS1pY29uLWNvbG9yKX06aG9zdChbZGlzYWJsZWRdOmFjdGl2ZSl7cG9pbnRlci1ldmVudHM6bm9uZSFpbXBvcnRhbnR9LnByaXZhdGUt''@;'; + put 'put ''aG9zdDo6YWZ0ZXJ7Y29udGVudDoiIjtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OmNhbGMoLTEqdmFyKC0td2lkdGgpIC0gMSk7dG9wOmNhbGMoLTEqdmFyKC0taGVpZ2h0KSAtIDEpO3dpZHRoOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24tdG91Y2gtdGFyZ2V0LGNhbGMoMzYg''@;'; + put 'put ''KiAxcmVtIC8gdmFyKC0tY2RzLWdsb2JhbC1iYXNlLDIwKSkpO2hlaWdodDp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLXRvdWNoLXRhcmdldCxjYWxjKDM2ICogMXJlbSAvIHZhcigtLWNkcy1nbG9iYWwtYmFzZSwyMCkpKX06aG9zdChbZGlzYWJsZWRdKSAucHJpdmF0ZS1o''@;'; + put 'put ''b3N0OjphZnRlcntvdXRsaW5lOjAhaW1wb3J0YW50fTpob3N0KDpmb2N1cykgLnByaXZhdGUtaG9zdDo6YWZ0ZXJ7b3V0bGluZTp2YXIoLS1vdXRsaW5lKTtvdXRsaW5lLW9mZnNldDp2YXIoLS1vdXRsaW5lLW9mZnNldCl9QG1lZGlhICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86''@;'; + put 'put ''MCl7Omhvc3QoOmZvY3VzKSAucHJpdmF0ZS1ob3N0OjphZnRlcntvdXRsaW5lLWNvbG9yOi13ZWJraXQtZm9jdXMtcmluZy1jb2xvcn19YDtjbGFzcyBtZyBleHRlbmRzIHJke2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLmkxOG49cnYua2V5cy5hY3Rpb25zLHRoaXMu''@;'; + put 'put ''Y2RzQnV0dG9uQWN0aW9uPSEwfXJlbmRlcigpe3JldHVybiBvNGA8ZGl2IGNsYXNzPSJwcml2YXRlLWhvc3QiPjxzbG90PjxjZHMtaWNvbiAuc2hhcGU9IiR7dGhpcy5zaGFwZT90aGlzLnNoYXBlOiJlbGxpcHNpcy12ZXJ0aWNhbCJ9IiAuc2l6ZT0iJHt0aGlzLmljb25TaXplfSIgP3NvbGlk''@;'; + put 'put ''PSIke3RoaXMucHJlc3NlZHx8dGhpcy5leHBhbmRlZH0iIGlubmVyLW9mZnNldD0iJHsxfSI+PC9jZHMtaWNvbj48L3Nsb3Q+PC9kaXY+YH11cGRhdGVkKGcpe3N1cGVyLnVwZGF0ZWQoZyksdGhpcy5hcmlhTGFiZWx8fHRoaXMucmVhZG9ubHl8fE43Lndhcm4oIkEgYXJpYS1sYWJlbCBpcyBy''@;'; + put 'put ''ZXF1aXJlZCBmb3IgaW50ZXJhY3RpdmUgY2RzLWJ1dHRvbi1hY3Rpb24gdHlwZSIsdGhpcyksZy5oYXMoInJlYWRvbmx5IikmJih0aGlzLmFyaWFIaWRkZW49dGhpcy5yZWFkb25seSYmIXRoaXMuaGFzQXR0cmlidXRlKCJhcmlhLWxhYmVsIik/InRydWUiOm51bGwpfX1tZy5zdHlsZXM9W0hL''@;'; + put 'put ''LEoxZV0sVjIoW0UxKHt0eXBlOlN0cmluZ30pXSxtZy5wcm90b3R5cGUsInNoYXBlIix2b2lkIDApLFYyKFtFMSh7dHlwZTpTdHJpbmcscmVmbGVjdDohMH0pXSxtZy5wcm90b3R5cGUsImFjdGlvbiIsdm9pZCAwKSxWMihbRTEoe3R5cGU6U3RyaW5nfSldLG1nLnByb3RvdHlwZSwiaWNvblNp''@;'; + put 'put ''emUiLHZvaWQgMCksVjIoW2Z1bmN0aW9uIFUxZSgpe3JldHVybihkLGcpPT57Y29uc3QgaD1kLmNvbm5lY3RlZENhbGxiYWNrLHY9ZC5kaXNjb25uZWN0ZWRDYWxsYmFjaztkLmNvbm5lY3RlZENhbGxiYWNrPWZ1bmN0aW9uKCl7ZC5fX2kxOG5TdWI9SjEuc3RhdGVVcGRhdGVzLnN1YnNjcmli''@;'; + put 'put ''ZShDPT57ImkxOG5SZWdpc3RyeSI9PT1DLmtleSYmdGhpcy5yZXF1ZXN0VXBkYXRlKGcpfSksaCYmaC5hcHBseSh0aGlzKX0sZC5kaXNjb25uZWN0ZWRDYWxsYmFjaz1mdW5jdGlvbigpe2QuX19pMThuU3ViLnVuc3Vic2NyaWJlKCksdiYmdi5hcHBseSh0aGlzKX07Y29uc3QgeT17Z2V0KCl7''@;'; + put 'put ''Y29uc3QgQz1QNyhydi5rZXlzW3RoaXMuX19pMThuS2V5XSx0aGlzLl9faTE4bnx8e30pO3JldHVybiBydi5oeWRyYXRlKEMsdGhpcyl9LHNldChDKXtjb25zdCBJPWZ1bmN0aW9uIF9qKGQsZyl7aWYoJDYoZCkpe2xldCBoPXt9O2lmKGcuaGFzQXR0cmlidXRlKCJjZHMtaTE4biIpKXtjb25z''@;'; + put 'put ''dCB2PWcuZ2V0QXR0cmlidXRlKCJjZHMtaTE4biIpKyIiO2lmKCQ2KHYpKWg9e307ZWxzZSB0cnl7aD1KU09OLnBhcnNlKHYpfWNhdGNoKHkpe043Lndhcm4oIkNsYXJpdHkgaTE4bjogSW52YWxpZCBKU09OIHBhc3NlZCB0byBjZHMtaTE4biIpLGg9e319fXJldHVybiBofXJldHVybiBkfShD''@;'; + put 'put ''LHRoaXMpLGo9ZnVuY3Rpb24gUTFlKGQsZyxoLHYpe3JldHVybiAkNihkKT9VSihoLHYpP3t1cGRhdGU6ITF9Ont1cGRhdGU6ITAsdmFsdWVzOmh9OmQ9PT1nP3t1cGRhdGU6ITEsdmFsdWVzOnt9fTp7dXBkYXRlOiEwLGtleTpkLHZhbHVlczp7fX19KHJ2LmZpbmRLZXkoSSl8fCIiLHRoaXMu''@;'; + put 'put ''X19pMThuS2V5LEksdGhpcy5fX2kxOG4pO3ZvaWQgMCE9PWoua2V5JiYodGhpcy5fX2kxOG5LZXk9ai5rZXkrIiIpLHZvaWQgMCE9PWoudmFsdWVzJiYodGhpcy5fX2kxOG49Z3Moe30sai52YWx1ZXMpKSwhMD09PWoudXBkYXRlJiZ0aGlzLnJlcXVlc3RVcGRhdGUoKSx0aGlzLnJlcXVlc3RV''@;'; + put 'put ''cGRhdGUoZyl9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfTtyZXR1cm4gdm9pZCAwIT09Zz9mdW5jdGlvbihDLEksail7Y29uc3QgdWU9T2JqZWN0LmRlZmluZVByb3BlcnR5KEksaixDKTtyZXR1cm4gRTEoe3R5cGU6T2JqZWN0LGF0dHJpYnV0ZToiY2RzLWkxOG4ifSkodWUsail9''@;'; + put 'put ''KHksZCxnKTpmdW5jdGlvbihDLEkpe2NvbnN0IGo9e2tpbmQ6Im1ldGhvZCIscGxhY2VtZW50OiJwcm90b3R5cGUiLGtleTpJLmtleSxkZXNjcmlwdG9yOkN9O3JldHVybiBFMSh7dHlwZTpPYmplY3R9KShqKX0oeSxkKX19KCldLG1nLnByb3RvdHlwZSwiaTE4biIsdm9pZCAwKSxWMihbakso''@;'; + put 'put ''e3R5cGU6Qm9vbGVhbixyZWZsZWN0OiEwLGF0dHJpYnV0ZToiY2RzLWJ1dHRvbi1hY3Rpb24ifSldLG1nLnByb3RvdHlwZSwiY2RzQnV0dG9uQWN0aW9uIix2b2lkIDApO2NsYXNzIHM4IGV4dGVuZHMgbWd7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuc2hhcGU9ImNs''@;'; + put 'put ''b3NlIn1jb25uZWN0ZWRDYWxsYmFjaygpe3N1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5hcmlhTGFiZWw9dGhpcy5hcmlhTGFiZWw/dGhpcy5hcmlhTGFiZWw6dGhpcy5pMThuLmNsb3NlfX1WMihbRTEoe3R5cGU6U3RyaW5nfSldLHM4LnByb3RvdHlwZSwic2hhcGUiLHZvaWQgMCks''@;'; + put 'put ''Q0soImNkcy1pbnRlcm5hbC1jbG9zZS1idXR0b24iLHM4KSxmcy5hZGRJY29ucyhwWCksZnMuYWRkQWxpYXNlcyhbInRpbWVzIixbImNsb3NlIl1dKTtjb25zdCBuYT1bIioiXTtmdW5jdGlvbiBYMWUoZCxnKXtpZigxJmQmJihGMCgwKSxZdCgxKSxIMCgpKSwyJmQpe2NvbnN0IGg9SnQoMyk7''@;'; + put 'put ''dXQoMSksamkoaC5jb21tb25TdHJpbmdzLmtleXMuZGFuZ2VyKX19ZnVuY3Rpb24gSzFlKGQsZyl7aWYoMSZkJiYocnQoMCwiZGl2IiwxNCkscm4oMSxYMWUsMiwxLCJuZy1jb250YWluZXIiLDApLGx0KCkpLDImZCl7Y29uc3QgaD1KdCgpLiRpbXBsaWNpdCx2PUp0KCk7dXQoMSksVHQoIm5n''@;'; + put 'put ''SWYiLGguc3RhdHVzPT09di5BY2NvcmRpb25TdGF0dXMuRXJyb3IpfX1mdW5jdGlvbiAkMWUoZCxnKXtpZigxJmQmJihGMCgwKSxZdCgxKSxIMCgpKSwyJmQpe2NvbnN0IGg9SnQoMik7dXQoMSksamkoaC5jb21tb25TdHJpbmdzLmtleXMuZGFuZ2VyKX19ZnVuY3Rpb24gcTFlKGQsZyl7aWYo''@;'; + put 'put ''MSZkJiYoRjAoMCksWXQoMSksSDAoKSksMiZkKXtjb25zdCBoPUp0KDIpO3V0KDEpLGppKGguY29tbW9uU3RyaW5ncy5rZXlzLnN1Y2Nlc3MpfX1mdW5jdGlvbiBldWUoZCxnKXtpZigxJmQpe2NvbnN0IGg9YmkoKTtydCgwLCJkaXYiLDE1KSxHbigiQHRvZ2dsZS5kb25lIixmdW5jdGlvbigp''@;'; + put 'put ''e2l0KGgpO2NvbnN0IHk9SnQoKS4kaW1wbGljaXQ7cmV0dXJuIGEoSnQoKS5jb2xsYXBzZVBhbmVsT25BbmltYXRpb25Eb25lKHkpKX0pLHJ0KDEsImRpdiIsMTYpLE5pKDIsMiksbHQoKSgpfTImZCYmVHQoIkB0b2dnbGUiLHZvaWQgMCl9ZnVuY3Rpb24gdHVlKGQsZyl7aWYoMSZkKXtjb25z''@;'; + put 'put ''dCBoPWJpKCk7RjAoMCkscm4oMSxLMWUsMiwxLCJkaXYiLDEpLHJ0KDIsImRpdiIsMikoMywiZGl2IiwzKSg0LCJidXR0b24iLDQsNSksR24oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBpdChoKSxhKEp0KCkudG9nZ2xlUGFuZWwoKSl9KSxubig2LCJhc3luYyIpLHJ0KDcsInNwYW4iLDYp''@;'; + put 'put ''LHJuKDgsJDFlLDIsMSwibmctY29udGFpbmVyIiwwKSxybig5LHExZSwyLDEsIm5nLWNvbnRhaW5lciIsMCksbHQoKSxydCgxMCwic3BhbiIsNyksQ3IoMTEsImNkcy1pY29uIiw4KSgxMiwic3BhbiIsOSkoMTMsImNkcy1pY29uIiwxMCkoMTQsImNkcy1pY29uIiwxMSksbHQoKSxOaSgxNSks''@;'; + put 'put ''TmkoMTYsMSksbHQoKSgpLHJ0KDE3LCJkaXYiLDEyKSxybigxOCxldWUsMywxLCJkaXYiLDEzKSxsdCgpKCksSDAoKX1pZigyJmQpe2NvbnN0IGg9Zy4kaW1wbGljaXQsdj1KdCgpO2xldCB5O3V0KDEpLFR0KCJuZ0lmIixoLnN0YXR1cyE9PXYuQWNjb3JkaW9uU3RhdHVzLkluYWN0aXZlKSx1''@;'; + put 'put ''dCgxKSxUdCgibmdDbGFzcyIsdi5nZXRQYW5lbFN0YXRlQ2xhc3NlcyhoKSksdXQoMiksRmkoImNsci1hY2NvcmRpb24taGVhZGVyLWhhcy1kZXNjcmlwdGlvbiIsKG51bGw9PSh5PXp0KDYsMTYsdi5hY2NvcmRpb25EZXNjcmlwdGlvbi5jaGFuZ2VzKSk/bnVsbDp5Lmxlbmd0aCl8fHYuYWNj''@;'; + put 'put ''b3JkaW9uRGVzY3JpcHRpb24ubGVuZ3RoKSxUdCgiaWQiLHYuZ2V0QWNjb3JkaW9uSGVhZGVySWQoaC50ZW1wbGF0ZUlkKSkoImRpc2FibGVkIix2LmlzQWNjb3JkaW9uJiZoLmRpc2FibGVkKSxHaSgiYXJpYS1kaXNhYmxlZCIsIXYuaXNBY2NvcmRpb24mJmguZGlzYWJsZWQpKCJhcmlhLWNv''@;'; + put 'put ''bnRyb2xzIix2LmdldEFjY29yZGlvbkNvbnRlbnRJZChoLnRlbXBsYXRlSWQpKSgiYXJpYS1leHBhbmRlZCIsaC5vcGVuKSx1dCg0KSxUdCgibmdJZiIsaC5zdGF0dXM9PT12LkFjY29yZGlvblN0YXR1cy5FcnJvciksdXQoMSksVHQoIm5nSWYiLGguc3RhdHVzPT09di5BY2NvcmRpb25TdGF0''@;'; + put 'put ''dXMuQ29tcGxldGUpLHV0KDgpLFR0KCJAc2tpcEluaXRpYWxSZW5kZXIiLHZvaWQgMCkoImlkIix2LmdldEFjY29yZGlvbkNvbnRlbnRJZChoLnRlbXBsYXRlSWQpKSxHaSgiYXJpYS1oaWRkZW4iLCFoLm9wZW4pKCJhcmlhLWxhYmVsbGVkYnkiLHYuZ2V0QWNjb3JkaW9uSGVhZGVySWQoaC50''@;'; + put 'put ''ZW1wbGF0ZUlkKSksdXQoMSksVHQoIm5nSWYiLGgub3Blbil9fWNvbnN0ICRLPVtbWyJjbHItYWNjb3JkaW9uLXRpdGxlIl0sWyJjbHItc3RlcC10aXRsZSJdXSxbWyJjbHItYWNjb3JkaW9uLWRlc2NyaXB0aW9uIl0sWyJjbHItc3RlcC1kZXNjcmlwdGlvbiJdXSwiKiJdLHFLPVsiY2xyLWFj''@;'; + put 'put ''Y29yZGlvbi10aXRsZSwgY2xyLXN0ZXAtdGl0bGUiLCJjbHItYWNjb3JkaW9uLWRlc2NyaXB0aW9uLCBjbHItc3RlcC1kZXNjcmlwdGlvbiIsIioiXSx5dWU9WyJjbHJMb2FkaW5nIiwiIl07ZnVuY3Rpb24gd3VlKGQsZyl7MSZkJiYocnQoMCwic3BhbiIpLENyKDEsInNwYW4iLDIpLGx0KCkp''@;'; + put 'put ''LDImZCYmKHV0KDEpLFR0KCJAc3Bpbm5lciIsdm9pZCAwKSl9ZnVuY3Rpb24gYnVlKGQsZyl7aWYoMSZkKXtjb25zdCBoPWJpKCk7cnQoMCwic3BhbiIpKDEsInNwYW4iLDMpLEduKCJAdmFsaWRhdGVkLmRvbmUiLGZ1bmN0aW9uKCl7aXQoaCk7Y29uc3QgeT1KdCgpO3JldHVybiBhKHkubG9h''@;'; + put 'put ''ZGluZ1N0YXRlQ2hhbmdlKHkuYnV0dG9uU3RhdGUuREVGQVVMVCkpfSksbHQoKSgpfTImZCYmKHV0KDEpLFR0KCJAdmFsaWRhdGVkIix2b2lkIDApKX1mdW5jdGlvbiBfdWUoZCxnKXsxJmQmJihydCgwLCJzcGFuIiksTmkoMSksbHQoKSksMiZkJiZUdCgiQGRlZmF1bHRCdXR0b24iLHZvaWQg''@;'; + put 'put ''MCl9ZnVuY3Rpb24gQ3VlKGQsZyl7MSZkJiZDcigwLCJsYWJlbCIpfWNvbnN0IGt1ZT1bW1siIiwiY2xyQ2hlY2tib3giLCIiXSxbIiIsImNsclRvZ2dsZSIsIiJdXSxbWyJsYWJlbCJdXV0sU3VlPVsiW2NsckNoZWNrYm94XSxbY2xyVG9nZ2xlXSIsImxhYmVsIl07ZnVuY3Rpb24gTXVlKGQs''@;'; + put 'put ''Zyl7MSZkJiZDcigwLCJsYWJlbCIpfWZ1bmN0aW9uIEV1ZShkLGcpezEmZCYmTmkoMCwyLFsiKm5nSWYiLCJzaG93SGVscGVyIl0pfWZ1bmN0aW9uIHh1ZShkLGcpezEmZCYmQ3IoMCwiY2RzLWljb24iLDUpfWZ1bmN0aW9uIFR1ZShkLGcpezEmZCYmQ3IoMCwiY2RzLWljb24iLDYpfWZ1bmN0''@;'; + put 'put ''aW9uIEl1ZShkLGcpezEmZCYmTmkoMCwzLFsiKm5nSWYiLCJzaG93SW52YWxpZCJdKX1mdW5jdGlvbiBEdWUoZCxnKXsxJmQmJk5pKDAsNCxbIipuZ0lmIiwic2hvd1ZhbGlkIl0pfWNvbnN0IEx1ZT1bW1sibGFiZWwiXV0sW1siY2xyLWNoZWNrYm94LXdyYXBwZXIiXSxbImNsci10b2dnbGUt''@;'; + put 'put ''d3JhcHBlciJdXSxbWyJjbHItY29udHJvbC1oZWxwZXIiXV0sW1siY2xyLWNvbnRyb2wtZXJyb3IiXV0sW1siY2xyLWNvbnRyb2wtc3VjY2VzcyJdXV0sT3VlPVsibGFiZWwiLCJjbHItY2hlY2tib3gtd3JhcHBlcixjbHItdG9nZ2xlLXdyYXBwZXIiLCJjbHItY29udHJvbC1oZWxwZXIiLCJj''@;'; + put 'put ''bHItY29udHJvbC1lcnJvciIsImNsci1jb250cm9sLXN1Y2Nlc3MiXSxSdWU9WyJjbHJLZXlGb2N1cyIsIiJdO2Z1bmN0aW9uIHRzKGQsZyl7MSZkJiZDcigwLCJsYWJlbCIpfWZ1bmN0aW9uIHQkKGQsZyl7MSZkJiZDcigwLCJjZHMtaWNvbiIsNSl9ZnVuY3Rpb24gSHVlKGQsZyl7MSZkJiZD''@;'; + put 'put ''cigwLCJjZHMtaWNvbiIsNil9ZnVuY3Rpb24gbiQoZCxnKXsxJmQmJk5pKDAsMixbIipuZ0lmIiwic2hvd0hlbHBlciJdKX1mdW5jdGlvbiByJChkLGcpezEmZCYmTmkoMCwzLFsiKm5nSWYiLCJzaG93SW52YWxpZCJdKX1mdW5jdGlvbiBfQWUoZCxnKXsxJmQmJk5pKDAsNCxbIipuZ0lmIiwi''@;'; + put 'put ''c2hvd1ZhbGlkIl0pfWNvbnN0IE51ZT1bW1sibGFiZWwiXV0sW1siIiwiY2xySW5wdXQiLCIiXV0sW1siY2xyLWNvbnRyb2wtaGVscGVyIl1dLFtbImNsci1jb250cm9sLWVycm9yIl1dLFtbImNsci1jb250cm9sLXN1Y2Nlc3MiXV1dLGhMPVsibGFiZWwiLCJbY2xySW5wdXRdIiwiY2xyLWNv''@;'; + put 'put ''bnRyb2wtaGVscGVyIiwiY2xyLWNvbnRyb2wtZXJyb3IiLCJjbHItY29udHJvbC1zdWNjZXNzIl07ZnVuY3Rpb24gJGsoZCxnKXtpZigxJmQmJihydCgwLCJ0aCIsNCksWXQoMSksbHQoKSksMiZkKXtjb25zdCBoPWcuJGltcGxpY2l0O0dpKCJhcmlhLWxhYmVsIixoLmRheSksdXQoMSksSmko''@;'; + put 'put ''IiAiLGgubmFycm93LCIgIil9fWZ1bmN0aW9uIFZ1ZShkLGcpe2lmKDEmZCYmKHJ0KDAsInRkIiw3KSxDcigxLCJjbHItZGF5Iiw4KSxsdCgpKSwyJmQpe2NvbnN0IGg9Zy4kaW1wbGljaXQ7dXQoMSksVHQoImNsckRheVZpZXciLGgpfX1mdW5jdGlvbiBxayhkLGcpe2lmKDEmZCYmKHJ0KDAs''@;'; + put 'put ''InRyIiw1KSxybigxLFZ1ZSwyLDEsInRkIiw2KSxsdCgpKSwyJmQpe2NvbnN0IGg9Zy4kaW1wbGljaXQ7dXQoMSksVHQoIm5nRm9yT2YiLGgpfX1mdW5jdGlvbiBpJChkLGcpe2lmKDEmZCl7Y29uc3QgaD1iaSgpO3J0KDAsImJ1dHRvbiIsMSksR24oImNsaWNrIixmdW5jdGlvbigpe2NvbnN0''@;'; + put 'put ''IEM9aXQoaCkuaW5kZXg7cmV0dXJuIGEoSnQoKS5jaGFuZ2VNb250aChDKSl9KSxZdCgxKSxsdCgpfWlmKDImZCl7Y29uc3QgaD1nLiRpbXBsaWNpdCx2PWcuaW5kZXgseT1KdCgpO0ZpKCJpcy1zZWxlY3RlZCIsdj09PXkuY2FsZW5kYXJNb250aEluZGV4KSxHaSgidGFiaW5kZXgiLHkuZ2V0''@;'; + put 'put ''VGFiSW5kZXgodikpLHV0KDEpLEppKCIgIixoLCIgIil9fWZ1bmN0aW9uIG8kKGQsZyl7aWYoMSZkKXtjb25zdCBoPWJpKCk7cnQoMCwiYnV0dG9uIiw3KSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7Y29uc3QgQz1pdChoKS4kaW1wbGljaXQ7cmV0dXJuIGEoSnQoKS5jaGFuZ2VZZWFyKEMpKX0p''@;'; + put 'put ''LFl0KDEpLGx0KCl9aWYoMiZkKXtjb25zdCBoPWcuJGltcGxpY2l0LHY9SnQoKTtGaSgiaXMtc2VsZWN0ZWQiLGg9PT12LmNhbGVuZGFyWWVhciksR2koInRhYmluZGV4Iix2LmdldFRhYkluZGV4KGgpKSx1dCgxKSxKaSgiICIsaCwiICIpfX1mdW5jdGlvbiBhJChkLGcpezEmZCYmQ3IoMCwi''@;'; + put 'put ''Y2xyLW1vbnRocGlja2VyIil9ZnVuY3Rpb24gbCQoZCxnKXsxJmQmJkNyKDAsImNsci15ZWFycGlja2VyIil9ZnVuY3Rpb24ganVlKGQsZyl7MSZkJiZDcigwLCJjbHItZGF5cGlja2VyIil9Y29uc3QgWnVlPVsiYWN0aW9uQnV0dG9uIl07ZnVuY3Rpb24genVlKGQsZyl7MSZkJiZDcigwLCJs''@;'; + put 'put ''YWJlbCIpfWZ1bmN0aW9uIHZnKGQsZyl7MSZkJiYocnQoMCwiYnV0dG9uIiw4LDkpLENyKDIsImNkcy1pY29uIiwxMCksbHQoKSksMiZkJiZUdCgiZGlzYWJsZWQiLEp0KCkuaXNJbnB1dERhdGVEaXNhYmxlZCl9ZnVuY3Rpb24ga2ooZCxnKXsxJmQmJkNyKDAsImNsci1kYXRlcGlja2VyLXZp''@;'; + put 'put ''ZXctbWFuYWdlciIsMTEpfWZ1bmN0aW9uIEd1ZShkLGcpezEmZCYmQ3IoMCwiY2RzLWljb24iLDEyKX1mdW5jdGlvbiBzJChkLGcpezEmZCYmQ3IoMCwiY2RzLWljb24iLDEzKX1mdW5jdGlvbiB1JChkLGcpezEmZCYmTmkoMCwyLFsiKm5nSWYiLCJzaG93SGVscGVyIl0pfWZ1bmN0aW9uIGMk''@;'; + put 'put ''KGQsZyl7MSZkJiZOaSgwLDMsWyIqbmdJZiIsInNob3dJbnZhbGlkIl0pfWZ1bmN0aW9uIFd1ZShkLGcpezEmZCYmTmkoMCw0LFsiKm5nSWYiLCJzaG93VmFsaWQiXSl9Y29uc3QgWXVlPVtbWyJsYWJlbCJdXSxbWyIiLCJjbHJEYXRlIiwiIl1dLFtbImNsci1jb250cm9sLWhlbHBlciJdXSxb''@;'; + put 'put ''WyJjbHItY29udHJvbC1lcnJvciJdXSxbWyJjbHItY29udHJvbC1zdWNjZXNzIl1dXSxLeT1bImxhYmVsIiwiW2NsckRhdGVdIiwiY2xyLWNvbnRyb2wtaGVscGVyIiwiY2xyLWNvbnRyb2wtZXJyb3IiLCJjbHItY29udHJvbC1zdWNjZXNzIl07ZnVuY3Rpb24gZiQoZCxnKXsxJmQmJkNyKDAs''@;'; + put 'put ''ImxhYmVsIil9Y29uc3QgY2g9W1tbIiIsImNsclJhZGlvIiwiIl1dLFtbImxhYmVsIl1dXSxoJD1bIltjbHJSYWRpb10iLCJsYWJlbCJdO2Z1bmN0aW9uIElsKGQsZyl7MSZkJiZDcigwLCJsYWJlbCIpfWZ1bmN0aW9uIHBMKGQsZyl7MSZkJiZOaSgwLDIsWyIqbmdJZiIsInNob3dIZWxwZXIi''@;'; + put 'put ''XSl9ZnVuY3Rpb24gZCQoZCxnKXsxJmQmJkNyKDAsImNkcy1pY29uIiw1KX1mdW5jdGlvbiBwJChkLGcpezEmZCYmQ3IoMCwiY2RzLWljb24iLDYpfWZ1bmN0aW9uIGl2KGQsZyl7MSZkJiZOaSgwLDMsWyIqbmdJZiIsInNob3dJbnZhbGlkIl0pfWZ1bmN0aW9uIGdMKGQsZyl7MSZkJiZOaSgw''@;'; + put 'put ''LDQsWyIqbmdJZiIsInNob3dWYWxpZCJdKX1jb25zdCB5MD1bW1sibGFiZWwiXV0sW1siY2xyLXJhZGlvLXdyYXBwZXIiXV0sW1siY2xyLWNvbnRyb2wtaGVscGVyIl1dLFtbImNsci1jb250cm9sLWVycm9yIl1dLFtbImNsci1jb250cm9sLXN1Y2Nlc3MiXV1dLENwPVsibGFiZWwiLCJjbHIt''@;'; + put 'put ''cmFkaW8td3JhcHBlciIsImNsci1jb250cm9sLWhlbHBlciIsImNsci1jb250cm9sLWVycm9yIiwiY2xyLWNvbnRyb2wtc3VjY2VzcyJdO2Z1bmN0aW9uICR1ZShkLGcpezEmZCYmQ3IoMCwibGFiZWwiKX1mdW5jdGlvbiBxdWUoZCxnKXsxJmQmJkNyKDAsImNkcy1pY29uIiw1KX1mdW5jdGlv''@;'; + put 'put ''biBlY2UoZCxnKXsxJmQmJkNyKDAsImNkcy1pY29uIiw2KX1mdW5jdGlvbiB0Y2UoZCxnKXsxJmQmJk5pKDAsMixbIipuZ0lmIiwic2hvd0hlbHBlciJdKX1mdW5jdGlvbiBpZChkLGcpezEmZCYmTmkoMCwzLFsiKm5nSWYiLCJzaG93SW52YWxpZCJdKX1mdW5jdGlvbiBuY2UoZCxnKXsxJmQm''@;'; + put 'put ''Jk5pKDAsNCxbIipuZ0lmIiwic2hvd1ZhbGlkIl0pfWNvbnN0IHJjZT1bW1sibGFiZWwiXV0sW1siIiwiY2xyU2VsZWN0IiwiIl1dLFtbImNsci1jb250cm9sLWhlbHBlciJdXSxbWyJjbHItY29udHJvbC1lcnJvciJdXSxbWyJjbHItY29udHJvbC1zdWNjZXNzIl1dXSxtJD1bImxhYmVsIiwi''@;'; + put 'put ''W2NsclNlbGVjdF0iLCJjbHItY29udHJvbC1oZWxwZXIiLCJjbHItY29udHJvbC1lcnJvciIsImNsci1jb250cm9sLXN1Y2Nlc3MiXTtmdW5jdGlvbiBpY2UoZCxnKXsxJmQmJkNyKDAsImxhYmVsIil9ZnVuY3Rpb24gdTgoZCxnKXsxJmQmJkNyKDAsImNkcy1pY29uIiw1KX1mdW5jdGlvbiB3''@;'; + put 'put ''cyhkLGcpezEmZCYmQ3IoMCwiY2RzLWljb24iLDYpfWZ1bmN0aW9uIG9jZShkLGcpezEmZCYmTmkoMCwyLFsiKm5nSWYiLCJzaG93SGVscGVyIl0pfWZ1bmN0aW9uIGFjZShkLGcpezEmZCYmTmkoMCwzLFsiKm5nSWYiLCJzaG93SW52YWxpZCJdKX1mdW5jdGlvbiBsY2UoZCxnKXsxJmQmJk5p''@;'; + put 'put ''KDAsNCxbIipuZ0lmIiwic2hvd1ZhbGlkIl0pfWNvbnN0IFNqPVtbWyJsYWJlbCJdXSxbWyIiLCJjbHJUZXh0YXJlYSIsIiJdXSxbWyJjbHItY29udHJvbC1oZWxwZXIiXV0sW1siY2xyLWNvbnRyb2wtZXJyb3IiXV0sW1siY2xyLWNvbnRyb2wtc3VjY2VzcyJdXV0sTWo9WyJsYWJlbCIsIltj''@;'; + put 'put ''bHJUZXh0YXJlYV0iLCJjbHItY29udHJvbC1oZWxwZXIiLCJjbHItY29udHJvbC1lcnJvciIsImNsci1jb250cm9sLXN1Y2Nlc3MiXSxzY2U9WyJhbmNob3IiXTtmdW5jdGlvbiBBZyhkLGcpe2lmKDEmZCYmKHJ0KDAsImRpdiIsNCkoMSwiZGl2Iiw1KSgyLCJidXR0b24iLDYpLENyKDMsImNk''@;'; + put 'put ''cy1pY29uIiw3KSxsdCgpKCksTmkoNCksbHQoKSksMiZkKXtjb25zdCBoPUp0KCk7VHQoImlkIixoLnBvcG92ZXJJZCksR2koImFyaWEtbGFiZWwiLGguY29tbW9uU3RyaW5ncy5rZXlzLmRhdGFncmlkRmlsdGVyRGlhbG9nQXJpYUxhYmVsKSx1dCgzKSxHaSgidGl0bGUiLGguY29tbW9uU3Ry''@;'; + put 'put ''aW5ncy5rZXlzLmNsb3NlKX19Y29uc3QgdWNlPVsiaW5wdXRfbG93Il0sbUw9WyJpbnB1dCJdLHZMPVsiY29sdW1uUG9ydGFsIl07ZnVuY3Rpb24gRWooZCxnKXsxJmQmJk5pKDApfWNvbnN0IFJmPVsicmVzaXplVHJhY2tlciJdLGUzPVsiY29sdW1uSGFuZGxlIl07ZnVuY3Rpb24gVnUoZCxn''@;'; + put 'put ''KXsxJmQmJmYxKDApfWZ1bmN0aW9uIHYkKGQsZyl7MSZkJiZDcigwLCJjZHMtaWNvbiIsMTApLDImZCYmR2koImRpcmVjdGlvbiIsSnQoMikuc29ydERpcmVjdGlvbil9ZnVuY3Rpb24gQSQoZCxnKXtpZigxJmQpe2NvbnN0IGg9YmkoKTtydCgwLCJidXR0b24iLDcpLEduKCJjbGljayIsZnVu''@;'; + put 'put ''Y3Rpb24oKXtyZXR1cm4gaXQoaCksYShKdCgpLnNvcnQoKSl9KSxybigxLFZ1LDEsMCwibmctY29udGFpbmVyIiw4KSxybigyLHYkLDEsMSwiY2RzLWljb24iLDkpLGx0KCl9aWYoMiZkKXtjb25zdCBoPUp0KCksdj15YSg2KTt1dCgxKSxUdCgibmdUZW1wbGF0ZU91dGxldCIsdiksdXQoMSks''@;'; + put 'put ''VHQoIm5nSWYiLGguc29ydERpcmVjdGlvbil9fWZ1bmN0aW9uIGNjZShkLGcpe2lmKDEmZCl7Y29uc3QgaD1iaSgpO3J0KDAsImNsci1kZy1zdHJpbmctZmlsdGVyIiwxMSksR24oImNsckZpbHRlclZhbHVlQ2hhbmdlIixmdW5jdGlvbih5KXtyZXR1cm4gaXQoaCksYShKdCgpLmZpbHRlclZh''@;'; + put 'put ''bHVlPXkpfSksbHQoKX1pZigyJmQpe2NvbnN0IGg9SnQoKTtUdCgiY2xyRmlsdGVyUGxhY2Vob2xkZXIiLGguZmlsdGVyU3RyaW5nUGxhY2Vob2xkZXJWYWx1ZSkoImNsckRnU3RyaW5nRmlsdGVyIixoLnJlZ2lzdGVyZWQpKCJjbHJGaWx0ZXJWYWx1ZSIsaC5maWx0ZXJWYWx1ZSl9fWZ1bmN0''@;'; + put 'put ''aW9uIGZjZShkLGcpe2lmKDEmZCl7Y29uc3QgaD1iaSgpO3J0KDAsImNsci1kZy1udW1lcmljLWZpbHRlciIsMTIpLEduKCJjbHJGaWx0ZXJWYWx1ZUNoYW5nZSIsZnVuY3Rpb24oeSl7cmV0dXJuIGl0KGgpLGEoSnQoKS5maWx0ZXJWYWx1ZT15KX0pLGx0KCl9aWYoMiZkKXtjb25zdCBoPUp0''@;'; + put 'put ''KCk7VHQoImNsckZpbHRlck1heFBsYWNlaG9sZGVyIixoLmZpbHRlck1heFBsYWNlaG9sZGVyVmFsdWUpKCJjbHJGaWx0ZXJNaW5QbGFjZWhvbGRlciIsaC5maWx0ZXJNaW5QbGFjZWhvbGRlclZhbHVlKSgiY2xyRGdOdW1lcmljRmlsdGVyIixoLnJlZ2lzdGVyZWQpKCJjbHJGaWx0ZXJWYWx1''@;'; + put 'put ''ZSIsaC5maWx0ZXJWYWx1ZSl9fWZ1bmN0aW9uICR5KGQsZyl7MSZkJiZOaSgwLDEpfWZ1bmN0aW9uIGNjKGQsZyl7MSZkJiZmMSgwKX1mdW5jdGlvbiBoY2UoZCxnKXtpZigxJmQmJihydCgwLCJzcGFuIiwxMykscm4oMSxjYywxLDAsIm5nLWNvbnRhaW5lciIsOCksbHQoKSksMiZkKXtKdCgp''@;'; + put 'put ''O2NvbnN0IGg9eWEoNik7dXQoMSksVHQoIm5nVGVtcGxhdGVPdXRsZXQiLGgpfX1mdW5jdGlvbiB5JChkLGcpezEmZCYmQ3IoMCwiY2xyLWRnLWNvbHVtbi1zZXBhcmF0b3IiKX1jb25zdCB4aj1bW1siY2xyLWRnLWZpbHRlciJdLFsiY2xyLWRnLXN0cmluZy1maWx0ZXIiXSxbImNsci1kZy1u''@;'; + put 'put ''dW1lcmljLWZpbHRlciJdXSwiKiJdLHckPVsiY2xyLWRnLWZpbHRlciwgY2xyLWRnLXN0cmluZy1maWx0ZXIsIGNsci1kZy1udW1lcmljLWZpbHRlciIsIioiXTtmdW5jdGlvbiBkY2UoZCxnKXsxJmQmJkNyKDAsImRpdiIsNCl9ZnVuY3Rpb24gcGNlKGQsZyl7MSZkJiZOaSgwLDAsWyIqbmdJ''@;'; + put 'put ''ZiIsImVtcHR5RGF0YWdyaWQiXSl9ZnVuY3Rpb24gYXYoZCxnKXtpZigxJmQmJihGMCgwKSxydCgxLCJidXR0b24iLDEpLENyKDIsImNkcy1pY29uIiwyKSxsdCgpLEgwKCkpLDImZCl7Y29uc3QgaD1KdCgpO3V0KDIpLEdpKCJ0aXRsZSIsaC5jb21tb25TdHJpbmdzLmtleXMuaW5mbyl9fWNv''@;'; + put 'put ''bnN0IFRqPVsiY2VsbFBvcnRhbCJdO2Z1bmN0aW9uIGIkKGQsZyl7MSZkJiZOaSgwKX1jb25zdCB0Mz1bInJvd1BvcnRhbCJdO2Z1bmN0aW9uIGdjZShkLGcpezEmZCYmTmkoMCl9Y29uc3QgbWNlPVsiZGV0YWlsQnV0dG9uIl0seWc9WyJzdGlja3lDZWxscyJdLHRTPVsic2Nyb2xsYWJsZUNl''@;'; + put 'put ''bGxzIl0sdmNlPVsiY2FsY3VsYXRlZENlbGxzIl07ZnVuY3Rpb24gQWNlKGQsZyl7fWZ1bmN0aW9uIHljZShkLGcpe2lmKDEmZCYmKHJ0KDAsImNsci1leHBhbmRhYmxlLWFuaW1hdGlvbiIsNykscm4oMSxBY2UsMCwwLCJuZy10ZW1wbGF0ZSIsOCksbHQoKSksMiZkKXtjb25zdCBoPUp0KDIp''@;'; + put 'put ''LHY9eWEoNik7VHQoImNsckV4cGFuZFRyaWdnZXIiLGguZXhwYW5kQW5pbWF0aW9uVHJpZ2dlciksdXQoMSksVHQoIm5nVGVtcGxhdGVPdXRsZXQiLHYpfX1mdW5jdGlvbiB3Y2UoZCxnKXt9ZnVuY3Rpb24gcXkoZCxnKXsxJmQmJnJuKDAsd2NlLDAsMCwibmctdGVtcGxhdGUiLDgpLDImZCYm''@;'; + put 'put ''KEp0KDIpLFR0KCJuZ1RlbXBsYXRlT3V0bGV0Iix5YSg2KSkpfWZ1bmN0aW9uIGJjZShkLGcpe2lmKDEmZCl7Y29uc3QgaD1iaSgpO3J0KDAsImxhYmVsIiw2KSxHbigibW91c2Vkb3duIixmdW5jdGlvbih5KXtyZXR1cm4gaXQoaCksYShKdCgpLmNsZWFyUmFuZ2VzKHkpKX0pLHJuKDEseWNl''@;'; + put 'put ''LDIsMiwiY2xyLWV4cGFuZGFibGUtYW5pbWF0aW9uIiwxKSxybigyLHF5LDEsMSxudWxsLDIpLGx0KCl9aWYoMiZkKXtjb25zdCBoPUp0KCk7dXQoMSksVHQoIm5nSWYiLGguZXhwYW5kLmV4cGFuZGFibGUpLHV0KDEpLFR0KCJuZ0lmIiwhaC5leHBhbmQuZXhwYW5kYWJsZSl9fWZ1bmN0aW9u''@;'; + put 'put ''IF8kKGQsZyl7fWZ1bmN0aW9uIF9jZShkLGcpe2lmKDEmZCYmKHJ0KDAsImNsci1leHBhbmRhYmxlLWFuaW1hdGlvbiIsNykscm4oMSxfJCwwLDAsIm5nLXRlbXBsYXRlIiw4KSxsdCgpKSwyJmQpe2NvbnN0IGg9SnQoKSx2PXlhKDYpO1R0KCJjbHJFeHBhbmRUcmlnZ2VyIixoLmV4cGFuZEFu''@;'; + put 'put ''aW1hdGlvblRyaWdnZXIpLHV0KDEpLFR0KCJuZ1RlbXBsYXRlT3V0bGV0Iix2KX19ZnVuY3Rpb24gb28oZCxnKXt9ZnVuY3Rpb24gSWooZCxnKXsxJmQmJnJuKDAsb28sMCwwLCJuZy10ZW1wbGF0ZSIsOCksMiZkJiYoSnQoKSxUdCgibmdUZW1wbGF0ZU91dGxldCIseWEoNikpKX1mdW5jdGlv''@;'; + put 'put ''biB4MShkLGcpezEmZCYmTmkoMCl9Y29uc3QgQUw9ZnVuY3Rpb24oZCl7cmV0dXJueyJjbHItZm9ybS1jb250cm9sLWRpc2FibGVkIjpkfX07ZnVuY3Rpb24geUwoZCxnKXtpZigxJmQpe2NvbnN0IGg9YmkoKTtydCgwLCJkaXYiLDE5KSgxLCJkaXYiLDIwKSgyLCJpbnB1dCIsMjEpLEduKCJu''@;'; + put 'put ''Z01vZGVsQ2hhbmdlIixmdW5jdGlvbih5KXtyZXR1cm4gaXQoaCksYShKdCgyKS50b2dnbGUoeSkpfSksbHQoKSxydCgzLCJsYWJlbCIsMjIpLEduKCJjbGljayIsZnVuY3Rpb24oeSl7cmV0dXJuIGl0KGgpLGEoSnQoMikuY2xlYXJSYW5nZXMoeSkpfSkscnQoNCwic3BhbiIsMjMpLFl0KDUp''@;'; + put 'put ''LGx0KCkoKSgpKCl9aWYoMiZkKXtjb25zdCBoPUp0KDIpO1R0KCJuZ0NsYXNzIixHZCg4LEFMLCFoLmNsckRnU2VsZWN0YWJsZSkpLHV0KDIpLFR0KCJuZ01vZGVsIixoLnNlbGVjdGVkKSgiaWQiLGguY2hlY2tib3hJZCksR2koImRpc2FibGVkIiwhaC5jbHJEZ1NlbGVjdGFibGV8fG51bGwp''@;'; + put 'put ''KCJhcmlhLWRpc2FibGVkIiwhaC5jbHJEZ1NlbGVjdGFibGV8fG51bGwpKCJhcmlhLWxhYmVsIixoLmNsckRnUm93QXJpYUxhYmVsKSx1dCgxKSxUdCgiZm9yIixoLmNoZWNrYm94SWQpLHV0KDIpLGppKGguY29tbW9uU3RyaW5ncy5rZXlzLnNlbGVjdCl9fWZ1bmN0aW9uIHdMKGQsZyl7aWYo''@;'; + put 'put ''MSZkKXtjb25zdCBoPWJpKCk7cnQoMCwiZGl2IiwxOSkoMSwiaW5wdXQiLDI0KSxHbigibmdNb2RlbENoYW5nZSIsZnVuY3Rpb24oeSl7cmV0dXJuIGl0KGgpLGEoSnQoMikuc2VsZWN0aW9uLmN1cnJlbnRTaW5nbGU9eSl9KSxsdCgpKCl9aWYoMiZkKXtjb25zdCBoPUp0KDIpO1R0KCJuZ0Ns''@;'; + put 'put ''YXNzIixHZCg5LEFMLCFoLmNsckRnU2VsZWN0YWJsZSkpLHV0KDEpLFR0KCJpZCIsaC5yYWRpb0lkKSgibmFtZSIsaC5zZWxlY3Rpb24uaWQrIi1yYWRpbyIpKCJ2YWx1ZSIsaC5pdGVtKSgibmdNb2RlbCIsaC5zZWxlY3Rpb24uY3VycmVudFNpbmdsZSkoImNoZWNrZWQiLGguc2VsZWN0aW9u''@;'; + put 'put ''LmN1cnJlbnRTaW5nbGU9PT1oLml0ZW0pLEdpKCJkaXNhYmxlZCIsIWguY2xyRGdTZWxlY3RhYmxlfHxudWxsKSgiYXJpYS1kaXNhYmxlZCIsIWguY2xyRGdTZWxlY3RhYmxlfHxudWxsKSgiYXJpYS1sYWJlbCIsaC5jbHJEZ1Jvd0FyaWFMYWJlbCl9fWZ1bmN0aW9uIGJMKGQsZyl7MSZkJiYo''@;'; + put 'put ''cnQoMCwiZGl2IiwyNSksTmkoMSwyKSxsdCgpKX1mdW5jdGlvbiBDJChkLGcpe2lmKDEmZCl7Y29uc3QgaD1iaSgpO3J0KDAsImJ1dHRvbiIsMjkpLEduKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gaXQoaCksYShKdCg0KS50b2dnbGVFeHBhbmQoKSl9KSxDcigxLCJjZHMtaWNvbiIsMzAp''@;'; + put 'put ''LGx0KCl9aWYoMiZkKXtjb25zdCBoPUp0KDQpO0dpKCJhcmlhLWV4cGFuZGVkIixoLmV4cGFuZC5leHBhbmRlZCkoImFyaWEtbGFiZWwiLGguZXhwYW5kLmV4cGFuZGVkP2guY2xyRGdEZXRhaWxDbG9zZUxhYmVsOmguY2xyRGdEZXRhaWxPcGVuTGFiZWwpKCJhcmlhLWNvbnRyb2xzIixoLmV4''@;'; + put 'put ''cGFuZGFibGVJZCksdXQoMSksR2koImRpcmVjdGlvbiIsaC5leHBhbmQuZXhwYW5kZWQ/ImRvd24iOiJyaWdodCIpKCJ0aXRsZSIsaC5leHBhbmQuZXhwYW5kZWQ/aC5jb21tb25TdHJpbmdzLmtleXMuY29sbGFwc2U6aC5jb21tb25TdHJpbmdzLmtleXMuZXhwYW5kKX19ZnVuY3Rpb24gayQo''@;'; + put 'put ''ZCxnKXtpZigxJmQmJihydCgwLCJjbHItc3Bpbm5lciIsMzEpLFl0KDEpLGx0KCkpLDImZCl7Y29uc3QgaD1KdCg0KTt1dCgxKSxqaShoLmNvbW1vblN0cmluZ3Mua2V5cy5sb2FkaW5nKX19ZnVuY3Rpb24gUyQoZCxnKXtpZigxJmQmJihGMCgwKSxybigxLEMkLDIsNSwiYnV0dG9uIiwyNyks''@;'; + put 'put ''cm4oMixrJCwyLDEsImNsci1zcGlubmVyIiwyOCksSDAoKSksMiZkKXtjb25zdCBoPUp0KDMpO3V0KDEpLFR0KCJuZ0lmIiwhaC5leHBhbmQubG9hZGluZyksdXQoMSksVHQoIm5nSWYiLGguZXhwYW5kLmxvYWRpbmcpfX1mdW5jdGlvbiBUMChkLGcpe2lmKDEmZCYmKHJ0KDAsImRpdiIsMjYp''@;'; + put 'put ''LHJuKDEsUyQsMywyLCJuZy1jb250YWluZXIiLDIpLGx0KCkpLDImZCl7Y29uc3QgaD1KdCgyKTt1dCgxKSxUdCgibmdJZiIsaC5leHBhbmQuZXhwYW5kYWJsZSl9fWZ1bmN0aW9uIENjZShkLGcpe2lmKDEmZCl7Y29uc3QgaD1iaSgpO3J0KDAsImRpdiIsMzIpKDEsImJ1dHRvbiIsMzMsMzQp''@;'; + put 'put ''LEduKCJjbGljayIsZnVuY3Rpb24oKXtpdChoKTtjb25zdCB5PXlhKDIpLEM9SnQoMik7cmV0dXJuIGEoQy5kZXRhaWxTZXJ2aWNlLnRvZ2dsZShDLml0ZW0seSkpfSksQ3IoMywiY2RzLWljb24iLDM1KSxsdCgpKCl9aWYoMiZkKXtjb25zdCBoPUp0KDIpO3V0KDEpLEZpKCJpcy1vcGVuIixo''@;'; + put 'put ''LmRldGFpbFNlcnZpY2UuaXNSb3dPcGVuKGguaXRlbSkpLEdpKCJhcmlhLWxhYmVsIixoLmRldGFpbFNlcnZpY2UuaXNSb3dPcGVuKGguaXRlbSk/aC5jbHJEZ0RldGFpbENsb3NlTGFiZWw6aC5jbHJEZ0RldGFpbE9wZW5MYWJlbCkoImFyaWEtZXhwYW5kZWQiLGguZGV0YWlsU2VydmljZS5p''@;'; + put 'put ''c09wZW4pKCJhcmlhLWNvbnRyb2xzIixoLmRldGFpbFNlcnZpY2UuaWQpLHV0KDIpLEdpKCJkaXJlY3Rpb24iLGguZGV0YWlsU2VydmljZS5pc1Jvd09wZW4oaC5pdGVtKT8ibGVmdCI6InJpZ2h0IikoInRpdGxlIixoLmRldGFpbFNlcnZpY2UuaXNSb3dPcGVuKGguaXRlbSk/aC5jb21tb25T''@;'; + put 'put ''dHJpbmdzLmtleXMuY2xvc2U6aC5jb21tb25TdHJpbmdzLmtleXMub3Blbil9fWZ1bmN0aW9uIF9MKGQsZyl7fWZ1bmN0aW9uIERqKGQsZyl7MSZkJiZybigwLF9MLDAsMCwibmctdGVtcGxhdGUiLDgpLDImZCYmKEp0KDIpLFR0KCJuZ1RlbXBsYXRlT3V0bGV0Iix5YSg0KSkpfWZ1bmN0aW9u''@;'; + put 'put ''IGx2KGQsZyl7fWZ1bmN0aW9uIGtjZShkLGcpezEmZCYmcm4oMCxsdiwwLDAsIm5nLXRlbXBsYXRlIiw4KSwyJmQmJihKdCgyKSxUdCgibmdUZW1wbGF0ZU91dGxldCIseWEoNCkpKX1jb25zdCBMaj1mdW5jdGlvbihkKXtyZXR1cm57ImlzLXJlcGxhY2VkIjpkfX07ZnVuY3Rpb24gcmEoZCxn''@;'; + put 'put ''KXtpZigxJmQmJihydCgwLCJkaXYiLDkpKDEsImRpdiIsMTApLEYwKDIsbnVsbCwxMSkscm4oNCx5TCw2LDEwLCJkaXYiLDEyKSxybig1LHdMLDIsMTEsImRpdiIsMTIpLHJuKDYsYkwsMiwwLCJkaXYiLDEzKSxybig3LFQwLDIsMSwiZGl2IiwxNCkscm4oOCxDY2UsNCw3LCJkaXYiLDE1KSxI''@;'; + put 'put ''MCgpLGx0KCkscnQoOSwiZGl2IiwxNikoMTAsImRpdiIsMTcpLE5pKDExLDEpLGYxKDEyLG51bGwsMTgpLGx0KCkscm4oMTQsRGosMSwxLG51bGwsMikscm4oMTUsa2NlLDEsMSxudWxsLDIpLGx0KCkoKSksMiZkKXtjb25zdCBoPUp0KCk7RmkoImRhdGFncmlkLXJvdy1kZXRhaWwtb3BlbiIs''@;'; + put 'put ''aC5kZXRhaWxTZXJ2aWNlLmlzUm93T3BlbihoLml0ZW0pKSxUdCgiaWQiLGguaWQpLHV0KDQpLFR0KCJuZ0lmIixoLnNlbGVjdGlvbi5zZWxlY3Rpb25UeXBlPT09aC5TRUxFQ1RJT05fVFlQRS5NdWx0aSksdXQoMSksVHQoIm5nSWYiLGguc2VsZWN0aW9uLnNlbGVjdGlvblR5cGU9PT1oLlNF''@;'; + put 'put ''TEVDVElPTl9UWVBFLlNpbmdsZSksdXQoMSksVHQoIm5nSWYiLGgucm93QWN0aW9uU2VydmljZS5oYXNBY3Rpb25hYmxlUm93KSx1dCgxKSxUdCgibmdJZiIsaC5nbG9iYWxFeHBhbmRhYmxlLmhhc0V4cGFuZGFibGVSb3cpLHV0KDEpLFR0KCJuZ0lmIixoLmRldGFpbFNlcnZpY2UuZW5hYmxl''@;'; + put 'put ''ZCksdXQoMSksVHQoIm5nQ2xhc3MiLEdkKDExLExqLGgucmVwbGFjZWQmJmguZXhwYW5kZWQpKSx1dCg1KSxUdCgibmdJZiIsaC5yZXBsYWNlZCYmIWguZXhwYW5kLmxvYWRpbmcpLHV0KDEpLFR0KCJuZ0lmIiwhaC5yZXBsYWNlZCYmIWguZXhwYW5kLmxvYWRpbmcpfX1jb25zdCBNJD1bW1si''@;'; + put 'put ''Y2xyLWRnLXJvdy1kZXRhaWwiXV0sW1siY2xyLWRnLWNlbGwiXV0sW1siY2xyLWRnLWFjdGlvbi1vdmVyZmxvdyJdXV0sc3Y9WyJjbHItZGctcm93LWRldGFpbCIsImNsci1kZy1jZWxsIiwiY2xyLWRnLWFjdGlvbi1vdmVyZmxvdyJdLFNjZT1bInNjcm9sbGFibGVDb2x1bW5zIl0sRSQ9WyJk''@;'; + put 'put ''YXRhZ3JpZFRhYmxlIl0sZXc9WyJwcm9qZWN0ZWREaXNwbGF5Q29sdW1ucyJdLE1jZT1bInByb2plY3RlZENhbGN1bGF0aW9uQ29sdW1ucyJdLE9qPVsiZGlzcGxheWVkUm93cyJdLFJqPVsiY2FsY3VsYXRpb25Sb3dzIl07ZnVuY3Rpb24gQ0woZCxnKXtpZigxJmQpe2NvbnN0IGg9YmkoKTty''@;'; + put 'put ''dCgwLCJkaXYiLDI0KSxHbigia2V5ZG93bi5zcGFjZSIsZnVuY3Rpb24oeSl7aXQoaCk7Y29uc3QgQz1KdCgpO3JldHVybiBDLmFsbFNlbGVjdGVkPSFDLmFsbFNlbGVjdGVkLGEoeS5wcmV2ZW50RGVmYXVsdCgpKX0pLHJ0KDEsImRpdiIsMjUpKDIsImlucHV0IiwyNiksR24oIm5nTW9kZWxD''@;'; + put 'put ''aGFuZ2UiLGZ1bmN0aW9uKHkpe3JldHVybiBpdChoKSxhKEp0KCkuYWxsU2VsZWN0ZWQ9eSl9KSxsdCgpLHJ0KDMsImxhYmVsIiwyNykoNCwic3BhbiIsMjgpLFl0KDUpLGx0KCkoKSgpLENyKDYsImRpdiIsMjkpLGx0KCl9aWYoMiZkKXtjb25zdCBoPUp0KCk7dXQoMiksVHQoImlkIixoLnNl''@;'; + put 'put ''bGVjdEFsbElkKSgibmdNb2RlbCIsaC5hbGxTZWxlY3RlZCksR2koImFyaWEtbGFiZWwiLGguY29tbW9uU3RyaW5ncy5rZXlzLnNlbGVjdEFsbCksdXQoMSksVHQoImZvciIsaC5zZWxlY3RBbGxJZCksdXQoMiksamkoaC5jb21tb25TdHJpbmdzLmtleXMuc2VsZWN0QWxsKX19ZnVuY3Rpb24g''@;'; + put 'put ''QmooZCxnKXsxJmQmJihydCgwLCJkaXYiLDMwKSxDcigxLCJkaXYiLDI5KSxsdCgpKSwyJmQmJkdpKCJhcmlhLWxhYmVsIixKdCgpLmNsckRnU2luZ2xlU2VsZWN0aW9uQXJpYUxhYmVsKX1mdW5jdGlvbiBFY2UoZCxnKXsxJmQmJihydCgwLCJkaXYiLDMxKSxDcigxLCJkaXYiLDI5KSxsdCgp''@;'; + put 'put ''KSwyJmQmJkdpKCJhcmlhLWxhYmVsIixKdCgpLmNsckRnU2luZ2xlQWN0aW9uYWJsZUFyaWFMYWJlbCl9ZnVuY3Rpb24geCQoZCxnKXsxJmQmJihydCgwLCJkaXYiLDMyKSxDcigxLCJkaXYiLDI5KSxsdCgpKSwyJmQmJkdpKCJhcmlhLWxhYmVsIixKdCgpLmNsckRldGFpbEV4cGFuZGFibGVB''@;'; + put 'put ''cmlhTGFiZWwpfWZ1bmN0aW9uIHhjZShkLGcpezEmZCYmQ3IoMCwiY2xyLWRnLXBsYWNlaG9sZGVyIil9ZnVuY3Rpb24gYzgoZCxnKXsxJmQmJihydCgwLCJkaXYiLDMzKSgxLCJjbHItc3Bpbm5lciIsMzQpLFl0KDIsIkxvYWRpbmciKSxsdCgpKCkpfWNvbnN0IFRjZT1bW1siY2xyLWRnLWFj''@;'; + put 'put ''dGlvbi1iYXIiXV0sW1siY2xyLWRnLXBsYWNlaG9sZGVyIl1dLFtbImNsci1kZy1mb290ZXIiXV0sW1siIiwiY2xySWZEZXRhaWwiLCIiXSxbImNsci1kZy1kZXRhaWwiXV1dLF91PVsiY2xyLWRnLWFjdGlvbi1iYXIiLCJjbHItZGctcGxhY2Vob2xkZXIiLCJjbHItZGctZm9vdGVyIiwiW2Ns''@;'; + put 'put ''cklmRGV0YWlsXSxjbHItZGctZGV0YWlsIl0sUGo9WyJhbGxTZWxlY3RlZCJdO2Z1bmN0aW9uIEljZShkLGcpe2lmKDEmZCYmKEYwKDApLHJ0KDEsImgyIiksWXQoMiksbHQoKSxIMCgpKSwyJmQpe2NvbnN0IGg9SnQoMik7dXQoMiksamkoaC5jb21tb25TdHJpbmdzLmtleXMuc2hvd0NvbHVt''@;'; + put 'put ''bnMpfX1mdW5jdGlvbiBGaihkLGcpe31mdW5jdGlvbiBEY2UoZCxnKXtpZigxJmQpe2NvbnN0IGg9YmkoKTtydCgwLCJsaSIpKDEsImNsci1jaGVja2JveC13cmFwcGVyIikoMiwiaW5wdXQiLDE1KSxHbigibmdNb2RlbENoYW5nZSIsZnVuY3Rpb24oeSl7Y29uc3QgST1pdChoKS4kaW1wbGlj''@;'; + put 'put ''aXQ7cmV0dXJuIGEoSnQoMikudG9nZ2xlQ29sdW1uU3RhdGUoSSwheSkpfSksbHQoKSxydCgzLCJsYWJlbCIpLHJuKDQsRmosMCwwLCJuZy10ZW1wbGF0ZSIsMTYpLGx0KCkoKSgpfWlmKDImZCl7Y29uc3QgaD1nLiRpbXBsaWNpdCx2PUp0KDIpO3V0KDIpLFR0KCJkaXNhYmxlZCIsdi5oYXNP''@;'; + put 'put ''bmx5T25lVmlzaWJsZUNvbHVtbiYmIWguaGlkZGVuKSgibmdNb2RlbCIsIWguaGlkZGVuKSx1dCgyKSxUdCgibmdUZW1wbGF0ZU91dGxldCIsaC50aXRsZVRlbXBsYXRlUmVmKX19ZnVuY3Rpb24gVCQoZCxnKXtpZigxJmQpe2NvbnN0IGg9YmkoKTtydCgwLCJjbHItZGctY29sdW1uLXRvZ2ds''@;'; + put 'put ''ZS1idXR0b24iLDE3KSxHbigiY2xyQWxsU2VsZWN0ZWQiLGZ1bmN0aW9uKCl7cmV0dXJuIGl0KGgpLGEoSnQoMikuYWxsQ29sdW1uc1NlbGVjdGVkKCkpfSksWXQoMSksbHQoKX1pZigyJmQpe2NvbnN0IGg9SnQoMik7dXQoMSksSmkoIiAiLGguY29tbW9uU3RyaW5ncy5rZXlzLnNlbGVjdEFs''@;'; + put 'put ''bCwiICIpfX1mdW5jdGlvbiBMY2UoZCxnKXtpZigxJmQmJihydCgwLCJkaXYiLDQpKDEsImRpdiIsNSkoMiwiZGl2Iiw2LDcpLFl0KDQpLGx0KCkscm4oNSxJY2UsMywxLCJuZy1jb250YWluZXIiLDgpLE5pKDYpLHJ0KDcsImJ1dHRvbiIsOSksQ3IoOCwiY2RzLWljb24iLDEwKSxydCg5LCJz''@;'; + put 'put ''cGFuIiwyKSxZdCgxMCksbHQoKSgpKCkscnQoMTEsInVsIiwxMSkscm4oMTIsRGNlLDUsMywibGkiLDEyKSxsdCgpLHJ0KDEzLCJkaXYiLDEzKSxOaSgxNCwxKSxybigxNSxUJCwyLDEsImNsci1kZy1jb2x1bW4tdG9nZ2xlLWJ1dHRvbiIsMTQpLGx0KCkoKSksMiZkKXtjb25zdCBoPUp0KCk7''@;'; + put 'put ''VHQoImlkIixoLnBvcG92ZXJJZCksR2koImFyaWEtbGFiZWwiLGguY29tbW9uU3RyaW5ncy5rZXlzLnNob3dDb2x1bW5zTWVudURlc2NyaXB0aW9uKSx1dCg0KSxqaShoLmNvbW1vblN0cmluZ3Mua2V5cy5hbGxDb2x1bW5zU2VsZWN0ZWQpLHV0KDEpLFR0KCJuZ0lmIiwhaC5jdXN0b21Ub2dn''@;'; + put 'put ''bGVUaXRsZSksdXQoMiksR2koImFyaWEtbGFiZWwiLGguY29tbW9uU3RyaW5ncy5rZXlzLmNsb3NlKSx1dCgxKSxHaSgidGl0bGUiLGguY29tbW9uU3RyaW5ncy5rZXlzLmNsb3NlKSx1dCgyKSxqaShoLmNvbW1vblN0cmluZ3Mua2V5cy5jbG9zZSksdXQoMiksVHQoIm5nRm9yT2YiLGguaGlk''@;'; + put 'put ''ZWFibGVDb2x1bW5TdGF0ZXMpKCJuZ0ZvclRyYWNrQnkiLGgudHJhY2tCeUZuKSx1dCgzKSxUdCgibmdJZiIsIWguY3VzdG9tVG9nZ2xlQnV0dG9uKX19Y29uc3QgblM9W1tbImNsci1kZy1jb2x1bW4tdG9nZ2xlLXRpdGxlIl1dLFtbImNsci1kZy1jb2x1bW4tdG9nZ2xlLWJ1dHRvbiJdXV0s''@;'; + put 'put ''T2NlPVsiY2xyLWRnLWNvbHVtbi10b2dnbGUtdGl0bGUiLCJjbHItZGctY29sdW1uLXRvZ2dsZS1idXR0b24iXTtmdW5jdGlvbiBCY2UoZCxnKXtpZigxJmQmJihGMCgwKSxydCgxLCJkaXYiLDEpKDIsImNsci1jaGVja2JveC13cmFwcGVyIiwyKSxDcigzLCJpbnB1dCIsMykscnQoNCwibGFi''@;'; + put 'put ''ZWwiKSxZdCg1KSxsdCgpLHJ0KDYsInNwYW4iLDQpLFl0KDcpLGx0KCkoKSgpLEgwKCkpLDImZCl7Y29uc3QgaD1KdCgpO3V0KDUpLGppKGguc2VsZWN0aW9uLmN1cnJlbnQubGVuZ3RoKSx1dCgyKSxqaShoLmNvbW1vblN0cmluZ3Mua2V5cy5zZWxlY3RlZFJvd3MpfX1mdW5jdGlvbiBQY2Uo''@;'; + put 'put ''ZCxnKXsxJmQmJkNyKDAsImNsci1kZy1jb2x1bW4tdG9nZ2xlIil9ZnVuY3Rpb24gRmNlKGQsZyl7aWYoMSZkJiYoRjAoMCksTmkoMSwxKSxybigyLFBjZSwxLDAsImNsci1kZy1jb2x1bW4tdG9nZ2xlIiwwKSxydCgzLCJkaXYiLDUpLE5pKDQsMiksbHQoKSxIMCgpKSwyJmQpe2NvbnN0IGg9''@;'; + put 'put ''SnQoKTt1dCgyKSxUdCgibmdJZiIsaC5oYXNIaWRlYWJsZUNvbHVtbnMmJiFoLnRvZ2dsZSl9fWNvbnN0IEkkPVtbWyJjbHItZGctcGFnaW5hdGlvbiJdXSxbWyJjbHItZGctY29sdW1uLXRvZ2dsZSJdXSwiKiJdLEhjZT1bImNsci1kZy1wYWdpbmF0aW9uIiwiY2xyLWRnLWNvbHVtbi10b2dn''@;'; + put 'put ''bGUiLCIqIl07ZnVuY3Rpb24gRCQoZCxnKXtpZigxJmQmJihydCgwLCJvcHRpb24iLDMpLFl0KDEpLGx0KCkpLDImZCl7Y29uc3QgaD1nLiRpbXBsaWNpdDtUdCgibmdWYWx1ZSIsaCksdXQoMSksamkoaCl9fWNvbnN0IE5jZT1bImN1cnJlbnRQYWdlSW5wdXQiXTtmdW5jdGlvbiBWY2UoZCxn''@;'; + put 'put ''KXsxJmQmJihydCgwLCJkaXYiLDQpLE5pKDEsMSksbHQoKSl9ZnVuY3Rpb24gTCQoZCxnKXtpZigxJmQpe2NvbnN0IGg9YmkoKTtydCgwLCJpbnB1dCIsMTcsMTgpLEduKCJrZXlkb3duLmVudGVyIixmdW5jdGlvbih5KXtyZXR1cm4gaXQoaCksYShKdCgzKS51cGRhdGVDdXJyZW50UGFnZSh5''@;'; + put 'put ''KSl9KSgiYmx1ciIsZnVuY3Rpb24oeSl7cmV0dXJuIGl0KGgpLGEoSnQoMykudXBkYXRlQ3VycmVudFBhZ2UoeSkpfSksbHQoKX1pZigyJmQpe2NvbnN0IGg9SnQoMyk7VHQoInNpemUiLGgucGFnZS5sYXN0LnRvU3RyaW5nKCkubGVuZ3RoKSgidmFsdWUiLGgucGFnZS5jdXJyZW50KSxHaSgi''@;'; + put 'put ''YXJpYS1sYWJlbCIsaC5jb21tb25TdHJpbmdzLmtleXMuY3VycmVudFBhZ2UpfX1mdW5jdGlvbiBqY2UoZCxnKXtpZigxJmQmJihydCgwLCJzcGFuIiksWXQoMSksbHQoKSksMiZkKXtjb25zdCBoPUp0KDMpO3V0KDEpLGppKGgucGFnZS5jdXJyZW50KX19ZnVuY3Rpb24gbjMoZCxnKXtpZigx''@;'; + put 'put ''JmQpe2NvbnN0IGg9YmkoKTtydCgwLCJkaXYiLDUpKDEsImJ1dHRvbiIsNiksR24oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBpdChoKSxhKEp0KDIpLnBhZ2UuY3VycmVudD0xKX0pLHJ0KDIsInNwYW4iLDcpLFl0KDMpLGx0KCksQ3IoNCwiY2RzLWljb24iLDgpLGx0KCkscnQoNSwiYnV0''@;'; + put 'put ''dG9uIiw5KSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7aXQoaCk7Y29uc3QgeT1KdCgyKTtyZXR1cm4gYSh5LnBhZ2UuY3VycmVudD15LnBhZ2UuY3VycmVudC0xKX0pLHJ0KDYsInNwYW4iLDcpLFl0KDcpLGx0KCksQ3IoOCwiY2RzLWljb24iLDEwKSxsdCgpLHJuKDksTCQsMiwzLCJpbnB1dCIs''@;'; + put 'put ''MTEpLHJuKDEwLGpjZSwyLDEsIm5nLXRlbXBsYXRlIixudWxsLDEyLFpyKSxZdCgxMiwiIFx4YTAvXHhhMCIpLHJ0KDEzLCJzcGFuIiksWXQoMTQpLGx0KCkscnQoMTUsImJ1dHRvbiIsMTMpLEduKCJjbGljayIsZnVuY3Rpb24oKXtpdChoKTtjb25zdCB5PUp0KDIpO3JldHVybiBhKHkucGFn''@;'; + put 'put ''ZS5jdXJyZW50PXkucGFnZS5jdXJyZW50KzEpfSkscnQoMTYsInNwYW4iLDcpLFl0KDE3KSxsdCgpLENyKDE4LCJjZHMtaWNvbiIsMTQpLGx0KCkscnQoMTksImJ1dHRvbiIsMTUpLEduKCJjbGljayIsZnVuY3Rpb24oKXtpdChoKTtjb25zdCB5PUp0KDIpO3JldHVybiBhKHkucGFnZS5jdXJy''@;'; + put 'put ''ZW50PXkucGFnZS5sYXN0KX0pLHJ0KDIwLCJzcGFuIiw3KSxZdCgyMSksbHQoKSxDcigyMiwiY2RzLWljb24iLDE2KSxsdCgpKCl9aWYoMiZkKXtjb25zdCBoPXlhKDExKSx2PUp0KDIpO3V0KDEpLFR0KCJkaXNhYmxlZCIsdi5wYWdlLmN1cnJlbnQ8PTEpLEdpKCJhcmlhLWxhYmVsIix2LmNv''@;'; + put 'put ''bW1vblN0cmluZ3Mua2V5cy5maXJzdFBhZ2UpLHV0KDIpLGppKHYuY29tbW9uU3RyaW5ncy5rZXlzLmZpcnN0UGFnZSksdXQoMiksVHQoImRpc2FibGVkIix2LnBhZ2UuY3VycmVudDw9MSksR2koImFyaWEtbGFiZWwiLHYuY29tbW9uU3RyaW5ncy5rZXlzLnByZXZpb3VzUGFnZSksdXQoMiks''@;'; + put 'put ''amkodi5jb21tb25TdHJpbmdzLmtleXMucHJldmlvdXNQYWdlKSx1dCgyKSxUdCgibmdJZiIsIXYuZGlzYWJsZUN1cnJlbnRQYWdlSW5wdXQpKCJuZ0lmRWxzZSIsaCksdXQoNCksR2koImFyaWEtbGFiZWwiLHYuY29tbW9uU3RyaW5ncy5rZXlzLnRvdGFsUGFnZXMpLHV0KDEpLGppKHYucGFn''@;'; + put 'put ''ZS5sYXN0KSx1dCgxKSxUdCgiZGlzYWJsZWQiLHYucGFnZS5jdXJyZW50Pj12LnBhZ2UubGFzdCksR2koImFyaWEtbGFiZWwiLHYuY29tbW9uU3RyaW5ncy5rZXlzLm5leHRQYWdlKSx1dCgyKSxqaSh2LmNvbW1vblN0cmluZ3Mua2V5cy5uZXh0UGFnZSksdXQoMiksVHQoImRpc2FibGVkIix2''@;'; + put 'put ''LnBhZ2UuY3VycmVudD49di5wYWdlLmxhc3QpLEdpKCJhcmlhLWxhYmVsIix2LmNvbW1vblN0cmluZ3Mua2V5cy5sYXN0UGFnZSksdXQoMiksamkodi5jb21tb25TdHJpbmdzLmtleXMubGFzdFBhZ2UpfX1mdW5jdGlvbiBaY2UoZCxnKXtpZigxJmQmJihGMCgwKSxybigxLFZjZSwyLDAsImRp''@;'; + put 'put ''diIsMSkscnQoMiwiZGl2IiwyKSxOaSgzKSxsdCgpLHJuKDQsbjMsMjMsMTYsImRpdiIsMyksSDAoKSksMiZkKXtjb25zdCBoPUp0KCk7dXQoMSksVHQoIm5nSWYiLGguX3BhZ2VTaXplQ29tcG9uZW50KSx1dCgzKSxUdCgibmdJZiIsaC5wYWdlLmxhc3Q+MSl9fWZ1bmN0aW9uIE8kKGQsZyl7''@;'; + put 'put ''aWYoMSZkKXtjb25zdCBoPWJpKCk7RjAoMCkscnQoMSwiZGl2IiwxOSksWXQoMiksbHQoKSxydCgzLCJkaXYiLDUpKDQsImJ1dHRvbiIsOSksR24oImNsaWNrIixmdW5jdGlvbigpe2l0KGgpO2NvbnN0IHk9SnQoKTtyZXR1cm4gYSh5LnBhZ2UuY3VycmVudD15LnBhZ2UuY3VycmVudC0xKX0p''@;'; + put 'put ''LHJ0KDUsInNwYW4iLDcpLFl0KDYpLGx0KCksQ3IoNywiY2RzLWljb24iLDEwKSxsdCgpLHJ0KDgsInNwYW4iKSxZdCg5KSxsdCgpLHJ0KDEwLCJidXR0b24iLDEzKSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7aXQoaCk7Y29uc3QgeT1KdCgpO3JldHVybiBhKHkucGFnZS5jdXJyZW50PXkucGFn''@;'; + put 'put ''ZS5jdXJyZW50KzEpfSkscnQoMTEsInNwYW4iLDcpLFl0KDEyKSxsdCgpLENyKDEzLCJjZHMtaWNvbiIsMTQpLGx0KCkoKSxIMCgpfWlmKDImZCl7Y29uc3QgaD1KdCgpO3V0KDIpLGtmKCIgIixoLnBhZ2UuZmlyc3RJdGVtKzEsIi0iLGgucGFnZS5sYXN0SXRlbSsxLCIgLyAiLGgucGFnZS50''@;'; + put 'put ''b3RhbEl0ZW1zLCIgIiksdXQoMiksVHQoImRpc2FibGVkIixoLnBhZ2UuY3VycmVudDw9MSksR2koImFyaWEtbGFiZWwiLGguY29tbW9uU3RyaW5ncy5rZXlzLnByZXZpb3VzUGFnZSksdXQoMiksamkoaC5jb21tb25TdHJpbmdzLmtleXMucHJldmlvdXNQYWdlKSx1dCgzKSxqaShoLnBhZ2Uu''@;'; + put 'put ''Y3VycmVudCksdXQoMSksVHQoImRpc2FibGVkIixoLnBhZ2UuY3VycmVudD49aC5wYWdlLmxhc3QpLEdpKCJhcmlhLWxhYmVsIixoLmNvbW1vblN0cmluZ3Mua2V5cy5uZXh0UGFnZSksdXQoMiksamkoaC5jb21tb25TdHJpbmdzLmtleXMubmV4dFBhZ2UpfX1jb25zdCByMz1bIioiLFtbImNs''@;'; + put 'put ''ci1kZy1wYWdlLXNpemUiXV1dLGtwPVsiKiIsImNsci1kZy1wYWdlLXNpemUiXTtmdW5jdGlvbiBpMyhkLGcpezEmZCYmQ3IoMCwiY2RzLWljb24iLDcpLDImZCYmR2koImRpcmVjdGlvbiIsSnQoKS5jYXJldERpcmVjdGlvbil9ZnVuY3Rpb24gemNlKGQsZyl7aWYoMSZkJiYocnQoMCwic3Bh''@;'; + put 'put ''biIsOCksWXQoMSksbHQoKSksMiZkKXtjb25zdCBoPUp0KCk7dXQoMSksamkoaC5jb21tb25TdHJpbmdzLmtleXMuc3RhY2tWaWV3Q2hhbmdlZCl9fWZ1bmN0aW9uIHR3KGQsZyl7aWYoMSZkJiYocnQoMCwiZGl2Iiw5KSxOaSgxLDIpLGx0KCkpLDImZCl7Y29uc3QgaD1KdCgpO1IzKCJoZWln''@;'; + put 'put ''aHQiLGguZXhwYW5kZWQ/ImF1dG8iOjApLEdpKCJpZCIsaC5nZXRTdGFja0NoaWxkcmVuSWQoKSkoImFyaWEtbGFiZWxsZWRieSIsaC5sYWJlbGxlZEJ5SWQpfX1jb25zdCBHY2U9W1tbImNsci1zdGFjay1sYWJlbCJdXSwiKiIsW1siY2xyLXN0YWNrLWJsb2NrIl1dXSxudz1bImNsci1zdGFj''@;'; + put 'put ''ay1sYWJlbCIsIioiLCJjbHItc3RhY2stYmxvY2siXSxUMT1bW1siY2xyLXN0YWNrLWhlYWRlciJdXSwiKiJdLFdjZT1bImNsci1zdGFjay1oZWFkZXIiLCIqIl07ZnVuY3Rpb24gUWNlKGQsZyl7MSZkJiZmMSgwKX1mdW5jdGlvbiBOaihkLGcpe2lmKDEmZCYmKEYwKDApLHJuKDEsUWNlLDEs''@;'; + put 'put ''MCwibmctY29udGFpbmVyIiwyKSxIMCgpKSwyJmQpe2NvbnN0IGg9Zy4kaW1wbGljaXQsdj1KdCgyKTt1dCgxKSxUdCgibmdUZW1wbGF0ZU91dGxldCIsdi5mZWF0dXJlc1NlcnZpY2UucmVjdXJzaW9uLnRlbXBsYXRlKSgibmdUZW1wbGF0ZU91dGxldENvbnRleHQiLHYuZ2V0Q29udGV4dCho''@;'; + put 'put ''KSl9fWZ1bmN0aW9uIEpjZShkLGcpe2lmKDEmZCYmKEYwKDApLHJuKDEsTmosMiwyLCJuZy1jb250YWluZXIiLDEpLEgwKCkpLDImZCl7Y29uc3QgaD1KdCgpO3V0KDEpLFR0KCJuZ0Zvck9mIiwobnVsbD09aC5wYXJlbnQ/bnVsbDpoLnBhcmVudC5jaGlsZHJlbil8fGguY2hpbGRyZW4pfX1j''@;'; + put 'put ''b25zdCBCJD1bImNvbnRlbnRDb250YWluZXIiXTtmdW5jdGlvbiBYY2UoZCxnKXtpZigxJmQpe2NvbnN0IGg9YmkoKTtydCgwLCJidXR0b24iLDkpLEduKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gaXQoaCksYShKdCgpLmV4cGFuZFNlcnZpY2UudG9nZ2xlKCkpfSkoImZvY3VzIixmdW5j''@;'; + put 'put ''dGlvbigpe3JldHVybiBpdChoKSxhKEp0KCkuZm9jdXNUcmVlTm9kZSgpKX0pLENyKDEsImNkcy1pY29uIiwxMCksbHQoKX1pZigyJmQpe2NvbnN0IGg9SnQoKTt1dCgxKSxHaSgiZGlyZWN0aW9uIixoLmV4cGFuZFNlcnZpY2UuZXhwYW5kZWQ/ImRvd24iOiJyaWdodCIpfX1mdW5jdGlvbiBu''@;'; + put 'put ''MShkLGcpezEmZCYmKHJ0KDAsImRpdiIsMTEpLENyKDEsInNwYW4iLDEyKSxsdCgpKX1mdW5jdGlvbiB1dihkLGcpe2lmKDEmZCl7Y29uc3QgaD1iaSgpO3J0KDAsImRpdiIsMTMpKDEsImlucHV0IiwxNCksR24oImNoYW5nZSIsZnVuY3Rpb24oKXtpdChoKTtjb25zdCB5PUp0KCk7cmV0dXJu''@;'; + put 'put ''IGEoeS5fbW9kZWwudG9nZ2xlU2VsZWN0aW9uKHkuZmVhdHVyZXNTZXJ2aWNlLmVhZ2VyKSl9KSgiZm9jdXMiLGZ1bmN0aW9uKCl7cmV0dXJuIGl0KGgpLGEoSnQoKS5mb2N1c1RyZWVOb2RlKCkpfSksbHQoKSxDcigyLCJsYWJlbCIsMTUpLGx0KCl9aWYoMiZkKXtjb25zdCBoPUp0KCk7dXQo''@;'; + put 'put ''MSksWm0oImlkIiwiIixoLm5vZGVJZCwiLWNoZWNrIiksVHQoImNoZWNrZWQiLGguX21vZGVsLnNlbGVjdGVkLnZhbHVlPT09aC5TVEFURVMuU0VMRUNURUQpKCJpbmRldGVybWluYXRlIixoLl9tb2RlbC5zZWxlY3RlZC52YWx1ZT09PWguU1RBVEVTLklOREVURVJNSU5BVEUpLHV0KDEpLFpt''@;'; + put 'put ''KCJmb3IiLCIiLGgubm9kZUlkLCItY2hlY2siKX19ZnVuY3Rpb24gS2NlKGQsZyl7MSZkJiYocnQoMCwic3BhbiIpLFl0KDEsInNlbGVjdGVkIiksbHQoKSl9ZnVuY3Rpb24ga0woZCxnKXsxJmQmJihydCgwLCJzcGFuIiksWXQoMSwidW5zZWxlY3RlZCIpLGx0KCkpfWZ1bmN0aW9uICRjZShk''@;'; + put 'put ''LGcpe2lmKDEmZCYmKHJ0KDAsImRpdiIsMTYpLHJuKDEsS2NlLDIsMCwic3BhbiIsMTcpLHJuKDIsa0wsMiwwLCJzcGFuIiwxNyksbHQoKSksMiZkKXtjb25zdCBoPUp0KCk7dXQoMSksVHQoIm5nSWYiLGguYXJpYVNlbGVjdGVkKSx1dCgxKSxUdCgibmdJZiIsIWguYXJpYVNlbGVjdGVkKX19''@;'; + put 'put ''Y29uc3QgUCQ9WyIqIixbWyJjbHItdHJlZS1ub2RlIl1dLFtbIiIsImNscklmRXhwYW5kZWQiLCIiXV1dLGVmPVsiKiIsImNsci10cmVlLW5vZGUiLCJbY2xySWZFeHBhbmRlZF0iXTtmdW5jdGlvbiBFbChkLGcpezEmZCYmQ3IoMCwiY2xyLXJlY3Vyc2l2ZS1jaGlsZHJlbiIsMSksMiZkJiZU''@;'; + put 'put ''dCgiY2hpbGRyZW4iLEp0KCkuZmVhdHVyZXNTZXJ2aWNlLnJlY3Vyc2lvbi5yb290KX1mdW5jdGlvbiBRYShkLGcpe2lmKDEmZCl7Y29uc3QgaD1iaSgpO3J0KDAsImJ1dHRvbiIsNCksR24oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBpdChoKSxhKEp0KDIpLmNsb3NlKCkpfSksQ3IoMSwi''@;'; + put 'put ''Y2RzLWljb24iLDUpLGx0KCl9MiZkJiZHaSgiYXJpYS1sYWJlbCIsSnQoMikuY2xyQ2xvc2VCdXR0b25BcmlhTGFiZWwpfWZ1bmN0aW9uIEJmKGQsZyl7aWYoMSZkJiYocnQoMCwiZGl2IiwxKSgxLCJkaXYiLDIpLE5pKDIpLGx0KCkscm4oMyxRYSwyLDEsImJ1dHRvbiIsMyksbHQoKSksMiZk''@;'; + put 'put ''KXtjb25zdCBoPUp0KCk7RmkoImFsZXJ0LWhpZGRlbiIsaC5oaWRkZW4pKCJhbGVydC1zbSIsaC5pc1NtYWxsKSgiYWxlcnQtYXBwLWxldmVsIixoLmlzQXBwTGV2ZWwpLFR0KCJuZ0NsYXNzIixoLmFsZXJ0Q2xhc3MpLHV0KDMpLFR0KCJuZ0lmIixoLmNsb3NhYmxlKX19ZnVuY3Rpb24gZmgo''@;'; + put 'put ''ZCxnKXsxJmQmJkNyKDAsImNsci1hbGVydHMtcGFnZXIiLDEpLDImZCYmVHQoImNsckN1cnJlbnRBbGVydEluZGV4IixKdCgpLmN1cnJlbnRBbGVydEluZGV4KX1jb25zdCBTTD1bW1siY2xyLWFsZXJ0Il1dXSxGJD1bImNsci1hbGVydCJdO2Z1bmN0aW9uIFZqKGQsZyl7MSZkJiZOaSgwKX1j''@;'; + put 'put ''b25zdCByUz1bInRhYkNvbnRlbnRQcm9qZWN0ZWRSZWYiXTtmdW5jdGlvbiB4TChkLGcpe2lmKDEmZCYmKHJ0KDAsInNlY3Rpb24iLDEpLE5pKDEpLGx0KCkpLDImZCl7Y29uc3QgaD1KdCgpO0ZpKCJhY3RpdmUiLGguYWN0aXZlKSxUdCgiaWQiLGgudGFiQ29udGVudElkKSgiaGlkZGVuIiwh''@;'; + put 'put ''aC5hY3RpdmUpLEdpKCJhcmlhLWxhYmVsbGVkYnkiLGguYXJpYUxhYmVsbGVkQnkpKCJhcmlhLWhpZGRlbiIsIWguYWN0aXZlKX19Y29uc3Qgamo9WyJ0YWJDb250ZW50Vmlld0NvbnRhaW5lciJdO2Z1bmN0aW9uIGJnKGQsZyl7aWYoMSZkJiYoRjAoMCkscnQoMSwibGkiLDQpLGYxKDIsNSks''@;'; + put 'put ''bHQoKSxIMCgpKSwyJmQpe2NvbnN0IGg9SnQoKS4kaW1wbGljaXQ7dXQoMiksVHQoIm5nVGVtcGxhdGVPdXRsZXQiLGgudGVtcGxhdGVSZWZDb250YWluZXIudGVtcGxhdGUpfX1mdW5jdGlvbiBaaihkLGcpe2lmKDEmZCYmKEYwKDApLHJuKDEsYmcsMywxLCJuZy1jb250YWluZXIiLDIpLEgw''@;'; + put 'put ''KCkpLDImZCl7Y29uc3QgaD1nLiRpbXBsaWNpdCx2PUp0KCk7dXQoMSksVHQoIm5nSWYiLGgudGFic0lkPT09di50YWJzSWQmJiFoLmluT3ZlcmZsb3cpfX1mdW5jdGlvbiBUTChkLGcpezEmZCYmZjEoMCw1KSwyJmQmJlR0KCJuZ1RlbXBsYXRlT3V0bGV0IixKdCgpLiRpbXBsaWNpdC50ZW1w''@;'; + put 'put ''bGF0ZVJlZkNvbnRhaW5lci50ZW1wbGF0ZSl9ZnVuY3Rpb24gSCQoZCxnKXtpZigxJmQmJihGMCgwKSxybigxLFRMLDEsMSwibmctY29udGFpbmVyIiwxMyksSDAoKSksMiZkKXtjb25zdCBoPWcuJGltcGxpY2l0LHY9SnQoMyk7dXQoMSksVHQoIm5nSWYiLGgudGFic0lkPT09di50YWJzSWQm''@;'; + put 'put ''JmguaW5PdmVyZmxvdyl9fWZ1bmN0aW9uIE4kKGQsZyl7aWYoMSZkKXtjb25zdCBoPWJpKCk7cnQoMCwiY2xyLXRhYi1vdmVyZmxvdy1jb250ZW50IiwxMiksR24oImtleWRvd24uZXNjIixmdW5jdGlvbigpe3JldHVybiBpdChoKSxhKEp0KDIpLmNsb3NlT25Fc2NhcGVLZXkoKSl9LDAsSGwp''@;'; + put 'put ''KCJjbGljayIsZnVuY3Rpb24oeSl7aXQoaCksSnQoKTtjb25zdCBDPXlhKDQpO3JldHVybiBhKEp0KCkuY2xvc2VPbk91dHNpZGVDbGljayh5LEMpKX0sITEsSGwpKCJmb2N1c291dCIsZnVuY3Rpb24oeSl7cmV0dXJuIGl0KGgpLGEoSnQoMikuY2xvc2VPbkZvY3VzT3V0KHkpKX0pLHJuKDEs''@;'; + put 'put ''SCQsMiwxLCJuZy1jb250YWluZXIiLDEpLGx0KCl9aWYoMiZkKXtjb25zdCBoPUp0KDIpO3V0KDEpLFR0KCJuZ0Zvck9mIixoLnRhYkxpbmtEaXJlY3RpdmVzKX19ZnVuY3Rpb24gcWNlKGQsZyl7aWYoMSZkKXtjb25zdCBoPWJpKCk7RjAoMCkscnQoMSwiZGl2Iiw2KSgyLCJsaSIsNykoMywi''@;'; + put 'put ''YnV0dG9uIiw4LDkpLEduKCJtb3VzZWRvd24iLGZ1bmN0aW9uKCl7cmV0dXJuIGl0KGgpLGEoSnQoKS5fbW91c2Vkb3duPSEwKX0pKCJmb2N1cyIsZnVuY3Rpb24oKXtyZXR1cm4gaXQoaCksYShKdCgpLm9wZW5PdmVyZmxvd09uRm9jdXMoKSl9KSgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJu''@;'; + put 'put ''IGl0KGgpLGEoSnQoKS50b2dnbGVPdmVyZmxvd09uQ2xpY2soKSl9KSxDcig1LCJjZHMtaWNvbiIsMTApLGx0KCkoKSxybig2LE4kLDIsMSwiY2xyLXRhYi1vdmVyZmxvdy1jb250ZW50IiwxMSksbHQoKSxIMCgpfWlmKDImZCl7Y29uc3QgaD1KdCgpO3V0KDEpLEZpKCJvcGVuIixoLnRvZ2ds''@;'; + put 'put ''ZVNlcnZpY2Uub3BlbiksdXQoMiksRmkoImFjdGl2ZSIsaC5hY3RpdmVUYWJJbk92ZXJmbG93KSgib3BlbiIsaC50b2dnbGVTZXJ2aWNlLm9wZW4pLEdpKCJ0YWJpbmRleCIsaC5hY3RpdmVUYWJJbk92ZXJmbG93JiYhaC50b2dnbGVTZXJ2aWNlLm9wZW4/MDotMSkoInRpdGxlIixoLmNvbW1v''@;'; + put 'put ''blN0cmluZ3Mua2V5cy5tb3JlKSx1dCgyKSxHaSgidGl0bGUiLGguY29tbW9uU3RyaW5ncy5rZXlzLm1vcmUpLHV0KDEpLFR0KCJuZ0lmIixoLnRvZ2dsZVNlcnZpY2Uub3Blbil9fWZ1bmN0aW9uIGVmZShkLGcpe2lmKDEmZCl7Y29uc3QgaD1iaSgpO3J0KDAsImJ1dHRvbiIsMyksR24oImNs''@;'; + put 'put ''aWNrIixmdW5jdGlvbigpe3JldHVybiBpdChoKSxhKEp0KCkudG9nZ2xlQnlCdXR0b24oKSl9KSxDcigxLCJjZHMtaWNvbiIsNCksbHQoKX1pZigyJmQpe2NvbnN0IGg9SnQoKTtGaSgib24tY29sbGFwc2UiLGguY29sbGFwc2VkKSxHaSgiYXJpYS1leHBhbmRlZCIsaC5hcmlhRXhwYW5kZWQp''@;'; + put 'put ''KCJhcmlhLWxhYmVsIixoLmNvbW1vblN0cmluZ3Mua2V5cy52ZXJ0aWNhbE5hdlRvZ2dsZSksdXQoMSksR2koImRpcmVjdGlvbiIsaC5jb2xsYXBzZWQ/InJpZ2h0IjoibGVmdCIpKCJ0aXRsZSIsaC5jb2xsYXBzZWQ/aC5jb21tb25TdHJpbmdzLmtleXMuZXhwYW5kOmguY29tbW9uU3RyaW5n''@;'; + put 'put ''cy5rZXlzLmNvbGxhcHNlKX19ZnVuY3Rpb24gViQoZCxnKXtpZigxJmQpe2NvbnN0IGg9YmkoKTtydCgwLCJidXR0b24iLDUpLEduKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gaXQoaCksYShKdCgpLmNvbGxhcHNlZD0hMSl9KSxsdCgpfTImZCYmR2koImFyaWEtbGFiZWwiLEp0KCkuY29t''@;'; + put 'put ''bW9uU3RyaW5ncy5rZXlzLnZlcnRpY2FsTmF2VG9nZ2xlKX1jb25zdCByZmU9WyJjbHJWZXJ0aWNhbE5hdkxpbmsiLCIiXSxpZmU9W1tbIiIsImNsclZlcnRpY2FsTmF2SWNvbiIsIiJdXSwiKiJdLG9mZT1bIltjbHJWZXJ0aWNhbE5hdkljb25dIiwiKiJdO2Z1bmN0aW9uIHpqKGQsZyl7aWYo''@;'; + put 'put ''MSZkKXtjb25zdCBoPWJpKCk7cnQoMCwiYnV0dG9uIiwxMSksR24oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBpdChoKSxhKEp0KDIpLmNsb3NlKCkpfSksQ3IoMSwiY2RzLWljb24iLDEyKSxsdCgpfTImZCYmR2koImFyaWEtbGFiZWwiLEp0KDIpLmNvbW1vblN0cmluZ3Mua2V5cy5jbG9z''@;'; + put 'put ''ZSl9ZnVuY3Rpb24gYWZlKGQsZyl7aWYoMSZkKXtjb25zdCBoPWJpKCk7cnQoMCwiZGl2IiwxKSgxLCJkaXYiLDIpLEduKCJAZmFkZURvd24uZG9uZSIsZnVuY3Rpb24oeSl7cmV0dXJuIGl0KGgpLGEoSnQoKS5mYWRlRG9uZSh5KSl9KSxydCgyLCJkaXYiLDMpLFl0KDMpLGx0KCkscnQoNCwi''@;'; + put 'put ''ZGl2Iiw0KSxOaSg1KSxydCg2LCJkaXYiLDUpKDcsImRpdiIsNikoOCwiZGl2Iiw3KSxOaSg5LDEpLGx0KCkscm4oMTAsemosMiwxLCJidXR0b24iLDgpLGx0KCkscnQoMTEsImRpdiIsOSksTmkoMTIsMiksbHQoKSxOaSgxMywzKSxsdCgpKCkscnQoMTQsImRpdiIsMyksWXQoMTUpLGx0KCko''@;'; + put 'put ''KSxydCgxNiwiZGl2IiwxMCksR24oImNsaWNrIixmdW5jdGlvbigpe2l0KGgpO2NvbnN0IHk9SnQoKTtyZXR1cm4gYSh5LnN0YXRpY0JhY2tkcm9wfHx5LmNsb3NlKCkpfSksbHQoKSgpfWlmKDImZCl7Y29uc3QgaD1KdCgpO3V0KDEpLEZpKCJtb2RhbC1zbSIsInNtIj09aC5zaXplKSgibW9k''@;'; + put 'put ''YWwtbGciLCJsZyI9PWguc2l6ZSkoIm1vZGFsLXhsIiwieGwiPT1oLnNpemUpLFR0KCJAZmFkZURvd24iLGguc2tpcEFuaW1hdGlvbiksR2koImFyaWEtaGlkZGVuIiwhaC5fb3BlbikoImFyaWEtbGFiZWxsZWRieSIsaC5sYWJlbGxlZEJ5KSx1dCgyKSxqaShoLmNvbW1vblN0cmluZ3Mua2V5''@;'; + put 'put ''cy5tb2RhbENvbnRlbnRTdGFydCksdXQoNSksSTYoImlkIixoLm1vZGFsSWQpLHV0KDIpLFR0KCJuZ0lmIixoLmNsb3NhYmxlKSx1dCg1KSxqaShoLmNvbW1vblN0cmluZ3Mua2V5cy5tb2RhbENvbnRlbnRFbmQpLHV0KDEpLFR0KCJAZmFkZSIsdm9pZCAwKX19Y29uc3QgbGZlPVtbWyIiLDgs''@;'; + put 'put ''Im1vZGFsLW5hdiJdXSxbWyIiLDgsIm1vZGFsLXRpdGxlIl1dLFtbIiIsOCwibW9kYWwtYm9keSJdXSxbWyIiLDgsIm1vZGFsLWZvb3RlciJdXV0sc2ZlPVsiLm1vZGFsLW5hdiIsIi5tb2RhbC10aXRsZSIsIi5tb2RhbC1ib2R5IiwiLm1vZGFsLWZvb3RlciJdO2xldCB3bD0oKCk9PntjbGFz''@;'; + put 'put ''cyBke31yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVkaXI9V2koe3R5cGU6ZCxzZWxlY3RvcnM6W1siY2xyLWljb24iXV19KSxkfSkoKSxabz0oKCk9PntjbGFzcyBke31yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJu''@;'; + put 'put ''IG5ldyhofHxkKX0sZC5cdTAyNzVkaXI9V2koe3R5cGU6ZCxzZWxlY3RvcnM6W1siY2RzLWljb24iXV19KSxkfSkoKSxJcz0oKCk9PntjbGFzcyBke31yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVtb2Q9Y28oe3R5cGU6ZH0pLGQuXHUw''@;'; + put 'put ''Mjc1aW5qPWIwKHtpbXBvcnRzOltbYmFdXX0pLGR9KSgpO2NsYXNzIFBme312YXIgZ2k9KCgpPT4oZnVuY3Rpb24oZCl7ZFtkLkRFRkFVTFQ9MF09IkRFRkFVTFQiLGRbZC5MT0FESU5HPTFdPSJMT0FESU5HIixkW2QuU1VDQ0VTUz0yXT0iU1VDQ0VTUyIsZFtkLkVSUk9SPTNdPSJFUlJPUiJ9''@;'; + put 'put ''KGdpfHwoZ2k9e30pKSxnaSkpKCk7bGV0IGdvPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCl7dGhpcy5saXN0ZW5lcj1oLHRoaXMuX2xvYWRpbmdTdGF0ZT1naS5ERUZBVUxUfWdldCBsb2FkaW5nU3RhdGUoKXtyZXR1cm4gdGhpcy5fbG9hZGluZ1N0YXRlfXNldCBsb2FkaW5nU3RhdGUo''@;'; + put 'put ''aCl7ITA9PT1oP2g9Z2kuTE9BRElORzpofHwoaD1naS5ERUZBVUxUKSxoIT09dGhpcy5fbG9hZGluZ1N0YXRlJiYodGhpcy5fbG9hZGluZ1N0YXRlPWgsdGhpcy5saXN0ZW5lciYmdGhpcy5saXN0ZW5lci5sb2FkaW5nU3RhdGVDaGFuZ2UoaCkpfW5nT25EZXN0cm95KCl7dGhpcy5sb2FkaW5n''@;'; + put 'put ''U3RhdGU9Z2kuREVGQVVMVH19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoS3QoUGYsOCkpfSxkLlx1MDI3NWRpcj1XaSh7dHlwZTpkLHNlbGVjdG9yczpbWyIiLCJjbHJMb2FkaW5nIiwiIl1dLGlucHV0czp7bG9hZGluZ1N0YXRlOlsiY2xyTG9hZGlu''@;'; + put 'put ''ZyIsImxvYWRpbmdTdGF0ZSJdfX0pLGR9KSgpLHIxPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoKXt0aGlzLmV4cGFuZGFibGU9MCx0aGlzLl9sb2FkaW5nPSExLHRoaXMuX2V4cGFuZGVkPSExLHRoaXMuX2V4cGFuZENoYW5nZT1uZXcgJGV9Z2V0IGxvYWRpbmcoKXtyZXR1cm4gdGhpcy5f''@;'; + put 'put ''bG9hZGluZ31zZXQgbG9hZGluZyhoKXsoaD0hIWgpIT09dGhpcy5fbG9hZGluZyYmKHRoaXMuX2xvYWRpbmc9aCl9Z2V0IGV4cGFuZGVkKCl7cmV0dXJuIHRoaXMuX2V4cGFuZGVkfXNldCBleHBhbmRlZChoKXsoaD0hIWgpIT09dGhpcy5fZXhwYW5kZWQmJih0aGlzLl9leHBhbmRlZD1oLHRo''@;'; + put 'put ''aXMuX2V4cGFuZENoYW5nZS5uZXh0KGgpKX10b2dnbGUoKXt0aGlzLmV4cGFuZGVkPSF0aGlzLl9leHBhbmRlZH1nZXQgZXhwYW5kQ2hhbmdlKCl7cmV0dXJuIHRoaXMuX2V4cGFuZENoYW5nZS5hc09ic2VydmFibGUoKX1sb2FkaW5nU3RhdGVDaGFuZ2UoaCl7dGhpcy5sb2FkaW5nPWg9PT1n''@;'; + put 'put ''aS5MT0FESU5HfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVwcm92PUFpKHt0b2tlbjpkLGZhY3Rvcnk6ZC5cdTAyNzVmYWN9KSxkfSkoKSx1Mj0wO2NvbnN0IHkyPW5ldyB6ZSgiVU5JUVVFX0lEIiksT2M9e3Byb3ZpZGU6eTIsdXNl''@;'; + put 'put ''RmFjdG9yeTpmdW5jdGlvbiB2ZmUoKXtyZXR1cm4iY2xyLWlkLSIrdTIrK319O2xldCBKJD0oKCk9PntjbGFzcyBke31yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVjbXA9VGkoe3R5cGU6ZCxzZWxlY3RvcnM6W1siY2xyLWFjY29yZGlv''@;'; + put 'put ''bi1kZXNjcmlwdGlvbiJdLFsiY2xyLXN0ZXAtZGVzY3JpcHRpb24iXV0saG9zdFZhcnM6Mixob3N0QmluZGluZ3M6ZnVuY3Rpb24oaCx2KXsyJmgmJkZpKCJjbHItYWNjb3JkaW9uLWRlc2NyaXB0aW9uIiwhMCl9LG5nQ29udGVudFNlbGVjdG9yczpuYSxkZWNsczoxLHZhcnM6MCx0ZW1wbGF0''@;'; + put 'put ''ZTpmdW5jdGlvbihoLHYpezEmaCYmKEswKCksTmkoMCkpfSxlbmNhcHN1bGF0aW9uOjIsY2hhbmdlRGV0ZWN0aW9uOjB9KSxkfSkoKTt2YXIgczQ9KCgpPT4oZnVuY3Rpb24oZCl7ZC5JbmFjdGl2ZT0iaW5hY3RpdmUiLGQuRXJyb3I9ImVycm9yIixkLkNvbXBsZXRlPSJjb21wbGV0ZSJ9KHM0''@;'; + put 'put ''fHwoczQ9e30pKSxzNCkpKCk7Y29uc3QgdTQ9IjAuMnMgZWFzZS1pbi1vdXQiLEFmZT1bJGgoInNraXBJbml0aWFsUmVuZGVyIixbYnUoIjplbnRlciIsW10pXSksJGgoInRvZ2dsZSIsW2J1KCJ2b2lkID0+ICoiLFt5bCh7ZGlzcGxheToiYmxvY2siLGhlaWdodDowfSksRGModTQseWwoe2hl''@;'; + put 'put ''aWdodDoiKiJ9KSldKV0pXSxZaj0oJGgoInNraXBJbml0aWFsUmVuZGVyIixbYnUoIjplbnRlciIsW10pXSksJGgoInRvZ2dsZSIsW2J1KCJ2b2lkID0+ICoiLFt5bCh7ZGlzcGxheToiYmxvY2siLGhlaWdodDowfSksRGModTQseWwoe2hlaWdodDoiKiJ9KSldKSxidSgiKiA9PiB2b2lkIixb''@;'; + put 'put ''eWwoe2Rpc3BsYXk6ImJsb2NrIn0pLERjKHU0LHlsKHtoZWlnaHQ6MCxkaXNwbGF5OiJub25lIn0pKV0pXSkse29wZW46Ik9wZW4iLGNsb3NlOiJDbG9zZSIsc2hvdzoiU2hvdyIsaGlkZToiSGlkZSIsZXhwYW5kOiJFeHBhbmQiLGNvbGxhcHNlOiJDb2xsYXBzZSIsbW9yZToiTW9yZSIsc2Vs''@;'; + put 'put ''ZWN0OiJTZWxlY3QiLHNlbGVjdEFsbDoiU2VsZWN0IEFsbCIscHJldmlvdXM6IlByZXZpb3VzIixuZXh0OiJOZXh0IixjdXJyZW50OiJKdW1wIHRvIGN1cnJlbnQiLGluZm86IkluZm8iLHN1Y2Nlc3M6IlN1Y2Nlc3MiLHdhcm5pbmc6Ildhcm5pbmciLGRhbmdlcjoiRXJyb3IiLHJvd0FjdGlv''@;'; + put 'put ''bnM6IkF2YWlsYWJsZSBhY3Rpb25zIixwaWNrQ29sdW1uczoiU2hvdyBvciBoaWRlIGNvbHVtbnMiLHNob3dDb2x1bW5zOiJTaG93IENvbHVtbnMiLHNvcnRDb2x1bW46IlNvcnQgQ29sdW1uIixmaXJzdFBhZ2U6IkZpcnN0IFBhZ2UiLGxhc3RQYWdlOiJMYXN0IFBhZ2UiLG5leHRQYWdlOiJO''@;'; + put 'put ''ZXh0IFBhZ2UiLHByZXZpb3VzUGFnZToiUHJldmlvdXMgUGFnZSIsY3VycmVudFBhZ2U6IkN1cnJlbnQgUGFnZSIsdG90YWxQYWdlczoiVG90YWwgUGFnZXMiLGZpbHRlckl0ZW1zOiJGaWx0ZXIgaXRlbXMiLG1pblZhbHVlOiJNaW4gdmFsdWUiLG1heFZhbHVlOiJNYXggdmFsdWUiLG1vZGFs''@;'; + put 'put ''Q29udGVudFN0YXJ0OiJCZWdpbm5pbmcgb2YgTW9kYWwgQ29udGVudCIsbW9kYWxDb250ZW50RW5kOiJFbmQgb2YgTW9kYWwgQ29udGVudCIsc2hvd0NvbHVtbnNNZW51RGVzY3JpcHRpb246IlNob3cgb3IgaGlkZSBjb2x1bW5zIG1lbnUiLGFsbENvbHVtbnNTZWxlY3RlZDoiQWxsIGNvbHVt''@;'; + put 'put ''bnMgc2VsZWN0ZWQiLHNpZ25wb3N0VG9nZ2xlOiJTaWducG9zdCBUb2dnbGUiLHNpZ25wb3N0Q2xvc2U6IlNpZ25wb3N0IENsb3NlIixsb2FkaW5nOiJMb2FkaW5nIixkZXRhaWxQYW5lU3RhcnQ6IlN0YXJ0IG9mIHJvdyBkZXRhaWxzIixkZXRhaWxQYW5lRW5kOiJFbmQgb2Ygcm93IGRldGFp''@;'; + put 'put ''bHMiLHNpbmdsZVNlbGVjdGlvbkFyaWFMYWJlbDoiU2luZ2xlIHNlbGVjdGlvbiBoZWFkZXIiLHNpbmdsZUFjdGlvbmFibGVBcmlhTGFiZWw6IlNpbmdsZSBhY3Rpb25hYmxlIGhlYWRlciIsZGV0YWlsRXhwYW5kYWJsZUFyaWFMYWJlbDoiVG9nZ2xlIG1vcmUgcm93IGNvbnRlbnQiLGRhdGFn''@;'; + put 'put ''cmlkRmlsdGVyQXJpYUxhYmVsOiJGaWx0ZXIgZGlhbG9nIixkYXRhZ3JpZEZpbHRlckRpYWxvZ0FyaWFMYWJlbDoiVG9nZ2xlIGNvbHVtbiBmaWx0ZXIiLGNvbHVtblNlcGFyYXRvckFyaWFMYWJlbDoiQ29sdW1uIHJlc2l6ZSBoYW5kbGUiLGNvbHVtblNlcGFyYXRvckRlc2NyaXB0aW9uOiJV''@;'; + put 'put ''c2UgbGVmdCBvciByaWdodCBrZXkgdG8gcmVzaXplIHRoZSBjb2x1bW4iLGFsZXJ0Q2xvc2VCdXR0b25BcmlhTGFiZWw6IkNsb3NlIGFsZXJ0IixkYXRlcGlja2VyRGlhbG9nTGFiZWw6IkNob29zZSBkYXRlIixkYXRlcGlja2VyVG9nZ2xlOiJUb2dnbGUgZGF0ZXBpY2tlciIsZGF0ZXBpY2tl''@;'; + put 'put ''clRvZ2dsZUNob29zZURhdGVMYWJlbDoiQ2hvb3NlIGRhdGUiLGRhdGVwaWNrZXJUb2dnbGVDaGFuZ2VEYXRlTGFiZWw6IkNoYW5nZSBkYXRlLCB7U0VMRUNURURfREFURX0iLGRhdGVwaWNrZXJQcmV2aW91c01vbnRoOiJQcmV2aW91cyBtb250aCIsZGF0ZXBpY2tlckN1cnJlbnRNb250aDoi''@;'; + put 'put ''Q3VycmVudCBtb250aCIsZGF0ZXBpY2tlck5leHRNb250aDoiTmV4dCBtb250aCIsZGF0ZXBpY2tlclByZXZpb3VzRGVjYWRlOiJQcmV2aW91cyBkZWNhZGUiLGRhdGVwaWNrZXJOZXh0RGVjYWRlOiJOZXh0IGRlY2FkZSIsZGF0ZXBpY2tlckN1cnJlbnREZWNhZGU6IkN1cnJlbnQgZGVjYWRl''@;'; + put 'put ''IixkYXRlcGlja2VyU2VsZWN0TW9udGhUZXh0OiJTZWxlY3QgbW9udGgsIHRoZSBjdXJyZW50IG1vbnRoIGlzIHtDQUxFTkRBUl9NT05USH0iLGRhdGVwaWNrZXJTZWxlY3RZZWFyVGV4dDoiU2VsZWN0IHllYXIsIHRoZSBjdXJyZW50IHllYXIgaXMge0NBTEVOREFSX1lFQVJ9IixkYXRlcGlj''@;'; + put 'put ''a2VyU2VsZWN0ZWRMYWJlbDoie0ZVTExfREFURX0gLSBTZWxlY3RlZCIsc3RhY2tWaWV3Q2hhbmdlZDoiVmFsdWUgY2hhbmdlZC4iLHJlc3BvbnNpdmVOYXZUb2dnbGVPcGVuOiJOYXZpZ2F0aW9uIG1lbnUiLHJlc3BvbnNpdmVOYXZUb2dnbGVDbG9zZToiTmF2aWdhdGlvbiBtZW51IixyZXNw''@;'; + put 'put ''b25zaXZlTmF2T3ZlcmZsb3dPcGVuOiJOYXZpZ2F0aW9uIG92ZXJmbG93IG1lbnUiLHJlc3BvbnNpdmVOYXZPdmVyZmxvd0Nsb3NlOiJOYXZpZ2F0aW9uIG92ZXJmbG93IG1lbnUiLHZlcnRpY2FsTmF2R3JvdXBUb2dnbGU6IlRvZ2dsZSB2ZXJ0aWNhbCBuYXZpZ2F0aW9uIGdyb3VwIix2ZXJ0''@;'; + put 'put ''aWNhbE5hdlRvZ2dsZToiVG9nZ2xlIHZlcnRpY2FsIG5hdmlnYXRpb24iLHRpbWVsaW5lU3RlcE5vdFN0YXJ0ZWQ6Ik5vdCBzdGFydGVkIix0aW1lbGluZVN0ZXBDdXJyZW50OiJDdXJyZW50Iix0aW1lbGluZVN0ZXBTdWNjZXNzOiJDb21wbGV0ZWQiLHRpbWVsaW5lU3RlcEVycm9yOiJFcnJv''@;'; + put 'put ''ciIsdGltZWxpbmVTdGVwUHJvY2Vzc2luZzoiSW4gcHJvZ3Jlc3MiLGNvbWJvYm94RGVsZXRlOiJEZWxldGUgc2VsZWN0ZWQgb3B0aW9uIixjb21ib2JveFNlYXJjaGluZzonU2VhcmNoaW5nIGZvciBtYXRjaGVzIGZvciAie0lOUFVUfSInLGNvbWJvYm94U2VsZWN0aW9uOiJTZWxlY3Rpb24i''@;'; + put 'put ''LGNvbWJvYm94U2VsZWN0ZWQ6IlNlbGVjdGVkIixjb21ib2JveE5vUmVzdWx0czoiTm8gcmVzdWx0cyIsY29tYm9ib3hPcGVuOiJTaG93IG9wdGlvbnMiLGRhdGFncmlkRXhwYW5kYWJsZUJlZ2lubmluZ09mOiJCZWdpbm5pbmcgb2YiLGRhdGFncmlkRXhwYW5kYWJsZUVuZE9mOiJFbmQgb2Yi''@;'; + put 'put ''LGRhdGFncmlkRXhwYW5kYWJsZVJvd0NvbnRlbnQ6IkV4cGFuZGFibGUgcm93IGNvbnRlbnQiLGRhdGFncmlkRXhwYW5kYWJsZVJvd3NIZWxwZXJUZXh0OiJTY3JlZW4gcmVhZGVyIHRhYmxlIGNvbW1hbmRzIG1heSBub3Qgd29yayBmb3Igdmlld2luZyBleHBhbmRlZCBjb250ZW50LCBwbGVh''@;'; + put 'put ''c2UgdXNlIHlvdXIgc2NyZWVuIHJlYWRlcidzIGJyb3dzZSBtb2RlIHRvIHJlYWQgdGhlIGNvbnRlbnQgZXhwb3NlZCBieSB0aGlzIGJ1dHRvbiIsd2l6YXJkU3RlcFN1Y2Nlc3M6IkNvbXBsZXRlZCIsd2l6YXJkU3RlcEVycm9yOiJFcnJvciIscGFzc3dvcmRIaWRlOiJIaWRlIHBhc3N3b3Jk''@;'; + put 'put ''IixwYXNzd29yZFNob3c6IlNob3cgcGFzc3dvcmQiLHNlbGVjdGVkUm93czoiU2VsZWN0ZWQgcm93cyJ9KTtsZXQgbnM9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3Rvcigpe3RoaXMuX3N0cmluZ3M9WWp9bG9jYWxpemUoaCl7dGhpcy5fc3RyaW5ncz1PYmplY3QuYXNzaWduKE9iamVjdC5hc3Np''@;'; + put 'put ''Z24oe30sdGhpcy5fc3RyaW5ncyksaCl9Z2V0IGtleXMoKXtyZXR1cm4gdGhpcy5fc3RyaW5nc31wYXJzZShoLHY9e30pe2NvbnN0IHk9T2JqZWN0LmtleXModik7bGV0IEM9aDtyZXR1cm4geS5sZW5ndGgmJnkuZm9yRWFjaChJPT57Qz1DLnJlcGxhY2UoYHske0l9fWAsdltJXSl9KSxDfX1y''@;'; + put 'put ''ZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVwcm92PUFpKHt0b2tlbjpkLGZhY3Rvcnk6ZC5cdTAyNzVmYWMscHJvdmlkZWRJbjoicm9vdCJ9KSxkfSkoKTt2YXIgY3Y9KCgpPT4oZnVuY3Rpb24oZCl7ZC5EZWZhdWx0PSJkZWZhdWx0Iixk''@;'; + put 'put ''Lk11bHRpPSJtdWx0aSJ9KGN2fHwoY3Y9e30pKSxjdikpKCk7bGV0IHdmZT0wO2NsYXNzIGJmZXtjb25zdHJ1Y3RvcihnLGgpe3RoaXMuaWQ9Zyx0aGlzLmFjY29yZGlvbklkPWgsdGhpcy5zdGF0dXM9czQuSW5hY3RpdmUsdGhpcy5pbmRleD1udWxsLHRoaXMuZGlzYWJsZWQ9ITEsdGhpcy5v''@;'; + put 'put ''cGVuPSExLHRoaXMudGVtcGxhdGVJZD1gJHt0aGlzLmlkfS0ke3RoaXMuYWNjb3JkaW9uSWR9YH19Y2xhc3MgWCR7Y29uc3RydWN0b3IoKXt0aGlzLnN0cmF0ZWd5PWN2LkRlZmF1bHQsdGhpcy5hY2NvcmRpb25Db3VudD13ZmUrKyx0aGlzLl9wYW5lbHM9e319Z2V0IHBhbmVscygpe3JldHVy''@;'; + put 'put ''biBPYmplY3Qua2V5cyh0aGlzLl9wYW5lbHMpLm1hcChnPT50aGlzLl9wYW5lbHNbZ10pfXNldFN0cmF0ZWd5KGcpe3RoaXMuc3RyYXRlZ3k9Z311cGRhdGVQYW5lbE9yZGVyKGcpe2cuZm9yRWFjaCgoaCx2KT0+dGhpcy5fcGFuZWxzW2hdLmluZGV4PXYpLHRoaXMucmVtb3ZlT2xkUGFuZWxz''@;'; + put 'put ''KGcpfWFkZFBhbmVsKGcsaD0hMSl7dGhpcy5fcGFuZWxzW2ddPW5ldyBiZmUoZyx0aGlzLmFjY29yZGlvbkNvdW50KSx0aGlzLl9wYW5lbHNbZ10ub3Blbj1ofXRvZ2dsZVBhbmVsKGcsaCl7Y29uc3QgeT12b2lkIDAhPT1oP2g6IXRoaXMuX3BhbmVsc1tnXS5vcGVuO3kmJnRoaXMuc3RyYXRl''@;'; + put 'put ''Z3k9PT1jdi5EZWZhdWx0JiZ0aGlzLmNsb3NlQWxsUGFuZWxzKCksdGhpcy5fcGFuZWxzW2ddLm9wZW49eX1kaXNhYmxlUGFuZWwoZyxoKXt0aGlzLl9wYW5lbHNbZ10uZGlzYWJsZWQ9aH1jbG9zZUFsbFBhbmVscygpe3RoaXMucGFuZWxzLmZvckVhY2goZz0+dGhpcy5fcGFuZWxzW2cuaWRd''@;'; + put 'put ''Lm9wZW49ITEpfXJlbW92ZU9sZFBhbmVscyhnKXt0aGlzLnBhbmVscy5maWx0ZXIoaD0+dm9pZCAwPT09Zy5maW5kKHY9PnY9PT1oLmlkKSkuZm9yRWFjaChoPT5kZWxldGUgdGhpcy5fcGFuZWxzW2guaWRdKX19bGV0IG9TPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoKXt0aGlzLmFjY29y''@;'; + put 'put ''ZGlvbj1uZXcgWCQsdGhpcy5fcGFuZWxzQ2hhbmdlcz1uZXcgY3ModGhpcy5hY2NvcmRpb24ucGFuZWxzKX1nZXRQYW5lbENoYW5nZXMoaCl7cmV0dXJuIHRoaXMuX3BhbmVsc0NoYW5nZXMucGlwZShtdCh2PT52LmZpbmQoeT0+eS5pZD09PWgpKSl9c2V0U3RyYXRlZ3koaCl7dGhpcy5hY2Nv''@;'; + put 'put ''cmRpb24uc2V0U3RyYXRlZ3koaCl9YWRkUGFuZWwoaCx2PSExKXt0aGlzLmFjY29yZGlvbi5hZGRQYW5lbChoLHYpLHRoaXMuZW1pdFVwZGF0ZWRQYW5lbHMoKX10b2dnbGVQYW5lbChoLHYpe3RoaXMuYWNjb3JkaW9uLnRvZ2dsZVBhbmVsKGgsdiksdGhpcy5lbWl0VXBkYXRlZFBhbmVscygp''@;'; + put 'put ''fWRpc2FibGVQYW5lbChoLHYpe3RoaXMuYWNjb3JkaW9uLmRpc2FibGVQYW5lbChoLHYpLHRoaXMuZW1pdFVwZGF0ZWRQYW5lbHMoKX11cGRhdGVQYW5lbE9yZGVyKGgpe3RoaXMuYWNjb3JkaW9uLnVwZGF0ZVBhbmVsT3JkZXIoaCksdGhpcy5lbWl0VXBkYXRlZFBhbmVscygpfWVtaXRVcGRh''@;'; + put 'put ''dGVkUGFuZWxzKCl7dGhpcy5fcGFuZWxzQ2hhbmdlcy5uZXh0KHRoaXMuYWNjb3JkaW9uLnBhbmVscyl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1MDI3NXByb3Y9QWkoe3Rva2VuOmQsZmFjdG9yeTpkLlx1MDI3NWZhY30pLGR9KSgpLERM''@;'; + put 'put ''PSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2LHksQyl7dGhpcy5jb21tb25TdHJpbmdzPWgsdGhpcy5hY2NvcmRpb25TZXJ2aWNlPXYsdGhpcy5pZkV4cGFuZFNlcnZpY2U9eSx0aGlzLl9pZD1DLHRoaXMuZGlzYWJsZWQ9ITEsdGhpcy5wYW5lbE9wZW49ITEsdGhpcy5wYW5lbE9wZW5D''@;'; + put 'put ''aGFuZ2U9bmV3IGFyLHRoaXMuQWNjb3JkaW9uU3RhdHVzPXM0LHRoaXMuaXNBY2NvcmRpb249ITB9Z2V0IGlkKCl7cmV0dXJuIHRoaXMuX2lkfXNldCBpZChoKXt0aGlzLl9pZD1ofW5nT25Jbml0KCl7dGhpcy5wYW5lbD10aGlzLmFjY29yZGlvblNlcnZpY2UuZ2V0UGFuZWxDaGFuZ2VzKHRo''@;'; + put 'put ''aXMuaWQpLnBpcGUoQWEoaD0+dGhpcy5lbWl0UGFuZWxDaGFuZ2UoaCkpKSx0aGlzLmFjY29yZGlvblNlcnZpY2UuYWRkUGFuZWwodGhpcy5pZCx0aGlzLnBhbmVsT3BlbiksdGhpcy5hY2NvcmRpb25TZXJ2aWNlLnRvZ2dsZVBhbmVsKHRoaXMuaWQsdGhpcy5wYW5lbE9wZW4pLHRoaXMuYWNj''@;'; + put 'put ''b3JkaW9uU2VydmljZS5kaXNhYmxlUGFuZWwodGhpcy5pZCx0aGlzLmRpc2FibGVkKX1uZ09uQ2hhbmdlcyhoKXt0aGlzLnBhbmVsJiZoLnBhbmVsT3BlbiYmaC5wYW5lbE9wZW4uY3VycmVudFZhbHVlIT09aC5wYW5lbE9wZW4ucHJldmlvdXNWYWx1ZSYmdGhpcy5hY2NvcmRpb25TZXJ2aWNl''@;'; + put 'put ''LnRvZ2dsZVBhbmVsKHRoaXMuaWQsaC5wYW5lbE9wZW4uY3VycmVudFZhbHVlKSx0aGlzLnBhbmVsJiZoLmRpc2FibGVkJiZoLmRpc2FibGVkLmN1cnJlbnRWYWx1ZSE9PWguZGlzYWJsZWQucHJldmlvdXNWYWx1ZSYmdGhpcy5hY2NvcmRpb25TZXJ2aWNlLmRpc2FibGVQYW5lbCh0aGlzLmlk''@;'; + put 'put ''LGguZGlzYWJsZWQuY3VycmVudFZhbHVlKX10b2dnbGVQYW5lbCgpe3RoaXMuYWNjb3JkaW9uU2VydmljZS50b2dnbGVQYW5lbCh0aGlzLmlkKX1jb2xsYXBzZVBhbmVsT25BbmltYXRpb25Eb25lKGgpe2gub3Blbnx8KHRoaXMuaWZFeHBhbmRTZXJ2aWNlLmV4cGFuZGVkPSExKX1nZXRQYW5l''@;'; + put 'put ''bFN0YXRlQ2xhc3NlcyhoKXtyZXR1cm5gY2xyLWFjY29yZGlvbi1wYW5lbC0ke2guc3RhdHVzfSAke2gub3Blbj8iY2xyLWFjY29yZGlvbi1wYW5lbC1vcGVuIjoiIn1gfWdldEFjY29yZGlvbkNvbnRlbnRJZChoKXtyZXR1cm5gY2xyLWFjY29yZGlvbi1jb250ZW50LSR7aH0nYH1nZXRBY2Nv''@;'; + put 'put ''cmRpb25IZWFkZXJJZChoKXtyZXR1cm5gY2xyLWFjY29yZGlvbi1oZWFkZXItJHtofWB9ZW1pdFBhbmVsQ2hhbmdlKGgpe2gub3BlbiE9PXRoaXMucGFuZWxPcGVuJiYodGhpcy5wYW5lbE9wZW5DaGFuZ2UuZW1pdChoLm9wZW4pLHRoaXMucGFuZWxPcGVuPWgub3BlbiksaC5vcGVuJiYodGhp''@;'; + put 'put ''cy5pZkV4cGFuZFNlcnZpY2UuZXhwYW5kZWQ9ITApfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShLdChucyksS3Qob1MpLEt0KHIxKSxLdCh5MikpfSxkLlx1MDI3NWNtcD1UaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJjbHItYWNjb3JkaW9uLXBhbmVs''@;'; + put 'put ''Il1dLGNvbnRlbnRRdWVyaWVzOmZ1bmN0aW9uKGgsdix5KXtpZigxJmgmJnhvKHksSiQsNCksMiZoKXtsZXQgQztIaShDPSRpKCkpJiYodi5hY2NvcmRpb25EZXNjcmlwdGlvbj1DKX19LGhvc3RWYXJzOjIsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGgsdil7MiZoJiZGaSgiY2xyLWFjY29yZGlv''@;'; + put 'put ''bi1wYW5lbCIsITApfSxpbnB1dHM6e2Rpc2FibGVkOlsiY2xyQWNjb3JkaW9uUGFuZWxEaXNhYmxlZCIsImRpc2FibGVkIl0scGFuZWxPcGVuOlsiY2xyQWNjb3JkaW9uUGFuZWxPcGVuIiwicGFuZWxPcGVuIl19LG91dHB1dHM6e3BhbmVsT3BlbkNoYW5nZToiY2xyQWNjb3JkaW9uUGFuZWxP''@;'; + put 'put ''cGVuQ2hhbmdlIn0sZmVhdHVyZXM6W2hvKFtyMSxPY10pLEQyXSxuZ0NvbnRlbnRTZWxlY3RvcnM6cUssZGVjbHM6Mix2YXJzOjMsY29uc3RzOltbNCwibmdJZiJdLFsiYXJpYS1saXZlIiwiYXNzZXJ0aXZlIiwiY2xhc3MiLCJjbHItc3Itb25seSIsNCwibmdJZiJdLFszLCJuZ0NsYXNzIl0s''@;'; + put 'put ''WzEsImNsci1hY2NvcmRpb24taGVhZGVyIl0sWyJ0eXBlIiwiYnV0dG9uIiwxLCJjbHItYWNjb3JkaW9uLWhlYWRlci1idXR0b24iLDMsImlkIiwiZGlzYWJsZWQiLCJjbGljayJdLFsiaGVhZGVyQnV0dG9uIiwiIl0sWzEsImNsci1zci1vbmx5Il0sWzEsImNsci1hY2NvcmRpb24tc3RhdHVz''@;'; + put 'put ''Il0sWyJzaGFwZSIsImFuZ2xlIiwiZGlyZWN0aW9uIiwicmlnaHQiLDEsImNsci1hY2NvcmRpb24tYW5nbGUiXSxbMSwiY2xyLWFjY29yZGlvbi1udW1iZXIiXSxbInN0YXR1cyIsImRhbmdlciIsInNoYXBlIiwiZXhjbGFtYXRpb24tY2lyY2xlIiwxLCJjbHItYWNjb3JkaW9uLWVycm9yLWlj''@;'; + put 'put ''b24iXSxbInN0YXR1cyIsInN1Y2Nlc3MiLCJzaGFwZSIsImNoZWNrLWNpcmNsZSIsMSwiY2xyLWFjY29yZGlvbi1jb21wbGV0ZS1pY29uIl0sWyJyb2xlIiwicmVnaW9uIiwzLCJpZCJdLFsiY2xhc3MiLCJjbHItYWNjb3JkaW9uLWNvbnRlbnQiLDQsIm5nSWYiXSxbImFyaWEtbGl2ZSIsImFz''@;'; + put 'put ''c2VydGl2ZSIsMSwiY2xyLXNyLW9ubHkiXSxbMSwiY2xyLWFjY29yZGlvbi1jb250ZW50Il0sWzEsImNsci1hY2NvcmRpb24taW5uZXItY29udGVudCJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihoLHYpezEmaCYmKEswKCRLKSxybigwLHR1ZSwxOSwxOCwibmctY29udGFpbmVyIiwwKSxubigxLCJh''@;'; + put 'put ''c3luYyIpKSwyJmgmJlR0KCJuZ0lmIix6dCgxLDEsdi5wYW5lbCkpfSxkZXBlbmRlbmNpZXM6W05vLGxjLFpvLFdoXSxlbmNhcHN1bGF0aW9uOjIsZGF0YTp7YW5pbWF0aW9uOkFmZX0sY2hhbmdlRGV0ZWN0aW9uOjB9KSxkfSkoKSxLJD0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgpe3Ro''@;'; + put 'put ''aXMuYWNjb3JkaW9uU2VydmljZT1oLHRoaXMubXVsdGlQYW5lbD0hMSx0aGlzLnN1YnNjcmlwdGlvbnM9W119bmdPbkluaXQoKXt0aGlzLnNldEFjY29yZGlvblN0cmF0ZWd5KCl9bmdPbkNoYW5nZXMoaCl7aC5tdWx0aVBhbmVsLmN1cnJlbnRWYWx1ZSE9PWgubXVsdGlQYW5lbC5wcmV2aW91''@;'; + put 'put ''c1ZhbHVlJiZ0aGlzLnNldEFjY29yZGlvblN0cmF0ZWd5KCl9bmdBZnRlclZpZXdJbml0KCl7dGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy5saXN0ZW5Gb3JET01DaGFuZ2VzKCkpfW5nT25EZXN0cm95KCl7dGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goaD0+aC51bnN1YnNjcmliZSgp''@;'; + put 'put ''KX1zZXRBY2NvcmRpb25TdHJhdGVneSgpe3RoaXMuYWNjb3JkaW9uU2VydmljZS5zZXRTdHJhdGVneSh0aGlzLm11bHRpUGFuZWw/Y3YuTXVsdGk6Y3YuRGVmYXVsdCl9bGlzdGVuRm9yRE9NQ2hhbmdlcygpe3JldHVybiB0aGlzLnBhbmVscy5jaGFuZ2VzLnBpcGUoTjUodGhpcy5wYW5lbHMp''@;'; + put 'put ''KS5zdWJzY3JpYmUoaD0+dGhpcy5hY2NvcmRpb25TZXJ2aWNlLnVwZGF0ZVBhbmVsT3JkZXIoaC50b0FycmF5KCkubWFwKHY9PnYuaWQpKSl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKEt0KG9TKSl9LGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQsc2Vs''@;'; + put 'put ''ZWN0b3JzOltbImNsci1hY2NvcmRpb24iXV0sY29udGVudFF1ZXJpZXM6ZnVuY3Rpb24oaCx2LHkpe2lmKDEmaCYmeG8oeSxETCw1KSwyJmgpe2xldCBDO0hpKEM9JGkoKSkmJih2LnBhbmVscz1DKX19LGhvc3RWYXJzOjIsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGgsdil7MiZoJiZGaSgiY2xy''@;'; + put 'put ''LWFjY29yZGlvbiIsITApfSxpbnB1dHM6e211bHRpUGFuZWw6WyJjbHJBY2NvcmRpb25NdWx0aVBhbmVsIiwibXVsdGlQYW5lbCJdfSxmZWF0dXJlczpbaG8oW29TXSksRDJdLG5nQ29udGVudFNlbGVjdG9yczpuYSxkZWNsczoxLHZhcnM6MCx0ZW1wbGF0ZTpmdW5jdGlvbihoLHYpezEmaCYm''@;'; + put 'put ''KEswKCksTmkoMCkpfSxlbmNhcHN1bGF0aW9uOjIsY2hhbmdlRGV0ZWN0aW9uOjB9KSxkfSkoKSwkJD0oKCk9PntjbGFzcyBke31yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVjbXA9VGkoe3R5cGU6ZCxzZWxlY3RvcnM6W1siY2xyLWFj''@;'; + put 'put ''Y29yZGlvbi1jb250ZW50Il0sWyJjbHItc3RlcC1jb250ZW50Il1dLG5nQ29udGVudFNlbGVjdG9yczpuYSxkZWNsczoxLHZhcnM6MCx0ZW1wbGF0ZTpmdW5jdGlvbihoLHYpezEmaCYmKEswKCksTmkoMCkpfSxlbmNhcHN1bGF0aW9uOjIsY2hhbmdlRGV0ZWN0aW9uOjB9KSxkfSkoKSxxJD0o''@;'; + put 'put ''KCk9PntjbGFzcyBke31yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVjbXA9VGkoe3R5cGU6ZCxzZWxlY3RvcnM6W1siY2xyLWFjY29yZGlvbi10aXRsZSJdLFsiY2xyLXN0ZXAtdGl0bGUiXV0saG9zdFZhcnM6Mixob3N0QmluZGluZ3M6''@;'; + put 'put ''ZnVuY3Rpb24oaCx2KXsyJmgmJkZpKCJjbHItYWNjb3JkaW9uLXRpdGxlIiwhMCl9LG5nQ29udGVudFNlbGVjdG9yczpuYSxkZWNsczoxLHZhcnM6MCx0ZW1wbGF0ZTpmdW5jdGlvbihoLHYpezEmaCYmKEswKCksTmkoMCkpfSxlbmNhcHN1bGF0aW9uOjIsY2hhbmdlRGV0ZWN0aW9uOjB9KSxk''@;'; + put 'put ''fSkoKSxvdz0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKCl7dGhpcy5fY2hvY29sYXRlPW5ldyAkZSx0aGlzLmRpc2FibGVDaG9jb2xhdGVDaGVjaz0hMX1nZXQgY2hvY29sYXRlKCl7cmV0dXJuIHRoaXMuX2Nob2NvbGF0ZS5hc09ic2VydmFibGUoKX1uZ0FmdGVyVmlld0NoZWNrZWQoKXt0''@;'; + put 'put ''aGlzLmRpc2FibGVDaG9jb2xhdGVDaGVja3x8dGhpcy5fY2hvY29sYXRlLm5leHQoKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1ZGlyPVdpKHt0eXBlOmR9KSxkfSkoKSxhdz0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgsdil7''@;'; + put 'put ''dGhpcy5zdWJzY3JpcHRpb249di5jaG9jb2xhdGUuc3Vic2NyaWJlKCgpPT57dGhpcy5sYXRlc3RGbGF2b3IhPT10aGlzLmZsYXZvciYmKHYuZGlzYWJsZUNob2NvbGF0ZUNoZWNrPSEwLGguZGV0ZWN0Q2hhbmdlcygpLHYuZGlzYWJsZUNob2NvbGF0ZUNoZWNrPSExKX0pfW5nQWZ0ZXJDb250''@;'; + put 'put ''ZW50Q2hlY2tlZCgpe3RoaXMubGF0ZXN0Rmxhdm9yPXRoaXMuZmxhdm9yfW5nT25EZXN0cm95KCl7dGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoS3QoZDEpLEt0KG93KSl9LGQuXHUwMjc1ZGly''@;'; + put 'put ''PVdpKHt0eXBlOmR9KSxkfSkoKSxVaj0oKCk9PntjbGFzcyBkIGV4dGVuZHMgb3d7fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbigpe2xldCBnO3JldHVybiBmdW5jdGlvbih2KXtyZXR1cm4oZ3x8KGc9ZmwoZCkpKSh2fHxkKX19KCksZC5cdTAyNzVkaXI9V2koe3R5cGU6ZCxzZWxlY3Rv''@;'; + put 'put ''cnM6W1siY2xyLWFjY29yZGlvbiJdXSxmZWF0dXJlczpbRG9dfSksZH0pKCksZXE9KCgpPT57Y2xhc3MgZCBleHRlbmRzIGF3e2NvbnN0cnVjdG9yKGgsdix5KXtpZighdil0aHJvdyBuZXcgRXJyb3IoImNsci1hY2NvcmRpb24tcGFuZWwgc2hvdWxkIG9ubHkgYmUgdXNlZCBpbnNpZGUgb2Yg''@;'; + put 'put ''Y2xyLWFjY29yZGlvbiIpO3N1cGVyKGgsdiksdGhpcy5leHBhbmQ9eX1nZXQgZmxhdm9yKCl7cmV0dXJuIHRoaXMuZXhwYW5kLmV4cGFuZGVkfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShLdChkMSksS3QoVWosOCksS3QocjEpKX0sZC5cdTAyNzVk''@;'; + put 'put ''aXI9V2koe3R5cGU6ZCxzZWxlY3RvcnM6W1siY2xyLWFjY29yZGlvbi1wYW5lbCJdXSxmZWF0dXJlczpbRG9dfSksZH0pKCksdHE9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3Rvcigpe2ZzLmFkZEljb25zKEl5LEtoLFRmKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBu''@;'; + put 'put ''ZXcoaHx8ZCl9LGQuXHUwMjc1bW9kPWNvKHt0eXBlOmR9KSxkLlx1MDI3NWluaj1iMCh7aW1wb3J0czpbW2JhLElzXV19KSxkfSkoKSxEcz0oKCk9PntjbGFzcyBke31yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVtb2Q9Y28oe3R5cGU6''@;'; + put 'put ''ZH0pLGQuXHUwMjc1aW5qPWIwKHtpbXBvcnRzOltbYmEsSXMsdHFdLHRxXX0pLGR9KSgpO3ZhciBNMD0oKCk9PihmdW5jdGlvbihkKXtkLkFycm93TGVmdD0iQXJyb3dMZWZ0IixkLkFycm93VXA9IkFycm93VXAiLGQuQXJyb3dSaWdodD0iQXJyb3dSaWdodCIsZC5BcnJvd0Rvd249IkFycm93''@;'; + put 'put ''RG93biIsZC5CYWNrc3BhY2U9IkJhY2tzcGFjZSIsZC5UYWI9IlRhYiIsZC5FbnRlcj0iRW50ZXIiLGQuRXNjYXBlPSJFc2NhcGUiLGQuU3BhY2U9IlNwYWNlIixkLlNwYWNlYmFyPSIgIixkLkhvbWU9IkhvbWUiLGQuRW5kPSJFbmQifShNMHx8KE0wPXt9KSksTTApKSgpLGZjPSgoKT0+KGZ1''@;'; + put 'put ''bmN0aW9uKGQpe2QuQXJyb3dVcD0iVXAiLGQuQXJyb3dEb3duPSJEb3duIixkLkFycm93UmlnaHQ9IlJpZ2h0IixkLkFycm93TGVmdD0iTGVmdCIsZC5TcGFjZT0iU3BhY2ViYXIiLGQuRXNjYXBlPSJFc2MiLGQuSG9tZT0iSG9tZSIsZC5FbmQ9IkVuZCIsZC5FbnRlcj0iRW50ZXIiLGQuVGFi''@;'; + put 'put ''PSJUYWIifShmY3x8KGZjPXt9KSksZmMpKSgpO2Z1bmN0aW9uIGFTKGQpe3JldHVybiBkPT09TTAuQXJyb3dVcHx8ZD09PWZjLkFycm93VXA/TTAuQXJyb3dVcDpkPT09TTAuQXJyb3dEb3dufHxkPT09ZmMuQXJyb3dEb3duP00wLkFycm93RG93bjpkPT09TTAuQXJyb3dSaWdodHx8ZD09PWZj''@;'; + put 'put ''LkFycm93UmlnaHQ/TTAuQXJyb3dSaWdodDpkPT09TTAuQXJyb3dMZWZ0fHxkPT09ZmMuQXJyb3dMZWZ0P00wLkFycm93TGVmdDpkPT09TTAuU3BhY2V8fGQ9PT1mYy5TcGFjZT9NMC5TcGFjZTpkPT09TTAuRXNjYXBlfHxkPT09ZmMuRXNjYXBlP00wLkVzY2FwZTpkfWZ1bmN0aW9uIE1wKGQp''@;'; + put 'put ''e2NvbnN0IGc9YVMoZC5rZXkpOyhnPT09TTAuQXJyb3dVcHx8Zz09PU0wLkFycm93RG93bnx8Zz09PU0wLkFycm93TGVmdHx8Zz09PU0wLkFycm93UmlnaHQpJiZkLnByZXZlbnREZWZhdWx0KCl9bGV0IHpzPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoKXt0aGlzLl9vcGVuPSExLHRoaXMu''@;'; + put 'put ''X29wZW5DaGFuZ2U9bmV3ICRlLHRoaXMuX29wZW5FdmVudENoYW5nZT1uZXcgJGUsdGhpcy5fcG9wb3ZlckFsaWduZWQ9bmV3ICRlfWdldCBvcGVuQ2hhbmdlKCl7cmV0dXJuIHRoaXMuX29wZW5DaGFuZ2UuYXNPYnNlcnZhYmxlKCl9c2V0IG9wZW5FdmVudChoKXt0aGlzLl9vcGVuRXZlbnQ9''@;'; + put 'put ''aCx0aGlzLl9vcGVuRXZlbnRDaGFuZ2UubmV4dChoKX1nZXQgb3BlbkV2ZW50KCl7cmV0dXJuIHRoaXMuX29wZW5FdmVudH1nZXRFdmVudENoYW5nZSgpe3JldHVybiB0aGlzLl9vcGVuRXZlbnRDaGFuZ2UuYXNPYnNlcnZhYmxlKCl9c2V0IG9wZW4oaCl7dGhpcy5fb3BlbiE9PShoPSEhaCkm''@;'; + put 'put ''Jih0aGlzLl9vcGVuPWgsdGhpcy5fb3BlbkNoYW5nZS5uZXh0KGgpKX1nZXQgb3Blbigpe3JldHVybiB0aGlzLl9vcGVufWdldCBvcmlnaW5hbEV2ZW50KCl7cmV0dXJuIHRoaXMuX29wZW5FdmVudH10b2dnbGVXaXRoRXZlbnQoaCl7TXAoaCksdGhpcy5vcGVuRXZlbnQ9aCx0aGlzLm9wZW49''@;'; + put 'put ''IXRoaXMub3Blbn1nZXQgcG9wb3ZlckFsaWduZWQoKXtyZXR1cm4gdGhpcy5fcG9wb3ZlckFsaWduZWQuYXNPYnNlcnZhYmxlKCl9cG9wb3ZlckFsaWduZWRFbWl0KGgpe3RoaXMuX3BvcG92ZXJBbGlnbmVkLm5leHQoaCl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4g''@;'; + put 'put ''bmV3KGh8fGQpfSxkLlx1MDI3NXByb3Y9QWkoe3Rva2VuOmQsZmFjdG9yeTpkLlx1MDI3NWZhY30pLGR9KSgpLGg4PSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2LHkpe3RoaXMucmVuZGVyZXI9aCx0aGlzLnNtYXJ0T3BlblNlcnZpY2U9dix0aGlzLmRvY3VtZW50PXksdGhpcy5vdXRz''@;'; + put 'put ''aWRlQ2xpY2tDbG9zZT0hMCx0aGlzLnNjcm9sbFRvQ2xvc2U9ITAsdGhpcy5zdWJzY3JpcHRpb25zPVtdLHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHYub3BlbkNoYW5nZS5zdWJzY3JpYmUoQz0+e0M/KHRoaXMuYWRkRXNjYXBlTGlzdGVuZXIoKSx0aGlzLmFkZENsaWNrTGlzdGVuZXIoKSx0''@;'; + put 'put ''aGlzLmFkZFNjcm9sbExpc3RlbmVyKCkpOnRoaXMucmVtb3ZlQWxsRXZlbnRMaXN0ZW5lcnMoKX0pLHYuZ2V0RXZlbnRDaGFuZ2UoKS5zdWJzY3JpYmUoQz0+e3RoaXMuaWdub3JlZEV2ZW50PUN9KSl9YWRkU2Nyb2xsTGlzdGVuZXIoKXt0aGlzLnNjcm9sbFRvQ2xvc2UmJih0aGlzLmRvY3Vt''@;'; + put 'put ''ZW50U2Nyb2xsZXI9dDgodGhpcy5kb2N1bWVudCwic2Nyb2xsIix7Y2FwdHVyZTohMH0pLHRoaXMuc2Nyb2xsU3Vic2NyaXB0aW9uPXRoaXMuZG9jdW1lbnRTY3JvbGxlci5waXBlKE8yKHRoaXMudGVzdEZvclNtYXJ0UG9wb3ZlckNvbnRlbnRDb250YWluZXIpKS5zdWJzY3JpYmUoKCk9Pnt0''@;'; + put 'put ''aGlzLnNtYXJ0T3BlblNlcnZpY2Uub3Blbj0hMSx0aGlzLnNldEFuY2hvckZvY3VzKCl9KSl9cmVtb3ZlU2Nyb2xsTGlzdGVuZXIoKXt0aGlzLmRvY3VtZW50U2Nyb2xsZXImJih0aGlzLnNjcm9sbFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpLGRlbGV0ZSB0aGlzLmRvY3VtZW50U2Nyb2xs''@;'; + put 'put ''ZXIpfXRlc3RGb3JTbWFydFBvcG92ZXJDb250ZW50Q29udGFpbmVyKGgpe2xldCB2PWgudGFyZ2V0O2Zvcig7di5jbGFzc0xpc3QmJiJib2R5IiE9PXYucGFyZW50RWxlbWVudC5sb2NhbE5hbWU7KXY9di5wYXJlbnRFbGVtZW50O3JldHVybiEhdi5jbGFzc0xpc3QmJiF2LmNsYXNzTGlzdC5j''@;'; + put 'put ''b250YWlucygiY2xyLXBvcG92ZXItY29udGVudCIpfWFkZENsaWNrTGlzdGVuZXIoKXt0aGlzLm91dHNpZGVDbGlja0Nsb3NlJiYodGhpcy5kb2N1bWVudENsaWNrTGlzdGVuZXI9dGhpcy5yZW5kZXJlci5saXN0ZW4odGhpcy5kb2N1bWVudCwiY2xpY2siLGg9PntoPT09dGhpcy5pZ25vcmVk''@;'; + put 'put ''RXZlbnQ/ZGVsZXRlIHRoaXMuaWdub3JlZEV2ZW50Oih0aGlzLnNtYXJ0T3BlblNlcnZpY2Uub3Blbj0hMSxoLnRhcmdldC5mb2N1cygpKX0pKX1yZW1vdmVDbGlja0xpc3RlbmVyKCl7dGhpcy5vdXRzaWRlQ2xpY2tDbG9zZSYmKGRlbGV0ZSB0aGlzLmlnbm9yZWRFdmVudCx0aGlzLmRvY3Vt''@;'; + put 'put ''ZW50Q2xpY2tMaXN0ZW5lciYmKHRoaXMuZG9jdW1lbnRDbGlja0xpc3RlbmVyKCksZGVsZXRlIHRoaXMuZG9jdW1lbnRDbGlja0xpc3RlbmVyKSl9YWRkRXNjYXBlTGlzdGVuZXIoKXt0aGlzLmVzY2FwZUxpc3RlbmVyPXRoaXMucmVuZGVyZXIubGlzdGVuKHRoaXMuZG9jdW1lbnQsImtleWRv''@;'; + put 'put ''d24uZXNjYXBlIiwoKT0+e3RoaXMuc21hcnRPcGVuU2VydmljZS5vcGVuPSExLHRoaXMuc2V0QW5jaG9yRm9jdXMoKX0pfXJlbW92ZUVzY2FwZUxpc3RlbmVyKCl7dGhpcy5lc2NhcGVMaXN0ZW5lciYmKHRoaXMuZXNjYXBlTGlzdGVuZXIoKSxkZWxldGUgdGhpcy5lc2NhcGVMaXN0ZW5lcil9''@;'; + put 'put ''c2V0IGFuY2hvckJ1dHRvblJlZihoKXt0aGlzLl9hbmNob3JCdXR0b25SZWY9aH1nZXQgYW5jaG9yQnV0dG9uUmVmKCl7cmV0dXJuIHRoaXMuX2FuY2hvckJ1dHRvblJlZn1zZXQgY2xvc2VCdXR0b25SZWYoaCl7dGhpcy5fY2xvc2VCdXR0b25SZWY9aH1nZXQgY2xvc2VCdXR0b25SZWYoKXty''@;'; + put 'put ''ZXR1cm4gdGhpcy5fY2xvc2VCdXR0b25SZWZ9c2V0Q2xvc2VGb2N1cygpe3RoaXMuX2Nsb3NlQnV0dG9uUmVmLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKX1zZXRBbmNob3JGb2N1cygpe3RoaXMuYW5jaG9yQnV0dG9uUmVmLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKX1zZXQgY29udGVudFJlZihoKXt0''@;'; + put 'put ''aGlzLl9jb250ZW50UmVmPWh9Z2V0IGNvbnRlbnRSZWYoKXtyZXR1cm4gdGhpcy5fY29udGVudFJlZn1yZW1vdmVBbGxFdmVudExpc3RlbmVycygpe3RoaXMucmVtb3ZlU2Nyb2xsTGlzdGVuZXIoKSx0aGlzLnJlbW92ZUNsaWNrTGlzdGVuZXIoKSx0aGlzLnJlbW92ZUVzY2FwZUxpc3RlbmVy''@;'; + put 'put ''KCl9bmdPbkRlc3Ryb3koKXt0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChoPT5oLnVuc3Vic2NyaWJlKCkpLHRoaXMucmVtb3ZlQWxsRXZlbnRMaXN0ZW5lcnMoKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoQ2koR2EpLENpKHpzKSxDaShwcykp''@;'; + put 'put ''fSxkLlx1MDI3NXByb3Y9QWkoe3Rva2VuOmQsZmFjdG9yeTpkLlx1MDI3NWZhY30pLGR9KSgpLHN3PSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2KXtoLmFuY2hvckJ1dHRvblJlZj12fX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShLdChoOCks''@;'; + put 'put ''S3QoYm8pKX0sZC5cdTAyNzVkaXI9V2koe3R5cGU6ZCxzZWxlY3RvcnM6W1siIiwiY2xyUG9wb3ZlckFuY2hvciIsIiJdXSxob3N0VmFyczoyLGhvc3RCaW5kaW5nczpmdW5jdGlvbihoLHYpezImaCYmRmkoImNsci1hbmNob3IiLCEwKX19KSxkfSkoKSxycT0oKCk9PntjbGFzcyBke2NvbnN0''@;'; + put 'put ''cnVjdG9yKGgsdix5KXt0aGlzLmVsZW1lbnRSZWY9aCx0aGlzLnNtYXJ0RXZlbnRzU2VydmljZT12LHRoaXMuc21hcnRPcGVuU2VydmljZT15LHRoaXMuc3Vic2NyaXB0aW9ucz1bXSx0aGlzLmNsb3NlQ2hhbmdlPW5ldyBhcix0aGlzLnN1YnNjcmlwdGlvbnMucHVzaCh5Lm9wZW5DaGFuZ2Uu''@;'; + put 'put ''cGlwZShPMihDPT4hQykpLnN1YnNjcmliZSgoKT0+e3RoaXMuY2xvc2VDaGFuZ2UubmV4dCgpfSkpfWhhbmRsZUNsaWNrKGgpe3RoaXMuc21hcnRPcGVuU2VydmljZS50b2dnbGVXaXRoRXZlbnQoaCksdGhpcy5zbWFydEV2ZW50c1NlcnZpY2Uuc2V0QW5jaG9yRm9jdXMoKX1uZ0FmdGVyVmll''@;'; + put 'put ''d0luaXQoKXt0aGlzLnNtYXJ0RXZlbnRzU2VydmljZS5jbG9zZUJ1dHRvblJlZj10aGlzLmVsZW1lbnRSZWYsdGhpcy5zbWFydEV2ZW50c1NlcnZpY2Uuc2V0Q2xvc2VGb2N1cygpfW5nT25EZXN0cm95KCl7dGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goaD0+aC51bnN1YnNjcmliZSgpKX19''@;'; + put 'put ''cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoS3QoYm8pLEt0KGg4KSxLdCh6cykpfSxkLlx1MDI3NWRpcj1XaSh7dHlwZTpkLHNlbGVjdG9yczpbWyIiLCJjbHJQb3BvdmVyQ2xvc2VCdXR0b24iLCIiXV0saG9zdFZhcnM6Mixob3N0QmluZGluZ3M6ZnVu''@;'; + put 'put ''Y3Rpb24oaCx2KXsxJmgmJkduKCJjbGljayIsZnVuY3Rpb24oQyl7cmV0dXJuIHYuaGFuZGxlQ2xpY2soQyl9KSwyJmgmJkZpKCJjbHItc21hcnQtY2xvc2UtYnV0dG9uIiwhMCl9LG91dHB1dHM6e2Nsb3NlQ2hhbmdlOiJjbHJQb3BvdmVyT25DbG9zZUNoYW5nZSJ9fSksZH0pKCk7dmFyICQx''@;'; + put 'put ''PSgoKT0+KGZ1bmN0aW9uKGQpe2RbZC5WRVJUSUNBTD0wXT0iVkVSVElDQUwiLGRbZC5IT1JJWk9OVEFMPTFdPSJIT1JJWk9OVEFMIn0oJDF8fCgkMT17fSkpLCQxKSkoKSxfbz0oKCk9PihmdW5jdGlvbihkKXtkW2QuU1RBUlQ9MF09IlNUQVJUIixkW2QuQ0VOVEVSPS41XT0iQ0VOVEVSIixk''@;'; + put 'put ''W2QuRU5EPTFdPSJFTkQifShfb3x8KF9vPXt9KSksX28pKSgpLEJpPSgoKT0+KGZ1bmN0aW9uKGQpe2RbZC5CT1RUT009MF09IkJPVFRPTSIsZFtkLkxFRlQ9MV09IkxFRlQiLGRbZC5SSUdIVD0yXT0iUklHSFQiLGRbZC5UT1A9M109IlRPUCJ9KEJpfHwoQmk9e30pKSxCaSkpKCk7Y29uc3Qg''@;'; + put 'put ''ZDg9ZD0+T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGQpLHtzaWRlOi0xKmQuc2lkZX0pLHEwPShkLGcpPT57Y29uc3QgaD1kLmNvbnRlbnQrKGc/LjU6LS41KTtyZXR1cm4gaDwwfHxoPjE/ZDpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sZCkse2NvbnRlbnQ6aH0pfTtm''@;'; + put 'put ''dW5jdGlvbiBSMihkLGcsaCl7cmV0dXJuIHY9PmcoZCh2KSxoKX1mdW5jdGlvbiBvMyhkLGcsaCl7bGV0IHY9Zy5sZWZ0LHk9Zy50b3A7c3dpdGNoKGQuYXhpcytkLnNpZGUpe2Nhc2UtMTp2Kz1YaihkLGcsaCkseS09aC5oZWlnaHQ7YnJlYWs7Y2FzZSAxOnYrPVhqKGQsZyxoKSx5Kz1nLmhl''@;'; + put 'put ''aWdodDticmVhaztjYXNlIDA6di09aC53aWR0aCx5Kz1pcShkLGcsaCk7YnJlYWs7Y2FzZSAyOnYrPWcud2lkdGgseSs9aXEoZCxnLGgpfXJldHVybnt4T2Zmc2V0OnYseU9mZnNldDp5fX1mdW5jdGlvbiBYaihkLGcsaCl7bGV0IHY9MDtzd2l0Y2goZC5hbmNob3Ipe2Nhc2UgX28uU1RBUlQ6''@;'; + put 'put ''YnJlYWs7Y2FzZSBfby5DRU5URVI6dis9Zy53aWR0aC8yO2JyZWFrO2Nhc2UgX28uRU5EOnYrPWcud2lkdGh9c3dpdGNoKGQuY29udGVudCl7Y2FzZSBfby5TVEFSVDpicmVhaztjYXNlIF9vLkNFTlRFUjp2LT1oLndpZHRoLzI7YnJlYWs7Y2FzZSBfby5FTkQ6di09aC53aWR0aH1yZXR1cm4g''@;'; + put 'put ''dn1mdW5jdGlvbiBpcShkLGcsaCl7bGV0IHY9MDtzd2l0Y2goZC5hbmNob3Ipe2Nhc2UgX28uU1RBUlQ6YnJlYWs7Y2FzZSBfby5DRU5URVI6dis9Zy5oZWlnaHQvMjticmVhaztjYXNlIF9vLkVORDp2Kz1nLmhlaWdodH1zd2l0Y2goZC5jb250ZW50KXtjYXNlIF9vLlNUQVJUOmJyZWFrO2Nh''@;'; + put 'put ''c2UgX28uQ0VOVEVSOnYtPWguaGVpZ2h0LzI7YnJlYWs7Y2FzZSBfby5FTkQ6di09aC5oZWlnaHR9cmV0dXJuIHZ9bGV0IEdzPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2KXt0aGlzLmV2ZW50U2VydmljZT1oLHRoaXMucGxhdGZvcm1JZD12LHRoaXMuX3Nob3VsZFJlYWxpZ249bmV3''@;'; + put 'put ''ICRlLHRoaXMuc2hvdWxkUmVhbGlnbj10aGlzLl9zaG91bGRSZWFsaWduLmFzT2JzZXJ2YWJsZSgpfXJlYWxpZ24oKXt0aGlzLl9zaG91bGRSZWFsaWduLm5leHQoKX1zZXQgcG9zaXRpb24oaCl7dGhpcy5fcG9zaXRpb249aH1nZXQgcG9zaXRpb24oKXtyZXR1cm4gdGhpcy5fcG9zaXRpb259''@;'; + put 'put ''YWxpZ25Db250ZW50KGgpe2lmKCFTbCh0aGlzLnBsYXRmb3JtSWQpKXJldHVybnt4T2Zmc2V0OjAseU9mZnNldDowfTt0aGlzLmN1cnJlbnRBbmNob3JDb29yZHM9dGhpcy5ldmVudFNlcnZpY2UuYW5jaG9yQnV0dG9uUmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCks''@;'; + put 'put ''dGhpcy5jdXJyZW50Q29udGVudENvb3Jkcz1oLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHRoaXMuY29udGVudE9mZnNldHM9bzModGhpcy5wb3NpdGlvbix0aGlzLmN1cnJlbnRBbmNob3JDb29yZHMsdGhpcy5jdXJyZW50Q29udGVudENvb3Jkcyk7Y29uc3Qgdj1mdW5jdGlvbiBDbyhkLGcp''@;'; + put 'put ''e2NvbnN0IGg9W10sdl9ib3R0b209ZC55T2Zmc2V0K2cuaGVpZ2h0LHZfbGVmdD1kLnhPZmZzZXQsdl9yaWdodD1kLnhPZmZzZXQrZy53aWR0aDtyZXR1cm4gZC55T2Zmc2V0Pj0wfHxoLnB1c2goQmkuVE9QKSx2X2xlZnQ+PTB8fGgucHVzaChCaS5MRUZUKSx2X2JvdHRvbTw9KHdpbmRvdy5p''@;'; + put 'put ''bm5lckhlaWdodHx8ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodCl8fGgucHVzaChCaS5CT1RUT00pLHZfcmlnaHQ8PSh3aW5kb3cuaW5uZXJXaWR0aHx8ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoKXx8aC5wdXNoKEJpLlJJR0hUKSxofSh0aGlzLmNv''@;'; + put 'put ''bnRlbnRPZmZzZXRzLHRoaXMuY3VycmVudENvbnRlbnRDb29yZHMpLHk9di5yZWR1Y2UoKEMsSSk9PkMrSSwwKTtyZXR1cm4gMT09PXYubGVuZ3RoJiZ0aGlzLnBvc2l0aW9uLmF4aXM9PT0kMS5WRVJUSUNBTD90aGlzLmhhbmRsZVZlcnRpY2FsQXhpc09uZVZpb2xhdGlvbih5KToxPT09di5s''@;'; + put 'put ''ZW5ndGgmJnRoaXMucG9zaXRpb24uYXhpcz09PSQxLkhPUklaT05UQUw/dGhpcy5oYW5kbGVIb3Jpem9udGFsQXhpc09uZVZpb2xhdGlvbih5KToyPT09di5sZW5ndGgmJnRoaXMucG9zaXRpb24uYXhpcz09PSQxLlZFUlRJQ0FMP3RoaXMuaGFuZGxlVmVydGljYWxBeGlzVHdvVmlvbGF0aW9u''@;'; + put 'put ''cyh5KToyPT09di5sZW5ndGgmJnRoaXMucG9zaXRpb24uYXhpcz09PSQxLkhPUklaT05UQUwmJnRoaXMuaGFuZGxlSG9yaXpvbnRhbEF4aXNUd29WaW9sYXRpb25zKHkpLHRoaXMuY29udGVudE9mZnNldHN9aGFuZGxlVmVydGljYWxBeGlzT25lVmlvbGF0aW9uKGgpe3N3aXRjaChoKXtjYXNl''@;'; + put 'put ''IDA6Y2FzZSAzOnRoaXMuY29udGVudE9mZnNldHM9bzMoZDgodGhpcy5wb3NpdGlvbiksdGhpcy5jdXJyZW50QW5jaG9yQ29vcmRzLHRoaXMuY3VycmVudENvbnRlbnRDb29yZHMpO2JyZWFrO2Nhc2UgMTp0aGlzLmNvbnRlbnRPZmZzZXRzPW8zKHRoaXMucG9zaXRpb24sdGhpcy5jdXJyZW50''@;'; + put 'put ''QW5jaG9yQ29vcmRzLHRoaXMuY3VycmVudENvbnRlbnRDb29yZHMpLHRoaXMuY29udGVudE9mZnNldHMueE9mZnNldDwwJiYodGhpcy5jb250ZW50T2Zmc2V0cy54T2Zmc2V0PTEwKTticmVhaztjYXNlIDI6dGhpcy5jb250ZW50T2Zmc2V0cz1vMyhxMCh0aGlzLnBvc2l0aW9uLCEwKSx0aGlz''@;'; + put 'put ''LmN1cnJlbnRBbmNob3JDb29yZHMsdGhpcy5jdXJyZW50Q29udGVudENvb3Jkcyl9fWhhbmRsZVZlcnRpY2FsQXhpc1R3b1Zpb2xhdGlvbnMoaCl7c3dpdGNoKGgpe2Nhc2UgNTp7Y29uc3Qgdj1SMihkOCxxMCwhMCk7dGhpcy5jb250ZW50T2Zmc2V0cz1vMyh2KHRoaXMucG9zaXRpb24pLHRo''@;'; + put 'put ''aXMuY3VycmVudEFuY2hvckNvb3Jkcyx0aGlzLmN1cnJlbnRDb250ZW50Q29vcmRzKTticmVha31jYXNlIDQ6e2NvbnN0IHY9UjIoZDgscTAsITEpO3RoaXMuY29udGVudE9mZnNldHM9bzModih0aGlzLnBvc2l0aW9uKSx0aGlzLmN1cnJlbnRBbmNob3JDb29yZHMsdGhpcy5jdXJyZW50Q29u''@;'; + put 'put ''dGVudENvb3Jkcyk7YnJlYWt9Y2FzZSAzOmRlZmF1bHQ6YnJlYWs7Y2FzZSAyOntjb25zdCB2PVIyKGQ4LHEwLCEwKTt0aGlzLmNvbnRlbnRPZmZzZXRzPW8zKHYodGhpcy5wb3NpdGlvbiksdGhpcy5jdXJyZW50QW5jaG9yQ29vcmRzLHRoaXMuY3VycmVudENvbnRlbnRDb29yZHMpO2JyZWFr''@;'; + put 'put ''fWNhc2UgMTp7Y29uc3Qgdj1SMihkOCxxMCwhMSk7dGhpcy5jb250ZW50T2Zmc2V0cz1vMyh2KHRoaXMucG9zaXRpb24pLHRoaXMuY3VycmVudEFuY2hvckNvb3Jkcyx0aGlzLmN1cnJlbnRDb250ZW50Q29vcmRzKTticmVha319fWhhbmRsZUhvcml6b250YWxBeGlzT25lVmlvbGF0aW9uKGgp''@;'; + put 'put ''e3N3aXRjaChoKXtjYXNlIDE6Y2FzZSAyOnRoaXMuY29udGVudE9mZnNldHM9bzMoZDgodGhpcy5wb3NpdGlvbiksdGhpcy5jdXJyZW50QW5jaG9yQ29vcmRzLHRoaXMuY3VycmVudENvbnRlbnRDb29yZHMpO2JyZWFrO2Nhc2UgMDp0aGlzLmNvbnRlbnRPZmZzZXRzPW8zKHEwKHRoaXMucG9z''@;'; + put 'put ''aXRpb24sITApLHRoaXMuY3VycmVudEFuY2hvckNvb3Jkcyx0aGlzLmN1cnJlbnRDb250ZW50Q29vcmRzKTticmVhaztjYXNlIDM6dGhpcy5jb250ZW50T2Zmc2V0cz1vMyhxMCh0aGlzLnBvc2l0aW9uKSx0aGlzLmN1cnJlbnRBbmNob3JDb29yZHMsdGhpcy5jdXJyZW50Q29udGVudENvb3Jk''@;'; + put 'put ''cyl9fWhhbmRsZUhvcml6b250YWxBeGlzVHdvVmlvbGF0aW9ucyhoKXtzd2l0Y2goaCl7Y2FzZSA1OmNhc2UgNDp7Y29uc3Qgdj1SMihkOCxxMCwhMSk7dGhpcy5jb250ZW50T2Zmc2V0cz1vMyh2KHRoaXMucG9zaXRpb24pLHRoaXMuY3VycmVudEFuY2hvckNvb3Jkcyx0aGlzLmN1cnJlbnRD''@;'; + put 'put ''b250ZW50Q29vcmRzKTticmVha31jYXNlIDM6ZGVmYXVsdDpicmVhaztjYXNlIDI6Y2FzZSAxOntjb25zdCB2PVIyKGQ4LHEwLCEwKTt0aGlzLmNvbnRlbnRPZmZzZXRzPW8zKHYodGhpcy5wb3NpdGlvbiksdGhpcy5jdXJyZW50QW5jaG9yQ29vcmRzLHRoaXMuY3VycmVudENvbnRlbnRDb29y''@;'; + put 'put ''ZHMpO2JyZWFrfX19fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKENpKGg4KSxDaShMMikpfSxkLlx1MDI3NXByb3Y9QWkoe3Rva2VuOmQsZmFjdG9yeTpkLlx1MDI3NWZhY30pLGR9KSgpLGRsPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2LHks''@;'; + put 'put ''QyxJLGosdWUpe3RoaXMuZG9jdW1lbnQ9aCx0aGlzLmNvbnRhaW5lcj12LHRoaXMudGVtcGxhdGU9eSx0aGlzLnJlbmRlcmVyPUMsdGhpcy5zbWFydFBvc2l0aW9uU2VydmljZT1JLHRoaXMuc21hcnRFdmVudHNTZXJ2aWNlPWosdGhpcy5zbWFydE9wZW5TZXJ2aWNlPXVlLHRoaXMuc3Vic2Ny''@;'; + put 'put ''aXB0aW9ucz1bXSx0aGlzLnJlbW92ZUNsaWNrTGlzdGVuZXJGbj1udWxsLHRoaXMuc2hvdWxkUmVhbGlnbj0hMSx0aGlzLmNoZWNrQ29sbGVjdG9yPW5ldyBhcn1zZXQgb3BlbihoKXt0aGlzLnNtYXJ0T3BlblNlcnZpY2Uub3Blbj0hIWh9c2V0IGNvbnRlbnRBdChoKXt0aGlzLnNtYXJ0UG9z''@;'; + put 'put ''aXRpb25TZXJ2aWNlLnBvc2l0aW9uPWh9c2V0IG91dHNpZGVDbGlja0Nsb3NlKGgpe3RoaXMuc21hcnRFdmVudHNTZXJ2aWNlLm91dHNpZGVDbGlja0Nsb3NlPSEhaH1zZXQgc2Nyb2xsVG9DbG9zZShoKXt0aGlzLnNtYXJ0RXZlbnRzU2VydmljZS5zY3JvbGxUb0Nsb3NlPSEhaH1uZ0FmdGVy''@;'; + put 'put ''Vmlld0luaXQoKXt0aGlzLnN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLnNtYXJ0T3BlblNlcnZpY2Uub3BlbkNoYW5nZS5zdWJzY3JpYmUoaD0+e2g/dGhpcy5hZGRDb250ZW50KCk6dGhpcy5yZW1vdmVDb250ZW50KCl9KSx0aGlzLnNtYXJ0UG9zaXRpb25TZXJ2aWNlLnNob3VsZFJlYWxpZ24u''@;'; + put 'put ''c3Vic2NyaWJlKCgpPT57dGhpcy5zaG91bGRSZWFsaWduPSEwLHRoaXMudmlldyYmdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnZpZXcucm9vdE5vZGVzWzBdLCJvcGFjaXR5IiwiMCIpfSksdGhpcy5jaGVja0NvbGxlY3Rvci5waXBlKFREKDApKS5zdWJzY3JpYmUoKCk9Pnt0aGlzLmFs''@;'; + put 'put ''aWduQ29udGVudCgpLHRoaXMuc2hvdWxkUmVhbGlnbj0hMSx0aGlzLnZpZXcmJnRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy52aWV3LnJvb3ROb2Rlc1swXSwib3BhY2l0eSIsIjEiKX0pKX1uZ09uRGVzdHJveSgpe3RoaXMucmVtb3ZlQ29udGVudCgpLHRoaXMuc3Vic2NyaXB0aW9ucy5m''@;'; + put 'put ''b3JFYWNoKGg9PmgudW5zdWJzY3JpYmUoKSl9cmVtb3ZlQ29udGVudCgpeyF0aGlzLnZpZXd8fCh0aGlzLnJlbW92ZUNsaWNrTGlzdGVuZXJGbiYmKHRoaXMucmVtb3ZlQ2xpY2tMaXN0ZW5lckZuKCksdGhpcy5yZW1vdmVDbGlja0xpc3RlbmVyRm49bnVsbCksdGhpcy52aWV3LnJvb3ROb2Rl''@;'; + put 'put ''cy5mb3JFYWNoKGg9PnRoaXMucmVuZGVyZXIucmVtb3ZlQ2hpbGQodGhpcy5kb2N1bWVudC5ib2R5LGgpKSx0aGlzLmNvbnRhaW5lci5jbGVhcigpLGRlbGV0ZSB0aGlzLnZpZXcpfWFkZENvbnRlbnQoKXt0aGlzLnZpZXc9dGhpcy5jb250YWluZXIuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMu''@;'; + put 'put ''dGVtcGxhdGUpO2NvbnN0W2hdPXRoaXMudmlldy5yb290Tm9kZXM7dGhpcy5zbWFydEV2ZW50c1NlcnZpY2UuY29udGVudFJlZj1oLHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MoaCwiY2xyLXBvcG92ZXItY29udGVudCIpLHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoaCwidG9wIiwiMHB4IiksdGhp''@;'; + put 'put ''cy5yZW5kZXJlci5zZXRTdHlsZShoLCJsZWZ0IiwiMHB4IiksdGhpcy5yZW5kZXJlci5zZXRTdHlsZShoLCJvcGFjaXR5IiwiMCIpLHRoaXMucmVtb3ZlQ2xpY2tMaXN0ZW5lckZuPXRoaXMucmVuZGVyZXIubGlzdGVuKGgsImNsaWNrIix2PT57dGhpcy5zbWFydE9wZW5TZXJ2aWNlLm9wZW5F''@;'; + put 'put ''dmVudD12fSksdGhpcy52aWV3LnJvb3ROb2Rlcy5mb3JFYWNoKHY9Pnt0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMuZG9jdW1lbnQuYm9keSx2KX0pLHRoaXMuc2hvdWxkUmVhbGlnbj0hMH1uZ0FmdGVyQ29udGVudENoZWNrZWQoKXt0aGlzLnNtYXJ0T3BlblNlcnZpY2Uub3BlbiYm''@;'; + put 'put ''dGhpcy52aWV3JiZ0aGlzLnNob3VsZFJlYWxpZ24mJnRoaXMuY2hlY2tDb2xsZWN0b3IuZW1pdCgpfWFsaWduQ29udGVudCgpe2lmKCF0aGlzLnZpZXcpcmV0dXJuO2NvbnN0IGg9dGhpcy5zbWFydFBvc2l0aW9uU2VydmljZS5hbGlnbkNvbnRlbnQodGhpcy52aWV3LnJvb3ROb2Rlc1swXSk7''@;'; + put 'put ''dGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnZpZXcucm9vdE5vZGVzWzBdLCJ0b3AiLGAke2gueU9mZnNldH1weGApLHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy52aWV3LnJvb3ROb2Rlc1swXSwibGVmdCIsYCR7aC54T2Zmc2V0fXB4YCksdGhpcy5zbWFydE9wZW5TZXJ2aWNlLnBv''@;'; + put 'put ''cG92ZXJBbGlnbmVkRW1pdCh0aGlzLnZpZXcucm9vdE5vZGVzWzBdKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoS3QocHMpLEt0KFVpKSxLdChxciksS3QoR2EpLEt0KEdzKSxLdChoOCksS3QoenMpKX0sZC5cdTAyNzVkaXI9V2koe3R5cGU6ZCxz''@;'; + put 'put ''ZWxlY3RvcnM6W1siIiwiY2xyUG9wb3ZlckNvbnRlbnQiLCIiXV0saW5wdXRzOntvcGVuOlsiY2xyUG9wb3ZlckNvbnRlbnQiLCJvcGVuIl0sY29udGVudEF0OlsiY2xyUG9wb3ZlckNvbnRlbnRBdCIsImNvbnRlbnRBdCJdLG91dHNpZGVDbGlja0Nsb3NlOlsiY2xyUG9wb3ZlckNvbnRlbnRP''@;'; + put 'put ''dXRzaWRlQ2xpY2tUb0Nsb3NlIiwib3V0c2lkZUNsaWNrQ2xvc2UiXSxzY3JvbGxUb0Nsb3NlOlsiY2xyUG9wb3ZlckNvbnRlbnRTY3JvbGxUb0Nsb3NlIiwic2Nyb2xsVG9DbG9zZSJdfX0pLGR9KSgpLHV3PSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCl7dGhpcy5zbWFydE9wZW5TZXJ2''@;'; + put 'put ''aWNlPWgsdGhpcy5zdWJzY3JpcHRpb25zPVtdLHRoaXMub3BlbkNsb3NlQ2hhbmdlPW5ldyBhcix0aGlzLnN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLnNtYXJ0T3BlblNlcnZpY2Uub3BlbkNoYW5nZS5zdWJzY3JpYmUodj0+e3RoaXMub3BlbkNsb3NlQ2hhbmdlLm5leHQodil9KSl9aGFuZGxl''@;'; + put 'put ''Q2xpY2soaCl7dGhpcy5zbWFydE9wZW5TZXJ2aWNlLnRvZ2dsZVdpdGhFdmVudChoKX1uZ09uRGVzdHJveSgpe3RoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKGg9PmgudW5zdWJzY3JpYmUoKSl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKEt0KHpz''@;'; + put 'put ''KSl9LGQuXHUwMjc1ZGlyPVdpKHt0eXBlOmQsc2VsZWN0b3JzOltbIiIsImNsclBvcG92ZXJPcGVuQ2xvc2VCdXR0b24iLCIiXV0saG9zdFZhcnM6Mixob3N0QmluZGluZ3M6ZnVuY3Rpb24oaCx2KXsxJmgmJkduKCJjbGljayIsZnVuY3Rpb24oQyl7cmV0dXJuIHYuaGFuZGxlQ2xpY2soQyl9''@;'; + put 'put ''KSwyJmgmJkZpKCJjbHItc21hcnQtb3Blbi1jbG9zZSIsITApfSxvdXRwdXRzOntvcGVuQ2xvc2VDaGFuZ2U6ImNsclBvcG92ZXJPcGVuQ2xvc2VDaGFuZ2UifX0pLGR9KSgpLFJjPSgoKT0+e2NsYXNzIGR7fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQp''@;'; + put 'put ''fSxkLlx1MDI3NW1vZD1jbyh7dHlwZTpkfSksZC5cdTAyNzVpbmo9YjAoe2ltcG9ydHM6W1tdXX0pLGR9KSgpO3ZhciBsPSgoKT0+KGZ1bmN0aW9uKGQpe2RbZC5CRUZPUkU9LTFdPSJCRUZPUkUiLGRbZC5BRlRFUj0xXT0iQUZURVIifShsfHwobD17fSkpLGwpKSgpO2NsYXNzIGN7fWNbInRv''@;'; + put 'put ''cC1yaWdodCJdPXtheGlzOiQxLlZFUlRJQ0FMLHNpZGU6bC5CRUZPUkUsYW5jaG9yOl9vLkVORCxjb250ZW50Ol9vLkVORH0sY1sidG9wLWxlZnQiXT17YXhpczokMS5WRVJUSUNBTCxzaWRlOmwuQkVGT1JFLGFuY2hvcjpfby5TVEFSVCxjb250ZW50Ol9vLlNUQVJUfSxjWyJib3R0b20tcmln''@;'; + put 'put ''aHQiXT17YXhpczokMS5WRVJUSUNBTCxzaWRlOmwuQUZURVIsYW5jaG9yOl9vLkVORCxjb250ZW50Ol9vLkVORH0sY1siYm90dG9tLWxlZnQiXT17YXhpczokMS5WRVJUSUNBTCxzaWRlOmwuQUZURVIsYW5jaG9yOl9vLlNUQVJULGNvbnRlbnQ6X28uU1RBUlR9LGNbInJpZ2h0LXRvcCJdPXth''@;'; + put 'put ''eGlzOiQxLkhPUklaT05UQUwsc2lkZTpsLkFGVEVSLGFuY2hvcjpfby5DRU5URVIsY29udGVudDpfby5FTkR9LGNbInJpZ2h0LWJvdHRvbSJdPXtheGlzOiQxLkhPUklaT05UQUwsc2lkZTpsLkFGVEVSLGFuY2hvcjpfby5TVEFSVCxjb250ZW50Ol9vLlNUQVJUfSxjWyJsZWZ0LXRvcCJdPXth''@;'; + put 'put ''eGlzOiQxLkhPUklaT05UQUwsc2lkZTpsLkJFRk9SRSxhbmNob3I6X28uQ0VOVEVSLGNvbnRlbnQ6X28uRU5EfSxjWyJsZWZ0LWJvdHRvbSJdPXtheGlzOiQxLkhPUklaT05UQUwsc2lkZTpsLkJFRk9SRSxhbmNob3I6X28uU1RBUlQsY29udGVudDpfby5TVEFSVH07bGV0IG09KCgpPT57Y2xh''@;'; + put 'put ''c3MgZHt9cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1bW9kPWNvKHt0eXBlOmR9KSxkLlx1MDI3NWluaj1iMCh7aW1wb3J0czpbW2JhLElzLFJjXV19KSxkfSkoKSx3PSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2KXt0aGlzLmVs''@;'; + put 'put ''PWgsdGhpcy5yZW5kZXJlcj12LHRoaXMuYnV0dG9uU3RhdGU9Z2ksdGhpcy5zdGF0ZT1naS5ERUZBVUxULHRoaXMuY2xyTG9hZGluZ0NoYW5nZT1uZXcgYXIoITEpfWxvYWRpbmdTdGF0ZUNoYW5nZShoKXtpZihoIT09dGhpcy5zdGF0ZSl7c3dpdGNoKHRoaXMuc3RhdGU9aCxoKXtjYXNlIGdp''@;'; + put 'put ''LkRFRkFVTFQ6dGhpcy5yZW5kZXJlci5yZW1vdmVTdHlsZSh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsIndpZHRoIiksdGhpcy5yZW5kZXJlci5yZW1vdmVTdHlsZSh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsInRyYW5zZm9ybSIpLHRoaXMuZGlzYWJsZWR8fHRoaXMucmVuZGVyZXIucmVtb3ZlQXR0''@;'; + put 'put ''cmlidXRlKHRoaXMuZWwubmF0aXZlRWxlbWVudCwiZGlzYWJsZWQiKTticmVhaztjYXNlIGdpLkxPQURJTkc6dGhpcy5zZXRFeHBsaWNpdEJ1dHRvbldpZHRoKCksdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsInRyYW5zZm9ybSIsInRyYW5zbGF0ZXooMCki''@;'; + put 'put ''KSx0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZSh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsImRpc2FibGVkIiwiIik7YnJlYWs7Y2FzZSBnaS5TVUNDRVNTOnRoaXMuc2V0RXhwbGljaXRCdXR0b25XaWR0aCgpO2JyZWFrO2Nhc2UgZ2kuRVJST1I6dGhpcy5sb2FkaW5nU3RhdGVDaGFuZ2UoZ2ku''@;'; + put 'put ''REVGQVVMVCl9dGhpcy5jbHJMb2FkaW5nQ2hhbmdlLmVtaXQoaCl9fXNldEV4cGxpY2l0QnV0dG9uV2lkdGgoKXtpZih0aGlzLmVsLm5hdGl2ZUVsZW1lbnQmJnRoaXMuZWwubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3Qpe2NvbnN0IGg9dGhpcy5lbC5uYXRpdmVFbGVtZW50''@;'; + put 'put ''LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHY9TWF0aC5tYXgoNDIsaC53aWR0aCk7dGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsIndpZHRoIixgJHt2fXB4YCl9fX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShLdChi''@;'; + put 'put ''byksS3QoR2EpKX0sZC5cdTAyNzVjbXA9VGkoe3R5cGU6ZCxzZWxlY3RvcnM6W1siYnV0dG9uIiwiY2xyTG9hZGluZyIsIiJdXSxob3N0VmFyczoxLGhvc3RCaW5kaW5nczpmdW5jdGlvbihoLHYpezImaCYmR2koImRpc2FibGVkIix2LmRpc2FibGVkPyIiOm51bGwpfSxpbnB1dHM6e2Rpc2Fi''@;'; + put 'put ''bGVkOiJkaXNhYmxlZCJ9LG91dHB1dHM6e2NsckxvYWRpbmdDaGFuZ2U6ImNsckxvYWRpbmdDaGFuZ2UifSxmZWF0dXJlczpbaG8oW3twcm92aWRlOlBmLHVzZUV4aXN0aW5nOmR9XSldLGF0dHJzOnl1ZSxuZ0NvbnRlbnRTZWxlY3RvcnM6bmEsZGVjbHM6NCx2YXJzOjQsY29uc3RzOltbMywi''@;'; + put 'put ''bmdTd2l0Y2giXSxbNCwibmdTd2l0Y2hDYXNlIl0sWzEsInNwaW5uZXIiLCJzcGlubmVyLWlubGluZSJdLFsxLCJzcGlubmVyIiwic3Bpbm5lci1pbmxpbmUiLCJzcGlubmVyLWNoZWNrIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGgsdil7MSZoJiYoSzAoKSxGMCgwLDApLHJuKDEsd3VlLDIsMSwi''@;'; + put 'put ''c3BhbiIsMSkscm4oMixidWUsMiwxLCJzcGFuIiwxKSxybigzLF91ZSwyLDEsInNwYW4iLDEpLEgwKCkpLDImaCYmKFR0KCJuZ1N3aXRjaCIsdi5zdGF0ZSksdXQoMSksVHQoIm5nU3dpdGNoQ2FzZSIsdi5idXR0b25TdGF0ZS5MT0FESU5HKSx1dCgxKSxUdCgibmdTd2l0Y2hDYXNlIix2LmJ1''@;'; + put 'put ''dHRvblN0YXRlLlNVQ0NFU1MpLHV0KDEpLFR0KCJuZ1N3aXRjaENhc2UiLHYuYnV0dG9uU3RhdGUuREVGQVVMVCkpfSxkZXBlbmRlbmNpZXM6W0pkLGlwXSxlbmNhcHN1bGF0aW9uOjIsZGF0YTp7YW5pbWF0aW9uOlskaCgiZGVmYXVsdEJ1dHRvbiIsW2J1KCI6ZW50ZXIiLFt5bCh7b3BhY2l0''@;'; + put 'put ''eTowfSksRGMoIjIwMG1zIDEwMG1zIGVhc2UtaW4iLHlsKHtvcGFjaXR5OjF9KSldKSxidSgiOmxlYXZlIixbeWwoe29wYWNpdHk6MH0pXSldKSwkaCgic3Bpbm5lciIsW2J1KCI6ZW50ZXIiLFt5bCh7b3BhY2l0eTowfSksRGMoIjIwMG1zIDEwMG1zIGVhc2UtaW4iLHlsKHtvcGFjaXR5OjF9''@;'; + put 'put ''KSldKSxidSgiOmxlYXZlIixbeWwoe29wYWNpdHk6MX0pLERjKCIxMDBtcyBlYXNlLW91dCIseWwoe29wYWNpdHk6MH0pKV0pXSksJGgoInZhbGlkYXRlZCIsW2J1KCI6ZW50ZXIiLFtEYygiNjAwbXMiLGEyZShbeWwoe3RyYW5zZm9ybToic2NhbGUoMCwwKSIsb2Zmc2V0OjB9KSx5bCh7b3Bh''@;'; + put 'put ''Y2l0eToxLG9mZnNldDouMn0pLHlsKHt0cmFuc2Zvcm06InNjYWxlKDEuMiwxLjIpIixvZmZzZXQ6LjR9KSx5bCh7dHJhbnNmb3JtOiJzY2FsZSguOSwuOSkiLG9mZnNldDouNn0pLHlsKHt0cmFuc2Zvcm06InNjYWxlKDEsMSkiLG9mZnNldDoxfSldKSldKSxidSgiOmxlYXZlIixbeWwoe29w''@;'; + put 'put ''YWNpdHk6MX0pLERjKCIxMDBtcyBlYXNlLW91dCIseWwoe29wYWNpdHk6MH0pKV0pXSldfX0pLGR9KSgpLGs9KCgpPT57Y2xhc3MgZHt9cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1bW9kPWNvKHt0eXBlOmR9KSxkLlx1MDI3NWluaj1i''@;'; + put 'put ''MCh7aW1wb3J0czpbW2JhXV19KSxkfSkoKSxNPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoKXtmcy5hZGRJY29ucyhjVil9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1MDI3NW1vZD1jbyh7dHlwZTpkfSksZC5cdTAyNzVpbmo9YjAoe2lt''@;'; + put 'put ''cG9ydHM6W2ssbV19KSxkfSkoKSxEPSgoKT0+e2NsYXNzIGR7fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1MDI3NWNtcD1UaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJuZy1jb21wb25lbnQiXV0sZGVjbHM6MCx2YXJzOjAsdGVtcGxhdGU6ZnVu''@;'; + put 'put ''Y3Rpb24oaCx2KXt9LGVuY2Fwc3VsYXRpb246Mn0pLGR9KSgpLFI9KCgpPT57Y2xhc3MgZHt9cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1bW9kPWNvKHt0eXBlOmR9KSxkLlx1MDI3NWluaj1iMCh7fSksZH0pKCksRz0wLEs9KCgpPT57''@;'; + put 'put ''Y2xhc3MgZHtjb25zdHJ1Y3Rvcigpe3RoaXMuX2lkPSJjbHItZm9ybS1jb250cm9sLSIrICsrRyx0aGlzLl9pZENoYW5nZT1uZXcgY3ModGhpcy5faWQpfWdldCBpZCgpe3JldHVybiB0aGlzLl9pZH1zZXQgaWQoaCl7dGhpcy5faWQ9aCx0aGlzLl9pZENoYW5nZS5uZXh0KGgpfWdldCBpZENo''@;'; + put 'put ''YW5nZSgpe3JldHVybiB0aGlzLl9pZENoYW5nZS5hc09ic2VydmFibGUoKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1ZmFjfSksZH0pKCkscGU9MCxnZT0oKCk9PntjbGFz''@;'; + put 'put ''cyBke2NvbnN0cnVjdG9yKCl7dGhpcy5faWQ9ImNsci1mb3JtLWNvbnRhaW5lci0iKyArK3BlLHRoaXMuX2lkQ2hhbmdlPW5ldyBjcyh0aGlzLl9pZCl9Z2V0IGlkKCl7cmV0dXJuIHRoaXMuX2lkfXNldCBpZChoKXt0aGlzLl9pZD1oLHRoaXMuX2lkQ2hhbmdlLm5leHQoaCl9Z2V0IGlkQ2hh''@;'; + put 'put ''bmdlKCl7cmV0dXJuIHRoaXMuX2lkQ2hhbmdlLmFzT2JzZXJ2YWJsZSgpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVwcm92PUFpKHt0b2tlbjpkLGZhY3Rvcnk6ZC5cdTAyNzVmYWN9KSxkfSkoKTtsZXQgT2U9KCgpPT57Y2xhc3Mg''@;'; + put 'put ''ZHtjb25zdHJ1Y3RvcihoLHYpe3RoaXMuY29udHJvbElkU2VydmljZT1oLHRoaXMuY29udGFpbmVySWRTZXJ2aWNlPXYsdGhpcy5jb250cm9sSWRTdWZmaXg9ImFic3RyYWN0In1nZXQgaWQoKXtyZXR1cm4gdGhpcy5jb250YWluZXJJZFNlcnZpY2U/YCR7dGhpcy5jb250YWluZXJJZFNlcnZp''@;'; + put 'put ''Y2UuaWR9LSR7dGhpcy5jb250cm9sSWRTdWZmaXh9YDp0aGlzLmNvbnRyb2xJZFNlcnZpY2U/YCR7dGhpcy5jb250cm9sSWRTZXJ2aWNlLmlkfS0ke3RoaXMuY29udHJvbElkU3VmZml4fWA6bnVsbH19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoS3Qo''@;'; + put 'put ''Syw4KSxLdChnZSw4KSl9LGQuXHUwMjc1ZGlyPVdpKHt0eXBlOmR9KSxkfSkoKSxMZT0oKCk9PntjbGFzcyBkIGV4dGVuZHMgT2V7Y29uc3RydWN0b3IoaCx2KXtzdXBlcihoLHYpLHRoaXMuY29udHJvbElkU2VydmljZT1oLHRoaXMuY29udGFpbmVySWRTZXJ2aWNlPXYsdGhpcy5jb250cm9s''@;'; + put 'put ''SWRTdWZmaXg9ImVycm9yIn19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoS3QoSyw4KSxLdChnZSw4KSl9LGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQsc2VsZWN0b3JzOltbImNsci1jb250cm9sLWVycm9yIl1dLGhvc3RWYXJzOjMsaG9zdEJpbmRpbmdz''@;'; + put 'put ''OmZ1bmN0aW9uKGgsdil7MiZoJiYoR2koImlkIix2LmlkKSxGaSgiY2xyLXN1YnRleHQiLCEwKSl9LGZlYXR1cmVzOltEb10sbmdDb250ZW50U2VsZWN0b3JzOm5hLGRlY2xzOjEsdmFyczowLHRlbXBsYXRlOmZ1bmN0aW9uKGgsdil7MSZoJiYoSzAoKSxOaSgwKSl9LGVuY2Fwc3VsYXRpb246''@;'; + put 'put ''Mn0pLGR9KSgpLFJlPSgoKT0+e2NsYXNzIGQgZXh0ZW5kcyBPZXtjb25zdHJ1Y3RvcihoLHYpe3N1cGVyKGgsdiksdGhpcy5jb250cm9sSWRTZXJ2aWNlPWgsdGhpcy5jb250YWluZXJJZFNlcnZpY2U9dix0aGlzLmNvbnRyb2xJZFN1ZmZpeD0iaGVscGVyIn19cmV0dXJuIGQuXHUwMjc1ZmFj''@;'; + put 'put ''PWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoS3QoSyw4KSxLdChnZSw4KSl9LGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQsc2VsZWN0b3JzOltbImNsci1jb250cm9sLWhlbHBlciJdXSxob3N0VmFyczozLGhvc3RCaW5kaW5nczpmdW5jdGlvbihoLHYpezImaCYmKEdpKCJpZCIsdi5pZCks''@;'; + put 'put ''RmkoImNsci1zdWJ0ZXh0IiwhMCkpfSxmZWF0dXJlczpbRG9dLG5nQ29udGVudFNlbGVjdG9yczpuYSxkZWNsczoxLHZhcnM6MCx0ZW1wbGF0ZTpmdW5jdGlvbihoLHYpezEmaCYmKEswKCksTmkoMCkpfSxlbmNhcHN1bGF0aW9uOjJ9KSxkfSkoKSxIZT0oKCk9PntjbGFzcyBke2NvbnN0cnVj''@;'; + put 'put ''dG9yKCl7dGhpcy5fY29udHJvbENoYW5nZXM9bmV3ICRlLHRoaXMuX2hlbHBlcnM9bmV3ICRlfWdldCBjb250cm9sQ2hhbmdlcygpe3JldHVybiB0aGlzLl9jb250cm9sQ2hhbmdlcy5hc09ic2VydmFibGUoKX1zZXRDb250cm9sKGgpe3RoaXMuX2NvbnRyb2xDaGFuZ2VzLm5leHQoaCl9Z2V0''@;'; + put 'put ''IGhlbHBlcnNDaGFuZ2UoKXtyZXR1cm4gdGhpcy5faGVscGVycy5hc09ic2VydmFibGUoKX1zZXRIZWxwZXJzKGgpe3RoaXMuX2hlbHBlcnMubmV4dChoKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxm''@;'; + put 'put ''YWN0b3J5OmQuXHUwMjc1ZmFjfSksZH0pKCk7dmFyIFZlPSgoKT0+KGZ1bmN0aW9uKGQpe2QuTk9ORT0iTk9ORSIsZC5WQUxJRD0iVkFMSUQiLGQuSU5WQUxJRD0iSU5WQUxJRCJ9KFZlfHwoVmU9e30pKSxWZSkpKCk7bGV0IHFlPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCl7dGhpcy5u''@;'; + put 'put ''Z0NvbnRyb2xTZXJ2aWNlPWgsdGhpcy5zdWJzY3JpcHRpb25zPVtdLHRoaXMuX3N0YXR1c0NoYW5nZXM9bmV3IGNzKFZlLk5PTkUpLHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMubmdDb250cm9sU2VydmljZS5jb250cm9sQ2hhbmdlcy5zdWJzY3JpYmUodj0+e3YmJih0aGlzLmNvbnRy''@;'; + put 'put ''b2w9dix0aGlzLnN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLmNvbnRyb2wuc3RhdHVzQ2hhbmdlcy5zdWJzY3JpYmUoKCk9Pnt0aGlzLnRyaWdnZXJTdGF0dXNDaGFuZ2UoKX0pKSl9KSl9Z2V0IHN0YXR1c0NoYW5nZXMoKXtyZXR1cm4gdGhpcy5fc3RhdHVzQ2hhbmdlcy5hc09ic2VydmFibGUo''@;'; + put 'put ''KX10cmlnZ2VyU3RhdHVzQ2hhbmdlKCl7aWYodGhpcy5jb250cm9sKXtjb25zdCBoPVZlW3RoaXMuY29udHJvbC5zdGF0dXNdO3RoaXMuX3N0YXR1c0NoYW5nZXMubmV4dCh0aGlzLmNvbnRyb2wudG91Y2hlZCYmWyJWQUxJRCIsIklOVkFMSUQiXS5pbmNsdWRlcyhoKT9oOlZlLk5PTkUpfX1u''@;'; + put 'put ''Z09uRGVzdHJveSgpe3RoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKGg9PmgudW5zdWJzY3JpYmUoKSl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKENpKEhlKSl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1ZmFjfSks''@;'; + put 'put ''ZH0pKCk7dmFyIG50PSgoKT0+KGZ1bmN0aW9uKGQpe2QuVkVSVElDQUw9InZlcnRpY2FsIixkLkhPUklaT05UQUw9Imhvcml6b250YWwiLGQuQ09NUEFDVD0iY29tcGFjdCJ9KG50fHwobnQ9e30pKSxudCkpKCk7bGV0IFdlPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoKXt0aGlzLm1pbkxh''@;'; + put 'put ''YmVsU2l6ZT0xLHRoaXMubWF4TGFiZWxTaXplPTEyLHRoaXMubGF5b3V0PW50LkhPUklaT05UQUwsdGhpcy5sYXlvdXRWYWx1ZXM9T2JqZWN0LmtleXMobnQpLm1hcChoPT5udFtoXSksdGhpcy5fbGFiZWxTaXplPTJ9c2V0IGxhYmVsU2l6ZShoKXt0aGlzLmxhYmVsU2l6ZUlzVmFsaWQoaCkm''@;'; + put 'put ''Jih0aGlzLl9sYWJlbFNpemU9aCl9Z2V0IGxhYmVsU2l6ZSgpe3JldHVybiB0aGlzLl9sYWJlbFNpemV9aXNWZXJ0aWNhbCgpe3JldHVybiB0aGlzLmxheW91dD09PW50LlZFUlRJQ0FMfWlzSG9yaXpvbnRhbCgpe3JldHVybiB0aGlzLmxheW91dD09PW50LkhPUklaT05UQUx9aXNDb21wYWN0''@;'; + put 'put ''KCl7cmV0dXJuIHRoaXMubGF5b3V0PT09bnQuQ09NUEFDVH1nZXQgbGF5b3V0Q2xhc3MoKXtyZXR1cm5gY2xyLWZvcm0tJHt0aGlzLmxheW91dH1gfWlzVmFsaWQoaCl7cmV0dXJuIHRoaXMubGF5b3V0VmFsdWVzLmluZGV4T2YoaCk+LTF9bGFiZWxTaXplSXNWYWxpZChoKXtyZXR1cm4gTnVt''@;'; + put 'put ''YmVyLmlzSW50ZWdlcihoKSYmaD49dGhpcy5taW5MYWJlbFNpemUmJmg8PXRoaXMubWF4TGFiZWxTaXplfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVwcm92PUFpKHt0b2tlbjpkLGZhY3Rvcnk6ZC5cdTAyNzVmYWN9KSxkfSkoKSxv''@;'; + put 'put ''dD0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgsdix5LEMsSSl7dGhpcy5jb250cm9sSWRTZXJ2aWNlPWgsdGhpcy5sYXlvdXRTZXJ2aWNlPXYsdGhpcy5uZ0NvbnRyb2xTZXJ2aWNlPXksdGhpcy5yZW5kZXJlcj1DLHRoaXMuZWw9SSx0aGlzLnN1YnNjcmlwdGlvbnM9W10sdGhpcy5lbmFi''@;'; + put 'put ''bGVHcmlkPSEwfWdldCBsYWJlbFRleHQoKXtyZXR1cm4gdGhpcy5lbC5uYXRpdmVFbGVtZW50JiZ0aGlzLmVsLm5hdGl2ZUVsZW1lbnQudGV4dENvbnRlbnR9bmdPbkluaXQoKXsodGhpcy5jb250cm9sSWRTZXJ2aWNlfHx0aGlzLm5nQ29udHJvbFNlcnZpY2UpJiZ0aGlzLnJlbmRlcmVyLmFk''@;'; + put 'put ''ZENsYXNzKHRoaXMuZWwubmF0aXZlRWxlbWVudCwiY2xyLWNvbnRyb2wtbGFiZWwiKSx0aGlzLmVuYWJsZUdyaWQmJnRoaXMubGF5b3V0U2VydmljZSYmIXRoaXMubGF5b3V0U2VydmljZS5pc1ZlcnRpY2FsKCkmJnRoaXMuZWwubmF0aXZlRWxlbWVudCYmdGhpcy5lbC5uYXRpdmVFbGVtZW50''@;'; + put 'put ''LmNsYXNzTmFtZS5pbmRleE9mKCJjbHItY29sIik8MCYmKHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5lbC5uYXRpdmVFbGVtZW50LCJjbHItY29sLTEyIiksdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsYGNsci1jb2wtbWQtJHt0aGlzLmxheW91dFNl''@;'; + put 'put ''cnZpY2UubGFiZWxTaXplfWApKSx0aGlzLmNvbnRyb2xJZFNlcnZpY2UmJiF0aGlzLmZvckF0dHImJnRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMuY29udHJvbElkU2VydmljZS5pZENoYW5nZS5zdWJzY3JpYmUoaD0+dGhpcy5mb3JBdHRyPWgpKX1kaXNhYmxlR3JpZCgpe3RoaXMuZW5h''@;'; + put 'put ''YmxlR3JpZD0hMX1uZ09uRGVzdHJveSgpe3RoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKGg9PmgudW5zdWJzY3JpYmUoKSl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKEt0KEssOCksS3QoV2UsOCksS3QoSGUsOCksS3QoR2EpLEt0KGJvKSl9LGQu''@;'; + put 'put ''XHUwMjc1ZGlyPVdpKHt0eXBlOmQsc2VsZWN0b3JzOltbImxhYmVsIl1dLGhvc3RWYXJzOjEsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGgsdil7MiZoJiZHaSgiZm9yIix2LmZvckF0dHIpfSxpbnB1dHM6e2ZvckF0dHI6WyJmb3IiLCJmb3JBdHRyIl19fSksZH0pKCksU3Q9KCgpPT57Y2xhc3Mg''@;'; + put 'put ''ZCBleHRlbmRzIE9le2NvbnN0cnVjdG9yKGgsdil7c3VwZXIoaCx2KSx0aGlzLmNvbnRyb2xJZFNlcnZpY2U9aCx0aGlzLmNvbnRhaW5lcklkU2VydmljZT12LHRoaXMuY29udHJvbElkU3VmZml4PSJzdWNjZXNzIn19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXco''@;'; + put 'put ''aHx8ZCkoS3QoSyw4KSxLdChnZSw4KSl9LGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQsc2VsZWN0b3JzOltbImNsci1jb250cm9sLXN1Y2Nlc3MiXV0saG9zdFZhcnM6Myxob3N0QmluZGluZ3M6ZnVuY3Rpb24oaCx2KXsyJmgmJihHaSgiaWQiLHYuaWQpLEZpKCJjbHItc3VidGV4dCIsITApKX0s''@;'; + put 'put ''ZmVhdHVyZXM6W0RvXSxuZ0NvbnRlbnRTZWxlY3RvcnM6bmEsZGVjbHM6MSx2YXJzOjAsdGVtcGxhdGU6ZnVuY3Rpb24oaCx2KXsxJmgmJihLMCgpLE5pKDApKX0sZW5jYXBzdWxhdGlvbjoyfSksZH0pKCksRXQ9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoKXt0aGlzLmxheW91dFNlcnZp''@;'; + put 'put ''Y2U9aCx0aGlzLmNsYXNzTmFtZT0iIn1jb250cm9sQ2xhc3MoaD1WZS5OT05FLHY9ITEseT0iIil7Y29uc3QgQz1bdGhpcy5jbGFzc05hbWUseV07c3dpdGNoKGgpe2Nhc2UgVmUuVkFMSUQ6Qy5wdXNoKCJjbHItc3VjY2VzcyIpO2JyZWFrO2Nhc2UgVmUuSU5WQUxJRDpDLnB1c2goImNsci1l''@;'; + put 'put ''cnJvciIpfXJldHVybiB2JiZ0aGlzLmxheW91dFNlcnZpY2UmJi0xPT09dGhpcy5jbGFzc05hbWUuaW5kZXhPZigiY2xyLWNvbCIpJiZDLnB1c2goYGNsci1jb2wtbWQtJHt0aGlzLmxheW91dFNlcnZpY2UubWF4TGFiZWxTaXplLXRoaXMubGF5b3V0U2VydmljZS5sYWJlbFNpemV9IGNsci1j''@;'; + put 'put ''b2wtMTJgKSxDLmpvaW4oIiAiKS50cmltKCl9aW5pdENvbnRyb2xDbGFzcyhoLHYpe3YmJnYuY2xhc3NOYW1lJiYodGhpcy5jbGFzc05hbWU9di5jbGFzc05hbWUsdi5jbGFzc05hbWUuc3BsaXQoIiAiKS5mb3JFYWNoKEM9PntDLnN0YXJ0c1dpdGgoImNsci1jb2wiKSYmaC5yZW1vdmVDbGFz''@;'; + put 'put ''cyh2LEMpfSkpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShDaShXZSw4KSl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1ZmFjfSksZH0pKCksWnQ9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYseSxDKXt0aGlz''@;'; + put 'put ''LmlmQ29udHJvbFN0YXRlU2VydmljZT1oLHRoaXMubGF5b3V0U2VydmljZT12LHRoaXMuY29udHJvbENsYXNzU2VydmljZT15LHRoaXMubmdDb250cm9sU2VydmljZT1DLHRoaXMuc3Vic2NyaXB0aW9ucz1bXSx0aGlzLl9keW5hbWljPSExLHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMu''@;'; + put 'put ''aWZDb250cm9sU3RhdGVTZXJ2aWNlLnN0YXR1c0NoYW5nZXMuc3Vic2NyaWJlKEk9Pnt0aGlzLnN0YXRlPUksdGhpcy51cGRhdGVIZWxwZXJzKCl9KSksdGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy5uZ0NvbnRyb2xTZXJ2aWNlLmNvbnRyb2xDaGFuZ2VzLnN1YnNjcmliZShJPT57dGhp''@;'; + put 'put ''cy5jb250cm9sPUl9KSl9Z2V0IHNob3dIZWxwZXIoKXtyZXR1cm4hIXRoaXMuY29udHJvbEhlbHBlckNvbXBvbmVudCYmKCEhdGhpcy5jb250cm9sSGVscGVyQ29tcG9uZW50JiZ0aGlzLnN0YXRlPT09VmUuTk9ORXx8IXRoaXMuY29udHJvbFN1Y2Nlc3NDb21wb25lbnQmJnRoaXMuc3RhdGU9''@;'; + put 'put ''PT1WZS5WQUxJRHx8IXRoaXMuY29udHJvbEVycm9yQ29tcG9uZW50JiZ0aGlzLnN0YXRlPT09VmUuSU5WQUxJRCl9Z2V0IHNob3dWYWxpZCgpe3JldHVybiB0aGlzLnN0YXRlPT09VmUuVkFMSUQmJiEhdGhpcy5jb250cm9sU3VjY2Vzc0NvbXBvbmVudH1nZXQgc2hvd0ludmFsaWQoKXtyZXR1''@;'; + put 'put ''cm4gdGhpcy5zdGF0ZT09PVZlLklOVkFMSUQmJiEhdGhpcy5jb250cm9sRXJyb3JDb21wb25lbnR9bmdBZnRlckNvbnRlbnRJbml0KCl7dGhpcy51cGRhdGVIZWxwZXJzKCl9bmdPbkRlc3Ryb3koKXt0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChoPT5oLnVuc3Vic2NyaWJlKCkpfWNvbnRy''@;'; + put 'put ''b2xDbGFzcygpe3JldHVybiB0aGlzLmNvbnRyb2xDbGFzc1NlcnZpY2UuY29udHJvbENsYXNzKHRoaXMuY29udHJvbFN1Y2Nlc3NDb21wb25lbnR8fHRoaXMuc3RhdGUhPT1WZS5WQUxJRD90aGlzLnN0YXRlOlZlLk5PTkUsdGhpcy5hZGRHcmlkKCkpfWFkZEdyaWQoKXtyZXR1cm4gdGhpcy5s''@;'; + put 'put ''YXlvdXRTZXJ2aWNlJiYhdGhpcy5sYXlvdXRTZXJ2aWNlLmlzVmVydGljYWwoKX11cGRhdGVIZWxwZXJzKCl7dGhpcy5uZ0NvbnRyb2xTZXJ2aWNlJiZ0aGlzLm5nQ29udHJvbFNlcnZpY2Uuc2V0SGVscGVycyh7c2hvdzp0aGlzLnNob3dJbnZhbGlkfHx0aGlzLnNob3dIZWxwZXJ8fHRoaXMu''@;'; + put 'put ''c2hvd1ZhbGlkLHNob3dJbnZhbGlkOnRoaXMuc2hvd0ludmFsaWQsc2hvd0hlbHBlcjp0aGlzLnNob3dIZWxwZXIsc2hvd1ZhbGlkOnRoaXMuc2hvd1ZhbGlkfSl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKEt0KHFlKSxLdChXZSw4KSxLdChFdCks''@;'; + put 'put ''S3QoSGUpKX0sZC5cdTAyNzVkaXI9V2koe3R5cGU6ZCxjb250ZW50UXVlcmllczpmdW5jdGlvbihoLHYseSl7aWYoMSZoJiYoeG8oeSxvdCw1KSx4byh5LFN0LDUpLHhvKHksTGUsNSkseG8oeSxSZSw1KSksMiZoKXtsZXQgQztIaShDPSRpKCkpJiYodi5sYWJlbD1DLmZpcnN0KSxIaShDPSRp''@;'; + put 'put ''KCkpJiYodi5jb250cm9sU3VjY2Vzc0NvbXBvbmVudD1DLmZpcnN0KSxIaShDPSRpKCkpJiYodi5jb250cm9sRXJyb3JDb21wb25lbnQ9Qy5maXJzdCksSGkoQz0kaSgpKSYmKHYuY29udHJvbEhlbHBlckNvbXBvbmVudD1DLmZpcnN0KX19fSksZH0pKCk7Y2xhc3MgYnR7Y29uc3RydWN0b3Io''@;'; + put 'put ''ZyxoLHY9MCl7aWYodGhpcy5pbmplY3Rvcj1oLmluamVjdG9yLCF0aGlzLmluamVjdG9yLmdldChnLG51bGwpKXtjb25zdCB5PXRoaXMuaW5qZWN0b3IuZ2V0KE1kKSxDPXRoaXMuaW5qZWN0b3IuZ2V0KGJvKTtoLmNyZWF0ZUNvbXBvbmVudCh5LnJlc29sdmVDb21wb25lbnRGYWN0b3J5KEQp''@;'; + put 'put ''KTtjb25zdCBJPXkucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoZyksaj1bXTtqW3ZdPVtDLm5hdGl2ZUVsZW1lbnRdO2NvbnN0IHVlPWguY3JlYXRlQ29tcG9uZW50KEksdm9pZCAwLHZvaWQgMCxqKTtoLnJlbW92ZSgwKSx1ZS5pbnN0YW5jZS5fZHluYW1pYz0hMCx0aGlzLmluamVjdG9yPXVl''@;'; + put 'put ''LmluamVjdG9yfX1nZXQoZyxoKXtyZXR1cm4gdGhpcy5pbmplY3Rvci5nZXQoZyxoKX19bGV0IGFuPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoKXt0aGlzLl90b3VjaGVkPW5ldyAkZX1nZXQgdG91Y2hlZENoYW5nZSgpe3JldHVybiB0aGlzLl90b3VjaGVkLmFzT2JzZXJ2YWJsZSgpfW1h''@;'; + put 'put ''cmtBc1RvdWNoZWQoKXt0aGlzLl90b3VjaGVkLm5leHQoKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1ZmFjfSksZH0pKCksU249KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3Rv''@;'; + put 'put ''cihoLHYseSxDLEksail7dGhpcy52Y3I9aCx0aGlzLndyYXBwZXJUeXBlPXYsdGhpcy5uZ0NvbnRyb2w9Qyx0aGlzLnN1YnNjcmlwdGlvbnM9W10sdGhpcy5pbmRleD0wLHRoaXMucmVuZGVyZXI9SSx0aGlzLmVsPWo7dHJ5e3RoaXMubmdDb250cm9sU2VydmljZT15LmdldChIZSksdGhpcy5p''@;'; + put 'put ''ZkNvbnRyb2xTdGF0ZVNlcnZpY2U9eS5nZXQocWUpLHRoaXMuY29udHJvbENsYXNzU2VydmljZT15LmdldChFdCksdGhpcy5tYXJrQ29udHJvbFNlcnZpY2U9eS5nZXQoYW4pfWNhdGNoKHVlKXt9dGhpcy5jb250cm9sQ2xhc3NTZXJ2aWNlJiZ0aGlzLmNvbnRyb2xDbGFzc1NlcnZpY2UuaW5p''@;'; + put 'put ''dENvbnRyb2xDbGFzcyhJLGoubmF0aXZlRWxlbWVudCksdGhpcy5tYXJrQ29udHJvbFNlcnZpY2UmJnRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMubWFya0NvbnRyb2xTZXJ2aWNlLnRvdWNoZWRDaGFuZ2Uuc3Vic2NyaWJlKCgpPT57dGhpcy5tYXJrQXNUb3VjaGVkKCl9KSksdGhpcy5u''@;'; + put 'put ''Z0NvbnRyb2xTZXJ2aWNlJiZ0aGlzLnN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLm5nQ29udHJvbFNlcnZpY2UuaGVscGVyc0NoYW5nZS5zdWJzY3JpYmUodWU9Pnt0aGlzLnNldEFyaWFEZXNjcmliZWRCeSh1ZSl9KSl9Z2V0IGlkKCl7cmV0dXJuIHRoaXMuX2lkfXNldCBpZChoKXt0aGlzLl9p''@;'; + put 'put ''ZD1oLHRoaXMuY29udHJvbElkU2VydmljZSYmKHRoaXMuY29udHJvbElkU2VydmljZS5pZD1oKX10cmlnZ2VyVmFsaWRhdGlvbigpe3RoaXMuaWZDb250cm9sU3RhdGVTZXJ2aWNlJiYodGhpcy5uZ0NvbnRyb2wmJiF0aGlzLm5nQ29udHJvbC50b3VjaGVkJiZ0aGlzLm1hcmtBc1RvdWNoZWQo''@;'; + put 'put ''KSx0aGlzLmlmQ29udHJvbFN0YXRlU2VydmljZS50cmlnZ2VyU3RhdHVzQ2hhbmdlKCkpfW1hcmtBc1RvdWNoZWQoKXt0aGlzLm5nQ29udHJvbC5jb250cm9sLm1hcmtBc1RvdWNoZWQoKSx0aGlzLm5nQ29udHJvbC5jb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKX1nZXRQcm92aWRl''@;'; + put 'put ''ckZyb21Db250YWluZXIoaCx2KXt0cnl7cmV0dXJuIHRoaXMuX2NvbnRhaW5lckluamVjdG9yLmdldChoLHYpfWNhdGNoKHkpe3JldHVybiB2fX1uZ09uSW5pdCgpe3RoaXMuX2NvbnRhaW5lckluamVjdG9yPW5ldyBidCh0aGlzLndyYXBwZXJUeXBlLHRoaXMudmNyLHRoaXMuaW5kZXgpLHRo''@;'; + put 'put ''aXMuY29udHJvbElkU2VydmljZT10aGlzLl9jb250YWluZXJJbmplY3Rvci5nZXQoSyk7dHJ5e3RoaXMuY29udGFpbmVySWRTZXJ2aWNlPXRoaXMuX2NvbnRhaW5lckluamVjdG9yLmdldChnZSl9Y2F0Y2goaCl7fXRoaXMuX2lkP3RoaXMuY29udHJvbElkU2VydmljZS5pZD10aGlzLl9pZDp0''@;'; + put 'put ''aGlzLl9pZD10aGlzLmNvbnRyb2xJZFNlcnZpY2UuaWQsdGhpcy5uZ0NvbnRyb2xTZXJ2aWNlJiZ0aGlzLm5nQ29udHJvbFNlcnZpY2Uuc2V0Q29udHJvbCh0aGlzLm5nQ29udHJvbCl9bmdPbkRlc3Ryb3koKXt0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChoPT5oLnVuc3Vic2NyaWJlKCkp''@;'; + put 'put ''fXNldEFyaWFEZXNjcmliZWRCeShoKXtpZihoLnNob3cpe2NvbnN0IHY9dGhpcy5nZXRBcmlhRGVzY3JpYmVkQnlJZChoKTtpZihudWxsIT09dilyZXR1cm4gdm9pZCB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZSh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsImFyaWEtZGVzY3JpYmVkYnkiLHYp''@;'; + put 'put ''fXRoaXMucmVuZGVyZXIucmVtb3ZlQXR0cmlidXRlKHRoaXMuZWwubmF0aXZlRWxlbWVudCwiYXJpYS1kZXNjcmliZWRieSIpfWdldEFyaWFEZXNjcmliZWRCeUlkKGgpe2xldCB2PSJoZWxwZXIiO3JldHVybiBoLnNob3dJbnZhbGlkP3Y9ImVycm9yIjpoLnNob3dWYWxpZCYmKHY9InN1Y2Nl''@;'; + put 'put ''c3MiKSx0aGlzLmNvbnRhaW5lcklkU2VydmljZT90aGlzLmNvbnRhaW5lcklkU2VydmljZS5pZC5jb25jYXQoIi0iLHYpOnRoaXMuY29udHJvbElkU2VydmljZT90aGlzLmNvbnRyb2xJZFNlcnZpY2UuaWQuY29uY2F0KCItIix2KTpudWxsfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24o''@;'; + put 'put ''aCl7cmV0dXJuIG5ldyhofHxkKShLdChVaSksS3QoV2MpLEt0KGtzKSxLdChEZiksS3QoR2EpLEt0KGJvKSl9LGQuXHUwMjc1ZGlyPVdpKHt0eXBlOmQsaG9zdFZhcnM6MSxob3N0QmluZGluZ3M6ZnVuY3Rpb24oaCx2KXsxJmgmJkduKCJibHVyIixmdW5jdGlvbigpe3JldHVybiB2LnRyaWdn''@;'; + put 'put ''ZXJWYWxpZGF0aW9uKCl9KSwyJmgmJlAzKCJpZCIsdi5pZCl9LGlucHV0czp7aWQ6ImlkIn19KSxkfSkoKSx1cj0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgsdil7dGhpcy5sYXlvdXRTZXJ2aWNlPWgsdGhpcy5tYXJrQ29udHJvbFNlcnZpY2U9dn1zZXQgbGFiZWxTaXplKGgpe2NvbnN0''@;'; + put 'put ''IHY9cGFyc2VJbnQoaCwxMCl8fDI7dGhpcy5sYXlvdXRTZXJ2aWNlLmxhYmVsU2l6ZT12fW1hcmtBc1RvdWNoZWQoKXt0aGlzLm1hcmtDb250cm9sU2VydmljZS5tYXJrQXNUb3VjaGVkKCl9b25Gb3JtU3VibWl0KCl7dGhpcy5tYXJrQXNUb3VjaGVkKCl9fXJldHVybiBkLlx1MDI3NWZhYz1m''@;'; + put 'put ''dW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKEt0KFdlKSxLdChhbikpfSxkLlx1MDI3NWRpcj1XaSh7dHlwZTpkLHNlbGVjdG9yczpbWyIiLCJjbHJGb3JtIiwiIl1dLGNvbnRlbnRRdWVyaWVzOmZ1bmN0aW9uKGgsdix5KXtpZigxJmgmJnhvKHksb3QsNSksMiZoKXtsZXQgQztIaShDPSRp''@;'; + put 'put ''KCkpJiYodi5sYWJlbHM9Qyl9fSxob3N0VmFyczo2LGhvc3RCaW5kaW5nczpmdW5jdGlvbihoLHYpezEmaCYmR24oInN1Ym1pdCIsZnVuY3Rpb24oKXtyZXR1cm4gdi5vbkZvcm1TdWJtaXQoKX0pLDImaCYmRmkoImNsci1mb3JtIiwhMCkoImNsci1mb3JtLWhvcml6b250YWwiLHYubGF5b3V0''@;'; + put 'put ''U2VydmljZS5pc0hvcml6b250YWwoKSkoImNsci1mb3JtLWNvbXBhY3QiLHYubGF5b3V0U2VydmljZS5pc0NvbXBhY3QoKSl9LGlucHV0czp7bGFiZWxTaXplOlsiY2xyTGFiZWxTaXplIiwibGFiZWxTaXplIl19LGZlYXR1cmVzOltobyhbV2UsYW5dKV19KSxkfSkoKSxKcj0oKCk9PntjbGFz''@;'; + put 'put ''cyBke2NvbnN0cnVjdG9yKCl7ZnMuYWRkSWNvbnMoS2gsVGYpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVtb2Q9Y28oe3R5cGU6ZH0pLGQuXHUwMjc1aW5qPWIwKHtpbXBvcnRzOltbYmEsSXNdXX0pLGR9KSgpO2NvbnN0IExyPW5l''@;'; + put 'put ''dyB6ZSgiSVNfVE9HR0xFIiksVmk9e3Byb3ZpZGU6THIsdXNlRmFjdG9yeTpmdW5jdGlvbiBsMCgpe3JldHVybiBuZXcgY3MoITEpfX07bGV0IE9pPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCl7dGhpcy5fZHluYW1pYz0hMSx0aGlzLnRvZ2dsZT0hMSx0aGlzLnN1YnNjcmlwdGlvbnM9''@;'; + put 'put ''W10sdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goaC5zdWJzY3JpYmUodj0+e3RoaXMudG9nZ2xlPXZ9KSl9bmdPbkluaXQoKXt0aGlzLmxhYmVsJiZ0aGlzLmxhYmVsLmRpc2FibGVHcmlkKCl9bmdPbkRlc3Ryb3koKXt0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChoPT5oLnVuc3Vic2NyaWJl''@;'; + put 'put ''KCkpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShLdChMcikpfSxkLlx1MDI3NWNtcD1UaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJjbHItY2hlY2tib3gtd3JhcHBlciJdLFsiY2xyLXRvZ2dsZS13cmFwcGVyIl1dLGNvbnRlbnRRdWVyaWVzOmZ1bmN0''@;'; + put 'put ''aW9uKGgsdix5KXtpZigxJmgmJnhvKHksb3QsNyksMiZoKXtsZXQgQztIaShDPSRpKCkpJiYodi5sYWJlbD1DLmZpcnN0KX19LGhvc3RWYXJzOjQsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGgsdil7MiZoJiZGaSgiY2xyLWNoZWNrYm94LXdyYXBwZXIiLCF2LnRvZ2dsZSkoImNsci10b2dnbGUt''@;'; + put 'put ''d3JhcHBlciIsdi50b2dnbGUpfSxmZWF0dXJlczpbaG8oW0ssVmldKV0sbmdDb250ZW50U2VsZWN0b3JzOlN1ZSxkZWNsczozLHZhcnM6MSxjb25zdHM6W1s0LCJuZ0lmIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGgsdil7MSZoJiYoSzAoa3VlKSxOaSgwKSxOaSgxLDEpLHJuKDIsQ3VlLDEsMCwi''@;'; + put 'put ''bGFiZWwiLDApKSwyJmgmJih1dCgyKSxUdCgibmdJZiIsIXYubGFiZWwpKX0sZGVwZW5kZW5jaWVzOltObyxvdF0sZW5jYXBzdWxhdGlvbjoyfSksZH0pKCksUm89KCgpPT57Y2xhc3MgZCBleHRlbmRzIFNue2NvbnN0cnVjdG9yKGgsdix5LEMsSSxqKXtzdXBlcihoLE9pLHYseSxDLEkpLHRo''@;'; + put 'put ''aXMudG9nZ2xlPWp9bmdPbkluaXQoKXtzdXBlci5uZ09uSW5pdCgpO2NvbnN0IGg9dGhpcy5nZXRQcm92aWRlckZyb21Db250YWluZXIoTHIsbnVsbCk7aCYmbnVsbCE9PXRoaXMudG9nZ2xlJiZoLm5leHQoITApfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyho''@;'; + put 'put ''fHxkKShLdChVaSksS3Qoa3MpLEt0KERmLDEwKSxLdChHYSksS3QoYm8pLGczKCJjbHJUb2dnbGUiKSl9LGQuXHUwMjc1ZGlyPVdpKHt0eXBlOmQsc2VsZWN0b3JzOltbIiIsImNsckNoZWNrYm94IiwiIl0sWyIiLCJjbHJUb2dnbGUiLCIiXV0sZmVhdHVyZXM6W0RvXX0pLGR9KSgpLGxvPSgo''@;'; + put 'put ''KT0+e2NsYXNzIGQgZXh0ZW5kcyBadHtjb25zdHJ1Y3RvcihoLHYseSxDKXtzdXBlcihDLGgsdix5KSx0aGlzLmxheW91dFNlcnZpY2U9aCx0aGlzLmNvbnRyb2xDbGFzc1NlcnZpY2U9dix0aGlzLm5nQ29udHJvbFNlcnZpY2U9eSx0aGlzLmlmQ29udHJvbFN0YXRlU2VydmljZT1DLHRoaXMu''@;'; + put 'put ''aW5saW5lPSExfXNldCBjbHJJbmxpbmUoaCl7dGhpcy5pbmxpbmU9InN0cmluZyI9PXR5cGVvZiBoPyJmYWxzZSIhPT1oOiEhaH1nZXQgY2xySW5saW5lKCl7cmV0dXJuIHRoaXMuaW5saW5lfW5nQWZ0ZXJDb250ZW50SW5pdCgpe3RoaXMuc2V0QXJpYVJvbGVzKCl9c2V0QXJpYVJvbGVzKCl7''@;'; + put 'put ''dGhpcy5yb2xlPXRoaXMuY2hlY2tib3hlcy5sZW5ndGg/Imdyb3VwIjpudWxsfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShLdChXZSw4KSxLdChFdCksS3QoSGUpLEt0KHFlKSl9LGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQsc2VsZWN0b3JzOltbImNs''@;'; + put 'put ''ci1jaGVja2JveC1jb250YWluZXIiXSxbImNsci10b2dnbGUtY29udGFpbmVyIl1dLGNvbnRlbnRRdWVyaWVzOmZ1bmN0aW9uKGgsdix5KXtpZigxJmgmJnhvKHksUm8sNSksMiZoKXtsZXQgQztIaShDPSRpKCkpJiYodi5jaGVja2JveGVzPUMpfX0saG9zdFZhcnM6Nyxob3N0QmluZGluZ3M6''@;'; + put 'put ''ZnVuY3Rpb24oaCx2KXsyJmgmJihHaSgicm9sZSIsdi5yb2xlKSxGaSgiY2xyLWZvcm0tY29udHJvbCIsITApKCJjbHItZm9ybS1jb250cm9sLWRpc2FibGVkIixudWxsPT12LmNvbnRyb2w/bnVsbDp2LmNvbnRyb2wuZGlzYWJsZWQpKCJjbHItcm93Iix2LmFkZEdyaWQoKSkpfSxpbnB1dHM6''@;'; + put 'put ''e2NscklubGluZToiY2xySW5saW5lIn0sZmVhdHVyZXM6W2hvKFtxZSxIZSxFdCxnZV0pLERvXSxuZ0NvbnRlbnRTZWxlY3RvcnM6T3VlLGRlY2xzOjEwLHZhcnM6OSxjb25zdHM6W1s0LCJuZ0lmIl0sWzEsImNsci1jb250cm9sLWNvbnRhaW5lciIsMywibmdDbGFzcyJdLFsxLCJjbHItc3Vi''@;'; + put 'put ''dGV4dC13cmFwcGVyIl0sWyJjbGFzcyIsImNsci12YWxpZGF0ZS1pY29uIiwic3RhdHVzIiwiZGFuZ2VyIiwic2hhcGUiLCJleGNsYW1hdGlvbi1jaXJjbGUiLCJhcmlhLWhpZGRlbiIsInRydWUiLDQsIm5nSWYiXSxbImNsYXNzIiwiY2xyLXZhbGlkYXRlLWljb24iLCJzdGF0dXMiLCJzdWNj''@;'; + put 'put ''ZXNzIiwic2hhcGUiLCJjaGVjay1jaXJjbGUiLCJhcmlhLWhpZGRlbiIsInRydWUiLDQsIm5nSWYiXSxbInN0YXR1cyIsImRhbmdlciIsInNoYXBlIiwiZXhjbGFtYXRpb24tY2lyY2xlIiwiYXJpYS1oaWRkZW4iLCJ0cnVlIiwxLCJjbHItdmFsaWRhdGUtaWNvbiJdLFsic3RhdHVzIiwic3Vj''@;'; + put 'put ''Y2VzcyIsInNoYXBlIiwiY2hlY2stY2lyY2xlIiwiYXJpYS1oaWRkZW4iLCJ0cnVlIiwxLCJjbHItdmFsaWRhdGUtaWNvbiJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihoLHYpezEmaCYmKEswKEx1ZSksTmkoMCkscm4oMSxNdWUsMSwwLCJsYWJlbCIsMCkscnQoMiwiZGl2IiwxKSxOaSgzLDEpLHJ0''@;'; + put 'put ''KDQsImRpdiIsMikscm4oNSxFdWUsMSwwLCJuZy1jb250ZW50IiwwKSxybig2LHh1ZSwxLDAsImNkcy1pY29uIiwzKSxybig3LFR1ZSwxLDAsImNkcy1pY29uIiw0KSxybig4LEl1ZSwxLDAsIm5nLWNvbnRlbnQiLDApLHJuKDksRHVlLDEsMCwibmctY29udGVudCIsMCksbHQoKSgpKSwyJmgm''@;'; + put 'put ''Jih1dCgxKSxUdCgibmdJZiIsIXYubGFiZWwmJnYuYWRkR3JpZCgpKSx1dCgxKSxGaSgiY2xyLWNvbnRyb2wtaW5saW5lIix2LmNscklubGluZSksVHQoIm5nQ2xhc3MiLHYuY29udHJvbENsYXNzKCkpLHV0KDMpLFR0KCJuZ0lmIix2LnNob3dIZWxwZXIpLHV0KDEpLFR0KCJuZ0lmIix2LnNo''@;'; + put 'put ''b3dJbnZhbGlkKSx1dCgxKSxUdCgibmdJZiIsdi5zaG93VmFsaWQpLHV0KDEpLFR0KCJuZ0lmIix2LnNob3dJbnZhbGlkKSx1dCgxKSxUdCgibmdJZiIsdi5zaG93VmFsaWQpKX0sZGVwZW5kZW5jaWVzOltObyxvdCxsYyxab10sZW5jYXBzdWxhdGlvbjoyfSksZH0pKCksVGE9KCgpPT57Y2xh''@;'; + put 'put ''c3MgZHtjb25zdHJ1Y3Rvcigpe2ZzLmFkZEljb25zKEtoLFRmKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1bW9kPWNvKHt0eXBlOmR9KSxkLlx1MDI3NWluaj1iMCh7aW1wb3J0czpbW2JhLElzLEpyLFJdLEpyXX0pLGR9KSgpO2Z1''@;'; + put 'put ''bmN0aW9uIGphKGQpe3JldHVybiBudWxsIT09ZCYmKCJzdHJpbmciPT10eXBlb2YgZD9kLmxlbmd0aD49MDoiYm9vbGVhbiI9PXR5cGVvZiBkJiZkKX1sZXQgZ2E9KCgpPT57Y2xhc3MgZHtnZXQgc3Bpbm5lckNsYXNzKCl7cmV0dXJuITB9Z2V0IGlubGluZUNsYXNzKCl7cmV0dXJuIHRoaXMu''@;'; + put 'put ''X2lubGluZX1zZXQgY2xySW5saW5lKGgpe3RoaXMuX2lubGluZT1qYShoKX1nZXQgaW52ZXJzZUNsYXNzKCl7cmV0dXJuIHRoaXMuX2ludmVyc2V9c2V0IGNsckludmVyc2UoaCl7dGhpcy5faW52ZXJzZT1qYShoKX1nZXQgc21hbGxDbGFzcygpe3JldHVybiB0aGlzLl9zbWFsbH1zZXQgY2xy''@;'; + put 'put ''U21hbGwoaCl7dGhpcy5fc21hbGw9amEoaCl9Z2V0IG1lZGl1bUNsYXNzKCl7cmV0dXJuIXRoaXMuX3NtYWxsJiZ0aGlzLl9tZWRpdW19c2V0IGNsck1lZGl1bShoKXt0aGlzLl9tZWRpdW09amEoaCl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxk''@;'; + put 'put ''Llx1MDI3NWNtcD1UaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJjbHItc3Bpbm5lciJdXSxob3N0VmFyczoxMSxob3N0QmluZGluZ3M6ZnVuY3Rpb24oaCx2KXsyJmgmJihHaSgiYXJpYS1idXN5IiwhMCksRmkoInNwaW5uZXIiLHYuc3Bpbm5lckNsYXNzKSgic3Bpbm5lci1pbmxpbmUiLHYuaW5s''@;'; + put 'put ''aW5lQ2xhc3MpKCJzcGlubmVyLWludmVyc2UiLHYuaW52ZXJzZUNsYXNzKSgic3Bpbm5lci1zbSIsdi5zbWFsbENsYXNzKSgic3Bpbm5lci1tZCIsdi5tZWRpdW1DbGFzcykpfSxpbnB1dHM6e2NscklubGluZToiY2xySW5saW5lIixjbHJJbnZlcnNlOiJjbHJJbnZlcnNlIixjbHJTbWFsbDoi''@;'; + put 'put ''Y2xyU21hbGwiLGNsck1lZGl1bToiY2xyTWVkaXVtIn0sbmdDb250ZW50U2VsZWN0b3JzOm5hLGRlY2xzOjEsdmFyczowLHRlbXBsYXRlOmZ1bmN0aW9uKGgsdil7MSZoJiYoSzAoKSxOaSgwKSl9LGVuY2Fwc3VsYXRpb246Mn0pLGR9KSgpLERsPSgoKT0+e2NsYXNzIGR7fXJldHVybiBkLlx1''@;'; + put 'put ''MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1MDI3NW1vZD1jbyh7dHlwZTpkfSksZC5cdTAyNzVpbmo9YjAoe2ltcG9ydHM6W1tiYV1dfSksZH0pKCksb3M9MDtjb25zdCBvbD1uZXcgemUoIklGX0FDVElWRV9JRCIpLHhhPXtwcm92aWRlOm9sLHVzZUZhY3Rvcnk6''@;'; + put 'put ''ZnVuY3Rpb24gTDAoKXtyZXR1cm4rK29zfX07bGV0IHoyPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoKXt0aGlzLl9jdXJyZW50Q2hhbmdlPW5ldyAkZX1nZXQgY3VycmVudENoYW5nZSgpe3JldHVybiB0aGlzLl9jdXJyZW50Q2hhbmdlLmFzT2JzZXJ2YWJsZSgpfXNldCBjdXJyZW50KGgp''@;'; + put 'put ''e3RoaXMuX2N1cnJlbnQhPT1oJiYodGhpcy5fY3VycmVudD1oLHRoaXMuX2N1cnJlbnRDaGFuZ2UubmV4dChoKSl9Z2V0IGN1cnJlbnQoKXtyZXR1cm4gdGhpcy5fY3VycmVudH19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1cHJvdj1B''@;'; + put 'put ''aSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1ZmFjfSksZH0pKCksRzI9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYseSxDKXt0aGlzLmlmQWN0aXZlU2VydmljZT1oLHRoaXMuaWQ9dix0aGlzLnRlbXBsYXRlPXksdGhpcy5jb250YWluZXI9Qyx0aGlzLndhc0FjdGl2ZT0hMSx0aGlz''@;'; + put 'put ''LmFjdGl2ZUNoYW5nZT1uZXcgYXIoITEpLHRoaXMuY2hlY2tBbmRVcGRhdGVWaWV3KGguY3VycmVudCksdGhpcy5zdWJzY3JpcHRpb249dGhpcy5pZkFjdGl2ZVNlcnZpY2UuY3VycmVudENoYW5nZS5zdWJzY3JpYmUoST0+e3RoaXMuY2hlY2tBbmRVcGRhdGVWaWV3KEkpfSl9Y2hlY2tBbmRV''@;'; + put 'put ''cGRhdGVWaWV3KGgpe2NvbnN0IHY9aD09PXRoaXMuaWQ7diE9PXRoaXMud2FzQWN0aXZlJiYodGhpcy51cGRhdGVWaWV3KHYpLHRoaXMuYWN0aXZlQ2hhbmdlLmVtaXQodiksdGhpcy53YXNBY3RpdmU9dil9c2V0IGFjdGl2ZShoKXtoJiYodGhpcy5pZkFjdGl2ZVNlcnZpY2UuY3VycmVudD10''@;'; + put 'put ''aGlzLmlkKX1nZXQgYWN0aXZlKCl7cmV0dXJuIHRoaXMuaWZBY3RpdmVTZXJ2aWNlLmN1cnJlbnQ9PT10aGlzLmlkfXVwZGF0ZVZpZXcoaCl7aD90aGlzLmNvbnRhaW5lci5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy50ZW1wbGF0ZSk6dGhpcy5jb250YWluZXIuY2xlYXIoKX1uZ09uRGVzdHJv''@;'; + put 'put ''eSgpe3RoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKEt0KHoyKSxLdChvbCksS3QocXIpLEt0KFVpKSl9LGQuXHUwMjc1ZGlyPVdpKHt0eXBlOmQsc2VsZWN0b3JzOltbIiIsImNscklmQWN0aXZl''@;'; + put 'put ''IiwiIl1dLGlucHV0czp7YWN0aXZlOlsiY2xySWZBY3RpdmUiLCJhY3RpdmUiXX0sb3V0cHV0czp7YWN0aXZlQ2hhbmdlOiJjbHJJZkFjdGl2ZUNoYW5nZSJ9fSksZH0pKCksRmY9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYseSxDLEkpe3RoaXMudGVtcGxhdGU9aCx0aGlzLmNvbnRh''@;'; + put 'put ''aW5lcj12LHRoaXMuZWw9eSx0aGlzLnJlbmRlcmVyPUMsdGhpcy5leHBhbmQ9SSx0aGlzLl9leHBhbmRlZD0hMSx0aGlzLmV4cGFuZGVkQ2hhbmdlPW5ldyBhcighMCksdGhpcy5fc3Vic2NyaXB0aW9ucz1bXSx0aGlzLl9zdWJzY3JpcHRpb25zLnB1c2goSS5leHBhbmRDaGFuZ2Uuc3Vic2Ny''@;'; + put 'put ''aWJlKCgpPT57dGhpcy51cGRhdGVWaWV3KCksdGhpcy5leHBhbmRlZENoYW5nZS5lbWl0KHRoaXMuZXhwYW5kLmV4cGFuZGVkKX0pKX1nZXQgZXhwYW5kZWQoKXtyZXR1cm4gdGhpcy5fZXhwYW5kZWR9c2V0IGV4cGFuZGVkKGgpeyJib29sZWFuIj09dHlwZW9mIGgmJih0aGlzLmV4cGFuZC5l''@;'; + put 'put ''eHBhbmRlZD1oLHRoaXMuX2V4cGFuZGVkPWgpfXVwZGF0ZVZpZXcoKXtpZighdGhpcy5leHBhbmQuZXhwYW5kZWR8fDA9PT10aGlzLmNvbnRhaW5lci5sZW5ndGgpaWYodGhpcy50ZW1wbGF0ZSl0aGlzLmV4cGFuZC5leHBhbmRlZD90aGlzLmNvbnRhaW5lci5jcmVhdGVFbWJlZGRlZFZpZXco''@;'; + put 'put ''dGhpcy50ZW1wbGF0ZSk6dGhpcy5jb250YWluZXIuY2xlYXIoKTtlbHNlIHRyeXt0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWwubmF0aXZlRWxlbWVudCwiZGlzcGxheSIsdGhpcy5leHBhbmQuZXhwYW5kZWQ/bnVsbDoibm9uZSIpfWNhdGNoKGgpe319bmdPbkluaXQoKXt0aGlzLmV4''@;'; + put 'put ''cGFuZC5leHBhbmRhYmxlKyssdGhpcy51cGRhdGVWaWV3KCl9bmdPbkRlc3Ryb3koKXt0aGlzLmV4cGFuZC5leHBhbmRhYmxlLS0sdGhpcy5fc3Vic2NyaXB0aW9ucy5mb3JFYWNoKGg9PmgudW5zdWJzY3JpYmUoKSl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3''@;'; + put 'put ''KGh8fGQpKEt0KHFyLDgpLEt0KFVpKSxLdChibyksS3QoR2EpLEt0KHIxKSl9LGQuXHUwMjc1ZGlyPVdpKHt0eXBlOmQsc2VsZWN0b3JzOltbIiIsImNscklmRXhwYW5kZWQiLCIiXV0saW5wdXRzOntleHBhbmRlZDpbImNscklmRXhwYW5kZWQiLCJleHBhbmRlZCJdfSxvdXRwdXRzOntleHBh''@;'; + put 'put ''bmRlZENoYW5nZToiY2xySWZFeHBhbmRlZENoYW5nZSJ9fSksZH0pKCksWmE9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYseSl7dGhpcy50b2dnbGVTZXJ2aWNlPWgsdGhpcy50ZW1wbGF0ZT12LHRoaXMuY29udGFpbmVyPXksdGhpcy5vcGVuQ2hhbmdlPW5ldyBhcighMSksdGhpcy5z''@;'; + put 'put ''dWJzY3JpcHRpb249dGhpcy50b2dnbGVTZXJ2aWNlLm9wZW5DaGFuZ2Uuc3Vic2NyaWJlKEM9Pnt0aGlzLnVwZGF0ZVZpZXcoQyksdGhpcy5vcGVuQ2hhbmdlLmVtaXQoQyl9KX1zZXQgb3BlbihoKXt0aGlzLnRvZ2dsZVNlcnZpY2Uub3Blbj1ofWdldCBvcGVuKCl7cmV0dXJuIHRoaXMudG9n''@;'; + put 'put ''Z2xlU2VydmljZS5vcGVufXVwZGF0ZVZpZXcoaCl7aD90aGlzLmNvbnRhaW5lci5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy50ZW1wbGF0ZSk6dGhpcy5jb250YWluZXIuY2xlYXIoKX1uZ09uRGVzdHJveSgpe3RoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCl9fXJldHVybiBkLlx1MDI3''@;'; + put 'put ''NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKEt0KHpzKSxLdChxciksS3QoVWkpKX0sZC5cdTAyNzVkaXI9V2koe3R5cGU6ZCxzZWxlY3RvcnM6W1siIiwiY2xySWZPcGVuIiwiIl1dLGlucHV0czp7b3BlbjpbImNscklmT3BlbiIsIm9wZW4iXX0sb3V0cHV0czp7b3BlbkNoYW5n''@;'; + put 'put ''ZToiY2xySWZPcGVuQ2hhbmdlIn19KSxkfSkoKSxxYT0oKCk9PntjbGFzcyBke31yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVtb2Q9Y28oe3R5cGU6ZH0pLGQuXHUwMjc1aW5qPWIwKHtpbXBvcnRzOltbYmFdXX0pLGR9KSgpO3ZhciB2''@;'; + put 'put ''MT0oKCk9PihmdW5jdGlvbihkKXtkLlZFUlRJQ0FMPSJ2ZXJ0aWNhbCIsZC5IT1JJWk9OVEFMPSJob3Jpem9udGFsIixkLkJPVEg9ImJvdGgifSh2MXx8KHYxPXt9KSksdjEpKSgpO2xldCBicz0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgsdil7dGhpcy5lbGVtZW50UmVmPWgsdGhpcy5w''@;'; + put 'put ''bGF0Zm9ybUlkPXZ9Z2V0IG5hdGl2ZUVsZW1lbnQoKXtyZXR1cm4gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnR9Zm9jdXMoKXtTbCh0aGlzLnBsYXRmb3JtSWQpJiZ0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5mb2N1cygpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24o''@;'; + put 'put ''aCl7cmV0dXJuIG5ldyhofHxkKShLdChibyksS3QoTDIpKX0sZC5cdTAyNzVkaXI9V2koe3R5cGU6ZCxzZWxlY3RvcnM6W1siIiwiY2xyS2V5Rm9jdXNJdGVtIiwiIl1dfSksZH0pKCksRXA9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoKXt0aGlzLmVsZW1lbnRSZWY9aCx0aGlzLmRpcmVj''@;'; + put 'put ''dGlvbj12MS5WRVJUSUNBTCx0aGlzLmZvY3VzT25Mb2FkPSExLHRoaXMuZm9jdXNDaGFuZ2U9bmV3IGFyLHRoaXMuX2N1cnJlbnQ9MCx0aGlzLnN1YnNjcmlwdGlvbnM9W119c2V0IGZvY3VzYWJsZUl0ZW1zKGgpe0FycmF5LmlzQXJyYXkoaCkmJmgubGVuZ3RoJiYodGhpcy5fZm9jdXNhYmxl''@;'; + put 'put ''SXRlbXM9aCx0aGlzLmluaXRpYWxpemVGb2N1cygpKX1nZXQgZm9jdXNhYmxlSXRlbXMoKXtyZXR1cm4gdGhpcy5fZm9jdXNhYmxlSXRlbXM/dGhpcy5fZm9jdXNhYmxlSXRlbXM6dGhpcy5jbHJLZXlGb2N1c0l0ZW1zP3RoaXMuY2xyS2V5Rm9jdXNJdGVtcy50b0FycmF5KCk6W119Z2V0IG5h''@;'; + put 'put ''dGl2ZUVsZW1lbnQoKXtyZXR1cm4gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnR9Z2V0IGN1cnJlbnQoKXtyZXR1cm4gdGhpcy5fY3VycmVudH1zZXQgY3VycmVudChoKXt0aGlzLl9jdXJyZW50IT09aCYmKHRoaXMuX2N1cnJlbnQ9aCl9Z2V0IGN1cnJlbnRJdGVtKCl7cmV0dXJuIHRo''@;'; + put 'put ''aXMuZm9jdXNhYmxlSXRlbXNbdGhpcy5fY3VycmVudF19Z2V0IGN1cnJlbnRJdGVtRWxlbWVudCgpe3JldHVybiB0aGlzLmN1cnJlbnRJdGVtLm5hdGl2ZUVsZW1lbnQ/dGhpcy5jdXJyZW50SXRlbS5uYXRpdmVFbGVtZW50OnRoaXMuY3VycmVudEl0ZW19Zm9jdXNDdXJyZW50KCl7dGhpcy5j''@;'; + put 'put ''dXJyZW50SXRlbS5mb2N1cygpLHRoaXMuZm9jdXNDaGFuZ2UubmV4dCh0aGlzLl9jdXJyZW50KX1tb3ZlVG8oaCl7dGhpcy5wb3NpdGlvbkluUmFuZ2UoaCkmJih0aGlzLmN1cnJlbnQ9aCx0aGlzLmZvY3VzQ3VycmVudCgpKX1uZ0FmdGVyQ29udGVudEluaXQoKXt0aGlzLnN1YnNjcmlwdGlv''@;'; + put 'put ''bnMucHVzaCh0aGlzLmxpc3RlbkZvckl0ZW1VcGRhdGVzKCkpLHRoaXMuaW5pdGlhbGl6ZUZvY3VzKCl9bmdPbkRlc3Ryb3koKXt0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChoPT5oLnVuc3Vic2NyaWJlKCkpfWhhbmRsZUtleWJvYXJkRXZlbnQoaCl7aWYodGhpcy5jdXJyZW50SXRlbUVs''@;'; + put 'put ''ZW1lbnQhPT1oLnRhcmdldCl7Y29uc3Qgdj10aGlzLmdldEl0ZW1Qb3NpdGlvbihoLnRhcmdldCk7dGhpcy5wb3NpdGlvbkluUmFuZ2UodikmJih0aGlzLmN1cnJlbnQ9dil9dGhpcy5wcmV2S2V5UHJlc3NlZChoKSYmdGhpcy5jdXJyZW50Rm9jdXNJc05vdEZpcnN0SXRlbSgpP3RoaXMubW92''@;'; + put 'put ''ZVRvKHRoaXMuY3VycmVudC0xKTp0aGlzLm5leHRLZXlQcmVzc2VkKGgpJiZ0aGlzLmN1cnJlbnRGb2N1c0lzTm90TGFzdEl0ZW0oKT90aGlzLm1vdmVUbyh0aGlzLmN1cnJlbnQrMSk6aC5jb2RlPT09TTAuSG9tZT90aGlzLm1vdmVUbygwKTpoLmNvZGU9PT1NMC5FbmQmJnRoaXMubW92ZVRv''@;'; + put 'put ''KHRoaXMuZm9jdXNhYmxlSXRlbXMubGVuZ3RoLTEpLE1wKGgpfXNldENsaWNrZWRJdGVtQ3VycmVudChoKXtjb25zdCB2PXRoaXMuZ2V0SXRlbVBvc2l0aW9uKGgudGFyZ2V0KTt2Pi0xJiZ0aGlzLm1vdmVUbyh2KX1nZXRJdGVtUG9zaXRpb24oaCl7cmV0dXJuIHRoaXMuX2ZvY3VzYWJsZUl0''@;'; + put 'put ''ZW1zP3RoaXMuZm9jdXNhYmxlSXRlbXMuaW5kZXhPZihoKTp0aGlzLmZvY3VzYWJsZUl0ZW1zLm1hcCh2PT52Lm5hdGl2ZUVsZW1lbnQpLmluZGV4T2YoaCl9cG9zaXRpb25JblJhbmdlKGgpe3JldHVybiBoPj0wJiZoPHRoaXMuZm9jdXNhYmxlSXRlbXMubGVuZ3RofWN1cnJlbnRGb2N1c0lz''@;'; + put 'put ''Tm90Rmlyc3RJdGVtKCl7cmV0dXJuIHRoaXMuX2N1cnJlbnQtMT49MH1jdXJyZW50Rm9jdXNJc05vdExhc3RJdGVtKCl7cmV0dXJuIHRoaXMuX2N1cnJlbnQrMTx0aGlzLmZvY3VzYWJsZUl0ZW1zLmxlbmd0aH1pbml0aWFsaXplRm9jdXMoKXt0aGlzLmZvY3VzYWJsZUl0ZW1zJiZ0aGlzLmZv''@;'; + put 'put ''Y3VzYWJsZUl0ZW1zLmxlbmd0aCYmKHRoaXMuX2N1cnJlbnQ+PXRoaXMuZm9jdXNhYmxlSXRlbXMubGVuZ3RoJiYodGhpcy5fY3VycmVudD10aGlzLmZvY3VzYWJsZUl0ZW1zLmxlbmd0aC0xKSx0aGlzLmZvY3VzT25Mb2FkJiYodGhpcy5jdXJyZW50SXRlbS5mb2N1cygpLHRoaXMuZm9jdXND''@;'; + put 'put ''aGFuZ2UubmV4dCgpKSl9bGlzdGVuRm9ySXRlbVVwZGF0ZXMoKXtyZXR1cm4gdGhpcy5jbHJLZXlGb2N1c0l0ZW1zLmNoYW5nZXMuc3Vic2NyaWJlKCgpPT57dGhpcy5pbml0aWFsaXplRm9jdXMoKX0pfW5leHRLZXlQcmVzc2VkKGgpe2NvbnN0IHY9YVMoaC5rZXkpO3N3aXRjaCh0aGlzLmRp''@;'; + put 'put ''cmVjdGlvbil7Y2FzZSB2MS5WRVJUSUNBTDpyZXR1cm4gdj09PU0wLkFycm93RG93bjtjYXNlIHYxLkhPUklaT05UQUw6cmV0dXJuIHY9PT1NMC5BcnJvd1JpZ2h0O2Nhc2UgdjEuQk9USDpyZXR1cm4gdj09PU0wLkFycm93RG93bnx8dj09PU0wLkFycm93UmlnaHQ7ZGVmYXVsdDpyZXR1cm4h''@;'; + put 'put ''MX19cHJldktleVByZXNzZWQoaCl7Y29uc3Qgdj1hUyhoLmtleSk7c3dpdGNoKHRoaXMuZGlyZWN0aW9uKXtjYXNlIHYxLlZFUlRJQ0FMOnJldHVybiB2PT09TTAuQXJyb3dVcDtjYXNlIHYxLkhPUklaT05UQUw6cmV0dXJuIHY9PT1NMC5BcnJvd0xlZnQ7Y2FzZSB2MS5CT1RIOnJldHVybiB2''@;'; + put 'put ''PT09TTAuQXJyb3dVcHx8dj09PU0wLkFycm93TGVmdDtkZWZhdWx0OnJldHVybiExfX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoS3QoYm8pKX0sZC5cdTAyNzVjbXA9VGkoe3R5cGU6ZCxzZWxlY3RvcnM6W1siIiwiY2xyS2V5Rm9jdXMiLCIiXV0s''@;'; + put 'put ''Y29udGVudFF1ZXJpZXM6ZnVuY3Rpb24oaCx2LHkpe2lmKDEmaCYmeG8oeSxicyw1KSwyJmgpe2xldCBDO0hpKEM9JGkoKSkmJih2LmNscktleUZvY3VzSXRlbXM9Qyl9fSxob3N0QmluZGluZ3M6ZnVuY3Rpb24oaCx2KXsxJmgmJkduKCJrZXlkb3duIixmdW5jdGlvbihDKXtyZXR1cm4gdi5o''@;'; + put 'put ''YW5kbGVLZXlib2FyZEV2ZW50KEMpfSkoImNsaWNrIixmdW5jdGlvbihDKXtyZXR1cm4gdi5zZXRDbGlja2VkSXRlbUN1cnJlbnQoQyl9KX0saW5wdXRzOntkaXJlY3Rpb246WyJjbHJEaXJlY3Rpb24iLCJkaXJlY3Rpb24iXSxmb2N1c09uTG9hZDpbImNsckZvY3VzT25Mb2FkIiwiZm9jdXNP''@;'; + put 'put ''bkxvYWQiXSxmb2N1c2FibGVJdGVtczpbImNscktleUZvY3VzIiwiZm9jdXNhYmxlSXRlbXMiXX0sb3V0cHV0czp7Zm9jdXNDaGFuZ2U6ImNsckZvY3VzQ2hhbmdlIn0sYXR0cnM6UnVlLG5nQ29udGVudFNlbGVjdG9yczpuYSxkZWNsczoxLHZhcnM6MCx0ZW1wbGF0ZTpmdW5jdGlvbihoLHYp''@;'; + put 'put ''ezEmaCYmKEswKCksTmkoMCkpfSxlbmNhcHN1bGF0aW9uOjJ9KSxkfSkoKSxjdz0oKCk9PntjbGFzcyBke31yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVtb2Q9Y28oe3R5cGU6ZH0pLGQuXHUwMjc1aW5qPWIwKHtpbXBvcnRzOltbYmFd''@;'; + put 'put ''XX0pLGR9KSgpO2NvbnN0IHRmPW5ldyB6ZSgiUE9QT1ZFUl9IT1NUX0FOQ0hPUiIpO2xldCBzUz0oKCk9PntjbGFzcyBke31yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVwcm92PUFpKHt0b2tlbjpkLGZhY3Rvcnk6ZC5cdTAyNzVmYWN9''@;'; + put 'put ''KSxkfSkoKTt2YXIgcTE9KCgpPT4oZnVuY3Rpb24oZCl7ZC5VUD0idXAiLGQuRE9XTj0iZG93biIsZC5MRUZUPSJsZWZ0IixkLlJJR0hUPSJyaWdodCJ9KHExfHwocTE9e30pKSxxMSkpKCk7bGV0IHhwPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCl7dGhpcy5yZW5kZXJlcj1oLHRoaXMu''@;'; + put 'put ''X3VubGlzdGVuRnVuY3M9W119Z2V0IGN1cnJlbnQoKXtyZXR1cm4gdGhpcy5fY3VycmVudH1yZXNldChoKXt0aGlzLl9jdXJyZW50PWh9bGlzdGVuVG9BcnJvd0tleXMoaCl7dGhpcy5fdW5saXN0ZW5GdW5jcy5wdXNoKHRoaXMucmVuZGVyZXIubGlzdGVuKGgsImtleWRvd24uYXJyb3d1cCIs''@;'; + put 'put ''KCk9PiF0aGlzLm1vdmUocTEuVVApKSksdGhpcy5fdW5saXN0ZW5GdW5jcy5wdXNoKHRoaXMucmVuZGVyZXIubGlzdGVuKGgsImtleWRvd24uYXJyb3dkb3duIiwoKT0+IXRoaXMubW92ZShxMS5ET1dOKSkpLHRoaXMuX3VubGlzdGVuRnVuY3MucHVzaCh0aGlzLnJlbmRlcmVyLmxpc3Rlbiho''@;'; + put 'put ''LCJrZXlkb3duLmFycm93bGVmdCIsKCk9PiF0aGlzLm1vdmUocTEuTEVGVCkpKSx0aGlzLl91bmxpc3RlbkZ1bmNzLnB1c2godGhpcy5yZW5kZXJlci5saXN0ZW4oaCwia2V5ZG93bi5hcnJvd3JpZ2h0IiwoKT0+IXRoaXMubW92ZShxMS5SSUdIVCkpKX1yZWdpc3RlckNvbnRhaW5lcihoKXt0''@;'; + put 'put ''aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZShoLCJ0YWJpbmRleCIsIjAiKSx0aGlzLmxpc3RlblRvQXJyb3dLZXlzKGgpLHRoaXMuX3VubGlzdGVuRnVuY3MucHVzaCh0aGlzLnJlbmRlcmVyLmxpc3RlbihoLCJrZXlkb3duLnNwYWNlIiwoKT0+IXRoaXMuYWN0aXZhdGVDdXJyZW50KCkpKSx0''@;'; + put 'put ''aGlzLl91bmxpc3RlbkZ1bmNzLnB1c2godGhpcy5yZW5kZXJlci5saXN0ZW4oaCwia2V5ZG93bi5lbnRlciIsKCk9PiF0aGlzLmFjdGl2YXRlQ3VycmVudCgpKSl9bW92ZVRvKGgpe3ZvaWQgMCE9PWgmJih0aGlzLmN1cnJlbnQmJnRoaXMuY3VycmVudC5ibHVyKCksaC5mb2N1cygpLHRoaXMu''@;'; + put 'put ''X2N1cnJlbnQ9aCl9bW92ZShoKXtsZXQgdj0hMTtpZih0aGlzLmN1cnJlbnQpe2NvbnN0IHk9dGhpcy5jdXJyZW50W2hdO3kmJihrWCh5KT95OmFhKHkpKS5zdWJzY3JpYmUoST0+e0kmJih0aGlzLm1vdmVUbyhJKSx2PSEwKX0pfXJldHVybiB2fWFjdGl2YXRlQ3VycmVudCgpe3JldHVybiEo''@;'; + put 'put ''IXRoaXMuY3VycmVudHx8IXRoaXMuY3VycmVudC5hY3RpdmF0ZXx8KHRoaXMuY3VycmVudC5hY3RpdmF0ZSgpLDApKX1kZXRhY2hMaXN0ZW5lcnMoKXt0aGlzLl91bmxpc3RlbkZ1bmNzLmZvckVhY2goaD0+aCgpKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXco''@;'; + put 'put ''aHx8ZCkoQ2koR2EpKX0sZC5cdTAyNzVwcm92PUFpKHt0b2tlbjpkLGZhY3Rvcnk6ZC5cdTAyNzVmYWN9KSxkfSkoKTtjb25zdCBnOD17cHJvdmlkZTp4cCx1c2VGYWN0b3J5OmZ1bmN0aW9uIE9MKGQsZyl7cmV0dXJuIGR8fG5ldyB4cChnKX0sZGVwczpbW25ldyBtZixuZXcgTDQseHBdLEdh''@;'; + put 'put ''XX07Y2xhc3MgbHF7fWZ1bmN0aW9uIE9BZShkKXtyZXR1cm5bT2MsZCx7cHJvdmlkZTpscSx1c2VFeGlzdGluZzpkfV19Y2xhc3MgakxlIGV4dGVuZHMgY2xhc3MgVkxle2NvbnRhaW5zSXRlbShnKXtyZXR1cm4gdGhpcy5tb2RlbD09PWd9c2VsZWN0KGcpe3RoaXMubW9kZWw9Z311bnNlbGVj''@;'; + put 'put ''dChnKXt0aGlzLmNvbnRhaW5zSXRlbShnKSYmKHRoaXMubW9kZWw9bnVsbCl9aXNFbXB0eSgpe3JldHVybiF0aGlzLm1vZGVsfXBvcCgpe2NvbnN0IGc9dGhpcy5tb2RlbDtyZXR1cm4gdGhpcy5tb2RlbD1udWxsLGd9dG9TdHJpbmcoZyl7cmV0dXJuIHRoaXMubW9kZWw/ZyYmdGhpcy5tb2Rl''@;'; + put 'put ''bFtnXT90aGlzLm1vZGVsW2ddOnRoaXMubW9kZWwudG9TdHJpbmcoKToiIn19e2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLl9mb2N1c0NoYW5nZWQ9bmV3IGNzKG51bGwpfWdldCBmb2N1c0NoYW5nZWQoKXtyZXR1cm4gdGhpcy5fZm9jdXNDaGFuZ2VkLmFzT2JzZXJ2''@;'; + put 'put ''YWJsZSgpfXNlbGVjdChnKXt0aGlzLm1vZGVsIT09ZyYmKHRoaXMubW9kZWw9Zyx0aGlzLl9mb2N1c0NoYW5nZWQubmV4dChnKSl9fWxldCBaTGU9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3Rvcigpe3RoaXMubG9hZGluZz0hMSx0aGlzLl9jdXJyZW50SW5wdXQ9IiIsdGhpcy5faW5wdXRDaGFu''@;'; + put 'put ''Z2VkPW5ldyBjcygiIiksdGhpcy5pbnB1dENoYW5nZWQ9dGhpcy5faW5wdXRDaGFuZ2VkLmFzT2JzZXJ2YWJsZSgpLHRoaXMuX3NlbGVjdGlvbkNoYW5nZWQ9bmV3IHhrKDEpfWdldCBjdXJyZW50SW5wdXQoKXtyZXR1cm4gdGhpcy5fY3VycmVudElucHV0fXNldCBjdXJyZW50SW5wdXQoaCl7''@;'; + put 'put ''IiI9PT1oJiYhdGhpcy5tdWx0aXNlbGVjdGFibGUmJnRoaXMuc2V0U2VsZWN0aW9uVmFsdWUobnVsbCksdGhpcy5fY3VycmVudElucHV0PWgsdGhpcy5faW5wdXRDaGFuZ2VkLm5leHQoaCl9Z2V0IHNlbGVjdGlvbkNoYW5nZWQoKXtyZXR1cm4gdGhpcy5fc2VsZWN0aW9uQ2hhbmdlZC5hc09i''@;'; + put 'put ''c2VydmFibGUoKX1zZWxlY3QoaCl7bnVsbD09aHx8dGhpcy5zZWxlY3Rpb25Nb2RlbC5jb250YWluc0l0ZW0oaCl8fCh0aGlzLnNlbGVjdGlvbk1vZGVsLnNlbGVjdChoKSx0aGlzLl9zZWxlY3Rpb25DaGFuZ2VkLm5leHQodGhpcy5zZWxlY3Rpb25Nb2RlbCkpfXRvZ2dsZShoKXtudWxsIT1o''@;'; + put 'put ''JiYodGhpcy5zZWxlY3Rpb25Nb2RlbC5jb250YWluc0l0ZW0oaCk/dGhpcy5zZWxlY3Rpb25Nb2RlbC51bnNlbGVjdChoKTp0aGlzLnNlbGVjdGlvbk1vZGVsLnNlbGVjdChoKSx0aGlzLl9zZWxlY3Rpb25DaGFuZ2VkLm5leHQodGhpcy5zZWxlY3Rpb25Nb2RlbCkpfXVuc2VsZWN0KGgpe251''@;'; + put 'put ''bGw9PWh8fCF0aGlzLnNlbGVjdGlvbk1vZGVsLmNvbnRhaW5zSXRlbShoKXx8KHRoaXMuc2VsZWN0aW9uTW9kZWwudW5zZWxlY3QoaCksdGhpcy5fc2VsZWN0aW9uQ2hhbmdlZC5uZXh0KHRoaXMuc2VsZWN0aW9uTW9kZWwpKX1nZXQgbXVsdGlzZWxlY3RhYmxlKCl7cmV0dXJuIHRoaXMuc2Vs''@;'; + put 'put ''ZWN0aW9uTW9kZWwgaW5zdGFuY2VvZiBjbGFzcyBOTGV7Y29udGFpbnNJdGVtKGcpe3JldHVybiEhdGhpcy5tb2RlbCYmdGhpcy5tb2RlbC5pbmNsdWRlcyhnKX1zZWxlY3QoZyl7dGhpcy5hZGRJdGVtKGcpfXVuc2VsZWN0KGcpe3RoaXMucmVtb3ZlSXRlbShnKX1pc0VtcHR5KCl7cmV0dXJu''@;'; + put 'put ''ISh0aGlzLm1vZGVsJiZ0aGlzLm1vZGVsLmxlbmd0aD4wKX1wb3AoKXtsZXQgZztyZXR1cm4gdGhpcy5tb2RlbCYmdGhpcy5tb2RlbC5sZW5ndGg+MCYmKGc9dGhpcy5tb2RlbFt0aGlzLm1vZGVsLmxlbmd0aC0xXSx0aGlzLnJlbW92ZUl0ZW0oZykpLGd9dG9TdHJpbmcoZyxoPS0xKXtsZXQg''@;'; + put 'put ''dj0iIjtyZXR1cm4gdGhpcy5tb2RlbCYmKGg+LTE/dGhpcy5tb2RlbFtoXSYmKHYrPWcmJnRoaXMubW9kZWxbaF1bZ10/dGhpcy5tb2RlbFtoXVtnXTp0aGlzLm1vZGVsW2hdLnRvU3RyaW5nKCkpOnRoaXMubW9kZWwuZm9yRWFjaCh5PT57dis9ZyYmeVtnXT95W2ddOnkudG9TdHJpbmcoKSx2''@;'; + put 'put ''Kz0iICJ9KSksdi50cmltKCl9YWRkSXRlbShnKXt0aGlzLmNvbnRhaW5zSXRlbShnKXx8KHRoaXMubW9kZWw9dGhpcy5tb2RlbHx8W10sdGhpcy5tb2RlbC5wdXNoKGcpKX1yZW1vdmVJdGVtKGcpe2lmKG51bGw9PXRoaXMubW9kZWwpcmV0dXJuO2NvbnN0IGg9dGhpcy5tb2RlbC5pbmRleE9m''@;'; + put 'put ''KGcpO2g+LTEmJnRoaXMubW9kZWwuc3BsaWNlKGgsMSksMD09PXRoaXMubW9kZWwubGVuZ3RoJiYodGhpcy5tb2RlbD1udWxsKX19fXNldFNlbGVjdGlvblZhbHVlKGgpeyF0aGlzLnNlbGVjdGlvbk1vZGVsfHx0aGlzLnNlbGVjdGlvbk1vZGVsLm1vZGVsPT09aHx8IXRoaXMuc2VsZWN0aW9u''@;'; + put 'put ''TW9kZWwubW9kZWwmJiFofHwodGhpcy5zZWxlY3Rpb25Nb2RlbC5tb2RlbD1oLHRoaXMuX3NlbGVjdGlvbkNoYW5nZWQubmV4dCh0aGlzLnNlbGVjdGlvbk1vZGVsKSl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1MDI3NXByb3Y9QWkoe3Rv''@;'; + put 'put ''a2VuOmQsZmFjdG9yeTpkLlx1MDI3NWZhY30pLGR9KSgpO09BZSgoKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgsdix5LEMsSSl7dGhpcy5pZD1oLHRoaXMudG9nZ2xlU2VydmljZT15LHRoaXMuc2VsZWN0aW9uU2VydmljZT1DLHRoaXMucGxhdGZvcm1JZD1JLHRoaXMucHNldWRvRm9jdXM9''@;'; + put 'put ''bmV3IGpMZSx0aGlzLm9wdGlvbkRhdGE9W10sdGhpcy5oYW5kbGVGb2N1c1N1YnNjcmlwdGlvbigpLHRoaXMucmVuZGVyZXI9di5jcmVhdGVSZW5kZXJlcihudWxsLG51bGwpfWhhbmRsZUZvY3VzU3Vic2NyaXB0aW9uKCl7dGhpcy50b2dnbGVTZXJ2aWNlLm9wZW5DaGFuZ2Uuc3Vic2NyaWJl''@;'; + put 'put ''KGg9PntofHwodGhpcy5wc2V1ZG9Gb2N1cy5tb2RlbD1udWxsKX0pfWdldCB0cmlnZ2VyKCl7cmV0dXJuIHRoaXMuX3RyaWdnZXJ9c2V0IHRyaWdnZXIoaCl7dGhpcy5fdHJpZ2dlcj1oLHRoaXMuYWRkRm9jdXNPbkJsdXJMaXN0ZW5lcihoKX1nZXQgbGlzdGJveCgpe3JldHVybiB0aGlzLl9s''@;'; + put 'put ''aXN0Ym94fXNldCBsaXN0Ym94KGgpe3RoaXMuX2xpc3Rib3g9aCx0aGlzLmFkZEZvY3VzT25CbHVyTGlzdGVuZXIoaCl9Z2V0IHRleHRJbnB1dCgpe3JldHVybiB0aGlzLl90ZXh0SW5wdXR9c2V0IHRleHRJbnB1dChoKXt0aGlzLl90ZXh0SW5wdXQ9aCx0aGlzLnJlbmRlcmVyLmxpc3Rlbiho''@;'; + put 'put ''LCJrZXlkb3duIix2PT4hdGhpcy5oYW5kbGVUZXh0SW5wdXQodikpLHRoaXMuYWRkRm9jdXNPbkJsdXJMaXN0ZW5lcihoKX1tb3ZlRm9jdXNUbyhoKXtsZXQgdj10aGlzLm9wdGlvbkRhdGEuZmluZEluZGV4KHk9PnkuZXF1YWxzKHRoaXMucHNldWRvRm9jdXMubW9kZWwpKTtoPT09cTEuVVA/''@;'; + put 'put ''LTE9PT12fHwwPT09dj92PXRoaXMub3B0aW9uRGF0YS5sZW5ndGgtMTp2LS06aD09PXExLkRPV04mJigtMT09PXZ8fHY9PT10aGlzLm9wdGlvbkRhdGEubGVuZ3RoLTE/dj0wOnYrKyksdGhpcy5wc2V1ZG9Gb2N1cy5zZWxlY3QodGhpcy5vcHRpb25EYXRhW3ZdKSx0aGlzLnBzZXVkb0ZvY3Vz''@;'; + put 'put ''Lm1vZGVsJiZ0aGlzLnBzZXVkb0ZvY3VzLm1vZGVsLmVsJiZ0aGlzLnBzZXVkb0ZvY3VzLm1vZGVsLmVsLnNjcm9sbEludG9WaWV3KHtiZWhhdmlvcjoic21vb3RoIixibG9jazoiY2VudGVyIixpbmxpbmU6Im5lYXJlc3QifSl9b3BlbkFuZE1vdmVUbyhoKXt0aGlzLnRvZ2dsZVNlcnZpY2Uu''@;'; + put 'put ''b3Blbj90aGlzLm1vdmVGb2N1c1RvKGgpOih0aGlzLnRvZ2dsZVNlcnZpY2Uub3BlbkNoYW5nZS5waXBlKEg1KDEpKS5zdWJzY3JpYmUodj0+e3YmJnRoaXMubW92ZUZvY3VzVG8oaCl9KSx0aGlzLnRvZ2dsZVNlcnZpY2Uub3Blbj0hMCl9aGFuZGxlVGV4dElucHV0KGgpe2xldCB2PSExO2Nv''@;'; + put 'put ''bnN0IHk9YVMoaC5rZXkpO2lmKGgpc3dpdGNoKHkpe2Nhc2UgTTAuRW50ZXI6dGhpcy50b2dnbGVTZXJ2aWNlLm9wZW4mJnRoaXMucHNldWRvRm9jdXMubW9kZWwmJih0aGlzLnNlbGVjdGlvblNlcnZpY2UubXVsdGlzZWxlY3RhYmxlP3RoaXMuc2VsZWN0aW9uU2VydmljZS50b2dnbGUodGhp''@;'; + put 'put ''cy5wc2V1ZG9Gb2N1cy5tb2RlbC52YWx1ZSk6dGhpcy5zZWxlY3Rpb25TZXJ2aWNlLnNlbGVjdCh0aGlzLnBzZXVkb0ZvY3VzLm1vZGVsLnZhbHVlKSx2PSEwKTticmVhaztjYXNlIE0wLlNwYWNlOnRoaXMudG9nZ2xlU2VydmljZS5vcGVufHwodGhpcy50b2dnbGVTZXJ2aWNlLm9wZW49ITAs''@;'; + put 'put ''dj0hMCk7YnJlYWs7Y2FzZSBNMC5BcnJvd1VwOnRoaXMucHJldmVudFZpZXdwb3J0U2Nyb2xsaW5nKGgpLHRoaXMub3BlbkFuZE1vdmVUbyhxMS5VUCksdj0hMDticmVhaztjYXNlIE0wLkFycm93RG93bjp0aGlzLnByZXZlbnRWaWV3cG9ydFNjcm9sbGluZyhoKSx0aGlzLm9wZW5BbmRNb3Zl''@;'; + put 'put ''VG8ocTEuRE9XTiksdj0hMDticmVhaztkZWZhdWx0Omgua2V5IT09TTAuVGFiJiYoIXRoaXMuc2VsZWN0aW9uU2VydmljZS5tdWx0aXNlbGVjdGFibGV8fGgua2V5IT09TTAuQmFja3NwYWNlKSYmaC5rZXkhPT1NMC5Fc2NhcGUmJiF0aGlzLnRvZ2dsZVNlcnZpY2Uub3BlbiYmKHRoaXMudG9n''@;'; + put 'put ''Z2xlU2VydmljZS5vcGVuPSEwKX1yZXR1cm4gdn1wcmV2ZW50Vmlld3BvcnRTY3JvbGxpbmcoaCl7aC5wcmV2ZW50RGVmYXVsdCgpLGguc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCl9Zm9jdXNJbnB1dCgpe3RoaXMudGV4dElucHV0JiZTbCh0aGlzLnBsYXRmb3JtSWQpJiZ0aGlzLnRleHRJ''@;'; + put 'put ''bnB1dC5mb2N1cygpfWFkZEZvY3VzT25CbHVyTGlzdGVuZXIoaCl7U2wodGhpcy5wbGF0Zm9ybUlkKSYmdGhpcy5yZW5kZXJlci5saXN0ZW4oaCwiYmx1ciIsdj0+e3RoaXMuZm9jdXNPdXRPZkNvbXBvbmVudCh2KSYmKHRoaXMudG9nZ2xlU2VydmljZS5vcGVuPSExLHRoaXMuY29tcG9uZW50''@;'; + put 'put ''Q2RSZWYmJnRoaXMuY29tcG9uZW50Q2RSZWYuZGV0ZWN0Q2hhbmdlcygpKX0pfWZvY3VzT3V0T2ZDb21wb25lbnQoaCl7Y29uc3Qgdj1oLnJlbGF0ZWRUYXJnZXR8fGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7cmV0dXJuISh0aGlzLnRleHRJbnB1dC5jb250YWlucyh2KXx8dGhpcy50cmlnZ2Vy''@;'; + put 'put ''LmNvbnRhaW5zKHYpfHx0aGlzLmxpc3Rib3guY29udGFpbnModikpfWZvY3VzRmlyc3RBY3RpdmUoKXtpZih0aGlzLm9wdGlvbkRhdGEubGVuZ3RoPjApaWYodGhpcy5zZWxlY3Rpb25TZXJ2aWNlLnNlbGVjdGlvbk1vZGVsLmlzRW1wdHkoKSl0aGlzLnBzZXVkb0ZvY3VzLnNlbGVjdCh0aGlz''@;'; + put 'put ''Lm9wdGlvbkRhdGFbMF0pO2Vsc2V7bGV0IGg7aD10aGlzLnNlbGVjdGlvblNlcnZpY2UubXVsdGlzZWxlY3RhYmxlP3RoaXMuc2VsZWN0aW9uU2VydmljZS5zZWxlY3Rpb25Nb2RlbC5tb2RlbFswXTp0aGlzLnNlbGVjdGlvblNlcnZpY2Uuc2VsZWN0aW9uTW9kZWwubW9kZWw7Y29uc3Qgdj10''@;'; + put 'put ''aGlzLm9wdGlvbkRhdGEuZmluZCh5PT55LnZhbHVlPT09aCk7dGhpcy5wc2V1ZG9Gb2N1cy5zZWxlY3Qodnx8dGhpcy5vcHRpb25EYXRhWzBdKX19YWRkT3B0aW9uVmFsdWVzKGgpe3RoaXMub3B0aW9uRGF0YT1ofX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyho''@;'; + put 'put ''fHxkKShDaSh5MiksQ2koRWQpLENpKHpzKSxDaShaTGUpLENpKEwyKSl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1ZmFjfSksZH0pKCkpO2xldCB6TGU9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3Rvcigpe2ZzLmFkZEljb25zKEtoLFRmLEl5LFNrKX19cmV0dXJu''@;'; + put 'put ''IGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1bW9kPWNvKHt0eXBlOmR9KSxkLlx1MDI3NWluaj1iMCh7aW1wb3J0czpbW2JhLG5kLElzLGN3LEpyLHFhLFJjLERsXSxKcixxYV19KSxkfSkoKSxSQWU9KCgpPT57Y2xhc3MgZCBleHRlbmRzIFp0e31y''@;'; + put 'put ''ZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oKXtsZXQgZztyZXR1cm4gZnVuY3Rpb24odil7cmV0dXJuKGd8fChnPWZsKGQpKSkodnx8ZCl9fSgpLGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQsc2VsZWN0b3JzOltbImNsci1pbnB1dC1jb250YWluZXIiXV0saG9zdFZhcnM6Nixob3N0QmluZGlu''@;'; + put 'put ''Z3M6ZnVuY3Rpb24oaCx2KXsyJmgmJkZpKCJjbHItZm9ybS1jb250cm9sIiwhMCkoImNsci1mb3JtLWNvbnRyb2wtZGlzYWJsZWQiLG51bGw9PXYuY29udHJvbD9udWxsOnYuY29udHJvbC5kaXNhYmxlZCkoImNsci1yb3ciLHYuYWRkR3JpZCgpKX0sZmVhdHVyZXM6W2hvKFtxZSxIZSxLLEV0''@;'; + put 'put ''XSksRG9dLG5nQ29udGVudFNlbGVjdG9yczpoTCxkZWNsczoxMCx2YXJzOjcsY29uc3RzOltbNCwibmdJZiJdLFsxLCJjbHItY29udHJvbC1jb250YWluZXIiLDMsIm5nQ2xhc3MiXSxbMSwiY2xyLWlucHV0LXdyYXBwZXIiXSxbImNsYXNzIiwiY2xyLXZhbGlkYXRlLWljb24iLCJzaGFwZSIs''@;'; + put 'put ''ImV4Y2xhbWF0aW9uLWNpcmNsZSIsImFyaWEtaGlkZGVuIiwidHJ1ZSIsNCwibmdJZiJdLFsiY2xhc3MiLCJjbHItdmFsaWRhdGUtaWNvbiIsInNoYXBlIiwiY2hlY2stY2lyY2xlIiwic3RhdHVzIiwic3VjY2VzcyIsImFyaWEtaGlkZGVuIiwidHJ1ZSIsNCwibmdJZiJdLFsic2hhcGUiLCJl''@;'; + put 'put ''eGNsYW1hdGlvbi1jaXJjbGUiLCJhcmlhLWhpZGRlbiIsInRydWUiLDEsImNsci12YWxpZGF0ZS1pY29uIl0sWyJzaGFwZSIsImNoZWNrLWNpcmNsZSIsInN0YXR1cyIsInN1Y2Nlc3MiLCJhcmlhLWhpZGRlbiIsInRydWUiLDEsImNsci12YWxpZGF0ZS1pY29uIl1dLHRlbXBsYXRlOmZ1bmN0''@;'; + put 'put ''aW9uKGgsdil7MSZoJiYoSzAoTnVlKSxOaSgwKSxybigxLHRzLDEsMCwibGFiZWwiLDApLHJ0KDIsImRpdiIsMSkoMywiZGl2IiwyKSxOaSg0LDEpLHJuKDUsdCQsMSwwLCJjZHMtaWNvbiIsMykscm4oNixIdWUsMSwwLCJjZHMtaWNvbiIsNCksbHQoKSxybig3LG4kLDEsMCwibmctY29udGVu''@;'; + put 'put ''dCIsMCkscm4oOCxyJCwxLDAsIm5nLWNvbnRlbnQiLDApLHJuKDksX0FlLDEsMCwibmctY29udGVudCIsMCksbHQoKSksMiZoJiYodXQoMSksVHQoIm5nSWYiLCF2LmxhYmVsJiZ2LmFkZEdyaWQoKSksdXQoMSksVHQoIm5nQ2xhc3MiLHYuY29udHJvbENsYXNzKCkpLHV0KDMpLFR0KCJuZ0lm''@;'; + put 'put ''Iix2LnNob3dJbnZhbGlkKSx1dCgxKSxUdCgibmdJZiIsdi5zaG93VmFsaWQpLHV0KDEpLFR0KCJuZ0lmIix2LnNob3dIZWxwZXIpLHV0KDEpLFR0KCJuZ0lmIix2LnNob3dJbnZhbGlkKSx1dCgxKSxUdCgibmdJZiIsdi5zaG93VmFsaWQpKX0sZGVwZW5kZW5jaWVzOltObyxvdCxsYyxab10s''@;'; + put 'put ''ZW5jYXBzdWxhdGlvbjoyfSksZH0pKCkscHY9KCgpPT57Y2xhc3MgZCBleHRlbmRzIFNue2NvbnN0cnVjdG9yKGgsdix5LEMsSSl7c3VwZXIoaCxSQWUsdix5LEMsSSksdGhpcy5pbmRleD0xfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShLdChVaSks''@;'; + put 'put ''S3Qoa3MpLEt0KERmLDEwKSxLdChHYSksS3QoYm8pKX0sZC5cdTAyNzVkaXI9V2koe3R5cGU6ZCxzZWxlY3RvcnM6W1siIiwiY2xySW5wdXQiLCIiXV0saG9zdFZhcnM6Mixob3N0QmluZGluZ3M6ZnVuY3Rpb24oaCx2KXsyJmgmJkZpKCJjbHItaW5wdXQiLCEwKX0sZmVhdHVyZXM6W0RvXX0p''@;'; + put 'put ''LGR9KSgpLEJBZT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKCl7ZnMuYWRkSWNvbnMoS2gsVGYpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVtb2Q9Y28oe3R5cGU6ZH0pLGQuXHUwMjc1aW5qPWIwKHtpbXBvcnRzOltbYmEsbmQs''@;'; + put 'put ''SXMsSnJdLEpyXX0pLGR9KSgpLGtmZT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKCl7dGhpcy5fZm9jdXNlZD1uZXcgY3MoITEpfWdldCBmb2N1c0NoYW5nZSgpe3JldHVybiB0aGlzLl9mb2N1c2VkLmFzT2JzZXJ2YWJsZSgpfXNldCBmb2N1c2VkKGgpe3RoaXMuX2ZvY3VzZWQubmV4dCho''@;'; + put 'put ''KX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1ZmFjfSksZH0pKCksR0xlPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoKXtmcy5hZGRJY29ucyhLaCxUZil9fXJldHVybiBk''@;'; + put 'put ''Llx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1MDI3NW1vZD1jbyh7dHlwZTpkfSksZC5cdTAyNzVpbmo9YjAoe2ltcG9ydHM6W1tiYSxCQWUsSXNdXX0pLGR9KSgpLFdMZT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKCl7dGhpcy5fcHJldmlvdXNGb2N1c1Ry''@;'; + put 'put ''YXBzPVtdfWdldCBjdXJyZW50KCl7cmV0dXJuIHRoaXMuX2N1cnJlbnR9c2V0IGN1cnJlbnQoaCl7dGhpcy5fcHJldmlvdXNGb2N1c1RyYXBzLnB1c2godGhpcy5fY3VycmVudCksdGhpcy5fY3VycmVudD1ofWdldCBuYkZvY3VzVHJhcHBlcnMoKXtyZXR1cm4gdGhpcy5fcHJldmlvdXNGb2N1''@;'; + put 'put ''c1RyYXBzLmxlbmd0aH1hY3RpdmF0ZVByZXZpb3VzVHJhcHBlcigpe3RoaXMuX2N1cnJlbnQ9dGhpcy5fcHJldmlvdXNGb2N1c1RyYXBzLnBvcCgpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVwcm92PUFpKHt0b2tlbjpkLGZhY3Rv''@;'; + put 'put ''cnk6ZC5cdTAyNzVmYWMscHJvdmlkZWRJbjoicm9vdCJ9KSxkfSkoKSxmdz0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgsdix5LEMsSSl7dGhpcy5lbD1oLHRoaXMuaW5qZWN0b3I9dix0aGlzLmZvY3VzVHJhcHNUcmFja2VyPXksdGhpcy5yZW5kZXJlcj1DLHRoaXMucGxhdGZvcm1JZD1J''@;'; + put 'put ''LHRoaXMubG9jYWxGb2N1c0VzY2FwZWQ9ITEsdGhpcy5fY29uZmlnPXtzdHJpY3Q6ITB9LHRoaXMuZG9jdW1lbnQ9dGhpcy5pbmplY3Rvci5nZXQocHMpLHRoaXMuZm9jdXNUcmFwc1RyYWNrZXIuY3VycmVudD10aGlzfXNldCBjb25maWcoaCl7dGhpcy5fY29uZmlnPU9iamVjdC5hc3NpZ24o''@;'; + put 'put ''dGhpcy5fY29uZmlnLCIiPT09aD97fTpoKX1vbkZvY3VzSW4oaCl7Y29uc3Qgdj10aGlzLmVsLm5hdGl2ZUVsZW1lbnQ7dGhpcy5mb2N1c1RyYXBzVHJhY2tlci5jdXJyZW50IT09dGhpc3x8IVNsKHRoaXMucGxhdGZvcm1JZCl8fHRoaXMubG9jYWxGb2N1c0VzY2FwZWR8fHYuY29udGFpbnMo''@;'; + put 'put ''aC50YXJnZXQpfHwoaC50YXJnZXQ9PT10aGlzLnRvcFJlYm91bmRFbCYmdi5jb250YWlucyhoLnJlbGF0ZWRUYXJnZXQpPyh0aGlzLmZvY3VzTGFzdEZvY3VzYWJsZSgpLHRoaXMuZm9jdXNUcmFwRWxJZk91dHNpZGUoKSk6aC50YXJnZXQ9PT10aGlzLmJvdHRvbVJlYm91bmRFbCYmdi5jb250''@;'; + put 'put ''YWlucyhoLnJlbGF0ZWRUYXJnZXQpPyh0aGlzLmZvY3VzRmlyc3RGb2N1c2FibGUoKSx0aGlzLmZvY3VzVHJhcEVsSWZPdXRzaWRlKCkpOnRoaXMuX2NvbmZpZy5zdHJpY3Q/dGhpcy5lbC5uYXRpdmVFbGVtZW50LmZvY3VzKCk6dGhpcy5sb2NhbEZvY3VzRXNjYXBlZD0hMCl9Y3JlYXRlRm9j''@;'; + put 'put ''dXNhYmxlT2ZmU2NyZWVuRWwoKXtjb25zdCBoPXRoaXMuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpO3JldHVybiB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZShoLCJ0YWJpbmRleCIsIjAiKSx0aGlzLnJlbmRlcmVyLmFkZENsYXNzKGgsIm9mZnNjcmVlbi1mb2N1cy1yZWJvdW5k''@;'; + put 'put ''ZXIiKSxofWFkZFJlYm91bmRFbHMoKXtpZihTbCh0aGlzLnBsYXRmb3JtSWQpKXt0aGlzLnRvcFJlYm91bmRFbD10aGlzLmNyZWF0ZUZvY3VzYWJsZU9mZlNjcmVlbkVsKCksdGhpcy5ib3R0b21SZWJvdW5kRWw9dGhpcy5jcmVhdGVGb2N1c2FibGVPZmZTY3JlZW5FbCgpO2NvbnN0IGg9dGhp''@;'; + put 'put ''cy5lbC5uYXRpdmVFbGVtZW50O3RoaXMucmVuZGVyZXIuaW5zZXJ0QmVmb3JlKGgucGFyZW50RWxlbWVudCx0aGlzLnRvcFJlYm91bmRFbCxoKSxoLm5leHRTaWJsaW5nP3RoaXMucmVuZGVyZXIuaW5zZXJ0QmVmb3JlKGgucGFyZW50Tm9kZSx0aGlzLmJvdHRvbVJlYm91bmRFbCxoLm5leHRT''@;'; + put 'put ''aWJsaW5nKTp0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKGgucGFyZW50Tm9kZSx0aGlzLmJvdHRvbVJlYm91bmRFbCl9fXJlbW92ZVJlYm91bmRFbHMoKXtTbCh0aGlzLnBsYXRmb3JtSWQpJiZ0aGlzLnRvcFJlYm91bmRFbCYmdGhpcy5ib3R0b21SZWJvdW5kRWwmJih0aGlzLnBhcmVudEVs''@;'; + put 'put ''ZW1lbnQucmVtb3ZlQ2hpbGQodGhpcy50b3BSZWJvdW5kRWwpLHRoaXMucGFyZW50RWxlbWVudC5yZW1vdmVDaGlsZCh0aGlzLmJvdHRvbVJlYm91bmRFbCksZGVsZXRlIHRoaXMudG9wUmVib3VuZEVsLGRlbGV0ZSB0aGlzLmJvdHRvbVJlYm91bmRFbCl9c2V0UHJldmlvdXNGb2N1cygpe3Ro''@;'; + put 'put ''aXMucHJldmlvdXNBY3RpdmVFbGVtZW50JiZ0aGlzLnByZXZpb3VzQWN0aXZlRWxlbWVudC5mb2N1cyYmdGhpcy5wcmV2aW91c0FjdGl2ZUVsZW1lbnQuZm9jdXMoKX1uZ09uSW5pdCgpe1NsKHRoaXMucGxhdGZvcm1JZCkmJih0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZSh0aGlzLmVsLm5h''@;'; + put 'put ''dGl2ZUVsZW1lbnQsInRhYmluZGV4IiwiLTEiKSx0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKSl9bmdBZnRlclZpZXdJbml0KCl7U2wodGhpcy5wbGF0Zm9ybUlkKSYmKHRoaXMucHJldmlvdXNBY3RpdmVFbGVtZW50PXRoaXMuZG9jdW1lbnQuYWN0aXZlRWxlbWVudCx0aGlzLnBhcmVu''@;'; + put 'put ''dEVsZW1lbnQ9dGhpcy5lbC5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQpLHRoaXMuYWRkUmVib3VuZEVscygpfWdldCBwb3RlbnRpYWxseUZvY3VzYWJsZUVscygpe3JldHVyblsuLi50aGlzLmVsLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvckFsbCgnW2hyZWZdOm5vdChbdGFiaW5k''@;'; + put 'put ''ZXg9Ii0xIl0pLCBidXR0b246bm90KFtkaXNhYmxlZF0pOm5vdChbdGFiaW5kZXg9Ii0xIl0pLCBpbnB1dDpub3QoW2Rpc2FibGVkXSk6bm90KFt0YWJpbmRleD0iLTEiXSksIHNlbGVjdDpub3QoW2Rpc2FibGVkXSk6bm90KFt0YWJpbmRleD0iLTEiXSksIHRleHRhcmVhOm5vdChbZGlzYWJs''@;'; + put 'put ''ZWRdKTpub3QoW3RhYmluZGV4PSItMSJdKSwgW2NvbnRlbnRlZGl0YWJsZT0idHJ1ZSJdOm5vdChbdGFiaW5kZXg9Ii0xIl0pLCBbdGFiaW5kZXhdOm5vdChbdGFiaW5kZXg9Ii0xIl0pICcpXX1mb2N1c0ZpcnN0Rm9jdXNhYmxlKCl7Zm9yKGxldCBoPTA7aDx0aGlzLnBvdGVudGlhbGx5Rm9j''@;'; + put 'put ''dXNhYmxlRWxzLmxlbmd0aCYmKHRoaXMuZmlyc3RGb2N1c2FibGVFbD10aGlzLmZvY3VzRWxlbWVudCh0aGlzLnBvdGVudGlhbGx5Rm9jdXNhYmxlRWxzW2hdKSwhdGhpcy5maXJzdEZvY3VzYWJsZUVsKTtoKyspO31mb2N1c0xhc3RGb2N1c2FibGUoKXtmb3IobGV0IGg9dGhpcy5wb3RlbnRp''@;'; + put 'put ''YWxseUZvY3VzYWJsZUVscy5sZW5ndGgtMTtoPj0wJiYodGhpcy5sYXN0Rm9jdXNhYmxlRWw9dGhpcy5mb2N1c0VsZW1lbnQodGhpcy5wb3RlbnRpYWxseUZvY3VzYWJsZUVsc1toXSksIXRoaXMubGFzdEZvY3VzYWJsZUVsKTtoLS0pO31mb2N1c1RyYXBFbElmT3V0c2lkZSgpe3RoaXMuZWwu''@;'; + put 'put ''bmF0aXZlRWxlbWVudC5jb250YWlucyhkb2N1bWVudC5hY3RpdmVFbGVtZW50KXx8dGhpcy5lbC5uYXRpdmVFbGVtZW50LmZvY3VzKCl9Zm9jdXNFbGVtZW50KGgpe3JldHVybiBoJiZoLmZvY3VzJiYoaC5mb2N1cygpLGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1oKT9oOm51bGx9bmdPbkRl''@;'; + put 'put ''c3Ryb3koKXt0aGlzLnJlbW92ZVJlYm91bmRFbHMoKSx0aGlzLnNldFByZXZpb3VzRm9jdXMoKSx0aGlzLmZvY3VzVHJhcHNUcmFja2VyLmFjdGl2YXRlUHJldmlvdXNUcmFwcGVyKCl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKEt0KGJvKSxLdChr''@;'; + put 'put ''cyksS3QoV0xlKSxLdChHYSksS3QoTDIpKX0sZC5cdTAyNzVkaXI9V2koe3R5cGU6ZCxzZWxlY3RvcnM6W1siIiwiY2xyRm9jdXNUcmFwIiwiIl1dLGhvc3RCaW5kaW5nczpmdW5jdGlvbihoLHYpezEmaCYmR24oImZvY3VzaW4iLGZ1bmN0aW9uKEMpe3JldHVybiB2Lm9uRm9jdXNJbihDKX0s''@;'; + put 'put ''MCxIbCl9LGlucHV0czp7Y29uZmlnOlsiY2xyRm9jdXNUcmFwIiwiY29uZmlnIl19fSksZH0pKCksc3E9KCgpPT57Y2xhc3MgZHt9cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1bW9kPWNvKHt0eXBlOmR9KSxkLlx1MDI3NWluaj1iMCh7''@;'; + put 'put ''aW1wb3J0czpbW2JhXV19KSxkfSkoKTtjb25zdCBRTGU9L2QrLittKy4reSsvaSxKTGU9L20rLitkKy4reSsvaSxYTGU9L2QrfG0rfHkrL2ksS0xlPS9cZCsvZywkTGU9L01vYmkvaSxxTGU9L1x1MjAwZi9nLHVxPXtuYW1lOiJMSVRUTEVfRU5ESUFOIixmb3JtYXQ6WyJERCIsIk1NIiwiWVlZ''@;'; + put 'put ''WSJdfSx4ZmU9e25hbWU6Ik1JRERMRV9FTkRJQU4iLGZvcm1hdDpbIk1NIiwiREQiLCJZWVlZIl19LGVPZT17bmFtZToiQklHX0VORElBTiIsZm9ybWF0OlsiWVlZWSIsIk1NIiwiREQiXX07ZnVuY3Rpb24gRkFlKGQsZyl7cmV0dXJuIG5ldyBEYXRlKGQsZysxLDApLmdldERhdGUoKX1jbGFz''@;'; + put 'put ''cyBvT2V7Y29uc3RydWN0b3IoZyxoPSExLHY9ITEseT0hMSxDPSExLEk9ITEpe3RoaXMuZGF5TW9kZWw9Zyx0aGlzLmlzVG9kYXlzRGF0ZT1oLHRoaXMuaXNFeGNsdWRlZD12LHRoaXMuaXNEaXNhYmxlZD15LHRoaXMuaXNTZWxlY3RlZD1DLHRoaXMuaXNGb2N1c2FibGU9SX1nZXQgdGFiSW5k''@;'; + put 'put ''ZXgoKXtyZXR1cm4gdGhpcy5pc0ZvY3VzYWJsZT8wOi0xfX1jbGFzcyBjNHtjb25zdHJ1Y3RvcihnLGgsdil7dGhpcy55ZWFyPWcsdGhpcy5tb250aD1oLHRoaXMuZGF0ZT12fWlzRXF1YWwoZyl7cmV0dXJuISFnJiZ0aGlzLnllYXI9PT1nLnllYXImJnRoaXMubW9udGg9PT1nLm1vbnRoJiZ0''@;'; + put 'put ''aGlzLmRhdGU9PT1nLmRhdGV9dG9EYXRlKCl7cmV0dXJuIG5ldyBEYXRlKHRoaXMueWVhcix0aGlzLm1vbnRoLHRoaXMuZGF0ZSl9aW5jcmVtZW50QnkoZyl7Y29uc3QgaD1uZXcgRGF0ZSh0aGlzLnllYXIsdGhpcy5tb250aCx0aGlzLmRhdGUrZyk7cmV0dXJuIG5ldyBjNChoLmdldEZ1bGxZ''@;'; + put 'put ''ZWFyKCksaC5nZXRNb250aCgpLGguZ2V0RGF0ZSgpKX1jbG9uZSgpe3JldHVybiBuZXcgYzQodGhpcy55ZWFyLHRoaXMubW9udGgsdGhpcy5kYXRlKX10b0NvbXBhcmlzb25TdHJpbmcoKXtyZXR1cm5gJHt0aGlzLnllYXJ9JHt0aGlzLnBhZCh0aGlzLm1vbnRoKX0ke3RoaXMucGFkKHRoaXMu''@;'; + put 'put ''ZGF0ZSl9YH1wYWQoZyl7cmV0dXJuIGc8MTA/YDAke2d9YDpgJHtnfWB9dG9EYXRlU3RyaW5nKCl7cmV0dXJuIHRoaXMudG9EYXRlKCkudG9Mb2NhbGVEYXRlU3RyaW5nKCl9fWNsYXNzIGFPZXtjb25zdHJ1Y3RvcihnLGgsdix5LEMsSSl7dGhpcy5jYWxlbmRhcj1nLHRoaXMuc2VsZWN0ZWRE''@;'; + put 'put ''YXk9aCx0aGlzLmZvY3VzYWJsZURheT12LHRoaXMudG9kYXk9eSx0aGlzLmZpcnN0RGF5T2ZXZWVrPUMsdGhpcy5leGNsdWRlZERhdGVzPUksdGhpcy5jdXJyTW9udGhEYXlWaWV3cz1bXSx0aGlzLmluaXRpYWxpemVDYWxlbmRhclZpZXcoKX1nZXQgY2FsZW5kYXJWaWV3KCl7cmV0dXJuIHRo''@;'; + put 'put ''aXMuX2NhbGVuZGFyVmlld31pbml0aWFsaXplQ2FsZW5kYXJWaWV3KCl7Y29uc3QgZz10aGlzLmNhbGVuZGFyLnByZXZpb3VzTW9udGgoKSxoPXRoaXMuY2FsZW5kYXIubmV4dE1vbnRoKCksdj10aGlzLm51bURheXNGcm9tUHJldk1vbnRoSW5DYWxWaWV3KHRoaXMuY2FsZW5kYXIueWVhcix0''@;'; + put 'put ''aGlzLmNhbGVuZGFyLm1vbnRoKSx5PTQyLSh0aGlzLmNhbGVuZGFyLmRheXMubGVuZ3RoK3YpO2xldCBDPVtdLEk9W107dj4wJiYoQz10aGlzLmdlbmVyYXRlRGF5Vmlld01vZGVscyhnLmRheXMuc2xpY2UoLTEqdiksITAsITEpKSx0aGlzLmN1cnJNb250aERheVZpZXdzPXRoaXMuZ2VuZXJh''@;'; + put 'put ''dGVEYXlWaWV3TW9kZWxzKHRoaXMuY2FsZW5kYXIuZGF5cywhMSwhMCkseT4wJiYoST10aGlzLmdlbmVyYXRlRGF5Vmlld01vZGVscyhoLmRheXMuc2xpY2UoMCx5KSwhMCwhMSkpLHRoaXMuX2NhbGVuZGFyVmlldz10aGlzLmdlbmVyYXRlQ2FsZW5kYXJWaWV3KEMsdGhpcy5jdXJyTW9udGhE''@;'; + put 'put ''YXlWaWV3cyxJKSx0aGlzLmluaXRpYWxpemVTZWxlY3RlZERheSgpLHRoaXMuaW5pdGlhbGl6ZUZvY3VzYWJsZURheSgpfWlzRGF0ZUV4Y2x1ZGVkKGcpe2NvbnN0e21pbkRhdGU6aCxtYXhEYXRlOnZ9PXRoaXMuZXhjbHVkZWREYXRlcyx5PWgudG9Db21wYXJpc29uU3RyaW5nKCksQz12LnRv''@;'; + put 'put ''Q29tcGFyaXNvblN0cmluZygpLEk9Zy50b0NvbXBhcmlzb25TdHJpbmcoKTtyZXR1cm4hKEk+PXkmJkk8PUMpfWdlbmVyYXRlRGF5Vmlld01vZGVscyhnLGgsdil7Y29uc3QgeT1nLm1hcChDPT5uZXcgb09lKEMsITEsaCx0aGlzLmlzRGF0ZUV4Y2x1ZGVkKEMpLCExLCExKSk7cmV0dXJuIHYm''@;'; + put 'put ''JnRoaXMuY2FsZW5kYXIuaXNEYXlJbkNhbGVuZGFyKHRoaXMudG9kYXkpJiYoeVt0aGlzLnRvZGF5LmRhdGUtMV0uaXNUb2RheXNEYXRlPSEwKSx5fW51bURheXNGcm9tUHJldk1vbnRoSW5DYWxWaWV3KGcsaCl7Y29uc3Qgdj1mdW5jdGlvbiBuT2UoZCxnLGgpe3JldHVybiBuZXcgRGF0ZShk''@;'; + put 'put ''LGcsaCkuZ2V0RGF5KCl9KGcsaCwxKTtyZXR1cm4gdj49dGhpcy5maXJzdERheU9mV2Vlaz92LXRoaXMuZmlyc3REYXlPZldlZWs6Nyt2LXRoaXMuZmlyc3REYXlPZldlZWt9aXNEYXlJbkNhbGVuZGFyVmlldyhnKXtyZXR1cm4hIXRoaXMuY2FsZW5kYXIuaXNEYXlJbkNhbGVuZGFyKGcpfWdl''@;'; + put 'put ''bmVyYXRlQ2FsZW5kYXJWaWV3KGcsaCx2KXtjb25zdCB5PVsuLi5nLC4uLmgsLi4udl0sQz1bXTtmb3IobGV0IEk9MDtJPDY7SSsrKUNbSV09eS5zbGljZSg3KkksNyooSSsxKSk7cmV0dXJuIEN9aW5pdGlhbGl6ZVNlbGVjdGVkRGF5KCl7dGhpcy5zZWxlY3RlZERheSYmdGhpcy5pc0RheUlu''@;'; + put 'put ''Q2FsZW5kYXJWaWV3KHRoaXMuc2VsZWN0ZWREYXkpJiYodGhpcy5jdXJyTW9udGhEYXlWaWV3c1t0aGlzLnNlbGVjdGVkRGF5LmRhdGUtMV0uaXNTZWxlY3RlZD0hMCl9aW5pdGlhbGl6ZUZvY3VzYWJsZURheSgpe3RoaXMuZm9jdXNhYmxlRGF5JiZ0aGlzLmlzRGF5SW5DYWxlbmRhclZpZXco''@;'; + put 'put ''dGhpcy5mb2N1c2FibGVEYXkpP3RoaXMuc2V0Rm9jdXNhYmxlRmxhZyh0aGlzLmZvY3VzYWJsZURheSwhMCk6dGhpcy5zZWxlY3RlZERheSYmdGhpcy5pc0RheUluQ2FsZW5kYXJWaWV3KHRoaXMuc2VsZWN0ZWREYXkpPyh0aGlzLnNldEZvY3VzYWJsZUZsYWcodGhpcy5zZWxlY3RlZERheSwh''@;'; + put 'put ''MCksdGhpcy5mb2N1c2FibGVEYXk9dGhpcy5zZWxlY3RlZERheS5jbG9uZSgpKTp0aGlzLmlzRGF5SW5DYWxlbmRhclZpZXcodGhpcy50b2RheSk/KHRoaXMuc2V0Rm9jdXNhYmxlRmxhZyh0aGlzLnRvZGF5LCEwKSx0aGlzLmZvY3VzYWJsZURheT10aGlzLnRvZGF5LmNsb25lKCkpOih0aGlz''@;'; + put 'put ''LmZvY3VzYWJsZURheT1uZXcgYzQodGhpcy5jYWxlbmRhci55ZWFyLHRoaXMuY2FsZW5kYXIubW9udGgsMTUpLHRoaXMuc2V0Rm9jdXNhYmxlRmxhZyh0aGlzLmZvY3VzYWJsZURheSwhMCkpfXNldEZvY3VzYWJsZUZsYWcoZyxoKXtnJiYodGhpcy5jdXJyTW9udGhEYXlWaWV3c1tnLmRhdGUt''@;'; + put 'put ''MV0uaXNGb2N1c2FibGU9aCl9dXBkYXRlRm9jdXNhYmxlRGF5KGcpe3RoaXMuc2V0Rm9jdXNhYmxlRmxhZyh0aGlzLmZvY3VzYWJsZURheSwhMSksdGhpcy5zZXRGb2N1c2FibGVGbGFnKGcsITApLHRoaXMuZm9jdXNhYmxlRGF5PWd9fWxldCAkaj0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9y''@;'; + put 'put ''KGgpe3RoaXMubG9jYWxlPWgsdGhpcy5fZmlyc3REYXlPZldlZWs9MCx0aGlzLmluaXRpYWxpemVMb2NhbGVEYXRhKCl9Z2V0IGZpcnN0RGF5T2ZXZWVrKCl7cmV0dXJuIHRoaXMuX2ZpcnN0RGF5T2ZXZWVrfWdldCBsb2NhbGVEYXlzKCl7cmV0dXJuIHRoaXMuX2xvY2FsZURheXN9Z2V0IGxv''@;'; + put 'put ''Y2FsZURheXNOYXJyb3coKXtyZXR1cm4gdGhpcy5fbG9jYWxlRGF5cy5tYXAoaD0+aC5uYXJyb3cpfWdldCBsb2NhbGVNb250aHNBYmJyZXZpYXRlZCgpe3JldHVybiB0aGlzLl9sb2NhbGVNb250aHNBYmJyZXZpYXRlZH1nZXQgbG9jYWxlTW9udGhzV2lkZSgpe3JldHVybiB0aGlzLl9sb2Nh''@;'; + put 'put ''bGVNb250aHNXaWRlfWdldCBsb2NhbGVEYXRlRm9ybWF0KCl7cmV0dXJuIHRoaXMuX2xvY2FsZURhdGVGb3JtYXR9aW5pdGlhbGl6ZUxvY2FsZURhdGEoKXt0aGlzLmluaXRpYWxpemVGaXJzdERheU9mV2VlaygpLHRoaXMuaW5pdGlhbGl6ZUxvY2FsZURhdGVGb3JtYXQoKSx0aGlzLmluaXRp''@;'; + put 'put ''YWxpemVMb2NhbGVNb250aHNBYmJyZXZpYXRlZCgpLHRoaXMuaW5pdGlhbGl6ZUxvY2FsZU1vbnRoc1dpZGUoKSx0aGlzLmluaXRpYWxpemVMb2NhbGVEYXlzKCl9aW5pdGlhbGl6ZUxvY2FsZURheXMoKXtjb25zdCBoPVtdLHY9cnAodGhpcy5sb2NhbGUsTjIuU3RhbmRhbG9uZSxDbC5XaWRl''@;'; + put 'put ''KS5zbGljZSgpLHk9cnAodGhpcy5sb2NhbGUsTjIuU3RhbmRhbG9uZSxDbC5OYXJyb3cpLnNsaWNlKCksQz10aGlzLmZpcnN0RGF5T2ZXZWVrO2ZvcihsZXQgST0wO0k8NztJKyspaC5wdXNoKHtkYXk6dltJXSxuYXJyb3c6eVtJXX0pO2lmKEM+MCl7Y29uc3QgST1oLnNwbGljZSgwLEMpO2gu''@;'; + put 'put ''cHVzaCguLi5JKX10aGlzLl9sb2NhbGVEYXlzPWh9aW5pdGlhbGl6ZUxvY2FsZU1vbnRoc0FiYnJldmlhdGVkKCl7dGhpcy5fbG9jYWxlTW9udGhzQWJicmV2aWF0ZWQ9UlQodGhpcy5sb2NhbGUsTjIuU3RhbmRhbG9uZSxDbC5BYmJyZXZpYXRlZCkuc2xpY2UoKX1pbml0aWFsaXplTG9jYWxl''@;'; + put 'put ''TW9udGhzV2lkZSgpe3RoaXMuX2xvY2FsZU1vbnRoc1dpZGU9UlQodGhpcy5sb2NhbGUsTjIuU3RhbmRhbG9uZSxDbC5XaWRlKS5zbGljZSgpfWluaXRpYWxpemVGaXJzdERheU9mV2Vlaygpe3RoaXMuX2ZpcnN0RGF5T2ZXZWVrPWZ1bmN0aW9uIFByZShkKXtyZXR1cm4gcmMoZClbTW8uRmly''@;'; + put 'put ''c3REYXlPZldlZWtdfSh0aGlzLmxvY2FsZSl9aW5pdGlhbGl6ZUxvY2FsZURhdGVGb3JtYXQoKXt0aGlzLl9sb2NhbGVEYXRlRm9ybWF0PWZ1bmN0aW9uIGo2KGQsZyl7cmV0dXJuIFczKHJjKGQpW01vLkRhdGVGb3JtYXRdLGcpfSh0aGlzLmxvY2FsZSxwMS5TaG9ydCl9fXJldHVybiBkLlx1''@;'; + put 'put ''MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKENpKFlkKSl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1ZmFjfSksZH0pKCk7Y2xhc3Mgdjh7Y29uc3RydWN0b3IoZyxoKXt0aGlzLnllYXI9Zyx0aGlzLm1vbnRoPWgsdGhpcy5pbml0aWFsaXpl''@;'; + put 'put ''RGF5c0luQ2FsZW5kYXIoKX1pbml0aWFsaXplRGF5c0luQ2FsZW5kYXIoKXtjb25zdCBnPUZBZSh0aGlzLnllYXIsdGhpcy5tb250aCk7dGhpcy5kYXlzPUFycmF5KGcpLmZpbGwobnVsbCkubWFwKChoLHYpPT5uZXcgYzQodGhpcy55ZWFyLHRoaXMubW9udGgsdisxKSl9aXNFcXVhbChnKXty''@;'; + put 'put ''ZXR1cm4hIWcmJnRoaXMueWVhcj09PWcueWVhciYmdGhpcy5tb250aD09PWcubW9udGh9aXNEYXlJbkNhbGVuZGFyKGcpe3JldHVybiEhZyYmdGhpcy55ZWFyPT09Zy55ZWFyJiZ0aGlzLm1vbnRoPT09Zy5tb250aH1wcmV2aW91c01vbnRoKCl7cmV0dXJuIDA9PT10aGlzLm1vbnRoP25ldyB2''@;'; + put 'put ''OCh0aGlzLnllYXItMSwxMSk6bmV3IHY4KHRoaXMueWVhcix0aGlzLm1vbnRoLTEpfW5leHRNb250aCgpe3JldHVybiAxMT09PXRoaXMubW9udGg/bmV3IHY4KHRoaXMueWVhcisxLDApOm5ldyB2OCh0aGlzLnllYXIsdGhpcy5tb250aCsxKX19bGV0IGd2PSgoKT0+e2NsYXNzIGR7Y29uc3Ry''@;'; + put 'put ''dWN0b3IoKXt0aGlzLl90b2RheXNGdWxsRGF0ZT1uZXcgRGF0ZSx0aGlzLl9zZWxlY3RlZERheUNoYW5nZT1uZXcgJGUsdGhpcy5fZGlzcGxheWVkQ2FsZW5kYXJDaGFuZ2U9bmV3ICRlLHRoaXMuX2ZvY3VzT25DYWxlbmRhckNoYW5nZT1uZXcgJGUsdGhpcy5fZm9jdXNlZERheUNoYW5nZT1u''@;'; + put 'put ''ZXcgJGV9Z2V0IGRpc3BsYXllZENhbGVuZGFyKCl7cmV0dXJuIHRoaXMuX2Rpc3BsYXllZENhbGVuZGFyfXNldERpc3BsYXllZENhbGVuZGFyKGgpe3RoaXMuX2Rpc3BsYXllZENhbGVuZGFyLmlzRXF1YWwoaCl8fCh0aGlzLl9kaXNwbGF5ZWRDYWxlbmRhcj1oLHRoaXMuX2Rpc3BsYXllZENh''@;'; + put 'put ''bGVuZGFyQ2hhbmdlLm5leHQoKSl9aW5pdGlhbGl6ZVRvZGF5c0RhdGUoKXt0aGlzLl90b2RheXNGdWxsRGF0ZT1uZXcgRGF0ZSx0aGlzLl90b2RheT1uZXcgYzQodGhpcy5fdG9kYXlzRnVsbERhdGUuZ2V0RnVsbFllYXIoKSx0aGlzLl90b2RheXNGdWxsRGF0ZS5nZXRNb250aCgpLHRoaXMu''@;'; + put 'put ''X3RvZGF5c0Z1bGxEYXRlLmdldERhdGUoKSl9Z2V0IHRvZGF5KCl7cmV0dXJuIHRoaXMuX3RvZGF5fWdldCBzZWxlY3RlZERheUNoYW5nZSgpe3JldHVybiB0aGlzLl9zZWxlY3RlZERheUNoYW5nZS5hc09ic2VydmFibGUoKX1ub3RpZnlTZWxlY3RlZERheUNoYW5nZWQoaCl7dGhpcy5zZWxl''@;'; + put 'put ''Y3RlZERheT1oLHRoaXMuX3NlbGVjdGVkRGF5Q2hhbmdlLm5leHQoaCl9aW5pdGlhbGl6ZUNhbGVuZGFyKCl7dGhpcy5mb2N1c2VkRGF5PW51bGwsdGhpcy5pbml0aWFsaXplVG9kYXlzRGF0ZSgpLHRoaXMuX2Rpc3BsYXllZENhbGVuZGFyPXRoaXMuc2VsZWN0ZWREYXk/bmV3IHY4KHRoaXMu''@;'; + put 'put ''c2VsZWN0ZWREYXkueWVhcix0aGlzLnNlbGVjdGVkRGF5Lm1vbnRoKTpuZXcgdjgodGhpcy50b2RheS55ZWFyLHRoaXMudG9kYXkubW9udGgpfWNoYW5nZU1vbnRoKGgpe3RoaXMuc2V0RGlzcGxheWVkQ2FsZW5kYXIobmV3IHY4KHRoaXMuX2Rpc3BsYXllZENhbGVuZGFyLnllYXIsaCkpfWNo''@;'; + put 'put ''YW5nZVllYXIoaCl7dGhpcy5zZXREaXNwbGF5ZWRDYWxlbmRhcihuZXcgdjgoaCx0aGlzLl9kaXNwbGF5ZWRDYWxlbmRhci5tb250aCkpfW1vdmVUb05leHRNb250aCgpe3RoaXMuc2V0RGlzcGxheWVkQ2FsZW5kYXIodGhpcy5fZGlzcGxheWVkQ2FsZW5kYXIubmV4dE1vbnRoKCkpfW1vdmVU''@;'; + put 'put ''b1ByZXZpb3VzTW9udGgoKXt0aGlzLnNldERpc3BsYXllZENhbGVuZGFyKHRoaXMuX2Rpc3BsYXllZENhbGVuZGFyLnByZXZpb3VzTW9udGgoKSl9bW92ZVRvQ3VycmVudE1vbnRoKCl7dGhpcy5kaXNwbGF5ZWRDYWxlbmRhci5pc0RheUluQ2FsZW5kYXIodGhpcy50b2RheSl8fHRoaXMuc2V0''@;'; + put 'put ''RGlzcGxheWVkQ2FsZW5kYXIobmV3IHY4KHRoaXMudG9kYXkueWVhcix0aGlzLnRvZGF5Lm1vbnRoKSksdGhpcy5fZm9jdXNPbkNhbGVuZGFyQ2hhbmdlLm5leHQoKX1pbmNyZW1lbnRGb2N1c0RheShoKXt0aGlzLmZvY3VzZWREYXk9dGhpcy5mb2N1c2VkRGF5LmluY3JlbWVudEJ5KGgpLHRo''@;'; + put 'put ''aXMuX2Rpc3BsYXllZENhbGVuZGFyLmlzRGF5SW5DYWxlbmRhcih0aGlzLmZvY3VzZWREYXkpP3RoaXMuX2ZvY3VzZWREYXlDaGFuZ2UubmV4dCh0aGlzLmZvY3VzZWREYXkpOnRoaXMuc2V0RGlzcGxheWVkQ2FsZW5kYXIobmV3IHY4KHRoaXMuZm9jdXNlZERheS55ZWFyLHRoaXMuZm9jdXNl''@;'; + put 'put ''ZERheS5tb250aCkpLHRoaXMuX2ZvY3VzT25DYWxlbmRhckNoYW5nZS5uZXh0KCl9Z2V0IGRpc3BsYXllZENhbGVuZGFyQ2hhbmdlKCl7cmV0dXJuIHRoaXMuX2Rpc3BsYXllZENhbGVuZGFyQ2hhbmdlLmFzT2JzZXJ2YWJsZSgpfWdldCBmb2N1c09uQ2FsZW5kYXJDaGFuZ2UoKXtyZXR1cm4g''@;'; + put 'put ''dGhpcy5fZm9jdXNPbkNhbGVuZGFyQ2hhbmdlLmFzT2JzZXJ2YWJsZSgpfWdldCBmb2N1c2VkRGF5Q2hhbmdlKCl7cmV0dXJuIHRoaXMuX2ZvY3VzZWREYXlDaGFuZ2UuYXNPYnNlcnZhYmxlKCl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1''@;'; + put 'put ''MDI3NXByb3Y9QWkoe3Rva2VuOmQsZmFjdG9yeTpkLlx1MDI3NWZhY30pLGR9KSgpLEJMPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2KXt0aGlzLl9uZ1pvbmU9aCx0aGlzLnBsYXRmb3JtSWQ9dn1mb2N1c0NlbGwoaCl7dGhpcy5fbmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpPT57''@;'; + put 'put ''dGhpcy5uZ1pvbmVJc1N0YWJsZUluQnJvd3NlcigpLnN1YnNjcmliZSgoKT0+e2NvbnN0IHY9aC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ1t0YWJpbmRleD0iMCJdJyk7diYmdi5mb2N1cygpfSl9KX1mb2N1c0lucHV0KGgpe3RoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigo''@;'; + put 'put ''KT0+dGhpcy5uZ1pvbmVJc1N0YWJsZUluQnJvd3NlcigpLnN1YnNjcmliZSgoKT0+aC5mb2N1cygpKSl9ZWxlbWVudElzRm9jdXNlZChoKXtyZXR1cm4gU2wodGhpcy5wbGF0Zm9ybUlkKSYmZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PWh9bmdab25lSXNTdGFibGVJbkJyb3dzZXIoKXtyZXR1''@;'; + put 'put ''cm4gdGhpcy5fbmdab25lLm9uU3RhYmxlLmFzT2JzZXJ2YWJsZSgpLnBpcGUoWTMoKSxPMigoKT0+U2wodGhpcy5wbGF0Zm9ybUlkKSkpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShDaShfbCksQ2koTDIpKX0sZC5cdTAyNzVwcm92PUFpKHt0b2tl''@;'; + put 'put ''bjpkLGZhY3Rvcnk6ZC5cdTAyNzVmYWN9KSxkfSkoKSxxaj0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgpe3RoaXMuX2xvY2FsZUhlbHBlclNlcnZpY2U9aCx0aGlzLmRpc2FibGVkRGF0ZXM9e21pbkRhdGU6bmV3IGM0KDAsMCwxKSxtYXhEYXRlOm5ldyBjNCg5OTk5LDExLDMxKX0sdGhp''@;'; + put 'put ''cy5jbGRyTG9jYWxlRGF0ZUZvcm1hdD0iZGQvTU0veSIsdGhpcy5sb2NhbGVEaXNwbGF5Rm9ybWF0PXVxLHRoaXMuZGVsaW1pdGVycz1bIi8iLCIvIl0sdGhpcy5jbGRyTG9jYWxlRGF0ZUZvcm1hdD10aGlzLl9sb2NhbGVIZWxwZXJTZXJ2aWNlLmxvY2FsZURhdGVGb3JtYXQsdGhpcy5pbml0''@;'; + put 'put ''aWFsaXplTG9jYWxlRGlzcGxheUZvcm1hdCgpfXNldE1pbkRhdGUoaCl7aWYoaCl7Y29uc3Rbdix5LENdPWguc3BsaXQoIi0iKS5tYXAoST0+cGFyc2VJbnQoSSwxMCkpO3RoaXMuZGlzYWJsZWREYXRlcy5taW5EYXRlPW5ldyBjNCh2LHktMSxDKX1lbHNlIHRoaXMuZGlzYWJsZWREYXRlcy5t''@;'; + put 'put ''aW5EYXRlPW5ldyBjNCgwLDAsMSl9c2V0TWF4RGF0ZShoKXtpZihoKXtjb25zdFt2LHksQ109aC5zcGxpdCgiLSIpLm1hcChJPT5wYXJzZUludChJLDEwKSk7dGhpcy5kaXNhYmxlZERhdGVzLm1heERhdGU9bmV3IGM0KHYseS0xLEMpfWVsc2UgdGhpcy5kaXNhYmxlZERhdGVzLm1heERhdGU9''@;'; + put 'put ''bmV3IGM0KDk5OTksMTEsMzEpfWluaXRpYWxpemVMb2NhbGVEaXNwbGF5Rm9ybWF0KCl7Y29uc3QgaD10aGlzLmNsZHJMb2NhbGVEYXRlRm9ybWF0LnRvTG9jYWxlTG93ZXJDYXNlKCk7dGhpcy5sb2NhbGVEaXNwbGF5Rm9ybWF0PVFMZS50ZXN0KGgpP3VxOkpMZS50ZXN0KGgpP3hmZTplT2Us''@;'; + put 'put ''dGhpcy5leHRyYWN0RGVsaW1pdGVycygpfWV4dHJhY3REZWxpbWl0ZXJzKCl7aWYodGhpcy5jbGRyTG9jYWxlRGF0ZUZvcm1hdCl7Y29uc3Qgdj10aGlzLmNsZHJMb2NhbGVEYXRlRm9ybWF0LnJlcGxhY2UocUxlLCIiKS5zcGxpdChYTGUpO3YmJjQ9PT12Lmxlbmd0aD90aGlzLmRlbGltaXRl''@;'; + put 'put ''cnM9W3ZbMV0sdlsyXV06Y29uc29sZS5lcnJvcigiVW5leHBlY3RlZCBkYXRlIGZvcm1hdCByZWNlaXZlZC4gRGVsaW1pdGVycyBleHRyYWN0ZWQ6ICIsdil9fXRvTG9jYWxlRGlzcGxheUZvcm1hdFN0cmluZyhoKXtpZihoKXtpZihpc05hTihoLmdldFRpbWUoKSkpcmV0dXJuIiI7Y29uc3Qg''@;'; + put 'put ''dj1oLmdldERhdGUoKSx5PWguZ2V0TW9udGgoKSsxLEM9dj45P3YudG9TdHJpbmcoKToiMCIrdixJPXk+OT95LnRvU3RyaW5nKCk6IjAiK3k7cmV0dXJuIHRoaXMubG9jYWxlRGlzcGxheUZvcm1hdD09PXVxP0MrdGhpcy5kZWxpbWl0ZXJzWzBdK0krdGhpcy5kZWxpbWl0ZXJzWzFdK2guZ2V0''@;'; + put 'put ''RnVsbFllYXIoKTp0aGlzLmxvY2FsZURpc3BsYXlGb3JtYXQ9PT14ZmU/SSt0aGlzLmRlbGltaXRlcnNbMF0rQyt0aGlzLmRlbGltaXRlcnNbMV0raC5nZXRGdWxsWWVhcigpOmguZ2V0RnVsbFllYXIoKSt0aGlzLmRlbGltaXRlcnNbMF0rSSt0aGlzLmRlbGltaXRlcnNbMV0rQ31yZXR1cm4i''@;'; + put 'put ''In1nZXQgcGxhY2Vob2xkZXJUZXh0KCl7Y29uc3QgaD10aGlzLmxvY2FsZURpc3BsYXlGb3JtYXQuZm9ybWF0O3JldHVybiBoWzBdK3RoaXMuZGVsaW1pdGVyc1swXStoWzFdK3RoaXMuZGVsaW1pdGVyc1sxXStoWzJdfWlzVmFsaWRNb250aChoKXtyZXR1cm4gaD4tMSYmaDwxMn1pc1ZhbGlk''@;'; + put 'put ''RGF0ZShoLHYseSl7cmV0dXJuIHk+MCYmeTw9RkFlKGgsdil9dmFsaWRhdGVBbmRHZXREYXRlKGgsdix5KXtjb25zdCBDPStoLEk9K3YtMSxqPSt5O2lmKCF0aGlzLmlzVmFsaWRNb250aChJKXx8IXRoaXMuaXNWYWxpZERhdGUoQyxJLGopKXJldHVybiBudWxsO2NvbnN0IHVlPWZ1bmN0aW9u''@;'; + put 'put ''IHJPZShkKXtpZihkPjk5OTl8fGQ+MTAwJiZkPDk5OXx8ZDwxMClyZXR1cm4tMTtpZihkPjk5OSlyZXR1cm4gZDtjb25zdCBnPShuZXcgRGF0ZSkuZ2V0RnVsbFllYXIoKTtsZXQgdj1kKzEwMCpNYXRoLmZsb29yKGcvMTAwKTtyZXR1cm4gdj5nKzIwJiYodi09MTAwKSx2fShDKTtyZXR1cm4t''@;'; + put 'put ''MSE9PXVlP25ldyBEYXRlKHVlLEksaik6bnVsbH1nZXREYXRlVmFsdWVGcm9tRGF0ZVN0cmluZyhoKXtpZighaClyZXR1cm4gbnVsbDtjb25zdCB2PWgubWF0Y2goS0xlKTtpZighdnx8MyE9PXYubGVuZ3RoKXJldHVybiBudWxsO2NvbnN0W3ksQyxJXT12O3JldHVybiB0aGlzLmxvY2FsZURp''@;'; + put 'put ''c3BsYXlGb3JtYXQ9PT11cT90aGlzLnZhbGlkYXRlQW5kR2V0RGF0ZShJLEMseSk6dGhpcy5sb2NhbGVEaXNwbGF5Rm9ybWF0PT09eGZlP3RoaXMudmFsaWRhdGVBbmRHZXREYXRlKEkseSxDKTp0aGlzLnZhbGlkYXRlQW5kR2V0RGF0ZSh5LEMsSSl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5j''@;'; + put 'put ''dGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKENpKCRqKSl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1ZmFjfSksZH0pKCksZVo9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3Rvcigpe3RoaXMuX3RvdWNoZWRDaGFuZ2U9bmV3ICRlLHRoaXMuX2RpcnR5Q2hhbmdlPW5l''@;'; + put 'put ''dyAkZX1nZXQgdG91Y2hlZENoYW5nZSgpe3JldHVybiB0aGlzLl90b3VjaGVkQ2hhbmdlLmFzT2JzZXJ2YWJsZSgpfWdldCBkaXJ0eUNoYW5nZSgpe3JldHVybiB0aGlzLl9kaXJ0eUNoYW5nZS5hc09ic2VydmFibGUoKX1tYXJrQXNUb3VjaGVkKCl7dGhpcy5fdG91Y2hlZENoYW5nZS5uZXh0''@;'; + put 'put ''KCl9bWFya0FzRGlydHkoKXt0aGlzLl9kaXJ0eUNoYW5nZS5uZXh0KCl9c2V0RGlzYWJsZWQoaCl7dGhpcy5kaXNhYmxlZD1ofX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVwcm92PUFpKHt0b2tlbjpkLGZhY3Rvcnk6ZC5cdTAyNzVm''@;'; + put 'put ''YWN9KSxkfSkoKSxIQWU9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYseSxDKXt0aGlzLl9kYXRlTmF2aWdhdGlvblNlcnZpY2U9aCx0aGlzLl90b2dnbGVTZXJ2aWNlPXYsdGhpcy5kYXRlRm9ybUNvbnRyb2xTZXJ2aWNlPXksdGhpcy5jb21tb25TdHJpbmdzPUN9c2V0IGRheVZpZXco''@;'; + put 'put ''aCl7dGhpcy5fZGF5Vmlldz1ofWdldCBkYXlWaWV3KCl7cmV0dXJuIHRoaXMuX2RheVZpZXd9Z2V0IGRheVN0cmluZygpe3JldHVybiB0aGlzLmRheVZpZXcuaXNTZWxlY3RlZD90aGlzLmNvbW1vblN0cmluZ3MucGFyc2UodGhpcy5jb21tb25TdHJpbmdzLmtleXMuZGF0ZXBpY2tlclNlbGVj''@;'; + put 'put ''dGVkTGFiZWwse0ZVTExfREFURTp0aGlzLl9kYXlWaWV3LmRheU1vZGVsLnRvRGF0ZVN0cmluZygpfSk6dGhpcy5fZGF5Vmlldy5kYXlNb2RlbC50b0RhdGVTdHJpbmcoKX1vbkRheVZpZXdGb2N1cygpe3RoaXMuX2RhdGVOYXZpZ2F0aW9uU2VydmljZS5mb2N1c2VkRGF5PXRoaXMuZGF5Vmll''@;'; + put 'put ''dy5kYXlNb2RlbH1zZWxlY3REYXkoKXt0aGlzLl9kYXRlTmF2aWdhdGlvblNlcnZpY2Uubm90aWZ5U2VsZWN0ZWREYXlDaGFuZ2VkKHRoaXMuZGF5Vmlldy5kYXlNb2RlbCksdGhpcy5kYXRlRm9ybUNvbnRyb2xTZXJ2aWNlLm1hcmtBc0RpcnR5KCksdGhpcy5fdG9nZ2xlU2VydmljZS5vcGVu''@;'; + put 'put ''PSExfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShLdChndiksS3QoenMpLEt0KGVaKSxLdChucykpfSxkLlx1MDI3NWNtcD1UaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJjbHItZGF5Il1dLGhvc3RWYXJzOjIsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGgs''@;'; + put 'put ''dil7MiZoJiZGaSgiZGF5IiwhMCl9LGlucHV0czp7ZGF5VmlldzpbImNsckRheVZpZXciLCJkYXlWaWV3Il19LGRlY2xzOjIsdmFyczoxMyxjb25zdHM6W1sidHlwZSIsImJ1dHRvbiIsMSwiZGF5LWJ0biIsMywiY2xpY2siLCJmb2N1cyJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihoLHYpezEmaCYm''@;'; + put 'put ''KHJ0KDAsImJ1dHRvbiIsMCksR24oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiB2LnNlbGVjdERheSgpfSkoImZvY3VzIixmdW5jdGlvbigpe3JldHVybiB2Lm9uRGF5Vmlld0ZvY3VzKCl9KSxZdCgxKSxsdCgpKSwyJmgmJihGaSgiaXMtdG9kYXkiLHYuZGF5Vmlldy5pc1RvZGF5c0RhdGUp''@;'; + put 'put ''KCJpcy1leGNsdWRlZCIsdi5kYXlWaWV3LmlzRXhjbHVkZWQpKCJpcy1kaXNhYmxlZCIsdi5kYXlWaWV3LmlzRGlzYWJsZWQpKCJpcy1zZWxlY3RlZCIsdi5kYXlWaWV3LmlzU2VsZWN0ZWQpLEdpKCJ0YWJpbmRleCIsdi5kYXlWaWV3LnRhYkluZGV4KSgiYXJpYS1jdXJyZW50Iix2LmRheVZp''@;'; + put 'put ''ZXcuaXNUb2RheXNEYXRlPyJkYXRlIjoiZmFsc2UiKSgiYXJpYS1sYWJlbCIsdi5kYXlTdHJpbmcpKCJhcmlhLXNlbGVjdGVkIix2LmRheVZpZXcuaXNTZWxlY3RlZCksdXQoMSksSmkoIiAiLHYuZGF5Vmlldy5kYXlNb2RlbC5kYXRlLCIgIikpfSxlbmNhcHN1bGF0aW9uOjJ9KSxkfSkoKSxO''@;'; + put 'put ''QWU9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYseSxDLEkpe3RoaXMuX2xvY2FsZUhlbHBlclNlcnZpY2U9aCx0aGlzLl9kYXRlTmF2aWdhdGlvblNlcnZpY2U9dix0aGlzLl9kYXRlcGlja2VyRm9jdXNTZXJ2aWNlPXksdGhpcy5fZGF0ZUlPU2VydmljZT1DLHRoaXMuX2VsUmVmPUks''@;'; + put 'put ''dGhpcy5fc3Vicz1bXSx0aGlzLmdlbmVyYXRlQ2FsZW5kYXJWaWV3KCksdGhpcy5pbml0aWFsaXplU3Vic2NyaXB0aW9ucygpfWdldCBsb2NhbGVEYXlzKCl7cmV0dXJuIHRoaXMuX2xvY2FsZUhlbHBlclNlcnZpY2UubG9jYWxlRGF5c31nZXQgY2FsZW5kYXIoKXtyZXR1cm4gdGhpcy5fZGF0''@;'; + put 'put ''ZU5hdmlnYXRpb25TZXJ2aWNlLmRpc3BsYXllZENhbGVuZGFyfWdldCBzZWxlY3RlZERheSgpe3JldHVybiB0aGlzLl9kYXRlTmF2aWdhdGlvblNlcnZpY2Uuc2VsZWN0ZWREYXl9Z2V0IGZvY3VzZWREYXkoKXtyZXR1cm4gdGhpcy5fZGF0ZU5hdmlnYXRpb25TZXJ2aWNlLmZvY3VzZWREYXl9''@;'; + put 'put ''Z2V0IHRvZGF5KCl7cmV0dXJuIHRoaXMuX2RhdGVOYXZpZ2F0aW9uU2VydmljZS50b2RheX1pbml0aWFsaXplU3Vic2NyaXB0aW9ucygpe3RoaXMuX3N1YnMucHVzaCh0aGlzLl9kYXRlTmF2aWdhdGlvblNlcnZpY2UuZGlzcGxheWVkQ2FsZW5kYXJDaGFuZ2Uuc3Vic2NyaWJlKCgpPT57dGhp''@;'; + put 'put ''cy5nZW5lcmF0ZUNhbGVuZGFyVmlldygpfSkpLHRoaXMuX3N1YnMucHVzaCh0aGlzLl9kYXRlTmF2aWdhdGlvblNlcnZpY2UuZm9jdXNlZERheUNoYW5nZS5zdWJzY3JpYmUoaD0+e3RoaXMuY2FsZW5kYXJWaWV3TW9kZWwudXBkYXRlRm9jdXNhYmxlRGF5KGgpfSkpLHRoaXMuX3N1YnMucHVz''@;'; + put 'put ''aCh0aGlzLl9kYXRlTmF2aWdhdGlvblNlcnZpY2UuZm9jdXNPbkNhbGVuZGFyQ2hhbmdlLnN1YnNjcmliZSgoKT0+e3RoaXMuX2RhdGVwaWNrZXJGb2N1c1NlcnZpY2UuZm9jdXNDZWxsKHRoaXMuX2VsUmVmKX0pKX1nZW5lcmF0ZUNhbGVuZGFyVmlldygpe3RoaXMuY2FsZW5kYXJWaWV3TW9k''@;'; + put 'put ''ZWw9bmV3IGFPZSh0aGlzLmNhbGVuZGFyLHRoaXMuc2VsZWN0ZWREYXksdGhpcy5mb2N1c2VkRGF5LHRoaXMudG9kYXksdGhpcy5fbG9jYWxlSGVscGVyU2VydmljZS5maXJzdERheU9mV2Vlayx0aGlzLl9kYXRlSU9TZXJ2aWNlLmRpc2FibGVkRGF0ZXMpfW9uS2V5RG93bihoKXtpZihoJiZ0''@;'; + put 'put ''aGlzLmZvY3VzZWREYXkpc3dpdGNoKGgua2V5Q29kZSl7Y2FzZSAzODpoLnByZXZlbnREZWZhdWx0KCksdGhpcy5fZGF0ZU5hdmlnYXRpb25TZXJ2aWNlLmluY3JlbWVudEZvY3VzRGF5KC03KTticmVhaztjYXNlIDQwOmgucHJldmVudERlZmF1bHQoKSx0aGlzLl9kYXRlTmF2aWdhdGlvblNl''@;'; + put 'put ''cnZpY2UuaW5jcmVtZW50Rm9jdXNEYXkoNyk7YnJlYWs7Y2FzZSAzNzpoLnByZXZlbnREZWZhdWx0KCksdGhpcy5fZGF0ZU5hdmlnYXRpb25TZXJ2aWNlLmluY3JlbWVudEZvY3VzRGF5KC0xKTticmVhaztjYXNlIDM5OmgucHJldmVudERlZmF1bHQoKSx0aGlzLl9kYXRlTmF2aWdhdGlvblNl''@;'; + put 'put ''cnZpY2UuaW5jcmVtZW50Rm9jdXNEYXkoMSl9fW5nQWZ0ZXJWaWV3SW5pdCgpe3RoaXMuX2RhdGVwaWNrZXJGb2N1c1NlcnZpY2UuZm9jdXNDZWxsKHRoaXMuX2VsUmVmKX1uZ09uRGVzdHJveSgpe3RoaXMuX3N1YnMuZm9yRWFjaChoPT5oLnVuc3Vic2NyaWJlKCkpfX1yZXR1cm4gZC5cdTAy''@;'; + put 'put ''NzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShLdCgkaiksS3QoZ3YpLEt0KEJMKSxLdChxaiksS3QoYm8pKX0sZC5cdTAyNzVjbXA9VGkoe3R5cGU6ZCxzZWxlY3RvcnM6W1siY2xyLWNhbGVuZGFyIl1dLGhvc3RCaW5kaW5nczpmdW5jdGlvbihoLHYpezEmaCYmR24oImtleWRv''@;'; + put 'put ''d24iLGZ1bmN0aW9uKEMpe3JldHVybiB2Lm9uS2V5RG93bihDKX0pfSxkZWNsczo0LHZhcnM6Mixjb25zdHM6W1sxLCJjYWxlbmRhci10YWJsZSJdLFsxLCJjYWxlbmRhci1yb3ciLCJ3ZWVrZGF5cyJdLFsiY2xhc3MiLCJjYWxlbmRhci1jZWxsIHdlZWtkYXkiLCJyb2xlIiwiaGVhZGluZyIs''@;'; + put 'put ''NCwibmdGb3IiLCJuZ0Zvck9mIl0sWyJjbGFzcyIsImNhbGVuZGFyLXJvdyIsNCwibmdGb3IiLCJuZ0Zvck9mIl0sWyJyb2xlIiwiaGVhZGluZyIsMSwiY2FsZW5kYXItY2VsbCIsIndlZWtkYXkiXSxbMSwiY2FsZW5kYXItcm93Il0sWyJjbGFzcyIsImNhbGVuZGFyLWNlbGwiLDQsIm5nRm9y''@;'; + put 'put ''IiwibmdGb3JPZiJdLFsxLCJjYWxlbmRhci1jZWxsIl0sWzMsImNsckRheVZpZXciXV0sdGVtcGxhdGU6ZnVuY3Rpb24oaCx2KXsxJmgmJihydCgwLCJ0YWJsZSIsMCkoMSwidHIiLDEpLHJuKDIsJGssMiwyLCJ0aCIsMiksbHQoKSxybigzLHFrLDIsMSwidHIiLDMpLGx0KCkpLDImaCYmKHV0''@;'; + put 'put ''KDIpLFR0KCJuZ0Zvck9mIix2LmxvY2FsZURheXMpLHV0KDEpLFR0KCJuZ0Zvck9mIix2LmNhbGVuZGFyVmlld01vZGVsLmNhbGVuZGFyVmlldykpfSxkZXBlbmRlbmNpZXM6W0hBZSxFc10sZW5jYXBzdWxhdGlvbjoyfSksZH0pKCksY3E9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoKXt0''@;'; + put 'put ''aGlzLl9kb2N1bWVudD1oLHRoaXMuX2lzVXNlckFnZW50TW9iaWxlPSExLHRoaXMuX2RvY3VtZW50JiYodGhpcy5faXNVc2VyQWdlbnRNb2JpbGU9JExlLnRlc3QoaC5kZWZhdWx0Vmlldy5uYXZpZ2F0b3IudXNlckFnZW50KSx0aGlzLl9pbm5lcldpZHRoPWguZGVmYXVsdFZpZXcuaW5uZXJX''@;'; + put 'put ''aWR0aCl9Z2V0IGlzRW5hYmxlZCgpe3JldHVybiEodGhpcy5fZG9jdW1lbnQmJnRoaXMuX2lubmVyV2lkdGg8NzY4JiZ0aGlzLl9pc1VzZXJBZ2VudE1vYmlsZSl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKENpKHBzKSl9LGQuXHUwMjc1cHJvdj1B''@;'; + put 'put ''aSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1ZmFjfSksZH0pKCksUEw9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3Rvcigpe3RoaXMuX2N1cnJlbnRWaWV3PSJEQVlWSUVXIix0aGlzLnBvc2l0aW9uPWNbImJvdHRvbS1sZWZ0Il19Z2V0IGlzRGF5Vmlldygpe3JldHVybiJEQVlWSUVXIj09PXRo''@;'; + put 'put ''aXMuX2N1cnJlbnRWaWV3fWdldCBpc1llYXJWaWV3KCl7cmV0dXJuIllFQVJWSUVXIj09PXRoaXMuX2N1cnJlbnRWaWV3fWdldCBpc01vbnRoVmlldygpe3JldHVybiJNT05USFZJRVciPT09dGhpcy5fY3VycmVudFZpZXd9Y2hhbmdlVG9Nb250aFZpZXcoKXt0aGlzLl9jdXJyZW50Vmlldz0i''@;'; + put 'put ''TU9OVEhWSUVXIn1jaGFuZ2VUb1llYXJWaWV3KCl7dGhpcy5fY3VycmVudFZpZXc9IllFQVJWSUVXIn1jaGFuZ2VUb0RheVZpZXcoKXt0aGlzLl9jdXJyZW50Vmlldz0iREFZVklFVyJ9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1MDI3NXBy''@;'; + put 'put ''b3Y9QWkoe3Rva2VuOmQsZmFjdG9yeTpkLlx1MDI3NWZhY30pLGR9KSgpLFZBZT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgsdix5LEMsSSl7dGhpcy5fdmlld01hbmFnZXJTZXJ2aWNlPWgsdGhpcy5fbG9jYWxlSGVscGVyU2VydmljZT12LHRoaXMuX2RhdGVOYXZpZ2F0aW9uU2Vydmlj''@;'; + put 'put ''ZT15LHRoaXMuX2RhdGVwaWNrZXJGb2N1c1NlcnZpY2U9Qyx0aGlzLl9lbFJlZj1JLHRoaXMuX2ZvY3VzZWRNb250aEluZGV4PXRoaXMuY2FsZW5kYXJNb250aEluZGV4fWdldCBtb250aE5hbWVzKCl7cmV0dXJuIHRoaXMuX2xvY2FsZUhlbHBlclNlcnZpY2UubG9jYWxlTW9udGhzV2lkZX1n''@;'; + put 'put ''ZXQgY2FsZW5kYXJNb250aEluZGV4KCl7cmV0dXJuIHRoaXMuX2RhdGVOYXZpZ2F0aW9uU2VydmljZS5kaXNwbGF5ZWRDYWxlbmRhci5tb250aH1jaGFuZ2VNb250aChoKXt0aGlzLl9kYXRlTmF2aWdhdGlvblNlcnZpY2UuY2hhbmdlTW9udGgoaCksdGhpcy5fdmlld01hbmFnZXJTZXJ2aWNl''@;'; + put 'put ''LmNoYW5nZVRvRGF5VmlldygpfWdldFRhYkluZGV4KGgpe3JldHVybiBoPT09dGhpcy5fZm9jdXNlZE1vbnRoSW5kZXg/MDotMX1vbktleURvd24oaCl7aWYoaCl7Y29uc3Qgdj1oLmtleUNvZGU7Mzg9PT12JiZ0aGlzLl9mb2N1c2VkTW9udGhJbmRleD4wPyhoLnByZXZlbnREZWZhdWx0KCks''@;'; + put 'put ''dGhpcy5fZm9jdXNlZE1vbnRoSW5kZXgtLSx0aGlzLl9kYXRlcGlja2VyRm9jdXNTZXJ2aWNlLmZvY3VzQ2VsbCh0aGlzLl9lbFJlZikpOjQwPT09diYmdGhpcy5fZm9jdXNlZE1vbnRoSW5kZXg8MTE/KGgucHJldmVudERlZmF1bHQoKSx0aGlzLl9mb2N1c2VkTW9udGhJbmRleCsrLHRoaXMu''@;'; + put 'put ''X2RhdGVwaWNrZXJGb2N1c1NlcnZpY2UuZm9jdXNDZWxsKHRoaXMuX2VsUmVmKSk6Mzk9PT12JiZ0aGlzLl9mb2N1c2VkTW9udGhJbmRleDw2PyhoLnByZXZlbnREZWZhdWx0KCksdGhpcy5fZm9jdXNlZE1vbnRoSW5kZXg9dGhpcy5fZm9jdXNlZE1vbnRoSW5kZXgrNix0aGlzLl9kYXRlcGlj''@;'; + put 'put ''a2VyRm9jdXNTZXJ2aWNlLmZvY3VzQ2VsbCh0aGlzLl9lbFJlZikpOjM3PT09diYmdGhpcy5fZm9jdXNlZE1vbnRoSW5kZXg+NSYmKGgucHJldmVudERlZmF1bHQoKSx0aGlzLl9mb2N1c2VkTW9udGhJbmRleD10aGlzLl9mb2N1c2VkTW9udGhJbmRleC02LHRoaXMuX2RhdGVwaWNrZXJGb2N1''@;'; + put 'put ''c1NlcnZpY2UuZm9jdXNDZWxsKHRoaXMuX2VsUmVmKSl9fW5nQWZ0ZXJWaWV3SW5pdCgpe3RoaXMuX2RhdGVwaWNrZXJGb2N1c1NlcnZpY2UuZm9jdXNDZWxsKHRoaXMuX2VsUmVmKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoS3QoUEwpLEt0KCRq''@;'; + put 'put ''KSxLdChndiksS3QoQkwpLEt0KGJvKSl9LGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQsc2VsZWN0b3JzOltbImNsci1tb250aHBpY2tlciJdXSxob3N0VmFyczoyLGhvc3RCaW5kaW5nczpmdW5jdGlvbihoLHYpezEmaCYmR24oImtleWRvd24iLGZ1bmN0aW9uKEMpe3JldHVybiB2Lm9uS2V5RG93''@;'; + put 'put ''bihDKX0pLDImaCYmRmkoIm1vbnRocGlja2VyIiwhMCl9LGRlY2xzOjEsdmFyczoxLGNvbnN0czpbWyJ0eXBlIiwiYnV0dG9uIiwiY2xhc3MiLCJjYWxlbmRhci1idG4gbW9udGgiLDMsImlzLXNlbGVjdGVkIiwiY2xpY2siLDQsIm5nRm9yIiwibmdGb3JPZiJdLFsidHlwZSIsImJ1dHRvbiIs''@;'; + put 'put ''MSwiY2FsZW5kYXItYnRuIiwibW9udGgiLDMsImNsaWNrIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGgsdil7MSZoJiZybigwLGkkLDIsNCwiYnV0dG9uIiwwKSwyJmgmJlR0KCJuZ0Zvck9mIix2Lm1vbnRoTmFtZXMpfSxkZXBlbmRlbmNpZXM6W0VzXSxlbmNhcHN1bGF0aW9uOjJ9KSxkfSkoKTtj''@;'; + put 'put ''bGFzcyB0Wntjb25zdHJ1Y3RvcihnKXt0aGlzLnllYXI9Zyx0aGlzLnllYXJSYW5nZT1bXSx0aGlzLmdlbmVyYXRlWWVhclJhbmdlKCl9Z2V0IG1pZGRsZVllYXIoKXtyZXR1cm4gdGhpcy55ZWFyUmFuZ2VbTWF0aC5mbG9vcih0aGlzLnllYXJSYW5nZS5sZW5ndGgvMildfWdlbmVyYXRlWWVh''@;'; + put 'put ''clJhbmdlKCl7Y29uc3QgaD10aGlzLnllYXItdGhpcy55ZWFyJTEwO3RoaXMueWVhclJhbmdlPXRoaXMuZ2VuZXJhdGVSYW5nZShoLGgrMTApfWdlbmVyYXRlUmFuZ2UoZyxoKXtyZXR1cm4gQXJyYXkuZnJvbSh7bGVuZ3RoOmgtZ30sKHYseSk9PnkrZyl9bmV4dERlY2FkZSgpe3JldHVybiBu''@;'; + put 'put ''ZXcgdFoodGhpcy55ZWFyKzEwKX1wcmV2aW91c0RlY2FkZSgpe3JldHVybiBuZXcgdFoodGhpcy55ZWFyLTEwKX1jdXJyZW50RGVjYWRlKCl7cmV0dXJuIG5ldyB0WigobmV3IERhdGUpLmdldEZ1bGxZZWFyKCkpfWluUmFuZ2UoZyl7cmV0dXJuIHRoaXMueWVhclJhbmdlLmluZGV4T2YoZyk+''@;'; + put 'put ''LTF9fWxldCBaQWU9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYseSxDLEkpe3RoaXMuX2RhdGVOYXZpZ2F0aW9uU2VydmljZT1oLHRoaXMuX3ZpZXdNYW5hZ2VyU2VydmljZT12LHRoaXMuX2RhdGVwaWNrZXJGb2N1c1NlcnZpY2U9eSx0aGlzLl9lbFJlZj1DLHRoaXMuY29tbW9uU3Ry''@;'; + put 'put ''aW5ncz1JLHRoaXMueWVhclJhbmdlTW9kZWw9bmV3IHRaKHRoaXMuY2FsZW5kYXJZZWFyKSx0aGlzLl9mb2N1c2VkWWVhcj10aGlzLmNhbGVuZGFyWWVhcix0aGlzLnVwZGF0ZVJhbmdlKHRoaXMueWVhclJhbmdlTW9kZWwpfWdldCBjYWxlbmRhclllYXIoKXtyZXR1cm4gdGhpcy5fZGF0ZU5h''@;'; + put 'put ''dmlnYXRpb25TZXJ2aWNlLmRpc3BsYXllZENhbGVuZGFyLnllYXJ9aW5jcmVtZW50Rm9jdXNZZWFyQnkoaCl7dGhpcy5fZm9jdXNlZFllYXI9dGhpcy5fZm9jdXNlZFllYXIraCx0aGlzLnllYXJSYW5nZU1vZGVsLmluUmFuZ2UodGhpcy5fZm9jdXNlZFllYXIpfHwodGhpcy55ZWFyUmFuZ2VN''@;'; + put 'put ''b2RlbD1oPjA/dGhpcy55ZWFyUmFuZ2VNb2RlbC5uZXh0RGVjYWRlKCk6dGhpcy55ZWFyUmFuZ2VNb2RlbC5wcmV2aW91c0RlY2FkZSgpKSx0aGlzLl9kYXRlcGlja2VyRm9jdXNTZXJ2aWNlLmZvY3VzQ2VsbCh0aGlzLl9lbFJlZil9Y2hhbmdlWWVhcihoKXt0aGlzLl9kYXRlTmF2aWdhdGlv''@;'; + put 'put ''blNlcnZpY2UuY2hhbmdlWWVhcihoKSx0aGlzLl92aWV3TWFuYWdlclNlcnZpY2UuY2hhbmdlVG9EYXlWaWV3KCl9cHJldmlvdXNEZWNhZGUoKXt0aGlzLnllYXJSYW5nZU1vZGVsPXRoaXMueWVhclJhbmdlTW9kZWwucHJldmlvdXNEZWNhZGUoKSx0aGlzLnVwZGF0ZVJhbmdlKHRoaXMueWVh''@;'; + put 'put ''clJhbmdlTW9kZWwpfWN1cnJlbnREZWNhZGUoKXt0aGlzLnllYXJSYW5nZU1vZGVsLmluUmFuZ2UodGhpcy5fZGF0ZU5hdmlnYXRpb25TZXJ2aWNlLnRvZGF5LnllYXIpfHwodGhpcy55ZWFyUmFuZ2VNb2RlbD10aGlzLnllYXJSYW5nZU1vZGVsLmN1cnJlbnREZWNhZGUoKSksdGhpcy5fZGF0''@;'; + put 'put ''ZXBpY2tlckZvY3VzU2VydmljZS5mb2N1c0NlbGwodGhpcy5fZWxSZWYpLHRoaXMudXBkYXRlUmFuZ2UodGhpcy55ZWFyUmFuZ2VNb2RlbCl9bmV4dERlY2FkZSgpe3RoaXMueWVhclJhbmdlTW9kZWw9dGhpcy55ZWFyUmFuZ2VNb2RlbC5uZXh0RGVjYWRlKCksdGhpcy51cGRhdGVSYW5nZSh0''@;'; + put 'put ''aGlzLnllYXJSYW5nZU1vZGVsKX1nZXRUYWJJbmRleChoKXtyZXR1cm4gdGhpcy55ZWFyUmFuZ2VNb2RlbC5pblJhbmdlKHRoaXMuX2ZvY3VzZWRZZWFyKXx8KHRoaXMuX2ZvY3VzZWRZZWFyPXRoaXMueWVhclJhbmdlTW9kZWwuaW5SYW5nZSh0aGlzLmNhbGVuZGFyWWVhcik/dGhpcy5jYWxl''@;'; + put 'put ''bmRhclllYXI6dGhpcy55ZWFyUmFuZ2VNb2RlbC5taWRkbGVZZWFyKSx0aGlzLl9mb2N1c2VkWWVhcj09PWg/MDotMX1vbktleURvd24oaCl7aWYoaCl7Y29uc3Qgdj1oLmtleUNvZGU7Mzg9PT12PyhoLnByZXZlbnREZWZhdWx0KCksdGhpcy5pbmNyZW1lbnRGb2N1c1llYXJCeSgtMSkpOjQw''@;'; + put 'put ''PT09dj8oaC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuaW5jcmVtZW50Rm9jdXNZZWFyQnkoMSkpOjM5PT09dj8oaC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuaW5jcmVtZW50Rm9jdXNZZWFyQnkoNSkpOjM3PT09diYmKGgucHJldmVudERlZmF1bHQoKSx0aGlzLmluY3JlbWVudEZvY3VzWWVhckJ5''@;'; + put 'put ''KC01KSl9fXVwZGF0ZVJhbmdlKGgpe3RoaXMuZGVjYWRlUmFuZ2U9YCR7aC55ZWFyUmFuZ2VbMF19IHRvICR7aC55ZWFyUmFuZ2VbaC55ZWFyUmFuZ2UubGVuZ3RoLTFdfWB9bmdBZnRlclZpZXdJbml0KCl7dGhpcy5fZGF0ZXBpY2tlckZvY3VzU2VydmljZS5mb2N1c0NlbGwodGhpcy5fZWxS''@;'; + put 'put ''ZWYpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShLdChndiksS3QoUEwpLEt0KEJMKSxLdChibyksS3QobnMpKX0sZC5cdTAyNzVjbXA9VGkoe3R5cGU6ZCxzZWxlY3RvcnM6W1siY2xyLXllYXJwaWNrZXIiXV0saG9zdFZhcnM6Mixob3N0QmluZGlu''@;'; + put 'put ''Z3M6ZnVuY3Rpb24oaCx2KXsxJmgmJkduKCJrZXlkb3duIixmdW5jdGlvbihDKXtyZXR1cm4gdi5vbktleURvd24oQyl9KSwyJmgmJkZpKCJ5ZWFycGlja2VyIiwhMCl9LGRlY2xzOjksdmFyczo3LGNvbnN0czpbWzEsInllYXItc3dpdGNoZXJzIl0sWyJ0eXBlIiwiYnV0dG9uIiwxLCJjYWxl''@;'; + put 'put ''bmRhci1idG4iLCJzd2l0Y2hlciIsMywiY2xpY2siXSxbInNoYXBlIiwiYW5nbGUiLCJkaXJlY3Rpb24iLCJsZWZ0Il0sWyJzaGFwZSIsImV2ZW50Il0sWyJzaGFwZSIsImFuZ2xlIiwiZGlyZWN0aW9uIiwicmlnaHQiXSxbMSwieWVhcnMiXSxbInR5cGUiLCJidXR0b24iLCJjbGFzcyIsImNh''@;'; + put 'put ''bGVuZGFyLWJ0biB5ZWFyIiwzLCJpcy1zZWxlY3RlZCIsImNsaWNrIiw0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbInR5cGUiLCJidXR0b24iLDEsImNhbGVuZGFyLWJ0biIsInllYXIiLDMsImNsaWNrIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGgsdil7MSZoJiYocnQoMCwiZGl2IiwwKSgxLCJidXR0''@;'; + put 'put ''b24iLDEpLEduKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gdi5wcmV2aW91c0RlY2FkZSgpfSksQ3IoMiwiY2RzLWljb24iLDIpLGx0KCkscnQoMywiYnV0dG9uIiwxKSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHYuY3VycmVudERlY2FkZSgpfSksQ3IoNCwiY2RzLWljb24iLDMp''@;'; + put 'put ''LGx0KCkscnQoNSwiYnV0dG9uIiwxKSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHYubmV4dERlY2FkZSgpfSksQ3IoNiwiY2RzLWljb24iLDQpLGx0KCkoKSxydCg3LCJkaXYiLDUpLHJuKDgsbyQsMiw0LCJidXR0b24iLDYpLGx0KCkpLDImaCYmKHV0KDEpLEdpKCJhcmlhLWxhYmVs''@;'; + put 'put ''Iix2LmNvbW1vblN0cmluZ3Mua2V5cy5kYXRlcGlja2VyUHJldmlvdXNEZWNhZGUpLHV0KDEpLEdpKCJ0aXRsZSIsdi5jb21tb25TdHJpbmdzLmtleXMuZGF0ZXBpY2tlclByZXZpb3VzRGVjYWRlKSx1dCgxKSxHaSgiYXJpYS1sYWJlbCIsdi5jb21tb25TdHJpbmdzLmtleXMuZGF0ZXBpY2tl''@;'; + put 'put ''ckN1cnJlbnREZWNhZGUpLHV0KDEpLEdpKCJ0aXRsZSIsdi5jb21tb25TdHJpbmdzLmtleXMuZGF0ZXBpY2tlckN1cnJlbnREZWNhZGUpLHV0KDEpLEdpKCJhcmlhLWxhYmVsIix2LmNvbW1vblN0cmluZ3Mua2V5cy5kYXRlcGlja2VyTmV4dERlY2FkZSksdXQoMSksR2koInRpdGxlIix2LmNv''@;'; + put 'put ''bW1vblN0cmluZ3Mua2V5cy5kYXRlcGlja2VyTmV4dERlY2FkZSksdXQoMiksVHQoIm5nRm9yT2YiLHYueWVhclJhbmdlTW9kZWwueWVhclJhbmdlKSl9LGRlcGVuZGVuY2llczpbWm8sRXNdLGVuY2Fwc3VsYXRpb246Mn0pLGR9KSgpLHpBZT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgs''@;'; + put 'put ''dix5LEMpe3RoaXMuX3ZpZXdNYW5hZ2VyU2VydmljZT1oLHRoaXMuX2RhdGVOYXZpZ2F0aW9uU2VydmljZT12LHRoaXMuX2xvY2FsZUhlbHBlclNlcnZpY2U9eSx0aGlzLmNvbW1vblN0cmluZ3M9Q31nZXQgbW9udGhBdHRyU3RyaW5nKCl7cmV0dXJuIHRoaXMuY29tbW9uU3RyaW5ncy5wYXJz''@;'; + put 'put ''ZSh0aGlzLmNvbW1vblN0cmluZ3Mua2V5cy5kYXRlcGlja2VyU2VsZWN0TW9udGhUZXh0LHtDQUxFTkRBUl9NT05USDp0aGlzLmNhbGVuZGFyTW9udGh9KX1nZXQgeWVhckF0dHJTdHJpbmcoKXtyZXR1cm4gdGhpcy5jb21tb25TdHJpbmdzLnBhcnNlKHRoaXMuY29tbW9uU3RyaW5ncy5rZXlz''@;'; + put 'put ''LmRhdGVwaWNrZXJTZWxlY3RZZWFyVGV4dCx7Q0FMRU5EQVJfWUVBUjp0aGlzLmNhbGVuZGFyWWVhci50b1N0cmluZygpfSl9Y2hhbmdlVG9Nb250aFZpZXcoKXt0aGlzLl92aWV3TWFuYWdlclNlcnZpY2UuY2hhbmdlVG9Nb250aFZpZXcoKX1jaGFuZ2VUb1llYXJWaWV3KCl7dGhpcy5fdmll''@;'; + put 'put ''d01hbmFnZXJTZXJ2aWNlLmNoYW5nZVRvWWVhclZpZXcoKX1nZXQgY2FsZW5kYXJNb250aCgpe3JldHVybiB0aGlzLl9sb2NhbGVIZWxwZXJTZXJ2aWNlLmxvY2FsZU1vbnRoc0FiYnJldmlhdGVkW3RoaXMuX2RhdGVOYXZpZ2F0aW9uU2VydmljZS5kaXNwbGF5ZWRDYWxlbmRhci5tb250aF19''@;'; + put 'put ''Z2V0IGNhbGVuZGFyWWVhcigpe3JldHVybiB0aGlzLl9kYXRlTmF2aWdhdGlvblNlcnZpY2UuZGlzcGxheWVkQ2FsZW5kYXIueWVhcn1uZXh0TW9udGgoKXt0aGlzLl9kYXRlTmF2aWdhdGlvblNlcnZpY2UubW92ZVRvTmV4dE1vbnRoKCl9cHJldmlvdXNNb250aCgpe3RoaXMuX2RhdGVOYXZp''@;'; + put 'put ''Z2F0aW9uU2VydmljZS5tb3ZlVG9QcmV2aW91c01vbnRoKCl9Y3VycmVudE1vbnRoKCl7dGhpcy5fZGF0ZU5hdmlnYXRpb25TZXJ2aWNlLm1vdmVUb0N1cnJlbnRNb250aCgpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShLdChQTCksS3QoZ3YpLEt0''@;'; + put 'put ''KCRqKSxLdChucykpfSxkLlx1MDI3NWNtcD1UaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJjbHItZGF5cGlja2VyIl1dLGhvc3RWYXJzOjIsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGgsdil7MiZoJiZGaSgiZGF5cGlja2VyIiwhMCl9LGRlY2xzOjE4LHZhcnM6MTMsY29uc3RzOltbMSwiY2xyLXNy''@;'; + put 'put ''LW9ubHkiXSxbMSwiY2FsZW5kYXItaGVhZGVyIl0sWzEsImNhbGVuZGFyLXBpY2tlcnMiXSxbInR5cGUiLCJidXR0b24iLDEsImNhbGVuZGFyLWJ0biIsIm1vbnRocGlja2VyLXRyaWdnZXIiLDMsImNsaWNrIl0sWyJ0eXBlIiwiYnV0dG9uIiwxLCJjYWxlbmRhci1idG4iLCJ5ZWFycGlja2Vy''@;'; + put 'put ''LXRyaWdnZXIiLDMsImNsaWNrIl0sWzEsImNhbGVuZGFyLXN3aXRjaGVycyJdLFsidHlwZSIsImJ1dHRvbiIsMSwiY2FsZW5kYXItYnRuIiwic3dpdGNoZXIiLDMsImNsaWNrIl0sWyJzaGFwZSIsImFuZ2xlIiwiZGlyZWN0aW9uIiwibGVmdCJdLFsic2hhcGUiLCJldmVudCJdLFsic2hhcGUi''@;'; + put 'put ''LCJhbmdsZSIsImRpcmVjdGlvbiIsInJpZ2h0Il1dLHRlbXBsYXRlOmZ1bmN0aW9uKGgsdil7MSZoJiYocnQoMCwiZGl2IiwwKSxZdCgxKSxsdCgpLHJ0KDIsImRpdiIsMSkoMywiZGl2IiwyKSg0LCJidXR0b24iLDMpLEduKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gdi5jaGFuZ2VUb01v''@;'; + put 'put ''bnRoVmlldygpfSksWXQoNSksbHQoKSxydCg2LCJidXR0b24iLDQpLEduKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gdi5jaGFuZ2VUb1llYXJWaWV3KCl9KSxZdCg3KSxsdCgpKCkscnQoOCwiZGl2Iiw1KSg5LCJidXR0b24iLDYpLEduKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gdi5w''@;'; + put 'put ''cmV2aW91c01vbnRoKCl9KSxDcigxMCwiY2RzLWljb24iLDcpLGx0KCkscnQoMTEsImJ1dHRvbiIsNiksR24oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiB2LmN1cnJlbnRNb250aCgpfSksQ3IoMTIsImNkcy1pY29uIiw4KSxsdCgpLHJ0KDEzLCJidXR0b24iLDYpLEduKCJjbGljayIsZnVu''@;'; + put 'put ''Y3Rpb24oKXtyZXR1cm4gdi5uZXh0TW9udGgoKX0pLENyKDE0LCJjZHMtaWNvbiIsOSksbHQoKSgpKCksQ3IoMTUsImNsci1jYWxlbmRhciIpLHJ0KDE2LCJkaXYiLDApLFl0KDE3KSxsdCgpKSwyJmgmJih1dCgxKSxqaSh2LmNvbW1vblN0cmluZ3Mua2V5cy5tb2RhbENvbnRlbnRTdGFydCks''@;'; + put 'put ''dXQoMyksR2koImFyaWEtbGFiZWwiLHYubW9udGhBdHRyU3RyaW5nKSgidGl0bGUiLHYubW9udGhBdHRyU3RyaW5nKSx1dCgxKSxKaSgiICIsdi5jYWxlbmRhck1vbnRoLCIgIiksdXQoMSksR2koImFyaWEtbGFiZWwiLHYueWVhckF0dHJTdHJpbmcpKCJ0aXRsZSIsdi55ZWFyQXR0clN0cmlu''@;'; + put 'put ''ZyksdXQoMSksSmkoIiAiLHYuY2FsZW5kYXJZZWFyLCIgIiksdXQoMiksR2koImFyaWEtbGFiZWwiLHYuY29tbW9uU3RyaW5ncy5rZXlzLmRhdGVwaWNrZXJQcmV2aW91c01vbnRoKSx1dCgxKSxHaSgidGl0bGUiLHYuY29tbW9uU3RyaW5ncy5rZXlzLmRhdGVwaWNrZXJQcmV2aW91c01vbnRo''@;'; + put 'put ''KSx1dCgxKSxHaSgiYXJpYS1sYWJlbCIsdi5jb21tb25TdHJpbmdzLmtleXMuZGF0ZXBpY2tlckN1cnJlbnRNb250aCksdXQoMSksR2koInRpdGxlIix2LmNvbW1vblN0cmluZ3Mua2V5cy5kYXRlcGlja2VyQ3VycmVudE1vbnRoKSx1dCgxKSxHaSgiYXJpYS1sYWJlbCIsdi5jb21tb25TdHJp''@;'; + put 'put ''bmdzLmtleXMuZGF0ZXBpY2tlck5leHRNb250aCksdXQoNCksamkodi5jb21tb25TdHJpbmdzLmtleXMubW9kYWxDb250ZW50RW5kKSl9LGRlcGVuZGVuY2llczpbTkFlLFpvXSxlbmNhcHN1bGF0aW9uOjJ9KSxkfSkoKSxHQWU9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYpe3RoaXMu''@;'; + put 'put ''Y29tbW9uU3RyaW5ncz1oLHRoaXMudmlld01hbmFnZXJTZXJ2aWNlPXZ9Z2V0IGlzTW9udGhWaWV3KCl7cmV0dXJuIHRoaXMudmlld01hbmFnZXJTZXJ2aWNlLmlzTW9udGhWaWV3fWdldCBpc1llYXJWaWV3KCl7cmV0dXJuIHRoaXMudmlld01hbmFnZXJTZXJ2aWNlLmlzWWVhclZpZXd9Z2V0''@;'; + put 'put ''IGlzRGF5Vmlldygpe3JldHVybiB0aGlzLnZpZXdNYW5hZ2VyU2VydmljZS5pc0RheVZpZXd9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKEt0KG5zKSxLdChQTCkpfSxkLlx1MDI3NWNtcD1UaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJjbHItZGF0ZXBp''@;'; + put 'put ''Y2tlci12aWV3LW1hbmFnZXIiXV0saG9zdEF0dHJzOlsicm9sZSIsImRpYWxvZyJdLGhvc3RWYXJzOjQsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGgsdil7MiZoJiYoR2koImFyaWEtbW9kYWwiLCEwKSgiYXJpYS1sYWJlbCIsdi5jb21tb25TdHJpbmdzLmtleXMuZGF0ZXBpY2tlckRpYWxvZ0xh''@;'; + put 'put ''YmVsKSxGaSgiZGF0ZXBpY2tlciIsITApKX0sZmVhdHVyZXM6W2hvKFtCTF0pXSxkZWNsczozLHZhcnM6Myxjb25zdHM6W1s0LCJuZ0lmIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGgsdil7MSZoJiYocm4oMCxhJCwxLDAsImNsci1tb250aHBpY2tlciIsMCkscm4oMSxsJCwxLDAsImNsci15ZWFy''@;'; + put 'put ''cGlja2VyIiwwKSxybigyLGp1ZSwxLDAsImNsci1kYXlwaWNrZXIiLDApKSwyJmgmJihUdCgibmdJZiIsdi5pc01vbnRoVmlldyksdXQoMSksVHQoIm5nSWYiLHYuaXNZZWFyVmlldyksdXQoMSksVHQoIm5nSWYiLHYuaXNEYXlWaWV3KSl9LGRlcGVuZGVuY2llczpbVkFlLFpBZSx6QWUsTm9d''@;'; + put 'put ''LGVuY2Fwc3VsYXRpb246Mn0pLGR9KSgpLG5aPSgoKT0+e2NsYXNzIGQgZXh0ZW5kcyBadHtjb25zdHJ1Y3RvcihoLHYseSxDLEksaix1ZSxfZSxCZSxOZSxLZSxkdCxPdCl7c3VwZXIoT3QsS2UsTmUsZHQpLHRoaXMucmVuZGVyZXI9aCx0aGlzLnRvZ2dsZVNlcnZpY2U9dix0aGlzLmRhdGVO''@;'; + put 'put ''YXZpZ2F0aW9uU2VydmljZT15LHRoaXMuZGF0ZXBpY2tlckVuYWJsZWRTZXJ2aWNlPUMsdGhpcy5kYXRlRm9ybUNvbnRyb2xTZXJ2aWNlPUksdGhpcy5kYXRlSU9TZXJ2aWNlPWosdGhpcy5jb21tb25TdHJpbmdzPXVlLHRoaXMuZm9jdXNTZXJ2aWNlPV9lLHRoaXMudmlld01hbmFnZXJTZXJ2''@;'; + put 'put ''aWNlPUJlLHRoaXMuY29udHJvbENsYXNzU2VydmljZT1OZSx0aGlzLmxheW91dFNlcnZpY2U9S2UsdGhpcy5uZ0NvbnRyb2xTZXJ2aWNlPWR0LHRoaXMuaWZDb250cm9sU3RhdGVTZXJ2aWNlPU90LHRoaXMuZm9jdXM9ITEsdGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy5mb2N1c1NlcnZp''@;'; + put 'put ''Y2UuZm9jdXNDaGFuZ2Uuc3Vic2NyaWJlKCR0PT57dGhpcy5mb2N1cz0kdH0pKSx0aGlzLnN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLnRvZ2dsZVNlcnZpY2Uub3BlbkNoYW5nZS5zdWJzY3JpYmUoKCk9Pnt0aGlzLmRhdGVGb3JtQ29udHJvbFNlcnZpY2UubWFya0FzVG91Y2hlZCgpfSkpfXNl''@;'; + put 'put ''dCBjbHJQb3NpdGlvbihoKXtoJiZjW2hdJiYodGhpcy52aWV3TWFuYWdlclNlcnZpY2UucG9zaXRpb249Y1toXSl9Z2V0IHBvcG92ZXJQb3NpdGlvbigpe3JldHVybiB0aGlzLnZpZXdNYW5hZ2VyU2VydmljZS5wb3NpdGlvbn1nZXQgb3Blbigpe3JldHVybiB0aGlzLnRvZ2dsZVNlcnZpY2Uu''@;'; + put 'put ''b3Blbn1zZXQgYWN0aW9uQnV0dG9uKGgpe3RoaXMudG9nZ2xlQnV0dG9uPWh9bmdBZnRlclZpZXdJbml0KCl7dGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy50b2dnbGVTZXJ2aWNlLm9wZW5DaGFuZ2Uuc3Vic2NyaWJlKGg9PntoP3RoaXMuaW5pdGlhbGl6ZUNhbGVuZGFyKCk6dGhpcy50''@;'; + put 'put ''b2dnbGVCdXR0b24ubmF0aXZlRWxlbWVudC5mb2N1cygpfSkpLHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMubGlzdGVuRm9yRGF0ZUNoYW5nZXMoKSl9Z2V0IGlzRW5hYmxlZCgpe3JldHVybiB0aGlzLmRhdGVwaWNrZXJFbmFibGVkU2VydmljZS5pc0VuYWJsZWR9Z2V0IGlzSW5wdXRE''@;'; + put 'put ''YXRlRGlzYWJsZWQoKXtyZXR1cm4gdGhpcy5jb250cm9sJiZ0aGlzLmNvbnRyb2wuZGlzYWJsZWR8fHRoaXMuZGF0ZUZvcm1Db250cm9sU2VydmljZSYmdGhpcy5kYXRlRm9ybUNvbnRyb2xTZXJ2aWNlLmRpc2FibGVkfWdldFRvZ2dsZUJ1dHRvbkxhYmVsKGgpe2lmKGgpe2NvbnN0IHY9dGhp''@;'; + put 'put ''cy5kYXRlSU9TZXJ2aWNlLnRvTG9jYWxlRGlzcGxheUZvcm1hdFN0cmluZyhoLnRvRGF0ZSgpKTtyZXR1cm4gdGhpcy5jb21tb25TdHJpbmdzLnBhcnNlKHRoaXMuY29tbW9uU3RyaW5ncy5rZXlzLmRhdGVwaWNrZXJUb2dnbGVDaGFuZ2VEYXRlTGFiZWwse1NFTEVDVEVEX0RBVEU6dn0pfHx0''@;'; + put 'put ''aGlzLmNvbW1vblN0cmluZ3Mua2V5cy5kYXRlcGlja2VyVG9nZ2xlfXJldHVybiB0aGlzLmNvbW1vblN0cmluZ3Mua2V5cy5kYXRlcGlja2VyVG9nZ2xlQ2hvb3NlRGF0ZUxhYmVsfHx0aGlzLmNvbW1vblN0cmluZ3Mua2V5cy5kYXRlcGlja2VyVG9nZ2xlfWxpc3RlbkZvckRhdGVDaGFuZ2Vz''@;'; + put 'put ''KCl7cmV0dXJuIHRoaXMuZGF0ZU5hdmlnYXRpb25TZXJ2aWNlLnNlbGVjdGVkRGF5Q2hhbmdlLnBpcGUoTjUodGhpcy5kYXRlTmF2aWdhdGlvblNlcnZpY2Uuc2VsZWN0ZWREYXkpKS5zdWJzY3JpYmUoaD0+e2NvbnN0IHY9dGhpcy5nZXRUb2dnbGVCdXR0b25MYWJlbChoKSx5PXRoaXMudG9n''@;'; + put 'put ''Z2xlQnV0dG9uLm5hdGl2ZUVsZW1lbnQ7dGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUoeSwiYXJpYS1sYWJlbCIsdiksdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUoeSwidGl0bGUiLHYpfSl9aW5pdGlhbGl6ZUNhbGVuZGFyKCl7dGhpcy5kYXRlTmF2aWdhdGlvblNlcnZpY2UuaW5pdGlh''@;'; + put 'put ''bGl6ZUNhbGVuZGFyKCl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKEt0KEdhKSxLdCh6cyksS3QoZ3YpLEt0KGNxKSxLdChlWiksS3QocWopLEt0KG5zKSxLdChrZmUpLEt0KFBMKSxLdChFdCksS3QoV2UsOCksS3QoSGUpLEt0KHFlKSl9LGQuXHUw''@;'; + put 'put ''Mjc1Y21wPVRpKHt0eXBlOmQsc2VsZWN0b3JzOltbImNsci1kYXRlLWNvbnRhaW5lciJdXSx2aWV3UXVlcnk6ZnVuY3Rpb24oaCx2KXtpZigxJmgmJnZvKFp1ZSw1KSwyJmgpe2xldCB5O0hpKHk9JGkoKSkmJih2LmFjdGlvbkJ1dHRvbj15LmZpcnN0KX19LGhvc3RWYXJzOjgsaG9zdEJpbmRp''@;'; + put 'put ''bmdzOmZ1bmN0aW9uKGgsdil7MiZoJiZGaSgiY2xyLWRhdGUtY29udGFpbmVyIiwhMCkoImNsci1mb3JtLWNvbnRyb2wtZGlzYWJsZWQiLHYuaXNJbnB1dERhdGVEaXNhYmxlZCkoImNsci1mb3JtLWNvbnRyb2wiLCEwKSgiY2xyLXJvdyIsdi5hZGRHcmlkKCkpfSxpbnB1dHM6e2NsclBvc2l0''@;'; + put 'put ''aW9uOiJjbHJQb3NpdGlvbiJ9LGZlYXR1cmVzOltobyhbSyx6cyxoOCxHcywkaixFdCxrZmUsSGUscWosZ3YsY3EsZVosUEwscWVdKSxEb10sbmdDb250ZW50U2VsZWN0b3JzOkt5LGRlY2xzOjEzLHZhcnM6MTQsY29uc3RzOltbNCwibmdJZiJdLFsxLCJjbHItY29udHJvbC1jb250YWluZXIi''@;'; + put 'put ''LDMsIm5nQ2xhc3MiXSxbImNsclBvcG92ZXJBbmNob3IiLCIiLDEsImNsci1pbnB1dC13cmFwcGVyIl0sWzEsImNsci1pbnB1dC1ncm91cCJdLFsidHlwZSIsImJ1dHRvbiIsImNsclBvcG92ZXJPcGVuQ2xvc2VCdXR0b24iLCIiLCJjbGFzcyIsImNsci1pbnB1dC1ncm91cC1pY29uLWFjdGlv''@;'; + put 'put ''biIsMywiZGlzYWJsZWQiLDQsIm5nSWYiXSxbImNsckZvY3VzVHJhcCIsIiIsNCwiY2xyUG9wb3ZlckNvbnRlbnQiLCJjbHJQb3BvdmVyQ29udGVudEF0IiwiY2xyUG9wb3ZlckNvbnRlbnRPdXRzaWRlQ2xpY2tUb0Nsb3NlIiwiY2xyUG9wb3ZlckNvbnRlbnRTY3JvbGxUb0Nsb3NlIl0sWyJj''@;'; + put 'put ''bGFzcyIsImNsci12YWxpZGF0ZS1pY29uIiwic3RhdHVzIiwiZGFuZ2VyIiwic2hhcGUiLCJleGNsYW1hdGlvbi1jaXJjbGUiLCJhcmlhLWhpZGRlbiIsInRydWUiLDQsIm5nSWYiXSxbImNsYXNzIiwiY2xyLXZhbGlkYXRlLWljb24iLCJzaGFwZSIsImNoZWNrLWNpcmNsZSIsInN0YXR1cyIs''@;'; + put 'put ''InN1Y2Nlc3MiLCJhcmlhLWhpZGRlbiIsInRydWUiLDQsIm5nSWYiXSxbInR5cGUiLCJidXR0b24iLCJjbHJQb3BvdmVyT3BlbkNsb3NlQnV0dG9uIiwiIiwxLCJjbHItaW5wdXQtZ3JvdXAtaWNvbi1hY3Rpb24iLDMsImRpc2FibGVkIl0sWyJhY3Rpb25CdXR0b24iLCIiXSxbInN0YXR1cyIs''@;'; + put 'put ''ImluZm8iLCJzaGFwZSIsImNhbGVuZGFyIl0sWyJjbHJGb2N1c1RyYXAiLCIiXSxbInN0YXR1cyIsImRhbmdlciIsInNoYXBlIiwiZXhjbGFtYXRpb24tY2lyY2xlIiwiYXJpYS1oaWRkZW4iLCJ0cnVlIiwxLCJjbHItdmFsaWRhdGUtaWNvbiJdLFsic2hhcGUiLCJjaGVjay1jaXJjbGUiLCJz''@;'; + put 'put ''dGF0dXMiLCJzdWNjZXNzIiwiYXJpYS1oaWRkZW4iLCJ0cnVlIiwxLCJjbHItdmFsaWRhdGUtaWNvbiJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihoLHYpezEmaCYmKEswKFl1ZSksTmkoMCkscm4oMSx6dWUsMSwwLCJsYWJlbCIsMCkscnQoMiwiZGl2IiwxKSgzLCJkaXYiLDIpKDQsImRpdiIsMyks''@;'; + put 'put ''TmkoNSwxKSxybig2LHZnLDMsMSwiYnV0dG9uIiw0KSxybig3LGtqLDEsMCwiY2xyLWRhdGVwaWNrZXItdmlldy1tYW5hZ2VyIiw1KSxsdCgpLHJuKDgsR3VlLDEsMCwiY2RzLWljb24iLDYpLHJuKDkscyQsMSwwLCJjZHMtaWNvbiIsNyksbHQoKSxybigxMCx1JCwxLDAsIm5nLWNvbnRlbnQi''@;'; + put 'put ''LDApLHJuKDExLGMkLDEsMCwibmctY29udGVudCIsMCkscm4oMTIsV3VlLDEsMCwibmctY29udGVudCIsMCksbHQoKSksMiZoJiYodXQoMSksVHQoIm5nSWYiLCF2LmxhYmVsJiZ2LmFkZEdyaWQoKSksdXQoMSksVHQoIm5nQ2xhc3MiLHYuY29udHJvbENsYXNzKCkpLHV0KDIpLEZpKCJjbHIt''@;'; + put 'put ''Zm9jdXMiLHYuZm9jdXMpLHV0KDIpLFR0KCJuZ0lmIix2LmlzRW5hYmxlZCksdXQoMSksVHQoImNsclBvcG92ZXJDb250ZW50Iix2Lm9wZW4pKCJjbHJQb3BvdmVyQ29udGVudEF0Iix2LnBvcG92ZXJQb3NpdGlvbikoImNsclBvcG92ZXJDb250ZW50T3V0c2lkZUNsaWNrVG9DbG9zZSIsITAp''@;'; + put 'put ''KCJjbHJQb3BvdmVyQ29udGVudFNjcm9sbFRvQ2xvc2UiLCEwKSx1dCgxKSxUdCgibmdJZiIsdi5zaG93SW52YWxpZCksdXQoMSksVHQoIm5nSWYiLHYuc2hvd1ZhbGlkKSx1dCgxKSxUdCgibmdJZiIsdi5zaG93SGVscGVyKSx1dCgxKSxUdCgibmdJZiIsdi5zaG93SW52YWxpZCksdXQoMSks''@;'; + put 'put ''VHQoIm5nSWYiLHYuc2hvd1ZhbGlkKSl9LGRlcGVuZGVuY2llczpbR0FlLE5vLG90LGxjLHN3LHV3LFpvLGRsLGZ3XSxlbmNhcHN1bGF0aW9uOjJ9KSxkfSkoKSxJZmU9KCgpPT57Y2xhc3MgZCBleHRlbmRzIFNue2NvbnN0cnVjdG9yKGgsdix5LEMsSSxqLHVlLF9lLEJlLE5lLEtlLGR0LE90''@;'; + put 'put ''KXtzdXBlcihoLG5aLHYsSSxDLHkpLHRoaXMuZWw9eSx0aGlzLnJlbmRlcmVyPUMsdGhpcy5jb250cm9sPUksdGhpcy5jb250YWluZXI9aix0aGlzLmRhdGVJT1NlcnZpY2U9dWUsdGhpcy5kYXRlTmF2aWdhdGlvblNlcnZpY2U9X2UsdGhpcy5kYXRlcGlja2VyRW5hYmxlZFNlcnZpY2U9QmUs''@;'; + put 'put ''dGhpcy5kYXRlRm9ybUNvbnRyb2xTZXJ2aWNlPU5lLHRoaXMucGxhdGZvcm1JZD1LZSx0aGlzLmZvY3VzU2VydmljZT1kdCx0aGlzLmRhdGVwaWNrZXJGb2N1c1NlcnZpY2U9T3QsdGhpcy5kYXRlQ2hhbmdlPW5ldyBhcighMSksdGhpcy5pbmRleD0xfXNldCBkYXRlKGgpe3RoaXMucHJldmlv''@;'; + put 'put ''dXNEYXRlQ2hhbmdlIT09aCYmdGhpcy51cGRhdGVEYXRlKHRoaXMuZ2V0VmFsaWREYXRlVmFsdWVGcm9tRGF0ZShoKSksdGhpcy5pbml0aWFsQ2xyRGF0ZUlucHV0VmFsdWV8fCh0aGlzLmluaXRpYWxDbHJEYXRlSW5wdXRWYWx1ZT1oKX1zZXQgbWluKGgpe3RoaXMuZGF0ZUlPU2VydmljZS5z''@;'; + put 'put ''ZXRNaW5EYXRlKGgpfXNldCBtYXgoaCl7dGhpcy5kYXRlSU9TZXJ2aWNlLnNldE1heERhdGUoaCl9bmdPbkluaXQoKXtzdXBlci5uZ09uSW5pdCgpLHRoaXMucG9wdWxhdGVTZXJ2aWNlc0Zyb21Db250YWluZXJDb21wb25lbnQoKSx0aGlzLnN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLmxpc3Rl''@;'; + put 'put ''bkZvclVzZXJTZWxlY3RlZERheUNoYW5nZXMoKSx0aGlzLmxpc3RlbkZvckNvbnRyb2xWYWx1ZUNoYW5nZXMoKSx0aGlzLmxpc3RlbkZvclRvdWNoQ2hhbmdlcygpLHRoaXMubGlzdGVuRm9yRGlydHlDaGFuZ2VzKCksdGhpcy5saXN0ZW5Gb3JJbnB1dFJlZm9jdXMoKSl9bmdBZnRlclZpZXdJ''@;'; + put 'put ''bml0KCl7dGhpcy5wcm9jZXNzSW5pdGlhbElucHV0cygpfXNldEZvY3VzU3RhdGVzKCl7dGhpcy5zZXRGb2N1cyghMCl9dHJpZ2dlclZhbGlkYXRpb24oKXtzdXBlci50cmlnZ2VyVmFsaWRhdGlvbigpLHRoaXMuc2V0Rm9jdXMoITEpfWdldCBwbGFjZWhvbGRlclRleHQoKXtyZXR1cm4gdGhp''@;'; + put 'put ''cy5wbGFjZWhvbGRlcj90aGlzLnBsYWNlaG9sZGVyOnRoaXMuZGF0ZUlPU2VydmljZS5wbGFjZWhvbGRlclRleHR9Z2V0IGlucHV0VHlwZSgpe3JldHVybiBTbCh0aGlzLnBsYXRmb3JtSWQpJiZ0aGlzLnVzaW5nTmF0aXZlRGF0ZXBpY2tlcigpPyJkYXRlIjoidGV4dCJ9b25WYWx1ZUNoYW5n''@;'; + put 'put ''ZShoKXtjb25zdCB2PXRoaXMuZGF0ZUlPU2VydmljZS5nZXREYXRlVmFsdWVGcm9tRGF0ZVN0cmluZyhoLnZhbHVlKTtpZih0aGlzLnVzaW5nQ2xhcml0eURhdGVwaWNrZXIoKSYmdil0aGlzLnVwZGF0ZURhdGUodiwhMCk7ZWxzZSBpZih0aGlzLnVzaW5nTmF0aXZlRGF0ZXBpY2tlcigpKXtj''@;'; + put 'put ''b25zdFt5LEMsSV09aC52YWx1ZS5zcGxpdCgiLSIpO3RoaXMudXBkYXRlRGF0ZShuZXcgRGF0ZSgreSwrQy0xLCtJKSwhMCl9ZWxzZSB0aGlzLmVtaXREYXRlT3V0cHV0KG51bGwpfXNldCBkaXNhYmxlZChoKXt0aGlzLmRhdGVGb3JtQ29udHJvbFNlcnZpY2UmJnRoaXMuZGF0ZUZvcm1Db250''@;'; + put 'put ''cm9sU2VydmljZS5zZXREaXNhYmxlZChqYShoKSl9Z2V0IGRpc2FibGVkKCl7cmV0dXJuIHRoaXMuZGF0ZUZvcm1Db250cm9sU2VydmljZT90aGlzLmRhdGVGb3JtQ29udHJvbFNlcnZpY2UuZGlzYWJsZWQ6bnVsbH11c2luZ0NsYXJpdHlEYXRlcGlja2VyKCl7cmV0dXJuIHRoaXMuZGF0ZXBp''@;'; + put 'put ''Y2tlckVuYWJsZWRTZXJ2aWNlLmlzRW5hYmxlZH11c2luZ05hdGl2ZURhdGVwaWNrZXIoKXtyZXR1cm4hdGhpcy5kYXRlcGlja2VyRW5hYmxlZFNlcnZpY2UuaXNFbmFibGVkfXNldEZvY3VzKGgpe3RoaXMuZm9jdXNTZXJ2aWNlJiYodGhpcy5mb2N1c1NlcnZpY2UuZm9jdXNlZD1oKX1wb3B1''@;'; + put 'put ''bGF0ZVNlcnZpY2VzRnJvbUNvbnRhaW5lckNvbXBvbmVudCgpe3RoaXMuY29udGFpbmVyfHwodGhpcy5kYXRlSU9TZXJ2aWNlPXRoaXMuZ2V0UHJvdmlkZXJGcm9tQ29udGFpbmVyKHFqKSx0aGlzLmRhdGVOYXZpZ2F0aW9uU2VydmljZT10aGlzLmdldFByb3ZpZGVyRnJvbUNvbnRhaW5lcihn''@;'; + put 'put ''diksdGhpcy5kYXRlcGlja2VyRW5hYmxlZFNlcnZpY2U9dGhpcy5nZXRQcm92aWRlckZyb21Db250YWluZXIoY3EpLHRoaXMuZGF0ZUZvcm1Db250cm9sU2VydmljZT10aGlzLmdldFByb3ZpZGVyRnJvbUNvbnRhaW5lcihlWikpfXByb2Nlc3NJbml0aWFsSW5wdXRzKCl7dGhpcy5kYXRlcGlj''@;'; + put 'put ''a2VySGFzRm9ybUNvbnRyb2woKT90aGlzLnVwZGF0ZURhdGUodGhpcy5kYXRlSU9TZXJ2aWNlLmdldERhdGVWYWx1ZUZyb21EYXRlU3RyaW5nKHRoaXMuY29udHJvbC52YWx1ZSkpOnRoaXMudXBkYXRlRGF0ZSh0aGlzLmluaXRpYWxDbHJEYXRlSW5wdXRWYWx1ZSl9dXBkYXRlRGF0ZShoLHY9''@;'; + put 'put ''ITEpe2NvbnN0IHk9dGhpcy5nZXRWYWxpZERhdGVWYWx1ZUZyb21EYXRlKGgpO3Y/dGhpcy5lbWl0RGF0ZU91dHB1dCh5KTp0aGlzLnByZXZpb3VzRGF0ZUNoYW5nZT15LHRoaXMuZGF0ZU5hdmlnYXRpb25TZXJ2aWNlJiYodGhpcy5kYXRlTmF2aWdhdGlvblNlcnZpY2Uuc2VsZWN0ZWREYXk9''@;'; + put 'put ''eT9uZXcgYzQoeS5nZXRGdWxsWWVhcigpLHkuZ2V0TW9udGgoKSx5LmdldERhdGUoKSk6bnVsbCksdGhpcy51cGRhdGVJbnB1dCh5KX11cGRhdGVJbnB1dChoKXtpZihoKXtjb25zdCB2PXRoaXMuZGF0ZUlPU2VydmljZS50b0xvY2FsZURpc3BsYXlGb3JtYXRTdHJpbmcoaCk7dGhpcy51c2lu''@;'; + put 'put ''Z05hdGl2ZURhdGVwaWNrZXIoKT8oaC5zZXRNaW51dGVzKGguZ2V0TWludXRlcygpLWguZ2V0VGltZXpvbmVPZmZzZXQoKSksdGhpcy5yZW5kZXJlci5zZXRQcm9wZXJ0eSh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsInZhbHVlQXNEYXRlIixoKSk6dGhpcy5kYXRlcGlja2VySGFzRm9ybUNvbnRy''@;'; + put 'put ''b2woKSYmdiE9PXRoaXMuY29udHJvbC52YWx1ZT90aGlzLmNvbnRyb2wuY29udHJvbC5zZXRWYWx1ZSh2KTp0aGlzLnJlbmRlcmVyLnNldFByb3BlcnR5KHRoaXMuZWwubmF0aXZlRWxlbWVudCwidmFsdWUiLHYpfWVsc2UgdGhpcy5yZW5kZXJlci5zZXRQcm9wZXJ0eSh0aGlzLmVsLm5hdGl2''@;'; + put 'put ''ZUVsZW1lbnQsInZhbHVlIiwiIil9Z2V0VmFsaWREYXRlVmFsdWVGcm9tRGF0ZShoKXtpZih0aGlzLmRhdGVJT1NlcnZpY2Upe2NvbnN0IHY9dGhpcy5kYXRlSU9TZXJ2aWNlLnRvTG9jYWxlRGlzcGxheUZvcm1hdFN0cmluZyhoKTtyZXR1cm4gdGhpcy5kYXRlSU9TZXJ2aWNlLmdldERhdGVW''@;'; + put 'put ''YWx1ZUZyb21EYXRlU3RyaW5nKHYpfXJldHVybiBudWxsfWVtaXREYXRlT3V0cHV0KGgpeyFmdW5jdGlvbiBpT2UoZCxnKXtyZXR1cm4gZCBpbnN0YW5jZW9mIERhdGUmJmcgaW5zdGFuY2VvZiBEYXRlJiZkLmdldEZ1bGxZZWFyKCk9PT1nLmdldEZ1bGxZZWFyKCkmJmQuZ2V0TW9udGgoKT09''@;'; + put 'put ''PWcuZ2V0TW9udGgoKSYmZC5nZXREYXRlKCk9PT1nLmdldERhdGUoKX0oaCx0aGlzLnByZXZpb3VzRGF0ZUNoYW5nZSk/KHRoaXMuZGF0ZUNoYW5nZS5lbWl0KGgpLHRoaXMucHJldmlvdXNEYXRlQ2hhbmdlPWgpOiFoJiZ0aGlzLnByZXZpb3VzRGF0ZUNoYW5nZSYmKHRoaXMuZGF0ZUNoYW5n''@;'; + put 'put ''ZS5lbWl0KG51bGwpLHRoaXMucHJldmlvdXNEYXRlQ2hhbmdlPW51bGwpfWRhdGVwaWNrZXJIYXNGb3JtQ29udHJvbCgpe3JldHVybiEhdGhpcy5jb250cm9sfWxpc3RlbkZvckNvbnRyb2xWYWx1ZUNoYW5nZXMoKXtyZXR1cm4gYWEodGhpcy5kYXRlcGlja2VySGFzRm9ybUNvbnRyb2woKSku''@;'; + put 'put ''cGlwZShPMihoPT5oKSxZaCgoKT0+dGhpcy5jb250cm9sLnZhbHVlQ2hhbmdlcyksTzIoKCk9PiF0aGlzLmRhdGVwaWNrZXJGb2N1c1NlcnZpY2UuZWxlbWVudElzRm9jdXNlZCh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQpKSkuc3Vic2NyaWJlKGg9PnRoaXMudXBkYXRlRGF0ZSh0aGlzLmRhdGVJ''@;'; + put 'put ''T1NlcnZpY2UuZ2V0RGF0ZVZhbHVlRnJvbURhdGVTdHJpbmcoaCkpKX1saXN0ZW5Gb3JVc2VyU2VsZWN0ZWREYXlDaGFuZ2VzKCl7cmV0dXJuIHRoaXMuZGF0ZU5hdmlnYXRpb25TZXJ2aWNlLnNlbGVjdGVkRGF5Q2hhbmdlLnN1YnNjcmliZShoPT50aGlzLnVwZGF0ZURhdGUoaC50b0RhdGUo''@;'; + put 'put ''KSwhMCkpfWxpc3RlbkZvclRvdWNoQ2hhbmdlcygpe3JldHVybiB0aGlzLmRhdGVGb3JtQ29udHJvbFNlcnZpY2UudG91Y2hlZENoYW5nZS5waXBlKE8yKCgpPT50aGlzLmRhdGVwaWNrZXJIYXNGb3JtQ29udHJvbCgpKSkuc3Vic2NyaWJlKCgpPT50aGlzLmNvbnRyb2wuY29udHJvbC5tYXJr''@;'; + put 'put ''QXNUb3VjaGVkKCkpfWxpc3RlbkZvckRpcnR5Q2hhbmdlcygpe3JldHVybiB0aGlzLmRhdGVGb3JtQ29udHJvbFNlcnZpY2UuZGlydHlDaGFuZ2UucGlwZShPMigoKT0+dGhpcy5kYXRlcGlja2VySGFzRm9ybUNvbnRyb2woKSkpLnN1YnNjcmliZSgoKT0+dGhpcy5jb250cm9sLmNvbnRyb2wu''@;'; + put 'put ''bWFya0FzRGlydHkoKSl9bGlzdGVuRm9ySW5wdXRSZWZvY3VzKCl7cmV0dXJuIHRoaXMuZGF0ZU5hdmlnYXRpb25TZXJ2aWNlLnNlbGVjdGVkRGF5Q2hhbmdlLnBpcGUoTzIoaD0+ISFoKSkuc3Vic2NyaWJlKCgpPT50aGlzLmRhdGVwaWNrZXJGb2N1c1NlcnZpY2UuZm9jdXNJbnB1dCh0aGlz''@;'; + put 'put ''LmVsLm5hdGl2ZUVsZW1lbnQpKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoS3QoVWkpLEt0KGtzKSxLdChibyksS3QoR2EpLEt0KERmLDEwKSxLdChuWiw4KSxLdChxaiw4KSxLdChndiw4KSxLdChjcSw4KSxLdChlWiw4KSxLdChMMiksS3Qoa2Zl''@;'; + put 'put ''LDgpLEt0KEJMKSl9LGQuXHUwMjc1ZGlyPVdpKHt0eXBlOmQsc2VsZWN0b3JzOltbIiIsImNsckRhdGUiLCIiXV0saG9zdFZhcnM6NSxob3N0QmluZGluZ3M6ZnVuY3Rpb24oaCx2KXsxJmgmJkduKCJmb2N1cyIsZnVuY3Rpb24oKXtyZXR1cm4gdi5zZXRGb2N1c1N0YXRlcygpfSkoImJsdXIi''@;'; + put 'put ''LGZ1bmN0aW9uKCl7cmV0dXJuIHYudHJpZ2dlclZhbGlkYXRpb24oKX0pKCJjaGFuZ2UiLGZ1bmN0aW9uKEMpe3JldHVybiB2Lm9uVmFsdWVDaGFuZ2UoQy50YXJnZXQpfSksMiZoJiYoUDMoImRpc2FibGVkIix2LmRpc2FibGVkKSxHaSgicGxhY2Vob2xkZXIiLHYucGxhY2Vob2xkZXJUZXh0''@;'; + put 'put ''KSgidHlwZSIsdi5pbnB1dFR5cGUpLEZpKCJjbHItaW5wdXQiLCEwKSl9LGlucHV0czp7cGxhY2Vob2xkZXI6InBsYWNlaG9sZGVyIixkYXRlOlsiY2xyRGF0ZSIsImRhdGUiXSxtaW46Im1pbiIsbWF4OiJtYXgiLGRpc2FibGVkOiJkaXNhYmxlZCJ9LG91dHB1dHM6e2RhdGVDaGFuZ2U6ImNs''@;'; + put 'put ''ckRhdGVDaGFuZ2UifSxmZWF0dXJlczpbaG8oW0JMXSksRG9dfSksZH0pKCksc09lPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoKXtmcy5hZGRJY29ucyhLaCxUZixJeSxMc2UsT3NlKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1''@;'; + put 'put ''bW9kPWNvKHt0eXBlOmR9KSxkLlx1MDI3NWluaj1iMCh7aW1wb3J0czpbW2JhLFIscWEsUmMsSXMsc3EsSnJdXX0pLGR9KSgpO25ldyB6ZSh2b2lkIDApO2xldCBmT2U9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3Rvcigpe2ZzLmFkZEljb25zKGZWLFJzZSxLaCxUZil9fXJldHVybiBkLlx1MDI3''@;'; + put 'put ''NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1MDI3NW1vZD1jbyh7dHlwZTpkfSksZC5cdTAyNzVpbmo9YjAoe2ltcG9ydHM6W1tiYSxuZCxJcyxKcl0sSnJdfSksZH0pKCksV0FlPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoKXt0aGlzLl9keW5hbWljPSExfW5nT25J''@;'; + put 'put ''bml0KCl7dGhpcy5sYWJlbCYmdGhpcy5sYWJlbC5kaXNhYmxlR3JpZCgpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVjbXA9VGkoe3R5cGU6ZCxzZWxlY3RvcnM6W1siY2xyLXJhZGlvLXdyYXBwZXIiXV0sY29udGVudFF1ZXJpZXM6''@;'; + put 'put ''ZnVuY3Rpb24oaCx2LHkpe2lmKDEmaCYmeG8oeSxvdCw3KSwyJmgpe2xldCBDO0hpKEM9JGkoKSkmJih2LmxhYmVsPUMuZmlyc3QpfX0saG9zdFZhcnM6Mixob3N0QmluZGluZ3M6ZnVuY3Rpb24oaCx2KXsyJmgmJkZpKCJjbHItcmFkaW8td3JhcHBlciIsITApfSxmZWF0dXJlczpbaG8oW0td''@;'; + put 'put ''KV0sbmdDb250ZW50U2VsZWN0b3JzOmgkLGRlY2xzOjMsdmFyczoxLGNvbnN0czpbWzQsIm5nSWYiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oaCx2KXsxJmgmJihLMChjaCksTmkoMCksTmkoMSwxKSxybigyLGYkLDEsMCwibGFiZWwiLDApKSwyJmgmJih1dCgyKSxUdCgibmdJZiIsIXYubGFiZWwp''@;'; + put 'put ''KX0sZGVwZW5kZW5jaWVzOltObyxvdF0sZW5jYXBzdWxhdGlvbjoyfSksZH0pKCksRGZlPSgoKT0+e2NsYXNzIGQgZXh0ZW5kcyBTbntjb25zdHJ1Y3RvcihoLHYseSxDLEkpe3N1cGVyKGgsV0FlLHYseSxDLEkpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyho''@;'; + put 'put ''fHxkKShLdChVaSksS3Qoa3MpLEt0KERmLDEwKSxLdChHYSksS3QoYm8pKX0sZC5cdTAyNzVkaXI9V2koe3R5cGU6ZCxzZWxlY3RvcnM6W1siIiwiY2xyUmFkaW8iLCIiXV0sZmVhdHVyZXM6W0RvXX0pLGR9KSgpLGhPZT0oKCk9PntjbGFzcyBkIGV4dGVuZHMgWnR7Y29uc3RydWN0b3IoaCx2''@;'; + put 'put ''LHksQyl7c3VwZXIoQyxoLHYseSksdGhpcy5sYXlvdXRTZXJ2aWNlPWgsdGhpcy5jb250cm9sQ2xhc3NTZXJ2aWNlPXYsdGhpcy5uZ0NvbnRyb2xTZXJ2aWNlPXksdGhpcy5pZkNvbnRyb2xTdGF0ZVNlcnZpY2U9Qyx0aGlzLmlubGluZT0hMX1zZXQgY2xySW5saW5lKGgpe3RoaXMuaW5saW5l''@;'; + put 'put ''PSJzdHJpbmciPT10eXBlb2YgaD8iZmFsc2UiIT09aDohIWh9Z2V0IGNscklubGluZSgpe3JldHVybiB0aGlzLmlubGluZX1uZ0FmdGVyQ29udGVudEluaXQoKXt0aGlzLnNldEFyaWFSb2xlcygpfXNldEFyaWFSb2xlcygpe3RoaXMucm9sZT10aGlzLnJhZGlvcy5sZW5ndGg/Imdyb3VwIjpu''@;'; + put 'put ''dWxsfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShLdChXZSw4KSxLdChFdCksS3QoSGUpLEt0KHFlKSl9LGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQsc2VsZWN0b3JzOltbImNsci1yYWRpby1jb250YWluZXIiXV0sY29udGVudFF1ZXJpZXM6ZnVuY3Rp''@;'; + put 'put ''b24oaCx2LHkpe2lmKDEmaCYmeG8oeSxEZmUsNSksMiZoKXtsZXQgQztIaShDPSRpKCkpJiYodi5yYWRpb3M9Qyl9fSxob3N0VmFyczo3LGhvc3RCaW5kaW5nczpmdW5jdGlvbihoLHYpezImaCYmKEdpKCJyb2xlIix2LnJvbGUpLEZpKCJjbHItZm9ybS1jb250cm9sIiwhMCkoImNsci1mb3Jt''@;'; + put 'put ''LWNvbnRyb2wtZGlzYWJsZWQiLG51bGw9PXYuY29udHJvbD9udWxsOnYuY29udHJvbC5kaXNhYmxlZCkoImNsci1yb3ciLHYuYWRkR3JpZCgpKSl9LGlucHV0czp7Y2xySW5saW5lOiJjbHJJbmxpbmUifSxmZWF0dXJlczpbaG8oW0hlLHFlLEV0LGdlXSksRG9dLG5nQ29udGVudFNlbGVjdG9y''@;'; + put 'put ''czpDcCxkZWNsczoxMCx2YXJzOjksY29uc3RzOltbNCwibmdJZiJdLFsxLCJjbHItY29udHJvbC1jb250YWluZXIiLDMsIm5nQ2xhc3MiXSxbMSwiY2xyLXN1YnRleHQtd3JhcHBlciJdLFsiY2xhc3MiLCJjbHItdmFsaWRhdGUtaWNvbiIsInN0YXR1cyIsImRhbmdlciIsInNoYXBlIiwiZXhj''@;'; + put 'put ''bGFtYXRpb24tY2lyY2xlIiwiYXJpYS1oaWRkZW4iLCJ0cnVlIiw0LCJuZ0lmIl0sWyJjbGFzcyIsImNsci12YWxpZGF0ZS1pY29uIiwic2hhcGUiLCJjaGVjay1jaXJjbGUiLCJzdGF0dXMiLCJzdWNjZXNzIiwiYXJpYS1oaWRkZW4iLCJ0cnVlIiw0LCJuZ0lmIl0sWyJzdGF0dXMiLCJkYW5n''@;'; + put 'put ''ZXIiLCJzaGFwZSIsImV4Y2xhbWF0aW9uLWNpcmNsZSIsImFyaWEtaGlkZGVuIiwidHJ1ZSIsMSwiY2xyLXZhbGlkYXRlLWljb24iXSxbInNoYXBlIiwiY2hlY2stY2lyY2xlIiwic3RhdHVzIiwic3VjY2VzcyIsImFyaWEtaGlkZGVuIiwidHJ1ZSIsMSwiY2xyLXZhbGlkYXRlLWljb24iXV0s''@;'; + put 'put ''dGVtcGxhdGU6ZnVuY3Rpb24oaCx2KXsxJmgmJihLMCh5MCksTmkoMCkscm4oMSxJbCwxLDAsImxhYmVsIiwwKSxydCgyLCJkaXYiLDEpLE5pKDMsMSkscnQoNCwiZGl2IiwyKSxybig1LHBMLDEsMCwibmctY29udGVudCIsMCkscm4oNixkJCwxLDAsImNkcy1pY29uIiwzKSxybig3LHAkLDEs''@;'; + put 'put ''MCwiY2RzLWljb24iLDQpLHJuKDgsaXYsMSwwLCJuZy1jb250ZW50IiwwKSxybig5LGdMLDEsMCwibmctY29udGVudCIsMCksbHQoKSgpKSwyJmgmJih1dCgxKSxUdCgibmdJZiIsIXYubGFiZWwmJnYuYWRkR3JpZCgpKSx1dCgxKSxGaSgiY2xyLWNvbnRyb2wtaW5saW5lIix2LmNscklubGlu''@;'; + put 'put ''ZSksVHQoIm5nQ2xhc3MiLHYuY29udHJvbENsYXNzKCkpLHV0KDMpLFR0KCJuZ0lmIix2LnNob3dIZWxwZXIpLHV0KDEpLFR0KCJuZ0lmIix2LnNob3dJbnZhbGlkKSx1dCgxKSxUdCgibmdJZiIsdi5zaG93VmFsaWQpLHV0KDEpLFR0KCJuZ0lmIix2LnNob3dJbnZhbGlkKSx1dCgxKSxUdCgi''@;'; + put 'put ''bmdJZiIsdi5zaG93VmFsaWQpKX0sZGVwZW5kZW5jaWVzOltObyxvdCxsYyxab10sZW5jYXBzdWxhdGlvbjoyfSksZH0pKCksZE9lPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoKXtmcy5hZGRJY29ucyhLaCxUZil9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3''@;'; + put 'put ''KGh8fGQpfSxkLlx1MDI3NW1vZD1jbyh7dHlwZTpkfSksZC5cdTAyNzVpbmo9YjAoe2ltcG9ydHM6W1tiYSxKcixSLElzXSxKcl19KSxkfSkoKSxwT2U9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3Rvcigpe2ZzLmFkZEljb25zKEtoLFRmKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgp''@;'; + put 'put ''e3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1bW9kPWNvKHt0eXBlOmR9KSxkLlx1MDI3NWluaj1iMCh7aW1wb3J0czpbW2JhLEpyLFIsSXNdLEpyXX0pLGR9KSgpLHJaPSgoKT0+e2NsYXNzIGQgZXh0ZW5kcyBadHtjb25zdHJ1Y3RvcihoLHYseSxDKXtzdXBlcihDLGgsdix5KSx0aGlzLmxh''@;'; + put 'put ''eW91dFNlcnZpY2U9aCx0aGlzLmNvbnRyb2xDbGFzc1NlcnZpY2U9dix0aGlzLm5nQ29udHJvbFNlcnZpY2U9eSx0aGlzLmlmQ29udHJvbFN0YXRlU2VydmljZT1DLHRoaXMubXVsdGk9ITF9bmdPbkluaXQoKXt0aGlzLnN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLm5nQ29udHJvbFNlcnZpY2Uu''@;'; + put 'put ''Y29udHJvbENoYW5nZXMuc3Vic2NyaWJlKGg9PntoJiYodGhpcy5tdWx0aT1oLnZhbHVlQWNjZXNzb3IgaW5zdGFuY2VvZiB2cCx0aGlzLmNvbnRyb2w9aCl9KSl9d3JhcHBlckNsYXNzKCl7cmV0dXJuIHRoaXMubXVsdGk/ImNsci1tdWx0aXNlbGVjdC13cmFwcGVyIjoiY2xyLXNlbGVjdC13''@;'; + put 'put ''cmFwcGVyIn19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoS3QoV2UsOCksS3QoRXQpLEt0KEhlKSxLdChxZSkpfSxkLlx1MDI3NWNtcD1UaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJjbHItc2VsZWN0LWNvbnRhaW5lciJdXSxjb250ZW50UXVlcmllczpm''@;'; + put 'put ''dW5jdGlvbihoLHYseSl7aWYoMSZoJiZ4byh5LHZwLDUpLDImaCl7bGV0IEM7SGkoQz0kaSgpKSYmKHYubXVsdGlwbGU9Qy5maXJzdCl9fSxob3N0VmFyczo2LGhvc3RCaW5kaW5nczpmdW5jdGlvbihoLHYpezImaCYmRmkoImNsci1mb3JtLWNvbnRyb2wiLCEwKSgiY2xyLWZvcm0tY29udHJv''@;'; + put 'put ''bC1kaXNhYmxlZCIsbnVsbD09di5jb250cm9sP251bGw6di5jb250cm9sLmRpc2FibGVkKSgiY2xyLXJvdyIsdi5hZGRHcmlkKCkpfSxmZWF0dXJlczpbaG8oW3FlLEhlLEssRXRdKSxEb10sbmdDb250ZW50U2VsZWN0b3JzOm0kLGRlY2xzOjEwLHZhcnM6OCxjb25zdHM6W1s0LCJuZ0lmIl0s''@;'; + put 'put ''WzEsImNsci1jb250cm9sLWNvbnRhaW5lciIsMywibmdDbGFzcyJdLFszLCJuZ0NsYXNzIl0sWyJjbGFzcyIsImNsci12YWxpZGF0ZS1pY29uIiwic3RhdHVzIiwiZGFuZ2VyIiwic2hhcGUiLCJleGNsYW1hdGlvbi1jaXJjbGUiLCJhcmlhLWhpZGRlbiIsInRydWUiLDQsIm5nSWYiXSxbImNs''@;'; + put 'put ''YXNzIiwiY2xyLXZhbGlkYXRlLWljb24iLCJzaGFwZSIsImNoZWNrLWNpcmNsZSIsInN0YXR1cyIsInN1Y2Nlc3MiLCJhcmlhLWhpZGRlbiIsInRydWUiLDQsIm5nSWYiXSxbInN0YXR1cyIsImRhbmdlciIsInNoYXBlIiwiZXhjbGFtYXRpb24tY2lyY2xlIiwiYXJpYS1oaWRkZW4iLCJ0cnVl''@;'; + put 'put ''IiwxLCJjbHItdmFsaWRhdGUtaWNvbiJdLFsic2hhcGUiLCJjaGVjay1jaXJjbGUiLCJzdGF0dXMiLCJzdWNjZXNzIiwiYXJpYS1oaWRkZW4iLCJ0cnVlIiwxLCJjbHItdmFsaWRhdGUtaWNvbiJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihoLHYpezEmaCYmKEswKHJjZSksTmkoMCkscm4oMSwkdWUs''@;'; + put 'put ''MSwwLCJsYWJlbCIsMCkscnQoMiwiZGl2IiwxKSgzLCJkaXYiLDIpLE5pKDQsMSkscm4oNSxxdWUsMSwwLCJjZHMtaWNvbiIsMykscm4oNixlY2UsMSwwLCJjZHMtaWNvbiIsNCksbHQoKSxybig3LHRjZSwxLDAsIm5nLWNvbnRlbnQiLDApLHJuKDgsaWQsMSwwLCJuZy1jb250ZW50IiwwKSxy''@;'; + put 'put ''big5LG5jZSwxLDAsIm5nLWNvbnRlbnQiLDApLGx0KCkpLDImaCYmKHV0KDEpLFR0KCJuZ0lmIiwhdi5sYWJlbCYmdi5hZGRHcmlkKCkpLHV0KDEpLFR0KCJuZ0NsYXNzIix2LmNvbnRyb2xDbGFzcygpKSx1dCgxKSxUdCgibmdDbGFzcyIsdi53cmFwcGVyQ2xhc3MoKSksdXQoMiksVHQoIm5n''@;'; + put 'put ''SWYiLHYuc2hvd0ludmFsaWQpLHV0KDEpLFR0KCJuZ0lmIix2LnNob3dWYWxpZCksdXQoMSksVHQoIm5nSWYiLHYuc2hvd0hlbHBlciksdXQoMSksVHQoIm5nSWYiLHYuc2hvd0ludmFsaWQpLHV0KDEpLFR0KCJuZ0lmIix2LnNob3dWYWxpZCkpfSxkZXBlbmRlbmNpZXM6W05vLG90LGxjLFpv''@;'; + put 'put ''XSxlbmNhcHN1bGF0aW9uOjJ9KSxkfSkoKSxpWj0oKCk9PntjbGFzcyBkIGV4dGVuZHMgU257Y29uc3RydWN0b3IoaCx2LHksQyxJKXtzdXBlcihoLHJaLHYseSxDLEkpLHRoaXMuaW5kZXg9MX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoS3QoVWkp''@;'; + put 'put ''LEt0KGtzKSxLdChEZiwxMCksS3QoR2EpLEt0KGJvKSl9LGQuXHUwMjc1ZGlyPVdpKHt0eXBlOmQsc2VsZWN0b3JzOltbIiIsImNsclNlbGVjdCIsIiJdXSxob3N0VmFyczoyLGhvc3RCaW5kaW5nczpmdW5jdGlvbihoLHYpezImaCYmRmkoImNsci1zZWxlY3QiLCEwKX0sZmVhdHVyZXM6W0Rv''@;'; + put 'put ''XX0pLGR9KSgpLGdPZT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKCl7ZnMuYWRkSWNvbnMoS2gsVGYpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVtb2Q9Y28oe3R5cGU6ZH0pLGQuXHUwMjc1aW5qPWIwKHtpbXBvcnRzOltbYmEs''@;'; + put 'put ''bmQsSXMsSnJdLEpyXX0pLGR9KSgpLFlBZT0oKCk9PntjbGFzcyBkIGV4dGVuZHMgWnR7fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbigpe2xldCBnO3JldHVybiBmdW5jdGlvbih2KXtyZXR1cm4oZ3x8KGc9ZmwoZCkpKSh2fHxkKX19KCksZC5cdTAyNzVjbXA9VGkoe3R5cGU6ZCxzZWxl''@;'; + put 'put ''Y3RvcnM6W1siY2xyLXRleHRhcmVhLWNvbnRhaW5lciJdXSxob3N0VmFyczo2LGhvc3RCaW5kaW5nczpmdW5jdGlvbihoLHYpezImaCYmRmkoImNsci1mb3JtLWNvbnRyb2wiLCEwKSgiY2xyLWZvcm0tY29udHJvbC1kaXNhYmxlZCIsbnVsbD09di5jb250cm9sP251bGw6di5jb250cm9sLmRp''@;'; + put 'put ''c2FibGVkKSgiY2xyLXJvdyIsdi5hZGRHcmlkKCkpfSxmZWF0dXJlczpbaG8oW3FlLEhlLEssRXRdKSxEb10sbmdDb250ZW50U2VsZWN0b3JzOk1qLGRlY2xzOjEwLHZhcnM6Nyxjb25zdHM6W1s0LCJuZ0lmIl0sWzEsImNsci1jb250cm9sLWNvbnRhaW5lciIsMywibmdDbGFzcyJdLFsxLCJj''@;'; + put 'put ''bHItdGV4dGFyZWEtd3JhcHBlciJdLFsiY2xhc3MiLCJjbHItdmFsaWRhdGUtaWNvbiIsInN0YXR1cyIsImRhbmdlciIsInNoYXBlIiwiZXhjbGFtYXRpb24tY2lyY2xlIiwiYXJpYS1oaWRkZW4iLCJ0cnVlIiw0LCJuZ0lmIl0sWyJjbGFzcyIsImNsci12YWxpZGF0ZS1pY29uIiwic2hhcGUi''@;'; + put 'put ''LCJjaGVjay1jaXJjbGUiLCJzdGF0dXMiLCJzdWNjZXNzIiwiYXJpYS1oaWRkZW4iLCJ0cnVlIiw0LCJuZ0lmIl0sWyJzdGF0dXMiLCJkYW5nZXIiLCJzaGFwZSIsImV4Y2xhbWF0aW9uLWNpcmNsZSIsImFyaWEtaGlkZGVuIiwidHJ1ZSIsMSwiY2xyLXZhbGlkYXRlLWljb24iXSxbInNoYXBl''@;'; + put 'put ''IiwiY2hlY2stY2lyY2xlIiwic3RhdHVzIiwic3VjY2VzcyIsImFyaWEtaGlkZGVuIiwidHJ1ZSIsMSwiY2xyLXZhbGlkYXRlLWljb24iXV0sdGVtcGxhdGU6ZnVuY3Rpb24oaCx2KXsxJmgmJihLMChTaiksTmkoMCkscm4oMSxpY2UsMSwwLCJsYWJlbCIsMCkscnQoMiwiZGl2IiwxKSgzLCJk''@;'; + put 'put ''aXYiLDIpLE5pKDQsMSkscm4oNSx1OCwxLDAsImNkcy1pY29uIiwzKSxybig2LHdzLDEsMCwiY2RzLWljb24iLDQpLGx0KCkscm4oNyxvY2UsMSwwLCJuZy1jb250ZW50IiwwKSxybig4LGFjZSwxLDAsIm5nLWNvbnRlbnQiLDApLHJuKDksbGNlLDEsMCwibmctY29udGVudCIsMCksbHQoKSks''@;'; + put 'put ''MiZoJiYodXQoMSksVHQoIm5nSWYiLCF2LmxhYmVsJiZ2LmFkZEdyaWQoKSksdXQoMSksVHQoIm5nQ2xhc3MiLHYuY29udHJvbENsYXNzKCkpLHV0KDMpLFR0KCJuZ0lmIix2LnNob3dJbnZhbGlkKSx1dCgxKSxUdCgibmdJZiIsdi5zaG93VmFsaWQpLHV0KDEpLFR0KCJuZ0lmIix2LnNob3dI''@;'; + put 'put ''ZWxwZXIpLHV0KDEpLFR0KCJuZ0lmIix2LnNob3dJbnZhbGlkKSx1dCgxKSxUdCgibmdJZiIsdi5zaG93VmFsaWQpKX0sZGVwZW5kZW5jaWVzOltObyxvdCxsYyxab10sZW5jYXBzdWxhdGlvbjoyfSksZH0pKCksbU9lPSgoKT0+e2NsYXNzIGQgZXh0ZW5kcyBTbntjb25zdHJ1Y3RvcihoLHYs''@;'; + put 'put ''eSxDLEkpe3N1cGVyKGgsWUFlLHYseSxDLEkpLHRoaXMuaW5kZXg9MX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoS3QoVWkpLEt0KGtzKSxLdChEZiwxMCksS3QoR2EpLEt0KGJvKSl9LGQuXHUwMjc1ZGlyPVdpKHt0eXBlOmQsc2VsZWN0b3JzOltb''@;'; + put 'put ''IiIsImNsclRleHRhcmVhIiwiIl1dLGhvc3RWYXJzOjIsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGgsdil7MiZoJiZGaSgiY2xyLXRleHRhcmVhIiwhMCl9LGZlYXR1cmVzOltEb119KSxkfSkoKSx2T2U9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3Rvcigpe2ZzLmFkZEljb25zKEtoLFRmKX19cmV0''@;'; + put 'put ''dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1bW9kPWNvKHt0eXBlOmR9KSxkLlx1MDI3NWluaj1iMCh7aW1wb3J0czpbW2JhLG5kLElzLEpyXSxKcl19KSxkfSkoKSxVQWU9KCgpPT57Y2xhc3MgZHt9cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0''@;'; + put 'put ''aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1bW9kPWNvKHt0eXBlOmR9KSxkLlx1MDI3NWluaj1iMCh7aW1wb3J0czpbW2JhXSxKcixUYSx6TGUsc09lLEJBZSxmT2UsZE9lLGdPZSx2T2UscE9lLEdMZV19KSxkfSkoKSxmND0oKCk9PntjbGFzcyBke3VzZXJEZWZpbmVkV2lkdGgo''@;'; + put 'put ''aCl7aC5jbGFzc0xpc3QuYWRkKCJkYXRhZ3JpZC1jZWxsLXdpZHRoLXplcm8iKTtjb25zdCB2PXRoaXMuY2xpZW50UmVjdChoKS53aWR0aDtyZXR1cm4gaC5jbGFzc0xpc3QucmVtb3ZlKCJkYXRhZ3JpZC1jZWxsLXdpZHRoLXplcm8iKSx2fXNjcm9sbEJhcldpZHRoKGgpe3JldHVybiBoLm9m''@;'; + put 'put ''ZnNldFdpZHRoLWguY2xpZW50V2lkdGh9c2Nyb2xsV2lkdGgoaCl7cmV0dXJuIGguc2Nyb2xsV2lkdGh8fDB9Y29tcHV0ZWRIZWlnaHQoaCl7cmV0dXJuIHBhcnNlSW50KGdldENvbXB1dGVkU3R5bGUoaCkuZ2V0UHJvcGVydHlWYWx1ZSgiaGVpZ2h0IiksMTApfWNsaWVudFJlY3QoaCl7Y29u''@;'; + put 'put ''c3Qgdj1oLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3JldHVybnt0b3A6cGFyc2VJbnQodi50b3AsMTApLGJvdHRvbTpwYXJzZUludCh2LmJvdHRvbSwxMCksbGVmdDpwYXJzZUludCh2LmxlZnQsMTApLHJpZ2h0OnBhcnNlSW50KHYucmlnaHQsMTApLHdpZHRoOnBhcnNlSW50KHYud2lkdGgs''@;'; + put 'put ''MTApLGhlaWdodDpwYXJzZUludCh2LmhlaWdodCwxMCl9fW1pbldpZHRoKGgpe3JldHVybiBwYXJzZUludChnZXRDb21wdXRlZFN0eWxlKGgpLmdldFByb3BlcnR5VmFsdWUoIm1pbi13aWR0aCIpLDEwKX1mb2N1cyhoKXtoLmZvY3VzKCl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbiho''@;'; + put 'put ''KXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1MDI3NXByb3Y9QWkoe3Rva2VuOmQsZmFjdG9yeTpkLlx1MDI3NWZhY30pLGR9KSgpLGZxPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2KXt0aGlzLmVsZW1lbnQ9aCx0aGlzLmRvbUFkYXB0ZXI9dix0aGlzLnN0YXJ0SGVpZ2h0PTB9Z2V0IGV4''@;'; + put 'put ''cGFuZEFuaW1hdGlvbigpe3JldHVybnt2YWx1ZTp0aGlzLmNsckV4cGFuZFRyaWdnZXIscGFyYW1zOntzdGFydEhlaWdodDp0aGlzLnN0YXJ0SGVpZ2h0fX19YW5pbWF0aW9uRG9uZSgpe3RoaXMudXBkYXRlU3RhcnRIZWlnaHQoKX11cGRhdGVTdGFydEhlaWdodCgpe3RoaXMuc3RhcnRIZWln''@;'; + put 'put ''aHQ9dGhpcy5kb21BZGFwdGVyLmNvbXB1dGVkSGVpZ2h0KHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50KXx8MH19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoS3QoYm8pLEt0KGY0KSl9LGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQsc2VsZWN0b3JzOltb''@;'; + put 'put ''ImNsci1leHBhbmRhYmxlLWFuaW1hdGlvbiJdXSxob3N0VmFyczoxLGhvc3RCaW5kaW5nczpmdW5jdGlvbihoLHYpezEmaCYmTl8oIkBleHBhbmRBbmltYXRpb24uZG9uZSIsZnVuY3Rpb24oKXtyZXR1cm4gdi5hbmltYXRpb25Eb25lKCl9KSwyJmgmJkM1KCJAZXhwYW5kQW5pbWF0aW9uIix2''@;'; + put 'put ''LmV4cGFuZEFuaW1hdGlvbil9LGlucHV0czp7Y2xyRXhwYW5kVHJpZ2dlcjoiY2xyRXhwYW5kVHJpZ2dlciJ9LGZlYXR1cmVzOltobyhbZjRdKV0sbmdDb250ZW50U2VsZWN0b3JzOm5hLGRlY2xzOjEsdmFyczowLHRlbXBsYXRlOmZ1bmN0aW9uKGgsdil7MSZoJiYoSzAoKSxOaSgwKSl9LHN0''@;'; + put 'put ''eWxlczpbIltfbmdob3N0LSVDT01QJV17ZGlzcGxheTpibG9ja30iXSxkYXRhOnthbmltYXRpb246WyRoKCJleHBhbmRBbmltYXRpb24iLFtidSgidHJ1ZSA8PT4gZmFsc2UiLFt5bCh7aGVpZ2h0OiJ7e3N0YXJ0SGVpZ2h0fX1weCIsb3ZlcmZsb3c6ImhpZGRlbiJ9KSxEYygiMC4ycyBlYXNl''@;'; + put 'put ''LWluLW91dCIseWwoe2hlaWdodDoiKiJ9KSldKV0pXX19KSxkfSkoKSxRQWU9KCgpPT57Y2xhc3MgZHt9cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1bW9kPWNvKHt0eXBlOmR9KSxkLlx1MDI3NWluaj1iMCh7aW1wb3J0czpbW2JhXV19''@;'; + put 'put ''KSxkfSkoKTt2YXIgaGg9KCgpPT4oZnVuY3Rpb24oZCl7ZFtkLkRSQUdfU1RBUlQ9MF09IkRSQUdfU1RBUlQiLGRbZC5EUkFHX01PVkU9MV09IkRSQUdfTU9WRSIsZFtkLkRSQUdfRU5EPTJdPSJEUkFHX0VORCIsZFtkLkRSQUdfRU5URVI9M109IkRSQUdfRU5URVIiLGRbZC5EUkFHX0xFQVZF''@;'; + put 'put ''PTRdPSJEUkFHX0xFQVZFIixkW2QuRFJPUD01XT0iRFJPUCJ9KGhofHwoaGg9e30pKSxoaCkpKCk7bGV0IEpBZT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKCl7dGhpcy5kcmFnU3RhcnQ9bmV3ICRlLHRoaXMuZHJhZ01vdmU9bmV3ICRlLHRoaXMuZHJhZ0VuZD1uZXcgJGUsdGhpcy5kcm9w''@;'; + put 'put ''PW5ldyAkZX1nZXQgZHJhZ1N0YXJ0ZWQoKXtyZXR1cm4gdGhpcy5kcmFnU3RhcnQuYXNPYnNlcnZhYmxlKCl9Z2V0IGRyYWdNb3ZlZCgpe3JldHVybiB0aGlzLmRyYWdNb3ZlLmFzT2JzZXJ2YWJsZSgpfWdldCBkcmFnRW5kZWQoKXtyZXR1cm4gdGhpcy5kcmFnRW5kLmFzT2JzZXJ2YWJsZSgp''@;'; + put 'put ''fWdldCBkcm9wcGVkKCl7cmV0dXJuIHRoaXMuZHJvcC5hc09ic2VydmFibGUoKX1icm9hZGNhc3QoaCl7c3dpdGNoKGgudHlwZSl7Y2FzZSBoaC5EUkFHX1NUQVJUOnRoaXMuZHJhZ1N0YXJ0Lm5leHQoaCk7YnJlYWs7Y2FzZSBoaC5EUkFHX01PVkU6dGhpcy5kcmFnTW92ZS5uZXh0KGgpO2Jy''@;'; + put 'put ''ZWFrO2Nhc2UgaGguRFJBR19FTkQ6dGhpcy5kcmFnRW5kLm5leHQoaCk7YnJlYWs7Y2FzZSBoaC5EUk9QOnRoaXMuZHJvcC5uZXh0KGgpfX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQu''@;'; + put 'put ''XHUwMjc1ZmFjLHByb3ZpZGVkSW46InJvb3QifSksZH0pKCksb1o9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYseSl7dGhpcy5uZ1pvbmU9aCx0aGlzLnJlbmRlcmVyPXYsdGhpcy5ldmVudEJ1cz15LHRoaXMubGlzdGVuZXJzPVtdLHRoaXMuZHJhZ1N0YXJ0PW5ldyAkZSx0aGlzLmRy''@;'; + put 'put ''YWdNb3ZlPW5ldyAkZSx0aGlzLmRyYWdFbmQ9bmV3ICRlLHRoaXMuaGFzRHJhZ1N0YXJ0ZWQ9ITEsdGhpcy5kcmFnU3RhcnREZWxheT0wfWdldCBkcmFnU3RhcnRlZCgpe3JldHVybiB0aGlzLmRyYWdTdGFydC5hc09ic2VydmFibGUoKX1nZXQgZHJhZ01vdmVkKCl7cmV0dXJuIHRoaXMuZHJh''@;'; + put 'put ''Z01vdmUuYXNPYnNlcnZhYmxlKCl9Z2V0IGRyYWdFbmRlZCgpe3JldHVybiB0aGlzLmRyYWdFbmQuYXNPYnNlcnZhYmxlKCl9Z2V0IGRyYWdTdGFydFBvc2l0aW9uKCl7cmV0dXJuIHRoaXMuaW5pdGlhbFBvc2l0aW9ufWF0dGFjaERyYWdMaXN0ZW5lcnMoaCl7dGhpcy5kcmFnZ2FibGVFbD1o''@;'; + put 'put ''LHRoaXMubGlzdGVuZXJzLnB1c2godGhpcy5jdXN0b21EcmFnRXZlbnQodGhpcy5kcmFnZ2FibGVFbCwibW91c2Vkb3duIiwibW91c2Vtb3ZlIiwibW91c2V1cCIpKSx0aGlzLmxpc3RlbmVycy5wdXNoKHRoaXMuY3VzdG9tRHJhZ0V2ZW50KHRoaXMuZHJhZ2dhYmxlRWwsInRvdWNoc3RhcnQi''@;'; + put 'put ''LCJ0b3VjaG1vdmUiLCJ0b3VjaGVuZCIpKX1kZXRhY2hEcmFnTGlzdGVuZXJzKCl7dGhpcy5saXN0ZW5lcnMmJnRoaXMubGlzdGVuZXJzLm1hcChoPT5oKCkpLHRoaXMubmVzdGVkTGlzdGVuZXJzJiZ0aGlzLm5lc3RlZExpc3RlbmVycy5tYXAoaD0+aCgpKSx0aGlzLmNoZWNrRHJhZ1N0YXJ0''@;'; + put 'put ''Qm91bmRhcnlMaXN0ZW5lciYmdGhpcy5jaGVja0RyYWdTdGFydEJvdW5kYXJ5TGlzdGVuZXIoKX1nZXROYXRpdmVFdmVudE9iamVjdChoKXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGgsImNoYW5nZWRUb3VjaGVzIik/aC5jaGFuZ2VkVG91Y2hlc1swXTpo''@;'; + put 'put ''fWN1c3RvbURyYWdFdmVudChoLHYseSxDKXtyZXR1cm4gdGhpcy5yZW5kZXJlci5saXN0ZW4oaCx2LEk9Pnt0aGlzLmluaXRpYWxQb3NpdGlvbj17cGFnZVg6dGhpcy5nZXROYXRpdmVFdmVudE9iamVjdChJKS5wYWdlWCxwYWdlWTp0aGlzLmdldE5hdGl2ZUV2ZW50T2JqZWN0KEkpLnBhZ2VZ''@;'; + put 'put ''fSx0aGlzLm5lc3RlZExpc3RlbmVycz1bXSx0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKT0+e3RoaXMubmVzdGVkTGlzdGVuZXJzLnB1c2godGhpcy5yZW5kZXJlci5saXN0ZW4oImRvY3VtZW50Iiwic2VsZWN0c3RhcnQiLGo9PntqLnByZXZlbnREZWZhdWx0KCksai5zdG9wSW1t''@;'; + put 'put ''ZWRpYXRlUHJvcGFnYXRpb24oKX0pKSx0aGlzLmNoZWNrRHJhZ1N0YXJ0Qm91bmRhcnkoeSksdGhpcy5kcmFnU3RhcnREZWxheVRpbWVvdXQ9c2V0VGltZW91dCgoKT0+e3RoaXMuY2hlY2tEcmFnU3RhcnRCb3VuZGFyeUxpc3RlbmVyJiZ0aGlzLmNoZWNrRHJhZ1N0YXJ0Qm91bmRhcnlMaXN0''@;'; + put 'put ''ZW5lcigpLHRoaXMuaGFzRHJhZ1N0YXJ0ZWQ9ITAsdGhpcy5icm9hZGNhc3QoSSxoaC5EUkFHX1NUQVJUKSx0aGlzLm5lc3RlZExpc3RlbmVycy5wdXNoKHRoaXMucmVuZGVyZXIubGlzdGVuKCJkb2N1bWVudCIseSxqPT57ai5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKSx0aGlzLmhhc0Ry''@;'; + put 'put ''YWdTdGFydGVkJiZ0aGlzLmJyb2FkY2FzdChqLGhoLkRSQUdfTU9WRSl9KSl9LHRoaXMuZHJhZ1N0YXJ0RGVsYXkpfSksdGhpcy5uZXN0ZWRMaXN0ZW5lcnMucHVzaCh0aGlzLnJlbmRlcmVyLmxpc3RlbigiZG9jdW1lbnQiLEMsaj0+e3RoaXMuaGFzRHJhZ1N0YXJ0ZWQmJih0aGlzLmhhc0Ry''@;'; + put 'put ''YWdTdGFydGVkPSExLHRoaXMuYnJvYWRjYXN0KGosaGguRFJBR19FTkQpKSxjbGVhclRpbWVvdXQodGhpcy5kcmFnU3RhcnREZWxheVRpbWVvdXQpLHRoaXMubmVzdGVkTGlzdGVuZXJzLm1hcCh1ZT0+dWUoKSksdGhpcy5jaGVja0RyYWdTdGFydEJvdW5kYXJ5TGlzdGVuZXImJnRoaXMuY2hl''@;'; + put 'put ''Y2tEcmFnU3RhcnRCb3VuZGFyeUxpc3RlbmVyKCl9KSl9KX1jaGVja0RyYWdTdGFydEJvdW5kYXJ5KGgpe3RoaXMuY2hlY2tEcmFnU3RhcnRCb3VuZGFyeUxpc3RlbmVyPXRoaXMucmVuZGVyZXIubGlzdGVuKCJkb2N1bWVudCIsaCx2PT57Y29uc3QgeT1NYXRoLmFicyh0aGlzLmdldE5hdGl2''@;'; + put 'put ''ZUV2ZW50T2JqZWN0KHYpLnBhZ2VYLXRoaXMuaW5pdGlhbFBvc2l0aW9uLnBhZ2VYKSxDPU1hdGguYWJzKHRoaXMuZ2V0TmF0aXZlRXZlbnRPYmplY3QodikucGFnZVktdGhpcy5pbml0aWFsUG9zaXRpb24ucGFnZVkpOyh5PjF8fEM+MSkmJihjbGVhclRpbWVvdXQodGhpcy5kcmFnU3RhcnRE''@;'; + put 'put ''ZWxheVRpbWVvdXQpLHRoaXMuY2hlY2tEcmFnU3RhcnRCb3VuZGFyeUxpc3RlbmVyJiZ0aGlzLmNoZWNrRHJhZ1N0YXJ0Qm91bmRhcnlMaXN0ZW5lcigpKX0pfWJyb2FkY2FzdChoLHYpe2NvbnN0IHk9dGhpcy5nZW5lcmF0ZURyYWdFdmVudChoLHYpO3N3aXRjaCh5LnR5cGUpe2Nhc2UgaGgu''@;'; + put 'put ''RFJBR19TVEFSVDp0aGlzLmRyYWdTdGFydC5uZXh0KHkpO2JyZWFrO2Nhc2UgaGguRFJBR19NT1ZFOnRoaXMuZHJhZ01vdmUubmV4dCh5KTticmVhaztjYXNlIGhoLkRSQUdfRU5EOnRoaXMuZHJhZ0VuZC5uZXh0KHkpfXkuZ2hvc3RFbGVtZW50PXRoaXMuZ2hvc3RFbGVtZW50LHkuZHJvcFBv''@;'; + put 'put ''aW50UG9zaXRpb249dGhpcy5kcm9wUG9pbnRQb3NpdGlvbix0aGlzLmV2ZW50QnVzLmJyb2FkY2FzdCh5KX1nZW5lcmF0ZURyYWdFdmVudChoLHYpe2NvbnN0IHk9dGhpcy5nZXROYXRpdmVFdmVudE9iamVjdChoKTtyZXR1cm57dHlwZTp2LGRyYWdQb3NpdGlvbjp7cGFnZVg6eS5wYWdlWCxw''@;'; + put 'put ''YWdlWTp5LnBhZ2VZLG1vdmVYOnkucGFnZVgtdGhpcy5pbml0aWFsUG9zaXRpb24ucGFnZVgsbW92ZVk6eS5wYWdlWS10aGlzLmluaXRpYWxQb3NpdGlvbi5wYWdlWX0sZ3JvdXA6dGhpcy5ncm91cCxkcmFnRGF0YVRyYW5zZmVyOnRoaXMuZHJhZ0RhdGFUcmFuc2ZlcixnaG9zdEVsZW1lbnQ6''@;'; + put 'put ''dGhpcy5naG9zdEVsZW1lbnR9fX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShDaShfbCksQ2koR2EpLENpKEpBZSkpfSxkLlx1MDI3NXByb3Y9QWkoe3Rva2VuOmQsZmFjdG9yeTpkLlx1MDI3NWZhY30pLGR9KSgpLExmZT0oKCk9PntjbGFzcyBke2Nv''@;'; + put 'put ''bnN0cnVjdG9yKGgsdil7dGhpcy5kcmFnRXZlbnRMaXN0ZW5lcj1oLHRoaXMucmVuZGVyZXI9dn1nZXQgZGVmYXVsdEhhbmRsZUVsKCl7cmV0dXJuIHRoaXMuX2RlZmF1bHRIYW5kbGVFbH1zZXQgZGVmYXVsdEhhbmRsZUVsKGgpe3RoaXMuX2RlZmF1bHRIYW5kbGVFbD1oLHRoaXMuX2N1c3Rv''@;'; + put 'put ''bUhhbmRsZUVsfHx0aGlzLm1ha2VFbGVtZW50SGFuZGxlKHRoaXMuX2RlZmF1bHRIYW5kbGVFbCl9bWFrZUVsZW1lbnRIYW5kbGUoaCl7dGhpcy5fZGVmYXVsdEhhbmRsZUVsJiZ0aGlzLl9kZWZhdWx0SGFuZGxlRWwhPT1oJiZ0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuX2RlZmF1''@;'; + put 'put ''bHRIYW5kbGVFbCwiZHJhZy1oYW5kbGUiKSx0aGlzLmRyYWdFdmVudExpc3RlbmVyLmF0dGFjaERyYWdMaXN0ZW5lcnMoaCksdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhoLCJkcmFnLWhhbmRsZSIpfWdldCBjdXN0b21IYW5kbGVFbCgpe3JldHVybiB0aGlzLl9jdXN0b21IYW5kbGVFbH1yZWdp''@;'; + put 'put ''c3RlckN1c3RvbUhhbmRsZShoKXt0aGlzLmRyYWdFdmVudExpc3RlbmVyLmRldGFjaERyYWdMaXN0ZW5lcnMoKSx0aGlzLl9jdXN0b21IYW5kbGVFbD1oLHRoaXMubWFrZUVsZW1lbnRIYW5kbGUodGhpcy5fY3VzdG9tSGFuZGxlRWwpfXVucmVnaXN0ZXJDdXN0b21IYW5kbGUoKXt0aGlzLmRy''@;'; + put 'put ''YWdFdmVudExpc3RlbmVyLmRldGFjaERyYWdMaXN0ZW5lcnMoKSx0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuX2N1c3RvbUhhbmRsZUVsLCJkcmFnLWhhbmRsZSIpLGRlbGV0ZSB0aGlzLl9jdXN0b21IYW5kbGVFbCx0aGlzLl9kZWZhdWx0SGFuZGxlRWwmJnRoaXMubWFrZUVsZW1l''@;'; + put 'put ''bnRIYW5kbGUodGhpcy5fZGVmYXVsdEhhbmRsZUVsKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoQ2kob1opLENpKEdhKSl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1ZmFjfSksZH0pKCksT2ZlPSgoKT0+e2NsYXNz''@;'; + put 'put ''IGR7Y29uc3RydWN0b3IoaCl7dGhpcy5kb21BZGFwdGVyPWh9Y2FwdHVyZShoLHYpe3RoaXMuZHJhZ2dhYmxlRWxDbGllbnRSZWN0PXRoaXMuZG9tQWRhcHRlci5jbGllbnRSZWN0KGgpLHRoaXMuc25hcHNob3REcmFnRXZlbnQ9dn1kaXNjYXJkKCl7ZGVsZXRlIHRoaXMuZHJhZ2dhYmxlRWxD''@;'; + put 'put ''bGllbnRSZWN0LGRlbGV0ZSB0aGlzLnNuYXBzaG90RHJhZ0V2ZW50fWdldCBoYXNEcmFnZ2FibGVTdGF0ZSgpe3JldHVybiEhdGhpcy5zbmFwc2hvdERyYWdFdmVudCYmISF0aGlzLmRyYWdnYWJsZUVsQ2xpZW50UmVjdH1nZXQgY2xpZW50UmVjdCgpe3JldHVybiB0aGlzLmRyYWdnYWJsZUVs''@;'; + put 'put ''Q2xpZW50UmVjdH1nZXQgZHJhZ0V2ZW50KCl7cmV0dXJuIHRoaXMuc25hcHNob3REcmFnRXZlbnR9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKENpKGY0KSl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1ZmFjfSksZH0p''@;'; + put 'put ''KCksWEFlPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2LHksQyxJKXtpZih0aGlzLmVsPWgsdGhpcy5kcmFnRXZlbnRMaXN0ZW5lcj12LHRoaXMuZHJhZ2dhYmxlU25hcHNob3Q9eSx0aGlzLnJlbmRlcmVyPUMsdGhpcy5uZ1pvbmU9SSx0aGlzLnN1YnNjcmlwdGlvbnM9W10sdGhpcy5s''@;'; + put 'put ''ZWF2ZUFuaW1Db25maWc9e3ZhbHVlOjAscGFyYW1zOnt0b3A6IjBweCIsbGVmdDoiMHB4In19LCF0aGlzLmRyYWdFdmVudExpc3RlbmVyfHwhdGhpcy5kcmFnZ2FibGVTbmFwc2hvdCl0aHJvdyBuZXcgRXJyb3IoIlRoZSBjbHItZHJhZ2dhYmxlLWdob3N0IGNvbXBvbmVudCBjYW4gb25seSBi''@;'; + put 'put ''ZSB1c2VkIGluc2lkZSBvZiBhIGNsckRyYWdnYWJsZSBkaXJlY3RpdmUuIik7dGhpcy5kcmFnZ2FibGVHaG9zdEVsPXRoaXMuZWwubmF0aXZlRWxlbWVudCx0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZHJhZ2dhYmxlR2hvc3RFbCwiZHJhZ2dhYmxlLWdob3N0IiksdGhpcy5kcmFnRXZl''@;'; + put 'put ''bnRMaXN0ZW5lci5naG9zdEVsZW1lbnQ9dGhpcy5kcmFnZ2FibGVHaG9zdEVsLHRoaXMuc2V0RGVmYXVsdEdob3N0U2l6ZSh0aGlzLmRyYWdnYWJsZUdob3N0RWwpO2NvbnN0IGo9e3RvcDp0aGlzLmRyYWdnYWJsZVNuYXBzaG90Lmhhc0RyYWdnYWJsZVN0YXRlP3RoaXMuZHJhZ2dhYmxlU25h''@;'; + put 'put ''cHNob3QuZHJhZ0V2ZW50LmRyYWdQb3NpdGlvbi5wYWdlWS10aGlzLmRyYWdnYWJsZVNuYXBzaG90LmNsaWVudFJlY3QudG9wOjAsbGVmdDp0aGlzLmRyYWdnYWJsZVNuYXBzaG90Lmhhc0RyYWdnYWJsZVN0YXRlP3RoaXMuZHJhZ2dhYmxlU25hcHNob3QuZHJhZ0V2ZW50LmRyYWdQb3NpdGlv''@;'; + put 'put ''bi5wYWdlWC10aGlzLmRyYWdnYWJsZVNuYXBzaG90LmNsaWVudFJlY3QubGVmdDowfTtsZXQgdWU9ITE7dGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy5kcmFnRXZlbnRMaXN0ZW5lci5kcmFnTW92ZWQuc3Vic2NyaWJlKF9lPT57dWV8fCh0aGlzLmRyYWdnYWJsZVNuYXBzaG90Lmhhc0Ry''@;'; + put 'put ''YWdnYWJsZVN0YXRlP3RoaXMuYW5pbWF0ZVRvT25MZWF2ZShgJHt0aGlzLmRyYWdnYWJsZVNuYXBzaG90LmNsaWVudFJlY3QudG9wfXB4YCxgJHt0aGlzLmRyYWdnYWJsZVNuYXBzaG90LmNsaWVudFJlY3QubGVmdH1weGApOnRoaXMuYW5pbWF0ZVRvT25MZWF2ZShgJHt0aGlzLmRyYWdFdmVu''@;'; + put 'put ''dExpc3RlbmVyLmRyYWdTdGFydFBvc2l0aW9uLnBhZ2VZfXB4YCxgJHt0aGlzLmRyYWdFdmVudExpc3RlbmVyLmRyYWdTdGFydFBvc2l0aW9uLnBhZ2VZfXB4YCksdWU9ITApO2NvbnN0IEJlPXRoaXMuZmluZFRvcExlZnRQb3NpdGlvbihfZS5kcmFnUG9zaXRpb24saik7dGhpcy5zZXRQb3Np''@;'; + put 'put ''dGlvblN0eWxlKHRoaXMuZHJhZ2dhYmxlR2hvc3RFbCxCZS5wYWdlWCxCZS5wYWdlWSksdGhpcy5kcmFnRXZlbnRMaXN0ZW5lci5kcm9wUG9pbnRQb3NpdGlvbj10aGlzLmZpbmREcm9wUG9pbnRQb3NpdGlvbihCZSl9KSl9c2V0RGVmYXVsdEdob3N0U2l6ZShoKXt0aGlzLmRyYWdnYWJsZVNu''@;'; + put 'put ''YXBzaG90Lmhhc0RyYWdnYWJsZVN0YXRlJiZ0aGlzLnNldFNpemVTdHlsZShoLHRoaXMuZHJhZ2dhYmxlU25hcHNob3QuY2xpZW50UmVjdC53aWR0aCx0aGlzLmRyYWdnYWJsZVNuYXBzaG90LmNsaWVudFJlY3QuaGVpZ2h0KX1hbmltYXRlVG9PbkxlYXZlKGgsdil7dGhpcy5uZ1pvbmUucnVu''@;'; + put 'put ''KCgpPT57dGhpcy5sZWF2ZUFuaW1Db25maWc9e3ZhbHVlOjAscGFyYW1zOnt0b3A6aCxsZWZ0OnZ9fX0pfWZpbmRUb3BMZWZ0UG9zaXRpb24oaCx2KXtyZXR1cm57cGFnZVg6aC5wYWdlWC12LmxlZnQscGFnZVk6aC5wYWdlWS12LnRvcH19ZmluZERyb3BQb2ludFBvc2l0aW9uKGgpe3JldHVy''@;'; + put 'put ''biB0aGlzLmRyYWdnYWJsZVNuYXBzaG90Lmhhc0RyYWdnYWJsZVN0YXRlP3twYWdlWDpoLnBhZ2VYK3RoaXMuZHJhZ2dhYmxlU25hcHNob3QuY2xpZW50UmVjdC53aWR0aC8yLHBhZ2VZOmgucGFnZVkrdGhpcy5kcmFnZ2FibGVTbmFwc2hvdC5jbGllbnRSZWN0LmhlaWdodC8yfTpofXNldFNp''@;'; + put 'put ''emVTdHlsZShoLHYseSl7dGhpcy5yZW5kZXJlci5zZXRTdHlsZShoLCJ3aWR0aCIsYCR7dn1weGApLHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoaCwiaGVpZ2h0IixgJHt5fXB4YCl9c2V0UG9zaXRpb25TdHlsZShoLHYseSl7dGhpcy5yZW5kZXJlci5zZXRTdHlsZShoLCJsZWZ0IixgJHt2fXB4''@;'; + put 'put ''YCksdGhpcy5yZW5kZXJlci5zZXRTdHlsZShoLCJ0b3AiLGAke3l9cHhgKSx0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGgsInZpc2liaWxpdHkiLCJ2aXNpYmxlIil9bmdPbkRlc3Ryb3koKXt0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChoPT5oLnVuc3Vic2NyaWJlKCkpfX1yZXR1cm4gZC5c''@;'; + put 'put ''dTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShLdChibyksS3Qob1osOCksS3QoT2ZlLDgpLEt0KEdhKSxLdChfbCkpfSxkLlx1MDI3NWNtcD1UaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJjbHItZHJhZ2dhYmxlLWdob3N0Il1dLGhvc3RWYXJzOjEsaG9zdEJpbmRpbmdzOmZ1''@;'; + put 'put ''bmN0aW9uKGgsdil7MiZoJiZDNSgiQGxlYXZlQW5pbWF0aW9uIix2LmxlYXZlQW5pbUNvbmZpZyl9LG5nQ29udGVudFNlbGVjdG9yczpuYSxkZWNsczoxLHZhcnM6MCx0ZW1wbGF0ZTpmdW5jdGlvbihoLHYpezEmaCYmKEswKCksTmkoMCkpfSxlbmNhcHN1bGF0aW9uOjIsZGF0YTp7YW5pbWF0''@;'; + put 'put ''aW9uOlskaCgibGVhdmVBbmltYXRpb24iLFtidSgiOmxlYXZlIixbeWwoe2xlZnQ6IioiLHRvcDoiKiJ9KSxEYygiMC4ycyBlYXNlLWluLW91dCIseWwoe3RvcDoie3t0b3B9fSIsbGVmdDoie3tsZWZ0fX0ifSkpXSldKV19fSksZH0pKCk7Y2xhc3MgbXZ7Y29uc3RydWN0b3IoZyl7dGhpcy5k''@;'; + put 'put ''cmFnUG9zaXRpb249Zy5kcmFnUG9zaXRpb24sdGhpcy5ncm91cD1nLmdyb3VwLHRoaXMuZHJhZ0RhdGFUcmFuc2Zlcj1nLmRyYWdEYXRhVHJhbnNmZXIsdGhpcy5kcm9wUG9pbnRQb3NpdGlvbj1nLmRyb3BQb2ludFBvc2l0aW9ufX1sZXQgS0FlPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3Io''@;'; + put 'put ''aCx2LHkpe2lmKHRoaXMudGVtcGxhdGU9aCx0aGlzLmNvbnRhaW5lcj12LHRoaXMuZHJhZ0V2ZW50TGlzdGVuZXI9eSx0aGlzLnN1YnNjcmlwdGlvbnM9W10sIXRoaXMuZHJhZ0V2ZW50TGlzdGVuZXJ8fCF0aGlzLmNvbnRhaW5lcil0aHJvdyBuZXcgRXJyb3IoIlRoZSAqY2xySWZEcmFnZ2Vk''@;'; + put 'put ''IGRpcmVjdGl2ZSBjYW4gb25seSBiZSB1c2VkIGluc2lkZSBvZiBhIGNsckRyYWdnYWJsZSBkaXJlY3RpdmUuIik7dGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy5kcmFnRXZlbnRMaXN0ZW5lci5kcmFnU3RhcnRlZC5zdWJzY3JpYmUoKCk9Pnt0aGlzLmNvbnRhaW5lci5jcmVhdGVFbWJl''@;'; + put 'put ''ZGRlZFZpZXcodGhpcy50ZW1wbGF0ZSl9KSksdGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy5kcmFnRXZlbnRMaXN0ZW5lci5kcmFnRW5kZWQuc3Vic2NyaWJlKCgpPT57dGhpcy5jb250YWluZXIuY2xlYXIoKX0pKX1uZ09uRGVzdHJveSgpe3RoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNo''@;'; + put 'put ''KGg9PmgudW5zdWJzY3JpYmUoKSl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKEt0KHFyKSxLdChVaSwxMiksS3Qob1osOCkpfSxkLlx1MDI3NWRpcj1XaSh7dHlwZTpkLHNlbGVjdG9yczpbWyIiLCJjbHJJZkRyYWdnZWQiLCIiXV19KSxkfSkoKSwk''@;'; + put 'put ''QWU9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoKXt0aGlzLnJlbmRlcmVyPWh9ZW50ZXIoKXt0aGlzLnJlbmRlcmVyLmFkZENsYXNzKGRvY3VtZW50LmJvZHksImluLWRyYWciKX1leGl0KCl7dGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyhkb2N1bWVudC5ib2R5LCJpbi1kcmFnIil9fXJl''@;'; + put 'put ''dHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKENpKEdhKSl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1ZmFjfSksZH0pKCkscUFlPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2LHksQyxJLGosdWUsX2Upe3RoaXMuZWw9''@;'; + put 'put ''aCx0aGlzLmRyYWdFdmVudExpc3RlbmVyPXYsdGhpcy5kcmFnSGFuZGxlUmVnaXN0cmFyPXksdGhpcy52aWV3Q29udGFpbmVyUmVmPUMsdGhpcy5jZnI9SSx0aGlzLmluamVjdG9yPWosdGhpcy5kcmFnZ2FibGVTbmFwc2hvdD11ZSx0aGlzLmdsb2JhbERyYWdNb2RlPV9lLHRoaXMuc3Vic2Ny''@;'; + put 'put ''aXB0aW9ucz1bXSx0aGlzLmRyYWdPbj0hMSx0aGlzLmRyYWdTdGFydEVtaXR0ZXI9bmV3IGFyLHRoaXMuZHJhZ01vdmVFbWl0dGVyPW5ldyBhcix0aGlzLmRyYWdFbmRFbWl0dGVyPW5ldyBhcix0aGlzLmRyYWdnYWJsZUVsPXRoaXMuZWwubmF0aXZlRWxlbWVudCx0aGlzLmNvbXBvbmVudEZh''@;'; + put 'put ''Y3Rvcnk9dGhpcy5jZnIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoWEFlKX1zZXQgZGF0YVRyYW5zZmVyKGgpe3RoaXMuZHJhZ0V2ZW50TGlzdGVuZXIuZHJhZ0RhdGFUcmFuc2Zlcj1ofXNldCBncm91cChoKXt0aGlzLmRyYWdFdmVudExpc3RlbmVyLmdyb3VwPWh9c2V0IGRyYWdTdGFydERl''@;'; + put 'put ''bGF5KGgpeyJudW1iZXIiPT10eXBlb2YgaD90aGlzLmRyYWdFdmVudExpc3RlbmVyLmRyYWdTdGFydERlbGF5PWg6InN0cmluZyI9PXR5cGVvZiBoJiYodGhpcy5kcmFnRXZlbnRMaXN0ZW5lci5kcmFnU3RhcnREZWxheT1wYXJzZUludChoLDEwKXx8MCl9Y3JlYXRlRGVmYXVsdEdob3N0KGgp''@;'; + put 'put ''e3RoaXMuZHJhZ2dhYmxlU25hcHNob3QuY2FwdHVyZSh0aGlzLmRyYWdnYWJsZUVsLGgpLHRoaXMudmlld0NvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQodGhpcy5jb21wb25lbnRGYWN0b3J5LDAsdGhpcy5pbmplY3RvcixbW3RoaXMuZHJhZ2dhYmxlRWwuY2xvbmVOb2RlKCEwKV1dKX1k''@;'; + put 'put ''ZXN0cm95RGVmYXVsdEdob3N0KCl7dGhpcy52aWV3Q29udGFpbmVyUmVmLmNsZWFyKCksdGhpcy5kcmFnZ2FibGVTbmFwc2hvdC5kaXNjYXJkKCl9bmdBZnRlckNvbnRlbnRJbml0KCl7dGhpcy5kcmFnSGFuZGxlUmVnaXN0cmFyLmRlZmF1bHRIYW5kbGVFbD10aGlzLmRyYWdnYWJsZUVsLHRo''@;'; + put 'put ''aXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMuZHJhZ0V2ZW50TGlzdGVuZXIuZHJhZ1N0YXJ0ZWQuc3Vic2NyaWJlKGg9Pnt0aGlzLmdsb2JhbERyYWdNb2RlLmVudGVyKCksdGhpcy5kcmFnT249ITAsdGhpcy5jdXN0b21HaG9zdHx8dGhpcy5jcmVhdGVEZWZhdWx0R2hvc3QoaCksdGhpcy5k''@;'; + put 'put ''cmFnU3RhcnRFbWl0dGVyLmVtaXQobmV3IG12KGgpKX0pKSx0aGlzLnN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLmRyYWdFdmVudExpc3RlbmVyLmRyYWdNb3ZlZC5zdWJzY3JpYmUoaD0+e3RoaXMuZHJhZ01vdmVFbWl0dGVyLmVtaXQobmV3IG12KGgpKX0pKSx0aGlzLnN1YnNjcmlwdGlvbnMu''@;'; + put 'put ''cHVzaCh0aGlzLmRyYWdFdmVudExpc3RlbmVyLmRyYWdFbmRlZC5zdWJzY3JpYmUoaD0+e3RoaXMuZ2xvYmFsRHJhZ01vZGUuZXhpdCgpLHRoaXMuZHJhZ09uPSExLHRoaXMuY3VzdG9tR2hvc3R8fHRoaXMuZGVzdHJveURlZmF1bHRHaG9zdCgpLHRoaXMuZHJhZ0VuZEVtaXR0ZXIuZW1pdChu''@;'; + put 'put ''ZXcgbXYoaCkpfSkpfW5nT25EZXN0cm95KCl7dGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goaD0+aC51bnN1YnNjcmliZSgpKSx0aGlzLmRyYWdFdmVudExpc3RlbmVyLmRldGFjaERyYWdMaXN0ZW5lcnMoKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8''@;'; + put 'put ''ZCkoS3QoYm8pLEt0KG9aKSxLdChMZmUpLEt0KFVpKSxLdChNZCksS3Qoa3MpLEt0KE9mZSksS3QoJEFlKSl9LGQuXHUwMjc1ZGlyPVdpKHt0eXBlOmQsc2VsZWN0b3JzOltbIiIsImNsckRyYWdnYWJsZSIsIiJdXSxjb250ZW50UXVlcmllczpmdW5jdGlvbihoLHYseSl7aWYoMSZoJiZ4byh5''@;'; + put 'put ''LEtBZSw1KSwyJmgpe2xldCBDO0hpKEM9JGkoKSkmJih2LmN1c3RvbUdob3N0PUMuZmlyc3QpfX0saG9zdFZhcnM6NCxob3N0QmluZGluZ3M6ZnVuY3Rpb24oaCx2KXsyJmgmJkZpKCJkcmFnZ2FibGUiLCEwKSgiYmVpbmctZHJhZ2dlZCIsdi5kcmFnT24pfSxpbnB1dHM6e2RhdGFUcmFuc2Zl''@;'; + put 'put ''cjpbImNsckRyYWdnYWJsZSIsImRhdGFUcmFuc2ZlciJdLGdyb3VwOlsiY2xyR3JvdXAiLCJncm91cCJdLGRyYWdTdGFydERlbGF5OlsiY2xyRHJhZ1N0YXJ0RGVsYXkiLCJkcmFnU3RhcnREZWxheSJdfSxvdXRwdXRzOntkcmFnU3RhcnRFbWl0dGVyOiJjbHJEcmFnU3RhcnQiLGRyYWdNb3Zl''@;'; + put 'put ''RW1pdHRlcjoiY2xyRHJhZ01vdmUiLGRyYWdFbmRFbWl0dGVyOiJjbHJEcmFnRW5kIn0sZmVhdHVyZXM6W2hvKFtvWixMZmUsT2ZlLCRBZSxmNF0pXX0pLGR9KSgpLGV5ZT0oKCk9PntjbGFzcyBke31yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5c''@;'; + put 'put ''dTAyNzVtb2Q9Y28oe3R5cGU6ZH0pLGQuXHUwMjc1aW5qPWIwKHtpbXBvcnRzOltbYmFdXX0pLGR9KSgpO2NvbnN0IHR5ZT1uZXcgemUoIkZPQ1VTX09OX1ZJRVdfSU5JVCIpLHlPZT17cHJvdmlkZTp0eWUsdXNlVmFsdWU6ITB9O2xldCBSZmU9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3Rvciho''@;'; + put 'put ''LHYseSxDLEksail7dGhpcy5lbD1oLHRoaXMucGxhdGZvcm1JZD12LHRoaXMuZm9jdXNPblZpZXdJbml0PXksdGhpcy5yZW5kZXJlcj1JLHRoaXMuZGVzdHJveSQ9bmV3ICRlLHRoaXMuZGlyZWN0Rm9jdXM9ITAsdGhpcy5faXNFbmFibGVkPXRoaXMuZm9jdXNPblZpZXdJbml0LHRoaXMuZG9j''@;'; + put 'put ''dW1lbnQ9QyxqLnJ1bk91dHNpZGVBbmd1bGFyKCgpPT50OChoLm5hdGl2ZUVsZW1lbnQsImZvY3Vzb3V0IikucGlwZShqNyh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKCgpPT57dGhpcy5kaXJlY3RGb2N1c3x8KHRoaXMucmVuZGVyZXIucmVtb3ZlQXR0cmlidXRlKHRoaXMuZWwubmF0aXZl''@;'; + put 'put ''RWxlbWVudCwidGFiaW5kZXgiKSx0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWwubmF0aXZlRWxlbWVudCwib3V0bGluZSIsbnVsbCkpfSkpfXNldCBpc0VuYWJsZWQoaCl7dGhpcy5mb2N1c09uVmlld0luaXQmJiJib29sZWFuIj09dHlwZW9mIGgmJih0aGlzLl9pc0VuYWJsZWQ9aCl9''@;'; + put 'put ''bmdBZnRlclZpZXdJbml0KCl7dGhpcy5mb2N1cygpfW5nT25EZXN0cm95KCl7dGhpcy5kZXN0cm95JC5uZXh0KCl9Zm9jdXMoKXshU2wodGhpcy5wbGF0Zm9ybUlkKXx8IXRoaXMuX2lzRW5hYmxlZHx8dGhpcy5kb2N1bWVudCYmdGhpcy5kb2N1bWVudC5hY3RpdmVFbGVtZW50IT09dGhpcy5l''@;'; + put 'put ''bC5uYXRpdmVFbGVtZW50JiYodGhpcy5lbC5uYXRpdmVFbGVtZW50LmZvY3VzKCksdGhpcy5kb2N1bWVudC5hY3RpdmVFbGVtZW50IT09dGhpcy5lbC5uYXRpdmVFbGVtZW50JiYodGhpcy5kaXJlY3RGb2N1cz0hMSx0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZSh0aGlzLmVsLm5hdGl2ZUVs''@;'; + put 'put ''ZW1lbnQsInRhYmluZGV4IiwiLTEiKSx0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWwubmF0aXZlRWxlbWVudCwib3V0bGluZSIsIm5vbmUiKSx0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKSkpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxk''@;'; + put 'put ''KShLdChibyksS3QoTDIpLEt0KHR5ZSksS3QocHMpLEt0KEdhKSxLdChfbCkpfSxkLlx1MDI3NWRpcj1XaSh7dHlwZTpkLHNlbGVjdG9yczpbWyIiLCJjbHJGb2N1c09uVmlld0luaXQiLCIiXV0saW5wdXRzOntpc0VuYWJsZWQ6WyJjbHJGb2N1c09uVmlld0luaXQiLCJpc0VuYWJsZWQiXX19''@;'; + put 'put ''KSxkfSkoKSxmUz0oKCk9PntjbGFzcyBke31yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVtb2Q9Y28oe3R5cGU6ZH0pLGQuXHUwMjc1aW5qPWIwKHtwcm92aWRlcnM6W3lPZV0saW1wb3J0czpbW2JhXV19KSxkfSkoKSxCZmU9KCgpPT57''@;'; + put 'put ''Y2xhc3MgZHt9cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1bW9kPWNvKHt0eXBlOmR9KSxkLlx1MDI3NWluaj1iMCh7aW1wb3J0czpbW2JhXV19KSxkfSkoKSx3T2U9KCgpPT57Y2xhc3MgZHt9cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0''@;'; + put 'put ''aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1bW9kPWNvKHt0eXBlOmR9KSxkLlx1MDI3NWluaj1iMCh7aW1wb3J0czpbW2JhXV19KSxkfSkoKTtjbGFzcyBocXt9bGV0IGFaPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoKXt0aGlzLl9jaGFuZ2U9bmV3ICRlLHRoaXMubmJDaGFu''@;'; + put 'put ''Z2VzPTB9Z2V0IGNoYW5nZSgpe3JldHVybiB0aGlzLl9jaGFuZ2UuYXNPYnNlcnZhYmxlKCl9Y2hhbmdlU3RhcnQoKXt0aGlzLm5iQ2hhbmdlcysrfWNoYW5nZURvbmUoKXswPT0tLXRoaXMubmJDaGFuZ2VzJiZ0aGlzLl9jaGFuZ2UubmV4dCgpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rp''@;'; + put 'put ''b24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVwcm92PUFpKHt0b2tlbjpkLGZhY3Rvcnk6ZC5cdTAyNzVmYWN9KSxkfSkoKSxodz0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgpe3RoaXMuc3RhdGVEZWJvdW5jZXI9aCx0aGlzLnByZXZlbnRFbWl0PSExLHRoaXMuYWN0aXZhdGVk''@;'; + put 'put ''PSExLHRoaXMuX3NpemU9MCx0aGlzLl9jaGFuZ2U9bmV3ICRlLHRoaXMuX3NpemVDaGFuZ2U9bmV3ICRlLHRoaXMuX2N1cnJlbnQ9MX1nZXQgc2l6ZSgpe3JldHVybiB0aGlzLl9zaXplfXNldCBzaXplKGgpe2NvbnN0IHY9dGhpcy5fc2l6ZTtoIT09diYmKHRoaXMucHJldmVudEVtaXR8fHRo''@;'; + put 'put ''aXMuc3RhdGVEZWJvdW5jZXIuY2hhbmdlU3RhcnQoKSx0aGlzLl9zaXplPWgsdGhpcy5fY3VycmVudD0wPT09aD8xOk1hdGguZmxvb3Iodi9oKih0aGlzLl9jdXJyZW50LTEpKSsxLHRoaXMucHJldmVudEVtaXR8fCh0aGlzLl9jaGFuZ2UubmV4dCh0aGlzLl9jdXJyZW50KSx0aGlzLl9zaXpl''@;'; + put 'put ''Q2hhbmdlLm5leHQodGhpcy5fc2l6ZSksdGhpcy5zdGF0ZURlYm91bmNlci5jaGFuZ2VEb25lKCkpKSx0aGlzLnByZXZlbnRFbWl0PSExfWdldCB0b3RhbEl0ZW1zKCl7cmV0dXJuIHRoaXMuX3RvdGFsSXRlbXN8fDB9c2V0IHRvdGFsSXRlbXMoaCl7dGhpcy5fdG90YWxJdGVtcz1oLHRoaXMu''@;'; + put 'put ''Y3VycmVudD50aGlzLmxhc3QmJih0aGlzLmN1cnJlbnQ9dGhpcy5sYXN0KX1nZXQgbGFzdCgpe3JldHVybiB0aGlzLl9sYXN0P3RoaXMuX2xhc3Q6dGhpcy5zaXplPjAmJnRoaXMudG90YWxJdGVtcz9NYXRoLmNlaWwodGhpcy50b3RhbEl0ZW1zL3RoaXMuc2l6ZSk6MX1zZXQgbGFzdChoKXt0''@;'; + put 'put ''aGlzLl9sYXN0PWh9Z2V0IGNoYW5nZSgpe3JldHVybiB0aGlzLl9jaGFuZ2UuYXNPYnNlcnZhYmxlKCl9Z2V0IHNpemVDaGFuZ2UoKXtyZXR1cm4gdGhpcy5fc2l6ZUNoYW5nZS5hc09ic2VydmFibGUoKX1nZXQgY3VycmVudCgpe3JldHVybiB0aGlzLl9jdXJyZW50fXNldCBjdXJyZW50KGgp''@;'; + put 'put ''e2ghPT10aGlzLl9jdXJyZW50JiYodGhpcy5zdGF0ZURlYm91bmNlci5jaGFuZ2VTdGFydCgpLHRoaXMuX2N1cnJlbnQ9aCx0aGlzLl9jaGFuZ2UubmV4dChoKSx0aGlzLnN0YXRlRGVib3VuY2VyLmNoYW5nZURvbmUoKSl9cHJldmlvdXMoKXt0aGlzLmN1cnJlbnQ+MSYmdGhpcy5jdXJyZW50''@;'; + put 'put ''LS19bmV4dCgpe3RoaXMuY3VycmVudDx0aGlzLmxhc3QmJnRoaXMuY3VycmVudCsrfWdldCBmaXJzdEl0ZW0oKXtyZXR1cm4gMD09PXRoaXMuX3RvdGFsSXRlbXM/LTE6MD09PXRoaXMuc2l6ZT8wOih0aGlzLmN1cnJlbnQtMSkqdGhpcy5zaXplfWdldCBsYXN0SXRlbSgpe2lmKDA9PT10aGlz''@;'; + put 'put ''Ll90b3RhbEl0ZW1zKXJldHVybi0xO2lmKDA9PT10aGlzLnNpemUpcmV0dXJuIHRoaXMudG90YWxJdGVtcy0xO2xldCBoPXRoaXMuY3VycmVudCp0aGlzLnNpemUtMTtyZXR1cm4gdGhpcy50b3RhbEl0ZW1zJiYoaD1NYXRoLm1pbihoLHRoaXMudG90YWxJdGVtcy0xKSksaH1yZXNldFBhZ2VT''@;'; + put 'put ''aXplKGg9ITEpe3RoaXMucHJldmVudEVtaXQ9aCx0aGlzLnNpemU9MH19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoQ2koYVopKX0sZC5cdTAyNzVwcm92PUFpKHt0b2tlbjpkLGZhY3Rvcnk6ZC5cdTAyNzVmYWN9KSxkfSkoKSx2dj0oKCk9PntjbGFz''@;'; + put 'put ''cyBke2NvbnN0cnVjdG9yKGgsdil7dGhpcy5fcGFnZT1oLHRoaXMuc3RhdGVEZWJvdW5jZXI9dix0aGlzLl9jaGFuZ2U9bmV3ICRlLHRoaXMuX2FsbD1bXX1nZXQgY2hhbmdlKCl7cmV0dXJuIHRoaXMuX2NoYW5nZS5hc09ic2VydmFibGUoKX1oYXNBY3RpdmVGaWx0ZXJzKCl7Zm9yKGNvbnN0''@;'; + put 'put ''e2ZpbHRlcjpofW9mIHRoaXMuX2FsbClpZihoJiZoLmlzQWN0aXZlKCkpcmV0dXJuITA7cmV0dXJuITF9Z2V0QWN0aXZlRmlsdGVycygpe2NvbnN0IGg9W107Zm9yKGNvbnN0e2ZpbHRlcjp2fW9mIHRoaXMuX2FsbCl2JiZ2LmlzQWN0aXZlKCkmJmgucHVzaCh2KTtyZXR1cm4gaH1hZGQoaCl7''@;'; + put 'put ''Y29uc3Qgdj1oLmNoYW5nZXMuc3Vic2NyaWJlKCgpPT50aGlzLnJlc2V0UGFnZUFuZEVtaXRGaWx0ZXJDaGFuZ2UoW2hdKSk7bGV0IHk9ITE7Y29uc3QgQz1uZXcgZHEoaCwoKT0+e2lmKHkpcmV0dXJuO3YudW5zdWJzY3JpYmUoKTtjb25zdCBJPXRoaXMuX2FsbC5maW5kSW5kZXgoaj0+ai5m''@;'; + put 'put ''aWx0ZXI9PT1oKTtJPj0wJiZ0aGlzLl9hbGwuc3BsaWNlKEksMSksaC5pc0FjdGl2ZSgpJiZ0aGlzLnJlc2V0UGFnZUFuZEVtaXRGaWx0ZXJDaGFuZ2UoW10pLHk9ITB9KTtyZXR1cm4gdGhpcy5fYWxsLnB1c2goQyksaC5pc0FjdGl2ZSgpJiZ0aGlzLnJlc2V0UGFnZUFuZEVtaXRGaWx0ZXJD''@;'; + put 'put ''aGFuZ2UoW2hdKSxDfWFjY2VwdHMoaCl7Zm9yKGNvbnN0e2ZpbHRlcjp2fW9mIHRoaXMuX2FsbClpZih2JiZ2LmlzQWN0aXZlKCkmJiF2LmFjY2VwdHMoaCkpcmV0dXJuITE7cmV0dXJuITB9cmVzZXRQYWdlQW5kRW1pdEZpbHRlckNoYW5nZShoKXt0aGlzLnN0YXRlRGVib3VuY2VyLmNoYW5n''@;'; + put 'put ''ZVN0YXJ0KCksdGhpcy5fcGFnZS5jdXJyZW50PTEsdGhpcy5fY2hhbmdlLm5leHQoaCksdGhpcy5zdGF0ZURlYm91bmNlci5jaGFuZ2VEb25lKCl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKENpKGh3KSxDaShhWikpfSxkLlx1MDI3NXByb3Y9QWko''@;'; + put 'put ''e3Rva2VuOmQsZmFjdG9yeTpkLlx1MDI3NWZhY30pLGR9KSgpO2NsYXNzIGRxe2NvbnN0cnVjdG9yKGcsaCl7dGhpcy5maWx0ZXI9Zyx0aGlzLnVucmVnaXN0ZXI9aH19bGV0IHBxPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCl7dGhpcy5maWx0ZXJzPWh9Z2V0IGZpbHRlcigpe3JldHVy''@;'; + put 'put ''biB0aGlzLnJlZ2lzdGVyZWQmJnRoaXMucmVnaXN0ZXJlZC5maWx0ZXJ9c2V0RmlsdGVyKGgpe3RoaXMuZGVsZXRlRmlsdGVyKCksaCBpbnN0YW5jZW9mIGRxP3RoaXMucmVnaXN0ZXJlZD1oOmgmJih0aGlzLnJlZ2lzdGVyZWQ9dGhpcy5maWx0ZXJzLmFkZChoKSl9ZGVsZXRlRmlsdGVyKCl7''@;'; + put 'put ''dGhpcy5yZWdpc3RlcmVkJiYodGhpcy5yZWdpc3RlcmVkLnVucmVnaXN0ZXIoKSxkZWxldGUgdGhpcy5yZWdpc3RlcmVkKX1uZ09uRGVzdHJveSgpe3RoaXMuZGVsZXRlRmlsdGVyKCl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKEt0KHZ2KSl9LGQu''@;'; + put 'put ''XHUwMjc1ZGlyPVdpKHt0eXBlOmR9KSxkfSkoKSxsWj0oKCk9PntjbGFzcyBkIGV4dGVuZHMgcHF7Y29uc3RydWN0b3IoaCx2LHksQyxJKXtzdXBlcihoKSx0aGlzLmNvbW1vblN0cmluZ3M9dix0aGlzLnNtYXJ0VG9nZ2xlU2VydmljZT15LHRoaXMucGxhdGZvcm1JZD1DLHRoaXMucG9wb3Zl''@;'; + put 'put ''cklkPUksdGhpcy5zdWJzPVtdLHRoaXMuYXJpYUV4cGFuZGVkPSExLHRoaXMuc21hcnRQb3NpdGlvbj17YXhpczokMS5WRVJUSUNBTCxzaWRlOmwuQUZURVIsYW5jaG9yOl9vLkVORCxjb250ZW50Ol9vLkVORH0sdGhpcy5fb3Blbj0hMSx0aGlzLm9wZW5DaGFuZ2U9bmV3IGFyKCExKSx0aGlz''@;'; + put 'put ''LnN1YnMucHVzaCh5Lm9wZW5DaGFuZ2Uuc3Vic2NyaWJlKGo9Pnt0aGlzLm9wZW49aix0aGlzLmFyaWFFeHBhbmRlZD1qfSkpfWdldCBvcGVuKCl7cmV0dXJuIHRoaXMuX29wZW59c2V0IG9wZW4oaCl7dGhpcy5vcGVuIT09KGg9ISFoKSYmKHRoaXMuc21hcnRUb2dnbGVTZXJ2aWNlLm9wZW49''@;'; + put 'put ''aCx0aGlzLm9wZW5DaGFuZ2UuZW1pdChoKSwhaCYmU2wodGhpcy5wbGF0Zm9ybUlkKSYmdGhpcy5hbmNob3IubmF0aXZlRWxlbWVudC5mb2N1cygpLHRoaXMuX29wZW49aCl9c2V0IGN1c3RvbUZpbHRlcihoKXt0aGlzLnNldEZpbHRlcihoKX1nZXQgYWN0aXZlKCl7cmV0dXJuISF0aGlzLmZp''@;'; + put 'put ''bHRlciYmdGhpcy5maWx0ZXIuaXNBY3RpdmUoKX1uZ09uRGVzdHJveSgpe3N1cGVyLm5nT25EZXN0cm95KCksdGhpcy5zdWJzLmZvckVhY2goaD0+aC51bnN1YnNjcmliZSgpKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoS3QodnYpLEt0KG5zKSxL''@;'; + put 'put ''dCh6cyksS3QoTDIpLEt0KHkyKSl9LGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQsc2VsZWN0b3JzOltbImNsci1kZy1maWx0ZXIiXV0sdmlld1F1ZXJ5OmZ1bmN0aW9uKGgsdil7aWYoMSZoJiZ2byhzY2UsNSxibyksMiZoKXtsZXQgeTtIaSh5PSRpKCkpJiYodi5hbmNob3I9eS5maXJzdCl9fSxp''@;'; + put 'put ''bnB1dHM6e29wZW46WyJjbHJEZ0ZpbHRlck9wZW4iLCJvcGVuIl0sY3VzdG9tRmlsdGVyOlsiY2xyRGdGaWx0ZXIiLCJjdXN0b21GaWx0ZXIiXX0sb3V0cHV0czp7b3BlbkNoYW5nZToiY2xyRGdGaWx0ZXJPcGVuQ2hhbmdlIn0sZmVhdHVyZXM6W2hvKFt7cHJvdmlkZTpocSx1c2VFeGlzdGlu''@;'; + put 'put ''ZzpkfSxPY10pLERvXSxuZ0NvbnRlbnRTZWxlY3RvcnM6bmEsZGVjbHM6NCx2YXJzOjEzLGNvbnN0czpbWyJ0eXBlIiwiYnV0dG9uIiwiY2xyUG9wb3ZlckFuY2hvciIsIiIsImNsclBvcG92ZXJPcGVuQ2xvc2VCdXR0b24iLCIiLDEsImRhdGFncmlkLWZpbHRlci10b2dnbGUiXSxbImFuY2hv''@;'; + put 'put ''ciIsIiJdLFsic29saWQiLCIiXSxbImNsYXNzIiwiZGF0YWdyaWQtZmlsdGVyIiwiY2xyRm9jdXNUcmFwIiwiIiwicm9sZSIsImRpYWxvZyIsMywiaWQiLDQsImNsclBvcG92ZXJDb250ZW50IiwiY2xyUG9wb3ZlckNvbnRlbnRBdCIsImNsclBvcG92ZXJDb250ZW50T3V0c2lkZUNsaWNrVG9D''@;'; + put 'put ''bG9zZSIsImNsclBvcG92ZXJDb250ZW50U2Nyb2xsVG9DbG9zZSJdLFsiY2xyRm9jdXNUcmFwIiwiIiwicm9sZSIsImRpYWxvZyIsMSwiZGF0YWdyaWQtZmlsdGVyIiwzLCJpZCJdLFsxLCJkYXRhZ3JpZC1maWx0ZXItY2xvc2Utd3JhcHBlciJdLFsidHlwZSIsImJ1dHRvbiIsImNsclBvcG92''@;'; + put 'put ''ZXJDbG9zZUJ1dHRvbiIsIiIsMSwiY2xvc2UiXSxbInNoYXBlIiwid2luZG93LWNsb3NlIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGgsdil7MSZoJiYoSzAoKSxydCgwLCJidXR0b24iLDAsMSksQ3IoMiwiY2RzLWljb24iLDIpLGx0KCkscm4oMyxBZyw1LDMsImRpdiIsMykpLDImaCYmKEZpKCJk''@;'; + put 'put ''YXRhZ3JpZC1maWx0ZXItb3BlbiIsdi5vcGVuKSgiZGF0YWdyaWQtZmlsdGVyZWQiLHYuYWN0aXZlKSxHaSgiYXJpYS1sYWJlbCIsdi5jb21tb25TdHJpbmdzLmtleXMuZGF0YWdyaWRGaWx0ZXJBcmlhTGFiZWwpKCJhcmlhLWV4cGFuZGVkIix2LmFyaWFFeHBhbmRlZCkoImFyaWEtY29udHJv''@;'; + put 'put ''bHMiLHYucG9wb3ZlcklkKSx1dCgyKSxHaSgic3RhdHVzIix2LmFjdGl2ZT8iaW5mbyI6bnVsbCkoInNoYXBlIix2LmFjdGl2ZT8iZmlsdGVyLWdyaWQtY2lyY2xlIjoiZmlsdGVyLWdyaWQiKSx1dCgxKSxUdCgiY2xyUG9wb3ZlckNvbnRlbnQiLHYub3BlbikoImNsclBvcG92ZXJDb250ZW50''@;'; + put 'put ''QXQiLHYuc21hcnRQb3NpdGlvbikoImNsclBvcG92ZXJDb250ZW50T3V0c2lkZUNsaWNrVG9DbG9zZSIsITApKCJjbHJQb3BvdmVyQ29udGVudFNjcm9sbFRvQ2xvc2UiLCEwKSl9LGRlcGVuZGVuY2llczpbc3csdXcsWm8sZGwsZncscnFdLGVuY2Fwc3VsYXRpb246Mn0pLGR9KSgpO2NsYXNz''@;'; + put 'put ''IFBmZXtjb25zdHJ1Y3RvcihnKXt0aGlzLnByb3A9ZyxnLmluZGV4T2YoIi4iKT49MCYmKHRoaXMuc3BsaXRQcm9wPWcuc3BsaXQoIi4iKSl9Z2V0UHJvcFZhbHVlKGcpe2lmKHRoaXMuc3BsaXRQcm9wKXtsZXQgaD1nO2Zvcihjb25zdCB2IG9mIHRoaXMuc3BsaXRQcm9wKXtpZihudWxsPT1o''@;'; + put 'put ''fHx2b2lkIDA9PT1oW3ZdKXJldHVybjtoPWhbdl19cmV0dXJuIGh9cmV0dXJuIGdbdGhpcy5wcm9wXX19Y2xhc3MgZ3F7Y29uc3RydWN0b3IoZyxoPSExKXt0aGlzLnByb3A9Zyx0aGlzLmV4YWN0PWgsdGhpcy5uZXN0ZWRQcm9wPW5ldyBQZmUoZyl9YWNjZXB0cyhnLGgsdil7Y29uc3QgeT10''@;'; + put 'put ''aGlzLm5lc3RlZFByb3AuZ2V0UHJvcFZhbHVlKGcpO3JldHVybiEobnVsbCE9PWgmJnk8aHx8bnVsbCE9PXYmJnk+dil9fWNsYXNzIGhTe2NvbnN0cnVjdG9yKGcpe3RoaXMuZmlsdGVyRm49Zyx0aGlzLl9jaGFuZ2VzPW5ldyAkZSx0aGlzLl9sb3c9bnVsbCx0aGlzLl9oaWdoPW51bGx9Z2V0''@;'; + put 'put ''IGNoYW5nZXMoKXtyZXR1cm4gdGhpcy5fY2hhbmdlcy5hc09ic2VydmFibGUoKX1nZXQgdmFsdWUoKXtyZXR1cm5bdGhpcy5fbG93LHRoaXMuX2hpZ2hdfXNldCB2YWx1ZShnKXtjb25zdCBoPWdbMF0sdj1nWzFdOyhoIT09dGhpcy5fbG93fHx2IT09dGhpcy5faGlnaCkmJih0aGlzLl9sb3c9''@;'; + put 'put ''aCx0aGlzLl9oaWdoPXYsdGhpcy5fY2hhbmdlcy5uZXh0KFt0aGlzLl9sb3csdGhpcy5faGlnaF0pKX1nZXQgbG93KCl7cmV0dXJuIHRoaXMuX2xvd31zZXQgbG93KGcpe2chPT10aGlzLl9sb3cmJih0aGlzLl9sb3c9Zyx0aGlzLl9jaGFuZ2VzLm5leHQoW3RoaXMuX2xvdyx0aGlzLl9oaWdo''@;'; + put 'put ''XSkpfWdldCBoaWdoKCl7cmV0dXJuIHRoaXMuX2hpZ2h9c2V0IGhpZ2goZyl7ZyE9PXRoaXMuX2hpZ2gmJih0aGlzLl9oaWdoPWcsdGhpcy5fY2hhbmdlcy5uZXh0KFt0aGlzLl9sb3csdGhpcy5faGlnaF0pKX1pc0FjdGl2ZSgpe3JldHVybiBudWxsIT09dGhpcy5fbG93fHxudWxsIT09dGhp''@;'; + put 'put ''cy5oaWdofWFjY2VwdHMoZyl7cmV0dXJuIHRoaXMuZmlsdGVyRm4uYWNjZXB0cyhnLHRoaXMuX2xvdyx0aGlzLl9oaWdoKX1nZXQgc3RhdGUoKXtyZXR1cm4gdGhpcy5maWx0ZXJGbiBpbnN0YW5jZW9mIGdxP3twcm9wZXJ0eTp0aGlzLmZpbHRlckZuLnByb3AsbG93OnRoaXMuX2xvdyxoaWdo''@;'; + put 'put ''OnRoaXMuX2hpZ2h9OnRoaXN9ZXF1YWxzKGcpe3JldHVybiBnIGluc3RhbmNlb2YgaFMmJihnLmZpbHRlckZuIGluc3RhbmNlb2YgZ3E/dGhpcy5maWx0ZXJGbiBpbnN0YW5jZW9mIGdxJiZnLmZpbHRlckZuLnByb3A9PT10aGlzLmZpbHRlckZuLnByb3AmJmcubG93PT09dGhpcy5fbG93JiZn''@;'; + put 'put ''LmhpZ2g9PT10aGlzLl9oaWdoOmc9PT10aGlzKX19bGV0IG55ZT0oKCk9PntjbGFzcyBkIGV4dGVuZHMgcHF7Y29uc3RydWN0b3IoaCx2LHksQyxJKXtzdXBlcihoKSx0aGlzLmRvbUFkYXB0ZXI9dix0aGlzLmNvbW1vblN0cmluZ3M9eSx0aGlzLnBvcG92ZXJUb2dnbGVTZXJ2aWNlPUMsdGhp''@;'; + put 'put ''cy5uZ1pvbmU9SSx0aGlzLnN1YnNjcmlwdGlvbnM9W10sdGhpcy5vcGVuPSExLHRoaXMuZmlsdGVyVmFsdWVDaGFuZ2U9bmV3IGFyfW5nT25EZXN0cm95KCl7c3VwZXIubmdPbkRlc3Ryb3koKSx0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChoPT57aC51bnN1YnNjcmliZSgpfSl9Z2V0IG1h''@;'; + put 'put ''eFBsYWNlaG9sZGVyVmFsdWUoKXtyZXR1cm4gdGhpcy5tYXhQbGFjZWhvbGRlcnx8dGhpcy5jb21tb25TdHJpbmdzLmtleXMubWF4VmFsdWV9Z2V0IG1pblBsYWNlaG9sZGVyVmFsdWUoKXtyZXR1cm4gdGhpcy5taW5QbGFjZWhvbGRlcnx8dGhpcy5jb21tb25TdHJpbmdzLmtleXMubWluVmFs''@;'; + put 'put ''dWV9c2V0IGN1c3RvbU51bWVyaWNGaWx0ZXIoaCl7dGhpcy5zZXRGaWx0ZXIoaCBpbnN0YW5jZW9mIGRxP2g6bmV3IGhTKGgpKSx0aGlzLmluaXRGaWx0ZXJWYWx1ZXMmJih0aGlzLnZhbHVlPXRoaXMuaW5pdEZpbHRlclZhbHVlcyxkZWxldGUgdGhpcy5pbml0RmlsdGVyVmFsdWVzKX1uZ0Fm''@;'; + put 'put ''dGVyVmlld0luaXQoKXt0aGlzLnN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLnBvcG92ZXJUb2dnbGVTZXJ2aWNlLm9wZW5DaGFuZ2Uuc3Vic2NyaWJlKGg9Pnt0aGlzLm9wZW49aCx0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKT0+e3JlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e3Ro''@;'; + put 'put ''aXMuZG9tQWRhcHRlci5mb2N1cyh0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQpfSl9KX0pKX1nZXQgdmFsdWUoKXtyZXR1cm5bdGhpcy5maWx0ZXIubG93LHRoaXMuZmlsdGVyLmhpZ2hdfXNldCB2YWx1ZShoKXt0aGlzLmZpbHRlciYmQXJyYXkuaXNBcnJheShoKT9oJiYoaFswXSE9PXRoaXMu''@;'; + put 'put ''ZmlsdGVyLmxvd3x8aFsxXSE9PXRoaXMuZmlsdGVyLmhpZ2gpJiYodGhpcy5maWx0ZXIubG93PSJudW1iZXIiPT10eXBlb2YgaFswXT9oWzBdOm51bGwsdGhpcy5maWx0ZXIuaGlnaD0ibnVtYmVyIj09dHlwZW9mIGhbMV0/aFsxXTpudWxsLHRoaXMuZmlsdGVyVmFsdWVDaGFuZ2UuZW1pdCho''@;'; + put 'put ''KSk6dGhpcy5pbml0RmlsdGVyVmFsdWVzPWh9Z2V0IGxvdygpe3JldHVybiJudW1iZXIiPT10eXBlb2YgdGhpcy5maWx0ZXIubG93JiZpc0Zpbml0ZSh0aGlzLmZpbHRlci5sb3cpP3RoaXMuZmlsdGVyLmxvdzpudWxsfXNldCBsb3coaCl7Im51bWJlciI9PXR5cGVvZiBoJiZoIT09dGhpcy5m''@;'; + put 'put ''aWx0ZXIubG93Pyh0aGlzLmZpbHRlci5sb3c9aCx0aGlzLmZpbHRlclZhbHVlQ2hhbmdlLmVtaXQoW3RoaXMuZmlsdGVyLmxvdyx0aGlzLmZpbHRlci5oaWdoXSkpOiJudW1iZXIiIT10eXBlb2YgaCYmKHRoaXMuZmlsdGVyLmxvdz1udWxsLHRoaXMuZmlsdGVyVmFsdWVDaGFuZ2UuZW1pdChb''@;'; + put 'put ''dGhpcy5maWx0ZXIubG93LHRoaXMuZmlsdGVyLmhpZ2hdKSl9Z2V0IGhpZ2goKXtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIHRoaXMuZmlsdGVyLmhpZ2gmJmlzRmluaXRlKHRoaXMuZmlsdGVyLmhpZ2gpP3RoaXMuZmlsdGVyLmhpZ2g6bnVsbH1zZXQgaGlnaChoKXsibnVtYmVyIj09dHlwZW9m''@;'; + put 'put ''IGgmJmghPT10aGlzLmZpbHRlci5oaWdoPyh0aGlzLmZpbHRlci5oaWdoPWgsdGhpcy5maWx0ZXJWYWx1ZUNoYW5nZS5lbWl0KFt0aGlzLmZpbHRlci5sb3csdGhpcy5maWx0ZXIuaGlnaF0pKToibnVtYmVyIiE9dHlwZW9mIGgmJih0aGlzLmZpbHRlci5oaWdoPW51bGwsdGhpcy5maWx0ZXJW''@;'; + put 'put ''YWx1ZUNoYW5nZS5lbWl0KFt0aGlzLmZpbHRlci5sb3csdGhpcy5maWx0ZXIuaGlnaF0pKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoS3QodnYpLEt0KGY0KSxLdChucyksS3QoenMpLEt0KF9sKSl9LGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQsc2Vs''@;'; + put 'put ''ZWN0b3JzOltbImNsci1kZy1udW1lcmljLWZpbHRlciJdXSx2aWV3UXVlcnk6ZnVuY3Rpb24oaCx2KXtpZigxJmgmJih2byh1Y2UsNSksdm8obFosNSkpLDImaCl7bGV0IHk7SGkoeT0kaSgpKSYmKHYuaW5wdXQ9eS5maXJzdCksSGkoeT0kaSgpKSYmKHYuZmlsdGVyQ29udGFpbmVyPXkuZmly''@;'; + put 'put ''c3QpfX0saW5wdXRzOnttYXhQbGFjZWhvbGRlcjpbImNsckZpbHRlck1heFBsYWNlaG9sZGVyIiwibWF4UGxhY2Vob2xkZXIiXSxtaW5QbGFjZWhvbGRlcjpbImNsckZpbHRlck1pblBsYWNlaG9sZGVyIiwibWluUGxhY2Vob2xkZXIiXSxjdXN0b21OdW1lcmljRmlsdGVyOlsiY2xyRGdOdW1l''@;'; + put 'put ''cmljRmlsdGVyIiwiY3VzdG9tTnVtZXJpY0ZpbHRlciJdLHZhbHVlOlsiY2xyRmlsdGVyVmFsdWUiLCJ2YWx1ZSJdfSxvdXRwdXRzOntmaWx0ZXJWYWx1ZUNoYW5nZToiY2xyRmlsdGVyVmFsdWVDaGFuZ2UifSxmZWF0dXJlczpbaG8oW3twcm92aWRlOmhxLHVzZUV4aXN0aW5nOmR9XSksRG9d''@;'; + put 'put ''LGRlY2xzOjYsdmFyczo4LGNvbnN0czpbWzMsImNsckRnRmlsdGVyIiwiY2xyRGdGaWx0ZXJPcGVuIiwiY2xyRGdGaWx0ZXJPcGVuQ2hhbmdlIl0sWyJ0eXBlIiwibnVtYmVyIiwibmFtZSIsImxvdyIsMSwiZGF0YWdyaWQtbnVtZXJpYy1maWx0ZXItaW5wdXQiLDMsIm5nTW9kZWwiLCJwbGFj''@;'; + put 'put ''ZWhvbGRlciIsIm5nTW9kZWxDaGFuZ2UiXSxbImlucHV0X2xvdyIsIiJdLFsxLCJkYXRhZ3JpZC1maWx0ZXItaW5wdXQtc3BhY2VyIl0sWyJ0eXBlIiwibnVtYmVyIiwibmFtZSIsImhpZ2giLDEsImRhdGFncmlkLW51bWVyaWMtZmlsdGVyLWlucHV0IiwzLCJuZ01vZGVsIiwicGxhY2Vob2xk''@;'; + put 'put ''ZXIiLCJuZ01vZGVsQ2hhbmdlIl0sWyJpbnB1dF9oaWdoIiwiIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGgsdil7MSZoJiYocnQoMCwiY2xyLWRnLWZpbHRlciIsMCksR24oImNsckRnRmlsdGVyT3BlbkNoYW5nZSIsZnVuY3Rpb24oQyl7cmV0dXJuIHYub3Blbj1DfSkscnQoMSwiaW5wdXQiLDEs''@;'; + put 'put ''MiksR24oIm5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9uKEMpe3JldHVybiB2Lmxvdz1DfSksbHQoKSxDcigzLCJzcGFuIiwzKSxydCg0LCJpbnB1dCIsNCw1KSxHbigibmdNb2RlbENoYW5nZSIsZnVuY3Rpb24oQyl7cmV0dXJuIHYuaGlnaD1DfSksbHQoKSgpKSwyJmgmJihUdCgiY2xyRGdGaWx0''@;'; + put 'put ''ZXIiLHYucmVnaXN0ZXJlZCkoImNsckRnRmlsdGVyT3BlbiIsdi5vcGVuKSx1dCgxKSxUdCgibmdNb2RlbCIsdi5sb3cpKCJwbGFjZWhvbGRlciIsdi5taW5QbGFjZWhvbGRlclZhbHVlKSxHaSgiYXJpYS1sYWJlbCIsdi5taW5QbGFjZWhvbGRlclZhbHVlKSx1dCgzKSxUdCgibmdNb2RlbCIs''@;'; + put 'put ''di5oaWdoKSgicGxhY2Vob2xkZXIiLHYubWF4UGxhY2Vob2xkZXJWYWx1ZSksR2koImFyaWEtbGFiZWwiLHYubWF4UGxhY2Vob2xkZXJWYWx1ZSkpfSxkZXBlbmRlbmNpZXM6W2xaLFZWLG0xLHhzLFRzXSxlbmNhcHN1bGF0aW9uOjJ9KSxkfSkoKTtjbGFzcyBtcXtjb25zdHJ1Y3RvcihnLGg9''@;'; + put 'put ''ITEpe3RoaXMucHJvcD1nLHRoaXMuZXhhY3Q9aCx0aGlzLm5lc3RlZFByb3A9bmV3IFBmZShnKX1hY2NlcHRzKGcsaCl7Y29uc3Qgdj10aGlzLm5lc3RlZFByb3AuZ2V0UHJvcFZhbHVlKGcpO3JldHVybiB2b2lkIDAhPT12JiYodGhpcy5leGFjdD8oIiIrdikudG9Mb3dlckNhc2UoKT09PWg6''@;'; + put 'put ''KCIiK3YpLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihoKT49MCl9fWNsYXNzIGRTe2NvbnN0cnVjdG9yKGcpe3RoaXMuZmlsdGVyRm49Zyx0aGlzLl9jaGFuZ2VzPW5ldyAkZSx0aGlzLl9sb3dlckNhc2VWYWx1ZT0iIix0aGlzLl9yYXdWYWx1ZT0iIn1nZXQgY2hhbmdlcygpe3JldHVybiB0aGlz''@;'; + put 'put ''Ll9jaGFuZ2VzLmFzT2JzZXJ2YWJsZSgpfWdldCBsb3dlckNhc2VWYWx1ZSgpe3JldHVybiB0aGlzLl9sb3dlckNhc2VWYWx1ZX1nZXQgdmFsdWUoKXtyZXR1cm4gdGhpcy5fcmF3VmFsdWV9c2V0IHZhbHVlKGcpe2d8fChnPSIiKSxnIT09dGhpcy5fcmF3VmFsdWUmJih0aGlzLl9yYXdWYWx1''@;'; + put 'put ''ZT1nLHRoaXMuX2xvd2VyQ2FzZVZhbHVlPWcudG9Mb3dlckNhc2UoKS50cmltKCksdGhpcy5fY2hhbmdlcy5uZXh0KGcpKX1pc0FjdGl2ZSgpe3JldHVybiEhdGhpcy52YWx1ZX1hY2NlcHRzKGcpe3JldHVybiB0aGlzLmZpbHRlckZuLmFjY2VwdHMoZyx0aGlzLmxvd2VyQ2FzZVZhbHVlKX1n''@;'; + put 'put ''ZXQgc3RhdGUoKXtyZXR1cm4gdGhpcy5maWx0ZXJGbiBpbnN0YW5jZW9mIG1xP3twcm9wZXJ0eTp0aGlzLmZpbHRlckZuLnByb3AsdmFsdWU6dGhpcy52YWx1ZX06dGhpc31lcXVhbHMoZyl7cmV0dXJuIGcgaW5zdGFuY2VvZiBkUyYmKGcuZmlsdGVyRm4gaW5zdGFuY2VvZiBtcT90aGlzLmZp''@;'; + put 'put ''bHRlckZuIGluc3RhbmNlb2YgbXEmJmcuZmlsdGVyRm4ucHJvcD09PXRoaXMuZmlsdGVyRm4ucHJvcCYmZy52YWx1ZT09PXRoaXMudmFsdWU6Zz09PXRoaXMpfX1sZXQgRmZlPSgoKT0+e2NsYXNzIGQgZXh0ZW5kcyBwcXtjb25zdHJ1Y3RvcihoLHYseSxDLEkpe3N1cGVyKGgpLHRoaXMuZG9t''@;'; + put 'put ''QWRhcHRlcj12LHRoaXMuY29tbW9uU3RyaW5ncz15LHRoaXMuc21hcnRUb2dnbGVTZXJ2aWNlPUMsdGhpcy5uZ1pvbmU9SSx0aGlzLnN1YnM9W10sdGhpcy5vcGVuPSExLHRoaXMuZmlsdGVyVmFsdWVDaGFuZ2U9bmV3IGFyfWdldCBwbGFjZWhvbGRlclZhbHVlKCl7cmV0dXJuIHRoaXMucGxh''@;'; + put 'put ''Y2Vob2xkZXJ8fHRoaXMuY29tbW9uU3RyaW5ncy5rZXlzLmZpbHRlckl0ZW1zfXNldCBjdXN0b21TdHJpbmdGaWx0ZXIoaCl7dGhpcy5zZXRGaWx0ZXIoaCBpbnN0YW5jZW9mIGRxP2g6bmV3IGRTKGgpKSx0aGlzLmluaXRGaWx0ZXJWYWx1ZSYmKHRoaXMudmFsdWU9dGhpcy5pbml0RmlsdGVy''@;'; + put 'put ''VmFsdWUsZGVsZXRlIHRoaXMuaW5pdEZpbHRlclZhbHVlKX1uZ0FmdGVyVmlld0luaXQoKXt0aGlzLnN1YnMucHVzaCh0aGlzLnNtYXJ0VG9nZ2xlU2VydmljZS5vcGVuQ2hhbmdlLnN1YnNjcmliZShoPT57dGhpcy5vcGVuPWgsdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCk9Pnty''@;'; + put 'put ''ZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9Pnt0aGlzLmRvbUFkYXB0ZXIuZm9jdXModGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50KX0pfSl9KSl9bmdPbkRlc3Ryb3koKXtzdXBlci5uZ09uRGVzdHJveSgpLHRoaXMuc3Vicy5mb3JFYWNoKGg9PmgudW5zdWJzY3JpYmUoKSl9Z2V0IHZhbHVlKCl7''@;'; + put 'put ''cmV0dXJuIHRoaXMuZmlsdGVyLnZhbHVlfXNldCB2YWx1ZShoKXt0aGlzLmZpbHRlciYmInN0cmluZyI9PXR5cGVvZiBoPyhofHwoaD0iIiksaCE9PXRoaXMuZmlsdGVyLnZhbHVlJiYodGhpcy5maWx0ZXIudmFsdWU9aCx0aGlzLmZpbHRlclZhbHVlQ2hhbmdlLmVtaXQoaCkpKTp0aGlzLmlu''@;'; + put 'put ''aXRGaWx0ZXJWYWx1ZT1ofX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShLdCh2diksS3QoZjQpLEt0KG5zKSxLdCh6cyksS3QoX2wpKX0sZC5cdTAyNzVjbXA9VGkoe3R5cGU6ZCxzZWxlY3RvcnM6W1siY2xyLWRnLXN0cmluZy1maWx0ZXIiXV0sdmll''@;'; + put 'put ''d1F1ZXJ5OmZ1bmN0aW9uKGgsdil7aWYoMSZoJiYodm8obUwsNSksdm8obFosNSkpLDImaCl7bGV0IHk7SGkoeT0kaSgpKSYmKHYuaW5wdXQ9eS5maXJzdCksSGkoeT0kaSgpKSYmKHYuZmlsdGVyQ29udGFpbmVyPXkuZmlyc3QpfX0saW5wdXRzOntwbGFjZWhvbGRlcjpbImNsckZpbHRlclBs''@;'; + put 'put ''YWNlaG9sZGVyIiwicGxhY2Vob2xkZXIiXSxjdXN0b21TdHJpbmdGaWx0ZXI6WyJjbHJEZ1N0cmluZ0ZpbHRlciIsImN1c3RvbVN0cmluZ0ZpbHRlciJdLHZhbHVlOlsiY2xyRmlsdGVyVmFsdWUiLCJ2YWx1ZSJdfSxvdXRwdXRzOntmaWx0ZXJWYWx1ZUNoYW5nZToiY2xyRmlsdGVyVmFsdWVD''@;'; + put 'put ''aGFuZ2UifSxmZWF0dXJlczpbaG8oW3twcm92aWRlOmhxLHVzZUV4aXN0aW5nOmR9XSksRG9dLGRlY2xzOjMsdmFyczo1LGNvbnN0czpbWzMsImNsckRnRmlsdGVyIiwiY2xyRGdGaWx0ZXJPcGVuIiwiY2xyRGdGaWx0ZXJPcGVuQ2hhbmdlIl0sWyJ0eXBlIiwidGV4dCIsIm5hbWUiLCJzZWFy''@;'; + put 'put ''Y2giLDEsImNsci1pbnB1dCIsMywibmdNb2RlbCIsInBsYWNlaG9sZGVyIiwibmdNb2RlbENoYW5nZSJdLFsiaW5wdXQiLCIiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oaCx2KXsxJmgmJihydCgwLCJjbHItZGctZmlsdGVyIiwwKSxHbigiY2xyRGdGaWx0ZXJPcGVuQ2hhbmdlIixmdW5jdGlvbihD''@;'; + put 'put ''KXtyZXR1cm4gdi5vcGVuPUN9KSxydCgxLCJpbnB1dCIsMSwyKSxHbigibmdNb2RlbENoYW5nZSIsZnVuY3Rpb24oQyl7cmV0dXJuIHYudmFsdWU9Q30pLGx0KCkoKSksMiZoJiYoVHQoImNsckRnRmlsdGVyIix2LnJlZ2lzdGVyZWQpKCJjbHJEZ0ZpbHRlck9wZW4iLHYub3BlbiksdXQoMSks''@;'; + put 'put ''VHQoIm5nTW9kZWwiLHYudmFsdWUpKCJwbGFjZWhvbGRlciIsdi5wbGFjZWhvbGRlclZhbHVlKSxHaSgiYXJpYS1sYWJlbCIsdi5wbGFjZWhvbGRlclZhbHVlKSl9LGRlcGVuZGVuY2llczpbbFosbTEseHMsVHNdLGVuY2Fwc3VsYXRpb246Mn0pLGR9KSgpLGR3PSgoKT0+e2NsYXNzIGQgZXh0''@;'; + put 'put ''ZW5kcyBvd3t9cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKCl7bGV0IGc7cmV0dXJuIGZ1bmN0aW9uKHYpe3JldHVybihnfHwoZz1mbChkKSkpKHZ8fGQpfX0oKSxkLlx1MDI3NWRpcj1XaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJjbHItZGF0YWdyaWQiXV0sZmVhdHVyZXM6W0RvXX0pLGR9''@;'; + put 'put ''KSgpLEZMPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoKXt0aGlzLmFjdGlvbmFibGVDb3VudD0wfXJlZ2lzdGVyKCl7dGhpcy5hY3Rpb25hYmxlQ291bnQrK311bnJlZ2lzdGVyKCl7dGhpcy5hY3Rpb25hYmxlQ291bnQtLX1nZXQgaGFzQWN0aW9uYWJsZVJvdygpe3JldHVybiB0aGlzLmFj''@;'; + put 'put ''dGlvbmFibGVDb3VudD4wfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVwcm92PUFpKHt0b2tlbjpkLGZhY3Rvcnk6ZC5cdTAyNzVmYWN9KSxkfSkoKSxITD0oKCk9PntjbGFzcyBkIGV4dGVuZHMgYXd7Y29uc3RydWN0b3IoaCx2LHkp''@;'; + put 'put ''e2lmKCF2KXRocm93IG5ldyBFcnJvcigiY2xyLWRnLXJvdyBzaG91bGQgb25seSBiZSB1c2VkIGluc2lkZSBvZiBhIGNsci1kYXRhZ3JpZCIpO3N1cGVyKGgsdiksdGhpcy5yb3dBY3Rpb25zPXl9Z2V0IGZsYXZvcigpe3JldHVybiB0aGlzLnJvd0FjdGlvbnMuaGFzQWN0aW9uYWJsZVJvd319''@;'; + put 'put ''cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoS3QoZDEpLEt0KGR3LDgpLEt0KEZMKSl9LGQuXHUwMjc1ZGlyPVdpKHt0eXBlOmQsc2VsZWN0b3JzOltbImNsci1kYXRhZ3JpZCJdLFsiY2xyLWRnLXJvdyJdXSxmZWF0dXJlczpbRG9dfSksZH0pKCksQTg9''@;'; + put 'put ''KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3Rvcigpe3RoaXMudG9nZ2xlU3RhdGU9ITEsdGhpcy5fc3RhdGU9bmV3IGNzKHRoaXMudG9nZ2xlU3RhdGUpLHRoaXMuX2VuYWJsZWQ9ITF9Z2V0IGVuYWJsZWQoKXtyZXR1cm4gdGhpcy5fZW5hYmxlZH1zZXQgZW5hYmxlZChoKXt0aGlzLl9lbmFibGVk''@;'; + put 'put ''PWh9Z2V0IHN0YXRlQ2hhbmdlKCl7cmV0dXJuIHRoaXMuX3N0YXRlLmFzT2JzZXJ2YWJsZSgpfWNsb3NlKCl7dGhpcy50b2dnbGVTdGF0ZT0hMSx0aGlzLl9zdGF0ZS5uZXh0KHRoaXMudG9nZ2xlU3RhdGUpLHRoaXMuYnV0dG9uJiYodGhpcy5idXR0b24uZm9jdXMoKSx0aGlzLmJ1dHRvbj1u''@;'; + put 'put ''dWxsKX1vcGVuKGgsdil7dGhpcy5jYWNoZT1oLHRoaXMuYnV0dG9uPXYsdGhpcy50b2dnbGVTdGF0ZT0hMCx0aGlzLl9zdGF0ZS5uZXh0KHRoaXMudG9nZ2xlU3RhdGUpfXRvZ2dsZShoLHYpe3RoaXMuaXNSb3dPcGVuKGgpfHwhaD90aGlzLmNsb3NlKCk6dGhpcy5vcGVuKGgsdil9Z2V0IHN0''@;'; + put 'put ''YXRlKCl7cmV0dXJuIHRoaXMuY2FjaGV9aXNSb3dPcGVuKGgpe3JldHVybiEoIXRoaXMudG9nZ2xlU3RhdGV8fHRoaXMuY2FjaGUhPT1oKX1nZXQgaXNPcGVuKCl7cmV0dXJuITA9PT10aGlzLnRvZ2dsZVN0YXRlfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyho''@;'; + put 'put ''fHxkKX0sZC5cdTAyNzVwcm92PUFpKHt0b2tlbjpkLGZhY3Rvcnk6ZC5cdTAyNzVmYWN9KSxkfSkoKSxOTD0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgpe3RoaXMuZGV0YWlsU2VydmljZT1oLHRoaXMuZXhwYW5kYWJsZUNvdW50PTB9cmVnaXN0ZXIoKXt0aGlzLmV4cGFuZGFibGVDb3Vu''@;'; + put 'put ''dCsrfXVucmVnaXN0ZXIoKXt0aGlzLmV4cGFuZGFibGVDb3VudC0tfWdldCBoYXNFeHBhbmRhYmxlUm93KCl7cmV0dXJuIXRoaXMuZGV0YWlsU2VydmljZS5lbmFibGVkJiZ0aGlzLmV4cGFuZGFibGVDb3VudD4wfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyho''@;'; + put 'put ''fHxkKShDaShBOCkpfSxkLlx1MDI3NXByb3Y9QWkoe3Rva2VuOmQsZmFjdG9yeTpkLlx1MDI3NWZhY30pLGR9KSgpLFZMPSgoKT0+e2NsYXNzIGQgZXh0ZW5kcyBhd3tjb25zdHJ1Y3RvcihoLHYseSl7aWYoIXYpdGhyb3cgbmV3IEVycm9yKCJjbHItZGctcm93IHNob3VsZCBvbmx5IGJlIHVz''@;'; + put 'put ''ZWQgaW5zaWRlIG9mIGEgY2xyLWRhdGFncmlkIik7c3VwZXIoaCx2KSx0aGlzLmV4cGFuZGFibGVDb3VudD15fWdldCBmbGF2b3IoKXtyZXR1cm4gdGhpcy5leHBhbmRhYmxlQ291bnQuaGFzRXhwYW5kYWJsZVJvd319cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXco''@;'; + put 'put ''aHx8ZCkoS3QoZDEpLEt0KGR3LDgpLEt0KE5MKSl9LGQuXHUwMjc1ZGlyPVdpKHt0eXBlOmQsc2VsZWN0b3JzOltbImNsci1kYXRhZ3JpZCJdLFsiY2xyLWRnLXJvdyJdXSxmZWF0dXJlczpbRG9dfSksZH0pKCk7Y2xhc3MgdnF7Y29uc3RydWN0b3IoZyl7dGhpcy5wcm9wPWcsdGhpcy5uZXN0''@;'; + put 'put ''ZWRQcm9wPW5ldyBQZmUoZyl9Y29tcGFyZShnLGgpe2xldCB2PXRoaXMubmVzdGVkUHJvcC5nZXRQcm9wVmFsdWUoZykseT10aGlzLm5lc3RlZFByb3AuZ2V0UHJvcFZhbHVlKGgpO3JldHVybiJzdHJpbmciPT10eXBlb2YgdiYmKHY9di50b0xvd2VyQ2FzZSgpKSwic3RyaW5nIj09dHlwZW9m''@;'; + put 'put ''IHkmJih5PXkudG9Mb3dlckNhc2UoKSksbnVsbD09dj9udWxsPT15PzA6MTpudWxsPT15fHx2PHk/LTE6dj55PzE6MH19dmFyIGRoPSgoKT0+KGZ1bmN0aW9uKGQpe2RbZC5VTlNPUlRFRD0wXT0iVU5TT1JURUQiLGRbZC5BU0M9MV09IkFTQyIsZFtkLkRFU0M9LTFdPSJERVNDIn0oZGh8fChk''@;'; + put 'put ''aD17fSkpLGRoKSkoKTtsZXQgSGZlPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoKXt0aGlzLl9keW5hbWljPSExfW5nQWZ0ZXJWaWV3SW5pdCgpe3RoaXMuY29sdW1uVmlldz10aGlzLnRlbXBsYXRlUmVmLmNyZWF0ZUVtYmVkZGVkVmlldyhudWxsKX1uZ09uRGVzdHJveSgpe3RoaXMuY29s''@;'; + put 'put ''dW1uVmlldy5kZXN0cm95KCl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1MDI3NWNtcD1UaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJkZy13cmFwcGVkLWNvbHVtbiJdXSx2aWV3UXVlcnk6ZnVuY3Rpb24oaCx2KXtpZigxJmgmJnZvKHZMLDUp''@;'; + put 'put ''LDImaCl7bGV0IHk7SGkoeT0kaSgpKSYmKHYudGVtcGxhdGVSZWY9eS5maXJzdCl9fSxuZ0NvbnRlbnRTZWxlY3RvcnM6bmEsZGVjbHM6Mix2YXJzOjAsY29uc3RzOltbImNvbHVtblBvcnRhbCIsIiJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihoLHYpezEmaCYmKEswKCkscm4oMCxFaiwxLDAsIm5n''@;'; + put 'put ''LXRlbXBsYXRlIixudWxsLDAsWnIpKX0sZW5jYXBzdWxhdGlvbjoyfSksZH0pKCksQXE9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoKXt0aGlzLnN0YXRlRGVib3VuY2VyPWgsdGhpcy5fcmV2ZXJzZT0hMSx0aGlzLl9jaGFuZ2U9bmV3ICRlfWdldCBjb21wYXJhdG9yKCl7cmV0dXJuIHRo''@;'; + put 'put ''aXMuX2NvbXBhcmF0b3J9c2V0IGNvbXBhcmF0b3IoaCl7dGhpcy5zdGF0ZURlYm91bmNlci5jaGFuZ2VTdGFydCgpLHRoaXMuX2NvbXBhcmF0b3I9aCx0aGlzLmVtaXRDaGFuZ2UoKSx0aGlzLnN0YXRlRGVib3VuY2VyLmNoYW5nZURvbmUoKX1nZXQgcmV2ZXJzZSgpe3JldHVybiB0aGlzLl9y''@;'; + put 'put ''ZXZlcnNlfXNldCByZXZlcnNlKGgpe3RoaXMuc3RhdGVEZWJvdW5jZXIuY2hhbmdlU3RhcnQoKSx0aGlzLl9yZXZlcnNlPWgsdGhpcy5lbWl0Q2hhbmdlKCksdGhpcy5zdGF0ZURlYm91bmNlci5jaGFuZ2VEb25lKCl9ZW1pdENoYW5nZSgpe3RoaXMuX2NoYW5nZS5uZXh0KHRoaXMpfWdldCBj''@;'; + put 'put ''aGFuZ2UoKXtyZXR1cm4gdGhpcy5fY2hhbmdlLmFzT2JzZXJ2YWJsZSgpfXRvZ2dsZShoLHYpe3RoaXMuc3RhdGVEZWJvdW5jZXIuY2hhbmdlU3RhcnQoKSx0aGlzLmNvbXBhcmF0b3I9PT1oP3RoaXMuX3JldmVyc2U9dm9pZCAwIT09diYmdnx8IXRoaXMuX3JldmVyc2U6KHRoaXMuX2NvbXBh''@;'; + put 'put ''cmF0b3I9aCx0aGlzLl9yZXZlcnNlPXZvaWQgMCE9PXYmJnYpLHRoaXMuZW1pdENoYW5nZSgpLHRoaXMuc3RhdGVEZWJvdW5jZXIuY2hhbmdlRG9uZSgpfWNsZWFyKCl7dGhpcy5jb21wYXJhdG9yPW51bGx9Y29tcGFyZShoLHYpe3JldHVybih0aGlzLnJldmVyc2U/LTE6MSkqdGhpcy5jb21w''@;'; + put 'put ''YXJhdG9yLmNvbXBhcmUoaCx2KX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoQ2koYVopKX0sZC5cdTAyNzVwcm92PUFpKHt0b2tlbjpkLGZhY3Rvcnk6ZC5cdTAyNzVmYWN9KSxkfSkoKTt2YXIgaDQ9KCgpPT4oZnVuY3Rpb24oZCl7ZFtkLkFMSUdO''@;'; + put 'put ''X0NPTFVNTlM9MF09IkFMSUdOX0NPTFVNTlMiLGRbZC5DQUxDVUxBVEVfTU9ERV9PTj0xXT0iQ0FMQ1VMQVRFX01PREVfT04iLGRbZC5DQUxDVUxBVEVfTU9ERV9PRkY9Ml09IkNBTENVTEFURV9NT0RFX09GRiIsZFtkLkNMRUFSX1dJRFRIUz0zXT0iQ0xFQVJfV0lEVEhTIixkW2QuQ09NUFVU''@;'; + put 'put ''RV9DT0xVTU5fV0lEVEhTPTRdPSJDT01QVVRFX0NPTFVNTl9XSURUSFMifShoNHx8KGg0PXt9KSksaDQpKSgpO2xldCBwUz0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKCl7dGhpcy5fcmVuZGVyU3RlcD1uZXcgJGUsdGhpcy5hbHJlYWR5U2l6ZWQ9ITF9Z2V0IHJlbmRlclN0ZXAoKXtyZXR1''@;'; + put 'put ''cm4gdGhpcy5fcmVuZGVyU3RlcC5hc09ic2VydmFibGUoKX1maWx0ZXJSZW5kZXJTdGVwcyhoKXtyZXR1cm4gdGhpcy5yZW5kZXJTdGVwLnBpcGUoTzIodj0+aD09PXYpKX1yZXNpemUoKXt0aGlzLl9yZW5kZXJTdGVwLm5leHQoaDQuQ0FMQ1VMQVRFX01PREVfT04pLHRoaXMuYWxyZWFkeVNp''@;'; + put 'put ''emVkJiZ0aGlzLl9yZW5kZXJTdGVwLm5leHQoaDQuQ0xFQVJfV0lEVEhTKSx0aGlzLl9yZW5kZXJTdGVwLm5leHQoaDQuQ09NUFVURV9DT0xVTU5fV0lEVEhTKSx0aGlzLl9yZW5kZXJTdGVwLm5leHQoaDQuQUxJR05fQ09MVU1OUyksdGhpcy5hbHJlYWR5U2l6ZWQ9ITAsdGhpcy5fcmVuZGVy''@;'; + put 'put ''U3RlcC5uZXh0KGg0LkNBTENVTEFURV9NT0RFX09GRil9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1MDI3NXByb3Y9QWkoe3Rva2VuOmQsZmFjdG9yeTpkLlx1MDI3NWZhY30pLGR9KSgpLE5mZT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9y''@;'; + put 'put ''KGgsdix5KXt0aGlzLmVsPWgsdGhpcy5kb21BZGFwdGVyPXYsdGhpcy5vcmdhbml6ZXI9eSx0aGlzLl9yZXNpemVkQnk9MH1nZXQgcmVzaXplZEJ5KCl7cmV0dXJuIHRoaXMuX3Jlc2l6ZWRCeX1nZXQgbWluQ29sdW1uV2lkdGgoKXtyZXR1cm4gdGhpcy5kb21BZGFwdGVyLm1pbldpZHRoKHRo''@;'; + put 'put ''aXMuZWwubmF0aXZlRWxlbWVudCl8fDk2fWdldCBtYXhSZXNpemVSYW5nZSgpe3JldHVybiB0aGlzLndpZHRoQmVmb3JlUmVzaXplLXRoaXMubWluQ29sdW1uV2lkdGh9c3RhcnRSZXNpemUoKXt0aGlzLl9yZXNpemVkQnk9MCx0aGlzLmlzV2l0aGluTWF4UmVzaXplUmFuZ2U9ITAsdGhpcy53''@;'; + put 'put ''aWR0aEJlZm9yZVJlc2l6ZT10aGlzLmRvbUFkYXB0ZXIuY2xpZW50UmVjdCh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQpLndpZHRofWVuZFJlc2l6ZSgpe3RoaXMub3JnYW5pemVyLnJlc2l6ZSgpfWdldCB3aWR0aEFmdGVyUmVzaXplKCl7cmV0dXJuIHRoaXMud2lkdGhCZWZvcmVSZXNpemUrdGhp''@;'; + put 'put ''cy5fcmVzaXplZEJ5fWNhbGN1bGF0ZVJlc2l6ZShoKXtoPC10aGlzLm1heFJlc2l6ZVJhbmdlPyh0aGlzLl9yZXNpemVkQnk9LXRoaXMubWF4UmVzaXplUmFuZ2UsdGhpcy5pc1dpdGhpbk1heFJlc2l6ZVJhbmdlPSExKToodGhpcy5fcmVzaXplZEJ5PWgsdGhpcy5pc1dpdGhpbk1heFJlc2l6''@;'; + put 'put ''ZVJhbmdlPSEwKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoQ2koYm8pLENpKGY0KSxDaShwUykpfSxkLlx1MDI3NXByb3Y9QWkoe3Rva2VuOmQsZmFjdG9yeTpkLlx1MDI3NWZhY30pLGR9KSgpLFZmZT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9y''@;'; + put 'put ''KGgpe3RoaXMucGxhdGZvcm1JZD1ofWdldCB0YWJsZVJlZigpe3JldHVybiB0aGlzLl90YWJsZVJlZn1zZXQgdGFibGVSZWYoaCl7dGhpcy5fdGFibGVSZWY9aH1zZXQgdGFibGUoaCl7U2wodGhpcy5wbGF0Zm9ybUlkKSYmaC5uYXRpdmVFbGVtZW50JiYodGhpcy50YWJsZVJlZj1oLm5hdGl2''@;'; + put 'put ''ZUVsZW1lbnQucXVlcnlTZWxlY3RvcigiLmRhdGFncmlkLXRhYmxlIikpfWdldENvbHVtbkRyYWdIZWlnaHQoKXtyZXR1cm4gdGhpcy50YWJsZVJlZj9gJHt0aGlzLnRhYmxlUmVmLmNsaWVudEhlaWdodH1weGA6bnVsbH19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBu''@;'; + put 'put ''ZXcoaHx8ZCkoQ2koTDIpKX0sZC5cdTAyNzVwcm92PUFpKHt0b2tlbjpkLGZhY3Rvcnk6ZC5cdTAyNzVmYWN9KSxkfSkoKSxpeWU9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYseSxDLEksaix1ZSl7dGhpcy5jb2x1bW5SZXNpemVyU2VydmljZT1oLHRoaXMucmVuZGVyZXI9dix0aGlz''@;'; + put 'put ''Lm5nWm9uZT15LHRoaXMudGFibGVTaXplU2VydmljZT1DLHRoaXMuY29tbW9uU3RyaW5nPUksdGhpcy5kb2N1bWVudD1qLHRoaXMuY29sdW1uU2VwYXJhdG9ySWQ9dWUsdGhpcy5yZXNpemVTdGFydGVkT25LZXlEb3duPSExLHRoaXMudW5saXN0ZW5lcnM9W119Z2V0IHJlc2l6ZVRyYWNrZXJF''@;'; + put 'put ''bCgpe3JldHVybiB0aGlzLnJlc2l6ZVRyYWNrZXJSZWYubmF0aXZlRWxlbWVudH1nZXQgY29sdW1uSGFuZGxlRWwoKXtyZXR1cm4gdGhpcy5jb2x1bW5IYW5kbGVSZWYubmF0aXZlRWxlbWVudH1uZ0FmdGVyVmlld0luaXQoKXt0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKT0+e3Ro''@;'; + put 'put ''aXMudW5saXN0ZW5lcnMucHVzaCh0aGlzLnJlbmRlcmVyLmxpc3Rlbih0aGlzLmNvbHVtbkhhbmRsZUVsLCJrZXlkb3duIixoPT57dGhpcy5zaG93VHJhY2tlck9uRmlyc3RLZXlEb3duKGgpLHRoaXMubW92ZVRyYWNrZXJPbktleURvd24oaCl9KSksdGhpcy51bmxpc3RlbmVycy5wdXNoKHRo''@;'; + put 'put ''aXMucmVuZGVyZXIubGlzdGVuKHRoaXMuY29sdW1uSGFuZGxlRWwsImtleXVwIixoPT57dGhpcy5oaWRlVHJhY2tlck9uS2V5VXAoaCl9KSl9KX1nZXQgZGVzY3JpcHRpb25JZCgpe3JldHVybmAke3RoaXMuY29sdW1uU2VwYXJhdG9ySWR9LWFyaWEtZGVzY3JpYmVkYnlgfXNob3dUcmFja2Vy''@;'; + put 'put ''KCl7dGhpcy5jb2x1bW5SZXNpemVyU2VydmljZS5zdGFydFJlc2l6ZSgpO2NvbnN0IGg9dGhpcy50YWJsZVNpemVTZXJ2aWNlLmdldENvbHVtbkRyYWdIZWlnaHQoKTt0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMucmVzaXplVHJhY2tlckVsLCJoZWlnaHQiLGgpLHRoaXMucmVuZGVyZXIu''@;'; + put 'put ''c2V0U3R5bGUodGhpcy5yZXNpemVUcmFja2VyRWwsImRpc3BsYXkiLCJibG9jayIpfW1vdmVUcmFja2VyKGgpe3RoaXMuY29sdW1uUmVzaXplclNlcnZpY2UuY2FsY3VsYXRlUmVzaXplKGgpLHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5yZXNpemVUcmFja2VyRWwsInRyYW5zZm9ybSIs''@;'; + put 'put ''YHRyYW5zbGF0ZVgoJHt0aGlzLmNvbHVtblJlc2l6ZXJTZXJ2aWNlLnJlc2l6ZWRCeX1weClgKSx0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZG9jdW1lbnQuYm9keSwiY3Vyc29yIiwiY29sLXJlc2l6ZSIpLHRoaXMucmVkRmxhZ1RyYWNrZXIoKX1oaWRlVHJhY2tlcigpe3RoaXMuY29s''@;'; + put 'put ''dW1uUmVzaXplclNlcnZpY2UuZW5kUmVzaXplKCksdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnJlc2l6ZVRyYWNrZXJFbCwiZGlzcGxheSIsIm5vbmUiKSx0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMucmVzaXplVHJhY2tlckVsLCJ0cmFuc2Zvcm0iLCJ0cmFuc2xhdGVYKDBweCki''@;'; + put 'put ''KSx0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZG9jdW1lbnQuYm9keSwiY3Vyc29yIiwiYXV0byIpfXNob3dUcmFja2VyT25GaXJzdEtleURvd24oaCl7IXRoaXMucmVzaXplU3RhcnRlZE9uS2V5RG93biYmKHRoaXMuaXNBcnJvd0xlZnRLZXlFdmVudChoKXx8dGhpcy5pc0Fycm93Umln''@;'; + put 'put ''aHRLZXlFdmVudChoKSkmJih0aGlzLnJlc2l6ZVN0YXJ0ZWRPbktleURvd249ITAsdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLnJlc2l6ZVRyYWNrZXJFbCwib24tYXJyb3cta2V5LXJlc2l6ZSIpLHRoaXMuc2hvd1RyYWNrZXIoKSl9bW92ZVRyYWNrZXJPbktleURvd24oaCl7dGhpcy5p''@;'; + put 'put ''c0Fycm93TGVmdEtleUV2ZW50KGgpP3RoaXMubW92ZVRyYWNrZXIodGhpcy5jb2x1bW5SZXNpemVyU2VydmljZS5yZXNpemVkQnktMTIpOnRoaXMuaXNBcnJvd1JpZ2h0S2V5RXZlbnQoaCkmJnRoaXMubW92ZVRyYWNrZXIodGhpcy5jb2x1bW5SZXNpemVyU2VydmljZS5yZXNpemVkQnkrMTIp''@;'; + put 'put ''fWhpZGVUcmFja2VyT25LZXlVcChoKXt0aGlzLnJlc2l6ZVN0YXJ0ZWRPbktleURvd24mJih0aGlzLmlzQXJyb3dMZWZ0S2V5RXZlbnQoaCl8fHRoaXMuaXNBcnJvd1JpZ2h0S2V5RXZlbnQoaCkpJiYodGhpcy5yZXNpemVTdGFydGVkT25LZXlEb3duPSExLHRoaXMucmVuZGVyZXIucmVtb3Zl''@;'; + put 'put ''Q2xhc3ModGhpcy5yZXNpemVUcmFja2VyRWwsIm9uLWFycm93LWtleS1yZXNpemUiKSx0aGlzLmhpZGVUcmFja2VyKCksdGhpcy5jb2x1bW5IYW5kbGVFbC5mb2N1cygpKX1yZWRGbGFnVHJhY2tlcigpe3RoaXMuaXNXaXRoaW5NYXhSZXNpemVSYW5nZSE9PXRoaXMuY29sdW1uUmVzaXplclNl''@;'; + put 'put ''cnZpY2UuaXNXaXRoaW5NYXhSZXNpemVSYW5nZSYmKHRoaXMuaXNXaXRoaW5NYXhSZXNpemVSYW5nZT10aGlzLmNvbHVtblJlc2l6ZXJTZXJ2aWNlLmlzV2l0aGluTWF4UmVzaXplUmFuZ2UsdGhpcy5pc1dpdGhpbk1heFJlc2l6ZVJhbmdlP3RoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhp''@;'; + put 'put ''cy5yZXNpemVUcmFja2VyRWwsImV4Y2VlZGVkLW1heCIpOnRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5yZXNpemVUcmFja2VyRWwsImV4Y2VlZGVkLW1heCIpKX1pc0Fycm93TGVmdEtleUV2ZW50KGgpe3JldHVybiBoLmtleT09PU0wLkFycm93TGVmdHx8aC5rZXk9PT1mYy5BcnJvd0xl''@;'; + put 'put ''ZnR9aXNBcnJvd1JpZ2h0S2V5RXZlbnQoaCl7cmV0dXJuIGgua2V5PT09TTAuQXJyb3dSaWdodHx8aC5rZXk9PT1mYy5BcnJvd1JpZ2h0fW5nT25EZXN0cm95KCl7dGhpcy51bmxpc3RlbmVycy5mb3JFYWNoKGg9PmgoKSl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4g''@;'; + put 'put ''bmV3KGh8fGQpKEt0KE5mZSksS3QoR2EpLEt0KF9sKSxLdChWZmUpLEt0KG5zKSxLdChwcyksS3QoeTIpKX0sZC5cdTAyNzVjbXA9VGkoe3R5cGU6ZCxzZWxlY3RvcnM6W1siY2xyLWRnLWNvbHVtbi1zZXBhcmF0b3IiXV0sdmlld1F1ZXJ5OmZ1bmN0aW9uKGgsdil7aWYoMSZoJiYodm8oUmYs''@;'; + put 'put ''NSksdm8oZTMsNSkpLDImaCl7bGV0IHk7SGkoeT0kaSgpKSYmKHYucmVzaXplVHJhY2tlclJlZj15LmZpcnN0KSxIaSh5PSRpKCkpJiYodi5jb2x1bW5IYW5kbGVSZWY9eS5maXJzdCl9fSxob3N0VmFyczoyLGhvc3RCaW5kaW5nczpmdW5jdGlvbihoLHYpezImaCYmRmkoImRhdGFncmlkLWNv''@;'; + put 'put ''bHVtbi1zZXBhcmF0b3IiLCEwKX0sZmVhdHVyZXM6W2hvKFtPY10pXSxkZWNsczo2LHZhcnM6NSxjb25zdHM6W1sidHlwZSIsImJ1dHRvbiIsImNsckRyYWdnYWJsZSIsIiIsMSwiZGF0YWdyaWQtY29sdW1uLWhhbmRsZSIsMywiY2xyR3JvdXAiLCJjbHJEcmFnU3RhcnQiLCJjbHJEcmFnTW92''@;'; + put 'put ''ZSIsImNsckRyYWdFbmQiXSxbImNvbHVtbkhhbmRsZSIsIiJdLFsxLCJjbHItc3Itb25seSJdLFsxLCJkYXRhZ3JpZC1jb2x1bW4tcmVzaXplLXRyYWNrZXIiXSxbInJlc2l6ZVRyYWNrZXIiLCIiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oaCx2KXsxJmgmJihydCgwLCJidXR0b24iLDAsMSksR24o''@;'; + put 'put ''ImNsckRyYWdTdGFydCIsZnVuY3Rpb24oKXtyZXR1cm4gdi5zaG93VHJhY2tlcigpfSkoImNsckRyYWdNb3ZlIixmdW5jdGlvbihDKXtyZXR1cm4gdi5tb3ZlVHJhY2tlcihDLmRyYWdQb3NpdGlvbi5tb3ZlWCl9KSgiY2xyRHJhZ0VuZCIsZnVuY3Rpb24oKXtyZXR1cm4gdi5oaWRlVHJhY2tl''@;'; + put 'put ''cigpfSksbHQoKSxydCgyLCJzcGFuIiwyKSxZdCgzKSxsdCgpLENyKDQsImRpdiIsMyw0KSksMiZoJiYoVHQoImNsckdyb3VwIix2LmNvbHVtblNlcGFyYXRvcklkKSxHaSgiYXJpYS1sYWJlbCIsdi5jb21tb25TdHJpbmcua2V5cy5jb2x1bW5TZXBhcmF0b3JBcmlhTGFiZWwpKCJhcmlhLWRl''@;'; + put 'put ''c2NyaWJlZGJ5Iix2LmRlc2NyaXB0aW9uSWQpLHV0KDIpLEdpKCJpZCIsdi5kZXNjcmlwdGlvbklkKSx1dCgxKSxKaSgiICIsdi5jb21tb25TdHJpbmcua2V5cy5jb2x1bW5TZXBhcmF0b3JEZXNjcmlwdGlvbiwiICIpKX0sZGVwZW5kZW5jaWVzOltxQWVdLGVuY2Fwc3VsYXRpb246Mn0pLGR9''@;'; + put 'put ''KSgpLGdTPSgoKT0+e2NsYXNzIGQgZXh0ZW5kcyBwcXtjb25zdHJ1Y3RvcihoLHYseSxDLEksail7c3VwZXIodiksdGhpcy5fc29ydD1oLHRoaXMudmNyPXksdGhpcy5kZXRhaWxTZXJ2aWNlPUMsdGhpcy5jaGFuZ2VEZXRlY3RvclJlZj1JLHRoaXMuY29tbW9uU3RyaW5ncz1qLHRoaXMuc2hv''@;'; + put 'put ''d1NlcGFyYXRvcj0hMCx0aGlzLnN1YnNjcmlwdGlvbnM9W10sdGhpcy5fY29sVHlwZT0ic3RyaW5nIix0aGlzLl9zb3J0ZWQ9ITEsdGhpcy5zb3J0ZWRDaGFuZ2U9bmV3IGFyLHRoaXMuX3NvcnRPcmRlcj1kaC5VTlNPUlRFRCx0aGlzLnNvcnRPcmRlckNoYW5nZT1uZXcgYXIsdGhpcy5jdXN0''@;'; + put 'put ''b21GaWx0ZXI9ITEsdGhpcy5maWx0ZXJWYWx1ZUNoYW5nZT1uZXcgYXIsdGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy5saXN0ZW5Gb3JTb3J0aW5nQ2hhbmdlcygpKSx0aGlzLnN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLmxpc3RlbkZvckRldGFpbFBhbmVDaGFuZ2VzKCkpfW5nT25EZXN0''@;'; + put 'put ''cm95KCl7c3VwZXIubmdPbkRlc3Ryb3koKSx0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChoPT5oLnVuc3Vic2NyaWJlKCkpfWxpc3RlbkZvckRldGFpbFBhbmVDaGFuZ2VzKCl7cmV0dXJuIHRoaXMuZGV0YWlsU2VydmljZS5zdGF0ZUNoYW5nZS5zdWJzY3JpYmUoaD0+e3RoaXMuc2hvd1Nl''@;'; + put 'put ''cGFyYXRvciE9PSFoJiYodGhpcy5zaG93U2VwYXJhdG9yPSFoLHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCkpfSl9bGlzdGVuRm9yU29ydGluZ0NoYW5nZXMoKXtyZXR1cm4gdGhpcy5fc29ydC5jaGFuZ2Uuc3Vic2NyaWJlKGg9Pnt0aGlzLmNoYW5nZURldGVjdG9yUmVm''@;'; + put 'put ''Lm1hcmtGb3JDaGVjaygpLHRoaXMuc29ydE9yZGVyIT09ZGguVU5TT1JURUQmJmguY29tcGFyYXRvciE9PXRoaXMuX3NvcnRCeSYmKHRoaXMuX3NvcnRPcmRlcj1kaC5VTlNPUlRFRCx0aGlzLnNvcnRPcmRlckNoYW5nZS5lbWl0KHRoaXMuX3NvcnRPcmRlciksdGhpcy5zb3J0SWNvbj1udWxs''@;'; + put 'put ''LHRoaXMuX3NvcnREaXJlY3Rpb249bnVsbCksdGhpcy5zb3J0ZWQmJmguY29tcGFyYXRvciE9PXRoaXMuX3NvcnRCeSYmKHRoaXMuX3NvcnRlZD0hMSx0aGlzLnNvcnRlZENoYW5nZS5lbWl0KCExKSl9KX1nZXQgY29sVHlwZSgpe3JldHVybiB0aGlzLl9jb2xUeXBlfXNldCBjb2xUeXBlKGgp''@;'; + put 'put ''e3RoaXMuX2NvbFR5cGU9aH1nZXQgZmllbGQoKXtyZXR1cm4gdGhpcy5fZmllbGR9c2V0IGZpZWxkKGgpeyJzdHJpbmciPT10eXBlb2YgaCYmKHRoaXMuX2ZpZWxkPWgsdGhpcy5fc29ydEJ5fHwodGhpcy5fc29ydEJ5PW5ldyB2cShoKSkpfXNldHVwRGVmYXVsdEZpbHRlcihoLHYpeyJudW1i''@;'; + put 'put ''ZXIiPT09dj90aGlzLnNldEZpbHRlcihuZXcgaFMobmV3IGdxKGgpKSk6InN0cmluZyI9PT12JiZ0aGlzLnNldEZpbHRlcihuZXcgZFMobmV3IG1xKGgpKSksdGhpcy5maWx0ZXImJnRoaXMuaW5pdEZpbHRlclZhbHVlJiYodGhpcy51cGRhdGVGaWx0ZXJWYWx1ZT10aGlzLmluaXRGaWx0ZXJW''@;'; + put 'put ''YWx1ZSxkZWxldGUgdGhpcy5pbml0RmlsdGVyVmFsdWUpfW5nT25DaGFuZ2VzKGgpe2guY29sVHlwZSYmaC5jb2xUeXBlLmN1cnJlbnRWYWx1ZSYmaC5jb2xUeXBlLmN1cnJlbnRWYWx1ZSE9PWguY29sVHlwZS5wcmV2aW91c1ZhbHVlJiYhdGhpcy5jdXN0b21GaWx0ZXImJiF0aGlzLmZpbHRl''@;'; + put 'put ''ciYmdGhpcy5jb2xUeXBlJiZ0aGlzLmZpZWxkJiZ0aGlzLnNldHVwRGVmYXVsdEZpbHRlcih0aGlzLmZpZWxkLHRoaXMuY29sVHlwZSksaC5maWVsZCYmaC5maWVsZC5jdXJyZW50VmFsdWUmJmguZmllbGQuY3VycmVudFZhbHVlIT09aC5maWVsZC5wcmV2aW91c1ZhbHVlJiYhdGhpcy5jdXN0''@;'; + put 'put ''b21GaWx0ZXImJnRoaXMuY29sVHlwZSYmdGhpcy5zZXR1cERlZmF1bHRGaWx0ZXIodGhpcy5maWVsZCx0aGlzLmNvbFR5cGUpfWdldCBzb3J0QnkoKXtyZXR1cm4gdGhpcy5fc29ydEJ5fXNldCBzb3J0QnkoaCl7InN0cmluZyI9PXR5cGVvZiBoP3RoaXMuX3NvcnRCeT1uZXcgdnEoaCk6aD90''@;'; + put 'put ''aGlzLl9zb3J0Qnk9aDp0aGlzLmZpZWxkP3RoaXMuX3NvcnRCeT1uZXcgdnEodGhpcy5maWVsZCk6ZGVsZXRlIHRoaXMuX3NvcnRCeX1nZXQgc29ydGFibGUoKXtyZXR1cm4hIXRoaXMuX3NvcnRCeX1nZXQgc29ydGVkKCl7cmV0dXJuIHRoaXMuX3NvcnRlZH1zZXQgc29ydGVkKGgpeyFoJiZ0''@;'; + put 'put ''aGlzLnNvcnRlZD8odGhpcy5fc29ydGVkPSExLHRoaXMuX3NvcnQuY2xlYXIoKSk6aCYmIXRoaXMuc29ydGVkJiZ0aGlzLnNvcnQoKX1nZXQgc29ydE9yZGVyKCl7cmV0dXJuIHRoaXMuX3NvcnRPcmRlcn1zZXQgc29ydE9yZGVyKGgpe2lmKHZvaWQgMCE9PWgmJnRoaXMuX3NvcnRPcmRlciE9''@;'; + put 'put ''PWgpc3dpdGNoKGgpe2RlZmF1bHQ6Y2FzZSBkaC5VTlNPUlRFRDp0aGlzLl9zb3J0LmNsZWFyKCk7YnJlYWs7Y2FzZSBkaC5BU0M6dGhpcy5zb3J0KCExKTticmVhaztjYXNlIGRoLkRFU0M6dGhpcy5zb3J0KCEwKX19Z2V0IGFyaWFTb3J0KCl7c3dpdGNoKHRoaXMuX3NvcnRPcmRlcil7ZGVm''@;'; + put 'put ''YXVsdDpjYXNlIGRoLlVOU09SVEVEOnJldHVybiJub25lIjtjYXNlIGRoLkFTQzpyZXR1cm4iYXNjZW5kaW5nIjtjYXNlIGRoLkRFU0M6cmV0dXJuImRlc2NlbmRpbmcifX1nZXQgc29ydERpcmVjdGlvbigpe3JldHVybiB0aGlzLl9zb3J0RGlyZWN0aW9ufXNvcnQoaCl7IXRoaXMuc29ydGFi''@;'; + put 'put ''bGV8fCh0aGlzLl9zb3J0LnRvZ2dsZSh0aGlzLl9zb3J0QnksaCksdGhpcy5fc29ydE9yZGVyPXRoaXMuX3NvcnQucmV2ZXJzZT9kaC5ERVNDOmRoLkFTQyx0aGlzLl9zb3J0RGlyZWN0aW9uPXRoaXMuX3NvcnRPcmRlcj09PWRoLkRFU0M/ImRvd24iOiJ1cCIsdGhpcy5zb3J0SWNvbj10aGlz''@;'; + put 'put ''Ll9zb3J0T3JkZXI9PT1kaC5ERVNDPyJhcnJvdyBkb3duIjoiYXJyb3ciLHRoaXMuc29ydE9yZGVyQ2hhbmdlLmVtaXQodGhpcy5fc29ydE9yZGVyKSx0aGlzLl9zb3J0ZWQ9ITAsdGhpcy5zb3J0ZWRDaGFuZ2UuZW1pdCghMCkpfXNldCBwcm9qZWN0ZWRGaWx0ZXIoaCl7aCYmKHRoaXMuZGVs''@;'; + put 'put ''ZXRlRmlsdGVyKCksdGhpcy5jdXN0b21GaWx0ZXI9ITApfWdldCBmaWx0ZXJTdHJpbmdQbGFjZWhvbGRlclZhbHVlKCl7cmV0dXJuIHRoaXMuZmlsdGVyU3RyaW5nUGxhY2Vob2xkZXJ8fHRoaXMuY29tbW9uU3RyaW5ncy5rZXlzLmZpbHRlckl0ZW1zfWdldCBmaWx0ZXJOdW1iZXJNYXhQbGFj''@;'; + put 'put ''ZWhvbGRlclZhbHVlKCl7cmV0dXJuIHRoaXMuZmlsdGVyTnVtYmVyTWF4UGxhY2Vob2xkZXJ8fHRoaXMuY29tbW9uU3RyaW5ncy5rZXlzLm1heFZhbHVlfWdldCBmaWx0ZXJOdW1iZXJNaW5QbGFjZWhvbGRlclZhbHVlKCl7cmV0dXJuIHRoaXMuZmlsdGVyTnVtYmVyTWluUGxhY2Vob2xkZXJ8''@;'; + put 'put ''fHRoaXMuY29tbW9uU3RyaW5ncy5rZXlzLm1pblZhbHVlfXNldCB1cGRhdGVGaWx0ZXJWYWx1ZShoKXt0aGlzLmZpbHRlcj90aGlzLmZpbHRlciBpbnN0YW5jZW9mIGRTPygoIWh8fCJzdHJpbmciIT10eXBlb2YgaCkmJihoPSIiKSxoIT09dGhpcy5maWx0ZXIudmFsdWUmJih0aGlzLmZpbHRl''@;'; + put 'put ''ci52YWx1ZT1oKSk6dGhpcy5maWx0ZXIgaW5zdGFuY2VvZiBoUyYmKCghaHx8IShoIGluc3RhbmNlb2YgQXJyYXkpKSYmKGg9W251bGwsbnVsbF0pLDI9PT1oLmxlbmd0aCYmKGhbMF0hPT10aGlzLmZpbHRlci52YWx1ZVswXXx8aFsxXSE9PXRoaXMuZmlsdGVyLnZhbHVlWzFdKSYmKHRoaXMu''@;'; + put 'put ''ZmlsdGVyLnZhbHVlPWgpKTp0aGlzLmluaXRGaWx0ZXJWYWx1ZT1ofWdldCBmaWx0ZXJWYWx1ZSgpe3JldHVybiB0aGlzLmZpbHRlciBpbnN0YW5jZW9mIGRTfHx0aGlzLmZpbHRlciBpbnN0YW5jZW9mIGhTP3RoaXMuZmlsdGVyLnZhbHVlOm51bGx9c2V0IGZpbHRlclZhbHVlKGgpeyh0aGlz''@;'; + put 'put ''LmZpbHRlciBpbnN0YW5jZW9mIGRTfHx0aGlzLmZpbHRlciBpbnN0YW5jZW9mIGhTKSYmKHRoaXMudXBkYXRlRmlsdGVyVmFsdWU9aCx0aGlzLmZpbHRlclZhbHVlQ2hhbmdlLmVtaXQodGhpcy5maWx0ZXIudmFsdWUpKX1uZ09uSW5pdCgpe3RoaXMud3JhcHBlZEluamVjdG9yPW5ldyBidChI''@;'; + put 'put ''ZmUsdGhpcy52Y3IpfWdldCBfdmlldygpe3JldHVybiB0aGlzLndyYXBwZWRJbmplY3Rvci5nZXQoSGZlLHRoaXMudmNyKS5jb2x1bW5WaWV3fX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShLdChBcSksS3QodnYpLEt0KFVpKSxLdChBOCksS3QoZDEp''@;'; + put 'put ''LEt0KG5zKSl9LGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQsc2VsZWN0b3JzOltbImNsci1kZy1jb2x1bW4iXV0sY29udGVudFF1ZXJpZXM6ZnVuY3Rpb24oaCx2LHkpe2lmKDEmaCYmeG8oeSxocSw1KSwyJmgpe2xldCBDO0hpKEM9JGkoKSkmJih2LnByb2plY3RlZEZpbHRlcj1DLmZpcnN0KX19''@;'; + put 'put ''LGhvc3RBdHRyczpbInJvbGUiLCJjb2x1bW5oZWFkZXIiXSxob3N0VmFyczozLGhvc3RCaW5kaW5nczpmdW5jdGlvbihoLHYpezImaCYmKEdpKCJhcmlhLXNvcnQiLHYuYXJpYVNvcnQpLEZpKCJkYXRhZ3JpZC1jb2x1bW4iLCEwKSl9LGlucHV0czp7Y29sVHlwZTpbImNsckRnQ29sVHlwZSIs''@;'; + put 'put ''ImNvbFR5cGUiXSxmaWVsZDpbImNsckRnRmllbGQiLCJmaWVsZCJdLHNvcnRCeTpbImNsckRnU29ydEJ5Iiwic29ydEJ5Il0sc29ydGVkOlsiY2xyRGdTb3J0ZWQiLCJzb3J0ZWQiXSxzb3J0T3JkZXI6WyJjbHJEZ1NvcnRPcmRlciIsInNvcnRPcmRlciJdLGZpbHRlclN0cmluZ1BsYWNlaG9s''@;'; + put 'put ''ZGVyOlsiY2xyRmlsdGVyU3RyaW5nUGxhY2Vob2xkZXIiLCJmaWx0ZXJTdHJpbmdQbGFjZWhvbGRlciJdLGZpbHRlck51bWJlck1heFBsYWNlaG9sZGVyOlsiY2xyRmlsdGVyTnVtYmVyTWF4UGxhY2Vob2xkZXIiLCJmaWx0ZXJOdW1iZXJNYXhQbGFjZWhvbGRlciJdLGZpbHRlck51bWJlck1p''@;'; + put 'put ''blBsYWNlaG9sZGVyOlsiY2xyRmlsdGVyTnVtYmVyTWluUGxhY2Vob2xkZXIiLCJmaWx0ZXJOdW1iZXJNaW5QbGFjZWhvbGRlciJdLHVwZGF0ZUZpbHRlclZhbHVlOlsiY2xyRmlsdGVyVmFsdWUiLCJ1cGRhdGVGaWx0ZXJWYWx1ZSJdfSxvdXRwdXRzOntzb3J0ZWRDaGFuZ2U6ImNsckRnU29y''@;'; + put 'put ''dGVkQ2hhbmdlIixzb3J0T3JkZXJDaGFuZ2U6ImNsckRnU29ydE9yZGVyQ2hhbmdlIixmaWx0ZXJWYWx1ZUNoYW5nZToiY2xyRmlsdGVyVmFsdWVDaGFuZ2UifSxmZWF0dXJlczpbaG8oW0dzLGg4LHpzXSksRG8sRDJdLG5nQ29udGVudFNlbGVjdG9yczp3JCxkZWNsczo5LHZhcnM6NSxjb25z''@;'; + put 'put ''dHM6W1sxLCJkYXRhZ3JpZC1jb2x1bW4tZmxleCJdLFsiY2xhc3MiLCJkYXRhZ3JpZC1jb2x1bW4tdGl0bGUiLCJ0eXBlIiwiYnV0dG9uIiwzLCJjbGljayIsNCwibmdJZiJdLFszLCJjbHJGaWx0ZXJQbGFjZWhvbGRlciIsImNsckRnU3RyaW5nRmlsdGVyIiwiY2xyRmlsdGVyVmFsdWUiLCJj''@;'; + put 'put ''bHJGaWx0ZXJWYWx1ZUNoYW5nZSIsNCwibmdJZiJdLFszLCJjbHJGaWx0ZXJNYXhQbGFjZWhvbGRlciIsImNsckZpbHRlck1pblBsYWNlaG9sZGVyIiwiY2xyRGdOdW1lcmljRmlsdGVyIiwiY2xyRmlsdGVyVmFsdWUiLCJjbHJGaWx0ZXJWYWx1ZUNoYW5nZSIsNCwibmdJZiJdLFsiY29sdW1u''@;'; + put 'put ''VGl0bGUiLCIiXSxbImNsYXNzIiwiZGF0YWdyaWQtY29sdW1uLXRpdGxlIiw0LCJuZ0lmIl0sWzQsIm5nSWYiXSxbInR5cGUiLCJidXR0b24iLDEsImRhdGFncmlkLWNvbHVtbi10aXRsZSIsMywiY2xpY2siXSxbNCwibmdUZW1wbGF0ZU91dGxldCJdLFsic2hhcGUiLCJhcnJvdyIsImFyaWEt''@;'; + put 'put ''aGlkZGVuIiwidHJ1ZSIsImNsYXNzIiwic29ydC1pY29uIiw0LCJuZ0lmIl0sWyJzaGFwZSIsImFycm93IiwiYXJpYS1oaWRkZW4iLCJ0cnVlIiwxLCJzb3J0LWljb24iXSxbMywiY2xyRmlsdGVyUGxhY2Vob2xkZXIiLCJjbHJEZ1N0cmluZ0ZpbHRlciIsImNsckZpbHRlclZhbHVlIiwiY2xy''@;'; + put 'put ''RmlsdGVyVmFsdWVDaGFuZ2UiXSxbMywiY2xyRmlsdGVyTWF4UGxhY2Vob2xkZXIiLCJjbHJGaWx0ZXJNaW5QbGFjZWhvbGRlciIsImNsckRnTnVtZXJpY0ZpbHRlciIsImNsckZpbHRlclZhbHVlIiwiY2xyRmlsdGVyVmFsdWVDaGFuZ2UiXSxbMSwiZGF0YWdyaWQtY29sdW1uLXRpdGxlIl1d''@;'; + put 'put ''LHRlbXBsYXRlOmZ1bmN0aW9uKGgsdil7MSZoJiYoSzAoeGopLHJ0KDAsImRpdiIsMCkscm4oMSxBJCwzLDIsImJ1dHRvbiIsMSksTmkoMikscm4oMyxjY2UsMSwzLCJjbHItZGctc3RyaW5nLWZpbHRlciIsMikscm4oNCxmY2UsMSw0LCJjbHItZGctbnVtZXJpYy1maWx0ZXIiLDMpLHJuKDUs''@;'; + put 'put ''JHksMSwwLCJuZy10ZW1wbGF0ZSIsbnVsbCw0LFpyKSxybig3LGhjZSwyLDEsInNwYW4iLDUpLHJuKDgseSQsMSwwLCJjbHItZGctY29sdW1uLXNlcGFyYXRvciIsNiksbHQoKSksMiZoJiYodXQoMSksVHQoIm5nSWYiLHYuc29ydGFibGUpLHV0KDIpLFR0KCJuZ0lmIix2LmZpZWxkJiYhdi5j''@;'; + put 'put ''dXN0b21GaWx0ZXImJiJzdHJpbmciPT12LmNvbFR5cGUpLHV0KDEpLFR0KCJuZ0lmIix2LmZpZWxkJiYhdi5jdXN0b21GaWx0ZXImJiJudW1iZXIiPT12LmNvbFR5cGUpLHV0KDMpLFR0KCJuZ0lmIiwhdi5zb3J0YWJsZSksdXQoMSksVHQoIm5nSWYiLHYuc2hvd1NlcGFyYXRvcikpfSxkZXBl''@;'; + put 'put ''bmRlbmNpZXM6W0ZmZSxueWUsaXllLE5vLFhkLFpvXSxlbmNhcHN1bGF0aW9uOjIsY2hhbmdlRGV0ZWN0aW9uOjB9KSxkfSkoKSxwdz0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgsdix5KXt0aGlzLl9maWx0ZXJzPWgsdGhpcy5fc29ydD12LHRoaXMuX3BhZ2U9eSx0aGlzLmxvYWRpbmc9''@;'; + put 'put ''ITEsdGhpcy50cmFja0J5PShDLEkpPT5JLHRoaXMuX3NtYXJ0PSExLHRoaXMuX2Rpc3BsYXllZD1bXSx0aGlzLl9jaGFuZ2U9bmV3ICRlLHRoaXMuX2FsbENoYW5nZXM9bmV3ICRlfWRlc3Ryb3koKXt0aGlzLl9maWx0ZXJzU3ViJiZ0aGlzLl9maWx0ZXJzU3ViLnVuc3Vic2NyaWJlKCksdGhp''@;'; + put 'put ''cy5fc29ydFN1YiYmdGhpcy5fc29ydFN1Yi51bnN1YnNjcmliZSgpLHRoaXMuX3BhZ2VTdWImJnRoaXMuX3BhZ2VTdWIudW5zdWJzY3JpYmUoKX1nZXQgc21hcnQoKXtyZXR1cm4gdGhpcy5fc21hcnR9c21hcnRlblVwKCl7dGhpcy5fc21hcnQ9ITAsdGhpcy5fZmlsdGVyc1N1Yj10aGlzLl9m''@;'; + put 'put ''aWx0ZXJzLmNoYW5nZS5zdWJzY3JpYmUoKCk9PnRoaXMuX2ZpbHRlckl0ZW1zKCkpLHRoaXMuX3NvcnRTdWI9dGhpcy5fc29ydC5jaGFuZ2Uuc3Vic2NyaWJlKCgpPT57dGhpcy5fc29ydC5jb21wYXJhdG9yP3RoaXMuX3NvcnRJdGVtcygpOnRoaXMuX2ZpbHRlckl0ZW1zKCl9KSx0aGlzLl9w''@;'; + put 'put ''YWdlU3ViPXRoaXMuX3BhZ2UuY2hhbmdlLnN1YnNjcmliZSgoKT0+dGhpcy5fY2hhbmdlUGFnZSgpKX1nZXQgYWxsKCl7cmV0dXJuIHRoaXMuX2FsbH1zZXQgYWxsKGgpe3RoaXMuX2FsbD1oLHRoaXMuZW1pdEFsbENoYW5nZXMoaCksdGhpcy5zbWFydD90aGlzLl9maWx0ZXJJdGVtcygpOih0''@;'; + put 'put ''aGlzLl9kaXNwbGF5ZWQ9aCx0aGlzLmVtaXRDaGFuZ2UoKSl9cmVmcmVzaCgpe3RoaXMuc21hcnQmJnRoaXMuX2ZpbHRlckl0ZW1zKCl9Z2V0IGRpc3BsYXllZCgpe3JldHVybiB0aGlzLl9kaXNwbGF5ZWR9ZW1pdENoYW5nZSgpe3RoaXMuX2NoYW5nZS5uZXh0KHRoaXMuZGlzcGxheWVkKX1n''@;'; + put 'put ''ZXQgY2hhbmdlKCl7cmV0dXJuIHRoaXMuX2NoYW5nZS5hc09ic2VydmFibGUoKX1lbWl0QWxsQ2hhbmdlcyhoKXt0aGlzLl9hbGxDaGFuZ2VzLm5leHQoaCl9Z2V0IGFsbENoYW5nZXMoKXtyZXR1cm4gdGhpcy5fYWxsQ2hhbmdlcy5hc09ic2VydmFibGUoKX1nZXQgdW5pbml0aWFsaXplZCgp''@;'; + put 'put ''e3JldHVybiF0aGlzLl9hbGx9X2ZpbHRlckl0ZW1zKCl7dGhpcy51bmluaXRpYWxpemVkfHwodGhpcy5fZmlsdGVyZWQ9dGhpcy5fZmlsdGVycy5oYXNBY3RpdmVGaWx0ZXJzKCk/dGhpcy5fYWxsLmZpbHRlcihoPT50aGlzLl9maWx0ZXJzLmFjY2VwdHMoaCkpOnRoaXMuX2FsbC5zbGljZSgp''@;'; + put 'put ''LHRoaXMuX3BhZ2UudG90YWxJdGVtcz10aGlzLl9maWx0ZXJlZC5sZW5ndGgsdGhpcy5fc29ydEl0ZW1zKCkpfV9zb3J0SXRlbXMoKXt0aGlzLnVuaW5pdGlhbGl6ZWR8fCh0aGlzLl9zb3J0LmNvbXBhcmF0b3ImJnRoaXMuX2ZpbHRlcmVkLnNvcnQoKGgsdik9PnRoaXMuX3NvcnQuY29tcGFy''@;'; + put 'put ''ZShoLHYpKSx0aGlzLl9jaGFuZ2VQYWdlKCkpfV9jaGFuZ2VQYWdlKCl7dGhpcy51bmluaXRpYWxpemVkfHx0aGlzLl9wYWdlLmFjdGl2YXRlZCYmMD09PXRoaXMuX3BhZ2Uuc2l6ZXx8KHRoaXMuX2Rpc3BsYXllZD10aGlzLl9wYWdlLnNpemU+MD90aGlzLl9maWx0ZXJlZC5zbGljZSh0aGlz''@;'; + put 'put ''Ll9wYWdlLmZpcnN0SXRlbSx0aGlzLl9wYWdlLmxhc3RJdGVtKzEpOnRoaXMuX2ZpbHRlcmVkLHRoaXMuZW1pdENoYW5nZSgpKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoQ2kodnYpLENpKEFxKSxDaShodykpfSxkLlx1MDI3NXByb3Y9QWkoe3Rv''@;'; + put 'put ''a2VuOmQsZmFjdG9yeTpkLlx1MDI3NWZhY30pLGR9KSgpLGpMPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2LHksQyl7dGhpcy50ZW1wbGF0ZT1oLHRoaXMuZGlmZmVycz12LHRoaXMuaXRlbXM9eSx0aGlzLnZjcj1DLHRoaXMuZGlmZmVyPW51bGwsdGhpcy5zdWJzY3JpcHRpb25zPVtd''@;'; + put 'put ''LHkuc21hcnRlblVwKCksdGhpcy5pdGVyYWJsZVByb3h5PW5ldyBFcyh0aGlzLnZjcix0aGlzLnRlbXBsYXRlLHRoaXMuZGlmZmVycyksdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goeS5jaGFuZ2Uuc3Vic2NyaWJlKEk9Pnt0aGlzLml0ZXJhYmxlUHJveHkubmdGb3JPZj1JLHRoaXMuaXRlcmFi''@;'; + put 'put ''bGVQcm94eS5uZ0RvQ2hlY2soKX0pKX1zZXQgcmF3SXRlbXMoaCl7dGhpcy5fcmF3SXRlbXM9aHx8W119c2V0IHRyYWNrQnkoaCl7dGhpcy5pdGVtcy50cmFja0J5PWgsdGhpcy5pdGVyYWJsZVByb3h5Lm5nRm9yVHJhY2tCeT1ofW5nRG9DaGVjaygpe3RoaXMuZGlmZmVyfHwodGhpcy5kaWZm''@;'; + put 'put ''ZXI9dGhpcy5kaWZmZXJzLmZpbmQodGhpcy5fcmF3SXRlbXMpLmNyZWF0ZSh0aGlzLml0ZXJhYmxlUHJveHkubmdGb3JUcmFja0J5KSksdGhpcy5kaWZmZXImJnRoaXMuZGlmZmVyLmRpZmYodGhpcy5fcmF3SXRlbXMpJiYodGhpcy5pdGVtcy5hbGw9dGhpcy5fcmF3SXRlbXMpfW5nT25EZXN0''@;'; + put 'put ''cm95KCl7dGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goaD0+aC51bnN1YnNjcmliZSgpKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoS3QocXIpLEt0KEJBKSxLdChwdyksS3QoVWkpKX0sZC5cdTAyNzVkaXI9V2koe3R5cGU6ZCxzZWxlY3RvcnM6''@;'; + put 'put ''W1siIiwiY2xyRGdJdGVtcyIsIiIsImNsckRnSXRlbXNPZiIsIiJdXSxpbnB1dHM6e3Jhd0l0ZW1zOlsiY2xyRGdJdGVtc09mIiwicmF3SXRlbXMiXSx0cmFja0J5OlsiY2xyRGdJdGVtc1RyYWNrQnkiLCJ0cmFja0J5Il19fSksZH0pKCksamZlPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3Io''@;'; + put 'put ''aCl7dGhpcy5pdGVtcz1ofWdldCBlbXB0eURhdGFncmlkKCl7cmV0dXJuISh0aGlzLml0ZW1zLmxvYWRpbmd8fHRoaXMuaXRlbXMuZGlzcGxheWVkJiYwIT09dGhpcy5pdGVtcy5kaXNwbGF5ZWQubGVuZ3RoKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8''@;'; + put 'put ''ZCkoS3QocHcpKX0sZC5cdTAyNzVjbXA9VGkoe3R5cGU6ZCxzZWxlY3RvcnM6W1siY2xyLWRnLXBsYWNlaG9sZGVyIl1dLGhvc3RWYXJzOjIsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGgsdil7MiZoJiZGaSgiZGF0YWdyaWQtcGxhY2Vob2xkZXItY29udGFpbmVyIiwhMCl9LG5nQ29udGVudFNl''@;'; + put 'put ''bGVjdG9yczpuYSxkZWNsczo0LHZhcnM6NCxjb25zdHM6W1sicm9sZSIsInJvdyIsMSwiZGF0YWdyaWQtcGxhY2Vob2xkZXIiXSxbImNsYXNzIiwiZGF0YWdyaWQtcGxhY2Vob2xkZXItaW1hZ2UiLDQsIm5nSWYiXSxbInJvbGUiLCJncmlkY2VsbCIsMSwiZGF0YWdyaWQtcGxhY2Vob2xkZXIt''@;'; + put 'put ''Y29udGVudCJdLFs0LCJuZ0lmIl0sWzEsImRhdGFncmlkLXBsYWNlaG9sZGVyLWltYWdlIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGgsdil7MSZoJiYoSzAoKSxydCgwLCJkaXYiLDApLHJuKDEsZGNlLDEsMCwiZGl2IiwxKSxydCgyLCJzcGFuIiwyKSxybigzLHBjZSwxLDAsIm5nLWNvbnRlbnQi''@;'; + put 'put ''LDMpLGx0KCkoKSksMiZoJiYoRmkoImRhdGFncmlkLWVtcHR5Iix2LmVtcHR5RGF0YWdyaWQpLHV0KDEpLFR0KCJuZ0lmIix2LmVtcHR5RGF0YWdyaWQpLHV0KDIpLFR0KCJuZ0lmIix2LmVtcHR5RGF0YWdyaWQpKX0sZGVwZW5kZW5jaWVzOltOb10sZW5jYXBzdWxhdGlvbjoyfSksZH0pKCks''@;'; + put 'put ''WmZlPSgoKT0+e2NsYXNzIGR7c2V0IHRyaWdnZXJFbChoKXt0aGlzLl90cmlnZ2VyRWw9aH1mb2N1c1RyaWdnZXIoKXt0aGlzLl90cmlnZ2VyRWwmJnRoaXMuX3RyaWdnZXJFbC5mb2N1cygpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAy''@;'; + put 'put ''NzVwcm92PUFpKHt0b2tlbjpkLGZhY3Rvcnk6ZC5cdTAyNzVmYWN9KSxkfSkoKSx6ZmU9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3Rvcigpe3RoaXMuX2lkPW5ldyAkZX1zZXRJZChoKXt0aGlzLl9pZC5uZXh0KGgpfWdldCBpZCgpe3JldHVybiB0aGlzLl9pZC5hc09ic2VydmFibGUoKX19cmV0''@;'; + put 'put ''dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1ZmFjfSksZH0pKCkseXE9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYseSxDLEksaix1ZSl7dGhpcy50b2dnbGVTZXJ2aWNlPWgs''@;'; + put 'put ''dGhpcy5lbD12LHRoaXMuY29tbW9uU3RyaW5ncz15LHRoaXMuc2lnbnBvc3RJZFNlcnZpY2U9Qyx0aGlzLnNpZ25wb3N0Rm9jdXNNYW5hZ2VyPUksdGhpcy5wbGF0Zm9ybUlkPXVlLHRoaXMuc3Vic2NyaXB0aW9ucz1bXSx0aGlzLmRvY3VtZW50PWp9bmdPbkluaXQoKXt0aGlzLnNpZ25wb3N0''@;'; + put 'put ''Rm9jdXNNYW5hZ2VyLnRyaWdnZXJFbD10aGlzLmVsLm5hdGl2ZUVsZW1lbnQsdGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy50b2dnbGVTZXJ2aWNlLm9wZW5DaGFuZ2Uuc3Vic2NyaWJlKGg9Pnt0aGlzLmFyaWFFeHBhbmRlZD1oO2NvbnN0IHY9dGhpcy5pc09wZW47dGhpcy5pc09wZW49''@;'; + put 'put ''aCwhdGhpcy5pc09wZW4mJnYmJnRoaXMuZm9jdXNPbkNsb3NlKCl9KSx0aGlzLnNpZ25wb3N0SWRTZXJ2aWNlLmlkLnN1YnNjcmliZShoPT50aGlzLmFyaWFDb250cm9sPWgpKSx0aGlzLmFkZERlZmF1bHRBcmlhTGFiZWwodGhpcy5lbC5uYXRpdmVFbGVtZW50KX1hZGREZWZhdWx0QXJpYUxh''@;'; + put 'put ''YmVsKGgpe2guaGFzQXR0cmlidXRlKCJhcmlhLWxhYmVsIil8fGguc2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsIix0aGlzLmNvbW1vblN0cmluZ3Mua2V5cy5zaWducG9zdFRvZ2dsZSl9Zm9jdXNPbkNsb3NlKCl7IVNsKHRoaXMucGxhdGZvcm1JZCl8fCF0aGlzLmlzT3BlbiYmdGhpcy5kb2N1''@;'; + put 'put ''bWVudC5hY3RpdmVFbGVtZW50PT09dGhpcy5kb2N1bWVudC5ib2R5JiZ0aGlzLnNpZ25wb3N0Rm9jdXNNYW5hZ2VyLmZvY3VzVHJpZ2dlcigpfW5nT25EZXN0cm95KCl7dGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goaD0+aC51bnN1YnNjcmliZSgpKX1vblNpZ25wb3N0VHJpZ2dlckNsaWNr''@;'; + put 'put ''KGgpe3RoaXMudG9nZ2xlU2VydmljZS50b2dnbGVXaXRoRXZlbnQoaCl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKEt0KHpzKSxLdChibyksS3QobnMpLEt0KHpmZSksS3QoWmZlKSxLdChwcyksS3QoTDIpKX0sZC5cdTAyNzVkaXI9V2koe3R5cGU6''@;'; + put 'put ''ZCxzZWxlY3RvcnM6W1siIiwiY2xyU2lnbnBvc3RUcmlnZ2VyIiwiIl1dLGhvc3RBdHRyczpbMSwic2lnbnBvc3QtdHJpZ2dlciJdLGhvc3RWYXJzOjQsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGgsdil7MSZoJiZHbigiY2xpY2siLGZ1bmN0aW9uKEMpe3JldHVybiB2Lm9uU2lnbnBvc3RUcmln''@;'; + put 'put ''Z2VyQ2xpY2soQyl9KSwyJmgmJihHaSgiYXJpYS1leHBhbmRlZCIsdi5hcmlhRXhwYW5kZWQpKCJhcmlhLWNvbnRyb2xzIix2LmFyaWFDb250cm9sKSxGaSgiYWN0aXZlIix2LmlzT3BlbikpfX0pLGR9KSgpLEdmZT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgpe3RoaXMuY29tbW9uU3Ry''@;'; + put 'put ''aW5ncz1oLHRoaXMudXNlQ3VzdG9tVHJpZ2dlcj0hMX1zZXQgY3VzdG9tVHJpZ2dlcihoKXt0aGlzLnVzZUN1c3RvbVRyaWdnZXI9ISFofX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShLdChucykpfSxkLlx1MDI3NWNtcD1UaSh7dHlwZTpkLHNlbGVj''@;'; + put 'put ''dG9yczpbWyJjbHItc2lnbnBvc3QiXV0sY29udGVudFF1ZXJpZXM6ZnVuY3Rpb24oaCx2LHkpe2lmKDEmaCYmeG8oeSx5cSw1KSwyJmgpe2xldCBDO0hpKEM9JGkoKSkmJih2LmN1c3RvbVRyaWdnZXI9Qy5maXJzdCl9fSxob3N0VmFyczoyLGhvc3RCaW5kaW5nczpmdW5jdGlvbihoLHYpezIm''@;'; + put 'put ''aCYmRmkoInNpZ25wb3N0IiwhMCl9LGZlYXR1cmVzOltobyhbenMsWmZlLHtwcm92aWRlOnRmLHVzZUV4aXN0aW5nOmJvfSx6ZmVdKV0sbmdDb250ZW50U2VsZWN0b3JzOm5hLGRlY2xzOjIsdmFyczoxLGNvbnN0czpbWzQsIm5nSWYiXSxbInR5cGUiLCJidXR0b24iLCJjbHJTaWducG9zdFRy''@;'; + put 'put ''aWdnZXIiLCIiLDEsInNpZ25wb3N0LWFjdGlvbiIsImJ0biIsImJ0bi1zbWFsbCIsImJ0bi1saW5rIl0sWyJzaGFwZSIsImluZm8tY2lyY2xlIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGgsdil7MSZoJiYoSzAoKSxybigwLGF2LDMsMSwibmctY29udGFpbmVyIiwwKSxOaSgxKSksMiZoJiZUdCgi''@;'; + put 'put ''bmdJZiIsIXYudXNlQ3VzdG9tVHJpZ2dlcil9LGRlcGVuZGVuY2llczpbTm8seXEsWm9dLGVuY2Fwc3VsYXRpb246Mn0pLGR9KSgpLFdmZT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKCl7dGhpcy5fZHluYW1pYz0hMX1uZ0FmdGVyVmlld0luaXQoKXt0aGlzLmNlbGxWaWV3PXRoaXMudGVt''@;'; + put 'put ''cGxhdGVSZWYuY3JlYXRlRW1iZWRkZWRWaWV3KG51bGwpfW5nT25EZXN0cm95KCl7dGhpcy5jZWxsVmlldy5kZXN0cm95KCl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1MDI3NWNtcD1UaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJkZy13cmFw''@;'; + put 'put ''cGVkLWNlbGwiXV0sdmlld1F1ZXJ5OmZ1bmN0aW9uKGgsdil7aWYoMSZoJiZ2byhUaiw1KSwyJmgpe2xldCB5O0hpKHk9JGkoKSkmJih2LnRlbXBsYXRlUmVmPXkuZmlyc3QpfX0sbmdDb250ZW50U2VsZWN0b3JzOm5hLGRlY2xzOjIsdmFyczowLGNvbnN0czpbWyJjZWxsUG9ydGFsIiwiIl1d''@;'; + put 'put ''LHRlbXBsYXRlOmZ1bmN0aW9uKGgsdil7MSZoJiYoSzAoKSxybigwLGIkLDEsMCwibmctdGVtcGxhdGUiLG51bGwsMCxacikpfSxlbmNhcHN1bGF0aW9uOjJ9KSxkfSkoKSxndz0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgpe3RoaXMudmNyPWh9bmdPbkluaXQoKXt0aGlzLndyYXBwZWRJ''@;'; + put 'put ''bmplY3Rvcj1uZXcgYnQoV2ZlLHRoaXMudmNyKX1nZXQgX3ZpZXcoKXtyZXR1cm4gdGhpcy53cmFwcGVkSW5qZWN0b3IuZ2V0KFdmZSx0aGlzLnZjcikuY2VsbFZpZXd9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKEt0KFVpKSl9LGQuXHUwMjc1Y21w''@;'; + put 'put ''PVRpKHt0eXBlOmQsc2VsZWN0b3JzOltbImNsci1kZy1jZWxsIl1dLGNvbnRlbnRRdWVyaWVzOmZ1bmN0aW9uKGgsdix5KXtpZigxJmgmJnhvKHksR2ZlLDQpLDImaCl7bGV0IEM7SGkoQz0kaSgpKSYmKHYuc2lnbnBvc3Q9Qyl9fSxob3N0QXR0cnM6WyJyb2xlIiwiZ3JpZGNlbGwiXSxob3N0''@;'; + put 'put ''VmFyczo0LGhvc3RCaW5kaW5nczpmdW5jdGlvbihoLHYpezImaCYmRmkoImRhdGFncmlkLWNlbGwiLCEwKSgiZGF0YWdyaWQtc2lnbnBvc3QtdHJpZ2dlciIsdi5zaWducG9zdC5sZW5ndGg+MCl9LG5nQ29udGVudFNlbGVjdG9yczpuYSxkZWNsczoxLHZhcnM6MCx0ZW1wbGF0ZTpmdW5jdGlv''@;'; + put 'put ''bihoLHYpezEmaCYmKEswKCksTmkoMCkpfSxlbmNhcHN1bGF0aW9uOjJ9KSxkfSkoKSxveWU9MCxzWj0oKCk9PntjbGFzcyBkIGV4dGVuZHMgcjF7Y29uc3RydWN0b3IoKXtzdXBlcigpLHRoaXMuZXhwYW5kYWJsZUlkPSIiLHRoaXMuX3JlcGxhY2U9bmV3IGNzKCExKSx0aGlzLl9hbmltYXRl''@;'; + put 'put ''PW5ldyAkZSxveWUrKyx0aGlzLmV4cGFuZGFibGVJZD0iY2xyLWRnLWV4cGFuZGFibGUtcm93LSIrb3llfWdldCBleHBhbmRlZCgpe3JldHVybiB0aGlzLl9leHBhbmRlZH1zZXQgZXhwYW5kZWQoaCl7KGg9ISFoKSE9PXRoaXMuX2V4cGFuZGVkJiYodGhpcy5fZXhwYW5kZWQ9aCx0aGlzLl9h''@;'; + put 'put ''bmltYXRlLm5leHQoKSx0aGlzLl9leHBhbmRDaGFuZ2UubmV4dChoKSl9bG9hZGluZ1N0YXRlQ2hhbmdlKGgpe3N1cGVyLmxvYWRpbmdTdGF0ZUNoYW5nZShoKSxoIT09Z2kuTE9BRElORyYmdGhpcy5fYW5pbWF0ZS5uZXh0KCl9Z2V0IHJlcGxhY2UoKXtyZXR1cm4gdGhpcy5fcmVwbGFjZS5h''@;'; + put 'put ''c09ic2VydmFibGUoKX1zZXRSZXBsYWNlKGgpe3RoaXMuX3JlcGxhY2UubmV4dChoKX1nZXQgYW5pbWF0ZSgpe3JldHVybiB0aGlzLl9hbmltYXRlLmFzT2JzZXJ2YWJsZSgpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVwcm92PUFp''@;'; + put 'put ''KHt0b2tlbjpkLGZhY3Rvcnk6ZC5cdTAyNzVmYWN9KSxkfSkoKTt2YXIgbXc9KCgpPT4oZnVuY3Rpb24oZCl7ZFtkLkRJU1BMQVk9MF09IkRJU1BMQVkiLGRbZC5DQUxDVUxBVEU9MV09IkNBTENVTEFURSJ9KG13fHwobXc9e30pKSxtdykpKCksV3M9KCgpPT4oZnVuY3Rpb24oZCl7ZFtkLk5v''@;'; + put 'put ''bmU9MF09Ik5vbmUiLGRbZC5TaW5nbGU9MV09IlNpbmdsZSIsZFtkLk11bHRpPTJdPSJNdWx0aSJ9KFdzfHwoV3M9e30pKSxXcykpKCk7bGV0IFlmZT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKCl7dGhpcy5fZHluYW1pYz0hMX1uZ0FmdGVyVmlld0luaXQoKXt0aGlzLnJvd1ZpZXc9dGhp''@;'; + put 'put ''cy50ZW1wbGF0ZVJlZi5jcmVhdGVFbWJlZGRlZFZpZXcobnVsbCl9bmdPbkRlc3Ryb3koKXt0aGlzLnJvd1ZpZXcuZGVzdHJveSgpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVjbXA9VGkoe3R5cGU6ZCxzZWxlY3RvcnM6W1siZGct''@;'; + put 'put ''d3JhcHBlZC1yb3ciXV0sdmlld1F1ZXJ5OmZ1bmN0aW9uKGgsdil7aWYoMSZoJiZ2byh0Myw1KSwyJmgpe2xldCB5O0hpKHk9JGkoKSkmJih2LnRlbXBsYXRlUmVmPXkuZmlyc3QpfX0sbmdDb250ZW50U2VsZWN0b3JzOm5hLGRlY2xzOjIsdmFyczowLGNvbnN0czpbWyJyb3dQb3J0YWwiLCIi''@;'; + put 'put ''XV0sdGVtcGxhdGU6ZnVuY3Rpb24oaCx2KXsxJmgmJihLMCgpLHJuKDAsZ2NlLDEsMCwibmctdGVtcGxhdGUiLG51bGwsMCxacikpfSxlbmNhcHN1bGF0aW9uOjJ9KSxkfSkoKSxfT2U9MCx1Wj0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgsdix5KXt0aGlzLl9pdGVtcz1oLHRoaXMuX2Zp''@;'; + put 'put ''bHRlcnM9dix0aGlzLl96b25lPXksdGhpcy5wcmVzZXJ2ZVNlbGVjdGlvbj0hMSx0aGlzLnByZXZTZWxlY3Rpb25SZWZzPVtdLHRoaXMubG9ja2VkUmVmcz1bXSx0aGlzLl9zZWxlY3Rpb25UeXBlPVdzLk5vbmUsdGhpcy5yb3dTZWxlY3Rpb25Nb2RlPSExLHRoaXMuc3Vic2NyaXB0aW9ucz1b''@;'; + put 'put ''XSx0aGlzLnNoaWZ0UHJlc3NlZD0hMSx0aGlzLnZhbHVlQ29sbGVjdG9yPW5ldyAkZSx0aGlzLl9jaGFuZ2U9bmV3ICRlLHRoaXMuaWQ9ImNsci1kZy1zZWxlY3Rpb24iK19PZSsrLHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMuX2ZpbHRlcnMuY2hhbmdlLnN1YnNjcmliZSgoKT0+eyF0''@;'; + put 'put ''aGlzLl9zZWxlY3RhYmxlfHx0aGlzLnByZXNlcnZlU2VsZWN0aW9ufHx0aGlzLmNsZWFyU2VsZWN0aW9uKCl9KSksdGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy5faXRlbXMuYWxsQ2hhbmdlcy5zdWJzY3JpYmUoQz0+e2NvbnN0IEk9W107c3dpdGNoKHRoaXMuc2VsZWN0aW9uVHlwZSl7''@;'; + put 'put ''Y2FzZSBXcy5Ob25lOmJyZWFrO2Nhc2UgV3MuU2luZ2xlOntsZXQgajtjb25zdCB1ZT10aGlzLl9pdGVtcy50cmFja0J5O2xldCBfZT0hMTtpZih0aGlzLmN1cnJlbnRTaW5nbGUmJiF0aGlzLnByZXZTaW5nbGVTZWxlY3Rpb25SZWYmJnRoaXMuX2l0ZW1zLmFsbCYmdGhpcy5faXRlbXMudHJh''@;'; + put 'put ''Y2tCeSl7Y29uc3QgQmU9dGhpcy5faXRlbXMuYWxsLmZpbmRJbmRleChOZT0+TmU9PT10aGlzLmN1cnJlbnRTaW5nbGUpO3RoaXMucHJldlNpbmdsZVNlbGVjdGlvblJlZj10aGlzLl9pdGVtcy50cmFja0J5KEJlLHRoaXMuY3VycmVudFNpbmdsZSl9Qy5mb3JFYWNoKChCZSxOZSk9Pntjb25z''@;'; + put 'put ''dCBLZT11ZShOZSxCZSk7dGhpcy5wcmV2U2luZ2xlU2VsZWN0aW9uUmVmPT09S2UmJihqPUJlLF9lPSEwKSx0aGlzLmxvY2tlZFJlZnMuaW5kZXhPZihLZSk+LTEmJkkucHVzaChLZSl9KSx0aGlzLl9pdGVtcy5zbWFydCYmIWomJihfZT0hMCksc2V0VGltZW91dCgoKT0+e19lJiYodGhpcy5j''@;'; + put 'put ''dXJyZW50U2luZ2xlPWopfSwwKTticmVha31jYXNlIFdzLk11bHRpOntsZXQgaj10aGlzLmN1cnJlbnQuc2xpY2UoKTtjb25zdCB1ZT10aGlzLl9pdGVtcy50cmFja0J5O2xldCBfZT0hMTt0aGlzLmN1cnJlbnQubGVuZ3RoPjAmJnRoaXMucHJldlNlbGVjdGlvblJlZnMubGVuZ3RoIT09dGhp''@;'; + put 'put ''cy5jdXJyZW50Lmxlbmd0aCYmdGhpcy5faXRlbXMuYWxsJiZ0aGlzLl9pdGVtcy50cmFja0J5JiYodGhpcy5wcmV2U2VsZWN0aW9uUmVmcz1bXSx0aGlzLmN1cnJlbnQuZm9yRWFjaChCZT0+e2NvbnN0IE5lPXRoaXMuX2l0ZW1zLmFsbC5maW5kSW5kZXgoS2U9PktlPT09QmUpO3RoaXMucHJl''@;'; + put 'put ''dlNlbGVjdGlvblJlZnMucHVzaCh0aGlzLl9pdGVtcy50cmFja0J5KE5lLEJlKSl9KSksQy5mb3JFYWNoKChCZSxOZSk9Pntjb25zdCBLZT11ZShOZSxCZSk7dGhpcy5sb2NrZWRSZWZzLmluZGV4T2YoS2UpPi0xJiZJLnB1c2goS2UpfSksai5sZW5ndGg+MCYmKEMuZm9yRWFjaCgoQmUsTmUp''@;'; + put 'put ''PT57Y29uc3QgS2U9dWUoTmUsQmUpLGR0PXRoaXMucHJldlNlbGVjdGlvblJlZnMuaW5kZXhPZihLZSk7ZHQ+LTEmJihqW2R0XT1CZSxfZT0hMCl9KSx0aGlzLl9pdGVtcy5zbWFydCYmKGo9ai5maWx0ZXIoQmU9PkMuaW5kZXhPZihCZSk+LTEpLHRoaXMuY3VycmVudC5sZW5ndGghPT1qLmxl''@;'; + put 'put ''bmd0aCYmKF9lPSEwKSksc2V0VGltZW91dCgoKT0+e19lJiYodGhpcy5jdXJyZW50PWopfSwwKSk7YnJlYWt9fXRoaXMubG9ja2VkUmVmcz1JfSkpLHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMudmFsdWVDb2xsZWN0b3IucGlwZShURCgwKSkuc3Vic2NyaWJlKCgpPT50aGlzLmVtaXRD''@;'; + put 'put ''aGFuZ2UoKSkpfWNsZWFyU2VsZWN0aW9uKCl7dGhpcy5fY3VycmVudD1bXSx0aGlzLnByZXZTZWxlY3Rpb25SZWZzPVtdLHRoaXMucHJldlNpbmdsZVNlbGVjdGlvblJlZj1udWxsLHRoaXMuX2N1cnJlbnRTaW5nbGU9bnVsbCx0aGlzLmVtaXRDaGFuZ2UoKX1nZXQgc2VsZWN0aW9uVHlwZSgp''@;'; + put 'put ''e3JldHVybiB0aGlzLl9zZWxlY3Rpb25UeXBlfXNldCBzZWxlY3Rpb25UeXBlKGgpe2ghPT10aGlzLnNlbGVjdGlvblR5cGUmJih0aGlzLl9zZWxlY3Rpb25UeXBlPWgsaD09PVdzLk5vbmU/ZGVsZXRlIHRoaXMuY3VycmVudDp0aGlzLnVwZGF0ZUN1cnJlbnQoW10sITEpKX1nZXQgX3NlbGVj''@;'; + put 'put ''dGFibGUoKXtyZXR1cm4gdGhpcy5fc2VsZWN0aW9uVHlwZT09PVdzLk11bHRpfHx0aGlzLl9zZWxlY3Rpb25UeXBlPT09V3MuU2luZ2xlfWRlc3Ryb3koKXt0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChoPT5oLnVuc3Vic2NyaWJlKCkpfWdldCBjdXJyZW50U2luZ2xlKCl7cmV0dXJuIHRo''@;'; + put 'put ''aXMuX2N1cnJlbnRTaW5nbGV9c2V0IGN1cnJlbnRTaW5nbGUoaCl7aWYoaCE9PXRoaXMuX2N1cnJlbnRTaW5nbGUpe2lmKHRoaXMuX2N1cnJlbnRTaW5nbGU9aCx0aGlzLl9pdGVtcy5hbGwmJnRoaXMuX2l0ZW1zLnRyYWNrQnkmJmgpe2NvbnN0IHY9dGhpcy5faXRlbXMuYWxsLmZpbmRJbmRl''@;'; + put 'put ''eCh5PT55PT09aCk7dGhpcy5wcmV2U2luZ2xlU2VsZWN0aW9uUmVmPXRoaXMuX2l0ZW1zLnRyYWNrQnkodixoKX10aGlzLmVtaXRDaGFuZ2UoKX19Z2V0IGN1cnJlbnQoKXtyZXR1cm4gdGhpcy5fY3VycmVudH1zZXQgY3VycmVudChoKXt0aGlzLnVwZGF0ZUN1cnJlbnQoaCwhMCl9dXBkYXRl''@;'; + put 'put ''Q3VycmVudChoLHYpe3RoaXMuX2N1cnJlbnQ9aCx2JiZ0aGlzLnZhbHVlQ29sbGVjdG9yLm5leHQoaCl9ZW1pdENoYW5nZSgpe3RoaXMuX3NlbGVjdGlvblR5cGU9PT1Xcy5TaW5nbGU/dGhpcy5fY2hhbmdlLm5leHQodGhpcy5jdXJyZW50U2luZ2xlKTp0aGlzLl9zZWxlY3Rpb25UeXBlPT09''@;'; + put 'put ''V3MuTXVsdGkmJnRoaXMuX2NoYW5nZS5uZXh0KHRoaXMuY3VycmVudCl9Z2V0IGNoYW5nZSgpe3JldHVybiB0aGlzLl9jaGFuZ2UuYXNPYnNlcnZhYmxlKCl9aXNTZWxlY3RlZChoKXtyZXR1cm4gdGhpcy5fc2VsZWN0aW9uVHlwZT09PVdzLlNpbmdsZT90aGlzLmN1cnJlbnRTaW5nbGU9PT1o''@;'; + put 'put ''OnRoaXMuX3NlbGVjdGlvblR5cGU9PT1Xcy5NdWx0aSYmdGhpcy5jdXJyZW50LmluZGV4T2YoaCk+PTB9c2VsZWN0SXRlbShoKXtpZih0aGlzLmN1cnJlbnQ9dGhpcy5jdXJyZW50LmNvbmNhdChoKSx0aGlzLl9pdGVtcy50cmFja0J5JiZ0aGlzLl9pdGVtcy5hbGwpe2NvbnN0IHY9dGhpcy5f''@;'; + put 'put ''aXRlbXMuYWxsLmZpbmRJbmRleCh5PT55PT09aCk7dGhpcy5wcmV2U2VsZWN0aW9uUmVmcy5wdXNoKHRoaXMuX2l0ZW1zLnRyYWNrQnkodixoKSl9fWRlc2VsZWN0SXRlbShoKXtpZih0aGlzLmN1cnJlbnQ9dGhpcy5jdXJyZW50LnNsaWNlKDAsaCkuY29uY2F0KHRoaXMuY3VycmVudC5zbGlj''@;'; + put 'put ''ZShoKzEpKSx0aGlzLl9pdGVtcy50cmFja0J5JiZoPHRoaXMucHJldlNlbGVjdGlvblJlZnMubGVuZ3RoKXtjb25zdCB2PXRoaXMucHJldlNlbGVjdGlvblJlZnMuc3BsaWNlKGgsMSk7dGhpcy5sb2NrZWRSZWZzPXRoaXMubG9ja2VkUmVmcy5maWx0ZXIoeT0+eSE9PXZbMF0pfX1zZXRTZWxl''@;'; + put 'put ''Y3RlZChoLHYpe2NvbnN0IHk9dGhpcy5jdXJyZW50P3RoaXMuY3VycmVudC5pbmRleE9mKGgpOi0xO3N3aXRjaCh0aGlzLl9zZWxlY3Rpb25UeXBlKXtjYXNlIFdzLk5vbmU6Y2FzZSBXcy5TaW5nbGU6YnJlYWs7Y2FzZSBXcy5NdWx0aTp5Pj0wJiYhdj90aGlzLmRlc2VsZWN0SXRlbSh5KTp5''@;'; + put 'put ''PDAmJnYmJnRoaXMuc2VsZWN0SXRlbShoKX19aXNBbGxTZWxlY3RlZCgpe2lmKHRoaXMuX3NlbGVjdGlvblR5cGUhPT1Xcy5NdWx0aXx8IXRoaXMuX2l0ZW1zLmRpc3BsYXllZClyZXR1cm4hMTtjb25zdCBoPXRoaXMuX2l0ZW1zLmRpc3BsYXllZC5maWx0ZXIoQz0+ITE9PT10aGlzLmlzTG9j''@;'; + put 'put ''a2VkKEMpKTtyZXR1cm4hKGgubGVuZ3RoPDEpJiZoLmZpbHRlcihDPT50aGlzLmN1cnJlbnQuaW5kZXhPZihDKT4tMSkubGVuZ3RoPT09aC5sZW5ndGh9Y2FuSXRCZUxvY2tlZCgpe3JldHVybiB0aGlzLl9zZWxlY3Rpb25UeXBlIT09V3MuTm9uZSYmQXJyYXkuaXNBcnJheSh0aGlzLl9pdGVt''@;'; + put 'put ''cy5hbGwpfWxvY2tJdGVtKGgsdil7aWYodGhpcy5jYW5JdEJlTG9ja2VkKCkpe2NvbnN0IHk9dGhpcy5faXRlbXMudHJhY2tCeSh0aGlzLl9pdGVtcy5hbGwuZmluZEluZGV4KEM9PkM9PT1oKSxoKTshMD09PXY/dGhpcy5sb2NrZWRSZWZzLnB1c2goeSk6dGhpcy5sb2NrZWRSZWZzPXRoaXMu''@;'; + put 'put ''bG9ja2VkUmVmcy5maWx0ZXIoQz0+eSE9PUMpfX1pc0xvY2tlZChoKXtpZih0aGlzLmNhbkl0QmVMb2NrZWQoKSl7Y29uc3Qgdj10aGlzLl9pdGVtcy50cmFja0J5KHRoaXMuX2l0ZW1zLmFsbC5maW5kSW5kZXgoeT0+eT09PWgpLGgpO3JldHVybiB0aGlzLmxvY2tlZFJlZnMuaW5kZXhPZih2''@;'; + put 'put ''KT4tMX1yZXR1cm4hMX10b2dnbGVBbGwoKXt0aGlzLl9zZWxlY3Rpb25UeXBlPT09V3MuTm9uZXx8dGhpcy5fc2VsZWN0aW9uVHlwZT09PVdzLlNpbmdsZXx8KHRoaXMuaXNBbGxTZWxlY3RlZCgpP3RoaXMuX2l0ZW1zLmRpc3BsYXllZC5mb3JFYWNoKGg9Pntjb25zdCB2PXRoaXMuY3VycmVu''@;'; + put 'put ''dC5pbmRleE9mKGgpO3Y+LTEmJiExPT09dGhpcy5pc0xvY2tlZChoKSYmdGhpcy5kZXNlbGVjdEl0ZW0odil9KTp0aGlzLl9pdGVtcy5kaXNwbGF5ZWQuZm9yRWFjaChoPT57dGhpcy5jdXJyZW50LmluZGV4T2YoaCk8MCYmITE9PT10aGlzLmlzTG9ja2VkKGgpJiZ0aGlzLnNlbGVjdEl0ZW0o''@;'; + put 'put ''aCl9KSl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKENpKHB3KSxDaSh2diksQ2koX2wpKX0sZC5cdTAyNzVwcm92PUFpKHt0b2tlbjpkLGZhY3Rvcnk6ZC5cdTAyNzVmYWN9KSxkfSkoKSxVZmU9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoKXt0''@;'; + put 'put ''aGlzLnN1YnNjcmlwdGlvbnM9W10sdGhpcy5fdmlldz1uZXcgY3MobXcuRElTUExBWSksdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goaC5maWx0ZXJSZW5kZXJTdGVwcyhoNC5DQUxDVUxBVEVfTU9ERV9PTikuc3Vic2NyaWJlKCgpPT50aGlzLl92aWV3Lm5leHQobXcuQ0FMQ1VMQVRFKSkpLHRo''@;'; + put 'put ''aXMuc3Vic2NyaXB0aW9ucy5wdXNoKGguZmlsdGVyUmVuZGVyU3RlcHMoaDQuQ0FMQ1VMQVRFX01PREVfT0ZGKS5zdWJzY3JpYmUoKCk9PnRoaXMuX3ZpZXcubmV4dChtdy5ESVNQTEFZKSkpfWdldCB2aWV3KCl7cmV0dXJuIHRoaXMuX3ZpZXcuYXNPYnNlcnZhYmxlKCl9bmdPbkRlc3Ryb3ko''@;'; + put 'put ''KXt0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChoPT5oLnVuc3Vic2NyaWJlKCkpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShDaShwUykpfSxkLlx1MDI3NXByb3Y9QWkoe3Rva2VuOmQsZmFjdG9yeTpkLlx1MDI3NWZhY30pLGR9KSgpLHdxPTAs''@;'; + put 'put ''bVM9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYseSxDLEksaix1ZSxfZSxCZSxOZSxLZSxkdCl7dGhpcy5zZWxlY3Rpb249aCx0aGlzLnJvd0FjdGlvblNlcnZpY2U9dix0aGlzLmdsb2JhbEV4cGFuZGFibGU9eSx0aGlzLmV4cGFuZD1DLHRoaXMuZGV0YWlsU2VydmljZT1JLHRoaXMu''@;'; + put 'put ''ZGlzcGxheU1vZGU9aix0aGlzLnZjcj11ZSx0aGlzLnJlbmRlcmVyPV9lLHRoaXMuZWw9QmUsdGhpcy5jb21tb25TdHJpbmdzPU5lLHRoaXMuaXRlbXM9S2UsdGhpcy5kb2N1bWVudD1kdCx0aGlzLlNFTEVDVElPTl9UWVBFPVdzLHRoaXMuZXhwYW5kQW5pbWF0aW9uVHJpZ2dlcj0hMSx0aGlz''@;'; + put 'put ''Ll9zZWxlY3RlZD0hMSx0aGlzLnNlbGVjdGVkQ2hhbmdlZD1uZXcgYXIoITEpLHRoaXMuZXhwYW5kZWRDaGFuZ2U9bmV3IGFyKCExKSx0aGlzLl9kZXRhaWxPcGVuTGFiZWw9IiIsdGhpcy5fZGV0YWlsQ2xvc2VMYWJlbD0iIix0aGlzLl9yb3dBcmlhTGFiZWw9IiIsdGhpcy5zdWJzY3JpcHRp''@;'; + put 'put ''b25zPVtdLHRoaXMuZGlzcGxheUNlbGxzPSExLHdxKyssdGhpcy5pZD0iY2xyLWRnLXJvdyIrd3EsdGhpcy5yYWRpb0lkPSJjbHItZGctcm93LXJkIit3cSx0aGlzLmNoZWNrYm94SWQ9ImNsci1kZy1yb3ctY2IiK3dxLHRoaXMuZXhwYW5kYWJsZUlkPUMuZXhwYW5kYWJsZUlkLHRoaXMuc3Vi''@;'; + put 'put ''c2NyaXB0aW9ucy5wdXNoKHJJKHRoaXMuZXhwYW5kLnJlcGxhY2UsdGhpcy5leHBhbmQuZXhwYW5kQ2hhbmdlKS5zdWJzY3JpYmUoKFtPdCwkdF0pPT57T3QmJiR0Pyh0aGlzLnJlcGxhY2VkPSEwLHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5lbC5uYXRpdmVFbGVtZW50LCJkYXRhZ3Jp''@;'; + put 'put ''ZC1yb3ctcmVwbGFjZWQiKSk6KHRoaXMucmVwbGFjZWQ9ITEsdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsImRhdGFncmlkLXJvdy1yZXBsYWNlZCIpKX0pKX1jbGVhclJhbmdlcyhoKXtoLnNoaWZ0S2V5JiYodGhpcy5kb2N1bWVudC5nZXRTZWxlY3Rp''@;'; + put 'put ''b24oKS5yZW1vdmVBbGxSYW5nZXMoKSwtMSE9PXdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoIkZpcmVmb3giKSYmKGgucHJldmVudERlZmF1bHQoKSx0aGlzLnRvZ2dsZSghMCkpKX1nZXQgc2VsZWN0ZWQoKXtyZXR1cm4gdGhpcy5zZWxlY3Rpb24uc2VsZWN0aW9uVHlwZT09''@;'; + put 'put ''PVdzLk5vbmU/dGhpcy5fc2VsZWN0ZWQ6dGhpcy5zZWxlY3Rpb24uaXNTZWxlY3RlZCh0aGlzLml0ZW0pfXNldCBzZWxlY3RlZChoKXt0aGlzLnNlbGVjdGlvbi5zZWxlY3Rpb25UeXBlPT09V3MuTm9uZT90aGlzLl9zZWxlY3RlZD1oOihoJiZ0aGlzLnNlbGVjdGlvbi5zZWxlY3Rpb25UeXBl''@;'; + put 'put ''PT09V3MuTXVsdGk/dGhpcy5yYW5nZVNlbGVjdCgpOnRoaXMuc2VsZWN0aW9uLnJhbmdlU3RhcnQ9bnVsbCx0aGlzLnNlbGVjdGlvbi5zZXRTZWxlY3RlZCh0aGlzLml0ZW0saCkpfXNldCBjbHJEZ1NlbGVjdGFibGUoaCl7dGhpcy5zZWxlY3Rpb24ubG9ja0l0ZW0odGhpcy5pdGVtLCExPT09''@;'; + put 'put ''aCl9Z2V0IGNsckRnU2VsZWN0YWJsZSgpe3JldHVybiF0aGlzLnNlbGVjdGlvbi5pc0xvY2tlZCh0aGlzLml0ZW0pfXRvZ2dsZShoPSF0aGlzLnNlbGVjdGVkKXtoIT09dGhpcy5zZWxlY3RlZCYmKHRoaXMuc2VsZWN0ZWQ9aCx0aGlzLnNlbGVjdGVkQ2hhbmdlZC5lbWl0KGgpKX1nZXQgZXhw''@;'; + put 'put ''YW5kZWQoKXtyZXR1cm4gdGhpcy5leHBhbmQuZXhwYW5kZWR9c2V0IGV4cGFuZGVkKGgpe3RoaXMuZXhwYW5kLmV4cGFuZGVkPWh9dG9nZ2xlRXhwYW5kKCl7dGhpcy5leHBhbmQuZXhwYW5kYWJsZSYmKHRoaXMuZXhwYW5kQW5pbWF0aW9uLnVwZGF0ZVN0YXJ0SGVpZ2h0KCksdGhpcy5leHBh''@;'; + put 'put ''bmRlZD0hdGhpcy5leHBhbmRlZCx0aGlzLmV4cGFuZGVkQ2hhbmdlLmVtaXQodGhpcy5leHBhbmRlZCkpfXNldCBjbHJEZ0RldGFpbE9wZW5MYWJlbChoKXt0aGlzLl9kZXRhaWxPcGVuTGFiZWw9aH1nZXQgY2xyRGdEZXRhaWxPcGVuTGFiZWwoKXtyZXR1cm4gdGhpcy5fZGV0YWlsT3Blbkxh''@;'; + put 'put ''YmVsP3RoaXMuX2RldGFpbE9wZW5MYWJlbDp0aGlzLmNvbW1vblN0cmluZ3Mua2V5cy5vcGVufXNldCBjbHJEZ0RldGFpbENsb3NlTGFiZWwoaCl7dGhpcy5fZGV0YWlsQ2xvc2VMYWJlbD1ofWdldCBjbHJEZ0RldGFpbENsb3NlTGFiZWwoKXtyZXR1cm4gdGhpcy5fZGV0YWlsQ2xvc2VMYWJl''@;'; + put 'put ''bD90aGlzLl9kZXRhaWxDbG9zZUxhYmVsOnRoaXMuY29tbW9uU3RyaW5ncy5rZXlzLmNsb3NlfXNldCBjbHJEZ1Jvd0FyaWFMYWJlbChoKXt0aGlzLl9yb3dBcmlhTGFiZWw9aH1nZXQgY2xyRGdSb3dBcmlhTGFiZWwoKXtyZXR1cm4gdGhpcy5fcm93QXJpYUxhYmVsP3RoaXMuX3Jvd0FyaWFM''@;'; + put 'put ''YWJlbDp0aGlzLmNvbW1vblN0cmluZ3Mua2V5cy5zZWxlY3R9bmdBZnRlckNvbnRlbnRJbml0KCl7dGhpcy5kZ0NlbGxzLmNoYW5nZXMuc3Vic2NyaWJlKCgpPT57dGhpcy5kZ0NlbGxzLmZvckVhY2goaD0+e2guX3ZpZXcuZGVzdHJveWVkfHx0aGlzLl9zY3JvbGxhYmxlQ2VsbHMuaW5zZXJ0''@;'; + put 'put ''KGguX3ZpZXcpfSl9KX1uZ0FmdGVyVmlld0luaXQoKXt0aGlzLnN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLmRpc3BsYXlNb2RlLnZpZXcuc3Vic2NyaWJlKGg9Pntmb3IobGV0IHY9dGhpcy5fc2Nyb2xsYWJsZUNlbGxzLmxlbmd0aDt2PjA7di0tKXRoaXMuX3Njcm9sbGFibGVDZWxscy5kZXRh''@;'; + put 'put ''Y2goKTtmb3IobGV0IHY9dGhpcy5fY2FsY3VsYXRlZENlbGxzLmxlbmd0aDt2PjA7di0tKXRoaXMuX2NhbGN1bGF0ZWRDZWxscy5kZXRhY2goKTtoPT09bXcuQ0FMQ1VMQVRFPyh0aGlzLmRpc3BsYXlDZWxscz0hMSx0aGlzLmRnQ2VsbHMuZm9yRWFjaCh2PT57di5fdmlldy5kZXN0cm95ZWR8''@;'; + put 'put ''fHRoaXMuX2NhbGN1bGF0ZWRDZWxscy5pbnNlcnQodi5fdmlldyl9KSk6KHRoaXMuZGlzcGxheUNlbGxzPSEwLHRoaXMuZGdDZWxscy5mb3JFYWNoKHY9Pnt2Ll92aWV3LmRlc3Ryb3llZHx8dGhpcy5fc2Nyb2xsYWJsZUNlbGxzLmluc2VydCh2Ll92aWV3KX0pKX0pLHRoaXMuZXhwYW5kLmFu''@;'; + put 'put ''aW1hdGUuc3Vic2NyaWJlKCgpPT57dGhpcy5leHBhbmRBbmltYXRpb25UcmlnZ2VyPSF0aGlzLmV4cGFuZEFuaW1hdGlvblRyaWdnZXJ9KSl9cmFuZ2VTZWxlY3QoKXtjb25zdCBoPXRoaXMuaXRlbXMuZGlzcGxheWVkO2lmKCFoKXJldHVybjtjb25zdCB2PWguaW5kZXhPZih0aGlzLnNlbGVj''@;'; + put 'put ''dGlvbi5yYW5nZVN0YXJ0KTtpZih0aGlzLnNlbGVjdGlvbi5yYW5nZVN0YXJ0JiZ0aGlzLnNlbGVjdGlvbi5jdXJyZW50LmluY2x1ZGVzKHRoaXMuc2VsZWN0aW9uLnJhbmdlU3RhcnQpJiZ0aGlzLnNlbGVjdGlvbi5zaGlmdFByZXNzZWQmJi0xIT09dil7Y29uc3QgeT1oLmluZGV4T2YodGhp''@;'; + put 'put ''cy5pdGVtKSxDPW5ldyBTZXQodGhpcy5zZWxlY3Rpb24uY3VycmVudC5jb25jYXQoaC5zbGljZShNYXRoLm1pbih2LHkpLE1hdGgubWF4KHYseSkrMSkpKTt0aGlzLnNlbGVjdGlvbi5jbGVhclNlbGVjdGlvbigpLHRoaXMuc2VsZWN0aW9uLmN1cnJlbnQucHVzaCguLi5DKX1lbHNlIHRoaXMu''@;'; + put 'put ''c2VsZWN0aW9uLnJhbmdlU3RhcnQ9dGhpcy5pdGVtfW5nT25EZXN0cm95KCl7dGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goaD0+aC51bnN1YnNjcmliZSgpKX1uZ09uSW5pdCgpe3RoaXMud3JhcHBlZEluamVjdG9yPW5ldyBidChZZmUsdGhpcy52Y3IpLHRoaXMuc2VsZWN0aW9uLmxvY2tJ''@;'; + put 'put ''dGVtKHRoaXMuaXRlbSwhMT09PXRoaXMuY2xyRGdTZWxlY3RhYmxlKX1nZXQgX3ZpZXcoKXtyZXR1cm4gdGhpcy53cmFwcGVkSW5qZWN0b3IuZ2V0KFlmZSx0aGlzLnZjcikucm93Vmlld319cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoS3QodVopLEt0''@;'; + put 'put ''KEZMKSxLdChOTCksS3Qoc1opLEt0KEE4KSxLdChVZmUpLEt0KFVpKSxLdChHYSksS3QoYm8pLEt0KG5zKSxLdChwdyksS3QocHMpKX0sZC5cdTAyNzVjbXA9VGkoe3R5cGU6ZCxzZWxlY3RvcnM6W1siY2xyLWRnLXJvdyJdXSxjb250ZW50UXVlcmllczpmdW5jdGlvbihoLHYseSl7aWYoMSZo''@;'; + put 'put ''JiZ4byh5LGd3LDQpLDImaCl7bGV0IEM7SGkoQz0kaSgpKSYmKHYuZGdDZWxscz1DKX19LHZpZXdRdWVyeTpmdW5jdGlvbihoLHYpe2lmKDEmaCYmKHZvKGZxLDUpLHZvKG1jZSw1KSx2byh5Zyw1LFVpKSx2byh0Uyw1LFVpKSx2byh2Y2UsNSxVaSkpLDImaCl7bGV0IHk7SGkoeT0kaSgpKSYm''@;'; + put 'put ''KHYuZXhwYW5kQW5pbWF0aW9uPXkuZmlyc3QpLEhpKHk9JGkoKSkmJih2LmRldGFpbEJ1dHRvbj15LmZpcnN0KSxIaSh5PSRpKCkpJiYodi5fc3RpY2t5Q2VsbHM9eS5maXJzdCksSGkoeT0kaSgpKSYmKHYuX3Njcm9sbGFibGVDZWxscz15LmZpcnN0KSxIaSh5PSRpKCkpJiYodi5fY2FsY3Vs''@;'; + put 'put ''YXRlZENlbGxzPXkuZmlyc3QpfX0saG9zdEF0dHJzOlsicm9sZSIsInJvd2dyb3VwIl0saG9zdFZhcnM6NSxob3N0QmluZGluZ3M6ZnVuY3Rpb24oaCx2KXsyJmgmJihHaSgiYXJpYS1vd25zIix2LmlkKSxGaSgiZGF0YWdyaWQtcm93IiwhMCkoImRhdGFncmlkLXNlbGVjdGVkIix2LnNlbGVj''@;'; + put 'put ''dGVkKSl9LGlucHV0czp7aXRlbTpbImNsckRnSXRlbSIsIml0ZW0iXSxzZWxlY3RlZDpbImNsckRnU2VsZWN0ZWQiLCJzZWxlY3RlZCJdLGNsckRnU2VsZWN0YWJsZToiY2xyRGdTZWxlY3RhYmxlIixleHBhbmRlZDpbImNsckRnRXhwYW5kZWQiLCJleHBhbmRlZCJdLGNsckRnRGV0YWlsT3Bl''@;'; + put 'put ''bkxhYmVsOiJjbHJEZ0RldGFpbE9wZW5MYWJlbCIsY2xyRGdEZXRhaWxDbG9zZUxhYmVsOiJjbHJEZ0RldGFpbENsb3NlTGFiZWwiLGNsckRnUm93QXJpYUxhYmVsOiJjbHJEZ1Jvd0FyaWFMYWJlbCJ9LG91dHB1dHM6e3NlbGVjdGVkQ2hhbmdlZDoiY2xyRGdTZWxlY3RlZENoYW5nZSIsZXhw''@;'; + put 'put ''YW5kZWRDaGFuZ2U6ImNsckRnRXhwYW5kZWRDaGFuZ2UifSxmZWF0dXJlczpbaG8oW3NaLHtwcm92aWRlOnIxLHVzZUV4aXN0aW5nOnNafSx7cHJvdmlkZTpQZix1c2VFeGlzdGluZzpzWn1dKV0sbmdDb250ZW50U2VsZWN0b3JzOnN2LGRlY2xzOjksdmFyczozLGNvbnN0czpbWyJjbGFzcyIs''@;'; + put 'put ''ImRhdGFncmlkLXJvdy1jbGlja2FibGUiLDMsIm1vdXNlZG93biIsNCwibmdJZiJdLFszLCJjbHJFeHBhbmRUcmlnZ2VyIiw0LCJuZ0lmIl0sWzQsIm5nSWYiXSxbImRldGFpbCIsIiJdLFsicm93Q29udGVudCIsIiJdLFsiY2FsY3VsYXRlZENlbGxzIiwiIl0sWzEsImRhdGFncmlkLXJvdy1j''@;'; + put 'put ''bGlja2FibGUiLDMsIm1vdXNlZG93biJdLFszLCJjbHJFeHBhbmRUcmlnZ2VyIl0sWzMsIm5nVGVtcGxhdGVPdXRsZXQiXSxbInJvbGUiLCJyb3ciLDEsImRhdGFncmlkLXJvdy1tYXN0ZXIiLCJkYXRhZ3JpZC1yb3ctZmxleCIsMywiaWQiXSxbMSwiZGF0YWdyaWQtcm93LXN0aWNreSJdLFsi''@;'; + put 'put ''c3RpY2t5Q2VsbHMiLCIiXSxbImNsYXNzIiwiZGF0YWdyaWQtc2VsZWN0IGRhdGFncmlkLWZpeGVkLWNvbHVtbiBkYXRhZ3JpZC1jZWxsIiwicm9sZSIsImdyaWRjZWxsIiwzLCJuZ0NsYXNzIiw0LCJuZ0lmIl0sWyJjbGFzcyIsImRhdGFncmlkLXJvdy1hY3Rpb25zIGRhdGFncmlkLWZpeGVk''@;'; + put 'put ''LWNvbHVtbiBkYXRhZ3JpZC1jZWxsIiwicm9sZSIsImdyaWRjZWxsIiw0LCJuZ0lmIl0sWyJjbGFzcyIsImRhdGFncmlkLWV4cGFuZGFibGUtY2FyZXQgZGF0YWdyaWQtZml4ZWQtY29sdW1uIGRhdGFncmlkLWNlbGwiLCJyb2xlIiwiZ3JpZGNlbGwiLDQsIm5nSWYiXSxbImNsYXNzIiwiZGF0''@;'; + put 'put ''YWdyaWQtZGV0YWlsLWNhcmV0IGRhdGFncmlkLWZpeGVkLWNvbHVtbiBkYXRhZ3JpZC1jZWxsIiw0LCJuZ0lmIl0sWzEsImRhdGFncmlkLXJvdy1zY3JvbGxhYmxlIiwzLCJuZ0NsYXNzIl0sWzEsImRhdGFncmlkLXNjcm9sbGluZy1jZWxscyJdLFsic2Nyb2xsYWJsZUNlbGxzIiwiIl0sWyJy''@;'; + put 'put ''b2xlIiwiZ3JpZGNlbGwiLDEsImRhdGFncmlkLXNlbGVjdCIsImRhdGFncmlkLWZpeGVkLWNvbHVtbiIsImRhdGFncmlkLWNlbGwiLDMsIm5nQ2xhc3MiXSxbMSwiY2xyLWNoZWNrYm94LXdyYXBwZXIiXSxbInR5cGUiLCJjaGVja2JveCIsMywibmdNb2RlbCIsImlkIiwibmdNb2RlbENoYW5n''@;'; + put 'put ''ZSJdLFsxLCJjbHItY29udHJvbC1sYWJlbCIsImNsci1jb2wtbnVsbCIsMywiZm9yIiwiY2xpY2siXSxbMSwiY2xyLXNyLW9ubHkiXSxbInR5cGUiLCJyYWRpbyIsImNsclJhZGlvIiwiIiwzLCJpZCIsIm5hbWUiLCJ2YWx1ZSIsIm5nTW9kZWwiLCJjaGVja2VkIiwibmdNb2RlbENoYW5nZSJd''@;'; + put 'put ''LFsicm9sZSIsImdyaWRjZWxsIiwxLCJkYXRhZ3JpZC1yb3ctYWN0aW9ucyIsImRhdGFncmlkLWZpeGVkLWNvbHVtbiIsImRhdGFncmlkLWNlbGwiXSxbInJvbGUiLCJncmlkY2VsbCIsMSwiZGF0YWdyaWQtZXhwYW5kYWJsZS1jYXJldCIsImRhdGFncmlkLWZpeGVkLWNvbHVtbiIsImRhdGFn''@;'; + put 'put ''cmlkLWNlbGwiXSxbInR5cGUiLCJidXR0b24iLCJjbGFzcyIsImRhdGFncmlkLWV4cGFuZGFibGUtY2FyZXQtYnV0dG9uIiwzLCJjbGljayIsNCwibmdJZiJdLFsiY2xyU21hbGwiLCIiLDQsIm5nSWYiXSxbInR5cGUiLCJidXR0b24iLDEsImRhdGFncmlkLWV4cGFuZGFibGUtY2FyZXQtYnV0''@;'; + put 'put ''dG9uIiwzLCJjbGljayJdLFsic2hhcGUiLCJhbmdsZSIsMSwiZGF0YWdyaWQtZXhwYW5kYWJsZS1jYXJldC1pY29uIl0sWyJjbHJTbWFsbCIsIiJdLFsxLCJkYXRhZ3JpZC1kZXRhaWwtY2FyZXQiLCJkYXRhZ3JpZC1maXhlZC1jb2x1bW4iLCJkYXRhZ3JpZC1jZWxsIl0sWyJ0eXBlIiwiYnV0''@;'; + put 'put ''dG9uIiwiYXJpYS1oYXNwb3B1cCIsImRpYWxvZyIsMSwiZGF0YWdyaWQtZGV0YWlsLWNhcmV0LWJ1dHRvbiIsMywiY2xpY2siXSxbImRldGFpbEJ1dHRvbiIsIiJdLFsic2hhcGUiLCJhbmdsZS1kb3VibGUiLDEsImRhdGFncmlkLWRldGFpbC1jYXJldC1pY29uIl1dLHRlbXBsYXRlOmZ1bmN0''@;'; + put 'put ''aW9uKGgsdil7MSZoJiYoSzAoTSQpLHJuKDAsYmNlLDMsMiwibGFiZWwiLDApLHJuKDEsX2NlLDIsMiwiY2xyLWV4cGFuZGFibGUtYW5pbWF0aW9uIiwxKSxybigyLElqLDEsMSxudWxsLDIpLHJuKDMseDEsMSwwLCJuZy10ZW1wbGF0ZSIsbnVsbCwzLFpyKSxybig1LHJhLDE2LDEzLCJuZy10''@;'; + put 'put ''ZW1wbGF0ZSIsbnVsbCw0LFpyKSxmMSg3LG51bGwsNSkpLDImaCYmKFR0KCJuZ0lmIix2LnNlbGVjdGlvbi5yb3dTZWxlY3Rpb25Nb2RlKSx1dCgxKSxUdCgibmdJZiIsIXYuc2VsZWN0aW9uLnJvd1NlbGVjdGlvbk1vZGUmJnYuZXhwYW5kLmV4cGFuZGFibGUpLHV0KDEpLFR0KCJuZ0lmIiwh''@;'; + put 'put ''di5zZWxlY3Rpb24ucm93U2VsZWN0aW9uTW9kZSYmIXYuZXhwYW5kLmV4cGFuZGFibGUpKX0sZGVwZW5kZW5jaWVzOltmcSxnYSxObyxvdCxYZCxsYyxJZix4cyxUcyxxaCxtMSxEZmUsWm9dLGVuY2Fwc3VsYXRpb246Mn0pLGR9KSgpO3ZhciBwaD0oKCk9PihmdW5jdGlvbihkKXtkW2QuV0lE''@;'; + put 'put ''VEg9MF09IldJRFRIIixkW2QuSElEREVOPTFdPSJISURERU4ifShwaHx8KHBoPXt9KSkscGgpKSgpO2NvbnN0IGF5ZT1PYmplY3Qua2V5cyhwaCkubWFwKGQ9PnBoW2RdKS5maWx0ZXIoZD0+ZD09PXBhcnNlSW50KGQsMTApKTtsZXQgQXY9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3Rvcigpe3Ro''@;'; + put 'put ''aXMuY29sdW1ucz1bXSx0aGlzLl9jYWNoZT1bXX1jYWNoZSgpe3RoaXMuX2NhY2hlPXRoaXMuY29sdW1ucy5tYXAoaD0+e2NvbnN0IHY9T2JqZWN0LmFzc2lnbih7fSxoLnZhbHVlKTtyZXR1cm4gZGVsZXRlIHYuY2hhbmdlcyx2fSl9aGFzQ2FjaGUoKXtyZXR1cm4hIXRoaXMuX2NhY2hlLmxl''@;'; + put 'put ''bmd0aH1yZXNldFRvTGFzdENhY2hlKCl7dGhpcy5fY2FjaGUuZm9yRWFjaCgoaCx2KT0+e3RoaXMuY29sdW1uc1t2XS5uZXh0KE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxoKSx7Y2hhbmdlczpheWV9KSl9KSx0aGlzLl9jYWNoZT1bXX1nZXQgY29sdW1uU3RhdGVzKCl7cmV0dXJu''@;'; + put 'put ''IHRoaXMuY29sdW1ucy5tYXAoaD0+aC52YWx1ZSl9Z2V0IGhhc0hpZGVhYmxlQ29sdW1ucygpe3JldHVybiB0aGlzLmNvbHVtblN0YXRlcy5maWx0ZXIoaD0+aC5oaWRlYWJsZSkubGVuZ3RoPjB9ZW1pdFN0YXRlQ2hhbmdlQXQoaCx2KXshdGhpcy5jb2x1bW5zW2hdfHx0aGlzLmVtaXRTdGF0''@;'; + put 'put ''ZUNoYW5nZSh0aGlzLmNvbHVtbnNbaF0sdil9ZW1pdFN0YXRlQ2hhbmdlKGgsdil7aC5uZXh0KE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxoLnZhbHVlKSx2KSl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1MDI3NXByb3Y9QWko''@;'; + put 'put ''e3Rva2VuOmQsZmFjdG9yeTpkLlx1MDI3NWZhY30pLGR9KSgpLGx5ZT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgsdix5LEMpe3RoaXMuZmlsdGVycz1oLHRoaXMuc29ydD12LHRoaXMucGFnZT15LHRoaXMuZGVib3VuY2VyPUMsdGhpcy5jaGFuZ2U9dGhpcy5kZWJvdW5jZXIuY2hhbmdl''@;'; + put 'put ''LnBpcGUobXQoKCk9PnRoaXMuc3RhdGUpKX1nZXQgc3RhdGUoKXtjb25zdCBoPXt9O3RoaXMucGFnZS5zaXplPjAmJihoLnBhZ2U9e2Zyb206dGhpcy5wYWdlLmZpcnN0SXRlbSx0bzp0aGlzLnBhZ2UubGFzdEl0ZW0sc2l6ZTp0aGlzLnBhZ2Uuc2l6ZSxjdXJyZW50OnRoaXMucGFnZS5jdXJy''@;'; + put 'put ''ZW50fSksdGhpcy5zb3J0LmNvbXBhcmF0b3ImJihoLnNvcnQ9dGhpcy5zb3J0LmNvbXBhcmF0b3IgaW5zdGFuY2VvZiB2cT97Ynk6dGhpcy5zb3J0LmNvbXBhcmF0b3IucHJvcCxyZXZlcnNlOnRoaXMuc29ydC5yZXZlcnNlfTp7Ynk6dGhpcy5zb3J0LmNvbXBhcmF0b3IscmV2ZXJzZTp0aGlz''@;'; + put 'put ''LnNvcnQucmV2ZXJzZX0pO2NvbnN0IHY9dGhpcy5maWx0ZXJzLmdldEFjdGl2ZUZpbHRlcnMoKTtpZih2Lmxlbmd0aD4wKXtoLmZpbHRlcnM9W107Zm9yKGNvbnN0IHkgb2YgdiloLmZpbHRlcnMucHVzaCh5LnN0YXRlP3kuc3RhdGU6eSl9cmV0dXJuIGh9fXJldHVybiBkLlx1MDI3NWZhYz1m''@;'; + put 'put ''dW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKENpKHZ2KSxDaShBcSksQ2koaHcpLENpKGFaKSl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1ZmFjfSksZH0pKCksc3llPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCl7dGhpcy56b25lPWgsdGhpcy5saXN0''@;'; + put 'put ''ZW5lcnNBZGRlZD0hMSx0aGlzLmRlc3Ryb3kkPW5ldyAkZSx0aGlzLmNvbmZpZz17a2V5R3JpZFJvd3M6Iltyb2xlPXJvd106bm90KC5kYXRhZ3JpZC1wbGFjZWhvbGRlcikiLGtleUdyaWRDZWxsczoiW3JvbGU9Z3JpZGNlbGxdOm5vdCguZGF0YWdyaWQtaGlkZGVuLWNvbHVtbik6bm90KC5k''@;'; + put 'put ''YXRhZ3JpZC1wbGFjZWhvbGRlci1jb250ZW50KSwgW3JvbGU9Y29sdW1uaGVhZGVyXTpub3QoLmRhdGFncmlkLWhpZGRlbi1jb2x1bW4pOm5vdCguZGF0YWdyaWQtcGxhY2Vob2xkZXItY29udGVudCksIC5kYXRhZ3JpZC1kZXRhaWwtY2FyZXQiLGtleUdyaWQ6Iltyb2xlPWdyaWRdIn19Z2V0''@;'; + put 'put ''IGdyaWQoKXt2YXIgaDtyZXR1cm4gbnVsbD09PShoPXRoaXMuaG9zdCl8fHZvaWQgMD09PWg/dm9pZCAwOmgucXVlcnlTZWxlY3Rvcih0aGlzLmNvbmZpZy5rZXlHcmlkKX1nZXQgcm93cygpe3ZhciBoO3JldHVybiBudWxsPT09KGg9dGhpcy5ob3N0KXx8dm9pZCAwPT09aD92b2lkIDA6aC5x''@;'; + put 'put ''dWVyeVNlbGVjdG9yQWxsKHRoaXMuY29uZmlnLmtleUdyaWRSb3dzKX1nZXQgY2VsbHMoKXt2YXIgaDtyZXR1cm4gbnVsbD09PShoPXRoaXMuaG9zdCl8fHZvaWQgMD09PWg/dm9pZCAwOmgucXVlcnlTZWxlY3RvckFsbCh0aGlzLmNvbmZpZy5rZXlHcmlkQ2VsbHMpfW5nT25EZXN0cm95KCl7''@;'; + put 'put ''dGhpcy5kZXN0cm95JC5uZXh0KCksdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpfWFkZExpc3RlbmVycygpe3RoaXMubGlzdGVuZXJzQWRkZWR8fCh0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCk9Pnt0OCh0aGlzLmdyaWQsIm1vdXNlZG93biIpLnBpcGUoajcodGhpcy5kZXN0cm95JCkp''@;'; + put 'put ''LnN1YnNjcmliZShoPT57aWYoMT09PWguYnV0dG9ucyYmIWguY3RybEtleSl7Y29uc3Qgdj10aGlzLmNlbGxzP0FycmF5LmZyb20odGhpcy5jZWxscykuZmluZCh5PT55PT09aC50YXJnZXR8fHk9PT1oLnRhcmdldC5jbG9zZXN0KHRoaXMuY29uZmlnLmtleUdyaWRDZWxscykpOm51bGw7diYm''@;'; + put 'put ''dGhpcy5zZXRBY3RpdmVDZWxsKHYpfX0pLHQ4KHRoaXMuZ3JpZCwia2V5ZG93biIpLnBpcGUoajcodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZShoPT57aWYoKCFoLnRhcmdldC5jbGFzc0xpc3QuY29udGFpbnMoImRyYWctaGFuZGxlIil8fCJBcnJvd0xlZnQiIT09aC5jb2RlJiYiQXJyb3dS''@;'; + put 'put ''aWdodCIhPT1oLmNvZGUpJiYoIkFycm93VXAiPT09aC5jb2RlfHwiQXJyb3dEb3duIj09PWguY29kZXx8IkFycm93TGVmdCI9PT1oLmNvZGV8fCJBcnJvd1JpZ2h0Ij09PWguY29kZXx8IkVuZCI9PT1oLmNvZGV8fCJIb21lIj09PWguY29kZXx8IlBhZ2VVcCI9PT1oLmNvZGV8fCJQYWdlRG93''@;'; + put 'put ''biI9PT1oLmNvZGUpKXtjb25zdHt4OnYseX09dGhpcy5nZXROZXh0SXRlbUNvb3JkaW5hdGUoaCksQz10aGlzLnJvd3M/QXJyYXkuZnJvbSh0aGlzLnJvd3NbeV0ucXVlcnlTZWxlY3RvckFsbCh0aGlzLmNvbmZpZy5rZXlHcmlkQ2VsbHMpKVt2XTpudWxsO0MmJnRoaXMuc2V0QWN0aXZlQ2Vs''@;'; + put 'put ''bChDKSxoLnByZXZlbnREZWZhdWx0KCl9fSl9KSx0aGlzLmxpc3RlbmVyc0FkZGVkPSEwKX1pbml0aWFsaXplS2V5R3JpZChoKXt0aGlzLmhvc3Q9aCx0aGlzLmFkZExpc3RlbmVycygpLHRoaXMucmVzZXRLZXlHcmlkKCl9cmVzZXRLZXlHcmlkKCl7dmFyIGg7bnVsbD09PShoPXRoaXMuY2Vs''@;'; + put 'put ''bHMpfHx2b2lkIDA9PT1ofHxoLmZvckVhY2goeT0+eS5zZXRBdHRyaWJ1dGUoInRhYmluZGV4IiwiLTEiKSk7Y29uc3Qgdj10aGlzLmNlbGxzP3RoaXMuY2VsbHNbMF06bnVsbDtudWxsPT12fHx2LnNldEF0dHJpYnV0ZSgidGFiaW5kZXgiLCIwIil9c2V0QWN0aXZlQ2VsbChoKXtjb25zdCB2''@;'; + put 'put ''PXRoaXMuY2VsbHM/QXJyYXkuZnJvbSh0aGlzLmNlbGxzKS5maW5kKEk9PiIwIj09PUkuZ2V0QXR0cmlidXRlKCJ0YWJpbmRleCIpKTpudWxsO3YmJnYuc2V0QXR0cmlidXRlKCJ0YWJpbmRleCIsIi0xIiksaC5zZXRBdHRyaWJ1dGUoInRhYmluZGV4IiwiMCIpO2NvbnN0IHk9ZnVuY3Rpb24g''@;'; + put 'put ''Q09lKGQpe2NvbnN0IGc9WyJhW2hyZWZdIiwiYXJlYVtocmVmXSIsImlucHV0Om5vdChbZGlzYWJsZWRdKSIsImJ1dHRvbjpub3QoW2Rpc2FibGVkXSkiLCJzZWxlY3Q6bm90KFtkaXNhYmxlZF0pIiwidGV4dGFyZWE6bm90KFtkaXNhYmxlZF0pIiwiaWZyYW1lIiwib2JqZWN0IiwiZW1iZWQi''@;'; + put 'put ''LCIqW3RhYmluZGV4XSIsIipbY29udGVudGVkaXRhYmxlPXRydWVdIiwiW3JvbGU9YnV0dG9uXTpub3QoW2Rpc2FibGVkXSkiXS5qb2luKCIsIik7cmV0dXJuIEFycmF5LmZyb20oZC5xdWVyeVNlbGVjdG9yQWxsKGcpKX0oaCk7KCJjb2x1bW5oZWFkZXIiIT09aC5nZXRBdHRyaWJ1dGUoInJv''@;'; + put 'put ''bGUiKSYmeVswXT95WzBdOmgpLmZvY3VzKCl9Z2V0TmV4dEl0ZW1Db29yZGluYXRlKGgpe3ZhciB2O2xldCB5PXRoaXMuY2VsbHM/QXJyYXkuZnJvbSh0aGlzLmNlbGxzKS5maW5kKE90PT4iMCI9PT1PdC5nZXRBdHRyaWJ1dGUoInRhYmluZGV4IikpOm51bGw7IlRhYiI9PT1oLmNvZGUmJih5''@;'; + put 'put ''PWRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpO2NvbnN0IEM9dGhpcy5yb3dzJiZ5P0FycmF5LmZyb20odGhpcy5yb3dzKS5maW5kKE90PT5PdC5jb250YWlucyh5KSk6bnVsbCxJPXRoaXMucm93cz90aGlzLnJvd3MubGVuZ3RoLTE6MCxqPXRoaXMuY2VsbHM/dGhpcy5jZWxscy5sZW5ndGgvdGhp''@;'; + put 'put ''cy5yb3dzLmxlbmd0aC0xOjA7bGV0IHVlPUMmJnk/QXJyYXkuZnJvbShDLnF1ZXJ5U2VsZWN0b3JBbGwodGhpcy5jb25maWcua2V5R3JpZENlbGxzKSkuaW5kZXhPZih5KTowLF9lPUMmJnkmJnRoaXMucm93cz9BcnJheS5mcm9tKHRoaXMucm93cykuaW5kZXhPZihDKTowO2NvbnN0IEJlPXRo''@;'; + put 'put ''aXMuaG9zdC5kaXIsTmU9InJ0bCI9PT1CZT8iQXJyb3dSaWdodCI6IkFycm93TGVmdCIsS2U9InJ0bCI9PT1CZT8iQXJyb3dMZWZ0IjoiQXJyb3dSaWdodCIsZHQ9TWF0aC5mbG9vcigobnVsbD09PSh2PXRoaXMuaG9zdCl8fHZvaWQgMD09PXY/dm9pZCAwOnYucXVlcnlTZWxlY3RvcigiLmRh''@;'; + put 'put ''dGFncmlkIikuY2xpZW50SGVpZ2h0KS90aGlzLnJvd3NbMF0uY2xpZW50SGVpZ2h0KS0xfHwwO3JldHVybiJBcnJvd1VwIj09PWguY29kZSYmMCE9PV9lP19lLT0xOiJBcnJvd0Rvd24iPT09aC5jb2RlJiZfZTxJP19lKz0xOmguY29kZT09PU5lJiYwIT09dWU/dWUtPTE6aC5jb2RlPT09S2Um''@;'; + put 'put ''JnVlPGo/dWUrPTE6IkVuZCI9PT1oLmNvZGU/KHVlPWosaC5jdHJsS2V5JiYoX2U9SSkpOiJIb21lIj09PWguY29kZT8odWU9MCxoLmN0cmxLZXkmJihfZT0wKSk6IlBhZ2VVcCI9PT1oLmNvZGU/X2U9X2UtZHQ+MD9fZS1kdDowOiJQYWdlRG93biI9PT1oLmNvZGUmJihfZT1fZStkdDxJP19l''@;'; + put 'put ''K2R0OkkpLHt4OnVlLHk6X2V9fX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShDaShfbCkpfSxkLlx1MDI3NXByb3Y9QWkoe3Rva2VuOmQsZmFjdG9yeTpkLlx1MDI3NWZhY30pLGR9KSgpLFpMPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2LHks''@;'; + put 'put ''QyxJLGosdWUsX2UsQmUsTmUsS2UsZHQsT3QsJHQsZm4sTG4saXIpe3RoaXMub3JnYW5pemVyPWgsdGhpcy5pdGVtcz12LHRoaXMuZXhwYW5kYWJsZVJvd3M9eSx0aGlzLnNlbGVjdGlvbj1DLHRoaXMucm93QWN0aW9uU2VydmljZT1JLHRoaXMuc3RhdGVQcm92aWRlcj1qLHRoaXMuZGlzcGxh''@;'; + put 'put ''eU1vZGU9dWUsdGhpcy5yZW5kZXJlcj1fZSx0aGlzLmRldGFpbFNlcnZpY2U9QmUsdGhpcy5kb2N1bWVudD1LZSx0aGlzLmVsPWR0LHRoaXMucGFnZT1PdCx0aGlzLmNvbW1vblN0cmluZ3M9JHQsdGhpcy5jb2x1bW5zU2VydmljZT1mbix0aGlzLmtleU5hdmlnYXRpb249TG4sdGhpcy56b25l''@;'; + put 'put ''PWlyLHRoaXMuU0VMRUNUSU9OX1RZUEU9V3MsdGhpcy5yZWZyZXNoPW5ldyBhcighMSksdGhpcy5zZWxlY3RlZENoYW5nZWQ9bmV3IGFyKCExKSx0aGlzLnNpbmdsZVNlbGVjdGVkQ2hhbmdlZD1uZXcgYXIoITEpLHRoaXMuY2xyRGdTaW5nbGVTZWxlY3Rpb25BcmlhTGFiZWw9dGhpcy5jb21t''@;'; + put 'put ''b25TdHJpbmdzLmtleXMuc2luZ2xlU2VsZWN0aW9uQXJpYUxhYmVsLHRoaXMuY2xyRGdTaW5nbGVBY3Rpb25hYmxlQXJpYUxhYmVsPXRoaXMuY29tbW9uU3RyaW5ncy5rZXlzLnNpbmdsZUFjdGlvbmFibGVBcmlhTGFiZWwsdGhpcy5jbHJEZXRhaWxFeHBhbmRhYmxlQXJpYUxhYmVsPXRoaXMu''@;'; + put 'put ''Y29tbW9uU3RyaW5ncy5rZXlzLmRldGFpbEV4cGFuZGFibGVBcmlhTGFiZWwsdGhpcy5jbHJEZ0Rpc2FibGVQYWdlRm9jdXM9ITEsdGhpcy5fc3Vic2NyaXB0aW9ucz1bXSx0aGlzLnNlbGVjdEFsbElkPSJjbHItZGctc2VsZWN0LWFsbC0iK05lLHRoaXMuZGV0YWlsU2VydmljZS5pZD1OZX1n''@;'; + put 'put ''ZXQgbG9hZGluZygpe3JldHVybiB0aGlzLml0ZW1zLmxvYWRpbmd9c2V0IGxvYWRpbmcoaCl7dGhpcy5pdGVtcy5sb2FkaW5nPWh9ZGF0YUNoYW5nZWQoKXt0aGlzLml0ZW1zLnJlZnJlc2goKX1zZXQgc2VsZWN0ZWQoaCl7dGhpcy5zZWxlY3Rpb24uc2VsZWN0aW9uVHlwZT1oP1dzLk11bHRp''@;'; + put 'put ''OldzLk5vbmUsdGhpcy5zZWxlY3Rpb24udXBkYXRlQ3VycmVudChoLCExKX1zZXQgc2luZ2xlU2VsZWN0ZWQoaCl7dGhpcy5zZWxlY3Rpb24uc2VsZWN0aW9uVHlwZT1Xcy5TaW5nbGUsaD90aGlzLnNlbGVjdGlvbi5jdXJyZW50U2luZ2xlPWg6dGhpcy5zZWxlY3Rpb24uY3VycmVudFNpbmds''@;'; + put 'put ''ZSYmKHRoaXMuc2VsZWN0aW9uLmN1cnJlbnRTaW5nbGU9bnVsbCl9c2V0IGNsckRnUHJlc2VydmVTZWxlY3Rpb24oaCl7dGhpcy5zZWxlY3Rpb24ucHJlc2VydmVTZWxlY3Rpb249aH1zZXQgcm93U2VsZWN0aW9uTW9kZShoKXt0aGlzLnNlbGVjdGlvbi5yb3dTZWxlY3Rpb25Nb2RlPWh9Z2V0''@;'; + put 'put ''IGFsbFNlbGVjdGVkKCl7cmV0dXJuIHRoaXMuc2VsZWN0aW9uLmlzQWxsU2VsZWN0ZWQoKX1zZXQgYWxsU2VsZWN0ZWQoaCl7dGhpcy5zZWxlY3Rpb24udG9nZ2xlQWxsKCl9bmdBZnRlckNvbnRlbnRJbml0KCl7dGhpcy5pdGVtcy5zbWFydHx8KHRoaXMuaXRlbXMuYWxsPXRoaXMucm93cy5t''@;'; + put 'put ''YXAoaD0+aC5pdGVtKSksdGhpcy5fc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMucm93cy5jaGFuZ2VzLnN1YnNjcmliZSgoKT0+e3RoaXMuaXRlbXMuc21hcnR8fCh0aGlzLml0ZW1zLmFsbD10aGlzLnJvd3MubWFwKGg9PmguaXRlbSkpO2ZvcihsZXQgaD10aGlzLl9kaXNwbGF5ZWRSb3dzLmxl''@;'; + put 'put ''bmd0aC0xO2g+PTA7aC0tKXRoaXMuX2Rpc3BsYXllZFJvd3MuZ2V0KGgpLmRlc3Ryb3llZCYmdGhpcy5fZGlzcGxheWVkUm93cy5yZW1vdmUoaCk7aWYodGhpcy5yb3dzLmZvckVhY2goaD0+e3RoaXMuX2Rpc3BsYXllZFJvd3MuaW5zZXJ0KGguX3ZpZXcpfSksdGhpcy5kZXRhaWxTZXJ2aWNl''@;'; + put 'put ''LnN0YXRlJiZ0aGlzLmRldGFpbFNlcnZpY2UuaXNPcGVuKXtjb25zdCBoPXRoaXMucm93cy5maW5kKCh2LHkpPT50aGlzLml0ZW1zLnRyYWNrQnkoeSx2Lml0ZW0pPT09dGhpcy5pdGVtcy50cmFja0J5KHksdGhpcy5kZXRhaWxTZXJ2aWNlLnN0YXRlKSk7aD90aGlzLmRldGFpbFNlcnZpY2Uu''@;'; + put 'put ''b3BlbihoLml0ZW0saC5kZXRhaWxCdXR0b24ubmF0aXZlRWxlbWVudCk6dGhpcy5kZXRhaWxTZXJ2aWNlLmNsb3NlKCl9fSkpfW5nQWZ0ZXJWaWV3SW5pdCgpe3RoaXMua2V5TmF2aWdhdGlvbi5pbml0aWFsaXplS2V5R3JpZCh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQpLHRoaXMucmVmcmVzaC5l''@;'; + put 'put ''bWl0KHRoaXMuc3RhdGVQcm92aWRlci5zdGF0ZSksdGhpcy5fc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMuc3RhdGVQcm92aWRlci5jaGFuZ2Uuc3Vic2NyaWJlKGg9PnRoaXMucmVmcmVzaC5lbWl0KGgpKSx0aGlzLnNlbGVjdGlvbi5jaGFuZ2Uuc3Vic2NyaWJlKGg9Pnt0aGlzLnNlbGVjdGlv''@;'; + put 'put ''bi5zZWxlY3Rpb25UeXBlPT09V3MuU2luZ2xlP3RoaXMuc2luZ2xlU2VsZWN0ZWRDaGFuZ2VkLmVtaXQoaCk6dGhpcy5zZWxlY3Rpb24uc2VsZWN0aW9uVHlwZT09PVdzLk11bHRpJiZ0aGlzLnNlbGVjdGVkQ2hhbmdlZC5lbWl0KGgpfSksdGhpcy5wYWdlLmNoYW5nZS5zdWJzY3JpYmUoKCk9''@;'; + put 'put ''Pnt0aGlzLmtleU5hdmlnYXRpb24ucmVzZXRLZXlHcmlkKCksdGhpcy5jbHJEZ0Rpc2FibGVQYWdlRm9jdXN8fHRoaXMuZGF0YWdyaWRUYWJsZS5uYXRpdmVFbGVtZW50LmZvY3VzKCl9KSxySSh0aGlzLmNvbHVtbnNTZXJ2aWNlLmNvbHVtbnMpLnN1YnNjcmliZSgoKT0+e3ZhciBoO3JldHVy''@;'; + put 'put ''biBudWxsPT09KGg9dGhpcy5rZXlOYXZpZ2F0aW9uKXx8dm9pZCAwPT09aD92b2lkIDA6aC5yZXNldEtleUdyaWQoKX0pLHRoaXMuZGlzcGxheU1vZGUudmlldy5zdWJzY3JpYmUoaD0+e2ZvcihsZXQgdj10aGlzLl9wcm9qZWN0ZWREaXNwbGF5Q29sdW1ucy5sZW5ndGg7dj4wO3YtLSl0aGlz''@;'; + put 'put ''Ll9wcm9qZWN0ZWREaXNwbGF5Q29sdW1ucy5kZXRhY2goKTtmb3IobGV0IHY9dGhpcy5fcHJvamVjdGVkQ2FsY3VsYXRpb25Db2x1bW5zLmxlbmd0aDt2PjA7di0tKXRoaXMuX3Byb2plY3RlZENhbGN1bGF0aW9uQ29sdW1ucy5kZXRhY2goKTtmb3IobGV0IHY9dGhpcy5fY2FsY3VsYXRpb25S''@;'; + put 'put ''b3dzLmxlbmd0aDt2PjA7di0tKXRoaXMuX2NhbGN1bGF0aW9uUm93cy5kZXRhY2goKTtmb3IobGV0IHY9dGhpcy5fZGlzcGxheWVkUm93cy5sZW5ndGg7dj4wO3YtLSl0aGlzLl9kaXNwbGF5ZWRSb3dzLmRldGFjaCgpO2g9PT1tdy5ESVNQTEFZPyh0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNz''@;'; + put 'put ''KHRoaXMuZWwubmF0aXZlRWxlbWVudCwiZGF0YWdyaWQtY2FsY3VsYXRlLW1vZGUiKSx0aGlzLmNvbHVtbnMuZm9yRWFjaCh2PT57dGhpcy5fcHJvamVjdGVkRGlzcGxheUNvbHVtbnMuaW5zZXJ0KHYuX3ZpZXcpfSksdGhpcy5yb3dzLmZvckVhY2godj0+e3RoaXMuX2Rpc3BsYXllZFJvd3Mu''@;'; + put 'put ''aW5zZXJ0KHYuX3ZpZXcpfSkpOih0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZWwubmF0aXZlRWxlbWVudCwiZGF0YWdyaWQtY2FsY3VsYXRlLW1vZGUiKSx0aGlzLmNvbHVtbnMuZm9yRWFjaCh2PT57dGhpcy5fcHJvamVjdGVkQ2FsY3VsYXRpb25Db2x1bW5zLmluc2VydCh2Ll92aWV3''@;'; + put 'put ''KX0pLHRoaXMucm93cy5mb3JFYWNoKHY9Pnt0aGlzLl9jYWxjdWxhdGlvblJvd3MuaW5zZXJ0KHYuX3ZpZXcpfSkpfSkpLHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKT0+e3RoaXMuX3N1YnNjcmlwdGlvbnMucHVzaCh0OCh0aGlzLmRvY3VtZW50LmJvZHksImtleWRvd24iKS5zdWJz''@;'; + put 'put ''Y3JpYmUoaD0+eyJTaGlmdCI9PT1oLmtleSYmKHRoaXMuc2VsZWN0aW9uLnNoaWZ0UHJlc3NlZD0hMCl9KSx0OCh0aGlzLmRvY3VtZW50LmJvZHksImtleXVwIikuc3Vic2NyaWJlKGg9PnsiU2hpZnQiPT09aC5rZXkmJih0aGlzLnNlbGVjdGlvbi5zaGlmdFByZXNzZWQ9ITEpfSkpfSl9bmdP''@;'; + put 'put ''bkRlc3Ryb3koKXt0aGlzLl9zdWJzY3JpcHRpb25zLmZvckVhY2goaD0+aC51bnN1YnNjcmliZSgpKX1yZXNpemUoKXt0aGlzLm9yZ2FuaXplci5yZXNpemUoKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoS3QocFMpLEt0KHB3KSxLdChOTCksS3Qo''@;'; + put 'put ''dVopLEt0KEZMKSxLdChseWUpLEt0KFVmZSksS3QoR2EpLEt0KEE4KSxLdCh5MiksS3QocHMpLEt0KGJvKSxLdChodyksS3QobnMpLEt0KEF2KSxLdChzeWUpLEt0KF9sKSl9LGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQsc2VsZWN0b3JzOltbImNsci1kYXRhZ3JpZCJdXSxjb250ZW50UXVlcmll''@;'; + put 'put ''czpmdW5jdGlvbihoLHYseSl7aWYoMSZoJiYoeG8oeSxqTCw1KSx4byh5LGpmZSw1KSx4byh5LGdTLDQpLHhvKHksbVMsNCkpLDImaCl7bGV0IEM7SGkoQz0kaSgpKSYmKHYuaXRlcmF0b3I9Qy5maXJzdCksSGkoQz0kaSgpKSYmKHYucGxhY2Vob2xkZXI9Qy5maXJzdCksSGkoQz0kaSgpKSYm''@;'; + put 'put ''KHYuY29sdW1ucz1DKSxIaShDPSRpKCkpJiYodi5yb3dzPUMpfX0sdmlld1F1ZXJ5OmZ1bmN0aW9uKGgsdil7aWYoMSZoJiYodm8oU2NlLDUsVWkpLHZvKEUkLDUsYm8pLHZvKGV3LDUsVWkpLHZvKE1jZSw1LFVpKSx2byhPaiw1LFVpKSx2byhSaiw1LFVpKSksMiZoKXtsZXQgeTtIaSh5PSRp''@;'; + put 'put ''KCkpJiYodi5zY3JvbGxhYmxlQ29sdW1ucz15LmZpcnN0KSxIaSh5PSRpKCkpJiYodi5kYXRhZ3JpZFRhYmxlPXkuZmlyc3QpLEhpKHk9JGkoKSkmJih2Ll9wcm9qZWN0ZWREaXNwbGF5Q29sdW1ucz15LmZpcnN0KSxIaSh5PSRpKCkpJiYodi5fcHJvamVjdGVkQ2FsY3VsYXRpb25Db2x1bW5z''@;'; + put 'put ''PXkuZmlyc3QpLEhpKHk9JGkoKSkmJih2Ll9kaXNwbGF5ZWRSb3dzPXkuZmlyc3QpLEhpKHk9JGkoKSkmJih2Ll9jYWxjdWxhdGlvblJvd3M9eS5maXJzdCl9fSxob3N0VmFyczo0LGhvc3RCaW5kaW5nczpmdW5jdGlvbihoLHYpezImaCYmRmkoImRhdGFncmlkLWhvc3QiLCEwKSgiZGF0YWdy''@;'; + put 'put ''aWQtZGV0YWlsLW9wZW4iLHYuZGV0YWlsU2VydmljZS5pc09wZW4pfSxpbnB1dHM6e2xvYWRpbmc6WyJjbHJEZ0xvYWRpbmciLCJsb2FkaW5nIl0sc2VsZWN0ZWQ6WyJjbHJEZ1NlbGVjdGVkIiwic2VsZWN0ZWQiXSxzaW5nbGVTZWxlY3RlZDpbImNsckRnU2luZ2xlU2VsZWN0ZWQiLCJzaW5n''@;'; + put 'put ''bGVTZWxlY3RlZCJdLGNsckRnU2luZ2xlU2VsZWN0aW9uQXJpYUxhYmVsOiJjbHJEZ1NpbmdsZVNlbGVjdGlvbkFyaWFMYWJlbCIsY2xyRGdTaW5nbGVBY3Rpb25hYmxlQXJpYUxhYmVsOiJjbHJEZ1NpbmdsZUFjdGlvbmFibGVBcmlhTGFiZWwiLGNsckRldGFpbEV4cGFuZGFibGVBcmlhTGFi''@;'; + put 'put ''ZWw6ImNsckRldGFpbEV4cGFuZGFibGVBcmlhTGFiZWwiLGNsckRnRGlzYWJsZVBhZ2VGb2N1czoiY2xyRGdEaXNhYmxlUGFnZUZvY3VzIixjbHJEZ1ByZXNlcnZlU2VsZWN0aW9uOiJjbHJEZ1ByZXNlcnZlU2VsZWN0aW9uIixyb3dTZWxlY3Rpb25Nb2RlOlsiY2xyRGdSb3dTZWxlY3Rpb24i''@;'; + put 'put ''LCJyb3dTZWxlY3Rpb25Nb2RlIl19LG91dHB1dHM6e3JlZnJlc2g6ImNsckRnUmVmcmVzaCIsc2VsZWN0ZWRDaGFuZ2VkOiJjbHJEZ1NlbGVjdGVkQ2hhbmdlIixzaW5nbGVTZWxlY3RlZENoYW5nZWQ6ImNsckRnU2luZ2xlU2VsZWN0ZWRDaGFuZ2UifSxmZWF0dXJlczpbaG8oW3VaLEFxLHZ2''@;'; + put 'put ''LGh3LHB3LHBTLEZMLE5MLGFaLEE4LE9jLGx5ZSxWZmUsQXYsVWZlLHN5ZV0pXSxuZ0NvbnRlbnRTZWxlY3RvcnM6X3UsZGVjbHM6MzIsdmFyczo3LGNvbnN0czpbWzEsImRhdGFncmlkLW91dGVyLXdyYXBwZXIiXSxbMSwiZGF0YWdyaWQtaW5uZXItd3JhcHBlciJdLFsxLCJkYXRhZ3JpZCJd''@;'; + put 'put ''LFsiZGF0YWdyaWQiLCIiXSxbMSwiZGF0YWdyaWQtdGFibGUtd3JhcHBlciJdLFsicm9sZSIsImdyaWQiLCJ0YWJpbmRleCIsIi0xIiwxLCJkYXRhZ3JpZC10YWJsZSJdLFsiZGF0YWdyaWRUYWJsZSIsIiJdLFsicm9sZSIsInJvd2dyb3VwIiwxLCJkYXRhZ3JpZC1oZWFkZXIiXSxbInJvbGUi''@;'; + put 'put ''LCJyb3ciLDEsImRhdGFncmlkLXJvdyJdLFsxLCJkYXRhZ3JpZC1yb3ctbWFzdGVyIiwiZGF0YWdyaWQtcm93LWZsZXgiXSxbMSwiZGF0YWdyaWQtcm93LXN0aWNreSJdLFsicm9sZSIsImNvbHVtbmhlYWRlciIsImNsYXNzIiwiZGF0YWdyaWQtY29sdW1uIGRhdGFncmlkLXNlbGVjdCBkYXRh''@;'; + put 'put ''Z3JpZC1maXhlZC1jb2x1bW4iLDMsImtleWRvd24uc3BhY2UiLDQsIm5nSWYiXSxbInJvbGUiLCJjb2x1bW5oZWFkZXIiLCJjbGFzcyIsImRhdGFncmlkLWNvbHVtbiBkYXRhZ3JpZC1zZWxlY3QgZGF0YWdyaWQtZml4ZWQtY29sdW1uIiw0LCJuZ0lmIl0sWyJyb2xlIiwiY29sdW1uaGVhZGVy''@;'; + put 'put ''IiwiY2xhc3MiLCJkYXRhZ3JpZC1jb2x1bW4gZGF0YWdyaWQtcm93LWFjdGlvbnMgZGF0YWdyaWQtZml4ZWQtY29sdW1uIiw0LCJuZ0lmIl0sWyJyb2xlIiwiY29sdW1uaGVhZGVyIiwiY2xhc3MiLCJkYXRhZ3JpZC1jb2x1bW4gZGF0YWdyaWQtZXhwYW5kYWJsZS1jYXJldCBkYXRhZ3JpZC1m''@;'; + put 'put ''aXhlZC1jb2x1bW4iLDQsIm5nSWYiXSxbMSwiZGF0YWdyaWQtcm93LXNjcm9sbGFibGUiXSxbInByb2plY3RlZERpc3BsYXlDb2x1bW5zIiwiIl0sWyJkaXNwbGF5ZWRSb3dzIiwiIl0sWzQsIm5nSWYiXSxbImNsYXNzIiwiZGF0YWdyaWQtc3Bpbm5lciIsNCwibmdJZiJdLFsxLCJkYXRhZ3Jp''@;'; + put 'put ''ZC1jYWxjdWxhdGlvbi10YWJsZSJdLFsxLCJkYXRhZ3JpZC1jYWxjdWxhdGlvbi1oZWFkZXIiXSxbInByb2plY3RlZENhbGN1bGF0aW9uQ29sdW1ucyIsIiJdLFsiY2FsY3VsYXRpb25Sb3dzIiwiIl0sWyJyb2xlIiwiY29sdW1uaGVhZGVyIiwxLCJkYXRhZ3JpZC1jb2x1bW4iLCJkYXRhZ3Jp''@;'; + put 'put ''ZC1zZWxlY3QiLCJkYXRhZ3JpZC1maXhlZC1jb2x1bW4iLDMsImtleWRvd24uc3BhY2UiXSxbMSwiY2xyLWNoZWNrYm94LXdyYXBwZXIiXSxbInR5cGUiLCJjaGVja2JveCIsInRhYmluZGV4IiwiLTEiLDMsImlkIiwibmdNb2RlbCIsIm5nTW9kZWxDaGFuZ2UiXSxbMSwiY2xyLWNvbnRyb2wt''@;'; + put 'put ''bGFiZWwiLCJjbHItY29sLW51bGwiLDMsImZvciJdLFsxLCJjbHItc3Itb25seSJdLFsxLCJkYXRhZ3JpZC1jb2x1bW4tc2VwYXJhdG9yIl0sWyJyb2xlIiwiY29sdW1uaGVhZGVyIiwxLCJkYXRhZ3JpZC1jb2x1bW4iLCJkYXRhZ3JpZC1zZWxlY3QiLCJkYXRhZ3JpZC1maXhlZC1jb2x1bW4i''@;'; + put 'put ''XSxbInJvbGUiLCJjb2x1bW5oZWFkZXIiLDEsImRhdGFncmlkLWNvbHVtbiIsImRhdGFncmlkLXJvdy1hY3Rpb25zIiwiZGF0YWdyaWQtZml4ZWQtY29sdW1uIl0sWyJyb2xlIiwiY29sdW1uaGVhZGVyIiwxLCJkYXRhZ3JpZC1jb2x1bW4iLCJkYXRhZ3JpZC1leHBhbmRhYmxlLWNhcmV0Iiwi''@;'; + put 'put ''ZGF0YWdyaWQtZml4ZWQtY29sdW1uIl0sWzEsImRhdGFncmlkLXNwaW5uZXIiXSxbImNsck1lZGl1bSIsIiJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihoLHYpezEmaCYmKEswKFRjZSksTmkoMCkscnQoMSwiZGl2IiwwKSgyLCJkaXYiLDEpKDMsImRpdiIsMiwzKSg1LCJkaXYiLDQpKDYsImRpdiIs''@;'; + put 'put ''NSw2KSg4LCJkaXYiLDcpKDksImRpdiIsOCkoMTAsImRpdiIsOSkoMTEsImRpdiIsMTApLHJuKDEyLENMLDcsNSwiZGl2IiwxMSkscm4oMTMsQmosMiwxLCJkaXYiLDEyKSxybigxNCxFY2UsMiwxLCJkaXYiLDEzKSxybigxNSx4JCwyLDEsImRpdiIsMTQpLGx0KCkscnQoMTYsImRpdiIsMTUp''@;'; + put 'put ''LGYxKDE3LG51bGwsMTYpLGx0KCkoKSgpKCksZjEoMTksbnVsbCwxNyksTmkoMjEsMSkscm4oMjIseGNlLDEsMCwiY2xyLWRnLXBsYWNlaG9sZGVyIiwxOCksbHQoKSgpKCksTmkoMjMsMikscm4oMjQsYzgsMywwLCJkaXYiLDE5KSxsdCgpLE5pKDI1LDMpLGx0KCkscnQoMjYsImRpdiIsMjAp''@;'; + put 'put ''KDI3LCJkaXYiLDIxKSxmMSgyOCxudWxsLDIyKSxsdCgpLGYxKDMwLG51bGwsMjMpLGx0KCkpLDImaCYmKHV0KDMpLEdpKCJhcmlhLWhpZGRlbiIsISF2LmRldGFpbFNlcnZpY2UuaXNPcGVufHxudWxsKSx1dCg5KSxUdCgibmdJZiIsdi5zZWxlY3Rpb24uc2VsZWN0aW9uVHlwZT09PXYuU0VM''@;'; + put 'put ''RUNUSU9OX1RZUEUuTXVsdGkpLHV0KDEpLFR0KCJuZ0lmIix2LnNlbGVjdGlvbi5zZWxlY3Rpb25UeXBlPT09di5TRUxFQ1RJT05fVFlQRS5TaW5nbGUpLHV0KDEpLFR0KCJuZ0lmIix2LnJvd0FjdGlvblNlcnZpY2UuaGFzQWN0aW9uYWJsZVJvdyksdXQoMSksVHQoIm5nSWYiLHYuZXhwYW5k''@;'; + put 'put ''YWJsZVJvd3MuaGFzRXhwYW5kYWJsZVJvd3x8di5kZXRhaWxTZXJ2aWNlLmVuYWJsZWQpLHV0KDcpLFR0KCJuZ0lmIiwhdi5wbGFjZWhvbGRlciksdXQoMiksVHQoIm5nSWYiLHYubG9hZGluZykpfSxkZXBlbmRlbmNpZXM6W2pmZSxnYSxObyxJZix4cyxUcyxvdF0sZW5jYXBzdWxhdGlvbjoy''@;'; + put 'put ''fSksZH0pKCksUWZlPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCl7dGhpcy5jb2x1bW5zU2VydmljZT1oLHRoaXMuYWxsU2VsZWN0ZWQ9bmV3IGFyfWdldCBjbHJBbGxTZWxlY3RlZCgpe3JldHVybiB0aGlzLmFsbFNlbGVjdGVkLmFzT2JzZXJ2YWJsZSgpfWhpZGVhYmxlQ29sdW1ucygp''@;'; + put 'put ''e3JldHVybiB0aGlzLmNvbHVtbnNTZXJ2aWNlLmNvbHVtbnMuZmlsdGVyKGg9PmgudmFsdWUuaGlkZWFibGUpfWdldCBhbGxIaWRlYWJsZXNWaXNpYmxlKCl7cmV0dXJuIDA9PT10aGlzLmhpZGVhYmxlQ29sdW1ucygpLmZpbHRlcihoPT5oLnZhbHVlLmhpZGRlbikubGVuZ3RofXNlbGVjdEFs''@;'; + put 'put ''bCgpe3RoaXMuaGlkZWFibGVDb2x1bW5zKCkuZm9yRWFjaChoPT50aGlzLmNvbHVtbnNTZXJ2aWNlLmVtaXRTdGF0ZUNoYW5nZShoLHtoaWRkZW46ITEsY2hhbmdlczpbcGguSElEREVOXX0pKSx0aGlzLmFsbFNlbGVjdGVkLm5leHQoITApfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24o''@;'; + put 'put ''aCl7cmV0dXJuIG5ldyhofHxkKShLdChBdikpfSxkLlx1MDI3NWNtcD1UaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJjbHItZGctY29sdW1uLXRvZ2dsZS1idXR0b24iXV0sb3V0cHV0czp7Y2xyQWxsU2VsZWN0ZWQ6ImNsckFsbFNlbGVjdGVkIn0sbmdDb250ZW50U2VsZWN0b3JzOm5hLGRlY2xz''@;'; + put 'put ''OjIsdmFyczoxLGNvbnN0czpbWyJ0eXBlIiwiYnV0dG9uIiwxLCJidG4iLCJidG4tc20iLCJidG4tbGluayIsInN3aXRjaC1idXR0b24iLDMsImRpc2FibGVkIiwiY2xpY2siXV0sdGVtcGxhdGU6ZnVuY3Rpb24oaCx2KXsxJmgmJihLMCgpLHJ0KDAsImJ1dHRvbiIsMCksR24oImNsaWNrIixm''@;'; + put 'put ''dW5jdGlvbigpe3JldHVybiB2LnNlbGVjdEFsbCgpfSksTmkoMSksbHQoKSksMiZoJiZUdCgiZGlzYWJsZWQiLHYuYWxsSGlkZWFibGVzVmlzaWJsZSl9LGVuY2Fwc3VsYXRpb246Mn0pLGR9KSgpLHV5ZT0oKCk9PntjbGFzcyBke31yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0''@;'; + put 'put ''dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVjbXA9VGkoe3R5cGU6ZCxzZWxlY3RvcnM6W1siY2xyLWRnLWNvbHVtbi10b2dnbGUtdGl0bGUiXV0sbmdDb250ZW50U2VsZWN0b3JzOm5hLGRlY2xzOjEsdmFyczowLHRlbXBsYXRlOmZ1bmN0aW9uKGgsdil7MSZoJiYoSzAoKSxOaSgwKSl9LGVuY2Fw''@;'; + put 'put ''c3VsYXRpb246Mn0pLGR9KSgpLEpmZT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgpe3RoaXMuX2l0ZW1zPWh9c2V0IHRyYWNrQnkoaCl7dGhpcy5faXRlbXMmJih0aGlzLl9pdGVtcy50cmFja0J5PWgpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxk''@;'; + put 'put ''KShLdChwdyw4KSl9LGQuXHUwMjc1ZGlyPVdpKHt0eXBlOmQsc2VsZWN0b3JzOltbIiIsIm5nRm9yVHJhY2tCeSIsIiJdXSxpbnB1dHM6e3RyYWNrQnk6WyJuZ0ZvclRyYWNrQnkiLCJ0cmFja0J5Il19fSksZH0pKCksWGZlPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2LHksQyxJLGos''@;'; + put 'put ''dWUpe3RoaXMuY29tbW9uU3RyaW5ncz1oLHRoaXMuY29sdW1uc1NlcnZpY2U9dix0aGlzLmNvbHVtblN3aXRjaElkPXksdGhpcy5wbGF0Zm9ybUlkPUMsdGhpcy56b25lPUksdGhpcy5wb3BvdmVySWQ9aix0aGlzLnBvcG92ZXJUb2dnbGVTZXJ2aWNlPXVlLHRoaXMuc21hcnRQb3NpdGlvbj17''@;'; + put 'put ''YXhpczokMS5WRVJUSUNBTCxzaWRlOmwuQkVGT1JFLGFuY2hvcjpfby5TVEFSVCxjb250ZW50Ol9vLlNUQVJUfSx0aGlzLnN1YnNjcmlwdGlvbj11ZS5vcGVuQ2hhbmdlLnN1YnNjcmliZShfZT0+dGhpcy5vcGVuU3RhdGU9X2UpfWdldCBhbGxDb2x1bW5zVmlzaWJsZSgpe3JldHVybiB0aGlz''@;'; + put 'put ''Ll9hbGxDb2x1bW5zVmlzaWJsZX1zZXQgYWxsQ29sdW1uc1Zpc2libGUoaCl7dGhpcy5fYWxsQ29sdW1uc1Zpc2libGU9aH1uZ09uRGVzdHJveSgpe3RoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCl9Z2V0IGhpZGVhYmxlQ29sdW1uU3RhdGVzKCl7cmV0dXJuIHRoaXMuY29sdW1uc1Nl''@;'; + put 'put ''cnZpY2UuY29sdW1ucy5maWx0ZXIodj0+di52YWx1ZS5oaWRlYWJsZSkubWFwKHY9PnYudmFsdWUpfWdldCBoYXNPbmx5T25lVmlzaWJsZUNvbHVtbigpe3JldHVybiB0aGlzLmNvbHVtbnNTZXJ2aWNlLmNvbHVtbnMubGVuZ3RoLXRoaXMuaGlkZWFibGVDb2x1bW5TdGF0ZXMubGVuZ3RoPT0w''@;'; + put 'put ''JiYxPT09dGhpcy5oaWRlYWJsZUNvbHVtblN0YXRlcy5maWx0ZXIodj0+IXYuaGlkZGVuKS5sZW5ndGh9dG9nZ2xlQ29sdW1uU3RhdGUoaCx2KXtjb25zdCB5PXRoaXMuY29sdW1uc1NlcnZpY2UuY29sdW1ucy5maWx0ZXIoQz0+Qy52YWx1ZT09PWgpWzBdO3RoaXMuY29sdW1uc1NlcnZpY2Uu''@;'; + put 'put ''ZW1pdFN0YXRlQ2hhbmdlKHkse2hpZGRlbjp2LGNoYW5nZXM6W3BoLkhJRERFTl19KX10b2dnbGVTd2l0Y2hQYW5lbCgpe3RoaXMub3BlblN0YXRlPSF0aGlzLm9wZW5TdGF0ZX1hbGxDb2x1bW5zU2VsZWN0ZWQoKXt0aGlzLmFsbFNlbGVjdGVkRWxlbWVudC5uYXRpdmVFbGVtZW50LmZvY3Vz''@;'; + put 'put ''KCl9dHJhY2tCeUZuKGgpe3JldHVybiBofX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShLdChucyksS3QoQXYpLEt0KHkyKSxLdChMMiksS3QoX2wpLEt0KHkyKSxLdCh6cykpfSxkLlx1MDI3NWNtcD1UaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJjbHIt''@;'; + put 'put ''ZGctY29sdW1uLXRvZ2dsZSJdXSxjb250ZW50UXVlcmllczpmdW5jdGlvbihoLHYseSl7aWYoMSZoJiYoeG8oeSx1eWUsNSkseG8oeSxRZmUsNSkpLDImaCl7bGV0IEM7SGkoQz0kaSgpKSYmKHYuY3VzdG9tVG9nZ2xlVGl0bGU9Qy5maXJzdCksSGkoQz0kaSgpKSYmKHYuY3VzdG9tVG9nZ2xl''@;'; + put 'put ''QnV0dG9uPUMuZmlyc3QpfX0sdmlld1F1ZXJ5OmZ1bmN0aW9uKGgsdil7aWYoMSZoJiZ2byhQaiw1LGJvKSwyJmgpe2xldCB5O0hpKHk9JGkoKSkmJih2LmFsbFNlbGVjdGVkRWxlbWVudD15LmZpcnN0KX19LGhvc3RWYXJzOjQsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGgsdil7MiZoJiZGaSgi''@;'; + put 'put ''Y29sdW1uLXN3aXRjaC13cmFwcGVyIiwhMCkoImFjdGl2ZSIsdi5vcGVuU3RhdGUpfSxmZWF0dXJlczpbaG8oW09jLGg4LEdzLHpzXSldLG5nQ29udGVudFNlbGVjdG9yczpPY2UsZGVjbHM6NSx2YXJzOjksY29uc3RzOltbInJvbGUiLCJidXR0b24iLCJ0eXBlIiwiYnV0dG9uIiwiY2xyUG9w''@;'; + put 'put ''b3ZlckFuY2hvciIsIiIsImNsclBvcG92ZXJPcGVuQ2xvc2VCdXR0b24iLCIiLDEsImJ0biIsImJ0bi1zbSIsImJ0bi1saW5rIiwiY29sdW1uLXRvZ2dsZS0tYWN0aW9uIl0sWyJzaGFwZSIsInZpZXctY29sdW1ucyIsImFyaWEtaGlkZGVuIiwidHJ1ZSJdLFsxLCJjbHItc3Itb25seSJdLFsi''@;'; + put 'put ''Y2xhc3MiLCJjb2x1bW4tc3dpdGNoIiwicm9sZSIsImRpYWxvZyIsImNsckZvY3VzVHJhcCIsIiIsMywiaWQiLDQsImNsclBvcG92ZXJDb250ZW50IiwiY2xyUG9wb3ZlckNvbnRlbnRBdCIsImNsclBvcG92ZXJDb250ZW50T3V0c2lkZUNsaWNrVG9DbG9zZSIsImNsclBvcG92ZXJDb250ZW50''@;'; + put 'put ''U2Nyb2xsVG9DbG9zZSJdLFsicm9sZSIsImRpYWxvZyIsImNsckZvY3VzVHJhcCIsIiIsMSwiY29sdW1uLXN3aXRjaCIsMywiaWQiXSxbMSwic3dpdGNoLWhlYWRlciJdLFsidGFiaW5kZXgiLCItMSIsMSwiY2xyLXNyLW9ubHkiXSxbImFsbFNlbGVjdGVkIiwiIl0sWzQsIm5nSWYiXSxbImNs''@;'; + put 'put ''clBvcG92ZXJDbG9zZUJ1dHRvbiIsIiIsInR5cGUiLCJidXR0b24iLDEsImJ0biIsImJ0bi1zbSIsImJ0bi1saW5rIiwidG9nZ2xlLXN3aXRjaC1jbG9zZS1idXR0b24iXSxbInNoYXBlIiwid2luZG93LWNsb3NlIiwiYXJpYS1oaWRkZW4iLCJ0cnVlIl0sWzEsInN3aXRjaC1jb250ZW50Iiwi''@;'; + put 'put ''bGlzdC11bnN0eWxlZCJdLFs0LCJuZ0ZvciIsIm5nRm9yT2YiLCJuZ0ZvclRyYWNrQnkiXSxbMSwic3dpdGNoLWZvb3RlciJdLFszLCJjbHJBbGxTZWxlY3RlZCIsNCwibmdJZiJdLFsiY2xyQ2hlY2tib3giLCIiLCJ0eXBlIiwiY2hlY2tib3giLDMsImRpc2FibGVkIiwibmdNb2RlbCIsIm5n''@;'; + put 'put ''TW9kZWxDaGFuZ2UiXSxbMywibmdUZW1wbGF0ZU91dGxldCJdLFszLCJjbHJBbGxTZWxlY3RlZCJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihoLHYpezEmaCYmKEswKG5TKSxydCgwLCJidXR0b24iLDApLENyKDEsImNkcy1pY29uIiwxKSxydCgyLCJzcGFuIiwyKSxZdCgzKSxsdCgpKCkscm4oNCxM''@;'; + put 'put ''Y2UsMTYsMTAsImRpdiIsMykpLDImaCYmKEdpKCJhcmlhLWNvbnRyb2xzIix2LnBvcG92ZXJJZCkoImFyaWEtb3ducyIsdi5wb3BvdmVySWQpKCJhcmlhLWV4cGFuZGVkIix2Lm9wZW5TdGF0ZSksdXQoMSksR2koInRpdGxlIix2LmNvbW1vblN0cmluZ3Mua2V5cy5waWNrQ29sdW1ucyksdXQo''@;'; + put 'put ''Miksamkodi5jb21tb25TdHJpbmdzLmtleXMucGlja0NvbHVtbnMpLHV0KDEpLFR0KCJjbHJQb3BvdmVyQ29udGVudCIsdi5vcGVuU3RhdGUpKCJjbHJQb3BvdmVyQ29udGVudEF0Iix2LnNtYXJ0UG9zaXRpb24pKCJjbHJQb3BvdmVyQ29udGVudE91dHNpZGVDbGlja1RvQ2xvc2UiLCEwKSgi''@;'; + put 'put ''Y2xyUG9wb3ZlckNvbnRlbnRTY3JvbGxUb0Nsb3NlIiwhMCkpfSxkZXBlbmRlbmNpZXM6W09pLFFmZSxzdyx1dyxabyxkbCxmdyxObyxycSxFcyxKZmUsSWYsUm8seHMsVHMsb3QsWGRdLGVuY2Fwc3VsYXRpb246Mn0pLGR9KSgpLGZ5ZT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgpe3Ro''@;'; + put 'put ''aXMuZXhwYW5kYWJsZVJvd3NDb3VudD1oLHRoaXMuZXhwYW5kYWJsZVJvd3NDb3VudCYmdGhpcy5leHBhbmRhYmxlUm93c0NvdW50LnJlZ2lzdGVyKCl9bmdPbkRlc3Ryb3koKXt0aGlzLmV4cGFuZGFibGVSb3dzQ291bnQmJnRoaXMuZXhwYW5kYWJsZVJvd3NDb3VudC51bnJlZ2lzdGVyKCl9''@;'; + put 'put ''fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKEt0KE5MLDgpKX0sZC5cdTAyNzVkaXI9V2koe3R5cGU6ZCxzZWxlY3RvcnM6W1siIiwiY2xySWZFeHBhbmRlZCIsIiJdXX0pLGR9KSgpLFRPZT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKCl7dGhpcy5f''@;'; + put 'put ''dGV4dENvbnRlbnRDaGFuZ2U9bmV3ICRlfWdldCB0ZXh0Q29udGVudENoYW5nZSgpe3JldHVybiB0aGlzLl90ZXh0Q29udGVudENoYW5nZS5hc09ic2VydmFibGUoKX1nZXQgdGV4dENvbnRlbnQoKXtyZXR1cm4gdGhpcy5fdGV4dENvbnRlbnR9c2V0IHRleHRDb250ZW50KGgpe3RoaXMuX3Rl''@;'; + put 'put ''eHRDb250ZW50PWgsdGhpcy5fdGV4dENvbnRlbnRDaGFuZ2UubmV4dChoKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1ZmFjfSksZH0pKCksSU9lPSgoKT0+e2NsYXNzIGR7''@;'; + put 'put ''fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1MDI3NW1vZD1jbyh7dHlwZTpkfSksZC5cdTAyNzVpbmo9YjAoe2ltcG9ydHM6W1tiYV1dfSksZH0pKCksY1o9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYseSxDKXt0aGlzLnNlbGVjdGlv''@;'; + put 'put ''bj1oLHRoaXMuZGV0YWlsU2VydmljZT12LHRoaXMuY29sdW1uc1NlcnZpY2U9eSx0aGlzLmNvbW1vblN0cmluZ3M9Qyx0aGlzLlNFTEVDVElPTl9UWVBFPVdzfWdldCBoYXNIaWRlYWJsZUNvbHVtbnMoKXtyZXR1cm4gdGhpcy5jb2x1bW5zU2VydmljZS5oYXNIaWRlYWJsZUNvbHVtbnN9fXJl''@;'; + put 'put ''dHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKEt0KHVaKSxLdChBOCksS3QoQXYpLEt0KG5zKSl9LGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQsc2VsZWN0b3JzOltbImNsci1kZy1mb290ZXIiXV0sY29udGVudFF1ZXJpZXM6ZnVuY3Rpb24oaCx2LHkpe2lmKDEm''@;'; + put 'put ''aCYmeG8oeSxYZmUsNSksMiZoKXtsZXQgQztIaShDPSRpKCkpJiYodi50b2dnbGU9Qy5maXJzdCl9fSxob3N0VmFyczoyLGhvc3RCaW5kaW5nczpmdW5jdGlvbihoLHYpezImaCYmRmkoImRhdGFncmlkLWZvb3RlciIsITApfSxuZ0NvbnRlbnRTZWxlY3RvcnM6SGNlLGRlY2xzOjMsdmFyczoy''@;'; + put 'put ''LGNvbnN0czpbWzQsIm5nSWYiXSxbMSwiY2xyLWZvcm0tY29udHJvbC1kaXNhYmxlZCJdLFsxLCJkYXRhZ3JpZC1mb290ZXItc2VsZWN0Il0sWyJjbHJDaGVja2JveCIsIiIsInR5cGUiLCJjaGVja2JveCIsImNoZWNrZWQiLCJjaGVja2VkIiwiZGlzYWJsZWQiLCIiXSxbMSwiY2xyLXNyLW9u''@;'; + put 'put ''bHkiXSxbMSwiZGF0YWdyaWQtZm9vdGVyLWRlc2NyaXB0aW9uIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGgsdil7MSZoJiYoSzAoSSQpLHJuKDAsQmNlLDgsMiwibmctY29udGFpbmVyIiwwKSxybigxLEZjZSw1LDEsIm5nLWNvbnRhaW5lciIsMCksTmkoMikpLDImaCYmKFR0KCJuZ0lmIix2LnNl''@;'; + put 'put ''bGVjdGlvbi5zZWxlY3Rpb25UeXBlPT09di5TRUxFQ1RJT05fVFlQRS5NdWx0aSYmdi5zZWxlY3Rpb24uY3VycmVudC5sZW5ndGg+MCksdXQoMSksVHQoIm5nSWYiLCF2LmRldGFpbFNlcnZpY2UuaXNPcGVuKSl9LGRlcGVuZGVuY2llczpbT2ksWGZlLE5vLFJvLG90XSxlbmNhcHN1bGF0aW9u''@;'; + put 'put ''OjJ9KSxkfSkoKTtjb25zdCBLZmU9bmV3IHplKCJDT0xVTU5fU1RBVEUiKSxMT2U9e3Byb3ZpZGU6S2ZlLHVzZUZhY3Rvcnk6ZnVuY3Rpb24gRE9lKCl7cmV0dXJuIG5ldyBjcyh7Y2hhbmdlczpbXX0pfX07bGV0ICRmZT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgpe3RoaXMucGFnZT1o''@;'; + put 'put ''fW5nT25Jbml0KCl7KCF0aGlzLnBhZ2VTaXplT3B0aW9uc3x8MD09PXRoaXMucGFnZVNpemVPcHRpb25zLmxlbmd0aCkmJih0aGlzLnBhZ2VTaXplT3B0aW9ucz1bdGhpcy5wYWdlLnNpemVdKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoS3QoaHcp''@;'; + put 'put ''KX0sZC5cdTAyNzVjbXA9VGkoe3R5cGU6ZCxzZWxlY3RvcnM6W1siY2xyLWRnLXBhZ2Utc2l6ZSJdXSxpbnB1dHM6e3BhZ2VTaXplT3B0aW9uczpbImNsclBhZ2VTaXplT3B0aW9ucyIsInBhZ2VTaXplT3B0aW9ucyJdfSxuZ0NvbnRlbnRTZWxlY3RvcnM6bmEsZGVjbHM6NCx2YXJzOjQsY29u''@;'; + put 'put ''c3RzOltbMSwiY2xyLXNlbGVjdC13cmFwcGVyIl0sWzMsIm5nTW9kZWwiLCJuZ01vZGVsQ2hhbmdlIl0sWzMsIm5nVmFsdWUiLDQsIm5nRm9yIiwibmdGb3JPZiJdLFszLCJuZ1ZhbHVlIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGgsdil7MSZoJiYoSzAoKSxOaSgwKSxydCgxLCJkaXYiLDApKDIs''@;'; + put 'put ''InNlbGVjdCIsMSksR24oIm5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9uKEMpe3JldHVybiB2LnBhZ2Uuc2l6ZT1DfSkscm4oMyxEJCwyLDIsIm9wdGlvbiIsMiksbHQoKSgpKSwyJmgmJih1dCgyKSxGaSgiY2xyLXBhZ2Utc2l6ZS1zZWxlY3QiLCEwKSxUdCgibmdNb2RlbCIsdi5wYWdlLnNpemUp''@;'; + put 'put ''LHV0KDEpLFR0KCJuZ0Zvck9mIix2LnBhZ2VTaXplT3B0aW9ucykpfSxkZXBlbmRlbmNpZXM6W09mLHhzLFRzLEVzLHEzLGVkXSxlbmNhcHN1bGF0aW9uOjJ9KSxkfSkoKSxmWj0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgsdix5KXt0aGlzLnBhZ2U9aCx0aGlzLmNvbW1vblN0cmluZ3M9''@;'; + put 'put ''dix0aGlzLmRldGFpbFNlcnZpY2U9eSx0aGlzLmN1cnJlbnRDaGFuZ2VkPW5ldyBhcighMSksdGhpcy5wYWdlLmFjdGl2YXRlZD0hMH1uZ09uSW5pdCgpe3RoaXMucGFnZS5zaXplfHwodGhpcy5wYWdlLnNpemU9MTApLHRoaXMuX3BhZ2VTdWJzY3JpcHRpb249dGhpcy5wYWdlLmNoYW5nZS5z''@;'; + put 'put ''dWJzY3JpYmUoaD0+dGhpcy5jdXJyZW50Q2hhbmdlZC5lbWl0KGgpKX1uZ09uRGVzdHJveSgpe3RoaXMucGFnZS5yZXNldFBhZ2VTaXplKCEwKSx0aGlzLl9wYWdlU3Vic2NyaXB0aW9uJiZ0aGlzLl9wYWdlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCl9Z2V0IHBhZ2VTaXplKCl7cmV0dXJu''@;'; + put 'put ''IHRoaXMucGFnZS5zaXplfXNldCBwYWdlU2l6ZShoKXsibnVtYmVyIj09dHlwZW9mIGgmJih0aGlzLnBhZ2Uuc2l6ZT1oKX1nZXQgdG90YWxJdGVtcygpe3JldHVybiB0aGlzLnBhZ2UudG90YWxJdGVtc31zZXQgdG90YWxJdGVtcyhoKXsibnVtYmVyIj09dHlwZW9mIGgmJih0aGlzLnBhZ2Uu''@;'; + put 'put ''dG90YWxJdGVtcz1oKX1nZXQgbGFzdFBhZ2UoKXtyZXR1cm4gdGhpcy5wYWdlLmxhc3R9c2V0IGxhc3RQYWdlKGgpeyJudW1iZXIiPT10eXBlb2YgaCYmKHRoaXMucGFnZS5sYXN0PWgpfWdldCBjdXJyZW50UGFnZSgpe3JldHVybiB0aGlzLnBhZ2UuY3VycmVudH1zZXQgY3VycmVudFBhZ2Uo''@;'; + put 'put ''aCl7Im51bWJlciI9PXR5cGVvZiBoJiYodGhpcy5wYWdlLmN1cnJlbnQ9aCl9cHJldmlvdXMoKXt0aGlzLnBhZ2UucHJldmlvdXMoKX1uZXh0KCl7dGhpcy5wYWdlLm5leHQoKX1nZXQgZmlyc3RJdGVtKCl7cmV0dXJuIHRoaXMucGFnZS5maXJzdEl0ZW19Z2V0IGxhc3RJdGVtKCl7cmV0dXJu''@;'; + put 'put ''IHRoaXMucGFnZS5sYXN0SXRlbX1nZXQgbWlkZGxlUGFnZXMoKXtjb25zdCBoPVtdO3JldHVybiB0aGlzLnBhZ2UuY3VycmVudD4xJiZoLnB1c2godGhpcy5wYWdlLmN1cnJlbnQtMSksaC5wdXNoKHRoaXMucGFnZS5jdXJyZW50KSx0aGlzLnBhZ2UuY3VycmVudDx0aGlzLnBhZ2UubGFzdCYm''@;'; + put 'put ''aC5wdXNoKHRoaXMucGFnZS5jdXJyZW50KzEpLGh9dXBkYXRlQ3VycmVudFBhZ2UoaCl7Y29uc3Qgdj1wYXJzZUludChoLnRhcmdldC52YWx1ZSwxMCk7aXNOYU4odil8fCh0aGlzLnBhZ2UuY3VycmVudD12PDE/MTp2PnRoaXMucGFnZS5sYXN0P3RoaXMucGFnZS5sYXN0OnYpLHRoaXMuY3Vy''@;'; + put 'put ''cmVudFBhZ2VJbnB1dFJlZi5uYXRpdmVFbGVtZW50LnZhbHVlPXRoaXMucGFnZS5jdXJyZW50fX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShLdChodyksS3QobnMpLEt0KEE4KSl9LGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQsc2VsZWN0b3JzOltbImNs''@;'; + put 'put ''ci1kZy1wYWdpbmF0aW9uIl1dLGNvbnRlbnRRdWVyaWVzOmZ1bmN0aW9uKGgsdix5KXtpZigxJmgmJnhvKHksJGZlLDUpLDImaCl7bGV0IEM7SGkoQz0kaSgpKSYmKHYuX3BhZ2VTaXplQ29tcG9uZW50PUMuZmlyc3QpfX0sdmlld1F1ZXJ5OmZ1bmN0aW9uKGgsdil7aWYoMSZoJiZ2byhOY2Us''@;'; + put 'put ''NSksMiZoKXtsZXQgeTtIaSh5PSRpKCkpJiYodi5jdXJyZW50UGFnZUlucHV0UmVmPXkuZmlyc3QpfX0saG9zdFZhcnM6Mixob3N0QmluZGluZ3M6ZnVuY3Rpb24oaCx2KXsyJmgmJkZpKCJwYWdpbmF0aW9uIiwhMCl9LGlucHV0czp7ZGlzYWJsZUN1cnJlbnRQYWdlSW5wdXQ6WyJjbHJEZ1Bh''@;'; + put 'put ''Z2VJbnB1dERpc2FibGVkIiwiZGlzYWJsZUN1cnJlbnRQYWdlSW5wdXQiXSxwYWdlU2l6ZTpbImNsckRnUGFnZVNpemUiLCJwYWdlU2l6ZSJdLHRvdGFsSXRlbXM6WyJjbHJEZ1RvdGFsSXRlbXMiLCJ0b3RhbEl0ZW1zIl0sbGFzdFBhZ2U6WyJjbHJEZ0xhc3RQYWdlIiwibGFzdFBhZ2UiXSxj''@;'; + put 'put ''dXJyZW50UGFnZTpbImNsckRnUGFnZSIsImN1cnJlbnRQYWdlIl19LG91dHB1dHM6e2N1cnJlbnRDaGFuZ2VkOiJjbHJEZ1BhZ2VDaGFuZ2UifSxuZ0NvbnRlbnRTZWxlY3RvcnM6a3AsZGVjbHM6Mix2YXJzOjIsY29uc3RzOltbNCwibmdJZiJdLFsiY2xhc3MiLCJwYWdpbmF0aW9uLXNpemUi''@;'; + put 'put ''LDQsIm5nSWYiXSxbMSwicGFnaW5hdGlvbi1kZXNjcmlwdGlvbiJdLFsiY2xhc3MiLCJwYWdpbmF0aW9uLWxpc3QiLDQsIm5nSWYiXSxbMSwicGFnaW5hdGlvbi1zaXplIl0sWzEsInBhZ2luYXRpb24tbGlzdCJdLFsidHlwZSIsImJ1dHRvbiIsMSwicGFnaW5hdGlvbi1maXJzdCIsMywiZGlz''@;'; + put 'put ''YWJsZWQiLCJjbGljayJdLFsxLCJjbHItc3Itb25seSJdLFsic2hhcGUiLCJzdGVwLWZvcndhcmQtMiIsImRpcmVjdGlvbiIsImRvd24iXSxbInR5cGUiLCJidXR0b24iLDEsInBhZ2luYXRpb24tcHJldmlvdXMiLDMsImRpc2FibGVkIiwiY2xpY2siXSxbInNoYXBlIiwiYW5nbGUiLCJkaXJl''@;'; + put 'put ''Y3Rpb24iLCJsZWZ0Il0sWyJ0eXBlIiwidGV4dCIsImNsYXNzIiwicGFnaW5hdGlvbi1jdXJyZW50IGNsci1pbnB1dCIsMywic2l6ZSIsInZhbHVlIiwia2V5ZG93bi5lbnRlciIsImJsdXIiLDQsIm5nSWYiLCJuZ0lmRWxzZSJdLFsicmVhZE9ubHkiLCIiXSxbInR5cGUiLCJidXR0b24iLDEs''@;'; + put 'put ''InBhZ2luYXRpb24tbmV4dCIsMywiZGlzYWJsZWQiLCJjbGljayJdLFsic2hhcGUiLCJhbmdsZSIsImRpcmVjdGlvbiIsInJpZ2h0Il0sWyJ0eXBlIiwiYnV0dG9uIiwxLCJwYWdpbmF0aW9uLWxhc3QiLDMsImRpc2FibGVkIiwiY2xpY2siXSxbInNoYXBlIiwic3RlcC1mb3J3YXJkLTIiLCJk''@;'; + put 'put ''aXJlY3Rpb24iLCJ1cCJdLFsidHlwZSIsInRleHQiLDEsInBhZ2luYXRpb24tY3VycmVudCIsImNsci1pbnB1dCIsMywic2l6ZSIsInZhbHVlIiwia2V5ZG93bi5lbnRlciIsImJsdXIiXSxbImN1cnJlbnRQYWdlSW5wdXQiLCIiXSxbMSwicGFnaW5hdGlvbi1kZXNjcmlwdGlvbi1jb21wYWN0''@;'; + put 'put ''Il1dLHRlbXBsYXRlOmZ1bmN0aW9uKGgsdil7MSZoJiYoSzAocjMpLHJuKDAsWmNlLDUsMiwibmctY29udGFpbmVyIiwwKSxybigxLE8kLDE0LDEwLCJuZy1jb250YWluZXIiLDApKSwyJmgmJihUdCgibmdJZiIsIXYuZGV0YWlsU2VydmljZS5pc09wZW4pLHV0KDEpLFR0KCJuZ0lmIix2LmRl''@;'; + put 'put ''dGFpbFNlcnZpY2UuaXNPcGVuKSl9LGRlcGVuZGVuY2llczpbTm8sWm9dLGVuY2Fwc3VsYXRpb246Mn0pLGR9KSgpO2NvbnN0IHpMPSJkYXRhZ3JpZC1maXhlZC13aWR0aCIsYnE9ImRhdGFncmlkLWhpZGRlbi1jb2x1bW4iO2xldCB2Uz0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgsdix5''@;'; + put 'put ''KXt0aGlzLmVsPWgsdGhpcy5yZW5kZXJlcj12LHRoaXMuc3Vic2NyaXB0aW9ucz1bXSx0aGlzLnN1YnNjcmlwdGlvbnMucHVzaCh5LmZpbHRlclJlbmRlclN0ZXBzKGg0LkNMRUFSX1dJRFRIUykuc3Vic2NyaWJlKCgpPT50aGlzLmNsZWFyV2lkdGgoKSkpfXNldCBjb2x1bW5TdGF0ZShoKXt0''@;'; + put 'put ''aGlzLnN0YXRlU3Vic2NyaXB0aW9uJiZ0aGlzLnN0YXRlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCksdGhpcy5ydW5BbGxDaGFuZ2VzPWF5ZSx0aGlzLnN0YXRlU3Vic2NyaXB0aW9uPWguc3Vic2NyaWJlKHY9PnRoaXMuc3RhdGVDaGFuZ2VzKHYpKX1uZ09uRGVzdHJveSgpe3RoaXMuc3Vi''@;'; + put 'put ''c2NyaXB0aW9ucy5mb3JFYWNoKGg9PmgudW5zdWJzY3JpYmUoKSksdGhpcy5zdGF0ZVN1YnNjcmlwdGlvbiYmdGhpcy5zdGF0ZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpfXN0YXRlQ2hhbmdlcyhoKXt0aGlzLnJ1bkFsbENoYW5nZXMmJihoLmNoYW5nZXM9dGhpcy5ydW5BbGxDaGFuZ2Vz''@;'; + put 'put ''LGRlbGV0ZSB0aGlzLnJ1bkFsbENoYW5nZXMpLGguY2hhbmdlcyYmaC5jaGFuZ2VzLmxlbmd0aCYmaC5jaGFuZ2VzLmZvckVhY2godj0+e3N3aXRjaCh2KXtjYXNlIHBoLldJRFRIOnRoaXMuc2V0V2lkdGgoaCk7YnJlYWs7Y2FzZSBwaC5ISURERU46dGhpcy5zZXRIaWRkZW4oaCl9fSl9Y2xl''@;'; + put 'put ''YXJXaWR0aCgpe3RoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5lbC5uYXRpdmVFbGVtZW50LHpMKSx0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWwubmF0aXZlRWxlbWVudCwid2lkdGgiLG51bGwpfXNldFdpZHRoKGgpe2guc3RyaWN0V2lkdGg/dGhpcy5yZW5kZXJlci5hZGRD''@;'; + put 'put ''bGFzcyh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsekwpOnRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5lbC5uYXRpdmVFbGVtZW50LHpMKSx0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWwubmF0aXZlRWxlbWVudCwid2lkdGgiLGgud2lkdGgrInB4Iil9c2V0SGlkZGVuKGgpe2gu''@;'; + put 'put ''aGlkZGVuP3RoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5lbC5uYXRpdmVFbGVtZW50LGJxKTp0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuZWwubmF0aXZlRWxlbWVudCxicSl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKEt0KGJvKSxL''@;'; + put 'put ''dChHYSksS3QocFMpKX0sZC5cdTAyNzVkaXI9V2koe3R5cGU6ZCxzZWxlY3RvcnM6W1siY2xyLWRnLWNlbGwiXV19KSxkfSkoKSxBUz0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgsdix5LEMsSSxqLHVlKXt0aGlzLmVsPWgsdGhpcy5yZW5kZXJlcj12LHRoaXMub3JnYW5pemVyPXksdGhp''@;'; + put 'put ''cy5kb21BZGFwdGVyPUMsdGhpcy5jb2x1bW5SZXNpemVyU2VydmljZT1JLHRoaXMuY29sdW1uc1NlcnZpY2U9aix0aGlzLmNvbHVtblN0YXRlPXVlLHRoaXMucmVzaXplRW1pdHRlcj1uZXcgYXIsdGhpcy53aWR0aFNldD0hMSx0aGlzLmF1dG9TZXQ9ITEsdGhpcy5zdWJzY3JpcHRpb25zPVtd''@;'; + put 'put ''LHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMub3JnYW5pemVyLmZpbHRlclJlbmRlclN0ZXBzKGg0LkNMRUFSX1dJRFRIUykuc3Vic2NyaWJlKCgpPT50aGlzLmNsZWFyV2lkdGgoKSkpLHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHVlLnN1YnNjcmliZShfZT0+dGhpcy5zdGF0ZUNoYW5n''@;'; + put 'put ''ZXMoX2UpKSl9bmdPbkRlc3Ryb3koKXt0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChoPT5oLnVuc3Vic2NyaWJlKCkpfXN0YXRlQ2hhbmdlcyhoKXtoLmNoYW5nZXMmJmguY2hhbmdlcy5sZW5ndGgmJmguY2hhbmdlcy5mb3JFYWNoKHY9Pntzd2l0Y2godil7Y2FzZSBwaC5XSURUSDp0aGlz''@;'; + put 'put ''LnNldFdpZHRoKGgpO2JyZWFrO2Nhc2UgcGguSElEREVOOnRoaXMuc2V0SGlkZGVuKGgpfX0pfWNsZWFyV2lkdGgoKXt0aGlzLndpZHRoU2V0JiYhdGhpcy5jb2x1bW5SZXNpemVyU2VydmljZS5yZXNpemVkQnkmJnRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbC5uYXRpdmVFbGVtZW50''@;'; + put 'put ''LCJ3aWR0aCIsbnVsbCksdGhpcy5hdXRvU2V0JiZ0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuZWwubmF0aXZlRWxlbWVudCx6TCl9ZGV0ZWN0U3RyaWN0V2lkdGgoKXtyZXR1cm4gdGhpcy5jb2x1bW5SZXNpemVyU2VydmljZS5yZXNpemVkQnk/dGhpcy5jb2x1bW5SZXNpemVyU2Vy''@;'; + put 'put ''dmljZS53aWR0aEFmdGVyUmVzaXplOnRoaXMuYXV0b1NldD8wOnRoaXMuZG9tQWRhcHRlci51c2VyRGVmaW5lZFdpZHRoKHRoaXMuZWwubmF0aXZlRWxlbWVudCl9Y29tcHV0ZVdpZHRoKGgpe2xldCB2PWg7cmV0dXJuIHZ8fCh2PXRoaXMuZG9tQWRhcHRlci5zY3JvbGxXaWR0aCh0aGlzLmVs''@;'; + put 'put ''Lm5hdGl2ZUVsZW1lbnQpKSx2fWdldENvbHVtbldpZHRoU3RhdGUoKXtjb25zdCBoPXRoaXMuZGV0ZWN0U3RyaWN0V2lkdGgoKTtyZXR1cm57d2lkdGg6dGhpcy5jb21wdXRlV2lkdGgoaCksc3RyaWN0V2lkdGg6aH19c2V0Q29sdW1uU3RhdGUoaCl7dGhpcy5jb2x1bW5zU2VydmljZS5jb2x1''@;'; + put 'put ''bW5zW2hdPXRoaXMuY29sdW1uU3RhdGV9c2V0V2lkdGgoaCl7aC5zdHJpY3RXaWR0aD8odGhpcy5jb2x1bW5SZXNpemVyU2VydmljZS5yZXNpemVkQnkmJih0aGlzLnJlc2l6ZUVtaXR0ZXIuZW1pdChoLndpZHRoKSx0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWwubmF0aXZlRWxlbWVu''@;'; + put 'put ''dCwid2lkdGgiLGgud2lkdGgrInB4IiksdGhpcy53aWR0aFNldD0hMSksdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsekwpLHRoaXMuYXV0b1NldD0hMSk6KHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5lbC5uYXRpdmVFbGVtZW50LHpMKSx0aGlz''@;'; + put 'put ''LnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWwubmF0aXZlRWxlbWVudCwid2lkdGgiLGgud2lkdGgrInB4IiksdGhpcy53aWR0aFNldD0hMCx0aGlzLmF1dG9TZXQ9ITApfXNldEhpZGRlbihoKXtoLmhpZGRlbj90aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZWwubmF0aXZlRWxlbWVudCxi''@;'; + put 'put ''cSk6dGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsYnEpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShLdChibyksS3QoR2EpLEt0KHBTKSxLdChmNCksS3QoTmZlKSxLdChBdiksS3QoS2ZlKSl9LGQuXHUwMjc1''@;'; + put 'put ''ZGlyPVdpKHt0eXBlOmQsc2VsZWN0b3JzOltbImNsci1kZy1jb2x1bW4iXV0sb3V0cHV0czp7cmVzaXplRW1pdHRlcjoiY2xyRGdDb2x1bW5SZXNpemUifSxmZWF0dXJlczpbaG8oW05mZSxMT2VdKV19KSxkfSkoKSxQT2U9KCgpPT57Y2xhc3MgZHt1c2VyRGVmaW5lZFdpZHRoKGgpe3JldHVy''@;'; + put 'put ''biAwfXNjcm9sbEJhcldpZHRoKGgpe3JldHVybiAwfXNjcm9sbFdpZHRoKGgpe3JldHVybiAwfWNvbXB1dGVkSGVpZ2h0KGgpe3JldHVybiAwfWNsaWVudFJlY3QoaCl7cmV0dXJue3RvcDowLGJvdHRvbTowLGxlZnQ6MCxyaWdodDowLHdpZHRoOjAsaGVpZ2h0OjB9fW1pbldpZHRoKGgpe3Jl''@;'; + put 'put ''dHVybiAwfWZvY3VzKGgpe319cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1ZmFjfSksZH0pKCkseVM9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoKXt0aGlzLmNvbHVtbnNT''@;'; + put 'put ''ZXJ2aWNlPWgsdGhpcy5zdWJzY3JpcHRpb25zPVtdfW5nQWZ0ZXJDb250ZW50SW5pdCgpe3RoaXMuc2V0Q29sdW1uU3RhdGUoKSx0aGlzLnN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLmNlbGxzLmNoYW5nZXMuc3Vic2NyaWJlKCgpPT57dGhpcy5zZXRDb2x1bW5TdGF0ZSgpfSkpfW5nT25EZXN0''@;'; + put 'put ''cm95KCl7dGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goaD0+aC51bnN1YnNjcmliZSgpKX1zZXRDb2x1bW5TdGF0ZSgpe3RoaXMuY2VsbHMubGVuZ3RoPT09dGhpcy5jb2x1bW5zU2VydmljZS5jb2x1bW5zLmxlbmd0aCYmdGhpcy5jZWxscy5mb3JFYWNoKChoLHYpPT57dGhpcy5jb2x1bW5z''@;'; + put 'put ''U2VydmljZS5jb2x1bW5zW3ZdJiYoaC5jb2x1bW5TdGF0ZT10aGlzLmNvbHVtbnNTZXJ2aWNlLmNvbHVtbnNbdl0pfSl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKEt0KEF2KSl9LGQuXHUwMjc1ZGlyPVdpKHt0eXBlOmQsc2VsZWN0b3JzOltbImNs''@;'; + put 'put ''ci1kZy1yb3ciXSxbImNsci1kZy1yb3ctZGV0YWlsIl1dLGNvbnRlbnRRdWVyaWVzOmZ1bmN0aW9uKGgsdix5KXtpZigxJmgmJnhvKHksdlMsNCksMiZoKXtsZXQgQztIaShDPSRpKCkpJiYodi5jZWxscz1DKX19fSksZH0pKCk7Y29uc3QgRk9lPWQ9PlNsKGQpP25ldyBmNDpuZXcgUE9lO2xl''@;'; + put 'put ''dCBHTD0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgsdix5LEMsSSxqLHVlLF9lLEJlLE5lKXt0aGlzLm9yZ2FuaXplcj1oLHRoaXMuaXRlbXM9dix0aGlzLnBhZ2U9eSx0aGlzLmRvbUFkYXB0ZXI9Qyx0aGlzLmVsPUksdGhpcy5yZW5kZXJlcj1qLHRoaXMuZGV0YWlsU2VydmljZT11ZSx0''@;'; + put 'put ''aGlzLnRhYmxlU2l6ZVNlcnZpY2U9X2UsdGhpcy5jb2x1bW5zU2VydmljZT1CZSx0aGlzLm5nWm9uZT1OZSx0aGlzLl9oZWlnaHRTZXQ9ITEsdGhpcy5zdWJzY3JpcHRpb25zPVtdLHRoaXMuY29sdW1uc1NpemVzU3RhYmxlPSExLHRoaXMuc2hvdWxkU3RhYmlsaXplQ29sdW1ucz0hMCx0aGlz''@;'; + put 'put ''LnN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLm9yZ2FuaXplci5maWx0ZXJSZW5kZXJTdGVwcyhoNC5DT01QVVRFX0NPTFVNTl9XSURUSFMpLnN1YnNjcmliZSgoKT0+dGhpcy5jb21wdXRlSGVhZGVyc1dpZHRoKCkpKSx0aGlzLnN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLnBhZ2Uuc2l6ZUNoYW5n''@;'; + put 'put ''ZS5zdWJzY3JpYmUoKCk9Pnt0aGlzLl9oZWlnaHRTZXQmJnRoaXMucmVzZXREYXRhZ3JpZEhlaWdodCgpfSkpLHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMuZGV0YWlsU2VydmljZS5zdGF0ZUNoYW5nZS5zdWJzY3JpYmUoS2U9PnRoaXMudG9nZ2xlRGV0YWlsUGFuZShLZSkpKSx0aGlz''@;'; + put 'put ''LnN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLml0ZW1zLmNoYW5nZS5zdWJzY3JpYmUoKCk9PnRoaXMuc2hvdWxkU3RhYmlsaXplQ29sdW1ucz0hMCkpfW5nQWZ0ZXJDb250ZW50SW5pdCgpe3RoaXMuc2V0dXBDb2x1bW5zKCksdGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy5oZWFkZXJzLmNo''@;'; + put 'put ''YW5nZXMuc3Vic2NyaWJlKCgpPT57dGhpcy5zZXR1cENvbHVtbnMoKSx0aGlzLmNvbHVtbnNTaXplc1N0YWJsZT0hMSx0aGlzLnN0YWJpbGl6ZUNvbHVtbnMoKX0pKX1uZ0FmdGVyVmlld0luaXQoKXt0aGlzLnRhYmxlU2l6ZVNlcnZpY2UudGFibGU9dGhpcy5lbH1uZ0FmdGVyVmlld0NoZWNr''@;'; + put 'put ''ZWQoKXt0aGlzLnNob3VsZFN0YWJpbGl6ZUNvbHVtbnMmJnRoaXMuc3RhYmlsaXplQ29sdW1ucygpLHRoaXMuc2hvdWxkQ29tcHV0ZUhlaWdodCgpJiZ0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKT0+e3NldFRpbWVvdXQoKCk9Pnt0aGlzLmNvbXB1dGVEYXRhZ3JpZEhlaWdodCgp''@;'; + put 'put ''fSl9KX1zZXR1cENvbHVtbnMoKXt0aGlzLmhlYWRlcnMuZm9yRWFjaCgoaCx2KT0+aC5zZXRDb2x1bW5TdGF0ZSh2KSksdGhpcy5jb2x1bW5zU2VydmljZS5jb2x1bW5zLnNwbGljZSh0aGlzLmhlYWRlcnMubGVuZ3RoKSx0aGlzLnJvd3MuZm9yRWFjaChoPT5oLnNldENvbHVtblN0YXRlKCkp''@;'; + put 'put ''fXNob3VsZENvbXB1dGVIZWlnaHQoKXtyZXR1cm4hdGhpcy5faGVpZ2h0U2V0JiZ0aGlzLnBhZ2Uuc2l6ZT4wJiZ0aGlzLml0ZW1zLmRpc3BsYXllZC5sZW5ndGg9PT10aGlzLnBhZ2Uuc2l6ZX10b2dnbGVEZXRhaWxQYW5lKGgpe3RoaXMuaGVhZGVycyYmKGgmJiF0aGlzLmNvbHVtbnNTZXJ2''@;'; + put 'put ''aWNlLmhhc0NhY2hlKCk/KHRoaXMuY29sdW1uc1NlcnZpY2UuY2FjaGUoKSx0aGlzLmhlYWRlcnMuZm9yRWFjaCgodix5KT0+e3k+MCYmdGhpcy5jb2x1bW5zU2VydmljZS5lbWl0U3RhdGVDaGFuZ2VBdCh5LHtjaGFuZ2VzOltwaC5ISURERU5dLGhpZGRlbjpofSl9KSk6aHx8dGhpcy5jb2x1''@;'; + put 'put ''bW5zU2VydmljZS5yZXNldFRvTGFzdENhY2hlKCkpfWNvbXB1dGVEYXRhZ3JpZEhlaWdodCgpe2NvbnN0IGg9dGhpcy5kb21BZGFwdGVyLmNsaWVudFJlY3QodGhpcy5lbC5uYXRpdmVFbGVtZW50KS5oZWlnaHQ7dGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQs''@;'; + put 'put ''ImhlaWdodCIsaCsicHgiKSx0aGlzLl9oZWlnaHRTZXQ9ITB9cmVzZXREYXRhZ3JpZEhlaWdodCgpe3RoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbC5uYXRpdmVFbGVtZW50LCJoZWlnaHQiLCIiKSx0aGlzLl9oZWlnaHRTZXQ9ITF9bmdPbkRlc3Ryb3koKXt0aGlzLnN1YnNjcmlwdGlv''@;'; + put 'put ''bnMuZm9yRWFjaChoPT5oLnVuc3Vic2NyaWJlKCkpfWNvbXB1dGVIZWFkZXJzV2lkdGgoKXtjb25zdCBoPXRoaXMuaGVhZGVycy5sZW5ndGg7bGV0IHY9ITA7dGhpcy5oZWFkZXJzLmZvckVhY2goKHksQyk9Pntjb25zdCBJPU9iamVjdC5hc3NpZ24oe2NoYW5nZXM6W3BoLldJRFRIXX0seS5n''@;'; + put 'put ''ZXRDb2x1bW5XaWR0aFN0YXRlKCkpO0kuc3RyaWN0V2lkdGh8fCh2PSExKSxoPT09QysxJiZ2JiYoSS5zdHJpY3RXaWR0aD0wKSx0aGlzLmNvbHVtbnNTZXJ2aWNlLmVtaXRTdGF0ZUNoYW5nZUF0KEMsSSl9KX1zdGFiaWxpemVDb2x1bW5zKCl7dGhpcy5zaG91bGRTdGFiaWxpemVDb2x1bW5z''@;'; + put 'put ''PSExLCF0aGlzLmNvbHVtbnNTaXplc1N0YWJsZSYmdGhpcy5pdGVtcy5kaXNwbGF5ZWQubGVuZ3RoPjAmJih0aGlzLm9yZ2FuaXplci5yZXNpemUoKSx0aGlzLmNvbHVtbnNTaXplc1N0YWJsZT0hMCl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKEt0''@;'; + put 'put ''KHBTKSxLdChwdyksS3QoaHcpLEt0KGY0KSxLdChibyksS3QoR2EpLEt0KEE4KSxLdChWZmUpLEt0KEF2KSxLdChfbCkpfSxkLlx1MDI3NWRpcj1XaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJjbHItZGF0YWdyaWQiXV0sY29udGVudFF1ZXJpZXM6ZnVuY3Rpb24oaCx2LHkpe2lmKDEmaCYmKHhv''@;'; + put 'put ''KHksQVMsNCkseG8oeSx5Uyw1KSksMiZoKXtsZXQgQztIaShDPSRpKCkpJiYodi5oZWFkZXJzPUMpLEhpKEM9JGkoKSkmJih2LnJvd3M9Qyl9fSxmZWF0dXJlczpbaG8oW3twcm92aWRlOmY0LHVzZUZhY3Rvcnk6Rk9lLGRlcHM6W0wyXX1dKV19KSxkfSkoKSxIT2U9KCgpPT57Y2xhc3MgZHtj''@;'; + put 'put ''b25zdHJ1Y3Rvcigpe2ZzLmFkZEljb25zKGhYLGRYLFNrLEZzZSxwWCxIc2UsZ1gsTnNlLGhWKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1bW9kPWNvKHt0eXBlOmR9KSxkLlx1MDI3NWluaj1iMCh7aW1wb3J0czpbW2JhLElzLFVB''@;'; + put 'put ''ZSxuZCxCZmUscWEsd09lLFFBZSxleWUsRGwsUmMsY3csc3EsZlNdXX0pLGR9KSgpLGh5ZT0oKCk9PntjbGFzcyBke31yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVkaXI9V2koe3R5cGU6ZCxzZWxlY3RvcnM6W1siY2xyLXN0YWNrLWNv''@;'; + put 'put ''bnRlbnQiXV19KSxkfSkoKSxxZmU9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoKXt0aGlzLnVuaXF1ZUlkPWgsdGhpcy5fZ2VuZXJhdGVkSWQ9bnVsbCx0aGlzLl9pZD1udWxsfXNldCBpZChoKXt0aGlzLl9pZD0ic3RyaW5nIj09dHlwZW9mIGgmJiIiIT09aD9oOnRoaXMuX2dlbmVyYXRl''@;'; + put 'put ''ZElkKyIifWdldCBpZCgpe3JldHVybiB0aGlzLl9pZH1uZ09uSW5pdCgpe3RoaXMuX2dlbmVyYXRlZElkPSJjbHItc3RhY2stbGFiZWwtIit0aGlzLnVuaXF1ZUlkLHRoaXMuaWR8fCh0aGlzLl9pZD10aGlzLl9nZW5lcmF0ZWRJZCsiIil9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbiho''@;'; + put 'put ''KXtyZXR1cm4gbmV3KGh8fGQpKEt0KHkyKSl9LGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQsc2VsZWN0b3JzOltbImNsci1zdGFjay1sYWJlbCJdXSxob3N0VmFyczoxLGhvc3RCaW5kaW5nczpmdW5jdGlvbihoLHYpezImaCYmR2koImlkIix2LmlkKX0saW5wdXRzOntpZDoiaWQifSxmZWF0dXJl''@;'; + put 'put ''czpbaG8oW09jXSldLG5nQ29udGVudFNlbGVjdG9yczpuYSxkZWNsczoxLHZhcnM6MCx0ZW1wbGF0ZTpmdW5jdGlvbihoLHYpezEmaCYmKEswKCksTmkoMCkpfSxlbmNhcHN1bGF0aW9uOjJ9KSxkfSkoKSxkeWU9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYseSl7dGhpcy5wYXJlbnQ9''@;'; + put 'put ''aCx0aGlzLnVuaXF1ZUlkPXYsdGhpcy5jb21tb25TdHJpbmdzPXksdGhpcy5leHBhbmRlZD0hMSx0aGlzLmV4cGFuZGVkQ2hhbmdlPW5ldyBhcighMSksdGhpcy5leHBhbmRhYmxlPSExLHRoaXMuZm9jdXNlZD0hMSx0aGlzLl9jaGFuZ2VkQ2hpbGRyZW49MCx0aGlzLl9mdWxseUluaXRpYWxp''@;'; + put 'put ''emVkPSExLHRoaXMuX2NoYW5nZWQ9ITEsaCYmaC5hZGRDaGlsZCgpfWdldCBnZXRDaGFuZ2VkVmFsdWUoKXtyZXR1cm4gdGhpcy5fY2hhbmdlZHx8dGhpcy5fY2hhbmdlZENoaWxkcmVuPjAmJiF0aGlzLmV4cGFuZGVkfXNldCBzZXRDaGFuZ2VkVmFsdWUoaCl7dGhpcy5fY2hhbmdlZD1oLHRo''@;'; + put 'put ''aXMucGFyZW50JiZ0aGlzLl9mdWxseUluaXRpYWxpemVkJiYoaD90aGlzLnBhcmVudC5fY2hhbmdlZENoaWxkcmVuKys6dGhpcy5wYXJlbnQuX2NoYW5nZWRDaGlsZHJlbi0tKX1nZXQgbGFiZWxsZWRCeUlkKCl7cmV0dXJuIHRoaXMuc3RhY2tCbG9ja1RpdGxlLmlkfWdldCBoZWFkaW5nTGV2''@;'; + put 'put ''ZWwoKXtyZXR1cm4gdGhpcy5hcmlhTGV2ZWw/dGhpcy5hcmlhTGV2ZWwrIiI6dGhpcy5wYXJlbnQ/IjQiOiIzIn1uZ09uSW5pdCgpe3RoaXMuX2Z1bGx5SW5pdGlhbGl6ZWQ9ITB9YWRkQ2hpbGQoKXt0aGlzLmV4cGFuZGFibGU9ITB9dG9nZ2xlRXhwYW5kKCl7dGhpcy5leHBhbmRhYmxlJiYo''@;'; + put 'put ''dGhpcy5leHBhbmRlZD0hdGhpcy5leHBhbmRlZCx0aGlzLmV4cGFuZGVkQ2hhbmdlLmVtaXQodGhpcy5leHBhbmRlZCkpfWdldCBjYXJldERpcmVjdGlvbigpe3JldHVybiB0aGlzLmV4cGFuZGVkPyJkb3duIjoicmlnaHQifWdldCByb2xlKCl7cmV0dXJuIHRoaXMuZXhwYW5kYWJsZT8iYnV0''@;'; + put 'put ''dG9uIjpudWxsfWdldCB0YWJJbmRleCgpe3JldHVybiB0aGlzLmV4cGFuZGFibGU/IjAiOm51bGx9Z2V0IG9uU3RhY2tMYWJlbEZvY3VzKCl7cmV0dXJuIHRoaXMuZXhwYW5kYWJsZSYmIXRoaXMuZXhwYW5kZWQmJnRoaXMuZm9jdXNlZH1nZXQgYXJpYUV4cGFuZGVkKCl7cmV0dXJuIHRoaXMu''@;'; + put 'put ''ZXhwYW5kYWJsZT90aGlzLmV4cGFuZGVkPyJ0cnVlIjoiZmFsc2UiOm51bGx9Z2V0U3RhY2tDaGlsZHJlbklkKCl7cmV0dXJuIHRoaXMuZXhwYW5kZWQ/YGNsci1zdGFjay1jaGlsZHJlbi0ke3RoaXMudW5pcXVlSWR9YDpudWxsfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0''@;'; + put 'put ''dXJuIG5ldyhofHxkKShLdChkLDEyKSxLdCh5MiksS3QobnMpKX0sZC5cdTAyNzVjbXA9VGkoe3R5cGU6ZCxzZWxlY3RvcnM6W1siY2xyLXN0YWNrLWJsb2NrIl1dLGNvbnRlbnRRdWVyaWVzOmZ1bmN0aW9uKGgsdix5KXtpZigxJmgmJnhvKHkscWZlLDUpLDImaCl7bGV0IEM7SGkoQz0kaSgp''@;'; + put 'put ''KSYmKHYuc3RhY2tCbG9ja1RpdGxlPUMuZmlyc3QpfX0saG9zdFZhcnM6MTIsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGgsdil7MiZoJiYoR2koInJvbGUiLCJoZWFkaW5nIikoImFyaWEtbGV2ZWwiLHYuaGVhZGluZ0xldmVsKSxGaSgic3RhY2stYmxvY2siLCEwKSgic3RhY2stYmxvY2stZXhw''@;'; + put 'put ''YW5kZWQiLHYuZXhwYW5kZWQpKCJzdGFjay1ibG9jay1leHBhbmRhYmxlIix2LmV4cGFuZGFibGUpKCJzdGFjay1ibG9jay1jaGFuZ2VkIix2LmdldENoYW5nZWRWYWx1ZSkoIm9uLWZvY3VzIix2Lm9uU3RhY2tMYWJlbEZvY3VzKSl9LGlucHV0czp7ZXhwYW5kZWQ6WyJjbHJTYkV4cGFuZGVk''@;'; + put 'put ''IiwiZXhwYW5kZWQiXSxleHBhbmRhYmxlOlsiY2xyU2JFeHBhbmRhYmxlIiwiZXhwYW5kYWJsZSJdLHNldENoYW5nZWRWYWx1ZTpbImNsclNiTm90aWZ5Q2hhbmdlIiwic2V0Q2hhbmdlZFZhbHVlIl0sYXJpYUxldmVsOlsiY2xyU3RhY2tWaWV3TGV2ZWwiLCJhcmlhTGV2ZWwiXSxhcmlhU2V0''@;'; + put 'put ''c2l6ZTpbImNsclN0YWNrVmlld1NldHNpemUiLCJhcmlhU2V0c2l6ZSJdLGFyaWFQb3NpbnNldDpbImNsclN0YWNrVmlld1Bvc2luc2V0IiwiYXJpYVBvc2luc2V0Il19LG91dHB1dHM6e2V4cGFuZGVkQ2hhbmdlOiJjbHJTYkV4cGFuZGVkQ2hhbmdlIn0sZmVhdHVyZXM6W2hvKFtPY10pXSxu''@;'; + put 'put ''Z0NvbnRlbnRTZWxlY3RvcnM6bncsZGVjbHM6OSx2YXJzOjksY29uc3RzOltbMSwic3RhY2stYmxvY2stbGFiZWwiLDMsImlkIiwiY2xpY2siLCJrZXl1cC5lbnRlciIsImtleXVwLnNwYWNlIiwiZm9jdXMiLCJibHVyIl0sWyJzaGFwZSIsImFuZ2xlIiwiY2xhc3MiLCJzdGFjay1ibG9jay1j''@;'; + put 'put ''YXJldCIsNCwibmdJZiJdLFsiY2xhc3MiLCJjbHItc3Itb25seSIsNCwibmdJZiJdLFsxLCJzdGFjay12aWV3LWtleSJdLFsxLCJzdGFjay1ibG9jay1jb250ZW50Il0sWzEsInN0YWNrLWNoaWxkcmVuIiwzLCJjbHJFeHBhbmRUcmlnZ2VyIl0sWyJyb2xlIiwicmVnaW9uIiwzLCJoZWlnaHQi''@;'; + put 'put ''LDQsIm5nSWYiXSxbInNoYXBlIiwiYW5nbGUiLDEsInN0YWNrLWJsb2NrLWNhcmV0Il0sWzEsImNsci1zci1vbmx5Il0sWyJyb2xlIiwicmVnaW9uIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGgsdil7MSZoJiYoSzAoR2NlKSxydCgwLCJkaXYiLDApLEduKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1''@;'; + put 'put ''cm4gdi50b2dnbGVFeHBhbmQoKX0pKCJrZXl1cC5lbnRlciIsZnVuY3Rpb24oKXtyZXR1cm4gdi50b2dnbGVFeHBhbmQoKX0pKCJrZXl1cC5zcGFjZSIsZnVuY3Rpb24oKXtyZXR1cm4gdi50b2dnbGVFeHBhbmQoKX0pKCJmb2N1cyIsZnVuY3Rpb24oKXtyZXR1cm4gdi5mb2N1c2VkPSEwfSko''@;'; + put 'put ''ImJsdXIiLGZ1bmN0aW9uKCl7cmV0dXJuIHYuZm9jdXNlZD0hMX0pLHJuKDEsaTMsMSwxLCJjZHMtaWNvbiIsMSkscm4oMix6Y2UsMiwxLCJzcGFuIiwyKSxydCgzLCJkaXYiLDMpLE5pKDQpLGx0KCkscnQoNSwiZGl2Iiw0KSxOaSg2LDEpLGx0KCkoKSxydCg3LCJjbHItZXhwYW5kYWJsZS1h''@;'; + put 'put ''bmltYXRpb24iLDUpLHJuKDgsdHcsMiw0LCJkaXYiLDYpLGx0KCkpLDImaCYmKFR0KCJpZCIsdi51bmlxdWVJZCksR2koInJvbGUiLHYucm9sZSkoInRhYmluZGV4Iix2LnRhYkluZGV4KSgiYXJpYS1leHBhbmRlZCIsdi5hcmlhRXhwYW5kZWQpKCJhcmlhLWNvbnRyb2xzIix2LmdldFN0YWNr''@;'; + put 'put ''Q2hpbGRyZW5JZCgpKSx1dCgxKSxUdCgibmdJZiIsdi5leHBhbmRhYmxlKSx1dCgxKSxUdCgibmdJZiIsdi5nZXRDaGFuZ2VkVmFsdWUpLHV0KDUpLFR0KCJjbHJFeHBhbmRUcmlnZ2VyIix2LmV4cGFuZGVkKSx1dCgxKSxUdCgibmdJZiIsdi5leHBhbmRlZCkpfSxkZXBlbmRlbmNpZXM6W2Zx''@;'; + put 'put ''LE5vLFpvXSxzdHlsZXM6WyJbX25naG9zdC0lQ09NUCVde2Rpc3BsYXk6YmxvY2t9Il19KSxkfSkoKSxXTD0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKCl7dGhpcy5lZGl0YWJsZT0hMSx0aGlzLnNhdmU9bmV3IGFyKCExKSx0aGlzLl9lZGl0TW9kZT0hMSx0aGlzLmVkaXRpbmdDaGFuZ2U9''@;'; + put 'put ''bmV3IGFyKCExKX1nZXQgZWRpdGluZygpe3JldHVybiB0aGlzLmVkaXRhYmxlJiZ0aGlzLl9lZGl0TW9kZX1zZXQgZWRpdGluZyhoKXt0aGlzLmVkaXRhYmxlJiYodGhpcy5fZWRpdE1vZGU9aCx0aGlzLmVkaXRpbmdDaGFuZ2UuZW1pdChoKSxofHx0aGlzLnNhdmUuZW1pdChudWxsKSl9fXJl''@;'; + put 'put ''dHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1MDI3NWNtcD1UaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJjbHItc3RhY2stdmlldyJdXSxvdXRwdXRzOntzYXZlOiJjbHJTdGFja1NhdmUifSxuZ0NvbnRlbnRTZWxlY3RvcnM6V2NlLGRlY2xzOjMsdmFy''@;'; + put 'put ''czowLGNvbnN0czpbWzEsInN0YWNrLXZpZXciXV0sdGVtcGxhdGU6ZnVuY3Rpb24oaCx2KXsxJmgmJihLMChUMSksTmkoMCkscnQoMSwiZGl2IiwwKSxOaSgyLDEpLGx0KCkpfSxzdHlsZXM6WyJbX25naG9zdC0lQ09NUCVde2Rpc3BsYXk6YmxvY2t9Il19KSxkfSkoKSxqT2U9KCgpPT57Y2xh''@;'; + put 'put ''c3MgZHtjb25zdHJ1Y3Rvcigpe2ZzLmFkZEljb25zKEl5KX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1bW9kPWNvKHt0eXBlOmR9KSxkLlx1MDI3NWluaj1iMCh7aW1wb3J0czpbW2JhLG5kLElzLFFBZV1dfSksZH0pKCksd1M9KCgp''@;'; + put 'put ''PT57Y2xhc3MgZHtjb25zdHJ1Y3Rvcigpe3RoaXMuc2VsZWN0YWJsZT0hMSx0aGlzLmVhZ2VyPSEwLHRoaXMuY2hpbGRyZW5GZXRjaGVkPW5ldyAkZX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0''@;'; + put 'put ''b3J5OmQuXHUwMjc1ZmFjfSksZH0pKCk7Y29uc3QgZ3llPXtwcm92aWRlOndTLHVzZUZhY3Rvcnk6ZnVuY3Rpb24gWk9lKGQpe3JldHVybiBkfHxuZXcgd1N9LGRlcHM6W1tuZXcgbWYsbmV3IEw0LHdTXV19O2xldCBteWU9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYpe3RoaXMuZmVh''@;'; + put 'put ''dHVyZXNTZXJ2aWNlPWgsdGhpcy5leHBhbmRTZXJ2aWNlPXYsdiYmKHRoaXMuc3Vic2NyaXB0aW9uPXRoaXMuZXhwYW5kU2VydmljZS5leHBhbmRDaGFuZ2Uuc3Vic2NyaWJlKHk9PnsheSYmdGhpcy5wYXJlbnQmJiF0aGlzLmZlYXR1cmVzU2VydmljZS5lYWdlciYmdGhpcy5mZWF0dXJlc1Nl''@;'; + put 'put ''cnZpY2UucmVjdXJzaW9uJiZ0aGlzLnBhcmVudC5jbGVhckNoaWxkcmVuKCl9KSl9c2hvdWxkUmVuZGVyKCl7cmV0dXJuIHRoaXMuZmVhdHVyZXNTZXJ2aWNlLnJlY3Vyc2lvbiYmKHRoaXMuZmVhdHVyZXNTZXJ2aWNlLmVhZ2VyfHwhdGhpcy5leHBhbmRTZXJ2aWNlfHx0aGlzLmV4cGFuZFNl''@;'; + put 'put ''cnZpY2UuZXhwYW5kZWQpfWdldENvbnRleHQoaCl7cmV0dXJueyRpbXBsaWNpdDpoLm1vZGVsLGNsck1vZGVsOmh9fW5nT25EZXN0cm95KCl7dGhpcy5zdWJzY3JpcHRpb24mJnRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXty''@;'; + put 'put ''ZXR1cm4gbmV3KGh8fGQpKEt0KHdTKSxLdChyMSw4KSl9LGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQsc2VsZWN0b3JzOltbImNsci1yZWN1cnNpdmUtY2hpbGRyZW4iXV0saG9zdFZhcnM6MSxob3N0QmluZGluZ3M6ZnVuY3Rpb24oaCx2KXsyJmgmJkdpKCJyb2xlIiwiZ3JvdXAiKX0saW5wdXRz''@;'; + put 'put ''OntwYXJlbnQ6InBhcmVudCIsY2hpbGRyZW46ImNoaWxkcmVuIn0sZGVjbHM6MSx2YXJzOjEsY29uc3RzOltbNCwibmdJZiJdLFs0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbNCwibmdUZW1wbGF0ZU91dGxldCIsIm5nVGVtcGxhdGVPdXRsZXRDb250ZXh0Il1dLHRlbXBsYXRlOmZ1bmN0aW9uKGgs''@;'; + put 'put ''dil7MSZoJiZybigwLEpjZSwyLDEsIm5nLWNvbnRhaW5lciIsMCksMiZoJiZUdCgibmdJZiIsdi5zaG91bGRSZW5kZXIoKSl9LGRlcGVuZGVuY2llczpbTm8sRXMsWGRdLGVuY2Fwc3VsYXRpb246Mn0pLGR9KSgpO3ZhciBrdT0oKCk9PihmdW5jdGlvbihkKXtkW2QuVU5TRUxFQ1RFRD0wXT0i''@;'; + put 'put ''VU5TRUxFQ1RFRCIsZFtkLlNFTEVDVEVEPTFdPSJTRUxFQ1RFRCIsZFtkLklOREVURVJNSU5BVEU9Ml09IklOREVURVJNSU5BVEUifShrdXx8KGt1PXt9KSksa3UpKSgpO2NsYXNzIHZ5ZXtjb25zdHJ1Y3Rvcigpe3RoaXMuc2VsZWN0ZWQ9bmV3IGNzKGt1LlVOU0VMRUNURUQpLHRoaXMuX2xv''@;'; + put 'put ''YWRpbmc9ITEsdGhpcy5sb2FkaW5nJD1uZXcgY3MoITEpfWdldCBsb2FkaW5nKCl7cmV0dXJuIHRoaXMuX2xvYWRpbmd9c2V0IGxvYWRpbmcoZyl7dGhpcy5fbG9hZGluZz1nLHRoaXMubG9hZGluZyQubmV4dChnKX1kZXN0cm95KCl7dGhpcy5zZWxlY3RlZC5jb21wbGV0ZSgpfXNldFNlbGVj''@;'; + put 'put ''dGVkKGcsaCx2KXtnIT09dGhpcy5zZWxlY3RlZC52YWx1ZSYmKHRoaXMuc2VsZWN0ZWQubmV4dChnKSx2JiZnIT09a3UuSU5ERVRFUk1JTkFURSYmdGhpcy5jaGlsZHJlbiYmdGhpcy5jaGlsZHJlbi5mb3JFYWNoKHk9Pnkuc2V0U2VsZWN0ZWQoZywhMSwhMCkpLGgmJnRoaXMucGFyZW50JiZ0''@;'; + put 'put ''aGlzLnBhcmVudC5fdXBkYXRlU2VsZWN0aW9uRnJvbUNoaWxkcmVuKCkpfXRvZ2dsZVNlbGVjdGlvbihnKXt0aGlzLnNldFNlbGVjdGVkKHRoaXMuc2VsZWN0ZWQudmFsdWU9PT1rdS5TRUxFQ1RFRD9rdS5VTlNFTEVDVEVEOmt1LlNFTEVDVEVELCEwLGcpfWNvbXB1dGVTZWxlY3Rpb25TdGF0''@;'; + put 'put ''ZUZyb21DaGlsZHJlbigpe2xldCBnPSExLGg9ITE7Zm9yKGNvbnN0IHYgb2YgdGhpcy5jaGlsZHJlbilzd2l0Y2godi5zZWxlY3RlZC52YWx1ZSl7Y2FzZSBrdS5JTkRFVEVSTUlOQVRFOnJldHVybiBrdS5JTkRFVEVSTUlOQVRFO2Nhc2Uga3UuU0VMRUNURUQ6aWYoZz0hMCxoKXJldHVybiBr''@;'; + put 'put ''dS5JTkRFVEVSTUlOQVRFO2JyZWFrO2RlZmF1bHQ6aWYoaD0hMCxnKXJldHVybiBrdS5JTkRFVEVSTUlOQVRFfXJldHVybiBnP2g/a3UuVU5TRUxFQ1RFRDprdS5TRUxFQ1RFRDprdS5VTlNFTEVDVEVEfV91cGRhdGVTZWxlY3Rpb25Gcm9tQ2hpbGRyZW4oKXtjb25zdCBnPXRoaXMuY29tcHV0''@;'; + put 'put ''ZVNlbGVjdGlvblN0YXRlRnJvbUNoaWxkcmVuKCk7ZyE9PXRoaXMuc2VsZWN0ZWQudmFsdWUmJih0aGlzLnNlbGVjdGVkLm5leHQoZyksdGhpcy5wYXJlbnQmJnRoaXMucGFyZW50Ll91cGRhdGVTZWxlY3Rpb25Gcm9tQ2hpbGRyZW4oKSl9fWNsYXNzIF9xIGV4dGVuZHMgdnlle2NvbnN0cnVj''@;'; + put 'put ''dG9yKGcsaCx2LHkpe3N1cGVyKCksdGhpcy5nZXRDaGlsZHJlbj12LHRoaXMuZmVhdHVyZXNTZXJ2aWNlPXksdGhpcy5jaGlsZHJlbkZldGNoZWQ9ITEsdGhpcy5fY2hpbGRyZW49W10sdGhpcy5tb2RlbD1nLHRoaXMucGFyZW50PWh9Y2xlYXJDaGlsZHJlbigpe3RoaXMuX2NoaWxkcmVuLmZv''@;'; + put 'put ''ckVhY2goZz0+Zy5kZXN0cm95KCkpLGRlbGV0ZSB0aGlzLl9jaGlsZHJlbix0aGlzLmNoaWxkcmVuRmV0Y2hlZD0hMX1mZXRjaENoaWxkcmVuKCl7aWYodGhpcy5jaGlsZHJlbkZldGNoZWQpcmV0dXJuO2NvbnN0IGc9dGhpcy5nZXRDaGlsZHJlbih0aGlzLm1vZGVsKTshZnVuY3Rpb24gek9l''@;'; + put 'put ''KGQpe3JldHVybiBkJiYiZnVuY3Rpb24iPT10eXBlb2YgZC50aGVufShnKT9rWChnKT8odGhpcy5sb2FkaW5nPSEwLHRoaXMuc3Vic2NyaXB0aW9uPWcuc3Vic2NyaWJlKGg9Pnt0aGlzLl9jaGlsZHJlbj10aGlzLndyYXBDaGlsZHJlbihoKSx0aGlzLmxvYWRpbmc9ITF9KSk6dGhpcy5fY2hp''@;'; + put 'put ''bGRyZW49Zz90aGlzLndyYXBDaGlsZHJlbihnKTpbXToodGhpcy5sb2FkaW5nPSEwLGcudGhlbihoPT57dGhpcy5fY2hpbGRyZW49dGhpcy53cmFwQ2hpbGRyZW4oaCksdGhpcy5sb2FkaW5nPSExfSkpLHRoaXMuY2hpbGRyZW5GZXRjaGVkPSEwLHRoaXMuZmVhdHVyZXNTZXJ2aWNlJiZ0aGlz''@;'; + put 'put ''LmZlYXR1cmVzU2VydmljZS5jaGlsZHJlbkZldGNoZWQubmV4dCgpfXdyYXBDaGlsZHJlbihnKXtyZXR1cm4gZy5tYXAoaD0+bmV3IF9xKGgsdGhpcyx0aGlzLmdldENoaWxkcmVuLHRoaXMuZmVhdHVyZXNTZXJ2aWNlKSl9Z2V0IGNoaWxkcmVuKCl7cmV0dXJuIHRoaXMuZmV0Y2hDaGlsZHJl''@;'; + put 'put ''bigpLHRoaXMuX2NoaWxkcmVufXNldCBjaGlsZHJlbihnKXt0aGlzLl9jaGlsZHJlbj1nfWRlc3Ryb3koKXt0aGlzLnN1YnNjcmlwdGlvbiYmdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSxzdXBlci5kZXN0cm95KCl9fWxldCBBeWU9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3Rvciho''@;'; + put 'put ''LHYseSl7dGhpcy50ZW1wbGF0ZT1oLHRoaXMuZmVhdHVyZXNTZXJ2aWNlPXYsdGhpcy5jZHI9eX1uZ09uQ2hhbmdlcygpe2xldCBoO2g9QXJyYXkuaXNBcnJheSh0aGlzLm5vZGVzKT90aGlzLm5vZGVzLm1hcCh2PT5uZXcgX3EodixudWxsLHRoaXMuZ2V0Q2hpbGRyZW4sdGhpcy5mZWF0dXJl''@;'; + put 'put ''c1NlcnZpY2UpKTpbbmV3IF9xKHRoaXMubm9kZXMsbnVsbCx0aGlzLmdldENoaWxkcmVuLHRoaXMuZmVhdHVyZXNTZXJ2aWNlKV0sdGhpcy5jaGlsZHJlbkZldGNoU3Vic2NyaXB0aW9ufHwodGhpcy5jaGlsZHJlbkZldGNoU3Vic2NyaXB0aW9uPXRoaXMuZmVhdHVyZXNTZXJ2aWNlLmNoaWxk''@;'; + put 'put ''cmVuRmV0Y2hlZC5waXBlKFREKDApKS5zdWJzY3JpYmUoKCk9Pnt0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCl9KSksdGhpcy5mZWF0dXJlc1NlcnZpY2UucmVjdXJzaW9uPXt0ZW1wbGF0ZTp0aGlzLnRlbXBsYXRlLHJvb3Q6aH19bmdPbkRlc3Ryb3koKXt0aGlzLmNoaWxkcmVuRmV0Y2hTdWJz''@;'; + put 'put ''Y3JpcHRpb24mJnRoaXMuY2hpbGRyZW5GZXRjaFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShLdChxciksS3Qod1MpLEt0KGQxKSl9LGQuXHUwMjc1ZGlyPVdpKHt0eXBlOmQsc2VsZWN0b3JzOltbIiIs''@;'; + put 'put ''ImNsclJlY3Vyc2l2ZUZvciIsIiIsImNsclJlY3Vyc2l2ZUZvck9mIiwiIl1dLGlucHV0czp7bm9kZXM6WyJjbHJSZWN1cnNpdmVGb3JPZiIsIm5vZGVzIl0sZ2V0Q2hpbGRyZW46WyJjbHJSZWN1cnNpdmVGb3JHZXRDaGlsZHJlbiIsImdldENoaWxkcmVuIl19LGZlYXR1cmVzOltEMl19KSxk''@;'; + put 'put ''fSkoKSxlaGU9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3Rvcigpe3RoaXMuX2ZvY3VzUmVxdWVzdD1uZXcgJGUsdGhpcy5fZm9jdXNDaGFuZ2U9bmV3ICRlfWdldCBmb2N1c1JlcXVlc3QoKXtyZXR1cm4gdGhpcy5fZm9jdXNSZXF1ZXN0LmFzT2JzZXJ2YWJsZSgpfWdldCBmb2N1c0NoYW5nZSgp''@;'; + put 'put ''e3JldHVybiB0aGlzLl9mb2N1c0NoYW5nZS5hc09ic2VydmFibGUoKX1maW5kU2libGluZ3MoaCl7cmV0dXJuIGgucGFyZW50P2gucGFyZW50LmNoaWxkcmVuOnRoaXMucm9vdE5vZGVNb2RlbHN9ZmluZExhc3RWaXNpYmxlSW5Ob2RlKGgpe2lmKCFoKXJldHVybiBudWxsO2lmKGguZXhwYW5k''@;'; + put 'put ''ZWQmJmguY2hpbGRyZW4ubGVuZ3RoPjApe2NvbnN0IHY9aC5jaGlsZHJlbjtyZXR1cm4gdGhpcy5maW5kTGFzdFZpc2libGVJbk5vZGUodlt2Lmxlbmd0aC0xXSl9cmV0dXJuIGh9ZmluZE5leHRGb2N1c2FibGUoaCl7aWYoIWgpcmV0dXJuIG51bGw7Y29uc3Qgdj10aGlzLmZpbmRTaWJsaW5n''@;'; + put 'put ''cyhoKSx5PXYuaW5kZXhPZihoKTtyZXR1cm4geTx2Lmxlbmd0aC0xP3ZbeSsxXTp5PT09di5sZW5ndGgtMT90aGlzLmZpbmROZXh0Rm9jdXNhYmxlKGgucGFyZW50KTpudWxsfWZpbmRMYXN0VmlzaWJsZUluVHJlZSgpe3JldHVybiB0aGlzLmZpbmRMYXN0VmlzaWJsZUluTm9kZSh0aGlzLnJv''@;'; + put 'put ''b3ROb2RlTW9kZWxzJiZ0aGlzLnJvb3ROb2RlTW9kZWxzLmxlbmd0aCYmdGhpcy5yb290Tm9kZU1vZGVsc1t0aGlzLnJvb3ROb2RlTW9kZWxzLmxlbmd0aC0xXSl9ZmluZE5vZGVBYm92ZShoKXtpZighaClyZXR1cm4gbnVsbDtjb25zdCB2PXRoaXMuZmluZFNpYmxpbmdzKGgpLHk9di5pbmRl''@;'; + put 'put ''eE9mKGgpO3JldHVybiAwPT09eT9oLnBhcmVudDp5PjA/dGhpcy5maW5kTGFzdFZpc2libGVJbk5vZGUodlt5LTFdKTpudWxsfWZpbmROb2RlQmVsb3coaCl7cmV0dXJuIGg/aC5leHBhbmRlZCYmaC5jaGlsZHJlbi5sZW5ndGg+MD9oLmNoaWxkcmVuWzBdOnRoaXMuZmluZE5leHRGb2N1c2Fi''@;'; + put 'put ''bGUoaCk6bnVsbH1maW5kRGVzY2VuZGVudE5vZGVTdGFydHNXaXRoKGgsdil7aWYodi5leHBhbmRlZCYmdi5jaGlsZHJlbi5sZW5ndGg+MClmb3IoY29uc3QgeSBvZiB2LmNoaWxkcmVuKXtjb25zdCBDPXRoaXMuZmluZE5vZGVTdGFydHNXaXRoKGgseSk7aWYoQylyZXR1cm4gQ31yZXR1cm4g''@;'; + put 'put ''bnVsbH1maW5kU2libGluZ05vZGVTdGFydHNXaXRoKGgsdil7Y29uc3QgeT10aGlzLmZpbmRTaWJsaW5ncyh2KTtmb3IobGV0IEk9eS5pbmRleE9mKHYpKzE7STx5Lmxlbmd0aDtJKyspe2NvbnN0IHVlPXRoaXMuZmluZE5vZGVTdGFydHNXaXRoKGgseVtJXSk7aWYodWUpcmV0dXJuIHVlfXJl''@;'; + put 'put ''dHVybiBudWxsfWZpbmRSb290Tm9kZVN0YXJ0c1dpdGgoaCx2KXtmb3IoY29uc3QgeSBvZiB0aGlzLnJvb3ROb2RlTW9kZWxzKXtpZih2LnBhcmVudCYmdi5wYXJlbnQ9PT15KWNvbnRpbnVlO2NvbnN0IEM9dGhpcy5maW5kTm9kZVN0YXJ0c1dpdGgoaCx5KTtpZihDKXJldHVybiBDfXJldHVy''@;'; + put 'put ''biBudWxsfWZpbmROb2RlU3RhcnRzV2l0aChoLHYpe3JldHVybiB2P3YudGV4dENvbnRlbnQuc3RhcnRzV2l0aChoKT92OnRoaXMuZmluZERlc2NlbmRlbnROb2RlU3RhcnRzV2l0aChoLHYpOm51bGx9ZmluZENsb3Nlc3ROb2RlU3RhcnRzV2l0aChoLHYpe2lmKCF2KXJldHVybiBudWxsO2Nv''@;'; + put 'put ''bnN0IHk9dGhpcy5maW5kRGVzY2VuZGVudE5vZGVTdGFydHNXaXRoKGgsdik7aWYoeSlyZXR1cm4geTtjb25zdCBDPXRoaXMuZmluZFNpYmxpbmdOb2RlU3RhcnRzV2l0aChoLHYpO3JldHVybiBDfHwodGhpcy5maW5kUm9vdE5vZGVTdGFydHNXaXRoKGgsdil8fHRoaXMuZmluZE5vZGVTdGFy''@;'; + put 'put ''dHNXaXRoKGgsdi5wYXJlbnQpKX1mb2N1c05vZGUoaCl7aCYmdGhpcy5fZm9jdXNSZXF1ZXN0Lm5leHQoaC5ub2RlSWQpfWJyb2FkY2FzdEZvY3VzZWROb2RlKGgpe3RoaXMuZm9jdXNlZE5vZGVJZCE9PWgmJih0aGlzLmZvY3VzZWROb2RlSWQ9aCx0aGlzLl9mb2N1c0NoYW5nZS5uZXh0KGgp''@;'; + put 'put ''KX1mb2N1c1BhcmVudChoKXtoJiZ0aGlzLmZvY3VzTm9kZShoLnBhcmVudCl9Zm9jdXNGaXJzdFZpc2libGVOb2RlKCl7dGhpcy5mb2N1c05vZGUodGhpcy5yb290Tm9kZU1vZGVscyYmdGhpcy5yb290Tm9kZU1vZGVsc1swXSl9Zm9jdXNMYXN0VmlzaWJsZU5vZGUoKXt0aGlzLmZvY3VzTm9k''@;'; + put 'put ''ZSh0aGlzLmZpbmRMYXN0VmlzaWJsZUluVHJlZSgpKX1mb2N1c05vZGVBYm92ZShoKXt0aGlzLmZvY3VzTm9kZSh0aGlzLmZpbmROb2RlQWJvdmUoaCkpfWZvY3VzTm9kZUJlbG93KGgpe3RoaXMuZm9jdXNOb2RlKHRoaXMuZmluZE5vZGVCZWxvdyhoKSl9Zm9jdXNOb2RlU3RhcnRzV2l0aCho''@;'; + put 'put ''LHYpe3RoaXMuZm9jdXNOb2RlKHRoaXMuZmluZENsb3Nlc3ROb2RlU3RhcnRzV2l0aChoLHYpKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1ZmFjfSksZH0pKCk7Y2xhc3Mg''@;'; + put 'put ''R09lIGV4dGVuZHMgdnlle2NvbnN0cnVjdG9yKGcpe3N1cGVyKCksdGhpcy5wYXJlbnQ9ZyxnJiZnLl9hZGRDaGlsZCh0aGlzKSx0aGlzLmNoaWxkcmVuPVtdfV9hZGRDaGlsZChnKXt0aGlzLmNoaWxkcmVuLnB1c2goZyl9X3JlbW92ZUNoaWxkKGcpe2NvbnN0IGg9dGhpcy5jaGlsZHJlbi5p''@;'; + put 'put ''bmRleE9mKGcpO2g+LTEmJnRoaXMuY2hpbGRyZW4uc3BsaWNlKGgsMSl9ZGVzdHJveSgpe3RoaXMucGFyZW50JiZ0aGlzLnBhcmVudC5fcmVtb3ZlQ2hpbGQodGhpcyksc3VwZXIuZGVzdHJveSgpfX1sZXQgWUw9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoKXt0aGlzLmVsPWh9YWN0aXZh''@;'; + put 'put ''dGUoKXt0aGlzLmVsLm5hdGl2ZUVsZW1lbnQmJnRoaXMuZWwubmF0aXZlRWxlbWVudC5jbGljayYmdGhpcy5lbC5uYXRpdmVFbGVtZW50LmNsaWNrKCl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKEt0KGJvKSl9LGQuXHUwMjc1ZGlyPVdpKHt0eXBl''@;'; + put 'put ''OmQsc2VsZWN0b3JzOltbIiIsOCwiY2xyLXRyZWVub2RlLWxpbmsiXV19KSxkfSkoKSxfZz0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgsdix5LEMsSSxqLHVlLF9lLEJlKXt0aGlzLm5vZGVJZD1oLHRoaXMucGxhdGZvcm1JZD12LHRoaXMuZm9yVHlwZUFoZWFkUHJvdmlkZXI9Qyx0aGlz''@;'; + put 'put ''LmZlYXR1cmVzU2VydmljZT1JLHRoaXMuZXhwYW5kU2VydmljZT1qLHRoaXMuY29tbW9uU3RyaW5ncz11ZSx0aGlzLmZvY3VzTWFuYWdlcj1fZSx0aGlzLlNUQVRFUz1rdSx0aGlzLnNraXBFbWl0Q2hhbmdlPSExLHRoaXMuaXNNb2RlbExvYWRpbmc9ITEsdGhpcy50eXBlQWhlYWRLZXlFdmVu''@;'; + put 'put ''dD1uZXcgJGUsdGhpcy50eXBlQWhlYWRLZXlCdWZmZXI9IiIsdGhpcy5zZWxlY3RlZENoYW5nZT1uZXcgYXIoITEpLHRoaXMuZXhwYW5kZWRDaGFuZ2U9bmV3IGFyLHRoaXMuc3Vic2NyaXB0aW9ucz1bXSx0aGlzLmNvbnRlbnRDb250YWluZXJUYWJpbmRleD0tMSx0aGlzLl9tb2RlbD10aGlz''@;'; + put 'put ''LmZlYXR1cmVzU2VydmljZS5yZWN1cnNpb24/QmUudmlldz9CZS52aWV3LmNvbnRleHQuY2xyTW9kZWw6QmUuX2xWaWV3WzhdLmNsck1vZGVsOm5ldyBHT2UoeT95Ll9tb2RlbDpudWxsKSx0aGlzLl9tb2RlbC5ub2RlSWQ9dGhpcy5ub2RlSWR9aXNFeHBhbmRhYmxlKCl7cmV0dXJuIHZvaWQg''@;'; + put 'put ''MCE9PXRoaXMuZXhwYW5kYWJsZT90aGlzLmV4cGFuZGFibGU6ISF0aGlzLmV4cGFuZFNlcnZpY2UuZXhwYW5kYWJsZXx8dGhpcy5pc1BhcmVudH1pc1NlbGVjdGFibGUoKXtyZXR1cm4gdGhpcy5mZWF0dXJlc1NlcnZpY2Uuc2VsZWN0YWJsZX1nZXQgc2VsZWN0ZWQoKXtyZXR1cm4gdGhpcy5f''@;'; + put 'put ''bW9kZWwuc2VsZWN0ZWQudmFsdWV9c2V0IHNlbGVjdGVkKGgpe3RoaXMuZmVhdHVyZXNTZXJ2aWNlLnNlbGVjdGFibGU9ITAsbnVsbD09aCYmKGg9a3UuVU5TRUxFQ1RFRCksImJvb2xlYW4iPT10eXBlb2YgaCYmKGg9aD9rdS5TRUxFQ1RFRDprdS5VTlNFTEVDVEVEKSx0aGlzLnNraXBFbWl0''@;'; + put 'put ''Q2hhbmdlPSEwLHRoaXMuX21vZGVsLnNldFNlbGVjdGVkKGgsdGhpcy5mZWF0dXJlc1NlcnZpY2UuZWFnZXIsdGhpcy5mZWF0dXJlc1NlcnZpY2UuZWFnZXIpLHRoaXMuc2tpcEVtaXRDaGFuZ2U9ITF9Z2V0IGFyaWFTZWxlY3RlZCgpe3JldHVybiB0aGlzLmlzU2VsZWN0YWJsZSgpP3RoaXMu''@;'; + put 'put ''X21vZGVsLnNlbGVjdGVkLnZhbHVlPT09a3UuU0VMRUNURUQ6bnVsbH1nZXQgZXhwYW5kZWQoKXtyZXR1cm4gdGhpcy5leHBhbmRTZXJ2aWNlLmV4cGFuZGVkfXNldCBleHBhbmRlZChoKXt0aGlzLmV4cGFuZFNlcnZpY2UuZXhwYW5kZWQ9aH1uZ09uSW5pdCgpe3RoaXMuX21vZGVsLmV4cGFu''@;'; + put 'put ''ZGVkPXRoaXMuZXhwYW5kZWQsdGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy5fbW9kZWwuc2VsZWN0ZWQucGlwZShPMigoKT0+IXRoaXMuc2tpcEVtaXRDaGFuZ2UpKS5zdWJzY3JpYmUoaD0+e3RoaXMuc2VsZWN0ZWRDaGFuZ2UuZW1pdChoKX0pKSx0aGlzLnN1YnNjcmlwdGlvbnMucHVz''@;'; + put 'put ''aCh0aGlzLmV4cGFuZFNlcnZpY2UuZXhwYW5kQ2hhbmdlLnN1YnNjcmliZShoPT57dGhpcy5leHBhbmRlZENoYW5nZS5lbWl0KGgpLHRoaXMuX21vZGVsLmV4cGFuZGVkPWh9KSksdGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy5mb2N1c01hbmFnZXIuZm9jdXNSZXF1ZXN0LnN1YnNjcmli''@;'; + put 'put ''ZShoPT57dGhpcy5ub2RlSWQ9PT1oJiZ0aGlzLmZvY3VzVHJlZU5vZGUoKX0pLHRoaXMuZm9jdXNNYW5hZ2VyLmZvY3VzQ2hhbmdlLnN1YnNjcmliZShoPT57dGhpcy5jaGVja1RhYkluZGV4KGgpfSkpLHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMuX21vZGVsLmxvYWRpbmckLnBpcGUo''@;'; + put 'put ''VEQoMCkpLnN1YnNjcmliZShoPT50aGlzLmlzTW9kZWxMb2FkaW5nPWgpKX1uZ0FmdGVyQ29udGVudEluaXQoKXt0aGlzLmZvclR5cGVBaGVhZFByb3ZpZGVyJiYodGhpcy5fbW9kZWwudGV4dENvbnRlbnQ9dGhpcy5mb3JUeXBlQWhlYWRQcm92aWRlci50ZXh0Q29udGVudCx0aGlzLnN1YnNj''@;'; + put 'put ''cmlwdGlvbnMucHVzaCh0aGlzLnR5cGVBaGVhZEtleUV2ZW50LnBpcGUoVEQoMjAwKSkuc3Vic2NyaWJlKGg9Pnt0aGlzLmZvY3VzTWFuYWdlci5mb2N1c05vZGVTdGFydHNXaXRoKGgsdGhpcy5fbW9kZWwpLHRoaXMudHlwZUFoZWFkS2V5QnVmZmVyPSIifSkpKX1uZ09uRGVzdHJveSgpe3Ro''@;'; + put 'put ''aXMuX21vZGVsLmRlc3Ryb3koKSx0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChoPT5oLnVuc3Vic2NyaWJlKCkpfWdldCB0cmVlTm9kZUxpbmsoKXtyZXR1cm4gdGhpcy50cmVlTm9kZUxpbmtMaXN0JiZ0aGlzLnRyZWVOb2RlTGlua0xpc3QuZmlyc3R9c2V0VGFiSW5kZXgoaCl7dGhpcy5j''@;'; + put 'put ''b250ZW50Q29udGFpbmVyVGFiaW5kZXg9aCx0aGlzLmNvbnRlbnRDb250YWluZXIubmF0aXZlRWxlbWVudC5zZXRBdHRyaWJ1dGUoInRhYmluZGV4IixoKX1jaGVja1RhYkluZGV4KGgpe1NsKHRoaXMucGxhdGZvcm1JZCkmJnRoaXMubm9kZUlkIT09aCYmLTEhPT10aGlzLmNvbnRlbnRDb250''@;'; + put 'put ''YWluZXJUYWJpbmRleCYmdGhpcy5zZXRUYWJJbmRleCgtMSl9Zm9jdXNUcmVlTm9kZSgpe2NvbnN0IGg9dGhpcy5jb250ZW50Q29udGFpbmVyLm5hdGl2ZUVsZW1lbnQ7U2wodGhpcy5wbGF0Zm9ybUlkKSYmZG9jdW1lbnQuYWN0aXZlRWxlbWVudCE9PWgmJih0aGlzLnNldFRhYkluZGV4KDAp''@;'; + put 'put ''LGguZm9jdXMoKSxoLnNjcm9sbEludG9WaWV3KHtibG9jazoibmVhcmVzdCIsaW5saW5lOiJuZWFyZXN0In0pKX1icm9hZGNhc3RGb2N1c09uQ29udGFpbmVyKCl7dGhpcy5mb2N1c01hbmFnZXIuYnJvYWRjYXN0Rm9jdXNlZE5vZGUodGhpcy5ub2RlSWQpfW9uS2V5RG93bihoKXtzd2l0Y2go''@;'; + put 'put ''TXAoaCksYVMoaC5rZXkpKXtjYXNlIE0wLkFycm93VXA6dGhpcy5mb2N1c01hbmFnZXIuZm9jdXNOb2RlQWJvdmUodGhpcy5fbW9kZWwpO2JyZWFrO2Nhc2UgTTAuQXJyb3dEb3duOnRoaXMuZm9jdXNNYW5hZ2VyLmZvY3VzTm9kZUJlbG93KHRoaXMuX21vZGVsKTticmVhaztjYXNlIE0wLkFy''@;'; + put 'put ''cm93UmlnaHQ6dGhpcy5leHBhbmRPckZvY3VzRmlyc3RDaGlsZCgpO2JyZWFrO2Nhc2UgTTAuQXJyb3dMZWZ0OnRoaXMuY29sbGFwc2VPckZvY3VzUGFyZW50KCk7YnJlYWs7Y2FzZSBNMC5Ib21lOmgucHJldmVudERlZmF1bHQoKSx0aGlzLmZvY3VzTWFuYWdlci5mb2N1c0ZpcnN0VmlzaWJs''@;'; + put 'put ''ZU5vZGUoKTticmVhaztjYXNlIE0wLkVuZDpoLnByZXZlbnREZWZhdWx0KCksdGhpcy5mb2N1c01hbmFnZXIuZm9jdXNMYXN0VmlzaWJsZU5vZGUoKTticmVhaztjYXNlIE0wLkVudGVyOnRoaXMudG9nZ2xlRXhwYW5kT3JUcmlnZ2VyRGVmYXVsdCgpO2JyZWFrO2Nhc2UgTTAuU3BhY2U6Y2Fz''@;'; + put 'put ''ZSBNMC5TcGFjZWJhcjpoLnByZXZlbnREZWZhdWx0KCksdGhpcy50b2dnbGVFeHBhbmRPclRyaWdnZXJEZWZhdWx0KCk7YnJlYWs7ZGVmYXVsdDppZih0aGlzLl9tb2RlbC50ZXh0Q29udGVudCYmZnVuY3Rpb24gbHcoZCl7Y29uc3QgZz1kLmtleTtyZXR1cm4gZy50b0xvd2VyQ2FzZSgpIT09''@;'; + put 'put ''Zy50b1VwcGVyQ2FzZSgpfHxnPj0iMCImJmc8PSI5In0oaCkpcmV0dXJuIHRoaXMudHlwZUFoZWFkS2V5QnVmZmVyKz1oLmtleSx2b2lkIHRoaXMudHlwZUFoZWFkS2V5RXZlbnQubmV4dCh0aGlzLnR5cGVBaGVhZEtleUJ1ZmZlcil9dGhpcy50eXBlQWhlYWRLZXlCdWZmZXI9IiJ9Z2V0IGlz''@;'; + put 'put ''UGFyZW50KCl7cmV0dXJuIHRoaXMuX21vZGVsLmNoaWxkcmVuJiZ0aGlzLl9tb2RlbC5jaGlsZHJlbi5sZW5ndGg+MH10b2dnbGVFeHBhbmRPclRyaWdnZXJEZWZhdWx0KCl7dGhpcy5pc0V4cGFuZGFibGUoKSYmIXRoaXMuaXNTZWxlY3RhYmxlKCk/dGhpcy5leHBhbmRTZXJ2aWNlLmV4cGFu''@;'; + put 'put ''ZGVkPSF0aGlzLmV4cGFuZGVkOnRoaXMudHJpZ2dlckRlZmF1bHRBY3Rpb24oKX1leHBhbmRPckZvY3VzRmlyc3RDaGlsZCgpe3RoaXMuZXhwYW5kZWQ/dGhpcy5pc1BhcmVudCYmdGhpcy5mb2N1c01hbmFnZXIuZm9jdXNOb2RlQmVsb3codGhpcy5fbW9kZWwpOnRoaXMuaXNFeHBhbmRhYmxl''@;'; + put 'put ''KCkmJih0aGlzLmV4cGFuZFNlcnZpY2UuZXhwYW5kZWQ9ITApfWNvbGxhcHNlT3JGb2N1c1BhcmVudCgpe3RoaXMuZXhwYW5kZWQ/dGhpcy5leHBhbmRTZXJ2aWNlLmV4cGFuZGVkPSExOnRoaXMuZm9jdXNNYW5hZ2VyLmZvY3VzUGFyZW50KHRoaXMuX21vZGVsKX10cmlnZ2VyRGVmYXVsdEFj''@;'; + put 'put ''dGlvbigpe3RoaXMudHJlZU5vZGVMaW5rP3RoaXMudHJlZU5vZGVMaW5rLmFjdGl2YXRlKCk6dGhpcy5pc1NlbGVjdGFibGUoKSYmdGhpcy5fbW9kZWwudG9nZ2xlU2VsZWN0aW9uKHRoaXMuZmVhdHVyZXNTZXJ2aWNlLmVhZ2VyKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3Jl''@;'; + put 'put ''dHVybiBuZXcoaHx8ZCkoS3QoeTIpLEt0KEwyKSxLdChkLDEyKSxLdChUT2UsMTApLEt0KHdTKSxLdChyMSksS3QobnMpLEt0KGVoZSksS3Qoa3MpKX0sZC5cdTAyNzVjbXA9VGkoe3R5cGU6ZCxzZWxlY3RvcnM6W1siY2xyLXRyZWUtbm9kZSJdXSxjb250ZW50UXVlcmllczpmdW5jdGlvbiho''@;'; + put 'put ''LHYseSl7aWYoMSZoJiZ4byh5LFlMLDQpLDImaCl7bGV0IEM7SGkoQz0kaSgpKSYmKHYudHJlZU5vZGVMaW5rTGlzdD1DKX19LHZpZXdRdWVyeTpmdW5jdGlvbihoLHYpe2lmKDEmaCYmdm8oQiQsNyxibyksMiZoKXtsZXQgeTtIaSh5PSRpKCkpJiYodi5jb250ZW50Q29udGFpbmVyPXkuZmly''@;'; + put 'put ''c3QpfX0saG9zdFZhcnM6Mixob3N0QmluZGluZ3M6ZnVuY3Rpb24oaCx2KXsyJmgmJkZpKCJjbHItdHJlZS1ub2RlIiwhMCl9LGlucHV0czp7c2VsZWN0ZWQ6WyJjbHJTZWxlY3RlZCIsInNlbGVjdGVkIl0sZXhwYW5kYWJsZTpbImNsckV4cGFuZGFibGUiLCJleHBhbmRhYmxlIl0sZXhwYW5k''@;'; + put 'put ''ZWQ6WyJjbHJFeHBhbmRlZCIsImV4cGFuZGVkIl19LG91dHB1dHM6e3NlbGVjdGVkQ2hhbmdlOiJjbHJTZWxlY3RlZENoYW5nZSIsZXhwYW5kZWRDaGFuZ2U6ImNsckV4cGFuZGVkQ2hhbmdlIn0sZmVhdHVyZXM6W2hvKFtPYyxneWUscjEse3Byb3ZpZGU6UGYsdXNlRXhpc3Rpbmc6cjF9XSld''@;'; + put 'put ''LG5nQ29udGVudFNlbGVjdG9yczplZixkZWNsczoxMix2YXJzOjksY29uc3RzOltbInJvbGUiLCJ0cmVlaXRlbSIsInRhYmluZGV4IiwiLTEiLDEsImNsci10cmVlLW5vZGUtY29udGVudC1jb250YWluZXIiLDMsImtleWRvd24iLCJmb2N1cyJdLFsiY29udGVudENvbnRhaW5lciIsIiJdLFsi''@;'; + put 'put ''YXJpYS1oaWRkZW4iLCJ0cnVlIiwidHlwZSIsImJ1dHRvbiIsInRhYmluZGV4IiwiLTEiLCJjbGFzcyIsImNsci10cmVlbm9kZS1jYXJldCIsMywiY2xpY2siLCJmb2N1cyIsNCwibmdJZiJdLFsiY2xhc3MiLCJjbHItdHJlZW5vZGUtc3Bpbm5lci1jb250YWluZXIiLDQsIm5nSWYiXSxbImNs''@;'; + put 'put ''YXNzIiwiY2xyLWNoZWNrYm94LXdyYXBwZXIgY2xyLXRyZWVub2RlLWNoZWNrYm94Iiw0LCJuZ0lmIl0sWzEsImNsci10cmVlbm9kZS1jb250ZW50IiwzLCJtb3VzZWRvd24iXSxbImNsYXNzIiwiY2xyLXNyLW9ubHkiLDQsIm5nSWYiXSxbMSwiY2xyLXRyZWVub2RlLWNoaWxkcmVuIl0sWzMs''@;'; + put 'put ''InBhcmVudCJdLFsiYXJpYS1oaWRkZW4iLCJ0cnVlIiwidHlwZSIsImJ1dHRvbiIsInRhYmluZGV4IiwiLTEiLDEsImNsci10cmVlbm9kZS1jYXJldCIsMywiY2xpY2siLCJmb2N1cyJdLFsic2hhcGUiLCJhbmdsZSIsMSwiY2xyLXRyZWVub2RlLWNhcmV0LWljb24iXSxbMSwiY2xyLXRyZWVu''@;'; + put 'put ''b2RlLXNwaW5uZXItY29udGFpbmVyIl0sWzEsImNsci10cmVlbm9kZS1zcGlubmVyIiwic3Bpbm5lciJdLFsxLCJjbHItY2hlY2tib3gtd3JhcHBlciIsImNsci10cmVlbm9kZS1jaGVja2JveCJdLFsiYXJpYS1oaWRkZW4iLCJ0cnVlIiwidHlwZSIsImNoZWNrYm94IiwidGFiaW5kZXgiLCIt''@;'; + put 'put ''MSIsMSwiY2xyLWNoZWNrYm94IiwzLCJpZCIsImNoZWNrZWQiLCJpbmRldGVybWluYXRlIiwiY2hhbmdlIiwiZm9jdXMiXSxbMSwiY2xyLWNvbnRyb2wtbGFiZWwiLDMsImZvciJdLFsxLCJjbHItc3Itb25seSJdLFs0LCJuZ0lmIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGgsdil7MSZoJiYoSzAo''@;'; + put 'put ''UCQpLHJ0KDAsImRpdiIsMCwxKSxHbigia2V5ZG93biIsZnVuY3Rpb24oQyl7cmV0dXJuIHYub25LZXlEb3duKEMpfSkoImZvY3VzIixmdW5jdGlvbigpe3JldHVybiB2LmJyb2FkY2FzdEZvY3VzT25Db250YWluZXIoKX0pLHJuKDIsWGNlLDIsMSwiYnV0dG9uIiwyKSxybigzLG4xLDIsMCwi''@;'; + put 'put ''ZGl2IiwzKSxybig0LHV2LDMsNCwiZGl2Iiw0KSxydCg1LCJkaXYiLDUpLEduKCJtb3VzZWRvd24iLGZ1bmN0aW9uKCl7cmV0dXJuIHYuZm9jdXNUcmVlTm9kZSgpfSksTmkoNikscm4oNywkY2UsMywyLCJkaXYiLDYpLGx0KCkoKSxydCg4LCJkaXYiLDcpLE5pKDksMSksTmkoMTAsMiksQ3Io''@;'; + put 'put ''MTEsImNsci1yZWN1cnNpdmUtY2hpbGRyZW4iLDgpLGx0KCkpLDImaCYmKEdpKCJhcmlhLWV4cGFuZGVkIix2LmlzRXhwYW5kYWJsZSgpP3YuZXhwYW5kZWQ6bnVsbCkoImFyaWEtc2VsZWN0ZWQiLHYuYXJpYVNlbGVjdGVkKSx1dCgyKSxUdCgibmdJZiIsdi5pc0V4cGFuZGFibGUoKSYmIXYu''@;'; + put 'put ''aXNNb2RlbExvYWRpbmcmJiF2LmV4cGFuZFNlcnZpY2UubG9hZGluZyksdXQoMSksVHQoIm5nSWYiLHYuZXhwYW5kU2VydmljZS5sb2FkaW5nfHx2LmlzTW9kZWxMb2FkaW5nKSx1dCgxKSxUdCgibmdJZiIsdi5mZWF0dXJlc1NlcnZpY2Uuc2VsZWN0YWJsZSksdXQoMyksVHQoIm5nSWYiLHYu''@;'; + put 'put ''ZmVhdHVyZXNTZXJ2aWNlLnNlbGVjdGFibGUpLHV0KDEpLFR0KCJAdG9nZ2xlQ2hpbGRyZW5BbmltIix2LmV4cGFuZFNlcnZpY2UuZXhwYW5kZWQ/ImV4cGFuZGVkIjoiY29sbGFwc2VkIiksR2koInJvbGUiLHYuaXNFeHBhbmRhYmxlKCkmJiF2LmZlYXR1cmVzU2VydmljZS5yZWN1cnNpb24/''@;'; + put 'put ''Imdyb3VwIjpudWxsKSx1dCgzKSxUdCgicGFyZW50Iix2Ll9tb2RlbCkpfSxkZXBlbmRlbmNpZXM6W215ZSxObyxab10sZW5jYXBzdWxhdGlvbjoyLGRhdGE6e2FuaW1hdGlvbjpbJGgoInRvZ2dsZUNoaWxkcmVuQW5pbSIsW2J1KCJjb2xsYXBzZWQgPT4gZXhwYW5kZWQiLFt5bCh7aGVpZ2h0''@;'; + put 'put ''OjB9KSxEYygyMDAseWwoe2hlaWdodDoiKiJ9KSldKSxidSgiZXhwYW5kZWQgPT4gY29sbGFwc2VkIixbeWwoe2hlaWdodDoiKiJ9KSxEYygyMDAseWwoe2hlaWdodDowfSkpXSksWjcoImV4cGFuZGVkIix5bCh7aGVpZ2h0OiIqIiwib3ZlcmZsb3cteSI6InZpc2libGUifSkpLFo3KCJjb2xs''@;'; + put 'put ''YXBzZWQiLHlsKHtoZWlnaHQ6MH0pKV0pXX19KSxkfSkoKSx5dj0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgsdix7bmF0aXZlRWxlbWVudDp5fSxDLEkpe3RoaXMuZmVhdHVyZXNTZXJ2aWNlPWgsdGhpcy5mb2N1c01hbmFnZXJTZXJ2aWNlPXYsdGhpcy5zdWJzY3JpcHRpb25zPVtdO2Nv''@;'; + put 'put ''bnN0IGo9SS5ydW5PdXRzaWRlQW5ndWxhcigoKT0+dDgoeSwiZm9jdXNpbiIpLnN1YnNjcmliZSh1ZT0+e3VlLnRhcmdldD09PXkmJih0aGlzLmZvY3VzTWFuYWdlclNlcnZpY2UuZm9jdXNGaXJzdFZpc2libGVOb2RlKCksQy5yZW1vdmVBdHRyaWJ1dGUoeSwidGFiaW5kZXgiKSl9KSk7dGhp''@;'; + put 'put ''cy5zdWJzY3JpcHRpb25zLnB1c2goail9c2V0IGxhenkoaCl7dGhpcy5mZWF0dXJlc1NlcnZpY2UuZWFnZXI9IWh9Z2V0IGlzTXVsdGlTZWxlY3RhYmxlKCl7cmV0dXJuIHRoaXMuZmVhdHVyZXNTZXJ2aWNlLnNlbGVjdGFibGUmJnRoaXMucm9vdE5vZGVzLmxlbmd0aD4wfW5nQWZ0ZXJDb250''@;'; + put 'put ''ZW50SW5pdCgpe3RoaXMuc2V0Um9vdE5vZGVzKCksdGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy5yb290Tm9kZXMuY2hhbmdlcy5zdWJzY3JpYmUoKCk9Pnt0aGlzLnNldFJvb3ROb2RlcygpfSkpfXNldFJvb3ROb2Rlcygpe3RoaXMuZm9jdXNNYW5hZ2VyU2VydmljZS5yb290Tm9kZU1v''@;'; + put 'put ''ZGVscz10aGlzLnJvb3ROb2Rlcy5tYXAoaD0+aC5fbW9kZWwpLmZpbHRlcihoPT4haC5wYXJlbnQpfW5nT25EZXN0cm95KCl7dGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goaD0+aC51bnN1YnNjcmliZSgpKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8''@;'; + put 'put ''ZCkoS3Qod1MpLEt0KGVoZSksS3QoYm8pLEt0KEdhKSxLdChfbCkpfSxkLlx1MDI3NWNtcD1UaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJjbHItdHJlZSJdXSxjb250ZW50UXVlcmllczpmdW5jdGlvbihoLHYseSl7aWYoMSZoJiZ4byh5LF9nLDQpLDImaCl7bGV0IEM7SGkoQz0kaSgpKSYmKHYu''@;'; + put 'put ''cm9vdE5vZGVzPUMpfX0saG9zdEF0dHJzOlsidGFiaW5kZXgiLCIwIl0saG9zdFZhcnM6Mixob3N0QmluZGluZ3M6ZnVuY3Rpb24oaCx2KXsyJmgmJkdpKCJyb2xlIiwidHJlZSIpKCJhcmlhLW11bHRpc2VsZWN0YWJsZSIsdi5pc011bHRpU2VsZWN0YWJsZSl9LGlucHV0czp7bGF6eTpbImNs''@;'; + put 'put ''ckxhenkiLCJsYXp5Il19LGZlYXR1cmVzOltobyhbZ3llLGVoZV0pXSxuZ0NvbnRlbnRTZWxlY3RvcnM6bmEsZGVjbHM6Mix2YXJzOjEsY29uc3RzOltbMywiY2hpbGRyZW4iLDQsIm5nSWYiXSxbMywiY2hpbGRyZW4iXV0sdGVtcGxhdGU6ZnVuY3Rpb24oaCx2KXsxJmgmJihLMCgpLE5pKDAp''@;'; + put 'put ''LHJuKDEsRWwsMSwxLCJjbHItcmVjdXJzaXZlLWNoaWxkcmVuIiwwKSksMiZoJiYodXQoMSksVHQoIm5nSWYiLHYuZmVhdHVyZXNTZXJ2aWNlLnJlY3Vyc2lvbikpfSxkZXBlbmRlbmNpZXM6W215ZSxOb10sZW5jYXBzdWxhdGlvbjoyfSksZH0pKCksVU9lPSgoKT0+e2NsYXNzIGR7Y29uc3Ry''@;'; + put 'put ''dWN0b3IoKXtmcy5hZGRJY29ucyhJeSl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1MDI3NW1vZD1jbyh7dHlwZTpkfSksZC5cdTAyNzVpbmo9YjAoe2ltcG9ydHM6W1tiYSxJcyxCZmVdXX0pLGR9KSgpLFFPZT0oKCk9PntjbGFzcyBke31y''@;'; + put 'put ''ZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVtb2Q9Y28oe3R5cGU6ZH0pLGQuXHUwMjc1aW5qPWIwKHtpbXBvcnRzOltIT2Usak9lLFVPZV19KSxkfSkoKTtjbGFzcyB5eWV7c3RhdGljIGxpbmtQYXJlbnQoZyxoLHYpe2cuZm9yRWFjaCh5''@;'; + put 'put ''PT55W3ZdPWgpfXN0YXRpYyBsaW5rVmVydGljYWwoZyxoPSEwKXtnLmZvckVhY2goKHYseSk9Pnt5PjAmJih2LnVwPWdbeS0xXSkseTxnLmxlbmd0aC0xJiYodi5kb3duPWdbeSsxXSl9KSxoJiZnLmxlbmd0aD4xJiYoZ1swXS51cD1nW2cubGVuZ3RoLTFdLGdbZy5sZW5ndGgtMV0uZG93bj1n''@;'; + put 'put ''WzBdKX19ZnVuY3Rpb24gd3llKGQsZyxoKXtyZXR1cm4gRi5jcmVhdGUodj0+e2codik7Y29uc3QgeT1kLnN1YnNjcmliZSh2KTtyZXR1cm4oKT0+e3kudW5zdWJzY3JpYmUoKSxoJiZoKHYpfX0pfWxldCB0aGU9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYseSxDLEksail7dGhpcy5p''@;'; + put 'put ''ZD1oLHRoaXMucmVuZGVyZXI9dix0aGlzLnBhcmVudD15LHRoaXMudG9nZ2xlU2VydmljZT1DLHRoaXMuZm9jdXNTZXJ2aWNlPUksdGhpcy5wbGF0Zm9ybUlkPWosdGhpcy5fdW5saXN0ZW5GdW5jcz1bXSx0aGlzLmZvY3VzQmFja09uVHJpZ2dlcj0hMSx0aGlzLnJlc2V0Q2hpbGRyZW4oKSx0''@;'; + put 'put ''aGlzLm1vdmVUb0ZpcnN0SXRlbVdoZW5PcGVuKCksdGhpcy5wYXJlbnR8fHRoaXMuaGFuZGxlUm9vdEZvY3VzKCl9bW92ZVRvRmlyc3RJdGVtV2hlbk9wZW4oKXtjb25zdCBoPXRoaXMudG9nZ2xlU2VydmljZS5vcGVuQ2hhbmdlLnN1YnNjcmliZSh2PT57diYmdGhpcy50b2dnbGVTZXJ2aWNl''@;'; + put 'put ''Lm9yaWdpbmFsRXZlbnQmJnNldFRpbWVvdXQoKCk9Pnt0aGlzLmZvY3VzU2VydmljZS5tb3ZlVG8odGhpcyksdGhpcy5mb2N1c1NlcnZpY2UubW92ZSh0aGlzLnBhcmVudD9xMS5SSUdIVDpxMS5ET1dOKX0pfSk7dGhpcy5fdW5saXN0ZW5GdW5jcy5wdXNoKCgpPT5oLnVuc3Vic2NyaWJlKCkp''@;'; + put 'put ''fWhhbmRsZVJvb3RGb2N1cygpe2NvbnN0IGg9dGhpcy50b2dnbGVTZXJ2aWNlLm9wZW5DaGFuZ2Uuc3Vic2NyaWJlKHY9Pnt2fHwodGhpcy5mb2N1c1NlcnZpY2UucmVzZXQodGhpcyksdGhpcy5mb2N1c0JhY2tPblRyaWdnZXImJnRoaXMuZm9jdXMoKSksdGhpcy5mb2N1c0JhY2tPblRyaWdn''@;'; + put 'put ''ZXI9dn0pO3RoaXMuX3VubGlzdGVuRnVuY3MucHVzaCgoKT0+aC51bnN1YnNjcmliZSgpKX1nZXQgdHJpZ2dlcigpe3JldHVybiB0aGlzLl90cmlnZ2VyfXNldCB0cmlnZ2VyKGgpe3RoaXMuX3RyaWdnZXI9aCx0aGlzLnBhcmVudD90aGlzLl91bmxpc3RlbkZ1bmNzLnB1c2godGhpcy5yZW5k''@;'; + put 'put ''ZXJlci5saXN0ZW4oaCwia2V5ZG93bi5hcnJvd3JpZ2h0Iix2PT50aGlzLnRvZ2dsZVNlcnZpY2UudG9nZ2xlV2l0aEV2ZW50KHYpKSk6KHRoaXMuX3VubGlzdGVuRnVuY3MucHVzaCh0aGlzLnJlbmRlcmVyLmxpc3RlbihoLCJrZXlkb3duLmFycm93dXAiLHY9PnRoaXMudG9nZ2xlU2Vydmlj''@;'; + put 'put ''ZS50b2dnbGVXaXRoRXZlbnQodikpKSx0aGlzLl91bmxpc3RlbkZ1bmNzLnB1c2godGhpcy5yZW5kZXJlci5saXN0ZW4oaCwia2V5ZG93bi5hcnJvd2Rvd24iLHY9PnRoaXMudG9nZ2xlU2VydmljZS50b2dnbGVXaXRoRXZlbnQodikpKSx0aGlzLmZvY3VzU2VydmljZS5saXN0ZW5Ub0Fycm93''@;'; + put 'put ''S2V5cyhoKSl9Z2V0IGNvbnRhaW5lcigpe3JldHVybiB0aGlzLl9jb250YWluZXJ9c2V0IGNvbnRhaW5lcihoKXt0aGlzLl9jb250YWluZXI9aCx0aGlzLl91bmxpc3RlbkZ1bmNzLnB1c2godGhpcy5yZW5kZXJlci5saXN0ZW4oaCwia2V5ZG93bi50YWIiLHY9PnRoaXMudG9nZ2xlU2Vydmlj''@;'; + put 'put ''ZS50b2dnbGVXaXRoRXZlbnQodikpKSx0aGlzLnBhcmVudD90aGlzLl91bmxpc3RlbkZ1bmNzLnB1c2godGhpcy5yZW5kZXJlci5saXN0ZW4oaCwia2V5ZG93bi5lc2MiLHY9Pnt0aGlzLmZvY3VzU2VydmljZS5tb3ZlKHExLkxFRlQpLHYuc3RvcFByb3BhZ2F0aW9uKCl9KSk6KHRoaXMuZm9j''@;'; + put 'put ''dXNTZXJ2aWNlLnJlZ2lzdGVyQ29udGFpbmVyKGgpLHRoaXMuX3VubGlzdGVuRnVuY3MucHVzaCh0aGlzLnJlbmRlcmVyLmxpc3RlbihoLCJrZXlkb3duLmVzYyIsdj0+dGhpcy50b2dnbGVTZXJ2aWNlLnRvZ2dsZVdpdGhFdmVudCh2KSkpLHRoaXMuX3VubGlzdGVuRnVuY3MucHVzaCh0aGlz''@;'; + put 'put ''LnJlbmRlcmVyLmxpc3RlbihoLCJibHVyIix2PT57dGhpcy5jaGlsZHJlbi5waXBlKEg1KDEpKS5zdWJzY3JpYmUoQz0+Qy5mb3JFYWNoKEk9PkkuYmx1cigpKSk7Y29uc3QgeT12LnJlbGF0ZWRUYXJnZXR8fGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7eSYmU2wodGhpcy5wbGF0Zm9ybUlkKSYm''@;'; + put 'put ''KGguY29udGFpbnMoeSl8fHk9PT10aGlzLnRyaWdnZXIpfHwodGhpcy5mb2N1c0JhY2tPblRyaWdnZXI9ITEsdGhpcy50b2dnbGVTZXJ2aWNlLm9wZW49ITEpfSkpKX1mb2N1cygpe3RoaXMudHJpZ2dlciYmU2wodGhpcy5wbGF0Zm9ybUlkKSYmdGhpcy50cmlnZ2VyLmZvY3VzKCl9Ymx1cigp''@;'; + put 'put ''e3RoaXMudHJpZ2dlciYmU2wodGhpcy5wbGF0Zm9ybUlkKSYmdGhpcy50cmlnZ2VyLmJsdXIoKX1hY3RpdmF0ZSgpe1NsKHRoaXMucGxhdGZvcm1JZCkmJnRoaXMudHJpZ2dlci5jbGljaygpfW9wZW5BbmRHZXRDaGlsZHJlbigpe3JldHVybiB3eWUodGhpcy5jaGlsZHJlbiwoKT0+dGhpcy50''@;'; + put 'put ''b2dnbGVTZXJ2aWNlLm9wZW49ITApfWNsb3NlQW5kR2V0VGhpcygpe3JldHVybiB3eWUoYWEodGhpcyksKCk9PnRoaXMudG9nZ2xlU2VydmljZS5vcGVuPSExKX1yZXNldENoaWxkcmVuKCl7dGhpcy5jaGlsZHJlbj1uZXcgeGsoMSksdGhpcy5wYXJlbnQ/dGhpcy5yaWdodD10aGlzLm9wZW5B''@;'; + put 'put ''bmRHZXRDaGlsZHJlbigpLnBpcGUobXQoaD0+aFswXSkpOih0aGlzLmRvd249dGhpcy5vcGVuQW5kR2V0Q2hpbGRyZW4oKS5waXBlKG10KGg9PmhbMF0pKSx0aGlzLnVwPXRoaXMub3BlbkFuZEdldENoaWxkcmVuKCkucGlwZShtdChoPT5oW2gubGVuZ3RoLTFdKSkpfWFkZENoaWxkcmVuKGgp''@;'; + put 'put ''e3l5ZS5saW5rVmVydGljYWwoaCksdGhpcy5wYXJlbnQmJnl5ZS5saW5rUGFyZW50KGgsdGhpcy5jbG9zZUFuZEdldFRoaXMoKSxxMS5MRUZUKSx0aGlzLmNoaWxkcmVuLm5leHQoaCl9bmdPbkRlc3Ryb3koKXt0aGlzLl91bmxpc3RlbkZ1bmNzLmZvckVhY2goaD0+aCgpKSx0aGlzLmZvY3Vz''@;'; + put 'put ''U2VydmljZS5kZXRhY2hMaXN0ZW5lcnMoKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoQ2koeTIpLENpKEdhKSxDaShkLDEyKSxDaSh6cyksQ2koeHApLENpKEwyKSl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1ZmFj''@;'; + put 'put ''fSksZH0pKCk7Y29uc3QgSk9lPU9BZSh0aGUpO2xldCBoWj0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKCl7dGhpcy5fY2hhbmdlcz1uZXcgJGV9Z2V0IGNoYW5nZXMoKXtyZXR1cm4gdGhpcy5fY2hhbmdlcy5hc09ic2VydmFibGUoKX1jbG9zZU1lbnVzKCl7dGhpcy5fY2hhbmdlcy5uZXh0''@;'; + put 'put ''KCExKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1ZmFjfSksZH0pKCk7Y29uc3QgS09lPXtwcm92aWRlOmhaLHVzZUZhY3Rvcnk6ZnVuY3Rpb24gWE9lKGQpe3JldHVybiBk''@;'; + put 'put ''fHxuZXcgaFp9LGRlcHM6W1tuZXcgbWYsbmV3IEw0LGhaXV19O2xldCB2dz0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgsdix5LEMpe3RoaXMucGFyZW50PWgsdGhpcy50b2dnbGVTZXJ2aWNlPXYsdGhpcy5jZHI9eSx0aGlzLnN1YnNjcmlwdGlvbnM9W10sdGhpcy5pc01lbnVDbG9zYWJs''@;'; + put 'put ''ZT0hMCx0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChDLmNoYW5nZXMuc3Vic2NyaWJlKEk9PnRoaXMudG9nZ2xlU2VydmljZS5vcGVuPUkpKSx0aGlzLnN1YnNjcmlwdGlvbnMucHVzaCh2Lm9wZW5DaGFuZ2Uuc3Vic2NyaWJlKCgpPT50aGlzLmNkci5tYXJrRm9yQ2hlY2soKSkpfW5nT25EZXN0''@;'; + put 'put ''cm95KCl7dGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goaD0+aC51bnN1YnNjcmliZSgpKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoS3QoZCwxMiksS3QoenMpLEt0KGQxKSxLdChoWikpfSxkLlx1MDI3NWNtcD1UaSh7dHlwZTpkLHNlbGVjdG9y''@;'; + put 'put ''czpbWyJjbHItZHJvcGRvd24iXV0saG9zdFZhcnM6NCxob3N0QmluZGluZ3M6ZnVuY3Rpb24oaCx2KXsyJmgmJkZpKCJkcm9wZG93biIsITApKCJvcGVuIix2LnRvZ2dsZVNlcnZpY2Uub3Blbil9LGlucHV0czp7aXNNZW51Q2xvc2FibGU6WyJjbHJDbG9zZU1lbnVPbkl0ZW1DbGljayIsImlz''@;'; + put 'put ''TWVudUNsb3NhYmxlIl19LGZlYXR1cmVzOltobyhbS09lLHtwcm92aWRlOnRmLHVzZUV4aXN0aW5nOmJvfSxnOCx6cyxKT2VdKV0sbmdDb250ZW50U2VsZWN0b3JzOm5hLGRlY2xzOjEsdmFyczowLHRlbXBsYXRlOmZ1bmN0aW9uKGgsdil7MSZoJiYoSzAoKSxOaSgwKSl9LGVuY2Fwc3VsYXRp''@;'; + put 'put ''b246Mn0pLGR9KSgpO2NvbnN0ICRPZT1bT2Mse3Byb3ZpZGU6bHEsdXNlQ2xhc3M6KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYseSxDKXt0aGlzLmlkPWgsdGhpcy5lbD12LHRoaXMucmVuZGVyZXI9eSx0aGlzLnBsYXRmb3JtSWQ9Qyx0aGlzLmRpc2FibGVkPSExLHkuc2V0QXR0cmli''@;'; + put 'put ''dXRlKHYubmF0aXZlRWxlbWVudCwiaWQiLGgpLHkuc2V0QXR0cmlidXRlKHYubmF0aXZlRWxlbWVudCwidGFiaW5kZXgiLCItMSIpfWZvY3VzKCl7U2wodGhpcy5wbGF0Zm9ybUlkKSYmKHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKHRoaXMuZWwubmF0aXZlRWxlbWVudCwidGFiaW5kZXgi''@;'; + put 'put ''LCIwIiksdGhpcy5lbC5uYXRpdmVFbGVtZW50LmZvY3VzKCksdGhpcy5lbC5uYXRpdmVFbGVtZW50LnNjcm9sbEludG9WaWV3KHtiZWhhdmlvcjoic21vb3RoIixibG9jazoiY2VudGVyIixpbmxpbmU6Im5lYXJlc3QifSkpfWJsdXIoKXtTbCh0aGlzLnBsYXRmb3JtSWQpJiYodGhpcy5yZW5k''@;'; + put 'put ''ZXJlci5zZXRBdHRyaWJ1dGUodGhpcy5lbC5uYXRpdmVFbGVtZW50LCJ0YWJpbmRleCIsIi0xIiksdGhpcy5lbC5uYXRpdmVFbGVtZW50LmJsdXIoKSl9YWN0aXZhdGUoKXtTbCh0aGlzLnBsYXRmb3JtSWQpJiZ0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuY2xpY2soKX19cmV0dXJuIGQuXHUwMjc1''@;'; + put 'put ''ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoQ2koeTIpLENpKGJvKSxDaShHYSksQ2koTDIpKX0sZC5cdTAyNzVwcm92PUFpKHt0b2tlbjpkLGZhY3Rvcnk6ZC5cdTAyNzVmYWN9KSxkfSkoKX1dO2xldCBkWj0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgsdix5LEMsSSl7dGhp''@;'; + put 'put ''cy5kcm9wZG93bj1oLHRoaXMuZWw9dix0aGlzLl9kcm9wZG93blNlcnZpY2U9eSx0aGlzLnJlbmRlcmVyPUMsdGhpcy5mb2N1c2FibGVJdGVtPUksdGhpcy5zZXRCeURlcHJlY2F0ZWREaXNhYmxlZD0hMX1zZXQgZGlzYWJsZWQoaCl7dGhpcy5mb2N1c2FibGVJdGVtLmRpc2FibGVkPSEhaHx8''@;'; + put 'put ''IiI9PT1ofWdldCBkaXNhYmxlZCgpe3JldHVybiB0aGlzLmZvY3VzYWJsZUl0ZW0uZGlzYWJsZWR9c2V0IGRpc2FibGVkRGVwcmVjYXRlZChoKXt0aGlzLmZvY3VzYWJsZUl0ZW0uZGlzYWJsZWQ9ISFofHwiIj09PWgsdGhpcy5zZXRCeURlcHJlY2F0ZWREaXNhYmxlZD0hMH1nZXQgZGlzYWJs''@;'; + put 'put ''ZWREZXByZWNhdGVkKCl7cmV0dXJuIHRoaXMuZm9jdXNhYmxlSXRlbS5kaXNhYmxlZH1zZXQgZHJvcGRvd25JdGVtSWQoaCl7dGhpcy5mb2N1c2FibGVJdGVtLmlkPWh9Z2V0IGRyb3Bkb3duSXRlbUlkKCl7cmV0dXJuIHRoaXMuZm9jdXNhYmxlSXRlbS5pZH1uZ0FmdGVyVmlld0luaXQoKXt0''@;'; + put 'put ''aGlzLnVubGlzdGVuPXRoaXMucmVuZGVyZXIubGlzdGVuKHRoaXMuZWwubmF0aXZlRWxlbWVudCwiY2xpY2siLCgpPT50aGlzLm9uRHJvcGRvd25JdGVtQ2xpY2soKSl9b25Ecm9wZG93bkl0ZW1DbGljaygpe3RoaXMuZHJvcGRvd24uaXNNZW51Q2xvc2FibGUmJiF0aGlzLmVsLm5hdGl2ZUVs''@;'; + put 'put ''ZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCJkaXNhYmxlZCIpJiZ0aGlzLl9kcm9wZG93blNlcnZpY2UuY2xvc2VNZW51cygpfW5nT25EZXN0cm95KCl7dGhpcy51bmxpc3RlbiYmdGhpcy51bmxpc3RlbigpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxk''@;'; + put 'put ''KShLdCh2dyksS3QoYm8pLEt0KGhaKSxLdChHYSksS3QobHEpKX0sZC5cdTAyNzVkaXI9V2koe3R5cGU6ZCxzZWxlY3RvcnM6W1siIiwiY2xyRHJvcGRvd25JdGVtIiwiIl1dLGhvc3RWYXJzOjgsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGgsdil7MiZoJiYoR2koInJvbGUiLCJtZW51aXRlbSIp''@;'; + put 'put ''KCJhcmlhLWRpc2FibGVkIix2LmRpc2FibGVkKSgiZGlzYWJsZWQiLHYuZGlzYWJsZWQmJnYuc2V0QnlEZXByZWNhdGVkRGlzYWJsZWQ/IiI6bnVsbCkoImlkIix2LmRyb3Bkb3duSXRlbUlkKSxGaSgiZGlzYWJsZWQiLHYuZGlzYWJsZWQpKCJkcm9wZG93bi1pdGVtIiwhMCkpfSxpbnB1dHM6''@;'; + put 'put ''e2Rpc2FibGVkOlsiY2xyRGlzYWJsZWQiLCJkaXNhYmxlZCJdLGRpc2FibGVkRGVwcmVjYXRlZDpbImRpc2FibGVkIiwiZGlzYWJsZWREZXByZWNhdGVkIl0sZHJvcGRvd25JdGVtSWQ6WyJpZCIsImRyb3Bkb3duSXRlbUlkIl19LGZlYXR1cmVzOltobyhbJE9lXSldfSksZH0pKCk7dmFyIGcw''@;'; + put 'put ''PSgoKT0+KGZ1bmN0aW9uKGQpe2RbZC5SSUdIVF9DRU5URVI9MF09IlJJR0hUX0NFTlRFUiIsZFtkLlJJR0hUX1RPUD0xXT0iUklHSFRfVE9QIixkW2QuUklHSFRfQk9UVE9NPTJdPSJSSUdIVF9CT1RUT00iLGRbZC5UT1BfQ0VOVEVSPTNdPSJUT1BfQ0VOVEVSIixkW2QuVE9QX1JJR0hUPTRd''@;'; + put 'put ''PSJUT1BfUklHSFQiLGRbZC5UT1BfTEVGVD01XT0iVE9QX0xFRlQiLGRbZC5CT1RUT01fQ0VOVEVSPTZdPSJCT1RUT01fQ0VOVEVSIixkW2QuQk9UVE9NX1JJR0hUPTddPSJCT1RUT01fUklHSFQiLGRbZC5CT1RUT01fTEVGVD04XT0iQk9UVE9NX0xFRlQiLGRbZC5MRUZUX0NFTlRFUj05XT0i''@;'; + put 'put ''TEVGVF9DRU5URVIiLGRbZC5MRUZUX1RPUD0xMF09IkxFRlRfVE9QIixkW2QuTEVGVF9CT1RUT009MTFdPSJMRUZUX0JPVFRPTSJ9KGcwfHwoZzA9e30pKSxnMCkpKCk7Y2xhc3MgdFJle2NvbnN0cnVjdG9yKGcpe3RoaXMuZWxlbWVudD1nLHRoaXMuc2Nyb2xsYWJsZUVsZW1lbnRzPVtdLHRo''@;'; + put 'put ''aXMuYm91bmRPblNjcm9sbExpc3RlbmVyPXRoaXMuZW1pdFNjcm9sbEV2ZW50LmJpbmQodGhpcyksZy5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiLGcuc3R5bGUudG9wPTAsZy5zdHlsZS5ib3R0b209ImF1dG8iLGcuc3R5bGUubGVmdD0wLGcuc3R5bGUucmlnaHQ9ImF1dG8ifWFuY2hvcihn''@;'; + put 'put ''LGgsdix7b2Zmc2V0WDp5PTAsb2Zmc2V0WTpDPTAsdXNlQW5jaG9yUGFyZW50Okk9ITF9PXt9KXt0aGlzLmFkZFNjcm9sbEV2ZW50TGlzdGVuZXJzKGcpLEkmJihnPWcucGFyZW50Tm9kZSksZy5zdHlsZS5wb3NpdGlvbj0ic3RhdGljIjtjb25zdCBqPWcuZ2V0Qm91bmRpbmdDbGllbnRSZWN0''@;'; + put 'put ''KCksdWU9dGhpcy5lbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2xldCBfZT1qLmxlZnQtdWUubGVmdCt5LEJlPWoudG9wLXVlLnRvcCtDO3N3aXRjaChoKXtjYXNlIGcwLkxFRlRfVE9QOmNhc2UgZzAuVE9QX0xFRlQ6YnJlYWs7Y2FzZSBnMC5UT1BfQ0VOVEVSOl9lKz1qLndpZHRo''@;'; + put 'put ''LzI7YnJlYWs7Y2FzZSBnMC5UT1BfUklHSFQ6Y2FzZSBnMC5SSUdIVF9UT1A6X2UrPWoud2lkdGg7YnJlYWs7Y2FzZSBnMC5MRUZUX0JPVFRPTTpjYXNlIGcwLkJPVFRPTV9MRUZUOkJlKz1qLmhlaWdodDticmVhaztjYXNlIGcwLkJPVFRPTV9DRU5URVI6QmUrPWouaGVpZ2h0LF9lKz1qLndp''@;'; + put 'put ''ZHRoLzI7YnJlYWs7Y2FzZSBnMC5CT1RUT01fUklHSFQ6Y2FzZSBnMC5SSUdIVF9CT1RUT006QmUrPWouaGVpZ2h0LF9lKz1qLndpZHRoO2JyZWFrO2Nhc2UgZzAuTEVGVF9DRU5URVI6QmUrPWouaGVpZ2h0LzI7YnJlYWs7Y2FzZSBnMC5SSUdIVF9DRU5URVI6QmUrPWouaGVpZ2h0LzIsX2Ur''@;'; + put 'put ''PWoud2lkdGh9c3dpdGNoKHYpe2Nhc2UgZzAuTEVGVF9UT1A6Y2FzZSBnMC5UT1BfTEVGVDpicmVhaztjYXNlIGcwLlRPUF9DRU5URVI6X2UtPXVlLndpZHRoLzI7YnJlYWs7Y2FzZSBnMC5UT1BfUklHSFQ6Y2FzZSBnMC5SSUdIVF9UT1A6X2UtPXVlLndpZHRoO2JyZWFrO2Nhc2UgZzAuTEVG''@;'; + put 'put ''VF9CT1RUT006Y2FzZSBnMC5CT1RUT01fTEVGVDpCZS09dWUuaGVpZ2h0O2JyZWFrO2Nhc2UgZzAuQk9UVE9NX0NFTlRFUjpCZS09dWUuaGVpZ2h0LF9lLT11ZS53aWR0aC8yO2JyZWFrO2Nhc2UgZzAuQk9UVE9NX1JJR0hUOmNhc2UgZzAuUklHSFRfQk9UVE9NOkJlLT11ZS5oZWlnaHQsX2Ut''@;'; + put 'put ''PXVlLndpZHRoO2JyZWFrO2Nhc2UgZzAuTEVGVF9DRU5URVI6QmUtPXVlLmhlaWdodC8yO2JyZWFrO2Nhc2UgZzAuUklHSFRfQ0VOVEVSOkJlLT11ZS5oZWlnaHQvMixfZS09dWUud2lkdGh9Y29uc3QgTmU9Z2V0Q29tcHV0ZWRTdHlsZSh0aGlzLmVsZW1lbnQpLEtlPXBhcnNlSW50KE5lLm1h''@;'; + put 'put ''cmdpbkxlZnQsMTApLGR0PXBhcnNlSW50KE5lLm1hcmdpblJpZ2h0LDEwKSxPdD1wYXJzZUludChOZS5tYXJnaW5Ub3AsMTApLCR0PXBhcnNlSW50KE5lLm1hcmdpbkJvdHRvbSwxMCk7c3dpdGNoKGgpe2Nhc2UgZzAuTEVGVF9UT1A6Y2FzZSBnMC5UT1BfTEVGVDpjYXNlIGcwLlRPUF9SSUdI''@;'; + put 'put ''VDpjYXNlIGcwLlJJR0hUX1RPUDoodj09PWcwLkJPVFRPTV9SSUdIVHx8dj09PWcwLlJJR0hUX0JPVFRPTSkmJihCZS09JHQsX2UtPWR0KSwodj09PWcwLkJPVFRPTV9MRUZUfHx2PT09ZzAuTEVGVF9CT1RUT00pJiYoQmUtPU90LF9lKz1LZSksKHY9PT1nMC5UT1BfTEVGVHx8dj09PWcwLkxF''@;'; + put 'put ''RlRfVE9QKSYmKEJlKz1PdCxfZSs9S2UpLCh2PT09ZzAuVE9QX1JJR0hUfHx2PT09ZzAuUklHSFRfVE9QKSYmKEJlKz1PdCxfZS09ZHQpO2JyZWFrO2Nhc2UgZzAuTEVGVF9CT1RUT006Y2FzZSBnMC5CT1RUT01fTEVGVDpjYXNlIGcwLkJPVFRPTV9SSUdIVDpjYXNlIGcwLlJJR0hUX0JPVFRP''@;'; + put 'put ''TToodj09PWcwLkJPVFRPTV9MRUZUfHx2PT09ZzAuTEVGVF9CT1RUT00pJiYoQmUtPSR0LF9lKz1LZSksKHY9PT1nMC5CT1RUT01fUklHSFR8fHY9PT1nMC5SSUdIVF9CT1RUT00pJiYoQmUtPSR0LF9lLT1kdCksKHY9PT1nMC5UT1BfTEVGVHx8dj09PWcwLkxFRlRfVE9QKSYmKEJlKz1PdCxf''@;'; + put 'put ''ZSs9S2UpLCh2PT09ZzAuVE9QX1JJR0hUfHx2PT09ZzAuUklHSFRfVE9QKSYmKEJlKz1PdCxfZS09ZHQpO2JyZWFrO2Nhc2UgZzAuVE9QX0NFTlRFUjpCZS09JHQsX2UrPUtlLF9lLT1kdDticmVhaztjYXNlIGcwLkJPVFRPTV9DRU5URVI6QmUrPU90LF9lKz1LZSxfZS09ZHQ7YnJlYWs7Y2Fz''@;'; + put 'put ''ZSBnMC5MRUZUX0NFTlRFUjpCZSs9T3QsQmUtPSR0LF9lLT1kdDticmVhaztjYXNlIGcwLlJJR0hUX0NFTlRFUjpCZSs9T3QsQmUtPSR0LF9lKz1LZX1yZXR1cm4gdGhpcy5lbGVtZW50LnN0eWxlLnRyYW5zZm9ybT1gdHJhbnNsYXRlWCgke01hdGgucm91bmQoX2UpfXB4KSB0cmFuc2xhdGVZ''@;'; + put 'put ''KCR7TWF0aC5yb3VuZChCZSl9cHgpYCx0aGlzLl9zY3JvbGwuYXNPYnNlcnZhYmxlKCl9cmVsZWFzZSgpe3RoaXMuZWxlbWVudC5zdHlsZS50cmFuc2Zvcm09IiIsdGhpcy5yZW1vdmVTY3JvbGxFdmVudExpc3RlbmVycygpfWlzUG9zaXRpb25lZChnKXtjb25zdCBoPWdldENvbXB1dGVkU3R5''@;'; + put 'put ''bGUoZykucG9zaXRpb247cmV0dXJuInJlbGF0aXZlIj09PWh8fCJhYnNvbHV0ZSI9PT1ofHwiZml4ZWQiPT09aH1lbWl0U2Nyb2xsRXZlbnQoKXt0aGlzLl9zY3JvbGwubmV4dCgpfWFkZFNjcm9sbEV2ZW50TGlzdGVuZXJzKGcpe3RoaXMuX3Njcm9sbD1uZXcgJGU7Y29uc3QgaD1nO2xldCB2''@;'; + put 'put ''PWc7Zm9yKDt2JiZ2IT09ZG9jdW1lbnQmJih0aGlzLnNjcm9sbHModikmJih2LmFkZEV2ZW50TGlzdGVuZXIoInNjcm9sbCIsdGhpcy5ib3VuZE9uU2Nyb2xsTGlzdGVuZXIpLHRoaXMuc2Nyb2xsYWJsZUVsZW1lbnRzLnB1c2godikpLHY9PT1ofHwhdGhpcy5pc1Bvc2l0aW9uZWQodikpOyl2''@;'; + put 'put ''PXYucGFyZW50Tm9kZX1yZW1vdmVTY3JvbGxFdmVudExpc3RlbmVycygpe2Zvcihjb25zdCBnIG9mIHRoaXMuc2Nyb2xsYWJsZUVsZW1lbnRzKWcucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2Nyb2xsIix0aGlzLmJvdW5kT25TY3JvbGxMaXN0ZW5lcik7dGhpcy5zY3JvbGxhYmxlRWxlbWVudHMu''@;'; + put 'put ''bGVuZ3RoPTAsdGhpcy5fc2Nyb2xsJiYodGhpcy5fc2Nyb2xsLmNvbXBsZXRlKCksZGVsZXRlIHRoaXMuX3Njcm9sbCl9c2Nyb2xscyhnKXtjb25zdCBoPWdldENvbXB1dGVkU3R5bGUoZyk7cmV0dXJuInNjcm9sbCI9PT1oLm92ZXJmbG93WHx8ImF1dG8iPT09aC5vdmVyZmxvd1h8fCJzY3Jv''@;'; + put 'put ''bGwiPT09aC5vdmVyZmxvd1l8fCJhdXRvIj09PWgub3ZlcmZsb3dZfX1sZXQgbmhlPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2KXt0aGlzLnBhcmVudEhvc3Q9dix0aGlzLnVwZGF0ZUFuY2hvcj0hMSx0aGlzLnBvcG92ZXJPcHRpb25zPXt9LHRoaXMuY2xvc2VPbk91dHNpZGVDbGlj''@;'; + put 'put ''az0hMSx0aGlzLmRvY3VtZW50RVNDTGlzdGVuZXI9bnVsbCx0aGlzLmNsb3NlT25PdXRzaWRlQ2xpY2tDYWxsYmFjaz15PT57dGhpcy5hbmNob3JFbGVtLmNvbnRhaW5zKHkudGFyZ2V0KXx8KHRoaXMudG9nZ2xlU2VydmljZS5vcGVuPSExKX0sdGhpcy5lbD1oLmdldChibyksdGhpcy50b2dn''@;'; + put 'put ''bGVTZXJ2aWNlPWguZ2V0KHpzKSx0aGlzLnJlbmRlcmVyPWguZ2V0KEdhKSx0aGlzLm5nWm9uZT1oLmdldChfbCksdGhpcy5yZWY9aC5nZXQoZDEpLHRoaXMuYW5jaG9yRWxlbT12Lm5hdGl2ZUVsZW1lbnQsdGhpcy5wb3BvdmVySW5zdGFuY2U9bmV3IHRSZSh0aGlzLmVsLm5hdGl2ZUVsZW1l''@;'; + put 'put ''bnQpLHRoaXMuc3Vic2NyaXB0aW9uPXRoaXMudG9nZ2xlU2VydmljZS5vcGVuQ2hhbmdlLnN1YnNjcmliZSh5PT57eT8odGhpcy5hbmNob3IoKSx0aGlzLmF0dGFjaEVTQ0xpc3RlbmVyKCkpOih0aGlzLnJlbGVhc2UoKSx0aGlzLmRldGFjaEVTQ0xpc3RlbmVyKCkpfSksdGhpcy50b2dnbGVT''@;'; + put 'put ''ZXJ2aWNlLm9wZW4mJih0aGlzLmFuY2hvcigpLHRoaXMuYXR0YWNoRVNDTGlzdGVuZXIoKSl9YW5jaG9yKCl7dGhpcy51cGRhdGVBbmNob3I9ITB9cmVsZWFzZSgpe3RoaXMuZGV0YWNoT3V0c2lkZUNsaWNrTGlzdGVuZXIoKSx0aGlzLnBvcG92ZXJJbnN0YW5jZS5yZWxlYXNlKCl9bmdBZnRl''@;'; + put 'put ''clZpZXdDaGVja2VkKCl7dGhpcy51cGRhdGVBbmNob3ImJih0aGlzLnVwZGF0ZUFuY2hvcj0hMSx0aGlzLnBvcG92ZXJJbnN0YW5jZS5hbmNob3IodGhpcy5hbmNob3JFbGVtLHRoaXMuYW5jaG9yUG9pbnQsdGhpcy5wb3BvdmVyUG9pbnQsdGhpcy5wb3BvdmVyT3B0aW9ucykuc3Vic2NyaWJl''@;'; + put 'put ''KCgpPT57dGhpcy50b2dnbGVTZXJ2aWNlLm9wZW49ITF9KSx0aGlzLmF0dGFjaE91dHNpZGVDbGlja0xpc3RlbmVyKCkpfW5nT25EZXN0cm95KCl7dGhpcy5yZWxlYXNlKCksdGhpcy5kZXRhY2hFU0NMaXN0ZW5lcigpLHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCl9Z2V0IGlzT2Zm''@;'; + put 'put ''U2NyZWVuKCl7cmV0dXJuIXRoaXMudG9nZ2xlU2VydmljZS5vcGVufWF0dGFjaEVTQ0xpc3RlbmVyKCl7dGhpcy5wb3BvdmVyT3B0aW9ucy5pZ25vcmVHbG9iYWxFU0NMaXN0ZW5lcnx8dGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCk9Pnt0aGlzLmRvY3VtZW50RVNDTGlzdGVuZXI9''@;'; + put 'put ''dGhpcy5yZW5kZXJlci5saXN0ZW4oImRvY3VtZW50Iiwia2V5ZG93biIsaD0+e2gmJmgua2V5JiYoIkVzY2FwZSI9PT1oLmtleXx8IkVzYyI9PT1oLmtleSkmJnRoaXMubmdab25lLnJ1bigoKT0+e3RoaXMudG9nZ2xlU2VydmljZS5vcGVuPSExLHRoaXMucmVmLm1hcmtGb3JDaGVjaygpfSl9''@;'; + put 'put ''KX0pfWRldGFjaEVTQ0xpc3RlbmVyKCl7dGhpcy5kb2N1bWVudEVTQ0xpc3RlbmVyJiYodGhpcy5kb2N1bWVudEVTQ0xpc3RlbmVyKCksdGhpcy5kb2N1bWVudEVTQ0xpc3RlbmVyPW51bGwpfWF0dGFjaE91dHNpZGVDbGlja0xpc3RlbmVyKCl7dGhpcy5jbG9zZU9uT3V0c2lkZUNsaWNrJiZ0''@;'; + put 'put ''aGlzLnRvZ2dsZVNlcnZpY2Uub3BlbiYmZG9jdW1lbnQmJmRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXImJmRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzLmNsb3NlT25PdXRzaWRlQ2xpY2tDYWxsYmFjaywhMCl9ZGV0YWNoT3V0c2lkZUNsaWNrTGlzdGVuZXIoKXt0aGlz''@;'; + put 'put ''LmNsb3NlT25PdXRzaWRlQ2xpY2smJmRvY3VtZW50JiZkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyJiZkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIsdGhpcy5jbG9zZU9uT3V0c2lkZUNsaWNrQ2FsbGJhY2ssITApfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24o''@;'; + put 'put ''aCl7cmV0dXJuIG5ldyhofHxkKShLdChrcyksS3QoYm8sNCkpfSxkLlx1MDI3NWRpcj1XaSh7dHlwZTpkLGhvc3RWYXJzOjIsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGgsdil7MiZoJiZGaSgiaXMtb2ZmLXNjcmVlbiIsdi5pc09mZlNjcmVlbil9fSksZH0pKCksVUw9KCgpPT57Y2xhc3MgZCBl''@;'; + put 'put ''eHRlbmRzIG5oZXtjb25zdHJ1Y3RvcihoLHYseSxDKXtpZighdil0aHJvdyBuZXcgRXJyb3IoImNsci1kcm9wZG93bi1tZW51IHNob3VsZCBvbmx5IGJlIHVzZWQgaW5zaWRlIG9mIGEgY2xyLWRyb3Bkb3duIik7c3VwZXIoaCx2KSx5Pyh0aGlzLmFuY2hvclBvaW50PWcwLlJJR0hUX1RPUCx0''@;'; + put 'put ''aGlzLnBvcG92ZXJQb2ludD1nMC5MRUZUX1RPUCk6KHRoaXMuYW5jaG9yUG9pbnQ9ZzAuQk9UVE9NX0xFRlQsdGhpcy5wb3BvdmVyUG9pbnQ9ZzAuTEVGVF9UT1ApLHRoaXMucG9wb3Zlck9wdGlvbnMuYWxsb3dNdWx0aXBsZU9wZW49ITAsdGhpcy5wb3BvdmVyT3B0aW9ucy5pZ25vcmVHbG9i''@;'; + put 'put ''YWxFU0NMaXN0ZW5lcj0hMCx0aGlzLmNsb3NlT25PdXRzaWRlQ2xpY2s9ITAsdGhpcy5mb2N1c0hhbmRsZXI9Q31zZXQgcG9zaXRpb24oaCl7c3dpdGNoKGgpe2Nhc2UidG9wLXJpZ2h0Ijp0aGlzLmFuY2hvclBvaW50PWcwLlRPUF9SSUdIVCx0aGlzLnBvcG92ZXJQb2ludD1nMC5SSUdIVF9C''@;'; + put 'put ''T1RUT007YnJlYWs7Y2FzZSJ0b3AtbGVmdCI6dGhpcy5hbmNob3JQb2ludD1nMC5UT1BfTEVGVCx0aGlzLnBvcG92ZXJQb2ludD1nMC5MRUZUX0JPVFRPTTticmVhaztjYXNlImJvdHRvbS1yaWdodCI6dGhpcy5hbmNob3JQb2ludD1nMC5CT1RUT01fUklHSFQsdGhpcy5wb3BvdmVyUG9pbnQ9''@;'; + put 'put ''ZzAuUklHSFRfVE9QO2JyZWFrO2Nhc2UiYm90dG9tLWxlZnQiOmRlZmF1bHQ6dGhpcy5hbmNob3JQb2ludD1nMC5CT1RUT01fTEVGVCx0aGlzLnBvcG92ZXJQb2ludD1nMC5MRUZUX1RPUDticmVhaztjYXNlInJpZ2h0LXRvcCI6dGhpcy5hbmNob3JQb2ludD1nMC5SSUdIVF9UT1AsdGhpcy5w''@;'; + put 'put ''b3BvdmVyUG9pbnQ9ZzAuTEVGVF9UT1A7YnJlYWs7Y2FzZSJyaWdodC1ib3R0b20iOnRoaXMuYW5jaG9yUG9pbnQ9ZzAuUklHSFRfQk9UVE9NLHRoaXMucG9wb3ZlclBvaW50PWcwLkxFRlRfQk9UVE9NO2JyZWFrO2Nhc2UibGVmdC10b3AiOnRoaXMuYW5jaG9yUG9pbnQ9ZzAuTEVGVF9UT1As''@;'; + put 'put ''dGhpcy5wb3BvdmVyUG9pbnQ9ZzAuUklHSFRfVE9QO2JyZWFrO2Nhc2UibGVmdC1ib3R0b20iOnRoaXMuYW5jaG9yUG9pbnQ9ZzAuTEVGVF9CT1RUT00sdGhpcy5wb3BvdmVyUG9pbnQ9ZzAuUklHSFRfQk9UVE9NfX1uZ0FmdGVyQ29udGVudEluaXQoKXt0aGlzLmZvY3VzSGFuZGxlci5jb250''@;'; + put 'put ''YWluZXI9dGhpcy5lbC5uYXRpdmVFbGVtZW50LHRoaXMuaXRlbXMuY2hhbmdlcy5zdWJzY3JpYmUoKCk9PnRoaXMuZm9jdXNIYW5kbGVyLmFkZENoaWxkcmVuKHRoaXMuaXRlbXMudG9BcnJheSgpKSksdGhpcy5pdGVtcy5ub3RpZnlPbkNoYW5nZXMoKX1uZ09uRGVzdHJveSgpe3N1cGVyLm5n''@;'; + put 'put ''T25EZXN0cm95KCksdGhpcy5mb2N1c0hhbmRsZXIucmVzZXRDaGlsZHJlbigpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShLdChrcyksS3QodGYsOCksS3QoZCwxMiksS3QodGhlKSl9LGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQsc2VsZWN0b3JzOltb''@;'; + put 'put ''ImNsci1kcm9wZG93bi1tZW51Il1dLGNvbnRlbnRRdWVyaWVzOmZ1bmN0aW9uKGgsdix5KXtpZigxJmgmJnhvKHksbHEsNCksMiZoKXtsZXQgQztIaShDPSRpKCkpJiYodi5pdGVtcz1DKX19LGhvc3RWYXJzOjMsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGgsdil7MiZoJiYoR2koInJvbGUiLCJt''@;'; + put 'put ''ZW51IiksRmkoImRyb3Bkb3duLW1lbnUiLCEwKSl9LGlucHV0czp7cG9zaXRpb246WyJjbHJQb3NpdGlvbiIsInBvc2l0aW9uIl19LGZlYXR1cmVzOltEb10sbmdDb250ZW50U2VsZWN0b3JzOm5hLGRlY2xzOjEsdmFyczowLHRlbXBsYXRlOmZ1bmN0aW9uKGgsdil7MSZoJiYoSzAoKSxOaSgw''@;'; + put 'put ''KSl9LGVuY2Fwc3VsYXRpb246Mn0pLGR9KSgpLFFMPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2LHksQyl7dGhpcy50b2dnbGVTZXJ2aWNlPXYsdGhpcy5pc1Jvb3RMZXZlbFRvZ2dsZT0hMCxoLnBhcmVudCYmKHRoaXMuaXNSb290TGV2ZWxUb2dnbGU9ITEpLEMudHJpZ2dlcj15Lm5h''@;'; + put 'put ''dGl2ZUVsZW1lbnR9Z2V0IGFjdGl2ZSgpe3JldHVybiB0aGlzLnRvZ2dsZVNlcnZpY2Uub3Blbn1vbkRyb3Bkb3duVHJpZ2dlckNsaWNrKGgpe3RoaXMudG9nZ2xlU2VydmljZS50b2dnbGVXaXRoRXZlbnQoaCl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8''@;'; + put 'put ''fGQpKEt0KHZ3KSxLdCh6cyksS3QoYm8pLEt0KHRoZSkpfSxkLlx1MDI3NWRpcj1XaSh7dHlwZTpkLHNlbGVjdG9yczpbWyIiLCJjbHJEcm9wZG93blRyaWdnZXIiLCIiXSxbIiIsImNsckRyb3Bkb3duVG9nZ2xlIiwiIl1dLGhvc3RWYXJzOjEwLGhvc3RCaW5kaW5nczpmdW5jdGlvbihoLHYp''@;'; + put 'put ''ezEmaCYmR24oImNsaWNrIixmdW5jdGlvbihDKXtyZXR1cm4gdi5vbkRyb3Bkb3duVHJpZ2dlckNsaWNrKEMpfSksMiZoJiYoR2koImFyaWEtaGFzcG9wdXAiLCJtZW51IikoImFyaWEtZXhwYW5kZWQiLHYuYWN0aXZlKSxGaSgiZHJvcGRvd24tdG9nZ2xlIix2LmlzUm9vdExldmVsVG9nZ2xl''@;'; + put 'put ''KSgiZHJvcGRvd24taXRlbSIsIXYuaXNSb290TGV2ZWxUb2dnbGUpKCJleHBhbmRhYmxlIiwhdi5pc1Jvb3RMZXZlbFRvZ2dsZSkoImFjdGl2ZSIsdi5hY3RpdmUpKX19KSxkfSkoKSxyaGU9KCgpPT57Y2xhc3MgZHt9cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXco''@;'; + put 'put ''aHx8ZCl9LGQuXHUwMjc1bW9kPWNvKHt0eXBlOmR9KSxkLlx1MDI3NWluaj1iMCh7aW1wb3J0czpbW2JhXSxxYSxJc119KSxkfSkoKTtjb25zdCBuUmU9WyJpbmZvIiwid2FybmluZyIsImRhbmdlciIsInN1Y2Nlc3MiXTtsZXQgaWhlPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCl7dGhp''@;'; + put 'put ''cy5jb21tb25TdHJpbmdzPWgsdGhpcy5kZWZhdWx0SWNvblNoYXBlPSJpbmZvLWNpcmNsZSIsdGhpcy5fYWxlcnRJY29uU2hhcGU9IiIsdGhpcy5fYWxlcnRUeXBlPSJpbmZvIn1nZXQgYWxlcnRUeXBlKCl7cmV0dXJuIHRoaXMuX2FsZXJ0VHlwZX1zZXQgYWxlcnRUeXBlKGgpe25SZS5pbmRl''@;'; + put 'put ''eE9mKGgpPi0xJiYodGhpcy5fYWxlcnRUeXBlPWgpfWdldCBhbGVydEljb25TaGFwZSgpe3JldHVybiIiPT09dGhpcy5fYWxlcnRJY29uU2hhcGU/dGhpcy5pY29uSW5mb0Zyb21UeXBlKHRoaXMuX2FsZXJ0VHlwZSkuc2hhcGU6dGhpcy5fYWxlcnRJY29uU2hhcGV9c2V0IGFsZXJ0SWNvblNo''@;'; + put 'put ''YXBlKGgpe2g/aCE9PXRoaXMuX2FsZXJ0SWNvblNoYXBlJiYodGhpcy5fYWxlcnRJY29uU2hhcGU9aCk6dGhpcy5fYWxlcnRJY29uU2hhcGU9IiJ9Z2V0IGFsZXJ0SWNvblRpdGxlKCl7cmV0dXJuIHRoaXMuaWNvbkluZm9Gcm9tVHlwZSh0aGlzLl9hbGVydFR5cGUpLnRpdGxlfWljb25JbmZv''@;'; + put 'put ''RnJvbVR5cGUoaCl7Y29uc3Qgdj17c2hhcGU6IiIsY3NzQ2xhc3M6IiIsdGl0bGU6IiJ9O3N3aXRjaChoKXtjYXNlIndhcm5pbmciOnYuc2hhcGU9ImV4Y2xhbWF0aW9uLXRyaWFuZ2xlIix2LmNzc0NsYXNzPSJhbGVydC13YXJuaW5nIix2LnRpdGxlPXRoaXMuY29tbW9uU3RyaW5ncy5rZXlz''@;'; + put 'put ''Lndhcm5pbmc7YnJlYWs7Y2FzZSJkYW5nZXIiOnYuc2hhcGU9ImV4Y2xhbWF0aW9uLWNpcmNsZSIsdi5jc3NDbGFzcz0iYWxlcnQtZGFuZ2VyIix2LnRpdGxlPXRoaXMuY29tbW9uU3RyaW5ncy5rZXlzLmRhbmdlcjticmVhaztjYXNlInN1Y2Nlc3MiOnYuc2hhcGU9ImNoZWNrLWNpcmNsZSIs''@;'; + put 'put ''di5jc3NDbGFzcz0iYWxlcnQtc3VjY2VzcyIsdi50aXRsZT10aGlzLmNvbW1vblN0cmluZ3Mua2V5cy5zdWNjZXNzO2JyZWFrO2RlZmF1bHQ6di5zaGFwZT10aGlzLmRlZmF1bHRJY29uU2hhcGUsdi5jc3NDbGFzcz0iYWxlcnQtaW5mbyIsdi50aXRsZT10aGlzLmNvbW1vblN0cmluZ3Mua2V5''@;'; + put 'put ''cy5pbmZvfXJldHVybiB2fX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShDaShucykpfSxkLlx1MDI3NXByb3Y9QWkoe3Rva2VuOmQsZmFjdG9yeTpkLlx1MDI3NWZhY30pLGR9KSgpLENxPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoKXt0aGlzLl9j''@;'; + put 'put ''aGFuZ2U9bmV3ICRlfWdldCBjaGFuZ2VzKCl7cmV0dXJuIHRoaXMuX2NoYW5nZS5hc09ic2VydmFibGUoKX1nZXQgY3VycmVudCgpe3JldHVybiB0aGlzLl9jdXJyZW50fXNldCBjdXJyZW50KGgpe2ghPT10aGlzLl9jdXJyZW50JiYodGhpcy5fY3VycmVudD1oLHRoaXMuX2NoYW5nZS5uZXh0''@;'; + put 'put ''KGgpKX1nZXQgYWN0aXZlQWxlcnRzKCl7cmV0dXJuIHRoaXMuYWxsQWxlcnRzJiZ0aGlzLmFsbEFsZXJ0cy5maWx0ZXIoaD0+IWguX2Nsb3NlZCl9Z2V0IGN1cnJlbnRBbGVydCgpe3JldHVybiB0aGlzLmFjdGl2ZUFsZXJ0cyYmdGhpcy5hY3RpdmVBbGVydHNbdGhpcy5jdXJyZW50XX1zZXQg''@;'; + put 'put ''Y3VycmVudEFsZXJ0KGgpe3RoaXMuY3VycmVudD10aGlzLmFjdGl2ZUFsZXJ0cy5pbmRleE9mKGgpfWdldCBjb3VudCgpe3JldHVybiB0aGlzLmFjdGl2ZUFsZXJ0cyYmdGhpcy5hY3RpdmVBbGVydHMubGVuZ3RofHwwfW1hbmFnZShoKXt0aGlzLnN1YnNjcmlwdGlvbiYmdGhpcy5zdWJzY3Jp''@;'; + put 'put ''cHRpb24udW5zdWJzY3JpYmUoKSx0aGlzLmFsbEFsZXJ0cz1oLHRoaXMuY3VycmVudD0ibnVtYmVyIj09dHlwZW9mIHRoaXMuX2N1cnJlbnQ/dGhpcy5fY3VycmVudDowLHRoaXMuX2NoYW5nZS5uZXh0KHRoaXMuY3VycmVudCksdGhpcy5zdWJzY3JpcHRpb249dGhpcy5hbGxBbGVydHMuY2hh''@;'; + put 'put ''bmdlcy5zdWJzY3JpYmUoKCk9Pnt0aGlzLmN1cnJlbnQ+PXRoaXMuYWxsQWxlcnRzLmxlbmd0aCYmKHRoaXMuY3VycmVudD1NYXRoLm1heCgwLHRoaXMuYWxsQWxlcnRzLmxlbmd0aC0xKSl9KX1uZXh0KCl7dGhpcy5fY3VycmVudD10aGlzLmN1cnJlbnQ9PT10aGlzLmFjdGl2ZUFsZXJ0cy5s''@;'; + put 'put ''ZW5ndGgtMT8wOnRoaXMuY3VycmVudCsxLHRoaXMuX2NoYW5nZS5uZXh0KHRoaXMuX2N1cnJlbnQpfXByZXZpb3VzKCl7MCE9PXRoaXMuYWN0aXZlQWxlcnRzLmxlbmd0aCYmKHRoaXMuX2N1cnJlbnQ9MD09PXRoaXMuY3VycmVudD90aGlzLmFjdGl2ZUFsZXJ0cy5sZW5ndGgtMTp0aGlzLmN1''@;'; + put 'put ''cnJlbnQtMSx0aGlzLl9jaGFuZ2UubmV4dCh0aGlzLl9jdXJyZW50KSl9b3BlbigpezAhPT10aGlzLmFjdGl2ZUFsZXJ0cy5sZW5ndGgmJih0aGlzLmN1cnJlbnRBbGVydHx8KHRoaXMuX2N1cnJlbnQ9MCksdGhpcy5fY2hhbmdlLm5leHQodGhpcy5fY3VycmVudCkpfWNsb3NlKGgpezAhPT10''@;'; + put 'put ''aGlzLmFjdGl2ZUFsZXJ0cy5sZW5ndGgmJihoJiYodGhpcy5fY3VycmVudD1NYXRoLm1heCgwLHRoaXMuY3VycmVudC0xKSksdGhpcy5fY2hhbmdlLm5leHQodGhpcy5fY3VycmVudCkpfWRlc3Ryb3koKXt0aGlzLnN1YnNjcmlwdGlvbiYmdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUo''@;'; + put 'put ''KX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1ZmFjfSksZH0pKCkscFo9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYseSxDKXt0aGlzLmljb25TZXJ2aWNlPWgsdGhp''@;'; + put 'put ''cy5jZHI9dix0aGlzLm11bHRpQWxlcnRTZXJ2aWNlPXksdGhpcy5jb21tb25TdHJpbmdzPUMsdGhpcy5zdWJzY3JpcHRpb25zPVtdLHRoaXMuaXNTbWFsbD0hMSx0aGlzLmNsb3NhYmxlPSEwLHRoaXMuaXNBcHBMZXZlbD0hMSx0aGlzLmNsckNsb3NlQnV0dG9uQXJpYUxhYmVsPXRoaXMuY29t''@;'; + put 'put ''bW9uU3RyaW5ncy5rZXlzLmFsZXJ0Q2xvc2VCdXR0b25BcmlhTGFiZWwsdGhpcy5fY2xvc2VkPSExLHRoaXMuX2Nsb3NlZENoYW5nZWQ9bmV3IGFyKCExKX1uZ09uSW5pdCgpe3RoaXMubXVsdGlBbGVydFNlcnZpY2UmJnRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMubXVsdGlBbGVydFNl''@;'; + put 'put ''cnZpY2UuY2hhbmdlcy5zdWJzY3JpYmUoKCk9Pnt0aGlzLmhpZGRlbj10aGlzLm11bHRpQWxlcnRTZXJ2aWNlLmN1cnJlbnRBbGVydCE9PXRoaXN9KSl9bmdPbkRlc3Ryb3koKXt0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChoPT5oLnVuc3Vic2NyaWJlKCkpfXNldCBjbG9zZWQoaCl7aCYm''@;'; + put 'put ''IXRoaXMuX2Nsb3NlZD90aGlzLmNsb3NlKCk6IWgmJnRoaXMuX2Nsb3NlZCYmdGhpcy5vcGVuKCl9c2V0IGFsZXJ0VHlwZShoKXt0aGlzLmljb25TZXJ2aWNlLmFsZXJ0VHlwZT1ofWdldCBhbGVydFR5cGUoKXtyZXR1cm4gdGhpcy5pY29uU2VydmljZS5hbGVydFR5cGV9c2V0IGFsZXJ0SWNv''@;'; + put 'put ''blNoYXBlKGgpe3RoaXMuaWNvblNlcnZpY2UuYWxlcnRJY29uU2hhcGU9aH1nZXQgYWxlcnRDbGFzcygpe3JldHVybiB0aGlzLmljb25TZXJ2aWNlLmljb25JbmZvRnJvbVR5cGUodGhpcy5pY29uU2VydmljZS5hbGVydFR5cGUpLmNzc0NsYXNzfXNldCBoaWRkZW4oaCl7aCE9PXRoaXMuX2hp''@;'; + put 'put ''ZGRlbiYmKHRoaXMuX2hpZGRlbj1oLHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKSl9Z2V0IGhpZGRlbigpe3JldHVybiB0aGlzLl9oaWRkZW59Y2xvc2UoKXt2YXIgaDtpZighdGhpcy5jbG9zYWJsZSlyZXR1cm47Y29uc3Qgdj0obnVsbD09PShoPXRoaXMubXVsdGlBbGVydFNlcnZpY2UpfHx2''@;'; + put 'put ''b2lkIDA9PT1oP3ZvaWQgMDpoLmN1cnJlbnRBbGVydCk9PT10aGlzO3RoaXMuX2Nsb3NlZD0hMCx0aGlzLm11bHRpQWxlcnRTZXJ2aWNlJiZ0aGlzLm11bHRpQWxlcnRTZXJ2aWNlLmNsb3NlKHYpLHRoaXMuX2Nsb3NlZENoYW5nZWQuZW1pdCghMCl9b3Blbigpe3RoaXMuX2Nsb3NlZD0hMSx0''@;'; + put 'put ''aGlzLm11bHRpQWxlcnRTZXJ2aWNlJiZ0aGlzLm11bHRpQWxlcnRTZXJ2aWNlLm9wZW4oKSx0aGlzLl9jbG9zZWRDaGFuZ2VkLmVtaXQoITEpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShLdChpaGUpLEt0KGQxKSxLdChDcSw4KSxLdChucykpfSxk''@;'; + put 'put ''Llx1MDI3NWNtcD1UaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJjbHItYWxlcnQiXV0saW5wdXRzOntpc1NtYWxsOlsiY2xyQWxlcnRTaXplU21hbGwiLCJpc1NtYWxsIl0sY2xvc2FibGU6WyJjbHJBbGVydENsb3NhYmxlIiwiY2xvc2FibGUiXSxpc0FwcExldmVsOlsiY2xyQWxlcnRBcHBMZXZl''@;'; + put 'put ''bCIsImlzQXBwTGV2ZWwiXSxjbHJDbG9zZUJ1dHRvbkFyaWFMYWJlbDoiY2xyQ2xvc2VCdXR0b25BcmlhTGFiZWwiLGNsb3NlZDpbImNsckFsZXJ0Q2xvc2VkIiwiY2xvc2VkIl0sYWxlcnRUeXBlOlsiY2xyQWxlcnRUeXBlIiwiYWxlcnRUeXBlIl0sYWxlcnRJY29uU2hhcGU6WyJjbHJBbGVy''@;'; + put 'put ''dEljb24iLCJhbGVydEljb25TaGFwZSJdfSxvdXRwdXRzOntfY2xvc2VkQ2hhbmdlZDoiY2xyQWxlcnRDbG9zZWRDaGFuZ2UifSxmZWF0dXJlczpbaG8oW2loZV0pXSxuZ0NvbnRlbnRTZWxlY3RvcnM6bmEsZGVjbHM6MSx2YXJzOjEsY29uc3RzOltbImNsYXNzIiwiYWxlcnQiLDMsIm5nQ2xh''@;'; + put 'put ''c3MiLCJhbGVydC1oaWRkZW4iLCJhbGVydC1zbSIsImFsZXJ0LWFwcC1sZXZlbCIsNCwibmdJZiJdLFsxLCJhbGVydCIsMywibmdDbGFzcyJdLFsxLCJhbGVydC1pdGVtcyJdLFsidHlwZSIsImJ1dHRvbiIsImNsYXNzIiwiY2xvc2UiLDMsImNsaWNrIiw0LCJuZ0lmIl0sWyJ0eXBlIiwiYnV0''@;'; + put 'put ''dG9uIiwxLCJjbG9zZSIsMywiY2xpY2siXSxbInNoYXBlIiwid2luZG93LWNsb3NlIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGgsdil7MSZoJiYoSzAoKSxybigwLEJmLDQsOCwiZGl2IiwwKSksMiZoJiZUdCgibmdJZiIsIXYuX2Nsb3NlZCl9LGRlcGVuZGVuY2llczpbTm8sbGMsWm9dLHN0eWxl''@;'; + put 'put ''czpbIltfbmdob3N0LSVDT01QJV17ZGlzcGxheTpibG9ja30iXX0pLGR9KSgpLGt5ZT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgpe3RoaXMuaWNvblNlcnZpY2U9aH19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoS3QoaWhlKSl9LGQuXHUwMjc1''@;'; + put 'put ''Y21wPVRpKHt0eXBlOmQsc2VsZWN0b3JzOltbImNsci1hbGVydC1pdGVtIl1dLGhvc3RBdHRyczpbMSwiYWxlcnQtaXRlbSJdLG5nQ29udGVudFNlbGVjdG9yczpuYSxkZWNsczozLHZhcnM6Mixjb25zdHM6W1sxLCJhbGVydC1pY29uLXdyYXBwZXIiXSxbInJvbGUiLCJpbWciLDEsImFsZXJ0''@;'; + put 'put ''LWljb24iXV0sdGVtcGxhdGU6ZnVuY3Rpb24oaCx2KXsxJmgmJihLMCgpLHJ0KDAsImRpdiIsMCksQ3IoMSwiY2RzLWljb24iLDEpLGx0KCksTmkoMikpLDImaCYmKHV0KDEpLEdpKCJzaGFwZSIsdi5pY29uU2VydmljZS5hbGVydEljb25TaGFwZSkoImFyaWEtbGFiZWwiLHYuaWNvblNlcnZp''@;'; + put 'put ''Y2UuYWxlcnRJY29uVGl0bGUpKX0sZGVwZW5kZW5jaWVzOltab10sZW5jYXBzdWxhdGlvbjoyfSksZH0pKCksZ1o9KCgpPT57Y2xhc3MgZHt9cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1ZGlyPVdpKHt0eXBlOmQsc2VsZWN0b3JzOltb''@;'; + put 'put ''IiIsOCwiYWxlcnQtdGV4dCJdXX0pLGR9KSgpLFN5ZT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgsdil7dGhpcy5tdWx0aUFsZXJ0U2VydmljZT1oLHRoaXMuY29tbW9uU3RyaW5ncz12LHRoaXMuY3VycmVudEFsZXJ0Q2hhbmdlPW5ldyBhcighMSksdGhpcy5jdXJyZW50QWxlcnRJbmRl''@;'; + put 'put ''eENoYW5nZT1uZXcgYXJ9c2V0IGN1cnJlbnRBbGVydChoKXtoJiYodGhpcy5tdWx0aUFsZXJ0U2VydmljZS5jdXJyZW50QWxlcnQ9aCl9Z2V0IGN1cnJlbnRBbGVydCgpe3JldHVybiB0aGlzLm11bHRpQWxlcnRTZXJ2aWNlLmN1cnJlbnRBbGVydH1zZXQgY3VycmVudEFsZXJ0SW5kZXgoaCl7''@;'; + put 'put ''dGhpcy5tdWx0aUFsZXJ0U2VydmljZS5jdXJyZW50PWh9Z2V0IGN1cnJlbnRBbGVydEluZGV4KCl7cmV0dXJuIHRoaXMubXVsdGlBbGVydFNlcnZpY2UuY3VycmVudH1uZ09uSW5pdCgpe3RoaXMubXVsdGlBbGVydFNlcnZpY2VDaGFuZ2VzPXRoaXMubXVsdGlBbGVydFNlcnZpY2UuY2hhbmdl''@;'; + put 'put ''cy5zdWJzY3JpYmUoaD0+e3RoaXMuY3VycmVudEFsZXJ0SW5kZXhDaGFuZ2UuZW1pdChoKSx0aGlzLmN1cnJlbnRBbGVydENoYW5nZS5lbWl0KHRoaXMubXVsdGlBbGVydFNlcnZpY2UuYWN0aXZlQWxlcnRzW2hdKX0pfXBhZ2VVcCgpe3RoaXMubXVsdGlBbGVydFNlcnZpY2UubmV4dCgpfXBh''@;'; + put 'put ''Z2VEb3duKCl7dGhpcy5tdWx0aUFsZXJ0U2VydmljZS5wcmV2aW91cygpfW5nT25EZXN0cm95KCl7dGhpcy5tdWx0aUFsZXJ0U2VydmljZUNoYW5nZXMudW5zdWJzY3JpYmUoKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoS3QoQ3EpLEt0KG5zKSl9''@;'; + put 'put ''LGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQsc2VsZWN0b3JzOltbImNsci1hbGVydHMtcGFnZXIiXV0saG9zdFZhcnM6Mixob3N0QmluZGluZ3M6ZnVuY3Rpb24oaCx2KXsyJmgmJkZpKCJhbGVydHMtcGFnZXIiLCEwKX0saW5wdXRzOntjdXJyZW50QWxlcnQ6WyJjbHJDdXJyZW50QWxlcnQiLCJj''@;'; + put 'put ''dXJyZW50QWxlcnQiXSxjdXJyZW50QWxlcnRJbmRleDpbImNsckN1cnJlbnRBbGVydEluZGV4IiwiY3VycmVudEFsZXJ0SW5kZXgiXX0sb3V0cHV0czp7Y3VycmVudEFsZXJ0Q2hhbmdlOiJjbHJDdXJyZW50QWxlcnRDaGFuZ2UiLGN1cnJlbnRBbGVydEluZGV4Q2hhbmdlOiJjbHJDdXJyZW50''@;'; + put 'put ''QWxlcnRJbmRleENoYW5nZSJ9LGRlY2xzOjksdmFyczo0LGNvbnN0czpbWzEsImFsZXJ0cy1wYWdlci1jb250cm9sIl0sWzEsImFsZXJ0cy1wYWdlLWRvd24iXSxbMSwiYWxlcnRzLXBhZ2VyLWJ1dHRvbiIsMywiY2xpY2siXSxbInNoYXBlIiwiYW5nbGUiLCJkaXJlY3Rpb24iLCJsZWZ0Il0s''@;'; + put 'put ''WzEsImFsZXJ0cy1wYWdlci10ZXh0Il0sWzEsImFsZXJ0cy1wYWdlLXVwIl0sWyJzaGFwZSIsImFuZ2xlIiwiZGlyZWN0aW9uIiwicmlnaHQiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oaCx2KXsxJmgmJihydCgwLCJkaXYiLDApKDEsImRpdiIsMSkoMiwiYnV0dG9uIiwyKSxHbigiY2xpY2siLGZ1''@;'; + put 'put ''bmN0aW9uKCl7cmV0dXJuIHYucGFnZURvd24oKX0pLENyKDMsImNkcy1pY29uIiwzKSxsdCgpKCkscnQoNCwiZGl2Iiw0KSxZdCg1KSxsdCgpLHJ0KDYsImRpdiIsNSkoNywiYnV0dG9uIiwyKSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHYucGFnZVVwKCl9KSxDcig4LCJjZHMtaWNv''@;'; + put 'put ''biIsNiksbHQoKSgpKCkpLDImaCYmKHV0KDMpLEdpKCJ0aXRsZSIsdi5jb21tb25TdHJpbmdzLmtleXMucHJldmlvdXMpLHV0KDIpLEZoKCIiLHYubXVsdGlBbGVydFNlcnZpY2UuY3VycmVudCsxLCIgLyAiLHYubXVsdGlBbGVydFNlcnZpY2UuY291bnQsIiIpLHV0KDMpLEdpKCJ0aXRsZSIs''@;'; + put 'put ''di5jb21tb25TdHJpbmdzLmtleXMubmV4dCkpfSxkZXBlbmRlbmNpZXM6W1pvXSxlbmNhcHN1bGF0aW9uOjJ9KSxkfSkoKSxNeWU9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoKXt0aGlzLm11bHRpQWxlcnRTZXJ2aWNlPWgsdGhpcy5zdWJzY3JpcHRpb25zPVtdLHRoaXMuY3VycmVudEFs''@;'; + put 'put ''ZXJ0SW5kZXhDaGFuZ2U9bmV3IGFyKCExKSx0aGlzLmN1cnJlbnRBbGVydENoYW5nZT1uZXcgYXIoITEpfXNldCBhbGxBbGVydHMoaCl7dGhpcy5tdWx0aUFsZXJ0U2VydmljZS5tYW5hZ2UoaCl9c2V0IF9pbnB1dEN1cnJlbnRJbmRleChoKXtOdW1iZXIuaXNJbnRlZ2VyKGgpJiZoPj0wJiYo''@;'; + put 'put ''dGhpcy5tdWx0aUFsZXJ0U2VydmljZS5jdXJyZW50PWgpfXNldCBjdXJyZW50QWxlcnRJbmRleChoKXt0aGlzLm11bHRpQWxlcnRTZXJ2aWNlLmN1cnJlbnQ9aH1nZXQgY3VycmVudEFsZXJ0SW5kZXgoKXtyZXR1cm4gdGhpcy5tdWx0aUFsZXJ0U2VydmljZS5jdXJyZW50fXNldCBjdXJyZW50''@;'; + put 'put ''QWxlcnQoaCl7aCYmKHRoaXMubXVsdGlBbGVydFNlcnZpY2UuY3VycmVudEFsZXJ0PWgpfWdldCBjdXJyZW50QWxlcnQoKXtyZXR1cm4gdGhpcy5tdWx0aUFsZXJ0U2VydmljZS5jdXJyZW50QWxlcnR9Z2V0IGFsZXJ0cygpe3JldHVybiB0aGlzLmFsbEFsZXJ0cy5maWx0ZXIoaD0+ITE9PT1o''@;'; + put 'put ''LmhpZGRlbil9Z2V0IGN1cnJlbnRBbGVydFR5cGUoKXtyZXR1cm4gdGhpcy5tdWx0aUFsZXJ0U2VydmljZS5jdXJyZW50QWxlcnQ/dGhpcy5tdWx0aUFsZXJ0U2VydmljZS5jdXJyZW50QWxlcnQuYWxlcnRUeXBlOiIifW5nQWZ0ZXJDb250ZW50SW5pdCgpe3RoaXMuc3Vic2NyaXB0aW9ucy5w''@;'; + put 'put ''dXNoKHRoaXMubXVsdGlBbGVydFNlcnZpY2UuY2hhbmdlcy5zdWJzY3JpYmUoaD0+e3RoaXMuY3VycmVudEFsZXJ0SW5kZXhDaGFuZ2UubmV4dChoKSx0aGlzLmN1cnJlbnRBbGVydENoYW5nZS5uZXh0KHRoaXMubXVsdGlBbGVydFNlcnZpY2UuY3VycmVudEFsZXJ0KX0pKX1uZ09uRGVzdHJv''@;'; + put 'put ''eSgpe3RoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKGg9PmgudW5zdWJzY3JpYmUoKSksdGhpcy5tdWx0aUFsZXJ0U2VydmljZS5kZXN0cm95KCl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKEt0KENxKSl9LGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQs''@;'; + put 'put ''c2VsZWN0b3JzOltbImNsci1hbGVydHMiXV0sY29udGVudFF1ZXJpZXM6ZnVuY3Rpb24oaCx2LHkpe2lmKDEmaCYmeG8oeSxwWiw0KSwyJmgpe2xldCBDO0hpKEM9JGkoKSkmJih2LmFsbEFsZXJ0cz1DKX19LGhvc3RWYXJzOjEwLGhvc3RCaW5kaW5nczpmdW5jdGlvbihoLHYpezImaCYmRmko''@;'; + put 'put ''ImFsZXJ0cyIsITApKCJhbGVydC1kYW5nZXIiLCJkYW5nZXIiPT12LmN1cnJlbnRBbGVydFR5cGUpKCJhbGVydC1pbmZvIiwiaW5mbyI9PXYuY3VycmVudEFsZXJ0VHlwZSkoImFsZXJ0LXN1Y2Nlc3MiLCJzdWNjZXNzIj09di5jdXJyZW50QWxlcnRUeXBlKSgiYWxlcnQtd2FybmluZyIsIndh''@;'; + put 'put ''cm5pbmciPT12LmN1cnJlbnRBbGVydFR5cGUpfSxpbnB1dHM6e19pbnB1dEN1cnJlbnRJbmRleDpbImNsckN1cnJlbnRBbGVydEluZGV4IiwiX2lucHV0Q3VycmVudEluZGV4Il0sY3VycmVudEFsZXJ0OlsiY2xyQ3VycmVudEFsZXJ0IiwiY3VycmVudEFsZXJ0Il19LG91dHB1dHM6e2N1cnJl''@;'; + put 'put ''bnRBbGVydEluZGV4Q2hhbmdlOiJjbHJDdXJyZW50QWxlcnRJbmRleENoYW5nZSIsY3VycmVudEFsZXJ0Q2hhbmdlOiJjbHJDdXJyZW50QWxlcnRDaGFuZ2UifSxmZWF0dXJlczpbaG8oW0NxXSldLG5nQ29udGVudFNlbGVjdG9yczpGJCxkZWNsczoyLHZhcnM6MSxjb25zdHM6W1szLCJjbHJD''@;'; + put 'put ''dXJyZW50QWxlcnRJbmRleCIsNCwibmdJZiJdLFszLCJjbHJDdXJyZW50QWxlcnRJbmRleCJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihoLHYpezEmaCYmKEswKFNMKSxybigwLGZoLDEsMSwiY2xyLWFsZXJ0cy1wYWdlciIsMCksTmkoMSkpLDImaCYmVHQoIm5nSWYiLHYubXVsdGlBbGVydFNlcnZp''@;'; + put 'put ''Y2UuY291bnQ+MSl9LGRlcGVuZGVuY2llczpbU3llLE5vXSxzdHlsZXM6WyJbX25naG9zdC0lQ09NUCVde2Rpc3BsYXk6YmxvY2t9Il19KSxkfSkoKSxFeWU9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3Rvcigpe2ZzLmFkZEljb25zKFRmLG1YLEtoLGpzZSxTayl9fXJldHVybiBkLlx1MDI3NWZh''@;'; + put 'put ''Yz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1MDI3NW1vZD1jbyh7dHlwZTpkfSksZC5cdTAyNzVpbmo9YjAoe2ltcG9ydHM6W1tiYSxJcyxyaGVdXX0pLGR9KSgpLHJSZT0oKCk9PntjbGFzcyBke31yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyho''@;'; + put 'put ''fHxkKX0sZC5cdTAyNzVtb2Q9Y28oe3R5cGU6ZH0pLGQuXHUwMjc1aW5qPWIwKHtpbXBvcnRzOltFeWVdfSksZH0pKCkscXM9KCgpPT57Y2xhc3MgZHt9cmV0dXJuIGQuTkFWX0xFVkVMXzE9MSxkLk5BVl9MRVZFTF8yPTIsZC5OQVZfQ0xPU0VfQUxMPSJOQVZfQ0xPU0VfQUxMIixkLk5BVl9P''@;'; + put 'put ''UEVOPSJOQVZfT1BFTiIsZC5OQVZfQ0xPU0U9Ik5BVl9DTE9TRSIsZC5OQVZfVE9HR0xFPSJOQVZfVE9HR0xFIixkLk5BVl9DTEFTU19IQU1CVVJHRVJfTUVOVT0ib3Blbi1oYW1idXJnZXItbWVudSIsZC5OQVZfQ0xBU1NfT1ZFUkZMT1dfTUVOVT0ib3Blbi1vdmVyZmxvdy1tZW51IixkLk5B''@;'; + put 'put ''Vl9DTEFTU19UUklHR0VSXzE9ImhlYWRlci1oYW1idXJnZXItdHJpZ2dlciIsZC5OQVZfQ0xBU1NfVFJJR0dFUl8yPSJoZWFkZXItb3ZlcmZsb3ctdHJpZ2dlciIsZC5OQVZfQ0xBU1NfTEVWRUxfMT0iY2xyLW5hdi1sZXZlbC0xIixkLk5BVl9DTEFTU19MRVZFTF8yPSJjbHItbmF2LWxldmVs''@;'; + put 'put ''LTIiLGR9KSgpO2NsYXNzIHh5ZXtjb25zdHJ1Y3RvcihnLGgpe3RoaXMuX2NvbnRyb2xDb2RlPWcsdGhpcy5fbmF2TGV2ZWw9aH1nZXQgY29udHJvbENvZGUoKXtyZXR1cm4gdGhpcy5fY29udHJvbENvZGV9Z2V0IG5hdkxldmVsKCl7cmV0dXJuIHRoaXMuX25hdkxldmVsfX1sZXQga3E9KCgp''@;'; + put 'put ''PT57Y2xhc3MgZHtjb25zdHJ1Y3Rvcigpe3RoaXMucmVzcG9uc2l2ZU5hdkxpc3Q9W10sdGhpcy5yZWdpc3Rlck5hdlN1YmplY3Q9bmV3IHhrLHRoaXMuY29udHJvbE5hdlN1YmplY3Q9bmV3ICRlLHRoaXMuY2xvc2VBbGxOYXZzKCl9Z2V0IHJlZ2lzdGVyZWROYXZzKCl7cmV0dXJuIHRoaXMu''@;'; + put 'put ''cmVnaXN0ZXJOYXZTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpfWdldCBuYXZDb250cm9sKCl7cmV0dXJuIHRoaXMuY29udHJvbE5hdlN1YmplY3QuYXNPYnNlcnZhYmxlKCl9cmVnaXN0ZXJOYXYoaCl7IWh8fHRoaXMuaXNOYXZSZWdpc3RlcmVkKGgpfHwodGhpcy5yZXNwb25zaXZlTmF2TGlzdC5w''@;'; + put 'put ''dXNoKGgpLHRoaXMucmVnaXN0ZXJOYXZTdWJqZWN0Lm5leHQodGhpcy5yZXNwb25zaXZlTmF2TGlzdCkpfWlzTmF2UmVnaXN0ZXJlZChoKXtyZXR1cm4gdGhpcy5yZXNwb25zaXZlTmF2TGlzdC5pbmRleE9mKGgpPi0xJiYoY29uc29sZS5lcnJvcigiTXVsdGlwbGUgY2xyLW5hdi1sZXZlbCAi''@;'; + put 'put ''K2grIiBhdHRyaWJ1dGVzIGZvdW5kLiBQbGVhc2UgbWFrZSBzdXJlIHRoYXQgb25seSBvbmUgZXhpc3RzIiksITApfXVucmVnaXN0ZXJOYXYoaCl7Y29uc3Qgdj10aGlzLnJlc3BvbnNpdmVOYXZMaXN0LmluZGV4T2YoaCk7dj4tMSYmKHRoaXMucmVzcG9uc2l2ZU5hdkxpc3Quc3BsaWNlKHYs''@;'; + put 'put ''MSksdGhpcy5yZWdpc3Rlck5hdlN1YmplY3QubmV4dCh0aGlzLnJlc3BvbnNpdmVOYXZMaXN0KSl9c2VuZENvbnRyb2xNZXNzYWdlKGgsdil7Y29uc3QgeT1uZXcgeHllKGgsdik7dGhpcy5jb250cm9sTmF2U3ViamVjdC5uZXh0KHkpfWNsb3NlQWxsTmF2cygpe2NvbnN0IGg9bmV3IHh5ZShx''@;'; + put 'put ''cy5OQVZfQ0xPU0VfQUxMLC05OTkpO3RoaXMuY29udHJvbE5hdlN1YmplY3QubmV4dChoKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1ZmFjLHByb3ZpZGVkSW46InJvb3Qi''@;'; + put 'put ''fSksZH0pKCksaVJlPSgoKT0+e2NsYXNzIGR7fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1MDI3NW1vZD1jbyh7dHlwZTpkfSksZC5cdTAyNzVpbmo9YjAoe2ltcG9ydHM6W1tiYSxJc11dfSksZH0pKCk7ZnVuY3Rpb24gSXllKGQpe2NvbnN0''@;'; + put 'put ''IGc9ZC5jcmVhdGVFbGVtZW50KCJzcGFuIik7cmV0dXJuIGcuc2V0QXR0cmlidXRlKCJ0YWJpbmRleCIsIjAiKSxnLmNsYXNzTGlzdC5hZGQoIm9mZnNjcmVlbi1mb2N1cy1yZWJvdW5kZXIiKSxnfWxldCBoUmU9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYseSxDKXt0aGlzLnJlbmRl''@;'; + put 'put ''cmVyPWgsdGhpcy5hY3RpdmU9ITEsU2woeSkmJih0aGlzLl9kb2N1bWVudD12LmdldChwcykpLEMuZm9jdXNUcmFwSWR8fChDLmZvY3VzVHJhcElkPWZ1bmN0aW9uIFlKKGQ9Il8iKXtyZXR1cm5gJHtkfSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyKDIsOSl9YH0oKSksdGhp''@;'; + put 'put ''cy5mb2N1c1RyYXBFbGVtZW50PUN9ZW5hYmxlRm9jdXNUcmFwKCl7Y29uc3QgaD10aGlzLmZvY3VzVHJhcEVsZW1lbnQsdj1oLnF1ZXJ5U2VsZWN0b3IoIltjZHMtZmlyc3QtZm9jdXNdIikseT10aGlzLl9kb2N1bWVudC5hY3RpdmVFbGVtZW50O2lmKHRMLmdldEN1cnJlbnQoKT09PWgpdGhy''@;'; + put 'put ''b3cgbmV3IEVycm9yKCJGb2N1cyB0cmFwIGlzIGFscmVhZHkgZW5hYmxlZCBmb3IgdGhpcyBpbnN0YW5jZS4iKTt0aGlzLmZpcnN0Rm9jdXNFbGVtZW50PXZ8fHRoaXMuZm9jdXNUcmFwRWxlbWVudCxmdW5jdGlvbiBjUmUoZCxnKXtpZihnJiYhZy50b3BSZWJvdW5kRWxlbWVudCYmIWcuYm90''@;'; + put 'put ''dG9tUmVib3VuZEVsZW1lbnQpe2cudG9wUmVib3VuZEVsZW1lbnQ9SXllKGQpLGcuYm90dG9tUmVib3VuZEVsZW1lbnQ9SXllKGQpO2NvbnN0IGg9Zy5wYXJlbnRFbGVtZW50LHY9Zy5uZXh0U2libGluZztoJiYoaC5pbnNlcnRCZWZvcmUoZy50b3BSZWJvdW5kRWxlbWVudCxnKSx2P2guaW5z''@;'; + put 'put ''ZXJ0QmVmb3JlKGcuYm90dG9tUmVib3VuZEVsZW1lbnQsdik6aC5hcHBlbmRDaGlsZChnLmJvdHRvbVJlYm91bmRFbGVtZW50KSl9fSh0aGlzLl9kb2N1bWVudCxoKSxmdW5jdGlvbiByMWUoZCl7c3dpdGNoKGQudGFnTmFtZS50b0xvd2VyQ2FzZSgpKXtjYXNlImlucHV0IjpyZXR1cm4iaGlk''@;'; + put 'put ''ZGVuIiE9PWQuZ2V0QXR0cmlidXRlKCJ0eXBlIikmJiFkLmhhc0F0dHJpYnV0ZSgiZGlzYWJsZWQiKSYmIWQuaGFzQXR0cmlidXRlKCJyZWFkb25seSIpO2Nhc2UiYnV0dG9uIjpjYXNlInNlbGVjdCI6Y2FzZSJ0ZXh0YXJlYSI6cmV0dXJuIWQuaGFzQXR0cmlidXRlKCJkaXNhYmxlZCIpO2Nh''@;'; + put 'put ''c2UiaWZyYW1lIjpjYXNlImVtYmVkIjpjYXNlIm9iamVjdCI6cmV0dXJuITA7Y2FzZSJhIjpjYXNlImFyZWEiOnJldHVybiBkLmhhc0F0dHJpYnV0ZSgiaHJlZiIpO2Nhc2UiYXVkaW8iOmNhc2UidmlkZW8iOnJldHVybiBkLmhhc0F0dHJpYnV0ZSgiY29udHJvbHMiKTtkZWZhdWx0OnJldHVy''@;'; + put 'put ''biBkLmhhc0F0dHJpYnV0ZSgidGFiaW5kZXgiKXx8InRydWUiPT09ZC5nZXRBdHRyaWJ1dGUoImNvbnRlbnRlZGl0YWJsZSIpfHwiYnV0dG9uIj09PWQuZ2V0QXR0cmlidXRlKCJyb2xlIikmJiFkLmhhc0F0dHJpYnV0ZSgiZGlzYWJsZWQiKX19KGgpfHxoLnNldEF0dHJpYnV0ZSgidGFiaW5k''@;'; + put 'put ''ZXgiLCItMSIpLHkmJmZ1bmN0aW9uIGwxZShkKXtyZXR1cm4hIWQmJmQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudH0oeSkmJih0aGlzLnByZXZpb3VzRm9jdXM9eSksdEwuc2V0Q3VycmVudChoKTtjb25zdCBDPXNldFRpbWVvdXQoKCk9Pnt0aGlzLmZpcnN0Rm9jdXNFbGVtZW50LmZvY3VzKCks''@;'; + put 'put ''Y2xlYXJUaW1lb3V0KEMpfSwxMCk7dGhpcy5vbkZvY3VzSW5FdmVudD10aGlzLm9uRm9jdXNJbi5iaW5kKHRoaXMpLHRoaXMudW5saXN0ZW49dGhpcy5yZW5kZXJlci5saXN0ZW4odGhpcy5fZG9jdW1lbnQsImZvY3VzaW4iLHRoaXMub25Gb2N1c0luRXZlbnQpLHRoaXMuYWN0aXZlPSEwfXJl''@;'; + put 'put ''bW92ZUZvY3VzVHJhcCgpe3RoaXMudW5saXN0ZW4mJnRoaXMudW5saXN0ZW4oKSxmdW5jdGlvbiBmUmUoZCl7aWYoZCl7Y29uc3QgZz1kLnBhcmVudEVsZW1lbnQ7aWYoZyl7Y29uc3QgaD1kLnRvcFJlYm91bmRFbGVtZW50LHY9ZC5ib3R0b21SZWJvdW5kRWxlbWVudDtoJiZnLnJlbW92ZUNo''@;'; + put 'put ''aWxkKGgpLHYmJmcucmVtb3ZlQ2hpbGQodil9ZGVsZXRlIGQudG9wUmVib3VuZEVsZW1lbnQsZGVsZXRlIGQuYm90dG9tUmVib3VuZEVsZW1lbnR9fSh0aGlzLmZvY3VzVHJhcEVsZW1lbnQpLHRoaXMucmVuZGVyZXIucmVtb3ZlQXR0cmlidXRlKHRoaXMuZm9jdXNUcmFwRWxlbWVudCwidGFi''@;'; + put 'put ''aW5kZXgiKSx0TC5hY3RpdmF0ZVByZXZpb3VzQ3VycmVudCgpLHRoaXMuYWN0aXZlPSExLHRoaXMucHJldmlvdXNGb2N1cyYmdGhpcy5wcmV2aW91c0ZvY3VzLmZvY3VzKCl9b25Gb2N1c0luKGgpeyFmdW5jdGlvbiBzUmUoZCxnLGgpe2NvbnN0IHY9dEwuZ2V0Q3VycmVudCgpPT09Zyx5PWZ1''@;'; + put 'put ''bmN0aW9uIHVSZShkLGcpe3JldHVybiBkPT09Zy50b3BSZWJvdW5kRWxlbWVudHx8ZD09PWcuYm90dG9tUmVib3VuZEVsZW1lbnR8fCEoZy5jb250YWlucyhkKXx8bnVsbCE9PWcmJmcuY29udGFpbnMoZCkpfShkLGcpO3YmJnk/KGg9aHx8ZykuZm9jdXMoKTpkLmZvY3VzKCl9KGguY29tcG9z''@;'; + put 'put ''ZWRQYXRoKClbMF0sdGhpcy5mb2N1c1RyYXBFbGVtZW50LHRoaXMuZmlyc3RGb2N1c0VsZW1lbnQpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7WDkoKX0sZC5cdTAyNzVwcm92PUFpKHt0b2tlbjpkLGZhY3Rvcnk6ZC5cdTAyNzVmYWN9KSxkfSkoKSxEeWU9KCgpPT57Y2xhc3Mg''@;'; + put 'put ''ZCBleHRlbmRzIGhSZXtjb25zdHJ1Y3RvcihoLHYseSxDLEkpe3N1cGVyKEMsSSxoLHkubmF0aXZlRWxlbWVudCksdGhpcy5yZXNwb25zaXZlTmF2U2VydmljZT12LHRoaXMuZWxlbWVudFJlZj15LHRoaXMuX2lzT3Blbj0hMSxTbChoKSYmKHRoaXMuX2RvY3VtZW50PUkuZ2V0KHBzKSksdGhp''@;'; + put 'put ''cy5fc3Vic2NyaXB0aW9uPXYubmF2Q29udHJvbC5waXBlKE8yKGo9PmoubmF2TGV2ZWw9PT10aGlzLmxldmVsKSxPMigoe2NvbnRyb2xDb2RlOmp9KT0+aj09PXFzLk5BVl9PUEVOJiYhdGhpcy5pc09wZW58fGo9PT1xcy5OQVZfQ0xPU0UmJnRoaXMuaXNPcGVuKSkuc3Vic2NyaWJlKCh7Y29u''@;'; + put 'put ''dHJvbENvZGU6an0pPT57aiE9PXFzLk5BVl9PUEVOP3RoaXMuY2xvc2UoKTp0aGlzLm9wZW4oKX0pLHRoaXMuX3N1YnNjcmlwdGlvbi5hZGQodi5uYXZDb250cm9sLnBpcGUoTzIoKHtjb250cm9sQ29kZTpqfSk9Pmo9PT1xcy5OQVZfQ0xPU0VfQUxMKSkuc3Vic2NyaWJlKCgpPT50aGlzLmNs''@;'; + put 'put ''b3NlKCkpKX1uZ09uSW5pdCgpe3RoaXMuY2xvc2VCdXR0b25BcmlhTGFiZWx8fCh0aGlzLmNsb3NlQnV0dG9uQXJpYUxhYmVsPXRoaXMuX2xldmVsPT09cXMuTkFWX0xFVkVMXzE/WWoucmVzcG9uc2l2ZU5hdlRvZ2dsZUNsb3NlOllqLnJlc3BvbnNpdmVOYXZPdmVyZmxvd0Nsb3NlKSx0aGlz''@;'; + put 'put ''LmxldmVsPT09cXMuTkFWX0xFVkVMXzF8fHRoaXMubGV2ZWw9PT1xcy5OQVZfTEVWRUxfMj8odGhpcy5yZXNwb25zaXZlTmF2U2VydmljZS5yZWdpc3Rlck5hdih0aGlzLmxldmVsKSx0aGlzLmFkZE5hdkNsYXNzKHRoaXMubGV2ZWwpKTpjb25zb2xlLmVycm9yKCJOYXYgTGV2ZWwgY2FuIG9u''@;'; + put 'put ''bHkgYmUgMSBvciAyIil9bmdBZnRlclZpZXdJbml0KCl7Y29uc3QgaD0oKGQsZyk9Pntjb25zdCBoPXRoaXMuX2RvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNkcy1pbnRlcm5hbC1jbG9zZS1idXR0b24iKTtyZXR1cm4gaC5zZXRBdHRyaWJ1dGUoImljb24tc2l6ZSIsIjMyIiksaC5zZXRBdHRy''@;'; + put 'put ''aWJ1dGUoImFyaWEtbGFiZWwiLGcpLGguc2V0QXR0cmlidXRlKCJhcmlhLWhpZGRlbiIsInRydWUiKSxoLnNldEF0dHJpYnV0ZSgidHlwZSIsImJ1dHRvbiIpLGguc2V0QXR0cmlidXRlKCJoaWRkZW4iLCJ0cnVlIiksaC5jbGFzc05hbWU9ImNsci1uYXYtY2xvc2UiLGh9KSgwLHRoaXMuY2xv''@;'; + put 'put ''c2VCdXR0b25BcmlhTGFiZWwpO3RoaXMucmVuZGVyZXIubGlzdGVuKGgsImNsaWNrIix0aGlzLmNsb3NlLmJpbmQodGhpcykpLHRoaXMucmVuZGVyZXIuaW5zZXJ0QmVmb3JlKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LGgsdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZmly''@;'; + put 'put ''c3RDaGlsZCksdGhpcy5fZG9jdW1lbnQuYm9keS5jbGllbnRXaWR0aDw5OTImJnRoaXMuY2xvc2UoKX1hZGROYXZDbGFzcyhoKXtjb25zdCB2PXRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdDtoPT09cXMuTkFWX0xFVkVMXzE/di5hZGQocXMuTkFWX0NMQVNTX0xFVkVM''@;'; + put 'put ''XzEpOmg9PT1xcy5OQVZfTEVWRUxfMiYmdi5hZGQocXMuTkFWX0NMQVNTX0xFVkVMXzIpfWdldCBsZXZlbCgpe3JldHVybiB0aGlzLl9sZXZlbH1nZXQgcmVzcG9uc2l2ZU5hdkNvZGVzKCl7cmV0dXJuIHFzfWdldCBpc09wZW4oKXtyZXR1cm4gdGhpcy5faXNPcGVufW9uUmVzaXplKGgpe2gu''@;'; + put 'put ''dGFyZ2V0LmlubmVyV2lkdGg8OTkyJiZ0aGlzLmlzT3Blbj90aGlzLmNsb3NlKCk6dGhpcy5zaG93TmF2aWdhdGlvbigpfW9wZW4oKXt0aGlzLl9pc09wZW49ITAsdGhpcy5zaG93TmF2aWdhdGlvbigpLHRoaXMuZW5hYmxlRm9jdXNUcmFwKCksdGhpcy5zaG93Q2xvc2VCdXR0b24oKSx0aGlz''@;'; + put 'put ''LnJlc3BvbnNpdmVOYXZTZXJ2aWNlLnNlbmRDb250cm9sTWVzc2FnZShxcy5OQVZfT1BFTix0aGlzLmxldmVsKX1jbG9zZSgpe3RoaXMuX2lzT3Blbj0hMSx0aGlzLmhpZGVOYXZpZ2F0aW9uKCksdGhpcy5yZW1vdmVGb2N1c1RyYXAoKSx0aGlzLmhpZGVDbG9zZUJ1dHRvbigpLHRoaXMucmVz''@;'; + put 'put ''cG9uc2l2ZU5hdlNlcnZpY2Uuc2VuZENvbnRyb2xNZXNzYWdlKHFzLk5BVl9DTE9TRSx0aGlzLmxldmVsKX1vbk1vdXNlQ2xpY2soaCl7bGV0IHY9aDtjb25zdCB5PXRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O2Zvcig7djspe2lmKHY9PT15KXJldHVybjtpZih2LmNsYXNzTGlzdC5j''@;'; + put 'put ''b250YWlucygibmF2LWxpbmsiKSYmdGhpcy5fZG9jdW1lbnQuYm9keS5jbGllbnRXaWR0aDw5OTIpcmV0dXJuIHZvaWQgdGhpcy5jbG9zZSgpO3Y9di5wYXJlbnROb2RlfX1oaWRlTmF2aWdhdGlvbigpe3RoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVF''@;'; + put 'put ''bGVtZW50LCJhcmlhLWhpZGRlbiIsInRydWUiKSx0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwiaGlkZGVuIiwidHJ1ZSIpfXNob3dOYXZpZ2F0aW9uKCl7dGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUodGhpcy5lbGVtZW50UmVmLm5h''@;'; + put 'put ''dGl2ZUVsZW1lbnQsImFyaWEtaGlkZGVuIiwiZmFsc2UiKSx0aGlzLnJlbmRlcmVyLnJlbW92ZUF0dHJpYnV0ZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwiaGlkZGVuIil9aGlkZUNsb3NlQnV0dG9uKCl7dGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUodGhpcy5lbGVtZW50UmVm''@;'; + put 'put ''Lm5hdGl2ZUVsZW1lbnQsImFyaWEtaGlkZGVuIiwidHJ1ZSIpLHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoIi5jbHItbmF2LWNsb3NlIiksImhpZGRlbiIsInRydWUiKX1zaG93Q2xvc2VCdXR0b24oKXt0aGlz''@;'; + put 'put ''LnJlbmRlcmVyLnNldEF0dHJpYnV0ZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCIuY2xyLW5hdi1jbG9zZSIpLCJhcmlhLWhpZGRlbiIsImZhbHNlIiksdGhpcy5yZW5kZXJlci5yZW1vdmVBdHRyaWJ1dGUodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1l''@;'; + put 'put ''bnQucXVlcnlTZWxlY3RvcigiLmNsci1uYXYtY2xvc2UiKSwiaGlkZGVuIil9bmdPbkRlc3Ryb3koKXt0aGlzLnJlc3BvbnNpdmVOYXZTZXJ2aWNlLnVucmVnaXN0ZXJOYXYodGhpcy5sZXZlbCksdGhpcy5fc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCl9fXJldHVybiBkLlx1MDI3NWZhYz1m''@;'; + put 'put ''dW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKEt0KEwyKSxLdChrcSksS3QoYm8pLEt0KEdhKSxLdChrcykpfSxkLlx1MDI3NWRpcj1XaSh7dHlwZTpkLHNlbGVjdG9yczpbWyIiLCJjbHItbmF2LWxldmVsIiwiIl1dLGhvc3RCaW5kaW5nczpmdW5jdGlvbihoLHYpezEmaCYmR24oInJlc2l6''@;'; + put 'put ''ZSIsZnVuY3Rpb24oQyl7cmV0dXJuIHYub25SZXNpemUoQyl9LDAsTGIpKCJjbGljayIsZnVuY3Rpb24oQyl7cmV0dXJuIHYub25Nb3VzZUNsaWNrKEMudGFyZ2V0KX0pfSxpbnB1dHM6e19sZXZlbDpbImNsci1uYXYtbGV2ZWwiLCJfbGV2ZWwiXSxjbG9zZUJ1dHRvbkFyaWFMYWJlbDpbImNs''@;'; + put 'put ''b3NlQXJpYUxhYmVsIiwiY2xvc2VCdXR0b25BcmlhTGFiZWwiXX0sZmVhdHVyZXM6W0RvXX0pLGR9KSgpLHBSZT0oKCk9PntjbGFzcyBke31yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVtb2Q9Y28oe3R5cGU6ZH0pLGQuXHUwMjc1aW5q''@;'; + put 'put ''PWIwKHtpbXBvcnRzOltbYmEsSXMscmhlXV19KSxkfSkoKSxMeWU9KCgpPT57Y2xhc3MgZHt9cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQsc2VsZWN0b3JzOltbIm5nLWNvbXBvbmVudCJdXSx2aWV3UXVlcnk6''@;'; + put 'put ''ZnVuY3Rpb24oaCx2KXtpZigxJmgmJnZvKHFyLDUpLDImaCl7bGV0IHk7SGkoeT0kaSgpKSYmKHYudGVtcGxhdGU9eS5maXJzdCl9fSxuZ0NvbnRlbnRTZWxlY3RvcnM6bmEsZGVjbHM6MSx2YXJzOjAsdGVtcGxhdGU6ZnVuY3Rpb24oaCx2KXsxJmgmJihLMCgpLHJuKDAsVmosMSwwLCJuZy10''@;'; + put 'put ''ZW1wbGF0ZSIpKX0sZW5jYXBzdWxhdGlvbjoyfSksZH0pKCksZ1JlPSgoKT0+e2NsYXNzIGR7fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1MDI3NW1vZD1jbyh7dHlwZTpkfSksZC5cdTAyNzVpbmo9YjAoe2ltcG9ydHM6W1tiYV1dfSksZH0p''@;'; + put 'put ''KCksSkw9KCgpPT57Y2xhc3MgZCBleHRlbmRzIG93e31yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oKXtsZXQgZztyZXR1cm4gZnVuY3Rpb24odil7cmV0dXJuKGd8fChnPWZsKGQpKSkodnx8ZCl9fSgpLGQuXHUwMjc1ZGlyPVdpKHt0eXBlOmQsc2VsZWN0b3JzOltbImNsci10YWJzIl1d''@;'; + put 'put ''LGZlYXR1cmVzOltEb119KSxkfSkoKSxtWj0oKCk9PntjbGFzcyBkIGV4dGVuZHMgYXd7Y29uc3RydWN0b3IoaCx2LHksQyl7aWYoIXYpdGhyb3cgbmV3IEVycm9yKCJjbHJUYWJMaW5rIGFuZCBjbHItdGFiLWNvbnRlbnQgc2hvdWxkIG9ubHkgYmUgdXNlZCBpbnNpZGUgb2YgYSBjbHItdGFi''@;'; + put 'put ''cyIpO3N1cGVyKGgsdiksdGhpcy5pZkFjdGl2ZT1DLHRoaXMuaWQ9eX1nZXQgZmxhdm9yKCl7cmV0dXJuIHRoaXMuaWZBY3RpdmUuY3VycmVudD09PXRoaXMuaWR9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKEt0KGQxKSxLdChKTCw4KSxLdChvbCks''@;'; + put 'put ''S3QoejIpKX0sZC5cdTAyNzVkaXI9V2koe3R5cGU6ZCxzZWxlY3RvcnM6W1siIiwiY2xyVGFiTGluayIsIiJdLFsiY2xyLXRhYi1jb250ZW50Il1dLGZlYXR1cmVzOltEb119KSxkfSkoKTt2YXIgd3Y9KCgpPT4oZnVuY3Rpb24oZCl7ZC5IT1JJWk9OVEFMPSJob3Jpem9udGFsIixkLlZFUlRJ''@;'; + put 'put ''Q0FMPSJ2ZXJ0aWNhbCJ9KHd2fHwod3Y9e30pKSx3dikpKCk7bGV0IHZaPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoKXt0aGlzLl9jaGlsZHJlbj1bXSx0aGlzLmxheW91dD13di5IT1JJWk9OVEFMfXJlZ2lzdGVyKGgpe3RoaXMuX2NoaWxkcmVuLnB1c2goaCl9Z2V0IGNoaWxkcmVuKCl7''@;'; + put 'put ''cmV0dXJuIHRoaXMuX2NoaWxkcmVufWdldCBhY3RpdmVUYWIoKXtyZXR1cm4gdGhpcy5jaGlsZHJlbi5maW5kKGg9PmguYWN0aXZlKX1nZXQgb3ZlcmZsb3dUYWJzKCl7cmV0dXJuIHRoaXMubGF5b3V0PT09d3YuVkVSVElDQUw/W106dGhpcy5jaGlsZHJlbi5maWx0ZXIoaD0+ITA9PT1oLnRh''@;'; + put 'put ''YkxpbmsuaW5PdmVyZmxvdyl9dW5yZWdpc3RlcihoKXtjb25zdCB2PXRoaXMuY2hpbGRyZW4uaW5kZXhPZihoKTt2Pi0xJiZ0aGlzLmNoaWxkcmVuLnNwbGljZSh2LDEpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVwcm92PUFpKHt0''@;'; + put 'put ''b2tlbjpkLGZhY3Rvcnk6ZC5cdTAyNzVmYWN9KSxkfSkoKSxtUmU9MCxYTD0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgsdix5LEMpe3RoaXMuaWZBY3RpdmVTZXJ2aWNlPWgsdGhpcy5pZD12LHRoaXMuYXJpYVNlcnZpY2U9eSx0aGlzLnRhYnNTZXJ2aWNlPUMsdGhpcy50YWJDb250ZW50''@;'; + put 'put ''SWR8fCh0aGlzLnRhYkNvbnRlbnRJZD0iY2xyLXRhYi1jb250ZW50LSIrbVJlKyspfXNldCB0ZW1wbGF0ZVJlZihoKXt0aGlzLnZpZXdSZWY9dGhpcy50YWJzU2VydmljZS50YWJDb250ZW50Vmlld0NvbnRhaW5lci5jcmVhdGVFbWJlZGRlZFZpZXcoaCl9Z2V0IGFyaWFMYWJlbGxlZEJ5KCl7''@;'; + put 'put ''cmV0dXJuIHRoaXMuYXJpYVNlcnZpY2UuYXJpYUxhYmVsbGVkQnl9Z2V0IHRhYkNvbnRlbnRJZCgpe3JldHVybiB0aGlzLmFyaWFTZXJ2aWNlLmFyaWFDb250cm9sc31zZXQgdGFiQ29udGVudElkKGgpe3RoaXMuYXJpYVNlcnZpY2UuYXJpYUNvbnRyb2xzPWh9Z2V0IGFjdGl2ZSgpe3JldHVy''@;'; + put 'put ''biB0aGlzLmlmQWN0aXZlU2VydmljZS5jdXJyZW50PT09dGhpcy5pZH1uZ09uRGVzdHJveSgpe2NvbnN0IGg9dGhpcy50YWJzU2VydmljZS50YWJDb250ZW50Vmlld0NvbnRhaW5lci5pbmRleE9mKHRoaXMudmlld1JlZik7aD4tMSYmdGhpcy50YWJzU2VydmljZS50YWJDb250ZW50Vmlld0Nv''@;'; + put 'put ''bnRhaW5lci5yZW1vdmUoaCl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKEt0KHoyKSxLdChvbCksS3Qoc1MpLEt0KHZaKSl9LGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQsc2VsZWN0b3JzOltbImNsci10YWItY29udGVudCJdXSx2aWV3UXVlcnk6ZnVu''@;'; + put 'put ''Y3Rpb24oaCx2KXtpZigxJmgmJnZvKHJTLDcpLDImaCl7bGV0IHk7SGkoeT0kaSgpKSYmKHYudGVtcGxhdGVSZWY9eS5maXJzdCl9fSxpbnB1dHM6e3RhYkNvbnRlbnRJZDpbImlkIiwidGFiQ29udGVudElkIl19LG5nQ29udGVudFNlbGVjdG9yczpuYSxkZWNsczoyLHZhcnM6MCxjb25zdHM6''@;'; + put 'put ''W1sidGFiQ29udGVudFByb2plY3RlZFJlZiIsIiJdLFsicm9sZSIsInRhYnBhbmVsIiwxLCJ0YWItY29udGVudCIsMywiaWQiLCJoaWRkZW4iXV0sdGVtcGxhdGU6ZnVuY3Rpb24oaCx2KXsxJmgmJihLMCgpLHJuKDAseEwsMiw2LCJuZy10ZW1wbGF0ZSIsbnVsbCwwLFpyKSl9LGVuY2Fwc3Vs''@;'; + put 'put ''YXRpb246Mn0pLGR9KSgpLHZSZT0wO2NvbnN0IG9oZT1uZXcgemUoIlRBQlNfSUQiKSx5UmU9e3Byb3ZpZGU6b2hlLHVzZUZhY3Rvcnk6ZnVuY3Rpb24gQVJlKCl7cmV0dXJuImNsci10YWJzLSIrdlJlKyt9fTtsZXQgd1JlPTAsS0w9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYseSxD''@;'; + put 'put ''LEksaix1ZSxfZSl7dGhpcy5pZkFjdGl2ZVNlcnZpY2U9aCx0aGlzLmlkPXYsdGhpcy5hcmlhU2VydmljZT15LHRoaXMuZWw9Qyx0aGlzLmNmcj1JLHRoaXMudmlld0NvbnRhaW5lclJlZj1qLHRoaXMudGFic1NlcnZpY2U9dWUsdGhpcy50YWJzSWQ9X2UsdGhpcy50YWJMaW5rSWR8fCh0aGlz''@;'; + put 'put ''LnRhYkxpbmtJZD0iY2xyLXRhYi1saW5rLSIrd1JlKyspO2NvbnN0IEJlPXRoaXMuY2ZyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KEx5ZSk7dGhpcy50ZW1wbGF0ZVJlZkNvbnRhaW5lcj10aGlzLnZpZXdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KEJlLHZvaWQgMCx2b2lkIDAsW1t0''@;'; + put 'put ''aGlzLmVsLm5hdGl2ZUVsZW1lbnRdXSkuaW5zdGFuY2V9c2V0IGluT3ZlcmZsb3coaCl7dGhpcy5faW5PdmVyZmxvdz1ofWdldCBpbk92ZXJmbG93KCl7cmV0dXJuIHRoaXMuX2luT3ZlcmZsb3cmJnRoaXMudGFic1NlcnZpY2UubGF5b3V0IT09d3YuVkVSVElDQUx9Z2V0IGFkZExpbmtDbGFz''@;'; + put 'put ''c2VzKCl7cmV0dXJuIXRoaXMuaW5PdmVyZmxvd31nZXQgYXJpYUNvbnRyb2xzKCl7cmV0dXJuIHRoaXMuYXJpYVNlcnZpY2UuYXJpYUNvbnRyb2xzfWdldCB0YWJMaW5rSWQoKXtyZXR1cm4gdGhpcy5hcmlhU2VydmljZS5hcmlhTGFiZWxsZWRCeX1zZXQgdGFiTGlua0lkKGgpe3RoaXMuYXJp''@;'; + put 'put ''YVNlcnZpY2UuYXJpYUxhYmVsbGVkQnk9aH1hY3RpdmF0ZSgpe3RoaXMuaWZBY3RpdmVTZXJ2aWNlLmN1cnJlbnQ9dGhpcy5pZH1nZXQgYWN0aXZlKCl7cmV0dXJuIHRoaXMuaWZBY3RpdmVTZXJ2aWNlLmN1cnJlbnQ9PT10aGlzLmlkfWdldCB0YWJpbmRleCgpe3JldHVybiB0aGlzLmFjdGl2''@;'; + put 'put ''ZT8wOi0xfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShLdCh6MiksS3Qob2wpLEt0KHNTKSxLdChibyksS3QoTWQpLEt0KFVpKSxLdCh2WiksS3Qob2hlKSl9LGQuXHUwMjc1ZGlyPVdpKHt0eXBlOmQsc2VsZWN0b3JzOltbIiIsImNsclRhYkxpbmsi''@;'; + put 'put ''LCIiXV0saG9zdEF0dHJzOlsicm9sZSIsInRhYiIsInR5cGUiLCJidXR0b24iXSxob3N0VmFyczoxMixob3N0QmluZGluZ3M6ZnVuY3Rpb24oaCx2KXsxJmgmJkduKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gdi5hY3RpdmF0ZSgpfSksMiZoJiYoUDMoImlkIix2LnRhYkxpbmtJZCksR2ko''@;'; + put 'put ''ImFyaWEtY29udHJvbHMiLHYuYXJpYUNvbnRyb2xzKSgiYXJpYS1zZWxlY3RlZCIsdi5hY3RpdmUpKCJ0YWJpbmRleCIsdi50YWJpbmRleCksRmkoImJ0biIsITApKCJidG4tbGluayIsdi5hZGRMaW5rQ2xhc3NlcykoIm5hdi1saW5rIix2LmFkZExpbmtDbGFzc2VzKSgiYWN0aXZlIix2LmFj''@;'; + put 'put ''dGl2ZSkpfSxpbnB1dHM6e2luT3ZlcmZsb3c6WyJjbHJUYWJMaW5rSW5PdmVyZmxvdyIsImluT3ZlcmZsb3ciXSx0YWJMaW5rSWQ6WyJpZCIsInRhYkxpbmtJZCJdfX0pLGR9KSgpLCRMPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2LHkpe3RoaXMuaWZBY3RpdmVTZXJ2aWNlPWgsdGhp''@;'; + put 'put ''cy5pZD12LHRoaXMudGFic1NlcnZpY2U9eSx5LnJlZ2lzdGVyKHRoaXMpfW5nT25EZXN0cm95KCl7dGhpcy50YWJzU2VydmljZS51bnJlZ2lzdGVyKHRoaXMpfWdldCBhY3RpdmUoKXtyZXR1cm4gdGhpcy5pZkFjdGl2ZVNlcnZpY2UuY3VycmVudD09PXRoaXMuaWR9fXJldHVybiBkLlx1MDI3''@;'; + put 'put ''NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKEt0KHoyKSxLdChvbCksS3QodlopKX0sZC5cdTAyNzVjbXA9VGkoe3R5cGU6ZCxzZWxlY3RvcnM6W1siY2xyLXRhYiJdXSxjb250ZW50UXVlcmllczpmdW5jdGlvbihoLHYseSl7aWYoMSZoJiYoeG8oeSxLTCw3KSx4byh5LFhMLDcp''@;'; + put 'put ''KSwyJmgpe2xldCBDO0hpKEM9JGkoKSkmJih2LnRhYkxpbms9Qy5maXJzdCksSGkoQz0kaSgpKSYmKHYudGFiQ29udGVudD1DLmZpcnN0KX19LGZlYXR1cmVzOltobyhbeGEsc1NdKV0sbmdDb250ZW50U2VsZWN0b3JzOm5hLGRlY2xzOjEsdmFyczowLHRlbXBsYXRlOmZ1bmN0aW9uKGgsdil7''@;'; + put 'put ''MSZoJiYoSzAoKSxOaSgwKSl9LGVuY2Fwc3VsYXRpb246Mn0pLGR9KSgpLGFoZT0oKCk9PntjbGFzcyBke31yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVjbXA9VGkoe3R5cGU6ZCxzZWxlY3RvcnM6W1siY2xyLXRhYi1vdmVyZmxvdy1j''@;'; + put 'put ''b250ZW50Il1dLGhvc3RWYXJzOjIsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGgsdil7MiZoJiZGaSgiZHJvcGRvd24tbWVudSIsITApfSxuZ0NvbnRlbnRTZWxlY3RvcnM6bmEsZGVjbHM6MSx2YXJzOjAsdGVtcGxhdGU6ZnVuY3Rpb24oaCx2KXsxJmgmJihLMCgpLE5pKDApKX0sZW5jYXBzdWxh''@;'; + put 'put ''dGlvbjoyfSksZH0pKCksQVo9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYseSxDLEkpe3RoaXMuaWZBY3RpdmVTZXJ2aWNlPWgsdGhpcy50b2dnbGVTZXJ2aWNlPXYsdGhpcy50YWJzU2VydmljZT15LHRoaXMudGFic0lkPUMsdGhpcy5jb21tb25TdHJpbmdzPUksdGhpcy5zdWJzY3Jp''@;'; + put 'put ''cHRpb25zPVtdLHRoaXMuX3RhYkxpbmtEaXJlY3RpdmVzPVtdLHRoaXMudGFiTGlua0VsZW1lbnRzPVtdLHRoaXMuX21vdXNlZG93bj0hMX1nZXQgb3ZlcmZsb3dQb3NpdGlvbigpe3JldHVybiB0aGlzLl90YWJMaW5rRGlyZWN0aXZlcy5maWx0ZXIoaD0+IWguaW5PdmVyZmxvdykubGVuZ3Ro''@;'; + put 'put ''fXNldCB0YWJDb250ZW50Vmlld0NvbnRhaW5lcihoKXt0aGlzLnRhYnNTZXJ2aWNlLnRhYkNvbnRlbnRWaWV3Q29udGFpbmVyPWh9c2V0IGxheW91dChoKXtPYmplY3Qua2V5cyh3dikubWFwKHY9Pnd2W3ZdKS5pbmRleE9mKGgpPj0wJiYodGhpcy50YWJzU2VydmljZS5sYXlvdXQ9aCl9Z2V0''@;'; + put 'put ''IGxheW91dCgpe3JldHVybiB0aGlzLnRhYnNTZXJ2aWNlLmxheW91dH1nZXQgdGFiTGlua0RpcmVjdGl2ZXMoKXtyZXR1cm4gdGhpcy5fdGFiTGlua0RpcmVjdGl2ZXN9Z2V0IGFjdGl2ZVRhYkluT3ZlcmZsb3coKXtyZXR1cm4gdGhpcy50YWJzU2VydmljZS5vdmVyZmxvd1RhYnMuaW5kZXhP''@;'; + put 'put ''Zih0aGlzLnRhYnNTZXJ2aWNlLmFjdGl2ZVRhYik+LTF9Z2V0IGFjdGl2ZVRhYlBvc2l0aW9uKCl7cmV0dXJuIHRoaXMuX3RhYkxpbmtEaXJlY3RpdmVzLmZpbmRJbmRleChoPT5oLmFjdGl2ZSl9Z2V0IHRhYklkcygpe3JldHVybiB0aGlzLnRhYnNTZXJ2aWNlLmNoaWxkcmVuLm1hcChoPT5o''@;'; + put 'put ''LnRhYkxpbmsudGFiTGlua0lkKS5qb2luKCIgIil9Z2V0IGlzQ3VycmVudEluT3ZlcmZsb3coKXtyZXR1cm4gdGhpcy5rZXlGb2N1cy5jdXJyZW50Pj10aGlzLm92ZXJmbG93UG9zaXRpb259Z2V0IGlzVmVydGljYWwoKXtyZXR1cm4gdGhpcy5sYXlvdXQ9PT13di5WRVJUSUNBTH10b2dnbGVP''@;'; + put 'put ''dmVyZmxvd09uUG9zaXRpb24oaCl7dGhpcy50b2dnbGVTZXJ2aWNlLm9wZW49aD49dGhpcy5vdmVyZmxvd1Bvc2l0aW9ufXNldCB0YWJPdmVyZmxvd0VsKGgpe3RoaXMuX3RhYk92ZXJmbG93RWw9aCYmaC5uYXRpdmVFbGVtZW50LHRoaXMudG9nZ2xlU2VydmljZS5vcGVuJiZoJiZ0aGlzLmtl''@;'; + put 'put ''eUZvY3VzLmZvY3VzQ3VycmVudCgpfXJlc2V0S2V5Rm9jdXNDdXJyZW50VG9BY3RpdmUoaCl7IXRoaXMua2V5Rm9jdXMubmF0aXZlRWxlbWVudC5jb250YWlucyhoLnJlbGF0ZWRUYXJnZXQpJiZ0aGlzLmtleUZvY3VzLmN1cnJlbnQhPT10aGlzLmFjdGl2ZVRhYlBvc2l0aW9uJiYodGhpcy5r''@;'; + put 'put ''ZXlGb2N1cy5jdXJyZW50PXRoaXMuYWN0aXZlVGFiUG9zaXRpb24pfXRvZ2dsZU92ZXJmbG93T25DbGljaygpe3RoaXMua2V5Rm9jdXMubW92ZVRvKHRoaXMuaXNDdXJyZW50SW5PdmVyZmxvdyYmdGhpcy50b2dnbGVTZXJ2aWNlLm9wZW4/dGhpcy5vdmVyZmxvd1Bvc2l0aW9uLTE6dGhpcy5v''@;'; + put 'put ''dmVyZmxvd1Bvc2l0aW9uKSx0aGlzLl9tb3VzZWRvd249ITF9b3Blbk92ZXJmbG93T25Gb2N1cygpeyF0aGlzLl9tb3VzZWRvd24mJiF0aGlzLnRvZ2dsZVNlcnZpY2Uub3BlbiYmdGhpcy5rZXlGb2N1cy5tb3ZlVG8odGhpcy5hY3RpdmVUYWJQb3NpdGlvbil9Y2xvc2VPbkZvY3VzT3V0KGgp''@;'; + put 'put ''eyF0aGlzLl90YWJPdmVyZmxvd0VsLmNvbnRhaW5zKGgucmVsYXRlZFRhcmdldCkmJnRoaXMudG9nZ2xlU2VydmljZS5vcGVuJiYhdGhpcy5fbW91c2Vkb3duJiYodGhpcy50b2dnbGVTZXJ2aWNlLm9wZW49ITEsdGhpcy50YWJMaW5rRWxlbWVudHNbdGhpcy5hY3RpdmVUYWJQb3NpdGlvbl09''@;'; + put 'put ''PT1oLnJlbGF0ZWRUYXJnZXQmJih0aGlzLmtleUZvY3VzLmN1cnJlbnQ9dGhpcy5hY3RpdmVUYWJQb3NpdGlvbikpfWNsb3NlT25Fc2NhcGVLZXkoKXt0aGlzLmtleUZvY3VzLm1vdmVUbyh0aGlzLm92ZXJmbG93UG9zaXRpb24tMSl9Y2xvc2VPbk91dHNpZGVDbGljayhoLHYpe2gudGFyZ2V0''@;'; + put 'put ''PT09dnx8di5jb250YWlucyhoLnRhcmdldCl8fCF0aGlzLl90YWJPdmVyZmxvd0VsLmNvbnRhaW5zKGgudGFyZ2V0KSYmdGhpcy5pc0N1cnJlbnRJbk92ZXJmbG93JiZ0aGlzLmtleUZvY3VzLm1vdmVUbyh0aGlzLm92ZXJmbG93UG9zaXRpb24tMSl9bGlzdGVuRm9yVGFiTGlua0NoYW5nZXMo''@;'; + put 'put ''KXtyZXR1cm4gdGhpcy50YWJzLmNoYW5nZXMucGlwZShONSh0aGlzLnRhYnMubWFwKGg9PmgudGFiTGluaykpKS5zdWJzY3JpYmUoKCk9Pnt0aGlzLl90YWJMaW5rRGlyZWN0aXZlcz10aGlzLnRhYnMubWFwKGg9PmgudGFiTGluayksdGhpcy50YWJMaW5rRWxlbWVudHM9dGhpcy5fdGFiTGlu''@;'; + put 'put ''a0RpcmVjdGl2ZXMubWFwKGg9PmguZWwubmF0aXZlRWxlbWVudCl9KX1uZ0FmdGVyQ29udGVudEluaXQoKXt0aGlzLnN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLmxpc3RlbkZvclRhYkxpbmtDaGFuZ2VzKCkpLHZvaWQgMD09PXRoaXMuaWZBY3RpdmVTZXJ2aWNlLmN1cnJlbnQmJnRoaXMudGFi''@;'; + put 'put ''TGlua0RpcmVjdGl2ZXNbMF0mJnRoaXMudGFiTGlua0RpcmVjdGl2ZXNbMF0uYWN0aXZhdGUoKSx0aGlzLmtleUZvY3VzLmN1cnJlbnQ9dGhpcy5hY3RpdmVUYWJQb3NpdGlvbn1uZ09uRGVzdHJveSgpe3RoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKGg9PntoLnVuc3Vic2NyaWJlKCl9KX19''@;'; + put 'put ''cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoS3QoejIpLEt0KHpzKSxLdCh2WiksS3Qob2hlKSxLdChucykpfSxkLlx1MDI3NWNtcD1UaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJjbHItdGFicyJdXSxjb250ZW50UXVlcmllczpmdW5jdGlvbihoLHYseSl7''@;'; + put 'put ''aWYoMSZoJiZ4byh5LCRMLDQpLDImaCl7bGV0IEM7SGkoQz0kaSgpKSYmKHYudGFicz1DKX19LHZpZXdRdWVyeTpmdW5jdGlvbihoLHYpe2lmKDEmaCYmKHZvKGpqLDcsVWkpLHZvKEVwLDcpLHZvKGFoZSw1LGJvKSksMiZoKXtsZXQgeTtIaSh5PSRpKCkpJiYodi50YWJDb250ZW50Vmlld0Nv''@;'; + put 'put ''bnRhaW5lcj15LmZpcnN0KSxIaSh5PSRpKCkpJiYodi5rZXlGb2N1cz15LmZpcnN0KSxIaSh5PSRpKCkpJiYodi50YWJPdmVyZmxvd0VsPXkuZmlyc3QpfX0saG9zdFZhcnM6Mixob3N0QmluZGluZ3M6ZnVuY3Rpb24oaCx2KXsyJmgmJkZpKCJ0YWJzLXZlcnRpY2FsIix2LmlzVmVydGljYWwp''@;'; + put 'put ''fSxpbnB1dHM6e2xheW91dDpbImNsckxheW91dCIsImxheW91dCJdfSxmZWF0dXJlczpbaG8oW3oyLHpzLHZaLHlSZV0pXSxkZWNsczo1LHZhcnM6NCxjb25zdHM6W1sicm9sZSIsInRhYmxpc3QiLCJjbHJEaXJlY3Rpb24iLCJib3RoIiwxLCJuYXYiLDMsImNscktleUZvY3VzIiwiY2xyRm9j''@;'; + put 'put ''dXNDaGFuZ2UiLCJmb2N1c291dCJdLFs0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbNCwibmdJZiJdLFsidGFiQ29udGVudFZpZXdDb250YWluZXIiLCIiXSxbInJvbGUiLCJwcmVzZW50YXRpb24iLDEsIm5hdi1pdGVtIl0sWzMsIm5nVGVtcGxhdGVPdXRsZXQiXSxbInJvbGUiLCJwcmVzZW50YXRp''@;'; + put 'put ''b24iLDEsInRhYnMtb3ZlcmZsb3ciLCJib3R0b20tcmlnaHQiXSxbInJvbGUiLCJhcHBsaWNhdGlvbiIsMSwibmF2LWl0ZW0iXSxbInR5cGUiLCJidXR0b24iLCJhcmlhLWhpZGRlbiIsInRydWUiLDEsImJ0biIsImJ0bi1saW5rIiwibmF2LWxpbmsiLCJkcm9wZG93bi10b2dnbGUiLDMsIm1v''@;'; + put 'put ''dXNlZG93biIsImZvY3VzIiwiY2xpY2siXSxbInRhYk92ZXJmbG93VHJpZ2dlciIsIiJdLFsic2hhcGUiLCJlbGxpcHNpcy1ob3Jpem9udGFsIiwic3RhdHVzIiwidG9nZ2xlU2VydmljZS5vcGVuID8gJ2luZm8nIDogbnVsbCJdLFszLCJrZXlkb3duLmVzYyIsImNsaWNrIiwiZm9jdXNvdXQi''@;'; + put 'put ''LDQsIm5nSWYiXSxbMywia2V5ZG93bi5lc2MiLCJjbGljayIsImZvY3Vzb3V0Il0sWzMsIm5nVGVtcGxhdGVPdXRsZXQiLDQsIm5nSWYiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oaCx2KXsxJmgmJihydCgwLCJ1bCIsMCksR24oImNsckZvY3VzQ2hhbmdlIixmdW5jdGlvbihDKXtyZXR1cm4gdi50''@;'; + put 'put ''b2dnbGVPdmVyZmxvd09uUG9zaXRpb24oQyl9KSgiZm9jdXNvdXQiLGZ1bmN0aW9uKEMpe3JldHVybiB2LnJlc2V0S2V5Rm9jdXNDdXJyZW50VG9BY3RpdmUoQyl9KSxybigxLFpqLDIsMSwibmctY29udGFpbmVyIiwxKSxybigyLHFjZSw3LDEwLCJuZy1jb250YWluZXIiLDIpLGx0KCksZjEo''@;'; + put 'put ''MyxudWxsLDMpKSwyJmgmJihUdCgiY2xyS2V5Rm9jdXMiLHYudGFiTGlua0VsZW1lbnRzKSxHaSgiYXJpYS1vd25zIix2LnRhYklkcyksdXQoMSksVHQoIm5nRm9yT2YiLHYudGFiTGlua0RpcmVjdGl2ZXMpLHV0KDEpLFR0KCJuZ0lmIix2LnRhYnNTZXJ2aWNlLm92ZXJmbG93VGFicy5sZW5n''@;'; + put 'put ''dGg+MCkpfSxkZXBlbmRlbmNpZXM6W0VwLGFoZSxFcyxObyxYZCxab10sZW5jYXBzdWxhdGlvbjoyfSksZH0pKCksYlJlPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoKXtmcy5hZGRJY29ucyhjVil9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxk''@;'; + put 'put ''Llx1MDI3NW1vZD1jbyh7dHlwZTpkfSksZC5cdTAyNzVpbmo9YjAoe2ltcG9ydHM6W1tiYSxxYSxJcyxnUmUsY3ddLHFhXX0pLGR9KSgpLGxoZT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKCl7dGhpcy5uYXZHcm91cENvdW50PTB9cmVnaXN0ZXJOYXZHcm91cCgpe3RoaXMubmF2R3JvdXBD''@;'; + put 'put ''b3VudCsrfXVucmVnaXN0ZXJOYXZHcm91cCgpe3RoaXMubmF2R3JvdXBDb3VudC0tfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVwcm92PUFpKHt0b2tlbjpkLGZhY3Rvcnk6ZC5cdTAyNzVmYWN9KSxkfSkoKSxzaGU9KCgpPT57Y2xh''@;'; + put 'put ''c3MgZHtjb25zdHJ1Y3Rvcigpe3RoaXMuX2ljb25zPTB9Z2V0IGhhc0ljb25zKCl7cmV0dXJuIHRoaXMuX2ljb25zPjB9cmVnaXN0ZXJJY29uKCl7dGhpcy5faWNvbnMrK311bnJlZ2lzdGVySWNvbigpe3RoaXMuX2ljb25zLS19fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1''@;'; + put 'put ''cm4gbmV3KGh8fGQpfSxkLlx1MDI3NXByb3Y9QWkoe3Rva2VuOmQsZmFjdG9yeTpkLlx1MDI3NWZhY30pLGR9KSgpLHVoZT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKCl7dGhpcy5fYW5pbWF0ZU9uQ29sbGFwc2VkPW5ldyAkZSx0aGlzLl9jb2xsYXBzZWRDaGFuZ2VkPW5ldyAkZSx0aGlz''@;'; + put 'put ''Ll9jb2xsYXBzZWQ9ITEsdGhpcy5fY29sbGFwc2libGU9ITF9Z2V0IGFuaW1hdGVPbkNvbGxhcHNlZCgpe3JldHVybiB0aGlzLl9hbmltYXRlT25Db2xsYXBzZWQuYXNPYnNlcnZhYmxlKCl9Z2V0IGNvbGxhcHNlZENoYW5nZWQoKXtyZXR1cm4gdGhpcy5fY29sbGFwc2VkQ2hhbmdlZC5hc09i''@;'; + put 'put ''c2VydmFibGUoKX1nZXQgY29sbGFwc2VkKCl7cmV0dXJuIHRoaXMuX2NvbGxhcHNlZH1zZXQgY29sbGFwc2VkKGgpe2g9ISFoLHRoaXMuY29sbGFwc2libGUmJnRoaXMuX2NvbGxhcHNlZCE9PWgmJnRoaXMudXBkYXRlQ29sbGFwc2VCZWhhdmlvcihoKX1nZXQgY29sbGFwc2libGUoKXtyZXR1''@;'; + put 'put ''cm4gdGhpcy5fY29sbGFwc2libGV9c2V0IGNvbGxhcHNpYmxlKGgpe3RoaXMuX2NvbGxhcHNpYmxlIT09KGg9ISFoKSYmKCFoJiZ0aGlzLmNvbGxhcHNlZCYmdGhpcy51cGRhdGVDb2xsYXBzZUJlaGF2aW9yKCExKSx0aGlzLl9jb2xsYXBzaWJsZT1oKX11cGRhdGVDb2xsYXBzZUJlaGF2aW9y''@;'; + put 'put ''KGgpe3RoaXMuX2FuaW1hdGVPbkNvbGxhcHNlZC5uZXh0KGgpLHRoaXMuX2NvbGxhcHNlZD1oLHRoaXMuX2NvbGxhcHNlZENoYW5nZWQubmV4dChoKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0''@;'; + put 'put ''b3J5OmQuXHUwMjc1ZmFjfSksZH0pKCksT3llPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2LHksQyl7dGhpcy5fbmF2U2VydmljZT1oLHRoaXMuX25hdkljb25TZXJ2aWNlPXYsdGhpcy5fbmF2R3JvdXBSZWdpc3RyYXRpb25TZXJ2aWNlPXksdGhpcy5jb21tb25TdHJpbmdzPUMsdGhp''@;'; + put 'put ''cy5fY29sbGFwc2VkQ2hhbmdlZD1uZXcgYXIoITApLHRoaXMuX3N1Yj10aGlzLl9uYXZTZXJ2aWNlLmNvbGxhcHNlZENoYW5nZWQuc3Vic2NyaWJlKEk9Pnt0aGlzLl9jb2xsYXBzZWRDaGFuZ2VkLmVtaXQoSSl9KX1nZXQgY29sbGFwc2libGUoKXtyZXR1cm4gdGhpcy5fbmF2U2VydmljZS5j''@;'; + put 'put ''b2xsYXBzaWJsZX1zZXQgY29sbGFwc2libGUoaCl7dGhpcy5fbmF2U2VydmljZS5jb2xsYXBzaWJsZT1ofWdldCBjb2xsYXBzZWQoKXtyZXR1cm4gdGhpcy5fbmF2U2VydmljZS5jb2xsYXBzZWR9c2V0IGNvbGxhcHNlZChoKXt0aGlzLl9uYXZTZXJ2aWNlLmNvbGxhcHNlZD1ofWdldCBoYXNO''@;'; + put 'put ''YXZHcm91cHMoKXtyZXR1cm4gdGhpcy5fbmF2R3JvdXBSZWdpc3RyYXRpb25TZXJ2aWNlLm5hdkdyb3VwQ291bnQ+MH1nZXQgaGFzSWNvbnMoKXtyZXR1cm4gdGhpcy5fbmF2SWNvblNlcnZpY2UuaGFzSWNvbnN9Z2V0IGFyaWFFeHBhbmRlZCgpe3JldHVybiB0aGlzLmNvbGxhcHNpYmxlP3Ro''@;'; + put 'put ''aXMuY29sbGFwc2VkPyJmYWxzZSI6InRydWUiOm51bGx9dG9nZ2xlQnlCdXR0b24oKXt0aGlzLmNvbGxhcHNlZD0hdGhpcy5jb2xsYXBzZWR9bmdPbkRlc3Ryb3koKXt0aGlzLl9zdWIudW5zdWJzY3JpYmUoKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8''@;'; + put 'put ''ZCkoS3QodWhlKSxLdChzaGUpLEt0KGxoZSksS3QobnMpKX0sZC5cdTAyNzVjbXA9VGkoe3R5cGU6ZCxzZWxlY3RvcnM6W1siY2xyLXZlcnRpY2FsLW5hdiJdXSxob3N0QXR0cnM6WzEsImNsci12ZXJ0aWNhbC1uYXYiXSxob3N0VmFyczo2LGhvc3RCaW5kaW5nczpmdW5jdGlvbihoLHYpezIm''@;'; + put 'put ''aCYmRmkoImlzLWNvbGxhcHNlZCIsdi5jb2xsYXBzZWQpKCJoYXMtbmF2LWdyb3VwcyIsdi5oYXNOYXZHcm91cHMpKCJoYXMtaWNvbnMiLHYuaGFzSWNvbnMpfSxpbnB1dHM6e2NvbGxhcHNpYmxlOlsiY2xyVmVydGljYWxOYXZDb2xsYXBzaWJsZSIsImNvbGxhcHNpYmxlIl0sY29sbGFwc2Vk''@;'; + put 'put ''OlsiY2xyVmVydGljYWxOYXZDb2xsYXBzZWQiLCJjb2xsYXBzZWQiXX0sb3V0cHV0czp7X2NvbGxhcHNlZENoYW5nZWQ6ImNsclZlcnRpY2FsTmF2Q29sbGFwc2VkQ2hhbmdlIn0sZmVhdHVyZXM6W2hvKFt1aGUsc2hlLGxoZV0pXSxuZ0NvbnRlbnRTZWxlY3RvcnM6bmEsZGVjbHM6NCx2YXJz''@;'; + put 'put ''OjIsY29uc3RzOltbInR5cGUiLCJidXR0b24iLCJjbGFzcyIsIm5hdi10cmlnZ2VyIiwzLCJvbi1jb2xsYXBzZSIsImNsaWNrIiw0LCJuZ0lmIl0sWzEsIm5hdi1jb250ZW50Il0sWyJjbGFzcyIsIm5hdi1idG4iLCJhcmlhLWhpZGRlbiIsInRydWUiLCJ0YWJpbmRleCIsIi0xIiwzLCJjbGlj''@;'; + put 'put ''ayIsNCwibmdJZiJdLFsidHlwZSIsImJ1dHRvbiIsMSwibmF2LXRyaWdnZXIiLDMsImNsaWNrIl0sWyJzaGFwZSIsImFuZ2xlLWRvdWJsZSIsMSwibmF2LXRyaWdnZXItaWNvbiJdLFsiYXJpYS1oaWRkZW4iLCJ0cnVlIiwidGFiaW5kZXgiLCItMSIsMSwibmF2LWJ0biIsMywiY2xpY2siXV0s''@;'; + put 'put ''dGVtcGxhdGU6ZnVuY3Rpb24oaCx2KXsxJmgmJihLMCgpLHJuKDAsZWZlLDIsNiwiYnV0dG9uIiwwKSxydCgxLCJkaXYiLDEpLE5pKDIpLHJuKDMsViQsMSwxLCJidXR0b24iLDIpLGx0KCkpLDImaCYmKFR0KCJuZ0lmIix2LmNvbGxhcHNpYmxlKSx1dCgzKSxUdCgibmdJZiIsdi5jb2xsYXBz''@;'; + put 'put ''aWJsZSYmdi5jb2xsYXBzZWQpKX0sZGVwZW5kZW5jaWVzOltObyxab10sZW5jYXBzdWxhdGlvbjoyfSksZH0pKCksY2hlPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoKXt0aGlzLl9leHBhbmRDaGFuZ2U9bmV3ICRlfWdldCBleHBhbmRDaGFuZ2UoKXtyZXR1cm4gdGhpcy5fZXhwYW5kQ2hh''@;'; + put 'put ''bmdlLmFzT2JzZXJ2YWJsZSgpfWV4cGFuZCgpe3RoaXMuX2V4cGFuZENoYW5nZS5uZXh0KCEwKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1ZmFjfSksZH0pKCksUnllPSgo''@;'; + put 'put ''KT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2LHkpe3RoaXMuZGVzdHJveSQ9bmV3ICRlLHkmJnQ4KGgubmF0aXZlRWxlbWVudCwiY2xpY2siKS5waXBlKGo3KHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKCk9Pnt5LmV4cGFuZCgpLHYubWFya0ZvckNoZWNrKCl9KX1uZ09uRGVzdHJveSgp''@;'; + put 'put ''e3RoaXMuZGVzdHJveSQubmV4dCgpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShLdChibyksS3QoZDEpLEt0KGNoZSw4KSl9LGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQsc2VsZWN0b3JzOltbIiIsImNsclZlcnRpY2FsTmF2TGluayIsIiJdXSxob3N0''@;'; + put 'put ''QXR0cnM6WzEsIm5hdi1saW5rIl0sYXR0cnM6cmZlLG5nQ29udGVudFNlbGVjdG9yczpvZmUsZGVjbHM6Myx2YXJzOjAsY29uc3RzOltbMSwibmF2LXRleHQiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oaCx2KXsxJmgmJihLMChpZmUpLE5pKDApLHJ0KDEsInNwYW4iLDApLE5pKDIsMSksbHQoKSl9''@;'; + put 'put ''LGVuY2Fwc3VsYXRpb246Mn0pLGR9KSgpLFNSZT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKCl7ZnMuYWRkSWNvbnMoSXksZ1gpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVtb2Q9Y28oe3R5cGU6ZH0pLGQuXHUwMjc1aW5qPWIw''@;'; + put 'put ''KHtpbXBvcnRzOltbYmEsSXMscWEsZlNdLHFhLElzLGZTXX0pLGR9KSgpLE1SZT0oKCk9PntjbGFzcyBke31yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVtb2Q9Y28oe3R5cGU6ZH0pLGQuXHUwMjc1aW5qPWIwKHtpbXBvcnRzOltpUmUs''@;'; + put 'put ''cFJlLGJSZSxTUmVdfSksZH0pKCksQnllPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCl7dGhpcy5fZG9jdW1lbnQ9aH1zdG9wU2Nyb2xsaW5nKCl7dGhpcy5fZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuYWRkKCJuby1zY3JvbGxpbmciKX1yZXN1bWVTY3JvbGxpbmcoKXt0aGlzLl9kb2N1''@;'; + put 'put ''bWVudC5ib2R5LmNsYXNzTGlzdC5jb250YWlucygibm8tc2Nyb2xsaW5nIikmJnRoaXMuX2RvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnJlbW92ZSgibm8tc2Nyb2xsaW5nIil9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKENpKHBzKSl9LGQuXHUwMjc1''@;'; + put 'put ''cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1ZmFjfSksZH0pKCksb2Q9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYseSl7dGhpcy5fc2Nyb2xsaW5nU2VydmljZT1oLHRoaXMuY29tbW9uU3RyaW5ncz12LHRoaXMubW9kYWxJZD15LHRoaXMuX29wZW49ITEsdGhpcy5fb3Bl''@;'; + put 'put ''bkNoYW5nZWQ9bmV3IGFyKCExKSx0aGlzLmNsb3NhYmxlPSEwLHRoaXMuc3RhdGljQmFja2Ryb3A9ITAsdGhpcy5za2lwQW5pbWF0aW9uPSJmYWxzZSIsdGhpcy5ieXBhc3NTY3JvbGxTZXJ2aWNlPSExLHRoaXMuc3RvcENsb3NlPSExLHRoaXMuYWx0Q2xvc2U9bmV3IGFyKCExKSx0aGlzLmxh''@;'; + put 'put ''YmVsbGVkQnk9dGhpcy5tb2RhbElkfW5nT25DaGFuZ2VzKGgpeyF0aGlzLmJ5cGFzc1Njcm9sbFNlcnZpY2UmJmgmJk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChoLCJfb3BlbiIpJiYoaC5fb3Blbi5jdXJyZW50VmFsdWU/dGhpcy5fc2Nyb2xsaW5nU2VydmljZS5zdG9w''@;'; + put 'put ''U2Nyb2xsaW5nKCk6dGhpcy5fc2Nyb2xsaW5nU2VydmljZS5yZXN1bWVTY3JvbGxpbmcoKSl9bmdPbkRlc3Ryb3koKXt0aGlzLl9zY3JvbGxpbmdTZXJ2aWNlLnJlc3VtZVNjcm9sbGluZygpfW9wZW4oKXt0aGlzLl9vcGVufHwodGhpcy5fb3Blbj0hMCx0aGlzLl9vcGVuQ2hhbmdlZC5lbWl0''@;'; + put 'put ''KCEwKSl9Y2xvc2UoKXt0aGlzLnN0b3BDbG9zZT90aGlzLmFsdENsb3NlLmVtaXQoITEpOiF0aGlzLmNsb3NhYmxlfHwhdGhpcy5fb3Blbnx8KHRoaXMuX29wZW49ITEsdGhpcy5mb2N1c1RyYXAuc2V0UHJldmlvdXNGb2N1cygpKX1mYWRlRG9uZShoKXsidm9pZCI9PT1oLnRvU3RhdGUmJnRo''@;'; + put 'put ''aXMuX29wZW5DaGFuZ2VkLmVtaXQoITEpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShLdChCeWUpLEt0KG5zKSxLdCh5MikpfSxkLlx1MDI3NWNtcD1UaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJjbHItbW9kYWwiXV0sdmlld1F1ZXJ5OmZ1bmN0aW9u''@;'; + put 'put ''KGgsdil7aWYoMSZoJiZ2byhmdyw1KSwyJmgpe2xldCB5O0hpKHk9JGkoKSkmJih2LmZvY3VzVHJhcD15LmZpcnN0KX19LGhvc3RWYXJzOjIsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGgsdil7MSZoJiZHbigia2V5dXAuZXNjYXBlIixmdW5jdGlvbigpe3JldHVybiB2LmNsb3NlKCl9LDAsY0Ip''@;'; + put 'put ''LDImaCYmRmkoIm9wZW4iLHYuX29wZW4pfSxpbnB1dHM6e19vcGVuOlsiY2xyTW9kYWxPcGVuIiwiX29wZW4iXSxjbG9zYWJsZTpbImNsck1vZGFsQ2xvc2FibGUiLCJjbG9zYWJsZSJdLHNpemU6WyJjbHJNb2RhbFNpemUiLCJzaXplIl0sc3RhdGljQmFja2Ryb3A6WyJjbHJNb2RhbFN0YXRp''@;'; + put 'put ''Y0JhY2tkcm9wIiwic3RhdGljQmFja2Ryb3AiXSxza2lwQW5pbWF0aW9uOlsiY2xyTW9kYWxTa2lwQW5pbWF0aW9uIiwic2tpcEFuaW1hdGlvbiJdLGJ5cGFzc1Njcm9sbFNlcnZpY2U6WyJjbHJNb2RhbE92ZXJyaWRlU2Nyb2xsU2VydmljZSIsImJ5cGFzc1Njcm9sbFNlcnZpY2UiXSxzdG9w''@;'; + put 'put ''Q2xvc2U6WyJjbHJNb2RhbFByZXZlbnRDbG9zZSIsInN0b3BDbG9zZSJdLGxhYmVsbGVkQnk6WyJjbHJNb2RhbExhYmVsbGVkQnlJZCIsImxhYmVsbGVkQnkiXX0sb3V0cHV0czp7X29wZW5DaGFuZ2VkOiJjbHJNb2RhbE9wZW5DaGFuZ2UiLGFsdENsb3NlOiJjbHJNb2RhbEFsdGVybmF0ZUNs''@;'; + put 'put ''b3NlIn0sZmVhdHVyZXM6W2hvKFtPY10sW0J5ZV0pLEQyXSxuZ0NvbnRlbnRTZWxlY3RvcnM6c2ZlLGRlY2xzOjEsdmFyczoxLGNvbnN0czpbWyJjbHJGb2N1c1RyYXAiLCIiLCJjbGFzcyIsIm1vZGFsIiw0LCJuZ0lmIl0sWyJjbHJGb2N1c1RyYXAiLCIiLDEsIm1vZGFsIl0sWyJyb2xlIiwi''@;'; + put 'put ''ZGlhbG9nIiwiYXJpYS1tb2RhbCIsInRydWUiLDEsIm1vZGFsLWRpYWxvZyJdLFsxLCJjbHItc3Itb25seSJdLFsxLCJtb2RhbC1jb250ZW50LXdyYXBwZXIiXSxbMSwibW9kYWwtY29udGVudCJdLFsxLCJtb2RhbC1oZWFkZXItLWFjY2Vzc2libGUiXSxbImNsckZvY3VzT25WaWV3SW5pdCIs''@;'; + put 'put ''IiIsMSwibW9kYWwtdGl0bGUtd3JhcHBlciIsMywiaWQiXSxbInR5cGUiLCJidXR0b24iLCJjbGFzcyIsImNsb3NlIiwzLCJjbGljayIsNCwibmdJZiJdLFsxLCJtb2RhbC1ib2R5LXdyYXBwZXIiXSxbImFyaWEtaGlkZGVuIiwidHJ1ZSIsMSwibW9kYWwtYmFja2Ryb3AiLDMsImNsaWNrIl0s''@;'; + put 'put ''WyJ0eXBlIiwiYnV0dG9uIiwxLCJjbG9zZSIsMywiY2xpY2siXSxbInNoYXBlIiwid2luZG93LWNsb3NlIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGgsdil7MSZoJiYoSzAobGZlKSxybigwLGFmZSwxNywxNCwiZGl2IiwwKSksMiZoJiZUdCgibmdJZiIsdi5fb3Blbil9LGRlcGVuZGVuY2llczpb''@;'; + put 'put ''Tm8sZncsUmZlLFpvXSxzdHlsZXM6WyJbX25naG9zdC0lQ09NUCVde2Rpc3BsYXk6bm9uZX0ub3Blbltfbmdob3N0LSVDT01QJV17ZGlzcGxheTppbmxpbmV9Il0sZGF0YTp7YW5pbWF0aW9uOlskaCgiZmFkZURvd24iLFtidSgiKiA9PiBmYWxzZSIsW3lsKHtvcGFjaXR5OjAsdHJhbnNmb3Jt''@;'; + put 'put ''OiJ0cmFuc2xhdGUoMCwgLTI1JSkifSksRGMoIjAuMnMgZWFzZS1pbi1vdXQiKV0pLGJ1KCJmYWxzZSA9PiAqIixbRGMoIjAuMnMgZWFzZS1pbi1vdXQiLHlsKHtvcGFjaXR5OjAsdHJhbnNmb3JtOiJ0cmFuc2xhdGUoMCwgLTI1JSkifSkpXSldKSwkaCgiZmFkZSIsW2J1KCJ2b2lkID0+ICoi''@;'; + put 'put ''LFt5bCh7b3BhY2l0eTowfSksRGMoIjAuMnMgZWFzZS1pbi1vdXQiLHlsKHtvcGFjaXR5Oi44NX0pKV0pLGJ1KCIqID0+IHZvaWQiLFtEYygiMC4ycyBlYXNlLWluLW91dCIseWwoe29wYWNpdHk6MH0pKV0pXSldfX0pLGR9KSgpLGFkPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2LHkp''@;'; + put 'put ''e3RoaXMucmVuZGVyZXI9aCx0aGlzLmhvc3Q9dix0aGlzLnRhYmluZGV4PSIwIix0aGlzLnVubGlzdGVuZXJzPVtdLHkucnVuT3V0c2lkZUFuZ3VsYXIoKCk9Pnt0aGlzLm9ic2VydmVyPW5ldyBSZXNpemVPYnNlcnZlcigoKT0+dGhpcy5hZGRPclJlbW92ZVRhYkluZGV4KCkpLHRoaXMub2Jz''@;'; + put 'put ''ZXJ2ZXIub2JzZXJ2ZSh0aGlzLmhvc3QubmF0aXZlRWxlbWVudCksdGhpcy51bmxpc3RlbmVycy5wdXNoKHRoaXMucmVuZGVyZXIubGlzdGVuKHRoaXMuaG9zdC5uYXRpdmVFbGVtZW50LCJtb3VzZXVwIiwoKT0+e3RoaXMuYWRkT3JSZW1vdmVUYWJJbmRleCgpfSksdGhpcy5yZW5kZXJlci5s''@;'; + put 'put ''aXN0ZW4odGhpcy5ob3N0Lm5hdGl2ZUVsZW1lbnQsIm1vdXNlZG93biIsKCk9Pnt0aGlzLnJlbW92ZVRhYkluZGV4KCl9KSl9KX1uZ09uRGVzdHJveSgpe2Zvcig7dGhpcy51bmxpc3RlbmVycy5sZW5ndGg7KXRoaXMudW5saXN0ZW5lcnMucG9wKCkoKTt0aGlzLm9ic2VydmVyLmRpc2Nvbm5l''@;'; + put 'put ''Y3QoKSx0aGlzLm9ic2VydmVyPW51bGx9YWRkVGFiSW5kZXgoKXt0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZSh0aGlzLmhvc3QubmF0aXZlRWxlbWVudCwidGFiaW5kZXgiLHRoaXMudGFiaW5kZXgpfXJlbW92ZVRhYkluZGV4KCl7dGhpcy5yZW5kZXJlci5yZW1vdmVBdHRyaWJ1dGUodGhp''@;'; + put 'put ''cy5ob3N0Lm5hdGl2ZUVsZW1lbnQsInRhYmluZGV4Iil9YWRkT3JSZW1vdmVUYWJJbmRleCgpe2NvbnN0IGg9dGhpcy5ob3N0Lm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudDtoLmNsaWVudEhlaWdodDxoLnNjcm9sbEhlaWdodD90aGlzLmFkZFRhYkluZGV4KCk6dGhpcy5yZW1vdmVUYWJJ''@;'; + put 'put ''bmRleCgpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShLdChHYSksS3QoYm8pLEt0KF9sKSl9LGQuXHUwMjc1ZGlyPVdpKHt0eXBlOmQsc2VsZWN0b3JzOltbIiIsOCwibW9kYWwtYm9keSJdXX0pLGR9KSgpLFB5ZT0oKCk9PntjbGFzcyBke2NvbnN0''@;'; + put 'put ''cnVjdG9yKCl7ZnMuYWRkSWNvbnMoU2spfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVtb2Q9Y28oe3R5cGU6ZH0pLGQuXHUwMjc1aW5qPWIwKHtpbXBvcnRzOltbYmEsSXMsc3EsZlNdLElzLGZTXX0pLGR9KSgpO2NvbnN0IEVSZT17''@;'; + put 'put ''InRvcC1sZWZ0Ijp7YW5jaG9yUG9pbnQ6ZzAuVE9QX0NFTlRFUixwb3BvdmVyUG9pbnQ6ZzAuQk9UVE9NX1JJR0hULG9mZnNldFk6LTEwLG9mZnNldFg6MH0sInRvcC1taWRkbGUiOnthbmNob3JQb2ludDpnMC5UT1BfQ0VOVEVSLHBvcG92ZXJQb2ludDpnMC5CT1RUT01fQ0VOVEVSLG9mZnNl''@;'; + put 'put ''dFk6LTEwLG9mZnNldFg6MH0sInRvcC1yaWdodCI6e2FuY2hvclBvaW50OmcwLlRPUF9DRU5URVIscG9wb3ZlclBvaW50OmcwLkJPVFRPTV9MRUZULG9mZnNldFk6LTEwLG9mZnNldFg6MH0sInJpZ2h0LXRvcCI6e2FuY2hvclBvaW50OmcwLlJJR0hUX0NFTlRFUixwb3BvdmVyUG9pbnQ6ZzAu''@;'; + put 'put ''TEVGVF9CT1RUT00sb2Zmc2V0WToyLG9mZnNldFg6MTR9LCJyaWdodC1taWRkbGUiOnthbmNob3JQb2ludDpnMC5SSUdIVF9DRU5URVIscG9wb3ZlclBvaW50OmcwLkxFRlRfQ0VOVEVSLG9mZnNldFk6NixvZmZzZXRYOjE0fSwicmlnaHQtYm90dG9tIjp7YW5jaG9yUG9pbnQ6ZzAuUklHSFRf''@;'; + put 'put ''Q0VOVEVSLHBvcG92ZXJQb2ludDpnMC5MRUZUX1RPUCxvZmZzZXRZOi0xLG9mZnNldFg6MTR9LCJib3R0b20tcmlnaHQiOnthbmNob3JQb2ludDpnMC5CT1RUT01fQ0VOVEVSLHBvcG92ZXJQb2ludDpnMC5UT1BfTEVGVCxvZmZzZXRZOjksb2Zmc2V0WDotMX0sImJvdHRvbS1taWRkbGUiOnth''@;'; + put 'put ''bmNob3JQb2ludDpnMC5CT1RUT01fQ0VOVEVSLHBvcG92ZXJQb2ludDpnMC5UT1BfQ0VOVEVSLG9mZnNldFk6OSxvZmZzZXRYOjEyfSwiYm90dG9tLWxlZnQiOnthbmNob3JQb2ludDpnMC5CT1RUT01fQ0VOVEVSLHBvcG92ZXJQb2ludDpnMC5UT1BfUklHSFQsb2Zmc2V0WTo5LG9mZnNldFg6''@;'; + put 'put ''MH0sImxlZnQtYm90dG9tIjp7YW5jaG9yUG9pbnQ6ZzAuTEVGVF9DRU5URVIscG9wb3ZlclBvaW50OmcwLlJJR0hUX1RPUCxvZmZzZXRZOjAsb2Zmc2V0WDotMTR9LCJsZWZ0LW1pZGRsZSI6e2FuY2hvclBvaW50OmcwLkxFRlRfQ0VOVEVSLHBvcG92ZXJQb2ludDpnMC5SSUdIVF9DRU5URVIs''@;'; + put 'put ''b2Zmc2V0WTo0LG9mZnNldFg6LTE0fSwibGVmdC10b3AiOnthbmNob3JQb2ludDpnMC5MRUZUX0NFTlRFUixwb3BvdmVyUG9pbnQ6ZzAuUklHSFRfQk9UVE9NLG9mZnNldFk6MCxvZmZzZXRYOi0xNH0sZGVmYXVsdDp7YW5jaG9yUG9pbnQ6ZzAuUklHSFRfQ0VOVEVSLHBvcG92ZXJQb2ludDpn''@;'; + put 'put ''MC5MRUZUX0NFTlRFUixvZmZzZXRZOjYsb2Zmc2V0WDoxNH19LHhSZT1bInRvcC1sZWZ0IiwidG9wLW1pZGRsZSIsInRvcC1yaWdodCIsInJpZ2h0LXRvcCIsInJpZ2h0LW1pZGRsZSIsInJpZ2h0LWJvdHRvbSIsImJvdHRvbS1yaWdodCIsImJvdHRvbS1taWRkbGUiLCJib3R0b20tbGVmdCIs''@;'; + put 'put ''ImxlZnQtYm90dG9tIiwibGVmdC1taWRkbGUiLCJsZWZ0LXRvcCJdO2xldCBGeWU9KCgpPT57Y2xhc3MgZCBleHRlbmRzIG5oZXtjb25zdHJ1Y3RvcihoLHYseSxDLEksaix1ZSxfZSl7aWYoc3VwZXIoaCx2KSx0aGlzLmNvbW1vblN0cmluZ3M9eSx0aGlzLnNpZ25wb3N0Q29udGVudElkPUMs''@;'; + put 'put ''dGhpcy5zaWducG9zdElkU2VydmljZT1JLHRoaXMuc2lnbnBvc3RGb2N1c01hbmFnZXI9aix0aGlzLnBsYXRmb3JtSWQ9dWUsIXYpdGhyb3cgbmV3IEVycm9yKCJjbHItc2lnbnBvc3QtY29udGVudCBzaG91bGQgb25seSBiZSB1c2VkIGluc2lkZSBvZiBhIGNsci1zaWducG9zdCIpO3RoaXMu''@;'; + put 'put ''cG9zaXRpb249InJpZ2h0LW1pZGRsZSIsdGhpcy5jbG9zZU9uT3V0c2lkZUNsaWNrPSEwLHRoaXMuc2lnbnBvc3RJZFNlcnZpY2Uuc2V0SWQoQyksdGhpcy5kb2N1bWVudD1fZX1jbG9zZSgpe3RoaXMudG9nZ2xlU2VydmljZS5vcGVuPSExfWdldCBwb3NpdGlvbigpe3JldHVybiB0aGlzLl9w''@;'; + put 'put ''b3NpdGlvbn1zZXQgcG9zaXRpb24oaCl7dGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsdGhpcy5wb3NpdGlvbiksdGhpcy5fcG9zaXRpb249aCYmeFJlLmluZGV4T2YoaCk+LTE/aDoicmlnaHQtbWlkZGxlIix0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRo''@;'; + put 'put ''aXMuZWwubmF0aXZlRWxlbWVudCx0aGlzLnBvc2l0aW9uKTtjb25zdCB2PUVSZVt0aGlzLnBvc2l0aW9uXTt0aGlzLmFuY2hvclBvaW50PXYuYW5jaG9yUG9pbnQsdGhpcy5wb3BvdmVyUG9pbnQ9di5wb3BvdmVyUG9pbnQsdGhpcy5wb3BvdmVyT3B0aW9ucy5vZmZzZXRZPXYub2Zmc2V0WSx0''@;'; + put 'put ''aGlzLnBvcG92ZXJPcHRpb25zLm9mZnNldFg9di5vZmZzZXRYfW5nT25EZXN0cm95KCl7c3VwZXIubmdPbkRlc3Ryb3koKSxTbCh0aGlzLnBsYXRmb3JtSWQpJiZ0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuY29udGFpbnModGhpcy5kb2N1bWVudC5hY3RpdmVFbGVtZW50KSYmdGhpcy5zaWducG9z''@;'; + put 'put ''dEZvY3VzTWFuYWdlci5mb2N1c1RyaWdnZXIoKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoS3Qoa3MpLEt0KHRmLDgpLEt0KG5zKSxLdCh5MiksS3QoemZlKSxLdChaZmUpLEt0KEwyKSxLdChwcykpfSxkLlx1MDI3NWNtcD1UaSh7dHlwZTpkLHNl''@;'; + put 'put ''bGVjdG9yczpbWyJjbHItc2lnbnBvc3QtY29udGVudCJdXSxob3N0VmFyczozLGhvc3RCaW5kaW5nczpmdW5jdGlvbihoLHYpezImaCYmKFAzKCJpZCIsdi5zaWducG9zdENvbnRlbnRJZCksRmkoInNpZ25wb3N0LWNvbnRlbnQiLCEwKSl9LGlucHV0czp7cG9zaXRpb246WyJjbHJQb3NpdGlv''@;'; + put 'put ''biIsInBvc2l0aW9uIl19LGZlYXR1cmVzOltobyhbT2NdKSxEb10sbmdDb250ZW50U2VsZWN0b3JzOm5hLGRlY2xzOjcsdmFyczozLGNvbnN0czpbWzEsInNpZ25wb3N0LXdyYXAiXSxbMSwicG9wb3Zlci1wb2ludGVyIl0sWzEsInNpZ25wb3N0LWNvbnRlbnQtaGVhZGVyIl0sWyJ0eXBlIiwi''@;'; + put 'put ''YnV0dG9uIiwxLCJzaWducG9zdC1hY3Rpb24iLCJjbG9zZSIsMywiY2xpY2siXSxbInNoYXBlIiwid2luZG93LWNsb3NlIl0sWzEsInNpZ25wb3N0LWNvbnRlbnQtYm9keSJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihoLHYpezEmaCYmKEswKCkscnQoMCwiZGl2IiwwKSxDcigxLCJkaXYiLDEpLHJ0''@;'; + put 'put ''KDIsImRpdiIsMikoMywiYnV0dG9uIiwzKSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHYuY2xvc2UoKX0pLENyKDQsImNkcy1pY29uIiw0KSxsdCgpKCkscnQoNSwiZGl2Iiw1KSxOaSg2KSxsdCgpKCkpLDImaCYmKHV0KDMpLEdpKCJhcmlhLWxhYmVsIix2LmNvbW1vblN0cmluZ3Mu''@;'; + put 'put ''a2V5cy5zaWducG9zdENsb3NlKSgiYXJpYS1jb250cm9scyIsdi5zaWducG9zdENvbnRlbnRJZCksdXQoMSksR2koInRpdGxlIix2LmNvbW1vblN0cmluZ3Mua2V5cy5jbG9zZSkpfSxkZXBlbmRlbmNpZXM6W1pvXSxlbmNhcHN1bGF0aW9uOjJ9KSxkfSkoKSxUUmU9KCgpPT57Y2xhc3MgZHtj''@;'; + put 'put ''b25zdHJ1Y3Rvcigpe2ZzLmFkZEljb25zKFNrLG1YKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1bW9kPWNvKHt0eXBlOmR9KSxkLlx1MDI3NWluaj1iMCh7aW1wb3J0czpbW2JhLElzLGZTXSxxYV19KSxkfSkoKSxSUmU9KCgpPT57''@;'; + put 'put ''Y2xhc3MgZHt9cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1bW9kPWNvKHt0eXBlOmR9KSxkLlx1MDI3NWluaj1iMCh7aW1wb3J0czpbW2JhXSxxYSxJc119KSxkfSkoKSxCUmU9KCgpPT57Y2xhc3MgZHt9cmV0dXJuIGQuXHUwMjc1ZmFj''@;'; + put 'put ''PWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1bW9kPWNvKHt0eXBlOmR9KSxkLlx1MDI3NWluaj1iMCh7aW1wb3J0czpbcmhlLFRSZSxSUmVdfSksZH0pKCksUFJlPSgoKT0+e2NsYXNzIGR7fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8''@;'; + put 'put ''fGQpfSxkLlx1MDI3NW1vZD1jbyh7dHlwZTpkfSksZC5cdTAyNzVpbmo9YjAoe2ltcG9ydHM6W1tiYV1dfSksZH0pKCksSFJlPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoKXtmcy5hZGRJY29ucyhac2UsenNlLHZYLFdzZSl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1''@;'; + put 'put ''cm4gbmV3KGh8fGQpfSxkLlx1MDI3NW1vZD1jbyh7dHlwZTpkfSksZC5cdTAyNzVpbmo9YjAoe2ltcG9ydHM6W1tiYSxJcyxEbF0sSXMsRGxdfSksZH0pKCkselJlPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoKXtmcy5hZGRJY29ucyh2WCl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlv''@;'; + put 'put ''bihoKXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1MDI3NW1vZD1jbyh7dHlwZTpkfSksZC5cdTAyNzVpbmo9YjAoe2ltcG9ydHM6W1tiYSxQeWUsRXllXV19KSxkfSkoKSx0Tz0oKCk9PntjbGFzcyBke31yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5c''@;'; + put 'put ''dTAyNzVtb2Q9Y28oe3R5cGU6ZH0pLGQuXHUwMjc1aW5qPWIwKHtpbXBvcnRzOltyUmUsUU9lLElzLFB5ZSxCZmUscWEsc3EsZlMsSU9lLE0sVUFlLE1SZSxCUmUselJlLGV5ZSxEcyxEbCxQUmUsUmMsSFJlXX0pLGR9KSgpO2Z1bmN0aW9uIEdSZShkLGcpezEmZCYmKHJ0KDAsInNwYW4iLDEw''@;'; + put 'put ''KSxZdCgxLCJsb2FkaW5nIiksbHQoKSl9ZnVuY3Rpb24gV1JlKGQsZyl7MSZkJiYocnQoMCwic3BhbiIsMTEpLFl0KDEsImxvYWRlZCIpLGx0KCkpfWZ1bmN0aW9uIFlSZShkLGcpezEmZCYmKHJ0KDAsInNwYW4iLDEyKSxZdCgxLCJmYWlsZWQiKSxsdCgpKX1mdW5jdGlvbiBVUmUoZCxnKXtp''@;'; + put 'put ''ZigxJmQmJihydCgwLCJwIikoMSwiY29kZSIpLFl0KDIpLGx0KCksWXQoMywiIFx4YTAgIikscm4oNCxHUmUsMiwwLCJzcGFuIiw3KSxybig1LFdSZSwyLDAsInNwYW4iLDgpLHJuKDYsWVJlLDIsMCwic3BhbiIsOSksbHQoKSksMiZkKXtjb25zdCBoPWcuJGltcGxpY2l0O3V0KDIpLGppKGgu''@;'; + put 'put ''cHJvZ3JhbSksdXQoMiksVHQoIm5nSWYiLGgucnVubmluZyksdXQoMSksVHQoIm5nSWYiLCFoLnJ1bm5pbmcmJmguc3VjY2Vzc2Z1bCksdXQoMSksVHQoIm5nSWYiLCFoLnJ1bm5pbmcmJiFoLnN1Y2Nlc3NmdWwpfX1mdW5jdGlvbiBRUmUoZCxnKXtpZigxJmQmJihydCgwLCJjbHItc2lnbnBv''@;'; + put 'put ''c3QtY29udGVudCIsNSkscm4oMSxVUmUsNyw0LCJwIiw2KSxsdCgpKSwyJmQpe2NvbnN0IGg9SnQoKTtUdCgiY2xyUG9zaXRpb24iLCJib3R0b20tbWlkZGxlIiksdXQoMSksVHQoIm5nRm9yT2YiLGgucmVxdWVzdHMpfX1sZXQgSlJlPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoKXt0aGlz''@;'; + put 'put ''LmxvYWRpbmc9ITEsdGhpcy5yZXF1ZXN0cz1bXSx0aGlzLl9sb2FkaW5nU3ViPW5ldyBUZX1uZ09uSW5pdCgpe31uZ09uRGVzdHJveSgpe3RoaXMuX2xvYWRpbmdTdWIudW5zdWJzY3JpYmUoKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUw''@;'; + put 'put ''Mjc1Y21wPVRpKHt0eXBlOmQsc2VsZWN0b3JzOltbImFwcC1sb2FkaW5nLWluZGljYXRvciJdXSxkZWNsczo2LHZhcnM6Nixjb25zdHM6W1sxLCJsb2FkaW5nLWluZGljYXRvciJdLFsiY2xyU2lnbnBvc3RUcmlnZ2VyIiwiIiwxLCJzcGlubmVyIiwic3Bpbm5lci1zbSIsInNwaW5uZXItaW52''@;'; + put 'put ''ZXJzZSJdLFsiY2xyU2lnbnBvc3RUcmlnZ2VyIiwiIiwic2hhcGUiLCJjaGVjayIsInNpemUiLCIyMCIsMSwiaXMtaW5mbyJdLFsiY2xyU2lnbnBvc3RUcmlnZ2VyIiwiIiwic2hhcGUiLCJlcnJvciIsInNpemUiLCIyNCIsMSwiaXMtZXJyb3IiXSxbMywiY2xyUG9zaXRpb24iLDQsImNscklm''@;'; + put 'put ''T3BlbiJdLFszLCJjbHJQb3NpdGlvbiJdLFs0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbImNsYXNzIiwicnVubmluZyIsNCwibmdJZiJdLFsiY2xhc3MiLCJzdWNjZXNzIiw0LCJuZ0lmIl0sWyJjbGFzcyIsImZhaWwiLDQsIm5nSWYiXSxbMSwicnVubmluZyJdLFsxLCJzdWNjZXNzIl0sWzEsImZh''@;'; + put 'put ''aWwiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oaCx2KXsxJmgmJihydCgwLCJkaXYiLDApKDEsImNsci1zaWducG9zdCIpLENyKDIsInNwYW4iLDEpKDMsImNsci1pY29uIiwyKSg0LCJjbHItaWNvbiIsMykscm4oNSxRUmUsMiwyLCJjbHItc2lnbnBvc3QtY29udGVudCIsNCksbHQoKSgpKSwyJmgm''@;'; + put 'put ''Jih1dCgyKSxSMygiZGlzcGxheSIsdi5sb2FkaW5nPyJpbmxpbmUtYmxvY2siOiJub25lIiksdXQoMSksUjMoImRpc3BsYXkiLCF2LmxvYWRpbmcmJnYucmVxdWVzdHMubGVuZ3RoPjAmJnYucmVxdWVzdHNbMF0uc3VjY2Vzc2Z1bD8iaW5saW5lLWJsb2NrIjoibm9uZSIpLHV0KDEpLFIzKCJk''@;'; + put 'put ''aXNwbGF5Iiwhdi5sb2FkaW5nJiZ2LnJlcXVlc3RzLmxlbmd0aD4wJiYhdi5yZXF1ZXN0c1swXS5zdWNjZXNzZnVsPyJpbmxpbmUtYmxvY2siOiJub25lIikpfSxkZXBlbmRlbmNpZXM6W0VzLE5vLHdsLFphLEdmZSxGeWUseXFdLHN0eWxlczpbIi5sb2FkaW5nLWluZGljYXRvcltfbmdjb250''@;'; + put 'put ''ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6Mi41cmVtO2hlaWdodDoyLjVyZW07ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcn0ubG9hZGluZy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVdICAgLnNwaW5uZXJbX25nY29udGVudC0lQ09NUCVde3ZlcnRpY2FsLWFsaWduOm1pZGRs''@;'; + put 'put ''ZX0ubG9hZGluZy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVdICAgY2xyLXNpZ25wb3N0LWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjI0cHg7Y29sb3I6IzU2NTY1NjtjdXJzb3I6YXV0b30ubG9hZGluZy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVdICAg''@;'; + put 'put ''Y2xyLXNpZ25wb3N0LWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDoxMHB4O2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2Vlbn0ubG9hZGluZy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVdICAgY2xy''@;'; + put 'put ''LXNpZ25wb3N0LWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV06Zmlyc3QtY2hpbGR7bWFyZ2luLXRvcDowfS5sb2FkaW5nLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV0gICBjbHItc2lnbnBvc3QtY29udGVudFtfbmdjb250ZW50LSVDT01QJV0g''@;'; + put 'put ''ICBwW19uZ2NvbnRlbnQtJUNPTVAlXTpsYXN0LWNoaWxke21hcmdpbi1ib3R0b206MH0ubG9hZGluZy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVdICAgY2xyLXNpZ25wb3N0LWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0gICBzcGFuW19uZ2Nv''@;'; + put 'put ''bnRlbnQtJUNPTVAlXXttYXJnaW4tbGVmdDoxMHB4fS5sb2FkaW5nLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV0gICBjbHItc2lnbnBvc3QtY29udGVudFtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHNwYW4ucnVubmluZ1tfbmdjb250ZW50LSVDT01Q''@;'; + put 'put ''JV17Y29sb3I6I2U5YmYwNH0ubG9hZGluZy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVdICAgY2xyLXNpZ25wb3N0LWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0gICBzcGFuLnN1Y2Nlc3NbX25nY29udGVudC0lQ09NUCVde2NvbG9yOiM2MGI1''@;'; + put 'put ''MTV9LmxvYWRpbmctaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGNsci1zaWducG9zdC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdICAgc3Bhbi5mYWlsW19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjojYzkyMTAwfSJdfSksZH0pKCksWFJl''@;'; + put 'put ''PSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2KXt0aGlzLnNhc1NlcnZpY2U9aCx0aGlzLmxvZ2dlclNlcnZpY2U9dix0aGlzLl9zdWJzY3JpcHRpb249bmV3IFRlLHRoaXMubG9hZGluZz0hMSx0aGlzLmFsZXJ0Q2xvc2VkPSEwLHRoaXMuZGF0YT17dXNlcjpudWxsLHBhc3M6bnVsbH19''@;'; + put 'put ''bmdPbkluaXQoKXsiUmVkaXJlY3RlZCIhPT10aGlzLnNhc1NlcnZpY2UuZ2V0U2FzanNDb25maWcoKS5sb2dpbk1lY2hhbmlzbSYmKHRoaXMuX3N1YnNjcmlwdGlvbj10aGlzLnNhc1NlcnZpY2Uuc2hvdWxkTG9naW4uc3Vic2NyaWJlKHY9Pnt0aGlzLmlzQWN0aXZlPXY7bGV0IHk9ZG9jdW1l''@;'; + put 'put ''bnQucXVlcnlTZWxlY3RvcigiYm9keSIpOyF5fHwodj95LmNsYXNzTGlzdC5hZGQoInNob3VsZC1sb2dpbiIpOnkuY2xhc3NMaXN0LnJlbW92ZSgic2hvdWxkLWxvZ2luIikpfSkpfW5nT25EZXN0cm95KCl7dGhpcy5fc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCl9c3VibWl0KCl7dGhpcy5s''@;'; + put 'put ''b2FkaW5nfHwodGhpcy5sb2FkaW5nPSEwLHRoaXMuZGF0YS51c2VyJiZ0aGlzLmRhdGEucGFzcyYmdGhpcy5zYXNTZXJ2aWNlLmxvZ2luKHRoaXMuZGF0YS51c2VyLHRoaXMuZGF0YS5wYXNzKS50aGVuKGg9Pnt0aGlzLmxvYWRpbmc9ITEsaHx8KHRoaXMuZXJyb3JNc2c9IlVzZXJuYW1lIG9y''@;'; + put 'put ''IHBhc3N3b3JkIGludmFsaWQiLHRoaXMuYWxlcnRDbG9zZWQ9ITEpfSxoPT57dGhpcy5sb2dnZXJTZXJ2aWNlLmxvZyhoKSx0aGlzLmxvYWRpbmc9ITEsdGhpcy5lcnJvck1zZz1oLHRoaXMuYWxlcnRDbG9zZWQ9ITF9KSl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4g''@;'; + put 'put ''bmV3KGh8fGQpKEt0KGcyKSxLdChzYykpfSxkLlx1MDI3NWNtcD1UaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJhcHAtbG9naW4iXV0sZGVjbHM6MjAsdmFyczo5LGNvbnN0czpbWzEsImxvZ2luLXNpZGViYXItd3JhcHBlciJdLFsxLCJsb2dpbi1zaWRlYmFyIiwic2lkZUJhclByb3BzIl0sWyJz''@;'; + put 'put ''cmMiLCIvU0FTU3RvcmVkUHJvY2Vzcy8/X1BST0dSQU09cFpLZDZGOTVqRUN2UlFsTjBMQ2ZkQT09L3dlYjkvaW1hZ2VzL2RhdGFjb250cm9sbGVyLXN2ZyIsImFsdCIsIiIsMSwibG9naW4tbG9nbyJdLFsxLCJsb2dpbiIsMywibmdTdWJtaXQiXSxbMSwidGl0bGUiXSxbMSwid2VsY29tZSJd''@;'; + put 'put ''LFsxLCJoaW50Il0sWzEsImxvZ2luLWdyb3VwIl0sWyJjbHJJbnB1dCIsIiIsIm5hbWUiLCJ1c2VyIiwidHlwZSIsInRleHQiLCJwbGFjZWhvbGRlciIsIlVzZXJuYW1lIiwxLCJ1c2VybmFtZSIsMywibmdNb2RlbCIsIm5nTW9kZWxDaGFuZ2UiXSxbImNscklucHV0IiwiIiwibmFtZSIsInBh''@;'; + put 'put ''c3MiLCJ0eXBlIiwicGFzc3dvcmQiLCJwbGFjZWhvbGRlciIsIlBhc3N3b3JkIiwxLCJwYXNzd29yZCIsMywibmdNb2RlbCIsIm5nTW9kZWxDaGFuZ2UiXSxbMywiY2xyQWxlcnRUeXBlIiwiY2xyQWxlcnRDbG9zZWQiLCJjbHJBbGVydENsb3NlZENoYW5nZSJdLFsiY2xyLWFsZXJ0LWl0ZW0i''@;'; + put 'put ''LCIiLDEsImFsZXJ0LWl0ZW0iXSxbMSwiYWxlcnQtdGV4dCJdLFsidHlwZSIsInN1Ym1pdCIsMSwiYnRuIiwiYnRuLXNtIiwiYnRuLXN1Y2Nlc3MiLDMsImNsckxvYWRpbmciLCJkaXNhYmxlZCJdLFsxLCJvdmVybGF5Il1dLHRlbXBsYXRlOmZ1bmN0aW9uKGgsdil7MSZoJiYocnQoMCwiZGl2''@;'; + put 'put ''IiwwKSgxLCJkaXYiLDEpLENyKDIsImltZyIsMikscnQoMywiZm9ybSIsMyksR24oIm5nU3VibWl0IixmdW5jdGlvbigpe3JldHVybiB2LnN1Ym1pdCgpfSkscnQoNCwibGFiZWwiLDQpKDUsImgzIiw1KSxZdCg2LCJXZWxjb21lIHRvIiksbHQoKSxZdCg3LCIgRGF0YSBDb250cm9sbGVyICIp''@;'; + put 'put ''LHJ0KDgsImg1Iiw2KSxZdCg5LCJDYXB0dXJlLCBSZXZpZXcsIGFuZCBBcHByb3ZlIiksbHQoKSgpLHJ0KDEwLCJkaXYiLDcpKDExLCJpbnB1dCIsOCksR24oIm5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9uKEMpe3JldHVybiB2LmRhdGEudXNlcj1DfSksbHQoKSxydCgxMiwiaW5wdXQiLDkpLEdu''@;'; + put 'put ''KCJuZ01vZGVsQ2hhbmdlIixmdW5jdGlvbihDKXtyZXR1cm4gdi5kYXRhLnBhc3M9Q30pLGx0KCkscnQoMTMsImNsci1hbGVydCIsMTApLEduKCJjbHJBbGVydENsb3NlZENoYW5nZSIsZnVuY3Rpb24oQyl7cmV0dXJuIHYuYWxlcnRDbG9zZWQ9Q30pLHJ0KDE0LCJkaXYiLDExKSgxNSwic3Bh''@;'; + put 'put ''biIsMTIpLFl0KDE2KSxsdCgpKCkoKSxydCgxNywiYnV0dG9uIiwxMyksWXQoMTgsIiBMb2cgaW4gIiksbHQoKSgpKCkoKSxDcigxOSwiZGl2IiwxNCksbHQoKSksMiZoJiYoRmkoImFjdGl2ZSIsdi5pc0FjdGl2ZSksdXQoMTEpLFR0KCJuZ01vZGVsIix2LmRhdGEudXNlciksdXQoMSksVHQo''@;'; + put 'put ''Im5nTW9kZWwiLHYuZGF0YS5wYXNzKSx1dCgxKSxUdCgiY2xyQWxlcnRUeXBlIiwiYWxlcnQtZGFuZ2VyIikoImNsckFsZXJ0Q2xvc2VkIix2LmFsZXJ0Q2xvc2VkKSx1dCgzKSxqaSh2LmVycm9yTXNnKSx1dCgxKSxUdCgiY2xyTG9hZGluZyIsdi5sb2FkaW5nKSgiZGlzYWJsZWQiLHYubG9h''@;'; + put 'put ''ZGluZykpfSxkZXBlbmRlbmNpZXM6W3BnLG0xLHhzLGRnLFRzLExjLHBaLGdaLGdvLHcsb3QscHZdLHN0eWxlczpbIi5zaWRlQmFyUHJvcHNbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQ6IzMxNDM1MSFpbXBvcnRhbnQ7Y29sb3I6I2UwZTBlMH0uc2lkZUJhclByb3BzW19uZ2NvbnRl''@;'; + put 'put ''bnQtJUNPTVAlXSAgIGgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLnNpZGVCYXJQcm9wc1tfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV0sIC5zaWRlQmFyUHJvcHNbX25nY29udGVudC0lQ09NUCVdICAgaDRbX25nY29udGVudC0lQ09NUCVdLCAuc2lkZUJhclByb3Bz''@;'; + put 'put ''W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLnNpZGVCYXJQcm9wc1tfbmdjb250ZW50LSVDT01QJV0gICBpbnB1dFtfbmdjb250ZW50LSVDT01QJV17Y29sb3I6I2UwZTBlMH0uc2lkZUJhclByb3BzW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGJ1dHRvbltfbmdj''@;'; + put 'put ''b250ZW50LSVDT01QJV17Ym9yZGVyLWNvbG9yOndoZWF0IWltcG9ydGFudH0uc2lkZUJhclByb3BzW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGFbX25nY29udGVudC0lQ09NUCVde2NvbG9yOiNlMGUwZTB9LmxvZ2luLXNpZGViYXItd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17d2lkdGg6MTAw''@;'; + put 'put ''JTtoZWlnaHQ6MTAwJTtwb3NpdGlvbjpmaXhlZDt0b3A6MDtsZWZ0OjA7cG9pbnRlci1ldmVudHM6bm9uZTt6LWluZGV4OjEwMDAwfS5sb2dpbi1zaWRlYmFyLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdID4gKltfbmdjb250ZW50LSVDT01QJV17cG9pbnRlci1ldmVudHM6YXV0b30ubG9n''@;'; + put 'put ''aW4tc2lkZWJhci13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5sb2dpbi1zaWRlYmFyW19uZ2NvbnRlbnQtJUNPTVAlXXt3aWR0aDo0MDBweDtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtsZWZ0OjA7YmFja2dyb3VuZDojZmZmO2JvcmRlci1yaWdodDoxcHggc29saWQg''@;'; + put 'put ''I2RkZDtwYWRkaW5nOjQwcHg7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNDAwcHgpO3RyYW5zaXRpb246dHJhbnNmb3JtIC4zcyBlYXNlfS5sb2dpbi1zaWRlYmFyLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLmxvZ2luLXNpZGViYXJbX25nY29udGVudC0lQ09NUCVdICAgZm9ybS5sb2dp''@;'; + put 'put ''bltfbmdjb250ZW50LSVDT01QJV17ei1pbmRleDoxMDE7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfS5sb2dpbi1zaWRlYmFyLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLmxvZ2luLXNpZGViYXJbX25nY29udGVudC0lQ09N''@;'; + put 'put ''UCVdICAgZm9ybS5sb2dpbltfbmdjb250ZW50LSVDT01QJV0gICAudGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTozMnB4O2xldHRlci1zcGFjaW5nOm5vcm1hbDtsaW5lLWhlaWdodDozNnB4fS5sb2dpbi1zaWRlYmFyLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLmxv''@;'; + put 'put ''Z2luLXNpZGViYXJbX25nY29udGVudC0lQ09NUCVdICAgZm9ybS5sb2dpbltfbmdjb250ZW50LSVDT01QJV0gICAudGl0bGVbX25nY29udGVudC0lQ09NUCVdICAgLndlbGNvbWVbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6MzZweH0ubG9naW4tc2lkZWJhci13cmFwcGVyW19uZ2Nv''@;'; + put 'put ''bnRlbnQtJUNPTVAlXSAgIC5sb2dpbi1zaWRlYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGZvcm0ubG9naW5bX25nY29udGVudC0lQ09NUCVdICAgLmxvZ2luLWdyb3VwW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO3BhZGRpbmc6NDhweCAw''@;'; + put 'put ''IDB9LmxvZ2luLXNpZGViYXItd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubG9naW4tc2lkZWJhcltfbmdjb250ZW50LSVDT01QJV0gICBmb3JtLmxvZ2luW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5sb2dpbi1ncm91cFtfbmdjb250ZW50LSVDT01QJV0gPiAqW19uZ2NvbnRlbnQtJUNP''@;'; + put 'put ''TVAlXXttYXJnaW46NnB4IDAgMThweH0ubG9naW4tc2lkZWJhci13cmFwcGVyLmFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV0gICAubG9naW4tc2lkZWJhcltfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZSgwKTt6LWluZGV4OjEwMX0ubG9naW4tc2lkZWJhci13cmFwcGVy''@;'; + put 'put ''LmFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV0gICAub3ZlcmxheVtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpibG9ja30ubG9naW4tc2lkZWJhci13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5vdmVybGF5W19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5Om5vbmU7cG9zaXRpb246''@;'; + put 'put ''Zml4ZWQ7dG9wOjA7bGVmdDowO2hlaWdodDoxMDAlO3dpZHRoOjEwMCU7YmFja2dyb3VuZDpyZ2JhKDMzLDMzLDMzLC41KTt6LWluZGV4OjEwMH0gIC5sb2dpbi1zaWRlYmFyLXdyYXBwZXIgLmxvZ2luLWdyb3VwIC5jbHItY29udHJvbC1jb250YWluZXIsICAgLmxvZ2luLXNpZGViYXItd3Jh''@;'; + put 'put ''cHBlciAubG9naW4tZ3JvdXAgLnVzZXJuYW1lLCAgIC5sb2dpbi1zaWRlYmFyLXdyYXBwZXIgLmxvZ2luLWdyb3VwIC5wYXNzd29yZHt3aWR0aDoxMDAlfSAgLmxvZ2luLXNpZGViYXItd3JhcHBlciAubG9naW4tZ3JvdXAgLmNsci1pbnB1dC13cmFwcGVye21heC13aWR0aDpub25lfSAgLmxv''@;'; + put 'put ''Z2luLXNpZGViYXItd3JhcHBlciAubG9naW4tZ3JvdXAgYnV0dG9ue21heC13aWR0aDpub25lfS5sb2dpbi1sb2dvW19uZ2NvbnRlbnQtJUNPTVAlXXttYXgtd2lkdGg6MjAwcHh9Il19KSxkfSkoKTtmdW5jdGlvbiBLUmUoZCxnKXtpZigxJmQmJihydCgwLCJzcGFuIiksQ3IoMSwiaW1nIiwx''@;'; + put 'put ''OCksbHQoKSksMiZkKXtjb25zdCBoPUp0KCk7dXQoMSksSTYoInNyYyIsaC5nZXRQaWN0dXJlVXJsKCkseDkpfX1mdW5jdGlvbiAkUmUoZCxnKXtpZigxJmQmJihydCgwLCJzcGFuIiwxOSksWXQoMSksbHQoKSksMiZkKXtjb25zdCBoPUp0KCk7RmkoImhpZGRlbiIsMD09PWguZmFpbGVkUmVx''@;'; + put 'put ''cy5sZW5ndGgpLHV0KDEpLGppKGguZmFpbGVkUmVxcy5sZW5ndGgpfX1mdW5jdGlvbiBxUmUoZCxnKXtpZigxJmQmJihydCgwLCJzcGFuIiwyMCksWXQoMSksbHQoKSksMiZkKXtjb25zdCBoPUp0KCk7RmkoImhpZGRlbiIsMD09PWguZGVidWdMb2dzLmxlbmd0aCksdXQoMSksamkoaC5kZWJ1''@;'; + put 'put ''Z0xvZ3MubGVuZ3RoKX19ZnVuY3Rpb24gZUJlKGQsZyl7MSZkJiZDcigwLCJjbHItaWNvbiIsMjEpfWZ1bmN0aW9uIHRCZShkLGcpezEmZCYmKEYwKDApLHJ0KDEsImEiLDMwKSgyLCJzcGFuIiwzMSksWXQoMywiRG9jdW1lbnRhdGlvbiIpLGx0KCkoKSxIMCgpKX1mdW5jdGlvbiBuQmUoZCxn''@;'; + put 'put ''KXtpZigxJmQpe2NvbnN0IGg9YmkoKTtydCgwLCJjbHItZHJvcGRvd24tbWVudSIpKDEsImRpdiIsMjIsMjMpKDMsImNsci10b2dnbGUtY29udGFpbmVyIiwyNCksR24oImNsaWNrIixmdW5jdGlvbih5KXtpdChoKTtjb25zdCBDPXlhKDIpO3JldHVybiBhKEp0KCkub25EZWJ1Z1Jvd0NsaWNr''@;'; + put 'put ''KHksQykpfSkscnQoNCwiY2xyLXRvZ2dsZS13cmFwcGVyIikoNSwiaW5wdXQiLDI1KSxHbigibmdNb2RlbENoYW5nZSIsZnVuY3Rpb24oeSl7cmV0dXJuIGl0KGgpLGEoSnQoKS5zYXNqc0NvbmZpZy5kZWJ1Zz15KX0pKCJuZ01vZGVsQ2hhbmdlIixmdW5jdGlvbigpe3JldHVybiBpdChoKSxh''@;'; + put 'put ''KEp0KCkub25EZWJ1Z01vZGVDaGFuZ2UoKSl9KSxsdCgpLHJ0KDYsImxhYmVsIiksWXQoNywiRGVidWcgTW9kZSIpLGx0KCkoKSgpKCkscnQoOCwiYSIsMjYpLEduKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gaXQoaCksYShKdCgpLm9wZW5SZXF1ZXN0c01vZGFsKCkpfSkscnQoOSwic3Bh''@;'; + put 'put ''biIpLFl0KDEwLCJTQVMgUmVxdWVzdHMiKSxsdCgpKCkscm4oMTEsdEJlLDQsMCwibmctY29udGFpbmVyIiwyKSxDcigxMiwiZGl2IiwxNSkscnQoMTMsImEiLDI3KSxHbigiY2xpY2siLGZ1bmN0aW9uKHkpe3JldHVybiBpdChoKSxhKEp0KCkubG9nb3V0KHkpKX0pLHJ0KDE0LCJzcGFuIiks''@;'; + put 'put ''WXQoMTUsIkxvZyBPdXQiKSxsdCgpLENyKDE2LCJjbHItaWNvbiIsMjgpLGx0KCkscnQoMTcsImRpdiIsMjkpKDE4LCJzcGFuIiksWXQoMTkpLGx0KCkoKSgpfWlmKDImZCl7Y29uc3QgaD1KdCgpO3V0KDUpLFR0KCJuZ01vZGVsIixoLnNhc2pzQ29uZmlnLmRlYnVnKSx1dCg2KSxUdCgibmdJ''@;'; + put 'put ''ZiIsIWguaXNEZXBsb3lQYWdlKSx1dCg4KSxKaSgidiIsaC5jb21taXRWZXIsIiIpfX1jb25zdCByQmU9ZnVuY3Rpb24oKXtyZXR1cm57c3RhbmRhbG9uZTohMH19O2xldCBpQmU9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYseSxDKXt0aGlzLnVzZXJTZXJ2aWNlPWgsdGhpcy5zYXNT''@;'; + put 'put ''ZXJ2aWNlPXYsdGhpcy5ldmVudFNlcnZpY2U9eSx0aGlzLnJvdXRlcj1DLHRoaXMudXNlck5hbWU9Ik5vdCBsb2dnZWQgaW4iLHRoaXMucmVxU3ViPW5ldyBUZSx0aGlzLnVzZXJTdWI9bmV3IFRlLHRoaXMuYXBwTG9ncz1bXSx0aGlzLmRlYnVnTG9ncz1bXSx0aGlzLmZhaWxlZFJlcXM9W10s''@;'; + put 'put ''dGhpcy5zYXNFcnJvcnM9W10sdGhpcy5pc1ZpeWE9ITEsdGhpcy5zYXNqc0NvbmZpZz1uZXcgUTMuU0FTanNDb25maWcsdGhpcy5yZXF1ZXN0c0NvdW50PTAsdGhpcy5jb21taXRWZXI9IiJ9bmdPbkluaXQoKXt0aGlzLnVzZXJTdWI9dGhpcy51c2VyU2VydmljZS51c2VyQ2hhbmdlLnN1YnNj''@;'; + put 'put ''cmliZShoPT57dGhpcy51c2VyTmFtZT1oLnVzZXJuYW1lfSksdGhpcy5zYXNqc0NvbmZpZz10aGlzLnNhc1NlcnZpY2UuZ2V0U2FzanNDb25maWcoKSwiU0FTVklZQSI9PT10aGlzLnNhc2pzQ29uZmlnLnNlcnZlclR5cGUmJih0aGlzLmlzVml5YT0hMCksdGhpcy5jb21taXRWZXI9InY1LjAu''@;'; + put 'put ''MCIucmVwbGFjZSgidiIsIiIpKyIuZ2Q0MDgzNWI5In1uZ09uRGVzdHJveSgpe3RoaXMucmVxU3ViLnVuc3Vic2NyaWJlKCksdGhpcy51c2VyU3ViLnVuc3Vic2NyaWJlKCl9b3BlblJlcXVlc3RzTW9kYWwoKXt0aGlzLmV2ZW50U2VydmljZS5vcGVuUmVxdWVzdHNNb2RhbCgpfW9uRGVidWdN''@;'; + put 'put ''b2RlQ2hhbmdlKGgpe3RoaXMuc2FzanNDb25maWcmJnRoaXMuc2FzU2VydmljZS5zZXREZWJ1Z1N0YXRlKHRoaXMuc2FzanNDb25maWcuZGVidWcpfW9uRGVidWdSb3dDbGljayhoLHYpe2guc3RvcFByb3BhZ2F0aW9uKCksc2V0VGltZW91dCgoKT0+e3YuY2xpY2soKX0sMzAwKX1sb2dvdXQo''@;'; + put 'put ''aCl7aC5wcmV2ZW50RGVmYXVsdCgpO3RyeXt0aGlzLnNhc1NlcnZpY2UubG9nb3V0KCl9Y2F0Y2godil7Y29uc29sZS5lcnJvcih2KX19Z2V0UGljdHVyZVVybCgpe3JldHVybiIvaWRlbnRpdGllcy91c2Vycy8iK3RoaXMudXNlck5hbWUrIi9hdmF0YXIvY29udGVudCJ9Z2V0IGlzRGVwbG95''@;'; + put 'put ''UGFnZSgpe3JldHVybiB0aGlzLnJvdXRlci51cmwuaW5jbHVkZXMoImRlcGxveSIpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShLdChMSCksS3QoZzIpLEt0KG11KSxLdChabCkpfSxkLlx1MDI3NWNtcD1UaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJh''@;'; + put 'put ''cHAtdXNlci1uYXYtZHJvcGRvd24iXV0sZGVjbHM6MjgsdmFyczoxMCxjb25zdHM6W1siY2xyTWVudVBvc2l0aW9uIiwiYm90dG9tLXJpZ2h0IiwxLCJhcHAtbmF2LWRyb3Bkb3duIiwiZC1ub25lIiwiZC1tZC1ibG9jayJdLFsiY2xyRHJvcGRvd25Ub2dnbGUiLCIiLDEsIm5hdi10ZXh0Iiwi''@;'; + put 'put ''Y29sb3Itd2hpdGUiXSxbNCwibmdJZiJdLFsiY2xhc3MiLCJiYWRnZSBiYWRnZS1kYW5nZXIiLDMsImhpZGRlbiIsNCwibmdJZiJdLFsiY2xhc3MiLCJiYWRnZSBiYWRnZS1pbmZvIiwzLCJoaWRkZW4iLDQsIm5nSWYiXSxbInNoYXBlIiwiY2FyZXQgZG93biIsNCwibmdJZiJdLFs0LCJjbHJJ''@;'; + put 'put ''Zk9wZW4iXSxbMSwiY29udGVudC1jb250YWluZXIiLCJoLWF1dG8iXSxbMSwic2lkZW5hdiIsImQtYmxvY2siLCJkLW1kLW5vbmUiLDMsImNsci1uYXYtbGV2ZWwiXSxbMSwic2lkZW5hdi1jb250ZW50Il0sWyJocmVmIiwiLi4uIiwxLCJuYXYtbGluayIsImFjdGl2ZSJdLFsxLCJ0b2dnbGUt''@;'; + put 'put ''c3dpdGNoIl0sWyJpZCIsImRlYnVnLXRvZ2dsZTIiLCJ0eXBlIiwiY2hlY2tib3giLDMsIm5nTW9kZWwiLCJuZ01vZGVsT3B0aW9ucyIsIm5nTW9kZWxDaGFuZ2UiXSxbImZvciIsImRlYnVnLXRvZ2dsZTIiLDEsImRlYnVnLXRvZ2dsZS1sYWJlbCIsImNvbG9yLWRhcmstZ3JheSJdLFsidGFy''@;'; + put 'put ''Z2V0IiwiX2JsYW5rIiwiaHJlZiIsImh0dHBzOi8vZG9jcy5kYXRhY29udHJvbGxlci5pbyIsMSwibmF2LWxpbmsiLCJkLWJsb2NrIl0sWzEsInNlcGFyYXRvciJdLFsiaHJlZiIsIi4uLiIsMSwibmF2LWxpbmsiLCJkLWJsb2NrIiwzLCJjbGljayJdLFsic2hhcGUiLCJsb2dvdXQiXSxbImFs''@;'; + put 'put ''dCIsIiIsMSwiYXZhdGFyLWltZyIsMywic3JjIl0sWzEsImJhZGdlIiwiYmFkZ2UtZGFuZ2VyIl0sWzEsImJhZGdlIiwiYmFkZ2UtaW5mbyJdLFsic2hhcGUiLCJjYXJldCBkb3duIl0sWyJjbHJEcm9wZG93bkl0ZW0iLCIiLDEsImRlYnVnLXN3aXRjaC1pdGVtIl0sWyJkcm9wZG93bkl0ZW1E''@;'; + put 'put ''ZWJ1ZyIsIiJdLFsxLCJ0b2dnbGUtc3dpdGNoIiwzLCJjbGljayJdLFsiaWQiLCJkZWJ1Zy10b2dnbGUxIiwidHlwZSIsImNoZWNrYm94IiwiY2xyVG9nZ2xlIiwiIiwzLCJuZ01vZGVsIiwibmdNb2RlbENoYW5nZSJdLFsiY2xyRHJvcGRvd25JdGVtIiwiIiwzLCJjbGljayJdLFsiaHJlZiIs''@;'; + put 'put ''Ii4uLiIsImNsckRyb3Bkb3duSXRlbSIsIiIsMywiY2xpY2siXSxbInNoYXBlIiwibG9nb3V0IiwxLCJjbHItbG9nb3V0Il0sWzEsImNvcHlSaWdodCJdLFsidGFyZ2V0IiwiX2JsYW5rIiwiaHJlZiIsImh0dHBzOi8vZG9jcy5kYXRhY29udHJvbGxlci5pbyIsImNsckRyb3Bkb3duSXRlbSIs''@;'; + put 'put ''IiJdLFsxLCJkcm9wZG93bi10ZXh0Il1dLHRlbXBsYXRlOmZ1bmN0aW9uKGgsdil7MSZoJiYocnQoMCwiY2xyLWRyb3Bkb3duIiwwKSgxLCJidXR0b24iLDEpKDIsInNwYW4iKSxZdCgzKSxsdCgpLHJuKDQsS1JlLDIsMSwic3BhbiIsMikscm4oNSwkUmUsMiwzLCJzcGFuIiwzKSxybig2LHFS''@;'; + put 'put ''ZSwyLDMsInNwYW4iLDQpLHJuKDcsZUJlLDEsMCwiY2xyLWljb24iLDUpLGx0KCkscm4oOCxuQmUsMjAsMywiY2xyLWRyb3Bkb3duLW1lbnUiLDYpLGx0KCkscnQoOSwiZGl2Iiw3KSgxMCwibmF2Iiw4KSgxMSwic2VjdGlvbiIsOSkoMTIsImEiLDEwKSxZdCgxMyksbHQoKSxydCgxNCwiZGl2''@;'; + put 'put ''IikoMTUsImZvcm0iKSgxNiwiZGl2IiwxMSkoMTcsImlucHV0IiwxMiksR24oIm5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9uKEMpe3JldHVybiB2LnNhc2pzQ29uZmlnLmRlYnVnPUN9KSgibmdNb2RlbENoYW5nZSIsZnVuY3Rpb24oKXtyZXR1cm4gdi5vbkRlYnVnTW9kZUNoYW5nZSgpfSksbHQo''@;'; + put 'put ''KSxydCgxOCwibGFiZWwiLDEzKSxZdCgxOSwiRGVidWcgTW9kZSIpLGx0KCkoKSgpKCkscnQoMjAsImEiLDE0KSgyMSwic3BhbiIpLFl0KDIyLCJEb2N1bWVudGF0aW9uIiksbHQoKSgpLENyKDIzLCJkaXYiLDE1KSxydCgyNCwiYSIsMTYpLEduKCJjbGljayIsZnVuY3Rpb24oQyl7cmV0dXJu''@;'; + put 'put ''IHYubG9nb3V0KEMpfSkscnQoMjUsInNwYW4iKSxZdCgyNiwiTG9nIE91dCIpLGx0KCksQ3IoMjcsImNsci1pY29uIiwxNyksbHQoKSgpKCkoKSksMiZoJiYodXQoMyksamkodi51c2VyTmFtZSksdXQoMSksVHQoIm5nSWYiLCJOb3QgbG9nZ2VkIGluIiE9PXYudXNlck5hbWUmJnYuaXNWaXlh''@;'; + put 'put ''KSx1dCgxKSxUdCgibmdJZiIsIXYuc2FzanNDb25maWcuZGVidWcpLHV0KDEpLFR0KCJuZ0lmIix2LnNhc2pzQ29uZmlnLmRlYnVnKSx1dCgxKSxUdCgibmdJZiIsIXYuaXNWaXlhKSx1dCgzKSxUdCgiY2xyLW5hdi1sZXZlbCIsMiksdXQoMyksSmkoIiAiLHYudXNlck5hbWUsIiAiKSx1dCg0''@;'; + put 'put ''KSxUdCgibmdNb2RlbCIsdi5zYXNqc0NvbmZpZy5kZWJ1ZykoIm5nTW9kZWxPcHRpb25zIixWcyg5LHJCZSkpKX0sZGVwZW5kZW5jaWVzOltObyxwZyxJZix4cyxkZyxUcyxMYyx3bCxaYSxvdCxSbyxsbyxPaSxEeWUsdncsVUwsUUwsZFpdLHN0eWxlczpbJy5jb3B5UmlnaHRbX25nY29udGVu''@;'; + put 'put ''dC0lQ09NUCVde21hcmdpbi10b3A6MTBweH0uY29weVJpZ2h0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHNwYW5bX25nY29udGVudC0lQ09NUCVde3dvcmQtYnJlYWs6YnJlYWstd29yZDt3aGl0ZS1zcGFjZTpwcmUtd3JhcDt3aWR0aDoxMDAlO3RleHQtYWxpZ246Y2VudGVyO2xpbmUtaGVpZ2h0''@;'; + put 'put ''OjEuNX0uYXBwLW5hdi1kcm9wZG93bltfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXJpZ2h0OjI0cHg7bGluZS1oZWlnaHQ6M3JlbTtoZWlnaHQ6M3JlbX0uYXBwLW5hdi1kcm9wZG93bltfbmdjb250ZW50LSVDT01QJV0gPiBidXR0b24uZHJvcGRvd24tdG9nZ2xlW19uZ2NvbnRlbnQtJUNP''@;'; + put 'put ''TVAlXXtjb2xvcjojZmFmYWZhO21pbi13aWR0aDoyMDBweDtwb3NpdGlvbjpyZWxhdGl2ZX0uYXBwLW5hdi1kcm9wZG93bltfbmdjb250ZW50LSVDT01QJV0gPiBidXR0b24uZHJvcGRvd24tdG9nZ2xlW19uZ2NvbnRlbnQtJUNPTVAlXTphZnRlcntjb250ZW50OiIiO2JhY2tncm91bmQtY29s''@;'; + put 'put ''b3I6I2ZhZmFmYTtvcGFjaXR5Oi4xNTtsZWZ0OjA7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MXB4O2hlaWdodDo0MHB4O3RvcDoxMHB4fS5hcHAtbmF2LWRyb3Bkb3duW19uZ2NvbnRlbnQtJUNPTVAlXSA+IGJ1dHRvbi5kcm9wZG93bi10b2dnbGVbX25nY29udGVudC0lQ09NUCVdICAgLmJh''@;'; + put 'put ''ZGdlLmhpZGRlbltfbmdjb250ZW50LSVDT01QJV17dmlzaWJpbGl0eTpoaWRkZW59LmFwcC1uYXYtZHJvcGRvd25bX25nY29udGVudC0lQ09NUCVdICAgY2xyLWRyb3Bkb3duLW1lbnVbX25nY29udGVudC0lQ09NUCVde2NvbG9yOiM1NjU2NTY7bWluLXdpZHRoOjIwMHB4O3BhZGRpbmctYm90''@;'; + put 'put ''dG9tOjB9LmFwcC1uYXYtZHJvcGRvd25bX25nY29udGVudC0lQ09NUCVdICAgY2xyLWRyb3Bkb3duLW1lbnVbX25nY29udGVudC0lQ09NUCVdICAgLnNlcGFyYXRvcltfbmdjb250ZW50LSVDT01QJV17bWFyZ2luOjEwcHggMDtib3JkZXItYm90dG9tOjFweCBzb2xpZCBncmF5fS5hcHAtbmF2''@;'; + put 'put ''LWRyb3Bkb3duW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGNsci1kcm9wZG93bi1tZW51W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5kcm9wZG93bi1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246cm93O2FsaWduLWl0ZW1zOmNlbnRlcjtwb3NpdGlvbjpy''@;'; + put 'put ''ZWxhdGl2ZTtoZWlnaHQ6NDVweDtsaW5lLWhlaWdodDo0MHB4fS5hcHAtbmF2LWRyb3Bkb3duW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGNsci1kcm9wZG93bi1tZW51W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5kcm9wZG93bi1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHNwYW4uZHJvcGRvd24t''@;'; + put 'put ''dGV4dFtfbmdjb250ZW50LSVDT01QJV17Y29sb3I6IzU2NTY1Nn0uYXBwLW5hdi1kcm9wZG93bltfbmdjb250ZW50LSVDT01QJV0gICBjbHItZHJvcGRvd24tbWVudVtfbmdjb250ZW50LSVDT01QJV0gICAuZHJvcGRvd24taXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAuYmFkZ2VbX25nY29u''@;'; + put 'put ''dGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3RvcDoxNXB4O3JpZ2h0OjI2cHg7bWFyZ2luLXJpZ2h0OjB9LmFwcC1uYXYtZHJvcGRvd25bX25nY29udGVudC0lQ09NUCVdICAgY2xyLWRyb3Bkb3duLW1lbnVbX25nY29udGVudC0lQ09NUCVdICAgLmRyb3Bkb3duLWl0ZW0uZGVidWct''@;'; + put 'put ''c3dpdGNoLWl0ZW1bX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MH0uYXBwLW5hdi1kcm9wZG93bltfbmdjb250ZW50LSVDT01QJV0gICBjbHItZHJvcGRvd24tbWVudVtfbmdjb250ZW50LSVDT01QJV0gICAuZHJvcGRvd24taXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAudG9nZ2xlLXN3''@;'; + put 'put ''aXRjaFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luOjA7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfS5hcHAtbmF2LWRyb3Bkb3duW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGNsci1kcm9wZG93bi1tZW51W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5kcm9wZG93''@;'; + put 'put ''bi1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jbHItbG9nb3V0W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDoyMHB4O3RvcDoxNXB4fS5hcHAtbmF2LWRyb3Bkb3duW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGNsci1kcm9wZG93bi1tZW51W19uZ2NvbnRlbnQt''@;'; + put 'put ''JUNPTVAlXSAgIC5kcm9wZG93bi1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgICAgLmNsci1jb250cm9sLWNvbnRhaW5lcnt3aWR0aDoxMDAlO2hlaWdodDoxMDAlfS5hcHAtbmF2LWRyb3Bkb3duW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGNsci1kcm9wZG93bi1tZW51W19uZ2NvbnRlbnQtJUNP''@;'; + put 'put ''TVAlXSAgIC5kcm9wZG93bi1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgICAgY2xyLXRvZ2dsZS13cmFwcGVye3dpZHRoOjEwMCU7bWFyZ2luOjA7aGVpZ2h0OjEwMCU7cGFkZGluZzoxMHB4IDIwcHh9LmFwcC1uYXYtZHJvcGRvd25bX25nY29udGVudC0lQ09NUCVdICAgY2xyLWRyb3Bkb3du''@;'; + put 'put ''LW1lbnVbX25nY29udGVudC0lQ09NUCVdICAgLmRyb3Bkb3duLWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgICBpbnB1dHt0b3A6MDtsZWZ0OjA7cmlnaHQ6MDtib3R0b206MDt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO2N1cnNvcjpwb2ludGVyfS5hcHAtbmF2LWRyb3Bkb3duW19uZ2NvbnRl''@;'; + put 'put ''bnQtJUNPTVAlXSAgIGNsci1kcm9wZG93bi1tZW51W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5kcm9wZG93bi1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgICAgLmNsci10b2dnbGUtd3JhcHBlciBpbnB1dFt0eXBlPWNoZWNrYm94XStsYWJlbDphZnRlcnt0cmFuc2l0aW9uOm5vbmUhaW1wb3J0''@;'; + put 'put ''YW50fS5kZWJ1Zy10b2dnbGUtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctbGVmdDo0MnB4fUBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCl7LnNpZGVuYXYtY29udGVudFtfbmdjb250ZW50LSVDT01QJV0gICBhLm5hdi1saW5rLmFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV17Y29s''@;'; + put 'put ''b3I6aW5oZXJpdDtwYWRkaW5nOjE1cHg7YmFja2dyb3VuZDojNTY1NjU2fX0ubmF2LWxpbmsuZC1ibG9ja1tfbmdjb250ZW50LSVDT01QJV0gICBzcGFuLmJhZGdlW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZX0uYXZhdGFyLWltZ1tfbmdjb250ZW50LSVDT01QJV17d2lk''@;'; + put 'put ''dGg6NDBweDtoZWlnaHQ6NDBweDttYXJnaW4tbGVmdDoxMHB4O2JvcmRlci1yYWRpdXM6NTBweH0nXX0pLGR9KSgpO2Z1bmN0aW9uIG9CZShkLGcpe2lmKDEmZCl7Y29uc3QgaD1iaSgpO3J0KDAsImNsci1hbGVydCIsMiksR24oImNsckFsZXJ0Q2xvc2VkQ2hhbmdlIixmdW5jdGlvbih5KXty''@;'; + put 'put ''ZXR1cm4gYShpdChoKS4kaW1wbGljaXQuY2xvc2VkPXkpfSkoImNsckFsZXJ0Q2xvc2VkQ2hhbmdlIixmdW5jdGlvbigpe3JldHVybiBpdChoKSxhKEp0KDIpLm9uQWxlcnRDbG9zZSgpKX0pLHJ0KDEsImRpdiIsMykoMiwic3BhbiIsNCksWXQoMyksbHQoKSgpKCl9aWYoMiZkKXtjb25zdCBo''@;'; + put 'put ''PWcuJGltcGxpY2l0O1R0KCJjbHJBbGVydFR5cGUiLGgudHlwZSkoImNsckFsZXJ0QXBwTGV2ZWwiLCEwKSgiY2xyQWxlcnRDbG9zZWQiLGguY2xvc2VkKSx1dCgzKSxKaSgiICIsaC5tZXNzYWdlLCIgIil9fWZ1bmN0aW9uIGFCZShkLGcpe2lmKDEmZCYmKHJ0KDAsImNsci1hbGVydHMiKSxy''@;'; + put 'put ''bigxLG9CZSw0LDQsImNsci1hbGVydCIsMSksbHQoKSksMiZkKXtjb25zdCBoPUp0KCk7dXQoMSksVHQoIm5nRm9yT2YiLGguYWxlcnRzKX19bGV0IGxCZT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgpe3RoaXMuX2FsZXJ0c1NlcnZpY2U9aCx0aGlzLmFsZXJ0cz1bXSx0aGlzLmhhc09w''@;'; + put 'put ''ZW5BbGVydD0hMSx0aGlzLmFsZXJ0c1N1Yj1uZXcgVGV9bmdPbkluaXQoKXt0aGlzLmFsZXJ0c1N1Yj10aGlzLl9hbGVydHNTZXJ2aWNlLmFsZXJ0cy5zdWJzY3JpYmUoaD0+e3RoaXMuYWxlcnRzLnB1c2goaCksdGhpcy5oYXNPcGVuQWxlcnQ9ITAsaC5lcnImJmNvbnNvbGUuZXJyb3IoaC5l''@;'; + put 'put ''cnIpfSl9b25BbGVydENsb3NlKCl7dGhpcy5oYXNPcGVuQWxlcnQ9dGhpcy5hbGVydHMuc29tZShoPT4haC5jbG9zZWQpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShLdChESCkpfSxkLlx1MDI3NWNtcD1UaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJh''@;'; + put 'put ''cHAtYWxlcnRzIl1dLGRlY2xzOjEsdmFyczoxLGNvbnN0czpbWzQsIm5nSWYiXSxbMywiY2xyQWxlcnRUeXBlIiwiY2xyQWxlcnRBcHBMZXZlbCIsImNsckFsZXJ0Q2xvc2VkIiwiY2xyQWxlcnRDbG9zZWRDaGFuZ2UiLDQsIm5nRm9yIiwibmdGb3JPZiJdLFszLCJjbHJBbGVydFR5cGUiLCJj''@;'; + put 'put ''bHJBbGVydEFwcExldmVsIiwiY2xyQWxlcnRDbG9zZWQiLCJjbHJBbGVydENsb3NlZENoYW5nZSJdLFsxLCJhbGVydC1pdGVtIl0sWzEsImFsZXJ0LXRleHQiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oaCx2KXsxJmgmJnJuKDAsYUJlLDIsMSwiY2xyLWFsZXJ0cyIsMCksMiZoJiZUdCgibmdJZiIs''@;'; + put 'put ''di5oYXNPcGVuQWxlcnQpfSxkZXBlbmRlbmNpZXM6W0VzLE5vLHBaLE15ZSxnWl0sc3R5bGVzOlsiY2xyLWFsZXJ0c1tfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpibG9ja30iXX0pLGR9KSgpO2Z1bmN0aW9uIHNCZShkLGcpezEmZCYmKHJ0KDAsInAiLDYpLFl0KDEsIk5vIHJlcXVlc3Rz''@;'; + put 'put ''IG1hZGUiKSxsdCgpKX1mdW5jdGlvbiB1QmUoZCxnKXsxJmQmJihydCgwLCJzcGFuIiksQ3IoMSwiY2xyLWljb24iLDEzKSxsdCgpKX1mdW5jdGlvbiBjQmUoZCxnKXsxJmQmJihydCgwLCJzcGFuIiksQ3IoMSwiY2xyLWljb24iLDE0KSxsdCgpKX1mdW5jdGlvbiBmQmUoZCxnKXtpZigxJmQp''@;'; + put 'put ''e2NvbnN0IGg9YmkoKTtydCgwLCJjbHItdHJlZS1ub2RlIiwyMSksR24oImNsaWNrIixmdW5jdGlvbigpe2NvbnN0IEM9aXQoaCkuJGltcGxpY2l0LEk9SnQoMykuaW5kZXg7cmV0dXJuIGEoSnQoMikuZ29Ub0xvZ0xpbmUoQywicmVxdWVzdF8iK0ksImVycm9yIikpfSkscnQoMSwiYnV0dG9u''@;'; + put 'put ''IiwyMiksWXQoMiksbHQoKSgpfWlmKDImZCl7Y29uc3QgaD1nLiRpbXBsaWNpdDt1dCgyKSxKaSgiICIsaCwiICIpfX1jb25zdCAkeWU9ZnVuY3Rpb24oKXtyZXR1cm5bXX07ZnVuY3Rpb24gaEJlKGQsZyl7aWYoMSZkJiYocnQoMCwiY2xyLXRyZWUtbm9kZSIsMTgpLENyKDEsImNsci1pY29u''@;'; + put 'put ''IiwxOSksWXQoMikscm4oMyxmQmUsMywxLCJjbHItdHJlZS1ub2RlIiwyMCksbHQoKSksMiZkKXtjb25zdCBoPUp0KDIpLiRpbXBsaWNpdDt1dCgyKSxKaSgiIEVycm9ycyAoIixoLmxvZ0Vycm9ycy5sZW5ndGgsIikgIiksdXQoMSksVHQoIm5nRm9yT2YiLGgubG9nRXJyb3JzfHxWcygyLCR5''@;'; + put 'put ''ZSkpfX1mdW5jdGlvbiBkQmUoZCxnKXtpZigxJmQpe2NvbnN0IGg9YmkoKTtydCgwLCJjbHItdHJlZS1ub2RlIiwyMSksR24oImNsaWNrIixmdW5jdGlvbigpe2NvbnN0IEM9aXQoaCkuJGltcGxpY2l0LEk9SnQoMykuaW5kZXg7cmV0dXJuIGEoSnQoMikuZ29Ub0xvZ0xpbmUoQywicmVxdWVz''@;'; + put 'put ''dF8iK0ksIndhcm5pbmciKSl9KSxydCgxLCJidXR0b24iLDIyKSxZdCgyKSxsdCgpKCl9aWYoMiZkKXtjb25zdCBoPWcuJGltcGxpY2l0O3V0KDIpLEppKCIgIixoLCIgIil9fWZ1bmN0aW9uIHBCZShkLGcpe2lmKDEmZCYmKHJ0KDAsImNsci10cmVlLW5vZGUiLDE4KSxDcigxLCJjbHItaWNv''@;'; + put 'put ''biIsMjMpLFl0KDIpLHJuKDMsZEJlLDMsMSwiY2xyLXRyZWUtbm9kZSIsMjApLGx0KCkpLDImZCl7Y29uc3QgaD1KdCgyKS4kaW1wbGljaXQ7dXQoMiksSmkoIiBXYXJuaW5ncyAoIixoLmxvZ1dhcm5pbmdzLmxlbmd0aCwiKSAiKSx1dCgxKSxUdCgibmdGb3JPZiIsaC5sb2dXYXJuaW5nc3x8''@;'; + put 'put ''VnMoMiwkeWUpKX19ZnVuY3Rpb24gZ0JlKGQsZyl7aWYoMSZkKXtjb25zdCBoPWJpKCk7cnQoMCwiYnV0dG9uIiwyNCksR24oImNsaWNrIixmdW5jdGlvbigpe2l0KGgpO2NvbnN0IHk9SnQoMikuJGltcGxpY2l0O3JldHVybiBhKEp0KDIpLmRvd25sb2FkTG9nKHkubG9nRmlsZSkpfSksWXQo''@;'; + put 'put ''MSwiIERvd25sb2FkICIpLGx0KCl9fWZ1bmN0aW9uIG1CZShkLGcpe2lmKDEmZCYmKHJ0KDAsImNsci10YWItY29udGVudCIpKDEsImNsci10cmVlIikscm4oMixoQmUsNCwzLCJjbHItdHJlZS1ub2RlIiwxNSkscm4oMyxwQmUsNCwzLCJjbHItdHJlZS1ub2RlIiwxNSksbHQoKSxDcig0LCJk''@;'; + put 'put ''aXYiLDE2KSxybig1LGdCZSwyLDAsImJ1dHRvbiIsMTcpLGx0KCkpLDImZCl7Y29uc3QgaD1KdCgpLiRpbXBsaWNpdDt1dCgyKSxUdCgibmdJZiIsaC5sb2dFcnJvcnMpLHV0KDEpLFR0KCJuZ0lmIixoLmxvZ1dhcm5pbmdzKSx1dCgxKSxUdCgiaW5uZXJIVE1MIixoLmxvZ0ZpbGUsVTgpLHV0''@;'; + put 'put ''KDEpLFR0KCJuZ0lmIiwobnVsbD09aC5sb2dGaWxlP251bGw6aC5sb2dGaWxlLmxlbmd0aCk+MCl9fWZ1bmN0aW9uIHZCZShkLGcpe2lmKDEmZCl7Y29uc3QgaD1iaSgpO3J0KDAsImJ1dHRvbiIsMjQpLEduKCJjbGljayIsZnVuY3Rpb24oKXtpdChoKTtjb25zdCB5PUp0KDIpLiRpbXBsaWNp''@;'; + put 'put ''dDtyZXR1cm4gYShKdCgyKS5kb3dubG9hZFNvdXJjZUNvZGUoeS5zb3VyY2VDb2RlKSl9KSxZdCgxLCIgRG93bmxvYWQgIiksbHQoKX19ZnVuY3Rpb24gQUJlKGQsZyl7aWYoMSZkJiYocnQoMCwiY2xyLXRhYi1jb250ZW50IikoMSwiZGl2IiwyNSksWXQoMiksbHQoKSxybigzLHZCZSwyLDAs''@;'; + put 'put ''ImJ1dHRvbiIsMTcpLGx0KCkpLDImZCl7Y29uc3QgaD1KdCgpLiRpbXBsaWNpdDt1dCgyKSxqaShoLnNvdXJjZUNvZGUpLHV0KDEpLFR0KCJuZ0lmIiwobnVsbD09aC5zb3VyY2VDb2RlP251bGw6aC5zb3VyY2VDb2RlLmxlbmd0aCk+MCl9fWZ1bmN0aW9uIHlCZShkLGcpe2lmKDEmZCl7Y29u''@;'; + put 'put ''c3QgaD1iaSgpO3J0KDAsImJ1dHRvbiIsMjQpLEduKCJjbGljayIsZnVuY3Rpb24oKXtpdChoKTtjb25zdCB5PUp0KDIpLiRpbXBsaWNpdDtyZXR1cm4gYShKdCgyKS5kb3dubG9hZEdlbmVyYXRlZENvZGUoeS5nZW5lcmF0ZWRDb2RlKSl9KSxZdCgxLCIgRG93bmxvYWQgIiksbHQoKX19ZnVu''@;'; + put 'put ''Y3Rpb24gd0JlKGQsZyl7aWYoMSZkJiYocnQoMCwiY2xyLXRhYi1jb250ZW50IikoMSwiZGl2IiwyNSksWXQoMiksbHQoKSxybigzLHlCZSwyLDAsImJ1dHRvbiIsMTcpLGx0KCkpLDImZCl7Y29uc3QgaD1KdCgpLiRpbXBsaWNpdDt1dCgyKSxKaSgiICIsaC5nZW5lcmF0ZWRDb2RlLCIgIiks''@;'; + put 'put ''dXQoMSksVHQoIm5nSWYiLChudWxsPT1oLmdlbmVyYXRlZENvZGU/bnVsbDpoLmdlbmVyYXRlZENvZGUubGVuZ3RoKT4wKX19ZnVuY3Rpb24gYkJlKGQsZyl7aWYoMSZkKXtjb25zdCBoPWJpKCk7cnQoMCwiZGl2IiwzMSksR24oImNsaWNrIixmdW5jdGlvbigpe2NvbnN0IEM9aXQoaCkuJGlt''@;'; + put 'put ''cGxpY2l0O3JldHVybiBhKEp0KDMpLiRpbXBsaWNpdC5zZWxlY3RlZFRhYmxlPUMua2V5KX0pLFl0KDEpLGx0KCl9aWYoMiZkKXtjb25zdCBoPWcuJGltcGxpY2l0O0ZpKCJzZWxlY3RlZCIsSnQoMykuJGltcGxpY2l0LnNlbGVjdGVkVGFibGU9PT1oLmtleSksdXQoMSksSmkoIiAiLGgua2V5''@;'; + put 'put ''LCIgIil9fWZ1bmN0aW9uIF9CZShkLGcpe2lmKDEmZCYmKHJ0KDAsImNsci1kcm9wZG93bi1tZW51Iikscm4oMSxiQmUsMiwzLCJkaXYiLDMwKSxubigyLCJrZXl2YWx1ZSIpLGx0KCkpLDImZCl7Y29uc3QgaD1KdCgyKS4kaW1wbGljaXQ7dXQoMSksVHQoIm5nRm9yT2YiLHp0KDIsMSxoLlNB''@;'; + put 'put ''U1dPUkspKX19ZnVuY3Rpb24gQ0JlKGQsZyl7aWYoMSZkJiYocnQoMCwicCIsMzUpKDEsInN0cm9uZyIpLFl0KDIpLGx0KCkoKSksMiZkKXtjb25zdCBoPUp0KDMpLiRpbXBsaWNpdDt1dCgyKSxKaSgiIixoLnNlbGVjdGVkVGFibGUsIiAoZmlyc3QgMTAgcm93cykgIil9fWZ1bmN0aW9uIGtC''@;'; + put 'put ''ZShkLGcpe2lmKDEmZCYmKHJ0KDAsInRoIiksWXQoMSksbHQoKSksMiZkKXtjb25zdCBoPWcuJGltcGxpY2l0O3V0KDEpLEppKCIgIixoLmtleSwiICIpfX1mdW5jdGlvbiBTQmUoZCxnKXtpZigxJmQmJihydCgwLCJ0ZCIpLFl0KDEpLGx0KCkpLDImZCl7Y29uc3QgaD1nLiRpbXBsaWNpdCx2''@;'; + put 'put ''PUp0KCkuJGltcGxpY2l0O3V0KDEpLEppKCIgIix2W2gua2V5XSwiICIpfX1mdW5jdGlvbiBNQmUoZCxnKXtpZigxJmQmJihydCgwLCJ0ciIpLHJuKDEsU0JlLDIsMSwidGQiLDM3KSxubigyLCJrZXl2YWx1ZSIpLGx0KCkpLDImZCl7Y29uc3QgaD1KdCg0KS4kaW1wbGljaXQ7dXQoMSksVHQo''@;'; + put 'put ''Im5nRm9yT2YiLHp0KDIsMSxoLlNBU1dPUktbaC5zZWxlY3RlZFRhYmxlXS5maXJzdDEwcm93c1swXSkpfX1mdW5jdGlvbiBFQmUoZCxnKXtpZigxJmQmJihydCgwLCJ0YWJsZSIsMzYpKDEsInRoZWFkIikoMiwidHIiKSxybigzLGtCZSwyLDEsInRoIiwzNyksbm4oNCwia2V5dmFsdWUiKSxs''@;'; + put 'put ''dCgpKCkscnQoNSwidGJvZHkiKSxybig2LE1CZSwzLDMsInRyIiwzNyksbHQoKSgpKSwyJmQpe2NvbnN0IGg9SnQoMykuJGltcGxpY2l0O3V0KDMpLFR0KCJuZ0Zvck9mIix6dCg0LDIsaC5TQVNXT1JLW2guc2VsZWN0ZWRUYWJsZV0uZmlyc3QxMHJvd3NbMF0pKSx1dCgzKSxUdCgibmdGb3JP''@;'; + put 'put ''ZiIsaC5TQVNXT1JLW2guc2VsZWN0ZWRUYWJsZV0uZmlyc3QxMHJvd3MpfX1mdW5jdGlvbiB4QmUoZCxnKXtpZigxJmQmJihydCgwLCJjbHItdGFiLWNvbnRlbnQiKSxybigxLENCZSwzLDEsInAiLDMyKSxydCgyLCJkaXYiLDMzKSxybigzLEVCZSw3LDQsInRhYmxlIiwzNCksbHQoKSgpKSwy''@;'; + put 'put ''JmQpe2NvbnN0IGg9SnQoMikuJGltcGxpY2l0O3V0KDEpLFR0KCJuZ0lmIixoLnNlbGVjdGVkVGFibGUpLHV0KDIpLFR0KCJuZ0lmIixoLnNlbGVjdGVkVGFibGUpfX1mdW5jdGlvbiBUQmUoZCxnKXtpZigxJmQpe2NvbnN0IGg9YmkoKTtydCgwLCJjbHItdGFiIikoMSwiY2xyLWRyb3Bkb3du''@;'; + put 'put ''IiwyNikoMiwiYnV0dG9uIiwyNyksWXQoMywiIFNBUyBXb3JrIFRhYmxlcyAiKSxDcig0LCJjbHItaWNvbiIsMjgpLGx0KCkscm4oNSxfQmUsMywzLCJjbHItZHJvcGRvd24tbWVudSIsMjkpLGx0KCkscm4oNix4QmUsNCwyLCJuZy10ZW1wbGF0ZSIsMTIpLEduKCJjbHJJZkFjdGl2ZUNoYW5n''@;'; + put 'put ''ZSIsZnVuY3Rpb24oeSl7cmV0dXJuIGl0KGgpLGEoSnQoMykudGFibGVzQWN0aXZlPXkpfSksbHQoKX1pZigyJmQpe2NvbnN0IGg9SnQoMyk7dXQoMSksVHQoImNsckNsb3NlTWVudU9uSXRlbUNsaWNrIiwhMCksdXQoNSksVHQoImNscklmQWN0aXZlIixoLnRhYmxlc0FjdGl2ZSl9fWZ1bmN0''@;'; + put 'put ''aW9uIElCZShkLGcpe2lmKDEmZCl7Y29uc3QgaD1iaSgpO3J0KDAsImNsci1zdGFjay1ibG9jayIsOCkoMSwiY2xyLXN0YWNrLWxhYmVsIiksWXQoMikscnQoMywic3BhbiIsOSkscm4oNCx1QmUsMiwwLCJzcGFuIiw1KSxybig1LGNCZSwyLDAsInNwYW4iLDUpLGx0KCkoKSxydCg2LCJjbHIt''@;'; + put 'put ''c3RhY2stY29udGVudCIpLFl0KDcpLGx0KCkscnQoOCwiY2xyLXN0YWNrLWJsb2NrIiwxMCkoOSwiY2xyLXN0YWNrLWNvbnRlbnQiKSgxMCwiY2xyLXRhYnMiKSgxMSwiY2xyLXRhYiIpKDEyLCJidXR0b24iLDExKSxZdCgxMywiU0FTIExvZyIpLGx0KCkscm4oMTQsbUJlLDYsNCwibmctdGVt''@;'; + put 'put ''cGxhdGUiLDEyKSxHbigiY2xySWZBY3RpdmVDaGFuZ2UiLGZ1bmN0aW9uKHkpe3JldHVybiBpdChoKSxhKEp0KDIpLnNhc0xvZ0FjdGl2ZT15KX0pLGx0KCkscnQoMTUsImNsci10YWIiKSgxNiwiYnV0dG9uIiwxMSksWXQoMTcsIlNBUyBTb3VyY2UgQ29kZSIpLGx0KCkscm4oMTgsQUJlLDQs''@;'; + put 'put ''MiwibmctdGVtcGxhdGUiLDEyKSxHbigiY2xySWZBY3RpdmVDaGFuZ2UiLGZ1bmN0aW9uKHkpe3JldHVybiBpdChoKSxhKEp0KDIpLnNhc1NvdXJjZUNvZGVBY3RpdmU9eSl9KSxsdCgpLHJ0KDE5LCJjbHItdGFiIikoMjAsImJ1dHRvbiIsMTEpLFl0KDIxLCJTQVMgR2VuZXJhdGVkIENvZGUi''@;'; + put 'put ''KSxsdCgpLHJuKDIyLHdCZSw0LDIsIm5nLXRlbXBsYXRlIiwxMiksR24oImNscklmQWN0aXZlQ2hhbmdlIixmdW5jdGlvbih5KXtyZXR1cm4gaXQoaCksYShKdCgyKS5zYXNHZW5lcmF0ZWRDb2RlQWN0aXZlPXkpfSksbHQoKSxybigyMyxUQmUsNywyLCJjbHItdGFiIiw1KSxsdCgpKCkoKSgp''@;'; + put 'put ''fWlmKDImZCl7Y29uc3QgaD1nLiRpbXBsaWNpdCx2PWcuaW5kZXgseT1KdCgyKTtUdCgiaWQiLCJyZXF1ZXN0XyIrdikoImNsclN0YWNrVmlld0xldmVsIiwxKSgiY2xyU3RhY2tWaWV3U2V0c2l6ZSIsMykoImNsclN0YWNrVmlld1Bvc2luc2V0IiwzKSx1dCgyKSxKaSgiICIsaC5zZXJ2aWNl''@;'; + put 'put ''TGluaywiICIpLHV0KDIpLFR0KCJuZ0lmIiwobnVsbD09aC5sb2dXYXJuaW5ncz9udWxsOmgubG9nV2FybmluZ3MubGVuZ3RoKT4wKSx1dCgxKSxUdCgibmdJZiIsKG51bGw9PWgubG9nRXJyb3JzP251bGw6aC5sb2dFcnJvcnMubGVuZ3RoKT4wKSx1dCgyKSxqaShoLnBhcnNlZFRpbWVzdGFt''@;'; + put 'put ''cCksdXQoNyksVHQoImNscklmQWN0aXZlIix5LnNhc0xvZ0FjdGl2ZSksdXQoNCksVHQoImNscklmQWN0aXZlIix5LnNhc1NvdXJjZUNvZGVBY3RpdmUpLHV0KDQpLFR0KCJjbHJJZkFjdGl2ZSIseS5zYXNHZW5lcmF0ZWRDb2RlQWN0aXZlKSx1dCgxKSxUdCgibmdJZiIsaC5TQVNXT1JLKX19''@;'; + put 'put ''ZnVuY3Rpb24gREJlKGQsZyl7aWYoMSZkJiYocnQoMCwiY2xyLXN0YWNrLXZpZXciKSxybigxLElCZSwyNCwxMiwiY2xyLXN0YWNrLWJsb2NrIiw3KSxsdCgpKSwyJmQpe2NvbnN0IGg9SnQoKTt1dCgxKSxUdCgibmdGb3JPZiIsaC5zYXNqc1JlcXVlc3RzKX19bGV0IExCZT0oKCk9PntjbGFz''@;'; + put 'put ''cyBke2NvbnN0cnVjdG9yKGgsdix5KXt0aGlzLnNhc1NlcnZpY2U9aCx0aGlzLmxvZ2dlclNlcnZpY2U9dix0aGlzLmhlbHBlclNlcnZpY2U9eSx0aGlzLl9vcGVuZWQ9ITEsdGhpcy5vcGVuZWRDaGFuZ2U9bmV3IGFyLHRoaXMuc2FzTG9nQWN0aXZlPSEwLHRoaXMuc2FzU291cmNlQ29kZUFj''@;'; + put 'put ''dGl2ZT0hMSx0aGlzLnNhc0dlbmVyYXRlZENvZGVBY3RpdmU9ITEsdGhpcy50YWJsZXNBY3RpdmU9ITEsdGhpcy5zYXNqc0NvbmZpZz10aGlzLnNhc1NlcnZpY2UuZ2V0U2FzanNDb25maWcoKSx0aGlzLnNhc2pzUmVxdWVzdHM9W119Z2V0IG9wZW5lZCgpe3JldHVybiB0aGlzLl9vcGVuZWR9''@;'; + put 'put ''c2V0IG9wZW5lZChoKXt0aGlzLl9vcGVuZWQ9aCxoJiZ0aGlzLm1vZGFsT3BlbmVkKCksdGhpcy5sb2dnZXJTZXJ2aWNlLmxvZyh0aGlzLnNhc2pzUmVxdWVzdHMpfW5nT25Jbml0KCl7fXBhcnNlTG9nVGltZXN0YW1wKGgpe3JldHVybmAke3RoaXMuZm9ybWF0VGltZXN0YW1wKGgpfSAke3Ro''@;'; + put 'put ''aXMudGltZXN0YW1wRnJvbU5vdyhoKX1gfWN1dEFwcExvYyhoKXtyZXR1cm4gaC5yZXBsYWNlKHRoaXMuc2FzanNDb25maWcuYXBwTG9jKyIvIiwiIil9Zm9ybWF0VGltZXN0YW1wKGgpe3JldHVybiBUbChoKS5mb3JtYXQoKT9UbChoKS5mb3JtYXQoImRkZGQsIE1NTU0gRG8gWVlZWSwgaDpt''@;'; + put 'put ''bTpzcyBhIik6aH10aW1lc3RhbXBGcm9tTm93KGgpe3JldHVybiBUbChoKS5mb3JtYXQoKT9gICgke1RsKGgpLmZyb21Ob3coKX0pYDoiIn1tb2RhbE9wZW5DaGFuZ2UoaCl7dGhpcy5vcGVuZWQ9aCx0aGlzLm9wZW5lZENoYW5nZS5lbWl0KHRoaXMub3BlbmVkKX1tb2RhbE9wZW5lZCgpe3Ro''@;'; + put 'put ''aXMuc2FzanNSZXF1ZXN0cz10aGlzLnNhc1NlcnZpY2UuZ2V0U2FzUmVxdWVzdHMoKTtmb3IobGV0IGggb2YgdGhpcy5zYXNqc1JlcXVlc3RzKXRoaXMucGFyc2VFcnJvcnNBbmRXYXJuaW5ncyhoKSxoLnNlcnZpY2VMaW5rPXRoaXMuY3V0QXBwTG9jKGguc2VydmljZUxpbmspLGgucGFyc2Vk''@;'; + put 'put ''VGltZXN0YW1wPXRoaXMucGFyc2VMb2dUaW1lc3RhbXAoaC50aW1lc3RhbXApfWdvVG9Mb2dMaW5lKGgsdix5KXtsZXQgQz1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKGAjJHt2fSAubG9nLXdyYXBwZXIuc2FzbG9nIGZvbnRgKSxJPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYCMke3Z9IC5s''@;'; + put 'put ''b2ctd3JhcHBlci5zYXNsb2dgKTtmb3IobGV0IGogb2YgQylqLnRleHRDb250ZW50LmluY2x1ZGVzKGgpJiYoSS5zY3JvbGxUb3A9ai5vZmZzZXRUb3AtSS5vZmZzZXRUb3Asai5zdHlsZS5iYWNrZ3JvdW5kQ29sb3I9IiM2MWEyMjAyYiIsc2V0VGltZW91dCgoKT0+e2ouc3R5bGU9IiJ9LDNl''@;'; + put 'put ''MykpfXBhcnNlRXJyb3JzQW5kV2FybmluZ3MoaCl7cmV0dXJuIG5vKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtpZighaHx8IWgubG9nRmlsZXx8InN0cmluZyIhPXR5cGVvZiBoLmxvZ0ZpbGV8fHZvaWQgMCE9PWgubG9nRXJyb3JzfHx2b2lkIDAhPT1oLmxvZ1dhcm5pbmdzKXJl''@;'; + put 'put ''dHVybjtsZXQgdj1bXSx5PVtdLEM9aC5sb2dGaWxlLnNwbGl0KCJcbiIpO2ZvcihsZXQgST0wO0k8Qy5sZW5ndGg7SSsrKXtpZigvPC4qPkVSUk9SL2dtLnRlc3QoQ1tJXSkpe2xldCBqPUNbSV0uc3Vic3RyaW5nKENbSV0uaW5kZXhPZigiRSIpLENbSV0ubGVuZ3RoLTEpO3YucHVzaChqKX1l''@;'; + put 'put ''bHNlL15FUlJPUi9nbS50ZXN0KENbSV0pJiYodi5wdXNoKENbSV0pLENbSV09Ijxmb250PiIrQ1tJXSsiPC9mb250PiIpO2lmKC88Lio+V0FSTklORy9nbS50ZXN0KENbSV0pKXtsZXQgaj1DW0ldLnN1YnN0cmluZyhDW0ldLmluZGV4T2YoIlciKSxDW0ldLmxlbmd0aC0xKTt5LnB1c2goail9''@;'; + put 'put ''ZWxzZS9eV0FSTklORy9nbS50ZXN0KENbSV0pJiYoeS5wdXNoKENbSV0pLENbSV09Ijxmb250PiIrQ1tJXSsiPC9mb250PiIpfXRoaXMubG9nZ2VyU2VydmljZS5sb2coeSksaC5sb2dGaWxlPUMuam9pbigiXG4iKSxoLmxvZ0Vycm9ycz12LGgubG9nV2FybmluZ3M9eX0pfWRvd25sb2FkTG9n''@;'; + put 'put ''KGgpe2NvbnN0IHY9KG5ldyBEYXRlKS52YWx1ZU9mKCk7dGhpcy5oZWxwZXJTZXJ2aWNlLmRvd25sb2FkVGV4dEZpbGUoYGxvZ0ZpbGUtJHt2fWAsaCl9ZG93bmxvYWRTb3VyY2VDb2RlKGgpe2NvbnN0IHY9KG5ldyBEYXRlKS52YWx1ZU9mKCk7dGhpcy5oZWxwZXJTZXJ2aWNlLmRvd25sb2Fk''@;'; + put 'put ''VGV4dEZpbGUoYHNvdXJjZUNvZGUtJHt2fWAsaCl9ZG93bmxvYWRHZW5lcmF0ZWRDb2RlKGgpe2NvbnN0IHY9KG5ldyBEYXRlKS52YWx1ZU9mKCk7dGhpcy5oZWxwZXJTZXJ2aWNlLmRvd25sb2FkVGV4dEZpbGUoYGdlbmVyYXRlZENvZGUtJHt2fWAsaCl9fXJldHVybiBkLlx1MDI3NWZhYz1m''@;'; + put 'put ''dW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKEt0KGcyKSxLdChzYyksS3QoWGMpKX0sZC5cdTAyNzVjbXA9VGkoe3R5cGU6ZCxzZWxlY3RvcnM6W1siYXBwLXJlcXVlc3RzLW1vZGFsIl1dLGlucHV0czp7b3BlbmVkOiJvcGVuZWQifSxvdXRwdXRzOntvcGVuZWRDaGFuZ2U6Im9wZW5lZENo''@;'; + put 'put ''YW5nZSJ9LGRlY2xzOjgsdmFyczo0LGNvbnN0czpbWyJjbHJNb2RhbFNpemUiLCJ4bCIsMSwicmVxdWVzdHMtbW9kYWwiLDMsImNsck1vZGFsT3BlbiIsImNsck1vZGFsT3BlbkNoYW5nZSJdLFsxLCJtb2RhbC10aXRsZSJdLFsxLCJtdC0wIiwiZC1pbmxpbmUtYmxvY2siXSxbMSwibW9kYWwt''@;'; + put 'put ''Ym9keSIsImgtNzB2aCJdLFsiY2xhc3MiLCJuby1yZXFzIiw0LCJuZ0lmIl0sWzQsIm5nSWYiXSxbMSwibm8tcmVxcyJdLFszLCJpZCIsImNsclN0YWNrVmlld0xldmVsIiwiY2xyU3RhY2tWaWV3U2V0c2l6ZSIsImNsclN0YWNrVmlld1Bvc2luc2V0Iiw0LCJuZ0ZvciIsIm5nRm9yT2YiXSxb''@;'; + put 'put ''MywiaWQiLCJjbHJTdGFja1ZpZXdMZXZlbCIsImNsclN0YWNrVmlld1NldHNpemUiLCJjbHJTdGFja1ZpZXdQb3NpbnNldCJdLFsxLCJtbC0xMCJdLFsxLCJjb250ZW50Il0sWyJjbHJUYWJMaW5rIiwiIl0sWzMsImNscklmQWN0aXZlIiwiY2xySWZBY3RpdmVDaGFuZ2UiXSxbInNoYXBlIiwi''@;'; + put 'put ''ZXhjbGFtYXRpb24tY2lyY2xlIiwxLCJtYi01IiwiY29sb3ItZ3JlZW4iXSxbInNoYXBlIiwiZXhjbGFtYXRpb24tdHJpYW5nbGUiLDEsIm1iLTUiLCJjb2xvci1yZWQiXSxbImNsYXNzIiwiZXJyLWxpbmtzIiw0LCJuZ0lmIl0sWzEsImxvZy13cmFwcGVyIiwic2FzbG9nIiwzLCJpbm5lckhU''@;'; + put 'put ''TUwiXSxbInR5cGUiLCJidXR0b24iLCJjbGFzcyIsImJ0biBidG4tbGluayIsMywiY2xpY2siLDQsIm5nSWYiXSxbMSwiZXJyLWxpbmtzIl0sWyJzaGFwZSIsImV4Y2xhbWF0aW9uLXRyaWFuZ2xlIiwxLCJjb2xvci1yZWQiXSxbMywiY2xpY2siLDQsIm5nRm9yIiwibmdGb3JPZiJdLFszLCJj''@;'; + put 'put ''bGljayJdLFsxLCJjbHItdHJlZW5vZGUtbGluayJdLFsic2hhcGUiLCJleGNsYW1hdGlvbi1jaXJjbGUiLDEsImNvbG9yLWdyZWVuIl0sWyJ0eXBlIiwiYnV0dG9uIiwxLCJidG4iLCJidG4tbGluayIsMywiY2xpY2siXSxbMSwibG9nLXdyYXBwZXIiXSxbImNsclRhYkxpbmsiLCIiLDEsIndv''@;'; + put 'put ''cmstdGFibGVzLWRyb3Bkb3duIiwzLCJjbHJDbG9zZU1lbnVPbkl0ZW1DbGljayJdLFsiY2xyRHJvcGRvd25UcmlnZ2VyIiwiIl0sWyJzaGFwZSIsImNhcmV0IGRvd24iXSxbNCwiY2xySWZPcGVuIl0sWyJjbGFzcyIsImRyb3Bkb3duLWl0ZW0iLCJjbHJEcm9wZG93bkl0ZW0iLCIiLDMsInNl''@;'; + put 'put ''bGVjdGVkIiwiY2xpY2siLDQsIm5nRm9yIiwibmdGb3JPZiJdLFsiY2xyRHJvcGRvd25JdGVtIiwiIiwxLCJkcm9wZG93bi1pdGVtIiwzLCJjbGljayJdLFsiY2xhc3MiLCJtdC0xMCIsNCwibmdJZiJdLFsxLCJtaW4taC01MHZoIl0sWyJjbGFzcyIsInRhYmxlIG10LTEwIiw0LCJuZ0lmIl0s''@;'; + put 'put ''WzEsIm10LTEwIl0sWzEsInRhYmxlIiwibXQtMTAiXSxbNCwibmdGb3IiLCJuZ0Zvck9mIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGgsdil7MSZoJiYocnQoMCwiY2xyLW1vZGFsIiwwKSxHbigiY2xyTW9kYWxPcGVuQ2hhbmdlIixmdW5jdGlvbihDKXtyZXR1cm4gdi5tb2RhbE9wZW5DaGFuZ2Uo''@;'; + put 'put ''Qyl9KSxydCgxLCJoMyIsMSksWXQoMiwiIFJlcXVlc3QgSGlzdG9yeSAiKSxydCgzLCJwIiwyKSxZdCg0KSxsdCgpKCkscnQoNSwiZGl2IiwzKSxybig2LHNCZSwyLDAsInAiLDQpLHJuKDcsREJlLDIsMSwiY2xyLXN0YWNrLXZpZXciLDUpLGx0KCkoKSksMiZoJiYoVHQoImNsck1vZGFsT3Bl''@;'; + put 'put ''biIsdi5vcGVuZWQpLHV0KDQpLEppKCJBcHAgTG9jYXRpb246ICIsdi5zYXNqc0NvbmZpZy5hcHBMb2MsIiIpLHV0KDIpLFR0KCJuZ0lmIiwobnVsbD09di5zYXNqc1JlcXVlc3RzP251bGw6di5zYXNqc1JlcXVlc3RzLmxlbmd0aCk8MSksdXQoMSksVHQoIm5nSWYiLHYub3BlbmVkJiYobnVs''@;'; + put 'put ''bD09di5zYXNqc1JlcXVlc3RzP251bGw6di5zYXNqc1JlcXVlc3RzLmxlbmd0aCk+MCkpfSxkZXBlbmRlbmNpZXM6W0VzLE5vLFdMLGR5ZSxxZmUsaHllLHl2LF9nLFlMLHdsLG9kLGFkLEcyLFphLFhMLCRMLEFaLEtMLEpMLG1aLHZ3LFVMLFFMLGRaLEdUXSxzdHlsZXM6WyIucmVxdWVzdHMt''@;'; + put 'put ''bW9kYWwgLm1vZGFsLWhlYWRlciAuY2xvc2UgY2xyLWljb257ZGlzcGxheTpibG9jayFpbXBvcnRhbnR9ICAucmVxdWVzdHMtbW9kYWwgLm1vZGFsLWNvbnRlbnR7cGFkZGluZzoyMHB4IDEwcHggNXB4fSAgLndvcmstdGFibGVzLWRyb3Bkb3duIGJ1dHRvbntjb2xvcjp2YXIoLS1jbHItbmF2''@;'; + put 'put ''LWxpbmstY29sb3IsICM4YzhjOGMpIWltcG9ydGFudH0gIC5zdGFjay12aWV3e2hlaWdodDphdXRvIWltcG9ydGFudDttYXNrLWltYWdlOm5vbmUhaW1wb3J0YW50Oy13ZWJraXQtbWFzay1pbWFnZTpub25lIWltcG9ydGFudH0gIC5jb250ZW50IGNsci1pY29ue21hcmdpbi1ib3R0b206NXB4''@;'; + put 'put ''fSAgLmNvbnRlbnQgcHJle3dvcmQtYnJlYWs6YnJlYWstYWxsO3doaXRlLXNwYWNlOnByZS13cmFwO21heC1oZWlnaHQ6aW5pdGlhbDtvdmVyZmxvdzp2aXNpYmxlO2JvcmRlcjowfSAgLmNvbnRlbnQgLnN0YWNrLWJsb2NrLWxhYmVse3dpZHRoOjEwMCU7cGFkZGluZy1sZWZ0Oi42cmVtIWlt''@;'; + put 'put ''cG9ydGFudH0gIC5jb250ZW50IC5zdGFjay1ibG9jay1sYWJlbCAuc3RhY2stdmlldy1rZXl7ZGlzcGxheTpub25lIWltcG9ydGFudH0gIC5lcnItbGlua3MgLmNsci10cmVlbm9kZS1jaGlsZHJlbnttYXgtaGVpZ2h0OjU1cHg7b3ZlcmZsb3c6YXV0b30uZHJvcGRvd24taXRlbS5zZWxlY3Rl''@;'; + put 'put ''ZFtfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZDojZDhlM2U5fS5sb2ctd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17bWluLWhlaWdodDo1MHB4O3BhZGRpbmc6MTBweDttYXJnaW4tdG9wOjEwcHg7d2hpdGUtc3BhY2U6cHJlLXdyYXA7Ym9yZGVyLXJhZGl1czozcHg7Ym9yZGVyOjFw''@;'; + put 'put ''eCBzb2xpZCAjZTJlMmUyO2JhY2tncm91bmQtY29sb3I6I2ZiZmJmYjtoZWlnaHQ6NDh2aDtvdmVyZmxvdzphdXRvfS5uby1yZXFzW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItdG9wOjFweCBzb2xpZCByZ2JhKDAsMCwwLC4xMDE5NjA3ODQzKTtwYWRkaW5nLXRvcDo1cHg7dGV4dC1hbGln''@;'; + put 'put ''bjpjZW50ZXJ9Il19KSxkfSkoKTtmdW5jdGlvbiBPQmUoZCxnKXtpZigxJmQmJihydCgwLCJwIiw4KSxZdCgxLCIgU0FTIFNlcnZpY2U6ICIpLHJ0KDIsInN0cm9uZyIpLFl0KDMpLGx0KCkoKSksMiZkKXtjb25zdCBoPUp0KCk7dXQoMyksamkoaC5kYXRhLnNhc1NlcnZpY2UpfX1mdW5jdGlv''@;'; + put 'put ''biBSQmUoZCxnKXtpZigxJmQmJihydCgwLCJkaXYiLDkpKDEsInAiKSgyLCJzdHJvbmciKSxZdCgzLCJTWVNXQVJOSU5HVEVYVDoiKSxsdCgpLFl0KDQpLGx0KCkscnQoNSwicCIpKDYsInN0cm9uZyIpLFl0KDcsIlNZU0VSUk9SVEVYVDoiKSxsdCgpLFl0KDgpLGx0KCkscnQoOSwicCIpKDEw''@;'; + put 'put ''LCJzdHJvbmciKSxZdCgxMSwiTUFDOiIpLGx0KCksWXQoMTIpLGx0KCkoKSksMiZkKXtjb25zdCBoPUp0KCk7dXQoNCksSmkoIiAiLGguZGF0YS5kZXRhaWxzLlNZU1dBUk5JTkdURVhULCIiKSx1dCg0KSxKaSgiICIsaC5kYXRhLmRldGFpbHMuU1lTRVJST1JURVhULCIiKSx1dCg0KSxKaSgi''@;'; + put 'put ''ICIsaC5kYXRhLmRldGFpbHMuTUFDLCIiKX19ZnVuY3Rpb24gQkJlKGQsZyl7aWYoMSZkKXtjb25zdCBoPWJpKCk7cnQoMCwiYnV0dG9uIiwxMCksR24oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBpdChoKSxhKEp0KCkub3BlbkNvbmZpZ3VyYXRvcigpKX0pLFl0KDEsIiBPcGVuIGNvbmZp''@;'; + put 'put ''Z3VyYXRvciAiKSxsdCgpfX1mdW5jdGlvbiBQQmUoZCxnKXtpZigxJmQpe2NvbnN0IGg9YmkoKTtydCgwLCJidXR0b24iLDEwKSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIGl0KGgpLGEoSnQoKS5vcGVuUmVxdWVzdHNNb2RhbCgpKX0pLFl0KDEsIiBPcGVuIHJlcXVlc3RzIG1vZGFs''@;'; + put 'put ''ICIpLGx0KCl9fWZ1bmN0aW9uIEZCZShkLGcpe2lmKDEmZCl7Y29uc3QgaD1iaSgpO3J0KDAsImJ1dHRvbiIsMTApLEduKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gaXQoaCksYShKdCgpLmRvd25sb2FkTG9nKCkpfSksWXQoMSwiIERvd25sb2FkIGxvZyAiKSxsdCgpfX1mdW5jdGlvbiBI''@;'; + put 'put ''QmUoZCxnKXtpZigxJmQpe2NvbnN0IGg9YmkoKTtydCgwLCJidXR0b24iLDEwKSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIGl0KGgpLGEoSnQoKS5jbG9zZUFib3J0TW9kYWwoKSl9KSxZdCgxLCIgQ2xvc2UgIiksbHQoKX19ZnVuY3Rpb24gTkJlKGQsZyl7aWYoMSZkKXtjb25zdCBo''@;'; + put 'put ''PWJpKCk7cnQoMCwiYnV0dG9uIiwxMCksR24oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBpdChoKSxhKEp0KCkucmVsb2FkKCkpfSksWXQoMSwiIFJlbG9hZCAiKSxsdCgpfX1sZXQgVkJlPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2LHksQyl7dGhpcy5oZWxwZXJTZXJ2aWNlPWgs''@;'; + put 'put ''dGhpcy5ldmVudFNlcnZpY2U9dix0aGlzLnNhc1NlcnZpY2U9eSx0aGlzLnJvdXRlcj1DLHRoaXMub25Db25maXJtTW9kYWxDbGljaz1uZXcgYXIsdGhpcy5kYXRhPW5ldyBaVSx0aGlzLmZvcmNlUmVsb2FkPSExLHRoaXMubW9kYWxFbmFibGVkPSEwLHRoaXMuZGVmYXVsdERhdGE9e21vZGFs''@;'; + put 'put ''VGl0bGU6IkFib3J0IE1lc3NhZ2UiLHNhc1NlcnZpY2U6bnVsbCxtZXNzYWdlOiIiLGRldGFpbHM6bmV3IElIfX1uZ09uSW5pdCgpe2xldCBoPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0aGlzLmRlZmF1bHREYXRhKSx0aGlzLmRhdGEpO3RoaXMuZGF0YT1ofXNob3dDb25maWd1''@;'; + put 'put ''cmF0b3JCdXR0b24oaCl7Y29uc3Qgdj10aGlzLnNhc1NlcnZpY2UuZ2V0U2FzanNDb25maWcoKTtyZXR1cm4obnVsbD09aD92b2lkIDA6aC5pbmNsdWRlcygic3RhcnR1cHNlcnZpY2UiKSkmJnYuc2VydmVyVHlwZT09PUh1LkQuU2FzOX1jbG9zZUFib3J0TW9kYWwoKXt0aGlzLm9uQ29uZmly''@;'; + put 'put ''bU1vZGFsQ2xpY2suZW1pdCgpfW9wZW5Db25maWd1cmF0b3IoKXt0aGlzLmV2ZW50U2VydmljZS5zdGFydHVwRGF0YUxvYWRlZCgpLHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoIi9kZXBsb3kiKSx0aGlzLmNsb3NlQWJvcnRNb2RhbCgpfWRvd25sb2FkTG9nKCl7dmFyIGg7dGhpcy5oZWxw''@;'; + put 'put ''ZXJTZXJ2aWNlLmRvd25sb2FkVGV4dEZpbGUoYCR7dGhpcy5kYXRhLnNhc1NlcnZpY2V9LUxPR2AsKG51bGw9PT0oaD10aGlzLmRhdGEuZGV0YWlscyl8fHZvaWQgMD09PWg/dm9pZCAwOmguTE9HKXx8IkVycm9yIHBhcnNpbmcgdGhlIGxvZyIpfW9wZW5SZXF1ZXN0c01vZGFsKCl7dGhpcy5l''@;'; + put 'put ''dmVudFNlcnZpY2Uub3BlblJlcXVlc3RzTW9kYWwoKX1yZWxvYWQoKXtsb2NhdGlvbi5yZWxvYWQoKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoS3QoWGMpLEt0KG11KSxLdChnMiksS3QoWmwpKX0sZC5cdTAyNzVjbXA9VGkoe3R5cGU6ZCxzZWxl''@;'; + put 'put ''Y3RvcnM6W1siYXBwLWluZm8tbW9kYWwiXV0saW5wdXRzOntkYXRhOiJkYXRhIixmb3JjZVJlbG9hZDoiZm9yY2VSZWxvYWQifSxvdXRwdXRzOntvbkNvbmZpcm1Nb2RhbENsaWNrOiJvbkNvbmZpcm1Nb2RhbENsaWNrIn0sZGVjbHM6MTMsdmFyczoxMixjb25zdHM6W1siYXBwRHJhZ05kcm9w''@;'; + put 'put ''IiwiIiwxLCJjbHItYWJvcnQtbW9kYWwiLDMsImNsck1vZGFsT3BlbiIsImNsck1vZGFsU2l6ZSIsImNsck1vZGFsQ2xvc2FibGUiLCJjbHJNb2RhbE9wZW5DaGFuZ2UiXSxbMSwibW9kYWwtdGl0bGUiXSxbImNsYXNzIiwic2FzU2VydmljZSIsNCwibmdJZiJdLFsxLCJtb2RhbC1ib2R5Il0s''@;'; + put 'put ''WzEsImFib3J0TXNnIiwzLCJpbm5lckhUTUwiXSxbImNsYXNzIiwic3lzdGV4dCIsNCwibmdJZiJdLFsxLCJtb2RhbC1mb290ZXIiXSxbInR5cGUiLCJidXR0b24iLCJjbGFzcyIsImJ0biBidG4tcHJpbWFyeSIsMywiY2xpY2siLDQsIm5nSWYiXSxbMSwic2FzU2VydmljZSJdLFsxLCJzeXN0''@;'; + put 'put ''ZXh0Il0sWyJ0eXBlIiwiYnV0dG9uIiwxLCJidG4iLCJidG4tcHJpbWFyeSIsMywiY2xpY2siXV0sdGVtcGxhdGU6ZnVuY3Rpb24oaCx2KXsxJmgmJihydCgwLCJjbHItbW9kYWwiLDApLEduKCJjbHJNb2RhbE9wZW5DaGFuZ2UiLGZ1bmN0aW9uKEMpe3JldHVybiB2Lm1vZGFsRW5hYmxlZD1D''@;'; + put 'put ''fSkscnQoMSwiaDMiLDEpLFl0KDIpLHJuKDMsT0JlLDQsMSwicCIsMiksbHQoKSxydCg0LCJkaXYiLDMpLENyKDUsImRpdiIsNCkscm4oNixSQmUsMTMsMywiZGl2Iiw1KSxsdCgpLHJ0KDcsImRpdiIsNikscm4oOCxCQmUsMiwwLCJidXR0b24iLDcpLHJuKDksUEJlLDIsMCwiYnV0dG9uIiw3''@;'; + put 'put ''KSxybigxMCxGQmUsMiwwLCJidXR0b24iLDcpLHJuKDExLEhCZSwyLDAsImJ1dHRvbiIsNykscm4oMTIsTkJlLDIsMCwiYnV0dG9uIiw3KSxsdCgpKCkpLDImaCYmKFR0KCJjbHJNb2RhbE9wZW4iLHYubW9kYWxFbmFibGVkKSgiY2xyTW9kYWxTaXplIiwieGwiKSgiY2xyTW9kYWxDbG9zYWJs''@;'; + put 'put ''ZSIsIXYuZm9yY2VSZWxvYWQpLHV0KDIpLEppKCIgIix2LmRhdGEubW9kYWxUaXRsZSwiICIpLHV0KDEpLFR0KCJuZ0lmIix2LmRhdGEuc2FzU2VydmljZSYmdi5kYXRhLnNhc1NlcnZpY2UubGVuZ3RoPjApLHV0KDIpLFR0KCJpbm5lckhUTUwiLHYuZGF0YS5tZXNzYWdlLFU4KSx1dCgxKSxU''@;'; + put 'put ''dCgibmdJZiIsbnVsbCE9PXYuZGF0YS5kZXRhaWxzKSx1dCgyKSxUdCgibmdJZiIsdi5zaG93Q29uZmlndXJhdG9yQnV0dG9uKHYuZGF0YS5zYXNTZXJ2aWNlKSksdXQoMSksVHQoIm5nSWYiLG51bGwhPT12LmRhdGEuZGV0YWlscyksdXQoMSksVHQoIm5nSWYiLChudWxsPT12LmRhdGEuZGV0''@;'; + put 'put ''YWlscz9udWxsOnYuZGF0YS5kZXRhaWxzLkxPRykmJihudWxsPT12LmRhdGEuZGV0YWlsc3x8bnVsbD09di5kYXRhLmRldGFpbHMuTE9HP251bGw6di5kYXRhLmRldGFpbHMuTE9HLnRyaW0oKSkubGVuZ3RoPjApLHV0KDEpLFR0KCJuZ0lmIiwhdi5mb3JjZVJlbG9hZCksdXQoMSksVHQoIm5n''@;'; + put 'put ''SWYiLHYuZm9yY2VSZWxvYWQpKX0sZGVwZW5kZW5jaWVzOltObyxvZCxhZF0sc3R5bGVzOlsiLmNsci1hYm9ydC1tb2RhbFtfbmdjb250ZW50LSVDT01QJV0gICAgIC5tb2RhbC10aXRsZS13cmFwcGVye3dpZHRoOjEwMCV9LmNsci1hYm9ydC1tb2RhbFtfbmdjb250ZW50LSVDT01QJV0gICAg''@;'; + put 'put ''IC5tb2RhbHt6LWluZGV4OjIwNTB9Lm1vZGFsLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX0uc2FzU2VydmljZVtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7dG9wOjBweDtyaWdodDoxMHB4O21hcmdpbjowfS5tb2RhbC1mb290ZXJbX25n''@;'; + put 'put ''Y29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlO2JvcmRlci10b3A6MXB4IHNvbGlkICNkY2RjZGN9LnN5c3RleHRbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OmF1dG87bWFyZ2luLXRvcDoyMHB4O3BhZGRpbmc6MTBweCAwO2JvcmRlci10b3A6MXB4IHNvbGlkICNkY2RjZGN9''@;'; + put 'put ''LnN5c3RleHRbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDowO3dvcmQtd3JhcDpicmVhay13b3JkfSJdfSksZH0pKCk7ZnVuY3Rpb24gakJlKGQsZyl7MSZkJiYoRjAoMCksWXQoMSwiIFRoaXMgdmVyc2lvbiBpcyBsaW1pdGVkIHRvICIpLEgw''@;'; + put 'put ''KCkpfWZ1bmN0aW9uIFpCZShkLGcpe2lmKDEmZCYmKEYwKDApLFl0KDEpLEgwKCkpLDImZCl7Y29uc3QgaD1KdCgzKTt1dCgxKSxGaCgiICIsaC5kZW1vTGltaXRzLnJvd3NfYWxsb3dlZCwiIHJvdyIsMT09PWguZGVtb0xpbWl0cy5yb3dzX2FsbG93ZWQ/IiI6InMiLCIgb24gYWxsIHRhYmxl''@;'; + put 'put ''IHZpZXdzICIpfX1mdW5jdGlvbiB6QmUoZCxnKXtpZigxJmQmJihGMCgwKSxZdCgxKSxIMCgpKSwyJmQpe2NvbnN0IGg9SnQoMyk7dXQoMSksa2YoIiIsaC5kZW1vTGltaXRzLnJvd3NfYWxsb3dlZD8iYW5kIjoiIiwiICIsaC5kZW1vTGltaXRzLnVzZXJzX2FsbG93ZWQsIiB1c2VyIiwxPT09''@;'; + put 'put ''aC5kZW1vTGltaXRzLnVzZXJzX2FsbG93ZWQ/IiI6InMiLCIiKX19ZnVuY3Rpb24gR0JlKGQsZyl7aWYoMSZkJiYocnQoMCwiZGl2IiwyMCkoMSwiZGl2IiwyMSkoMiwiZGl2IiwyMikoMywiZGl2IiwyMyksQ3IoNCwiY2xyLWljb24iLDI0KSxsdCgpLHJ0KDUsImRpdiIsMjUpLFl0KDYsIiBE''@;'; + put 'put ''ZW1vIFZlcnNpb24gb2YgRGF0YSBDb250cm9sbGVyIC0gZm9yIGV2YWx1YXRpb24gdXNlIG9ubHkuICIpLHJuKDcsakJlLDIsMCwibmctY29udGFpbmVyIiwxKSxybig4LFpCZSwyLDIsIm5nLWNvbnRhaW5lciIsMSkscm4oOSx6QmUsMiwzLCJuZy1jb250YWluZXIiLDEpLGx0KCkoKSgpLHJ0''@;'; + put 'put ''KDEwLCJhIiwyNiksWXQoMTEsIlVwZGF0ZSBMaWNlbmNlIEtleSIpLGx0KCkoKSksMiZkKXtjb25zdCBoPUp0KDIpO3V0KDcpLFR0KCJuZ0lmIixoLmRlbW9MaW1pdHMucm93c19hbGxvd2VkfHxoLmRlbW9MaW1pdHMudXNlcnNfYWxsb3dlZCksdXQoMSksVHQoIm5nSWYiLGguZGVtb0xpbWl0''@;'; + put 'put ''cy5yb3dzX2FsbG93ZWQpLHV0KDEpLFR0KCJuZ0lmIixoLmRlbW9MaW1pdHMudXNlcnNfYWxsb3dlZCl9fWZ1bmN0aW9uIFdCZShkLGcpe2lmKDEmZCYmKHJ0KDAsImRpdiIsMjcpKDEsImRpdiIsMjEpKDIsImRpdiIsMjIpKDMsImRpdiIsMjMpLENyKDQsImNsci1pY29uIiwyNCksbHQoKSxy''@;'; + put 'put ''dCg1LCJkaXYiLDI1KSxZdCg2KSxydCg3LCJhIiwyOCksWXQoOCwic3VwcG9ydEBkYXRhY29udHJvbGxlci5pbyIpLGx0KCksWXQoOSksbHQoKSgpKCkscnQoMTAsImEiLDI2KSxZdCgxMSwiVXBkYXRlIExpY2VuY2UgS2V5IiksbHQoKSgpKSwyJmQpe2NvbnN0IGg9SnQoMik7dXQoNiksSmko''@;'; + put 'put ''IiBUaGlzIGxpY2Vuc2Uga2V5IHdpbGwgZXhwaXJlIGluICIsaC5saWNlbnNlRXhwaXJpbmdEYXlzLCIgZGF5cy4gUGxlYXNlIGNvbnRhY3QgIiksdXQoMyksSmkoIiBvciB5b3VyIHJlc2VsbGVyIHRvIGFycmFuZ2UgYWRkaXRpb25hbCBsaWNlbmNlIGZvciBzaXRlIGlkICIsaC5zeXNzaXRl''@;'; + put 'put ''LmdldFZhbHVlKCksIi4gIil9fWZ1bmN0aW9uIFlCZShkLGcpezEmZCYmKHJ0KDAsImEiLDI2KSxZdCgxLCJVcGRhdGUgTGljZW5jZSBLZXkiKSxsdCgpKX1mdW5jdGlvbiBVQmUoZCxnKXtpZigxJmQmJihydCgwLCJkaXYiLDI3KSgxLCJkaXYiLDIxKSgyLCJkaXYiLDIyKSgzLCJkaXYiLDIz''@;'; + put 'put ''KSxDcig0LCJjbHItaWNvbiIsMjQpLGx0KCkscnQoNSwiZGl2IiwyNSksWXQoNiwiIFRoZSByZWdpc3RlcmVkIG51bWJlciBvZiB1c2VycyBleGNlZWRzIHRoZSBsaW1pdCBzcGVjaWZpZWQgZm9yIHlvdXIgbGljZW5zZS4gUGxlYXNlIGNvbnRhY3QgIikscnQoNywiYSIsMjgpLFl0KDgsInN1''@;'; + put 'put ''cHBvcnRAZGF0YWNvbnRyb2xsZXIuaW8iKSxsdCgpLFl0KDkpLGx0KCkoKSgpLHJuKDEwLFlCZSwyLDAsImEiLDI5KSxsdCgpKSwyJmQpe2NvbnN0IGg9SnQoMik7dXQoOSksSmkoIiBvciB5b3VyIHJlc2VsbGVyIHRvIGFycmFuZ2UgYWRkaXRpb25hbCBsaWNlbmNlIGZvciBzaXRlIGlkICIs''@;'; + put 'put ''aC5zeXNzaXRlLmdldFZhbHVlKCksIi4gIiksdXQoMSksVHQoIm5nSWYiLCFoLmxpY2Vuc2VFeHBpcmluZ0RheXMpfX1mdW5jdGlvbiBRQmUoZCxnKXtpZigxJmQmJihGMCgwKSxybigxLEdCZSwxMiwzLCJkaXYiLDE4KSxybigyLFdCZSwxMiwyLCJkaXYiLDE5KSxybigzLFVCZSwxMSwyLCJk''@;'; + put 'put ''aXYiLDE5KSxIMCgpKSwyJmQpe2NvbnN0IGg9SnQoKTt1dCgxKSxUdCgibmdJZiIsaC5kZW1vQmFubmVyJiYhaC5saWNlbnNlRXhwaXJpbmdEYXlzKSx1dCgxKSxUdCgibmdJZiIsaC5saWNlbnNlRXhwaXJpbmdEYXlzKSx1dCgxKSxUdCgibmdJZiIsaC5hcHBPdmVyQ2FwYWNpdHkpfX1mdW5j''@;'; + put 'put ''dGlvbiBKQmUoZCxnKXtpZigxJmQpe2NvbnN0IGg9YmkoKTtydCgwLCJidXR0b24iLDMwKSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIGl0KGgpLGEoSnQoKS50b2dnbGVTaWRlYmFyKCkpfSksQ3IoMSwic3BhbiIpLGx0KCl9fWNvbnN0IFhCZT1mdW5jdGlvbigpe3JldHVyblsiLyJd''@;'; + put 'put ''fTtmdW5jdGlvbiBLQmUoZCxnKXsxJmQmJihydCgwLCJhIiwzMSksQ3IoMSwic3BhbiIsMzIpLGx0KCkpLDImZCYmVHQoInJvdXRlckxpbmsiLFZzKDEsWEJlKSl9ZnVuY3Rpb24gJEJlKGQsZyl7MSZkJiYocnQoMCwiYSIpLENyKDEsInNwYW4iLDMzKSxsdCgpKX1jb25zdCBxQmU9ZnVuY3Rp''@;'; + put 'put ''b24oKXtyZXR1cm5bIi92aWV3Il19LGVQZT1mdW5jdGlvbigpe3JldHVyblsiL2hvbWUiXX0sdFBlPWZ1bmN0aW9uKCl7cmV0dXJuWyIvc3VibWl0dGVkIl19LG5QZT1mdW5jdGlvbigpe3JldHVyblsiL2FwcHJvdmUiXX0sclBlPWZ1bmN0aW9uKCl7cmV0dXJuWyIvaGlzdG9yeSJdfTtmdW5j''@;'; + put 'put ''dGlvbiBpUGUoZCxnKXtpZigxJmQmJihydCgwLCJkaXYiLDM0KSgxLCJhIiwzNSksWXQoMiwiVklFVyIpLGx0KCkscnQoMywiYSIsMzYpLFl0KDQsIkVESVQiKSxsdCgpLHJ0KDUsImEiLDM1KSxZdCg2LCJTVUJNSVRURUQiKSxsdCgpLHJ0KDcsImEiLDM1KSxZdCg4LCJBUFBST1ZFIiksbHQo''@;'; + put 'put ''KSxydCg5LCJhIiwzNSksWXQoMTAsIkhJU1RPUlkiKSxsdCgpKCkpLDImZCl7Y29uc3QgaD1KdCgpO3V0KDEpLFR0KCJyb3V0ZXJMaW5rIixWcyg3LHFCZSkpLHV0KDIpLEZpKCJhY3RpdmUiLGgucm91dGVyLnVybC5pbmNsdWRlcygiZWRpdG9yIil8fGgucm91dGVyLnVybC5pbmNsdWRlcygi''@;'; + put 'put ''ZWRpdC1yZWNvcmQiKXx8aC5yb3V0ZXIudXJsLmluY2x1ZGVzKCJob21lIikpLFR0KCJyb3V0ZXJMaW5rIixWcyg4LGVQZSkpLHV0KDIpLFR0KCJyb3V0ZXJMaW5rIixWcyg5LHRQZSkpLHV0KDIpLFR0KCJyb3V0ZXJMaW5rIixWcygxMCxuUGUpKSx1dCgyKSxUdCgicm91dGVyTGluayIsVnMo''@;'; + put 'put ''MTEsclBlKSl9fWZ1bmN0aW9uIG9QZShkLGcpezEmZCYmQ3IoMCwiYXBwLWFsZXJ0cyIpfWZ1bmN0aW9uIGFQZShkLGcpezEmZCYmQ3IoMCwicm91dGVyLW91dGxldCIpfWZ1bmN0aW9uIGxQZShkLGcpezEmZCYmQ3IoMCwiYXBwLWFsZXJ0cyIpfWZ1bmN0aW9uIHNQZShkLGcpe2lmKDEmZCl7''@;'; + put 'put ''Y29uc3QgaD1iaSgpO3J0KDAsImFwcC1pbmZvLW1vZGFsIiwzNyksR24oIm9uQ29uZmlybU1vZGFsQ2xpY2siLGZ1bmN0aW9uKCl7Y29uc3QgQz1pdChoKS4kaW1wbGljaXQ7cmV0dXJuIGEoSnQoKS5jbG9zZUFib3J0TW9kYWwoQy5pZCkpfSksbHQoKX1pZigyJmQpe2NvbnN0IGg9Zy4kaW1w''@;'; + put 'put ''bGljaXQsdj1KdCgpO1R0KCJkYXRhIixoKSgiZm9yY2VSZWxvYWQiLCF2LnN0YXJ0dXBEYXRhTG9hZGVkJiYxPT09di5zYXNqc0Fib3J0cy5sZW5ndGgpfX1mdW5jdGlvbiB1UGUoZCxnKXsxJmQmJihydCgwLCJkaXYiLDQxKSxDcigxLCJkaXYiLDQyKSgyLCJkaXYiLDQzKSgzLCJkaXYiLDQ0''@;'; + put 'put ''KSxsdCgpKX1mdW5jdGlvbiBjUGUoZCxnKXtpZigxJmQmJihydCgwLCJkaXYiLDM4KSxDcigxLCJpbWciLDM5KSxybigyLHVQZSw0LDAsImRpdiIsNDApLGx0KCkpLDImZCl7Y29uc3QgaD1KdCgpO3V0KDIpLFR0KCJuZ0lmIixudWxsPT09aC5hcHBBY3RpdmUpfX1sZXQgZlBlPSgoKT0+e2Ns''@;'; + put 'put ''YXNzIGR7Y29uc3RydWN0b3IoaCx2LHksQyxJLGosdWUsX2Upe3RoaXMuYXBwU2VydmljZT1oLHRoaXMucm91dGVyPXYsdGhpcy5yb3V0ZT15LHRoaXMubG9jYXRpb249Qyx0aGlzLmV2ZW50U2VydmljZT1JLHRoaXMuYXBwU3RvcmVTZXJ2aWNlPWosdGhpcy5jZHI9dWUsdGhpcy5lbGVtZW50''@;'; + put 'put ''UmVmPV9lLHRoaXMubGljZW5zZUV4cGlyaW5nRGF5cz1udWxsLHRoaXMuc2FzanNBYm9ydHM9W10sdGhpcy5lZGl0b3JBY3RpdmU9ITEsdGhpcy5hcHByb3ZlQWN0aXZlPSExLHRoaXMuZGVtb0Jhbm5lcj10aGlzLmFwcFNlcnZpY2UuaXNBcHBEZW1vLnZhbHVlLHRoaXMuYXBwT3ZlckNhcGFj''@;'; + put 'put ''aXR5PSExLHRoaXMuYXBwQWN0aXZlPW51bGwsdGhpcy5yZXF1ZXN0c01vZGFsPSExLHRoaXMuc2hvd1JlZ2lzdHJhdGlvbj0hMCx0aGlzLnN0YXJ0dXBEYXRhTG9hZGVkPSExLHRoaXMuZGVtb0xpbWl0Tm90aWNlPSExLHRoaXMuc3lzc2l0ZT10aGlzLmFwcFNlcnZpY2Uuc3lzc2l0ZSx0aGlz''@;'; + put 'put ''LmRlbW9MaW1pdHM9e30sdGhpcy5wYXJzZURjQWRhcHRlclNldHRpbmdzKCksd2luZG93LmFwcGluZm89KCk9Pntjb25zdCBCZT10aGlzLmFwcFNlcnZpY2UuZ2V0TGljZW5zZUtleURhdGEoKTtpZihCZSl7Y29uc3QgTmU9VGwoQmUudmFsaWRfdW50aWwsIllZWVktTU0tREQiKSxLZT1UbCgp''@;'; + put 'put ''LGR0PU5lLmRpZmYoS2UsImRheXMiKTtCZS52YWxpZF91bnRpbCs9YCAoJHtkdH0gZGF5cyByZW1haW5pbmcpYCxpc05hTihkdCkmJihCZS52YWxpZF91bnRpbD0iVW5saW1pdGVkIil9Y29uc29sZS50YWJsZShPYmplY3QuYXNzaWduKHsiQWRhcHRlciB2ZXJzaW9uIjoiMy4xMC4xNCIsIkFw''@;'; + put 'put ''cCB2ZXJzaW9uIjoidjUuMC4wIi5yZXBsYWNlKCJ2IiwiIiksIkJ1aWxkIHRpbWVzdGFtcCI6VGwocGFyc2VJbnQoIjE2NjM2NzU0NzU1NTAiKSkuZm9ybWF0KCJERC1NTU0tWVlZWSBISDpNTSIpLCIuLi4iOiIuLi4ifSx0aGlzLmFwcFNlcnZpY2UuZ2V0TGljZW5zZUtleURhdGEoKSkpfSx0''@;'; + put 'put ''aGlzLnN1YnNjcmliZVRvTGljZW5zZUV2ZW50cygpLHRoaXMuY29tbWl0VmVyPSJ2NS4wLjAiLnJlcGxhY2UoInYiLCIiKSsiLmdkNDA4MzViOSIsdi5ldmVudHMuc3Vic2NyaWJlKEJlPT57aWYodGhpcy5yb3V0ZVVybD10aGlzLnJvdXRlci51cmwsdm9pZCAwIT09dGhpcy5yb3V0ZVVybCYm''@;'; + put 'put ''dGhpcy5yb3V0ZVVybC5sZW5ndGg+NCl7bGV0IE5lPXRoaXMucm91dGVVcmwuc3BsaXQoIi8iKVsxXTsiZWRpdG9yIj09PU5lPyh0aGlzLmVyclRvcD0hMCx0aGlzLmVkaXRvckFjdGl2ZT0hMCx0aGlzLmFwcHJvdmVBY3RpdmU9ITEpOiJob21lIj09PU5lPyh0aGlzLmVyclRvcD0hMSx0aGlz''@;'; + put 'put ''LmVkaXRvckFjdGl2ZT0hMCx0aGlzLmFwcHJvdmVBY3RpdmU9ITEpOih0aGlzLmVyclRvcD0hMCx0aGlzLmVkaXRvckFjdGl2ZT0hMSksbmkucm9vdFBhcmFtPU5lfXZvaWQgMCE9PXRoaXMucm91dGVVcmwmJnRoaXMucm91dGVVcmwubGVuZ3RoPjYmJih0aGlzLmFwcHJvdmVBY3RpdmU9ISF0''@;'; + put 'put ''aGlzLnJvdXRlVXJsLmluY2x1ZGVzKCJhcHByb3ZlRGV0Iil8fCEhdGhpcy5yb3V0ZVVybC5pbmNsdWRlcygidG9hcHByb3ZlIikpfSksdGhpcy5zdWJzY3JpYmVUb1Nob3dBYm9ydE1vZGFsKCksdGhpcy5zdWJzY3JpYmVUb1JlcXVlc3RzTW9kYWwoKSx0aGlzLnN1YnNjcmliZVRvU3RhcnR1''@;'; + put 'put ''cERhdGEoKSx0aGlzLnN1YnNjcmliZVRvQXBwQWN0aXZlKCksdGhpcy5zdWJzY3JpYmVUb0RlbW9MaW1pdE1vZGFsKCksd2luZG93LmZyYW1lRWxlbWVudCYmKHdpbmRvdy5mcmFtZUVsZW1lbnQuc2V0QXR0cmlidXRlKCJzdHlsZSIsImhlaWdodDoxMDAlO3dpZHRoOjEwMCU7cG9zaXRpb246''@;'; + put 'put ''YWJzb2x1dGUiKSx3aW5kb3cuZnJhbWVFbGVtZW50LnNldEF0dHJpYnV0ZSgiYWxsb3dmdWxsc2NyZWVuIiwiIiksd2luZG93LmZyYW1lRWxlbWVudC5zZXRBdHRyaWJ1dGUoImZyYW1lYm9yZGVyIiwiMCIpLHdpbmRvdy5mcmFtZUVsZW1lbnQuc2V0QXR0cmlidXRlKCJtYXJnaW5oZWlnaHQi''@;'; + put 'put ''LCIwIiksd2luZG93LmZyYW1lRWxlbWVudC5zZXRBdHRyaWJ1dGUoIm1hcmdpbndpZHRoIiwiMCIpLHdpbmRvdy5mcmFtZUVsZW1lbnQuc2V0QXR0cmlidXRlKCJzY3JvbGxpbmciLCJhdXRvIiksd2luZG93LmZvY3VzKCkpfXBhcnNlRGNBZGFwdGVyU2V0dGluZ3MoKXtjb25zdCBoPXk9PnRo''@;'; + put 'put ''aXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSh5KSx2PXtzZXJ2ZXJVcmw6aCgic2VydmVyVXJsIiksYXBwTG9jOmgoImFwcExvYyIpLHNlcnZlclR5cGU6aCgic2VydmVyVHlwZSIpLGxvZ2luTWVjaGFuaXNtOmgoImxvZ2luTWVjaGFuaXNtIiksYWRtaW5Hcm91cDpo''@;'; + put 'put ''KCJhZG1pbkdyb3VwIiksZGNQYXRoOmgoImRjUGF0aCIpLGRlYnVnOiJ0cnVlIj09PWgoImRlYnVnIiksdXNlQ29tcHV0ZUFwaToidHJ1ZSI9PT1oKCJ1c2VDb21wdXRlQXBpIiksY29udGV4dE5hbWU6aCgiY29udGV4dE5hbWUiKSxob3RMaWNlbmNlS2V5OmgoImhvdExpY2VuY2VLZXkiKX07''@;'; + put 'put ''dGhpcy5kY0FkYXB0ZXJTZXR0aW5ncz12LHRoaXMuYXBwU3RvcmVTZXJ2aWNlLnNldERjQWRhcHRlclNldHRpbmdzKHYpLHRoaXMuYXBwU2VydmljZS5zYXNTZXJ2aWNlSW5pdCgpfXN1YnNjcmliZVRvRGVtb0xpbWl0TW9kYWwoKXt0aGlzLmV2ZW50U2VydmljZS5vbkRlbW9MaW1pdE1vZGFs''@;'; + put 'put ''U2hvdy5zdWJzY3JpYmUoKCk9Pnt0aGlzLmRlbW9MaW1pdE5vdGljZT0hMH0pfXN1YnNjcmliZVRvTGljZW5zZUV2ZW50cygpe3RoaXMuYXBwU2VydmljZS5pc0FwcERlbW8uc3Vic2NyaWJlKGg9Pnt0aGlzLmRlbW9CYW5uZXI9aH0pLHRoaXMuYXBwU2VydmljZS5saWNlbnNlRXhwaXJlc0lu''@;'; + put 'put ''RGF5cy5zdWJzY3JpYmUoaD0+e2gmJmg8PTE0JiYodGhpcy5saWNlbnNlRXhwaXJpbmdEYXlzPWgpfSksdGhpcy5hcHBTZXJ2aWNlLmlzQXBwT3ZlckNhcGFjaXR5LnN1YnNjcmliZShoPT57dGhpcy5hcHBPdmVyQ2FwYWNpdHk9aH0pfXN1YnNjcmliZVRvQXBwQWN0aXZlKCl7dGhpcy5hcHBT''@;'; + put 'put ''ZXJ2aWNlLmlzQXBwQWN0aXZhdGVkLnN1YnNjcmliZShoPT57dGhpcy5hcHBBY3RpdmU9aCx0aGlzLmRlbW9MaW1pdHM9dGhpcy5hcHBTZXJ2aWNlLmRlbW9MaW1pdHN9KX1zdWJzY3JpYmVUb1Nob3dBYm9ydE1vZGFsKCl7dGhpcy5ldmVudFNlcnZpY2Uub25TaG93QWJvcnRNb2RhbC5zdWJz''@;'; + put 'put ''Y3JpYmUoaD0+e2guaWQ9dGhpcy5zYXNqc0Fib3J0cy5sZW5ndGgrMSx0aGlzLnNhc2pzQWJvcnRzLnB1c2goaCksdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpfSl9c3Vic2NyaWJlVG9TdGFydHVwRGF0YSgpe3RoaXMuZXZlbnRTZXJ2aWNlLm9uU3RhcnR1cERhdGFMb2FkZWQuc3Vic2NyaWJl''@;'; + put 'put ''KCgpPT57dGhpcy5zdGFydHVwRGF0YUxvYWRlZD0hMH0pfXN1YnNjcmliZVRvUmVxdWVzdHNNb2RhbCgpe3RoaXMuZXZlbnRTZXJ2aWNlLm9uUmVxdWVzdHNNb2RhbE9wZW4uc3Vic2NyaWJlKGg9Pnt0aGlzLnJlcXVlc3RzTW9kYWw9ITB9KX1jbG9zZUFib3J0TW9kYWwoaCl7bGV0IHY9dGhp''@;'; + put 'put ''cy5zYXNqc0Fib3J0cy5maW5kSW5kZXgoeT0+eS5pZD09PWgpO3RoaXMuc2FzanNBYm9ydHMuc3BsaWNlKHYsMSl9dG9nZ2xlU2lkZWJhcigpe3RoaXMuZXZlbnRTZXJ2aWNlLnRvZ2dsZVNpZGViYXIoKX1pc01haW5Sb3V0ZShoKXtyZXR1cm4gdGhpcy5yb3V0ZXIudXJsLmluY2x1ZGVzKGgp''@;'; + put 'put ''fW9wZW5MaWNlbmNpbmdQYWdlKCl7dGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCgiL2xpY2Vuc2luZy91cGRhdGUiKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoS3QoUjcpLEt0KFpsKSxLdChQdSksS3QoVjYpLEt0KG11KSxLdChzayksS3QoZDEp''@;'; + put 'put ''LEt0KGJvKSl9LGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQsc2VsZWN0b3JzOltbIm15LWFwcCJdXSxkZWNsczoyOSx2YXJzOjE1LGNvbnN0czpbWzEsIm1haW4tY29udGFpbmVyIl0sWzQsIm5nSWYiXSxbMSwiYXBwLWhlYWRlciJdLFsiY2xhc3MiLCJoZWFkZXItaGFtYnVyZ2VyLXRyaWdnZXIi''@;'; + put 'put ''LCJ0eXBlIiwiYnV0dG9uIiwzLCJjbGljayIsNCwibmdJZiJdLFsxLCJicmFuZGluZyJdLFsiaHJlZiIsIiMiLCJjbGFzcyIsIm5hdi1saW5rIiwzLCJyb3V0ZXJMaW5rIiw0LCJuZ0lmIl0sWyJjbGFzcyIsImhlYWRlci1uYXYiLDQsIm5nSWYiXSxbMSwiaGVhZGVyLWFjdGlvbnMiXSxbMSwi''@;'; + put 'put ''bmF2LXRleHQiXSxbMSwiZHJvcGRvd24iXSxbMywib3BlbmVkIiwib3BlbmVkQ2hhbmdlIl0sWzMsImRhdGEiLCJmb3JjZVJlbG9hZCIsIm9uQ29uZmlybU1vZGFsQ2xpY2siLDQsIm5nRm9yIiwibmdGb3JPZiJdLFsiYXBwRHJhZ05kcm9wIiwiIiwxLCJwb3NpdGlvbi1yZWxhdGl2ZSIsMywi''@;'; + put 'put ''Y2xyTW9kYWxPcGVuIiwiY2xyTW9kYWxDbG9zYWJsZSIsImNsck1vZGFsU2l6ZSIsImNsck1vZGFsT3BlbkNoYW5nZSJdLFsxLCJtb2RhbC10aXRsZSJdLFsic2l6ZSIsIjIwIiwic2hhcGUiLCJsb2NrIl0sWzEsIm1vZGFsLWJvZHkiXSxbImhyZWYiLCJtYWlsdG86c3VwcG9ydEBkYXRhY29u''@;'; + put 'put ''dHJvbGxlci5pbyJdLFsiY2xhc3MiLCJhcHAtbG9hZGluZyIsNCwibmdJZiJdLFsiY2xhc3MiLCJhbGVydCBhbGVydC1hcHAtbGV2ZWwgYWxlcnQtd2FybmluZyIsImlkIiwiZGVtby1iYW5uZXIiLCJyb2xlIiwiYWxlcnQiLDQsIm5nSWYiXSxbImNsYXNzIiwiYWxlcnQgYWxlcnQtYXBwLWxl''@;'; + put 'put ''dmVsIGFsZXJ0LWRhbmdlciIsImlkIiwiZGVtby1iYW5uZXIiLCJyb2xlIiwiYWxlcnQiLDQsIm5nSWYiXSxbImlkIiwiZGVtby1iYW5uZXIiLCJyb2xlIiwiYWxlcnQiLDEsImFsZXJ0IiwiYWxlcnQtYXBwLWxldmVsIiwiYWxlcnQtd2FybmluZyJdLFsxLCJhbGVydC1pdGVtcyJdLFsxLCJh''@;'; + put 'put ''bGVydC1pdGVtIiwic3RhdGljIl0sWzEsImFsZXJ0LWljb24td3JhcHBlciJdLFsic2hhcGUiLCJ3YXJuaW5nLXN0YW5kYXJkIiwxLCJtdC0yIl0sWzEsImFsZXJ0LXRleHQiXSxbInJvdXRlckxpbmsiLCIvbGljZW5zaW5nL3VwZGF0ZSIsMSwidXBkYXRlLWtleSJdLFsiaWQiLCJkZW1vLWJh''@;'; + put 'put ''bm5lciIsInJvbGUiLCJhbGVydCIsMSwiYWxlcnQiLCJhbGVydC1hcHAtbGV2ZWwiLCJhbGVydC1kYW5nZXIiXSxbImhyZWYiLCJtYWlsdG86IHN1cHBvcnRAZGF0YWNvbnRyb2xsZXIuaW8iLDEsImNvbG9yLXdoaXRlIl0sWyJyb3V0ZXJMaW5rIiwiL2xpY2Vuc2luZy91cGRhdGUiLCJjbGFz''@;'; + put 'put ''cyIsInVwZGF0ZS1rZXkiLDQsIm5nSWYiXSxbInR5cGUiLCJidXR0b24iLDEsImhlYWRlci1oYW1idXJnZXItdHJpZ2dlciIsMywiY2xpY2siXSxbImhyZWYiLCIjIiwxLCJuYXYtbGluayIsMywicm91dGVyTGluayJdLFsxLCJjbHItaWNvbiIsImhlYWRlci1sb2dvIl0sWzEsImNsci1pY29u''@;'; + put 'put ''IiwiaGVhZGVyLWxvZ28iLCJtbC0xMCJdLFsxLCJoZWFkZXItbmF2Il0sWyJyb3V0ZXJMaW5rQWN0aXZlIiwiYWN0aXZlIiwxLCJuYXYtbGluayIsIm5hdi10ZXh0IiwzLCJyb3V0ZXJMaW5rIl0sWzEsIm5hdi1saW5rIiwibmF2LXRleHQiLDMsInJvdXRlckxpbmsiXSxbMywiZGF0YSIsImZv''@;'; + put 'put ''cmNlUmVsb2FkIiwib25Db25maXJtTW9kYWxDbGljayJdLFsxLCJhcHAtbG9hZGluZyJdLFsic3JjIiwiL1NBU1N0b3JlZFByb2Nlc3MvP19QUk9HUkFNPXBaS2Q2Rjk1akVDdlJRbE4wTENmZEE9PS93ZWI5L2ltYWdlcy9kYXRhY29udHJvbGxlci1zdmciLDEsImxvYWRpbmctbG9nbyJdLFsi''@;'; + put 'put ''Y2xhc3MiLCJzbGlkZXIiLDQsIm5nSWYiXSxbMSwic2xpZGVyIl0sWzEsImxpbmUiXSxbMSwic3VibGluZSIsImluYyJdLFsxLCJzdWJsaW5lIiwiZGVjIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGgsdil7MSZoJiYocnQoMCwiZGl2IiwwKSxybigxLFFCZSw0LDMsIm5nLWNvbnRhaW5lciIsMSks''@;'; + put 'put ''cnQoMiwiaGVhZGVyIiwyKSxybigzLEpCZSwyLDAsImJ1dHRvbiIsMykscnQoNCwiZGl2Iiw0KSxybig1LEtCZSwyLDIsImEiLDUpLHJuKDYsJEJlLDIsMCwiYSIsMSksbHQoKSxybig3LGlQZSwxMSwxMiwiZGl2Iiw2KSxydCg4LCJkaXYiLDcpKDksImRpdiIsOCksQ3IoMTAsImFwcC1sb2Fk''@;'; + put 'put ''aW5nLWluZGljYXRvciIpLGx0KCkscnQoMTEsImRpdiIsOSksQ3IoMTIsImFwcC11c2VyLW5hdi1kcm9wZG93biIpLGx0KCkoKSgpLHJuKDEzLG9QZSwxLDAsImFwcC1hbGVydHMiLDEpLHJ0KDE0LCJhcHAtcmVxdWVzdHMtbW9kYWwiLDEwKSxHbigib3BlbmVkQ2hhbmdlIixmdW5jdGlvbihD''@;'; + put 'put ''KXtyZXR1cm4gdi5yZXF1ZXN0c01vZGFsPUN9KSxsdCgpLHJuKDE1LGFQZSwxLDAsInJvdXRlci1vdXRsZXQiLDEpLENyKDE2LCJhcHAtbG9naW4iKSxybigxNyxsUGUsMSwwLCJhcHAtYWxlcnRzIiwxKSxybigxOCxzUGUsMSwyLCJhcHAtaW5mby1tb2RhbCIsMTEpLHJ0KDE5LCJjbHItbW9k''@;'; + put 'put ''YWwiLDEyKSxHbigiY2xyTW9kYWxPcGVuQ2hhbmdlIixmdW5jdGlvbihDKXtyZXR1cm4gdi5kZW1vTGltaXROb3RpY2U9Q30pLHJ0KDIwLCJoMyIsMTMpLFl0KDIxLCIgTG9ja2VkIEZlYXR1cmUgIiksQ3IoMjIsImNsci1pY29uIiwxNCksbHQoKSxydCgyMywiZGl2IiwxNSksWXQoMjQsIiBD''@;'; + put 'put ''b250YWN0ICIpLHJ0KDI1LCJhIiwxNiksWXQoMjYsInN1cHBvcnRAZGF0YWNvbnRyb2xsZXIuaW8iKSxsdCgpLFl0KDI3KSxsdCgpKCkoKSxybigyOCxjUGUsMywxLCJkaXYiLDE3KSksMiZoJiYodXQoMSksVHQoIm5nSWYiLCF2LnJvdXRlci51cmwuaW5jbHVkZXMoImxpY2Vuc2luZyIpKSx1''@;'; + put 'put ''dCgyKSxUdCgibmdJZiIsdi5pc01haW5Sb3V0ZSgidmlldyIpfHx2LmlzTWFpblJvdXRlKCJob21lIikmJiF2LnJvdXRlci51cmwuaW5jbHVkZXMoImxpY2Vuc2luZyIpKSx1dCgyKSxUdCgibmdJZiIsIXYucm91dGVyLnVybC5pbmNsdWRlcygiZGVwbG95IikpLHV0KDEpLFR0KCJuZ0lmIix2''@;'; + put 'put ''LnJvdXRlci51cmwuaW5jbHVkZXMoImRlcGxveSIpKSx1dCgxKSxUdCgibmdJZiIsIXYucm91dGVyLnVybC5pbmNsdWRlcygiZGVwbG95IikmJiF2LnJvdXRlci51cmwuaW5jbHVkZXMoImxpY2Vuc2luZyIpKSx1dCg2KSxUdCgibmdJZiIsIXYuZXJyVG9wKSx1dCgxKSxUdCgib3BlbmVkIix2''@;'; + put 'put ''LnJlcXVlc3RzTW9kYWwpLHV0KDEpLFR0KCJuZ0lmIix2LnN0YXJ0dXBEYXRhTG9hZGVkKSx1dCgyKSxUdCgibmdJZiIsdi5lcnJUb3ApLHV0KDEpLFR0KCJuZ0Zvck9mIix2LnNhc2pzQWJvcnRzKSx1dCgxKSxUdCgiY2xyTW9kYWxPcGVuIix2LmRlbW9MaW1pdE5vdGljZSkoImNsck1vZGFs''@;'; + put 'put ''Q2xvc2FibGUiLCEwKSgiY2xyTW9kYWxTaXplIiwibGciKSx1dCg4KSxKaSgiIHdpdGggeW91ciBzaXRlIGlkICgiLHYuc3lzc2l0ZS52YWx1ZSwiKSB0byBhY3RpdmF0ZSEgIiksdXQoMSksVHQoIm5nSWYiLCF2LnN0YXJ0dXBEYXRhTG9hZGVkKSl9LGRlcGVuZGVuY2llczpbRXMsTm8sb3ks''@;'; + put 'put ''djcsbGssSlJlLFhSZSxpQmUsbEJlLGdaLHdsLG9kLGFkLExCZSxWQmVdLHN0eWxlczpbImFwcC1yZXF1ZXN0cy1tb2RhbFtfbmdjb250ZW50LSVDT01QJV17ei1pbmRleDoxMDAwMH1oZWFkZXIuYXBwLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZDojMzE0MzUxIWltcG9y''@;'; + put 'put ''dGFudDtjb2xvcjojZmZmfS5oZWFkZXItaGFtYnVyZ2VyLXRyaWdnZXJbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6YmxvY2s7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtib3JkZXI6MDttYXJnaW4tbGVmdDoxMHB4fS5kZW1vLWV4cGlyZWQtbm90aWNlW19uZ2NvbnRlbnQtJUNPTVAlXXtk''@;'; + put 'put ''aXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7cG9zaXRpb246Zml4ZWQ7bGVmdDowO3RvcDowO2hlaWdodDoxMDB2aCFpbXBvcnRhbnQ7d2lkdGg6MTAwdnchaW1wb3J0YW50O3otaW5kZXg6MTA1O2JhY2tncm91bmQ6cmdiYSgzMywzMywzMywu''@;'; + put 'put ''NSl9LmRlbW8tZXhwaXJlZC1ub3RpY2VbX25nY29udGVudC0lQ09NUCVdICAgLmV4cGlyZWQtZGV0YWlsc1tfbmdjb250ZW50LSVDT01QJV17ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOmNlbnRlcjtwYWRkaW5nOjMwcHg7ei1pbmRleDoxMTA7YmFja2dyb3VuZDojMzE0MzUx''@;'; + put 'put ''fS5kZW1vLWV4cGlyZWQtbm90aWNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5leHBpcmVkLWRldGFpbHNbX25nY29udGVudC0lQ09NUCVdICAgLmV4cGlyZWQtbm90aWNlW19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjojZTBlMGUwO2ZvbnQtc2l6ZToxNnB4fS5kZW1vLWV4cGlyZWQtbm90aWNl''@;'; + put 'put ''W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5leHBpcmVkLWRldGFpbHNbX25nY29udGVudC0lQ09NUCVdICAgLmV4cGlyZWQtbm90aWNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYWlsdG9bX25nY29udGVudC0lQ09NUCVde2NvbG9yOiM4ZGM1M2V9Lm1haW4tY29udGFpbmVyW19uZ2NvbnRlbnQt''@;'; + put 'put ''JUNPTVAlXSAgIC51cGRhdGUta2V5W19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2NvbG9yOiNmZmY7cGFkZGluZzowIDEwcHg7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC4xNDkwMTk2MDc4KX0uYWxlcnQtaWNvbi13cmFwcGVyW19uZ2NvbnRlbnQt''@;'; + put 'put ''JUNPTVAlXXttYXJnaW4tdG9wOjAhaW1wb3J0YW50fS5icmFuZGluZ1tfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1sZWZ0OjA7cGFkZGluZy1yaWdodDo4cHh9Lm5hdi10ZXh0W19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tcmlnaHQ6MjBweH0uc2lkZWJhci10b2dnbGVbX25nY29udGVu''@;'; + put 'put ''dC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtoZWlnaHQ6MTAwJTthbGlnbi1pdGVtczpjZW50ZXI7cGFkZGluZy1sZWZ0OjEwcHh9LnNpZGViYXItdG9nZ2xlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGNsci1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtjdXJzb3I6cG9pbnRlcjt3aWR0aDozMHB4O2hl''@;'; + put 'put ''aWdodDozMHB4fS5jbHItaWNvbi5oZWFkZXItbG9nb1tfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZC1pbWFnZTp1cmwoL1NBU1N0b3JlZFByb2Nlc3MvP19QUk9HUkFNPXBaS2Q2Rjk1akVDdlJRbE4wTENmZEE9PS93ZWI5L2ltYWdlcy9kYXRhY29udHJvbGxlci5jZjE3OWNkODlkMjgw''@;'; + put 'put ''YTU2LXN2Zyk7d2lkdGg6MTYwcHg7aGVpZ2h0OjI1cHh9Lm5hdltfbmdjb250ZW50LSVDT01QJV0gICAubmF2LWxpbmtbX25nY29udGVudC0lQ09NUCVde2NvbG9yOiNmYWZhZmE7b3BhY2l0eTouOTtsaW5lLWhlaWdodDoxLjQ1cmVtfS5uYXZbX25nY29udGVudC0lQ09NUCVdICAgLm5hdi1s''@;'; + put 'put ''aW5rW19uZ2NvbnRlbnQtJUNPTVAlXTpob3Zlcntib3gtc2hhZG93Omluc2V0IDAgLTNweCAwIHRyYW5zcGFyZW50O3RyYW5zaXRpb246Ym94LXNoYWRvdyAuMnMgZWFzZS1pbn0ubmF2W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5uYXYtbGlua1tfbmdjb250ZW50LSVDT01QJV06aG92ZXJ7Y29s''@;'; + put 'put ''b3I6I2ZhZmFmYTtvcGFjaXR5OjF9Lm5hdltfbmdjb250ZW50LSVDT01QJV0gICAubmF2LWxpbmsuYWN0aXZlW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kOiM2MTcxN0Q7b3BhY2l0eToxO2JveC1zaGFkb3c6aW5zZXQgMCAtM3B4IHRyYW5zcGFyZW50fS5uYXZbX25nY29udGVudC0l''@;'; + put 'put ''Q09NUCVdICAgLm5hdi1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tcmlnaHQ6MXJlbX0ubm90Zltfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZDojMTZhNTdhO2NvbG9yOiNmZmZjZmM7Zm9udC1zaXplOjEycHh9LmJ0bi5idG4tc3VjY2Vzc1tfbmdjb250ZW50LSVDT01QJV17''@;'; + put 'put ''Ym9yZGVyLWNvbG9yOiM2MmE0MjA7YmFja2dyb3VuZC1jb2xvcjojMTZhNTdhIWltcG9ydGFudDtjb2xvcjojZmZmfS5idG4uYnRuLXN1Y2Nlc3NbX25nY29udGVudC0lQ09NUCVdOmhvdmVye2JhY2tncm91bmQtY29sb3I6IzJhZGQzOTtjb2xvcjojZmZmfS50b2dnbGUtc3dpdGNoW19uZ2Nv''@;'; + put 'put ''bnRlbnQtJUNPTVAlXSAgIGlucHV0W3R5cGU9Y2hlY2tib3hdW19uZ2NvbnRlbnQtJUNPTVAlXTpjaGVja2VkICsgbGFiZWxbX25nY29udGVudC0lQ09NUCVdOmJlZm9yZXtib3JkZXItY29sb3I6IzYxNzE3ZDtiYWNrZ3JvdW5kLWNvbG9yOiM2MTcxN2Q7dHJhbnNpdGlvbjouMTVzIGVhc2Ut''@;'; + put 'put ''aW47dHJhbnNpdGlvbi1wcm9wZXJ0eTpib3JkZXItY29sb3IsYmFja2dyb3VuZC1jb2xvcn0ubWFpbi1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde21pbi1oZWlnaHQ6MTAwdmghaW1wb3J0YW50fS5tYWluLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0gICAuY29udGVudC1jb250''@;'; + put 'put ''YWluZXJbX25nY29udGVudC0lQ09NUCVdICAgLmNvbnRlbnQtYXJlYVtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzowcmVtIDFyZW0gMXJlbX0uY29udGVudC1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde3otaW5kZXg6MCFpbXBvcnRhbnR9Lm5hdkJhclJlc3BbX25nY29udGVudC0l''@;'; + put 'put ''Q09NUCVde2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2JhY2tncm91bmQ6IzQ5NUE2Nztjb2xvcjojZmZmfUBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KXsubmF2QmFyUmVzcFtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O2p1c3RpZnktY29u''@;'; + put 'put ''dGVudDpmbGV4LXN0YXJ0O2JhY2tncm91bmQ6IzQ5NUE2Nztjb2xvcjojZmZmfS5tYWluLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0gICAuc3ViLW5hdi5jbHItbmF2LWxldmVsLTFbX25nY29udGVudC0lQ09NUCVdICAgLm5hdltfbmdjb250ZW50LSVDT01QJV0gICAubmF2LWxpbmtb''@;'; + put 'put ''X25nY29udGVudC0lQ09NUCVdLCAubWFpbi1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdICAgLnN1Yi1uYXYuY2xyLW5hdi1sZXZlbC0yW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5uYXZbX25nY29udGVudC0lQ09NUCVdICAgLm5hdi1saW5rW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1haW4t''@;'; + put 'put ''Y29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5zdWJuYXYuY2xyLW5hdi1sZXZlbC0xW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5uYXZbX25nY29udGVudC0lQ09NUCVdICAgLm5hdi1saW5rW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1haW4tY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAl''@;'; + put 'put ''XSAgIC5zdWJuYXYuY2xyLW5hdi1sZXZlbC0yW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5uYXZbX25nY29udGVudC0lQ09NUCVdICAgLm5hdi1saW5rW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjAgLjVyZW0gMCAxcmVtO3dpZHRoOjEwMCU7bWF4LXdpZHRoOjEwMCU7b3ZlcmZsb3c6aGlk''@;'; + put 'put ''ZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7Ym9yZGVyLXJhZGl1czouMTI1cmVtIDAgMCAuMTI1cmVtO2NvbG9yOiM5NWM4NGJ9LmNhcmQtYmxvY2tbX25nY29udGVudC0lQ09NUCVdLCAuY2FyZC1mb290ZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MTBweCAwIDB9Lm1haW4tY29u''@;'; + put 'put ''dGFpbmVyW19uZ2NvbnRlbnQtYzBdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jb250ZW50LWNvbnRhaW5lcltfbmdjb250ZW50LWMwXVtfbmdjb250ZW50LSVDT01QJV0gICAuY29udGVudC1hcmVhW19uZ2NvbnRlbnQtYzBdW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjByZW19fSAgLmh0''@;'; + put 'put ''SW52YWxpZHtiYWNrZ3JvdW5kOmJsYWNrIWltcG9ydGFudH1AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0ODBweCl7ICBoMntmb250LXNpemU6LjdyZW0haW1wb3J0YW50fSAgaDN7Zm9udC1zaXplOi43cmVtfX1AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCl7ICAu''@;'; + put 'put ''Y2FyZHttaW4taGVpZ2h0OmNhbGMoMTAwdmggKyAtMHB4KSFpbXBvcnRhbnR9fSAgLm5hdi1saW5re3BhZGRpbmc6MHJlbSAxcmVtfSAgLmJ0bi1wcmltYXJ5IC5idG4sICAgLmJ0bi5idG4tcHJpbWFyeXtib3JkZXItY29sb3I6IzMxNDM1MTtiYWNrZ3JvdW5kLWNvbG9yOiMzMTQzNTE7Y29s''@;'; + put 'put ''b3I6I2ZmZn0gIC5idG57Y3Vyc29yOnBvaW50ZXI7ZGlzcGxheTppbmxpbmUtYmxvY2s7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmUhaW1wb3J0YW50O2JvcmRlci1yYWRpdXM6LjEyNXJlbTtib3JkZXI6MXB4IHNvbGlkO21pbi13aWR0aDozcmVtO21heC13aWR0aDoxNXJlbTt3aGl0ZS1zcGFj''@;'; + put 'put ''ZTpub3dyYXA7dGV4dC1vdmVyZmxvdzplbGxpcHNpcztvdmVyZmxvdzpoaWRkZW47dGV4dC1hbGlnbjpjZW50ZXI7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO3ZlcnRpY2FsLWFsaWduOm1pZGRsZTtsaW5lLWhlaWdodDoxLjVyZW07bGV0dGVyLXNwYWNpbmc6LjEyZW07Zm9udC1zaXplOi41''@;'; + put 'put ''cmVtO2ZvbnQtd2VpZ2h0OjUwMDtoZWlnaHQ6MS41cmVtO3BhZGRpbmc6MCAuNXJlbTtib3JkZXItY29sb3I6IzMxNDM1MTtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2NvbG9yOiMzMTQzNTF9ICAuYnRuLmJ0bi1vdXRsaW5le2JvcmRlci1jb2xvcjojMzE0MzUxO2JhY2tncm91bmQt''@;'; + put 'put ''Y29sb3I6dHJhbnNwYXJlbnQ7Y29sb3I6IzMxNDM1MX0gIC5idG4uYnRuLW91dGxpbmU6aG92ZXJ7Ym9yZGVyLWNvbG9yOiMzMTQzNTE7YmFja2dyb3VuZC1jb2xvcjojNDk1YTY3O2NvbG9yOiNmZmZ9ICAuYnRuLmJ0bi1zdWNjZXNzLW91dGxpbmU6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjoj''@;'; + put 'put ''NWVhNzFmO2NvbG9yOiNmZmY3Zjc7Ym9yZGVyLWNvbG9yOiM5YTk2OTZ9ICAuaHRNb2JpbGVFZGl0b3JDb250YWluZXIgLmlucHV0cyB0ZXh0YXJlYXtmb250LXNpemU6MTNwdDtib3JkZXI6MnB4IHNvbGlkICM0ODU5Njc7Ym9yZGVyLXJhZGl1czo0cHg7LXdlYmtpdC1hcHBlYXJhbmNlOm5v''@;'; + put 'put ''bmU7Ym94LXNoYWRvdzpub25lO3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MTRweDtyaWdodDowcHg7dG9wOjA7Ym90dG9tOjA7cGFkZGluZzo3cHQ7d2lkdGg6MjkwcHh9ICAuaHRNb2JpbGVFZGl0b3JDb250YWluZXIgLnBvc2l0aW9uQ29udHJvbHN7d2lkdGg6MzMzcHg7cG9zaXRpb246YWJz''@;'; + put 'put ''b2x1dGU7cmlnaHQ6NXB0O3RvcDo1MHB4O2JvdHRvbTowO2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfSAgLmh0TW9iaWxlRWRpdG9yQ29udGFpbmVyLmFjdGl2ZXtkaXNwbGF5OmJsb2NrO2hlaWdodDoxMjBweDt3aWR0aDozNTBweH0gIC5oYW5kc29udGFibGV7YmFja2dy''@;'; + put 'put ''b3VuZC1jb2xvcjojZmZmO2JvcmRlci1yYWRpdXM6M3B4fSAgLmhhbmRzb250YWJsZSB0aHtiYWNrZ3JvdW5kLWNvbG9yOiNmYWZhZmF9ICAuaHRfY2xvbmVfbGVmdCB0aHtib3JkZXItcmlnaHQ6MXB4IHNvbGlkICNjY2M7Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkICNjY2N9ICAuaHRfY2xvbmVf''@;'; + put 'put ''dG9wIHRoe2JvcmRlci10b3A6MXB4IHNvbGlkICNjY2M7Ym9yZGVyLXJpZ2h0OjFweCBzb2xpZCAjY2NjO2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNjY2N9ICAuaHRfY2xvbmVfdG9wX2xlZnRfY29ybmVyIHRoe2JvcmRlci1yaWdodDoxcHggc29saWQgI2NjY30gIC5odF9tYXN0ZXIgdHI6''@;'; + put 'put ''bnRoLW9mLXR5cGUob2RkKT50ZHtiYWNrZ3JvdW5kLWNvbG9yOiNmM2YzZjM7Ym9yZGVyOjFweCBzb2xpZCByZ2IoMTk3LDE5NywxOTcpO2JvcmRlci1ib3R0b206MXB4IHNvbGlkIHJnYigyMzYsMjM1LDIzNSl9ICAuaHRfbWFzdGVyIHRyOm50aC1vZi10eXBlKGV2ZW4pPnRke2JhY2tncm91''@;'; + put 'put ''bmQtY29sb3I6I2ZmZjtib3JkZXI6MXB4IHNvbGlkIHJnYigxOTcsMTk3LDE5Nyk7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgcmdiKDIzNiwyMzUsMjM1KX0gIC53dEJvcmRlcntiYWNrZ3JvdW5kLWNvbG9yOiM0OTVhNjchaW1wb3J0YW50fSAgLmhhbmRzb250YWJsZSAuaGFuZHNvbnRhYmxl''@;'; + put 'put ''Lmh0X2Nsb25lX3RvcCAud3RIaWRlcntwYWRkaW5nOjAhaW1wb3J0YW50O21hcmdpbjowO2JvcmRlci1ib3R0b206M3B4IHNvbGlkICNkNmQzZDN9ICAuY29udGVudC1jb250YWluZXJ7YmFja2dyb3VuZDojRjVGNkZGfSAgLmNhcmR7Ym94LXNoYWRvdzowIC4xMjVyZW0gI2Q3ZDdkNztib3Jk''@;'; + put 'put ''ZXItcmFkaXVzOjByZW07Ym9yZGVyOjFweCBzb2xpZCB0cmFuc3BhcmVudH0gIC5kYXRhZ3JpZC1jb21wYWN0IC5kYXRhZ3JpZCwgICAuZGF0YWdyaWQtaGlzdG9yeSAuZGF0YWdyaWR7Ym9yZGVyLWNvbGxhcHNlOnNlcGFyYXRlO2JvcmRlcjoxcHggc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVy''@;'; + put 'put ''LXJhZGl1czouMTI1cmVtO2JhY2tncm91bmQtY29sb3I6I2ZmZjtjb2xvcjojNTY1NjU2O21hcmdpbjowO21hcmdpbi10b3A6MXJlbTttYXgtd2lkdGg6MTAwJTt3aWR0aDoxMDAlO3BhZGRpbmc6MTVweCAxNXB4IDUwcHh9ICAuZGF0YWdyaWQtY29tcGFjdCAuZGF0YWdyaWQtZm9vdCwgICAu''@;'; + put 'put ''ZGF0YWdyaWQtaGlzdG9yeSAuZGF0YWdyaWQtZm9vdHtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmQ7aGVpZ2h0OjEuNXJlbTtwYWRkaW5nOjAgLjVyZW07bGluZS1oZWlnaHQ6Y2FsYygxLjVyZW0gLSAzcHgpO2ZvbnQtc2l6ZTouNDU4MzNyZW07YmFja2dyb3VuZC1jb2xvcjojZmZmO2JvcmRl''@;'; + put 'put ''ci10b3A6MXB4IHNvbGlkICNjY2M7Ym9yZGVyLXJhZGl1czowfSAgLmRhdGFncmlkLWNvbXBhY3QgLmRhdGFncmlkLWZvb3RlciwgICAuZGF0YWdyaWQtaGlzdG9yeSAuZGF0YWdyaWQtZm9vdGVye3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjE1cHg7dG9wOjJweH0gIC5kYXRhZ3JpZC1jb21w''@;'; + put 'put ''YWN0IC5kYXRhZ3JpZCAuZGF0YWdyaWQtaGVhZCwgICAuZGF0YWdyaWQtaGlzdG9yeSAuZGF0YWdyaWQgLmRhdGFncmlkLWhlYWR7YmFja2dyb3VuZC1jb2xvcjojZmZmO2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNjY2N9ICAuZHJvcGRvd24tbWVudXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6''@;'; + put 'put ''MTAwJTtsZWZ0OjA7bWFyZ2luLXRvcDouMDgzMzMzcmVtO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YmFja2dyb3VuZDojZjVmNmZmO3BhZGRpbmc6LjVyZW0gMDtib3JkZXI6MXB4IHNvbGlkICNjY2M7Ym94LXNoYWRvdzowIDFweCAuMTI1cmVtICM3MzczNzM0MDttaW4t''@;'; + put 'put ''d2lkdGg6NXJlbTttYXgtd2lkdGg6MTVyZW07Ym9yZGVyLXJhZGl1czouMTI1cmVtO3Zpc2liaWxpdHk6aGlkZGVuO3otaW5kZXg6MTAwMH0gIC50YWJsZXtib3JkZXItY29sbGFwc2U6c2VwYXJhdGU7Ym9yZGVyOjFweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItcmFkaXVzOjA7YmFja2dy''@;'; + put 'put ''b3VuZC1jb2xvcjojZmZmO2NvbG9yOiM1NjU2NTY7bWFyZ2luOjA7bWFyZ2luLXRvcDoxcmVtO21heC13aWR0aDoxMDAlO3dpZHRoOjEwMCV9ICAudGFibGUgdGh7Zm9udC1zaXplOi40NTgzM3JlbTtmb250LXdlaWdodDo2MDA7bGV0dGVyLXNwYWNpbmc6LjAzZW07YmFja2dyb3VuZC1jb2xv''@;'; + put 'put ''cjojZmZmO3ZlcnRpY2FsLWFsaWduOmJvdHRvbTtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjY2NjO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZX0gIC5tb2RhbC1oZWFkZXJ7Ym9yZGVyLWJvdHRvbToycHggc29saWQgI2U0ZTRlNDtwYWRkaW5nOjAgMCAuNXJlbTttYXJnaW4tYm90dG9tOjFy''@;'; + put 'put ''ZW19ICAubWFpbi1jb250YWluZXIgLmNvbnRlbnQtY29udGFpbmVye21pbi1oZWlnaHQ6MHB4fS5hcHAtbG9hZGluZ1tfbmdjb250ZW50LSVDT01QJV0gICAubG9hZGluZy1sb2dvW19uZ2NvbnRlbnQtJUNPTVAlXXttYXgtd2lkdGg6NDAwcHh9Il19KSxkfSkoKTtmdW5jdGlvbiBxeWUoZCl7''@;'; + put 'put ''cmV0dXJuIG5ldyBlbigzZTMsITEpfWZ1bmN0aW9uIFlQZSgpe3JldHVybiJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiZ2b2lkIDAhPT13aW5kb3cuZG9jdW1lbnR9ZnVuY3Rpb24gaGhlKCl7cmV0dXJuInVuZGVmaW5lZCIhPXR5cGVvZiBwcm9jZXNzJiYiW29iamVjdCBwcm9jZXNzXSI9''@;'; + put 'put ''PT17fS50b1N0cmluZy5jYWxsKHByb2Nlc3MpfWZ1bmN0aW9uIEF3KGQpe3N3aXRjaChkLmxlbmd0aCl7Y2FzZSAwOnJldHVybiBuZXcgSWs7Y2FzZSAxOnJldHVybiBkWzBdO2RlZmF1bHQ6cmV0dXJuIG5ldyB6NyhkKX19ZnVuY3Rpb24gZXdlKGQsZyxoLHYseT1uZXcgTWFwLEM9bmV3IE1h''@;'; + put 'put ''cCl7Y29uc3QgST1bXSxqPVtdO2xldCB1ZT0tMSxfZT1udWxsO2lmKHYuZm9yRWFjaChCZT0+e2NvbnN0IE5lPUJlLmdldCgib2Zmc2V0IiksS2U9TmU9PXVlLGR0PUtlJiZfZXx8bmV3IE1hcDtCZS5mb3JFYWNoKChPdCwkdCk9PntsZXQgZm49JHQsTG49T3Q7aWYoIm9mZnNldCIhPT0kdClz''@;'; + put 'put ''d2l0Y2goZm49Zy5ub3JtYWxpemVQcm9wZXJ0eU5hbWUoZm4sSSksTG4pe2Nhc2UiISI6TG49eS5nZXQoJHQpO2JyZWFrO2Nhc2Ugbjg6TG49Qy5nZXQoJHQpO2JyZWFrO2RlZmF1bHQ6TG49Zy5ub3JtYWxpemVTdHlsZVZhbHVlKCR0LGZuLExuLEkpfWR0LnNldChmbixMbil9KSxLZXx8ai5w''@;'; + put 'put ''dXNoKGR0KSxfZT1kdCx1ZT1OZX0pLEkubGVuZ3RoKXRocm93IGZ1bmN0aW9uIFJQZShkKXtyZXR1cm4gbmV3IGVuKDM1MDIsITEpfSgpO3JldHVybiBqfWZ1bmN0aW9uIGRoZShkLGcsaCx2KXtzd2l0Y2goZyl7Y2FzZSJzdGFydCI6ZC5vblN0YXJ0KCgpPT52KGgmJnBoZShoLCJzdGFydCIs''@;'; + put 'put ''ZCkpKTticmVhaztjYXNlImRvbmUiOmQub25Eb25lKCgpPT52KGgmJnBoZShoLCJkb25lIixkKSkpO2JyZWFrO2Nhc2UiZGVzdHJveSI6ZC5vbkRlc3Ryb3koKCk9PnYoaCYmcGhlKGgsImRlc3Ryb3kiLGQpKSl9fWZ1bmN0aW9uIHBoZShkLGcsaCl7Y29uc3Qgdj1oLnRvdGFsVGltZSxDPWdo''@;'; + put 'put ''ZShkLmVsZW1lbnQsZC50cmlnZ2VyTmFtZSxkLmZyb21TdGF0ZSxkLnRvU3RhdGUsZ3x8ZC5waGFzZU5hbWUsbnVsbD09dj9kLnRvdGFsVGltZTp2LCEhaC5kaXNhYmxlZCksST1kLl9kYXRhO3JldHVybiBudWxsIT1JJiYoQy5fZGF0YT1JKSxDfWZ1bmN0aW9uIGdoZShkLGcsaCx2LHk9IiIs''@;'; + put 'put ''Qz0wLEkpe3JldHVybntlbGVtZW50OmQsdHJpZ2dlck5hbWU6Zyxmcm9tU3RhdGU6aCx0b1N0YXRlOnYscGhhc2VOYW1lOnksdG90YWxUaW1lOkMsZGlzYWJsZWQ6ISFJfX1mdW5jdGlvbiBkNChkLGcsaCl7bGV0IHY9ZC5nZXQoZyk7cmV0dXJuIHZ8fGQuc2V0KGcsdj1oKSx2fWZ1bmN0aW9u''@;'; + put 'put ''IHR3ZShkKXtjb25zdCBnPWQuaW5kZXhPZigiOiIpO3JldHVybltkLnN1YnN0cmluZygxLGcpLGQuc2xpY2UoZysxKV19bGV0IG1oZT0oZCxnKT0+ITEsbndlPShkLGcsaCk9PltdLHJ3ZT1udWxsO2Z1bmN0aW9uIHZoZShkKXtjb25zdCBnPWQucGFyZW50Tm9kZXx8ZC5ob3N0O3JldHVybiBn''@;'; + put 'put ''PT09cndlP251bGw6Z30oaGhlKCl8fCJ1bmRlZmluZWQiIT10eXBlb2YgRWxlbWVudCkmJihZUGUoKT8ocndlPSgoKT0+ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KSgpLG1oZT0oZCxnKT0+e2Zvcig7Zzspe2lmKGc9PT1kKXJldHVybiEwO2c9dmhlKGcpfXJldHVybiExfSk6bWhlPShkLGcp''@;'; + put 'put ''PT5kLmNvbnRhaW5zKGcpLG53ZT0oZCxnLGgpPT57aWYoaClyZXR1cm4gQXJyYXkuZnJvbShkLnF1ZXJ5U2VsZWN0b3JBbGwoZykpO2NvbnN0IHY9ZC5xdWVyeVNlbGVjdG9yKGcpO3JldHVybiB2P1t2XTpbXX0pO2xldCBiUz1udWxsLGl3ZT0hMTtjb25zdCBvd2U9bWhlLGF3ZT1ud2U7bGV0''@;'; + put 'put ''IGx3ZT0oKCk9PntjbGFzcyBke3ZhbGlkYXRlU3R5bGVQcm9wZXJ0eShoKXtyZXR1cm4gZnVuY3Rpb24gUVBlKGQpe2JTfHwoYlM9ZnVuY3Rpb24gSlBlKCl7cmV0dXJuInVuZGVmaW5lZCIhPXR5cGVvZiBkb2N1bWVudD9kb2N1bWVudC5ib2R5Om51bGx9KCl8fHt9LGl3ZT0hIWJTLnN0eWxl''@;'; + put 'put ''JiYiV2Via2l0QXBwZWFyYW5jZSJpbiBiUy5zdHlsZSk7bGV0IGc9ITA7cmV0dXJuIGJTLnN0eWxlJiYhZnVuY3Rpb24gVVBlKGQpe3JldHVybiJlYmtpdCI9PWQuc3Vic3RyaW5nKDEsNil9KGQpJiYoZz1kIGluIGJTLnN0eWxlLCFnJiZpd2UmJihnPSJXZWJraXQiK2QuY2hhckF0KDApLnRv''@;'; + put 'put ''VXBwZXJDYXNlKCkrZC5zbGljZSgxKWluIGJTLnN0eWxlKSksZ30oaCl9bWF0Y2hlc0VsZW1lbnQoaCx2KXtyZXR1cm4hMX1jb250YWluc0VsZW1lbnQoaCx2KXtyZXR1cm4gb3dlKGgsdil9Z2V0UGFyZW50RWxlbWVudChoKXtyZXR1cm4gdmhlKGgpfXF1ZXJ5KGgsdix5KXtyZXR1cm4gYXdl''@;'; + put 'put ''KGgsdix5KX1jb21wdXRlU3R5bGUoaCx2LHkpe3JldHVybiB5fHwiIn1hbmltYXRlKGgsdix5LEMsSSxqPVtdLHVlKXtyZXR1cm4gbmV3IElrKHksQyl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1MDI3NXByb3Y9QWkoe3Rva2VuOmQsZmFj''@;'; + put 'put ''dG9yeTpkLlx1MDI3NWZhY30pLGR9KSgpLEFoZT0oKCk9PntjbGFzcyBke31yZXR1cm4gZC5OT09QPW5ldyBsd2UsZH0pKCk7Y29uc3QgU3E9Im5nLWxlYXZlIixNcT0ibmctdHJpZ2dlciIsRXE9Ii5uZy10cmlnZ2VyIix1d2U9Im5nLWFuaW1hdGluZyIsd2hlPSIubmctYW5pbWF0aW5nIjtm''@;'; + put 'put ''dW5jdGlvbiB5dyhkKXtpZigibnVtYmVyIj09dHlwZW9mIGQpcmV0dXJuIGQ7Y29uc3QgZz1kLm1hdGNoKC9eKC0/W1wuXGRdKykobT9zKS8pO3JldHVybiFnfHxnLmxlbmd0aDwyPzA6YmhlKHBhcnNlRmxvYXQoZ1sxXSksZ1syXSl9ZnVuY3Rpb24gYmhlKGQsZyl7cmV0dXJuInMiPT09Zz8x''@;'; + put 'put ''ZTMqZDpkfWZ1bmN0aW9uIHhxKGQsZyxoKXtyZXR1cm4gZC5oYXNPd25Qcm9wZXJ0eSgiZHVyYXRpb24iKT9kOmZ1bmN0aW9uICRQZShkLGcsaCl7bGV0IHksQz0wLEk9IiI7aWYoInN0cmluZyI9PXR5cGVvZiBkKXtjb25zdCBqPWQubWF0Y2goL14oLT9bXC5cZF0rKShtP3MpKD86XHMrKC0/''@;'; + put 'put ''W1wuXGRdKykobT9zKSk/KD86XHMrKFstYS16XSsoPzpcKC4rP1wpKT8pKT8kL2kpO2lmKG51bGw9PT1qKXJldHVybiBnLnB1c2gocXllKCkpLHtkdXJhdGlvbjowLGRlbGF5OjAsZWFzaW5nOiIifTt5PWJoZShwYXJzZUZsb2F0KGpbMV0pLGpbMl0pO2NvbnN0IHVlPWpbM107bnVsbCE9dWUm''@;'; + put 'put ''JihDPWJoZShwYXJzZUZsb2F0KHVlKSxqWzRdKSk7Y29uc3QgX2U9als1XTtfZSYmKEk9X2UpfWVsc2UgeT1kO2lmKCFoKXtsZXQgaj0hMSx1ZT1nLmxlbmd0aDt5PDAmJihnLnB1c2goZnVuY3Rpb24gaFBlKCl7cmV0dXJuIG5ldyBlbigzMTAwLCExKX0oKSksaj0hMCksQzwwJiYoZy5wdXNo''@;'; + put 'put ''KGZ1bmN0aW9uIGRQZSgpe3JldHVybiBuZXcgZW4oMzEwMSwhMSl9KCkpLGo9ITApLGomJmcuc3BsaWNlKHVlLDAscXllKCkpfXJldHVybntkdXJhdGlvbjp5LGRlbGF5OkMsZWFzaW5nOkl9fShkLGcsaCl9ZnVuY3Rpb24gX1ooZCxnPXt9KXtyZXR1cm4gT2JqZWN0LmtleXMoZCkuZm9yRWFj''@;'; + put 'put ''aChoPT57Z1toXT1kW2hdfSksZ31mdW5jdGlvbiBjd2UoZCl7Y29uc3QgZz1uZXcgTWFwO3JldHVybiBPYmplY3Qua2V5cyhkKS5mb3JFYWNoKGg9PntnLnNldChoLGRbaF0pfSksZ31mdW5jdGlvbiB3dyhkLGc9bmV3IE1hcCxoKXtpZihoKWZvcihsZXRbdix5XW9mIGgpZy5zZXQodix5KTtm''@;'; + put 'put ''b3IobGV0W3YseV1vZiBkKWcuc2V0KHYseSk7cmV0dXJuIGd9ZnVuY3Rpb24gaHdlKGQsZyxoKXtyZXR1cm4gaD9nKyI6IitoKyI7IjoiIn1mdW5jdGlvbiBkd2UoZCl7bGV0IGc9IiI7Zm9yKGxldCBoPTA7aDxkLnN0eWxlLmxlbmd0aDtoKyspe2NvbnN0IHY9ZC5zdHlsZS5pdGVtKGgpO2cr''@;'; + put 'put ''PWh3ZSgwLHYsZC5zdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKHYpKX1mb3IoY29uc3QgaCBpbiBkLnN0eWxlKWQuc3R5bGUuaGFzT3duUHJvcGVydHkoaCkmJiFoLnN0YXJ0c1dpdGgoIl8iKSYmKGcrPWh3ZSgwLG5GZShoKSxkLnN0eWxlW2hdKSk7ZC5zZXRBdHRyaWJ1dGUoInN0eWxlIixnKX1m''@;'; + put 'put ''dW5jdGlvbiBDZyhkLGcsaCl7ZC5zdHlsZSYmKGcuZm9yRWFjaCgodix5KT0+e2NvbnN0IEM9Q2hlKHkpO2gmJiFoLmhhcyh5KSYmaC5zZXQoeSxkLnN0eWxlW0NdKSxkLnN0eWxlW0NdPXZ9KSxoaGUoKSYmZHdlKGQpKX1mdW5jdGlvbiBfUyhkLGcpe2Quc3R5bGUmJihnLmZvckVhY2goKGgs''@;'; + put 'put ''dik9Pntjb25zdCB5PUNoZSh2KTtkLnN0eWxlW3ldPSIifSksaGhlKCkmJmR3ZShkKSl9ZnVuY3Rpb24gQ1ooZCl7cmV0dXJuIEFycmF5LmlzQXJyYXkoZCk/MT09ZC5sZW5ndGg/ZFswXTpUayhkKTpkfWNvbnN0IF9oZT1uZXcgUmVnRXhwKCJ7e1xccyooLis/KVxccyp9fSIsImciKTtmdW5j''@;'; + put 'put ''dGlvbiBwd2UoZCl7bGV0IGc9W107aWYoInN0cmluZyI9PXR5cGVvZiBkKXtsZXQgaDtmb3IoO2g9X2hlLmV4ZWMoZCk7KWcucHVzaChoWzFdKTtfaGUubGFzdEluZGV4PTB9cmV0dXJuIGd9ZnVuY3Rpb24gVHEoZCxnLGgpe2NvbnN0IHY9ZC50b1N0cmluZygpLHk9di5yZXBsYWNlKF9oZSwo''@;'; + put 'put ''QyxJKT0+e2xldCBqPWdbSV07cmV0dXJuIG51bGw9PWomJihoLnB1c2goZnVuY3Rpb24gZ1BlKGQpe3JldHVybiBuZXcgZW4oMzAwMywhMSl9KCkpLGo9IiIpLGoudG9TdHJpbmcoKX0pO3JldHVybiB5PT12P2Q6eX1mdW5jdGlvbiBJcShkKXtjb25zdCBnPVtdO2xldCBoPWQubmV4dCgpO2Zv''@;'; + put 'put ''cig7IWguZG9uZTspZy5wdXNoKGgudmFsdWUpLGg9ZC5uZXh0KCk7cmV0dXJuIGd9Y29uc3QgdEZlPS8tKyhbYS16MC05XSkvZztmdW5jdGlvbiBDaGUoZCl7cmV0dXJuIGQucmVwbGFjZSh0RmUsKC4uLmcpPT5nWzFdLnRvVXBwZXJDYXNlKCkpfWZ1bmN0aW9uIG5GZShkKXtyZXR1cm4gZC5y''@;'; + put 'put ''ZXBsYWNlKC8oW2Etel0pKFtBLVpdKS9nLCIkMS0kMiIpLnRvTG93ZXJDYXNlKCl9ZnVuY3Rpb24gcDQoZCxnLGgpe3N3aXRjaChnLnR5cGUpe2Nhc2UgNzpyZXR1cm4gZC52aXNpdFRyaWdnZXIoZyxoKTtjYXNlIDA6cmV0dXJuIGQudmlzaXRTdGF0ZShnLGgpO2Nhc2UgMTpyZXR1cm4gZC52''@;'; + put 'put ''aXNpdFRyYW5zaXRpb24oZyxoKTtjYXNlIDI6cmV0dXJuIGQudmlzaXRTZXF1ZW5jZShnLGgpO2Nhc2UgMzpyZXR1cm4gZC52aXNpdEdyb3VwKGcsaCk7Y2FzZSA0OnJldHVybiBkLnZpc2l0QW5pbWF0ZShnLGgpO2Nhc2UgNTpyZXR1cm4gZC52aXNpdEtleWZyYW1lcyhnLGgpO2Nhc2UgNjpy''@;'; + put 'put ''ZXR1cm4gZC52aXNpdFN0eWxlKGcsaCk7Y2FzZSA4OnJldHVybiBkLnZpc2l0UmVmZXJlbmNlKGcsaCk7Y2FzZSA5OnJldHVybiBkLnZpc2l0QW5pbWF0ZUNoaWxkKGcsaCk7Y2FzZSAxMDpyZXR1cm4gZC52aXNpdEFuaW1hdGVSZWYoZyxoKTtjYXNlIDExOnJldHVybiBkLnZpc2l0UXVlcnko''@;'; + put 'put ''ZyxoKTtjYXNlIDEyOnJldHVybiBkLnZpc2l0U3RhZ2dlcihnLGgpO2RlZmF1bHQ6dGhyb3cgZnVuY3Rpb24gbVBlKGQpe3JldHVybiBuZXcgZW4oMzAwNCwhMSl9KCl9fWZ1bmN0aW9uIGd3ZShkLGcpe3JldHVybiB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkKVtnXX1mdW5jdGlvbiBzRmUo''@;'; + put 'put ''ZCxnKXtjb25zdCBoPVtdO3JldHVybiJzdHJpbmciPT10eXBlb2YgZD9kLnNwbGl0KC9ccyosXHMqLykuZm9yRWFjaCh2PT5mdW5jdGlvbiB1RmUoZCxnLGgpe2lmKCI6Ij09ZFswXSl7Y29uc3QgdWU9ZnVuY3Rpb24gY0ZlKGQsZyl7c3dpdGNoKGQpe2Nhc2UiOmVudGVyIjpyZXR1cm4idm9p''@;'; + put 'put ''ZCA9PiAqIjtjYXNlIjpsZWF2ZSI6cmV0dXJuIiogPT4gdm9pZCI7Y2FzZSI6aW5jcmVtZW50IjpyZXR1cm4oaCx2KT0+cGFyc2VGbG9hdCh2KT5wYXJzZUZsb2F0KGgpO2Nhc2UiOmRlY3JlbWVudCI6cmV0dXJuKGgsdik9PnBhcnNlRmxvYXQodik8cGFyc2VGbG9hdChoKTtkZWZhdWx0OnJl''@;'; + put 'put ''dHVybiBnLnB1c2goZnVuY3Rpb24gSVBlKGQpe3JldHVybiBuZXcgZW4oMzAxNiwhMSl9KCkpLCIqID0+ICoifX0oZCxoKTtpZigiZnVuY3Rpb24iPT10eXBlb2YgdWUpcmV0dXJuIHZvaWQgZy5wdXNoKHVlKTtkPXVlfWNvbnN0IHY9ZC5tYXRjaCgvXihcKnxbLVx3XSspXHMqKDw/Wz0tXT4p''@;'; + put 'put ''XHMqKFwqfFstXHddKykkLyk7aWYobnVsbD09dnx8di5sZW5ndGg8NClyZXR1cm4gaC5wdXNoKGZ1bmN0aW9uIFRQZShkKXtyZXR1cm4gbmV3IGVuKDMwMTUsITEpfSgpKSxnO2NvbnN0IHk9dlsxXSxDPXZbMl0sST12WzNdO2cucHVzaChtd2UoeSxJKSk7IjwiPT1DWzBdJiYhKCIqIj09eSYm''@;'; + put 'put ''IioiPT1JKSYmZy5wdXNoKG13ZShJLHkpKX0odixoLGcpKTpoLnB1c2goZCksaH1jb25zdCBScT1uZXcgU2V0KFsidHJ1ZSIsIjEiXSksQnE9bmV3IFNldChbImZhbHNlIiwiMCJdKTtmdW5jdGlvbiBtd2UoZCxnKXtjb25zdCBoPVJxLmhhcyhkKXx8QnEuaGFzKGQpLHY9UnEuaGFzKGcpfHxC''@;'; + put 'put ''cS5oYXMoZyk7cmV0dXJuKHksQyk9PntsZXQgST0iKiI9PWR8fGQ9PXksaj0iKiI9PWd8fGc9PUM7cmV0dXJuIUkmJmgmJiJib29sZWFuIj09dHlwZW9mIHkmJihJPXk/UnEuaGFzKGQpOkJxLmhhcyhkKSksIWomJnYmJiJib29sZWFuIj09dHlwZW9mIEMmJihqPUM/UnEuaGFzKGcpOkJxLmhh''@;'; + put 'put ''cyhnKSksSSYman19Y29uc3QgZkZlPW5ldyBSZWdFeHAoInMqOnNlbGZzKiw/IiwiZyIpO2Z1bmN0aW9uIGtoZShkLGcsaCx2KXtyZXR1cm4gbmV3IGhGZShkKS5idWlsZChnLGgsdil9Y2xhc3MgaEZle2NvbnN0cnVjdG9yKGcpe3RoaXMuX2RyaXZlcj1nfWJ1aWxkKGcsaCx2KXtjb25zdCB5''@;'; + put 'put ''PW5ldyBnRmUoaCk7cmV0dXJuIHRoaXMuX3Jlc2V0Q29udGV4dFN0eWxlVGltaW5nU3RhdGUoeSkscDQodGhpcyxDWihnKSx5KX1fcmVzZXRDb250ZXh0U3R5bGVUaW1pbmdTdGF0ZShnKXtnLmN1cnJlbnRRdWVyeVNlbGVjdG9yPSIiLGcuY29sbGVjdGVkU3R5bGVzPW5ldyBNYXAsZy5jb2xs''@;'; + put 'put ''ZWN0ZWRTdHlsZXMuc2V0KCIiLG5ldyBNYXApLGcuY3VycmVudFRpbWU9MH12aXNpdFRyaWdnZXIoZyxoKXtsZXQgdj1oLnF1ZXJ5Q291bnQ9MCx5PWguZGVwQ291bnQ9MDtjb25zdCBDPVtdLEk9W107cmV0dXJuIkAiPT1nLm5hbWUuY2hhckF0KDApJiZoLmVycm9ycy5wdXNoKGZ1bmN0aW9u''@;'; + put 'put ''IEFQZSgpe3JldHVybiBuZXcgZW4oMzAwNiwhMSl9KCkpLGcuZGVmaW5pdGlvbnMuZm9yRWFjaChqPT57aWYodGhpcy5fcmVzZXRDb250ZXh0U3R5bGVUaW1pbmdTdGF0ZShoKSwwPT1qLnR5cGUpe2NvbnN0IHVlPWosX2U9dWUubmFtZTtfZS50b1N0cmluZygpLnNwbGl0KC9ccyosXHMqLyku''@;'; + put 'put ''Zm9yRWFjaChCZT0+e3VlLm5hbWU9QmUsQy5wdXNoKHRoaXMudmlzaXRTdGF0ZSh1ZSxoKSl9KSx1ZS5uYW1lPV9lfWVsc2UgaWYoMT09ai50eXBlKXtjb25zdCB1ZT10aGlzLnZpc2l0VHJhbnNpdGlvbihqLGgpO3YrPXVlLnF1ZXJ5Q291bnQseSs9dWUuZGVwQ291bnQsSS5wdXNoKHVlKX1l''@;'; + put 'put ''bHNlIGguZXJyb3JzLnB1c2goZnVuY3Rpb24geVBlKCl7cmV0dXJuIG5ldyBlbigzMDA3LCExKX0oKSl9KSx7dHlwZTo3LG5hbWU6Zy5uYW1lLHN0YXRlczpDLHRyYW5zaXRpb25zOkkscXVlcnlDb3VudDp2LGRlcENvdW50Onksb3B0aW9uczpudWxsfX12aXNpdFN0YXRlKGcsaCl7Y29uc3Qg''@;'; + put 'put ''dj10aGlzLnZpc2l0U3R5bGUoZy5zdHlsZXMsaCkseT1nLm9wdGlvbnMmJmcub3B0aW9ucy5wYXJhbXN8fG51bGw7aWYodi5jb250YWluc0R5bmFtaWNTdHlsZXMpe2NvbnN0IEM9bmV3IFNldCxJPXl8fHt9O3Yuc3R5bGVzLmZvckVhY2goaj0+e2ogaW5zdGFuY2VvZiBNYXAmJmouZm9yRWFj''@;'; + put 'put ''aCh1ZT0+e3B3ZSh1ZSkuZm9yRWFjaChfZT0+e0kuaGFzT3duUHJvcGVydHkoX2UpfHxDLmFkZChfZSl9KX0pfSksQy5zaXplJiYoSXEoQy52YWx1ZXMoKSksaC5lcnJvcnMucHVzaChmdW5jdGlvbiB3UGUoZCxnKXtyZXR1cm4gbmV3IGVuKDMwMDgsITEpfSgpKSl9cmV0dXJue3R5cGU6MCxu''@;'; + put 'put ''YW1lOmcubmFtZSxzdHlsZTp2LG9wdGlvbnM6eT97cGFyYW1zOnl9Om51bGx9fXZpc2l0VHJhbnNpdGlvbihnLGgpe2gucXVlcnlDb3VudD0wLGguZGVwQ291bnQ9MDtjb25zdCB2PXA0KHRoaXMsQ1ooZy5hbmltYXRpb24pLGgpO3JldHVybnt0eXBlOjEsbWF0Y2hlcnM6c0ZlKGcuZXhwcixo''@;'; + put 'put ''LmVycm9ycyksYW5pbWF0aW9uOnYscXVlcnlDb3VudDpoLnF1ZXJ5Q291bnQsZGVwQ291bnQ6aC5kZXBDb3VudCxvcHRpb25zOkNTKGcub3B0aW9ucyl9fXZpc2l0U2VxdWVuY2UoZyxoKXtyZXR1cm57dHlwZToyLHN0ZXBzOmcuc3RlcHMubWFwKHY9PnA0KHRoaXMsdixoKSksb3B0aW9uczpD''@;'; + put 'put ''UyhnLm9wdGlvbnMpfX12aXNpdEdyb3VwKGcsaCl7Y29uc3Qgdj1oLmN1cnJlbnRUaW1lO2xldCB5PTA7Y29uc3QgQz1nLnN0ZXBzLm1hcChJPT57aC5jdXJyZW50VGltZT12O2NvbnN0IGo9cDQodGhpcyxJLGgpO3JldHVybiB5PU1hdGgubWF4KHksaC5jdXJyZW50VGltZSksan0pO3JldHVy''@;'; + put 'put ''biBoLmN1cnJlbnRUaW1lPXkse3R5cGU6MyxzdGVwczpDLG9wdGlvbnM6Q1MoZy5vcHRpb25zKX19dmlzaXRBbmltYXRlKGcsaCl7Y29uc3Qgdj1mdW5jdGlvbiB2RmUoZCxnKXtpZihkLmhhc093blByb3BlcnR5KCJkdXJhdGlvbiIpKXJldHVybiBkO2lmKCJudW1iZXIiPT10eXBlb2YgZCly''@;'; + put 'put ''ZXR1cm4gU2hlKHhxKGQsZykuZHVyYXRpb24sMCwiIik7Y29uc3QgaD1kO2lmKGguc3BsaXQoL1xzKy8pLnNvbWUoQz0+InsiPT1DLmNoYXJBdCgwKSYmInsiPT1DLmNoYXJBdCgxKSkpe2NvbnN0IEM9U2hlKDAsMCwiIik7cmV0dXJuIEMuZHluYW1pYz0hMCxDLnN0clZhbHVlPWgsQ31jb25z''@;'; + put 'put ''dCB5PXhxKGgsZyk7cmV0dXJuIFNoZSh5LmR1cmF0aW9uLHkuZGVsYXkseS5lYXNpbmcpfShnLnRpbWluZ3MsaC5lcnJvcnMpO2guY3VycmVudEFuaW1hdGVUaW1pbmdzPXY7bGV0IHksQz1nLnN0eWxlcz9nLnN0eWxlczp5bCh7fSk7aWYoNT09Qy50eXBlKXk9dGhpcy52aXNpdEtleWZyYW1l''@;'; + put 'put ''cyhDLGgpO2Vsc2V7bGV0IEk9Zy5zdHlsZXMsaj0hMTtpZighSSl7aj0hMDtjb25zdCBfZT17fTt2LmVhc2luZyYmKF9lLmVhc2luZz12LmVhc2luZyksST15bChfZSl9aC5jdXJyZW50VGltZSs9di5kdXJhdGlvbit2LmRlbGF5O2NvbnN0IHVlPXRoaXMudmlzaXRTdHlsZShJLGgpO3VlLmlz''@;'; + put 'put ''RW1wdHlTdGVwPWoseT11ZX1yZXR1cm4gaC5jdXJyZW50QW5pbWF0ZVRpbWluZ3M9bnVsbCx7dHlwZTo0LHRpbWluZ3M6dixzdHlsZTp5LG9wdGlvbnM6bnVsbH19dmlzaXRTdHlsZShnLGgpe2NvbnN0IHY9dGhpcy5fbWFrZVN0eWxlQXN0KGcsaCk7cmV0dXJuIHRoaXMuX3ZhbGlkYXRlU3R5''@;'; + put 'put ''bGVBc3QodixoKSx2fV9tYWtlU3R5bGVBc3QoZyxoKXtjb25zdCB2PVtdLHk9QXJyYXkuaXNBcnJheShnLnN0eWxlcyk/Zy5zdHlsZXM6W2cuc3R5bGVzXTtmb3IobGV0IGogb2YgeSkic3RyaW5nIj09dHlwZW9mIGo/aj09PW44P3YucHVzaChqKTpoLmVycm9ycy5wdXNoKG5ldyBlbigzMDAy''@;'; + put 'put ''LCExKSk6di5wdXNoKGN3ZShqKSk7bGV0IEM9ITEsST1udWxsO3JldHVybiB2LmZvckVhY2goaj0+e2lmKGogaW5zdGFuY2VvZiBNYXAmJihqLmhhcygiZWFzaW5nIikmJihJPWouZ2V0KCJlYXNpbmciKSxqLmRlbGV0ZSgiZWFzaW5nIikpLCFDKSlmb3IobGV0IHVlIG9mIGoudmFsdWVzKCkp''@;'; + put 'put ''aWYodWUudG9TdHJpbmcoKS5pbmRleE9mKCJ7eyIpPj0wKXtDPSEwO2JyZWFrfX0pLHt0eXBlOjYsc3R5bGVzOnYsZWFzaW5nOkksb2Zmc2V0Omcub2Zmc2V0LGNvbnRhaW5zRHluYW1pY1N0eWxlczpDLG9wdGlvbnM6bnVsbH19X3ZhbGlkYXRlU3R5bGVBc3QoZyxoKXtjb25zdCB2PWguY3Vy''@;'; + put 'put ''cmVudEFuaW1hdGVUaW1pbmdzO2xldCB5PWguY3VycmVudFRpbWUsQz1oLmN1cnJlbnRUaW1lO3YmJkM+MCYmKEMtPXYuZHVyYXRpb24rdi5kZWxheSksZy5zdHlsZXMuZm9yRWFjaChJPT57InN0cmluZyIhPXR5cGVvZiBJJiZJLmZvckVhY2goKGosdWUpPT57Y29uc3QgX2U9aC5jb2xsZWN0''@;'; + put 'put ''ZWRTdHlsZXMuZ2V0KGguY3VycmVudFF1ZXJ5U2VsZWN0b3IpLEJlPV9lLmdldCh1ZSk7bGV0IE5lPSEwO0JlJiYoQyE9eSYmQz49QmUuc3RhcnRUaW1lJiZ5PD1CZS5lbmRUaW1lJiYoaC5lcnJvcnMucHVzaChmdW5jdGlvbiBfUGUoZCxnLGgsdix5KXtyZXR1cm4gbmV3IGVuKDMwMTAsITEp''@;'; + put 'put ''fSgpKSxOZT0hMSksQz1CZS5zdGFydFRpbWUpLE5lJiZfZS5zZXQodWUse3N0YXJ0VGltZTpDLGVuZFRpbWU6eX0pLGgub3B0aW9ucyYmZnVuY3Rpb24gZUZlKGQsZyxoKXtjb25zdCB2PWcucGFyYW1zfHx7fSx5PXB3ZShkKTt5Lmxlbmd0aCYmeS5mb3JFYWNoKEM9Pnt2Lmhhc093blByb3Bl''@;'; + put 'put ''cnR5KEMpfHxoLnB1c2goZnVuY3Rpb24gcFBlKGQpe3JldHVybiBuZXcgZW4oMzAwMSwhMSl9KCkpfSl9KGosaC5vcHRpb25zLGguZXJyb3JzKX0pfSl9dmlzaXRLZXlmcmFtZXMoZyxoKXtjb25zdCB2PXt0eXBlOjUsc3R5bGVzOltdLG9wdGlvbnM6bnVsbH07aWYoIWguY3VycmVudEFuaW1h''@;'; + put 'put ''dGVUaW1pbmdzKXJldHVybiBoLmVycm9ycy5wdXNoKGZ1bmN0aW9uIENQZSgpe3JldHVybiBuZXcgZW4oMzAxMSwhMSl9KCkpLHY7bGV0IEM9MDtjb25zdCBJPVtdO2xldCBqPSExLHVlPSExLF9lPTA7Y29uc3QgQmU9Zy5zdGVwcy5tYXAoTG49Pntjb25zdCBpcj10aGlzLl9tYWtlU3R5bGVB''@;'; + put 'put ''c3QoTG4saCk7bGV0IG1yPW51bGwhPWlyLm9mZnNldD9pci5vZmZzZXQ6ZnVuY3Rpb24gbUZlKGQpe2lmKCJzdHJpbmciPT10eXBlb2YgZClyZXR1cm4gbnVsbDtsZXQgZz1udWxsO2lmKEFycmF5LmlzQXJyYXkoZCkpZC5mb3JFYWNoKGg9PntpZihoIGluc3RhbmNlb2YgTWFwJiZoLmhhcygi''@;'; + put 'put ''b2Zmc2V0Iikpe2NvbnN0IHY9aDtnPXBhcnNlRmxvYXQodi5nZXQoIm9mZnNldCIpKSx2LmRlbGV0ZSgib2Zmc2V0Iil9fSk7ZWxzZSBpZihkIGluc3RhbmNlb2YgTWFwJiZkLmhhcygib2Zmc2V0Iikpe2NvbnN0IGg9ZDtnPXBhcnNlRmxvYXQoaC5nZXQoIm9mZnNldCIpKSxoLmRlbGV0ZSgi''@;'; + put 'put ''b2Zmc2V0Iil9cmV0dXJuIGd9KGlyLnN0eWxlcyksU3I9MDtyZXR1cm4gbnVsbCE9bXImJihDKyssU3I9aXIub2Zmc2V0PW1yKSx1ZT11ZXx8U3I8MHx8U3I+MSxqPWp8fFNyPF9lLF9lPVNyLEkucHVzaChTciksaXJ9KTt1ZSYmaC5lcnJvcnMucHVzaChmdW5jdGlvbiBrUGUoKXtyZXR1cm4g''@;'; + put 'put ''bmV3IGVuKDMwMTIsITEpfSgpKSxqJiZoLmVycm9ycy5wdXNoKGZ1bmN0aW9uIFNQZSgpe3JldHVybiBuZXcgZW4oMzIwMCwhMSl9KCkpO2NvbnN0IE5lPWcuc3RlcHMubGVuZ3RoO2xldCBLZT0wO0M+MCYmQzxOZT9oLmVycm9ycy5wdXNoKGZ1bmN0aW9uIE1QZSgpe3JldHVybiBuZXcgZW4o''@;'; + put 'put ''MzIwMiwhMSl9KCkpOjA9PUMmJihLZT0xLyhOZS0xKSk7Y29uc3QgZHQ9TmUtMSxPdD1oLmN1cnJlbnRUaW1lLCR0PWguY3VycmVudEFuaW1hdGVUaW1pbmdzLGZuPSR0LmR1cmF0aW9uO3JldHVybiBCZS5mb3JFYWNoKChMbixpcik9Pntjb25zdCBtcj1LZT4wP2lyPT1kdD8xOktlKmlyOklb''@;'; + put 'put ''aXJdLFNyPW1yKmZuO2guY3VycmVudFRpbWU9T3QrJHQuZGVsYXkrU3IsJHQuZHVyYXRpb249U3IsdGhpcy5fdmFsaWRhdGVTdHlsZUFzdChMbixoKSxMbi5vZmZzZXQ9bXIsdi5zdHlsZXMucHVzaChMbil9KSx2fXZpc2l0UmVmZXJlbmNlKGcsaCl7cmV0dXJue3R5cGU6OCxhbmltYXRpb246''@;'; + put 'put ''cDQodGhpcyxDWihnLmFuaW1hdGlvbiksaCksb3B0aW9uczpDUyhnLm9wdGlvbnMpfX12aXNpdEFuaW1hdGVDaGlsZChnLGgpe3JldHVybiBoLmRlcENvdW50Kysse3R5cGU6OSxvcHRpb25zOkNTKGcub3B0aW9ucyl9fXZpc2l0QW5pbWF0ZVJlZihnLGgpe3JldHVybnt0eXBlOjEwLGFuaW1h''@;'; + put 'put ''dGlvbjp0aGlzLnZpc2l0UmVmZXJlbmNlKGcuYW5pbWF0aW9uLGgpLG9wdGlvbnM6Q1MoZy5vcHRpb25zKX19dmlzaXRRdWVyeShnLGgpe2NvbnN0IHY9aC5jdXJyZW50UXVlcnlTZWxlY3Rvcix5PWcub3B0aW9uc3x8e307aC5xdWVyeUNvdW50KyssaC5jdXJyZW50UXVlcnk9Zztjb25zdFtD''@;'; + put 'put ''LEldPWZ1bmN0aW9uIGRGZShkKXtjb25zdCBnPSEhZC5zcGxpdCgvXHMqLFxzKi8pLmZpbmQoaD0+IjpzZWxmIj09aCk7cmV0dXJuIGcmJihkPWQucmVwbGFjZShmRmUsIiIpKSxkPWQucmVwbGFjZSgvQFwqL2csRXEpLnJlcGxhY2UoL0BcdysvZyxoPT5FcSsiLSIraC5zbGljZSgxKSkucmVw''@;'; + put 'put ''bGFjZSgvOmFuaW1hdGluZy9nLHdoZSksW2QsZ119KGcuc2VsZWN0b3IpO2guY3VycmVudFF1ZXJ5U2VsZWN0b3I9di5sZW5ndGg/disiICIrQzpDLGQ0KGguY29sbGVjdGVkU3R5bGVzLGguY3VycmVudFF1ZXJ5U2VsZWN0b3IsbmV3IE1hcCk7Y29uc3Qgaj1wNCh0aGlzLENaKGcuYW5pbWF0''@;'; + put 'put ''aW9uKSxoKTtyZXR1cm4gaC5jdXJyZW50UXVlcnk9bnVsbCxoLmN1cnJlbnRRdWVyeVNlbGVjdG9yPXYse3R5cGU6MTEsc2VsZWN0b3I6QyxsaW1pdDp5LmxpbWl0fHwwLG9wdGlvbmFsOiEheS5vcHRpb25hbCxpbmNsdWRlU2VsZjpJLGFuaW1hdGlvbjpqLG9yaWdpbmFsU2VsZWN0b3I6Zy5z''@;'; + put 'put ''ZWxlY3RvcixvcHRpb25zOkNTKGcub3B0aW9ucyl9fXZpc2l0U3RhZ2dlcihnLGgpe2guY3VycmVudFF1ZXJ5fHxoLmVycm9ycy5wdXNoKGZ1bmN0aW9uIEVQZSgpe3JldHVybiBuZXcgZW4oMzAxMywhMSl9KCkpO2NvbnN0IHY9ImZ1bGwiPT09Zy50aW1pbmdzP3tkdXJhdGlvbjowLGRlbGF5''@;'; + put 'put ''OjAsZWFzaW5nOiJmdWxsIn06eHEoZy50aW1pbmdzLGguZXJyb3JzLCEwKTtyZXR1cm57dHlwZToxMixhbmltYXRpb246cDQodGhpcyxDWihnLmFuaW1hdGlvbiksaCksdGltaW5nczp2LG9wdGlvbnM6bnVsbH19fWNsYXNzIGdGZXtjb25zdHJ1Y3RvcihnKXt0aGlzLmVycm9ycz1nLHRoaXMu''@;'; + put 'put ''cXVlcnlDb3VudD0wLHRoaXMuZGVwQ291bnQ9MCx0aGlzLmN1cnJlbnRUcmFuc2l0aW9uPW51bGwsdGhpcy5jdXJyZW50UXVlcnk9bnVsbCx0aGlzLmN1cnJlbnRRdWVyeVNlbGVjdG9yPW51bGwsdGhpcy5jdXJyZW50QW5pbWF0ZVRpbWluZ3M9bnVsbCx0aGlzLmN1cnJlbnRUaW1lPTAsdGhp''@;'; + put 'put ''cy5jb2xsZWN0ZWRTdHlsZXM9bmV3IE1hcCx0aGlzLm9wdGlvbnM9bnVsbCx0aGlzLnVuc3VwcG9ydGVkQ1NTUHJvcGVydGllc0ZvdW5kPW5ldyBTZXR9fWZ1bmN0aW9uIENTKGQpe3JldHVybiBkPyhkPV9aKGQpKS5wYXJhbXMmJihkLnBhcmFtcz1mdW5jdGlvbiBwRmUoZCl7cmV0dXJuIGQ/''@;'; + put 'put ''X1ooZCk6bnVsbH0oZC5wYXJhbXMpKTpkPXt9LGR9ZnVuY3Rpb24gU2hlKGQsZyxoKXtyZXR1cm57ZHVyYXRpb246ZCxkZWxheTpnLGVhc2luZzpofX1mdW5jdGlvbiBNaGUoZCxnLGgsdix5LEMsST1udWxsLGo9ITEpe3JldHVybnt0eXBlOjEsZWxlbWVudDpkLGtleWZyYW1lczpnLHByZVN0''@;'; + put 'put ''eWxlUHJvcHM6aCxwb3N0U3R5bGVQcm9wczp2LGR1cmF0aW9uOnksZGVsYXk6Qyx0b3RhbFRpbWU6eStDLGVhc2luZzpJLHN1YlRpbWVsaW5lOmp9fWNsYXNzIFBxe2NvbnN0cnVjdG9yKCl7dGhpcy5fbWFwPW5ldyBNYXB9Z2V0KGcpe3JldHVybiB0aGlzLl9tYXAuZ2V0KGcpfHxbXX1hcHBl''@;'; + put 'put ''bmQoZyxoKXtsZXQgdj10aGlzLl9tYXAuZ2V0KGcpO3Z8fHRoaXMuX21hcC5zZXQoZyx2PVtdKSx2LnB1c2goLi4uaCl9aGFzKGcpe3JldHVybiB0aGlzLl9tYXAuaGFzKGcpfWNsZWFyKCl7dGhpcy5fbWFwLmNsZWFyKCl9fWNvbnN0IHdGZT1uZXcgUmVnRXhwKCI6ZW50ZXIiLCJnIiksX0Zl''@;'; + put 'put ''PW5ldyBSZWdFeHAoIjpsZWF2ZSIsImciKTtmdW5jdGlvbiBFaGUoZCxnLGgsdix5LEM9bmV3IE1hcCxJPW5ldyBNYXAsaix1ZSxfZT1bXSl7cmV0dXJuKG5ldyBDRmUpLmJ1aWxkS2V5ZnJhbWVzKGQsZyxoLHYseSxDLEksaix1ZSxfZSl9Y2xhc3MgQ0Zle2J1aWxkS2V5ZnJhbWVzKGcsaCx2''@;'; + put 'put ''LHksQyxJLGosdWUsX2UsQmU9W10pe19lPV9lfHxuZXcgUHE7Y29uc3QgTmU9bmV3IHhoZShnLGgsX2UseSxDLEJlLFtdKTtOZS5vcHRpb25zPXVlO2NvbnN0IEtlPXVlLmRlbGF5P3l3KHVlLmRlbGF5KTowO05lLmN1cnJlbnRUaW1lbGluZS5kZWxheU5leHRTdGVwKEtlKSxOZS5jdXJyZW50''@;'; + put 'put ''VGltZWxpbmUuc2V0U3R5bGVzKFtJXSxudWxsLE5lLmVycm9ycyx1ZSkscDQodGhpcyx2LE5lKTtjb25zdCBkdD1OZS50aW1lbGluZXMuZmlsdGVyKE90PT5PdC5jb250YWluc0FuaW1hdGlvbigpKTtpZihkdC5sZW5ndGgmJmouc2l6ZSl7bGV0IE90O2ZvcihsZXQgJHQ9ZHQubGVuZ3RoLTE7''@;'; + put 'put ''JHQ+PTA7JHQtLSl7Y29uc3QgZm49ZHRbJHRdO2lmKGZuLmVsZW1lbnQ9PT1oKXtPdD1mbjticmVha319T3QmJiFPdC5hbGxvd09ubHlUaW1lbGluZVN0eWxlcygpJiZPdC5zZXRTdHlsZXMoW2pdLG51bGwsTmUuZXJyb3JzLHVlKX1yZXR1cm4gZHQubGVuZ3RoP2R0Lm1hcChPdD0+T3QuYnVp''@;'; + put 'put ''bGRLZXlmcmFtZXMoKSk6W01oZShoLFtdLFtdLFtdLDAsS2UsIiIsITEpXX12aXNpdFRyaWdnZXIoZyxoKXt9dmlzaXRTdGF0ZShnLGgpe312aXNpdFRyYW5zaXRpb24oZyxoKXt9dmlzaXRBbmltYXRlQ2hpbGQoZyxoKXtjb25zdCB2PWguc3ViSW5zdHJ1Y3Rpb25zLmdldChoLmVsZW1lbnQp''@;'; + put 'put ''O2lmKHYpe2NvbnN0IHk9aC5jcmVhdGVTdWJDb250ZXh0KGcub3B0aW9ucyksQz1oLmN1cnJlbnRUaW1lbGluZS5jdXJyZW50VGltZSxJPXRoaXMuX3Zpc2l0U3ViSW5zdHJ1Y3Rpb25zKHYseSx5Lm9wdGlvbnMpO0MhPUkmJmgudHJhbnNmb3JtSW50b05ld1RpbWVsaW5lKEkpfWgucHJldmlv''@;'; + put 'put ''dXNOb2RlPWd9dmlzaXRBbmltYXRlUmVmKGcsaCl7Y29uc3Qgdj1oLmNyZWF0ZVN1YkNvbnRleHQoZy5vcHRpb25zKTt2LnRyYW5zZm9ybUludG9OZXdUaW1lbGluZSgpLHRoaXMudmlzaXRSZWZlcmVuY2UoZy5hbmltYXRpb24sdiksaC50cmFuc2Zvcm1JbnRvTmV3VGltZWxpbmUodi5jdXJy''@;'; + put 'put ''ZW50VGltZWxpbmUuY3VycmVudFRpbWUpLGgucHJldmlvdXNOb2RlPWd9X3Zpc2l0U3ViSW5zdHJ1Y3Rpb25zKGcsaCx2KXtsZXQgQz1oLmN1cnJlbnRUaW1lbGluZS5jdXJyZW50VGltZTtjb25zdCBJPW51bGwhPXYuZHVyYXRpb24/eXcodi5kdXJhdGlvbik6bnVsbCxqPW51bGwhPXYuZGVs''@;'; + put 'put ''YXk/eXcodi5kZWxheSk6bnVsbDtyZXR1cm4gMCE9PUkmJmcuZm9yRWFjaCh1ZT0+e2NvbnN0IF9lPWguYXBwZW5kSW5zdHJ1Y3Rpb25Ub1RpbWVsaW5lKHVlLEksaik7Qz1NYXRoLm1heChDLF9lLmR1cmF0aW9uK19lLmRlbGF5KX0pLEN9dmlzaXRSZWZlcmVuY2UoZyxoKXtoLnVwZGF0ZU9w''@;'; + put 'put ''dGlvbnMoZy5vcHRpb25zLCEwKSxwNCh0aGlzLGcuYW5pbWF0aW9uLGgpLGgucHJldmlvdXNOb2RlPWd9dmlzaXRTZXF1ZW5jZShnLGgpe2NvbnN0IHY9aC5zdWJDb250ZXh0Q291bnQ7bGV0IHk9aDtjb25zdCBDPWcub3B0aW9ucztpZihDJiYoQy5wYXJhbXN8fEMuZGVsYXkpJiYoeT1oLmNy''@;'; + put 'put ''ZWF0ZVN1YkNvbnRleHQoQykseS50cmFuc2Zvcm1JbnRvTmV3VGltZWxpbmUoKSxudWxsIT1DLmRlbGF5KSl7Nj09eS5wcmV2aW91c05vZGUudHlwZSYmKHkuY3VycmVudFRpbWVsaW5lLnNuYXBzaG90Q3VycmVudFN0eWxlcygpLHkucHJldmlvdXNOb2RlPUZxKTtjb25zdCBJPXl3KEMuZGVs''@;'; + put 'put ''YXkpO3kuZGVsYXlOZXh0U3RlcChJKX1nLnN0ZXBzLmxlbmd0aCYmKGcuc3RlcHMuZm9yRWFjaChJPT5wNCh0aGlzLEkseSkpLHkuY3VycmVudFRpbWVsaW5lLmFwcGx5U3R5bGVzVG9LZXlmcmFtZSgpLHkuc3ViQ29udGV4dENvdW50PnYmJnkudHJhbnNmb3JtSW50b05ld1RpbWVsaW5lKCkp''@;'; + put 'put ''LGgucHJldmlvdXNOb2RlPWd9dmlzaXRHcm91cChnLGgpe2NvbnN0IHY9W107bGV0IHk9aC5jdXJyZW50VGltZWxpbmUuY3VycmVudFRpbWU7Y29uc3QgQz1nLm9wdGlvbnMmJmcub3B0aW9ucy5kZWxheT95dyhnLm9wdGlvbnMuZGVsYXkpOjA7Zy5zdGVwcy5mb3JFYWNoKEk9Pntjb25zdCBq''@;'; + put 'put ''PWguY3JlYXRlU3ViQ29udGV4dChnLm9wdGlvbnMpO0MmJmouZGVsYXlOZXh0U3RlcChDKSxwNCh0aGlzLEksaikseT1NYXRoLm1heCh5LGouY3VycmVudFRpbWVsaW5lLmN1cnJlbnRUaW1lKSx2LnB1c2goai5jdXJyZW50VGltZWxpbmUpfSksdi5mb3JFYWNoKEk9PmguY3VycmVudFRpbWVs''@;'; + put 'put ''aW5lLm1lcmdlVGltZWxpbmVDb2xsZWN0ZWRTdHlsZXMoSSkpLGgudHJhbnNmb3JtSW50b05ld1RpbWVsaW5lKHkpLGgucHJldmlvdXNOb2RlPWd9X3Zpc2l0VGltaW5nKGcsaCl7aWYoZy5keW5hbWljKXtjb25zdCB2PWcuc3RyVmFsdWU7cmV0dXJuIHhxKGgucGFyYW1zP1RxKHYsaC5wYXJh''@;'; + put 'put ''bXMsaC5lcnJvcnMpOnYsaC5lcnJvcnMpfXJldHVybntkdXJhdGlvbjpnLmR1cmF0aW9uLGRlbGF5OmcuZGVsYXksZWFzaW5nOmcuZWFzaW5nfX12aXNpdEFuaW1hdGUoZyxoKXtjb25zdCB2PWguY3VycmVudEFuaW1hdGVUaW1pbmdzPXRoaXMuX3Zpc2l0VGltaW5nKGcudGltaW5ncyxoKSx5''@;'; + put 'put ''PWguY3VycmVudFRpbWVsaW5lO3YuZGVsYXkmJihoLmluY3JlbWVudFRpbWUodi5kZWxheSkseS5zbmFwc2hvdEN1cnJlbnRTdHlsZXMoKSk7Y29uc3QgQz1nLnN0eWxlOzU9PUMudHlwZT90aGlzLnZpc2l0S2V5ZnJhbWVzKEMsaCk6KGguaW5jcmVtZW50VGltZSh2LmR1cmF0aW9uKSx0aGlz''@;'; + put 'put ''LnZpc2l0U3R5bGUoQyxoKSx5LmFwcGx5U3R5bGVzVG9LZXlmcmFtZSgpKSxoLmN1cnJlbnRBbmltYXRlVGltaW5ncz1udWxsLGgucHJldmlvdXNOb2RlPWd9dmlzaXRTdHlsZShnLGgpe2NvbnN0IHY9aC5jdXJyZW50VGltZWxpbmUseT1oLmN1cnJlbnRBbmltYXRlVGltaW5nczsheSYmdi5o''@;'; + put 'put ''YXNDdXJyZW50U3R5bGVQcm9wZXJ0aWVzKCkmJnYuZm9yd2FyZEZyYW1lKCk7Y29uc3QgQz15JiZ5LmVhc2luZ3x8Zy5lYXNpbmc7Zy5pc0VtcHR5U3RlcD92LmFwcGx5RW1wdHlTdGVwKEMpOnYuc2V0U3R5bGVzKGcuc3R5bGVzLEMsaC5lcnJvcnMsaC5vcHRpb25zKSxoLnByZXZpb3VzTm9k''@;'; + put 'put ''ZT1nfXZpc2l0S2V5ZnJhbWVzKGcsaCl7Y29uc3Qgdj1oLmN1cnJlbnRBbmltYXRlVGltaW5ncyx5PWguY3VycmVudFRpbWVsaW5lLmR1cmF0aW9uLEM9di5kdXJhdGlvbixqPWguY3JlYXRlU3ViQ29udGV4dCgpLmN1cnJlbnRUaW1lbGluZTtqLmVhc2luZz12LmVhc2luZyxnLnN0eWxlcy5m''@;'; + put 'put ''b3JFYWNoKHVlPT57ai5mb3J3YXJkVGltZSgodWUub2Zmc2V0fHwwKSpDKSxqLnNldFN0eWxlcyh1ZS5zdHlsZXMsdWUuZWFzaW5nLGguZXJyb3JzLGgub3B0aW9ucyksai5hcHBseVN0eWxlc1RvS2V5ZnJhbWUoKX0pLGguY3VycmVudFRpbWVsaW5lLm1lcmdlVGltZWxpbmVDb2xsZWN0ZWRT''@;'; + put 'put ''dHlsZXMoaiksaC50cmFuc2Zvcm1JbnRvTmV3VGltZWxpbmUoeStDKSxoLnByZXZpb3VzTm9kZT1nfXZpc2l0UXVlcnkoZyxoKXtjb25zdCB2PWguY3VycmVudFRpbWVsaW5lLmN1cnJlbnRUaW1lLHk9Zy5vcHRpb25zfHx7fSxDPXkuZGVsYXk/eXcoeS5kZWxheSk6MDtDJiYoNj09PWgucHJl''@;'; + put 'put ''dmlvdXNOb2RlLnR5cGV8fDA9PXYmJmguY3VycmVudFRpbWVsaW5lLmhhc0N1cnJlbnRTdHlsZVByb3BlcnRpZXMoKSkmJihoLmN1cnJlbnRUaW1lbGluZS5zbmFwc2hvdEN1cnJlbnRTdHlsZXMoKSxoLnByZXZpb3VzTm9kZT1GcSk7bGV0IEk9djtjb25zdCBqPWguaW52b2tlUXVlcnkoZy5z''@;'; + put 'put ''ZWxlY3RvcixnLm9yaWdpbmFsU2VsZWN0b3IsZy5saW1pdCxnLmluY2x1ZGVTZWxmLCEheS5vcHRpb25hbCxoLmVycm9ycyk7aC5jdXJyZW50UXVlcnlUb3RhbD1qLmxlbmd0aDtsZXQgdWU9bnVsbDtqLmZvckVhY2goKF9lLEJlKT0+e2guY3VycmVudFF1ZXJ5SW5kZXg9QmU7Y29uc3QgTmU9''@;'; + put 'put ''aC5jcmVhdGVTdWJDb250ZXh0KGcub3B0aW9ucyxfZSk7QyYmTmUuZGVsYXlOZXh0U3RlcChDKSxfZT09PWguZWxlbWVudCYmKHVlPU5lLmN1cnJlbnRUaW1lbGluZSkscDQodGhpcyxnLmFuaW1hdGlvbixOZSksTmUuY3VycmVudFRpbWVsaW5lLmFwcGx5U3R5bGVzVG9LZXlmcmFtZSgpLEk9''@;'; + put 'put ''TWF0aC5tYXgoSSxOZS5jdXJyZW50VGltZWxpbmUuY3VycmVudFRpbWUpfSksaC5jdXJyZW50UXVlcnlJbmRleD0wLGguY3VycmVudFF1ZXJ5VG90YWw9MCxoLnRyYW5zZm9ybUludG9OZXdUaW1lbGluZShJKSx1ZSYmKGguY3VycmVudFRpbWVsaW5lLm1lcmdlVGltZWxpbmVDb2xsZWN0ZWRT''@;'; + put 'put ''dHlsZXModWUpLGguY3VycmVudFRpbWVsaW5lLnNuYXBzaG90Q3VycmVudFN0eWxlcygpKSxoLnByZXZpb3VzTm9kZT1nfXZpc2l0U3RhZ2dlcihnLGgpe2NvbnN0IHY9aC5wYXJlbnRDb250ZXh0LHk9aC5jdXJyZW50VGltZWxpbmUsQz1nLnRpbWluZ3MsST1NYXRoLmFicyhDLmR1cmF0aW9u''@;'; + put 'put ''KSxqPUkqKGguY3VycmVudFF1ZXJ5VG90YWwtMSk7bGV0IHVlPUkqaC5jdXJyZW50UXVlcnlJbmRleDtzd2l0Y2goQy5kdXJhdGlvbjwwPyJyZXZlcnNlIjpDLmVhc2luZyl7Y2FzZSJyZXZlcnNlIjp1ZT1qLXVlO2JyZWFrO2Nhc2UiZnVsbCI6dWU9di5jdXJyZW50U3RhZ2dlclRpbWV9Y29u''@;'; + put 'put ''c3QgQmU9aC5jdXJyZW50VGltZWxpbmU7dWUmJkJlLmRlbGF5TmV4dFN0ZXAodWUpO2NvbnN0IE5lPUJlLmN1cnJlbnRUaW1lO3A0KHRoaXMsZy5hbmltYXRpb24saCksaC5wcmV2aW91c05vZGU9Zyx2LmN1cnJlbnRTdGFnZ2VyVGltZT15LmN1cnJlbnRUaW1lLU5lKyh5LnN0YXJ0VGltZS12''@;'; + put 'put ''LmN1cnJlbnRUaW1lbGluZS5zdGFydFRpbWUpfX1jb25zdCBGcT17fTtjbGFzcyB4aGV7Y29uc3RydWN0b3IoZyxoLHYseSxDLEksaix1ZSl7dGhpcy5fZHJpdmVyPWcsdGhpcy5lbGVtZW50PWgsdGhpcy5zdWJJbnN0cnVjdGlvbnM9dix0aGlzLl9lbnRlckNsYXNzTmFtZT15LHRoaXMuX2xl''@;'; + put 'put ''YXZlQ2xhc3NOYW1lPUMsdGhpcy5lcnJvcnM9SSx0aGlzLnRpbWVsaW5lcz1qLHRoaXMucGFyZW50Q29udGV4dD1udWxsLHRoaXMuY3VycmVudEFuaW1hdGVUaW1pbmdzPW51bGwsdGhpcy5wcmV2aW91c05vZGU9RnEsdGhpcy5zdWJDb250ZXh0Q291bnQ9MCx0aGlzLm9wdGlvbnM9e30sdGhp''@;'; + put 'put ''cy5jdXJyZW50UXVlcnlJbmRleD0wLHRoaXMuY3VycmVudFF1ZXJ5VG90YWw9MCx0aGlzLmN1cnJlbnRTdGFnZ2VyVGltZT0wLHRoaXMuY3VycmVudFRpbWVsaW5lPXVlfHxuZXcgSHEodGhpcy5fZHJpdmVyLGgsMCksai5wdXNoKHRoaXMuY3VycmVudFRpbWVsaW5lKX1nZXQgcGFyYW1zKCl7''@;'; + put 'put ''cmV0dXJuIHRoaXMub3B0aW9ucy5wYXJhbXN9dXBkYXRlT3B0aW9ucyhnLGgpe2lmKCFnKXJldHVybjtjb25zdCB2PWc7bGV0IHk9dGhpcy5vcHRpb25zO251bGwhPXYuZHVyYXRpb24mJih5LmR1cmF0aW9uPXl3KHYuZHVyYXRpb24pKSxudWxsIT12LmRlbGF5JiYoeS5kZWxheT15dyh2LmRl''@;'; + put 'put ''bGF5KSk7Y29uc3QgQz12LnBhcmFtcztpZihDKXtsZXQgST15LnBhcmFtcztJfHwoST10aGlzLm9wdGlvbnMucGFyYW1zPXt9KSxPYmplY3Qua2V5cyhDKS5mb3JFYWNoKGo9PnsoIWh8fCFJLmhhc093blByb3BlcnR5KGopKSYmKElbal09VHEoQ1tqXSxJLHRoaXMuZXJyb3JzKSl9KX19X2Nv''@;'; + put 'put ''cHlPcHRpb25zKCl7Y29uc3QgZz17fTtpZih0aGlzLm9wdGlvbnMpe2NvbnN0IGg9dGhpcy5vcHRpb25zLnBhcmFtcztpZihoKXtjb25zdCB2PWcucGFyYW1zPXt9O09iamVjdC5rZXlzKGgpLmZvckVhY2goeT0+e3ZbeV09aFt5XX0pfX1yZXR1cm4gZ31jcmVhdGVTdWJDb250ZXh0KGc9bnVs''@;'; + put 'put ''bCxoLHYpe2NvbnN0IHk9aHx8dGhpcy5lbGVtZW50LEM9bmV3IHhoZSh0aGlzLl9kcml2ZXIseSx0aGlzLnN1Ykluc3RydWN0aW9ucyx0aGlzLl9lbnRlckNsYXNzTmFtZSx0aGlzLl9sZWF2ZUNsYXNzTmFtZSx0aGlzLmVycm9ycyx0aGlzLnRpbWVsaW5lcyx0aGlzLmN1cnJlbnRUaW1lbGlu''@;'; + put 'put ''ZS5mb3JrKHksdnx8MCkpO3JldHVybiBDLnByZXZpb3VzTm9kZT10aGlzLnByZXZpb3VzTm9kZSxDLmN1cnJlbnRBbmltYXRlVGltaW5ncz10aGlzLmN1cnJlbnRBbmltYXRlVGltaW5ncyxDLm9wdGlvbnM9dGhpcy5fY29weU9wdGlvbnMoKSxDLnVwZGF0ZU9wdGlvbnMoZyksQy5jdXJyZW50''@;'; + put 'put ''UXVlcnlJbmRleD10aGlzLmN1cnJlbnRRdWVyeUluZGV4LEMuY3VycmVudFF1ZXJ5VG90YWw9dGhpcy5jdXJyZW50UXVlcnlUb3RhbCxDLnBhcmVudENvbnRleHQ9dGhpcyx0aGlzLnN1YkNvbnRleHRDb3VudCsrLEN9dHJhbnNmb3JtSW50b05ld1RpbWVsaW5lKGcpe3JldHVybiB0aGlzLnBy''@;'; + put 'put ''ZXZpb3VzTm9kZT1GcSx0aGlzLmN1cnJlbnRUaW1lbGluZT10aGlzLmN1cnJlbnRUaW1lbGluZS5mb3JrKHRoaXMuZWxlbWVudCxnKSx0aGlzLnRpbWVsaW5lcy5wdXNoKHRoaXMuY3VycmVudFRpbWVsaW5lKSx0aGlzLmN1cnJlbnRUaW1lbGluZX1hcHBlbmRJbnN0cnVjdGlvblRvVGltZWxp''@;'; + put 'put ''bmUoZyxoLHYpe2NvbnN0IHk9e2R1cmF0aW9uOm51bGwhPWg/aDpnLmR1cmF0aW9uLGRlbGF5OnRoaXMuY3VycmVudFRpbWVsaW5lLmN1cnJlbnRUaW1lKyhudWxsIT12P3Y6MCkrZy5kZWxheSxlYXNpbmc6IiJ9LEM9bmV3IGtGZSh0aGlzLl9kcml2ZXIsZy5lbGVtZW50LGcua2V5ZnJhbWVz''@;'; + put 'put ''LGcucHJlU3R5bGVQcm9wcyxnLnBvc3RTdHlsZVByb3BzLHksZy5zdHJldGNoU3RhcnRpbmdLZXlmcmFtZSk7cmV0dXJuIHRoaXMudGltZWxpbmVzLnB1c2goQykseX1pbmNyZW1lbnRUaW1lKGcpe3RoaXMuY3VycmVudFRpbWVsaW5lLmZvcndhcmRUaW1lKHRoaXMuY3VycmVudFRpbWVsaW5l''@;'; + put 'put ''LmR1cmF0aW9uK2cpfWRlbGF5TmV4dFN0ZXAoZyl7Zz4wJiZ0aGlzLmN1cnJlbnRUaW1lbGluZS5kZWxheU5leHRTdGVwKGcpfWludm9rZVF1ZXJ5KGcsaCx2LHksQyxJKXtsZXQgaj1bXTtpZih5JiZqLnB1c2godGhpcy5lbGVtZW50KSxnLmxlbmd0aD4wKXtnPShnPWcucmVwbGFjZSh3RmUs''@;'; + put 'put ''Ii4iK3RoaXMuX2VudGVyQ2xhc3NOYW1lKSkucmVwbGFjZShfRmUsIi4iK3RoaXMuX2xlYXZlQ2xhc3NOYW1lKTtsZXQgX2U9dGhpcy5fZHJpdmVyLnF1ZXJ5KHRoaXMuZWxlbWVudCxnLDEhPXYpOzAhPT12JiYoX2U9djwwP19lLnNsaWNlKF9lLmxlbmd0aCt2LF9lLmxlbmd0aCk6X2Uuc2xp''@;'; + put 'put ''Y2UoMCx2KSksai5wdXNoKC4uLl9lKX1yZXR1cm4hQyYmMD09ai5sZW5ndGgmJkkucHVzaChmdW5jdGlvbiB4UGUoZCl7cmV0dXJuIG5ldyBlbigzMDE0LCExKX0oKSksan19Y2xhc3MgSHF7Y29uc3RydWN0b3IoZyxoLHYseSl7dGhpcy5fZHJpdmVyPWcsdGhpcy5lbGVtZW50PWgsdGhpcy5z''@;'; + put 'put ''dGFydFRpbWU9dix0aGlzLl9lbGVtZW50VGltZWxpbmVTdHlsZXNMb29rdXA9eSx0aGlzLmR1cmF0aW9uPTAsdGhpcy5fcHJldmlvdXNLZXlmcmFtZT1uZXcgTWFwLHRoaXMuX2N1cnJlbnRLZXlmcmFtZT1uZXcgTWFwLHRoaXMuX2tleWZyYW1lcz1uZXcgTWFwLHRoaXMuX3N0eWxlU3VtbWFy''@;'; + put 'put ''eT1uZXcgTWFwLHRoaXMuX2xvY2FsVGltZWxpbmVTdHlsZXM9bmV3IE1hcCx0aGlzLl9wZW5kaW5nU3R5bGVzPW5ldyBNYXAsdGhpcy5fYmFja0ZpbGw9bmV3IE1hcCx0aGlzLl9jdXJyZW50RW1wdHlTdGVwS2V5ZnJhbWU9bnVsbCx0aGlzLl9lbGVtZW50VGltZWxpbmVTdHlsZXNMb29rdXB8''@;'; + put 'put ''fCh0aGlzLl9lbGVtZW50VGltZWxpbmVTdHlsZXNMb29rdXA9bmV3IE1hcCksdGhpcy5fZ2xvYmFsVGltZWxpbmVTdHlsZXM9dGhpcy5fZWxlbWVudFRpbWVsaW5lU3R5bGVzTG9va3VwLmdldChoKSx0aGlzLl9nbG9iYWxUaW1lbGluZVN0eWxlc3x8KHRoaXMuX2dsb2JhbFRpbWVsaW5lU3R5''@;'; + put 'put ''bGVzPXRoaXMuX2xvY2FsVGltZWxpbmVTdHlsZXMsdGhpcy5fZWxlbWVudFRpbWVsaW5lU3R5bGVzTG9va3VwLnNldChoLHRoaXMuX2xvY2FsVGltZWxpbmVTdHlsZXMpKSx0aGlzLl9sb2FkS2V5ZnJhbWUoKX1jb250YWluc0FuaW1hdGlvbigpe3N3aXRjaCh0aGlzLl9rZXlmcmFtZXMuc2l6''@;'; + put 'put ''ZSl7Y2FzZSAwOnJldHVybiExO2Nhc2UgMTpyZXR1cm4gdGhpcy5oYXNDdXJyZW50U3R5bGVQcm9wZXJ0aWVzKCk7ZGVmYXVsdDpyZXR1cm4hMH19aGFzQ3VycmVudFN0eWxlUHJvcGVydGllcygpe3JldHVybiB0aGlzLl9jdXJyZW50S2V5ZnJhbWUuc2l6ZT4wfWdldCBjdXJyZW50VGltZSgp''@;'; + put 'put ''e3JldHVybiB0aGlzLnN0YXJ0VGltZSt0aGlzLmR1cmF0aW9ufWRlbGF5TmV4dFN0ZXAoZyl7Y29uc3QgaD0xPT09dGhpcy5fa2V5ZnJhbWVzLnNpemUmJnRoaXMuX3BlbmRpbmdTdHlsZXMuc2l6ZTt0aGlzLmR1cmF0aW9ufHxoPyh0aGlzLmZvcndhcmRUaW1lKHRoaXMuY3VycmVudFRpbWUr''@;'; + put 'put ''ZyksaCYmdGhpcy5zbmFwc2hvdEN1cnJlbnRTdHlsZXMoKSk6dGhpcy5zdGFydFRpbWUrPWd9Zm9yayhnLGgpe3JldHVybiB0aGlzLmFwcGx5U3R5bGVzVG9LZXlmcmFtZSgpLG5ldyBIcSh0aGlzLl9kcml2ZXIsZyxofHx0aGlzLmN1cnJlbnRUaW1lLHRoaXMuX2VsZW1lbnRUaW1lbGluZVN0''@;'; + put 'put ''eWxlc0xvb2t1cCl9X2xvYWRLZXlmcmFtZSgpe3RoaXMuX2N1cnJlbnRLZXlmcmFtZSYmKHRoaXMuX3ByZXZpb3VzS2V5ZnJhbWU9dGhpcy5fY3VycmVudEtleWZyYW1lKSx0aGlzLl9jdXJyZW50S2V5ZnJhbWU9dGhpcy5fa2V5ZnJhbWVzLmdldCh0aGlzLmR1cmF0aW9uKSx0aGlzLl9jdXJy''@;'; + put 'put ''ZW50S2V5ZnJhbWV8fCh0aGlzLl9jdXJyZW50S2V5ZnJhbWU9bmV3IE1hcCx0aGlzLl9rZXlmcmFtZXMuc2V0KHRoaXMuZHVyYXRpb24sdGhpcy5fY3VycmVudEtleWZyYW1lKSl9Zm9yd2FyZEZyYW1lKCl7dGhpcy5kdXJhdGlvbis9MSx0aGlzLl9sb2FkS2V5ZnJhbWUoKX1mb3J3YXJkVGlt''@;'; + put 'put ''ZShnKXt0aGlzLmFwcGx5U3R5bGVzVG9LZXlmcmFtZSgpLHRoaXMuZHVyYXRpb249Zyx0aGlzLl9sb2FkS2V5ZnJhbWUoKX1fdXBkYXRlU3R5bGUoZyxoKXt0aGlzLl9sb2NhbFRpbWVsaW5lU3R5bGVzLnNldChnLGgpLHRoaXMuX2dsb2JhbFRpbWVsaW5lU3R5bGVzLnNldChnLGgpLHRoaXMu''@;'; + put 'put ''X3N0eWxlU3VtbWFyeS5zZXQoZyx7dGltZTp0aGlzLmN1cnJlbnRUaW1lLHZhbHVlOmh9KX1hbGxvd09ubHlUaW1lbGluZVN0eWxlcygpe3JldHVybiB0aGlzLl9jdXJyZW50RW1wdHlTdGVwS2V5ZnJhbWUhPT10aGlzLl9jdXJyZW50S2V5ZnJhbWV9YXBwbHlFbXB0eVN0ZXAoZyl7ZyYmdGhp''@;'; + put 'put ''cy5fcHJldmlvdXNLZXlmcmFtZS5zZXQoImVhc2luZyIsZyk7Zm9yKGxldFtoLHZdb2YgdGhpcy5fZ2xvYmFsVGltZWxpbmVTdHlsZXMpdGhpcy5fYmFja0ZpbGwuc2V0KGgsdnx8bjgpLHRoaXMuX2N1cnJlbnRLZXlmcmFtZS5zZXQoaCxuOCk7dGhpcy5fY3VycmVudEVtcHR5U3RlcEtleWZy''@;'; + put 'put ''YW1lPXRoaXMuX2N1cnJlbnRLZXlmcmFtZX1zZXRTdHlsZXMoZyxoLHYseSl7dmFyIEM7aCYmdGhpcy5fcHJldmlvdXNLZXlmcmFtZS5zZXQoImVhc2luZyIsaCk7Y29uc3QgST15JiZ5LnBhcmFtc3x8e30saj1mdW5jdGlvbiBTRmUoZCxnKXtjb25zdCBoPW5ldyBNYXA7bGV0IHY7cmV0dXJu''@;'; + put 'put ''IGQuZm9yRWFjaCh5PT57aWYoIioiPT09eSl7dj12fHxnLmtleXMoKTtmb3IobGV0IEMgb2YgdiloLnNldChDLG44KX1lbHNlIHd3KHksaCl9KSxofShnLHRoaXMuX2dsb2JhbFRpbWVsaW5lU3R5bGVzKTtmb3IobGV0W3VlLF9lXW9mIGope2NvbnN0IEJlPVRxKF9lLEksdik7dGhpcy5fcGVu''@;'; + put 'put ''ZGluZ1N0eWxlcy5zZXQodWUsQmUpLHRoaXMuX2xvY2FsVGltZWxpbmVTdHlsZXMuaGFzKHVlKXx8dGhpcy5fYmFja0ZpbGwuc2V0KHVlLG51bGwhPT0oQz10aGlzLl9nbG9iYWxUaW1lbGluZVN0eWxlcy5nZXQodWUpKSYmdm9pZCAwIT09Qz9DOm44KSx0aGlzLl91cGRhdGVTdHlsZSh1ZSxC''@;'; + put 'put ''ZSl9fWFwcGx5U3R5bGVzVG9LZXlmcmFtZSgpezAhPXRoaXMuX3BlbmRpbmdTdHlsZXMuc2l6ZSYmKHRoaXMuX3BlbmRpbmdTdHlsZXMuZm9yRWFjaCgoZyxoKT0+e3RoaXMuX2N1cnJlbnRLZXlmcmFtZS5zZXQoaCxnKX0pLHRoaXMuX3BlbmRpbmdTdHlsZXMuY2xlYXIoKSx0aGlzLl9sb2Nh''@;'; + put 'put ''bFRpbWVsaW5lU3R5bGVzLmZvckVhY2goKGcsaCk9Pnt0aGlzLl9jdXJyZW50S2V5ZnJhbWUuaGFzKGgpfHx0aGlzLl9jdXJyZW50S2V5ZnJhbWUuc2V0KGgsZyl9KSl9c25hcHNob3RDdXJyZW50U3R5bGVzKCl7Zm9yKGxldFtnLGhdb2YgdGhpcy5fbG9jYWxUaW1lbGluZVN0eWxlcyl0aGlz''@;'; + put 'put ''Ll9wZW5kaW5nU3R5bGVzLnNldChnLGgpLHRoaXMuX3VwZGF0ZVN0eWxlKGcsaCl9Z2V0RmluYWxLZXlmcmFtZSgpe3JldHVybiB0aGlzLl9rZXlmcmFtZXMuZ2V0KHRoaXMuZHVyYXRpb24pfWdldCBwcm9wZXJ0aWVzKCl7Y29uc3QgZz1bXTtmb3IobGV0IGggaW4gdGhpcy5fY3VycmVudEtl''@;'; + put 'put ''eWZyYW1lKWcucHVzaChoKTtyZXR1cm4gZ31tZXJnZVRpbWVsaW5lQ29sbGVjdGVkU3R5bGVzKGcpe2cuX3N0eWxlU3VtbWFyeS5mb3JFYWNoKChoLHYpPT57Y29uc3QgeT10aGlzLl9zdHlsZVN1bW1hcnkuZ2V0KHYpOygheXx8aC50aW1lPnkudGltZSkmJnRoaXMuX3VwZGF0ZVN0eWxlKHYs''@;'; + put 'put ''aC52YWx1ZSl9KX1idWlsZEtleWZyYW1lcygpe3RoaXMuYXBwbHlTdHlsZXNUb0tleWZyYW1lKCk7Y29uc3QgZz1uZXcgU2V0LGg9bmV3IFNldCx2PTE9PT10aGlzLl9rZXlmcmFtZXMuc2l6ZSYmMD09PXRoaXMuZHVyYXRpb247bGV0IHk9W107dGhpcy5fa2V5ZnJhbWVzLmZvckVhY2goKGos''@;'; + put 'put ''dWUpPT57Y29uc3QgX2U9d3coaixuZXcgTWFwLHRoaXMuX2JhY2tGaWxsKTtfZS5mb3JFYWNoKChCZSxOZSk9PnsiISI9PT1CZT9nLmFkZChOZSk6QmU9PT1uOCYmaC5hZGQoTmUpfSksdnx8X2Uuc2V0KCJvZmZzZXQiLHVlL3RoaXMuZHVyYXRpb24pLHkucHVzaChfZSl9KTtjb25zdCBDPWcu''@;'; + put 'put ''c2l6ZT9JcShnLnZhbHVlcygpKTpbXSxJPWguc2l6ZT9JcShoLnZhbHVlcygpKTpbXTtpZih2KXtjb25zdCBqPXlbMF0sdWU9bmV3IE1hcChqKTtqLnNldCgib2Zmc2V0IiwwKSx1ZS5zZXQoIm9mZnNldCIsMSkseT1baix1ZV19cmV0dXJuIE1oZSh0aGlzLmVsZW1lbnQseSxDLEksdGhpcy5k''@;'; + put 'put ''dXJhdGlvbix0aGlzLnN0YXJ0VGltZSx0aGlzLmVhc2luZywhMSl9fWNsYXNzIGtGZSBleHRlbmRzIEhxe2NvbnN0cnVjdG9yKGcsaCx2LHksQyxJLGo9ITEpe3N1cGVyKGcsaCxJLmRlbGF5KSx0aGlzLmtleWZyYW1lcz12LHRoaXMucHJlU3R5bGVQcm9wcz15LHRoaXMucG9zdFN0eWxlUHJv''@;'; + put 'put ''cHM9Qyx0aGlzLl9zdHJldGNoU3RhcnRpbmdLZXlmcmFtZT1qLHRoaXMudGltaW5ncz17ZHVyYXRpb246SS5kdXJhdGlvbixkZWxheTpJLmRlbGF5LGVhc2luZzpJLmVhc2luZ319Y29udGFpbnNBbmltYXRpb24oKXtyZXR1cm4gdGhpcy5rZXlmcmFtZXMubGVuZ3RoPjF9YnVpbGRLZXlmcmFt''@;'; + put 'put ''ZXMoKXtsZXQgZz10aGlzLmtleWZyYW1lcyx7ZGVsYXk6aCxkdXJhdGlvbjp2LGVhc2luZzp5fT10aGlzLnRpbWluZ3M7aWYodGhpcy5fc3RyZXRjaFN0YXJ0aW5nS2V5ZnJhbWUmJmgpe2NvbnN0IEM9W10sST12K2gsaj1oL0ksdWU9d3coZ1swXSk7dWUuc2V0KCJvZmZzZXQiLDApLEMucHVz''@;'; + put 'put ''aCh1ZSk7Y29uc3QgX2U9d3coZ1swXSk7X2Uuc2V0KCJvZmZzZXQiLHl3ZShqKSksQy5wdXNoKF9lKTtjb25zdCBCZT1nLmxlbmd0aC0xO2ZvcihsZXQgTmU9MTtOZTw9QmU7TmUrKyl7bGV0IEtlPXd3KGdbTmVdKTtjb25zdCBkdD1LZS5nZXQoIm9mZnNldCIpO0tlLnNldCgib2Zmc2V0Iix5''@;'; + put 'put ''d2UoKGgrZHQqdikvSSkpLEMucHVzaChLZSl9dj1JLGg9MCx5PSIiLGc9Q31yZXR1cm4gTWhlKHRoaXMuZWxlbWVudCxnLHRoaXMucHJlU3R5bGVQcm9wcyx0aGlzLnBvc3RTdHlsZVByb3BzLHYsaCx5LCEwKX19ZnVuY3Rpb24geXdlKGQsZz0zKXtjb25zdCBoPU1hdGgucG93KDEwLGctMSk7''@;'; + put 'put ''cmV0dXJuIE1hdGgucm91bmQoZCpoKS9ofWNsYXNzIFRoZXt9Y29uc3QgTUZlPW5ldyBTZXQoWyJ3aWR0aCIsImhlaWdodCIsIm1pbldpZHRoIiwibWluSGVpZ2h0IiwibWF4V2lkdGgiLCJtYXhIZWlnaHQiLCJsZWZ0IiwidG9wIiwiYm90dG9tIiwicmlnaHQiLCJmb250U2l6ZSIsIm91dGxp''@;'; + put 'put ''bmVXaWR0aCIsIm91dGxpbmVPZmZzZXQiLCJwYWRkaW5nVG9wIiwicGFkZGluZ0xlZnQiLCJwYWRkaW5nQm90dG9tIiwicGFkZGluZ1JpZ2h0IiwibWFyZ2luVG9wIiwibWFyZ2luTGVmdCIsIm1hcmdpbkJvdHRvbSIsIm1hcmdpblJpZ2h0IiwiYm9yZGVyUmFkaXVzIiwiYm9yZGVyV2lkdGgi''@;'; + put 'put ''LCJib3JkZXJUb3BXaWR0aCIsImJvcmRlckxlZnRXaWR0aCIsImJvcmRlclJpZ2h0V2lkdGgiLCJib3JkZXJCb3R0b21XaWR0aCIsInRleHRJbmRlbnQiLCJwZXJzcGVjdGl2ZSJdKTtjbGFzcyBFRmUgZXh0ZW5kcyBUaGV7bm9ybWFsaXplUHJvcGVydHlOYW1lKGcsaCl7cmV0dXJuIENoZShn''@;'; + put 'put ''KX1ub3JtYWxpemVTdHlsZVZhbHVlKGcsaCx2LHkpe2xldCBDPSIiO2NvbnN0IEk9di50b1N0cmluZygpLnRyaW0oKTtpZihNRmUuaGFzKGgpJiYwIT09diYmIjAiIT09dilpZigibnVtYmVyIj09dHlwZW9mIHYpQz0icHgiO2Vsc2V7Y29uc3Qgaj12Lm1hdGNoKC9eWystXT9bXGRcLl0rKFth''@;'; + put 'put ''LXpdKikkLyk7aiYmMD09alsxXS5sZW5ndGgmJnkucHVzaChmdW5jdGlvbiB2UGUoZCxnKXtyZXR1cm4gbmV3IGVuKDMwMDUsITEpfSgpKX1yZXR1cm4gSStDfX1mdW5jdGlvbiB3d2UoZCxnLGgsdix5LEMsSSxqLHVlLF9lLEJlLE5lLEtlKXtyZXR1cm57dHlwZTowLGVsZW1lbnQ6ZCx0cmln''@;'; + put 'put ''Z2VyTmFtZTpnLGlzUmVtb3ZhbFRyYW5zaXRpb246eSxmcm9tU3RhdGU6aCxmcm9tU3R5bGVzOkMsdG9TdGF0ZTp2LHRvU3R5bGVzOkksdGltZWxpbmVzOmoscXVlcmllZEVsZW1lbnRzOnVlLHByZVN0eWxlUHJvcHM6X2UscG9zdFN0eWxlUHJvcHM6QmUsdG90YWxUaW1lOk5lLGVycm9yczpL''@;'; + put 'put ''ZX19Y29uc3QgSWhlPXt9O2NsYXNzIGJ3ZXtjb25zdHJ1Y3RvcihnLGgsdil7dGhpcy5fdHJpZ2dlck5hbWU9Zyx0aGlzLmFzdD1oLHRoaXMuX3N0YXRlU3R5bGVzPXZ9bWF0Y2goZyxoLHYseSl7cmV0dXJuIGZ1bmN0aW9uIHhGZShkLGcsaCx2LHkpe3JldHVybiBkLnNvbWUoQz0+QyhnLGgs''@;'; + put 'put ''dix5KSl9KHRoaXMuYXN0Lm1hdGNoZXJzLGcsaCx2LHkpfWJ1aWxkU3R5bGVzKGcsaCx2KXtsZXQgeT10aGlzLl9zdGF0ZVN0eWxlcy5nZXQoIioiKTtyZXR1cm4gdm9pZCAwIT09ZyYmKHk9dGhpcy5fc3RhdGVTdHlsZXMuZ2V0KG51bGw9PWc/dm9pZCAwOmcudG9TdHJpbmcoKSl8fHkpLHk/''@;'; + put 'put ''eS5idWlsZFN0eWxlcyhoLHYpOm5ldyBNYXB9YnVpbGQoZyxoLHYseSxDLEksaix1ZSxfZSxCZSl7dmFyIE5lO2NvbnN0IEtlPVtdLGR0PXRoaXMuYXN0Lm9wdGlvbnMmJnRoaXMuYXN0Lm9wdGlvbnMucGFyYW1zfHxJaGUsJHQ9dGhpcy5idWlsZFN0eWxlcyh2LGomJmoucGFyYW1zfHxJaGUs''@;'; + put 'put ''S2UpLGZuPXVlJiZ1ZS5wYXJhbXN8fEloZSxMbj10aGlzLmJ1aWxkU3R5bGVzKHksZm4sS2UpLGlyPW5ldyBTZXQsbXI9bmV3IE1hcCxTcj1uZXcgTWFwLHdyPSJ2b2lkIj09PXksUXI9e3BhcmFtczpURmUoZm4sZHQpLGRlbGF5Om51bGw9PT0oTmU9dGhpcy5hc3Qub3B0aW9ucyl8fHZvaWQg''@;'; + put 'put ''MD09PU5lP3ZvaWQgMDpOZS5kZWxheX0seWk9QmU/W106RWhlKGcsaCx0aGlzLmFzdC5hbmltYXRpb24sQyxJLCR0LExuLFFyLF9lLEtlKTtsZXQgS2k9MDtpZih5aS5mb3JFYWNoKFBvPT57S2k9TWF0aC5tYXgoUG8uZHVyYXRpb24rUG8uZGVsYXksS2kpfSksS2UubGVuZ3RoKXJldHVybiB3''@;'; + put 'put ''d2UoaCx0aGlzLl90cmlnZ2VyTmFtZSx2LHksd3IsJHQsTG4sW10sW10sbXIsU3IsS2ksS2UpO3lpLmZvckVhY2goUG89Pntjb25zdCBTYT1Qby5lbGVtZW50LEphPWQ0KG1yLFNhLG5ldyBTZXQpO1BvLnByZVN0eWxlUHJvcHMuZm9yRWFjaChhbD0+SmEuYWRkKGFsKSk7Y29uc3QgbGE9ZDQo''@;'; + put 'put ''U3IsU2EsbmV3IFNldCk7UG8ucG9zdFN0eWxlUHJvcHMuZm9yRWFjaChhbD0+bGEuYWRkKGFsKSksU2EhPT1oJiZpci5hZGQoU2EpfSk7Y29uc3QgU289SXEoaXIudmFsdWVzKCkpO3JldHVybiB3d2UoaCx0aGlzLl90cmlnZ2VyTmFtZSx2LHksd3IsJHQsTG4seWksU28sbXIsU3IsS2kpfX1m''@;'; + put 'put ''dW5jdGlvbiBURmUoZCxnKXtjb25zdCBoPV9aKGcpO2Zvcihjb25zdCB2IGluIGQpZC5oYXNPd25Qcm9wZXJ0eSh2KSYmbnVsbCE9ZFt2XSYmKGhbdl09ZFt2XSk7cmV0dXJuIGh9Y2xhc3MgSUZle2NvbnN0cnVjdG9yKGcsaCx2KXt0aGlzLnN0eWxlcz1nLHRoaXMuZGVmYXVsdFBhcmFtcz1o''@;'; + put 'put ''LHRoaXMubm9ybWFsaXplcj12fWJ1aWxkU3R5bGVzKGcsaCl7Y29uc3Qgdj1uZXcgTWFwLHk9X1oodGhpcy5kZWZhdWx0UGFyYW1zKTtyZXR1cm4gT2JqZWN0LmtleXMoZykuZm9yRWFjaChDPT57Y29uc3QgST1nW0NdO251bGwhPT1JJiYoeVtDXT1JKX0pLHRoaXMuc3R5bGVzLnN0eWxlcy5m''@;'; + put 'put ''b3JFYWNoKEM9Pnsic3RyaW5nIiE9dHlwZW9mIEMmJkMuZm9yRWFjaCgoSSxqKT0+e0kmJihJPVRxKEkseSxoKSk7Y29uc3QgdWU9dGhpcy5ub3JtYWxpemVyLm5vcm1hbGl6ZVByb3BlcnR5TmFtZShqLGgpO0k9dGhpcy5ub3JtYWxpemVyLm5vcm1hbGl6ZVN0eWxlVmFsdWUoaix1ZSxJLGgp''@;'; + put 'put ''LHYuc2V0KHVlLEkpfSl9KSx2fX1jbGFzcyBMRmV7Y29uc3RydWN0b3IoZyxoLHYpe3RoaXMubmFtZT1nLHRoaXMuYXN0PWgsdGhpcy5fbm9ybWFsaXplcj12LHRoaXMudHJhbnNpdGlvbkZhY3Rvcmllcz1bXSx0aGlzLnN0YXRlcz1uZXcgTWFwLGguc3RhdGVzLmZvckVhY2goeT0+e3RoaXMu''@;'; + put 'put ''c3RhdGVzLnNldCh5Lm5hbWUsbmV3IElGZSh5LnN0eWxlLHkub3B0aW9ucyYmeS5vcHRpb25zLnBhcmFtc3x8e30sdikpfSksX3dlKHRoaXMuc3RhdGVzLCJ0cnVlIiwiMSIpLF93ZSh0aGlzLnN0YXRlcywiZmFsc2UiLCIwIiksaC50cmFuc2l0aW9ucy5mb3JFYWNoKHk9Pnt0aGlzLnRyYW5z''@;'; + put 'put ''aXRpb25GYWN0b3JpZXMucHVzaChuZXcgYndlKGcseSx0aGlzLnN0YXRlcykpfSksdGhpcy5mYWxsYmFja1RyYW5zaXRpb249ZnVuY3Rpb24gT0ZlKGQsZyxoKXtyZXR1cm4gbmV3IGJ3ZShkLHt0eXBlOjEsYW5pbWF0aW9uOnt0eXBlOjIsc3RlcHM6W10sb3B0aW9uczpudWxsfSxtYXRjaGVy''@;'; + put 'put ''czpbKEksaik9PiEwXSxvcHRpb25zOm51bGwscXVlcnlDb3VudDowLGRlcENvdW50OjB9LGcpfShnLHRoaXMuc3RhdGVzKX1nZXQgY29udGFpbnNRdWVyaWVzKCl7cmV0dXJuIHRoaXMuYXN0LnF1ZXJ5Q291bnQ+MH1tYXRjaFRyYW5zaXRpb24oZyxoLHYseSl7cmV0dXJuIHRoaXMudHJhbnNp''@;'; + put 'put ''dGlvbkZhY3Rvcmllcy5maW5kKEk9PkkubWF0Y2goZyxoLHYseSkpfHxudWxsfW1hdGNoU3R5bGVzKGcsaCx2KXtyZXR1cm4gdGhpcy5mYWxsYmFja1RyYW5zaXRpb24uYnVpbGRTdHlsZXMoZyxoLHYpfX1mdW5jdGlvbiBfd2UoZCxnLGgpe2QuaGFzKGcpP2QuaGFzKGgpfHxkLnNldChoLGQu''@;'; + put 'put ''Z2V0KGcpKTpkLmhhcyhoKSYmZC5zZXQoZyxkLmdldChoKSl9Y29uc3QgUkZlPW5ldyBQcTtjbGFzcyBCRmV7Y29uc3RydWN0b3IoZyxoLHYpe3RoaXMuYm9keU5vZGU9Zyx0aGlzLl9kcml2ZXI9aCx0aGlzLl9ub3JtYWxpemVyPXYsdGhpcy5fYW5pbWF0aW9ucz1uZXcgTWFwLHRoaXMuX3Bs''@;'; + put 'put ''YXllcnNCeUlkPW5ldyBNYXAsdGhpcy5wbGF5ZXJzPVtdfXJlZ2lzdGVyKGcsaCl7Y29uc3Qgdj1bXSxDPWtoZSh0aGlzLl9kcml2ZXIsaCx2LFtdKTtpZih2Lmxlbmd0aCl0aHJvdyBmdW5jdGlvbiBCUGUoZCl7cmV0dXJuIG5ldyBlbigzNTAzLCExKX0oKTt0aGlzLl9hbmltYXRpb25zLnNl''@;'; + put 'put ''dChnLEMpfV9idWlsZFBsYXllcihnLGgsdil7Y29uc3QgeT1nLmVsZW1lbnQsQz1ld2UoMCx0aGlzLl9ub3JtYWxpemVyLDAsZy5rZXlmcmFtZXMsaCx2KTtyZXR1cm4gdGhpcy5fZHJpdmVyLmFuaW1hdGUoeSxDLGcuZHVyYXRpb24sZy5kZWxheSxnLmVhc2luZyxbXSwhMCl9Y3JlYXRlKGcs''@;'; + put 'put ''aCx2PXt9KXtjb25zdCB5PVtdLEM9dGhpcy5fYW5pbWF0aW9ucy5nZXQoZyk7bGV0IEk7Y29uc3Qgaj1uZXcgTWFwO2lmKEM/KEk9RWhlKHRoaXMuX2RyaXZlcixoLEMsIm5nLWVudGVyIixTcSxuZXcgTWFwLG5ldyBNYXAsdixSRmUseSksSS5mb3JFYWNoKEJlPT57Y29uc3QgTmU9ZDQoaixC''@;'; + put 'put ''ZS5lbGVtZW50LG5ldyBNYXApO0JlLnBvc3RTdHlsZVByb3BzLmZvckVhY2goS2U9Pk5lLnNldChLZSxudWxsKSl9KSk6KHkucHVzaChmdW5jdGlvbiBQUGUoKXtyZXR1cm4gbmV3IGVuKDMzMDAsITEpfSgpKSxJPVtdKSx5Lmxlbmd0aCl0aHJvdyBmdW5jdGlvbiBGUGUoZCl7cmV0dXJuIG5l''@;'; + put 'put ''dyBlbigzNTA0LCExKX0oKTtqLmZvckVhY2goKEJlLE5lKT0+e0JlLmZvckVhY2goKEtlLGR0KT0+e0JlLnNldChkdCx0aGlzLl9kcml2ZXIuY29tcHV0ZVN0eWxlKE5lLGR0LG44KSl9KX0pO2NvbnN0IF9lPUF3KEkubWFwKEJlPT57Y29uc3QgTmU9ai5nZXQoQmUuZWxlbWVudCk7cmV0dXJu''@;'; + put 'put ''IHRoaXMuX2J1aWxkUGxheWVyKEJlLG5ldyBNYXAsTmUpfSkpO3JldHVybiB0aGlzLl9wbGF5ZXJzQnlJZC5zZXQoZyxfZSksX2Uub25EZXN0cm95KCgpPT50aGlzLmRlc3Ryb3koZykpLHRoaXMucGxheWVycy5wdXNoKF9lKSxfZX1kZXN0cm95KGcpe2NvbnN0IGg9dGhpcy5fZ2V0UGxheWVy''@;'; + put 'put ''KGcpO2guZGVzdHJveSgpLHRoaXMuX3BsYXllcnNCeUlkLmRlbGV0ZShnKTtjb25zdCB2PXRoaXMucGxheWVycy5pbmRleE9mKGgpO3Y+PTAmJnRoaXMucGxheWVycy5zcGxpY2UodiwxKX1fZ2V0UGxheWVyKGcpe2NvbnN0IGg9dGhpcy5fcGxheWVyc0J5SWQuZ2V0KGcpO2lmKCFoKXRocm93''@;'; + put 'put ''IGZ1bmN0aW9uIEhQZShkKXtyZXR1cm4gbmV3IGVuKDMzMDEsITEpfSgpO3JldHVybiBofWxpc3RlbihnLGgsdix5KXtjb25zdCBDPWdoZShoLCIiLCIiLCIiKTtyZXR1cm4gZGhlKHRoaXMuX2dldFBsYXllcihnKSx2LEMseSksKCk9Pnt9fWNvbW1hbmQoZyxoLHYseSl7aWYoInJlZ2lzdGVy''@;'; + put 'put ''Ij09dilyZXR1cm4gdm9pZCB0aGlzLnJlZ2lzdGVyKGcseVswXSk7aWYoImNyZWF0ZSI9PXYpcmV0dXJuIHZvaWQgdGhpcy5jcmVhdGUoZyxoLHlbMF18fHt9KTtjb25zdCBDPXRoaXMuX2dldFBsYXllcihnKTtzd2l0Y2godil7Y2FzZSJwbGF5IjpDLnBsYXkoKTticmVhaztjYXNlInBhdXNl''@;'; + put 'put ''IjpDLnBhdXNlKCk7YnJlYWs7Y2FzZSJyZXNldCI6Qy5yZXNldCgpO2JyZWFrO2Nhc2UicmVzdGFydCI6Qy5yZXN0YXJ0KCk7YnJlYWs7Y2FzZSJmaW5pc2giOkMuZmluaXNoKCk7YnJlYWs7Y2FzZSJpbml0IjpDLmluaXQoKTticmVhaztjYXNlInNldFBvc2l0aW9uIjpDLnNldFBvc2l0aW9u''@;'; + put 'put ''KHBhcnNlRmxvYXQoeVswXSkpO2JyZWFrO2Nhc2UiZGVzdHJveSI6dGhpcy5kZXN0cm95KGcpfX19Y29uc3QgQ3dlPSJuZy1hbmltYXRlLXF1ZXVlZCIsRGhlPSJuZy1hbmltYXRlLWRpc2FibGVkIixWRmU9W10sa3dlPXtuYW1lc3BhY2VJZDoiIixzZXRGb3JSZW1vdmFsOiExLHNldEZvck1v''@;'; + put 'put ''dmU6ITEsaGFzQW5pbWF0aW9uOiExLHJlbW92ZWRCZWZvcmVRdWVyaWVkOiExfSxqRmU9e25hbWVzcGFjZUlkOiIiLHNldEZvck1vdmU6ITEsc2V0Rm9yUmVtb3ZhbDohMSxoYXNBbmltYXRpb246ITEscmVtb3ZlZEJlZm9yZVF1ZXJpZWQ6ITB9LFRwPSJfX25nX3JlbW92ZWQiO2NsYXNzIExo''@;'; + put 'put ''ZXtjb25zdHJ1Y3RvcihnLGg9IiIpe3RoaXMubmFtZXNwYWNlSWQ9aDtjb25zdCB2PWcmJmcuaGFzT3duUHJvcGVydHkoInZhbHVlIik7aWYodGhpcy52YWx1ZT1mdW5jdGlvbiBXRmUoZCl7cmV0dXJuIG51bGwhPWQ/ZDpudWxsfSh2P2cudmFsdWU6Zyksdil7Y29uc3QgQz1fWihnKTtkZWxl''@;'; + put 'put ''dGUgQy52YWx1ZSx0aGlzLm9wdGlvbnM9Q31lbHNlIHRoaXMub3B0aW9ucz17fTt0aGlzLm9wdGlvbnMucGFyYW1zfHwodGhpcy5vcHRpb25zLnBhcmFtcz17fSl9Z2V0IHBhcmFtcygpe3JldHVybiB0aGlzLm9wdGlvbnMucGFyYW1zfWFic29yYk9wdGlvbnMoZyl7Y29uc3QgaD1nLnBhcmFt''@;'; + put 'put ''cztpZihoKXtjb25zdCB2PXRoaXMub3B0aW9ucy5wYXJhbXM7T2JqZWN0LmtleXMoaCkuZm9yRWFjaCh5PT57bnVsbD09dlt5XSYmKHZbeV09aFt5XSl9KX19fWNvbnN0IGtaPSJ2b2lkIixPaGU9bmV3IExoZShrWik7Y2xhc3MgWkZle2NvbnN0cnVjdG9yKGcsaCx2KXt0aGlzLmlkPWcsdGhp''@;'; + put 'put ''cy5ob3N0RWxlbWVudD1oLHRoaXMuX2VuZ2luZT12LHRoaXMucGxheWVycz1bXSx0aGlzLl90cmlnZ2Vycz1uZXcgTWFwLHRoaXMuX3F1ZXVlPVtdLHRoaXMuX2VsZW1lbnRMaXN0ZW5lcnM9bmV3IE1hcCx0aGlzLl9ob3N0Q2xhc3NOYW1lPSJuZy10bnMtIitnLElwKGgsdGhpcy5faG9zdENs''@;'; + put 'put ''YXNzTmFtZSl9bGlzdGVuKGcsaCx2LHkpe2lmKCF0aGlzLl90cmlnZ2Vycy5oYXMoaCkpdGhyb3cgZnVuY3Rpb24gTlBlKGQsZyl7cmV0dXJuIG5ldyBlbigzMzAyLCExKX0oKTtpZihudWxsPT12fHwwPT12Lmxlbmd0aCl0aHJvdyBmdW5jdGlvbiBWUGUoZCl7cmV0dXJuIG5ldyBlbigzMzAz''@;'; + put 'put ''LCExKX0oKTtpZighZnVuY3Rpb24gWUZlKGQpe3JldHVybiJzdGFydCI9PWR8fCJkb25lIj09ZH0odikpdGhyb3cgZnVuY3Rpb24galBlKGQsZyl7cmV0dXJuIG5ldyBlbigzNDAwLCExKX0oKTtjb25zdCBDPWQ0KHRoaXMuX2VsZW1lbnRMaXN0ZW5lcnMsZyxbXSksST17bmFtZTpoLHBoYXNl''@;'; + put 'put ''OnYsY2FsbGJhY2s6eX07Qy5wdXNoKEkpO2NvbnN0IGo9ZDQodGhpcy5fZW5naW5lLnN0YXRlc0J5RWxlbWVudCxnLG5ldyBNYXApO3JldHVybiBqLmhhcyhoKXx8KElwKGcsTXEpLElwKGcsTXErIi0iK2gpLGouc2V0KGgsT2hlKSksKCk9Pnt0aGlzLl9lbmdpbmUuYWZ0ZXJGbHVzaCgoKT0+''@;'; + put 'put ''e2NvbnN0IHVlPUMuaW5kZXhPZihJKTt1ZT49MCYmQy5zcGxpY2UodWUsMSksdGhpcy5fdHJpZ2dlcnMuaGFzKGgpfHxqLmRlbGV0ZShoKX0pfX1yZWdpc3RlcihnLGgpe3JldHVybiF0aGlzLl90cmlnZ2Vycy5oYXMoZykmJih0aGlzLl90cmlnZ2Vycy5zZXQoZyxoKSwhMCl9X2dldFRyaWdn''@;'; + put 'put ''ZXIoZyl7Y29uc3QgaD10aGlzLl90cmlnZ2Vycy5nZXQoZyk7aWYoIWgpdGhyb3cgZnVuY3Rpb24gWlBlKGQpe3JldHVybiBuZXcgZW4oMzQwMSwhMSl9KCk7cmV0dXJuIGh9dHJpZ2dlcihnLGgsdix5PSEwKXtjb25zdCBDPXRoaXMuX2dldFRyaWdnZXIoaCksST1uZXcgUmhlKHRoaXMuaWQs''@;'; + put 'put ''aCxnKTtsZXQgaj10aGlzLl9lbmdpbmUuc3RhdGVzQnlFbGVtZW50LmdldChnKTtqfHwoSXAoZyxNcSksSXAoZyxNcSsiLSIraCksdGhpcy5fZW5naW5lLnN0YXRlc0J5RWxlbWVudC5zZXQoZyxqPW5ldyBNYXApKTtsZXQgdWU9ai5nZXQoaCk7Y29uc3QgX2U9bmV3IExoZSh2LHRoaXMuaWQp''@;'; + put 'put ''O2lmKCEodiYmdi5oYXNPd25Qcm9wZXJ0eSgidmFsdWUiKSkmJnVlJiZfZS5hYnNvcmJPcHRpb25zKHVlLm9wdGlvbnMpLGouc2V0KGgsX2UpLHVlfHwodWU9T2hlKSxfZS52YWx1ZSE9PWtaJiZ1ZS52YWx1ZT09PV9lLnZhbHVlKXtpZighZnVuY3Rpb24gSkZlKGQsZyl7Y29uc3QgaD1PYmpl''@;'; + put 'put ''Y3Qua2V5cyhkKSx2PU9iamVjdC5rZXlzKGcpO2lmKGgubGVuZ3RoIT12Lmxlbmd0aClyZXR1cm4hMTtmb3IobGV0IHk9MDt5PGgubGVuZ3RoO3krKyl7Y29uc3QgQz1oW3ldO2lmKCFnLmhhc093blByb3BlcnR5KEMpfHxkW0NdIT09Z1tDXSlyZXR1cm4hMX1yZXR1cm4hMH0odWUucGFyYW1z''@;'; + put 'put ''LF9lLnBhcmFtcykpe2NvbnN0ICR0PVtdLGZuPUMubWF0Y2hTdHlsZXModWUudmFsdWUsdWUucGFyYW1zLCR0KSxMbj1DLm1hdGNoU3R5bGVzKF9lLnZhbHVlLF9lLnBhcmFtcywkdCk7JHQubGVuZ3RoP3RoaXMuX2VuZ2luZS5yZXBvcnRFcnJvcigkdCk6dGhpcy5fZW5naW5lLmFmdGVyRmx1''@;'; + put 'put ''c2goKCk9PntfUyhnLGZuKSxDZyhnLExuKX0pfXJldHVybn1jb25zdCBLZT1kNCh0aGlzLl9lbmdpbmUucGxheWVyc0J5RWxlbWVudCxnLFtdKTtLZS5mb3JFYWNoKCR0PT57JHQubmFtZXNwYWNlSWQ9PXRoaXMuaWQmJiR0LnRyaWdnZXJOYW1lPT1oJiYkdC5xdWV1ZWQmJiR0LmRlc3Ryb3ko''@;'; + put 'put ''KX0pO2xldCBkdD1DLm1hdGNoVHJhbnNpdGlvbih1ZS52YWx1ZSxfZS52YWx1ZSxnLF9lLnBhcmFtcyksT3Q9ITE7aWYoIWR0KXtpZigheSlyZXR1cm47ZHQ9Qy5mYWxsYmFja1RyYW5zaXRpb24sT3Q9ITB9cmV0dXJuIHRoaXMuX2VuZ2luZS50b3RhbFF1ZXVlZFBsYXllcnMrKyx0aGlzLl9x''@;'; + put 'put ''dWV1ZS5wdXNoKHtlbGVtZW50OmcsdHJpZ2dlck5hbWU6aCx0cmFuc2l0aW9uOmR0LGZyb21TdGF0ZTp1ZSx0b1N0YXRlOl9lLHBsYXllcjpJLGlzRmFsbGJhY2tUcmFuc2l0aW9uOk90fSksT3R8fChJcChnLEN3ZSksSS5vblN0YXJ0KCgpPT57bk8oZyxDd2UpfSkpLEkub25Eb25lKCgpPT57''@;'; + put 'put ''bGV0ICR0PXRoaXMucGxheWVycy5pbmRleE9mKEkpOyR0Pj0wJiZ0aGlzLnBsYXllcnMuc3BsaWNlKCR0LDEpO2NvbnN0IGZuPXRoaXMuX2VuZ2luZS5wbGF5ZXJzQnlFbGVtZW50LmdldChnKTtpZihmbil7bGV0IExuPWZuLmluZGV4T2YoSSk7TG4+PTAmJmZuLnNwbGljZShMbiwxKX19KSx0''@;'; + put 'put ''aGlzLnBsYXllcnMucHVzaChJKSxLZS5wdXNoKEkpLEl9ZGVyZWdpc3RlcihnKXt0aGlzLl90cmlnZ2Vycy5kZWxldGUoZyksdGhpcy5fZW5naW5lLnN0YXRlc0J5RWxlbWVudC5mb3JFYWNoKGg9PmguZGVsZXRlKGcpKSx0aGlzLl9lbGVtZW50TGlzdGVuZXJzLmZvckVhY2goKGgsdik9Pnt0''@;'; + put 'put ''aGlzLl9lbGVtZW50TGlzdGVuZXJzLnNldCh2LGguZmlsdGVyKHk9PnkubmFtZSE9ZykpfSl9Y2xlYXJFbGVtZW50Q2FjaGUoZyl7dGhpcy5fZW5naW5lLnN0YXRlc0J5RWxlbWVudC5kZWxldGUoZyksdGhpcy5fZWxlbWVudExpc3RlbmVycy5kZWxldGUoZyk7Y29uc3QgaD10aGlzLl9lbmdp''@;'; + put 'put ''bmUucGxheWVyc0J5RWxlbWVudC5nZXQoZyk7aCYmKGguZm9yRWFjaCh2PT52LmRlc3Ryb3koKSksdGhpcy5fZW5naW5lLnBsYXllcnNCeUVsZW1lbnQuZGVsZXRlKGcpKX1fc2lnbmFsUmVtb3ZhbEZvcklubmVyVHJpZ2dlcnMoZyxoKXtjb25zdCB2PXRoaXMuX2VuZ2luZS5kcml2ZXIucXVl''@;'; + put 'put ''cnkoZyxFcSwhMCk7di5mb3JFYWNoKHk9PntpZih5W1RwXSlyZXR1cm47Y29uc3QgQz10aGlzLl9lbmdpbmUuZmV0Y2hOYW1lc3BhY2VzQnlFbGVtZW50KHkpO0Muc2l6ZT9DLmZvckVhY2goST0+SS50cmlnZ2VyTGVhdmVBbmltYXRpb24oeSxoLCExLCEwKSk6dGhpcy5jbGVhckVsZW1lbnRD''@;'; + put 'put ''YWNoZSh5KX0pLHRoaXMuX2VuZ2luZS5hZnRlckZsdXNoQW5pbWF0aW9uc0RvbmUoKCk9PnYuZm9yRWFjaCh5PT50aGlzLmNsZWFyRWxlbWVudENhY2hlKHkpKSl9dHJpZ2dlckxlYXZlQW5pbWF0aW9uKGcsaCx2LHkpe2NvbnN0IEM9dGhpcy5fZW5naW5lLnN0YXRlc0J5RWxlbWVudC5nZXQo''@;'; + put 'put ''ZyksST1uZXcgTWFwO2lmKEMpe2NvbnN0IGo9W107aWYoQy5mb3JFYWNoKCh1ZSxfZSk9PntpZihJLnNldChfZSx1ZS52YWx1ZSksdGhpcy5fdHJpZ2dlcnMuaGFzKF9lKSl7Y29uc3QgQmU9dGhpcy50cmlnZ2VyKGcsX2Usa1oseSk7QmUmJmoucHVzaChCZSl9fSksai5sZW5ndGgpcmV0dXJu''@;'; + put 'put ''IHRoaXMuX2VuZ2luZS5tYXJrRWxlbWVudEFzUmVtb3ZlZCh0aGlzLmlkLGcsITAsaCxJKSx2JiZBdyhqKS5vbkRvbmUoKCk9PnRoaXMuX2VuZ2luZS5wcm9jZXNzTGVhdmVOb2RlKGcpKSwhMH1yZXR1cm4hMX1wcmVwYXJlTGVhdmVBbmltYXRpb25MaXN0ZW5lcnMoZyl7Y29uc3QgaD10aGlz''@;'; + put 'put ''Ll9lbGVtZW50TGlzdGVuZXJzLmdldChnKSx2PXRoaXMuX2VuZ2luZS5zdGF0ZXNCeUVsZW1lbnQuZ2V0KGcpO2lmKGgmJnYpe2NvbnN0IHk9bmV3IFNldDtoLmZvckVhY2goQz0+e2NvbnN0IEk9Qy5uYW1lO2lmKHkuaGFzKEkpKXJldHVybjt5LmFkZChJKTtjb25zdCB1ZT10aGlzLl90cmln''@;'; + put 'put ''Z2Vycy5nZXQoSSkuZmFsbGJhY2tUcmFuc2l0aW9uLF9lPXYuZ2V0KEkpfHxPaGUsQmU9bmV3IExoZShrWiksTmU9bmV3IFJoZSh0aGlzLmlkLEksZyk7dGhpcy5fZW5naW5lLnRvdGFsUXVldWVkUGxheWVycysrLHRoaXMuX3F1ZXVlLnB1c2goe2VsZW1lbnQ6Zyx0cmlnZ2VyTmFtZTpJLHRy''@;'; + put 'put ''YW5zaXRpb246dWUsZnJvbVN0YXRlOl9lLHRvU3RhdGU6QmUscGxheWVyOk5lLGlzRmFsbGJhY2tUcmFuc2l0aW9uOiEwfSl9KX19cmVtb3ZlTm9kZShnLGgpe2NvbnN0IHY9dGhpcy5fZW5naW5lO2lmKGcuY2hpbGRFbGVtZW50Q291bnQmJnRoaXMuX3NpZ25hbFJlbW92YWxGb3JJbm5lclRy''@;'; + put 'put ''aWdnZXJzKGcsaCksdGhpcy50cmlnZ2VyTGVhdmVBbmltYXRpb24oZyxoLCEwKSlyZXR1cm47bGV0IHk9ITE7aWYodi50b3RhbEFuaW1hdGlvbnMpe2NvbnN0IEM9di5wbGF5ZXJzLmxlbmd0aD92LnBsYXllcnNCeVF1ZXJpZWRFbGVtZW50LmdldChnKTpbXTtpZihDJiZDLmxlbmd0aCl5PSEw''@;'; + put 'put ''O2Vsc2V7bGV0IEk9Zztmb3IoO0k9SS5wYXJlbnROb2RlOylpZih2LnN0YXRlc0J5RWxlbWVudC5nZXQoSSkpe3k9ITA7YnJlYWt9fX1pZih0aGlzLnByZXBhcmVMZWF2ZUFuaW1hdGlvbkxpc3RlbmVycyhnKSx5KXYubWFya0VsZW1lbnRBc1JlbW92ZWQodGhpcy5pZCxnLCExLGgpO2Vsc2V7''@;'; + put 'put ''Y29uc3QgQz1nW1RwXTsoIUN8fEM9PT1rd2UpJiYodi5hZnRlckZsdXNoKCgpPT50aGlzLmNsZWFyRWxlbWVudENhY2hlKGcpKSx2LmRlc3Ryb3lJbm5lckFuaW1hdGlvbnMoZyksdi5fb25SZW1vdmFsQ29tcGxldGUoZyxoKSl9fWluc2VydE5vZGUoZyxoKXtJcChnLHRoaXMuX2hvc3RDbGFz''@;'; + put 'put ''c05hbWUpfWRyYWluUXVldWVkVHJhbnNpdGlvbnMoZyl7Y29uc3QgaD1bXTtyZXR1cm4gdGhpcy5fcXVldWUuZm9yRWFjaCh2PT57Y29uc3QgeT12LnBsYXllcjtpZih5LmRlc3Ryb3llZClyZXR1cm47Y29uc3QgQz12LmVsZW1lbnQsST10aGlzLl9lbGVtZW50TGlzdGVuZXJzLmdldChDKTtJ''@;'; + put 'put ''JiZJLmZvckVhY2goaj0+e2lmKGoubmFtZT09di50cmlnZ2VyTmFtZSl7Y29uc3QgdWU9Z2hlKEMsdi50cmlnZ2VyTmFtZSx2LmZyb21TdGF0ZS52YWx1ZSx2LnRvU3RhdGUudmFsdWUpO3VlLl9kYXRhPWcsZGhlKHYucGxheWVyLGoucGhhc2UsdWUsai5jYWxsYmFjayl9fSkseS5tYXJrZWRG''@;'; + put 'put ''b3JEZXN0cm95P3RoaXMuX2VuZ2luZS5hZnRlckZsdXNoKCgpPT57eS5kZXN0cm95KCl9KTpoLnB1c2godil9KSx0aGlzLl9xdWV1ZT1bXSxoLnNvcnQoKHYseSk9Pntjb25zdCBDPXYudHJhbnNpdGlvbi5hc3QuZGVwQ291bnQsST15LnRyYW5zaXRpb24uYXN0LmRlcENvdW50O3JldHVybiAw''@;'; + put 'put ''PT1DfHwwPT1JP0MtSTp0aGlzLl9lbmdpbmUuZHJpdmVyLmNvbnRhaW5zRWxlbWVudCh2LmVsZW1lbnQseS5lbGVtZW50KT8xOi0xfSl9ZGVzdHJveShnKXt0aGlzLnBsYXllcnMuZm9yRWFjaChoPT5oLmRlc3Ryb3koKSksdGhpcy5fc2lnbmFsUmVtb3ZhbEZvcklubmVyVHJpZ2dlcnModGhp''@;'; + put 'put ''cy5ob3N0RWxlbWVudCxnKX1lbGVtZW50Q29udGFpbnNEYXRhKGcpe2xldCBoPSExO3JldHVybiB0aGlzLl9lbGVtZW50TGlzdGVuZXJzLmhhcyhnKSYmKGg9ITApLGg9ISF0aGlzLl9xdWV1ZS5maW5kKHY9PnYuZWxlbWVudD09PWcpfHxoLGh9fWNsYXNzIHpGZXtjb25zdHJ1Y3RvcihnLGgs''@;'; + put 'put ''dil7dGhpcy5ib2R5Tm9kZT1nLHRoaXMuZHJpdmVyPWgsdGhpcy5fbm9ybWFsaXplcj12LHRoaXMucGxheWVycz1bXSx0aGlzLm5ld0hvc3RFbGVtZW50cz1uZXcgTWFwLHRoaXMucGxheWVyc0J5RWxlbWVudD1uZXcgTWFwLHRoaXMucGxheWVyc0J5UXVlcmllZEVsZW1lbnQ9bmV3IE1hcCx0''@;'; + put 'put ''aGlzLnN0YXRlc0J5RWxlbWVudD1uZXcgTWFwLHRoaXMuZGlzYWJsZWROb2Rlcz1uZXcgU2V0LHRoaXMudG90YWxBbmltYXRpb25zPTAsdGhpcy50b3RhbFF1ZXVlZFBsYXllcnM9MCx0aGlzLl9uYW1lc3BhY2VMb29rdXA9e30sdGhpcy5fbmFtZXNwYWNlTGlzdD1bXSx0aGlzLl9mbHVzaEZu''@;'; + put 'put ''cz1bXSx0aGlzLl93aGVuUXVpZXRGbnM9W10sdGhpcy5uYW1lc3BhY2VzQnlIb3N0RWxlbWVudD1uZXcgTWFwLHRoaXMuY29sbGVjdGVkRW50ZXJFbGVtZW50cz1bXSx0aGlzLmNvbGxlY3RlZExlYXZlRWxlbWVudHM9W10sdGhpcy5vblJlbW92YWxDb21wbGV0ZT0oeSxDKT0+e319X29uUmVt''@;'; + put 'put ''b3ZhbENvbXBsZXRlKGcsaCl7dGhpcy5vblJlbW92YWxDb21wbGV0ZShnLGgpfWdldCBxdWV1ZWRQbGF5ZXJzKCl7Y29uc3QgZz1bXTtyZXR1cm4gdGhpcy5fbmFtZXNwYWNlTGlzdC5mb3JFYWNoKGg9PntoLnBsYXllcnMuZm9yRWFjaCh2PT57di5xdWV1ZWQmJmcucHVzaCh2KX0pfSksZ31j''@;'; + put 'put ''cmVhdGVOYW1lc3BhY2UoZyxoKXtjb25zdCB2PW5ldyBaRmUoZyxoLHRoaXMpO3JldHVybiB0aGlzLmJvZHlOb2RlJiZ0aGlzLmRyaXZlci5jb250YWluc0VsZW1lbnQodGhpcy5ib2R5Tm9kZSxoKT90aGlzLl9iYWxhbmNlTmFtZXNwYWNlTGlzdCh2LGgpOih0aGlzLm5ld0hvc3RFbGVtZW50''@;'; + put 'put ''cy5zZXQoaCx2KSx0aGlzLmNvbGxlY3RFbnRlckVsZW1lbnQoaCkpLHRoaXMuX25hbWVzcGFjZUxvb2t1cFtnXT12fV9iYWxhbmNlTmFtZXNwYWNlTGlzdChnLGgpe2NvbnN0IHY9dGhpcy5fbmFtZXNwYWNlTGlzdCx5PXRoaXMubmFtZXNwYWNlc0J5SG9zdEVsZW1lbnQ7aWYodi5sZW5ndGgt''@;'; + put 'put ''MT49MCl7bGV0IEk9ITEsaj10aGlzLmRyaXZlci5nZXRQYXJlbnRFbGVtZW50KGgpO2Zvcig7ajspe2NvbnN0IHVlPXkuZ2V0KGopO2lmKHVlKXtjb25zdCBfZT12LmluZGV4T2YodWUpO3Yuc3BsaWNlKF9lKzEsMCxnKSxJPSEwO2JyZWFrfWo9dGhpcy5kcml2ZXIuZ2V0UGFyZW50RWxlbWVu''@;'; + put 'put ''dChqKX1JfHx2LnVuc2hpZnQoZyl9ZWxzZSB2LnB1c2goZyk7cmV0dXJuIHkuc2V0KGgsZyksZ31yZWdpc3RlcihnLGgpe2xldCB2PXRoaXMuX25hbWVzcGFjZUxvb2t1cFtnXTtyZXR1cm4gdnx8KHY9dGhpcy5jcmVhdGVOYW1lc3BhY2UoZyxoKSksdn1yZWdpc3RlclRyaWdnZXIoZyxoLHYp''@;'; + put 'put ''e2xldCB5PXRoaXMuX25hbWVzcGFjZUxvb2t1cFtnXTt5JiZ5LnJlZ2lzdGVyKGgsdikmJnRoaXMudG90YWxBbmltYXRpb25zKyt9ZGVzdHJveShnLGgpe2lmKCFnKXJldHVybjtjb25zdCB2PXRoaXMuX2ZldGNoTmFtZXNwYWNlKGcpO3RoaXMuYWZ0ZXJGbHVzaCgoKT0+e3RoaXMubmFtZXNw''@;'; + put 'put ''YWNlc0J5SG9zdEVsZW1lbnQuZGVsZXRlKHYuaG9zdEVsZW1lbnQpLGRlbGV0ZSB0aGlzLl9uYW1lc3BhY2VMb29rdXBbZ107Y29uc3QgeT10aGlzLl9uYW1lc3BhY2VMaXN0LmluZGV4T2Yodik7eT49MCYmdGhpcy5fbmFtZXNwYWNlTGlzdC5zcGxpY2UoeSwxKX0pLHRoaXMuYWZ0ZXJGbHVz''@;'; + put 'put ''aEFuaW1hdGlvbnNEb25lKCgpPT52LmRlc3Ryb3koaCkpfV9mZXRjaE5hbWVzcGFjZShnKXtyZXR1cm4gdGhpcy5fbmFtZXNwYWNlTG9va3VwW2ddfWZldGNoTmFtZXNwYWNlc0J5RWxlbWVudChnKXtjb25zdCBoPW5ldyBTZXQsdj10aGlzLnN0YXRlc0J5RWxlbWVudC5nZXQoZyk7aWYodilm''@;'; + put 'put ''b3IobGV0IHkgb2Ygdi52YWx1ZXMoKSlpZih5Lm5hbWVzcGFjZUlkKXtjb25zdCBDPXRoaXMuX2ZldGNoTmFtZXNwYWNlKHkubmFtZXNwYWNlSWQpO0MmJmguYWRkKEMpfXJldHVybiBofXRyaWdnZXIoZyxoLHYseSl7aWYoTnEoaCkpe2NvbnN0IEM9dGhpcy5fZmV0Y2hOYW1lc3BhY2UoZyk7''@;'; + put 'put ''aWYoQylyZXR1cm4gQy50cmlnZ2VyKGgsdix5KSwhMH1yZXR1cm4hMX1pbnNlcnROb2RlKGcsaCx2LHkpe2lmKCFOcShoKSlyZXR1cm47Y29uc3QgQz1oW1RwXTtpZihDJiZDLnNldEZvclJlbW92YWwpe0Muc2V0Rm9yUmVtb3ZhbD0hMSxDLnNldEZvck1vdmU9ITA7Y29uc3QgST10aGlzLmNv''@;'; + put 'put ''bGxlY3RlZExlYXZlRWxlbWVudHMuaW5kZXhPZihoKTtJPj0wJiZ0aGlzLmNvbGxlY3RlZExlYXZlRWxlbWVudHMuc3BsaWNlKEksMSl9aWYoZyl7Y29uc3QgST10aGlzLl9mZXRjaE5hbWVzcGFjZShnKTtJJiZJLmluc2VydE5vZGUoaCx2KX15JiZ0aGlzLmNvbGxlY3RFbnRlckVsZW1lbnQo''@;'; + put 'put ''aCl9Y29sbGVjdEVudGVyRWxlbWVudChnKXt0aGlzLmNvbGxlY3RlZEVudGVyRWxlbWVudHMucHVzaChnKX1tYXJrRWxlbWVudEFzRGlzYWJsZWQoZyxoKXtoP3RoaXMuZGlzYWJsZWROb2Rlcy5oYXMoZyl8fCh0aGlzLmRpc2FibGVkTm9kZXMuYWRkKGcpLElwKGcsRGhlKSk6dGhpcy5kaXNh''@;'; + put 'put ''YmxlZE5vZGVzLmhhcyhnKSYmKHRoaXMuZGlzYWJsZWROb2Rlcy5kZWxldGUoZyksbk8oZyxEaGUpKX1yZW1vdmVOb2RlKGcsaCx2LHkpe2lmKE5xKGgpKXtjb25zdCBDPWc/dGhpcy5fZmV0Y2hOYW1lc3BhY2UoZyk6bnVsbDtpZihDP0MucmVtb3ZlTm9kZShoLHkpOnRoaXMubWFya0VsZW1l''@;'; + put 'put ''bnRBc1JlbW92ZWQoZyxoLCExLHkpLHYpe2NvbnN0IEk9dGhpcy5uYW1lc3BhY2VzQnlIb3N0RWxlbWVudC5nZXQoaCk7SSYmSS5pZCE9PWcmJkkucmVtb3ZlTm9kZShoLHkpfX1lbHNlIHRoaXMuX29uUmVtb3ZhbENvbXBsZXRlKGgseSl9bWFya0VsZW1lbnRBc1JlbW92ZWQoZyxoLHYseSxD''@;'; + put 'put ''KXt0aGlzLmNvbGxlY3RlZExlYXZlRWxlbWVudHMucHVzaChoKSxoW1RwXT17bmFtZXNwYWNlSWQ6ZyxzZXRGb3JSZW1vdmFsOnksaGFzQW5pbWF0aW9uOnYscmVtb3ZlZEJlZm9yZVF1ZXJpZWQ6ITEscHJldmlvdXNUcmlnZ2Vyc1ZhbHVlczpDfX1saXN0ZW4oZyxoLHYseSxDKXtyZXR1cm4g''@;'; + put 'put ''TnEoaCk/dGhpcy5fZmV0Y2hOYW1lc3BhY2UoZykubGlzdGVuKGgsdix5LEMpOigpPT57fX1fYnVpbGRJbnN0cnVjdGlvbihnLGgsdix5LEMpe3JldHVybiBnLnRyYW5zaXRpb24uYnVpbGQodGhpcy5kcml2ZXIsZy5lbGVtZW50LGcuZnJvbVN0YXRlLnZhbHVlLGcudG9TdGF0ZS52YWx1ZSx2''@;'; + put 'put ''LHksZy5mcm9tU3RhdGUub3B0aW9ucyxnLnRvU3RhdGUub3B0aW9ucyxoLEMpfWRlc3Ryb3lJbm5lckFuaW1hdGlvbnMoZyl7bGV0IGg9dGhpcy5kcml2ZXIucXVlcnkoZyxFcSwhMCk7aC5mb3JFYWNoKHY9PnRoaXMuZGVzdHJveUFjdGl2ZUFuaW1hdGlvbnNGb3JFbGVtZW50KHYpKSwwIT10''@;'; + put 'put ''aGlzLnBsYXllcnNCeVF1ZXJpZWRFbGVtZW50LnNpemUmJihoPXRoaXMuZHJpdmVyLnF1ZXJ5KGcsd2hlLCEwKSxoLmZvckVhY2godj0+dGhpcy5maW5pc2hBY3RpdmVRdWVyaWVkQW5pbWF0aW9uT25FbGVtZW50KHYpKSl9ZGVzdHJveUFjdGl2ZUFuaW1hdGlvbnNGb3JFbGVtZW50KGcpe2Nv''@;'; + put 'put ''bnN0IGg9dGhpcy5wbGF5ZXJzQnlFbGVtZW50LmdldChnKTtoJiZoLmZvckVhY2godj0+e3YucXVldWVkP3YubWFya2VkRm9yRGVzdHJveT0hMDp2LmRlc3Ryb3koKX0pfWZpbmlzaEFjdGl2ZVF1ZXJpZWRBbmltYXRpb25PbkVsZW1lbnQoZyl7Y29uc3QgaD10aGlzLnBsYXllcnNCeVF1ZXJp''@;'; + put 'put ''ZWRFbGVtZW50LmdldChnKTtoJiZoLmZvckVhY2godj0+di5maW5pc2goKSl9d2hlblJlbmRlcmluZ0RvbmUoKXtyZXR1cm4gbmV3IFByb21pc2UoZz0+e2lmKHRoaXMucGxheWVycy5sZW5ndGgpcmV0dXJuIEF3KHRoaXMucGxheWVycykub25Eb25lKCgpPT5nKCkpO2coKX0pfXByb2Nlc3NM''@;'; + put 'put ''ZWF2ZU5vZGUoZyl7dmFyIGg7Y29uc3Qgdj1nW1RwXTtpZih2JiZ2LnNldEZvclJlbW92YWwpe2lmKGdbVHBdPWt3ZSx2Lm5hbWVzcGFjZUlkKXt0aGlzLmRlc3Ryb3lJbm5lckFuaW1hdGlvbnMoZyk7Y29uc3QgeT10aGlzLl9mZXRjaE5hbWVzcGFjZSh2Lm5hbWVzcGFjZUlkKTt5JiZ5LmNs''@;'; + put 'put ''ZWFyRWxlbWVudENhY2hlKGcpfXRoaXMuX29uUmVtb3ZhbENvbXBsZXRlKGcsdi5zZXRGb3JSZW1vdmFsKX0hKG51bGw9PT0oaD1nLmNsYXNzTGlzdCl8fHZvaWQgMD09PWgpJiZoLmNvbnRhaW5zKERoZSkmJnRoaXMubWFya0VsZW1lbnRBc0Rpc2FibGVkKGcsITEpLHRoaXMuZHJpdmVyLnF1''@;'; + put 'put ''ZXJ5KGcsIi5uZy1hbmltYXRlLWRpc2FibGVkIiwhMCkuZm9yRWFjaCh5PT57dGhpcy5tYXJrRWxlbWVudEFzRGlzYWJsZWQoeSwhMSl9KX1mbHVzaChnPS0xKXtsZXQgaD1bXTtpZih0aGlzLm5ld0hvc3RFbGVtZW50cy5zaXplJiYodGhpcy5uZXdIb3N0RWxlbWVudHMuZm9yRWFjaCgodix5''@;'; + put 'put ''KT0+dGhpcy5fYmFsYW5jZU5hbWVzcGFjZUxpc3Qodix5KSksdGhpcy5uZXdIb3N0RWxlbWVudHMuY2xlYXIoKSksdGhpcy50b3RhbEFuaW1hdGlvbnMmJnRoaXMuY29sbGVjdGVkRW50ZXJFbGVtZW50cy5sZW5ndGgpZm9yKGxldCB2PTA7djx0aGlzLmNvbGxlY3RlZEVudGVyRWxlbWVudHMu''@;'; + put 'put ''bGVuZ3RoO3YrKylJcCh0aGlzLmNvbGxlY3RlZEVudGVyRWxlbWVudHNbdl0sIm5nLXN0YXItaW5zZXJ0ZWQiKTtpZih0aGlzLl9uYW1lc3BhY2VMaXN0Lmxlbmd0aCYmKHRoaXMudG90YWxRdWV1ZWRQbGF5ZXJzfHx0aGlzLmNvbGxlY3RlZExlYXZlRWxlbWVudHMubGVuZ3RoKSl7Y29uc3Qg''@;'; + put 'put ''dj1bXTt0cnl7aD10aGlzLl9mbHVzaEFuaW1hdGlvbnModixnKX1maW5hbGx5e2ZvcihsZXQgeT0wO3k8di5sZW5ndGg7eSsrKXZbeV0oKX19ZWxzZSBmb3IobGV0IHY9MDt2PHRoaXMuY29sbGVjdGVkTGVhdmVFbGVtZW50cy5sZW5ndGg7disrKXRoaXMucHJvY2Vzc0xlYXZlTm9kZSh0aGlz''@;'; + put 'put ''LmNvbGxlY3RlZExlYXZlRWxlbWVudHNbdl0pO2lmKHRoaXMudG90YWxRdWV1ZWRQbGF5ZXJzPTAsdGhpcy5jb2xsZWN0ZWRFbnRlckVsZW1lbnRzLmxlbmd0aD0wLHRoaXMuY29sbGVjdGVkTGVhdmVFbGVtZW50cy5sZW5ndGg9MCx0aGlzLl9mbHVzaEZucy5mb3JFYWNoKHY9PnYoKSksdGhp''@;'; + put 'put ''cy5fZmx1c2hGbnM9W10sdGhpcy5fd2hlblF1aWV0Rm5zLmxlbmd0aCl7Y29uc3Qgdj10aGlzLl93aGVuUXVpZXRGbnM7dGhpcy5fd2hlblF1aWV0Rm5zPVtdLGgubGVuZ3RoP0F3KGgpLm9uRG9uZSgoKT0+e3YuZm9yRWFjaCh5PT55KCkpfSk6di5mb3JFYWNoKHk9PnkoKSl9fXJlcG9ydEVy''@;'; + put 'put ''cm9yKGcpe3Rocm93IGZ1bmN0aW9uIHpQZShkKXtyZXR1cm4gbmV3IGVuKDM0MDIsITEpfSgpfV9mbHVzaEFuaW1hdGlvbnMoZyxoKXtjb25zdCB2PW5ldyBQcSx5PVtdLEM9bmV3IE1hcCxJPVtdLGo9bmV3IE1hcCx1ZT1uZXcgTWFwLF9lPW5ldyBNYXAsQmU9bmV3IFNldDt0aGlzLmRpc2Fi''@;'; + put 'put ''bGVkTm9kZXMuZm9yRWFjaChQMD0+e0JlLmFkZChQMCk7Y29uc3Qgcm89dGhpcy5kcml2ZXIucXVlcnkoUDAsIi5uZy1hbmltYXRlLXF1ZXVlZCIsITApO2ZvcihsZXQgZm89MDtmbzxyby5sZW5ndGg7Zm8rKylCZS5hZGQocm9bZm9dKX0pO2NvbnN0IE5lPXRoaXMuYm9keU5vZGUsS2U9QXJy''@;'; + put 'put ''YXkuZnJvbSh0aGlzLnN0YXRlc0J5RWxlbWVudC5rZXlzKCkpLGR0PUV3ZShLZSx0aGlzLmNvbGxlY3RlZEVudGVyRWxlbWVudHMpLE90PW5ldyBNYXA7bGV0ICR0PTA7ZHQuZm9yRWFjaCgoUDAscm8pPT57Y29uc3QgZm89Im5nLWVudGVyIiskdCsrO090LnNldChybyxmbyksUDAuZm9yRWFj''@;'; + put 'put ''aChJYT0+SXAoSWEsZm8pKX0pO2NvbnN0IGZuPVtdLExuPW5ldyBTZXQsaXI9bmV3IFNldDtmb3IobGV0IFAwPTA7UDA8dGhpcy5jb2xsZWN0ZWRMZWF2ZUVsZW1lbnRzLmxlbmd0aDtQMCsrKXtjb25zdCBybz10aGlzLmNvbGxlY3RlZExlYXZlRWxlbWVudHNbUDBdLGZvPXJvW1RwXTtmbyYm''@;'; + put 'put ''Zm8uc2V0Rm9yUmVtb3ZhbCYmKGZuLnB1c2gocm8pLExuLmFkZChybyksZm8uaGFzQW5pbWF0aW9uP3RoaXMuZHJpdmVyLnF1ZXJ5KHJvLCIubmctc3Rhci1pbnNlcnRlZCIsITApLmZvckVhY2goSWE9PkxuLmFkZChJYSkpOmlyLmFkZChybykpfWNvbnN0IG1yPW5ldyBNYXAsU3I9RXdlKEtl''@;'; + put 'put ''LEFycmF5LmZyb20oTG4pKTtTci5mb3JFYWNoKChQMCxybyk9Pntjb25zdCBmbz1TcSskdCsrO21yLnNldChybyxmbyksUDAuZm9yRWFjaChJYT0+SXAoSWEsZm8pKX0pLGcucHVzaCgoKT0+e2R0LmZvckVhY2goKFAwLHJvKT0+e2NvbnN0IGZvPU90LmdldChybyk7UDAuZm9yRWFjaChJYT0+''@;'; + put 'put ''bk8oSWEsZm8pKX0pLFNyLmZvckVhY2goKFAwLHJvKT0+e2NvbnN0IGZvPW1yLmdldChybyk7UDAuZm9yRWFjaChJYT0+bk8oSWEsZm8pKX0pLGZuLmZvckVhY2goUDA9Pnt0aGlzLnByb2Nlc3NMZWF2ZU5vZGUoUDApfSl9KTtjb25zdCB3cj1bXSxRcj1bXTtmb3IobGV0IFAwPXRoaXMuX25h''@;'; + put 'put ''bWVzcGFjZUxpc3QubGVuZ3RoLTE7UDA+PTA7UDAtLSl0aGlzLl9uYW1lc3BhY2VMaXN0W1AwXS5kcmFpblF1ZXVlZFRyYW5zaXRpb25zKGgpLmZvckVhY2goZm89Pntjb25zdCBJYT1mby5wbGF5ZXIsWGw9Zm8uZWxlbWVudDtpZih3ci5wdXNoKElhKSx0aGlzLmNvbGxlY3RlZEVudGVyRWxl''@;'; + put 'put ''bWVudHMubGVuZ3RoKXtjb25zdCBYaT1YbFtUcF07aWYoWGkmJlhpLnNldEZvck1vdmUpe2lmKFhpLnByZXZpb3VzVHJpZ2dlcnNWYWx1ZXMmJlhpLnByZXZpb3VzVHJpZ2dlcnNWYWx1ZXMuaGFzKGZvLnRyaWdnZXJOYW1lKSl7Y29uc3QgRTA9WGkucHJldmlvdXNUcmlnZ2Vyc1ZhbHVlcy5n''@;'; + put 'put ''ZXQoZm8udHJpZ2dlck5hbWUpLHowPXRoaXMuc3RhdGVzQnlFbGVtZW50LmdldChmby5lbGVtZW50KTtpZih6MCYmejAuaGFzKGZvLnRyaWdnZXJOYW1lKSl7Y29uc3Qga289ejAuZ2V0KGZvLnRyaWdnZXJOYW1lKTtrby52YWx1ZT1FMCx6MC5zZXQoZm8udHJpZ2dlck5hbWUsa28pfX1yZXR1''@;'; + put 'put ''cm4gdm9pZCBJYS5kZXN0cm95KCl9fWNvbnN0IEZuPSFOZXx8IXRoaXMuZHJpdmVyLmNvbnRhaW5zRWxlbWVudChOZSxYbCksWm49bXIuZ2V0KFhsKSxfcj1PdC5nZXQoWGwpLFhyPXRoaXMuX2J1aWxkSW5zdHJ1Y3Rpb24oZm8sdixfcixabixGbik7aWYoWHIuZXJyb3JzJiZYci5lcnJvcnMu''@;'; + put 'put ''bGVuZ3RoKXJldHVybiB2b2lkIFFyLnB1c2goWHIpO2lmKEZuKXJldHVybiBJYS5vblN0YXJ0KCgpPT5fUyhYbCxYci5mcm9tU3R5bGVzKSksSWEub25EZXN0cm95KCgpPT5DZyhYbCxYci50b1N0eWxlcykpLHZvaWQgeS5wdXNoKElhKTtpZihmby5pc0ZhbGxiYWNrVHJhbnNpdGlvbilyZXR1''@;'; + put 'put ''cm4gSWEub25TdGFydCgoKT0+X1MoWGwsWHIuZnJvbVN0eWxlcykpLElhLm9uRGVzdHJveSgoKT0+Q2coWGwsWHIudG9TdHlsZXMpKSx2b2lkIHkucHVzaChJYSk7Y29uc3QgY2k9W107WHIudGltZWxpbmVzLmZvckVhY2goWGk9PntYaS5zdHJldGNoU3RhcnRpbmdLZXlmcmFtZT0hMCx0aGlz''@;'; + put 'put ''LmRpc2FibGVkTm9kZXMuaGFzKFhpLmVsZW1lbnQpfHxjaS5wdXNoKFhpKX0pLFhyLnRpbWVsaW5lcz1jaSx2LmFwcGVuZChYbCxYci50aW1lbGluZXMpLEkucHVzaCh7aW5zdHJ1Y3Rpb246WHIscGxheWVyOklhLGVsZW1lbnQ6WGx9KSxYci5xdWVyaWVkRWxlbWVudHMuZm9yRWFjaChYaT0+''@;'; + put 'put ''ZDQoaixYaSxbXSkucHVzaChJYSkpLFhyLnByZVN0eWxlUHJvcHMuZm9yRWFjaCgoWGksRTApPT57aWYoWGkuc2l6ZSl7bGV0IHowPXVlLmdldChFMCk7ejB8fHVlLnNldChFMCx6MD1uZXcgU2V0KSxYaS5mb3JFYWNoKChrbyx3byk9PnowLmFkZCh3bykpfX0pLFhyLnBvc3RTdHlsZVByb3Bz''@;'; + put 'put ''LmZvckVhY2goKFhpLEUwKT0+e2xldCB6MD1fZS5nZXQoRTApO3owfHxfZS5zZXQoRTAsejA9bmV3IFNldCksWGkuZm9yRWFjaCgoa28sd28pPT56MC5hZGQod28pKX0pfSk7aWYoUXIubGVuZ3RoKXtjb25zdCBQMD1bXTtRci5mb3JFYWNoKHJvPT57UDAucHVzaChmdW5jdGlvbiBHUGUoZCxn''@;'; + put 'put ''KXtyZXR1cm4gbmV3IGVuKDM1MDUsITEpfSgpKX0pLHdyLmZvckVhY2gocm89PnJvLmRlc3Ryb3koKSksdGhpcy5yZXBvcnRFcnJvcihQMCl9Y29uc3QgeWk9bmV3IE1hcCxLaT1uZXcgTWFwO0kuZm9yRWFjaChQMD0+e2NvbnN0IHJvPVAwLmVsZW1lbnQ7di5oYXMocm8pJiYoS2kuc2V0KHJv''@;'; + put 'put ''LHJvKSx0aGlzLl9iZWZvcmVBbmltYXRpb25CdWlsZChQMC5wbGF5ZXIubmFtZXNwYWNlSWQsUDAuaW5zdHJ1Y3Rpb24seWkpKX0pLHkuZm9yRWFjaChQMD0+e2NvbnN0IHJvPVAwLmVsZW1lbnQ7dGhpcy5fZ2V0UHJldmlvdXNQbGF5ZXJzKHJvLCExLFAwLm5hbWVzcGFjZUlkLFAwLnRyaWdn''@;'; + put 'put ''ZXJOYW1lLG51bGwpLmZvckVhY2goSWE9PntkNCh5aSxybyxbXSkucHVzaChJYSksSWEuZGVzdHJveSgpfSl9KTtjb25zdCBTbz1mbi5maWx0ZXIoUDA9PlR3ZShQMCx1ZSxfZSkpLFBvPW5ldyBNYXA7TXdlKFBvLHRoaXMuZHJpdmVyLGlyLF9lLG44KS5mb3JFYWNoKFAwPT57VHdlKFAwLHVl''@;'; + put 'put ''LF9lKSYmU28ucHVzaChQMCl9KTtjb25zdCBKYT1uZXcgTWFwO2R0LmZvckVhY2goKFAwLHJvKT0+e013ZShKYSx0aGlzLmRyaXZlcixuZXcgU2V0KFAwKSx1ZSwiISIpfSksU28uZm9yRWFjaChQMD0+e3ZhciBybyxmbztjb25zdCBJYT1Qby5nZXQoUDApLFhsPUphLmdldChQMCk7UG8uc2V0''@;'; + put 'put ''KFAwLG5ldyBNYXAoWy4uLkFycmF5LmZyb20obnVsbCE9PShybz1udWxsPT1JYT92b2lkIDA6SWEuZW50cmllcygpKSYmdm9pZCAwIT09cm8/cm86W10pLC4uLkFycmF5LmZyb20obnVsbCE9PShmbz1udWxsPT1YbD92b2lkIDA6WGwuZW50cmllcygpKSYmdm9pZCAwIT09Zm8/Zm86W10pXSkp''@;'; + put 'put ''fSk7Y29uc3QgbGE9W10sYWw9W10sT3M9e307SS5mb3JFYWNoKFAwPT57Y29uc3R7ZWxlbWVudDpybyxwbGF5ZXI6Zm8saW5zdHJ1Y3Rpb246SWF9PVAwO2lmKHYuaGFzKHJvKSl7aWYoQmUuaGFzKHJvKSlyZXR1cm4gZm8ub25EZXN0cm95KCgpPT5DZyhybyxJYS50b1N0eWxlcykpLGZvLmRp''@;'; + put 'put ''c2FibGVkPSEwLGZvLm92ZXJyaWRlVG90YWxUaW1lKElhLnRvdGFsVGltZSksdm9pZCB5LnB1c2goZm8pO2xldCBYbD1PcztpZihLaS5zaXplPjEpe2xldCBabj1ybztjb25zdCBfcj1bXTtmb3IoO1puPVpuLnBhcmVudE5vZGU7KXtjb25zdCBYcj1LaS5nZXQoWm4pO2lmKFhyKXtYbD1Ycjti''@;'; + put 'put ''cmVha31fci5wdXNoKFpuKX1fci5mb3JFYWNoKFhyPT5LaS5zZXQoWHIsWGwpKX1jb25zdCBGbj10aGlzLl9idWlsZEFuaW1hdGlvbihmby5uYW1lc3BhY2VJZCxJYSx5aSxDLEphLFBvKTtpZihmby5zZXRSZWFsUGxheWVyKEZuKSxYbD09PU9zKWxhLnB1c2goZm8pO2Vsc2V7Y29uc3QgWm49''@;'; + put 'put ''dGhpcy5wbGF5ZXJzQnlFbGVtZW50LmdldChYbCk7Wm4mJlpuLmxlbmd0aCYmKGZvLnBhcmVudFBsYXllcj1BdyhabikpLHkucHVzaChmbyl9fWVsc2UgX1Mocm8sSWEuZnJvbVN0eWxlcyksZm8ub25EZXN0cm95KCgpPT5DZyhybyxJYS50b1N0eWxlcykpLGFsLnB1c2goZm8pLEJlLmhhcyhy''@;'; + put 'put ''bykmJnkucHVzaChmbyl9KSxhbC5mb3JFYWNoKFAwPT57Y29uc3Qgcm89Qy5nZXQoUDAuZWxlbWVudCk7aWYocm8mJnJvLmxlbmd0aCl7Y29uc3QgZm89QXcocm8pO1AwLnNldFJlYWxQbGF5ZXIoZm8pfX0pLHkuZm9yRWFjaChQMD0+e1AwLnBhcmVudFBsYXllcj9QMC5zeW5jUGxheWVyRXZl''@;'; + put 'put ''bnRzKFAwLnBhcmVudFBsYXllcik6UDAuZGVzdHJveSgpfSk7Zm9yKGxldCBQMD0wO1AwPGZuLmxlbmd0aDtQMCsrKXtjb25zdCBybz1mbltQMF0sZm89cm9bVHBdO2lmKG5PKHJvLFNxKSxmbyYmZm8uaGFzQW5pbWF0aW9uKWNvbnRpbnVlO2xldCBJYT1bXTtpZihqLnNpemUpe2xldCBGbj1q''@;'; + put 'put ''LmdldChybyk7Rm4mJkZuLmxlbmd0aCYmSWEucHVzaCguLi5Gbik7bGV0IFpuPXRoaXMuZHJpdmVyLnF1ZXJ5KHJvLHdoZSwhMCk7Zm9yKGxldCBfcj0wO19yPFpuLmxlbmd0aDtfcisrKXtsZXQgWHI9ai5nZXQoWm5bX3JdKTtYciYmWHIubGVuZ3RoJiZJYS5wdXNoKC4uLlhyKX19Y29uc3Qg''@;'; + put 'put ''WGw9SWEuZmlsdGVyKEZuPT4hRm4uZGVzdHJveWVkKTtYbC5sZW5ndGg/VUZlKHRoaXMscm8sWGwpOnRoaXMucHJvY2Vzc0xlYXZlTm9kZShybyl9cmV0dXJuIGZuLmxlbmd0aD0wLGxhLmZvckVhY2goUDA9Pnt0aGlzLnBsYXllcnMucHVzaChQMCksUDAub25Eb25lKCgpPT57UDAuZGVzdHJv''@;'; + put 'put ''eSgpO2NvbnN0IHJvPXRoaXMucGxheWVycy5pbmRleE9mKFAwKTt0aGlzLnBsYXllcnMuc3BsaWNlKHJvLDEpfSksUDAucGxheSgpfSksbGF9ZWxlbWVudENvbnRhaW5zRGF0YShnLGgpe2xldCB2PSExO2NvbnN0IHk9aFtUcF07cmV0dXJuIHkmJnkuc2V0Rm9yUmVtb3ZhbCYmKHY9ITApLHRo''@;'; + put 'put ''aXMucGxheWVyc0J5RWxlbWVudC5oYXMoaCkmJih2PSEwKSx0aGlzLnBsYXllcnNCeVF1ZXJpZWRFbGVtZW50LmhhcyhoKSYmKHY9ITApLHRoaXMuc3RhdGVzQnlFbGVtZW50LmhhcyhoKSYmKHY9ITApLHRoaXMuX2ZldGNoTmFtZXNwYWNlKGcpLmVsZW1lbnRDb250YWluc0RhdGEoaCl8fHZ9''@;'; + put 'put ''YWZ0ZXJGbHVzaChnKXt0aGlzLl9mbHVzaEZucy5wdXNoKGcpfWFmdGVyRmx1c2hBbmltYXRpb25zRG9uZShnKXt0aGlzLl93aGVuUXVpZXRGbnMucHVzaChnKX1fZ2V0UHJldmlvdXNQbGF5ZXJzKGcsaCx2LHksQyl7bGV0IEk9W107aWYoaCl7Y29uc3Qgaj10aGlzLnBsYXllcnNCeVF1ZXJp''@;'; + put 'put ''ZWRFbGVtZW50LmdldChnKTtqJiYoST1qKX1lbHNle2NvbnN0IGo9dGhpcy5wbGF5ZXJzQnlFbGVtZW50LmdldChnKTtpZihqKXtjb25zdCB1ZT0hQ3x8Qz09a1o7ai5mb3JFYWNoKF9lPT57X2UucXVldWVkfHwhdWUmJl9lLnRyaWdnZXJOYW1lIT15fHxJLnB1c2goX2UpfSl9fXJldHVybih2''@;'; + put 'put ''fHx5KSYmKEk9SS5maWx0ZXIoaj0+ISh2JiZ2IT1qLm5hbWVzcGFjZUlkfHx5JiZ5IT1qLnRyaWdnZXJOYW1lKSkpLEl9X2JlZm9yZUFuaW1hdGlvbkJ1aWxkKGcsaCx2KXtjb25zdCBDPWguZWxlbWVudCxJPWguaXNSZW1vdmFsVHJhbnNpdGlvbj92b2lkIDA6ZyxqPWguaXNSZW1vdmFsVHJh''@;'; + put 'put ''bnNpdGlvbj92b2lkIDA6aC50cmlnZ2VyTmFtZTtmb3IoY29uc3QgdWUgb2YgaC50aW1lbGluZXMpe2NvbnN0IF9lPXVlLmVsZW1lbnQsQmU9X2UhPT1DLE5lPWQ0KHYsX2UsW10pO3RoaXMuX2dldFByZXZpb3VzUGxheWVycyhfZSxCZSxJLGosaC50b1N0YXRlKS5mb3JFYWNoKGR0PT57Y29u''@;'; + put 'put ''c3QgT3Q9ZHQuZ2V0UmVhbFBsYXllcigpO090LmJlZm9yZURlc3Ryb3kmJk90LmJlZm9yZURlc3Ryb3koKSxkdC5kZXN0cm95KCksTmUucHVzaChkdCl9KX1fUyhDLGguZnJvbVN0eWxlcyl9X2J1aWxkQW5pbWF0aW9uKGcsaCx2LHksQyxJKXtjb25zdCBqPWgudHJpZ2dlck5hbWUsdWU9aC5l''@;'; + put 'put ''bGVtZW50LF9lPVtdLEJlPW5ldyBTZXQsTmU9bmV3IFNldCxLZT1oLnRpbWVsaW5lcy5tYXAoT3Q9Pntjb25zdCAkdD1PdC5lbGVtZW50O0JlLmFkZCgkdCk7Y29uc3QgZm49JHRbVHBdO2lmKGZuJiZmbi5yZW1vdmVkQmVmb3JlUXVlcmllZClyZXR1cm4gbmV3IElrKE90LmR1cmF0aW9uLE90''@;'; + put 'put ''LmRlbGF5KTtjb25zdCBMbj0kdCE9PXVlLGlyPWZ1bmN0aW9uIFFGZShkKXtjb25zdCBnPVtdO3JldHVybiB4d2UoZCxnKSxnfSgodi5nZXQoJHQpfHxWRmUpLm1hcCh5aT0+eWkuZ2V0UmVhbFBsYXllcigpKSkuZmlsdGVyKHlpPT4hIXlpLmVsZW1lbnQmJnlpLmVsZW1lbnQ9PT0kdCksbXI9''@;'; + put 'put ''Qy5nZXQoJHQpLFNyPUkuZ2V0KCR0KSx3cj1ld2UoMCx0aGlzLl9ub3JtYWxpemVyLDAsT3Qua2V5ZnJhbWVzLG1yLFNyKSxRcj10aGlzLl9idWlsZFBsYXllcihPdCx3cixpcik7aWYoT3Quc3ViVGltZWxpbmUmJnkmJk5lLmFkZCgkdCksTG4pe2NvbnN0IHlpPW5ldyBSaGUoZyxqLCR0KTt5''@;'; + put 'put ''aS5zZXRSZWFsUGxheWVyKFFyKSxfZS5wdXNoKHlpKX1yZXR1cm4gUXJ9KTtfZS5mb3JFYWNoKE90PT57ZDQodGhpcy5wbGF5ZXJzQnlRdWVyaWVkRWxlbWVudCxPdC5lbGVtZW50LFtdKS5wdXNoKE90KSxPdC5vbkRvbmUoKCk9PmZ1bmN0aW9uIEdGZShkLGcsaCl7bGV0IHY9ZC5nZXQoZyk7''@;'; + put 'put ''aWYodil7aWYodi5sZW5ndGgpe2NvbnN0IHk9di5pbmRleE9mKGgpO3Yuc3BsaWNlKHksMSl9MD09di5sZW5ndGgmJmQuZGVsZXRlKGcpfXJldHVybiB2fSh0aGlzLnBsYXllcnNCeVF1ZXJpZWRFbGVtZW50LE90LmVsZW1lbnQsT3QpKX0pLEJlLmZvckVhY2goT3Q9PklwKE90LHV3ZSkpO2Nv''@;'; + put 'put ''bnN0IGR0PUF3KEtlKTtyZXR1cm4gZHQub25EZXN0cm95KCgpPT57QmUuZm9yRWFjaChPdD0+bk8oT3QsdXdlKSksQ2codWUsaC50b1N0eWxlcyl9KSxOZS5mb3JFYWNoKE90PT57ZDQoeSxPdCxbXSkucHVzaChkdCl9KSxkdH1fYnVpbGRQbGF5ZXIoZyxoLHYpe3JldHVybiBoLmxlbmd0aD4w''@;'; + put 'put ''P3RoaXMuZHJpdmVyLmFuaW1hdGUoZy5lbGVtZW50LGgsZy5kdXJhdGlvbixnLmRlbGF5LGcuZWFzaW5nLHYpOm5ldyBJayhnLmR1cmF0aW9uLGcuZGVsYXkpfX1jbGFzcyBSaGV7Y29uc3RydWN0b3IoZyxoLHYpe3RoaXMubmFtZXNwYWNlSWQ9Zyx0aGlzLnRyaWdnZXJOYW1lPWgsdGhpcy5l''@;'; + put 'put ''bGVtZW50PXYsdGhpcy5fcGxheWVyPW5ldyBJayx0aGlzLl9jb250YWluc1JlYWxQbGF5ZXI9ITEsdGhpcy5fcXVldWVkQ2FsbGJhY2tzPW5ldyBNYXAsdGhpcy5kZXN0cm95ZWQ9ITEsdGhpcy5tYXJrZWRGb3JEZXN0cm95PSExLHRoaXMuZGlzYWJsZWQ9ITEsdGhpcy5xdWV1ZWQ9ITAsdGhp''@;'; + put 'put ''cy50b3RhbFRpbWU9MH1zZXRSZWFsUGxheWVyKGcpe3RoaXMuX2NvbnRhaW5zUmVhbFBsYXllcnx8KHRoaXMuX3BsYXllcj1nLHRoaXMuX3F1ZXVlZENhbGxiYWNrcy5mb3JFYWNoKChoLHYpPT57aC5mb3JFYWNoKHk9PmRoZShnLHYsdm9pZCAwLHkpKX0pLHRoaXMuX3F1ZXVlZENhbGxiYWNr''@;'; + put 'put ''cy5jbGVhcigpLHRoaXMuX2NvbnRhaW5zUmVhbFBsYXllcj0hMCx0aGlzLm92ZXJyaWRlVG90YWxUaW1lKGcudG90YWxUaW1lKSx0aGlzLnF1ZXVlZD0hMSl9Z2V0UmVhbFBsYXllcigpe3JldHVybiB0aGlzLl9wbGF5ZXJ9b3ZlcnJpZGVUb3RhbFRpbWUoZyl7dGhpcy50b3RhbFRpbWU9Z31z''@;'; + put 'put ''eW5jUGxheWVyRXZlbnRzKGcpe2NvbnN0IGg9dGhpcy5fcGxheWVyO2gudHJpZ2dlckNhbGxiYWNrJiZnLm9uU3RhcnQoKCk9PmgudHJpZ2dlckNhbGxiYWNrKCJzdGFydCIpKSxnLm9uRG9uZSgoKT0+dGhpcy5maW5pc2goKSksZy5vbkRlc3Ryb3koKCk9PnRoaXMuZGVzdHJveSgpKX1fcXVl''@;'; + put 'put ''dWVFdmVudChnLGgpe2Q0KHRoaXMuX3F1ZXVlZENhbGxiYWNrcyxnLFtdKS5wdXNoKGgpfW9uRG9uZShnKXt0aGlzLnF1ZXVlZCYmdGhpcy5fcXVldWVFdmVudCgiZG9uZSIsZyksdGhpcy5fcGxheWVyLm9uRG9uZShnKX1vblN0YXJ0KGcpe3RoaXMucXVldWVkJiZ0aGlzLl9xdWV1ZUV2ZW50''@;'; + put 'put ''KCJzdGFydCIsZyksdGhpcy5fcGxheWVyLm9uU3RhcnQoZyl9b25EZXN0cm95KGcpe3RoaXMucXVldWVkJiZ0aGlzLl9xdWV1ZUV2ZW50KCJkZXN0cm95IixnKSx0aGlzLl9wbGF5ZXIub25EZXN0cm95KGcpfWluaXQoKXt0aGlzLl9wbGF5ZXIuaW5pdCgpfWhhc1N0YXJ0ZWQoKXtyZXR1cm4h''@;'; + put 'put ''dGhpcy5xdWV1ZWQmJnRoaXMuX3BsYXllci5oYXNTdGFydGVkKCl9cGxheSgpeyF0aGlzLnF1ZXVlZCYmdGhpcy5fcGxheWVyLnBsYXkoKX1wYXVzZSgpeyF0aGlzLnF1ZXVlZCYmdGhpcy5fcGxheWVyLnBhdXNlKCl9cmVzdGFydCgpeyF0aGlzLnF1ZXVlZCYmdGhpcy5fcGxheWVyLnJlc3Rh''@;'; + put 'put ''cnQoKX1maW5pc2goKXt0aGlzLl9wbGF5ZXIuZmluaXNoKCl9ZGVzdHJveSgpe3RoaXMuZGVzdHJveWVkPSEwLHRoaXMuX3BsYXllci5kZXN0cm95KCl9cmVzZXQoKXshdGhpcy5xdWV1ZWQmJnRoaXMuX3BsYXllci5yZXNldCgpfXNldFBvc2l0aW9uKGcpe3RoaXMucXVldWVkfHx0aGlzLl9w''@;'; + put 'put ''bGF5ZXIuc2V0UG9zaXRpb24oZyl9Z2V0UG9zaXRpb24oKXtyZXR1cm4gdGhpcy5xdWV1ZWQ/MDp0aGlzLl9wbGF5ZXIuZ2V0UG9zaXRpb24oKX10cmlnZ2VyQ2FsbGJhY2soZyl7Y29uc3QgaD10aGlzLl9wbGF5ZXI7aC50cmlnZ2VyQ2FsbGJhY2smJmgudHJpZ2dlckNhbGxiYWNrKGcpfX1m''@;'; + put 'put ''dW5jdGlvbiBOcShkKXtyZXR1cm4gZCYmMT09PWQubm9kZVR5cGV9ZnVuY3Rpb24gU3dlKGQsZyl7Y29uc3QgaD1kLnN0eWxlLmRpc3BsYXk7cmV0dXJuIGQuc3R5bGUuZGlzcGxheT1udWxsIT1nP2c6Im5vbmUiLGh9ZnVuY3Rpb24gTXdlKGQsZyxoLHYseSl7Y29uc3QgQz1bXTtoLmZvckVh''@;'; + put 'put ''Y2godWU9PkMucHVzaChTd2UodWUpKSk7Y29uc3QgST1bXTt2LmZvckVhY2goKHVlLF9lKT0+e2NvbnN0IEJlPW5ldyBNYXA7dWUuZm9yRWFjaChOZT0+e2NvbnN0IEtlPWcuY29tcHV0ZVN0eWxlKF9lLE5lLHkpO0JlLnNldChOZSxLZSksKCFLZXx8MD09S2UubGVuZ3RoKSYmKF9lW1RwXT1q''@;'; + put 'put ''RmUsSS5wdXNoKF9lKSl9KSxkLnNldChfZSxCZSl9KTtsZXQgaj0wO3JldHVybiBoLmZvckVhY2godWU9PlN3ZSh1ZSxDW2orK10pKSxJfWZ1bmN0aW9uIEV3ZShkLGcpe2NvbnN0IGg9bmV3IE1hcDtpZihkLmZvckVhY2goaj0+aC5zZXQoaixbXSkpLDA9PWcubGVuZ3RoKXJldHVybiBoO2Nv''@;'; + put 'put ''bnN0IHk9bmV3IFNldChnKSxDPW5ldyBNYXA7ZnVuY3Rpb24gSShqKXtpZighailyZXR1cm4gMTtsZXQgdWU9Qy5nZXQoaik7aWYodWUpcmV0dXJuIHVlO2NvbnN0IF9lPWoucGFyZW50Tm9kZTtyZXR1cm4gdWU9aC5oYXMoX2UpP19lOnkuaGFzKF9lKT8xOkkoX2UpLEMuc2V0KGosdWUpLHVl''@;'; + put 'put ''fXJldHVybiBnLmZvckVhY2goaj0+e2NvbnN0IHVlPUkoaik7MSE9PXVlJiZoLmdldCh1ZSkucHVzaChqKX0pLGh9ZnVuY3Rpb24gSXAoZCxnKXt2YXIgaDtudWxsPT09KGg9ZC5jbGFzc0xpc3QpfHx2b2lkIDA9PT1ofHxoLmFkZChnKX1mdW5jdGlvbiBuTyhkLGcpe3ZhciBoO251bGw9PT0o''@;'; + put 'put ''aD1kLmNsYXNzTGlzdCl8fHZvaWQgMD09PWh8fGgucmVtb3ZlKGcpfWZ1bmN0aW9uIFVGZShkLGcsaCl7QXcoaCkub25Eb25lKCgpPT5kLnByb2Nlc3NMZWF2ZU5vZGUoZykpfWZ1bmN0aW9uIHh3ZShkLGcpe2ZvcihsZXQgaD0wO2g8ZC5sZW5ndGg7aCsrKXtjb25zdCB2PWRbaF07diBpbnN0''@;'; + put 'put ''YW5jZW9mIHo3P3h3ZSh2LnBsYXllcnMsZyk6Zy5wdXNoKHYpfX1mdW5jdGlvbiBUd2UoZCxnLGgpe2NvbnN0IHY9aC5nZXQoZCk7aWYoIXYpcmV0dXJuITE7bGV0IHk9Zy5nZXQoZCk7cmV0dXJuIHk/di5mb3JFYWNoKEM9PnkuYWRkKEMpKTpnLnNldChkLHYpLGguZGVsZXRlKGQpLCEwfWNs''@;'; + put 'put ''YXNzIFZxe2NvbnN0cnVjdG9yKGcsaCx2KXt0aGlzLmJvZHlOb2RlPWcsdGhpcy5fZHJpdmVyPWgsdGhpcy5fbm9ybWFsaXplcj12LHRoaXMuX3RyaWdnZXJDYWNoZT17fSx0aGlzLm9uUmVtb3ZhbENvbXBsZXRlPSh5LEMpPT57fSx0aGlzLl90cmFuc2l0aW9uRW5naW5lPW5ldyB6RmUoZyxo''@;'; + put 'put ''LHYpLHRoaXMuX3RpbWVsaW5lRW5naW5lPW5ldyBCRmUoZyxoLHYpLHRoaXMuX3RyYW5zaXRpb25FbmdpbmUub25SZW1vdmFsQ29tcGxldGU9KHksQyk9PnRoaXMub25SZW1vdmFsQ29tcGxldGUoeSxDKX1yZWdpc3RlclRyaWdnZXIoZyxoLHYseSxDKXtjb25zdCBJPWcrIi0iK3k7bGV0IGo9''@;'; + put 'put ''dGhpcy5fdHJpZ2dlckNhY2hlW0ldO2lmKCFqKXtjb25zdCB1ZT1bXSxCZT1raGUodGhpcy5fZHJpdmVyLEMsdWUsW10pO2lmKHVlLmxlbmd0aCl0aHJvdyBmdW5jdGlvbiBPUGUoZCxnKXtyZXR1cm4gbmV3IGVuKDM0MDQsITEpfSgpO2o9ZnVuY3Rpb24gREZlKGQsZyxoKXtyZXR1cm4gbmV3''@;'; + put 'put ''IExGZShkLGcsaCl9KHksQmUsdGhpcy5fbm9ybWFsaXplciksdGhpcy5fdHJpZ2dlckNhY2hlW0ldPWp9dGhpcy5fdHJhbnNpdGlvbkVuZ2luZS5yZWdpc3RlclRyaWdnZXIoaCx5LGopfXJlZ2lzdGVyKGcsaCl7dGhpcy5fdHJhbnNpdGlvbkVuZ2luZS5yZWdpc3RlcihnLGgpfWRlc3Ryb3ko''@;'; + put 'put ''ZyxoKXt0aGlzLl90cmFuc2l0aW9uRW5naW5lLmRlc3Ryb3koZyxoKX1vbkluc2VydChnLGgsdix5KXt0aGlzLl90cmFuc2l0aW9uRW5naW5lLmluc2VydE5vZGUoZyxoLHYseSl9b25SZW1vdmUoZyxoLHYseSl7dGhpcy5fdHJhbnNpdGlvbkVuZ2luZS5yZW1vdmVOb2RlKGcsaCx5fHwhMSx2''@;'; + put 'put ''KX1kaXNhYmxlQW5pbWF0aW9ucyhnLGgpe3RoaXMuX3RyYW5zaXRpb25FbmdpbmUubWFya0VsZW1lbnRBc0Rpc2FibGVkKGcsaCl9cHJvY2VzcyhnLGgsdix5KXtpZigiQCI9PXYuY2hhckF0KDApKXtjb25zdFtDLEldPXR3ZSh2KTt0aGlzLl90aW1lbGluZUVuZ2luZS5jb21tYW5kKEMsaCxJ''@;'; + put 'put ''LHkpfWVsc2UgdGhpcy5fdHJhbnNpdGlvbkVuZ2luZS50cmlnZ2VyKGcsaCx2LHkpfWxpc3RlbihnLGgsdix5LEMpe2lmKCJAIj09di5jaGFyQXQoMCkpe2NvbnN0W0ksal09dHdlKHYpO3JldHVybiB0aGlzLl90aW1lbGluZUVuZ2luZS5saXN0ZW4oSSxoLGosQyl9cmV0dXJuIHRoaXMuX3Ry''@;'; + put 'put ''YW5zaXRpb25FbmdpbmUubGlzdGVuKGcsaCx2LHksQyl9Zmx1c2goZz0tMSl7dGhpcy5fdHJhbnNpdGlvbkVuZ2luZS5mbHVzaChnKX1nZXQgcGxheWVycygpe3JldHVybiB0aGlzLl90cmFuc2l0aW9uRW5naW5lLnBsYXllcnMuY29uY2F0KHRoaXMuX3RpbWVsaW5lRW5naW5lLnBsYXllcnMp''@;'; + put 'put ''fXdoZW5SZW5kZXJpbmdEb25lKCl7cmV0dXJuIHRoaXMuX3RyYW5zaXRpb25FbmdpbmUud2hlblJlbmRlcmluZ0RvbmUoKX19bGV0IEtGZT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgsdix5KXt0aGlzLl9lbGVtZW50PWgsdGhpcy5fc3RhcnRTdHlsZXM9dix0aGlzLl9lbmRTdHlsZXM9''@;'; + put 'put ''eSx0aGlzLl9zdGF0ZT0wO2xldCBDPWQuaW5pdGlhbFN0eWxlc0J5RWxlbWVudC5nZXQoaCk7Q3x8ZC5pbml0aWFsU3R5bGVzQnlFbGVtZW50LnNldChoLEM9bmV3IE1hcCksdGhpcy5faW5pdGlhbFN0eWxlcz1DfXN0YXJ0KCl7dGhpcy5fc3RhdGU8MSYmKHRoaXMuX3N0YXJ0U3R5bGVzJiZD''@;'; + put 'put ''Zyh0aGlzLl9lbGVtZW50LHRoaXMuX3N0YXJ0U3R5bGVzLHRoaXMuX2luaXRpYWxTdHlsZXMpLHRoaXMuX3N0YXRlPTEpfWZpbmlzaCgpe3RoaXMuc3RhcnQoKSx0aGlzLl9zdGF0ZTwyJiYoQ2codGhpcy5fZWxlbWVudCx0aGlzLl9pbml0aWFsU3R5bGVzKSx0aGlzLl9lbmRTdHlsZXMmJihD''@;'; + put 'put ''Zyh0aGlzLl9lbGVtZW50LHRoaXMuX2VuZFN0eWxlcyksdGhpcy5fZW5kU3R5bGVzPW51bGwpLHRoaXMuX3N0YXRlPTEpfWRlc3Ryb3koKXt0aGlzLmZpbmlzaCgpLHRoaXMuX3N0YXRlPDMmJihkLmluaXRpYWxTdHlsZXNCeUVsZW1lbnQuZGVsZXRlKHRoaXMuX2VsZW1lbnQpLHRoaXMuX3N0''@;'; + put 'put ''YXJ0U3R5bGVzJiYoX1ModGhpcy5fZWxlbWVudCx0aGlzLl9zdGFydFN0eWxlcyksdGhpcy5fZW5kU3R5bGVzPW51bGwpLHRoaXMuX2VuZFN0eWxlcyYmKF9TKHRoaXMuX2VsZW1lbnQsdGhpcy5fZW5kU3R5bGVzKSx0aGlzLl9lbmRTdHlsZXM9bnVsbCksQ2codGhpcy5fZWxlbWVudCx0aGlz''@;'; + put 'put ''Ll9pbml0aWFsU3R5bGVzKSx0aGlzLl9zdGF0ZT0zKX19cmV0dXJuIGQuaW5pdGlhbFN0eWxlc0J5RWxlbWVudD1uZXcgV2Vha01hcCxkfSkoKTtmdW5jdGlvbiBCaGUoZCl7bGV0IGc9bnVsbDtyZXR1cm4gZC5mb3JFYWNoKChoLHYpPT57KGZ1bmN0aW9uICRGZShkKXtyZXR1cm4iZGlzcGxh''@;'; + put 'put ''eSI9PT1kfHwicG9zaXRpb24iPT09ZH0pKHYpJiYoZz1nfHxuZXcgTWFwLGcuc2V0KHYsaCkpfSksZ31jbGFzcyBJd2V7Y29uc3RydWN0b3IoZyxoLHYseSl7dGhpcy5lbGVtZW50PWcsdGhpcy5rZXlmcmFtZXM9aCx0aGlzLm9wdGlvbnM9dix0aGlzLl9zcGVjaWFsU3R5bGVzPXksdGhpcy5f''@;'; + put 'put ''b25Eb25lRm5zPVtdLHRoaXMuX29uU3RhcnRGbnM9W10sdGhpcy5fb25EZXN0cm95Rm5zPVtdLHRoaXMuX2luaXRpYWxpemVkPSExLHRoaXMuX2ZpbmlzaGVkPSExLHRoaXMuX3N0YXJ0ZWQ9ITEsdGhpcy5fZGVzdHJveWVkPSExLHRoaXMuX29yaWdpbmFsT25Eb25lRm5zPVtdLHRoaXMuX29y''@;'; + put 'put ''aWdpbmFsT25TdGFydEZucz1bXSx0aGlzLnRpbWU9MCx0aGlzLnBhcmVudFBsYXllcj1udWxsLHRoaXMuY3VycmVudFNuYXBzaG90PW5ldyBNYXAsdGhpcy5fZHVyYXRpb249di5kdXJhdGlvbix0aGlzLl9kZWxheT12LmRlbGF5fHwwLHRoaXMudGltZT10aGlzLl9kdXJhdGlvbit0aGlzLl9k''@;'; + put 'put ''ZWxheX1fb25GaW5pc2goKXt0aGlzLl9maW5pc2hlZHx8KHRoaXMuX2ZpbmlzaGVkPSEwLHRoaXMuX29uRG9uZUZucy5mb3JFYWNoKGc9PmcoKSksdGhpcy5fb25Eb25lRm5zPVtdKX1pbml0KCl7dGhpcy5fYnVpbGRQbGF5ZXIoKSx0aGlzLl9wcmVwYXJlUGxheWVyQmVmb3JlU3RhcnQoKX1f''@;'; + put 'put ''YnVpbGRQbGF5ZXIoKXtpZih0aGlzLl9pbml0aWFsaXplZClyZXR1cm47dGhpcy5faW5pdGlhbGl6ZWQ9ITA7Y29uc3QgZz10aGlzLmtleWZyYW1lczt0aGlzLmRvbVBsYXllcj10aGlzLl90cmlnZ2VyV2ViQW5pbWF0aW9uKHRoaXMuZWxlbWVudCxnLHRoaXMub3B0aW9ucyksdGhpcy5fZmlu''@;'; + put 'put ''YWxLZXlmcmFtZT1nLmxlbmd0aD9nW2cubGVuZ3RoLTFdOm5ldyBNYXAsdGhpcy5kb21QbGF5ZXIuYWRkRXZlbnRMaXN0ZW5lcigiZmluaXNoIiwoKT0+dGhpcy5fb25GaW5pc2goKSl9X3ByZXBhcmVQbGF5ZXJCZWZvcmVTdGFydCgpe3RoaXMuX2RlbGF5P3RoaXMuX3Jlc2V0RG9tUGxheWVy''@;'; + put 'put ''U3RhdGUoKTp0aGlzLmRvbVBsYXllci5wYXVzZSgpfV9jb252ZXJ0S2V5ZnJhbWVzVG9PYmplY3QoZyl7Y29uc3QgaD1bXTtyZXR1cm4gZy5mb3JFYWNoKHY9PntoLnB1c2goT2JqZWN0LmZyb21FbnRyaWVzKHYpKX0pLGh9X3RyaWdnZXJXZWJBbmltYXRpb24oZyxoLHYpe3JldHVybiBnLmFu''@;'; + put 'put ''aW1hdGUodGhpcy5fY29udmVydEtleWZyYW1lc1RvT2JqZWN0KGgpLHYpfW9uU3RhcnQoZyl7dGhpcy5fb3JpZ2luYWxPblN0YXJ0Rm5zLnB1c2goZyksdGhpcy5fb25TdGFydEZucy5wdXNoKGcpfW9uRG9uZShnKXt0aGlzLl9vcmlnaW5hbE9uRG9uZUZucy5wdXNoKGcpLHRoaXMuX29uRG9u''@;'; + put 'put ''ZUZucy5wdXNoKGcpfW9uRGVzdHJveShnKXt0aGlzLl9vbkRlc3Ryb3lGbnMucHVzaChnKX1wbGF5KCl7dGhpcy5fYnVpbGRQbGF5ZXIoKSx0aGlzLmhhc1N0YXJ0ZWQoKXx8KHRoaXMuX29uU3RhcnRGbnMuZm9yRWFjaChnPT5nKCkpLHRoaXMuX29uU3RhcnRGbnM9W10sdGhpcy5fc3RhcnRl''@;'; + put 'put ''ZD0hMCx0aGlzLl9zcGVjaWFsU3R5bGVzJiZ0aGlzLl9zcGVjaWFsU3R5bGVzLnN0YXJ0KCkpLHRoaXMuZG9tUGxheWVyLnBsYXkoKX1wYXVzZSgpe3RoaXMuaW5pdCgpLHRoaXMuZG9tUGxheWVyLnBhdXNlKCl9ZmluaXNoKCl7dGhpcy5pbml0KCksdGhpcy5fc3BlY2lhbFN0eWxlcyYmdGhp''@;'; + put 'put ''cy5fc3BlY2lhbFN0eWxlcy5maW5pc2goKSx0aGlzLl9vbkZpbmlzaCgpLHRoaXMuZG9tUGxheWVyLmZpbmlzaCgpfXJlc2V0KCl7dGhpcy5fcmVzZXREb21QbGF5ZXJTdGF0ZSgpLHRoaXMuX2Rlc3Ryb3llZD0hMSx0aGlzLl9maW5pc2hlZD0hMSx0aGlzLl9zdGFydGVkPSExLHRoaXMuX29u''@;'; + put 'put ''U3RhcnRGbnM9dGhpcy5fb3JpZ2luYWxPblN0YXJ0Rm5zLHRoaXMuX29uRG9uZUZucz10aGlzLl9vcmlnaW5hbE9uRG9uZUZuc31fcmVzZXREb21QbGF5ZXJTdGF0ZSgpe3RoaXMuZG9tUGxheWVyJiZ0aGlzLmRvbVBsYXllci5jYW5jZWwoKX1yZXN0YXJ0KCl7dGhpcy5yZXNldCgpLHRoaXMu''@;'; + put 'put ''cGxheSgpfWhhc1N0YXJ0ZWQoKXtyZXR1cm4gdGhpcy5fc3RhcnRlZH1kZXN0cm95KCl7dGhpcy5fZGVzdHJveWVkfHwodGhpcy5fZGVzdHJveWVkPSEwLHRoaXMuX3Jlc2V0RG9tUGxheWVyU3RhdGUoKSx0aGlzLl9vbkZpbmlzaCgpLHRoaXMuX3NwZWNpYWxTdHlsZXMmJnRoaXMuX3NwZWNp''@;'; + put 'put ''YWxTdHlsZXMuZGVzdHJveSgpLHRoaXMuX29uRGVzdHJveUZucy5mb3JFYWNoKGc9PmcoKSksdGhpcy5fb25EZXN0cm95Rm5zPVtdKX1zZXRQb3NpdGlvbihnKXt2b2lkIDA9PT10aGlzLmRvbVBsYXllciYmdGhpcy5pbml0KCksdGhpcy5kb21QbGF5ZXIuY3VycmVudFRpbWU9Zyp0aGlzLnRp''@;'; + put 'put ''bWV9Z2V0UG9zaXRpb24oKXtyZXR1cm4gdGhpcy5kb21QbGF5ZXIuY3VycmVudFRpbWUvdGhpcy50aW1lfWdldCB0b3RhbFRpbWUoKXtyZXR1cm4gdGhpcy5fZGVsYXkrdGhpcy5fZHVyYXRpb259YmVmb3JlRGVzdHJveSgpe2NvbnN0IGc9bmV3IE1hcDt0aGlzLmhhc1N0YXJ0ZWQoKSYmdGhp''@;'; + put 'put ''cy5fZmluYWxLZXlmcmFtZS5mb3JFYWNoKCh2LHkpPT57Im9mZnNldCIhPT15JiZnLnNldCh5LHRoaXMuX2ZpbmlzaGVkP3Y6Z3dlKHRoaXMuZWxlbWVudCx5KSl9KSx0aGlzLmN1cnJlbnRTbmFwc2hvdD1nfXRyaWdnZXJDYWxsYmFjayhnKXtjb25zdCBoPSJzdGFydCI9PT1nP3RoaXMuX29u''@;'; + put 'put ''U3RhcnRGbnM6dGhpcy5fb25Eb25lRm5zO2guZm9yRWFjaCh2PT52KCkpLGgubGVuZ3RoPTB9fWNsYXNzIHFGZXt2YWxpZGF0ZVN0eWxlUHJvcGVydHkoZyl7cmV0dXJuITB9dmFsaWRhdGVBbmltYXRhYmxlU3R5bGVQcm9wZXJ0eShnKXtyZXR1cm4hMH1tYXRjaGVzRWxlbWVudChnLGgpe3Jl''@;'; + put 'put ''dHVybiExfWNvbnRhaW5zRWxlbWVudChnLGgpe3JldHVybiBvd2UoZyxoKX1nZXRQYXJlbnRFbGVtZW50KGcpe3JldHVybiB2aGUoZyl9cXVlcnkoZyxoLHYpe3JldHVybiBhd2UoZyxoLHYpfWNvbXB1dGVTdHlsZShnLGgsdil7cmV0dXJuIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGcpW2hd''@;'; + put 'put ''fWFuaW1hdGUoZyxoLHYseSxDLEk9W10pe2NvbnN0IHVlPXtkdXJhdGlvbjp2LGRlbGF5OnksZmlsbDowPT15PyJib3RoIjoiZm9yd2FyZHMifTtDJiYodWUuZWFzaW5nPUMpO2NvbnN0IF9lPW5ldyBNYXAsQmU9SS5maWx0ZXIoZHQ9PmR0IGluc3RhbmNlb2YgSXdlKTsoZnVuY3Rpb24gckZl''@;'; + put 'put ''KGQsZyl7cmV0dXJuIDA9PT1kfHwwPT09Z30pKHYseSkmJkJlLmZvckVhY2goZHQ9PntkdC5jdXJyZW50U25hcHNob3QuZm9yRWFjaCgoT3QsJHQpPT5fZS5zZXQoJHQsT3QpKX0pO2xldCBOZT1mdW5jdGlvbiBxUGUoZCl7cmV0dXJuIGQubGVuZ3RoP2RbMF1pbnN0YW5jZW9mIE1hcD9kOmQu''@;'; + put 'put ''bWFwKGc9PmN3ZShnKSk6W119KGgpLm1hcChkdD0+d3coZHQpKTtOZT1mdW5jdGlvbiBpRmUoZCxnLGgpe2lmKGguc2l6ZSYmZy5sZW5ndGgpe2xldCB2PWdbMF0seT1bXTtpZihoLmZvckVhY2goKEMsSSk9Pnt2LmhhcyhJKXx8eS5wdXNoKEkpLHYuc2V0KEksQyl9KSx5Lmxlbmd0aClmb3Io''@;'; + put 'put ''bGV0IEM9MTtDPGcubGVuZ3RoO0MrKyl7bGV0IEk9Z1tDXTt5LmZvckVhY2goaj0+SS5zZXQoaixnd2UoZCxqKSkpfX1yZXR1cm4gZ30oZyxOZSxfZSk7Y29uc3QgS2U9ZnVuY3Rpb24gWEZlKGQsZyl7bGV0IGg9bnVsbCx2PW51bGw7cmV0dXJuIEFycmF5LmlzQXJyYXkoZykmJmcubGVuZ3Ro''@;'; + put 'put ''PyhoPUJoZShnWzBdKSxnLmxlbmd0aD4xJiYodj1CaGUoZ1tnLmxlbmd0aC0xXSkpKTpnIGluc3RhbmNlb2YgTWFwJiYoaD1CaGUoZykpLGh8fHY/bmV3IEtGZShkLGgsdik6bnVsbH0oZyxOZSk7cmV0dXJuIG5ldyBJd2UoZyxOZSx1ZSxLZSl9fWxldCBlSGU9KCgpPT57Y2xhc3MgZCBleHRl''@;'; + put 'put ''bmRzIFNYe2NvbnN0cnVjdG9yKGgsdil7c3VwZXIoKSx0aGlzLl9uZXh0QW5pbWF0aW9uSWQ9MCx0aGlzLl9yZW5kZXJlcj1oLmNyZWF0ZVJlbmRlcmVyKHYuYm9keSx7aWQ6IjAiLGVuY2Fwc3VsYXRpb246eDIuTm9uZSxzdHlsZXM6W10sZGF0YTp7YW5pbWF0aW9uOltdfX0pfWJ1aWxkKGgp''@;'; + put 'put ''e2NvbnN0IHY9dGhpcy5fbmV4dEFuaW1hdGlvbklkLnRvU3RyaW5nKCk7dGhpcy5fbmV4dEFuaW1hdGlvbklkKys7Y29uc3QgeT1BcnJheS5pc0FycmF5KGgpP1RrKGgpOmg7cmV0dXJuIER3ZSh0aGlzLl9yZW5kZXJlcixudWxsLHYsInJlZ2lzdGVyIixbeV0pLG5ldyB0SGUodix0aGlzLl9y''@;'; + put 'put ''ZW5kZXJlcil9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKENpKEVkKSxDaShwcykpfSxkLlx1MDI3NXByb3Y9QWkoe3Rva2VuOmQsZmFjdG9yeTpkLlx1MDI3NWZhY30pLGR9KSgpO2NsYXNzIHRIZSBleHRlbmRzIGNsYXNzIG8yZXt9e2NvbnN0cnVj''@;'; + put 'put ''dG9yKGcsaCl7c3VwZXIoKSx0aGlzLl9pZD1nLHRoaXMuX3JlbmRlcmVyPWh9Y3JlYXRlKGcsaCl7cmV0dXJuIG5ldyBuSGUodGhpcy5faWQsZyxofHx7fSx0aGlzLl9yZW5kZXJlcil9fWNsYXNzIG5IZXtjb25zdHJ1Y3RvcihnLGgsdix5KXt0aGlzLmlkPWcsdGhpcy5lbGVtZW50PWgsdGhp''@;'; + put 'put ''cy5fcmVuZGVyZXI9eSx0aGlzLnBhcmVudFBsYXllcj1udWxsLHRoaXMuX3N0YXJ0ZWQ9ITEsdGhpcy50b3RhbFRpbWU9MCx0aGlzLl9jb21tYW5kKCJjcmVhdGUiLHYpfV9saXN0ZW4oZyxoKXtyZXR1cm4gdGhpcy5fcmVuZGVyZXIubGlzdGVuKHRoaXMuZWxlbWVudCxgQEAke3RoaXMuaWR9''@;'; + put 'put ''OiR7Z31gLGgpfV9jb21tYW5kKGcsLi4uaCl7cmV0dXJuIER3ZSh0aGlzLl9yZW5kZXJlcix0aGlzLmVsZW1lbnQsdGhpcy5pZCxnLGgpfW9uRG9uZShnKXt0aGlzLl9saXN0ZW4oImRvbmUiLGcpfW9uU3RhcnQoZyl7dGhpcy5fbGlzdGVuKCJzdGFydCIsZyl9b25EZXN0cm95KGcpe3RoaXMu''@;'; + put 'put ''X2xpc3RlbigiZGVzdHJveSIsZyl9aW5pdCgpe3RoaXMuX2NvbW1hbmQoImluaXQiKX1oYXNTdGFydGVkKCl7cmV0dXJuIHRoaXMuX3N0YXJ0ZWR9cGxheSgpe3RoaXMuX2NvbW1hbmQoInBsYXkiKSx0aGlzLl9zdGFydGVkPSEwfXBhdXNlKCl7dGhpcy5fY29tbWFuZCgicGF1c2UiKX1yZXN0''@;'; + put 'put ''YXJ0KCl7dGhpcy5fY29tbWFuZCgicmVzdGFydCIpfWZpbmlzaCgpe3RoaXMuX2NvbW1hbmQoImZpbmlzaCIpfWRlc3Ryb3koKXt0aGlzLl9jb21tYW5kKCJkZXN0cm95Iil9cmVzZXQoKXt0aGlzLl9jb21tYW5kKCJyZXNldCIpLHRoaXMuX3N0YXJ0ZWQ9ITF9c2V0UG9zaXRpb24oZyl7dGhp''@;'; + put 'put ''cy5fY29tbWFuZCgic2V0UG9zaXRpb24iLGcpfWdldFBvc2l0aW9uKCl7dmFyIGcsaDtyZXR1cm4gbnVsbCE9PShoPW51bGw9PT0oZz10aGlzLl9yZW5kZXJlci5lbmdpbmUucGxheWVyc1srdGhpcy5pZF0pfHx2b2lkIDA9PT1nP3ZvaWQgMDpnLmdldFBvc2l0aW9uKCkpJiZ2b2lkIDAhPT1o''@;'; + put 'put ''P2g6MH19ZnVuY3Rpb24gRHdlKGQsZyxoLHYseSl7cmV0dXJuIGQuc2V0UHJvcGVydHkoZyxgQEAke2h9OiR7dn1gLHkpfWNvbnN0IEx3ZT0iQC5kaXNhYmxlZCI7bGV0IHJIZT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgsdix5KXt0aGlzLmRlbGVnYXRlPWgsdGhpcy5lbmdpbmU9dix0''@;'; + put 'put ''aGlzLl96b25lPXksdGhpcy5fY3VycmVudElkPTAsdGhpcy5fbWljcm90YXNrSWQ9MSx0aGlzLl9hbmltYXRpb25DYWxsYmFja3NCdWZmZXI9W10sdGhpcy5fcmVuZGVyZXJDYWNoZT1uZXcgTWFwLHRoaXMuX2NkUmVjdXJEZXB0aD0wLHRoaXMucHJvbWlzZT1Qcm9taXNlLnJlc29sdmUoMCks''@;'; + put 'put ''di5vblJlbW92YWxDb21wbGV0ZT0oQyxJKT0+e2NvbnN0IGo9bnVsbD09ST92b2lkIDA6SS5wYXJlbnROb2RlKEMpO2omJkkucmVtb3ZlQ2hpbGQoaixDKX19Y3JlYXRlUmVuZGVyZXIoaCx2KXtjb25zdCBDPXRoaXMuZGVsZWdhdGUuY3JlYXRlUmVuZGVyZXIoaCx2KTtpZighKGgmJnYmJnYu''@;'; + put 'put ''ZGF0YSYmdi5kYXRhLmFuaW1hdGlvbikpe2xldCBCZT10aGlzLl9yZW5kZXJlckNhY2hlLmdldChDKTtyZXR1cm4gQmV8fChCZT1uZXcgT3dlKCIiLEMsdGhpcy5lbmdpbmUpLHRoaXMuX3JlbmRlcmVyQ2FjaGUuc2V0KEMsQmUpKSxCZX1jb25zdCBJPXYuaWQsaj12LmlkKyItIit0aGlzLl9j''@;'; + put 'put ''dXJyZW50SWQ7dGhpcy5fY3VycmVudElkKyssdGhpcy5lbmdpbmUucmVnaXN0ZXIoaixoKTtjb25zdCB1ZT1CZT0+e0FycmF5LmlzQXJyYXkoQmUpP0JlLmZvckVhY2godWUpOnRoaXMuZW5naW5lLnJlZ2lzdGVyVHJpZ2dlcihJLGosaCxCZS5uYW1lLEJlKX07cmV0dXJuIHYuZGF0YS5hbmlt''@;'; + put 'put ''YXRpb24uZm9yRWFjaCh1ZSksbmV3IGlIZSh0aGlzLGosQyx0aGlzLmVuZ2luZSl9YmVnaW4oKXt0aGlzLl9jZFJlY3VyRGVwdGgrKyx0aGlzLmRlbGVnYXRlLmJlZ2luJiZ0aGlzLmRlbGVnYXRlLmJlZ2luKCl9X3NjaGVkdWxlQ291bnRUYXNrKCl7dGhpcy5wcm9taXNlLnRoZW4oKCk9Pnt0''@;'; + put 'put ''aGlzLl9taWNyb3Rhc2tJZCsrfSl9c2NoZWR1bGVMaXN0ZW5lckNhbGxiYWNrKGgsdix5KXtoPj0wJiZoPHRoaXMuX21pY3JvdGFza0lkP3RoaXMuX3pvbmUucnVuKCgpPT52KHkpKTooMD09dGhpcy5fYW5pbWF0aW9uQ2FsbGJhY2tzQnVmZmVyLmxlbmd0aCYmUHJvbWlzZS5yZXNvbHZlKG51''@;'; + put 'put ''bGwpLnRoZW4oKCk9Pnt0aGlzLl96b25lLnJ1bigoKT0+e3RoaXMuX2FuaW1hdGlvbkNhbGxiYWNrc0J1ZmZlci5mb3JFYWNoKEM9Pntjb25zdFtJLGpdPUM7SShqKX0pLHRoaXMuX2FuaW1hdGlvbkNhbGxiYWNrc0J1ZmZlcj1bXX0pfSksdGhpcy5fYW5pbWF0aW9uQ2FsbGJhY2tzQnVmZmVy''@;'; + put 'put ''LnB1c2goW3YseV0pKX1lbmQoKXt0aGlzLl9jZFJlY3VyRGVwdGgtLSwwPT10aGlzLl9jZFJlY3VyRGVwdGgmJnRoaXMuX3pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCk9Pnt0aGlzLl9zY2hlZHVsZUNvdW50VGFzaygpLHRoaXMuZW5naW5lLmZsdXNoKHRoaXMuX21pY3JvdGFza0lkKX0pLHRo''@;'; + put 'put ''aXMuZGVsZWdhdGUuZW5kJiZ0aGlzLmRlbGVnYXRlLmVuZCgpfXdoZW5SZW5kZXJpbmdEb25lKCl7cmV0dXJuIHRoaXMuZW5naW5lLndoZW5SZW5kZXJpbmdEb25lKCl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKENpKEVkKSxDaShWcSksQ2koX2wp''@;'; + put 'put ''KX0sZC5cdTAyNzVwcm92PUFpKHt0b2tlbjpkLGZhY3Rvcnk6ZC5cdTAyNzVmYWN9KSxkfSkoKTtjbGFzcyBPd2V7Y29uc3RydWN0b3IoZyxoLHYpe3RoaXMubmFtZXNwYWNlSWQ9Zyx0aGlzLmRlbGVnYXRlPWgsdGhpcy5lbmdpbmU9dix0aGlzLmRlc3Ryb3lOb2RlPXRoaXMuZGVsZWdhdGUu''@;'; + put 'put ''ZGVzdHJveU5vZGU/eT0+aC5kZXN0cm95Tm9kZSh5KTpudWxsfWdldCBkYXRhKCl7cmV0dXJuIHRoaXMuZGVsZWdhdGUuZGF0YX1kZXN0cm95KCl7dGhpcy5lbmdpbmUuZGVzdHJveSh0aGlzLm5hbWVzcGFjZUlkLHRoaXMuZGVsZWdhdGUpLHRoaXMuZGVsZWdhdGUuZGVzdHJveSgpfWNyZWF0''@;'; + put 'put ''ZUVsZW1lbnQoZyxoKXtyZXR1cm4gdGhpcy5kZWxlZ2F0ZS5jcmVhdGVFbGVtZW50KGcsaCl9Y3JlYXRlQ29tbWVudChnKXtyZXR1cm4gdGhpcy5kZWxlZ2F0ZS5jcmVhdGVDb21tZW50KGcpfWNyZWF0ZVRleHQoZyl7cmV0dXJuIHRoaXMuZGVsZWdhdGUuY3JlYXRlVGV4dChnKX1hcHBlbmRD''@;'; + put 'put ''aGlsZChnLGgpe3RoaXMuZGVsZWdhdGUuYXBwZW5kQ2hpbGQoZyxoKSx0aGlzLmVuZ2luZS5vbkluc2VydCh0aGlzLm5hbWVzcGFjZUlkLGgsZywhMSl9aW5zZXJ0QmVmb3JlKGcsaCx2LHk9ITApe3RoaXMuZGVsZWdhdGUuaW5zZXJ0QmVmb3JlKGcsaCx2KSx0aGlzLmVuZ2luZS5vbkluc2Vy''@;'; + put 'put ''dCh0aGlzLm5hbWVzcGFjZUlkLGgsZyx5KX1yZW1vdmVDaGlsZChnLGgsdil7dGhpcy5lbmdpbmUub25SZW1vdmUodGhpcy5uYW1lc3BhY2VJZCxoLHRoaXMuZGVsZWdhdGUsdil9c2VsZWN0Um9vdEVsZW1lbnQoZyxoKXtyZXR1cm4gdGhpcy5kZWxlZ2F0ZS5zZWxlY3RSb290RWxlbWVudChn''@;'; + put 'put ''LGgpfXBhcmVudE5vZGUoZyl7cmV0dXJuIHRoaXMuZGVsZWdhdGUucGFyZW50Tm9kZShnKX1uZXh0U2libGluZyhnKXtyZXR1cm4gdGhpcy5kZWxlZ2F0ZS5uZXh0U2libGluZyhnKX1zZXRBdHRyaWJ1dGUoZyxoLHYseSl7dGhpcy5kZWxlZ2F0ZS5zZXRBdHRyaWJ1dGUoZyxoLHYseSl9cmVt''@;'; + put 'put ''b3ZlQXR0cmlidXRlKGcsaCx2KXt0aGlzLmRlbGVnYXRlLnJlbW92ZUF0dHJpYnV0ZShnLGgsdil9YWRkQ2xhc3MoZyxoKXt0aGlzLmRlbGVnYXRlLmFkZENsYXNzKGcsaCl9cmVtb3ZlQ2xhc3MoZyxoKXt0aGlzLmRlbGVnYXRlLnJlbW92ZUNsYXNzKGcsaCl9c2V0U3R5bGUoZyxoLHYseSl7''@;'; + put 'put ''dGhpcy5kZWxlZ2F0ZS5zZXRTdHlsZShnLGgsdix5KX1yZW1vdmVTdHlsZShnLGgsdil7dGhpcy5kZWxlZ2F0ZS5yZW1vdmVTdHlsZShnLGgsdil9c2V0UHJvcGVydHkoZyxoLHYpeyJAIj09aC5jaGFyQXQoMCkmJmg9PUx3ZT90aGlzLmRpc2FibGVBbmltYXRpb25zKGcsISF2KTp0aGlzLmRl''@;'; + put 'put ''bGVnYXRlLnNldFByb3BlcnR5KGcsaCx2KX1zZXRWYWx1ZShnLGgpe3RoaXMuZGVsZWdhdGUuc2V0VmFsdWUoZyxoKX1saXN0ZW4oZyxoLHYpe3JldHVybiB0aGlzLmRlbGVnYXRlLmxpc3RlbihnLGgsdil9ZGlzYWJsZUFuaW1hdGlvbnMoZyxoKXt0aGlzLmVuZ2luZS5kaXNhYmxlQW5pbWF0''@;'; + put 'put ''aW9ucyhnLGgpfX1jbGFzcyBpSGUgZXh0ZW5kcyBPd2V7Y29uc3RydWN0b3IoZyxoLHYseSl7c3VwZXIoaCx2LHkpLHRoaXMuZmFjdG9yeT1nLHRoaXMubmFtZXNwYWNlSWQ9aH1zZXRQcm9wZXJ0eShnLGgsdil7IkAiPT1oLmNoYXJBdCgwKT8iLiI9PWguY2hhckF0KDEpJiZoPT1Md2U/dGhp''@;'; + put 'put ''cy5kaXNhYmxlQW5pbWF0aW9ucyhnLHY9dm9pZCAwPT09dnx8ISF2KTp0aGlzLmVuZ2luZS5wcm9jZXNzKHRoaXMubmFtZXNwYWNlSWQsZyxoLnNsaWNlKDEpLHYpOnRoaXMuZGVsZWdhdGUuc2V0UHJvcGVydHkoZyxoLHYpfWxpc3RlbihnLGgsdil7aWYoIkAiPT1oLmNoYXJBdCgwKSl7Y29u''@;'; + put 'put ''c3QgeT1mdW5jdGlvbiBvSGUoZCl7c3dpdGNoKGQpe2Nhc2UiYm9keSI6cmV0dXJuIGRvY3VtZW50LmJvZHk7Y2FzZSJkb2N1bWVudCI6cmV0dXJuIGRvY3VtZW50O2Nhc2Uid2luZG93IjpyZXR1cm4gd2luZG93O2RlZmF1bHQ6cmV0dXJuIGR9fShnKTtsZXQgQz1oLnNsaWNlKDEpLEk9IiI7''@;'; + put 'put ''cmV0dXJuIkAiIT1DLmNoYXJBdCgwKSYmKFtDLEldPWZ1bmN0aW9uIGFIZShkKXtjb25zdCBnPWQuaW5kZXhPZigiLiIpO3JldHVybltkLnN1YnN0cmluZygwLGcpLGQuc2xpY2UoZysxKV19KEMpKSx0aGlzLmVuZ2luZS5saXN0ZW4odGhpcy5uYW1lc3BhY2VJZCx5LEMsSSxqPT57dGhpcy5m''@;'; + put 'put ''YWN0b3J5LnNjaGVkdWxlTGlzdGVuZXJDYWxsYmFjayhqLl9kYXRhfHwtMSx2LGopfSl9cmV0dXJuIHRoaXMuZGVsZWdhdGUubGlzdGVuKGcsaCx2KX19bGV0IGxIZT0oKCk9PntjbGFzcyBkIGV4dGVuZHMgVnF7Y29uc3RydWN0b3IoaCx2LHksQyl7c3VwZXIoaC5ib2R5LHYseSl9bmdPbkRl''@;'; + put 'put ''c3Ryb3koKXt0aGlzLmZsdXNoKCl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKENpKHBzKSxDaShBaGUpLENpKFRoZSksQ2koa0MpKX0sZC5cdTAyNzVwcm92PUFpKHt0b2tlbjpkLGZhY3Rvcnk6ZC5cdTAyNzVmYWN9KSxkfSkoKTtjb25zdCBSd2U9''@;'; + put 'put ''W3twcm92aWRlOlNYLHVzZUNsYXNzOmVIZX0se3Byb3ZpZGU6VGhlLHVzZUZhY3Rvcnk6ZnVuY3Rpb24gc0hlKCl7cmV0dXJuIG5ldyBFRmV9fSx7cHJvdmlkZTpWcSx1c2VDbGFzczpsSGV9LHtwcm92aWRlOkVkLHVzZUZhY3Rvcnk6ZnVuY3Rpb24gdUhlKGQsZyxoKXtyZXR1cm4gbmV3IHJI''@;'; + put 'put ''ZShkLGcsaCl9LGRlcHM6W0pULFZxLF9sXX1dLFBoZT1be3Byb3ZpZGU6QWhlLHVzZUZhY3Rvcnk6KCk9Pm5ldyBxRmV9LHtwcm92aWRlOklHLHVzZVZhbHVlOiJCcm93c2VyQW5pbWF0aW9ucyJ9LC4uLlJ3ZV0sQndlPVt7cHJvdmlkZTpBaGUsdXNlQ2xhc3M6bHdlfSx7cHJvdmlkZTpJRyx1''@;'; + put 'put ''c2VWYWx1ZToiTm9vcEFuaW1hdGlvbnMifSwuLi5Sd2VdO2xldCBjSGU9KCgpPT57Y2xhc3MgZHtzdGF0aWMgd2l0aENvbmZpZyhoKXtyZXR1cm57bmdNb2R1bGU6ZCxwcm92aWRlcnM6aC5kaXNhYmxlQW5pbWF0aW9ucz9Cd2U6UGhlfX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgp''@;'; + put 'put ''e3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1bW9kPWNvKHt0eXBlOmR9KSxkLlx1MDI3NWluaj1iMCh7cHJvdmlkZXJzOlBoZSxpbXBvcnRzOlskV119KSxkfSkoKSxmSGU9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3Rvcigpe3RoaXMub3Blbj0hMX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0''@;'; + put 'put ''aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQsc2VsZWN0b3JzOltbIm5nLWNvbXBvbmVudCJdXSxob3N0QXR0cnM6WzEsImNvbnRlbnQtY29udGFpbmVyIl0sZGVjbHM6Myx2YXJzOjAsY29uc3RzOltbMSwiY29udGVudC1hcmVhIl1dLHRlbXBsYXRlOmZ1''@;'; + put 'put ''bmN0aW9uKGgsdil7MSZoJiYocnQoMCwiZGl2IiwwKSgxLCJwIiksWXQoMiwiVGhpcyBpcyBhIHBhZ2UgdG8gaGVscCBkZW1vbnN0cmF0ZSByb3V0aW5nLiIpLGx0KCkoKSl9fSksZH0pKCk7Y29uc3QgaEhlPVsic2lkZWJhck5hdiJdO2Z1bmN0aW9uIGRIZShkLGcpe2lmKDEmZCl7Y29uc3Qg''@;'; + put 'put ''aD1iaSgpO3J0KDAsImEiLDE4KSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIGl0KGgpLGEoSnQoMykubmF2aWdhdGVUb1ZpZXdlcigpKX0pLFl0KDEsIkRhdGEiKSxsdCgpfX1mdW5jdGlvbiBwSGUoZCxnKXsxJmQmJihydCgwLCJhIiwxOSksWXQoMSwiTGluZWFnZSIpLGx0KCkpfWZ1''@;'; + put 'put ''bmN0aW9uIGdIZShkLGcpezEmZCYmKHJ0KDAsImEiLDIwKSxZdCgxLCJNZXRhZGF0YSIpLGx0KCkpfWZ1bmN0aW9uIG1IZShkLGcpezEmZCYmKHJ0KDAsImEiLDIxKSxZdCgxLCIgVXNlcnMiKSxsdCgpKX1mdW5jdGlvbiB2SGUoZCxnKXsxJmQmJihydCgwLCJhIiwyMiksWXQoMSwiU3VibWl0''@;'; + put 'put ''dGVkIiksbHQoKSl9ZnVuY3Rpb24gQUhlKGQsZyl7MSZkJiYocnQoMCwiYSIsMjMpLFl0KDEsIlRvIEFwcHJvdmUiKSxsdCgpKX1mdW5jdGlvbiB5SGUoZCxnKXtpZigxJmQmJihydCgwLCJjbHItZHJvcGRvd24tbWVudSIpLHJuKDEsZEhlLDIsMCwiYSIsMTIpLHJuKDIscEhlLDIsMCwiYSIs''@;'; + put 'put ''MTMpLHJuKDMsZ0hlLDIsMCwiYSIsMTQpLHJuKDQsbUhlLDIsMCwiYSIsMTUpLHJuKDUsdkhlLDIsMCwiYSIsMTYpLHJuKDYsQUhlLDIsMCwiYSIsMTcpLGx0KCkpLDImZCl7Y29uc3QgaD1KdCgyKTt1dCgxKSxUdCgibmdJZiIsaC5pc01haW5Sb3V0ZSgidmlldyIpKSx1dCgxKSxUdCgibmdJ''@;'; + put 'put ''ZiIsaC5pc01haW5Sb3V0ZSgidmlldyIpJiYiU0FTOSI9PT1oLnNlcnZlclR5cGUpLHV0KDEpLFR0KCJuZ0lmIixoLmlzTWFpblJvdXRlKCJ2aWV3IikmJiJTQVM5Ij09PWguc2VydmVyVHlwZSksdXQoMSksVHQoIm5nSWYiLGguaXNNYWluUm91dGUoInZpZXciKSksdXQoMSksVHQoIm5nSWYi''@;'; + put 'put ''LGguaXNNYWluUm91dGUoImFwcHJvdmUiKSksdXQoMSksVHQoIm5nSWYiLGguaXNNYWluUm91dGUoImFwcHJvdmUiKSl9fWZ1bmN0aW9uIHdIZShkLGcpe2lmKDEmZCYmKHJ0KDAsImRpdiIsOCkoMSwiY2xyLWRyb3Bkb3duIikoMiwiYnV0dG9uIiw5KSxZdCgzKSxDcig0LCJjbHItaWNvbiIs''@;'; + put 'put ''MTApLGx0KCkscm4oNSx5SGUsNyw2LCJjbHItZHJvcGRvd24tbWVudSIsMTEpLGx0KCkoKSksMiZkKXtjb25zdCBoPUp0KCk7dXQoMyksSmkoIiAiLGguZ2V0U3ViUGFnZSgpLCIgIil9fWZ1bmN0aW9uIGJIZShkLGcpezEmZCYmQ3IoMCwiY2xyLXRhYi1jb250ZW50Iil9ZnVuY3Rpb24gX0hl''@;'; + put 'put ''KGQsZyl7MSZkJiZDcigwLCJjbHItdGFiLWNvbnRlbnQiKX1jb25zdCBDSGU9ZnVuY3Rpb24oKXtyZXR1cm5bIi92aWV3L3VzZXJuYXYvcm9sZXMiXX07ZnVuY3Rpb24ga0hlKGQsZyl7aWYoMSZkJiYocnQoMCwiY2xyLXRhYiIpKDEsImJ1dHRvbiIsMjUpKDIsInAiLDI2KSxDcigzLCJjbHIt''@;'; + put 'put ''aWNvbiIsMzEpLFl0KDQsIiBSb2xlcyAiKSxsdCgpKCkscm4oNSxfSGUsMSwwLCJjbHItdGFiLWNvbnRlbnQiLDI5KSxsdCgpKSwyJmQpe2NvbnN0IGg9SnQoMik7dXQoMSksVHQoInJvdXRlckxpbmsiLFZzKDIsQ0hlKSksdXQoNCksVHQoImNscklmQWN0aXZlIixoLmlzTWFpblJvdXRlKCIv''@;'; + put 'put ''dmlldy91c2VybmF2L3JvbGVzIikpfX1jb25zdCBTSGU9ZnVuY3Rpb24oKXtyZXR1cm5bIi92aWV3L3VzZXJuYXYvdXNlcnMiXX0sTUhlPWZ1bmN0aW9uKCl7cmV0dXJuWyIvdmlldy91c2VybmF2L2dyb3VwcyJdfTtmdW5jdGlvbiBFSGUoZCxnKXtpZigxJmQmJihydCgwLCJjbHItdGFicyIs''@;'; + put 'put ''MjQpKDEsImNsci10YWIiKSgyLCJidXR0b24iLDI1KSgzLCJwIiwyNiksQ3IoNCwiY2xyLWljb24iLDI3KSxZdCg1LCIgVXNlcnMiKSxsdCgpKCksQ3IoNiwiY2xyLXRhYi1jb250ZW50IiksbHQoKSxydCg3LCJjbHItdGFiIikoOCwiYnV0dG9uIiwyNSkoOSwicCIsMjYpLENyKDEwLCJjbHIt''@;'; + put 'put ''aWNvbiIsMjgpLFl0KDExLCIgR3JvdXBzIiksbHQoKSgpLHJuKDEyLGJIZSwxLDAsImNsci10YWItY29udGVudCIsMjkpLGx0KCkscm4oMTMsa0hlLDYsMywiY2xyLXRhYiIsMzApLGx0KCkpLDImZCl7Y29uc3QgaD1KdCgpO3V0KDIpLFR0KCJyb3V0ZXJMaW5rIixWcyg0LFNIZSkpLHV0KDYp''@;'; + put 'put ''LFR0KCJyb3V0ZXJMaW5rIixWcyg1LE1IZSkpLHV0KDQpLFR0KCJjbHJJZkFjdGl2ZSIsaC5pc01haW5Sb3V0ZSgiL3ZpZXcvdXNlcm5hdi9ncm91cHMiKSksdXQoMSksVHQoIm5nSWYiLCJTQVM5Ij09PWguc2VydmVyVHlwZSl9fWZ1bmN0aW9uIHhIZShkLGcpezEmZCYmKHJ0KDAsInAiLDMy''@;'; + put 'put ''KSxZdCgxLCJFZGl0IiksbHQoKSl9Y29uc3QgVEhlPVsiKiJdO2xldCBrUz0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgsdix5KXt0aGlzLl9yb3V0ZXI9aCx0aGlzLmV2ZW50U2VydmljZT12LHRoaXMuX3Nhc1NlcnZpY2U9eSx0aGlzLnNjcm9sbGVkVG9Cb3R0b209bmV3IGFyLHRoaXMu''@;'; + put 'put ''c2lkZWJhck9wZW49ITAsdGhpcy5zaWRlYmFyV2lkdGg9bnVsbCx0aGlzLnNpZGViYXJNYXhXaWR0aD1udWxsLHRoaXMucmVzaXppbmc9ITEsdGhpcy5zYXNqc0NvbmZpZz1uZXcgUTMuU0FTanNDb25maWcsdGhpcy5zYXNqc0NvbmZpZz10aGlzLl9zYXNTZXJ2aWNlLmdldFNhc2pzQ29uZmln''@;'; + put 'put ''KCksdGhpcy5zZXJ2ZXJUeXBlPXRoaXMuX3Nhc1NlcnZpY2UuZ2V0U2VydmVyVHlwZSgpfW5nT25Jbml0KCl7dGhpcy5ldmVudFNlcnZpY2Uub25TaWRlYmFyVG9nZ2xlLnN1YnNjcmliZShoPT57dGhpcy5zaWRlYmFyT3Blbj1oP2gub3BlbjohdGhpcy5zaWRlYmFyT3Blbix0aGlzLmV2ZW50''@;'; + put 'put ''U2VydmljZS5kaXNwYXRjaEV2ZW50KCJyZXNpemUiKX0pfW9uVHJlZVNjcm9sbChoKXtsZXQgdj1oLnRhcmdldDt2LnNjcm9sbFRvcD49di5zY3JvbGxIZWlnaHQtdi5vZmZzZXRIZWlnaHQtMTAmJnRoaXMuc2Nyb2xsZWRUb0JvdHRvbS5lbWl0KCl9aXNNYWluUm91dGUoaCl7cmV0dXJuIHRo''@;'; + put 'put ''aXMuX3JvdXRlci51cmwuaW5jbHVkZXMoaCl9Z2V0U3ViUGFnZSgpe3JldHVybiB0aGlzLl9yb3V0ZXIudXJsLnNwbGl0KCIvIilbMl19bmF2aWdhdGVUb1ZpZXdlcigpe25pLnZpZXdlci5jdXJyZW50U2VsZWN0aW9uPSIiLHRoaXMuX3JvdXRlci5uYXZpZ2F0ZUJ5VXJsKCIvdmlldy9kYXRh''@;'; + put 'put ''Iil9cmVzaXplU3RhcnQoKXt0aGlzLnJlc2l6aW5nPSEwLGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJib2R5IilbMF0uc3R5bGUuY3NzVGV4dD0idXNlci1zZWxlY3Q6IG5vbmUifXJlc2l6ZUVuZCgpe3RoaXMucmVzaXppbmc9ITEsZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05h''@;'; + put 'put ''bWUoImJvZHkiKVswXS5zdHlsZS5jc3NUZXh0PSIifW9uTW91c2VNb3ZlKGgpe2lmKHRoaXMucmVzaXppbmcpe3RoaXMuc2lkZWJhcldpZHRoPWguY2xpZW50WDtsZXQgdj1kb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJuYXYtdHJlZSIpWzBdO3RoaXMuc2lkZWJhcldpZHRoJiZ0''@;'; + put 'put ''aGlzLmlzT3ZlcmZsb3duKHYpJiYodGhpcy5zaWRlYmFyTWF4V2lkdGg9dGhpcy5zaWRlYmFyV2lkdGg+PTM3NT90aGlzLnNpZGViYXJXaWR0aCsxMDp0aGlzLnNpZGViYXJNYXhXaWR0aCl9fW9uTW91c2VVcChoKXt0aGlzLnJlc2l6aW5nJiZ0aGlzLnJlc2l6ZUVuZCgpfWlzT3ZlcmZsb3du''@;'; + put 'put ''KGgpe3JldHVybiBoLnNjcm9sbFdpZHRoPmguY2xpZW50V2lkdGh9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKEt0KFpsKSxLdChtdSksS3QoZzIpKX0sZC5cdTAyNzVjbXA9VGkoe3R5cGU6ZCxzZWxlY3RvcnM6W1siYXBwLXNpZGViYXIiXV0sdmll''@;'; + put 'put ''d1F1ZXJ5OmZ1bmN0aW9uKGgsdil7aWYoMSZoJiZ2byhoSGUsNSksMiZoKXtsZXQgeTtIaSh5PSRpKCkpJiYodi5zaWRlYmFyTmF2PXkuZmlyc3QpfX0saG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGgsdil7MSZoJiZHbigibW91c2Vtb3ZlIixmdW5jdGlvbihDKXtyZXR1cm4gdi5vbk1vdXNlTW92''@;'; + put 'put ''ZShDKX0sMCxIbCkoIm1vdXNldXAiLGZ1bmN0aW9uKEMpe3JldHVybiB2Lm9uTW91c2VVcChDKX0sITEsSGwpfSxvdXRwdXRzOntzY3JvbGxlZFRvQm90dG9tOiJzY3JvbGxlZFRvQm90dG9tIn0sbmdDb250ZW50U2VsZWN0b3JzOlRIZSxkZWNsczo5LHZhcnM6MTMsY29uc3RzOltbImlkIiwi''@;'; + put 'put ''c2lkZWJhck5hdiJdLFsic2lkZWJhck5hdiIsIiJdLFsiY2xhc3MiLCJkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBzdWItZHJvcGRvd24iLDQsIm5nSWYiXSxbImNsYXNzIiwicC0xMCIsNCwibmdJZiJdLFsiY2xhc3MiLCJwYWdlLXRpdGxlIiw0LCJuZ0lmIl0sWzEsIm5hdi1kaXZp''@;'; + put 'put ''ZGVyIl0sWzEsIm5hdi10cmVlIiwzLCJzY3JvbGwiXSxbMSwicmVzaXplLWhhbmRsZSIsMywibW91c2Vkb3duIl0sWzEsImQtZmxleCIsImp1c3RpZnktY29udGVudC1jZW50ZXIiLCJzdWItZHJvcGRvd24iXSxbImNsckRyb3Bkb3duVHJpZ2dlciIsIiIsMSwiZHJvcGRvd24tdG9nZ2xlIiwi''@;'; + put 'put ''YnRuIiwiYnRuLWxpbmsiXSxbInNoYXBlIiwiY2FyZXQgZG93biJdLFs0LCJjbHJJZk9wZW4iXSxbImNsclZlcnRpY2FsTmF2TGluayIsIiIsInJvdXRlckxpbmtBY3RpdmUiLCJhY3RpdmUiLDMsImNsaWNrIiw0LCJuZ0lmIl0sWyJjbHJWZXJ0aWNhbE5hdkxpbmsiLCIiLCJyb3V0ZXJMaW5r''@;'; + put 'put ''IiwiL3ZpZXcvbGluZWFnZSIsInJvdXRlckxpbmtBY3RpdmUiLCJhY3RpdmUiLDQsIm5nSWYiXSxbImNsclZlcnRpY2FsTmF2TGluayIsIiIsInJvdXRlckxpbmsiLCIvdmlldy9tZXRhZGF0YSIsInJvdXRlckxpbmtBY3RpdmUiLCJhY3RpdmUiLDQsIm5nSWYiXSxbImNsclZlcnRpY2FsTmF2''@;'; + put 'put ''TGluayIsIiIsInJvdXRlckxpbmsiLCIvdmlldy91c2VybmF2Iiwicm91dGVyTGlua0FjdGl2ZSIsImFjdGl2ZSIsNCwibmdJZiJdLFsiY2xyVmVydGljYWxOYXZMaW5rIiwiIiwicm91dGVyTGluayIsIi9hcHByb3ZlL3N1Ym1pdHRlZCIsInJvdXRlckxpbmtBY3RpdmUiLCJhY3RpdmUiLDQs''@;'; + put 'put ''Im5nSWYiXSxbImNsclZlcnRpY2FsTmF2TGluayIsIiIsInJvdXRlckxpbmsiLCIvYXBwcm92ZS90b2FwcHJvdmUiLCJyb3V0ZXJMaW5rQWN0aXZlIiwiYWN0aXZlIiw0LCJuZ0lmIl0sWyJjbHJWZXJ0aWNhbE5hdkxpbmsiLCIiLCJyb3V0ZXJMaW5rQWN0aXZlIiwiYWN0aXZlIiwzLCJjbGlj''@;'; + put 'put ''ayJdLFsiY2xyVmVydGljYWxOYXZMaW5rIiwiIiwicm91dGVyTGluayIsIi92aWV3L2xpbmVhZ2UiLCJyb3V0ZXJMaW5rQWN0aXZlIiwiYWN0aXZlIl0sWyJjbHJWZXJ0aWNhbE5hdkxpbmsiLCIiLCJyb3V0ZXJMaW5rIiwiL3ZpZXcvbWV0YWRhdGEiLCJyb3V0ZXJMaW5rQWN0aXZlIiwiYWN0''@;'; + put 'put ''aXZlIl0sWyJjbHJWZXJ0aWNhbE5hdkxpbmsiLCIiLCJyb3V0ZXJMaW5rIiwiL3ZpZXcvdXNlcm5hdiIsInJvdXRlckxpbmtBY3RpdmUiLCJhY3RpdmUiXSxbImNsclZlcnRpY2FsTmF2TGluayIsIiIsInJvdXRlckxpbmsiLCIvYXBwcm92ZS9zdWJtaXR0ZWQiLCJyb3V0ZXJMaW5rQWN0aXZl''@;'; + put 'put ''IiwiYWN0aXZlIl0sWyJjbHJWZXJ0aWNhbE5hdkxpbmsiLCIiLCJyb3V0ZXJMaW5rIiwiL2FwcHJvdmUvdG9hcHByb3ZlIiwicm91dGVyTGlua0FjdGl2ZSIsImFjdGl2ZSJdLFsxLCJwLTEwIl0sWyJjbHJUYWJMaW5rIiwiIiwxLCJ1c2VyLW5hdi1idG4iLDMsInJvdXRlckxpbmsiXSxbMSwi''@;'; + put 'put ''emVyby1tYXJnaW4iXSxbInNoYXBlIiwidXNlciJdLFsic2hhcGUiLCJ1c2VycyJdLFs0LCJjbHJJZkFjdGl2ZSJdLFs0LCJuZ0lmIl0sWyJzaGFwZSIsImJsb2Nrcy1ncm91cCJdLFsxLCJwYWdlLXRpdGxlIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGgsdil7MSZoJiYoSzAoKSxydCgwLCJjbHIt''@;'; + put 'put ''dmVydGljYWwtbmF2IiwwLDEpLHJuKDIsd0hlLDYsMSwiZGl2IiwyKSxybigzLEVIZSwxNCw2LCJjbHItdGFicyIsMykscm4oNCx4SGUsMiwwLCJwIiw0KSxDcig1LCJkaXYiLDUpLHJ0KDYsImRpdiIsNiksR24oInNjcm9sbCIsZnVuY3Rpb24oQyl7cmV0dXJuIHYub25UcmVlU2Nyb2xsKEMp''@;'; + put 'put ''fSksTmkoNyksbHQoKSxydCg4LCJzcGFuIiw3KSxHbigibW91c2Vkb3duIixmdW5jdGlvbigpe3JldHVybiB2LnJlc2l6ZVN0YXJ0KCl9KSxsdCgpKCkpLDImaCYmKFIzKCJ3aWR0aCIsdi5zaWRlYmFyV2lkdGgsInB4IikoIm1heC13aWR0aCIsdi5zaWRlYmFyTWF4V2lkdGgsInB4IiksRmko''@;'; + put 'put ''ImNsb3NlZCIsIXYuc2lkZWJhck9wZW4pKCJyZXNpemluZyIsdi5yZXNpemluZyksdXQoMiksVHQoIm5nSWYiLHYuaXNNYWluUm91dGUoInZpZXciKSksdXQoMSksVHQoIm5nSWYiLHYuaXNNYWluUm91dGUoInZpZXcvdXNlcm5hdiIpKSx1dCgxKSxUdCgibmdJZiIsdi5pc01haW5Sb3V0ZSgi''@;'; + put 'put ''aG9tZSIpKSx1dCg0KSxGaSgicmVzaXppbmciLHYucmVzaXppbmcpKX0sZGVwZW5kZW5jaWVzOltObyx3bCxHMixaYSxYTCwkTCxBWixLTCxKTCxtWixPeWUsUnllLHZ3LFVMLFFMLFk2LHY3LGxrXSxzdHlsZXM6WyJjbHItdmVydGljYWwtbmF2W19uZ2NvbnRlbnQtJUNPTVAlXXt3aWR0aDoy''@;'; + put 'put ''NzJweDttaW4td2lkdGg6MjcycHg7aGVpZ2h0OjEwMCU7bWF4LXdpZHRoOjM3NXB4O3Bvc2l0aW9uOnJlbGF0aXZlO2JveC1zaGFkb3c6MCAwIDVweCAjMDAwMDAwMWY7YmFja2dyb3VuZC1jb2xvcjojZmZmIWltcG9ydGFudH1jbHItdmVydGljYWwtbmF2W19uZ2NvbnRlbnQtJUNPTVAlXSAg''@;'; + put 'put ''IC5zdW4tZHJvcGRvd25bX25nY29udGVudC0lQ09NUCVde21pbi1oZWlnaHQ6MzZweH1jbHItdmVydGljYWwtbmF2W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5uYXYtdHJlZVtfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEwMCU7b3ZlcmZsb3cteTphdXRvfWNsci12ZXJ0aWNhbC1uYXYuY2xv''@;'; + put 'put ''c2VkW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tbGVmdDotMjcycHh9Y2xyLXZlcnRpY2FsLW5hdltfbmdjb250ZW50LSVDT01QJV0gICAucmVzaXplLWhhbmRsZVtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7cmlnaHQ6LTNweDtib3JkZXIt''@;'; + put 'put ''cmlnaHQ6NHB4IHNvbGlkICM4MGI0NDE7Y3Vyc29yOmNvbC1yZXNpemU7b3BhY2l0eTowO3RyYW5zaXRpb246YWxsIC4xcyBlYXNlLWluLW91dH1jbHItdmVydGljYWwtbmF2W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5yZXNpemUtaGFuZGxlW19uZ2NvbnRlbnQtJUNPTVAlXTpob3ZlcntvcGFj''@;'; + put 'put ''aXR5Oi41fWNsci12ZXJ0aWNhbC1uYXZbX25nY29udGVudC0lQ09NUCVdICAgLnJlc2l6ZS1oYW5kbGUucmVzaXppbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6MX1jbHItdmVydGljYWwtbmF2LnJlc2l6aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2l0aW9uOm5vbmUhaW1wb3J0''@;'; + put 'put ''YW50fS5uYXYtZGl2aWRlcltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyOjA7Ym9yZGVyLXRvcDoxcHggc29saWQgI2QzZDNkMzttYXJnaW4tYm90dG9tOjB9LnBhZ2UtdGl0bGVbX25nY29udGVudC0lQ09NUCVde21hcmdpbjowO2ZvbnQtc2l6ZToxOHB4O3RleHQtYWxpZ246Y2VudGVyfS56''@;'; + put 'put ''ZXJvLW1hcmdpbltfbmdjb250ZW50LSVDT01QJV17bWFyZ2luOjB9LnVzZXItbmF2LWJ0bltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzowIDJweH0iXX0pLGR9KSgpO2Z1bmN0aW9uIElIZShkLGcpezEmZCYmQ3IoMCwiY2xyLWljb24iLDEyKX1mdW5jdGlvbiBESGUoZCxnKXtpZigxJmQp''@;'; + put 'put ''e2NvbnN0IGg9YmkoKTtydCgwLCJjbHItaWNvbiIsMTMpLEduKCJjbGljayIsZnVuY3Rpb24oKXtpdChoKTtjb25zdCB5PUp0KDIpO3JldHVybiB5LmxpYnJhcmllc1NlYXJjaD0iIixhKHkubGlicmFyeU9uRmlsdGVyKCkpfSksbHQoKX19ZnVuY3Rpb24gTEhlKGQsZyl7aWYoMSZkKXtjb25z''@;'; + put 'put ''dCBoPWJpKCk7cnQoMCwiY2xyLXRyZWUtbm9kZSIsNikoMSwiZGl2Iiw3KSgyLCJpbnB1dCIsOCw5KSxHbigibmdNb2RlbENoYW5nZSIsZnVuY3Rpb24oeSl7cmV0dXJuIGl0KGgpLGEoSnQoKS5saWJyYXJpZXNTZWFyY2g9eSl9KSgia2V5dXAiLGZ1bmN0aW9uKCl7cmV0dXJuIGl0KGgpLGEo''@;'; + put 'put ''SnQoKS5saWJyYXJ5T25GaWx0ZXIoKSl9KSxsdCgpLHJuKDQsSUhlLDEsMCwiY2xyLWljb24iLDEwKSxybig1LERIZSwxLDAsImNsci1pY29uIiwxMSksbHQoKSgpfWlmKDImZCl7Y29uc3QgaD15YSgzKSx2PUp0KCk7dXQoMiksVHQoIm5nTW9kZWwiLHYubGlicmFyaWVzU2VhcmNoKSx1dCgy''@;'; + put 'put ''KSxUdCgibmdJZiIsaC52YWx1ZS5sZW5ndGg8MSksdXQoMSksVHQoIm5nSWYiLGgudmFsdWUubGVuZ3RoPjApfX1mdW5jdGlvbiBPSGUoZCxnKXsxJmQmJkNyKDAsImNsci1pY29uIiwxMil9ZnVuY3Rpb24gUkhlKGQsZyl7aWYoMSZkKXtjb25zdCBoPWJpKCk7cnQoMCwiY2xyLWljb24iLDEz''@;'; + put 'put ''KSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7aXQoaCksSnQoKTtjb25zdCB5PXlhKDMpLEM9SnQoMikuJGltcGxpY2l0LEk9SnQoKTtyZXR1cm4geS52YWx1ZT0iIixDLnNlYXJjaFN0cmluZz0iIixhKEkudHJlZU9uRmlsdGVyKEMsInRhYmxlcyIpKX0pLGx0KCl9fWZ1bmN0aW9uIEJIZShkLGcp''@;'; + put 'put ''e2lmKDEmZCl7Y29uc3QgaD1iaSgpO3J0KDAsImNsci10cmVlLW5vZGUiLDYpKDEsImRpdiIsNykoMiwiaW5wdXQiLDE4LDE5KSxHbigibmdNb2RlbENoYW5nZSIsZnVuY3Rpb24oeSl7cmV0dXJuIGl0KGgpLGEoSnQoMikuJGltcGxpY2l0LnNlYXJjaFN0cmluZz15KX0pKCJrZXl1cCIsZnVu''@;'; + put 'put ''Y3Rpb24oKXtpdChoKTtjb25zdCB5PUp0KDIpLiRpbXBsaWNpdDtyZXR1cm4gYShKdCgpLnRyZWVPbkZpbHRlcih5LCJ0YWJsZXMiKSl9KSxsdCgpLHJuKDQsT0hlLDEsMCwiY2xyLWljb24iLDEwKSxybig1LFJIZSwxLDAsImNsci1pY29uIiwxMSksbHQoKSgpfWlmKDImZCl7Y29uc3QgaD15''@;'; + put 'put ''YSgzKSx2PUp0KDIpLiRpbXBsaWNpdDt1dCgyKSxUdCgibmdNb2RlbCIsdi5zZWFyY2hTdHJpbmcpLHV0KDIpLFR0KCJuZ0lmIixoLnZhbHVlLmxlbmd0aDwxKSx1dCgxKSxUdCgibmdJZiIsaC52YWx1ZS5sZW5ndGg+MCl9fWZ1bmN0aW9uIFBIZShkLGcpezEmZCYmQ3IoMCwiY2xyLWljb24i''@;'; + put 'put ''LDI0KX1mdW5jdGlvbiBGSGUoZCxnKXsxJmQmJkNyKDAsImNsci1pY29uIiwyNSl9ZnVuY3Rpb24gSEhlKGQsZyl7aWYoMSZkKXtjb25zdCBoPWJpKCk7cnQoMCwiY2xyLXRyZWUtbm9kZSIpKDEsImJ1dHRvbiIsMjApLEduKCJjbGljayIsZnVuY3Rpb24oKXtjb25zdCBDPWl0KGgpLiRpbXBs''@;'; + put 'put ''aWNpdCxJPUp0KDIpLiRpbXBsaWNpdCxqPUp0KCk7cmV0dXJuIGoudGFibGU9QyxqLmxpYj1JLkxJQlJBUllSRUYsai5zZWxlY3RUYWJsZShDKSxhKGouZWRpdFRhYmxlKCkpfSksRjAoMiwyMSkscm4oMyxQSGUsMSwwLCJjbHItaWNvbiIsMjIpLHJuKDQsRkhlLDEsMCwiY2xyLWljb24iLDIz''@;'; + put 'put ''KSxIMCgpLFl0KDUpLGx0KCkoKX1pZigyJmQpe2NvbnN0IGg9Zy4kaW1wbGljaXQsdj1KdCgyKS4kaW1wbGljaXQseT1KdCgpO3V0KDEpLEZpKCJ0YWJsZS1hY3RpdmUiLHkubGliVGFiQWN0aXZlKHYuTElCUkFSWVJFRixoKSksdXQoMSksVHQoIm5nU3dpdGNoIixoLmluY2x1ZGVzKCItRkMi''@;'; + put 'put ''KSksdXQoMSksVHQoIm5nU3dpdGNoQ2FzZSIsITApLHV0KDEpLFR0KCJuZ1N3aXRjaENhc2UiLCExKSx1dCgxKSxKaSgiICIsaC5yZXBsYWNlKCItRkMiLCIiKSwiICIpfX1mdW5jdGlvbiBOSGUoZCxnKXtpZigxJmQpe2NvbnN0IGg9YmkoKTtydCgwLCJjbHItdHJlZS1ub2RlIiwxNSksR24o''@;'; + put 'put ''ImNsaWNrIixmdW5jdGlvbih5KXtpdChoKTtjb25zdCBDPUp0KCkuJGltcGxpY2l0LEk9SnQoKTtyZXR1cm4gSS50cmVlTm9kZUNsaWNrZWQoeSxDKSxhKEkubGliPUMuTElCUkFSWVJFRil9KSgiY2xyRXhwYW5kZWRDaGFuZ2UiLGZ1bmN0aW9uKHkpe3JldHVybiBpdChoKSxhKEp0KCkuJGlt''@;'; + put 'put ''cGxpY2l0LmV4cGFuZGVkPXkpfSkscnQoMSwicCIsMTYpLEduKCJjbGljayIsZnVuY3Rpb24oKXtpdChoKTtjb25zdCB5PUp0KCkuJGltcGxpY2l0LEM9SnQoKTtyZXR1cm4gQy5saWI9eS5MSUJSQVJZUkVGLGEoQy5saWJyYXJ5T25DbGljayh5LkxJQlJBUllSRUYseSkpfSksQ3IoMiwiY2xy''@;'; + put 'put ''LWljb24iLDE3KSxZdCgzKSxsdCgpLHJuKDQsQkhlLDYsMywiY2xyLXRyZWUtbm9kZSIsMCkscm4oNSxISGUsNiw2LCJjbHItdHJlZS1ub2RlIiwxKSxsdCgpfWlmKDImZCl7Y29uc3QgaD1KdCgpLiRpbXBsaWNpdDtGaSgiY2xyLWV4cGFuZGVkIixoLmV4cGFuZGVkKSxUdCgiY2xyRXhwYW5k''@;'; + put 'put ''ZWQiLGguZXhwYW5kZWQpKCJjbHJMb2FkaW5nIixoLmxvYWRpbmdUYWJsZXMmJiFoLnRhYmxlcyksdXQoMyksSmkoIiAiLGguTElCUkFSWVJFRiwiICIpLHV0KDEpLFR0KCJuZ0lmIixoLnRhYmxlcyksdXQoMSksVHQoIm5nRm9yT2YiLGgudGFibGVzKX19ZnVuY3Rpb24gVkhlKGQsZyl7aWYo''@;'; + put 'put ''MSZkJiYoRjAoMCkscm4oMSxOSGUsNiw3LCJjbHItdHJlZS1ub2RlIiwxNCksSDAoKSksMiZkKXtjb25zdCBoPWcuJGltcGxpY2l0O3V0KDEpLFR0KCJuZ0lmIiwhaC5oaWRkZW4pfX1mdW5jdGlvbiBqSGUoZCxnKXsxJmQmJihydCgwLCJkaXYiLDI2KSgxLCJkaXYiLDI3KSgyLCJzcGFuIiwy''@;'; + put 'put ''OCksWXQoMywiIExvYWRpbmcuLi4gIiksbHQoKSgpKCkpfWZ1bmN0aW9uIFpIZShkLGcpezEmZCYmKHJ0KDAsImgzIiwzMiksWXQoMSwiIFBsZWFzZSBzZWxlY3QgYSB0YWJsZSAiKSxsdCgpKX1mdW5jdGlvbiB6SGUoZCxnKXsxJmQmJihydCgwLCJoMyIsMzIpLFl0KDEsIiBObyBFZGl0YWJs''@;'; + put 'put ''ZSBUYWJsZXMgQ29uZmlndXJlZCAiKSxsdCgpKX1mdW5jdGlvbiBHSGUoZCxnKXtpZigxJmQmJihydCgwLCJkaXYiLDI5KSxDcigxLCJjbHItaWNvbiIsMzApLHJuKDIsWkhlLDIsMCwiaDMiLDMxKSxybigzLHpIZSwyLDAsImgzIiwzMSksbHQoKSksMiZkKXtjb25zdCBoPUp0KCk7dXQoMiks''@;'; + put 'put ''VHQoIm5nSWYiLChudWxsPT1oLnRyZWVOb2RlTGlicmFyaWVzP251bGw6aC50cmVlTm9kZUxpYnJhcmllcy5sZW5ndGgpPjApLHV0KDEpLFR0KCJuZ0lmIiwobnVsbD09aC50cmVlTm9kZUxpYnJhcmllcz9udWxsOmgudHJlZU5vZGVMaWJyYXJpZXMubGVuZ3RoKTwxKX19bGV0IFdIZT0oKCk9''@;'; + put 'put ''PntjbGFzcyBke2NvbnN0cnVjdG9yKGgsdix5LEMsSSl7dGhpcy5yb3V0ZT1oLHRoaXMucm91dGVyPXYsdGhpcy5oZWxwZXJTZXJ2aWNlPXksdGhpcy5ldmVudFNlcnZpY2U9Qyx0aGlzLnNhc1NlcnZpY2U9SSx0aGlzLnRyZWVOb2RlTGlicmFyaWVzPW51bGwsdGhpcy5saWJyYXJpZXNTZWFy''@;'; + put 'put ''Y2g9IiIsdGhpcy5saWI9IiIsdGhpcy50YWJsZT0iIix0aGlzLmVuY29kaW5nPSJVVEYtOCIsdGhpcy5sb2FkaW5nPSEwfWNvbGxhcHNlTGlicmFyeUl0ZW1zKGgsdil7aC5mb3JFYWNoKHk9Pnt5LkxJQlJBUllJRCE9PXYuTElCUkFSWUlEJiYoeS5leHBhbmRlZD0hMSl9KX10cmVlTm9kZUNs''@;'; + put 'put ''aWNrZWQoaCx2KXsiQ29sbGFwc2UiPT09aC50YXJnZXQudGl0bGUmJnRoaXMuY29sbGFwc2VMaWJyYXJ5SXRlbXModGhpcy5saWJyYXJpZXMsdil9bGlicmFyeU9uQ2xpY2soaCx2KXt2LmV4cGFuZGVkPSF2LmV4cGFuZGVkLHYuZXhwYW5kZWQmJiF0aGlzLnRhYmxlJiZ0aGlzLnNlbGVjdExp''@;'; + put 'put ''YnJhcnkoaCwhMSx2KSx0aGlzLmNvbGxhcHNlTGlicmFyeUl0ZW1zKHRoaXMubGlicmFyaWVzLHYpfXNlbGVjdExpYnJhcnkoaCx2LHkpe3kubG9hZGluZ1RhYmxlcz0hMDtsZXQgQyxJPVtdO2lmKHRoaXMubGlic0FuZFRhYmxlcyYmKEM9dGhpcy5saWJzQW5kVGFibGVzW2hdLHRoaXMudGFi''@;'; + put 'put ''bGU9dm9pZCAwLCJQbGVhc2Ugc2VsZWN0IGxpYnJhcnkiIT09aCkpe2xldCBqPUMuZmlsdGVyKGZ1bmN0aW9uKHVlKXtyZXR1cm4tMT09PUkuaW5kZXhPZih1ZSkmJihJLnB1c2godWUpLCEwKX0pO3RoaXMudGFibGVzPWosbmkuZWRpdG9yLmxpYnJhcmllcz10aGlzLmxpYnJhcmllc31uaS5l''@;'; + put 'put ''ZGl0b3IubGlicmFyeT1oLHZ8fHRoaXMuY2xlYXJHbG9iYWxzRmlsdGVyKCkseS5sb2FkaW5nVGFibGVzPSExLHkuZXhwYW5kZWQ9ITB9c2VsZWN0VGFibGUoaCx2KXtyZXR1cm4gbm8odGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe3RoaXMubGliVGFiPXRoaXMubGliKyIuIit0aGlz''@;'; + put 'put ''LnRhYmxlLHRoaXMuc2FzU2VydmljZS5nZXRTYXNqc0NvbmZpZygpLG5pLmVkaXRvci50YWJsZT1oLHZ8fHRoaXMuY2xlYXJHbG9iYWxzRmlsdGVyKCl9KX1jbGVhckdsb2JhbHNGaWx0ZXIoKXtuaS5lZGl0b3IuZmlsdGVyLmxpYmRzPSIiLG5pLmVkaXRvci5maWx0ZXIud2hlcmVDbGF1c2U9''@;'; + put 'put ''IiIsbmkuZWRpdG9yLmZpbHRlci5ncm91cExvZ2ljPSIiLG5pLmVkaXRvci5maWx0ZXIuY2xhdXNlcz1bXSxuaS5lZGl0b3IuZmlsdGVyLnZhbHM9W10sbmkuZWRpdG9yLmZpbHRlci5jb2xzPVtdfWxpYlRhYkFjdGl2ZShoLHYpe3JldHVybiEoIXRoaXMubGlifHwhdGhpcy50YWJsZSkmJmg9''@;'; + put 'put ''PT10aGlzLmxpYiYmdj09PXRoaXMudGFibGV9dHJlZU9uRmlsdGVyKGgsdil7dGhpcy5oZWxwZXJTZXJ2aWNlLnRyZWVPbkZpbHRlcihoLHYpfWxpYnJhcnlPbkZpbHRlcigpe3RoaXMuaGVscGVyU2VydmljZS5saWJyYXJ5T25GaWx0ZXIodGhpcy50cmVlTm9kZUxpYnJhcmllcyx0aGlzLmxp''@;'; + put 'put ''YnJhcmllc1NlYXJjaCwiTElCUkFSWVJFRiIpLG5pLmxpbmVhZ2UubGlicmFyaWVzU2VhcmNoPXRoaXMubGlicmFyaWVzU2VhcmNofWVkaXRUYWJsZSgpe3RoaXMucm91dGUubmF2aWdhdGVCeVVybCgiL2VkaXRvci8iK3RoaXMubGliKyIuIit0aGlzLnRhYmxlKX1nZXRMaWJyYXJ5VGFibGVT''@;'; + put 'put ''dGF0ZSgpe2lmKG51bGwhPT1uaS5lZGl0b3IudHJlZU5vZGVMaWJyYXJpZXMmJih0aGlzLnRyZWVOb2RlTGlicmFyaWVzPW5pLmVkaXRvci50cmVlTm9kZUxpYnJhcmllcyksIiIhPT1uaS5lZGl0b3IubGlicmFyeSl7dGhpcy5saWI9bmkuZWRpdG9yLmxpYnJhcnk7bGV0IGg9bnVsbDt0aGlz''@;'; + put 'put ''LnRyZWVOb2RlTGlicmFyaWVzJiYoaD10aGlzLnRyZWVOb2RlTGlicmFyaWVzLmZpbmQodj0+di5MSUJSQVJZUkVGPT09dGhpcy5saWIpKSx0aGlzLnNlbGVjdExpYnJhcnkobmkuZWRpdG9yLmxpYnJhcnksITAsaCl9fWdldEZyb21HbG9iYWxzKCl7dGhpcy5saWJzQW5kVGFibGVzPW5pLmVk''@;'; + put 'put ''aXRvci5saWJzQW5kVGFibGVzLHRoaXMubGlicmFyaWVzPW5pLmVkaXRvci5saWJyYXJpZXMsdGhpcy5nZXRMaWJyYXJ5VGFibGVTdGF0ZSgpLHRoaXMubG9hZGluZz0hMX1uZ0FmdGVyQ29udGVudEluaXQoKXtuaS5lZGl0b3Iuc3RhcnR1cFNldD90aGlzLmdldEZyb21HbG9iYWxzKCk6dGhp''@;'; + put 'put ''cy5ldmVudFNlcnZpY2Uub25TdGFydHVwRGF0YUxvYWRlZC5zdWJzY3JpYmUoKCk9Pnt0aGlzLmdldEZyb21HbG9iYWxzKCl9KX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoS3QoWmwpLEt0KFB1KSxLdChYYyksS3QobXUpLEt0KGcyKSl9LGQuXHUw''@;'; + put 'put ''Mjc1Y21wPVRpKHt0eXBlOmQsc2VsZWN0b3JzOltbImhvbWUtY29tcG9uZW50Il1dLGhvc3RBdHRyczpbMSwiY29udGVudC1jb250YWluZXIiXSxkZWNsczo4LHZhcnM6NCxjb25zdHM6W1siY2xhc3MiLCJzZWFyY2gtbm9kZSIsNCwibmdJZiJdLFs0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbMSwi''@;'; + put 'put ''Y29udGVudC1hcmVhIl0sWzEsImNhcmQtYmxvY2siXSxbImNsYXNzIiwic3Bpbm5lci13cmFwcGVyLWZ1bGxwYWdlIiw0LCJuZ0lmIl0sWyJjbGFzcyIsIm5vLXRhYmxlLXNlbGVjdGVkIiw0LCJuZ0lmIl0sWzEsInNlYXJjaC1ub2RlIl0sWzEsInRyZWUtc2VhcmNoLXdyYXBwZXIiXSxbImNs''@;'; + put 'put ''cklucHV0IiwiIiwicGxhY2Vob2xkZXIiLCJMaWJyYXJpZXMiLCJuYW1lIiwiaW5wdXQiLCJhdXRvY29tcGxldGUiLCJvZmYiLDMsIm5nTW9kZWwiLCJuZ01vZGVsQ2hhbmdlIiwia2V5dXAiXSxbInNlYXJjaExpYlRyZWVJbnB1dCIsIiJdLFsic2hhcGUiLCJzZWFyY2giLDQsIm5nSWYiXSxb''@;'; + put 'put ''InNoYXBlIiwidGltZXMiLDMsImNsaWNrIiw0LCJuZ0lmIl0sWyJzaGFwZSIsInNlYXJjaCJdLFsic2hhcGUiLCJ0aW1lcyIsMywiY2xpY2siXSxbMywiY2xyRXhwYW5kZWQiLCJjbHJMb2FkaW5nIiwiY2xyLWV4cGFuZGVkIiwiY2xpY2siLCJjbHJFeHBhbmRlZENoYW5nZSIsNCwibmdJZiJd''@;'; + put 'put ''LFszLCJjbHJFeHBhbmRlZCIsImNsckxvYWRpbmciLCJjbGljayIsImNsckV4cGFuZGVkQ2hhbmdlIl0sWzEsIm0tMCIsImN1cnNvci1wb2ludGVyIiwzLCJjbGljayJdLFsic2hhcGUiLCJyYWNrLXNlcnZlciJdLFsiY2xySW5wdXQiLCIiLCJwbGFjZWhvbGRlciIsIlRhYmxlcyIsIm5hbWUi''@;'; + put 'put ''LCJpbnB1dCIsImF1dG9jb21wbGV0ZSIsIm9mZiIsMywibmdNb2RlbCIsIm5nTW9kZWxDaGFuZ2UiLCJrZXl1cCJdLFsic2VhcmNoVHJlZUlucHV0IiwiIl0sWzEsImNsci10cmVlbm9kZS1saW5rIiwzLCJjbGljayJdLFszLCJuZ1N3aXRjaCJdLFsic2hhcGUiLCJib2x0Iiw0LCJuZ1N3aXRj''@;'; + put 'put ''aENhc2UiXSxbInNoYXBlIiwidGFibGUiLDQsIm5nU3dpdGNoQ2FzZSJdLFsic2hhcGUiLCJib2x0Il0sWyJzaGFwZSIsInRhYmxlIl0sWzEsInNwaW5uZXItd3JhcHBlci1mdWxscGFnZSJdLFsxLCJsb2FkaW5nU3Bpbm5lciJdLFsxLCJzcGlubmVyIl0sWzEsIm5vLXRhYmxlLXNlbGVjdGVk''@;'; + put 'put ''Il0sWyJzaGFwZSIsIndhcm5pbmctc3RhbmRhcmQiLCJzaXplIiwiNjAiLDEsImlzLWluZm8iLCJpY29uLWRjLWZpbGwiXSxbImNsYXNzIiwidGV4dC1jZW50ZXIgY29sb3ItZ3JheSIsNCwibmdJZiJdLFsxLCJ0ZXh0LWNlbnRlciIsImNvbG9yLWdyYXkiXV0sdGVtcGxhdGU6ZnVuY3Rpb24o''@;'; + put 'put ''aCx2KXsxJmgmJihydCgwLCJhcHAtc2lkZWJhciIpKDEsImNsci10cmVlIikscm4oMixMSGUsNiwzLCJjbHItdHJlZS1ub2RlIiwwKSxybigzLFZIZSwyLDEsIm5nLWNvbnRhaW5lciIsMSksbHQoKSgpLHJ0KDQsImRpdiIsMikoNSwiZGl2IiwzKSxybig2LGpIZSw0LDAsImRpdiIsNCkscm4o''@;'; + put 'put ''NyxHSGUsNCwyLCJkaXYiLDUpLGx0KCkoKSksMiZoJiYodXQoMiksVHQoIm5nSWYiLChudWxsPT12LnRyZWVOb2RlTGlicmFyaWVzP251bGw6di50cmVlTm9kZUxpYnJhcmllcy5sZW5ndGgpPjApLHV0KDEpLFR0KCJuZ0Zvck9mIix2LnRyZWVOb2RlTGlicmFyaWVzKSx1dCgzKSxUdCgibmdJ''@;'; + put 'put ''ZiIsdi5sb2FkaW5nKSx1dCgxKSxUdCgibmdJZiIsIXYubG9hZGluZykpfSxkZXBlbmRlbmNpZXM6W0VzLE5vLEpkLGlwLG0xLHhzLFRzLHl2LF9nLFlMLHdsLGdvLHB2LGtTXSxzdHlsZXM6WyJjbHItdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGJ1dHRvbltfbmdjb250ZW50LSVD''@;'; + put 'put ''T01QJV17d2hpdGUtc3BhY2U6bm93cmFwfS5jYXJkLWJsb2NrW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MTAwJTtwYWRkaW5nOjB9Lm5vLXRhYmxlLXNlbGVjdGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZTtoZWlnaHQ6MTAwJX0gIGNsci1pY29uLmlzLWJsdWUs''@;'; + put 'put ''ICAgY2xyLWljb24uaXMtaW5mb3tmaWxsOiM2YTkyMzV9LnNwaW5uZXItd3JhcHBlci1mdWxscGFnZVtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCV9Il19KSxkfSko''@;'; + put 'put ''KTt2YXIgYnc9TCgyOTc0OCk7bGV0IGtnPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2LHkpe3RoaXMuc2FzU2VydmljZT1oLHRoaXMuaGVscGVyU2VydmljZT12LHRoaXMubG9nZ2VyU2VydmljZT15LHRoaXMucmVzcG9uc2U9bmV3ICRlLHRoaXMuY2hhbmdlZFRhYmxlPW5ldyAkZSx0''@;'; + put 'put ''aGlzLmRldGFpbHM9bmV3ICRlLHRoaXMuZGlmZnM9bmV3ICRlLHRoaXMuY29sdW1ucz1uZXcgJGUsdGhpcy52YWx1ZXM9bmV3ICRlLHRoaXMuZmlsdGVyPW5ldyAkZSx0aGlzLnF1ZXJ5PW5ldyAkZSx0aGlzLnN1Ym1pdHREZXRhaWw9bmV3ICRlLHRoaXMucmVtb3ZlUXVlcnk9bmV3ICRlLHRo''@;'; + put 'put ''aXMuc2V0U3VibWl0PW5ldyAkZSx0aGlzLnNldFN1Ym1pdExpc3Q9bmV3ICRlfWNhbGxTZXJ2aWNlKGgsdix5LEMpe3JldHVybiBubyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7dGhpcy5saWJkcz1DO2xldCBJPXt9O3JldHVybiBJW3ZdPVtoXSx7ZGF0YTp5aWVsZCB0aGlzLnNh''@;'; + put 'put ''c1NlcnZpY2UucmVxdWVzdCh5LEkpLGxpYmRzOnRoaXMubGliZHN9fSl9dXBkYXRlVGFibGUoaCx2LHksQyxJKXtyZXR1cm4gbm8odGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe2xldCBqPXtqc2RhdGE6dn07aWYoSSl7bGV0IF9lPXRoaXMucGFyc2VGb3JtYXRzKEkpO2ouJGpzZGF0''@;'; + put 'put ''YT17Zm9ybWF0czpfZX19cmV0dXJuIGpbeV09W2hdLHlpZWxkIHRoaXMuc2FzU2VydmljZS5yZXF1ZXN0KEMsail9KX1nZXRBcHByb3ZhbHMoaCx2LHkpe3JldHVybiBubyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7bGV0IEM9e307cmV0dXJuIENbdl09W2hdLHlpZWxkIHRoaXMu''@;'; + put 'put ''c2FzU2VydmljZS5yZXF1ZXN0KHksQyl9KX1zZW5kRGV0YWlscyhoLHYseSl7cmV0dXJuIG5vKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtsZXQgQz1PYmplY3QuYXNzaWduKHtzdWI6ITB9LGgpO3RoaXMuc3VibWl0dERldGFpbC5uZXh0KHtkYXRhOnlbdl0sdmlld0RhdGE6Q30p''@;'; + put 'put ''fSl9Z2V0U3VibWl0dHMoKXtyZXR1cm4gbm8odGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe3JldHVybiB5aWVsZCB0aGlzLnNhc1NlcnZpY2UucmVxdWVzdCgiZWRpdG9ycy9nZXRzdWJtaXRzIixudWxsKX0pfXZpZXdMaWJzKCl7cmV0dXJuIG5vKHRoaXMsdm9pZCAwLHZvaWQgMCxm''@;'; + put 'put ''dW5jdGlvbiooKXtyZXR1cm4gdGhpcy5zYXNTZXJ2aWNlLnJlcXVlc3QoInB1YmxpYy92aWV3bGlicyIsbnVsbCl9KX1yZWZyZXNoTGliSW5mbyhoKXtyZXR1cm4gbm8odGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe3JldHVybiB0aGlzLnNhc1NlcnZpY2UucmVxdWVzdCgicHVibGlj''@;'; + put 'put ''L3JlZnJlc2hsaWJpbmZvIix7bGliMnJlZnJlc2g6W3tsaWJyZWY6aH1dfSl9KX12ZXJzaW9uSGlzdG9yeShoKXtyZXR1cm4gbm8odGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe2NvbnN0IHY9e2l3YW50Olt7TElCRFM6aH1dfTtyZXR1cm4geWllbGQgdGhpcy5zYXNTZXJ2aWNlLnJl''@;'; + put 'put ''cXVlc3QoInB1YmxpYy9nZXR2ZXJzaW9uaGlzdG9yeSIsdil9KX12aWV3VGFibGVzKGgpe3JldHVybiBubyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7bGV0IHY9e1NBU0NvbnRyb2xUYWJsZTpbe01QTElCOmh9XX07cmV0dXJuIHlpZWxkIHRoaXMuc2FzU2VydmljZS5yZXF1ZXN0''@;'; + put 'put ''KCJwdWJsaWMvdmlld3RhYmxlcyIsdil9KX12aWV3RGF0YShoLHYpe3JldHVybiBubyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7bGV0IHk9e1NBU0NvbnRyb2xUYWJsZTpbe0xJQkRTOmgsRklMVEVSX1JLOnZ9XX07cmV0dXJuIHlpZWxkIHRoaXMuc2FzU2VydmljZS5yZXF1ZXN0''@;'; + put 'put ''KCJwdWJsaWMvdmlld2RhdGEiLHkpfSl9dmlld0RhdGFTZWFyY2goaCx2PSExLHksQyl7cmV0dXJuIG5vKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtsZXQgaj17U0FTQ29udHJvbFRhYmxlOlt7U0VBUkNIVFlQRTpoLmxlbmd0aD4wP3Y/Ik5VTSI6IkNIQVIiOiJOT05FIixTRUFS''@;'; + put 'put ''Q0hWQUw6aCxMSUJEUzp5LEZJTFRFUl9SSzpDfV19O3JldHVybiB5aWVsZCB0aGlzLnNhc1NlcnZpY2UucmVxdWVzdCgicHVibGljL3ZpZXdkYXRhIixqKX0pfWdldERldGFpbHMoaCx2LHkpe3JldHVybiBubyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7bGV0IEM9e307cmV0dXJu''@;'; + put 'put ''IENbdl09W2hdLHlpZWxkIHRoaXMuc2FzU2VydmljZS5yZXF1ZXN0KHksQyl9KX1zaG93RGlmZnMoaCx2LHkpe3JldHVybiBubyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7bGV0IEM9e307cmV0dXJuIENbdl09W2hdLHlpZWxkIHRoaXMuc2FzU2VydmljZS5yZXF1ZXN0KHksQyx7''@;'; + put 'put ''dXNlQ29tcHV0ZUFwaTohMX0pfSl9cmVqZWN0aW5nKGgsdix5KXtyZXR1cm4gbm8odGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe2xldCBDPXt9O3JldHVybiBDW3ZdPVtoXSx5aWVsZCB0aGlzLnNhc1NlcnZpY2UucmVxdWVzdCh5LEMse3VzZUNvbXB1dGVBcGk6ITF9KX0pfWFwcHJv''@;'; + put 'put ''dmVUYWJsZShoLHYseSl7cmV0dXJuIG5vKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtsZXQgQz17fTtyZXR1cm4gQ1t2XT1baF0seWllbGQgdGhpcy5zYXNTZXJ2aWNlLnJlcXVlc3QoeSxDKX0pfWdldEhpc3RvcnkoaCx2LHkpe3JldHVybiBubyh0aGlzLHZvaWQgMCx2b2lkIDAs''@;'; + put 'put ''ZnVuY3Rpb24qKCl7bGV0IEM9e307cmV0dXJuIENbdl09W2hdLHlpZWxkIHRoaXMuc2FzU2VydmljZS5yZXF1ZXN0KHksQyl9KX1zZXRRdWVyeVZhcmlhYmxlcyhoLHYpe3RoaXMuY29sdW1ucy5uZXh0KHtkYXRhOntjb2xzOnZ9LGxpYmRzOmh9KX1nZXRDaGFuZ2VJbmZvKGgpe3JldHVybiBu''@;'; + put 'put ''byh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7bGV0IHk9e1NBU0NvbnRyb2xUYWJsZTpbe1RBQkxFOmh9XX07cmV0dXJuIHlpZWxkIHRoaXMuc2FzU2VydmljZS5yZXF1ZXN0KCJwdWJsaWMvZ2V0Y2hhbmdlaW5mbyIseSl9KX1nZXRRdWVyeVZhbHVlcyhoLHYseSl7cmV0dXJuIG5v''@;'; + put 'put ''KHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtsZXQgQz17aXdhbnQ6W3tsaWJkczp2LGNvbDpofV19O3JldHVybiB5Lmxlbmd0aD4wJiYoQy5GSUxURVJRVUVSWT15KSx5aWVsZCB0aGlzLnNhc1NlcnZpY2UucmVxdWVzdCgicHVibGljL2dldGNvbHZhbHMiLEMpLmNhdGNoKGo9Pnt0''@;'; + put 'put ''aHJvdyBqfSl9KX1zYXZlUXVlcnkoaCx2KXtyZXR1cm4gbm8odGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe2xldCB5PXtpd2FudDpbe2ZpbHRlcl90YWJsZTpofV0sZmlsdGVycXVlcnk6dn0sQz15aWVsZCB0aGlzLnNhc1NlcnZpY2UucmVxdWVzdCgicHVibGljL3ZhbGlkYXRlZmls''@;'; + put 'put ''dGVyIix5KTtyZXR1cm4gdGhpcy5maWx0ZXIubmV4dChDKSxDfSl9b3BlblRhYmxlKGgpe3JldHVybiBubyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7bGV0IHY9e2l3YW50Olt7dGFibGVfaWQ6aH1dfTtyZXR1cm4geWllbGQgdGhpcy5zYXNTZXJ2aWNlLnJlcXVlc3QoImF1ZGl0''@;'; + put 'put ''b3JzL2dldHN0YWdldGFibGUiLHYpfSl9Y2hlY2tPcGVyYXRvcihoLHYseSl7bGV0IEM7c3dpdGNoKGgpe2Nhc2UiQkVUV0VFTiI6diBpbnN0YW5jZW9mIEFycmF5JiYoIiIhPT12WzBdJiYiIiE9PXZbMV0/Qz12WzBdKyIgQU5EICIrdlsxXToiIiE9PXZbMF0mJiIiPT09dlsxXT8odlsxXT0i''@;'; + put 'put ''LiIsQz12WzBdKyIgQU5EICIrdlsxXSk6IiI9PT12WzBdJiYiIiE9PXZbMV0/KHZbMF09Ii4iLEM9dlswXSsiIEFORCAiK3ZbMV0pOih2WzBdPSIuIix2WzFdPSIuIixDPXZbMF0rIiBBTkQgIit2WzFdKSk7YnJlYWs7Y2FzZSJJTiI6Y2FzZSJOT1QgSU4iOmxldCBqPVtdO2lmKHZvaWQgMCE9''@;'; + put 'put ''PXYpZm9yKGxldCB1ZT0wO3VlPHYubGVuZ3RoO3VlKyspITA9PT12W3VlXS5jaGVja2VkJiYoImNoYXIiPT09eT8oInN0cmluZyI9PXR5cGVvZiB2W3VlXS52YWwmJih2W3VlXS52YWw9dlt1ZV0udmFsLnJlcGxhY2UoIiciLCInJyIpKSxqLnB1c2goIiciK3ZbdWVdLnZhbCsiJyIpKToobnVs''@;'; + put 'put ''bD09PXZbdWVdLnZhbCYmKHZbdWVdLnZhbD0iLiIpLGoucHVzaCh2W3VlXS52YWwpKSk7dj0iKCIraisiKSI7YnJlYWs7Y2FzZSJDT05UQUlOUyI6aD0iPyI7YnJlYWs7Y2FzZSJOT1QgRVFVQUwiOmg9Im5lIn1yZXR1cm4ibnVtIj09PXkmJm51bGw9PT12JiYodj0iLiIpLCJQbGVhc2Ugc2Vs''@;'; + put 'put ''ZWN0IHZhbHVlIj09PXYmJih2PSIiKSwtMSE9PVsiPSIsIj4iLCI8IiwiPD0iLCI+PSIsIm5lIl0uaW5kZXhPZihoKSYmIm51bSI9PT15JiYiIj09PXYmJih2PSIuIiksIkJFVFdFRU4iPT09aD97dmFsdWU6QyxvcGVyYXRvcjpofTp7dmFsdWU6dixvcGVyYXRvcjpofX13aGVyZUNsYXVzZUNy''@;'; + put 'put ''ZWF0b3IoaCx2LHkpe2xldCB1ZSxOZSxDPSIiLF9lPSIiLEJlPVtdO2ZvcihsZXQgZHQ9MDtkdDxoLnF1ZXJ5T2JqLmxlbmd0aDtkdCsrKXtsZXQgT3Q9IiIsJHQ9aC5xdWVyeU9ialtkdF07Zm9yKGxldCBmbj0wO2ZuPCR0LmVsZW1lbnRzLmxlbmd0aDtmbisrKXtsZXQgaXIsTG49JHQuZWxl''@;'; + put 'put ''bWVudHNbZm5dO3VlPWZuPCR0LmVsZW1lbnRzLmxlbmd0aC0xPyR0LmNsYXVzZUxvZ2ljOiIiO2ZvcihsZXQgeWk9MDt5aTxMbi52YWx1ZXMubGVuZ3RoO3lpKyspe2lmKCJzdHJpbmciPT10eXBlb2YgTG4udmFsdWUmJiJudW1iZXIiPT10eXBlb2YgTG4udmFsdWVzW3lpXS5mb3JtYXR0ZWQp''@;'; + put 'put ''TG4udmFsdWU9PT1KU09OLnN0cmluZ2lmeShMbi52YWx1ZXNbeWldLmZvcm1hdHRlZCkmJihpcj1Mbi52YWx1ZXNbeWldLnVuZm9ybWF0dGVkKTtlbHNle2xldCBTbz0ibnVtYmVyIiE9dHlwZW9mIExuLnZhbHVlc1t5aV0uZm9ybWF0dGVkJiZudWxsIT09TG4udmFsdWVzW3lpXS5mb3JtYXR0''@;'; + put 'put ''ZWQ/TG4udmFsdWVzW3lpXS5mb3JtYXR0ZWQudHJpbSgpOkxuLnZhbHVlc1t5aV0uZm9ybWF0dGVkO0xuLnZhbHVlPT09U28mJihpcj1Mbi52YWx1ZXNbeWldLnVuZm9ybWF0dGVkKX1sZXQgS2k9WyI9IiwiPiIsIjwiLCI8PSIsIj49IiwibmUiXTsiUGxlYXNlIHNlbGVjdCB2YWx1ZSI9PT1M''@;'; + put 'put ''bi52YWx1ZSYmLTEhPT1LaS5pbmRleE9mKExuLm9wZXJhdG9yKSYmKGlyPSIiKSwoIkNPTlRBSU5TIj09PUxuLm9wZXJhdG9yfHwiTElLRSI9PT1Mbi5vcGVyYXRvcnx8IkJFR0lOU19XSVRIIj09PUxuLm9wZXJhdG9yKSYmKGlyPUxuLnZhbHVlKX1pZihpcnx8KGlyPUxuLnZhbHVlKSxMbi52''@;'; + put 'put ''YWx1ZSBpbnN0YW5jZW9mIEFycmF5JiYiQkVUV0VFTiI9PT1Mbi5vcGVyYXRvcil7aXI9W10saXIucHVzaChMbi52YWx1ZVswXSksaXIucHVzaChMbi52YWx1ZVsxXSk7Zm9yKGxldCB5aT0wO3lpPExuLnZhbHVlcy5sZW5ndGg7eWkrKylpclswXT09PUxuLnZhbHVlc1t5aV0uZm9ybWF0dGVk''@;'; + put 'put ''JiYoaXJbMF09TG4udmFsdWVzW3lpXS51bmZvcm1hdHRlZCksaXJbMV09PT1Mbi52YWx1ZXNbeWldLmZvcm1hdHRlZCYmKGlyWzFdPUxuLnZhbHVlc1t5aV0udW5mb3JtYXR0ZWQpfWlmKExuLnZhbHVlIGluc3RhbmNlb2YgQXJyYXkmJigiSU4iPT09TG4ub3BlcmF0b3J8fCJOT1QgSU4iPT09''@;'; + put 'put ''TG4ub3BlcmF0b3IpKXtpcj1bXSxpcj1Mbi52YWx1ZTtmb3IobGV0IHlpPTA7eWk8TG4udmFsdWVzLmxlbmd0aDt5aSsrKWlyW3lpXSYmaXJbeWldLnZhbD09PUxuLnZhbHVlc1t5aV0uZm9ybWF0dGVkJiYoaXJbeWldLnZhbD1Mbi52YWx1ZXNbeWldLnVuZm9ybWF0dGVkKX1sZXQgUXIsbXI9''@;'; + put 'put ''TG4udHlwZSxTcj1udWxsPT09TG4udmFyaWFibGU/IiI6TG4udmFyaWFibGUsd3I9bnVsbD09PUxuLm9wZXJhdG9yPyIiOkxuLm9wZXJhdG9yO1FyPXRoaXMuY2hlY2tPcGVyYXRvcih3cixpcixtcikudmFsdWUsInN0cmluZyI9PXR5cGVvZiBRciYmIigiIT09UXJbMF0mJihRcj1Rci5yZXBs''@;'; + put 'put ''YWNlKCInIiwiJyciKSksd3I9dGhpcy5jaGVja09wZXJhdG9yKHdyLFFyLG1yKS5vcGVyYXRvciwiY2hhciI9PT1tciYmIklOIiE9PXdyJiYiTk9UIElOIiE9PXdyPyh2b2lkIDA9PT1RciYmKFFyPSIiKSxRcj0iICciK1FyKyInICIsT3Q9T3QrIiAiK1NyKyIgIit3citRcit1ZSk6KCJudW0i''@;'; + put 'put ''PT09bXImJnZvaWQgMD09PVFyJiYoUXI9Ii4iKSxRcj12b2lkIDA9PT1Rcj8iIjoiICIrUXIrIiAiLE90PU90KyIgIitTcisiICIrd3IrUXIrdWUpfUJlLnB1c2goT3QpfV9lPSIiO2ZvcihsZXQgZHQ9MDtkdDxCZS5sZW5ndGg7ZHQrKylOZT1kdDxCZS5sZW5ndGgtMT92OiIiLF9lPTE9PT1C''@;'; + put 'put ''ZS5sZW5ndGg/QmVbMF06X2UrIiAoIitCZVtkdF0rIikgIitOZTtyZXR1cm4gQz1fZS5zdWJzdHIoMSkuc2xpY2UoMCwtMSksX2U9IldIRVJFIitfZSsiOyIsdGhpcy5xdWVyeS5uZXh0KHt3aGVyZUNsYXVzZTpfZSxzdHJpbmc6QyxvYmo6aCxsaWJkczp5fSkse3doZXJlQ2xhdXNlOl9lLHN0''@;'; + put 'put ''cmluZzpDfX1jcmVhdGVGaWx0ZXJRdWVyeVRhYmxlKGgpe2NvbnN0IHY9W107cmV0dXJuIGguZmlsdGVyR3JvdXBzLmZvckVhY2goKHksQyk9Pnt5LmZpbHRlckNsYXVzZXMuZm9yRWFjaChJPT57bGV0IGo9IiI7IkJFVFdFRU4iPT09SS5vcGVyYXRvcj9qPWAke0kudmFsdWVbMF19IEFORCAk''@;'; + put 'put ''e0kudmFsdWVbMV19YDoiSU4iPT09SS5vcGVyYXRvcnx8Ik5PVCBJTiI9PT1JLm9wZXJhdG9yPyhJLnZhbHVlLmZvckVhY2godWU9PntpZih1ZS5jaGVja2VkKXtjb25zdCBfZT11ZS52YWw7InN0cmluZyIhPXR5cGVvZiBfZXx8KDAsYncuaXNTcGVjaWFsTWlzc2luZykoX2UpJiYiY2hhciIh''@;'; + put 'put ''PT1JLnR5cGU/ai5sZW5ndGg+MD9qKz1gLCR7X2V9YDpqPWAoJHtfZX1gOmoubGVuZ3RoPjA/ais9YCwnJHtfZS5yZXBsYWNlKC8nL2csIicnIil9J2A6aj1gKCcke19lLnJlcGxhY2UoLycvZywiJyciKX0nYH19KSxqLmxlbmd0aD4wJiYoais9IikiKSk6IiI9PT1JLnZhbHVlP2o9ImNoYXIi''@;'; + put 'put ''PT09SS50eXBlPyInICciOiIuIjoiY2hhciI9PT1JLnR5cGUmJihqPWAnJHtJLnZhbHVlLnJlcGxhY2UoLycvZywiJyciKX0nYCksdi5wdXNoKHtHUk9VUF9MT0dJQzpoLmdyb3VwTG9naWMsU1VCR1JPVVBfTE9HSUM6eS5jbGF1c2VMb2dpY3x8IkFORCIsU1VCR1JPVVBfSUQ6QyxWQVJJQUJM''@;'; + put 'put ''RV9OTTpJLnZhcmlhYmxlLE9QRVJBVE9SX05NOkkub3BlcmF0b3IsUkFXX1ZBTFVFOmp8fEkudmFsdWV9KX0pfSksdn1pbml0aWFsaXplR2xvYmFsRmlsdGVyQ2xhdXNlKGgsdil7bGV0IHk9InZpZXdlciI7ImVkaXQiPT09aCYmKHk9ImVkaXRvciIpLG5pW3ldLmZpbHRlci5jbGF1c2VzPXRo''@;'; + put 'put ''aXMuaGVscGVyU2VydmljZS5kZWVwQ2xvbmUoe3F1ZXJ5T2JqOltdLGNsYXVzZUxvZ2ljOltdLGdyb3VwTG9naWM6bmlbeV0uZmlsdGVyLnF1ZXJ5WzBdLkdST1VQX0xPR0lDfSksbmlbeV0uZmlsdGVyLmdyb3VwTG9naWM9bmlbeV0uZmlsdGVyLnF1ZXJ5WzBdLkdST1VQX0xPR0lDO2xldCBJ''@;'; + put 'put ''PSIiLGo9e2VsZW1lbnRzOltdfSx1ZT0wO25pW3ldLmZpbHRlci5xdWVyeS5mb3JFYWNoKF9lPT57Y29uc3QgQmU9e307Zm9yKGxldCBOZT0wO05lPHYubGVuZ3RoO05lKyspaWYodltOZV0uTkFNRT09PV9lLlZBUklBQkxFX05NKXtpZihJPV9lLlNVQkdST1VQX0xPR0lDLEJlLmRkdHlwZT12''@;'; + put 'put ''W05lXS5ERFRZUEUsQmUudHlwZT12W05lXS5UWVBFLEJlLm9wZXJhdG9ycz0ibnVtIj09PXZbTmVdLlRZUEU/bmkub3BlcmF0b3JzLm51bU9wZXJhdG9yczpuaS5vcGVyYXRvcnMuY2hhck9wZXJhdG9ycyxCZS5sb2dpYz1udWxsLEJlLm9wZXJhdG9yPV9lLk9QRVJBVE9SX05NLEJlLnZhcmlh''@;'; + put 'put ''YmxlPV9lLlZBUklBQkxFX05NLCJjaGFyIj09PXZbTmVdLlRZUEUpaWYoIklOIj09PV9lLk9QRVJBVE9SX05NfHwiTk9UIElOIj09PV9lLk9QRVJBVE9SX05NKXtjb25zdCBLZT1bXSxPdD1fZS5SQVdfVkFMVUUuc2xpY2UoMSwtMSkuc3BsaXQoIicsJyIpOzE9PT1PdC5sZW5ndGg/S2UucHVz''@;'; + put 'put ''aCh7Y2hlY2tlZDohMCx2YWw6T3RbMF0uc2xpY2UoMSwtMSkucmVwbGFjZSgvJycvZywiJyIpfSk6T3QuZm9yRWFjaCgoJHQsZm4pPT57S2UucHVzaCgwPT09Zm4/e2NoZWNrZWQ6ITAsdmFsOiR0LnNsaWNlKDEpLnJlcGxhY2UoLycnL2csIiciKX06Zm49PT1PdC5sZW5ndGgtMT97Y2hlY2tl''@;'; + put 'put ''ZDohMCx2YWw6JHQuc2xpY2UoMCwtMSkucmVwbGFjZSgvJycvZywiJyIpfTp7Y2hlY2tlZDohMCx2YWw6JHQucmVwbGFjZSgvJycvZywiJyIpfSl9KSxCZS52YWx1ZT10aGlzLmhlbHBlclNlcnZpY2UuZGVlcENsb25lKEtlKX1lbHNlIEJlLnZhbHVlPV9lLlJBV19WQUxVRS5zbGljZSgxLC0x''@;'; + put 'put ''KS5yZXBsYWNlKC8nJy9nLCInIik7ZWxzZSBpZigiSU4iPT09X2UuT1BFUkFUT1JfTk18fCJOT1QgSU4iPT09X2UuT1BFUkFUT1JfTk0pe2NvbnN0IEtlPVtdO19lLlJBV19WQUxVRS5zbGljZSgxLC0xKS5zcGxpdCgiLCIpLmZvckVhY2goKCR0LGZuKT0+e0tlLnB1c2goe2NoZWNrZWQ6ITAs''@;'; + put 'put ''dmFsOiR0fSl9KSxCZS52YWx1ZT10aGlzLmhlbHBlclNlcnZpY2UuZGVlcENsb25lKEtlKX1lbHNlIGlmKCJCRVRXRUVOIj09PV9lLk9QRVJBVE9SX05NKXtjb25zdCBLZT1fZS5SQVdfVkFMVUUuc3BsaXQoIiBBTkQgIik7QmUudmFsdWU9S2V9ZWxzZSBCZS52YWx1ZT1fZS5SQVdfVkFMVUU7''@;'; + put 'put ''QmUudmFsdWVzPVtdLHVlPT09X2UuU1VCR1JPVVBfSUR8fChuaVt5XS5maWx0ZXIuY2xhdXNlcy5xdWVyeU9iai5wdXNoKHRoaXMuaGVscGVyU2VydmljZS5kZWVwQ2xvbmUoaikpLG5pW3ldLmZpbHRlci5jbGF1c2VzLnF1ZXJ5T2JqW3VlXS5jbGF1c2VMb2dpYz1JLG5pW3ldLmZpbHRlci5j''@;'; + put 'put ''bGF1c2VzLnF1ZXJ5T2JqW3VlXS5pbnZhbGlkQ2xhdXNlPSExLHVlKyssai5lbGVtZW50cz1bXSksai5lbGVtZW50cy5wdXNoKHRoaXMuaGVscGVyU2VydmljZS5kZWVwQ2xvbmUoQmUpKTticmVha319KSxqLmVsZW1lbnRzLmxlbmd0aD4wJiYobmlbeV0uZmlsdGVyLmNsYXVzZXMucXVlcnlP''@;'; + put 'put ''YmoucHVzaCh0aGlzLmhlbHBlclNlcnZpY2UuZGVlcENsb25lKGopKSxuaVt5XS5maWx0ZXIuY2xhdXNlcy5xdWVyeU9ialt1ZV0uY2xhdXNlTG9naWM9SSxuaVt5XS5maWx0ZXIuY2xhdXNlcy5xdWVyeU9ialt1ZV0uaW52YWxpZENsYXVzZT0hMSksbmlbeV0uZmlsdGVyLnF1ZXJ5PVtdfXJl''@;'; + put 'put ''bW92ZUNsYXVzZSgpe3JldHVybiBubyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7cmV0dXJuIHRoaXMucmVtb3ZlUXVlcnkubmV4dCghMCksITB9KX1zcGVjQ29udmVyc2lvbihoKXtsZXQgdj17fSx5PVtdO2lmKHk9aC5tYXAoZnVuY3Rpb24oQyl7cmV0dXJuIEMuTkFNRS50b1Vw''@;'; + put 'put ''cGVyQ2FzZSgpfSksaCBpbnN0YW5jZW9mIEFycmF5KWZvcihsZXQgQz0wO0M8eS5sZW5ndGg7QysrKXZbeVtDXV09MT09PWhbQ10uVFlQRT97Y29sVHlwZToibnVtIixjb2xMZW5ndGg6aFtDXS5MRU5HVEh9Ontjb2xUeXBlOiJzdHJpbmciLGNvbExlbmd0aDpoW0NdLkxFTkdUSH07cmV0dXJu''@;'; + put 'put ''IHZ9c2V0U3VibWl0UmVhZHkoKXt0aGlzLnNldFN1Ym1pdC5uZXh0KCEwKX1nb1RvU3VibWl0TGlzdCgpe3RoaXMuc2V0U3VibWl0TGlzdC5uZXh0KCEwKX1wYXJzZUZvcm1hdHMoaCl7Y29uc3Qgdj17fSx5PWgudmFycztmb3IobGV0IEMgb2YgT2JqZWN0LmtleXMoeSkpe2NvbnN0IEk9eVtD''@;'; + put 'put ''XS50eXBlLGo9eVtDXS5sZW5ndGg7Im51bSI9PT1JP3ZbQ109ImJlc3QuIjoiY2hhciI9PT1JJiYodltDXT1gJGNoYXIke2p9LmApfXJldHVybiB2fX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShDaShnMiksQ2koWGMpLENpKHNjKSl9LGQuXHUwMjc1''@;'; + put 'put ''cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1ZmFjfSksZH0pKCk7ZnVuY3Rpb24gWUhlKGQsZyl7MSZkJiYocnQoMCwiZGl2Iiw5KSgxLCJkaXYiLDEwKSxDcigyLCJjbHItaWNvbiIsMTEpLHJ0KDMsImgzIiwxMiksWXQoNCwiVGhlcmUgYXJlIG5vIGFwcHJvdmFscyByZW1haW5p''@;'; + put 'put ''bmciKSxsdCgpKCkoKSl9ZnVuY3Rpb24gVUhlKGQsZyl7MSZkJiYocnQoMCwiaDMiLDEzKSxZdCgxLCIgUkVWSUVXICIpLGx0KCkpfWZ1bmN0aW9uIFFIZShkLGcpe2lmKDEmZCYmKHJ0KDAsInAiLDE0KSxZdCgxLCIgWW91IGhhdmUgIikscnQoMiwic3BhbiIpLFl0KDMpLGx0KCksWXQoNCwi''@;'; + put 'put ''YXBwcm92YWxzIHJlbWFpbmluZyAiKSxsdCgpKSwyJmQpe2NvbnN0IGg9SnQoKTt1dCgzKSxKaSgiIixoLnJlbWFpbmVkLCIgIil9fWZ1bmN0aW9uIEpIZShkLGcpezEmZCYmKHJ0KDAsInNwYW4iLDE3KSxZdCgxLCIgTG9hZGluZy4uLiAiKSxsdCgpKX1mdW5jdGlvbiBYSGUoZCxnKXsxJmQm''@;'; + put 'put ''JihydCgwLCJkaXYiKSgxLCJoMyIpLFl0KDIsIkxvYWRpbmcgYXBwcm92YWxzIGxpc3QiKSxsdCgpKCkpfWZ1bmN0aW9uIEtIZShkLGcpe2lmKDEmZCYmKHJ0KDAsImRpdiIsMTUpLHJuKDEsSkhlLDIsMCwic3BhbiIsMTYpLHJuKDIsWEhlLDMsMCwiZGl2Iiw4KSxsdCgpKSwyJmQpe2NvbnN0''@;'; + put 'put ''IGg9SnQoKTt1dCgxKSxUdCgibmdJZiIsIWgubG9hZGVkKSx1dCgxKSxUdCgibmdJZiIsIWgubG9hZGVkKX19ZnVuY3Rpb24gJEhlKGQsZyl7MSZkJiZDcigwLCJjbHItaWNvbiIsMzgpfWZ1bmN0aW9uIHFIZShkLGcpezEmZCYmQ3IoMCwiY2xyLXNwaW5uZXIiLDM5KSwyJmQmJlR0KCJjbHJT''@;'; + put 'put ''bWFsbCIsITApfWZ1bmN0aW9uIGVOZShkLGcpe2lmKDEmZCl7Y29uc3QgaD1iaSgpO3J0KDAsImNsci1kZy1yb3ciKSgxLCJjbHItZGctY2VsbCIpLFl0KDIpLGx0KCkscnQoMywiY2xyLWRnLWNlbGwiKSxZdCg0KSxsdCgpLHJ0KDUsImNsci1kZy1jZWxsIiksWXQoNiksbHQoKSxydCg3LCJj''@;'; + put 'put ''bHItZGctY2VsbCIpLFl0KDgpLGx0KCkscnQoOSwiY2xyLWRnLWNlbGwiKSgxMCwiZGl2IiwyNikoMTEsImEiLDI3KSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7Y29uc3QgQz1pdChoKS5pbmRleDtyZXR1cm4gYShKdCgyKS5nZXRDbGlja2VkKEMpKX0pLENyKDEyLCJjbHItaWNvbiIsMjgpLHJ0''@;'; + put 'put ''KDEzLCJzcGFuIiwyOSksWXQoMTQsIkdvIHRvIHJldmlldyBwYWdlIHNjcmVlbiIpLGx0KCkoKSxydCgxNSwiYSIsMzApLEduKCJjbGljayIsZnVuY3Rpb24oKXtjb25zdCB5PWl0KGgpLEM9eS4kaW1wbGljaXQsST15LmluZGV4LGo9SnQoMik7cmV0dXJuIGEoQy5yZWplY3RMb2FkaW5nPyIi''@;'; + put 'put ''OmoucmVqZWN0aW5nKEkpKX0pLHJuKDE2LCRIZSwxLDAsImNsci1pY29uIiwzMSkscm4oMTcscUhlLDEsMSwiY2xyLXNwaW5uZXIiLDMyKSxydCgxOCwic3BhbiIsMjkpLFl0KDE5LCJSZWplY3QiKSxsdCgpKCkscnQoMjAsImEiLDMzKSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7Y29uc3QgQz1p''@;'; + put 'put ''dChoKS4kaW1wbGljaXQ7cmV0dXJuIGEoSnQoMikuZ2V0VGFibGUoQy50YWJsZUlkKSl9KSxDcigyMSwiY2xyLWljb24iLDM0KSxydCgyMiwic3BhbiIsMjkpLFl0KDIzLCJHbyB0byBzdGFnZWQgZGF0YSBzY3JlZW4iKSxsdCgpKCkoKSgpLHJ0KDI0LCJjbHItZGctY2VsbCIsMzUpKDI1LCJi''@;'; + put 'put ''dXR0b24iLDM2KSxHbigiY2xpY2siLGZ1bmN0aW9uKHkpe2NvbnN0IEk9aXQoaCkuJGltcGxpY2l0O3JldHVybiBKdCgyKS5kb3dubG9hZChJLnRhYmxlSWQpLGEoeS5zdG9wUHJvcGFnYXRpb24oKSl9KSxDcigyNiwiY2xyLWljb24iLDM3KSxsdCgpKCkoKX1pZigyJmQpe2NvbnN0IGg9Zy4k''@;'; + put 'put ''aW1wbGljaXQ7dXQoMiksamkoaC5zdWJtaXR0ZXIpLHV0KDIpLGppKGguYmFzZVRhYmxlKSx1dCgyKSxqaShoLnN1Ym1pdHRlZCksdXQoMiksamkoaC5zdWJtaXRSZWFzb24pLHV0KDgpLFR0KCJuZ0lmIiwhaC5yZWplY3RMb2FkaW5nKSx1dCgxKSxUdCgibmdJZiIsaC5yZWplY3RMb2FkaW5n''@;'; + put 'put ''KSx1dCg4KSxUdCgiaWQiLGgudGFibGVJZCl9fWZ1bmN0aW9uIHROZShkLGcpe2lmKDEmZCl7Y29uc3QgaD1iaSgpO3J0KDAsImRpdiIpKDEsImNsci1kYXRhZ3JpZCIsMTgpKDIsImNsci1kZy1jb2x1bW4iLDE5KSxZdCgzLCJTVUJNSVRURVIiKSxsdCgpLHJ0KDQsImNsci1kZy1jb2x1bW4i''@;'; + put 'put ''LDE5KSxZdCg1LCJCQVNFIFRBQkxFIiksbHQoKSxydCg2LCJjbHItZGctY29sdW1uIiwxOSksWXQoNywiU1VCTUlUVEVEIiksbHQoKSxydCg4LCJjbHItZGctY29sdW1uIiwxOSksWXQoOSwiU1VCTUlUIFJFQVNPTiIpLGx0KCkscnQoMTAsImNsci1kZy1jb2x1bW4iKSxZdCgxMSwiQUNUSU9O''@;'; + put 'put ''IiksbHQoKSxydCgxMiwiY2xyLWRnLWNvbHVtbiIpLFl0KDEzLCJET1dOTE9BRCIpLGx0KCkscm4oMTQsZU5lLDI3LDcsImNsci1kZy1yb3ciLDIwKSxydCgxNSwiY2xyLWRnLWZvb3RlciIsMjEpKDE2LCJzcGFuIiksWXQoMTcsIml0ZW1zIHBlciBwYWdlIiksbHQoKSxydCgxOCwic2VsZWN0''@;'; + put 'put ''IiwyMiksR24oIm5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9uKHkpe3JldHVybiBpdChoKSxhKEp0KCkuaXRlbXNOdW09eSl9KSxydCgxOSwib3B0aW9uIiwyMyksWXQoMjAsIjMiKSxsdCgpLHJ0KDIxLCJvcHRpb24iLDIzKSxZdCgyMiwiNSIpLGx0KCkscnQoMjMsIm9wdGlvbiIsMjMpLFl0KDI0''@;'; + put 'put ''LCIxMCIpLGx0KCkscnQoMjUsIm9wdGlvbiIsMjMpLFl0KDI2LCIxNSIpLGx0KCkoKSxydCgyNywiY2xyLWRnLXBhZ2luYXRpb24iLDI0LDI1KSxZdCgyOSksbHQoKSgpKCkoKX1pZigyJmQpe2NvbnN0IGg9eWEoMjgpLHY9SnQoKTt1dCgyKSxUdCgiY2xyRGdGaWVsZCIsInN1Ym1pdHRlciIp''@;'; + put 'put ''LHV0KDIpLFR0KCJjbHJEZ0ZpZWxkIiwiYmFzZVRhYmxlIiksdXQoMiksVHQoImNsckRnRmllbGQiLCJzdWJtaXR0ZWQiKSx1dCgyKSxUdCgiY2xyRGdGaWVsZCIsInN1Ym1pdFJlYXNvbiIpLHV0KDYpLFR0KCJjbHJEZ0l0ZW1zT2YiLHYuYXBwcm92ZUxpc3QpLHV0KDQpLFR0KCJuZ01vZGVs''@;'; + put 'put ''Iix2Lml0ZW1zTnVtKSx1dCgxKSxUdCgibmdWYWx1ZSIsMyksdXQoMiksVHQoIm5nVmFsdWUiLDUpLHV0KDIpLFR0KCJuZ1ZhbHVlIiwxMCksdXQoMiksVHQoIm5nVmFsdWUiLDE1KSx1dCgyKSxUdCgiY2xyRGdQYWdlU2l6ZSIsdi5pdGVtc051bSksdXQoMiksa2YoIiAiLGguZmlyc3RJdGVt''@;'; + put 'put ''KzEsIiAtICIsaC5sYXN0SXRlbSsxLCIgb2YgIixoLnRvdGFsSXRlbXMsIiBhcHByb3ZhbHMgIil9fWNvbnN0IG5OZT1mdW5jdGlvbihkKXtyZXR1cm57bm9Cb3JkZXI6ZH19O2xldCBQd2U9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYseSxDLEkpe3RoaXMuc2FzU3RvcmVTZXJ2aWNl''@;'; + put 'put ''PWgsdGhpcy5ldmVudFNlcnZpY2U9dix0aGlzLnJvdXRlPXksdGhpcy5zYXNTZXJ2aWNlPUMsdGhpcy5jZHI9SSx0aGlzLmxvYWRlZD0hMSx0aGlzLml0ZW1zTnVtPTEwfWdldFRhYmxlKGgpe3RoaXMucm91dGUubmF2aWdhdGVCeVVybCgiL3N0YWdlLyIraCl9Z2V0Q2xpY2tlZChoKXt2b2lk''@;'; + put 'put ''IDAhPT10aGlzLmFwcHJvdmVMaXN0JiYodGhpcy50YWJsZUlkPXRoaXMuYXBwcm92ZUxpc3RbaF0udGFibGVJZCx0aGlzLnJvdXRlLm5hdmlnYXRlQnlVcmwoImFwcHJvdmUvYXBwcm92ZURldC8iK3RoaXMuYXBwcm92ZUxpc3RbaF0udGFibGVJZCkpfXJlamVjdGluZyhoKXt2YXIgdjtyZXR1''@;'; + put 'put ''cm4gbm8odGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe3ZvaWQgMCE9PXRoaXMuYXBwcm92ZUxpc3QmJih0aGlzLnRhYmxlSWQ9dGhpcy5hcHByb3ZlTGlzdFtoXS50YWJsZUlkKTtsZXQgeT17U1RQX0FDVElPTjoiUkVKRUNUX1RBQkxFIixUQUJMRTp0aGlzLnRhYmxlSWQsU1RQX1JF''@;'; + put 'put ''QVNPTjoicXVpY2sgcmVqZWN0aW9uIn07dHJ5eyh0aGlzLmFwcHJvdmVMaXN0fHxbXSlbaF0ucmVqZWN0TG9hZGluZz0hMCwoeWllbGQgdGhpcy5zYXNTdG9yZVNlcnZpY2UucmVqZWN0aW5nKHksIkJyb3dzZXJQYXJhbXMiLCJhcHByb3ZlcnMvcmVqZWN0aW9uIikpLmZyb21zYXNbMF0uUkVT''@;'; + put 'put ''UE9OU0UuaW5jbHVkZXMoIlNVQ0NFU1MiKSYmKCh0aGlzLmFwcHJvdmVMaXN0fHxbXSlbaF0ucmVqZWN0TG9hZGluZz0hMSxudWxsPT09KHY9dGhpcy5hcHByb3ZlTGlzdCl8fHZvaWQgMD09PXZ8fHYuc3BsaWNlKGgsMSksdGhpcy5yZW1haW5lZC0tLHRoaXMuY2RyLmRldGVjdENoYW5nZXMo''@;'; + put 'put ''KSl9Y2F0Y2goQyl7dGhpcy5ldmVudFNlcnZpY2UuY2F0Y2hSZXNwb25zZUVycm9yKCJhcHByb3ZlcnMvcmVqZWN0aW9uIixDKX19KX1uZ09uSW5pdCgpe3JldHVybiBubyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7dGhpcy5mZXRjaEFwcHJvdmFscygpfSl9ZmV0Y2hBcHByb3Zh''@;'; + put 'put ''bHMoKXtyZXR1cm4gbm8odGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe3RoaXMuaXRlbXNOdW09MTA7bGV0IGg9e1NUUF9BQ1RJT046Ik9QRU5fQVBQUk9WQUxTIn07dHJ5e2xldCB2PXlpZWxkIHRoaXMuc2FzU3RvcmVTZXJ2aWNlLmdldEFwcHJvdmFscyhoLCJCcm93c2VyUGFyYW1z''@;'; + put 'put ''IiwiYXBwcm92ZXJzL2dldGFwcHJvdmFscyIpO3RoaXMucmVtYWluZWQ9di5mcm9tc2FzLmxlbmd0aDtsZXQgeT12LmZyb21zYXMubWFwKGZ1bmN0aW9uKEMpe3JldHVybnt0YWJsZUlkOkMuVEFCTEVfSUQsc3VibWl0dGVyOkMuU1VCTUlUVEVEX0JZX05NLHN1Ym1pdHRlZDpDLlNVQk1JVFRF''@;'; + put 'put ''RF9PTl9EVFRNLGJhc2VUYWJsZTpDLkJBU0VfVEFCTEUsc3VibWl0UmVhc29uOkMuU1VCTUlUVEVEX1JFQVNPTl9UWFR9fSk7dGhpcy5hcHByb3ZlTGlzdD15LHRoaXMubG9hZGVkPSEwfWNhdGNoKHYpe3RoaXMuZXZlbnRTZXJ2aWNlLmNhdGNoUmVzcG9uc2VFcnJvcigiYXBwcm92ZXJzL2dl''@;'; + put 'put ''dGFwcHJvdmFscyIsdil9fSl9ZG93bmxvYWQoaCl7bGV0IHY9dGhpcy5zYXNTZXJ2aWNlLmdldFNhc2pzQ29uZmlnKCkseT12LnNlcnZlclVybCxDPXYuYXBwTG9jLEk9dGhpcy5zYXNTZXJ2aWNlLmdldEV4ZWN1dGlvblBhdGgoKTt3aW5kb3cub3Blbih5K0krIi8/X3Byb2dyYW09IitDKyIv''@;'; + put 'put ''c2VydmljZXMvYXVkaXRvcnMvZ2V0YXVkaXRmaWxlJnRhYmxlPSIraCl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKEt0KGtnKSxLdChtdSksS3QoWmwpLEt0KGcyKSxLdChkMSkpfSxkLlx1MDI3NWNtcD1UaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJh''@;'; + put 'put ''cHAtYXBwcm92ZSJdXSxob3N0QXR0cnM6WzEsImNvbnRlbnQtY29udGFpbmVyIl0sZGVjbHM6OSx2YXJzOjgsY29uc3RzOltbMSwiY29udGVudC1hcmVhIl0sWzEsImNhcmQiXSxbImNsYXNzIiwiZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIiLDQsIm5nSWYiXSxbMSwiY2FyZC1oZWFk''@;'; + put 'put ''ZXIiLDMsIm5nQ2xhc3MiXSxbImNsYXNzIiwiY2VudGVyIGNsci1jb2wtbWQtMTIgdGV4dC1jZW50ZXIiLDQsIm5nSWYiXSxbImNsYXNzIiwidGV4dC1jZW50ZXIgZm9udC13ZWlnaHQtNzAwIGNvbG9yLWRhcmstZ3JheSIsNCwibmdJZiJdLFsiY2xhc3MiLCJhcHByb3ZhbHMtbGlzdC13cmFw''@;'; + put 'put ''cGVyIiw0LCJuZ0lmIl0sWyJuZy1pZiIsImxvYWRlZCIsMSwiY2xyLWNvbC1tZC0xMiJdLFs0LCJuZ0lmIl0sWzEsImQtZmxleCIsImp1c3RpZnktY29udGVudC1jZW50ZXIiXSxbMSwiY2FyZC1ibG9jayIsIm5vYXBwcm92YWxzLWluZm8td3JhcHBlciJdLFsic2hhcGUiLCJ3YXJuaW5nLXN0''@;'; + put 'put ''YW5kYXJkIiwic2l6ZSIsIjYwIiwxLCJpcy1pbmZvIiwiaWNvbi1kYy1maWxsIl0sWzEsInRleHQtY2VudGVyIiwiY29sb3ItZ3JheSJdLFsxLCJjZW50ZXIiLCJjbHItY29sLW1kLTEyIiwidGV4dC1jZW50ZXIiXSxbMSwidGV4dC1jZW50ZXIiLCJmb250LXdlaWdodC03MDAiLCJjb2xvci1k''@;'; + put 'put ''YXJrLWdyYXkiXSxbMSwiYXBwcm92YWxzLWxpc3Qtd3JhcHBlciJdLFsiY2xhc3MiLCJzcGlubmVyIiw0LCJuZ0lmIl0sWzEsInNwaW5uZXIiXSxbMSwiZGF0YWdyaWQtY29tcGFjdCIsImRhdGFncmlkLWN1c3RvbS1mb290ZXIiXSxbMywiY2xyRGdGaWVsZCJdLFs0LCJjbHJEZ0l0ZW1zIiwi''@;'; + put 'put ''Y2xyRGdJdGVtc09mIl0sWzEsImQtZmxleCIsImp1c3RpZnktY29udGVudC1zdGFydCJdLFszLCJuZ01vZGVsIiwibmdNb2RlbENoYW5nZSJdLFszLCJuZ1ZhbHVlIl0sWzEsImNlbnRlciIsMywiY2xyRGdQYWdlU2l6ZSJdLFsicGFnaW5hdGlvbiIsIiJdLFsicm9sZSIsInRvb2x0aXAiLDEs''@;'; + put 'put ''ImQtZmxleCIsImp1c3RpZnktY29udGVudC1hcm91bmQiXSxbMSwiY29sdW1uLWNlbnRlciIsImxpbmtzIiwidG9vbHRpcCIsInRvb2x0aXAtbWQiLCJ0b29sdGlwLWJvdHRvbS1sZWZ0IiwiY29sb3ItZ3JlZW4iLDMsImNsaWNrIl0sWyJzaGFwZSIsImNoZWNrIiwic2l6ZSIsIjI0Il0sWzEs''@;'; + put 'put ''InRvb2x0aXAtY29udGVudCJdLFsxLCJjb2x1bW4tY2VudGVyIiwibGlua3MiLCJ0b29sdGlwIiwidG9vbHRpcC1tZCIsInRvb2x0aXAtYm90dG9tLWxlZnQiLCJjb2xvci1yZWQiLDMsImNsaWNrIl0sWyJzaGFwZSIsImJhbiIsInNpemUiLCIyMiIsNCwibmdJZiJdLFszLCJjbHJTbWFsbCIs''@;'; + put 'put ''NCwibmdJZiJdLFsxLCJjb2x1bW4tY2VudGVyIiwibGlua3MiLCJ0b29sdGlwIiwidG9vbHRpcC1tZCIsInRvb2x0aXAtYm90dG9tLWxlZnQiLCJjb2xvci1ibHVlIiwzLCJjbGljayJdLFsic2hhcGUiLCJjb2RlIiwic2l6ZSIsIjI4Il0sWzEsInAtMCIsImQtZmxleCIsImp1c3RpZnktY29u''@;'; + put 'put ''dGVudC1jZW50ZXIiXSxbMSwiYnRuIiwiYnRuLXN1Y2Nlc3MiLDMsImlkIiwiY2xpY2siXSxbInNoYXBlIiwiZG93bmxvYWQiXSxbInNoYXBlIiwiYmFuIiwic2l6ZSIsIjIyIl0sWzMsImNsclNtYWxsIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGgsdil7MSZoJiYocnQoMCwiZGl2IiwwKSgxLCJk''@;'; + put 'put ''aXYiLDEpLHJuKDIsWUhlLDUsMCwiZGl2IiwyKSxydCgzLCJkaXYiLDMpLHJuKDQsVUhlLDIsMCwiaDMiLDQpLHJuKDUsUUhlLDUsMSwicCIsNSksbHQoKSxybig2LEtIZSwzLDIsImRpdiIsNikscnQoNywiZGl2Iiw3KSxybig4LHROZSwzMCwxNCwiZGl2Iiw4KSxsdCgpKCkoKSksMiZoJiYo''@;'; + put 'put ''dXQoMiksVHQoIm5nSWYiLDA9PT12LnJlbWFpbmVkKSx1dCgxKSxUdCgibmdDbGFzcyIsR2QoNixuTmUsIXYubG9hZGVkKSksdXQoMSksVHQoIm5nSWYiLHYubG9hZGVkJiYwIT09di5yZW1haW5lZCksdXQoMSksVHQoIm5nSWYiLHYubG9hZGVkJiYwIT09di5yZW1haW5lZCksdXQoMSksVHQo''@;'; + put 'put ''Im5nSWYiLCF2LmxvYWRlZCksdXQoMiksVHQoIm5nSWYiLHYuYXBwcm92ZUxpc3QmJjAhPT12LnJlbWFpbmVkKSl9LGRlcGVuZGVuY2llczpbbGMsTm8scTMsZWQsT2YseHMsVHMsWkwsZ1MsakwsbVMsZ3csY1osZlosR0wsQVMseVMsdlMsZHcsSEwsVkwsd2wsZ2FdLHN0eWxlczpbIi5jb2x1''@;'; + put 'put ''bW4tY2VudGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2p1c3RpZnktY29udGVudDpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyfS5kYXRhZ3JpZFtfbmdjb250ZW50LSVDT01QJV0gICAuZGF0YWdyaWQtY29sdW1uW19uZ2NvbnRlbnQt''@;'; + put 'put ''JUNPTVAlXSAgIC5kYXRhZ3JpZC1jb2x1bW4tdGl0bGVbX25nY29udGVudC0lQ09NUCVde291dGxpbmU6bm9uZSFpbXBvcnRhbnR9LmxpbmtzW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo3MDA7Y3Vyc29yOnBvaW50ZXJ9LnRvb2x0aXAudG9vbHRpcC1ib3R0b20tbGVmdFtfbmdj''@;'; + put 'put ''b250ZW50LSVDT01QJV0gPiAudG9vbHRpcC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXSwgLnRvb2x0aXBbX25nY29udGVudC0lQ09NUCVdICAgLnRvb2x0aXAtY29udGVudC50b29sdGlwLWJvdHRvbS1sZWZ0W19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kOiMzMTQzNTEhaW1wb3J0''@;'; + put 'put ''YW50fS50b29sdGlwLnRvb2x0aXAtYm90dG9tLWxlZnRbX25nY29udGVudC0lQ09NUCVdID4gLnRvb2x0aXAtY29udGVudFtfbmdjb250ZW50LSVDT01QJV06YmVmb3JlLCAudG9vbHRpcFtfbmdjb250ZW50LSVDT01QJV0gICAudG9vbHRpcC1jb250ZW50LnRvb2x0aXAtYm90dG9tLWxlZnRb''@;'; + put 'put ''X25nY29udGVudC0lQ09NUCVdOmJlZm9yZXtib3JkZXItcmlnaHQ6LjI1cmVtIHNvbGlkICMzMTQzNTE7Ym9yZGVyLWJvdHRvbTouMjA4MzNyZW0gc29saWQgIzMxNDM1MX0ubm9Cb3JkZXJbX25nY29udGVudC0lQ09NUCVde2JvcmRlci1ib3R0b206MXB4IHNvbGlkIHRyYW5zcGFyZW50IWlt''@;'; + put 'put ''cG9ydGFudH0uYXBwcm92YWxzLWxpc3Qtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0Ojcwdmg7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXI7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOmNlbnRlcn0ubm9hcHByb3ZhbHMtaW5mby13cmFwcGVy''@;'; + put 'put ''W19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24taXRlbXM6Y2VudGVyO2hlaWdodDpjYWxjKDEwMHZoIC0gMjAwcHgpfSJdfSksZH0pKCk7ZnVuY3Rpb24gck5lKGQsZyl7aWYoMSZkJiYocnQo''@;'; + put 'put ''MCwidHIiKSgxLCJ0ZCIsNCksWXQoMiksbHQoKSxydCgzLCJ0ZCIsNCksWXQoNCksbHQoKSgpKSwyJmQpe2NvbnN0IGg9Zy4kaW1wbGljaXQsdj1KdCgpO3V0KDIpLGppKGgpLHV0KDIpLGppKHYuanNQYXJhbXNbaF0pfX1mdW5jdGlvbiBpTmUoZCxnKXsxJmQmJihydCgwLCJwIiw2MyksWXQo''@;'; + put 'put ''MSwiIFRoZXJlIGFyZSBubyBkZXRhaWxzIHRvIHNob3cgIiksbHQoKSl9ZnVuY3Rpb24gb05lKGQsZyl7aWYoMSZkJiYoRjAoMCkscnQoMSwiZGl2Iiw2NCkoMiwic3BhbiIpLFl0KDMsIlRhYmxlIElkOiIpLGx0KCkscnQoNCwic3Ryb25nIiksWXQoNSksbHQoKSgpLHJ0KDYsImRpdiIpKDcs''@;'; + put 'put ''InNwYW4iKSxZdCg4LCJTdWJtaXR0ZXI6IiksbHQoKSxydCg5LCJzcGFuIiw2NSksWXQoMTApLGx0KCkoKSxydCgxMSwiZGl2IikoMTIsInNwYW4iKSxZdCgxMywiU3VibWl0dGVkIG9uOiIpLGx0KCkscnQoMTQsInNwYW4iLDY1KSxZdCgxNSksbHQoKSgpLHJ0KDE2LCJkaXYiKSgxNywic3Bh''@;'; + put 'put ''biIpLFl0KDE4LCJTdWJtaXR0ZWQgUmVhc29uOiIpLGx0KCkscnQoMTksInNwYW4iLDY1KSxZdCgyMCksbHQoKSgpLEgwKCkpLDImZCl7Y29uc3QgaD1KdCg1KTt1dCg1KSxKaSgiICIsbnVsbD09aC50YWJsZURldGFpbHM/bnVsbDpoLnRhYmxlRGV0YWlscy5UQUJMRV9JRCwiICIpLHV0KDUp''@;'; + put 'put ''LEppKCIgIixudWxsPT1oLnRhYmxlRGV0YWlscz9udWxsOmgudGFibGVEZXRhaWxzLlNVQk1JVFRFRF9CWV9OTSwiICIpLHV0KDUpLEppKCIgIixudWxsPT1oLnRhYmxlRGV0YWlscz9udWxsOmgudGFibGVEZXRhaWxzLlNVQk1JVFRFRF9PTl9EVFRNLCIgIiksdXQoNSksSmkoIiAiLG51bGw9''@;'; + put 'put ''PWgudGFibGVEZXRhaWxzP251bGw6aC50YWJsZURldGFpbHMuU1VCTUlUVEVEX1JFQVNPTl9UWFQsIiAiKX19ZnVuY3Rpb24gYU5lKGQsZyl7aWYoMSZkKXtjb25zdCBoPWJpKCk7cnQoMCwiZGl2Iiw0MykoMSwiZGl2Iiw0NCkoMiwiZGl2Iiw0NSkscm4oMyxpTmUsMiwwLCJwIiwzOSkscm4o''@;'; + put 'put ''NCxvTmUsMjEsNCwibmctY29udGFpbmVyIiwxNiksbHQoKSxydCg1LCJkaXYiLDQ2KSg2LCJkaXYiLDQ3KSg3LCJkaXYiLDQ4KSg4LCJkaXYiLDI1KSg5LCJidXR0b24iLDQ5KSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7aXQoaCk7Y29uc3QgeT1KdCg0KTtyZXR1cm4gYSh5LmdvVG9CYXNlKG51''@;'; + put 'put ''bGw9PXkuanNQYXJhbXM/bnVsbDp5LmpzUGFyYW1zLlRBQkxFX05NKSl9KSxZdCgxMCwiIEdvIHRvIGJhc2UgdGFibGUgc2NyZWVuICIpLGx0KCkscnQoMTEsImJ1dHRvbiIsNTApLEduKCJjbGljayIsZnVuY3Rpb24oKXtpdChoKTtjb25zdCB5PUp0KDQpO3JldHVybiBhKHkuZ2V0VGFibGUo''@;'; + put 'put ''eS50YWJsZUlkKSl9KSxZdCgxMiwiIEdvIHRvIGVkaXRlZCBzY3JlZW4gIiksbHQoKSxydCgxMywiYnV0dG9uIiw1MSksR24oImNsaWNrIixmdW5jdGlvbigpe2l0KGgpO2NvbnN0IHk9SnQoNCk7cmV0dXJuIGEoeS5nb0JhY2sobnVsbD09eS5qc1BhcmFtcz9udWxsOnkuanNQYXJhbXMuVEFC''@;'; + put 'put ''TEVfTk0pKX0pLFl0KDE0LCIgR28gYmFjayB0byBlZGl0b3IgIiksbHQoKSgpKCkoKSxydCgxNSwiZGl2Iiw0NykoMTYsImJ1dHRvbiIsNTIpLEduKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gaXQoaCksYShKdCg0KS5hcHByb3ZlVGFibGUoKSl9KSxZdCgxNywiIEFDQ0VQVCAiKSxsdCgp''@;'; + put 'put ''LHJ0KDE4LCJidXR0b24iLDUzKSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIGl0KGgpLGEoSnQoNCkucmVqZWN0T3Blbj0hMCl9KSxZdCgxOSwiIFJFSkVDVCAiKSxsdCgpLHJ0KDIwLCJjbHItdG9nZ2xlLWNvbnRhaW5lciIsNTQpKDIxLCJjbHItdG9nZ2xlLXdyYXBwZXIiKSgyMiwi''@;'; + put 'put ''aW5wdXQiLDU1KSxHbigibmdNb2RlbENoYW5nZSIsZnVuY3Rpb24oeSl7cmV0dXJuIGl0KGgpLGEoSnQoNCkuZm9ybWF0dGVkVmFsdWVzPXkpfSkoImNoYW5nZSIsZnVuY3Rpb24oKXtyZXR1cm4gaXQoaCksYShKdCg0KS5mb3JtYXR0aW5nQ2hhbmdlZCgpKX0pLGx0KCkscnQoMjMsImxhYmVs''@;'; + put 'put ''Iiw1NiksWXQoMjQpLGx0KCkoKSgpKCkscnQoMjUsImRpdiIsNDcpKDI2LCJkaXYiLDI1KSgyNywiZGl2Iiw0MCkoMjgsInNwYW4iLDU3KSxZdCgyOSwiIENoYW5nZWQgUm93cyAiKSxydCgzMCwic3BhbiIsNTgpLFl0KDMxKSxsdCgpKCkscnQoMzIsInNwYW4iLDU5KSxZdCgzMywiIEFkZGVk''@;'; + put 'put ''IFJvd3MgIikscnQoMzQsInNwYW4iLDYwKSxZdCgzNSksbHQoKSgpLHJ0KDM2LCJzcGFuIiw2MSksWXQoMzcsIiBEZWxldGVkIFJvd3MgIikscnQoMzgsInNwYW4iLDYyKSxZdCgzOSksbHQoKSgpKCkoKSgpKCkoKSgpfWlmKDImZCl7Y29uc3QgaD1KdCg0KTt1dCgzKSxUdCgibmdJZiIsIWgu''@;'; + put 'put ''dGFibGVEZXRhaWxzKSx1dCgxKSxUdCgibmdJZiIsaC50YWJsZURldGFpbHMpLHV0KDEyKSxUdCgiY2xyTG9hZGluZyIsaC5hY2NlcHRMb2FkaW5nKSgiZGlzYWJsZWQiLCFoLmxvYWRpbmdUYWJsZXx8Ik5PIj09PShudWxsPT1oLnBhcmFtcz9udWxsOmgucGFyYW1zLklTQVBQUk9WRVIpfHxo''@;'; + put 'put ''Lm5vQ2hhbmdlcyksdXQoMiksVHQoImRpc2FibGVkIiwhaC5sb2FkaW5nVGFibGV8fCJOTyI9PT0obnVsbD09aC5wYXJhbXM/bnVsbDpoLnBhcmFtcy5JU0FQUFJPVkVSKXx8aC5ub0NoYW5nZXMpLHV0KDQpLFR0KCJuZ01vZGVsIixoLmZvcm1hdHRlZFZhbHVlcyksdXQoMiksamkoaC5mb3Jt''@;'; + put 'put ''YXR0ZWRWYWx1ZXM/IkZvcm1hdHRlZCI6IlVuZm9ybWF0dGVkIiksdXQoNyksamkoaC5sZW5zLnVwZGF0ZWQpLHV0KDQpLGppKGgubGVucy5uZXcpLHV0KDQpLGppKGgubGVucy5kZWxldGVkKX19ZnVuY3Rpb24gbE5lKGQsZyl7MSZkJiYocnQoMCwiZGl2IikoMSwiaDMiKSxZdCgyLCJMb2Fk''@;'; + put 'put ''aW5nIHRhYmxlIiksbHQoKSgpKX1mdW5jdGlvbiBzTmUoZCxnKXtpZigxJmQmJihydCgwLCJkaXYiLDY2KSgxLCJzcGFuIiw2NyksWXQoMiwiIExvYWRpbmcuLi4gIiksbHQoKSxybigzLGxOZSwzLDAsImRpdiIsMTYpLGx0KCkpLDImZCl7Y29uc3QgaD1KdCg0KTt1dCgzKSxUdCgibmdJZiIs''@;'; + put 'put ''IWgubG9hZGluZ1RhYmxlKX19ZnVuY3Rpb24gdU5lKGQsZyl7MSZkJiYocnQoMCwicCIsNjMpLFl0KDEsIiBUaGVyZSBhcmUgbm8gY2hhbmdlcyB0byBzaG93ICIpLGx0KCkpfWZ1bmN0aW9uIGNOZShkLGcpe2lmKDEmZCYmKHJ0KDAsInRoIiw0KSxZdCgxKSxsdCgpKSwyJmQpe2NvbnN0IGg9''@;'; + put 'put ''Zy4kaW1wbGljaXQ7dXQoMSksamkoaCl9fWZ1bmN0aW9uIGZOZShkLGcpe2lmKDEmZCYmKHJ0KDAsInNwYW4iLDcyKSxZdCgxKSxsdCgpKSwyJmQpe2NvbnN0IGg9SnQoKS5pbmRleCx2PUp0KDIpLmluZGV4LHk9SnQoNCk7dXQoMSksSmkoIk9yaWdpbmFsIHZhbHVlIGlzOiAiLHkuYXJyT2ZD''@;'; + put 'put ''aGFuZ2VzW3ZdW2hdLCIiKX19Y29uc3QgRndlPWZ1bmN0aW9uKGQpe3JldHVybnsiY2ggdG9vbHRpcCB0b29sdGlwLW1kIHRvb2x0aXAtdG9wLXJpZ2h0IjpkfX07ZnVuY3Rpb24gaE5lKGQsZyl7aWYoMSZkJiYocnQoMCwidGQiLDcwKSxZdCgxKSxybigyLGZOZSwyLDEsInNwYW4iLDcxKSxs''@;'; + put 'put ''dCgpKSwyJmQpe2NvbnN0IGg9Zy4kaW1wbGljaXQsdj1nLmluZGV4LHk9SnQoMikuaW5kZXgsQz1KdCg0KTtUdCgibmdDbGFzcyIsR2QoMyxGd2UsMT09Qy5hcnJDaGFuZ2VkW3ldW3ZdJiYidXBkYXRlZCI9PUMuY2hBcnJbeV0pKSx1dCgxKSxKaSgiICIsQy5kaWZmVGFibGUuZGF0YVt5XVto''@;'; + put 'put ''XSwiICIpLHV0KDEpLFR0KCJuZ0lmIiwxPT1DLmFyckNoYW5nZWRbeV1bdl0mJiJ1cGRhdGVkIj09Qy5jaEFyclt5XSl9fWZ1bmN0aW9uIGROZShkLGcpe2lmKDEmZCYmKEYwKDApLHJuKDEsaE5lLDMsNSwidGQiLDY5KSxIMCgpKSwyJmQpe2NvbnN0IGg9SnQoKS5pbmRleCx2PUp0KDQpO3V0''@;'; + put 'put ''KDEpLFR0KCJuZ0Zvck9mIix2LnJvd0tleXNbaF0pfX1mdW5jdGlvbiBwTmUoZCxnKXtpZigxJmQmJihydCgwLCJ0ZCIsNCksWXQoMSksbHQoKSksMiZkKXtjb25zdCBoPWcuJGltcGxpY2l0LHY9SnQoMikuaW5kZXgseT1KdCg0KTt1dCgxKSxKaSgiICIseS5kaWZmVGFibGUuZGF0YVt2XVto''@;'; + put 'put ''XSwiICIpfX1mdW5jdGlvbiBnTmUoZCxnKXtpZigxJmQmJihGMCgwKSxybigxLHBOZSwyLDEsInRkIiw0MSksSDAoKSksMiZkKXtjb25zdCBoPUp0KCkuaW5kZXgsdj1KdCg0KTt1dCgxKSxUdCgibmdGb3JPZiIsdi5yb3dLZXlzW2hdKX19Y29uc3QgSHdlPWZ1bmN0aW9uKGQsZyxoKXtyZXR1''@;'; + put 'put ''cm57YWRkZWRSb3c6ZCxkZWxldGVkUm93OmcsdXBkYXRlZFJvdzpofX07ZnVuY3Rpb24gbU5lKGQsZyl7aWYoMSZkJiYocnQoMCwidHIiLDY4KSxybigxLGROZSwyLDEsIm5nLWNvbnRhaW5lciIsMTYpLHJuKDIsZ05lLDIsMSwibmctY29udGFpbmVyIiwxNiksbHQoKSksMiZkKXtjb25zdCBo''@;'; + put 'put ''PWcuaW5kZXgsdj1KdCg0KTtUdCgibmdDbGFzcyIsSCgzLEh3ZSwiYWRkZWQiPT12LmNoQXJyW2hdLCJkZWxldGVkIj09di5jaEFycltoXSwidXBkYXRlZCI9PXYuY2hBcnJbaF0pKSx1dCgxKSxUdCgibmdJZiIsInVwZGF0ZWQiPT09di5jaEFycltoXSksdXQoMSksVHQoIm5nSWYiLCJ1cGRh''@;'; + put 'put ''dGVkIiE9PXYuY2hBcnJbaF0pfX1mdW5jdGlvbiB2TmUoZCxnKXtpZigxJmQpe2NvbnN0IGg9YmkoKTtydCgwLCJkaXYiLDIzKSgxLCJkaXYiLDI0KSgyLCJkaXYiLDI1KSgzLCJkaXYiLDI2KSg0LCJzcGFuIiwyNyksR24oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBpdChoKSxhKEp0KDMp''@;'; + put 'put ''LmdvVG9BcHByb3ZhbHNMaXN0KCkpfSksQ3IoNSwiY2xyLWljb24iLDI4KSxZdCg2LCJCYWNrIHRvIGFwcHJvdmFscyBsaXN0ICIpLGx0KCkoKSxydCg3LCJkaXYiLDI5KSg4LCJoMyIsMzApLFl0KDkpLGx0KCkoKSxydCgxMCwiZGl2IiwzMSkoMTEsImEiLDMyKSxHbigiY2xpY2siLGZ1bmN0''@;'; + put 'put ''aW9uKCl7cmV0dXJuIGl0KGgpLGEoSnQoMykuZ2V0RGV0YWlscygpKX0pLENyKDEyLCJjbHItaWNvbiIsMzMpLGx0KCkoKSgpLHJ0KDEzLCJwIiwzNCksWXQoMTQpLGx0KCkoKSxydCgxNSwiZGl2IiwzNSkscm4oMTYsYU5lLDQwLDEwLCJkaXYiLDM2KSxsdCgpLHJuKDE3LHNOZSw0LDEsImRp''@;'; + put 'put ''diIsMzcpLHJ0KDE4LCJkaXYiLDM4KSxybigxOSx1TmUsMiwwLCJwIiwzOSkscnQoMjAsInRhYmxlIiwzKSgyMSwidGhlYWQiKSgyMiwidHIiLDQwKSxybigyMyxjTmUsMiwxLCJ0aCIsNDEpLGx0KCkoKSxydCgyNCwidGJvZHkiKSxybigyNSxtTmUsMyw3LCJ0ciIsNDIpLGx0KCkoKSgpKCl9''@;'; + put 'put ''aWYoMiZkKXtjb25zdCBoPUp0KDMpO3V0KDkpLEppKCIgIixudWxsPT1oLmpzUGFyYW1zP251bGw6aC5qc1BhcmFtcy5UQUJMRV9OTSwiICIpLHV0KDUpLEppKCIgIixudWxsPT1oLmpzUGFyYW1zP251bGw6aC5qc1BhcmFtcy5UQUJMRV9ERVNDLCIgIiksdXQoMiksVHQoIm5nSWYiLGgubG9h''@;'; + put 'put ''ZGVkKSx1dCgxKSxUdCgibmdJZiIsIWgubG9hZGluZ1RhYmxlKSx1dCgyKSxUdCgibmdJZiIsaC5sb2FkaW5nVGFibGUmJmgubm9DaGFuZ2VzKSx1dCg0KSxUdCgibmdGb3JPZiIsaC5yb3dIZWFkZXIpLHV0KDIpLFR0KCJuZ0Zvck9mIixoLnJvd0tleXMpfX1mdW5jdGlvbiBBTmUoZCxnKXtp''@;'; + put 'put ''ZigxJmQmJihydCgwLCJkaXYiLDIxKSxybigxLHZOZSwyNiw3LCJkaXYiLDIyKSxsdCgpKSwyJmQpe2NvbnN0IGg9SnQoMik7dXQoMSksVHQoIm5nSWYiLGgubG9hZGVkKX19ZnVuY3Rpb24geU5lKGQsZyl7MSZkJiYocnQoMCwic3BhbiIsNjcpLFl0KDEsIiBMb2FkaW5nLi4uICIpLGx0KCkp''@;'; + put 'put ''fWZ1bmN0aW9uIHdOZShkLGcpezEmZCYmKHJ0KDAsImRpdiIpKDEsImgzIiksWXQoMiwiTG9hZGluZyBwcmV2aWV3IiksbHQoKSgpKX1mdW5jdGlvbiBiTmUoZCxnKXtpZigxJmQmJihydCgwLCJkaXYiLDczKSxybigxLHlOZSwyLDAsInNwYW4iLDc0KSxybigyLHdOZSwzLDAsImRpdiIsMTYp''@;'; + put 'put ''LGx0KCkpLDImZCl7Y29uc3QgaD1KdCgyKTt1dCgxKSxUdCgibmdJZiIsIWgubG9hZGVkKSx1dCgxKSxUdCgibmdJZiIsIWgubG9hZGVkKX19ZnVuY3Rpb24gX05lKGQsZyl7aWYoMSZkJiYocnQoMCwiZGl2IiwxNykscm4oMSxBTmUsMiwxLCJkaXYiLDE4KSxydCgyLCJkaXYiLDE5KSxybigz''@;'; + put 'put ''LGJOZSwzLDIsImRpdiIsMjApLGx0KCkoKSksMiZkKXtjb25zdCBoPUp0KCk7dXQoMSksVHQoIm5nSWYiLGgubG9hZGVkKSx1dCgyKSxUdCgibmdJZiIsIWgubG9hZGVkKX19ZnVuY3Rpb24gQ05lKGQsZyl7aWYoMSZkJiYocnQoMCwidHIiKSgxLCJ0ZCIsNCksWXQoMiksbHQoKSxydCgzLCJ0''@;'; + put 'put ''ZCIsNCksWXQoNCksbHQoKSgpKSwyJmQpe2NvbnN0IGg9Zy4kaW1wbGljaXQsdj1KdCg2KTt1dCgyKSxqaShoKSx1dCgyKSxqaSh2LnN1Ym1pdERldGFpbHNbaF0pfX1mdW5jdGlvbiBrTmUoZCxnKXtpZigxJmQmJihydCgwLCJjbHItdGFiLWNvbnRlbnQiKSgxLCJkaXYiLDk2KSgyLCJ0YWJs''@;'; + put 'put ''ZSIsMykoMywidGhlYWQiKSg0LCJ0ciIpKDUsInRoIiw0KSxZdCg2LCJOYW1lIiksbHQoKSxydCg3LCJ0aCIsNCksWXQoOCwiVmFsdWUiKSxsdCgpKCkoKSxydCg5LCJ0Ym9keSIpLHJuKDEwLENOZSw1LDIsInRyIiw1KSxsdCgpKCkoKSgpKSwyJmQpe2NvbnN0IGg9SnQoNSk7dXQoMTApLFR0''@;'; + put 'put ''KCJuZ0Zvck9mIixoLnN1Ym1pdEFycil9fWZ1bmN0aW9uIFNOZShkLGcpe2lmKDEmZCYmKHJ0KDAsInRyIikoMSwidGQiLDQpLFl0KDIpLGx0KCkscnQoMywidGQiLDQpLFl0KDQpLGx0KCkoKSksMiZkKXtjb25zdCBoPWcuJGltcGxpY2l0LHY9SnQoNSk7dXQoMiksamkoaCksdXQoMiksamko''@;'; + put 'put ''di5qc1BhcmFtc1toXSl9fWZ1bmN0aW9uIE1OZShkLGcpe2lmKDEmZCYmKHJ0KDAsImNsci10YWJzIikoMSwiY2xyLXRhYiIpKDIsImJ1dHRvbiIsOTQpLFl0KDMsIlN1Ym1pdHRlZCBUYWJsZSBEZXRhaWxzIiksbHQoKSxybig0LGtOZSwxMSwxLCJjbHItdGFiLWNvbnRlbnQiLDk1KSxsdCgp''@;'; + put 'put ''LHJ0KDUsImNsci10YWIiKSg2LCJidXR0b24iLDk0KSxZdCg3LCJCYXNlIFRhYmxlIERldGFpbHMiKSxsdCgpLHJ0KDgsImNsci10YWItY29udGVudCIpKDksImRpdiIsOTYpKDEwLCJ0YWJsZSIsMykoMTEsInRoZWFkIikoMTIsInRyIikoMTMsInRoIiw0KSxZdCgxNCwiTmFtZSIpLGx0KCks''@;'; + put 'put ''cnQoMTUsInRoIiw0KSxZdCgxNiwiVmFsdWUiKSxsdCgpKCkoKSxydCgxNywidGJvZHkiKSxybigxOCxTTmUsNSwyLCJ0ciIsNSksbHQoKSgpKCkoKSgpKCkpLDImZCl7Y29uc3QgaD1KdCg0KTt1dCg0KSxUdCgiY2xySWZBY3RpdmUiLCEwKSx1dCgxNCksVHQoIm5nRm9yT2YiLGgua2V5c0Fy''@;'; + put 'put ''cmF5KX19ZnVuY3Rpb24gRU5lKGQsZyl7MSZkJiZDcigwLCJkaXYiLDQzKX1mdW5jdGlvbiB4TmUoZCxnKXsxJmQmJihydCgwLCJkaXYiKSgxLCJoMyIpLFl0KDIsIkxvYWRpbmcgdGFibGUiKSxsdCgpKCkpfWZ1bmN0aW9uIFROZShkLGcpe2lmKDEmZCYmKHJ0KDAsImRpdiIsOTcpKDEsInNw''@;'; + put 'put ''YW4iLDY3KSxZdCgyLCIgTG9hZGluZy4uLiAiKSxsdCgpLHJuKDMseE5lLDMsMCwiZGl2IiwxNiksbHQoKSksMiZkKXtjb25zdCBoPUp0KDQpO3V0KDMpLFR0KCJuZ0lmIiwhaC5sb2FkaW5nVGFibGUpfX1mdW5jdGlvbiBJTmUoZCxnKXtpZigxJmQmJihydCgwLCJ0aCIsNCksWXQoMSksbHQo''@;'; + put 'put ''KSksMiZkKXtjb25zdCBoPWcuJGltcGxpY2l0O3V0KDEpLGppKGgpfX1mdW5jdGlvbiBETmUoZCxnKXtpZigxJmQmJihydCgwLCJzcGFuIiw3MiksWXQoMSksbHQoKSksMiZkKXtjb25zdCBoPUp0KCkuaW5kZXgsdj1KdCgyKS5pbmRleCx5PUp0KDQpO3V0KDEpLEppKCJPcmlnaW5hbCB2YWx1''@;'; + put 'put ''ZSBpczogIix5LmFyck9mQ2hhbmdlc1t2XVtoXSwiIil9fWZ1bmN0aW9uIExOZShkLGcpe2lmKDEmZCYmKHJ0KDAsInRkIiw3MCksWXQoMSkscm4oMixETmUsMiwxLCJzcGFuIiw3MSksbHQoKSksMiZkKXtjb25zdCBoPWcuJGltcGxpY2l0LHY9Zy5pbmRleCx5PUp0KDIpLmluZGV4LEM9SnQo''@;'; + put 'put ''NCk7VHQoIm5nQ2xhc3MiLEdkKDMsRndlLDE9PUMuYXJyQ2hhbmdlZFt5XVt2XSYmInVwZGF0ZWQiPT1DLmNoQXJyW3ldKSksdXQoMSksSmkoIiAiLEMuZGlmZlRhYmxlLmRhdGFbeV1baF0sIiAiKSx1dCgxKSxUdCgibmdJZiIsMT09Qy5hcnJDaGFuZ2VkW3ldW3ZdJiYidXBkYXRlZCI9PUMu''@;'; + put 'put ''Y2hBcnJbeV0pfX1mdW5jdGlvbiBPTmUoZCxnKXtpZigxJmQmJihGMCgwKSxybigxLExOZSwzLDUsInRkIiw2OSksSDAoKSksMiZkKXtjb25zdCBoPUp0KCkuaW5kZXgsdj1KdCg0KTt1dCgxKSxUdCgibmdGb3JPZiIsdi5yb3dLZXlzW2hdKX19ZnVuY3Rpb24gUk5lKGQsZyl7aWYoMSZkJiYo''@;'; + put 'put ''cnQoMCwidGQiLDQpLFl0KDEpLGx0KCkpLDImZCl7Y29uc3QgaD1nLiRpbXBsaWNpdCx2PUp0KDIpLmluZGV4LHk9SnQoNCk7dXQoMSksSmkoIiAiLHkuZGlmZlRhYmxlLmRhdGFbdl1baF0sIiAiKX19ZnVuY3Rpb24gQk5lKGQsZyl7aWYoMSZkJiYoRjAoMCkscm4oMSxSTmUsMiwxLCJ0ZCIs''@;'; + put 'put ''NDEpLEgwKCkpLDImZCl7Y29uc3QgaD1KdCgpLmluZGV4LHY9SnQoNCk7dXQoMSksVHQoIm5nRm9yT2YiLHYucm93S2V5c1toXSl9fWZ1bmN0aW9uIFBOZShkLGcpe2lmKDEmZCYmKHJ0KDAsInRyIiw2OCkscm4oMSxPTmUsMiwxLCJuZy1jb250YWluZXIiLDE2KSxybigyLEJOZSwyLDEsIm5n''@;'; + put 'put ''LWNvbnRhaW5lciIsMTYpLGx0KCkpLDImZCl7Y29uc3QgaD1nLmluZGV4LHY9SnQoNCk7VHQoIm5nQ2xhc3MiLEgoMyxId2UsImFkZGVkIj09di5jaEFycltoXSwiZGVsZXRlZCI9PXYuY2hBcnJbaF0sInVwZGF0ZWQiPT12LmNoQXJyW2hdKSksdXQoMSksVHQoIm5nSWYiLCJ1cGRhdGVkIj09''@;'; + put 'put ''PXYuY2hBcnJbaF0pLHV0KDEpLFR0KCJuZ0lmIiwidXBkYXRlZCIhPT12LmNoQXJyW2hdKX19ZnVuY3Rpb24gRk5lKGQsZyl7aWYoMSZkKXtjb25zdCBoPWJpKCk7cnQoMCwiZGl2Iiw3OSkoMSwiZGl2Iiw4MCkoMiwiZGl2IiwyNSkoMywiZGl2IiwyNikoNCwic3BhbiIsODEpLEduKCJjbGlj''@;'; + put 'put ''ayIsZnVuY3Rpb24oKXtyZXR1cm4gaXQoaCksYShKdCgzKS5nb1RvU3VibWl0TGlzdCgpKX0pLENyKDUsImNsci1pY29uIiwyOCksWXQoNiwiQmFjayB0byBzdWJtaXR0ZWQgbGlzdCAiKSxsdCgpKCkscnQoNywiZGl2Iiw4MikoOCwiaDMiLDgzKSxZdCg5KSxsdCgpKCkscnQoMTAsImRpdiIs''@;'; + put 'put ''MzEpKDExLCJzZWN0aW9uIiw4KSgxMiwiZGl2Iiw5KSgxMywiZGl2Iiw4NCkoMTQsImlucHV0Iiw4NSksR24oImNoYW5nZSIsZnVuY3Rpb24oeSl7cmV0dXJuIGl0KGgpLGEoSnQoMykuc2hvd0RldGFpbHNTZWxlY3QoeSkpfSksbHQoKSxydCgxNSwibGFiZWwiLDg2KSxZdCgxNiwiQWxsIERl''@;'; + put 'put ''dGFpbHMiKSxsdCgpKCkoKSgpKCkoKSxydCgxNywicCIsODcpLFl0KDE4KSxsdCgpKCkscnQoMTksImRpdiIsNDQpKDIwLCJkaXYiLDQ1KSgyMSwiZGl2Iiw2NCkoMjIsInNwYW4iKSxZdCgyMywiVGFibGUgSWQ6IiksbHQoKSxydCgyNCwic3Ryb25nIikoMjUsInNwYW4iKSxZdCgyNiksbHQo''@;'; + put 'put ''KSgpKCkscnQoMjcsImRpdiIpKDI4LCJzcGFuIiksWXQoMjksIlN1Ym1pdHRlZCBvbjoiKSxsdCgpLHJ0KDMwLCJzcGFuIiw2NSksWXQoMzEpLGx0KCkoKSxydCgzMiwiZGl2IikoMzMsInNwYW4iKSxZdCgzNCwiU3VibWl0IE1lc3NhZ2U6IiksbHQoKSxydCgzNSwic3BhbiIpLFl0KDM2KSxs''@;'; + put 'put ''dCgpKCkoKSxydCgzNywiZGl2Iiw0NikoMzgsImRpdiIsODgpKDM5LCJkaXYiLDQ4KSg0MCwiZGl2IiwyNSkoNDEsImJ1dHRvbiIsNDkpLEduKCJjbGljayIsZnVuY3Rpb24oKXtpdChoKTtjb25zdCB5PUp0KDMpO3JldHVybiBhKHkuZ29Ub0Jhc2UoeS5zdWJPYmouYmFzZSkpfSksWXQoNDIs''@;'; + put 'put ''IiBHbyB0byBiYXNlIHRhYmxlIHNjcmVlbiAiKSxsdCgpLHJ0KDQzLCJidXR0b24iLDUwKSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7aXQoaCk7Y29uc3QgeT1KdCgzKTtyZXR1cm4gYSh5LmdldFRhYmxlKHkuc3ViT2JqLnRhYmxlSWQpKX0pLFl0KDQ0LCIgR28gdG8gZWRpdGVkIHNjcmVlbiAi''@;'; + put 'put ''KSxsdCgpLHJ0KDQ1LCJidXR0b24iLDUxKSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7aXQoaCk7Y29uc3QgeT1KdCgzKTtyZXR1cm4gYSh5LmdvQmFjayh5LnN1Yk9iai5iYXNlKSl9KSxZdCg0NiwiIEdvIGJhY2sgdG8gZWRpdG9yICIpLGx0KCkoKSgpKCkscnQoNDcsImRpdiIsNDcpKDQ4LCJk''@;'; + put 'put ''aXYiLDI1KSg0OSwiZGl2Iiw4OSkoNTAsInNwYW4iLDU3KSxZdCg1MSwiIENoYW5nZWQgUm93cyAiKSxydCg1Miwic3BhbiIsNTgpLFl0KDUzKSxsdCgpKCkscnQoNTQsInNwYW4iLDU5KSxZdCg1NSwiIEFkZGVkIFJvd3MgIikscnQoNTYsInNwYW4iLDYwKSxZdCg1NyksbHQoKSgpLHJ0KDU4''@;'; + put 'put ''LCJzcGFuIiw2MSksWXQoNTksIiBEZWxldGVkIFJvd3MgIikscnQoNjAsInNwYW4iLDYyKSxZdCg2MSksbHQoKSgpKCkoKSgpLHJ0KDYyLCJkaXYiLDQ3KSg2MywiY2xyLXRvZ2dsZS1jb250YWluZXIiLDkwKSg2NCwiY2xyLXRvZ2dsZS13cmFwcGVyIikoNjUsImlucHV0Iiw1NSksR24oIm5n''@;'; + put 'put ''TW9kZWxDaGFuZ2UiLGZ1bmN0aW9uKHkpe3JldHVybiBpdChoKSxhKEp0KDMpLmZvcm1hdHRlZFZhbHVlcz15KX0pKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7cmV0dXJuIGl0KGgpLGEoSnQoMykuZm9ybWF0dGluZ0NoYW5nZWQoKSl9KSxsdCgpLHJ0KDY2LCJsYWJlbCIpLFl0KDY3KSxsdCgpKCko''@;'; + put 'put ''KSgpKCkoKSxybig2OCxNTmUsMTksMiwiY2xyLXRhYnMiLDE2KSxydCg2OSwiZGl2Iiw5MSkscm4oNzAsRU5lLDEsMCwiZGl2IiwzNiksbHQoKSxybig3MSxUTmUsNCwxLCJkaXYiLDkyKSxydCg3MiwiZGl2Iiw5MykoNzMsInRhYmxlIiwzKSg3NCwidGhlYWQiKSg3NSwidHIiLDQwKSxybig3''@;'; + put 'put ''NixJTmUsMiwxLCJ0aCIsNDEpLGx0KCkoKSxydCg3NywidGJvZHkiKSxybig3OCxQTmUsMyw3LCJ0ciIsNDIpLGx0KCkoKSgpKCl9aWYoMiZkKXtjb25zdCBoPUp0KDMpO3V0KDkpLEppKCIgIixoLnN1Yk9iai5iYXNlLCIgIiksdXQoOSksSmkoIiAiLGgudGFibGVEZXNjcmlwdGlvbiwiICIp''@;'; + put 'put ''LHV0KDgpLEppKCIgIixoLnN1Yk9iai50YWJsZUlkLCIiKSx1dCg1KSxKaSgiICIsaC5zdWJPYmouc3VibWl0dGVkLCIgIiksdXQoNSksSmkoIiAiLGguc3ViT2JqLnN1Ym1pdFJlYXNvbiwiICIpLHV0KDE3KSxqaShoLmxlbnMudXBkYXRlZCksdXQoNCksamkoaC5sZW5zLm5ldyksdXQoNCks''@;'; + put 'put ''amkoaC5sZW5zLmRlbGV0ZWQpLHV0KDQpLFR0KCJuZ01vZGVsIixoLmZvcm1hdHRlZFZhbHVlcyksdXQoMiksamkoaC5mb3JtYXR0ZWRWYWx1ZXM/IkZvcm1hdHRlZCI6IlVuZm9ybWF0dGVkIiksdXQoMSksVHQoIm5nSWYiLGgudGFibGVGbGFnKSx1dCgyKSxUdCgibmdJZiIsaC5sb2FkZWQp''@;'; + put 'put ''LHV0KDEpLFR0KCJuZ0lmIiwhaC5sb2FkaW5nVGFibGUpLHV0KDUpLFR0KCJuZ0Zvck9mIixoLnJvd0hlYWRlciksdXQoMiksVHQoIm5nRm9yT2YiLGgucm93S2V5cyl9fWZ1bmN0aW9uIEhOZShkLGcpe2lmKDEmZCYmKHJ0KDAsImRpdiIsNzcpLHJuKDEsRk5lLDc5LDE1LCJkaXYiLDc4KSxs''@;'; + put 'put ''dCgpKSwyJmQpe2NvbnN0IGg9SnQoMik7dXQoMSksVHQoIm5nSWYiLGgubG9hZGVkKX19ZnVuY3Rpb24gTk5lKGQsZyl7MSZkJiYocnQoMCwiZGl2IikoMSwiaDMiKSxZdCgyLCJMb2FkaW5nIHN1Ym1pdHRlZCB0YWJsZSIpLGx0KCkoKSl9ZnVuY3Rpb24gVk5lKGQsZyl7aWYoMSZkJiYocnQo''@;'; + put 'put ''MCwiZGl2Iiw5OCkoMSwiZGl2Iiw5OSkoMiwic3BhbiIsNjcpLFl0KDMsIiBMb2FkaW5nLi4uICIpLGx0KCkscm4oNCxOTmUsMywwLCJkaXYiLDE2KSxsdCgpKCkpLDImZCl7Y29uc3QgaD1KdCgyKTt1dCg0KSxUdCgibmdJZiIsIWgubG9hZGVkKX19ZnVuY3Rpb24gak5lKGQsZyl7aWYoMSZk''@;'; + put 'put ''JiYocnQoMCwiZGl2Iikscm4oMSxITmUsMiwxLCJkaXYiLDc1KSxybigyLFZOZSw1LDEsImRpdiIsNzYpLGx0KCkpLDImZCl7Y29uc3QgaD1KdCgpO3V0KDEpLFR0KCJuZ0lmIixoLmxvYWRlZCksdXQoMSksVHQoIm5nSWYiLCFoLmxvYWRlZCl9fWNvbnN0IFpOZT1mdW5jdGlvbigpe3JldHVy''@;'; + put 'put ''bntzdGFuZGFsb25lOiEwfX07bGV0IE53ZT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgsdix5LEMpe3RoaXMuc2FzU3RvcmVTZXJ2aWNlPWgsdGhpcy5ldmVudFNlcnZpY2U9dix0aGlzLnJvdXRlcj15LHRoaXMucm91dGU9Qyx0aGlzLmRldGFpbHNPcGVuPSExLHRoaXMucmVqZWN0T3Bl''@;'; + put 'put ''bj0hMSx0aGlzLmxlbnM9e25ldzowLHVwZGF0ZWQ6MCxkZWxldGVkOjB9LHRoaXMubG9hZGVkPSExLHRoaXMubG9hZGluZ1RhYmxlPSExLHRoaXMuc3VibWl0UmVhc29uPSIiLHRoaXMuaW5zdGFuY2U9ImhvdEluc3RhbmNlIix0aGlzLmFjY2VwdExvYWRpbmc9ITEsdGhpcy5yZWplY3RMb2Fk''@;'; + put 'put ''aW5nPSExLHRoaXMuc3VibWl0dGVkPSExLHRoaXMudGFibGVGbGFnPSExLHRoaXMucm93S2V5cz1bXSx0aGlzLnNlY29uZE9wZW49ITEsdGhpcy5mb3JtYXR0ZWRWYWx1ZXM9ITAsdGhpcy5jaGFuZ2VzQXJyPVtdLHRoaXMuZGlmZlRhYmxlPXtkYXRhOltdfX1nZXQgbm9DaGFuZ2VzKCl7cmV0''@;'; + put 'put ''dXJuIDA9PT10aGlzLmxlbnMubmV3JiYwPT09dGhpcy5sZW5zLnVwZGF0ZWQmJjA9PT10aGlzLmxlbnMuZGVsZXRlZH1nb1RvQmFzZShoKXt0aGlzLnJvdXRlLm5hdmlnYXRlQnlVcmwoIi92aWV3L2RhdGEvIitoKX1nb1RvQXBwcm92YWxzTGlzdCgpe3RoaXMucm91dGUubmF2aWdhdGVCeVVy''@;'; + put 'put ''bCgiL2FwcHJvdmUiKX1nZXRUYWJsZShoKXt0aGlzLnJvdXRlLm5hdmlnYXRlQnlVcmwoIi9zdGFnZS8iK2gpfWdvQmFjayhoKXt0aGlzLnJvdXRlLm5hdmlnYXRlQnlVcmwoIi9lZGl0b3IvIitoKX1nb1RvVmlld2VyKCl7dGhpcy5yb3V0ZS5uYXZpZ2F0ZUJ5VXJsKCIvdmlldy9kYXRhIil9''@;'; + put 'put ''c2hvd0RldGFpbHNTZWxlY3QoaCl7aC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMudGFibGVGbGFnPSF0aGlzLnRhYmxlRmxhZ31nZXREZXRhaWxzKCl7dGhpcy5kZXRhaWxzT3Blbj0hMH1vbkhvdFNlbGVjdGlvbihoKXt0aGlzLmhvdFNlbGVjdGlvbj1oLnNsaWNlKDAsNCl9b25Ib3REZXNlbGVj''@;'; + put 'put ''dCgpe3NldFRpbWVvdXQoKCk9Pnt0aGlzLmhvdFNlbGVjdGlvbj1udWxsfSwxMDApfXJlamVjdGluZygpe3JldHVybiBubyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7dGhpcy5yZWplY3RMb2FkaW5nPSEwLHRoaXMuc3VibWl0UmVhc29uPXRoaXMuc3VibWl0UmVhc29uLnJlcGxh''@;'; + put 'put ''Y2UoL1xuL2csIi4gIik7bGV0IGg9e1NUUF9BQ1RJT046IlJFSkVDVF9UQUJMRSIsVEFCTEU6dGhpcy50YWJsZUlkLFNUUF9SRUFTT046dGhpcy5zdWJtaXRSZWFzb259O3lpZWxkIHRoaXMuc2FzU3RvcmVTZXJ2aWNlLnJlamVjdGluZyhoLCJCcm93c2VyUGFyYW1zIiwiYXBwcm92ZXJzL3Jl''@;'; + put 'put ''amVjdGlvbiIpLnRoZW4odj0+e3RoaXMucm91dGUubmF2aWdhdGVCeVVybCgiL2hpc3RvcnkiKX0pLmNhdGNoKHY9Pnt0aGlzLmFjY2VwdExvYWRpbmc9ITEsdGhpcy5yZWplY3RMb2FkaW5nPSExfSl9KX1hcHByb3ZlVGFibGUoKXt2YXIgaCx2O3JldHVybiBubyh0aGlzLHZvaWQgMCx2b2lk''@;'; + put 'put ''IDAsZnVuY3Rpb24qKCl7dGhpcy5hY2NlcHRMb2FkaW5nPSEwO2xldCB5PXtBQ1RJT046IkFQUFJPVkVfVEFCTEUiLFRBQkxFOnRoaXMudGFibGVJZCxESUZGVElNRTpudWxsPT09KGg9dGhpcy5wYXJhbXMpfHx2b2lkIDA9PT1oP3ZvaWQgMDpoLkRJRkZUSU1FLExJQkRTOm51bGw9PT0odj10''@;'; + put 'put ''aGlzLnBhcmFtcyl8fHZvaWQgMD09PXY/dm9pZCAwOnYuTElCRFN9O3lpZWxkIHRoaXMuc2FzU3RvcmVTZXJ2aWNlLmFwcHJvdmVUYWJsZSh5LCJTQVNDb250cm9sVGFibGUiLCJhdWRpdG9ycy9wb3N0ZGF0YSIpLnRoZW4oQz0+e3RoaXMucm91dGUubmF2aWdhdGVCeVVybCgiL2hpc3Rvcnki''@;'; + put 'put ''KX0pLmNhdGNoKEM9Pnt0aGlzLmFjY2VwdExvYWRpbmc9ITF9KX0pfWdvVG9TdWJtaXRMaXN0KCl7dGhpcy5zYXNTdG9yZVNlcnZpY2UuZ29Ub1N1Ym1pdExpc3QoKX1jYWxsQ2hhbmdlc0luZm8oaCl7cmV0dXJuIG5vKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXt5aWVsZCB0aGlz''@;'; + put 'put ''LnNhc1N0b3JlU2VydmljZS5nZXRDaGFuZ2VJbmZvKGgpLnRoZW4odj0+e3RoaXMudGFibGVEZXRhaWxzPXYuanNwYXJhbXNbMF0sdGhpcy5qc1BhcmFtcz12LmpzcGFyYW1zWzBdO2xldCB5PVtdO2Zvcihjb25zdCBDIGluIHRoaXMuanNQYXJhbXMpdGhpcy5qc1BhcmFtcy5oYXNPd25Qcm9w''@;'; + put 'put ''ZXJ0eShDKSYmeS5wdXNoKEMpO3RoaXMua2V5c0FycmF5PXl9KS5jYXRjaCh2PT57dGhpcy5hY2NlcHRMb2FkaW5nPSExfSkuZmluYWxseSgoKT0+e3RoaXMubG9hZGVkPSEwfSl9KX1mb3JtYXR0aW5nQ2hhbmdlZCgpe3RoaXMuY2FsY0RpZmYoKX1jYWxjRGlmZigpe3ZhciBoLHYseTtpZigh''@;'; + put 'put ''dGhpcy5yZXNwb25zZSlyZXR1cm47bGV0IEM9dGhpcy5yZXNwb25zZS5uZXcsST10aGlzLnJlc3BvbnNlLnVwZGF0ZXMsaj10aGlzLnJlc3BvbnNlLmRlbGV0ZWQsdWU9dGhpcy5yZXNwb25zZS5vcmlnaW5hbHM7dGhpcy5mb3JtYXR0ZWRWYWx1ZXMmJihDPXRoaXMucmVzcG9uc2UuZm10X25l''@;'; + put 'put ''dyxJPXRoaXMucmVzcG9uc2UuZm10X3VwZGF0ZXMsaj10aGlzLnJlc3BvbnNlLmZtdF9kZWxldGVkLHVlPXRoaXMucmVzcG9uc2UuZm10X29yaWdpbmFscyksdGhpcy5vcmlnaW5hbHM9dWUsdGhpcy5yb3dLZXlzPVtdO2ZvcihsZXQgd3I9MDt3cjxJLmxlbmd0aDt3cisrKXtsZXQgUXI9T2Jq''@;'; + put 'put ''ZWN0LmtleXMoSVt3cl0pO2ZvcihsZXQgeWk9MDt5aTxRci5sZW5ndGg7eWkrKylJW3dyXVtRclt5aV1dIT09dWVbd3JdW1FyW3lpXV0mJnRoaXMuY2hhbmdlc0Fyci5wdXNoKHtpbmQ6d3IsZmllbGQ6UXJbeWldLHByb3A6SVt3cl1bUXJbeWldXSxvcmlnaW5hbDp1ZVt3cl1bUXJbeWldXX0p''@;'; + put 'put ''fXRoaXMubGVucz17bmV3OihudWxsPT09KGg9dGhpcy5wYXJhbXMpfHx2b2lkIDA9PT1oP3ZvaWQgMDpoLk5VTV9BRERFRCl8fDAsdXBkYXRlZDoobnVsbD09PSh2PXRoaXMucGFyYW1zKXx8dm9pZCAwPT09dj92b2lkIDA6di5OVU1fVVBEQVRFRCl8fDAsZGVsZXRlZDoobnVsbD09PSh5PXRo''@;'; + put 'put ''aXMucGFyYW1zKXx8dm9pZCAwPT09eT92b2lkIDA6eS5OVU1fREVMRVRFRCl8fDB9O2xldCBLZT1bXSxkdD1JLmNvbmNhdChDLGopO2ZvcihsZXQgd3I9MDt3cjx0aGlzLnJlc3BvbnNlLmNvbHMubGVuZ3RoO3dyKyspS2UucHVzaCh0aGlzLnJlc3BvbnNlLmNvbHNbd3JdLk5BTUUpO2xldCBP''@;'; + put 'put ''dD10aGlzLmxlbnMubmV3O3RoaXMuYWRkQ291bnQ9T3Q7bGV0ICR0PXRoaXMubGVucy51cGRhdGVkLExuPVtdLGlyPVtdO2ZvcihsZXQgd3I9MDt3cjxLZS5sZW5ndGg7d3IrKylpci5wdXNoKHtkYXRhOktlW3dyXSxyZWFkT25seTohMH0pO3RoaXMuZGlmZlRhYmxlLmRhdGE9ZHQ7Zm9yKGxl''@;'; + put 'put ''dCB3cj0wO3dyPGR0Lmxlbmd0aDt3cisrKXtsZXQgeWk9T2JqZWN0LmtleXMoZHRbd3JdKTt0aGlzLnJvd0tleXMucHVzaCh5aSl9bGV0IG1yPVtdLFNyPVtdO2ZvcihsZXQgd3I9MDt3cjx0aGlzLmRpZmZUYWJsZS5kYXRhLmxlbmd0aDt3cisrKXtpZih3cjwkdCYmMCE9PSR0KXttci5wdXNo''@;'; + put 'put ''KFtdKSxTci5wdXNoKFtdKSxMbi5wdXNoKCJ1cGRhdGVkIik7bGV0IFFyPU9iamVjdC5rZXlzKHRoaXMuZGlmZlRhYmxlLmRhdGFbd3JdKTtmb3IobGV0IHlpPTA7eWk8UXIubGVuZ3RoO3lpKyspe2xldCBLaT1Rclt5aV07dWVbd3JdW0tpXSE9PUlbd3JdW0tpXT8obXJbd3JdLnB1c2goITAp''@;'; + put 'put ''LFNyW3dyXS5wdXNoKHVlW3dyXVtLaV0pKToobXJbd3JdLnB1c2goITEpLFNyW3dyXS5wdXNoKG51bGwpKX10aGlzLmFyckNoYW5nZWQ9bXIsdGhpcy5hcnJPZkNoYW5nZXM9U3J9d3I+PSR0JiZ3cjwkdCtPdCYmTG4ucHVzaCgiYWRkZWQiKSx3cj5PdCskdC0xJiZMbi5wdXNoKCJkZWxldGVk''@;'; + put 'put ''Iil9dGhpcy5jaEFycj1Mbix0aGlzLnJvd0hlYWRlcj10aGlzLnJvd0tleXNbMF0sdGhpcy5kaWZmVGFibGUuZGF0YT1kdH1uZ0FmdGVyVmlld0luaXQoKXtyZXR1cm4gbm8odGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe2lmKHRoaXMuX2RldGFpbHNTdWI9dGhpcy5zYXNTdG9yZVNl''@;'; + put 'put ''cnZpY2Uuc3VibWl0dERldGFpbC5zdWJzY3JpYmUodj0+bm8odGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe3RoaXMuc3ViT2JqPXYudmlld0RhdGEsdGhpcy50YWJsZUlkPXYudmlld0RhdGEudGFibGVJZCx0aGlzLnN1Ym1pdHRlZD12LnZpZXdEYXRhLnN1Yix0aGlzLnN1Ym1pdERl''@;'; + put 'put ''dGFpbHM9di5kYXRhLHRoaXMuc3VibWl0QXJyPVtdO2ZvcihsZXQgQyBpbiB0aGlzLnN1Ym1pdERldGFpbHMpInN1YiIhPT1DJiZ0aGlzLnN1Ym1pdEFyci5wdXNoKEMpO2xldCB5PXtBQ1RJT046IlNIT1dfRElGRlMiLFRBQkxFOnRoaXMudGFibGVJZCxESUZGVElNRToobmV3IERhdGUpLnRv''@;'; + put 'put ''VVRDU3RyaW5nKCl9O3RoaXMuc2FzU3RvcmVTZXJ2aWNlLnNob3dEaWZmcyh5LCJTQVNDb250cm9sVGFibGUiLCJhdWRpdG9ycy9wb3N0ZGF0YSIpLnRoZW4oQz0+e3RoaXMucGFyYW1zPUMucGFyYW1zWzBdLHRoaXMucmVzcG9uc2U9Qyx0aGlzLmNhbGNEaWZmKCl9KS5jYXRjaChDPT5DKS5m''@;'; + put 'put ''aW5hbGx5KCgpPT57dGhpcy5sb2FkaW5nVGFibGU9ITB9KSx0aGlzLmNhbGxDaGFuZ2VzSW5mbyh0aGlzLnRhYmxlSWQpfSkpLHZvaWQgMD09PXRoaXMucm91dGVyLnNuYXBzaG90LnBhcmFtcy50YWJsZUlkKXJldHVybjt0aGlzLnRhYmxlSWQ9dGhpcy5yb3V0ZXIuc25hcHNob3QucGFyYW1z''@;'; + put 'put ''LnRhYmxlSWQ7bGV0IGg9e0FDVElPTjoiU0hPV19ESUZGUyIsVEFCTEU6dGhpcy50YWJsZUlkLERJRkZUSU1FOihuZXcgRGF0ZSkudG9VVENTdHJpbmcoKX07dGhpcy5zYXNTdG9yZVNlcnZpY2Uuc2hvd0RpZmZzKGgsIlNBU0NvbnRyb2xUYWJsZSIsImF1ZGl0b3JzL3Bvc3RkYXRhIikudGhl''@;'; + put 'put ''bih2PT57dGhpcy5wYXJhbXM9di5wYXJhbXNbMF0sdGhpcy5yZXNwb25zZT12LHRoaXMuY2FsY0RpZmYoKX0pLmNhdGNoKHY9Pnt0aGlzLmFjY2VwdExvYWRpbmc9ITF9KS5maW5hbGx5KCgpPT57dGhpcy5sb2FkaW5nVGFibGU9ITAsdGhpcy5zZXRGb2N1cygpfSksdGhpcy5jYWxsQ2hhbmdl''@;'; + put 'put ''c0luZm8odGhpcy50YWJsZUlkKX0pfW5nT25EZXN0cm95KCl7dGhpcy5fZGV0YWlsc1N1YiYmdGhpcy5fZGV0YWlsc1N1Yi51bnN1YnNjcmliZSgpfXNldEZvY3VzKCl7c2V0VGltZW91dCgoKT0+e2xldCBoPXdpbmRvdy5kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWNjZXB0QnRuIik7aCYm''@;'; + put 'put ''aC5mb2N1cygpfSwyMDApfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShLdChrZyksS3QobXUpLEt0KFB1KSxLdChabCkpfSxkLlx1MDI3NWNtcD1UaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJhcHAtYXBwcm92ZS1kZXRhaWxzIl1dLGhvc3RBdHRyczpb''@;'; + put 'put ''MSwiY29udGVudC1jb250YWluZXIiXSxkZWNsczozNCx2YXJzOjEwLGNvbnN0czpbWzMsImNsck1vZGFsT3BlbiIsImNsck1vZGFsT3BlbkNoYW5nZSJdLFsxLCJtb2RhbC10aXRsZSJdLFsxLCJtb2RhbC1ib2R5Il0sWzEsInRhYmxlIl0sWzEsImxlZnQiXSxbNCwibmdGb3IiLCJuZ0Zvck9m''@;'; + put 'put ''Il0sWzEsIm1vZGFsLWZvb3RlciJdLFsidHlwZSIsImJ1dHRvbiIsMSwiYnRuIiwiYnRuLXNtIiwiYnRuLXByaW1hcnkiLDMsImNsaWNrIl0sWzEsImZvcm0tYmxvY2siXSxbMSwiZm9ybS1ncm91cCJdLFsiZm9yIiwiZm9ybUZpZWxkc184Il0sWyJpZCIsImZvcm1GaWVsZHNfOCIsInJvd3Mi''@;'; + put 'put ''LCI1IiwxLCJ3LTEwMCIsMywibmdNb2RlbCIsIm5nTW9kZWxPcHRpb25zIiwiaW5uZXJIVE1MIiwibmdNb2RlbENoYW5nZSJdLFsidHlwZSIsImJ1dHRvbiIsMSwiYnRuIiwiYnRuLW91dGxpbmUiLDMsImNsaWNrIl0sWyJ0eXBlIiwic3VibWl0IiwxLCJidG4iLCJidG4tc3VjY2Vzcy1vdXRs''@;'; + put 'put ''aW5lIiwzLCJjbHJMb2FkaW5nIiwiY2xpY2siXSxbMSwiY29udGVudC1hcmVhIl0sWyJjbGFzcyIsImNhcmQiLDQsIm5nSWYiXSxbNCwibmdJZiJdLFsxLCJjYXJkIl0sWyJjbGFzcyIsImNhcmQtaGVhZGVyIGQtZmxleCBmbGV4LWNvbHVtbiBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIiw0LCJu''@;'; + put 'put ''Z0lmIl0sWzEsIm92ZXJmbG93LWF1dG8iLCJtci0xMiJdLFsiY2xhc3MiLCJoLTcwdmggZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgZmxleC1jb2x1bW4gYWxpZ24taXRlbXMtY2VudGVyIiw0LCJuZ0lmIl0sWzEsImNhcmQtaGVhZGVyIiwiZC1mbGV4IiwiZmxleC1jb2x1bW4iLCJq''@;'; + put 'put ''dXN0aWZ5LWNvbnRlbnQtY2VudGVyIl0sWyJjbGFzcyIsImNhcmQiLCJjbGFzcyIsIm10LTAiLDQsIm5nSWYiXSxbMSwibXQtMCJdLFsxLCJjYXJkLWhlYWRlciIsInAtMCJdLFsxLCJjbHItcm93Il0sWzEsImNsci1jb2wtbWQtNCIsImFwcHJvdmFsQmFjayJdLFsxLCJidG4iLCJidG4tc20i''@;'; + put 'put ''LCJidG4tb3V0bGluZSIsIm0tMCIsMywiY2xpY2siXSxbInNoYXBlIiwiY2FyZXQiLCJkaXIiLCJsZWZ0Iiwic2l6ZSIsIjIwIl0sWzEsImNsci1jb2wtbWQtNCIsImQtZmxleCIsImp1c3RpZnktY29udGVudC1jZW50ZXIiXSxbMSwibXQtMCIsImZvbnQtd2VpZ2h0LTMwMCJdLFsxLCJjbHIt''@;'; + put 'put ''Y29sLW1kLTQiLCJhcHByb3ZhbEluZm8iXSxbMSwidG9vbHRpcCIsInRvb2x0aXAtc20iLCJ0b29sdGlwLXRvcC1sZWZ0IiwzLCJjbGljayJdLFsic2hhcGUiLCJpbmZvLXN0YW5kYXJkIiwic2l6ZSIsIjI4Il0sWzEsInRleHQtY2VudGVyIiwibXQtMTAiXSxbMSwiY2FyZC1ibG9jayIsInAt''@;'; + put 'put ''MCJdLFsiY2xhc3MiLCJjYXJkLXRleHQiLDQsIm5nSWYiXSxbImNsYXNzIiwiaC0yNHZoIGQtZmxleCBmbGV4LWNvbHVtbiBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlciIsNCwibmdJZiJdLFsxLCJ0YWJsZUNvbnQiLCJtdC0wIl0sWyJjbGFzcyIsInRleHQtY2Vu''@;'; + put 'put ''dGVyIGZvbnQtc2l6ZS0xOCIsNCwibmdJZiJdLFsxLCJkLWZsZXgiXSxbImNsYXNzIiwibGVmdCIsNCwibmdGb3IiLCJuZ0Zvck9mIl0sWyJjbGFzcyIsImQtZmxleCIsMywibmdDbGFzcyIsNCwibmdGb3IiLCJuZ0Zvck9mIl0sWzEsImNhcmQtdGV4dCJdLFsxLCJjbHItcm93IiwiZm9udC1z''@;'; + put 'put ''aXplLTE1Il0sWzEsImNsci1jb2wtbWQtNSJdLFsxLCJjbHItY29sLW1kLTciXSxbMSwiY2FyZC1ibG9jayIsImQtZmxleCIsImp1c3RpZnktY29udGVudC1jZW50ZXIiXSxbMSwiZC1mbGV4IiwianVzdGlmeS1jb250ZW50LWNlbnRlciIsIm10LTAiXSxbMSwiYnRuIiwiYnRuLXNtIiwiYnRu''@;'; + put 'put ''LW91dGxpbmUiLCJ0ZXh0LWNlbnRlciIsIm10LTUiLDMsImNsaWNrIl0sWzEsImJ0biIsImJ0bi1zbSIsImJ0bi1zdWNjZXNzLW91dGxpbmUiLCJ0ZXh0LWNlbnRlciIsIm10LTUiLDMsImNsaWNrIl0sWzEsImJ0biIsImJ0bi1zbSIsImJ0bi1pbmZvLW91dGxpbmUiLCJ0ZXh0LWNlbnRlciIs''@;'; + put 'put ''Im10LTUiLDMsImNsaWNrIl0sWyJpZCIsImFjY2VwdEJ0biIsInR5cGUiLCJzdWJtaXQiLDEsImJ0biIsImJ0bi1zbSIsImJ0bi1zdWNjZXNzIiwzLCJjbHJMb2FkaW5nIiwiZGlzYWJsZWQiLCJjbGljayJdLFsiaWQiLCJyZWplY3RCdG4iLDEsImJ0biIsImJ0bi1zbSIsImJ0biIsImJ0bi1k''@;'; + put 'put ''YW5nZXIiLCJtci0wIiwzLCJkaXNhYmxlZCIsImNsaWNrIl0sWzEsIm0tMCIsIm1sLTIwaSJdLFsidHlwZSIsImNoZWNrYm94IiwiY2xyVG9nZ2xlIiwiIiwiY2hlY2tlZCIsIiIsMywibmdNb2RlbCIsIm5nTW9kZWxDaGFuZ2UiLCJjaGFuZ2UiXSxbMSwiZm9ybWF0dGVkLXZhbHVlcy10b2dn''@;'; + put 'put ''bGUiXSxbMSwibGFiZWwiLCJsYWJlbC13YXJuaW5nIl0sWzEsImJhZGdlIiwiYmFkZ2Utd2FybmluZyJdLFsxLCJsYWJlbCIsImxhYmVsLXN1Y2Nlc3MiXSxbMSwiYmFkZ2UiLCJiYWRnZS1zdWNjZXNzIl0sWzEsImxhYmVsIiwibGFiZWwtZGFuZ2VyIl0sWzEsImJhZGdlIiwiYmFkZ2UtZGFu''@;'; + put 'put ''Z2VyIl0sWzEsInRleHQtY2VudGVyIiwiZm9udC1zaXplLTE4Il0sWzEsIm10LTE1Il0sWzEsIm10LTEwIl0sWzEsImgtMjR2aCIsImQtZmxleCIsImZsZXgtY29sdW1uIiwianVzdGlmeS1jb250ZW50LWNlbnRlciIsImFsaWduLWl0ZW1zLWNlbnRlciJdLFsxLCJzcGlubmVyIl0sWzEsImQt''@;'; + put 'put ''ZmxleCIsMywibmdDbGFzcyJdLFsiY2xhc3MiLCJsZWZ0IiwzLCJuZ0NsYXNzIiw0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbMSwibGVmdCIsMywibmdDbGFzcyJdLFsiY2xhc3MiLCJ0b29sdGlwLWNvbnRlbnQiLDQsIm5nSWYiXSxbMSwidG9vbHRpcC1jb250ZW50Il0sWzEsImgtNzB2aCIsImQt''@;'; + put 'put ''ZmxleCIsImp1c3RpZnktY29udGVudC1jZW50ZXIiLCJmbGV4LWNvbHVtbiIsImFsaWduLWl0ZW1zLWNlbnRlciJdLFsiY2xhc3MiLCJzcGlubmVyIiw0LCJuZ0lmIl0sWyJjbGFzcyIsImQtZmxleCBmbGV4LWNvbHVtbiBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIiw0LCJuZ0lmIl0sWyJjbGFz''@;'; + put 'put ''cyIsImNhcmQtYmxvY2siLDQsIm5nSWYiXSxbMSwiZC1mbGV4IiwiZmxleC1jb2x1bW4iLCJqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIl0sWyJjbGFzcyIsImNhcmQgbS0wIiw0LCJuZ0lmIl0sWzEsImNhcmQiLCJtLTAiXSxbMSwiY2FyZC1oZWFkZXIiXSxbMSwiYnRuIiwiYnRuLXNtIiwiYnRu''@;'; + put 'put ''LW91dGxpbmUiLDMsImNsaWNrIl0sWzEsImNsci1jb2wtbWQtNCJdLFsxLCJtdC0wIiwiZm9udC13ZWlnaHQtMzAwIiwidGV4dC1jZW50ZXIiXSxbMSwidG9nZ2xlLXN3aXRjaCJdLFsidHlwZSIsImNoZWNrYm94IiwiaWQiLCJ0b2dnbGVfMSIsMywiY2hhbmdlIl0sWyJmb3IiLCJ0b2dnbGVf''@;'; + put 'put ''MSJdLFsxLCJtLTAiLCJ0ZXh0LWNlbnRlciIsImNvbG9yLWRhcmtlci1ncmF5Il0sWzEsImQtZmxleCIsImp1c3RpZnktY29udGVudC1jZW50ZXIiXSxbInN5bGUiLCJkaXNwbGF5OmZsZXg7Il0sWzEsIm0tMCIsIm1sLTIwLWkiXSxbMSwiY2FyZC1ibG9jayIsInAtMCIsIm92ZXJmbG93LWF1''@;'; + put 'put ''dG8iLCJtci0xMiJdLFsiY2xhc3MiLCJoLTI1dmggZC1mbGV4IGZsZXgtY29sdW1uIGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyIiw0LCJuZ0lmIl0sWzEsInRhYmxlQ29udCJdLFsiY2xyVGFiTGluayIsIiJdLFs0LCJjbHJJZkFjdGl2ZSJdLFsxLCJvdmVyZmxv''@;'; + put 'put ''dy1hdXRvIl0sWzEsImgtMjV2aCIsImQtZmxleCIsImZsZXgtY29sdW1uIiwianVzdGlmeS1jb250ZW50LWNlbnRlciIsImFsaWduLWl0ZW1zLWNlbnRlciJdLFsxLCJjYXJkLWJsb2NrIl0sWzEsImxvYWRlciJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihoLHYpezEmaCYmKHJ0KDAsImNsci1tb2Rh''@;'; + put 'put ''bCIsMCksR24oImNsck1vZGFsT3BlbkNoYW5nZSIsZnVuY3Rpb24oQyl7cmV0dXJuIHYuZGV0YWlsc09wZW49Q30pLHJ0KDEsImgzIiwxKSxZdCgyLCJBcHByb3ZhbCBEZXRhaWxzIiksbHQoKSxydCgzLCJkaXYiLDIpKDQsInRhYmxlIiwzKSg1LCJ0aGVhZCIpKDYsInRyIikoNywidGgiLDQp''@;'; + put 'put ''LFl0KDgsIk5hbWUiKSxsdCgpLHJ0KDksInRoIiw0KSxZdCgxMCwiVmFsdWUiKSxsdCgpKCkoKSxydCgxMSwidGJvZHkiKSxybigxMixyTmUsNSwyLCJ0ciIsNSksbHQoKSgpKCkscnQoMTMsImRpdiIsNikoMTQsImJ1dHRvbiIsNyksR24oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiB2LmRl''@;'; + put 'put ''dGFpbHNPcGVuPSExfSksWXQoMTUsIiBPayAiKSxsdCgpKCkoKSxydCgxNiwiY2xyLW1vZGFsIiwwKSxHbigiY2xyTW9kYWxPcGVuQ2hhbmdlIixmdW5jdGlvbihDKXtyZXR1cm4gdi5yZWplY3RPcGVuPUN9KSxydCgxNywiaDMiLDEpLFl0KDE4LCJSZWFzb24gTWVzc2FnZSIpLGx0KCkscnQo''@;'; + put 'put ''MTksImRpdiIsMikoMjAsImZvcm0iKSgyMSwic2VjdGlvbiIsOCkoMjIsImRpdiIsOSkoMjMsImxhYmVsIiwxMCksWXQoMjQsIlJlYXNvbiBmb3IgcmVqZWN0aW5nPyIpLGx0KCkscnQoMjUsInRleHRhcmVhIiwxMSksR24oIm5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9uKEMpe3JldHVybiB2LnN1''@;'; + put 'put ''Ym1pdFJlYXNvbj1DfSksbHQoKSgpKCkoKSgpLHJ0KDI2LCJkaXYiLDYpKDI3LCJidXR0b24iLDEyKSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHYucmVqZWN0T3Blbj0hMX0pLFl0KDI4LCIgQ2FuY2VsICIpLGx0KCkscnQoMjksImJ1dHRvbiIsMTMpLEduKCJjbGljayIsZnVuY3Rp''@;'; + put 'put ''b24oKXtyZXR1cm4gdi5yZWplY3RpbmcoKX0pLFl0KDMwLCIgT0sgIiksbHQoKSgpKCkscnQoMzEsImRpdiIsMTQpLHJuKDMyLF9OZSw0LDIsImRpdiIsMTUpLHJuKDMzLGpOZSwzLDIsImRpdiIsMTYpLGx0KCkpLDImaCYmKFR0KCJjbHJNb2RhbE9wZW4iLHYuZGV0YWlsc09wZW4pLHV0KDEy''@;'; + put 'put ''KSxUdCgibmdGb3JPZiIsdi5rZXlzQXJyYXkpLHV0KDQpLFR0KCJjbHJNb2RhbE9wZW4iLHYucmVqZWN0T3BlbiksdXQoOSksVHQoIm5nTW9kZWwiLHYuc3VibWl0UmVhc29uKSgibmdNb2RlbE9wdGlvbnMiLFZzKDksWk5lKSkoImlubmVySFRNTCIsdi5zdWJtaXRSZWFzb24sVTgpLHV0KDQp''@;'; + put 'put ''LFR0KCJjbHJMb2FkaW5nIix2LnJlamVjdExvYWRpbmcpLHV0KDMpLFR0KCJuZ0lmIiwhdi5zdWJtaXR0ZWQpLHV0KDEpLFR0KCJuZ0lmIix2LnN1Ym1pdHRlZCkpfSxkZXBlbmRlbmNpZXM6W2xjLEVzLE5vLHBnLG0xLElmLHhzLGRnLFRzLExjLHdsLG9kLGFkLGdvLEcyLHcsb3QsUm8sbG8s''@;'; + put 'put ''T2ksWEwsJEwsQVosS0wsSkwsbVpdLHN0eWxlczpbJy5sb2FkZXJbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2hlaWdodDo3NXZoO2FsaWduLWl0ZW1zOmNlbnRlcjtmbGV4LWRpcmVjdGlvbjpjb2x1bW59Lm1vZGFsTGFyZ2VbX25nY29u''@;'; + put 'put ''dGVudC0lQ09NUCVde3dpZHRoOjUwcmVtIWltcG9ydGFudH0uYWRkZWRSb3dbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQ6cmdiKDE0NiwyMDgsMTU0KTtib3JkZXI6MXB4IHNvbGlkIHJnYmEoOSw3NywxMTcsLjIpO2JvcmRlci1yYWRpdXM6NXB4fS5kZWxldGVkUm93W19uZ2NvbnRl''@;'; + put 'put ''bnQtJUNPTVAlXXtiYWNrZ3JvdW5kOnJnYigyMzAsMTc5LDE3OSk7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDcwLDcxLDcwLC4yKTtib3JkZXItcmFkaXVzOjVweH0udXBkYXRlZFJvd1tfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZDojZmFmZGE4O2JvcmRlcjoxcHggc29saWQgcmdiYSg5''@;'; + put 'put ''LDExNyw5LC4yKTtib3JkZXItcmFkaXVzOjVweH0uY2hbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMSk7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDEwNCwxMDAsMCwuNCk7Ym9yZGVyLXJhZGl1czo1cHh9LmNoW19uZ2NvbnRlbnQtJUNPTVAlXTpob3ZlcntiYWNr''@;'; + put 'put ''Z3JvdW5kOnJnYmEoMjUyLDEzNSwxMjAsLjQpfS50b29sdGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC50b29sdGlwLWNvbnRlbnQudG9vbHRpcC10b3AtcmlnaHRbX25nY29udGVudC0lQ09NUCVdLCAudG9vbHRpcC50b29sdGlwLXRvcC1yaWdodFtfbmdjb250ZW50LSVDT01QJV0gPiAudG9v''@;'; + put 'put ''bHRpcC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXSwgLnRvb2x0aXBbX25nY29udGVudC0lQ09NUCVdID4gLnRvb2x0aXAtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOi41NDE2N3JlbTtmb250LXdlaWdodDo0MDA7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO2JhY2tncm91''@;'; + put 'put ''bmQ6IzMxNDM1MTtib3JkZXItcmFkaXVzOi4xMjVyZW07Y29sb3I6I2YwZjFlYztsaW5lLWhlaWdodDouNzVyZW07bWFyZ2luOjA7cGFkZGluZzouMzc1cmVtIC41cmVtO3dpZHRoOjIzNXB4O3Bvc2l0aW9uOmFic29sdXRlO3RvcDphdXRvO2JvdHRvbToxMDAlO2xlZnQ6MTJweDtyaWdodDph''@;'; + put 'put ''dXRvO2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MDttYXJnaW4tYm90dG9tOi42NjY2N3JlbX0udG9vbHRpcFtfbmdjb250ZW50LSVDT01QJV0gICAudG9vbHRpcC1jb250ZW50LnRvb2x0aXAtdG9wLXJpZ2h0W19uZ2NvbnRlbnQtJUNPTVAlXTpiZWZvcmUsIC50b29sdGlwLnRvb2x0aXAt''@;'; + put 'put ''dG9wLXJpZ2h0W19uZ2NvbnRlbnQtJUNPTVAlXSA+IC50b29sdGlwLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVdOmJlZm9yZSwgLnRvb2x0aXBbX25nY29udGVudC0lQ09NUCVdID4gLnRvb2x0aXAtY29udGVudFtfbmdjb250ZW50LSVDT01QJV06YmVmb3Jle3Bvc2l0aW9uOmFic29sdXRl''@;'; + put 'put ''O2JvdHRvbTotLjM3NXJlbTtsZWZ0OjA7dG9wOmF1dG87cmlnaHQ6YXV0bztjb250ZW50OiIiO2JvcmRlci1sZWZ0Oi4yNXJlbSBzb2xpZCAjMzE0MzUxO2JvcmRlci10b3A6LjIwODMzcmVtIHNvbGlkICMzMTQzNTE7Ym9yZGVyLXJpZ2h0Oi4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtib3Jk''@;'; + put 'put ''ZXItYm90dG9tOi4yMDgzM3JlbSBzb2xpZCB0cmFuc3BhcmVudH0udGFibGVbX25nY29udGVudC0lQ09NUCVde2JvcmRlcjowcHggc29saWR9LnRvZ2dsZS1zd2l0Y2hbX25nY29udGVudC0lQ09NUCVdICAgaW5wdXRbdHlwZT1jaGVja2JveF1bX25nY29udGVudC0lQ09NUCVdOmNoZWNrZWQg''@;'; + put 'put ''KyBsYWJlbFtfbmdjb250ZW50LSVDT01QJV06YmVmb3Jle2JvcmRlci1jb2xvcjojMzE0MzUxO2JhY2tncm91bmQtY29sb3I6IzMxNDM1MSFpbXBvcnRhbnQ7dHJhbnNpdGlvbjouMTVzIGVhc2UtaW47dHJhbnNpdGlvbi1wcm9wZXJ0eTpib3JkZXItY29sb3IsYmFja2dyb3VuZC1jb2xvcn0u''@;'; + put 'put ''dGFibGVDb250W19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzphdXRvO21hcmdpbjoxNXB4IDEwcHggMTBweH0udGFibGVDb250W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHRkW19uZ2NvbnRlbnQtJUNPTVAlXXt3b3JkLWJyZWFrOmJyZWFrLXdvcmR9LmFwcHJvdmFsSW5mb1tfbmdjb250ZW50''@;'; + put 'put ''LSVDT01QJV17ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpmbGV4LWVuZH0uYXBwcm92YWxCYWNrW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnR9QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpey5hcHByb3Zh''@;'; + put 'put ''bEluZm9bX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO21hcmdpbi10b3A6MTVweH0uYXBwcm92YWxCYWNrW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjttYXJnaW4tYm90dG9tOjE1cHh9''@;'; + put 'put ''LmNhcmRbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6MHJlbSFpbXBvcnRhbnQ7bWluLWhlaWdodDpjYWxjKDEwMHZoICsgLTBweCkhaW1wb3J0YW50fS50YWJsZVtfbmdjb250ZW50LSVDT01QJV0gICB0ZC5sZWZ0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLnRhYmxlW19uZ2NvbnRlbnQt''@;'; + put 'put ''JUNPTVAlXSAgIHRoLmxlZnRbX25nY29udGVudC0lQ09NUCVde3RleHQtYWxpZ246bGVmdDt3aWR0aDoxNTBweCFpbXBvcnRhbnQ7ZmxleDowfX0udGFibGVbX25nY29udGVudC0lQ09NUCVdICAgdGQubGVmdFtfbmdjb250ZW50LSVDT01QJV0sIC50YWJsZVtfbmdjb250ZW50LSVDT01QJV0g''@;'; + put 'put ''ICB0aC5sZWZ0W19uZ2NvbnRlbnQtJUNPTVAlXXt0ZXh0LWFsaWduOmxlZnQ7ZmxleDoxO3dpZHRoOjMwMHB4IWltcG9ydGFudH0udG9vbGxbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO2JhY2tncm91bmQ6I2U2YjNiMztjb2xvcjojMzE0MzUxO3RvcDowcHg7aGVpZ2h0''@;'; + put 'put ''OjM2cHg7d2lkdGg6MTAwJTtsZWZ0OjBweDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmZsZXh9I2FjY2VwdEJ0bltfbmdjb250ZW50LSVDT01QJV0sICNyZWplY3RCdG5bX25nY29udGVudC0lQ09NUCVde3dpZHRoOjE3NXB4fS5mb3JtYXR0ZWQt''@;'; + put 'put ''dmFsdWVzLXRvZ2dsZVtfbmdjb250ZW50LSVDT01QJV17bWluLXdpZHRoOjc1cHh9J119KSxkfSkoKSx6TmU9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYpe3RoaXMucm91dGU9aCx0aGlzLnJvdXRlcj12fXN1Ym1pdHRlZFRhYmxlU2NyZWVuKCl7dGhpcy5yb3V0ZXIubmF2aWdhdGVC''@;'; + put 'put ''eVVybCgiL3N0YWdlLyIrdGhpcy5kc2lkKX1hcHByb3ZlVGFibGVTY3JlZW4oKXt0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKCIvYXBwcm92ZS9hcHByb3ZlRGV0LyIrdGhpcy5kc2lkKX12aWV3ZXJUYWJsZVNjcmVlbigpe3RoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoIi92aWV3L2RhdGEv''@;'; + put 'put ''Iit0aGlzLmxpYmRzKX1nb0JhY2soKXt0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKCIvZWRpdG9yLyIrdGhpcy5saWJkcyl9bmdPbkluaXQoKXtyZXR1cm4gbm8odGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe3RoaXMuZHNpZD10aGlzLnJvdXRlLnNuYXBzaG90LnBhcmFtcy5kc2lk''@;'; + put 'put ''LHRoaXMubGliZHM9dGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbXMubGliZHN9KX1uZ0FmdGVyVmlld0luaXQoKXtzZXRUaW1lb3V0KCgpPT57bGV0IGg9d2luZG93LmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhcHByb3ZhbEJ0biIpO2gmJmguZm9jdXMoKX0sNzAwKX19cmV0dXJuIGQuXHUw''@;'; + put 'put ''Mjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoS3QoUHUpLEt0KFpsKSl9LGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQsc2VsZWN0b3JzOltbImFwcC1hY3Rpb25zIl1dLGhvc3RBdHRyczpbMSwiY29udGVudC1jb250YWluZXIiXSxkZWNsczoxOSx2YXJzOjEsY29uc3RzOltbMSwi''@;'; + put 'put ''Y29udGVudC1hcmVhIl0sWzEsImNhcmQiXSxbMSwiY2FyZC1oZWFkZXIiLCJkLWZsZXgiLCJmbGV4LWNvbHVtbiIsImp1c3RpZnktY29udGVudC1jZW50ZXIiXSxbMSwidGV4dC1jZW50ZXIiXSxbMSwiY29sb3ItYmx1ZSIsImZvbnQtd2VpZ2h0LTcwMCJdLFsxLCJyb3ciLCJkLWZsZXgiLCJq''@;'; + put 'put ''dXN0aWZ5LWNvbnRlbnQtY2VudGVyIiwibXQtMjAiXSxbMSwiYnRuIiwiYnRuLXNtIiwiYnRuLW91dGxpbmUiLCJ0ZXh0LWNlbnRlciIsMywiY2xpY2siXSxbImlkIiwiYXBwcm92YWxCdG4iLDEsImJ0biIsImJ0bi1zbSIsImJ0bi1zdWNjZXNzLW91dGxpbmUiLCJ0ZXh0LWNlbnRlciIsMywi''@;'; + put 'put ''Y2xpY2siXSxbMSwiYnRuIiwiYnRuLXNtIiwiYnRuLWluZm8tb3V0bGluZSIsInRleHQtY2VudGVyIiwzLCJjbGljayJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihoLHYpezEmaCYmKHJ0KDAsImRpdiIsMCkoMSwiZGl2IiwxKSgyLCJkaXYiLDIpKDMsImgzIiwzKSxZdCg0LCIgWW91IHN1Y2Nlc2Z1''@;'; + put 'put ''bGx5IGVkaXRlZCB0YWJsZSAiKSxydCg1LCJzcGFuIiw0KSxZdCg2KSxsdCgpKCkscnQoNywicCIsMykoOCwiYiIpLFl0KDksIlBsZWFzZSBjaG9vc2UgZnJvbSB0aGUgZm9sbG93aW5nIGFjdGlvbnMiKSxsdCgpKCkscnQoMTAsImRpdiIsNSkoMTEsImJ1dHRvbiIsNiksR24oImNsaWNrIixm''@;'; + put 'put ''dW5jdGlvbigpe3JldHVybiB2LnN1Ym1pdHRlZFRhYmxlU2NyZWVuKCl9KSxZdCgxMiwiIEdvIHRvIHN1Ym1pdHRlZCB0YWJsZSBzY3JlZW4gIiksbHQoKSxydCgxMywiYnV0dG9uIiw2KSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHYudmlld2VyVGFibGVTY3JlZW4oKX0pLFl0KDE0''@;'; + put 'put ''LCIgR28gdG8gYmFzZSB0YWJsZSBzY3JlZW4gIiksbHQoKSxydCgxNSwiYnV0dG9uIiw3KSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHYuYXBwcm92ZVRhYmxlU2NyZWVuKCl9KSxZdCgxNiwiIEdvIHRvIGFwcHJvdmFscyBzY3JlZW4gIiksbHQoKSxydCgxNywiYnV0dG9uIiw4KSxH''@;'; + put 'put ''bigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHYuZ29CYWNrKCl9KSxZdCgxOCwiIEdvIGJhY2sgdG8gZWRpdG9yICIpLGx0KCkoKSgpKCkoKSksMiZoJiYodXQoNiksamkodi5saWJkcykpfX0pLGR9KSgpO2Z1bmN0aW9uIEdOZShkLGcpezEmZCYmKHJ0KDAsImRpdiIsMTIpLENyKDEsImNs''@;'; + put 'put ''ci1pY29uIiwxMykscnQoMiwiaDMiLDE0KSxZdCgzLCJUaGVyZSBpcyBubyBoaXN0b3J5IHRvIHNob3ciKSxsdCgpKCkpfWZ1bmN0aW9uIFdOZShkLGcpe2lmKDEmZCl7Y29uc3QgaD1iaSgpO3J0KDAsImEiLDE3KSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7aXQoaCk7Y29uc3QgeT1KdCgpLiRp''@;'; + put 'put ''bXBsaWNpdCxDPUp0KCk7cmV0dXJuIGEoQy5nZXRUYWJsZShDLmFwcHJvdmVEYXRhW3ldKSl9KSxZdCgxKSxsdCgpfWlmKDImZCl7Y29uc3QgaD1KdCgpLiRpbXBsaWNpdCx2PUp0KCk7dXQoMSksamkodi5hcHByb3ZlRGF0YVtoXSl9fWZ1bmN0aW9uIFlOZShkLGcpe2lmKDEmZCl7Y29uc3Qg''@;'; + put 'put ''aD1iaSgpO3J0KDAsImRpdiIpKDEsImEiLDE3KSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7aXQoaCk7Y29uc3QgeT1KdCgpLiRpbXBsaWNpdCxDPUp0KCk7cmV0dXJuIGEoQy5nZXRCYXNlVGFibGUoQy5hcHByb3ZlRGF0YVt5XSkpfSksWXQoMiwiVklFVyIpLGx0KCkscnQoMywic3BhbiIpLFl0''@;'; + put 'put ''KDQsIiAvICIpLGx0KCkscnQoNSwiYSIsMTcpLEduKCJjbGljayIsZnVuY3Rpb24oKXtpdChoKTtjb25zdCB5PUp0KCkuJGltcGxpY2l0LEM9SnQoKTtyZXR1cm4gYShDLmdldEVkaXRUYWJsZShDLmFwcHJvdmVEYXRhW3ldKSl9KSxZdCg2LCJFRElUIiksbHQoKSgpfX1mdW5jdGlvbiBVTmUo''@;'; + put 'put ''ZCxnKXtpZigxJmQmJihydCgwLCJzcGFuIiksWXQoMSksbHQoKSksMiZkKXtjb25zdCBoPUp0KCkuJGltcGxpY2l0LHY9SnQoKTt1dCgxKSxqaSh2LmFwcHJvdmVEYXRhW2hdKX19ZnVuY3Rpb24gUU5lKGQsZyl7aWYoMSZkJiYocnQoMCwidHIiKSgxLCJ0ZCIsNiksWXQoMiksbHQoKSxydCgz''@;'; + put 'put ''LCJ0ZCIsNikscm4oNCxXTmUsMiwxLCJhIiwxNSkscm4oNSxZTmUsNywwLCJkaXYiLDE2KSxybig2LFVOZSwyLDEsInNwYW4iLDE2KSxsdCgpKCkpLDImZCl7Y29uc3QgaD1nLiRpbXBsaWNpdCx2PWcuaW5kZXg7dXQoMiksamkoaCksdXQoMiksVHQoIm5nSWYiLHY8MSksdXQoMSksVHQoIm5n''@;'; + put 'put ''SWYiLHY8MiYmdj49MSksdXQoMSksVHQoIm5nSWYiLHY+PTIpfX1mdW5jdGlvbiBKTmUoZCxnKXsxJmQmJihydCgwLCJzcGFuIiwyMCksWXQoMSwiIExvYWRpbmcuLi4gIiksbHQoKSl9ZnVuY3Rpb24gWE5lKGQsZyl7MSZkJiYocnQoMCwiZGl2IikoMSwiaDMiKSxZdCgyLCJMb2FkaW5nIGhp''@;'; + put 'put ''c3RvcnkiKSxsdCgpKCkpfWZ1bmN0aW9uIEtOZShkLGcpe2lmKDEmZCYmKHJ0KDAsImRpdiIsMTgpLHJuKDEsSk5lLDIsMCwic3BhbiIsMTkpLHJuKDIsWE5lLDMsMCwiZGl2IiwxNiksbHQoKSksMiZkKXtjb25zdCBoPUp0KCk7dXQoMSksVHQoIm5nSWYiLCFoLmxvYWRlZCksdXQoMSksVHQo''@;'; + put 'put ''Im5nSWYiLCFoLmxvYWRlZCl9fWZ1bmN0aW9uICROZShkLGcpezEmZCYmKHJ0KDAsImgzIiwyNSksWXQoMSwiSElTVE9SWSIpLGx0KCkpfWNvbnN0IHFOZT1mdW5jdGlvbihkLGcpe3JldHVybntyZWplY3RlZDpkLGFjY2VwdGVkOmd9fTtmdW5jdGlvbiBlVmUoZCxnKXtpZigxJmQpe2NvbnN0''@;'; + put 'put ''IGg9YmkoKTtydCgwLCJjbHItZGctcm93IiwzNCksR24oImNsaWNrIixmdW5jdGlvbigpe2NvbnN0IEM9aXQoaCkuJGltcGxpY2l0O3JldHVybiBhKEp0KDMpLmdldEFwcHJJbmRleChDKSl9KSxydCgxLCJjbHItZGctY2VsbCIsMzUpKDIsImEiLDM2KSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7''@;'; + put 'put ''Y29uc3QgQz1pdChoKS4kaW1wbGljaXQ7cmV0dXJuIGEoSnQoMykuZ2V0QmFzZVRhYmxlKEMuYmFzZXRhYmxlKSl9KSxZdCgzKSxsdCgpKCkscnQoNCwiY2xyLWRnLWNlbGwiLDM3KSxZdCg1KSxsdCgpLHJ0KDYsImNsci1kZy1jZWxsIiwzNSksWXQoNyksbHQoKSxydCg4LCJjbHItZGctY2Vs''@;'; + put 'put ''bCIsMzUpLFl0KDkpLGx0KCkscnQoMTAsImNsci1kZy1jZWxsIiwzNSksWXQoMTEpLGx0KCkscnQoMTIsImNsci1kZy1jZWxsIiwzNSksWXQoMTMpLGx0KCkscnQoMTQsImNsci1kZy1jZWxsIiwzOCkoMTUsImJ1dHRvbiIsMzkpLEduKCJjbGljayIsZnVuY3Rpb24oeSl7Y29uc3QgST1pdCho''@;'; + put 'put ''KS4kaW1wbGljaXQ7cmV0dXJuIEp0KDMpLmRvd25sb2FkKEkudGFibGVJZCksYSh5LnN0b3BQcm9wYWdhdGlvbigpKX0pLENyKDE2LCJjbHItaWNvbiIsNDApLGx0KCkoKSgpfWlmKDImZCl7Y29uc3QgaD1nLiRpbXBsaWNpdDt1dCgzKSxqaShoLmJhc2V0YWJsZSksdXQoMSksVHQoIm5nQ2xh''@;'; + put 'put ''c3MiLFozKDcscU5lLCJSRUpFQ1RFRCI9PT1oLnN0YXR1cywiQVBQUk9WRUQiPT09aC5zdGF0dXMpKSx1dCgxKSxqaShoLnN0YXR1cyksdXQoMiksamkoaC5zdWJtaXR0ZXIpLHV0KDIpLGppKGguc3VibWl0dGVkUmVhc29uKSx1dCgyKSxqaShoLnN1Ym1pdHRlZCksdXQoMiksamkoaC5yZXZp''@;'; + put 'put ''ZXdlZCl9fWZ1bmN0aW9uIHRWZShkLGcpe2lmKDEmZCl7Y29uc3QgaD1iaSgpO3J0KDAsImNsci1kYXRhZ3JpZCIsMjYpKDEsImNsci1kZy1jb2x1bW4iLDI3KSxZdCgyLCJCQVNFX1RBQkxFIiksbHQoKSxydCgzLCJjbHItZGctY29sdW1uIiwyNyksWXQoNCwiU1RBVFVTIiksbHQoKSxydCg1''@;'; + put 'put ''LCJjbHItZGctY29sdW1uIiwyNyksWXQoNiwiU1VCTUlUVEVSIiksbHQoKSxydCg3LCJjbHItZGctY29sdW1uIiwyNyksWXQoOCwiU1VCTUlUIFJFQVNPTiIpLGx0KCkscnQoOSwiY2xyLWRnLWNvbHVtbiIsMjcpLFl0KDEwLCJTVUJNSVRURUQiKSxsdCgpLHJ0KDExLCJjbHItZGctY29sdW1u''@;'; + put 'put ''IiwyNyksWXQoMTIsIkFQUFJPVkVEIC8gUkVKRUNURUQiKSxsdCgpLHJ0KDEzLCJjbHItZGctY29sdW1uIiwyNyksWXQoMTQsIkRPV05MT0FEIiksbHQoKSxybigxNSxlVmUsMTcsMTAsImNsci1kZy1yb3ciLDI4KSxydCgxNiwiY2xyLWRnLWZvb3RlciIsMjkpKDE3LCJzcGFuIiksWXQoMTgs''@;'; + put 'put ''Iml0ZW1zIHBlciBwYWdlIiksbHQoKSxydCgxOSwic2VsZWN0IiwzMCksR24oIm5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9uKHkpe3JldHVybiBpdChoKSxhKEp0KDIpLml0ZW1zTnVtPXkpfSkscnQoMjAsIm9wdGlvbiIsMzEpLFl0KDIxLCIzIiksbHQoKSxydCgyMiwib3B0aW9uIiwzMSksWXQo''@;'; + put 'put ''MjMsIjUiKSxsdCgpLHJ0KDI0LCJvcHRpb24iLDMxKSxZdCgyNSwiMTAiKSxsdCgpLHJ0KDI2LCJvcHRpb24iLDMxKSxZdCgyNywiMTUiKSxsdCgpKCkscnQoMjgsImNsci1kZy1wYWdpbmF0aW9uIiwzMiwzMyksWXQoMzApLGx0KCkoKSgpfWlmKDImZCl7Y29uc3QgaD15YSgyOSksdj1KdCgy''@;'; + put 'put ''KTt1dCgxKSxUdCgiY2xyRGdGaWVsZCIsImJhc2V0YWJsZSIpLHV0KDIpLFR0KCJjbHJEZ0ZpZWxkIiwic3RhdHVzIiksdXQoMiksVHQoImNsckRnRmllbGQiLCJzdWJtaXR0ZXIiKSx1dCgyKSxUdCgiY2xyRGdGaWVsZCIsInN1Ym1pdHRlZFJlYXNvbiIpLHV0KDIpLFR0KCJjbHJEZ0ZpZWxk''@;'; + put 'put ''Iiwic3VibWl0dGVkIiksdXQoMiksVHQoImNsckRnRmllbGQiLCJyZXZpZXdlZCIpLHV0KDIpLFR0KCJjbHJEZ0ZpZWxkIiwicmV2aWV3ZWQiKSx1dCgyKSxUdCgiY2xyRGdJdGVtc09mIix2Lmhpc3RvcnkpLHV0KDQpLFR0KCJuZ01vZGVsIix2Lml0ZW1zTnVtKSx1dCgxKSxUdCgibmdWYWx1''@;'; + put 'put ''ZSIsMyksdXQoMiksVHQoIm5nVmFsdWUiLDUpLHV0KDIpLFR0KCJuZ1ZhbHVlIiwxMCksdXQoMiksVHQoIm5nVmFsdWUiLDE1KSx1dCgyKSxUdCgiY2xyRGdQYWdlU2l6ZSIsdi5pdGVtc051bSksdXQoMiksa2YoIiAiLGguZmlyc3RJdGVtKzEsIiAtICIsaC5sYXN0SXRlbSsxLCIgb2YgIixo''@;'; + put 'put ''LnRvdGFsSXRlbXMsIiB1cGRhdGVzICIpfX1mdW5jdGlvbiBuVmUoZCxnKXtpZigxJmQmJihydCgwLCJkaXYiLDIxKSgxLCJkaXYiLDIyKSxybigyLCROZSwyLDAsImgzIiwyMyksbHQoKSxybigzLHRWZSwzMSwxNywiY2xyLWRhdGFncmlkIiwyNCksbHQoKSksMiZkKXtjb25zdCBoPUp0KCk7''@;'; + put 'put ''dXQoMiksVHQoIm5nSWYiLGgubG9hZGVkKSx1dCgxKSxUdCgibmdJZiIsaC5sb2FkZWQpfX1sZXQgclZlPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2LHksQyl7dGhpcy5zYXNTdG9yZVNlcnZpY2U9aCx0aGlzLmV2ZW50U2VydmljZT12LHRoaXMucm91dGVyPXksdGhpcy5zYXNTZXJ2''@;'; + put 'put ''aWNlPUMsdGhpcy5oaXN0b3J5PVtdLHRoaXMudGFibGVUaXRsZXM9W10sdGhpcy5oaXN0b3J5QXJyPVtdLHRoaXMubG9hZGVkPSExLHRoaXMuaXRlbXNOdW09MTAsdGhpcy5vcGVuTW9kYWw9ITEsdGhpcy5ub0RhdGE9ITEsdGhpcy5hcHByb3ZlRGF0YT17fSx0aGlzLnNhc2pzQ29uZmlnPW5l''@;'; + put 'put ''dyBRMy5TQVNqc0NvbmZpZyx0aGlzLnNhc2pzQ29uZmlnPXRoaXMuc2FzU2VydmljZS5nZXRTYXNqc0NvbmZpZygpfWdldFRhYmxlKGgpe3RoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoIi9zdGFnZS8iK2gpfWdldEJhc2VUYWJsZShoKXt0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKCIvdmll''@;'; + put 'put ''dy9kYXRhLyIraCl9Z2V0RWRpdFRhYmxlKGgpe3RoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoIi9lZGl0b3IvIitoKX1nZXRBcHBySW5kZXgoaCl7Y29uc3Qgdj10aGlzLmhpc3RvcnlBcnIuZmluZEluZGV4KHk9PnkuVEFCTEVfSUQ9PT1oLnRhYmxlSWQpO3Y+LTEmJih0aGlzLmFwcHJvdmVE''@;'; + put 'put ''YXRhPXRoaXMuaGlzdG9yeUFyclt2XSx0aGlzLm9wZW5Nb2RhbD0hMCl9ZG93bmxvYWQoaCl7bGV0IHY9dGhpcy5zYXNTZXJ2aWNlLmdldFNhc2pzQ29uZmlnKCkseT12LnNlcnZlclVybCxDPXYuYXBwTG9jLEk9dGhpcy5zYXNTZXJ2aWNlLmdldEV4ZWN1dGlvblBhdGgoKTt3aW5kb3cub3Bl''@;'; + put 'put ''bih5K0krIi8/X3Byb2dyYW09IitDKyIvc2VydmljZXMvYXVkaXRvcnMvZ2V0YXVkaXRmaWxlJnRhYmxlPSIraCsiJl9jb250ZXh0bmFtZT0iK3RoaXMuc2FzanNDb25maWcuY29udGV4dE5hbWUpfW5nT25Jbml0KCl7cmV0dXJuIG5vKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXts''@;'; + put 'put ''ZXQgdj17SElTVDo1MH07dHJ5e2xldCBDLHk9eWllbGQgdGhpcy5zYXNTdG9yZVNlcnZpY2UuZ2V0SGlzdG9yeSh2LCJCcm93c2VyUGFyYW1zIiwiYXBwcm92ZXJzL2dldGhpc3RvcnkiKSxJPXkuZnJvbXNhcztpZih0aGlzLmhpc3RvcnlBcnI9eS5mcm9tc2FzLHkuZnJvbXNhcy5sZW5ndGg+''@;'; + put 'put ''MCl7Qz1PYmplY3Qua2V5cyhJWzBdKSx0aGlzLnRhYmxlVGl0bGVzPUM7bGV0IGo9eS5mcm9tc2FzLm1hcChmdW5jdGlvbih1ZSl7cmV0dXJue3RhYmxlSWQ6dWUuVEFCTEVfSUQsc3VibWl0dGVyOnVlLlNVQk1JVFRFUixzdWJtaXR0ZWRSZWFzb246dWUuU1VCTUlUVEVEX1JFQVNPTl9UWFQs''@;'; + put 'put ''c3VibWl0dGVkOnVlLlNVQk1JVFRFRCxzdGF0dXM6dWUuU1RBVFVTLHJldmlld1JlYXNvbjp1ZS5SRVZJRVdfUkVBU09OX1RYVCxyZXZpZXdlcjp1ZS5SRVZJRVdFUixyZXZpZXdlZDp1ZS5SRVZJRVdFRCxudW1PZkFwcHJvdmFsczp1ZS5OVU1fT0ZfQVBQUk9WQUxTX1JFUVVJUkVELGJhc2V0''@;'; + put 'put ''YWJsZTp1ZS5CQVNFX1RBQkxFfX0pO3RoaXMuaGlzdG9yeT1qLHRoaXMubG9hZGVkPSEwfWVsc2UgdGhpcy5sb2FkZWQ9ITAsdGhpcy5ub0RhdGE9ITB9Y2F0Y2goeSl7dGhpcy5ldmVudFNlcnZpY2UuY2F0Y2hSZXNwb25zZUVycm9yKCJhcHByb3ZlcnMvZ2V0aGlzdG9yeSIseSl9fSl9fXJl''@;'; + put 'put ''dHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKEt0KGtnKSxLdChtdSksS3QoWmwpLEt0KGcyKSl9LGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQsc2VsZWN0b3JzOltbImFwcC1oaXN0b3J5Il1dLGhvc3RBdHRyczpbMSwiY29udGVudC1jb250YWluZXIiXSxkZWNs''@;'; + put 'put ''czoyMCx2YXJzOjYsY29uc3RzOltbMSwiY29udGVudC1hcmVhIl0sWyJpZCIsIm5vRGF0YUNvbnRhaW5lciIsImNsYXNzIiwiY2FyZC1ibG9jayBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBmbGV4LWNvbHVtbiBhbGlnbi1pdGVtcy1jZW50ZXIiLDQsIm5nSWYiXSxbMywiY2xyTW9k''@;'; + put 'put ''YWxPcGVuIiwiY2xyTW9kYWxTaXplIiwiY2xyTW9kYWxPcGVuQ2hhbmdlIl0sWzEsIm1vZGFsLXRpdGxlIl0sWzEsIm1vZGFsLWJvZHkiXSxbMSwidGFibGUiXSxbMSwibGVmdCJdLFs0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbMSwibW9kYWwtZm9vdGVyIl0sWyJ0eXBlIiwiYnV0dG9uIiwxLCJi''@;'; + put 'put ''dG4iLCJidG4tb3V0bGluZSIsMywiY2xpY2siXSxbImNsYXNzIiwiaC03MHZoIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGZsZXgtY29sdW1uIGFsaWduLWl0ZW1zLWNlbnRlciIsNCwibmdJZiJdLFsiY2xhc3MiLCJjYXJkIiw0LCJuZ0lmIl0sWyJpZCIsIm5vRGF0YUNvbnRhaW5l''@;'; + put 'put ''ciIsMSwiY2FyZC1ibG9jayIsImQtZmxleCIsImp1c3RpZnktY29udGVudC1jZW50ZXIiLCJmbGV4LWNvbHVtbiIsImFsaWduLWl0ZW1zLWNlbnRlciJdLFsic2hhcGUiLCJ3YXJuaW5nLXN0YW5kYXJkIiwic2l6ZSIsIjYwIiwxLCJpcy1pbmZvIl0sWzEsInRleHQtY2VudGVyIiwiY29sb3It''@;'; + put 'put ''Z3JheSJdLFsiY2xhc3MiLCJjdXJzb3ItcG9pbnRlciIsMywiY2xpY2siLDQsIm5nSWYiXSxbNCwibmdJZiJdLFsxLCJjdXJzb3ItcG9pbnRlciIsMywiY2xpY2siXSxbMSwiaC03MHZoIiwiZC1mbGV4IiwianVzdGlmeS1jb250ZW50LWNlbnRlciIsImZsZXgtY29sdW1uIiwiYWxpZ24taXRl''@;'; + put 'put ''bXMtY2VudGVyIl0sWyJjbGFzcyIsInNwaW5uZXIiLDQsIm5nSWYiXSxbMSwic3Bpbm5lciJdLFsxLCJjYXJkIl0sWzEsImNhcmQtaGVhZGVyIl0sWyJjbGFzcyIsImNlbnRlciBjbHItY29sLW1kLTEyIHRleHQtY2VudGVyIiw0LCJuZ0lmIl0sWyJjbGFzcyIsImRhdGFncmlkLWhpc3Rvcnkg''@;'; + put 'put ''ZGF0YWdyaWQtY3VzdG9tLWZvb3RlciIsNCwibmdJZiJdLFsxLCJjZW50ZXIiLCJjbHItY29sLW1kLTEyIiwidGV4dC1jZW50ZXIiXSxbMSwiZGF0YWdyaWQtaGlzdG9yeSIsImRhdGFncmlkLWN1c3RvbS1mb290ZXIiXSxbMywiY2xyRGdGaWVsZCJdLFszLCJjbGljayIsNCwiY2xyRGdJdGVt''@;'; + put 'put ''cyIsImNsckRnSXRlbXNPZiJdLFsxLCJkLWZsZXgiLCJqdXN0aWZ5LWNvbnRlbnQtc3RhcnQiXSxbMSwibXgtNSIsMywibmdNb2RlbCIsIm5nTW9kZWxDaGFuZ2UiXSxbMywibmdWYWx1ZSJdLFsxLCJjZW50ZXIiLDMsImNsckRnUGFnZVNpemUiXSxbInBhZ2luYXRpb24iLCIiXSxbMywiY2xp''@;'; + put 'put ''Y2siXSxbMSwidmVyQ2VudGVyIl0sWzEsImJ0biIsImJ0bi1zbSIsImJ0bi1saW5rIiwibS0wIiwzLCJjbGljayJdLFsxLCJ2ZXJDZW50ZXIiLDMsIm5nQ2xhc3MiXSxbMSwidmVyQ2VudGVyIiwicC0wIiwiZC1mbGV4IiwianVzdGlmeS1jb250ZW50LWNlbnRlciJdLFsxLCJidG4iLCJidG4t''@;'; + put 'put ''c3VjY2VzcyIsMywiY2xpY2siXSxbInNoYXBlIiwiZG93bmxvYWQiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oaCx2KXsxJmgmJihydCgwLCJkaXYiLDApLHJuKDEsR05lLDQsMCwiZGl2IiwxKSxydCgyLCJjbHItbW9kYWwiLDIpLEduKCJjbHJNb2RhbE9wZW5DaGFuZ2UiLGZ1bmN0aW9uKEMpe3Jl''@;'; + put 'put ''dHVybiB2Lm9wZW5Nb2RhbD1DfSkscnQoMywiaDQiLDMpLFl0KDQsIkFwcHJvdmFsIGRldGFpbHMiKSxsdCgpLHJ0KDUsImRpdiIsNCkoNiwidGFibGUiLDUpKDcsInRoZWFkIikoOCwidHIiKSg5LCJ0aCIsNiksWXQoMTAsIk5hbWUiKSxsdCgpLHJ0KDExLCJ0aCIsNiksWXQoMTIsIlZhbHVl''@;'; + put 'put ''IiksbHQoKSgpKCkscnQoMTMsInRib2R5Iikscm4oMTQsUU5lLDcsNCwidHIiLDcpLGx0KCkoKSgpLHJ0KDE1LCJkaXYiLDgpKDE2LCJidXR0b24iLDkpLEduKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gdi5vcGVuTW9kYWw9ITF9KSxZdCgxNywiIE9LICIpLGx0KCkoKSgpLHJuKDE4LEtO''@;'; + put 'put ''ZSwzLDIsImRpdiIsMTApLHJuKDE5LG5WZSw0LDIsImRpdiIsMTEpLGx0KCkpLDImaCYmKHV0KDEpLFR0KCJuZ0lmIix2Lm5vRGF0YSksdXQoMSksVHQoImNsck1vZGFsT3BlbiIsdi5vcGVuTW9kYWwpKCJjbHJNb2RhbFNpemUiLCJ4bCIpLHV0KDEyKSxUdCgibmdGb3JPZiIsdi50YWJsZVRp''@;'; + put 'put ''dGxlcyksdXQoNCksVHQoIm5nSWYiLCF2LmxvYWRlZCksdXQoMSksVHQoIm5nSWYiLCF2Lm5vRGF0YSYmdi5sb2FkZWQpKX0sZGVwZW5kZW5jaWVzOltsYyxFcyxObyxxMyxlZCxPZix4cyxUcyxaTCxnUyxqTCxtUyxndyxjWixmWixHTCxBUyx5Uyx2UyxkdyxITCxWTCx3bCxvZCxhZF0sc3R5''@;'; + put 'put ''bGVzOlsiLnJlamVjdGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjojZjgzMTI2O2ZvbnQtd2VpZ2h0OjcwMH0uYWNjZXB0ZWRbX25nY29udGVudC0lQ09NUCVde2NvbG9yOiMzZmM0MjQ7Zm9udC13ZWlnaHQ6NzAwfS5oc0NlbGxbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleCFp''@;'; + put 'put ''bXBvcnRhbnQ7ZmxleC1kaXJlY3Rpb246Y29sdW1uIWltcG9ydGFudDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyIWltcG9ydGFudDthbGlnbi1pdGVtczpjZW50ZXIhaW1wb3J0YW50O3BhZGRpbmc6N3B4fS5idENlbGxbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleCFpbXBvcnRhbnQ7''@;'; + put 'put ''anVzdGlmeS1jb250ZW50OmNlbnRlciFpbXBvcnRhbnR9LnZlckNlbnRlcltfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjt3b3JkLWJyZWFrOmJyZWFrLWFsbH0jbm9EYXRhQ29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6Y2FsYygx''@;'; + put 'put ''MDB2aCAtIDIwMHB4KX0iXX0pLGR9KSgpLGlWZT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKCl7fW5nT25Jbml0KCl7fX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVjbXA9VGkoe3R5cGU6ZCxzZWxlY3RvcnM6W1siYXBwLW5vdC1m''@;'; + put 'put ''b3VuZCJdXSxob3N0QXR0cnM6WzEsImNvbnRlbnQtY29udGFpbmVyIl0sZGVjbHM6Myx2YXJzOjAsY29uc3RzOltbMSwiY29udGVudC1hcmVhIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGgsdil7MSZoJiYocnQoMCwiZGl2IiwwKSgxLCJwIiksWXQoMiwiNDA0IC0gTm90IEZvdW5kIiksbHQoKSgp''@;'; + put 'put ''KX19KSxkfSkoKTtmdW5jdGlvbiBvVmUoZCxnKXsxJmQmJihydCgwLCJkaXYiLDEyKSgxLCJkaXYiLDEzKSxDcigyLCJjbHItaWNvbiIsMTQpLHJ0KDMsImgzIiwxNSksWXQoNCwiIFlvdSBoYXZlIG5vdCBzdWJtaXR0ZWQgYW55IHRhYmxlcyAiKSxsdCgpKCkoKSl9ZnVuY3Rpb24gYVZlKGQs''@;'; + put 'put ''Zyl7MSZkJiYocnQoMCwiaDMiLDE2KSxZdCgxLCIgU1VCTUlUIFFVRVVFICIpLGx0KCkpfWZ1bmN0aW9uIGxWZShkLGcpe2lmKDEmZCYmKHJ0KDAsInAiLDE3KSxZdCgxLCIgWW91IGhhdmUgIikscnQoMiwic3BhbiIpLFl0KDMpLGx0KCksWXQoNCwic3VibWlzc2lvbnMgd2FpdGluZyB0byBi''@;'; + put 'put ''ZSBhcHByb3ZlZCAiKSxsdCgpKSwyJmQpe2NvbnN0IGg9SnQoMyk7dXQoMyksSmkoIiIsaC5yZW1haW5lZCwiICIpfX1mdW5jdGlvbiBzVmUoZCxnKXsxJmQmJihydCgwLCJzcGFuIiwyMCksWXQoMSwiIExvYWRpbmcuLi4gIiksbHQoKSl9ZnVuY3Rpb24gdVZlKGQsZyl7MSZkJiYocnQoMCwi''@;'; + put 'put ''ZGl2IikoMSwiaDMiKSxZdCgyLCJMb2FkaW5nIHN1Ym1pdHRlZCBsaXN0IiksbHQoKSgpKX1mdW5jdGlvbiBjVmUoZCxnKXtpZigxJmQmJihydCgwLCJkaXYiLDE4KSxybigxLHNWZSwyLDAsInNwYW4iLDE5KSxybigyLHVWZSwzLDAsImRpdiIsMiksbHQoKSksMiZkKXtjb25zdCBoPUp0KDMp''@;'; + put 'put ''O3V0KDEpLFR0KCJuZ0lmIiwhaC5sb2FkZWQpLHV0KDEpLFR0KCJuZ0lmIiwhaC5sb2FkZWQpfX1mdW5jdGlvbiBmVmUoZCxnKXtpZigxJmQpe2NvbnN0IGg9YmkoKTtydCgwLCJjbHItZGctcm93IiwzMCksR24oImNsaWNrIixmdW5jdGlvbigpe2NvbnN0IHk9aXQoaCksQz15LiRpbXBsaWNp''@;'; + put 'put ''dCxJPXkuaW5kZXg7cmV0dXJuIGEoSnQoNSkuZ2V0RGV0YWlscyhDLEkpKX0pLHJ0KDEsImNsci1kZy1jZWxsIiksWXQoMiksbHQoKSxydCgzLCJjbHItZGctY2VsbCIpLFl0KDQpLGx0KCkscnQoNSwiY2xyLWRnLWNlbGwiKSxZdCg2KSxsdCgpLHJ0KDcsImNsci1kZy1jZWxsIikoOCwiZGl2''@;'; + put 'put ''IiwzMSkoOSwiYSIsMzIpLEduKCJjbGljayIsZnVuY3Rpb24oKXtjb25zdCBDPWl0KGgpLiRpbXBsaWNpdDtyZXR1cm4gYShKdCg1KS5nb1RvU3RhZ2UoQy50YWJsZUlkKSl9KSxDcigxMCwiY2xyLWljb24iLDMzKSxydCgxMSwic3BhbiIsMzQpLFl0KDEyLCJHbyB0byBzdGFnZWQgZGF0YSBz''@;'; + put 'put ''Y3JlZW4iKSxsdCgpKCkoKSgpLHJ0KDEzLCJjbHItZGctY2VsbCIsMzUpKDE0LCJidXR0b24iLDM2KSxHbigiY2xpY2siLGZ1bmN0aW9uKHkpe2NvbnN0IEk9aXQoaCkuJGltcGxpY2l0O3JldHVybiBKdCg1KS5kb3dubG9hZChJLnRhYmxlSWQpLGEoeS5zdG9wUHJvcGFnYXRpb24oKSl9KSxD''@;'; + put 'put ''cigxNSwiY2xyLWljb24iLDM3KSxsdCgpKCkoKX1pZigyJmQpe2NvbnN0IGg9Zy4kaW1wbGljaXQ7dXQoMiksamkoaC5iYXNlKSx1dCgyKSxqaShoLnN1Ym1pdHRlZCksdXQoMiksamkoaC5zdWJtaXRSZWFzb24pfX1mdW5jdGlvbiBoVmUoZCxnKXtpZigxJmQpe2NvbnN0IGg9YmkoKTtydCgw''@;'; + put 'put ''LCJkaXYiKSgxLCJjbHItZGF0YWdyaWQiLDIyKSgyLCJjbHItZGctY29sdW1uIiksWXQoMywiQkFTRSBUQUJMRSIpLGx0KCkscnQoNCwiY2xyLWRnLWNvbHVtbiIsMjMpLFl0KDUsIlNVQk1JVFRFRCIpLGx0KCkscnQoNiwiY2xyLWRnLWNvbHVtbiIsMjMpLFl0KDcsIlNVQk1JVCBSRUFTT04i''@;'; + put 'put ''KSxsdCgpLHJ0KDgsImNsci1kZy1jb2x1bW4iLDEyKSxZdCg5LCJBQ1RJT04iKSxsdCgpLHJ0KDEwLCJjbHItZGctY29sdW1uIiwxMiksWXQoMTEsIkRPV05MT0FEIiksbHQoKSxybigxMixmVmUsMTYsMywiY2xyLWRnLXJvdyIsMjQpLHJ0KDEzLCJjbHItZGctZm9vdGVyIiwyNSkoMTQsInNw''@;'; + put 'put ''YW4iKSxZdCgxNSwiaXRlbXMgcGVyIHBhZ2UiKSxsdCgpLHJ0KDE2LCJzZWxlY3QiLDI2KSxHbigibmdNb2RlbENoYW5nZSIsZnVuY3Rpb24oeSl7cmV0dXJuIGl0KGgpLGEoSnQoNCkuaXRlbXNOdW09eSl9KSxydCgxNywib3B0aW9uIiwyNyksWXQoMTgsIjMiKSxsdCgpLHJ0KDE5LCJvcHRp''@;'; + put 'put ''b24iLDI3KSxZdCgyMCwiNSIpLGx0KCkscnQoMjEsIm9wdGlvbiIsMjcpLFl0KDIyLCIxMCIpLGx0KCkscnQoMjMsIm9wdGlvbiIsMjcpLFl0KDI0LCIxNSIpLGx0KCkoKSxydCgyNSwiY2xyLWRnLXBhZ2luYXRpb24iLDI4LDI5KSxZdCgyNyksbHQoKSgpKCkoKX1pZigyJmQpe2NvbnN0IGg9''@;'; + put 'put ''eWEoMjYpLHY9SnQoNCk7dXQoNCksVHQoImNsckRnRmllbGQiLCJzdWJtaXR0ZWQiKSx1dCgyKSxUdCgiY2xyRGdGaWVsZCIsInN1Ym1pdFJlYXNvbiIpLHV0KDYpLFR0KCJjbHJEZ0l0ZW1zT2YiLHYuc3VibWl0dGVyTGlzdCksdXQoNCksVHQoIm5nTW9kZWwiLHYuaXRlbXNOdW0pLHV0KDEp''@;'; + put 'put ''LFR0KCJuZ1ZhbHVlIiwzKSx1dCgyKSxUdCgibmdWYWx1ZSIsNSksdXQoMiksVHQoIm5nVmFsdWUiLDEwKSx1dCgyKSxUdCgibmdWYWx1ZSIsMTUpLHV0KDIpLFR0KCJjbHJEZ1BhZ2VTaXplIix2Lml0ZW1zTnVtKSx1dCgyKSxrZigiICIsaC5maXJzdEl0ZW0rMSwiIC0gIixoLmxhc3RJdGVt''@;'; + put 'put ''KzEsIiBvZiAiLGgudG90YWxJdGVtcywiIHN1Ym1pc3Npb25zICIpfX1mdW5jdGlvbiBkVmUoZCxnKXtpZigxJmQmJihydCgwLCJkaXYiLDIxKSxybigxLGhWZSwyOCwxMiwiZGl2IiwyKSxsdCgpKSwyJmQpe2NvbnN0IGg9SnQoMyk7dXQoMSksVHQoIm5nSWYiLGguc3VibWl0dGVyTGlzdCYm''@;'; + put 'put ''MCE9PWgucmVtYWluZWQpfX1jb25zdCBwVmU9ZnVuY3Rpb24oZCl7cmV0dXJue25vQm9yZGVyOmR9fTtmdW5jdGlvbiBnVmUoZCxnKXtpZigxJmQmJihydCgwLCJkaXYiLDUpLHJuKDEsb1ZlLDUsMCwiZGl2Iiw2KSxydCgyLCJkaXYiLDcpLHJuKDMsYVZlLDIsMCwiaDMiLDgpLHJuKDQsbFZl''@;'; + put 'put ''LDUsMSwicCIsOSksbHQoKSxybig1LGNWZSwzLDIsImRpdiIsMTApLHJuKDYsZFZlLDIsMSwiZGl2IiwxMSksbHQoKSksMiZkKXtjb25zdCBoPUp0KDIpO3V0KDEpLFR0KCJuZ0lmIiwwPT09aC5yZW1haW5lZCYmaC5sb2FkZWQpLHV0KDEpLFR0KCJuZ0NsYXNzIixHZCg2LHBWZSwhaC5sb2Fk''@;'; + put 'put ''ZWQpKSx1dCgxKSxUdCgibmdJZiIsMCE9PWgucmVtYWluZWQpLHV0KDEpLFR0KCJuZ0lmIixoLmxvYWRlZCYmMCE9PWgucmVtYWluZWQpLHV0KDEpLFR0KCJuZ0lmIiwhaC5sb2FkZWQpLHV0KDEpLFR0KCJuZ0lmIixoLmxvYWRlZCl9fWZ1bmN0aW9uIG1WZShkLGcpe2lmKDEmZCYmKHJ0KDAs''@;'; + put 'put ''ImRpdiIsMykscm4oMSxnVmUsNyw4LCJkaXYiLDQpLGx0KCkpLDImZCl7Y29uc3QgaD1KdCgpO3V0KDEpLFR0KCJuZ0lmIiwhaC5zdWJSZWFkeSl9fWZ1bmN0aW9uIHZWZShkLGcpezEmZCYmKHJ0KDAsImRpdiIpLENyKDEsImFwcC1hcHByb3ZlLWRldGFpbHMiKSxsdCgpKX1sZXQgVndlPSgo''@;'; + put 'put ''KT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2LHksQyl7dGhpcy5zYXNTdG9yZVNlcnZpY2U9aCx0aGlzLmV2ZW50U2VydmljZT12LHRoaXMucm91dGU9eSx0aGlzLnNhc1NlcnZpY2U9Qyx0aGlzLnJlbWFpbmVkPTAsdGhpcy5sb2FkZWQ9ITEsdGhpcy5zdWJSZWFkeT0hMSx0aGlzLmRldGFp''@;'; + put 'put ''bHNPcGVuPSExfWdvVG9TdGFnZShoKXt0aGlzLnJvdXRlLm5hdmlnYXRlQnlVcmwoIi9zdGFnZS8iK2gpfWdldERldGFpbHMoaCx2KXt0aGlzLnN1YlJlYWR5PSEwLHNldFRpbWVvdXQoKCk9Pnt0aGlzLnNhc1N0b3JlU2VydmljZS5zZW5kRGV0YWlscyhoLHYsdGhpcy5zdWJtaXREYXRhKX0s''@;'; + put 'put ''MCl9bmdPbkluaXQoKXtyZXR1cm4gbm8odGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe3RoaXMuaXRlbXNOdW09MTA7dHJ5e2xldCBoPXlpZWxkIHRoaXMuc2FzU3RvcmVTZXJ2aWNlLmdldFN1Ym1pdHRzKCk7aWYodGhpcy5yZW1haW5lZD1oLmZyb21zYXMubGVuZ3RoLHRoaXMucmVt''@;'; + put 'put ''YWluZWQ+MCl7dGhpcy5zdWJtaXR0ZXI9aC5mcm9tc2FzWzBdLlNVQk1JVFRFRF9CWV9OTTtsZXQgdj1oLmZyb21zYXMubWFwKGZ1bmN0aW9uKHkpe3JldHVybnt0YWJsZUlkOnkuVEFCTEVfSUQsYmFzZTp5LkJBU0VfVEFCTEUsc3VibWl0dGVkOnkuU1VCTUlUVEVEX09OX0RUVE0sc3VibWl0''@;'; + put 'put ''dGVyOnkuU1VCTUlUVEVEX0JZX05NLHN1Ym1pdFJlYXNvbjp5LlNVQk1JVFRFRF9SRUFTT05fVFhUfX0pO3RoaXMuc3VibWl0dGVyTGlzdD12LHRoaXMuc3VibWl0RGF0YT1oLmZyb21zYXN9dGhpcy5sb2FkZWQ9ITB9Y2F0Y2goaCl7dGhpcy5ldmVudFNlcnZpY2UuY2F0Y2hSZXNwb25zZUVy''@;'; + put 'put ''cm9yKCJlZGl0b3JzL2dldHN1Ym1pdHMiLGgpfX0pfW5nQWZ0ZXJWaWV3SW5pdCgpe3RoaXMuX3JlYWR5U3ViPXRoaXMuc2FzU3RvcmVTZXJ2aWNlLnNldFN1Ym1pdC5zdWJzY3JpYmUoaD0+e3RoaXMuc3ViUmVhZHk9aH0pLHRoaXMuX2JhY2tUb1N1Yj10aGlzLnNhc1N0b3JlU2VydmljZS5z''@;'; + put 'put ''ZXRTdWJtaXRMaXN0LnN1YnNjcmliZShoPT57dGhpcy5zdWJSZWFkeT0hdGhpcy5zdWJSZWFkeSx0aGlzLmRldGFpbHNPcGVuPSExfSl9ZG93bmxvYWQoaCl7bGV0IHY9dGhpcy5zYXNTZXJ2aWNlLmdldFNhc2pzQ29uZmlnKCkseT12LnNlcnZlclVybCxDPXYuYXBwTG9jLEk9dGhpcy5zYXNT''@;'; + put 'put ''ZXJ2aWNlLmdldEV4ZWN1dGlvblBhdGgoKTt3aW5kb3cub3Blbih5K0krIi8/X3Byb2dyYW09IitDKyIvc2VydmljZXMvYXVkaXRvcnMvZ2V0YXVkaXRmaWxlJnRhYmxlPSIraCl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKEt0KGtnKSxLdChtdSks''@;'; + put 'put ''S3QoWmwpLEt0KGcyKSl9LGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQsc2VsZWN0b3JzOltbImFwcC1zdWJtaXR0ZXIiXV0saG9zdEF0dHJzOlsxLCJjb250ZW50LWNvbnRhaW5lciJdLGRlY2xzOjMsdmFyczoyLGNvbnN0czpbWzEsInctMTAwIl0sWyJjbGFzcyIsImNvbnRlbnQtYXJlYSIsNCwi''@;'; + put 'put ''bmdJZiJdLFs0LCJuZ0lmIl0sWzEsImNvbnRlbnQtYXJlYSJdLFsiY2xhc3MiLCJjYXJkIiw0LCJuZ0lmIl0sWzEsImNhcmQiXSxbImNsYXNzIiwiZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIiLDQsIm5nSWYiXSxbMSwiY2FyZC1oZWFkZXIiLDMsIm5nQ2xhc3MiXSxbImNsYXNzIiwi''@;'; + put 'put ''Y2VudGVyIGNsci1jb2wtbWQtMTIgdGV4dC1jZW50ZXIiLDQsIm5nSWYiXSxbImNsYXNzIiwidGV4dC1jZW50ZXIgZm9udC13ZWlnaHQtNzAwIGNvbG9yLWRhcmstZ3JheSIsNCwibmdJZiJdLFsiY2xhc3MiLCJoLTcwdmggZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgZmxleC1jb2x1''@;'; + put 'put ''bW4gYWxpZ24taXRlbXMtY2VudGVyIiw0LCJuZ0lmIl0sWyJjbGFzcyIsImNsci1jb2wtbWQtMTIiLDQsIm5nSWYiXSxbMSwiZC1mbGV4IiwianVzdGlmeS1jb250ZW50LWNlbnRlciJdLFsxLCJuby1zdWJtaXR0ZWQtdGFibGVzIiwiY2FyZC1ibG9jayIsImQtZmxleCIsImp1c3RpZnktY29u''@;'; + put 'put ''dGVudC1jZW50ZXIiLCJmbGV4LWNvbHVtbiIsImFsaWduLWl0ZW1zLWNlbnRlciJdLFsic2hhcGUiLCJ3YXJuaW5nLXN0YW5kYXJkIiwic2l6ZSIsIjYwIiwxLCJpcy1pbmZvIl0sWzEsInRleHQtY2VudGVyIiwiY29sb3ItZ3JheSJdLFsxLCJjZW50ZXIiLCJjbHItY29sLW1kLTEyIiwidGV4''@;'; + put 'put ''dC1jZW50ZXIiXSxbMSwidGV4dC1jZW50ZXIiLCJmb250LXdlaWdodC03MDAiLCJjb2xvci1kYXJrLWdyYXkiXSxbMSwiaC03MHZoIiwiZC1mbGV4IiwianVzdGlmeS1jb250ZW50LWNlbnRlciIsImZsZXgtY29sdW1uIiwiYWxpZ24taXRlbXMtY2VudGVyIl0sWyJjbGFzcyIsInNwaW5uZXIi''@;'; + put 'put ''LDQsIm5nSWYiXSxbMSwic3Bpbm5lciJdLFsxLCJjbHItY29sLW1kLTEyIl0sWzEsImRhdGFncmlkLWNvbXBhY3QiLCJkYXRhZ3JpZC1jdXN0b20tZm9vdGVyIl0sWzMsImNsckRnRmllbGQiXSxbImNsYXNzIiwiY3Vyc29yLXBvaW50ZXIiLDMsImNsaWNrIiw0LCJjbHJEZ0l0ZW1zIiwiY2xy''@;'; + put 'put ''RGdJdGVtc09mIl0sWzEsImQtZmxleCIsImp1c3RpZnktY29udGVudC1zdGFydCJdLFszLCJuZ01vZGVsIiwibmdNb2RlbENoYW5nZSJdLFszLCJuZ1ZhbHVlIl0sWzEsImNlbnRlciIsMywiY2xyRGdQYWdlU2l6ZSJdLFsicGFnaW5hdGlvbiIsIiJdLFsxLCJjdXJzb3ItcG9pbnRlciIsMywi''@;'; + put 'put ''Y2xpY2siXSxbInJvbGUiLCJ0b29sdGlwIiwxLCJyb3ciLCJqdXN0aWZ5LWNvbnRlbnQtYXJvdW5kIl0sWzEsImNvbHVtbi1jZW50ZXIiLCJsaW5rcyIsInRvb2x0aXAiLCJ0b29sdGlwLW1kIiwidG9vbHRpcC1ib3R0b20tbGVmdCIsImNvbG9yLWJsdWUiLDMsImNsaWNrIl0sWyJzaGFwZSIs''@;'; + put 'put ''ImNvZGUiLCJzaXplIiwiMjgiXSxbMSwidG9vbHRpcC1jb250ZW50Il0sWzEsInAtMCIsImQtZmxleCIsImp1c3RpZnktY29udGVudC1jZW50ZXIiXSxbMSwiYnRuIiwiYnRuLXN1Y2Nlc3MiLDMsImNsaWNrIl0sWyJzaGFwZSIsImRvd25sb2FkIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGgsdil7''@;'; + put 'put ''MSZoJiYocnQoMCwiZGl2IiwwKSxybigxLG1WZSwyLDEsImRpdiIsMSkscm4oMix2VmUsMiwwLCJkaXYiLDIpLGx0KCkpLDImaCYmKHV0KDEpLFR0KCJuZ0lmIiwhdi5zdWJSZWFkeSksdXQoMSksVHQoIm5nSWYiLHYuc3ViUmVhZHkpKX0sZGVwZW5kZW5jaWVzOltsYyxObyxxMyxlZCxPZix4''@;'; + put 'put ''cyxUcyxaTCxnUyxqTCxtUyxndyxjWixmWixHTCxBUyx5Uyx2UyxkdyxITCxWTCx3bCxOd2VdLHN0eWxlczpbIi5ub0JvcmRlcltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyLWJvdHRvbToxcHggc29saWQgdHJhbnNwYXJlbnQhaW1wb3J0YW50fS50b29sdGlwLnRvb2x0aXAtYm90dG9tLWxl''@;'; + put 'put ''ZnRbX25nY29udGVudC0lQ09NUCVdID4gLnRvb2x0aXAtY29udGVudFtfbmdjb250ZW50LSVDT01QJV0sIC50b29sdGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC50b29sdGlwLWNvbnRlbnQudG9vbHRpcC1ib3R0b20tbGVmdFtfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZDojMzE0MzUx''@;'; + put 'put ''IWltcG9ydGFudH0udG9vbHRpcC50b29sdGlwLWJvdHRvbS1sZWZ0W19uZ2NvbnRlbnQtJUNPTVAlXSA+IC50b29sdGlwLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVdOmJlZm9yZSwgLnRvb2x0aXBbX25nY29udGVudC0lQ09NUCVdICAgLnRvb2x0aXAtY29udGVudC50b29sdGlwLWJvdHRv''@;'; + put 'put ''bS1sZWZ0W19uZ2NvbnRlbnQtJUNPTVAlXTpiZWZvcmV7Ym9yZGVyLXJpZ2h0Oi4yNXJlbSBzb2xpZCAjMzE0MzUxO2JvcmRlci1ib3R0b206LjIwODMzcmVtIHNvbGlkICMzMTQzNTF9Lm5vLXN1Ym1pdHRlZC10YWJsZXNbX25nY29udGVudC0lQ09NUCVde2hlaWdodDpjYWxjKDEwMHZoIC0g''@;'; + put 'put ''MjAwcHgpfSJdfSksZH0pKCksQVZlPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoKXt9bmdPbkluaXQoKXt9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1MDI3NWNtcD1UaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJhcHAtYXBwcm92ZS1yb3V0''@;'; + put 'put ''ZSJdXSxob3N0QXR0cnM6WzEsImNvbnRlbnQtY29udGFpbmVyIl0sZGVjbHM6MSx2YXJzOjAsdGVtcGxhdGU6ZnVuY3Rpb24oaCx2KXsxJmgmJkNyKDAsInJvdXRlci1vdXRsZXQiKX0sZGVwZW5kZW5jaWVzOltveV19KSxkfSkoKSxqd2U9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3Rvcigpe31k''@;'; + put 'put ''b3dubG9hZEZpbGUoaCx2LHk9InR4dCIpe2xldCBDPW5ldyBCbG9iKFtoXSx7dHlwZToidGV4dC9wbGFpbiJ9KTtpZihuYXZpZ2F0b3IuYXBwVmVyc2lvbi50b1N0cmluZygpLmluZGV4T2YoIi5ORVQiKT4wKXdpbmRvdy5uYXZpZ2F0b3IubXNTYXZlQmxvYihDLGAke3Z9LiR7eX1gKTtlbHNl''@;'; + put 'put ''e2xldCBJPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKTtJLmhyZWY9ImRhdGE6dGV4dC9wbGFpbiwiK2VuY29kZVVSSUNvbXBvbmVudChoKSxJLmRvd25sb2FkPWAke3Z9LiR7eX1gLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoSSksSS5jbGljaygpLGRvY3VtZW50LmJvZHkucmVtb3Zl''@;'; + put 'put ''Q2hpbGQoSSl9fXJlYWRGaWxlKGgpe3JldHVybiBuZXcgUHJvbWlzZSgodix5KT0+e2xldCBDPW5ldyBGaWxlUmVhZGVyO0Mub25sb2FkPSgpPT57Qy5yZXN1bHQmJnYoSlNPTi5wYXJzZShDLnJlc3VsdC50b1N0cmluZygpKSl9LEMucmVhZEFzVGV4dChoKX0pfWNsZWFyVXBsb2FkSW5wdXQo''@;'; + put 'put ''aCl7aC50YXJnZXQudmFsdWU9IiJ9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1MDI3NXByb3Y9QWkoe3Rva2VuOmQsZmFjdG9yeTpkLlx1MDI3NWZhYyxwcm92aWRlZEluOiJyb290In0pLGR9KSgpO2Z1bmN0aW9uIHlWZShkLGcpezEmZCYm''@;'; + put 'put ''KHJ0KDAsImRpdiIsNikoMSwicCIsNyksWXQoMiwiUGxlYXNlIGxvZyBpbiBmaXJzdCIpLGx0KCkscnQoMywibGFiZWwiLDgpLFl0KDQsIlVzZXJuYW1lIiksbHQoKSxydCg1LCJkaXYiLDkpKDYsImRpdiIsMTApLENyKDcsImlucHV0IiwxMSksbHQoKSgpLHJ0KDgsImxhYmVsIiwxMiksWXQo''@;'; + put 'put ''OSwiUGFzc3dvcmQiKSxsdCgpLHJ0KDEwLCJkaXYiLDkpKDExLCJkaXYiLDEwKSxDcigxMiwiaW5wdXQiLDEzKSxsdCgpKCkscnQoMTMsImJ1dHRvbiIsMTQpLFl0KDE0LCJMb2cgaW4iKSxsdCgpKCkpfWZ1bmN0aW9uIHdWZShkLGcpe2lmKDEmZCYmKHJ0KDAsIm9wdGlvbiIsMzYpLFl0KDEp''@;'; + put 'put ''LGx0KCkpLDImZCl7Y29uc3QgaD1nLiRpbXBsaWNpdDtUdCgidmFsdWUiLGguaWQpLHV0KDEpLEppKCIgIixoLm5hbWUsIiAiKX19ZnVuY3Rpb24gYlZlKGQsZyl7aWYoMSZkJiYocnQoMCwic3BhbiIpLFl0KDEpLGx0KCkpLDImZCl7Y29uc3QgaD1KdCgpLiRpbXBsaWNpdDt1dCgxKSxKaSgi''@;'; + put 'put ''KCAiLGguYXR0cmlidXRlcy5zeXNVc2VySWQsIiApIil9fWZ1bmN0aW9uIF9WZShkLGcpe2lmKDEmZCYmKHJ0KDAsIm9wdGlvbiIsMzYpLFl0KDEpLHJuKDIsYlZlLDIsMSwic3BhbiIsNSksbm4oMywianNvbiIpLGx0KCkpLDImZCl7Y29uc3QgaD1nLiRpbXBsaWNpdDtUdCgidmFsdWUiLGgu''@;'; + put 'put ''bmFtZSksdXQoMSksSmkoIiAiLGgubmFtZSwiICIpLHV0KDEpLFR0KCJuZ0lmIiwie30iIT16dCgzLDMsaC5hdHRyaWJ1dGVzKSl9fWZ1bmN0aW9uIENWZShkLGcpezEmZCYmKHJ0KDAsInNwYW4iKSxZdCgxLCJKU09OIFN1Ym1pdHRlZCBTdWNjZXNzZnVsbHkiKSxsdCgpKX1mdW5jdGlvbiBr''@;'; + put 'put ''VmUoZCxnKXtpZigxJmQpe2NvbnN0IGg9YmkoKTtydCgwLCJidXR0b24iLDM3KSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIGl0KGgpLGEoSnQoMikuZG93bmxvYWRTYXNQcmVjb2RlRmlsZSgpKX0pLENyKDEsImNsci1pY29uIiwzOCksbHQoKX19ZnVuY3Rpb24gU1ZlKGQsZyl7aWYo''@;'; + put 'put ''MSZkKXtjb25zdCBoPWJpKCk7RjAoMCkscnQoMSwicCIsMzkpLFl0KDIsIkZpbGUgZXhlY3V0ZSBjb21wbGV0ZWQiKSxsdCgpLENyKDMsImhyIikscnQoNCwiZGl2IikoNSwiYnV0dG9uIiw0MCksR24oImNsaWNrIixmdW5jdGlvbigpe2l0KGgpO2NvbnN0IHk9SnQoMik7cmV0dXJuIGEoeS5k''@;'; + put 'put ''b3dubG9hZEZpbGUoeS5qb2JMb2csImV4ZWN1dGUtc2NyaXB0LWxvZyIsInR4dCIpKX0pLFl0KDYsIiBEb3dubG9hZCBsb2cgIiksbHQoKSgpLEgwKCl9fWZ1bmN0aW9uIE1WZShkLGcpe2lmKDEmZCYmKHJ0KDAsImRpdiIsNDQpLFl0KDEpLGx0KCkpLDImZCl7Y29uc3QgaD1KdCgzKTt1dCgx''@;'; + put 'put ''KSxKaSgiICIsaC5tYWtlRGF0YVJlc3BvbnNlLCIgIil9fWZ1bmN0aW9uIEVWZShkLGcpezEmZCYmKEYwKDApLHJ0KDEsInNwYW4iLDI1KSxZdCgyLCIgVmFsaWRhdGluZyBkZXBsb3kuLi4gIiksbHQoKSxydCgzLCJzcGFuIiksWXQoNCwiIFZhbGlkYXRpbmcgZGVwbG95Li4uICIpLGx0KCks''@;'; + put 'put ''SDAoKSl9ZnVuY3Rpb24geFZlKGQsZyl7MSZkJiYoRjAoMCksQ3IoMSwiY2xyLWljb24iLDQ2KSxydCgyLCJzcGFuIiksWXQoMywiIFZhbGlkYXRpb24gZmFpbGVkICIpLGx0KCksSDAoKSl9ZnVuY3Rpb24gVFZlKGQsZyl7MSZkJiYoRjAoMCksQ3IoMSwiY2xyLWljb24iLDQ3KSxydCgyLCJz''@;'; + put 'put ''cGFuIiksWXQoMywiIFZhbGlkYXRpb24gc3VjY2VlZGVkICIpLGx0KCksSDAoKSl9ZnVuY3Rpb24gSVZlKGQsZyl7aWYoMSZkJiYocnQoMCwiZGl2Iiw0NSkscm4oMSxFVmUsNSwwLCJuZy1jb250YWluZXIiLDUpLHJuKDIseFZlLDQsMCwibmctY29udGFpbmVyIiw1KSxybigzLFRWZSw0LDAs''@;'; + put 'put ''Im5nLWNvbnRhaW5lciIsNSksbHQoKSksMiZkKXtjb25zdCBoPUp0KDMpO3V0KDEpLFR0KCJuZ0lmIixoLmlzVmFsaWRhdGluZyksdXQoMSksVHQoIm5nSWYiLCFoLmlzVmFsaWRhdGluZyYmImVycm9yIj09PWgudmFsaWRhdGlvblN0YXRlKSx1dCgxKSxUdCgibmdJZiIsIWguaXNWYWxpZGF0''@;'; + put 'put ''aW5nJiYic3VjY2VzcyI9PT1oLnZhbGlkYXRpb25TdGF0ZSl9fWZ1bmN0aW9uIERWZShkLGcpe2lmKDEmZCl7Y29uc3QgaD1iaSgpO0YwKDApLHJ0KDEsInAiLDM5KSxZdCgyLCJDcmVhdGUgRGF0YWJhc2UgQ29tcGxldGVkIiksbHQoKSxDcigzLCJociIpLHJuKDQsTVZlLDIsMSwiZGl2Iiw0''@;'; + put 'put ''MSkscnQoNSwiYnV0dG9uIiw0MiksR24oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBpdChoKSxhKEp0KDIpLm5hdmlnYXRlVG9Ib21lKCkpfSksWXQoNiwiIExldCdzIGdldCBzdGFydGVkICIpLGx0KCkscnQoNywiYnV0dG9uIiw0MiksR24oImNsaWNrIixmdW5jdGlvbigpe2l0KGgpO2Nv''@;'; + put 'put ''bnN0IHk9SnQoMik7cmV0dXJuIGEoeS5kb3dubG9hZEZpbGUoeS5tYWtlRGF0YVJlc3BvbnNlLCJjcmVhdGUtZGF0YWJhc2UtbG9nIiwidHh0IikpfSksWXQoOCwiIERvd25sb2FkIGxvZyAiKSxsdCgpLHJ0KDksImJ1dHRvbiIsNDIpLEduKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gaXQo''@;'; + put 'put ''aCksYShKdCgyKS52YWxpZGF0ZURlcGxveSgpKX0pLFl0KDEwLCIgVmFsaWRhdGUgIiksbHQoKSxybigxMSxJVmUsNCwzLCJkaXYiLDQzKSxIMCgpfWlmKDImZCl7Y29uc3QgaD1KdCgyKTt1dCg0KSxUdCgibmdJZiIsaC5tYWtlRGF0YVJlc3BvbnNlLmxlbmd0aD4wKSx1dCg3KSxUdCgibmdJ''@;'; + put 'put ''ZiIsIm5vbmUiIT09aC52YWxpZGF0aW9uU3RhdGV8fGguaXNWYWxpZGF0aW5nKX19Y29uc3QgRmhlPWZ1bmN0aW9uKCl7cmV0dXJue3N0YW5kYWxvbmU6ITB9fTtmdW5jdGlvbiBMVmUoZCxnKXtpZigxJmQpe2NvbnN0IGg9YmkoKTtGMCgwKSxydCgxLCJmb3JtIikoMiwiZGl2IiwxNSkoMywi''@;'; + put 'put ''bGFiZWwiLDE2KSxZdCg0LCJBZG1pbiBncm91cCIpLGx0KCkscnQoNSwiZGl2IiwxNykoNiwiZGl2IiwxOCkoNywic2VsZWN0IiwxOSksR24oIm5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9uKHkpe3JldHVybiBpdChoKSxhKEp0KCkuc2VsZWN0ZWRBZG1pbkdyb3VwPXkpfSkscm4oOCx3VmUsMiwy''@;'; + put 'put ''LCJvcHRpb24iLDIwKSxsdCgpKCkoKSgpLHJ0KDksImRpdiIsMTUpKDEwLCJkaXYiKSgxMSwibGFiZWwiLDE2KSxZdCgxMiwiQ29udGV4dCIpLGx0KCkscnQoMTMsImRpdiIsMTcpKDE0LCJkaXYiLDE4KSgxNSwic2VsZWN0IiwyMSksR24oIm5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9uKHkpe3Jl''@;'; + put 'put ''dHVybiBpdChoKSxhKEp0KCkuc2VsZWN0ZWRDb250ZXh0PXkpfSkscm4oMTYsX1ZlLDQsNSwib3B0aW9uIiwyMCksbHQoKSgpKCkscnQoMTcsImJ1dHRvbiIsMjIpLEduKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gaXQoaCksYShKdCgpLmV4ZWN1dGFibGVDb250ZXh0KCkpfSksQ3IoMTgs''@;'; + put 'put ''ImNsci1pY29uIiwyMyksbHQoKSgpLHJ0KDE5LCJkaXYiLDI0KSgyMCwic3BhbiIsMjUpLFl0KDIxLCIgTG9hZGluZyBjb250ZXh0cy4uLiAiKSxsdCgpLHJ0KDIyLCJzcGFuIiksWXQoMjMsIiBMb2FkaW5nIGNvbnRleHRzLi4uICIpLGx0KCkoKSxydCgyNCwibGFiZWwiLDI2KSxZdCgyNSwi''@;'; + put 'put ''REMgTG9jIiksbHQoKSxydCgyNiwiZGl2Iiw5KSgyNywiZGl2IiwxMCkoMjgsImlucHV0IiwyNyksR24oIm5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9uKHkpe3JldHVybiBpdChoKSxhKEp0KCkuZGNQYXRoPXkpfSkoImZvY3Vzb3V0IixmdW5jdGlvbigpe3JldHVybiBpdChoKSxhKEp0KCkuc2F2''@;'; + put 'put ''ZURjUGF0aCgpKX0pLGx0KCkoKSgpLHJ0KDI5LCJwIiwyOCksWXQoMzAsIiBTZWxlY3QgSlNPTiBmaWxlIHRvIHVwbG9hZCAoanNvbiBidWlsZCBmaWxlIHByZWxvYWRlZCk6ICIpLGx0KCkscnQoMzEsImRpdiIsMjkpKDMyLCJpbnB1dCIsMzApLEduKCJjbGljayIsZnVuY3Rpb24oeSl7cmV0''@;'; + put 'put ''dXJuIGl0KGgpLGEoSnQoKS5jbGVhclVwbG9hZElucHV0KHkpKX0pKCJjaGFuZ2UiLGZ1bmN0aW9uKHkpe3JldHVybiBpdChoKSxhKEp0KCkub25Kc29uRmlsZUNoYW5nZSh5KSl9KSxsdCgpKCkscnQoMzMsImRpdiIsMzEpKDM0LCJidXR0b24iLDMyKSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7''@;'; + put 'put ''cmV0dXJuIGl0KGgpLGEoSnQoKS5leGVjdXRlSnNvbigpKX0pLFl0KDM1LCIgU1VCTUlUIEpTT04gIiksbHQoKSxybigzNixDVmUsMiwwLCJzcGFuIiw1KSxsdCgpLHJ0KDM3LCJwIiwyOCksWXQoMzgsIlNlbGVjdCBTQVMgZmlsZSB0byB1cGxvYWQ6IiksbHQoKSxydCgzOSwiZGl2IiwyOSko''@;'; + put 'put ''NDAsImlucHV0IiwzMCksR24oImNsaWNrIixmdW5jdGlvbih5KXtyZXR1cm4gaXQoaCksYShKdCgpLmNsZWFyVXBsb2FkSW5wdXQoeSkpfSkoImNoYW5nZSIsZnVuY3Rpb24oeSl7aXQoaCk7Y29uc3QgQz1KdCgpO3JldHVybiBDLm9uU2FzRmlsZUNoYW5nZSh5KSxhKEMuZG93bmxvYWRGaWxl''@;'; + put 'put ''QnRuPSEwKX0pLGx0KCkscm4oNDEsa1ZlLDIsMCwiYnV0dG9uIiwzMyksbHQoKSxydCg0MiwiZGl2IiwzMSkoNDMsImJ1dHRvbiIsMzQpLEduKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gaXQoaCksYShKdCgpLmV4ZWN1dGVTQVMoKSl9KSxZdCg0NCwiIFNVQk1JVCAiKSxsdCgpKCkoKSxy''@;'; + put 'put ''big0NSxTVmUsNywwLCJuZy1jb250YWluZXIiLDUpLHJ0KDQ2LCJidXR0b24iLDM1KSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIGl0KGgpLGEoSnQoKS5jcmVhdGVEYXRhYmFzZSgpKX0pLFl0KDQ3LCIgQ3JlYXRlIERhdGFiYXNlICIpLGx0KCkscm4oNDgsRFZlLDEyLDIsIm5nLWNv''@;'; + put 'put ''bnRhaW5lciIsNSksbHQoKSxIMCgpfWlmKDImZCl7Y29uc3QgaD1KdCgpO3V0KDcpLFR0KCJuZ01vZGVsIixoLnNlbGVjdGVkQWRtaW5Hcm91cCkoIm5nTW9kZWxPcHRpb25zIixWcygxOSxGaGUpKSx1dCgxKSxUdCgibmdGb3JPZiIsaC5hZG1pbkdyb3VwcyksdXQoMiksRmkoImhpZGRlbiIs''@;'; + put 'put ''aC5jb250ZXh0c0xvYWRpbmcpLHV0KDUpLFR0KCJuZ01vZGVsIixoLnNlbGVjdGVkQ29udGV4dCkoIm5nTW9kZWxPcHRpb25zIixWcygyMCxGaGUpKSx1dCgxKSxUdCgibmdGb3JPZiIsaC5hbGxDb250ZXh0cyksdXQoMyksRmkoImhpZGRlbiIsIWguY29udGV4dHNMb2FkaW5nKSx1dCg5KSxU''@;'; + put 'put ''dCgibmdNb2RlbCIsaC5kY1BhdGgpKCJuZ01vZGVsT3B0aW9ucyIsVnMoMjEsRmhlKSksdXQoNiksVHQoImNsckxvYWRpbmciLGguaXNTdWJtaXR0aW5nSnNvbiksdXQoMiksVHQoIm5nSWYiLGguaXNKc29uU3VibWl0dGVkKSx1dCg1KSxUdCgibmdJZiIsaC5kb3dubG9hZEZpbGVCdG4pLHV0''@;'; + put 'put ''KDIpLFR0KCJjbHJMb2FkaW5nIixoLmV4ZWN1dGluZ1NjcmlwdCksdXQoMiksVHQoIm5nSWYiLGguam9iTG9nLmxlbmd0aD4wKSx1dCgxKSxUdCgiY2xyTG9hZGluZyIsaC5jcmVhdGVEYXRhYmFzZUxvYWRpbmcpLHV0KDIpLFR0KCJuZ0lmIixoLm1ha2VEYXRhUmVzcG9uc2UubGVuZ3RoPjAp''@;'; + put 'put ''fX1sZXQgT1ZlPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2LHksQyl7dGhpcy5zYXNTZXJ2aWNlPWgsdGhpcy5ldmVudFNlcnZpY2U9dix0aGlzLmxvZ2dlclNlcnZpY2U9eSx0aGlzLmRlcGxveVNlcnZpY2U9Qyx0aGlzLnNhc0pzQ29uZmlnPW5ldyBRMy5TQVNqc0NvbmZpZyx0aGlz''@;'; + put 'put ''Lm9uTmF2aWdhdGVUb0hvbWU9bmV3IGFyLHRoaXMubmVlZHNMb2dpbj0hMSx0aGlzLmFkbWluR3JvdXBzPVtdLHRoaXMuYWxsQ29udGV4dHM9W10sdGhpcy5hcHBMb2M9IiIsdGhpcy5kY1BhdGg9IiIsdGhpcy5zZWxlY3RlZEFkbWluR3JvdXA9IiIsdGhpcy5zZWxlY3RlZENvbnRleHQ9IiIs''@;'; + put 'put ''dGhpcy5qb2JMb2c9IiIsdGhpcy5tYWtlRGF0YVJlc3BvbnNlPSIiLHRoaXMubGluZXNPZkNvZGU9W10sdGhpcy5maWxlTmFtZT0iIix0aGlzLnByZWxvYWRlZEZpbGU9ITAsdGhpcy5leGVjdXRlU0FTRW5hYmxlZD0hMSx0aGlzLmNvbnRleHRzTG9hZGluZz0hMSx0aGlzLmNyZWF0ZURhdGFi''@;'; + put 'put ''YXNlTG9hZGluZz0hMSx0aGlzLmV4ZWN1dGluZ1NjcmlwdD0hMSx0aGlzLmRvd25sb2FkRmlsZUJ0bj0hMSx0aGlzLmlzVmFsaWRhdGluZz0hMSx0aGlzLmpzb25GaWxlPW51bGwsdGhpcy5pc1N1Ym1pdHRpbmdKc29uPSExLHRoaXMuaXNKc29uU3VibWl0dGVkPSExLHRoaXMudmFsaWRhdGlv''@;'; + put 'put ''blN0YXRlPSJub25lIn1uZ09uSW5pdCgpe31leGVjdXRhYmxlQ29udGV4dCgpe3JldHVybiBubyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7fSl9Y2xlYXJVcGxvYWRJbnB1dChoKXt0aGlzLmRlcGxveVNlcnZpY2UuY2xlYXJVcGxvYWRJbnB1dChoKX1vblNhc0ZpbGVDaGFuZ2Uo''@;'; + put 'put ''aCl7dGhpcy5wcmVsb2FkZWRGaWxlPSExO2xldCB2PWgudGFyZ2V0LmZpbGVzWzBdO3RoaXMuZmlsZU5hbWU9di5uYW1lO2xldCB5PW5ldyBGaWxlUmVhZGVyO3kub25sb2FkPSgpPT57eS5yZXN1bHQmJih0aGlzLmxpbmVzT2ZDb2RlPXkucmVzdWx0LnNwbGl0KCJcbiIpLHRoaXMubGluZXNP''@;'; + put 'put ''ZkNvZGU9dGhpcy5saW5lc09mQ29kZS5maWx0ZXIoQz0+IiIhPT1DJiZudWxsIT09QyksdGhpcy5leGVjdXRlU0FTRW5hYmxlZD0hMCx0aGlzLmFkZFByZWNvZGVMaW5lcygpKX0seS5yZWFkQXNUZXh0KHYpfW9uSnNvbkZpbGVDaGFuZ2UoaCl7cmV0dXJuIG5vKHRoaXMsdm9pZCAwLHZvaWQg''@;'; + put 'put ''MCxmdW5jdGlvbiooKXtsZXQgdj1oLnRhcmdldC5maWxlc1swXTt0aGlzLmpzb25GaWxlPXlpZWxkIHRoaXMuZGVwbG95U2VydmljZS5yZWFkRmlsZSh2KX0pfWFkZFByZWNvZGVMaW5lcygpe3RoaXMubGluZXNPZkNvZGUudW5zaGlmdChgJWxldCBjb250ZXh0PSR7dGhpcy5zZWxlY3RlZENv''@;'; + put 'put ''bnRleHR9O2AsYCVsZXQgYXBwTG9jPSR7dGhpcy5hcHBMb2N9O2AsYCVsZXQgYWRtaW49JHt0aGlzLnNlbGVjdGVkQWRtaW5Hcm91cH07YCxgJWxldCBkY3BhdGg9JHt0aGlzLmRjUGF0aH07YCl9ZG93bmxvYWRTYXNQcmVjb2RlRmlsZSgpe2xldCBoPXRoaXMubGluZXNPZkNvZGUuam9pbigi''@;'; + put 'put ''XG4iKSx2PXRoaXMuZmlsZU5hbWUuc3BsaXQoIi4iKVswXTt0aGlzLmRvd25sb2FkRmlsZShoLHYsInNhcyIpfWRvd25sb2FkRmlsZShoLHYseT0idHh0Iil7dGhpcy5kZXBsb3lTZXJ2aWNlLmRvd25sb2FkRmlsZShoLHYseSl9c2F2ZURjUGF0aCgpe2xvY2FsU3RvcmFnZS5zZXRJdGVtKCJk''@;'; + put 'put ''ZXBsb3lfZGNfbG9jIix0aGlzLmRjUGF0aCl9ZXhlY3V0ZUpzb24oKXt2YXIgaDtyZXR1cm4gbm8odGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe3RoaXMuaXNTdWJtaXR0aW5nSnNvbj0hMDt0cnl7eWllbGQgdGhpcy5zYXNKcy5kZXBsb3lTZXJ2aWNlUGFjayh0aGlzLmpzb25GaWxl''@;'; + put 'put ''LChudWxsPT09KGg9dGhpcy5kY0FkYXB0ZXJTZXR0aW5ncyl8fHZvaWQgMD09PWg/dm9pZCAwOmguYXBwTG9jKXx8IiIsdm9pZCAwLHZvaWQgMCwhMCksdGhpcy5pc0pzb25TdWJtaXR0ZWQ9ITB9Y2F0Y2godil7bGV0IHk9IiI7cmV0dXJuIHk9InN0cmluZyIhPXR5cGVvZiB2Lm1lc3NhZ2U/''@;'; + put 'put ''SlNPTi5zdHJpbmdpZnkodikucmVwbGFjZSgvXFwvZ20sIiIpOnYubWVzc2FnZSx2b2lkIHRoaXMuZXZlbnRTZXJ2aWNlLnNob3dJbmZvTW9kYWwoIkRlcGxveSBlcnJvciIsYEV4Y2VwdGlvbjogXG4gJHsiIiE9PXk/eTp2fWApfXRoaXMuaXNTdWJtaXR0aW5nSnNvbj0hMX0pfWV4ZWN1dGVT''@;'; + put 'put ''QVMoKXtyZXR1cm4gbm8odGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe3RoaXMuZXhlY3V0aW5nU2NyaXB0PSEwLHRoaXMuam9iTG9nPSIiLHRoaXMubWFrZURhdGFSZXNwb25zZT0iIjt0cnl7bGV0IGg9eWllbGQgdGhpcy5zYXNKcy5leGVjdXRlU2NyaXB0U0FTVml5YSh0aGlzLmZp''@;'; + put 'put ''bGVOYW1lLHRoaXMubGluZXNPZkNvZGUsdGhpcy5zZWxlY3RlZENvbnRleHQpO3RoaXMubG9nZ2VyU2VydmljZS5sb2coaCksInN0cmluZyI9PXR5cGVvZiBoLmxvZyYmKGgubG9nPUpTT04ucGFyc2UoaC5sb2cpKSwiZXJyb3IiPT09aC5qb2JTdGF0dXM/YWxlcnQoIkVycm9yISIpOnRoaXMu''@;'; + put 'put ''am9iTG9nPWgubG9nLml0ZW1zP2gubG9nLml0ZW1zLm1hcCh2PT52LmxpbmUpLmpvaW4oIlxuIik6SlNPTi5zdHJpbmdpZnkoaC5sb2cpLHRoaXMuZXhlY3V0aW5nU2NyaXB0PSExfWNhdGNoKGgpe3RoaXMuZXhlY3V0aW5nU2NyaXB0PSExfX0pfWNyZWF0ZURhdGFiYXNlKGg9ITApe3ZhciB2''@;'; + put 'put ''O2lmKGgpe2xldCBJPXRoaXMuc2FzU2VydmljZS5nZXRTYXNqc0NvbmZpZygpLnNlcnZlclVybCsiL1NBU0pvYkV4ZWN1dGlvbi8/X3Byb2dyYW09IisobnVsbD09PSh2PXRoaXMuZGNBZGFwdGVyU2V0dGluZ3MpfHx2b2lkIDA9PT12P3ZvaWQgMDp2LmFwcExvYyl8fCIvYWRtaW4vbWFrZWRh''@;'; + put 'put ''dGEmQURNSU49Iit0aGlzLnNlbGVjdGVkQWRtaW5Hcm91cCsiJkRDUEFUSD0iK3RoaXMuZGNQYXRoKyImX2RlYnVnPTEzMSI7d2luZG93Lm9wZW4oSSwiX2JsYW5rIil9ZWxzZSB0aGlzLmNyZWF0ZURhdGFiYXNlTG9hZGluZz0hMCx0aGlzLnNhc0pzLnJlcXVlc3QoInNlcnZpY2VzL2FkbWlu''@;'; + put 'put ''L21ha2VkYXRhIix7ZnJvbWpzOlt7QURNSU46dGhpcy5zZWxlY3RlZEFkbWluR3JvdXAsRENQQVRIOnRoaXMuZGNQYXRofV19LHt1c2VDb21wdXRlQXBpOiExLGNvbnRleHROYW1lOnRoaXMuc2FzSnNDb25maWcuY29udGV4dE5hbWUsZGVidWc6ITB9LCgpPT57dGhpcy5zYXNTZXJ2aWNlLnNo''@;'; + put 'put ''b3VsZExvZ2luLm5leHQoITApfSkudGhlbihJPT57dHJ5e3RoaXMubWFrZURhdGFSZXNwb25zZT1KU09OLnN0cmluZ2lmeShJKX1jYXRjaChqKXt0aGlzLm1ha2VEYXRhUmVzcG9uc2U9SX10aGlzLmNyZWF0ZURhdGFiYXNlTG9hZGluZz0hMX0pLmNhdGNoKEk9Pnt0aGlzLmNyZWF0ZURhdGFi''@;'; + put 'put ''YXNlTG9hZGluZz0hMTt0cnl7dGhpcy5tYWtlRGF0YVJlc3BvbnNlPUpTT04uc3RyaW5naWZ5KEkpfWNhdGNoKGope3RoaXMubWFrZURhdGFSZXNwb25zZT1JfX0pfW5hdmlnYXRlVG9Ib21lKCl7dGhpcy5vbk5hdmlnYXRlVG9Ib21lLmVtaXQoKX12YWxpZGF0ZURlcGxveSgpe3RoaXMuaXNW''@;'; + put 'put ''YWxpZGF0aW5nPSEwLHRoaXMuc2FzU2VydmljZS5yZXF1ZXN0KCJwdWJsaWMvc3RhcnR1cHNlcnZpY2UiLG51bGwpLnRoZW4oaD0+e3RoaXMubG9nZ2VyU2VydmljZS5sb2coaCksdGhpcy52YWxpZGF0aW9uU3RhdGU9aC5zYXNsaWJzPyJzdWNjZXNzIjoiZXJyb3IiLHRoaXMuaXNWYWxpZGF0''@;'; + put 'put ''aW5nPSExfSkuY2F0Y2goaD0+e3RoaXMuaXNWYWxpZGF0aW5nPSExLHRoaXMudmFsaWRhdGlvblN0YXRlPSJlcnJvciJ9KX1kZWxldGVLZXlzKCl7bG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oImRlcGxveV9kY19sb2MiKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBu''@;'; + put 'put ''ZXcoaHx8ZCkoS3QoZzIpLEt0KG11KSxLdChzYyksS3QoandlKSl9LGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQsc2VsZWN0b3JzOltbImFwcC1tYW51YWwtZGVwbG95Il1dLGlucHV0czp7c2FzSnM6InNhc0pzIixzYXNKc0NvbmZpZzoic2FzSnNDb25maWciLGRjQWRhcHRlclNldHRpbmdzOiJk''@;'; + put 'put ''Y0FkYXB0ZXJTZXR0aW5ncyJ9LG91dHB1dHM6e29uTmF2aWdhdGVUb0hvbWU6Im9uTmF2aWdhdGVUb0hvbWUifSxkZWNsczo5LHZhcnM6Myxjb25zdHM6W1sxLCJjYXJkLWhlYWRlciIsInBvc2l0aW9uLXJlbGF0aXZlIl0sWzEsImQtaW5saW5lLWJsb2NrIiwibWwtMTAiLCJtYi0xMCIsIm10''@;'; + put 'put ''LTAiXSxbMSwiYnRuIiwiYnRuLXByaW1hcnkiLCJjbGVhci1tZW1vcnktYnV0dG9uIiwicG9zaXRpb24tYWJzb2x1dGUiLDMsImNsaWNrIl0sWzEsImNhcmQtYmxvY2siXSxbImlkIiwibG9naW5Gb3JtIiwiY2xhc3MiLCJkLW5vbmUiLDQsIm5nSWYiXSxbNCwibmdJZiJdLFsiaWQiLCJsb2dp''@;'; + put 'put ''bkZvcm0iLDEsImQtbm9uZSJdLFsxLCJtYi0xMCJdLFsiZm9yIiwidXNlcm5hbWUiLDEsImNsci1jb250cm9sLWxhYmVsIl0sWzEsIm1iLTEwIiwiY2xyLWNvbnRyb2wtY29udGFpbmVyIl0sWzEsImNsci1pbnB1dC13cmFwcGVyIl0sWyJ0eXBlIiwidGV4dCIsImlkIiwidXNlcm5hbWUiLDEs''@;'; + put 'put ''ImNsci1pbnB1dCJdLFsiZm9yIiwicGFzc3dvcmQiLDEsImNsci1jb250cm9sLWxhYmVsIl0sWyJ0eXBlIiwicGFzc3dvcmQiLCJpZCIsInBhc3N3b3JkIiwxLCJjbHItaW5wdXQiXSxbImlkIiwibG9naW5CdG4iLDEsImJ0biIsImJ0bi1wcmltYXJ5IiwiZC1ub25lIl0sWzEsImNsci1mb3Jt''@;'; + put 'put ''LWNvbnRyb2wiXSxbImZvciIsInNlbGVjdC1mdWxsIiwxLCJjbHItY29udHJvbC1sYWJlbCJdLFsxLCJjbHItY29udHJvbC1jb250YWluZXIiXSxbMSwiY2xyLXNlbGVjdC13cmFwcGVyIl0sWyJuYW1lIiwic2VsZWN0ZWRBZG1pbkdyb3VwIiwiaWQiLCJhZG1pbkdyb3Vwc1NlbGVjdCIsMSwi''@;'; + put 'put ''Y2xyLXNlbGVjdCIsMywibmdNb2RlbCIsIm5nTW9kZWxPcHRpb25zIiwibmdNb2RlbENoYW5nZSJdLFszLCJ2YWx1ZSIsNCwibmdGb3IiLCJuZ0Zvck9mIl0sWyJuYW1lIiwic2VsZWN0ZWRDb250ZXh0IiwxLCJjbHItc2VsZWN0IiwzLCJuZ01vZGVsIiwibmdNb2RlbE9wdGlvbnMiLCJuZ01v''@;'; + put 'put ''ZGVsQ2hhbmdlIl0sWyJ0eXBlIiwiYnV0dG9uIiwiaWQiLCJjb250ZXh0cy1idG4iLDEsImJ0biIsImJ0bi1pY29uIiwzLCJjbGljayJdLFsic2hhcGUiLCJwbGF5Il0sWzEsImQtZmxleCJdLFsxLCJzcGlubmVyIiwic3Bpbm5lci1pbmxpbmUiLCJtci0xMCJdLFsiZm9yIiwiZGNsb2MiLDEs''@;'; + put 'put ''Im10LTIwIiwiY2xyLWNvbnRyb2wtbGFiZWwiXSxbIm5hbWUiLCJkY1BhdGgiLCJ0eXBlIiwidGV4dCIsImlkIiwiZGNsb2MiLDEsImNsci1pbnB1dCIsMywibmdNb2RlbCIsIm5nTW9kZWxPcHRpb25zIiwibmdNb2RlbENoYW5nZSIsImZvY3Vzb3V0Il0sWzEsIm10LTEwIl0sWzEsImQtZmxl''@;'; + put 'put ''eCIsImZsZXgtY29sdW1uIl0sWyJ0eXBlIiwiZmlsZSIsMywiY2xpY2siLCJjaGFuZ2UiXSxbMSwibXQtMjAiLCJkLWZsZXgiLCJhbGlnbi1pdGVtcy1jZW50ZXIiXSxbImlkIiwiIiwxLCJtdC0wIiwzLCJjbHJMb2FkaW5nIiwiY2xpY2siXSxbImNsYXNzIiwiYnRuIGJ0bi1zbSBidG4taWNv''@;'; + put 'put ''biBtaW4tdy0wIHctNDAiLDMsImNsaWNrIiw0LCJuZ0lmIl0sWyJpZCIsImRlcGxveSIsMSwibXQtMCIsMywiY2xyTG9hZGluZyIsImNsaWNrIl0sWzEsImJ0biIsImJ0bi1wcmltYXJ5IiwibXQtMTAiLDMsImNsckxvYWRpbmciLCJjbGljayJdLFszLCJ2YWx1ZSJdLFsxLCJidG4iLCJidG4t''@;'; + put 'put ''c20iLCJidG4taWNvbiIsIm1pbi13LTAiLCJ3LTQwIiwzLCJjbGljayJdLFsic2hhcGUiLCJkb3dubG9hZCJdLFsxLCJtYi0wIiwibXQtMTAiXSxbMSwiYnRuIiwiYnRuLXByaW1hcnkiLCJtdC0wIiwibXItMjAiLDMsImNsaWNrIl0sWyJjbGFzcyIsImxvZy13cmFwcGVyIiw0LCJuZ0lmIl0s''@;'; + put 'put ''WzEsImJ0biIsImJ0bi1wcmltYXJ5IiwibXQtMTUiLDMsImNsaWNrIl0sWyJjbGFzcyIsInZhbGlkYXRpb24tYmFyIiw0LCJuZ0lmIl0sWzEsImxvZy13cmFwcGVyIl0sWzEsInZhbGlkYXRpb24tYmFyIl0sWyJzaGFwZSIsImV4Y2xhbWF0aW9uLWNpcmNsZSIsMSwiaXMtZXJyb3IiXSxbInNo''@;'; + put 'put ''YXBlIiwiY2hlY2stY2lyY2xlIiwxLCJpcy1zdWNjZXNzIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGgsdil7MSZoJiYocnQoMCwiZGl2IiwwKSxZdCgxLCIgQ29uZmlndXJhdG9yICIpLHJ0KDIsInAiLDEpLFl0KDMpLGx0KCkscnQoNCwiYnV0dG9uIiwyKSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7''@;'; + put 'put ''cmV0dXJuIHYuZGVsZXRlS2V5cygpfSksWXQoNSwiIENsZWFyIG1lbW9yeSAiKSxsdCgpKCkscnQoNiwiZGl2IiwzKSxybig3LHlWZSwxNSwwLCJkaXYiLDQpLHJuKDgsTFZlLDQ5LDIyLCJuZy1jb250YWluZXIiLDUpLGx0KCkpLDImaCYmKHV0KDMpLEppKCJBcHAgTG9jYXRpb246ICIsdi5h''@;'; + put 'put ''cHBMb2MsIiIpLHV0KDQpLFR0KCJuZ0lmIix2Lm5lZWRzTG9naW4pLHV0KDEpLFR0KCJuZ0lmIiwhdi5uZWVkc0xvZ2luKSl9LGRlcGVuZGVuY2llczpbRXMsTm8scGcscTMsZWQsbTEsT2YseHMsZGcsVHMsTGMsd2wsZ28sdyxvdCxJV10sc3R5bGVzOlsiLmNsZWFyLW1lbW9yeS1idXR0b25b''@;'; + put 'put ''X25nY29udGVudC0lQ09NUCVde3JpZ2h0OjEwcHg7dG9wOjJweH0iXX0pLGR9KSgpO2Z1bmN0aW9uIFJWZShkLGcpezEmZCYmKEYwKDApLHJ0KDEsInNwYW4iLDIxKSxZdCgyLCIgTG9hZGluZy4uLiAiKSxsdCgpLHJ0KDMsInAiKSxZdCg0LCJEZXBsb3lpbmcuLi4iKSxsdCgpLEgwKCkpfWZ1''@;'; + put 'put ''bmN0aW9uIEJWZShkLGcpezEmZCYmQ3IoMCwiY2xyLWljb24iLDMyKX1mdW5jdGlvbiBQVmUoZCxnKXsxJmQmJkNyKDAsImNsci1pY29uIiwzMyl9ZnVuY3Rpb24gRlZlKGQsZyl7MSZkJiZDcigwLCJjbHItaWNvbiIsMzIpfWZ1bmN0aW9uIEhWZShkLGcpezEmZCYmQ3IoMCwiY2xyLWljb24i''@;'; + put 'put ''LDMzKX1mdW5jdGlvbiBOVmUoZCxnKXtpZigxJmQmJihydCgwLCJkaXYiLDI0KSxybigxLEZWZSwxLDAsImNsci1pY29uIiwyNSkscm4oMixIVmUsMSwwLCJjbHItaWNvbiIsMjYpLHJ0KDMsInAiKSxZdCg0LCJDcmVhdGUgZGF0YWJhc2UiKSxsdCgpKCkpLDImZCl7Y29uc3QgaD1KdCgzKTt1''@;'; + put 'put ''dCgxKSxUdCgibmdJZiIsaC5hdXRvRGVwbG95U3RhdHVzLnJ1bk1ha2VEYXRhKSx1dCgxKSxUdCgibmdJZiIsITE9PT1oLmF1dG9EZXBsb3lTdGF0dXMucnVuTWFrZURhdGEpfX1mdW5jdGlvbiBWVmUoZCxnKXsxJmQmJkNyKDAsImNsci1pY29uIiwzMyl9ZnVuY3Rpb24galZlKGQsZyl7aWYo''@;'; + put 'put ''MSZkKXtjb25zdCBoPWJpKCk7RjAoMCkscnQoMSwicCIsMjIpLFl0KDIsIkRvbmUiKSxsdCgpLENyKDMsImhyIiwyMykscnQoNCwiZGl2IiwyNCkscm4oNSxCVmUsMSwwLCJjbHItaWNvbiIsMjUpLHJuKDYsUFZlLDEsMCwiY2xyLWljb24iLDI2KSxydCg3LCJwIiksWXQoOCwiRGVwbG95IFNB''@;'; + put 'put ''UyBKb2JzIiksbHQoKSgpLHJuKDksTlZlLDUsMiwiZGl2IiwyNyksQ3IoMTAsImhyIiwyMykscnQoMTEsImRpdiIsMjgpKDEyLCJidXR0b24iLDI5KSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIGl0KGgpLGEoSnQoMikubmF2aWdhdGVUb0hvbWUoKSl9KSxybigxMyxWVmUsMSwwLCJj''@;'; + put 'put ''bHItaWNvbiIsMjYpLFl0KDE0LCIgTEFVTkNIIC8gQ09ORklHVVJFICIpLGx0KCkscnQoMTUsImJ1dHRvbiIsMzApLEduKCJjbGljayIsZnVuY3Rpb24oKXtpdChoKTtjb25zdCB5PUp0KDIpO3JldHVybiBhKHkuZG93bmxvYWRGaWxlKHkubWFrZURhdGFSZXNwb25zZSwiY3JlYXRlLWRhdGFi''@;'; + put 'put ''YXNlLWxvZyIsInR4dCIpKX0pLFl0KDE2LCIgRG93bmxvYWQgbG9nICIpLGx0KCkoKSxDcigxNywiaHIiLDIzKSxydCgxOCwiZGl2IiwyOCkoMTksImJ1dHRvbiIsMzEpLEduKCJjbGljayIsZnVuY3Rpb24oKXtpdChoKTtjb25zdCB5PUp0KDIpO3JldHVybiB5LmF1dG9kZXBsb3lpbmc9ITEs''@;'; + put 'put ''YSh5LmF1dG9kZXBsb3lEb25lPSExKX0pLFl0KDIwLCIgQ2xvc2UgIiksbHQoKSxydCgyMSwiYnV0dG9uIiwzMSksR24oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBpdChoKSxhKEp0KDIpLm9wZW5TYXNSZXF1ZXN0c01vZGFsKCkpfSksWXQoMjIsIiBTQVMgUmVxdWVzdHMgIiksbHQoKSgp''@;'; + put 'put ''LEgwKCl9aWYoMiZkKXtjb25zdCBoPUp0KDIpO3V0KDUpLFR0KCJuZ0lmIixoLmF1dG9EZXBsb3lTdGF0dXMuZGVwbG95U2VydmljZVBhY2spLHV0KDEpLFR0KCJuZ0lmIiwhaC5hdXRvRGVwbG95U3RhdHVzLmRlcGxveVNlcnZpY2VQYWNrKSx1dCgzKSxUdCgibmdJZiIsbnVsbCE9PWguYXV0''@;'; + put 'put ''b0RlcGxveVN0YXR1cy5ydW5NYWtlRGF0YSksdXQoNCksVHQoIm5nSWYiLCExPT09aC5hdXRvRGVwbG95U3RhdHVzLmRlcGxveVNlcnZpY2VQYWNrfHwhMT09PWguYXV0b0RlcGxveVN0YXR1cy5ydW5NYWtlRGF0YSl9fWZ1bmN0aW9uIFpWZShkLGcpe2lmKDEmZCYmKHJ0KDAsImRpdiIsMTgp''@;'; + put 'put ''KDEsImRpdiIsMTkpLHJuKDIsUlZlLDUsMCwibmctY29udGFpbmVyIiwyMCkscm4oMyxqVmUsMjMsNCwibmctY29udGFpbmVyIiwyMCksbHQoKSgpKSwyJmQpe2NvbnN0IGg9SnQoKTt1dCgyKSxUdCgibmdJZiIsIWguYXV0b2RlcGxveURvbmUpLHV0KDEpLFR0KCJuZ0lmIixoLmF1dG9kZXBs''@;'; + put 'put ''b3lEb25lKX19bGV0IHpWZT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgsdix5LEMpe3RoaXMuZXZlbnRTZXJ2aWNlPWgsdGhpcy5kZXBsb3lTZXJ2aWNlPXYsdGhpcy5zYXNTZXJ2aWNlPXksdGhpcy5sb2dnZXJTZXJ2aWNlPUMsdGhpcy5zYXNKc0NvbmZpZz1uZXcgUTMuU0FTanNDb25m''@;'; + put 'put ''aWcsdGhpcy5hcHBMb2M9IiIsdGhpcy5kY1BhdGg9IiIsdGhpcy5zZWxlY3RlZEFkbWluR3JvdXA9IiIsdGhpcy5vbk5hdmlnYXRlVG9Ib21lPW5ldyBhcix0aGlzLm1ha2VEYXRhUmVzcG9uc2U9IiIsdGhpcy5qc29uRmlsZT1udWxsLHRoaXMuYXV0b2RlcGxveWluZz0hMSx0aGlzLmF1dG9k''@;'; + put 'put ''ZXBsb3lEb25lPSExLHRoaXMucmVjcmVhdGVEYXRhYmFzZU1vZGFsPSExLHRoaXMuaXNTdWJtaXR0aW5nSnNvbj0hMSx0aGlzLmlzSnNvblN1Ym1pdHRlZD0hMSx0aGlzLnJlY3JlYXRlRGF0YWJhc2U9ITEsdGhpcy5jcmVhdGVEYXRhYmFzZUxvYWRpbmc9ITEsdGhpcy5hdXRvRGVwbG95U3Rh''@;'; + put 'put ''dHVzPXtkZXBsb3lTZXJ2aWNlUGFjazpudWxsLHJ1bk1ha2VEYXRhOm51bGx9fW5nT25Jbml0KCl7fWV4ZWN1dGVKc29uKCl7dmFyIGg7cmV0dXJuIG5vKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXt0aGlzLmF1dG9kZXBsb3lpbmc9ITAsdGhpcy5pc1N1Ym1pdHRpbmdKc29uPSEw''@;'; + put 'put ''O3RyeXt5aWVsZCB0aGlzLnNhc0pzLmRlcGxveVNlcnZpY2VQYWNrKHRoaXMuanNvbkZpbGUsbnVsbD09PShoPXRoaXMuZGNBZGFwdGVyU2V0dGluZ3MpfHx2b2lkIDA9PT1oP3ZvaWQgMDpoLmFwcExvYyx2b2lkIDAsdm9pZCAwLCEwKSx0aGlzLmF1dG9EZXBsb3lTdGF0dXMuZGVwbG95U2Vy''@;'; + put 'put ''dmljZVBhY2s9ITAsdGhpcy5pc0pzb25TdWJtaXR0ZWQ9ITB9Y2F0Y2godil7bGV0IHk9IiI7cmV0dXJuIHk9InN0cmluZyIhPXR5cGVvZiB2Lm1lc3NhZ2U/SlNPTi5zdHJpbmdpZnkodikucmVwbGFjZSgvXFwvZ20sIiIpOnYubWVzc2FnZSx0aGlzLmF1dG9EZXBsb3lTdGF0dXMuZGVwbG95''@;'; + put 'put ''U2VydmljZVBhY2s9ITEsdGhpcy5ldmVudFNlcnZpY2Uuc2hvd0luZm9Nb2RhbCgiRGVwbG95IGVycm9yIixgRXhjZXB0aW9uOiBcbiAkeyIiIT09eT95OnZ9YCksdGhpcy5hdXRvZGVwbG95aW5nPSExLHZvaWQodGhpcy5hdXRvZGVwbG95RG9uZT0hMSl9dGhpcy5pc1N1Ym1pdHRpbmdKc29u''@;'; + put 'put ''PSExLHRoaXMucmVjcmVhdGVEYXRhYmFzZT90aGlzLmNyZWF0ZURhdGFiYXNlKCk6dGhpcy5hdXRvZGVwbG95RG9uZT0hMH0pfWNyZWF0ZURhdGFiYXNlKCl7dGhpcy5zYXNKcy5yZXF1ZXN0KCJzZXJ2aWNlcy9hZG1pbi9tYWtlZGF0YSIse2Zyb21qczpbe0FETUlOOnRoaXMuc2VsZWN0ZWRB''@;'; + put 'put ''ZG1pbkdyb3VwLERDUEFUSDp0aGlzLmRjUGF0aH1dfSx7dXNlQ29tcHV0ZUFwaTohMSxjb250ZXh0TmFtZTp0aGlzLnNhc0pzQ29uZmlnLmNvbnRleHROYW1lLGRlYnVnOiEwfSwoKT0+e3RoaXMuc2FzU2VydmljZS5zaG91bGRMb2dpbi5uZXh0KCEwKX0pLnRoZW4oeT0+e3RoaXMuYXV0b2Rl''@;'; + put 'put ''cGxveURvbmU9ITA7dHJ5e3RoaXMubWFrZURhdGFSZXNwb25zZT1KU09OLnN0cmluZ2lmeSh5KX1jYXRjaChDKXt0aGlzLm1ha2VEYXRhUmVzcG9uc2U9eX10aGlzLmF1dG9EZXBsb3lTdGF0dXMucnVuTWFrZURhdGE9ISEoeS5yZXN1bHQmJnkucmVzdWx0Lmxlbmd0aD4wKX0pLmNhdGNoKHk9''@;'; + put 'put ''Pnt0aGlzLmF1dG9EZXBsb3lTdGF0dXMucnVuTWFrZURhdGE9ITEsdGhpcy5hdXRvZGVwbG95RG9uZT0hMDt0cnl7dGhpcy5tYWtlRGF0YVJlc3BvbnNlPUpTT04uc3RyaW5naWZ5KHkpfWNhdGNoKEMpe3RoaXMubWFrZURhdGFSZXNwb25zZT15fX0pfWRvd25sb2FkRmlsZShoLHYseT0idHh0''@;'; + put 'put ''Iil7dGhpcy5kZXBsb3lTZXJ2aWNlLmRvd25sb2FkRmlsZShoLHYseSl9b25Kc29uRmlsZUNoYW5nZShoKXtyZXR1cm4gbm8odGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe2xldCB2PWgudGFyZ2V0LmZpbGVzWzBdO3RoaXMuanNvbkZpbGU9eWllbGQgdGhpcy5kZXBsb3lTZXJ2aWNl''@;'; + put 'put ''LnJlYWRGaWxlKHYpfSl9cmVjcmVhdGVEYXRhYmFzZUNsaWNrZWQoaCl7ITA9PT1oLnRhcmdldC5jaGVja2VkJiYodGhpcy5yZWNyZWF0ZURhdGFiYXNlTW9kYWw9ITApfWNsZWFyVXBsb2FkSW5wdXQoaCl7dGhpcy5kZXBsb3lTZXJ2aWNlLmNsZWFyVXBsb2FkSW5wdXQoaCl9b3BlblNhc1Jl''@;'; + put 'put ''cXVlc3RzTW9kYWwoKXt0aGlzLmV2ZW50U2VydmljZS5vcGVuUmVxdWVzdHNNb2RhbCgpfW5hdmlnYXRlVG9Ib21lKCl7dGhpcy5vbk5hdmlnYXRlVG9Ib21lLmVtaXQoKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoS3QobXUpLEt0KGp3ZSksS3Qo''@;'; + put 'put ''ZzIpLEt0KHNjKSl9LGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQsc2VsZWN0b3JzOltbImFwcC1hdXRvbWF0aWMtZGVwbG95Il1dLGlucHV0czp7c2FzSnM6InNhc0pzIixzYXNKc0NvbmZpZzoic2FzSnNDb25maWciLGRjQWRhcHRlclNldHRpbmdzOiJkY0FkYXB0ZXJTZXR0aW5ncyIsYXBwTG9j''@;'; + put 'put ''OiJhcHBMb2MiLGRjUGF0aDoiZGNQYXRoIixzZWxlY3RlZEFkbWluR3JvdXA6InNlbGVjdGVkQWRtaW5Hcm91cCJ9LG91dHB1dHM6e29uTmF2aWdhdGVUb0hvbWU6Im9uTmF2aWdhdGVUb0hvbWUifSxkZWNsczo0Nix2YXJzOjEwLGNvbnN0czpbWyJjbGFzcyIsImF1dG8tZGVwbG95Iiw0LCJu''@;'; + put 'put ''Z0lmIl0sWzEsInRleHQtY2VudGVyIiwibXktMTUiXSxbImZvciIsImRjbG9jIiwxLCJtdC0yMCIsImNsci1jb250cm9sLWxhYmVsIl0sWzEsIm1iLTEwIiwiY2xyLWNvbnRyb2wtY29udGFpbmVyIl0sWzEsImNsci1pbnB1dC13cmFwcGVyIl0sWzEsIm10LTAiXSxbMSwiY2xyLWNoZWNrYm94''@;'; + put 'put ''LXdyYXBwZXIiXSxbInR5cGUiLCJjaGVja2JveCIsImlkIiwicmVjcmVhdGVkYi1jaGVja2JveCIsImNoZWNrZWQiLCIiLDEsImNsci1jaGVja2JveCIsMywibmdNb2RlbCIsIm5nTW9kZWxDaGFuZ2UiLCJjbGljayJdLFsiZm9yIiwicmVjcmVhdGVkYi1jaGVja2JveCJdLFsxLCJidG4tYXV0''@;'; + put 'put ''b2RlcGxveSIsImJ0biIsImJ0bi1wcmltYXJ5IiwiZC1pbmxpbmUtYmxvY2siLCJtci0xMCIsMywiZGlzYWJsZWQiLCJjbGljayJdLFsxLCJidG4tYXV0b2RlcGxveSIsImJ0biIsImJ0bi1wcmltYXJ5IiwiZC1pbmxpbmUtYmxvY2siLCJtci0xMCIsMywiY2xpY2siXSxbInR5cGUiLCJmaWxl''@;'; + put 'put ''IiwiaGlkZGVuIiwiIiwzLCJjbGljayIsImNoYW5nZSJdLFsidXBsb2FkSnNvbkF1dG8iLCIiXSxbMywiY2xyTW9kYWxPcGVuIiwiY2xyTW9kYWxDbG9zYWJsZSIsImNsck1vZGFsT3BlbkNoYW5nZSJdLFsxLCJtb2RhbC10aXRsZSJdLFsxLCJtb2RhbC1ib2R5Il0sWzEsIm1vZGFsLWZvb3Rl''@;'; + put 'put ''ciJdLFsidHlwZSIsImJ1dHRvbiIsMSwiYnRuIiwiYnRuLXNtIiwiYnRuLXByaW1hcnkiLDMsImNsaWNrIl0sWzEsImF1dG8tZGVwbG95Il0sWzEsInNwaW5uZXItYm94Il0sWzQsIm5nSWYiXSxbMSwic3Bpbm5lciIsInNwaW5uZXItbWQiXSxbMSwibS0wIiwiYWxpZ24tc2VsZi1zdGFydCJd''@;'; + put 'put ''LFsxLCJ3LTEwMCJdLFsxLCJkZXBsb3ktc3RhdHVzLXJvdyJdLFsiY2xhc3MiLCJkZXBsb3ktc3VjY2VzcyIsInNoYXBlIiwic3VjY2Vzcy1zdGFuZGFyZCIsNCwibmdJZiJdLFsiY2xhc3MiLCJkZXBsb3ktZXJyb3IiLCJzaGFwZSIsInRpbWVzLWNpcmNsZSIsNCwibmdJZiJdLFsiY2xhc3Mi''@;'; + put 'put ''LCJkZXBsb3ktc3RhdHVzLXJvdyIsNCwibmdJZiJdLFsxLCJidXR0b25zIl0sWzEsImJ0biIsImJ0bi1wcmltYXJ5IiwibXQtMTUiLCJtci0wIiwzLCJjbGljayJdLFsxLCJidG4iLCJidG4tcHJpbWFyeS1vdXRsaW5lIiwibXQtMTUiLCJtci0wIiwzLCJjbGljayJdLFsxLCJidG4iLCJidG4t''@;'; + put 'put ''cHJpbWFyeS1vdXRsaW5lIiwibXQtMTUiLCJtci0wIiwiYWxpZ24tc2VsZi1lbmQiLDMsImNsaWNrIl0sWyJzaGFwZSIsInN1Y2Nlc3Mtc3RhbmRhcmQiLDEsImRlcGxveS1zdWNjZXNzIl0sWyJzaGFwZSIsInRpbWVzLWNpcmNsZSIsMSwiZGVwbG95LWVycm9yIl1dLHRlbXBsYXRlOmZ1bmN0''@;'; + put 'put ''aW9uKGgsdil7aWYoMSZoKXtjb25zdCB5PWJpKCk7cm4oMCxaVmUsNCwyLCJkaXYiLDApLHJ0KDEsImg0IiwxKSxZdCgyLCJWaXlhIERlcGxveSIpLGx0KCksQ3IoMywiaHIiKSxydCg0LCJsYWJlbCIsMiksWXQoNSwiQXBwIExvYyIpLGx0KCkscnQoNiwiZGl2IiwzKSg3LCJkaXYiLDQpKDgs''@;'; + put 'put ''InAiLDUpLFl0KDkpLGx0KCkoKSgpLHJ0KDEwLCJsYWJlbCIsMiksWXQoMTEsIkRDIExvYyIpLGx0KCkscnQoMTIsImRpdiIsMykoMTMsImRpdiIsNCkoMTQsInAiLDUpLFl0KDE1KSxsdCgpKCkoKSxydCgxNiwibGFiZWwiLDIpLFl0KDE3LCJTQVMgQWRtaW4gZ3JvdXAiKSxsdCgpLHJ0KDE4''@;'; + put 'put ''LCJkaXYiLDMpKDE5LCJkaXYiLDQpKDIwLCJwIiw1KSxZdCgyMSksbHQoKSgpKCkscnQoMjIsImRpdiIsNikoMjMsImlucHV0Iiw3KSxHbigibmdNb2RlbENoYW5nZSIsZnVuY3Rpb24oSSl7cmV0dXJuIHYucmVjcmVhdGVEYXRhYmFzZT1JfSkoImNsaWNrIixmdW5jdGlvbihJKXtyZXR1cm4g''@;'; + put 'put ''di5yZWNyZWF0ZURhdGFiYXNlQ2xpY2tlZChJKX0pLGx0KCkscnQoMjQsImxhYmVsIiw4KSxZdCgyNSwiUmVjcmVhdGUgZGF0YWJhc2UiKSxsdCgpKCksQ3IoMjYsImhyIikscnQoMjcsImJ1dHRvbiIsOSksR24oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiB2LmV4ZWN1dGVKc29uKCl9KSxZ''@;'; + put 'put ''dCgyOCksbHQoKSxydCgyOSwiYnV0dG9uIiwxMCksR24oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBpdCh5KSxhKHlhKDMyKS5jbGljaygpKX0pLFl0KDMwLCIgVXBsb2FkIGRpZmZlcmVudCBmaWxlIHRvIGRlcGxveVxuIiksbHQoKSxydCgzMSwiaW5wdXQiLDExLDEyKSxHbigiY2xpY2si''@;'; + put 'put ''LGZ1bmN0aW9uKEkpe3JldHVybiB2LmNsZWFyVXBsb2FkSW5wdXQoSSl9KSgiY2hhbmdlIixmdW5jdGlvbihJKXtyZXR1cm4gdi5vbkpzb25GaWxlQ2hhbmdlKEkpfSksbHQoKSxydCgzMywiY2xyLW1vZGFsIiwxMyksR24oImNsck1vZGFsT3BlbkNoYW5nZSIsZnVuY3Rpb24oSSl7cmV0dXJu''@;'; + put 'put ''IHYucmVjcmVhdGVEYXRhYmFzZU1vZGFsPUl9KSxydCgzNCwiaDMiLDE0KSxZdCgzNSwiV2FybmluZyIpLGx0KCkscnQoMzYsImRpdiIsMTUpLFl0KDM3LCIgVGhpcyBhY3Rpb24gd2lsbCByZWNyZWF0ZSB0aGUgZGF0YWJhc2UgKGlmIGl0IGV4aXN0cykuIEZvciBhbiBpbml0aWFsIGRlcGxv''@;'; + put 'put ''eW1lbnQsIHRoaXMgaXMgZXhwZWN0ZWQuIElmIHRoaXMgaXMgYSByZS1kZXBsb3ltZW50LCB5b3Ugd2lsbCBsb3NlIGFueSBleGlzdGluZyB0YWJsZXMgaW4gIikscnQoMzgsInN0cm9uZyIpLFl0KDM5KSxsdCgpLFl0KDQwLCIuICIpLGx0KCkscnQoNDEsImRpdiIsMTYpKDQyLCJidXR0b24i''@;'; + put 'put ''LDE3KSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHYucmVjcmVhdGVEYXRhYmFzZU1vZGFsPSExLHYucmVjcmVhdGVEYXRhYmFzZT0hMX0pLFl0KDQzLCIgQ2FuY2VsICIpLGx0KCkscnQoNDQsImJ1dHRvbiIsMTcpLEduKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gdi5yZWNyZWF0''@;'; + put 'put ''ZURhdGFiYXNlTW9kYWw9ITEsdi5yZWNyZWF0ZURhdGFiYXNlPSEwfSksWXQoNDUsIiBPayAiKSxsdCgpKCkoKX0yJmgmJihUdCgibmdJZiIsdi5hdXRvZGVwbG95aW5nKSx1dCg5KSxqaSh2LmFwcExvYyksdXQoNiksamkodi5kY1BhdGgpLHV0KDYpLGppKHYuc2VsZWN0ZWRBZG1pbkdyb3Vw''@;'; + put 'put ''KSx1dCgyKSxUdCgibmdNb2RlbCIsdi5yZWNyZWF0ZURhdGFiYXNlKSx1dCg0KSxUdCgiZGlzYWJsZWQiLCF2Lmpzb25GaWxlKSx1dCgxKSxKaSgiIERlcGxveSAiLHYuanNvbkZpbGU/IiI6Iihqc29uIGZpbGUgaXMgbm90IGF2YWlsYWJsZSkiLCJcbiIpLHV0KDUpLFR0KCJjbHJNb2RhbE9w''@;'; + put 'put ''ZW4iLHYucmVjcmVhdGVEYXRhYmFzZU1vZGFsKSgiY2xyTW9kYWxDbG9zYWJsZSIsITEpLHV0KDYpLGppKHYuZGNQYXRoKSl9LGRlcGVuZGVuY2llczpbTm8sSWYseHMsVHMsd2wsb2QsYWQsb3RdLHN0eWxlczpbIi5hdXRvLWRlcGxveVtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4''@;'; + put 'put ''O2p1c3RpZnktY29udGVudDpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO3Bvc2l0aW9uOmZpeGVkO2xlZnQ6MDtyaWdodDowO3RvcDowO2JvdHRvbTowO2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuNCk7ei1pbmRleDoxMDB9LnNwaW5uZXItYm94W19uZ2NvbnRlbnQtJUNPTVAlXXt3aWR0aDo0''@;'; + put 'put ''MDBweDtwYWRkaW5nOjIwcHg7Ym9yZGVyLXJhZGl1czozcHg7YmFja2dyb3VuZDojZmZmO2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Ym94LXNoYWRvdzoxcHggMXB4IDhweCAjMDAwMDAwODJ9LnNw''@;'; + put 'put ''aW5uZXItYm94W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5idXR0b25zW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47d2lkdGg6MTAwJX0uZGVwbG95LXN0YXR1cy1yb3dbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDth''@;'; + put 'put ''bGlnbi1pdGVtczpjZW50ZXI7YWxpZ24tc2VsZjpmbGV4LXN0YXJ0fS5kZXBsb3ktc3RhdHVzLXJvd1tfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW46MCAwIDAgMTBweH0uZGVwbG95LXN1Y2Nlc3NbX25nY29udGVudC0lQ09NUCVde2NvbG9yOiM2ZWNm''@;'; + put 'put ''NDR9LmRlcGxveS1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Y29sb3I6I2U3NGMzY30uZGVwbG95LXVuZGV0ZXJtaW5hdGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjojY2FjYWNhfWhyW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXI6MDtib3JkZXItYm90dG9tOjFweCBzb2xpZCByZ2Jh''@;'; + put 'put ''KDAsMCwwLC4yNzA1ODgyMzUzKX0iXX0pLGR9KSgpO2Z1bmN0aW9uIEdWZShkLGcpezEmZCYmKHJ0KDAsImRpdiIsMTUpLENyKDEsInByb2dyZXNzIiksbHQoKSl9ZnVuY3Rpb24gV1ZlKGQsZyl7aWYoMSZkJiYocnQoMCwib3B0aW9uIiwxNiksWXQoMSksbHQoKSksMiZkKXtjb25zdCBoPWcu''@;'; + put 'put ''JGltcGxpY2l0O1R0KCJ2YWx1ZSIsaC5HUk9VUE5BTUUpLHV0KDEpLEZoKCIgIixoLkdST1VQTkFNRSwiIC0gIixoLkdST1VQREVTQywiICIpfX1sZXQgWVZlPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2KXt0aGlzLnNhc1NlcnZpY2U9aCx0aGlzLnNhc2pzU2VydmljZT12LHRoaXMu''@;'; + put 'put ''c2FzSnNDb25maWc9bmV3IFEzLlNBU2pzQ29uZmlnLHRoaXMub25OYXZpZ2F0ZVRvSG9tZT1uZXcgYXIsdGhpcy5kY0RpcmVjdG9yeT0iIix0aGlzLmRjQWRtaW5Hcm91cD0iRENERUZBVUxUIix0aGlzLk1FVEFQRVJTT049Im4vYSIsdGhpcy5NRVRBVVNFUj0ibi9hIix0aGlzLlNZU1VTRVJJ''@;'; + put 'put ''RD0ibi9hIix0aGlzLlNZU0hPU1ROQU1FPSJuL2EiLHRoaXMuU1lTVkxPTkc9Im4vYSIsdGhpcy5kY0FkbWluR3JvdXBMaXN0PVtdLHRoaXMubG9hZGluZz0hMSx0aGlzLnNob3dMb2dvdXQ9ITEsdGhpcy50bXBEaXJlY3Rvcmllcz17bGludXg6Ii90bXAvRGF0YUNvbnRyb2xsZXIiLHdpbmRv''@;'; + put 'put ''d3M6IkM6XFxEYXRhQ29udHJvbGxlciJ9fW5nT25Jbml0KCl7dGhpcy5nZXRVc2VyR3JvdXBzKCksdGhpcy5nZXRTZXJ2ZXJJbmZvKCl9Z2V0U2VydmVySW5mbygpe3RoaXMuc2FzanNTZXJ2aWNlLmdldFNlcnZlckluZm8oKS5zdWJzY3JpYmUoaD0+eyJkZXNrdG9wIiE9PWgubW9kZSYmKHRo''@;'; + put 'put ''aXMuc2hvd0xvZ291dD0hMCl9KX1nZXRVc2VyR3JvdXBzKCl7dGhpcy5sb2FkaW5nPSEwLHRoaXMuc2FzU2VydmljZS5yZXF1ZXN0KCJ1c2VybmF2L3VzZXJncm91cHNieW1lbWJlciIsbnVsbCkudGhlbihoPT57dGhpcy5NRVRBUEVSU09OPWguTUZfR0VUVVNFUix0aGlzLlNZU1VTRVJJRD1o''@;'; + put 'put ''LlNZU1VTRVJJRCx0aGlzLlNZU0hPU1ROQU1FPWguU1lTSE9TVE5BTUUsdGhpcy5TWVNWTE9ORz1oLlNZU1ZMT05HLHRoaXMuZGNEaXJlY3Rvcnk9dGhpcy50bXBEaXJlY3Rvcmllc1tbIkwiLCJIIiwiQSIsIlMiXS5pbmNsdWRlcyhoLlNZU1NDUEwuc3Vic3RyaW5nKDAsMSkpPyJsaW51eCI6''@;'; + put 'put ''IndpbmRvd3MiXSx0aGlzLmRjQWRtaW5Hcm91cExpc3Q9aC5ncm91cHMsdGhpcy5kY0FkbWluR3JvdXA9dGhpcy5kY0FkbWluR3JvdXBMaXN0WzBdLkdST1VQTkFNRSx0aGlzLmxvYWRpbmc9ITF9LGg9Pnt0aGlzLmxvYWRpbmc9ITF9KX1tYWtlRGF0YSgpe2xldCB2PXRoaXMuc2FzU2Vydmlj''@;'; + put 'put ''ZS5nZXRFeGVjdXRpb25QYXRoKCk7Y29uc3QgeT10aGlzLnNhc0pzQ29uZmlnLmFwcExvYztsZXQgQz10aGlzLnNhc0pzQ29uZmlnLnNlcnZlclVybCxJPXRoaXMuZGNEaXJlY3Rvcnk7dGhpcy5zYXNKc0NvbmZpZy5zZXJ2ZXJUeXBlPT09SHUuRC5TYXNqcz90aGlzLnNhc1NlcnZpY2Uuc2Fz''@;'; + put 'put ''anNNYWtlZGF0YUNoZWNraW5nKCkudGhlbih1ZT0+e3VlJiZsb2NhdGlvbi5yZWxvYWQoKX0pOnRoaXMuc2FzSnNDb25maWcuc2VydmVyVHlwZT09PUh1LkQuU2FzOSYmKEM9IiIsdj13aW5kb3cubG9jYXRpb24ub3JpZ2luK3YrIi8iLEk9ZW5jb2RlVVJJQ29tcG9uZW50KHRoaXMuZGNEaXJl''@;'; + put 'put ''Y3RvcnkpKSx3aW5kb3cub3BlbihgJHtDfHwiIn0ke3Z9P19wcm9ncmFtPSR7eX0vc2VydmljZXMvYWRtaW4vbWFrZWRhdGEmYWRtaW49JHt0aGlzLmRjQWRtaW5Hcm91cH0mcGF0aD0ke0l9IGAsIl9ibGFuayIpfWxvZ291dCgpe3RoaXMuc2FzU2VydmljZS5sb2dvdXQoKX19cmV0dXJuIGQu''@;'; + put 'put ''XHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoS3QoZzIpLEt0KGlRKSl9LGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQsc2VsZWN0b3JzOltbImFwcC1zYXNqcy1jb25maWd1cmF0b3IiXV0saW5wdXRzOntzYXNKczoic2FzSnMiLHNhc0pzQ29uZmlnOiJzYXNKc0NvbmZpZyIs''@;'; + put 'put ''ZGNBZGFwdGVyU2V0dGluZ3M6ImRjQWRhcHRlclNldHRpbmdzIn0sb3V0cHV0czp7b25OYXZpZ2F0ZVRvSG9tZToib25OYXZpZ2F0ZVRvSG9tZSJ9LGRlY2xzOjQxLHZhcnM6OSxjb25zdHM6W1siY2xhc3MiLCJ0aGluUHJvZ3Jlc3MgcHJvZ3Jlc1N0YXRpYyBwcm9ncmVzcyBsb29wIiw0LCJu''@;'; + put 'put ''Z0lmIl0sWzEsInRleHQtY2VudGVyIiwibXktMTUiXSxbMSwibGlnaHQiXSxbMSwibS0wIl0sWzEsIm0tMCIsIm10LTEwIl0sWzEsIm10LTIwIiwiY2xyLWNvbnRyb2wtbGFiZWwiXSxbMSwibWItMTAiLCJjbHItY29udHJvbC1jb250YWluZXIiXSxbMSwiY2xyLWlucHV0LXdyYXBwZXIiXSxb''@;'; + put 'put ''InBsYWNlaG9sZGVyIiwiVHlwZSBpbiBkaXJlY3RvcnkiLDEsImNsci1pbnB1dCIsMywibmdNb2RlbCIsIm5nTW9kZWxDaGFuZ2UiXSxbMSwibWItMTAiLCJtdC0wIiwidy01MHZ3Il0sWyJjbHJTZWxlY3QiLCIiLDMsIm5nTW9kZWwiLCJuZ01vZGVsQ2hhbmdlIl0sWzMsInZhbHVlIiw0LCJu''@;'; + put 'put ''Z0ZvciIsIm5nRm9yT2YiXSxbMSwiY2xyLWZsZXgiXSxbMSwiYnRuIiwiYnRuLXN1Y2Nlc3MiLCJtdC0xNSIsInRleHQtY2VudGVyIiwzLCJjbGljayJdLFsxLCJjYXJkLXRleHQiLCJwYi0xMCJdLFsxLCJ0aGluUHJvZ3Jlc3MiLCJwcm9ncmVzU3RhdGljIiwicHJvZ3Jlc3MiLCJsb29wIl0s''@;'; + put 'put ''WzMsInZhbHVlIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGgsdil7MSZoJiYocm4oMCxHVmUsMiwwLCJkaXYiLDApLHJ0KDEsImg0IiwxKSxZdCgyLCJTYXNqcyBEZXBsb3kiKSxsdCgpLENyKDMsImhyIiwyKSxydCg0LCJwIiwzKSxZdCg1LCIgVG8gY29uZmlndXJlIERhdGEgQ29udHJvbGxlciBm''@;'; + put 'put ''b3IgU0FTXHhhOSwgcGxlYXNlIHByb3ZpZGUgdGhlIGZvbGxvd2luZyBkZXRhaWxzOlxuIiksbHQoKSxydCg2LCJwIiw0KSxZdCg3LCIgUGxlYXNlIHNwZWNpZnkgYSBwaHlzaWNhbCBkaXJlY3RvcnkgYmVsb3csIHRvIHdoaWNoIHVzZXIgIikscnQoOCwic3Ryb25nIiksWXQoOSksbHQoKSxZ''@;'; + put 'put ''dCgxMCwiIGNhbiB3cml0ZSwgb24gYmVoYWxmIG9mIERhdGEgQ29udHJvbGxlcjpcbiIpLGx0KCkscnQoMTEsImxhYmVsIiw1KSxZdCgxMiwiREMgRGlyZWN0b3J5IiksbHQoKSxydCgxMywiZGl2Iiw2KSgxNCwiZGl2Iiw3KSgxNSwiaW5wdXQiLDgpLEduKCJuZ01vZGVsQ2hhbmdlIixmdW5j''@;'; + put 'put ''dGlvbihDKXtyZXR1cm4gdi5kY0RpcmVjdG9yeT1DfSksbHQoKSgpKCkscnQoMTYsInAiLDQpLFl0KDE3LCIgQmVsb3cgYXJlIHRoZSBsaXN0IG9mIGdyb3VwcyB0byB3aGljaCB5b3UgYmVsb25nLiBUaGUgZ3JvdXAgeW91IHNlbGVjdCB3aWxsIGJlY29tZSB0aGUgRGF0YSBDb250cm9sbGVy''@;'; + put 'put ''IEFkbWluIEdyb3VwLCBhbmQgZXZlcnlvbmUgaW4gaXQgd2lsbCBoYXZlIHVucmVzdHJpY3RlZCBhY2Nlc3MgdG8gRGF0YSBDb250cm9sbGVyLlxuIiksbHQoKSxydCgxOCwibGFiZWwiLDUpLFl0KDE5LCJEYXRhIENvbnRyb2xsZXIgQWRtaW4gZ3JvdXAiKSxsdCgpLHJ0KDIwLCJjbHItc2Vs''@;'; + put 'put ''ZWN0LWNvbnRhaW5lciIsOSkoMjEsInNlbGVjdCIsMTApLEduKCJuZ01vZGVsQ2hhbmdlIixmdW5jdGlvbihDKXtyZXR1cm4gdi5kY0FkbWluR3JvdXA9Q30pLHJuKDIyLFdWZSwyLDMsIm9wdGlvbiIsMTEpLGx0KCkoKSxydCgyMywicCIsNCksWXQoMjQsIiBOb3csIGNyZWF0ZSB0aGUgdGFy''@;'; + put 'put ''Z2V0IGRpcmVjdG9yeSBhbmQgZGVwbG95IHRoZSBjb250cm9sIGxpYnJhcnkgdXNpbmcgdGhlIGFkbWluIGdyb3VwIHNlbGVjdGVkIGFib3ZlOlxuIiksbHQoKSxydCgyNSwiZGl2IiwxMikoMjYsImJ1dHRvbiIsMTMpLEduKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gdi5tYWtlRGF0YSgp''@;'; + put 'put ''fSksWXQoMjcsIiBTVUJNSVQgIiksbHQoKSgpLENyKDI4LCJociIsMikscnQoMjksImRpdiIsMTQpKDMwLCJwIiksWXQoMzEsIllvdSBhcmUgY29ubmVjdGVkIHdpdGggdGhlIGZvbGxvd2luZyBjcmVkZW50aWFsczoiKSxsdCgpLHJ0KDMyLCJ1bCIpKDMzLCJsaSIpLFl0KDM0KSxsdCgpLHJ0''@;'; + put 'put ''KDM1LCJsaSIpLFl0KDM2KSxsdCgpLHJ0KDM3LCJsaSIpLFl0KDM4KSxsdCgpLHJ0KDM5LCJsaSIpLFl0KDQwKSxsdCgpKCkoKSksMiZoJiYoVHQoIm5nSWYiLHYubG9hZGluZyksdXQoOSksamkodi5TWVNVU0VSSUQpLHV0KDYpLFR0KCJuZ01vZGVsIix2LmRjRGlyZWN0b3J5KSx1dCg2KSxU''@;'; + put 'put ''dCgibmdNb2RlbCIsdi5kY0FkbWluR3JvdXApLHV0KDEpLFR0KCJuZ0Zvck9mIix2LmRjQWRtaW5Hcm91cExpc3QpLHV0KDEyKSxKaSgiTUVUQVBFUlNPTjogIix2Lk1FVEFQRVJTT04sIiIpLHV0KDIpLEppKCJTWVNVU0VSSUQ6ICIsdi5TWVNVU0VSSUQsIiIpLHV0KDIpLEppKCJTWVNIT1NU''@;'; + put 'put ''TkFNRTogIix2LlNZU0hPU1ROQU1FLCIiKSx1dCgyKSxKaSgiU1lTVkxPTkc6ICIsdi5TWVNWTE9ORywiIikpfSxkZXBlbmRlbmNpZXM6W0VzLE5vLHEzLGVkLG0xLE9mLHhzLFRzLG90LGlaLHJaXSxzdHlsZXM6WyIuY2xyLWNvbnRyb2wtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXt3''@;'; + put 'put ''aWR0aDo1MHZ3fS5jbHItaW5wdXQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0sIC5jbHItaW5wdXQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICBpbnB1dFtfbmdjb250ZW50LSVDT01QJV17d2lkdGg6MTAwJX0udGhpblByb2dyZXNzW19uZ2NvbnRlbnQtJUNPTVAlXXtsZWZ0OjBw''@;'; + put 'put ''eDtyaWdodDowO3dpZHRoOnVuc2V0O2hlaWdodDoxcHg7bWFyZ2luLXRvcDowIWltcG9ydGFudH0udGhpblByb2dyZXNzW19uZ2NvbnRlbnQtJUNPTVAlXTphZnRlcnt0b3A6MH0iXX0pLGR9KSgpO2Z1bmN0aW9uIFVWZShkLGcpe2lmKDEmZCl7Y29uc3QgaD1iaSgpO3J0KDAsImRpdiIsNCko''@;'; + put 'put ''MSwiZGl2Iiw1KSxZdCgyLCJUZXJtcyBhbmQgQ29uZGl0aW9ucyIpLGx0KCkscnQoMywiZGl2Iiw2KSg0LCJkaXYiLDcpKDUsInAiKSxZdCg2LCIgVGhlIERlbW8gdmVyc2lvbiBvZiBEYXRhIENvbnRyb2xsZXIgaXMgZnJlZSBmb3IgRVZBTFVBVElPTiBwdXJwb3NlcyBvbmx5LiBCZWZvcmUg''@;'; + put 'put ''cHJvY2VlZGluZyB3aXRoIGNvbmZpZ3VyYXRpb24sIHBsZWFzZSBjb25maXJtIHRoYXQgeW91IGhhdmUgcmVhZCwgdW5kZXJzdG9vZCwgYW5kIGFncmVlZCB0byB0aGUgIikscnQoNywiYSIsOCksWXQoOCwiRGF0YSBDb250cm9sbGVyIGZvciBTQVNceGE5IEV2YWx1YXRpb24gQWdyZWVtZW50''@;'; + put 'put ''IiksbHQoKSxZdCg5LCIuICIpLGx0KCkoKSxDcigxMCwiaHIiLDkpLHJ0KDExLCJkaXYiLDEwKSgxMiwiaW5wdXQiLDExKSxHbigiY2hhbmdlIixmdW5jdGlvbigpe3JldHVybiBpdChoKSxhKEp0KCkudGVybXNBZ3JlZUNoYW5nZSgpKX0pLGx0KCkscnQoMTMsImxhYmVsIiwxMiksWXQoMTQs''@;'; + put 'put ''IkkgaGF2ZSByZWFkIGFuZCBhZ3JlZSB0byB0aGUgdGVybXMgb2YgdGhlICIpLHJ0KDE1LCJhIiw4KSxZdCgxNiwiRGF0YSBDb250cm9sbGVyIGZvciBTQVNceGE5IEV2YWx1YXRpb24gQWdyZWVtZW50IiksbHQoKSgpKCkoKSgpfX1mdW5jdGlvbiBRVmUoZCxnKXtpZigxJmQpe2NvbnN0IGg9''@;'; + put 'put ''YmkoKTtydCgwLCJkaXYiLDE3KSgxLCJhcHAtYXV0b21hdGljLWRlcGxveSIsMTgpLEduKCJvbk5hdmlnYXRlVG9Ib21lIixmdW5jdGlvbigpe3JldHVybiBpdChoKSxhKEp0KDMpLm9uTmF2aWdhdGVUb0hvbWUoKSl9KSxsdCgpKCl9aWYoMiZkKXtjb25zdCBoPUp0KDMpO3V0KDEpLFR0KCJz''@;'; + put 'put ''YXNKcyIsaC5zYXNKcykoInNhc0pzQ29uZmlnIixoLnNhc0pzQ29uZmlnKSgiZGNBZGFwdGVyU2V0dGluZ3MiLGguZGNBZGFwdGVyU2V0dGluZ3MpKCJhcHBMb2MiLGguYXBwTG9jKSgiZGNQYXRoIixoLmRjUGF0aCkoInNlbGVjdGVkQWRtaW5Hcm91cCIsaC5zZWxlY3RlZEFkbWluR3JvdXAp''@;'; + put 'put ''fX1mdW5jdGlvbiBKVmUoZCxnKXtpZigxJmQpe2NvbnN0IGg9YmkoKTtydCgwLCJkaXYiLDE5KSgxLCJhcHAtbWFudWFsLWRlcGxveSIsMjApLEduKCJvbk5hdmlnYXRlVG9Ib21lIixmdW5jdGlvbigpe3JldHVybiBpdChoKSxhKEp0KDMpLm9uTmF2aWdhdGVUb0hvbWUoKSl9KSxsdCgpKCl9''@;'; + put 'put ''aWYoMiZkKXtjb25zdCBoPUp0KDMpO3V0KDEpLFR0KCJzYXNKcyIsaC5zYXNKcykoInNhc0pzQ29uZmlnIixoLnNhc0pzQ29uZmlnKSgiZGNBZGFwdGVyU2V0dGluZ3MiLGguZGNBZGFwdGVyU2V0dGluZ3MpfX1mdW5jdGlvbiBYVmUoZCxnKXtpZigxJmQmJihGMCgwKSxybigxLFFWZSwyLDYs''@;'; + put 'put ''ImRpdiIsMTUpLHJuKDIsSlZlLDIsMywiZGl2IiwxNiksSDAoKSksMiZkKXtjb25zdCBoPUp0KDIpO3V0KDEpLFR0KCJuZ0lmIixoLmF1dG9kZXBsb3kpLHV0KDEpLFR0KCJuZ0lmIiwhaC5hdXRvZGVwbG95KX19ZnVuY3Rpb24gS1ZlKGQsZyl7aWYoMSZkKXtjb25zdCBoPWJpKCk7RjAoMCks''@;'; + put 'put ''cnQoMSwiZGl2IiwxNykoMiwiYXBwLXNhc2pzLWNvbmZpZ3VyYXRvciIsMjApLEduKCJvbk5hdmlnYXRlVG9Ib21lIixmdW5jdGlvbigpe3JldHVybiBpdChoKSxhKEp0KDIpLm9uTmF2aWdhdGVUb0hvbWUoKSl9KSxsdCgpKCksSDAoKX1pZigyJmQpe2NvbnN0IGg9SnQoMik7dXQoMiksVHQo''@;'; + put 'put ''InNhc0pzIixoLnNhc0pzKSgic2FzSnNDb25maWciLGguc2FzSnNDb25maWcpKCJkY0FkYXB0ZXJTZXR0aW5ncyIsaC5kY0FkYXB0ZXJTZXR0aW5ncyl9fWZ1bmN0aW9uICRWZShkLGcpe2lmKDEmZCl7Y29uc3QgaD1iaSgpO0YwKDApLHJ0KDEsImRpdiIsMTcpKDIsImFwcC1zYXNqcy1jb25m''@;'; + put 'put ''aWd1cmF0b3IiLDIwKSxHbigib25OYXZpZ2F0ZVRvSG9tZSIsZnVuY3Rpb24oKXtyZXR1cm4gaXQoaCksYShKdCgyKS5vbk5hdmlnYXRlVG9Ib21lKCkpfSksbHQoKSgpLEgwKCl9aWYoMiZkKXtjb25zdCBoPUp0KDIpO3V0KDIpLFR0KCJzYXNKcyIsaC5zYXNKcykoInNhc0pzQ29uZmlnIixo''@;'; + put 'put ''LnNhc0pzQ29uZmlnKSgiZGNBZGFwdGVyU2V0dGluZ3MiLGguZGNBZGFwdGVyU2V0dGluZ3MpfX1mdW5jdGlvbiBxVmUoZCxnKXtpZigxJmQmJihGMCgwLDEzKSxybigxLFhWZSwzLDIsIm5nLWNvbnRhaW5lciIsMTQpLHJuKDIsS1ZlLDMsMywibmctY29udGFpbmVyIiwxNCkscm4oMywkVmUs''@;'; + put 'put ''MywzLCJuZy1jb250YWluZXIiLDE0KSxIMCgpKSwyJmQpe2NvbnN0IGg9SnQoKTtUdCgibmdTd2l0Y2giLCEwKSx1dCgxKSxUdCgibmdTd2l0Y2hDYXNlIixoLnNhc0pzQ29uZmlnLnNlcnZlclR5cGU9PT1oLlNlcnZlclR5cGUuU2FzVml5YSksdXQoMSksVHQoIm5nU3dpdGNoQ2FzZSIsaC5z''@;'; + put 'put ''YXNKc0NvbmZpZy5zZXJ2ZXJUeXBlPT09aC5TZXJ2ZXJUeXBlLlNhc2pzKSx1dCgxKSxUdCgibmdTd2l0Y2hDYXNlIixoLnNhc0pzQ29uZmlnLnNlcnZlclR5cGU9PT1oLlNlcnZlclR5cGUuU2FzOSl9fWxldCBad2U9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYseSxDKXt2YXIgSTt0''@;'; + put 'put ''aGlzLmFwcFN0b3JlU2VydmljZT1oLHRoaXMuc2FzU2VydmljZT12LHRoaXMubG9nZ2VyU2VydmljZT15LHRoaXMucm91dGVyPUMsdGhpcy5zdGVwPTAsdGhpcy5hZG1pbkdyb3Vwcz1bXSx0aGlzLmNsaWVudF9pZD0iIix0aGlzLmNsaWVudF9zZWNyZXQ9IiIsdGhpcy5hcHBMb2M9IiIsdGhp''@;'; + put 'put ''cy5kY1BhdGg9IiIsdGhpcy5zZWxlY3RlZEFkbWluR3JvdXA9IiIsdGhpcy5hdXRvZGVwbG95PSEwLHRoaXMuanNvbkZpbGU9bnVsbCx0aGlzLnNhc0pzQ29uZmlnPW5ldyBRMy5TQVNqc0NvbmZpZyx0aGlzLlNlcnZlclR5cGU9SHUuRCx0aGlzLmRjQWRhcHRlclNldHRpbmdzPXRoaXMuYXBw''@;'; + put 'put ''U3RvcmVTZXJ2aWNlLmdldERjQWRhcHRlclNldHRpbmdzKCksdGhpcy5yb3V0ZXIudXJsLmluY2x1ZGVzKCJtYW51YWxkZXBsb3kiKSYmKHRoaXMuYXV0b2RlcGxveT0hMSksdGhpcy5zYXNKcz10aGlzLnNhc1NlcnZpY2UuZ2V0U2FzanNJbnN0YW5jZSgpLHRoaXMuc2FzSnNDb25maWc9dGhp''@;'; + put 'put ''cy5zYXNTZXJ2aWNlLmdldFNhc2pzQ29uZmlnKCksdGhpcy5hcHBMb2M9KG51bGw9PT0oST10aGlzLmRjQWRhcHRlclNldHRpbmdzKXx8dm9pZCAwPT09ST92b2lkIDA6SS5hcHBMb2MpfHwiIix0aGlzLmNsaWVudF9pZD1sb2NhbFN0b3JhZ2UuZ2V0SXRlbSgiZGVwbG95X2NsaWVudF9pZCIp''@;'; + put 'put ''fHwiIix0aGlzLmNsaWVudF9zZWNyZXQ9bG9jYWxTdG9yYWdlLmdldEl0ZW0oImRlcGxveV9zZWNyZXRfa2V5Iil8fCIiLHRoaXMuZGNQYXRoPWxvY2FsU3RvcmFnZS5nZXRJdGVtKCJkZXBsb3lfZGNfbG9jIil8fCIifW5nT25Jbml0KCl7dGhpcy5zYXNKc0NvbmZpZy5zZXJ2ZXJUeXBlPT09''@;'; + put 'put ''SHUuRC5TYXNWaXlhJiZmZXRjaCgic2FzYnVpbGQvdml5YS5qc29uIikudGhlbihoPT5oLnRleHQoKSkudGhlbihoPT57bGV0IHY9bnVsbDt0cnl7dj1KU09OLnBhcnNlKGgpfWNhdGNoKHkpe2NvbnNvbGUuZXJyb3IoeSl9diYmKHRoaXMuanNvbkZpbGU9dix0aGlzLmxvZ2dlclNlcnZpY2Uu''@;'; + put 'put ''bG9nKHRoaXMuanNvbkZpbGUpKX0pLHRoaXMuc2V0RGVwbG95RGVmYXVsdHMoKX1zZXREZXBsb3lEZWZhdWx0cygpe3ZhciBoLHY7dGhpcy5kY1BhdGg9KG51bGw9PT0oaD10aGlzLmRjQWRhcHRlclNldHRpbmdzKXx8dm9pZCAwPT09aD92b2lkIDA6aC5kY1BhdGgpfHwiIix0aGlzLnNlbGVj''@;'; + put 'put ''dGVkQWRtaW5Hcm91cD0obnVsbD09PSh2PXRoaXMuZGNBZGFwdGVyU2V0dGluZ3MpfHx2b2lkIDA9PT12P3ZvaWQgMDp2LmFkbWluR3JvdXApfHwiIix0aGlzLnNlbGVjdGVkQWRtaW5Hcm91cHx8KHRoaXMuc2VsZWN0ZWRBZG1pbkdyb3VwPSJTQVNBZG1pbmlzdHJhdG9ycyIpfXRlcm1zQWdy''@;'; + put 'put ''ZWVDaGFuZ2UoKXt0aGlzLmF1dG9kZXBsb3l8fHRoaXMuZ2V0QWRtaW5Hcm91cHMoKSx0aGlzLnN0ZXArK31nZXRBZG1pbkdyb3Vwcygpe2ZldGNoKHRoaXMuc2FzSnNDb25maWcuc2VydmVyVXJsKyIvaWRlbnRpdGllcy9ncm91cHM/c29ydEJ5PW5hbWUmbGltaXQ9NTAwMCIse2hlYWRlcnM6''@;'; + put 'put ''e0FjY2VwdDoiYXBwbGljYXRpb24vanNvbiJ9fSkudGhlbihoPT5oLnRleHQoKSkudGhlbihoPT57bGV0IHY7dHJ5e3Y9SlNPTi5wYXJzZShoKX1jYXRjaCh5KXtjb25zb2xlLmVycm9yKHkpfXYmJih0aGlzLmFkbWluR3JvdXBzPXYuaXRlbXMsdGhpcy5zZWxlY3RlZEFkbWluR3JvdXA9dGhp''@;'; + put 'put ''cy5hZG1pbkdyb3Vwc1swXS5pZCl9KX1vbk5hdmlnYXRlVG9Ib21lKCl7d2luZG93Lm9wZW4obG9jYXRpb24uaHJlZi5zcGxpdCgiIyIpWzBdLCJfYmxhbmsiKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoS3Qoc2spLEt0KGcyKSxLdChzYyksS3Qo''@;'; + put 'put ''WmwpKX0sZC5cdTAyNzVjbXA9VGkoe3R5cGU6ZCxzZWxlY3RvcnM6W1siYXBwLWRlcGxveSJdXSxob3N0QXR0cnM6WzEsImNvbnRlbnQtY29udGFpbmVyIl0sZGVjbHM6NCx2YXJzOjIsY29uc3RzOltbMSwiY29udGVudC1hcmVhIiwicG9zaXRpb24tcmVsYXRpdmUiXSxbMSwiY2xyLXJvdyJd''@;'; + put 'put ''LFsiaWQiLCJUQ1MiLCJjbGFzcyIsImNhcmQiLDQsIm5nSWYiXSxbMywibmdTd2l0Y2giLDQsIm5nSWYiXSxbImlkIiwiVENTIiwxLCJjYXJkIl0sWzEsImNhcmQtaGVhZGVyIl0sWzEsImNhcmQtYmxvY2siXSxbMSwiY2FyZC10ZXh0Il0sWyJocmVmIiwiaHR0cHM6Ly9kb2NzLmRhdGFjb250''@;'; + put 'put ''cm9sbGVyLmlvL2V2YWx1YXRpb24tbGljZW5jZS1hZ3JlZW1lbnQiLCJ0YXJnZXQiLCJfYmxhbmsiXSxbMSwibGlnaHQiXSxbMSwiY2xyLWNoZWNrYm94LXdyYXBwZXIiXSxbInR5cGUiLCJjaGVja2JveCIsImlkIiwiY2hlY2tib3gxIiwibmFtZSIsImNoZWNrYm94LWJhc2ljIiwidmFsdWUi''@;'; + put 'put ''LCJvcHRpb24xIiwxLCJjbHItY2hlY2tib3giLDMsImNoYW5nZSJdLFsiZm9yIiwiY2hlY2tib3gxIl0sWzMsIm5nU3dpdGNoIl0sWzQsIm5nU3dpdGNoQ2FzZSJdLFsiY2xhc3MiLCJhdXRvZGVwbG95LXNlY3Rpb24gY2FyZCIsNCwibmdJZiJdLFsiaWQiLCJtYWluYm9keSIsImNsYXNzIiwi''@;'; + put 'put ''Y2FyZCIsNCwibmdJZiJdLFsxLCJhdXRvZGVwbG95LXNlY3Rpb24iLCJjYXJkIl0sWzMsInNhc0pzIiwic2FzSnNDb25maWciLCJkY0FkYXB0ZXJTZXR0aW5ncyIsImFwcExvYyIsImRjUGF0aCIsInNlbGVjdGVkQWRtaW5Hcm91cCIsIm9uTmF2aWdhdGVUb0hvbWUiXSxbImlkIiwibWFpbmJv''@;'; + put 'put ''ZHkiLDEsImNhcmQiXSxbMywic2FzSnMiLCJzYXNKc0NvbmZpZyIsImRjQWRhcHRlclNldHRpbmdzIiwib25OYXZpZ2F0ZVRvSG9tZSJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihoLHYpezEmaCYmKHJ0KDAsImRpdiIsMCkoMSwiZGl2IiwxKSxybigyLFVWZSwxNywwLCJkaXYiLDIpLGx0KCkscm4o''@;'; + put 'put ''MyxxVmUsNCw0LCJuZy1jb250YWluZXIiLDMpLGx0KCkpLDImaCYmKHV0KDIpLFR0KCJuZ0lmIiwwPT09di5zdGVwKSx1dCgxKSxUdCgibmdJZiIsdi5zdGVwPjApKX0sZGVwZW5kZW5jaWVzOltObyxKZCxpcCxvdCxPVmUselZlLFlWZV0sc3R5bGVzOlsiLmNhcmRbX25nY29udGVudC0lQ09N''@;'; + put 'put ''UCVde21hcmdpbi10b3A6MH0uYnRuW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOjEwcHh9LmxvZy13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXt3aWR0aDoxMDAlO2JhY2tncm91bmQ6I2YwZjBmMDtib3JkZXI6MXB4IHNvbGlkICNjOWM5Yzk7cGFkZGluZzoxMHB4O292ZXJmbG93''@;'; + put 'put ''OmF1dG87d2hpdGUtc3BhY2U6cHJlLXdyYXB9I2NvbnRleHRzLWJ0bltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzozcHggMCAwO21pbi13aWR0aDozMHB4O21hcmdpbi1sZWZ0OjEwcHg7aGVpZ2h0OjMwcHg7ZGlzcGxheTppbmxpbmUtZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2Fs''@;'; + put 'put ''aWduLWl0ZW1zOmNlbnRlcn0udmFsaWRhdGlvbi1iYXJbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDttYXJnaW4tdG9wOjIwcHg7YWxpZ24taXRlbXM6Y2VudGVyfS52YWxpZGF0aW9uLWJhcltfbmdjb250ZW50LSVDT01QJV0gICBjbHItaWNvbltfbmdjb250ZW50LSVDT01QJV17''@;'; + put 'put ''bWFyZ2luLXJpZ2h0OjVweH0uYXV0b2RlcGxveS1zZWN0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjAgMTVweH0uYXV0b2RlcGxveS1zZWN0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jbHItY2hlY2tib3gtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17bWFyZ2luOjIwcHgg''@;'; + put 'put ''MH0uYXV0b2RlcGxveS1zZWN0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5idG4tYXV0b2RlcGxveVtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpibG9jazttYXJnaW46MTVweCAwfSJdfSksZH0pKCk7ZnVuY3Rpb24gendlKGQpe3JldHVybiFBZShkKSYmZC1wYXJzZUZsb2F0KGQpKzE+''@;'; + put 'put ''PTB9ZnVuY3Rpb24gbmplKGQpe2NvbnN0e2luZGV4OmcscGVyaW9kOmgsc3Vic2NyaWJlcjp2fT1kO2lmKHYubmV4dChnKSwhdi5jbG9zZWQpe2lmKC0xPT09aClyZXR1cm4gdi5jb21wbGV0ZSgpO2QuaW5kZXg9ZysxLHRoaXMuc2NoZWR1bGUoZCxoKX19bGV0IHJPPXtiYXNlVXJsOm51bGws''@;'; + put 'put ''YnJlYWtzOiExLGV4dGVuc2lvbnM6bnVsbCxnZm06ITAsaGVhZGVySWRzOiEwLGhlYWRlclByZWZpeDoiIixoaWdobGlnaHQ6bnVsbCxsYW5nUHJlZml4OiJsYW5ndWFnZS0iLG1hbmdsZTohMCxwZWRhbnRpYzohMSxyZW5kZXJlcjpudWxsLHNhbml0aXplOiExLHNhbml0aXplcjpudWxsLHNp''@;'; + put 'put ''bGVudDohMSxzbWFydExpc3RzOiExLHNtYXJ0eXBhbnRzOiExLHRva2VuaXplcjpudWxsLHdhbGtUb2tlbnM6bnVsbCx4aHRtbDohMX07Y29uc3QgYWplPS9bJjw+IiddLyxsamU9L1smPD4iJ10vZyxzamU9L1s8PiInXXwmKD8hIz9cdys7KS8sdWplPS9bPD4iJ118Jig/ISM/XHcrOykvZyxj''@;'; + put 'put ''amU9eyImIjoiJmFtcDsiLCI8IjoiJmx0OyIsIj4iOiImZ3Q7IiwnIic6IiZxdW90OyIsIiciOiImIzM5OyJ9LFd3ZT1kPT5jamVbZF07ZnVuY3Rpb24gbmYoZCxnKXtpZihnKXtpZihhamUudGVzdChkKSlyZXR1cm4gZC5yZXBsYWNlKGxqZSxXd2UpfWVsc2UgaWYoc2plLnRlc3QoZCkpcmV0''@;'; + put 'put ''dXJuIGQucmVwbGFjZSh1amUsV3dlKTtyZXR1cm4gZH1jb25zdCBmamU9LyYoIyg/OlxkKyl8KD86I3hbMC05QS1GYS1mXSspfCg/Olx3KykpOz8vZ2k7ZnVuY3Rpb24gWXdlKGQpe3JldHVybiBkLnJlcGxhY2UoZmplLChnLGgpPT4iY29sb24iPT09KGg9aC50b0xvd2VyQ2FzZSgpKT8iOiI6''@;'; + put 'put ''IiMiPT09aC5jaGFyQXQoMCk/IngiPT09aC5jaGFyQXQoMSk/U3RyaW5nLmZyb21DaGFyQ29kZShwYXJzZUludChoLnN1YnN0cmluZygyKSwxNikpOlN0cmluZy5mcm9tQ2hhckNvZGUoK2guc3Vic3RyaW5nKDEpKToiIil9Y29uc3QgaGplPS8oXnxbXlxbXSlcXi9nO2Z1bmN0aW9uIFkyKGQs''@;'; + put 'put ''Zyl7ZD0ic3RyaW5nIj09dHlwZW9mIGQ/ZDpkLnNvdXJjZSxnPWd8fCIiO2NvbnN0IGg9e3JlcGxhY2U6KHYseSk9Pih5PSh5PXkuc291cmNlfHx5KS5yZXBsYWNlKGhqZSwiJDEiKSxkPWQucmVwbGFjZSh2LHkpLGgpLGdldFJlZ2V4OigpPT5uZXcgUmVnRXhwKGQsZyl9O3JldHVybiBofWNv''@;'; + put 'put ''bnN0IGRqZT0vW15cdzpdL2cscGplPS9eJHxeW2Etel1bYS16MC05Ky4tXSo6fF5bPyNdL2k7ZnVuY3Rpb24gVXdlKGQsZyxoKXtpZihkKXtsZXQgdjt0cnl7dj1kZWNvZGVVUklDb21wb25lbnQoWXdlKGgpKS5yZXBsYWNlKGRqZSwiIikudG9Mb3dlckNhc2UoKX1jYXRjaCh5KXtyZXR1cm4g''@;'; + put 'put ''bnVsbH1pZigwPT09di5pbmRleE9mKCJqYXZhc2NyaXB0OiIpfHwwPT09di5pbmRleE9mKCJ2YnNjcmlwdDoiKXx8MD09PXYuaW5kZXhPZigiZGF0YToiKSlyZXR1cm4gbnVsbH1nJiYhcGplLnRlc3QoaCkmJihoPWZ1bmN0aW9uIEFqZShkLGcpe1pxWyIgIitkXXx8KFpxWyIgIitkXT1namUu''@;'; + put 'put ''dGVzdChkKT9kKyIvIjpHcShkLCIvIiwhMCkpO2NvbnN0IGg9LTE9PT0oZD1acVsiICIrZF0pLmluZGV4T2YoIjoiKTtyZXR1cm4iLy8iPT09Zy5zdWJzdHJpbmcoMCwyKT9oP2c6ZC5yZXBsYWNlKG1qZSwiJDEiKStnOiIvIj09PWcuY2hhckF0KDApP2g/ZzpkLnJlcGxhY2UodmplLCIkMSIp''@;'; + put 'put ''K2c6ZCtnfShnLGgpKTt0cnl7aD1lbmNvZGVVUkkoaCkucmVwbGFjZSgvJTI1L2csIiUiKX1jYXRjaCh2KXtyZXR1cm4gbnVsbH1yZXR1cm4gaH1jb25zdCBacT17fSxnamU9L15bXjpdKzpcLypbXi9dKiQvLG1qZT0vXihbXjpdKzopW1xzXFNdKiQvLHZqZT0vXihbXjpdKzpcLypbXi9dKilb''@;'; + put 'put ''XHNcU10qJC8senE9e2V4ZWM6ZnVuY3Rpb24oKXt9fTtmdW5jdGlvbiB3OChkKXtsZXQgaCx2LGc9MTtmb3IoO2c8YXJndW1lbnRzLmxlbmd0aDtnKyspZm9yKHYgaW4gaD1hcmd1bWVudHNbZ10saClPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoaCx2KSYmKGRbdl09aFt2''@;'; + put 'put ''XSk7cmV0dXJuIGR9ZnVuY3Rpb24gUXdlKGQsZyl7Y29uc3Qgdj1kLnJlcGxhY2UoL1x8L2csKEMsSSxqKT0+e2xldCB1ZT0hMSxfZT1JO2Zvcig7LS1fZT49MCYmIlxcIj09PWpbX2VdOyl1ZT0hdWU7cmV0dXJuIHVlPyJ8IjoiIHwifSkuc3BsaXQoLyBcfC8pO2xldCB5PTA7aWYodlswXS50''@;'; + put 'put ''cmltKCl8fHYuc2hpZnQoKSx2Lmxlbmd0aD4wJiYhdlt2Lmxlbmd0aC0xXS50cmltKCkmJnYucG9wKCksdi5sZW5ndGg+Zyl2LnNwbGljZShnKTtlbHNlIGZvcig7di5sZW5ndGg8Zzspdi5wdXNoKCIiKTtmb3IoO3k8di5sZW5ndGg7eSsrKXZbeV09dlt5XS50cmltKCkucmVwbGFjZSgvXFxc''@;'; + put 'put ''fC9nLCJ8Iik7cmV0dXJuIHZ9ZnVuY3Rpb24gR3EoZCxnLGgpe2NvbnN0IHY9ZC5sZW5ndGg7aWYoMD09PXYpcmV0dXJuIiI7bGV0IHk9MDtmb3IoO3k8djspe2NvbnN0IEM9ZC5jaGFyQXQodi15LTEpO2lmKEMhPT1nfHxoKXtpZihDPT09Z3x8IWgpYnJlYWs7eSsrfWVsc2UgeSsrfXJldHVy''@;'; + put 'put ''biBkLnNsaWNlKDAsdi15KX1mdW5jdGlvbiBKd2UoZCl7ZCYmZC5zYW5pdGl6ZSYmIWQuc2lsZW50JiZjb25zb2xlLndhcm4oIm1hcmtlZCgpOiBzYW5pdGl6ZSBhbmQgc2FuaXRpemVyIHBhcmFtZXRlcnMgYXJlIGRlcHJlY2F0ZWQgc2luY2UgdmVyc2lvbiAwLjcuMCwgc2hvdWxkIG5vdCBi''@;'; + put 'put ''ZSB1c2VkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIGZ1dHVyZS4gUmVhZCBtb3JlIGhlcmU6IGh0dHBzOi8vbWFya2VkLmpzLm9yZy8jL1VTSU5HX0FEVkFOQ0VELm1kI29wdGlvbnMiKX1mdW5jdGlvbiBYd2UoZCxnKXtpZihnPDEpcmV0dXJuIiI7bGV0IGg9IiI7Zm9yKDtnPjE7KTEm''@;'; + put 'put ''ZyYmKGgrPWQpLGc+Pj0xLGQrPWQ7cmV0dXJuIGgrZH1mdW5jdGlvbiBLd2UoZCxnLGgsdil7Y29uc3QgeT1nLmhyZWYsQz1nLnRpdGxlP25mKGcudGl0bGUpOm51bGwsST1kWzFdLnJlcGxhY2UoL1xcKFtcW1xdXSkvZywiJDEiKTtpZigiISIhPT1kWzBdLmNoYXJBdCgwKSl7di5zdGF0ZS5p''@;'; + put 'put ''bkxpbms9ITA7Y29uc3Qgaj17dHlwZToibGluayIscmF3OmgsaHJlZjp5LHRpdGxlOkMsdGV4dDpJLHRva2Vuczp2LmlubGluZVRva2VucyhJLFtdKX07cmV0dXJuIHYuc3RhdGUuaW5MaW5rPSExLGp9cmV0dXJue3R5cGU6ImltYWdlIixyYXc6aCxocmVmOnksdGl0bGU6Qyx0ZXh0Om5mKEkp''@;'; + put 'put ''fX1jbGFzcyBIaGV7Y29uc3RydWN0b3IoZyl7dGhpcy5vcHRpb25zPWd8fHJPfXNwYWNlKGcpe2NvbnN0IGg9dGhpcy5ydWxlcy5ibG9jay5uZXdsaW5lLmV4ZWMoZyk7aWYoaCYmaFswXS5sZW5ndGg+MClyZXR1cm57dHlwZToic3BhY2UiLHJhdzpoWzBdfX1jb2RlKGcpe2NvbnN0IGg9dGhp''@;'; + put 'put ''cy5ydWxlcy5ibG9jay5jb2RlLmV4ZWMoZyk7aWYoaCl7Y29uc3Qgdj1oWzBdLnJlcGxhY2UoL14gezEsNH0vZ20sIiIpO3JldHVybnt0eXBlOiJjb2RlIixyYXc6aFswXSxjb2RlQmxvY2tTdHlsZToiaW5kZW50ZWQiLHRleHQ6dGhpcy5vcHRpb25zLnBlZGFudGljP3Y6R3EodiwiXG4iKX19''@;'; + put 'put ''fWZlbmNlcyhnKXtjb25zdCBoPXRoaXMucnVsZXMuYmxvY2suZmVuY2VzLmV4ZWMoZyk7aWYoaCl7Y29uc3Qgdj1oWzBdLHk9ZnVuY3Rpb24gd2plKGQsZyl7Y29uc3QgaD1kLm1hdGNoKC9eKFxzKykoPzpgYGApLyk7aWYobnVsbD09PWgpcmV0dXJuIGc7Y29uc3Qgdj1oWzFdO3JldHVybiBn''@;'; + put 'put ''LnNwbGl0KCJcbiIpLm1hcCh5PT57Y29uc3QgQz15Lm1hdGNoKC9eXHMrLyk7aWYobnVsbD09PUMpcmV0dXJuIHk7Y29uc3RbSV09QztyZXR1cm4gSS5sZW5ndGg+PXYubGVuZ3RoP3kuc2xpY2Uodi5sZW5ndGgpOnl9KS5qb2luKCJcbiIpfSh2LGhbM118fCIiKTtyZXR1cm57dHlwZToiY29k''@;'; + put 'put ''ZSIscmF3OnYsbGFuZzpoWzJdP2hbMl0udHJpbSgpOmhbMl0sdGV4dDp5fX19aGVhZGluZyhnKXtjb25zdCBoPXRoaXMucnVsZXMuYmxvY2suaGVhZGluZy5leGVjKGcpO2lmKGgpe2xldCB2PWhbMl0udHJpbSgpO2lmKC8jJC8udGVzdCh2KSl7Y29uc3QgQz1HcSh2LCIjIik7KHRoaXMub3B0''@;'; + put 'put ''aW9ucy5wZWRhbnRpY3x8IUN8fC8gJC8udGVzdChDKSkmJih2PUMudHJpbSgpKX1jb25zdCB5PXt0eXBlOiJoZWFkaW5nIixyYXc6aFswXSxkZXB0aDpoWzFdLmxlbmd0aCx0ZXh0OnYsdG9rZW5zOltdfTtyZXR1cm4gdGhpcy5sZXhlci5pbmxpbmUoeS50ZXh0LHkudG9rZW5zKSx5fX1ocihn''@;'; + put 'put ''KXtjb25zdCBoPXRoaXMucnVsZXMuYmxvY2suaHIuZXhlYyhnKTtpZihoKXJldHVybnt0eXBlOiJociIscmF3OmhbMF19fWJsb2NrcXVvdGUoZyl7Y29uc3QgaD10aGlzLnJ1bGVzLmJsb2NrLmJsb2NrcXVvdGUuZXhlYyhnKTtpZihoKXtjb25zdCB2PWhbMF0ucmVwbGFjZSgvXiAqPlsgXHRd''@;'; + put 'put ''Py9nbSwiIik7cmV0dXJue3R5cGU6ImJsb2NrcXVvdGUiLHJhdzpoWzBdLHRva2Vuczp0aGlzLmxleGVyLmJsb2NrVG9rZW5zKHYsW10pLHRleHQ6dn19fWxpc3QoZyl7bGV0IGg9dGhpcy5ydWxlcy5ibG9jay5saXN0LmV4ZWMoZyk7aWYoaCl7bGV0IHYseSxDLEksaix1ZSxfZSxCZSxOZSxL''@;'; + put 'put ''ZSxkdCxPdCwkdD1oWzFdLnRyaW0oKTtjb25zdCBmbj0kdC5sZW5ndGg+MSxMbj17dHlwZToibGlzdCIscmF3OiIiLG9yZGVyZWQ6Zm4sc3RhcnQ6Zm4/KyR0LnNsaWNlKDAsLTEpOiIiLGxvb3NlOiExLGl0ZW1zOltdfTskdD1mbj9gXFxkezEsOX1cXCR7JHQuc2xpY2UoLTEpfWA6YFxcJHsk''@;'; + put 'put ''dH1gLHRoaXMub3B0aW9ucy5wZWRhbnRpYyYmKCR0PWZuPyR0OiJbKistXSIpO2NvbnN0IGlyPW5ldyBSZWdFeHAoYF4oIHswLDN9JHskdH0pKCg/OltcdCBdW15cXG5dKik/KD86XFxufCQpKWApO2Zvcig7ZyYmKE90PSExLChoPWlyLmV4ZWMoZykpJiYhdGhpcy5ydWxlcy5ibG9jay5oci50''@;'; + put 'put ''ZXN0KGcpKTspe2lmKHY9aFswXSxnPWcuc3Vic3RyaW5nKHYubGVuZ3RoKSxCZT1oWzJdLnNwbGl0KCJcbiIsMSlbMF0sTmU9Zy5zcGxpdCgiXG4iLDEpWzBdLHRoaXMub3B0aW9ucy5wZWRhbnRpYz8oST0yLGR0PUJlLnRyaW1MZWZ0KCkpOihJPWhbMl0uc2VhcmNoKC9bXiBdLyksST1JPjQ/''@;'; + put 'put ''MTpJLGR0PUJlLnNsaWNlKEkpLEkrPWhbMV0ubGVuZ3RoKSx1ZT0hMSwhQmUmJi9eICokLy50ZXN0KE5lKSYmKHYrPU5lKyJcbiIsZz1nLnN1YnN0cmluZyhOZS5sZW5ndGgrMSksT3Q9ITApLCFPdCl7Y29uc3QgU3I9bmV3IFJlZ0V4cChgXiB7MCwke01hdGgubWluKDMsSS0xKX19KD86Wyor''@;'; + put 'put ''LV18XFxkezEsOX1bLildKSgoPzogW15cXG5dKik/KD86XFxufCQpKWApLHdyPW5ldyBSZWdFeHAoYF4gezAsJHtNYXRoLm1pbigzLEktMSl9fSgoPzotICopezMsfXwoPzpfICopezMsfXwoPzpcXCogKil7Myx9KSg/Olxcbit8JClgKSxRcj1uZXcgUmVnRXhwKGBeIHswLCR7TWF0aC5taW4o''@;'; + put 'put ''MyxJLTEpfX0oPzpcYFxgXGB8fn5+KWApLHlpPW5ldyBSZWdFeHAoYF4gezAsJHtNYXRoLm1pbigzLEktMSl9fSNgKTtmb3IoO2cmJihLZT1nLnNwbGl0KCJcbiIsMSlbMF0sQmU9S2UsdGhpcy5vcHRpb25zLnBlZGFudGljJiYoQmU9QmUucmVwbGFjZSgvXiB7MSw0fSg/PSggezR9KSpbXiBd''@;'; + put 'put ''KS9nLCIgICIpKSwhKFFyLnRlc3QoQmUpfHx5aS50ZXN0KEJlKXx8U3IudGVzdChCZSl8fHdyLnRlc3QoZykpKTspe2lmKEJlLnNlYXJjaCgvW14gXS8pPj1JfHwhQmUudHJpbSgpKWR0Kz0iXG4iK0JlLnNsaWNlKEkpO2Vsc2V7aWYodWUpYnJlYWs7ZHQrPSJcbiIrQmV9IXVlJiYhQmUudHJp''@;'; + put 'put ''bSgpJiYodWU9ITApLHYrPUtlKyJcbiIsZz1nLnN1YnN0cmluZyhLZS5sZW5ndGgrMSl9fUxuLmxvb3NlfHwoX2U/TG4ubG9vc2U9ITA6L1xuICpcbiAqJC8udGVzdCh2KSYmKF9lPSEwKSksdGhpcy5vcHRpb25zLmdmbSYmKHk9L15cW1sgeFhdXF0gLy5leGVjKGR0KSx5JiYoQz0iWyBdICIh''@;'; + put 'put ''PT15WzBdLGR0PWR0LnJlcGxhY2UoL15cW1sgeFhdXF0gKy8sIiIpKSksTG4uaXRlbXMucHVzaCh7dHlwZToibGlzdF9pdGVtIixyYXc6dix0YXNrOiEheSxjaGVja2VkOkMsbG9vc2U6ITEsdGV4dDpkdH0pLExuLnJhdys9dn1Mbi5pdGVtc1tMbi5pdGVtcy5sZW5ndGgtMV0ucmF3PXYudHJp''@;'; + put 'put ''bVJpZ2h0KCksTG4uaXRlbXNbTG4uaXRlbXMubGVuZ3RoLTFdLnRleHQ9ZHQudHJpbVJpZ2h0KCksTG4ucmF3PUxuLnJhdy50cmltUmlnaHQoKTtjb25zdCBtcj1Mbi5pdGVtcy5sZW5ndGg7Zm9yKGo9MDtqPG1yO2orKyl7dGhpcy5sZXhlci5zdGF0ZS50b3A9ITEsTG4uaXRlbXNbal0udG9r''@;'; + put 'put ''ZW5zPXRoaXMubGV4ZXIuYmxvY2tUb2tlbnMoTG4uaXRlbXNbal0udGV4dCxbXSk7Y29uc3QgU3I9TG4uaXRlbXNbal0udG9rZW5zLmZpbHRlcihRcj0+InNwYWNlIj09PVFyLnR5cGUpLHdyPVNyLmV2ZXJ5KFFyPT57Y29uc3QgeWk9UXIucmF3LnNwbGl0KCIiKTtsZXQgS2k9MDtmb3IoY29u''@;'; + put 'put ''c3QgU28gb2YgeWkpaWYoIlxuIj09PVNvJiYoS2krPTEpLEtpPjEpcmV0dXJuITA7cmV0dXJuITF9KTshTG4ubG9vc2UmJlNyLmxlbmd0aCYmd3ImJihMbi5sb29zZT0hMCxMbi5pdGVtc1tqXS5sb29zZT0hMCl9cmV0dXJuIExufX1odG1sKGcpe2NvbnN0IGg9dGhpcy5ydWxlcy5ibG9jay5o''@;'; + put 'put ''dG1sLmV4ZWMoZyk7aWYoaCl7Y29uc3Qgdj17dHlwZToiaHRtbCIscmF3OmhbMF0scHJlOiF0aGlzLm9wdGlvbnMuc2FuaXRpemVyJiYoInByZSI9PT1oWzFdfHwic2NyaXB0Ij09PWhbMV18fCJzdHlsZSI9PT1oWzFdKSx0ZXh0OmhbMF19O3JldHVybiB0aGlzLm9wdGlvbnMuc2FuaXRpemUm''@;'; + put 'put ''Jih2LnR5cGU9InBhcmFncmFwaCIsdi50ZXh0PXRoaXMub3B0aW9ucy5zYW5pdGl6ZXI/dGhpcy5vcHRpb25zLnNhbml0aXplcihoWzBdKTpuZihoWzBdKSx2LnRva2Vucz1bXSx0aGlzLmxleGVyLmlubGluZSh2LnRleHQsdi50b2tlbnMpKSx2fX1kZWYoZyl7Y29uc3QgaD10aGlzLnJ1bGVz''@;'; + put 'put ''LmJsb2NrLmRlZi5leGVjKGcpO2lmKGgpcmV0dXJuIGhbM10mJihoWzNdPWhbM10uc3Vic3RyaW5nKDEsaFszXS5sZW5ndGgtMSkpLHt0eXBlOiJkZWYiLHRhZzpoWzFdLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvXHMrL2csIiAiKSxyYXc6aFswXSxocmVmOmhbMl0sdGl0bGU6aFszXX19dGFi''@;'; + put 'put ''bGUoZyl7Y29uc3QgaD10aGlzLnJ1bGVzLmJsb2NrLnRhYmxlLmV4ZWMoZyk7aWYoaCl7Y29uc3Qgdj17dHlwZToidGFibGUiLGhlYWRlcjpRd2UoaFsxXSkubWFwKHk9Pih7dGV4dDp5fSkpLGFsaWduOmhbMl0ucmVwbGFjZSgvXiAqfFx8ICokL2csIiIpLnNwbGl0KC8gKlx8ICovKSxyb3dz''@;'; + put 'put ''OmhbM10mJmhbM10udHJpbSgpP2hbM10ucmVwbGFjZSgvXG5bIFx0XSokLywiIikuc3BsaXQoIlxuIik6W119O2lmKHYuaGVhZGVyLmxlbmd0aD09PXYuYWxpZ24ubGVuZ3RoKXt2LnJhdz1oWzBdO2xldCBDLEksaix1ZSx5PXYuYWxpZ24ubGVuZ3RoO2ZvcihDPTA7Qzx5O0MrKyl2LmFsaWdu''@;'; + put 'put ''W0NdPS9eICotKzogKiQvLnRlc3Qodi5hbGlnbltDXSk/InJpZ2h0IjovXiAqOi0rOiAqJC8udGVzdCh2LmFsaWduW0NdKT8iY2VudGVyIjovXiAqOi0rICokLy50ZXN0KHYuYWxpZ25bQ10pPyJsZWZ0IjpudWxsO2Zvcih5PXYucm93cy5sZW5ndGgsQz0wO0M8eTtDKyspdi5yb3dzW0NdPVF3''@;'; + put 'put ''ZSh2LnJvd3NbQ10sdi5oZWFkZXIubGVuZ3RoKS5tYXAoX2U9Pih7dGV4dDpfZX0pKTtmb3IoeT12LmhlYWRlci5sZW5ndGgsST0wO0k8eTtJKyspdi5oZWFkZXJbSV0udG9rZW5zPVtdLHRoaXMubGV4ZXIuaW5saW5lKHYuaGVhZGVyW0ldLnRleHQsdi5oZWFkZXJbSV0udG9rZW5zKTtmb3Io''@;'; + put 'put ''eT12LnJvd3MubGVuZ3RoLEk9MDtJPHk7SSsrKWZvcih1ZT12LnJvd3NbSV0saj0wO2o8dWUubGVuZ3RoO2orKyl1ZVtqXS50b2tlbnM9W10sdGhpcy5sZXhlci5pbmxpbmUodWVbal0udGV4dCx1ZVtqXS50b2tlbnMpO3JldHVybiB2fX19bGhlYWRpbmcoZyl7Y29uc3QgaD10aGlzLnJ1bGVz''@;'; + put 'put ''LmJsb2NrLmxoZWFkaW5nLmV4ZWMoZyk7aWYoaCl7Y29uc3Qgdj17dHlwZToiaGVhZGluZyIscmF3OmhbMF0sZGVwdGg6Ij0iPT09aFsyXS5jaGFyQXQoMCk/MToyLHRleHQ6aFsxXSx0b2tlbnM6W119O3JldHVybiB0aGlzLmxleGVyLmlubGluZSh2LnRleHQsdi50b2tlbnMpLHZ9fXBhcmFn''@;'; + put 'put ''cmFwaChnKXtjb25zdCBoPXRoaXMucnVsZXMuYmxvY2sucGFyYWdyYXBoLmV4ZWMoZyk7aWYoaCl7Y29uc3Qgdj17dHlwZToicGFyYWdyYXBoIixyYXc6aFswXSx0ZXh0OiJcbiI9PT1oWzFdLmNoYXJBdChoWzFdLmxlbmd0aC0xKT9oWzFdLnNsaWNlKDAsLTEpOmhbMV0sdG9rZW5zOltdfTty''@;'; + put 'put ''ZXR1cm4gdGhpcy5sZXhlci5pbmxpbmUodi50ZXh0LHYudG9rZW5zKSx2fX10ZXh0KGcpe2NvbnN0IGg9dGhpcy5ydWxlcy5ibG9jay50ZXh0LmV4ZWMoZyk7aWYoaCl7Y29uc3Qgdj17dHlwZToidGV4dCIscmF3OmhbMF0sdGV4dDpoWzBdLHRva2VuczpbXX07cmV0dXJuIHRoaXMubGV4ZXIu''@;'; + put 'put ''aW5saW5lKHYudGV4dCx2LnRva2Vucyksdn19ZXNjYXBlKGcpe2NvbnN0IGg9dGhpcy5ydWxlcy5pbmxpbmUuZXNjYXBlLmV4ZWMoZyk7aWYoaClyZXR1cm57dHlwZToiZXNjYXBlIixyYXc6aFswXSx0ZXh0Om5mKGhbMV0pfX10YWcoZyl7Y29uc3QgaD10aGlzLnJ1bGVzLmlubGluZS50YWcu''@;'; + put 'put ''ZXhlYyhnKTtpZihoKXJldHVybiF0aGlzLmxleGVyLnN0YXRlLmluTGluayYmL148YSAvaS50ZXN0KGhbMF0pP3RoaXMubGV4ZXIuc3RhdGUuaW5MaW5rPSEwOnRoaXMubGV4ZXIuc3RhdGUuaW5MaW5rJiYvXjxcL2E+L2kudGVzdChoWzBdKSYmKHRoaXMubGV4ZXIuc3RhdGUuaW5MaW5rPSEx''@;'; + put 'put ''KSwhdGhpcy5sZXhlci5zdGF0ZS5pblJhd0Jsb2NrJiYvXjwocHJlfGNvZGV8a2JkfHNjcmlwdCkoXHN8PikvaS50ZXN0KGhbMF0pP3RoaXMubGV4ZXIuc3RhdGUuaW5SYXdCbG9jaz0hMDp0aGlzLmxleGVyLnN0YXRlLmluUmF3QmxvY2smJi9ePFwvKHByZXxjb2RlfGtiZHxzY3JpcHQpKFxz''@;'; + put 'put ''fD4pL2kudGVzdChoWzBdKSYmKHRoaXMubGV4ZXIuc3RhdGUuaW5SYXdCbG9jaz0hMSkse3R5cGU6dGhpcy5vcHRpb25zLnNhbml0aXplPyJ0ZXh0IjoiaHRtbCIscmF3OmhbMF0saW5MaW5rOnRoaXMubGV4ZXIuc3RhdGUuaW5MaW5rLGluUmF3QmxvY2s6dGhpcy5sZXhlci5zdGF0ZS5pblJh''@;'; + put 'put ''d0Jsb2NrLHRleHQ6dGhpcy5vcHRpb25zLnNhbml0aXplP3RoaXMub3B0aW9ucy5zYW5pdGl6ZXI/dGhpcy5vcHRpb25zLnNhbml0aXplcihoWzBdKTpuZihoWzBdKTpoWzBdfX1saW5rKGcpe2NvbnN0IGg9dGhpcy5ydWxlcy5pbmxpbmUubGluay5leGVjKGcpO2lmKGgpe2NvbnN0IHY9aFsy''@;'; + put 'put ''XS50cmltKCk7aWYoIXRoaXMub3B0aW9ucy5wZWRhbnRpYyYmL148Ly50ZXN0KHYpKXtpZighLz4kLy50ZXN0KHYpKXJldHVybjtjb25zdCBJPUdxKHYuc2xpY2UoMCwtMSksIlxcIik7aWYoKHYubGVuZ3RoLUkubGVuZ3RoKSUyPT0wKXJldHVybn1lbHNle2NvbnN0IEk9ZnVuY3Rpb24geWpl''@;'; + put 'put ''KGQsZyl7aWYoLTE9PT1kLmluZGV4T2YoZ1sxXSkpcmV0dXJuLTE7Y29uc3QgaD1kLmxlbmd0aDtsZXQgdj0wLHk9MDtmb3IoO3k8aDt5KyspaWYoIlxcIj09PWRbeV0peSsrO2Vsc2UgaWYoZFt5XT09PWdbMF0pdisrO2Vsc2UgaWYoZFt5XT09PWdbMV0mJih2LS0sdjwwKSlyZXR1cm4geTty''@;'; + put 'put ''ZXR1cm4tMX0oaFsyXSwiKCkiKTtpZihJPi0xKXtjb25zdCB1ZT0oMD09PWhbMF0uaW5kZXhPZigiISIpPzU6NCkraFsxXS5sZW5ndGgrSTtoWzJdPWhbMl0uc3Vic3RyaW5nKDAsSSksaFswXT1oWzBdLnN1YnN0cmluZygwLHVlKS50cmltKCksaFszXT0iIn19bGV0IHk9aFsyXSxDPSIiO2lm''@;'; + put 'put ''KHRoaXMub3B0aW9ucy5wZWRhbnRpYyl7Y29uc3QgST0vXihbXiciXSpbXlxzXSlccysoWyciXSkoLiopXDIvLmV4ZWMoeSk7SSYmKHk9SVsxXSxDPUlbM10pfWVsc2UgQz1oWzNdP2hbM10uc2xpY2UoMSwtMSk6IiI7cmV0dXJuIHk9eS50cmltKCksL148Ly50ZXN0KHkpJiYoeT10aGlzLm9w''@;'; + put 'put ''dGlvbnMucGVkYW50aWMmJiEvPiQvLnRlc3Qodik/eS5zbGljZSgxKTp5LnNsaWNlKDEsLTEpKSxLd2UoaCx7aHJlZjp5JiZ5LnJlcGxhY2UodGhpcy5ydWxlcy5pbmxpbmUuX2VzY2FwZXMsIiQxIiksdGl0bGU6QyYmQy5yZXBsYWNlKHRoaXMucnVsZXMuaW5saW5lLl9lc2NhcGVzLCIkMSIp''@;'; + put 'put ''fSxoWzBdLHRoaXMubGV4ZXIpfX1yZWZsaW5rKGcsaCl7bGV0IHY7aWYoKHY9dGhpcy5ydWxlcy5pbmxpbmUucmVmbGluay5leGVjKGcpKXx8KHY9dGhpcy5ydWxlcy5pbmxpbmUubm9saW5rLmV4ZWMoZykpKXtsZXQgeT0odlsyXXx8dlsxXSkucmVwbGFjZSgvXHMrL2csIiAiKTtpZih5PWhb''@;'; + put 'put ''eS50b0xvd2VyQ2FzZSgpXSwheXx8IXkuaHJlZil7Y29uc3QgQz12WzBdLmNoYXJBdCgwKTtyZXR1cm57dHlwZToidGV4dCIscmF3OkMsdGV4dDpDfX1yZXR1cm4gS3dlKHYseSx2WzBdLHRoaXMubGV4ZXIpfX1lbVN0cm9uZyhnLGgsdj0iIil7bGV0IHk9dGhpcy5ydWxlcy5pbmxpbmUuZW1T''@;'; + put 'put ''dHJvbmcubERlbGltLmV4ZWMoZyk7aWYoIXl8fHlbM10mJnYubWF0Y2goL1tccHtMfVxwe059XS91KSlyZXR1cm47Y29uc3QgQz15WzFdfHx5WzJdfHwiIjtpZighQ3x8QyYmKCIiPT09dnx8dGhpcy5ydWxlcy5pbmxpbmUucHVuY3R1YXRpb24uZXhlYyh2KSkpe2NvbnN0IEk9eVswXS5sZW5n''@;'; + put 'put ''dGgtMTtsZXQgaix1ZSxfZT1JLEJlPTA7Y29uc3QgTmU9IioiPT09eVswXVswXT90aGlzLnJ1bGVzLmlubGluZS5lbVN0cm9uZy5yRGVsaW1Bc3Q6dGhpcy5ydWxlcy5pbmxpbmUuZW1TdHJvbmcuckRlbGltVW5kO2ZvcihOZS5sYXN0SW5kZXg9MCxoPWguc2xpY2UoLTEqZy5sZW5ndGgrSSk7''@;'; + put 'put ''bnVsbCE9KHk9TmUuZXhlYyhoKSk7KXtpZihqPXlbMV18fHlbMl18fHlbM118fHlbNF18fHlbNV18fHlbNl0sIWopY29udGludWU7aWYodWU9ai5sZW5ndGgseVszXXx8eVs0XSl7X2UrPXVlO2NvbnRpbnVlfWlmKCh5WzVdfHx5WzZdKSYmSSUzJiYhKChJK3VlKSUzKSl7QmUrPXVlO2NvbnRp''@;'; + put 'put ''bnVlfWlmKF9lLT11ZSxfZT4wKWNvbnRpbnVlO2lmKHVlPU1hdGgubWluKHVlLHVlK19lK0JlKSxNYXRoLm1pbihJLHVlKSUyKXtjb25zdCBkdD1nLnNsaWNlKDEsSSt5LmluZGV4K3VlKTtyZXR1cm57dHlwZToiZW0iLHJhdzpnLnNsaWNlKDAsSSt5LmluZGV4K3VlKzEpLHRleHQ6ZHQsdG9r''@;'; + put 'put ''ZW5zOnRoaXMubGV4ZXIuaW5saW5lVG9rZW5zKGR0LFtdKX19Y29uc3QgS2U9Zy5zbGljZSgyLEkreS5pbmRleCt1ZS0xKTtyZXR1cm57dHlwZToic3Ryb25nIixyYXc6Zy5zbGljZSgwLEkreS5pbmRleCt1ZSsxKSx0ZXh0OktlLHRva2Vuczp0aGlzLmxleGVyLmlubGluZVRva2VucyhLZSxb''@;'; + put 'put ''XSl9fX19Y29kZXNwYW4oZyl7Y29uc3QgaD10aGlzLnJ1bGVzLmlubGluZS5jb2RlLmV4ZWMoZyk7aWYoaCl7bGV0IHY9aFsyXS5yZXBsYWNlKC9cbi9nLCIgIik7Y29uc3QgeT0vW14gXS8udGVzdCh2KSxDPS9eIC8udGVzdCh2KSYmLyAkLy50ZXN0KHYpO3JldHVybiB5JiZDJiYodj12LnN1''@;'; + put 'put ''YnN0cmluZygxLHYubGVuZ3RoLTEpKSx2PW5mKHYsITApLHt0eXBlOiJjb2Rlc3BhbiIscmF3OmhbMF0sdGV4dDp2fX19YnIoZyl7Y29uc3QgaD10aGlzLnJ1bGVzLmlubGluZS5ici5leGVjKGcpO2lmKGgpcmV0dXJue3R5cGU6ImJyIixyYXc6aFswXX19ZGVsKGcpe2NvbnN0IGg9dGhpcy5y''@;'; + put 'put ''dWxlcy5pbmxpbmUuZGVsLmV4ZWMoZyk7aWYoaClyZXR1cm57dHlwZToiZGVsIixyYXc6aFswXSx0ZXh0OmhbMl0sdG9rZW5zOnRoaXMubGV4ZXIuaW5saW5lVG9rZW5zKGhbMl0sW10pfX1hdXRvbGluayhnLGgpe2NvbnN0IHY9dGhpcy5ydWxlcy5pbmxpbmUuYXV0b2xpbmsuZXhlYyhnKTtp''@;'; + put 'put ''Zih2KXtsZXQgeSxDO3JldHVybiJAIj09PXZbMl0/KHk9bmYodGhpcy5vcHRpb25zLm1hbmdsZT9oKHZbMV0pOnZbMV0pLEM9Im1haWx0bzoiK3kpOih5PW5mKHZbMV0pLEM9eSkse3R5cGU6ImxpbmsiLHJhdzp2WzBdLHRleHQ6eSxocmVmOkMsdG9rZW5zOlt7dHlwZToidGV4dCIscmF3Onks''@;'; + put 'put ''dGV4dDp5fV19fX11cmwoZyxoKXtsZXQgdjtpZih2PXRoaXMucnVsZXMuaW5saW5lLnVybC5leGVjKGcpKXtsZXQgeSxDO2lmKCJAIj09PXZbMl0peT1uZih0aGlzLm9wdGlvbnMubWFuZ2xlP2godlswXSk6dlswXSksQz0ibWFpbHRvOiIreTtlbHNle2xldCBJO2Rve0k9dlswXSx2WzBdPXRo''@;'; + put 'put ''aXMucnVsZXMuaW5saW5lLl9iYWNrcGVkYWwuZXhlYyh2WzBdKVswXX13aGlsZShJIT09dlswXSk7eT1uZih2WzBdKSxDPSJ3d3cuIj09PXZbMV0/Imh0dHA6Ly8iK3k6eX1yZXR1cm57dHlwZToibGluayIscmF3OnZbMF0sdGV4dDp5LGhyZWY6Qyx0b2tlbnM6W3t0eXBlOiJ0ZXh0IixyYXc6''@;'; + put 'put ''eSx0ZXh0Onl9XX19fWlubGluZVRleHQoZyxoKXtjb25zdCB2PXRoaXMucnVsZXMuaW5saW5lLnRleHQuZXhlYyhnKTtpZih2KXtsZXQgeTtyZXR1cm4geT10aGlzLmxleGVyLnN0YXRlLmluUmF3QmxvY2s/dGhpcy5vcHRpb25zLnNhbml0aXplP3RoaXMub3B0aW9ucy5zYW5pdGl6ZXI/dGhp''@;'; + put 'put ''cy5vcHRpb25zLnNhbml0aXplcih2WzBdKTpuZih2WzBdKTp2WzBdOm5mKHRoaXMub3B0aW9ucy5zbWFydHlwYW50cz9oKHZbMF0pOnZbMF0pLHt0eXBlOiJ0ZXh0IixyYXc6dlswXSx0ZXh0Onl9fX19Y29uc3QgUGE9e25ld2xpbmU6L14oPzogKig/OlxufCQpKSsvLGNvZGU6L14oIHs0fVte''@;'; + put 'put ''XG5dKyg/OlxuKD86ICooPzpcbnwkKSkqKT8pKy8sZmVuY2VzOi9eIHswLDN9KGB7Myx9KD89W15gXG5dKlxuKXx+ezMsfSkoW15cbl0qKVxuKD86fChbXHNcU10qPylcbikoPzogezAsM31cMVt+YF0qICooPz1cbnwkKXwkKS8saHI6L14gezAsM30oKD86LVtcdCBdKil7Myx9fCg/Ol9bIFx0''@;'; + put 'put ''XSopezMsfXwoPzpcKlsgXHRdKil7Myx9KSg/OlxuK3wkKS8saGVhZGluZzovXiB7MCwzfSgjezEsNn0pKD89XHN8JCkoLiopKD86XG4rfCQpLyxibG9ja3F1b3RlOi9eKCB7MCwzfT4gPyhwYXJhZ3JhcGh8W15cbl0qKSg/OlxufCQpKSsvLGxpc3Q6L14oIHswLDN9YnVsbCkoWyBcdF1bXlxu''@;'; + put 'put ''XSs/KT8oPzpcbnwkKS8saHRtbDoiXiB7MCwzfSg/Ojwoc2NyaXB0fHByZXxzdHlsZXx0ZXh0YXJlYSlbXFxzPl1bXFxzXFxTXSo/KD86PC9cXDE+W15cXG5dKlxcbit8JCl8Y29tbWVudFteXFxuXSooXFxuK3wkKXw8XFw/W1xcc1xcU10qPyg/OlxcPz5cXG4qfCQpfDwhW0EtWl1bXFxzXFxT''@;'; + put 'put ''XSo/KD86Plxcbip8JCl8PCFcXFtDREFUQVxcW1tcXHNcXFNdKj8oPzpcXF1cXF0+XFxuKnwkKXw8Lz8odGFnKSg/OiArfFxcbnwvPz4pW1xcc1xcU10qPyg/Oig/OlxcbiAqKStcXG58JCl8PCg/IXNjcmlwdHxwcmV8c3R5bGV8dGV4dGFyZWEpKFthLXpdW1xcdy1dKikoPzphdHRyaWJ1dGUp''@;'; + put 'put ''Kj8gKi8/Pig/PVsgXFx0XSooPzpcXG58JCkpW1xcc1xcU10qPyg/Oig/OlxcbiAqKStcXG58JCl8PC8oPyFzY3JpcHR8cHJlfHN0eWxlfHRleHRhcmVhKVthLXpdW1xcdy1dKlxccyo+KD89WyBcXHRdKig/OlxcbnwkKSlbXFxzXFxTXSo/KD86KD86XFxuICopK1xcbnwkKSkiLGRlZjovXiB7''@;'; + put 'put ''MCwzfVxbKGxhYmVsKVxdOiAqKD86XG4gKik/PD8oW15ccz5dKyk+Pyg/Oig/OiArKD86XG4gKik/fCAqXG4gKikodGl0bGUpKT8gKig/OlxuK3wkKS8sdGFibGU6enEsbGhlYWRpbmc6L14oW15cbl0rKVxuIHswLDN9KD0rfC0rKSAqKD86XG4rfCQpLyxfcGFyYWdyYXBoOi9eKFteXG5dKyg/''@;'; + put 'put ''OlxuKD8haHJ8aGVhZGluZ3xsaGVhZGluZ3xibG9ja3F1b3RlfGZlbmNlc3xsaXN0fGh0bWx8dGFibGV8ICtcbilbXlxuXSspKikvLHRleHQ6L15bXlxuXSsvLF9sYWJlbDovKD8hXHMqXF0pKD86XFwufFteXFtcXVxcXSkrLyxfdGl0bGU6Lyg/OiIoPzpcXCI/fFteIlxcXSkqInwnW14nXG5d''@;'; + put 'put ''Kig/OlxuW14nXG5dKykqXG4/J3xcKFteKCldKlwpKS99O1BhLmRlZj1ZMihQYS5kZWYpLnJlcGxhY2UoImxhYmVsIixQYS5fbGFiZWwpLnJlcGxhY2UoInRpdGxlIixQYS5fdGl0bGUpLmdldFJlZ2V4KCksUGEuYnVsbGV0PS8oPzpbKistXXxcZHsxLDl9Wy4pXSkvLFBhLmxpc3RJdGVtU3Rh''@;'; + put 'put ''cnQ9WTIoL14oICopKGJ1bGwpICovKS5yZXBsYWNlKCJidWxsIixQYS5idWxsZXQpLmdldFJlZ2V4KCksUGEubGlzdD1ZMihQYS5saXN0KS5yZXBsYWNlKC9idWxsL2csUGEuYnVsbGV0KS5yZXBsYWNlKCJociIsIlxcbisoPz1cXDE/KD86KD86LSAqKXszLH18KD86XyAqKXszLH18KD86XFwq''@;'; + put 'put ''ICopezMsfSkoPzpcXG4rfCQpKSIpLnJlcGxhY2UoImRlZiIsIlxcbisoPz0iK1BhLmRlZi5zb3VyY2UrIikiKS5nZXRSZWdleCgpLFBhLl90YWc9ImFkZHJlc3N8YXJ0aWNsZXxhc2lkZXxiYXNlfGJhc2Vmb250fGJsb2NrcXVvdGV8Ym9keXxjYXB0aW9ufGNlbnRlcnxjb2x8Y29sZ3JvdXB8''@;'; + put 'put ''ZGR8ZGV0YWlsc3xkaWFsb2d8ZGlyfGRpdnxkbHxkdHxmaWVsZHNldHxmaWdjYXB0aW9ufGZpZ3VyZXxmb290ZXJ8Zm9ybXxmcmFtZXxmcmFtZXNldHxoWzEtNl18aGVhZHxoZWFkZXJ8aHJ8aHRtbHxpZnJhbWV8bGVnZW5kfGxpfGxpbmt8bWFpbnxtZW51fG1lbnVpdGVtfG1ldGF8bmF2fG5v''@;'; + put 'put ''ZnJhbWVzfG9sfG9wdGdyb3VwfG9wdGlvbnxwfHBhcmFtfHNlY3Rpb258c291cmNlfHN1bW1hcnl8dGFibGV8dGJvZHl8dGR8dGZvb3R8dGh8dGhlYWR8dGl0bGV8dHJ8dHJhY2t8dWwiLFBhLl9jb21tZW50PS88IS0tKD8hLT8+KVtcc1xTXSo/KD86LS0+fCQpLyxQYS5odG1sPVkyKFBhLmh0''@;'; + put 'put ''bWwsImkiKS5yZXBsYWNlKCJjb21tZW50IixQYS5fY29tbWVudCkucmVwbGFjZSgidGFnIixQYS5fdGFnKS5yZXBsYWNlKCJhdHRyaWJ1dGUiLC8gK1thLXpBLVo6X11bXHcuOi1dKig/OiAqPSAqIlteIlxuXSoifCAqPSAqJ1teJ1xuXSonfCAqPSAqW15ccyInPTw+YF0rKT8vKS5nZXRSZWdl''@;'; + put 'put ''eCgpLFBhLnBhcmFncmFwaD1ZMihQYS5fcGFyYWdyYXBoKS5yZXBsYWNlKCJociIsUGEuaHIpLnJlcGxhY2UoImhlYWRpbmciLCIgezAsM30jezEsNn0gIikucmVwbGFjZSgifGxoZWFkaW5nIiwiIikucmVwbGFjZSgifHRhYmxlIiwiIikucmVwbGFjZSgiYmxvY2txdW90ZSIsIiB7MCwzfT4i''@;'; + put 'put ''KS5yZXBsYWNlKCJmZW5jZXMiLCIgezAsM30oPzpgezMsfSg/PVteYFxcbl0qXFxuKXx+ezMsfSlbXlxcbl0qXFxuIikucmVwbGFjZSgibGlzdCIsIiB7MCwzfSg/OlsqKy1dfDFbLildKSAiKS5yZXBsYWNlKCJodG1sIiwiPC8/KD86dGFnKSg/OiArfFxcbnwvPz4pfDwoPzpzY3JpcHR8cHJl''@;'; + put 'put ''fHN0eWxlfHRleHRhcmVhfCEtLSkiKS5yZXBsYWNlKCJ0YWciLFBhLl90YWcpLmdldFJlZ2V4KCksUGEuYmxvY2txdW90ZT1ZMihQYS5ibG9ja3F1b3RlKS5yZXBsYWNlKCJwYXJhZ3JhcGgiLFBhLnBhcmFncmFwaCkuZ2V0UmVnZXgoKSxQYS5ub3JtYWw9dzgoe30sUGEpLFBhLmdmbT13OCh7''@;'; + put 'put ''fSxQYS5ub3JtYWwse3RhYmxlOiJeICooW15cXG4gXS4qXFx8LiopXFxuIHswLDN9KD86XFx8ICopPyg6Py0rOj8gKig/OlxcfCAqOj8tKzo/ICopKikoPzpcXHwgKik/KD86XFxuKCg/Oig/ISAqXFxufGhyfGhlYWRpbmd8YmxvY2txdW90ZXxjb2RlfGZlbmNlc3xsaXN0fGh0bWwpLiooPzpc''@;'; + put 'put ''XG58JCkpKilcXG4qfCQpIn0pLFBhLmdmbS50YWJsZT1ZMihQYS5nZm0udGFibGUpLnJlcGxhY2UoImhyIixQYS5ocikucmVwbGFjZSgiaGVhZGluZyIsIiB7MCwzfSN7MSw2fSAiKS5yZXBsYWNlKCJibG9ja3F1b3RlIiwiIHswLDN9PiIpLnJlcGxhY2UoImNvZGUiLCIgezR9W15cXG5dIiku''@;'; + put 'put ''cmVwbGFjZSgiZmVuY2VzIiwiIHswLDN9KD86YHszLH0oPz1bXmBcXG5dKlxcbil8fnszLH0pW15cXG5dKlxcbiIpLnJlcGxhY2UoImxpc3QiLCIgezAsM30oPzpbKistXXwxWy4pXSkgIikucmVwbGFjZSgiaHRtbCIsIjwvPyg/OnRhZykoPzogK3xcXG58Lz8+KXw8KD86c2NyaXB0fHByZXxz''@;'; + put 'put ''dHlsZXx0ZXh0YXJlYXwhLS0pIikucmVwbGFjZSgidGFnIixQYS5fdGFnKS5nZXRSZWdleCgpLFBhLmdmbS5wYXJhZ3JhcGg9WTIoUGEuX3BhcmFncmFwaCkucmVwbGFjZSgiaHIiLFBhLmhyKS5yZXBsYWNlKCJoZWFkaW5nIiwiIHswLDN9I3sxLDZ9ICIpLnJlcGxhY2UoInxsaGVhZGluZyIs''@;'; + put 'put ''IiIpLnJlcGxhY2UoInRhYmxlIixQYS5nZm0udGFibGUpLnJlcGxhY2UoImJsb2NrcXVvdGUiLCIgezAsM30+IikucmVwbGFjZSgiZmVuY2VzIiwiIHswLDN9KD86YHszLH0oPz1bXmBcXG5dKlxcbil8fnszLH0pW15cXG5dKlxcbiIpLnJlcGxhY2UoImxpc3QiLCIgezAsM30oPzpbKistXXwx''@;'; + put 'put ''Wy4pXSkgIikucmVwbGFjZSgiaHRtbCIsIjwvPyg/OnRhZykoPzogK3xcXG58Lz8+KXw8KD86c2NyaXB0fHByZXxzdHlsZXx0ZXh0YXJlYXwhLS0pIikucmVwbGFjZSgidGFnIixQYS5fdGFnKS5nZXRSZWdleCgpLFBhLnBlZGFudGljPXc4KHt9LFBhLm5vcm1hbCx7aHRtbDpZMigiXiAqKD86''@;'; + put 'put ''Y29tbWVudCAqKD86XFxufFxccyokKXw8KHRhZylbXFxzXFxTXSs/PC9cXDE+ICooPzpcXG57Mix9fFxccyokKXw8dGFnKD86XCJbXlwiXSpcInwnW14nXSonfFxcc1teJ1wiLz5cXHNdKikqPy8/PiAqKD86XFxuezIsfXxcXHMqJCkpIikucmVwbGFjZSgiY29tbWVudCIsUGEuX2NvbW1lbnQp''@;'; + put 'put ''LnJlcGxhY2UoL3RhZy9nLCIoPyEoPzphfGVtfHN0cm9uZ3xzbWFsbHxzfGNpdGV8cXxkZm58YWJicnxkYXRhfHRpbWV8Y29kZXx2YXJ8c2FtcHxrYmR8c3VifHN1cHxpfGJ8dXxtYXJrfHJ1Ynl8cnR8cnB8YmRpfGJkb3xzcGFufGJyfHdicnxpbnN8ZGVsfGltZylcXGIpXFx3Kyg/ITp8W15c''@;'; + put 'put ''XHdcXHNAXSpAKVxcYiIpLmdldFJlZ2V4KCksZGVmOi9eICpcWyhbXlxdXSspXF06ICo8PyhbXlxzPl0rKT4/KD86ICsoWyIoXVteXG5dK1siKV0pKT8gKig/OlxuK3wkKS8saGVhZGluZzovXigjezEsNn0pKC4qKSg/OlxuK3wkKS8sZmVuY2VzOnpxLHBhcmFncmFwaDpZMihQYS5ub3JtYWwu''@;'; + put 'put ''X3BhcmFncmFwaCkucmVwbGFjZSgiaHIiLFBhLmhyKS5yZXBsYWNlKCJoZWFkaW5nIiwiICojezEsNn0gKlteXG5dIikucmVwbGFjZSgibGhlYWRpbmciLFBhLmxoZWFkaW5nKS5yZXBsYWNlKCJibG9ja3F1b3RlIiwiIHswLDN9PiIpLnJlcGxhY2UoInxmZW5jZXMiLCIiKS5yZXBsYWNlKCJ8''@;'; + put 'put ''bGlzdCIsIiIpLnJlcGxhY2UoInxodG1sIiwiIikuZ2V0UmVnZXgoKX0pO2NvbnN0IFhvPXtlc2NhcGU6L15cXChbISIjJCUmJygpKissXC0uLzo7PD0+P0BcW1xdXFxeX2B7fH1+XSkvLGF1dG9saW5rOi9ePChzY2hlbWU6W15cc1x4MDAtXHgxZjw+XSp8ZW1haWwpPi8sdXJsOnpxLHRhZzoi''@;'; + put 'put ''XmNvbW1lbnR8XjwvW2EtekEtWl1bXFx3Oi1dKlxccyo+fF48W2EtekEtWl1bXFx3LV0qKD86YXR0cmlidXRlKSo/XFxzKi8/PnxePFxcP1tcXHNcXFNdKj9cXD8+fF48IVthLXpBLVpdK1xcc1tcXHNcXFNdKj8+fF48IVxcW0NEQVRBXFxbW1xcc1xcU10qP1xcXVxcXT4iLGxpbms6L14hP1xb''@;'; + put 'put ''KGxhYmVsKVxdXChccyooaHJlZikoPzpccysodGl0bGUpKT9ccypcKS8scmVmbGluazovXiE/XFsobGFiZWwpXF1cWyhyZWYpXF0vLG5vbGluazovXiE/XFsocmVmKVxdKD86XFtcXSk/LyxyZWZsaW5rU2VhcmNoOiJyZWZsaW5rfG5vbGluayg/IVxcKCkiLGVtU3Ryb25nOntsRGVsaW06L14o''@;'; + put 'put ''PzpcKisoPzooW3B1bmN0X10pfFteXHMqXSkpfF5fKyg/OihbcHVuY3QqXSl8KFteXHNfXSkpLyxyRGVsaW1Bc3Q6L15bXl8qXSo/XF9cX1teXypdKj9cKlteXypdKj8oPz1cX1xfKXxbXipdKyg/PVteKl0pfFtwdW5jdF9dKFwqKykoPz1bXHNdfCQpfFtecHVuY3QqX1xzXShcKispKD89W3B1''@;'; + put 'put ''bmN0X1xzXXwkKXxbcHVuY3RfXHNdKFwqKykoPz1bXnB1bmN0Kl9cc10pfFtcc10oXCorKSg/PVtwdW5jdF9dKXxbcHVuY3RfXShcKispKD89W3B1bmN0X10pfFtecHVuY3QqX1xzXShcKispKD89W15wdW5jdCpfXHNdKS8sckRlbGltVW5kOi9eW15fKl0qP1wqXCpbXl8qXSo/XF9bXl8qXSo/''@;'; + put 'put ''KD89XCpcKil8W15fXSsoPz1bXl9dKXxbcHVuY3QqXShcXyspKD89W1xzXXwkKXxbXnB1bmN0Kl9cc10oXF8rKSg/PVtwdW5jdCpcc118JCl8W3B1bmN0KlxzXShcXyspKD89W15wdW5jdCpfXHNdKXxbXHNdKFxfKykoPz1bcHVuY3QqXSl8W3B1bmN0Kl0oXF8rKSg/PVtwdW5jdCpdKS99LGNv''@;'; + put 'put ''ZGU6L14oYCspKFteYF18W15gXVtcc1xTXSo/W15gXSlcMSg/IWApLyxicjovXiggezIsfXxcXClcbig/IVxzKiQpLyxkZWw6enEsdGV4dDovXihgK3xbXmBdKSg/Oig/PSB7Mix9XG4pfFtcc1xTXSo/KD86KD89W1xcPCFcW2AqX118XGJffCQpfFteIF0oPz0gezIsfVxuKSkpLyxwdW5jdHVh''@;'; + put 'put ''dGlvbjovXihbXHNwdW5jdHVhdGlvbl0pL307ZnVuY3Rpb24gYmplKGQpe3JldHVybiBkLnJlcGxhY2UoLy0tLS9nLCJcdTIwMTQiKS5yZXBsYWNlKC8tLS9nLCJcdTIwMTMiKS5yZXBsYWNlKC8oXnxbLVx1MjAxNC8oXFt7IlxzXSknL2csIiQxXHUyMDE4IikucmVwbGFjZSgvJy9nLCJcdTIw''@;'; + put 'put ''MTkiKS5yZXBsYWNlKC8oXnxbLVx1MjAxNC8oXFt7XHUyMDE4XHNdKSIvZywiJDFcdTIwMWMiKS5yZXBsYWNlKC8iL2csIlx1MjAxZCIpLnJlcGxhY2UoL1wuezN9L2csIlx1MjAyNiIpfWZ1bmN0aW9uICR3ZShkKXtsZXQgaCx2LGc9IiI7Y29uc3QgeT1kLmxlbmd0aDtmb3IoaD0wO2g8eTto''@;'; + put 'put ''Kyspdj1kLmNoYXJDb2RlQXQoaCksTWF0aC5yYW5kb20oKT4uNSYmKHY9IngiK3YudG9TdHJpbmcoMTYpKSxnKz0iJiMiK3YrIjsiO3JldHVybiBnfVhvLl9wdW5jdHVhdGlvbj0iIVwiIyQlJicoKStcXC0uLC86Ozw9Pj9AXFxbXFxdYF57fH1+IixYby5wdW5jdHVhdGlvbj1ZMihYby5wdW5j''@;'; + put 'put ''dHVhdGlvbikucmVwbGFjZSgvcHVuY3R1YXRpb24vZyxYby5fcHVuY3R1YXRpb24pLmdldFJlZ2V4KCksWG8uYmxvY2tTa2lwPS9cW1teXF1dKj9cXVwoW15cKV0qP1wpfGBbXmBdKj9gfDxbXj5dKj8+L2csWG8uZXNjYXBlZEVtU3Q9L1xcXCp8XFxfL2csWG8uX2NvbW1lbnQ9WTIoUGEuX2Nv''@;'; + put 'put ''bW1lbnQpLnJlcGxhY2UoIig/Oi0tXHgzZXwkKSIsIi0tXHgzZSIpLmdldFJlZ2V4KCksWG8uZW1TdHJvbmcubERlbGltPVkyKFhvLmVtU3Ryb25nLmxEZWxpbSkucmVwbGFjZSgvcHVuY3QvZyxYby5fcHVuY3R1YXRpb24pLmdldFJlZ2V4KCksWG8uZW1TdHJvbmcuckRlbGltQXN0PVkyKFhv''@;'; + put 'put ''LmVtU3Ryb25nLnJEZWxpbUFzdCwiZyIpLnJlcGxhY2UoL3B1bmN0L2csWG8uX3B1bmN0dWF0aW9uKS5nZXRSZWdleCgpLFhvLmVtU3Ryb25nLnJEZWxpbVVuZD1ZMihYby5lbVN0cm9uZy5yRGVsaW1VbmQsImciKS5yZXBsYWNlKC9wdW5jdC9nLFhvLl9wdW5jdHVhdGlvbikuZ2V0UmVnZXgo''@;'; + put 'put ''KSxYby5fZXNjYXBlcz0vXFwoWyEiIyQlJicoKSorLFwtLi86Ozw9Pj9AXFtcXVxcXl9ge3x9fl0pL2csWG8uX3NjaGVtZT0vW2EtekEtWl1bYS16QS1aMC05Ky4tXXsxLDMxfS8sWG8uX2VtYWlsPS9bYS16QS1aMC05LiEjJCUmJyorLz0/Xl9ge3x9fi1dKyhAKVthLXpBLVowLTldKD86W2Et''@;'; + put 'put ''ekEtWjAtOS1dezAsNjF9W2EtekEtWjAtOV0pPyg/OlwuW2EtekEtWjAtOV0oPzpbYS16QS1aMC05LV17MCw2MX1bYS16QS1aMC05XSk/KSsoPyFbLV9dKS8sWG8uYXV0b2xpbms9WTIoWG8uYXV0b2xpbmspLnJlcGxhY2UoInNjaGVtZSIsWG8uX3NjaGVtZSkucmVwbGFjZSgiZW1haWwiLFhv''@;'; + put 'put ''Ll9lbWFpbCkuZ2V0UmVnZXgoKSxYby5fYXR0cmlidXRlPS9ccytbYS16QS1aOl9dW1x3LjotXSooPzpccyo9XHMqIlteIl0qInxccyo9XHMqJ1teJ10qJ3xccyo9XHMqW15ccyInPTw+YF0rKT8vLFhvLnRhZz1ZMihYby50YWcpLnJlcGxhY2UoImNvbW1lbnQiLFhvLl9jb21tZW50KS5yZXBs''@;'; + put 'put ''YWNlKCJhdHRyaWJ1dGUiLFhvLl9hdHRyaWJ1dGUpLmdldFJlZ2V4KCksWG8uX2xhYmVsPS8oPzpcWyg/OlxcLnxbXlxbXF1cXF0pKlxdfFxcLnxgW15gXSpgfFteXFtcXVxcYF0pKj8vLFhvLl9ocmVmPS88KD86XFwufFteXG48PlxcXSkrPnxbXlxzXHgwMC1ceDFmXSovLFhvLl90aXRsZT0v''@;'; + put 'put ''Iig/OlxcIj98W14iXFxdKSoifCcoPzpcXCc/fFteJ1xcXSkqJ3xcKCg/OlxcXCk/fFteKVxcXSkqXCkvLFhvLmxpbms9WTIoWG8ubGluaykucmVwbGFjZSgibGFiZWwiLFhvLl9sYWJlbCkucmVwbGFjZSgiaHJlZiIsWG8uX2hyZWYpLnJlcGxhY2UoInRpdGxlIixYby5fdGl0bGUpLmdldFJl''@;'; + put 'put ''Z2V4KCksWG8ucmVmbGluaz1ZMihYby5yZWZsaW5rKS5yZXBsYWNlKCJsYWJlbCIsWG8uX2xhYmVsKS5yZXBsYWNlKCJyZWYiLFBhLl9sYWJlbCkuZ2V0UmVnZXgoKSxYby5ub2xpbms9WTIoWG8ubm9saW5rKS5yZXBsYWNlKCJyZWYiLFBhLl9sYWJlbCkuZ2V0UmVnZXgoKSxYby5yZWZsaW5r''@;'; + put 'put ''U2VhcmNoPVkyKFhvLnJlZmxpbmtTZWFyY2gsImciKS5yZXBsYWNlKCJyZWZsaW5rIixYby5yZWZsaW5rKS5yZXBsYWNlKCJub2xpbmsiLFhvLm5vbGluaykuZ2V0UmVnZXgoKSxYby5ub3JtYWw9dzgoe30sWG8pLFhvLnBlZGFudGljPXc4KHt9LFhvLm5vcm1hbCx7c3Ryb25nOntzdGFydDov''@;'; + put 'put ''Xl9ffFwqXCovLG1pZGRsZTovXl9fKD89XFMpKFtcc1xTXSo/XFMpX18oPyFfKXxeXCpcKig/PVxTKShbXHNcU10qP1xTKVwqXCooPyFcKikvLGVuZEFzdDovXCpcKig/IVwqKS9nLGVuZFVuZDovX18oPyFfKS9nfSxlbTp7c3RhcnQ6L15ffFwqLyxtaWRkbGU6L14oKVwqKD89XFMpKFtcc1xT''@;'; + put 'put ''XSo/XFMpXCooPyFcKil8Xl8oPz1cUykoW1xzXFNdKj9cUylfKD8hXykvLGVuZEFzdDovXCooPyFcKikvZyxlbmRVbmQ6L18oPyFfKS9nfSxsaW5rOlkyKC9eIT9cWyhsYWJlbClcXVwoKC4qPylcKS8pLnJlcGxhY2UoImxhYmVsIixYby5fbGFiZWwpLmdldFJlZ2V4KCkscmVmbGluazpZMigv''@;'; + put 'put ''XiE/XFsobGFiZWwpXF1ccypcWyhbXlxdXSopXF0vKS5yZXBsYWNlKCJsYWJlbCIsWG8uX2xhYmVsKS5nZXRSZWdleCgpfSksWG8uZ2ZtPXc4KHt9LFhvLm5vcm1hbCx7ZXNjYXBlOlkyKFhvLmVzY2FwZSkucmVwbGFjZSgiXSkiLCJ+fF0pIikuZ2V0UmVnZXgoKSxfZXh0ZW5kZWRfZW1haWw6''@;'; + put 'put ''L1tBLVphLXowLTkuXystXSsoQClbYS16QS1aMC05LV9dKyg/OlwuW2EtekEtWjAtOS1fXSpbYS16QS1aMC05XSkrKD8hWy1fXSkvLHVybDovXigoPzpmdHB8aHR0cHM/KTpcL1wvfHd3d1wuKSg/OlthLXpBLVowLTlcLV0rXC4/KStbXlxzPF0qfF5lbWFpbC8sX2JhY2twZWRhbDovKD86W14/''@;'; + put 'put ''IS4sOjsqX34oKSZdK3xcKFteKV0qXCl8Jig/IVthLXpBLVowLTldKzskKXxbPyEuLDo7Kl9+KV0rKD8hJCkpKy8sZGVsOi9eKH5+PykoPz1bXlxzfl0pKFtcc1xTXSo/W15cc35dKVwxKD89W15+XXwkKS8sdGV4dDovXihbYH5dK3xbXmB+XSkoPzooPz0gezIsfVxuKXwoPz1bYS16QS1aMC05''@;'; + put 'put ''LiEjJCUmJyorXC89P19ge1x8fX4tXStAKXxbXHNcU10qPyg/Oig/PVtcXDwhXFtgKn5fXXxcYl98aHR0cHM/OlwvXC98ZnRwOlwvXC98d3d3XC58JCl8W14gXSg/PSB7Mix9XG4pfFteYS16QS1aMC05LiEjJCUmJyorXC89P19ge1x8fX4tXSg/PVthLXpBLVowLTkuISMkJSYnKitcLz0/X2B7''@;'; + put 'put ''XHx9fi1dK0ApKSkvfSksWG8uZ2ZtLnVybD1ZMihYby5nZm0udXJsLCJpIikucmVwbGFjZSgiZW1haWwiLFhvLmdmbS5fZXh0ZW5kZWRfZW1haWwpLmdldFJlZ2V4KCksWG8uYnJlYWtzPXc4KHt9LFhvLmdmbSx7YnI6WTIoWG8uYnIpLnJlcGxhY2UoInsyLH0iLCIqIikuZ2V0UmVnZXgoKSx0''@;'; + put 'put ''ZXh0OlkyKFhvLmdmbS50ZXh0KS5yZXBsYWNlKCJcXGJfIiwiXFxiX3wgezIsfVxcbiIpLnJlcGxhY2UoL1x7MixcfS9nLCIqIikuZ2V0UmVnZXgoKX0pO2NsYXNzIF92e2NvbnN0cnVjdG9yKGcpe3RoaXMudG9rZW5zPVtdLHRoaXMudG9rZW5zLmxpbmtzPU9iamVjdC5jcmVhdGUobnVsbCks''@;'; + put 'put ''dGhpcy5vcHRpb25zPWd8fHJPLHRoaXMub3B0aW9ucy50b2tlbml6ZXI9dGhpcy5vcHRpb25zLnRva2VuaXplcnx8bmV3IEhoZSx0aGlzLnRva2VuaXplcj10aGlzLm9wdGlvbnMudG9rZW5pemVyLHRoaXMudG9rZW5pemVyLm9wdGlvbnM9dGhpcy5vcHRpb25zLHRoaXMudG9rZW5pemVyLmxl''@;'; + put 'put ''eGVyPXRoaXMsdGhpcy5pbmxpbmVRdWV1ZT1bXSx0aGlzLnN0YXRlPXtpbkxpbms6ITEsaW5SYXdCbG9jazohMSx0b3A6ITB9O2NvbnN0IGg9e2Jsb2NrOlBhLm5vcm1hbCxpbmxpbmU6WG8ubm9ybWFsfTt0aGlzLm9wdGlvbnMucGVkYW50aWM/KGguYmxvY2s9UGEucGVkYW50aWMsaC5pbmxp''@;'; + put 'put ''bmU9WG8ucGVkYW50aWMpOnRoaXMub3B0aW9ucy5nZm0mJihoLmJsb2NrPVBhLmdmbSxoLmlubGluZT10aGlzLm9wdGlvbnMuYnJlYWtzP1hvLmJyZWFrczpYby5nZm0pLHRoaXMudG9rZW5pemVyLnJ1bGVzPWh9c3RhdGljIGdldCBydWxlcygpe3JldHVybntibG9jazpQYSxpbmxpbmU6WG99''@;'; + put 'put ''fXN0YXRpYyBsZXgoZyxoKXtyZXR1cm4gbmV3IF92KGgpLmxleChnKX1zdGF0aWMgbGV4SW5saW5lKGcsaCl7cmV0dXJuIG5ldyBfdihoKS5pbmxpbmVUb2tlbnMoZyl9bGV4KGcpe2xldCBoO2ZvcihnPWcucmVwbGFjZSgvXHJcbnxcci9nLCJcbiIpLHRoaXMuYmxvY2tUb2tlbnMoZyx0aGlz''@;'; + put 'put ''LnRva2Vucyk7aD10aGlzLmlubGluZVF1ZXVlLnNoaWZ0KCk7KXRoaXMuaW5saW5lVG9rZW5zKGguc3JjLGgudG9rZW5zKTtyZXR1cm4gdGhpcy50b2tlbnN9YmxvY2tUb2tlbnMoZyxoPVtdKXtsZXQgdix5LEMsSTtmb3IoZz10aGlzLm9wdGlvbnMucGVkYW50aWM/Zy5yZXBsYWNlKC9cdC9n''@;'; + put 'put ''LCIgICAgIikucmVwbGFjZSgvXiArJC9nbSwiIik6Zy5yZXBsYWNlKC9eKCAqKShcdCspL2dtLChqLHVlLF9lKT0+dWUrIiAgICAiLnJlcGVhdChfZS5sZW5ndGgpKTtnOylpZighKHRoaXMub3B0aW9ucy5leHRlbnNpb25zJiZ0aGlzLm9wdGlvbnMuZXh0ZW5zaW9ucy5ibG9jayYmdGhpcy5v''@;'; + put 'put ''cHRpb25zLmV4dGVuc2lvbnMuYmxvY2suc29tZShqPT4hISh2PWouY2FsbCh7bGV4ZXI6dGhpc30sZyxoKSkmJihnPWcuc3Vic3RyaW5nKHYucmF3Lmxlbmd0aCksaC5wdXNoKHYpLCEwKSkpKXtpZih2PXRoaXMudG9rZW5pemVyLnNwYWNlKGcpKXtnPWcuc3Vic3RyaW5nKHYucmF3Lmxlbmd0''@;'; + put 'put ''aCksMT09PXYucmF3Lmxlbmd0aCYmaC5sZW5ndGg+MD9oW2gubGVuZ3RoLTFdLnJhdys9IlxuIjpoLnB1c2godik7Y29udGludWV9aWYodj10aGlzLnRva2VuaXplci5jb2RlKGcpKXtnPWcuc3Vic3RyaW5nKHYucmF3Lmxlbmd0aCkseT1oW2gubGVuZ3RoLTFdLCF5fHwicGFyYWdyYXBoIiE9''@;'; + put 'put ''PXkudHlwZSYmInRleHQiIT09eS50eXBlP2gucHVzaCh2KTooeS5yYXcrPSJcbiIrdi5yYXcseS50ZXh0Kz0iXG4iK3YudGV4dCx0aGlzLmlubGluZVF1ZXVlW3RoaXMuaW5saW5lUXVldWUubGVuZ3RoLTFdLnNyYz15LnRleHQpO2NvbnRpbnVlfWlmKHY9dGhpcy50b2tlbml6ZXIuZmVuY2Vz''@;'; + put 'put ''KGcpKXtnPWcuc3Vic3RyaW5nKHYucmF3Lmxlbmd0aCksaC5wdXNoKHYpO2NvbnRpbnVlfWlmKHY9dGhpcy50b2tlbml6ZXIuaGVhZGluZyhnKSl7Zz1nLnN1YnN0cmluZyh2LnJhdy5sZW5ndGgpLGgucHVzaCh2KTtjb250aW51ZX1pZih2PXRoaXMudG9rZW5pemVyLmhyKGcpKXtnPWcuc3Vi''@;'; + put 'put ''c3RyaW5nKHYucmF3Lmxlbmd0aCksaC5wdXNoKHYpO2NvbnRpbnVlfWlmKHY9dGhpcy50b2tlbml6ZXIuYmxvY2txdW90ZShnKSl7Zz1nLnN1YnN0cmluZyh2LnJhdy5sZW5ndGgpLGgucHVzaCh2KTtjb250aW51ZX1pZih2PXRoaXMudG9rZW5pemVyLmxpc3QoZykpe2c9Zy5zdWJzdHJpbmco''@;'; + put 'put ''di5yYXcubGVuZ3RoKSxoLnB1c2godik7Y29udGludWV9aWYodj10aGlzLnRva2VuaXplci5odG1sKGcpKXtnPWcuc3Vic3RyaW5nKHYucmF3Lmxlbmd0aCksaC5wdXNoKHYpO2NvbnRpbnVlfWlmKHY9dGhpcy50b2tlbml6ZXIuZGVmKGcpKXtnPWcuc3Vic3RyaW5nKHYucmF3Lmxlbmd0aCks''@;'; + put 'put ''eT1oW2gubGVuZ3RoLTFdLCF5fHwicGFyYWdyYXBoIiE9PXkudHlwZSYmInRleHQiIT09eS50eXBlP3RoaXMudG9rZW5zLmxpbmtzW3YudGFnXXx8KHRoaXMudG9rZW5zLmxpbmtzW3YudGFnXT17aHJlZjp2LmhyZWYsdGl0bGU6di50aXRsZX0pOih5LnJhdys9IlxuIit2LnJhdyx5LnRleHQr''@;'; + put 'put ''PSJcbiIrdi5yYXcsdGhpcy5pbmxpbmVRdWV1ZVt0aGlzLmlubGluZVF1ZXVlLmxlbmd0aC0xXS5zcmM9eS50ZXh0KTtjb250aW51ZX1pZih2PXRoaXMudG9rZW5pemVyLnRhYmxlKGcpKXtnPWcuc3Vic3RyaW5nKHYucmF3Lmxlbmd0aCksaC5wdXNoKHYpO2NvbnRpbnVlfWlmKHY9dGhpcy50''@;'; + put 'put ''b2tlbml6ZXIubGhlYWRpbmcoZykpe2c9Zy5zdWJzdHJpbmcodi5yYXcubGVuZ3RoKSxoLnB1c2godik7Y29udGludWV9aWYoQz1nLHRoaXMub3B0aW9ucy5leHRlbnNpb25zJiZ0aGlzLm9wdGlvbnMuZXh0ZW5zaW9ucy5zdGFydEJsb2NrKXtsZXQgaj0xLzA7Y29uc3QgdWU9Zy5zbGljZSgx''@;'; + put 'put ''KTtsZXQgX2U7dGhpcy5vcHRpb25zLmV4dGVuc2lvbnMuc3RhcnRCbG9jay5mb3JFYWNoKGZ1bmN0aW9uKEJlKXtfZT1CZS5jYWxsKHtsZXhlcjp0aGlzfSx1ZSksIm51bWJlciI9PXR5cGVvZiBfZSYmX2U+PTAmJihqPU1hdGgubWluKGosX2UpKX0pLGo8MS8wJiZqPj0wJiYoQz1nLnN1YnN0''@;'; + put 'put ''cmluZygwLGorMSkpfWlmKHRoaXMuc3RhdGUudG9wJiYodj10aGlzLnRva2VuaXplci5wYXJhZ3JhcGgoQykpKXt5PWhbaC5sZW5ndGgtMV0sSSYmInBhcmFncmFwaCI9PT15LnR5cGU/KHkucmF3Kz0iXG4iK3YucmF3LHkudGV4dCs9IlxuIit2LnRleHQsdGhpcy5pbmxpbmVRdWV1ZS5wb3Ao''@;'; + put 'put ''KSx0aGlzLmlubGluZVF1ZXVlW3RoaXMuaW5saW5lUXVldWUubGVuZ3RoLTFdLnNyYz15LnRleHQpOmgucHVzaCh2KSxJPUMubGVuZ3RoIT09Zy5sZW5ndGgsZz1nLnN1YnN0cmluZyh2LnJhdy5sZW5ndGgpO2NvbnRpbnVlfWlmKHY9dGhpcy50b2tlbml6ZXIudGV4dChnKSl7Zz1nLnN1YnN0''@;'; + put 'put ''cmluZyh2LnJhdy5sZW5ndGgpLHk9aFtoLmxlbmd0aC0xXSx5JiYidGV4dCI9PT15LnR5cGU/KHkucmF3Kz0iXG4iK3YucmF3LHkudGV4dCs9IlxuIit2LnRleHQsdGhpcy5pbmxpbmVRdWV1ZS5wb3AoKSx0aGlzLmlubGluZVF1ZXVlW3RoaXMuaW5saW5lUXVldWUubGVuZ3RoLTFdLnNyYz15''@;'; + put 'put ''LnRleHQpOmgucHVzaCh2KTtjb250aW51ZX1pZihnKXtjb25zdCBqPSJJbmZpbml0ZSBsb29wIG9uIGJ5dGU6ICIrZy5jaGFyQ29kZUF0KDApO2lmKHRoaXMub3B0aW9ucy5zaWxlbnQpe2NvbnNvbGUuZXJyb3Ioaik7YnJlYWt9dGhyb3cgbmV3IEVycm9yKGopfX1yZXR1cm4gdGhpcy5zdGF0''@;'; + put 'put ''ZS50b3A9ITAsaH1pbmxpbmUoZyxoKXt0aGlzLmlubGluZVF1ZXVlLnB1c2goe3NyYzpnLHRva2VuczpofSl9aW5saW5lVG9rZW5zKGcsaD1bXSl7bGV0IHYseSxDLGosdWUsX2UsST1nO2lmKHRoaXMudG9rZW5zLmxpbmtzKXtjb25zdCBCZT1PYmplY3Qua2V5cyh0aGlzLnRva2Vucy5saW5r''@;'; + put 'put ''cyk7aWYoQmUubGVuZ3RoPjApZm9yKDtudWxsIT0oaj10aGlzLnRva2VuaXplci5ydWxlcy5pbmxpbmUucmVmbGlua1NlYXJjaC5leGVjKEkpKTspQmUuaW5jbHVkZXMoalswXS5zbGljZShqWzBdLmxhc3RJbmRleE9mKCJbIikrMSwtMSkpJiYoST1JLnNsaWNlKDAsai5pbmRleCkrIlsiK1h3''@;'; + put 'put ''ZSgiYSIsalswXS5sZW5ndGgtMikrIl0iK0kuc2xpY2UodGhpcy50b2tlbml6ZXIucnVsZXMuaW5saW5lLnJlZmxpbmtTZWFyY2gubGFzdEluZGV4KSl9Zm9yKDtudWxsIT0oaj10aGlzLnRva2VuaXplci5ydWxlcy5pbmxpbmUuYmxvY2tTa2lwLmV4ZWMoSSkpOylJPUkuc2xpY2UoMCxqLmlu''@;'; + put 'put ''ZGV4KSsiWyIrWHdlKCJhIixqWzBdLmxlbmd0aC0yKSsiXSIrSS5zbGljZSh0aGlzLnRva2VuaXplci5ydWxlcy5pbmxpbmUuYmxvY2tTa2lwLmxhc3RJbmRleCk7Zm9yKDtudWxsIT0oaj10aGlzLnRva2VuaXplci5ydWxlcy5pbmxpbmUuZXNjYXBlZEVtU3QuZXhlYyhJKSk7KUk9SS5zbGlj''@;'; + put 'put ''ZSgwLGouaW5kZXgpKyIrKyIrSS5zbGljZSh0aGlzLnRva2VuaXplci5ydWxlcy5pbmxpbmUuZXNjYXBlZEVtU3QubGFzdEluZGV4KTtmb3IoO2c7KWlmKHVlfHwoX2U9IiIpLHVlPSExLCEodGhpcy5vcHRpb25zLmV4dGVuc2lvbnMmJnRoaXMub3B0aW9ucy5leHRlbnNpb25zLmlubGluZSYm''@;'; + put 'put ''dGhpcy5vcHRpb25zLmV4dGVuc2lvbnMuaW5saW5lLnNvbWUoQmU9PiEhKHY9QmUuY2FsbCh7bGV4ZXI6dGhpc30sZyxoKSkmJihnPWcuc3Vic3RyaW5nKHYucmF3Lmxlbmd0aCksaC5wdXNoKHYpLCEwKSkpKXtpZih2PXRoaXMudG9rZW5pemVyLmVzY2FwZShnKSl7Zz1nLnN1YnN0cmluZyh2''@;'; + put 'put ''LnJhdy5sZW5ndGgpLGgucHVzaCh2KTtjb250aW51ZX1pZih2PXRoaXMudG9rZW5pemVyLnRhZyhnKSl7Zz1nLnN1YnN0cmluZyh2LnJhdy5sZW5ndGgpLHk9aFtoLmxlbmd0aC0xXSx5JiYidGV4dCI9PT12LnR5cGUmJiJ0ZXh0Ij09PXkudHlwZT8oeS5yYXcrPXYucmF3LHkudGV4dCs9di50''@;'; + put 'put ''ZXh0KTpoLnB1c2godik7Y29udGludWV9aWYodj10aGlzLnRva2VuaXplci5saW5rKGcpKXtnPWcuc3Vic3RyaW5nKHYucmF3Lmxlbmd0aCksaC5wdXNoKHYpO2NvbnRpbnVlfWlmKHY9dGhpcy50b2tlbml6ZXIucmVmbGluayhnLHRoaXMudG9rZW5zLmxpbmtzKSl7Zz1nLnN1YnN0cmluZyh2''@;'; + put 'put ''LnJhdy5sZW5ndGgpLHk9aFtoLmxlbmd0aC0xXSx5JiYidGV4dCI9PT12LnR5cGUmJiJ0ZXh0Ij09PXkudHlwZT8oeS5yYXcrPXYucmF3LHkudGV4dCs9di50ZXh0KTpoLnB1c2godik7Y29udGludWV9aWYodj10aGlzLnRva2VuaXplci5lbVN0cm9uZyhnLEksX2UpKXtnPWcuc3Vic3RyaW5n''@;'; + put 'put ''KHYucmF3Lmxlbmd0aCksaC5wdXNoKHYpO2NvbnRpbnVlfWlmKHY9dGhpcy50b2tlbml6ZXIuY29kZXNwYW4oZykpe2c9Zy5zdWJzdHJpbmcodi5yYXcubGVuZ3RoKSxoLnB1c2godik7Y29udGludWV9aWYodj10aGlzLnRva2VuaXplci5icihnKSl7Zz1nLnN1YnN0cmluZyh2LnJhdy5sZW5n''@;'; + put 'put ''dGgpLGgucHVzaCh2KTtjb250aW51ZX1pZih2PXRoaXMudG9rZW5pemVyLmRlbChnKSl7Zz1nLnN1YnN0cmluZyh2LnJhdy5sZW5ndGgpLGgucHVzaCh2KTtjb250aW51ZX1pZih2PXRoaXMudG9rZW5pemVyLmF1dG9saW5rKGcsJHdlKSl7Zz1nLnN1YnN0cmluZyh2LnJhdy5sZW5ndGgpLGgu''@;'; + put 'put ''cHVzaCh2KTtjb250aW51ZX1pZighdGhpcy5zdGF0ZS5pbkxpbmsmJih2PXRoaXMudG9rZW5pemVyLnVybChnLCR3ZSkpKXtnPWcuc3Vic3RyaW5nKHYucmF3Lmxlbmd0aCksaC5wdXNoKHYpO2NvbnRpbnVlfWlmKEM9Zyx0aGlzLm9wdGlvbnMuZXh0ZW5zaW9ucyYmdGhpcy5vcHRpb25zLmV4''@;'; + put 'put ''dGVuc2lvbnMuc3RhcnRJbmxpbmUpe2xldCBCZT0xLzA7Y29uc3QgTmU9Zy5zbGljZSgxKTtsZXQgS2U7dGhpcy5vcHRpb25zLmV4dGVuc2lvbnMuc3RhcnRJbmxpbmUuZm9yRWFjaChmdW5jdGlvbihkdCl7S2U9ZHQuY2FsbCh7bGV4ZXI6dGhpc30sTmUpLCJudW1iZXIiPT10eXBlb2YgS2Um''@;'; + put 'put ''JktlPj0wJiYoQmU9TWF0aC5taW4oQmUsS2UpKX0pLEJlPDEvMCYmQmU+PTAmJihDPWcuc3Vic3RyaW5nKDAsQmUrMSkpfWlmKHY9dGhpcy50b2tlbml6ZXIuaW5saW5lVGV4dChDLGJqZSkpe2c9Zy5zdWJzdHJpbmcodi5yYXcubGVuZ3RoKSwiXyIhPT12LnJhdy5zbGljZSgtMSkmJihfZT12''@;'; + put 'put ''LnJhdy5zbGljZSgtMSkpLHVlPSEwLHk9aFtoLmxlbmd0aC0xXSx5JiYidGV4dCI9PT15LnR5cGU/KHkucmF3Kz12LnJhdyx5LnRleHQrPXYudGV4dCk6aC5wdXNoKHYpO2NvbnRpbnVlfWlmKGcpe2NvbnN0IEJlPSJJbmZpbml0ZSBsb29wIG9uIGJ5dGU6ICIrZy5jaGFyQ29kZUF0KDApO2lm''@;'; + put 'put ''KHRoaXMub3B0aW9ucy5zaWxlbnQpe2NvbnNvbGUuZXJyb3IoQmUpO2JyZWFrfXRocm93IG5ldyBFcnJvcihCZSl9fXJldHVybiBofX1jbGFzcyBTWntjb25zdHJ1Y3RvcihnKXt0aGlzLm9wdGlvbnM9Z3x8ck99Y29kZShnLGgsdil7Y29uc3QgeT0oaHx8IiIpLm1hdGNoKC9cUyovKVswXTtp''@;'; + put 'put ''Zih0aGlzLm9wdGlvbnMuaGlnaGxpZ2h0KXtjb25zdCBDPXRoaXMub3B0aW9ucy5oaWdobGlnaHQoZyx5KTtudWxsIT1DJiZDIT09ZyYmKHY9ITAsZz1DKX1yZXR1cm4gZz1nLnJlcGxhY2UoL1xuJC8sIiIpKyJcbiIseT8nPHByZT48Y29kZSBjbGFzcz0iJyt0aGlzLm9wdGlvbnMubGFuZ1By''@;'; + put 'put ''ZWZpeCtuZih5LCEwKSsnIj4nKyh2P2c6bmYoZywhMCkpKyI8L2NvZGU+PC9wcmU+XG4iOiI8cHJlPjxjb2RlPiIrKHY/ZzpuZihnLCEwKSkrIjwvY29kZT48L3ByZT5cbiJ9YmxvY2txdW90ZShnKXtyZXR1cm5gPGJsb2NrcXVvdGU+XG4ke2d9PC9ibG9ja3F1b3RlPlxuYH1odG1sKGcpe3Jl''@;'; + put 'put ''dHVybiBnfWhlYWRpbmcoZyxoLHYseSl7cmV0dXJuIHRoaXMub3B0aW9ucy5oZWFkZXJJZHM/YDxoJHtofSBpZD0iJHt0aGlzLm9wdGlvbnMuaGVhZGVyUHJlZml4K3kuc2x1Zyh2KX0iPiR7Z308L2gke2h9PlxuYDpgPGgke2h9PiR7Z308L2gke2h9PlxuYH1ocigpe3JldHVybiB0aGlzLm9w''@;'; + put 'put ''dGlvbnMueGh0bWw/Ijxoci8+XG4iOiI8aHI+XG4ifWxpc3QoZyxoLHYpe2NvbnN0IHk9aD8ib2wiOiJ1bCI7cmV0dXJuIjwiK3krKGgmJjEhPT12Pycgc3RhcnQ9IicrdisnIic6IiIpKyI+XG4iK2crIjwvIit5KyI+XG4ifWxpc3RpdGVtKGcpe3JldHVybmA8bGk+JHtnfTwvbGk+XG5gfWNo''@;'; + put 'put ''ZWNrYm94KGcpe3JldHVybiI8aW5wdXQgIisoZz8nY2hlY2tlZD0iIiAnOiIiKSsnZGlzYWJsZWQ9IiIgdHlwZT0iY2hlY2tib3giJysodGhpcy5vcHRpb25zLnhodG1sPyIgLyI6IiIpKyI+ICJ9cGFyYWdyYXBoKGcpe3JldHVybmA8cD4ke2d9PC9wPlxuYH10YWJsZShnLGgpe3JldHVybiBo''@;'; + put 'put ''JiYoaD1gPHRib2R5PiR7aH08L3Rib2R5PmApLCI8dGFibGU+XG48dGhlYWQ+XG4iK2crIjwvdGhlYWQ+XG4iK2grIjwvdGFibGU+XG4ifXRhYmxlcm93KGcpe3JldHVybmA8dHI+XG4ke2d9PC90cj5cbmB9dGFibGVjZWxsKGcsaCl7Y29uc3Qgdj1oLmhlYWRlcj8idGgiOiJ0ZCI7cmV0dXJu''@;'; + put 'put ''KGguYWxpZ24/YDwke3Z9IGFsaWduPSIke2guYWxpZ259Ij5gOmA8JHt2fT5gKStnK2A8LyR7dn0+XG5gfXN0cm9uZyhnKXtyZXR1cm5gPHN0cm9uZz4ke2d9PC9zdHJvbmc+YH1lbShnKXtyZXR1cm5gPGVtPiR7Z308L2VtPmB9Y29kZXNwYW4oZyl7cmV0dXJuYDxjb2RlPiR7Z308L2NvZGU+''@;'; + put 'put ''YH1icigpe3JldHVybiB0aGlzLm9wdGlvbnMueGh0bWw/Ijxici8+IjoiPGJyPiJ9ZGVsKGcpe3JldHVybmA8ZGVsPiR7Z308L2RlbD5gfWxpbmsoZyxoLHYpe2lmKG51bGw9PT0oZz1Vd2UodGhpcy5vcHRpb25zLnNhbml0aXplLHRoaXMub3B0aW9ucy5iYXNlVXJsLGcpKSlyZXR1cm4gdjts''@;'; + put 'put ''ZXQgeT0nPGEgaHJlZj0iJytuZihnKSsnIic7cmV0dXJuIGgmJih5Kz0nIHRpdGxlPSInK2grJyInKSx5Kz0iPiIrdisiPC9hPiIseX1pbWFnZShnLGgsdil7aWYobnVsbD09PShnPVV3ZSh0aGlzLm9wdGlvbnMuc2FuaXRpemUsdGhpcy5vcHRpb25zLmJhc2VVcmwsZykpKXJldHVybiB2O2xl''@;'; + put 'put ''dCB5PWA8aW1nIHNyYz0iJHtnfSIgYWx0PSIke3Z9ImA7cmV0dXJuIGgmJih5Kz1gIHRpdGxlPSIke2h9ImApLHkrPXRoaXMub3B0aW9ucy54aHRtbD8iLz4iOiI+Iix5fXRleHQoZyl7cmV0dXJuIGd9fWNsYXNzIHF3ZXtzdHJvbmcoZyl7cmV0dXJuIGd9ZW0oZyl7cmV0dXJuIGd9Y29kZXNw''@;'; + put 'put ''YW4oZyl7cmV0dXJuIGd9ZGVsKGcpe3JldHVybiBnfWh0bWwoZyl7cmV0dXJuIGd9dGV4dChnKXtyZXR1cm4gZ31saW5rKGcsaCx2KXtyZXR1cm4iIit2fWltYWdlKGcsaCx2KXtyZXR1cm4iIit2fWJyKCl7cmV0dXJuIiJ9fWNsYXNzIGViZXtjb25zdHJ1Y3Rvcigpe3RoaXMuc2Vlbj17fX1z''@;'; + put 'put ''ZXJpYWxpemUoZyl7cmV0dXJuIGcudG9Mb3dlckNhc2UoKS50cmltKCkucmVwbGFjZSgvPFshXC9hLXpdLio/Pi9naSwiIikucmVwbGFjZSgvW1x1MjAwMC1cdTIwNkZcdTJFMDAtXHUyRTdGXFwnISIjJCUmKCkqKywuLzo7PD0+P0BbXF1eYHt8fX5dL2csIiIpLnJlcGxhY2UoL1xzL2csIi0i''@;'; + put 'put ''KX1nZXROZXh0U2FmZVNsdWcoZyxoKXtsZXQgdj1nLHk9MDtpZih0aGlzLnNlZW4uaGFzT3duUHJvcGVydHkodikpe3k9dGhpcy5zZWVuW2ddO2Rve3krKyx2PWcrIi0iK3l9d2hpbGUodGhpcy5zZWVuLmhhc093blByb3BlcnR5KHYpKX1yZXR1cm4gaHx8KHRoaXMuc2VlbltnXT15LHRoaXMu''@;'; + put 'put ''c2Vlblt2XT0wKSx2fXNsdWcoZyxoPXt9KXtjb25zdCB2PXRoaXMuc2VyaWFsaXplKGcpO3JldHVybiB0aGlzLmdldE5leHRTYWZlU2x1Zyh2LGguZHJ5cnVuKX19Y2xhc3MgQ3Z7Y29uc3RydWN0b3IoZyl7dGhpcy5vcHRpb25zPWd8fHJPLHRoaXMub3B0aW9ucy5yZW5kZXJlcj10aGlzLm9w''@;'; + put 'put ''dGlvbnMucmVuZGVyZXJ8fG5ldyBTWix0aGlzLnJlbmRlcmVyPXRoaXMub3B0aW9ucy5yZW5kZXJlcix0aGlzLnJlbmRlcmVyLm9wdGlvbnM9dGhpcy5vcHRpb25zLHRoaXMudGV4dFJlbmRlcmVyPW5ldyBxd2UsdGhpcy5zbHVnZ2VyPW5ldyBlYmV9c3RhdGljIHBhcnNlKGcsaCl7cmV0dXJu''@;'; + put 'put ''IG5ldyBDdihoKS5wYXJzZShnKX1zdGF0aWMgcGFyc2VJbmxpbmUoZyxoKXtyZXR1cm4gbmV3IEN2KGgpLnBhcnNlSW5saW5lKGcpfXBhcnNlKGcsaD0hMCl7bGV0IHksQyxJLGosdWUsX2UsQmUsTmUsS2UsZHQsT3QsJHQsZm4sTG4saXIsbXIsU3Isd3IsUXIsdj0iIjtjb25zdCB5aT1nLmxl''@;'; + put 'put ''bmd0aDtmb3IoeT0wO3k8eWk7eSsrKWlmKGR0PWdbeV0sdGhpcy5vcHRpb25zLmV4dGVuc2lvbnMmJnRoaXMub3B0aW9ucy5leHRlbnNpb25zLnJlbmRlcmVycyYmdGhpcy5vcHRpb25zLmV4dGVuc2lvbnMucmVuZGVyZXJzW2R0LnR5cGVdJiYoUXI9dGhpcy5vcHRpb25zLmV4dGVuc2lvbnMu''@;'; + put 'put ''cmVuZGVyZXJzW2R0LnR5cGVdLmNhbGwoe3BhcnNlcjp0aGlzfSxkdCksITEhPT1Rcnx8IVsic3BhY2UiLCJociIsImhlYWRpbmciLCJjb2RlIiwidGFibGUiLCJibG9ja3F1b3RlIiwibGlzdCIsImh0bWwiLCJwYXJhZ3JhcGgiLCJ0ZXh0Il0uaW5jbHVkZXMoZHQudHlwZSkpKXYrPVFyfHwi''@;'; + put 'put ''IjtlbHNlIHN3aXRjaChkdC50eXBlKXtjYXNlInNwYWNlIjpjb250aW51ZTtjYXNlImhyIjp2Kz10aGlzLnJlbmRlcmVyLmhyKCk7Y29udGludWU7Y2FzZSJoZWFkaW5nIjp2Kz10aGlzLnJlbmRlcmVyLmhlYWRpbmcodGhpcy5wYXJzZUlubGluZShkdC50b2tlbnMpLGR0LmRlcHRoLFl3ZSh0''@;'; + put 'put ''aGlzLnBhcnNlSW5saW5lKGR0LnRva2Vucyx0aGlzLnRleHRSZW5kZXJlcikpLHRoaXMuc2x1Z2dlcik7Y29udGludWU7Y2FzZSJjb2RlIjp2Kz10aGlzLnJlbmRlcmVyLmNvZGUoZHQudGV4dCxkdC5sYW5nLGR0LmVzY2FwZWQpO2NvbnRpbnVlO2Nhc2UidGFibGUiOmZvcihOZT0iIixCZT0i''@;'; + put 'put ''IixqPWR0LmhlYWRlci5sZW5ndGgsQz0wO0M8ajtDKyspQmUrPXRoaXMucmVuZGVyZXIudGFibGVjZWxsKHRoaXMucGFyc2VJbmxpbmUoZHQuaGVhZGVyW0NdLnRva2Vucykse2hlYWRlcjohMCxhbGlnbjpkdC5hbGlnbltDXX0pO2ZvcihOZSs9dGhpcy5yZW5kZXJlci50YWJsZXJvdyhCZSks''@;'; + put 'put ''S2U9IiIsaj1kdC5yb3dzLmxlbmd0aCxDPTA7QzxqO0MrKyl7Zm9yKF9lPWR0LnJvd3NbQ10sQmU9IiIsdWU9X2UubGVuZ3RoLEk9MDtJPHVlO0krKylCZSs9dGhpcy5yZW5kZXJlci50YWJsZWNlbGwodGhpcy5wYXJzZUlubGluZShfZVtJXS50b2tlbnMpLHtoZWFkZXI6ITEsYWxpZ246ZHQu''@;'; + put 'put ''YWxpZ25bSV19KTtLZSs9dGhpcy5yZW5kZXJlci50YWJsZXJvdyhCZSl9dis9dGhpcy5yZW5kZXJlci50YWJsZShOZSxLZSk7Y29udGludWU7Y2FzZSJibG9ja3F1b3RlIjpLZT10aGlzLnBhcnNlKGR0LnRva2Vucyksdis9dGhpcy5yZW5kZXJlci5ibG9ja3F1b3RlKEtlKTtjb250aW51ZTtj''@;'; + put 'put ''YXNlImxpc3QiOmZvcihPdD1kdC5vcmRlcmVkLCR0PWR0LnN0YXJ0LGZuPWR0Lmxvb3NlLGo9ZHQuaXRlbXMubGVuZ3RoLEtlPSIiLEM9MDtDPGo7QysrKWlyPWR0Lml0ZW1zW0NdLG1yPWlyLmNoZWNrZWQsU3I9aXIudGFzayxMbj0iIixpci50YXNrJiYod3I9dGhpcy5yZW5kZXJlci5jaGVj''@;'; + put 'put ''a2JveChtciksZm4/aXIudG9rZW5zLmxlbmd0aD4wJiYicGFyYWdyYXBoIj09PWlyLnRva2Vuc1swXS50eXBlPyhpci50b2tlbnNbMF0udGV4dD13cisiICIraXIudG9rZW5zWzBdLnRleHQsaXIudG9rZW5zWzBdLnRva2VucyYmaXIudG9rZW5zWzBdLnRva2Vucy5sZW5ndGg+MCYmInRleHQi''@;'; + put 'put ''PT09aXIudG9rZW5zWzBdLnRva2Vuc1swXS50eXBlJiYoaXIudG9rZW5zWzBdLnRva2Vuc1swXS50ZXh0PXdyKyIgIitpci50b2tlbnNbMF0udG9rZW5zWzBdLnRleHQpKTppci50b2tlbnMudW5zaGlmdCh7dHlwZToidGV4dCIsdGV4dDp3cn0pOkxuKz13ciksTG4rPXRoaXMucGFyc2UoaXIu''@;'; + put 'put ''dG9rZW5zLGZuKSxLZSs9dGhpcy5yZW5kZXJlci5saXN0aXRlbShMbixTcixtcik7dis9dGhpcy5yZW5kZXJlci5saXN0KEtlLE90LCR0KTtjb250aW51ZTtjYXNlImh0bWwiOnYrPXRoaXMucmVuZGVyZXIuaHRtbChkdC50ZXh0KTtjb250aW51ZTtjYXNlInBhcmFncmFwaCI6dis9dGhpcy5y''@;'; + put 'put ''ZW5kZXJlci5wYXJhZ3JhcGgodGhpcy5wYXJzZUlubGluZShkdC50b2tlbnMpKTtjb250aW51ZTtjYXNlInRleHQiOmZvcihLZT1kdC50b2tlbnM/dGhpcy5wYXJzZUlubGluZShkdC50b2tlbnMpOmR0LnRleHQ7eSsxPHlpJiYidGV4dCI9PT1nW3krMV0udHlwZTspZHQ9Z1srK3ldLEtlKz0i''@;'; + put 'put ''XG4iKyhkdC50b2tlbnM/dGhpcy5wYXJzZUlubGluZShkdC50b2tlbnMpOmR0LnRleHQpO3YrPWg/dGhpcy5yZW5kZXJlci5wYXJhZ3JhcGgoS2UpOktlO2NvbnRpbnVlO2RlZmF1bHQ6e2NvbnN0IEtpPSdUb2tlbiB3aXRoICInK2R0LnR5cGUrJyIgdHlwZSB3YXMgbm90IGZvdW5kLic7aWYo''@;'; + put 'put ''dGhpcy5vcHRpb25zLnNpbGVudClyZXR1cm4gdm9pZCBjb25zb2xlLmVycm9yKEtpKTt0aHJvdyBuZXcgRXJyb3IoS2kpfX1yZXR1cm4gdn1wYXJzZUlubGluZShnLGgpe2g9aHx8dGhpcy5yZW5kZXJlcjtsZXQgeSxDLEksdj0iIjtjb25zdCBqPWcubGVuZ3RoO2Zvcih5PTA7eTxqO3krKylp''@;'; + put 'put ''ZihDPWdbeV0sdGhpcy5vcHRpb25zLmV4dGVuc2lvbnMmJnRoaXMub3B0aW9ucy5leHRlbnNpb25zLnJlbmRlcmVycyYmdGhpcy5vcHRpb25zLmV4dGVuc2lvbnMucmVuZGVyZXJzW0MudHlwZV0mJihJPXRoaXMub3B0aW9ucy5leHRlbnNpb25zLnJlbmRlcmVyc1tDLnR5cGVdLmNhbGwoe3Bh''@;'; + put 'put ''cnNlcjp0aGlzfSxDKSwhMSE9PUl8fCFbImVzY2FwZSIsImh0bWwiLCJsaW5rIiwiaW1hZ2UiLCJzdHJvbmciLCJlbSIsImNvZGVzcGFuIiwiYnIiLCJkZWwiLCJ0ZXh0Il0uaW5jbHVkZXMoQy50eXBlKSkpdis9SXx8IiI7ZWxzZSBzd2l0Y2goQy50eXBlKXtjYXNlImVzY2FwZSI6Y2FzZSJ0''@;'; + put 'put ''ZXh0Ijp2Kz1oLnRleHQoQy50ZXh0KTticmVhaztjYXNlImh0bWwiOnYrPWguaHRtbChDLnRleHQpO2JyZWFrO2Nhc2UibGluayI6dis9aC5saW5rKEMuaHJlZixDLnRpdGxlLHRoaXMucGFyc2VJbmxpbmUoQy50b2tlbnMsaCkpO2JyZWFrO2Nhc2UiaW1hZ2UiOnYrPWguaW1hZ2UoQy5ocmVm''@;'; + put 'put ''LEMudGl0bGUsQy50ZXh0KTticmVhaztjYXNlInN0cm9uZyI6dis9aC5zdHJvbmcodGhpcy5wYXJzZUlubGluZShDLnRva2VucyxoKSk7YnJlYWs7Y2FzZSJlbSI6dis9aC5lbSh0aGlzLnBhcnNlSW5saW5lKEMudG9rZW5zLGgpKTticmVhaztjYXNlImNvZGVzcGFuIjp2Kz1oLmNvZGVzcGFu''@;'; + put 'put ''KEMudGV4dCk7YnJlYWs7Y2FzZSJiciI6dis9aC5icigpO2JyZWFrO2Nhc2UiZGVsIjp2Kz1oLmRlbCh0aGlzLnBhcnNlSW5saW5lKEMudG9rZW5zLGgpKTticmVhaztkZWZhdWx0Ontjb25zdCB1ZT0nVG9rZW4gd2l0aCAiJytDLnR5cGUrJyIgdHlwZSB3YXMgbm90IGZvdW5kLic7aWYodGhp''@;'; + put 'put ''cy5vcHRpb25zLnNpbGVudClyZXR1cm4gdm9pZCBjb25zb2xlLmVycm9yKHVlKTt0aHJvdyBuZXcgRXJyb3IodWUpfX1yZXR1cm4gdn19ZnVuY3Rpb24gZWwoZCxnLGgpe2lmKG51bGw9PWQpdGhyb3cgbmV3IEVycm9yKCJtYXJrZWQoKTogaW5wdXQgcGFyYW1ldGVyIGlzIHVuZGVmaW5lZCBv''@;'; + put 'put ''ciBudWxsIik7aWYoInN0cmluZyIhPXR5cGVvZiBkKXRocm93IG5ldyBFcnJvcigibWFya2VkKCk6IGlucHV0IHBhcmFtZXRlciBpcyBvZiB0eXBlICIrT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGQpKyIsIHN0cmluZyBleHBlY3RlZCIpO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBn''@;'; + put 'put ''JiYoaD1nLGc9bnVsbCksSndlKGc9dzgoe30sZWwuZGVmYXVsdHMsZ3x8e30pKSxoKXtjb25zdCB2PWcuaGlnaGxpZ2h0O2xldCB5O3RyeXt5PV92LmxleChkLGcpfWNhdGNoKGope3JldHVybiBoKGopfWNvbnN0IEM9ZnVuY3Rpb24oail7bGV0IHVlO2lmKCFqKXRyeXtnLndhbGtUb2tlbnMm''@;'; + put 'put ''JmVsLndhbGtUb2tlbnMoeSxnLndhbGtUb2tlbnMpLHVlPUN2LnBhcnNlKHksZyl9Y2F0Y2goX2Upe2o9X2V9cmV0dXJuIGcuaGlnaGxpZ2h0PXYsaj9oKGopOmgobnVsbCx1ZSl9O2lmKCF2fHx2Lmxlbmd0aDwzfHwoZGVsZXRlIGcuaGlnaGxpZ2h0LCF5Lmxlbmd0aCkpcmV0dXJuIEMoKTts''@;'; + put 'put ''ZXQgST0wO3JldHVybiBlbC53YWxrVG9rZW5zKHksZnVuY3Rpb24oail7ImNvZGUiPT09ai50eXBlJiYoSSsrLHNldFRpbWVvdXQoKCk9Pnt2KGoudGV4dCxqLmxhbmcsZnVuY3Rpb24odWUsX2Upe2lmKHVlKXJldHVybiBDKHVlKTtudWxsIT1fZSYmX2UhPT1qLnRleHQmJihqLnRleHQ9X2Us''@;'; + put 'put ''ai5lc2NhcGVkPSEwKSxJLS0sMD09PUkmJkMoKX0pfSwwKSl9KSx2b2lkKDA9PT1JJiZDKCkpfXRyeXtjb25zdCB2PV92LmxleChkLGcpO3JldHVybiBnLndhbGtUb2tlbnMmJmVsLndhbGtUb2tlbnModixnLndhbGtUb2tlbnMpLEN2LnBhcnNlKHYsZyl9Y2F0Y2godil7aWYodi5tZXNzYWdl''@;'; + put 'put ''Kz0iXG5QbGVhc2UgcmVwb3J0IHRoaXMgdG8gaHR0cHM6Ly9naXRodWIuY29tL21hcmtlZGpzL21hcmtlZC4iLGcuc2lsZW50KXJldHVybiI8cD5BbiBlcnJvciBvY2N1cnJlZDo8L3A+PHByZT4iK25mKHYubWVzc2FnZSsiIiwhMCkrIjwvcHJlPiI7dGhyb3cgdn19ZWwub3B0aW9ucz1lbC5z''@;'; + put 'put ''ZXRPcHRpb25zPWZ1bmN0aW9uKGQpe3JldHVybiB3OChlbC5kZWZhdWx0cyxkKSxmdW5jdGlvbiBvamUoZCl7ck89ZH0oZWwuZGVmYXVsdHMpLGVsfSxlbC5nZXREZWZhdWx0cz1mdW5jdGlvbiBHd2UoKXtyZXR1cm57YmFzZVVybDpudWxsLGJyZWFrczohMSxleHRlbnNpb25zOm51bGwsZ2Zt''@;'; + put 'put ''OiEwLGhlYWRlcklkczohMCxoZWFkZXJQcmVmaXg6IiIsaGlnaGxpZ2h0Om51bGwsbGFuZ1ByZWZpeDoibGFuZ3VhZ2UtIixtYW5nbGU6ITAscGVkYW50aWM6ITEscmVuZGVyZXI6bnVsbCxzYW5pdGl6ZTohMSxzYW5pdGl6ZXI6bnVsbCxzaWxlbnQ6ITEsc21hcnRMaXN0czohMSxzbWFydHlw''@;'; + put 'put ''YW50czohMSx0b2tlbml6ZXI6bnVsbCx3YWxrVG9rZW5zOm51bGwseGh0bWw6ITF9fSxlbC5kZWZhdWx0cz1yTyxlbC51c2U9ZnVuY3Rpb24oLi4uZCl7Y29uc3QgZz13OCh7fSwuLi5kKSxoPWVsLmRlZmF1bHRzLmV4dGVuc2lvbnN8fHtyZW5kZXJlcnM6e30sY2hpbGRUb2tlbnM6e319O2xl''@;'; + put 'put ''dCB2O2QuZm9yRWFjaCh5PT57aWYoeS5leHRlbnNpb25zJiYodj0hMCx5LmV4dGVuc2lvbnMuZm9yRWFjaChDPT57aWYoIUMubmFtZSl0aHJvdyBuZXcgRXJyb3IoImV4dGVuc2lvbiBuYW1lIHJlcXVpcmVkIik7aWYoQy5yZW5kZXJlcil7Y29uc3QgST1oLnJlbmRlcmVycz9oLnJlbmRlcmVy''@;'; + put 'put ''c1tDLm5hbWVdOm51bGw7aC5yZW5kZXJlcnNbQy5uYW1lXT1JP2Z1bmN0aW9uKC4uLmope2xldCB1ZT1DLnJlbmRlcmVyLmFwcGx5KHRoaXMsaik7cmV0dXJuITE9PT11ZSYmKHVlPUkuYXBwbHkodGhpcyxqKSksdWV9OkMucmVuZGVyZXJ9aWYoQy50b2tlbml6ZXIpe2lmKCFDLmxldmVsfHwi''@;'; + put 'put ''YmxvY2siIT09Qy5sZXZlbCYmImlubGluZSIhPT1DLmxldmVsKXRocm93IG5ldyBFcnJvcigiZXh0ZW5zaW9uIGxldmVsIG11c3QgYmUgJ2Jsb2NrJyBvciAnaW5saW5lJyIpO2hbQy5sZXZlbF0/aFtDLmxldmVsXS51bnNoaWZ0KEMudG9rZW5pemVyKTpoW0MubGV2ZWxdPVtDLnRva2VuaXpl''@;'; + put 'put ''cl0sQy5zdGFydCYmKCJibG9jayI9PT1DLmxldmVsP2guc3RhcnRCbG9jaz9oLnN0YXJ0QmxvY2sucHVzaChDLnN0YXJ0KTpoLnN0YXJ0QmxvY2s9W0Muc3RhcnRdOiJpbmxpbmUiPT09Qy5sZXZlbCYmKGguc3RhcnRJbmxpbmU/aC5zdGFydElubGluZS5wdXNoKEMuc3RhcnQpOmguc3RhcnRJ''@;'; + put 'put ''bmxpbmU9W0Muc3RhcnRdKSl9Qy5jaGlsZFRva2VucyYmKGguY2hpbGRUb2tlbnNbQy5uYW1lXT1DLmNoaWxkVG9rZW5zKX0pKSx5LnJlbmRlcmVyKXtjb25zdCBDPWVsLmRlZmF1bHRzLnJlbmRlcmVyfHxuZXcgU1o7Zm9yKGNvbnN0IEkgaW4geS5yZW5kZXJlcil7Y29uc3Qgaj1DW0ldO0Nb''@;'; + put 'put ''SV09KC4uLnVlKT0+e2xldCBfZT15LnJlbmRlcmVyW0ldLmFwcGx5KEMsdWUpO3JldHVybiExPT09X2UmJihfZT1qLmFwcGx5KEMsdWUpKSxfZX19Zy5yZW5kZXJlcj1DfWlmKHkudG9rZW5pemVyKXtjb25zdCBDPWVsLmRlZmF1bHRzLnRva2VuaXplcnx8bmV3IEhoZTtmb3IoY29uc3QgSSBp''@;'; + put 'put ''biB5LnRva2VuaXplcil7Y29uc3Qgaj1DW0ldO0NbSV09KC4uLnVlKT0+e2xldCBfZT15LnRva2VuaXplcltJXS5hcHBseShDLHVlKTtyZXR1cm4hMT09PV9lJiYoX2U9ai5hcHBseShDLHVlKSksX2V9fWcudG9rZW5pemVyPUN9aWYoeS53YWxrVG9rZW5zKXtjb25zdCBDPWVsLmRlZmF1bHRz''@;'; + put 'put ''LndhbGtUb2tlbnM7Zy53YWxrVG9rZW5zPWZ1bmN0aW9uKEkpe3kud2Fsa1Rva2Vucy5jYWxsKHRoaXMsSSksQyYmQy5jYWxsKHRoaXMsSSl9fXYmJihnLmV4dGVuc2lvbnM9aCksZWwuc2V0T3B0aW9ucyhnKX0pfSxlbC53YWxrVG9rZW5zPWZ1bmN0aW9uKGQsZyl7Zm9yKGNvbnN0IGggb2Yg''@;'; + put 'put ''ZClzd2l0Y2goZy5jYWxsKGVsLGgpLGgudHlwZSl7Y2FzZSJ0YWJsZSI6Zm9yKGNvbnN0IHYgb2YgaC5oZWFkZXIpZWwud2Fsa1Rva2Vucyh2LnRva2VucyxnKTtmb3IoY29uc3QgdiBvZiBoLnJvd3MpZm9yKGNvbnN0IHkgb2YgdillbC53YWxrVG9rZW5zKHkudG9rZW5zLGcpO2JyZWFrO2Nh''@;'; + put 'put ''c2UibGlzdCI6ZWwud2Fsa1Rva2VucyhoLml0ZW1zLGcpO2JyZWFrO2RlZmF1bHQ6ZWwuZGVmYXVsdHMuZXh0ZW5zaW9ucyYmZWwuZGVmYXVsdHMuZXh0ZW5zaW9ucy5jaGlsZFRva2VucyYmZWwuZGVmYXVsdHMuZXh0ZW5zaW9ucy5jaGlsZFRva2Vuc1toLnR5cGVdP2VsLmRlZmF1bHRzLmV4''@;'; + put 'put ''dGVuc2lvbnMuY2hpbGRUb2tlbnNbaC50eXBlXS5mb3JFYWNoKGZ1bmN0aW9uKHYpe2VsLndhbGtUb2tlbnMoaFt2XSxnKX0pOmgudG9rZW5zJiZlbC53YWxrVG9rZW5zKGgudG9rZW5zLGcpfX0sZWwucGFyc2VJbmxpbmU9ZnVuY3Rpb24oZCxnKXtpZihudWxsPT1kKXRocm93IG5ldyBFcnJv''@;'; + put 'put ''cigibWFya2VkLnBhcnNlSW5saW5lKCk6IGlucHV0IHBhcmFtZXRlciBpcyB1bmRlZmluZWQgb3IgbnVsbCIpO2lmKCJzdHJpbmciIT10eXBlb2YgZCl0aHJvdyBuZXcgRXJyb3IoIm1hcmtlZC5wYXJzZUlubGluZSgpOiBpbnB1dCBwYXJhbWV0ZXIgaXMgb2YgdHlwZSAiK09iamVjdC5wcm90''@;'; + put 'put ''b3R5cGUudG9TdHJpbmcuY2FsbChkKSsiLCBzdHJpbmcgZXhwZWN0ZWQiKTtKd2UoZz13OCh7fSxlbC5kZWZhdWx0cyxnfHx7fSkpO3RyeXtjb25zdCBoPV92LmxleElubGluZShkLGcpO3JldHVybiBnLndhbGtUb2tlbnMmJmVsLndhbGtUb2tlbnMoaCxnLndhbGtUb2tlbnMpLEN2LnBhcnNl''@;'; + put 'put ''SW5saW5lKGgsZyl9Y2F0Y2goaCl7aWYoaC5tZXNzYWdlKz0iXG5QbGVhc2UgcmVwb3J0IHRoaXMgdG8gaHR0cHM6Ly9naXRodWIuY29tL21hcmtlZGpzL21hcmtlZC4iLGcuc2lsZW50KXJldHVybiI8cD5BbiBlcnJvciBvY2N1cnJlZDo8L3A+PHByZT4iK25mKGgubWVzc2FnZSsiIiwhMCkr''@;'; + put 'put ''IjwvcHJlPiI7dGhyb3cgaH19LGVsLlBhcnNlcj1DdixlbC5wYXJzZXI9Q3YucGFyc2UsZWwuUmVuZGVyZXI9U1osZWwuVGV4dFJlbmRlcmVyPXF3ZSxlbC5MZXhlcj1fdixlbC5sZXhlcj1fdi5sZXgsZWwuVG9rZW5pemVyPUhoZSxlbC5TbHVnZ2VyPWViZSxlbC5wYXJzZT1lbDtjb25zdCBf''@;'; + put 'put ''amU9WyIqIl07bGV0IE5oZT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKCl7dGhpcy5fYnV0dG9uQ2xpY2skPW5ldyAkZSx0aGlzLmNvcGllZCQ9dGhpcy5fYnV0dG9uQ2xpY2skLnBpcGUoWWgoKCk9Pm5yKGFhKCEwKSxmdW5jdGlvbiB0amUoZD0wLGcsaCl7bGV0IHY9LTE7cmV0dXJuIHp3''@;'; + put 'put ''ZShnKT92PU51bWJlcihnKTwxPzE6TnVtYmVyKGcpOnd0KGcpJiYoaD1nKSx3dChoKXx8KGg9ZFYpLG5ldyBGKHk9Pntjb25zdCBDPXp3ZShkKT9kOitkLWgubm93KCk7cmV0dXJuIGguc2NoZWR1bGUobmplLEMse2luZGV4OjAscGVyaW9kOnYsc3Vic2NyaWJlcjp5fSl9KX0oM2UzKS5waXBl''@;'; + put 'put ''KEc1KCExKSkpKSxmdW5jdGlvbiBBWChkLGcpe3JldHVybiBoPT5oLmxpZnQobmV3IFlzZShkLGcpKX0oKSxmdW5jdGlvbiByamUoZCxnLGgpe2xldCB2O3JldHVybiB2PWQmJiJvYmplY3QiPT10eXBlb2YgZD9kOntidWZmZXJTaXplOmQsd2luZG93VGltZTpnLHJlZkNvdW50OiExLHNjaGVk''@;'; + put 'put ''dWxlcjpofSx5PT55LmxpZnQoZnVuY3Rpb24gaWplKHtidWZmZXJTaXplOmQ9TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZLHdpbmRvd1RpbWU6Zz1OdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkscmVmQ291bnQ6aCxzY2hlZHVsZXI6dn0pe2xldCB5LEksQz0wLGo9ITEsdWU9ITE7cmV0dXJuIGZ1''@;'; + put 'put ''bmN0aW9uKEJlKXtsZXQgTmU7QysrLCF5fHxqPyhqPSExLHk9bmV3IHhrKGQsZyx2KSxOZT15LnN1YnNjcmliZSh0aGlzKSxJPUJlLnN1YnNjcmliZSh7bmV4dChLZSl7eS5uZXh0KEtlKX0sZXJyb3IoS2Upe2o9ITAseS5lcnJvcihLZSl9LGNvbXBsZXRlKCl7dWU9ITAsST12b2lkIDAseS5j''@;'; + put 'put ''b21wbGV0ZSgpfX0pLHVlJiYoST12b2lkIDApKTpOZT15LnN1YnNjcmliZSh0aGlzKSx0aGlzLmFkZCgoKT0+e0MtLSxOZS51bnN1YnNjcmliZSgpLE5lPXZvaWQgMCxJJiYhdWUmJmgmJjA9PT1DJiYoSS51bnN1YnNjcmliZSgpLEk9dm9pZCAwLHk9dm9pZCAwKX0pfX0odikpfSgxKSksdGhp''@;'; + put 'put ''cy5jb3BpZWRUZXh0JD10aGlzLmNvcGllZCQucGlwZShONSghMSksbXQoaD0+aD8iQ29waWVkIjoiQ29weSIpKX1vbkNvcHlUb0NsaXBib2FyZENsaWNrKCl7dGhpcy5fYnV0dG9uQ2xpY2skLm5leHQoKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9''@;'; + put 'put ''LGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQsc2VsZWN0b3JzOltbIm1hcmtkb3duLWNsaXBib2FyZCJdXSxkZWNsczo0LHZhcnM6Nyxjb25zdHM6W1sxLCJtYXJrZG93bi1jbGlwYm9hcmQtYnV0dG9uIiwzLCJjbGljayJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihoLHYpezEmaCYmKHJ0KDAsImJ1dHRv''@;'; + put 'put ''biIsMCksR24oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiB2Lm9uQ29weVRvQ2xpcGJvYXJkQ2xpY2soKX0pLG5uKDEsImFzeW5jIiksWXQoMiksbm4oMywiYXN5bmMiKSxsdCgpKSwyJmgmJihGaSgiY29waWVkIix6dCgxLDMsdi5jb3BpZWQkKSksdXQoMiksamkoenQoMyw1LHYuY29waWVk''@;'; + put 'put ''VGV4dCQpKSl9LGRlcGVuZGVuY2llczpbV2hdLGVuY2Fwc3VsYXRpb246MixjaGFuZ2VEZXRlY3Rpb246MH0pLGR9KSgpO2NsYXNzIFNqZXt9dmFyIE1aPSgoKT0+KGZ1bmN0aW9uKGQpe2QuQ29tbWFuZExpbmU9ImNvbW1hbmQtbGluZSIsZC5MaW5lSGlnaGxpZ2h0PSJsaW5lLWhpZ2hsaWdo''@;'; + put 'put ''dCIsZC5MaW5lTnVtYmVycz0ibGluZS1udW1iZXJzIn0oTVp8fChNWj17fSkpLE1aKSkoKTtjbGFzcyBFamV7fWNvbnN0IHRiZT1uZXcgemUoIlNFQ1VSSVRZX0NPTlRFWFQiKTtsZXQgVmhlPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2LHksQyxJLGope3RoaXMucGxhdGZvcm09aCx0''@;'; + put 'put ''aGlzLnNlY3VyaXR5Q29udGV4dD12LHRoaXMuaHR0cD15LHRoaXMuY2xpcGJvYXJkT3B0aW9ucz1DLHRoaXMuc2FuaXRpemVyPWosdGhpcy5ERUZBVUxUX1BBUlNFX09QVElPTlM9e2RlY29kZUh0bWw6ITEsaW5saW5lOiExLGVtb2ppOiExLG1lcm1haWQ6ITEsbWFya2VkT3B0aW9uczp2b2lk''@;'; + put 'put ''IDB9LHRoaXMuREVGQVVMVF9SRU5ERVJfT1BUSU9OUz17Y2xpcGJvYXJkOiExLGNsaXBib2FyZE9wdGlvbnM6dm9pZCAwLGthdGV4OiExLGthdGV4T3B0aW9uczp2b2lkIDAsbWVybWFpZDohMSxtZXJtYWlkT3B0aW9uczp2b2lkIDB9LHRoaXMuREVGQVVMVF9NQVJLRURfT1BUSU9OUz17cmVu''@;'; + put 'put ''ZGVyZXI6bmV3IFNafSx0aGlzLkRFRkFVTFRfS0FURVhfT1BUSU9OUz17ZGVsaW1pdGVyczpbe2xlZnQ6IiQkIixyaWdodDoiJCQiLGRpc3BsYXk6ITB9LHtsZWZ0OiIkIixyaWdodDoiJCIsZGlzcGxheTohMX0se2xlZnQ6IlxcKCIscmlnaHQ6IlxcKSIsZGlzcGxheTohMX0se2xlZnQ6Ilxc''@;'; + put 'put ''YmVnaW57ZXF1YXRpb259IixyaWdodDoiXFxlbmR7ZXF1YXRpb259IixkaXNwbGF5OiEwfSx7bGVmdDoiXFxiZWdpbnthbGlnbn0iLHJpZ2h0OiJcXGVuZHthbGlnbn0iLGRpc3BsYXk6ITB9LHtsZWZ0OiJcXGJlZ2lue2FsaWduYXR9IixyaWdodDoiXFxlbmR7YWxpZ25hdH0iLGRpc3BsYXk6''@;'; + put 'put ''ITB9LHtsZWZ0OiJcXGJlZ2lue2dhdGhlcn0iLHJpZ2h0OiJcXGVuZHtnYXRoZXJ9IixkaXNwbGF5OiEwfSx7bGVmdDoiXFxiZWdpbntDRH0iLHJpZ2h0OiJcXGVuZHtDRH0iLGRpc3BsYXk6ITB9LHtsZWZ0OiJcXFsiLHJpZ2h0OiJcXF0iLGRpc3BsYXk6ITB9XX0sdGhpcy5ERUZBVUxUX01F''@;'; + put 'put ''Uk1BSURfT1BUSU9OUz17c3RhcnRPbkxvYWQ6ITF9LHRoaXMuREVGQVVMVF9DTElQQk9BUkRfT1BUSU9OUz17YnV0dG9uQ29tcG9uZW50OnZvaWQgMH0sdGhpcy5fcmVsb2FkJD1uZXcgJGUsdGhpcy5yZWxvYWQkPXRoaXMuX3JlbG9hZCQuYXNPYnNlcnZhYmxlKCksdGhpcy5vcHRpb25zPUl9''@;'; + put 'put ''Z2V0IG9wdGlvbnMoKXtyZXR1cm4gdGhpcy5fb3B0aW9uc31zZXQgb3B0aW9ucyhoKXt0aGlzLl9vcHRpb25zPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0aGlzLkRFRkFVTFRfTUFSS0VEX09QVElPTlMpLGgpfWdldCByZW5kZXJlcigpe3JldHVybiB0aGlzLm9wdGlvbnMucmVu''@;'; + put 'put ''ZGVyZXJ9c2V0IHJlbmRlcmVyKGgpe3RoaXMub3B0aW9ucy5yZW5kZXJlcj1ofXBhcnNlKGgsdj10aGlzLkRFRkFVTFRfUEFSU0VfT1BUSU9OUyl7Y29uc3R7ZGVjb2RlSHRtbDp5LGlubGluZTpDLGVtb2ppOkksbWVybWFpZDpqLG1hcmtlZE9wdGlvbnM6dWU9dGhpcy5vcHRpb25zfT12O2om''@;'; + put 'put ''Jih0aGlzLnJlbmRlcmVyPXRoaXMuZXh0ZW5kUmVuZGVyZXIodWUucmVuZGVyZXJ8fG5ldyBTWikpO2NvbnN0IF9lPXRoaXMudHJpbUluZGVudGF0aW9uKGgpLEJlPXk/dGhpcy5kZWNvZGVIdG1sKF9lKTpfZSxOZT1JP3RoaXMucGFyc2VFbW9qaShCZSk6QmUsS2U9dGhpcy5wYXJzZU1hcmtl''@;'; + put 'put ''ZChOZSx1ZSxDKTtyZXR1cm4gdGhpcy5zYW5pdGl6ZXIuc2FuaXRpemUodGhpcy5zZWN1cml0eUNvbnRleHQsS2UpfHwiIn1yZW5kZXIoaCx2PXRoaXMuREVGQVVMVF9SRU5ERVJfT1BUSU9OUyx5KXtjb25zdHtjbGlwYm9hcmQ6QyxjbGlwYm9hcmRPcHRpb25zOkksa2F0ZXg6aixrYXRleE9w''@;'; + put 'put ''dGlvbnM6dWUsbWVybWFpZDpfZSxtZXJtYWlkT3B0aW9uczpCZX09djtDJiZ0aGlzLnJlbmRlckNsaXBib2FyZChoLHksT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdGhpcy5ERUZBVUxUX0NMSVBCT0FSRF9PUFRJT05TKSx0aGlzLmNsaXBib2FyZE9wdGlv''@;'; + put 'put ''bnMpLEkpKSxqJiZ0aGlzLnJlbmRlckthdGV4KGgsT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHRoaXMuREVGQVVMVF9LQVRFWF9PUFRJT05TKSx1ZSkpLF9lJiZ0aGlzLnJlbmRlck1lcm1haWQoaCxPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdGhpcy5ERUZBVUxUX01F''@;'; + put 'put ''Uk1BSURfT1BUSU9OUyksQmUpKSx0aGlzLmhpZ2hsaWdodChoKX1yZWxvYWQoKXt0aGlzLl9yZWxvYWQkLm5leHQoKX1nZXRTb3VyY2UoaCl7aWYoIXRoaXMuaHR0cCl0aHJvdyBuZXcgRXJyb3IoIltuZ3gtbWFya2Rvd25dIFdoZW4gdXNpbmcgdGhlIGBzcmNgIGF0dHJpYnV0ZSB5b3UgKmhh''@;'; + put 'put ''dmUgdG8qIHBhc3MgdGhlIGBIdHRwQ2xpZW50YCBhcyBhIHBhcmFtZXRlciBvZiB0aGUgYGZvclJvb3RgIG1ldGhvZC4gU2VlIFJFQURNRSBmb3IgbW9yZSBpbmZvcm1hdGlvbiIpO3JldHVybiB0aGlzLmh0dHAuZ2V0KGgse3Jlc3BvbnNlVHlwZToidGV4dCJ9KS5waXBlKG10KHY9PnRoaXMu''@;'; + put 'put ''aGFuZGxlRXh0ZW5zaW9uKGgsdikpKX1oaWdobGlnaHQoaCl7aWYoIVNsKHRoaXMucGxhdGZvcm0pfHwidW5kZWZpbmVkIj09dHlwZW9mIFByaXNtfHx2b2lkIDA9PT1QcmlzbS5oaWdobGlnaHRBbGxVbmRlcilyZXR1cm47aHx8KGg9ZG9jdW1lbnQpO2NvbnN0IHY9aC5xdWVyeVNlbGVjdG9y''@;'; + put 'put ''QWxsKCdwcmUgY29kZTpub3QoW2NsYXNzKj0ibGFuZ3VhZ2UtIl0pJyk7QXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbCh2LHk9PnkuY2xhc3NMaXN0LmFkZCgibGFuZ3VhZ2Utbm9uZSIpKSxQcmlzbS5oaWdobGlnaHRBbGxVbmRlcihoKX1kZWNvZGVIdG1sKGgpe2lmKCFTbCh0aGlzLnBs''@;'; + put 'put ''YXRmb3JtKSlyZXR1cm4gaDtjb25zdCB2PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRleHRhcmVhIik7cmV0dXJuIHYuaW5uZXJIVE1MPWgsdi52YWx1ZX1leHRlbmRSZW5kZXJlcihoKXtjb25zdCB2PWg7aWYoITA9PT12Llx1MDI3NU5neE1hcmtkb3duUmVuZGVyZXJFeHRlbmRlZClyZXR1''@;'; + put 'put ''cm4gaDtjb25zdCB5PWguY29kZTtyZXR1cm4gaC5jb2RlPWZ1bmN0aW9uKEMsSSxqKXtyZXR1cm4ibWVybWFpZCI9PT1JP2A8ZGl2IGNsYXNzPSJtZXJtYWlkIj4ke0N9PC9kaXY+YDp5LmNhbGwodGhpcyxDLEksail9LHYuXHUwMjc1Tmd4TWFya2Rvd25SZW5kZXJlckV4dGVuZGVkPSEwLGh9''@;'; + put 'put ''aGFuZGxlRXh0ZW5zaW9uKGgsdil7Y29uc3QgeT1oLmxhc3RJbmRleE9mKCI6Ly8iKSxDPXk+LTE/aC5zdWJzdHJpbmcoeSs0KTpoLEk9Qy5sYXN0SW5kZXhPZigiLyIpLGo9ST4tMT9DLnN1YnN0cmluZyhJKzEpLnNwbGl0KCI/IilbMF06IiIsdWU9ai5sYXN0SW5kZXhPZigiLiIpLF9lPXVl''@;'; + put 'put ''Pi0xP2ouc3Vic3RyaW5nKHVlKzEpOiIiO3JldHVybiBfZSYmIm1kIiE9PV9lPyJgYGAiK19lKyJcbiIrdisiXG5gYGAiOnZ9cGFyc2VNYXJrZWQoaCx2LHk9ITEpe3JldHVybiBTbCh0aGlzLnBsYXRmb3JtKT95P2VsLnBhcnNlSW5saW5lKGgsdik6ZWwucGFyc2UoaCx2KTpofXBhcnNlRW1v''@;'; + put 'put ''amkoaCl7aWYoIVNsKHRoaXMucGxhdGZvcm0pKXJldHVybiBoO2lmKCJ1bmRlZmluZWQiPT10eXBlb2Ygam95cGl4ZWxzfHx2b2lkIDA9PT1qb3lwaXhlbHMuc2hvcnRuYW1lVG9Vbmljb2RlKXRocm93IG5ldyBFcnJvcigiW25neC1tYXJrZG93bl0gV2hlbiB1c2luZyB0aGUgYGVtb2ppYCBh''@;'; + put 'put ''dHRyaWJ1dGUgeW91ICpoYXZlIHRvKiBpbmNsdWRlIEVtb2ppLVRvb2xraXQgZmlsZXMgdG8gYGFuZ3VsYXIuanNvbmAgb3IgdXNlIGltcG9ydHMuIFNlZSBSRUFETUUgZm9yIG1vcmUgaW5mb3JtYXRpb24iKTtyZXR1cm4gam95cGl4ZWxzLnNob3J0bmFtZVRvVW5pY29kZShoKX1yZW5kZXJL''@;'; + put 'put ''YXRleChoLHYpe2lmKFNsKHRoaXMucGxhdGZvcm0pKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIGthdGV4fHwidW5kZWZpbmVkIj09dHlwZW9mIHJlbmRlck1hdGhJbkVsZW1lbnQpdGhyb3cgbmV3IEVycm9yKCJbbmd4LW1hcmtkb3duXSBXaGVuIHVzaW5nIHRoZSBga2F0ZXhgIGF0dHJpYnV0''@;'; + put 'put ''ZSB5b3UgKmhhdmUgdG8qIGluY2x1ZGUgS2FUZVggZmlsZXMgdG8gYGFuZ3VsYXIuanNvbmAgb3IgdXNlIGltcG9ydHMuIFNlZSBSRUFETUUgZm9yIG1vcmUgaW5mb3JtYXRpb24iKTtyZW5kZXJNYXRoSW5FbGVtZW50KGgsdil9fXJlbmRlckNsaXBib2FyZChoLHYseSl7aWYoIVNsKHRoaXMu''@;'; + put 'put ''cGxhdGZvcm0pKXJldHVybjtpZigidW5kZWZpbmVkIj09dHlwZW9mIENsaXBib2FyZEpTKXRocm93IG5ldyBFcnJvcigiW25neC1tYXJrZG93bl0gV2hlbiB1c2luZyB0aGUgYGNsaXBib2FyZGAgYXR0cmlidXRlIHlvdSAqaGF2ZSB0byogaW5jbHVkZSBDbGlwYm9hcmQgZmlsZXMgdG8gYGFu''@;'; + put 'put ''Z3VsYXIuanNvbmAgb3IgdXNlIGltcG9ydHMuIFNlZSBSRUFETUUgZm9yIG1vcmUgaW5mb3JtYXRpb24iKTtpZighdil0aHJvdyBuZXcgRXJyb3IoIltuZ3gtbWFya2Rvd25dIFdoZW4gdXNpbmcgdGhlIGBjbGlwYm9hcmRgIGF0dHJpYnV0ZSB5b3UgKmhhdmUgdG8qIHByb3ZpZGUgdGhlIGB2''@;'; + put 'put ''aWV3Q29udGFpbmVyUmVmYCBwYXJhbWV0ZXIgdG8gYE1hcmtkb3duU2VydmljZS5yZW5kZXIoKWAgZnVuY3Rpb24iKTtjb25zdHtidXR0b25Db21wb25lbnQ6QyxidXR0b25UZW1wbGF0ZTpJfT15LGo9aC5xdWVyeVNlbGVjdG9yQWxsKCJwcmUiKTtmb3IobGV0IHVlPTA7dWU8ai5sZW5ndGg7''@;'; + put 'put ''dWUrKyl7Y29uc3QgX2U9ai5pdGVtKHVlKSxCZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtCZS5zdHlsZS5wb3NpdGlvbj0icmVsYXRpdmUiLF9lLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKEJlLF9lKSxCZS5hcHBlbmRDaGlsZChfZSk7Y29uc3QgTmU9ZG9jdW1lbnQuY3JlYXRl''@;'; + put 'put ''RWxlbWVudCgiZGl2Iik7bGV0IEtlLGR0O05lLnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSIsTmUuc3R5bGUudG9wPSIuNWVtIixOZS5zdHlsZS5yaWdodD0iLjVlbSIsTmUuc3R5bGUub3BhY2l0eT0iMCIsTmUuc3R5bGUudHJhbnNpdGlvbj0ib3BhY2l0eSAyNTBtcyBlYXNlLW91dCIsQmUu''@;'; + put 'put ''aW5zZXJ0QWRqYWNlbnRFbGVtZW50KCJiZWZvcmVlbmQiLE5lKSxfZS5vbm1vdXNlb3Zlcj0oKT0+TmUuc3R5bGUub3BhY2l0eT0iMSIsX2Uub25tb3VzZW91dD0oKT0+TmUuc3R5bGUub3BhY2l0eT0iMCIsS2U9Qz92LmNyZWF0ZUNvbXBvbmVudChDKS5ob3N0VmlldzpJP3YuY3JlYXRlRW1i''@;'; + put 'put ''ZWRkZWRWaWV3KEkpOnYuY3JlYXRlQ29tcG9uZW50KE5oZSkuaG9zdFZpZXcsS2Uucm9vdE5vZGVzLmZvckVhY2goT3Q9PntPdC5vbm1vdXNlb3Zlcj0oKT0+TmUuc3R5bGUub3BhY2l0eT0iMSIsTmUuYXBwZW5kQ2hpbGQoT3QpLGR0PW5ldyBDbGlwYm9hcmRKUyhPdCx7dGV4dDooKT0+X2Uu''@;'; + put 'put ''aW5uZXJUZXh0fSl9KSxLZS5vbkRlc3Ryb3koKCk9PmR0LmRlc3Ryb3koKSl9fXJlbmRlck1lcm1haWQoaCx2PXRoaXMuREVGQVVMVF9NRVJNQUlEX09QVElPTlMpe2lmKCFTbCh0aGlzLnBsYXRmb3JtKSlyZXR1cm47aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBtZXJtYWlkfHx2b2lkIDA9PT1t''@;'; + put 'put ''ZXJtYWlkLmluaXQpdGhyb3cgbmV3IEVycm9yKCJbbmd4LW1hcmtkb3duXSBXaGVuIHVzaW5nIHRoZSBgbWVybWFpZGAgYXR0cmlidXRlIHlvdSAqaGF2ZSB0byogaW5jbHVkZSBNZXJtYWlkIGZpbGVzIHRvIGBhbmd1bGFyLmpzb25gIG9yIHVzZSBpbXBvcnRzLiBTZWUgUkVBRE1FIGZvciBt''@;'; + put 'put ''b3JlIGluZm9ybWF0aW9uIik7Y29uc3QgeT1oLnF1ZXJ5U2VsZWN0b3JBbGwoIi5tZXJtYWlkIik7MCE9PXkubGVuZ3RoJiYobWVybWFpZC5pbml0aWFsaXplKHYpLG1lcm1haWQuaW5pdCh5KSl9dHJpbUluZGVudGF0aW9uKGgpe2lmKCFoKXJldHVybiIiO2xldCB2O3JldHVybiBoLnNwbGl0''@;'; + put 'put ''KCJcbiIpLm1hcCh5PT57bGV0IEM9djtyZXR1cm4geS5sZW5ndGg+MCYmKEM9aXNOYU4oQyk/eS5zZWFyY2goL1xTfCQvKTpNYXRoLm1pbih5LnNlYXJjaCgvXFN8JC8pLEMpKSxpc05hTih2KSYmKHY9QyksQz95LnN1YnN0cmluZyhDKTp5fSkuam9pbigiXG4iKX19cmV0dXJuIGQuXHUwMjc1''@;'; + put 'put ''ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoQ2koTDIpLENpKHRiZSksQ2koRkgsOCksQ2koU2plLDgpLENpKEVqZSw4KSxDaShjNykpfSxkLlx1MDI3NXByb3Y9QWkoe3Rva2VuOmQsZmFjdG9yeTpkLlx1MDI3NWZhY30pLGR9KSgpLG5iZT0oKCk9PntjbGFzcyBke2NvbnN0cnVj''@;'; + put 'put ''dG9yKGgsdix5KXt0aGlzLmVsZW1lbnQ9aCx0aGlzLm1hcmtkb3duU2VydmljZT12LHRoaXMudmlld0NvbnRhaW5lclJlZj15LHRoaXMuZXJyb3I9bmV3IGFyLHRoaXMubG9hZD1uZXcgYXIsdGhpcy5yZWFkeT1uZXcgYXIsdGhpcy5fY29tbWFuZExpbmU9ITEsdGhpcy5fY2xpcGJvYXJkPSEx''@;'; + put 'put ''LHRoaXMuX2Vtb2ppPSExLHRoaXMuX2lubGluZT0hMSx0aGlzLl9rYXRleD0hMSx0aGlzLl9saW5lSGlnaGxpZ2h0PSExLHRoaXMuX2xpbmVOdW1iZXJzPSExLHRoaXMuX21lcm1haWQ9ITEsdGhpcy5kZXN0cm95ZWQkPW5ldyAkZX1nZXQgaW5saW5lKCl7cmV0dXJuIHRoaXMuX2lubGluZX1z''@;'; + put 'put ''ZXQgaW5saW5lKGgpe3RoaXMuX2lubGluZT10aGlzLmNvZXJjZUJvb2xlYW5Qcm9wZXJ0eShoKX1nZXQgY2xpcGJvYXJkKCl7cmV0dXJuIHRoaXMuX2NsaXBib2FyZH1zZXQgY2xpcGJvYXJkKGgpe3RoaXMuX2NsaXBib2FyZD10aGlzLmNvZXJjZUJvb2xlYW5Qcm9wZXJ0eShoKX1nZXQgZW1v''@;'; + put 'put ''amkoKXtyZXR1cm4gdGhpcy5fZW1vaml9c2V0IGVtb2ppKGgpe3RoaXMuX2Vtb2ppPXRoaXMuY29lcmNlQm9vbGVhblByb3BlcnR5KGgpfWdldCBrYXRleCgpe3JldHVybiB0aGlzLl9rYXRleH1zZXQga2F0ZXgoaCl7dGhpcy5fa2F0ZXg9dGhpcy5jb2VyY2VCb29sZWFuUHJvcGVydHkoaCl9''@;'; + put 'put ''Z2V0IG1lcm1haWQoKXtyZXR1cm4gdGhpcy5fbWVybWFpZH1zZXQgbWVybWFpZChoKXt0aGlzLl9tZXJtYWlkPXRoaXMuY29lcmNlQm9vbGVhblByb3BlcnR5KGgpfWdldCBsaW5lSGlnaGxpZ2h0KCl7cmV0dXJuIHRoaXMuX2xpbmVIaWdobGlnaHR9c2V0IGxpbmVIaWdobGlnaHQoaCl7dGhp''@;'; + put 'put ''cy5fbGluZUhpZ2hsaWdodD10aGlzLmNvZXJjZUJvb2xlYW5Qcm9wZXJ0eShoKX1nZXQgbGluZU51bWJlcnMoKXtyZXR1cm4gdGhpcy5fbGluZU51bWJlcnN9c2V0IGxpbmVOdW1iZXJzKGgpe3RoaXMuX2xpbmVOdW1iZXJzPXRoaXMuY29lcmNlQm9vbGVhblByb3BlcnR5KGgpfWdldCBjb21t''@;'; + put 'put ''YW5kTGluZSgpe3JldHVybiB0aGlzLl9jb21tYW5kTGluZX1zZXQgY29tbWFuZExpbmUoaCl7dGhpcy5fY29tbWFuZExpbmU9dGhpcy5jb2VyY2VCb29sZWFuUHJvcGVydHkoaCl9bmdPbkNoYW5nZXMoKXt0aGlzLmxvYWRDb250ZW50KCl9bG9hZENvbnRlbnQoKXtudWxsPT10aGlzLmRhdGE/''@;'; + put 'put ''bnVsbD09dGhpcy5zcmN8fHRoaXMuaGFuZGxlU3JjKCk6dGhpcy5oYW5kbGVEYXRhKCl9bmdBZnRlclZpZXdJbml0KCl7IXRoaXMuZGF0YSYmIXRoaXMuc3JjJiZ0aGlzLmhhbmRsZVRyYW5zY2x1c2lvbigpLHRoaXMubWFya2Rvd25TZXJ2aWNlLnJlbG9hZCQucGlwZShqNyh0aGlzLmRlc3Ry''@;'; + put 'put ''b3llZCQpKS5zdWJzY3JpYmUoKCk9PnRoaXMubG9hZENvbnRlbnQoKSl9bmdPbkRlc3Ryb3koKXt0aGlzLmRlc3Ryb3llZCQubmV4dCgpLHRoaXMuZGVzdHJveWVkJC5jb21wbGV0ZSgpfXJlbmRlcihoLHY9ITEpe2NvbnN0IEM9e2NsaXBib2FyZDp0aGlzLmNsaXBib2FyZCxjbGlwYm9hcmRP''@;'; + put 'put ''cHRpb25zOntidXR0b25Db21wb25lbnQ6dGhpcy5jbGlwYm9hcmRCdXR0b25Db21wb25lbnQsYnV0dG9uVGVtcGxhdGU6dGhpcy5jbGlwYm9hcmRCdXR0b25UZW1wbGF0ZX0sa2F0ZXg6dGhpcy5rYXRleCxrYXRleE9wdGlvbnM6dGhpcy5rYXRleE9wdGlvbnMsbWVybWFpZDp0aGlzLm1lcm1h''@;'; + put 'put ''aWQsbWVybWFpZE9wdGlvbnM6dGhpcy5tZXJtYWlkT3B0aW9uc30sST10aGlzLm1hcmtkb3duU2VydmljZS5wYXJzZShoLHtkZWNvZGVIdG1sOnYsaW5saW5lOnRoaXMuaW5saW5lLGVtb2ppOnRoaXMuZW1vamksbWVybWFpZDp0aGlzLm1lcm1haWR9KTt0aGlzLmVsZW1lbnQubmF0aXZlRWxl''@;'; + put 'put ''bWVudC5pbm5lckhUTUw9SSx0aGlzLmhhbmRsZVBsdWdpbnMoKSx0aGlzLm1hcmtkb3duU2VydmljZS5yZW5kZXIodGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsQyx0aGlzLnZpZXdDb250YWluZXJSZWYpLHRoaXMucmVhZHkuZW1pdCgpfWNvZXJjZUJvb2xlYW5Qcm9wZXJ0eShoKXtyZXR1''@;'; + put 'put ''cm4gbnVsbCE9aCYmImZhbHNlIiE9YCR7U3RyaW5nKGgpfWB9aGFuZGxlRGF0YSgpe3RoaXMucmVuZGVyKHRoaXMuZGF0YSl9aGFuZGxlU3JjKCl7dGhpcy5tYXJrZG93blNlcnZpY2UuZ2V0U291cmNlKHRoaXMuc3JjKS5zdWJzY3JpYmUoe25leHQ6aD0+e3RoaXMucmVuZGVyKGgpLHRoaXMu''@;'; + put 'put ''bG9hZC5lbWl0KGgpfSxlcnJvcjpoPT50aGlzLmVycm9yLmVtaXQoaCl9KX1oYW5kbGVUcmFuc2NsdXNpb24oKXt0aGlzLnJlbmRlcih0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudC5pbm5lckhUTUwsITApfWhhbmRsZVBsdWdpbnMoKXt0aGlzLmNvbW1hbmRMaW5lJiYodGhpcy5zZXRQbHVn''@;'; + put 'put ''aW5DbGFzcyh0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCxNWi5Db21tYW5kTGluZSksdGhpcy5zZXRQbHVnaW5PcHRpb25zKHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LHtkYXRhRmlsdGVyT3V0cHV0OnRoaXMuZmlsdGVyT3V0cHV0LGRhdGFIb3N0OnRoaXMuaG9zdCxkYXRhUHJvbXB0''@;'; + put 'put ''OnRoaXMucHJvbXB0LGRhdGFPdXRwdXQ6dGhpcy5vdXRwdXQsZGF0YVVzZXI6dGhpcy51c2VyfSkpLHRoaXMubGluZUhpZ2hsaWdodCYmdGhpcy5zZXRQbHVnaW5PcHRpb25zKHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LHtkYXRhTGluZTp0aGlzLmxpbmUsZGF0YUxpbmVPZmZzZXQ6dGhp''@;'; + put 'put ''cy5saW5lT2Zmc2V0fSksdGhpcy5saW5lTnVtYmVycyYmKHRoaXMuc2V0UGx1Z2luQ2xhc3ModGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsTVouTGluZU51bWJlcnMpLHRoaXMuc2V0UGx1Z2luT3B0aW9ucyh0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCx7ZGF0YVN0YXJ0OnRoaXMuc3Rh''@;'; + put 'put ''cnR9KSl9c2V0UGx1Z2luQ2xhc3MoaCx2KXtjb25zdCB5PWgucXVlcnlTZWxlY3RvckFsbCgicHJlIik7Zm9yKGxldCBDPTA7Qzx5Lmxlbmd0aDtDKyspe2NvbnN0IEk9diBpbnN0YW5jZW9mIEFycmF5P3Y6W3ZdO3kuaXRlbShDKS5jbGFzc0xpc3QuYWRkKC4uLkkpfX1zZXRQbHVnaW5PcHRp''@;'; + put 'put ''b25zKGgsdil7Y29uc3QgeT1oLnF1ZXJ5U2VsZWN0b3JBbGwoInByZSIpO2ZvcihsZXQgQz0wO0M8eS5sZW5ndGg7QysrKU9iamVjdC5rZXlzKHYpLmZvckVhY2goST0+e2NvbnN0IGo9dltJXTtpZihqKXtjb25zdCB1ZT10aGlzLnRvTGlzcENhc2UoSSk7eS5pdGVtKEMpLnNldEF0dHJpYnV0''@;'; + put 'put ''ZSh1ZSxqLnRvU3RyaW5nKCkpfX0pfXRvTGlzcENhc2UoaCl7Y29uc3Qgdj1oLm1hdGNoKC8oW0EtWl0pL2cpO2lmKCF2KXJldHVybiBoO2xldCB5PWgudG9TdHJpbmcoKTtmb3IobGV0IEM9MCxJPXYubGVuZ3RoO0M8STtDKyspeT15LnJlcGxhY2UobmV3IFJlZ0V4cCh2W0NdKSwiLSIrdltD''@;'; + put 'put ''XS50b0xvd2VyQ2FzZSgpKTtyZXR1cm4iLSI9PT15LnNsaWNlKDAsMSkmJih5PXkuc2xpY2UoMSkpLHl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKEt0KGJvKSxLdChWaGUpLEt0KFVpKSl9LGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQsc2VsZWN0b3Jz''@;'; + put 'put ''OltbIm1hcmtkb3duIl0sWyIiLCJtYXJrZG93biIsIiJdXSxpbnB1dHM6e2RhdGE6ImRhdGEiLHNyYzoic3JjIixpbmxpbmU6ImlubGluZSIsY2xpcGJvYXJkOiJjbGlwYm9hcmQiLGNsaXBib2FyZEJ1dHRvbkNvbXBvbmVudDoiY2xpcGJvYXJkQnV0dG9uQ29tcG9uZW50IixjbGlwYm9hcmRC''@;'; + put 'put ''dXR0b25UZW1wbGF0ZToiY2xpcGJvYXJkQnV0dG9uVGVtcGxhdGUiLGVtb2ppOiJlbW9qaSIsa2F0ZXg6ImthdGV4IixrYXRleE9wdGlvbnM6ImthdGV4T3B0aW9ucyIsbWVybWFpZDoibWVybWFpZCIsbWVybWFpZE9wdGlvbnM6Im1lcm1haWRPcHRpb25zIixsaW5lSGlnaGxpZ2h0OiJsaW5l''@;'; + put 'put ''SGlnaGxpZ2h0IixsaW5lOiJsaW5lIixsaW5lT2Zmc2V0OiJsaW5lT2Zmc2V0IixsaW5lTnVtYmVyczoibGluZU51bWJlcnMiLHN0YXJ0OiJzdGFydCIsY29tbWFuZExpbmU6ImNvbW1hbmRMaW5lIixmaWx0ZXJPdXRwdXQ6ImZpbHRlck91dHB1dCIsaG9zdDoiaG9zdCIscHJvbXB0OiJwcm9t''@;'; + put 'put ''cHQiLG91dHB1dDoib3V0cHV0Iix1c2VyOiJ1c2VyIn0sb3V0cHV0czp7ZXJyb3I6ImVycm9yIixsb2FkOiJsb2FkIixyZWFkeToicmVhZHkifSxmZWF0dXJlczpbRDJdLG5nQ29udGVudFNlbGVjdG9yczpfamUsZGVjbHM6MSx2YXJzOjAsdGVtcGxhdGU6ZnVuY3Rpb24oaCx2KXsxJmgmJihL''@;'; + put 'put ''MCgpLE5pKDApKX0sZW5jYXBzdWxhdGlvbjoyfSksZH0pKCksUmplPSgoKT0+e2NsYXNzIGR7c3RhdGljIGZvclJvb3QoaCl7cmV0dXJue25nTW9kdWxlOmQscHJvdmlkZXJzOltWaGUsaCYmaC5sb2FkZXJ8fFtdLGgmJmguY2xpcGJvYXJkT3B0aW9uc3x8W10saCYmaC5tYXJrZWRPcHRpb25z''@;'; + put 'put ''fHxbXSx7cHJvdmlkZTp0YmUsdXNlVmFsdWU6aCYmbnVsbCE9aC5zYW5pdGl6ZT9oLnNhbml0aXplOmEyLkhUTUx9XX19c3RhdGljIGZvckNoaWxkKCl7cmV0dXJue25nTW9kdWxlOmR9fX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVt''@;'; + put 'put ''b2Q9Y28oe3R5cGU6ZH0pLGQuXHUwMjc1aW5qPWIwKHtpbXBvcnRzOltiYV19KSxkfSkoKTt2YXIgcmJlOyFmdW5jdGlvbihkKXtsZXQgZzt2YXIgeTtsZXQgaCx2Oyh5PWc9ZC5TZWN1cml0eUxldmVsfHwoZC5TZWN1cml0eUxldmVsPXt9KSkuU3RyaWN0PSJzdHJpY3QiLHkuTG9vc2U9Imxv''@;'; + put 'put ''b3NlIix5LkFudGlzY3JpcHQ9ImFudGlzY3JpcHQiLHkuU2FuZGJveD0ic2FuZGJveCIsZnVuY3Rpb24oeSl7eS5CYXNlPSJiYXNlIix5LkZvcmVzdD0iZm9yZXN0Iix5LkRhcms9ImRhcmsiLHkuRGVmYXVsdD0iZGVmYXVsdCIseS5OZXV0cmFsPSJuZXV0cmFsIn0oaD1kLlRoZW1lfHwoZC5U''@;'; + put 'put ''aGVtZT17fSkpLGZ1bmN0aW9uKHkpe3lbeS5EZWJ1Zz0xXT0iRGVidWciLHlbeS5JbmZvPTJdPSJJbmZvIix5W3kuV2Fybj0zXT0iV2FybiIseVt5LkVycm9yPTRdPSJFcnJvciIseVt5LkZhdGFsPTVdPSJGYXRhbCJ9KHY9ZC5Mb2dMZXZlbHx8KGQuTG9nTGV2ZWw9e30pKX0ocmJlfHwocmJl''@;'; + put 'put ''PXt9KSk7bGV0IEJqZT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgpe3RoaXMuc2FzU2VydmljZT1oLHRoaXMuYWdyZWVDaGVja2VkPSExLHRoaXMuYWdyZWVCb3hMb2NrZWQ9ITAsdGhpcy5hZ3JlZUNsaWNrZWQ9ITEsdGhpcy5ldWxhX21hcmtkb3duPSdcbkVuZCBVc2VyIExpY2VuY2Ug''@;'; + put 'put ''QWdyZWVtZW50IGZvciBEYXRhIENvbnRyb2xsZXIgZm9yIFNBU1x4YWVcbj09PT09PT09PT09PT09PT09PT09XG5QbGVhc2UgcmVhZCB0aGlzIEVuZCBVc2VyIExpY2Vuc2UgQWdyZWVtZW50ICgiRVVMQSIpIGJlZm9yZSBZb3UgZG93bmxvYWQsIGluc3RhbGwsIGV4YW1pbmUsIG9yIG90aGVy''@;'; + put 'put ''d2lzZSB1c2UgRGF0YSBDb250cm9sbGVyIGZvciBTQVNceGFlXG5cbkJ5IGRvd25sb2FkaW5nIGFuZCB1c2luZyBEYXRhIENvbnRyb2xsZXIgZm9yIFNBU1x4YWUsIFlvdSBhZ3JlZSwgd2l0aG91dCByZXNlcnZhdGlvbiB0byBiZSBib3VuZCBieSB0aGUgdGVybXMgb2YgdGhpcyBFVUxBLiBJ''@;'; + put 'put ''ZiBZb3UgZG8gbm90IGFncmVlIHdpdGggdGhlIHRlcm1zIG9mIHRoaXMgRVVMQSwgcGxlYXNlIGRvIG5vdCBwdXJjaGFzZSBhIExpY2Vuc2UgS2V5IGFuZC9vciBkb3dubG9hZCBhbmQgdXNlIERhdGEgQ29udHJvbGxlciBmb3IgU0FTXHhhZS5cblxuSWYgWW91IGFjY2VwdCB0aGUgdGVybXMg''@;'; + put 'put ''YW5kIGNvbmRpdGlvbnMgaW4gdGhpcyBFVUxBIG9uIGJlaGFsZiBvZiBhIGNvbXBhbnkgb3Igb3RoZXIgbGVnYWwgZW50aXR5LCBZb3Ugd2FycmFudCB0aGF0IFlvdSBoYXZlIGZ1bGwgbGVnYWwgYXV0aG9yaXR5IHRvIGFjY2VwdCB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgaW4gdGhpcyBF''@;'; + put 'put ''VUxBIG9uIGJlaGFsZiBvZiBzdWNoIGNvbXBhbnkgb3Igb3RoZXIgbGVnYWwgZW50aXR5LCBhbmQgdG8gbGVnYWxseSBiaW5kIHN1Y2ggY29tcGFueSBvciBvdGhlciBsZWdhbCBlbnRpdHkuXG5cbllvdSBtYXkgbm90IGFjY2VwdCB0aGlzIEVVTEEgaWYgWW91IGFyZSBub3Qgb2YgbGVnYWwg''@;'; + put 'put ''YWdlIHRvIGZvcm0gYSBiaW5kaW5nIGNvbnRyYWN0IHdpdGggNEdMIEFwcHMuXG5cbiMjIERlZmluaXRpb25zXG5JbiB0aGlzIEVVTEEgdGhlIGV4cHJlc3Npb25zIGJlbG93IHNoYWxsIGhhdmUgdGhlIG1lYW5pbmcgYXNzaWduZWQgdG8gdGhlbSBpbiB0aGlzIGNsYXVzZSwgdW5sZXNzIHRo''@;'; + put 'put ''ZSBjb250ZXh0IHJlcXVpcmVzIG90aGVyd2lzZTpcblxuKiAqKiJBY3RpdmF0ZSIqKiB0dXJuaW5nIHRoZSBUcmlhbCB2ZXJzaW9uIGludG8gdGhlIEZ1bGwgdmVyc2lvbiBvZiB0aGUgc2FtZSBhcHBsaWNhdGlvbiB3aXRoIHRoZSBMaWNlbnNlIEtleSBwcm92aWRlZCBieSA0R0wgQXBwcztc''@;'; + put 'put ''biogKioiRG9jdW1lbnRhdGlvbiIqKiB0aGUgZGV0YWlsZWQgaW5mb3JtYXRpb24gYWJvdXQgRGF0YSBDb250cm9sbGVyIGZvciBTQVNceGFlLCBpdHMgZmVhdHVyZXMgYW5kIHRoZSBzeXN0ZW0gcmVxdWlyZW1lbnRzIGFzIG1hZGUgYXZhaWxhYmxlIG9uIGh0dHBzOi8vZG9jcy5kYXRhY29u''@;'; + put 'put ''dHJvbGxlci5pbywgYXMgYW1lbmRlZCBmcm9tIHRpbWUgdG8gdGltZTtcbiogKioiRnVsbCB2ZXJzaW9uIioqIHRoZSBsaWNlbnNlIGZvciBEYXRhIENvbnRyb2xsZXIgZm9yIFNBU1x4YWUgZm9yIHRoZSB0ZXJtIHNwZWNpZmllZCBvbiB0aGUgd2VicGFnZSBvZiB0aGUgc3RvcmUgd2hlcmUg''@;'; + put 'put ''WW91IHB1cmNoYXNlIHRoZSBsaWNlbnNlLCBvciBpbiBhbnkgYXBwbGljYWJsZSBhZ3JlZW1lbnQgY29uY2VybmluZyB0aGUgcHVyY2hhc2Ugb2YgdGhlIGxpY2Vuc2UgKGFzIHN0YW5kLWFsb25lIHByb2R1Y3Qgb3IgYXMgcGFydCBvZiBhIHN1YnNjcmlwdGlvbikgdG8gVXNlIERhdGEgQ29u''@;'; + put 'put ''dHJvbGxlciBmb3IgU0FTXHhhZTtcbiogKioiTGljZW5zZSBLZXkiKiogYW4gdW5pcXVlIGNvZGUgcHJvdmlkZWQgYnkgNEdMIEFwcHMsIHdoaWNoIGVuYWJsZXMgWW91IHRvIGFjdGl2YXRlIHRoZSBGdWxsIHZlcnNpb24gYnkgZW50ZXJpbmcgdGhlIGNvZGUgaW50byBEYXRhIENvbnRyb2xs''@;'; + put 'put ''ZXIgZm9yIFNBU1x4YWUgYW5kIHRvIHN1YnNlcXVlbnRseSB1c2UgRGF0YSBDb250cm9sbGVyIGZvciBTQVNceGFlIGR1cmluZyB0aGUgYXBwbGljYWJsZSBsaWNlbnNlIHRlcm07XG4qICoqIk9wZW4gU291cmNlIFNvZnR3YXJlXHUyMDFkKiogYW55IHNvZnR3YXJlIHRoYXQgcmVxdWlyZXMg''@;'; + put 'put ''YXMgYSBjb25kaXRpb24gb2YgdXNlLCBjb3B5aW5nLCBtb2RpZmljYXRpb24gYW5kL29yIGRpc3RyaWJ1dGlvbiBvZiBzdWNoIHNvZnR3YXJlIHRoYXQgc3VjaCBzb2Z0d2FyZSBvciBvdGhlciBzb2Z0d2FyZSBpbmNvcnBvcmF0ZWQgaW50bywgZGVyaXZlZCBmcm9tIG9yIGRpc3RyaWJ1dGVk''@;'; + put 'put ''IHdpdGggc3VjaCBzb2Z0d2FyZSAoYSkgYmUgZGlzY2xvc2VkIG9yIGRpc3RyaWJ1dGVkIGluIHNvdXJjZSBjb2RlIGZvcm0sIGFuZCAoYikgYmUgbGljZW5zZWQgZm9yIHRoZSBwdXJwb3NlIG9mIG1ha2luZyBhbmQvb3IgZGlzdHJpYnV0aW5nIGRlcml2YXRpdmUgd29ya3MsIGFuZCAoYykg''@;'; + put 'put ''YmUgcmVkaXN0cmlidXRhYmxlIGF0IG5vIGNoYXJnZTtcbiogKioiNEdMIEFwcHMiKiogYSBicmFuZCBvd25lZCBhbmQgbWFuYWdlZCBieSBCb3dlIElPIEx0ZCwgYSBjb21wYW55IGluY29ycG9yYXRlZCBhbmQgcmVnaXN0ZXJlZCBpbiBFbmdsYW5kIHdpdGggUmVnaXN0ZXJlZCBOdW1iZXIg''@;'; + put 'put ''MDg3NzcxNzEgd2hvc2UgcmVnaXN0ZXJlZCBvZmZpY2UgaXMgYXQgMjkgT2xkZmllbGQgUmQsIFdpbmRlcm1lcmUsIEN1bWJyaWEsIExBMjMgMkFaXG4qICoqIkRhdGEgQ29udHJvbGxlciBmb3IgU0FTXHhhZVx1MjAxZCBhbnkgc29mdHdhcmUgYXBwbGljYXRpb24gYW5kL29yIGFsbCBvZiB0''@;'; + put 'put ''aGUgY29udGVudHMgb2YgdGhlIGZpbGVzIGFuZC9vciBvdGhlciBtZWRpYSwgaW5jbHVkaW5nIHNvZnR3YXJlIHNldHVwIGZpbGVzLCBsaWNlbnNlZCB0byBZb3UgYnkgNEdMIEFwcHMsIGluY2x1ZGluZyBhbnkgVXBkYXRlcztcbiogKioiVHJpYWwgdmVyc2lvblx1MjAxZCoqIHRoZSBsaWNl''@;'; + put 'put ''bnNlIGZvciBEYXRhIENvbnRyb2xsZXIgZm9yIFNBU1x4YWUgZm9yIHRoZSB0ZXJtIG9mIDMwIGRheXMgdG8gVXNlIERhdGEgQ29udHJvbGxlciBmb3IgU0FTXHhhZSBmb3IgdGhlIHNvbGUgcHVycG9zZSBvZiB0ZXN0aW5nIGFuZCBldmFsdWF0aW5nIERhdGEgQ29udHJvbGxlciBmb3IgU0FT''@;'; + put 'put ''XHhhZTtcbiogKioiVXBkYXRlcyIqKiBhbnkgbW9kaWZpZWQgdmVyc2lvbnMgYW5kIHVwZGF0ZXMgb2YsIGFuZCBhZGRpdGlvbnMgdG8gRGF0YSBDb250cm9sbGVyIGZvciBTQVNceGFlIChleGNsdWRpbmcgdXBncmFkZXMgb2YgRGF0YSBDb250cm9sbGVyIGZvciBTQVNceGFlKTtcbiogKioi''@;'; + put 'put ''VXNlIioqIHRoZSBhY2Nlc3MsIGRvd25sb2FkLCBpbnN0YWxsLCBjb3B5IG9yIGdldCBiZW5lZml0IGZyb20gdXNpbmcgRGF0YSBDb250cm9sbGVyIGZvciBTQVNceGFlIGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgZG9jdW1lbnRhdGlvbjtcbiogKioiWW91IioqIHlvdSwgdGhlIGZpbmFsIGFu''@;'; + put 'put ''ZCB1bHRpbWF0ZSB1c2VyIG9mIERhdGEgQ29udHJvbGxlciBmb3IgU0FTXHhhZSBvciB0aGUgYXV0aG9yaXplZCByZXByZXNlbnRhdGl2ZSBvZiBhIGNvbXBhbnkgb3Igb3RoZXIgbGVnYWwgZW50aXR5IHRoYXQgd2lsbCBiZSB0aGUgZmluYWwgYW5kIHVsdGltYXRlIHVzZXIgb2YgRGF0YSBD''@;'; + put 'put ''b250cm9sbGVyIGZvciBTQVNceGFlICBhbmQgdGhlIGNvbXBhbnkgb3Igb3RoZXIgbGVnYWwgZW50aXR5IHRoYXQgd2lsbCBiZSB0aGUgZmluYWwgYW5kIHVsdGltYXRlIHVzZXIgb2YgRGF0YSBDb250cm9sbGVyIGZvciBTQVNceGFlICBpZiBhcHBsaWNhYmxlLlxuXG4jIyBHZW5lcmFsXG5U''@;'; + put 'put ''aGlzIEVVTEEgYXBwbGllcyB0byBhbnkgbGljZW5zZXMgZ3JhbnRlZCB0byBZb3UgYnkgNEdMIEFwcHMgZm9yIHRoZSB1c2Ugb2YgRGF0YSBDb250cm9sbGVyIGZvciBTQVNceGFlLlxuQnkgcHVyY2hhc2luZyBhIExpY2Vuc2UgS2V5IGZvciBEYXRhIENvbnRyb2xsZXIgZm9yIFNBU1x4YWUg''@;'; + put 'put ''YW5kL29yIGRvd25sb2FkaW5nIGFuZCB1c2luZyBEYXRhIENvbnRyb2xsZXIgZm9yIFNBU1x4YWUsIFlvdSBlbnRlciBpbnRvIHRoaXMgRVVMQSB3aXRoIDRHTCBBcHBzLlxuVGhpcyBFVUxBIG1heSBiZSBtb2RpZmllZCBmcm9tIHRpbWUgdG8gdGltZS4gNEdMIEFwcHMgd2lsbCBub3RpZnkg''@;'; + put 'put ''eW91IG9mIHN1Y2ggbW9kaWZpY2F0aW9ucyBvbiBpdHMgd2Vic2l0ZSBvciBvdGhlcndpc2UsIGUuZy4gYnkgdXNpbmcgdGhlIGVtYWlsIGFkZHJlc3MgdXNlZCBmb3IgdGhlIHByb3Zpc2lvbiBvZiB0aGUgTGljZW5zZSBLZXkuIEFueSBtb2RpZmljYXRpb25zIHRvIHRoaXMgRVVMQSBzaGFs''@;'; + put 'put ''bCBvbmx5IGFwcGx5IHVwb24gYWNjZXB0YW5jZSBieSBZb3UuXG5cbiMjIExpY2Vuc2VcbjRHTCBBcHBzIGdyYW50cyBZb3UgYSBub24tZXhjbHVzaXZlLCBub24tdHJhbnNmZXJhYmxlLCBsaW1pdGVkLCByZXZvY2FibGUgbGljZW5zZSB0byBVc2UgRGF0YSBDb250cm9sbGVyIGZvciBTQVNc''@;'; + put 'put ''eGFlIGluIGFjY29yZGFuY2Ugd2l0aCB0aGlzIEVVTEEuIE1hY2VvIFBlb3BsZSByZXNlcnZlcyBhbGwgcmlnaHRzIG5vdCBleHByZXNzbHkgZ3JhbnRlZCB0byBZb3UuXG40R0wgQXBwcyBpcyBhbmQgcmVtYWlucyB0aGUgb3duZXIgb2YgYW55IGludGVsbGVjdHVhbCBwcm9wZXJ0eSByaWdo''@;'; + put 'put ''dHMgd2l0aCByZXNwZWN0IHRvIERhdGEgQ29udHJvbGxlciBmb3IgU0FTXHhhZS4gWW91IHNoYWxsIG5vdCBhY3F1aXJlIGFueSBvd25lcnNoaXAgdG8gRGF0YSBDb250cm9sbGVyIGZvciBTQVNceGFlIGFzIHJlc3VsdCBvZiBZb3VyIHB1cmNoYXNlIG9mIHRoZSBMaWNlbnNlIEtleSBvciBZ''@;'; + put 'put ''b3VyIFVzZSBvZiBEYXRhIENvbnRyb2xsZXIgZm9yIFNBU1x4YWUuXG5cbiMjIFBlcm1pdHRlZCB1c2UgYW5kIHJlc3RyaWN0aW9uc1xuSW4gb3JkZXIgdG8gYmUgYWJsZSB0byBpbnN0YWxsIERhdGEgQ29udHJvbGxlciBmb3IgU0FTXHhhZSBhbmQgcmVjZWl2ZSBVcGRhdGVzIGFuZCB1cGdy''@;'; + put 'put ''YWRlcywgWW91ciBjb21wdXRlciBzaGFsbCBtZWV0IHRoZSBzeXN0ZW0gcmVxdWlyZW1lbnRzIGRlc2NyaWJlZCBpbiB0aGUgRG9jdW1lbnRhdGlvbiB0aGF0IGNhbiBiZSBmb3VuZCBvbiB0aGUgd2VicGFnZTogaHR0cHM6Ly9kb2NzLmRhdGFjb250cm9sbGVyLmlvLlxuWW91IG1heSBVc2Ug''@;'; + put 'put ''RGF0YSBDb250cm9sbGVyIGZvciBTQVNceGFlIHVwIHRvIHRoZSBsaWNlbmNlZCBjYXBhY2l0eSBvbmx5IChudW1iZXIgb2YgdXNlcnMgb3IgQ1BVIGNvcmVzKS4gSWYgWW91IGV4Y2VlZCB0aGUgbGltaXQsIDRHTCBBcHBzIG1heSB0ZXJtaW5hdGUgdGhlIGFncmVlbWVudC5cbllvdSBzaGFs''@;'; + put 'put ''bCBVc2UgdGhlIEZ1bGwgdmVyc2lvbiBvciBUcmlhbCB2ZXJzaW9uIGluIGFjY29yZGFuY2Ugd2l0aCBhcHBsaWNhYmxlIGxhd3MgYW5kIHNoYWxsIG5vdDpcblxuKiByZW50LCBsZWFzZSwgbGVuZCwgc2VsbCwgcmVkaXN0cmlidXRlLCBzdWJsaWNlbnNlIG9yIG90aGVyd2lzZSBjb21tZXJj''@;'; + put 'put ''aWFsbHkgZXhwbG9pdCB0aGUgTGljZW5zZSBLZXksIHRoZSBGdWxsIHZlcnNpb24sIG9yIHRoZSBUcmlhbCB2ZXJzaW9uO1xuKiBhc3NpZ24gdGhlIExpY2Vuc2UgS2V5LCB0aGUgRnVsbCB2ZXJzaW9uLCBvciB0aGUgVHJpYWwgdmVyc2lvbiB3aXRob3V0IHByaW9yIHdyaXR0ZW4gYXBwcm92''@;'; + put 'put ''YWwgb2YgNEdMIEFwcHM7XG4qIFVzZSB0aGUgRnVsbCB2ZXJzaW9uIG9yIFRyaWFsIHZlcnNpb24gZm9yIGFueSB1bmxhd2Z1bCBvciBpbGxlZ2FsIGFjdGl2aXR5LCBvciB0byBmYWNpbGl0YXRlIGFuIHVubGF3ZnVsIG9yIGlsbGVnYWwgYWN0aXZpdHk7XG4qIGRlbGV0ZSBvciBhbHRlciBh''@;'; + put 'put ''bnkgZGlzY2xhaW1lcnMsIHdhcm5pbmdzLCBjb3B5cmlnaHQgb3Igb3RoZXIgcHJvcHJpZXRhcnkgbm90aWNlcyBhY2NvbXBhbnlpbmcgRGF0YSBDb250cm9sbGVyIGZvciBTQVNceGFlOyBvclxuKiBjb3B5IChleGNlcHQgYXMgb3RoZXJ3aXNlIHByb3ZpZGVkIGluIHRoaXMgRVVMQSksIGFk''@;'; + put 'put ''YXB0LCB0cmFuc2xhdGUsIGRlY29tcGlsZSwgcmV2ZXJzZSBlbmdpbmVlciwgZGlzYXNzZW1ibGUsIGF0dGVtcHQgdG8gZGVyaXZlIHRoZSBzb3VyY2UgY29kZSBvZiwgbW9kaWZ5IG9yIGNyZWF0ZSBkZXJpdmF0aXZlIHdvcmtzIG9mIERhdGEgQ29udHJvbGxlciBmb3IgU0FTXHhhZSBhbmQg''@;'; + put 'put ''dGhlIExpY2Vuc2UgS2V5IG9yIGFueSBwYXJ0cyB0aGVyZW9mLCBleGNlcHQgdG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkgYXBwbGljYWJsZSBsYXcuXG5cbjRHTCBBcHBzIG1heSBtb2RpZnkgRGF0YSBDb250cm9sbGVyIGZvciBTQVNceGFlIGF0IGFueSB0aW1lIGF0IGl0cyBzb2xlIGRp''@;'; + put 'put ''c2NyZXRpb24gYW5kIHdpdGhvdXQgbm90aWNlIHRvIFlvdSwgZm9yIGV4YW1wbGUgdG8gY29tcGx5IHdpdGggYXBwbGljYWJsZSBsYXcgb3IgYSBjb3VydCBvcmRlciwgdG8gYXZvaWQgYSB0aGlyZCBwYXJ0eSBpbmZyaW5nZW1lbnQgY2xhaW0gb3IgdG8gcHJvdmlkZSBVcGRhdGVzIGFuZCB1''@;'; + put 'put ''cGdyYWRlcy5cbkNlcnRhaW4gY29tcG9uZW50cyBvZiBEYXRhIENvbnRyb2xsZXIgZm9yIFNBU1x4YWUgYXJlIE9wZW4gU291cmNlIFNvZnR3YXJlIGFuZCBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIGFwcGxpY2FibGUgbGljZW5zZShzKSBvZiB0aGUgT3BlbiBTb3VyY2UgU29m''@;'; + put 'put ''dHdhcmUuIFlvdSBzaGFsbCBhZGhlcmUgdG8gdGhlc2UgdGVybXMgYW5kIGNvbmRpdGlvbnMsIHdoaWNoIGNhbiBiZSBmb3VuZCB2aWEgdGhlIHdlYnBhZ2U6IGh0dHBzOi8vZG9jcy5kYXRhY29udHJvbGxlci5pby9saWNlbmNlcy5cblxuIyMgTWFpbnRlbmFuY2UgYW5kIHN1cHBvcnRcbjRH''@;'; + put 'put ''TCBBcHBzIHdpbGwgbm90aWZ5IFlvdSBvZiBhbnkgYXZhaWxhYmxlIFVwZGF0ZXMgYW5kIHVwZ3JhZGVzLlxuWW91IHdpbGwgYmUgZW50aXRsZWQgdG8gcmVjZWl2ZSBVcGRhdGVzIGZyZWUgb2YgY2hhcmdlIGR1cmluZyB0aGUgbGljZW5jZSBwZXJpb2QsIHVwb24gcHVyY2hhc2luZyB0aGUg''@;'; + put 'put ''TGljZW5zZSBLZXkgZm9yIHRoZSBGdWxsIHZlcnNpb24uIEluIG9yZGVyIHRvIHJlY2VpdmUgVXBkYXRlcyBhZnRlciB0aGlzIHR3ZWx2ZSBtb250aHNcdTIwMTkgcGVyaW9kLCBZb3Ugd2lsbCBuZWVkIHRvIHJlbmV3IHlvdXIgTGljZW5zZSBLZXkgZm9yIHRoZSBGdWxsIHZlcnNpb247XG5B''@;'; + put 'put ''bnkgbWFpbnRlbmFuY2UgYW5kIHN1cHBvcnQgcHJvdmlkZWQgYnkgNEdMIEFwcHMsIGluY2x1ZGluZyB0aGUgcHJvdmlzaW9uIG9mIFVwZGF0ZXMgYW5kIHVwZ3JhZGVzLCB3aWxsIGJlIHByb3ZpZGVkIGluIGFuIGFkZXF1YXRlIHdheSBvbiBhbiBcdTIwMWNhcyBpc1x1MjAxZCBiYXNpcyB3''@;'; + put 'put ''aXRob3V0IGFueSB3YXJyYW50eSwgYXMgc29vbiBhcyByZWFzb25hYmx5IHByYWN0aWNhYmxlLCBzdWJqZWN0IHRvIGF2YWlsYWJpbGl0eSBvZiBwZXJzb25uZWwuXG5cbiMjIFVzZSBvZiBkYXRhXG40R0wgQXBwcyBhbmQgaXRzIHN1YnNpZGlhcmllcyBtYXkgcGVyaW9kaWNhbGx5IHJlcXVl''@;'; + put 'put ''c3QgdGVjaG5pY2FsIGFuZCByZWxhdGVkIGRhdGEgY29uY2VybmluZyBEYXRhIENvbnRyb2xsZXIgZm9yIFNBU1x4YWUgWW91IGhhdmUgbGljZW5zZWQsIGluY2x1ZGluZyBhYm91dCB0aGUgdmVyc2lvbiBudW1iZXIgb2YgRGF0YSBDb250cm9sbGVyIGZvciBTQVNceGFlIFlvdSBoYXZlIGlu''@;'; + put 'put ''c3RhbGxlZCBhbmQgYWJvdXQgdGhlIHN5c3RlbSBZb3UgaGF2ZSBpbnN0YWxsZWQgRGF0YSBDb250cm9sbGVyIGZvciBTQVNceGFlIG9uLiA0R0wgQXBwcyB3aWxsIHVzZSBzdWNoIGRhdGEgdG8gZmFjaWxpdGF0ZSBtYWludGVuYW5jZSBhbmQgc3VwcG9ydCB3aXRoIHJlc3BlY3QgdG8gRGF0''@;'; + put 'put ''YSBDb250cm9sbGVyIGZvciBTQVNceGFlICB0byBpbXByb3ZlIGl0cyBwcm9kdWN0cyBhbmQgdG8gcHJvdmlkZSBmdXJ0aGVyIHNlcnZpY2VzIG9yIHRlY2hub2xvZ2llcyB0byBZb3UuXG40R0wgQXBwcyBtYXkgcHJvY2VzcyBwZXJzb25hbCBkYXRhIHdpdGggcmVzcGVjdCB0byBZb3UsIGlm''@;'; + put 'put ''IGFuZCB0byB0aGUgZXh0ZW50IG5lY2Vzc2FyeSB0byBwcm92aWRlIHRoZSBMaWNlbnNlIEtleSwgdG8gcHJvdmlkZSBtYWludGVuYW5jZSBhbmQgc3VwcG9ydCB0byBZb3Ugd2l0aCByZXNwZWN0IHRvIERhdGEgQ29udHJvbGxlciBmb3IgU0FTXHhhZSBhbmQgdG8gY29tcGx5IHdpdGggaXRz''@;'; + put 'put ''IG9ibGlnYXRpb25zIHVuZGVyIHRoaXMgRVVMQS4gVG8gdGhlIGV4dGVudCA0R0wgQXBwcyB3aWxsIHByb2Nlc3MgcGVyc29uYWwgZGF0YSwgaXQgd2lsbCBjb21wbHkgd2l0aCBpdHMgb2JsaWdhdGlvbnMgdW5kZXIgYXBwbGljYWJsZSBkYXRhIHByb3RlY3Rpb24gbGF3LiBQbGVhc2Ugc2Vl''@;'; + put 'put ''IG91ciBwcml2YWN5IHN0YXRlbWVudCBmb3IgbW9yZSBkZXRhaWxzIG9uIHRoZSBwcm9jZXNzaW5nIG9mIFlvdXIgcGVyc29uYWwgZGF0YSB0aGF0IDRHTCBBcHBzIGhhcyBjb2xsZWN0ZWQgYW5kIHJlY2VpdmVkIHRocm91Z2ggaXRzIHdlYnNpdGUuXG5cbiMjIERpc2NsYWltZXJcbllvdSBV''@;'; + put 'put ''c2UgRGF0YSBDb250cm9sbGVyIGZvciBTQVNceGFlIGF0IFlvdXIgb3duIHJpc2sgYW5kIHRoZSBlbnRpcmUgcmlzayBhcyB0byBzYXRpc2ZhY3RvcnkgcXVhbGl0eSwgcGVyZm9ybWFuY2UgYW5kIGFjY3VyYWN5IGlzIHdpdGggWW91LlxuRGF0YSBDb250cm9sbGVyIGZvciBTQVNceGFlIGFu''@;'; + put 'put ''ZCBhY2NvbXBhbnlpbmcgZG9jdW1lbnRhdGlvbiBhcmUgcHJvdmlkZWQgb24gYW4gXHUyMDFjYXMgaXNcdTIwMWQgYW5kIFx1MjAxY2FzIGF2YWlsYWJsZVx1MjAxZCBiYXNpcyB3aXRob3V0IHdhcnJhbnR5IC0gZXhwcmVzcyBvciBpbXBsaWVkIC0gb2YgYW55IGtpbmQsIGFuZCA0R0wgQXBw''@;'; + put 'put ''cyBzcGVjaWZpY2FsbHkgZGlzY2xhaW1zIHRoZSB3YXJyYW50eSBvZiBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4gTm8gb3JhbCBvciB3cml0dGVuIGFkdmljZSBnaXZlbiBieSA0R0wgQXBwcywgaXRzIGRlYWxlcnMsIGRpc3RyaWJ1dG9ycywgYWdlbnRzIG9yIGVtcGxveWVl''@;'; + put 'put ''cyBzaGFsbCBjcmVhdGUgYSB3YXJyYW50eSBvciBpbiBhbnkgd2F5IGluY3JlYXNlIHRoZSBzY29wZSBvZiB0aGlzIHdhcnJhbnR5IGFuZCBZb3UgbWF5IG5vdCByZWx5IHVwb24gc3VjaCBpbmZvcm1hdGlvbiBvciBhZHZpY2UuXG5cbiMjIExpYWJpbGl0eSBsaW1pdGF0aW9uXG5UaGUgbGlh''@;'; + put 'put ''YmlsaXR5IG9mIDRHTCBBcHBzIGFuZCBhbnkgdGhpcmQgcGFydHkgdGhhdCBoYXMgYmVlbiBpbnZvbHZlZCBpbiB0aGUgY3JlYXRpb24sIHByb2R1Y3Rpb24sIG9yIGRlbGl2ZXJ5IG9mIERhdGEgQ29udHJvbGxlciBmb3IgU0FTXHhhZSBmb3IgYWxsIGRhbWFnZXMgYXJpc2luZyBvdXQgb2Yg''@;'; + put 'put ''b3IgaW4gYW55IHdheSByZWxhdGluZyB0byB0aGUgRnVsbCB2ZXJzaW9uLCB0aGUgVHJpYWwgdmVyc2lvbiwgdGhlIExpY2Vuc2UgS2V5LCBEYXRhIENvbnRyb2xsZXIgZm9yIFNBU1x4YWUgYW5kL29yIHRoaXMgRVVMQSBzaGFsbCBpbiBubyBldmVudCBleGNlZWQgdGhlIGxpc3QgcHJpY2Ug''@;'; + put 'put ''b2YgdGhlIHNvZnR3YXJlLlxuXG40R0wgQXBwcyBhbmQgYW55IHRoaXJkIHBhcnR5IHRoYXQgaGFzIGJlZW4gaW52b2x2ZWQgaW4gdGhlIGNyZWF0aW9uLCBwcm9kdWN0aW9uLCBvciBkZWxpdmVyeSBvZiBEYXRhIENvbnRyb2xsZXIgZm9yIFNBU1x4YWUgYXJlIHVuZGVyIG5vIGNpcmN1bXN0''@;'; + put 'put ''YW5jZXMgbGlhYmxlIGZvciBjb25zZXF1ZW50aWFsIG9yIGluZGlyZWN0IGRhbWFnZXMgKGluY2x1ZGluZyBkYW1hZ2UgZm9yIGxvc3Mgb2YgcHJvZml0LCBidXNpbmVzcyBpbnRlcnJ1cHRpb24sIGxvc3Mgb2YgZGF0YSwgYW5kIHRoZSBsaWtlIGFyaXNpbmcgb3V0IG9mIHRoZSB1c2Ugb3Ig''@;'; + put 'put ''aW5hYmlsaXR5IHRvIHVzZSBEYXRhIENvbnRyb2xsZXIgZm9yIFNBU1x4YWUuXG5UaGUgbGltaXRhdGlvbnMgb2YgbGlhYmlsaXR5IHJlZmVycmVkIHRvIGluIGNsYXVzZSA5LjEgYW5kIDkuMiBzaGFsbCBub3QgYXBwbHkgaW4gdGhlIGV2ZW50IHRoYXQ6IChpKSBhbnkgbmVnbGlnZW5jZSBv''@;'; + put 'put ''biB0aGUgcGFydCBvZiA0R0wgQXBwcyBsZWFkcyB0byBkZWF0aCBvciBwaHlzaWNhbCBpbmp1cnkgb3IgKGlpKSBkYW1hZ2VzIGFyaXNlIGZyb20gdGhlIGludGVudCwgd2lsbGZ1bCBtaXNjb25kdWN0IG9yIGdyb3NzIG5lZ2xpZ2VuY2Ugb2YgNEdMIEFwcHMgb3IgdGhlIG1hbmFnZW1lbnQg''@;'; + put 'put ''b2YgNEdMIEFwcHMuXG5cbiMjIFRlcm1pbmF0aW9uXG5UaGlzIEVVTEEgd2lsbCBjb250aW51ZSB0byBiZSBpbiBmb3JjZSB1bnRpbCB0aGUgZXhwaXJ5IG9yIHRlcm1pbmF0aW9uIG9mIHRoZSBGdWxsIHZlcnNpb24gb3IgdGhlIFRyaWFsIHZlcnNpb24uXG5UaGUgRnVsbCB2ZXJzaW9uIG9y''@;'; + put 'put ''IFRyaWFsIHZlcnNpb24gd2lsbCB0ZXJtaW5hdGUgYXV0b21hdGljYWxseSBhdCB0aGUgZW5kIG9mIHRoZSBhcHBsaWNhYmxlIGxpY2Vuc2UgdGVybSwgdW5sZXNzIHJlbmV3ZWQgb3IgQWN0aXZhdGVkIHByaW9yIHRvIHRoZSBlbmQgb2YgdGhlIGFwcGxpY2FibGUgbGljZW5zZSB0ZXJtLlxu''@;'; + put 'put ''XG40R0wgQXBwcyBpcyBlbnRpdGxlZCB0byB0ZXJtaW5hdGUgdGhlIEZ1bGwgdmVyc2lvbiB3aXRoIGltbWVkaWF0ZSBlZmZlY3QgYW5kIHdpdGhvdXQgcHJpb3Igbm90aWNlIGluIHRoZSBldmVudCBZb3UgZmFpbCB0byBjb21wbHkgd2l0aCB0aGUgdGVybXMgaW4gdGhpcyBFVUxBLCBvciBp''@;'; + put 'put ''biB0aGUgZXZlbnQgNEdMIEFwcHMgaXMgcmVxdWlyZWQgdG8gZG8gc28gYnkgbGF3IG9yIGFuIG9yZGVyIG9mIGFuIGFwcGxpY2FibGUgY291cnQuXG5VcG9uIHRlcm1pbmF0aW9uIG9mIHRoZSBGdWxsIHZlcnNpb24gb3IgdGhlIFRyaWFsIHZlcnNpb24gWW91IHNoYWxsIGNlYXNlIGFsbCB1''@;'; + put 'put ''c2Ugb2YgRGF0YSBDb250cm9sbGVyIGZvciBTQVNceGFlLlxuWW91IGFja25vd2xlZGdlIHRoYXQgdGhlIHByb3Zpc2lvbnMgb2YgdGhpcyBFVUxBLCB3aGljaCBieSB0aGVpciBuYXR1cmUgYXJlIGludGVuZGVkIHRvIHN1cnZpdmUgdGVybWluYXRpb24sIHdpbGwgcmVtYWluIGluIGVmZmVj''@;'; + put 'put ''dCBhZnRlciB0ZXJtaW5hdGlvbiBvZiB0aGlzIEVVTEEuXG5cblxuIyMgR292ZXJuaW5nIGxhdyBhbmQganVyaXNkaWN0aW9uXG5UaGlzIGFncmVlbWVudCBhbmQgYW55IGRpc3B1dGVzIG9yIGNsYWltcyBhcmlzaW5nIG91dCBvZiBvciBpbiBjb25uZWN0aW9uIHdpdGggaXRzIHN1YmplY3Qg''@;'; + put 'put ''bWF0dGVyIGFyZSBnb3Zlcm5lZCBieSBhbmQgY29uc3RydWVkIGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgbGF3IG9mIEVuZ2xhbmQuXG5UaGUgcGFydGllcyBpcnJldm9jYWJseSBhZ3JlZSB0aGF0IHRoZSBjb3VydHMgb2YgRW5nbGFuZCBoYXZlIGV4Y2x1c2l2ZSBqdXJpc2RpY3Rpb24gdG8g''@;'; + put 'put ''c2V0dGxlIGFueSBkaXNwdXRlIG9yIGNsYWltIHRoYXQgYXJpc2VzIG91dCBvZiBvciBpbiBjb25uZWN0aW9uIHdpdGggdGhpcyBhZ3JlZW1lbnQuXG4nfW5nT25Jbml0KCl7fXRlcm1zQWdyZWVDaGFuZ2UoKXt0aGlzLmFncmVlQ2hlY2tlZCYmKHRoaXMuYWdyZWVCb3hMb2NrZWQ9ITAsdGhp''@;'; + put 'put ''cy5hZ3JlZUNsaWNrZWQ9ITAsdGhpcy5zYXNTZXJ2aWNlLnJlcXVlc3QoInB1YmxpYy9yZWdpc3RlcnVzZXIiLHtTQVNDb250cm9sVGFibGU6W3tBQ0NFUFRFRDoieWVzIn1dfSkudGhlbih2PT57di5yZXR1cm4mJnYucmV0dXJuWzBdJiYiU1VDQ0VTUyI9PT12LnJldHVyblswXS5NU0cmJmxv''@;'; + put 'put ''Y2F0aW9uLnJlbG9hZCgpfSkuY2F0Y2godj0+dikuZmluYWxseSgoKT0+e3RoaXMuYWdyZWVCb3hMb2NrZWQ9ITEsdGhpcy5hZ3JlZUNsaWNrZWQ9ITEsdGhpcy5hZ3JlZUNoZWNrZWQ9ITF9KSl9b25DYXJkQmxvY2tTY3JvbGwoaCl7aWYoIXRoaXMuYWdyZWVDbGlja2VkKXtsZXQgdj1oLnRh''@;'; + put 'put ''cmdldDt2JiYodGhpcy5hZ3JlZUJveExvY2tlZD0hKHYuc2Nyb2xsVG9wK3Yub2Zmc2V0SGVpZ2h0Pj12LnNjcm9sbEhlaWdodC0yMCkpfX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoS3QoZzIpKX0sZC5cdTAyNzVjbXA9VGkoe3R5cGU6ZCxzZWxl''@;'; + put 'put ''Y3RvcnM6W1siYXBwLXRlcm1zIl1dLGRlY2xzOjExLHZhcnM6NSxjb25zdHM6W1sxLCJjYXJkIl0sWzEsImNhcmQtaGVhZGVyIl0sWzEsImNhcmQtYmxvY2siLDMsInNjcm9sbCJdLFszLCJkYXRhIl0sWzEsImNsci1jaGVja2JveC13cmFwcGVyIiwiYWNjZXB0LWNoZWNrYm94Il0sWyJ0eXBl''@;'; + put 'put ''IiwiY2hlY2tib3giLCJpZCIsImNoZWNrYm94MSIsIm5hbWUiLCJjaGVja2JveC1iYXNpYyIsMSwiY2xyLWNoZWNrYm94IiwzLCJuZ01vZGVsIiwiZGlzYWJsZWQiLCJuZ01vZGVsQ2hhbmdlIiwiY2hhbmdlIl0sWyJmb3IiLCJjaGVja2JveDEiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oaCx2KXsx''@;'; + put 'put ''JmgmJihydCgwLCJkaXYiLDApKDEsImRpdiIsMSksWXQoMiwiIEVuZCBVc2VyIExpY2Vuc2UgQWdyZWVtZW50ICIpLHJ0KDMsInAiKSxZdCg0LCIgV2VsY29tZSB0byBEYXRhIENvbnRyb2xsZXIgZm9yIFNBUyEgUGxlYXNlIHJldmlldyBhbmQgYWNjZXB0IGFncmVlbWVudCBiZWxvdyBpbiBv''@;'; + put 'put ''cmRlciB0byBwcm9jZWVkLiAiKSxsdCgpKCkscnQoNSwiZGl2IiwyKSxHbigic2Nyb2xsIixmdW5jdGlvbihDKXtyZXR1cm4gdi5vbkNhcmRCbG9ja1Njcm9sbChDKX0pLENyKDYsIm1hcmtkb3duIiwzKSxsdCgpLHJ0KDcsImRpdiIsNCkoOCwiaW5wdXQiLDUpLEduKCJuZ01vZGVsQ2hhbmdl''@;'; + put 'put ''IixmdW5jdGlvbihDKXtyZXR1cm4gdi5hZ3JlZUNoZWNrZWQ9Q30pKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7cmV0dXJuIHYudGVybXNBZ3JlZUNoYW5nZSgpfSksbHQoKSxydCg5LCJsYWJlbCIsNiksWXQoMTAsIkkgaGF2ZSByZWFkIGFuZCBhZ3JlZSB0byB0aGUgdGVybXMgb2YgYWJvdmUuIiks''@;'; + put 'put ''bHQoKSgpKCkpLDImaCYmKHV0KDYpLFR0KCJkYXRhIix2LmV1bGFfbWFya2Rvd24pLHV0KDEpLEZpKCJkaXNhYmxlZCIsdi5hZ3JlZUJveExvY2tlZCksdXQoMSksVHQoIm5nTW9kZWwiLHYuYWdyZWVDaGVja2VkKSgiZGlzYWJsZWQiLHYuYWdyZWVCb3hMb2NrZWQpKX0sZGVwZW5kZW5jaWVz''@;'; + put 'put ''OltJZix4cyxUcyxvdCxuYmVdLHN0eWxlczpbIltfbmdob3N0LSVDT01QJV17aGVpZ2h0OjEwMCU7YmFja2dyb3VuZDojZjVmNmZmfS5jbHItY2hlY2tib3gtd3JhcHBlci5kaXNhYmxlZFtfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTouNX0uY2FyZFtfbmdjb250ZW50LSVDT01QJV17aGVp''@;'; + put 'put ''Z2h0OjEwMCU7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjttYXJnaW4tdG9wOjB9LmNhcmRbX25nY29udGVudC0lQ09NUCVdICAgLmNhcmQtYmxvY2tbX25nY29udGVudC0lQ09NUCVde2ZsZXg6MTtvdmVyZmxvdzphdXRvO2JhY2tncm91bmQtY29sb3I6I2Y0ZjRmNH0uYWNj''@;'; + put 'put ''ZXB0LWNoZWNrYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjEwcHggMTVweH0iXX0pLGR9KSgpO2Z1bmN0aW9uIFBqZShkLGcpezEmZCYmKHJ0KDAsInAiLDIwKSxZdCgxLCIgTGljZW5jZSBrZXkgaXMgaW52YWxpZC4gV2UgY2FuJ3QgcHJvdmlkZSB5b3UgbW9yZSBkZXRhaWxzIGF0''@;'; + put 'put ''IHRoZSBtb21lbnQgIiksbHQoKSl9ZnVuY3Rpb24gRmplKGQsZyl7aWYoMSZkJiZDcigwLCJwIiwyMSksMiZkKXtjb25zdCBoPUp0KDMpO1R0KCJpbm5lckhUTUwiLGgubGljZW5zZUVycm9yc1toLmtleUVycm9yXSxVOCl9fWZ1bmN0aW9uIEhqZShkLGcpe2lmKDEmZCYmKEYwKDApLHJuKDEs''@;'; + put 'put ''UGplLDIsMCwicCIsMTgpLHJuKDIsRmplLDEsMSwicCIsMTkpLEgwKCkpLDImZCl7Y29uc3QgaD1KdCgyKTt1dCgxKSxUdCgibmdJZiIsIWgua2V5RXJyb3IpLHV0KDEpLFR0KCJuZ0lmIixoLmtleUVycm9yKX19ZnVuY3Rpb24gTmplKGQsZyl7MSZkJiYoRjAoMCkscnQoMSwicCIsMjApLFl0''@;'; + put 'put ''KDIsIiBUaGUgcmVnaXN0ZXJlZCBudW1iZXIgb2YgdXNlcnMgcmVhY2hlZCB0aGUgbGltaXQgc3BlY2lmaWVkIGZvciB5b3VyIGxpY2VuY2UuIFBsZWFzZSBjb250YWN0ICIpLHJ0KDMsImEiLDIyKSxZdCg0LCJzdXBwb3J0QGRhdGFjb250cm9sbGVyLmlvIiksbHQoKSxZdCg1LCIgb3IgeW91''@;'; + put 'put ''ciByZXNlbGxlciB0byBhcnJhbmdlIGFkZGl0aW9uYWwgbGljZW5jZXMgZm9yIHRoaXMgcHJvZHVjdC4gIiksbHQoKSxIMCgpKX1mdW5jdGlvbiBWamUoZCxnKXsxJmQmJihGMCgwKSxydCgxLCJwIiwyMCksWXQoMiwiIFVwZGF0ZSB0aGUgbGljZW5zZSBrZXkgYnkgcGFzdGluZyBsaWNlbnNl''@;'; + put 'put ''IGtleSBhbmQgYWN0aXZhdGlvbiBrZXkgaW4gdGhlIGlucHV0cyBiZWxvdy4gIiksbHQoKSxIMCgpKX1mdW5jdGlvbiBqamUoZCxnKXtpZigxJmQmJihydCgwLCJzcGFuIiksWXQoMSksbHQoKSksMiZkKXtjb25zdCBoPWcuJGltcGxpY2l0LHY9Zy5pbmRleCx5PUp0KDIpO0ZpKCJtaXNza2V5''@;'; + put 'put ''Iix5Lm1pc3NtYXRjaGVkS2V5JiZ5Lm1pc3NtYXRjaGVkS2V5PT09aCksdXQoMSksRmgoIiAiLGgsIiIsdj09PShudWxsPT15LnN5c3NpdGUudmFsdWU/bnVsbDp5LnN5c3NpdGUudmFsdWUubGVuZ3RoKS0xPyIiOiIsIiwiICIpfX1mdW5jdGlvbiBaamUoZCxnKXtpZigxJmQpe2NvbnN0IGg9''@;'; + put 'put ''YmkoKTtydCgwLCJkaXYiLDIpKDEsImRpdiIsMyksWXQoMiwiTGljZW5jaW5nIiksbHQoKSxydCgzLCJkaXYiLDQpLHJuKDQsSGplLDMsMiwibmctY29udGFpbmVyIiw1KSxybig1LE5qZSw2LDAsIm5nLWNvbnRhaW5lciIsNSkscm4oNixWamUsMywwLCJuZy1jb250YWluZXIiLDUpLHJ0KDcs''@;'; + put 'put ''InAiKSg4LCJzdHJvbmciKSxZdCg5LCJTWVNTSVRFOiIpLGx0KCkscm4oMTAsamplLDIsNCwic3BhbiIsNikscnQoMTEsImEiLDcpLEduKCJjbGljayIsZnVuY3Rpb24oKXtpdChoKTtjb25zdCB5PXlhKDEzKSxDPXlhKDE1KSxJPUp0KCk7cmV0dXJuIGEoSS5jb3B5U3lzc2l0ZSh5LEMsSS5z''@;'; + put 'put ''eXNzaXRlLnZhbHVlfHxbXSkpfSksQ3IoMTIsImNsci1pY29uIiw4LDkpLHJ0KDE0LCJzcGFuIiwxMCwxMSksWXQoMTYsIkNvcHkgdG8gY2xpcGJvYXJkIiksbHQoKSgpKCkscnQoMTcsImZvcm0iLDEyKSgxOCwicCIpLFl0KDE5LCJMaWNlbmNlIGtleToiKSxsdCgpLHJ0KDIwLCJkaXYiLDEz''@;'; + put 'put ''KSgyMSwidGV4dGFyZWEiLDE0KSxHbigibmdNb2RlbENoYW5nZSIsZnVuY3Rpb24oeSl7cmV0dXJuIGl0KGgpLGEoSnQoKS5saWNlbnNlS2V5VmFsdWU9eSl9KSgibW91c2VsZWF2ZSIsZnVuY3Rpb24oKXtyZXR1cm4gaXQoaCksYShKdCgpLnRyaW1LZXlzKCkpfSksbHQoKSgpKCkscnQoMjIs''@;'; + put 'put ''ImZvcm0iLDE1KSgyMywicCIpLFl0KDI0LCJBY3RpdmF0aW9uIGtleToiKSxsdCgpLHJ0KDI1LCJkaXYiLDEzKSgyNiwidGV4dGFyZWEiLDE2KSxHbigibmdNb2RlbENoYW5nZSIsZnVuY3Rpb24oeSl7cmV0dXJuIGl0KGgpLGEoSnQoKS5hY3RpdmF0aW9uS2V5VmFsdWU9eSl9KSgibW91c2Vs''@;'; + put 'put ''ZWF2ZSIsZnVuY3Rpb24oKXtyZXR1cm4gaXQoaCksYShKdCgpLnRyaW1LZXlzKCkpfSksbHQoKSgpKCkscnQoMjcsImJ1dHRvbiIsMTcpLEduKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gaXQoaCksYShKdCgpLmFwcGx5S2V5cygpKX0pLFl0KDI4LCIgQXBwbHkgbGljZW5jZSBrZXlzICIp''@;'; + put 'put ''LGx0KCkoKSgpfWlmKDImZCl7Y29uc3QgaD1KdCgpO3V0KDMpLFR0KCJuZ1N3aXRjaCIsaC5hY3Rpb24pLHV0KDEpLFR0KCJuZ1N3aXRjaENhc2UiLCJrZXkiKSx1dCgxKSxUdCgibmdTd2l0Y2hDYXNlIiwibGltaXQiKSx1dCgxKSxUdCgibmdTd2l0Y2hDYXNlIiwidXBkYXRlIiksdXQoNCks''@;'; + put 'put ''VHQoIm5nRm9yT2YiLGguc3lzc2l0ZS52YWx1ZSksdXQoMTEpLFR0KCJuZ01vZGVsIixoLmxpY2Vuc2VLZXlWYWx1ZSksdXQoNSksVHQoIm5nTW9kZWwiLGguYWN0aXZhdGlvbktleVZhbHVlKSx1dCgxKSxUdCgiY2xyTG9hZGluZyIsaC5hcHBseWluZ0tleXMpKCJkaXNhYmxlZCIsaC5saWNl''@;'; + put 'put ''bnNlS2V5VmFsdWUubGVuZ3RoPDF8fGguYWN0aXZhdGlvbktleVZhbHVlLmxlbmd0aDwxKX19ZnVuY3Rpb24gemplKGQsZyl7MSZkJiZDcigwLCJhcHAtdGVybXMiKX12YXIgV3E9KCgpPT4oZnVuY3Rpb24oZCl7ZC5rZXk9ImtleSIsZC5yZWdpc3Rlcj0icmVnaXN0ZXIiLGQubGltaXQ9Imxp''@;'; + put 'put ''bWl0IixkLnVwZGF0ZT0idXBkYXRlIn0oV3F8fChXcT17fSkpLFdxKSkoKTtsZXQgR2plPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2LHksQyxJKXt0aGlzLnJvdXRlPWgsdGhpcy5yb3V0ZXI9dix0aGlzLmV2ZW50U2VydmljZT15LHRoaXMuc2FzU2VydmljZT1DLHRoaXMuYXBwU2Vy''@;'; + put 'put ''dmljZT1JLHRoaXMuYWN0aW9uPW51bGwsdGhpcy5saWNlbnNlRXJyb3JzPXttaXNzaW5nOidMaWNlbmNlIGtleSBpcyBtaXNzaW5nIC0gcGxlYXNlIGNvbnRhY3QgPGEgY2xhc3M9ImNvbG9yLWdyZWVuIiBocmVmPSJtYWlsdG86IHN1cHBvcnRAZGF0YWNvbnRyb2xsZXIuaW8iPnN1cHBvcnRA''@;'; + put 'put ''ZGF0YWNvbnRyb2xsZXIuaW88L2E+IGFuZCBlbnRlciB2YWxpZCBrZXlzIGJlbG93LicsZXhwaXJlZDonTGljZW5jZSBrZXkgaXMgZXhwaXJlZCAtIHBsZWFzZSBjb250YWN0IDxhIGNsYXNzPSJjb2xvci1ncmVlbiIgaHJlZj0ibWFpbHRvOiBzdXBwb3J0QGRhdGFjb250cm9sbGVyLmlvIj5z''@;'; + put 'put ''dXBwb3J0QGRhdGFjb250cm9sbGVyLmlvPC9hPiBhbmQgZW50ZXIgdmFsaWQga2V5cyBiZWxvdy4nLGludmFsaWQ6J0xpY2VuY2Uga2V5IGlzIGludmFsaWQgLSBwbGVhc2UgY29udGFjdCA8YSBjbGFzcz0iY29sb3ItZ3JlZW4iIGhyZWY9Im1haWx0bzogc3VwcG9ydEBkYXRhY29udHJvbGxl''@;'; + put 'put ''ci5pbyI+c3VwcG9ydEBkYXRhY29udHJvbGxlci5pbzwvYT4gYW5kIGVudGVyIHZhbGlkIGtleXMgYmVsb3cuJyxtaXNzbWF0Y2g6J1lvdXIgU1lTU0lURSAoYmVsb3cpIGlzIG5vdCBmb3VuZCBpbiB0aGUgbGljZW5jZSBrZXkgLSBwbGVhc2UgY29udGFjdCA8YSBjbGFzcz0iY29sb3ItZ3Jl''@;'; + put 'put ''ZW4iIGhyZWY9Im1haWx0bzogc3VwcG9ydEBkYXRhY29udHJvbGxlci5pbyI+c3VwcG9ydEBkYXRhY29udHJvbGxlci5pbzwvYT4gYW5kIGVudGVyIHZhbGlkIGtleXMgYmVsb3cuJ30sdGhpcy5saWNlbnNlS2V5VmFsdWU9IiIsdGhpcy5hY3RpdmF0aW9uS2V5VmFsdWU9IiIsdGhpcy5hcHBs''@;'; + put 'put ''eWluZ0tleXM9ITEsdGhpcy5zeXNzaXRlPXRoaXMuYXBwU2VydmljZS5zeXNzaXRlLHRoaXMubGljZW5jZUtleT10aGlzLmFwcFNlcnZpY2UubGljZW5jZUtleSx0aGlzLmFjdGl2YXRpb25LZXk9dGhpcy5hcHBTZXJ2aWNlLmFjdGl2YXRpb25LZXl9bmdPbkluaXQoKXt0aGlzLmxpY2Vuc2VL''@;'; + put 'put ''ZXlWYWx1ZT10aGlzLmxpY2VuY2VLZXl8fCIiLHRoaXMuYWN0aXZhdGlvbktleVZhbHVlPXRoaXMuYWN0aXZhdGlvbktleXx8IiIsdGhpcy5yb3V0ZS5xdWVyeVBhcmFtcy5zdWJzY3JpYmUoaD0+e3RoaXMua2V5RXJyb3I9aC5lcnJvcix0aGlzLm1pc3NtYXRjaGVkS2V5PWgubWlzc21hdGNo''@;'; + put 'put ''SWR9KSx0aGlzLnJvdXRlLnBhcmFtcy5zdWJzY3JpYmUoaD0+e2xldCB2PWguYWN0aW9uO3YmJk9iamVjdC52YWx1ZXMoV3EpLmluY2x1ZGVzKHYpJiYodGhpcy5hY3Rpb249dil9KX10cmltS2V5cygpe3RoaXMubGljZW5zZUtleVZhbHVlPXRoaXMubGljZW5zZUtleVZhbHVlLnRyaW0oKSx0''@;'; + put 'put ''aGlzLmFjdGl2YXRpb25LZXlWYWx1ZT10aGlzLmFjdGl2YXRpb25LZXlWYWx1ZS50cmltKCl9Y29weVN5c3NpdGUoaCx2LHkpe2NvbnN0IEM9eS5qb2luKCJcbiIpO25hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KEMpLnRoZW4oKCk9PntoLnNldEF0dHJpYnV0ZSgic2hhcGUiLCJjaGVj''@;'; + put 'put ''ayIpLGguc2V0QXR0cmlidXRlKCJjbGFzcyIsImlzLXN1Y2Nlc3MiKSx2LmlubmVyVGV4dD0iQ29waWVkISIsc2V0VGltZW91dCgoKT0+e2guc2V0QXR0cmlidXRlKCJzaGFwZSIsImNvcHkiKSxoLnJlbW92ZUF0dHJpYnV0ZSgiY2xhc3MiKSx2LmlubmVyVGV4dD0iQ29weSB0byBjbGlwYm9h''@;'; + put 'put ''cmQifSwxZTMpfSl9YXBwbHlLZXlzKCl7dGhpcy5hcHBseWluZ0tleXM9ITAsdGhpcy5zYXNTZXJ2aWNlLnJlcXVlc3QoImFkbWluL3JlZ2lzdGVya2V5Iix7a2V5dXBsb2FkOlt7QUNUSVZBVElPTl9LRVk6dGhpcy5hY3RpdmF0aW9uS2V5VmFsdWUsTElDRU5DRV9LRVk6dGhpcy5saWNlbnNl''@;'; + put 'put ''S2V5VmFsdWV9XX0pLnRoZW4odj0+e3YucmV0dXJuJiZ2LnJldHVyblswXSYmIlNVQ0NFU1MiPT09di5yZXR1cm5bMF0uTVNHJiZsb2NhdGlvbi5yZXBsYWNlKGxvY2F0aW9uLmhyZWYuc3BsaXQoIiMiKVswXSl9KS5maW5hbGx5KCgpPT57dGhpcy5hcHBseWluZ0tleXM9ITF9KX19cmV0dXJu''@;'; + put 'put ''IGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoS3QoUHUpLEt0KFpsKSxLdChtdSksS3QoZzIpLEt0KFI3KSl9LGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQsc2VsZWN0b3JzOltbImFwcC1saWNlbnNpbmciXV0sZGVjbHM6Mix2YXJzOjIsY29uc3RzOltbImNsYXNzIiwi''@;'; + put 'put ''Y2FyZCIsNCwibmdJZiJdLFs0LCJuZ0lmIl0sWzEsImNhcmQiXSxbMSwiY2FyZC1oZWFkZXIiXSxbMSwiY2FyZC1ibG9jayIsMywibmdTd2l0Y2giXSxbNCwibmdTd2l0Y2hDYXNlIl0sWzMsIm1pc3NrZXkiLDQsIm5nRm9yIiwibmdGb3JPZiJdLFsxLCJ0b29sdGlwIiwidG9vbHRpcC1tZCIs''@;'; + put 'put ''InRvb2x0aXAtdG9wLXJpZ2h0IiwzLCJjbGljayJdLFsic2hhcGUiLCJjb3B5Iiwic2l6ZSIsIjE1IiwxLCJjdXJzb3ItcG9pbnRlciJdLFsiY29weUljb24iLCIiXSxbMSwidG9vbHRpcC1jb250ZW50Il0sWyJjb3B5VG9vbHRpcCIsIiJdLFsxLCJjbHItZm9ybSIsImxpY2Vuc2Uta2V5LWZv''@;'; + put 'put ''cm0iXSxbMSwiY2xyLWNvbnRyb2wtY29udGFpbmVyIl0sWyJuYW1lIiwibGljZW5zZS1rZXktYXJlYSIsInBsYWNlaG9sZGVyIiwiUGFzdGUgbGljZW5jZSBrZXkgaGVyZSIsMSwiY2xyLXRleHRhcmVhIiwzLCJuZ01vZGVsIiwibmdNb2RlbENoYW5nZSIsIm1vdXNlbGVhdmUiXSxbMSwiY2xy''@;'; + put 'put ''LWZvcm0iLCJhY3RpdmF0aW9uLWtleS1mb3JtIl0sWyJuYW1lIiwiYWN0aXZhdGlvbi1rZXktYXJlYSIsInBsYWNlaG9sZGVyIiwiUGFzdGUgYWN0aXZhdGlvbiBrZXkgaGVyZSIsMSwiY2xyLXRleHRhcmVhIiwzLCJuZ01vZGVsIiwibmdNb2RlbENoYW5nZSIsIm1vdXNlbGVhdmUiXSxbMSwi''@;'; + put 'put ''YnRuIiwiYnRuLXByaW1hcnkiLCJhcHBseS1rZXlzIiwzLCJjbHJMb2FkaW5nIiwiZGlzYWJsZWQiLCJjbGljayJdLFsiY2xhc3MiLCJrZXktZXJyb3IiLDQsIm5nSWYiXSxbImNsYXNzIiwia2V5LWVycm9yIiwzLCJpbm5lckhUTUwiLDQsIm5nSWYiXSxbMSwia2V5LWVycm9yIl0sWzEsImtl''@;'; + put 'put ''eS1lcnJvciIsMywiaW5uZXJIVE1MIl0sWyJocmVmIiwibWFpbHRvOiBzdXBwb3J0QGRhdGFjb250cm9sbGVyLmlvIiwxLCJjb2xvci1ncmVlbiJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihoLHYpezEmaCYmKHJuKDAsWmplLDI5LDksImRpdiIsMCkscm4oMSx6amUsMSwwLCJhcHAtdGVybXMiLDEp''@;'; + put 'put ''KSwyJmgmJihUdCgibmdJZiIsInJlZ2lzdGVyIiE9PXYuYWN0aW9uKSx1dCgxKSxUdCgibmdJZiIsInJlZ2lzdGVyIj09PXYuYWN0aW9uKSl9LGRlcGVuZGVuY2llczpbRXMsTm8sSmQsaXAscGcsbTEseHMsZGcsVHMsTGMsQmplLHdsLGdvLHddLHN0eWxlczpbIltfbmdob3N0LSVDT01QJV17''@;'; + put 'put ''aGVpZ2h0OmNhbGMoMTAwJSAtIDk2cHgpO3BhZGRpbmc6MjBweH0uY2FyZFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDowfS5rZXktZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNnB4fS5taXNza2V5W19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjojZTc0YzNjfS5s''@;'; + put 'put ''aWNlbnNlLWtleS1mb3JtW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmFjdGl2YXRpb24ta2V5LWZvcm1bX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MH0ubGljZW5zZS1rZXktZm9ybVtfbmdjb250ZW50LSVDT01QJV0gICAuY2xyLWNvbnRyb2wtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAl''@;'; + put 'put ''XSwgLmFjdGl2YXRpb24ta2V5LWZvcm1bX25nY29udGVudC0lQ09NUCVdICAgLmNsci1jb250cm9sLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17d2lkdGg6MTAwJX0ubGljZW5zZS1rZXktZm9ybVtfbmdjb250ZW50LSVDT01QJV0gICAuY2xyLWNvbnRyb2wtY29udGFpbmVyW19uZ2Nv''@;'; + put 'put ''bnRlbnQtJUNPTVAlXSAgIHRleHRhcmVhW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmFjdGl2YXRpb24ta2V5LWZvcm1bX25nY29udGVudC0lQ09NUCVdICAgLmNsci1jb250cm9sLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0gICB0ZXh0YXJlYVtfbmdjb250ZW50LSVDT01QJV17d2lkdGg6''@;'; + put 'put ''MTAwJTtoZWlnaHQ6MTcwcHg7bWF4LWhlaWdodDoxNzBweDttaW4taGVpZ2h0OjE3MHB4O3Jlc2l6ZTpub25lfS5hcHBseS1rZXlzW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOjEwcHg7aGVpZ2h0OjQwcHg7d2lkdGg6MjAwcHh9Il19KSxkfSkoKSxqaGU9KCgpPT57Y2xhc3MgZHtj''@;'; + put 'put ''b25zdHJ1Y3RvcihoLHYpe3RoaXMuYXBwU2VydmljZT1oLHRoaXMucm91dGVyPXZ9Y2FuQWN0aXZhdGUoaCx2KXtyZXR1cm4hIShudWxsIT12JiZ2LnVybC5pbmNsdWRlcygibGljZW5zaW5nL3VwZGF0ZSIpJiZ0aGlzLmFwcFNlcnZpY2UuaXNBcHBBY3RpdmF0ZWR8fG51bGwhPT10aGlzLmFw''@;'; + put 'put ''cFNlcnZpY2UuaXNBcHBBY3RpdmF0ZWQudmFsdWUmJiExPT09dGhpcy5hcHBTZXJ2aWNlLmlzQXBwQWN0aXZhdGVkLnZhbHVlKXx8KHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoIi9ob21lIiksITEpfWNhbkRlYWN0aXZhdGUoaCx2LHksQyl7cmV0dXJuIG51bGw9PT10aGlzLmFwcFNlcnZp''@;'; + put 'put ''Y2UuaXNBcHBBY3RpdmF0ZWQudmFsdWV8fCEhdGhpcy5hcHBTZXJ2aWNlLmlzQXBwQWN0aXZhdGVkLnZhbHVlfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShDaShSNyksQ2koWmwpKX0sZC5cdTAyNzVwcm92PUFpKHt0b2tlbjpkLGZhY3Rvcnk6ZC5c''@;'; + put 'put ''dTAyNzVmYWN9KSxkfSkoKTt2YXIgV2hlLGlPLElaO2Z1bmN0aW9uIFpoZShkKXtyZXR1cm4oWmhlPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGcpe3JldHVybiB0eXBlb2YgZ306ZnVuY3Rpb24oZyl7cmV0dXJu''@;'; + put 'put ''IGcmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmcuY29uc3RydWN0b3I9PT1TeW1ib2wmJmchPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBnfSkoZCl9TCgxMzQwMCksTCgxMzI3OCksTCg1MjMxMyksTCg3MDg2NCksTCg2NDk1MiksTCg5NzA4NyksTCgzMTEyMyksTCgy''@;'; + put 'put ''NDgwKSxMKDgzMDI4KSxMKDQyNzYwKSxMKDEwNDE0KSxMKDY5MTApLEwoNTM5NTApLEwoNjM5NjcpLEwoODM1OTApLEwoMjA2NDcpLEwoNTg1OTQpLEwoNTgzMjQpLEwoOTE5NDUpLEwoNTc5NDMpLEwoOTY2NCksTCg1ODI3MiksTCgyNjU3KSxMKDg2NDI3KSxMKDMzNTgzKSxMKDE4MTU4KSxM''@;'; + put 'put ''KDI4NzY0KSxMKDQ1MTM1KSxMKDM0NzcwKSxMKDY0NDE4KSxMKDE2ODI1KSxMKDMwNTcxKSxMKDc2NzQ5KSxMKDgzNjIwKTtmb3IodmFyIGliZT0wLFlxPVsibXMiLCJtb3oiLCJ3ZWJraXQiLCJvIl0sRVo9d2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSxVcT13aW5kb3cuY2FuY2VsQW5p''@;'; + put 'put ''bWF0aW9uRnJhbWUseFo9MDt4WjxZcS5sZW5ndGgmJiFFWjsrK3haKUVaPXdpbmRvd1siIi5jb25jYXQoWXFbeFpdLCJSZXF1ZXN0QW5pbWF0aW9uRnJhbWUiKV0sVXE9d2luZG93WyIiLmNvbmNhdChZcVt4Wl0sIkNhbmNlbEFuaW1hdGlvbkZyYW1lIildfHx3aW5kb3dbIiIuY29uY2F0KFlx''@;'; + put 'put ''W3haXSwiQ2FuY2VsUmVxdWVzdEFuaW1hdGlvbkZyYW1lIildO2Z1bmN0aW9uIHpoZShkKXtyZXR1cm4gRVouY2FsbCh3aW5kb3csZCl9ZnVuY3Rpb24gb2JlKCl7cmV0dXJuISFkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xhc3NMaXN0fWZ1bmN0aW9uIGFiZSgpe3JldHVybiEhZG9jdW1l''@;'; + put 'put ''bnQuY3JlYXRlVGV4dE5vZGUoInRlc3QiKS50ZXh0Q29udGVudH1mdW5jdGlvbiBsYmUoKXtyZXR1cm4hIXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlfWZ1bmN0aW9uIFRaKGQpe1VxLmNhbGwod2luZG93LGQpfWZ1bmN0aW9uIEdoZSgpe3JldHVybiJvbnRvdWNoc3RhcnQiaW4gd2luZG93fWZ1''@;'; + put 'put ''bmN0aW9uIFloZSgpe3JldHVybiB2b2lkIDA9PT1XaGUmJmZ1bmN0aW9uIFdqZSgpe3ZhciBkPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRBQkxFIik7ZC5zdHlsZS5ib3JkZXJTcGFjaW5nPSIwIixkLnN0eWxlLmJvcmRlcldpZHRoPSIwIixkLnN0eWxlLnBhZGRpbmc9IjAiO3ZhciBnPWRv''@;'; + put 'put ''Y3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRCT0RZIik7ZC5hcHBlbmRDaGlsZChnKSxnLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIikpLGcuZmlyc3RDaGlsZC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpKSxnLmZpcnN0Q2hpbGQuZmlyc3RD''@;'; + put 'put ''aGlsZC5pbm5lckhUTUw9Ijx0cj48dGQ+dDxicj50PC90ZD48L3RyPiI7dmFyIGg9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiQ0FQVElPTiIpO2guaW5uZXJIVE1MPSJjPGJyPmM8YnI+Yzxicj5jIixoLnN0eWxlLnBhZGRpbmc9IjAiLGguc3R5bGUubWFyZ2luPSIwIixkLmluc2VydEJlZm9y''@;'; + put 'put ''ZShoLGcpLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZCksV2hlPWQub2Zmc2V0SGVpZ2h0PDIqZC5sYXN0Q2hpbGQub2Zmc2V0SGVpZ2h0LGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZCl9KCksV2hlfWZ1bmN0aW9uIHNiZShkKXt2YXIgZz1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQg''@;'; + put 'put ''MCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e307cmV0dXJuIGlPfHwoaU89Im9iamVjdCI9PT0oInVuZGVmaW5lZCI9PXR5cGVvZiBJbnRsPyJ1bmRlZmluZWQiOlpoZShJbnRsKSk/bmV3IEludGwuQ29sbGF0b3IoZCxnKS5jb21wYXJlOiJmdW5jdGlvbiI9PXR5cGVvZiBTdHJpbmcu''@;'; + put 'put ''cHJvdG90eXBlLmxvY2FsZUNvbXBhcmU/ZnVuY3Rpb24odix5KXtyZXR1cm4iIi5jb25jYXQodikubG9jYWxlQ29tcGFyZSh5KX06ZnVuY3Rpb24odix5KXtyZXR1cm4gdj09PXk/MDp2Pnk/LTE6MX0pfWZ1bmN0aW9uIHViZSgpe2lmKHZvaWQgMCE9PUlaKXJldHVybiBJWjt0cnl7dmFyIGQ9''@;'; + put 'put ''e2dldCBwYXNzaXZlKCl7SVo9ITB9fTt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigidGVzdCIsZCxkKSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigidGVzdCIsZCxkKX1jYXRjaChnKXtJWj0hMX1yZXR1cm4gSVp9ZnVuY3Rpb24gY2JlKGQpe2Zvcih2YXIgZz1kLmxlbmd0aCxoPTA7aDxn''@;'; + put 'put ''OylkW2hdPVtkW2hdXSxoKz0xfWZ1bmN0aW9uIFVoZShkLGcpe2Zvcih2YXIgaD1nLmxlbmd0aCx2PTA7djxoOylkLnB1c2goZ1t2XSksdis9MX1mdW5jdGlvbiBEWihkKXt2YXIgZz1bXTtpZighZHx8MD09PWQubGVuZ3RofHwhZFswXXx8MD09PWRbMF0ubGVuZ3RoKXJldHVybiBnO2Zvcih2''@;'; + put 'put ''YXIgaD1kLmxlbmd0aCx2PWRbMF0ubGVuZ3RoLHk9MDt5PGg7eSsrKWZvcih2YXIgQz0wO0M8djtDKyspZ1tDXXx8KGdbQ109W10pLGdbQ11beV09ZFt5XVtDXTtyZXR1cm4gZ31mdW5jdGlvbiBTdShkLGcsaCx2KXt2YXIgeT0tMSxDPWQsST1oO0FycmF5LmlzQXJyYXkoZCl8fChDPUFycmF5''@;'; + put 'put ''LmZyb20oZCkpO3ZhciBqPUMubGVuZ3RoO2Zvcih2JiZqJiYoST1DW3krPTFdKSx5Kz0xO3k8ajspST1nKEksQ1t5XSx5LEMpLHkrPTE7cmV0dXJuIEl9ZnVuY3Rpb24gZzQoZCxnKXt2YXIgaD0wLHY9ZDtBcnJheS5pc0FycmF5KGQpfHwodj1BcnJheS5mcm9tKGQpKTtmb3IodmFyIHk9di5s''@;'; + put 'put ''ZW5ndGgsQz1bXSxJPS0xO2g8eTspe3ZhciBqPXZbaF07ZyhqLGgsdikmJihDW0krPTFdPWopLGgrPTF9cmV0dXJuIEN9ZnVuY3Rpb24gT2woZCxnKXt2YXIgaD0wLHY9ZDtBcnJheS5pc0FycmF5KGQpfHwodj1BcnJheS5mcm9tKGQpKTtmb3IodmFyIHk9di5sZW5ndGgsQz1bXSxJPS0xO2g8''@;'; + put 'put ''eTspQ1tJKz0xXT1nKHZbaF0saCx2KSxoKz0xO3JldHVybiBDfWZ1bmN0aW9uIFVyKGQsZyl7dmFyIGg9MCx2PWQ7QXJyYXkuaXNBcnJheShkKXx8KHY9QXJyYXkuZnJvbShkKSk7Zm9yKHZhciB5PXYubGVuZ3RoO2g8eSYmITEhPT1nKHZbaF0saCx2KTspaCs9MTtyZXR1cm4gZH1mdW5jdGlv''@;'; + put 'put ''biBmYmUoZCl7cmV0dXJuIFN1KGQsZnVuY3Rpb24oZyxoKXtyZXR1cm4gZytofSwwKX1mdW5jdGlvbiBZamUoZCl7cmV0dXJuIFN1KGQsZnVuY3Rpb24oZyxoKXtyZXR1cm4gZz5oP2c6aH0sQXJyYXkuaXNBcnJheShkKT9kWzBdOnZvaWQgMCl9ZnVuY3Rpb24gVWplKGQpe3JldHVybiBTdShk''@;'; + put 'put ''LGZ1bmN0aW9uKGcsaCl7cmV0dXJuIGc8aD9nOmh9LEFycmF5LmlzQXJyYXkoZCk/ZFswXTp2b2lkIDApfWZ1bmN0aW9uIFFqZShkKXtyZXR1cm4gZC5sZW5ndGg/ZmJlKGQpL2QubGVuZ3RoOjB9ZnVuY3Rpb24gaGJlKGQpe3JldHVybiBTdShkLGZ1bmN0aW9uKGcsaCl7cmV0dXJuIGcuY29u''@;'; + put 'put ''Y2F0KEFycmF5LmlzQXJyYXkoaCk/aGJlKGgpOmgpfSxbXSl9ZnVuY3Rpb24gUWhlKGQpe3ZhciBnPVtdO3JldHVybiBVcihkLGZ1bmN0aW9uKGgpey0xPT09Zy5pbmRleE9mKGgpJiZnLnB1c2goaCl9KSxnfWZ1bmN0aW9uIEpoZSgpe2Zvcih2YXIgZD1hcmd1bWVudHMubGVuZ3RoLGc9bmV3''@;'; + put 'put ''IEFycmF5KGQpLGg9MDtoPGQ7aCsrKWdbaF09YXJndW1lbnRzW2hdO3ZhciB2PVtdLmNvbmNhdChnKSx5PXZbMF0sQz12LnNsaWNlKDEpLEk9eTtyZXR1cm4gVXIoQyxmdW5jdGlvbihqKXtJPUkuZmlsdGVyKGZ1bmN0aW9uKHVlKXtyZXR1cm4hai5pbmNsdWRlcyh1ZSl9KX0pLEl9ZnVuY3Rp''@;'; + put 'put ''b24gSmplKCl7Zm9yKHZhciBkPWFyZ3VtZW50cy5sZW5ndGgsZz1uZXcgQXJyYXkoZCksaD0wO2g8ZDtoKyspZ1toXT1hcmd1bWVudHNbaF07dmFyIHY9W10uY29uY2F0KGcpLHk9dlswXSxDPXYuc2xpY2UoMSksST15O3JldHVybiBVcihDLGZ1bmN0aW9uKGope0k9SS5maWx0ZXIoZnVuY3Rp''@;'; + put 'put ''b24odWUpe3JldHVybiBqLmluY2x1ZGVzKHVlKX0pfSksSX1mdW5jdGlvbiBYamUoKXtmb3IodmFyIGQ9YXJndW1lbnRzLmxlbmd0aCxnPW5ldyBBcnJheShkKSxoPTA7aDxkO2grKylnW2hdPWFyZ3VtZW50c1toXTt2YXIgdj1bXS5jb25jYXQoZykseT12WzBdLEM9di5zbGljZSgxKSxJPW5l''@;'; + put 'put ''dyBTZXQoeSk7cmV0dXJuIFVyKEMsZnVuY3Rpb24oail7VXIoaixmdW5jdGlvbih1ZSl7SS5oYXModWUpfHxJLmFkZCh1ZSl9KX0pLEFycmF5LmZyb20oSSl9ZnVuY3Rpb24gWGhlKGQpe3ZhciBnPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sx''@;'; + put 'put ''XToiICI7cmV0dXJuIGQuc3BsaXQoZyl9ZnVuY3Rpb24gZGJlKGQsZyxoKXtyZXR1cm4gZyBpbiBkP09iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGcse3ZhbHVlOmgsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpkW2ddPWgsZH1mdW5jdGlvbiBvTyhkKXtyZXR1''@;'; + put 'put ''cm4ob089ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZyl7cmV0dXJuIHR5cGVvZiBnfTpmdW5jdGlvbihnKXtyZXR1cm4gZyYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZy5jb25zdHJ1Y3Rvcj09PVN5bWJv''@;'; + put 'put ''bCYmZyE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGd9KShkKX1mdW5jdGlvbiBhTyhkKXt2YXIgZztyZXR1cm4gQXJyYXkuaXNBcnJheShkKT9nPVtdOihnPXt9LEdsKGQsZnVuY3Rpb24oaCx2KXsiX19jaGlsZHJlbiIhPT12JiYoZ1t2XT1oJiYib2JqZWN0Ij09PW9PKGgp''@;'; + put 'put ''JiYhQXJyYXkuaXNBcnJheShoKT9hTyhoKTpBcnJheS5pc0FycmF5KGgpP2gubGVuZ3RoJiYib2JqZWN0Ij09PW9PKGhbMF0pJiYhQXJyYXkuaXNBcnJheShoWzBdKT9bYU8oaFswXSldOltdOm51bGwpfSkpLGd9ZnVuY3Rpb24ga3YoZCxnKXtyZXR1cm4gZy5wcm90b3R5cGUuY29uc3RydWN0''@;'; + put 'put ''b3I9ZyxkLnByb3RvdHlwZT1uZXcgZyxkLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1kLGR9ZnVuY3Rpb24gSTEoZCxnLGgpe3ZhciB2PUFycmF5LmlzQXJyYXkoaCk7cmV0dXJuIEdsKGcsZnVuY3Rpb24oeSxDKXsoITE9PT12fHxoLmluY2x1ZGVzKEMpKSYmKGRbQ109eSl9KSxkfWZ1bmN0aW9u''@;'; + put 'put ''IExaKGQsZyl7R2woZyxmdW5jdGlvbihoLHYpe2dbdl0mJiJvYmplY3QiPT09b08oZ1t2XSk/KGRbdl18fChkW3ZdPUFycmF5LmlzQXJyYXkoZ1t2XSk/W106IltvYmplY3QgRGF0ZV0iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGdbdl0pP2dbdl06e30pLExaKGRbdl0sZ1t2''@;'; + put 'put ''XSkpOmRbdl09Z1t2XX0pfWZ1bmN0aW9uIGdoKGQpe3JldHVybiJvYmplY3QiPT09b08oZCk/SlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShkKSk6ZH1mdW5jdGlvbiBhMyhkKXt2YXIgZz17fTtyZXR1cm4gR2woZCxmdW5jdGlvbihoLHYpe2dbdl09aH0pLGd9ZnVuY3Rpb24gQjIoZCl7ZC5N''@;'; + put 'put ''SVhJTlN8fChkLk1JWElOUz1bXSk7Zm9yKHZhciBnPWFyZ3VtZW50cy5sZW5ndGgsaD1uZXcgQXJyYXkoZz4xP2ctMTowKSx2PTE7djxnO3YrKyloW3YtMV09YXJndW1lbnRzW3ZdO3JldHVybiBVcihoLGZ1bmN0aW9uKHkpe2QuTUlYSU5TLnB1c2goeS5NSVhJTl9OQU1FKSxHbCh5LGZ1bmN0''@;'; + put 'put ''aW9uKEMsSSl7aWYodm9pZCAwIT09ZC5wcm90b3R5cGVbSV0pdGhyb3cgbmV3IEVycm9yKCJNaXhpbiBjb25mbGljdC4gUHJvcGVydHkgJyIuY29uY2F0KEksIicgYWxyZWFkeSBleGlzdCBhbmQgY2Fubm90IGJlIG92ZXJ3cml0dGVuLiIpKTt2YXIgQmUsTmUsS2U7ImZ1bmN0aW9uIj09dHlw''@;'; + put 'put ''ZW9mIEM/ZC5wcm90b3R5cGVbSV09QzpPYmplY3QuZGVmaW5lUHJvcGVydHkoZC5wcm90b3R5cGUsSSx7Z2V0OihCZT1JLE5lPUMsS2U9Il8iLmNvbmNhdChCZSksZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCAwPT09dGhpc1tLZV0mJih0aGlzW0tlXT0oZm49TmUsKEFycmF5LmlzQXJyYXkoZm4p''@;'; + put 'put ''fHx4bChmbikpJiYoZm49Z2goZm4pKSxmbikpLHRoaXNbS2VdO3ZhciBmbn0pLHNldDpmdW5jdGlvbihCZSl7dmFyIE5lPSJfIi5jb25jYXQoQmUpO3JldHVybiBmdW5jdGlvbihLZSl7dGhpc1tOZV09S2V9fShJKSxjb25maWd1cmFibGU6ITB9KX0pfSksZH1mdW5jdGlvbiBLaGUoZCxnKXty''@;'; + put 'put ''ZXR1cm4gSlNPTi5zdHJpbmdpZnkoZCk9PT1KU09OLnN0cmluZ2lmeShnKX1mdW5jdGlvbiB4bChkKXtyZXR1cm4iW29iamVjdCBPYmplY3RdIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChkKX1mdW5jdGlvbiBTZyhkLGcsaCx2KXt2LnZhbHVlPWgsdi53cml0YWJsZT0hMSE9''@;'; + put 'put ''PXYud3JpdGFibGUsdi5lbnVtZXJhYmxlPSExIT09di5lbnVtZXJhYmxlLHYuY29uZmlndXJhYmxlPSExIT09di5jb25maWd1cmFibGUsT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsZyx2KX1mdW5jdGlvbiBHbChkLGcpe2Zvcih2YXIgaCBpbiBkKWlmKCghZC5oYXNPd25Qcm9wZXJ0eXx8ZC5o''@;'; + put 'put ''YXNPd25Qcm9wZXJ0eSYmT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGQsaCkpJiYhMT09PWcoZFtoXSxoLGQpKWJyZWFrO3JldHVybiBkfWZ1bmN0aW9uIHBiZShkLGcpe3ZhciBoPWcuc3BsaXQoIi4iKSx2PWQ7cmV0dXJuIEdsKGgsZnVuY3Rpb24oeSl7aWYodm9pZCAw''@;'; + put 'put ''PT09KHY9dlt5XSkpcmV0dXJuIHY9dm9pZCAwLCExfSksdn1mdW5jdGlvbiBRcShkLGcsaCl7dmFyIHY9Zy5zcGxpdCgiLiIpLHk9ZDt2LmZvckVhY2goZnVuY3Rpb24oQyxJKXtJIT09di5sZW5ndGgtMT8obzEoeSxDKXx8KHlbQ109e30pLHk9eVtDXSk6eVtDXT1ofSl9ZnVuY3Rpb24gSnEo''@;'; + put 'put ''ZCl7cmV0dXJuIHhsKGQpP2Z1bmN0aW9uIGgodil7dmFyIHk9MDtyZXR1cm4geGwodik/R2wodixmdW5jdGlvbihDLEkpeyJfX2NoaWxkcmVuIiE9PUkmJih5Kz1oKEMpKX0pOnkrPTEseX0oZCk6MH1mdW5jdGlvbiBTUyhkKXt2YXIgZyxoPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09''@;'; + put 'put ''YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXToidmFsdWUiLHY9Il8iLmNvbmNhdChoKSx5PShkYmUoZz17X3RvdWNoZWQ6ITF9LHYsZCksZGJlKGcsImlzVG91Y2hlZCIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fdG91Y2hlZH0pLGcpO3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoeSxo''@;'; + put 'put ''LHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc1t2XX0sc2V0OmZ1bmN0aW9uKEkpe3RoaXMuX3RvdWNoZWQ9ITAsdGhpc1t2XT1JfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLHl9ZnVuY3Rpb24gbzEoZCxnKXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0''@;'; + put 'put ''eS5jYWxsKGQsZyl9RVp8fChFWj1mdW5jdGlvbihnKXt2YXIgaD0obmV3IERhdGUpLmdldFRpbWUoKSx2PU1hdGgubWF4KDAsMTYtKGgtaWJlKSkseT13aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbigpe2coaCt2KX0sdik7cmV0dXJuIGliZT1oK3YseX0pLFVxfHwoVXE9ZnVuY3Rpb24oZyl7''@;'; + put 'put ''Y2xlYXJUaW1lb3V0KGcpfSksTCgxODMyMyk7dmFyIGxkPWZ1bmN0aW9uKGcpe3ZhciBoPXt2YWx1ZTohMSx0ZXN0OmZ1bmN0aW9uKHYseSl7aC52YWx1ZT1nKHYseSl9fTtyZXR1cm4gaH0sbTQ9e2Nocm9tZTpsZChmdW5jdGlvbihkLGcpe3JldHVybi9DaHJvbWUvLnRlc3QoZCkmJi9Hb29n''@;'; + put 'put ''bGUvLnRlc3QoZyl9KSxjaHJvbWVXZWJLaXQ6bGQoZnVuY3Rpb24oZCl7cmV0dXJuL0NyaU9TLy50ZXN0KGQpfSksZWRnZTpsZChmdW5jdGlvbihkKXtyZXR1cm4vRWRnZS8udGVzdChkKX0pLGVkZ2VXZWJLaXQ6bGQoZnVuY3Rpb24oZCl7cmV0dXJuL0VkZ2lPUy8udGVzdChkKX0pLGZpcmVm''@;'; + put 'put ''b3g6bGQoZnVuY3Rpb24oZCl7cmV0dXJuL0ZpcmVmb3gvLnRlc3QoZCl9KSxmaXJlZm94V2ViS2l0OmxkKGZ1bmN0aW9uKGQpe3JldHVybi9GeGlPUy8udGVzdChkKX0pLGllOmxkKGZ1bmN0aW9uKGQpe3JldHVybi9UcmlkZW50Ly50ZXN0KGQpfSksaWU5OmxkKGZ1bmN0aW9uKCl7cmV0dXJu''@;'; + put 'put ''ISFkb2N1bWVudC5kb2N1bWVudE1vZGV9KSxtb2JpbGU6bGQoZnVuY3Rpb24oZCl7cmV0dXJuL0FuZHJvaWR8d2ViT1N8aVBob25lfGlQYWR8aVBvZHxCbGFja0JlcnJ5fElFTW9iaWxlfE9wZXJhIE1pbmkvaS50ZXN0KGQpfSksc2FmYXJpOmxkKGZ1bmN0aW9uKGQsZyl7cmV0dXJuL1NhZmFy''@;'; + put 'put ''aS8udGVzdChkKSYmL0FwcGxlIENvbXB1dGVyLy50ZXN0KGcpfSl9LGxPPXttYWM6bGQoZnVuY3Rpb24oZCl7cmV0dXJuL15NYWMvLnRlc3QoZCl9KSx3aW46bGQoZnVuY3Rpb24oZCl7cmV0dXJuL15XaW4vLnRlc3QoZCl9KSxsaW51eDpsZChmdW5jdGlvbihkKXtyZXR1cm4vXkxpbnV4Ly50''@;'; + put 'put ''ZXN0KGQpfSksaW9zOmxkKGZ1bmN0aW9uKGQpe3JldHVybi9pUGhvbmV8aVBhZHxpUG9kL2kudGVzdChkKX0pfTtmdW5jdGlvbiBnYmUoKXt2YXIgZD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06e30sZz1kLnVzZXJBZ2VudCxoPXZvaWQg''@;'; + put 'put ''MD09PWc/bmF2aWdhdG9yLnVzZXJBZ2VudDpnLHY9ZC52ZW5kb3IseT12b2lkIDA9PT12P25hdmlnYXRvci52ZW5kb3I6djtHbChtNCxmdW5jdGlvbihDKXsoMCxDLnRlc3QpKGgseSl9KX1mdW5jdGlvbiBtYmUoKXt2YXIgZD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50''@;'; + put 'put ''c1swXT9hcmd1bWVudHNbMF06e30sZz1kLnBsYXRmb3JtLGg9dm9pZCAwPT09Zz9uYXZpZ2F0b3IucGxhdGZvcm06ZztHbChsTyxmdW5jdGlvbih2KXsoMCx2LnRlc3QpKGgpfSl9ZnVuY3Rpb24gdmJlKCl7cmV0dXJuIG00LmNocm9tZS52YWx1ZX1mdW5jdGlvbiBBYmUoKXtyZXR1cm4gbTQu''@;'; + put 'put ''Y2hyb21lV2ViS2l0LnZhbHVlfWZ1bmN0aW9uIFhxKCl7cmV0dXJuIG00LmZpcmVmb3gudmFsdWV9ZnVuY3Rpb24geWJlKCl7cmV0dXJuIG00LmZpcmVmb3hXZWJLaXQudmFsdWV9ZnVuY3Rpb24gd2JlKCl7cmV0dXJuIG00LnNhZmFyaS52YWx1ZX1mdW5jdGlvbiBiYmUoKXtyZXR1cm4gbTQu''@;'; + put 'put ''ZWRnZS52YWx1ZX1mdW5jdGlvbiBLamUoKXtyZXR1cm4gbTQuZWRnZVdlYktpdC52YWx1ZX1mdW5jdGlvbiBfYmUoKXtyZXR1cm4gbTQuaWUudmFsdWV9ZnVuY3Rpb24gQ2JlKCl7cmV0dXJuIG00LmllOS52YWx1ZX1mdW5jdGlvbiAkamUoKXtyZXR1cm4gbTQuaWUudmFsdWV8fG00LmVkZ2Uu''@;'; + put 'put ''dmFsdWV9ZnVuY3Rpb24gYjgoKXtyZXR1cm4gbTQubW9iaWxlLnZhbHVlfWZ1bmN0aW9uICRoZSgpe3JldHVybiBsTy5pb3MudmFsdWV9ZnVuY3Rpb24gcWhlKCl7dmFyIGQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOm5hdmlnYXRvcixn''@;'; + put 'put ''PWQubWF4VG91Y2hQb2ludHM7cmV0dXJuIGc+MiYmbE8ubWFjLnZhbHVlfWZ1bmN0aW9uIGUzZSgpe3JldHVybiBsTy53aW4udmFsdWV9ZnVuY3Rpb24gS3EoKXtyZXR1cm4gbE8ubWFjLnZhbHVlfWZ1bmN0aW9uIHFqZSgpe3JldHVybiBsTy5saW51eC52YWx1ZX1nYmUoKSxtYmUoKTt2YXIg''@;'; + put 'put ''a2JlLFNiZSxNYmUsRWJlLHhiZSxUYmUsZVplPUwoOTI3MzUpO2Z1bmN0aW9uIFAyKGQpe2Zvcih2YXIgZz1hcmd1bWVudHMubGVuZ3RoLGg9bmV3IEFycmF5KGc+MT9nLTE6MCksdj0xO3Y8Zzt2KyspaFt2LTFdPWFyZ3VtZW50c1t2XTt2YXIgeT1TdShkLGZ1bmN0aW9uKEMsSSxqKXtyZXR1''@;'; + put 'put ''cm4gQytJLnJlcGxhY2UoL1xyP1xuXHMqL2csIiIpKyhoW2pdP2hbal06IiIpfSwiIik7cmV0dXJuIHkudHJpbSgpfWZ1bmN0aW9uIHNPKGQsZyl7cmV0dXJuIGd8fChnPWQuc2xpY2UoMCkpLE9iamVjdC5mcmVlemUoT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZCx7cmF3Ont2YWx1ZTpPYmpl''@;'; + put 'put ''Y3QuZnJlZXplKGcpfX0pKX1mdW5jdGlvbiB0M2UoZCl7cmV0dXJuKHQzZT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihnKXtyZXR1cm4gdHlwZW9mIGd9OmZ1bmN0aW9uKGcpe3JldHVybiBnJiYiZnVuY3Rpb24i''@;'; + put 'put ''PT10eXBlb2YgU3ltYm9sJiZnLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZnIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgZ30pKGQpfWZ1bmN0aW9uIGV1KGQpe3ZhciBnO3N3aXRjaCh0M2UoZCkpe2Nhc2Uic3RyaW5nIjpjYXNlIm51bWJlciI6Zz0iIi5jb25jYXQoZCk7YnJl''@;'; + put 'put ''YWs7Y2FzZSJvYmplY3QiOmc9bnVsbD09PWQ/IiI6ZC50b1N0cmluZygpO2JyZWFrO2Nhc2UidW5kZWZpbmVkIjpnPSIiO2JyZWFrO2RlZmF1bHQ6Zz1kLnRvU3RyaW5nKCl9cmV0dXJuIGd9ZnVuY3Rpb24gVG8oZCl7cmV0dXJuIHZvaWQgMCE9PWR9ZnVuY3Rpb24gYTEoZCl7cmV0dXJuIHZv''@;'; + put 'put ''aWQgMD09PWR9ZnVuY3Rpb24gZGMoZCl7cmV0dXJuIG51bGw9PT1kfHwiIj09PWR8fGExKGQpfWZ1bmN0aW9uIEliZShkKXtyZXR1cm4iW29iamVjdCBSZWdFeHBdIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChkKX1MKDgyNzU2KSxMKDE2NjYxKSxMKDc4MjQ2KTt2YXIgdTNl''@;'; + put 'put ''LGMzZSxmM2UsT1o9Imxlbmd0aCIsUlo9ZnVuY3Rpb24oZyl7cmV0dXJuIHBhcnNlSW50KGcsMTYpfSxEYmU9ZnVuY3Rpb24oZyl7cmV0dXJuIHBhcnNlSW50KGcsMTApfSwkcT1mdW5jdGlvbihnLGgsdil7cmV0dXJuIGcuc3Vic3RyKGgsdil9LEJaPWZ1bmN0aW9uKGcpe3JldHVybiBnLmNv''@;'; + put 'put ''ZGVQb2ludEF0KDApLTY1fSxuM2U9ZnVuY3Rpb24oZyl7cmV0dXJuIiIuY29uY2F0KGcpLnJlcGxhY2UoL1wtL2csIiIpfSxMYmU9ITEsT2JlPXtpbnZhbGlkOmZ1bmN0aW9uKCl7cmV0dXJuIFAyKGtiZXx8KGtiZT1zTyhbIlxuICAgIFRoZSBsaWNlbnNlIGtleSBmb3IgSGFuZHNvbnRhYmxl''@;'; + put 'put ''IGlzIGludmFsaWQuIFxuICAgIElmIHlvdSBuZWVkIGFueSBoZWxwLCBjb250YWN0IHVzIGF0IHN1cHBvcnRAaGFuZHNvbnRhYmxlLmNvbS4iXSxbIlxuICAgIFRoZSBsaWNlbnNlIGtleSBmb3IgSGFuZHNvbnRhYmxlIGlzIGludmFsaWQuXFx4MjBcbiAgICBJZiB5b3UgbmVlZCBhbnkgaGVs''@;'; + put 'put ''cCwgY29udGFjdCB1cyBhdCBzdXBwb3J0QGhhbmRzb250YWJsZS5jb20uIl0pKSl9LGV4cGlyZWQ6ZnVuY3Rpb24oZyl7dmFyIGg9Zy5rZXlWYWxpZGl0eURhdGUsdj1nLmhvdFZlcnNpb247cmV0dXJuIFAyKFNiZXx8KFNiZT1zTyhbIlxuICAgIFRoZSBsaWNlbnNlIGtleSBmb3IgSGFuZHNv''@;'; + put 'put ''bnRhYmxlIGV4cGlyZWQgb24gIiwiLCBhbmQgaXMgbm90IHZhbGlkIGZvciB0aGUgaW5zdGFsbGVkIFxuICAgIHZlcnNpb24gIiwiLiBSZW5ldyB5b3VyIGxpY2Vuc2Uga2V5IGF0IGhhbmRzb250YWJsZS5jb20gb3IgZG93bmdyYWRlIHRvIGEgdmVyc2lvbiByZWxlYXNlZCBwcmlvciBcbiAg''@;'; + put 'put ''ICB0byAiLCIuIElmIHlvdSBuZWVkIGFueSBoZWxwLCBjb250YWN0IHVzIGF0IHNhbGVzQGhhbmRzb250YWJsZS5jb20uIl0sWyJcbiAgICBUaGUgbGljZW5zZSBrZXkgZm9yIEhhbmRzb250YWJsZSBleHBpcmVkIG9uICIsIiwgYW5kIGlzIG5vdCB2YWxpZCBmb3IgdGhlIGluc3RhbGxlZFxc''@;'; + put 'put ''eDIwXG4gICAgdmVyc2lvbiAiLCIuIFJlbmV3IHlvdXIgbGljZW5zZSBrZXkgYXQgaGFuZHNvbnRhYmxlLmNvbSBvciBkb3duZ3JhZGUgdG8gYSB2ZXJzaW9uIHJlbGVhc2VkIHByaW9yXFx4MjBcbiAgICB0byAiLCIuIElmIHlvdSBuZWVkIGFueSBoZWxwLCBjb250YWN0IHVzIGF0IHNhbGVz''@;'; + put 'put ''QGhhbmRzb250YWJsZS5jb20uIl0pKSxoLHYsaCl9LG1pc3Npbmc6ZnVuY3Rpb24oKXtyZXR1cm4gUDIoTWJlfHwoTWJlPXNPKFsiXG4gICAgVGhlIGxpY2Vuc2Uga2V5IGZvciBIYW5kc29udGFibGUgaXMgbWlzc2luZy4gVXNlIHlvdXIgcHVyY2hhc2VkIGtleSB0byBhY3RpdmF0ZSB0aGUg''@;'; + put 'put ''cHJvZHVjdC4gXG4gICAgQWx0ZXJuYXRpdmVseSwgeW91IGNhbiBhY3RpdmF0ZSBIYW5kc29udGFibGUgdG8gdXNlIGZvciBub24tY29tbWVyY2lhbCBwdXJwb3NlcyBieSBcbiAgICBwYXNzaW5nIHRoZSBrZXk6ICdub24tY29tbWVyY2lhbC1hbmQtZXZhbHVhdGlvbicuIElmIHlvdSBuZWVk''@;'; + put 'put ''IGFueSBoZWxwLCBjb250YWN0IFxuICAgIHVzIGF0IHN1cHBvcnRAaGFuZHNvbnRhYmxlLmNvbS4iXSxbIlxuICAgIFRoZSBsaWNlbnNlIGtleSBmb3IgSGFuZHNvbnRhYmxlIGlzIG1pc3NpbmcuIFVzZSB5b3VyIHB1cmNoYXNlZCBrZXkgdG8gYWN0aXZhdGUgdGhlIHByb2R1Y3QuXFx4MjBc''@;'; + put 'put ''biAgICBBbHRlcm5hdGl2ZWx5LCB5b3UgY2FuIGFjdGl2YXRlIEhhbmRzb250YWJsZSB0byB1c2UgZm9yIG5vbi1jb21tZXJjaWFsIHB1cnBvc2VzIGJ5XFx4MjBcbiAgICBwYXNzaW5nIHRoZSBrZXk6ICdub24tY29tbWVyY2lhbC1hbmQtZXZhbHVhdGlvbicuIElmIHlvdSBuZWVkIGFueSBo''@;'; + put 'put ''ZWxwLCBjb250YWN0XFx4MjBcbiAgICB1cyBhdCBzdXBwb3J0QGhhbmRzb250YWJsZS5jb20uIl0pKSl9LG5vbl9jb21tZXJjaWFsOmZ1bmN0aW9uKCl7cmV0dXJuIiJ9fSxSYmU9e2ludmFsaWQ6ZnVuY3Rpb24oKXtyZXR1cm4gUDIoRWJlfHwoRWJlPXNPKFsnXG4gICAgVGhlIGxpY2Vuc2Ug''@;'; + put 'put ''a2V5IGZvciBIYW5kc29udGFibGUgaXMgaW52YWxpZC4gXG4gICAgPGEgaHJlZj0iaHR0cHM6Ly9oYW5kc29udGFibGUuY29tL2RvY3MvdHV0b3JpYWwtbGljZW5zZS1rZXkuaHRtbCIgdGFyZ2V0PSJfYmxhbmsiPlJlYWQgbW9yZTwvYT4gb24gaG93IHRvIFxuICAgIGluc3RhbGwgaXQgcHJv''@;'; + put 'put ''cGVybHkgb3IgY29udGFjdCB1cyBhdCA8YSBocmVmPSJtYWlsdG86c3VwcG9ydEBoYW5kc29udGFibGUuY29tIj5zdXBwb3J0QGhhbmRzb250YWJsZS5jb208L2E+LiddLFsnXG4gICAgVGhlIGxpY2Vuc2Uga2V5IGZvciBIYW5kc29udGFibGUgaXMgaW52YWxpZC5cXHgyMFxuICAgIDxhIGhy''@;'; + put 'put ''ZWY9Imh0dHBzOi8vaGFuZHNvbnRhYmxlLmNvbS9kb2NzL3R1dG9yaWFsLWxpY2Vuc2Uta2V5Lmh0bWwiIHRhcmdldD0iX2JsYW5rIj5SZWFkIG1vcmU8L2E+IG9uIGhvdyB0b1xceDIwXG4gICAgaW5zdGFsbCBpdCBwcm9wZXJseSBvciBjb250YWN0IHVzIGF0IDxhIGhyZWY9Im1haWx0bzpz''@;'; + put 'put ''dXBwb3J0QGhhbmRzb250YWJsZS5jb20iPnN1cHBvcnRAaGFuZHNvbnRhYmxlLmNvbTwvYT4uJ10pKSl9LGV4cGlyZWQ6ZnVuY3Rpb24oZyl7dmFyIGg9Zy5rZXlWYWxpZGl0eURhdGUsdj1nLmhvdFZlcnNpb247cmV0dXJuIFAyKHhiZXx8KHhiZT1zTyhbIlxuICAgIFRoZSBsaWNlbnNlIGtl''@;'; + put 'put ''eSBmb3IgSGFuZHNvbnRhYmxlIGV4cGlyZWQgb24gIiwiLCBhbmQgaXMgbm90IHZhbGlkIGZvciB0aGUgaW5zdGFsbGVkIFxuICAgIHZlcnNpb24gIiwnLiA8YSBocmVmPSJodHRwczovL2hhbmRzb250YWJsZS5jb20vcHJpY2luZyIgdGFyZ2V0PSJfYmxhbmsiPlJlbmV3PC9hPiB5b3VyIFxu''@;'; + put 'put ''ICAgIGxpY2Vuc2Uga2V5IG9yIGRvd25ncmFkZSB0byBhIHZlcnNpb24gcmVsZWFzZWQgcHJpb3IgdG8gJywnLiBJZiB5b3UgbmVlZCBhbnkgXG4gICAgaGVscCwgY29udGFjdCB1cyBhdCA8YSBocmVmPSJtYWlsdG86c2FsZXNAaGFuZHNvbnRhYmxlLmNvbSI+c2FsZXNAaGFuZHNvbnRhYmxl''@;'; + put 'put ''LmNvbTwvYT4uJ10sWyJcbiAgICBUaGUgbGljZW5zZSBrZXkgZm9yIEhhbmRzb250YWJsZSBleHBpcmVkIG9uICIsIiwgYW5kIGlzIG5vdCB2YWxpZCBmb3IgdGhlIGluc3RhbGxlZFxceDIwXG4gICAgdmVyc2lvbiAiLCcuIDxhIGhyZWY9Imh0dHBzOi8vaGFuZHNvbnRhYmxlLmNvbS9wcmlj''@;'; + put 'put ''aW5nIiB0YXJnZXQ9Il9ibGFuayI+UmVuZXc8L2E+IHlvdXJcXHgyMFxuICAgIGxpY2Vuc2Uga2V5IG9yIGRvd25ncmFkZSB0byBhIHZlcnNpb24gcmVsZWFzZWQgcHJpb3IgdG8gJywnLiBJZiB5b3UgbmVlZCBhbnlcXHgyMFxuICAgIGhlbHAsIGNvbnRhY3QgdXMgYXQgPGEgaHJlZj0ibWFp''@;'; + put 'put ''bHRvOnNhbGVzQGhhbmRzb250YWJsZS5jb20iPnNhbGVzQGhhbmRzb250YWJsZS5jb208L2E+LiddKSksaCx2LGgpfSxtaXNzaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIFAyKFRiZXx8KFRiZT1zTyhbJ1xuICAgIFRoZSBsaWNlbnNlIGtleSBmb3IgSGFuZHNvbnRhYmxlIGlzIG1pc3NpbmcuIFVz''@;'; + put 'put ''ZSB5b3VyIHB1cmNoYXNlZCBrZXkgdG8gYWN0aXZhdGUgdGhlIHByb2R1Y3QuIFxuICAgIEFsdGVybmF0aXZlbHksIHlvdSBjYW4gYWN0aXZhdGUgSGFuZHNvbnRhYmxlIHRvIHVzZSBmb3Igbm9uLWNvbW1lcmNpYWwgcHVycG9zZXMgYnkgXG4gICAgcGFzc2luZyB0aGUga2V5OiBcJ25vbi1j''@;'; + put 'put ''b21tZXJjaWFsLWFuZC1ldmFsdWF0aW9uXCcuIFxuICAgIDxhIGhyZWY9Imh0dHBzOi8vaGFuZHNvbnRhYmxlLmNvbS9kb2NzL3R1dG9yaWFsLWxpY2Vuc2Uta2V5Lmh0bWwiIHRhcmdldD0iX2JsYW5rIj5SZWFkIG1vcmU8L2E+IGFib3V0IGl0IGluIFxuICAgIHRoZSBkb2N1bWVudGF0aW9u''@;'; + put 'put ''IG9yIGNvbnRhY3QgdXMgYXQgPGEgaHJlZj0ibWFpbHRvOnN1cHBvcnRAaGFuZHNvbnRhYmxlLmNvbSI+c3VwcG9ydEBoYW5kc29udGFibGUuY29tPC9hPi4nXSxbJ1xuICAgIFRoZSBsaWNlbnNlIGtleSBmb3IgSGFuZHNvbnRhYmxlIGlzIG1pc3NpbmcuIFVzZSB5b3VyIHB1cmNoYXNlZCBr''@;'; + put 'put ''ZXkgdG8gYWN0aXZhdGUgdGhlIHByb2R1Y3QuXFx4MjBcbiAgICBBbHRlcm5hdGl2ZWx5LCB5b3UgY2FuIGFjdGl2YXRlIEhhbmRzb250YWJsZSB0byB1c2UgZm9yIG5vbi1jb21tZXJjaWFsIHB1cnBvc2VzIGJ5XFx4MjBcbiAgICBwYXNzaW5nIHRoZSBrZXk6IFwnbm9uLWNvbW1lcmNpYWwt''@;'; + put 'put ''YW5kLWV2YWx1YXRpb25cJy5cXHgyMFxuICAgIDxhIGhyZWY9Imh0dHBzOi8vaGFuZHNvbnRhYmxlLmNvbS9kb2NzL3R1dG9yaWFsLWxpY2Vuc2Uta2V5Lmh0bWwiIHRhcmdldD0iX2JsYW5rIj5SZWFkIG1vcmU8L2E+IGFib3V0IGl0IGluXFx4MjBcbiAgICB0aGUgZG9jdW1lbnRhdGlvbiBv''@;'; + put 'put ''ciBjb250YWN0IHVzIGF0IDxhIGhyZWY9Im1haWx0bzpzdXBwb3J0QGhhbmRzb250YWJsZS5jb20iPnN1cHBvcnRAaGFuZHNvbnRhYmxlLmNvbTwvYT4uJ10pKSl9LG5vbl9jb21tZXJjaWFsOmZ1bmN0aW9uKCl7cmV0dXJuIiJ9fTtmdW5jdGlvbiBCYmUoZCxnKXt2YXIgQyxoPSFkYyhkKSx2''@;'; + put 'put ''PSJzdHJpbmciPT10eXBlb2YgZCYmIm5vbi1jb21tZXJjaWFsLWFuZC1ldmFsdWF0aW9uIj09PWQudG9Mb3dlckNhc2UoKSx5PSIxMi4xLjIiLEk9ImludmFsaWQiLGo9ImludmFsaWQiLHVlPWZ1bmN0aW9uIHJaZShkKXt2YXIgZz1bXVtPWl0saD1nO2lmKGRbT1pdIT09QlooIloiKSlyZXR1''@;'; + put 'put ''cm4hMTtmb3IodmFyIHY9IiIseT0iQjxINFArIi5zcGxpdCgiIiksQz1CWih5LnNoaWZ0KCkpO0M7Qz1CWih5LnNoaWZ0KCl8fCJBIikpLS1DPCIiW09aXT9ofD0oRGJlKCIiLmNvbmNhdChEYmUoUloodikrKFJaKCRxKGQsTWF0aC5hYnMoQyksMikpK1tdKS5wYWRTdGFydCgyLCIwIikpKSkl''@;'; + put 'put ''OTd8fDIpPj4xOnY9JHEoZCxDLEM/MT09PXlbT1pdPzk6ODo2KTtyZXR1cm4gaD09PWd9KGQ9bjNlKGR8fCIiKSk7aWYoaHx8dnx8dWUpaWYodWUpe3ZhciBfZT1UbCgiMDgvMDcvMjAyMiIsIkREL01NL1lZWVkiKSxCZT1NYXRoLmZsb29yKF9lLnRvRGF0ZSgpLmdldFRpbWUoKS84NjRlNSks''@;'; + put 'put ''TmU9ZnVuY3Rpb24oZyl7cmV0dXJuIFJaKCRxKG4zZShnKSxSWigiMTIiKSxCWigiRiIpKSkvKFJaKCRxKG4zZShnKSxCWigiQiIpLH5+IVtdW09aXSkpfHw5KX0oZCk7aWYoQz1UbCg4NjRlNSooTmUrMSksIngiKS5mb3JtYXQoIk1NTU0gREQsIFlZWVkiKSxCZT5OZSl7dmFyIEtlPVRsKCku''@;'; + put 'put ''ZGlmZihfZSwiZGF5cyIpO0k9S2U8PTE/InZhbGlkIjoiZXhwaXJlZCIsaj1LZTw9MTU/InZhbGlkIjoiZXhwaXJlZCJ9ZWxzZSBJPSJ2YWxpZCIsaj0idmFsaWQifWVsc2Ugdj8oST0ibm9uX2NvbW1lcmNpYWwiLGo9InZhbGlkIik6KEk9ImludmFsaWQiLGo9ImludmFsaWQiKTtlbHNlIEk9''@;'; + put 'put ''Im1pc3NpbmciLGo9Im1pc3NpbmciO2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgbG9jYXRpb24mJi9eKFthLXowLTlcLV0rXC4pP1x4NjhceDYxXHg2RVx4NjRceDczXHg2Rlx4NkVceDc0XHg2MVx4NjJceDZDXHg2NVx4MkVceDYzXHg2Rlx4NkQkL2kudGVzdChsb2NhdGlvbi5ob3N0KSYmKEk9''@;'; + put 'put ''InZhbGlkIixqPSJ2YWxpZCIpLExiZXx8InZhbGlkIj09PUl8fChPYmVbSV0oe2tleVZhbGlkaXR5RGF0ZTpDLGhvdFZlcnNpb246eX0pJiZjb25zb2xlWyJub25fY29tbWVyY2lhbCI9PT1JPyJpbmZvIjoid2FybiJdKE9iZVtJXSh7a2V5VmFsaWRpdHlEYXRlOkMsaG90VmVyc2lvbjp5fSkp''@;'; + put 'put ''LExiZT0hMCksInZhbGlkIiE9PWomJmcucGFyZW50Tm9kZSYmUmJlW2pdKHtrZXlWYWxpZGl0eURhdGU6Qyxob3RWZXJzaW9uOnl9KSl7dmFyICR0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOyR0LmlkPSJob3QtZGlzcGxheS1saWNlbnNlLWluZm8iLCR0LmlubmVySFRNTD1SYmVb''@;'; + put 'put ''al0oe2tleVZhbGlkaXR5RGF0ZTpDLGhvdFZlcnNpb246eX0pLGcucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoJHQsZy5uZXh0U2libGluZyl9fWZ1bmN0aW9uIHNkKGQpe3JldHVybiBkWzBdLnRvVXBwZXJDYXNlKCkrZC5zdWJzdHIoMSl9ZnVuY3Rpb24gaVplKCl7Zm9yKHZhciBkPVtdLGc9''@;'; + put 'put ''YXJndW1lbnRzLmxlbmd0aCxoPW5ldyBBcnJheShnKSx2PTA7djxnO3YrKyloW3ZdPWFyZ3VtZW50c1t2XTtmb3IodmFyIHk9aC5sZW5ndGg7eTspe3ZhciBDPWV1KGhbeS09MV0pLnRvTG93ZXJDYXNlKCk7LTE9PT1kLmluZGV4T2YoQykmJmQucHVzaChDKX1yZXR1cm4gMT09PWQubGVuZ3Ro''@;'; + put 'put ''fWZ1bmN0aW9uIHIzZSgpe2Z1bmN0aW9uIGQoKXtyZXR1cm4gTWF0aC5mbG9vcig2NTUzNiooMStNYXRoLnJhbmRvbSgpKSkudG9TdHJpbmcoMTYpLnN1YnN0cmluZygxKX1yZXR1cm4gZCgpK2QoKStkKCkrZCgpfWZ1bmN0aW9uIGkzZShkKXtyZXR1cm4vXihbMC05XVswLTldPyUkKXwoXjEw''@;'; + put 'put ''MCUkKS8udGVzdChkKX1mdW5jdGlvbiBvM2UoZCl7dmFyIGc9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOnt9O3JldHVybiIiLmNvbmNhdChkKS5yZXBsYWNlKC8oPzpcXCk/XFsoW15bXF1dKyldL2csZnVuY3Rpb24oaCx2KXtyZXR1cm4i''@;'; + put 'put ''XFwiPT09aC5jaGFyQXQoMCk/aC5zdWJzdHIoMSxoLmxlbmd0aC0xKTp2b2lkIDA9PT1nW3ZdPyIiOmdbdl19KX1mdW5jdGlvbiBhM2UoZCl7cmV0dXJuIHFxKCIiLmNvbmNhdChkKSx7QUxMT1dFRF9UQUdTOltdfSl9ZnVuY3Rpb24gcXEoZCxnKXtyZXR1cm4gZVplLnNhbml0aXplKGQsZyl9''@;'; + put 'put ''ZnVuY3Rpb24gUGJlKGQpe3JldHVybiBmdW5jdGlvbiBzWmUoZCl7aWYoQXJyYXkuaXNBcnJheShkKSlyZXR1cm4gbDNlKGQpfShkKXx8ZnVuY3Rpb24gbFplKGQpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZudWxsIT1kW1N5bWJvbC5pdGVyYXRvcl18fG51bGwhPWRbIkBAaXRl''@;'; + put 'put ''cmF0b3IiXSlyZXR1cm4gQXJyYXkuZnJvbShkKX0oZCl8fGZ1bmN0aW9uIGFaZShkLGcpe2lmKGQpe2lmKCJzdHJpbmciPT10eXBlb2YgZClyZXR1cm4gbDNlKGQsZyk7dmFyIGg9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGQpLnNsaWNlKDgsLTEpO2lmKCJPYmplY3QiPT09aCYm''@;'; + put 'put ''ZC5jb25zdHJ1Y3RvciYmKGg9ZC5jb25zdHJ1Y3Rvci5uYW1lKSwiTWFwIj09PWh8fCJTZXQiPT09aClyZXR1cm4gQXJyYXkuZnJvbShkKTtpZigiQXJndW1lbnRzIj09PWh8fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KGgpKXJldHVybiBsM2UoZCxn''@;'; + put 'put ''KX19KGQpfHxmdW5jdGlvbiBvWmUoKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gc3ByZWFkIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9y''@;'; + put 'put ''XSgpIG1ldGhvZC4iKX0oKX1mdW5jdGlvbiBsM2UoZCxnKXsobnVsbD09Z3x8Zz5kLmxlbmd0aCkmJihnPWQubGVuZ3RoKTtmb3IodmFyIGg9MCx2PW5ldyBBcnJheShnKTtoPGc7aCsrKXZbaF09ZFtoXTtyZXR1cm4gdn1mdW5jdGlvbiBGYmUoZCl7Zm9yKHZhciBnPWFyZ3VtZW50cy5sZW5n''@;'; + put 'put ''dGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTowLGg9LTEsdj1udWxsLHk9ZDtudWxsIT09eTspe2lmKGg9PT1nKXt2PXk7YnJlYWt9eS5ob3N0JiZ5Lm5vZGVUeXBlPT09Tm9kZS5ET0NVTUVOVF9GUkFHTUVOVF9OT0RFP3k9eS5ob3N0OihoKz0xLHk9eS5wYXJlbnRO''@;'; + put 'put ''b2RlKX1yZXR1cm4gdn1mdW5jdGlvbiBIYmUoZCl7cmV0dXJuIE9iamVjdC5nZXRQcm90b3R5cGVPZihkLnBhcmVudCkmJmQuZnJhbWVFbGVtZW50fWZ1bmN0aW9uIHMzZShkKXtyZXR1cm4gSGJlKGQpJiZkLnBhcmVudH1mdW5jdGlvbiB1WmUoZCl7cmV0dXJuISFPYmplY3QuZ2V0UHJvdG90''@;'; + put 'put ''eXBlT2YoZC5wYXJlbnQpfWZ1bmN0aW9uIFN2KGQpe2Zvcih2YXIgZz1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06W10saD1hcmd1bWVudHMubGVuZ3RoPjI/YXJndW1lbnRzWzJdOnZvaWQgMCx2PU5vZGUseT12LkVMRU1FTlRfTk9ERSxD''@;'; + put 'put ''PXYuRE9DVU1FTlRfRlJBR01FTlRfTk9ERSxJPWQ7bnVsbCE9SSYmSSE9PWg7KXt2YXIgaj1JLHVlPWoubm9kZVR5cGUsX2U9ai5ub2RlTmFtZTtpZih1ZT09PXkmJihnLmluY2x1ZGVzKF9lKXx8Zy5pbmNsdWRlcyhJKSkpcmV0dXJuIEk7dmFyIEJlPUksTmU9QmUuaG9zdDtJPU5lJiZ1ZT09''@;'; + put 'put ''PUM/TmU6SS5wYXJlbnROb2RlfXJldHVybiBudWxsfWZ1bmN0aW9uIFBaKGQsZyxoKXtmb3IodmFyIHY9W10seT1kO3kmJih5PVN2KHksZyxoKSkmJighaHx8aC5jb250YWlucyh5KSk7KXYucHVzaCh5KSx5PXkuaG9zdCYmeS5ub2RlVHlwZT09PU5vZGUuRE9DVU1FTlRfRlJBR01FTlRfTk9E''@;'; + put 'put ''RT95Lmhvc3Q6eS5wYXJlbnROb2RlO3ZhciBDPXYubGVuZ3RoO3JldHVybiBDP3ZbQy0xXTpudWxsfWZ1bmN0aW9uIF93KGQsZyl7dmFyIGg9ZC5wYXJlbnROb2RlLHY9W107Zm9yKCJzdHJpbmciPT10eXBlb2YgZz92PUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGQuZGVmYXVsdFZpZXc/''@;'; + put 'put ''ZC5xdWVyeVNlbGVjdG9yQWxsKGcpOmQub3duZXJEb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKGcpLDApOnYucHVzaChnKTtudWxsIT09aDspe2lmKHYuaW5kZXhPZihoKT4tMSlyZXR1cm4hMDtoPWgucGFyZW50Tm9kZX1yZXR1cm4hMX1mdW5jdGlvbiBOYmUoZCl7dmFyIGc9MCxoPWQ7aWYo''@;'; + put 'put ''aC5wcmV2aW91c1NpYmxpbmcpZm9yKDtoPWgucHJldmlvdXNTaWJsaW5nOylnKz0xO3JldHVybiBnfWZ1bmN0aW9uIEN3KGQsZyxoKXt2YXIgdj1oLnBhcmVudEVsZW1lbnQucXVlcnlTZWxlY3RvcigiLmh0X2Nsb25lXyIuY29uY2F0KGQpKTtyZXR1cm4gdj92LmNvbnRhaW5zKGcpOm51bGx9''@;'; + put 'put ''ZnVuY3Rpb24gZWVlKGQpe3JldHVybiBkJiZkLmxlbmd0aD9kLmZpbHRlcihmdW5jdGlvbihnKXtyZXR1cm4hIWd9KTpbXX1pZihvYmUoKSl7dmFyIFZiZT1mdW5jdGlvbihnKXt2YXIgaD1nLmNyZWF0ZUVsZW1lbnQoImRpdiIpO3JldHVybiBoLmNsYXNzTGlzdC5hZGQoInRlc3QiLCJ0ZXN0''@;'; + put 'put ''MiIpLGguY2xhc3NMaXN0LmNvbnRhaW5zKCJ0ZXN0MiIpfTt1M2U9ZnVuY3Rpb24oZyxoKXtyZXR1cm4gdm9pZCAwIT09Zy5jbGFzc0xpc3QmJiJzdHJpbmciPT10eXBlb2YgaCYmIiIhPT1oJiZnLmNsYXNzTGlzdC5jb250YWlucyhoKX0sYzNlPWZ1bmN0aW9uKGcsaCl7dmFyIHY9Zy5vd25l''@;'; + put 'put ''ckRvY3VtZW50LHk9aDtpZigic3RyaW5nIj09dHlwZW9mIHkmJih5PXkuc3BsaXQoIiAiKSksKHk9ZWVlKHkpKS5sZW5ndGg+MClpZihWYmUodikpe3ZhciBDOyhDPWcuY2xhc3NMaXN0KS5hZGQuYXBwbHkoQyxQYmUoeSkpfWVsc2UgZm9yKHZhciBJPTA7eVtJXTspZy5jbGFzc0xpc3QuYWRk''@;'; + put 'put ''KHlbSV0pLEkrPTF9LGYzZT1mdW5jdGlvbihnLGgpe3ZhciB2PWcub3duZXJEb2N1bWVudCx5PWg7aWYoInN0cmluZyI9PXR5cGVvZiB5JiYoeT15LnNwbGl0KCIgIikpLCh5PWVlZSh5KSkubGVuZ3RoPjApaWYoVmJlKHYpKXt2YXIgQzsoQz1nLmNsYXNzTGlzdCkucmVtb3ZlLmFwcGx5KEMs''@;'; + put 'put ''UGJlKHkpKX1lbHNlIGZvcih2YXIgST0wO3lbSV07KWcuY2xhc3NMaXN0LnJlbW92ZSh5W0ldKSxJKz0xfX1lbHNle3ZhciBoM2U9ZnVuY3Rpb24oZyl7cmV0dXJuIG5ldyBSZWdFeHAoIihcXHN8XikiLmNvbmNhdChnLCIoXFxzfCQpIikpfTt1M2U9ZnVuY3Rpb24oZyxoKXtyZXR1cm4gdm9p''@;'; + put 'put ''ZCAwIT09Zy5jbGFzc05hbWUmJmgzZShoKS50ZXN0KGcuY2xhc3NOYW1lKX0sYzNlPWZ1bmN0aW9uKGcsaCl7dmFyIHY9Zy5jbGFzc05hbWUseT1oO2lmKCJzdHJpbmciPT10eXBlb2YgeSYmKHk9eS5zcGxpdCgiICIpKSx5PWVlZSh5KSwiIj09PXYpdj15LmpvaW4oIiAiKTtlbHNlIGZvcih2''@;'; + put 'put ''YXIgQz0wO0M8eS5sZW5ndGg7QysrKXlbQ10mJiFoM2UoeVtDXSkudGVzdCh2KSYmKHYrPSIgIi5jb25jYXQoeVtDXSkpO2cuY2xhc3NOYW1lPXZ9LGYzZT1mdW5jdGlvbihnLGgpe3ZhciB2PTAseT1nLmNsYXNzTmFtZSxDPWg7Zm9yKCJzdHJpbmciPT10eXBlb2YgQyYmKEM9Qy5zcGxpdCgi''@;'; + put 'put ''ICIpKSxDPWVlZShDKTtDW3ZdOyl5PXkucmVwbGFjZShoM2UoQ1t2XSksIiAiKS50cmltKCksdis9MTtnLmNsYXNzTmFtZSE9PXkmJihnLmNsYXNzTmFtZT15KX19ZnVuY3Rpb24gdGwoZCxnKXtyZXR1cm4gdTNlKGQsZyl9ZnVuY3Rpb24gTzAoZCxnKXtjM2UoZCxnKX1mdW5jdGlvbiBwbChk''@;'; + put 'put ''LGcpe2YzZShkLGcpfWZ1bmN0aW9uIGQzZShkKXtpZigzPT09ZC5ub2RlVHlwZSlkLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZCk7ZWxzZSBpZihbIlRBQkxFIiwiVEhFQUQiLCJUQk9EWSIsIlRGT09UIiwiVFIiXS5pbmRleE9mKGQubm9kZU5hbWUpPi0xKWZvcih2YXIgZz1kLmNoaWxkTm9k''@;'; + put 'put ''ZXMsaD1nLmxlbmd0aC0xO2g+PTA7aC0tKWQzZShnW2hdKX1mdW5jdGlvbiBEcChkKXtmb3IodmFyIGc7Zz1kLmxhc3RDaGlsZDspZC5yZW1vdmVDaGlsZChnKX12YXIgbTNlLGpiZT0vKDwoLiopPnwmKC4qKTspLztmdW5jdGlvbiBrdyhkLGcpe3ZhciBoPSEoYXJndW1lbnRzLmxlbmd0aD4y''@;'; + put 'put ''JiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0pfHxhcmd1bWVudHNbMl07amJlLnRlc3QoZyk/ZC5pbm5lckhUTUw9aD9xcShnKTpnOlN3KGQsZyl9ZnVuY3Rpb24gU3coZCxnKXt2YXIgaD1kLmZpcnN0Q2hpbGQ7aCYmMz09PWgubm9kZVR5cGUmJm51bGw9PT1oLm5leHRTaWJsaW5nP2FiZT9oLnRl''@;'; + put 'put ''eHRDb250ZW50PWc6aC5kYXRhPWc6KERwKGQpLGQuYXBwZW5kQ2hpbGQoZC5vd25lckRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGcpKSl9ZnVuY3Rpb24gdU8oZCl7Zm9yKHZhciBnPWQub3duZXJEb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsaD1kO2ghPT1nOyl7aWYobnVsbD09PWgpcmV0dXJu''@;'; + put 'put ''ITE7aWYoaC5ub2RlVHlwZT09PU5vZGUuRE9DVU1FTlRfRlJBR01FTlRfTk9ERSl7aWYoaC5ob3N0KXtpZihoLmhvc3QuaW1wbClyZXR1cm4gdU8oaC5ob3N0LmltcGwpO2lmKGguaG9zdClyZXR1cm4gdU8oaC5ob3N0KTt0aHJvdyBuZXcgRXJyb3IoIkxvc3QgaW4gV2ViIENvbXBvbmVudHMg''@;'; + put 'put ''d29ybGQiKX1yZXR1cm4hMX1pZihoLnN0eWxlJiYibm9uZSI9PT1oLnN0eWxlLmRpc3BsYXkpcmV0dXJuITE7aD1oLnBhcmVudE5vZGV9cmV0dXJuITB9ZnVuY3Rpb24ganUoZCl7dmFyIEMsSSxqLHVlLGc9ZC5vd25lckRvY3VtZW50LGg9Zy5kZWZhdWx0Vmlldyx2PWcuZG9jdW1lbnRFbGVt''@;'; + put 'put ''ZW50LHk9ZDtpZihZaGUoKSYmeS5maXJzdENoaWxkJiYiQ0FQVElPTiI9PT15LmZpcnN0Q2hpbGQubm9kZU5hbWUpcmV0dXJue3RvcDoodWU9eS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSkudG9wKyhoLnBhZ2VZT2Zmc2V0fHx2LnNjcm9sbFRvcCktKHYuY2xpZW50VG9wfHwwKSxsZWZ0OnVl''@;'; + put 'put ''LmxlZnQrKGgucGFnZVhPZmZzZXR8fHYuc2Nyb2xsTGVmdCktKHYuY2xpZW50TGVmdHx8MCl9O2ZvcihDPXkub2Zmc2V0TGVmdCxJPXkub2Zmc2V0VG9wLGo9eTsoeT15Lm9mZnNldFBhcmVudCkmJnkhPT1nLmJvZHk7KUMrPXkub2Zmc2V0TGVmdCxJKz15Lm9mZnNldFRvcCxqPXk7cmV0dXJu''@;'; + put 'put ''IGomJiJmaXhlZCI9PT1qLnN0eWxlLnBvc2l0aW9uJiYoQys9aC5wYWdlWE9mZnNldHx8di5zY3JvbGxMZWZ0LEkrPWgucGFnZVlPZmZzZXR8fHYuc2Nyb2xsVG9wKSx7bGVmdDpDLHRvcDpJfX1mdW5jdGlvbiBjTygpe3ZhciBkPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1l''@;'; + put 'put ''bnRzWzBdP2FyZ3VtZW50c1swXTp3aW5kb3csZz1kLnNjcm9sbFk7cmV0dXJuIHZvaWQgMD09PWcmJihnPWQuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcCksZ31mdW5jdGlvbiBNUygpe3ZhciBkPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2Fy''@;'; + put 'put ''Z3VtZW50c1swXTp3aW5kb3csZz1kLnNjcm9sbFg7cmV0dXJuIHZvaWQgMD09PWcmJihnPWQuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbExlZnQpLGd9ZnVuY3Rpb24gRlooZCl7dmFyIGc9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRz''@;'; + put 'put ''WzFdOndpbmRvdztyZXR1cm4gZD09PWc/Y08oZyk6ZC5zY3JvbGxUb3B9ZnVuY3Rpb24gdGVlKGQpe3ZhciBnPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp3aW5kb3c7cmV0dXJuIGQ9PT1nP01TKGcpOmQuc2Nyb2xsTGVmdH1mdW5jdGlv''@;'; + put 'put ''biBIWihkKXt2YXIgZz1kLm93bmVyRG9jdW1lbnQsaD1nP2cuZGVmYXVsdFZpZXc6dm9pZCAwO2d8fChoPShnPWQuZG9jdW1lbnQ/ZC5kb2N1bWVudDpkKS5kZWZhdWx0Vmlldyk7Zm9yKHZhciB2PVsiYXV0byIsInNjcm9sbCJdLHk9bGJlKCksQz1kLnBhcmVudE5vZGU7QyYmQy5zdHlsZSYm''@;'; + put 'put ''Zy5ib2R5IT09Qzspe3ZhciBJPUMuc3R5bGUsaj1JLm92ZXJmbG93LHVlPUkub3ZlcmZsb3dYLF9lPUkub3ZlcmZsb3dZO2lmKFtqLHVlLF9lXS5pbmNsdWRlcygic2Nyb2xsIikpcmV0dXJuIEM7aWYoeSl7dmFyIEJlPWguZ2V0Q29tcHV0ZWRTdHlsZShDKTtpZih1ZT1CZS5vdmVyZmxvd1gs''@;'; + put 'put ''X2U9QmUub3ZlcmZsb3dZLHYuaW5jbHVkZXMoaj1CZS5vdmVyZmxvdyl8fHYuaW5jbHVkZXModWUpfHx2LmluY2x1ZGVzKF9lKSlyZXR1cm4gQ31pZihDLmNsaWVudEhlaWdodDw9Qy5zY3JvbGxIZWlnaHQrMSYmKHYuaW5jbHVkZXMoX2UpfHx2LmluY2x1ZGVzKGopKXx8Qy5jbGllbnRXaWR0''@;'; + put 'put ''aDw9Qy5zY3JvbGxXaWR0aCsxJiYodi5pbmNsdWRlcyh1ZSl8fHYuaW5jbHVkZXMoaikpKXJldHVybiBDO0M9Qy5wYXJlbnROb2RlfXJldHVybiBofWZ1bmN0aW9uIGZPKGQpe2Zvcih2YXIgZz1kLm93bmVyRG9jdW1lbnQsaD1nLmRlZmF1bHRWaWV3LHY9ZC5wYXJlbnROb2RlO3YmJnYuc3R5''@;'; + put 'put ''bGUmJmcuYm9keSE9PXY7KXtpZigidmlzaWJsZSIhPT12LnN0eWxlLm92ZXJmbG93JiYiIiE9PXYuc3R5bGUub3ZlcmZsb3cpcmV0dXJuIHY7dmFyIHk9TXcodixoKSxDPVsic2Nyb2xsIiwiaGlkZGVuIiwiYXV0byJdLEk9eS5nZXRQcm9wZXJ0eVZhbHVlKCJvdmVyZmxvdyIpLGo9eS5nZXRQ''@;'; + put 'put ''cm9wZXJ0eVZhbHVlKCJvdmVyZmxvdy15IiksdWU9eS5nZXRQcm9wZXJ0eVZhbHVlKCJvdmVyZmxvdy14Iik7aWYoQy5pbmNsdWRlcyhJKXx8Qy5pbmNsdWRlcyhqKXx8Qy5pbmNsdWRlcyh1ZSkpcmV0dXJuIHY7dj12LnBhcmVudE5vZGV9cmV0dXJuIGh9ZnVuY3Rpb24gbmVlKGQsZyl7dmFy''@;'; + put 'put ''IGg9YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOndpbmRvdztpZihkKXtpZihkPT09aClyZXR1cm4id2lkdGgiPT09Zz8iIi5jb25jYXQoaC5pbm5lcldpZHRoLCJweCIpOiJoZWlnaHQiPT09Zz8iIi5jb25jYXQoaC5pbm5lckhlaWdodCwi''@;'; + put 'put ''cHgiKTp2b2lkIDA7dmFyIHY9ZC5zdHlsZVtnXTtpZigiIiE9PXYmJnZvaWQgMCE9PXYpcmV0dXJuIHY7dmFyIHk9TXcoZCxoKTtyZXR1cm4iIiE9PXlbZ10mJnZvaWQgMCE9PXlbZ10/eVtnXTp2b2lkIDB9fWZ1bmN0aW9uIGNaZShkLGcpe3ZhciBoPWcuc2VsZWN0b3JUZXh0LHY9ITE7cmV0''@;'; + put 'put ''dXJuIGcudHlwZT09PUNTU1J1bGUuU1RZTEVfUlVMRSYmaCYmKGQubXNNYXRjaGVzU2VsZWN0b3I/dj1kLm1zTWF0Y2hlc1NlbGVjdG9yKGgpOmQubWF0Y2hlcyYmKHY9ZC5tYXRjaGVzKGgpKSksdn1mdW5jdGlvbiBNdyhkKXt2YXIgZz1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFy''@;'; + put 'put ''Z3VtZW50c1sxXT9hcmd1bWVudHNbMV06d2luZG93O3JldHVybiBkLmN1cnJlbnRTdHlsZXx8Zy5nZXRDb21wdXRlZFN0eWxlKGQpfWZ1bmN0aW9uIEUyKGQpe3JldHVybiBkLm9mZnNldFdpZHRofWZ1bmN0aW9uIEQxKGQpe3JldHVybiBZaGUoKSYmZC5maXJzdENoaWxkJiYiQ0FQVElPTiI9''@;'; + put 'put ''PT1kLmZpcnN0Q2hpbGQubm9kZU5hbWU/ZC5vZmZzZXRIZWlnaHQrZC5maXJzdENoaWxkLm9mZnNldEhlaWdodDpkLm9mZnNldEhlaWdodH1mdW5jdGlvbiBNdihkKXtyZXR1cm4gZC5jbGllbnRIZWlnaHR8fGQuaW5uZXJIZWlnaHR9ZnVuY3Rpb24gTlooZCl7cmV0dXJuIGQuY2xpZW50V2lk''@;'; + put 'put ''dGh8fGQuaW5uZXJXaWR0aH1mdW5jdGlvbiBmWmUoZCxnLGgpe2QuYWRkRXZlbnRMaXN0ZW5lcihnLGgsITEpfWZ1bmN0aW9uIGhaZShkLGcsaCl7ZC5yZW1vdmVFdmVudExpc3RlbmVyKGcsaCwhMSl9ZnVuY3Rpb24gcDNlKGQpe3ZhciBnPWQub3duZXJEb2N1bWVudDtpZihkLnNlbGVjdGlv''@;'; + put 'put ''blN0YXJ0KXJldHVybiBkLnNlbGVjdGlvblN0YXJ0O2lmKGcuc2VsZWN0aW9uKXtkLmZvY3VzKCk7dmFyIGg9Zy5zZWxlY3Rpb24uY3JlYXRlUmFuZ2UoKTtpZihudWxsPT09aClyZXR1cm4gMDt2YXIgdj1kLmNyZWF0ZVRleHRSYW5nZSgpLHk9di5kdXBsaWNhdGUoKTtyZXR1cm4gdi5tb3Zl''@;'; + put 'put ''VG9Cb29rbWFyayhoLmdldEJvb2ttYXJrKCkpLHkuc2V0RW5kUG9pbnQoIkVuZFRvU3RhcnQiLHYpLHkudGV4dC5sZW5ndGh9cmV0dXJuIDB9ZnVuY3Rpb24gWmJlKGQpe3ZhciBnPWQub3duZXJEb2N1bWVudDtpZihkLnNlbGVjdGlvbkVuZClyZXR1cm4gZC5zZWxlY3Rpb25FbmQ7aWYoZy5z''@;'; + put 'put ''ZWxlY3Rpb24pe3ZhciBoPWcuc2VsZWN0aW9uLmNyZWF0ZVJhbmdlKCk7cmV0dXJuIG51bGw9PT1oPzA6ZC5jcmVhdGVUZXh0UmFuZ2UoKS50ZXh0LmluZGV4T2YoaC50ZXh0KStoLnRleHQubGVuZ3RofXJldHVybiAwfWZ1bmN0aW9uIHpiZSgpe3ZhciBkPWFyZ3VtZW50cy5sZW5ndGg+MCYm''@;'; + put 'put ''dm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp3aW5kb3csZz1kLmRvY3VtZW50LGg9IiI7cmV0dXJuIGQuZ2V0U2VsZWN0aW9uP2g9ZC5nZXRTZWxlY3Rpb24oKS50b1N0cmluZygpOmcuc2VsZWN0aW9uJiYiQ29udHJvbCIhPT1nLnNlbGVjdGlvbi50eXBlJiYoaD1nLnNlbGVj''@;'; + put 'put ''dGlvbi5jcmVhdGVSYW5nZSgpLnRleHQpLGh9ZnVuY3Rpb24gZzNlKCl7dmFyIGQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOndpbmRvdyxnPWQuZG9jdW1lbnQ7ZC5nZXRTZWxlY3Rpb24/ZC5nZXRTZWxlY3Rpb24oKS5lbXB0eT9kLmdl''@;'; + put 'put ''dFNlbGVjdGlvbigpLmVtcHR5KCk6ZC5nZXRTZWxlY3Rpb24oKS5yZW1vdmVBbGxSYW5nZXMmJmQuZ2V0U2VsZWN0aW9uKCkucmVtb3ZlQWxsUmFuZ2VzKCk6Zy5zZWxlY3Rpb24mJmcuc2VsZWN0aW9uLmVtcHR5KCl9ZnVuY3Rpb24gVlooZCxnLGgpe2lmKHZvaWQgMD09PWgmJihoPWcpLGQu''@;'; + put 'put ''c2V0U2VsZWN0aW9uUmFuZ2Upe2QuZm9jdXMoKTt0cnl7ZC5zZXRTZWxlY3Rpb25SYW5nZShnLGgpfWNhdGNoKEMpe3ZhciB2PWQucGFyZW50Tm9kZSx5PXYuc3R5bGUuZGlzcGxheTt2LnN0eWxlLmRpc3BsYXk9ImJsb2NrIixkLnNldFNlbGVjdGlvblJhbmdlKGcsaCksdi5zdHlsZS5kaXNw''@;'; + put 'put ''bGF5PXl9fX1mdW5jdGlvbiBkWmUoKXt2YXIgZD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06ZG9jdW1lbnQsZz1kLmNyZWF0ZUVsZW1lbnQoImRpdiIpO2cuc3R5bGUuaGVpZ2h0PSIyMDBweCIsZy5zdHlsZS53aWR0aD0iMTAwJSI7dmFy''@;'; + put 'put ''IGg9ZC5jcmVhdGVFbGVtZW50KCJkaXYiKTtoLnN0eWxlLmJveFNpemluZz0iY29udGVudC1ib3giLGguc3R5bGUuaGVpZ2h0PSIxNTBweCIsaC5zdHlsZS5sZWZ0PSIwcHgiLGguc3R5bGUub3ZlcmZsb3c9ImhpZGRlbiIsaC5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiLGguc3R5bGUudG9w''@;'; + put 'put ''PSIwcHgiLGguc3R5bGUud2lkdGg9IjIwMHB4IixoLnN0eWxlLnZpc2liaWxpdHk9ImhpZGRlbiIsaC5hcHBlbmRDaGlsZChnKSwoZC5ib2R5fHxkLmRvY3VtZW50RWxlbWVudCkuYXBwZW5kQ2hpbGQoaCk7dmFyIHY9Zy5vZmZzZXRXaWR0aDtoLnN0eWxlLm92ZXJmbG93PSJzY3JvbGwiO3Zh''@;'; + put 'put ''ciB5PWcub2Zmc2V0V2lkdGg7cmV0dXJuIHY9PT15JiYoeT1oLmNsaWVudFdpZHRoKSwoZC5ib2R5fHxkLmRvY3VtZW50RWxlbWVudCkucmVtb3ZlQ2hpbGQoaCksdi15fWZ1bmN0aW9uIEJjKCl7dmFyIGQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1l''@;'; + put 'put ''bnRzWzBdOmRvY3VtZW50O3JldHVybiB2b2lkIDA9PT1tM2UmJihtM2U9ZFplKGQpKSxtM2V9ZnVuY3Rpb24gR2JlKGQpe3JldHVybiBkLm9mZnNldFdpZHRoIT09ZC5jbGllbnRXaWR0aH1mdW5jdGlvbiBXYmUoZCl7cmV0dXJuIGQub2Zmc2V0SGVpZ2h0IT09ZC5jbGllbnRIZWlnaHR9ZnVu''@;'; + put 'put ''Y3Rpb24gcmVlKGQsZyxoKXtDYmUoKT8oZC5zdHlsZS50b3A9aCxkLnN0eWxlLmxlZnQ9Zyk6d2JlKCk/ZC5zdHlsZVsiLXdlYmtpdC10cmFuc2Zvcm0iXT0idHJhbnNsYXRlM2QoIi5jb25jYXQoZywiLCIpLmNvbmNhdChoLCIsMCkiKTpkLnN0eWxlLnRyYW5zZm9ybT0idHJhbnNsYXRlM2Qo''@;'; + put 'put ''Ii5jb25jYXQoZywiLCIpLmNvbmNhdChoLCIsMCkiKX1mdW5jdGlvbiBwWmUoZCl7dmFyIGc7cmV0dXJuIGQuc3R5bGUudHJhbnNmb3JtJiYiIiE9PShnPWQuc3R5bGUudHJhbnNmb3JtKT9bInRyYW5zZm9ybSIsZ106ZC5zdHlsZVsiLXdlYmtpdC10cmFuc2Zvcm0iXSYmIiIhPT0oZz1kLnN0''@;'; + put 'put ''eWxlWyItd2Via2l0LXRyYW5zZm9ybSJdKT9bIi13ZWJraXQtdHJhbnNmb3JtIixnXTotMX1mdW5jdGlvbiBqWihkKXtkLnN0eWxlLnRyYW5zZm9ybSYmIiIhPT1kLnN0eWxlLnRyYW5zZm9ybT9kLnN0eWxlLnRyYW5zZm9ybT0iIjpkLnN0eWxlWyItd2Via2l0LXRyYW5zZm9ybSJdJiYiIiE9''@;'; + put 'put ''PWQuc3R5bGVbIi13ZWJraXQtdHJhbnNmb3JtIl0mJihkLnN0eWxlWyItd2Via2l0LXRyYW5zZm9ybSJdPSIiKX1mdW5jdGlvbiBaWihkKXtyZXR1cm4gZCYmKFsiSU5QVVQiLCJTRUxFQ1QiLCJURVhUQVJFQSJdLmluZGV4T2YoZC5ub2RlTmFtZSk+LTF8fCJ0cnVlIj09PWQuY29udGVudEVk''@;'; + put 'put ''aXRhYmxlKX1mdW5jdGlvbiB2M2UoZCl7cmV0dXJuIFpaKGQpJiYhMT09PWQuaGFzQXR0cmlidXRlKCJkYXRhLWhvdC1pbnB1dCIpfWZ1bmN0aW9uIFliZShkKXt2M2UoZC5vd25lckRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpfHxkLnNlbGVjdCgpfWZ1bmN0aW9uIEEzZShkKXtyZXR1cm4hZC5w''@;'; + put 'put ''YXJlbnROb2RlfWZ1bmN0aW9uIFUyKGQpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBkfWZ1bmN0aW9uIFViZShkKXt2YXIgZz1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06MjAwLGg9MCx2PXtsYXN0Q2FsbFRocm90dGxlZDohMH0seT1u''@;'; + put 'put ''dWxsO2Z1bmN0aW9uIEMoKXtmb3IodmFyIEk9dGhpcyxqPWFyZ3VtZW50cy5sZW5ndGgsdWU9bmV3IEFycmF5KGopLF9lPTA7X2U8ajtfZSsrKXVlW19lXT1hcmd1bWVudHNbX2VdO3ZhciBCZT1EYXRlLm5vdygpLE5lPSExO3YubGFzdENhbGxUaHJvdHRsZWQ9ITAsaHx8KGg9QmUsTmU9ITAp''@;'; + put 'put ''O3ZhciBLZT1nLShCZS1oKTtyZXR1cm4gTmU/KHYubGFzdENhbGxUaHJvdHRsZWQ9ITEsZC5hcHBseSh0aGlzLHVlKSk6KHkmJmNsZWFyVGltZW91dCh5KSx5PXNldFRpbWVvdXQoZnVuY3Rpb24oKXt2Lmxhc3RDYWxsVGhyb3R0bGVkPSExLGQuYXBwbHkoSSx1ZSksaD0wLHk9dm9pZCAwfSxL''@;'; + put 'put ''ZSkpLHZ9cmV0dXJuIEN9ZnVuY3Rpb24gZ1plKGQpe3ZhciBnPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXToyMDAsaD1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06MTAsdj1VYmUoZCxn''@;'; + put 'put ''KSx5PWg7ZnVuY3Rpb24gQygpe3k9aH1mdW5jdGlvbiBJKCl7Zm9yKHZhciBqPWFyZ3VtZW50cy5sZW5ndGgsdWU9bmV3IEFycmF5KGopLF9lPTA7X2U8ajtfZSsrKXVlW19lXT1hcmd1bWVudHNbX2VdO3JldHVybiB5Pyh5LT0xLGQuYXBwbHkodGhpcyx1ZSkpOnYuYXBwbHkodGhpcyx1ZSl9''@;'; + put 'put ''cmV0dXJuIEkuY2xlYXJIaXRzPUMsSX1mdW5jdGlvbiB5M2UoZCl7dmFyIHYsZz1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06MjAwLGg9bnVsbDtmdW5jdGlvbiB5KCl7Zm9yKHZhciBDPXRoaXMsST1hcmd1bWVudHMubGVuZ3RoLGo9bmV3''@;'; + put 'put ''IEFycmF5KEkpLHVlPTA7dWU8STt1ZSsrKWpbdWVdPWFyZ3VtZW50c1t1ZV07cmV0dXJuIGgmJmNsZWFyVGltZW91dChoKSxoPXNldFRpbWVvdXQoZnVuY3Rpb24oKXt2PWQuYXBwbHkoQyxqKX0sZyksdn1yZXR1cm4geX1mdW5jdGlvbiBtWmUoKXtmb3IodmFyIGQ9YXJndW1lbnRzLmxlbmd0''@;'; + put 'put ''aCxnPW5ldyBBcnJheShkKSxoPTA7aDxkO2grKylnW2hdPWFyZ3VtZW50c1toXTt2YXIgdj1nWzBdLHk9Zy5zbGljZSgxKTtyZXR1cm4gZnVuY3Rpb24oKXtmb3IodmFyIEk9YXJndW1lbnRzLmxlbmd0aCxqPW5ldyBBcnJheShJKSx1ZT0wO3VlPEk7dWUrKylqW3VlXT1hcmd1bWVudHNbdWVd''@;'; + put 'put ''O3JldHVybiBTdSh5LGZ1bmN0aW9uKF9lLEJlKXtyZXR1cm4gQmUoX2UpfSx2LmFwcGx5KHRoaXMsaikpfX1mdW5jdGlvbiB3M2UoZCl7Zm9yKHZhciBnPWFyZ3VtZW50cy5sZW5ndGgsaD1uZXcgQXJyYXkoZz4xP2ctMTowKSx2PTE7djxnO3YrKyloW3YtMV09YXJndW1lbnRzW3ZdO3JldHVy''@;'; + put 'put ''biBmdW5jdGlvbigpe2Zvcih2YXIgQz1hcmd1bWVudHMubGVuZ3RoLEk9bmV3IEFycmF5KEMpLGo9MDtqPEM7aisrKUlbal09YXJndW1lbnRzW2pdO3JldHVybiBkLmFwcGx5KHRoaXMsaC5jb25jYXQoSSkpfX1mdW5jdGlvbiBRYmUoZCl7dmFyIGc9ZC5sZW5ndGg7cmV0dXJuIGZ1bmN0aW9u''@;'; + put 'put ''IGgodil7cmV0dXJuIGZ1bmN0aW9uKCl7Zm9yKHZhciBDPWFyZ3VtZW50cy5sZW5ndGgsST1uZXcgQXJyYXkoQyksaj0wO2o8QztqKyspSVtqXT1hcmd1bWVudHNbal07dmFyIHVlPXYuY29uY2F0KEkpO3JldHVybiB1ZS5sZW5ndGg+PWc/ZC5hcHBseSh0aGlzLHVlKTpoKHVlKX19KFtdKX1m''@;'; + put 'put ''dW5jdGlvbiB2WmUoZCl7dmFyIGc9ZC5sZW5ndGg7cmV0dXJuIGZ1bmN0aW9uIGgodil7cmV0dXJuIGZ1bmN0aW9uKCl7Zm9yKHZhciBDPWFyZ3VtZW50cy5sZW5ndGgsST1uZXcgQXJyYXkoQyksaj0wO2o8QztqKyspSVtqXT1hcmd1bWVudHNbal07dmFyIHVlPXYuY29uY2F0KEkucmV2ZXJz''@;'; + put 'put ''ZSgpKTtyZXR1cm4gdWUubGVuZ3RoPj1nP2QuYXBwbHkodGhpcyx1ZSk6aCh1ZSl9fShbXSl9ZnVuY3Rpb24gaWVlKGQsZyxoLHYseSxDLEksail7cmV0dXJuIFRvKGopP2QuY2FsbChnLGgsdix5LEMsSSxqKTpUbyhJKT9kLmNhbGwoZyxoLHYseSxDLEkpOlRvKEMpP2QuY2FsbChnLGgsdix5''@;'; + put 'put ''LEMpOlRvKHkpP2QuY2FsbChnLGgsdix5KTpUbyh2KT9kLmNhbGwoZyxoLHYpOlRvKGgpP2QuY2FsbChnLGgpOmQuY2FsbChnKX1MKDY1MTI1KTt2YXIgS2JlLFFvPXtBTFQ6MTgsQVJST1dfRE9XTjo0MCxBUlJPV19MRUZUOjM3LEFSUk9XX1JJR0hUOjM5LEFSUk9XX1VQOjM4LEFVRElPX0RP''@;'; + put 'put ''V046WHEoKT8xODI6MTc0LEFVRElPX01VVEU6WHEoKT8xODE6MTczLEFVRElPX1VQOlhxKCk/MTgzOjE3NSxCQUNLU1BBQ0U6OCxDQVBTX0xPQ0s6MjAsQ09NTUE6MTg4LENPTU1BTkRfTEVGVDo5MSxDT01NQU5EX1JJR0hUOjkzLENPTU1BTkRfRklSRUZPWDoyMjQsQ09OVFJPTDoxNyxERUxF''@;'; + put 'put ''VEU6NDYsRU5EOjM1LEVOVEVSOjEzLEVTQ0FQRToyNyxGMToxMTIsRjI6MTEzLEYzOjExNCxGNDoxMTUsRjU6MTE2LEY2OjExNyxGNzoxMTgsRjg6MTE5LEY5OjEyMCxGMTA6MTIxLEYxMToxMjIsRjEyOjEyMyxGMTM6MTI0LEYxNDoxMjUsRjE1OjEyNixGMTY6MTI3LEYxNzoxMjgsRjE4OjEy''@;'; + put 'put ''OSxGMTk6MTMwLEhPTUU6MzYsSU5TRVJUOjQ1LE1FRElBX05FWFQ6MTc2LE1FRElBX1BMQVlfUEFVU0U6MTc5LE1FRElBX1BSRVY6MTc3LE1FRElBX1NUT1A6MTc4LE5VTEw6MCxOVU1fTE9DSzoxNDQsUEFHRV9ET1dOOjM0LFBBR0VfVVA6MzMsUEFVU0U6MTksUEVSSU9EOjE5MCxTQ1JPTExf''@;'; + put 'put ''TE9DSzoxNDUsU0hJRlQ6MTYsU1BBQ0U6MzIsVEFCOjksQTo2NSxDOjY3LEQ6NjgsRjo3MCxMOjc2LE86NzksUDo4MCxTOjgzLFY6ODYsWDo4OCxZOjg5LFo6OTB9LEFaZT1bUW8uQUxULFFvLkFSUk9XX0RPV04sUW8uQVJST1dfTEVGVCxRby5BUlJPV19SSUdIVCxRby5BUlJPV19VUCxRby5B''@;'; + put 'put ''VURJT19ET1dOLFFvLkFVRElPX01VVEUsUW8uQVVESU9fVVAsUW8uQkFDS1NQQUNFLFFvLkNBUFNfTE9DSyxRby5ERUxFVEUsUW8uRU5ELFFvLkVOVEVSLFFvLkVTQ0FQRSxRby5GMSxRby5GMixRby5GMyxRby5GNCxRby5GNSxRby5GNixRby5GNyxRby5GOCxRby5GOSxRby5GMTAsUW8uRjEx''@;'; + put 'put ''LFFvLkYxMixRby5GMTMsUW8uRjE0LFFvLkYxNSxRby5GMTYsUW8uRjE3LFFvLkYxOCxRby5GMTksUW8uSE9NRSxRby5JTlNFUlQsUW8uTUVESUFfTkVYVCxRby5NRURJQV9QTEFZX1BBVVNFLFFvLk1FRElBX1BSRVYsUW8uTUVESUFfU1RPUCxRby5OVUxMLFFvLk5VTV9MT0NLLFFvLlBBR0Vf''@;'; + put 'put ''RE9XTixRby5QQUdFX1VQLFFvLlBBVVNFLFFvLlNDUk9MTF9MT0NLLFFvLlNISUZULFFvLlRBQl07ZnVuY3Rpb24gSmJlKGQpe3JldHVybiAzMj09PWR8fGQ+PTQ4JiZkPD01N3x8ZD49OTYmJmQ8PTExMXx8ZD49MTg2JiZkPD0xOTJ8fGQ+PTIxOSYmZDw9MjIyfHxkPj0yMjZ8fGQ+PTY1JiZk''@;'; + put 'put ''PD05MH1mdW5jdGlvbiBiM2UoZCl7cmV0dXJuIEFaZS5pbmNsdWRlcyhkKX1mdW5jdGlvbiB5WmUoZCl7dmFyIGc9W107cmV0dXJuIEtxKCk/Zy5wdXNoKFFvLkNPTU1BTkRfTEVGVCxRby5DT01NQU5EX1JJR0hULFFvLkNPTU1BTkRfRklSRUZPWCk6Zy5wdXNoKFFvLkNPTlRST0wpLGcuaW5j''@;'; + put 'put ''bHVkZXMoZCl9ZnVuY3Rpb24gWGJlKGQpe3JldHVybltRby5DT05UUk9MLFFvLkNPTU1BTkRfTEVGVCxRby5DT01NQU5EX1JJR0hULFFvLkNPTU1BTkRfRklSRUZPWF0uaW5jbHVkZXMoZCl9ZnVuY3Rpb24gaE8oZCxnKXt2YXIgaD1nLnNwbGl0KCJ8Iiksdj0hMTtyZXR1cm4gVXIoaCxmdW5j''@;'; + put 'put ''dGlvbih5KXtpZihkPT09UW9beV0pcmV0dXJuIHY9ITAsITF9KSx2fWZ1bmN0aW9uIF84KGQpe2QuaXNJbW1lZGlhdGVQcm9wYWdhdGlvbkVuYWJsZWQ9ITEsZC5jYW5jZWxCdWJibGU9ITB9ZnVuY3Rpb24gRVMoZCl7cmV0dXJuITE9PT1kLmlzSW1tZWRpYXRlUHJvcGFnYXRpb25FbmFibGVk''@;'; + put 'put ''fWZ1bmN0aW9uIEV3KGQpe3JldHVybiAyPT09ZC5idXR0b259ZnVuY3Rpb24gb2VlKGQpe3JldHVybiAwPT09ZC5idXR0b259ZnVuY3Rpb24gbDEoKXt2YXIgZDtUbyhjb25zb2xlKSYmKGQ9Y29uc29sZSkud2Fybi5hcHBseShkLGFyZ3VtZW50cyl9ZnVuY3Rpb24gXzNlKCl7dmFyIGQ7VG8o''@;'; + put 'put ''Y29uc29sZSkmJihkPWNvbnNvbGUpLmVycm9yLmFwcGx5KGQsYXJndW1lbnRzKX1mdW5jdGlvbiAkYmUoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYm''@;'; + put 'put ''KHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX12YXIgZE89WyJhZnRlckNlbGxNZXRhUmVzZXQiLCJhZnRlckNoYW5nZSIsImFmdGVyQ29udGV4dE1lbnVEZWZhdWx0T3B0aW9ucyIsImJlZm9yZUNvbnRleHRNZW51U2V0SXRlbXMiLCJhZnRlckRyb3Bk''@;'; + put 'put ''b3duTWVudURlZmF1bHRPcHRpb25zIiwiYmVmb3JlRHJvcGRvd25NZW51U2V0SXRlbXMiLCJhZnRlckNvbnRleHRNZW51SGlkZSIsImJlZm9yZUNvbnRleHRNZW51U2hvdyIsImFmdGVyQ29udGV4dE1lbnVTaG93IiwiYWZ0ZXJDb3B5TGltaXQiLCJiZWZvcmVDcmVhdGVDb2wiLCJhZnRlckNy''@;'; + put 'put ''ZWF0ZUNvbCIsImJlZm9yZUNyZWF0ZVJvdyIsImFmdGVyQ3JlYXRlUm93IiwiYWZ0ZXJEZXNlbGVjdCIsImFmdGVyRGVzdHJveSIsImFmdGVyRG9jdW1lbnRLZXlEb3duIiwiYWZ0ZXJEcmF3U2VsZWN0aW9uIiwiYmVmb3JlUmVtb3ZlQ2VsbENsYXNzTmFtZXMiLCJhZnRlckdldENlbGxNZXRh''@;'; + put 'put ''IiwiYWZ0ZXJHZXRDb2xIZWFkZXIiLCJhZnRlckdldFJvd0hlYWRlciIsImFmdGVySW5pdCIsImFmdGVyTG9hZERhdGEiLCJhZnRlclVwZGF0ZURhdGEiLCJhZnRlck1vbWVudHVtU2Nyb2xsIiwiYWZ0ZXJPbkNlbGxDb3JuZXJNb3VzZURvd24iLCJhZnRlck9uQ2VsbENvcm5lckRibENsaWNr''@;'; + put 'put ''IiwiYWZ0ZXJPbkNlbGxNb3VzZURvd24iLCJhZnRlck9uQ2VsbE1vdXNlVXAiLCJhZnRlck9uQ2VsbENvbnRleHRNZW51IiwiYWZ0ZXJPbkNlbGxNb3VzZU92ZXIiLCJhZnRlck9uQ2VsbE1vdXNlT3V0IiwiYWZ0ZXJSZW1vdmVDb2wiLCJhZnRlclJlbW92ZVJvdyIsImJlZm9yZVJlbmRlcmVy''@;'; + put 'put ''IiwiYWZ0ZXJSZW5kZXJlciIsImFmdGVyU2Nyb2xsSG9yaXpvbnRhbGx5IiwiYWZ0ZXJTY3JvbGxWZXJ0aWNhbGx5IiwiYWZ0ZXJTZWxlY3Rpb24iLCJhZnRlclNlbGVjdGlvbkJ5UHJvcCIsImFmdGVyU2VsZWN0aW9uRW5kIiwiYWZ0ZXJTZWxlY3Rpb25FbmRCeVByb3AiLCJhZnRlclNldENl''@;'; + put 'put ''bGxNZXRhIiwiYWZ0ZXJSZW1vdmVDZWxsTWV0YSIsImFmdGVyU2V0RGF0YUF0Q2VsbCIsImFmdGVyU2V0RGF0YUF0Um93UHJvcCIsImFmdGVyU2V0U291cmNlRGF0YUF0Q2VsbCIsImFmdGVyVXBkYXRlU2V0dGluZ3MiLCJhZnRlclZhbGlkYXRlIiwiYmVmb3JlTGFuZ3VhZ2VDaGFuZ2UiLCJh''@;'; + put 'put ''ZnRlckxhbmd1YWdlQ2hhbmdlIiwiYmVmb3JlQXV0b2ZpbGwiLCJhZnRlckF1dG9maWxsIiwiYmVmb3JlQ2VsbEFsaWdubWVudCIsImJlZm9yZUNoYW5nZSIsImJlZm9yZUNoYW5nZVJlbmRlciIsImJlZm9yZURyYXdCb3JkZXJzIiwiYmVmb3JlR2V0Q2VsbE1ldGEiLCJiZWZvcmVSZW1vdmVD''@;'; + put 'put ''ZWxsTWV0YSIsImJlZm9yZUluaXQiLCJiZWZvcmVJbml0V2Fsa29udGFibGUiLCJiZWZvcmVMb2FkRGF0YSIsImJlZm9yZVVwZGF0ZURhdGEiLCJiZWZvcmVLZXlEb3duIiwiYmVmb3JlT25DZWxsTW91c2VEb3duIiwiYmVmb3JlT25DZWxsTW91c2VVcCIsImJlZm9yZU9uQ2VsbENvbnRleHRN''@;'; + put 'put ''ZW51IiwiYmVmb3JlT25DZWxsTW91c2VPdmVyIiwiYmVmb3JlT25DZWxsTW91c2VPdXQiLCJiZWZvcmVSZW1vdmVDb2wiLCJiZWZvcmVSZW1vdmVSb3ciLCJiZWZvcmVWaWV3UmVuZGVyIiwiYWZ0ZXJWaWV3UmVuZGVyIiwiYmVmb3JlUmVuZGVyIiwiYWZ0ZXJSZW5kZXIiLCJiZWZvcmVTZXRD''@;'; + put 'put ''ZWxsTWV0YSIsImJlZm9yZVNldFJhbmdlU3RhcnRPbmx5IiwiYmVmb3JlU2V0UmFuZ2VTdGFydCIsImJlZm9yZVNldFJhbmdlRW5kIiwiYmVmb3JlVG91Y2hTY3JvbGwiLCJiZWZvcmVWYWxpZGF0ZSIsImJlZm9yZVZhbHVlUmVuZGVyIiwiY29uc3RydWN0IiwiaW5pdCIsIm1vZGlmeUNvbEhl''@;'; + put 'put ''YWRlciIsIm1vZGlmeUNvbFdpZHRoIiwibW9kaWZ5Um93SGVhZGVyIiwibW9kaWZ5Um93SGVpZ2h0IiwibW9kaWZ5RGF0YSIsIm1vZGlmeVNvdXJjZURhdGEiLCJtb2RpZnlSb3dEYXRhIiwibW9kaWZ5R2V0Q2VsbENvb3JkcyIsImJlZm9yZUhpZ2hsaWdodGluZ1Jvd0hlYWRlciIsImJlZm9y''@;'; + put 'put ''ZUhpZ2hsaWdodGluZ0NvbHVtbkhlYWRlciIsInBlcnNpc3RlbnRTdGF0ZUxvYWQiLCJwZXJzaXN0ZW50U3RhdGVSZXNldCIsInBlcnNpc3RlbnRTdGF0ZVNhdmUiLCJiZWZvcmVDb2x1bW5Tb3J0IiwiYWZ0ZXJDb2x1bW5Tb3J0IiwibW9kaWZ5QXV0b2ZpbGxSYW5nZSIsIm1vZGlmeUNvcHlh''@;'; + put 'put ''YmxlUmFuZ2UiLCJiZWZvcmVDdXQiLCJhZnRlckN1dCIsImJlZm9yZUNvcHkiLCJhZnRlckNvcHkiLCJiZWZvcmVQYXN0ZSIsImFmdGVyUGFzdGUiLCJiZWZvcmVDb2x1bW5GcmVlemUiLCJhZnRlckNvbHVtbkZyZWV6ZSIsImJlZm9yZUNvbHVtbk1vdmUiLCJhZnRlckNvbHVtbk1vdmUiLCJi''@;'; + put 'put ''ZWZvcmVDb2x1bW5VbmZyZWV6ZSIsImFmdGVyQ29sdW1uVW5mcmVlemUiLCJiZWZvcmVSb3dNb3ZlIiwiYWZ0ZXJSb3dNb3ZlIiwiYmVmb3JlQ29sdW1uUmVzaXplIiwiYWZ0ZXJDb2x1bW5SZXNpemUiLCJiZWZvcmVSb3dSZXNpemUiLCJhZnRlclJvd1Jlc2l6ZSIsImFmdGVyR2V0Q29sdW1u''@;'; + put 'put ''SGVhZGVyUmVuZGVyZXJzIiwiYWZ0ZXJHZXRSb3dIZWFkZXJSZW5kZXJlcnMiLCJiZWZvcmVTdHJldGNoaW5nQ29sdW1uV2lkdGgiLCJiZWZvcmVGaWx0ZXIiLCJhZnRlckZpbHRlciIsImFmdGVyRm9ybXVsYXNWYWx1ZXNVcGRhdGUiLCJhZnRlck5hbWVkRXhwcmVzc2lvbkFkZGVkIiwiYWZ0''@;'; + put 'put ''ZXJOYW1lZEV4cHJlc3Npb25SZW1vdmVkIiwiYWZ0ZXJTaGVldEFkZGVkIiwiYWZ0ZXJTaGVldFJlbmFtZWQiLCJhZnRlclNoZWV0UmVtb3ZlZCIsIm1vZGlmeUNvbHVtbkhlYWRlckhlaWdodCIsImJlZm9yZVVuZG8iLCJiZWZvcmVVbmRvU3RhY2tDaGFuZ2UiLCJhZnRlclVuZG8iLCJhZnRl''@;'; + put 'put ''clVuZG9TdGFja0NoYW5nZSIsImJlZm9yZVJlZG8iLCJiZWZvcmVSZWRvU3RhY2tDaGFuZ2UiLCJhZnRlclJlZG8iLCJhZnRlclJlZG9TdGFja0NoYW5nZSIsIm1vZGlmeVJvd0hlYWRlcldpZHRoIiwiYmVmb3JlQXV0b2ZpbGxJbnNpZGVQb3B1bGF0ZSIsIm1vZGlmeVRyYW5zZm9ybVN0YXJ0''@;'; + put 'put ''IiwibW9kaWZ5VHJhbnNmb3JtRW5kIiwiYWZ0ZXJNb2RpZnlUcmFuc2Zvcm1TdGFydCIsImFmdGVyTW9kaWZ5VHJhbnNmb3JtRW5kIiwiYWZ0ZXJWaWV3cG9ydFJvd0NhbGN1bGF0b3JPdmVycmlkZSIsImFmdGVyVmlld3BvcnRDb2x1bW5DYWxjdWxhdG9yT3ZlcnJpZGUiLCJhZnRlclBsdWdp''@;'; + put 'put ''bnNJbml0aWFsaXplZCIsImJlZm9yZUhpZGVSb3dzIiwiYWZ0ZXJIaWRlUm93cyIsImJlZm9yZVVuaGlkZVJvd3MiLCJhZnRlclVuaGlkZVJvd3MiLCJiZWZvcmVIaWRlQ29sdW1ucyIsImFmdGVySGlkZUNvbHVtbnMiLCJiZWZvcmVVbmhpZGVDb2x1bW5zIiwiYWZ0ZXJVbmhpZGVDb2x1bW5z''@;'; + put 'put ''IiwiYmVmb3JlVHJpbVJvdyIsImFmdGVyVHJpbVJvdyIsImJlZm9yZVVudHJpbVJvdyIsImFmdGVyVW50cmltUm93IiwiYmVmb3JlRHJvcGRvd25NZW51U2hvdyIsImFmdGVyRHJvcGRvd25NZW51U2hvdyIsImFmdGVyRHJvcGRvd25NZW51SGlkZSIsImJlZm9yZUFkZENoaWxkIiwiYWZ0ZXJB''@;'; + put 'put ''ZGRDaGlsZCIsImJlZm9yZURldGFjaENoaWxkIiwiYWZ0ZXJEZXRhY2hDaGlsZCIsImFmdGVyQmVnaW5FZGl0aW5nIiwiYmVmb3JlTWVyZ2VDZWxscyIsImFmdGVyTWVyZ2VDZWxscyIsImJlZm9yZVVubWVyZ2VDZWxscyIsImFmdGVyVW5tZXJnZUNlbGxzIiwiYWZ0ZXJMaXN0ZW4iLCJhZnRl''@;'; + put 'put ''clVubGlzdGVuIiwiYWZ0ZXJSZWZyZXNoRGltZW5zaW9ucyIsImJlZm9yZVJlZnJlc2hEaW1lbnNpb25zIiwiYmVmb3JlQ29sdW1uQ29sbGFwc2UiLCJhZnRlckNvbHVtbkNvbGxhcHNlIiwiYmVmb3JlQ29sdW1uRXhwYW5kIiwiYWZ0ZXJDb2x1bW5FeHBhbmQiLCJtb2RpZnlBdXRvQ29sdW1u''@;'; + put 'put ''U2l6ZVNlZWQiXSxDWmU9UDIoS2JlfHwoS2JlPWZ1bmN0aW9uIF9aZShkLGcpe3JldHVybiBnfHwoZz1kLnNsaWNlKDApKSxPYmplY3QuZnJlZXplKE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGQse3Jhdzp7dmFsdWU6T2JqZWN0LmZyZWV6ZShnKX19KSl9KFsnVGhlIHBsdWdpbiBob29rICJb''@;'; + put 'put ''aG9va05hbWVdIiB3YXMgcmVtb3ZlZCBpbiBIYW5kc29udGFibGUgW3JlbW92ZWRJblZlcnNpb25dLiBcbiAgUGxlYXNlIGNvbnN1bHQgcmVsZWFzZSBub3RlcyBodHRwczovL2dpdGh1Yi5jb20vaGFuZHNvbnRhYmxlL2hhbmRzb250YWJsZS9yZWxlYXNlcy90YWcvW3JlbW92ZWRJblZlcnNp''@;'; + put 'put ''b25dIHRvIFxuICBsZWFybiBhYm91dCB0aGUgbWlncmF0aW9uIHBhdGguJ10sWydUaGUgcGx1Z2luIGhvb2sgIltob29rTmFtZV0iIHdhcyByZW1vdmVkIGluIEhhbmRzb250YWJsZSBbcmVtb3ZlZEluVmVyc2lvbl0uXFx4MjBcbiAgUGxlYXNlIGNvbnN1bHQgcmVsZWFzZSBub3RlcyBodHRw''@;'; + put 'put ''czovL2dpdGh1Yi5jb20vaGFuZHNvbnRhYmxlL2hhbmRzb250YWJsZS9yZWxlYXNlcy90YWcvW3JlbW92ZWRJblZlcnNpb25dIHRvXFx4MjBcbiAgbGVhcm4gYWJvdXQgdGhlIG1pZ3JhdGlvbiBwYXRoLiddKSkpLEMzZT1uZXcgTWFwKFtbIm1vZGlmeVJvdyIsIjguMC4wIl0sWyJtb2RpZnlD''@;'; + put 'put ''b2wiLCI4LjAuMCJdLFsidW5tb2RpZnlSb3ciLCI4LjAuMCJdLFsidW5tb2RpZnlDb2wiLCI4LjAuMCJdLFsic2tpcExlbmd0aENhY2hlIiwiOC4wLjAiXSxbImhpZGRlbkNvbHVtbiIsIjguMC4wIl0sWyJoaWRkZW5Sb3ciLCI4LjAuMCJdXSksazNlPW5ldyBNYXAoW1siYmVmb3JlQXV0b2Zp''@;'; + put 'put ''bGxJbnNpZGVQb3B1bGF0ZSIsJ1RoZSBwbHVnaW4gaG9vayAiYmVmb3JlQXV0b2ZpbGxJbnNpZGVQb3B1bGF0ZSIgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHJlbGVhc2UuJ11dKSxxYmU9ZnVuY3Rpb24oKXtmdW5jdGlvbiBkKCl7KGZ1bmN0''@;'; + put 'put ''aW9uIHdaZShkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSkodGhpcyxkKSx0aGlzLmdsb2JhbEJ1Y2tldD10aGlzLmNyZWF0ZUVtcHR5QnVja2V0KCl9cmV0dXJuIGZ1bmN0aW9uIGJaZShk''@;'; + put 'put ''LGcsaCl7ZyYmJGJlKGQucHJvdG90eXBlLGcpLGgmJiRiZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShkLFt7a2V5OiJjcmVhdGVFbXB0eUJ1Y2tldCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD1PYmplY3QuY3JlYXRlKG51bGwpO3Jl''@;'; + put 'put ''dHVybiBVcihkTyxmdW5jdGlvbih2KXtyZXR1cm4gaFt2XT1bXX0pLGh9fSx7a2V5OiJnZXRCdWNrZXQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOm51bGw7cmV0dXJuIGg/KGgucGx1Z2luSG9v''@;'; + put 'put ''a0J1Y2tldHx8KGgucGx1Z2luSG9va0J1Y2tldD10aGlzLmNyZWF0ZUVtcHR5QnVja2V0KCkpLGgucGx1Z2luSG9va0J1Y2tldCk6dGhpcy5nbG9iYWxCdWNrZXR9fSx7a2V5OiJhZGQiLHZhbHVlOmZ1bmN0aW9uKGgsdil7dmFyIHk9dGhpcyxDPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAw''@;'; + put 'put ''IT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXTpudWxsO2lmKEFycmF5LmlzQXJyYXkodikpVXIodixmdW5jdGlvbih1ZSl7cmV0dXJuIHkuYWRkKGgsdWUsQyl9KTtlbHNle0MzZS5oYXMoaCkmJmwxKG8zZShDWmUse2hvb2tOYW1lOmgscmVtb3ZlZEluVmVyc2lvbjpDM2UuZ2V0KGgpfSkp''@;'; + put 'put ''LGszZS5oYXMoaCkmJmwxKGszZS5nZXQoaCkpO3ZhciBJPXRoaXMuZ2V0QnVja2V0KEMpO2lmKHZvaWQgMD09PUlbaF0mJih0aGlzLnJlZ2lzdGVyKGgpLElbaF09W10pLHYuc2tpcD0hMSwtMT09PUlbaF0uaW5kZXhPZih2KSl7dmFyIGo9ITE7di5pbml0aWFsSG9vayYmVXIoSVtoXSxmdW5j''@;'; + put 'put ''dGlvbih1ZSxfZSl7aWYodWUuaW5pdGlhbEhvb2spcmV0dXJuIElbaF1bX2VdPXYsaj0hMCwhMX0pLGp8fElbaF0ucHVzaCh2KX19cmV0dXJuIHRoaXN9fSx7a2V5OiJvbmNlIix2YWx1ZTpmdW5jdGlvbihoLHYpe3ZhciB5PXRoaXMsQz1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFy''@;'; + put 'put ''Z3VtZW50c1syXT9hcmd1bWVudHNbMl06bnVsbDtBcnJheS5pc0FycmF5KHYpP1VyKHYsZnVuY3Rpb24oSSl7cmV0dXJuIHkub25jZShoLEksQyl9KToodi5ydW5PbmNlPSEwLHRoaXMuYWRkKGgsdixDKSl9fSx7a2V5OiJyZW1vdmUiLHZhbHVlOmZ1bmN0aW9uKGgsdil7dmFyIHk9YXJndW1l''@;'; + put 'put ''bnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOm51bGwsQz10aGlzLmdldEJ1Y2tldCh5KTtyZXR1cm4gdm9pZCAwIT09Q1toXSYmQ1toXS5pbmRleE9mKHYpPj0wJiYodi5za2lwPSEwLCEwKX19LHtrZXk6ImhhcyIsdmFsdWU6ZnVuY3Rpb24oaCl7dmFy''@;'; + put 'put ''IHY9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOm51bGwseT10aGlzLmdldEJ1Y2tldCh2KTtyZXR1cm4hKHZvaWQgMD09PXlbaF18fCF5W2hdLmxlbmd0aCl9fSx7a2V5OiJydW4iLHZhbHVlOmZ1bmN0aW9uKGgsdix5LEMsSSxqLHVlLF9l''@;'; + put 'put ''KXt2YXIgQmU9dGhpcy5nbG9iYWxCdWNrZXRbdl0sTmU9QmU/QmUubGVuZ3RoOjAsS2U9MDtpZihOZSlmb3IoO0tlPE5lOylpZihCZVtLZV0mJiFCZVtLZV0uc2tpcCl7dmFyIGR0PWllZShCZVtLZV0saCx5LEMsSSxqLHVlLF9lKTt2b2lkIDAhPT1kdCYmKHk9ZHQpLEJlW0tlXSYmQmVbS2Vd''@;'; + put 'put ''LnJ1bk9uY2UmJnRoaXMucmVtb3ZlKHYsQmVbS2VdKSxLZSs9MX1lbHNlIEtlKz0xO3ZhciBPdD10aGlzLmdldEJ1Y2tldChoKVt2XSwkdD1PdD9PdC5sZW5ndGg6MCxmbj0wO2lmKCR0KWZvcig7Zm48JHQ7KWlmKE90W2ZuXSYmIU90W2ZuXS5za2lwKXt2YXIgTG49aWVlKE90W2ZuXSxoLHks''@;'; + put 'put ''QyxJLGosdWUsX2UpO3ZvaWQgMCE9PUxuJiYoeT1MbiksT3RbZm5dJiZPdFtmbl0ucnVuT25jZSYmdGhpcy5yZW1vdmUodixPdFtmbl0saCksZm4rPTF9ZWxzZSBmbis9MTtyZXR1cm4geX19LHtrZXk6ImRlc3Ryb3kiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9YXJndW1lbnRzLmxlbmd0aD4w''@;'; + put 'put ''JiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOm51bGw7R2wodGhpcy5nZXRCdWNrZXQoaCksZnVuY3Rpb24odix5LEMpe3JldHVybiBDW3ldLmxlbmd0aD0wfSl9fSx7a2V5OiJyZWdpc3RlciIsdmFsdWU6ZnVuY3Rpb24oaCl7dGhpcy5pc1JlZ2lzdGVyZWQoaCl8fGRPLnB1''@;'; + put 'put ''c2goaCl9fSx7a2V5OiJkZXJlZ2lzdGVyIix2YWx1ZTpmdW5jdGlvbihoKXt0aGlzLmlzUmVnaXN0ZXJlZChoKSYmZE8uc3BsaWNlKGRPLmluZGV4T2YoaCksMSl9fSx7a2V5OiJpc0RlcHJlY2F0ZWQiLHZhbHVlOmZ1bmN0aW9uKGgpe3JldHVybiBrM2UuaGFzKGgpfHxDM2UuaGFzKGgpfX0s''@;'; + put 'put ''e2tleToiaXNSZWdpc3RlcmVkIix2YWx1ZTpmdW5jdGlvbihoKXtyZXR1cm4gZE8uaW5kZXhPZihoKT49MH19LHtrZXk6ImdldFJlZ2lzdGVyZWQiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIGRPfX1dLFt7a2V5OiJnZXRTaW5nbGV0b24iLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0''@;'; + put 'put ''aW9uIFNaZSgpe3JldHVybiBrWmV9KCl9fV0pLGR9KCksa1plPW5ldyBxYmU7Y29uc3Qgem89cWJlO2Z1bmN0aW9uIGVfZShkKXtyZXR1cm4gZnVuY3Rpb24gVFplKGQpe2lmKEFycmF5LmlzQXJyYXkoZCkpcmV0dXJuIFMzZShkKX0oZCl8fGZ1bmN0aW9uIHhaZShkKXtpZigidW5kZWZpbmVk''@;'; + put 'put ''IiE9dHlwZW9mIFN5bWJvbCYmbnVsbCE9ZFtTeW1ib2wuaXRlcmF0b3JdfHxudWxsIT1kWyJAQGl0ZXJhdG9yIl0pcmV0dXJuIEFycmF5LmZyb20oZCl9KGQpfHxmdW5jdGlvbiBFWmUoZCxnKXtpZihkKXtpZigic3RyaW5nIj09dHlwZW9mIGQpcmV0dXJuIFMzZShkLGcpO3ZhciBoPU9iamVj''@;'; + put 'put ''dC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChkKS5zbGljZSg4LC0xKTtpZigiT2JqZWN0Ij09PWgmJmQuY29uc3RydWN0b3ImJihoPWQuY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1ofHwiU2V0Ij09PWgpcmV0dXJuIEFycmF5LmZyb20oZCk7aWYoIkFyZ3VtZW50cyI9PT1ofHwvXig/OlVp''@;'; + put 'put ''fEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChoKSlyZXR1cm4gUzNlKGQsZyl9fShkKXx8ZnVuY3Rpb24gTVplKCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIHNwcmVhZCBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBi''@;'; + put 'put ''ZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9ZnVuY3Rpb24gUzNlKGQsZyl7KG51bGw9PWd8fGc+ZC5sZW5ndGgpJiYoZz1kLmxlbmd0aCk7Zm9yKHZhciBoPTAsdj1uZXcgQXJyYXkoZyk7aDxnO2grKyl2''@;'; + put 'put ''W2hdPWRbaF07cmV0dXJuIHZ9dmFyIE0zZT1uZXcgTWFwO2Z1bmN0aW9uIExwKCl7dmFyIGQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOiJjb21tb24iO00zZS5oYXMoZCl8fE0zZS5zZXQoZCxuZXcgTWFwKTt2YXIgZz1NM2UuZ2V0KGQp''@;'; + put 'put ''O2Z1bmN0aW9uIGgoaix1ZSl7Zy5zZXQoaix1ZSl9ZnVuY3Rpb24gdihqKXtyZXR1cm4gZy5nZXQoail9ZnVuY3Rpb24geShqKXtyZXR1cm4gZy5oYXMoail9ZnVuY3Rpb24gQygpe3JldHVybiBlX2UoZy5rZXlzKCkpfWZ1bmN0aW9uIEkoKXtyZXR1cm4gZV9lKGcudmFsdWVzKCkpfXJldHVy''@;'; + put 'put ''bntyZWdpc3RlcjpoLGdldEl0ZW06dixoYXNJdGVtOnksZ2V0TmFtZXM6QyxnZXRWYWx1ZXM6SX19dmFyIEUzZT1uZXcgV2Vha01hcCx6Wj1McCgiZWRpdG9ycyIpLElaZT16Wi5yZWdpc3Rlcix0X2U9elouZ2V0SXRlbSxuX2U9elouaGFzSXRlbSxEWmU9elouZ2V0TmFtZXM7ZnVuY3Rpb24g''@;'; + put 'put ''TFplKGQpe3ZhciBnPXt9LGg9ZDt0aGlzLmdldENvbnN0cnVjdG9yPWZ1bmN0aW9uKCl7cmV0dXJuIGR9LHRoaXMuZ2V0SW5zdGFuY2U9ZnVuY3Rpb24odil7cmV0dXJuIHYuZ3VpZCBpbiBnfHwoZ1t2Lmd1aWRdPW5ldyBoKHYpKSxnW3YuZ3VpZF19LHpvLmdldFNpbmdsZXRvbigpLmFkZCgi''@;'; + put 'put ''YWZ0ZXJEZXN0cm95IixmdW5jdGlvbigpe2dbdGhpcy5ndWlkXT1udWxsfSl9ZnVuY3Rpb24gcl9lKGQsZyl7dmFyIGg7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGQpRTNlLmdldChkKXx8dWQobnVsbCxkKSxoPUUzZS5nZXQoZCk7ZWxzZXtpZigic3RyaW5nIiE9dHlwZW9mIGQpdGhyb3cgRXJy''@;'; + put 'put ''b3IoJ09ubHkgc3RyaW5ncyBhbmQgZnVuY3Rpb25zIGNhbiBiZSBwYXNzZWQgYXMgImVkaXRvciIgcGFyYW1ldGVyJyk7aD10X2UoZCl9aWYoIWgpdGhyb3cgRXJyb3IoJ05vIGVkaXRvciByZWdpc3RlcmVkIHVuZGVyIG5hbWUgIicuY29uY2F0KGQsJyInKSk7cmV0dXJuIGguZ2V0SW5zdGFu''@;'; + put 'put ''Y2UoZyl9ZnVuY3Rpb24gaV9lKGQpe2lmKCFuX2UoZCkpdGhyb3cgRXJyb3IoJ05vIHJlZ2lzdGVyZWQgZWRpdG9yIGZvdW5kIHVuZGVyICInLmNvbmNhdChkLCciIG5hbWUnKSk7cmV0dXJuIHRfZShkKS5nZXRDb25zdHJ1Y3RvcigpfWZ1bmN0aW9uIHVkKGQsZyl7ZCYmInN0cmluZyIhPXR5''@;'; + put 'put ''cGVvZiBkJiYoZD0oZz1kKS5FRElUT1JfVFlQRSk7dmFyIGg9bmV3IExaZShnKTsic3RyaW5nIj09dHlwZW9mIGQmJklaZShkLGgpLEUzZS5zZXQoZyxoKX1mdW5jdGlvbiBPWmUoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNs''@;'; + put 'put ''YXNzIGFzIGEgZnVuY3Rpb24iKX1mdW5jdGlvbiBvX2UoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZp''@;'; + put 'put ''bmVQcm9wZXJ0eShkLHYua2V5LHYpfX12YXIgYWVlPTAsQlplPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZCgpe3ZhciBnPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTpudWxsO09aZSh0aGlzLGQpLHRoaXMuY29udGV4dD1nfHx0aGlzLHRoaXMu''@;'; + put 'put ''Y29udGV4dC5ldmVudExpc3RlbmVyc3x8KHRoaXMuY29udGV4dC5ldmVudExpc3RlbmVycz1bXSl9cmV0dXJuIGZ1bmN0aW9uIFJaZShkLGcsaCl7ZyYmb19lKGQucHJvdG90eXBlLGcpLGgmJm9fZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZToh''@;'; + put 'put ''MX0pfShkLFt7a2V5OiJhZGRFdmVudExpc3RlbmVyIix2YWx1ZTpmdW5jdGlvbihoLHYseSl7dmFyIEM9dGhpcyxJPWFyZ3VtZW50cy5sZW5ndGg+MyYmdm9pZCAwIT09YXJndW1lbnRzWzNdJiZhcmd1bWVudHNbM107ZnVuY3Rpb24gaih1ZSl7eS5jYWxsKHRoaXMsUFplKHVlKSl9cmV0dXJu''@;'; + put 'put ''ImJvb2xlYW4iIT10eXBlb2YgSSYmIXViZSgpJiYoST0hMSksdGhpcy5jb250ZXh0LmV2ZW50TGlzdGVuZXJzLnB1c2goe2VsZW1lbnQ6aCxldmVudDp2LGNhbGxiYWNrOnksY2FsbGJhY2tQcm94eTpqLG9wdGlvbnM6SSxldmVudE1hbmFnZXI6dGhpc30pLGguYWRkRXZlbnRMaXN0ZW5lcih2''@;'; + put 'put ''LGosSSksYWVlKz0xLGZ1bmN0aW9uKCl7Qy5yZW1vdmVFdmVudExpc3RlbmVyKGgsdix5KX19fSx7a2V5OiJyZW1vdmVFdmVudExpc3RlbmVyIix2YWx1ZTpmdW5jdGlvbihoLHYseSl7Zm9yKHZhciBqLEM9YXJndW1lbnRzLmxlbmd0aD4zJiZ2b2lkIDAhPT1hcmd1bWVudHNbM10mJmFyZ3Vt''@;'; + put 'put ''ZW50c1szXSxJPXRoaXMuY29udGV4dC5ldmVudExpc3RlbmVycy5sZW5ndGg7STspaWYoKGo9dGhpcy5jb250ZXh0LmV2ZW50TGlzdGVuZXJzW0ktPTFdKS5ldmVudD09PXYmJmouZWxlbWVudD09PWgpe2lmKHkmJnkhPT1qLmNhbGxiYWNrfHxDJiZqLmV2ZW50TWFuYWdlciE9PXRoaXMpY29u''@;'; + put 'put ''dGludWU7dGhpcy5jb250ZXh0LmV2ZW50TGlzdGVuZXJzLnNwbGljZShJLDEpLGouZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKGouZXZlbnQsai5jYWxsYmFja1Byb3h5LGoub3B0aW9ucyksYWVlLT0xfX19LHtrZXk6ImNsZWFyRXZlbnRzIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBoPWFy''@;'; + put 'put ''Z3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdJiZhcmd1bWVudHNbMF07aWYodGhpcy5jb250ZXh0KWZvcih2YXIgdj10aGlzLmNvbnRleHQuZXZlbnRMaXN0ZW5lcnMubGVuZ3RoO3Y7KXt2YXIgeT10aGlzLmNvbnRleHQuZXZlbnRMaXN0ZW5lcnNbdi09MV07aCYmeS5l''@;'; + put 'put ''dmVudE1hbmFnZXIhPT10aGlzfHwodGhpcy5jb250ZXh0LmV2ZW50TGlzdGVuZXJzLnNwbGljZSh2LDEpLHkuZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKHkuZXZlbnQseS5jYWxsYmFja1Byb3h5LHkub3B0aW9ucyksYWVlLT0xKX19fSx7a2V5OiJjbGVhciIsdmFsdWU6ZnVuY3Rpb24o''@;'; + put 'put ''KXt0aGlzLmNsZWFyRXZlbnRzKCl9fSx7a2V5OiJkZXN0cm95Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuY2xlYXJFdmVudHMoKSx0aGlzLmNvbnRleHQ9bnVsbH19LHtrZXk6ImRlc3Ryb3lXaXRoT3duRXZlbnRzT25seSIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmNsZWFyRXZlbnRzKCEwKSx0''@;'; + put 'put ''aGlzLmNvbnRleHQ9bnVsbH19LHtrZXk6ImZpcmVFdmVudCIsdmFsdWU6ZnVuY3Rpb24oaCx2KXt2YXIgeT1oLmRvY3VtZW50LEM9aDt5fHwoQz0oeT1oLm93bmVyRG9jdW1lbnQ/aC5vd25lckRvY3VtZW50OmgpLmRlZmF1bHRWaWV3KTt2YXIgaixJPXtidWJibGVzOiEwLGNhbmNlbGFibGU6''@;'; + put 'put ''Im1vdXNlbW92ZSIhPT12LHZpZXc6QyxkZXRhaWw6MCxzY3JlZW5YOjAsc2NyZWVuWTowLGNsaWVudFg6MSxjbGllbnRZOjEsY3RybEtleTohMSxhbHRLZXk6ITEsc2hpZnRLZXk6ITEsbWV0YUtleTohMSxidXR0b246MCxyZWxhdGVkVGFyZ2V0OnZvaWQgMH07eS5jcmVhdGVFdmVudD8oaj15''@;'; + put 'put ''LmNyZWF0ZUV2ZW50KCJNb3VzZUV2ZW50cyIpKS5pbml0TW91c2VFdmVudCh2LEkuYnViYmxlcyxJLmNhbmNlbGFibGUsSS52aWV3LEkuZGV0YWlsLEkuc2NyZWVuWCxJLnNjcmVlblksSS5jbGllbnRYLEkuY2xpZW50WSxJLmN0cmxLZXksSS5hbHRLZXksSS5zaGlmdEtleSxJLm1ldGFLZXks''@;'; + put 'put ''SS5idXR0b24sSS5yZWxhdGVkVGFyZ2V0fHx5LmJvZHkucGFyZW50Tm9kZSk6aj15LmNyZWF0ZUV2ZW50T2JqZWN0KCksaC5kaXNwYXRjaEV2ZW50P2guZGlzcGF0Y2hFdmVudChqKTpoLmZpcmVFdmVudCgib24iLmNvbmNhdCh2KSxqKX19XSksZH0oKTtmdW5jdGlvbiBQWmUoZCl7dmFyIGc9''@;'; + put 'put ''ZC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb247cmV0dXJuIGQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uPWZ1bmN0aW9uKCl7Zy5hcHBseSh0aGlzKSxfOCh0aGlzKX0sZH1jb25zdCBMMT1CWmU7ZnVuY3Rpb24gYV9lKGQsZyl7KG51bGw9PWd8fGc+ZC5sZW5ndGgpJiYoZz1kLmxlbmd0aCk7''@;'; + put 'put ''Zm9yKHZhciBoPTAsdj1uZXcgQXJyYXkoZyk7aDxnO2grKyl2W2hdPWRbaF07cmV0dXJuIHZ9ZnVuY3Rpb24gbF9lKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVl''@;'; + put 'put ''ImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19dmFyIGxlZT0iZWRpdG9yTWFuYWdlci5uYXZpZ2F0aW9uIixHWj0iZWRpdG9yTWFuYWdlci5oYW5kbGluZ0VkaXRvciIseDNlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZChnLGgsdil7dmFyIHk9''@;'; + put 'put ''dGhpczsoZnVuY3Rpb24gelplKGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KSh0aGlzLGQpLHRoaXMuaW5zdGFuY2U9Zyx0aGlzLnRhYmxlTWV0YT1oLHRoaXMuc2VsZWN0aW9uPXYsdGhp''@;'; + put 'put ''cy5ldmVudE1hbmFnZXI9bmV3IEwxKGcpLHRoaXMuZGVzdHJveWVkPSExLHRoaXMubG9jaz0hMSx0aGlzLmFjdGl2ZUVkaXRvcj12b2lkIDAsdGhpcy5jZWxsUHJvcGVydGllcz12b2lkIDAsdGhpcy5pbnN0YW5jZS5nZXRTaG9ydGN1dE1hbmFnZXIoKS5hZGRDb250ZXh0KCJlZGl0b3IiKSx0''@;'; + put 'put ''aGlzLnJlZ2lzdGVyU2hvcnRjdXRzKCksdGhpcy5pbnN0YW5jZS5hZGRIb29rKCJhZnRlckRvY3VtZW50S2V5RG93biIsZnVuY3Rpb24oSSl7cmV0dXJuIHkub25BZnRlckRvY3VtZW50S2V5RG93bihJKX0pLHRoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIodGhpcy5pbnN0YW5j''@;'; + put 'put ''ZS5yb290RG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LCJjb21wb3NpdGlvbnN0YXJ0IixmdW5jdGlvbihJKXsheS5kZXN0cm95ZWQmJnkuYWN0aXZlRWRpdG9yJiYheS5hY3RpdmVFZGl0b3IuaXNPcGVuZWQoKSYmeS5pbnN0YW5jZS5pc0xpc3RlbmluZygpJiZ5Lm9wZW5FZGl0b3IoIiIsSSl9''@;'; + put 'put ''KSx0aGlzLmluc3RhbmNlLnZpZXcuX3d0LnVwZGF0ZSgib25DZWxsRGJsQ2xpY2siLGZ1bmN0aW9uKEksaix1ZSl7cmV0dXJuIHkub25DZWxsRGJsQ2xpY2soSSxqLHVlKX0pfXJldHVybiBmdW5jdGlvbiBHWmUoZCxnLGgpe2cmJmxfZShkLnByb3RvdHlwZSxnKSxoJiZsX2UoZCxoKSxPYmpl''@;'; + put 'put ''Y3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oZCxbe2tleToicmVnaXN0ZXJTaG9ydGN1dHMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9dGhpcyx2PXRoaXMuaW5zdGFuY2UuZ2V0U2hvcnRjdXRNYW5hZ2VyKCkseT12LmdldENvbnRleHQoImdyaWQiKSxD''@;'; + put 'put ''PXYuZ2V0Q29udGV4dCgiZWRpdG9yIiksST17Z3JvdXA6R1p9O0MuYWRkU2hvcnRjdXRzKFt7a2V5czpbWyJFbnRlciJdLFsiRW50ZXIiLCJTaGlmdCJdLFsiRW50ZXIiLCJDb250cm9sL01ldGEiXSxbIkVudGVyIiwiQ29udHJvbC9NZXRhIiwiU2hpZnQiXV0sY2FsbGJhY2s6ZnVuY3Rpb24o''@;'; + put 'put ''dWUsX2Upe2guY2xvc2VFZGl0b3JBbmRTYXZlQ2hhbmdlcyh2LmlzQ3RybFByZXNzZWQoKSksaC5tb3ZlU2VsZWN0aW9uQWZ0ZXJFbnRlcihfZS5pbmNsdWRlcygic2hpZnQiKSl9fSx7a2V5czpbWyJFc2NhcGUiXSxbIkVzY2FwZSIsIkNvbnRyb2wvTWV0YSJdXSxjYWxsYmFjazpmdW5jdGlv''@;'; + put 'put ''bigpe2guY2xvc2VFZGl0b3JBbmRSZXN0b3JlT3JpZ2luYWxWYWx1ZSh2LmlzQ3RybFByZXNzZWQoKSksaC5hY3RpdmVFZGl0b3IuZm9jdXMoKX19XSxJKSx5LmFkZFNob3J0Y3V0cyhbe2tleXM6W1siRjIiXV0sY2FsbGJhY2s6ZnVuY3Rpb24odWUpe2guYWN0aXZlRWRpdG9yJiZoLmFjdGl2''@;'; + put 'put ''ZUVkaXRvci5lbmFibGVGdWxsRWRpdE1vZGUoKSxoLm9wZW5FZGl0b3IobnVsbCx1ZSl9fSx7a2V5czpbWyJCYWNrc3BhY2UiXSxbIkRlbGV0ZSJdXSxjYWxsYmFjazpmdW5jdGlvbigpe2guaW5zdGFuY2UuZW1wdHlTZWxlY3RlZENlbGxzKCksaC5wcmVwYXJlRWRpdG9yKCl9fSx7a2V5czpb''@;'; + put 'put ''WyJFbnRlciJdLFsiRW50ZXIiLCJTaGlmdCJdXSxjYWxsYmFjazpmdW5jdGlvbih1ZSxfZSl7aC5pbnN0YW5jZS5nZXRTZXR0aW5ncygpLmVudGVyQmVnaW5zRWRpdGluZz9oLmNlbGxQcm9wZXJ0aWVzLnJlYWRPbmx5P2gubW92ZVNlbGVjdGlvbkFmdGVyRW50ZXIoKTpoLmFjdGl2ZUVkaXRv''@;'; + put 'put ''ciYmKGguYWN0aXZlRWRpdG9yLmVuYWJsZUZ1bGxFZGl0TW9kZSgpLGgub3BlbkVkaXRvcihudWxsLHVlKSk6aC5tb3ZlU2VsZWN0aW9uQWZ0ZXJFbnRlcihfZS5pbmNsdWRlcygic2hpZnQiKSksXzgodWUpfX1dLEkpfX0se2tleToibG9ja0VkaXRvciIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlz''@;'; + put 'put ''LmxvY2s9ITB9fSx7a2V5OiJ1bmxvY2tFZGl0b3IiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5sb2NrPSExfX0se2tleToiZGVzdHJveUVkaXRvciIsdmFsdWU6ZnVuY3Rpb24oaCl7dGhpcy5sb2NrfHx0aGlzLmNsb3NlRWRpdG9yKGgpfX0se2tleToiZ2V0QWN0aXZlRWRpdG9yIix2YWx1ZTpm''@;'; + put 'put ''dW5jdGlvbigpe3JldHVybiB0aGlzLmFjdGl2ZUVkaXRvcn19LHtrZXk6InByZXBhcmVFZGl0b3IiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9dGhpcztpZighdGhpcy5sb2NrKXtpZih0aGlzLmFjdGl2ZUVkaXRvciYmdGhpcy5hY3RpdmVFZGl0b3IuaXNXYWl0aW5nKCkpcmV0dXJuIHZvaWQg''@;'; + put 'put ''dGhpcy5jbG9zZUVkaXRvcighMSwhMSxmdW5jdGlvbigkdCl7JHQmJmgucHJlcGFyZUVkaXRvcigpfSk7dmFyIHY9dGhpcy5pbnN0YW5jZS5zZWxlY3Rpb24uc2VsZWN0ZWRSYW5nZS5jdXJyZW50KCkuaGlnaGxpZ2h0LHk9di5yb3csQz12LmNvbCxJPXRoaXMuaW5zdGFuY2UucnVuSG9va3Mo''@;'; + put 'put ''Im1vZGlmeUdldENlbGxDb29yZHMiLHksQyksaj15LHVlPUM7aWYoQXJyYXkuaXNBcnJheShJKSl7dmFyIF9lPWZ1bmN0aW9uIEhaZShkLGcpe3JldHVybiBmdW5jdGlvbiBaWmUoZCl7aWYoQXJyYXkuaXNBcnJheShkKSlyZXR1cm4gZH0oZCl8fGZ1bmN0aW9uIGpaZShkLGcpe3ZhciBoPW51''@;'; + put 'put ''bGw9PWQ/bnVsbDoidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmZFtTeW1ib2wuaXRlcmF0b3JdfHxkWyJAQGl0ZXJhdG9yIl07aWYobnVsbCE9aCl7dmFyIEksaix2PVtdLHk9ITAsQz0hMTt0cnl7Zm9yKGg9aC5jYWxsKGQpOyEoeT0oST1oLm5leHQoKSkuZG9uZSkmJih2LnB1c2goSS52''@;'; + put 'put ''YWx1ZSksIWd8fHYubGVuZ3RoIT09Zyk7eT0hMCk7fWNhdGNoKHVlKXtDPSEwLGo9dWV9ZmluYWxseXt0cnl7IXkmJm51bGwhPWgucmV0dXJuJiZoLnJldHVybigpfWZpbmFsbHl7aWYoQyl0aHJvdyBqfX1yZXR1cm4gdn19KGQsZyl8fGZ1bmN0aW9uIFZaZShkLGcpe2lmKGQpe2lmKCJzdHJp''@;'; + put 'put ''bmciPT10eXBlb2YgZClyZXR1cm4gYV9lKGQsZyk7dmFyIGg9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGQpLnNsaWNlKDgsLTEpO2lmKCJPYmplY3QiPT09aCYmZC5jb25zdHJ1Y3RvciYmKGg9ZC5jb25zdHJ1Y3Rvci5uYW1lKSwiTWFwIj09PWh8fCJTZXQiPT09aClyZXR1cm4g''@;'; + put 'put ''QXJyYXkuZnJvbShkKTtpZigiQXJndW1lbnRzIj09PWh8fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KGgpKXJldHVybiBhX2UoZCxnKX19KGQsZyl8fGZ1bmN0aW9uIE5aZSgpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBk''@;'; + put 'put ''ZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9KEksMik7aj1fZVswXSx1ZT1fZVsxXX10aGlzLmNlbGxQcm9wZXJ0aWVz''@;'; + put 'put ''PXRoaXMuaW5zdGFuY2UuZ2V0Q2VsbE1ldGEoaix1ZSk7dmFyIEJlPXRoaXMuaW5zdGFuY2Uucm9vdERvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7aWYoQmUmJkJlLmJsdXIoKSx0aGlzLmNlbGxQcm9wZXJ0aWVzLnJlYWRPbmx5KXJldHVybiB2b2lkIHRoaXMuY2xlYXJBY3RpdmVFZGl0b3IoKTt2''@;'; + put 'put ''YXIgTmU9dGhpcy5pbnN0YW5jZS5nZXRDZWxsRWRpdG9yKHRoaXMuY2VsbFByb3BlcnRpZXMpLEtlPXRoaXMuaW5zdGFuY2UuZ2V0Q2VsbCh5LEMsITApO2lmKE5lJiZLZSl7dmFyIGR0PXRoaXMuaW5zdGFuY2UuY29sVG9Qcm9wKHVlKSxPdD10aGlzLmluc3RhbmNlLmdldFNvdXJjZURhdGFB''@;'; + put 'put ''dENlbGwodGhpcy5pbnN0YW5jZS50b1BoeXNpY2FsUm93KGopLHVlKTt0aGlzLmFjdGl2ZUVkaXRvcj1yX2UoTmUsdGhpcy5pbnN0YW5jZSksdGhpcy5hY3RpdmVFZGl0b3IucHJlcGFyZSh5LEMsZHQsS2UsT3QsdGhpcy5jZWxsUHJvcGVydGllcyl9ZWxzZSB0aGlzLmNsZWFyQWN0aXZlRWRp''@;'; + put 'put ''dG9yKCl9fX0se2tleToiaXNFZGl0b3JPcGVuZWQiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYWN0aXZlRWRpdG9yJiZ0aGlzLmFjdGl2ZUVkaXRvci5pc09wZW5lZCgpfX0se2tleToib3BlbkVkaXRvciIsdmFsdWU6ZnVuY3Rpb24oaCx2KXshdGhpcy5hY3RpdmVFZGl0b3J8fHRo''@;'; + put 'put ''aXMuYWN0aXZlRWRpdG9yLmJlZ2luRWRpdGluZyhoLHYpfX0se2tleToiY2xvc2VFZGl0b3IiLHZhbHVlOmZ1bmN0aW9uKGgsdix5KXt0aGlzLmFjdGl2ZUVkaXRvcj90aGlzLmFjdGl2ZUVkaXRvci5maW5pc2hFZGl0aW5nKGgsdix5KTp5JiZ5KCExKX19LHtrZXk6ImNsb3NlRWRpdG9yQW5k''@;'; + put 'put ''U2F2ZUNoYW5nZXMiLHZhbHVlOmZ1bmN0aW9uKGgpe3RoaXMuY2xvc2VFZGl0b3IoITEsaCl9fSx7a2V5OiJjbG9zZUVkaXRvckFuZFJlc3RvcmVPcmlnaW5hbFZhbHVlIix2YWx1ZTpmdW5jdGlvbihoKXt0aGlzLmNsb3NlRWRpdG9yKCEwLGgpfX0se2tleToiY2xlYXJBY3RpdmVFZGl0b3Ii''@;'; + put 'put ''LHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5hY3RpdmVFZGl0b3I9dm9pZCAwfX0se2tleToibW92ZVNlbGVjdGlvbkFmdGVyRW50ZXIiLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB2PSJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzLnRhYmxlTWV0YS5lbnRlck1vdmVzP3RoaXMudGFibGVNZXRhLmVudGVy''@;'; + put 'put ''TW92ZXMoZXZlbnQpOnRoaXMudGFibGVNZXRhLmVudGVyTW92ZXM7aD90aGlzLnNlbGVjdGlvbi50cmFuc2Zvcm1TdGFydCgtdi5yb3csLXYuY29sKTp0aGlzLnNlbGVjdGlvbi50cmFuc2Zvcm1TdGFydCh2LnJvdyx2LmNvbCwhMCl9fSx7a2V5OiJvbkFmdGVyRG9jdW1lbnRLZXlEb3duIix2''@;'; + put 'put ''YWx1ZTpmdW5jdGlvbihoKXt2YXIgdj10aGlzO2lmKHRoaXMuaW5zdGFuY2UuaXNMaXN0ZW5pbmcoKSl7dmFyIHk9aC5rZXlDb2RlO2lmKDIyOSE9PXkmJnRoaXMuc2VsZWN0aW9uLmlzU2VsZWN0ZWQoKSl7dmFyIEM9KGguY3RybEtleXx8aC5tZXRhS2V5KSYmIWguYWx0S2V5OyF0aGlzLmFj''@;'; + put 'put ''dGl2ZUVkaXRvcnx8dGhpcy5hY3RpdmVFZGl0b3IuaXNXYWl0aW5nKCl8fGIzZSh5KXx8WGJlKHkpfHxDfHx0aGlzLmlzRWRpdG9yT3BlbmVkKCl8fCh0aGlzLmluc3RhbmNlLmdldFNob3J0Y3V0TWFuYWdlcigpLmdldENvbnRleHQoImVkaXRvciIpLmFkZFNob3J0Y3V0cyhbe2tleXM6W1si''@;'; + put 'put ''QXJyb3dVcCJdXSxjYWxsYmFjazpmdW5jdGlvbigpe3YuaW5zdGFuY2Uuc2VsZWN0aW9uLnRyYW5zZm9ybVN0YXJ0KC0xLDApfX0se2tleXM6W1siQXJyb3dEb3duIl1dLGNhbGxiYWNrOmZ1bmN0aW9uKCl7di5pbnN0YW5jZS5zZWxlY3Rpb24udHJhbnNmb3JtU3RhcnQoMSwwKX19LHtrZXlz''@;'; + put 'put ''OltbIkFycm93TGVmdCJdXSxjYWxsYmFjazpmdW5jdGlvbigpe3YuaW5zdGFuY2Uuc2VsZWN0aW9uLnRyYW5zZm9ybVN0YXJ0KDAsLTEqdi5pbnN0YW5jZS5nZXREaXJlY3Rpb25GYWN0b3IoKSl9fSx7a2V5czpbWyJBcnJvd1JpZ2h0Il1dLGNhbGxiYWNrOmZ1bmN0aW9uKCl7di5pbnN0YW5j''@;'; + put 'put ''ZS5zZWxlY3Rpb24udHJhbnNmb3JtU3RhcnQoMCx2Lmluc3RhbmNlLmdldERpcmVjdGlvbkZhY3RvcigpKX19XSx7cnVuT25seUlmOmZ1bmN0aW9uKCl7cmV0dXJuIFRvKHYuaW5zdGFuY2UuZ2V0U2VsZWN0ZWQoKSl9LGdyb3VwOmxlZX0pLHRoaXMub3BlbkVkaXRvcigiIixoKSl9fX19LHtr''@;'; + put 'put ''ZXk6Im9uQ2VsbERibENsaWNrIix2YWx1ZTpmdW5jdGlvbihoLHYseSl7IlREIj09PXkubm9kZU5hbWUmJih0aGlzLmFjdGl2ZUVkaXRvciYmdGhpcy5hY3RpdmVFZGl0b3IuZW5hYmxlRnVsbEVkaXRNb2RlKCksdGhpcy5vcGVuRWRpdG9yKG51bGwsaCkpfX0se2tleToiZGVzdHJveSIsdmFs''@;'; + put 'put ''dWU6ZnVuY3Rpb24oKXt0aGlzLmRlc3Ryb3llZD0hMCx0aGlzLmV2ZW50TWFuYWdlci5kZXN0cm95KCl9fV0pLGR9KCksc19lPW5ldyBXZWFrTWFwO3gzZS5nZXRJbnN0YW5jZT1mdW5jdGlvbihkLGcsaCl7dmFyIHY9c19lLmdldChkKTtyZXR1cm4gdnx8KHY9bmV3IHgzZShkLGcsaCksc19l''@;'; + put 'put ''LnNldChkLHYpKSx2fTtjb25zdCBXWmU9eDNlO2Z1bmN0aW9uIFQzZShkKXtyZXR1cm4gZnVuY3Rpb24gSlplKGQpe2lmKEFycmF5LmlzQXJyYXkoZCkpcmV0dXJuIEkzZShkKX0oZCl8fGZ1bmN0aW9uIFFaZShkKXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmbnVsbCE9ZFtTeW1i''@;'; + put 'put ''b2wuaXRlcmF0b3JdfHxudWxsIT1kWyJAQGl0ZXJhdG9yIl0pcmV0dXJuIEFycmF5LmZyb20oZCl9KGQpfHxmdW5jdGlvbiBVWmUoZCxnKXtpZihkKXtpZigic3RyaW5nIj09dHlwZW9mIGQpcmV0dXJuIEkzZShkLGcpO3ZhciBoPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChkKS5z''@;'; + put 'put ''bGljZSg4LC0xKTtpZigiT2JqZWN0Ij09PWgmJmQuY29uc3RydWN0b3ImJihoPWQuY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1ofHwiU2V0Ij09PWgpcmV0dXJuIEFycmF5LmZyb20oZCk7aWYoIkFyZ3VtZW50cyI9PT1ofHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0Fy''@;'; + put 'put ''cmF5JC8udGVzdChoKSlyZXR1cm4gSTNlKGQsZyl9fShkKXx8ZnVuY3Rpb24gWVplKCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIHNwcmVhZCBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMg''@;'; + put 'put ''bXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9ZnVuY3Rpb24gSTNlKGQsZyl7KG51bGw9PWd8fGc+ZC5sZW5ndGgpJiYoZz1kLmxlbmd0aCk7Zm9yKHZhciBoPTAsdj1uZXcgQXJyYXkoZyk7aDxnO2grKyl2W2hdPWRbaF07cmV0dXJuIHZ9TCg5NjI1MSksTCgy''@;'; + put 'put ''NzYyKSxMKDU4MCksTCg3MTc3MiksTCgzNTgxMCk7dmFyIHVfZT17IiZuYnNwOyI6IiAiLCImYW1wOyI6IiYiLCImbHQ7IjoiPCIsIiZndDsiOiI+In0sWFplPW5ldyBSZWdFeHAoT2JqZWN0LmtleXModV9lKS5tYXAoZnVuY3Rpb24oZCl7cmV0dXJuIigiLmNvbmNhdChkLCIpIil9KS5qb2lu''@;'; + put 'put ''KCJ8IiksImdpIik7ZnVuY3Rpb24gS1plKGQpe3JldHVybiJUQUJMRSI9PT0oZCYmZC5ub2RlTmFtZXx8IiIpfWZ1bmN0aW9uIEQzZShkKXtmb3IodmFyIGc9ZC5oYXNDb2xIZWFkZXJzKCksaD1kLmhhc1Jvd0hlYWRlcnMoKSx2PVtnPy0xOjAsaD8tMTowLGQuY291bnRSb3dzKCktMSxkLmNv''@;'; + put 'put ''dW50Q29scygpLTFdLHk9ZC5nZXREYXRhLmFwcGx5KGQsdiksQz15Lmxlbmd0aCxJPUM+MD95WzBdLmxlbmd0aDowLGo9WyI8dGFibGU+IiwiPC90YWJsZT4iXSx1ZT1nP1siPHRoZWFkPiIsIjwvdGhlYWQ+Il06W10sX2U9WyI8dGJvZHk+IiwiPC90Ym9keT4iXSxCZT1oPzE6MCxOZT1nPzE6''@;'; + put 'put ''MCxLZT0wO0tlPEM7S2UrPTEpe2Zvcih2YXIgZHQ9ZyYmMD09PUtlLE90PVtdLCR0PTA7JHQ8STskdCs9MSl7dmFyIGZuPSFkdCYmaCYmMD09PSR0LExuPSIiO2lmKGR0KUxuPSI8dGg+Ii5jb25jYXQoZC5nZXRDb2xIZWFkZXIoJHQtQmUpLCI8L3RoPiIpO2Vsc2UgaWYoZm4pTG49Ijx0aD4i''@;'; + put 'put ''LmNvbmNhdChkLmdldFJvd0hlYWRlcihLZS1OZSksIjwvdGg+Iik7ZWxzZXt2YXIgaXI9eVtLZV1bJHRdLG1yPWQuZ2V0Q2VsbE1ldGEoS2UtTmUsJHQtQmUpLHdyPW1yLnJvd3NwYW4sUXI9bXIuY29sc3BhbjtpZighbXIuaGlkZGVuKXt2YXIgeWk9W107aWYod3ImJnlpLnB1c2goJ3Jvd3Nw''@;'; + put 'put ''YW49IicuY29uY2F0KHdyLCciJykpLFFyJiZ5aS5wdXNoKCdjb2xzcGFuPSInLmNvbmNhdChRciwnIicpKSxkYyhpcikpTG49Ijx0ZCAiLmNvbmNhdCh5aS5qb2luKCIgIiksIj48L3RkPiIpO2Vsc2V7dmFyIEtpPWlyLnRvU3RyaW5nKCkucmVwbGFjZSgiPCIsIiZsdDsiKS5yZXBsYWNlKCI+''@;'; + put 'put ''IiwiJmd0OyIpLnJlcGxhY2UoLyg8YnIoXHMqfFwvKT4oXHJcbnxcbik/fFxyXG58XG4pL2csIjxicj5cclxuIikucmVwbGFjZSgvXHgyMC9naSwiJm5ic3A7IikucmVwbGFjZSgvXHQvZ2ksIiYjOTsiKTtMbj0iPHRkICIuY29uY2F0KHlpLmpvaW4oIiAiKSwiPiIpLmNvbmNhdChLaSwiPC90''@;'; + put 'put ''ZD4iKX19fU90LnB1c2goTG4pfXZhciBTbz1bIjx0cj4iXS5jb25jYXQoT3QsWyI8L3RyPiJdKS5qb2luKCIiKTtkdD91ZS5zcGxpY2UoMSwwLFNvKTpfZS5zcGxpY2UoLTEsMCxTbyl9cmV0dXJuIGouc3BsaWNlKDEsMCx1ZS5qb2luKCIiKSxfZS5qb2luKCIiKSksai5qb2luKCIiKX1mdW5j''@;'; + put 'put ''dGlvbiBMM2UoZCl7Zm9yKHZhciBnPWQubGVuZ3RoLGg9WyI8dGFibGU+Il0sdj0wO3Y8Zzt2Kz0xKXt2YXIgeT1kW3ZdLEM9eS5sZW5ndGgsST1bXTswPT09diYmaC5wdXNoKCI8dGJvZHk+Iik7Zm9yKHZhciBqPTA7ajxDO2orPTEpe3ZhciB1ZT15W2pdLF9lPWRjKHVlKT8iIjp1ZS50b1N0''@;'; + put 'put ''cmluZygpLnJlcGxhY2UoLzwvZywiJmx0OyIpLnJlcGxhY2UoLz4vZywiJmd0OyIpLnJlcGxhY2UoLyg8YnIoXHMqfFwvKT4oXHJcbnxcbik/fFxyXG58XG4pL2csIjxicj5cclxuIikucmVwbGFjZSgvXHgyMC9naSwiJm5ic3A7IikucmVwbGFjZSgvXHQvZ2ksIiYjOTsiKTtJLnB1c2goIjx0''@;'; + put 'put ''ZD4iLmNvbmNhdChfZSwiPC90ZD4iKSl9aC5wdXNoLmFwcGx5KGgsWyI8dHI+Il0uY29uY2F0KEksWyI8L3RyPiJdKSksdisxPT09ZyYmaC5wdXNoKCI8L3Rib2R5PiIpfXJldHVybiBoLnB1c2goIjwvdGFibGU+IiksaC5qb2luKCIiKX1mdW5jdGlvbiBjX2UoZCl7dmFyIGc9YXJndW1lbnRz''@;'; + put 'put ''Lmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOmRvY3VtZW50LGg9e30sdj1nLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSx5PWcuY3JlYXRlRWxlbWVudCgiZGl2Iik7di5hcHBlbmRDaGlsZCh5KTt2YXIgQz1kO2lmKCJzdHJpbmciPT10eXBlb2YgQyl7dmFy''@;'; + put 'put ''IEk9Qy5yZXBsYWNlKC88dGRcYltePl0qPz4oW1xzXFNdKj8pPFwvXHMqdGQ+L2csZnVuY3Rpb24oWm4pe3ZhciBfcj1abi5tYXRjaCgvPHRkXGJbXj5dKj8+L2cpWzBdLFhyPVpuLnN1YnN0cmluZyhfci5sZW5ndGgsWm4ubGFzdEluZGV4T2YoIjwiKSkucmVwbGFjZSgvKDwoPyFicikoW14+''@;'; + put 'put ''XSspPikvZ2ksIiIpO3JldHVybiIiLmNvbmNhdChfcikuY29uY2F0KFhyKS5jb25jYXQoIjwvdGQ+Iil9KTt5Lmluc2VydEFkamFjZW50SFRNTCgiYWZ0ZXJiZWdpbiIsIiIuY29uY2F0KEkpKSxDPXkucXVlcnlTZWxlY3RvcigidGFibGUiKX1pZihDJiZLWmUoQykpe3ZhciBqPXkucXVlcnlT''@;'; + put 'put ''ZWxlY3RvcignbWV0YVtuYW1lJD0iZW5lcmF0b3IiXScpLHVlPW51bGwhPT1DLnF1ZXJ5U2VsZWN0b3IoInRib2R5IHRoIiksX2U9Qy5xdWVyeVNlbGVjdG9yKCJ0ciIpLEJlPV9lP0FycmF5LmZyb20oX2UuY2VsbHMpLnJlZHVjZShmdW5jdGlvbihabixfcil7cmV0dXJuIFpuK19yLmNvbFNw''@;'; + put 'put ''YW59LDApLSh1ZT8xOjApOjAsTmU9Qy50Rm9vdCYmQXJyYXkuZnJvbShDLnRGb290LnJvd3MpfHxbXSxLZT1bXSxkdD0hMSxPdD0wLCR0PTA7aWYoQy50SGVhZCl7dmFyIGZuPUFycmF5LmZyb20oQy50SGVhZC5yb3dzKS5maWx0ZXIoZnVuY3Rpb24oWm4pe3ZhciBfcj1udWxsIT09Wm4ucXVl''@;'; + put 'put ''cnlTZWxlY3RvcigidGQiKTtyZXR1cm4gX3ImJktlLnB1c2goWm4pLCFfcn0pO2R0PShPdD1mbi5sZW5ndGgpPjAsT3Q+MT9oLm5lc3RlZEhlYWRlcnM9QXJyYXkuZnJvbShmbikucmVkdWNlKGZ1bmN0aW9uKFpuLF9yKXt2YXIgWHI9QXJyYXkuZnJvbShfci5jZWxscykucmVkdWNlKGZ1bmN0''@;'; + put 'put ''aW9uKGNpLGMwLFhpKXtpZih1ZSYmMD09PVhpKXJldHVybiBjaTt2YXIgRTA9YzAuY29sU3Bhbix6MD1jMC5pbm5lckhUTUw7cmV0dXJuIGNpLnB1c2goRTA+MT97bGFiZWw6ejAsY29sc3BhbjpFMH06ejApLGNpfSxbXSk7cmV0dXJuIFpuLnB1c2goWHIpLFpufSxbXSk6ZHQmJihoLmNvbEhl''@;'; + put 'put ''YWRlcnM9QXJyYXkuZnJvbShmblswXS5jaGlsZHJlbikucmVkdWNlKGZ1bmN0aW9uKFpuLF9yLFhyKXtyZXR1cm4gdWUmJjA9PT1Ycnx8Wm4ucHVzaChfci5pbm5lckhUTUwpLFpufSxbXSkpfUtlLmxlbmd0aCYmKGguZml4ZWRSb3dzVG9wPUtlLmxlbmd0aCksTmUubGVuZ3RoJiYoaC5maXhl''@;'; + put 'put ''ZFJvd3NCb3R0b209TmUubGVuZ3RoKTt2YXIgTG49W10uY29uY2F0KEtlLFQzZShBcnJheS5mcm9tKEMudEJvZGllcykucmVkdWNlKGZ1bmN0aW9uKFpuLF9yKXtyZXR1cm4gWm4ucHVzaC5hcHBseShabixUM2UoQXJyYXkuZnJvbShfci5yb3dzKSkpLFpufSxbXSkpLFQzZShOZSkpOyR0PUxu''@;'; + put 'put ''Lmxlbmd0aDtmb3IodmFyIGlyPW5ldyBBcnJheSgkdCksbXI9MDttcjwkdDttcisrKWlyW21yXT1uZXcgQXJyYXkoQmUpO2Zvcih2YXIgU3I9W10sd3I9W10sUXI9MDtRcjwkdDtRcisrKWZvcih2YXIgeWk9TG5bUXJdLEtpPUFycmF5LmZyb20oeWkuY2VsbHMpLFNvPUtpLmxlbmd0aCxQbz0w''@;'; + put 'put ''O1BvPFNvO1BvKyspe3ZhciBTYT1LaVtQb10sSmE9U2Eubm9kZU5hbWUsbGE9U2EuaW5uZXJIVE1MLGFsPVNhLnJvd1NwYW4sT3M9U2EuY29sU3BhbixQMD1pcltRcl0uZmluZEluZGV4KGZ1bmN0aW9uKFpuKXtyZXR1cm4gdm9pZCAwPT09Wm59KTtpZigiVEQiPT09SmEpe2lmKGFsPjF8fE9z''@;'; + put 'put ''PjEpe2Zvcih2YXIgcm89UXI7cm88UXIrYWw7cm8rKylpZihybzwkdClmb3IodmFyIGZvPVAwO2ZvPFAwK09zO2ZvKyspaXJbcm9dW2ZvXT1udWxsO3ZhciBJYT1TYS5nZXRBdHRyaWJ1dGUoInN0eWxlIiksWGw9SWEmJklhLmluY2x1ZGVzKCJtc28taWdub3JlOmNvbHNwYW4iKTtYbHx8U3Iu''@;'; + put 'put ''cHVzaCh7Y29sOlAwLHJvdzpRcixyb3dzcGFuOmFsLGNvbHNwYW46T3N9KX12YXIgRm49IiI7Rm49aiYmL2V4Y2VsL2dpLnRlc3Qoai5jb250ZW50KT9sYS5yZXBsYWNlKC9bXHJcbl1bXHgyMF17MCwyfS9nLCIgIikucmVwbGFjZSgvPGJyKFxzKnxcLyk+W1xyXG5dP1tceDIwXXswLDN9L2dp''@;'; + put 'put ''bSwiXHJcbiIpOmxhLnJlcGxhY2UoLzxicihccyp8XC8pPltcclxuXT8vZ2ltLCJcclxuIiksaXJbUXJdW1AwXT1Gbi5yZXBsYWNlKFhaZSxmdW5jdGlvbihabil7cmV0dXJuIHVfZVtabl19KX1lbHNlIHdyLnB1c2gobGEpfXJldHVybiBTci5sZW5ndGgmJihoLm1lcmdlQ2VsbHM9U3IpLHdy''@;'; + put 'put ''Lmxlbmd0aCYmKGgucm93SGVhZGVycz13ciksaXIubGVuZ3RoJiYoaC5kYXRhPWlyKSxofX1mdW5jdGlvbiAkWmUoZCl7cmV0dXJuIGZ1bmN0aW9uIG56ZShkKXtpZihBcnJheS5pc0FycmF5KGQpKXJldHVybiBPM2UoZCl9KGQpfHxmdW5jdGlvbiB0emUoZCl7aWYoInVuZGVmaW5lZCIhPXR5''@;'; + put 'put ''cGVvZiBTeW1ib2wmJm51bGwhPWRbU3ltYm9sLml0ZXJhdG9yXXx8bnVsbCE9ZFsiQEBpdGVyYXRvciJdKXJldHVybiBBcnJheS5mcm9tKGQpfShkKXx8ZnVuY3Rpb24gZXplKGQsZyl7aWYoZCl7aWYoInN0cmluZyI9PXR5cGVvZiBkKXJldHVybiBPM2UoZCxnKTt2YXIgaD1PYmplY3QucHJv''@;'; + put 'put ''dG90eXBlLnRvU3RyaW5nLmNhbGwoZCkuc2xpY2UoOCwtMSk7aWYoIk9iamVjdCI9PT1oJiZkLmNvbnN0cnVjdG9yJiYoaD1kLmNvbnN0cnVjdG9yLm5hbWUpLCJNYXAiPT09aHx8IlNldCI9PT1oKXJldHVybiBBcnJheS5mcm9tKGQpO2lmKCJBcmd1bWVudHMiPT09aHx8L14oPzpVaXxJKW50''@;'; + put 'put ''KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QoaCkpcmV0dXJuIE8zZShkLGcpfX0oZCl8fGZ1bmN0aW9uIHFaZSgpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBzcHJlYWQgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRl''@;'; + put 'put ''cmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfWZ1bmN0aW9uIE8zZShkLGcpeyhudWxsPT1nfHxnPmQubGVuZ3RoKSYmKGc9ZC5sZW5ndGgpO2Zvcih2YXIgaD0wLHY9bmV3IEFycmF5KGcpO2g8ZztoKyspdltoXT1k''@;'; + put 'put ''W2hdO3JldHVybiB2fWZ1bmN0aW9uIFIzZShkKXtyZXR1cm4oUjNlPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGcpe3JldHVybiB0eXBlb2YgZ306ZnVuY3Rpb24oZyl7cmV0dXJuIGcmJiJmdW5jdGlvbiI9PXR5''@;'; + put 'put ''cGVvZiBTeW1ib2wmJmcuY29uc3RydWN0b3I9PT1TeW1ib2wmJmchPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBnfSkoZCl9ZnVuY3Rpb24gdjQoZCl7dmFyIGc9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOltdLGg9UjNl''@;'; + put 'put ''KGQpO2lmKCJudW1iZXIiPT09aClyZXR1cm4haXNOYU4oZCkmJmlzRmluaXRlKGQpO2lmKCJzdHJpbmciPT09aCl7aWYoMD09PWQubGVuZ3RoKXJldHVybiExO2lmKDE9PT1kLmxlbmd0aClyZXR1cm4vXGQvLnRlc3QoZCk7dmFyIHY9QXJyYXkuZnJvbShuZXcgU2V0KFsiLiJdLmNvbmNhdCgk''@;'; + put 'put ''WmUoZykpKSkubWFwKGZ1bmN0aW9uKHkpe3JldHVybiJcXCIuY29uY2F0KHkpfSkuam9pbigifCIpO3JldHVybiBuZXcgUmVnRXhwKCJeWystXT9cXHMqKCgoIi5jb25jYXQodiwiKT9cXGQrKCgiKS5jb25jYXQodiwiKVxcZCspPyhlWystXT9cXGQrKT8pfCgweFthLWZcXGRdKykpJCIpLCJp''@;'; + put 'put ''IikudGVzdChkLnRyaW0oKSl9cmV0dXJuIm9iamVjdCI9PT1oJiYhKCFkfHwibnVtYmVyIiE9dHlwZW9mIGQudmFsdWVPZigpfHxkIGluc3RhbmNlb2YgRGF0ZSl9ZnVuY3Rpb24gZl9lKGQpe3JldHVybiB2NChkLFsiLCJdKX1mdW5jdGlvbiBpYShkLGcsaCl7dmFyIHY9LTE7Zm9yKCJmdW5j''@;'; + put 'put ''dGlvbiI9PXR5cGVvZiBnPyhoPWcsZz1kKTp2PWQtMTsrK3Y8PWcmJiExIT09aCh2KTspO31mdW5jdGlvbiBzZWUoZCxnLGgpe3ZhciB2PWQrMTtmb3IoImZ1bmN0aW9uIj09dHlwZW9mIGcmJihoPWcsZz0wKTstLXY+PWcmJiExIT09aCh2KTspO31mdW5jdGlvbiBCM2UoZCxnKXtyZXR1cm4g''@;'; + put 'put ''Zz1wYXJzZUludChnLnRvU3RyaW5nKCkucmVwbGFjZSgiJSIsIiIpLDEwKSxnPWlzTmFOKGcpPzA6ZyxwYXJzZUludChkKmcvMTAwLDEwKX1mdW5jdGlvbiByemUoZCl7cmV0dXJuIGZ1bmN0aW9uIGF6ZShkKXtpZihBcnJheS5pc0FycmF5KGQpKXJldHVybiBQM2UoZCl9KGQpfHxmdW5jdGlv''@;'; + put 'put ''biBvemUoZCl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJm51bGwhPWRbU3ltYm9sLml0ZXJhdG9yXXx8bnVsbCE9ZFsiQEBpdGVyYXRvciJdKXJldHVybiBBcnJheS5mcm9tKGQpfShkKXx8aF9lKGQpfHxmdW5jdGlvbiBpemUoKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlk''@;'; + put 'put ''IGF0dGVtcHQgdG8gc3ByZWFkIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX1mdW5jdGlvbiBsemUoZCxnKXtyZXR1cm4gZnVuY3Rpb24g''@;'; + put 'put ''Y3plKGQpe2lmKEFycmF5LmlzQXJyYXkoZCkpcmV0dXJuIGR9KGQpfHxmdW5jdGlvbiB1emUoZCxnKXt2YXIgaD1udWxsPT1kP251bGw6InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJmRbU3ltYm9sLml0ZXJhdG9yXXx8ZFsiQEBpdGVyYXRvciJdO2lmKG51bGwhPWgpe3ZhciBJLGosdj1b''@;'; + put 'put ''XSx5PSEwLEM9ITE7dHJ5e2ZvcihoPWguY2FsbChkKTshKHk9KEk9aC5uZXh0KCkpLmRvbmUpJiYodi5wdXNoKEkudmFsdWUpLCFnfHx2Lmxlbmd0aCE9PWcpO3k9ITApO31jYXRjaCh1ZSl7Qz0hMCxqPXVlfWZpbmFsbHl7dHJ5eyF5JiZudWxsIT1oLnJldHVybiYmaC5yZXR1cm4oKX1maW5h''@;'; + put 'put ''bGx5e2lmKEMpdGhyb3cgan19cmV0dXJuIHZ9fShkLGcpfHxoX2UoZCxnKXx8ZnVuY3Rpb24gc3plKCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24t''@;'; + put 'put ''YXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX1mdW5jdGlvbiBoX2UoZCxnKXtpZihkKXtpZigic3RyaW5nIj09dHlwZW9mIGQpcmV0dXJuIFAzZShkLGcpO3ZhciBoPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChkKS5zbGlj''@;'; + put 'put ''ZSg4LC0xKTtpZigiT2JqZWN0Ij09PWgmJmQuY29uc3RydWN0b3ImJihoPWQuY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1ofHwiU2V0Ij09PWgpcmV0dXJuIEFycmF5LmZyb20oZCk7aWYoIkFyZ3VtZW50cyI9PT1ofHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5''@;'; + put 'put ''JC8udGVzdChoKSlyZXR1cm4gUDNlKGQsZyl9fWZ1bmN0aW9uIFAzZShkLGcpeyhudWxsPT1nfHxnPmQubGVuZ3RoKSYmKGc9ZC5sZW5ndGgpO2Zvcih2YXIgaD0wLHY9bmV3IEFycmF5KGcpO2g8ZztoKyspdltoXT1kW2hdO3JldHVybiB2fXZhciBGM2U9ImFzYyIsZF9lPW5ldyBNYXAoW1tG''@;'; + put 'put ''M2UsWy0xLDFdXSxbImRlc2MiLFsxLC0xXV1dKSxoemU9ZnVuY3Rpb24oZyl7cmV0dXJuIlRoZSBwcmlvcml0eSAnIi5jb25jYXQoZywiJyBpcyBhbHJlYWR5IGRlY2xhcmVkIGluIGEgbWFwLiIpfSxkemU9ZnVuY3Rpb24oZyl7cmV0dXJuIlRoZSBwcmlvcml0eSAnIi5jb25jYXQoZywiJyBp''@;'; + put 'put ''cyBub3QgYSBudW1iZXIuIil9O2Z1bmN0aW9uIGd6ZShkKXtyZXR1cm4gZnVuY3Rpb24gQXplKGQpe2lmKEFycmF5LmlzQXJyYXkoZCkpcmV0dXJuIEgzZShkKX0oZCl8fGZ1bmN0aW9uIHZ6ZShkKXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmbnVsbCE9ZFtTeW1ib2wuaXRlcmF0''@;'; + put 'put ''b3JdfHxudWxsIT1kWyJAQGl0ZXJhdG9yIl0pcmV0dXJuIEFycmF5LmZyb20oZCl9KGQpfHxnX2UoZCl8fGZ1bmN0aW9uIG16ZSgpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBzcHJlYWQgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRl''@;'; + put 'put ''cmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfWZ1bmN0aW9uIHBfZShkLGcpe3JldHVybiBmdW5jdGlvbiBiemUoZCl7aWYoQXJyYXkuaXNBcnJheShkKSlyZXR1cm4gZH0oZCl8fGZ1bmN0aW9uIHd6ZShkLGcpe3Zh''@;'; + put 'put ''ciBoPW51bGw9PWQ/bnVsbDoidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmZFtTeW1ib2wuaXRlcmF0b3JdfHxkWyJAQGl0ZXJhdG9yIl07aWYobnVsbCE9aCl7dmFyIEksaix2PVtdLHk9ITAsQz0hMTt0cnl7Zm9yKGg9aC5jYWxsKGQpOyEoeT0oST1oLm5leHQoKSkuZG9uZSkmJih2LnB1''@;'; + put 'put ''c2goSS52YWx1ZSksIWd8fHYubGVuZ3RoIT09Zyk7eT0hMCk7fWNhdGNoKHVlKXtDPSEwLGo9dWV9ZmluYWxseXt0cnl7IXkmJm51bGwhPWgucmV0dXJuJiZoLnJldHVybigpfWZpbmFsbHl7aWYoQyl0aHJvdyBqfX1yZXR1cm4gdn19KGQsZyl8fGdfZShkLGcpfHxmdW5jdGlvbiB5emUoKXt0''@;'; + put 'put ''aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfWZ1''@;'; + put 'put ''bmN0aW9uIGdfZShkLGcpe2lmKGQpe2lmKCJzdHJpbmciPT10eXBlb2YgZClyZXR1cm4gSDNlKGQsZyk7dmFyIGg9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGQpLnNsaWNlKDgsLTEpO2lmKCJPYmplY3QiPT09aCYmZC5jb25zdHJ1Y3RvciYmKGg9ZC5jb25zdHJ1Y3Rvci5uYW1l''@;'; + put 'put ''KSwiTWFwIj09PWh8fCJTZXQiPT09aClyZXR1cm4gQXJyYXkuZnJvbShkKTtpZigiQXJndW1lbnRzIj09PWh8fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KGgpKXJldHVybiBIM2UoZCxnKX19ZnVuY3Rpb24gSDNlKGQsZyl7KG51bGw9PWd8fGc+ZC5s''@;'; + put 'put ''ZW5ndGgpJiYoZz1kLmxlbmd0aCk7Zm9yKHZhciBoPTAsdj1uZXcgQXJyYXkoZyk7aDxnO2grKyl2W2hdPWRbaF07cmV0dXJuIHZ9TCg1NDY3OSk7dmFyIF96ZT1mdW5jdGlvbihnKXtyZXR1cm4iVGhlIGlkICciLmNvbmNhdChnLCInIGlzIGFscmVhZHkgZGVjbGFyZWQgaW4gYSBtYXAuIil9''@;'; + put 'put ''O2Z1bmN0aW9uIHVlZSgpe3ZhciBkPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp7fSxnPWQuZXJyb3JJZEV4aXN0cyxoPW5ldyBNYXA7ZnVuY3Rpb24gdihCZSxOZSl7aWYoX2UoQmUpKXRocm93IG5ldyBFcnJvcihnKEJlKSk7aC5zZXQo''@;'; + put 'put ''QmUsTmUpfWZ1bmN0aW9uIHkoQmUpe3JldHVybiBoLmRlbGV0ZShCZSl9ZnVuY3Rpb24gQygpe2guY2xlYXIoKX1mdW5jdGlvbiBJKEJlKXt2YXIgTmU9dWUoKS5maW5kKGZ1bmN0aW9uKE90KXt2YXIgJHQ9cF9lKE90LDIpO3JldHVybiBCZT09PSR0WzFdJiYkdFswXX0pfHxbbnVsbF07cmV0''@;'; + put 'put ''dXJuIHBfZShOZSwxKVswXX1mdW5jdGlvbiBqKEJlKXtyZXR1cm4gaC5nZXQoQmUpfWZ1bmN0aW9uIHVlKCl7cmV0dXJuIGd6ZShoKX1mdW5jdGlvbiBfZShCZSl7cmV0dXJuIGguaGFzKEJlKX1yZXR1cm4gZz1VMihnKT9nOl96ZSx7YWRkSXRlbTp2LGNsZWFyOkMsZ2V0SWQ6SSxnZXRJdGVt''@;'; + put 'put ''OmosZ2V0SXRlbXM6dWUsaGFzSXRlbTpfZSxyZW1vdmVJdGVtOnl9fWZ1bmN0aW9uIEN6ZShkKXtyZXR1cm4gZnVuY3Rpb24gRXplKGQpe2lmKEFycmF5LmlzQXJyYXkoZCkpcmV0dXJuIE4zZShkKX0oZCl8fGZ1bmN0aW9uIE16ZShkKXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYm''@;'; + put 'put ''bnVsbCE9ZFtTeW1ib2wuaXRlcmF0b3JdfHxudWxsIT1kWyJAQGl0ZXJhdG9yIl0pcmV0dXJuIEFycmF5LmZyb20oZCl9KGQpfHxmdW5jdGlvbiBTemUoZCxnKXtpZihkKXtpZigic3RyaW5nIj09dHlwZW9mIGQpcmV0dXJuIE4zZShkLGcpO3ZhciBoPU9iamVjdC5wcm90b3R5cGUudG9TdHJp''@;'; + put 'put ''bmcuY2FsbChkKS5zbGljZSg4LC0xKTtpZigiT2JqZWN0Ij09PWgmJmQuY29uc3RydWN0b3ImJihoPWQuY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1ofHwiU2V0Ij09PWgpcmV0dXJuIEFycmF5LmZyb20oZCk7aWYoIkFyZ3VtZW50cyI9PT1ofHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/''@;'; + put 'put ''OkNsYW1wZWQpP0FycmF5JC8udGVzdChoKSlyZXR1cm4gTjNlKGQsZyl9fShkKXx8ZnVuY3Rpb24ga3plKCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIHNwcmVhZCBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFy''@;'; + put 'put ''cmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9ZnVuY3Rpb24gTjNlKGQsZyl7KG51bGw9PWd8fGc+ZC5sZW5ndGgpJiYoZz1kLmxlbmd0aCk7Zm9yKHZhciBoPTAsdj1uZXcgQXJyYXkoZyk7aDxnO2grKyl2W2hdPWRbaF07cmV0dXJuIHZ9''@;'; + put 'put ''dmFyIHh6ZT1mdW5jdGlvbihnKXtyZXR1cm4iJyIuY29uY2F0KGcsIicgdmFsdWUgaXMgYWxyZWFkeSBkZWNsYXJlZCBpbiBhIHVuaXF1ZSBzZXQuIil9O2Z1bmN0aW9uIG1fZShkKXtyZXR1cm4gZnVuY3Rpb24gUHplKGQpe2lmKEFycmF5LmlzQXJyYXkoZCkpcmV0dXJuIFYzZShkKX0oZCl8''@;'; + put 'put ''fGZ1bmN0aW9uIEJ6ZShkKXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmbnVsbCE9ZFtTeW1ib2wuaXRlcmF0b3JdfHxudWxsIT1kWyJAQGl0ZXJhdG9yIl0pcmV0dXJuIEFycmF5LmZyb20oZCl9KGQpfHx2X2UoZCl8fGZ1bmN0aW9uIFJ6ZSgpe3Rocm93IG5ldyBUeXBlRXJyb3Io''@;'; + put 'put ''IkludmFsaWQgYXR0ZW1wdCB0byBzcHJlYWQgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfWZ1bmN0aW9uIHZfZShkLGcpe2lmKGQpe2lm''@;'; + put 'put ''KCJzdHJpbmciPT10eXBlb2YgZClyZXR1cm4gVjNlKGQsZyk7dmFyIGg9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGQpLnNsaWNlKDgsLTEpO2lmKCJPYmplY3QiPT09aCYmZC5jb25zdHJ1Y3RvciYmKGg9ZC5jb25zdHJ1Y3Rvci5uYW1lKSwiTWFwIj09PWh8fCJTZXQiPT09aCly''@;'; + put 'put ''ZXR1cm4gQXJyYXkuZnJvbShkKTtpZigiQXJndW1lbnRzIj09PWh8fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KGgpKXJldHVybiBWM2UoZCxnKX19ZnVuY3Rpb24gVjNlKGQsZyl7KG51bGw9PWd8fGc+ZC5sZW5ndGgpJiYoZz1kLmxlbmd0aCk7Zm9y''@;'; + put 'put ''KHZhciBoPTAsdj1uZXcgQXJyYXkoZyk7aDxnO2grKyl2W2hdPWRbaF07cmV0dXJuIHZ9dmFyIGozZT1mdW5jdGlvbihnKXtyZXR1cm4nVGhlcmUgaXMgYWxyZWFkeSByZWdpc3RlcmVkICInLmNvbmNhdChnLCciIHBsdWdpbi4nKX0sQV9lPWZ1bmN0aW9uIHB6ZSgpe3ZhciBkPWFyZ3VtZW50''@;'; + put 'put ''cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp7fSxnPWQuZXJyb3JQcmlvcml0eUV4aXN0cyxoPWQuZXJyb3JQcmlvcml0eU5hTix2PW5ldyBNYXA7ZnVuY3Rpb24geShJLGope2lmKCF2NChJKSl0aHJvdyBuZXcgRXJyb3IoaChJKSk7aWYodi5oYXMoSSkp''@;'; + put 'put ''dGhyb3cgbmV3IEVycm9yKGcoSSkpO3Yuc2V0KEksail9ZnVuY3Rpb24gQygpe3ZhciBJPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTpGM2Usaj1kX2UuZ2V0KEkpfHxkX2UuZ2V0KEYzZSksdWU9bHplKGosMiksX2U9dWVbMF0sQmU9dWVb''@;'; + put 'put ''MV07cmV0dXJuIHJ6ZSh2KS5zb3J0KGZ1bmN0aW9uKE5lLEtlKXtyZXR1cm4gTmVbMF08S2VbMF0/X2U6QmV9KS5tYXAoZnVuY3Rpb24oTmUpe3JldHVybiBOZVsxXX0pfXJldHVybiBnPVUyKGcpP2c6aHplLGg9VTIoaCk/aDpkemUse2FkZEl0ZW06eSxnZXRJdGVtczpDfX0oe2Vycm9yUHJp''@;'; + put 'put ''b3JpdHlFeGlzdHM6ZnVuY3Rpb24oZyl7cmV0dXJuJ1RoZXJlIGlzIGFscmVhZHkgcmVnaXN0ZXJlZCBwbHVnaW4gb24gcHJpb3JpdHkgIicuY29uY2F0KGcsJyIuJyl9LGVycm9yUHJpb3JpdHlOYU46ZnVuY3Rpb24oZyl7cmV0dXJuJ1RoZSBwcmlvcml0eSAiJy5jb25jYXQoZywnIiBpcyBu''@;'; + put 'put ''b3QgYSBudW1iZXIuJyl9fSkseV9lPWZ1bmN0aW9uIFR6ZSgpe3ZhciBkPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp7fSxnPWQuZXJyb3JJdGVtRXhpc3RzLGg9bmV3IFNldDtmdW5jdGlvbiB2KEkpe2lmKGguaGFzKEkpKXRocm93IG5l''@;'; + put 'put ''dyBFcnJvcihnKEkpKTtoLmFkZChJKX1mdW5jdGlvbiB5KCl7cmV0dXJuIEN6ZShoKX1mdW5jdGlvbiBDKCl7aC5jbGVhcigpfXJldHVybiBnPVUyKGcpP2c6eHplLHthZGRJdGVtOnYsY2xlYXI6QyxnZXRJdGVtczp5fX0oe2Vycm9ySXRlbUV4aXN0czpqM2V9KSxaM2U9dWVlKHtlcnJvcklk''@;'; + put 'put ''RXhpc3RzOmozZX0pO2Z1bmN0aW9uIHozZSgpe3JldHVybltdLmNvbmNhdChtX2UoQV9lLmdldEl0ZW1zKCkpLG1fZSh5X2UuZ2V0SXRlbXMoKSkpfWZ1bmN0aW9uIFdaKGQpe3ZhciBnPXNkKGQpO3JldHVybiBaM2UuZ2V0SXRlbShnKX1mdW5jdGlvbiBMcyhkLGcsaCl7dmFyIHY9ZnVuY3Rp''@;'; + put 'put ''b24ganplKGQsZyxoKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgZCYmKGQ9KGc9ZCkuUExVR0lOX0tFWSxoPWcuUExVR0lOX1BSSU9SSVRZKSxbZCxnLGhdfShkLGcsaCkseT1mdW5jdGlvbiBJemUoZCxnKXtyZXR1cm4gZnVuY3Rpb24gT3plKGQpe2lmKEFycmF5LmlzQXJyYXkoZCkpcmV0''@;'; + put 'put ''dXJuIGR9KGQpfHxmdW5jdGlvbiBMemUoZCxnKXt2YXIgaD1udWxsPT1kP251bGw6InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJmRbU3ltYm9sLml0ZXJhdG9yXXx8ZFsiQEBpdGVyYXRvciJdO2lmKG51bGwhPWgpe3ZhciBJLGosdj1bXSx5PSEwLEM9ITE7dHJ5e2ZvcihoPWguY2FsbChk''@;'; + put 'put ''KTshKHk9KEk9aC5uZXh0KCkpLmRvbmUpJiYodi5wdXNoKEkudmFsdWUpLCFnfHx2Lmxlbmd0aCE9PWcpO3k9ITApO31jYXRjaCh1ZSl7Qz0hMCxqPXVlfWZpbmFsbHl7dHJ5eyF5JiZudWxsIT1oLnJldHVybiYmaC5yZXR1cm4oKX1maW5hbGx5e2lmKEMpdGhyb3cgan19cmV0dXJuIHZ9fShk''@;'; + put 'put ''LGcpfHx2X2UoZCxnKXx8ZnVuY3Rpb24gRHplKCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3lt''@;'; + put 'put ''Ym9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX0odiwzKTtnPXlbMV0saD15WzJdLHZvaWQgMD09PVdaKGQ9eVswXSkmJmZ1bmN0aW9uIFZ6ZShkLGcsaCl7dmFyIHY9c2QoZCk7aWYoWjNlLmhhc0l0ZW0odikpdGhyb3cgbmV3IEVycm9yKGozZSh2KSk7dm9pZCAwPT09aD95X2UuYWRkSXRl''@;'; + put 'put ''bSh2KTpBX2UuYWRkSXRlbShoLHYpLFozZS5hZGRJdGVtKHYsZyl9KGQsZyxoKX12YXIgWVo9THAoInJlbmRlcmVycyIpLFp6ZT1ZWi5yZWdpc3Rlcix6emU9WVouZ2V0SXRlbSx3X2U9WVouaGFzSXRlbSxHemU9WVouZ2V0TmFtZXM7ZnVuY3Rpb24gRzNlKGQpe2lmKCJmdW5jdGlvbiI9PXR5''@;'; + put 'put ''cGVvZiBkKXJldHVybiBkO2lmKCF3X2UoZCkpdGhyb3cgRXJyb3IoJ05vIHJlZ2lzdGVyZWQgcmVuZGVyZXIgZm91bmQgdW5kZXIgIicuY29uY2F0KGQsJyIgbmFtZScpKTtyZXR1cm4genplKGQpfWZ1bmN0aW9uIE1nKGQsZyl7InN0cmluZyIhPXR5cGVvZiBkJiYoZD0oZz1kKS5SRU5ERVJF''@;'; + put 'put ''Ul9UWVBFKSxaemUoZCxnKX12YXIgVVo9THAoInZhbGlkYXRvcnMiKSxXemU9VVoucmVnaXN0ZXIsWXplPVVaLmdldEl0ZW0sYl9lPVVaLmhhc0l0ZW0sVXplPVVaLmdldE5hbWVzO2Z1bmN0aW9uIFczZShkKXtpZigiZnVuY3Rpb24iPT10eXBlb2YgZClyZXR1cm4gZDtpZighYl9lKGQpKXRo''@;'; + put 'put ''cm93IEVycm9yKCdObyByZWdpc3RlcmVkIHZhbGlkYXRvciBmb3VuZCB1bmRlciAiJy5jb25jYXQoZCwnIiBuYW1lJykpO3JldHVybiBZemUoZCl9ZnVuY3Rpb24gcE8oZCxnKXsic3RyaW5nIiE9dHlwZW9mIGQmJihkPShnPWQpLlZBTElEQVRPUl9UWVBFKSxXemUoZCxnKX1mdW5jdGlvbiBR''@;'; + put 'put ''emUoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX1mdW5jdGlvbiBDX2UoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJh''@;'; + put 'put ''YmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX1MKDE2MTYxKSxMKDkxNjgzKTt2YXIgZ089bmV3IFdlYWtNYXAsWHplPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZChnLGgsdix5LEMsSSl7''@;'; + put 'put ''dmFyIGo9YXJndW1lbnRzLmxlbmd0aD42JiZ2b2lkIDAhPT1hcmd1bWVudHNbNl0/YXJndW1lbnRzWzZdOm51bGw7UXplKHRoaXMsZCksdGhpcy53dFNldHRpbmdzPXYsdGhpcy5kb21CaW5kaW5ncz1oLHRoaXMud3RUYWJsZT1DLHRoaXMuc2VsZWN0aW9ucz1JLHRoaXMucGFyZW50PWosdGhp''@;'; + put 'put ''cy5ldmVudE1hbmFnZXI9eSx0aGlzLmZhY2FkZUdldHRlcj1nLGdPLnNldCh0aGlzLHtzZWxlY3RlZENlbGxCZWZvcmVUb3VjaEVuZDp2b2lkIDAsZGJsQ2xpY2tUaW1lb3V0OltudWxsLG51bGxdLGRibENsaWNrT3JpZ2luOltudWxsLG51bGxdfSksdGhpcy5yZWdpc3RlckV2ZW50cygpfXJl''@;'; + put 'put ''dHVybiBmdW5jdGlvbiBKemUoZCxnLGgpe2cmJkNfZShkLnByb3RvdHlwZSxnKSxoJiZDX2UoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oZCxbe2tleToicmVnaXN0ZXJFdmVudHMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9dGhpczt0''@;'; + put 'put ''aGlzLmV2ZW50TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKHRoaXMud3RUYWJsZS5ob2xkZXIsImNvbnRleHRtZW51IixmdW5jdGlvbihDKXtyZXR1cm4gaC5vbkNvbnRleHRNZW51KEMpfSksdGhpcy5ldmVudE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcih0aGlzLnd0VGFibGUuVEFCTEUsIm1v''@;'; + put 'put ''dXNlb3ZlciIsZnVuY3Rpb24oQyl7cmV0dXJuIGgub25Nb3VzZU92ZXIoQyl9KSx0aGlzLmV2ZW50TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKHRoaXMud3RUYWJsZS5UQUJMRSwibW91c2VvdXQiLGZ1bmN0aW9uKEMpe3JldHVybiBoLm9uTW91c2VPdXQoQyl9KTt2YXIgdj1mdW5jdGlvbigp''@;'; + put 'put ''e2guZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoaC53dFRhYmxlLmhvbGRlciwidG91Y2hzdGFydCIsZnVuY3Rpb24oSSl7cmV0dXJuIGgub25Ub3VjaFN0YXJ0KEkpfSksaC5ldmVudE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihoLnd0VGFibGUuaG9sZGVyLCJ0b3VjaGVuZCIsZnVu''@;'; + put 'put ''Y3Rpb24oSSl7cmV0dXJuIGgub25Ub3VjaEVuZChJKX0pLGgubW9tZW50dW1TY3JvbGxpbmd8fChoLm1vbWVudHVtU2Nyb2xsaW5nPXt9KSxoLmV2ZW50TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKGgud3RUYWJsZS5ob2xkZXIsInNjcm9sbCIsZnVuY3Rpb24oKXtjbGVhclRpbWVvdXQoaC5t''@;'; + put 'put ''b21lbnR1bVNjcm9sbGluZy5fdGltZW91dCksaC5tb21lbnR1bVNjcm9sbGluZy5vbmdvaW5nfHxoLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygib25CZWZvcmVUb3VjaFNjcm9sbCIpLGgubW9tZW50dW1TY3JvbGxpbmcub25nb2luZz0hMCxoLm1vbWVudHVtU2Nyb2xsaW5nLl90aW1lb3V0PXNl''@;'; + put 'put ''dFRpbWVvdXQoZnVuY3Rpb24oKXtoLnRvdWNoQXBwbGllZHx8KGgubW9tZW50dW1TY3JvbGxpbmcub25nb2luZz0hMSxoLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygib25BZnRlck1vbWVudHVtU2Nyb2xsIikpfSwyMDApfSl9O2I4KCk/digpOihHaGUoKSYmdigpLGguZXZlbnRNYW5hZ2VyLmFk''@;'; + put 'put ''ZEV2ZW50TGlzdGVuZXIoaC53dFRhYmxlLmhvbGRlciwibW91c2V1cCIsZnVuY3Rpb24oSSl7cmV0dXJuIGgub25Nb3VzZVVwKEkpfSksaC5ldmVudE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihoLnd0VGFibGUuaG9sZGVyLCJtb3VzZWRvd24iLGZ1bmN0aW9uKEkpe3JldHVybiBoLm9uTW91''@;'; + put 'put ''c2VEb3duKEkpfSkpfX0se2tleToic2VsZWN0ZWRDZWxsV2FzVG91Y2hlZCIsdmFsdWU6ZnVuY3Rpb24oaCl7dmFyIHY9Z08uZ2V0KHRoaXMpLEM9dGhpcy5wYXJlbnRDZWxsKGgpLmNvb3JkcztpZih2LnNlbGVjdGVkQ2VsbEJlZm9yZVRvdWNoRW5kJiZDKXt2YXIgST1bQy5yb3csdi5zZWxl''@;'; + put 'put ''Y3RlZENlbGxCZWZvcmVUb3VjaEVuZC5mcm9tLnJvd10sX2U9W0MuY29sLHYuc2VsZWN0ZWRDZWxsQmVmb3JlVG91Y2hFbmQuZnJvbS5jb2xdO3JldHVybiBJWzBdPT09SVsxXSYmX2VbMF09PT1fZVsxXX1yZXR1cm4hMX19LHtrZXk6InBhcmVudENlbGwiLHZhbHVlOmZ1bmN0aW9uKGgpe3Zh''@;'; + put 'put ''ciB2PXt9LEM9UFooaCxbIlREIiwiVEgiXSx0aGlzLnd0VGFibGUuVEFCTEUpO3JldHVybiBDPyh2LmNvb3Jkcz10aGlzLnd0VGFibGUuZ2V0Q29vcmRzKEMpLHYuVEQ9Qyk6dGwoaCwid3RCb3JkZXIiKSYmdGwoaCwiY3VycmVudCIpPyh2LmNvb3Jkcz10aGlzLnNlbGVjdGlvbnMuZ2V0Q2Vs''@;'; + put 'put ''bCgpLmNlbGxSYW5nZS5oaWdobGlnaHQsdi5URD10aGlzLnd0VGFibGUuZ2V0Q2VsbCh2LmNvb3JkcykpOnRsKGgsInd0Qm9yZGVyIikmJnRsKGgsImFyZWEiKSYmdGhpcy5zZWxlY3Rpb25zLmNyZWF0ZU9yR2V0QXJlYSgpLmNlbGxSYW5nZSYmKHYuY29vcmRzPXRoaXMuc2VsZWN0aW9ucy5j''@;'; + put 'put ''cmVhdGVPckdldEFyZWEoKS5jZWxsUmFuZ2UudG8sdi5URD10aGlzLnd0VGFibGUuZ2V0Q2VsbCh2LmNvb3JkcykpLHZ9fSx7a2V5OiJvbk1vdXNlRG93biIsdmFsdWU6ZnVuY3Rpb24oaCl7dmFyIHY9Z08uZ2V0KHRoaXMpLHk9dGhpcy5kb21CaW5kaW5ncy5yb290RG9jdW1lbnQuYWN0aXZl''@;'; + put 'put ''RWxlbWVudCxDPXczZShGYmUsaC50YXJnZXQpLEk9aC50YXJnZXQ7aWYoSSE9PXkmJkMoMCkhPT15JiZDKDEpIT09eSl7dmFyIGo9dGhpcy5wYXJlbnRDZWxsKEkpO3RsKEksImNvcm5lciIpP3RoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJvbkNlbGxDb3JuZXJNb3VzZURvd24iLGgsSSk6''@;'; + put 'put ''ai5URCYmdGhpcy53dFNldHRpbmdzLmhhcygib25DZWxsTW91c2VEb3duIikmJnRoaXMuY2FsbExpc3RlbmVyKCJvbkNlbGxNb3VzZURvd24iLGgsai5jb29yZHMsai5URCksKDA9PT1oLmJ1dHRvbnx8dGhpcy50b3VjaEFwcGxpZWQpJiZqLlREJiYodi5kYmxDbGlja09yaWdpblswXT1qLlRE''@;'; + put 'put ''LGNsZWFyVGltZW91dCh2LmRibENsaWNrVGltZW91dFswXSksdi5kYmxDbGlja1RpbWVvdXRbMF09c2V0VGltZW91dChmdW5jdGlvbigpe3YuZGJsQ2xpY2tPcmlnaW5bMF09bnVsbH0sMWUzKSl9fX0se2tleToib25Db250ZXh0TWVudSIsdmFsdWU6ZnVuY3Rpb24oaCl7aWYodGhpcy53dFNl''@;'; + put 'put ''dHRpbmdzLmhhcygib25DZWxsQ29udGV4dE1lbnUiKSl7dmFyIHY9dGhpcy5wYXJlbnRDZWxsKGgudGFyZ2V0KTt2LlREJiZ0aGlzLmNhbGxMaXN0ZW5lcigib25DZWxsQ29udGV4dE1lbnUiLGgsdi5jb29yZHMsdi5URCl9fX0se2tleToib25Nb3VzZU92ZXIiLHZhbHVlOmZ1bmN0aW9uKGgp''@;'; + put 'put ''e2lmKHRoaXMud3RTZXR0aW5ncy5oYXMoIm9uQ2VsbE1vdXNlT3ZlciIpKXt2YXIgdj10aGlzLnd0VGFibGUuVEFCTEUseT1QWihoLnRhcmdldCxbIlREIiwiVEgiXSx2KSxDPXRoaXMucGFyZW50fHx0aGlzO3kmJnkhPT1DLmxhc3RNb3VzZU92ZXImJl93KHksdikmJihDLmxhc3RNb3VzZU92''@;'; + put 'put ''ZXI9eSx0aGlzLmNhbGxMaXN0ZW5lcigib25DZWxsTW91c2VPdmVyIixoLHRoaXMud3RUYWJsZS5nZXRDb29yZHMoeSkseSkpfX19LHtrZXk6Im9uTW91c2VPdXQiLHZhbHVlOmZ1bmN0aW9uKGgpe2lmKHRoaXMud3RTZXR0aW5ncy5oYXMoIm9uQ2VsbE1vdXNlT3V0Iikpe3ZhciB2PXRoaXMu''@;'; + put 'put ''d3RUYWJsZS5UQUJMRSx5PVBaKGgudGFyZ2V0LFsiVEQiLCJUSCJdLHYpLEM9UFooaC5yZWxhdGVkVGFyZ2V0LFsiVEQiLCJUSCJdLHYpO3kmJnkhPT1DJiZfdyh5LHYpJiZ0aGlzLmNhbGxMaXN0ZW5lcigib25DZWxsTW91c2VPdXQiLGgsdGhpcy53dFRhYmxlLmdldENvb3Jkcyh5KSx5KX19''@;'; + put 'put ''fSx7a2V5OiJvbk1vdXNlVXAiLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB2PWdPLmdldCh0aGlzKSx5PXRoaXMucGFyZW50Q2VsbChoLnRhcmdldCk7eS5URCYmdGhpcy53dFNldHRpbmdzLmhhcygib25DZWxsTW91c2VVcCIpJiZ0aGlzLmNhbGxMaXN0ZW5lcigib25DZWxsTW91c2VVcCIsaCx5''@;'; + put 'put ''LmNvb3Jkcyx5LlREKSwoMD09PWguYnV0dG9ufHx0aGlzLnRvdWNoQXBwbGllZCkmJih5LlREPT09di5kYmxDbGlja09yaWdpblswXSYmeS5URD09PXYuZGJsQ2xpY2tPcmlnaW5bMV0/KHRsKGgudGFyZ2V0LCJjb3JuZXIiKT90aGlzLmNhbGxMaXN0ZW5lcigib25DZWxsQ29ybmVyRGJsQ2xp''@;'; + put 'put ''Y2siLGgseS5jb29yZHMseS5URCk6dGhpcy5jYWxsTGlzdGVuZXIoIm9uQ2VsbERibENsaWNrIixoLHkuY29vcmRzLHkuVEQpLHYuZGJsQ2xpY2tPcmlnaW5bMF09bnVsbCx2LmRibENsaWNrT3JpZ2luWzFdPW51bGwpOnkuVEQ9PT12LmRibENsaWNrT3JpZ2luWzBdJiYodi5kYmxDbGlja09y''@;'; + put 'put ''aWdpblsxXT15LlRELGNsZWFyVGltZW91dCh2LmRibENsaWNrVGltZW91dFsxXSksdi5kYmxDbGlja1RpbWVvdXRbMV09c2V0VGltZW91dChmdW5jdGlvbigpe3YuZGJsQ2xpY2tPcmlnaW5bMV09bnVsbH0sNTAwKSkpfX0se2tleToib25Ub3VjaFN0YXJ0Iix2YWx1ZTpmdW5jdGlvbihoKXtn''@;'; + put 'put ''Ty5nZXQodGhpcykuc2VsZWN0ZWRDZWxsQmVmb3JlVG91Y2hFbmQ9dGhpcy5zZWxlY3Rpb25zLmdldENlbGwoKS5jZWxsUmFuZ2UsdGhpcy50b3VjaEFwcGxpZWQ9ITAsdGhpcy5vbk1vdXNlRG93bihoKX19LHtrZXk6Im9uVG91Y2hFbmQiLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB2LHk9aC50''@;'; + put 'put ''YXJnZXQsQz1udWxsPT09KHY9dGhpcy5wYXJlbnRDZWxsKHkpKXx8dm9pZCAwPT09dj92b2lkIDA6di5jb29yZHMsST1UbyhDKSYmQy5yb3c+PTAmJkMuY29sPj0wO2guY2FuY2VsYWJsZSYmSSYmdGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoImlzRGF0YVZpZXdJbnN0YW5jZSIpJiYoJGhl''@;'; + put 'put ''KCkmJihBYmUoKXx8eWJlKCkpJiZ0aGlzLnNlbGVjdGVkQ2VsbFdhc1RvdWNoZWQoeSkmJiFbIkEiLCJCVVRUT04iLCJJTlBVVCJdLmluY2x1ZGVzKHkudGFnTmFtZSk/aC5wcmV2ZW50RGVmYXVsdCgpOnRoaXMuc2VsZWN0ZWRDZWxsV2FzVG91Y2hlZCh5KXx8aC5wcmV2ZW50RGVmYXVsdCgp''@;'; + put 'put ''KSx0aGlzLm9uTW91c2VVcChoKSx0aGlzLnRvdWNoQXBwbGllZD0hMX19LHtrZXk6ImNhbGxMaXN0ZW5lciIsdmFsdWU6ZnVuY3Rpb24oaCx2LHksQyl7dmFyIEk9dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmdQdXJlKGgpO0kmJkkodix5LEMsdGhpcy5mYWNhZGVHZXR0ZXIoKSl9fSx7a2V5''@;'; + put 'put ''OiJkZXN0cm95Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciBoPWdPLmdldCh0aGlzKTtjbGVhclRpbWVvdXQoaC5kYmxDbGlja1RpbWVvdXRbMF0pLGNsZWFyVGltZW91dChoLmRibENsaWNrVGltZW91dFsxXSksdGhpcy5ldmVudE1hbmFnZXIuZGVzdHJveSgpfX1dKSxkfSgpO2NvbnN0IGtfZT1Y''@;'; + put 'put ''emU7ZnVuY3Rpb24gU19lKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2Lmtl''@;'; + put 'put ''eSx2KX19dmFyIHF6ZT1mdW5jdGlvbigpe2Z1bmN0aW9uIGQoZyxoLHYpeyhmdW5jdGlvbiBLemUoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0pKHRoaXMsZCksdGhpcy5vZmZzZXQ9Zyx0''@;'; + put 'put ''aGlzLnRvdGFsPWgsdGhpcy5jb3VudFRIPXZ9cmV0dXJuIGZ1bmN0aW9uICR6ZShkLGcsaCl7ZyYmU19lKGQucHJvdG90eXBlLGcpLGgmJlNfZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShkLFt7a2V5OiJvZmZzZXR0ZWQiLHZhbHVl''@;'; + put 'put ''OmZ1bmN0aW9uKGgpe3JldHVybiBoK3RoaXMub2Zmc2V0fX0se2tleToidW5PZmZzZXR0ZWQiLHZhbHVlOmZ1bmN0aW9uKGgpe3JldHVybiBoLXRoaXMub2Zmc2V0fX0se2tleToicmVuZGVyZWRUb1NvdXJjZSIsdmFsdWU6ZnVuY3Rpb24oaCl7cmV0dXJuIHRoaXMub2Zmc2V0dGVkKGgpfX0s''@;'; + put 'put ''e2tleToic291cmNlVG9SZW5kZXJlZCIsdmFsdWU6ZnVuY3Rpb24oaCl7cmV0dXJuIHRoaXMudW5PZmZzZXR0ZWQoaCl9fSx7a2V5OiJvZmZzZXR0ZWRUSCIsdmFsdWU6ZnVuY3Rpb24oaCl7cmV0dXJuIGgtdGhpcy5jb3VudFRIfX0se2tleToidW5PZmZzZXR0ZWRUSCIsdmFsdWU6ZnVuY3Rp''@;'; + put 'put ''b24oaCl7cmV0dXJuIGgrdGhpcy5jb3VudFRIfX0se2tleToidmlzaWJsZVJvd0hlYWRlZENvbHVtblRvU291cmNlQ29sdW1uIix2YWx1ZTpmdW5jdGlvbihoKXtyZXR1cm4gdGhpcy5yZW5kZXJlZFRvU291cmNlKHRoaXMub2Zmc2V0dGVkVEgoaCkpfX0se2tleToic291cmNlQ29sdW1uVG9W''@;'; + put 'put ''aXNpYmxlUm93SGVhZGVkQ29sdW1uIix2YWx1ZTpmdW5jdGlvbihoKXtyZXR1cm4gdGhpcy51bk9mZnNldHRlZFRIKHRoaXMuc291cmNlVG9SZW5kZXJlZChoKSl9fV0pLGR9KCk7Y29uc3QgZUdlPXF6ZTtmdW5jdGlvbiBNX2UoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFy''@;'; + put 'put ''IHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX12YXIgckdlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZChnLGgsdil7KGZ1bmN0aW9u''@;'; + put 'put ''IHRHZShkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSkodGhpcyxkKSx0aGlzLm9mZnNldD1nLHRoaXMudG90YWw9aCx0aGlzLmNvdW50VEg9dn1yZXR1cm4gZnVuY3Rpb24gbkdlKGQsZyxo''@;'; + put 'put ''KXtnJiZNX2UoZC5wcm90b3R5cGUsZyksaCYmTV9lKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGQsW3trZXk6Im9mZnNldHRlZCIsdmFsdWU6ZnVuY3Rpb24oaCl7cmV0dXJuIGgrdGhpcy5vZmZzZXR9fSx7a2V5OiJ1bk9mZnNldHRl''@;'; + put 'put ''ZCIsdmFsdWU6ZnVuY3Rpb24oaCl7cmV0dXJuIGgtdGhpcy5vZmZzZXR9fSx7a2V5OiJyZW5kZXJlZFRvU291cmNlIix2YWx1ZTpmdW5jdGlvbihoKXtyZXR1cm4gdGhpcy5vZmZzZXR0ZWQoaCl9fSx7a2V5OiJzb3VyY2VUb1JlbmRlcmVkIix2YWx1ZTpmdW5jdGlvbihoKXtyZXR1cm4gdGhp''@;'; + put 'put ''cy51bk9mZnNldHRlZChoKX19LHtrZXk6Im9mZnNldHRlZFRIIix2YWx1ZTpmdW5jdGlvbihoKXtyZXR1cm4gaC10aGlzLmNvdW50VEh9fSx7a2V5OiJ1bk9mZnNldHRlZFRIIix2YWx1ZTpmdW5jdGlvbihoKXtyZXR1cm4gaCt0aGlzLmNvdW50VEh9fSx7a2V5OiJ2aXNpYmxlQ29sSGVhZGVk''@;'; + put 'put ''Um93VG9Tb3VyY2VSb3ciLHZhbHVlOmZ1bmN0aW9uKGgpe3JldHVybiB0aGlzLnJlbmRlcmVkVG9Tb3VyY2UodGhpcy5vZmZzZXR0ZWRUSChoKSl9fSx7a2V5OiJzb3VyY2VSb3dUb1Zpc2libGVDb2xIZWFkZWRSb3ciLHZhbHVlOmZ1bmN0aW9uKGgpe3JldHVybiB0aGlzLnVuT2Zmc2V0dGVk''@;'; + put 'put ''VEgodGhpcy5zb3VyY2VUb1JlbmRlcmVkKGgpKX19XSksZH0oKTtjb25zdCBpR2U9ckdlO2Z1bmN0aW9uIEVfZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJp''@;'; + put 'put ''biB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fXZhciB4X2U9ZnVuY3Rpb24oKXtmdW5jdGlvbiBkKCl7KGZ1bmN0aW9uIGFHZShkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xh''@;'; + put 'put ''c3MgYXMgYSBmdW5jdGlvbiIpfSkodGhpcyxkKSx0aGlzLmN1cnJlbnRTaXplPTAsdGhpcy5uZXh0U2l6ZT0wLHRoaXMuY3VycmVudE9mZnNldD0wLHRoaXMubmV4dE9mZnNldD0wfXJldHVybiBmdW5jdGlvbiBsR2UoZCxnLGgpe2cmJkVfZShkLnByb3RvdHlwZSxnKSxoJiZFX2UoZCxoKSxP''@;'; + put 'put ''YmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oZCxbe2tleToic2V0U2l6ZSIsdmFsdWU6ZnVuY3Rpb24oaCl7dGhpcy5jdXJyZW50U2l6ZT10aGlzLm5leHRTaXplLHRoaXMubmV4dFNpemU9aH19LHtrZXk6InNldE9mZnNldCIsdmFsdWU6ZnVuY3Rp''@;'; + put 'put ''b24oaCl7dGhpcy5jdXJyZW50T2Zmc2V0PXRoaXMubmV4dE9mZnNldCx0aGlzLm5leHRPZmZzZXQ9aH19XSksZH0oKTtmdW5jdGlvbiBUX2UoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3Vy''@;'; + put 'put ''YWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX12YXIgY0dlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZCgpeyhmdW5jdGlvbiBzR2UoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJD''@;'; + put 'put ''YW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0pKHRoaXMsZCksdGhpcy5zaXplPW5ldyB4X2UsdGhpcy53b3JraW5nU3BhY2U9MCx0aGlzLnNoYXJlZFNpemU9bnVsbH1yZXR1cm4gZnVuY3Rpb24gdUdlKGQsZyxoKXtnJiZUX2UoZC5wcm90b3R5cGUsZyksaCYmVF9lKGQsaCks''@;'; + put 'put ''T2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGQsW3trZXk6InNldFNpemUiLHZhbHVlOmZ1bmN0aW9uKGgpe3RoaXMuc2l6ZS5zZXRTaXplKGgpfX0se2tleToic2V0T2Zmc2V0Iix2YWx1ZTpmdW5jdGlvbihoKXt0aGlzLnNpemUuc2V0T2Zmc2V0''@;'; + put 'put ''KGgpfX0se2tleToiZ2V0Vmlld1NpemUiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2l6ZX19LHtrZXk6ImlzU2hhcmVkIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnNoYXJlZFNpemUgaW5zdGFuY2VvZiB4X2V9fSx7a2V5OiJpc1BsYWNlT24iLHZhbHVlOmZ1bmN0aW9u''@;'; + put 'put ''KGgpe3JldHVybiB0aGlzLndvcmtpbmdTcGFjZT09PWh9fSx7a2V5OiJhcHBlbmQiLHZhbHVlOmZ1bmN0aW9uKGgpe3RoaXMud29ya2luZ1NwYWNlPTEsaC53b3JraW5nU3BhY2U9Mix0aGlzLnNoYXJlZFNpemU9aC5nZXRWaWV3U2l6ZSgpfX0se2tleToicHJlcGVuZCIsdmFsdWU6ZnVuY3Rp''@;'; + put 'put ''b24oaCl7dGhpcy53b3JraW5nU3BhY2U9MixoLndvcmtpbmdTcGFjZT0xLHRoaXMuc2hhcmVkU2l6ZT1oLmdldFZpZXdTaXplKCl9fV0pLGR9KCk7ZnVuY3Rpb24gSV9lKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJs''@;'; + put 'put ''ZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19dmFyIERfZT1mdW5jdGlvbigpe2Z1bmN0aW9uIGQoZyxoLHYpeyhmdW5jdGlvbiBmR2UoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0''@;'; + put 'put ''aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0pKHRoaXMsZCksdGhpcy5yb290Tm9kZT1nLHRoaXMubm9kZXNQb29sPWgsdGhpcy5zaXplU2V0PW5ldyBjR2UsdGhpcy5jaGlsZE5vZGVUeXBlPXYudG9VcHBlckNhc2UoKSx0aGlzLnZpc3Vh''@;'; + put 'put ''bEluZGV4PTAsdGhpcy5jb2xsZWN0ZWROb2Rlcz1bXX1yZXR1cm4gZnVuY3Rpb24gaEdlKGQsZyxoKXtnJiZJX2UoZC5wcm90b3R5cGUsZyksaCYmSV9lKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGQsW3trZXk6InNldFNpemUiLHZh''@;'; + put 'put ''bHVlOmZ1bmN0aW9uKGgpe3JldHVybiB0aGlzLnNpemVTZXQuc2V0U2l6ZShoKSx0aGlzfX0se2tleToic2V0T2Zmc2V0Iix2YWx1ZTpmdW5jdGlvbihoKXtyZXR1cm4gdGhpcy5zaXplU2V0LnNldE9mZnNldChoKSx0aGlzfX0se2tleToiaXNTaGFyZWRWaWV3U2V0Iix2YWx1ZTpmdW5jdGlv''@;'; + put 'put ''bigpe3JldHVybiB0aGlzLnNpemVTZXQuaXNTaGFyZWQoKX19LHtrZXk6ImdldE5vZGUiLHZhbHVlOmZ1bmN0aW9uKGgpe3JldHVybiBoPHRoaXMuY29sbGVjdGVkTm9kZXMubGVuZ3RoP3RoaXMuY29sbGVjdGVkTm9kZXNbaF06bnVsbH19LHtrZXk6ImdldEN1cnJlbnROb2RlIix2YWx1ZTpm''@;'; + put 'put ''dW5jdGlvbigpe3ZhciBoPXRoaXMuY29sbGVjdGVkTm9kZXMubGVuZ3RoO3JldHVybiBoPjA/dGhpcy5jb2xsZWN0ZWROb2Rlc1toLTFdOm51bGx9fSx7a2V5OiJnZXRSZW5kZXJlZENoaWxkQ291bnQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9dGhpcy5yb290Tm9kZSx2PXRoaXMuc2l6ZVNl''@;'; + put 'put ''dCx5PTA7aWYodGhpcy5pc1NoYXJlZFZpZXdTZXQoKSlmb3IodmFyIEM9aC5maXJzdEVsZW1lbnRDaGlsZDtDOyl7aWYoQy50YWdOYW1lPT09dGhpcy5jaGlsZE5vZGVUeXBlKXkrPTE7ZWxzZSBpZih2LmlzUGxhY2VPbigxKSlicmVhaztDPUMubmV4dEVsZW1lbnRTaWJsaW5nfWVsc2UgeT1o''@;'; + put 'put ''LmNoaWxkRWxlbWVudENvdW50O3JldHVybiB5fX0se2tleToic3RhcnQiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5jb2xsZWN0ZWROb2Rlcy5sZW5ndGg9MCx0aGlzLnZpc3VhbEluZGV4PTA7Zm9yKHZhciBoPXRoaXMucm9vdE5vZGUsdj10aGlzLnNpemVTZXQseT10aGlzLmlzU2hhcmVkVmll''@;'; + put 'put ''d1NldCgpLEk9di5nZXRWaWV3U2l6ZSgpLm5leHRTaXplLGo9dGhpcy5nZXRSZW5kZXJlZENoaWxkQ291bnQoKTtqPEk7KXt2YXIgdWU9dGhpcy5ub2Rlc1Bvb2woKTsheXx8eSYmdi5pc1BsYWNlT24oMik/aC5hcHBlbmRDaGlsZCh1ZSk6aC5pbnNlcnRCZWZvcmUodWUsaC5maXJzdENoaWxk''@;'; + put 'put ''KSxqKz0xfWZvcih2YXIgX2U9eSYmdi5pc1BsYWNlT24oMSk7aj5JOyloLnJlbW92ZUNoaWxkKF9lP2guZmlyc3RDaGlsZDpoLmxhc3RDaGlsZCksai09MX19LHtrZXk6InJlbmRlciIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD10aGlzLnJvb3ROb2RlLHY9dGhpcy5zaXplU2V0LHk9dGhpcy52''@;'; + put 'put ''aXN1YWxJbmRleDt0aGlzLmlzU2hhcmVkVmlld1NldCgpJiZ2LmlzUGxhY2VPbigyKSYmKHkrPXYuc2hhcmVkU2l6ZS5uZXh0U2l6ZSk7dmFyIEM9aC5jaGlsZE5vZGVzW3ldO2lmKEMudGFnTmFtZSE9PXRoaXMuY2hpbGROb2RlVHlwZSl7dmFyIEk9dGhpcy5ub2Rlc1Bvb2woKTtoLnJlcGxh''@;'; + put 'put ''Y2VDaGlsZChJLEMpLEM9SX10aGlzLmNvbGxlY3RlZE5vZGVzLnB1c2goQyksdGhpcy52aXN1YWxJbmRleCs9MX19LHtrZXk6ImVuZCIsdmFsdWU6ZnVuY3Rpb24oKXt9fV0pLGR9KCk7ZnVuY3Rpb24gWTNlKGQpe3JldHVybihZM2U9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJv''@;'; + put 'put ''bCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZyl7cmV0dXJuIHR5cGVvZiBnfTpmdW5jdGlvbihnKXtyZXR1cm4gZyYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZy5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZyE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9m''@;'; + put 'put ''IGd9KShkKX1mdW5jdGlvbiBkR2UoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX1mdW5jdGlvbiBMX2UoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVu''@;'; + put 'put ''dW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX1mdW5jdGlvbiBVM2UoZCxnKXtyZXR1cm4oVTNlPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Qu''@;'; + put 'put ''c2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHYseSl7cmV0dXJuIHYuX19wcm90b19fPXksdn0pKGQsZyl9ZnVuY3Rpb24gdkdlKGQsZyl7aWYoZyYmKCJvYmplY3QiPT09WTNlKGcpfHwiZnVuY3Rpb24iPT10eXBlb2YgZykpcmV0dXJuIGc7aWYodm9pZCAwIT09Zyl0aHJvdyBuZXcg''@;'; + put 'put ''VHlwZUVycm9yKCJEZXJpdmVkIGNvbnN0cnVjdG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0IG9yIHVuZGVmaW5lZCIpO3JldHVybiBmdW5jdGlvbiBBR2UoZCl7aWYodm9pZCAwPT09ZCl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBz''@;'; + put 'put ''dXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3JldHVybiBkfShkKX1mdW5jdGlvbiBoZWUoZCl7cmV0dXJuKGhlZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihoKXtyZXR1cm4gaC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90''@;'; + put 'put ''b3R5cGVPZihoKX0pKGQpfXZhciBPX2U9ZnVuY3Rpb24oZCl7IWZ1bmN0aW9uIGdHZShkLGcpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBnJiZudWxsIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiIpO2Qu''@;'; + put 'put ''cHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZyYmZy5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTpkLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxnJiZVM2UoZCxnKX0oaCxkKTt2YXIg''@;'; + put 'put ''Zz1mdW5jdGlvbiBtR2UoZCl7dmFyIGc9ZnVuY3Rpb24geUdlKCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBSZWZsZWN0fHwhUmVmbGVjdC5jb25zdHJ1Y3R8fFJlZmxlY3QuY29uc3RydWN0LnNoYW0pcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIFByb3h5KXJldHVybiEwO3RyeXty''@;'; + put 'put ''ZXR1cm4gQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10sZnVuY3Rpb24oKXt9KSksITB9Y2F0Y2goZCl7cmV0dXJuITF9fSgpO3JldHVybiBmdW5jdGlvbigpe3ZhciB5LHY9aGVlKGQpO2lmKGcpe3ZhciBDPWhlZSh0aGlzKS5jb25z''@;'; + put 'put ''dHJ1Y3Rvcjt5PVJlZmxlY3QuY29uc3RydWN0KHYsYXJndW1lbnRzLEMpfWVsc2UgeT12LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gdkdlKHRoaXMseSl9fShoKTtmdW5jdGlvbiBoKCl7cmV0dXJuIGRHZSh0aGlzLGgpLGcuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiBmdW5j''@;'; + put 'put ''dGlvbiBwR2UoZCxnLGgpe2cmJkxfZShkLnByb3RvdHlwZSxnKSxoJiZMX2UoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oaCxbe2tleToicHJlcGVuZFZpZXciLHZhbHVlOmZ1bmN0aW9uKHkpe3JldHVybiB0aGlzLnNpemVTZXQucHJl''@;'; + put 'put ''cGVuZCh5LnNpemVTZXQpLHkuc2l6ZVNldC5hcHBlbmQodGhpcy5zaXplU2V0KSx0aGlzfX0se2tleToiYXBwZW5kVmlldyIsdmFsdWU6ZnVuY3Rpb24oeSl7cmV0dXJuIHRoaXMuc2l6ZVNldC5hcHBlbmQoeS5zaXplU2V0KSx5LnNpemVTZXQucHJlcGVuZCh0aGlzLnNpemVTZXQpLHRoaXN9''@;'; + put 'put ''fV0pLGh9KERfZSk7ZnVuY3Rpb24gUl9lKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVy''@;'; + put 'put ''dHkoZCx2LmtleSx2KX19dmFyIF9HZT1mdW5jdGlvbigpe2Z1bmN0aW9uIGQoZyl7KGZ1bmN0aW9uIHdHZShkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSkodGhpcyxkKSx0aGlzLm5vZGVU''@;'; + put 'put ''eXBlPWcudG9VcHBlckNhc2UoKX1yZXR1cm4gZnVuY3Rpb24gYkdlKGQsZyxoKXtnJiZSX2UoZC5wcm90b3R5cGUsZyksaCYmUl9lKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGQsW3trZXk6InNldFJvb3REb2N1bWVudCIsdmFsdWU6''@;'; + put 'put ''ZnVuY3Rpb24oaCl7dGhpcy5yb290RG9jdW1lbnQ9aH19LHtrZXk6Im9idGFpbiIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yb290RG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0aGlzLm5vZGVUeXBlKX19XSksZH0oKTtmdW5jdGlvbiBCX2UoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVu''@;'; + put 'put ''Z3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX12YXIgUVo9ZnVuY3Rpb24oKXtmdW5jdGlvbiBkKGcsaCl7''@;'; + put 'put ''KGZ1bmN0aW9uIENHZShkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSkodGhpcyxkKSx0aGlzLm5vZGVzUG9vbD0ic3RyaW5nIj09dHlwZW9mIGc/bmV3IF9HZShnKTpudWxsLHRoaXMubm9k''@;'; + put 'put ''ZVR5cGU9Zyx0aGlzLnJvb3ROb2RlPWgsdGhpcy50YWJsZT1udWxsLHRoaXMucmVuZGVyZWROb2Rlcz0wfXJldHVybiBmdW5jdGlvbiBrR2UoZCxnLGgpe2cmJkJfZShkLnByb3RvdHlwZSxnKSxoJiZCX2UoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFi''@;'; + put 'put ''bGU6ITF9KX0oZCxbe2tleToic2V0VGFibGUiLHZhbHVlOmZ1bmN0aW9uKGgpe3RoaXMubm9kZXNQb29sJiZ0aGlzLm5vZGVzUG9vbC5zZXRSb290RG9jdW1lbnQoaC5yb290RG9jdW1lbnQpLHRoaXMudGFibGU9aH19LHtrZXk6ImFkanVzdCIsdmFsdWU6ZnVuY3Rpb24oKXt9fSx7a2V5OiJy''@;'; + put 'put ''ZW5kZXIiLHZhbHVlOmZ1bmN0aW9uKCl7fX1dKSxkfSgpO2Z1bmN0aW9uIFEzZShkKXtyZXR1cm4oUTNlPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGcpe3JldHVybiB0eXBlb2YgZ306ZnVuY3Rpb24oZyl7cmV0''@;'; + put 'put ''dXJuIGcmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmcuY29uc3RydWN0b3I9PT1TeW1ib2wmJmchPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBnfSkoZCl9ZnVuY3Rpb24gUF9lKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVt''@;'; + put 'put ''ZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19ZnVuY3Rpb24gSjNlKGQsZyl7cmV0dXJuKEozZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNl''@;'; + put 'put ''dFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbih2LHkpe3JldHVybiB2Ll9fcHJvdG9fXz15LHZ9KShkLGcpfWZ1bmN0aW9uIFRHZShkLGcpe2lmKGcmJigib2JqZWN0Ij09PVEzZShnKXx8ImZ1bmN0aW9uIj09dHlwZW9mIGcpKXJldHVybiBnO2lmKHZvaWQgMCE9PWcpdGhyb3cgbmV3IFR5''@;'; + put 'put ''cGVFcnJvcigiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWQiKTtyZXR1cm4gZnVuY3Rpb24gSUdlKGQpe2lmKHZvaWQgMD09PWQpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3Vw''@;'; + put 'put ''ZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4gZH0oZCl9ZnVuY3Rpb24gZGVlKGQpe3JldHVybihkZWU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24oaCl7cmV0dXJuIGguX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90''@;'; + put 'put ''eXBlT2YoaCl9KShkKX12YXIgTEdlPWZ1bmN0aW9uKGQpeyFmdW5jdGlvbiBFR2UoZCxnKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZyYmbnVsbCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTtkLnBy''@;'; + put 'put ''b3RvdHlwZT1PYmplY3QuY3JlYXRlKGcmJmcucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6ZCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZyYmSjNlKGQsZyl9KGgsZCk7dmFyIGc9''@;'; + put 'put ''ZnVuY3Rpb24geEdlKGQpe3ZhciBnPWZ1bmN0aW9uIERHZSgpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0fHxSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBQcm94eSlyZXR1cm4hMDt0cnl7cmV0''@;'; + put 'put ''dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLGZ1bmN0aW9uKCl7fSkpLCEwfWNhdGNoKGQpe3JldHVybiExfX0oKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgeSx2PWRlZShkKTtpZihnKXt2YXIgQz1kZWUodGhpcykuY29uc3Ry''@;'; + put 'put ''dWN0b3I7eT1SZWZsZWN0LmNvbnN0cnVjdCh2LGFyZ3VtZW50cyxDKX1lbHNlIHk9di5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIFRHZSh0aGlzLHkpfX0oaCk7ZnVuY3Rpb24gaCgpe3ZhciB2O3JldHVybiBmdW5jdGlvbiBTR2UoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJv''@;'; + put 'put ''dyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0odGhpcyxoKSwodj1nLmNhbGwodGhpcywiVEgiKSkub3JkZXJWaWV3cz1uZXcgV2Vha01hcCx2LnNvdXJjZVJvd0luZGV4PTAsdn1yZXR1cm4gZnVuY3Rpb24gTUdlKGQsZyxoKXtnJiZQX2UoZC5w''@;'; + put 'put ''cm90b3R5cGUsZyksaCYmUF9lKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGgsW3trZXk6Im9idGFpbk9yZGVyVmlldyIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEksQz10aGlzO3JldHVybiB0aGlzLm9yZGVyVmlld3MuaGFzKHkpP0k9''@;'; + put 'put ''dGhpcy5vcmRlclZpZXdzLmdldCh5KTooST1uZXcgT19lKHksZnVuY3Rpb24oail7cmV0dXJuIEMubm9kZXNQb29sLm9idGFpbihDLnNvdXJjZVJvd0luZGV4LGopfSx0aGlzLm5vZGVUeXBlKSx0aGlzLm9yZGVyVmlld3Muc2V0KHksSSkpLEl9fSx7a2V5OiJyZW5kZXIiLHZhbHVlOmZ1bmN0''@;'; + put 'put ''aW9uKCl7Zm9yKHZhciB5PXRoaXMudGFibGUsQz15LnJvd3NUb1JlbmRlcixJPXkucm93SGVhZGVyRnVuY3Rpb25zLGo9eS5yb3dIZWFkZXJzQ291bnQsdWU9eS5yb3dzLF9lPXkuY2VsbHMsQmU9MDtCZTxDO0JlKyspe3ZhciBOZT10aGlzLnRhYmxlLnJlbmRlcmVkUm93VG9Tb3VyY2UoQmUp''@;'; + put 'put ''LEtlPXVlLmdldFJlbmRlcmVkTm9kZShCZSk7dGhpcy5zb3VyY2VSb3dJbmRleD1OZTt2YXIgZHQ9dGhpcy5vYnRhaW5PcmRlclZpZXcoS2UpLE90PV9lLm9idGFpbk9yZGVyVmlldyhLZSk7ZHQuYXBwZW5kVmlldyhPdCkuc2V0U2l6ZShqKS5zZXRPZmZzZXQodGhpcy50YWJsZS5yZW5kZXJl''@;'; + put 'put ''ZENvbHVtblRvU291cmNlKDApKS5zdGFydCgpO2Zvcih2YXIgJHQ9MDskdDxqOyR0Kyspe2R0LnJlbmRlcigpO3ZhciBmbj1kdC5nZXRDdXJyZW50Tm9kZSgpO2ZuLmNsYXNzTmFtZT0iIixmbi5yZW1vdmVBdHRyaWJ1dGUoInN0eWxlIiksSVskdF0oTmUsZm4sJHQpfWR0LmVuZCgpfX19XSks''@;'; + put 'put ''aH0oUVopO2Z1bmN0aW9uIFgzZShkKXtyZXR1cm4oWDNlPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGcpe3JldHVybiB0eXBlb2YgZ306ZnVuY3Rpb24oZyl7cmV0dXJuIGcmJiJmdW5jdGlvbiI9PXR5cGVvZiBT''@;'; + put 'put ''eW1ib2wmJmcuY29uc3RydWN0b3I9PT1TeW1ib2wmJmchPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBnfSkoZCl9ZnVuY3Rpb24gRl9lKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5j''@;'; + put 'put ''b25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19ZnVuY3Rpb24gSzNlKGQsZyl7cmV0dXJuKEszZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlv''@;'; + put 'put ''bih2LHkpe3JldHVybiB2Ll9fcHJvdG9fXz15LHZ9KShkLGcpfWZ1bmN0aW9uIEZHZShkLGcpe2lmKGcmJigib2JqZWN0Ij09PVgzZShnKXx8ImZ1bmN0aW9uIj09dHlwZW9mIGcpKXJldHVybiBnO2lmKHZvaWQgMCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiRGVyaXZlZCBjb25zdHJ1Y3Rv''@;'; + put 'put ''cnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWQiKTtyZXR1cm4gZnVuY3Rpb24gSEdlKGQpe2lmKHZvaWQgMD09PWQpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTty''@;'; + put 'put ''ZXR1cm4gZH0oZCl9ZnVuY3Rpb24gcGVlKGQpe3JldHVybihwZWU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24oaCl7cmV0dXJuIGguX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YoaCl9KShkKX12YXIgVkdlPWZ1bmN0''@;'; + put 'put ''aW9uKGQpeyFmdW5jdGlvbiBCR2UoZCxnKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZyYmbnVsbCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTtkLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGcmJmcu''@;'; + put 'put ''cHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6ZCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZyYmSzNlKGQsZyl9KGgsZCk7dmFyIGc9ZnVuY3Rpb24gUEdlKGQpe3ZhciBnPWZ1bmN0''@;'; + put 'put ''aW9uIE5HZSgpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0fHxSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBQcm94eSlyZXR1cm4hMDt0cnl7cmV0dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVl''@;'; + put 'put ''T2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLGZ1bmN0aW9uKCl7fSkpLCEwfWNhdGNoKGQpe3JldHVybiExfX0oKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgeSx2PXBlZShkKTtpZihnKXt2YXIgQz1wZWUodGhpcykuY29uc3RydWN0b3I7eT1SZWZsZWN0LmNvbnN0cnVjdCh2''@;'; + put 'put ''LGFyZ3VtZW50cyxDKX1lbHNlIHk9di5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIEZHZSh0aGlzLHkpfX0oaCk7ZnVuY3Rpb24gaCh2KXtyZXR1cm4gZnVuY3Rpb24gT0dlKGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBj''@;'; + put 'put ''bGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsaCksZy5jYWxsKHRoaXMsbnVsbCx2KX1yZXR1cm4gZnVuY3Rpb24gUkdlKGQsZyxoKXtnJiZGX2UoZC5wcm90b3R5cGUsZyksaCYmRl9lKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGgs''@;'; + put 'put ''W3trZXk6ImFkanVzdCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzLnRhYmxlLEM9eS5jb2x1bW5IZWFkZXJzQ291bnQsaj10aGlzLnJvb3ROb2RlLmZpcnN0Q2hpbGQ7aWYoQyl7Zm9yKHZhciBfZT10aGlzLnRhYmxlLmNvbHVtbnNUb1JlbmRlcit5LnJvd0hlYWRlcnNDb3VudCxCZT0w''@;'; + put 'put ''LE5lPUM7QmU8TmU7QmUrKyl7Zm9yKChqPXRoaXMucm9vdE5vZGUuY2hpbGROb2Rlc1tCZV0pfHwoaj10aGlzLnRhYmxlLnJvb3REb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ciIpLHRoaXMucm9vdE5vZGUuYXBwZW5kQ2hpbGQoaikpLHRoaXMucmVuZGVyZWROb2Rlcz1qLmNoaWxkTm9kZXMu''@;'; + put 'put ''bGVuZ3RoO3RoaXMucmVuZGVyZWROb2RlczxfZTspai5hcHBlbmRDaGlsZCh0aGlzLnRhYmxlLnJvb3REb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0aCIpKSx0aGlzLnJlbmRlcmVkTm9kZXMrPTE7Zm9yKDt0aGlzLnJlbmRlcmVkTm9kZXM+X2U7KWoucmVtb3ZlQ2hpbGQoai5sYXN0Q2hpbGQp''@;'; + put 'put ''LHRoaXMucmVuZGVyZWROb2Rlcy09MX12YXIgS2U9dGhpcy5yb290Tm9kZS5jaGlsZE5vZGVzLmxlbmd0aDtpZihLZT5DKWZvcih2YXIgZHQ9QztkdDxLZTtkdCsrKXRoaXMucm9vdE5vZGUucmVtb3ZlQ2hpbGQodGhpcy5yb290Tm9kZS5sYXN0Q2hpbGQpfWVsc2UgaiYmRHAoail9fSx7a2V5''@;'; + put 'put ''OiJyZW5kZXIiLHZhbHVlOmZ1bmN0aW9uKCl7Zm9yKHZhciB5PXRoaXMudGFibGUuY29sdW1uSGVhZGVyc0NvdW50LEM9MDtDPHk7Qys9MSlmb3IodmFyIEk9dGhpcy50YWJsZSxqPUkuY29sdW1uSGVhZGVyRnVuY3Rpb25zLHVlPUkuY29sdW1uc1RvUmVuZGVyLF9lPUkucm93SGVhZGVyc0Nv''@;'; + put 'put ''dW50LEJlPXRoaXMucm9vdE5vZGUuY2hpbGROb2Rlc1tDXSxOZT0tMSpfZTtOZTx1ZTtOZSs9MSl7dmFyIEtlPXRoaXMudGFibGUucmVuZGVyZWRDb2x1bW5Ub1NvdXJjZShOZSksZHQ9QmUuY2hpbGROb2Rlc1tOZStfZV07ZHQuY2xhc3NOYW1lPSIiLGR0LnJlbW92ZUF0dHJpYnV0ZSgic3R5''@;'; + put 'put ''bGUiKSxqW0NdKEtlLGR0LEMpfX19XSksaH0oUVopO2Z1bmN0aW9uICQzZShkKXtyZXR1cm4oJDNlPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGcpe3JldHVybiB0eXBlb2YgZ306ZnVuY3Rpb24oZyl7cmV0dXJu''@;'; + put 'put ''IGcmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmcuY29uc3RydWN0b3I9PT1TeW1ib2wmJmchPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBnfSkoZCl9ZnVuY3Rpb24gSF9lKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJh''@;'; + put 'put ''YmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19ZnVuY3Rpb24gcTNlKGQsZyl7cmV0dXJuKHEzZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFBy''@;'; + put 'put ''b3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbih2LHkpe3JldHVybiB2Ll9fcHJvdG9fXz15LHZ9KShkLGcpfWZ1bmN0aW9uIFdHZShkLGcpe2lmKGcmJigib2JqZWN0Ij09PSQzZShnKXx8ImZ1bmN0aW9uIj09dHlwZW9mIGcpKXJldHVybiBnO2lmKHZvaWQgMCE9PWcpdGhyb3cgbmV3IFR5cGVF''@;'; + put 'put ''cnJvcigiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWQiKTtyZXR1cm4gZnVuY3Rpb24gWUdlKGQpe2lmKHZvaWQgMD09PWQpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIo''@;'; + put 'put ''KSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4gZH0oZCl9ZnVuY3Rpb24gZ2VlKGQpe3JldHVybihnZWU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24oaCl7cmV0dXJuIGguX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBl''@;'; + put 'put ''T2YoaCl9KShkKX12YXIgTl9lLFFHZT1mdW5jdGlvbihkKXshZnVuY3Rpb24gekdlKGQsZyl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGcmJm51bGwhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uIik7ZC5w''@;'; + put 'put ''cm90b3R5cGU9T2JqZWN0LmNyZWF0ZShnJiZnLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOmQsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGcmJnEzZShkLGcpfShoLGQpO3ZhciBn''@;'; + put 'put ''PWZ1bmN0aW9uIEdHZShkKXt2YXIgZz1mdW5jdGlvbiBVR2UoKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIFJlZmxlY3R8fCFSZWZsZWN0LmNvbnN0cnVjdHx8UmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT10eXBlb2YgUHJveHkpcmV0dXJuITA7dHJ5e3Jl''@;'; + put 'put ''dHVybiBCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSxmdW5jdGlvbigpe30pKSwhMH1jYXRjaChkKXtyZXR1cm4hMX19KCk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHksdj1nZWUoZCk7aWYoZyl7dmFyIEM9Z2VlKHRoaXMpLmNvbnN0''@;'; + put 'put ''cnVjdG9yO3k9UmVmbGVjdC5jb25zdHJ1Y3Qodixhcmd1bWVudHMsQyl9ZWxzZSB5PXYuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBXR2UodGhpcyx5KX19KGgpO2Z1bmN0aW9uIGgodil7cmV0dXJuIGZ1bmN0aW9uIGpHZShkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5l''@;'; + put 'put ''dyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSh0aGlzLGgpLGcuY2FsbCh0aGlzLG51bGwsdil9cmV0dXJuIGZ1bmN0aW9uIFpHZShkLGcsaCl7ZyYmSF9lKGQucHJvdG90eXBlLGcpLGgmJkhfZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJw''@;'; + put 'put ''cm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShoLFt7a2V5OiJhZGp1c3QiLHZhbHVlOmZ1bmN0aW9uKCl7Zm9yKHZhciB5PXRoaXMudGFibGUsaj15LmNvbHVtbnNUb1JlbmRlcit5LnJvd0hlYWRlcnNDb3VudDt0aGlzLnJlbmRlcmVkTm9kZXM8ajspdGhpcy5yb290Tm9kZS5hcHBlbmRDaGls''@;'; + put 'put ''ZCh0aGlzLnRhYmxlLnJvb3REb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjb2wiKSksdGhpcy5yZW5kZXJlZE5vZGVzKz0xO2Zvcig7dGhpcy5yZW5kZXJlZE5vZGVzPmo7KXRoaXMucm9vdE5vZGUucmVtb3ZlQ2hpbGQodGhpcy5yb290Tm9kZS5sYXN0Q2hpbGQpLHRoaXMucmVuZGVyZWROb2Rl''@;'; + put 'put ''cy09MX19LHtrZXk6InJlbmRlciIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmFkanVzdCgpO2Zvcih2YXIgeT10aGlzLnRhYmxlLEM9eS5jb2x1bW5zVG9SZW5kZXIsST15LnJvd0hlYWRlcnNDb3VudCxqPTA7ajxJO2orKyl7dmFyIHVlPXRoaXMudGFibGUucmVuZGVyZWRDb2x1bW5Ub1NvdXJj''@;'; + put 'put ''ZShqKSxfZT10aGlzLnRhYmxlLmNvbHVtblV0aWxzLmdldEhlYWRlcldpZHRoKHVlKTt0aGlzLnJvb3ROb2RlLmNoaWxkTm9kZXNbal0uc3R5bGUud2lkdGg9IiIuY29uY2F0KF9lLCJweCIpfWZvcih2YXIgQmU9MDtCZTxDO0JlKyspe3ZhciBOZT10aGlzLnRhYmxlLnJlbmRlcmVkQ29sdW1u''@;'; + put 'put ''VG9Tb3VyY2UoQmUpLEtlPXRoaXMudGFibGUuY29sdW1uVXRpbHMuZ2V0U3RyZXRjaGVkQ29sdW1uV2lkdGgoTmUpO3RoaXMucm9vdE5vZGUuY2hpbGROb2Rlc1tCZStJXS5zdHlsZS53aWR0aD0iIi5jb25jYXQoS2UsInB4Iil9dmFyIGR0PXRoaXMucm9vdE5vZGUuZmlyc3RDaGlsZDtkdCYm''@;'; + put 'put ''TzAoZHQsInJvd0hlYWRlciIpfX1dKSxofShRWik7ZnVuY3Rpb24gZWRlKGQpe3JldHVybihlZGU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZyl7cmV0dXJuIHR5cGVvZiBnfTpmdW5jdGlvbihnKXtyZXR1cm4g''@;'; + put 'put ''ZyYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZy5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZyE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGd9KShkKX1mdW5jdGlvbiBWX2UoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFi''@;'; + put 'put ''bGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX1mdW5jdGlvbiB0ZGUoZCxnKXtyZXR1cm4odGRlPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJv''@;'; + put 'put ''dG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHYseSl7cmV0dXJuIHYuX19wcm90b19fPXksdn0pKGQsZyl9ZnVuY3Rpb24gZVdlKGQsZyl7aWYoZyYmKCJvYmplY3QiPT09ZWRlKGcpfHwiZnVuY3Rpb24iPT10eXBlb2YgZykpcmV0dXJuIGc7aWYodm9pZCAwIT09Zyl0aHJvdyBuZXcgVHlwZUVy''@;'; + put 'put ''cm9yKCJEZXJpdmVkIGNvbnN0cnVjdG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0IG9yIHVuZGVmaW5lZCIpO3JldHVybiBmdW5jdGlvbiB0V2UoZCl7aWYodm9pZCAwPT09ZCl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigp''@;'; + put 'put ''IGhhc24ndCBiZWVuIGNhbGxlZCIpO3JldHVybiBkfShkKX1mdW5jdGlvbiBtZWUoZCl7cmV0dXJuKG1lZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihoKXtyZXR1cm4gaC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVP''@;'; + put 'put ''ZihoKX0pKGQpfXZhciBqX2U9ITEscldlPWZ1bmN0aW9uKGQpeyFmdW5jdGlvbiAkR2UoZCxnKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZyYmbnVsbCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTtk''@;'; + put 'put ''LnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGcmJmcucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6ZCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZyYmdGRlKGQsZyl9KGgsZCk7dmFy''@;'; + put 'put ''IGc9ZnVuY3Rpb24gcUdlKGQpe3ZhciBnPWZ1bmN0aW9uIG5XZSgpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0fHxSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBQcm94eSlyZXR1cm4hMDt0cnl7''@;'; + put 'put ''cmV0dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLGZ1bmN0aW9uKCl7fSkpLCEwfWNhdGNoKGQpe3JldHVybiExfX0oKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgeSx2PW1lZShkKTtpZihnKXt2YXIgQz1tZWUodGhpcykuY29u''@;'; + put 'put ''c3RydWN0b3I7eT1SZWZsZWN0LmNvbnN0cnVjdCh2LGFyZ3VtZW50cyxDKX1lbHNlIHk9di5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIGVXZSh0aGlzLHkpfX0oaCk7ZnVuY3Rpb24gaCh2KXt2YXIgeTtyZXR1cm4gZnVuY3Rpb24gWEdlKGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykp''@;'; + put 'put ''dGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsaCksKHk9Zy5jYWxsKHRoaXMsIlRSIix2KSkub3JkZXJWaWV3PW5ldyBEX2UodixmdW5jdGlvbihDKXtyZXR1cm4geS5ub2Rlc1Bvb2wub2J0YWluKEMpfSx5Lm5vZGVUeXBlKSx5''@;'; + put 'put ''fXJldHVybiBmdW5jdGlvbiBLR2UoZCxnLGgpe2cmJlZfZShkLnByb3RvdHlwZSxnKSxoJiZWX2UoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oaCxbe2tleToiZ2V0UmVuZGVyZWROb2RlIix2YWx1ZTpmdW5jdGlvbih5KXtyZXR1cm4g''@;'; + put 'put ''dGhpcy5vcmRlclZpZXcuZ2V0Tm9kZSh5KX19LHtrZXk6InJlbmRlciIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzLnRhYmxlLnJvd3NUb1JlbmRlcjshal9lJiZ5PjFlMyYmKGpfZT0hMCxsMShQMihOX2V8fChOX2U9ZnVuY3Rpb24gSkdlKGQsZyl7cmV0dXJuIGd8fChnPWQuc2xpY2Uo''@;'; + put 'put ''MCkpLE9iamVjdC5mcmVlemUoT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZCx7cmF3Ont2YWx1ZTpPYmplY3QuZnJlZXplKGcpfX0pKX0oWydQZXJmb3JtYW5jZSB0aXA6IEhhbmRzb250YWJsZSByZW5kZXJlZCBtb3JlIHRoYW4gMTAwMCB2aXNpYmxlIHJvd3MuIENvbnNpZGVyIGxpbWl0aW5n''@;'; + put 'put ''IFxuICAgICAgICB0aGUgbnVtYmVyIG9mIHJlbmRlcmVkIHJvd3MgYnkgc3BlY2lmeWluZyB0aGUgdGFibGUgaGVpZ2h0IGFuZC9vciB0dXJuaW5nIG9mZiB0aGUgInJlbmRlckFsbFJvd3MiIG9wdGlvbi4nXSxbJ1BlcmZvcm1hbmNlIHRpcDogSGFuZHNvbnRhYmxlIHJlbmRlcmVkIG1vcmUg''@;'; + put 'put ''dGhhbiAxMDAwIHZpc2libGUgcm93cy4gQ29uc2lkZXIgbGltaXRpbmdcXHgyMFxuICAgICAgICB0aGUgbnVtYmVyIG9mIHJlbmRlcmVkIHJvd3MgYnkgc3BlY2lmeWluZyB0aGUgdGFibGUgaGVpZ2h0IGFuZC9vciB0dXJuaW5nIG9mZiB0aGUgInJlbmRlckFsbFJvd3MiIG9wdGlvbi4nXSkp''@;'; + put 'put ''KSkpLHRoaXMub3JkZXJWaWV3LnNldFNpemUoeSkuc2V0T2Zmc2V0KHRoaXMudGFibGUucmVuZGVyZWRSb3dUb1NvdXJjZSgwKSkuc3RhcnQoKTtmb3IodmFyIEM9MDtDPHk7QysrKXRoaXMub3JkZXJWaWV3LnJlbmRlcigpO3RoaXMub3JkZXJWaWV3LmVuZCgpfX1dKSxofShRWik7ZnVuY3Rp''@;'; + put 'put ''b24gbmRlKGQpe3JldHVybihuZGU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZyl7cmV0dXJuIHR5cGVvZiBnfTpmdW5jdGlvbihnKXtyZXR1cm4gZyYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZy5jb25z''@;'; + put 'put ''dHJ1Y3Rvcj09PVN5bWJvbCYmZyE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGd9KShkKX1mdW5jdGlvbiBaX2UoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0h''@;'; + put 'put ''MCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX1mdW5jdGlvbiByZGUoZCxnKXtyZXR1cm4ocmRlPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHYseSl7cmV0dXJu''@;'; + put 'put ''IHYuX19wcm90b19fPXksdn0pKGQsZyl9ZnVuY3Rpb24gc1dlKGQsZyl7aWYoZyYmKCJvYmplY3QiPT09bmRlKGcpfHwiZnVuY3Rpb24iPT10eXBlb2YgZykpcmV0dXJuIGc7aWYodm9pZCAwIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJEZXJpdmVkIGNvbnN0cnVjdG9ycyBtYXkgb25seSBy''@;'; + put 'put ''ZXR1cm4gb2JqZWN0IG9yIHVuZGVmaW5lZCIpO3JldHVybiBmdW5jdGlvbiB1V2UoZCl7aWYodm9pZCAwPT09ZCl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3JldHVybiBkfShkKX1m''@;'; + put 'put ''dW5jdGlvbiB2ZWUoZCl7cmV0dXJuKHZlZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihoKXtyZXR1cm4gaC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihoKX0pKGQpfXZhciBmV2U9ZnVuY3Rpb24oZCl7IWZ1bmN0''@;'; + put 'put ''aW9uIGFXZShkLGcpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBnJiZudWxsIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiIpO2QucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZyYmZy5wcm90b3R5cGUse2Nv''@;'; + put 'put ''bnN0cnVjdG9yOnt2YWx1ZTpkLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxnJiZyZGUoZCxnKX0oaCxkKTt2YXIgZz1mdW5jdGlvbiBsV2UoZCl7dmFyIGc9ZnVuY3Rpb24gY1dlKCl7aWYo''@;'; + put 'put ''InVuZGVmaW5lZCI9PXR5cGVvZiBSZWZsZWN0fHwhUmVmbGVjdC5jb25zdHJ1Y3R8fFJlZmxlY3QuY29uc3RydWN0LnNoYW0pcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIFByb3h5KXJldHVybiEwO3RyeXtyZXR1cm4gQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxl''@;'; + put 'put ''Y3QuY29uc3RydWN0KEJvb2xlYW4sW10sZnVuY3Rpb24oKXt9KSksITB9Y2F0Y2goZCl7cmV0dXJuITF9fSgpO3JldHVybiBmdW5jdGlvbigpe3ZhciB5LHY9dmVlKGQpO2lmKGcpe3ZhciBDPXZlZSh0aGlzKS5jb25zdHJ1Y3Rvcjt5PVJlZmxlY3QuY29uc3RydWN0KHYsYXJndW1lbnRzLEMp''@;'; + put 'put ''fWVsc2UgeT12LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gc1dlKHRoaXMseSl9fShoKTtmdW5jdGlvbiBoKCl7dmFyIHY7cmV0dXJuIGZ1bmN0aW9uIGlXZShkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMg''@;'; + put 'put ''YSBmdW5jdGlvbiIpfSh0aGlzLGgpLCh2PWcuY2FsbCh0aGlzLCJURCIpKS5vcmRlclZpZXdzPW5ldyBXZWFrTWFwLHYuc291cmNlUm93SW5kZXg9MCx2fXJldHVybiBmdW5jdGlvbiBvV2UoZCxnLGgpe2cmJlpfZShkLnByb3RvdHlwZSxnKSxoJiZaX2UoZCxoKSxPYmplY3QuZGVmaW5lUHJv''@;'; + put 'put ''cGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oaCxbe2tleToib2J0YWluT3JkZXJWaWV3Iix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgSSxDPXRoaXM7cmV0dXJuIHRoaXMub3JkZXJWaWV3cy5oYXMoeSk/ST10aGlzLm9yZGVyVmlld3MuZ2V0KHkpOihJPW5ldyBPX2UoeSxmdW5j''@;'; + put 'put ''dGlvbihqKXtyZXR1cm4gQy5ub2Rlc1Bvb2wub2J0YWluKEMuc291cmNlUm93SW5kZXgsail9LHRoaXMubm9kZVR5cGUpLHRoaXMub3JkZXJWaWV3cy5zZXQoeSxJKSksSX19LHtrZXk6InJlbmRlciIsdmFsdWU6ZnVuY3Rpb24oKXtmb3IodmFyIHk9dGhpcy50YWJsZSxDPXkucm93c1RvUmVu''@;'; + put 'put ''ZGVyLEk9eS5jb2x1bW5zVG9SZW5kZXIsaj15LnJvd3MsdWU9eS5yb3dIZWFkZXJzLF9lPTA7X2U8QztfZSsrKXt2YXIgQmU9dGhpcy50YWJsZS5yZW5kZXJlZFJvd1RvU291cmNlKF9lKSxOZT1qLmdldFJlbmRlcmVkTm9kZShfZSk7dGhpcy5zb3VyY2VSb3dJbmRleD1CZTt2YXIgS2U9dGhp''@;'; + put 'put ''cy5vYnRhaW5PcmRlclZpZXcoTmUpLGR0PXVlLm9idGFpbk9yZGVyVmlldyhOZSk7S2UucHJlcGVuZFZpZXcoZHQpLnNldFNpemUoSSkuc2V0T2Zmc2V0KHRoaXMudGFibGUucmVuZGVyZWRDb2x1bW5Ub1NvdXJjZSgwKSkuc3RhcnQoKTtmb3IodmFyIE90PTA7T3Q8STtPdCsrKXtLZS5yZW5k''@;'; + put 'put ''ZXIoKTt2YXIgJHQ9S2UuZ2V0Q3VycmVudE5vZGUoKSxmbj10aGlzLnRhYmxlLnJlbmRlcmVkQ29sdW1uVG9Tb3VyY2UoT3QpO3RsKCR0LCJoaWRlIil8fCgkdC5jbGFzc05hbWU9IiIpLCR0LnJlbW92ZUF0dHJpYnV0ZSgic3R5bGUiKSwkdC5yZW1vdmVBdHRyaWJ1dGUoImRpciIpLHRoaXMu''@;'; + put 'put ''dGFibGUuY2VsbFJlbmRlcmVyKEJlLGZuLCR0KX1LZS5lbmQoKX19fV0pLGh9KFFaKTtmdW5jdGlvbiBoV2UoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX1mdW5jdGlvbiB6X2UoZCxnKXtm''@;'; + put 'put ''b3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX12YXIgcFdlPWZ1bmN0aW9u''@;'; + put 'put ''KCl7ZnVuY3Rpb24gZChnKXt2YXIgaD1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e30sdj1oLmNlbGxSZW5kZXJlcjtoV2UodGhpcyxkKSx0aGlzLnJvb3ROb2RlPWcsdGhpcy5yb290RG9jdW1lbnQ9dGhpcy5yb290Tm9kZS5vd25lckRv''@;'; + put 'put ''Y3VtZW50LHRoaXMucm93SGVhZGVycz1udWxsLHRoaXMuY29sdW1uSGVhZGVycz1udWxsLHRoaXMuY29sR3JvdXA9bnVsbCx0aGlzLnJvd3M9bnVsbCx0aGlzLmNlbGxzPW51bGwsdGhpcy5yb3dGaWx0ZXI9bnVsbCx0aGlzLmNvbHVtbkZpbHRlcj1udWxsLHRoaXMucm93VXRpbHM9bnVsbCx0''@;'; + put 'put ''aGlzLmNvbHVtblV0aWxzPW51bGwsdGhpcy5yb3dzVG9SZW5kZXI9MCx0aGlzLmNvbHVtbnNUb1JlbmRlcj0wLHRoaXMucm93SGVhZGVyRnVuY3Rpb25zPVtdLHRoaXMucm93SGVhZGVyc0NvdW50PTAsdGhpcy5jb2x1bW5IZWFkZXJGdW5jdGlvbnM9W10sdGhpcy5jb2x1bW5IZWFkZXJzQ291''@;'; + put 'put ''bnQ9MCx0aGlzLmNlbGxSZW5kZXJlcj12fXJldHVybiBmdW5jdGlvbiBkV2UoZCxnLGgpe2cmJnpfZShkLnByb3RvdHlwZSxnKSxoJiZ6X2UoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oZCxbe2tleToic2V0QXhpc1V0aWxzIix2YWx1''@;'; + put 'put ''ZTpmdW5jdGlvbihoLHYpe3RoaXMucm93VXRpbHM9aCx0aGlzLmNvbHVtblV0aWxzPXZ9fSx7a2V5OiJzZXRWaWV3cG9ydFNpemUiLHZhbHVlOmZ1bmN0aW9uKGgsdil7dGhpcy5yb3dzVG9SZW5kZXI9aCx0aGlzLmNvbHVtbnNUb1JlbmRlcj12fX0se2tleToic2V0RmlsdGVycyIsdmFsdWU6''@;'; + put 'put ''ZnVuY3Rpb24oaCx2KXt0aGlzLnJvd0ZpbHRlcj1oLHRoaXMuY29sdW1uRmlsdGVyPXZ9fSx7a2V5OiJzZXRIZWFkZXJDb250ZW50UmVuZGVyZXJzIix2YWx1ZTpmdW5jdGlvbihoLHYpe3RoaXMucm93SGVhZGVyRnVuY3Rpb25zPWgsdGhpcy5yb3dIZWFkZXJzQ291bnQ9aC5sZW5ndGgsdGhp''@;'; + put 'put ''cy5jb2x1bW5IZWFkZXJGdW5jdGlvbnM9dix0aGlzLmNvbHVtbkhlYWRlcnNDb3VudD12Lmxlbmd0aH19LHtrZXk6InNldFJlbmRlcmVycyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06e30sdj1o''@;'; + put 'put ''LnJvd0hlYWRlcnMseT1oLmNvbHVtbkhlYWRlcnMsQz1oLmNvbEdyb3VwLEk9aC5yb3dzLGo9aC5jZWxsczt2LnNldFRhYmxlKHRoaXMpLHkuc2V0VGFibGUodGhpcyksQy5zZXRUYWJsZSh0aGlzKSxJLnNldFRhYmxlKHRoaXMpLGouc2V0VGFibGUodGhpcyksdGhpcy5yb3dIZWFkZXJzPXYs''@;'; + put 'put ''dGhpcy5jb2x1bW5IZWFkZXJzPXksdGhpcy5jb2xHcm91cD1DLHRoaXMucm93cz1JLHRoaXMuY2VsbHM9an19LHtrZXk6InJlbmRlcmVkUm93VG9Tb3VyY2UiLHZhbHVlOmZ1bmN0aW9uKGgpe3JldHVybiB0aGlzLnJvd0ZpbHRlci5yZW5kZXJlZFRvU291cmNlKGgpfX0se2tleToicmVuZGVy''@;'; + put 'put ''ZWRDb2x1bW5Ub1NvdXJjZSIsdmFsdWU6ZnVuY3Rpb24oaCl7cmV0dXJuIHRoaXMuY29sdW1uRmlsdGVyLnJlbmRlcmVkVG9Tb3VyY2UoaCl9fSx7a2V5OiJyZW5kZXIiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5jb2xHcm91cC5hZGp1c3QoKSx0aGlzLmNvbHVtbkhlYWRlcnMuYWRqdXN0KCks''@;'; + put 'put ''dGhpcy5yb3dzLmFkanVzdCgpLHRoaXMucm93SGVhZGVycy5hZGp1c3QoKSx0aGlzLmNvbHVtbkhlYWRlcnMucmVuZGVyKCksdGhpcy5yb3dzLnJlbmRlcigpLHRoaXMucm93SGVhZGVycy5yZW5kZXIoKSx0aGlzLmNlbGxzLnJlbmRlcigpLHRoaXMuY29sdW1uVXRpbHMuY2FsY3VsYXRlV2lk''@;'; + put 'put ''dGhzKCksdGhpcy5jb2xHcm91cC5yZW5kZXIoKTtmb3IodmFyIGg9dGhpcy5yb3dzVG9SZW5kZXIsdj10aGlzLnJvd3MseT0wO3k8aDt5Kyspe3ZhciBDPXYuZ2V0UmVuZGVyZWROb2RlKHkpO2lmKEMuZmlyc3RDaGlsZCl7dmFyIEk9dGhpcy5yZW5kZXJlZFJvd1RvU291cmNlKHkpLGo9dGhp''@;'; + put 'put ''cy5yb3dVdGlscy5nZXRIZWlnaHQoSSk7Qy5maXJzdENoaWxkLnN0eWxlLmhlaWdodD1qPyIiLmNvbmNhdChqLTEsInB4Iik6IiJ9fX19XSksZH0oKTtmdW5jdGlvbiBnV2UoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNz''@;'; + put 'put ''IGFzIGEgZnVuY3Rpb24iKX1mdW5jdGlvbiBHX2UoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQ''@;'; + put 'put ''cm9wZXJ0eShkLHYua2V5LHYpfX12YXIgdldlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZCgpe3ZhciBnPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp7fSxoPWcuVEFCTEUsdj1nLlRIRUFELHk9Zy5DT0xHUk9VUCxDPWcuVEJPRFksST1nLnJv''@;'; + put 'put ''d1V0aWxzLGo9Zy5jb2x1bW5VdGlscyx1ZT1nLmNlbGxSZW5kZXJlcjtnV2UodGhpcyxkKSx0aGlzLnJlbmRlcmVyPW5ldyBwV2UoaCx7Y2VsbFJlbmRlcmVyOnVlfSksdGhpcy5yZW5kZXJlci5zZXRSZW5kZXJlcnMoe3Jvd0hlYWRlcnM6bmV3IExHZSxjb2x1bW5IZWFkZXJzOm5ldyBWR2Uo''@;'; + put 'put ''diksY29sR3JvdXA6bmV3IFFHZSh5KSxyb3dzOm5ldyByV2UoQyksY2VsbHM6bmV3IGZXZX0pLHRoaXMucmVuZGVyZXIuc2V0QXhpc1V0aWxzKEksail9cmV0dXJuIGZ1bmN0aW9uIG1XZShkLGcsaCl7ZyYmR19lKGQucHJvdG90eXBlLGcpLGgmJkdfZShkLGgpLE9iamVjdC5kZWZpbmVQcm9w''@;'; + put 'put ''ZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShkLFt7a2V5OiJzZXRGaWx0ZXJzIix2YWx1ZTpmdW5jdGlvbihoLHYpe3JldHVybiB0aGlzLnJlbmRlcmVyLnNldEZpbHRlcnMoaCx2KSx0aGlzfX0se2tleToic2V0Vmlld3BvcnRTaXplIix2YWx1ZTpmdW5jdGlvbihoLHYpe3Jl''@;'; + put 'put ''dHVybiB0aGlzLnJlbmRlcmVyLnNldFZpZXdwb3J0U2l6ZShoLHYpLHRoaXN9fSx7a2V5OiJzZXRIZWFkZXJDb250ZW50UmVuZGVyZXJzIix2YWx1ZTpmdW5jdGlvbihoLHYpe3JldHVybiB0aGlzLnJlbmRlcmVyLnNldEhlYWRlckNvbnRlbnRSZW5kZXJlcnMoaCx2KSx0aGlzfX0se2tleToi''@;'; + put 'put ''YWRqdXN0Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMucmVuZGVyZXIuYWRqdXN0KCl9fSx7a2V5OiJyZW5kZXIiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5yZW5kZXJlci5yZW5kZXIoKX19XSksZH0oKTtmdW5jdGlvbiBXX2UoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9''@;'; + put 'put ''Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX12YXIgd1dlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZChnLGgpeyhmdW5jdGlvbiBBV2Uo''@;'; + put 'put ''ZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0pKHRoaXMsZCksdGhpcy5kYXRhQWNjZXNzT2JqZWN0PWcsdGhpcy53dFNldHRpbmdzPWgsdGhpcy5oZWFkZXJXaWR0aHM9bmV3IE1hcH1yZXR1''@;'; + put 'put ''cm4gZnVuY3Rpb24geVdlKGQsZyxoKXtnJiZXX2UoZC5wcm90b3R5cGUsZyksaCYmV19lKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGQsW3trZXk6ImdldFdpZHRoIix2YWx1ZTpmdW5jdGlvbihoKXtyZXR1cm4gdGhpcy53dFNldHRp''@;'; + put 'put ''bmdzLmdldFNldHRpbmcoImNvbHVtbldpZHRoIixoKXx8dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoImRlZmF1bHRDb2x1bW5XaWR0aCIpfX0se2tleToiZ2V0U3RyZXRjaGVkQ29sdW1uV2lkdGgiLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB2PXRoaXMuZGF0YUFjY2Vzc09iamVjdC53dFZp''@;'; + put 'put ''ZXdwb3J0LmNvbHVtbnNSZW5kZXJDYWxjdWxhdG9yLHk9dGhpcy5nZXRXaWR0aChoKTtpZih2KXt2YXIgQz12LmdldFN0cmV0Y2hlZENvbHVtbldpZHRoKGgseSk7QyYmKHk9Qyl9cmV0dXJuIHl9fSx7a2V5OiJnZXRIZWFkZXJIZWlnaHQiLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB2PXRoaXMu''@;'; + put 'put ''d3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJkZWZhdWx0Um93SGVpZ2h0IikseT10aGlzLmRhdGFBY2Nlc3NPYmplY3Qud3RWaWV3cG9ydC5vdmVyc2l6ZWRDb2x1bW5IZWFkZXJzW2hdO3JldHVybiB2b2lkIDAhPT15JiYodj12P01hdGgubWF4KHYseSk6eSksdn19LHtrZXk6ImdldEhlYWRlcldp''@;'; + put 'put ''ZHRoIix2YWx1ZTpmdW5jdGlvbihoKXtyZXR1cm4gdGhpcy5oZWFkZXJXaWR0aHMuZ2V0KHRoaXMuZGF0YUFjY2Vzc09iamVjdC53dFRhYmxlLmNvbHVtbkZpbHRlci5zb3VyY2VUb1JlbmRlcmVkKGgpKX19LHtrZXk6ImNhbGN1bGF0ZVdpZHRocyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD10''@;'; + put 'put ''aGlzLnd0U2V0dGluZ3Msdj10aGlzLmRhdGFBY2Nlc3NPYmplY3QsQz12Lnd0Vmlld3BvcnQsST12LmNsb25lU291cmNlLGo9ST9JLnd0VGFibGUuaG9sZGVyOnYud3RUYWJsZS5ob2xkZXIsdWU9ai5vZmZzZXRIZWlnaHQ8ai5zY3JvbGxIZWlnaHQ/QmMoKTowLF9lPWguZ2V0U2V0dGluZygi''@;'; + put 'put ''cm93SGVhZGVyV2lkdGgiKTtpZihDLmNvbHVtbnNSZW5kZXJDYWxjdWxhdG9yLnJlZnJlc2hTdHJldGNoaW5nKEMuZ2V0Vmlld3BvcnRXaWR0aCgpLXVlKSxudWxsIT0oX2U9aC5nZXRTZXR0aW5nKCJvbk1vZGlmeVJvd0hlYWRlcldpZHRoIixfZSkpKWZvcih2YXIgQmU9aC5nZXRTZXR0aW5n''@;'; + put 'put ''KCJyb3dIZWFkZXJzIikubGVuZ3RoLE5lPWguZ2V0U2V0dGluZygiZGVmYXVsdENvbHVtbldpZHRoIiksS2U9MDtLZTxCZTtLZSsrKXt2YXIgZHQ9QXJyYXkuaXNBcnJheShfZSk/X2VbS2VdOl9lO3RoaXMuaGVhZGVyV2lkdGhzLnNldChLZSxkdD1udWxsPT1kdD9OZTpkdCl9fX1dKSxkfSgp''@;'; + put 'put ''O2Z1bmN0aW9uIFlfZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXks''@;'; + put 'put ''dil9fXZhciBDV2U9ZnVuY3Rpb24oKXtmdW5jdGlvbiBkKGcsaCl7KGZ1bmN0aW9uIGJXZShkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSkodGhpcyxkKSx0aGlzLmRhdGFBY2Nlc3NPYmpl''@;'; + put 'put ''Y3Q9Zyx0aGlzLnd0U2V0dGluZ3M9aH1yZXR1cm4gZnVuY3Rpb24gX1dlKGQsZyxoKXtnJiZZX2UoZC5wcm90b3R5cGUsZyksaCYmWV9lKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGQsW3trZXk6ImdldEhlaWdodCIsdmFsdWU6ZnVu''@;'; + put 'put ''Y3Rpb24oaCl7dmFyIHY9dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoInJvd0hlaWdodCIsaCkseT10aGlzLmRhdGFBY2Nlc3NPYmplY3Qud3RWaWV3cG9ydC5vdmVyc2l6ZWRSb3dzW2hdO3JldHVybiB2b2lkIDAhPT15JiYodj12b2lkIDA9PT12P3k6TWF0aC5tYXgodix5KSksdn19XSks''@;'; + put 'put ''ZH0oKSx4Uz0idG9wIixFZz0iYm90dG9tIixUUz0iaW5saW5lX3N0YXJ0IixJUz0idG9wX2lubGluZV9zdGFydF9jb3JuZXIiLHh3PSJib3R0b21faW5saW5lX3N0YXJ0X2Nvcm5lciIsa1dlPVt4UyxFZyxUUyxJUyx4d10sU1dlPW5ldyBNYXAoW1t4UywiaHRfY2xvbmVfIi5jb25jYXQoeFMp''@;'; + put 'put ''XSxbRWcsImh0X2Nsb25lXyIuY29uY2F0KEVnKV0sW1RTLCJodF9jbG9uZV8iLmNvbmNhdChUUywiIGh0X2Nsb25lX2xlZnQiKV0sW0lTLCJodF9jbG9uZV8iLmNvbmNhdChJUywiIGh0X2Nsb25lX3RvcF9sZWZ0X2Nvcm5lciIpXSxbeHcsImh0X2Nsb25lXyIuY29uY2F0KHh3LCIgaHRfY2xv''@;'; + put 'put ''bmVfYm90dG9tX2xlZnRfY29ybmVyIildXSk7ZnVuY3Rpb24gVV9lKGQsZyl7aWYoZCl7aWYoInN0cmluZyI9PXR5cGVvZiBkKXJldHVybiBpZGUoZCxnKTt2YXIgaD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZCkuc2xpY2UoOCwtMSk7aWYoIk9iamVjdCI9PT1oJiZkLmNvbnN0''@;'; + put 'put ''cnVjdG9yJiYoaD1kLmNvbnN0cnVjdG9yLm5hbWUpLCJNYXAiPT09aHx8IlNldCI9PT1oKXJldHVybiBBcnJheS5mcm9tKGQpO2lmKCJBcmd1bWVudHMiPT09aHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QoaCkpcmV0dXJuIGlkZShkLGcpfX1mdW5j''@;'; + put 'put ''dGlvbiBpZGUoZCxnKXsobnVsbD09Z3x8Zz5kLmxlbmd0aCkmJihnPWQubGVuZ3RoKTtmb3IodmFyIGg9MCx2PW5ldyBBcnJheShnKTtoPGc7aCsrKXZbaF09ZFtoXTtyZXR1cm4gdn1mdW5jdGlvbiBRX2UoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVu''@;'; + put 'put ''dW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX1mdW5jdGlvbiB4ZyhkLGcsaCl7cmV0dXJuIGcgaW4gZD9PYmplY3QuZGVmaW5lUHJvcGVydHkoZCxn''@;'; + put 'put ''LHt2YWx1ZTpoLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZFtnXT1oLGR9dmFyIFBXZT1mdW5jdGlvbigpe2Z1bmN0aW9uIGQoZyxoLHYseSxDKXt2YXIgST10aGlzOyhmdW5jdGlvbiBSV2UoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcg''@;'; + put 'put ''VHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0pKHRoaXMsZCkseGcodGhpcywid3RTZXR0aW5ncyIsbnVsbCkseGcodGhpcywiZG9tQmluZGluZ3MiLHZvaWQgMCkseGcodGhpcywiVEJPRFkiLG51bGwpLHhnKHRoaXMsIlRIRUFEIixudWxsKSx4Zyh0aGlz''@;'; + put 'put ''LCJDT0xHUk9VUCIsbnVsbCkseGcodGhpcywiaGFzVGFibGVIZWlnaHQiLCEwKSx4Zyh0aGlzLCJoYXNUYWJsZVdpZHRoIiwhMCkseGcodGhpcywiaXNUYWJsZVZpc2libGUiLCExKSx4Zyh0aGlzLCJ0YWJsZU9mZnNldCIsMCkseGcodGhpcywiaG9sZGVyT2Zmc2V0IiwwKSx0aGlzLmRvbUJp''@;'; + put 'put ''bmRpbmdzPXYsdGhpcy5pc01hc3Rlcj0ibWFzdGVyIj09PUMsdGhpcy5uYW1lPUMsdGhpcy5kYXRhQWNjZXNzT2JqZWN0PWcsdGhpcy5mYWNhZGVHZXR0ZXI9aCx0aGlzLnd0U2V0dGluZ3M9eSx0aGlzLmluc3RhbmNlPXRoaXMuZGF0YUFjY2Vzc09iamVjdC53b3QsdGhpcy53b3Q9dGhpcy5k''@;'; + put 'put ''YXRhQWNjZXNzT2JqZWN0LndvdCx0aGlzLlRBQkxFPXYucm9vdFRhYmxlLGQzZSh0aGlzLlRBQkxFKSx0aGlzLnNwcmVhZGVyPXRoaXMuY3JlYXRlU3ByZWFkZXIodGhpcy5UQUJMRSksdGhpcy5oaWRlcj10aGlzLmNyZWF0ZUhpZGVyKHRoaXMuc3ByZWFkZXIpLHRoaXMuaG9sZGVyPXRoaXMu''@;'; + put 'put ''Y3JlYXRlSG9sZGVyKHRoaXMuaGlkZXIpLHRoaXMud3RSb290RWxlbWVudD10aGlzLmhvbGRlci5wYXJlbnROb2RlLHRoaXMuaXNNYXN0ZXImJnRoaXMuYWxpZ25PdmVybGF5c1dpdGhUcmltbWluZ0NvbnRhaW5lcigpLHRoaXMuZml4VGFibGVEb21UcmVlKCksdGhpcy5yb3dGaWx0ZXI9bnVs''@;'; + put 'put ''bCx0aGlzLmNvbHVtbkZpbHRlcj1udWxsLHRoaXMuY29ycmVjdEhlYWRlcldpZHRoPSExO3ZhciBqPXRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nUHVyZSgicm93SGVhZGVyV2lkdGgiKTt0aGlzLnd0U2V0dGluZ3MudXBkYXRlKCJyb3dIZWFkZXJXaWR0aCIsZnVuY3Rpb24oKXtyZXR1cm4g''@;'; + put 'put ''SS5fbW9kaWZ5Um93SGVhZGVyV2lkdGgoail9KSx0aGlzLnJvd1V0aWxzPW5ldyBDV2UodGhpcy5kYXRhQWNjZXNzT2JqZWN0LHRoaXMud3RTZXR0aW5ncyksdGhpcy5jb2x1bW5VdGlscz1uZXcgd1dlKHRoaXMuZGF0YUFjY2Vzc09iamVjdCx0aGlzLnd0U2V0dGluZ3MpLHRoaXMudGFibGVS''@;'; + put 'put ''ZW5kZXJlcj1uZXcgdldlKHtUQUJMRTp0aGlzLlRBQkxFLFRIRUFEOnRoaXMuVEhFQUQsQ09MR1JPVVA6dGhpcy5DT0xHUk9VUCxUQk9EWTp0aGlzLlRCT0RZLHJvd1V0aWxzOnRoaXMucm93VXRpbHMsY29sdW1uVXRpbHM6dGhpcy5jb2x1bW5VdGlscyxjZWxsUmVuZGVyZXI6dGhpcy53dFNl''@;'; + put 'put ''dHRpbmdzLmdldFNldHRpbmdQdXJlKCJjZWxsUmVuZGVyZXIiKX0pfXJldHVybiBmdW5jdGlvbiBCV2UoZCxnLGgpe2cmJlFfZShkLnByb3RvdHlwZSxnKSxoJiZRX2UoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oZCxbe2tleToiaXMi''@;'; + put 'put ''LHZhbHVlOmZ1bmN0aW9uKGgpe3JldHVybiB0aGlzLm5hbWU9PT1ofX0se2tleToiZml4VGFibGVEb21UcmVlIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBoPXRoaXMuZG9tQmluZGluZ3Mucm9vdERvY3VtZW50O3RoaXMuVEJPRFk9dGhpcy5UQUJMRS5xdWVyeVNlbGVjdG9yKCJ0Ym9keSIpLHRo''@;'; + put 'put ''aXMuVEJPRFl8fCh0aGlzLlRCT0RZPWguY3JlYXRlRWxlbWVudCgidGJvZHkiKSx0aGlzLlRBQkxFLmFwcGVuZENoaWxkKHRoaXMuVEJPRFkpKSx0aGlzLlRIRUFEPXRoaXMuVEFCTEUucXVlcnlTZWxlY3RvcigidGhlYWQiKSx0aGlzLlRIRUFEfHwodGhpcy5USEVBRD1oLmNyZWF0ZUVsZW1l''@;'; + put 'put ''bnQoInRoZWFkIiksdGhpcy5UQUJMRS5pbnNlcnRCZWZvcmUodGhpcy5USEVBRCx0aGlzLlRCT0RZKSksdGhpcy5DT0xHUk9VUD10aGlzLlRBQkxFLnF1ZXJ5U2VsZWN0b3IoImNvbGdyb3VwIiksdGhpcy5DT0xHUk9VUHx8KHRoaXMuQ09MR1JPVVA9aC5jcmVhdGVFbGVtZW50KCJjb2xncm91''@;'; + put 'put ''cCIpLHRoaXMuVEFCTEUuaW5zZXJ0QmVmb3JlKHRoaXMuQ09MR1JPVVAsdGhpcy5USEVBRCkpfX0se2tleToiY3JlYXRlU3ByZWFkZXIiLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB5LHY9aC5wYXJlbnROb2RlO3JldHVybighdnx8di5ub2RlVHlwZSE9PU5vZGUuRUxFTUVOVF9OT0RFfHwhdGwo''@;'; + put 'put ''diwid3RIb2xkZXIiKSkmJigoeT10aGlzLmRvbUJpbmRpbmdzLnJvb3REb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSkuY2xhc3NOYW1lPSJ3dFNwcmVhZGVyIix2JiZ2Lmluc2VydEJlZm9yZSh5LGgpLHkuYXBwZW5kQ2hpbGQoaCkpLHkuc3R5bGUucG9zaXRpb249InJlbGF0aXZlIix5''@;'; + put 'put ''fX0se2tleToiY3JlYXRlSGlkZXIiLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB5LHY9aC5wYXJlbnROb2RlO3JldHVybighdnx8di5ub2RlVHlwZSE9PU5vZGUuRUxFTUVOVF9OT0RFfHwhdGwodiwid3RIb2xkZXIiKSkmJigoeT10aGlzLmRvbUJpbmRpbmdzLnJvb3REb2N1bWVudC5jcmVhdGVF''@;'; + put 'put ''bGVtZW50KCJkaXYiKSkuY2xhc3NOYW1lPSJ3dEhpZGVyIix2JiZ2Lmluc2VydEJlZm9yZSh5LGgpLHkuYXBwZW5kQ2hpbGQoaCkpLHl9fSx7a2V5OiJjcmVhdGVIb2xkZXIiLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB5LHY9aC5wYXJlbnROb2RlO3JldHVybighdnx8di5ub2RlVHlwZSE9PU5v''@;'; + put 'put ''ZGUuRUxFTUVOVF9OT0RFfHwhdGwodiwid3RIb2xkZXIiKSkmJigoeT10aGlzLmRvbUJpbmRpbmdzLnJvb3REb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSkuc3R5bGUucG9zaXRpb249InJlbGF0aXZlIix5LmNsYXNzTmFtZT0id3RIb2xkZXIiLHYmJnYuaW5zZXJ0QmVmb3JlKHksaCks''@;'; + put 'put ''dGhpcy5pc01hc3RlciYmKHkucGFyZW50Tm9kZS5jbGFzc05hbWUrPSJodF9tYXN0ZXIgaGFuZHNvbnRhYmxlIix5LnBhcmVudE5vZGUuc2V0QXR0cmlidXRlKCJkaXIiLHRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nUHVyZSgicnRsTW9kZSIpPyJydGwiOiJsdHIiKSkseS5hcHBlbmRDaGls''@;'; + put 'put ''ZChoKSkseX19LHtrZXk6ImRyYXciLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0mJmFyZ3VtZW50c1swXSx2PXRoaXMud3RTZXR0aW5ncyx5PXRoaXMuZGF0YUFjY2Vzc09iamVjdCxDPXkud3RPdmVybGF5cyxJPXkud3RW''@;'; + put 'put ''aWV3cG9ydCxqPXYuZ2V0U2V0dGluZygidG90YWxSb3dzIiksdWU9di5nZXRTZXR0aW5nKCJ0b3RhbENvbHVtbnMiKSxfZT12LmdldFNldHRpbmcoInJvd0hlYWRlcnMiKSxCZT1fZS5sZW5ndGgsTmU9di5nZXRTZXR0aW5nKCJjb2x1bW5IZWFkZXJzIiksS2U9TmUubGVuZ3RoLGR0PSExLE90''@;'; + put 'put ''PWg7aWYodGhpcy5pc01hc3RlciYmKHRoaXMuaG9sZGVyT2Zmc2V0PWp1KHRoaXMuaG9sZGVyKSxPdD1JLmNyZWF0ZVJlbmRlckNhbGN1bGF0b3JzKE90KSxCZSYmIXYuZ2V0U2V0dGluZygiZml4ZWRDb2x1bW5zU3RhcnQiKSkpe3ZhciAkdD1DLmlubGluZVN0YXJ0T3ZlcmxheS5nZXRTY3Jv''@;'; + put 'put ''bGxQb3NpdGlvbigpLGZuPXRoaXMuY29ycmVjdEhlYWRlcldpZHRoO3RoaXMuY29ycmVjdEhlYWRlcldpZHRoPTAhPT0kdCxmbiE9PXRoaXMuY29ycmVjdEhlYWRlcldpZHRoJiYoT3Q9ITEpfWlmKHRoaXMuaXNNYXN0ZXImJihkdD1DLnVwZGF0ZVN0YXRlT2ZSZW5kZXJpbmcoKSksT3QpdGhp''@;'; + put 'put ''cy5pc01hc3RlciYmSS5jcmVhdGVWaXNpYmxlQ2FsY3VsYXRvcnMoKSxDJiZDLnJlZnJlc2goITApO2Vsc2V7dGhpcy50YWJsZU9mZnNldD10aGlzLmlzTWFzdGVyP2p1KHRoaXMuVEFCTEUpOnRoaXMuZGF0YUFjY2Vzc09iamVjdC5wYXJlbnRUYWJsZU9mZnNldDt2YXIgTG49aj4wP3RoaXMu''@;'; + put 'put ''Z2V0Rmlyc3RSZW5kZXJlZFJvdygpOjAsaXI9dWU+MD90aGlzLmdldEZpcnN0UmVuZGVyZWRDb2x1bW4oKTowO3RoaXMucm93RmlsdGVyPW5ldyBpR2UoTG4saixLZSksdGhpcy5jb2x1bW5GaWx0ZXI9bmV3IGVHZShpcix1ZSxCZSk7dmFyIHdyLG1yPSEwO2lmKHRoaXMuaXNNYXN0ZXIpe3Ro''@;'; + put 'put ''aXMuYWxpZ25PdmVybGF5c1dpdGhUcmltbWluZ0NvbnRhaW5lcigpO3ZhciBTcj17fTt0aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygiYmVmb3JlRHJhdyIsITAsU3IpLG1yPSEwIT09U3Iuc2tpcFJlbmRlcn1pZihtcilpZih0aGlzLnRhYmxlUmVuZGVyZXIuc2V0SGVhZGVyQ29udGVudFJl''@;'; + put 'put ''bmRlcmVycyhfZSxOZSksKHRoaXMuaXMoRWcpfHx0aGlzLmlzKHh3KSkmJnRoaXMudGFibGVSZW5kZXJlci5zZXRIZWFkZXJDb250ZW50UmVuZGVyZXJzKF9lLFtdKSx0aGlzLnJlc2V0T3ZlcnNpemVkUm93cygpLHRoaXMudGFibGVSZW5kZXJlci5zZXRWaWV3cG9ydFNpemUodGhpcy5nZXRS''@;'; + put 'put ''ZW5kZXJlZFJvd3NDb3VudCgpLHRoaXMuZ2V0UmVuZGVyZWRDb2x1bW5zQ291bnQoKSkuc2V0RmlsdGVycyh0aGlzLnJvd0ZpbHRlcix0aGlzLmNvbHVtbkZpbHRlcikucmVuZGVyKCksdGhpcy5pc01hc3RlciYmKHdyPXRoaXMuZGF0YUFjY2Vzc09iamVjdC53b3Jrc3BhY2VXaWR0aCx0aGlz''@;'; + put 'put ''LmRhdGFBY2Nlc3NPYmplY3Qud3RWaWV3cG9ydC5jb250YWluZXJXaWR0aD1udWxsLHRoaXMubWFya092ZXJzaXplZENvbHVtbkhlYWRlcnMoKSksdGhpcy5hZGp1c3RDb2x1bW5IZWFkZXJIZWlnaHRzKCksKHRoaXMuaXNNYXN0ZXJ8fHRoaXMuaXMoRWcpKSYmdGhpcy5tYXJrT3ZlcnNpemVk''@;'; + put 'put ''Um93cygpLHRoaXMuaXNNYXN0ZXIpe3RoaXMuZGF0YUFjY2Vzc09iamVjdC53dFZpZXdwb3J0LmNyZWF0ZVZpc2libGVDYWxjdWxhdG9ycygpLHRoaXMuZGF0YUFjY2Vzc09iamVjdC53dE92ZXJsYXlzLnJlZnJlc2goITEpLHRoaXMuZGF0YUFjY2Vzc09iamVjdC53dE92ZXJsYXlzLmFwcGx5''@;'; + put 'put ''VG9ET00oKTt2YXIgUXI9RTIodGhpcy5oaWRlcikseWk9RTIodGhpcy5UQUJMRSk7MCE9PVFyJiZ5aSE9PVFyJiYodGhpcy5jb2x1bW5VdGlscy5jYWxjdWxhdGVXaWR0aHMoKSx0aGlzLnRhYmxlUmVuZGVyZXIucmVuZGVyZXIuY29sR3JvdXAucmVuZGVyKCkpLHdyIT09dGhpcy5kYXRhQWNj''@;'; + put 'put ''ZXNzT2JqZWN0Lnd0Vmlld3BvcnQuZ2V0V29ya3NwYWNlV2lkdGgoKSYmKHRoaXMuZGF0YUFjY2Vzc09iamVjdC53dFZpZXdwb3J0LmNvbnRhaW5lcldpZHRoPW51bGwsdGhpcy5jb2x1bW5VdGlscy5jYWxjdWxhdGVXaWR0aHMoKSx0aGlzLnRhYmxlUmVuZGVyZXIucmVuZGVyZXIuY29sR3Jv''@;'; + put 'put ''dXAucmVuZGVyKCkpLHRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJvbkRyYXciLCEwKX1lbHNlIHRoaXMuaXMoRWcpJiZ0aGlzLmRhdGFBY2Nlc3NPYmplY3QuY2xvbmVTb3VyY2Uud3RPdmVybGF5cy5hZGp1c3RFbGVtZW50c1NpemUoKX1pZih0aGlzLmlzTWFzdGVyKXt2YXIgS2k9Qy50''@;'; + put 'put ''b3BPdmVybGF5LnJlc2V0Rml4ZWRQb3NpdGlvbigpO0MuYm90dG9tT3ZlcmxheS5jbG9uZSYmKEtpPUMuYm90dG9tT3ZlcmxheS5yZXNldEZpeGVkUG9zaXRpb24oKXx8S2kpLEtpPUMuaW5saW5lU3RhcnRPdmVybGF5LnJlc2V0Rml4ZWRQb3NpdGlvbigpfHxLaSxDLnRvcElubGluZVN0YXJ0''@;'; + put 'put ''Q29ybmVyT3ZlcmxheSYmQy50b3BJbmxpbmVTdGFydENvcm5lck92ZXJsYXkucmVzZXRGaXhlZFBvc2l0aW9uKCksQy5ib3R0b21JbmxpbmVTdGFydENvcm5lck92ZXJsYXkmJkMuYm90dG9tSW5saW5lU3RhcnRDb3JuZXJPdmVybGF5LmNsb25lJiZDLmJvdHRvbUlubGluZVN0YXJ0Q29ybmVy''@;'; + put 'put ''T3ZlcmxheS5yZXNldEZpeGVkUG9zaXRpb24oKSxLaSYmKEMucmVmcmVzaEFsbCgpLEMuYWRqdXN0RWxlbWVudHNTaXplKCkpfXJldHVybiB0aGlzLnJlZnJlc2hTZWxlY3Rpb25zKE90KSxkdCYmQy5zeW5jU2Nyb2xsV2l0aE1hc3RlcigpLHRoaXMuZGF0YUFjY2Vzc09iamVjdC5kcmF3bj0h''@;'; + put 'put ''MCx0aGlzfX0se2tleToibWFya0lmT3ZlcnNpemVkQ29sdW1uSGVhZGVyIix2YWx1ZTpmdW5jdGlvbihoKXtmb3IodmFyIEksaix1ZSx2PXRoaXMuY29sdW1uRmlsdGVyLnJlbmRlcmVkVG9Tb3VyY2UoaCkseT10aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygiY29sdW1uSGVhZGVycyIpLmxl''@;'; + put 'put ''bmd0aCxDPXRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJkZWZhdWx0Um93SGVpZ2h0IiksX2U9dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoImNvbHVtbkhlYWRlckhlaWdodCIpfHxbXTt5OylJPXRoaXMuZ2V0Q29sdW1uSGVhZGVySGVpZ2h0KHktPTEpLChqPXRoaXMuZ2V0Q29sdW1u''@;'; + put 'put ''SGVhZGVyKHYseSkpJiYodWU9TXYoaiksKCFJJiZDPHVlfHxJPHVlKSYmKHRoaXMuZGF0YUFjY2Vzc09iamVjdC53dFZpZXdwb3J0Lm92ZXJzaXplZENvbHVtbkhlYWRlcnNbeV09dWUpLEFycmF5LmlzQXJyYXkoX2UpP251bGwhPV9lW3ldJiYodGhpcy5kYXRhQWNjZXNzT2JqZWN0Lnd0Vmll''@;'; + put 'put ''d3BvcnQub3ZlcnNpemVkQ29sdW1uSGVhZGVyc1t5XT1fZVt5XSk6aXNOYU4oX2UpfHwodGhpcy5kYXRhQWNjZXNzT2JqZWN0Lnd0Vmlld3BvcnQub3ZlcnNpemVkQ29sdW1uSGVhZGVyc1t5XT1fZSksdGhpcy5kYXRhQWNjZXNzT2JqZWN0Lnd0Vmlld3BvcnQub3ZlcnNpemVkQ29sdW1uSGVh''@;'; + put 'put ''ZGVyc1t5XTwoX2VbeV18fF9lKSYmKHRoaXMuZGF0YUFjY2Vzc09iamVjdC53dFZpZXdwb3J0Lm92ZXJzaXplZENvbHVtbkhlYWRlcnNbeV09X2VbeV18fF9lKSl9fSx7a2V5OiJhZGp1c3RDb2x1bW5IZWFkZXJIZWlnaHRzIix2YWx1ZTpmdW5jdGlvbigpe2Zvcih2YXIgdj10aGlzLlRIRUFE''@;'; + put 'put ''LmNoaWxkTm9kZXMseT10aGlzLmRhdGFBY2Nlc3NPYmplY3Qud3RWaWV3cG9ydC5vdmVyc2l6ZWRDb2x1bW5IZWFkZXJzLEk9MCxqPXRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJjb2x1bW5IZWFkZXJzIikubGVuZ3RoO0k8ajtJKyspaWYoeVtJXSl7aWYoIXZbSV18fDA9PT12W0ldLmNo''@;'; + put 'put ''aWxkTm9kZXMubGVuZ3RoKXJldHVybjt2W0ldLmNoaWxkTm9kZXNbMF0uc3R5bGUuaGVpZ2h0PSIiLmNvbmNhdCh5W0ldLCJweCIpfX19LHtrZXk6InJlc2V0T3ZlcnNpemVkUm93cyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD10aGlzLnd0U2V0dGluZ3Msdj10aGlzLmRhdGFBY2Nlc3NPYmpl''@;'; + put 'put ''Y3Qud3RWaWV3cG9ydDtpZigodGhpcy5pc01hc3Rlcnx8dGhpcy5pcyhFZykpJiYhaC5nZXRTZXR0aW5nKCJleHRlcm5hbFJvd0NhbGN1bGF0b3IiKSlmb3IodmFyIHk9dGhpcy5nZXRSZW5kZXJlZFJvd3NDb3VudCgpLEM9MDtDPHk7QysrKXt2YXIgST10aGlzLnJvd0ZpbHRlci5yZW5kZXJl''@;'; + put 'put ''ZFRvU291cmNlKEMpO3Yub3ZlcnNpemVkUm93cyYmdi5vdmVyc2l6ZWRSb3dzW0ldJiYodi5vdmVyc2l6ZWRSb3dzW0ldPXZvaWQgMCl9fX0se2tleToicmVtb3ZlQ2xhc3NGcm9tQ2VsbHMiLHZhbHVlOmZ1bmN0aW9uKGgpe2Zvcih2YXIgdj10aGlzLlRBQkxFLnF1ZXJ5U2VsZWN0b3JBbGwo''@;'; + put 'put ''Ii4iLmNvbmNhdChoKSkseT0wLEM9di5sZW5ndGg7eTxDO3krKylwbCh2W3ldLGgpfX0se2tleToicmVmcmVzaFNlbGVjdGlvbnMiLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB2PXRoaXMud3RTZXR0aW5ncyx5PXRoaXMuZGF0YUFjY2Vzc09iamVjdC5zZWxlY3Rpb25zO2lmKHkpe3ZhciBDPUFy''@;'; + put 'put ''cmF5LmZyb20oeSksST1DLmxlbmd0aDtpZihoKXtmb3IodmFyIGo9W10sdWU9MDt1ZTxJO3VlKyspe2Zvcih2YXIgX2U9Q1t1ZV0uc2V0dGluZ3MsQmU9X2UuaGlnaGxpZ2h0SGVhZGVyQ2xhc3NOYW1lLE5lPV9lLmhpZ2hsaWdodFJvd0NsYXNzTmFtZSxLZT1fZS5oaWdobGlnaHRDb2x1bW5D''@;'; + put 'put ''bGFzc05hbWUsZHQ9Q1t1ZV0uY2xhc3NOYW1lcyxPdD1kdC5sZW5ndGgsJHQ9MDskdDxPdDskdCsrKWouaW5jbHVkZXMoZHRbJHRdKXx8ai5wdXNoKGR0WyR0XSk7QmUmJiFqLmluY2x1ZGVzKEJlKSYmai5wdXNoKEJlKSxOZSYmIWouaW5jbHVkZXMoTmUpJiZqLnB1c2goTmUpLEtlJiYhai5p''@;'; + put 'put ''bmNsdWRlcyhLZSkmJmoucHVzaChLZSl9dmFyIGZuPXYuZ2V0U2V0dGluZygib25CZWZvcmVSZW1vdmVDZWxsQ2xhc3NOYW1lcyIpO2lmKEFycmF5LmlzQXJyYXkoZm4pKWZvcih2YXIgTG49MDtMbjxmbi5sZW5ndGg7TG4rKylqLnB1c2goZm5bTG5dKTtmb3IodmFyIGlyPWoubGVuZ3RoLG1y''@;'; + put 'put ''PTA7bXI8aXI7bXIrKyl0aGlzLnJlbW92ZUNsYXNzRnJvbUNlbGxzKGpbbXJdKX1mb3IodmFyIFNyPTA7U3I8STtTcisrKUNbU3JdLmRyYXcodGhpcy5mYWNhZGVHZXR0ZXIoKSxoKX19fSx7a2V5OiJnZXRDZWxsIix2YWx1ZTpmdW5jdGlvbihoKXt2YXIgaix2PWgucm93LHk9aC5jb2wsQz10''@;'; + put 'put ''aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygib25Nb2RpZnlHZXRDZWxsQ29vcmRzIix2LHkpO2lmKEMmJkFycmF5LmlzQXJyYXkoQykpe3ZhciBJPWZ1bmN0aW9uIElXZShkLGcpe3JldHVybiBmdW5jdGlvbiBPV2UoZCl7aWYoQXJyYXkuaXNBcnJheShkKSlyZXR1cm4gZH0oZCl8fGZ1bmN0''@;'; + put 'put ''aW9uIExXZShkLGcpe3ZhciBoPW51bGw9PWQ/bnVsbDoidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmZFtTeW1ib2wuaXRlcmF0b3JdfHxkWyJAQGl0ZXJhdG9yIl07aWYobnVsbCE9aCl7dmFyIEksaix2PVtdLHk9ITAsQz0hMTt0cnl7Zm9yKGg9aC5jYWxsKGQpOyEoeT0oST1oLm5leHQo''@;'; + put 'put ''KSkuZG9uZSkmJih2LnB1c2goSS52YWx1ZSksIWd8fHYubGVuZ3RoIT09Zyk7eT0hMCk7fWNhdGNoKHVlKXtDPSEwLGo9dWV9ZmluYWxseXt0cnl7IXkmJm51bGwhPWgucmV0dXJuJiZoLnJldHVybigpfWZpbmFsbHl7aWYoQyl0aHJvdyBqfX1yZXR1cm4gdn19KGQsZyl8fFVfZShkLGcpfHxm''@;'; + put 'put ''dW5jdGlvbiBEV2UoKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkg''@;'; + put 'put ''bWV0aG9kLiIpfSgpfShDLDIpO3Y9SVswXSx5PUlbMV19aWYodGhpcy5pc1Jvd0JlZm9yZVJlbmRlcmVkUm93cyh2KSlyZXR1cm4tMTtpZih0aGlzLmlzUm93QWZ0ZXJSZW5kZXJlZFJvd3ModikpcmV0dXJuLTI7aWYodGhpcy5pc0NvbHVtbkJlZm9yZVJlbmRlcmVkQ29sdW1ucyh5KSlyZXR1''@;'; + put 'put ''cm4tMztpZih0aGlzLmlzQ29sdW1uQWZ0ZXJSZW5kZXJlZENvbHVtbnMoeSkpcmV0dXJuLTQ7aWYoIShqPXY8MD90aGlzLlRIRUFELmNoaWxkTm9kZXNbdGhpcy5yb3dGaWx0ZXIuc291cmNlUm93VG9WaXNpYmxlQ29sSGVhZGVkUm93KHYpXTp0aGlzLlRCT0RZLmNoaWxkTm9kZXNbdGhpcy5y''@;'; + put 'put ''b3dGaWx0ZXIuc291cmNlVG9SZW5kZXJlZCh2KV0pJiZ2Pj0wKXRocm93IG5ldyBFcnJvcigiVFIgd2FzIGV4cGVjdGVkIHRvIGJlIHJlbmRlcmVkIGJ1dCBpcyBub3QiKTt2YXIgdWU9ai5jaGlsZE5vZGVzW3RoaXMuY29sdW1uRmlsdGVyLnNvdXJjZUNvbHVtblRvVmlzaWJsZVJvd0hlYWRl''@;'; + put 'put ''ZENvbHVtbih5KV07aWYoIXVlJiZ5Pj0wKXRocm93IG5ldyBFcnJvcigiVEQgb3IgVEggd2FzIGV4cGVjdGVkIHRvIGJlIHJlbmRlcmVkIGJ1dCBpcyBub3QiKTtyZXR1cm4gdWV9fSx7a2V5OiJnZXRDb2x1bW5IZWFkZXIiLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB2PWFyZ3VtZW50cy5sZW5n''@;'; + put 'put ''dGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTowLHk9dGhpcy5USEVBRC5jaGlsZE5vZGVzW3ZdO3JldHVybiBudWxsPT15P3ZvaWQgMDp5LmNoaWxkTm9kZXNbdGhpcy5jb2x1bW5GaWx0ZXIuc291cmNlQ29sdW1uVG9WaXNpYmxlUm93SGVhZGVkQ29sdW1uKGgpXX19''@;'; + put 'put ''LHtrZXk6ImdldENvbHVtbkhlYWRlcnMiLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB2PVtdLHk9dGhpcy5jb2x1bW5GaWx0ZXIuc291cmNlQ29sdW1uVG9WaXNpYmxlUm93SGVhZGVkQ29sdW1uKGgpO3JldHVybiB0aGlzLlRIRUFELmNoaWxkTm9kZXMuZm9yRWFjaChmdW5jdGlvbihDKXt2YXIg''@;'; + put 'put ''ST1DLmNoaWxkTm9kZXNbeV07SSYmdi5wdXNoKEkpfSksdn19LHtrZXk6ImdldFJvd0hlYWRlciIsdmFsdWU6ZnVuY3Rpb24oaCl7dmFyIHY9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOjA7aWYoMCE9PXRoaXMuY29sdW1uRmlsdGVyLnNv''@;'; + put 'put ''dXJjZUNvbHVtblRvVmlzaWJsZVJvd0hlYWRlZENvbHVtbigwKSl7dmFyIHk9dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoInJvd0hlYWRlcnMiKS5sZW5ndGg7aWYoISh2Pj15KSl7dmFyIEM9dGhpcy5UQk9EWS5jaGlsZE5vZGVzW3RoaXMucm93RmlsdGVyLnNvdXJjZVRvUmVuZGVyZWQo''@;'; + put 'put ''aCldO3JldHVybiBudWxsPT1DP3ZvaWQgMDpDLmNoaWxkTm9kZXNbdl19fX19LHtrZXk6ImdldFJvd0hlYWRlcnMiLHZhbHVlOmZ1bmN0aW9uKGgpe2lmKDA9PT10aGlzLmNvbHVtbkZpbHRlci5zb3VyY2VDb2x1bW5Ub1Zpc2libGVSb3dIZWFkZWRDb2x1bW4oMCkpcmV0dXJuW107Zm9yKHZh''@;'; + put 'put ''ciB2PVtdLHk9dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoInJvd0hlYWRlcnMiKS5sZW5ndGgsQz0wO0M8eTtDKyspe3ZhciBJPXRoaXMuVEJPRFkuY2hpbGROb2Rlc1t0aGlzLnJvd0ZpbHRlci5zb3VyY2VUb1JlbmRlcmVkKGgpXSxqPW51bGw9PUk/dm9pZCAwOkkuY2hpbGROb2Rlc1tD''@;'; + put 'put ''XTtqJiZ2LnB1c2goail9cmV0dXJuIHZ9fSx7a2V5OiJnZXRDb29yZHMiLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB2PWg7aWYoIlREIiE9PXYubm9kZU5hbWUmJiJUSCIhPT12Lm5vZGVOYW1lJiYodj1Tdih2LFsiVEQiLCJUSCJdKSksbnVsbD09PXYpcmV0dXJuIG51bGw7dmFyIHk9di5wYXJl''@;'; + put 'put ''bnROb2RlLEM9eS5wYXJlbnROb2RlLEk9TmJlKHkpLGo9di5jZWxsSW5kZXg7cmV0dXJuIEN3KElTLHYsdGhpcy53dFJvb3RFbGVtZW50KXx8Q3coeFMsdix0aGlzLnd0Um9vdEVsZW1lbnQpPyJUSEVBRCI9PT1DLm5vZGVOYW1lJiYoSS09Qy5jaGlsZE5vZGVzLmxlbmd0aCk6ST1Ddyh4dyx2''@;'; + put 'put ''LHRoaXMud3RSb290RWxlbWVudCl8fEN3KEVnLHYsdGhpcy53dFJvb3RFbGVtZW50KT90aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygidG90YWxSb3dzIiktQy5jaGlsZE5vZGVzLmxlbmd0aCtJOkM9PT10aGlzLlRIRUFEP3RoaXMucm93RmlsdGVyLnZpc2libGVDb2xIZWFkZWRSb3dUb1Nv''@;'; + put 'put ''dXJjZVJvdyhJKTp0aGlzLnJvd0ZpbHRlci5yZW5kZXJlZFRvU291cmNlKEkpLGo9Q3coSVMsdix0aGlzLnd0Um9vdEVsZW1lbnQpfHxDdyhUUyx2LHRoaXMud3RSb290RWxlbWVudCl8fEN3KHh3LHYsdGhpcy53dFJvb3RFbGVtZW50KT90aGlzLmNvbHVtbkZpbHRlci5vZmZzZXR0ZWRUSChq''@;'; + put 'put ''KTp0aGlzLmNvbHVtbkZpbHRlci52aXNpYmxlUm93SGVhZGVkQ29sdW1uVG9Tb3VyY2VDb2x1bW4oaiksdGhpcy53b3QuY3JlYXRlQ2VsbENvb3JkcyhJLGopfX0se2tleToibWFya092ZXJzaXplZFJvd3MiLHZhbHVlOmZ1bmN0aW9uKCl7aWYoIXRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5n''@;'; + put 'put ''KCJleHRlcm5hbFJvd0NhbGN1bGF0b3IiKSl7dmFyIEMsSSxqLHVlLF9lLGg9dGhpcy5UQk9EWS5jaGlsZE5vZGVzLmxlbmd0aDtpZihoKnRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJkZWZhdWx0Um93SGVpZ2h0IikhPU12KHRoaXMuVEJPRFkpLTF8fHRoaXMud3RTZXR0aW5ncy5nZXRT''@;'; + put 'put ''ZXR0aW5nKCJmaXhlZFJvd3NCb3R0b20iKSlmb3IoO2g7KWo9dGhpcy5yb3dGaWx0ZXIucmVuZGVyZWRUb1NvdXJjZShoLT0xKSxDPXRoaXMuZ2V0Um93SGVpZ2h0KGopLEk9KF9lPSh1ZT10aGlzLmdldFRyRm9yUm93KGopKS5xdWVyeVNlbGVjdG9yKCJ0aCIpKT9NdihfZSk6TXYodWUpLTEs''@;'; + put 'put ''KCFDJiZ0aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygiZGVmYXVsdFJvd0hlaWdodCIpPEl8fEM8SSkmJih0aGlzLmRhdGFBY2Nlc3NPYmplY3Qud3RWaWV3cG9ydC5vdmVyc2l6ZWRSb3dzW2pdPUkrPTEpfX19LHtrZXk6ImdldFRyRm9yUm93Iix2YWx1ZTpmdW5jdGlvbihoKXtyZXR1cm4g''@;'; + put 'put ''dGhpcy5UQk9EWS5jaGlsZE5vZGVzW3RoaXMucm93RmlsdGVyLnNvdXJjZVRvUmVuZGVyZWQoaCldfX0se2tleToiaXNDb2x1bW5IZWFkZXJSZW5kZXJlZCIsdmFsdWU6ZnVuY3Rpb24oaCl7aWYoaD49MClyZXR1cm4hMTt2YXIgeT10aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygicm93SGVh''@;'; + put 'put ''ZGVycyIpLmxlbmd0aDtyZXR1cm4gTWF0aC5hYnMoaCk8PXl9fSx7a2V5OiJpc1Jvd0hlYWRlclJlbmRlcmVkIix2YWx1ZTpmdW5jdGlvbihoKXtpZihoPj0wKXJldHVybiExO3ZhciB5PXRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJjb2x1bW5IZWFkZXJzIikubGVuZ3RoO3JldHVybiBN''@;'; + put 'put ''YXRoLmFicyhoKTw9eX19LHtrZXk6ImlzUm93QmVmb3JlUmVuZGVyZWRSb3dzIix2YWx1ZTpmdW5jdGlvbihoKXt2YXIgdj10aGlzLmdldEZpcnN0UmVuZGVyZWRSb3coKTtyZXR1cm4gaDwwJiZ2PD0wPyF0aGlzLmlzUm93SGVhZGVyUmVuZGVyZWQoaCk6aDx2fX0se2tleToiaXNSb3dBZnRl''@;'; + put 'put ''clJlbmRlcmVkUm93cyIsdmFsdWU6ZnVuY3Rpb24oaCl7cmV0dXJuIGg+dGhpcy5nZXRMYXN0UmVuZGVyZWRSb3coKX19LHtrZXk6ImlzQ29sdW1uQmVmb3JlUmVuZGVyZWRDb2x1bW5zIix2YWx1ZTpmdW5jdGlvbihoKXt2YXIgdj10aGlzLmdldEZpcnN0UmVuZGVyZWRDb2x1bW4oKTtyZXR1''@;'; + put 'put ''cm4gaDwwJiZ2PD0wPyF0aGlzLmlzQ29sdW1uSGVhZGVyUmVuZGVyZWQoaCk6aDx2fX0se2tleToiaXNDb2x1bW5BZnRlclJlbmRlcmVkQ29sdW1ucyIsdmFsdWU6ZnVuY3Rpb24oaCl7cmV0dXJuIHRoaXMuY29sdW1uRmlsdGVyJiZoPnRoaXMuZ2V0TGFzdFJlbmRlcmVkQ29sdW1uKCl9fSx7''@;'; + put 'put ''a2V5OiJpc0NvbHVtbkFmdGVyVmlld3BvcnQiLHZhbHVlOmZ1bmN0aW9uKGgpe3JldHVybiB0aGlzLmNvbHVtbkZpbHRlciYmaD50aGlzLmdldExhc3RWaXNpYmxlQ29sdW1uKCl9fSx7a2V5OiJpc1Jvd0FmdGVyVmlld3BvcnQiLHZhbHVlOmZ1bmN0aW9uKGgpe3JldHVybiB0aGlzLnJvd0Zp''@;'; + put 'put ''bHRlciYmaD50aGlzLmdldExhc3RWaXNpYmxlUm93KCl9fSx7a2V5OiJpc0NvbHVtbkJlZm9yZVZpZXdwb3J0Iix2YWx1ZTpmdW5jdGlvbihoKXtyZXR1cm4gdGhpcy5jb2x1bW5GaWx0ZXImJnRoaXMuY29sdW1uRmlsdGVyLnNvdXJjZVRvUmVuZGVyZWQoaCk8MCYmaD49MH19LHtrZXk6Imlz''@;'; + put 'put ''TGFzdFJvd0Z1bGx5VmlzaWJsZSIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXRMYXN0VmlzaWJsZVJvdygpPT09dGhpcy5nZXRMYXN0UmVuZGVyZWRSb3coKX19LHtrZXk6ImlzTGFzdENvbHVtbkZ1bGx5VmlzaWJsZSIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXRM''@;'; + put 'put ''YXN0VmlzaWJsZUNvbHVtbigpPT09dGhpcy5nZXRMYXN0UmVuZGVyZWRDb2x1bW4oKX19LHtrZXk6ImFsbFJvd3NJblZpZXdwb3J0Iix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygidG90YWxSb3dzIik9PT10aGlzLmdldFZpc2libGVSb3dzQ291''@;'; + put 'put ''bnQoKX19LHtrZXk6ImFsbENvbHVtbnNJblZpZXdwb3J0Iix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygidG90YWxDb2x1bW5zIik9PT10aGlzLmdldFZpc2libGVDb2x1bW5zQ291bnQoKX19LHtrZXk6ImdldFJvd0hlaWdodCIsdmFsdWU6ZnVu''@;'; + put 'put ''Y3Rpb24oaCl7cmV0dXJuIHRoaXMucm93VXRpbHMuZ2V0SGVpZ2h0KGgpfX0se2tleToiZ2V0Q29sdW1uSGVhZGVySGVpZ2h0Iix2YWx1ZTpmdW5jdGlvbihoKXtyZXR1cm4gdGhpcy5jb2x1bW5VdGlscy5nZXRIZWFkZXJIZWlnaHQoaCl9fSx7a2V5OiJnZXRDb2x1bW5XaWR0aCIsdmFsdWU6''@;'; + put 'put ''ZnVuY3Rpb24oaCl7cmV0dXJuIHRoaXMuY29sdW1uVXRpbHMuZ2V0V2lkdGgoaCl9fSx7a2V5OiJnZXRTdHJldGNoZWRDb2x1bW5XaWR0aCIsdmFsdWU6ZnVuY3Rpb24oaCl7cmV0dXJuIHRoaXMuY29sdW1uVXRpbHMuZ2V0U3RyZXRjaGVkQ29sdW1uV2lkdGgoaCl9fSx7a2V5OiJoYXNEZWZp''@;'; + put 'put ''bmVkU2l6ZSIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5oYXNUYWJsZUhlaWdodCYmdGhpcy5oYXNUYWJsZVdpZHRofX0se2tleToiZ2V0V2lkdGgiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIEUyKHRoaXMuVEFCTEUpfX0se2tleToiZ2V0SGVpZ2h0Iix2YWx1ZTpmdW5jdGlvbigp''@;'; + put 'put ''e3JldHVybiBEMSh0aGlzLlRBQkxFKX19LHtrZXk6ImdldFRvdGFsV2lkdGgiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9RTIodGhpcy5oaWRlcik7cmV0dXJuIDAhPT1oP2g6dGhpcy5nZXRXaWR0aCgpfX0se2tleToiZ2V0VG90YWxIZWlnaHQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9RDEo''@;'; + put 'put ''dGhpcy5oaWRlcik7cmV0dXJuIDAhPT1oP2g6dGhpcy5nZXRIZWlnaHQoKX19LHtrZXk6ImlzVmlzaWJsZSIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdU8odGhpcy5UQUJMRSl9fSx7a2V5OiJfbW9kaWZ5Um93SGVhZGVyV2lkdGgiLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB2PVUyKGgpP2go''@;'; + put 'put ''KTpudWxsO3JldHVybiBBcnJheS5pc0FycmF5KHYpPyh2PWZ1bmN0aW9uIE1XZShkKXtyZXR1cm4gZnVuY3Rpb24gVFdlKGQpe2lmKEFycmF5LmlzQXJyYXkoZCkpcmV0dXJuIGlkZShkKX0oZCl8fGZ1bmN0aW9uIHhXZShkKXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmbnVsbCE9''@;'; + put 'put ''ZFtTeW1ib2wuaXRlcmF0b3JdfHxudWxsIT1kWyJAQGl0ZXJhdG9yIl0pcmV0dXJuIEFycmF5LmZyb20oZCl9KGQpfHxVX2UoZCl8fGZ1bmN0aW9uIEVXZSgpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBzcHJlYWQgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4g''@;'; + put 'put ''b3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfSh2KSlbdi5sZW5ndGgtMV09dGhpcy5fY29ycmVjdFJvd0hlYWRlcldpZHRoKHZbdi5sZW5ndGgtMV0pOnY9dGhpcy5fY29ycmVjdFJvd0hl''@;'; + put 'put ''YWRlcldpZHRoKHYpLHZ9fSx7a2V5OiJfY29ycmVjdFJvd0hlYWRlcldpZHRoIix2YWx1ZTpmdW5jdGlvbihoKXt2YXIgdj1oO3JldHVybiJudW1iZXIiIT10eXBlb2YgaCYmKHY9dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoImRlZmF1bHRDb2x1bW5XaWR0aCIpKSx0aGlzLmNvcnJlY3RI''@;'; + put 'put ''ZWFkZXJXaWR0aCYmKHYrPTEpLHZ9fV0pLGR9KCk7Y29uc3QgbU89UFdlO3ZhciBKX2U9e2dldEZpcnN0UmVuZGVyZWRSb3c6ZnVuY3Rpb24oKXtyZXR1cm4gMD09PXRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJ0b3RhbFJvd3MiKT8tMTowfSxnZXRGaXJzdFZpc2libGVSb3c6ZnVuY3Rp''@;'; + put 'put ''b24oKXtyZXR1cm4gdGhpcy5nZXRGaXJzdFJlbmRlcmVkUm93KCl9LGdldExhc3RSZW5kZXJlZFJvdzpmdW5jdGlvbigpe3JldHVybiB0aGlzLmdldFJlbmRlcmVkUm93c0NvdW50KCktMX0sZ2V0TGFzdFZpc2libGVSb3c6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXRMYXN0UmVuZGVyZWRS''@;'; + put 'put ''b3coKX0sZ2V0UmVuZGVyZWRSb3dzQ291bnQ6ZnVuY3Rpb24oKXt2YXIgZz10aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygidG90YWxSb3dzIik7cmV0dXJuIE1hdGgubWluKHRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJmaXhlZFJvd3NUb3AiKSxnKX0sZ2V0VmlzaWJsZVJvd3NDb3Vu''@;'; + put 'put ''dDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmdldFJlbmRlcmVkUm93c0NvdW50KCl9fTtTZyhKX2UsIk1JWElOX05BTUUiLCJzdGlja3lSb3dzVG9wIix7d3JpdGFibGU6ITEsZW51bWVyYWJsZTohMX0pO2NvbnN0IFhfZT1KX2U7dmFyIEtfZT17Z2V0Rmlyc3RSZW5kZXJlZENvbHVtbjpmdW5j''@;'; + put 'put ''dGlvbigpe3ZhciBnPXRoaXMuZGF0YUFjY2Vzc09iamVjdC5zdGFydENvbHVtblJlbmRlcmVkO3JldHVybiBudWxsPT09Zz8tMTpnfSxnZXRGaXJzdFZpc2libGVDb2x1bW46ZnVuY3Rpb24oKXt2YXIgZz10aGlzLmRhdGFBY2Nlc3NPYmplY3Quc3RhcnRDb2x1bW5WaXNpYmxlO3JldHVybiBu''@;'; + put 'put ''dWxsPT09Zz8tMTpnfSxnZXRMYXN0UmVuZGVyZWRDb2x1bW46ZnVuY3Rpb24oKXt2YXIgZz10aGlzLmRhdGFBY2Nlc3NPYmplY3QuZW5kQ29sdW1uUmVuZGVyZWQ7cmV0dXJuIG51bGw9PT1nPy0xOmd9LGdldExhc3RWaXNpYmxlQ29sdW1uOmZ1bmN0aW9uKCl7dmFyIGc9dGhpcy5kYXRhQWNj''@;'; + put 'put ''ZXNzT2JqZWN0LmVuZENvbHVtblZpc2libGU7cmV0dXJuIG51bGw9PT1nPy0xOmd9LGdldFJlbmRlcmVkQ29sdW1uc0NvdW50OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZGF0YUFjY2Vzc09iamVjdC5jb3VudENvbHVtbnNSZW5kZXJlZH0sZ2V0VmlzaWJsZUNvbHVtbnNDb3VudDpmdW5jdGlv''@;'; + put 'put ''bigpe3JldHVybiB0aGlzLmRhdGFBY2Nlc3NPYmplY3QuY291bnRDb2x1bW5zVmlzaWJsZX19O1NnKEtfZSwiTUlYSU5fTkFNRSIsImNhbGN1bGF0ZWRDb2x1bW5zIix7d3JpdGFibGU6ITEsZW51bWVyYWJsZTohMX0pO2NvbnN0IG9kZT1LX2U7ZnVuY3Rpb24gYWRlKGQpe3JldHVybihhZGU9''@;'; + put 'put ''ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZyl7cmV0dXJuIHR5cGVvZiBnfTpmdW5jdGlvbihnKXtyZXR1cm4gZyYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZy5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZyE9''@;'; + put 'put ''PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGd9KShkKX1mdW5jdGlvbiAkX2UoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3Jp''@;'; + put 'put ''dGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX1mdW5jdGlvbiBsZGUoZCxnKXtyZXR1cm4obGRlPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHYseSl7cmV0dXJuIHYuX19wcm90b19fPXksdn0pKGQs''@;'; + put 'put ''Zyl9ZnVuY3Rpb24geldlKGQsZyl7aWYoZyYmKCJvYmplY3QiPT09YWRlKGcpfHwiZnVuY3Rpb24iPT10eXBlb2YgZykpcmV0dXJuIGc7aWYodm9pZCAwIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJEZXJpdmVkIGNvbnN0cnVjdG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0IG9yIHVuZGVm''@;'; + put 'put ''aW5lZCIpO3JldHVybiBmdW5jdGlvbiBHV2UoZCl7aWYodm9pZCAwPT09ZCl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3JldHVybiBkfShkKX1mdW5jdGlvbiBBZWUoZCl7cmV0dXJu''@;'; + put 'put ''KEFlZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihoKXtyZXR1cm4gaC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihoKX0pKGQpfXZhciBzZGU9ZnVuY3Rpb24oZCl7IWZ1bmN0aW9uIGpXZShkLGcpe2lmKCJmdW5j''@;'; + put 'put ''dGlvbiIhPXR5cGVvZiBnJiZudWxsIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiIpO2QucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZyYmZy5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTpkLHdy''@;'; + put 'put ''aXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxnJiZsZGUoZCxnKX0oaCxkKTt2YXIgZz1mdW5jdGlvbiBaV2UoZCl7dmFyIGc9ZnVuY3Rpb24gV1dlKCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBS''@;'; + put 'put ''ZWZsZWN0fHwhUmVmbGVjdC5jb25zdHJ1Y3R8fFJlZmxlY3QuY29uc3RydWN0LnNoYW0pcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIFByb3h5KXJldHVybiEwO3RyeXtyZXR1cm4gQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4s''@;'; + put 'put ''W10sZnVuY3Rpb24oKXt9KSksITB9Y2F0Y2goZCl7cmV0dXJuITF9fSgpO3JldHVybiBmdW5jdGlvbigpe3ZhciB5LHY9QWVlKGQpO2lmKGcpe3ZhciBDPUFlZSh0aGlzKS5jb25zdHJ1Y3Rvcjt5PVJlZmxlY3QuY29uc3RydWN0KHYsYXJndW1lbnRzLEMpfWVsc2UgeT12LmFwcGx5KHRoaXMs''@;'; + put 'put ''YXJndW1lbnRzKTtyZXR1cm4geldlKHRoaXMseSl9fShoKTtmdW5jdGlvbiBoKHYseSxDLEkpe3JldHVybiBmdW5jdGlvbiBWV2UoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0odGhpcyxo''@;'; + put 'put ''KSxnLmNhbGwodGhpcyx2LHksQyxJLHhTKX1yZXR1cm4gZnVuY3Rpb24gTldlKGQsZyxoKXtyZXR1cm4gZyYmJF9lKGQucHJvdG90eXBlLGcpLGgmJiRfZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGR9KGgpfShtTyk7QjIoc2RlLFhf''@;'; + put 'put ''ZSksQjIoc2RlLG9kZSk7Y29uc3QgWVdlPXNkZTtmdW5jdGlvbiBxX2UoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9i''@;'; + put 'put ''amVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX1mdW5jdGlvbiB1ZGUoZCxnLGgpe3JldHVybiBnIGluIGQ/T2JqZWN0LmRlZmluZVByb3BlcnR5KGQsZyx7dmFsdWU6aCxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmRbZ109aCxkfXZhciBKV2U9ZnVu''@;'; + put 'put ''Y3Rpb24oKXtmdW5jdGlvbiBkKGcpeyhmdW5jdGlvbiBVV2UoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0pKHRoaXMsZCksdWRlKHRoaXMsImRhdGFBY2Nlc3NPYmplY3QiLHZvaWQgMCks''@;'; + put 'put ''dWRlKHRoaXMsImxhc3RTY3JvbGxlZENvbHVtblBvcyIsLTEpLHVkZSh0aGlzLCJsYXN0U2Nyb2xsZWRSb3dQb3MiLC0xKSx0aGlzLmRhdGFBY2Nlc3NPYmplY3Q9Z31yZXR1cm4gZnVuY3Rpb24gUVdlKGQsZyxoKXtnJiZxX2UoZC5wcm90b3R5cGUsZyksaCYmcV9lKGQsaCksT2JqZWN0LmRl''@;'; + put 'put ''ZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGQsW3trZXk6InNjcm9sbFZpZXdwb3J0Iix2YWx1ZTpmdW5jdGlvbihoLHYseSxDLEkpe3ZhciBqPXRoaXMuc2Nyb2xsVmlld3BvcnRIb3Jpem9udGFsbHkoaC5jb2wseSxJKSx1ZT10aGlzLnNjcm9sbFZpZXdwb3J0''@;'; + put 'put ''VmVydGljYWxseShoLnJvdyx2LEMpO3JldHVybiBqfHx1ZX19LHtrZXk6InNjcm9sbFZpZXdwb3J0SG9yaXpvbnRhbGx5Iix2YWx1ZTpmdW5jdGlvbihoLHYseSl7dmFyIEM9dGhpcy5kYXRhQWNjZXNzT2JqZWN0LGo9Qy50b3RhbENvbHVtbnM7aWYoIUMuZHJhd258fCFOdW1iZXIuaXNJbnRl''@;'; + put 'put ''Z2VyKGgpfHxoPDB8fGg+ailyZXR1cm4hMTt2YXIgdWU9dGhpcy5nZXRGaXJzdFZpc2libGVDb2x1bW4oKSxfZT10aGlzLmdldExhc3RWaXNpYmxlQ29sdW1uKCksQmU9dm9pZCAwPT09diYmdm9pZCAwPT09eSxOZT10aGlzLmRhdGFBY2Nlc3NPYmplY3QsZHQ9TmUuaW5saW5lU3RhcnRPdmVy''@;'; + put 'put ''bGF5O2lmKEJlJiZoPE5lLmZpeGVkQ29sdW1uc1N0YXJ0KXJldHVybiExO3ZhciBPdD0hMTtyZXR1cm4tMT09PXVlP090PWR0LnNjcm9sbFRvKGgsQmU/aD50aGlzLmxhc3RTY3JvbGxlZENvbHVtblBvczp2KTooQmUmJihoPHVlfHxoPl9lKXx8IUJlKSYmKE90PWR0LnNjcm9sbFRvKGgsQmU/''@;'; + put 'put ''aD5fZTp2KSksT3QmJih0aGlzLmxhc3RTY3JvbGxlZENvbHVtblBvcz1oKSxPdH19LHtrZXk6InNjcm9sbFZpZXdwb3J0VmVydGljYWxseSIsdmFsdWU6ZnVuY3Rpb24oaCx2LHkpe3ZhciBDPXRoaXMuZGF0YUFjY2Vzc09iamVjdCxqPUMudG90YWxSb3dzO2lmKCFDLmRyYXdufHwhTnVtYmVy''@;'; + put 'put ''LmlzSW50ZWdlcihoKXx8aDwwfHxoPmopcmV0dXJuITE7dmFyIHVlPXRoaXMuZ2V0Rmlyc3RWaXNpYmxlUm93KCksX2U9dGhpcy5nZXRMYXN0VmlzaWJsZVJvdygpLEJlPXZvaWQgMD09PXYmJnZvaWQgMD09PXksTmU9dGhpcy5kYXRhQWNjZXNzT2JqZWN0LE90PU5lLnRvcE92ZXJsYXk7aWYo''@;'; + put 'put ''QmUmJihoPE5lLmZpeGVkUm93c1RvcHx8aD5qLU5lLmZpeGVkUm93c0JvdHRvbS0xKSlyZXR1cm4hMTt2YXIgJHQ9ITE7cmV0dXJuLTE9PT11ZT8kdD1PdC5zY3JvbGxUbyhoLEJlP2g+dGhpcy5sYXN0U2Nyb2xsZWRSb3dQb3M6eSk6KEJlJiYoaDx1ZXx8aD5fZSl8fCFCZSkmJigkdD1PdC5z''@;'; + put 'put ''Y3JvbGxUbyhoLEJlP2g+X2U6eSkpLCR0JiYodGhpcy5sYXN0U2Nyb2xsZWRSb3dQb3M9aCksJHR9fSx7a2V5OiJnZXRGaXJzdFZpc2libGVSb3ciLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9dGhpcy5kYXRhQWNjZXNzT2JqZWN0LHY9aC50b3BPdmVybGF5LHk9aC53dFRhYmxlLEM9aC53dFZp''@;'; + put 'put ''ZXdwb3J0LEk9aC50b3RhbFJvd3Msaj1oLmZpeGVkUm93c1RvcCx1ZT1oLnJvb3RXaW5kb3csX2U9eS5nZXRGaXJzdFZpc2libGVSb3coKTtpZih2Lm1haW5UYWJsZVNjcm9sbGFibGVFbGVtZW50PT09dWUpe3ZhciBCZT1qdSh5Lnd0Um9vdEVsZW1lbnQpLE5lPU12KHkuaGlkZXIpLEtlPU12''@;'; + put 'put ''KHVlKSxkdD1GWih1ZSx1ZSk7aWYoQmUudG9wK05lLUtlPD1kdCl7dmFyIE90PUMuZ2V0Q29sdW1uSGVhZGVySGVpZ2h0KCk7T3QrPXYuc3VtQ2VsbFNpemVzKDAsaik7Zm9yKHZhciAkdD1JOyR0PjA7JHQtLSlpZihPdCs9di5zdW1DZWxsU2l6ZXMoJHQtMSwkdCksQmUudG9wK05lLU90PD1k''@;'; + put 'put ''dCl7X2U9JHQ7YnJlYWt9fX1yZXR1cm4gX2V9fSx7a2V5OiJnZXRMYXN0VmlzaWJsZVJvdyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD10aGlzLmRhdGFBY2Nlc3NPYmplY3Qsdj1oLnRvcE92ZXJsYXkseT1oLnd0VGFibGUsQz1oLnd0Vmlld3BvcnQsST1oLnRvdGFsUm93cyxqPWgucm9vdFdp''@;'; + put 'put ''bmRvdyx1ZT15LmdldExhc3RWaXNpYmxlUm93KCk7aWYodi5tYWluVGFibGVTY3JvbGxhYmxlRWxlbWVudD09PWope3ZhciBfZT1qdSh5Lnd0Um9vdEVsZW1lbnQpLEJlPUZaKGosaik7aWYoX2UudG9wPkJlKWZvcih2YXIgTmU9TXYoaiksS2U9Qy5nZXRDb2x1bW5IZWFkZXJIZWlnaHQoKSxk''@;'; + put 'put ''dD0xO2R0PD1JO2R0KyspaWYoS2UrPXYuc3VtQ2VsbFNpemVzKGR0LTEsZHQpLF9lLnRvcCtLZS1CZT49TmUpe3VlPWR0LTI7YnJlYWt9fXJldHVybiB1ZX19LHtrZXk6ImdldEZpcnN0VmlzaWJsZUNvbHVtbiIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD10aGlzLmRhdGFBY2Nlc3NPYmplY3Qs''@;'; + put 'put ''dj1oLmlubGluZVN0YXJ0T3ZlcmxheSx5PWgud3RUYWJsZSxDPWgud3RWaWV3cG9ydCxJPWgudG90YWxDb2x1bW5zLGo9aC5yb290V2luZG93LHVlPXkuZ2V0Rmlyc3RWaXNpYmxlQ29sdW1uKCk7aWYodi5tYWluVGFibGVTY3JvbGxhYmxlRWxlbWVudD09PWope3ZhciBfZT1qdSh5Lnd0Um9v''@;'; + put 'put ''dEVsZW1lbnQpLEJlPU5aKHkuaGlkZXIpLE5lPU5aKGopLEtlPU1hdGguYWJzKHRlZShqLGopKTtpZihfZS5sZWZ0K0JlLU5lPD1LZSlmb3IodmFyIGR0PUMuZ2V0Um93SGVhZGVyV2lkdGgoKSxPdD1JO090PjA7T3QtLSlpZihkdCs9di5zdW1DZWxsU2l6ZXMoT3QtMSxPdCksX2UubGVmdCtC''@;'; + put 'put ''ZS1kdDw9S2Upe3VlPU90O2JyZWFrfX1yZXR1cm4gdWV9fSx7a2V5OiJnZXRMYXN0VmlzaWJsZUNvbHVtbiIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD10aGlzLmRhdGFBY2Nlc3NPYmplY3Qsdj1oLmlubGluZVN0YXJ0T3ZlcmxheSx5PWgud3RUYWJsZSxDPWgud3RWaWV3cG9ydCxJPWgudG90''@;'; + put 'put ''YWxDb2x1bW5zLGo9aC5yb290V2luZG93LHVlPXkuZ2V0TGFzdFZpc2libGVDb2x1bW4oKTtpZih2Lm1haW5UYWJsZVNjcm9sbGFibGVFbGVtZW50PT09ail7dmFyIF9lPWp1KHkud3RSb290RWxlbWVudCksQmU9TWF0aC5hYnModGVlKGosaikpO2lmKF9lLmxlZnQ+QmUpZm9yKHZhciBOZT1O''@;'; + put 'put ''WihqKSxLZT1DLmdldFJvd0hlYWRlcldpZHRoKCksZHQ9MTtkdDw9STtkdCsrKWlmKEtlKz12LnN1bUNlbGxTaXplcyhkdC0xLGR0KSxfZS5sZWZ0K0tlLUJlPj1OZSl7dWU9ZHQtMjticmVha319cmV0dXJuIHVlfX1dKSxkfSgpO2NvbnN0IFhXZT1KV2U7ZnVuY3Rpb24gS1dlKGQsZyl7aWYo''@;'; + put 'put ''IShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9ZnVuY3Rpb24gZUNlKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5j''@;'; + put 'put ''b25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19ZnVuY3Rpb24gcVdlKGQsZyxoKXsoZnVuY3Rpb24gZVllKGQsZyl7aWYoZy5oYXMoZCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGluaXRpYWxp''@;'; + put 'put ''emUgdGhlIHNhbWUgcHJpdmF0ZSBlbGVtZW50cyB0d2ljZSBvbiBhbiBvYmplY3QiKX0pKGQsZyksZy5zZXQoZCxoKX1mdW5jdGlvbiB0Q2UoZCxnLGgpe3JldHVybiBnIGluIGQ/T2JqZWN0LmRlZmluZVByb3BlcnR5KGQsZyx7dmFsdWU6aCxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZToh''@;'; + put 'put ''MCx3cml0YWJsZTohMH0pOmRbZ109aCxkfWZ1bmN0aW9uIEpaKGQsZyl7cmV0dXJuIGZ1bmN0aW9uIHRZZShkLGcpe3JldHVybiBnLmdldD9nLmdldC5jYWxsKGQpOmcudmFsdWV9KGQsbkNlKGQsZywiZ2V0IikpfWZ1bmN0aW9uIG5ZZShkLGcsaCl7cmV0dXJuIGZ1bmN0aW9uIHJZZShkLGcs''@;'; + put 'put ''aCl7aWYoZy5zZXQpZy5zZXQuY2FsbChkLGgpO2Vsc2V7aWYoIWcud3JpdGFibGUpdGhyb3cgbmV3IFR5cGVFcnJvcigiYXR0ZW1wdGVkIHRvIHNldCByZWFkIG9ubHkgcHJpdmF0ZSBmaWVsZCIpO2cudmFsdWU9aH19KGQsbkNlKGQsZywic2V0IiksaCksaH1mdW5jdGlvbiBuQ2UoZCxnLGgp''@;'; + put 'put ''e2lmKCFnLmhhcyhkKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJhdHRlbXB0ZWQgdG8gIitoKyIgcHJpdmF0ZSBmaWVsZCBvbiBub24taW5zdGFuY2UiKTtyZXR1cm4gZy5nZXQoZCl9dmFyIERTPW5ldyBXZWFrTWFwLGlZZT1mdW5jdGlvbigpe2Z1bmN0aW9uIGQoZyxoKXt2YXIgdj1hcmd1bWVu''@;'; + put 'put ''dHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXSYmYXJndW1lbnRzWzJdO0tXZSh0aGlzLGQpLHRDZSh0aGlzLCJyb3ciLG51bGwpLHRDZSh0aGlzLCJjb2wiLG51bGwpLHFXZSh0aGlzLERTLHt3cml0YWJsZTohMCx2YWx1ZTohMX0pLG5ZZSh0aGlzLERTLHYpLHZvaWQgMCE9PWcm''@;'; + put 'put ''JnZvaWQgMCE9PWgmJih0aGlzLnJvdz1nLHRoaXMuY29sPWgpfXJldHVybiBmdW5jdGlvbiAkV2UoZCxnLGgpe2cmJmVDZShkLnByb3RvdHlwZSxnKSxoJiZlQ2UoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oZCxbe2tleToiaXNWYWxp''@;'; + put 'put ''ZCIsdmFsdWU6ZnVuY3Rpb24oaCl7cmV0dXJuISh0aGlzLnJvdzwwfHx0aGlzLmNvbDwwfHx0aGlzLnJvdz49aC5nZXRTZXR0aW5nKCJ0b3RhbFJvd3MiKXx8dGhpcy5jb2w+PWguZ2V0U2V0dGluZygidG90YWxDb2x1bW5zIikpfX0se2tleToiaXNFcXVhbCIsdmFsdWU6ZnVuY3Rpb24oaCl7''@;'; + put 'put ''cmV0dXJuIGg9PT10aGlzfHx0aGlzLnJvdz09PWgucm93JiZ0aGlzLmNvbD09PWguY29sfX0se2tleToiaXNTb3V0aEVhc3RPZiIsdmFsdWU6ZnVuY3Rpb24oaCl7cmV0dXJuIHRoaXMucm93Pj1oLnJvdyYmKEpaKHRoaXMsRFMpP3RoaXMuY29sPD1oLmNvbDp0aGlzLmNvbD49aC5jb2wpfX0s''@;'; + put 'put ''e2tleToiaXNOb3J0aFdlc3RPZiIsdmFsdWU6ZnVuY3Rpb24oaCl7cmV0dXJuIHRoaXMucm93PD1oLnJvdyYmKEpaKHRoaXMsRFMpP3RoaXMuY29sPj1oLmNvbDp0aGlzLmNvbDw9aC5jb2wpfX0se2tleToiaXNTb3V0aFdlc3RPZiIsdmFsdWU6ZnVuY3Rpb24oaCl7cmV0dXJuIHRoaXMucm93''@;'; + put 'put ''Pj1oLnJvdyYmKEpaKHRoaXMsRFMpP3RoaXMuY29sPj1oLmNvbDp0aGlzLmNvbDw9aC5jb2wpfX0se2tleToiaXNOb3J0aEVhc3RPZiIsdmFsdWU6ZnVuY3Rpb24oaCl7cmV0dXJuIHRoaXMucm93PD1oLnJvdyYmKEpaKHRoaXMsRFMpP3RoaXMuY29sPD1oLmNvbDp0aGlzLmNvbD49aC5jb2wp''@;'; + put 'put ''fX0se2tleToibm9ybWFsaXplIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJvdz1udWxsPT09dGhpcy5yb3c/dGhpcy5yb3c6TWF0aC5tYXgodGhpcy5yb3csMCksdGhpcy5jb2w9bnVsbD09PXRoaXMuY29sP3RoaXMuY29sOk1hdGgubWF4KHRoaXMuY29sLDApLHRoaXN9fSx7a2V5''@;'; + put 'put ''OiJjbG9uZSIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IGQodGhpcy5yb3csdGhpcy5jb2wsSloodGhpcyxEUykpfX0se2tleToidG9PYmplY3QiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJue3Jvdzp0aGlzLnJvdyxjb2w6dGhpcy5jb2x9fX1dKSxkfSgpO2NvbnN0IGNkZT1pWWU7ZnVu''@;'; + put 'put ''Y3Rpb24gb1llKGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9ZnVuY3Rpb24gckNlKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYu''@;'; + put 'put ''ZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19ZnVuY3Rpb24gbFllKGQsZyxoKXsoZnVuY3Rpb24gc1llKGQsZyl7aWYoZy5oYXMoZCkpdGhyb3cgbmV3IFR5cGVFcnJv''@;'; + put 'put ''cigiQ2Fubm90IGluaXRpYWxpemUgdGhlIHNhbWUgcHJpdmF0ZSBlbGVtZW50cyB0d2ljZSBvbiBhbiBvYmplY3QiKX0pKGQsZyksZy5zZXQoZCxoKX1mdW5jdGlvbiBmZGUoZCxnLGgpe3JldHVybiBnIGluIGQ/T2JqZWN0LmRlZmluZVByb3BlcnR5KGQsZyx7dmFsdWU6aCxlbnVtZXJhYmxl''@;'; + put 'put ''OiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmRbZ109aCxkfWZ1bmN0aW9uIFRnKGQsZyl7cmV0dXJuIGZ1bmN0aW9uIHVZZShkLGcpe3JldHVybiBnLmdldD9nLmdldC5jYWxsKGQpOmcudmFsdWV9KGQsaUNlKGQsZywiZ2V0IikpfWZ1bmN0aW9uIGNZZShkLGcsaCl7cmV0dXJu''@;'; + put 'put ''IGZ1bmN0aW9uIGZZZShkLGcsaCl7aWYoZy5zZXQpZy5zZXQuY2FsbChkLGgpO2Vsc2V7aWYoIWcud3JpdGFibGUpdGhyb3cgbmV3IFR5cGVFcnJvcigiYXR0ZW1wdGVkIHRvIHNldCByZWFkIG9ubHkgcHJpdmF0ZSBmaWVsZCIpO2cudmFsdWU9aH19KGQsaUNlKGQsZywic2V0IiksaCksaH1m''@;'; + put 'put ''dW5jdGlvbiBpQ2UoZCxnLGgpe2lmKCFnLmhhcyhkKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJhdHRlbXB0ZWQgdG8gIitoKyIgcHJpdmF0ZSBmaWVsZCBvbiBub24taW5zdGFuY2UiKTtyZXR1cm4gZy5nZXQoZCl9dmFyIE9wPW5ldyBXZWFrTWFwLGhZZT1mdW5jdGlvbigpe2Z1bmN0aW9uIGQo''@;'; + put 'put ''Zyl7dmFyIGg9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOmcsdj1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06Zyx5PWFyZ3VtZW50cy5sZW5ndGg+MyYmdm9pZCAwIT09YXJndW1lbnRz''@;'; + put 'put ''WzNdJiZhcmd1bWVudHNbM107b1llKHRoaXMsZCksZmRlKHRoaXMsImhpZ2hsaWdodCIsbnVsbCksZmRlKHRoaXMsImZyb20iLG51bGwpLGZkZSh0aGlzLCJ0byIsbnVsbCksbFllKHRoaXMsT3Ase3dyaXRhYmxlOiEwLHZhbHVlOiExfSksdGhpcy5oaWdobGlnaHQ9Zy5jbG9uZSgpLm5vcm1h''@;'; + put 'put ''bGl6ZSgpLHRoaXMuZnJvbT1oLmNsb25lKCksdGhpcy50bz12LmNsb25lKCksY1llKHRoaXMsT3AseSl9cmV0dXJuIGZ1bmN0aW9uIGFZZShkLGcsaCl7ZyYmckNlKGQucHJvdG90eXBlLGcpLGgmJnJDZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJs''@;'; + put 'put ''ZTohMX0pfShkLFt7a2V5OiJzZXRIaWdobGlnaHQiLHZhbHVlOmZ1bmN0aW9uKGgpe3JldHVybiB0aGlzLmhpZ2hsaWdodD1oLmNsb25lKCkubm9ybWFsaXplKCksdGhpc319LHtrZXk6InNldEZyb20iLHZhbHVlOmZ1bmN0aW9uKGgpe3JldHVybiB0aGlzLmZyb209aC5jbG9uZSgpLHRoaXN9''@;'; + put 'put ''fSx7a2V5OiJzZXRUbyIsdmFsdWU6ZnVuY3Rpb24oaCl7cmV0dXJuIHRoaXMudG89aC5jbG9uZSgpLHRoaXN9fSx7a2V5OiJpc1ZhbGlkIix2YWx1ZTpmdW5jdGlvbihoKXtyZXR1cm4gdGhpcy5mcm9tLmlzVmFsaWQoaCkmJnRoaXMudG8uaXNWYWxpZChoKX19LHtrZXk6ImlzU2luZ2xlIix2''@;'; + put 'put ''YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmZyb20ucm93Pj0wJiZ0aGlzLmZyb20ucm93PT09dGhpcy50by5yb3cmJnRoaXMuZnJvbS5jb2w+PTAmJnRoaXMuZnJvbS5jb2w9PT10aGlzLnRvLmNvbH19LHtrZXk6ImdldE91dGVySGVpZ2h0Iix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBN''@;'; + put 'put ''YXRoLm1heCh0aGlzLmZyb20ucm93LHRoaXMudG8ucm93KS1NYXRoLm1pbih0aGlzLmZyb20ucm93LHRoaXMudG8ucm93KSsxfX0se2tleToiZ2V0T3V0ZXJXaWR0aCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gTWF0aC5tYXgodGhpcy5mcm9tLmNvbCx0aGlzLnRvLmNvbCktTWF0aC5taW4o''@;'; + put 'put ''dGhpcy5mcm9tLmNvbCx0aGlzLnRvLmNvbCkrMX19LHtrZXk6ImdldEhlaWdodCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD1NYXRoLm1heCh0aGlzLmZyb20ucm93LDApLHY9TWF0aC5tYXgodGhpcy50by5yb3csMCk7cmV0dXJuIE1hdGgubWF4KGgsdiktTWF0aC5taW4oaCx2KSsxfX0se2tl''@;'; + put 'put ''eToiZ2V0V2lkdGgiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9TWF0aC5tYXgodGhpcy5mcm9tLmNvbCwwKSx2PU1hdGgubWF4KHRoaXMudG8uY29sLDApO3JldHVybiBNYXRoLm1heChoLHYpLU1hdGgubWluKGgsdikrMX19LHtrZXk6ImdldENlbGxzQ291bnQiLHZhbHVlOmZ1bmN0aW9uKCl7''@;'; + put 'put ''cmV0dXJuIHRoaXMuZ2V0V2lkdGgoKSp0aGlzLmdldEhlaWdodCgpfX0se2tleToiaW5jbHVkZXMiLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB2PWgucm93LHk9aC5jb2wsQz10aGlzLmdldE91dGVyVG9wU3RhcnRDb3JuZXIoKSxJPXRoaXMuZ2V0T3V0ZXJCb3R0b21FbmRDb3JuZXIoKTtyZXR1''@;'; + put 'put ''cm4gQy5yb3c8PXYmJkkucm93Pj12JiZDLmNvbDw9eSYmSS5jb2w+PXl9fSx7a2V5OiJpbmNsdWRlc1JhbmdlIix2YWx1ZTpmdW5jdGlvbihoKXtyZXR1cm4gdGhpcy5pbmNsdWRlcyhoLmdldE91dGVyVG9wU3RhcnRDb3JuZXIoKSkmJnRoaXMuaW5jbHVkZXMoaC5nZXRPdXRlckJvdHRvbUVu''@;'; + put 'put ''ZENvcm5lcigpKX19LHtrZXk6ImlzRXF1YWwiLHZhbHVlOmZ1bmN0aW9uKGgpe3JldHVybiBNYXRoLm1pbih0aGlzLmZyb20ucm93LHRoaXMudG8ucm93KT09PU1hdGgubWluKGguZnJvbS5yb3csaC50by5yb3cpJiZNYXRoLm1heCh0aGlzLmZyb20ucm93LHRoaXMudG8ucm93KT09PU1hdGgu''@;'; + put 'put ''bWF4KGguZnJvbS5yb3csaC50by5yb3cpJiZNYXRoLm1pbih0aGlzLmZyb20uY29sLHRoaXMudG8uY29sKT09PU1hdGgubWluKGguZnJvbS5jb2wsaC50by5jb2wpJiZNYXRoLm1heCh0aGlzLmZyb20uY29sLHRoaXMudG8uY29sKT09PU1hdGgubWF4KGguZnJvbS5jb2wsaC50by5jb2wpfX0s''@;'; + put 'put ''e2tleToib3ZlcmxhcHMiLHZhbHVlOmZ1bmN0aW9uKGgpe3JldHVybiBoLmlzU291dGhFYXN0T2YodGhpcy5nZXRPdXRlclRvcExlZnRDb3JuZXIoKSkmJmguaXNOb3J0aFdlc3RPZih0aGlzLmdldE91dGVyQm90dG9tUmlnaHRDb3JuZXIoKSl9fSx7a2V5OiJpc1NvdXRoRWFzdE9mIix2YWx1''@;'; + put 'put ''ZTpmdW5jdGlvbihoKXtyZXR1cm4gdGhpcy5nZXRPdXRlclRvcExlZnRDb3JuZXIoKS5pc1NvdXRoRWFzdE9mKGgpfHx0aGlzLmdldE91dGVyQm90dG9tUmlnaHRDb3JuZXIoKS5pc1NvdXRoRWFzdE9mKGgpfX0se2tleToiaXNOb3J0aFdlc3RPZiIsdmFsdWU6ZnVuY3Rpb24oaCl7cmV0dXJu''@;'; + put 'put ''IHRoaXMuZ2V0T3V0ZXJUb3BMZWZ0Q29ybmVyKCkuaXNOb3J0aFdlc3RPZihoKXx8dGhpcy5nZXRPdXRlckJvdHRvbVJpZ2h0Q29ybmVyKCkuaXNOb3J0aFdlc3RPZihoKX19LHtrZXk6ImlzT3ZlcmxhcHBpbmdIb3Jpem9udGFsbHkiLHZhbHVlOmZ1bmN0aW9uKGgpe3JldHVybiB0aGlzLmdl''@;'; + put 'put ''dE91dGVyVG9wUmlnaHRDb3JuZXIoKS5jb2w+PWguZ2V0T3V0ZXJUb3BMZWZ0Q29ybmVyKCkuY29sJiZ0aGlzLmdldE91dGVyVG9wUmlnaHRDb3JuZXIoKS5jb2w8PWguZ2V0T3V0ZXJUb3BSaWdodENvcm5lcigpLmNvbHx8dGhpcy5nZXRPdXRlclRvcExlZnRDb3JuZXIoKS5jb2w8PWguZ2V0''@;'; + put 'put ''T3V0ZXJUb3BSaWdodENvcm5lcigpLmNvbCYmdGhpcy5nZXRPdXRlclRvcExlZnRDb3JuZXIoKS5jb2w+PWguZ2V0T3V0ZXJUb3BMZWZ0Q29ybmVyKCkuY29sfX0se2tleToiaXNPdmVybGFwcGluZ1ZlcnRpY2FsbHkiLHZhbHVlOmZ1bmN0aW9uKGgpe3JldHVybiB0aGlzLmdldE91dGVyQm90''@;'; + put 'put ''dG9tUmlnaHRDb3JuZXIoKS5yb3c+PWguZ2V0T3V0ZXJUb3BSaWdodENvcm5lcigpLnJvdyYmdGhpcy5nZXRPdXRlckJvdHRvbVJpZ2h0Q29ybmVyKCkucm93PD1oLmdldE91dGVyQm90dG9tUmlnaHRDb3JuZXIoKS5yb3d8fHRoaXMuZ2V0T3V0ZXJUb3BSaWdodENvcm5lcigpLnJvdzw9aC5n''@;'; + put 'put ''ZXRPdXRlckJvdHRvbVJpZ2h0Q29ybmVyKCkucm93JiZ0aGlzLmdldE91dGVyVG9wUmlnaHRDb3JuZXIoKS5yb3c+PWguZ2V0T3V0ZXJUb3BSaWdodENvcm5lcigpLnJvd319LHtrZXk6ImV4cGFuZCIsdmFsdWU6ZnVuY3Rpb24oaCl7dmFyIHY9dGhpcy5nZXRPdXRlclRvcFN0YXJ0Q29ybmVy''@;'; + put 'put ''KCkseT10aGlzLmdldE91dGVyQm90dG9tRW5kQ29ybmVyKCk7cmV0dXJuKGgucm93PHYucm93fHxoLmNvbDx2LmNvbHx8aC5yb3c+eS5yb3d8fGguY29sPnkuY29sKSYmKHRoaXMuZnJvbT10aGlzLl9jcmVhdGVDZWxsQ29vcmRzKE1hdGgubWluKHYucm93LGgucm93KSxNYXRoLm1pbih2LmNv''@;'; + put 'put ''bCxoLmNvbCkpLHRoaXMudG89dGhpcy5fY3JlYXRlQ2VsbENvb3JkcyhNYXRoLm1heCh5LnJvdyxoLnJvdyksTWF0aC5tYXgoeS5jb2wsaC5jb2wpKSwhMCl9fSx7a2V5OiJleHBhbmRCeVJhbmdlIix2YWx1ZTpmdW5jdGlvbihoKXtpZih0aGlzLmluY2x1ZGVzUmFuZ2UoaCl8fCF0aGlzLm92''@;'; + put 'put ''ZXJsYXBzKGgpKXJldHVybiExO3ZhciB2PXRoaXMuZ2V0T3V0ZXJUb3BTdGFydENvcm5lcigpLHk9dGhpcy5nZXRPdXRlckJvdHRvbUVuZENvcm5lcigpLEM9dGhpcy5nZXREaXJlY3Rpb24oKSxJPWguZ2V0T3V0ZXJUb3BTdGFydENvcm5lcigpLGo9aC5nZXRPdXRlckJvdHRvbUVuZENvcm5l''@;'; + put 'put ''cigpLHVlPU1hdGgubWluKHYucm93LEkucm93KSxfZT1NYXRoLm1pbih2LmNvbCxJLmNvbCksQmU9TWF0aC5tYXgoeS5yb3csai5yb3cpLE5lPU1hdGgubWF4KHkuY29sLGouY29sKSxLZT10aGlzLl9jcmVhdGVDZWxsQ29vcmRzKHVlLF9lKSxkdD10aGlzLl9jcmVhdGVDZWxsQ29vcmRzKEJl''@;'; + put 'put ''LE5lKTtyZXR1cm4gdGhpcy5mcm9tPUtlLHRoaXMudG89ZHQsdGhpcy5zZXREaXJlY3Rpb24oQyksdGhpcy5oaWdobGlnaHQucm93PT09dGhpcy5nZXRPdXRlckJvdHRvbVJpZ2h0Q29ybmVyKCkucm93JiYiTi1TIj09PXRoaXMuZ2V0VmVydGljYWxEaXJlY3Rpb24oKSYmdGhpcy5mbGlwRGly''@;'; + put 'put ''ZWN0aW9uVmVydGljYWxseSgpLHRoaXMuaGlnaGxpZ2h0LmNvbD09PXRoaXMuZ2V0T3V0ZXJUb3BSaWdodENvcm5lcigpLmNvbCYmIlctRSI9PT10aGlzLmdldEhvcml6b250YWxEaXJlY3Rpb24oKSYmdGhpcy5mbGlwRGlyZWN0aW9uSG9yaXpvbnRhbGx5KCksITB9fSx7a2V5OiJnZXREaXJl''@;'; + put 'put ''Y3Rpb24iLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZnJvbS5pc05vcnRoV2VzdE9mKHRoaXMudG8pPyJOVy1TRSI6dGhpcy5mcm9tLmlzTm9ydGhFYXN0T2YodGhpcy50byk/Ik5FLVNXIjp0aGlzLmZyb20uaXNTb3V0aEVhc3RPZih0aGlzLnRvKT8iU0UtTlciOnRoaXMuZnJvbS5p''@;'; + put 'put ''c1NvdXRoV2VzdE9mKHRoaXMudG8pPyJTVy1ORSI6dm9pZCAwfX0se2tleToic2V0RGlyZWN0aW9uIix2YWx1ZTpmdW5jdGlvbihoKXtzd2l0Y2goaCl7Y2FzZSJOVy1TRSI6dmFyIHY9W3RoaXMuZ2V0T3V0ZXJUb3BMZWZ0Q29ybmVyKCksdGhpcy5nZXRPdXRlckJvdHRvbVJpZ2h0Q29ybmVy''@;'; + put 'put ''KCldO3RoaXMuZnJvbT12WzBdLHRoaXMudG89dlsxXTticmVhaztjYXNlIk5FLVNXIjp2YXIgeT1bdGhpcy5nZXRPdXRlclRvcFJpZ2h0Q29ybmVyKCksdGhpcy5nZXRPdXRlckJvdHRvbUxlZnRDb3JuZXIoKV07dGhpcy5mcm9tPXlbMF0sdGhpcy50bz15WzFdO2JyZWFrO2Nhc2UiU0UtTlci''@;'; + put 'put ''OnZhciBDPVt0aGlzLmdldE91dGVyQm90dG9tUmlnaHRDb3JuZXIoKSx0aGlzLmdldE91dGVyVG9wTGVmdENvcm5lcigpXTt0aGlzLmZyb209Q1swXSx0aGlzLnRvPUNbMV07YnJlYWs7Y2FzZSJTVy1ORSI6dmFyIEk9W3RoaXMuZ2V0T3V0ZXJCb3R0b21MZWZ0Q29ybmVyKCksdGhpcy5nZXRP''@;'; + put 'put ''dXRlclRvcFJpZ2h0Q29ybmVyKCldO3RoaXMuZnJvbT1JWzBdLHRoaXMudG89SVsxXX19fSx7a2V5OiJnZXRWZXJ0aWNhbERpcmVjdGlvbiIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm5bIk5FLVNXIiwiTlctU0UiXS5pbmRleE9mKHRoaXMuZ2V0RGlyZWN0aW9uKCkpPi0xPyJOLVMiOiJTLU4i''@;'; + put 'put ''fX0se2tleToiZ2V0SG9yaXpvbnRhbERpcmVjdGlvbiIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm5bIk5XLVNFIiwiU1ctTkUiXS5pbmRleE9mKHRoaXMuZ2V0RGlyZWN0aW9uKCkpPi0xPyJXLUUiOiJFLVcifX0se2tleToiZmxpcERpcmVjdGlvblZlcnRpY2FsbHkiLHZhbHVlOmZ1bmN0aW9u''@;'; + put 'put ''KCl7c3dpdGNoKHRoaXMuZ2V0RGlyZWN0aW9uKCkpe2Nhc2UiTlctU0UiOnRoaXMuc2V0RGlyZWN0aW9uKCJTVy1ORSIpO2JyZWFrO2Nhc2UiTkUtU1ciOnRoaXMuc2V0RGlyZWN0aW9uKCJTRS1OVyIpO2JyZWFrO2Nhc2UiU0UtTlciOnRoaXMuc2V0RGlyZWN0aW9uKCJORS1TVyIpO2JyZWFr''@;'; + put 'put ''O2Nhc2UiU1ctTkUiOnRoaXMuc2V0RGlyZWN0aW9uKCJOVy1TRSIpfX19LHtrZXk6ImZsaXBEaXJlY3Rpb25Ib3Jpem9udGFsbHkiLHZhbHVlOmZ1bmN0aW9uKCl7c3dpdGNoKHRoaXMuZ2V0RGlyZWN0aW9uKCkpe2Nhc2UiTlctU0UiOnRoaXMuc2V0RGlyZWN0aW9uKCJORS1TVyIpO2JyZWFr''@;'; + put 'put ''O2Nhc2UiTkUtU1ciOnRoaXMuc2V0RGlyZWN0aW9uKCJOVy1TRSIpO2JyZWFrO2Nhc2UiU0UtTlciOnRoaXMuc2V0RGlyZWN0aW9uKCJTVy1ORSIpO2JyZWFrO2Nhc2UiU1ctTkUiOnRoaXMuc2V0RGlyZWN0aW9uKCJTRS1OVyIpfX19LHtrZXk6ImdldFRvcFN0YXJ0Q29ybmVyIix2YWx1ZTpm''@;'; + put 'put ''dW5jdGlvbigpe3JldHVybiB0aGlzLl9jcmVhdGVDZWxsQ29vcmRzKE1hdGgubWluKHRoaXMuZnJvbS5yb3csdGhpcy50by5yb3cpLE1hdGgubWluKHRoaXMuZnJvbS5jb2wsdGhpcy50by5jb2wpKS5ub3JtYWxpemUoKX19LHtrZXk6ImdldFRvcExlZnRDb3JuZXIiLHZhbHVlOmZ1bmN0aW9u''@;'; + put 'put ''KCl7cmV0dXJuIFRnKHRoaXMsT3ApP3RoaXMuZ2V0VG9wRW5kQ29ybmVyKCk6dGhpcy5nZXRUb3BTdGFydENvcm5lcigpfX0se2tleToiZ2V0Qm90dG9tRW5kQ29ybmVyIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9jcmVhdGVDZWxsQ29vcmRzKE1hdGgubWF4KHRoaXMuZnJvbS5y''@;'; + put 'put ''b3csdGhpcy50by5yb3cpLE1hdGgubWF4KHRoaXMuZnJvbS5jb2wsdGhpcy50by5jb2wpKS5ub3JtYWxpemUoKX19LHtrZXk6ImdldEJvdHRvbVJpZ2h0Q29ybmVyIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBUZyh0aGlzLE9wKT90aGlzLmdldEJvdHRvbVN0YXJ0Q29ybmVyKCk6dGhpcy5n''@;'; + put 'put ''ZXRCb3R0b21FbmRDb3JuZXIoKX19LHtrZXk6ImdldFRvcEVuZENvcm5lciIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY3JlYXRlQ2VsbENvb3JkcyhNYXRoLm1pbih0aGlzLmZyb20ucm93LHRoaXMudG8ucm93KSxNYXRoLm1heCh0aGlzLmZyb20uY29sLHRoaXMudG8uY29sKSku''@;'; + put 'put ''bm9ybWFsaXplKCl9fSx7a2V5OiJnZXRUb3BSaWdodENvcm5lciIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gVGcodGhpcyxPcCk/dGhpcy5nZXRUb3BTdGFydENvcm5lcigpOnRoaXMuZ2V0VG9wRW5kQ29ybmVyKCl9fSx7a2V5OiJnZXRCb3R0b21TdGFydENvcm5lciIsdmFsdWU6ZnVuY3Rp''@;'; + put 'put ''b24oKXtyZXR1cm4gdGhpcy5fY3JlYXRlQ2VsbENvb3JkcyhNYXRoLm1heCh0aGlzLmZyb20ucm93LHRoaXMudG8ucm93KSxNYXRoLm1pbih0aGlzLmZyb20uY29sLHRoaXMudG8uY29sKSkubm9ybWFsaXplKCl9fSx7a2V5OiJnZXRCb3R0b21MZWZ0Q29ybmVyIix2YWx1ZTpmdW5jdGlvbigp''@;'; + put 'put ''e3JldHVybiBUZyh0aGlzLE9wKT90aGlzLmdldEJvdHRvbUVuZENvcm5lcigpOnRoaXMuZ2V0Qm90dG9tU3RhcnRDb3JuZXIoKX19LHtrZXk6ImdldE91dGVyVG9wU3RhcnRDb3JuZXIiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2NyZWF0ZUNlbGxDb29yZHMoTWF0aC5taW4odGhp''@;'; + put 'put ''cy5mcm9tLnJvdyx0aGlzLnRvLnJvdyksTWF0aC5taW4odGhpcy5mcm9tLmNvbCx0aGlzLnRvLmNvbCkpfX0se2tleToiZ2V0T3V0ZXJUb3BMZWZ0Q29ybmVyIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBUZyh0aGlzLE9wKT90aGlzLmdldE91dGVyVG9wRW5kQ29ybmVyKCk6dGhpcy5nZXRP''@;'; + put 'put ''dXRlclRvcFN0YXJ0Q29ybmVyKCl9fSx7a2V5OiJnZXRPdXRlckJvdHRvbUVuZENvcm5lciIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY3JlYXRlQ2VsbENvb3JkcyhNYXRoLm1heCh0aGlzLmZyb20ucm93LHRoaXMudG8ucm93KSxNYXRoLm1heCh0aGlzLmZyb20uY29sLHRoaXMu''@;'; + put 'put ''dG8uY29sKSl9fSx7a2V5OiJnZXRPdXRlckJvdHRvbVJpZ2h0Q29ybmVyIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBUZyh0aGlzLE9wKT90aGlzLmdldE91dGVyQm90dG9tU3RhcnRDb3JuZXIoKTp0aGlzLmdldE91dGVyQm90dG9tRW5kQ29ybmVyKCl9fSx7a2V5OiJnZXRPdXRlclRvcEVu''@;'; + put 'put ''ZENvcm5lciIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY3JlYXRlQ2VsbENvb3JkcyhNYXRoLm1pbih0aGlzLmZyb20ucm93LHRoaXMudG8ucm93KSxNYXRoLm1heCh0aGlzLmZyb20uY29sLHRoaXMudG8uY29sKSl9fSx7a2V5OiJnZXRPdXRlclRvcFJpZ2h0Q29ybmVyIix2YWx1''@;'; + put 'put ''ZTpmdW5jdGlvbigpe3JldHVybiBUZyh0aGlzLE9wKT90aGlzLmdldE91dGVyVG9wU3RhcnRDb3JuZXIoKTp0aGlzLmdldE91dGVyVG9wRW5kQ29ybmVyKCl9fSx7a2V5OiJnZXRPdXRlckJvdHRvbVN0YXJ0Q29ybmVyIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9jcmVhdGVDZWxs''@;'; + put 'put ''Q29vcmRzKE1hdGgubWF4KHRoaXMuZnJvbS5yb3csdGhpcy50by5yb3cpLE1hdGgubWluKHRoaXMuZnJvbS5jb2wsdGhpcy50by5jb2wpKX19LHtrZXk6ImdldE91dGVyQm90dG9tTGVmdENvcm5lciIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gVGcodGhpcyxPcCk/dGhpcy5nZXRPdXRlckJv''@;'; + put 'put ''dHRvbUVuZENvcm5lcigpOnRoaXMuZ2V0T3V0ZXJCb3R0b21TdGFydENvcm5lcigpfX0se2tleToiaXNDb3JuZXIiLHZhbHVlOmZ1bmN0aW9uKGgsdil7cmV0dXJuISEodiYmdi5pbmNsdWRlcyhoKSYmKHRoaXMuZ2V0T3V0ZXJUb3BMZWZ0Q29ybmVyKCkuaXNFcXVhbCh0aGlzLl9jcmVhdGVD''@;'; + put 'put ''ZWxsQ29vcmRzKHYuZnJvbS5yb3csdi5mcm9tLmNvbCkpfHx0aGlzLmdldE91dGVyVG9wUmlnaHRDb3JuZXIoKS5pc0VxdWFsKHRoaXMuX2NyZWF0ZUNlbGxDb29yZHModi5mcm9tLnJvdyx2LnRvLmNvbCkpfHx0aGlzLmdldE91dGVyQm90dG9tTGVmdENvcm5lcigpLmlzRXF1YWwodGhpcy5f''@;'; + put 'put ''Y3JlYXRlQ2VsbENvb3Jkcyh2LnRvLnJvdyx2LmZyb20uY29sKSl8fHRoaXMuZ2V0T3V0ZXJCb3R0b21SaWdodENvcm5lcigpLmlzRXF1YWwodGhpcy5fY3JlYXRlQ2VsbENvb3Jkcyh2LnRvLnJvdyx2LnRvLmNvbCkpKSl8fGguaXNFcXVhbCh0aGlzLmdldE91dGVyVG9wTGVmdENvcm5lcigp''@;'; + put 'put ''KXx8aC5pc0VxdWFsKHRoaXMuZ2V0T3V0ZXJUb3BSaWdodENvcm5lcigpKXx8aC5pc0VxdWFsKHRoaXMuZ2V0T3V0ZXJCb3R0b21MZWZ0Q29ybmVyKCkpfHxoLmlzRXF1YWwodGhpcy5nZXRPdXRlckJvdHRvbVJpZ2h0Q29ybmVyKCkpfX0se2tleToiZ2V0T3Bwb3NpdGVDb3JuZXIiLHZhbHVl''@;'; + put 'put ''OmZ1bmN0aW9uKGgsdil7aWYoIShoIGluc3RhbmNlb2YgY2RlKSlyZXR1cm4hMTtpZih2KXt2YXIgeT12LmZyb20sQz12LnRvO2lmKHYuaW5jbHVkZXMoaCkpe2lmKHRoaXMuZ2V0T3V0ZXJUb3BTdGFydENvcm5lcigpLmlzRXF1YWwodGhpcy5fY3JlYXRlQ2VsbENvb3Jkcyh5LnJvdyx5LmNv''@;'; + put 'put ''bCkpKXJldHVybiB0aGlzLmdldE91dGVyQm90dG9tRW5kQ29ybmVyKCk7aWYodGhpcy5nZXRPdXRlclRvcEVuZENvcm5lcigpLmlzRXF1YWwodGhpcy5fY3JlYXRlQ2VsbENvb3Jkcyh5LnJvdyxDLmNvbCkpKXJldHVybiB0aGlzLmdldE91dGVyQm90dG9tU3RhcnRDb3JuZXIoKTtpZih0aGlz''@;'; + put 'put ''LmdldE91dGVyQm90dG9tU3RhcnRDb3JuZXIoKS5pc0VxdWFsKHRoaXMuX2NyZWF0ZUNlbGxDb29yZHMoQy5yb3cseS5jb2wpKSlyZXR1cm4gdGhpcy5nZXRPdXRlclRvcEVuZENvcm5lcigpO2lmKHRoaXMuZ2V0T3V0ZXJCb3R0b21FbmRDb3JuZXIoKS5pc0VxdWFsKHRoaXMuX2NyZWF0ZUNl''@;'; + put 'put ''bGxDb29yZHMoQy5yb3csQy5jb2wpKSlyZXR1cm4gdGhpcy5nZXRPdXRlclRvcFN0YXJ0Q29ybmVyKCl9fXJldHVybiBoLmlzRXF1YWwodGhpcy5nZXRPdXRlckJvdHRvbUVuZENvcm5lcigpKT90aGlzLmdldE91dGVyVG9wU3RhcnRDb3JuZXIoKTpoLmlzRXF1YWwodGhpcy5nZXRPdXRlclRv''@;'; + put 'put ''cFN0YXJ0Q29ybmVyKCkpP3RoaXMuZ2V0T3V0ZXJCb3R0b21FbmRDb3JuZXIoKTpoLmlzRXF1YWwodGhpcy5nZXRPdXRlclRvcEVuZENvcm5lcigpKT90aGlzLmdldE91dGVyQm90dG9tU3RhcnRDb3JuZXIoKTpoLmlzRXF1YWwodGhpcy5nZXRPdXRlckJvdHRvbVN0YXJ0Q29ybmVyKCkpP3Ro''@;'; + put 'put ''aXMuZ2V0T3V0ZXJUb3BFbmRDb3JuZXIoKTp2b2lkIDB9fSx7a2V5OiJnZXRCb3JkZXJzU2hhcmVkV2l0aCIsdmFsdWU6ZnVuY3Rpb24oaCl7aWYoIXRoaXMuaW5jbHVkZXNSYW5nZShoKSlyZXR1cm5bXTt2YXIgdl90b3A9TWF0aC5taW4odGhpcy5mcm9tLnJvdyx0aGlzLnRvLnJvdyksdl9i''@;'; + put 'put ''b3R0b209TWF0aC5tYXgodGhpcy5mcm9tLnJvdyx0aGlzLnRvLnJvdyksdl9sZWZ0PU1hdGgubWluKHRoaXMuZnJvbS5jb2wsdGhpcy50by5jb2wpLHZfcmlnaHQ9TWF0aC5tYXgodGhpcy5mcm9tLmNvbCx0aGlzLnRvLmNvbCkseV90b3A9TWF0aC5taW4oaC5mcm9tLnJvdyxoLnRvLnJvdyks''@;'; + put 'put ''eV9ib3R0b209TWF0aC5tYXgoaC5mcm9tLnJvdyxoLnRvLnJvdykseV9sZWZ0PU1hdGgubWluKGguZnJvbS5jb2wsaC50by5jb2wpLHlfcmlnaHQ9TWF0aC5tYXgoaC5mcm9tLmNvbCxoLnRvLmNvbCksQz1bXTtyZXR1cm4gdl90b3A9PT15X3RvcCYmQy5wdXNoKCJ0b3AiKSx2X3JpZ2h0PT09''@;'; + put 'put ''eV9yaWdodCYmQy5wdXNoKCJyaWdodCIpLHZfYm90dG9tPT09eV9ib3R0b20mJkMucHVzaCgiYm90dG9tIiksdl9sZWZ0PT09eV9sZWZ0JiZDLnB1c2goImxlZnQiKSxDfX0se2tleToiZ2V0SW5uZXIiLHZhbHVlOmZ1bmN0aW9uKCl7Zm9yKHZhciBoPXRoaXMuZ2V0T3V0ZXJUb3BTdGFydENv''@;'; + put 'put ''cm5lcigpLHY9dGhpcy5nZXRPdXRlckJvdHRvbUVuZENvcm5lcigpLHk9W10sQz1oLnJvdztDPD12LnJvdztDKyspZm9yKHZhciBJPWguY29sO0k8PXYuY29sO0krKykodGhpcy5mcm9tLnJvdyE9PUN8fHRoaXMuZnJvbS5jb2whPT1JKSYmKHRoaXMudG8ucm93IT09Q3x8dGhpcy50by5jb2wh''@;'; + put 'put ''PT1JKSYmeS5wdXNoKHRoaXMuX2NyZWF0ZUNlbGxDb29yZHMoQyxJKSk7cmV0dXJuIHl9fSx7a2V5OiJnZXRBbGwiLHZhbHVlOmZ1bmN0aW9uKCl7Zm9yKHZhciBoPXRoaXMuZ2V0T3V0ZXJUb3BTdGFydENvcm5lcigpLHY9dGhpcy5nZXRPdXRlckJvdHRvbUVuZENvcm5lcigpLHk9W10sQz1o''@;'; + put 'put ''LnJvdztDPD12LnJvdztDKyspZm9yKHZhciBJPWguY29sO0k8PXYuY29sO0krKyl5LnB1c2goaC5yb3c9PT1DJiZoLmNvbD09PUk/aDp2LnJvdz09PUMmJnYuY29sPT09ST92OnRoaXMuX2NyZWF0ZUNlbGxDb29yZHMoQyxJKSk7cmV0dXJuIHl9fSx7a2V5OiJmb3JBbGwiLHZhbHVlOmZ1bmN0''@;'; + put 'put ''aW9uKGgpe2Zvcih2YXIgdj10aGlzLmdldE91dGVyVG9wU3RhcnRDb3JuZXIoKSx5PXRoaXMuZ2V0T3V0ZXJCb3R0b21FbmRDb3JuZXIoKSxDPXYucm93O0M8PXkucm93O0MrKylmb3IodmFyIEk9di5jb2w7STw9eS5jb2w7SSsrKWlmKCExPT09aChDLEkpKXJldHVybn19LHtrZXk6ImNsb25l''@;'; + put 'put ''Iix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBuZXcgZCh0aGlzLmhpZ2hsaWdodCx0aGlzLmZyb20sdGhpcy50byxUZyh0aGlzLE9wKSl9fSx7a2V5OiJ0b09iamVjdCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm57ZnJvbTp0aGlzLmZyb20udG9PYmplY3QoKSx0bzp0aGlzLnRvLnRvT2JqZWN0''@;'; + put 'put ''KCl9fX0se2tleToiX2NyZWF0ZUNlbGxDb29yZHMiLHZhbHVlOmZ1bmN0aW9uKGgsdil7cmV0dXJuIG5ldyBjZGUoaCx2LFRnKHRoaXMsT3ApKX19XSksZH0oKTtjb25zdCBvQ2U9aFllO2Z1bmN0aW9uIGFDZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3Yu''@;'; + put 'put ''ZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fWZ1bmN0aW9uIEM4KGQsZyxoKXtyZXR1cm4gZyBpbiBkP09iamVjdC5kZWZpbmVQcm9wZXJ0eShk''@;'; + put 'put ''LGcse3ZhbHVlOmgsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpkW2ddPWgsZH12YXIgaGRlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZChnLGgpeyhmdW5jdGlvbiBkWWUoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5u''@;'; + put 'put ''b3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0pKHRoaXMsZCksQzgodGhpcywid3RUYWJsZSIsdm9pZCAwKSxDOCh0aGlzLCJ3dFNjcm9sbCIsdm9pZCAwKSxDOCh0aGlzLCJ3dFZpZXdwb3J0Iix2b2lkIDApLEM4KHRoaXMsInd0T3ZlcmxheXMiLHZvaWQgMCksQzgodGhpcywic2Vs''@;'; + put 'put ''ZWN0aW9ucyIsdm9pZCAwKSxDOCh0aGlzLCJ3dEV2ZW50Iix2b2lkIDApLEM4KHRoaXMsImd1aWQiLCJ3dF8iLmNvbmNhdChyM2UoKSkpLEM4KHRoaXMsImRyYXdJbnRlcnJ1cHRlZCIsITEpLEM4KHRoaXMsImRyYXduIiwhMSksQzgodGhpcywiZG9tQmluZGluZ3MiLHZvaWQgMCksQzgodGhp''@;'; + put 'put ''cywid3RTZXR0aW5ncyIsdm9pZCAwKSx0aGlzLmRvbUJpbmRpbmdzPXtyb290VGFibGU6Zyxyb290RG9jdW1lbnQ6Zy5vd25lckRvY3VtZW50LHJvb3RXaW5kb3c6Zy5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3fSx0aGlzLnd0U2V0dGluZ3M9aCx0aGlzLnd0U2Nyb2xsPW5ldyBYV2UodGhp''@;'; + put 'put ''cy5jcmVhdGVTY3JvbGxEYW8oKSl9cmV0dXJuIGZ1bmN0aW9uIHBZZShkLGcsaCl7ZyYmYUNlKGQucHJvdG90eXBlLGcpLGgmJmFDZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShkLFt7a2V5OiJldmVudE1hbmFnZXIiLGdldDpmdW5j''@;'; + put 'put ''dGlvbigpe3JldHVybiBuZXcgTDEodGhpcyl9fSx7a2V5OiJmaW5kT3JpZ2luYWxIZWFkZXJzIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBoPVtdO2lmKHRoaXMud3RUYWJsZS5USEVBRC5jaGlsZE5vZGVzLmxlbmd0aCYmdGhpcy53dFRhYmxlLlRIRUFELmNoaWxkTm9kZXNbMF0uY2hpbGROb2Rl''@;'; + put 'put ''cy5sZW5ndGgpe2Zvcih2YXIgdj0wLHk9dGhpcy53dFRhYmxlLlRIRUFELmNoaWxkTm9kZXNbMF0uY2hpbGROb2Rlcy5sZW5ndGg7djx5O3YrKyloLnB1c2godGhpcy53dFRhYmxlLlRIRUFELmNoaWxkTm9kZXNbMF0uY2hpbGROb2Rlc1t2XS5pbm5lckhUTUwpO3RoaXMud3RTZXR0aW5ncy5n''@;'; + put 'put ''ZXRTZXR0aW5nKCJjb2x1bW5IZWFkZXJzIikubGVuZ3RofHx0aGlzLnd0U2V0dGluZ3MudXBkYXRlKCJjb2x1bW5IZWFkZXJzIixbZnVuY3Rpb24oQyxJKXtTdyhJLGhbQ10pfV0pfX19LHtrZXk6ImNyZWF0ZUNlbGxDb29yZHMiLHZhbHVlOmZ1bmN0aW9uKGgsdil7cmV0dXJuIG5ldyBjZGUo''@;'; + put 'put ''aCx2LHRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJydGxNb2RlIikpfX0se2tleToiY3JlYXRlQ2VsbFJhbmdlIix2YWx1ZTpmdW5jdGlvbihoLHYseSl7cmV0dXJuIG5ldyBvQ2UoaCx2LHksdGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoInJ0bE1vZGUiKSl9fSx7a2V5OiJkcmF3Iix2''@;'; + put 'put ''YWx1ZTpmdW5jdGlvbigpe3ZhciBoPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdJiZhcmd1bWVudHNbMF07cmV0dXJuIHRoaXMuZHJhd0ludGVycnVwdGVkPSExLGh8fHRoaXMud3RUYWJsZS5pc1Zpc2libGUoKT90aGlzLnd0VGFibGUuZHJhdyhoKTp0aGlzLmRy''@;'; + put 'put ''YXdJbnRlcnJ1cHRlZD0hMCx0aGlzfX0se2tleToiZ2V0Q2VsbCIsdmFsdWU6ZnVuY3Rpb24oaCl7dmFyIHY9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0mJmFyZ3VtZW50c1sxXTtpZighdilyZXR1cm4gdGhpcy53dFRhYmxlLmdldENlbGwoaCk7dmFyIHk9dGhp''@;'; + put 'put ''cy53dFNldHRpbmdzLmdldFNldHRpbmcoInRvdGFsUm93cyIpLEM9dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoImZpeGVkUm93c1RvcCIpLEk9dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoImZpeGVkUm93c0JvdHRvbSIpLGo9dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoImZpeGVk''@;'; + put 'put ''Q29sdW1uc1N0YXJ0Iik7aWYoaC5yb3c8QyYmaC5jb2w8ailyZXR1cm4gdGhpcy53dE92ZXJsYXlzLnRvcElubGluZVN0YXJ0Q29ybmVyT3ZlcmxheS5jbG9uZS53dFRhYmxlLmdldENlbGwoaCk7aWYoaC5yb3c8QylyZXR1cm4gdGhpcy53dE92ZXJsYXlzLnRvcE92ZXJsYXkuY2xvbmUud3RU''@;'; + put 'put ''YWJsZS5nZXRDZWxsKGgpO2lmKGguY29sPGomJmgucm93Pj15LUkpe2lmKHRoaXMud3RPdmVybGF5cy5ib3R0b21JbmxpbmVTdGFydENvcm5lck92ZXJsYXkmJnRoaXMud3RPdmVybGF5cy5ib3R0b21JbmxpbmVTdGFydENvcm5lck92ZXJsYXkuY2xvbmUpcmV0dXJuIHRoaXMud3RPdmVybGF5''@;'; + put 'put ''cy5ib3R0b21JbmxpbmVTdGFydENvcm5lck92ZXJsYXkuY2xvbmUud3RUYWJsZS5nZXRDZWxsKGgpfWVsc2V7aWYoaC5jb2w8ailyZXR1cm4gdGhpcy53dE92ZXJsYXlzLmlubGluZVN0YXJ0T3ZlcmxheS5jbG9uZS53dFRhYmxlLmdldENlbGwoaCk7aWYoaC5yb3c8eSYmaC5yb3c+PXktSSYm''@;'; + put 'put ''dGhpcy53dE92ZXJsYXlzLmJvdHRvbU92ZXJsYXkmJnRoaXMud3RPdmVybGF5cy5ib3R0b21PdmVybGF5LmNsb25lKXJldHVybiB0aGlzLnd0T3ZlcmxheXMuYm90dG9tT3ZlcmxheS5jbG9uZS53dFRhYmxlLmdldENlbGwoaCl9cmV0dXJuIHRoaXMud3RUYWJsZS5nZXRDZWxsKGgpfX0se2tl''@;'; + put 'put ''eToic2Nyb2xsVmlld3BvcnQiLHZhbHVlOmZ1bmN0aW9uKGgsdix5LEMsSSl7cmV0dXJuIShoLmNvbDwwfHxoLnJvdzwwKSYmdGhpcy53dFNjcm9sbC5zY3JvbGxWaWV3cG9ydChoLHYseSxDLEkpfX0se2tleToic2Nyb2xsVmlld3BvcnRIb3Jpem9udGFsbHkiLHZhbHVlOmZ1bmN0aW9uKGgs''@;'; + put 'put ''dix5KXtyZXR1cm4hKGg8MCkmJnRoaXMud3RTY3JvbGwuc2Nyb2xsVmlld3BvcnRIb3Jpem9udGFsbHkoaCx2LHkpfX0se2tleToic2Nyb2xsVmlld3BvcnRWZXJ0aWNhbGx5Iix2YWx1ZTpmdW5jdGlvbihoLHYseSl7cmV0dXJuIShoPDApJiZ0aGlzLnd0U2Nyb2xsLnNjcm9sbFZpZXdwb3J0''@;'; + put 'put ''VmVydGljYWxseShoLHYseSl9fSx7a2V5OiJnZXRWaWV3cG9ydCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm5bdGhpcy53dFRhYmxlLmdldEZpcnN0VmlzaWJsZVJvdygpLHRoaXMud3RUYWJsZS5nZXRGaXJzdFZpc2libGVDb2x1bW4oKSx0aGlzLnd0VGFibGUuZ2V0TGFzdFZpc2libGVSb3co''@;'; + put 'put ''KSx0aGlzLnd0VGFibGUuZ2V0TGFzdFZpc2libGVDb2x1bW4oKV19fSx7a2V5OiJkZXN0cm95Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMud3RPdmVybGF5cy5kZXN0cm95KCksdGhpcy53dEV2ZW50LmRlc3Ryb3koKX19LHtrZXk6ImNyZWF0ZVNjcm9sbERhbyIsdmFsdWU6ZnVuY3Rpb24oKXt2''@;'; + put 'put ''YXIgaD10aGlzO3JldHVybntnZXQgZHJhd24oKXtyZXR1cm4gaC5kcmF3bn0sZ2V0IHRvcE92ZXJsYXkoKXtyZXR1cm4gaC53dE92ZXJsYXlzLnRvcE92ZXJsYXl9LGdldCBpbmxpbmVTdGFydE92ZXJsYXkoKXtyZXR1cm4gaC53dE92ZXJsYXlzLmlubGluZVN0YXJ0T3ZlcmxheX0sZ2V0IHd0''@;'; + put 'put ''VGFibGUoKXtyZXR1cm4gaC53dFRhYmxlfSxnZXQgd3RWaWV3cG9ydCgpe3JldHVybiBoLnd0Vmlld3BvcnR9LGdldCByb290V2luZG93KCl7cmV0dXJuIGguZG9tQmluZGluZ3Mucm9vdFdpbmRvd30sZ2V0IHRvdGFsUm93cygpe3JldHVybiBoLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygidG90''@;'; + put 'put ''YWxSb3dzIil9LGdldCB0b3RhbENvbHVtbnMoKXtyZXR1cm4gaC53dFNldHRpbmdzLmdldFNldHRpbmcoInRvdGFsQ29sdW1ucyIpfSxnZXQgZml4ZWRSb3dzVG9wKCl7cmV0dXJuIGgud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJmaXhlZFJvd3NUb3AiKX0sZ2V0IGZpeGVkUm93c0JvdHRvbSgp''@;'; + put 'put ''e3JldHVybiBoLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygiZml4ZWRSb3dzQm90dG9tIil9LGdldCBmaXhlZENvbHVtbnNTdGFydCgpe3JldHVybiBoLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygiZml4ZWRDb2x1bW5zU3RhcnQiKX19fX0se2tleToiZ2V0VGFibGVEYW8iLHZhbHVlOmZ1bmN0aW9u''@;'; + put 'put ''KCl7dmFyIGg9dGhpcztyZXR1cm57Z2V0IHdvdCgpe3JldHVybiBofSxnZXQgcGFyZW50VGFibGVPZmZzZXQoKXtyZXR1cm4gaC5jbG9uZVNvdXJjZS53dFRhYmxlLnRhYmxlT2Zmc2V0fSxnZXQgY2xvbmVTb3VyY2UoKXtyZXR1cm4gaC5jbG9uZVNvdXJjZX0sZ2V0IHdvcmtzcGFjZVdpZHRo''@;'; + put 'put ''KCl7cmV0dXJuIGgud3RWaWV3cG9ydC5nZXRXb3Jrc3BhY2VXaWR0aCgpfSxnZXQgd3RWaWV3cG9ydCgpe3JldHVybiBoLnd0Vmlld3BvcnR9LGdldCB3dE92ZXJsYXlzKCl7cmV0dXJuIGgud3RPdmVybGF5c30sZ2V0IHNlbGVjdGlvbnMoKXtyZXR1cm4gaC5zZWxlY3Rpb25zfSxnZXQgZHJh''@;'; + put 'put ''d24oKXtyZXR1cm4gaC5kcmF3bn0sc2V0IGRyYXduKHYpe2guZHJhd249dn0sZ2V0IHd0VGFibGUoKXtyZXR1cm4gaC53dFRhYmxlfSxnZXQgc3RhcnRDb2x1bW5SZW5kZXJlZCgpe3JldHVybiBoLnd0Vmlld3BvcnQuY29sdW1uc1JlbmRlckNhbGN1bGF0b3Iuc3RhcnRDb2x1bW59LGdldCBz''@;'; + put 'put ''dGFydENvbHVtblZpc2libGUoKXtyZXR1cm4gaC53dFZpZXdwb3J0LmNvbHVtbnNWaXNpYmxlQ2FsY3VsYXRvci5zdGFydENvbHVtbn0sZ2V0IGVuZENvbHVtblJlbmRlcmVkKCl7cmV0dXJuIGgud3RWaWV3cG9ydC5jb2x1bW5zUmVuZGVyQ2FsY3VsYXRvci5lbmRDb2x1bW59LGdldCBlbmRD''@;'; + put 'put ''b2x1bW5WaXNpYmxlKCl7cmV0dXJuIGgud3RWaWV3cG9ydC5jb2x1bW5zVmlzaWJsZUNhbGN1bGF0b3IuZW5kQ29sdW1ufSxnZXQgY291bnRDb2x1bW5zUmVuZGVyZWQoKXtyZXR1cm4gaC53dFZpZXdwb3J0LmNvbHVtbnNSZW5kZXJDYWxjdWxhdG9yLmNvdW50fSxnZXQgY291bnRDb2x1bW5z''@;'; + put 'put ''VmlzaWJsZSgpe3JldHVybiBoLnd0Vmlld3BvcnQuY29sdW1uc1Zpc2libGVDYWxjdWxhdG9yLmNvdW50fSxnZXQgc3RhcnRSb3dSZW5kZXJlZCgpe3JldHVybiBoLnd0Vmlld3BvcnQucm93c1JlbmRlckNhbGN1bGF0b3Iuc3RhcnRSb3d9LGdldCBzdGFydFJvd1Zpc2libGUoKXtyZXR1cm4g''@;'; + put 'put ''aC53dFZpZXdwb3J0LnJvd3NWaXNpYmxlQ2FsY3VsYXRvci5zdGFydFJvd30sZ2V0IGVuZFJvd1JlbmRlcmVkKCl7cmV0dXJuIGgud3RWaWV3cG9ydC5yb3dzUmVuZGVyQ2FsY3VsYXRvci5lbmRSb3d9LGdldCBlbmRSb3dWaXNpYmxlKCl7cmV0dXJuIGgud3RWaWV3cG9ydC5yb3dzVmlzaWJs''@;'; + put 'put ''ZUNhbGN1bGF0b3IuZW5kUm93fSxnZXQgY291bnRSb3dzUmVuZGVyZWQoKXtyZXR1cm4gaC53dFZpZXdwb3J0LnJvd3NSZW5kZXJDYWxjdWxhdG9yLmNvdW50fSxnZXQgY291bnRSb3dzVmlzaWJsZSgpe3JldHVybiBoLnd0Vmlld3BvcnQucm93c1Zpc2libGVDYWxjdWxhdG9yLmNvdW50fX19''@;'; + put 'put ''fV0pLGR9KCk7ZnVuY3Rpb24gZGRlKGQpe3JldHVybihkZGU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZyl7cmV0dXJuIHR5cGVvZiBnfTpmdW5jdGlvbihnKXtyZXR1cm4gZyYmImZ1bmN0aW9uIj09dHlwZW9m''@;'; + put 'put ''IFN5bWJvbCYmZy5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZyE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGd9KShkKX1mdW5jdGlvbiBsQ2UoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2''@;'; + put 'put ''LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX1mdW5jdGlvbiBwZGUoZCxnKXtyZXR1cm4ocGRlPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0''@;'; + put 'put ''aW9uKHYseSl7cmV0dXJuIHYuX19wcm90b19fPXksdn0pKGQsZyl9ZnVuY3Rpb24geVllKGQsZyl7aWYoZyYmKCJvYmplY3QiPT09ZGRlKGcpfHwiZnVuY3Rpb24iPT10eXBlb2YgZykpcmV0dXJuIGc7aWYodm9pZCAwIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJEZXJpdmVkIGNvbnN0cnVj''@;'; + put 'put ''dG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0IG9yIHVuZGVmaW5lZCIpO3JldHVybiB5ZWUoZCl9ZnVuY3Rpb24geWVlKGQpe2lmKHZvaWQgMD09PWQpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBj''@;'; + put 'put ''YWxsZWQiKTtyZXR1cm4gZH1mdW5jdGlvbiB3ZWUoZCl7cmV0dXJuKHdlZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihoKXtyZXR1cm4gaC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihoKX0pKGQpfWZ1bmN0aW9u''@;'; + put 'put ''IHNDZShkLGcsaCl7cmV0dXJuIGcgaW4gZD9PYmplY3QuZGVmaW5lUHJvcGVydHkoZCxnLHt2YWx1ZTpoLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZFtnXT1oLGR9dmFyIGJZZT1mdW5jdGlvbihkKXshZnVuY3Rpb24gdlllKGQsZyl7aWYoImZ1bmN0aW9u''@;'; + put 'put ''IiE9dHlwZW9mIGcmJm51bGwhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uIik7ZC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShnJiZnLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOmQsd3JpdGFi''@;'; + put 'put ''bGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGcmJnBkZShkLGcpfShoLGQpO3ZhciBnPWZ1bmN0aW9uIEFZZShkKXt2YXIgZz1mdW5jdGlvbiB3WWUoKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIFJlZmxl''@;'; + put 'put ''Y3R8fCFSZWZsZWN0LmNvbnN0cnVjdHx8UmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT10eXBlb2YgUHJveHkpcmV0dXJuITA7dHJ5e3JldHVybiBCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSxm''@;'; + put 'put ''dW5jdGlvbigpe30pKSwhMH1jYXRjaChkKXtyZXR1cm4hMX19KCk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHksdj13ZWUoZCk7aWYoZyl7dmFyIEM9d2VlKHRoaXMpLmNvbnN0cnVjdG9yO3k9UmVmbGVjdC5jb25zdHJ1Y3Qodixhcmd1bWVudHMsQyl9ZWxzZSB5PXYuYXBwbHkodGhpcyxhcmd1''@;'; + put 'put ''bWVudHMpO3JldHVybiB5WWUodGhpcyx5KX19KGgpO2Z1bmN0aW9uIGgodix5LEMpe3ZhciBJOyhmdW5jdGlvbiBtWWUoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0pKHRoaXMsaCksc0Nl''@;'; + put 'put ''KHllZShJPWcuY2FsbCh0aGlzLHYseSkpLCJjbG9uZVNvdXJjZSIsdm9pZCAwKSxzQ2UoeWVlKEkpLCJjbG9uZU92ZXJsYXkiLHZvaWQgMCk7dmFyIGo9SS53dFNldHRpbmdzLmdldFNldHRpbmcoImZhY2FkZSIseWVlKEkpKTtyZXR1cm4gSS5jbG9uZVNvdXJjZT1DLnNvdXJjZSxJLmNsb25l''@;'; + put 'put ''T3ZlcmxheT1DLm92ZXJsYXksSS53dFRhYmxlPUkuY2xvbmVPdmVybGF5LmNyZWF0ZVRhYmxlKEkuZ2V0VGFibGVEYW8oKSxqLEkuZG9tQmluZGluZ3MsSS53dFNldHRpbmdzKSxJLnd0Vmlld3BvcnQ9Qy52aWV3cG9ydCxJLnNlbGVjdGlvbnM9Qy5zZWxlY3Rpb25zLEkud3RFdmVudD1uZXcg''@;'; + put 'put ''a19lKGosSS5kb21CaW5kaW5ncyxJLnd0U2V0dGluZ3MsSS5ldmVudE1hbmFnZXIsSS53dFRhYmxlLEkuc2VsZWN0aW9ucyxDLmV2ZW50KSxJLmZpbmRPcmlnaW5hbEhlYWRlcnMoKSxJfXJldHVybiBmdW5jdGlvbiBnWWUoZCxnLGgpe3JldHVybiBnJiZsQ2UoZC5wcm90b3R5cGUsZyksaCYm''@;'; + put 'put ''bENlKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZH0oaCl9KGhkZSk7ZnVuY3Rpb24gdUNlKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25m''@;'; + put 'put ''aWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19dmFyIFhaPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZChnLGgsdix5LEMpeyhmdW5jdGlvbiBfWWUoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcg''@;'; + put 'put ''VHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0pKHRoaXMsZCksZnVuY3Rpb24ga1llKGQsZyxoKXtnIGluIGQ/T2JqZWN0LmRlZmluZVByb3BlcnR5KGQsZyx7dmFsdWU6aCxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmRb''@;'; + put 'put ''Z109aH0odGhpcywid3RTZXR0aW5ncyIsbnVsbCksU2codGhpcywid290IixnLHt3cml0YWJsZTohMX0pLHRoaXMuZG9tQmluZGluZ3M9Qyx0aGlzLmZhY2FkZUdldHRlcj1oLHRoaXMud3RTZXR0aW5ncz15O3ZhciBJPXRoaXMud290Lnd0VGFibGUsaj1JLlRBQkxFLHVlPUkuaGlkZXIsX2U9''@;'; + put 'put ''SS5zcHJlYWRlcixCZT1JLmhvbGRlcixOZT1JLnd0Um9vdEVsZW1lbnQ7dGhpcy5pbnN0YW5jZT10aGlzLndvdCx0aGlzLnR5cGU9dix0aGlzLm1haW5UYWJsZVNjcm9sbGFibGVFbGVtZW50PW51bGwsdGhpcy5UQUJMRT1qLHRoaXMuaGlkZXI9dWUsdGhpcy5zcHJlYWRlcj1fZSx0aGlzLmhv''@;'; + put 'put ''bGRlcj1CZSx0aGlzLnd0Um9vdEVsZW1lbnQ9TmUsdGhpcy50cmltbWluZ0NvbnRhaW5lcj1mTyh0aGlzLmhpZGVyLnBhcmVudE5vZGUucGFyZW50Tm9kZSksdGhpcy51cGRhdGVTdGF0ZU9mUmVuZGVyaW5nKCksdGhpcy5jbG9uZT10aGlzLm1ha2VDbG9uZSgpfXJldHVybiBmdW5jdGlvbiBD''@;'; + put 'put ''WWUoZCxnLGgpe2cmJnVDZShkLnByb3RvdHlwZSxnKSxoJiZ1Q2UoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oZCxbe2tleToidXBkYXRlU3RhdGVPZlJlbmRlcmluZyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD10aGlzLm5lZWRGdWxs''@;'; + put 'put ''UmVuZGVyO3RoaXMubmVlZEZ1bGxSZW5kZXI9dGhpcy5zaG91bGRCZVJlbmRlcmVkKCk7dmFyIHY9aCE9PXRoaXMubmVlZEZ1bGxSZW5kZXI7cmV0dXJuIHYmJiF0aGlzLm5lZWRGdWxsUmVuZGVyJiZ0aGlzLnJlc2V0KCksdn19LHtrZXk6InNob3VsZEJlUmVuZGVyZWQiLHZhbHVlOmZ1bmN0''@;'; + put 'put ''aW9uKCl7cmV0dXJuITB9fSx7a2V5OiJ1cGRhdGVUcmltbWluZ0NvbnRhaW5lciIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLnRyaW1taW5nQ29udGFpbmVyPWZPKHRoaXMuaGlkZXIucGFyZW50Tm9kZS5wYXJlbnROb2RlKX19LHtrZXk6InVwZGF0ZU1haW5TY3JvbGxhYmxlRWxlbWVudCIsdmFs''@;'; + put 'put ''dWU6ZnVuY3Rpb24oKXt2YXIgaD10aGlzLndvdC53dFRhYmxlO3RoaXMubWFpblRhYmxlU2Nyb2xsYWJsZUVsZW1lbnQ9ImhpZGRlbiI9PT10aGlzLmRvbUJpbmRpbmdzLnJvb3RXaW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShoLnd0Um9vdEVsZW1lbnQucGFyZW50Tm9kZSkuZ2V0UHJvcGVydHlW''@;'; + put 'put ''YWx1ZSgib3ZlcmZsb3ciKT90aGlzLndvdC53dFRhYmxlLmhvbGRlcjpIWihoLlRBQkxFKX19LHtrZXk6ImdldFJlbGF0aXZlQ2VsbFBvc2l0aW9uIix2YWx1ZTpmdW5jdGlvbihoLHYseSl7aWYoITEhPT10aGlzLmNsb25lLnd0VGFibGUuaG9sZGVyLmNvbnRhaW5zKGgpKXt2YXIgQz10aGlz''@;'; + put 'put ''Lm1haW5UYWJsZVNjcm9sbGFibGVFbGVtZW50PT09dGhpcy5kb21CaW5kaW5ncy5yb290V2luZG93LEk9eTx0aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygiZml4ZWRDb2x1bW5zU3RhcnQiKSxqPXY8dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoImZpeGVkUm93c1RvcCIpLHVlPXY+PXRo''@;'; + put 'put ''aXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJ0b3RhbFJvd3MiKS10aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygiZml4ZWRSb3dzQm90dG9tIiksX2U9dGhpcy5jbG9uZS53dFRhYmxlLnNwcmVhZGVyLEJlPXtzdGFydDp0aGlzLmdldFJlbGF0aXZlU3RhcnRQb3NpdGlvbihfZSksdG9wOl9l''@;'; + put 'put ''Lm9mZnNldFRvcH0sTmU9e3N0YXJ0OnRoaXMuZ2V0UmVsYXRpdmVTdGFydFBvc2l0aW9uKGgpLHRvcDpoLm9mZnNldFRvcH07cmV0dXJuIEM/dGhpcy5nZXRSZWxhdGl2ZUNlbGxQb3NpdGlvbldpdGhpbldpbmRvdyhqLEksTmUsQmUpOnRoaXMuZ2V0UmVsYXRpdmVDZWxsUG9zaXRpb25XaXRo''@;'; + put 'put ''aW5Ib2xkZXIoaix1ZSxJLE5lLEJlKX1sMSgiVGhlIHByb3ZpZGVkIGVsZW1lbnQgaXMgbm90IGEgY2hpbGQgb2YgdGhlICIuY29uY2F0KHRoaXMudHlwZSwiIG92ZXJsYXkiKSl9fSx7a2V5OiJnZXRSZWxhdGl2ZVN0YXJ0UG9zaXRpb24iLHZhbHVlOmZ1bmN0aW9uKGgpe3JldHVybiB0aGlz''@;'; + put 'put ''LmlzUnRsKCk/aC5vZmZzZXRQYXJlbnQub2Zmc2V0V2lkdGgtaC5vZmZzZXRMZWZ0LWgub2Zmc2V0V2lkdGg6aC5vZmZzZXRMZWZ0fX0se2tleToiZ2V0UmVsYXRpdmVDZWxsUG9zaXRpb25XaXRoaW5XaW5kb3ciLHZhbHVlOmZ1bmN0aW9uKGgsdix5LEMpe3ZhciBJPXRoaXMud290Lnd0VGFi''@;'; + put 'put ''bGUud3RSb290RWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxqPTAsdWU9MDtpZih2KXt2YXIgX2U9SS5sZWZ0O3RoaXMuaXNSdGwoKSYmKF9lPXRoaXMuZG9tQmluZGluZ3Mucm9vdFdpbmRvdy5pbm5lcldpZHRoLShJLmxlZnQrSS53aWR0aCtCYygpKSksaj1fZTw9MD8tMSpfZTow''@;'; + put 'put ''fWVsc2Ugaj1DLnN0YXJ0O3JldHVybiB1ZT1oP3RoaXMuY2xvbmUud3RUYWJsZS5UQUJMRS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3AtSS50b3A6Qy50b3Ase3N0YXJ0Onkuc3RhcnQraix0b3A6eS50b3ArdWV9fX0se2tleToiZ2V0UmVsYXRpdmVDZWxsUG9zaXRpb25XaXRoaW5Ib2xk''@;'; + put 'put ''ZXIiLHZhbHVlOmZ1bmN0aW9uKGgsdix5LEMsSSl7dmFyIGpfaG9yaXpvbnRhbD10aGlzLndvdC53dE92ZXJsYXlzLmlubGluZVN0YXJ0T3ZlcmxheS5nZXRTY3JvbGxQb3NpdGlvbigpLGpfdmVydGljYWw9dGhpcy53b3Qud3RPdmVybGF5cy50b3BPdmVybGF5LmdldFNjcm9sbFBvc2l0aW9u''@;'; + put 'put ''KCksdWU9MCxfZT0wO2lmKHl8fCh1ZT1qX2hvcml6b250YWwtSS5zdGFydCksdil7dmFyIEJlPXRoaXMud290Lnd0VGFibGUud3RSb290RWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtfZT0tMSp0aGlzLmNsb25lLnd0VGFibGUuVEFCTEUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCku''@;'; + put 'put ''dG9wK0JlLnRvcH1lbHNlIGh8fChfZT1qX3ZlcnRpY2FsLUkudG9wKTtyZXR1cm57c3RhcnQ6Qy5zdGFydC11ZSx0b3A6Qy50b3AtX2V9fX0se2tleToibWFrZUNsb25lIix2YWx1ZTpmdW5jdGlvbigpe2lmKC0xPT09a1dlLmluZGV4T2YodGhpcy50eXBlKSl0aHJvdyBuZXcgRXJyb3IoJ0Ns''@;'; + put 'put ''b25lIHR5cGUgIicuY29uY2F0KHRoaXMudHlwZSwnIiBpcyBub3Qgc3VwcG9ydGVkLicpKTt2YXIgaD10aGlzLndvdC53dFRhYmxlLHY9dGhpcy5kb21CaW5kaW5ncyx5PXYucm9vdERvY3VtZW50LEM9di5yb290V2luZG93LEk9eS5jcmVhdGVFbGVtZW50KCJESVYiKSxqPXkuY3JlYXRlRWxl''@;'; + put 'put ''bWVudCgiVEFCTEUiKSx1ZT1oLnd0Um9vdEVsZW1lbnQucGFyZW50Tm9kZTtJLmNsYXNzTmFtZT0iIi5jb25jYXQoU1dlLmdldCh0aGlzLnR5cGUpLCIgaGFuZHNvbnRhYmxlIiksSS5zZXRBdHRyaWJ1dGUoImRpciIsdGhpcy5pc1J0bCgpPyJydGwiOiJsdHIiKSxJLnN0eWxlLnBvc2l0aW9u''@;'; + put 'put ''PSJhYnNvbHV0ZSIsSS5zdHlsZS50b3A9MCxJLnN0eWxlLm92ZXJmbG93PSJ2aXNpYmxlIix0aGlzLmlzUnRsKCk/SS5zdHlsZS5yaWdodD0wOkkuc3R5bGUubGVmdD0wLGouY2xhc3NOYW1lPWguVEFCTEUuY2xhc3NOYW1lLEkuYXBwZW5kQ2hpbGQoaiksdWUuYXBwZW5kQ2hpbGQoSSk7dmFy''@;'; + put 'put ''IF9lPXRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJwcmV2ZW50T3ZlcmZsb3ciKTtyZXR1cm4gdGhpcy5tYWluVGFibGVTY3JvbGxhYmxlRWxlbWVudD0hMD09PV9lfHwiaG9yaXpvbnRhbCI9PT1fZSYmdGhpcy50eXBlPT09eFN8fCJ2ZXJ0aWNhbCI9PT1fZSYmdGhpcy50eXBlPT09VFM/''@;'; + put 'put ''QzoiaGlkZGVuIj09PUMuZ2V0Q29tcHV0ZWRTdHlsZSh1ZSkuZ2V0UHJvcGVydHlWYWx1ZSgib3ZlcmZsb3ciKT9oLmhvbGRlcjpIWihoLlRBQkxFKSxuZXcgYlllKGosdGhpcy53dFNldHRpbmdzLHtzb3VyY2U6dGhpcy53b3Qsb3ZlcmxheTp0aGlzLHZpZXdwb3J0OnRoaXMud290Lnd0Vmll''@;'; + put 'put ''d3BvcnQsZXZlbnQ6dGhpcy53b3Qud3RFdmVudCxzZWxlY3Rpb25zOnRoaXMud290LnNlbGVjdGlvbnN9KX19LHtrZXk6InJlZnJlc2giLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0mJmFyZ3VtZW50c1swXSx2PXRoaXMu''@;'; + put 'put ''c2hvdWxkQmVSZW5kZXJlZCgpO3RoaXMuY2xvbmUmJih0aGlzLm5lZWRGdWxsUmVuZGVyfHx2KSYmdGhpcy5jbG9uZS5kcmF3KGgpLHRoaXMubmVlZEZ1bGxSZW5kZXI9dn19LHtrZXk6InJlc2V0Iix2YWx1ZTpmdW5jdGlvbigpe2lmKHRoaXMuY2xvbmUpe3ZhciBoPXRoaXMuY2xvbmUud3RU''@;'; + put 'put ''YWJsZS5ob2xkZXI7VXIoW2guc3R5bGUsdGhpcy5jbG9uZS53dFRhYmxlLmhpZGVyLnN0eWxlLGgucGFyZW50Tm9kZS5zdHlsZV0sZnVuY3Rpb24oail7ai53aWR0aD0iIixqLmhlaWdodD0iIn0pfX19LHtrZXk6ImlzUnRsIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnd0U2V0dGlu''@;'; + put 'put ''Z3MuZ2V0U2V0dGluZygicnRsTW9kZSIpfX0se2tleToiZGVzdHJveSIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmNsb25lLmV2ZW50TWFuYWdlci5kZXN0cm95KCl9fV0pLGR9KCk7ZnVuY3Rpb24gZ2RlKGQpe3JldHVybihnZGU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9''@;'; + put 'put ''PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZyl7cmV0dXJuIHR5cGVvZiBnfTpmdW5jdGlvbihnKXtyZXR1cm4gZyYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZy5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZyE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGd9''@;'; + put 'put ''KShkKX1mdW5jdGlvbiBiZWUoZCxnLGgpe3JldHVybihiZWU9aENlKCk/UmVmbGVjdC5jb25zdHJ1Y3QuYmluZCgpOmZ1bmN0aW9uKHksQyxJKXt2YXIgaj1bbnVsbF07ai5wdXNoLmFwcGx5KGosQyk7dmFyIF9lPW5ldyhGdW5jdGlvbi5iaW5kLmFwcGx5KHksaikpO3JldHVybiBJJiZfZWUo''@;'; + put 'put ''X2UsSS5wcm90b3R5cGUpLF9lfSkuYXBwbHkobnVsbCxhcmd1bWVudHMpfWZ1bmN0aW9uIGNDZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53''@;'; + put 'put ''cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fWZ1bmN0aW9uIF9lZShkLGcpe3JldHVybihfZWU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24odix5KXtyZXR1cm4gdi5fX3Byb3RvX189eSx2fSko''@;'; + put 'put ''ZCxnKX1mdW5jdGlvbiBUWWUoZCxnKXtpZihnJiYoIm9iamVjdCI9PT1nZGUoZyl8fCJmdW5jdGlvbiI9PXR5cGVvZiBnKSlyZXR1cm4gZztpZih2b2lkIDAhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIkRlcml2ZWQgY29uc3RydWN0b3JzIG1heSBvbmx5IHJldHVybiBvYmplY3Qgb3IgdW5k''@;'; + put 'put ''ZWZpbmVkIik7cmV0dXJuIGZDZShkKX1mdW5jdGlvbiBmQ2UoZCl7aWYodm9pZCAwPT09ZCl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3JldHVybiBkfWZ1bmN0aW9uIGhDZSgpe2lm''@;'; + put 'put ''KCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0fHxSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBQcm94eSlyZXR1cm4hMDt0cnl7cmV0dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZs''@;'; + put 'put ''ZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLGZ1bmN0aW9uKCl7fSkpLCEwfWNhdGNoKGQpe3JldHVybiExfX1mdW5jdGlvbiBDZWUoZCl7cmV0dXJuKENlZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihoKXtyZXR1cm4gaC5fX3By''@;'; + put 'put ''b3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihoKX0pKGQpfXZhciBEWWU9ZnVuY3Rpb24oZCl7IWZ1bmN0aW9uIEVZZShkLGcpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBnJiZudWxsIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51''@;'; + put 'put ''bGwgb3IgYSBmdW5jdGlvbiIpO2QucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZyYmZy5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTpkLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxn''@;'; + put 'put ''JiZfZWUoZCxnKX0oaCxkKTt2YXIgZz1mdW5jdGlvbiB4WWUoZCl7dmFyIGc9aENlKCk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHksdj1DZWUoZCk7aWYoZyl7dmFyIEM9Q2VlKHRoaXMpLmNvbnN0cnVjdG9yO3k9UmVmbGVjdC5jb25zdHJ1Y3Qodixhcmd1bWVudHMsQyl9ZWxzZSB5PXYuYXBw''@;'; + put 'put ''bHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBUWWUodGhpcyx5KX19KGgpO2Z1bmN0aW9uIGgodix5LEMsSSl7dmFyIGo7cmV0dXJuIGZ1bmN0aW9uIFNZZShkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5j''@;'; + put 'put ''dGlvbiIpfSh0aGlzLGgpLGZ1bmN0aW9uIElZZShkLGcsaCl7ZyBpbiBkP09iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGcse3ZhbHVlOmgsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpkW2ddPWh9KGZDZShqPWcuY2FsbCh0aGlzLHYseSx4UyxDLEkpKSwiY2Fj''@;'; + put 'put ''aGVkRml4ZWRSb3dzVG9wIiwtMSksai5jYWNoZWRGaXhlZFJvd3NUb3A9ai53dFNldHRpbmdzLmdldFNldHRpbmcoImZpeGVkUm93c1RvcCIpLGp9cmV0dXJuIGZ1bmN0aW9uIE1ZZShkLGcsaCl7ZyYmY0NlKGQucHJvdG90eXBlLGcpLGgmJmNDZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0''@;'; + put 'put ''eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShoLFt7a2V5OiJjcmVhdGVUYWJsZSIsdmFsdWU6ZnVuY3Rpb24oKXtmb3IodmFyIHk9YXJndW1lbnRzLmxlbmd0aCxDPW5ldyBBcnJheSh5KSxJPTA7STx5O0krKylDW0ldPWFyZ3VtZW50c1tJXTtyZXR1cm4gYmVlKFlXZSxDKX19LHtr''@;'; + put 'put ''ZXk6InNob3VsZEJlUmVuZGVyZWQiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJzaG91bGRSZW5kZXJUb3BPdmVybGF5Iil9fSx7a2V5OiJyZXNldEZpeGVkUG9zaXRpb24iLHZhbHVlOmZ1bmN0aW9uKCl7aWYoIXRoaXMubmVlZEZ1bGxSZW5k''@;'; + put 'put ''ZXJ8fCF0aGlzLndvdC53dFRhYmxlLmhvbGRlci5wYXJlbnROb2RlKXJldHVybiExO3ZhciB5PXRoaXMuY2xvbmUud3RUYWJsZS5ob2xkZXIucGFyZW50Tm9kZSxDPXRoaXMuZG9tQmluZGluZ3Mucm9vdFdpbmRvdyxJPXRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJwcmV2ZW50T3ZlcmZs''@;'; + put 'put ''b3ciKSxqPTAsdWU9ITE7aWYodGhpcy50cmltbWluZ0NvbnRhaW5lciE9PUN8fEkmJiJ2ZXJ0aWNhbCI9PT1JKWo9dGhpcy5nZXRTY3JvbGxQb3NpdGlvbigpLGpaKHkpO2Vsc2V7dmFyIEJlPXRoaXMud290Lnd0VGFibGUuaGlkZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7dWU9TWF0aC5j''@;'; + put 'put ''ZWlsKEJlLmJvdHRvbSk9PT15Lm9mZnNldEhlaWdodCxqPXRoaXMuZ2V0T3ZlcmxheU9mZnNldCgpLHJlZSh5LCIwcHgiLCIiLmNvbmNhdChqLCJweCIpKX12YXIgZHQ9dGhpcy5hZGp1c3RIZWFkZXJCb3JkZXJzUG9zaXRpb24oaix1ZSk7cmV0dXJuIHRoaXMuYWRqdXN0RWxlbWVudHNTaXpl''@;'; + put 'put ''KCksZHR9fSx7a2V5OiJzZXRTY3JvbGxQb3NpdGlvbiIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEM9dGhpcy5kb21CaW5kaW5ncy5yb290V2luZG93LEk9ITE7cmV0dXJuIHRoaXMubWFpblRhYmxlU2Nyb2xsYWJsZUVsZW1lbnQ9PT1DJiZDLnNjcm9sbFkhPT15PyhDLnNjcm9sbFRvKE1TKEMp''@;'; + put 'put ''LHkpLEk9ITApOnRoaXMubWFpblRhYmxlU2Nyb2xsYWJsZUVsZW1lbnQuc2Nyb2xsVG9wIT09eSYmKHRoaXMubWFpblRhYmxlU2Nyb2xsYWJsZUVsZW1lbnQuc2Nyb2xsVG9wPXksST0hMCksSX19LHtrZXk6Im9uU2Nyb2xsIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMud3RTZXR0aW5ncy5nZXRT''@;'; + put 'put ''ZXR0aW5nKCJvblNjcm9sbEhvcml6b250YWxseSIpfX0se2tleToic3VtQ2VsbFNpemVzIix2YWx1ZTpmdW5jdGlvbih5LEMpe2Zvcih2YXIgST10aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygiZGVmYXVsdFJvd0hlaWdodCIpLGo9eSx1ZT0wO2o8Qzspe3ZhciBfZT10aGlzLndvdC53dFRh''@;'; + put 'put ''YmxlLmdldFJvd0hlaWdodChqKTt1ZSs9dm9pZCAwPT09X2U/STpfZSxqKz0xfXJldHVybiB1ZX19LHtrZXk6ImFkanVzdEVsZW1lbnRzU2l6ZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXSYmYXJndW1lbnRzWzBdO3Ro''@;'; + put 'put ''aXMudXBkYXRlVHJpbW1pbmdDb250YWluZXIoKSwodGhpcy5uZWVkRnVsbFJlbmRlcnx8eSkmJih0aGlzLmFkanVzdFJvb3RFbGVtZW50U2l6ZSgpLHRoaXMuYWRqdXN0Um9vdENoaWxkcmVuU2l6ZSgpKX19LHtrZXk6ImFkanVzdFJvb3RFbGVtZW50U2l6ZSIsdmFsdWU6ZnVuY3Rpb24oKXt2''@;'; + put 'put ''YXIgeT10aGlzLndvdC53dFRhYmxlLEM9dGhpcy5kb21CaW5kaW5ncyxqPUMucm9vdFdpbmRvdyx1ZT1CYyhDLnJvb3REb2N1bWVudCksQmU9dGhpcy5jbG9uZS53dFRhYmxlLmhvbGRlci5wYXJlbnROb2RlLnN0eWxlLE5lPXRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJwcmV2ZW50T3Zl''@;'; + put 'put ''cmZsb3ciKTtpZih0aGlzLnRyaW1taW5nQ29udGFpbmVyIT09anx8Imhvcml6b250YWwiPT09TmUpe3ZhciBLZT10aGlzLndvdC53dFZpZXdwb3J0LmdldFdvcmtzcGFjZVdpZHRoKCk7dGhpcy53b3Qud3RPdmVybGF5cy5oYXNTY3JvbGxiYXJSaWdodCYmKEtlLT11ZSksS2U9TWF0aC5taW4o''@;'; + put 'put ''S2UseS53dFJvb3RFbGVtZW50LnNjcm9sbFdpZHRoKSxCZS53aWR0aD0iIi5jb25jYXQoS2UsInB4Iil9ZWxzZSBCZS53aWR0aD0iIjt0aGlzLmNsb25lLnd0VGFibGUuaG9sZGVyLnN0eWxlLndpZHRoPUJlLndpZHRoO3ZhciBkdD1EMSh0aGlzLmNsb25lLnd0VGFibGUuVEFCTEUpO3RoaXMu''@;'; + put 'put ''d290Lnd0VGFibGUuaGFzRGVmaW5lZFNpemUoKXx8KGR0PTApLEJlLmhlaWdodD0iIi5jb25jYXQoZHQsInB4Iil9fSx7a2V5OiJhZGp1c3RSb290Q2hpbGRyZW5TaXplIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5LEM9dGhpcy5jbG9uZS53dFRhYmxlLmhvbGRlcixJPXRoaXMud290LnNlbGVj''@;'; + put 'put ''dGlvbnMsaj10aGlzLmZhY2FkZUdldHRlcigpLHVlPU1hdGguYWJzKG51bGwhPT0oeT1udWxsPT1JP3ZvaWQgMDpJLmdldENlbGwoKS5nZXRCb3JkZXIoaikuY29ybmVyQ2VudGVyUG9pbnRPZmZzZXQpJiZ2b2lkIDAhPT15P3k6MCk7dGhpcy5jbG9uZS53dFRhYmxlLmhpZGVyLnN0eWxlLndp''@;'; + put 'put ''ZHRoPXRoaXMuaGlkZXIuc3R5bGUud2lkdGgsQy5zdHlsZS53aWR0aD1DLnBhcmVudE5vZGUuc3R5bGUud2lkdGgsQy5zdHlsZS5oZWlnaHQ9IiIuY29uY2F0KHBhcnNlSW50KEMucGFyZW50Tm9kZS5zdHlsZS5oZWlnaHQsMTApK3VlLCJweCIpfX0se2tleToiYXBwbHlUb0RPTSIsdmFsdWU6''@;'; + put 'put ''ZnVuY3Rpb24oKXt2YXIgeT10aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygidG90YWxSb3dzIik7aWYoIm51bWJlciI9PXR5cGVvZiB0aGlzLndvdC53dFZpZXdwb3J0LnJvd3NSZW5kZXJDYWxjdWxhdG9yLnN0YXJ0UG9zaXRpb24pdGhpcy5zcHJlYWRlci5zdHlsZS50b3A9IiIuY29uY2F0''@;'; + put 'put ''KHRoaXMud290Lnd0Vmlld3BvcnQucm93c1JlbmRlckNhbGN1bGF0b3Iuc3RhcnRQb3NpdGlvbiwicHgiKTtlbHNle2lmKDAhPT15KXRocm93IG5ldyBFcnJvcigiSW5jb3JyZWN0IHZhbHVlIG9mIHRoZSByb3dzUmVuZGVyQ2FsY3VsYXRvciIpO3RoaXMuc3ByZWFkZXIuc3R5bGUudG9wPSIw''@;'; + put 'put ''In10aGlzLnNwcmVhZGVyLnN0eWxlLmJvdHRvbT0iIix0aGlzLm5lZWRGdWxsUmVuZGVyJiZ0aGlzLnN5bmNPdmVybGF5T2Zmc2V0KCl9fSx7a2V5OiJzeW5jT3ZlcmxheU9mZnNldCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzLmlzUnRsKCk/InJpZ2h0IjoibGVmdCI7dGhpcy5jbG9u''@;'; + put 'put ''ZS53dFRhYmxlLnNwcmVhZGVyLnN0eWxlW3ldPSJudW1iZXIiPT10eXBlb2YgdGhpcy53b3Qud3RWaWV3cG9ydC5jb2x1bW5zUmVuZGVyQ2FsY3VsYXRvci5zdGFydFBvc2l0aW9uPyIiLmNvbmNhdCh0aGlzLndvdC53dFZpZXdwb3J0LmNvbHVtbnNSZW5kZXJDYWxjdWxhdG9yLnN0YXJ0UG9z''@;'; + put 'put ''aXRpb24sInB4Iik6IiJ9fSx7a2V5OiJzY3JvbGxUbyIsdmFsdWU6ZnVuY3Rpb24oeSxDKXt2YXIgST10aGlzLndvdCxqPXRoaXMud3RTZXR0aW5ncyxfZT0oSS5jbG9uZVNvdXJjZT9JLmNsb25lU291cmNlOkkpLnd0VGFibGUuaG9sZGVyLEJlPXRoaXMuZ2V0VGFibGVQYXJlbnRPZmZzZXQo''@;'; + put 'put ''KSxOZT0wO2lmKEMmJnRoaXMud290Lnd0VGFibGUuZ2V0Um93SGVpZ2h0KHkpPnRoaXMud290Lnd0Vmlld3BvcnQuZ2V0Vmlld3BvcnRIZWlnaHQoKSYmKEM9ITEpLEMmJl9lLm9mZnNldEhlaWdodCE9PV9lLmNsaWVudEhlaWdodCYmKE5lPUJjKHRoaXMuZG9tQmluZGluZ3Mucm9vdERvY3Vt''@;'; + put 'put ''ZW50KSksQyl7dmFyIE90PWouZ2V0U2V0dGluZygiZml4ZWRSb3dzQm90dG9tIiksJHQ9ai5nZXRTZXR0aW5nKCJ0b3RhbFJvd3MiKTtCZSs9dGhpcy5zdW1DZWxsU2l6ZXMoMCx5KzEpLEJlLT1JLnd0Vmlld3BvcnQuZ2V0Vmlld3BvcnRIZWlnaHQoKS10aGlzLnN1bUNlbGxTaXplcygkdC1P''@;'; + put 'put ''dCwkdCksQmUrPTF9ZWxzZSBCZSs9dGhpcy5zdW1DZWxsU2l6ZXMoai5nZXRTZXR0aW5nKCJmaXhlZFJvd3NUb3AiKSx5KTtyZXR1cm4gdGhpcy5zZXRTY3JvbGxQb3NpdGlvbihCZSs9TmUpfX0se2tleToiZ2V0VGFibGVQYXJlbnRPZmZzZXQiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRo''@;'; + put 'put ''aXMubWFpblRhYmxlU2Nyb2xsYWJsZUVsZW1lbnQ9PT10aGlzLmRvbUJpbmRpbmdzLnJvb3RXaW5kb3c/dGhpcy53b3Qud3RUYWJsZS5ob2xkZXJPZmZzZXQudG9wOjB9fSx7a2V5OiJnZXRTY3JvbGxQb3NpdGlvbiIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gRloodGhpcy5tYWluVGFibGVT''@;'; + put 'put ''Y3JvbGxhYmxlRWxlbWVudCx0aGlzLmRvbUJpbmRpbmdzLnJvb3RXaW5kb3cpfX0se2tleToiZ2V0T3ZlcmxheU9mZnNldCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzLmRvbUJpbmRpbmdzLnJvb3RXaW5kb3csQz10aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygicHJldmVudE92ZXJm''@;'; + put 'put ''bG93IiksST0wO2lmKHRoaXMudHJpbW1pbmdDb250YWluZXI9PT15JiYoIUN8fCJ2ZXJ0aWNhbCIhPT1DKSl7dmFyIF9lPXRoaXMud290Lnd0VGFibGUuZ2V0VG90YWxIZWlnaHQoKS10aGlzLmNsb25lLnd0VGFibGUuZ2V0VG90YWxIZWlnaHQoKTsoST1NYXRoLm1heCh0aGlzLmdldFNjcm9s''@;'; + put 'put ''bFBvc2l0aW9uKCktdGhpcy5nZXRUYWJsZVBhcmVudE9mZnNldCgpLDApKT5fZSYmKEk9MCl9cmV0dXJuIEl9fSx7a2V5OiJhZGp1c3RIZWFkZXJCb3JkZXJzUG9zaXRpb24iLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFd''@;'; + put 'put ''JiZhcmd1bWVudHNbMV0sST10aGlzLndvdC53dFRhYmxlLmhvbGRlci5wYXJlbnROb2RlLGo9dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoInRvdGFsQ29sdW1ucyIpO2o/cGwoSSwiZW1wdHlDb2x1bW5zIik6TzAoSSwiZW1wdHlDb2x1bW5zIik7dmFyIHVlPSExO2lmKCFDKXt2YXIgX2U9''@;'; + put 'put ''dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoImZpeGVkUm93c1RvcCIpLEJlPXRoaXMuY2FjaGVkRml4ZWRSb3dzVG9wIT09X2UsTmU9dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoImNvbHVtbkhlYWRlcnMiKTtpZigoQmV8fDA9PT1fZSkmJk5lLmxlbmd0aD4wKXt2YXIgS2U9dGwoSSwi''@;'; + put 'put ''aW5uZXJCb3JkZXJUb3AiKTt0aGlzLmNhY2hlZEZpeGVkUm93c1RvcD10aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygiZml4ZWRSb3dzVG9wIikseXx8MD09PXRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJ0b3RhbFJvd3MiKT8oTzAoSSwiaW5uZXJCb3JkZXJUb3AiKSx1ZT0hS2UpOihw''@;'; + put 'put ''bChJLCJpbm5lckJvcmRlclRvcCIpLHVlPUtlKX19cmV0dXJuIHVlfX1dKSxofShYWiksZENlPXtnZXRGaXJzdFJlbmRlcmVkUm93OmZ1bmN0aW9uKCl7dmFyIGc9dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoInRvdGFsUm93cyIpLGg9dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoImZp''@;'; + put 'put ''eGVkUm93c0JvdHRvbSIpLHY9Zy1oO3JldHVybiAwPT09Z3x8MD09PWg/LTE6djwwPzA6dn0sZ2V0Rmlyc3RWaXNpYmxlUm93OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0Rmlyc3RSZW5kZXJlZFJvdygpfSxnZXRMYXN0UmVuZGVyZWRSb3c6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy53dFNl''@;'; + put 'put ''dHRpbmdzLmdldFNldHRpbmcoInRvdGFsUm93cyIpLTF9LGdldExhc3RWaXNpYmxlUm93OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0TGFzdFJlbmRlcmVkUm93KCl9LGdldFJlbmRlcmVkUm93c0NvdW50OmZ1bmN0aW9uKCl7dmFyIGc9dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoInRv''@;'; + put 'put ''dGFsUm93cyIpO3JldHVybiBNYXRoLm1pbih0aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygiZml4ZWRSb3dzQm90dG9tIiksZyl9LGdldFZpc2libGVSb3dzQ291bnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXRSZW5kZXJlZFJvd3NDb3VudCgpfX07U2coZENlLCJNSVhJTl9OQU1FIiwi''@;'; + put 'put ''c3RpY2t5Um93c0JvdHRvbSIse3dyaXRhYmxlOiExLGVudW1lcmFibGU6ITF9KTtjb25zdCBwQ2U9ZENlO2Z1bmN0aW9uIG1kZShkKXtyZXR1cm4obWRlPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGcpe3JldHVy''@;'; + put 'put ''biB0eXBlb2YgZ306ZnVuY3Rpb24oZyl7cmV0dXJuIGcmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmcuY29uc3RydWN0b3I9PT1TeW1ib2wmJmchPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBnfSkoZCl9ZnVuY3Rpb24gZ0NlKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxl''@;'; + put 'put ''bmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19ZnVuY3Rpb24gdmRlKGQsZyl7cmV0dXJuKHZkZT1PYmpl''@;'; + put 'put ''Y3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbih2LHkpe3JldHVybiB2Ll9fcHJvdG9fXz15LHZ9KShkLGcpfWZ1bmN0aW9uIEZZZShkLGcpe2lmKGcmJigib2JqZWN0Ij09PW1kZShnKXx8ImZ1bmN0aW9uIj09dHlwZW9mIGcpKXJldHVybiBn''@;'; + put 'put ''O2lmKHZvaWQgMCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWQiKTtyZXR1cm4gZnVuY3Rpb24gSFllKGQpe2lmKHZvaWQgMD09PWQpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhh''@;'; + put 'put ''c24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4gZH0oZCl9ZnVuY3Rpb24ga2VlKGQpe3JldHVybihrZWU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24oaCl7cmV0dXJuIGgu''@;'; + put 'put ''X19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YoaCl9KShkKX12YXIgQWRlPWZ1bmN0aW9uKGQpeyFmdW5jdGlvbiBCWWUoZCxnKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZyYmbnVsbCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBi''@;'; + put 'put ''ZSBudWxsIG9yIGEgZnVuY3Rpb24iKTtkLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGcmJmcucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6ZCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiEx''@;'; + put 'put ''fSksZyYmdmRlKGQsZyl9KGgsZCk7dmFyIGc9ZnVuY3Rpb24gUFllKGQpe3ZhciBnPWZ1bmN0aW9uIE5ZZSgpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0fHxSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5''@;'; + put 'put ''cGVvZiBQcm94eSlyZXR1cm4hMDt0cnl7cmV0dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLGZ1bmN0aW9uKCl7fSkpLCEwfWNhdGNoKGQpe3JldHVybiExfX0oKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgeSx2PWtlZShkKTtp''@;'; + put 'put ''ZihnKXt2YXIgQz1rZWUodGhpcykuY29uc3RydWN0b3I7eT1SZWZsZWN0LmNvbnN0cnVjdCh2LGFyZ3VtZW50cyxDKX1lbHNlIHk9di5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIEZZZSh0aGlzLHkpfX0oaCk7ZnVuY3Rpb24gaCh2LHksQyxJKXtyZXR1cm4gZnVuY3Rpb24gUlllKGQs''@;'; + put 'put ''Zyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsaCksZy5jYWxsKHRoaXMsdix5LEMsSSxFZyl9cmV0dXJuIGZ1bmN0aW9uIE9ZZShkLGcsaCl7cmV0dXJuIGcmJmdDZShkLnByb3RvdHlw''@;'; + put 'put ''ZSxnKSxoJiZnQ2UoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxkfShoKX0obU8pO0IyKEFkZSxwQ2UpLEIyKEFkZSxvZGUpO2NvbnN0IFZZZT1BZGU7ZnVuY3Rpb24geWRlKGQpe3JldHVybih5ZGU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5''@;'; + put 'put ''bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZyl7cmV0dXJuIHR5cGVvZiBnfTpmdW5jdGlvbihnKXtyZXR1cm4gZyYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZy5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZyE9PVN5bWJvbC5wcm90b3R5cGU/InN5''@;'; + put 'put ''bWJvbCI6dHlwZW9mIGd9KShkKX1mdW5jdGlvbiBTZWUoZCxnLGgpe3JldHVybihTZWU9QUNlKCk/UmVmbGVjdC5jb25zdHJ1Y3QuYmluZCgpOmZ1bmN0aW9uKHksQyxJKXt2YXIgaj1bbnVsbF07ai5wdXNoLmFwcGx5KGosQyk7dmFyIF9lPW5ldyhGdW5jdGlvbi5iaW5kLmFwcGx5KHksaikp''@;'; + put 'put ''O3JldHVybiBJJiZNZWUoX2UsSS5wcm90b3R5cGUpLF9lfSkuYXBwbHkobnVsbCxhcmd1bWVudHMpfWZ1bmN0aW9uIG1DZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2''@;'; + put 'put ''YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fWZ1bmN0aW9uIE1lZShkLGcpe3JldHVybihNZWU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24odix5KXtyZXR1cm4gdi5f''@;'; + put 'put ''X3Byb3RvX189eSx2fSkoZCxnKX1mdW5jdGlvbiBXWWUoZCxnKXtpZihnJiYoIm9iamVjdCI9PT15ZGUoZyl8fCJmdW5jdGlvbiI9PXR5cGVvZiBnKSlyZXR1cm4gZztpZih2b2lkIDAhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIkRlcml2ZWQgY29uc3RydWN0b3JzIG1heSBvbmx5IHJldHVy''@;'; + put 'put ''biBvYmplY3Qgb3IgdW5kZWZpbmVkIik7cmV0dXJuIHZDZShkKX1mdW5jdGlvbiB2Q2UoZCl7aWYodm9pZCAwPT09ZCl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3JldHVybiBkfWZ1''@;'; + put 'put ''bmN0aW9uIEFDZSgpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0fHxSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBQcm94eSlyZXR1cm4hMDt0cnl7cmV0dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZh''@;'; + put 'put ''bHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLGZ1bmN0aW9uKCl7fSkpLCEwfWNhdGNoKGQpe3JldHVybiExfX1mdW5jdGlvbiBFZWUoZCl7cmV0dXJuKEVlZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbiho''@;'; + put 'put ''KXtyZXR1cm4gaC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihoKX0pKGQpfXZhciBVWWU9ZnVuY3Rpb24oZCl7IWZ1bmN0aW9uIHpZZShkLGcpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBnJiZudWxsIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11''@;'; + put 'put ''c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiIpO2QucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZyYmZy5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTpkLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7''@;'; + put 'put ''d3JpdGFibGU6ITF9KSxnJiZNZWUoZCxnKX0oaCxkKTt2YXIgZz1mdW5jdGlvbiBHWWUoZCl7dmFyIGc9QUNlKCk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHksdj1FZWUoZCk7aWYoZyl7dmFyIEM9RWVlKHRoaXMpLmNvbnN0cnVjdG9yO3k9UmVmbGVjdC5jb25zdHJ1Y3Qodixhcmd1bWVudHMs''@;'; + put 'put ''Qyl9ZWxzZSB5PXYuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBXWWUodGhpcyx5KX19KGgpO2Z1bmN0aW9uIGgodix5LEMsSSl7dmFyIGo7cmV0dXJuIGZ1bmN0aW9uIGpZZShkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEg''@;'; + put 'put ''Y2xhc3MgYXMgYSBmdW5jdGlvbiIpfSh0aGlzLGgpLGZ1bmN0aW9uIFlZZShkLGcsaCl7ZyBpbiBkP09iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGcse3ZhbHVlOmgsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpkW2ddPWh9KHZDZShqPWcuY2FsbCh0aGlzLHYs''@;'; + put 'put ''eSxFZyxDLEkpKSwiY2FjaGVkRml4ZWRSb3dzQm90dG9tIiwtMSksai5jYWNoZWRGaXhlZFJvd3NCb3R0b209ai53dFNldHRpbmdzLmdldFNldHRpbmcoImZpeGVkUm93c0JvdHRvbSIpLGp9cmV0dXJuIGZ1bmN0aW9uIFpZZShkLGcsaCl7ZyYmbUNlKGQucHJvdG90eXBlLGcpLGgmJm1DZShk''@;'; + put 'put ''LGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShoLFt7a2V5OiJjcmVhdGVUYWJsZSIsdmFsdWU6ZnVuY3Rpb24oKXtmb3IodmFyIHk9YXJndW1lbnRzLmxlbmd0aCxDPW5ldyBBcnJheSh5KSxJPTA7STx5O0krKylDW0ldPWFyZ3VtZW50c1tJ''@;'; + put 'put ''XTtyZXR1cm4gU2VlKFZZZSxDKX19LHtrZXk6InNob3VsZEJlUmVuZGVyZWQiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJzaG91bGRSZW5kZXJCb3R0b21PdmVybGF5Iil9fSx7a2V5OiJyZXNldEZpeGVkUG9zaXRpb24iLHZhbHVlOmZ1bmN0''@;'; + put 'put ''aW9uKCl7aWYoIXRoaXMubmVlZEZ1bGxSZW5kZXJ8fCF0aGlzLndvdC53dFRhYmxlLmhvbGRlci5wYXJlbnROb2RlKXJldHVybiExO3ZhciB5PXRoaXMuZG9tQmluZGluZ3Mucm9vdFdpbmRvdyxDPXRoaXMuY2xvbmUud3RUYWJsZS5ob2xkZXIucGFyZW50Tm9kZTtDLnN0eWxlLnRvcD0iIjt2''@;'; + put 'put ''YXIgST0wLGo9dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoInByZXZlbnRPdmVyZmxvdyIpO3RoaXMudHJpbW1pbmdDb250YWluZXIhPT15fHxqJiYidmVydGljYWwiPT09aj8oST10aGlzLmdldFNjcm9sbFBvc2l0aW9uKCksdGhpcy5yZXBvc2l0aW9uT3ZlcmxheSgpKTooST10aGlzLmdl''@;'; + put 'put ''dE92ZXJsYXlPZmZzZXQoKSxDLnN0eWxlLmJvdHRvbT0iIi5jb25jYXQoSSwicHgiKSk7dmFyIHVlPXRoaXMuYWRqdXN0SGVhZGVyQm9yZGVyc1Bvc2l0aW9uKEkpO3JldHVybiB0aGlzLmFkanVzdEVsZW1lbnRzU2l6ZSgpLHVlfX0se2tleToicmVwb3NpdGlvbk92ZXJsYXkiLHZhbHVlOmZ1''@;'; + put 'put ''bmN0aW9uKCl7dmFyIHk9dGhpcy53b3QsQz15Lnd0VGFibGUsST15Lnd0Vmlld3BvcnQsaj10aGlzLmRvbUJpbmRpbmdzLnJvb3REb2N1bWVudCx1ZT10aGlzLmNsb25lLnd0VGFibGUuaG9sZGVyLnBhcmVudE5vZGUsX2U9MDtJLmhhc1ZlcnRpY2FsU2Nyb2xsKCl8fChfZSs9SS5nZXRXb3Jr''@;'; + put 'put ''c3BhY2VIZWlnaHQoKS1DLmdldFRvdGFsSGVpZ2h0KCkpLEkuaGFzVmVydGljYWxTY3JvbGwoKSYmSS5oYXNIb3Jpem9udGFsU2Nyb2xsKCkmJihfZSs9QmMoaikpLHVlLnN0eWxlLmJvdHRvbT0iIi5jb25jYXQoX2UsInB4Iil9fSx7a2V5OiJzZXRTY3JvbGxQb3NpdGlvbiIsdmFsdWU6ZnVu''@;'; + put 'put ''Y3Rpb24oeSl7dmFyIEM9dGhpcy5kb21CaW5kaW5ncy5yb290V2luZG93LEk9ITE7cmV0dXJuIHRoaXMubWFpblRhYmxlU2Nyb2xsYWJsZUVsZW1lbnQ9PT1DPyhDLnNjcm9sbFRvKE1TKEMpLHkpLEk9ITApOnRoaXMubWFpblRhYmxlU2Nyb2xsYWJsZUVsZW1lbnQuc2Nyb2xsVG9wIT09eSYm''@;'; + put 'put ''KHRoaXMubWFpblRhYmxlU2Nyb2xsYWJsZUVsZW1lbnQuc2Nyb2xsVG9wPXksST0hMCksSX19LHtrZXk6Im9uU2Nyb2xsIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJvblNjcm9sbEhvcml6b250YWxseSIpfX0se2tleToic3VtQ2VsbFNpemVzIix2YWx1''@;'; + put 'put ''ZTpmdW5jdGlvbih5LEMpe2Zvcih2YXIgST10aGlzLndvdCxqPUkud3RUYWJsZSxfZT1JLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygiZGVmYXVsdFJvd0hlaWdodCIpLEJlPXksTmU9MDtCZTxDOyl7dmFyIEtlPWouZ2V0Um93SGVpZ2h0KEJlKTtOZSs9dm9pZCAwPT09S2U/X2U6S2UsQmUrPTF9''@;'; + put 'put ''cmV0dXJuIE5lfX0se2tleToiYWRqdXN0RWxlbWVudHNTaXplIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdJiZhcmd1bWVudHNbMF07dGhpcy51cGRhdGVUcmltbWluZ0NvbnRhaW5lcigpLCh0aGlzLm5lZWRGdWxsUmVu''@;'; + put 'put ''ZGVyfHx5KSYmKHRoaXMuYWRqdXN0Um9vdEVsZW1lbnRTaXplKCksdGhpcy5hZGp1c3RSb290Q2hpbGRyZW5TaXplKCkpfX0se2tleToiYWRqdXN0Um9vdEVsZW1lbnRTaXplIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXMud290LEM9eS53dFRhYmxlLEk9eS53dFZpZXdwb3J0LGo9dGhp''@;'; + put 'put ''cy5kb21CaW5kaW5ncyxfZT1qLnJvb3RXaW5kb3csQmU9QmMoai5yb290RG9jdW1lbnQpLEtlPXRoaXMuY2xvbmUud3RUYWJsZS5ob2xkZXIucGFyZW50Tm9kZS5zdHlsZSxkdD10aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygicHJldmVudE92ZXJmbG93Iik7aWYodGhpcy50cmltbWluZ0Nv''@;'; + put 'put ''bnRhaW5lciE9PV9lfHwiaG9yaXpvbnRhbCI9PT1kdCl7dmFyIE90PUkuZ2V0V29ya3NwYWNlV2lkdGgoKTt0aGlzLndvdC53dE92ZXJsYXlzLmhhc1Njcm9sbGJhclJpZ2h0JiYoT3QtPUJlKSxPdD1NYXRoLm1pbihPdCxDLnd0Um9vdEVsZW1lbnQuc2Nyb2xsV2lkdGgpLEtlLndpZHRoPSIi''@;'; + put 'put ''LmNvbmNhdChPdCwicHgiKX1lbHNlIEtlLndpZHRoPSIiO3RoaXMuY2xvbmUud3RUYWJsZS5ob2xkZXIuc3R5bGUud2lkdGg9S2Uud2lkdGg7dmFyICR0PUQxKHRoaXMuY2xvbmUud3RUYWJsZS5UQUJMRSk7dGhpcy53b3Qud3RUYWJsZS5oYXNEZWZpbmVkU2l6ZSgpfHwoJHQ9MCksS2UuaGVp''@;'; + put 'put ''Z2h0PSIiLmNvbmNhdCgkdCwicHgiKX19LHtrZXk6ImFkanVzdFJvb3RDaGlsZHJlblNpemUiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcy5jbG9uZS53dFRhYmxlLmhvbGRlcjt0aGlzLmNsb25lLnd0VGFibGUuaGlkZXIuc3R5bGUud2lkdGg9dGhpcy5oaWRlci5zdHlsZS53aWR0aCx5''@;'; + put 'put ''LnN0eWxlLndpZHRoPXkucGFyZW50Tm9kZS5zdHlsZS53aWR0aCx5LnN0eWxlLmhlaWdodD15LnBhcmVudE5vZGUuc3R5bGUuaGVpZ2h0fX0se2tleToiYXBwbHlUb0RPTSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygidG90YWxSb3dzIik7aWYo''@;'; + put 'put ''Im51bWJlciI9PXR5cGVvZiB0aGlzLndvdC53dFZpZXdwb3J0LnJvd3NSZW5kZXJDYWxjdWxhdG9yLnN0YXJ0UG9zaXRpb24pdGhpcy5zcHJlYWRlci5zdHlsZS50b3A9IiIuY29uY2F0KHRoaXMud290Lnd0Vmlld3BvcnQucm93c1JlbmRlckNhbGN1bGF0b3Iuc3RhcnRQb3NpdGlvbiwicHgi''@;'; + put 'put ''KTtlbHNle2lmKDAhPT15KXRocm93IG5ldyBFcnJvcigiSW5jb3JyZWN0IHZhbHVlIG9mIHRoZSByb3dzUmVuZGVyQ2FsY3VsYXRvciIpO3RoaXMuc3ByZWFkZXIuc3R5bGUudG9wPSIwIn10aGlzLnNwcmVhZGVyLnN0eWxlLmJvdHRvbT0iIix0aGlzLm5lZWRGdWxsUmVuZGVyJiZ0aGlzLnN5''@;'; + put 'put ''bmNPdmVybGF5T2Zmc2V0KCl9fSx7a2V5OiJzeW5jT3ZlcmxheU9mZnNldCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzLmlzUnRsKCk/InJpZ2h0IjoibGVmdCI7dGhpcy5jbG9uZS53dFRhYmxlLnNwcmVhZGVyLnN0eWxlW3ldPSJudW1iZXIiPT10eXBlb2YgdGhpcy53b3Qud3RWaWV3''@;'; + put 'put ''cG9ydC5jb2x1bW5zUmVuZGVyQ2FsY3VsYXRvci5zdGFydFBvc2l0aW9uPyIiLmNvbmNhdCh0aGlzLndvdC53dFZpZXdwb3J0LmNvbHVtbnNSZW5kZXJDYWxjdWxhdG9yLnN0YXJ0UG9zaXRpb24sInB4Iik6IiJ9fSx7a2V5OiJzY3JvbGxUbyIsdmFsdWU6ZnVuY3Rpb24oeSxDKXt2YXIgST10''@;'; + put 'put ''aGlzLmdldFRhYmxlUGFyZW50T2Zmc2V0KCksdWU9KHRoaXMud290LmNsb25lU291cmNlP3RoaXMud290LmNsb25lU291cmNlOnRoaXMud290KS53dFRhYmxlLmhvbGRlcixfZT0wO0MmJnVlLm9mZnNldEhlaWdodCE9PXVlLmNsaWVudEhlaWdodCYmKF9lPUJjKHRoaXMuZG9tQmluZGluZ3Mu''@;'; + put 'put ''cm9vdERvY3VtZW50KSksQz8oSSs9dGhpcy5zdW1DZWxsU2l6ZXMoMCx5KzEpLEktPXRoaXMud290Lnd0Vmlld3BvcnQuZ2V0Vmlld3BvcnRIZWlnaHQoKSxJKz0xKTpJKz10aGlzLnN1bUNlbGxTaXplcyh0aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygiZml4ZWRSb3dzQm90dG9tIikseSks''@;'; + put 'put ''dGhpcy5zZXRTY3JvbGxQb3NpdGlvbihJKz1fZSl9fSx7a2V5OiJnZXRUYWJsZVBhcmVudE9mZnNldCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYWluVGFibGVTY3JvbGxhYmxlRWxlbWVudD09PXRoaXMuZG9tQmluZGluZ3Mucm9vdFdpbmRvdz90aGlzLndvdC53dFRhYmxlLmhv''@;'; + put 'put ''bGRlck9mZnNldC50b3A6MH19LHtrZXk6ImdldFNjcm9sbFBvc2l0aW9uIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBGWih0aGlzLm1haW5UYWJsZVNjcm9sbGFibGVFbGVtZW50LHRoaXMuZG9tQmluZGluZ3Mucm9vdFdpbmRvdyl9fSx7a2V5OiJnZXRPdmVybGF5T2Zmc2V0Iix2YWx1ZTpm''@;'; + put 'put ''dW5jdGlvbigpe3ZhciB5PXRoaXMuZG9tQmluZGluZ3Mucm9vdFdpbmRvdyxDPXRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJwcmV2ZW50T3ZlcmZsb3ciKSxJPTA7aWYodGhpcy50cmltbWluZ0NvbnRhaW5lcj09PXkmJighQ3x8InZlcnRpY2FsIiE9PUMpKXt2YXIgaj10aGlzLndvdC53''@;'; + put 'put ''dFRhYmxlLmdldFRvdGFsSGVpZ2h0KCksX2U9ai10aGlzLmNsb25lLnd0VGFibGUuZ2V0VG90YWxIZWlnaHQoKSxCZT10aGlzLmRvbUJpbmRpbmdzLnJvb3REb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0OyhJPU1hdGgubWF4KHRoaXMuZ2V0VGFibGVQYXJlbnRPZmZzZXQo''@;'; + put 'put ''KS10aGlzLmdldFNjcm9sbFBvc2l0aW9uKCktQmUraiwwKSk+X2UmJihJPTApfXJldHVybiBJfX0se2tleToiYWRqdXN0SGVhZGVyQm9yZGVyc1Bvc2l0aW9uIix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz10aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygiZml4ZWRSb3dzQm90dG9tIiksST10''@;'; + put 'put ''aGlzLmNhY2hlZEZpeGVkUm93c0JvdHRvbSE9PUMsaj10aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygiY29sdW1uSGVhZGVycyIpLHVlPSExO2lmKChJfHwwPT09QykmJmoubGVuZ3RoPjApe3ZhciBfZT10aGlzLndvdC53dFRhYmxlLmhvbGRlci5wYXJlbnROb2RlLEJlPXRsKF9lLCJpbm5l''@;'; + put 'put ''ckJvcmRlckJvdHRvbSIpO3RoaXMuY2FjaGVkRml4ZWRSb3dzQm90dG9tPXRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJmaXhlZFJvd3NCb3R0b20iKSx5fHwwPT09dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoInRvdGFsUm93cyIpPyhPMChfZSwiaW5uZXJCb3JkZXJCb3R0b20iKSx1''@;'; + put 'put ''ZT0hQmUpOihwbChfZSwiaW5uZXJCb3JkZXJCb3R0b20iKSx1ZT1CZSl9cmV0dXJuIHVlfX1dKSxofShYWikseUNlPXtnZXRGaXJzdFJlbmRlcmVkUm93OmZ1bmN0aW9uKCl7dmFyIGc9dGhpcy5kYXRhQWNjZXNzT2JqZWN0LnN0YXJ0Um93UmVuZGVyZWQ7cmV0dXJuIG51bGw9PT1nPy0xOmd9''@;'; + put 'put ''LGdldEZpcnN0VmlzaWJsZVJvdzpmdW5jdGlvbigpe3ZhciBnPXRoaXMuZGF0YUFjY2Vzc09iamVjdC5zdGFydFJvd1Zpc2libGU7cmV0dXJuIG51bGw9PT1nPy0xOmd9LGdldExhc3RSZW5kZXJlZFJvdzpmdW5jdGlvbigpe3ZhciBnPXRoaXMuZGF0YUFjY2Vzc09iamVjdC5lbmRSb3dSZW5k''@;'; + put 'put ''ZXJlZDtyZXR1cm4gbnVsbD09PWc/LTE6Z30sZ2V0TGFzdFZpc2libGVSb3c6ZnVuY3Rpb24oKXt2YXIgZz10aGlzLmRhdGFBY2Nlc3NPYmplY3QuZW5kUm93VmlzaWJsZTtyZXR1cm4gbnVsbD09PWc/LTE6Z30sZ2V0UmVuZGVyZWRSb3dzQ291bnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5k''@;'; + put 'put ''YXRhQWNjZXNzT2JqZWN0LmNvdW50Um93c1JlbmRlcmVkfSxnZXRWaXNpYmxlUm93c0NvdW50OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZGF0YUFjY2Vzc09iamVjdC5jb3VudFJvd3NWaXNpYmxlfX07U2coeUNlLCJNSVhJTl9OQU1FIiwiY2FsY3VsYXRlZFJvd3MiLHt3cml0YWJsZTohMSxl''@;'; + put 'put ''bnVtZXJhYmxlOiExfSk7Y29uc3Qgd0NlPXlDZTt2YXIgYkNlPXtnZXRGaXJzdFJlbmRlcmVkQ29sdW1uOmZ1bmN0aW9uKCl7cmV0dXJuIDA9PT10aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygidG90YWxDb2x1bW5zIik/LTE6MH0sZ2V0Rmlyc3RWaXNpYmxlQ29sdW1uOmZ1bmN0aW9uKCl7''@;'; + put 'put ''cmV0dXJuIHRoaXMuZ2V0Rmlyc3RSZW5kZXJlZENvbHVtbigpfSxnZXRMYXN0UmVuZGVyZWRDb2x1bW46ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXRSZW5kZXJlZENvbHVtbnNDb3VudCgpLTF9LGdldExhc3RWaXNpYmxlQ29sdW1uOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0TGFzdFJl''@;'; + put 'put ''bmRlcmVkQ29sdW1uKCl9LGdldFJlbmRlcmVkQ29sdW1uc0NvdW50OmZ1bmN0aW9uKCl7dmFyIGc9dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoInRvdGFsQ29sdW1ucyIpO3JldHVybiBNYXRoLm1pbih0aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygiZml4ZWRDb2x1bW5zU3RhcnQiKSxn''@;'; + put 'put ''KX0sZ2V0VmlzaWJsZUNvbHVtbnNDb3VudDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmdldFJlbmRlcmVkQ29sdW1uc0NvdW50KCl9fTtTZyhiQ2UsIk1JWElOX05BTUUiLCJzdGlja3lDb2x1bW5zU3RhcnQiLHt3cml0YWJsZTohMSxlbnVtZXJhYmxlOiExfSk7Y29uc3Qgd2RlPWJDZTtmdW5j''@;'; + put 'put ''dGlvbiBiZGUoZCl7cmV0dXJuKGJkZT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihnKXtyZXR1cm4gdHlwZW9mIGd9OmZ1bmN0aW9uKGcpe3JldHVybiBnJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZnLmNv''@;'; + put 'put ''bnN0cnVjdG9yPT09U3ltYm9sJiZnIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgZ30pKGQpfWZ1bmN0aW9uIF9DZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxl''@;'; + put 'put ''PSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fWZ1bmN0aW9uIF9kZShkLGcpe3JldHVybihfZGU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24odix5KXtyZXR1''@;'; + put 'put ''cm4gdi5fX3Byb3RvX189eSx2fSkoZCxnKX1mdW5jdGlvbiBlVWUoZCxnKXtpZihnJiYoIm9iamVjdCI9PT1iZGUoZyl8fCJmdW5jdGlvbiI9PXR5cGVvZiBnKSlyZXR1cm4gZztpZih2b2lkIDAhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIkRlcml2ZWQgY29uc3RydWN0b3JzIG1heSBvbmx5''@;'; + put 'put ''IHJldHVybiBvYmplY3Qgb3IgdW5kZWZpbmVkIik7cmV0dXJuIGZ1bmN0aW9uIHRVZShkKXtpZih2b2lkIDA9PT1kKXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcigidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkIik7cmV0dXJuIGR9KGQp''@;'; + put 'put ''fWZ1bmN0aW9uIHhlZShkKXtyZXR1cm4oeGVlPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3QuZ2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKGgpe3JldHVybiBoLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKGgpfSkoZCl9dmFyIENkZT1mdW5jdGlvbihkKXshZnVu''@;'; + put 'put ''Y3Rpb24gJFllKGQsZyl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGcmJm51bGwhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uIik7ZC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShnJiZnLnByb3RvdHlwZSx7''@;'; + put 'put ''Y29uc3RydWN0b3I6e3ZhbHVlOmQsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGcmJl9kZShkLGcpfShoLGQpO3ZhciBnPWZ1bmN0aW9uIHFZZShkKXt2YXIgZz1mdW5jdGlvbiBuVWUoKXtp''@;'; + put 'put ''ZigidW5kZWZpbmVkIj09dHlwZW9mIFJlZmxlY3R8fCFSZWZsZWN0LmNvbnN0cnVjdHx8UmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT10eXBlb2YgUHJveHkpcmV0dXJuITA7dHJ5e3JldHVybiBCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVm''@;'; + put 'put ''bGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSxmdW5jdGlvbigpe30pKSwhMH1jYXRjaChkKXtyZXR1cm4hMX19KCk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHksdj14ZWUoZCk7aWYoZyl7dmFyIEM9eGVlKHRoaXMpLmNvbnN0cnVjdG9yO3k9UmVmbGVjdC5jb25zdHJ1Y3Qodixhcmd1bWVudHMs''@;'; + put 'put ''Qyl9ZWxzZSB5PXYuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBlVWUodGhpcyx5KX19KGgpO2Z1bmN0aW9uIGgodix5LEMsSSl7cmV0dXJuIGZ1bmN0aW9uIEtZZShkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3Mg''@;'; + put 'put ''YXMgYSBmdW5jdGlvbiIpfSh0aGlzLGgpLGcuY2FsbCh0aGlzLHYseSxDLEksVFMpfXJldHVybiBmdW5jdGlvbiBYWWUoZCxnLGgpe3JldHVybiBnJiZfQ2UoZC5wcm90b3R5cGUsZyksaCYmX0NlKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiEx''@;'; + put 'put ''fSksZH0oaCl9KG1PKTtCMihDZGUsd0NlKSxCMihDZGUsd2RlKTtjb25zdCByVWU9Q2RlO2Z1bmN0aW9uIGtkZShkKXtyZXR1cm4oa2RlPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGcpe3JldHVybiB0eXBlb2Yg''@;'; + put 'put ''Z306ZnVuY3Rpb24oZyl7cmV0dXJuIGcmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmcuY29uc3RydWN0b3I9PT1TeW1ib2wmJmchPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBnfSkoZCl9ZnVuY3Rpb24gVGVlKGQsZyxoKXtyZXR1cm4oVGVlPWtDZSgpP1JlZmxlY3Qu''@;'; + put 'put ''Y29uc3RydWN0LmJpbmQoKTpmdW5jdGlvbih5LEMsSSl7dmFyIGo9W251bGxdO2oucHVzaC5hcHBseShqLEMpO3ZhciBfZT1uZXcoRnVuY3Rpb24uYmluZC5hcHBseSh5LGopKTtyZXR1cm4gSSYmSWVlKF9lLEkucHJvdG90eXBlKSxfZX0pLmFwcGx5KG51bGwsYXJndW1lbnRzKX1mdW5jdGlv''@;'; + put 'put ''biBDQ2UoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX1mdW5j''@;'; + put 'put ''dGlvbiBJZWUoZCxnKXtyZXR1cm4oSWVlPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHYseSl7cmV0dXJuIHYuX19wcm90b19fPXksdn0pKGQsZyl9ZnVuY3Rpb24gc1VlKGQsZyl7aWYoZyYmKCJvYmplY3QiPT09a2RlKGcpfHwi''@;'; + put 'put ''ZnVuY3Rpb24iPT10eXBlb2YgZykpcmV0dXJuIGc7aWYodm9pZCAwIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJEZXJpdmVkIGNvbnN0cnVjdG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0IG9yIHVuZGVmaW5lZCIpO3JldHVybiBmdW5jdGlvbiB1VWUoZCl7aWYodm9pZCAwPT09ZCl0aHJv''@;'; + put 'put ''dyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3JldHVybiBkfShkKX1mdW5jdGlvbiBrQ2UoKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIFJlZmxlY3R8fCFSZWZsZWN0LmNvbnN0cnVjdHx8UmVm''@;'; + put 'put ''bGVjdC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT10eXBlb2YgUHJveHkpcmV0dXJuITA7dHJ5e3JldHVybiBCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSxmdW5jdGlvbigpe30pKSwhMH1jYXRjaChkKXty''@;'; + put 'put ''ZXR1cm4hMX19ZnVuY3Rpb24gRGVlKGQpe3JldHVybihEZWU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24oaCl7cmV0dXJuIGguX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YoaCl9KShkKX12YXIgY1VlPWZ1bmN0aW9u''@;'; + put 'put ''KGQpeyFmdW5jdGlvbiBhVWUoZCxnKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZyYmbnVsbCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTtkLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGcmJmcucHJv''@;'; + put 'put ''dG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6ZCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZyYmSWVlKGQsZyl9KGgsZCk7dmFyIGc9ZnVuY3Rpb24gbFVlKGQpe3ZhciBnPWtDZSgpO3Jl''@;'; + put 'put ''dHVybiBmdW5jdGlvbigpe3ZhciB5LHY9RGVlKGQpO2lmKGcpe3ZhciBDPURlZSh0aGlzKS5jb25zdHJ1Y3Rvcjt5PVJlZmxlY3QuY29uc3RydWN0KHYsYXJndW1lbnRzLEMpfWVsc2UgeT12LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gc1VlKHRoaXMseSl9fShoKTtmdW5jdGlvbiBo''@;'; + put 'put ''KHYseSxDLEkpe3JldHVybiBmdW5jdGlvbiBpVWUoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0odGhpcyxoKSxnLmNhbGwodGhpcyx2LHksVFMsQyxJKX1yZXR1cm4gZnVuY3Rpb24gb1Vl''@;'; + put 'put ''KGQsZyxoKXtnJiZDQ2UoZC5wcm90b3R5cGUsZyksaCYmQ0NlKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGgsW3trZXk6ImNyZWF0ZVRhYmxlIix2YWx1ZTpmdW5jdGlvbigpe2Zvcih2YXIgeT1hcmd1bWVudHMubGVuZ3RoLEM9bmV3''@;'; + put 'put ''IEFycmF5KHkpLEk9MDtJPHk7SSsrKUNbSV09YXJndW1lbnRzW0ldO3JldHVybiBUZWUoclVlLEMpfX0se2tleToic2hvdWxkQmVSZW5kZXJlZCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoInNob3VsZFJlbmRlcklubGluZVN0YXJ0T3Zlcmxh''@;'; + put 'put ''eSIpfX0se2tleToicmVzZXRGaXhlZFBvc2l0aW9uIix2YWx1ZTpmdW5jdGlvbigpe2lmKCF0aGlzLm5lZWRGdWxsUmVuZGVyfHwhdGhpcy53b3Qud3RUYWJsZS5ob2xkZXIucGFyZW50Tm9kZSlyZXR1cm4hMTt2YXIgQz10aGlzLmRvbUJpbmRpbmdzLnJvb3RXaW5kb3csST10aGlzLmNsb25l''@;'; + put 'put ''Lnd0VGFibGUuaG9sZGVyLnBhcmVudE5vZGUsaj10aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygicHJldmVudE92ZXJmbG93IiksdWU9MDt0aGlzLnRyaW1taW5nQ29udGFpbmVyIT09Q3x8aiYmImhvcml6b250YWwiPT09aj8odWU9dGhpcy5nZXRTY3JvbGxQb3NpdGlvbigpLGpaKEkpKToo''@;'; + put 'put ''dWU9dGhpcy5nZXRPdmVybGF5T2Zmc2V0KCkqKHRoaXMuaXNSdGwoKT8tMToxKSxyZWUoSSwiIi5jb25jYXQodWUsInB4IiksIjBweCIpKTt2YXIgX2U9dGhpcy5hZGp1c3RIZWFkZXJCb3JkZXJzUG9zaXRpb24odWUpO3JldHVybiB0aGlzLmFkanVzdEVsZW1lbnRzU2l6ZSgpLF9lfX0se2tl''@;'; + put 'put ''eToic2V0U2Nyb2xsUG9zaXRpb24iLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPXRoaXMuZG9tQmluZGluZ3Mucm9vdFdpbmRvdyxJPSExO3JldHVybiB0aGlzLmlzUnRsKCkmJih5PS15KSx0aGlzLm1haW5UYWJsZVNjcm9sbGFibGVFbGVtZW50PT09QyYmQy5zY3JvbGxYIT09eT8oQy5zY3Jv''@;'; + put 'put ''bGxUbyh5LGNPKEMpKSxJPSEwKTp0aGlzLm1haW5UYWJsZVNjcm9sbGFibGVFbGVtZW50LnNjcm9sbExlZnQhPT15JiYodGhpcy5tYWluVGFibGVTY3JvbGxhYmxlRWxlbWVudC5zY3JvbGxMZWZ0PXksST0hMCksSX19LHtrZXk6Im9uU2Nyb2xsIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMud3RT''@;'; + put 'put ''ZXR0aW5ncy5nZXRTZXR0aW5nKCJvblNjcm9sbFZlcnRpY2FsbHkiKX19LHtrZXk6InN1bUNlbGxTaXplcyIsdmFsdWU6ZnVuY3Rpb24oeSxDKXtmb3IodmFyIEk9dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoImRlZmF1bHRDb2x1bW5XaWR0aCIpLGo9eSx1ZT0wO2o8QzspdWUrPXRoaXMu''@;'; + put 'put ''d290Lnd0VGFibGUuZ2V0U3RyZXRjaGVkQ29sdW1uV2lkdGgoail8fEksais9MTtyZXR1cm4gdWV9fSx7a2V5OiJhZGp1c3RFbGVtZW50c1NpemUiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0mJmFyZ3VtZW50c1swXTt0''@;'; + put 'put ''aGlzLnVwZGF0ZVRyaW1taW5nQ29udGFpbmVyKCksKHRoaXMubmVlZEZ1bGxSZW5kZXJ8fHkpJiYodGhpcy5hZGp1c3RSb290RWxlbWVudFNpemUoKSx0aGlzLmFkanVzdFJvb3RDaGlsZHJlblNpemUoKSl9fSx7a2V5OiJhZGp1c3RSb290RWxlbWVudFNpemUiLHZhbHVlOmZ1bmN0aW9uKCl7''@;'; + put 'put ''dmFyIHk9dGhpcy53b3Qud3RUYWJsZSxDPXRoaXMuZG9tQmluZGluZ3Msaj1DLnJvb3RXaW5kb3csdWU9QmMoQy5yb290RG9jdW1lbnQpLEJlPXRoaXMuY2xvbmUud3RUYWJsZS5ob2xkZXIucGFyZW50Tm9kZS5zdHlsZSxOZT10aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygicHJldmVudE92''@;'; + put 'put ''ZXJmbG93Iik7aWYodGhpcy50cmltbWluZ0NvbnRhaW5lciE9PWp8fCJ2ZXJ0aWNhbCI9PT1OZSl7dmFyIEtlPXRoaXMud290Lnd0Vmlld3BvcnQuZ2V0V29ya3NwYWNlSGVpZ2h0KCk7dGhpcy53b3Qud3RPdmVybGF5cy5oYXNTY3JvbGxiYXJCb3R0b20mJihLZS09dWUpLEtlPU1hdGgubWlu''@;'; + put 'put ''KEtlLHkud3RSb290RWxlbWVudC5zY3JvbGxIZWlnaHQpLEJlLmhlaWdodD0iIi5jb25jYXQoS2UsInB4Iil9ZWxzZSBCZS5oZWlnaHQ9IiI7dGhpcy5jbG9uZS53dFRhYmxlLmhvbGRlci5zdHlsZS5oZWlnaHQ9QmUuaGVpZ2h0O3ZhciBkdD1FMih0aGlzLmNsb25lLnd0VGFibGUuVEFCTEUp''@;'; + put 'put ''O0JlLndpZHRoPSIiLmNvbmNhdChkdCwicHgiKX19LHtrZXk6ImFkanVzdFJvb3RDaGlsZHJlblNpemUiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHksQz10aGlzLmNsb25lLnd0VGFibGUuaG9sZGVyLEk9dGhpcy53b3Quc2VsZWN0aW9ucyxqPXRoaXMuZmFjYWRlR2V0dGVyKCksdWU9TWF0aC5h''@;'; + put 'put ''YnMobnVsbCE9PSh5PW51bGw9PUk/dm9pZCAwOkkuZ2V0Q2VsbCgpLmdldEJvcmRlcihqKS5jb3JuZXJDZW50ZXJQb2ludE9mZnNldCkmJnZvaWQgMCE9PXk/eTowKTt0aGlzLmNsb25lLnd0VGFibGUuaGlkZXIuc3R5bGUuaGVpZ2h0PXRoaXMuaGlkZXIuc3R5bGUuaGVpZ2h0LEMuc3R5bGUu''@;'; + put 'put ''aGVpZ2h0PUMucGFyZW50Tm9kZS5zdHlsZS5oZWlnaHQsQy5zdHlsZS53aWR0aD0iIi5jb25jYXQocGFyc2VJbnQoQy5wYXJlbnROb2RlLnN0eWxlLndpZHRoLDEwKSt1ZSwicHgiKX19LHtrZXk6ImFwcGx5VG9ET00iLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcy53dFNldHRpbmdzLmdl''@;'; + put 'put ''dFNldHRpbmcoInRvdGFsQ29sdW1ucyIpLEM9dGhpcy5pc1J0bCgpPyJyaWdodCI6ImxlZnQiO2lmKCJudW1iZXIiPT10eXBlb2YgdGhpcy53b3Qud3RWaWV3cG9ydC5jb2x1bW5zUmVuZGVyQ2FsY3VsYXRvci5zdGFydFBvc2l0aW9uKXRoaXMuc3ByZWFkZXIuc3R5bGVbQ109IiIuY29uY2F0''@;'; + put 'put ''KHRoaXMud290Lnd0Vmlld3BvcnQuY29sdW1uc1JlbmRlckNhbGN1bGF0b3Iuc3RhcnRQb3NpdGlvbiwicHgiKTtlbHNle2lmKDAhPT15KXRocm93IG5ldyBFcnJvcigiSW5jb3JyZWN0IHZhbHVlIG9mIHRoZSBjb2x1bW5zUmVuZGVyQ2FsY3VsYXRvciIpO3RoaXMuc3ByZWFkZXIuc3R5bGVb''@;'; + put 'put ''Q109IjAifXRoaXMuaXNSdGwoKT90aGlzLnNwcmVhZGVyLnN0eWxlLmxlZnQ9IiI6dGhpcy5zcHJlYWRlci5zdHlsZS5yaWdodD0iIix0aGlzLm5lZWRGdWxsUmVuZGVyJiZ0aGlzLnN5bmNPdmVybGF5T2Zmc2V0KCl9fSx7a2V5OiJzeW5jT3ZlcmxheU9mZnNldCIsdmFsdWU6ZnVuY3Rpb24o''@;'; + put 'put ''KXt0aGlzLmNsb25lLnd0VGFibGUuc3ByZWFkZXIuc3R5bGUudG9wPSJudW1iZXIiPT10eXBlb2YgdGhpcy53b3Qud3RWaWV3cG9ydC5yb3dzUmVuZGVyQ2FsY3VsYXRvci5zdGFydFBvc2l0aW9uPyIiLmNvbmNhdCh0aGlzLndvdC53dFZpZXdwb3J0LnJvd3NSZW5kZXJDYWxjdWxhdG9yLnN0''@;'; + put 'put ''YXJ0UG9zaXRpb24sInB4Iik6IiJ9fSx7a2V5OiJzY3JvbGxUbyIsdmFsdWU6ZnVuY3Rpb24oeSxDKXt2YXIgST10aGlzLmdldFRhYmxlUGFyZW50T2Zmc2V0KCksdWU9KHRoaXMud290LmNsb25lU291cmNlP3RoaXMud290LmNsb25lU291cmNlOnRoaXMud290KS53dFRhYmxlLmhvbGRlcixf''@;'; + put 'put ''ZT0wO3JldHVybiBDJiZ0aGlzLndvdC53dFRhYmxlLmdldENvbHVtbldpZHRoKHkpPnRoaXMud290Lnd0Vmlld3BvcnQuZ2V0Vmlld3BvcnRXaWR0aCgpJiYoQz0hMSksQyYmdWUub2Zmc2V0V2lkdGghPT11ZS5jbGllbnRXaWR0aCYmKF9lPUJjKHRoaXMuZG9tQmluZGluZ3Mucm9vdERvY3Vt''@;'; + put 'put ''ZW50KSksQz8oSSs9dGhpcy5zdW1DZWxsU2l6ZXMoMCx5KzEpLEktPXRoaXMud290Lnd0Vmlld3BvcnQuZ2V0Vmlld3BvcnRXaWR0aCgpKTpJKz10aGlzLnN1bUNlbGxTaXplcyh0aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygiZml4ZWRDb2x1bW5zU3RhcnQiKSx5KSx0aGlzLnNldFNjcm9s''@;'; + put 'put ''bFBvc2l0aW9uKEkrPV9lKX19LHtrZXk6ImdldFRhYmxlUGFyZW50T2Zmc2V0Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciBDPTA7cmV0dXJuIXRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJwcmV2ZW50T3ZlcmZsb3ciKSYmdGhpcy50cmltbWluZ0NvbnRhaW5lcj09PXRoaXMuZG9tQmluZGlu''@;'; + put 'put ''Z3Mucm9vdFdpbmRvdyYmKEM9dGhpcy53b3Qud3RUYWJsZS5ob2xkZXJPZmZzZXQubGVmdCksQ319LHtrZXk6ImdldFNjcm9sbFBvc2l0aW9uIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBNYXRoLmFicyh0ZWUodGhpcy5tYWluVGFibGVTY3JvbGxhYmxlRWxlbWVudCx0aGlzLmRvbUJpbmRp''@;'; + put 'put ''bmdzLnJvb3RXaW5kb3cpKX19LHtrZXk6ImdldE92ZXJsYXlPZmZzZXQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcy5kb21CaW5kaW5ncy5yb290V2luZG93LEM9dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoInByZXZlbnRPdmVyZmxvdyIpLEk9MDtyZXR1cm4gdGhpcy50cmltbWlu''@;'; + put 'put ''Z0NvbnRhaW5lciE9PXl8fEMmJiJob3Jpem9udGFsIj09PUN8fChJPXRoaXMuaXNSdGwoKT9NYXRoLmFicyhNYXRoLm1pbih0aGlzLmdldFRhYmxlUGFyZW50T2Zmc2V0KCktdGhpcy5nZXRTY3JvbGxQb3NpdGlvbigpLDApKTpNYXRoLm1heCh0aGlzLmdldFNjcm9sbFBvc2l0aW9uKCktdGhp''@;'; + put 'put ''cy5nZXRUYWJsZVBhcmVudE9mZnNldCgpLDApKT50aGlzLndvdC53dFRhYmxlLmdldFRvdGFsV2lkdGgoKS10aGlzLmNsb25lLnd0VGFibGUuZ2V0VG90YWxXaWR0aCgpJiYoST0wKSxJfX0se2tleToiYWRqdXN0SGVhZGVyQm9yZGVyc1Bvc2l0aW9uIix2YWx1ZTpmdW5jdGlvbih5KXt2YXIg''@;'; + put 'put ''Qz10aGlzLndvdC53dFRhYmxlLmhvbGRlci5wYXJlbnROb2RlLEk9dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoInJvd0hlYWRlcnMiKSxqPXRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJmaXhlZENvbHVtbnNTdGFydCIpO3RoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJ0b3RhbFJv''@;'; + put 'put ''d3MiKT9wbChDLCJlbXB0eVJvd3MiKTpPMChDLCJlbXB0eVJvd3MiKTt2YXIgX2U9ITE7aWYoaiYmIUkubGVuZ3RoKU8wKEMsImlubmVyQm9yZGVyTGVmdCBpbm5lckJvcmRlcklubGluZVN0YXJ0Iik7ZWxzZSBpZighaiYmSS5sZW5ndGgpe3ZhciBCZT10bChDLCJpbm5lckJvcmRlcklubGlu''@;'; + put 'put ''ZVN0YXJ0Iik7eT8oTzAoQywiaW5uZXJCb3JkZXJMZWZ0IGlubmVyQm9yZGVySW5saW5lU3RhcnQiKSxfZT0hQmUpOihwbChDLCJpbm5lckJvcmRlckxlZnQgaW5uZXJCb3JkZXJJbmxpbmVTdGFydCIpLF9lPUJlKX1yZXR1cm4gX2V9fV0pLGh9KFhaKTtmdW5jdGlvbiBTZGUoZCl7cmV0dXJu''@;'; + put 'put ''KFNkZT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihnKXtyZXR1cm4gdHlwZW9mIGd9OmZ1bmN0aW9uKGcpe3JldHVybiBnJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZnLmNvbnN0cnVjdG9yPT09U3ltYm9s''@;'; + put 'put ''JiZnIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgZ30pKGQpfWZ1bmN0aW9uIFNDZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYo''@;'; + put 'put ''di53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fWZ1bmN0aW9uIE1kZShkLGcpe3JldHVybihNZGU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24odix5KXtyZXR1cm4gdi5fX3Byb3RvX189eSx2''@;'; + put 'put ''fSkoZCxnKX1mdW5jdGlvbiBnVWUoZCxnKXtpZihnJiYoIm9iamVjdCI9PT1TZGUoZyl8fCJmdW5jdGlvbiI9PXR5cGVvZiBnKSlyZXR1cm4gZztpZih2b2lkIDAhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIkRlcml2ZWQgY29uc3RydWN0b3JzIG1heSBvbmx5IHJldHVybiBvYmplY3Qgb3Ig''@;'; + put 'put ''dW5kZWZpbmVkIik7cmV0dXJuIGZ1bmN0aW9uIG1VZShkKXtpZih2b2lkIDA9PT1kKXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcigidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkIik7cmV0dXJuIGR9KGQpfWZ1bmN0aW9uIExlZShkKXty''@;'; + put 'put ''ZXR1cm4oTGVlPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3QuZ2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKGgpe3JldHVybiBoLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKGgpfSkoZCl9dmFyIEVkZT1mdW5jdGlvbihkKXshZnVuY3Rpb24gZFVlKGQsZyl7aWYo''@;'; + put 'put ''ImZ1bmN0aW9uIiE9dHlwZW9mIGcmJm51bGwhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uIik7ZC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShnJiZnLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVl''@;'; + put 'put ''OmQsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGcmJk1kZShkLGcpfShoLGQpO3ZhciBnPWZ1bmN0aW9uIHBVZShkKXt2YXIgZz1mdW5jdGlvbiB2VWUoKXtpZigidW5kZWZpbmVkIj09dHlw''@;'; + put 'put ''ZW9mIFJlZmxlY3R8fCFSZWZsZWN0LmNvbnN0cnVjdHx8UmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT10eXBlb2YgUHJveHkpcmV0dXJuITA7dHJ5e3JldHVybiBCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9v''@;'; + put 'put ''bGVhbixbXSxmdW5jdGlvbigpe30pKSwhMH1jYXRjaChkKXtyZXR1cm4hMX19KCk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHksdj1MZWUoZCk7aWYoZyl7dmFyIEM9TGVlKHRoaXMpLmNvbnN0cnVjdG9yO3k9UmVmbGVjdC5jb25zdHJ1Y3Qodixhcmd1bWVudHMsQyl9ZWxzZSB5PXYuYXBwbHko''@;'; + put 'put ''dGhpcyxhcmd1bWVudHMpO3JldHVybiBnVWUodGhpcyx5KX19KGgpO2Z1bmN0aW9uIGgodix5LEMsSSl7cmV0dXJuIGZ1bmN0aW9uIGhVZShkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSh0''@;'; + put 'put ''aGlzLGgpLGcuY2FsbCh0aGlzLHYseSxDLEksSVMpfXJldHVybiBmdW5jdGlvbiBmVWUoZCxnLGgpe3JldHVybiBnJiZTQ2UoZC5wcm90b3R5cGUsZyksaCYmU0NlKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZH0oaCl9KG1PKTtCMihF''@;'; + put 'put ''ZGUsWF9lKSxCMihFZGUsd2RlKTtjb25zdCBBVWU9RWRlO2Z1bmN0aW9uIHhkZShkKXtyZXR1cm4oeGRlPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGcpe3JldHVybiB0eXBlb2YgZ306ZnVuY3Rpb24oZyl7cmV0''@;'; + put 'put ''dXJuIGcmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmcuY29uc3RydWN0b3I9PT1TeW1ib2wmJmchPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBnfSkoZCl9ZnVuY3Rpb24gT2VlKGQsZyxoKXtyZXR1cm4oT2VlPUVDZSgpP1JlZmxlY3QuY29uc3RydWN0LmJpbmQoKTpm''@;'; + put 'put ''dW5jdGlvbih5LEMsSSl7dmFyIGo9W251bGxdO2oucHVzaC5hcHBseShqLEMpO3ZhciBfZT1uZXcoRnVuY3Rpb24uYmluZC5hcHBseSh5LGopKTtyZXR1cm4gSSYmUmVlKF9lLEkucHJvdG90eXBlKSxfZX0pLmFwcGx5KG51bGwsYXJndW1lbnRzKX1mdW5jdGlvbiBNQ2UoZCxnKXtmb3IodmFy''@;'; + put 'put ''IGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX1mdW5jdGlvbiBSZWUoZCxnKXtyZXR1''@;'; + put 'put ''cm4oUmVlPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHYseSl7cmV0dXJuIHYuX19wcm90b19fPXksdn0pKGQsZyl9ZnVuY3Rpb24gQ1VlKGQsZyl7aWYoZyYmKCJvYmplY3QiPT09eGRlKGcpfHwiZnVuY3Rpb24iPT10eXBlb2Yg''@;'; + put 'put ''ZykpcmV0dXJuIGc7aWYodm9pZCAwIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJEZXJpdmVkIGNvbnN0cnVjdG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0IG9yIHVuZGVmaW5lZCIpO3JldHVybiBUZGUoZCl9ZnVuY3Rpb24gVGRlKGQpe2lmKHZvaWQgMD09PWQpdGhyb3cgbmV3IFJlZmVy''@;'; + put 'put ''ZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4gZH1mdW5jdGlvbiBFQ2UoKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIFJlZmxlY3R8fCFSZWZsZWN0LmNvbnN0cnVjdHx8UmVmbGVjdC5jb25zdHJ1Y3Qu''@;'; + put 'put ''c2hhbSlyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT10eXBlb2YgUHJveHkpcmV0dXJuITA7dHJ5e3JldHVybiBCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSxmdW5jdGlvbigpe30pKSwhMH1jYXRjaChkKXtyZXR1cm4hMX19ZnVuY3Rp''@;'; + put 'put ''b24gQmVlKGQpe3JldHVybihCZWU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24oaCl7cmV0dXJuIGguX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YoaCl9KShkKX1mdW5jdGlvbiB4Q2UoZCxnLGgpe3JldHVybiBnIGlu''@;'; + put 'put ''IGQ/T2JqZWN0LmRlZmluZVByb3BlcnR5KGQsZyx7dmFsdWU6aCxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmRbZ109aCxkfXZhciBrVWU9ZnVuY3Rpb24oZCl7IWZ1bmN0aW9uIGJVZShkLGcpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBnJiZudWxsIT09Zyl0''@;'; + put 'put ''aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiIpO2QucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZyYmZy5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTpkLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19''@;'; + put 'put ''KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxnJiZSZWUoZCxnKX0oaCxkKTt2YXIgZz1mdW5jdGlvbiBfVWUoZCl7dmFyIGc9RUNlKCk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHksdj1CZWUoZCk7aWYoZyl7dmFyIEM9QmVlKHRoaXMpLmNvbnN0''@;'; + put 'put ''cnVjdG9yO3k9UmVmbGVjdC5jb25zdHJ1Y3Qodixhcmd1bWVudHMsQyl9ZWxzZSB5PXYuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBDVWUodGhpcyx5KX19KGgpO2Z1bmN0aW9uIGgodix5LEMsSSxqLHVlKXt2YXIgX2U7cmV0dXJuIGZ1bmN0aW9uIHlVZShkLGcpe2lmKCEoZCBpbnN0''@;'; + put 'put ''YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSh0aGlzLGgpLHhDZShUZGUoX2U9Zy5jYWxsKHRoaXMsdix5LElTLEMsSSkpLCJ0b3BPdmVybGF5Iix2b2lkIDApLHhDZShUZGUoX2UpLCJpbmxpbmVTdGFydE92ZXJsYXki''@;'; + put 'put ''LHZvaWQgMCksX2UudG9wT3ZlcmxheT1qLF9lLmlubGluZVN0YXJ0T3ZlcmxheT11ZSxfZX1yZXR1cm4gZnVuY3Rpb24gd1VlKGQsZyxoKXtnJiZNQ2UoZC5wcm90b3R5cGUsZyksaCYmTUNlKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9''@;'; + put 'put ''KGgsW3trZXk6ImNyZWF0ZVRhYmxlIix2YWx1ZTpmdW5jdGlvbigpe2Zvcih2YXIgeT1hcmd1bWVudHMubGVuZ3RoLEM9bmV3IEFycmF5KHkpLEk9MDtJPHk7SSsrKUNbSV09YXJndW1lbnRzW0ldO3JldHVybiBPZWUoQVVlLEMpfX0se2tleToic2hvdWxkQmVSZW5kZXJlZCIsdmFsdWU6ZnVu''@;'; + put 'put ''Y3Rpb24oKXtyZXR1cm4gdGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoInNob3VsZFJlbmRlclRvcE92ZXJsYXkiKSYmdGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoInNob3VsZFJlbmRlcklubGluZVN0YXJ0T3ZlcmxheSIpfX0se2tleToicmVzZXRGaXhlZFBvc2l0aW9uIix2YWx1ZTpm''@;'; + put 'put ''dW5jdGlvbigpe2lmKHRoaXMudXBkYXRlVHJpbW1pbmdDb250YWluZXIoKSwhdGhpcy53b3Qud3RUYWJsZS5ob2xkZXIucGFyZW50Tm9kZSlyZXR1cm4hMTt2YXIgeT10aGlzLmNsb25lLnd0VGFibGUuaG9sZGVyLnBhcmVudE5vZGU7aWYodGhpcy50cmltbWluZ0NvbnRhaW5lcj09PXRoaXMu''@;'; + put 'put ''ZG9tQmluZGluZ3Mucm9vdFdpbmRvdyl7dmFyIEM9dGhpcy5pbmxpbmVTdGFydE92ZXJsYXkuZ2V0T3ZlcmxheU9mZnNldCgpKih0aGlzLmlzUnRsKCk/LTE6MSksST10aGlzLnRvcE92ZXJsYXkuZ2V0T3ZlcmxheU9mZnNldCgpO3JlZSh5LCIiLmNvbmNhdChDLCJweCIpLCIiLmNvbmNhdChJ''@;'; + put 'put ''LCJweCIpKX1lbHNlIGpaKHkpO3ZhciBqPUQxKHRoaXMuY2xvbmUud3RUYWJsZS5UQUJMRSksdWU9RTIodGhpcy5jbG9uZS53dFRhYmxlLlRBQkxFKTtyZXR1cm4gdGhpcy53b3Qud3RUYWJsZS5oYXNEZWZpbmVkU2l6ZSgpfHwoaj0wKSx5LnN0eWxlLmhlaWdodD0iIi5jb25jYXQoaiwicHgi''@;'; + put 'put ''KSx5LnN0eWxlLndpZHRoPSIiLmNvbmNhdCh1ZSwicHgiKSwhMX19XSksaH0oWFopO2Z1bmN0aW9uIElkZShkKXtyZXR1cm4oSWRlPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGcpe3JldHVybiB0eXBlb2YgZ306''@;'; + put 'put ''ZnVuY3Rpb24oZyl7cmV0dXJuIGcmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmcuY29uc3RydWN0b3I9PT1TeW1ib2wmJmchPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBnfSkoZCl9ZnVuY3Rpb24gVENlKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3Zh''@;'; + put 'put ''ciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19ZnVuY3Rpb24gRGRlKGQsZyl7cmV0dXJuKERkZT1PYmplY3Quc2V0UHJvdG90''@;'; + put 'put ''eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbih2LHkpe3JldHVybiB2Ll9fcHJvdG9fXz15LHZ9KShkLGcpfWZ1bmN0aW9uIFRVZShkLGcpe2lmKGcmJigib2JqZWN0Ij09PUlkZShnKXx8ImZ1bmN0aW9uIj09dHlwZW9mIGcpKXJldHVybiBnO2lmKHZvaWQgMCE9''@;'; + put 'put ''PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWQiKTtyZXR1cm4gZnVuY3Rpb24gSVVlKGQpe2lmKHZvaWQgMD09PWQpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBiZWVuIGlu''@;'; + put 'put ''aXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4gZH0oZCl9ZnVuY3Rpb24gUGVlKGQpe3JldHVybihQZWU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24oaCl7cmV0dXJuIGguX19wcm90b19ffHxP''@;'; + put 'put ''YmplY3QuZ2V0UHJvdG90eXBlT2YoaCl9KShkKX12YXIgTGRlPWZ1bmN0aW9uKGQpeyFmdW5jdGlvbiBFVWUoZCxnKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZyYmbnVsbCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEg''@;'; + put 'put ''ZnVuY3Rpb24iKTtkLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGcmJmcucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6ZCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZyYmRGRlKGQs''@;'; + put 'put ''Zyl9KGgsZCk7dmFyIGc9ZnVuY3Rpb24geFVlKGQpe3ZhciBnPWZ1bmN0aW9uIERVZSgpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0fHxSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBQcm94eSly''@;'; + put 'put ''ZXR1cm4hMDt0cnl7cmV0dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLGZ1bmN0aW9uKCl7fSkpLCEwfWNhdGNoKGQpe3JldHVybiExfX0oKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgeSx2PVBlZShkKTtpZihnKXt2YXIgQz1Q''@;'; + put 'put ''ZWUodGhpcykuY29uc3RydWN0b3I7eT1SZWZsZWN0LmNvbnN0cnVjdCh2LGFyZ3VtZW50cyxDKX1lbHNlIHk9di5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIFRVZSh0aGlzLHkpfX0oaCk7ZnVuY3Rpb24gaCh2LHksQyxJKXtyZXR1cm4gZnVuY3Rpb24gTVVlKGQsZyl7aWYoIShkIGlu''@;'; + put 'put ''c3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsaCksZy5jYWxsKHRoaXMsdix5LEMsSSx4dyl9cmV0dXJuIGZ1bmN0aW9uIFNVZShkLGcsaCl7cmV0dXJuIGcmJlRDZShkLnByb3RvdHlwZSxnKSxoJiZUQ2Uo''@;'; + put 'put ''ZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxkfShoKX0obU8pO0IyKExkZSxwQ2UpLEIyKExkZSx3ZGUpO2NvbnN0IExVZT1MZGU7ZnVuY3Rpb24gT2RlKGQpe3JldHVybihPZGU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJv''@;'; + put 'put ''bCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZyl7cmV0dXJuIHR5cGVvZiBnfTpmdW5jdGlvbihnKXtyZXR1cm4gZyYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZy5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZyE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9m''@;'; + put 'put ''IGd9KShkKX1mdW5jdGlvbiBGZWUoZCxnLGgpe3JldHVybihGZWU9RENlKCk/UmVmbGVjdC5jb25zdHJ1Y3QuYmluZCgpOmZ1bmN0aW9uKHksQyxJKXt2YXIgaj1bbnVsbF07ai5wdXNoLmFwcGx5KGosQyk7dmFyIF9lPW5ldyhGdW5jdGlvbi5iaW5kLmFwcGx5KHksaikpO3JldHVybiBJJiZI''@;'; + put 'put ''ZWUoX2UsSS5wcm90b3R5cGUpLF9lfSkuYXBwbHkobnVsbCxhcmd1bWVudHMpfWZ1bmN0aW9uIElDZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYo''@;'; + put 'put ''di53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fWZ1bmN0aW9uIEhlZShkLGcpe3JldHVybihIZWU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24odix5KXtyZXR1cm4gdi5fX3Byb3RvX189eSx2''@;'; + put 'put ''fSkoZCxnKX1mdW5jdGlvbiBGVWUoZCxnKXtpZihnJiYoIm9iamVjdCI9PT1PZGUoZyl8fCJmdW5jdGlvbiI9PXR5cGVvZiBnKSlyZXR1cm4gZztpZih2b2lkIDAhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIkRlcml2ZWQgY29uc3RydWN0b3JzIG1heSBvbmx5IHJldHVybiBvYmplY3Qgb3Ig''@;'; + put 'put ''dW5kZWZpbmVkIik7cmV0dXJuIGZ1bmN0aW9uIEhVZShkKXtpZih2b2lkIDA9PT1kKXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcigidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkIik7cmV0dXJuIGR9KGQpfWZ1bmN0aW9uIERDZSgpe2lm''@;'; + put 'put ''KCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0fHxSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBQcm94eSlyZXR1cm4hMDt0cnl7cmV0dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZs''@;'; + put 'put ''ZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLGZ1bmN0aW9uKCl7fSkpLCEwfWNhdGNoKGQpe3JldHVybiExfX1mdW5jdGlvbiBOZWUoZCl7cmV0dXJuKE5lZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihoKXtyZXR1cm4gaC5fX3By''@;'; + put 'put ''b3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihoKX0pKGQpfXZhciBOVWU9ZnVuY3Rpb24oZCl7IWZ1bmN0aW9uIEJVZShkLGcpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBnJiZudWxsIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51''@;'; + put 'put ''bGwgb3IgYSBmdW5jdGlvbiIpO2QucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZyYmZy5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTpkLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxn''@;'; + put 'put ''JiZIZWUoZCxnKX0oaCxkKTt2YXIgZz1mdW5jdGlvbiBQVWUoZCl7dmFyIGc9RENlKCk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHksdj1OZWUoZCk7aWYoZyl7dmFyIEM9TmVlKHRoaXMpLmNvbnN0cnVjdG9yO3k9UmVmbGVjdC5jb25zdHJ1Y3Qodixhcmd1bWVudHMsQyl9ZWxzZSB5PXYuYXBw''@;'; + put 'put ''bHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBGVWUodGhpcyx5KX19KGgpO2Z1bmN0aW9uIGgodix5LEMsSSxqLHVlKXt2YXIgX2U7cmV0dXJuIGZ1bmN0aW9uIE9VZShkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMg''@;'; + put 'put ''YSBmdW5jdGlvbiIpfSh0aGlzLGgpLChfZT1nLmNhbGwodGhpcyx2LHkseHcsQyxJKSkuYm90dG9tT3ZlcmxheT1qLF9lLmlubGluZVN0YXJ0T3ZlcmxheT11ZSxfZX1yZXR1cm4gZnVuY3Rpb24gUlVlKGQsZyxoKXtnJiZJQ2UoZC5wcm90b3R5cGUsZyksaCYmSUNlKGQsaCksT2JqZWN0LmRl''@;'; + put 'put ''ZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGgsW3trZXk6ImNyZWF0ZVRhYmxlIix2YWx1ZTpmdW5jdGlvbigpe2Zvcih2YXIgeT1hcmd1bWVudHMubGVuZ3RoLEM9bmV3IEFycmF5KHkpLEk9MDtJPHk7SSsrKUNbSV09YXJndW1lbnRzW0ldO3JldHVybiBGZWUo''@;'; + put 'put ''TFVlLEMpfX0se2tleToic2hvdWxkQmVSZW5kZXJlZCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoInNob3VsZFJlbmRlckJvdHRvbU92ZXJsYXkiKSYmdGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoInNob3VsZFJlbmRlcklubGluZVN0YXJ0''@;'; + put 'put ''T3ZlcmxheSIpfX0se2tleToicmVzZXRGaXhlZFBvc2l0aW9uIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXMud290O2lmKHRoaXMudXBkYXRlVHJpbW1pbmdDb250YWluZXIoKSwheS53dFRhYmxlLmhvbGRlci5wYXJlbnROb2RlKXJldHVybiExO3ZhciBDPXRoaXMuY2xvbmUud3RUYWJs''@;'; + put 'put ''ZS5ob2xkZXIucGFyZW50Tm9kZTtpZihDLnN0eWxlLnRvcD0iIix0aGlzLnRyaW1taW5nQ29udGFpbmVyPT09dGhpcy5kb21CaW5kaW5ncy5yb290V2luZG93KXt2YXIgST10aGlzLmlubGluZVN0YXJ0T3ZlcmxheS5nZXRPdmVybGF5T2Zmc2V0KCksaj10aGlzLmJvdHRvbU92ZXJsYXkuZ2V0''@;'; + put 'put ''T3ZlcmxheU9mZnNldCgpO0Muc3R5bGVbdGhpcy5pc1J0bCgpPyJyaWdodCI6ImxlZnQiXT0iIi5jb25jYXQoSSwicHgiKSxDLnN0eWxlLmJvdHRvbT0iIi5jb25jYXQoaiwicHgiKX1lbHNlIGpaKEMpLHRoaXMucmVwb3NpdGlvbk92ZXJsYXkoKTt2YXIgdWU9RDEodGhpcy5jbG9uZS53dFRh''@;'; + put 'put ''YmxlLlRBQkxFKSxfZT1FMih0aGlzLmNsb25lLnd0VGFibGUuVEFCTEUpO3JldHVybiB0aGlzLndvdC53dFRhYmxlLmhhc0RlZmluZWRTaXplKCl8fCh1ZT0wKSxDLnN0eWxlLmhlaWdodD0iIi5jb25jYXQodWUsInB4IiksQy5zdHlsZS53aWR0aD0iIi5jb25jYXQoX2UsInB4IiksITF9fSx7''@;'; + put 'put ''a2V5OiJyZXBvc2l0aW9uT3ZlcmxheSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzLndvdCxDPXkud3RUYWJsZSxJPXkud3RWaWV3cG9ydCxqPXRoaXMuZG9tQmluZGluZ3Mucm9vdERvY3VtZW50LHVlPXRoaXMuY2xvbmUud3RUYWJsZS5ob2xkZXIucGFyZW50Tm9kZSxfZT0wO0kuaGFz''@;'; + put 'put ''VmVydGljYWxTY3JvbGwoKXx8KF9lKz1JLmdldFdvcmtzcGFjZUhlaWdodCgpLUMuZ2V0VG90YWxIZWlnaHQoKSksSS5oYXNWZXJ0aWNhbFNjcm9sbCgpJiZJLmhhc0hvcml6b250YWxTY3JvbGwoKSYmKF9lKz1CYyhqKSksdWUuc3R5bGUuYm90dG9tPSIiLmNvbmNhdChfZSwicHgiKX19XSks''@;'; + put 'put ''aH0oWFopO2Z1bmN0aW9uIFR3KGQsZyxoKXtyZXR1cm4oVHc9VlVlKCk/UmVmbGVjdC5jb25zdHJ1Y3QuYmluZCgpOmZ1bmN0aW9uKHksQyxJKXt2YXIgaj1bbnVsbF07ai5wdXNoLmFwcGx5KGosQyk7dmFyIF9lPW5ldyhGdW5jdGlvbi5iaW5kLmFwcGx5KHksaikpO3JldHVybiBJJiZSZGUo''@;'; + put 'put ''X2UsSS5wcm90b3R5cGUpLF9lfSkuYXBwbHkobnVsbCxhcmd1bWVudHMpfWZ1bmN0aW9uIFZVZSgpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0fHxSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBQ''@;'; + put 'put ''cm94eSlyZXR1cm4hMDt0cnl7cmV0dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLGZ1bmN0aW9uKCl7fSkpLCEwfWNhdGNoKGQpe3JldHVybiExfX1mdW5jdGlvbiBSZGUoZCxnKXtyZXR1cm4oUmRlPU9iamVjdC5zZXRQcm90''@;'; + put 'put ''b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHYseSl7cmV0dXJuIHYuX19wcm90b19fPXksdn0pKGQsZyl9ZnVuY3Rpb24gTENlKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8''@;'; + put 'put ''ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19ZnVuY3Rpb24gSXcoZCxnLGgpe3JldHVybiBnIGluIGQ/T2JqZWN0LmRlZmluZVByb3BlcnR5KGQsZyx7dmFsdWU6aCxlbnVtZXJhYmxlOiEw''@;'; + put 'put ''LGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmRbZ109aCxkfXZhciB6VWU9ZnVuY3Rpb24oKXtmdW5jdGlvbiBkKGcsaCx2LHksQyxJKXsoZnVuY3Rpb24galVlKGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBh''@;'; + put 'put ''cyBhIGZ1bmN0aW9uIil9KSh0aGlzLGQpLEl3KHRoaXMsIndvdCIsbnVsbCksSXcodGhpcywidG9wT3ZlcmxheSIsbnVsbCksSXcodGhpcywiYm90dG9tT3ZlcmxheSIsbnVsbCksSXcodGhpcywiaW5saW5lU3RhcnRPdmVybGF5IixudWxsKSxJdyh0aGlzLCJ0b3BJbmxpbmVTdGFydENvcm5l''@;'; + put 'put ''ck92ZXJsYXkiLG51bGwpLEl3KHRoaXMsImJvdHRvbUlubGluZVN0YXJ0Q29ybmVyT3ZlcmxheSIsbnVsbCksSXcodGhpcywiYnJvd3NlckxpbmVIZWlnaHQiLHZvaWQgMCksSXcodGhpcywid3RTZXR0aW5ncyIsbnVsbCksdGhpcy53b3Q9Zyx0aGlzLnd0U2V0dGluZ3M9eSx0aGlzLmRvbUJp''@;'; + put 'put ''bmRpbmdzPXYsdGhpcy5mYWNhZGVHZXR0ZXI9aCx0aGlzLnd0VGFibGU9STt2YXIgaj10aGlzLmRvbUJpbmRpbmdzLHVlPWoucm9vdERvY3VtZW50LF9lPWoucm9vdFdpbmRvdzt0aGlzLmluc3RhbmNlPXRoaXMud290LHRoaXMuZXZlbnRNYW5hZ2VyPUMsdGhpcy5zY3JvbGxiYXJTaXplPUJj''@;'; + put 'put ''KHVlKTt2YXIgQmU9ImhpZGRlbiI9PT1fZS5nZXRDb21wdXRlZFN0eWxlKEkud3RSb290RWxlbWVudC5wYXJlbnROb2RlKS5nZXRQcm9wZXJ0eVZhbHVlKCJvdmVyZmxvdyIpO3RoaXMuc2Nyb2xsYWJsZUVsZW1lbnQ9QmU/SS5ob2xkZXI6SFooSS5UQUJMRSksdGhpcy5pbml0T3ZlcmxheXMo''@;'; + put 'put ''KSx0aGlzLmhhc1Njcm9sbGJhckJvdHRvbT0hMSx0aGlzLmhhc1Njcm9sbGJhclJpZ2h0PSExLHRoaXMuZGVzdHJveWVkPSExLHRoaXMua2V5UHJlc3NlZD0hMSx0aGlzLnNwcmVhZGVyTGFzdFNpemU9e3dpZHRoOm51bGwsaGVpZ2h0Om51bGx9LHRoaXMudmVydGljYWxTY3JvbGxpbmc9ITEs''@;'; + put 'put ''dGhpcy5ob3Jpem9udGFsU2Nyb2xsaW5nPSExLHRoaXMuaW5pdEJyb3dzZXJMaW5lSGVpZ2h0KCksdGhpcy5yZWdpc3Rlckxpc3RlbmVycygpLHRoaXMubGFzdFNjcm9sbFg9X2Uuc2Nyb2xsWCx0aGlzLmxhc3RTY3JvbGxZPV9lLnNjcm9sbFl9cmV0dXJuIGZ1bmN0aW9uIFpVZShkLGcsaCl7''@;'; + put 'put ''ZyYmTENlKGQucHJvdG90eXBlLGcpLGgmJkxDZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShkLFt7a2V5OiJpbml0QnJvd3NlckxpbmVIZWlnaHQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9dGhpcy5kb21CaW5kaW5ncyxDPWgucm9v''@;'; + put 'put ''dFdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGgucm9vdERvY3VtZW50LmJvZHkpLEk9cGFyc2VJbnQoQy5saW5lSGVpZ2h0LDEwKSxqPTEuMipwYXJzZUludChDLmZvbnRTaXplLDEwKTt0aGlzLmJyb3dzZXJMaW5lSGVpZ2h0PUl8fGp9fSx7a2V5OiJpbml0T3ZlcmxheXMiLHZhbHVlOmZ1bmN0''@;'; + put 'put ''aW9uKCl7dmFyIGg9W3RoaXMud290LHRoaXMuZmFjYWRlR2V0dGVyLHRoaXMud3RTZXR0aW5ncyx0aGlzLmRvbUJpbmRpbmdzXTt0aGlzLnRvcE92ZXJsYXk9VHcoRFllLGgpLHRoaXMuYm90dG9tT3ZlcmxheT1UdyhVWWUsaCksdGhpcy5pbmxpbmVTdGFydE92ZXJsYXk9VHcoY1VlLGgpLHRo''@;'; + put 'put ''aXMudG9wSW5saW5lU3RhcnRDb3JuZXJPdmVybGF5PVR3KGtVZSxoLmNvbmNhdChbdGhpcy50b3BPdmVybGF5LHRoaXMuaW5saW5lU3RhcnRPdmVybGF5XSkpLHRoaXMuYm90dG9tSW5saW5lU3RhcnRDb3JuZXJPdmVybGF5PVR3KE5VZSxoLmNvbmNhdChbdGhpcy5ib3R0b21PdmVybGF5LHRo''@;'; + put 'put ''aXMuaW5saW5lU3RhcnRPdmVybGF5XSkpfX0se2tleToidXBkYXRlU3RhdGVPZlJlbmRlcmluZyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD10aGlzLnRvcE92ZXJsYXkudXBkYXRlU3RhdGVPZlJlbmRlcmluZygpO3JldHVybiBoPXRoaXMuYm90dG9tT3ZlcmxheS51cGRhdGVTdGF0ZU9mUmVu''@;'; + put 'put ''ZGVyaW5nKCl8fGgsaD10aGlzLmlubGluZVN0YXJ0T3ZlcmxheS51cGRhdGVTdGF0ZU9mUmVuZGVyaW5nKCl8fGgsdGhpcy5pbmxpbmVTdGFydE92ZXJsYXkubmVlZEZ1bGxSZW5kZXImJih0aGlzLnRvcE92ZXJsYXkubmVlZEZ1bGxSZW5kZXImJihoPXRoaXMudG9wSW5saW5lU3RhcnRDb3Ju''@;'; + put 'put ''ZXJPdmVybGF5LnVwZGF0ZVN0YXRlT2ZSZW5kZXJpbmcoKXx8aCksdGhpcy5ib3R0b21PdmVybGF5Lm5lZWRGdWxsUmVuZGVyJiYoaD10aGlzLmJvdHRvbUlubGluZVN0YXJ0Q29ybmVyT3ZlcmxheS51cGRhdGVTdGF0ZU9mUmVuZGVyaW5nKCl8fGgpKSxofX0se2tleToicmVmcmVzaEFsbCIs''@;'; + put 'put ''dmFsdWU6ZnVuY3Rpb24oKXtpZih0aGlzLndvdC5kcmF3bil7aWYoIXRoaXMud3RUYWJsZS5ob2xkZXIucGFyZW50Tm9kZSlyZXR1cm4gdm9pZCB0aGlzLmRlc3Ryb3koKTt0aGlzLndvdC5kcmF3KCEwKSx0aGlzLnZlcnRpY2FsU2Nyb2xsaW5nJiZ0aGlzLmlubGluZVN0YXJ0T3ZlcmxheS5v''@;'; + put 'put ''blNjcm9sbCgpLHRoaXMuaG9yaXpvbnRhbFNjcm9sbGluZyYmdGhpcy50b3BPdmVybGF5Lm9uU2Nyb2xsKCksdGhpcy52ZXJ0aWNhbFNjcm9sbGluZz0hMSx0aGlzLmhvcml6b250YWxTY3JvbGxpbmc9ITF9fX0se2tleToicmVnaXN0ZXJMaXN0ZW5lcnMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFy''@;'; + put 'put ''IGg9dGhpcyx2PXRoaXMuZG9tQmluZGluZ3MseT12LnJvb3REb2N1bWVudCxDPXYucm9vdFdpbmRvdyxJPXRoaXMudG9wT3ZlcmxheS5tYWluVGFibGVTY3JvbGxhYmxlRWxlbWVudCxqPXRoaXMuaW5saW5lU3RhcnRPdmVybGF5Lm1haW5UYWJsZVNjcm9sbGFibGVFbGVtZW50O3RoaXMuZXZl''@;'; + put 'put ''bnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoeS5kb2N1bWVudEVsZW1lbnQsImtleWRvd24iLGZ1bmN0aW9uKE90KXtyZXR1cm4gaC5vbktleURvd24oT3QpfSksdGhpcy5ldmVudE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcih5LmRvY3VtZW50RWxlbWVudCwia2V5dXAiLGZ1bmN0aW9uKCl7''@;'; + put 'put ''cmV0dXJuIGgub25LZXlVcCgpfSksdGhpcy5ldmVudE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcih5LCJ2aXNpYmlsaXR5Y2hhbmdlIixmdW5jdGlvbigpe3JldHVybiBoLm9uS2V5VXAoKX0pLHRoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoSSwic2Nyb2xsIixmdW5jdGlvbihP''@;'; + put 'put ''dCl7cmV0dXJuIGgub25UYWJsZVNjcm9sbChPdCl9LHtwYXNzaXZlOiEwfSksSSE9PWomJnRoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoaiwic2Nyb2xsIixmdW5jdGlvbihPdCl7cmV0dXJuIGgub25UYWJsZVNjcm9sbChPdCl9LHtwYXNzaXZlOiEwfSk7dmFyIGR0LHVlPUMu''@;'; + put 'put ''ZGV2aWNlUGl4ZWxSYXRpbyYmQy5kZXZpY2VQaXhlbFJhdGlvPjEsX2U9dGhpcy5zY3JvbGxhYmxlRWxlbWVudD09PUMsQmU9dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoInByZXZlbnRXaGVlbCIpLE5lPXtwYXNzaXZlOl9lfTsoQmV8fHVlfHwhdmJlKCkpJiZ0aGlzLmV2ZW50TWFuYWdl''@;'; + put 'put ''ci5hZGRFdmVudExpc3RlbmVyKHRoaXMud3RUYWJsZS53dFJvb3RFbGVtZW50LCJ3aGVlbCIsZnVuY3Rpb24oT3Qpe3JldHVybiBoLm9uQ2xvbmVXaGVlbChPdCxCZSl9LE5lKSxbdGhpcy50b3BPdmVybGF5LHRoaXMuYm90dG9tT3ZlcmxheSx0aGlzLmlubGluZVN0YXJ0T3ZlcmxheSx0aGlz''@;'; + put 'put ''LnRvcElubGluZVN0YXJ0Q29ybmVyT3ZlcmxheSx0aGlzLmJvdHRvbUlubGluZVN0YXJ0Q29ybmVyT3ZlcmxheV0uZm9yRWFjaChmdW5jdGlvbihPdCl7T3QmJk90Lm5lZWRGdWxsUmVuZGVyJiZoLmV2ZW50TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKE90LmNsb25lLnd0VGFibGUuaG9sZGVy''@;'; + put 'put ''LCJ3aGVlbCIsZnVuY3Rpb24oZm4pe3JldHVybiBoLm9uQ2xvbmVXaGVlbChmbixCZSl9LE5lKX0pLHRoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoQywicmVzaXplIixmdW5jdGlvbigpe2NsZWFyVGltZW91dChkdCksZHQ9c2V0VGltZW91dChmdW5jdGlvbigpe2gud3RTZXR0''@;'; + put 'put ''aW5ncy5nZXRTZXR0aW5nKCJvbldpbmRvd1Jlc2l6ZSIpfSwyMDApfSl9fSx7a2V5OiJkZXJlZ2lzdGVyTGlzdGVuZXJzIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuZXZlbnRNYW5hZ2VyLmNsZWFyRXZlbnRzKCEwKX19LHtrZXk6Im9uVGFibGVTY3JvbGwiLHZhbHVlOmZ1bmN0aW9uKGgpe3Zh''@;'; + put 'put ''ciB2PXRoaXMuZG9tQmluZGluZ3Mucm9vdFdpbmRvdyx5PXRoaXMuaW5saW5lU3RhcnRPdmVybGF5Lm1haW5UYWJsZVNjcm9sbGFibGVFbGVtZW50LEM9dGhpcy50b3BPdmVybGF5Lm1haW5UYWJsZVNjcm9sbGFibGVFbGVtZW50LEk9aC50YXJnZXQ7dGhpcy5rZXlQcmVzc2VkJiYoQyE9PXYm''@;'; + put 'put ''JkkhPT12JiYhaC50YXJnZXQuY29udGFpbnMoQyl8fHkhPT12JiZJIT09diYmIWgudGFyZ2V0LmNvbnRhaW5zKHkpKXx8dGhpcy5zeW5jU2Nyb2xsUG9zaXRpb25zKGgpfX0se2tleToib25DbG9uZVdoZWVsIix2YWx1ZTpmdW5jdGlvbihoLHYpe3ZhciB5PXRoaXMuZG9tQmluZGluZ3Mucm9v''@;'; + put 'put ''dFdpbmRvdyxDPXRoaXMuaW5saW5lU3RhcnRPdmVybGF5Lm1haW5UYWJsZVNjcm9sbGFibGVFbGVtZW50LEk9dGhpcy50b3BPdmVybGF5Lm1haW5UYWJsZVNjcm9sbGFibGVFbGVtZW50LGo9aC50YXJnZXQsdWU9SSE9PXkmJmohPT15JiYhai5jb250YWlucyhJKSxfZT1DIT09eSYmaiE9PXkm''@;'; + put 'put ''JiFqLmNvbnRhaW5zKEMpO2lmKCF0aGlzLmtleVByZXNzZWR8fCF1ZSYmIV9lKXt2YXIgQmU9dGhpcy50cmFuc2xhdGVNb3VzZVdoZWVsVG9TY3JvbGwoaCk7KHZ8fHRoaXMuc2Nyb2xsYWJsZUVsZW1lbnQhPT15JiZCZSkmJmgucHJldmVudERlZmF1bHQoKX19fSx7a2V5OiJvbktleURvd24i''@;'; + put 'put ''LHZhbHVlOmZ1bmN0aW9uKGgpe3RoaXMua2V5UHJlc3NlZD1oTyhoLmtleUNvZGUsIkFSUk9XX1VQfEFSUk9XX1JJR0hUfEFSUk9XX0RPV058QVJST1dfTEVGVCIpfX0se2tleToib25LZXlVcCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmtleVByZXNzZWQ9ITF9fSx7a2V5OiJ0cmFuc2xhdGVN''@;'; + put 'put ''b3VzZVdoZWVsVG9TY3JvbGwiLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB2PWlzTmFOKGguZGVsdGFZKT8tMSpoLndoZWVsRGVsdGFZOmguZGVsdGFZLHk9aXNOYU4oaC5kZWx0YVgpPy0xKmgud2hlZWxEZWx0YVg6aC5kZWx0YVg7MT09PWguZGVsdGFNb2RlJiYoeSs9eSp0aGlzLmJyb3dzZXJM''@;'; + put 'put ''aW5lSGVpZ2h0LHYrPXYqdGhpcy5icm93c2VyTGluZUhlaWdodCk7dmFyIEM9dGhpcy5zY3JvbGxWZXJ0aWNhbGx5KHYpLEk9dGhpcy5zY3JvbGxIb3Jpem9udGFsbHkoeSk7cmV0dXJuIEN8fEl9fSx7a2V5OiJzY3JvbGxWZXJ0aWNhbGx5Iix2YWx1ZTpmdW5jdGlvbihoKXt2YXIgdj10aGlz''@;'; + put 'put ''LnNjcm9sbGFibGVFbGVtZW50LnNjcm9sbFRvcDtyZXR1cm4gdGhpcy5zY3JvbGxhYmxlRWxlbWVudC5zY3JvbGxUb3ArPWgsdiE9PXRoaXMuc2Nyb2xsYWJsZUVsZW1lbnQuc2Nyb2xsVG9wfX0se2tleToic2Nyb2xsSG9yaXpvbnRhbGx5Iix2YWx1ZTpmdW5jdGlvbihoKXt2YXIgdj10aGlz''@;'; + put 'put ''LnNjcm9sbGFibGVFbGVtZW50LnNjcm9sbExlZnQ7cmV0dXJuIHRoaXMuc2Nyb2xsYWJsZUVsZW1lbnQuc2Nyb2xsTGVmdCs9aCx2IT09dGhpcy5zY3JvbGxhYmxlRWxlbWVudC5zY3JvbGxMZWZ0fX0se2tleToic3luY1Njcm9sbFBvc2l0aW9ucyIsdmFsdWU6ZnVuY3Rpb24oKXtpZighdGhp''@;'; + put 'put ''cy5kZXN0cm95ZWQpe3ZhciBoPXRoaXMuZG9tQmluZGluZ3Mucm9vdFdpbmRvdyx2PXRoaXMudG9wT3ZlcmxheS5jbG9uZS53dFRhYmxlLmhvbGRlcix5PXRoaXMuaW5saW5lU3RhcnRPdmVybGF5LmNsb25lLnd0VGFibGUuaG9sZGVyLEM9W3RoaXMuc2Nyb2xsYWJsZUVsZW1lbnQuc2Nyb2xs''@;'; + put 'put ''TGVmdCx0aGlzLnNjcm9sbGFibGVFbGVtZW50LnNjcm9sbFRvcF0sST1DWzBdLGo9Q1sxXTtpZih0aGlzLmhvcml6b250YWxTY3JvbGxpbmc9di5zY3JvbGxMZWZ0IT09SXx8dGhpcy5sYXN0U2Nyb2xsWCE9PWguc2Nyb2xsWCx0aGlzLnZlcnRpY2FsU2Nyb2xsaW5nPXkuc2Nyb2xsVG9wIT09''@;'; + put 'put ''anx8dGhpcy5sYXN0U2Nyb2xsWSE9PWguc2Nyb2xsWSx0aGlzLmxhc3RTY3JvbGxYPWguc2Nyb2xsWCx0aGlzLmxhc3RTY3JvbGxZPWguc2Nyb2xsWSx0aGlzLmhvcml6b250YWxTY3JvbGxpbmcpe3Yuc2Nyb2xsTGVmdD1JO3ZhciB1ZT10aGlzLmJvdHRvbU92ZXJsYXkubmVlZEZ1bGxSZW5k''@;'; + put 'put ''ZXI/dGhpcy5ib3R0b21PdmVybGF5LmNsb25lLnd0VGFibGUuaG9sZGVyOm51bGw7dWUmJih1ZS5zY3JvbGxMZWZ0PUkpfXRoaXMudmVydGljYWxTY3JvbGxpbmcmJih5LnNjcm9sbFRvcD1qKSx0aGlzLnJlZnJlc2hBbGwoKX19fSx7a2V5OiJzeW5jU2Nyb2xsV2l0aE1hc3RlciIsdmFsdWU6''@;'; + put 'put ''ZnVuY3Rpb24oKXt2YXIgaD10aGlzLnRvcE92ZXJsYXkubWFpblRhYmxlU2Nyb2xsYWJsZUVsZW1lbnQsdj1oLnNjcm9sbExlZnQseT1oLnNjcm9sbFRvcDt0aGlzLnRvcE92ZXJsYXkubmVlZEZ1bGxSZW5kZXImJih0aGlzLnRvcE92ZXJsYXkuY2xvbmUud3RUYWJsZS5ob2xkZXIuc2Nyb2xs''@;'; + put 'put ''TGVmdD12KSx0aGlzLmJvdHRvbU92ZXJsYXkubmVlZEZ1bGxSZW5kZXImJih0aGlzLmJvdHRvbU92ZXJsYXkuY2xvbmUud3RUYWJsZS5ob2xkZXIuc2Nyb2xsTGVmdD12KSx0aGlzLmlubGluZVN0YXJ0T3ZlcmxheS5uZWVkRnVsbFJlbmRlciYmKHRoaXMuaW5saW5lU3RhcnRPdmVybGF5LmNs''@;'; + put 'put ''b25lLnd0VGFibGUuaG9sZGVyLnNjcm9sbFRvcD15KX19LHtrZXk6InVwZGF0ZU1haW5TY3JvbGxhYmxlRWxlbWVudHMiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5kZXJlZ2lzdGVyTGlzdGVuZXJzKCksdGhpcy5pbmxpbmVTdGFydE92ZXJsYXkudXBkYXRlTWFpblNjcm9sbGFibGVFbGVtZW50''@;'; + put 'put ''KCksdGhpcy50b3BPdmVybGF5LnVwZGF0ZU1haW5TY3JvbGxhYmxlRWxlbWVudCgpLHRoaXMuYm90dG9tT3ZlcmxheS5uZWVkRnVsbFJlbmRlciYmdGhpcy5ib3R0b21PdmVybGF5LnVwZGF0ZU1haW5TY3JvbGxhYmxlRWxlbWVudCgpO3ZhciBoPXRoaXMud3RUYWJsZTt0aGlzLnNjcm9sbGFi''@;'; + put 'put ''bGVFbGVtZW50PSJoaWRkZW4iPT09dGhpcy5kb21CaW5kaW5ncy5yb290V2luZG93LmdldENvbXB1dGVkU3R5bGUoaC53dFJvb3RFbGVtZW50LnBhcmVudE5vZGUpLmdldFByb3BlcnR5VmFsdWUoIm92ZXJmbG93Iik/aC5ob2xkZXI6SFooaC5UQUJMRSksdGhpcy5yZWdpc3Rlckxpc3RlbmVy''@;'; + put 'put ''cygpfX0se2tleToiZGVzdHJveSIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmV2ZW50TWFuYWdlci5kZXN0cm95KCksdGhpcy50b3BPdmVybGF5LmRlc3Ryb3koKSx0aGlzLmJvdHRvbU92ZXJsYXkuY2xvbmUmJnRoaXMuYm90dG9tT3ZlcmxheS5kZXN0cm95KCksdGhpcy5pbmxpbmVTdGFydE92''@;'; + put 'put ''ZXJsYXkuZGVzdHJveSgpLHRoaXMudG9wSW5saW5lU3RhcnRDb3JuZXJPdmVybGF5JiZ0aGlzLnRvcElubGluZVN0YXJ0Q29ybmVyT3ZlcmxheS5kZXN0cm95KCksdGhpcy5ib3R0b21JbmxpbmVTdGFydENvcm5lck92ZXJsYXkmJnRoaXMuYm90dG9tSW5saW5lU3RhcnRDb3JuZXJPdmVybGF5''@;'; + put 'put ''LmNsb25lJiZ0aGlzLmJvdHRvbUlubGluZVN0YXJ0Q29ybmVyT3ZlcmxheS5kZXN0cm95KCksdGhpcy5kZXN0cm95ZWQ9ITB9fSx7a2V5OiJyZWZyZXNoIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBoPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdJiZhcmd1bWVudHNb''@;'; + put 'put ''MF0sdj10aGlzLnd0VGFibGUuc3ByZWFkZXIseT12LmNsaWVudFdpZHRoLEM9di5jbGllbnRIZWlnaHQ7KHkhPT10aGlzLnNwcmVhZGVyTGFzdFNpemUud2lkdGh8fEMhPT10aGlzLnNwcmVhZGVyTGFzdFNpemUuaGVpZ2h0KSYmKHRoaXMuc3ByZWFkZXJMYXN0U2l6ZS53aWR0aD15LHRoaXMu''@;'; + put 'put ''c3ByZWFkZXJMYXN0U2l6ZS5oZWlnaHQ9Qyx0aGlzLmFkanVzdEVsZW1lbnRzU2l6ZSgpKSx0aGlzLmJvdHRvbU92ZXJsYXkuY2xvbmUmJnRoaXMuYm90dG9tT3ZlcmxheS5yZWZyZXNoKGgpLHRoaXMuaW5saW5lU3RhcnRPdmVybGF5LnJlZnJlc2goaCksdGhpcy50b3BPdmVybGF5LnJlZnJl''@;'; + put 'put ''c2goaCksdGhpcy50b3BJbmxpbmVTdGFydENvcm5lck92ZXJsYXkmJnRoaXMudG9wSW5saW5lU3RhcnRDb3JuZXJPdmVybGF5LnJlZnJlc2goaCksdGhpcy5ib3R0b21JbmxpbmVTdGFydENvcm5lck92ZXJsYXkmJnRoaXMuYm90dG9tSW5saW5lU3RhcnRDb3JuZXJPdmVybGF5LmNsb25lJiZ0''@;'; + put 'put ''aGlzLmJvdHRvbUlubGluZVN0YXJ0Q29ybmVyT3ZlcmxheS5yZWZyZXNoKGgpfX0se2tleToiYWRqdXN0RWxlbWVudHNTaXplIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBoPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdJiZhcmd1bWVudHNbMF0sdj10aGlzLndvdC53''@;'; + put 'put ''dFZpZXdwb3J0LHk9dGhpcy53dFRhYmxlLEM9dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoInRvdGFsQ29sdW1ucyIpLEk9dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoInRvdGFsUm93cyIpLGo9di5nZXRSb3dIZWFkZXJXaWR0aCgpLHVlPXYuZ2V0Q29sdW1uSGVhZGVySGVpZ2h0KCks''@;'; + put 'put ''X2U9eS5oaWRlci5zdHlsZTtpZihfZS53aWR0aD0iIi5jb25jYXQoait0aGlzLmlubGluZVN0YXJ0T3ZlcmxheS5zdW1DZWxsU2l6ZXMoMCxDKSwicHgiKSxfZS5oZWlnaHQ9IiIuY29uY2F0KHVlK3RoaXMudG9wT3ZlcmxheS5zdW1DZWxsU2l6ZXMoMCxJKSsxLCJweCIpLHRoaXMuc2Nyb2xs''@;'; + put 'put ''YmFyU2l6ZT4wKXt2YXIgQmU9eS53dFJvb3RFbGVtZW50LE5lPUJlLnNjcm9sbEhlaWdodCxLZT1CZS5zY3JvbGxXaWR0aCxkdD15LmhvbGRlcixPdD1kdC5zY3JvbGxIZWlnaHQsJHQ9ZHQuc2Nyb2xsV2lkdGg7dGhpcy5oYXNTY3JvbGxiYXJSaWdodD1OZTxPdCx0aGlzLmhhc1Njcm9sbGJh''@;'; + put 'put ''ckJvdHRvbT1LZTwkdCx0aGlzLmhhc1Njcm9sbGJhclJpZ2h0JiZ5LmhpZGVyLnNjcm9sbFdpZHRoK3RoaXMuc2Nyb2xsYmFyU2l6ZT5LZT90aGlzLmhhc1Njcm9sbGJhckJvdHRvbT0hMDp0aGlzLmhhc1Njcm9sbGJhckJvdHRvbSYmeS5oaWRlci5zY3JvbGxIZWlnaHQrdGhpcy5zY3JvbGxi''@;'; + put 'put ''YXJTaXplPk5lJiYodGhpcy5oYXNTY3JvbGxiYXJSaWdodD0hMCl9dGhpcy50b3BPdmVybGF5LmFkanVzdEVsZW1lbnRzU2l6ZShoKSx0aGlzLmlubGluZVN0YXJ0T3ZlcmxheS5hZGp1c3RFbGVtZW50c1NpemUoaCksdGhpcy5ib3R0b21PdmVybGF5LmFkanVzdEVsZW1lbnRzU2l6ZShoKX19''@;'; + put 'put ''LHtrZXk6ImFwcGx5VG9ET00iLHZhbHVlOmZ1bmN0aW9uKCl7IXRoaXMud3RUYWJsZS5pc1Zpc2libGUoKXx8KHRoaXMudG9wT3ZlcmxheS5hcHBseVRvRE9NKCksdGhpcy5ib3R0b21PdmVybGF5LmNsb25lJiZ0aGlzLmJvdHRvbU92ZXJsYXkuYXBwbHlUb0RPTSgpLHRoaXMuaW5saW5lU3Rh''@;'; + put 'put ''cnRPdmVybGF5LmFwcGx5VG9ET00oKSl9fSx7a2V5OiJnZXRQYXJlbnRPdmVybGF5Iix2YWx1ZTpmdW5jdGlvbihoKXtpZighaClyZXR1cm4gbnVsbDt2YXIgeT1udWxsO3JldHVybiBVcihbdGhpcy50b3BPdmVybGF5LHRoaXMuaW5saW5lU3RhcnRPdmVybGF5LHRoaXMuYm90dG9tT3Zlcmxh''@;'; + put 'put ''eSx0aGlzLnRvcElubGluZVN0YXJ0Q29ybmVyT3ZlcmxheSx0aGlzLmJvdHRvbUlubGluZVN0YXJ0Q29ybmVyT3ZlcmxheV0sZnVuY3Rpb24oQyl7IUN8fEMuY2xvbmUmJkMuY2xvbmUud3RUYWJsZS5UQUJMRS5jb250YWlucyhoKSYmKHk9Qy5jbG9uZSl9KSx5fX0se2tleToic3luY092ZXJs''@;'; + put 'put ''YXlUYWJsZUNsYXNzTmFtZXMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9dGhpcy53dFRhYmxlLlRBQkxFO1VyKFt0aGlzLnRvcE92ZXJsYXksdGhpcy5pbmxpbmVTdGFydE92ZXJsYXksdGhpcy5ib3R0b21PdmVybGF5LHRoaXMudG9wSW5saW5lU3RhcnRDb3JuZXJPdmVybGF5LHRoaXMuYm90''@;'; + put 'put ''dG9tSW5saW5lU3RhcnRDb3JuZXJPdmVybGF5XSxmdW5jdGlvbih5KXsheXx8KHkuY2xvbmUud3RUYWJsZS5UQUJMRS5jbGFzc05hbWU9aC5jbGFzc05hbWUpfSl9fV0pLGR9KCk7Y29uc3QgR1VlPXpVZTtmdW5jdGlvbiBPQ2UoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFy''@;'; + put 'put ''IHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX1mdW5jdGlvbiBSQ2UoZCxnLGgpe3JldHVybiBnIGluIGQ/T2JqZWN0LmRlZmlu''@;'; + put 'put ''ZVByb3BlcnR5KGQsZyx7dmFsdWU6aCxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmRbZ109aCxkfXZhciBVVWU9ZnVuY3Rpb24oKXtmdW5jdGlvbiBkKGcpe3ZhciBoPXRoaXM7KGZ1bmN0aW9uIFdVZShkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93''@;'; + put 'put ''IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSkodGhpcyxkKSxSQ2UodGhpcywic2V0dGluZ3MiLHt9KSxSQ2UodGhpcywiZGVmYXVsdHMiLE9iamVjdC5mcmVlemUodGhpcy5nZXREZWZhdWx0cygpKSksR2wodGhpcy5kZWZhdWx0cyxmdW5jdGlv''@;'; + put 'put ''bih2LHkpe2lmKHZvaWQgMCE9PWdbeV0paC5zZXR0aW5nc1t5XT1nW3ldO2Vsc2V7aWYodm9pZCAwPT09dil0aHJvdyBuZXcgRXJyb3IoJ0EgcmVxdWlyZWQgc2V0dGluZyAiJy5jb25jYXQoeSwnIiB3YXMgbm90IHByb3ZpZGVkJykpO2guc2V0dGluZ3NbeV09dn19KX1yZXR1cm4gZnVuY3Rp''@;'; + put 'put ''b24gWVVlKGQsZyxoKXtnJiZPQ2UoZC5wcm90b3R5cGUsZyksaCYmT0NlKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGQsW3trZXk6ImdldERlZmF1bHRzIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBoPXRoaXM7cmV0dXJue2ZhY2FkZTp2''@;'; + put 'put ''b2lkIDAsdGFibGU6dm9pZCAwLGlzRGF0YVZpZXdJbnN0YW5jZTohMCxleHRlcm5hbFJvd0NhbGN1bGF0b3I6ITEsc3RyZXRjaEg6Im5vbmUiLGN1cnJlbnRSb3dDbGFzc05hbWU6bnVsbCxjdXJyZW50Q29sdW1uQ2xhc3NOYW1lOm51bGwscHJldmVudE92ZXJmbG93OmZ1bmN0aW9uKCl7cmV0''@;'; + put 'put ''dXJuITF9LHByZXZlbnRXaGVlbDohMSxkYXRhOnZvaWQgMCxmcmVlemVPdmVybGF5czohMSxmaXhlZENvbHVtbnNTdGFydDowLGZpeGVkUm93c1RvcDowLGZpeGVkUm93c0JvdHRvbTowLHNob3VsZFJlbmRlcklubGluZVN0YXJ0T3ZlcmxheTpmdW5jdGlvbigpe3JldHVybiBoLmdldFNldHRp''@;'; + put 'put ''bmcoImZpeGVkQ29sdW1uc1N0YXJ0Iik+MHx8aC5nZXRTZXR0aW5nKCJyb3dIZWFkZXJzIikubGVuZ3RoPjB9LHNob3VsZFJlbmRlclRvcE92ZXJsYXk6ZnVuY3Rpb24oKXtyZXR1cm4gaC5nZXRTZXR0aW5nKCJmaXhlZFJvd3NUb3AiKT4wfHxoLmdldFNldHRpbmcoImNvbHVtbkhlYWRlcnMi''@;'; + put 'put ''KS5sZW5ndGg+MH0sc2hvdWxkUmVuZGVyQm90dG9tT3ZlcmxheTpmdW5jdGlvbigpe3JldHVybiBoLmdldFNldHRpbmcoImZpeGVkUm93c0JvdHRvbSIpPjB9LG1pblNwYXJlUm93czowLHJvd0hlYWRlcnM6ZnVuY3Rpb24oKXtyZXR1cm5bXX0sY29sdW1uSGVhZGVyczpmdW5jdGlvbigpe3Jl''@;'; + put 'put ''dHVybltdfSx0b3RhbFJvd3M6dm9pZCAwLHRvdGFsQ29sdW1uczp2b2lkIDAsY2VsbFJlbmRlcmVyOmZ1bmN0aW9uKHksQyxJKXt2YXIgaj1oLmdldFNldHRpbmcoImRhdGEiLHksQyk7U3coSSxudWxsPT1qPyIiOmopfSxjb2x1bW5XaWR0aDpmdW5jdGlvbigpe30scm93SGVpZ2h0OmZ1bmN0''@;'; + put 'put ''aW9uKCl7fSxkZWZhdWx0Um93SGVpZ2h0OjIzLGRlZmF1bHRDb2x1bW5XaWR0aDo1MCxzZWxlY3Rpb25zOm51bGwsaGlkZUJvcmRlck9uTW91c2VEb3duT3ZlcjohMSx2aWV3cG9ydFJvd0NhbGN1bGF0b3JPdmVycmlkZTpudWxsLHZpZXdwb3J0Q29sdW1uQ2FsY3VsYXRvck92ZXJyaWRlOm51''@;'; + put 'put ''bGwsb25DZWxsTW91c2VEb3duOm51bGwsb25DZWxsQ29udGV4dE1lbnU6bnVsbCxvbkNlbGxNb3VzZU92ZXI6bnVsbCxvbkNlbGxNb3VzZU91dDpudWxsLG9uQ2VsbE1vdXNlVXA6bnVsbCxvbkNlbGxEYmxDbGljazpudWxsLG9uQ2VsbENvcm5lck1vdXNlRG93bjpudWxsLG9uQ2VsbENvcm5l''@;'; + put 'put ''ckRibENsaWNrOm51bGwsYmVmb3JlRHJhdzpudWxsLG9uRHJhdzpudWxsLG9uQmVmb3JlUmVtb3ZlQ2VsbENsYXNzTmFtZXM6bnVsbCxvbkFmdGVyRHJhd1NlbGVjdGlvbjpudWxsLG9uQmVmb3JlRHJhd0JvcmRlcnM6bnVsbCxvblNjcm9sbFZlcnRpY2FsbHk6bnVsbCxvblNjcm9sbEhvcml6''@;'; + put 'put ''b250YWxseTpudWxsLG9uQmVmb3JlVG91Y2hTY3JvbGw6bnVsbCxvbkFmdGVyTW9tZW50dW1TY3JvbGw6bnVsbCxvbkJlZm9yZVN0cmV0Y2hpbmdDb2x1bW5XaWR0aDpmdW5jdGlvbih5KXtyZXR1cm4geX0sb25Nb2RpZnlSb3dIZWFkZXJXaWR0aDpudWxsLG9uTW9kaWZ5R2V0Q2VsbENvb3Jk''@;'; + put 'put ''czpudWxsLG9uQmVmb3JlSGlnaGxpZ2h0aW5nUm93SGVhZGVyOmZ1bmN0aW9uKHkpe3JldHVybiB5fSxvbkJlZm9yZUhpZ2hsaWdodGluZ0NvbHVtbkhlYWRlcjpmdW5jdGlvbih5KXtyZXR1cm4geX0sb25XaW5kb3dSZXNpemU6bnVsbCxyZW5kZXJBbGxSb3dzOiExLGdyb3VwczohMSxyb3dI''@;'; + put 'put ''ZWFkZXJXaWR0aDpudWxsLGNvbHVtbkhlYWRlckhlaWdodDpudWxsLGhlYWRlckNsYXNzTmFtZTpudWxsLHJ0bE1vZGU6ITF9fX0se2tleToidXBkYXRlIix2YWx1ZTpmdW5jdGlvbihoLHYpe3ZhciB5PXRoaXM7cmV0dXJuIHZvaWQgMD09PXY/R2woaCxmdW5jdGlvbihDLEkpe3kuc2V0dGlu''@;'; + put 'put ''Z3NbSV09Q30pOnRoaXMuc2V0dGluZ3NbaF09dix0aGlzfX0se2tleToiZ2V0U2V0dGluZyIsdmFsdWU6ZnVuY3Rpb24oaCx2LHksQyxJKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgdGhpcy5zZXR0aW5nc1toXT90aGlzLnNldHRpbmdzW2hdKHYseSxDLEkpOnZvaWQgMCE9PXYmJkFycmF5''@;'; + put 'put ''LmlzQXJyYXkodGhpcy5zZXR0aW5nc1toXSk/dGhpcy5zZXR0aW5nc1toXVt2XTp0aGlzLnNldHRpbmdzW2hdfX0se2tleToiZ2V0U2V0dGluZ1B1cmUiLHZhbHVlOmZ1bmN0aW9uKGgpe3JldHVybiB0aGlzLnNldHRpbmdzW2hdfX0se2tleToiaGFzIix2YWx1ZTpmdW5jdGlvbihoKXtyZXR1''@;'; + put 'put ''cm4hIXRoaXMuc2V0dGluZ3NbaF19fV0pLGR9KCk7ZnVuY3Rpb24gQmRlKGQpe3JldHVybihCZGU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZyl7cmV0dXJuIHR5cGVvZiBnfTpmdW5jdGlvbihnKXtyZXR1cm4g''@;'; + put 'put ''ZyYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZy5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZyE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGd9KShkKX1mdW5jdGlvbiBCQ2UoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFi''@;'; + put 'put ''bGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX1mdW5jdGlvbiBQZGUoZCxnKXtyZXR1cm4oUGRlPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJv''@;'; + put 'put ''dG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHYseSl7cmV0dXJuIHYuX19wcm90b19fPXksdn0pKGQsZyl9ZnVuY3Rpb24gJFVlKGQsZyl7aWYoZyYmKCJvYmplY3QiPT09QmRlKGcpfHwiZnVuY3Rpb24iPT10eXBlb2YgZykpcmV0dXJuIGc7aWYodm9pZCAwIT09Zyl0aHJvdyBuZXcgVHlwZUVy''@;'; + put 'put ''cm9yKCJEZXJpdmVkIGNvbnN0cnVjdG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0IG9yIHVuZGVmaW5lZCIpO3JldHVybiBmdW5jdGlvbiBxVWUoZCl7aWYodm9pZCAwPT09ZCl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigp''@;'; + put 'put ''IGhhc24ndCBiZWVuIGNhbGxlZCIpO3JldHVybiBkfShkKX1mdW5jdGlvbiBWZWUoZCl7cmV0dXJuKFZlZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihoKXtyZXR1cm4gaC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVP''@;'; + put 'put ''ZihoKX0pKGQpfXZhciBGZGU9ZnVuY3Rpb24oZCl7IWZ1bmN0aW9uIFhVZShkLGcpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBnJiZudWxsIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiIpO2QucHJvdG90''@;'; + put 'put ''eXBlPU9iamVjdC5jcmVhdGUoZyYmZy5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTpkLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxnJiZQZGUoZCxnKX0oaCxkKTt2YXIgZz1mdW5j''@;'; + put 'put ''dGlvbiBLVWUoZCl7dmFyIGc9ZnVuY3Rpb24gZVFlKCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBSZWZsZWN0fHwhUmVmbGVjdC5jb25zdHJ1Y3R8fFJlZmxlY3QuY29uc3RydWN0LnNoYW0pcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIFByb3h5KXJldHVybiEwO3RyeXtyZXR1cm4g''@;'; + put 'put ''Qm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10sZnVuY3Rpb24oKXt9KSksITB9Y2F0Y2goZCl7cmV0dXJuITF9fSgpO3JldHVybiBmdW5jdGlvbigpe3ZhciB5LHY9VmVlKGQpO2lmKGcpe3ZhciBDPVZlZSh0aGlzKS5jb25zdHJ1Y3Rv''@;'; + put 'put ''cjt5PVJlZmxlY3QuY29uc3RydWN0KHYsYXJndW1lbnRzLEMpfWVsc2UgeT12LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gJFVlKHRoaXMseSl9fShoKTtmdW5jdGlvbiBoKHYseSxDLEkpe3JldHVybiBmdW5jdGlvbiBRVWUoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBu''@;'; + put 'put ''ZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0odGhpcyxoKSxnLmNhbGwodGhpcyx2LHksQyxJLCJtYXN0ZXIiKX1yZXR1cm4gZnVuY3Rpb24gSlVlKGQsZyxoKXtnJiZCQ2UoZC5wcm90b3R5cGUsZyksaCYmQkNlKGQsaCksT2JqZWN0LmRlZmluZVBy''@;'; + put 'put ''b3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGgsW3trZXk6ImFsaWduT3ZlcmxheXNXaXRoVHJpbW1pbmdDb250YWluZXIiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9Zk8odGhpcy53dFJvb3RFbGVtZW50KSxDPXRoaXMuZG9tQmluZGluZ3Mucm9vdFdpbmRvdztpZih5PT09''@;'; + put 'put ''Qyl0aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygicHJldmVudE92ZXJmbG93Iil8fCh0aGlzLmhvbGRlci5zdHlsZS5vdmVyZmxvdz0idmlzaWJsZSIsdGhpcy53dFJvb3RFbGVtZW50LnN0eWxlLm92ZXJmbG93PSJ2aXNpYmxlIik7ZWxzZXt2YXIgaj15LnBhcmVudEVsZW1lbnQsdWU9bmVl''@;'; + put 'put ''KHksImhlaWdodCIsQyksX2U9bmVlKHksIm92ZXJmbG93IixDKSxCZT10aGlzLmhvbGRlci5zdHlsZSxOZT15LnNjcm9sbFdpZHRoLEtlPXkuc2Nyb2xsSGVpZ2h0LGR0PXkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksT3Q9ZHQud2lkdGgsJHQ9ZHQuaGVpZ2h0O2lmKGomJlsiYXV0byIsImhp''@;'; + put 'put ''ZGRlbiIsInNjcm9sbCJdLmluY2x1ZGVzKF9lKSl7dmFyIExuPXkuY2xvbmVOb2RlKCExKTtMbi5zdHlsZS5vdmVyZmxvdz0iYXV0byIseS5uZXh0RWxlbWVudFNpYmxpbmc/ai5pbnNlcnRCZWZvcmUoTG4seS5uZXh0RWxlbWVudFNpYmxpbmcpOmouYXBwZW5kQ2hpbGQoTG4pO3ZhciBpcj1w''@;'; + put 'put ''YXJzZUludChNdyhMbixDKS5oZWlnaHQsMTApO2oucmVtb3ZlQ2hpbGQoTG4pLDA9PT1pciYmKCR0PTApfSR0PU1hdGgubWluKCR0LEtlKSxCZS5oZWlnaHQ9ImF1dG8iPT09dWU/ImF1dG8iOiIiLmNvbmNhdCgkdCwicHgiKSxPdD1NYXRoLm1pbihPdCxOZSksQmUud2lkdGg9IiIuY29uY2F0''@;'; + put 'put ''KE90LCJweCIpLEJlLm92ZXJmbG93PSIiLHRoaXMuaGFzVGFibGVIZWlnaHQ9ImF1dG8iPT09QmUuaGVpZ2h0fHwkdD4wLHRoaXMuaGFzVGFibGVXaWR0aD1PdD4wfXRoaXMuaXNUYWJsZVZpc2libGU9dU8odGhpcy5UQUJMRSl9fSx7a2V5OiJtYXJrT3ZlcnNpemVkQ29sdW1uSGVhZGVycyIs''@;'; + put 'put ''dmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzLnd0U2V0dGluZ3MsQz10aGlzLmRhdGFBY2Nlc3NPYmplY3Qud3RWaWV3cG9ydCxJPSJtYXN0ZXIiLHVlPXkuZ2V0U2V0dGluZygiY29sdW1uSGVhZGVycyIpLmxlbmd0aDtpZih1ZSYmIUMuaGFzT3ZlcnNpemVkQ29sdW1uSGVhZGVyc01hcmtl''@;'; + put 'put ''ZFtJXSl7Zm9yKHZhciBCZT15LmdldFNldHRpbmcoInJvd0hlYWRlcnMiKS5sZW5ndGgsTmU9dGhpcy5nZXRSZW5kZXJlZENvbHVtbnNDb3VudCgpLEtlPTA7S2U8dWU7S2UrKylmb3IodmFyIGR0PS0xKkJlO2R0PE5lO2R0KyspdGhpcy5tYXJrSWZPdmVyc2l6ZWRDb2x1bW5IZWFkZXIoZHQp''@;'; + put 'put ''O0MuaGFzT3ZlcnNpemVkQ29sdW1uSGVhZGVyc01hcmtlZFtJXT0hMH19fV0pLGh9KG1PKTtCMihGZGUsd0NlKSxCMihGZGUsb2RlKTtjb25zdCB0UWU9RmRlO2Z1bmN0aW9uIG5RZShkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEg''@;'; + put 'put ''Y2xhc3MgYXMgYSBmdW5jdGlvbiIpfWZ1bmN0aW9uIFBDZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRl''@;'; + put 'put ''ZmluZVByb3BlcnR5KGQsdi5rZXksdil9fXZhciBGQ2U9bmV3IFdlYWtNYXAsaVFlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZCgpe3ZhciBnPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp7fSxoPWcudmlld3BvcnRTaXplLHY9Zy5zY3JvbGxP''@;'; + put 'put ''ZmZzZXQseT1nLnRvdGFsSXRlbXMsQz1nLml0ZW1TaXplRm4sST1nLm92ZXJyaWRlRm4saj1nLmNhbGN1bGF0aW9uVHlwZSx1ZT1nLnNjcm9sbGJhckhlaWdodDtuUWUodGhpcyxkKSxGQ2Uuc2V0KHRoaXMse3ZpZXdwb3J0SGVpZ2h0Omgsc2Nyb2xsT2Zmc2V0OnYsdG90YWxSb3dzOnkscm93''@;'; + put 'put ''SGVpZ2h0Rm46QyxvdmVycmlkZUZuOkksY2FsY3VsYXRpb25UeXBlOmosaG9yaXpvbnRhbFNjcm9sbGJhckhlaWdodDp1ZX0pLHRoaXMuY291bnQ9MCx0aGlzLnN0YXJ0Um93PW51bGwsdGhpcy5lbmRSb3c9bnVsbCx0aGlzLnN0YXJ0UG9zaXRpb249bnVsbCx0aGlzLmNhbGN1bGF0ZSgpfXJl''@;'; + put 'put ''dHVybiBmdW5jdGlvbiByUWUoZCxnLGgpe2cmJlBDZShkLnByb3RvdHlwZSxnKSxoJiZQQ2UoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oZCxbe2tleToiY2FsY3VsYXRlIix2YWx1ZTpmdW5jdGlvbigpe2Zvcih2YXIgZHQsaD0wLHY9''@;'; + put 'put ''ITAseT1bXSxDPUZDZS5nZXQodGhpcyksST1DLmNhbGN1bGF0aW9uVHlwZSxqPUMub3ZlcnJpZGVGbix1ZT1DLnJvd0hlaWdodEZuLF9lPUMuc2Nyb2xsT2Zmc2V0LEJlPUMudG90YWxSb3dzLE5lPUMudmlld3BvcnRIZWlnaHQsS2U9Qy5ob3Jpem9udGFsU2Nyb2xsYmFySGVpZ2h0fHwwLE90''@;'; + put 'put ''PTA7T3Q8QmU7T3QrKylpZihkdD11ZShPdCksaXNOYU4oZHQpJiYoZHQ9ZC5ERUZBVUxUX0hFSUdIVCksaDw9X2UmJjIhPT1JJiYodGhpcy5zdGFydFJvdz1PdCksaD49X2UmJmgrKDI9PT1JP2R0OjApPD1fZStOZS1LZSYmKG51bGw9PT10aGlzLnN0YXJ0Um93JiYodGhpcy5zdGFydFJvdz1P''@;'; + put 'put ''dCksdGhpcy5lbmRSb3c9T3QpLHkucHVzaChoKSxoKz1kdCwyIT09SSYmKHRoaXMuZW5kUm93PU90KSxoPj1fZStOZS1LZSl7dj0hMTticmVha31pZih0aGlzLmVuZFJvdz09PUJlLTEmJnYpZm9yKHRoaXMuc3RhcnRSb3c9dGhpcy5lbmRSb3c7dGhpcy5zdGFydFJvdz4wOyl7dmFyICR0PXlb''@;'; + put 'put ''dGhpcy5lbmRSb3ddK2R0LXlbdGhpcy5zdGFydFJvdy0xXTtpZigoJHQ8PU5lLUtlfHwyIT09SSkmJih0aGlzLnN0YXJ0Um93LT0xKSwkdD49TmUtS2UpYnJlYWt9MT09PUkmJm51bGwhPT10aGlzLnN0YXJ0Um93JiZqJiZqKHRoaXMpLHRoaXMuc3RhcnRQb3NpdGlvbj15W3RoaXMuc3RhcnRS''@;'; + put 'put ''b3ddLHZvaWQgMD09PXRoaXMuc3RhcnRQb3NpdGlvbiYmKHRoaXMuc3RhcnRQb3NpdGlvbj1udWxsKSxCZTx0aGlzLmVuZFJvdyYmKHRoaXMuZW5kUm93PUJlLTEpLG51bGwhPT10aGlzLnN0YXJ0Um93JiYodGhpcy5jb3VudD10aGlzLmVuZFJvdy10aGlzLnN0YXJ0Um93KzEpfX1dLFt7a2V5''@;'; + put 'put ''OiJERUZBVUxUX0hFSUdIVCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDIzfX1dKSxkfSgpO2NvbnN0IEhDZT1pUWU7ZnVuY3Rpb24gb1FlKGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9ZnVu''@;'; + put 'put ''Y3Rpb24gTkNlKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19''@;'; + put 'put ''dmFyIHZPPW5ldyBXZWFrTWFwLGxRZT1mdW5jdGlvbigpe2Z1bmN0aW9uIGQoKXt2YXIgZz1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06e30saD1nLnZpZXdwb3J0U2l6ZSx2PWcuc2Nyb2xsT2Zmc2V0LHk9Zy50b3RhbEl0ZW1zLEM9Zy5p''@;'; + put 'put ''dGVtU2l6ZUZuLEk9Zy5vdmVycmlkZUZuLGo9Zy5jYWxjdWxhdGlvblR5cGUsdWU9Zy5zdHJldGNoTW9kZSxfZT1nLnN0cmV0Y2hpbmdJdGVtV2lkdGhGbixCZT12b2lkIDA9PT1fZT9mdW5jdGlvbihOZSl7cmV0dXJuIE5lfTpfZTtvUWUodGhpcyxkKSx2Ty5zZXQodGhpcyx7dmlld3BvcnRX''@;'; + put 'put ''aWR0aDpoLHNjcm9sbE9mZnNldDp2LHRvdGFsQ29sdW1uczp5LGNvbHVtbldpZHRoRm46QyxvdmVycmlkZUZuOkksY2FsY3VsYXRpb25UeXBlOmosc3RyZXRjaGluZ0NvbHVtbldpZHRoRm46QmV9KSx0aGlzLmNvdW50PTAsdGhpcy5zdGFydENvbHVtbj1udWxsLHRoaXMuZW5kQ29sdW1uPW51''@;'; + put 'put ''bGwsdGhpcy5zdGFydFBvc2l0aW9uPW51bGwsdGhpcy5zdHJldGNoQWxsUmF0aW89MCx0aGlzLnN0cmV0Y2hMYXN0V2lkdGg9MCx0aGlzLnN0cmV0Y2g9dWUsdGhpcy50b3RhbFRhcmdldFdpZHRoPTAsdGhpcy5uZWVkVmVyaWZ5TGFzdENvbHVtbldpZHRoPSEwLHRoaXMuc3RyZXRjaEFsbENv''@;'; + put 'put ''bHVtbnNXaWR0aD1bXSx0aGlzLmNhbGN1bGF0ZSgpfXJldHVybiBmdW5jdGlvbiBhUWUoZCxnLGgpe2cmJk5DZShkLnByb3RvdHlwZSxnKSxoJiZOQ2UoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oZCxbe2tleToiY2FsY3VsYXRlIix2''@;'; + put 'put ''YWx1ZTpmdW5jdGlvbigpe2Zvcih2YXIgQyxoPTAsdj0hMCx5PVtdLEk9dk8uZ2V0KHRoaXMpLGo9SS5jYWxjdWxhdGlvblR5cGUsdWU9SS5vdmVycmlkZUZuLF9lPUkuc2Nyb2xsT2Zmc2V0LEJlPUkudG90YWxDb2x1bW5zLE5lPUkudmlld3BvcnRXaWR0aCxLZT0wO0tlPEJlO0tlKyspaWYo''@;'; + put 'put ''Qz10aGlzLl9nZXRDb2x1bW5XaWR0aChLZSksaDw9X2UmJjIhPT1qJiYodGhpcy5zdGFydENvbHVtbj1LZSksaD49X2UmJmgrKDI9PT1qP0M6MCk8PV9lKyhfZT4wP05lKzE6TmUpJiYobnVsbD09dGhpcy5zdGFydENvbHVtbiYmKHRoaXMuc3RhcnRDb2x1bW49S2UpLHRoaXMuZW5kQ29sdW1u''@;'; + put 'put ''PUtlKSx5LnB1c2goaCksaCs9QywyIT09aiYmKHRoaXMuZW5kQ29sdW1uPUtlKSxoPj1fZStOZSl7dj0hMTticmVha31pZih0aGlzLmVuZENvbHVtbj09PUJlLTEmJnYpZm9yKHRoaXMuc3RhcnRDb2x1bW49dGhpcy5lbmRDb2x1bW47dGhpcy5zdGFydENvbHVtbj4wOyl7dmFyIE90PXlbdGhp''@;'; + put 'put ''cy5lbmRDb2x1bW5dK0MteVt0aGlzLnN0YXJ0Q29sdW1uLTFdO2lmKChPdDw9TmV8fDIhPT1qKSYmKHRoaXMuc3RhcnRDb2x1bW4tPTEpLE90Pk5lKWJyZWFrfTE9PT1qJiZudWxsIT09dGhpcy5zdGFydENvbHVtbiYmdWUmJnVlKHRoaXMpLHRoaXMuc3RhcnRQb3NpdGlvbj15W3RoaXMuc3Rh''@;'; + put 'put ''cnRDb2x1bW5dLHZvaWQgMD09PXRoaXMuc3RhcnRQb3NpdGlvbiYmKHRoaXMuc3RhcnRQb3NpdGlvbj1udWxsKSxCZTx0aGlzLmVuZENvbHVtbiYmKHRoaXMuZW5kQ29sdW1uPUJlLTEpLG51bGwhPT10aGlzLnN0YXJ0Q29sdW1uJiYodGhpcy5jb3VudD10aGlzLmVuZENvbHVtbi10aGlzLnN0''@;'; + put 'put ''YXJ0Q29sdW1uKzEpfX0se2tleToicmVmcmVzaFN0cmV0Y2hpbmciLHZhbHVlOmZ1bmN0aW9uKGgpe2lmKCJub25lIiE9PXRoaXMuc3RyZXRjaCl7dmFyIHY9aDt0aGlzLnRvdGFsVGFyZ2V0V2lkdGg9djtmb3IodmFyIHk9dk8uZ2V0KHRoaXMpLEM9eS50b3RhbENvbHVtbnMsST0wLGo9MDtq''@;'; + put 'put ''PEM7aisrKXt2YXIgdWU9dGhpcy5fZ2V0Q29sdW1uV2lkdGgoaiksX2U9eS5zdHJldGNoaW5nQ29sdW1uV2lkdGhGbih2b2lkIDAsaik7Im51bWJlciI9PXR5cGVvZiBfZT92LT1fZTpJKz11ZX12YXIgQmU9di1JO2lmKCJhbGwiPT09dGhpcy5zdHJldGNoJiZCZT4wKXRoaXMuc3RyZXRjaEFs''@;'; + put 'put ''bFJhdGlvPXYvSSx0aGlzLnN0cmV0Y2hBbGxDb2x1bW5zV2lkdGg9W10sdGhpcy5uZWVkVmVyaWZ5TGFzdENvbHVtbldpZHRoPSEwO2Vsc2UgaWYoImxhc3QiPT09dGhpcy5zdHJldGNoJiZ2IT09MS8wKXt2YXIgTmU9dGhpcy5fZ2V0Q29sdW1uV2lkdGgoQy0xKSxLZT1CZStOZTt0aGlzLnN0''@;'; + put 'put ''cmV0Y2hMYXN0V2lkdGg9S2U+PTA/S2U6TmV9fX19LHtrZXk6ImdldFN0cmV0Y2hlZENvbHVtbldpZHRoIix2YWx1ZTpmdW5jdGlvbihoLHYpe3ZhciB5PW51bGw7cmV0dXJuImFsbCI9PT10aGlzLnN0cmV0Y2gmJjAhPT10aGlzLnN0cmV0Y2hBbGxSYXRpbz95PXRoaXMuX2dldFN0cmV0Y2hl''@;'; + put 'put ''ZEFsbENvbHVtbldpZHRoKGgsdik6Imxhc3QiPT09dGhpcy5zdHJldGNoJiYwIT09dGhpcy5zdHJldGNoTGFzdFdpZHRoJiYoeT10aGlzLl9nZXRTdHJldGNoZWRMYXN0Q29sdW1uV2lkdGgoaCkpLHl9fSx7a2V5OiJfZ2V0U3RyZXRjaGVkQWxsQ29sdW1uV2lkdGgiLHZhbHVlOmZ1bmN0aW9u''@;'; + put 'put ''KGgsdil7dmFyIHk9MCxDPXZPLmdldCh0aGlzKSxJPUMudG90YWxDb2x1bW5zO2lmKCF0aGlzLnN0cmV0Y2hBbGxDb2x1bW5zV2lkdGhbaF0pe3ZhciBqPU1hdGgucm91bmQodip0aGlzLnN0cmV0Y2hBbGxSYXRpbyksdWU9Qy5zdHJldGNoaW5nQ29sdW1uV2lkdGhGbihqLGgpO3RoaXMuc3Ry''@;'; + put 'put ''ZXRjaEFsbENvbHVtbnNXaWR0aFtoXT12b2lkIDA9PT11ZT9qOmlzTmFOKHVlKT90aGlzLl9nZXRDb2x1bW5XaWR0aChoKTp1ZX1pZih0aGlzLnN0cmV0Y2hBbGxDb2x1bW5zV2lkdGgubGVuZ3RoPT09SSYmdGhpcy5uZWVkVmVyaWZ5TGFzdENvbHVtbldpZHRoKXt0aGlzLm5lZWRWZXJpZnlM''@;'; + put 'put ''YXN0Q29sdW1uV2lkdGg9ITE7Zm9yKHZhciBfZT0wO19lPHRoaXMuc3RyZXRjaEFsbENvbHVtbnNXaWR0aC5sZW5ndGg7X2UrKyl5Kz10aGlzLnN0cmV0Y2hBbGxDb2x1bW5zV2lkdGhbX2VdO3khPT10aGlzLnRvdGFsVGFyZ2V0V2lkdGgmJih0aGlzLnN0cmV0Y2hBbGxDb2x1bW5zV2lkdGhb''@;'; + put 'put ''dGhpcy5zdHJldGNoQWxsQ29sdW1uc1dpZHRoLmxlbmd0aC0xXSs9dGhpcy50b3RhbFRhcmdldFdpZHRoLXkpfXJldHVybiB0aGlzLnN0cmV0Y2hBbGxDb2x1bW5zV2lkdGhbaF19fSx7a2V5OiJfZ2V0U3RyZXRjaGVkTGFzdENvbHVtbldpZHRoIix2YWx1ZTpmdW5jdGlvbihoKXtyZXR1cm4g''@;'; + put 'put ''aD09PXZPLmdldCh0aGlzKS50b3RhbENvbHVtbnMtMT90aGlzLnN0cmV0Y2hMYXN0V2lkdGg6bnVsbH19LHtrZXk6Il9nZXRDb2x1bW5XaWR0aCIsdmFsdWU6ZnVuY3Rpb24oaCl7dmFyIHY9dk8uZ2V0KHRoaXMpLmNvbHVtbldpZHRoRm4oaCk7cmV0dXJuIGlzTmFOKHYpJiYodj1kLkRFRkFV''@;'; + put 'put ''TFRfV0lEVEgpLHZ9fV0sW3trZXk6IkRFRkFVTFRfV0lEVEgiLGdldDpmdW5jdGlvbigpe3JldHVybiA1MH19XSksZH0oKTtjb25zdCBIZGU9bFFlO2Z1bmN0aW9uIFZDZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFi''@;'; + put 'put ''bGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fXZhciBjUWU9ZnVuY3Rpb24oKXtmdW5jdGlvbiBkKGcsaCx2LHksQyl7dmFyIEk9dGhpczsoZnVuY3Rpb24gc1FlKGQsZyl7aWYoIShk''@;'; + put 'put ''IGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KSh0aGlzLGQpLHRoaXMuZGF0YUFjY2Vzc09iamVjdD1nLHRoaXMud290PWcud290LHRoaXMuaW5zdGFuY2U9dGhpcy53b3QsdGhpcy5kb21CaW5kaW5ncz1oLHRo''@;'; + put 'put ''aXMud3RTZXR0aW5ncz12LHRoaXMud3RUYWJsZT1DLHRoaXMub3ZlcnNpemVkUm93cz1bXSx0aGlzLm92ZXJzaXplZENvbHVtbkhlYWRlcnM9W10sdGhpcy5oYXNPdmVyc2l6ZWRDb2x1bW5IZWFkZXJzTWFya2VkPXt9LHRoaXMuY2xpZW50SGVpZ2h0PTAsdGhpcy5jb250YWluZXJXaWR0aD1O''@;'; + put 'put ''YU4sdGhpcy5yb3dIZWFkZXJXaWR0aD1OYU4sdGhpcy5yb3dzVmlzaWJsZUNhbGN1bGF0b3I9bnVsbCx0aGlzLmNvbHVtbnNWaXNpYmxlQ2FsY3VsYXRvcj1udWxsLHRoaXMuZXZlbnRNYW5hZ2VyPXksdGhpcy5ldmVudE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcih0aGlzLmRvbUJpbmRpbmdz''@;'; + put 'put ''LnJvb3RXaW5kb3csInJlc2l6ZSIsZnVuY3Rpb24oKXtJLmNsaWVudEhlaWdodD1JLmdldFdvcmtzcGFjZUhlaWdodCgpfSl9cmV0dXJuIGZ1bmN0aW9uIHVRZShkLGcsaCl7ZyYmVkNlKGQucHJvdG90eXBlLGcpLGgmJlZDZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5''@;'; + put 'put ''cGUiLHt3cml0YWJsZTohMX0pfShkLFt7a2V5OiJnZXRXb3Jrc3BhY2VIZWlnaHQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHY9dGhpcy5kYXRhQWNjZXNzT2JqZWN0LnRvcE92ZXJsYXlUcmltbWluZ0NvbnRhaW5lcjtyZXR1cm4gdj09PXRoaXMuZG9tQmluZGluZ3Mucm9vdFdpbmRvdz90aGlz''@;'; + put 'put ''LmRvbUJpbmRpbmdzLnJvb3REb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0OkQxKHYpPjAmJnYuY2xpZW50SGVpZ2h0PjA/di5jbGllbnRIZWlnaHQ6MS8wfX0se2tleToiZ2V0V29ya3NwYWNlV2lkdGgiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIE90LCR0LGg9dGhpcy53dFNl''@;'; + put 'put ''dHRpbmdzLHY9dGhpcy5kb21CaW5kaW5ncyx5PXYucm9vdERvY3VtZW50LEM9di5yb290V2luZG93LEk9dGhpcy5kYXRhQWNjZXNzT2JqZWN0LmlubGluZVN0YXJ0T3ZlcmxheVRyaW1taW5nQ29udGFpbmVyLGo9eS5kb2N1bWVudEVsZW1lbnQub2Zmc2V0V2lkdGgsdWU9aC5nZXRTZXR0aW5n''@;'; + put 'put ''KCJ0b3RhbENvbHVtbnMiKSxfZT1oLmdldFNldHRpbmcoInByZXZlbnRPdmVyZmxvdyIpLEJlPWguZ2V0U2V0dGluZygicnRsTW9kZSIpLE5lPXRoaXMud3RUYWJsZS5UQUJMRS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxkdD1qLShCZT9OZS5yaWdodC1qOk5lLmxlZnQpO2lmKF9lKXJldHVy''@;'; + put 'put ''biBFMih0aGlzLnd0VGFibGUud3RSb290RWxlbWVudCk7aWYoT3Q9aC5nZXRTZXR0aW5nKCJmcmVlemVPdmVybGF5cyIpP01hdGgubWluKGR0LGopOk1hdGgubWluKHRoaXMuZ2V0Q29udGFpbmVyRmlsbFdpZHRoKCksZHQsaiksST09PUMmJnVlPjAmJnRoaXMuc3VtQ29sdW1uV2lkdGhzKDAs''@;'; + put 'put ''dWUtMSk+T3QpcmV0dXJuIHkuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoO2lmKEkhPT1DJiYoInNjcm9sbCI9PT0oJHQ9bmVlKHRoaXMuZGF0YUFjY2Vzc09iamVjdC5pbmxpbmVTdGFydE92ZXJsYXlUcmltbWluZ0NvbnRhaW5lciwib3ZlcmZsb3ciLEMpKXx8ImhpZGRlbiI9PT0kdHx8''@;'; + put 'put ''ImF1dG8iPT09JHQpKXJldHVybiBNYXRoLm1heChPdCxJLmNsaWVudFdpZHRoKTt2YXIgZm49aC5nZXRTZXR0aW5nKCJzdHJldGNoSCIpO3JldHVybiJub25lIiE9PWZuJiZmbj9PdDpNYXRoLm1heChPdCxFMih0aGlzLnd0VGFibGUuVEFCTEUpKX19LHtrZXk6Imhhc1ZlcnRpY2FsU2Nyb2xs''@;'; + put 'put ''Iix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnd0VGFibGUuaGlkZXIub2Zmc2V0SGVpZ2h0PnRoaXMuZ2V0V29ya3NwYWNlSGVpZ2h0KCl9fSx7a2V5OiJoYXNIb3Jpem9udGFsU2Nyb2xsIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnd0VGFibGUuaGlkZXIub2Zmc2V0V2lk''@;'; + put 'put ''dGg+dGhpcy5nZXRXb3Jrc3BhY2VXaWR0aCgpfX0se2tleToic3VtQ29sdW1uV2lkdGhzIix2YWx1ZTpmdW5jdGlvbihoLHYpe2Zvcih2YXIgeT0wLEM9aDtDPHY7KXkrPXRoaXMud3RUYWJsZS5nZXRDb2x1bW5XaWR0aChDKSxDKz0xO3JldHVybiB5fX0se2tleToiZ2V0Q29udGFpbmVyRmls''@;'; + put 'put ''bFdpZHRoIix2YWx1ZTpmdW5jdGlvbigpe2lmKHRoaXMuY29udGFpbmVyV2lkdGgpcmV0dXJuIHRoaXMuY29udGFpbmVyV2lkdGg7dmFyIGg9dGhpcy53dFRhYmxlLmhvbGRlcix2PXRoaXMuZG9tQmluZGluZ3Mucm9vdERvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3Yuc3R5bGUud2lk''@;'; + put 'put ''dGg9IjEwMCUiLHYuc3R5bGUuaGVpZ2h0PSIxcHgiLGguYXBwZW5kQ2hpbGQodik7dmFyIHk9di5vZmZzZXRXaWR0aDtyZXR1cm4gdGhpcy5jb250YWluZXJXaWR0aD15LGgucmVtb3ZlQ2hpbGQodikseX19LHtrZXk6ImdldFdvcmtzcGFjZU9mZnNldCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1''@;'; + put 'put ''cm4ganUodGhpcy53dFRhYmxlLlRBQkxFKX19LHtrZXk6ImdldENvbHVtbkhlYWRlckhlaWdodCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoImNvbHVtbkhlYWRlcnMiKS5sZW5ndGg/aXNOYU4odGhpcy5jb2x1bW5IZWFkZXJIZWlnaHQpJiYo''@;'; + put 'put ''dGhpcy5jb2x1bW5IZWFkZXJIZWlnaHQ9RDEodGhpcy53dFRhYmxlLlRIRUFEKSk6dGhpcy5jb2x1bW5IZWFkZXJIZWlnaHQ9MCx0aGlzLmNvbHVtbkhlYWRlckhlaWdodH19LHtrZXk6ImdldFZpZXdwb3J0SGVpZ2h0Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciBoPXRoaXMuZ2V0V29ya3NwYWNl''@;'; + put 'put ''SGVpZ2h0KCk7aWYoaD09PTEvMClyZXR1cm4gaDt2YXIgdj10aGlzLmdldENvbHVtbkhlYWRlckhlaWdodCgpO3JldHVybiB2PjAmJihoLT12KSxofX0se2tleToiZ2V0Um93SGVhZGVyV2lkdGgiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoInJv''@;'; + put 'put ''d0hlYWRlcldpZHRoIiksdj10aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygicm93SGVhZGVycyIpO2lmKGgpe3RoaXMucm93SGVhZGVyV2lkdGg9MDtmb3IodmFyIHk9MCxDPXYubGVuZ3RoO3k8Qzt5KyspdGhpcy5yb3dIZWFkZXJXaWR0aCs9aFt5XXx8aH1pZihpc05hTih0aGlzLnJvd0hl''@;'; + put 'put ''YWRlcldpZHRoKSlpZih2Lmxlbmd0aCl7dmFyIEk9dGhpcy53dFRhYmxlLlRBQkxFLnF1ZXJ5U2VsZWN0b3IoIlRIIik7dGhpcy5yb3dIZWFkZXJXaWR0aD0wO2Zvcih2YXIgaj0wLHVlPXYubGVuZ3RoO2o8dWU7aisrKUk/KHRoaXMucm93SGVhZGVyV2lkdGgrPUUyKEkpLEk9SS5uZXh0U2li''@;'; + put 'put ''bGluZyk6dGhpcy5yb3dIZWFkZXJXaWR0aCs9NTB9ZWxzZSB0aGlzLnJvd0hlYWRlcldpZHRoPTA7cmV0dXJuIHRoaXMucm93SGVhZGVyV2lkdGg9dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoIm9uTW9kaWZ5Um93SGVhZGVyV2lkdGgiLHRoaXMucm93SGVhZGVyV2lkdGgpfHx0aGlzLnJv''@;'; + put 'put ''d0hlYWRlcldpZHRoLHRoaXMucm93SGVhZGVyV2lkdGh9fSx7a2V5OiJnZXRWaWV3cG9ydFdpZHRoIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBoPXRoaXMuZ2V0V29ya3NwYWNlV2lkdGgoKTtpZihoPT09MS8wKXJldHVybiBoO3ZhciB2PXRoaXMuZ2V0Um93SGVhZGVyV2lkdGgoKTtyZXR1cm4g''@;'; + put 'put ''dj4wP2gtdjpofX0se2tleToiY3JlYXRlUm93c0NhbGN1bGF0b3IiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIEMsSSxqLGg9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOjEsdj10aGlzLnd0U2V0dGluZ3MseT10aGlzLnd0VGFibGU7dGhpcy5y''@;'; + put 'put ''b3dIZWFkZXJXaWR0aD1OYU4sQz12LmdldFNldHRpbmcoInJlbmRlckFsbFJvd3MiKSYmMT09PWg/MS8wOnRoaXMuZ2V0Vmlld3BvcnRIZWlnaHQoKTt2YXIgdWU9dGhpcy5kYXRhQWNjZXNzT2JqZWN0LnRvcFNjcm9sbFBvc2l0aW9uLXRoaXMuZGF0YUFjY2Vzc09iamVjdC50b3BQYXJlbnRP''@;'; + put 'put ''ZmZzZXQ7dWU8MCYmKHVlPTApO3ZhciBfZT12LmdldFNldHRpbmcoImZpeGVkUm93c1RvcCIpLEJlPXYuZ2V0U2V0dGluZygiZml4ZWRSb3dzQm90dG9tIiksTmU9di5nZXRTZXR0aW5nKCJ0b3RhbFJvd3MiKTtyZXR1cm4gX2UmJih1ZSs9aj10aGlzLmRhdGFBY2Nlc3NPYmplY3QudG9wT3Zl''@;'; + put 'put ''cmxheS5zdW1DZWxsU2l6ZXMoMCxfZSksQy09aiksQmUmJnRoaXMuZGF0YUFjY2Vzc09iamVjdC5ib3R0b21PdmVybGF5LmNsb25lJiYoQy09aj10aGlzLmRhdGFBY2Nlc3NPYmplY3QuYm90dG9tT3ZlcmxheS5zdW1DZWxsU2l6ZXMoTmUtQmUsTmUpKSxJPXkuaG9sZGVyLmNsaWVudEhlaWdo''@;'; + put 'put ''dD09PXkuaG9sZGVyLm9mZnNldEhlaWdodD8wOkJjKHRoaXMuZG9tQmluZGluZ3Mucm9vdERvY3VtZW50KSxuZXcgSENlKHt2aWV3cG9ydFNpemU6QyxzY3JvbGxPZmZzZXQ6dWUsdG90YWxJdGVtczp2LmdldFNldHRpbmcoInRvdGFsUm93cyIpLGl0ZW1TaXplRm46ZnVuY3Rpb24oZHQpe3Jl''@;'; + put 'put ''dHVybiB5LmdldFJvd0hlaWdodChkdCl9LG92ZXJyaWRlRm46di5nZXRTZXR0aW5nUHVyZSgidmlld3BvcnRSb3dDYWxjdWxhdG9yT3ZlcnJpZGUiKSxjYWxjdWxhdGlvblR5cGU6aCxzY3JvbGxiYXJIZWlnaHQ6SX0pfX0se2tleToiY3JlYXRlQ29sdW1uc0NhbGN1bGF0b3IiLHZhbHVlOmZ1''@;'; + put 'put ''bmN0aW9uKCl7dmFyIGg9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOjEsdj10aGlzLnd0U2V0dGluZ3MseT10aGlzLnd0VGFibGUsQz10aGlzLmdldFZpZXdwb3J0V2lkdGgoKSxJPU1hdGguYWJzKHRoaXMuZGF0YUFjY2Vzc09iamVjdC5p''@;'; + put 'put ''bmxpbmVTdGFydFNjcm9sbFBvc2l0aW9uKS10aGlzLmRhdGFBY2Nlc3NPYmplY3QuaW5saW5lU3RhcnRQYXJlbnRPZmZzZXQ7dGhpcy5jb2x1bW5IZWFkZXJIZWlnaHQ9TmFOLEk8MCYmKEk9MCk7dmFyIGo9di5nZXRTZXR0aW5nKCJmaXhlZENvbHVtbnNTdGFydCIpO2lmKGope3ZhciB1ZT10''@;'; + put 'put ''aGlzLmRhdGFBY2Nlc3NPYmplY3QuaW5saW5lU3RhcnRPdmVybGF5LnN1bUNlbGxTaXplcygwLGopO0krPXVlLEMtPXVlfXJldHVybiB5LmhvbGRlci5jbGllbnRXaWR0aCE9PXkuaG9sZGVyLm9mZnNldFdpZHRoJiYoQy09QmModGhpcy5kb21CaW5kaW5ncy5yb290RG9jdW1lbnQpKSxuZXcg''@;'; + put 'put ''SGRlKHt2aWV3cG9ydFNpemU6QyxzY3JvbGxPZmZzZXQ6TWF0aC5hYnMoSSksdG90YWxJdGVtczp2LmdldFNldHRpbmcoInRvdGFsQ29sdW1ucyIpLGl0ZW1TaXplRm46ZnVuY3Rpb24oQmUpe3JldHVybiB5LmdldENvbHVtbldpZHRoKEJlKX0sb3ZlcnJpZGVGbjp2LmdldFNldHRpbmdQdXJl''@;'; + put 'put ''KCJ2aWV3cG9ydENvbHVtbkNhbGN1bGF0b3JPdmVycmlkZSIpLGNhbGN1bGF0aW9uVHlwZTpoLHN0cmV0Y2hNb2RlOnYuZ2V0U2V0dGluZygic3RyZXRjaEgiKSxzdHJldGNoaW5nSXRlbVdpZHRoRm46ZnVuY3Rpb24oQmUsTmUpe3JldHVybiB2LmdldFNldHRpbmcoIm9uQmVmb3JlU3RyZXRj''@;'; + put 'put ''aGluZ0NvbHVtbldpZHRoIixCZSxOZSl9fSl9fSx7a2V5OiJjcmVhdGVSZW5kZXJDYWxjdWxhdG9ycyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXSYmYXJndW1lbnRzWzBdLHY9aDtpZih2KXt2YXIgeT10aGlzLmNyZWF0''@;'; + put 'put ''ZVJvd3NDYWxjdWxhdG9yKDIpLEM9dGhpcy5jcmVhdGVDb2x1bW5zQ2FsY3VsYXRvcigyKTt0aGlzLmFyZUFsbFByb3Bvc2VkVmlzaWJsZVJvd3NBbHJlYWR5UmVuZGVyZWQoeSkmJnRoaXMuYXJlQWxsUHJvcG9zZWRWaXNpYmxlQ29sdW1uc0FscmVhZHlSZW5kZXJlZChDKXx8KHY9ITEpfXJl''@;'; + put 'put ''dHVybiB2fHwodGhpcy5yb3dzUmVuZGVyQ2FsY3VsYXRvcj10aGlzLmNyZWF0ZVJvd3NDYWxjdWxhdG9yKDEpLHRoaXMuY29sdW1uc1JlbmRlckNhbGN1bGF0b3I9dGhpcy5jcmVhdGVDb2x1bW5zQ2FsY3VsYXRvcigxKSksdGhpcy5yb3dzVmlzaWJsZUNhbGN1bGF0b3I9bnVsbCx0aGlzLmNv''@;'; + put 'put ''bHVtbnNWaXNpYmxlQ2FsY3VsYXRvcj1udWxsLHZ9fSx7a2V5OiJjcmVhdGVWaXNpYmxlQ2FsY3VsYXRvcnMiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5yb3dzVmlzaWJsZUNhbGN1bGF0b3I9dGhpcy5jcmVhdGVSb3dzQ2FsY3VsYXRvcigyKSx0aGlzLmNvbHVtbnNWaXNpYmxlQ2FsY3VsYXRv''@;'; + put 'put ''cj10aGlzLmNyZWF0ZUNvbHVtbnNDYWxjdWxhdG9yKDIpfX0se2tleToiYXJlQWxsUHJvcG9zZWRWaXNpYmxlUm93c0FscmVhZHlSZW5kZXJlZCIsdmFsdWU6ZnVuY3Rpb24oaCl7aWYoIXRoaXMucm93c1Zpc2libGVDYWxjdWxhdG9yKXJldHVybiExO3ZhciB2PWguc3RhcnRSb3cseT1oLmVu''@;'; + put 'put ''ZFJvdztpZihudWxsPT09diYmbnVsbD09PXkpcmV0dXJuITE7dmFyIEM9dGhpcy5yb3dzUmVuZGVyQ2FsY3VsYXRvcixJPUMuc3RhcnRSb3csaj1DLmVuZFJvdztyZXR1cm4hKHY8SXx8dj09PUkmJnY+MHx8eT5qfHx5PT09aiYmeTx0aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygidG90YWxS''@;'; + put 'put ''b3dzIiktMSl9fSx7a2V5OiJhcmVBbGxQcm9wb3NlZFZpc2libGVDb2x1bW5zQWxyZWFkeVJlbmRlcmVkIix2YWx1ZTpmdW5jdGlvbihoKXtpZighdGhpcy5jb2x1bW5zVmlzaWJsZUNhbGN1bGF0b3IpcmV0dXJuITE7dmFyIHY9aC5zdGFydENvbHVtbix5PWguZW5kQ29sdW1uO2lmKG51bGw9''@;'; + put 'put ''PT12JiZudWxsPT09eSlyZXR1cm4hMTt2YXIgQz10aGlzLmNvbHVtbnNSZW5kZXJDYWxjdWxhdG9yLEk9Qy5zdGFydENvbHVtbixqPUMuZW5kQ29sdW1uO3JldHVybiEodjxJfHx2PT09SSYmdj4wfHx5Pmp8fHk9PT1qJiZ5PHRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJ0b3RhbENvbHVt''@;'; + put 'put ''bnMiKS0xKX19LHtrZXk6InJlc2V0SGFzT3ZlcnNpemVkQ29sdW1uSGVhZGVyc01hcmtlZCIsdmFsdWU6ZnVuY3Rpb24oKXtHbCh0aGlzLmhhc092ZXJzaXplZENvbHVtbkhlYWRlcnNNYXJrZWQsZnVuY3Rpb24oaCx2LHkpe3lbdl09dm9pZCAwfSl9fV0pLGR9KCk7Y29uc3QgZlFlPWNRZTtm''@;'; + put 'put ''dW5jdGlvbiBOZGUoZCl7cmV0dXJuKE5kZT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihnKXtyZXR1cm4gdHlwZW9mIGd9OmZ1bmN0aW9uKGcpe3JldHVybiBnJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZn''@;'; + put 'put ''LmNvbnN0cnVjdG9yPT09U3ltYm9sJiZnIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgZ30pKGQpfWZ1bmN0aW9uIGpDZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJh''@;'; + put 'put ''YmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fWZ1bmN0aW9uIFZkZShkLGcpe3JldHVybihWZGU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24odix5KXty''@;'; + put 'put ''ZXR1cm4gdi5fX3Byb3RvX189eSx2fSkoZCxnKX1mdW5jdGlvbiBtUWUoZCxnKXtpZihnJiYoIm9iamVjdCI9PT1OZGUoZyl8fCJmdW5jdGlvbiI9PXR5cGVvZiBnKSlyZXR1cm4gZztpZih2b2lkIDAhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIkRlcml2ZWQgY29uc3RydWN0b3JzIG1heSBv''@;'; + put 'put ''bmx5IHJldHVybiBvYmplY3Qgb3IgdW5kZWZpbmVkIik7cmV0dXJuIGpkZShkKX1mdW5jdGlvbiBqZGUoZCl7aWYodm9pZCAwPT09ZCl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3Jl''@;'; + put 'put ''dHVybiBkfWZ1bmN0aW9uIGplZShkKXtyZXR1cm4oamVlPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3QuZ2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKGgpe3JldHVybiBoLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKGgpfSkoZCl9dmFyIEFRZT1mdW5jdGlvbihk''@;'; + put 'put ''KXshZnVuY3Rpb24gcFFlKGQsZyl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGcmJm51bGwhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uIik7ZC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShnJiZnLnByb3Rv''@;'; + put 'put ''dHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOmQsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGcmJlZkZShkLGcpfShoLGQpO3ZhciBnPWZ1bmN0aW9uIGdRZShkKXt2YXIgZz1mdW5jdGlvbiB2''@;'; + put 'put ''UWUoKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIFJlZmxlY3R8fCFSZWZsZWN0LmNvbnN0cnVjdHx8UmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT10eXBlb2YgUHJveHkpcmV0dXJuITA7dHJ5e3JldHVybiBCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNh''@;'; + put 'put ''bGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSxmdW5jdGlvbigpe30pKSwhMH1jYXRjaChkKXtyZXR1cm4hMX19KCk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHksdj1qZWUoZCk7aWYoZyl7dmFyIEM9amVlKHRoaXMpLmNvbnN0cnVjdG9yO3k9UmVmbGVjdC5jb25zdHJ1Y3Qodixhcmd1''@;'; + put 'put ''bWVudHMsQyl9ZWxzZSB5PXYuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBtUWUodGhpcyx5KX19KGgpO2Z1bmN0aW9uIGgodix5KXt2YXIgQzshZnVuY3Rpb24gaFFlKGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFz''@;'; + put 'put ''cyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsaCk7dmFyIEk9KEM9Zy5jYWxsKHRoaXMsdixuZXcgVVVlKHkpKSkud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJmYWNhZGUiLGpkZShDKSk7cmV0dXJuIEMud3RUYWJsZT1uZXcgdFFlKEMuZ2V0VGFibGVEYW8oKSxJLEMuZG9tQmluZGluZ3MsQy53dFNl''@;'; + put 'put ''dHRpbmdzKSxDLnd0Vmlld3BvcnQ9bmV3IGZRZShDLmdldFZpZXdwb3J0RGFvKCksQy5kb21CaW5kaW5ncyxDLnd0U2V0dGluZ3MsQy5ldmVudE1hbmFnZXIsQy53dFRhYmxlKSxDLnNlbGVjdGlvbnM9Qy53dFNldHRpbmdzLmdldFNldHRpbmcoInNlbGVjdGlvbnMiKSxDLnd0RXZlbnQ9bmV3''@;'; + put 'put ''IGtfZShJLEMuZG9tQmluZGluZ3MsQy53dFNldHRpbmdzLEMuZXZlbnRNYW5hZ2VyLEMud3RUYWJsZSxDLnNlbGVjdGlvbnMpLEMud3RPdmVybGF5cz1uZXcgR1VlKGpkZShDKSxJLEMuZG9tQmluZGluZ3MsQy53dFNldHRpbmdzLEMuZXZlbnRNYW5hZ2VyLEMud3RUYWJsZSksQy5leHBvcnRT''@;'; + put 'put ''ZXR0aW5nc0FzQ2xhc3NOYW1lcygpLEMuZmluZE9yaWdpbmFsSGVhZGVycygpLEN9cmV0dXJuIGZ1bmN0aW9uIGRRZShkLGcsaCl7ZyYmakNlKGQucHJvdG90eXBlLGcpLGgmJmpDZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShoLFt7''@;'; + put 'put ''a2V5OiJleHBvcnRTZXR0aW5nc0FzQ2xhc3NOYW1lcyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzLEk9W10saj1bXTtHbCh7cm93SGVhZGVyczoiaHRSb3dIZWFkZXJzIixjb2x1bW5IZWFkZXJzOiJodENvbHVtbkhlYWRlcnMifSxmdW5jdGlvbih1ZSxfZSl7eS53dFNldHRpbmdzLmdl''@;'; + put 'put ''dFNldHRpbmcoX2UpLmxlbmd0aCYmai5wdXNoKHVlKSxJLnB1c2godWUpfSkscGwodGhpcy53dFRhYmxlLnd0Um9vdEVsZW1lbnQucGFyZW50Tm9kZSxJKSxPMCh0aGlzLnd0VGFibGUud3RSb290RWxlbWVudC5wYXJlbnROb2RlLGopfX0se2tleToiZ2V0Vmlld3BvcnREYW8iLHZhbHVlOmZ1''@;'; + put 'put ''bmN0aW9uKCl7dmFyIHk9dGhpcztyZXR1cm57Z2V0IHdvdCgpe3JldHVybiB5fSxnZXQgdG9wT3ZlcmxheVRyaW1taW5nQ29udGFpbmVyKCl7cmV0dXJuIHkud3RPdmVybGF5cy50b3BPdmVybGF5LnRyaW1taW5nQ29udGFpbmVyfSxnZXQgaW5saW5lU3RhcnRPdmVybGF5VHJpbW1pbmdDb250''@;'; + put 'put ''YWluZXIoKXtyZXR1cm4geS53dE92ZXJsYXlzLmlubGluZVN0YXJ0T3ZlcmxheS50cmltbWluZ0NvbnRhaW5lcn0sZ2V0IHRvcFNjcm9sbFBvc2l0aW9uKCl7cmV0dXJuIHkud3RPdmVybGF5cy50b3BPdmVybGF5LmdldFNjcm9sbFBvc2l0aW9uKCl9LGdldCB0b3BQYXJlbnRPZmZzZXQoKXty''@;'; + put 'put ''ZXR1cm4geS53dE92ZXJsYXlzLnRvcE92ZXJsYXkuZ2V0VGFibGVQYXJlbnRPZmZzZXQoKX0sZ2V0IGlubGluZVN0YXJ0U2Nyb2xsUG9zaXRpb24oKXtyZXR1cm4geS53dE92ZXJsYXlzLmlubGluZVN0YXJ0T3ZlcmxheS5nZXRTY3JvbGxQb3NpdGlvbigpfSxnZXQgaW5saW5lU3RhcnRQYXJl''@;'; + put 'put ''bnRPZmZzZXQoKXtyZXR1cm4geS53dE92ZXJsYXlzLmlubGluZVN0YXJ0T3ZlcmxheS5nZXRUYWJsZVBhcmVudE9mZnNldCgpfSxnZXQgdG9wT3ZlcmxheSgpe3JldHVybiB5Lnd0T3ZlcmxheXMudG9wT3ZlcmxheX0sZ2V0IGlubGluZVN0YXJ0T3ZlcmxheSgpe3JldHVybiB5Lnd0T3Zlcmxh''@;'; + put 'put ''eXMuaW5saW5lU3RhcnRPdmVybGF5fSxnZXQgYm90dG9tT3ZlcmxheSgpe3JldHVybiB5Lnd0T3ZlcmxheXMuYm90dG9tT3ZlcmxheX19fX1dKSxofShoZGUpO2Z1bmN0aW9uIFpDZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVu''@;'; + put 'put ''dW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fXZhciBiUWU9ZnVuY3Rpb24oKXtmdW5jdGlvbiBkKGcpeyhmdW5jdGlvbiB5UWUoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBn''@;'; + put 'put ''KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0pKHRoaXMsZCksZyBpbnN0YW5jZW9mIGhkZT90aGlzLl93b3Q9Zzp0aGlzLl9pbml0RnJvbVNldHRpbmdzKGcpfXJldHVybiBmdW5jdGlvbiB3UWUoZCxnLGgpe2cmJlpDZShkLnByb3Rv''@;'; + put 'put ''dHlwZSxnKSxoJiZaQ2UoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oZCxbe2tleToiX2luaXRGcm9tU2V0dGluZ3MiLHZhbHVlOmZ1bmN0aW9uKGgpe2guZmFjYWRlPWZ1bmN0aW9uKHYpe3ZhciB5PW5ldyBkKHYpO3JldHVybiBmdW5j''@;'; + put 'put ''dGlvbigpe3JldHVybiB5fX0sdGhpcy5fd290PW5ldyBBUWUoaC50YWJsZSxoKX19LHtrZXk6Imd1aWQiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl93b3QuZ3VpZH19LHtrZXk6InJvb3REb2N1bWVudCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3dvdC5kb21CaW5kaW5ncy5y''@;'; + put 'put ''b290RG9jdW1lbnR9fSx7a2V5OiJyb290V2luZG93IixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fd290LmRvbUJpbmRpbmdzLnJvb3RXaW5kb3d9fSx7a2V5OiJ3dFNldHRpbmdzIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fd290Lnd0U2V0dGluZ3N9fSx7a2V5OiJjbG9uZVNv''@;'; + put 'put ''dXJjZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3dvdC5jbG9uZVNvdXJjZX19LHtrZXk6ImNsb25lT3ZlcmxheSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3dvdC5jbG9uZU92ZXJsYXl9fSx7a2V5OiJzZWxlY3Rpb25zIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5f''@;'; + put 'put ''d290LnNlbGVjdGlvbnN9fSx7a2V5OiJ3dFZpZXdwb3J0IixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fd290Lnd0Vmlld3BvcnR9fSx7a2V5OiJ3dE92ZXJsYXlzIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fd290Lnd0T3ZlcmxheXN9fSx7a2V5OiJ3dFRhYmxlIixnZXQ6ZnVu''@;'; + put 'put ''Y3Rpb24oKXtyZXR1cm4gdGhpcy5fd290Lnd0VGFibGV9fSx7a2V5OiJ3dEV2ZW50IixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fd290Lnd0RXZlbnR9fSx7a2V5OiJ3dFNjcm9sbCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3dvdC53dFNjcm9sbH19LHtrZXk6ImRyYXduIixn''@;'; + put 'put ''ZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fd290LmRyYXdufSxzZXQ6ZnVuY3Rpb24oaCl7dGhpcy5fd290LmRyYXduPWh9fSx7a2V5OiJkcmF3SW50ZXJydXB0ZWQiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl93b3QuZHJhd0ludGVycnVwdGVkfSxzZXQ6ZnVuY3Rpb24oaCl7dGhp''@;'; + put 'put ''cy5fd290LmRyYXdJbnRlcnJ1cHRlZD1ofX0se2tleToibGFzdE1vdXNlT3ZlciIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3dvdC5sYXN0TW91c2VPdmVyfSxzZXQ6ZnVuY3Rpb24oaCl7dGhpcy5fd290Lmxhc3RNb3VzZU92ZXI9aH19LHtrZXk6Im1vbWVudHVtU2Nyb2xsaW5nIixn''@;'; + put 'put ''ZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fd290Lm1vbWVudHVtU2Nyb2xsaW5nfSxzZXQ6ZnVuY3Rpb24oaCl7dGhpcy5fd290Lm1vbWVudHVtU2Nyb2xsaW5nPWh9fSx7a2V5OiJ0b3VjaEFwcGxpZWQiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl93b3QudG91Y2hBcHBsaWVkfSxz''@;'; + put 'put ''ZXQ6ZnVuY3Rpb24oaCl7dGhpcy5fd290LnRvdWNoQXBwbGllZD1ofX0se2tleToiZG9tQmluZGluZ3MiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl93b3QuZG9tQmluZGluZ3N9fSx7a2V5OiJldmVudExpc3RlbmVycyIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3dvdC5ldmVu''@;'; + put 'put ''dExpc3RlbmVyc30sc2V0OmZ1bmN0aW9uKGgpe3RoaXMuX3dvdC5ldmVudExpc3RlbmVycz1ofX0se2tleToiZXZlbnRNYW5hZ2VyIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fd290LmV2ZW50TWFuYWdlcn19LHtrZXk6ImNyZWF0ZUNlbGxDb29yZHMiLHZhbHVlOmZ1bmN0aW9uKGgs''@;'; + put 'put ''dil7cmV0dXJuIHRoaXMuX3dvdC5jcmVhdGVDZWxsQ29vcmRzKGgsdil9fSx7a2V5OiJjcmVhdGVDZWxsUmFuZ2UiLHZhbHVlOmZ1bmN0aW9uKGgsdix5KXtyZXR1cm4gdGhpcy5fd290LmNyZWF0ZUNlbGxSYW5nZShoLHYseSl9fSx7a2V5OiJkcmF3Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciBo''@;'; + put 'put ''PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdJiZhcmd1bWVudHNbMF07cmV0dXJuIHRoaXMuX3dvdC5kcmF3KGgpLHRoaXN9fSx7a2V5OiJnZXRDZWxsIix2YWx1ZTpmdW5jdGlvbihoKXt2YXIgdj1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50''@;'; + put 'put ''c1sxXSYmYXJndW1lbnRzWzFdO3JldHVybiB0aGlzLl93b3QuZ2V0Q2VsbChoLHYpfX0se2tleToic2Nyb2xsVmlld3BvcnQiLHZhbHVlOmZ1bmN0aW9uKGgsdix5LEMsSSl7cmV0dXJuIHRoaXMuX3dvdC5zY3JvbGxWaWV3cG9ydChoLHYseSxDLEkpfX0se2tleToic2Nyb2xsVmlld3BvcnRI''@;'; + put 'put ''b3Jpem9udGFsbHkiLHZhbHVlOmZ1bmN0aW9uKGgsdix5KXtyZXR1cm4gdGhpcy5fd290LnNjcm9sbFZpZXdwb3J0SG9yaXpvbnRhbGx5KGgsdix5KX19LHtrZXk6InNjcm9sbFZpZXdwb3J0VmVydGljYWxseSIsdmFsdWU6ZnVuY3Rpb24oaCx2LHkpe3JldHVybiB0aGlzLl93b3Quc2Nyb2xs''@;'; + put 'put ''Vmlld3BvcnRWZXJ0aWNhbGx5KGgsdix5KX19LHtrZXk6ImdldFZpZXdwb3J0Iix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLl93b3QuZ2V0Vmlld3BvcnQoKX19LHtrZXk6ImdldE92ZXJsYXlOYW1lIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLl93b3QuY2xvbmVPdmVybGF5''@;'; + put 'put ''P3RoaXMuX3dvdC5jbG9uZU92ZXJsYXkudHlwZToibWFzdGVyIn19LHtrZXk6ImV4cG9ydFNldHRpbmdzQXNDbGFzc05hbWVzIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLl93b3QuZXhwb3J0U2V0dGluZ3NBc0NsYXNzTmFtZXMoKX19LHtrZXk6InVwZGF0ZSIsdmFsdWU6ZnVuY3Rp''@;'; + put 'put ''b24oaCx2KXtyZXR1cm4gdGhpcy5fd290Lnd0U2V0dGluZ3MudXBkYXRlKGgsdiksdGhpc319LHtrZXk6ImdldFNldHRpbmciLHZhbHVlOmZ1bmN0aW9uKGgsdix5LEMsSSl7cmV0dXJuIHRoaXMuX3dvdC53dFNldHRpbmdzLmdldFNldHRpbmcoaCx2LHksQyxJKX19LHtrZXk6Imhhc1NldHRp''@;'; + put 'put ''bmciLHZhbHVlOmZ1bmN0aW9uKGgpe3JldHVybiB0aGlzLl93b3Qud3RTZXR0aW5ncy5oYXNTZXR0aW5nKGgpfX0se2tleToiZGVzdHJveSIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLl93b3QuZGVzdHJveSgpfX1dKSxkfSgpO2Z1bmN0aW9uIHpDZShkKXt2YXIgZz1kLmlzU2hpZnRLZXksaD1k''@;'; + put 'put ''LmlzTGVmdENsaWNrLHY9ZC5pc1JpZ2h0Q2xpY2sseT1kLmNvb3JkcyxDPWQuc2VsZWN0aW9uLEk9ZC5jb250cm9sbGVyLGo9ZC5jZWxsQ29vcmRzRmFjdG9yeSx1ZT1DLmlzU2VsZWN0ZWQoKT9DLmdldFNlbGVjdGVkUmFuZ2UoKS5jdXJyZW50KCk6bnVsbCxfZT1DLmlzU2VsZWN0ZWRCeUNv''@;'; + put 'put ''cm5lcigpLEJlPUMuaXNTZWxlY3RlZEJ5Um93SGVhZGVyKCk7aWYoZyYmdWUpeS5yb3c+PTAmJnkuY29sPj0wJiYhSS5jZWxsP0Muc2V0UmFuZ2VFbmQoeSk6KF9lfHxCZSkmJnkucm93Pj0wJiZ5LmNvbD49MCYmIUkuY2VsbD9DLnNldFJhbmdlRW5kKGooeS5yb3cseS5jb2wpKTpfZSYmeS5y''@;'; + put 'put ''b3c8MCYmIUkuY29sdW1uP0Muc2V0UmFuZ2VFbmQoaih1ZS50by5yb3cseS5jb2wpKTpCZSYmeS5jb2w8MCYmIUkucm93P0Muc2V0UmFuZ2VFbmQoaih5LnJvdyx1ZS50by5jb2wpKTooIV9lJiYhQmUmJnkuY29sPDB8fF9lJiZ5LmNvbDwwKSYmIUkucm93P0Muc2VsZWN0Um93cyhNYXRoLm1h''@;'; + put 'put ''eCh1ZS5mcm9tLnJvdywwKSx5LnJvdyx5LmNvbCk6KCFfZSYmIUJlJiZ5LnJvdzwwfHxCZSYmeS5yb3c8MCkmJiFJLmNvbHVtbiYmQy5zZWxlY3RDb2x1bW5zKE1hdGgubWF4KHVlLmZyb20uY29sLDApLHkuY29sLHkucm93KTtlbHNle3ZhciBOZT0hQy5pbkluU2VsZWN0aW9uKHkpLEtlPWh8''@;'; + put 'put ''fHYmJk5lO3kucm93PDAmJnkuY29sPj0wJiYhSS5jb2x1bW4/S2UmJkMuc2VsZWN0Q29sdW1ucyh5LmNvbCx5LmNvbCx5LnJvdyk6eS5jb2w8MCYmeS5yb3c+PTAmJiFJLnJvdz9LZSYmQy5zZWxlY3RSb3dzKHkucm93LHkucm93LHkuY29sKTp5LmNvbD49MCYmeS5yb3c+PTAmJiFJLmNlbGw/''@;'; + put 'put ''S2UmJkMuc2V0UmFuZ2VTdGFydCh5KTp5LmNvbDwwJiZ5LnJvdzwwJiZDLnNlbGVjdEFsbCghMCwhMCl9fXZhciBDUWU9bmV3IE1hcChbWyJtb3VzZWRvd24iLHpDZV0sWyJtb3VzZW92ZXIiLGZ1bmN0aW9uIF9RZShkKXt2YXIgaD1kLmNvb3Jkcyx2PWQuc2VsZWN0aW9uLHk9ZC5jb250cm9s''@;'; + put 'put ''bGVyLEM9ZC5jZWxsQ29vcmRzRmFjdG9yeTtpZihkLmlzTGVmdENsaWNrKXt2YXIgST12LmlzU2VsZWN0ZWRCeVJvd0hlYWRlcigpLGo9di5pc1NlbGVjdGVkQnlDb2x1bW5IZWFkZXIoKSx1ZT12LnRhYmxlUHJvcHMuY291bnRDb2xzKCksX2U9di50YWJsZVByb3BzLmNvdW50Um93cygpO2om''@;'; + put 'put ''JiF5LmNvbHVtbj92LnNldFJhbmdlRW5kKEMoX2UtMSxoLmNvbCkpOkkmJiF5LnJvdz92LnNldFJhbmdlRW5kKEMoaC5yb3csdWUtMSkpOnkuY2VsbHx8di5zZXRSYW5nZUVuZChoKX19XSxbInRvdWNoc3RhcnQiLHpDZV1dKTtmdW5jdGlvbiBHQ2UoZCxnKXt2YXIgaD1nLmNvb3Jkcyx2PWcu''@;'; + put 'put ''c2VsZWN0aW9uLHk9Zy5jb250cm9sbGVyLEM9Zy5jZWxsQ29vcmRzRmFjdG9yeTtDUWUuZ2V0KGQudHlwZSkoe2Nvb3JkczpoLHNlbGVjdGlvbjp2LGNvbnRyb2xsZXI6eSxjZWxsQ29vcmRzRmFjdG9yeTpDLGlzU2hpZnRLZXk6ZC5zaGlmdEtleSxpc0xlZnRDbGljazpvZWUoZCl8fCJ0b3Vj''@;'; + put 'put ''aHN0YXJ0Ij09PWQudHlwZSxpc1JpZ2h0Q2xpY2s6RXcoZCl9KX12YXIgV0NlPW5ldyBXZWFrTWFwLFpkZT1TeW1ib2woInJvb3RJbnN0YW5jZSIpO2Z1bmN0aW9uIGtRZShkKXtXQ2Uuc2V0KGQsITApfWZ1bmN0aW9uIFNRZShkKXtyZXR1cm4gZD09PVpkZX1mdW5jdGlvbiB6ZGUoZCl7cmV0''@;'; + put 'put ''dXJuIFdDZS5oYXMoZCl9ZnVuY3Rpb24gS1ooZCxnKXtyZXR1cm4gZnVuY3Rpb24geFFlKGQpe2lmKEFycmF5LmlzQXJyYXkoZCkpcmV0dXJuIGR9KGQpfHxmdW5jdGlvbiBFUWUoZCxnKXt2YXIgaD1udWxsPT1kP251bGw6InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJmRbU3ltYm9sLml0''@;'; + put 'put ''ZXJhdG9yXXx8ZFsiQEBpdGVyYXRvciJdO2lmKG51bGwhPWgpe3ZhciBJLGosdj1bXSx5PSEwLEM9ITE7dHJ5e2ZvcihoPWguY2FsbChkKTshKHk9KEk9aC5uZXh0KCkpLmRvbmUpJiYodi5wdXNoKEkudmFsdWUpLCFnfHx2Lmxlbmd0aCE9PWcpO3k9ITApO31jYXRjaCh1ZSl7Qz0hMCxqPXVl''@;'; + put 'put ''fWZpbmFsbHl7dHJ5eyF5JiZudWxsIT1oLnJldHVybiYmaC5yZXR1cm4oKX1maW5hbGx5e2lmKEMpdGhyb3cgan19cmV0dXJuIHZ9fShkLGcpfHxVQ2UoZCxnKXx8ZnVuY3Rpb24gTVFlKCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1p''@;'; + put 'put ''dGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX1mdW5jdGlvbiBZQ2UoZCl7cmV0dXJuIGZ1bmN0aW9uIERRZShkKXtpZihBcnJheS5pc0FycmF5KGQp''@;'; + put 'put ''KXJldHVybiBHZGUoZCl9KGQpfHxmdW5jdGlvbiBJUWUoZCl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJm51bGwhPWRbU3ltYm9sLml0ZXJhdG9yXXx8bnVsbCE9ZFsiQEBpdGVyYXRvciJdKXJldHVybiBBcnJheS5mcm9tKGQpfShkKXx8VUNlKGQpfHxmdW5jdGlvbiBUUWUoKXt0''@;'; + put 'put ''aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gc3ByZWFkIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX1mdW5jdGlv''@;'; + put 'put ''biBVQ2UoZCxnKXtpZihkKXtpZigic3RyaW5nIj09dHlwZW9mIGQpcmV0dXJuIEdkZShkLGcpO3ZhciBoPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChkKS5zbGljZSg4LC0xKTtpZigiT2JqZWN0Ij09PWgmJmQuY29uc3RydWN0b3ImJihoPWQuY29uc3RydWN0b3IubmFtZSksIk1h''@;'; + put 'put ''cCI9PT1ofHwiU2V0Ij09PWgpcmV0dXJuIEFycmF5LmZyb20oZCk7aWYoIkFyZ3VtZW50cyI9PT1ofHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChoKSlyZXR1cm4gR2RlKGQsZyl9fWZ1bmN0aW9uIEdkZShkLGcpeyhudWxsPT1nfHxnPmQubGVuZ3Ro''@;'; + put 'put ''KSYmKGc9ZC5sZW5ndGgpO2Zvcih2YXIgaD0wLHY9bmV3IEFycmF5KGcpO2g8ZztoKyspdltoXT1kW2hdO3JldHVybiB2fWZ1bmN0aW9uIFFDZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmln''@;'; + put 'put ''dXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fXZhciBPUz1uZXcgV2Vha01hcCxSUWU9ZnVuY3Rpb24oKXtmdW5jdGlvbiBkKGcpeyhmdW5jdGlvbiBMUWUoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJv''@;'; + put 'put ''dyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0pKHRoaXMsZCksdGhpcy5pbnN0YW5jZT1nLHRoaXMuZXZlbnRNYW5hZ2VyPW5ldyBMMShnKSx0aGlzLnNldHRpbmdzPWcuZ2V0U2V0dGluZ3MoKSx0aGlzLlRIRUFEPXZvaWQgMCx0aGlzLlRCT0RZ''@;'; + put 'put ''PXZvaWQgMCx0aGlzLl93dD12b2lkIDAsdGhpcy5hY3RpdmVXdD12b2lkIDAsdGhpcy5wb3N0cG9uZWRBZGp1c3RFbGVtZW50c1NpemU9ITEsT1Muc2V0KHRoaXMse3NlbGVjdGlvbk1vdXNlRG93bjohMSxtb3VzZURvd246dm9pZCAwLHRhYmxlOnZvaWQgMCxsYXN0V2lkdGg6MCxsYXN0SGVp''@;'; + put 'put ''Z2h0OjB9KSx0aGlzLmNyZWF0ZUVsZW1lbnRzKCksdGhpcy5yZWdpc3RlckV2ZW50cygpLHRoaXMuaW5pdGlhbGl6ZVdhbGtvbnRhYmxlKCl9cmV0dXJuIGZ1bmN0aW9uIE9RZShkLGcsaCl7ZyYmUUNlKGQucHJvdG90eXBlLGcpLGgmJlFDZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShk''@;'; + put 'put ''LCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShkLFt7a2V5OiJyZW5kZXIiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5pbnN0YW5jZS5pc1JlbmRlclN1c3BlbmRlZCgpfHwodGhpcy5pbnN0YW5jZS5ydW5Ib29rcygiYmVmb3JlUmVuZGVyIix0aGlzLmluc3RhbmNlLmZvcmNlRnVsbFJlbmRl''@;'; + put 'put ''ciksdGhpcy5wb3N0cG9uZWRBZGp1c3RFbGVtZW50c1NpemUmJih0aGlzLnBvc3Rwb25lZEFkanVzdEVsZW1lbnRzU2l6ZT0hMSx0aGlzLmFkanVzdEVsZW1lbnRzU2l6ZSghMCkpLHRoaXMuX3d0LmRyYXcoIXRoaXMuaW5zdGFuY2UuZm9yY2VGdWxsUmVuZGVyKSx0aGlzLmluc3RhbmNlLnJ1''@;'; + put 'put ''bkhvb2tzKCJhZnRlclJlbmRlciIsdGhpcy5pbnN0YW5jZS5mb3JjZUZ1bGxSZW5kZXIpLHRoaXMuaW5zdGFuY2UuZm9yY2VGdWxsUmVuZGVyPSExLHRoaXMuaW5zdGFuY2UucmVuZGVyQ2FsbD0hMSl9fSx7a2V5OiJhZGp1c3RFbGVtZW50c1NpemUiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9''@;'; + put 'put ''YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0mJmFyZ3VtZW50c1swXTt0aGlzLmluc3RhbmNlLmlzUmVuZGVyU3VzcGVuZGVkKCk/dGhpcy5wb3N0cG9uZWRBZGp1c3RFbGVtZW50c1NpemU9ITA6dGhpcy5fd3Qud3RPdmVybGF5cy5hZGp1c3RFbGVtZW50c1NpemUo''@;'; + put 'put ''aCl9fSx7a2V5OiJnZXRDZWxsQXRDb29yZHMiLHZhbHVlOmZ1bmN0aW9uKGgsdil7dmFyIHk9dGhpcy5fd3QuZ2V0Q2VsbChoLHYpO3JldHVybiB5PDA/bnVsbDp5fX0se2tleToic2Nyb2xsVmlld3BvcnQiLHZhbHVlOmZ1bmN0aW9uKGgsdix5LEMsSSl7cmV0dXJuIHRoaXMuX3d0LnNjcm9s''@;'; + put 'put ''bFZpZXdwb3J0KGgsdix5LEMsSSl9fSx7a2V5OiJzY3JvbGxWaWV3cG9ydEhvcml6b250YWxseSIsdmFsdWU6ZnVuY3Rpb24oaCx2LHkpe3JldHVybiB0aGlzLl93dC5zY3JvbGxWaWV3cG9ydEhvcml6b250YWxseShoLHYseSl9fSx7a2V5OiJzY3JvbGxWaWV3cG9ydFZlcnRpY2FsbHkiLHZh''@;'; + put 'put ''bHVlOmZ1bmN0aW9uKGgsdix5KXtyZXR1cm4gdGhpcy5fd3Quc2Nyb2xsVmlld3BvcnRWZXJ0aWNhbGx5KGgsdix5KX19LHtrZXk6ImNyZWF0ZUVsZW1lbnRzIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBoPU9TLmdldCh0aGlzKSx2PXRoaXMuaW5zdGFuY2UseT12LnJvb3RFbGVtZW50LEM9di5y''@;'; + put 'put ''b290RG9jdW1lbnQsST15LmdldEF0dHJpYnV0ZSgic3R5bGUiKTtJJiZ5LnNldEF0dHJpYnV0ZSgiZGF0YS1vcmlnaW5hbHN0eWxlIixJKSxPMCh5LCJoYW5kc29udGFibGUiKSxoLnRhYmxlPUMuY3JlYXRlRWxlbWVudCgiVEFCTEUiKSxPMChoLnRhYmxlLCJodENvcmUiKSx0aGlzLmluc3Rh''@;'; + put 'put ''bmNlLmdldFNldHRpbmdzKCkudGFibGVDbGFzc05hbWUmJk8wKGgudGFibGUsdGhpcy5pbnN0YW5jZS5nZXRTZXR0aW5ncygpLnRhYmxlQ2xhc3NOYW1lKSx0aGlzLlRIRUFEPUMuY3JlYXRlRWxlbWVudCgiVEhFQUQiKSxoLnRhYmxlLmFwcGVuZENoaWxkKHRoaXMuVEhFQUQpLHRoaXMuVEJP''@;'; + put 'put ''RFk9Qy5jcmVhdGVFbGVtZW50KCJUQk9EWSIpLGgudGFibGUuYXBwZW5kQ2hpbGQodGhpcy5UQk9EWSksdGhpcy5pbnN0YW5jZS50YWJsZT1oLnRhYmxlLHRoaXMuaW5zdGFuY2UuY29udGFpbmVyLmluc2VydEJlZm9yZShoLnRhYmxlLHRoaXMuaW5zdGFuY2UuY29udGFpbmVyLmZpcnN0Q2hp''@;'; + put 'put ''bGQpfX0se2tleToicmVnaXN0ZXJFdmVudHMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9dGhpcyx2PU9TLmdldCh0aGlzKSx5PXRoaXMuaW5zdGFuY2UsQz15LnJvb3RFbGVtZW50LEk9eS5yb290RG9jdW1lbnQsaj15LnNlbGVjdGlvbix1ZT1JLmRvY3VtZW50RWxlbWVudDt0aGlzLmV2ZW50''@;'; + put 'put ''TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKEMsIm1vdXNlZG93biIsZnVuY3Rpb24oX2Upe2lmKHYuc2VsZWN0aW9uTW91c2VEb3duPSEwLCFoLmlzVGV4dFNlbGVjdGlvbkFsbG93ZWQoX2UudGFyZ2V0KSl7dmFyIEJlPWguaW5zdGFuY2Uucm9vdFdpbmRvdztnM2UoQmUpLF9lLnByZXZlbnRE''@;'; + put 'put ''ZWZhdWx0KCksQmUuZm9jdXMoKX19KSx0aGlzLmV2ZW50TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKEMsIm1vdXNldXAiLGZ1bmN0aW9uKCl7di5zZWxlY3Rpb25Nb3VzZURvd249ITF9KSx0aGlzLmV2ZW50TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKEMsIm1vdXNlbW92ZSIsZnVuY3Rpb24o''@;'; + put 'put ''X2Upe3Yuc2VsZWN0aW9uTW91c2VEb3duJiYhaC5pc1RleHRTZWxlY3Rpb25BbGxvd2VkKF9lLnRhcmdldCkmJihoLnNldHRpbmdzLmZyYWdtZW50U2VsZWN0aW9uJiZnM2UoaC5pbnN0YW5jZS5yb290V2luZG93KSxfZS5wcmV2ZW50RGVmYXVsdCgpKX0pLHRoaXMuZXZlbnRNYW5hZ2VyLmFk''@;'; + put 'put ''ZEV2ZW50TGlzdGVuZXIodWUsImtleXVwIixmdW5jdGlvbihfZSl7ai5pc0luUHJvZ3Jlc3MoKSYmIV9lLnNoaWZ0S2V5JiZqLmZpbmlzaCgpfSksdGhpcy5ldmVudE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcih1ZSwibW91c2V1cCIsZnVuY3Rpb24oX2Upe2ouaXNJblByb2dyZXNzKCkmJm9l''@;'; + put 'put ''ZShfZSkmJmouZmluaXNoKCksdi5tb3VzZURvd249ITEsKHYzZShJLmFjdGl2ZUVsZW1lbnQpfHwhai5pc1NlbGVjdGVkKCkmJiFqLmlzU2VsZWN0ZWRCeUFueUhlYWRlcigpJiYhQy5jb250YWlucyhfZS50YXJnZXQpJiYhRXcoX2UpKSYmaC5pbnN0YW5jZS51bmxpc3RlbigpfSksdGhpcy5l''@;'; + put 'put ''dmVudE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcih1ZSwiY29udGV4dG1lbnUiLGZ1bmN0aW9uKF9lKXtqLmlzSW5Qcm9ncmVzcygpJiZFdyhfZSkmJihqLmZpbmlzaCgpLHYubW91c2VEb3duPSExKX0pLHRoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIodWUsInRvdWNoZW5kIixm''@;'; + put 'put ''dW5jdGlvbigpe2ouaXNJblByb2dyZXNzKCkmJmouZmluaXNoKCksdi5tb3VzZURvd249ITF9KSx0aGlzLmV2ZW50TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKHVlLCJtb3VzZWRvd24iLGZ1bmN0aW9uKF9lKXt2YXIgQmU9X2UudGFyZ2V0LE5lPV9lLnh8fF9lLmNsaWVudFgsS2U9X2UueXx8''@;'; + put 'put ''X2UuY2xpZW50WSxkdD1fZS50YXJnZXQ7aWYoIXYubW91c2VEb3duJiZDJiZoLmluc3RhbmNlLnZpZXcpe3ZhciBPdD1oLmluc3RhbmNlLnZpZXcuX3d0Lnd0VGFibGUuaG9sZGVyO2lmKGR0PT09T3Qpe3ZhciAkdD1CYyhJKTtpZihJLmVsZW1lbnRGcm9tUG9pbnQoTmUrJHQsS2UpIT09T3R8''@;'; + put 'put ''fEkuZWxlbWVudEZyb21Qb2ludChOZSxLZSskdCkhPT1PdClyZXR1cm59ZWxzZSBmb3IoO2R0IT09dWU7KXtpZihudWxsPT09ZHQpe2lmKF9lLmlzVGFyZ2V0V2ViQ29tcG9uZW50KWJyZWFrO3JldHVybn1pZihkdD09PUMpcmV0dXJuO2R0PWR0LnBhcmVudE5vZGV9KCJmdW5jdGlvbiI9PXR5''@;'; + put 'put ''cGVvZiBoLnNldHRpbmdzLm91dHNpZGVDbGlja0Rlc2VsZWN0cz9oLnNldHRpbmdzLm91dHNpZGVDbGlja0Rlc2VsZWN0cyhCZSk6aC5zZXR0aW5ncy5vdXRzaWRlQ2xpY2tEZXNlbGVjdHMpP2guaW5zdGFuY2UuZGVzZWxlY3RDZWxsKCk6aC5pbnN0YW5jZS5kZXN0cm95RWRpdG9yKCExLCEx''@;'; + put 'put ''KX19KSx0aGlzLmV2ZW50TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKHYudGFibGUsInNlbGVjdHN0YXJ0IixmdW5jdGlvbihfZSl7aC5zZXR0aW5ncy5mcmFnbWVudFNlbGVjdGlvbnx8WlooX2UudGFyZ2V0KXx8X2UucHJldmVudERlZmF1bHQoKX0pfX0se2tleToidHJhbnNsYXRlRnJvbVJl''@;'; + put 'put ''bmRlcmFibGVUb1Zpc3VhbENvb3JkcyIsdmFsdWU6ZnVuY3Rpb24oaCl7dmFyIHY7cmV0dXJuKHY9dGhpcy5pbnN0YW5jZSkuX2NyZWF0ZUNlbGxDb29yZHMuYXBwbHkodixZQ2UodGhpcy50cmFuc2xhdGVGcm9tUmVuZGVyYWJsZVRvVmlzdWFsSW5kZXgoaC5yb3csaC5jb2wpKSl9fSx7a2V5''@;'; + put 'put ''OiJ0cmFuc2xhdGVGcm9tUmVuZGVyYWJsZVRvVmlzdWFsSW5kZXgiLHZhbHVlOmZ1bmN0aW9uKGgsdil7dmFyIHk9aD49MD90aGlzLmluc3RhbmNlLnJvd0luZGV4TWFwcGVyLmdldFZpc3VhbEZyb21SZW5kZXJhYmxlSW5kZXgoaCk6aCxDPXY+PTA/dGhpcy5pbnN0YW5jZS5jb2x1bW5JbmRl''@;'; + put 'put ''eE1hcHBlci5nZXRWaXN1YWxGcm9tUmVuZGVyYWJsZUluZGV4KHYpOnY7cmV0dXJuIG51bGw9PT15JiYoeT1oKSxudWxsPT09QyYmKEM9diksW3ksQ119fSx7a2V5OiJjb3VudFJlbmRlcmFibGVJbmRleGVzIix2YWx1ZTpmdW5jdGlvbihoLHYpe3ZhciB5PU1hdGgubWluKGguZ2V0Tm90VHJp''@;'; + put 'put ''bW1lZEluZGV4ZXNMZW5ndGgoKSx2KSxDPWguZ2V0TmVhcmVzdE5vdEhpZGRlbkluZGV4KHktMSwtMSk7cmV0dXJuIG51bGw9PT1DPzA6aC5nZXRSZW5kZXJhYmxlRnJvbVZpc3VhbEluZGV4KEMpKzF9fSx7a2V5OiJjb3VudFJlbmRlcmFibGVDb2x1bW5zIix2YWx1ZTpmdW5jdGlvbigpe3Jl''@;'; + put 'put ''dHVybiB0aGlzLmNvdW50UmVuZGVyYWJsZUluZGV4ZXModGhpcy5pbnN0YW5jZS5jb2x1bW5JbmRleE1hcHBlcix0aGlzLnNldHRpbmdzLm1heENvbHMpfX0se2tleToiY291bnRSZW5kZXJhYmxlUm93cyIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jb3VudFJlbmRlcmFibGVJbmRl''@;'; + put 'put ''eGVzKHRoaXMuaW5zdGFuY2Uucm93SW5kZXhNYXBwZXIsdGhpcy5zZXR0aW5ncy5tYXhSb3dzKX19LHtrZXk6ImNvdW50Tm90SGlkZGVuUm93SW5kZXhlcyIsdmFsdWU6ZnVuY3Rpb24oaCx2KXtyZXR1cm4gdGhpcy5jb3VudE5vdEhpZGRlbkluZGV4ZXMoaCx2LHRoaXMuaW5zdGFuY2Uucm93''@;'; + put 'put ''SW5kZXhNYXBwZXIsdGhpcy5jb3VudFJlbmRlcmFibGVSb3dzKCkpfX0se2tleToiY291bnROb3RIaWRkZW5Db2x1bW5JbmRleGVzIix2YWx1ZTpmdW5jdGlvbihoLHYpe3JldHVybiB0aGlzLmNvdW50Tm90SGlkZGVuSW5kZXhlcyhoLHYsdGhpcy5pbnN0YW5jZS5jb2x1bW5JbmRleE1hcHBl''@;'; + put 'put ''cix0aGlzLmNvdW50UmVuZGVyYWJsZUNvbHVtbnMoKSl9fSx7a2V5OiJjb3VudE5vdEhpZGRlbkluZGV4ZXMiLHZhbHVlOmZ1bmN0aW9uKGgsdix5LEMpe2lmKGlzTmFOKGgpfHxoPDApcmV0dXJuIDA7dmFyIEk9eS5nZXROZWFyZXN0Tm90SGlkZGVuSW5kZXgoaCx2KSxqPXkuZ2V0UmVuZGVy''@;'; + put 'put ''YWJsZUZyb21WaXN1YWxJbmRleChJKTtpZighTnVtYmVyLmlzSW50ZWdlcihqKSlyZXR1cm4gMDt2YXIgdWU9MDtyZXR1cm4gdjwwP3VlPWorMTp2PjAmJih1ZT1DLWopLHVlfX0se2tleToiY291bnROb3RIaWRkZW5GaXhlZENvbHVtbnNTdGFydCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD10''@;'; + put 'put ''aGlzLmluc3RhbmNlLmNvdW50Q29scygpLHY9TWF0aC5taW4ocGFyc2VJbnQodGhpcy5zZXR0aW5ncy5maXhlZENvbHVtbnNTdGFydCwxMCksaCktMTtyZXR1cm4gdGhpcy5jb3VudE5vdEhpZGRlbkNvbHVtbkluZGV4ZXModiwtMSl9fSx7a2V5OiJjb3VudE5vdEhpZGRlbkZpeGVkUm93c1Rv''@;'; + put 'put ''cCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD10aGlzLmluc3RhbmNlLmNvdW50Um93cygpLHY9TWF0aC5taW4ocGFyc2VJbnQodGhpcy5zZXR0aW5ncy5maXhlZFJvd3NUb3AsMTApLGgpLTE7cmV0dXJuIHRoaXMuY291bnROb3RIaWRkZW5Sb3dJbmRleGVzKHYsLTEpfX0se2tleToiY291bnRO''@;'; + put 'put ''b3RIaWRkZW5GaXhlZFJvd3NCb3R0b20iLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9dGhpcy5pbnN0YW5jZS5jb3VudFJvd3MoKSx2PU1hdGgubWF4KGgtcGFyc2VJbnQodGhpcy5zZXR0aW5ncy5maXhlZFJvd3NCb3R0b20sMTApLDApO3JldHVybiB0aGlzLmNvdW50Tm90SGlkZGVuUm93SW5k''@;'; + put 'put ''ZXhlcyh2LDEpfX0se2tleToiaXNNYWluVGFibGVOb3RGdWxseUNvdmVyZWRCeU92ZXJsYXlzIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBoPXRoaXMuY291bnROb3RIaWRkZW5GaXhlZFJvd3NUb3AoKSt0aGlzLmNvdW50Tm90SGlkZGVuRml4ZWRSb3dzQm90dG9tKCksdj10aGlzLmNvdW50Tm90''@;'; + put 'put ''SGlkZGVuRml4ZWRDb2x1bW5zU3RhcnQoKTtyZXR1cm4gdGhpcy5pbnN0YW5jZS5jb3VudFJlbmRlcmVkUm93cygpPmgmJnRoaXMuaW5zdGFuY2UuY291bnRSZW5kZXJlZENvbHMoKT52fX0se2tleToiaW5pdGlhbGl6ZVdhbGtvbnRhYmxlIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBoPXRoaXMs''@;'; + put 'put ''dj1PUy5nZXQodGhpcykseT17cnRsTW9kZTp0aGlzLmluc3RhbmNlLmlzUnRsKCksZXh0ZXJuYWxSb3dDYWxjdWxhdG9yOnRoaXMuaW5zdGFuY2UuZ2V0UGx1Z2luKCJhdXRvUm93U2l6ZSIpJiZ0aGlzLmluc3RhbmNlLmdldFBsdWdpbigiYXV0b1Jvd1NpemUiKS5pc0VuYWJsZWQoKSx0YWJs''@;'; + put 'put ''ZTp2LnRhYmxlLGlzRGF0YVZpZXdJbnN0YW5jZTpmdW5jdGlvbigpe3JldHVybiB6ZGUoaC5pbnN0YW5jZSl9LHByZXZlbnRPdmVyZmxvdzpmdW5jdGlvbigpe3JldHVybiBoLnNldHRpbmdzLnByZXZlbnRPdmVyZmxvd30scHJldmVudFdoZWVsOmZ1bmN0aW9uKCl7cmV0dXJuIGguc2V0dGlu''@;'; + put 'put ''Z3MucHJldmVudFdoZWVsfSxzdHJldGNoSDpmdW5jdGlvbigpe3JldHVybiBoLnNldHRpbmdzLnN0cmV0Y2hIfSxkYXRhOmZ1bmN0aW9uKEJlLE5lKXt2YXIgS2U7cmV0dXJuKEtlPWguaW5zdGFuY2UpLmdldERhdGFBdENlbGwuYXBwbHkoS2UsWUNlKGgudHJhbnNsYXRlRnJvbVJlbmRlcmFi''@;'; + put 'put ''bGVUb1Zpc3VhbEluZGV4KEJlLE5lKSkpfSx0b3RhbFJvd3M6ZnVuY3Rpb24oKXtyZXR1cm4gaC5jb3VudFJlbmRlcmFibGVSb3dzKCl9LHRvdGFsQ29sdW1uczpmdW5jdGlvbigpe3JldHVybiBoLmNvdW50UmVuZGVyYWJsZUNvbHVtbnMoKX0sZml4ZWRDb2x1bW5zU3RhcnQ6ZnVuY3Rpb24o''@;'; + put 'put ''KXtyZXR1cm4gaC5jb3VudE5vdEhpZGRlbkZpeGVkQ29sdW1uc1N0YXJ0KCl9LGZpeGVkUm93c1RvcDpmdW5jdGlvbigpe3JldHVybiBoLmNvdW50Tm90SGlkZGVuRml4ZWRSb3dzVG9wKCl9LGZpeGVkUm93c0JvdHRvbTpmdW5jdGlvbigpe3JldHVybiBoLmNvdW50Tm90SGlkZGVuRml4ZWRS''@;'; + put 'put ''b3dzQm90dG9tKCl9LHNob3VsZFJlbmRlcklubGluZVN0YXJ0T3ZlcmxheTpmdW5jdGlvbigpe3JldHVybiBoLnNldHRpbmdzLmZpeGVkQ29sdW1uc1N0YXJ0PjB8fHkucm93SGVhZGVycygpLmxlbmd0aD4wfSxzaG91bGRSZW5kZXJUb3BPdmVybGF5OmZ1bmN0aW9uKCl7cmV0dXJuIGguc2V0''@;'; + put 'put ''dGluZ3MuZml4ZWRSb3dzVG9wPjB8fHkuY29sdW1uSGVhZGVycygpLmxlbmd0aD4wfSxzaG91bGRSZW5kZXJCb3R0b21PdmVybGF5OmZ1bmN0aW9uKCl7cmV0dXJuIGguc2V0dGluZ3MuZml4ZWRSb3dzQm90dG9tPjB9LG1pblNwYXJlUm93czpmdW5jdGlvbigpe3JldHVybiBoLnNldHRpbmdz''@;'; + put 'put ''Lm1pblNwYXJlUm93c30scmVuZGVyQWxsUm93czp0aGlzLnNldHRpbmdzLnJlbmRlckFsbFJvd3Mscm93SGVhZGVyczpmdW5jdGlvbigpe3ZhciBCZT1bXTtyZXR1cm4gaC5pbnN0YW5jZS5oYXNSb3dIZWFkZXJzKCkmJkJlLnB1c2goZnVuY3Rpb24oTmUsS2Upe3ZhciBkdD1OZT49MD9oLmlu''@;'; + put 'put ''c3RhbmNlLnJvd0luZGV4TWFwcGVyLmdldFZpc3VhbEZyb21SZW5kZXJhYmxlSW5kZXgoTmUpOk5lO2guYXBwZW5kUm93SGVhZGVyKGR0LEtlKX0pLGguaW5zdGFuY2UucnVuSG9va3MoImFmdGVyR2V0Um93SGVhZGVyUmVuZGVyZXJzIixCZSksQmV9LGNvbHVtbkhlYWRlcnM6ZnVuY3Rpb24o''@;'; + put 'put ''KXt2YXIgQmU9W107cmV0dXJuIGguaW5zdGFuY2UuaGFzQ29sSGVhZGVycygpJiZCZS5wdXNoKGZ1bmN0aW9uKE5lLEtlKXt2YXIgZHQ9TmU+PTA/aC5pbnN0YW5jZS5jb2x1bW5JbmRleE1hcHBlci5nZXRWaXN1YWxGcm9tUmVuZGVyYWJsZUluZGV4KE5lKTpOZTtoLmFwcGVuZENvbEhlYWRl''@;'; + put 'put ''cihkdCxLZSl9KSxoLmluc3RhbmNlLnJ1bkhvb2tzKCJhZnRlckdldENvbHVtbkhlYWRlclJlbmRlcmVycyIsQmUpLEJlfSxjb2x1bW5XaWR0aDpmdW5jdGlvbihCZSl7dmFyIE5lPWguaW5zdGFuY2UuY29sdW1uSW5kZXhNYXBwZXIuZ2V0VmlzdWFsRnJvbVJlbmRlcmFibGVJbmRleChCZSk7''@;'; + put 'put ''cmV0dXJuIGguaW5zdGFuY2UuZ2V0Q29sV2lkdGgobnVsbD09PU5lP0JlOk5lKX0scm93SGVpZ2h0OmZ1bmN0aW9uKEJlKXt2YXIgTmU9aC5pbnN0YW5jZS5yb3dJbmRleE1hcHBlci5nZXRWaXN1YWxGcm9tUmVuZGVyYWJsZUluZGV4KEJlKTtyZXR1cm4gaC5pbnN0YW5jZS5nZXRSb3dIZWln''@;'; + put 'put ''aHQobnVsbD09PU5lP0JlOk5lKX0sY2VsbFJlbmRlcmVyOmZ1bmN0aW9uKEJlLE5lLEtlKXt2YXIgT3Q9S1ooaC50cmFuc2xhdGVGcm9tUmVuZGVyYWJsZVRvVmlzdWFsSW5kZXgoQmUsTmUpLDIpLCR0PU90WzBdLGZuPU90WzFdLExuPWguaW5zdGFuY2UucnVuSG9va3MoIm1vZGlmeUdldENl''@;'; + put 'put ''bGxDb29yZHMiLCR0LGZuKSxpcj0kdCxtcj1mbjtpZihBcnJheS5pc0FycmF5KExuKSl7dmFyIFNyPUtaKExuLDIpO2lyPVNyWzBdLG1yPVNyWzFdfXZhciB3cj1oLmluc3RhbmNlLmdldENlbGxNZXRhKGlyLG1yKSxRcj1oLmluc3RhbmNlLmNvbFRvUHJvcChtcikseWk9aC5pbnN0YW5jZS5n''@;'; + put 'put ''ZXREYXRhQXRSb3dQcm9wKGlyLFFyKTtoLmluc3RhbmNlLmhhc0hvb2soImJlZm9yZVZhbHVlUmVuZGVyIikmJih5aT1oLmluc3RhbmNlLnJ1bkhvb2tzKCJiZWZvcmVWYWx1ZVJlbmRlciIseWksd3IpKSxoLmluc3RhbmNlLnJ1bkhvb2tzKCJiZWZvcmVSZW5kZXJlciIsS2UsJHQsZm4sUXIs''@;'; + put 'put ''eWksd3IpLGguaW5zdGFuY2UuZ2V0Q2VsbFJlbmRlcmVyKHdyKShoLmluc3RhbmNlLEtlLCR0LGZuLFFyLHlpLHdyKSxoLmluc3RhbmNlLnJ1bkhvb2tzKCJhZnRlclJlbmRlcmVyIixLZSwkdCxmbixRcix5aSx3cil9LHNlbGVjdGlvbnM6dGhpcy5pbnN0YW5jZS5zZWxlY3Rpb24uaGlnaGxp''@;'; + put 'put ''Z2h0LGhpZGVCb3JkZXJPbk1vdXNlRG93bk92ZXI6ZnVuY3Rpb24oKXtyZXR1cm4gaC5zZXR0aW5ncy5mcmFnbWVudFNlbGVjdGlvbn0sb25XaW5kb3dSZXNpemU6ZnVuY3Rpb24oKXshaC5pbnN0YW5jZXx8aC5pbnN0YW5jZS5pc0Rlc3Ryb3llZHx8aC5pbnN0YW5jZS5yZWZyZXNoRGltZW5z''@;'; + put 'put ''aW9ucygpfSxvbkNlbGxNb3VzZURvd246ZnVuY3Rpb24oQmUsTmUsS2UsZHQpe3ZhciBPdD1oLnRyYW5zbGF0ZUZyb21SZW5kZXJhYmxlVG9WaXN1YWxDb29yZHMoTmUpLCR0PXtyb3c6ITEsY29sdW1uOiExLGNlbGw6ITF9O2guaW5zdGFuY2UubGlzdGVuKCksaC5hY3RpdmVXdD1kdCx2Lm1v''@;'; + put 'put ''dXNlRG93bj0hMCxoLmluc3RhbmNlLnJ1bkhvb2tzKCJiZWZvcmVPbkNlbGxNb3VzZURvd24iLEJlLE90LEtlLCR0KSwhRVMoQmUpJiYoR0NlKEJlLHtjb29yZHM6T3Qsc2VsZWN0aW9uOmguaW5zdGFuY2Uuc2VsZWN0aW9uLGNvbnRyb2xsZXI6JHQsY2VsbENvb3Jkc0ZhY3Rvcnk6ZnVuY3Rp''@;'; + put 'put ''b24oTG4saXIpe3JldHVybiBoLmluc3RhbmNlLl9jcmVhdGVDZWxsQ29vcmRzKExuLGlyKX19KSxoLmluc3RhbmNlLnJ1bkhvb2tzKCJhZnRlck9uQ2VsbE1vdXNlRG93biIsQmUsT3QsS2UpLGguYWN0aXZlV3Q9aC5fd3QpfSxvbkNlbGxDb250ZXh0TWVudTpmdW5jdGlvbihCZSxOZSxLZSxk''@;'; + put 'put ''dCl7dmFyIE90PWgudHJhbnNsYXRlRnJvbVJlbmRlcmFibGVUb1Zpc3VhbENvb3JkcyhOZSk7aC5hY3RpdmVXdD1kdCx2Lm1vdXNlRG93bj0hMSxoLmluc3RhbmNlLnNlbGVjdGlvbi5pc0luUHJvZ3Jlc3MoKSYmaC5pbnN0YW5jZS5zZWxlY3Rpb24uZmluaXNoKCksaC5pbnN0YW5jZS5ydW5I''@;'; + put 'put ''b29rcygiYmVmb3JlT25DZWxsQ29udGV4dE1lbnUiLEJlLE90LEtlKSwhRVMoQmUpJiYoaC5pbnN0YW5jZS5ydW5Ib29rcygiYWZ0ZXJPbkNlbGxDb250ZXh0TWVudSIsQmUsT3QsS2UpLGguYWN0aXZlV3Q9aC5fd3QpfSxvbkNlbGxNb3VzZU91dDpmdW5jdGlvbihCZSxOZSxLZSxkdCl7dmFy''@;'; + put 'put ''IE90PWgudHJhbnNsYXRlRnJvbVJlbmRlcmFibGVUb1Zpc3VhbENvb3JkcyhOZSk7aC5hY3RpdmVXdD1kdCxoLmluc3RhbmNlLnJ1bkhvb2tzKCJiZWZvcmVPbkNlbGxNb3VzZU91dCIsQmUsT3QsS2UpLCFFUyhCZSkmJihoLmluc3RhbmNlLnJ1bkhvb2tzKCJhZnRlck9uQ2VsbE1vdXNlT3V0''@;'; + put 'put ''IixCZSxPdCxLZSksaC5hY3RpdmVXdD1oLl93dCl9LG9uQ2VsbE1vdXNlT3ZlcjpmdW5jdGlvbihCZSxOZSxLZSxkdCl7dmFyIE90PWgudHJhbnNsYXRlRnJvbVJlbmRlcmFibGVUb1Zpc3VhbENvb3JkcyhOZSksJHQ9e3JvdzohMSxjb2x1bW46ITEsY2VsbDohMX07aC5hY3RpdmVXdD1kdCxo''@;'; + put 'put ''Lmluc3RhbmNlLnJ1bkhvb2tzKCJiZWZvcmVPbkNlbGxNb3VzZU92ZXIiLEJlLE90LEtlLCR0KSwhRVMoQmUpJiYodi5tb3VzZURvd24mJkdDZShCZSx7Y29vcmRzOk90LHNlbGVjdGlvbjpoLmluc3RhbmNlLnNlbGVjdGlvbixjb250cm9sbGVyOiR0LGNlbGxDb29yZHNGYWN0b3J5OmZ1bmN0''@;'; + put 'put ''aW9uKExuLGlyKXtyZXR1cm4gaC5pbnN0YW5jZS5fY3JlYXRlQ2VsbENvb3JkcyhMbixpcil9fSksaC5pbnN0YW5jZS5ydW5Ib29rcygiYWZ0ZXJPbkNlbGxNb3VzZU92ZXIiLEJlLE90LEtlKSxoLmFjdGl2ZVd0PWguX3d0KX0sb25DZWxsTW91c2VVcDpmdW5jdGlvbihCZSxOZSxLZSxkdCl7''@;'; + put 'put ''dmFyIE90PWgudHJhbnNsYXRlRnJvbVJlbmRlcmFibGVUb1Zpc3VhbENvb3JkcyhOZSk7aC5hY3RpdmVXdD1kdCxoLmluc3RhbmNlLnJ1bkhvb2tzKCJiZWZvcmVPbkNlbGxNb3VzZVVwIixCZSxPdCxLZSksIUVTKEJlKSYmIWguaW5zdGFuY2UuaXNEZXN0cm95ZWQmJihoLmluc3RhbmNlLnJ1''@;'; + put 'put ''bkhvb2tzKCJhZnRlck9uQ2VsbE1vdXNlVXAiLEJlLE90LEtlKSxoLmFjdGl2ZVd0PWguX3d0KX0sb25DZWxsQ29ybmVyTW91c2VEb3duOmZ1bmN0aW9uKEJlKXtCZS5wcmV2ZW50RGVmYXVsdCgpLGguaW5zdGFuY2UucnVuSG9va3MoImFmdGVyT25DZWxsQ29ybmVyTW91c2VEb3duIixCZSl9''@;'; + put 'put ''LG9uQ2VsbENvcm5lckRibENsaWNrOmZ1bmN0aW9uKEJlKXtCZS5wcmV2ZW50RGVmYXVsdCgpLGguaW5zdGFuY2UucnVuSG9va3MoImFmdGVyT25DZWxsQ29ybmVyRGJsQ2xpY2siLEJlKX0sYmVmb3JlRHJhdzpmdW5jdGlvbihCZSxOZSl7cmV0dXJuIGguYmVmb3JlUmVuZGVyKEJlLE5lKX0s''@;'; + put 'put ''b25EcmF3OmZ1bmN0aW9uKEJlKXtyZXR1cm4gaC5hZnRlclJlbmRlcihCZSl9LG9uU2Nyb2xsVmVydGljYWxseTpmdW5jdGlvbigpe3JldHVybiBoLmluc3RhbmNlLnJ1bkhvb2tzKCJhZnRlclNjcm9sbFZlcnRpY2FsbHkiKX0sb25TY3JvbGxIb3Jpem9udGFsbHk6ZnVuY3Rpb24oKXtyZXR1''@;'; + put 'put ''cm4gaC5pbnN0YW5jZS5ydW5Ib29rcygiYWZ0ZXJTY3JvbGxIb3Jpem9udGFsbHkiKX0sb25CZWZvcmVSZW1vdmVDZWxsQ2xhc3NOYW1lczpmdW5jdGlvbigpe3JldHVybiBoLmluc3RhbmNlLnJ1bkhvb2tzKCJiZWZvcmVSZW1vdmVDZWxsQ2xhc3NOYW1lcyIpfSxvbkJlZm9yZUhpZ2hsaWdo''@;'; + put 'put ''dGluZ1Jvd0hlYWRlcjpmdW5jdGlvbihCZSxOZSxLZSl7dmFyIGR0PWguaW5zdGFuY2Uucm93SW5kZXhNYXBwZXIsT3Q9ZHQuZ2V0VmlzdWFsRnJvbVJlbmRlcmFibGVJbmRleChCZSksJHQ9aC5pbnN0YW5jZS5ydW5Ib29rcygiYmVmb3JlSGlnaGxpZ2h0aW5nUm93SGVhZGVyIixPdCxOZSxL''@;'; + put 'put ''ZSk7cmV0dXJuIGR0LmdldFJlbmRlcmFibGVGcm9tVmlzdWFsSW5kZXgoZHQuZ2V0TmVhcmVzdE5vdEhpZGRlbkluZGV4KCR0LDEpKX0sb25CZWZvcmVIaWdobGlnaHRpbmdDb2x1bW5IZWFkZXI6ZnVuY3Rpb24oQmUsTmUsS2Upe3ZhciBkdD1oLmluc3RhbmNlLmNvbHVtbkluZGV4TWFwcGVy''@;'; + put 'put ''LE90PWR0LmdldFZpc3VhbEZyb21SZW5kZXJhYmxlSW5kZXgoQmUpLCR0PWguaW5zdGFuY2UucnVuSG9va3MoImJlZm9yZUhpZ2hsaWdodGluZ0NvbHVtbkhlYWRlciIsT3QsTmUsS2UpO3JldHVybiBkdC5nZXRSZW5kZXJhYmxlRnJvbVZpc3VhbEluZGV4KGR0LmdldE5lYXJlc3ROb3RIaWRk''@;'; + put 'put ''ZW5JbmRleCgkdCwxKSl9LG9uQWZ0ZXJEcmF3U2VsZWN0aW9uOmZ1bmN0aW9uKEJlLE5lLEtlKXt2YXIgZHQsJHQ9S1ooaC50cmFuc2xhdGVGcm9tUmVuZGVyYWJsZVRvVmlzdWFsSW5kZXgoQmUsTmUpLDIpLGZuPSR0WzBdLExuPSR0WzFdLGlyPWguaW5zdGFuY2Uuc2VsZWN0aW9uLmdldFNl''@;'; + put 'put ''bGVjdGVkUmFuZ2UoKSxtcj1pci5zaXplKCk7aWYobXI+MCl7dmFyIHdyPWlyLnBlZWtCeUluZGV4KChudWxsIT1LZT9LZTowKSsxLW1yKTtkdD1bd3IuZnJvbS5yb3csd3IuZnJvbS5jb2wsd3IudG8ucm93LHdyLnRvLmNvbF19cmV0dXJuIGguaW5zdGFuY2UucnVuSG9va3MoImFmdGVyRHJh''@;'; + put 'put ''d1NlbGVjdGlvbiIsZm4sTG4sZHQsS2UpfSxvbkJlZm9yZURyYXdCb3JkZXJzOmZ1bmN0aW9uKEJlLE5lKXt2YXIgS2U9S1ooQmUsNCksT3Q9S2VbMV0sJHQ9S2VbMl0sZm49S2VbM10sTG49W2guaW5zdGFuY2Uucm93SW5kZXhNYXBwZXIuZ2V0VmlzdWFsRnJvbVJlbmRlcmFibGVJbmRleChL''@;'; + put 'put ''ZVswXSksaC5pbnN0YW5jZS5jb2x1bW5JbmRleE1hcHBlci5nZXRWaXN1YWxGcm9tUmVuZGVyYWJsZUluZGV4KE90KSxoLmluc3RhbmNlLnJvd0luZGV4TWFwcGVyLmdldFZpc3VhbEZyb21SZW5kZXJhYmxlSW5kZXgoJHQpLGguaW5zdGFuY2UuY29sdW1uSW5kZXhNYXBwZXIuZ2V0VmlzdWFs''@;'; + put 'put ''RnJvbVJlbmRlcmFibGVJbmRleChmbildO3JldHVybiBoLmluc3RhbmNlLnJ1bkhvb2tzKCJiZWZvcmVEcmF3Qm9yZGVycyIsTG4sTmUpfSxvbkJlZm9yZVRvdWNoU2Nyb2xsOmZ1bmN0aW9uKCl7cmV0dXJuIGguaW5zdGFuY2UucnVuSG9va3MoImJlZm9yZVRvdWNoU2Nyb2xsIil9LG9uQWZ0''@;'; + put 'put ''ZXJNb21lbnR1bVNjcm9sbDpmdW5jdGlvbigpe3JldHVybiBoLmluc3RhbmNlLnJ1bkhvb2tzKCJhZnRlck1vbWVudHVtU2Nyb2xsIil9LG9uQmVmb3JlU3RyZXRjaGluZ0NvbHVtbldpZHRoOmZ1bmN0aW9uKEJlLE5lKXt2YXIgS2U9aC5pbnN0YW5jZS5jb2x1bW5JbmRleE1hcHBlci5nZXRW''@;'; + put 'put ''aXN1YWxGcm9tUmVuZGVyYWJsZUluZGV4KE5lKTtyZXR1cm4gaC5pbnN0YW5jZS5ydW5Ib29rcygiYmVmb3JlU3RyZXRjaGluZ0NvbHVtbldpZHRoIixCZSxLZSl9LG9uTW9kaWZ5Um93SGVhZGVyV2lkdGg6ZnVuY3Rpb24oQmUpe3JldHVybiBoLmluc3RhbmNlLnJ1bkhvb2tzKCJtb2RpZnlS''@;'; + put 'put ''b3dIZWFkZXJXaWR0aCIsQmUpfSxvbk1vZGlmeUdldENlbGxDb29yZHM6ZnVuY3Rpb24oQmUsTmUsS2Upe3ZhciBkdD1oLmluc3RhbmNlLnJvd0luZGV4TWFwcGVyLE90PWguaW5zdGFuY2UuY29sdW1uSW5kZXhNYXBwZXIsJHQ9TmU+PTA/T3QuZ2V0VmlzdWFsRnJvbVJlbmRlcmFibGVJbmRl''@;'; + put 'put ''eChOZSk6TmUsZm49QmU+PTA/ZHQuZ2V0VmlzdWFsRnJvbVJlbmRlcmFibGVJbmRleChCZSk6QmUsTG49aC5pbnN0YW5jZS5ydW5Ib29rcygibW9kaWZ5R2V0Q2VsbENvb3JkcyIsZm4sJHQsS2UpO2lmKEFycmF5LmlzQXJyYXkoTG4pKXt2YXIgaXI9S1ooTG4sNCksbXI9aXJbMF0sU3I9aXJb''@;'; + put 'put ''MV0sd3I9aXJbMl0sUXI9aXJbM107cmV0dXJuW21yPj0wP2R0LmdldFJlbmRlcmFibGVGcm9tVmlzdWFsSW5kZXgoZHQuZ2V0TmVhcmVzdE5vdEhpZGRlbkluZGV4KG1yLDEpKTptcixTcj49MD9PdC5nZXRSZW5kZXJhYmxlRnJvbVZpc3VhbEluZGV4KE90LmdldE5lYXJlc3ROb3RIaWRkZW5J''@;'; + put 'put ''bmRleChTciwxKSk6U3Isd3I+PTA/ZHQuZ2V0UmVuZGVyYWJsZUZyb21WaXN1YWxJbmRleChkdC5nZXROZWFyZXN0Tm90SGlkZGVuSW5kZXgod3IsLTEpKTp3cixRcj49MD9PdC5nZXRSZW5kZXJhYmxlRnJvbVZpc3VhbEluZGV4KE90LmdldE5lYXJlc3ROb3RIaWRkZW5JbmRleChRciwtMSkp''@;'; + put 'put ''OlFyXX19LHZpZXdwb3J0Um93Q2FsY3VsYXRvck92ZXJyaWRlOmZ1bmN0aW9uKEJlKXt2YXIgTmU9aC5zZXR0aW5ncy52aWV3cG9ydFJvd1JlbmRlcmluZ09mZnNldDtpZigiYXV0byI9PT1OZSYmaC5zZXR0aW5ncy5maXhlZFJvd3NUb3AmJihOZT0xMCksTmU+MHx8ImF1dG8iPT09TmUpe3Zh''@;'; + put 'put ''ciBLZT1oLmNvdW50UmVuZGVyYWJsZVJvd3MoKSxkdD1CZS5zdGFydFJvdyxPdD1CZS5lbmRSb3c7aWYoIm51bWJlciI9PXR5cGVvZiBOZSlCZS5zdGFydFJvdz1NYXRoLm1heChkdC1OZSwwKSxCZS5lbmRSb3c9TWF0aC5taW4oT3QrTmUsS2UtMSk7ZWxzZSBpZigiYXV0byI9PT1OZSl7dmFy''@;'; + put 'put ''ICR0PU1hdGguY2VpbChPdC9LZSoxMik7QmUuc3RhcnRSb3c9TWF0aC5tYXgoZHQtJHQsMCksQmUuZW5kUm93PU1hdGgubWluKE90KyR0LEtlLTEpfX1oLmluc3RhbmNlLnJ1bkhvb2tzKCJhZnRlclZpZXdwb3J0Um93Q2FsY3VsYXRvck92ZXJyaWRlIixCZSl9LHZpZXdwb3J0Q29sdW1uQ2Fs''@;'; + put 'put ''Y3VsYXRvck92ZXJyaWRlOmZ1bmN0aW9uKEJlKXt2YXIgTmU9aC5zZXR0aW5ncy52aWV3cG9ydENvbHVtblJlbmRlcmluZ09mZnNldDtpZigiYXV0byI9PT1OZSYmaC5zZXR0aW5ncy5maXhlZENvbHVtbnNTdGFydCYmKE5lPTEwKSxOZT4wfHwiYXV0byI9PT1OZSl7dmFyIEtlPWguY291bnRS''@;'; + put 'put ''ZW5kZXJhYmxlQ29sdW1ucygpLGR0PUJlLnN0YXJ0Q29sdW1uLE90PUJlLmVuZENvbHVtbjtpZigibnVtYmVyIj09dHlwZW9mIE5lJiYoQmUuc3RhcnRDb2x1bW49TWF0aC5tYXgoZHQtTmUsMCksQmUuZW5kQ29sdW1uPU1hdGgubWluKE90K05lLEtlLTEpKSwiYXV0byI9PT1OZSl7dmFyICR0''@;'; + put 'put ''PU1hdGguY2VpbChPdC9LZSo2KTtCZS5zdGFydENvbHVtbj1NYXRoLm1heChkdC0kdCwwKSxCZS5lbmRDb2x1bW49TWF0aC5taW4oT3QrJHQsS2UtMSl9fWguaW5zdGFuY2UucnVuSG9va3MoImFmdGVyVmlld3BvcnRDb2x1bW5DYWxjdWxhdG9yT3ZlcnJpZGUiLEJlKX0scm93SGVhZGVyV2lk''@;'; + put 'put ''dGg6ZnVuY3Rpb24oKXtyZXR1cm4gaC5zZXR0aW5ncy5yb3dIZWFkZXJXaWR0aH0sY29sdW1uSGVhZGVySGVpZ2h0OmZ1bmN0aW9uKCl7dmFyIEJlPWguaW5zdGFuY2UucnVuSG9va3MoIm1vZGlmeUNvbHVtbkhlYWRlckhlaWdodCIpO3JldHVybiBoLnNldHRpbmdzLmNvbHVtbkhlYWRlckhl''@;'; + put 'put ''aWdodHx8QmV9fTt0aGlzLmluc3RhbmNlLnJ1bkhvb2tzKCJiZWZvcmVJbml0V2Fsa29udGFibGUiLHkpLHRoaXMuX3d0PW5ldyBiUWUoeSksdGhpcy5hY3RpdmVXdD10aGlzLl93dDt2YXIgQz10aGlzLl93dC53dFRhYmxlLnNwcmVhZGVyLEk9dGhpcy5pbnN0YW5jZS5yb290RWxlbWVudC5n''@;'; + put 'put ''ZXRCb3VuZGluZ0NsaWVudFJlY3QoKTt0aGlzLnNldExhc3RTaXplKEkud2lkdGgsSS5oZWlnaHQpLHRoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoQywibW91c2Vkb3duIixmdW5jdGlvbihfZSl7X2UudGFyZ2V0PT09QyYmMz09PV9lLndoaWNoJiZfZS5zdG9wUHJvcGFnYXRp''@;'; + put 'put ''b24oKX0pLHRoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoQywiY29udGV4dG1lbnUiLGZ1bmN0aW9uKF9lKXtfZS50YXJnZXQ9PT1DJiYzPT09X2Uud2hpY2gmJl9lLnN0b3BQcm9wYWdhdGlvbigpfSksdGhpcy5ldmVudE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcih0aGlzLmlu''@;'; + put 'put ''c3RhbmNlLnJvb3REb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsImNsaWNrIixmdW5jdGlvbigpe2guc2V0dGluZ3Mub2JzZXJ2ZURPTVZpc2liaWxpdHkmJmguX3d0LmRyYXdJbnRlcnJ1cHRlZCYmKGguaW5zdGFuY2UuZm9yY2VGdWxsUmVuZGVyPSEwLGgucmVuZGVyKCkpfSl9fSx7a2V5OiJp''@;'; + put 'put ''c1RleHRTZWxlY3Rpb25BbGxvd2VkIix2YWx1ZTpmdW5jdGlvbihoKXtpZihaWihoKSlyZXR1cm4hMDt2YXIgdj1fdyhoLHRoaXMuaW5zdGFuY2Uudmlldy5fd3Qud3RUYWJsZS5zcHJlYWRlcik7cmV0dXJuISEoITA9PT10aGlzLnNldHRpbmdzLmZyYWdtZW50U2VsZWN0aW9uJiZ2fHwiY2Vs''@;'; + put 'put ''bCI9PT10aGlzLnNldHRpbmdzLmZyYWdtZW50U2VsZWN0aW9uJiZ0aGlzLmlzU2VsZWN0ZWRPbmx5Q2VsbCgpJiZ2fHwhdGhpcy5zZXR0aW5ncy5mcmFnbWVudFNlbGVjdGlvbiYmdGhpcy5pc0NlbGxFZGl0ZWQoKSYmdGhpcy5pc1NlbGVjdGVkT25seUNlbGwoKSl9fSx7a2V5OiJpc01vdXNl''@;'; + put 'put ''RG93biIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gT1MuZ2V0KHRoaXMpLm1vdXNlRG93bn19LHtrZXk6ImlzU2VsZWN0ZWRPbmx5Q2VsbCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaCx2O3JldHVybiBudWxsIT09KGg9bnVsbD09PSh2PXRoaXMuaW5zdGFuY2UuZ2V0U2VsZWN0ZWRSYW5nZUxh''@;'; + put 'put ''c3QoKSl8fHZvaWQgMD09PXY/dm9pZCAwOnYuaXNTaW5nbGUoKSkmJnZvaWQgMCE9PWgmJmh9fSx7a2V5OiJpc0NlbGxFZGl0ZWQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9dGhpcy5pbnN0YW5jZS5nZXRBY3RpdmVFZGl0b3IoKTtyZXR1cm4gaCYmaC5pc09wZW5lZCgpfX0se2tleToiYmVm''@;'; + put 'put ''b3JlUmVuZGVyIix2YWx1ZTpmdW5jdGlvbihoLHYpe2gmJnRoaXMuaW5zdGFuY2UucnVuSG9va3MoImJlZm9yZVZpZXdSZW5kZXIiLHRoaXMuaW5zdGFuY2UuZm9yY2VGdWxsUmVuZGVyLHYpfX0se2tleToiYWZ0ZXJSZW5kZXIiLHZhbHVlOmZ1bmN0aW9uKGgpe2gmJnRoaXMuaW5zdGFuY2Uu''@;'; + put 'put ''cnVuSG9va3MoImFmdGVyVmlld1JlbmRlciIsdGhpcy5pbnN0YW5jZS5mb3JjZUZ1bGxSZW5kZXIpfX0se2tleToiYXBwZW5kUm93SGVhZGVyIix2YWx1ZTpmdW5jdGlvbihoLHYpe2lmKHYuZmlyc3RDaGlsZCl7dmFyIHk9di5maXJzdENoaWxkO2lmKCF0bCh5LCJyZWxhdGl2ZSIpKXJldHVy''@;'; + put 'put ''biBEcCh2KSx2b2lkIHRoaXMuYXBwZW5kUm93SGVhZGVyKGgsdik7dGhpcy51cGRhdGVDZWxsSGVhZGVyKHkucXVlcnlTZWxlY3RvcigiLnJvd0hlYWRlciIpLGgsdGhpcy5pbnN0YW5jZS5nZXRSb3dIZWFkZXIpfWVsc2V7dmFyIEM9dGhpcy5pbnN0YW5jZSxJPUMucm9vdERvY3VtZW50LGo9''@;'; + put 'put ''Qy5nZXRSb3dIZWFkZXIsdWU9SS5jcmVhdGVFbGVtZW50KCJkaXYiKSxfZT1JLmNyZWF0ZUVsZW1lbnQoInNwYW4iKTt1ZS5jbGFzc05hbWU9InJlbGF0aXZlIixfZS5jbGFzc05hbWU9InJvd0hlYWRlciIsdGhpcy51cGRhdGVDZWxsSGVhZGVyKF9lLGgsaiksdWUuYXBwZW5kQ2hpbGQoX2Up''@;'; + put 'put ''LHYuYXBwZW5kQ2hpbGQodWUpfXRoaXMuaW5zdGFuY2UucnVuSG9va3MoImFmdGVyR2V0Um93SGVhZGVyIixoLHYpfX0se2tleToiYXBwZW5kQ29sSGVhZGVyIix2YWx1ZTpmdW5jdGlvbihoLHYpe2lmKHYuZmlyc3RDaGlsZCl7dmFyIHk9di5maXJzdENoaWxkO3RsKHksInJlbGF0aXZlIik/''@;'; + put 'put ''dGhpcy51cGRhdGVDZWxsSGVhZGVyKHkucXVlcnlTZWxlY3RvcigiLmNvbEhlYWRlciIpLGgsdGhpcy5pbnN0YW5jZS5nZXRDb2xIZWFkZXIpOihEcCh2KSx0aGlzLmFwcGVuZENvbEhlYWRlcihoLHYpKX1lbHNle3ZhciBDPXRoaXMuaW5zdGFuY2Uucm9vdERvY3VtZW50LEk9Qy5jcmVhdGVF''@;'; + put 'put ''bGVtZW50KCJkaXYiKSxqPUMuY3JlYXRlRWxlbWVudCgic3BhbiIpO0kuY2xhc3NOYW1lPSJyZWxhdGl2ZSIsai5jbGFzc05hbWU9ImNvbEhlYWRlciIsdGhpcy51cGRhdGVDZWxsSGVhZGVyKGosaCx0aGlzLmluc3RhbmNlLmdldENvbEhlYWRlciksSS5hcHBlbmRDaGlsZChqKSx2LmFwcGVu''@;'; + put 'put ''ZENoaWxkKEkpfXRoaXMuaW5zdGFuY2UucnVuSG9va3MoImFmdGVyR2V0Q29sSGVhZGVyIixoLHYpfX0se2tleToidXBkYXRlQ2VsbEhlYWRlciIsdmFsdWU6ZnVuY3Rpb24oaCx2LHkpe3ZhciBDPXYsST10aGlzLl93dC53dE92ZXJsYXlzLmdldFBhcmVudE92ZXJsYXkoaCl8fHRoaXMuX3d0''@;'; + put 'put ''O2gucGFyZW50Tm9kZSYmKHRsKGgsImNvbEhlYWRlciIpP0M9SS53dFRhYmxlLmNvbHVtbkZpbHRlci5zb3VyY2VUb1JlbmRlcmVkKHYpOnRsKGgsInJvd0hlYWRlciIpJiYoQz1JLnd0VGFibGUucm93RmlsdGVyLnNvdXJjZVRvUmVuZGVyZWQodikpKSxDPi0xP2t3KGgseSh2KSk6KFN3KGgs''@;'; + put 'put ''U3RyaW5nLmZyb21DaGFyQ29kZSgxNjApKSxPMChoLCJjb3JuZXJIZWFkZXIiKSl9fSx7a2V5OiJtYXhpbXVtVmlzaWJsZUVsZW1lbnRXaWR0aCIsdmFsdWU6ZnVuY3Rpb24oaCl7dmFyIHk9dGhpcy5fd3Qud3RWaWV3cG9ydC5nZXRXb3Jrc3BhY2VXaWR0aCgpLWg7cmV0dXJuIHk+MD95OjB9''@;'; + put 'put ''fSx7a2V5OiJtYXhpbXVtVmlzaWJsZUVsZW1lbnRIZWlnaHQiLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB5PXRoaXMuX3d0Lnd0Vmlld3BvcnQuZ2V0V29ya3NwYWNlSGVpZ2h0KCktaDtyZXR1cm4geT4wP3k6MH19LHtrZXk6InNldExhc3RTaXplIix2YWx1ZTpmdW5jdGlvbihoLHYpe3ZhciB5''@;'; + put 'put ''PU9TLmdldCh0aGlzKSxDPVtoLHZdO3kubGFzdFdpZHRoPUNbMF0seS5sYXN0SGVpZ2h0PUNbMV19fSx7a2V5OiJnZXRMYXN0U2l6ZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD1PUy5nZXQodGhpcyk7cmV0dXJue3dpZHRoOmgubGFzdFdpZHRoLGhlaWdodDpoLmxhc3RIZWlnaHR9fX0se2tl''@;'; + put 'put ''eToiZ2V0Rmlyc3RGdWxseVZpc2libGVSb3ciLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW5zdGFuY2Uucm93SW5kZXhNYXBwZXIuZ2V0VmlzdWFsRnJvbVJlbmRlcmFibGVJbmRleCh0aGlzLmluc3RhbmNlLnZpZXcuX3d0Lnd0U2Nyb2xsLmdldEZpcnN0VmlzaWJsZVJvdygpKX19''@;'; + put 'put ''LHtrZXk6ImdldExhc3RGdWxseVZpc2libGVSb3ciLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW5zdGFuY2Uucm93SW5kZXhNYXBwZXIuZ2V0VmlzdWFsRnJvbVJlbmRlcmFibGVJbmRleCh0aGlzLmluc3RhbmNlLnZpZXcuX3d0Lnd0U2Nyb2xsLmdldExhc3RWaXNpYmxlUm93KCkp''@;'; + put 'put ''fX0se2tleToiZ2V0Rmlyc3RGdWxseVZpc2libGVDb2x1bW4iLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW5zdGFuY2UuY29sdW1uSW5kZXhNYXBwZXIuZ2V0VmlzdWFsRnJvbVJlbmRlcmFibGVJbmRleCh0aGlzLmluc3RhbmNlLnZpZXcuX3d0Lnd0U2Nyb2xsLmdldEZpcnN0Vmlz''@;'; + put 'put ''aWJsZUNvbHVtbigpKX19LHtrZXk6ImdldExhc3RGdWxseVZpc2libGVDb2x1bW4iLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW5zdGFuY2UuY29sdW1uSW5kZXhNYXBwZXIuZ2V0VmlzdWFsRnJvbVJlbmRlcmFibGVJbmRleCh0aGlzLmluc3RhbmNlLnZpZXcuX3d0Lnd0U2Nyb2xs''@;'; + put 'put ''LmdldExhc3RWaXNpYmxlQ29sdW1uKCkpfX0se2tleToiZGVzdHJveSIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLl93dC5kZXN0cm95KCksdGhpcy5ldmVudE1hbmFnZXIuZGVzdHJveSgpfX1dKSxkfSgpO2NvbnN0IEJRZT1SUWU7dmFyICRaPUxwKCJjZWxsVHlwZXMiKSxQUWU9JFoucmVnaXN0''@;'; + put 'put ''ZXIsRlFlPSRaLmdldEl0ZW0sSkNlPSRaLmhhc0l0ZW0sSFFlPSRaLmdldE5hbWVzO2Z1bmN0aW9uIFplZShkKXtpZighSkNlKGQpKXRocm93IEVycm9yKCdZb3UgZGVjbGFyZWQgY2VsbCB0eXBlICInLmNvbmNhdChkLCciIGFzIGEgc3RyaW5nIHRoYXQgaXMgbm90IG1hcHBlZCB0byBhIGtu''@;'; + put 'put ''b3duIG9iamVjdC5cbiAgICAgICAgICAgICAgICAgQ2VsbCB0eXBlIG11c3QgYmUgYW4gb2JqZWN0IG9yIGEgc3RyaW5nIG1hcHBlZCB0byBhbiBvYmplY3QgcmVnaXN0ZXJlZCBieVxuICAgICAgICAgICAgICAgICAiSGFuZHNvbnRhYmxlLmNlbGxUeXBlcy5yZWdpc3RlckNlbGxUeXBlIiBt''@;'; + put 'put ''ZXRob2QnKSk7cmV0dXJuIEZRZShkKX1mdW5jdGlvbiBrOChkLGcpeyJzdHJpbmciIT10eXBlb2YgZCYmKGQ9KGc9ZCkuQ0VMTF9UWVBFKTt2YXIgdj1nLmVkaXRvcix5PWcucmVuZGVyZXIsQz1nLnZhbGlkYXRvcjt2JiZ1ZChkLHYpLHkmJk1nKGQseSksQyYmcE8oZCxDKSxQUWUoZCxnKX1m''@;'; + put 'put ''dW5jdGlvbiBXZGUoZCl7cmV0dXJuKFdkZT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihnKXtyZXR1cm4gdHlwZW9mIGd9OmZ1bmN0aW9uKGcpe3JldHVybiBnJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZn''@;'; + put 'put ''LmNvbnN0cnVjdG9yPT09U3ltYm9sJiZnIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgZ30pKGQpfXZhciBYQ2U9IkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaIixZZGU9WENlLmxlbmd0aDtmdW5jdGlvbiB6ZWUoZCl7Zm9yKHZhciB2LGc9ZCsxLGg9IiI7Zz4wOyl2PShn''@;'; + put 'put ''LTEpJVlkZSxoPVN0cmluZy5mcm9tQ2hhckNvZGUoNjUrdikraCxnPXBhcnNlSW50KChnLXYpL1lkZSwxMCk7cmV0dXJuIGh9ZnVuY3Rpb24gTlFlKGQpe3ZhciBnPTA7aWYoZClmb3IodmFyIGg9MCx2PWQubGVuZ3RoLTE7aDxkLmxlbmd0aDtoKz0xLHYtPTEpZys9TWF0aC5wb3coWWRlLHYp''@;'; + put 'put ''KihYQ2UuaW5kZXhPZihkW2hdKSsxKTtyZXR1cm4gZy0xfWZ1bmN0aW9uIFZRZSgpe3ZhciB2LHksZD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06MTAwLGc9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJn''@;'; + put 'put ''dW1lbnRzWzFdOjQsaD1bXTtmb3Iodj0wO3Y8ZDt2Kyspe3ZhciBDPVtdO2Zvcih5PTA7eTxnO3krKylDLnB1c2goemVlKHkpKyh2KzEpKTtoLnB1c2goQyl9cmV0dXJuIGh9ZnVuY3Rpb24galFlKCl7dmFyIHYseSxkPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBd''@;'; + put 'put ''P2FyZ3VtZW50c1swXToxMDAsZz1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06NCxoPVtdO2Zvcih2PTA7djxkO3YrKyl7dmFyIEM9e307Zm9yKHk9MDt5PGc7eSsrKUNbInByb3AiLmNvbmNhdCh5KV09emVlKHkpKyh2KzEpO2gucHVzaChD''@;'; + put 'put ''KX1yZXR1cm4gaH1mdW5jdGlvbiBaUWUoZCxnKXtmb3IodmFyIHYsaD1bXSx5PTA7eTxkO3krKyl7dj1bXTtmb3IodmFyIEM9MDtDPGc7QysrKXYucHVzaCgiIik7aC5wdXNoKHYpfXJldHVybiBofWZ1bmN0aW9uIHFaKGQsZyl7dmFyIGg9dm9pZCAwPT09Z3x8ZztyZXR1cm4gZnVuY3Rpb24o''@;'; + put 'put ''eSxDKXtyZXR1cm4gZnVuY3Rpb24gSShqKXtpZihqKXtpZihvMShqLGQpJiZ2b2lkIDAhPT1qW2RdKXJldHVybiBqW2RdO2lmKG8xKGosInR5cGUiKSYmai50eXBlKXtpZigic3RyaW5nIiE9dHlwZW9mIGoudHlwZSl0aHJvdyBuZXcgRXJyb3IoJ0NlbGwgInR5cGUiIG11c3QgYmUgYSBzdHJp''@;'; + put 'put ''bmcnKTt2YXIgdWU9WmVlKGoudHlwZSk7aWYobzEodWUsZCkpcmV0dXJuIHVlW2RdO2lmKGgpcmV0dXJufXJldHVybiBJKE9iamVjdC5nZXRQcm90b3R5cGVPZihqKSl9fSgibnVtYmVyIj09dHlwZW9mIHk/dGhpcy5nZXRDZWxsTWV0YSh5LEMpOnkpfX1mdW5jdGlvbiBVZGUoZCl7dmFyIGc9''@;'; + put 'put ''YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOjAsaD1kLHY9W107cmV0dXJuKCFBcnJheS5pc0FycmF5KGQpfHwhQXJyYXkuaXNBcnJheShkWzBdKSkmJihoPVtkXSksaC5mb3JFYWNoKGZ1bmN0aW9uKHksQyl7QXJyYXkuaXNBcnJheSh5KT95''@;'; + put 'put ''LmZvckVhY2goZnVuY3Rpb24oSSxqKXt2LnB1c2goW0MrZyxqLEldKX0pOk9iamVjdC5rZXlzKHkpLmZvckVhY2goZnVuY3Rpb24oSSl7di5wdXNoKFtDK2csSSx5W0ldXSl9KX0pLHZ9ZnVuY3Rpb24gUWRlKGQpe3ZhciBnPTA7cmV0dXJuIEFycmF5LmlzQXJyYXkoZCkmJihkWzBdJiZBcnJh''@;'; + put 'put ''eS5pc0FycmF5KGRbMF0pP2c9ZFswXS5sZW5ndGg6ZFswXSYmeGwoZFswXSkmJihnPUpxKGRbMF0pKSksZ31mdW5jdGlvbiBLQ2UoZCl7cmV0dXJuISEoQXJyYXkuaXNBcnJheShkKSYmZC5sZW5ndGgmJmQuZXZlcnkoZnVuY3Rpb24oZyl7cmV0dXJuIEFycmF5LmlzQXJyYXkoZyl9KSl9ZnVu''@;'; + put 'put ''Y3Rpb24gJENlKGQpe3JldHVybiEhKEFycmF5LmlzQXJyYXkoZCkmJmQubGVuZ3RoJiZkLmV2ZXJ5KGZ1bmN0aW9uKGcpe3JldHVybiJvYmplY3QiPT09V2RlKGcpJiYhQXJyYXkuaXNBcnJheShnKSYmbnVsbCE9PWd9KSl9ZnVuY3Rpb24gelFlKGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykp''@;'; + put 'put ''dGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9ZnVuY3Rpb24gcUNlKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZh''@;'; + put 'put ''bHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19dmFyIFdRZT1mdW5jdGlvbigpe2Z1bmN0aW9uIGQoZyl7dmFyIGg9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOltdO3pRZSh0aGlz''@;'; + put 'put ''LGQpLHRoaXMuaG90PWcsdGhpcy5kYXRhPWgsdGhpcy5kYXRhVHlwZT0iYXJyYXkiLHRoaXMuY29sVG9Qcm9wPWZ1bmN0aW9uKCl7fSx0aGlzLnByb3BUb0NvbD1mdW5jdGlvbigpe319cmV0dXJuIGZ1bmN0aW9uIEdRZShkLGcsaCl7ZyYmcUNlKGQucHJvdG90eXBlLGcpLGgmJnFDZShkLGgp''@;'; + put 'put ''LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShkLFt7a2V5OiJtb2RpZnlSb3dEYXRhIix2YWx1ZTpmdW5jdGlvbihoKXt2YXIgdjtyZXR1cm4gdGhpcy5ob3QuaGFzSG9vaygibW9kaWZ5Um93RGF0YSIpJiYodj10aGlzLmhvdC5ydW5Ib29rcygi''@;'; + put 'put ''bW9kaWZ5Um93RGF0YSIsaCkpLHZvaWQgMD09PXZ8fE51bWJlci5pc0ludGVnZXIodik/dGhpcy5kYXRhW2hdOnZ9fSx7a2V5OiJnZXREYXRhIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBoPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdJiZhcmd1bWVudHNbMF07cmV0''@;'; + put 'put ''dXJuIHRoaXMuZGF0YSYmMCE9PXRoaXMuZGF0YS5sZW5ndGg/dGhpcy5nZXRCeVJhbmdlKG51bGwsbnVsbCxoKTp0aGlzLmRhdGF9fSx7a2V5OiJzZXREYXRhIix2YWx1ZTpmdW5jdGlvbihoKXt0aGlzLmRhdGE9aH19LHtrZXk6ImdldEF0Q29sdW1uIix2YWx1ZTpmdW5jdGlvbihoKXt2YXIg''@;'; + put 'put ''dj10aGlzLHk9W107cmV0dXJuIFVyKHRoaXMuZGF0YSxmdW5jdGlvbihDLEkpe3ZhciBqPXYuZ2V0QXRDZWxsKEksaCk7eS5wdXNoKGopfSkseX19LHtrZXk6ImdldEF0Um93Iix2YWx1ZTpmdW5jdGlvbihoLHYseSl7dmFyIEM9dGhpcyxJPWFyZ3VtZW50cy5sZW5ndGg+MyYmdm9pZCAwIT09''@;'; + put 'put ''YXJndW1lbnRzWzNdJiZhcmd1bWVudHNbM10saj12b2lkIDA9PT12JiZ2b2lkIDA9PT15LHVlPW51bGwsX2U9bnVsbDtpZih1ZT10aGlzLm1vZGlmeVJvd0RhdGEoaCksQXJyYXkuaXNBcnJheSh1ZSkpX2U9W10saj91ZS5mb3JFYWNoKGZ1bmN0aW9uKEtlLGR0KXtfZVtkdF09Qy5nZXRBdFBo''@;'; + put 'put ''eXNpY2FsQ2VsbChoLGR0LHVlKX0pOmlhKHYseSxmdW5jdGlvbihLZSl7X2VbS2Utdl09Qy5nZXRBdFBoeXNpY2FsQ2VsbChoLEtlLHVlKX0pO2Vsc2UgaWYoeGwodWUpfHxVMih1ZSkpaWYoX2U9ST9bXTp7fSwhanx8SSl7dmFyIEJlPTAsTmU9dGhpcy5jb3VudEZpcnN0Um93S2V5cygpLTE7''@;'; + put 'put ''aWEoQmUsTmUsZnVuY3Rpb24oS2Upe3ZhciBkdD1DLmNvbFRvUHJvcChLZSk7aWYoS2U+PSh2fHxCZSkmJktlPD0oeXx8TmUpJiYhTnVtYmVyLmlzSW50ZWdlcihkdCkpe3ZhciBPdD1DLmdldEF0UGh5c2ljYWxDZWxsKGgsZHQsdWUpO0k/X2UucHVzaChPdCk6UXEoX2UsZHQsT3QpfX0pfWVs''@;'; + put 'put ''c2UgR2wodWUsZnVuY3Rpb24oS2UsZHQpe1FxKF9lLGR0LEMuZ2V0QXRQaHlzaWNhbENlbGwoaCxkdCx1ZSkpfSk7cmV0dXJuIF9lfX0se2tleToic2V0QXRDZWxsIix2YWx1ZTpmdW5jdGlvbihoLHYseSl7aWYoIShoPj10aGlzLmNvdW50Um93cygpfHx2Pj10aGlzLmNvdW50Rmlyc3RSb3dL''@;'; + put 'put ''ZXlzKCkpKXtpZih0aGlzLmhvdC5oYXNIb29rKCJtb2RpZnlTb3VyY2VEYXRhIikpe3ZhciBDPVNTKHkpO3RoaXMuaG90LnJ1bkhvb2tzKCJtb2RpZnlTb3VyY2VEYXRhIixoLHRoaXMucHJvcFRvQ29sKHYpLEMsInNldCIpLEMuaXNUb3VjaGVkKCkmJih5PUMudmFsdWUpfU51bWJlci5pc0lu''@;'; + put 'put ''dGVnZXIodik/dGhpcy5kYXRhW2hdW3ZdPXk6UXEodGhpcy5kYXRhW2hdLHYseSl9fX0se2tleToiZ2V0QXRQaHlzaWNhbENlbGwiLHZhbHVlOmZ1bmN0aW9uKGgsdix5KXt2YXIgQz1udWxsO2lmKHkmJihDPSJzdHJpbmciPT10eXBlb2Ygdj9wYmUoeSx2KToiZnVuY3Rpb24iPT10eXBlb2Yg''@;'; + put 'put ''dj92KHkpOnlbdl0pLHRoaXMuaG90Lmhhc0hvb2soIm1vZGlmeVNvdXJjZURhdGEiKSl7dmFyIEk9U1MoQyk7dGhpcy5ob3QucnVuSG9va3MoIm1vZGlmeVNvdXJjZURhdGEiLGgsdGhpcy5jb2xUb1Byb3AodiksSSwiZ2V0IiksSS5pc1RvdWNoZWQoKSYmKEM9SS52YWx1ZSl9cmV0dXJuIEN9''@;'; + put 'put ''fSx7a2V5OiJnZXRBdENlbGwiLHZhbHVlOmZ1bmN0aW9uKGgsdil7dmFyIHk9dGhpcy5tb2RpZnlSb3dEYXRhKGgpO3JldHVybiB0aGlzLmdldEF0UGh5c2ljYWxDZWxsKGgsdGhpcy5jb2xUb1Byb3AodikseSl9fSx7a2V5OiJnZXRCeVJhbmdlIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBoPXRo''@;'; + put 'put ''aXMsdj1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06bnVsbCx5PWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTpudWxsLEM9YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVu''@;'; + put 'put ''dHNbMl0mJmFyZ3VtZW50c1syXSxJPSExLGo9bnVsbCx1ZT1udWxsLF9lPW51bGwsQmU9bnVsbDtudWxsPT09dnx8bnVsbD09PXk/KEk9ITAsaj0wLF9lPXRoaXMuY291bnRSb3dzKCktMSk6KGo9TWF0aC5taW4odi5yb3cseS5yb3cpLHVlPU1hdGgubWluKHYuY29sLHkuY29sKSxfZT1NYXRo''@;'; + put 'put ''Lm1heCh2LnJvdyx5LnJvdyksQmU9TWF0aC5tYXgodi5jb2wseS5jb2wpKTt2YXIgTmU9W107cmV0dXJuIGlhKGosX2UsZnVuY3Rpb24oS2Upe05lLnB1c2goST9oLmdldEF0Um93KEtlLHZvaWQgMCx2b2lkIDAsQyk6aC5nZXRBdFJvdyhLZSx1ZSxCZSxDKSl9KSxOZX19LHtrZXk6ImNvdW50''@;'; + put 'put ''Um93cyIsdmFsdWU6ZnVuY3Rpb24oKXtpZih0aGlzLmhvdC5oYXNIb29rKCJtb2RpZnlTb3VyY2VMZW5ndGgiKSl7dmFyIGg9dGhpcy5ob3QucnVuSG9va3MoIm1vZGlmeVNvdXJjZUxlbmd0aCIpO2lmKE51bWJlci5pc0ludGVnZXIoaCkpcmV0dXJuIGh9cmV0dXJuIHRoaXMuZGF0YS5sZW5n''@;'; + put 'put ''dGh9fSx7a2V5OiJjb3VudEZpcnN0Um93S2V5cyIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gUWRlKHRoaXMuZGF0YSl9fSx7a2V5OiJkZXN0cm95Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuZGF0YT1udWxsLHRoaXMuaG90PW51bGx9fV0pLGR9KCk7Y29uc3QgWVFlPVdRZTtMKDIwMjczKSxM''@;'; + put 'put ''KDU0NzQwKTt2YXIgZWtlPXtfbG9jYWxIb29rczpPYmplY3QuY3JlYXRlKG51bGwpLGFkZExvY2FsSG9vazpmdW5jdGlvbihnLGgpe3JldHVybiB0aGlzLl9sb2NhbEhvb2tzW2ddfHwodGhpcy5fbG9jYWxIb29rc1tnXT1bXSksdGhpcy5fbG9jYWxIb29rc1tnXS5wdXNoKGgpLHRoaXN9LHJ1''@;'; + put 'put ''bkxvY2FsSG9va3M6ZnVuY3Rpb24oZyxoLHYseSxDLEksail7aWYodGhpcy5fbG9jYWxIb29rc1tnXSlmb3IodmFyIHVlPXRoaXMuX2xvY2FsSG9va3NbZ10ubGVuZ3RoLF9lPTA7X2U8dWU7X2UrKylpZWUodGhpcy5fbG9jYWxIb29rc1tnXVtfZV0sdGhpcyxoLHYseSxDLEksail9LGNsZWFy''@;'; + put 'put ''TG9jYWxIb29rczpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9sb2NhbEhvb2tzPXt9LHRoaXN9fTtTZyhla2UsIk1JWElOX05BTUUiLCJsb2NhbEhvb2tzIix7d3JpdGFibGU6ITEsZW51bWVyYWJsZTohMX0pO2NvbnN0IGNkPWVrZTtmdW5jdGlvbiBRUWUoZCxnKXtpZighKGQgaW5zdGFuY2Vv''@;'; + put 'put ''ZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX1mdW5jdGlvbiB0a2UoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0h''@;'; + put 'put ''MCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX12YXIgUlM9ZnVuY3Rpb24oKXtmdW5jdGlvbiBkKCl7dmFyIGc9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOm51bGw7UVFl''@;'; + put 'put ''KHRoaXMsZCksdGhpcy5pbmRleGVkVmFsdWVzPVtdLHRoaXMuaW5pdFZhbHVlT3JGbj1nfXJldHVybiBmdW5jdGlvbiBKUWUoZCxnLGgpe2cmJnRrZShkLnByb3RvdHlwZSxnKSxoJiZ0a2UoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0o''@;'; + put 'put ''ZCxbe2tleToiZ2V0VmFsdWVzIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmluZGV4ZWRWYWx1ZXN9fSx7a2V5OiJnZXRWYWx1ZUF0SW5kZXgiLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB2PXRoaXMuaW5kZXhlZFZhbHVlcztpZihoPHYubGVuZ3RoKXJldHVybiB2W2hdfX0se2tleToi''@;'; + put 'put ''c2V0VmFsdWVzIix2YWx1ZTpmdW5jdGlvbihoKXt0aGlzLmluZGV4ZWRWYWx1ZXM9aC5zbGljZSgpLHRoaXMucnVuTG9jYWxIb29rcygiY2hhbmdlIil9fSx7a2V5OiJzZXRWYWx1ZUF0SW5kZXgiLHZhbHVlOmZ1bmN0aW9uKGgsdil7cmV0dXJuIGg8dGhpcy5pbmRleGVkVmFsdWVzLmxlbmd0''@;'; + put 'put ''aCYmKHRoaXMuaW5kZXhlZFZhbHVlc1toXT12LHRoaXMucnVuTG9jYWxIb29rcygiY2hhbmdlIiksITApfX0se2tleToiY2xlYXIiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5zZXREZWZhdWx0VmFsdWVzKCl9fSx7a2V5OiJnZXRMZW5ndGgiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMu''@;'; + put 'put ''Z2V0VmFsdWVzKCkubGVuZ3RofX0se2tleToic2V0RGVmYXVsdFZhbHVlcyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD10aGlzLHY9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOnRoaXMuaW5kZXhlZFZhbHVlcy5sZW5ndGg7dGhpcy5pbmRl''@;'; + put 'put ''eGVkVmFsdWVzLmxlbmd0aD0wLFUyKHRoaXMuaW5pdFZhbHVlT3JGbik/aWEodi0xLGZ1bmN0aW9uKHkpe3JldHVybiBoLmluZGV4ZWRWYWx1ZXMucHVzaChoLmluaXRWYWx1ZU9yRm4oeSkpfSk6aWEodi0xLGZ1bmN0aW9uKCl7cmV0dXJuIGguaW5kZXhlZFZhbHVlcy5wdXNoKGguaW5pdFZh''@;'; + put 'put ''bHVlT3JGbil9KSx0aGlzLnJ1bkxvY2FsSG9va3MoImNoYW5nZSIpfX0se2tleToiaW5pdCIsdmFsdWU6ZnVuY3Rpb24oaCl7cmV0dXJuIHRoaXMuc2V0RGVmYXVsdFZhbHVlcyhoKSx0aGlzLnJ1bkxvY2FsSG9va3MoImluaXQiKSx0aGlzfX0se2tleToiaW5zZXJ0Iix2YWx1ZTpmdW5jdGlv''@;'; + put 'put ''bigpe3RoaXMucnVuTG9jYWxIb29rcygiY2hhbmdlIil9fSx7a2V5OiJyZW1vdmUiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5ydW5Mb2NhbEhvb2tzKCJjaGFuZ2UiKX19LHtrZXk6ImRlc3Ryb3kiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5jbGVhckxvY2FsSG9va3MoKSx0aGlzLmluZGV4ZWRW''@;'; + put 'put ''YWx1ZXM9bnVsbCx0aGlzLmluaXRWYWx1ZU9yRm49bnVsbH19XSksZH0oKTtmdW5jdGlvbiBKZGUoZCl7cmV0dXJuIGZ1bmN0aW9uIHFRZShkKXtpZihBcnJheS5pc0FycmF5KGQpKXJldHVybiBYZGUoZCl9KGQpfHxmdW5jdGlvbiAkUWUoZCl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBTeW1i''@;'; + put 'put ''b2wmJm51bGwhPWRbU3ltYm9sLml0ZXJhdG9yXXx8bnVsbCE9ZFsiQEBpdGVyYXRvciJdKXJldHVybiBBcnJheS5mcm9tKGQpfShkKXx8ZnVuY3Rpb24gS1FlKGQsZyl7aWYoZCl7aWYoInN0cmluZyI9PXR5cGVvZiBkKXJldHVybiBYZGUoZCxnKTt2YXIgaD1PYmplY3QucHJvdG90eXBlLnRv''@;'; + put 'put ''U3RyaW5nLmNhbGwoZCkuc2xpY2UoOCwtMSk7aWYoIk9iamVjdCI9PT1oJiZkLmNvbnN0cnVjdG9yJiYoaD1kLmNvbnN0cnVjdG9yLm5hbWUpLCJNYXAiPT09aHx8IlNldCI9PT1oKXJldHVybiBBcnJheS5mcm9tKGQpO2lmKCJBcmd1bWVudHMiPT09aHx8L14oPzpVaXxJKW50KD86OHwxNnwz''@;'; + put 'put ''MikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QoaCkpcmV0dXJuIFhkZShkLGcpfX0oZCl8fGZ1bmN0aW9uIFhRZSgpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBzcHJlYWQgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5v''@;'; + put 'put ''bi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfWZ1bmN0aW9uIFhkZShkLGcpeyhudWxsPT1nfHxnPmQubGVuZ3RoKSYmKGc9ZC5sZW5ndGgpO2Zvcih2YXIgaD0wLHY9bmV3IEFycmF5KGcpO2g8ZztoKyspdltoXT1kW2hdO3JldHVy''@;'; + put 'put ''biB2fWZ1bmN0aW9uIEtkZShkLGcsaCx2KXt2YXIgeT1oLmxlbmd0aD9oWzBdOnZvaWQgMDtyZXR1cm5bXS5jb25jYXQoSmRlKGQuc2xpY2UoMCx5KSksSmRlKGgubWFwKGZ1bmN0aW9uKEMsSSl7cmV0dXJuIFUyKHYpP3YoQyxJKTp2fSkpLEpkZSh2b2lkIDA9PT15P1tdOmQuc2xpY2UoeSkp''@;'; + put 'put ''KX1mdW5jdGlvbiAkZGUoZCxnKXtyZXR1cm4gZzQoZCxmdW5jdGlvbihoLHYpe3JldHVybiExPT09Zy5pbmNsdWRlcyh2KX0pfWZ1bmN0aW9uIHFkZShkKXtyZXR1cm4ocWRlPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0''@;'; + put 'put ''aW9uKGcpe3JldHVybiB0eXBlb2YgZ306ZnVuY3Rpb24oZyl7cmV0dXJuIGcmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmcuY29uc3RydWN0b3I9PT1TeW1ib2wmJmchPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBnfSkoZCl9ZnVuY3Rpb24gZUplKGQsZyl7aWYoIShk''@;'; + put 'put ''IGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9ZnVuY3Rpb24gbmtlKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25m''@;'; + put 'put ''aWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19ZnVuY3Rpb24gZXooKXtyZXR1cm4gZXo9InVuZGVmaW5lZCIhPXR5cGVvZiBSZWZsZWN0JiZSZWZsZWN0LmdldD9SZWZsZWN0LmdldC5iaW5kKCk6ZnVuY3Rp''@;'; + put 'put ''b24oZyxoLHYpe3ZhciB5PW5KZShnLGgpO2lmKHkpe3ZhciBDPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoeSxoKTtyZXR1cm4gQy5nZXQ/Qy5nZXQuY2FsbChhcmd1bWVudHMubGVuZ3RoPDM/Zzp2KTpDLnZhbHVlfX0sZXouYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9u''@;'; + put 'put ''IG5KZShkLGcpe2Zvcig7IU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChkLGcpJiZudWxsIT09KGQ9QlMoZCkpOyk7cmV0dXJuIGR9ZnVuY3Rpb24gZTRlKGQsZyl7cmV0dXJuKGU0ZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQo''@;'; + put 'put ''KTpmdW5jdGlvbih2LHkpe3JldHVybiB2Ll9fcHJvdG9fXz15LHZ9KShkLGcpfWZ1bmN0aW9uIG9KZShkLGcpe2lmKGcmJigib2JqZWN0Ij09PXFkZShnKXx8ImZ1bmN0aW9uIj09dHlwZW9mIGcpKXJldHVybiBnO2lmKHZvaWQgMCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiRGVyaXZlZCBj''@;'; + put 'put ''b25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWQiKTtyZXR1cm4gZnVuY3Rpb24gYUplKGQpe2lmKHZvaWQgMD09PWQpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBj''@;'; + put 'put ''YWxsZWQiKTtyZXR1cm4gZH0oZCl9ZnVuY3Rpb24gQlMoZCl7cmV0dXJuKEJTPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3QuZ2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKGgpe3JldHVybiBoLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKGgpfSkoZCl9QjIoUlMs''@;'; + put 'put ''Y2QpO3ZhciBEdz1mdW5jdGlvbihkKXshZnVuY3Rpb24gckplKGQsZyl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGcmJm51bGwhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uIik7ZC5wcm90b3R5cGU9T2Jq''@;'; + put 'put ''ZWN0LmNyZWF0ZShnJiZnLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOmQsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGcmJmU0ZShkLGcpfShoLGQpO3ZhciBnPWZ1bmN0aW9uIGlK''@;'; + put 'put ''ZShkKXt2YXIgZz1mdW5jdGlvbiBsSmUoKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIFJlZmxlY3R8fCFSZWZsZWN0LmNvbnN0cnVjdHx8UmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT10eXBlb2YgUHJveHkpcmV0dXJuITA7dHJ5e3JldHVybiBCb29sZWFu''@;'; + put 'put ''LnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSxmdW5jdGlvbigpe30pKSwhMH1jYXRjaChkKXtyZXR1cm4hMX19KCk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHksdj1CUyhkKTtpZihnKXt2YXIgQz1CUyh0aGlzKS5jb25zdHJ1Y3Rvcjt5PVJlZmxl''@;'; + put 'put ''Y3QuY29uc3RydWN0KHYsYXJndW1lbnRzLEMpfWVsc2UgeT12LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gb0plKHRoaXMseSl9fShoKTtmdW5jdGlvbiBoKCl7cmV0dXJuIGVKZSh0aGlzLGgpLGcuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiBmdW5jdGlvbiB0SmUoZCxnLGgp''@;'; + put 'put ''e2cmJm5rZShkLnByb3RvdHlwZSxnKSxoJiZua2UoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oaCxbe2tleToiaW5zZXJ0Iix2YWx1ZTpmdW5jdGlvbih5LEMpe3RoaXMuaW5kZXhlZFZhbHVlcz1LZGUodGhpcy5pbmRleGVkVmFsdWVz''@;'; + put 'put ''LDAsQyx0aGlzLmluaXRWYWx1ZU9yRm4pLGV6KEJTKGgucHJvdG90eXBlKSwiaW5zZXJ0Iix0aGlzKS5jYWxsKHRoaXMseSxDKX19LHtrZXk6InJlbW92ZSIsdmFsdWU6ZnVuY3Rpb24oeSl7dGhpcy5pbmRleGVkVmFsdWVzPSRkZSh0aGlzLmluZGV4ZWRWYWx1ZXMseSksZXooQlMoaC5wcm90''@;'; + put 'put ''b3R5cGUpLCJyZW1vdmUiLHRoaXMpLmNhbGwodGhpcyx5KX19XSksaH0oUlMpO2Z1bmN0aW9uIHQ0ZShkKXtyZXR1cm4odDRlPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGcpe3JldHVybiB0eXBlb2YgZ306ZnVu''@;'; + put 'put ''Y3Rpb24oZyl7cmV0dXJuIGcmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmcuY29uc3RydWN0b3I9PT1TeW1ib2wmJmchPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBnfSkoZCl9ZnVuY3Rpb24gc0plKGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5''@;'; + put 'put ''cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9ZnVuY3Rpb24gcmtlKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2''@;'; + put 'put ''LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19ZnVuY3Rpb24gbjRlKGQsZyl7cmV0dXJuKG40ZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbih2LHkpe3JldHVybiB2Ll9fcHJvdG9fXz15LHZ9''@;'; + put 'put ''KShkLGcpfWZ1bmN0aW9uIGhKZShkLGcpe2lmKGcmJigib2JqZWN0Ij09PXQ0ZShnKXx8ImZ1bmN0aW9uIj09dHlwZW9mIGcpKXJldHVybiBnO2lmKHZvaWQgMCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1''@;'; + put 'put ''bmRlZmluZWQiKTtyZXR1cm4gZnVuY3Rpb24gZEplKGQpe2lmKHZvaWQgMD09PWQpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4gZH0oZCl9ZnVuY3Rpb24gR2VlKGQpe3Jl''@;'; + put 'put ''dHVybihHZWU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24oaCl7cmV0dXJuIGguX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YoaCl9KShkKX12YXIgV2VlPWZ1bmN0aW9uKGQpeyFmdW5jdGlvbiBjSmUoZCxnKXtpZigi''@;'; + put 'put ''ZnVuY3Rpb24iIT10eXBlb2YgZyYmbnVsbCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTtkLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGcmJmcucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6''@;'; + put 'put ''ZCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZyYmbjRlKGQsZyl9KGgsZCk7dmFyIGc9ZnVuY3Rpb24gZkplKGQpe3ZhciBnPWZ1bmN0aW9uIHBKZSgpe2lmKCJ1bmRlZmluZWQiPT10eXBl''@;'; + put 'put ''b2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0fHxSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBQcm94eSlyZXR1cm4hMDt0cnl7cmV0dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29s''@;'; + put 'put ''ZWFuLFtdLGZ1bmN0aW9uKCl7fSkpLCEwfWNhdGNoKGQpe3JldHVybiExfX0oKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgeSx2PUdlZShkKTtpZihnKXt2YXIgQz1HZWUodGhpcykuY29uc3RydWN0b3I7eT1SZWZsZWN0LmNvbnN0cnVjdCh2LGFyZ3VtZW50cyxDKX1lbHNlIHk9di5hcHBseSh0''@;'; + put 'put ''aGlzLGFyZ3VtZW50cyk7cmV0dXJuIGhKZSh0aGlzLHkpfX0oaCk7ZnVuY3Rpb24gaCgpe3ZhciB2PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdJiZhcmd1bWVudHNbMF07cmV0dXJuIHNKZSh0aGlzLGgpLGcuY2FsbCh0aGlzLHYpfXJldHVybiBmdW5jdGlvbiB1''@;'; + put 'put ''SmUoZCxnLGgpe2cmJnJrZShkLnByb3RvdHlwZSxnKSxoJiZya2UoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oaCxbe2tleToiZ2V0SGlkZGVuSW5kZXhlcyIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gU3UodGhpcy5nZXRWYWx1ZXMo''@;'; + put 'put ''KSxmdW5jdGlvbih5LEMsSSl7cmV0dXJuIEMmJnkucHVzaChJKSx5fSxbXSl9fV0pLGh9KER3KTtmdW5jdGlvbiByNGUoZCl7cmV0dXJuIGZ1bmN0aW9uIEFKZShkKXtpZihBcnJheS5pc0FycmF5KGQpKXJldHVybiBpNGUoZCl9KGQpfHxmdW5jdGlvbiB2SmUoZCl7aWYoInVuZGVmaW5lZCIh''@;'; + put 'put ''PXR5cGVvZiBTeW1ib2wmJm51bGwhPWRbU3ltYm9sLml0ZXJhdG9yXXx8bnVsbCE9ZFsiQEBpdGVyYXRvciJdKXJldHVybiBBcnJheS5mcm9tKGQpfShkKXx8ZnVuY3Rpb24gbUplKGQsZyl7aWYoZCl7aWYoInN0cmluZyI9PXR5cGVvZiBkKXJldHVybiBpNGUoZCxnKTt2YXIgaD1PYmplY3Qu''@;'; + put 'put ''cHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZCkuc2xpY2UoOCwtMSk7aWYoIk9iamVjdCI9PT1oJiZkLmNvbnN0cnVjdG9yJiYoaD1kLmNvbnN0cnVjdG9yLm5hbWUpLCJNYXAiPT09aHx8IlNldCI9PT1oKXJldHVybiBBcnJheS5mcm9tKGQpO2lmKCJBcmd1bWVudHMiPT09aHx8L14oPzpVaXxJ''@;'; + put 'put ''KW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QoaCkpcmV0dXJuIGk0ZShkLGcpfX0oZCl8fGZ1bmN0aW9uIGdKZSgpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBzcHJlYWQgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUg''@;'; + put 'put ''aXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfWZ1bmN0aW9uIGk0ZShkLGcpeyhudWxsPT1nfHxnPmQubGVuZ3RoKSYmKGc9ZC5sZW5ndGgpO2Zvcih2YXIgaD0wLHY9bmV3IEFycmF5KGcpO2g8ZztoKyspdlto''@;'; + put 'put ''XT1kW2hdO3JldHVybiB2fWZ1bmN0aW9uIG80ZShkLGcsaCl7cmV0dXJuW10uY29uY2F0KHI0ZShkLnNsaWNlKDAsZykpLHI0ZShoKSxyNGUoZC5zbGljZShnKSkpfWZ1bmN0aW9uIHR6KGQsZyl7cmV0dXJuIGc0KGQsZnVuY3Rpb24oaCl7cmV0dXJuITE9PT1nLmluY2x1ZGVzKGgpfSl9ZnVu''@;'; + put 'put ''Y3Rpb24gYTRlKGQsZyl7cmV0dXJuIE9sKGQsZnVuY3Rpb24oaCl7cmV0dXJuIGgtZy5maWx0ZXIoZnVuY3Rpb24odil7cmV0dXJuIHY8aH0pLmxlbmd0aH0pfWZ1bmN0aW9uIGw0ZShkLGcpe3ZhciBoPWdbMF0sdj1nLmxlbmd0aDtyZXR1cm4gT2woZCxmdW5jdGlvbih5KXtyZXR1cm4geT49''@;'; + put 'put ''aD95K3Y6eX0pfWZ1bmN0aW9uIHM0ZShkKXtyZXR1cm4oczRlPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGcpe3JldHVybiB0eXBlb2YgZ306ZnVuY3Rpb24oZyl7cmV0dXJuIGcmJiJmdW5jdGlvbiI9PXR5cGVv''@;'; + put 'put ''ZiBTeW1ib2wmJmcuY29uc3RydWN0b3I9PT1TeW1ib2wmJmchPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBnfSkoZCl9ZnVuY3Rpb24gdTRlKGQsZyl7KG51bGw9PWd8fGc+ZC5sZW5ndGgpJiYoZz1kLmxlbmd0aCk7Zm9yKHZhciBoPTAsdj1uZXcgQXJyYXkoZyk7aDxnO2gr''@;'; + put 'put ''Kyl2W2hdPWRbaF07cmV0dXJuIHZ9ZnVuY3Rpb24ga0plKGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9ZnVuY3Rpb24gaWtlKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3Zh''@;'; + put 'put ''ciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19ZnVuY3Rpb24gRXYoKXtyZXR1cm4gRXY9InVuZGVmaW5lZCIhPXR5cGVvZiBS''@;'; + put 'put ''ZWZsZWN0JiZSZWZsZWN0LmdldD9SZWZsZWN0LmdldC5iaW5kKCk6ZnVuY3Rpb24oZyxoLHYpe3ZhciB5PU1KZShnLGgpO2lmKHkpe3ZhciBDPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoeSxoKTtyZXR1cm4gQy5nZXQ/Qy5nZXQuY2FsbChhcmd1bWVudHMubGVuZ3RoPDM/Zzp2''@;'; + put 'put ''KTpDLnZhbHVlfX0sRXYuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIE1KZShkLGcpe2Zvcig7IU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChkLGcpJiZudWxsIT09KGQ9UzgoZCkpOyk7cmV0dXJuIGR9ZnVuY3Rpb24gYzRlKGQsZyl7cmV0dXJuKGM0ZT1PYmpl''@;'; + put 'put ''Y3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbih2LHkpe3JldHVybiB2Ll9fcHJvdG9fXz15LHZ9KShkLGcpfWZ1bmN0aW9uIFRKZShkLGcpe2lmKGcmJigib2JqZWN0Ij09PXM0ZShnKXx8ImZ1bmN0aW9uIj09dHlwZW9mIGcpKXJldHVybiBn''@;'; + put 'put ''O2lmKHZvaWQgMCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWQiKTtyZXR1cm4gb2tlKGQpfWZ1bmN0aW9uIG9rZShkKXtpZih2b2lkIDA9PT1kKXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcigi''@;'; + put 'put ''dGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkIik7cmV0dXJuIGR9ZnVuY3Rpb24gUzgoZCl7cmV0dXJuKFM4PU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3QuZ2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKGgpe3JldHVybiBo''@;'; + put 'put ''Ll9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKGgpfSkoZCl9ZnVuY3Rpb24gREplKGQsZyxoKXtyZXR1cm4gZyBpbiBkP09iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGcse3ZhbHVlOmgsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpkW2ddPWgsZH12''@;'; + put 'put ''YXIgWWVlPWZ1bmN0aW9uKGQpeyFmdW5jdGlvbiBFSmUoZCxnKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZyYmbnVsbCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTtkLnByb3RvdHlwZT1PYmplY3Qu''@;'; + put 'put ''Y3JlYXRlKGcmJmcucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6ZCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZyYmYzRlKGQsZyl9KGgsZCk7dmFyIGc9ZnVuY3Rpb24geEplKGQp''@;'; + put 'put ''e3ZhciBnPWZ1bmN0aW9uIElKZSgpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0fHxSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBQcm94eSlyZXR1cm4hMDt0cnl7cmV0dXJuIEJvb2xlYW4ucHJv''@;'; + put 'put ''dG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLGZ1bmN0aW9uKCl7fSkpLCEwfWNhdGNoKGQpe3JldHVybiExfX0oKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgeSx2PVM4KGQpO2lmKGcpe3ZhciBDPVM4KHRoaXMpLmNvbnN0cnVjdG9yO3k9UmVmbGVjdC5j''@;'; + put 'put ''b25zdHJ1Y3Qodixhcmd1bWVudHMsQyl9ZWxzZSB5PXYuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBUSmUodGhpcyx5KX19KGgpO2Z1bmN0aW9uIGgoKXt2YXIgdjtrSmUodGhpcyxoKTtmb3IodmFyIHk9YXJndW1lbnRzLmxlbmd0aCxDPW5ldyBBcnJheSh5KSxJPTA7STx5O0krKylD''@;'; + put 'put ''W0ldPWFyZ3VtZW50c1tJXTtyZXR1cm4gREplKG9rZSh2PWcuY2FsbC5hcHBseShnLFt0aGlzXS5jb25jYXQoQykpKSwib3JkZXJPZkluZGV4ZXMiLFtdKSx2fXJldHVybiBmdW5jdGlvbiBTSmUoZCxnLGgpe2cmJmlrZShkLnByb3RvdHlwZSxnKSxoJiZpa2UoZCxoKSxPYmplY3QuZGVmaW5l''@;'; + put 'put ''UHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oaCxbe2tleToiZ2V0VmFsdWVzIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXM7cmV0dXJuIHRoaXMub3JkZXJPZkluZGV4ZXMubWFwKGZ1bmN0aW9uKEMpe3JldHVybiB5LmluZGV4ZWRWYWx1ZXNbQ119KX19LHtrZXk6''@;'; + put 'put ''InNldFZhbHVlcyIsdmFsdWU6ZnVuY3Rpb24oeSl7dGhpcy5vcmRlck9mSW5kZXhlcz1mdW5jdGlvbiB5SmUoZCl7cmV0dXJuIGZ1bmN0aW9uIENKZShkKXtpZihBcnJheS5pc0FycmF5KGQpKXJldHVybiB1NGUoZCl9KGQpfHxmdW5jdGlvbiBfSmUoZCl7aWYoInVuZGVmaW5lZCIhPXR5cGVv''@;'; + put 'put ''ZiBTeW1ib2wmJm51bGwhPWRbU3ltYm9sLml0ZXJhdG9yXXx8bnVsbCE9ZFsiQEBpdGVyYXRvciJdKXJldHVybiBBcnJheS5mcm9tKGQpfShkKXx8ZnVuY3Rpb24gYkplKGQsZyl7aWYoZCl7aWYoInN0cmluZyI9PXR5cGVvZiBkKXJldHVybiB1NGUoZCxnKTt2YXIgaD1PYmplY3QucHJvdG90''@;'; + put 'put ''eXBlLnRvU3RyaW5nLmNhbGwoZCkuc2xpY2UoOCwtMSk7aWYoIk9iamVjdCI9PT1oJiZkLmNvbnN0cnVjdG9yJiYoaD1kLmNvbnN0cnVjdG9yLm5hbWUpLCJNYXAiPT09aHx8IlNldCI9PT1oKXJldHVybiBBcnJheS5mcm9tKGQpO2lmKCJBcmd1bWVudHMiPT09aHx8L14oPzpVaXxJKW50KD86''@;'; + put 'put ''OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QoaCkpcmV0dXJuIHU0ZShkLGcpfX0oZCl8fGZ1bmN0aW9uIHdKZSgpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBzcHJlYWQgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFi''@;'; + put 'put ''bGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfShBcnJheSh5Lmxlbmd0aCkua2V5cygpKSxFdihTOChoLnByb3RvdHlwZSksInNldFZhbHVlcyIsdGhpcykuY2FsbCh0aGlzLHkpfX0se2tleToic2V0VmFsdWVBdEluZGV4''@;'; + put 'put ''Iix2YWx1ZTpmdW5jdGlvbih5LEMpe3ZhciBJPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXTp0aGlzLm9yZGVyT2ZJbmRleGVzLmxlbmd0aDtyZXR1cm4geTx0aGlzLmluZGV4ZWRWYWx1ZXMubGVuZ3RoJiYodGhpcy5pbmRleGVkVmFsdWVz''@;'; + put 'put ''W3ldPUMsITE9PT10aGlzLm9yZGVyT2ZJbmRleGVzLmluY2x1ZGVzKHkpJiZ0aGlzLm9yZGVyT2ZJbmRleGVzLnNwbGljZShJLDAseSksdGhpcy5ydW5Mb2NhbEhvb2tzKCJjaGFuZ2UiKSwhMCl9fSx7a2V5OiJjbGVhclZhbHVlIix2YWx1ZTpmdW5jdGlvbih5KXt0aGlzLm9yZGVyT2ZJbmRl''@;'; + put 'put ''eGVzPXR6KHRoaXMub3JkZXJPZkluZGV4ZXMsW3ldKSxVMih0aGlzLmluaXRWYWx1ZU9yRm4pP0V2KFM4KGgucHJvdG90eXBlKSwic2V0VmFsdWVBdEluZGV4Iix0aGlzKS5jYWxsKHRoaXMseSx0aGlzLmluaXRWYWx1ZU9yRm4oeSkpOkV2KFM4KGgucHJvdG90eXBlKSwic2V0VmFsdWVBdElu''@;'; + put 'put ''ZGV4Iix0aGlzKS5jYWxsKHRoaXMseSx0aGlzLmluaXRWYWx1ZU9yRm4pfX0se2tleToiZ2V0TGVuZ3RoIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm9yZGVyT2ZJbmRleGVzLmxlbmd0aH19LHtrZXk6InNldERlZmF1bHRWYWx1ZXMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9YXJn''@;'; + put 'put ''dW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOnRoaXMuaW5kZXhlZFZhbHVlcy5sZW5ndGg7dGhpcy5vcmRlck9mSW5kZXhlcy5sZW5ndGg9MCxFdihTOChoLnByb3RvdHlwZSksInNldERlZmF1bHRWYWx1ZXMiLHRoaXMpLmNhbGwodGhpcyx5KX19''@;'; + put 'put ''LHtrZXk6Imluc2VydCIsdmFsdWU6ZnVuY3Rpb24oeSxDKXt0aGlzLmluZGV4ZWRWYWx1ZXM9S2RlKHRoaXMuaW5kZXhlZFZhbHVlcywwLEMsdGhpcy5pbml0VmFsdWVPckZuKSx0aGlzLm9yZGVyT2ZJbmRleGVzPWw0ZSh0aGlzLm9yZGVyT2ZJbmRleGVzLEMpLEV2KFM4KGgucHJvdG90eXBl''@;'; + put 'put ''KSwiaW5zZXJ0Iix0aGlzKS5jYWxsKHRoaXMseSxDKX19LHtrZXk6InJlbW92ZSIsdmFsdWU6ZnVuY3Rpb24oeSl7dGhpcy5pbmRleGVkVmFsdWVzPSRkZSh0aGlzLmluZGV4ZWRWYWx1ZXMseSksdGhpcy5vcmRlck9mSW5kZXhlcz10eih0aGlzLm9yZGVyT2ZJbmRleGVzLHkpLHRoaXMub3Jk''@;'; + put 'put ''ZXJPZkluZGV4ZXM9YTRlKHRoaXMub3JkZXJPZkluZGV4ZXMseSksRXYoUzgoaC5wcm90b3R5cGUpLCJyZW1vdmUiLHRoaXMpLmNhbGwodGhpcyx5KX19LHtrZXk6ImdldEVudHJpZXMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcztyZXR1cm4gdGhpcy5vcmRlck9mSW5kZXhlcy5tYXAo''@;'; + put 'put ''ZnVuY3Rpb24oQyl7cmV0dXJuW0MseS5nZXRWYWx1ZUF0SW5kZXgoQyldfSl9fV0pLGh9KFJTKTtmdW5jdGlvbiBmNGUoZCl7cmV0dXJuKGY0ZT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihnKXtyZXR1cm4gdHlw''@;'; + put 'put ''ZW9mIGd9OmZ1bmN0aW9uKGcpe3JldHVybiBnJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZnLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZnIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgZ30pKGQpfWZ1bmN0aW9uIExKZShkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRo''@;'; + put 'put ''cm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfWZ1bmN0aW9uIGFrZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1''@;'; + put 'put ''ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fWZ1bmN0aW9uIGg0ZShkLGcpe3JldHVybihoNGU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24odix5KXtyZXR1cm4gdi5fX3By''@;'; + put 'put ''b3RvX189eSx2fSkoZCxnKX1mdW5jdGlvbiBQSmUoZCxnKXtpZihnJiYoIm9iamVjdCI9PT1mNGUoZyl8fCJmdW5jdGlvbiI9PXR5cGVvZiBnKSlyZXR1cm4gZztpZih2b2lkIDAhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIkRlcml2ZWQgY29uc3RydWN0b3JzIG1heSBvbmx5IHJldHVybiBv''@;'; + put 'put ''YmplY3Qgb3IgdW5kZWZpbmVkIik7cmV0dXJuIGZ1bmN0aW9uIEZKZShkKXtpZih2b2lkIDA9PT1kKXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcigidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkIik7cmV0dXJuIGR9KGQpfWZ1bmN0aW9u''@;'; + put 'put ''IFVlZShkKXtyZXR1cm4oVWVlPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3QuZ2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKGgpe3JldHVybiBoLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKGgpfSkoZCl9dmFyIG56PWZ1bmN0aW9uKGQpeyFmdW5jdGlvbiBSSmUo''@;'; + put 'put ''ZCxnKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZyYmbnVsbCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTtkLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGcmJmcucHJvdG90eXBlLHtjb25zdHJ1Y3Rv''@;'; + put 'put ''cjp7dmFsdWU6ZCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZyYmaDRlKGQsZyl9KGgsZCk7dmFyIGc9ZnVuY3Rpb24gQkplKGQpe3ZhciBnPWZ1bmN0aW9uIEhKZSgpe2lmKCJ1bmRlZmlu''@;'; + put 'put ''ZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0fHxSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBQcm94eSlyZXR1cm4hMDt0cnl7cmV0dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0''@;'; + put 'put ''cnVjdChCb29sZWFuLFtdLGZ1bmN0aW9uKCl7fSkpLCEwfWNhdGNoKGQpe3JldHVybiExfX0oKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgeSx2PVVlZShkKTtpZihnKXt2YXIgQz1VZWUodGhpcykuY29uc3RydWN0b3I7eT1SZWZsZWN0LmNvbnN0cnVjdCh2LGFyZ3VtZW50cyxDKX1lbHNlIHk9''@;'; + put 'put ''di5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIFBKZSh0aGlzLHkpfX0oaCk7ZnVuY3Rpb24gaCgpe3ZhciB2PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdJiZhcmd1bWVudHNbMF07cmV0dXJuIExKZSh0aGlzLGgpLGcuY2FsbCh0aGlzLHYpfXJldHVybiBm''@;'; + put 'put ''dW5jdGlvbiBPSmUoZCxnLGgpe2cmJmFrZShkLnByb3RvdHlwZSxnKSxoJiZha2UoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oaCxbe2tleToiZ2V0VHJpbW1lZEluZGV4ZXMiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIFN1KHRoaXMu''@;'; + put 'put ''Z2V0VmFsdWVzKCksZnVuY3Rpb24oeSxDLEkpe3JldHVybiBDJiZ5LnB1c2goSSkseX0sW10pfX1dKSxofShEdyksbGtlPW5ldyBNYXAoW1siaGlkaW5nIixXZWVdLFsiaW5kZXgiLFJTXSxbImxpbmtlZFBoeXNpY2FsSW5kZXhUb1ZhbHVlIixZZWVdLFsicGh5c2ljYWxJbmRleFRvVmFsdWUi''@;'; + put 'put ''LER3XSxbInRyaW1taW5nIixuel1dKTtmdW5jdGlvbiBkNGUoZCl7cmV0dXJuKGQ0ZT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihnKXtyZXR1cm4gdHlwZW9mIGd9OmZ1bmN0aW9uKGcpe3JldHVybiBnJiYiZnVu''@;'; + put 'put ''Y3Rpb24iPT10eXBlb2YgU3ltYm9sJiZnLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZnIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgZ30pKGQpfWZ1bmN0aW9uIHNrZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVu''@;'; + put 'put ''dW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fWZ1bmN0aW9uIHJ6KCl7cmV0dXJuIHJ6PSJ1bmRlZmluZWQiIT10eXBlb2YgUmVmbGVjdCYmUmVmbGVjdC5nZXQ/UmVmbGVj''@;'; + put 'put ''dC5nZXQuYmluZCgpOmZ1bmN0aW9uKGcsaCx2KXt2YXIgeT1aSmUoZyxoKTtpZih5KXt2YXIgQz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHksaCk7cmV0dXJuIEMuZ2V0P0MuZ2V0LmNhbGwoYXJndW1lbnRzLmxlbmd0aDwzP2c6dik6Qy52YWx1ZX19LHJ6LmFwcGx5KHRoaXMs''@;'; + put 'put ''YXJndW1lbnRzKX1mdW5jdGlvbiBaSmUoZCxnKXtmb3IoOyFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZCxnKSYmbnVsbCE9PShkPVBTKGQpKTspO3JldHVybiBkfWZ1bmN0aW9uIHA0ZShkLGcpe3JldHVybihwNGU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5z''@;'; + put 'put ''ZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24odix5KXtyZXR1cm4gdi5fX3Byb3RvX189eSx2fSkoZCxnKX1mdW5jdGlvbiBXSmUoZCxnKXtpZihnJiYoIm9iamVjdCI9PT1kNGUoZyl8fCJmdW5jdGlvbiI9PXR5cGVvZiBnKSlyZXR1cm4gZztpZih2b2lkIDAhPT1nKXRocm93IG5ldyBU''@;'; + put 'put ''eXBlRXJyb3IoIkRlcml2ZWQgY29uc3RydWN0b3JzIG1heSBvbmx5IHJldHVybiBvYmplY3Qgb3IgdW5kZWZpbmVkIik7cmV0dXJuIGZ1bmN0aW9uIFlKZShkKXtpZih2b2lkIDA9PT1kKXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcigidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1''@;'; + put 'put ''cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkIik7cmV0dXJuIGR9KGQpfWZ1bmN0aW9uIFBTKGQpe3JldHVybihQUz1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihoKXtyZXR1cm4gaC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5''@;'; + put 'put ''cGVPZihoKX0pKGQpfXZhciB1a2U9ZnVuY3Rpb24oZCl7IWZ1bmN0aW9uIHpKZShkLGcpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBnJiZudWxsIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiIpO2QucHJv''@;'; + put 'put ''dG90eXBlPU9iamVjdC5jcmVhdGUoZyYmZy5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTpkLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxnJiZwNGUoZCxnKX0oaCxkKTt2YXIgZz1m''@;'; + put 'put ''dW5jdGlvbiBHSmUoZCl7dmFyIGc9ZnVuY3Rpb24gVUplKCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBSZWZsZWN0fHwhUmVmbGVjdC5jb25zdHJ1Y3R8fFJlZmxlY3QuY29uc3RydWN0LnNoYW0pcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIFByb3h5KXJldHVybiEwO3RyeXtyZXR1''@;'; + put 'put ''cm4gQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10sZnVuY3Rpb24oKXt9KSksITB9Y2F0Y2goZCl7cmV0dXJuITF9fSgpO3JldHVybiBmdW5jdGlvbigpe3ZhciB5LHY9UFMoZCk7aWYoZyl7dmFyIEM9UFModGhpcykuY29uc3RydWN0''@;'; + put 'put ''b3I7eT1SZWZsZWN0LmNvbnN0cnVjdCh2LGFyZ3VtZW50cyxDKX1lbHNlIHk9di5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIFdKZSh0aGlzLHkpfX0oaCk7ZnVuY3Rpb24gaCgpe3JldHVybiBmdW5jdGlvbiBWSmUoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlw''@;'; + put 'put ''ZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0odGhpcyxoKSxnLmNhbGwodGhpcyxmdW5jdGlvbih2KXtyZXR1cm4gdn0pfXJldHVybiBmdW5jdGlvbiBqSmUoZCxnLGgpe2cmJnNrZShkLnByb3RvdHlwZSxnKSxoJiZza2UoZCxoKSxPYmplY3QuZGVmaW5lUHJv''@;'; + put 'put ''cGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oaCxbe2tleToiaW5zZXJ0Iix2YWx1ZTpmdW5jdGlvbih5LEMpe3ZhciBJPWw0ZSh0aGlzLmluZGV4ZWRWYWx1ZXMsQyk7dGhpcy5pbmRleGVkVmFsdWVzPW80ZShJLHksQykscnooUFMoaC5wcm90b3R5cGUpLCJpbnNlcnQiLHRo''@;'; + put 'put ''aXMpLmNhbGwodGhpcyx5LEMpfX0se2tleToicmVtb3ZlIix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz10eih0aGlzLmluZGV4ZWRWYWx1ZXMseSk7dGhpcy5pbmRleGVkVmFsdWVzPWE0ZShDLHkpLHJ6KFBTKGgucHJvdG90eXBlKSwicmVtb3ZlIix0aGlzKS5jYWxsKHRoaXMseSl9fV0pLGh9''@;'; + put 'put ''KFJTKTtmdW5jdGlvbiBja2UoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYu''@;'; + put 'put ''a2V5LHYpfX12YXIgZzRlPTAsbTRlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZCgpeyhmdW5jdGlvbiBRSmUoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0pKHRoaXMsZCksdGhpcy5jb2xsZWN0''@;'; + put 'put ''aW9uPW5ldyBNYXB9cmV0dXJuIGZ1bmN0aW9uIEpKZShkLGcsaCl7ZyYmY2tlKGQucHJvdG90eXBlLGcpLGgmJmNrZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShkLFt7a2V5OiJyZWdpc3RlciIsdmFsdWU6ZnVuY3Rpb24oaCx2KXt2''@;'; + put 'put ''YXIgeT10aGlzOyExPT09dGhpcy5jb2xsZWN0aW9uLmhhcyhoKSYmKHRoaXMuY29sbGVjdGlvbi5zZXQoaCx2KSx2LmFkZExvY2FsSG9vaygiY2hhbmdlIixmdW5jdGlvbigpe3JldHVybiB5LnJ1bkxvY2FsSG9va3MoImNoYW5nZSIsdil9KSxnNGUrPTEpfX0se2tleToidW5yZWdpc3RlciIs''@;'; + put 'put ''dmFsdWU6ZnVuY3Rpb24oaCl7dmFyIHY9dGhpcy5jb2xsZWN0aW9uLmdldChoKTtUbyh2KSYmKHYuZGVzdHJveSgpLHRoaXMuY29sbGVjdGlvbi5kZWxldGUoaCksdGhpcy5ydW5Mb2NhbEhvb2tzKCJjaGFuZ2UiLHYpLGc0ZS09MSl9fSx7a2V5OiJ1bnJlZ2lzdGVyQWxsIix2YWx1ZTpmdW5j''@;'; + put 'put ''dGlvbigpe3ZhciBoPXRoaXM7dGhpcy5jb2xsZWN0aW9uLmZvckVhY2goZnVuY3Rpb24odix5KXtyZXR1cm4gaC51bnJlZ2lzdGVyKHkpfSksdGhpcy5jb2xsZWN0aW9uLmNsZWFyKCl9fSx7a2V5OiJnZXQiLHZhbHVlOmZ1bmN0aW9uKGgpe3JldHVybiBhMShoKT9BcnJheS5mcm9tKHRoaXMu''@;'; + put 'put ''Y29sbGVjdGlvbi52YWx1ZXMoKSk6dGhpcy5jb2xsZWN0aW9uLmdldChoKX19LHtrZXk6ImdldExlbmd0aCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jb2xsZWN0aW9uLnNpemV9fSx7a2V5OiJyZW1vdmVGcm9tRXZlcnkiLHZhbHVlOmZ1bmN0aW9uKGgpe3RoaXMuY29sbGVjdGlv''@;'; + put 'put ''bi5mb3JFYWNoKGZ1bmN0aW9uKHYpe3YucmVtb3ZlKGgpfSl9fSx7a2V5OiJpbnNlcnRUb0V2ZXJ5Iix2YWx1ZTpmdW5jdGlvbihoLHYpe3RoaXMuY29sbGVjdGlvbi5mb3JFYWNoKGZ1bmN0aW9uKHkpe3kuaW5zZXJ0KGgsdil9KX19LHtrZXk6ImluaXRFdmVyeSIsdmFsdWU6ZnVuY3Rpb24o''@;'; + put 'put ''aCl7dGhpcy5jb2xsZWN0aW9uLmZvckVhY2goZnVuY3Rpb24odil7di5pbml0KGgpfSl9fV0pLGR9KCk7ZnVuY3Rpb24gdjRlKGQpe3JldHVybih2NGU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZyl7cmV0dXJu''@;'; + put 'put ''IHR5cGVvZiBnfTpmdW5jdGlvbihnKXtyZXR1cm4gZyYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZy5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZyE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGd9KShkKX1mdW5jdGlvbiBma2UoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVu''@;'; + put 'put ''Z3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX1mdW5jdGlvbiBBNGUoZCxnKXtyZXR1cm4oQTRlPU9iamVj''@;'; + put 'put ''dC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHYseSl7cmV0dXJuIHYuX19wcm90b19fPXksdn0pKGQsZyl9ZnVuY3Rpb24gdFhlKGQsZyl7aWYoZyYmKCJvYmplY3QiPT09djRlKGcpfHwiZnVuY3Rpb24iPT10eXBlb2YgZykpcmV0dXJuIGc7''@;'; + put 'put ''aWYodm9pZCAwIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJEZXJpdmVkIGNvbnN0cnVjdG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0IG9yIHVuZGVmaW5lZCIpO3JldHVybiBmdW5jdGlvbiBuWGUoZCl7aWYodm9pZCAwPT09ZCl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFz''@;'; + put 'put ''bid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3JldHVybiBkfShkKX1mdW5jdGlvbiBRZWUoZCl7cmV0dXJuKFFlZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihoKXtyZXR1cm4gaC5f''@;'; + put 'put ''X3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihoKX0pKGQpfUIyKG00ZSxjZCk7dmFyIGhrZT1mdW5jdGlvbihkKXshZnVuY3Rpb24gcUplKGQsZyl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGcmJm51bGwhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVz''@;'; + put 'put ''dCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uIik7ZC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShnJiZnLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOmQsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3''@;'; + put 'put ''cml0YWJsZTohMX0pLGcmJkE0ZShkLGcpfShoLGQpO3ZhciBnPWZ1bmN0aW9uIGVYZShkKXt2YXIgZz1mdW5jdGlvbiByWGUoKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIFJlZmxlY3R8fCFSZWZsZWN0LmNvbnN0cnVjdHx8UmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZigiZnVu''@;'; + put 'put ''Y3Rpb24iPT10eXBlb2YgUHJveHkpcmV0dXJuITA7dHJ5e3JldHVybiBCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSxmdW5jdGlvbigpe30pKSwhMH1jYXRjaChkKXtyZXR1cm4hMX19KCk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHks''@;'; + put 'put ''dj1RZWUoZCk7aWYoZyl7dmFyIEM9UWVlKHRoaXMpLmNvbnN0cnVjdG9yO3k9UmVmbGVjdC5jb25zdHJ1Y3Qodixhcmd1bWVudHMsQyl9ZWxzZSB5PXYuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiB0WGUodGhpcyx5KX19KGgpO2Z1bmN0aW9uIGgodix5KXt2YXIgQztyZXR1cm4gZnVu''@;'; + put 'put ''Y3Rpb24gS0plKGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsaCksKEM9Zy5jYWxsKHRoaXMpKS5tZXJnZWRWYWx1ZXNDYWNoZT1bXSxDLmFnZ3JlZ2F0aW9uRnVuY3Rpb249dixD''@;'; + put 'put ''LmZhbGxiYWNrVmFsdWU9eSxDfXJldHVybiBmdW5jdGlvbiAkSmUoZCxnLGgpe2cmJmZrZShkLnByb3RvdHlwZSxnKSxoJiZma2UoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oaCxbe2tleToiZ2V0TWVyZ2VkVmFsdWVzIix2YWx1ZTpm''@;'; + put 'put ''dW5jdGlvbigpe3ZhciB5PSEoYXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0pfHxhcmd1bWVudHNbMF07aWYoITA9PT15KXJldHVybiB0aGlzLm1lcmdlZFZhbHVlc0NhY2hlO2lmKDA9PT10aGlzLmdldExlbmd0aCgpKXJldHVybltdO2Zvcih2YXIgQz1PbCh0aGlz''@;'; + put 'put ''LmdldCgpLGZ1bmN0aW9uKE5lKXtyZXR1cm4gTmUuZ2V0VmFsdWVzKCl9KSxJPVtdLGo9VG8oQ1swXSkmJkNbMF0ubGVuZ3RofHwwLHVlPTA7dWU8ajt1ZSs9MSl7Zm9yKHZhciBfZT1bXSxCZT0wO0JlPHRoaXMuZ2V0TGVuZ3RoKCk7QmUrPTEpX2UucHVzaChDW0JlXVt1ZV0pO0kucHVzaChf''@;'; + put 'put ''ZSl9cmV0dXJuIE9sKEksdGhpcy5hZ2dyZWdhdGlvbkZ1bmN0aW9uKX19LHtrZXk6ImdldE1lcmdlZFZhbHVlQXRJbmRleCIsdmFsdWU6ZnVuY3Rpb24oeSxDKXt2YXIgST10aGlzLmdldE1lcmdlZFZhbHVlcyhDKVt5XTtyZXR1cm4gVG8oSSk/STp0aGlzLmZhbGxiYWNrVmFsdWV9fSx7a2V5''@;'; + put 'put ''OiJ1cGRhdGVDYWNoZSIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLm1lcmdlZFZhbHVlc0NhY2hlPXRoaXMuZ2V0TWVyZ2VkVmFsdWVzKCExKX19XSksaH0obTRlKTtmdW5jdGlvbiBka2UoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5l''@;'; + put 'put ''bnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX1mdW5jdGlvbiBwa2UoZCxnLGgpe2lmKCFnLmhhcyhkKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJhdHRlbXB0ZWQgdG8gIito''@;'; + put 'put ''KyIgcHJpdmF0ZSBmaWVsZCBvbiBub24taW5zdGFuY2UiKTtyZXR1cm4gZy5nZXQoZCl9dmFyIHk0ZT1uZXcgV2Vha01hcCxna2U9ZnVuY3Rpb24oKXtmdW5jdGlvbiBkKCl7KGZ1bmN0aW9uIGlYZShkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5v''@;'; + put 'put ''dCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSkodGhpcyxkKSxmdW5jdGlvbiBhWGUoZCxnLGgpeyhmdW5jdGlvbiBsWGUoZCxnKXtpZihnLmhhcyhkKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgaW5pdGlhbGl6ZSB0aGUgc2FtZSBwcml2YXRlIGVsZW1lbnRzIHR3aWNlIG9u''@;'; + put 'put ''IGFuIG9iamVjdCIpfSkoZCxnKSxnLnNldChkLGgpfSh0aGlzLHk0ZSx7d3JpdGFibGU6ITAsdmFsdWU6W119KX1yZXR1cm4gZnVuY3Rpb24gb1hlKGQsZyxoKXtnJiZka2UoZC5wcm90b3R5cGUsZyksaCYmZGtlKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dy''@;'; + put 'put ''aXRhYmxlOiExfSl9KGQsW3trZXk6InN1YnNjcmliZSIsdmFsdWU6ZnVuY3Rpb24oaCl7cmV0dXJuIHRoaXMuYWRkTG9jYWxIb29rKCJjaGFuZ2UiLGgpLHRoaXMuX3dyaXRlKGZ1bmN0aW9uIGNYZShkLGcpe3JldHVybiBmdW5jdGlvbiBmWGUoZCxnKXtyZXR1cm4gZy5nZXQ/Zy5nZXQuY2Fs''@;'; + put 'put ''bChkKTpnLnZhbHVlfShkLHBrZShkLGcsImdldCIpKX0odGhpcyx5NGUpKSx0aGlzfX0se2tleToidW5zdWJzY3JpYmUiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucnVuTG9jYWxIb29rcygidW5zdWJzY3JpYmUiKSx0aGlzLmNsZWFyTG9jYWxIb29rcygpLHRoaXN9fSx7a2V5OiJf''@;'; + put 'put ''d3JpdGUiLHZhbHVlOmZ1bmN0aW9uKGgpe3JldHVybiBoLmxlbmd0aD4wJiZ0aGlzLnJ1bkxvY2FsSG9va3MoImNoYW5nZSIsaCksdGhpc319LHtrZXk6Il93cml0ZUluaXRpYWxDaGFuZ2VzIix2YWx1ZTpmdW5jdGlvbihoKXshZnVuY3Rpb24gc1hlKGQsZyxoKXtyZXR1cm4gZnVuY3Rpb24g''@;'; + put 'put ''dVhlKGQsZyxoKXtpZihnLnNldClnLnNldC5jYWxsKGQsaCk7ZWxzZXtpZighZy53cml0YWJsZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJhdHRlbXB0ZWQgdG8gc2V0IHJlYWQgb25seSBwcml2YXRlIGZpZWxkIik7Zy52YWx1ZT1ofX0oZCxwa2UoZCxnLCJzZXQiKSxoKSxofSh0aGlzLHk0ZSxo''@;'; + put 'put ''KX19XSksZH0oKTtmdW5jdGlvbiBta2UoZCxnKXtmb3IodmFyIGg9W10sdj0wLHk9MDt2PGQubGVuZ3RoJiZ5PGcubGVuZ3RoO3YrKyx5KyspZFt2XSE9PWdbeV0mJmgucHVzaCh7b3A6InJlcGxhY2UiLGluZGV4Onksb2xkVmFsdWU6ZFt2XSxuZXdWYWx1ZTpnW3ldfSk7Zm9yKDt2PGcubGVu''@;'; + put 'put ''Z3RoO3YrKyloLnB1c2goe29wOiJpbnNlcnQiLGluZGV4OnYsb2xkVmFsdWU6dm9pZCAwLG5ld1ZhbHVlOmdbdl19KTtmb3IoO3k8ZC5sZW5ndGg7eSsrKWgucHVzaCh7b3A6InJlbW92ZSIsaW5kZXg6eSxvbGRWYWx1ZTpkW3ldLG5ld1ZhbHVlOnZvaWQgMH0pO3JldHVybiBofWZ1bmN0aW9u''@;'; + put 'put ''IGhYZShkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfWZ1bmN0aW9uIHZrZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1l''@;'; + put 'put ''cmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fWZ1bmN0aW9uIGl6KGQsZyxoKXsoZnVuY3Rpb24gcFhlKGQsZyl7aWYoZy5oYXMoZCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fu''@;'; + put 'put ''bm90IGluaXRpYWxpemUgdGhlIHNhbWUgcHJpdmF0ZSBlbGVtZW50cyB0d2ljZSBvbiBhbiBvYmplY3QiKX0pKGQsZyksZy5zZXQoZCxoKX1mdW5jdGlvbiBCcChkLGcpe3JldHVybiBmdW5jdGlvbiBnWGUoZCxnKXtyZXR1cm4gZy5nZXQ/Zy5nZXQuY2FsbChkKTpnLnZhbHVlfShkLEFrZShk''@;'; + put 'put ''LGcsImdldCIpKX1mdW5jdGlvbiBKZWUoZCxnLGgpe3JldHVybiBmdW5jdGlvbiBtWGUoZCxnLGgpe2lmKGcuc2V0KWcuc2V0LmNhbGwoZCxoKTtlbHNle2lmKCFnLndyaXRhYmxlKXRocm93IG5ldyBUeXBlRXJyb3IoImF0dGVtcHRlZCB0byBzZXQgcmVhZCBvbmx5IHByaXZhdGUgZmllbGQi''@;'; + put 'put ''KTtnLnZhbHVlPWh9fShkLEFrZShkLGcsInNldCIpLGgpLGh9ZnVuY3Rpb24gQWtlKGQsZyxoKXtpZighZy5oYXMoZCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiYXR0ZW1wdGVkIHRvICIraCsiIHByaXZhdGUgZmllbGQgb24gbm9uLWluc3RhbmNlIik7cmV0dXJuIGcuZ2V0KGQpfUIyKGdrZSxj''@;'; + put 'put ''ZCk7dmFyIHlrZSxYZWU9bmV3IFdlYWtNYXAsb3o9bmV3IFdlYWtNYXAsS2VlPW5ldyBXZWFrTWFwLCRlZT1uZXcgV2Vha01hcCxxZWU9bmV3IFdlYWtNYXAsdlhlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZCgpe3ZhciBnPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBd''@;'; + put 'put ''P2FyZ3VtZW50c1swXTp7fSxoPWcuaW5pdGlhbEluZGV4VmFsdWU7aFhlKHRoaXMsZCksaXoodGhpcyxYZWUse3dyaXRhYmxlOiEwLHZhbHVlOm5ldyBTZXR9KSxpeih0aGlzLG96LHt3cml0YWJsZTohMCx2YWx1ZTpbXX0pLGl6KHRoaXMsS2VlLHt3cml0YWJsZTohMCx2YWx1ZTpbXX0pLGl6''@;'; + put 'put ''KHRoaXMsJGVlLHt3cml0YWJsZTohMCx2YWx1ZTohMX0pLGl6KHRoaXMscWVlLHt3cml0YWJsZTohMCx2YWx1ZTohMX0pLEplZSh0aGlzLHFlZSxudWxsIT1oJiZoKX1yZXR1cm4gZnVuY3Rpb24gZFhlKGQsZyxoKXtnJiZ2a2UoZC5wcm90b3R5cGUsZyksaCYmdmtlKGQsaCksT2JqZWN0LmRl''@;'; + put 'put ''ZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGQsW3trZXk6ImNyZWF0ZU9ic2VydmVyIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBoPXRoaXMsdj1uZXcgZ2tlO3JldHVybiBCcCh0aGlzLFhlZSkuYWRkKHYpLHYuYWRkTG9jYWxIb29rKCJ1bnN1YnNjcmliZSIsZnVu''@;'; + put 'put ''Y3Rpb24oKXtCcChoLFhlZSkuZGVsZXRlKHYpfSksdi5fd3JpdGVJbml0aWFsQ2hhbmdlcyhta2UoQnAodGhpcyxveiksQnAodGhpcyxLZWUpKSksdn19LHtrZXk6ImVtaXQiLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB2PUJwKHRoaXMsS2VlKTsoIUJwKHRoaXMsJGVlKXx8QnAodGhpcyxveiku''@;'; + put 'put ''bGVuZ3RoIT09aC5sZW5ndGgpJiYoMD09PWgubGVuZ3RoP2g9bmV3IEFycmF5KHYubGVuZ3RoKS5maWxsKEJwKHRoaXMscWVlKSk6SmVlKHRoaXMsb3osbmV3IEFycmF5KGgubGVuZ3RoKS5maWxsKEJwKHRoaXMscWVlKSkpLEJwKHRoaXMsJGVlKXx8KEplZSh0aGlzLCRlZSwhMCksdj1CcCh0''@;'; + put 'put ''aGlzLG96KSkpO3ZhciB5PW1rZSh2LGgpO0JwKHRoaXMsWGVlKS5mb3JFYWNoKGZ1bmN0aW9uKEMpe3JldHVybiBDLl93cml0ZSh5KX0pLEplZSh0aGlzLEtlZSxoKX19XSksZH0oKTtmdW5jdGlvbiB3NGUoZCl7cmV0dXJuIGZ1bmN0aW9uIGJYZShkKXtpZihBcnJheS5pc0FycmF5KGQpKXJl''@;'; + put 'put ''dHVybiBiNGUoZCl9KGQpfHxmdW5jdGlvbiB3WGUoZCl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJm51bGwhPWRbU3ltYm9sLml0ZXJhdG9yXXx8bnVsbCE9ZFsiQEBpdGVyYXRvciJdKXJldHVybiBBcnJheS5mcm9tKGQpfShkKXx8ZnVuY3Rpb24geVhlKGQsZyl7aWYoZCl7aWYo''@;'; + put 'put ''InN0cmluZyI9PXR5cGVvZiBkKXJldHVybiBiNGUoZCxnKTt2YXIgaD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZCkuc2xpY2UoOCwtMSk7aWYoIk9iamVjdCI9PT1oJiZkLmNvbnN0cnVjdG9yJiYoaD1kLmNvbnN0cnVjdG9yLm5hbWUpLCJNYXAiPT09aHx8IlNldCI9PT1oKXJl''@;'; + put 'put ''dHVybiBBcnJheS5mcm9tKGQpO2lmKCJBcmd1bWVudHMiPT09aHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QoaCkpcmV0dXJuIGI0ZShkLGcpfX0oZCl8fGZ1bmN0aW9uIEFYZSgpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0''@;'; + put 'put ''byBzcHJlYWQgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfWZ1bmN0aW9uIGI0ZShkLGcpeyhudWxsPT1nfHxnPmQubGVuZ3RoKSYmKGc9''@;'; + put 'put ''ZC5sZW5ndGgpO2Zvcih2YXIgaD0wLHY9bmV3IEFycmF5KGcpO2g8ZztoKyspdltoXT1kW2hdO3JldHVybiB2fWZ1bmN0aW9uIF9YZShkLGcpe3JldHVybiBnfHwoZz1kLnNsaWNlKDApKSxPYmplY3QuZnJlZXplKE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGQse3Jhdzp7dmFsdWU6T2JqZWN0''@;'; + put 'put ''LmZyZWV6ZShnKX19KSl9ZnVuY3Rpb24gd2tlKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJv''@;'; + put 'put ''cGVydHkoZCx2LmtleSx2KX19dmFyIF9rZSxia2U9bmV3IFNldChbImdldEZpcnN0Tm90SGlkZGVuSW5kZXgiXSksXzRlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZCgpe3ZhciBnPXRoaXM7KGZ1bmN0aW9uIENYZShkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3Io''@;'; + put 'put ''IkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSkodGhpcyxkKSx0aGlzLmluZGV4ZXNTZXF1ZW5jZT1uZXcgdWtlLHRoaXMudHJpbW1pbmdNYXBzQ29sbGVjdGlvbj1uZXcgaGtlKGZ1bmN0aW9uKGgpe3JldHVybiBoLnNvbWUoZnVuY3Rpb24odil7cmV0dXJuITA9PT12fSl9''@;'; + put 'put ''LCExKSx0aGlzLmhpZGluZ01hcHNDb2xsZWN0aW9uPW5ldyBoa2UoZnVuY3Rpb24oaCl7cmV0dXJuIGguc29tZShmdW5jdGlvbih2KXtyZXR1cm4hMD09PXZ9KX0sITEpLHRoaXMudmFyaW91c01hcHNDb2xsZWN0aW9uPW5ldyBtNGUsdGhpcy5oaWRpbmdDaGFuZ2VzT2JzZXJ2YWJsZT1uZXcg''@;'; + put 'put ''dlhlKHtpbml0aWFsSW5kZXhWYWx1ZTohMX0pLHRoaXMubm90VHJpbW1lZEluZGV4ZXNDYWNoZT1bXSx0aGlzLm5vdEhpZGRlbkluZGV4ZXNDYWNoZT1bXSx0aGlzLmlzQmF0Y2hlZD0hMSx0aGlzLmluZGV4ZXNTZXF1ZW5jZUNoYW5nZWQ9ITEsdGhpcy50cmltbWVkSW5kZXhlc0NoYW5nZWQ9''@;'; + put 'put ''ITEsdGhpcy5oaWRkZW5JbmRleGVzQ2hhbmdlZD0hMSx0aGlzLnJlbmRlcmFibGVQaHlzaWNhbEluZGV4ZXNDYWNoZT1bXSx0aGlzLmZyb21QaHlzaWNhbFRvVmlzdWFsSW5kZXhlc0NhY2hlPW5ldyBNYXAsdGhpcy5mcm9tVmlzdWFsVG9SZW5kZXJhYmxlSW5kZXhlc0NhY2hlPW5ldyBNYXAs''@;'; + put 'put ''dGhpcy5pbmRleGVzU2VxdWVuY2UuYWRkTG9jYWxIb29rKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7Zy5pbmRleGVzU2VxdWVuY2VDaGFuZ2VkPSEwLGcudXBkYXRlQ2FjaGUoKSxnLnJ1bkxvY2FsSG9va3MoImNoYW5nZSIsZy5pbmRleGVzU2VxdWVuY2UsbnVsbCl9KSx0aGlzLnRyaW1taW5nTWFw''@;'; + put 'put ''c0NvbGxlY3Rpb24uYWRkTG9jYWxIb29rKCJjaGFuZ2UiLGZ1bmN0aW9uKGgpe2cudHJpbW1lZEluZGV4ZXNDaGFuZ2VkPSEwLGcudXBkYXRlQ2FjaGUoKSxnLnJ1bkxvY2FsSG9va3MoImNoYW5nZSIsaCxnLnRyaW1taW5nTWFwc0NvbGxlY3Rpb24pfSksdGhpcy5oaWRpbmdNYXBzQ29sbGVj''@;'; + put 'put ''dGlvbi5hZGRMb2NhbEhvb2soImNoYW5nZSIsZnVuY3Rpb24oaCl7Zy5oaWRkZW5JbmRleGVzQ2hhbmdlZD0hMCxnLnVwZGF0ZUNhY2hlKCksZy5ydW5Mb2NhbEhvb2tzKCJjaGFuZ2UiLGgsZy5oaWRpbmdNYXBzQ29sbGVjdGlvbil9KSx0aGlzLnZhcmlvdXNNYXBzQ29sbGVjdGlvbi5hZGRM''@;'; + put 'put ''b2NhbEhvb2soImNoYW5nZSIsZnVuY3Rpb24oaCl7Zy5ydW5Mb2NhbEhvb2tzKCJjaGFuZ2UiLGgsZy52YXJpb3VzTWFwc0NvbGxlY3Rpb24pfSl9cmV0dXJuIGZ1bmN0aW9uIGtYZShkLGcsaCl7ZyYmd2tlKGQucHJvdG90eXBlLGcpLGgmJndrZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0''@;'; + put 'put ''eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShkLFt7a2V5OiJzdXNwZW5kT3BlcmF0aW9ucyIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmlzQmF0Y2hlZD0hMH19LHtrZXk6InJlc3VtZU9wZXJhdGlvbnMiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5pc0JhdGNoZWQ9ITEsdGhpcy51cGRh''@;'; + put 'put ''dGVDYWNoZSgpfX0se2tleToiY3JlYXRlQ2hhbmdlc09ic2VydmVyIix2YWx1ZTpmdW5jdGlvbihoKXtpZigiaGlkaW5nIiE9PWgpdGhyb3cgbmV3IEVycm9yKCdVbnN1cHBvcnRlZCBpbmRleCBtYXAgdHlwZSAiJy5jb25jYXQoaCwnIi4nKSk7cmV0dXJuIHRoaXMuaGlkaW5nQ2hhbmdlc09i''@;'; + put 'put ''c2VydmFibGUuY3JlYXRlT2JzZXJ2ZXIoKX19LHtrZXk6ImNyZWF0ZUFuZFJlZ2lzdGVySW5kZXhNYXAiLHZhbHVlOmZ1bmN0aW9uKGgsdix5KXtyZXR1cm4gdGhpcy5yZWdpc3Rlck1hcChoLGZ1bmN0aW9uIE5KZShkKXt2YXIgZz1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3Vt''@;'; + put 'put ''ZW50c1sxXT9hcmd1bWVudHNbMV06bnVsbDtpZighbGtlLmhhcyhkKSl0aHJvdyBuZXcgRXJyb3IoJ1RoZSBwcm92aWRlZCBtYXAgdHlwZSAoIicuY29uY2F0KGQsJyIpIGRvZXMgbm90IGV4aXN0LicpKTtyZXR1cm4gbmV3KGxrZS5nZXQoZCkpKGcpfSh2LHkpKX19LHtrZXk6InJlZ2lzdGVy''@;'; + put 'put ''TWFwIix2YWx1ZTpmdW5jdGlvbihoLHYpe2lmKHRoaXMudHJpbW1pbmdNYXBzQ29sbGVjdGlvbi5nZXQoaCl8fHRoaXMuaGlkaW5nTWFwc0NvbGxlY3Rpb24uZ2V0KGgpfHx0aGlzLnZhcmlvdXNNYXBzQ29sbGVjdGlvbi5nZXQoaCkpdGhyb3cgRXJyb3IoJ01hcCB3aXRoIG5hbWUgIicuY29u''@;'; + put 'put ''Y2F0KGgsJyIgaGFzIGJlZW4gYWxyZWFkeSByZWdpc3RlcmVkLicpKTt2IGluc3RhbmNlb2Ygbno/dGhpcy50cmltbWluZ01hcHNDb2xsZWN0aW9uLnJlZ2lzdGVyKGgsdik6diBpbnN0YW5jZW9mIFdlZT90aGlzLmhpZGluZ01hcHNDb2xsZWN0aW9uLnJlZ2lzdGVyKGgsdik6dGhpcy52YXJp''@;'; + put 'put ''b3VzTWFwc0NvbGxlY3Rpb24ucmVnaXN0ZXIoaCx2KTt2YXIgeT10aGlzLmdldE51bWJlck9mSW5kZXhlcygpO3JldHVybiB5PjAmJnYuaW5pdCh5KSx2fX0se2tleToidW5yZWdpc3Rlck1hcCIsdmFsdWU6ZnVuY3Rpb24oaCl7dGhpcy50cmltbWluZ01hcHNDb2xsZWN0aW9uLnVucmVnaXN0''@;'; + put 'put ''ZXIoaCksdGhpcy5oaWRpbmdNYXBzQ29sbGVjdGlvbi51bnJlZ2lzdGVyKGgpLHRoaXMudmFyaW91c01hcHNDb2xsZWN0aW9uLnVucmVnaXN0ZXIoaCl9fSx7a2V5OiJ1bnJlZ2lzdGVyQWxsIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMudHJpbW1pbmdNYXBzQ29sbGVjdGlvbi51bnJlZ2lzdGVy''@;'; + put 'put ''QWxsKCksdGhpcy5oaWRpbmdNYXBzQ29sbGVjdGlvbi51bnJlZ2lzdGVyQWxsKCksdGhpcy52YXJpb3VzTWFwc0NvbGxlY3Rpb24udW5yZWdpc3RlckFsbCgpfX0se2tleToiZ2V0UGh5c2ljYWxGcm9tVmlzdWFsSW5kZXgiLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB2PXRoaXMubm90VHJpbW1l''@;'; + put 'put ''ZEluZGV4ZXNDYWNoZVtoXTtyZXR1cm4gVG8odik/djpudWxsfX0se2tleToiZ2V0UGh5c2ljYWxGcm9tUmVuZGVyYWJsZUluZGV4Iix2YWx1ZTpmdW5jdGlvbihoKXt2YXIgdj10aGlzLnJlbmRlcmFibGVQaHlzaWNhbEluZGV4ZXNDYWNoZVtoXTtyZXR1cm4gVG8odik/djpudWxsfX0se2tl''@;'; + put 'put ''eToiZ2V0VmlzdWFsRnJvbVBoeXNpY2FsSW5kZXgiLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB2PXRoaXMuZnJvbVBoeXNpY2FsVG9WaXN1YWxJbmRleGVzQ2FjaGUuZ2V0KGgpO3JldHVybiBUbyh2KT92Om51bGx9fSx7a2V5OiJnZXRWaXN1YWxGcm9tUmVuZGVyYWJsZUluZGV4Iix2YWx1ZTpm''@;'; + put 'put ''dW5jdGlvbihoKXtyZXR1cm4gdGhpcy5nZXRWaXN1YWxGcm9tUGh5c2ljYWxJbmRleCh0aGlzLmdldFBoeXNpY2FsRnJvbVJlbmRlcmFibGVJbmRleChoKSl9fSx7a2V5OiJnZXRSZW5kZXJhYmxlRnJvbVZpc3VhbEluZGV4Iix2YWx1ZTpmdW5jdGlvbihoKXt2YXIgdj10aGlzLmZyb21WaXN1''@;'; + put 'put ''YWxUb1JlbmRlcmFibGVJbmRleGVzQ2FjaGUuZ2V0KGgpO3JldHVybiBUbyh2KT92Om51bGx9fSx7a2V5OiJnZXRGaXJzdE5vdEhpZGRlbkluZGV4Iix2YWx1ZTpmdW5jdGlvbihoLHYpe3ZhciB5PWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdJiZhcmd1bWVudHNb''@;'; + put 'put ''Ml0sQz1hcmd1bWVudHMubGVuZ3RoPjMmJnZvaWQgMCE9PWFyZ3VtZW50c1szXT9hcmd1bWVudHNbM106aC12O2JrZS5oYXMoImdldEZpcnN0Tm90SGlkZGVuSW5kZXgiKSYmKGJrZS5kZWxldGUoImdldEZpcnN0Tm90SGlkZGVuSW5kZXgiKSxsMShQMih5a2V8fCh5a2U9X1hlKFsnVGhlIG1l''@;'; + put 'put ''dGhvZCAiZ2V0Rmlyc3ROb3RIaWRkZW5JbmRleCIgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IFxuICAgICAgICAgICAgICAgICAgICAgICAgbWFqb3IgcmVsZWFzZS4gUGxlYXNlIHVzZSAiZ2V0TmVhcmVzdE5vdEhpZGRlbkluZGV4IiBpbnN0ZWFkLidd''@;'; + put 'put ''LFsnVGhlIG1ldGhvZCAiZ2V0Rmlyc3ROb3RIaWRkZW5JbmRleCIgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0XFx4MjBcbiAgICAgICAgICAgICAgICAgICAgICAgIG1ham9yIHJlbGVhc2UuIFBsZWFzZSB1c2UgImdldE5lYXJlc3ROb3RIaWRkZW5JbmRl''@;'; + put 'put ''eCIgaW5zdGVhZC4nXSkpKSkpO3ZhciBJPXRoaXMuZ2V0UGh5c2ljYWxGcm9tVmlzdWFsSW5kZXgoaCk7cmV0dXJuIG51bGw9PT1JPyEwPT09eSYmQyE9PWgtdj90aGlzLmdldEZpcnN0Tm90SGlkZGVuSW5kZXgoQywtdiwhMSxDKTpudWxsOiExPT09dGhpcy5pc0hpZGRlbihJKT9oOnRoaXMu''@;'; + put 'put ''Z2V0Rmlyc3ROb3RIaWRkZW5JbmRleChoK3Ysdix5LEMpfX0se2tleToiZ2V0TmVhcmVzdE5vdEhpZGRlbkluZGV4Iix2YWx1ZTpmdW5jdGlvbihoLHYpe3ZhciB5PWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdJiZhcmd1bWVudHNbMl0sQz10aGlzLmdldFBoeXNp''@;'; + put 'put ''Y2FsRnJvbVZpc3VhbEluZGV4KGgpO2lmKG51bGw9PT1DKXJldHVybiBudWxsO2lmKHRoaXMuZnJvbVZpc3VhbFRvUmVuZGVyYWJsZUluZGV4ZXNDYWNoZS5oYXMoaCkpcmV0dXJuIGg7dmFyIEk9QXJyYXkuZnJvbSh0aGlzLmZyb21WaXN1YWxUb1JlbmRlcmFibGVJbmRleGVzQ2FjaGUua2V5''@;'; + put 'put ''cygpKSxqPS0xO3JldHVybi0xPT09KGo9dj4wP0kuZmluZEluZGV4KGZ1bmN0aW9uKHVlKXtyZXR1cm4gdWU+aH0pOkkucmV2ZXJzZSgpLmZpbmRJbmRleChmdW5jdGlvbih1ZSl7cmV0dXJuIHVlPGh9KSk/eT90aGlzLmdldE5lYXJlc3ROb3RIaWRkZW5JbmRleChoLC12LCExKTpudWxsOklb''@;'; + put 'put ''al19fSx7a2V5OiJpbml0VG9MZW5ndGgiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOnRoaXMuZ2V0TnVtYmVyT2ZJbmRleGVzKCk7dGhpcy5ub3RUcmltbWVkSW5kZXhlc0NhY2hlPXc0ZShuZXcg''@;'; + put 'put ''QXJyYXkoaCkua2V5cygpKSx0aGlzLm5vdEhpZGRlbkluZGV4ZXNDYWNoZT13NGUobmV3IEFycmF5KGgpLmtleXMoKSksdGhpcy5zdXNwZW5kT3BlcmF0aW9ucygpLHRoaXMuaW5kZXhlc1NlcXVlbmNlLmluaXQoaCksdGhpcy50cmltbWluZ01hcHNDb2xsZWN0aW9uLmluaXRFdmVyeShoKSx0''@;'; + put 'put ''aGlzLnJlc3VtZU9wZXJhdGlvbnMoKSx0aGlzLnN1c3BlbmRPcGVyYXRpb25zKCksdGhpcy5oaWRpbmdNYXBzQ29sbGVjdGlvbi5pbml0RXZlcnkoaCksdGhpcy52YXJpb3VzTWFwc0NvbGxlY3Rpb24uaW5pdEV2ZXJ5KGgpLHRoaXMucmVzdW1lT3BlcmF0aW9ucygpLHRoaXMucnVuTG9jYWxI''@;'; + put 'put ''b29rcygiaW5pdCIpfX0se2tleToiZml0VG9MZW5ndGgiLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB2PXRoaXMuZ2V0TnVtYmVyT2ZJbmRleGVzKCk7aWYoaDx2KXt2YXIgeT13NGUoQXJyYXkodGhpcy5nZXROdW1iZXJPZkluZGV4ZXMoKS1oKS5rZXlzKCkpLm1hcChmdW5jdGlvbihDKXtyZXR1''@;'; + put 'put ''cm4gQytofSk7dGhpcy5yZW1vdmVJbmRleGVzKHkpfWVsc2UgdGhpcy5pbnNlcnRJbmRleGVzKHYsaC12KX19LHtrZXk6ImdldEluZGV4ZXNTZXF1ZW5jZSIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pbmRleGVzU2VxdWVuY2UuZ2V0VmFsdWVzKCl9fSx7a2V5OiJzZXRJbmRleGVz''@;'; + put 'put ''U2VxdWVuY2UiLHZhbHVlOmZ1bmN0aW9uKGgpe3RoaXMuaW5kZXhlc1NlcXVlbmNlLnNldFZhbHVlcyhoKX19LHtrZXk6ImdldE5vdFRyaW1tZWRJbmRleGVzIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBoPXRoaXMsdj0hKGFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBd''@;'; + put 'put ''KXx8YXJndW1lbnRzWzBdO2lmKCEwPT09dilyZXR1cm4gdGhpcy5ub3RUcmltbWVkSW5kZXhlc0NhY2hlO3ZhciB5PXRoaXMuZ2V0SW5kZXhlc1NlcXVlbmNlKCk7cmV0dXJuIHkuZmlsdGVyKGZ1bmN0aW9uKEMpe3JldHVybiExPT09aC5pc1RyaW1tZWQoQyl9KX19LHtrZXk6ImdldE5vdFRy''@;'; + put 'put ''aW1tZWRJbmRleGVzTGVuZ3RoIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmdldE5vdFRyaW1tZWRJbmRleGVzKCkubGVuZ3RofX0se2tleToiZ2V0Tm90SGlkZGVuSW5kZXhlcyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD10aGlzLHY9IShhcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQg''@;'; + put 'put ''MCE9PWFyZ3VtZW50c1swXSl8fGFyZ3VtZW50c1swXTtpZighMD09PXYpcmV0dXJuIHRoaXMubm90SGlkZGVuSW5kZXhlc0NhY2hlO3ZhciB5PXRoaXMuZ2V0SW5kZXhlc1NlcXVlbmNlKCk7cmV0dXJuIHkuZmlsdGVyKGZ1bmN0aW9uKEMpe3JldHVybiExPT09aC5pc0hpZGRlbihDKX0pfX0s''@;'; + put 'put ''e2tleToiZ2V0Tm90SGlkZGVuSW5kZXhlc0xlbmd0aCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXROb3RIaWRkZW5JbmRleGVzKCkubGVuZ3RofX0se2tleToiZ2V0UmVuZGVyYWJsZUluZGV4ZXMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9dGhpcyx2PSEoYXJndW1lbnRzLmxl''@;'; + put 'put ''bmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0pfHxhcmd1bWVudHNbMF07aWYoITA9PT12KXJldHVybiB0aGlzLnJlbmRlcmFibGVQaHlzaWNhbEluZGV4ZXNDYWNoZTt2YXIgeT10aGlzLmdldE5vdFRyaW1tZWRJbmRleGVzKCk7cmV0dXJuIHkuZmlsdGVyKGZ1bmN0aW9uKEMpe3JldHVy''@;'; + put 'put ''biExPT09aC5pc0hpZGRlbihDKX0pfX0se2tleToiZ2V0UmVuZGVyYWJsZUluZGV4ZXNMZW5ndGgiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0UmVuZGVyYWJsZUluZGV4ZXMoKS5sZW5ndGh9fSx7a2V5OiJnZXROdW1iZXJPZkluZGV4ZXMiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0''@;'; + put 'put ''dXJuIHRoaXMuZ2V0SW5kZXhlc1NlcXVlbmNlKCkubGVuZ3RofX0se2tleToibW92ZUluZGV4ZXMiLHZhbHVlOmZ1bmN0aW9uKGgsdil7dmFyIHk9dGhpczsibnVtYmVyIj09dHlwZW9mIGgmJihoPVtoXSk7dmFyIEM9T2woaCxmdW5jdGlvbihOZSl7cmV0dXJuIHkuZ2V0UGh5c2ljYWxGcm9t''@;'; + put 'put ''VmlzdWFsSW5kZXgoTmUpfSksST10aGlzLmdldE5vdFRyaW1tZWRJbmRleGVzTGVuZ3RoKCksaj1oLmxlbmd0aCx1ZT10eih0aGlzLmdldEluZGV4ZXNTZXF1ZW5jZSgpLEMpLF9lPUktajtpZih2K2o8SSl7dmFyIEJlPXVlLmZpbHRlcihmdW5jdGlvbihOZSl7cmV0dXJuITE9PT15LmlzVHJp''@;'; + put 'put ''bW1lZChOZSl9KVt2XTtfZT11ZS5pbmRleE9mKEJlKX10aGlzLnNldEluZGV4ZXNTZXF1ZW5jZShvNGUodWUsX2UsQykpfX0se2tleToiaXNUcmltbWVkIix2YWx1ZTpmdW5jdGlvbihoKXtyZXR1cm4gdGhpcy50cmltbWluZ01hcHNDb2xsZWN0aW9uLmdldE1lcmdlZFZhbHVlQXRJbmRleCho''@;'; + put 'put ''KX19LHtrZXk6ImlzSGlkZGVuIix2YWx1ZTpmdW5jdGlvbihoKXtyZXR1cm4gdGhpcy5oaWRpbmdNYXBzQ29sbGVjdGlvbi5nZXRNZXJnZWRWYWx1ZUF0SW5kZXgoaCl9fSx7a2V5OiJpbnNlcnRJbmRleGVzIix2YWx1ZTpmdW5jdGlvbihoLHYpe3ZhciB5PXRoaXMuZ2V0Tm90VHJpbW1lZElu''@;'; + put 'put ''ZGV4ZXMoKVtoXSxDPVRvKHkpP3k6dGhpcy5nZXROdW1iZXJPZkluZGV4ZXMoKSxJPXRoaXMuZ2V0SW5kZXhlc1NlcXVlbmNlKCkuaW5jbHVkZXMoeSk/dGhpcy5nZXRJbmRleGVzU2VxdWVuY2UoKS5pbmRleE9mKHkpOnRoaXMuZ2V0TnVtYmVyT2ZJbmRleGVzKCksaj1PbChuZXcgQXJyYXko''@;'; + put 'put ''dikuZmlsbChDKSxmdW5jdGlvbih1ZSxfZSl7cmV0dXJuIHVlK19lfSk7dGhpcy5zdXNwZW5kT3BlcmF0aW9ucygpLHRoaXMuaW5kZXhlc1NlcXVlbmNlLmluc2VydChJLGopLHRoaXMudHJpbW1pbmdNYXBzQ29sbGVjdGlvbi5pbnNlcnRUb0V2ZXJ5KEksaiksdGhpcy5oaWRpbmdNYXBzQ29s''@;'; + put 'put ''bGVjdGlvbi5pbnNlcnRUb0V2ZXJ5KEksaiksdGhpcy52YXJpb3VzTWFwc0NvbGxlY3Rpb24uaW5zZXJ0VG9FdmVyeShJLGopLHRoaXMucmVzdW1lT3BlcmF0aW9ucygpfX0se2tleToicmVtb3ZlSW5kZXhlcyIsdmFsdWU6ZnVuY3Rpb24oaCl7dGhpcy5zdXNwZW5kT3BlcmF0aW9ucygpLHRo''@;'; + put 'put ''aXMuaW5kZXhlc1NlcXVlbmNlLnJlbW92ZShoKSx0aGlzLnRyaW1taW5nTWFwc0NvbGxlY3Rpb24ucmVtb3ZlRnJvbUV2ZXJ5KGgpLHRoaXMuaGlkaW5nTWFwc0NvbGxlY3Rpb24ucmVtb3ZlRnJvbUV2ZXJ5KGgpLHRoaXMudmFyaW91c01hcHNDb2xsZWN0aW9uLnJlbW92ZUZyb21FdmVyeSho''@;'; + put 'put ''KSx0aGlzLnJlc3VtZU9wZXJhdGlvbnMoKX19LHtrZXk6InVwZGF0ZUNhY2hlIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBoPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdJiZhcmd1bWVudHNbMF0sdj10aGlzLmluZGV4ZXNTZXF1ZW5jZUNoYW5nZWR8fHRoaXMudHJp''@;'; + put 'put ''bW1lZEluZGV4ZXNDaGFuZ2VkfHx0aGlzLmhpZGRlbkluZGV4ZXNDaGFuZ2VkOyghMD09PWh8fCExPT09dGhpcy5pc0JhdGNoZWQmJiEwPT09dikmJih0aGlzLnRyaW1taW5nTWFwc0NvbGxlY3Rpb24udXBkYXRlQ2FjaGUoKSx0aGlzLmhpZGluZ01hcHNDb2xsZWN0aW9uLnVwZGF0ZUNhY2hl''@;'; + put 'put ''KCksdGhpcy5ub3RUcmltbWVkSW5kZXhlc0NhY2hlPXRoaXMuZ2V0Tm90VHJpbW1lZEluZGV4ZXMoITEpLHRoaXMubm90SGlkZGVuSW5kZXhlc0NhY2hlPXRoaXMuZ2V0Tm90SGlkZGVuSW5kZXhlcyghMSksdGhpcy5yZW5kZXJhYmxlUGh5c2ljYWxJbmRleGVzQ2FjaGU9dGhpcy5nZXRSZW5k''@;'; + put 'put ''ZXJhYmxlSW5kZXhlcyghMSksdGhpcy5jYWNoZUZyb21QaHlzaWNhbFRvVmlzdWFsSW5kZXhlcygpLHRoaXMuY2FjaGVGcm9tVmlzdWFsVG9SZW5kZXJhYmxlSW5kZXhlcygpLHRoaXMuaGlkZGVuSW5kZXhlc0NoYW5nZWQmJnRoaXMuaGlkaW5nQ2hhbmdlc09ic2VydmFibGUuZW1pdCh0aGlz''@;'; + put 'put ''LmhpZGluZ01hcHNDb2xsZWN0aW9uLmdldE1lcmdlZFZhbHVlcygpKSx0aGlzLnJ1bkxvY2FsSG9va3MoImNhY2hlVXBkYXRlZCIse2luZGV4ZXNTZXF1ZW5jZUNoYW5nZWQ6dGhpcy5pbmRleGVzU2VxdWVuY2VDaGFuZ2VkLHRyaW1tZWRJbmRleGVzQ2hhbmdlZDp0aGlzLnRyaW1tZWRJbmRl''@;'; + put 'put ''eGVzQ2hhbmdlZCxoaWRkZW5JbmRleGVzQ2hhbmdlZDp0aGlzLmhpZGRlbkluZGV4ZXNDaGFuZ2VkfSksdGhpcy5pbmRleGVzU2VxdWVuY2VDaGFuZ2VkPSExLHRoaXMudHJpbW1lZEluZGV4ZXNDaGFuZ2VkPSExLHRoaXMuaGlkZGVuSW5kZXhlc0NoYW5nZWQ9ITEpfX0se2tleToiY2FjaGVG''@;'; + put 'put ''cm9tUGh5c2ljYWxUb1Zpc3VhbEluZGV4ZXMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9dGhpcy5nZXROb3RUcmltbWVkSW5kZXhlc0xlbmd0aCgpO3RoaXMuZnJvbVBoeXNpY2FsVG9WaXN1YWxJbmRleGVzQ2FjaGUuY2xlYXIoKTtmb3IodmFyIHY9MDt2PGg7dis9MSl7dmFyIHk9dGhpcy5n''@;'; + put 'put ''ZXRQaHlzaWNhbEZyb21WaXN1YWxJbmRleCh2KTt0aGlzLmZyb21QaHlzaWNhbFRvVmlzdWFsSW5kZXhlc0NhY2hlLnNldCh5LHYpfX19LHtrZXk6ImNhY2hlRnJvbVZpc3VhbFRvUmVuZGVyYWJsZUluZGV4ZXMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9dGhpcy5nZXRSZW5kZXJhYmxlSW5k''@;'; + put 'put ''ZXhlc0xlbmd0aCgpO3RoaXMuZnJvbVZpc3VhbFRvUmVuZGVyYWJsZUluZGV4ZXNDYWNoZS5jbGVhcigpO2Zvcih2YXIgdj0wO3Y8aDt2Kz0xKXt2YXIgeT10aGlzLmdldFBoeXNpY2FsRnJvbVJlbmRlcmFibGVJbmRleCh2KSxDPXRoaXMuZ2V0VmlzdWFsRnJvbVBoeXNpY2FsSW5kZXgoeSk7''@;'; + put 'put ''dGhpcy5mcm9tVmlzdWFsVG9SZW5kZXJhYmxlSW5kZXhlc0NhY2hlLnNldChDLHYpfX19XSksZH0oKTtmdW5jdGlvbiBDa2UoZCl7dmFyIGg9L14oW2EtekEtWl17Mn0pLShbYS16QS1aXXsyfSkkLy5leGVjKGQpO3JldHVybiBoPyIiLmNvbmNhdChoWzFdLnRvTG93ZXJDYXNlKCksIi0iKS5j''@;'; + put 'put ''b25jYXQoaFsyXS50b1VwcGVyQ2FzZSgpKTpkfWZ1bmN0aW9uIGtrZShkKXtUbyhkKSYmXzNlKFAyKF9rZXx8KF9rZT1mdW5jdGlvbiBTWGUoZCxnKXtyZXR1cm4gZ3x8KGc9ZC5zbGljZSgwKSksT2JqZWN0LmZyZWV6ZShPYmplY3QuZGVmaW5lUHJvcGVydGllcyhkLHtyYXc6e3ZhbHVlOk9i''@;'; + put 'put ''amVjdC5mcmVlemUoZyl9fSkpfShbJ0xhbmd1YWdlIHdpdGggY29kZSAiJywnIiB3YXMgbm90IGZvdW5kLiBZb3Ugc2hvdWxkIHJlZ2lzdGVyIHBhcnRpY3VsYXIgbGFuZ3VhZ2UgXG4gICAgYmVmb3JlIHVzaW5nIGl0LiBSZWFkIG1vcmUgYWJvdXQgdGhpcyBpc3N1ZSBhdDogaHR0cHM6Ly9k''@;'; + put 'put ''b2NzLmhhbmRzb250YWJsZS5jb20vaTE4bi9taXNzaW5nLWxhbmd1YWdlLWNvZGUuJ10sWydMYW5ndWFnZSB3aXRoIGNvZGUgIicsJyIgd2FzIG5vdCBmb3VuZC4gWW91IHNob3VsZCByZWdpc3RlciBwYXJ0aWN1bGFyIGxhbmd1YWdlXFx4MjBcbiAgICBiZWZvcmUgdXNpbmcgaXQuIFJlYWQg''@;'; + put 'put ''bW9yZSBhYm91dCB0aGlzIGlzc3VlIGF0OiBodHRwczovL2RvY3MuaGFuZHNvbnRhYmxlLmNvbS9pMThuL21pc3NpbmctbGFuZ3VhZ2UtY29kZS4nXSkpLGQpKX1CMihfNGUsY2QpO3ZhciBTa2U9THAoInBocmFzZUZvcm1hdHRlcnMiKSx4WGU9U2tlLnJlZ2lzdGVyLFRYZT1Ta2UuZ2V0VmFs''@;'; + put 'put ''dWVzOyFmdW5jdGlvbiBJWGUoZCxnKXt4WGUoZCxnKX0oInBsdXJhbGl6ZSIsZnVuY3Rpb24gRVhlKGQsZyl7cmV0dXJuIEFycmF5LmlzQXJyYXkoZCkmJk51bWJlci5pc0ludGVnZXIoZyk/ZFtnXTpkfSk7dmFyIElvLFJsPSJDb250ZXh0TWVudTppdGVtcyIsQzRlPSIiLmNvbmNhdChSbCwi''@;'; + put 'put ''Lm5vSXRlbXMiKSxrNGU9IiIuY29uY2F0KFJsLCIuaW5zZXJ0Um93QWJvdmUiKSxTNGU9IiIuY29uY2F0KFJsLCIuaW5zZXJ0Um93QmVsb3ciKSxNNGU9IiIuY29uY2F0KFJsLCIuaW5zZXJ0Q29sdW1uT25UaGVMZWZ0IiksRTRlPSIiLmNvbmNhdChSbCwiLmluc2VydENvbHVtbk9uVGhlUmln''@;'; + put 'put ''aHQiKSx4NGU9IiIuY29uY2F0KFJsLCIucmVtb3ZlUm93IiksVDRlPSIiLmNvbmNhdChSbCwiLnJlbW92ZUNvbHVtbiIpLEk0ZT0iIi5jb25jYXQoUmwsIi51bmRvIiksRDRlPSIiLmNvbmNhdChSbCwiLnJlZG8iKSxMNGU9IiIuY29uY2F0KFJsLCIucmVhZE9ubHkiKSxPNGU9IiIuY29uY2F0''@;'; + put 'put ''KFJsLCIuY2xlYXJDb2x1bW4iKSxSNGU9IiIuY29uY2F0KFJsLCIuY29weSIpLEI0ZT0iIi5jb25jYXQoUmwsIi5jdXQiKSxQNGU9IiIuY29uY2F0KFJsLCIuZnJlZXplQ29sdW1uIiksRjRlPSIiLmNvbmNhdChSbCwiLnVuZnJlZXplQ29sdW1uIiksSDRlPSIiLmNvbmNhdChSbCwiLm1lcmdl''@;'; + put 'put ''Q2VsbHMiKSxONGU9IiIuY29uY2F0KFJsLCIudW5tZXJnZUNlbGxzIiksVjRlPSIiLmNvbmNhdChSbCwiLmFkZENvbW1lbnQiKSxqNGU9IiIuY29uY2F0KFJsLCIuZWRpdENvbW1lbnQiKSxaNGU9IiIuY29uY2F0KFJsLCIucmVtb3ZlQ29tbWVudCIpLHo0ZT0iIi5jb25jYXQoUmwsIi5yZWFk''@;'; + put 'put ''T25seUNvbW1lbnQiKSxHNGU9IiIuY29uY2F0KFJsLCIuYWxpZ24iKSxXNGU9IiIuY29uY2F0KFJsLCIuYWxpZ24ubGVmdCIpLFk0ZT0iIi5jb25jYXQoUmwsIi5hbGlnbi5jZW50ZXIiKSxVNGU9IiIuY29uY2F0KFJsLCIuYWxpZ24ucmlnaHQiKSxRNGU9IiIuY29uY2F0KFJsLCIuYWxpZ24u''@;'; + put 'put ''anVzdGlmeSIpLEo0ZT0iIi5jb25jYXQoUmwsIi5hbGlnbi50b3AiKSxYNGU9IiIuY29uY2F0KFJsLCIuYWxpZ24ubWlkZGxlIiksSzRlPSIiLmNvbmNhdChSbCwiLmFsaWduLmJvdHRvbSIpLCQ0ZT0iIi5jb25jYXQoUmwsIi5ib3JkZXJzIikscTRlPSIiLmNvbmNhdChSbCwiLmJvcmRlcnMu''@;'; + put 'put ''dG9wIiksZXBlPSIiLmNvbmNhdChSbCwiLmJvcmRlcnMucmlnaHQiKSx0cGU9IiIuY29uY2F0KFJsLCIuYm9yZGVycy5ib3R0b20iKSxucGU9IiIuY29uY2F0KFJsLCIuYm9yZGVycy5sZWZ0IikscnBlPSIiLmNvbmNhdChSbCwiLmJvcmRlcnMucmVtb3ZlIiksaXBlPSIiLmNvbmNhdChSbCwi''@;'; + put 'put ''Lm5lc3RlZEhlYWRlcnMuaW5zZXJ0Q2hpbGRSb3ciKSxvcGU9IiIuY29uY2F0KFJsLCIubmVzdGVkSGVhZGVycy5kZXRhY2hGcm9tUGFyZW50IiksYXBlPSIiLmNvbmNhdChSbCwiLmhpZGVDb2x1bW4iKSxscGU9IiIuY29uY2F0KFJsLCIuc2hvd0NvbHVtbiIpLHNwZT0iIi5jb25jYXQoUmws''@;'; + put 'put ''Ii5oaWRlUm93IiksdXBlPSIiLmNvbmNhdChSbCwiLnNob3dSb3ciKSxsMz0iRmlsdGVyczoiLHR1PSIiLmNvbmNhdChsMywiY29uZGl0aW9ucyIpLGV0ZT0iIi5jb25jYXQodHUsIi5ub25lIiksY3BlPSIiLmNvbmNhdCh0dSwiLmlzRW1wdHkiKSxmcGU9IiIuY29uY2F0KHR1LCIuaXNOb3RF''@;'; + put 'put ''bXB0eSIpLGhwZT0iIi5jb25jYXQodHUsIi5pc0VxdWFsVG8iKSxkcGU9IiIuY29uY2F0KHR1LCIuaXNOb3RFcXVhbFRvIikscHBlPSIiLmNvbmNhdCh0dSwiLmJlZ2luc1dpdGgiKSxncGU9IiIuY29uY2F0KHR1LCIuZW5kc1dpdGgiKSxtcGU9IiIuY29uY2F0KHR1LCIuY29udGFpbnMiKSx2''@;'; + put 'put ''cGU9IiIuY29uY2F0KHR1LCIuZG9lc05vdENvbnRhaW4iKSxMWGU9IiIuY29uY2F0KHR1LCIuYnlWYWx1ZSIpLEFwZT0iIi5jb25jYXQodHUsIi5ncmVhdGVyVGhhbiIpLHlwZT0iIi5jb25jYXQodHUsIi5ncmVhdGVyVGhhbk9yRXF1YWxUbyIpLHdwZT0iIi5jb25jYXQodHUsIi5sZXNzVGhh''@;'; + put 'put ''biIpLGJwZT0iIi5jb25jYXQodHUsIi5sZXNzVGhhbk9yRXF1YWxUbyIpLF9wZT0iIi5jb25jYXQodHUsIi5pc0JldHdlZW4iKSxDcGU9IiIuY29uY2F0KHR1LCIuaXNOb3RCZXR3ZWVuIiksa3BlPSIiLmNvbmNhdCh0dSwiLmFmdGVyIiksU3BlPSIiLmNvbmNhdCh0dSwiLmJlZm9yZSIpLE1w''@;'; + put 'put ''ZT0iIi5jb25jYXQodHUsIi50b2RheSIpLEVwZT0iIi5jb25jYXQodHUsIi50b21vcnJvdyIpLHhwZT0iIi5jb25jYXQodHUsIi55ZXN0ZXJkYXkiKSxUcGU9IiIuY29uY2F0KGwzLCJsYWJlbHMuZmlsdGVyQnlDb25kaXRpb24iKSxJcGU9IiIuY29uY2F0KGwzLCJsYWJlbHMuZmlsdGVyQnlW''@;'; + put 'put ''YWx1ZSIpLERwZT0iIi5jb25jYXQobDMsImxhYmVscy5jb25qdW5jdGlvbiIpLHR0ZT0iIi5jb25jYXQobDMsImxhYmVscy5kaXNqdW5jdGlvbiIpLG50ZT0iIi5jb25jYXQobDMsInZhbHVlcy5ibGFua0NlbGxzIiksTHBlPSIiLmNvbmNhdChsMywiYnV0dG9ucy5zZWxlY3RBbGwiKSxPcGU9''@;'; + put 'put ''IiIuY29uY2F0KGwzLCJidXR0b25zLmNsZWFyIiksUnBlPSIiLmNvbmNhdChsMywiYnV0dG9ucy5vayIpLEJwZT0iIi5jb25jYXQobDMsImJ1dHRvbnMuY2FuY2VsIiksUHBlPSIiLmNvbmNhdChsMywiYnV0dG9ucy5wbGFjZWhvbGRlci5zZWFyY2giKSxGcGU9IiIuY29uY2F0KGwzLCJidXR0''@;'; + put 'put ''b25zLnBsYWNlaG9sZGVyLnZhbHVlIiksSHBlPSIiLmNvbmNhdChsMywiYnV0dG9ucy5wbGFjZWhvbGRlci5zZWNvbmRWYWx1ZSIpO2Z1bmN0aW9uIEJvKGQsZyxoKXtyZXR1cm4gZyBpbiBkP09iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGcse3ZhbHVlOmgsZW51bWVyYWJsZTohMCxjb25maWd1''@;'; + put 'put ''cmFibGU6ITAsd3JpdGFibGU6ITB9KTpkW2ddPWgsZH1jb25zdCBNa2U9KEJvKElvPXtsYW5ndWFnZUNvZGU6ImVuLVVTIn0sQzRlLCJObyBhdmFpbGFibGUgb3B0aW9ucyIpLEJvKElvLGs0ZSwiSW5zZXJ0IHJvdyBhYm92ZSIpLEJvKElvLFM0ZSwiSW5zZXJ0IHJvdyBiZWxvdyIpLEJvKElv''@;'; + put 'put ''LE00ZSwiSW5zZXJ0IGNvbHVtbiBsZWZ0IiksQm8oSW8sRTRlLCJJbnNlcnQgY29sdW1uIHJpZ2h0IiksQm8oSW8seDRlLFsiUmVtb3ZlIHJvdyIsIlJlbW92ZSByb3dzIl0pLEJvKElvLFQ0ZSxbIlJlbW92ZSBjb2x1bW4iLCJSZW1vdmUgY29sdW1ucyJdKSxCbyhJbyxJNGUsIlVuZG8iKSxC''@;'; + put 'put ''byhJbyxENGUsIlJlZG8iKSxCbyhJbyxMNGUsIlJlYWQgb25seSIpLEJvKElvLE80ZSwiQ2xlYXIgY29sdW1uIiksQm8oSW8sRzRlLCJBbGlnbm1lbnQiKSxCbyhJbyxXNGUsIkxlZnQiKSxCbyhJbyxZNGUsIkNlbnRlciIpLEJvKElvLFU0ZSwiUmlnaHQiKSxCbyhJbyxRNGUsIkp1c3RpZnki''@;'; + put 'put ''KSxCbyhJbyxKNGUsIlRvcCIpLEJvKElvLFg0ZSwiTWlkZGxlIiksQm8oSW8sSzRlLCJCb3R0b20iKSxCbyhJbyxQNGUsIkZyZWV6ZSBjb2x1bW4iKSxCbyhJbyxGNGUsIlVuZnJlZXplIGNvbHVtbiIpLEJvKElvLCQ0ZSwiQm9yZGVycyIpLEJvKElvLHE0ZSwiVG9wIiksQm8oSW8sZXBlLCJS''@;'; + put 'put ''aWdodCIpLEJvKElvLHRwZSwiQm90dG9tIiksQm8oSW8sbnBlLCJMZWZ0IiksQm8oSW8scnBlLCJSZW1vdmUgYm9yZGVyKHMpIiksQm8oSW8sVjRlLCJBZGQgY29tbWVudCIpLEJvKElvLGo0ZSwiRWRpdCBjb21tZW50IiksQm8oSW8sWjRlLCJEZWxldGUgY29tbWVudCIpLEJvKElvLHo0ZSwi''@;'; + put 'put ''UmVhZC1vbmx5IGNvbW1lbnQiKSxCbyhJbyxINGUsIk1lcmdlIGNlbGxzIiksQm8oSW8sTjRlLCJVbm1lcmdlIGNlbGxzIiksQm8oSW8sUjRlLCJDb3B5IiksQm8oSW8sQjRlLCJDdXQiKSxCbyhJbyxpcGUsIkluc2VydCBjaGlsZCByb3ciKSxCbyhJbyxvcGUsIkRldGFjaCBmcm9tIHBhcmVu''@;'; + put 'put ''dCIpLEJvKElvLGFwZSxbIkhpZGUgY29sdW1uIiwiSGlkZSBjb2x1bW5zIl0pLEJvKElvLGxwZSxbIlNob3cgY29sdW1uIiwiU2hvdyBjb2x1bW5zIl0pLEJvKElvLHNwZSxbIkhpZGUgcm93IiwiSGlkZSByb3dzIl0pLEJvKElvLHVwZSxbIlNob3cgcm93IiwiU2hvdyByb3dzIl0pLEJvKElv''@;'; + put 'put ''LGV0ZSwiTm9uZSIpLEJvKElvLGNwZSwiSXMgZW1wdHkiKSxCbyhJbyxmcGUsIklzIG5vdCBlbXB0eSIpLEJvKElvLGhwZSwiSXMgZXF1YWwgdG8iKSxCbyhJbyxkcGUsIklzIG5vdCBlcXVhbCB0byIpLEJvKElvLHBwZSwiQmVnaW5zIHdpdGgiKSxCbyhJbyxncGUsIkVuZHMgd2l0aCIpLEJv''@;'; + put 'put ''KElvLG1wZSwiQ29udGFpbnMiKSxCbyhJbyx2cGUsIkRvZXMgbm90IGNvbnRhaW4iKSxCbyhJbyxBcGUsIkdyZWF0ZXIgdGhhbiIpLEJvKElvLHlwZSwiR3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIiksQm8oSW8sd3BlLCJMZXNzIHRoYW4iKSxCbyhJbyxicGUsIkxlc3MgdGhhbiBvciBlcXVh''@;'; + put 'put ''bCB0byIpLEJvKElvLF9wZSwiSXMgYmV0d2VlbiIpLEJvKElvLENwZSwiSXMgbm90IGJldHdlZW4iKSxCbyhJbyxrcGUsIkFmdGVyIiksQm8oSW8sU3BlLCJCZWZvcmUiKSxCbyhJbyxNcGUsIlRvZGF5IiksQm8oSW8sRXBlLCJUb21vcnJvdyIpLEJvKElvLHhwZSwiWWVzdGVyZGF5IiksQm8o''@;'; + put 'put ''SW8sbnRlLCJCbGFuayBjZWxscyIpLEJvKElvLFRwZSwiRmlsdGVyIGJ5IGNvbmRpdGlvbiIpLEJvKElvLElwZSwiRmlsdGVyIGJ5IHZhbHVlIiksQm8oSW8sRHBlLCJBbmQiKSxCbyhJbyx0dGUsIk9yIiksQm8oSW8sTHBlLCJTZWxlY3QgYWxsIiksQm8oSW8sT3BlLCJDbGVhciIpLEJvKElv''@;'; + put 'put ''LFJwZSwiT0siKSxCbyhJbyxCcGUsIkNhbmNlbCIpLEJvKElvLFBwZSwiU2VhcmNoIiksQm8oSW8sRnBlLCJWYWx1ZSIpLEJvKElvLEhwZSwiU2Vjb25kIHZhbHVlIiksSW8pO3ZhciBOcGU9TWtlLmxhbmd1YWdlQ29kZSxydGU9THAoImxhbmd1YWdlc0RpY3Rpb25hcmllcyIpLFJYZT1ydGUu''@;'; + put 'put ''cmVnaXN0ZXIsRWtlPXJ0ZS5nZXRJdGVtLEJYZT1ydGUuaGFzSXRlbSxQWGU9cnRlLmdldFZhbHVlcztmdW5jdGlvbiB4a2UoZCxnKXt2YXIgaD1kLHY9ZztyZXR1cm4geGwoZCkmJihoPSh2PWQpLmxhbmd1YWdlQ29kZSksZnVuY3Rpb24gRlhlKGQsZyl7ZCE9PU5wZSYmZnVuY3Rpb24gTVhl''@;'; + put 'put ''KGQsZyl7R2woZyxmdW5jdGlvbihoLHYpe2ExKGRbdl0pJiYoZFt2XT1oKX0pfShnLEVrZShOcGUpKX0oaCx2KSxSWGUoaCxnaCh2KSksZ2godil9ZnVuY3Rpb24gVGtlKGQpe3JldHVybiBWcGUoZCk/Z2goRWtlKGQpKTpudWxsfWZ1bmN0aW9uIFZwZShkKXtyZXR1cm4gQlhlKGQpfWZ1bmN0''@;'; + put 'put ''aW9uIElrZShkLGcsaCl7dmFyIHY9VGtlKGQpO2lmKG51bGw9PT12KXJldHVybiBudWxsO3ZhciB5PXZbZ107aWYoYTEoeSkpcmV0dXJuIG51bGw7dmFyIEM9ZnVuY3Rpb24gTlhlKGQsZyl7dmFyIGg9ZDtyZXR1cm4gVXIoZnVuY3Rpb24gRFhlKCl7cmV0dXJuIFRYZSgpfSgpLGZ1bmN0aW9u''@;'; + put 'put ''KHYpe2g9dihkLGcpfSksaH0oeSxoKTtyZXR1cm4gQXJyYXkuaXNBcnJheShDKT9DWzBdOkN9ZnVuY3Rpb24gVlhlKGQpe3ZhciBnPUNrZShkKTtyZXR1cm4gVnBlKGcpfHwoZz1OcGUsa2tlKGQpKSxnfXhrZShNa2UpLEwoNTU2MTUpO3ZhciBpdGU9ImFjdGl2ZS1oZWFkZXIiLG90ZT0iYXJl''@;'; + put 'put ''YSIsYXo9ImNlbGwiLGx6PSJoZWFkZXIiLFpwZT0iY3VzdG9tLXNlbGVjdGlvbiI7ZnVuY3Rpb24genBlKGQsZyl7cmV0dXJuIGZ1bmN0aW9uIEdYZShkKXtpZihBcnJheS5pc0FycmF5KGQpKXJldHVybiBkfShkKXx8ZnVuY3Rpb24gelhlKGQsZyl7dmFyIGg9bnVsbD09ZD9udWxsOiJ1bmRl''@;'; + put 'put ''ZmluZWQiIT10eXBlb2YgU3ltYm9sJiZkW1N5bWJvbC5pdGVyYXRvcl18fGRbIkBAaXRlcmF0b3IiXTtpZihudWxsIT1oKXt2YXIgSSxqLHY9W10seT0hMCxDPSExO3RyeXtmb3IoaD1oLmNhbGwoZCk7ISh5PShJPWgubmV4dCgpKS5kb25lKSYmKHYucHVzaChJLnZhbHVlKSwhZ3x8di5sZW5n''@;'; + put 'put ''dGghPT1nKTt5PSEwKTt9Y2F0Y2godWUpe0M9ITAsaj11ZX1maW5hbGx5e3RyeXsheSYmbnVsbCE9aC5yZXR1cm4mJmgucmV0dXJuKCl9ZmluYWxseXtpZihDKXRocm93IGp9fXJldHVybiB2fX0oZCxnKXx8ZnVuY3Rpb24gWlhlKGQsZyl7aWYoZCl7aWYoInN0cmluZyI9PXR5cGVvZiBkKXJl''@;'; + put 'put ''dHVybiBEa2UoZCxnKTt2YXIgaD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZCkuc2xpY2UoOCwtMSk7aWYoIk9iamVjdCI9PT1oJiZkLmNvbnN0cnVjdG9yJiYoaD1kLmNvbnN0cnVjdG9yLm5hbWUpLCJNYXAiPT09aHx8IlNldCI9PT1oKXJldHVybiBBcnJheS5mcm9tKGQpO2lm''@;'; + put 'put ''KCJBcmd1bWVudHMiPT09aHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QoaCkpcmV0dXJuIERrZShkLGcpfX0oZCxnKXx8ZnVuY3Rpb24galhlKCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1p''@;'; + put 'put ''dGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX1mdW5jdGlvbiBEa2UoZCxnKXsobnVsbD09Z3x8Zz5kLmxlbmd0aCkmJihnPWQubGVuZ3RoKTtmb3Io''@;'; + put 'put ''dmFyIGg9MCx2PW5ldyBBcnJheShnKTtoPGc7aCsrKXZbaF09ZFtoXTtyZXR1cm4gdn1mdW5jdGlvbiBMa2UoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4g''@;'; + put 'put ''diYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX1MKDgzODU3KTt2YXIgVVhlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZChnLGgpeyhmdW5jdGlvbiBXWGUoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3Qg''@;'; + put 'put ''Y2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0pKHRoaXMsZCksaCYmKHRoaXMuZXZlbnRNYW5hZ2VyPWcuZXZlbnRNYW5hZ2VyLHRoaXMuaW5zdGFuY2U9Zyx0aGlzLndvdD1nLHRoaXMuc2V0dGluZ3M9aCx0aGlzLm1vdXNlRG93bj0hMSx0aGlzLm1haW49bnVsbCx0aGlzLnRvcD1udWxs''@;'; + put 'put ''LHRoaXMuYm90dG9tPW51bGwsdGhpcy5zdGFydD1udWxsLHRoaXMuZW5kPW51bGwsdGhpcy50b3BTdHlsZT1udWxsLHRoaXMuYm90dG9tU3R5bGU9bnVsbCx0aGlzLnN0YXJ0U3R5bGU9bnVsbCx0aGlzLmVuZFN0eWxlPW51bGwsdGhpcy5jb3JuZXJEZWZhdWx0U3R5bGU9e3dpZHRoOiI2cHgi''@;'; + put 'put ''LGhlaWdodDoiNnB4Iixib3JkZXJXaWR0aDoiMXB4Iixib3JkZXJTdHlsZToic29saWQiLGJvcmRlckNvbG9yOiIjRkZGIn0sdGhpcy5jb3JuZXJDZW50ZXJQb2ludE9mZnNldD0tcGFyc2VJbnQodGhpcy5jb3JuZXJEZWZhdWx0U3R5bGUud2lkdGgsMTApLzIsdGhpcy5jb3JuZXI9bnVsbCx0''@;'; + put 'put ''aGlzLmNvcm5lclN0eWxlPW51bGwsdGhpcy5jcmVhdGVCb3JkZXJzKGgpLHRoaXMucmVnaXN0ZXJMaXN0ZW5lcnMoKSl9cmV0dXJuIGZ1bmN0aW9uIFlYZShkLGcsaCl7ZyYmTGtlKGQucHJvdG90eXBlLGcpLGgmJkxrZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUi''@;'; + put 'put ''LHt3cml0YWJsZTohMX0pfShkLFt7a2V5OiJyZWdpc3Rlckxpc3RlbmVycyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD10aGlzLHY9dGhpcy53b3Qucm9vdERvY3VtZW50LmJvZHk7dGhpcy5ldmVudE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcih2LCJtb3VzZWRvd24iLGZ1bmN0aW9uKCl7cmV0''@;'; + put 'put ''dXJuIGgub25Nb3VzZURvd24oKX0pLHRoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIodiwibW91c2V1cCIsZnVuY3Rpb24oKXtyZXR1cm4gaC5vbk1vdXNlVXAoKX0pO2Zvcih2YXIgeT1mdW5jdGlvbih1ZSxfZSl7aC5ldmVudE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihoLm1h''@;'; + put 'put ''aW4uY2hpbGROb2Rlc1t1ZV0sIm1vdXNlZW50ZXIiLGZ1bmN0aW9uKE5lKXtyZXR1cm4gaC5vbk1vdXNlRW50ZXIoTmUsaC5tYWluLmNoaWxkTm9kZXNbdWVdKX0pfSxDPTAsST10aGlzLm1haW4uY2hpbGROb2Rlcy5sZW5ndGg7QzxJO0MrKyl5KEMpfX0se2tleToib25Nb3VzZURvd24iLHZh''@;'; + put 'put ''bHVlOmZ1bmN0aW9uKCl7dGhpcy5tb3VzZURvd249ITB9fSx7a2V5OiJvbk1vdXNlVXAiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5tb3VzZURvd249ITF9fSx7a2V5OiJvbk1vdXNlRW50ZXIiLHZhbHVlOmZ1bmN0aW9uKGgsdil7aWYodGhpcy5tb3VzZURvd24mJnRoaXMud290LmdldFNldHRp''@;'; + put 'put ''bmcoImhpZGVCb3JkZXJPbk1vdXNlRG93bk92ZXIiKSl7aC5wcmV2ZW50RGVmYXVsdCgpLF84KGgpO3ZhciB5PXRoaXMsQz10aGlzLndvdC5yb290RG9jdW1lbnQuYm9keSxJPXYuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7di5zdHlsZS5kaXNwbGF5PSJub25lIix0aGlzLmV2ZW50TWFuYWdl''@;'; + put 'put ''ci5hZGRFdmVudExpc3RlbmVyKEMsIm1vdXNlbW92ZSIsZnVuY3Rpb24gdWUoX2UpeyhmdW5jdGlvbiBqKF9lKXtpZihfZS5jbGllbnRZPE1hdGguZmxvb3IoSS50b3ApfHxfZS5jbGllbnRZPk1hdGguY2VpbChJLnRvcCtJLmhlaWdodCl8fF9lLmNsaWVudFg8TWF0aC5mbG9vcihJLmxlZnQp''@;'; + put 'put ''fHxfZS5jbGllbnRYPk1hdGguY2VpbChJLmxlZnQrSS53aWR0aCkpcmV0dXJuITB9KShfZSkmJih5LmV2ZW50TWFuYWdlci5yZW1vdmVFdmVudExpc3RlbmVyKEMsIm1vdXNlbW92ZSIsdWUpLHYuc3R5bGUuZGlzcGxheT0iYmxvY2siKX0pfX19LHtrZXk6ImNyZWF0ZUJvcmRlcnMiLHZhbHVl''@;'; + put 'put ''OmZ1bmN0aW9uKGgpe3ZhciB2PXRoaXMud290LnJvb3REb2N1bWVudDt0aGlzLm1haW49di5jcmVhdGVFbGVtZW50KCJkaXYiKTt2YXIgeT1bInRvcCIsInN0YXJ0IiwiYm90dG9tIiwiZW5kIiwiY29ybmVyIl0sQz10aGlzLm1haW4uc3R5bGU7Qy5wb3NpdGlvbj0iYWJzb2x1dGUiLEMudG9w''@;'; + put 'put ''PTAsQy5sZWZ0PTA7Zm9yKHZhciBJPTA7STw1O0krKyl7dmFyIGo9eVtJXSx1ZT12LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3VlLmNsYXNzTmFtZT0id3RCb3JkZXIgIi5jb25jYXQodGhpcy5zZXR0aW5ncy5jbGFzc05hbWV8fCIiKSx0aGlzLnNldHRpbmdzW2pdJiZ0aGlzLnNldHRpbmdzW2pd''@;'; + put 'put ''LmhpZGUmJih1ZS5jbGFzc05hbWUrPSIgaGlkZGVuIiksKEM9dWUuc3R5bGUpLmJhY2tncm91bmRDb2xvcj10aGlzLnNldHRpbmdzW2pdJiZ0aGlzLnNldHRpbmdzW2pdLmNvbG9yP3RoaXMuc2V0dGluZ3Nbal0uY29sb3I6aC5ib3JkZXIuY29sb3IsQy5oZWlnaHQ9IiIuY29uY2F0KHRoaXMu''@;'; + put 'put ''c2V0dGluZ3Nbal0mJnRoaXMuc2V0dGluZ3Nbal0ud2lkdGg/dGhpcy5zZXR0aW5nc1tqXS53aWR0aDpoLmJvcmRlci53aWR0aCwicHgiKSxDLndpZHRoPSIiLmNvbmNhdCh0aGlzLnNldHRpbmdzW2pdJiZ0aGlzLnNldHRpbmdzW2pdLndpZHRoP3RoaXMuc2V0dGluZ3Nbal0ud2lkdGg6aC5i''@;'; + put 'put ''b3JkZXIud2lkdGgsInB4IiksdGhpcy5tYWluLmFwcGVuZENoaWxkKHVlKX10aGlzLnRvcD10aGlzLm1haW4uY2hpbGROb2Rlc1swXSx0aGlzLnN0YXJ0PXRoaXMubWFpbi5jaGlsZE5vZGVzWzFdLHRoaXMuYm90dG9tPXRoaXMubWFpbi5jaGlsZE5vZGVzWzJdLHRoaXMuZW5kPXRoaXMubWFp''@;'; + put 'put ''bi5jaGlsZE5vZGVzWzNdLHRoaXMudG9wU3R5bGU9dGhpcy50b3Auc3R5bGUsdGhpcy5zdGFydFN0eWxlPXRoaXMuc3RhcnQuc3R5bGUsdGhpcy5ib3R0b21TdHlsZT10aGlzLmJvdHRvbS5zdHlsZSx0aGlzLmVuZFN0eWxlPXRoaXMuZW5kLnN0eWxlLHRoaXMuY29ybmVyPXRoaXMubWFpbi5j''@;'; + put 'put ''aGlsZE5vZGVzWzRdLHRoaXMuY29ybmVyLmNsYXNzTmFtZSs9IiBjb3JuZXIiLHRoaXMuY29ybmVyU3R5bGU9dGhpcy5jb3JuZXIuc3R5bGUsdGhpcy5jb3JuZXJTdHlsZS53aWR0aD10aGlzLmNvcm5lckRlZmF1bHRTdHlsZS53aWR0aCx0aGlzLmNvcm5lclN0eWxlLmhlaWdodD10aGlzLmNv''@;'; + put 'put ''cm5lckRlZmF1bHRTdHlsZS5oZWlnaHQsdGhpcy5jb3JuZXJTdHlsZS5ib3JkZXI9W3RoaXMuY29ybmVyRGVmYXVsdFN0eWxlLmJvcmRlcldpZHRoLHRoaXMuY29ybmVyRGVmYXVsdFN0eWxlLmJvcmRlclN0eWxlLHRoaXMuY29ybmVyRGVmYXVsdFN0eWxlLmJvcmRlckNvbG9yXS5qb2luKCIg''@;'; + put 'put ''IiksYjgoKSYmdGhpcy5jcmVhdGVNdWx0aXBsZVNlbGVjdG9ySGFuZGxlcygpLHRoaXMuZGlzYXBwZWFyKCk7dmFyIF9lPXRoaXMud290Lnd0VGFibGUsQmU9X2UuYm9yZGVyc0hvbGRlcjtCZXx8KChCZT12LmNyZWF0ZUVsZW1lbnQoImRpdiIpKS5jbGFzc05hbWU9Imh0Qm9yZGVycyIsX2Uu''@;'; + put 'put ''Ym9yZGVyc0hvbGRlcj1CZSxfZS5zcHJlYWRlci5hcHBlbmRDaGlsZChCZSkpLEJlLmFwcGVuZENoaWxkKHRoaXMubWFpbil9fSx7a2V5OiJjcmVhdGVNdWx0aXBsZVNlbGVjdG9ySGFuZGxlcyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD10aGlzLHY9dGhpcy53b3Qucm9vdERvY3VtZW50O3Ro''@;'; + put 'put ''aXMuc2VsZWN0aW9uSGFuZGxlcz17dG9wOnYuY3JlYXRlRWxlbWVudCgiRElWIiksdG9wSGl0QXJlYTp2LmNyZWF0ZUVsZW1lbnQoIkRJViIpLGJvdHRvbTp2LmNyZWF0ZUVsZW1lbnQoIkRJViIpLGJvdHRvbUhpdEFyZWE6di5jcmVhdGVFbGVtZW50KCJESVYiKX0sdGhpcy5zZWxlY3Rpb25I''@;'; + put 'put ''YW5kbGVzLnRvcC5jbGFzc05hbWU9InRvcFNlbGVjdGlvbkhhbmRsZSB0b3BMZWZ0U2VsZWN0aW9uSGFuZGxlIix0aGlzLnNlbGVjdGlvbkhhbmRsZXMudG9wSGl0QXJlYS5jbGFzc05hbWU9InRvcFNlbGVjdGlvbkhhbmRsZS1IaXRBcmVhIHRvcExlZnRTZWxlY3Rpb25IYW5kbGUtSGl0QXJl''@;'; + put 'put ''YSIsdGhpcy5zZWxlY3Rpb25IYW5kbGVzLmJvdHRvbS5jbGFzc05hbWU9ImJvdHRvbVNlbGVjdGlvbkhhbmRsZSBib3R0b21SaWdodFNlbGVjdGlvbkhhbmRsZSIsdGhpcy5zZWxlY3Rpb25IYW5kbGVzLmJvdHRvbUhpdEFyZWEuY2xhc3NOYW1lPSJib3R0b21TZWxlY3Rpb25IYW5kbGUtSGl0''@;'; + put 'put ''QXJlYSBib3R0b21SaWdodFNlbGVjdGlvbkhhbmRsZS1IaXRBcmVhIix0aGlzLnNlbGVjdGlvbkhhbmRsZXMuc3R5bGVzPXt0b3A6dGhpcy5zZWxlY3Rpb25IYW5kbGVzLnRvcC5zdHlsZSx0b3BIaXRBcmVhOnRoaXMuc2VsZWN0aW9uSGFuZGxlcy50b3BIaXRBcmVhLnN0eWxlLGJvdHRvbTp0''@;'; + put 'put ''aGlzLnNlbGVjdGlvbkhhbmRsZXMuYm90dG9tLnN0eWxlLGJvdHRvbUhpdEFyZWE6dGhpcy5zZWxlY3Rpb25IYW5kbGVzLmJvdHRvbUhpdEFyZWEuc3R5bGV9LEdsKHtwb3NpdGlvbjoiYWJzb2x1dGUiLGhlaWdodDoiIi5jb25jYXQoNDAsInB4Iiksd2lkdGg6IiIuY29uY2F0KDQwLCJweCIp''@;'; + put 'put ''LCJib3JkZXItcmFkaXVzIjoiIi5jb25jYXQocGFyc2VJbnQoNDAvMS41LDEwKSwicHgiKX0sZnVuY3Rpb24odWUsX2Upe2guc2VsZWN0aW9uSGFuZGxlcy5zdHlsZXMuYm90dG9tSGl0QXJlYVtfZV09dWUsaC5zZWxlY3Rpb25IYW5kbGVzLnN0eWxlcy50b3BIaXRBcmVhW19lXT11ZX0pLEds''@;'; + put 'put ''KHtwb3NpdGlvbjoiYWJzb2x1dGUiLGhlaWdodDoiIi5jb25jYXQoMTAsInB4Iiksd2lkdGg6IiIuY29uY2F0KDEwLCJweCIpLCJib3JkZXItcmFkaXVzIjoiIi5jb25jYXQocGFyc2VJbnQoMTAvMS41LDEwKSwicHgiKSxiYWNrZ3JvdW5kOiIjRjVGNUZGIixib3JkZXI6IjFweCBzb2xpZCAj''@;'; + put 'put ''NDI4NWM4In0sZnVuY3Rpb24odWUsX2Upe2guc2VsZWN0aW9uSGFuZGxlcy5zdHlsZXMuYm90dG9tW19lXT11ZSxoLnNlbGVjdGlvbkhhbmRsZXMuc3R5bGVzLnRvcFtfZV09dWV9KSx0aGlzLm1haW4uYXBwZW5kQ2hpbGQodGhpcy5zZWxlY3Rpb25IYW5kbGVzLnRvcCksdGhpcy5tYWluLmFw''@;'; + put 'put ''cGVuZENoaWxkKHRoaXMuc2VsZWN0aW9uSGFuZGxlcy5ib3R0b20pLHRoaXMubWFpbi5hcHBlbmRDaGlsZCh0aGlzLnNlbGVjdGlvbkhhbmRsZXMudG9wSGl0QXJlYSksdGhpcy5tYWluLmFwcGVuZENoaWxkKHRoaXMuc2VsZWN0aW9uSGFuZGxlcy5ib3R0b21IaXRBcmVhKX19LHtrZXk6Imlz''@;'; + put 'put ''UGFydFJhbmdlIix2YWx1ZTpmdW5jdGlvbihoLHYpe3ZhciB5PXRoaXMud290LnNlbGVjdGlvbnMuY3JlYXRlT3JHZXRBcmVhKCk7cmV0dXJuISgheS5jZWxsUmFuZ2V8fGg9PT15LmNlbGxSYW5nZS50by5yb3cmJnY9PT15LmNlbGxSYW5nZS50by5jb2wpfX0se2tleToidXBkYXRlTXVsdGlw''@;'; + put 'put ''bGVTZWxlY3Rpb25IYW5kbGVzUG9zaXRpb24iLHZhbHVlOmZ1bmN0aW9uKGgsdix5LEMsSSxqKXt2YXIgX2U9dGhpcy53b3Qud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJydGxNb2RlIik/InJpZ2h0IjoibGVmdCIsQmU9cGFyc2VJbnQodGhpcy5zZWxlY3Rpb25IYW5kbGVzLnN0eWxlcy50b3Au''@;'; + put 'put ''d2lkdGgsMTApLE5lPXBhcnNlSW50KHRoaXMuc2VsZWN0aW9uSGFuZGxlcy5zdHlsZXMudG9wSGl0QXJlYS53aWR0aCwxMCk7dGhpcy5zZWxlY3Rpb25IYW5kbGVzLnN0eWxlcy50b3AudG9wPSIiLmNvbmNhdChwYXJzZUludCh5LUJlLTEsMTApLCJweCIpLHRoaXMuc2VsZWN0aW9uSGFuZGxl''@;'; + put 'put ''cy5zdHlsZXMudG9wW19lXT0iIi5jb25jYXQocGFyc2VJbnQoQy1CZS0xLDEwKSwicHgiKSx0aGlzLnNlbGVjdGlvbkhhbmRsZXMuc3R5bGVzLnRvcEhpdEFyZWEudG9wPSIiLmNvbmNhdChwYXJzZUludCh5LU5lLzQqMywxMCksInB4IiksdGhpcy5zZWxlY3Rpb25IYW5kbGVzLnN0eWxlcy50''@;'; + put 'put ''b3BIaXRBcmVhW19lXT0iIi5jb25jYXQocGFyc2VJbnQoQy1OZS80KjMsMTApLCJweCIpLHRoaXMuc2VsZWN0aW9uSGFuZGxlcy5zdHlsZXMuYm90dG9tLnRvcD0iIi5jb25jYXQocGFyc2VJbnQoeStqLDEwKSwicHgiKSx0aGlzLnNlbGVjdGlvbkhhbmRsZXMuc3R5bGVzLmJvdHRvbVtfZV09''@;'; + put 'put ''IiIuY29uY2F0KHBhcnNlSW50KEMrSSwxMCksInB4IiksdGhpcy5zZWxlY3Rpb25IYW5kbGVzLnN0eWxlcy5ib3R0b21IaXRBcmVhLnRvcD0iIi5jb25jYXQocGFyc2VJbnQoeStqLU5lLzQsMTApLCJweCIpLHRoaXMuc2VsZWN0aW9uSGFuZGxlcy5zdHlsZXMuYm90dG9tSGl0QXJlYVtfZV09''@;'; + put 'put ''IiIuY29uY2F0KHBhcnNlSW50KEMrSS1OZS80LDEwKSwicHgiKSx0aGlzLnNldHRpbmdzLmJvcmRlci5jb3JuZXJWaXNpYmxlJiZ0aGlzLnNldHRpbmdzLmJvcmRlci5jb3JuZXJWaXNpYmxlKCk/KHRoaXMuc2VsZWN0aW9uSGFuZGxlcy5zdHlsZXMudG9wLmRpc3BsYXk9ImJsb2NrIix0aGlz''@;'; + put 'put ''LnNlbGVjdGlvbkhhbmRsZXMuc3R5bGVzLnRvcEhpdEFyZWEuZGlzcGxheT0iYmxvY2siLHRoaXMuaXNQYXJ0UmFuZ2UoaCx2KT8odGhpcy5zZWxlY3Rpb25IYW5kbGVzLnN0eWxlcy5ib3R0b20uZGlzcGxheT0ibm9uZSIsdGhpcy5zZWxlY3Rpb25IYW5kbGVzLnN0eWxlcy5ib3R0b21IaXRB''@;'; + put 'put ''cmVhLmRpc3BsYXk9Im5vbmUiKToodGhpcy5zZWxlY3Rpb25IYW5kbGVzLnN0eWxlcy5ib3R0b20uZGlzcGxheT0iYmxvY2siLHRoaXMuc2VsZWN0aW9uSGFuZGxlcy5zdHlsZXMuYm90dG9tSGl0QXJlYS5kaXNwbGF5PSJibG9jayIpKToodGhpcy5zZWxlY3Rpb25IYW5kbGVzLnN0eWxlcy50''@;'; + put 'put ''b3AuZGlzcGxheT0ibm9uZSIsdGhpcy5zZWxlY3Rpb25IYW5kbGVzLnN0eWxlcy5ib3R0b20uZGlzcGxheT0ibm9uZSIsdGhpcy5zZWxlY3Rpb25IYW5kbGVzLnN0eWxlcy50b3BIaXRBcmVhLmRpc3BsYXk9Im5vbmUiLHRoaXMuc2VsZWN0aW9uSGFuZGxlcy5zdHlsZXMuYm90dG9tSGl0QXJl''@;'; + put 'put ''YS5kaXNwbGF5PSJub25lIiksaD09PXRoaXMud290Lnd0U2V0dGluZ3MuZ2V0U2V0dGluZygiZml4ZWRSb3dzVG9wIil8fHY9PT10aGlzLndvdC53dFNldHRpbmdzLmdldFNldHRpbmcoImZpeGVkQ29sdW1uc1N0YXJ0Iik/KHRoaXMuc2VsZWN0aW9uSGFuZGxlcy5zdHlsZXMudG9wLnpJbmRl''@;'; + put 'put ''eD0iOTk5OSIsdGhpcy5zZWxlY3Rpb25IYW5kbGVzLnN0eWxlcy50b3BIaXRBcmVhLnpJbmRleD0iOTk5OSIpOih0aGlzLnNlbGVjdGlvbkhhbmRsZXMuc3R5bGVzLnRvcC56SW5kZXg9IiIsdGhpcy5zZWxlY3Rpb25IYW5kbGVzLnN0eWxlcy50b3BIaXRBcmVhLnpJbmRleD0iIil9fSx7a2V5''@;'; + put 'put ''OiJhcHBlYXIiLHZhbHVlOmZ1bmN0aW9uKGgpe2lmKCF0aGlzLmRpc2FibGVkKXtmb3IodmFyIGosdWUsX2UsQmUsTmUsS2Usdj10aGlzLndvdCx5PXYud3RUYWJsZSxDPXYucm9vdERvY3VtZW50LEk9di5yb290V2luZG93LGR0PXkuZ2V0UmVuZGVyZWRSb3dzQ291bnQoKSxPdD0wO090PGR0''@;'; + put 'put ''O090Kz0xKXt2YXIgJHQ9eS5yb3dGaWx0ZXIucmVuZGVyZWRUb1NvdXJjZShPdCk7aWYoJHQ+PWhbMF0mJiR0PD1oWzJdKXtqPSR0LE5lPWhbMF07YnJlYWt9fWZvcih2YXIgZm49ZHQtMTtmbj49MDtmbi09MSl7dmFyIExuPXkucm93RmlsdGVyLnJlbmRlcmVkVG9Tb3VyY2UoZm4pO2lmKExu''@;'; + put 'put ''Pj1oWzBdJiZMbjw9aFsyXSl7dWU9TG47YnJlYWt9fWZvcih2YXIgaXI9eS5nZXRSZW5kZXJlZENvbHVtbnNDb3VudCgpLG1yPTA7bXI8aXI7bXIrPTEpe3ZhciBTcj15LmNvbHVtbkZpbHRlci5yZW5kZXJlZFRvU291cmNlKG1yKTtpZihTcj49aFsxXSYmU3I8PWhbM10pe19lPVNyLEtlPWhb''@;'; + put 'put ''MV07YnJlYWt9fWZvcih2YXIgd3I9aXItMTt3cj49MDt3ci09MSl7dmFyIFFyPXkuY29sdW1uRmlsdGVyLnJlbmRlcmVkVG9Tb3VyY2Uod3IpO2lmKFFyPj1oWzFdJiZRcjw9aFszXSl7QmU9UXI7YnJlYWt9fWlmKHZvaWQgMD09PWp8fHZvaWQgMD09PV9lKXJldHVybiB2b2lkIHRoaXMuZGlz''@;'; + put 'put ''YXBwZWFyKCk7dmFyIHlpPXkuZ2V0Q2VsbCh0aGlzLndvdC5jcmVhdGVDZWxsQ29vcmRzKGosX2UpKSxLaT1qIT09dWV8fF9lIT09QmUsU289S2k/eS5nZXRDZWxsKHRoaXMud290LmNyZWF0ZUNlbGxDb29yZHModWUsQmUpKTp5aSxQbz1qdSh5aSksU2E9S2k/anUoU28pOlBvLEphPWp1KHku''@;'; + put 'put ''VEFCTEUpLGxhPUUyKHkuVEFCTEUpLGFsPVBvLnRvcCxPcz1Qby5sZWZ0LFAwPXRoaXMud290Lnd0U2V0dGluZ3MuZ2V0U2V0dGluZygicnRsTW9kZSIpLHJvPTAsZm89MDtpZihQMCl7dmFyIElhPUUyKHlpKTtmbz1PcytJYS1TYS5sZWZ0LHJvPUkuaW5uZXJXaWR0aC1Pcy1JYS0oSS5pbm5l''@;'; + put 'put ''cldpZHRoLUphLmxlZnQtbGEpLTF9ZWxzZSBmbz1TYS5sZWZ0K0UyKFNvKS1Pcyxybz1Pcy1KYS5sZWZ0LTE7aWYodGhpcy5pc0VudGlyZUNvbHVtblNlbGVjdGVkKGosdWUpKXt2YXIgRm49dGhpcy5nZXREaW1lbnNpb25zRnJvbUhlYWRlcigiY29sdW1ucyIsX2UsQmUsTmUsSmEpLFpuPW51''@;'; + put 'put ''bGw7aWYoRm4pe3ZhciBfcj16cGUoRm4sMyk7Wm49X3JbMF0scm89X3JbMV0sZm89X3JbMl19Wm4mJih5aT1abil9dmFyIFhyPWFsLUphLnRvcC0xLGNpPVNhLnRvcCtEMShTbyktYWw7aWYodGhpcy5pc0VudGlyZVJvd1NlbGVjdGVkKF9lLEJlKSl7dmFyIGMwPXRoaXMuZ2V0RGltZW5zaW9u''@;'; + put 'put ''c0Zyb21IZWFkZXIoInJvd3MiLGosdWUsS2UsSmEpLFhpPW51bGw7aWYoYzApe3ZhciBFMD16cGUoYzAsMyk7WGk9RTBbMF0sWHI9RTBbMV0sY2k9RTBbMl19WGkmJih5aT1YaSl9dmFyIHowPU13KHlpLEkpO3BhcnNlSW50KHowLmJvcmRlclRvcFdpZHRoLDEwKT4wJiYoWHIrPTEsY2k9Y2k+''@;'; + put 'put ''MD9jaS0xOjApLHBhcnNlSW50KHowW1AwPyJib3JkZXJSaWdodFdpZHRoIjoiYm9yZGVyTGVmdFdpZHRoIl0sMTApPjAmJihybys9MSxmbz1mbz4wP2ZvLTE6MCk7dmFyIGtvPVAwPyJyaWdodCI6ImxlZnQiO3RoaXMudG9wU3R5bGUudG9wPSIiLmNvbmNhdChYciwicHgiKSx0aGlzLnRvcFN0''@;'; + put 'put ''eWxlW2tvXT0iIi5jb25jYXQocm8sInB4IiksdGhpcy50b3BTdHlsZS53aWR0aD0iIi5jb25jYXQoZm8sInB4IiksdGhpcy50b3BTdHlsZS5kaXNwbGF5PSJibG9jayIsdGhpcy5zdGFydFN0eWxlLnRvcD0iIi5jb25jYXQoWHIsInB4IiksdGhpcy5zdGFydFN0eWxlW2tvXT0iIi5jb25jYXQo''@;'; + put 'put ''cm8sInB4IiksdGhpcy5zdGFydFN0eWxlLmhlaWdodD0iIi5jb25jYXQoY2ksInB4IiksdGhpcy5zdGFydFN0eWxlLmRpc3BsYXk9ImJsb2NrIjt2YXIgd289TWF0aC5mbG9vcih0aGlzLnNldHRpbmdzLmJvcmRlci53aWR0aC8yKTt0aGlzLmJvdHRvbVN0eWxlLnRvcD0iIi5jb25jYXQoWHIr''@;'; + put 'put ''Y2ktd28sInB4IiksdGhpcy5ib3R0b21TdHlsZVtrb109IiIuY29uY2F0KHJvLCJweCIpLHRoaXMuYm90dG9tU3R5bGUud2lkdGg9IiIuY29uY2F0KGZvLCJweCIpLHRoaXMuYm90dG9tU3R5bGUuZGlzcGxheT0iYmxvY2siLHRoaXMuZW5kU3R5bGUudG9wPSIiLmNvbmNhdChYciwicHgiKSx0''@;'; + put 'put ''aGlzLmVuZFN0eWxlW2tvXT0iIi5jb25jYXQocm8rZm8td28sInB4IiksdGhpcy5lbmRTdHlsZS5oZWlnaHQ9IiIuY29uY2F0KGNpKzEsInB4IiksdGhpcy5lbmRTdHlsZS5kaXNwbGF5PSJibG9jayI7dmFyIFdhPXRoaXMuc2V0dGluZ3MuYm9yZGVyLmNvcm5lclZpc2libGU7V2E9ImZ1bmN0''@;'; + put 'put ''aW9uIj09dHlwZW9mIFdhP1dhKHRoaXMuc2V0dGluZ3MubGF5ZXJMZXZlbCk6V2E7dmFyIGUyPXRoaXMud290LmdldFNldHRpbmcoIm9uTW9kaWZ5R2V0Q2VsbENvb3JkcyIsdWUsQmUpLEZhPXVlLHQyPUJlO2lmKGUyJiZBcnJheS5pc0FycmF5KGUyKSl7dmFyIE8xPXpwZShlMiw0KTtGYT1P''@;'; + put 'put ''MVsyXSx0Mj1PMVszXX1pZihiOCgpfHwhV2F8fHRoaXMuaXNQYXJ0UmFuZ2UoRmEsdDIpKXRoaXMuY29ybmVyU3R5bGUuZGlzcGxheT0ibm9uZSI7ZWxzZXt0aGlzLmNvcm5lclN0eWxlLnRvcD0iIi5jb25jYXQoWHIrY2krdGhpcy5jb3JuZXJDZW50ZXJQb2ludE9mZnNldC0xLCJweCIpLHRo''@;'; + put 'put ''aXMuY29ybmVyU3R5bGVba29dPSIiLmNvbmNhdChybytmbyt0aGlzLmNvcm5lckNlbnRlclBvaW50T2Zmc2V0LTEsInB4IiksdGhpcy5jb3JuZXJTdHlsZS5ib3JkZXJSaWdodFdpZHRoPXRoaXMuY29ybmVyRGVmYXVsdFN0eWxlLmJvcmRlcldpZHRoLHRoaXMuY29ybmVyU3R5bGUud2lkdGg9''@;'; + put 'put ''dGhpcy5jb3JuZXJEZWZhdWx0U3R5bGUud2lkdGgsdGhpcy5jb3JuZXJTdHlsZS5kaXNwbGF5PSJub25lIjt2YXIgUjE9Zk8oeS5UQUJMRSksenU9UjE9PT1JO2lmKHp1JiYoUjE9Qy5kb2N1bWVudEVsZW1lbnQpLEJlPT09dGhpcy53b3QuZ2V0U2V0dGluZygidG90YWxDb2x1bW5zIiktMSl7''@;'; + put 'put ''dmFyIFBjPXp1P1NvLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnQ6U28ub2Zmc2V0TGVmdDsoUDA/UGMtcGFyc2VJbnQodGhpcy5jb3JuZXJEZWZhdWx0U3R5bGUud2lkdGgsMTApLzI8MDpQYytFMihTbykrcGFyc2VJbnQodGhpcy5jb3JuZXJEZWZhdWx0U3R5bGUud2lkdGgsMTApLzI+''@;'; + put 'put ''PU5aKFIxKSkmJih0aGlzLmNvcm5lclN0eWxlW2tvXT0iIi5jb25jYXQoTWF0aC5mbG9vcihybytmbyt0aGlzLmNvcm5lckNlbnRlclBvaW50T2Zmc2V0LXBhcnNlSW50KHRoaXMuY29ybmVyRGVmYXVsdFN0eWxlLndpZHRoLDEwKS8yKSwicHgiKSx0aGlzLmNvcm5lclN0eWxlW1AwPyJib3Jk''@;'; + put 'put ''ZXJMZWZ0V2lkdGgiOiJib3JkZXJSaWdodFdpZHRoIl09MCl9dWU9PT10aGlzLndvdC5nZXRTZXR0aW5nKCJ0b3RhbFJvd3MiKS0xJiYoenU/U28uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wOlNvLm9mZnNldFRvcCkrRDEoU28pK3BhcnNlSW50KHRoaXMuY29ybmVyRGVmYXVsdFN0eWxl''@;'; + put 'put ''LmhlaWdodCwxMCkvMj49TXYoUjEpJiYodGhpcy5jb3JuZXJTdHlsZS50b3A9IiIuY29uY2F0KE1hdGguZmxvb3IoWHIrY2krdGhpcy5jb3JuZXJDZW50ZXJQb2ludE9mZnNldC1wYXJzZUludCh0aGlzLmNvcm5lckRlZmF1bHRTdHlsZS5oZWlnaHQsMTApLzIpLCJweCIpLHRoaXMuY29ybmVy''@;'; + put 'put ''U3R5bGUuYm9yZGVyQm90dG9tV2lkdGg9MCksdGhpcy5jb3JuZXJTdHlsZS5kaXNwbGF5PSJibG9jayJ9YjgoKSYmdGhpcy51cGRhdGVNdWx0aXBsZVNlbGVjdGlvbkhhbmRsZXNQb3NpdGlvbih1ZSxCZSxYcixybyxmbyxjaSl9fX0se2tleToiaXNFbnRpcmVDb2x1bW5TZWxlY3RlZCIsdmFs''@;'; + put 'put ''dWU6ZnVuY3Rpb24oaCx2KXtyZXR1cm4gaD09PXRoaXMud290Lnd0VGFibGUuZ2V0Rmlyc3RSZW5kZXJlZFJvdygpJiZ2PT09dGhpcy53b3Qud3RUYWJsZS5nZXRMYXN0UmVuZGVyZWRSb3coKX19LHtrZXk6ImlzRW50aXJlUm93U2VsZWN0ZWQiLHZhbHVlOmZ1bmN0aW9uKGgsdil7cmV0dXJu''@;'; + put 'put ''IGg9PT10aGlzLndvdC53dFRhYmxlLmdldEZpcnN0UmVuZGVyZWRDb2x1bW4oKSYmdj09PXRoaXMud290Lnd0VGFibGUuZ2V0TGFzdFJlbmRlcmVkQ29sdW1uKCl9fSx7a2V5OiJnZXREaW1lbnNpb25zRnJvbUhlYWRlciIsdmFsdWU6ZnVuY3Rpb24oaCx2LHksQyxJKXt2YXIgaj10aGlzLndv''@;'; + put 'put ''dC53dFRhYmxlLHVlPWoud3RSb290RWxlbWVudC5wYXJlbnROb2RlLF9lPW51bGwsQmU9bnVsbCxOZT1udWxsLEtlPW51bGwsZHQ9bnVsbCxPdD1udWxsLCR0PW51bGwsZm49bnVsbDtzd2l0Y2goaCl7Y2FzZSJyb3dzIjpfZT1mdW5jdGlvbigpe3JldHVybiBqLmdldFJvd0hlYWRlci5hcHBs''@;'; + put 'put ''eShqLGFyZ3VtZW50cyl9LEJlPWZ1bmN0aW9uKCl7cmV0dXJuIEQxLmFwcGx5KHZvaWQgMCxhcmd1bWVudHMpfSxOZT0iaHRfX3NlbGVjdGlvbi0tcm93cyIsT3Q9InRvcCI7YnJlYWs7Y2FzZSJjb2x1bW5zIjpfZT1mdW5jdGlvbigpe3JldHVybiBqLmdldENvbHVtbkhlYWRlci5hcHBseShq''@;'; + put 'put ''LGFyZ3VtZW50cyl9LEJlPWZ1bmN0aW9uKCl7cmV0dXJuIEUyLmFwcGx5KHZvaWQgMCxhcmd1bWVudHMpfSxOZT0iaHRfX3NlbGVjdGlvbi0tY29sdW1ucyIsT3Q9ImxlZnQifWlmKHVlLmNsYXNzTGlzdC5jb250YWlucyhOZSkpe3ZhciBMbj10aGlzLndvdC5nZXRTZXR0aW5nKCJjb2x1bW5I''@;'; + put 'put ''ZWFkZXJzIikubGVuZ3RoO2lmKCR0PV9lKHYsTG4tQyksZm49X2UoeSxMbi1DKSwhJHR8fCFmbilyZXR1cm4hMTt2YXIgaXI9anUoJHQpLG1yPWp1KGZuKTtyZXR1cm4gJHQmJmZuJiYoS2U9aXJbT3RdLUlbT3RdLTEsZHQ9bXJbT3RdK0JlKGZuKS1pcltPdF0pLFskdCxLZSxkdF19cmV0dXJu''@;'; + put 'put ''ITF9fSx7a2V5OiJjaGFuZ2VCb3JkZXJTdHlsZSIsdmFsdWU6ZnVuY3Rpb24oaCx2KXt2YXIgeT10aGlzW2hdLnN0eWxlLEM9dltoXTshQ3x8Qy5oaWRlP08wKHRoaXNbaF0sImhpZGRlbiIpOih0bCh0aGlzW2hdLCJoaWRkZW4iKSYmcGwodGhpc1toXSwiaGlkZGVuIikseS5iYWNrZ3JvdW5k''@;'; + put 'put ''Q29sb3I9Qy5jb2xvciwoInRvcCI9PT1ofHwiYm90dG9tIj09PWgpJiYoeS5oZWlnaHQ9IiIuY29uY2F0KEMud2lkdGgsInB4IikpLCgic3RhcnQiPT09aHx8ImVuZCI9PT1oKSYmKHkud2lkdGg9IiIuY29uY2F0KEMud2lkdGgsInB4IikpKX19LHtrZXk6ImNoYW5nZUJvcmRlclRvRGVmYXVs''@;'; + put 'put ''dFN0eWxlIix2YWx1ZTpmdW5jdGlvbihoKXt2YXIgeT10aGlzW2hdLnN0eWxlO3kuYmFja2dyb3VuZENvbG9yPSIjMDAwIix5LndpZHRoPSIiLmNvbmNhdCgxLCJweCIpLHkuaGVpZ2h0PSIiLmNvbmNhdCgxLCJweCIpfX0se2tleToidG9nZ2xlSGlkZGVuQ2xhc3MiLHZhbHVlOmZ1bmN0aW9u''@;'; + put 'put ''KGgsdil7dGhpcy5jaGFuZ2VCb3JkZXJUb0RlZmF1bHRTdHlsZShoKSx2P08wKHRoaXNbaF0sImhpZGRlbiIpOnBsKHRoaXNbaF0sImhpZGRlbiIpfX0se2tleToiZGlzYXBwZWFyIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMudG9wU3R5bGUuZGlzcGxheT0ibm9uZSIsdGhpcy5ib3R0b21TdHls''@;'; + put 'put ''ZS5kaXNwbGF5PSJub25lIix0aGlzLnN0YXJ0U3R5bGUuZGlzcGxheT0ibm9uZSIsdGhpcy5lbmRTdHlsZS5kaXNwbGF5PSJub25lIix0aGlzLmNvcm5lclN0eWxlLmRpc3BsYXk9Im5vbmUiLGI4KCkmJih0aGlzLnNlbGVjdGlvbkhhbmRsZXMuc3R5bGVzLnRvcC5kaXNwbGF5PSJub25lIix0''@;'; + put 'put ''aGlzLnNlbGVjdGlvbkhhbmRsZXMuc3R5bGVzLmJvdHRvbS5kaXNwbGF5PSJub25lIil9fSx7a2V5OiJkZXN0cm95Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuZXZlbnRNYW5hZ2VyLmRlc3Ryb3lXaXRoT3duRXZlbnRzT25seSgpLHRoaXMubWFpbi5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRo''@;'; + put 'put ''aXMubWFpbil9fV0pLGR9KCk7Y29uc3QgUVhlPVVYZTtmdW5jdGlvbiBPa2UoZCxnKXsobnVsbD09Z3x8Zz5kLmxlbmd0aCkmJihnPWQubGVuZ3RoKTtmb3IodmFyIGg9MCx2PW5ldyBBcnJheShnKTtoPGc7aCsrKXZbaF09ZFtoXTtyZXR1cm4gdn1mdW5jdGlvbiBHcGUoZCl7cmV0dXJuKEdw''@;'; + put 'put ''ZT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihnKXtyZXR1cm4gdHlwZW9mIGd9OmZ1bmN0aW9uKGcpe3JldHVybiBnJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZnLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZn''@;'; + put 'put ''IT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgZ30pKGQpfWZ1bmN0aW9uIFJrZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53''@;'; + put 'put ''cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fXZhciBuS2U9ZnVuY3Rpb24oKXtmdW5jdGlvbiBkKGcsaCl7KGZ1bmN0aW9uIGVLZShkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMg''@;'; + put 'put ''YSBmdW5jdGlvbiIpfSkodGhpcyxkKSx0aGlzLnNldHRpbmdzPWcsdGhpcy5jZWxsUmFuZ2U9aHx8bnVsbCx0aGlzLmluc3RhbmNlQm9yZGVycz17fSx0aGlzLmNsYXNzTmFtZXM9W3RoaXMuc2V0dGluZ3MuY2xhc3NOYW1lXSx0aGlzLmNsYXNzTmFtZUdlbmVyYXRvcj10aGlzLmxpbmVhckNs''@;'; + put 'put ''YXNzTmFtZUdlbmVyYXRvcih0aGlzLnNldHRpbmdzLmNsYXNzTmFtZSx0aGlzLnNldHRpbmdzLmxheWVyTGV2ZWwpfXJldHVybiBmdW5jdGlvbiB0S2UoZCxnLGgpe2cmJlJrZShkLnByb3RvdHlwZSxnKSxoJiZSa2UoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7''@;'; + put 'put ''d3JpdGFibGU6ITF9KX0oZCxbe2tleToiZ2V0Qm9yZGVyIix2YWx1ZTpmdW5jdGlvbihoKXtyZXR1cm4gdGhpcy5pbnN0YW5jZUJvcmRlcnNbaC5ndWlkXXx8KHRoaXMuaW5zdGFuY2VCb3JkZXJzW2guZ3VpZF09bmV3IFFYZShoLHRoaXMuc2V0dGluZ3MpKSx0aGlzLmluc3RhbmNlQm9yZGVy''@;'; + put 'put ''c1toLmd1aWRdfX0se2tleToiaXNFbXB0eSIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbD09PXRoaXMuY2VsbFJhbmdlfX0se2tleToiYWRkIix2YWx1ZTpmdW5jdGlvbihoKXtyZXR1cm4gdGhpcy5pc0VtcHR5KCk/dGhpcy5jZWxsUmFuZ2U9dGhpcy5zZXR0aW5ncy5jcmVhdGVDZWxs''@;'; + put 'put ''UmFuZ2UoaCk6dGhpcy5jZWxsUmFuZ2UuZXhwYW5kKGgpLHRoaXN9fSx7a2V5OiJyZXBsYWNlIix2YWx1ZTpmdW5jdGlvbihoLHYpe2lmKCF0aGlzLmlzRW1wdHkoKSl7aWYodGhpcy5jZWxsUmFuZ2UuZnJvbS5pc0VxdWFsKGgpKXJldHVybiB0aGlzLmNlbGxSYW5nZS5mcm9tPXYsITA7aWYo''@;'; + put 'put ''dGhpcy5jZWxsUmFuZ2UudG8uaXNFcXVhbChoKSlyZXR1cm4gdGhpcy5jZWxsUmFuZ2UudG89diwhMH1yZXR1cm4hMX19LHtrZXk6ImNsZWFyIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmNlbGxSYW5nZT1udWxsLHRoaXN9fSx7a2V5OiJnZXRDb3JuZXJzIix2YWx1ZTpmdW5jdGlv''@;'; + put 'put ''bigpe3ZhciBoPXRoaXMuY2VsbFJhbmdlLmdldE91dGVyVG9wU3RhcnRDb3JuZXIoKSx2PXRoaXMuY2VsbFJhbmdlLmdldE91dGVyQm90dG9tRW5kQ29ybmVyKCk7cmV0dXJuW2gucm93LGguY29sLHYucm93LHYuY29sXX19LHtrZXk6ImFkZENsYXNzQXRDb29yZHMiLHZhbHVlOmZ1bmN0aW9u''@;'; + put 'put ''KGgsdix5LEMpe3ZhciBJPWFyZ3VtZW50cy5sZW5ndGg+NCYmdm9pZCAwIT09YXJndW1lbnRzWzRdJiZhcmd1bWVudHNbNF0saj1oLnd0VGFibGUuZ2V0Q2VsbCh0aGlzLnNldHRpbmdzLmNyZWF0ZUNlbGxDb29yZHModix5KSk7aWYoIm9iamVjdCI9PT1HcGUoaikpe3ZhciB1ZT1DO0kmJih1''@;'; + put 'put ''ZT10aGlzLmNsYXNzTmFtZUdlbmVyYXRvcihqKSx0aGlzLmNsYXNzTmFtZXMuaW5jbHVkZXModWUpfHx0aGlzLmNsYXNzTmFtZXMucHVzaCh1ZSkpLE8wKGosdWUpfXJldHVybiB0aGlzfX0se2tleToibGluZWFyQ2xhc3NOYW1lR2VuZXJhdG9yIix2YWx1ZTpmdW5jdGlvbihoLHYpe3JldHVy''@;'; + put 'put ''biBmdW5jdGlvbiB5KEMpe3ZhciBJPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTotMTtpZigwPT09dnx8MD09PUkpcmV0dXJuIGg7dmFyIGo9ST49MD9JOnYsdWU9aCxfZT0wPT0oai09MSk/aDoiIi5jb25jYXQoaCwiLSIpLmNvbmNhdChq''@;'; + put 'put ''KTtpZih0bChDLF9lKSl7dmFyIEJlPWorMTt1ZT0iIi5jb25jYXQoaCwiLSIpLmNvbmNhdChCZSl9ZWxzZSB1ZT15KEMsaik7cmV0dXJuIHVlfX19LHtrZXk6ImRyYXciLHZhbHVlOmZ1bmN0aW9uKGgpe2lmKHRoaXMuaXNFbXB0eSgpKXRoaXMuc2V0dGluZ3MuYm9yZGVyJiZ0aGlzLmdldEJv''@;'; + put 'put ''cmRlcihoKS5kaXNhcHBlYXIoKTtlbHNle3ZhciB2PWgud3RUYWJsZS5nZXRSZW5kZXJlZFJvd3NDb3VudCgpLHk9aC53dFRhYmxlLmdldFJlbmRlcmVkQ29sdW1uc0NvdW50KCksQz10aGlzLmdldENvcm5lcnMoKSxJPWZ1bmN0aW9uIEpYZShkLGcpe3JldHVybiBmdW5jdGlvbiBxWGUoZCl7''@;'; + put 'put ''aWYoQXJyYXkuaXNBcnJheShkKSlyZXR1cm4gZH0oZCl8fGZ1bmN0aW9uICRYZShkLGcpe3ZhciBoPW51bGw9PWQ/bnVsbDoidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmZFtTeW1ib2wuaXRlcmF0b3JdfHxkWyJAQGl0ZXJhdG9yIl07aWYobnVsbCE9aCl7dmFyIEksaix2PVtdLHk9ITAs''@;'; + put 'put ''Qz0hMTt0cnl7Zm9yKGg9aC5jYWxsKGQpOyEoeT0oST1oLm5leHQoKSkuZG9uZSkmJih2LnB1c2goSS52YWx1ZSksIWd8fHYubGVuZ3RoIT09Zyk7eT0hMCk7fWNhdGNoKHVlKXtDPSEwLGo9dWV9ZmluYWxseXt0cnl7IXkmJm51bGwhPWgucmV0dXJuJiZoLnJldHVybigpfWZpbmFsbHl7aWYo''@;'; + put 'put ''Qyl0aHJvdyBqfX1yZXR1cm4gdn19KGQsZyl8fGZ1bmN0aW9uIEtYZShkLGcpe2lmKGQpe2lmKCJzdHJpbmciPT10eXBlb2YgZClyZXR1cm4gT2tlKGQsZyk7dmFyIGg9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGQpLnNsaWNlKDgsLTEpO2lmKCJPYmplY3QiPT09aCYmZC5jb25z''@;'; + put 'put ''dHJ1Y3RvciYmKGg9ZC5jb25zdHJ1Y3Rvci5uYW1lKSwiTWFwIj09PWh8fCJTZXQiPT09aClyZXR1cm4gQXJyYXkuZnJvbShkKTtpZigiQXJndW1lbnRzIj09PWh8fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KGgpKXJldHVybiBPa2UoZCxnKX19KGQs''@;'; + put 'put ''Zyl8fGZ1bmN0aW9uIFhYZSgpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRv''@;'; + put 'put ''cl0oKSBtZXRob2QuIil9KCl9KEMsNCksaj1JWzBdLHVlPUlbMV0sX2U9SVsyXSxCZT1JWzNdLE5lPXRoaXMuc2V0dGluZ3MsS2U9TmUuaGlnaGxpZ2h0SGVhZGVyQ2xhc3NOYW1lLGR0PU5lLmhpZ2hsaWdodENvbHVtbkNsYXNzTmFtZSxPdD1OZS5oaWdobGlnaHRSb3dDbGFzc05hbWUsJHQ9''@;'; + put 'put ''TmUuaGlnaGxpZ2h0T25seUNsb3Nlc3RIZWFkZXIsZm49TmUuc2VsZWN0aW9uVHlwZSxMbj12b2lkIDA9PT1mbnx8WyJhY3RpdmUtaGVhZGVyIiwiaGVhZGVyIl0uaW5jbHVkZXMoZm4pO2lmKExuJiZudWxsIT09dWUmJm51bGwhPT1CZSlmb3IodmFyIGlyPTAsbXI9MDttcjx5O21yKz0xKXt2''@;'; + put 'put ''YXIgU3I9aC53dFRhYmxlLmNvbHVtbkZpbHRlci5yZW5kZXJlZFRvU291cmNlKG1yKTtpZihTcj49dWUmJlNyPD1CZSl7dmFyIHdyPWgud3RUYWJsZS5nZXRDb2x1bW5IZWFkZXJzKFNyKSxRcj13ci5sZW5ndGgtMTskdCYmd3IubGVuZ3RoPjEmJih3cj1bd3JbUXJdXSk7Zm9yKHZhciB5aT0w''@;'; + put 'put ''O3lpPHdyLmxlbmd0aDt5aSs9MSl7dmFyIEtpPVtdLFNvPXdyW3lpXTtLZSYmS2kucHVzaChLZSksZHQmJktpLnB1c2goZHQpO3ZhciBQbz1oLmdldFNldHRpbmcoIm9uQmVmb3JlSGlnaGxpZ2h0aW5nQ29sdW1uSGVhZGVyIixTcix5aT0kdD9Rcjp5aSx7c2VsZWN0aW9uVHlwZTpmbixjb2x1''@;'; + put 'put ''bW5DdXJzb3I6aXIsc2VsZWN0aW9uV2lkdGg6QmUtdWUrMSxjbGFzc05hbWVzOktpfSk7UG8hPT1TciYmKFNvPWgud3RUYWJsZS5nZXRDb2x1bW5IZWFkZXIoUG8seWkpKSxPMChTbyxLaSl9aXIrPTF9fWlmKG51bGwhPT1qJiZudWxsIT09X2UpZm9yKHZhciBTYT0wLEphPTA7SmE8djtKYSs9''@;'; + put 'put ''MSl7dmFyIGxhPWgud3RUYWJsZS5yb3dGaWx0ZXIucmVuZGVyZWRUb1NvdXJjZShKYSk7aWYoTG4mJmxhPj1qJiZsYTw9X2Upe3ZhciBhbD1oLnd0VGFibGUuZ2V0Um93SGVhZGVycyhsYSksT3M9YWwubGVuZ3RoLTE7JHQmJmFsLmxlbmd0aD4xJiYoYWw9W2FsW09zXV0pO2Zvcih2YXIgUDA9''@;'; + put 'put ''MDtQMDxhbC5sZW5ndGg7UDArPTEpe3ZhciBybz1bXSxmbz1hbFtQMF07S2UmJnJvLnB1c2goS2UpLE90JiZyby5wdXNoKE90KTt2YXIgSWE9aC5nZXRTZXR0aW5nKCJvbkJlZm9yZUhpZ2hsaWdodGluZ1Jvd0hlYWRlciIsbGEsUDA9JHQ/T3M6UDAse3NlbGVjdGlvblR5cGU6Zm4scm93Q3Vy''@;'; + put 'put ''c29yOlNhLHNlbGVjdGlvbkhlaWdodDpfZS1qKzEsY2xhc3NOYW1lczpyb30pO0lhIT09bGEmJihmbz1oLnd0VGFibGUuZ2V0Um93SGVhZGVyKElhLFAwKSksTzAoZm8scm8pfVNhKz0xfWlmKG51bGwhPT11ZSYmbnVsbCE9PUJlKWZvcih2YXIgWGw9MDtYbDx5O1hsKz0xKXt2YXIgRm49aC53''@;'; + put 'put ''dFRhYmxlLmNvbHVtbkZpbHRlci5yZW5kZXJlZFRvU291cmNlKFhsKTtsYT49aiYmbGE8PV9lJiZGbj49dWUmJkZuPD1CZT90aGlzLnNldHRpbmdzLmNsYXNzTmFtZSYmdGhpcy5hZGRDbGFzc0F0Q29vcmRzKGgsbGEsRm4sdGhpcy5zZXR0aW5ncy5jbGFzc05hbWUsdGhpcy5zZXR0aW5ncy5t''@;'; + put 'put ''YXJrSW50ZXJzZWN0aW9ucyk6bGE+PWomJmxhPD1fZT9PdCYmdGhpcy5hZGRDbGFzc0F0Q29vcmRzKGgsbGEsRm4sT3QpOkZuPj11ZSYmRm48PUJlJiZkdCYmdGhpcy5hZGRDbGFzc0F0Q29vcmRzKGgsbGEsRm4sZHQpO3ZhciBabj1oLmdldFNldHRpbmcoIm9uQWZ0ZXJEcmF3U2VsZWN0aW9u''@;'; + put 'put ''IixsYSxGbix0aGlzLnNldHRpbmdzLmxheWVyTGV2ZWwpOyJzdHJpbmciPT10eXBlb2YgWm4mJnRoaXMuYWRkQ2xhc3NBdENvb3JkcyhoLGxhLEZuLFpuKX19aC5nZXRTZXR0aW5nKCJvbkJlZm9yZURyYXdCb3JkZXJzIixDLHRoaXMuc2V0dGluZ3MuY2xhc3NOYW1lKSx0aGlzLnNldHRpbmdz''@;'; + put 'put ''LmJvcmRlciYmdGhpcy5nZXRCb3JkZXIoaCkuYXBwZWFyKEMpfX19LHtrZXk6ImRlc3Ryb3kiLHZhbHVlOmZ1bmN0aW9uKCl7T2JqZWN0LnZhbHVlcyh0aGlzLmluc3RhbmNlQm9yZGVycykuZm9yRWFjaChmdW5jdGlvbihoKXtyZXR1cm4gaC5kZXN0cm95KCl9KX19XSksZH0oKTtmdW5jdGlv''@;'; + put 'put ''biBXcGUoZCl7cmV0dXJuKFdwZT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihnKXtyZXR1cm4gdHlwZW9mIGd9OmZ1bmN0aW9uKGcpe3JldHVybiBnJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZnLmNvbnN0''@;'; + put 'put ''cnVjdG9yPT09U3ltYm9sJiZnIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgZ30pKGQpfWZ1bmN0aW9uIEJrZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEw''@;'; + put 'put ''LCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fWZ1bmN0aW9uIGF0ZSgpe3JldHVybiBhdGU9InVuZGVmaW5lZCIhPXR5cGVvZiBSZWZsZWN0JiZSZWZsZWN0LmdldD9SZWZsZWN0LmdldC5iaW5kKCk6ZnVuY3Rpb24oZyxoLHYp''@;'; + put 'put ''e3ZhciB5PWFLZShnLGgpO2lmKHkpe3ZhciBDPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoeSxoKTtyZXR1cm4gQy5nZXQ/Qy5nZXQuY2FsbChhcmd1bWVudHMubGVuZ3RoPDM/Zzp2KTpDLnZhbHVlfX0sYXRlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBhS2UoZCxn''@;'; + put 'put ''KXtmb3IoOyFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZCxnKSYmbnVsbCE9PShkPUFPKGQpKTspO3JldHVybiBkfWZ1bmN0aW9uIFlwZShkLGcpe3JldHVybihZcGU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rp''@;'; + put 'put ''b24odix5KXtyZXR1cm4gdi5fX3Byb3RvX189eSx2fSkoZCxnKX1mdW5jdGlvbiB1S2UoZCxnKXtpZihnJiYoIm9iamVjdCI9PT1XcGUoZyl8fCJmdW5jdGlvbiI9PXR5cGVvZiBnKSlyZXR1cm4gZztpZih2b2lkIDAhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIkRlcml2ZWQgY29uc3RydWN0''@;'; + put 'put ''b3JzIG1heSBvbmx5IHJldHVybiBvYmplY3Qgb3IgdW5kZWZpbmVkIik7cmV0dXJuIFBrZShkKX1mdW5jdGlvbiBQa2UoZCl7aWYodm9pZCAwPT09ZCl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNh''@;'; + put 'put ''bGxlZCIpO3JldHVybiBkfWZ1bmN0aW9uIEFPKGQpe3JldHVybihBTz1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihoKXtyZXR1cm4gaC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihoKX0pKGQpfXZhciBoS2U9ZnVu''@;'; + put 'put ''Y3Rpb24oZCl7IWZ1bmN0aW9uIGxLZShkLGcpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBnJiZudWxsIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiIpO2QucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZyYm''@;'; + put 'put ''Zy5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTpkLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxnJiZZcGUoZCxnKX0oaCxkKTt2YXIgZz1mdW5jdGlvbiBzS2UoZCl7dmFyIGc9ZnVu''@;'; + put 'put ''Y3Rpb24gY0tlKCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBSZWZsZWN0fHwhUmVmbGVjdC5jb25zdHJ1Y3R8fFJlZmxlY3QuY29uc3RydWN0LnNoYW0pcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIFByb3h5KXJldHVybiEwO3RyeXtyZXR1cm4gQm9vbGVhbi5wcm90b3R5cGUudmFs''@;'; + put 'put ''dWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10sZnVuY3Rpb24oKXt9KSksITB9Y2F0Y2goZCl7cmV0dXJuITF9fSgpO3JldHVybiBmdW5jdGlvbigpe3ZhciB5LHY9QU8oZCk7aWYoZyl7dmFyIEM9QU8odGhpcykuY29uc3RydWN0b3I7eT1SZWZsZWN0LmNvbnN0cnVjdCh2''@;'; + put 'put ''LGFyZ3VtZW50cyxDKX1lbHNlIHk9di5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIHVLZSh0aGlzLHkpfX0oaCk7ZnVuY3Rpb24gaCh2LHkpe3ZhciBDO3JldHVybiBmdW5jdGlvbiBpS2UoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3Qg''@;'; + put 'put ''Y2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0odGhpcyxoKSxmdW5jdGlvbiBmS2UoZCxnLGgpe2cgaW4gZD9PYmplY3QuZGVmaW5lUHJvcGVydHkoZCxnLHt2YWx1ZTpoLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZFtnXT1ofShQa2UoQz1nLmNhbGwo''@;'; + put 'put ''dGhpcyx2LG51bGwpKSwidmlzdWFsQ2VsbFJhbmdlIixudWxsKSxDLnZpc3VhbENlbGxSYW5nZT15fHxudWxsLEMuY29tbWl0KCksQ31yZXR1cm4gZnVuY3Rpb24gb0tlKGQsZyxoKXtnJiZCa2UoZC5wcm90b3R5cGUsZyksaCYmQmtlKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInBy''@;'; + put 'put ''b3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGgsW3trZXk6ImFkZCIsdmFsdWU6ZnVuY3Rpb24oeSl7cmV0dXJuIG51bGw9PT10aGlzLnZpc3VhbENlbGxSYW5nZT90aGlzLnZpc3VhbENlbGxSYW5nZT10aGlzLnNldHRpbmdzLmNyZWF0ZUNlbGxSYW5nZSh5KTp0aGlzLnZpc3VhbENlbGxSYW5n''@;'; + put 'put ''ZS5leHBhbmQoeSksdGhpc319LHtrZXk6ImNsZWFyIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnZpc3VhbENlbGxSYW5nZT1udWxsLGF0ZShBTyhoLnByb3RvdHlwZSksImNsZWFyIix0aGlzKS5jYWxsKHRoaXMpfX0se2tleToidHJpbVRvVmlzaWJsZUNlbGxzUmFuZ2VPbmx5Iix2''@;'; + put 'put ''YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz15LmZyb20sST15LnRvLGo9dGhpcy5nZXROZWFyZXN0Tm90SGlkZGVuQ29vcmRzKEMsMSksdWU9dGhpcy5nZXROZWFyZXN0Tm90SGlkZGVuQ29vcmRzKEksLTEpO2lmKG51bGw9PT1qfHxudWxsPT09dWUpcmV0dXJuIG51bGw7aWYoai5yb3c+dWUucm93''@;'; + put 'put ''fHxqLmNvbD51ZS5jb2wpe2lmKCJoZWFkZXIiIT09dGhpcy5zZXR0aW5ncy50eXBlJiYiYWN0aXZlLWhlYWRlciIhPT10aGlzLnNldHRpbmdzLnR5cGUpcmV0dXJuIG51bGw7aj1DLHVlPUl9cmV0dXJuIHRoaXMuc2V0dGluZ3MuY3JlYXRlQ2VsbFJhbmdlKGosaix1ZSl9fSx7a2V5OiJnZXRO''@;'; + put 'put ''ZWFyZXN0Tm90SGlkZGVuQ29vcmRzIix2YWx1ZTpmdW5jdGlvbih5LEMpe3ZhciBJPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXTpDLGo9dGhpcy5nZXROZWFyZXN0Tm90SGlkZGVuSW5kZXgodGhpcy5zZXR0aW5ncy5yb3dJbmRleE1hcHBl''@;'; + put 'put ''cigpLHkucm93LEMpO2lmKG51bGw9PT1qKXJldHVybiBudWxsO3ZhciB1ZT10aGlzLmdldE5lYXJlc3ROb3RIaWRkZW5JbmRleCh0aGlzLnNldHRpbmdzLmNvbHVtbkluZGV4TWFwcGVyKCkseS5jb2wsSSk7cmV0dXJuIG51bGw9PT11ZT9udWxsOnRoaXMuc2V0dGluZ3MuY3JlYXRlQ2VsbENv''@;'; + put 'put ''b3JkcyhqLHVlKX19LHtrZXk6ImdldE5lYXJlc3ROb3RIaWRkZW5JbmRleCIsdmFsdWU6ZnVuY3Rpb24oeSxDLEkpe2lmKEM8MClyZXR1cm4gQzt2YXIgaj15LmdldE5lYXJlc3ROb3RIaWRkZW5JbmRleChDLEkpO3JldHVybiJoZWFkZXIiIT09dGhpcy5zZXR0aW5ncy50eXBlJiYiYWN0aXZl''@;'; + put 'put ''LWhlYWRlciIhPT10aGlzLnNldHRpbmdzLnR5cGV8fG51bGwhPT1qP2o6LTF9fSx7a2V5OiJjb21taXQiLHZhbHVlOmZ1bmN0aW9uKCl7aWYobnVsbD09PXRoaXMudmlzdWFsQ2VsbFJhbmdlKXJldHVybiB0aGlzO3ZhciB5PXRoaXMudHJpbVRvVmlzaWJsZUNlbGxzUmFuZ2VPbmx5KHRoaXMu''@;'; + put 'put ''dmlzdWFsQ2VsbFJhbmdlKTtyZXR1cm4gdGhpcy5jZWxsUmFuZ2U9bnVsbD09PXk/bnVsbDp0aGlzLmNyZWF0ZVJlbmRlcmFibGVDZWxsUmFuZ2UoeS5mcm9tLHkudG8pLHRoaXN9fSx7a2V5OiJzeW5jV2l0aCIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEM9Ik4tUyI9PT15LmdldFZlcnRpY2Fs''@;'; + put 'put ''RGlyZWN0aW9uKCk/MTotMSxJPSJXLUUiPT09eS5nZXRIb3Jpem9udGFsRGlyZWN0aW9uKCk/MTotMSxqPXRoaXMuZ2V0TmVhcmVzdE5vdEhpZGRlbkNvb3Jkcyh5LmZyb20uY2xvbmUoKS5ub3JtYWxpemUoKSxDLEkpO2lmKG51bGwhPT1qJiZ5Lm92ZXJsYXBzKGopKXtpZihudWxsPT09dGhp''@;'; + put 'put ''cy5jZWxsUmFuZ2Upe3ZhciB1ZT10aGlzLnNldHRpbmdzLnZpc3VhbFRvUmVuZGVyYWJsZUNvb3JkcyhqKTt0aGlzLmNlbGxSYW5nZT10aGlzLnNldHRpbmdzLmNyZWF0ZUNlbGxSYW5nZSh1ZSl9cmV0dXJuIHkuc2V0SGlnaGxpZ2h0KGopLHRoaXN9cmV0dXJuIHkuc2V0SGlnaGxpZ2h0KHku''@;'; + put 'put ''ZnJvbSksdGhpc319LHtrZXk6ImdldENvcm5lcnMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcy5jZWxsUmFuZ2UsQz15LmZyb20sST15LnRvLGo9bnVsbD09PUMucm93fHxudWxsPT09SS5yb3csdWU9bnVsbD09PUMuY29sfHxudWxsPT09SS5jb2wsX2U9dGhpcy5zZXR0aW5ncy5jcmVh''@;'; + put 'put ''dGVDZWxsQ29vcmRzKGo/bnVsbDpNYXRoLm1pbihDLnJvdyxJLnJvdyksdWU/bnVsbDpNYXRoLm1pbihDLmNvbCxJLmNvbCkpLEJlPXRoaXMuc2V0dGluZ3MuY3JlYXRlQ2VsbENvb3JkcyhqP251bGw6TWF0aC5tYXgoQy5yb3csSS5yb3cpLHVlP251bGw6TWF0aC5tYXgoQy5jb2wsSS5jb2wp''@;'; + put 'put ''KTtyZXR1cm5bX2Uucm93LF9lLmNvbCxCZS5yb3csQmUuY29sXX19LHtrZXk6ImdldFZpc3VhbENvcm5lcnMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcy5zZXR0aW5ncy5yZW5kZXJhYmxlVG9WaXN1YWxDb29yZHModGhpcy5jZWxsUmFuZ2UuZ2V0VG9wU3RhcnRDb3JuZXIoKSksQz10''@;'; + put 'put ''aGlzLnNldHRpbmdzLnJlbmRlcmFibGVUb1Zpc3VhbENvb3Jkcyh0aGlzLmNlbGxSYW5nZS5nZXRCb3R0b21FbmRDb3JuZXIoKSk7cmV0dXJuW3kucm93LHkuY29sLEMucm93LEMuY29sXX19LHtrZXk6ImNyZWF0ZVJlbmRlcmFibGVDZWxsUmFuZ2UiLHZhbHVlOmZ1bmN0aW9uKHksQyl7dmFy''@;'; + put 'put ''IEk9dGhpcy5zZXR0aW5ncy52aXN1YWxUb1JlbmRlcmFibGVDb29yZHMoeSksaj10aGlzLnNldHRpbmdzLnZpc3VhbFRvUmVuZGVyYWJsZUNvb3JkcyhDKTtyZXR1cm4gdGhpcy5zZXR0aW5ncy5jcmVhdGVDZWxsUmFuZ2UoSSxJLGopfX1dKSxofShuS2UpO2NvbnN0IHlPPWhLZTt2YXIgZEtl''@;'; + put 'put ''PVsiYWN0aXZlSGVhZGVyQ2xhc3NOYW1lIl07ZnVuY3Rpb24gRmtlKGQsZyl7dmFyIGg9T2JqZWN0LmtleXMoZCk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHY9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhkKTtnJiYodj12LmZpbHRlcihmdW5jdGlvbih5KXty''@;'; + put 'put ''ZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLHkpLmVudW1lcmFibGV9KSksaC5wdXNoLmFwcGx5KGgsdil9cmV0dXJuIGh9ZnVuY3Rpb24gSGtlKGQpe2Zvcih2YXIgZz0xO2c8YXJndW1lbnRzLmxlbmd0aDtnKyspe3ZhciBoPW51bGwhPWFyZ3VtZW50c1tnXT9hcmd1''@;'; + put 'put ''bWVudHNbZ106e307ZyUyP0ZrZShPYmplY3QoaCksITApLmZvckVhY2goZnVuY3Rpb24odil7cEtlKGQsdixoW3ZdKX0pOk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGQsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMoaCkp''@;'; + put 'put ''OkZrZShPYmplY3QoaCkpLmZvckVhY2goZnVuY3Rpb24odil7T2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdixPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGgsdikpfSl9cmV0dXJuIGR9ZnVuY3Rpb24gcEtlKGQsZyxoKXtyZXR1cm4gZyBpbiBkP09iamVjdC5kZWZpbmVQcm9wZXJ0''@;'; + put 'put ''eShkLGcse3ZhbHVlOmgsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpkW2ddPWgsZH12YXIgeUtlPVsibGF5ZXJMZXZlbCIsImFyZWFDb3JuZXJWaXNpYmxlIl07ZnVuY3Rpb24gTmtlKGQsZyl7dmFyIGg9T2JqZWN0LmtleXMoZCk7aWYoT2JqZWN0LmdldE93''@;'; + put 'put ''blByb3BlcnR5U3ltYm9scyl7dmFyIHY9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhkKTtnJiYodj12LmZpbHRlcihmdW5jdGlvbih5KXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLHkpLmVudW1lcmFibGV9KSksaC5wdXNoLmFwcGx5KGgsdil9cmV0dXJu''@;'; + put 'put ''IGh9ZnVuY3Rpb24gVmtlKGQpe2Zvcih2YXIgZz0xO2c8YXJndW1lbnRzLmxlbmd0aDtnKyspe3ZhciBoPW51bGwhPWFyZ3VtZW50c1tnXT9hcmd1bWVudHNbZ106e307ZyUyP05rZShPYmplY3QoaCksITApLmZvckVhY2goZnVuY3Rpb24odil7d0tlKGQsdixoW3ZdKX0pOk9iamVjdC5nZXRP''@;'; + put 'put ''d25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGQsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMoaCkpOk5rZShPYmplY3QoaCkpLmZvckVhY2goZnVuY3Rpb24odil7T2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdixPYmplY3QuZ2V0T3duUHJvcGVy''@;'; + put 'put ''dHlEZXNjcmlwdG9yKGgsdikpfSl9cmV0dXJuIGR9ZnVuY3Rpb24gd0tlKGQsZyxoKXtyZXR1cm4gZyBpbiBkP09iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGcse3ZhbHVlOmgsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpkW2ddPWgsZH12YXIgU0tlPVsiY2Vs''@;'; + put 'put ''bENvcm5lclZpc2libGUiXTtmdW5jdGlvbiBqa2UoZCxnKXt2YXIgaD1PYmplY3Qua2V5cyhkKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgdj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGQpO2cmJih2PXYuZmlsdGVyKGZ1bmN0aW9uKHkpe3JldHVybiBPYmpl''@;'; + put 'put ''Y3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQseSkuZW51bWVyYWJsZX0pKSxoLnB1c2guYXBwbHkoaCx2KX1yZXR1cm4gaH1mdW5jdGlvbiBaa2UoZCl7Zm9yKHZhciBnPTE7Zzxhcmd1bWVudHMubGVuZ3RoO2crKyl7dmFyIGg9bnVsbCE9YXJndW1lbnRzW2ddP2FyZ3VtZW50c1tnXTp7''@;'; + put 'put ''fTtnJTI/amtlKE9iamVjdChoKSwhMCkuZm9yRWFjaChmdW5jdGlvbih2KXtNS2UoZCx2LGhbdl0pfSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhoKSk6amtlKE9iamVj''@;'; + put 'put ''dChoKSkuZm9yRWFjaChmdW5jdGlvbih2KXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoaCx2KSl9KX1yZXR1cm4gZH1mdW5jdGlvbiBNS2UoZCxnLGgpe3JldHVybiBnIGluIGQ/T2JqZWN0LmRlZmluZVByb3BlcnR5KGQsZyx7dmFs''@;'; + put 'put ''dWU6aCxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmRbZ109aCxkfXZhciBES2U9WyJib3JkZXIiLCJ2aXN1YWxDZWxsUmFuZ2UiXTtmdW5jdGlvbiB6a2UoZCxnKXt2YXIgaD1PYmplY3Qua2V5cyhkKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xz''@;'; + put 'put ''KXt2YXIgdj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGQpO2cmJih2PXYuZmlsdGVyKGZ1bmN0aW9uKHkpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQseSkuZW51bWVyYWJsZX0pKSxoLnB1c2guYXBwbHkoaCx2KX1yZXR1cm4gaH1mdW5jdGlvbiBVcGUo''@;'; + put 'put ''ZCl7Zm9yKHZhciBnPTE7Zzxhcmd1bWVudHMubGVuZ3RoO2crKyl7dmFyIGg9bnVsbCE9YXJndW1lbnRzW2ddP2FyZ3VtZW50c1tnXTp7fTtnJTI/emtlKE9iamVjdChoKSwhMCkuZm9yRWFjaChmdW5jdGlvbih2KXtMS2UoZCx2LGhbdl0pfSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3Jp''@;'; + put 'put ''cHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhoKSk6emtlKE9iamVjdChoKSkuZm9yRWFjaChmdW5jdGlvbih2KXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoaCx2''@;'; + put 'put ''KSl9KX1yZXR1cm4gZH1mdW5jdGlvbiBMS2UoZCxnLGgpe3JldHVybiBnIGluIGQ/T2JqZWN0LmRlZmluZVByb3BlcnR5KGQsZyx7dmFsdWU6aCxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmRbZ109aCxkfWZ1bmN0aW9uIEdrZShkLGcpe3ZhciBoPU9iamVj''@;'; + put 'put ''dC5rZXlzKGQpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciB2PU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZCk7ZyYmKHY9di5maWx0ZXIoZnVuY3Rpb24oeSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCx5KS5lbnVtZXJhYmxlfSkp''@;'; + put 'put ''LGgucHVzaC5hcHBseShoLHYpfXJldHVybiBofWZ1bmN0aW9uIFdrZShkKXtmb3IodmFyIGc9MTtnPGFyZ3VtZW50cy5sZW5ndGg7ZysrKXt2YXIgaD1udWxsIT1hcmd1bWVudHNbZ10/YXJndW1lbnRzW2ddOnt9O2clMj9Ha2UoT2JqZWN0KGgpLCEwKS5mb3JFYWNoKGZ1bmN0aW9uKHYpe0ZL''@;'; + put 'put ''ZShkLHYsaFt2XSl9KTpPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhkLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKGgpKTpHa2UoT2JqZWN0KGgpKS5mb3JFYWNoKGZ1bmN0aW9uKHYpe09iamVjdC5kZWZpbmVQcm9wZXJ0''@;'; + put 'put ''eShkLHYsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihoLHYpKX0pfXJldHVybiBkfWZ1bmN0aW9uIEZLZShkLGcsaCl7cmV0dXJuIGcgaW4gZD9PYmplY3QuZGVmaW5lUHJvcGVydHkoZCxnLHt2YWx1ZTpoLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEw''@;'; + put 'put ''fSk6ZFtnXT1oLGR9TCgzMzQ3MCk7dmFyIFZLZT1bImhlYWRlckNsYXNzTmFtZSIsInJvd0NsYXNzTmFtZSIsImNvbHVtbkNsYXNzTmFtZSJdO2Z1bmN0aW9uIFlrZShkLGcpe3ZhciBoPU9iamVjdC5rZXlzKGQpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciB2PU9iamVj''@;'; + put 'put ''dC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZCk7ZyYmKHY9di5maWx0ZXIoZnVuY3Rpb24oeSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCx5KS5lbnVtZXJhYmxlfSkpLGgucHVzaC5hcHBseShoLHYpfXJldHVybiBofWZ1bmN0aW9uIFVrZShkKXtmb3IodmFyIGc9''@;'; + put 'put ''MTtnPGFyZ3VtZW50cy5sZW5ndGg7ZysrKXt2YXIgaD1udWxsIT1hcmd1bWVudHNbZ10/YXJndW1lbnRzW2ddOnt9O2clMj9Za2UoT2JqZWN0KGgpLCEwKS5mb3JFYWNoKGZ1bmN0aW9uKHYpe2pLZShkLHYsaFt2XSl9KTpPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3Qu''@;'; + put 'put ''ZGVmaW5lUHJvcGVydGllcyhkLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKGgpKTpZa2UoT2JqZWN0KGgpKS5mb3JFYWNoKGZ1bmN0aW9uKHYpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihoLHYpKX0pfXJldHVybiBk''@;'; + put 'put ''fWZ1bmN0aW9uIGpLZShkLGcsaCl7cmV0dXJuIGcgaW4gZD9PYmplY3QuZGVmaW5lUHJvcGVydHkoZCxnLHt2YWx1ZTpoLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZFtnXT1oLGR9ZnVuY3Rpb24gUWtlKGQsZyl7dmFyIGg9T2JqZWN0LmtleXMoZCk7aWYo''@;'; + put 'put ''T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHY9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhkKTtnJiYodj12LmZpbHRlcihmdW5jdGlvbih5KXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLHkpLmVudW1lcmFibGV9KSksaC5wdXNoLmFwcGx5''@;'; + put 'put ''KGgsdil9cmV0dXJuIGh9ZnVuY3Rpb24gVUtlKGQsZyxoKXtyZXR1cm4gZyBpbiBkP09iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGcse3ZhbHVlOmgsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpkW2ddPWgsZH12YXIgSmtlPUxwKCJoaWdobGlnaHQvdHlwZXMi''@;'; + put 'put ''KSx3Tz1Ka2UucmVnaXN0ZXIsUUtlPUprZS5nZXRJdGVtO2Z1bmN0aW9uIGJPKGQsZyl7cmV0dXJuIFFLZShkKShmdW5jdGlvbiBZS2UoZCl7Zm9yKHZhciBnPTE7Zzxhcmd1bWVudHMubGVuZ3RoO2crKyl7dmFyIGg9bnVsbCE9YXJndW1lbnRzW2ddP2FyZ3VtZW50c1tnXTp7fTtnJTI/UWtl''@;'; + put 'put ''KE9iamVjdChoKSwhMCkuZm9yRWFjaChmdW5jdGlvbih2KXtVS2UoZCx2LGhbdl0pfSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhoKSk6UWtlKE9iamVjdChoKSkuZm9y''@;'; + put 'put ''RWFjaChmdW5jdGlvbih2KXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoaCx2KSl9KX1yZXR1cm4gZH0oe3R5cGU6ZH0sZykpfWZ1bmN0aW9uIEx3KGQpe3JldHVybiBmdW5jdGlvbiAkS2UoZCl7aWYoQXJyYXkuaXNBcnJheShkKSly''@;'; + put 'put ''ZXR1cm4gUXBlKGQpfShkKXx8ZnVuY3Rpb24gS0tlKGQpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZudWxsIT1kW1N5bWJvbC5pdGVyYXRvcl18fG51bGwhPWRbIkBAaXRlcmF0b3IiXSlyZXR1cm4gQXJyYXkuZnJvbShkKX0oZCl8fGZ1bmN0aW9uIFhLZShkLGcpe2lmKGQpe2lm''@;'; + put 'put ''KCJzdHJpbmciPT10eXBlb2YgZClyZXR1cm4gUXBlKGQsZyk7dmFyIGg9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGQpLnNsaWNlKDgsLTEpO2lmKCJPYmplY3QiPT09aCYmZC5jb25zdHJ1Y3RvciYmKGg9ZC5jb25zdHJ1Y3Rvci5uYW1lKSwiTWFwIj09PWh8fCJTZXQiPT09aCly''@;'; + put 'put ''ZXR1cm4gQXJyYXkuZnJvbShkKTtpZigiQXJndW1lbnRzIj09PWh8fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KGgpKXJldHVybiBRcGUoZCxnKX19KGQpfHxmdW5jdGlvbiBKS2UoKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQg''@;'; + put 'put ''dG8gc3ByZWFkIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX1mdW5jdGlvbiBRcGUoZCxnKXsobnVsbD09Z3x8Zz5kLmxlbmd0aCkmJihn''@;'; + put 'put ''PWQubGVuZ3RoKTtmb3IodmFyIGg9MCx2PW5ldyBBcnJheShnKTtoPGc7aCsrKXZbaF09ZFtoXTtyZXR1cm4gdn1mdW5jdGlvbiBYa2UoZCxnKXt2YXIgaD1PYmplY3Qua2V5cyhkKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgdj1PYmplY3QuZ2V0T3duUHJvcGVydHlT''@;'; + put 'put ''eW1ib2xzKGQpO2cmJih2PXYuZmlsdGVyKGZ1bmN0aW9uKHkpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQseSkuZW51bWVyYWJsZX0pKSxoLnB1c2guYXBwbHkoaCx2KX1yZXR1cm4gaH1mdW5jdGlvbiBzeihkKXtmb3IodmFyIGc9MTtnPGFyZ3VtZW50cy5sZW5n''@;'; + put 'put ''dGg7ZysrKXt2YXIgaD1udWxsIT1hcmd1bWVudHNbZ10/YXJndW1lbnRzW2ddOnt9O2clMj9Ya2UoT2JqZWN0KGgpLCEwKS5mb3JFYWNoKGZ1bmN0aW9uKHYpe3FLZShkLHYsaFt2XSl9KTpPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhk''@;'; + put 'put ''LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKGgpKTpYa2UoT2JqZWN0KGgpKS5mb3JFYWNoKGZ1bmN0aW9uKHYpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihoLHYpKX0pfXJldHVybiBkfWZ1bmN0aW9uIHFLZShkLGcs''@;'; + put 'put ''aCl7cmV0dXJuIGcgaW4gZD9PYmplY3QuZGVmaW5lUHJvcGVydHkoZCxnLHt2YWx1ZTpoLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZFtnXT1oLGR9ZnVuY3Rpb24gS2tlKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5l''@;'; + put 'put ''bnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19d08oaXRlLGZ1bmN0aW9uIHZLZShkKXt2YXIgZz1kLmFjdGl2ZUhlYWRlckNsYXNzTmFtZSxoPWZ1''@;'; + put 'put ''bmN0aW9uIGdLZShkLGcpe2lmKG51bGw9PWQpcmV0dXJue307dmFyIHYseSxoPWZ1bmN0aW9uIG1LZShkLGcpe2lmKG51bGw9PWQpcmV0dXJue307dmFyIHksQyxoPXt9LHY9T2JqZWN0LmtleXMoZCk7Zm9yKEM9MDtDPHYubGVuZ3RoO0MrKykhKGcuaW5kZXhPZih5PXZbQ10pPj0wKSYmKGhb''@;'; + put 'put ''eV09ZFt5XSk7cmV0dXJuIGh9KGQsZyk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIEM9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhkKTtmb3IoeT0wO3k8Qy5sZW5ndGg7eSsrKSEoZy5pbmRleE9mKHY9Q1t5XSk+PTApJiYoIU9iamVjdC5wcm90b3R5cGUucHJv''@;'; + put 'put ''cGVydHlJc0VudW1lcmFibGUuY2FsbChkLHYpfHwoaFt2XT1kW3ZdKSl9cmV0dXJuIGh9KGQsZEtlKTtyZXR1cm4gbmV3IHlPKEhrZShIa2Uoe2hpZ2hsaWdodEhlYWRlckNsYXNzTmFtZTpnfSxoKSx7fSx7c2VsZWN0aW9uVHlwZTppdGV9KSl9KSx3TyhvdGUsZnVuY3Rpb24gQ0tlKGQpe3Zh''@;'; + put 'put ''ciBnPWQubGF5ZXJMZXZlbCxoPWQuYXJlYUNvcm5lclZpc2libGUsdj1mdW5jdGlvbiBiS2UoZCxnKXtpZihudWxsPT1kKXJldHVybnt9O3ZhciB2LHksaD1mdW5jdGlvbiBfS2UoZCxnKXtpZihudWxsPT1kKXJldHVybnt9O3ZhciB5LEMsaD17fSx2PU9iamVjdC5rZXlzKGQpO2ZvcihDPTA7''@;'; + put 'put ''Qzx2Lmxlbmd0aDtDKyspIShnLmluZGV4T2YoeT12W0NdKT49MCkmJihoW3ldPWRbeV0pO3JldHVybiBofShkLGcpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciBDPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZCk7Zm9yKHk9MDt5PEMubGVuZ3RoO3krKykhKGcu''@;'; + put 'put ''aW5kZXhPZih2PUNbeV0pPj0wKSYmKCFPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoZCx2KXx8KGhbdl09ZFt2XSkpfXJldHVybiBofShkLHlLZSk7cmV0dXJuIG5ldyB5TyhWa2UoVmtlKHtjbGFzc05hbWU6ImFyZWEiLG1hcmtJbnRlcnNlY3Rpb25zOiEwLGxh''@;'; + put 'put ''eWVyTGV2ZWw6TWF0aC5taW4oZyw3KSxib3JkZXI6e3dpZHRoOjEsY29sb3I6IiM0Yjg5ZmYiLGNvcm5lclZpc2libGU6aH19LHYpLHt9LHtzZWxlY3Rpb25UeXBlOm90ZX0pKX0pLHdPKGF6LGZ1bmN0aW9uIFRLZShkKXt2YXIgZz1kLmNlbGxDb3JuZXJWaXNpYmxlLGg9ZnVuY3Rpb24gRUtl''@;'; + put 'put ''KGQsZyl7aWYobnVsbD09ZClyZXR1cm57fTt2YXIgdix5LGg9ZnVuY3Rpb24geEtlKGQsZyl7aWYobnVsbD09ZClyZXR1cm57fTt2YXIgeSxDLGg9e30sdj1PYmplY3Qua2V5cyhkKTtmb3IoQz0wO0M8di5sZW5ndGg7QysrKSEoZy5pbmRleE9mKHk9dltDXSk+PTApJiYoaFt5XT1kW3ldKTty''@;'; + put 'put ''ZXR1cm4gaH0oZCxnKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgQz1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGQpO2Zvcih5PTA7eTxDLmxlbmd0aDt5KyspIShnLmluZGV4T2Yodj1DW3ldKT49MCkmJighT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51''@;'; + put 'put ''bWVyYWJsZS5jYWxsKGQsdil8fChoW3ZdPWRbdl0pKX1yZXR1cm4gaH0oZCxTS2UpO3JldHVybiBuZXcgeU8oWmtlKFprZSh7Y2xhc3NOYW1lOiJjdXJyZW50Iixib3JkZXI6e3dpZHRoOjIsY29sb3I6IiM0Yjg5ZmYiLGNvcm5lclZpc2libGU6Z319LGgpLHt9LHtzZWxlY3Rpb25UeXBlOmF6''@;'; + put 'put ''fSkpfSksd08oWnBlLGZ1bmN0aW9uIEJLZShkKXt2YXIgZz1kLmJvcmRlcixoPWQudmlzdWFsQ2VsbFJhbmdlLHY9ZnVuY3Rpb24gT0tlKGQsZyl7aWYobnVsbD09ZClyZXR1cm57fTt2YXIgdix5LGg9ZnVuY3Rpb24gUktlKGQsZyl7aWYobnVsbD09ZClyZXR1cm57fTt2YXIgeSxDLGg9e30s''@;'; + put 'put ''dj1PYmplY3Qua2V5cyhkKTtmb3IoQz0wO0M8di5sZW5ndGg7QysrKSEoZy5pbmRleE9mKHk9dltDXSk+PTApJiYoaFt5XT1kW3ldKTtyZXR1cm4gaH0oZCxnKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgQz1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGQpO2Zv''@;'; + put 'put ''cih5PTA7eTxDLmxlbmd0aDt5KyspIShnLmluZGV4T2Yodj1DW3ldKT49MCkmJighT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGQsdil8fChoW3ZdPWRbdl0pKX1yZXR1cm4gaH0oZCxES2UpO3JldHVybiBuZXcgeU8oVXBlKFVwZShVcGUoe30sZyksdikse30s''@;'; + put 'put ''e3NlbGVjdGlvblR5cGU6WnBlfSksaCl9KSx3TygiZmlsbCIsZnVuY3Rpb24gSEtlKGQpe3ZhciBnPU9iamVjdC5hc3NpZ24oe30sZCk7cmV0dXJuIG5ldyB5TyhXa2UoV2tlKHtjbGFzc05hbWU6ImZpbGwiLGJvcmRlcjp7d2lkdGg6MSxjb2xvcjoiI2ZmMDAwMCJ9fSxnKSx7fSx7c2VsZWN0''@;'; + put 'put ''aW9uVHlwZToiZmlsbCJ9KSl9KSx3TyhseixmdW5jdGlvbiBHS2UoZCl7dmFyIGc9ZC5oZWFkZXJDbGFzc05hbWUsaD1kLnJvd0NsYXNzTmFtZSx2PWQuY29sdW1uQ2xhc3NOYW1lLHk9ZnVuY3Rpb24gWktlKGQsZyl7aWYobnVsbD09ZClyZXR1cm57fTt2YXIgdix5LGg9ZnVuY3Rpb24gektl''@;'; + put 'put ''KGQsZyl7aWYobnVsbD09ZClyZXR1cm57fTt2YXIgeSxDLGg9e30sdj1PYmplY3Qua2V5cyhkKTtmb3IoQz0wO0M8di5sZW5ndGg7QysrKSEoZy5pbmRleE9mKHk9dltDXSk+PTApJiYoaFt5XT1kW3ldKTtyZXR1cm4gaH0oZCxnKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2''@;'; + put 'put ''YXIgQz1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGQpO2Zvcih5PTA7eTxDLmxlbmd0aDt5KyspIShnLmluZGV4T2Yodj1DW3ldKT49MCkmJighT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGQsdil8fChoW3ZdPWRbdl0pKX1yZXR1cm4gaH0oZCxWS2Up''@;'; + put 'put ''O3JldHVybiBuZXcgeU8oVWtlKFVrZSh7Y2xhc3NOYW1lOiJoaWdobGlnaHQiLGhpZ2hsaWdodEhlYWRlckNsYXNzTmFtZTpnLGhpZ2hsaWdodFJvd0NsYXNzTmFtZTpoLGhpZ2hsaWdodENvbHVtbkNsYXNzTmFtZTp2fSx5KSx7fSx7aGlnaGxpZ2h0T25seUNsb3Nlc3RIZWFkZXI6ITAsc2Vs''@;'; + put 'put ''ZWN0aW9uVHlwZTpsen0pKX0pO3ZhciBuJGU9ZnVuY3Rpb24oZCl7ZnVuY3Rpb24gZyhoKXsoZnVuY3Rpb24gZSRlKGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KSh0aGlzLGcpLHRoaXMu''@;'; + put 'put ''b3B0aW9ucz1oLHRoaXMubGF5ZXJMZXZlbD0wLHRoaXMuY2VsbD1iTyhheixoKSx0aGlzLmZpbGw9Yk8oImZpbGwiLGgpLHRoaXMuYXJlYXM9bmV3IE1hcCx0aGlzLmhlYWRlcnM9bmV3IE1hcCx0aGlzLmFjdGl2ZUhlYWRlcnM9bmV3IE1hcCx0aGlzLmN1c3RvbVNlbGVjdGlvbnM9W119cmV0''@;'; + put 'put ''dXJuIGZ1bmN0aW9uIHQkZShkLGcsaCl7ZyYmS2tlKGQucHJvdG90eXBlLGcpLGgmJktrZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShnLFt7a2V5OiJpc0VuYWJsZWRGb3IiLHZhbHVlOmZ1bmN0aW9uKHYseSl7dmFyIEM9djt2PT09''@;'; + put 'put ''YXomJihDPSJjdXJyZW50Iik7dmFyIEk9dGhpcy5vcHRpb25zLmRpc2FibGVkQ2VsbFNlbGVjdGlvbih5LnJvdyx5LmNvbCk7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBJJiYoST1bSV0pLCExPT09SXx8QXJyYXkuaXNBcnJheShJKSYmIUkuaW5jbHVkZXMoQyl9fSx7a2V5OiJ1c2VMYXllckxl''@;'; + put 'put ''dmVsIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB2PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTowO3JldHVybiB0aGlzLmxheWVyTGV2ZWw9dix0aGlzfX0se2tleToiZ2V0Q2VsbCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jZWxs''@;'; + put 'put ''fX0se2tleToiZ2V0RmlsbCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maWxsfX0se2tleToiY3JlYXRlT3JHZXRBcmVhIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5LHY9dGhpcy5sYXllckxldmVsO3JldHVybiB0aGlzLmFyZWFzLmhhcyh2KT95PXRoaXMuYXJlYXMuZ2V0KHYpOih5''@;'; + put 'put ''PWJPKG90ZSxzeih7bGF5ZXJMZXZlbDp2fSx0aGlzLm9wdGlvbnMpKSx0aGlzLmFyZWFzLnNldCh2LHkpKSx5fX0se2tleToiZ2V0QXJlYXMiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIEx3KHRoaXMuYXJlYXMudmFsdWVzKCkpfX0se2tleToiY3JlYXRlT3JHZXRIZWFkZXIiLHZhbHVlOmZ1''@;'; + put 'put ''bmN0aW9uKCl7dmFyIHksdj10aGlzLmxheWVyTGV2ZWw7cmV0dXJuIHRoaXMuaGVhZGVycy5oYXModik/eT10aGlzLmhlYWRlcnMuZ2V0KHYpOih5PWJPKGx6LHN6KHt9LHRoaXMub3B0aW9ucykpLHRoaXMuaGVhZGVycy5zZXQodix5KSkseX19LHtrZXk6ImdldEhlYWRlcnMiLHZhbHVlOmZ1''@;'; + put 'put ''bmN0aW9uKCl7cmV0dXJuIEx3KHRoaXMuaGVhZGVycy52YWx1ZXMoKSl9fSx7a2V5OiJjcmVhdGVPckdldEFjdGl2ZUhlYWRlciIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeSx2PXRoaXMubGF5ZXJMZXZlbDtyZXR1cm4gdGhpcy5hY3RpdmVIZWFkZXJzLmhhcyh2KT95PXRoaXMuYWN0aXZlSGVh''@;'; + put 'put ''ZGVycy5nZXQodik6KHk9Yk8oaXRlLHN6KHt9LHRoaXMub3B0aW9ucykpLHRoaXMuYWN0aXZlSGVhZGVycy5zZXQodix5KSkseX19LHtrZXk6ImdldEFjdGl2ZUhlYWRlcnMiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIEx3KHRoaXMuYWN0aXZlSGVhZGVycy52YWx1ZXMoKSl9fSx7a2V5OiJn''@;'; + put 'put ''ZXRDdXN0b21TZWxlY3Rpb25zIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBMdyh0aGlzLmN1c3RvbVNlbGVjdGlvbnMudmFsdWVzKCkpfX0se2tleToiYWRkQ3VzdG9tU2VsZWN0aW9uIix2YWx1ZTpmdW5jdGlvbih2KXt0aGlzLmN1c3RvbVNlbGVjdGlvbnMucHVzaChiTyhacGUsc3ooc3oo''@;'; + put 'put ''e30sdGhpcy5vcHRpb25zKSx2KSkpfX0se2tleToiY2xlYXIiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5jZWxsLmNsZWFyKCksdGhpcy5maWxsLmNsZWFyKCksVXIodGhpcy5hcmVhcy52YWx1ZXMoKSxmdW5jdGlvbih2KXt2LmNsZWFyKCl9KSxVcih0aGlzLmhlYWRlcnMudmFsdWVzKCksZnVu''@;'; + put 'put ''Y3Rpb24odil7di5jbGVhcigpfSksVXIodGhpcy5hY3RpdmVIZWFkZXJzLnZhbHVlcygpLGZ1bmN0aW9uKHYpe3YuY2xlYXIoKX0pfX0se2tleTpTeW1ib2wuaXRlcmF0b3IsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm5bdGhpcy5jZWxsLHRoaXMuZmlsbF0uY29uY2F0KEx3KHRoaXMuYXJlYXMu''@;'; + put 'put ''dmFsdWVzKCkpLEx3KHRoaXMuaGVhZGVycy52YWx1ZXMoKSksTHcodGhpcy5hY3RpdmVIZWFkZXJzLnZhbHVlcygpKSxMdyh0aGlzLmN1c3RvbVNlbGVjdGlvbnMpKVtTeW1ib2wuaXRlcmF0b3JdKCl9fV0pLGd9KCk7Y29uc3QgciRlPW4kZTtmdW5jdGlvbiAka2UoZCxnKXtmb3IodmFyIGg9''@;'; + put 'put ''MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX12YXIgYSRlPWZ1bmN0aW9uKGQpe2Z1bmN0''@;'; + put 'put ''aW9uIGcoaCl7KGZ1bmN0aW9uIGkkZShkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSkodGhpcyxnKSx0aGlzLnJhbmdlcz1bXSx0aGlzLmNyZWF0ZUNlbGxSYW5nZT1ofXJldHVybiBmdW5j''@;'; + put 'put ''dGlvbiBvJGUoZCxnLGgpe2cmJiRrZShkLnByb3RvdHlwZSxnKSxoJiYka2UoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oZyxbe2tleToiaXNFbXB0eSIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gMD09PXRoaXMuc2l6ZSgpfX0se2tl''@;'; + put 'put ''eToic2V0Iix2YWx1ZTpmdW5jdGlvbih2KXtyZXR1cm4gdGhpcy5jbGVhcigpLHRoaXMucmFuZ2VzLnB1c2godGhpcy5jcmVhdGVDZWxsUmFuZ2UodikpLHRoaXN9fSx7a2V5OiJhZGQiLHZhbHVlOmZ1bmN0aW9uKHYpe3JldHVybiB0aGlzLnJhbmdlcy5wdXNoKHRoaXMuY3JlYXRlQ2VsbFJh''@;'; + put 'put ''bmdlKHYpKSx0aGlzfX0se2tleToicG9wIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJhbmdlcy5wb3AoKSx0aGlzfX0se2tleToiY3VycmVudCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wZWVrQnlJbmRleCgwKX19LHtrZXk6InByZXZpb3VzIix2YWx1ZTpmdW5jdGlv''@;'; + put 'put ''bigpe3JldHVybiB0aGlzLnBlZWtCeUluZGV4KC0xKX19LHtrZXk6ImluY2x1ZGVzIix2YWx1ZTpmdW5jdGlvbih2KXtyZXR1cm4gdGhpcy5yYW5nZXMuc29tZShmdW5jdGlvbih5KXtyZXR1cm4geS5pbmNsdWRlcyh2KX0pfX0se2tleToiY2xlYXIiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJu''@;'; + put 'put ''IHRoaXMucmFuZ2VzLmxlbmd0aD0wLHRoaXN9fSx7a2V5OiJzaXplIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJhbmdlcy5sZW5ndGh9fSx7a2V5OiJwZWVrQnlJbmRleCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgQyx2PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1l''@;'; + put 'put ''bnRzWzBdP2FyZ3VtZW50c1swXTowLHk9dGhpcy5zaXplKCkrdi0xO3JldHVybiB5Pj0wJiYoQz10aGlzLnJhbmdlc1t5XSksQ319LHtrZXk6U3ltYm9sLml0ZXJhdG9yLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmFuZ2VzW1N5bWJvbC5pdGVyYXRvcl0oKX19XSksZ30oKTtjb25z''@;'; + put 'put ''dCBsJGU9YSRlO2Z1bmN0aW9uIHFrZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5''@;'; + put 'put ''KGQsdi5rZXksdil9fXZhciBlU2U9ZnVuY3Rpb24oKXtmdW5jdGlvbiBkKGcsaCl7KGZ1bmN0aW9uIHMkZShkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSkodGhpcyxkKSx0aGlzLnJhbmdl''@;'; + put 'put ''PWcsdGhpcy5vcHRpb25zPWh9cmV0dXJuIGZ1bmN0aW9uIHUkZShkLGcsaCl7ZyYmcWtlKGQucHJvdG90eXBlLGcpLGgmJnFrZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShkLFt7a2V5OiJ0cmFuc2Zvcm1TdGFydCIsdmFsdWU6ZnVu''@;'; + put 'put ''Y3Rpb24oaCx2KXt2YXIgeT1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXSYmYXJndW1lbnRzWzJdLEM9dGhpcy5vcHRpb25zLmNyZWF0ZUNlbGxDb29yZHMoaCx2KSxJPXRoaXMucmFuZ2UuY3VycmVudCgpLmhpZ2hsaWdodCxqPXRoaXMub3B0aW9ucy52aXN1YWxU''@;'; + put 'put ''b1JlbmRlcmFibGVDb29yZHMoSSksdWU9ai5yb3csX2U9ai5jb2wsQmU9SSxOZT0wLEtlPTA7aWYodGhpcy5ydW5Mb2NhbEhvb2tzKCJiZWZvcmVUcmFuc2Zvcm1TdGFydCIsQyksbnVsbCE9PXVlJiZudWxsIT09X2Upe3ZhciBkdD10aGlzLm9wdGlvbnMuY291bnRSb3dzKCksT3Q9dGhpcy5v''@;'; + put 'put ''cHRpb25zLmNvdW50Q29scygpLCR0PXRoaXMub3B0aW9ucy5maXhlZFJvd3NCb3R0b20oKSxmbj10aGlzLm9wdGlvbnMubWluU3BhcmVSb3dzKCksTG49dGhpcy5vcHRpb25zLm1pblNwYXJlQ29scygpLGlyPXRoaXMub3B0aW9ucy5hdXRvV3JhcFJvdygpLG1yPXRoaXMub3B0aW9ucy5hdXRv''@;'; + put 'put ''V3JhcENvbCgpO3VlK2g+ZHQtMT95JiZmbj4wJiYhKCR0JiZ1ZT49ZHQtJHQtMSk/KHRoaXMucnVuTG9jYWxIb29rcygiaW5zZXJ0Um93UmVxdWlyZSIsZHQpLGR0PXRoaXMub3B0aW9ucy5jb3VudFJvd3MoKSk6bXImJihDLnJvdz0xLWR0LEMuY29sPV9lK0MuY29sPT09T3QtMT8xLU90OjEp''@;'; + put 'put ''Om1yJiZ1ZStDLnJvdzwwJiZfZStDLmNvbD49MCYmKEMucm93PWR0LTEsQy5jb2w9X2UrQy5jb2w9PT0wP090LTE6LTEpLF9lK0MuY29sPk90LTE/eSYmTG4+MD8odGhpcy5ydW5Mb2NhbEhvb2tzKCJpbnNlcnRDb2xSZXF1aXJlIixPdCksT3Q9dGhpcy5vcHRpb25zLmNvdW50Q29scygpKTpp''@;'; + put 'put ''ciYmKEMucm93PXVlK0Mucm93PT09ZHQtMT8xLWR0OjEsQy5jb2w9MS1PdCk6aXImJl9lK0MuY29sPDAmJnVlK0Mucm93Pj0wJiYoQy5yb3c9dWUrQy5yb3c9PT0wP2R0LTE6LTEsQy5jb2w9T3QtMSk7dmFyIFNyPXRoaXMub3B0aW9ucy5jcmVhdGVDZWxsQ29vcmRzKHVlK0Mucm93LF9lK0Mu''@;'; + put 'put ''Y29sKTtOZT0wLEtlPTAsU3Iucm93PDA/KE5lPS0xLFNyLnJvdz0wKTpTci5yb3c+MCYmU3Iucm93Pj1kdCYmKE5lPTEsU3Iucm93PWR0LTEpLFNyLmNvbDwwPyhLZT0tMSxTci5jb2w9MCk6U3IuY29sPjAmJlNyLmNvbD49T3QmJihLZT0xLFNyLmNvbD1PdC0xKSxCZT10aGlzLm9wdGlvbnMu''@;'; + put 'put ''cmVuZGVyYWJsZVRvVmlzdWFsQ29vcmRzKFNyKX1yZXR1cm4gdGhpcy5ydW5Mb2NhbEhvb2tzKCJhZnRlclRyYW5zZm9ybVN0YXJ0IixCZSxOZSxLZSksQmV9fSx7a2V5OiJ0cmFuc2Zvcm1FbmQiLHZhbHVlOmZ1bmN0aW9uKGgsdil7dmFyIHk9dGhpcy5vcHRpb25zLmNyZWF0ZUNlbGxDb29y''@;'; + put 'put ''ZHMoaCx2KSxDPXRoaXMucmFuZ2UuY3VycmVudCgpLEk9Qy50byxqPTAsdWU9MDt0aGlzLnJ1bkxvY2FsSG9va3MoImJlZm9yZVRyYW5zZm9ybUVuZCIseSk7dmFyIF9lPXRoaXMub3B0aW9ucy52aXN1YWxUb1JlbmRlcmFibGVDb29yZHMoQy5oaWdobGlnaHQpO2lmKG51bGwhPT1fZS5yb3cm''@;'; + put 'put ''Jm51bGwhPT1fZS5jb2wpe3ZhciBLZT10aGlzLm9wdGlvbnMuY291bnRSb3dzKCksZHQ9dGhpcy5vcHRpb25zLmNvdW50Q29scygpLE90PXRoaXMub3B0aW9ucy52aXN1YWxUb1JlbmRlcmFibGVDb29yZHMoQy50byksTG49dGhpcy5vcHRpb25zLmNyZWF0ZUNlbGxDb29yZHMoT3Qucm93K3ku''@;'; + put 'put ''cm93LE90LmNvbCt5LmNvbCk7aj0wLHVlPTAsTG4ucm93PDA/KGo9LTEsTG4ucm93PTApOkxuLnJvdz4wJiZMbi5yb3c+PUtlJiYoaj0xLExuLnJvdz1LZS0xKSxMbi5jb2w8MD8odWU9LTEsTG4uY29sPTApOkxuLmNvbD4wJiZMbi5jb2w+PWR0JiYodWU9MSxMbi5jb2w9ZHQtMSksST10aGlz''@;'; + put 'put ''Lm9wdGlvbnMucmVuZGVyYWJsZVRvVmlzdWFsQ29vcmRzKExuKX1yZXR1cm4gdGhpcy5ydW5Mb2NhbEhvb2tzKCJhZnRlclRyYW5zZm9ybUVuZCIsSSxqLHVlKSxJfX1dKSxkfSgpO0IyKGVTZSxjZCk7Y29uc3QgYyRlPWVTZTtmdW5jdGlvbiB0U2UoZCxnKXtyZXR1cm4gZnVuY3Rpb24gcCRl''@;'; + put 'put ''KGQpe2lmKEFycmF5LmlzQXJyYXkoZCkpcmV0dXJuIGR9KGQpfHxmdW5jdGlvbiBkJGUoZCxnKXt2YXIgaD1udWxsPT1kP251bGw6InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJmRbU3ltYm9sLml0ZXJhdG9yXXx8ZFsiQEBpdGVyYXRvciJdO2lmKG51bGwhPWgpe3ZhciBJLGosdj1bXSx5''@;'; + put 'put ''PSEwLEM9ITE7dHJ5e2ZvcihoPWguY2FsbChkKTshKHk9KEk9aC5uZXh0KCkpLmRvbmUpJiYodi5wdXNoKEkudmFsdWUpLCFnfHx2Lmxlbmd0aCE9PWcpO3k9ITApO31jYXRjaCh1ZSl7Qz0hMCxqPXVlfWZpbmFsbHl7dHJ5eyF5JiZudWxsIT1oLnJldHVybiYmaC5yZXR1cm4oKX1maW5hbGx5''@;'; + put 'put ''e2lmKEMpdGhyb3cgan19cmV0dXJuIHZ9fShkLGcpfHxmdW5jdGlvbiBoJGUoZCxnKXtpZihkKXtpZigic3RyaW5nIj09dHlwZW9mIGQpcmV0dXJuIG5TZShkLGcpO3ZhciBoPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChkKS5zbGljZSg4LC0xKTtpZigiT2JqZWN0Ij09PWgmJmQu''@;'; + put 'put ''Y29uc3RydWN0b3ImJihoPWQuY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1ofHwiU2V0Ij09PWgpcmV0dXJuIEFycmF5LmZyb20oZCk7aWYoIkFyZ3VtZW50cyI9PT1ofHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChoKSlyZXR1cm4gblNlKGQsZyl9''@;'; + put 'put ''fShkLGcpfHxmdW5jdGlvbiBmJGUoKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRl''@;'; + put 'put ''cmF0b3JdKCkgbWV0aG9kLiIpfSgpfWZ1bmN0aW9uIG5TZShkLGcpeyhudWxsPT1nfHxnPmQubGVuZ3RoKSYmKGc9ZC5sZW5ndGgpO2Zvcih2YXIgaD0wLHY9bmV3IEFycmF5KGcpO2g8ZztoKyspdltoXT1kW2hdO3JldHVybiB2fWZ1bmN0aW9uIEpwZShkKXtyZXR1cm4oSnBlPSJmdW5jdGlv''@;'; + put 'put ''biI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGcpe3JldHVybiB0eXBlb2YgZ306ZnVuY3Rpb24oZyl7cmV0dXJuIGcmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmcuY29uc3RydWN0b3I9PT1TeW1ib2wmJmchPT1TeW1ib2wu''@;'; + put 'put ''cHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBnfSkoZCl9dmFyIG9TZSxnJGU9WzMsMl0sbSRlPVtbIm51bWJlciJdLFsibnVtYmVyIiwic3RyaW5nIl0sWyJudW1iZXIiLCJ1bmRlZmluZWQiXSxbIm51bWJlciIsInN0cmluZyIsInVuZGVmaW5lZCJdXSxLcGU9U3ltYm9sKCJyb290IiksaVNl''@;'; + put 'put ''PVN5bWJvbCgiY2hpbGQiKTtmdW5jdGlvbiBfTyhkKXt2YXIgZz1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06S3BlO2lmKGchPT1LcGUmJmchPT1pU2UpdGhyb3cgbmV3IEVycm9yKCJUaGUgc2Vjb25kIGFyZ3VtZW50IGlzIHVzZWQgaW50''@;'; + put 'put ''ZXJuYWxseSBvbmx5IGFuZCBjYW5ub3QgYmUgb3ZlcndyaXR0ZW4uIik7dmFyIGg9QXJyYXkuaXNBcnJheShkKSx2PWc9PT1LcGUseT0wO2lmKGgpe3ZhciBDPWRbMF07aWYoMD09PWQubGVuZ3RoKXk9MTtlbHNlIGlmKHYmJkMgaW5zdGFuY2VvZiBvQ2UpeT0zO2Vsc2UgaWYodiYmQXJyYXku''@;'; + put 'put ''aXNBcnJheShDKSl5PV9PKEMsaVNlKTtlbHNlIGlmKGQubGVuZ3RoPj0yJiZkLmxlbmd0aDw9NCl7dmFyIEk9IWQuc29tZShmdW5jdGlvbihqLHVlKXtyZXR1cm4hbSRlW3VlXS5pbmNsdWRlcyhKcGUoaikpfSk7SSYmKHk9Mil9fXJldHVybiB5fWZ1bmN0aW9uIHV6KGQpe3ZhciBnPWFyZ3Vt''@;'; + put 'put ''ZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp7fSxoPWcua2VlcERpcmVjdGlvbix2PXZvaWQgMCE9PWgmJmgseT1nLnByb3BUb0NvbDtpZighZyRlLmluY2x1ZGVzKGQpKXRocm93IG5ldyBFcnJvcigiVW5zdXBwb3J0ZWQgc2VsZWN0aW9uIHJhbmdl''@;'; + put 'put ''cyBzY2hlbWEgdHlwZSB3YXMgcHJvdmlkZWQuIik7cmV0dXJuIGZ1bmN0aW9uKEMpe3ZhciBJPTM9PT1kLGo9ST9DLmZyb20ucm93OkNbMF0sdWU9ST9DLmZyb20uY29sOkNbMV0sX2U9ST9DLnRvLnJvdzpDWzJdLEJlPUk/Qy50by5jb2w6Q1szXTtpZigiZnVuY3Rpb24iPT10eXBlb2YgeSYm''@;'; + put 'put ''KCJzdHJpbmciPT10eXBlb2YgdWUmJih1ZT15KHVlKSksInN0cmluZyI9PXR5cGVvZiBCZSYmKEJlPXkoQmUpKSksYTEoX2UpJiYoX2U9aiksYTEoQmUpJiYoQmU9dWUpLCF2KXt2YXIgTmU9aixLZT11ZSxkdD1fZSxPdD1CZTtqPU1hdGgubWluKE5lLGR0KSx1ZT1NYXRoLm1pbihLZSxPdCks''@;'; + put 'put ''X2U9TWF0aC5tYXgoTmUsZHQpLEJlPU1hdGgubWF4KEtlLE90KX1yZXR1cm5baix1ZSxfZSxCZV19fWZ1bmN0aW9uIE93KGQpe3ZhciBnPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXToxLzA7cmV0dXJuIm51bWJlciI9PXR5cGVvZiBkJiZk''@;'; + put 'put ''Pj0wJiZkPGd9ZnVuY3Rpb24gYVNlKGQsZyl7cmV0dXJuIGZ1bmN0aW9uIF8kZShkKXtpZihBcnJheS5pc0FycmF5KGQpKXJldHVybiBkfShkKXx8ZnVuY3Rpb24gYiRlKGQsZyl7dmFyIGg9bnVsbD09ZD9udWxsOiJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZkW1N5bWJvbC5pdGVyYXRv''@;'; + put 'put ''cl18fGRbIkBAaXRlcmF0b3IiXTtpZihudWxsIT1oKXt2YXIgSSxqLHY9W10seT0hMCxDPSExO3RyeXtmb3IoaD1oLmNhbGwoZCk7ISh5PShJPWgubmV4dCgpKS5kb25lKSYmKHYucHVzaChJLnZhbHVlKSwhZ3x8di5sZW5ndGghPT1nKTt5PSEwKTt9Y2F0Y2godWUpe0M9ITAsaj11ZX1maW5h''@;'; + put 'put ''bGx5e3RyeXsheSYmbnVsbCE9aC5yZXR1cm4mJmgucmV0dXJuKCl9ZmluYWxseXtpZihDKXRocm93IGp9fXJldHVybiB2fX0oZCxnKXx8ZnVuY3Rpb24gdyRlKGQsZyl7aWYoZCl7aWYoInN0cmluZyI9PXR5cGVvZiBkKXJldHVybiBsU2UoZCxnKTt2YXIgaD1PYmplY3QucHJvdG90eXBlLnRv''@;'; + put 'put ''U3RyaW5nLmNhbGwoZCkuc2xpY2UoOCwtMSk7aWYoIk9iamVjdCI9PT1oJiZkLmNvbnN0cnVjdG9yJiYoaD1kLmNvbnN0cnVjdG9yLm5hbWUpLCJNYXAiPT09aHx8IlNldCI9PT1oKXJldHVybiBBcnJheS5mcm9tKGQpO2lmKCJBcmd1bWVudHMiPT09aHx8L14oPzpVaXxJKW50KD86OHwxNnwz''@;'; + put 'put ''MikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QoaCkpcmV0dXJuIGxTZShkLGcpfX0oZCxnKXx8ZnVuY3Rpb24geSRlKCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJh''@;'; + put 'put ''YmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX1mdW5jdGlvbiBsU2UoZCxnKXsobnVsbD09Z3x8Zz5kLmxlbmd0aCkmJihnPWQubGVuZ3RoKTtmb3IodmFyIGg9MCx2PW5ldyBBcnJheShnKTtoPGc7aCsrKXZbaF09ZFto''@;'; + put 'put ''XTtyZXR1cm4gdn1mdW5jdGlvbiBzU2UoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0''@;'; + put 'put ''eShkLHYua2V5LHYpfX12YXIgdVNlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZChnLGgpe3ZhciB2PXRoaXM7KGZ1bmN0aW9uIGskZShkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSkodGhpcyxk''@;'; + put 'put ''KSx0aGlzLnNldHRpbmdzPWcsdGhpcy50YWJsZVByb3BzPWgsdGhpcy5pblByb2dyZXNzPSExLHRoaXMuc2VsZWN0ZWRCeUNvcm5lcj0hMSx0aGlzLnNlbGVjdGVkQnlSb3dIZWFkZXI9bmV3IFNldCx0aGlzLnNlbGVjdGVkQnlDb2x1bW5IZWFkZXI9bmV3IFNldCx0aGlzLnNlbGVjdGVkUmFu''@;'; + put 'put ''Z2U9bmV3IGwkZShmdW5jdGlvbih5LEMsSSl7cmV0dXJuIHYudGFibGVQcm9wcy5jcmVhdGVDZWxsUmFuZ2UoeSxDLEkpfSksdGhpcy5oaWdobGlnaHQ9bmV3IHIkZSh7aGVhZGVyQ2xhc3NOYW1lOmcuY3VycmVudEhlYWRlckNsYXNzTmFtZSxhY3RpdmVIZWFkZXJDbGFzc05hbWU6Zy5hY3Rp''@;'; + put 'put ''dmVIZWFkZXJDbGFzc05hbWUscm93Q2xhc3NOYW1lOmcuY3VycmVudFJvd0NsYXNzTmFtZSxjb2x1bW5DbGFzc05hbWU6Zy5jdXJyZW50Q29sQ2xhc3NOYW1lLGRpc2FibGVkQ2VsbFNlbGVjdGlvbjpmdW5jdGlvbihDLEkpe3JldHVybiB2LnRhYmxlUHJvcHMuaXNEaXNhYmxlZENlbGxTZWxl''@;'; + put 'put ''Y3Rpb24oQyxJKX0sY2VsbENvcm5lclZpc2libGU6ZnVuY3Rpb24oKXtyZXR1cm4gdi5pc0NlbGxDb3JuZXJWaXNpYmxlLmFwcGx5KHYsYXJndW1lbnRzKX0sYXJlYUNvcm5lclZpc2libGU6ZnVuY3Rpb24oKXtyZXR1cm4gdi5pc0FyZWFDb3JuZXJWaXNpYmxlLmFwcGx5KHYsYXJndW1lbnRz''@;'; + put 'put ''KX0sdmlzdWFsVG9SZW5kZXJhYmxlQ29vcmRzOmZ1bmN0aW9uKEMpe3JldHVybiB2LnRhYmxlUHJvcHMudmlzdWFsVG9SZW5kZXJhYmxlQ29vcmRzKEMpfSxyZW5kZXJhYmxlVG9WaXN1YWxDb29yZHM6ZnVuY3Rpb24oQyl7cmV0dXJuIHYudGFibGVQcm9wcy5yZW5kZXJhYmxlVG9WaXN1YWxD''@;'; + put 'put ''b29yZHMoQyl9LGNyZWF0ZUNlbGxDb29yZHM6ZnVuY3Rpb24oQyxJKXtyZXR1cm4gdi50YWJsZVByb3BzLmNyZWF0ZUNlbGxDb29yZHMoQyxJKX0sY3JlYXRlQ2VsbFJhbmdlOmZ1bmN0aW9uKEMsSSxqKXtyZXR1cm4gdi50YWJsZVByb3BzLmNyZWF0ZUNlbGxSYW5nZShDLEksail9LHJvd0lu''@;'; + put 'put ''ZGV4TWFwcGVyOmZ1bmN0aW9uKCl7cmV0dXJuIHYudGFibGVQcm9wcy5yb3dJbmRleE1hcHBlcigpfSxjb2x1bW5JbmRleE1hcHBlcjpmdW5jdGlvbigpe3JldHVybiB2LnRhYmxlUHJvcHMuY29sdW1uSW5kZXhNYXBwZXIoKX19KSx0aGlzLnRyYW5zZm9ybWF0aW9uPW5ldyBjJGUodGhpcy5z''@;'; + put 'put ''ZWxlY3RlZFJhbmdlLHtjb3VudFJvd3M6ZnVuY3Rpb24oKXtyZXR1cm4gdi50YWJsZVByb3BzLmNvdW50Um93c1RyYW5zbGF0ZWQoKX0sY291bnRDb2xzOmZ1bmN0aW9uKCl7cmV0dXJuIHYudGFibGVQcm9wcy5jb3VudENvbHNUcmFuc2xhdGVkKCl9LHZpc3VhbFRvUmVuZGVyYWJsZUNvb3Jk''@;'; + put 'put ''czpmdW5jdGlvbihDKXtyZXR1cm4gdi50YWJsZVByb3BzLnZpc3VhbFRvUmVuZGVyYWJsZUNvb3JkcyhDKX0scmVuZGVyYWJsZVRvVmlzdWFsQ29vcmRzOmZ1bmN0aW9uKEMpe3JldHVybiB2LnRhYmxlUHJvcHMucmVuZGVyYWJsZVRvVmlzdWFsQ29vcmRzKEMpfSxjcmVhdGVDZWxsQ29vcmRz''@;'; + put 'put ''OmZ1bmN0aW9uKEMsSSl7cmV0dXJuIHYudGFibGVQcm9wcy5jcmVhdGVDZWxsQ29vcmRzKEMsSSl9LGZpeGVkUm93c0JvdHRvbTpmdW5jdGlvbigpe3JldHVybiBnLmZpeGVkUm93c0JvdHRvbX0sbWluU3BhcmVSb3dzOmZ1bmN0aW9uKCl7cmV0dXJuIGcubWluU3BhcmVSb3dzfSxtaW5TcGFy''@;'; + put 'put ''ZUNvbHM6ZnVuY3Rpb24oKXtyZXR1cm4gZy5taW5TcGFyZUNvbHN9LGF1dG9XcmFwUm93OmZ1bmN0aW9uKCl7cmV0dXJuIGcuYXV0b1dyYXBSb3d9LGF1dG9XcmFwQ29sOmZ1bmN0aW9uKCl7cmV0dXJuIGcuYXV0b1dyYXBDb2x9fSksdGhpcy50cmFuc2Zvcm1hdGlvbi5hZGRMb2NhbEhvb2so''@;'; + put 'put ''ImJlZm9yZVRyYW5zZm9ybVN0YXJ0IixmdW5jdGlvbigpe2Zvcih2YXIgeT1hcmd1bWVudHMubGVuZ3RoLEM9bmV3IEFycmF5KHkpLEk9MDtJPHk7SSsrKUNbSV09YXJndW1lbnRzW0ldO3JldHVybiB2LnJ1bkxvY2FsSG9va3MuYXBwbHkodixbImJlZm9yZU1vZGlmeVRyYW5zZm9ybVN0YXJ0''@;'; + put 'put ''Il0uY29uY2F0KEMpKX0pLHRoaXMudHJhbnNmb3JtYXRpb24uYWRkTG9jYWxIb29rKCJhZnRlclRyYW5zZm9ybVN0YXJ0IixmdW5jdGlvbigpe2Zvcih2YXIgeT1hcmd1bWVudHMubGVuZ3RoLEM9bmV3IEFycmF5KHkpLEk9MDtJPHk7SSsrKUNbSV09YXJndW1lbnRzW0ldO3JldHVybiB2LnJ1''@;'; + put 'put ''bkxvY2FsSG9va3MuYXBwbHkodixbImFmdGVyTW9kaWZ5VHJhbnNmb3JtU3RhcnQiXS5jb25jYXQoQykpfSksdGhpcy50cmFuc2Zvcm1hdGlvbi5hZGRMb2NhbEhvb2soImJlZm9yZVRyYW5zZm9ybUVuZCIsZnVuY3Rpb24oKXtmb3IodmFyIHk9YXJndW1lbnRzLmxlbmd0aCxDPW5ldyBBcnJh''@;'; + put 'put ''eSh5KSxJPTA7STx5O0krKylDW0ldPWFyZ3VtZW50c1tJXTtyZXR1cm4gdi5ydW5Mb2NhbEhvb2tzLmFwcGx5KHYsWyJiZWZvcmVNb2RpZnlUcmFuc2Zvcm1FbmQiXS5jb25jYXQoQykpfSksdGhpcy50cmFuc2Zvcm1hdGlvbi5hZGRMb2NhbEhvb2soImFmdGVyVHJhbnNmb3JtRW5kIixmdW5j''@;'; + put 'put ''dGlvbigpe2Zvcih2YXIgeT1hcmd1bWVudHMubGVuZ3RoLEM9bmV3IEFycmF5KHkpLEk9MDtJPHk7SSsrKUNbSV09YXJndW1lbnRzW0ldO3JldHVybiB2LnJ1bkxvY2FsSG9va3MuYXBwbHkodixbImFmdGVyTW9kaWZ5VHJhbnNmb3JtRW5kIl0uY29uY2F0KEMpKX0pLHRoaXMudHJhbnNmb3Jt''@;'; + put 'put ''YXRpb24uYWRkTG9jYWxIb29rKCJpbnNlcnRSb3dSZXF1aXJlIixmdW5jdGlvbigpe2Zvcih2YXIgeT1hcmd1bWVudHMubGVuZ3RoLEM9bmV3IEFycmF5KHkpLEk9MDtJPHk7SSsrKUNbSV09YXJndW1lbnRzW0ldO3JldHVybiB2LnJ1bkxvY2FsSG9va3MuYXBwbHkodixbImluc2VydFJvd1Jl''@;'; + put 'put ''cXVpcmUiXS5jb25jYXQoQykpfSksdGhpcy50cmFuc2Zvcm1hdGlvbi5hZGRMb2NhbEhvb2soImluc2VydENvbFJlcXVpcmUiLGZ1bmN0aW9uKCl7Zm9yKHZhciB5PWFyZ3VtZW50cy5sZW5ndGgsQz1uZXcgQXJyYXkoeSksST0wO0k8eTtJKyspQ1tJXT1hcmd1bWVudHNbSV07cmV0dXJuIHYu''@;'; + put 'put ''cnVuTG9jYWxIb29rcy5hcHBseSh2LFsiaW5zZXJ0Q29sUmVxdWlyZSJdLmNvbmNhdChDKSl9KX1yZXR1cm4gZnVuY3Rpb24gUyRlKGQsZyxoKXtnJiZzU2UoZC5wcm90b3R5cGUsZyksaCYmc1NlKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiEx''@;'; + put 'put ''fSl9KGQsW3trZXk6ImdldFNlbGVjdGVkUmFuZ2UiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2VsZWN0ZWRSYW5nZX19LHtrZXk6ImJlZ2luIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuaW5Qcm9ncmVzcz0hMH19LHtrZXk6ImZpbmlzaCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLnJ1''@;'; + put 'put ''bkxvY2FsSG9va3MoImFmdGVyU2VsZWN0aW9uRmluaXNoZWQiLEFycmF5LmZyb20odGhpcy5zZWxlY3RlZFJhbmdlKSksdGhpcy5pblByb2dyZXNzPSExfX0se2tleToiaXNJblByb2dyZXNzIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmluUHJvZ3Jlc3N9fSx7a2V5OiJzZXRSYW5n''@;'; + put 'put ''ZVN0YXJ0Iix2YWx1ZTpmdW5jdGlvbihoLHYpe3ZhciB5PWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdJiZhcmd1bWVudHNbMl0sQz0ibXVsdGlwbGUiPT09dGhpcy5zZXR0aW5ncy5zZWxlY3Rpb25Nb2RlLEk9YTEodik/dGhpcy50YWJsZVByb3BzLmdldFNob3J0''@;'; + put 'put ''Y3V0TWFuYWdlcigpLmlzQ3RybFByZXNzZWQoKTp2LGo9aC5yb3c8MCx1ZT1oLmNvbDwwLF9lPWomJnVlLEJlPWguY2xvbmUoKTt0aGlzLnNlbGVjdGVkQnlDb3JuZXI9X2UsdGhpcy5ydW5Mb2NhbEhvb2tzKCJiZWZvcmVTZXRSYW5nZVN0YXJ0Ii5jb25jYXQoeT8iT25seSI6IiIpLEJlKSwo''@;'; + put 'put ''IUN8fEMmJiFJJiZhMSh2KSkmJnRoaXMuc2VsZWN0ZWRSYW5nZS5jbGVhcigpLHRoaXMuc2VsZWN0ZWRSYW5nZS5hZGQoQmUpLDA9PT10aGlzLmdldExheWVyTGV2ZWwoKSYmKHRoaXMuc2VsZWN0ZWRCeVJvd0hlYWRlci5jbGVhcigpLHRoaXMuc2VsZWN0ZWRCeUNvbHVtbkhlYWRlci5jbGVh''@;'; + put 'put ''cigpKSwhX2UmJnVlJiZ0aGlzLnNlbGVjdGVkQnlSb3dIZWFkZXIuYWRkKHRoaXMuZ2V0TGF5ZXJMZXZlbCgpKSwhX2UmJmomJnRoaXMuc2VsZWN0ZWRCeUNvbHVtbkhlYWRlci5hZGQodGhpcy5nZXRMYXllckxldmVsKCkpLHl8fHRoaXMuc2V0UmFuZ2VFbmQoaCl9fSx7a2V5OiJzZXRSYW5n''@;'; + put 'put ''ZVN0YXJ0T25seSIsdmFsdWU6ZnVuY3Rpb24oaCx2KXt0aGlzLnNldFJhbmdlU3RhcnQoaCx2LCEwKX19LHtrZXk6InNldFJhbmdlRW5kIix2YWx1ZTpmdW5jdGlvbihoKXtpZighdGhpcy5zZWxlY3RlZFJhbmdlLmlzRW1wdHkoKSl7dmFyIHY9aC5jbG9uZSgpO3RoaXMucnVuTG9jYWxIb29r''@;'; + put 'put ''cygiYmVmb3JlU2V0UmFuZ2VFbmQiLHYpLHRoaXMuYmVnaW4oKTt2YXIgeT10aGlzLnNlbGVjdGVkUmFuZ2UuY3VycmVudCgpOyJzaW5nbGUiIT09dGhpcy5zZXR0aW5ncy5zZWxlY3Rpb25Nb2RlJiZ5LnNldFRvKHRoaXMudGFibGVQcm9wcy5jcmVhdGVDZWxsQ29vcmRzKHYucm93LHYuY29s''@;'; + put 'put ''KSksdGhpcy5oaWdobGlnaHQuZ2V0Q2VsbCgpLmNsZWFyKCksdGhpcy5oaWdobGlnaHQuaXNFbmFibGVkRm9yKGF6LHkuaGlnaGxpZ2h0KSYmdGhpcy5oaWdobGlnaHQuZ2V0Q2VsbCgpLmFkZCh0aGlzLnNlbGVjdGVkUmFuZ2UuY3VycmVudCgpLmhpZ2hsaWdodCkuY29tbWl0KCkuc3luY1dp''@;'; + put 'put ''dGgoeSk7dmFyIEM9dGhpcy5nZXRMYXllckxldmVsKCk7Qzx0aGlzLmhpZ2hsaWdodC5sYXllckxldmVsJiYoVXIodGhpcy5oaWdobGlnaHQuZ2V0QXJlYXMoKSxmdW5jdGlvbigkdCl7JHQuY2xlYXIoKX0pLFVyKHRoaXMuaGlnaGxpZ2h0LmdldEhlYWRlcnMoKSxmdW5jdGlvbigkdCl7JHQu''@;'; + put 'put ''Y2xlYXIoKX0pLFVyKHRoaXMuaGlnaGxpZ2h0LmdldEFjdGl2ZUhlYWRlcnMoKSxmdW5jdGlvbigkdCl7JHQuY2xlYXIoKX0pKSx0aGlzLmhpZ2hsaWdodC51c2VMYXllckxldmVsKEMpO3ZhciBJPXRoaXMuaGlnaGxpZ2h0LmNyZWF0ZU9yR2V0QXJlYSgpLGo9dGhpcy5oaWdobGlnaHQuY3Jl''@;'; + put 'put ''YXRlT3JHZXRIZWFkZXIoKSx1ZT10aGlzLmhpZ2hsaWdodC5jcmVhdGVPckdldEFjdGl2ZUhlYWRlcigpO2lmKEkuY2xlYXIoKSxqLmNsZWFyKCksdWUuY2xlYXIoKSx0aGlzLmhpZ2hsaWdodC5pc0VuYWJsZWRGb3Iob3RlLHkuaGlnaGxpZ2h0KSYmKHRoaXMuaXNNdWx0aXBsZSgpfHxDPj0x''@;'; + put 'put ''KSYmKEkuYWRkKHkuZnJvbSkuYWRkKHkudG8pLmNvbW1pdCgpLDE9PT1DKSl7dmFyIF9lPXRoaXMuc2VsZWN0ZWRSYW5nZS5wcmV2aW91cygpO3RoaXMuaGlnaGxpZ2h0LnVzZUxheWVyTGV2ZWwoQy0xKS5jcmVhdGVPckdldEFyZWEoKS5hZGQoX2UuZnJvbSkuY29tbWl0KCkuc3luY1dpdGgo''@;'; + put 'put ''X2UpLHRoaXMuaGlnaGxpZ2h0LnVzZUxheWVyTGV2ZWwoQyl9aWYodGhpcy5oaWdobGlnaHQuaXNFbmFibGVkRm9yKGx6LHkuaGlnaGxpZ2h0KSl7dmFyIEJlPTA9PT10aGlzLnRhYmxlUHJvcHMuY291bnRSb3dzVHJhbnNsYXRlZCgpLE5lPTA9PT10aGlzLnRhYmxlUHJvcHMuY291bnRDb2xz''@;'; + put 'put ''VHJhbnNsYXRlZCgpLEtlPXk7KEJlfHxOZSkmJihLZT15LmNsb25lKCkpLEJlJiYoS2UuZnJvbS5yb3c9LTEpLE5lJiYoS2UuZnJvbS5jb2w9LTEpLCJzaW5nbGUiPT09dGhpcy5zZXR0aW5ncy5zZWxlY3Rpb25Nb2RlPyh0aGlzLmlzU2VsZWN0ZWRCeUFueUhlYWRlcigpJiZLZS5mcm9tLm5v''@;'; + put 'put ''cm1hbGl6ZSgpLGouYWRkKEtlLmZyb20pLmNvbW1pdCgpKTpqLmFkZChLZS5mcm9tKS5hZGQoS2UudG8pLmNvbW1pdCgpLHRoaXMuaXNFbnRpcmVSb3dTZWxlY3RlZCgpJiZ0aGlzLnRhYmxlUHJvcHMuY291bnRDb2xzKCk9PT15LmdldFdpZHRoKCkmJnVlLmFkZCh0aGlzLnRhYmxlUHJvcHMu''@;'; + put 'put ''Y3JlYXRlQ2VsbENvb3Jkcyh5LmZyb20ucm93LC0xKSkuYWRkKHRoaXMudGFibGVQcm9wcy5jcmVhdGVDZWxsQ29vcmRzKHkudG8ucm93LC0xKSkuY29tbWl0KCksdGhpcy5pc0VudGlyZUNvbHVtblNlbGVjdGVkKCkmJnRoaXMudGFibGVQcm9wcy5jb3VudFJvd3MoKT09PXkuZ2V0SGVpZ2h0''@;'; + put 'put ''KCkmJnVlLmFkZCh0aGlzLnRhYmxlUHJvcHMuY3JlYXRlQ2VsbENvb3JkcygtMSx5LmZyb20uY29sKSkuYWRkKHRoaXMudGFibGVQcm9wcy5jcmVhdGVDZWxsQ29vcmRzKC0xLHkudG8uY29sKSkuY29tbWl0KCl9dGhpcy5ydW5Mb2NhbEhvb2tzKCJhZnRlclNldFJhbmdlRW5kIixoKX19fSx7''@;'; + put 'put ''a2V5OiJpc011bHRpcGxlIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBoPVNTKCF0aGlzLnNlbGVjdGVkUmFuZ2UuY3VycmVudCgpLmlzU2luZ2xlKCkpO3JldHVybiB0aGlzLnJ1bkxvY2FsSG9va3MoImFmdGVySXNNdWx0aXBsZVNlbGVjdGlvbiIsaCksaC52YWx1ZX19LHtrZXk6InRyYW5zZm9y''@;'; + put 'put ''bVN0YXJ0Iix2YWx1ZTpmdW5jdGlvbihoLHYpe3ZhciB5PWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdJiZhcmd1bWVudHNbMl07dGhpcy5zZXRSYW5nZVN0YXJ0KHRoaXMudHJhbnNmb3JtYXRpb24udHJhbnNmb3JtU3RhcnQoaCx2LHkpKX19LHtrZXk6InRyYW5z''@;'; + put 'put ''Zm9ybUVuZCIsdmFsdWU6ZnVuY3Rpb24oaCx2KXt0aGlzLnNldFJhbmdlRW5kKHRoaXMudHJhbnNmb3JtYXRpb24udHJhbnNmb3JtRW5kKGgsdikpfX0se2tleToiZ2V0TGF5ZXJMZXZlbCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zZWxlY3RlZFJhbmdlLnNpemUoKS0xfX0se2tl''@;'; + put 'put ''eToiaXNTZWxlY3RlZCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4hdGhpcy5zZWxlY3RlZFJhbmdlLmlzRW1wdHkoKX19LHtrZXk6ImlzU2VsZWN0ZWRCeVJvd0hlYWRlciIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9h''@;'; + put 'put ''cmd1bWVudHNbMF06dGhpcy5nZXRMYXllckxldmVsKCk7cmV0dXJuIXRoaXMuaXNTZWxlY3RlZEJ5Q29ybmVyKGgpJiZ0aGlzLmlzRW50aXJlUm93U2VsZWN0ZWQoaCl9fSx7a2V5OiJpc0VudGlyZVJvd1NlbGVjdGVkIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBoPWFyZ3VtZW50cy5sZW5ndGg+''@;'; + put 'put ''MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp0aGlzLmdldExheWVyTGV2ZWwoKTtyZXR1cm4tMT09PWg/dGhpcy5zZWxlY3RlZEJ5Um93SGVhZGVyLnNpemU+MDp0aGlzLnNlbGVjdGVkQnlSb3dIZWFkZXIuaGFzKGgpfX0se2tleToiaXNTZWxlY3RlZEJ5Q29sdW1uSGVh''@;'; + put 'put ''ZGVyIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBoPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp0aGlzLmdldExheWVyTGV2ZWwoKTtyZXR1cm4hdGhpcy5pc1NlbGVjdGVkQnlDb3JuZXIoKSYmdGhpcy5pc0VudGlyZUNvbHVtblNlbGVjdGVk''@;'; + put 'put ''KGgpfX0se2tleToiaXNFbnRpcmVDb2x1bW5TZWxlY3RlZCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06dGhpcy5nZXRMYXllckxldmVsKCk7cmV0dXJuLTE9PT1oP3RoaXMuc2VsZWN0ZWRCeUNv''@;'; + put 'put ''bHVtbkhlYWRlci5zaXplPjA6dGhpcy5zZWxlY3RlZEJ5Q29sdW1uSGVhZGVyLmhhcyhoKX19LHtrZXk6ImlzU2VsZWN0ZWRCeUFueUhlYWRlciIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pc1NlbGVjdGVkQnlSb3dIZWFkZXIoLTEpfHx0aGlzLmlzU2VsZWN0ZWRCeUNvbHVtbkhl''@;'; + put 'put ''YWRlcigtMSl8fHRoaXMuaXNTZWxlY3RlZEJ5Q29ybmVyKCl9fSx7a2V5OiJpc1NlbGVjdGVkQnlDb3JuZXIiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2VsZWN0ZWRCeUNvcm5lcn19LHtrZXk6ImluSW5TZWxlY3Rpb24iLHZhbHVlOmZ1bmN0aW9uKGgpe3JldHVybiB0aGlzLnNl''@;'; + put 'put ''bGVjdGVkUmFuZ2UuaW5jbHVkZXMoaCl9fSx7a2V5OiJpc0NlbGxDb3JuZXJWaXNpYmxlIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnNldHRpbmdzLmZpbGxIYW5kbGUmJiF0aGlzLnRhYmxlUHJvcHMuaXNFZGl0b3JPcGVuZWQoKSYmIXRoaXMuaXNNdWx0aXBsZSgpfX0se2tleToi''@;'; + put 'put ''aXNBcmVhQ29ybmVyVmlzaWJsZSIsdmFsdWU6ZnVuY3Rpb24oaCl7cmV0dXJuKCFOdW1iZXIuaXNJbnRlZ2VyKGgpfHxoPT09dGhpcy5nZXRMYXllckxldmVsKCkpJiZ0aGlzLnNldHRpbmdzLmZpbGxIYW5kbGUmJiF0aGlzLnRhYmxlUHJvcHMuaXNFZGl0b3JPcGVuZWQoKSYmdGhpcy5pc011''@;'; + put 'put ''bHRpcGxlKCl9fSx7a2V5OiJjbGVhciIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLnNlbGVjdGVkUmFuZ2UuY2xlYXIoKSx0aGlzLmhpZ2hsaWdodC5jbGVhcigpfX0se2tleToiZGVzZWxlY3QiLHZhbHVlOmZ1bmN0aW9uKCl7IXRoaXMuaXNTZWxlY3RlZCgpfHwodGhpcy5pblByb2dyZXNzPSEx''@;'; + put 'put ''LHRoaXMuY2xlYXIoKSx0aGlzLnJ1bkxvY2FsSG9va3MoImFmdGVyRGVzZWxlY3QiKSl9fSx7a2V5OiJzZWxlY3RBbGwiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0mJmFyZ3VtZW50c1swXSx2PWFyZ3VtZW50cy5sZW5n''@;'; + put 'put ''dGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdJiZhcmd1bWVudHNbMV0seT10aGlzLnRhYmxlUHJvcHMuY291bnRSb3dzKCksQz10aGlzLnRhYmxlUHJvcHMuY291bnRDb2xzKCk7aWYoaHx8dnx8MCE9PXkmJjAhPT1DKXt2YXIgST10aGlzLnRhYmxlUHJvcHMuY3JlYXRlQ2VsbENvb3Jkcyh2''@;'; + put 'put ''Py0xOjAsaD8tMTowKTt0aGlzLmNsZWFyKCksdGhpcy5zZXRSYW5nZVN0YXJ0T25seShJKSx0aGlzLnNlbGVjdGVkQnlSb3dIZWFkZXIuYWRkKHRoaXMuZ2V0TGF5ZXJMZXZlbCgpKSx0aGlzLnNlbGVjdGVkQnlDb2x1bW5IZWFkZXIuYWRkKHRoaXMuZ2V0TGF5ZXJMZXZlbCgpKSx0aGlzLnNl''@;'; + put 'put ''dFJhbmdlRW5kKHRoaXMudGFibGVQcm9wcy5jcmVhdGVDZWxsQ29vcmRzKHktMSxDLTEpKSx0aGlzLmZpbmlzaCgpfX19LHtrZXk6InNlbGVjdENlbGxzIix2YWx1ZTpmdW5jdGlvbihoKXt2YXIgdj10aGlzLHk9X08oaCk7aWYoMT09PXkpcmV0dXJuITE7aWYoMD09PXkpdGhyb3cgbmV3IEVy''@;'; + put 'put ''cm9yKFAyKG9TZXx8KG9TZT1mdW5jdGlvbiBDJGUoZCxnKXtyZXR1cm4gZ3x8KGc9ZC5zbGljZSgwKSksT2JqZWN0LmZyZWV6ZShPYmplY3QuZGVmaW5lUHJvcGVydGllcyhkLHtyYXc6e3ZhbHVlOk9iamVjdC5mcmVlemUoZyl9fSkpfShbIlVuc3VwcG9ydGVkIGZvcm1hdCBvZiB0aGUgc2Vs''@;'; + put 'put ''ZWN0aW9uIHJhbmdlcyB3YXMgcGFzc2VkLiBUbyBzZWxlY3QgY2VsbHMgcGFzcyBcbiAgICAgICAgdGhlIGNvb3JkaW5hdGVzIGFzIGFuIGFycmF5IG9mIGFycmF5cyAoW1tyb3dTdGFydCwgY29sdW1uU3RhcnQvY29sdW1uUHJvcFN0YXJ0LCByb3dFbmQsIFxuICAgICAgICBjb2x1bW5FbmQv''@;'; + put 'put ''Y29sdW1uUHJvcEVuZF1dKSBvciBhcyBhbiBhcnJheSBvZiBDZWxsUmFuZ2Ugb2JqZWN0cy4iXSxbIlVuc3VwcG9ydGVkIGZvcm1hdCBvZiB0aGUgc2VsZWN0aW9uIHJhbmdlcyB3YXMgcGFzc2VkLiBUbyBzZWxlY3QgY2VsbHMgcGFzc1xceDIwXG4gICAgICAgIHRoZSBjb29yZGluYXRlcyBh''@;'; + put 'put ''cyBhbiBhcnJheSBvZiBhcnJheXMgKFtbcm93U3RhcnQsIGNvbHVtblN0YXJ0L2NvbHVtblByb3BTdGFydCwgcm93RW5kLFxceDIwXG4gICAgICAgIGNvbHVtbkVuZC9jb2x1bW5Qcm9wRW5kXV0pIG9yIGFzIGFuIGFycmF5IG9mIENlbGxSYW5nZSBvYmplY3RzLiJdKSkpKTt2YXIgQz11eih5''@;'; + put 'put ''LHtwcm9wVG9Db2w6ZnVuY3Rpb24oQmUpe3JldHVybiB2LnRhYmxlUHJvcHMucHJvcFRvQ29sKEJlKX0sa2VlcERpcmVjdGlvbjohMH0pLEk9dGhpcy50YWJsZVByb3BzLmNvdW50Um93cygpLGo9dGhpcy50YWJsZVByb3BzLmNvdW50Q29scygpLHVlPSFoLnNvbWUoZnVuY3Rpb24oX2Upe3Zh''@;'; + put 'put ''ciBOZT1hU2UoQyhfZSksNCksZHQ9TmVbMV0sT3Q9TmVbMl0sJHQ9TmVbM107cmV0dXJuIShPdyhOZVswXSxJKSYmT3coZHQsaikmJk93KE90LEkpJiZPdygkdCxqKSl9KTtyZXR1cm4gdWUmJih0aGlzLmNsZWFyKCksVXIoaCxmdW5jdGlvbihfZSl7dmFyIE5lPWFTZShDKF9lKSw0KSxPdD1O''@;'; + put 'put ''ZVsyXSwkdD1OZVszXTt2LnNldFJhbmdlU3RhcnRPbmx5KHYudGFibGVQcm9wcy5jcmVhdGVDZWxsQ29vcmRzKE5lWzBdLE5lWzFdKSwhMSksdi5zZXRSYW5nZUVuZCh2LnRhYmxlUHJvcHMuY3JlYXRlQ2VsbENvb3JkcyhPdCwkdCkpLHYuZmluaXNoKCl9KSksdWV9fSx7a2V5OiJzZWxlY3RD''@;'; + put 'put ''b2x1bW5zIix2YWx1ZTpmdW5jdGlvbihoKXt2YXIgdj1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06aCx5PWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXTotMSxDPSJzdHJpbmciPT10eXBl''@;'; + put 'put ''b2YgaD90aGlzLnRhYmxlUHJvcHMucHJvcFRvQ29sKGgpOmgsST0ic3RyaW5nIj09dHlwZW9mIHY/dGhpcy50YWJsZVByb3BzLnByb3BUb0NvbCh2KTp2LGo9dGhpcy50YWJsZVByb3BzLmNvdW50Q29scygpLHVlPXRoaXMudGFibGVQcm9wcy5jb3VudFJvd3MoKSxfZT1PdyhDLGopJiZPdyhJ''@;'; + put 'put ''LGopO3JldHVybiBfZSYmKHRoaXMuc2V0UmFuZ2VTdGFydE9ubHkodGhpcy50YWJsZVByb3BzLmNyZWF0ZUNlbGxDb29yZHMoeSxDKSksdGhpcy5zZXRSYW5nZUVuZCh0aGlzLnRhYmxlUHJvcHMuY3JlYXRlQ2VsbENvb3Jkcyh1ZS0xLEkpKSx0aGlzLmZpbmlzaCgpKSxfZX19LHtrZXk6InNl''@;'; + put 'put ''bGVjdFJvd3MiLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB2PWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTpoLHk9YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOi0xLEM9dGhpcy50YWJsZVBy''@;'; + put 'put ''b3BzLmNvdW50Um93cygpLEk9dGhpcy50YWJsZVByb3BzLmNvdW50Q29scygpLGo9T3coaCxDKSYmT3codixDKTtyZXR1cm4gaiYmKHRoaXMuc2V0UmFuZ2VTdGFydE9ubHkodGhpcy50YWJsZVByb3BzLmNyZWF0ZUNlbGxDb29yZHMoaCx5KSksdGhpcy5zZXRSYW5nZUVuZCh0aGlzLnRhYmxl''@;'; + put 'put ''UHJvcHMuY3JlYXRlQ2VsbENvb3Jkcyh2LEktMSkpLHRoaXMuZmluaXNoKCkpLGp9fSx7a2V5OiJyZWZyZXNoIix2YWx1ZTpmdW5jdGlvbigpe2lmKHRoaXMuaGlnaGxpZ2h0LmdldEN1c3RvbVNlbGVjdGlvbnMoKS5mb3JFYWNoKGZ1bmN0aW9uKF9lKXtfZS5jb21taXQoKX0pLHRoaXMuaXNT''@;'; + put 'put ''ZWxlY3RlZCgpKXt2YXIgdj10aGlzLmhpZ2hsaWdodC5nZXRDZWxsKCkseT10aGlzLmdldExheWVyTGV2ZWwoKTt2LmNvbW1pdCgpLnN5bmNXaXRoKHRoaXMuc2VsZWN0ZWRSYW5nZS5jdXJyZW50KCkpO2Zvcih2YXIgQz0wO0M8dGhpcy5zZWxlY3RlZFJhbmdlLnNpemUoKTtDKz0xKXt0aGlz''@;'; + put 'put ''LmhpZ2hsaWdodC51c2VMYXllckxldmVsKEMpO3ZhciBJPXRoaXMuaGlnaGxpZ2h0LmNyZWF0ZU9yR2V0QXJlYSgpLGo9dGhpcy5oaWdobGlnaHQuY3JlYXRlT3JHZXRIZWFkZXIoKSx1ZT10aGlzLmhpZ2hsaWdodC5jcmVhdGVPckdldEFjdGl2ZUhlYWRlcigpO0kuY29tbWl0KCksai5jb21t''@;'; + put 'put ''aXQoKSx1ZS5jb21taXQoKX10aGlzLmhpZ2hsaWdodC51c2VMYXllckxldmVsKHkpfX19XSksZH0oKTtCMih1U2UsY2QpO2NvbnN0IE0kZT11U2U7ZnVuY3Rpb24gdXRlKGQsZyl7dmFyIGg9InN0cmluZyI9PXR5cGVvZiBkP1plZShkKTpkO2lmKHhsKGgpKXt2YXIgdj14bChnKSx5PXt9O3Jl''@;'; + put 'put ''dHVybiBHbChoLGZ1bmN0aW9uKEMsSSl7IkNFTExfVFlQRSIhPT1JJiYoIXZ8fHYmJiFvMShnLEkpKSYmKHlbSV09Qyl9KSx5fX1mdW5jdGlvbiBjdGUoZCl7cmV0dXJuIE51bWJlci5pc0ludGVnZXIoZCkmJmQ+PTB9ZnVuY3Rpb24gZnRlKGQsZyl7aWYoIWQoKSl0aHJvdyBuZXcgRXJyb3Io''@;'; + put 'put ''IkFzc2VydGlvbiBmYWlsZWQ6ICIuY29uY2F0KGcpKX1mdW5jdGlvbiBodGUoZCl7cmV0dXJuIG51bGw9PWR9ZnVuY3Rpb24gJHBlKGQpe3JldHVybigkcGU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZyl7cmV0''@;'; + put 'put ''dXJuIHR5cGVvZiBnfTpmdW5jdGlvbihnKXtyZXR1cm4gZyYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZy5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZyE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGd9KShkKX1jb25zdCBjU2U9ZnVuY3Rpb24oKXtyZXR1cm57YWN0aXZl''@;'; + put 'put ''SGVhZGVyQ2xhc3NOYW1lOiJodF9fYWN0aXZlX2hpZ2hsaWdodCIsYWxsb3dFbXB0eTohMCxhbGxvd0h0bWw6ITEsYWxsb3dJbnNlcnRDb2x1bW46ITAsYWxsb3dJbnNlcnRSb3c6ITAsYWxsb3dJbnZhbGlkOiEwLGFsbG93UmVtb3ZlQ29sdW1uOiEwLGFsbG93UmVtb3ZlUm93OiEwLGF1dG9D''@;'; + put 'put ''b2x1bW5TaXplOnZvaWQgMCxhdXRvUm93U2l6ZTp2b2lkIDAsYXV0b1dyYXBDb2w6ITEsYXV0b1dyYXBSb3c6ITEsYmluZFJvd3NXaXRoSGVhZGVyczp2b2lkIDAsY2VsbDpbXSxjZWxsczp2b2lkIDAsY2hlY2tlZFRlbXBsYXRlOnZvaWQgMCxjbGFzc05hbWU6dm9pZCAwLGNvbEhlYWRlcnM6''@;'; + put 'put ''bnVsbCxjb2xsYXBzaWJsZUNvbHVtbnM6dm9pZCAwLGNvbHVtbkhlYWRlckhlaWdodDp2b2lkIDAsY29sdW1uczp2b2lkIDAsY29sdW1uU29ydGluZzp2b2lkIDAsY29sdW1uU3VtbWFyeTp2b2lkIDAsY29sV2lkdGhzOnZvaWQgMCxjb21tZW50ZWRDZWxsQ2xhc3NOYW1lOiJodENvbW1lbnRD''@;'; + put 'put ''ZWxsIixjb21tZW50czohMSxjb250ZXh0TWVudTp2b2lkIDAsY29weWFibGU6ITAsY29weVBhc3RlOiEwLGNvcnJlY3RGb3JtYXQ6ITEsY3VycmVudENvbENsYXNzTmFtZTp2b2lkIDAsY3VycmVudEhlYWRlckNsYXNzTmFtZToiaHRfX2hpZ2hsaWdodCIsY3VycmVudFJvd0NsYXNzTmFtZTp2''@;'; + put 'put ''b2lkIDAsY3VzdG9tQm9yZGVyczohMSxkYXRhOnZvaWQgMCxkYXRhU2NoZW1hOnZvaWQgMCxkYXRlRm9ybWF0OiJERC9NTS9ZWVlZIixkYXRlUGlja2VyQ29uZmlnOnZvaWQgMCxkZWZhdWx0RGF0ZTp2b2lkIDAsZGlzYWJsZVZpc3VhbFNlbGVjdGlvbjohMSxkcmFnVG9TY3JvbGw6ITAsZHJv''@;'; + put 'put ''cGRvd25NZW51OnZvaWQgMCxlZGl0b3I6dm9pZCAwLGVudGVyQmVnaW5zRWRpdGluZzohMCxlbnRlck1vdmVzOntjb2w6MCxyb3c6MX0sZmlsbEhhbmRsZTp7YXV0b0luc2VydFJvdzohMX0sZmlsdGVyOiEwLGZpbHRlcmluZ0Nhc2VTZW5zaXRpdmU6ITEsZmlsdGVyczp2b2lkIDAsZml4ZWRD''@;'; + put 'put ''b2x1bW5zTGVmdDowLGZpeGVkQ29sdW1uc1N0YXJ0OjAsZml4ZWRSb3dzQm90dG9tOjAsZml4ZWRSb3dzVG9wOjAsZm9ybXVsYXM6dm9pZCAwLGZyYWdtZW50U2VsZWN0aW9uOiExLGhlaWdodDp2b2lkIDAsaGlkZGVuQ29sdW1uczp2b2lkIDAsaGlkZGVuUm93czp2b2lkIDAsaW52YWxpZENl''@;'; + put 'put ''bGxDbGFzc05hbWU6Imh0SW52YWxpZCIsaXNFbXB0eUNvbDpmdW5jdGlvbihnKXt2YXIgaCx2O2ZvcihoPTAsdj10aGlzLmNvdW50Um93cygpO2g8djtoKyspaWYoITE9PT1kYyh0aGlzLmdldERhdGFBdENlbGwoaCxnKSkpcmV0dXJuITE7cmV0dXJuITB9LGlzRW1wdHlSb3c6ZnVuY3Rpb24o''@;'; + put 'put ''Zyl7dmFyIGgsdix5LEM7Zm9yKGg9MCx2PXRoaXMuY291bnRDb2xzKCk7aDx2O2grKylpZighMT09PWRjKHk9dGhpcy5nZXREYXRhQXRDZWxsKGcsaCkpKXJldHVybiJvYmplY3QiPT09JHBlKHkpJiYoQz10aGlzLmdldENlbGxNZXRhKGcsaCksS2hlKHRoaXMuZ2V0U2NoZW1hKClbQy5wcm9w''@;'; + put 'put ''XSx5KSk7cmV0dXJuITB9LGxhYmVsOnZvaWQgMCxsYW5ndWFnZToiZW4tVVMiLGxheW91dERpcmVjdGlvbjoiaW5oZXJpdCIsbGljZW5zZUtleTp2b2lkIDAsbG9jYWxlOiJlbi1VUyIsbWFudWFsQ29sdW1uRnJlZXplOnZvaWQgMCxtYW51YWxDb2x1bW5Nb3ZlOnZvaWQgMCxtYW51YWxDb2x1''@;'; + put 'put ''bW5SZXNpemU6dm9pZCAwLG1hbnVhbFJvd01vdmU6dm9pZCAwLG1hbnVhbFJvd1Jlc2l6ZTp2b2lkIDAsbWF4Q29sczoxLzAsbWF4Um93czoxLzAsbWVyZ2VDZWxsczohMSxtaW5Db2xzOjAsbWluUm93czowLG1pblNwYXJlQ29sczowLG1pblNwYXJlUm93czowLG11bHRpQ29sdW1uU29ydGlu''@;'; + put 'put ''Zzp2b2lkIDAsbmVzdGVkSGVhZGVyczp2b2lkIDAsbmVzdGVkUm93czp2b2lkIDAsbm9Xb3JkV3JhcENsYXNzTmFtZToiaHROb1dyYXAiLG51bWVyaWNGb3JtYXQ6dm9pZCAwLG9ic2VydmVET01WaXNpYmlsaXR5OiEwLG91dHNpZGVDbGlja0Rlc2VsZWN0czohMCxwZXJzaXN0ZW50U3RhdGU6''@;'; + put 'put ''dm9pZCAwLHBsYWNlaG9sZGVyOnZvaWQgMCxwbGFjZWhvbGRlckNlbGxDbGFzc05hbWU6Imh0UGxhY2Vob2xkZXIiLHByZXZlbnRPdmVyZmxvdzohMSxwcmV2ZW50V2hlZWw6ITEscmVhZE9ubHk6ITEscmVhZE9ubHlDZWxsQ2xhc3NOYW1lOiJodERpbW1lZCIscmVuZGVyQWxsUm93czp2b2lk''@;'; + put 'put ''IDAscmVuZGVyZXI6dm9pZCAwLHJvd0hlYWRlcnM6dm9pZCAwLHJvd0hlYWRlcldpZHRoOnZvaWQgMCxyb3dIZWlnaHRzOnZvaWQgMCxzZWFyY2g6ITEsc2VsZWN0aW9uTW9kZToibXVsdGlwbGUiLHNlbGVjdE9wdGlvbnM6dm9pZCAwLHNraXBDb2x1bW5PblBhc3RlOiExLHNraXBSb3dPblBh''@;'; + put 'put ''c3RlOiExLHNvcnRCeVJlbGV2YW5jZTohMCxzb3VyY2U6dm9pZCAwLHN0YXJ0Q29sczo1LHN0YXJ0Um93czo1LHN0cmV0Y2hIOiJub25lIixzdHJpY3Q6dm9pZCAwLHRhYmxlQ2xhc3NOYW1lOnZvaWQgMCx0YWJNb3Zlczp7cm93OjAsY29sOjF9LHRpdGxlOnZvaWQgMCx0cmltRHJvcGRvd246''@;'; + put 'put ''ITAsdHJpbVJvd3M6dm9pZCAwLHRyaW1XaGl0ZXNwYWNlOiEwLHR5cGU6InRleHQiLHVuY2hlY2tlZFRlbXBsYXRlOnZvaWQgMCx1bmRvOnZvaWQgMCx2YWxpZGF0b3I6dm9pZCAwLHZpZXdwb3J0Q29sdW1uUmVuZGVyaW5nT2Zmc2V0OiJhdXRvIix2aWV3cG9ydFJvd1JlbmRlcmluZ09mZnNl''@;'; + put 'put ''dDoiYXV0byIsdmlzaWJsZVJvd3M6MTAsd2lkdGg6dm9pZCAwLHdvcmRXcmFwOiEwfX07ZnVuY3Rpb24gZlNlKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImlu''@;'; + put 'put ''IHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19ZnVuY3Rpb24gaFNlKGQsZyxoKXtyZXR1cm4gZyYmZlNlKGQucHJvdG90eXBlLGcpLGgmJmZTZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0p''@;'; + put 'put ''LGR9ZnVuY3Rpb24gZFNlKGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9dmFyIFQkZT1mdW5jdGlvbigpe2Z1bmN0aW9uIGQoZyl7ZFNlKHRoaXMsZCksdGhpcy5tZXRhQ3Rvcj1mdW5jdGlv''@;'; + put 'put ''biB4JGUoKXtyZXR1cm4gaFNlKGZ1bmN0aW9uIGQoKXtkU2UodGhpcyxkKX0pfSgpLHRoaXMubWV0YT10aGlzLm1ldGFDdG9yLnByb3RvdHlwZSxJMSh0aGlzLm1ldGEsY1NlKCkpLHRoaXMubWV0YS5pbnN0YW5jZT1nfXJldHVybiBoU2UoZCxbe2tleToiZ2V0TWV0YUNvbnN0cnVjdG9yIix2''@;'; + put 'put ''YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1ldGFDdG9yfX0se2tleToiZ2V0TWV0YSIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tZXRhfX0se2tleToidXBkYXRlTWV0YSIsdmFsdWU6ZnVuY3Rpb24oaCl7STEodGhpcy5tZXRhLGgpLEkxKHRoaXMubWV0YSx1dGUoaC50eXBl''@;'; + put 'put ''LGgpKX19XSksZH0oKTtmdW5jdGlvbiBwU2UoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9w''@;'; + put 'put ''ZXJ0eShkLHYua2V5LHYpfX12YXIgTCRlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZChnKXshZnVuY3Rpb24gSSRlKGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsZCk7dmFyIGg9Zy5n''@;'; + put 'put ''ZXRNZXRhQ29uc3RydWN0b3IoKTt0aGlzLm1ldGE9bmV3IGh9cmV0dXJuIGZ1bmN0aW9uIEQkZShkLGcsaCl7ZyYmcFNlKGQucHJvdG90eXBlLGcpLGgmJnBTZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShkLFt7a2V5OiJnZXRNZXRh''@;'; + put 'put ''Iix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1ldGF9fSx7a2V5OiJ1cGRhdGVNZXRhIix2YWx1ZTpmdW5jdGlvbihoKXtJMSh0aGlzLm1ldGEsaCksSTEodGhpcy5tZXRhLHV0ZShoLnR5cGUsaCkpfX1dKSxkfSgpO2Z1bmN0aW9uIGdTZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5n''@;'; + put 'put ''dGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fXZhciBxcGU9ZnVuY3Rpb24oZCl7ZnVuY3Rpb24gZyhoKXso''@;'; + put 'put ''ZnVuY3Rpb24gTyRlKGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KSh0aGlzLGcpLHRoaXMudmFsdWVGYWN0b3J5PWgsdGhpcy5kYXRhPVtdLHRoaXMuaW5kZXg9W10sdGhpcy5ob2xlcz1u''@;'; + put 'put ''ZXcgU2V0fXJldHVybiBmdW5jdGlvbiBSJGUoZCxnLGgpe2cmJmdTZShkLnByb3RvdHlwZSxnKSxoJiZnU2UoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oZyxbe2tleToib2J0YWluIix2YWx1ZTpmdW5jdGlvbih2KXtmdGUoZnVuY3Rp''@;'; + put 'put ''b24oKXtyZXR1cm4gY3RlKHYpfSwiRXhwZWN0aW5nIGFuIHVuc2lnbmVkIG51bWJlci4iKTt2YXIgQyx5PXRoaXMuX2dldFN0b3JhZ2VJbmRleEJ5S2V5KHYpO2lmKHk+PTApdm9pZCAwPT09KEM9dGhpcy5kYXRhW3ldKSYmKEM9dGhpcy52YWx1ZUZhY3RvcnkodiksdGhpcy5kYXRhW3ldPUMp''@;'; + put 'put ''O2Vsc2UgaWYoQz10aGlzLnZhbHVlRmFjdG9yeSh2KSx0aGlzLmhvbGVzLnNpemU+MCl7dmFyIEk9dGhpcy5ob2xlcy52YWx1ZXMoKS5uZXh0KCkudmFsdWU7dGhpcy5ob2xlcy5kZWxldGUoSSksdGhpcy5kYXRhW0ldPUMsdGhpcy5pbmRleFt2XT1JfWVsc2UgdGhpcy5kYXRhLnB1c2goQyks''@;'; + put 'put ''dGhpcy5pbmRleFt2XT10aGlzLmRhdGEubGVuZ3RoLTE7cmV0dXJuIEN9fSx7a2V5OiJpbnNlcnQiLHZhbHVlOmZ1bmN0aW9uKHYpe3ZhciB5LEM9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOjE7ZnRlKGZ1bmN0aW9uKCl7cmV0dXJuIGN0''@;'; + put 'put ''ZSh2KXx8aHRlKHYpfSwiRXhwZWN0aW5nIGFuIHVuc2lnbmVkIG51bWJlciBvciBudWxsL3VuZGVmaW5lZCBhcmd1bWVudC4iKTtmb3IodmFyIEk9W10saj10aGlzLmRhdGEubGVuZ3RoLHVlPTA7dWU8Qzt1ZSsrKUkucHVzaChqK3VlKSx0aGlzLmRhdGEucHVzaCh2b2lkIDApOyh5PXRoaXMu''@;'; + put 'put ''aW5kZXgpLnNwbGljZS5hcHBseSh5LFtodGUodik/dGhpcy5pbmRleC5sZW5ndGg6diwwXS5jb25jYXQoSSkpfX0se2tleToicmVtb3ZlIix2YWx1ZTpmdW5jdGlvbih2KXt2YXIgeT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06MTtmdGUo''@;'; + put 'put ''ZnVuY3Rpb24oKXtyZXR1cm4gY3RlKHYpfHxodGUodil9LCJFeHBlY3RpbmcgYW4gdW5zaWduZWQgbnVtYmVyIG9yIG51bGwvdW5kZWZpbmVkIGFyZ3VtZW50LiIpO2Zvcih2YXIgQz10aGlzLmluZGV4LnNwbGljZShodGUodik/dGhpcy5pbmRleC5sZW5ndGgteTp2LHkpLEk9MDtJPEMubGVu''@;'; + put 'put ''Z3RoO0krKyl7dmFyIGo9Q1tJXTsibnVtYmVyIj09dHlwZW9mIGomJnRoaXMuaG9sZXMuYWRkKGopfX19LHtrZXk6InNpemUiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZGF0YS5sZW5ndGgtdGhpcy5ob2xlcy5zaXplfX0se2tleToidmFsdWVzIix2YWx1ZTpmdW5jdGlvbigpe3Zh''@;'; + put 'put ''ciB2PXRoaXM7cmV0dXJuIGc0KHRoaXMuZGF0YSxmdW5jdGlvbih5LEMpe3JldHVybiF2LmhvbGVzLmhhcyhDKX0pW1N5bWJvbC5pdGVyYXRvcl0oKX19LHtrZXk6ImVudHJpZXMiLHZhbHVlOmZ1bmN0aW9uKCl7Zm9yKHZhciB2PVtdLHk9MDt5PHRoaXMuZGF0YS5sZW5ndGg7eSsrKXt2YXIg''@;'; + put 'put ''Qz10aGlzLl9nZXRLZXlCeVN0b3JhZ2VJbmRleCh5KTstMSE9PUMmJnYucHVzaChbQyx0aGlzLmRhdGFbeV1dKX12YXIgST0wO3JldHVybntuZXh0OmZ1bmN0aW9uKCl7aWYoSTx2Lmxlbmd0aCl7dmFyIHVlPXZbSV07cmV0dXJuIEkrPTEse3ZhbHVlOnVlLGRvbmU6ITF9fXJldHVybntkb25l''@;'; + put 'put ''OiEwfX19fX0se2tleToiY2xlYXIiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5kYXRhPVtdLHRoaXMuaW5kZXg9W10sdGhpcy5ob2xlcy5jbGVhcigpfX0se2tleToiX2dldFN0b3JhZ2VJbmRleEJ5S2V5Iix2YWx1ZTpmdW5jdGlvbih2KXtyZXR1cm4gdGhpcy5pbmRleC5sZW5ndGg+dj90aGlz''@;'; + put 'put ''LmluZGV4W3ZdOi0xfX0se2tleToiX2dldEtleUJ5U3RvcmFnZUluZGV4Iix2YWx1ZTpmdW5jdGlvbih2KXtyZXR1cm4gdGhpcy5pbmRleC5pbmRleE9mKHYpfX0se2tleTpTeW1ib2wuaXRlcmF0b3IsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lbnRyaWVzKCl9fV0pLGd9KCk7ZnVu''@;'; + put 'put ''Y3Rpb24gbVNlKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19''@;'; + put 'put ''dmFyIEYkZT1bImRhdGEiLCJ3aWR0aCJdLEgkZT1mdW5jdGlvbigpe2Z1bmN0aW9uIGQoZyl7dmFyIGg9dGhpczsoZnVuY3Rpb24gQiRlKGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KSh0''@;'; + put 'put ''aGlzLGQpLHRoaXMuZ2xvYmFsTWV0YT1nLHRoaXMubWV0YXM9bmV3IHFwZShmdW5jdGlvbigpe3JldHVybiBoLl9jcmVhdGVNZXRhKCl9KX1yZXR1cm4gZnVuY3Rpb24gUCRlKGQsZyxoKXtnJiZtU2UoZC5wcm90b3R5cGUsZyksaCYmbVNlKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQs''@;'; + put 'put ''InByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGQsW3trZXk6InVwZGF0ZU1ldGEiLHZhbHVlOmZ1bmN0aW9uKGgsdil7dmFyIHk9dGhpcy5nZXRNZXRhKGgpO0kxKHksdiksSTEoeSx1dGUodi50eXBlLHkpKX19LHtrZXk6ImNyZWF0ZUNvbHVtbiIsdmFsdWU6ZnVuY3Rpb24oaCx2KXt0aGlz''@;'; + put 'put ''Lm1ldGFzLmluc2VydChoLHYpfX0se2tleToicmVtb3ZlQ29sdW1uIix2YWx1ZTpmdW5jdGlvbihoLHYpe3RoaXMubWV0YXMucmVtb3ZlKGgsdil9fSx7a2V5OiJnZXRNZXRhIix2YWx1ZTpmdW5jdGlvbihoKXtyZXR1cm4gdGhpcy5tZXRhcy5vYnRhaW4oaCl9fSx7a2V5OiJnZXRNZXRhQ29u''@;'; + put 'put ''c3RydWN0b3IiLHZhbHVlOmZ1bmN0aW9uKGgpe3JldHVybiB0aGlzLm1ldGFzLm9idGFpbihoKS5jb25zdHJ1Y3Rvcn19LHtrZXk6ImNsZWFyQ2FjaGUiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5tZXRhcy5jbGVhcigpfX0se2tleToiX2NyZWF0ZU1ldGEiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0''@;'; + put 'put ''dXJuIGZ1bmN0aW9uIEUkZShkKXt2YXIgZz1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06W107ZnVuY3Rpb24gaCgpe31rdihoLGQpO2Zvcih2YXIgdj0wO3Y8Zy5sZW5ndGg7disrKWgucHJvdG90eXBlW2dbdl1dPXZvaWQgMDtyZXR1cm4g''@;'; + put 'put ''aH0odGhpcy5nbG9iYWxNZXRhLmdldE1ldGFDb25zdHJ1Y3RvcigpLEYkZSkucHJvdG90eXBlfX1dKSxkfSgpO2Z1bmN0aW9uIE4kZShkKXtyZXR1cm4gZnVuY3Rpb24geiRlKGQpe2lmKEFycmF5LmlzQXJyYXkoZCkpcmV0dXJuIGU2ZShkKX0oZCl8fGZ1bmN0aW9uIFokZShkKXtpZigidW5k''@;'; + put 'put ''ZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmbnVsbCE9ZFtTeW1ib2wuaXRlcmF0b3JdfHxudWxsIT1kWyJAQGl0ZXJhdG9yIl0pcmV0dXJuIEFycmF5LmZyb20oZCl9KGQpfHxmdW5jdGlvbiBqJGUoZCxnKXtpZihkKXtpZigic3RyaW5nIj09dHlwZW9mIGQpcmV0dXJuIGU2ZShkLGcpO3ZhciBo''@;'; + put 'put ''PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChkKS5zbGljZSg4LC0xKTtpZigiT2JqZWN0Ij09PWgmJmQuY29uc3RydWN0b3ImJihoPWQuY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1ofHwiU2V0Ij09PWgpcmV0dXJuIEFycmF5LmZyb20oZCk7aWYoIkFyZ3VtZW50cyI9PT1ofHwv''@;'; + put 'put ''Xig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChoKSlyZXR1cm4gZTZlKGQsZyl9fShkKXx8ZnVuY3Rpb24gViRlKCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIHNwcmVhZCBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRl''@;'; + put 'put ''ciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9ZnVuY3Rpb24gZTZlKGQsZyl7KG51bGw9PWd8fGc+ZC5sZW5ndGgpJiYoZz1kLmxlbmd0aCk7Zm9yKHZhciBoPTAsdj1uZXcgQXJyYXkoZyk7aDxn''@;'; + put 'put ''O2grKyl2W2hdPWRbaF07cmV0dXJuIHZ9ZnVuY3Rpb24gdlNlKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3Qu''@;'; + put 'put ''ZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19dmFyIFkkZT1mdW5jdGlvbigpe2Z1bmN0aW9uIGQoZyl7dmFyIGg9dGhpczsoZnVuY3Rpb24gRyRlKGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9u''@;'; + put 'put ''Iil9KSh0aGlzLGQpLHRoaXMuY29sdW1uTWV0YT1nLHRoaXMubWV0YXM9bmV3IHFwZShmdW5jdGlvbigpe3JldHVybiBoLl9jcmVhdGVSb3coKX0pfXJldHVybiBmdW5jdGlvbiBXJGUoZCxnLGgpe2cmJnZTZShkLnByb3RvdHlwZSxnKSxoJiZ2U2UoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVy''@;'; + put 'put ''dHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oZCxbe2tleToidXBkYXRlTWV0YSIsdmFsdWU6ZnVuY3Rpb24oaCx2LHkpe3ZhciBDPXRoaXMuZ2V0TWV0YShoLHYpO0kxKEMseSksSTEoQyx1dGUoeS50eXBlLEMpKX19LHtrZXk6ImNyZWF0ZVJvdyIsdmFsdWU6ZnVuY3Rpb24oaCx2''@;'; + put 'put ''KXt0aGlzLm1ldGFzLmluc2VydChoLHYpfX0se2tleToiY3JlYXRlQ29sdW1uIix2YWx1ZTpmdW5jdGlvbihoLHYpe2Zvcih2YXIgeT0wO3k8dGhpcy5tZXRhcy5zaXplKCk7eSsrKXRoaXMubWV0YXMub2J0YWluKHkpLmluc2VydChoLHYpfX0se2tleToicmVtb3ZlUm93Iix2YWx1ZTpmdW5j''@;'; + put 'put ''dGlvbihoLHYpe3RoaXMubWV0YXMucmVtb3ZlKGgsdil9fSx7a2V5OiJyZW1vdmVDb2x1bW4iLHZhbHVlOmZ1bmN0aW9uKGgsdil7Zm9yKHZhciB5PTA7eTx0aGlzLm1ldGFzLnNpemUoKTt5KyspdGhpcy5tZXRhcy5vYnRhaW4oeSkucmVtb3ZlKGgsdil9fSx7a2V5OiJnZXRNZXRhIix2YWx1''@;'; + put 'put ''ZTpmdW5jdGlvbihoLHYseSl7dmFyIEM9dGhpcy5tZXRhcy5vYnRhaW4oaCkub2J0YWluKHYpO3JldHVybiB2b2lkIDA9PT15P0M6Q1t5XX19LHtrZXk6InNldE1ldGEiLHZhbHVlOmZ1bmN0aW9uKGgsdix5LEMpe3RoaXMubWV0YXMub2J0YWluKGgpLm9idGFpbih2KVt5XT1DfX0se2tleToi''@;'; + put 'put ''cmVtb3ZlTWV0YSIsdmFsdWU6ZnVuY3Rpb24oaCx2LHkpe2RlbGV0ZSB0aGlzLm1ldGFzLm9idGFpbihoKS5vYnRhaW4odilbeV19fSx7a2V5OiJnZXRNZXRhcyIsdmFsdWU6ZnVuY3Rpb24oKXtmb3IodmFyIGg9W10sdj1BcnJheS5mcm9tKHRoaXMubWV0YXMudmFsdWVzKCkpLHk9MDt5PHYu''@;'; + put 'put ''bGVuZ3RoO3krKyloLnB1c2guYXBwbHkoaCxOJGUodlt5XS52YWx1ZXMoKSkpO3JldHVybiBofX0se2tleToiZ2V0TWV0YXNBdFJvdyIsdmFsdWU6ZnVuY3Rpb24oaCl7ZnRlKGZ1bmN0aW9uKCl7cmV0dXJuIGN0ZShoKX0sIkV4cGVjdGluZyBhbiB1bnNpZ25lZCBudW1iZXIuIik7dmFyIHY9''@;'; + put 'put ''bmV3IE1hcCh0aGlzLm1ldGFzKTtyZXR1cm4gdi5oYXMoaCk/QXJyYXkuZnJvbSh2LmdldChoKS52YWx1ZXMoKSk6W119fSx7a2V5OiJjbGVhckNhY2hlIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMubWV0YXMuY2xlYXIoKX19LHtrZXk6Il9jcmVhdGVSb3ciLHZhbHVlOmZ1bmN0aW9uKCl7dmFy''@;'; + put 'put ''IGg9dGhpcztyZXR1cm4gbmV3IHFwZShmdW5jdGlvbih2KXtyZXR1cm4gaC5fY3JlYXRlTWV0YSh2KX0pfX0se2tleToiX2NyZWF0ZU1ldGEiLHZhbHVlOmZ1bmN0aW9uKGgpe3JldHVybiBuZXcodGhpcy5jb2x1bW5NZXRhLmdldE1ldGFDb25zdHJ1Y3RvcihoKSl9fV0pLGR9KCk7ZnVuY3Rp''@;'; + put 'put ''b24gVSRlKGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9ZnVuY3Rpb24gQVNlKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51''@;'; + put 'put ''bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19dmFyIHlTZT1mdW5jdGlvbigpe2Z1bmN0aW9uIGQoZyl7dmFyIGg9dGhpcyx2PWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAw''@;'; + put 'put ''IT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp7fSx5PWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXTpbXTtVJGUodGhpcyxkKSx0aGlzLmhvdD1nLHRoaXMuZ2xvYmFsTWV0YT1uZXcgVCRlKGcpLHRoaXMudGFibGVNZXRhPW5ldyBMJGUo''@;'; + put 'put ''dGhpcy5nbG9iYWxNZXRhKSx0aGlzLmNvbHVtbk1ldGE9bmV3IEgkZSh0aGlzLmdsb2JhbE1ldGEpLHRoaXMuY2VsbE1ldGE9bmV3IFkkZSh0aGlzLmNvbHVtbk1ldGEpLHkuZm9yRWFjaChmdW5jdGlvbihDKXtyZXR1cm4gbmV3IEMoaCl9KSx0aGlzLmdsb2JhbE1ldGEudXBkYXRlTWV0YSh2''@;'; + put 'put ''KX1yZXR1cm4gZnVuY3Rpb24gUSRlKGQsZyxoKXtnJiZBU2UoZC5wcm90b3R5cGUsZyksaCYmQVNlKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGQsW3trZXk6ImdldEdsb2JhbE1ldGEiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRo''@;'; + put 'put ''aXMuZ2xvYmFsTWV0YS5nZXRNZXRhKCl9fSx7a2V5OiJ1cGRhdGVHbG9iYWxNZXRhIix2YWx1ZTpmdW5jdGlvbihoKXt0aGlzLmdsb2JhbE1ldGEudXBkYXRlTWV0YShoKX19LHtrZXk6ImdldFRhYmxlTWV0YSIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50YWJsZU1ldGEuZ2V0TWV0''@;'; + put 'put ''YSgpfX0se2tleToidXBkYXRlVGFibGVNZXRhIix2YWx1ZTpmdW5jdGlvbihoKXt0aGlzLnRhYmxlTWV0YS51cGRhdGVNZXRhKGgpfX0se2tleToiZ2V0Q29sdW1uTWV0YSIsdmFsdWU6ZnVuY3Rpb24oaCl7cmV0dXJuIHRoaXMuY29sdW1uTWV0YS5nZXRNZXRhKGgpfX0se2tleToidXBkYXRl''@;'; + put 'put ''Q29sdW1uTWV0YSIsdmFsdWU6ZnVuY3Rpb24oaCx2KXt0aGlzLmNvbHVtbk1ldGEudXBkYXRlTWV0YShoLHYpfX0se2tleToiZ2V0Q2VsbE1ldGEiLHZhbHVlOmZ1bmN0aW9uKGgsdix5KXt2YXIgQz15LnZpc3VhbFJvdyxJPXkudmlzdWFsQ29sdW1uLGo9dGhpcy5jZWxsTWV0YS5nZXRNZXRh''@;'; + put 'put ''KGgsdik7cmV0dXJuIGoudmlzdWFsUm93PUMsai52aXN1YWxDb2w9SSxqLnJvdz1oLGouY29sPXYsdGhpcy5ydW5Mb2NhbEhvb2tzKCJhZnRlckdldENlbGxNZXRhIixqKSxqfX0se2tleToiZ2V0Q2VsbE1ldGFLZXlWYWx1ZSIsdmFsdWU6ZnVuY3Rpb24oaCx2LHkpe2lmKCJzdHJpbmciIT10''@;'; + put 'put ''eXBlb2YgeSl0aHJvdyBuZXcgRXJyb3IoIlRoZSBwYXNzZWQgY2VsbCBtZXRhIG9iamVjdCBrZXkgaXMgbm90IGEgc3RyaW5nIik7cmV0dXJuIHRoaXMuY2VsbE1ldGEuZ2V0TWV0YShoLHYseSl9fSx7a2V5OiJzZXRDZWxsTWV0YSIsdmFsdWU6ZnVuY3Rpb24oaCx2LHksQyl7dGhpcy5jZWxs''@;'; + put 'put ''TWV0YS5zZXRNZXRhKGgsdix5LEMpfX0se2tleToidXBkYXRlQ2VsbE1ldGEiLHZhbHVlOmZ1bmN0aW9uKGgsdix5KXt0aGlzLmNlbGxNZXRhLnVwZGF0ZU1ldGEoaCx2LHkpfX0se2tleToicmVtb3ZlQ2VsbE1ldGEiLHZhbHVlOmZ1bmN0aW9uKGgsdix5KXt0aGlzLmNlbGxNZXRhLnJlbW92''@;'; + put 'put ''ZU1ldGEoaCx2LHkpfX0se2tleToiZ2V0Q2VsbHNNZXRhIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmNlbGxNZXRhLmdldE1ldGFzKCl9fSx7a2V5OiJnZXRDZWxsc01ldGFBdFJvdyIsdmFsdWU6ZnVuY3Rpb24oaCl7cmV0dXJuIHRoaXMuY2VsbE1ldGEuZ2V0TWV0YXNBdFJvdyho''@;'; + put 'put ''KX19LHtrZXk6ImNyZWF0ZVJvdyIsdmFsdWU6ZnVuY3Rpb24oaCl7dmFyIHY9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOjE7dGhpcy5jZWxsTWV0YS5jcmVhdGVSb3coaCx2KX19LHtrZXk6InJlbW92ZVJvdyIsdmFsdWU6ZnVuY3Rpb24o''@;'; + put 'put ''aCl7dmFyIHY9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOjE7dGhpcy5jZWxsTWV0YS5yZW1vdmVSb3coaCx2KX19LHtrZXk6ImNyZWF0ZUNvbHVtbiIsdmFsdWU6ZnVuY3Rpb24oaCl7dmFyIHY9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lk''@;'; + put 'put ''IDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOjE7dGhpcy5jZWxsTWV0YS5jcmVhdGVDb2x1bW4oaCx2KSx0aGlzLmNvbHVtbk1ldGEuY3JlYXRlQ29sdW1uKGgsdil9fSx7a2V5OiJyZW1vdmVDb2x1bW4iLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB2PWFyZ3VtZW50cy5sZW5ndGg+MSYm''@;'; + put 'put ''dm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXToxO3RoaXMuY2VsbE1ldGEucmVtb3ZlQ29sdW1uKGgsdiksdGhpcy5jb2x1bW5NZXRhLnJlbW92ZUNvbHVtbihoLHYpfX0se2tleToiY2xlYXJDZWxsc0NhY2hlIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuY2VsbE1ldGEuY2xlYXJD''@;'; + put 'put ''YWNoZSgpfX0se2tleToiY2xlYXJDYWNoZSIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmNlbGxNZXRhLmNsZWFyQ2FjaGUoKSx0aGlzLmNvbHVtbk1ldGEuY2xlYXJDYWNoZSgpfX1dKSxkfSgpO2Z1bmN0aW9uIHdTZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hd''@;'; + put 'put ''O3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fUIyKHlTZSxjZCk7dmFyIEskZT1mdW5jdGlvbigpe2Z1bmN0aW9uIGQoZyl7dmFyIGg9dGhp''@;'; + put 'put ''czsoZnVuY3Rpb24gSiRlKGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KSh0aGlzLGQpLHRoaXMubWV0YU1hbmFnZXI9Zyx0aGlzLm1ldGFTeW5jTWVtbz1uZXcgTWFwLGcuYWRkTG9jYWxI''@;'; + put 'put ''b29rKCJhZnRlckdldENlbGxNZXRhIixmdW5jdGlvbih2KXtyZXR1cm4gaC5leHRlbmRDZWxsTWV0YSh2KX0pLHpvLmdldFNpbmdsZXRvbigpLmFkZCgiYmVmb3JlUmVuZGVyIixmdW5jdGlvbih2KXt2JiZoLm1ldGFTeW5jTWVtby5jbGVhcigpfSx0aGlzLm1ldGFNYW5hZ2VyLmhvdCl9cmV0''@;'; + put 'put ''dXJuIGZ1bmN0aW9uIFgkZShkLGcsaCl7ZyYmd1NlKGQucHJvdG90eXBlLGcpLGgmJndTZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShkLFt7a2V5OiJleHRlbmRDZWxsTWV0YSIsdmFsdWU6ZnVuY3Rpb24oaCl7dmFyIHYseT1oLnJv''@;'; + put 'put ''dyxDPWguY29sO2lmKG51bGw9PT0odj10aGlzLm1ldGFTeW5jTWVtby5nZXQoeSkpfHx2b2lkIDA9PT12fHwhdi5oYXMoQykpe3ZhciBJPWgudmlzdWFsUm93LGo9aC52aXN1YWxDb2wsdWU9dGhpcy5tZXRhTWFuYWdlci5ob3QsX2U9dWUuY29sVG9Qcm9wKGopO2gucHJvcD1fZSx1ZS5ydW5I''@;'; + put 'put ''b29rcygiYmVmb3JlR2V0Q2VsbE1ldGEiLEksaixoKTt2YXIgQmU9bzEoaCwidHlwZSIpP2gudHlwZTpudWxsLE5lPVUyKGguY2VsbHMpP2guY2VsbHMoeSxDLF9lKTpudWxsO2lmKEJlKWlmKE5lKXt2YXIgS2U7TmUudHlwZT1udWxsIT09KEtlPU5lLnR5cGUpJiZ2b2lkIDAhPT1LZT9LZTpC''@;'; + put 'put ''ZX1lbHNlIE5lPXt0eXBlOkJlfTtOZSYmdGhpcy5tZXRhTWFuYWdlci51cGRhdGVDZWxsTWV0YSh5LEMsTmUpLHVlLnJ1bkhvb2tzKCJhZnRlckdldENlbGxNZXRhIixJLGosaCksdGhpcy5tZXRhU3luY01lbW8uaGFzKHkpfHx0aGlzLm1ldGFTeW5jTWVtby5zZXQoeSxuZXcgU2V0KSx0aGlz''@;'; + put 'put ''Lm1ldGFTeW5jTWVtby5nZXQoeSkuYWRkKEMpfX19XSksZH0oKTtmdW5jdGlvbiBiU2UoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFi''@;'; + put 'put ''bGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX12YXIgZXFlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZChnKXsoZnVuY3Rpb24gJCRlKGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0''@;'; + put 'put ''aW9uIil9KSh0aGlzLGQpLHRoaXMubWV0YU1hbmFnZXI9Zyx0aGlzLnVzYWdlVHJhY2tlcj1uZXcgU2V0LHRoaXMucHJvcERlc2NyaXB0b3JzPW5ldyBNYXAoW1siZml4ZWRDb2x1bW5zTGVmdCIse3RhcmdldDoiZml4ZWRDb2x1bW5zU3RhcnQiLG9uQ2hhbmdlOmZ1bmN0aW9uKHYpe2lmKHRo''@;'; + put 'put ''aXMubWV0YU1hbmFnZXIuaG90LmlzUnRsKCkmJiJmaXhlZENvbHVtbnNMZWZ0Ij09PXYpdGhyb3cgbmV3IEVycm9yKCJUaGUgYGZpeGVkQ29sdW1uc0xlZnRgIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIFJUTC4gUGxlYXNlIHVzZSBvcHRpb24gYGZpeGVkQ29sdW1uc1N0YXJ0YC4iKTtpZih0aGlz''@;'; + put 'put ''LnVzYWdlVHJhY2tlci5oYXMoImZpeGVkQ29sdW1uc0xlZnQiKSYmdGhpcy51c2FnZVRyYWNrZXIuaGFzKCJmaXhlZENvbHVtbnNTdGFydCIpKXRocm93IG5ldyBFcnJvcigiVGhlIGBmaXhlZENvbHVtbnNMZWZ0YCBhbmQgYGZpeGVkQ29sdW1uc1N0YXJ0YCBzaG91bGQgbm90IGJlIHVzZWQg''@;'; + put 'put ''dG9nZXRoZXIuIFBsZWFzZSB1c2Ugb25seSB0aGUgb3B0aW9uIGBmaXhlZENvbHVtbnNTdGFydGAuIil9fV0sWyJsYXlvdXREaXJlY3Rpb24iLHtvbkNoYW5nZTpmdW5jdGlvbih2LHksQyl7aWYoIUMpdGhyb3cgbmV3IEVycm9yKCJUaGUgYCIuY29uY2F0KHYsImAgb3B0aW9uIGNhbiBub3Qg''@;'; + put 'put ''YmUgdXBkYXRlZCBhZnRlciB0aGUgSGFuZHNvbnRhYmxlIGlzIGluaXRpYWxpemVkLiIpKX19XV0pLHRoaXMuZXh0ZW5kTWV0YVByb3BzKCl9cmV0dXJuIGZ1bmN0aW9uIHEkZShkLGcsaCl7ZyYmYlNlKGQucHJvdG90eXBlLGcpLGgmJmJTZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShk''@;'; + put 'put ''LCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShkLFt7a2V5OiJleHRlbmRNZXRhUHJvcHMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9dGhpczt0aGlzLnByb3BEZXNjcmlwdG9ycy5mb3JFYWNoKGZ1bmN0aW9uKHYseSl7dmFyIEM9di50YXJnZXQsST12Lm9uQ2hhbmdlLGo9dm9pZCAwPT09''@;'; + put 'put ''ST9mdW5jdGlvbigpe306SSx1ZT0ic3RyaW5nIj09dHlwZW9mIEMsX2U9dWU/Qzp5LEJlPSJfIi5jb25jYXQoX2UpO2gubWV0YU1hbmFnZXIuZ2xvYmFsTWV0YS5tZXRhW0JlXT1oLm1ldGFNYW5hZ2VyLmdsb2JhbE1ldGEubWV0YVtfZV0saC5pbnN0YWxsUHJvcFdhdGNoZXIoeSxCZSxqKSx1''@;'; + put 'put ''ZSYmaC5pbnN0YWxsUHJvcFdhdGNoZXIoQyxCZSxqKX0pfX0se2tleToiaW5zdGFsbFByb3BXYXRjaGVyIix2YWx1ZTpmdW5jdGlvbihoLHYseSl7dmFyIEM9dGhpcztPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcy5tZXRhTWFuYWdlci5nbG9iYWxNZXRhLm1ldGEsaCx7Z2V0OmZ1bmN0aW9u''@;'; + put 'put ''KCl7cmV0dXJuIHRoaXNbdl19LHNldDpmdW5jdGlvbihqKXt2YXIgdWU9IUMudXNhZ2VUcmFja2VyLmhhcyhoKTtDLnVzYWdlVHJhY2tlci5hZGQoaCkseS5jYWxsKEMsaCxqLHVlKSx0aGlzW3ZdPWp9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSl9fV0pLGR9KCksX1NlPShMKDg1''@;'; + put 'put ''NzM1KSwvXihcclxufFxuXHJ8XHJ8XG4pLyksdHFlPS9eW15cdFxyXG5dKy8sQ1NlPS9eXHQvO2Z1bmN0aW9uIGN6KGQpe3ZhciBnLGgsdix5LEksQz0iIjtmb3IoZz0wLGg9ZC5sZW5ndGg7ZzxoO2crPTEpe2Zvcih5PWRbZ10ubGVuZ3RoLHY9MDt2PHk7dis9MSl2PjAmJihDKz0iXHQiKSwi''@;'; + put 'put ''c3RyaW5nIj09dHlwZW9mKEk9ZFtnXVt2XSk/SS5pbmRleE9mKCJcbiIpPi0xP0MrPSciJy5jb25jYXQoSS5yZXBsYWNlKC8iL2csJyIiJyksJyInKTpDKz1JOkMrPW51bGw9PUk/IiI6STtnIT09aC0xJiYoQys9IlxuIil9cmV0dXJuIEN9ZnVuY3Rpb24gdDZlKGQpe3JldHVybih0NmU9ImZ1''@;'; + put 'put ''bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZyl7cmV0dXJuIHR5cGVvZiBnfTpmdW5jdGlvbihnKXtyZXR1cm4gZyYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZy5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZyE9PVN5''@;'; + put 'put ''bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGd9KShkKX1mdW5jdGlvbiBrU2UoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFi''@;'; + put 'put ''bGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX12YXIgb3FlPXFaKCJjb3B5YWJsZSIsITEpLGFxZT1mdW5jdGlvbigpe2Z1bmN0aW9uIGQoZyxoLHYpeyhmdW5jdGlvbiBycWUoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5u''@;'; + put 'put ''b3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0pKHRoaXMsZCksdGhpcy5pbnN0YW5jZT1nLHRoaXMudGFibGVNZXRhPXYsdGhpcy5kYXRhU291cmNlPWgsdGhpcy5kdWNrU2NoZW1hPXRoaXMuZGF0YVNvdXJjZSYmdGhpcy5kYXRhU291cmNlWzBdP2FPKHRoaXMuZGF0YVNvdXJjZVsw''@;'; + put 'put ''XSk6e30sdGhpcy5jb2xUb1Byb3BDYWNoZT12b2lkIDAsdGhpcy5wcm9wVG9Db2xDYWNoZT12b2lkIDAsdGhpcy5jcmVhdGVNYXAoKX1yZXR1cm4gZnVuY3Rpb24gaXFlKGQsZyxoKXtnJiZrU2UoZC5wcm90b3R5cGUsZyksaCYma1NlKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInBy''@;'; + put 'put ''b3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGQsW3trZXk6ImNyZWF0ZU1hcCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD10aGlzLmdldFNjaGVtYSgpO2lmKHZvaWQgMD09PWgpdGhyb3cgbmV3IEVycm9yKCJ0cnlpbmcgdG8gY3JlYXRlIGBjb2x1bW5zYCBkZWZpbml0aW9uIGJ1dCB5b3UgZGlk''@;'; + put 'put ''bid0IHByb3ZpZGUgYHNjaGVtYWAgbm9yIGBkYXRhYCIpO3ZhciB5LHY9dGhpcy50YWJsZU1ldGEuY29sdW1ucztpZih0aGlzLmNvbFRvUHJvcENhY2hlPVtdLHRoaXMucHJvcFRvQ29sQ2FjaGU9bmV3IE1hcCx2KXt2YXIgQz0wLEk9MCxqPSExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiB2KXt2''@;'; + put 'put ''YXIgdWU9SnEoaCk7Qz11ZT4wP3VlOnRoaXMuY291bnRGaXJzdFJvd0tleXMoKSxqPSEwfWVsc2UgQz1NYXRoLm1pbih0aGlzLnRhYmxlTWV0YS5tYXhDb2xzLHYubGVuZ3RoKTtmb3IoeT0wO3k8Qzt5Kyspe3ZhciBCZT1qP3YoeSk6dlt5XTtpZih4bChCZSkpe2lmKHZvaWQgMCE9PUJlLmRh''@;'; + put 'put ''dGEpe3ZhciBOZT1qP0k6eTt0aGlzLmNvbFRvUHJvcENhY2hlW05lXT1CZS5kYXRhLHRoaXMucHJvcFRvQ29sQ2FjaGUuc2V0KEJlLmRhdGEsTmUpfUkrPTF9fX1lbHNlIHRoaXMucmVjdXJzaXZlRHVja0NvbHVtbnMoaCl9fSx7a2V5OiJjb3VudEZpcnN0Um93S2V5cyIsdmFsdWU6ZnVuY3Rp''@;'; + put 'put ''b24oKXtyZXR1cm4gUWRlKHRoaXMuZGF0YVNvdXJjZSl9fSx7a2V5OiJyZWN1cnNpdmVEdWNrQ29sdW1ucyIsdmFsdWU6ZnVuY3Rpb24oaCx2LHkpe3ZhciB1ZSxDPXRoaXMsST12LGo9eTtyZXR1cm4gdm9pZCAwPT09SSYmKEk9MCxqPSIiKSwib2JqZWN0Ij09PXQ2ZShoKSYmIUFycmF5Lmlz''@;'; + put 'put ''QXJyYXkoaCkmJkdsKGgsZnVuY3Rpb24oX2UsQmUpe251bGw9PT1fZT8oQy5jb2xUb1Byb3BDYWNoZS5wdXNoKHVlPWorQmUpLEMucHJvcFRvQ29sQ2FjaGUuc2V0KHVlLEkpLEkrPTEpOkk9Qy5yZWN1cnNpdmVEdWNrQ29sdW1ucyhfZSxJLCIiLmNvbmNhdChCZSwiLiIpKX0pLEl9fSx7a2V5''@;'; + put 'put ''OiJjb2xUb1Byb3AiLHZhbHVlOmZ1bmN0aW9uKGgpe2lmKCExPT09TnVtYmVyLmlzSW50ZWdlcihoKSlyZXR1cm4gaDt2YXIgdj10aGlzLmluc3RhbmNlLnRvUGh5c2ljYWxDb2x1bW4oaCk7cmV0dXJuIG51bGw9PT12P2g6dGhpcy5jb2xUb1Byb3BDYWNoZSYmVG8odGhpcy5jb2xUb1Byb3BD''@;'; + put 'put ''YWNoZVt2XSk/dGhpcy5jb2xUb1Byb3BDYWNoZVt2XTp2fX0se2tleToicHJvcFRvQ29sIix2YWx1ZTpmdW5jdGlvbihoKXt2YXIgdj10aGlzLnByb3BUb0NvbENhY2hlLmdldChoKTtpZihUbyh2KSlyZXR1cm4gdGhpcy5pbnN0YW5jZS50b1Zpc3VhbENvbHVtbih2KTt2YXIgeT10aGlzLmlu''@;'; + put 'put ''c3RhbmNlLnRvVmlzdWFsQ29sdW1uKGgpO3JldHVybiBudWxsPT09eT9oOnl9fSx7a2V5OiJnZXRTY2hlbWEiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9dGhpcy50YWJsZU1ldGEuZGF0YVNjaGVtYTtyZXR1cm4gaD8iZnVuY3Rpb24iPT10eXBlb2YgaD9oKCk6aDp0aGlzLmR1Y2tTY2hlbWF9''@;'; + put 'put ''fSx7a2V5OiJjcmVhdGVSb3ciLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB2PXRoaXMseT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06MSxDPWFyZ3VtZW50cy5sZW5ndGg+Mj9hcmd1bWVudHNbMl06dm9pZCAwLEk9dGhpcy5pbnN0YW5jZS5j''@;'; + put 'put ''b3VudFNvdXJjZVJvd3MoKSxqPUksdWU9MCxfZT1oOygibnVtYmVyIiE9dHlwZW9mIF9lfHxfZT49SSkmJihfZT1JKSxfZTx0aGlzLmluc3RhbmNlLmNvdW50Um93cygpJiYoaj10aGlzLmluc3RhbmNlLnRvUGh5c2ljYWxSb3coX2UpKTt2YXIgQmU9dGhpcy5pbnN0YW5jZS5ydW5Ib29rcygi''@;'; + put 'put ''YmVmb3JlQ3JlYXRlUm93IixfZSx5LEMpO2lmKCExPT09QmV8fG51bGw9PT1qKXJldHVybiAwO2Zvcih2YXIgTmU9dGhpcy50YWJsZU1ldGEubWF4Um93cyxLZT10aGlzLmluc3RhbmNlLmNvdW50Q29scygpLGR0PVtdLE90PWZ1bmN0aW9uKCl7dmFyIGZuPW51bGw7ImFycmF5Ij09PXYuaW5z''@;'; + put 'put ''dGFuY2UuZGF0YVR5cGU/di50YWJsZU1ldGEuZGF0YVNjaGVtYT9mbj1naCh2LmdldFNjaGVtYSgpKTooZm49W10saWEoS2UtMSxmdW5jdGlvbigpe3JldHVybiBmbi5wdXNoKG51bGwpfSkpOiJmdW5jdGlvbiI9PT12Lmluc3RhbmNlLmRhdGFUeXBlP2ZuPXYudGFibGVNZXRhLmRhdGFTY2hl''@;'; + put 'put ''bWEoX2UrdWUpOkxaKGZuPXt9LHYuZ2V0U2NoZW1hKCkpLGR0LnB1c2goZm4pLHVlKz0xfTt1ZTx5JiZJK3VlPE5lOylPdCgpO3JldHVybiB0aGlzLmluc3RhbmNlLnJvd0luZGV4TWFwcGVyLmluc2VydEluZGV4ZXMoX2UsdWUpLHRoaXMuc3BsaWNlRGF0YS5hcHBseSh0aGlzLFtqLDBdLmNv''@;'; + put 'put ''bmNhdChkdCkpLHRoaXMuaW5zdGFuY2UucnVuSG9va3MoImFmdGVyQ3JlYXRlUm93IixfZSx1ZSxDKSx0aGlzLmluc3RhbmNlLmZvcmNlRnVsbFJlbmRlcj0hMCx1ZX19LHtrZXk6ImNyZWF0ZUNvbCIsdmFsdWU6ZnVuY3Rpb24oaCl7dmFyIHY9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAh''@;'; + put 'put ''PT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOjEseT1hcmd1bWVudHMubGVuZ3RoPjI/YXJndW1lbnRzWzJdOnZvaWQgMDtpZighdGhpcy5pbnN0YW5jZS5pc0NvbHVtbk1vZGlmaWNhdGlvbkFsbG93ZWQoKSl0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBjcmVhdGUgbmV3IGNvbHVtbi4gV2hl''@;'; + put 'put ''biBkYXRhIHNvdXJjZSBpbiBhbiBvYmplY3QsIHlvdSBjYW4gb25seSBoYXZlIGFzIG11Y2ggY29sdW1ucyBhcyBkZWZpbmVkIGluIGZpcnN0IGRhdGEgcm93LCBkYXRhIHNjaGVtYSBvciBpbiB0aGUgJ2NvbHVtbnMnIHNldHRpbmcuSWYgeW91IHdhbnQgdG8gYmUgYWJsZSB0byBhZGQgbmV3''@;'; + put 'put ''IGNvbHVtbnMsIHlvdSBoYXZlIHRvIHVzZSBhcnJheSBkYXRhc291cmNlLiIpO3ZhciBDPXRoaXMuZGF0YVNvdXJjZSxJPXRoaXMudGFibGVNZXRhLm1heENvbHMsaj1oOygibnVtYmVyIiE9dHlwZW9mIGp8fGo+PXRoaXMuaW5zdGFuY2UuY291bnRTb3VyY2VDb2xzKCkpJiYoaj10aGlzLmlu''@;'; + put 'put ''c3RhbmNlLmNvdW50U291cmNlQ29scygpKTt2YXIgdWU9dGhpcy5pbnN0YW5jZS5ydW5Ib29rcygiYmVmb3JlQ3JlYXRlQ29sIixqLHYseSk7aWYoITE9PT11ZSlyZXR1cm4gMDt2YXIgX2U9dGhpcy5pbnN0YW5jZS5jb3VudFNvdXJjZUNvbHMoKTtqPHRoaXMuaW5zdGFuY2UuY291bnRDb2xz''@;'; + put 'put ''KCkmJihfZT10aGlzLmluc3RhbmNlLnRvUGh5c2ljYWxDb2x1bW4oaikpO2Zvcih2YXIgQmU9dGhpcy5pbnN0YW5jZS5jb3VudFNvdXJjZVJvd3MoKSxOZT10aGlzLmluc3RhbmNlLmNvdW50Q29scygpLEtlPTAsZHQ9X2U7S2U8diYmTmU8STspe2lmKCJudW1iZXIiIT10eXBlb2Yganx8aj49''@;'; + put 'put ''TmUpaWYoQmU+MClmb3IodmFyIE90PTA7T3Q8QmU7T3QrPTEpdm9pZCAwPT09Q1tPdF0mJihDW090XT1bXSksQ1tPdF0ucHVzaChudWxsKTtlbHNlIEMucHVzaChbbnVsbF0pO2Vsc2UgZm9yKHZhciAkdD0wOyR0PEJlOyR0KyspQ1skdF0uc3BsaWNlKGR0LDAsbnVsbCk7S2UrPTEsZHQrPTEs''@;'; + put 'put ''TmUrPTF9cmV0dXJuIHRoaXMuaW5zdGFuY2UuY29sdW1uSW5kZXhNYXBwZXIuaW5zZXJ0SW5kZXhlcyhqLEtlKSx0aGlzLmluc3RhbmNlLnJ1bkhvb2tzKCJhZnRlckNyZWF0ZUNvbCIsaixLZSx5KSx0aGlzLmluc3RhbmNlLmZvcmNlRnVsbFJlbmRlcj0hMCxLZX19LHtrZXk6InJlbW92ZVJv''@;'; + put 'put ''dyIsdmFsdWU6ZnVuY3Rpb24oaCl7dmFyIHY9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOjEseT1hcmd1bWVudHMubGVuZ3RoPjI/YXJndW1lbnRzWzJdOnZvaWQgMCxDPU51bWJlci5pc0ludGVnZXIoaCk/aDotdixJPXRoaXMudmlzdWFs''@;'; + put 'put ''Um93c1RvUGh5c2ljYWwoQyx2KSxqPXRoaXMuaW5zdGFuY2UuY291bnRTb3VyY2VSb3dzKCksdWU9dGhpcy5pbnN0YW5jZS5ydW5Ib29rcygiYmVmb3JlUmVtb3ZlUm93IixDPShqK0MpJWosSS5sZW5ndGgsSSx5KTtpZighMT09PXVlKXJldHVybiExO3ZhciBfZT1JLmxlbmd0aDtpZih0aGlz''@;'; + put 'put ''LmZpbHRlckRhdGEoQyxfZSxJKSxDPHRoaXMuaW5zdGFuY2UuY291bnRSb3dzKCkpe3RoaXMuaW5zdGFuY2Uucm93SW5kZXhNYXBwZXIucmVtb3ZlSW5kZXhlcyhJKTt2YXIgQmU9VG8odGhpcy50YWJsZU1ldGEuY29sdW1ucyl8fFRvKHRoaXMudGFibGVNZXRhLmRhdGFTY2hlbWEpOzA9PT10''@;'; + put 'put ''aGlzLmluc3RhbmNlLnJvd0luZGV4TWFwcGVyLmdldE5vdFRyaW1tZWRJbmRleGVzTGVuZ3RoKCkmJiExPT09QmUmJnRoaXMuaW5zdGFuY2UuY29sdW1uSW5kZXhNYXBwZXIuc2V0SW5kZXhlc1NlcXVlbmNlKFtdKX1yZXR1cm4gdGhpcy5pbnN0YW5jZS5ydW5Ib29rcygiYWZ0ZXJSZW1vdmVS''@;'; + put 'put ''b3ciLEMsX2UsSSx5KSx0aGlzLmluc3RhbmNlLmZvcmNlRnVsbFJlbmRlcj0hMCwhMH19LHtrZXk6InJlbW92ZUNvbCIsdmFsdWU6ZnVuY3Rpb24oaCl7dmFyIHY9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOjEseT1hcmd1bWVudHMubGVu''@;'; + put 'put ''Z3RoPjI/YXJndW1lbnRzWzJdOnZvaWQgMDtpZigib2JqZWN0Ij09PXRoaXMuaW5zdGFuY2UuZGF0YVR5cGV8fHRoaXMudGFibGVNZXRhLmNvbHVtbnMpdGhyb3cgbmV3IEVycm9yKCJjYW5ub3QgcmVtb3ZlIGNvbHVtbiB3aXRoIG9iamVjdCBkYXRhIHNvdXJjZSBvciBjb2x1bW5zIG9wdGlv''@;'; + put 'put ''biBzcGVjaWZpZWQiKTt2YXIgQz0ibnVtYmVyIiE9dHlwZW9mIGg/LXY6aDtDPSh0aGlzLmluc3RhbmNlLmNvdW50Q29scygpK0MpJXRoaXMuaW5zdGFuY2UuY291bnRDb2xzKCk7dmFyIEk9dGhpcy52aXN1YWxDb2x1bW5zVG9QaHlzaWNhbChDLHYpLGo9SS5zbGljZSgwKS5zb3J0KGZ1bmN0''@;'; + put 'put ''aW9uKGlyLG1yKXtyZXR1cm4gbXItaXJ9KSx1ZT10aGlzLmluc3RhbmNlLnJ1bkhvb2tzKCJiZWZvcmVSZW1vdmVDb2wiLEMsdixJLHkpO2lmKCExPT09dWUpcmV0dXJuITE7Zm9yKHZhciBfZT0hMCxCZT1qLmxlbmd0aCxOZT10aGlzLmRhdGFTb3VyY2UsS2U9MDtLZTxCZTtLZSsrKV9lJiZJ''@;'; + put 'put ''WzBdIT09SVtLZV0tS2UmJihfZT0hMSk7aWYoX2UpZm9yKHZhciBkdD0wLE90PXRoaXMuaW5zdGFuY2UuY291bnRTb3VyY2VSb3dzKCk7ZHQ8T3Q7ZHQrKylOZVtkdF0uc3BsaWNlKElbMF0sdik7ZWxzZSBmb3IodmFyICR0PTAsZm49dGhpcy5pbnN0YW5jZS5jb3VudFNvdXJjZVJvd3MoKTsk''@;'; + put 'put ''dDxmbjskdCsrKWZvcih2YXIgTG49MDtMbjxCZTtMbisrKU5lWyR0XS5zcGxpY2UoaltMbl0sMSk7cmV0dXJuIEM8dGhpcy5pbnN0YW5jZS5jb3VudENvbHMoKSYmKHRoaXMuaW5zdGFuY2UuY29sdW1uSW5kZXhNYXBwZXIucmVtb3ZlSW5kZXhlcyhJKSwwPT09dGhpcy5pbnN0YW5jZS5jb2x1''@;'; + put 'put ''bW5JbmRleE1hcHBlci5nZXROb3RUcmltbWVkSW5kZXhlc0xlbmd0aCgpJiZ0aGlzLmluc3RhbmNlLnJvd0luZGV4TWFwcGVyLnNldEluZGV4ZXNTZXF1ZW5jZShbXSkpLHRoaXMuaW5zdGFuY2UucnVuSG9va3MoImFmdGVyUmVtb3ZlQ29sIixDLHYsSSx5KSx0aGlzLmluc3RhbmNlLmZvcmNl''@;'; + put 'put ''RnVsbFJlbmRlcj0hMCwhMH19LHtrZXk6InNwbGljZUNvbCIsdmFsdWU6ZnVuY3Rpb24oaCx2LHkpe2Zvcih2YXIgQz10aGlzLmluc3RhbmNlLmdldERhdGFBdENvbChoKSxJPUMuc2xpY2Uodix2K3kpLGo9Qy5zbGljZSh2K3kpLHVlPWFyZ3VtZW50cy5sZW5ndGgsX2U9bmV3IEFycmF5KHVl''@;'; + put 'put ''PjM/dWUtMzowKSxCZT0zO0JlPHVlO0JlKyspX2VbQmUtM109YXJndW1lbnRzW0JlXTtVaGUoX2Usaik7Zm9yKHZhciBOZT0wO05lPHk7KV9lLnB1c2gobnVsbCksTmUrPTE7cmV0dXJuIGNiZShfZSksdGhpcy5pbnN0YW5jZS5wb3B1bGF0ZUZyb21BcnJheSh2LGgsX2UsbnVsbCxudWxsLCJz''@;'; + put 'put ''cGxpY2VDb2wiKSxJfX0se2tleToic3BsaWNlUm93Iix2YWx1ZTpmdW5jdGlvbihoLHYseSl7Zm9yKHZhciBDPXRoaXMuaW5zdGFuY2UuZ2V0U291cmNlRGF0YUF0Um93KGgpLEk9Qy5zbGljZSh2LHYreSksaj1DLnNsaWNlKHYreSksdWU9YXJndW1lbnRzLmxlbmd0aCxfZT1uZXcgQXJyYXko''@;'; + put 'put ''dWU+Mz91ZS0zOjApLEJlPTM7QmU8dWU7QmUrKylfZVtCZS0zXT1hcmd1bWVudHNbQmVdO1VoZShfZSxqKTtmb3IodmFyIE5lPTA7TmU8eTspX2UucHVzaChudWxsKSxOZSs9MTtyZXR1cm4gdGhpcy5pbnN0YW5jZS5wb3B1bGF0ZUZyb21BcnJheShoLHYsW19lXSxudWxsLG51bGwsInNwbGlj''@;'; + put 'put ''ZVJvdyIpLEl9fSx7a2V5OiJzcGxpY2VEYXRhIix2YWx1ZTpmdW5jdGlvbihoLHYpe2Zvcih2YXIgeT1hcmd1bWVudHMubGVuZ3RoLEM9bmV3IEFycmF5KHk+Mj95LTI6MCksST0yO0k8eTtJKyspQ1tJLTJdPWFyZ3VtZW50c1tJXTt2YXIgdWUsaj10aGlzLmluc3RhbmNlLnJ1bkhvb2tzKCJi''@;'; + put 'put ''ZWZvcmVEYXRhU3BsaWNlIixoLHYsQyk7ITEhPT1qJiYodWU9dGhpcy5kYXRhU291cmNlKS5zcGxpY2UuYXBwbHkodWUsW2gsdl0uY29uY2F0KEMpKX19LHtrZXk6ImZpbHRlckRhdGEiLHZhbHVlOmZ1bmN0aW9uKGgsdix5KXt2YXIgQz10aGlzLmluc3RhbmNlLnJ1bkhvb2tzKCJmaWx0ZXJE''@;'; + put 'put ''YXRhIixoLHYseSk7ITE9PT1BcnJheS5pc0FycmF5KEMpJiYoQz10aGlzLmRhdGFTb3VyY2UuZmlsdGVyKGZ1bmN0aW9uKEksail7cmV0dXJuLTE9PT15LmluZGV4T2Yoail9KSksdGhpcy5kYXRhU291cmNlLmxlbmd0aD0wLEFycmF5LnByb3RvdHlwZS5wdXNoLmFwcGx5KHRoaXMuZGF0YVNv''@;'; + put 'put ''dXJjZSxDKX19LHtrZXk6ImdldCIsdmFsdWU6ZnVuY3Rpb24oaCx2KXt2YXIgeT10aGlzLmluc3RhbmNlLnRvUGh5c2ljYWxSb3coaCksQz10aGlzLmRhdGFTb3VyY2VbeV0sST10aGlzLmluc3RhbmNlLnJ1bkhvb2tzKCJtb2RpZnlSb3dEYXRhIix5KSxqPW51bGw7aWYoKEM9aXNOYU4oSSk/''@;'; + put 'put ''STpDKSYmQy5oYXNPd25Qcm9wZXJ0eSYmbzEoQyx2KSlqPUNbdl07ZWxzZSBpZigic3RyaW5nIj09dHlwZW9mIHYmJnYuaW5kZXhPZigiLiIpPi0xKXt2YXIgdWU9di5zcGxpdCgiLiIpLF9lPUM7aWYoIV9lKXJldHVybiBudWxsO2Zvcih2YXIgQmU9MCxOZT11ZS5sZW5ndGg7QmU8TmU7QmUr''@;'; + put 'put ''KylpZih2b2lkIDA9PT0oX2U9X2VbdWVbQmVdXSkpcmV0dXJuIG51bGw7aj1fZX1lbHNlImZ1bmN0aW9uIj09dHlwZW9mIHYmJihqPXYodGhpcy5kYXRhU291cmNlLnNsaWNlKHkseSsxKVswXSkpO2lmKHRoaXMuaW5zdGFuY2UuaGFzSG9vaygibW9kaWZ5RGF0YSIpKXt2YXIgS2U9U1Moaik7''@;'; + put 'put ''dGhpcy5pbnN0YW5jZS5ydW5Ib29rcygibW9kaWZ5RGF0YSIseSx0aGlzLnByb3BUb0NvbCh2KSxLZSwiZ2V0IiksS2UuaXNUb3VjaGVkKCkmJihqPUtlLnZhbHVlKX1yZXR1cm4gan19LHtrZXk6ImdldENvcHlhYmxlIix2YWx1ZTpmdW5jdGlvbihoLHYpe3JldHVybiBvcWUuY2FsbCh0aGlz''@;'; + put 'put ''Lmluc3RhbmNlLGgsdGhpcy5wcm9wVG9Db2wodikpP3RoaXMuZ2V0KGgsdik6IiJ9fSx7a2V5OiJzZXQiLHZhbHVlOmZ1bmN0aW9uKGgsdix5KXt2YXIgQz10aGlzLmluc3RhbmNlLnRvUGh5c2ljYWxSb3coaCksST15LGo9dGhpcy5kYXRhU291cmNlW0NdLHVlPXRoaXMuaW5zdGFuY2UucnVu''@;'; + put 'put ''SG9va3MoIm1vZGlmeVJvd0RhdGEiLEMpO2lmKGo9aXNOYU4odWUpP3VlOmosdGhpcy5pbnN0YW5jZS5oYXNIb29rKCJtb2RpZnlEYXRhIikpe3ZhciBfZT1TUyhJKTt0aGlzLmluc3RhbmNlLnJ1bkhvb2tzKCJtb2RpZnlEYXRhIixDLHRoaXMucHJvcFRvQ29sKHYpLF9lLCJzZXQiKSxfZS5p''@;'; + put 'put ''c1RvdWNoZWQoKSYmKEk9X2UudmFsdWUpfWlmKGomJmouaGFzT3duUHJvcGVydHkmJm8xKGosdikpalt2XT1JO2Vsc2UgaWYoInN0cmluZyI9PXR5cGVvZiB2JiZ2LmluZGV4T2YoIi4iKT4tMSl7dmFyIGR0LEJlPXYuc3BsaXQoIi4iKSxOZT1qLEtlPTA7Zm9yKEtlPTAsZHQ9QmUubGVuZ3Ro''@;'; + put 'put ''LTE7S2U8ZHQ7S2UrKyl2b2lkIDA9PT1OZVtCZVtLZV1dJiYoTmVbQmVbS2VdXT17fSksTmU9TmVbQmVbS2VdXTtOZVtCZVtLZV1dPUl9ZWxzZSJmdW5jdGlvbiI9PXR5cGVvZiB2P3YodGhpcy5kYXRhU291cmNlLnNsaWNlKEMsQysxKVswXSxJKTpqW3ZdPUl9fSx7a2V5OiJ2aXN1YWxSb3dz''@;'; + put 'put ''VG9QaHlzaWNhbCIsdmFsdWU6ZnVuY3Rpb24oaCx2KXtmb3IodmFyIHVlLHk9dGhpcy5pbnN0YW5jZS5jb3VudFNvdXJjZVJvd3MoKSxDPVtdLEk9KHkraCkleSxqPXY7STx5JiZqOyl1ZT10aGlzLmluc3RhbmNlLnRvUGh5c2ljYWxSb3coSSksQy5wdXNoKHVlKSxqLT0xLEkrPTE7cmV0dXJu''@;'; + put 'put ''IEN9fSx7a2V5OiJ2aXN1YWxDb2x1bW5zVG9QaHlzaWNhbCIsdmFsdWU6ZnVuY3Rpb24oaCx2KXtmb3IodmFyIHk9dGhpcy5pbnN0YW5jZS5jb3VudENvbHMoKSxDPVtdLEk9KHkraCkleSxqPXY7STx5JiZqOyl7dmFyIHVlPXRoaXMuaW5zdGFuY2UudG9QaHlzaWNhbENvbHVtbihJKTtDLnB1''@;'; + put 'put ''c2godWUpLGotPTEsSSs9MX1yZXR1cm4gQ319LHtrZXk6ImNsZWFyIix2YWx1ZTpmdW5jdGlvbigpe2Zvcih2YXIgaD0wO2g8dGhpcy5pbnN0YW5jZS5jb3VudFNvdXJjZVJvd3MoKTtoKyspZm9yKHZhciB2PTA7djx0aGlzLmluc3RhbmNlLmNvdW50Q29scygpO3YrKyl0aGlzLnNldChoLHRo''@;'; + put 'put ''aXMuY29sVG9Qcm9wKHYpLCIiKX19LHtrZXk6ImdldExlbmd0aCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdixoPXRoaXMudGFibGVNZXRhLm1heFJvd3M7dj1oPDB8fDA9PT1oPzA6aHx8MS8wO3ZhciB5PXRoaXMuaW5zdGFuY2Uucm93SW5kZXhNYXBwZXIuZ2V0Tm90VHJpbW1lZEluZGV4ZXNM''@;'; + put 'put ''ZW5ndGgoKTtyZXR1cm4gTWF0aC5taW4oeSx2KX19LHtrZXk6ImdldEFsbCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD17cm93OjAsY29sOjB9LHY9e3JvdzpNYXRoLm1heCh0aGlzLmluc3RhbmNlLmNvdW50Um93cygpLTEsMCksY29sOk1hdGgubWF4KHRoaXMuaW5zdGFuY2UuY291bnRDb2xz''@;'; + put 'put ''KCktMSwwKX07cmV0dXJuIGgucm93LXYucm93IT0wfHx0aGlzLmluc3RhbmNlLmNvdW50U291cmNlUm93cygpP3RoaXMuZ2V0UmFuZ2UoaCx2LGQuREVTVElOQVRJT05fUkVOREVSRVIpOltdfX0se2tleToiY291bnRDYWNoZWRDb2x1bW5zIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlz''@;'; + put 'put ''LmNvbFRvUHJvcENhY2hlLmxlbmd0aH19LHtrZXk6ImdldFJhbmdlIix2YWx1ZTpmdW5jdGlvbihoLHYseSl7dmFyIEksaix1ZSxDPVtdLF9lPXRoaXMudGFibGVNZXRhLm1heFJvd3MsQmU9dGhpcy50YWJsZU1ldGEubWF4Q29scztpZigwPT09X2V8fDA9PT1CZSlyZXR1cm5bXTt2YXIgTmU9''@;'; + put 'put ''eT09PWQuREVTVElOQVRJT05fQ0xJUEJPQVJEX0dFTkVSQVRPUj90aGlzLmdldENvcHlhYmxlOnRoaXMuZ2V0LEtlPU1hdGgubWluKE1hdGgubWF4KF9lLTEsMCksTWF0aC5tYXgoaC5yb3csdi5yb3cpKSxkdD1NYXRoLm1pbihNYXRoLm1heChCZS0xLDApLE1hdGgubWF4KGguY29sLHYuY29s''@;'; + put 'put ''KSk7Zm9yKEk9TWF0aC5taW4oaC5yb3csdi5yb3cpO0k8PUtlO0krKyl7dWU9W107dmFyIE90PUk+PTA/dGhpcy5pbnN0YW5jZS50b1BoeXNpY2FsUm93KEkpOkk7Zm9yKGo9TWF0aC5taW4oaC5jb2wsdi5jb2wpO2o8PWR0JiZudWxsIT09T3Q7aisrKXVlLnB1c2goTmUuY2FsbCh0aGlzLEks''@;'; + put 'put ''dGhpcy5jb2xUb1Byb3AoaikpKTtudWxsIT09T3QmJkMucHVzaCh1ZSl9cmV0dXJuIEN9fSx7a2V5OiJnZXRUZXh0Iix2YWx1ZTpmdW5jdGlvbihoLHYpe3JldHVybiBjeih0aGlzLmdldFJhbmdlKGgsdixkLkRFU1RJTkFUSU9OX1JFTkRFUkVSKSl9fSx7a2V5OiJnZXRDb3B5YWJsZVRleHQi''@;'; + put 'put ''LHZhbHVlOmZ1bmN0aW9uKGgsdil7cmV0dXJuIGN6KHRoaXMuZ2V0UmFuZ2UoaCx2LGQuREVTVElOQVRJT05fQ0xJUEJPQVJEX0dFTkVSQVRPUikpfX0se2tleToiZGVzdHJveSIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmluc3RhbmNlPW51bGwsdGhpcy50YWJsZU1ldGE9bnVsbCx0aGlzLmRh''@;'; + put 'put ''dGFTb3VyY2U9bnVsbCx0aGlzLmR1Y2tTY2hlbWE9bnVsbCx0aGlzLmNvbFRvUHJvcENhY2hlLmxlbmd0aD0wLHRoaXMucHJvcFRvQ29sQ2FjaGUuY2xlYXIoKSx0aGlzLnByb3BUb0NvbENhY2hlPXZvaWQgMH19XSxbe2tleToiREVTVElOQVRJT05fUkVOREVSRVIiLGdldDpmdW5jdGlvbigp''@;'; + put 'put ''e3JldHVybiAxfX0se2tleToiREVTVElOQVRJT05fQ0xJUEJPQVJEX0dFTkVSQVRPUiIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDJ9fV0pLGR9KCk7Y29uc3QgbHFlPWFxZTtmdW5jdGlvbiBkdGUoZCl7cmV0dXJuKGR0ZT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlw''@;'; + put 'put ''ZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihnKXtyZXR1cm4gdHlwZW9mIGd9OmZ1bmN0aW9uKGcpe3JldHVybiBnJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZnLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZnIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgZ30pKGQp''@;'; + put 'put ''fWZ1bmN0aW9uIFNTZShkLGcsaCx2KXt2YXIgeT12LmhvdEluc3RhbmNlLEM9di5kYXRhTWFwLEk9di5kYXRhU291cmNlLGo9di5pbnRlcm5hbFNvdXJjZSx1ZT12LnNvdXJjZSxfZT12LmZpcnN0UnVuLEJlPXNkKGopLE5lPXkuZ2V0U2V0dGluZ3MoKTt5LmRhdGFUeXBlPUFycmF5LmlzQXJy''@;'; + put 'put ''YXkoTmUuZGF0YVNjaGVtYSk/ImFycmF5IjpVMihOZS5kYXRhU2NoZW1hKT8iZnVuY3Rpb24iOiJvYmplY3QiLEMmJkMuZGVzdHJveSgpLGQ9eS5ydW5Ib29rcygiYmVmb3JlIi5jb25jYXQoQmUpLGQsX2UsdWUpO3ZhciBLZT1uZXcgbHFlKHksZCxOZSk7aWYoZyhLZSksIm9iamVjdCI9PT1k''@;'; + put 'put ''dGUoZCkmJm51bGwhPT1kKWQucHVzaCYmZC5zcGxpY2V8fChkPVtkXSk7ZWxzZXtpZihudWxsIT09ZCl0aHJvdyBuZXcgRXJyb3IoIiIuY29uY2F0KGosIiBvbmx5IGFjY2VwdHMgYXJyYXkgb2Ygb2JqZWN0cyBvciBhcnJheSBvZiBhcnJheXMgKCIpLmNvbmNhdChkdGUoZCksIiBnaXZlbiki''@;'; + put 'put ''KSk7dmFyIGR0PUtlLmdldFNjaGVtYSgpO2Q9W107dmFyIE90LGZuLCR0PTA7Zm9yKCR0PTAsZm49TmUuc3RhcnRSb3dzOyR0PGZuOyR0KyspaWYoIm9iamVjdCIhPT15LmRhdGFUeXBlJiYiZnVuY3Rpb24iIT09eS5kYXRhVHlwZXx8IU5lLmRhdGFTY2hlbWEpaWYoImFycmF5Ij09PXkuZGF0''@;'; + put 'put ''YVR5cGUpT3Q9Z2goZHRbMF0pLGQucHVzaChPdCk7ZWxzZXtPdD1bXTtmb3IodmFyIExuPTAsaXI9TmUuc3RhcnRDb2xzO0xuPGlyO0xuKyspT3QucHVzaChudWxsKTtkLnB1c2goT3QpfWVsc2UgT3Q9Z2goZHQpLGQucHVzaChPdCl9QXJyYXkuaXNBcnJheShkWzBdKSYmKHkuZGF0YVR5cGU9''@;'; + put 'put ''ImFycmF5IiksTmUuZGF0YT1kLEtlLmRhdGFTb3VyY2U9ZCxJLmRhdGE9ZCxJLmRhdGFUeXBlPXkuZGF0YVR5cGUsSS5jb2xUb1Byb3A9S2UuY29sVG9Qcm9wLmJpbmQoS2UpLEkucHJvcFRvQ29sPUtlLnByb3BUb0NvbC5iaW5kKEtlKSxJLmNvdW50Q2FjaGVkQ29sdW1ucz1LZS5jb3VudENh''@;'; + put 'put ''Y2hlZENvbHVtbnMuYmluZChLZSksaChLZSkseS5ydW5Ib29rcygiYWZ0ZXIiLmNvbmNhdChCZSksZCxfZSx1ZSksX2V8fCh5LnJ1bkhvb2tzKCJhZnRlckNoYW5nZSIsbnVsbCxqKSx5LnJlbmRlcigpKX12YXIgeFNlLE1TZT1uZXcgTWFwKFtbIiAiLCJzcGFjZSJdLFsic3BhY2ViYXIiLCJz''@;'; + put 'put ''cGFjZSJdLFsic2Nyb2xsIiwic2Nyb2xsbG9jayJdLFsiZGVsIiwiZGVsZXRlIl0sWyJlc2MiLCJlc2NhcGUiXSxbIm1lZGlhbmV4dHRyYWNrIiwibWVkaWF0cmFja25leHQiXSxbIm1lZGlhcHJldmlvdXN0cmFjayIsIm1lZGlhdHJhY2twcmV2aW91cyJdLFsidm9sdW1ldXAiLCJhdWRpb3Zv''@;'; + put 'put ''bHVtZXVwIl0sWyJ2b2x1bWVkb3duIiwiYXVkaW92b2x1bWVkb3duIl0sWyJ2b2x1bWVtdXRlIiwiYXVkaW92b2x1bWVtdXRlIl0sWyJtdWx0aXBseSIsIioiXSxbImFkZCIsIisiXSxbImRpdmlkZSIsIi8iXSxbInN1YnRyYWN0IiwiLSJdLFsibGVmdCIsImFycm93bGVmdCJdLFsicmlnaHQi''@;'; + put 'put ''LCJhcnJvd3JpZ2h0Il0sWyJ1cCIsImFycm93dXAiXSxbImRvd24iLCJhcnJvd2Rvd24iXV0pLHB0ZT1mdW5jdGlvbihnKXtyZXR1cm4gZy5tYXAoZnVuY3Rpb24oaCl7dmFyIHY9aC50b0xvd2VyQ2FzZSgpO3JldHVybiBNU2UuaGFzKHYpP01TZS5nZXQodik6dn0pLnNvcnQoKS5qb2luKCIr''@;'; + put 'put ''Iil9LEVTZT1mdW5jdGlvbihnKXtyZXR1cm4gZy50b0xvd2VyQ2FzZSgpfTtmdW5jdGlvbiBUU2UoZCxnKXtpZihkKXtpZigic3RyaW5nIj09dHlwZW9mIGQpcmV0dXJuIG42ZShkLGcpO3ZhciBoPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChkKS5zbGljZSg4LC0xKTtpZigiT2Jq''@;'; + put 'put ''ZWN0Ij09PWgmJmQuY29uc3RydWN0b3ImJihoPWQuY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1ofHwiU2V0Ij09PWgpcmV0dXJuIEFycmF5LmZyb20oZCk7aWYoIkFyZ3VtZW50cyI9PT1ofHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChoKSlyZXR1''@;'; + put 'put ''cm4gbjZlKGQsZyl9fWZ1bmN0aW9uIG42ZShkLGcpeyhudWxsPT1nfHxnPmQubGVuZ3RoKSYmKGc9ZC5sZW5ndGgpO2Zvcih2YXIgaD0wLHY9bmV3IEFycmF5KGcpO2g8ZztoKyspdltoXT1kW2hdO3JldHVybiB2fWZ1bmN0aW9uIHZxZShkLGcpe3JldHVybiBnfHwoZz1kLnNsaWNlKDApKSxP''@;'; + put 'put ''YmplY3QuZnJlZXplKE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGQse3Jhdzp7dmFsdWU6T2JqZWN0LmZyZWV6ZShnKX19KSl9dmFyIHdxZT1bIm1ldGEiLCJhbHQiLCJzaGlmdCIsImNvbnRyb2wiXSxndGU9ZnVuY3Rpb24geXFlKCl7dmFyIGQ9bmV3IFNldDtyZXR1cm57cHJlc3M6ZnVuY3Rp''@;'; + put 'put ''b24oaCl7ZC5hZGQoaCl9LHJlbGVhc2U6ZnVuY3Rpb24oaCl7ZC5kZWxldGUoaCl9LHJlbGVhc2VBbGw6ZnVuY3Rpb24oKXtkLmNsZWFyKCl9LGlzUHJlc3NlZDpmdW5jdGlvbihoKXtyZXR1cm4gZC5oYXMoaCl9fX0oKSxfcWU9ZnVuY3Rpb24oZyl7dmFyIGg9Zy5vd25lcldpbmRvdyx2PWcu''@;'; + put 'put ''aGFuZGxlRXZlbnQseT1nLmJlZm9yZUtleURvd24sQz1nLmFmdGVyS2V5RG93bixJPXVlZSh7ZXJyb3JJZEV4aXN0czpmdW5jdGlvbigkdCl7cmV0dXJuJ1RoZSAiJy5jb25jYXQoJHQsJyIgY29udGV4dCBuYW1lIGlzIGFscmVhZHkgcmVnaXN0ZXJlZC4nKX19KSxqPSJncmlkIixfZT1mdW5j''@;'; + put 'put ''dGlvbigpe3JldHVybiBqfSxCZT1mdW5jdGlvbigkdCl7cmV0dXJuIEkuZ2V0SXRlbSgkdCl9LEtlPSExLGR0PWZ1bmN0aW9uIGJxZShkLGcsaCx2LHkpe3ZhciBDPWZ1bmN0aW9uKGR0KXtyZXR1cm4gd3FlLmluY2x1ZGVzKGR0KX0sST1mdW5jdGlvbihkdCl7dmFyIE90PWFyZ3VtZW50cy5s''@;'; + put 'put ''ZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdJiZhcmd1bWVudHNbMV0sJHQ9W107cmV0dXJuIGR0LmFsdEtleSYmJHQucHVzaCgiYWx0IiksT3QmJihkdC5jdHJsS2V5fHxkdC5tZXRhS2V5KT8kdC5wdXNoKCJjb250cm9sL21ldGEiKTooZHQuY3RybEtleSYmJHQucHVzaCgiY29udHJv''@;'; + put 'put ''bCIpLGR0Lm1ldGFLZXkmJiR0LnB1c2goIm1ldGEiKSksZHQuc2hpZnRLZXkmJiR0LnB1c2goInNoaWZ0IiksJHR9LGo9ZnVuY3Rpb24oZHQpe2lmKCExIT09ZyhkdCkmJiExIT09aChkdCkmJiFFUyhkdCkpe3ZhciAkdD1FU2UoZHQua2V5KSxmbj1bXTtDKCR0KT9ndGUucHJlc3MoJHQpOmZu''@;'; + put 'put ''PUkoZHQpO3ZhciBMbj1bJHRdLmNvbmNhdChmbik7IXkoZHQsTG4pJiYoS3EoKSYmZm4uaW5jbHVkZXMoIm1ldGEiKXx8IUtxKCkmJmZuLmluY2x1ZGVzKCJjb250cm9sIikpJiZ5KGR0LFskdF0uY29uY2F0KEkoZHQsITApKSksdihkdCl9fSx1ZT1mdW5jdGlvbihkdCl7aWYoITEhPT1nKGR0''@;'; + put 'put ''KSl7dmFyIE90PUVTZShkdC5rZXkpOyExIT09QyhPdCkmJmd0ZS5yZWxlYXNlKE90KX19LF9lPWZ1bmN0aW9uKCl7Z3RlLnJlbGVhc2VBbGwoKX07cmV0dXJue21vdW50OmZ1bmN0aW9uKCl7Zm9yKHZhciBkdD1kO2R0OylkdC5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixqKSxkdC5hZGRF''@;'; + put 'put ''dmVudExpc3RlbmVyKCJrZXl1cCIsdWUpLGR0LmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLF9lKSxkdD1kdC5mcmFtZUVsZW1lbnR9LHVubW91bnQ6ZnVuY3Rpb24oKXtmb3IodmFyIGR0PWQ7ZHQ7KWR0LnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleWRvd24iLGopLGR0LnJlbW92ZUV2ZW50TGlz''@;'; + put 'put ''dGVuZXIoImtleXVwIix1ZSksZHQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiYmx1ciIsX2UpLGR0PWR0LmZyYW1lRWxlbWVudH0saXNQcmVzc2VkOmZ1bmN0aW9uKGR0KXtyZXR1cm4gZ3RlLmlzUHJlc3NlZChkdCl9fX0oaCx2LHksQyxmdW5jdGlvbihPdCwkdCl7dmFyIGZuPUJlKF9lKCkpLExu''@;'; + put 'put ''PSExO2lmKCFmbi5oYXNTaG9ydGN1dCgkdCkpcmV0dXJuIExuO2Zvcih2YXIgaXI9Zm4uZ2V0U2hvcnRjdXRzKCR0KSxtcj0wO21yPGlyLmxlbmd0aDttcisrKXt2YXIgU3I9aXJbbXJdLHdyPVNyLmNhbGxiYWNrLHlpPVNyLnByZXZlbnREZWZhdWx0LEtpPVNyLnN0b3BQcm9wYWdhdGlvbixT''@;'; + put 'put ''bz1Tci5jYXB0dXJlQ3RybDtpZighMSE9PSgwLFNyLnJ1bk9ubHlJZikoT3QpJiYoS2U9U28sTG49ITE9PT13cihPdCwkdCksS2U9ITEseWkmJk90LnByZXZlbnREZWZhdWx0KCksS2kmJk90LnN0b3BQcm9wYWdhdGlvbigpLExuKSlicmVha31yZXR1cm4gTG59KTtyZXR1cm4gZHQubW91bnQo''@;'; + put 'put ''KSx7YWRkQ29udGV4dDpmdW5jdGlvbigkdCl7dmFyIGZuPWZ1bmN0aW9uKGcpe3ZhciBoPXVlZSh7ZXJyb3JJZEV4aXN0czpmdW5jdGlvbihCZSl7cmV0dXJuJ1RoZSAiJy5jb25jYXQoQmUsJyIgc2hvcnRjdXQgaXMgYWxyZWFkeSByZWdpc3RlcmVkIGluIHRoZSAiJykuY29uY2F0KGcsJyIg''@;'; + put 'put ''Y29udGV4dC4nKX19KSx2PWZ1bmN0aW9uKCl7dmFyIEJlPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp7fSxOZT1CZS5rZXlzLEtlPUJlLmNhbGxiYWNrLGR0PUJlLmdyb3VwLE90PUJlLnJ1bk9ubHlJZiwkdD12b2lkIDA9PT1PdD9mdW5j''@;'; + put 'put ''dGlvbigpe3JldHVybiEwfTpPdCxmbj1CZS5jYXB0dXJlQ3RybCxMbj12b2lkIDAhPT1mbiYmZm4saXI9QmUucHJldmVudERlZmF1bHQsbXI9dm9pZCAwPT09aXJ8fGlyLFNyPUJlLnN0b3BQcm9wYWdhdGlvbix3cj12b2lkIDAhPT1TciYmU3IsUXI9QmUucmVsYXRpdmVUb0dyb3VwLHlpPUJl''@;'; + put 'put ''LnBvc2l0aW9uO2lmKGExKGR0KSl0aHJvdyBuZXcgRXJyb3IoIllvdSBuZWVkIHRvIGRlZmluZSB0aGUgc2hvcnRjdXQncyBncm91cC4iKTtpZighMT09PVUyKEtlKSl0aHJvdyBuZXcgRXJyb3IoIlRoZSBzaG9ydGN1dCdzIGNhbGxiYWNrIG5lZWRzIHRvIGJlIGEgZnVuY3Rpb24uIik7aWYo''@;'; + put 'put ''ITE9PT1BcnJheS5pc0FycmF5KE5lKSl0aHJvdyBuZXcgRXJyb3IoUDIoeFNlfHwoeFNlPXZxZShbIlBhc3MgdGhlIHNob3J0Y3V0J3Mga2V5cyBhcyBhbiBhcnJheSBvZiBhcnJheXMsIFxuICAgICAgdXNpbmcgdGhlIEtleWJvYXJkRXZlbnQua2V5IHByb3BlcnRpZXM6IFxuICAgICAgaHR0''@;'; + put 'put ''cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL0tleWJvYXJkRXZlbnQva2V5L0tleV9WYWx1ZXMuIl0sWyJQYXNzIHRoZSBzaG9ydGN1dFxcJ3Mga2V5cyBhcyBhbiBhcnJheSBvZiBhcnJheXMsXFx4MjBcbiAgICAgIHVzaW5nIHRoZSBLZXlib2FyZEV2ZW50''@;'; + put 'put ''LmtleSBwcm9wZXJ0aWVzOlxceDIwXG4gICAgICBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvS2V5Ym9hcmRFdmVudC9rZXkvS2V5X1ZhbHVlcy4iXSkpKSk7dmFyIEtpPXtjYWxsYmFjazpLZSxncm91cDpkdCxydW5Pbmx5SWY6JHQsY2FwdHVyZUN0''@;'; + put 'put ''cmw6TG4scHJldmVudERlZmF1bHQ6bXIsc3RvcFByb3BhZ2F0aW9uOndyfTtpZihUbyhRcikpe3ZhciBTbz1bUXIseWldO0tpLnJlbGF0aXZlVG9Hcm91cD1Tb1swXSxLaS5wb3NpdGlvbj1Tb1sxXX1OZS5mb3JFYWNoKGZ1bmN0aW9uKFBvKXt2YXIgU2E9cHRlKFBvKTtpZihoLmhhc0l0ZW0o''@;'; + put 'put ''U2EpKXt2YXIgbGE9aC5nZXRJdGVtKFNhKSxhbD1sYS5maW5kSW5kZXgoZnVuY3Rpb24oT3Mpe3JldHVybiBPcy5ncm91cD09PVFyfSk7LTEhPT1hbD8iYmVmb3JlIj09PXlpP2FsLT0xOmFsKz0xOmFsPWxhLmxlbmd0aCxsYS5zcGxpY2UoYWwsMCxLaSl9ZWxzZSBoLmFkZEl0ZW0oU2EsW0tp''@;'; + put 'put ''XSl9KX0sQz1mdW5jdGlvbihCZSl7dmFyIE5lPXB0ZShCZSk7aC5yZW1vdmVJdGVtKE5lKX07cmV0dXJue2FkZFNob3J0Y3V0OnYsYWRkU2hvcnRjdXRzOmZ1bmN0aW9uKEJlKXt2YXIgTmU9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOnt9''@;'; + put 'put ''O0JlLmZvckVhY2goZnVuY3Rpb24oS2Upe0dsKE5lLGZ1bmN0aW9uKGR0LE90KXshMT09PU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChLZSxPdCkmJihLZVtPdF09TmVbT3RdKX0pLHYoS2UpfSl9LGdldFNob3J0Y3V0czpmdW5jdGlvbihCZSl7dmFyIE5lPXB0ZShCZSks''@;'; + put 'put ''S2U9aC5nZXRJdGVtKE5lKTtyZXR1cm4gVG8oS2UpP0tlLnNsaWNlKCk6W119LGhhc1Nob3J0Y3V0OmZ1bmN0aW9uKEJlKXt2YXIgTmU9cHRlKEJlKTtyZXR1cm4gaC5oYXNJdGVtKE5lKX0scmVtb3ZlU2hvcnRjdXRzQnlLZXlzOkMscmVtb3ZlU2hvcnRjdXRzQnlHcm91cDpmdW5jdGlvbihC''@;'; + put 'put ''ZSl7aC5nZXRJdGVtcygpLmZvckVhY2goZnVuY3Rpb24oS2Upe3ZhciBkdD1mdW5jdGlvbiBkcWUoZCxnKXtyZXR1cm4gZnVuY3Rpb24gbXFlKGQpe2lmKEFycmF5LmlzQXJyYXkoZCkpcmV0dXJuIGR9KGQpfHxmdW5jdGlvbiBncWUoZCxnKXt2YXIgaD1udWxsPT1kP251bGw6InVuZGVmaW5l''@;'; + put 'put ''ZCIhPXR5cGVvZiBTeW1ib2wmJmRbU3ltYm9sLml0ZXJhdG9yXXx8ZFsiQEBpdGVyYXRvciJdO2lmKG51bGwhPWgpe3ZhciBJLGosdj1bXSx5PSEwLEM9ITE7dHJ5e2ZvcihoPWguY2FsbChkKTshKHk9KEk9aC5uZXh0KCkpLmRvbmUpJiYodi5wdXNoKEkudmFsdWUpLCFnfHx2Lmxlbmd0aCE9''@;'; + put 'put ''PWcpO3k9ITApO31jYXRjaCh1ZSl7Qz0hMCxqPXVlfWZpbmFsbHl7dHJ5eyF5JiZudWxsIT1oLnJldHVybiYmaC5yZXR1cm4oKX1maW5hbGx5e2lmKEMpdGhyb3cgan19cmV0dXJuIHZ9fShkLGcpfHxUU2UoZCxnKXx8ZnVuY3Rpb24gcHFlKCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxp''@;'; + put 'put ''ZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX0oS2UsMiksT3Q9ZHRbMF0sJHQ9ZHRbMV0sZm49''@;'; + put 'put ''JHQuZmlsdGVyKGZ1bmN0aW9uKExuKXtyZXR1cm4gTG4uZ3JvdXAhPT1CZX0pOzA9PT1mbi5sZW5ndGg/QyhmdW5jdGlvbihnKXtyZXR1cm4gZy5zcGxpdCgiKyIpfShPdCkpOigkdC5sZW5ndGg9MCwkdC5wdXNoLmFwcGx5KCR0LGZ1bmN0aW9uIHVxZShkKXtyZXR1cm4gZnVuY3Rpb24gaHFl''@;'; + put 'put ''KGQpe2lmKEFycmF5LmlzQXJyYXkoZCkpcmV0dXJuIG42ZShkKX0oZCl8fGZ1bmN0aW9uIGZxZShkKXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmbnVsbCE9ZFtTeW1ib2wuaXRlcmF0b3JdfHxudWxsIT1kWyJAQGl0ZXJhdG9yIl0pcmV0dXJuIEFycmF5LmZyb20oZCl9KGQpfHxU''@;'; + put 'put ''U2UoZCl8fGZ1bmN0aW9uIGNxZSgpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBzcHJlYWQgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3Jd''@;'; + put 'put ''KCkgbWV0aG9kLiIpfSgpfShmbikpKX0pfX19KCR0KTtyZXR1cm4gSS5hZGRJdGVtKCR0LGZuKSxmbn0sZ2V0QWN0aXZlQ29udGV4dE5hbWU6X2UsZ2V0Q29udGV4dDpCZSxzZXRBY3RpdmVDb250ZXh0TmFtZTpmdW5jdGlvbigkdCl7aj0kdH0saXNDdHJsUHJlc3NlZDpmdW5jdGlvbigpe3Jl''@;'; + put 'put ''dHVybiFLZSYmKGR0LmlzUHJlc3NlZCgiY29udHJvbCIpfHxkdC5pc1ByZXNzZWQoIm1ldGEiKSl9LGRlc3Ryb3k6ZnVuY3Rpb24oKXtyZXR1cm4gZHQudW5tb3VudCgpfX19O2Z1bmN0aW9uIGZkKGQpe3JldHVybihmZD0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlw''@;'; + put 'put ''ZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihnKXtyZXR1cm4gdHlwZW9mIGd9OmZ1bmN0aW9uKGcpe3JldHVybiBnJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZnLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZnIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgZ30pKGQp''@;'; + put 'put ''fWZ1bmN0aW9uIElnKGQsZyl7cmV0dXJuIGZ1bmN0aW9uIFNxZShkKXtpZihBcnJheS5pc0FycmF5KGQpKXJldHVybiBkfShkKXx8ZnVuY3Rpb24ga3FlKGQsZyl7dmFyIGg9bnVsbD09ZD9udWxsOiJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZkW1N5bWJvbC5pdGVyYXRvcl18fGRbIkBA''@;'; + put 'put ''aXRlcmF0b3IiXTtpZihudWxsIT1oKXt2YXIgSSxqLHY9W10seT0hMCxDPSExO3RyeXtmb3IoaD1oLmNhbGwoZCk7ISh5PShJPWgubmV4dCgpKS5kb25lKSYmKHYucHVzaChJLnZhbHVlKSwhZ3x8di5sZW5ndGghPT1nKTt5PSEwKTt9Y2F0Y2godWUpe0M9ITAsaj11ZX1maW5hbGx5e3RyeXsh''@;'; + put 'put ''eSYmbnVsbCE9aC5yZXR1cm4mJmgucmV0dXJuKCl9ZmluYWxseXtpZihDKXRocm93IGp9fXJldHVybiB2fX0oZCxnKXx8SVNlKGQsZyl8fGZ1bmN0aW9uIENxZSgpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFu''@;'; + put 'put ''Y2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9ZnVuY3Rpb24gUncoZCl7cmV0dXJuIGZ1bmN0aW9uIHhxZShkKXtpZihBcnJheS5pc0FycmF5KGQpKXJldHVybiByNmUoZCl9''@;'; + put 'put ''KGQpfHxmdW5jdGlvbiBFcWUoZCl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJm51bGwhPWRbU3ltYm9sLml0ZXJhdG9yXXx8bnVsbCE9ZFsiQEBpdGVyYXRvciJdKXJldHVybiBBcnJheS5mcm9tKGQpfShkKXx8SVNlKGQpfHxmdW5jdGlvbiBNcWUoKXt0aHJvdyBuZXcgVHlwZUVy''@;'; + put 'put ''cm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gc3ByZWFkIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX1mdW5jdGlvbiBJU2UoZCxnKXtpZihk''@;'; + put 'put ''KXtpZigic3RyaW5nIj09dHlwZW9mIGQpcmV0dXJuIHI2ZShkLGcpO3ZhciBoPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChkKS5zbGljZSg4LC0xKTtpZigiT2JqZWN0Ij09PWgmJmQuY29uc3RydWN0b3ImJihoPWQuY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1ofHwiU2V0Ij09''@;'; + put 'put ''PWgpcmV0dXJuIEFycmF5LmZyb20oZCk7aWYoIkFyZ3VtZW50cyI9PT1ofHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChoKSlyZXR1cm4gcjZlKGQsZyl9fWZ1bmN0aW9uIHI2ZShkLGcpeyhudWxsPT1nfHxnPmQubGVuZ3RoKSYmKGc9ZC5sZW5ndGgp''@;'; + put 'put ''O2Zvcih2YXIgaD0wLHY9bmV3IEFycmF5KGcpO2g8ZztoKyspdltoXT1kW2hdO3JldHVybiB2fXZhciBUcWU9ImdyaWREZWZhdWx0IixpNmU9bnVsbDtmdW5jdGlvbiBvNmUoZCxnKXt2YXIgaCx1ZSxfZSxCZSxOZSx2PXRoaXMseT1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3Vt''@;'; + put 'put ''ZW50c1syXSYmYXJndW1lbnRzWzJdLEM9ITEsST10aGlzLGo9bmV3IEwxKEkpLEtlPSEwO1NRZSh5KSYma1FlKHRoaXMpLHRoaXMucm9vdEVsZW1lbnQ9ZCx0aGlzLnJvb3REb2N1bWVudD1kLm93bmVyRG9jdW1lbnQsdGhpcy5yb290V2luZG93PXRoaXMucm9vdERvY3VtZW50LmRlZmF1bHRW''@;'; + put 'put ''aWV3LHRoaXMuaXNEZXN0cm95ZWQ9ITEsdGhpcy5yZW5kZXJTdXNwZW5kZWRDb3VudGVyPTAsdGhpcy5leGVjdXRpb25TdXNwZW5kZWRDb3VudGVyPTA7dmFyIGR0PW51bGwhPT0oaD1udWxsPT1nP3ZvaWQgMDpnLmxheW91dERpcmVjdGlvbikmJnZvaWQgMCE9PWg/aDoiaW5oZXJpdCIsT3Q9''@;'; + put 'put ''WyJydGwiLCJsdHIiXS5pbmNsdWRlcyhkdCk/ZHQ6dGhpcy5yb290V2luZG93LmdldENvbXB1dGVkU3R5bGUodGhpcy5yb290RWxlbWVudCkuZGlyZWN0aW9uO3RoaXMucm9vdEVsZW1lbnQuc2V0QXR0cmlidXRlKCJkaXIiLE90KSx0aGlzLmlzUnRsPWZ1bmN0aW9uKCl7cmV0dXJuInJ0bCI9''@;'; + put 'put ''PT1PdH0sdGhpcy5pc0x0cj1mdW5jdGlvbigpe3JldHVybiFJLmlzUnRsKCl9LHRoaXMuZ2V0RGlyZWN0aW9uRmFjdG9yPWZ1bmN0aW9uKCl7cmV0dXJuIEkuaXNMdHIoKT8xOi0xfSxnLmxhbmd1YWdlPVZYZShnLmxhbmd1YWdlKTt2YXIgJHQ9bmV3IHlTZShJLGcsW0skZSxlcWVdKSxmbj0k''@;'; + put 'put ''dC5nZXRUYWJsZU1ldGEoKSxMbj0kdC5nZXRHbG9iYWxNZXRhKCksaXI9dWVlKCk7dGhpcy5jb250YWluZXI9dGhpcy5yb290RG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksdGhpcy5yZW5kZXJDYWxsPSExLGQuaW5zZXJ0QmVmb3JlKHRoaXMuY29udGFpbmVyLGQuZmlyc3RDaGlsZCks''@;'; + put 'put ''emRlKHRoaXMpJiZCYmUoZy5saWNlbnNlS2V5LGQpLHRoaXMuZ3VpZD0iaHRfIi5jb25jYXQocjNlKCkpLHRoaXMuY29sdW1uSW5kZXhNYXBwZXI9bmV3IF80ZSx0aGlzLnJvd0luZGV4TWFwcGVyPW5ldyBfNGUsX2U9bmV3IFlRZShJKSwoIXRoaXMucm9vdEVsZW1lbnQuaWR8fCJodF8iPT09''@;'; + put 'put ''dGhpcy5yb290RWxlbWVudC5pZC5zdWJzdHJpbmcoMCwzKSkmJih0aGlzLnJvb3RFbGVtZW50LmlkPXRoaXMuZ3VpZCk7dmFyIG1yPWZ1bmN0aW9uKFpuKXt2YXIgX3I9Wm4ucm93LFhyPVpuLmNvbDtyZXR1cm4gSS5fY3JlYXRlQ2VsbENvb3Jkcyhfcj49MD9JLnJvd0luZGV4TWFwcGVyLmdl''@;'; + put 'put ''dFJlbmRlcmFibGVGcm9tVmlzdWFsSW5kZXgoX3IpOl9yLFhyPj0wP0kuY29sdW1uSW5kZXhNYXBwZXIuZ2V0UmVuZGVyYWJsZUZyb21WaXN1YWxJbmRleChYcik6WHIpfSxTcj1mdW5jdGlvbihabil7dmFyIF9yPVpuLnJvdyxYcj1abi5jb2w7cmV0dXJuIEkuX2NyZWF0ZUNlbGxDb29yZHMo''@;'; + put 'put ''X3I+PTA/SS5yb3dJbmRleE1hcHBlci5nZXRWaXN1YWxGcm9tUmVuZGVyYWJsZUluZGV4KF9yKTpfcixYcj49MD9JLmNvbHVtbkluZGV4TWFwcGVyLmdldFZpc3VhbEZyb21SZW5kZXJhYmxlSW5kZXgoWHIpOlhyKX0sd3I9bmV3IE0kZShmbix7cm93SW5kZXhNYXBwZXI6ZnVuY3Rpb24oKXty''@;'; + put 'put ''ZXR1cm4gSS5yb3dJbmRleE1hcHBlcn0sY29sdW1uSW5kZXhNYXBwZXI6ZnVuY3Rpb24oKXtyZXR1cm4gSS5jb2x1bW5JbmRleE1hcHBlcn0sY291bnRDb2xzOmZ1bmN0aW9uKCl7cmV0dXJuIEkuY291bnRDb2xzKCl9LGNvdW50Um93czpmdW5jdGlvbigpe3JldHVybiBJLmNvdW50Um93cygp''@;'; + put 'put ''fSxwcm9wVG9Db2w6ZnVuY3Rpb24oWm4pe3JldHVybiB1ZS5wcm9wVG9Db2woWm4pfSxpc0VkaXRvck9wZW5lZDpmdW5jdGlvbigpe3JldHVybiEhSS5nZXRBY3RpdmVFZGl0b3IoKSYmSS5nZXRBY3RpdmVFZGl0b3IoKS5pc09wZW5lZCgpfSxjb3VudENvbHNUcmFuc2xhdGVkOmZ1bmN0aW9u''@;'; + put 'put ''KCl7cmV0dXJuIHYudmlldy5jb3VudFJlbmRlcmFibGVDb2x1bW5zKCl9LGNvdW50Um93c1RyYW5zbGF0ZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gdi52aWV3LmNvdW50UmVuZGVyYWJsZVJvd3MoKX0sZ2V0U2hvcnRjdXRNYW5hZ2VyOmZ1bmN0aW9uKCl7cmV0dXJuIEkuZ2V0U2hvcnRjdXRNYW5h''@;'; + put 'put ''Z2VyKCl9LGNyZWF0ZUNlbGxDb29yZHM6ZnVuY3Rpb24oWm4sX3Ipe3JldHVybiBJLl9jcmVhdGVDZWxsQ29vcmRzKFpuLF9yKX0sY3JlYXRlQ2VsbFJhbmdlOmZ1bmN0aW9uKFpuLF9yLFhyKXtyZXR1cm4gSS5fY3JlYXRlQ2VsbFJhbmdlKFpuLF9yLFhyKX0sdmlzdWFsVG9SZW5kZXJhYmxl''@;'; + put 'put ''Q29vcmRzOm1yLHJlbmRlcmFibGVUb1Zpc3VhbENvb3JkczpTcixpc0Rpc2FibGVkQ2VsbFNlbGVjdGlvbjpmdW5jdGlvbihabixfcil7cmV0dXJuIEkuZ2V0Q2VsbE1ldGEoWm4sX3IpLmRpc2FibGVWaXN1YWxTZWxlY3Rpb259fSk7dGhpcy5zZWxlY3Rpb249d3I7dmFyIFFyPWZ1bmN0aW9u''@;'; + put 'put ''KFpuKXtabi5oaWRkZW5JbmRleGVzQ2hhbmdlZCYmdi5zZWxlY3Rpb24ucmVmcmVzaCgpfTtmdW5jdGlvbiB5aShGbil7dmFyIFpuPUNrZShGbik7VnBlKFpuKT8oSS5ydW5Ib29rcygiYmVmb3JlTGFuZ3VhZ2VDaGFuZ2UiLFpuKSxMbi5sYW5ndWFnZT1abixJLnJ1bkhvb2tzKCJhZnRlckxh''@;'; + put 'put ''bmd1YWdlQ2hhbmdlIixabikpOmtrZShGbil9ZnVuY3Rpb24gS2koRm4sWm4pe3ZhciBfcj0iY2xhc3NOYW1lIj09PUZuP0kucm9vdEVsZW1lbnQ6SS50YWJsZTtpZihLZSlPMChfcixabik7ZWxzZXt2YXIgWHI9W10sY2k9W107TG5bRm5dJiYoWHI9QXJyYXkuaXNBcnJheShMbltGbl0pP0xu''@;'; + put 'put ''W0ZuXTpYaGUoTG5bRm5dKSksWm4mJihjaT1BcnJheS5pc0FycmF5KFpuKT9abjpYaGUoWm4pKTt2YXIgYzA9SmhlKFhyLGNpKSxYaT1KaGUoY2ksWHIpO2MwLmxlbmd0aCYmcGwoX3IsYzApLFhpLmxlbmd0aCYmTzAoX3IsWGkpfUxuW0ZuXT1abn1mdW5jdGlvbiBTbygpe3ZhciBGbj0hMTty''@;'; + put 'put ''ZXR1cm57dmFsaWRhdG9yc0luUXVldWU6MCx2YWxpZDohMCxhZGRWYWxpZGF0b3JUb1F1ZXVlOmZ1bmN0aW9uKCl7dGhpcy52YWxpZGF0b3JzSW5RdWV1ZSs9MSxGbj0hMX0scmVtb3ZlVmFsaWRhdG9yRm9ybVF1ZXVlOmZ1bmN0aW9uKCl7dGhpcy52YWxpZGF0b3JzSW5RdWV1ZT10aGlzLnZh''@;'; + put 'put ''bGlkYXRvcnNJblF1ZXVlLTE8MD8wOnRoaXMudmFsaWRhdG9yc0luUXVldWUtMSx0aGlzLmNoZWNrSWZRdWV1ZUlzRW1wdHkoKX0sb25RdWV1ZUVtcHR5OmZ1bmN0aW9uKCl7fSxjaGVja0lmUXVldWVJc0VtcHR5OmZ1bmN0aW9uKCl7MD09PXRoaXMudmFsaWRhdG9yc0luUXVldWUmJiExPT09''@;'; + put 'put ''Rm4mJihGbj0hMCx0aGlzLm9uUXVldWVFbXB0eSh0aGlzLnZhbGlkKSl9fX1mdW5jdGlvbiBQbyhGbil7dmFyIFpuPUZuLnJlcGxhY2UoIiwiLCIuIik7cmV0dXJuITE9PT1pc05hTihwYXJzZUZsb2F0KFpuKSk/cGFyc2VGbG9hdChabik6Rm59ZnVuY3Rpb24gU2EoRm4sWm4sX3Ipe2lmKEZu''@;'; + put 'put ''Lmxlbmd0aCl7dmFyIFhyPUkuZ2V0QWN0aXZlRWRpdG9yKCksY2k9SS5ydW5Ib29rcygiYmVmb3JlQ2hhbmdlIixGbixabnx8ImVkaXQiKSxjMD0hMDtpZighMT09PWNpKXJldHVybiB2b2lkKFhyJiZYci5jYW5jZWxDaGFuZ2VzKCkpO3ZhciBYaT1uZXcgU287WGkub25RdWV1ZUVtcHR5PWZ1''@;'; + put 'put ''bmN0aW9uKHQyKXtYciYmYzAmJlhyLmNhbmNlbENoYW5nZXMoKSxfcih0Mil9O2Zvcih2YXIgRTA9Rm4ubGVuZ3RoLTE7RTA+PTA7RTAtLSlpZihudWxsPT09Rm5bRTBdKUZuLnNwbGljZShFMCwxKTtlbHNle3ZhciB6MD1JZyhGbltFMF0sNCksa289ejBbMF0sV2E9ejBbM10sZTI9dWUucHJv''@;'; + put 'put ''cFRvQ29sKHowWzFdKSxGYT1JLmdldENlbGxNZXRhKGtvLGUyKTsibnVtZXJpYyI9PT1GYS50eXBlJiYic3RyaW5nIj09dHlwZW9mIFdhJiZmX2UoV2EpJiYoRm5bRTBdWzNdPVBvKFdhKSksSS5nZXRDZWxsVmFsaWRhdG9yKEZhKSYmKFhpLmFkZFZhbGlkYXRvclRvUXVldWUoKSxJLnZhbGlk''@;'; + put 'put ''YXRlQ2VsbChGbltFMF1bM10sRmEsZnVuY3Rpb24odDIsTzEpe3JldHVybiBmdW5jdGlvbihSMSl7aWYoImJvb2xlYW4iIT10eXBlb2YgUjEpdGhyb3cgbmV3IEVycm9yKCJWYWxpZGF0aW9uIGVycm9yOiByZXN1bHQgaXMgbm90IGJvb2xlYW4iKTtpZighMT09PVIxJiYhMT09PU8xLmFsbG93''@;'; + put 'put ''SW52YWxpZCl7YzA9ITEsRm4uc3BsaWNlKHQyLDEpLE8xLnZhbGlkPSEwO3ZhciB6dT1JLmdldENlbGwoTzEudmlzdWFsUm93LE8xLnZpc3VhbENvbCk7bnVsbCE9PXp1JiZwbCh6dSxmbi5pbnZhbGlkQ2VsbENsYXNzTmFtZSl9WGkucmVtb3ZlVmFsaWRhdG9yRm9ybVF1ZXVlKCl9fShFMCxG''@;'; + put 'put ''YSksWm4pKX1YaS5jaGVja0lmUXVldWVJc0VtcHR5KCl9fWZ1bmN0aW9uIEphKEZuLFpuKXt2YXIgX3I9Rm4ubGVuZ3RoLTE7aWYoIShfcjwwKSl7Zm9yKDtfcj49MDtfci0tKXt2YXIgWHI9ITE7aWYobnVsbCE9PUZuW19yXSl7aWYobnVsbCE9Rm5bX3JdWzJdfHxudWxsIT1Gbltfcl1bM10p''@;'; + put 'put ''e2lmKGZuLmFsbG93SW5zZXJ0Um93KWZvcig7Rm5bX3JdWzBdPkkuY291bnRSb3dzKCktMTspe3ZhciBjaT11ZS5jcmVhdGVSb3codm9pZCAwLHZvaWQgMCxabik7aWYoIShjaT49MSkpe1hyPSEwO2JyZWFrfSR0LmNyZWF0ZVJvdyhudWxsLGNpKX1pZigiYXJyYXkiPT09SS5kYXRhVHlwZSYm''@;'; + put 'put ''KCFmbi5jb2x1bW5zfHwwPT09Zm4uY29sdW1ucy5sZW5ndGgpJiZmbi5hbGxvd0luc2VydENvbHVtbilmb3IoO3VlLnByb3BUb0NvbChGbltfcl1bMV0pPkkuY291bnRDb2xzKCktMTspe3ZhciBjMD11ZS5jcmVhdGVDb2wodm9pZCAwLHZvaWQgMCxabik7aWYoIShjMD49MSkpe1hyPSEwO2Jy''@;'; + put 'put ''ZWFrfSR0LmNyZWF0ZUNvbHVtbihudWxsLGMwKX1Ycnx8dWUuc2V0KEZuW19yXVswXSxGbltfcl1bMV0sRm5bX3JdWzNdKX19ZWxzZSBGbi5zcGxpY2UoX3IsMSl9SS5mb3JjZUZ1bGxSZW5kZXI9ITAsQmUuYWRqdXN0Um93c0FuZENvbHMoKSxJLnJ1bkhvb2tzKCJiZWZvcmVDaGFuZ2VSZW5k''@;'; + put 'put ''ZXIiLEZuLFpuKSxOZS5sb2NrRWRpdG9yKCksSS5fcmVmcmVzaEJvcmRlcnMobnVsbCksTmUudW5sb2NrRWRpdG9yKCksSS52aWV3LmFkanVzdEVsZW1lbnRzU2l6ZSgpLEkucnVuSG9va3MoImFmdGVyQ2hhbmdlIixGbixabnx8ImVkaXQiKTt2YXIgWGk9SS5nZXRBY3RpdmVFZGl0b3IoKTtY''@;'; + put 'put ''aSYmVG8oWGkucmVmcmVzaFZhbHVlKSYmWGkucmVmcmVzaFZhbHVlKCl9fWZ1bmN0aW9uIGxhKEZuLFpuLF9yKXtyZXR1cm4gQXJyYXkuaXNBcnJheShGbik/Rm46W1tGbixabixfcl1dfXRoaXMuY29sdW1uSW5kZXhNYXBwZXIuYWRkTG9jYWxIb29rKCJjYWNoZVVwZGF0ZWQiLFFyKSx0aGlz''@;'; + put 'put ''LnJvd0luZGV4TWFwcGVyLmFkZExvY2FsSG9vaygiY2FjaGVVcGRhdGVkIixRciksdGhpcy5zZWxlY3Rpb24uYWRkTG9jYWxIb29rKCJiZWZvcmVTZXRSYW5nZVN0YXJ0IixmdW5jdGlvbihGbil7di5ydW5Ib29rcygiYmVmb3JlU2V0UmFuZ2VTdGFydCIsRm4pfSksdGhpcy5zZWxlY3Rpb24u''@;'; + put 'put ''YWRkTG9jYWxIb29rKCJiZWZvcmVTZXRSYW5nZVN0YXJ0T25seSIsZnVuY3Rpb24oRm4pe3YucnVuSG9va3MoImJlZm9yZVNldFJhbmdlU3RhcnRPbmx5IixGbil9KSx0aGlzLnNlbGVjdGlvbi5hZGRMb2NhbEhvb2soImJlZm9yZVNldFJhbmdlRW5kIixmdW5jdGlvbihGbil7di5ydW5Ib29r''@;'; + put 'put ''cygiYmVmb3JlU2V0UmFuZ2VFbmQiLEZuKSxGbi5yb3c8MCYmKEZuLnJvdz12LnZpZXcuX3d0Lnd0VGFibGUuZ2V0Rmlyc3RWaXNpYmxlUm93KCkpLEZuLmNvbDwwJiYoRm4uY29sPXYudmlldy5fd3Qud3RUYWJsZS5nZXRGaXJzdFZpc2libGVDb2x1bW4oKSl9KSx0aGlzLnNlbGVjdGlvbi5h''@;'; + put 'put ''ZGRMb2NhbEhvb2soImFmdGVyU2V0UmFuZ2VFbmQiLGZ1bmN0aW9uKEZuKXt2YXIgWm49U1MoITEpLF9yPXYuc2VsZWN0aW9uLmdldFNlbGVjdGVkUmFuZ2UoKSxYcj1fci5jdXJyZW50KCksY2k9WHIuZnJvbSxjMD1Yci50byxYaT1fci5zaXplKCktMTt2LnJ1bkhvb2tzKCJhZnRlclNlbGVj''@;'; + put 'put ''dGlvbiIsY2kucm93LGNpLmNvbCxjMC5yb3csYzAuY29sLFpuLFhpKSx2LnJ1bkhvb2tzKCJhZnRlclNlbGVjdGlvbkJ5UHJvcCIsY2kucm93LEkuY29sVG9Qcm9wKGNpLmNvbCksYzAucm93LEkuY29sVG9Qcm9wKGMwLmNvbCksWm4sWGkpO3ZhciBFMD12LnNlbGVjdGlvbi5pc1NlbGVjdGVk''@;'; + put 'put ''QnlBbnlIZWFkZXIoKSx6MD12LnNlbGVjdGlvbi5zZWxlY3RlZFJhbmdlLmN1cnJlbnQoKSxrbz0hMDtDJiYoa289ITEpLFpuLmlzVG91Y2hlZCgpJiYoa289IVpuLnZhbHVlKTt2YXIgd289di5zZWxlY3Rpb24uaXNTZWxlY3RlZEJ5Um93SGVhZGVyKCksV2E9di5zZWxlY3Rpb24uaXNTZWxl''@;'; + put 'put ''Y3RlZEJ5Q29sdW1uSGVhZGVyKCk7ITEhPT1rbyYmKEUwP3dvP3Yudmlldy5zY3JvbGxWaWV3cG9ydFZlcnRpY2FsbHkoSS5yb3dJbmRleE1hcHBlci5nZXRSZW5kZXJhYmxlRnJvbVZpc3VhbEluZGV4KEZuLnJvdykpOldhJiZ2LnZpZXcuc2Nyb2xsVmlld3BvcnRIb3Jpem9udGFsbHkoSS5j''@;'; + put 'put ''b2x1bW5JbmRleE1hcHBlci5nZXRSZW5kZXJhYmxlRnJvbVZpc3VhbEluZGV4KEZuLmNvbCkpOnowJiYhdi5zZWxlY3Rpb24uaXNNdWx0aXBsZSgpP3Yudmlldy5zY3JvbGxWaWV3cG9ydChtcih6MC5mcm9tKSk6di52aWV3LnNjcm9sbFZpZXdwb3J0KG1yKEZuKSkpLHdvJiZXYT9PMCh2LnJv''@;'; + put 'put ''b3RFbGVtZW50LFsiaHRfX3NlbGVjdGlvbi0tcm93cyIsImh0X19zZWxlY3Rpb24tLWNvbHVtbnMiXSk6d28/KHBsKHYucm9vdEVsZW1lbnQsImh0X19zZWxlY3Rpb24tLWNvbHVtbnMiKSxPMCh2LnJvb3RFbGVtZW50LCJodF9fc2VsZWN0aW9uLS1yb3dzIikpOldhPyhwbCh2LnJvb3RFbGVt''@;'; + put 'put ''ZW50LCJodF9fc2VsZWN0aW9uLS1yb3dzIiksTzAodi5yb290RWxlbWVudCwiaHRfX3NlbGVjdGlvbi0tY29sdW1ucyIpKTpwbCh2LnJvb3RFbGVtZW50LFsiaHRfX3NlbGVjdGlvbi0tcm93cyIsImh0X19zZWxlY3Rpb24tLWNvbHVtbnMiXSksdi5fcmVmcmVzaEJvcmRlcnMobnVsbCl9KSx0''@;'; + put 'put ''aGlzLnNlbGVjdGlvbi5hZGRMb2NhbEhvb2soImFmdGVyU2VsZWN0aW9uRmluaXNoZWQiLGZ1bmN0aW9uKEZuKXt2YXIgWm49Rm4ubGVuZ3RoLTEsX3I9Rm5bWm5dLFhyPV9yLmZyb20sY2k9X3IudG87di5ydW5Ib29rcygiYWZ0ZXJTZWxlY3Rpb25FbmQiLFhyLnJvdyxYci5jb2wsY2kucm93''@;'; + put 'put ''LGNpLmNvbCxabiksdi5ydW5Ib29rcygiYWZ0ZXJTZWxlY3Rpb25FbmRCeVByb3AiLFhyLnJvdyxJLmNvbFRvUHJvcChYci5jb2wpLGNpLnJvdyxJLmNvbFRvUHJvcChjaS5jb2wpLFpuKX0pLHRoaXMuc2VsZWN0aW9uLmFkZExvY2FsSG9vaygiYWZ0ZXJJc011bHRpcGxlU2VsZWN0aW9uIixm''@;'; + put 'put ''dW5jdGlvbihGbil7dmFyIFpuPXYucnVuSG9va3MoImFmdGVySXNNdWx0aXBsZVNlbGVjdGlvbiIsRm4udmFsdWUpO0ZuLnZhbHVlJiYoRm4udmFsdWU9Wm4pfSksdGhpcy5zZWxlY3Rpb24uYWRkTG9jYWxIb29rKCJiZWZvcmVNb2RpZnlUcmFuc2Zvcm1TdGFydCIsZnVuY3Rpb24oRm4pe3Yu''@;'; + put 'put ''cnVuSG9va3MoIm1vZGlmeVRyYW5zZm9ybVN0YXJ0IixGbil9KSx0aGlzLnNlbGVjdGlvbi5hZGRMb2NhbEhvb2soImFmdGVyTW9kaWZ5VHJhbnNmb3JtU3RhcnQiLGZ1bmN0aW9uKEZuLFpuLF9yKXt2LnJ1bkhvb2tzKCJhZnRlck1vZGlmeVRyYW5zZm9ybVN0YXJ0IixGbixabixfcil9KSx0''@;'; + put 'put ''aGlzLnNlbGVjdGlvbi5hZGRMb2NhbEhvb2soImJlZm9yZU1vZGlmeVRyYW5zZm9ybUVuZCIsZnVuY3Rpb24oRm4pe3YucnVuSG9va3MoIm1vZGlmeVRyYW5zZm9ybUVuZCIsRm4pfSksdGhpcy5zZWxlY3Rpb24uYWRkTG9jYWxIb29rKCJhZnRlck1vZGlmeVRyYW5zZm9ybUVuZCIsZnVuY3Rp''@;'; + put 'put ''b24oRm4sWm4sX3Ipe3YucnVuSG9va3MoImFmdGVyTW9kaWZ5VHJhbnNmb3JtRW5kIixGbixabixfcil9KSx0aGlzLnNlbGVjdGlvbi5hZGRMb2NhbEhvb2soImFmdGVyRGVzZWxlY3QiLGZ1bmN0aW9uKCl7TmUuZGVzdHJveUVkaXRvcigpLHYuX3JlZnJlc2hCb3JkZXJzKCkscGwodi5yb290''@;'; + put 'put ''RWxlbWVudCxbImh0X19zZWxlY3Rpb24tLXJvd3MiLCJodF9fc2VsZWN0aW9uLS1jb2x1bW5zIl0pLHYucnVuSG9va3MoImFmdGVyRGVzZWxlY3QiKX0pLHRoaXMuc2VsZWN0aW9uLmFkZExvY2FsSG9vaygiaW5zZXJ0Um93UmVxdWlyZSIsZnVuY3Rpb24oRm4pe3YuYWx0ZXIoImluc2VydF9y''@;'; + put 'put ''b3ciLEZuLDEsImF1dG8iKX0pLHRoaXMuc2VsZWN0aW9uLmFkZExvY2FsSG9vaygiaW5zZXJ0Q29sUmVxdWlyZSIsZnVuY3Rpb24oRm4pe3YuYWx0ZXIoImluc2VydF9jb2wiLEZuLDEsImF1dG8iKX0pLEJlPXthbHRlcjpmdW5jdGlvbihabixfcil7dmFyIFhpLFhyPWFyZ3VtZW50cy5sZW5n''@;'; + put 'put ''dGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXToxLGNpPWFyZ3VtZW50cy5sZW5ndGg+Mz9hcmd1bWVudHNbM106dm9pZCAwLGMwPWFyZ3VtZW50cy5sZW5ndGg+ND9hcmd1bWVudHNbNF06dm9pZCAwLEUwPWZ1bmN0aW9uKGpnKXtpZigwPT09amcubGVuZ3RoKXJldHVy''@;'; + put 'put ''bltdO3ZhciBkZD1SdyhqZyk7cmV0dXJuIGRkLnNvcnQoZnVuY3Rpb24oaDMsR3Upe3ZhciBXdT1JZyhoMywxKVswXSxIcD1JZyhHdSwxKVswXTtyZXR1cm4gV3U9PT1IcD8wOld1PkhwPzE6LTF9KSxTdShkZCxmdW5jdGlvbihoMyxHdSl7dmFyIEV1PUlnKEd1LDIpLFd1PUV1WzBdLHBkPUV1''@;'; + put 'put ''WzFdLEhwPWgzW2gzLmxlbmd0aC0xXSxOcD1JZyhIcCwyKSxoUj1OcFswXStOcFsxXTtpZihXdTw9aFIpe3ZhciBXbmU9TWF0aC5tYXgocGQtKGhSLVd1KSwwKTtIcFsxXSs9V25lfWVsc2UgaDMucHVzaChbV3UscGRdKTtyZXR1cm4gaDN9LFtkZFswXV0pfTtzd2l0Y2goWm4pe2Nhc2UiaW5z''@;'; + put 'put ''ZXJ0X3JvdyI6dmFyIHowPUkuY291bnRTb3VyY2VSb3dzKCk7aWYoZm4ubWF4Um93cz09PXowKXJldHVybjtpZihfcj1Ubyhfcik/X3I6ejAsWGk9dWUuY3JlYXRlUm93KF9yLFhyLGNpKSl7JHQuY3JlYXRlUm93KEkudG9QaHlzaWNhbFJvdyhfciksWHIpO3ZhciBrbz13ci5zZWxlY3RlZFJh''@;'; + put 'put ''bmdlLmN1cnJlbnQoKSx3bz1udWxsPT1rbz92b2lkIDA6a28uZnJvbSxXYT1udWxsPT13bz92b2lkIDA6d28ucm93O2lmKFRvKFdhKSYmV2E+PV9yKXt2YXIgZTI9a28udG8sRmE9ZTIucm93LHQyPWUyLmNvbCxPMT13by5jb2w7d3IuaXNTZWxlY3RlZEJ5Um93SGVhZGVyKCkmJihPMT0tMSks''@;'; + put 'put ''d3IuZ2V0U2VsZWN0ZWRSYW5nZSgpLnBvcCgpLHdyLnNldFJhbmdlU3RhcnRPbmx5KEkuX2NyZWF0ZUNlbGxDb29yZHMoV2ErWGksTzEpLCEwKSx3ci5zZXRSYW5nZUVuZChJLl9jcmVhdGVDZWxsQ29vcmRzKEZhK1hpLHQyKSl9ZWxzZSBJLl9yZWZyZXNoQm9yZGVycygpfWJyZWFrO2Nhc2Ui''@;'; + put 'put ''aW5zZXJ0X2NvbCI6aWYoWGk9dWUuY3JlYXRlQ29sKF9yLFhyLGNpKSl7aWYoJHQuY3JlYXRlQ29sdW1uKEkudG9QaHlzaWNhbENvbHVtbihfciksWHIpLEFycmF5LmlzQXJyYXkoZm4uY29sSGVhZGVycykpe3ZhciBSMT1bX3IsMF07UjEubGVuZ3RoKz1YaSxBcnJheS5wcm90b3R5cGUuc3Bs''@;'; + put 'put ''aWNlLmFwcGx5KGZuLmNvbEhlYWRlcnMsUjEpfXZhciB6dT13ci5zZWxlY3RlZFJhbmdlLmN1cnJlbnQoKSxQYz1udWxsPT16dT92b2lkIDA6enUuZnJvbSxpdT1udWxsPT1QYz92b2lkIDA6UGMuY29sO2lmKFRvKGl1KSYmaXU+PV9yKXt2YXIgRmM9enUudG8saGQ9RmMucm93LGZSPUZjLmNv''@;'; + put 'put ''bCxLdz1QYy5yb3c7d3IuaXNTZWxlY3RlZEJ5Q29sdW1uSGVhZGVyKCkmJihLdz0tMSksd3IuZ2V0U2VsZWN0ZWRSYW5nZSgpLnBvcCgpLHdyLnNldFJhbmdlU3RhcnRPbmx5KEkuX2NyZWF0ZUNlbGxDb29yZHMoS3csaXUrWGkpLCEwKSx3ci5zZXRSYW5nZUVuZChJLl9jcmVhdGVDZWxsQ29v''@;'; + put 'put ''cmRzKGhkLGZSK1hpKSl9ZWxzZSBJLl9yZWZyZXNoQm9yZGVycygpfWJyZWFrO2Nhc2UicmVtb3ZlX3JvdyI6dmFyIFp6PWZ1bmN0aW9uKGpnKXt2YXIgZGQ9MDtVcihqZyxmdW5jdGlvbihTTSl7dmFyIGgzPUlnKFNNLDIpLEd1PWgzWzBdLEV1PWgzWzFdLFd1PWRjKEd1KT9JLmNvdW50Um93''@;'; + put 'put ''cygpLTE6TWF0aC5tYXgoR3UtZGQsMCk7aWYoTnVtYmVyLmlzSW50ZWdlcihHdSkmJihHdT1NYXRoLm1heChHdS1kZCwwKSksdWUucmVtb3ZlUm93KEd1LEV1LGNpKSl7JHQucmVtb3ZlUm93KEkudG9QaHlzaWNhbFJvdyhXdSksRXUpO3ZhciBIcD1JLmNvdW50Um93cygpLE5wPWZuLmZpeGVk''@;'; + put 'put ''Um93c1RvcDtOcD49V3UrMSYmKGZuLmZpeGVkUm93c1RvcC09TWF0aC5taW4oRXUsTnAtV3UpKTt2YXIgbzk9Zm4uZml4ZWRSb3dzQm90dG9tO285JiZXdT49SHAtbzkmJihmbi5maXhlZFJvd3NCb3R0b20tPU1hdGgubWluKEV1LG85KSksZGQrPUV1fX0pfTtBcnJheS5pc0FycmF5KF9yKT9a''@;'; + put 'put ''eihFMChfcikpOlp6KFtbX3IsWHJdXSksQmUuYWRqdXN0Um93c0FuZENvbHMoKSxJLl9yZWZyZXNoQm9yZGVycygpO2JyZWFrO2Nhc2UicmVtb3ZlX2NvbCI6dmFyIHp6PWZ1bmN0aW9uKGpnKXt2YXIgZGQ9MDtVcihqZyxmdW5jdGlvbihTTSl7dmFyIGgzPUlnKFNNLDIpLEd1PWgzWzBdLEV1''@;'; + put 'put ''PWgzWzFdLFd1PWRjKEd1KT9JLmNvdW50Q29scygpLTE6TWF0aC5tYXgoR3UtZGQsMCkscGQ9SS50b1BoeXNpY2FsQ29sdW1uKFd1KTtpZihOdW1iZXIuaXNJbnRlZ2VyKEd1KSYmKEd1PU1hdGgubWF4KEd1LWRkLDApKSx1ZS5yZW1vdmVDb2woR3UsRXUsY2kpKXskdC5yZW1vdmVDb2x1bW4o''@;'; + put 'put ''cGQsRXUpO3ZhciBOcD1mbi5maXhlZENvbHVtbnNTdGFydDtOcD49V3UrMSYmKGZuLmZpeGVkQ29sdW1uc1N0YXJ0LT1NYXRoLm1pbihFdSxOcC1XdSkpLEFycmF5LmlzQXJyYXkoZm4uY29sSGVhZGVycykmJih2b2lkIDA9PT1wZCYmKHBkPS0xKSxmbi5jb2xIZWFkZXJzLnNwbGljZShwZCxF''@;'; + put 'put ''dSkpLGRkKz1FdX19KX07QXJyYXkuaXNBcnJheShfcik/enooRTAoX3IpKTp6eihbW19yLFhyXV0pLEJlLmFkanVzdFJvd3NBbmRDb2xzKCksSS5fcmVmcmVzaEJvcmRlcnMoKTticmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcignVGhlcmUgaXMgbm8gc3VjaCBhY3Rpb24gIicuY29uY2F0''@;'; + put 'put ''KFpuLCciJykpfWMwfHxCZS5hZGp1c3RSb3dzQW5kQ29scygpfSxhZGp1c3RSb3dzQW5kQ29sczpmdW5jdGlvbigpe3ZhciBrbyxabj1mbi5taW5Sb3dzLF9yPWZuLm1pblNwYXJlUm93cyxYcj1mbi5taW5Db2xzLGNpPWZuLm1pblNwYXJlQ29scztpZihabil7dmFyIGMwPUkuY291bnRSb3dz''@;'; + put 'put ''KCk7YzA8Wm4mJnVlLmNyZWF0ZVJvdyhjMCxabi1jMCwiYXV0byIpfWlmKF9yKXt2YXIgWGk9SS5jb3VudEVtcHR5Um93cyghMCk7aWYoWGk8X3Ipe3ZhciB6MD1NYXRoLm1pbihfci1YaSxmbi5tYXhSb3dzLUkuY291bnRTb3VyY2VSb3dzKCkpO3VlLmNyZWF0ZVJvdyhJLmNvdW50Um93cygp''@;'; + put 'put ''LHowLCJhdXRvIil9fShYcnx8Y2kpJiYoa289SS5jb3VudEVtcHR5Q29scyghMCkpO3ZhciB3bz1JLmNvdW50Q29scygpO2lmKFhyJiYhZm4uY29sdW1ucyYmd288WHIpe3ZhciBXYT1Yci13bztrbys9V2EsdWUuY3JlYXRlQ29sKHdvLFdhLCJhdXRvIil9aWYoY2kmJiFmbi5jb2x1bW5zJiYi''@;'; + put 'put ''YXJyYXkiPT09SS5kYXRhVHlwZSYma288Y2kpe3dvPUkuY291bnRDb2xzKCk7dmFyIEZhPU1hdGgubWluKGNpLWtvLGZuLm1heENvbHMtd28pO3VlLmNyZWF0ZUNvbCh3byxGYSwiYXV0byIpfXZhciB0Mj1JLmNvdW50Um93cygpLE8xPUkuY291bnRDb2xzKCk7KDA9PT10Mnx8MD09PU8xKSYm''@;'; + put 'put ''d3IuZGVzZWxlY3QoKSx3ci5pc1NlbGVjdGVkKCkmJlVyKHdyLnNlbGVjdGVkUmFuZ2UsZnVuY3Rpb24oUjEpe3ZhciB6dT0hMSxQYz1SMS5mcm9tLnJvdyxpdT1SMS5mcm9tLmNvbCxGYz1SMS50by5yb3csaGQ9UjEudG8uY29sO1BjPnQyLTE/KHp1PSEwLEZjPihQYz10Mi0xKSYmKEZjPVBj''@;'; + put 'put ''KSk6RmM+dDItMSYmKHp1PSEwLFBjPihGYz10Mi0xKSYmKFBjPUZjKSksaXU+TzEtMT8oenU9ITAsaGQ+KGl1PU8xLTEpJiYoaGQ9aXUpKTpoZD5PMS0xJiYoenU9ITAsaXU+KGhkPU8xLTEpJiYoaXU9aGQpKSx6dSYmSS5zZWxlY3RDZWxsKFBjLGl1LEZjLGhkKX0pLEkudmlldyYmSS52aWV3''@;'; + put 'put ''LmFkanVzdEVsZW1lbnRzU2l6ZSgpfSxwb3B1bGF0ZUZyb21BcnJheTpmdW5jdGlvbihabixfcixYcixjaSxjMCxYaSxFMCl7dmFyIHowLGtvLHdvLFdhLGUyPVtdLEZhPXt9LHQyPVtdLE8xPVpuLnJvdyxSMT1abi5jb2w7aWYoMD09PShrbz1fci5sZW5ndGgpKXJldHVybiExO3ZhciB6dT0w''@;'; + put 'put ''LFBjPTA7c3dpdGNoKHhsKFhyKSYmKHp1PVhyLmNvbC1SMSsxLFBjPVhyLnJvdy1PMSsxKSxjMCl7Y2FzZSJzaGlmdF9kb3duIjp2YXIgaXU9RFooX3IpLEZjPWl1Lmxlbmd0aCxoZD1NYXRoLm1heChGYyx6dSksZlI9SS5nZXREYXRhKCkuc2xpY2UoTzEpLEt3PURaKGZSKS5zbGljZShSMSxS''@;'; + put 'put ''MStoZCk7Zm9yKHdvPTA7d288aGQ7d28rPTEpaWYod288RmMpe2Zvcih6MD0wLGtvPWl1W3dvXS5sZW5ndGg7ejA8UGMta287ejArPTEpaXVbd29dLnB1c2goaXVbd29dW3owJWtvXSk7dDIucHVzaChpdVt3b10uY29uY2F0KHdvPEt3Lmxlbmd0aD9Ld1t3b106bmV3IEFycmF5KGZSLmxlbmd0''@;'; + put 'put ''aCkuZmlsbChudWxsKSkpfWVsc2UgdDIucHVzaChpdVt3byVGY10uY29uY2F0KEt3W3dvXSkpO0kucG9wdWxhdGVGcm9tQXJyYXkoTzEsUjEsRFoodDIpKTticmVhaztjYXNlInNoaWZ0X3JpZ2h0Ijp2YXIgWno9X3IubGVuZ3RoLHp6PU1hdGgubWF4KFp6LFBjKSwkdz1JLmdldERhdGEoKS5z''@;'; + put 'put ''bGljZShPMSkubWFwKGZ1bmN0aW9uKEJMZSl7cmV0dXJuIEJMZS5zbGljZShSMSl9KTtmb3IoejA9MDt6MDx6ejt6MCs9MSlpZih6MDxaeil7Zm9yKHdvPTAsV2E9X3JbejBdLmxlbmd0aDt3bzx6dS1XYTt3bys9MSlfclt6MF0ucHVzaChfclt6MF1bd28lV2FdKTt2YXIgZGQ7aWYoejA8JHcu''@;'; + put 'put ''bGVuZ3RoKWZvcih2YXIgamc9MDtqZzwkd1t6MF0ubGVuZ3RoO2pnKz0xKV9yW3owXS5wdXNoKCR3W3owXVtqZ10pO2Vsc2UoZGQ9X3JbejBdKS5wdXNoLmFwcGx5KGRkLFJ3KG5ldyBBcnJheSgkd1swXS5sZW5ndGgpLmZpbGwobnVsbCkpKX1lbHNlIF9yLnB1c2goX3JbejAla29dLnNsaWNl''@;'; + put 'put ''KDAsenopLmNvbmNhdCgkd1t6MF0pKTtJLnBvcHVsYXRlRnJvbUFycmF5KE8xLFIxLF9yKTticmVhaztkZWZhdWx0OkZhLnJvdz1abi5yb3csRmEuY29sPVpuLmNvbDt2YXIgV3UsU009e3JvdzpYciYmWm4/WHIucm93LVpuLnJvdysxOjEsY29sOlhyJiZabj9Yci5jb2wtWm4uY29sKzE6MX0s''@;'; + put 'put ''aDM9MCxHdT0wLEV1PSEwLHBkPWZ1bmN0aW9uKEtBdCl7dmFyIFBMZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06bnVsbCxSbWU9X3JbS0F0JV9yLmxlbmd0aF07cmV0dXJuIG51bGwhPT1QTGU/Um1lW1BMZSVSbWUubGVuZ3RoXTpSbWV9''@;'; + put 'put ''LEhwPV9yLmxlbmd0aCxOcD1Ycj9Yci5yb3ctWm4ucm93KzE6MDtmb3Ioa289WHI/TnA6TWF0aC5tYXgoSHAsTnApLHowPTA7ejA8a28mJiEoWHImJkZhLnJvdz5Yci5yb3cmJk5wPkhwfHwhZm4uYWxsb3dJbnNlcnRSb3cmJkZhLnJvdz5JLmNvdW50Um93cygpLTF8fEZhLnJvdz49Zm4ubWF4''@;'; + put 'put ''Um93cyk7ejArKyl7dmFyIG85PXowLWgzLEduZT1wZChvOSkubGVuZ3RoLGhSPVhyP1hyLmNvbC1abi5jb2wrMTowO2lmKFdhPVhyP2hSOk1hdGgubWF4KEduZSxoUiksRmEuY29sPVpuLmNvbCxXdT1JLmdldENlbGxNZXRhKEZhLnJvdyxGYS5jb2wpLCJDb3B5UGFzdGUucGFzdGUiIT09Y2km''@;'; + put 'put ''JiJBdXRvZmlsbC5maWxsIiE9PWNpfHwhV3Uuc2tpcFJvd09uUGFzdGUpe2ZvcihHdT0wLHdvPTA7d288V2EmJiEoWHImJkZhLmNvbD5Yci5jb2wmJmhSPkduZXx8IWZuLmFsbG93SW5zZXJ0Q29sdW1uJiZGYS5jb2w+SS5jb3VudENvbHMoKS0xfHxGYS5jb2w+PWZuLm1heENvbHMpO3dvKysp''@;'; + put 'put ''aWYoV3U9SS5nZXRDZWxsTWV0YShGYS5yb3csRmEuY29sKSwiQ29weVBhc3RlLnBhc3RlIiE9PWNpJiYiQXV0b2ZpbGwuZmlsbCIhPT1jaXx8IVd1LnNraXBDb2x1bW5PblBhc3RlKWlmKFd1LnJlYWRPbmx5JiYiVW5kb1JlZG8udW5kbyIhPT1jaSlGYS5jb2wrPTE7ZWxzZXt2YXIgV25lPXdv''@;'; + put 'put ''LUd1LFZwPXBkKG85LFduZSksWmc9SS5nZXREYXRhQXRDZWxsKEZhLnJvdyxGYS5jb2wpO2lmKCJBdXRvZmlsbC5maWxsIj09PWNpKXt2YXIgT21lPUkucnVuSG9va3MoImJlZm9yZUF1dG9maWxsSW5zaWRlUG9wdWxhdGUiLHtyb3c6bzksY29sOlduZX0sWGksX3IsRTAse30sU00pO09tZSYm''@;'; + put 'put ''KFZwPWExKE9tZS52YWx1ZSk/VnA6T21lLnZhbHVlKX1udWxsIT09VnAmJiJvYmplY3QiPT09ZmQoVnApPyhBcnJheS5pc0FycmF5KFZwKSYmbnVsbD09PVpnJiYoWmc9W10pLG51bGw9PT1aZ3x8Im9iamVjdCIhPT1mZChaZyk/RXU9ITE6S2hlKGFPKEFycmF5LmlzQXJyYXkoWmcpP1pnOlpn''@;'; + put 'put ''WzBdfHxaZyksYU8oQXJyYXkuaXNBcnJheShWcCk/VnA6VnBbMF18fFZwKSk/VnA9Z2goVnApOkV1PSExKTpudWxsIT09WmcmJiJvYmplY3QiPT09ZmQoWmcpJiYoRXU9ITEpLEV1JiZlMi5wdXNoKFtGYS5yb3csRmEuY29sLFZwXSksRXU9ITAsRmEuY29sKz0xfWVsc2UgR3UrPTEsRmEuY29s''@;'; + put 'put ''Kz0xLFdhKz0xO0ZhLnJvdys9MX1lbHNlIGgzKz0xLEZhLnJvdys9MSxrbys9MX1JLnNldERhdGFBdENlbGwoZTIsbnVsbCxudWxsLGNpfHwicG9wdWxhdGVGcm9tQXJyYXkiKX19fSx0aGlzLmluaXQ9ZnVuY3Rpb24oKXtfZS5zZXREYXRhKGZuLmRhdGEpLEkucnVuSG9va3MoImJlZm9yZUlu''@;'; + put 'put ''aXQiKSwoYjgoKXx8cWhlKCkpJiZPMChJLnJvb3RFbGVtZW50LCJtb2JpbGUiKSx0aGlzLnVwZGF0ZVNldHRpbmdzKGZuLCEwKSx0aGlzLnZpZXc9bmV3IEJRZSh0aGlzKSxOZT1XWmUuZ2V0SW5zdGFuY2UoSSxmbix3ciksSS5ydW5Ib29rcygiaW5pdCIpLHRoaXMuZm9yY2VGdWxsUmVuZGVy''@;'; + put 'put ''PSEwLHRoaXMudmlldy5yZW5kZXIoKSwib2JqZWN0Ij09PWZkKEtlKSYmKEkucnVuSG9va3MoImFmdGVyQ2hhbmdlIixLZVswXSxLZVsxXSksS2U9ITEpLEkucnVuSG9va3MoImFmdGVySW5pdCIpfSx0aGlzLl9jcmVhdGVDZWxsQ29vcmRzPWZ1bmN0aW9uKEZuLFpuKXtyZXR1cm4gSS52aWV3''@;'; + put 'put ''Ll93dC5jcmVhdGVDZWxsQ29vcmRzKEZuLFpuKX0sdGhpcy5fY3JlYXRlQ2VsbFJhbmdlPWZ1bmN0aW9uKEZuLFpuLF9yKXtyZXR1cm4gSS52aWV3Ll93dC5jcmVhdGVDZWxsUmFuZ2UoRm4sWm4sX3IpfSx0aGlzLnZhbGlkYXRlQ2VsbD1mdW5jdGlvbihGbixabixfcixYcil7dmFyIFhpLGNp''@;'; + put 'put ''PUkuZ2V0Q2VsbFZhbGlkYXRvcihabik7ZnVuY3Rpb24gYzAoWGkpe3ZhciBFMD0hKGFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdKXx8YXJndW1lbnRzWzFdO2lmKEUwJiYhMCE9PVpuLmhpZGRlbil7dmFyIHowPVpuLnZpc3VhbENvbCxrbz1abi52aXN1YWxSb3cs''@;'; + put 'put ''d289SS5nZXRDZWxsKGtvLHowLCEwKTtpZih3byYmIlRIIiE9PXdvLm5vZGVOYW1lKXt2YXIgV2E9SS5yb3dJbmRleE1hcHBlci5nZXRSZW5kZXJhYmxlRnJvbVZpc3VhbEluZGV4KGtvKSxlMj1JLmNvbHVtbkluZGV4TWFwcGVyLmdldFJlbmRlcmFibGVGcm9tVmlzdWFsSW5kZXgoejApO0ku''@;'; + put 'put ''dmlldy5fd3QuZ2V0U2V0dGluZygiY2VsbFJlbmRlcmVyIixXYSxlMix3byl9X3IoWGkpfWVsc2UgX3IoWGkpfUliZShjaSkmJihYaT1jaSxjaT1mdW5jdGlvbihFMCx6MCl7ejAoWGkudGVzdChFMCkpfSksVTIoY2kpPyhGbj1JLnJ1bkhvb2tzKCJiZWZvcmVWYWxpZGF0ZSIsRm4sWm4udmlz''@;'; + put 'put ''dWFsUm93LFpuLnByb3AsWHIpLEkuX3JlZ2lzdGVySW1tZWRpYXRlKGZ1bmN0aW9uKCl7Y2kuY2FsbChabixGbixmdW5jdGlvbihYaSl7IUl8fChYaT1JLnJ1bkhvb2tzKCJhZnRlclZhbGlkYXRlIixYaSxGbixabi52aXN1YWxSb3csWm4ucHJvcCxYciksWm4udmFsaWQ9WGksYzAoWGkpLEku''@;'; + put 'put ''cnVuSG9va3MoInBvc3RBZnRlclZhbGlkYXRlIixYaSxGbixabi52aXN1YWxSb3csWm4ucHJvcCxYcikpfSl9KSk6SS5fcmVnaXN0ZXJJbW1lZGlhdGUoZnVuY3Rpb24oKXtabi52YWxpZD0hMCxjMChabi52YWxpZCwhMSl9KX0sdGhpcy5zZXREYXRhQXRDZWxsPWZ1bmN0aW9uKEZuLFpuLF9y''@;'; + put 'put ''LFhyKXt2YXIgRTAsejAsa28sY2k9bGEoRm4sWm4sX3IpLGMwPVtdLFhpPVhyO2ZvcihFMD0wLHowPWNpLmxlbmd0aDtFMDx6MDtFMCsrKXtpZigib2JqZWN0IiE9PWZkKGNpW0UwXSkpdGhyb3cgbmV3IEVycm9yKCJNZXRob2QgYHNldERhdGFBdENlbGxgIGFjY2VwdHMgcm93IG51bWJlciBv''@;'; + put 'put ''ciBjaGFuZ2VzIGFycmF5IG9mIGFycmF5cyBhcyBpdHMgZmlyc3QgcGFyYW1ldGVyIik7aWYoIm51bWJlciIhPXR5cGVvZiBjaVtFMF1bMV0pdGhyb3cgbmV3IEVycm9yKCJNZXRob2QgYHNldERhdGFBdENlbGxgIGFjY2VwdHMgcm93IGFuZCBjb2x1bW4gbnVtYmVyIGFzIGl0cyBwYXJhbWV0''@;'; + put 'put ''ZXJzLiBJZiB5b3Ugd2FudCB0byB1c2Ugb2JqZWN0IHByb3BlcnR5IG5hbWUsIHVzZSBtZXRob2QgYHNldERhdGFBdFJvd1Byb3BgIik7a289Y2lbRTBdWzFdPj10aGlzLmNvdW50Q29scygpP2NpW0UwXVsxXTp1ZS5jb2xUb1Byb3AoY2lbRTBdWzFdKSxjMC5wdXNoKFtjaVtFMF1bMF0sa28s''@;'; + put 'put ''X2UuZ2V0QXRDZWxsKHRoaXMudG9QaHlzaWNhbFJvdyhjaVtFMF1bMF0pLGNpW0UwXVsxXSksY2lbRTBdWzJdXSl9IVhpJiYib2JqZWN0Ij09PWZkKEZuKSYmKFhpPVpuKSxJLnJ1bkhvb2tzKCJhZnRlclNldERhdGFBdENlbGwiLGMwLFhpKSxTYShjMCxYaSxmdW5jdGlvbigpe0phKGMwLFhp''@;'; + put 'put ''KX0pfSx0aGlzLnNldERhdGFBdFJvd1Byb3A9ZnVuY3Rpb24oRm4sWm4sX3IsWHIpe3ZhciBFMCx6MCxjaT1sYShGbixabixfciksYzA9W10sWGk9WHI7Zm9yKEUwPTAsejA9Y2kubGVuZ3RoO0UwPHowO0UwKyspYzAucHVzaChbY2lbRTBdWzBdLGNpW0UwXVsxXSxfZS5nZXRBdENlbGwodGhp''@;'; + put 'put ''cy50b1BoeXNpY2FsUm93KGNpW0UwXVswXSksY2lbRTBdWzFdKSxjaVtFMF1bMl1dKTshWGkmJiJvYmplY3QiPT09ZmQoRm4pJiYoWGk9Wm4pLEkucnVuSG9va3MoImFmdGVyU2V0RGF0YUF0Um93UHJvcCIsYzAsWGkpLFNhKGMwLFhpLGZ1bmN0aW9uKCl7SmEoYzAsWGkpfSl9LHRoaXMubGlz''@;'; + put 'put ''dGVuPWZ1bmN0aW9uKCl7SSYmIUkuaXNMaXN0ZW5pbmcoKSYmKGk2ZT1JLmd1aWQsSS5ydW5Ib29rcygiYWZ0ZXJMaXN0ZW4iKSl9LHRoaXMudW5saXN0ZW49ZnVuY3Rpb24oKXt0aGlzLmlzTGlzdGVuaW5nKCkmJihpNmU9bnVsbCxJLnJ1bkhvb2tzKCJhZnRlclVubGlzdGVuIikpfSx0aGlz''@;'; + put 'put ''LmlzTGlzdGVuaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIGk2ZT09PUkuZ3VpZH0sdGhpcy5kZXN0cm95RWRpdG9yPWZ1bmN0aW9uKCl7dmFyIEZuPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdJiZhcmd1bWVudHNbMF0sWm49IShhcmd1bWVudHMubGVuZ3RoPjEmJnZv''@;'; + put 'put ''aWQgMCE9PWFyZ3VtZW50c1sxXSl8fGFyZ3VtZW50c1sxXTtJLl9yZWZyZXNoQm9yZGVycyhGbixabil9LHRoaXMucG9wdWxhdGVGcm9tQXJyYXk9ZnVuY3Rpb24oRm4sWm4sX3IsWHIsY2ksYzAsWGksRTAsejApe2lmKCJvYmplY3QiIT09ZmQoX3IpfHwib2JqZWN0IiE9PWZkKF9yWzBdKSl0''@;'; + put 'put ''aHJvdyBuZXcgRXJyb3IoInBvcHVsYXRlRnJvbUFycmF5IHBhcmFtZXRlciBgaW5wdXRgIG11c3QgYmUgYW4gYXJyYXkgb2YgYXJyYXlzIik7dmFyIGtvPSJudW1iZXIiPT10eXBlb2YgWHI/SS5fY3JlYXRlQ2VsbENvb3JkcyhYcixjaSk6bnVsbDtyZXR1cm4gQmUucG9wdWxhdGVGcm9tQXJy''@;'; + put 'put ''YXkoSS5fY3JlYXRlQ2VsbENvb3JkcyhGbixabiksX3Isa28sYzAsWGksRTAsejApfSx0aGlzLnNwbGljZUNvbD1mdW5jdGlvbihGbixabixfcil7Zm9yKHZhciBYcixjaT1hcmd1bWVudHMubGVuZ3RoLGMwPW5ldyBBcnJheShjaT4zP2NpLTM6MCksWGk9MztYaTxjaTtYaSsrKWMwW1hpLTNd''@;'; + put 'put ''PWFyZ3VtZW50c1tYaV07cmV0dXJuKFhyPXVlKS5zcGxpY2VDb2wuYXBwbHkoWHIsW0ZuLFpuLF9yXS5jb25jYXQoYzApKX0sdGhpcy5zcGxpY2VSb3c9ZnVuY3Rpb24oRm4sWm4sX3Ipe2Zvcih2YXIgWHIsY2k9YXJndW1lbnRzLmxlbmd0aCxjMD1uZXcgQXJyYXkoY2k+Mz9jaS0zOjApLFhp''@;'; + put 'put ''PTM7WGk8Y2k7WGkrKyljMFtYaS0zXT1hcmd1bWVudHNbWGldO3JldHVybihYcj11ZSkuc3BsaWNlUm93LmFwcGx5KFhyLFtGbixabixfcl0uY29uY2F0KGMwKSl9LHRoaXMuZ2V0U2VsZWN0ZWQ9ZnVuY3Rpb24oKXtpZih3ci5pc1NlbGVjdGVkKCkpcmV0dXJuIE9sKHdyLmdldFNlbGVjdGVk''@;'; + put 'put ''UmFuZ2UoKSxmdW5jdGlvbihGbil7dmFyIFpuPUZuLmZyb20sX3I9Rm4udG87cmV0dXJuW1puLnJvdyxabi5jb2wsX3Iucm93LF9yLmNvbF19KX0sdGhpcy5nZXRTZWxlY3RlZExhc3Q9ZnVuY3Rpb24oKXt2YXIgWm4sRm49dGhpcy5nZXRTZWxlY3RlZCgpO3JldHVybiBGbiYmRm4ubGVuZ3Ro''@;'; + put 'put ''PjAmJihabj1GbltGbi5sZW5ndGgtMV0pLFpufSx0aGlzLmdldFNlbGVjdGVkUmFuZ2U9ZnVuY3Rpb24oKXtpZih3ci5pc1NlbGVjdGVkKCkpcmV0dXJuIEFycmF5LmZyb20od3IuZ2V0U2VsZWN0ZWRSYW5nZSgpKX0sdGhpcy5nZXRTZWxlY3RlZFJhbmdlTGFzdD1mdW5jdGlvbigpe3ZhciBa''@;'; + put 'put ''bixGbj10aGlzLmdldFNlbGVjdGVkUmFuZ2UoKTtyZXR1cm4gRm4mJkZuLmxlbmd0aD4wJiYoWm49Rm5bRm4ubGVuZ3RoLTFdKSxabn0sdGhpcy5lbXB0eVNlbGVjdGVkQ2VsbHM9ZnVuY3Rpb24oRm4pe3ZhciBabj10aGlzO2lmKHdyLmlzU2VsZWN0ZWQoKSYmMCE9PXRoaXMuY291bnRSb3dz''@;'; + put 'put ''KCkmJjAhPT10aGlzLmNvdW50Q29scygpKXt2YXIgX3I9W107VXIod3IuZ2V0U2VsZWN0ZWRSYW5nZSgpLGZ1bmN0aW9uKFhyKXt2YXIgY2k9WHIuZ2V0VG9wU3RhcnRDb3JuZXIoKSxjMD1Yci5nZXRCb3R0b21FbmRDb3JuZXIoKTtpYShjaS5yb3csYzAucm93LGZ1bmN0aW9uKFhpKXtpYShj''@;'; + put 'put ''aS5jb2wsYzAuY29sLGZ1bmN0aW9uKEUwKXtabi5nZXRDZWxsTWV0YShYaSxFMCkucmVhZE9ubHl8fF9yLnB1c2goW1hpLEUwLG51bGxdKX0pfSl9KSxfci5sZW5ndGg+MCYmdGhpcy5zZXREYXRhQXRDZWxsKF9yLEZuKX19LHRoaXMuaXNSZW5kZXJTdXNwZW5kZWQ9ZnVuY3Rpb24oKXtyZXR1''@;'; + put 'put ''cm4gdGhpcy5yZW5kZXJTdXNwZW5kZWRDb3VudGVyPjB9LHRoaXMuc3VzcGVuZFJlbmRlcj1mdW5jdGlvbigpe3RoaXMucmVuZGVyU3VzcGVuZGVkQ291bnRlcis9MX0sdGhpcy5yZXN1bWVSZW5kZXI9ZnVuY3Rpb24oKXt2YXIgRm49dGhpcy5yZW5kZXJTdXNwZW5kZWRDb3VudGVyLTE7dGhp''@;'; + put 'put ''cy5yZW5kZXJTdXNwZW5kZWRDb3VudGVyPU1hdGgubWF4KEZuLDApLCF0aGlzLmlzUmVuZGVyU3VzcGVuZGVkKCkmJkZuPT09dGhpcy5yZW5kZXJTdXNwZW5kZWRDb3VudGVyJiYodGhpcy5yZW5kZXJDYWxsP3RoaXMucmVuZGVyKCk6dGhpcy5fcmVmcmVzaEJvcmRlcnMobnVsbCkpfSx0aGlz''@;'; + put 'put ''LnJlbmRlcj1mdW5jdGlvbigpe3RoaXMudmlldyYmKHRoaXMucmVuZGVyQ2FsbD0hMCx0aGlzLmZvcmNlRnVsbFJlbmRlcj0hMCx0aGlzLmlzUmVuZGVyU3VzcGVuZGVkKCl8fChOZS5sb2NrRWRpdG9yKCksdGhpcy5fcmVmcmVzaEJvcmRlcnMobnVsbCksTmUudW5sb2NrRWRpdG9yKCkpKX0s''@;'; + put 'put ''dGhpcy5iYXRjaFJlbmRlcj1mdW5jdGlvbihGbil7dGhpcy5zdXNwZW5kUmVuZGVyKCk7dmFyIFpuPUZuKCk7cmV0dXJuIHRoaXMucmVzdW1lUmVuZGVyKCksWm59LHRoaXMuaXNFeGVjdXRpb25TdXNwZW5kZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5leGVjdXRpb25TdXNwZW5kZWRDb3Vu''@;'; + put 'put ''dGVyPjB9LHRoaXMuc3VzcGVuZEV4ZWN1dGlvbj1mdW5jdGlvbigpe3RoaXMuZXhlY3V0aW9uU3VzcGVuZGVkQ291bnRlcis9MSx0aGlzLmNvbHVtbkluZGV4TWFwcGVyLnN1c3BlbmRPcGVyYXRpb25zKCksdGhpcy5yb3dJbmRleE1hcHBlci5zdXNwZW5kT3BlcmF0aW9ucygpfSx0aGlzLnJl''@;'; + put 'put ''c3VtZUV4ZWN1dGlvbj1mdW5jdGlvbigpe3ZhciBGbj1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXSYmYXJndW1lbnRzWzBdLFpuPXRoaXMuZXhlY3V0aW9uU3VzcGVuZGVkQ291bnRlci0xO3RoaXMuZXhlY3V0aW9uU3VzcGVuZGVkQ291bnRlcj1NYXRoLm1heCha''@;'; + put 'put ''biwwKSwoIXRoaXMuaXNFeGVjdXRpb25TdXNwZW5kZWQoKSYmWm49PT10aGlzLmV4ZWN1dGlvblN1c3BlbmRlZENvdW50ZXJ8fEZuKSYmKHRoaXMuY29sdW1uSW5kZXhNYXBwZXIucmVzdW1lT3BlcmF0aW9ucygpLHRoaXMucm93SW5kZXhNYXBwZXIucmVzdW1lT3BlcmF0aW9ucygpKX0sdGhp''@;'; + put 'put ''cy5iYXRjaEV4ZWN1dGlvbj1mdW5jdGlvbihGbil7dmFyIFpuPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdJiZhcmd1bWVudHNbMV07dGhpcy5zdXNwZW5kRXhlY3V0aW9uKCk7dmFyIF9yPUZuKCk7cmV0dXJuIHRoaXMucmVzdW1lRXhlY3V0aW9uKFpuKSxfcn0s''@;'; + put 'put ''dGhpcy5iYXRjaD1mdW5jdGlvbihGbil7dGhpcy5zdXNwZW5kUmVuZGVyKCksdGhpcy5zdXNwZW5kRXhlY3V0aW9uKCk7dmFyIFpuPUZuKCk7cmV0dXJuIHRoaXMucmVzdW1lRXhlY3V0aW9uKCksdGhpcy5yZXN1bWVSZW5kZXIoKSxabn0sdGhpcy5yZWZyZXNoRGltZW5zaW9ucz1mdW5jdGlv''@;'; + put 'put ''bigpe2lmKEkudmlldyl7dmFyIEZuPUkudmlldy5nZXRMYXN0U2l6ZSgpLFpuPUZuLndpZHRoLF9yPUZuLmhlaWdodCxYcj1JLnJvb3RFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGNpPVhyLndpZHRoLGMwPVhyLmhlaWdodCxYaT1jaSE9PVpufHxjMCE9PV9yOyExPT09SS5ydW5I''@;'; + put 'put ''b29rcygiYmVmb3JlUmVmcmVzaERpbWVuc2lvbnMiLHt3aWR0aDpabixoZWlnaHQ6X3J9LHt3aWR0aDpjaSxoZWlnaHQ6YzB9LFhpKXx8KChYaXx8SS52aWV3Ll93dC53dE92ZXJsYXlzLnNjcm9sbGFibGVFbGVtZW50PT09SS5yb290V2luZG93KSYmKEkudmlldy5zZXRMYXN0U2l6ZShjaSxj''@;'; + put 'put ''MCksSS5yZW5kZXIoKSksSS5ydW5Ib29rcygiYWZ0ZXJSZWZyZXNoRGltZW5zaW9ucyIse3dpZHRoOlpuLGhlaWdodDpfcn0se3dpZHRoOmNpLGhlaWdodDpjMH0sWGkpKX19LHRoaXMudXBkYXRlRGF0YT1mdW5jdGlvbihGbixabil7dmFyIF9yPXRoaXM7U1NlKEZuLGZ1bmN0aW9uKFhyKXt1''@;'; + put 'put ''ZT1Ycn0sZnVuY3Rpb24oWHIpe3VlPVhyLEkuY29sdW1uSW5kZXhNYXBwZXIuZml0VG9MZW5ndGgoX3IuZ2V0SW5pdGlhbENvbHVtbkNvdW50KCkpLEkucm93SW5kZXhNYXBwZXIuZml0VG9MZW5ndGgoX3IuY291bnRTb3VyY2VSb3dzKCkpLEJlLmFkanVzdFJvd3NBbmRDb2xzKCl9LHtob3RJ''@;'; + put 'put ''bnN0YW5jZTpJLGRhdGFNYXA6dWUsZGF0YVNvdXJjZTpfZSxpbnRlcm5hbFNvdXJjZToidXBkYXRlRGF0YSIsc291cmNlOlpuLGZpcnN0UnVuOktlfSl9LHRoaXMubG9hZERhdGE9ZnVuY3Rpb24oRm4sWm4pe1NTZShGbixmdW5jdGlvbihfcil7dWU9X3J9LGZ1bmN0aW9uKCl7JHQuY2xlYXJD''@;'; + put 'put ''ZWxsc0NhY2hlKCksSS5pbml0SW5kZXhNYXBwZXJzKCksQmUuYWRqdXN0Um93c0FuZENvbHMoKSxLZSYmKEtlPVtudWxsLCJsb2FkRGF0YSJdKX0se2hvdEluc3RhbmNlOkksZGF0YU1hcDp1ZSxkYXRhU291cmNlOl9lLGludGVybmFsU291cmNlOiJsb2FkRGF0YSIsc291cmNlOlpuLGZpcnN0''@;'; + put 'put ''UnVuOktlfSl9LHRoaXMuZ2V0SW5pdGlhbENvbHVtbkNvdW50PWZ1bmN0aW9uKCl7dmFyIEZuPWZuLmNvbHVtbnMsWm49MDtpZihBcnJheS5pc0FycmF5KEZuKSlabj1Gbi5sZW5ndGg7ZWxzZSBpZihVMihGbikpaWYoImFycmF5Ij09PUkuZGF0YVR5cGUpZm9yKHZhciBfcj10aGlzLmNvdW50''@;'; + put 'put ''U291cmNlQ29scygpLFhyPTA7WHI8X3I7WHIrPTEpRm4oWHIpJiYoWm4rPTEpO2Vsc2UoIm9iamVjdCI9PT1JLmRhdGFUeXBlfHwiZnVuY3Rpb24iPT09SS5kYXRhVHlwZSkmJihabj11ZS5jb2xUb1Byb3BDYWNoZS5sZW5ndGgpO2Vsc2UgaWYoVG8oZm4uZGF0YVNjaGVtYSkpe3ZhciBjaT11''@;'; + put 'put ''ZS5nZXRTY2hlbWEoKTtabj1BcnJheS5pc0FycmF5KGNpKT9jaS5sZW5ndGg6SnEoY2kpfWVsc2UgWm49dGhpcy5jb3VudFNvdXJjZUNvbHMoKTtyZXR1cm4gWm59LHRoaXMuaW5pdEluZGV4TWFwcGVycz1mdW5jdGlvbigpe3RoaXMuY29sdW1uSW5kZXhNYXBwZXIuaW5pdFRvTGVuZ3RoKHRo''@;'; + put 'put ''aXMuZ2V0SW5pdGlhbENvbHVtbkNvdW50KCkpLHRoaXMucm93SW5kZXhNYXBwZXIuaW5pdFRvTGVuZ3RoKHRoaXMuY291bnRTb3VyY2VSb3dzKCkpfSx0aGlzLmdldERhdGE9ZnVuY3Rpb24oRm4sWm4sX3IsWHIpe3JldHVybiBhMShGbik/dWUuZ2V0QWxsKCk6dWUuZ2V0UmFuZ2UoSS5fY3Jl''@;'; + put 'put ''YXRlQ2VsbENvb3JkcyhGbixabiksSS5fY3JlYXRlQ2VsbENvb3JkcyhfcixYciksdWUuREVTVElOQVRJT05fUkVOREVSRVIpfSx0aGlzLmdldENvcHlhYmxlVGV4dD1mdW5jdGlvbihGbixabixfcixYcil7cmV0dXJuIHVlLmdldENvcHlhYmxlVGV4dChJLl9jcmVhdGVDZWxsQ29vcmRzKEZu''@;'; + put 'put ''LFpuKSxJLl9jcmVhdGVDZWxsQ29vcmRzKF9yLFhyKSl9LHRoaXMuZ2V0Q29weWFibGVEYXRhPWZ1bmN0aW9uKEZuLFpuKXtyZXR1cm4gdWUuZ2V0Q29weWFibGUoRm4sdWUuY29sVG9Qcm9wKFpuKSl9LHRoaXMuZ2V0U2NoZW1hPWZ1bmN0aW9uKCl7cmV0dXJuIHVlLmdldFNjaGVtYSgpfSx0''@;'; + put 'put ''aGlzLnVwZGF0ZVNldHRpbmdzPWZ1bmN0aW9uKEZuKXt2YXIgY2ksYzAsWm49YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0mJmFyZ3VtZW50c1sxXSxfcj0oS2U/SS5sb2FkRGF0YTpJLnVwZGF0ZURhdGEpLmJpbmQodGhpcyksWHI9ITE7aWYoVG8oRm4ucm93cykp''@;'; + put 'put ''dGhyb3cgbmV3IEVycm9yKCdUaGUgInJvd3MiIHNldHRpbmcgaXMgbm8gbG9uZ2VyIHN1cHBvcnRlZC4gRG8geW91IG1lYW4gc3RhcnRSb3dzLCBtaW5Sb3dzIG9yIG1heFJvd3M/Jyk7aWYoVG8oRm4uY29scykpdGhyb3cgbmV3IEVycm9yKCdUaGUgImNvbHMiIHNldHRpbmcgaXMgbm8gbG9u''@;'; + put 'put ''Z2VyIHN1cHBvcnRlZC4gRG8geW91IG1lYW4gc3RhcnRDb2xzLCBtaW5Db2xzIG9yIG1heENvbHM/Jyk7aWYoVG8oRm4uZ2FudHRDaGFydCkpdGhyb3cgbmV3IEVycm9yKCdTaW5jZSA4LjAuMCB0aGUgImdhbnR0Q2hhcnQiIHNldHRpbmcgaXMgbm8gbG9uZ2VyIHN1cHBvcnRlZC4nKTtmb3Io''@;'; + put 'put ''Y2kgaW4gRm4pImRhdGEiPT09Y2l8fCgibGFuZ3VhZ2UiPT09Y2k/eWkoRm4ubGFuZ3VhZ2UpOiJjbGFzc05hbWUiPT09Y2k/S2koImNsYXNzTmFtZSIsRm4uY2xhc3NOYW1lKToidGFibGVDbGFzc05hbWUiPT09Y2kmJkkudGFibGU/KEtpKCJ0YWJsZUNsYXNzTmFtZSIsRm4udGFibGVDbGFz''@;'; + put 'put ''c05hbWUpLEkudmlldy5fd3Qud3RPdmVybGF5cy5zeW5jT3ZlcmxheVRhYmxlQ2xhc3NOYW1lcygpKTp6by5nZXRTaW5nbGV0b24oKS5pc1JlZ2lzdGVyZWQoY2kpfHx6by5nZXRTaW5nbGV0b24oKS5pc0RlcHJlY2F0ZWQoY2kpPyhVMihGbltjaV0pfHxBcnJheS5pc0FycmF5KEZuW2NpXSkp''@;'; + put 'put ''JiYoRm5bY2ldLmluaXRpYWxIb29rPSEwLEkuYWRkSG9vayhjaSxGbltjaV0pKTohWm4mJm8xKEZuLGNpKSYmKExuW2NpXT1GbltjaV0pKTt2b2lkIDA9PT1Gbi5kYXRhJiZ2b2lkIDA9PT1mbi5kYXRhP19yKG51bGwsInVwZGF0ZVNldHRpbmdzIik6dm9pZCAwIT09Rm4uZGF0YT9fcihGbi5k''@;'; + put 'put ''YXRhLCJ1cGRhdGVTZXR0aW5ncyIpOnZvaWQgMCE9PUZuLmNvbHVtbnMmJih1ZS5jcmVhdGVNYXAoKSxJLmluaXRJbmRleE1hcHBlcnMoKSk7dmFyIFhpPUkuY291bnRDb2xzKCksRTA9Zm4uY29sdW1ucztpZihFMCYmVTIoRTApJiYoWHI9ITApLCh2b2lkIDAhPT1Gbi5jZWxsfHx2b2lkIDAh''@;'; + put 'put ''PT1Gbi5jZWxsc3x8dm9pZCAwIT09Rm4uY29sdW1ucykmJiR0LmNsZWFyQ2FjaGUoKSxYaT4wKWZvcihjaT0wLGMwPTA7Y2k8WGk7Y2krKyl7aWYoRTApe3ZhciB6MD1Ycj9FMChjaSk6RTBbYzBdO3owJiYkdC51cGRhdGVDb2x1bW5NZXRhKGMwLHowKX1jMCs9MX1UbyhGbi5jZWxsKSYmR2wo''@;'; + put 'put ''Rm4uY2VsbCxmdW5jdGlvbih0Mil7SS5zZXRDZWxsTWV0YU9iamVjdCh0Mi5yb3csdDIuY29sLHQyKX0pLEkucnVuSG9va3MoImFmdGVyQ2VsbE1ldGFSZXNldCIpO3ZhciBrbz1JLnJvb3RFbGVtZW50LnN0eWxlLmhlaWdodDsiIiE9PWtvJiYoa289cGFyc2VJbnQoSS5yb290RWxlbWVudC5z''@;'; + put 'put ''dHlsZS5oZWlnaHQsMTApKTt2YXIgd289Rm4uaGVpZ2h0O2lmKFUyKHdvKSYmKHdvPXdvKCkpLFpuKXt2YXIgV2E9SS5yb290RWxlbWVudC5nZXRBdHRyaWJ1dGUoInN0eWxlIik7V2EmJkkucm9vdEVsZW1lbnQuc2V0QXR0cmlidXRlKCJkYXRhLWluaXRpYWxzdHlsZSIsSS5yb290RWxlbWVu''@;'; + put 'put ''dC5nZXRBdHRyaWJ1dGUoInN0eWxlIikpfWlmKG51bGw9PT13byl7dmFyIGUyPUkucm9vdEVsZW1lbnQuZ2V0QXR0cmlidXRlKCJkYXRhLWluaXRpYWxzdHlsZSIpO2UyJiYoZTIuaW5kZXhPZigiaGVpZ2h0Iik+LTF8fGUyLmluZGV4T2YoIm92ZXJmbG93Iik+LTEpP0kucm9vdEVsZW1lbnQu''@;'; + put 'put ''c2V0QXR0cmlidXRlKCJzdHlsZSIsZTIpOihJLnJvb3RFbGVtZW50LnN0eWxlLmhlaWdodD0iIixJLnJvb3RFbGVtZW50LnN0eWxlLm92ZXJmbG93PSIiKX1lbHNlIHZvaWQgMCE9PXdvJiYoSS5yb290RWxlbWVudC5zdHlsZS5oZWlnaHQ9aXNOYU4od28pPyIiLmNvbmNhdCh3byk6IiIuY29u''@;'; + put 'put ''Y2F0KHdvLCJweCIpLEkucm9vdEVsZW1lbnQuc3R5bGUub3ZlcmZsb3c9ImhpZGRlbiIpO2lmKHZvaWQgMCE9PUZuLndpZHRoKXt2YXIgRmE9Rm4ud2lkdGg7VTIoRmEpJiYoRmE9RmEoKSksSS5yb290RWxlbWVudC5zdHlsZS53aWR0aD1pc05hTihGYSk/IiIuY29uY2F0KEZhKToiIi5jb25j''@;'; + put 'put ''YXQoRmEsInB4Iil9Wm58fChJLnZpZXcmJihJLnZpZXcuX3d0Lnd0Vmlld3BvcnQucmVzZXRIYXNPdmVyc2l6ZWRDb2x1bW5IZWFkZXJzTWFya2VkKCksSS52aWV3Ll93dC5leHBvcnRTZXR0aW5nc0FzQ2xhc3NOYW1lcygpKSxJLnJ1bkhvb2tzKCJhZnRlclVwZGF0ZVNldHRpbmdzIixGbikp''@;'; + put 'put ''LEJlLmFkanVzdFJvd3NBbmRDb2xzKCksSS52aWV3JiYhS2UmJihJLmZvcmNlRnVsbFJlbmRlcj0hMCxOZS5sb2NrRWRpdG9yKCksSS5fcmVmcmVzaEJvcmRlcnMobnVsbCksSS52aWV3Ll93dC53dE92ZXJsYXlzLmFkanVzdEVsZW1lbnRzU2l6ZSgpLE5lLnVubG9ja0VkaXRvcigpKSwhWm4m''@;'; + put 'put ''JkkudmlldyYmKCIiPT09a298fCIiPT09d298fHZvaWQgMD09PXdvKSYma28hPT13byYmSS52aWV3Ll93dC53dE92ZXJsYXlzLnVwZGF0ZU1haW5TY3JvbGxhYmxlRWxlbWVudHMoKX0sdGhpcy5nZXRWYWx1ZT1mdW5jdGlvbigpe3ZhciBGbj1JLmdldFNlbGVjdGVkTGFzdCgpO2lmKGZuLmdl''@;'; + put 'put ''dFZhbHVlKXtpZihVMihmbi5nZXRWYWx1ZSkpcmV0dXJuIGZuLmdldFZhbHVlLmNhbGwoSSk7aWYoRm4pcmV0dXJuIEkuZ2V0RGF0YSgpW0ZuWzBdWzBdXVtmbi5nZXRWYWx1ZV19ZWxzZSBpZihGbilyZXR1cm4gSS5nZXREYXRhQXRDZWxsKEZuWzBdLEZuWzFdKX0sdGhpcy5nZXRTZXR0aW5n''@;'; + put 'put ''cz1mdW5jdGlvbigpe3JldHVybiBmbn0sdGhpcy5jbGVhcj1mdW5jdGlvbigpe3RoaXMuc2VsZWN0QWxsKCksdGhpcy5lbXB0eVNlbGVjdGVkQ2VsbHMoKX0sdGhpcy5hbHRlcj1mdW5jdGlvbihGbixabixfcixYcixjaSl7QmUuYWx0ZXIoRm4sWm4sX3IsWHIsY2kpfSx0aGlzLmdldENlbGw9''@;'; + put 'put ''ZnVuY3Rpb24oRm4sWm4pe3ZhciBfcj1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXSYmYXJndW1lbnRzWzJdLFhyPVpuLGNpPUZuO2lmKFpuPj0wKXtpZih0aGlzLmNvbHVtbkluZGV4TWFwcGVyLmlzSGlkZGVuKHRoaXMudG9QaHlzaWNhbENvbHVtbihabikpKXJl''@;'; + put 'put ''dHVybiBudWxsO1hyPXRoaXMuY29sdW1uSW5kZXhNYXBwZXIuZ2V0UmVuZGVyYWJsZUZyb21WaXN1YWxJbmRleChabil9aWYoRm4+PTApe2lmKHRoaXMucm93SW5kZXhNYXBwZXIuaXNIaWRkZW4odGhpcy50b1BoeXNpY2FsUm93KEZuKSkpcmV0dXJuIG51bGw7Y2k9dGhpcy5yb3dJbmRleE1h''@;'; + put 'put ''cHBlci5nZXRSZW5kZXJhYmxlRnJvbVZpc3VhbEluZGV4KEZuKX1yZXR1cm4gbnVsbD09PWNpfHxudWxsPT09WHI/bnVsbDpJLnZpZXcuZ2V0Q2VsbEF0Q29vcmRzKEkuX2NyZWF0ZUNlbGxDb29yZHMoY2ksWHIpLF9yKX0sdGhpcy5nZXRDb29yZHM9ZnVuY3Rpb24oRm4pe3ZhciBabj10aGlz''@;'; + put 'put ''LnZpZXcuX3d0Lnd0VGFibGUuZ2V0Q29vcmRzKEZuKTtpZihudWxsPT09Wm4pcmV0dXJuIG51bGw7dmFyIF9yPVpuLnJvdyxYcj1abi5jb2wsY2k9X3IsYzA9WHI7cmV0dXJuIF9yPj0wJiYoY2k9dGhpcy5yb3dJbmRleE1hcHBlci5nZXRWaXN1YWxGcm9tUmVuZGVyYWJsZUluZGV4KF9yKSks''@;'; + put 'put ''WHI+PTAmJihjMD10aGlzLmNvbHVtbkluZGV4TWFwcGVyLmdldFZpc3VhbEZyb21SZW5kZXJhYmxlSW5kZXgoWHIpKSxJLl9jcmVhdGVDZWxsQ29vcmRzKGNpLGMwKX0sdGhpcy5jb2xUb1Byb3A9ZnVuY3Rpb24oRm4pe3JldHVybiB1ZS5jb2xUb1Byb3AoRm4pfSx0aGlzLnByb3BUb0NvbD1m''@;'; + put 'put ''dW5jdGlvbihGbil7cmV0dXJuIHVlLnByb3BUb0NvbChGbil9LHRoaXMudG9WaXN1YWxSb3c9ZnVuY3Rpb24oRm4pe3JldHVybiB2LnJvd0luZGV4TWFwcGVyLmdldFZpc3VhbEZyb21QaHlzaWNhbEluZGV4KEZuKX0sdGhpcy50b1Zpc3VhbENvbHVtbj1mdW5jdGlvbihGbil7cmV0dXJuIHYu''@;'; + put 'put ''Y29sdW1uSW5kZXhNYXBwZXIuZ2V0VmlzdWFsRnJvbVBoeXNpY2FsSW5kZXgoRm4pfSx0aGlzLnRvUGh5c2ljYWxSb3c9ZnVuY3Rpb24oRm4pe3JldHVybiB2LnJvd0luZGV4TWFwcGVyLmdldFBoeXNpY2FsRnJvbVZpc3VhbEluZGV4KEZuKX0sdGhpcy50b1BoeXNpY2FsQ29sdW1uPWZ1bmN0''@;'; + put 'put ''aW9uKEZuKXtyZXR1cm4gdi5jb2x1bW5JbmRleE1hcHBlci5nZXRQaHlzaWNhbEZyb21WaXN1YWxJbmRleChGbil9LHRoaXMuZ2V0RGF0YUF0Q2VsbD1mdW5jdGlvbihGbixabil7cmV0dXJuIHVlLmdldChGbix1ZS5jb2xUb1Byb3AoWm4pKX0sdGhpcy5nZXREYXRhQXRSb3dQcm9wPWZ1bmN0''@;'; + put 'put ''aW9uKEZuLFpuKXtyZXR1cm4gdWUuZ2V0KEZuLFpuKX0sdGhpcy5nZXREYXRhQXRDb2w9ZnVuY3Rpb24oRm4pe3ZhciBabjtyZXR1cm4oWm49W10pLmNvbmNhdC5hcHBseShabixSdyh1ZS5nZXRSYW5nZShJLl9jcmVhdGVDZWxsQ29vcmRzKDAsRm4pLEkuX2NyZWF0ZUNlbGxDb29yZHMoZm4u''@;'; + put 'put ''ZGF0YS5sZW5ndGgtMSxGbiksdWUuREVTVElOQVRJT05fUkVOREVSRVIpKSl9LHRoaXMuZ2V0RGF0YUF0UHJvcD1mdW5jdGlvbihGbil7dmFyIFpuLF9yPXVlLmdldFJhbmdlKEkuX2NyZWF0ZUNlbGxDb29yZHMoMCx1ZS5wcm9wVG9Db2woRm4pKSxJLl9jcmVhdGVDZWxsQ29vcmRzKGZuLmRh''@;'; + put 'put ''dGEubGVuZ3RoLTEsdWUucHJvcFRvQ29sKEZuKSksdWUuREVTVElOQVRJT05fUkVOREVSRVIpO3JldHVybihabj1bXSkuY29uY2F0LmFwcGx5KFpuLFJ3KF9yKSl9LHRoaXMuZ2V0U291cmNlRGF0YT1mdW5jdGlvbihGbixabixfcixYcil7cmV0dXJuIHZvaWQgMD09PUZuP19lLmdldERhdGEo''@;'; + put 'put ''KTpfZS5nZXRCeVJhbmdlKEkuX2NyZWF0ZUNlbGxDb29yZHMoRm4sWm4pLEkuX2NyZWF0ZUNlbGxDb29yZHMoX3IsWHIpKX0sdGhpcy5nZXRTb3VyY2VEYXRhQXJyYXk9ZnVuY3Rpb24oRm4sWm4sX3IsWHIpe3JldHVybiB2b2lkIDA9PT1Gbj9fZS5nZXREYXRhKCEwKTpfZS5nZXRCeVJhbmdl''@;'; + put 'put ''KEkuX2NyZWF0ZUNlbGxDb29yZHMoRm4sWm4pLEkuX2NyZWF0ZUNlbGxDb29yZHMoX3IsWHIpLCEwKX0sdGhpcy5nZXRTb3VyY2VEYXRhQXRDb2w9ZnVuY3Rpb24oRm4pe3JldHVybiBfZS5nZXRBdENvbHVtbihGbil9LHRoaXMuc2V0U291cmNlRGF0YUF0Q2VsbD1mdW5jdGlvbihGbixabixf''@;'; + put 'put ''cixYcil7dmFyIGNpPWxhKEZuLFpuLF9yKSxjMD10aGlzLmhhc0hvb2soImFmdGVyU2V0U291cmNlRGF0YUF0Q2VsbCIpLFhpPVtdO2MwJiZVcihjaSxmdW5jdGlvbih6MCl7dmFyIGtvPUlnKHowLDMpLHdvPWtvWzBdLFdhPWtvWzFdLGUyPWtvWzJdO1hpLnB1c2goW3dvLFdhLF9lLmdldEF0''@;'; + put 'put ''Q2VsbCh3byxXYSksZTJdKX0pLFVyKGNpLGZ1bmN0aW9uKHowKXt2YXIga289SWcoejAsMyk7X2Uuc2V0QXRDZWxsKGtvWzBdLGtvWzFdLGtvWzJdKX0pLGMwJiZ0aGlzLnJ1bkhvb2tzKCJhZnRlclNldFNvdXJjZURhdGFBdENlbGwiLFhpLFhyKSx0aGlzLnJlbmRlcigpO3ZhciBFMD1JLmdl''@;'; + put 'put ''dEFjdGl2ZUVkaXRvcigpO0UwJiZUbyhFMC5yZWZyZXNoVmFsdWUpJiZFMC5yZWZyZXNoVmFsdWUoKX0sdGhpcy5nZXRTb3VyY2VEYXRhQXRSb3c9ZnVuY3Rpb24oRm4pe3JldHVybiBfZS5nZXRBdFJvdyhGbil9LHRoaXMuZ2V0U291cmNlRGF0YUF0Q2VsbD1mdW5jdGlvbihGbixabil7cmV0''@;'; + put 'put ''dXJuIF9lLmdldEF0Q2VsbChGbixabil9LHRoaXMuZ2V0RGF0YUF0Um93PWZ1bmN0aW9uKEZuKXtyZXR1cm4gdWUuZ2V0UmFuZ2UoSS5fY3JlYXRlQ2VsbENvb3JkcyhGbiwwKSxJLl9jcmVhdGVDZWxsQ29vcmRzKEZuLHRoaXMuY291bnRDb2xzKCktMSksdWUuREVTVElOQVRJT05fUkVOREVS''@;'; + put 'put ''RVIpWzBdfHxbXX0sdGhpcy5nZXREYXRhVHlwZT1mdW5jdGlvbihGbixabixfcixYcil7dmFyIGNpPXRoaXMsYzA9dm9pZCAwPT09Rm4/WzAsMCx0aGlzLmNvdW50Um93cygpLHRoaXMuY291bnRDb2xzKCldOltGbixabixfcixYcl0sWGk9YzBbMF0sRTA9YzBbMV0sejA9YzBbMl0sa289YzBb''@;'; + put 'put ''M10sd289bnVsbCxXYT1udWxsO3ZvaWQgMD09PXowJiYoejA9WGkpLHZvaWQgMD09PWtvJiYoa289RTApO3ZhciBlMj0ibWl4ZWQiO3JldHVybiBpYShNYXRoLm1heChNYXRoLm1pbihYaSx6MCksMCksTWF0aC5tYXgoWGksejApLGZ1bmN0aW9uKEZhKXt2YXIgdDI9ITA7cmV0dXJuIGlhKE1h''@;'; + put 'put ''dGgubWF4KE1hdGgubWluKEUwLGtvKSwwKSxNYXRoLm1heChFMCxrbyksZnVuY3Rpb24oTzEpe3ZhciBSMT1jaS5nZXRDZWxsTWV0YShGYSxPMSk7cmV0dXJuIFdhPVIxLnR5cGUsd28/dDI9d289PT1XYTp3bz1XYSx0Mn0pLGUyPXQyP1dhOiJtaXhlZCIsdDJ9KSxlMn0sdGhpcy5yZW1vdmVD''@;'; + put 'put ''ZWxsTWV0YT1mdW5jdGlvbihGbixabixfcil7dmFyIFhyPVt0aGlzLnRvUGh5c2ljYWxSb3coRm4pLHRoaXMudG9QaHlzaWNhbENvbHVtbihabildLGNpPVhyWzBdLGMwPVhyWzFdLFhpPSR0LmdldENlbGxNZXRhS2V5VmFsdWUoY2ksYzAsX3IpOyExIT09SS5ydW5Ib29rcygiYmVmb3JlUmVt''@;'; + put 'put ''b3ZlQ2VsbE1ldGEiLEZuLFpuLF9yLFhpKSYmKCR0LnJlbW92ZUNlbGxNZXRhKGNpLGMwLF9yKSxJLnJ1bkhvb2tzKCJhZnRlclJlbW92ZUNlbGxNZXRhIixGbixabixfcixYaSkpLFhpPW51bGx9LHRoaXMuc3BsaWNlQ2VsbHNNZXRhPWZ1bmN0aW9uKEZuKXtmb3IodmFyIFpuPXRoaXMsX3I9''@;'; + put 'put ''YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOjAsWHI9YXJndW1lbnRzLmxlbmd0aCxjaT1uZXcgQXJyYXkoWHI+Mj9Yci0yOjApLGMwPTI7YzA8WHI7YzArKyljaVtjMC0yXT1hcmd1bWVudHNbYzBdO2lmKGNpLmxlbmd0aD4wJiYhQXJyYXku''@;'; + put 'put ''aXNBcnJheShjaVswXSkpdGhyb3cgbmV3IEVycm9yKCJUaGUgM3JkIGFyZ3VtZW50IChjZWxsTWV0YVJvd3MpIGhhcyB0byBiZSBwYXNzZWQgYXMgYW4gYXJyYXkgb2YgY2VsbCBtZXRhIG9iamVjdHMgYXJyYXkuIik7X3I+MCYmJHQucmVtb3ZlUm93KHRoaXMudG9QaHlzaWNhbFJvdyhGbiks''@;'; + put 'put ''X3IpLGNpLmxlbmd0aD4wJiZVcihjaS5yZXZlcnNlKCksZnVuY3Rpb24oWGkpeyR0LmNyZWF0ZVJvdyhabi50b1BoeXNpY2FsUm93KEZuKSksVXIoWGksZnVuY3Rpb24oRTAsejApe3JldHVybiBabi5zZXRDZWxsTWV0YU9iamVjdChGbix6MCxFMCl9KX0pLEkucmVuZGVyKCl9LHRoaXMuc2V0''@;'; + put 'put ''Q2VsbE1ldGFPYmplY3Q9ZnVuY3Rpb24oRm4sWm4sX3Ipe3ZhciBYcj10aGlzOyJvYmplY3QiPT09ZmQoX3IpJiZHbChfcixmdW5jdGlvbihjaSxjMCl7WHIuc2V0Q2VsbE1ldGEoRm4sWm4sYzAsY2kpfSl9LHRoaXMuc2V0Q2VsbE1ldGE9ZnVuY3Rpb24oRm4sWm4sX3IsWHIpe2lmKCExIT09''@;'; + put 'put ''SS5ydW5Ib29rcygiYmVmb3JlU2V0Q2VsbE1ldGEiLEZuLFpuLF9yLFhyKSl7dmFyIGMwPUZuLFhpPVpuO0ZuPHRoaXMuY291bnRSb3dzKCkmJihjMD10aGlzLnRvUGh5c2ljYWxSb3coRm4pKSxabjx0aGlzLmNvdW50Q29scygpJiYoWGk9dGhpcy50b1BoeXNpY2FsQ29sdW1uKFpuKSksJHQu''@;'; + put 'put ''c2V0Q2VsbE1ldGEoYzAsWGksX3IsWHIpLEkucnVuSG9va3MoImFmdGVyU2V0Q2VsbE1ldGEiLEZuLFpuLF9yLFhyKX19LHRoaXMuZ2V0Q2VsbHNNZXRhPWZ1bmN0aW9uKCl7cmV0dXJuICR0LmdldENlbGxzTWV0YSgpfSx0aGlzLmdldENlbGxNZXRhPWZ1bmN0aW9uKEZuLFpuKXt2YXIgX3I9''@;'; + put 'put ''dGhpcy50b1BoeXNpY2FsUm93KEZuKSxYcj10aGlzLnRvUGh5c2ljYWxDb2x1bW4oWm4pO3JldHVybiBudWxsPT09X3ImJihfcj1GbiksbnVsbD09PVhyJiYoWHI9Wm4pLCR0LmdldENlbGxNZXRhKF9yLFhyLHt2aXN1YWxSb3c6Rm4sdmlzdWFsQ29sdW1uOlpufSl9LHRoaXMuZ2V0Q2VsbE1l''@;'; + put 'put ''dGFBdFJvdz1mdW5jdGlvbihGbil7cmV0dXJuICR0LmdldENlbGxzTWV0YUF0Um93KEZuKX0sdGhpcy5pc0NvbHVtbk1vZGlmaWNhdGlvbkFsbG93ZWQ9ZnVuY3Rpb24oKXtyZXR1cm4hKCJvYmplY3QiPT09SS5kYXRhVHlwZXx8Zm4uY29sdW1ucyl9O3ZhciBhbD1xWigicmVuZGVyZXIiKTt0''@;'; + put 'put ''aGlzLmdldENlbGxSZW5kZXJlcj1mdW5jdGlvbihGbixabil7cmV0dXJuIEczZShhbC5jYWxsKHRoaXMsRm4sWm4pKX0sdGhpcy5nZXRDZWxsRWRpdG9yPXFaKCJlZGl0b3IiKTt2YXIgT3M9cVooInZhbGlkYXRvciIpO3RoaXMuZ2V0Q2VsbFZhbGlkYXRvcj1mdW5jdGlvbihGbixabil7dmFy''@;'; + put 'put ''IF9yPU9zLmNhbGwodGhpcyxGbixabik7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBfciYmKF9yPVczZShfcikpLF9yfSx0aGlzLnZhbGlkYXRlQ2VsbHM9ZnVuY3Rpb24oRm4pe3RoaXMuX3ZhbGlkYXRlQ2VsbHMoRm4pfSx0aGlzLnZhbGlkYXRlUm93cz1mdW5jdGlvbihGbixabil7aWYoIUFy''@;'; + put 'put ''cmF5LmlzQXJyYXkoRm4pKXRocm93IG5ldyBFcnJvcigidmFsaWRhdGVSb3dzIHBhcmFtZXRlciBgcm93c2AgbXVzdCBiZSBhbiBhcnJheSIpO3RoaXMuX3ZhbGlkYXRlQ2VsbHMoWm4sRm4pfSx0aGlzLnZhbGlkYXRlQ29sdW1ucz1mdW5jdGlvbihGbixabil7aWYoIUFycmF5LmlzQXJyYXko''@;'; + put 'put ''Rm4pKXRocm93IG5ldyBFcnJvcigidmFsaWRhdGVDb2x1bW5zIHBhcmFtZXRlciBgY29sdW1uc2AgbXVzdCBiZSBhbiBhcnJheSIpO3RoaXMuX3ZhbGlkYXRlQ2VsbHMoWm4sdm9pZCAwLEZuKX0sdGhpcy5fdmFsaWRhdGVDZWxscz1mdW5jdGlvbihGbixabixfcil7dmFyIFhyPW5ldyBTbztG''@;'; + put 'put ''biYmKFhyLm9uUXVldWVFbXB0eT1Gbik7Zm9yKHZhciBjaT1JLmNvdW50Um93cygpLTE7Y2k+PTA7KWlmKHZvaWQgMD09PVpufHwtMSE9PVpuLmluZGV4T2YoY2kpKXtmb3IodmFyIGMwPUkuY291bnRDb2xzKCktMTtjMD49MDspdm9pZCAwPT09X3J8fC0xIT09X3IuaW5kZXhPZihjMCk/KFhy''@;'; + put 'put ''LmFkZFZhbGlkYXRvclRvUXVldWUoKSxJLnZhbGlkYXRlQ2VsbChJLmdldERhdGFBdENlbGwoY2ksYzApLEkuZ2V0Q2VsbE1ldGEoY2ksYzApLGZ1bmN0aW9uKFhpKXtpZigiYm9vbGVhbiIhPXR5cGVvZiBYaSl0aHJvdyBuZXcgRXJyb3IoIlZhbGlkYXRpb24gZXJyb3I6IHJlc3VsdCBpcyBu''@;'; + put 'put ''b3QgYm9vbGVhbiIpOyExPT09WGkmJihYci52YWxpZD0hMSksWHIucmVtb3ZlVmFsaWRhdG9yRm9ybVF1ZXVlKCl9LCJ2YWxpZGF0ZUNlbGxzIiksYzAtPTEpOmMwLT0xO2NpLT0xfWVsc2UgY2ktPTE7WHIuY2hlY2tJZlF1ZXVlSXNFbXB0eSgpfSx0aGlzLmdldFJvd0hlYWRlcj1mdW5jdGlv''@;'; + put 'put ''bihGbil7dmFyIFpuPWZuLnJvd0hlYWRlcnMsX3I9Rm47cmV0dXJuIHZvaWQgMCE9PV9yJiYoX3I9SS5ydW5Ib29rcygibW9kaWZ5Um93SGVhZGVyIixfcikpLHZvaWQgMD09PV9yPyhabj1bXSxpYShJLmNvdW50Um93cygpLTEsZnVuY3Rpb24oWHIpe1puLnB1c2goSS5nZXRSb3dIZWFkZXIo''@;'; + put 'put ''WHIpKX0pKTpBcnJheS5pc0FycmF5KFpuKSYmdm9pZCAwIT09Wm5bX3JdP1puPVpuW19yXTpVMihabik/Wm49Wm4oX3IpOlpuJiYic3RyaW5nIiE9dHlwZW9mIFpuJiYibnVtYmVyIiE9dHlwZW9mIFpuJiYoWm49X3IrMSksWm59LHRoaXMuaGFzUm93SGVhZGVycz1mdW5jdGlvbigpe3JldHVy''@;'; + put 'put ''biEhZm4ucm93SGVhZGVyc30sdGhpcy5oYXNDb2xIZWFkZXJzPWZ1bmN0aW9uKCl7aWYobnVsbCE9Zm4uY29sSGVhZGVycylyZXR1cm4hIWZuLmNvbEhlYWRlcnM7Zm9yKHZhciBGbj0wLFpuPUkuY291bnRDb2xzKCk7Rm48Wm47Rm4rKylpZihJLmdldENvbEhlYWRlcihGbikpcmV0dXJuITA7''@;'; + put 'put ''cmV0dXJuITF9LHRoaXMuZ2V0Q29sSGVhZGVyPWZ1bmN0aW9uKEZuKXt2YXIgWm49SS5ydW5Ib29rcygibW9kaWZ5Q29sSGVhZGVyIixGbiksX3I9Zm4uY29sSGVhZGVycztpZih2b2lkIDA9PT1abil7Zm9yKHZhciBYcj1bXSxjaT1JLmNvdW50Q29scygpLGMwPTA7YzA8Y2k7YzArKylYci5w''@;'; + put 'put ''dXNoKEkuZ2V0Q29sSGVhZGVyKGMwKSk7X3I9WHJ9ZWxzZXt2YXIgRTA9SS50b1BoeXNpY2FsQ29sdW1uKFpuKSx6MD1mdW5jdGlvbih3byl7Zm9yKHZhciBXYT1bXSxlMj1JLmNvdW50Q29scygpLEZhPTA7RmE8ZTI7RmErKylVMihmbi5jb2x1bW5zKSYmZm4uY29sdW1ucyhGYSkmJldhLnB1''@;'; + put 'put ''c2goRmEpO3JldHVybiBXYVt3b119KEUwKTshMT09PWZuLmNvbEhlYWRlcnM/X3I9bnVsbDpmbi5jb2x1bW5zJiZVMihmbi5jb2x1bW5zKSYmZm4uY29sdW1ucyh6MCkmJmZuLmNvbHVtbnMoejApLnRpdGxlP19yPWZuLmNvbHVtbnMoejApLnRpdGxlOmZuLmNvbHVtbnMmJmZuLmNvbHVtbnNb''@;'; + put 'put ''RTBdJiZmbi5jb2x1bW5zW0UwXS50aXRsZT9fcj1mbi5jb2x1bW5zW0UwXS50aXRsZTpBcnJheS5pc0FycmF5KGZuLmNvbEhlYWRlcnMpJiZ2b2lkIDAhPT1mbi5jb2xIZWFkZXJzW0UwXT9fcj1mbi5jb2xIZWFkZXJzW0UwXTpVMihmbi5jb2xIZWFkZXJzKT9fcj1mbi5jb2xIZWFkZXJzKEUw''@;'; + put 'put ''KTpmbi5jb2xIZWFkZXJzJiYic3RyaW5nIiE9dHlwZW9mIGZuLmNvbEhlYWRlcnMmJiJudW1iZXIiIT10eXBlb2YgZm4uY29sSGVhZGVycyYmKF9yPXplZShabikpfXJldHVybiBfcn0sdGhpcy5fZ2V0Q29sV2lkdGhGcm9tU2V0dGluZ3M9ZnVuY3Rpb24oRm4pe3ZhciBabjtpZihGbj49MCYm''@;'; + put 'put ''KFpuPUkuZ2V0Q2VsbE1ldGEoMCxGbikud2lkdGgpLCh2b2lkIDA9PT1abnx8Wm49PT1mbi53aWR0aCkmJihabj1mbi5jb2xXaWR0aHMpLG51bGwhPVpuKXtzd2l0Y2goZmQoWm4pKXtjYXNlIm9iamVjdCI6Wm49Wm5bRm5dO2JyZWFrO2Nhc2UiZnVuY3Rpb24iOlpuPVpuKEZuKX0ic3RyaW5n''@;'; + put 'put ''Ij09dHlwZW9mIFpuJiYoWm49cGFyc2VJbnQoWm4sMTApKX1yZXR1cm4gWm59LHRoaXMuZ2V0Q29sV2lkdGg9ZnVuY3Rpb24oRm4pe3ZhciBabj1JLl9nZXRDb2xXaWR0aEZyb21TZXR0aW5ncyhGbik7cmV0dXJuIHZvaWQgMD09PShabj1JLnJ1bkhvb2tzKCJtb2RpZnlDb2xXaWR0aCIsWm4s''@;'; + put 'put ''Rm4pKSYmKFpuPUhkZS5ERUZBVUxUX1dJRFRIKSxabn0sdGhpcy5fZ2V0Um93SGVpZ2h0RnJvbVNldHRpbmdzPWZ1bmN0aW9uKEZuKXt2YXIgWm49Zm4ucm93SGVpZ2h0cztpZihudWxsIT1abil7c3dpdGNoKGZkKFpuKSl7Y2FzZSJvYmplY3QiOlpuPVpuW0ZuXTticmVhaztjYXNlImZ1bmN0''@;'; + put 'put ''aW9uIjpabj1abihGbil9InN0cmluZyI9PXR5cGVvZiBabiYmKFpuPXBhcnNlSW50KFpuLDEwKSl9cmV0dXJuIFpufSx0aGlzLmdldFJvd0hlaWdodD1mdW5jdGlvbihGbil7dmFyIFpuPUkuX2dldFJvd0hlaWdodEZyb21TZXR0aW5ncyhGbik7cmV0dXJuIEkucnVuSG9va3MoIm1vZGlmeVJv''@;'; + put 'put ''d0hlaWdodCIsWm4sRm4pfSx0aGlzLmNvdW50U291cmNlUm93cz1mdW5jdGlvbigpe3JldHVybiBfZS5jb3VudFJvd3MoKX0sdGhpcy5jb3VudFNvdXJjZUNvbHM9ZnVuY3Rpb24oKXtyZXR1cm4gX2UuY291bnRGaXJzdFJvd0tleXMoKX0sdGhpcy5jb3VudFJvd3M9ZnVuY3Rpb24oKXtyZXR1''@;'; + put 'put ''cm4gdWUuZ2V0TGVuZ3RoKCl9LHRoaXMuY291bnRDb2xzPWZ1bmN0aW9uKCl7dmFyIEZuPWZuLm1heENvbHMsWm49dGhpcy5jb2x1bW5JbmRleE1hcHBlci5nZXROb3RUcmltbWVkSW5kZXhlc0xlbmd0aCgpO3JldHVybiBNYXRoLm1pbihGbixabil9LHRoaXMuY291bnRSZW5kZXJlZFJvd3M9''@;'; + put 'put ''ZnVuY3Rpb24oKXtyZXR1cm4gSS52aWV3Ll93dC5kcmF3bj9JLnZpZXcuX3d0Lnd0VGFibGUuZ2V0UmVuZGVyZWRSb3dzQ291bnQoKTotMX0sdGhpcy5jb3VudFZpc2libGVSb3dzPWZ1bmN0aW9uKCl7cmV0dXJuIEkudmlldy5fd3QuZHJhd24/SS52aWV3Ll93dC53dFRhYmxlLmdldFZpc2li''@;'; + put 'put ''bGVSb3dzQ291bnQoKTotMX0sdGhpcy5jb3VudFJlbmRlcmVkQ29scz1mdW5jdGlvbigpe3JldHVybiBJLnZpZXcuX3d0LmRyYXduP0kudmlldy5fd3Qud3RUYWJsZS5nZXRSZW5kZXJlZENvbHVtbnNDb3VudCgpOi0xfSx0aGlzLmNvdW50VmlzaWJsZUNvbHM9ZnVuY3Rpb24oKXtyZXR1cm4g''@;'; + put 'put ''SS52aWV3Ll93dC5kcmF3bj9JLnZpZXcuX3d0Lnd0VGFibGUuZ2V0VmlzaWJsZUNvbHVtbnNDb3VudCgpOi0xfSx0aGlzLmNvdW50RW1wdHlSb3dzPWZ1bmN0aW9uKCl7dmFyIEZuPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdJiZhcmd1bWVudHNbMF0sWm49MDty''@;'; + put 'put ''ZXR1cm4gc2VlKEkuY291bnRSb3dzKCktMSxmdW5jdGlvbihfcil7aWYoSS5pc0VtcHR5Um93KF9yKSlabis9MTtlbHNlIGlmKCEwPT09Rm4pcmV0dXJuITF9KSxabn0sdGhpcy5jb3VudEVtcHR5Q29scz1mdW5jdGlvbigpe3ZhciBGbj1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFy''@;'; + put 'put ''Z3VtZW50c1swXSYmYXJndW1lbnRzWzBdO2lmKEkuY291bnRSb3dzKCk8MSlyZXR1cm4gMDt2YXIgWm49MDtyZXR1cm4gc2VlKEkuY291bnRDb2xzKCktMSxmdW5jdGlvbihfcil7aWYoSS5pc0VtcHR5Q29sKF9yKSlabis9MTtlbHNlIGlmKCEwPT09Rm4pcmV0dXJuITF9KSxabn0sdGhpcy5p''@;'; + put 'put ''c0VtcHR5Um93PWZ1bmN0aW9uKEZuKXtyZXR1cm4gZm4uaXNFbXB0eVJvdy5jYWxsKEksRm4pfSx0aGlzLmlzRW1wdHlDb2w9ZnVuY3Rpb24oRm4pe3JldHVybiBmbi5pc0VtcHR5Q29sLmNhbGwoSSxGbil9LHRoaXMuc2VsZWN0Q2VsbD1mdW5jdGlvbihGbixabixfcixYcil7dmFyIGNpPSEo''@;'; + put 'put ''YXJndW1lbnRzLmxlbmd0aD40JiZ2b2lkIDAhPT1hcmd1bWVudHNbNF0pfHxhcmd1bWVudHNbNF0sYzA9IShhcmd1bWVudHMubGVuZ3RoPjUmJnZvaWQgMCE9PWFyZ3VtZW50c1s1XSl8fGFyZ3VtZW50c1s1XTtyZXR1cm4hYTEoRm4pJiYhYTEoWm4pJiZ0aGlzLnNlbGVjdENlbGxzKFtbRm4s''@;'; + put 'put ''Wm4sX3IsWHJdXSxjaSxjMCl9LHRoaXMuc2VsZWN0Q2VsbHM9ZnVuY3Rpb24oKXt2YXIgRm49YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOltbXV0sWm49IShhcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXSl8fGFy''@;'; + put 'put ''Z3VtZW50c1sxXSxfcj0hKGFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdKXx8YXJndW1lbnRzWzJdOyExPT09Wm4mJihDPSEwKTt2YXIgWHI9d3Iuc2VsZWN0Q2VsbHMoRm4pO3JldHVybiBYciYmX3ImJkkubGlzdGVuKCksQz0hMSxYcn0sdGhpcy5zZWxlY3RDb2x1''@;'; + put 'put ''bW5zPWZ1bmN0aW9uKEZuKXt2YXIgWm49YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOkZuO3JldHVybiB3ci5zZWxlY3RDb2x1bW5zKEZuLFpuKX0sdGhpcy5zZWxlY3RSb3dzPWZ1bmN0aW9uKEZuKXt2YXIgWm49YXJndW1lbnRzLmxlbmd0''@;'; + put 'put ''aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOkZuO3JldHVybiB3ci5zZWxlY3RSb3dzKEZuLFpuKX0sdGhpcy5kZXNlbGVjdENlbGw9ZnVuY3Rpb24oKXt3ci5kZXNlbGVjdCgpfSx0aGlzLnNlbGVjdEFsbD1mdW5jdGlvbigpe3ZhciBGbj0hKGFyZ3VtZW50cy5sZW5n''@;'; + put 'put ''dGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdKXx8YXJndW1lbnRzWzBdLFpuPUZuJiZ0aGlzLmhhc1Jvd0hlYWRlcnMoKSxfcj1GbiYmdGhpcy5oYXNDb2xIZWFkZXJzKCk7Qz0hMCx3ci5zZWxlY3RBbGwoWm4sX3IpLEM9ITF9O3ZhciBQMD1mdW5jdGlvbihabixfcil7cmV0dXJuIFpuLmdl''@;'; + put 'put ''dE5lYXJlc3ROb3RIaWRkZW5JbmRleChfciwxLCEwKX07ZnVuY3Rpb24gcm8oRm4pe3JldHVybiBmdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcignVGhlICInLmNvbmNhdChGbiwnIiBtZXRob2QgY2Fubm90IGJlIGNhbGxlZCBiZWNhdXNlIHRoaXMgSGFuZHNvbnRhYmxlIGluc3RhbmNlIGhh''@;'; + put 'put ''cyBiZWVuIGRlc3Ryb3llZCcpKX19dGhpcy5zY3JvbGxWaWV3cG9ydFRvPWZ1bmN0aW9uKEZuLFpuKXt2YXIgX3I9YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0mJmFyZ3VtZW50c1syXSxYcj1hcmd1bWVudHMubGVuZ3RoPjMmJnZvaWQgMCE9PWFyZ3VtZW50c1sz''@;'; + put 'put ''XSYmYXJndW1lbnRzWzNdLGNpPSEoYXJndW1lbnRzLmxlbmd0aD40JiZ2b2lkIDAhPT1hcmd1bWVudHNbNF0pfHxhcmd1bWVudHNbNF0sYzA9IV9yLFhpPSFYcixFMD1Gbix6MD1abjtpZihjaSl7dmFyIGtvPU51bWJlci5pc0ludGVnZXIoRm4pLHdvPU51bWJlci5pc0ludGVnZXIoWm4pLFdh''@;'; + put 'put ''PWtvP1AwKHRoaXMucm93SW5kZXhNYXBwZXIsRm4pOnZvaWQgMCxlMj13bz9QMCh0aGlzLmNvbHVtbkluZGV4TWFwcGVyLFpuKTp2b2lkIDA7aWYobnVsbD09PVdhfHxudWxsPT09ZTIpcmV0dXJuITE7RTA9a28/SS5yb3dJbmRleE1hcHBlci5nZXRSZW5kZXJhYmxlRnJvbVZpc3VhbEluZGV4''@;'; + put 'put ''KFdhKTp2b2lkIDAsejA9d28/SS5jb2x1bW5JbmRleE1hcHBlci5nZXRSZW5kZXJhYmxlRnJvbVZpc3VhbEluZGV4KGUyKTp2b2lkIDB9dmFyIEZhPU51bWJlci5pc0ludGVnZXIoRTApLHQyPU51bWJlci5pc0ludGVnZXIoejApO3JldHVybiBGYSYmdDI/SS52aWV3LnNjcm9sbFZpZXdwb3J0''@;'; + put 'put ''KEkuX2NyZWF0ZUNlbGxDb29yZHMoRTAsejApLGMwLFhyLF9yLFhpKTpGYSYmITE9PT10Mj9JLnZpZXcuc2Nyb2xsVmlld3BvcnRWZXJ0aWNhbGx5KEUwLGMwLF9yKTohKCF0Mnx8ITEhPT1GYSkmJkkudmlldy5zY3JvbGxWaWV3cG9ydEhvcml6b250YWxseSh6MCxYcixYaSl9LHRoaXMuZGVz''@;'; + put 'put ''dHJveT1mdW5jdGlvbigpe2lmKEkuX2NsZWFyVGltZW91dHMoKSxJLl9jbGVhckltbWVkaWF0ZXMoKSxJLnZpZXcmJkkudmlldy5kZXN0cm95KCksX2UmJl9lLmRlc3Ryb3koKSxfZT1udWxsLHRoaXMuZ2V0U2hvcnRjdXRNYW5hZ2VyKCkuZGVzdHJveSgpLCR0LmNsZWFyQ2FjaGUoKSx6ZGUo''@;'; + put 'put ''SSkpe3ZhciBGbj10aGlzLnJvb3REb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjaG90LWRpc3BsYXktbGljZW5zZS1pbmZvIik7Rm4mJkZuLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoRm4pfURwKEkucm9vdEVsZW1lbnQpLGouZGVzdHJveSgpLE5lJiZOZS5kZXN0cm95KCksSS5iYXRjaEV4ZWN1''@;'; + put 'put ''dGlvbihmdW5jdGlvbigpe0kucm93SW5kZXhNYXBwZXIudW5yZWdpc3RlckFsbCgpLEkuY29sdW1uSW5kZXhNYXBwZXIudW5yZWdpc3RlckFsbCgpLGlyLmdldEl0ZW1zKCkuZm9yRWFjaChmdW5jdGlvbihabil7SWcoWm4sMilbMV0uZGVzdHJveSgpfSksaXIuY2xlYXIoKSxJLnJ1bkhvb2tz''@;'; + put 'put ''KCJhZnRlckRlc3Ryb3kiKX0sITApLHpvLmdldFNpbmdsZXRvbigpLmRlc3Ryb3koSSksR2woSSxmdW5jdGlvbihabixfcixYcil7VTIoWm4pP1hyW19yXT1ybyhfcik6Imd1aWQiIT09X3ImJihYcltfcl09bnVsbCl9KSxJLmlzRGVzdHJveWVkPSEwLHVlJiZ1ZS5kZXN0cm95KCksSS5yb3dJ''@;'; + put 'put ''bmRleE1hcHBlcj1udWxsLEkuY29sdW1uSW5kZXhNYXBwZXI9bnVsbCx1ZT1udWxsLEJlPW51bGwsd3I9bnVsbCxOZT1udWxsLEk9bnVsbH0sdGhpcy5nZXRBY3RpdmVFZGl0b3I9ZnVuY3Rpb24oKXtyZXR1cm4gTmUuZ2V0QWN0aXZlRWRpdG9yKCl9LHRoaXMuZ2V0UGx1Z2luPWZ1bmN0aW9u''@;'; + put 'put ''KEZuKXt2YXIgWm49c2QoRm4pO3JldHVybiJVbmRvUmVkbyI9PT1abj90aGlzLnVuZG9SZWRvOmlyLmdldEl0ZW0oWm4pfSx0aGlzLmdldFBsdWdpbk5hbWU9ZnVuY3Rpb24oRm4pe3JldHVybiBGbj09PXRoaXMudW5kb1JlZG8/dGhpcy51bmRvUmVkby5jb25zdHJ1Y3Rvci5QTFVHSU5fS0VZ''@;'; + put 'put ''OmlyLmdldElkKEZuKX0sdGhpcy5nZXRJbnN0YW5jZT1mdW5jdGlvbigpe3JldHVybiBJfSx0aGlzLmFkZEhvb2s9ZnVuY3Rpb24oRm4sWm4pe3pvLmdldFNpbmdsZXRvbigpLmFkZChGbixabixJKX0sdGhpcy5oYXNIb29rPWZ1bmN0aW9uKEZuKXtyZXR1cm4gem8uZ2V0U2luZ2xldG9uKCku''@;'; + put 'put ''aGFzKEZuLEkpfHx6by5nZXRTaW5nbGV0b24oKS5oYXMoRm4pfSx0aGlzLmFkZEhvb2tPbmNlPWZ1bmN0aW9uKEZuLFpuKXt6by5nZXRTaW5nbGV0b24oKS5vbmNlKEZuLFpuLEkpfSx0aGlzLnJlbW92ZUhvb2s9ZnVuY3Rpb24oRm4sWm4pe3pvLmdldFNpbmdsZXRvbigpLnJlbW92ZShGbixa''@;'; + put 'put ''bixJKX0sdGhpcy5ydW5Ib29rcz1mdW5jdGlvbihGbixabixfcixYcixjaSxjMCxYaSl7cmV0dXJuIHpvLmdldFNpbmdsZXRvbigpLnJ1bihJLEZuLFpuLF9yLFhyLGNpLGMwLFhpKX0sdGhpcy5nZXRUcmFuc2xhdGVkUGhyYXNlPWZ1bmN0aW9uKEZuLFpuKXtyZXR1cm4gSWtlKGZuLmxhbmd1''@;'; + put 'put ''YWdlLEZuLFpuKX0sdGhpcy50b0hUTUw9ZnVuY3Rpb24oKXtyZXR1cm4gRDNlKHYpfSx0aGlzLnRvVGFibGVFbGVtZW50PWZ1bmN0aW9uKCl7dmFyIEZuPXYucm9vdERvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3JldHVybiBGbi5pbnNlcnRBZGphY2VudEhUTUwoImFmdGVyYmVnaW4i''@;'; + put 'put ''LEQzZSh2KSksRm4uZmlyc3RFbGVtZW50Q2hpbGR9LHRoaXMudGltZW91dHM9W10sdGhpcy5fcmVnaXN0ZXJUaW1lb3V0PWZ1bmN0aW9uKEZuKXt2YXIgWm49YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOjAsX3I9Rm47ImZ1bmN0aW9uIj09''@;'; + put 'put ''dHlwZW9mIF9yJiYoX3I9c2V0VGltZW91dChfcixabikpLHRoaXMudGltZW91dHMucHVzaChfcil9LHRoaXMuX2NsZWFyVGltZW91dHM9ZnVuY3Rpb24oKXtVcih0aGlzLnRpbWVvdXRzLGZ1bmN0aW9uKEZuKXtjbGVhclRpbWVvdXQoRm4pfSl9LHRoaXMuaW1tZWRpYXRlcz1bXSx0aGlzLl9y''@;'; + put 'put ''ZWdpc3RlckltbWVkaWF0ZT1mdW5jdGlvbihGbil7dGhpcy5pbW1lZGlhdGVzLnB1c2goc2V0SW1tZWRpYXRlKEZuKSl9LHRoaXMuX2NsZWFySW1tZWRpYXRlcz1mdW5jdGlvbigpe1VyKHRoaXMuaW1tZWRpYXRlcyxmdW5jdGlvbihGbil7Y2xlYXJJbW1lZGlhdGUoRm4pfSl9LHRoaXMuX3Jl''@;'; + put 'put ''ZnJlc2hCb3JkZXJzPWZ1bmN0aW9uKCl7dmFyIEZuPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdJiZhcmd1bWVudHNbMF0sWm49IShhcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXSl8fGFyZ3VtZW50c1sxXTtOZS5kZXN0cm95RWRpdG9y''@;'; + put 'put ''KEZuKSxJLnZpZXcucmVuZGVyKCksWm4mJndyLmlzU2VsZWN0ZWQoKSYmTmUucHJlcGFyZUVkaXRvcigpfSx0aGlzLmlzUnRsPWZ1bmN0aW9uKCl7cmV0dXJuInJ0bCI9PT1JLnJvb3RXaW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShJLnJvb3RFbGVtZW50KS5kaXJlY3Rpb259LHRoaXMuaXNMdHI9''@;'; + put 'put ''ZnVuY3Rpb24oKXtyZXR1cm4hSS5pc1J0bCgpfSx0aGlzLmdldERpcmVjdGlvbkZhY3Rvcj1mdW5jdGlvbigpe3JldHVybiBJLmlzTHRyKCk/MTotMX07dmFyIGZvPV9xZSh7aGFuZGxlRXZlbnQ6ZnVuY3Rpb24oWm4pe3JldHVybiBJLmlzTGlzdGVuaW5nKCkmJnZvaWQgMCE9PShudWxsPT1a''@;'; + put 'put ''bj92b2lkIDA6Wm4ua2V5KX0sYmVmb3JlS2V5RG93bjpmdW5jdGlvbihabil7cmV0dXJuIHYucnVuSG9va3MoImJlZm9yZUtleURvd24iLFpuKX0sYWZ0ZXJLZXlEb3duOmZ1bmN0aW9uKFpuKXt2LmlzRGVzdHJveWVkfHxJLnJ1bkhvb2tzKCJhZnRlckRvY3VtZW50S2V5RG93biIsWm4pfSxv''@;'; + put 'put ''d25lcldpbmRvdzp0aGlzLnJvb3RXaW5kb3d9KTt0aGlzLmdldFNob3J0Y3V0TWFuYWdlcj1mdW5jdGlvbigpe3JldHVybiBmb307dmFyIElhPWZvLmFkZENvbnRleHQoImdyaWQiKSxYbD17cnVuT25seUlmOmZ1bmN0aW9uKCl7cmV0dXJuIFRvKEkuZ2V0U2VsZWN0ZWQoKSkmJkkuY291bnRS''@;'; + put 'put ''ZW5kZXJlZFJvd3MoKT4wJiZJLmNvdW50UmVuZGVyZWRDb2xzKCk+MH0sZ3JvdXA6VHFlfTtmby5zZXRBY3RpdmVDb250ZXh0TmFtZSgiZ3JpZCIpLElhLmFkZFNob3J0Y3V0cyhbe2tleXM6W1siQ29udHJvbC9NZXRhIiwiQSJdXSxjYWxsYmFjazpmdW5jdGlvbigpe0kuc2VsZWN0QWxsKCl9''@;'; + put 'put ''fSx7a2V5czpbWyJDb250cm9sL01ldGEiLCJFbnRlciJdXSxjYWxsYmFjazpmdW5jdGlvbigpe2Zvcih2YXIgWm49SS5nZXRTZWxlY3RlZFJhbmdlKCksX3I9Wm5bWm4ubGVuZ3RoLTFdLmhpZ2hsaWdodCxYcj1fci5yb3csY2k9X3IuY29sLGMwPUkuZ2V0RGF0YUF0Q2VsbChYcixjaSksWGk9''@;'; + put 'put ''bmV3IE1hcCxFMD0wO0UwPFpuLmxlbmd0aDtFMCsrKVpuW0UwXS5mb3JBbGwoZnVuY3Rpb24oejAsa28pe3owPj0wJiZrbz49MCYmKHowIT09WHJ8fGtvIT09Y2kpJiYoSS5nZXRDZWxsTWV0YSh6MCxrbykucmVhZE9ubHl8fFhpLnNldCgiIi5jb25jYXQoejAsIngiKS5jb25jYXQoa28pLFt6''@;'; + put 'put ''MCxrbyxjMF0pKX0pO0kuc2V0RGF0YUF0Q2VsbChBcnJheS5mcm9tKFhpLnZhbHVlcygpKSl9LHJ1bk9ubHlJZjpmdW5jdGlvbigpe3JldHVybiBJLmdldFNlbGVjdGVkUmFuZ2VMYXN0KCkuZ2V0Q2VsbHNDb3VudCgpPjF9fSx7a2V5czpbWyJBcnJvd1VwIl1dLGNhbGxiYWNrOmZ1bmN0aW9u''@;'; + put 'put ''KCl7d3IudHJhbnNmb3JtU3RhcnQoLTEsMCl9fSx7a2V5czpbWyJBcnJvd1VwIiwiQ29udHJvbC9NZXRhIl1dLGNhcHR1cmVDdHJsOiEwLGNhbGxiYWNrOmZ1bmN0aW9uKCl7d3Iuc2V0UmFuZ2VTdGFydChJLl9jcmVhdGVDZWxsQ29vcmRzKEkucm93SW5kZXhNYXBwZXIuZ2V0TmVhcmVzdE5v''@;'; + put 'put ''dEhpZGRlbkluZGV4KDAsMSksSS5nZXRTZWxlY3RlZFJhbmdlTGFzdCgpLmhpZ2hsaWdodC5jb2wpKX19LHtrZXlzOltbIkFycm93VXAiLCJTaGlmdCJdXSxjYWxsYmFjazpmdW5jdGlvbigpe3dyLnRyYW5zZm9ybUVuZCgtMSwwKX19LHtrZXlzOltbIkFycm93VXAiLCJTaGlmdCIsIkNvbnRy''@;'; + put 'put ''b2wvTWV0YSJdXSxjYXB0dXJlQ3RybDohMCxjYWxsYmFjazpmdW5jdGlvbigpe3ZhciBabj1JLmdldFNlbGVjdGVkUmFuZ2VMYXN0KCksX3I9Wm4uZnJvbSxYcj1abi50byxjaT1JLnJvd0luZGV4TWFwcGVyLmdldE5lYXJlc3ROb3RIaWRkZW5JbmRleCgwLDEpO3dyLnNldFJhbmdlU3RhcnQo''@;'; + put 'put ''X3IuY2xvbmUoKSksd3Iuc2V0UmFuZ2VFbmQoSS5fY3JlYXRlQ2VsbENvb3JkcyhjaSxYci5jb2wpKX0scnVuT25seUlmOmZ1bmN0aW9uKCl7cmV0dXJuIShJLnNlbGVjdGlvbi5pc1NlbGVjdGVkQnlDb3JuZXIoKXx8SS5zZWxlY3Rpb24uaXNTZWxlY3RlZEJ5Q29sdW1uSGVhZGVyKCkpfX0s''@;'; + put 'put ''e2tleXM6W1siQXJyb3dEb3duIl1dLGNhbGxiYWNrOmZ1bmN0aW9uKCl7d3IudHJhbnNmb3JtU3RhcnQoMSwwKX19LHtrZXlzOltbIkFycm93RG93biIsIkNvbnRyb2wvTWV0YSJdXSxjYXB0dXJlQ3RybDohMCxjYWxsYmFjazpmdW5jdGlvbigpe3dyLnNldFJhbmdlU3RhcnQoSS5fY3JlYXRl''@;'; + put 'put ''Q2VsbENvb3JkcyhJLnJvd0luZGV4TWFwcGVyLmdldE5lYXJlc3ROb3RIaWRkZW5JbmRleChJLmNvdW50Um93cygpLTEsLTEpLEkuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKS5oaWdobGlnaHQuY29sKSl9fSx7a2V5czpbWyJBcnJvd0Rvd24iLCJTaGlmdCJdXSxjYWxsYmFjazpmdW5jdGlvbigp''@;'; + put 'put ''e3dyLnRyYW5zZm9ybUVuZCgxLDApfX0se2tleXM6W1siQXJyb3dEb3duIiwiU2hpZnQiLCJDb250cm9sL01ldGEiXV0sY2FwdHVyZUN0cmw6ITAsY2FsbGJhY2s6ZnVuY3Rpb24oKXt2YXIgWm49SS5nZXRTZWxlY3RlZFJhbmdlTGFzdCgpLF9yPVpuLmZyb20sWHI9Wm4udG8sY2k9SS5yb3dJ''@;'; + put 'put ''bmRleE1hcHBlci5nZXROZWFyZXN0Tm90SGlkZGVuSW5kZXgoSS5jb3VudFJvd3MoKS0xLC0xKTt3ci5zZXRSYW5nZVN0YXJ0KF9yLmNsb25lKCkpLHdyLnNldFJhbmdlRW5kKEkuX2NyZWF0ZUNlbGxDb29yZHMoY2ksWHIuY29sKSl9LHJ1bk9ubHlJZjpmdW5jdGlvbigpe3JldHVybiEoSS5z''@;'; + put 'put ''ZWxlY3Rpb24uaXNTZWxlY3RlZEJ5Q29ybmVyKCl8fEkuc2VsZWN0aW9uLmlzU2VsZWN0ZWRCeUNvbHVtbkhlYWRlcigpKX19LHtrZXlzOltbIkFycm93TGVmdCJdXSxjYWxsYmFjazpmdW5jdGlvbigpe3dyLnRyYW5zZm9ybVN0YXJ0KDAsLTEqSS5nZXREaXJlY3Rpb25GYWN0b3IoKSl9fSx7''@;'; + put 'put ''a2V5czpbWyJBcnJvd0xlZnQiLCJDb250cm9sL01ldGEiXV0sY2FwdHVyZUN0cmw6ITAsY2FsbGJhY2s6ZnVuY3Rpb24oKXt2YXIgWm4sX3I9SS5nZXRTZWxlY3RlZFJhbmdlTGFzdCgpLmhpZ2hsaWdodC5yb3csWHI9KFpuPUkuY29sdW1uSW5kZXhNYXBwZXIpLmdldE5lYXJlc3ROb3RIaWRk''@;'; + put 'put ''ZW5JbmRleC5hcHBseShabixSdyhJLmlzUnRsKCk/W0kuY291bnRDb2xzKCktMSwtMV06WzAsMV0pKTt3ci5zZXRSYW5nZVN0YXJ0KEkuX2NyZWF0ZUNlbGxDb29yZHMoX3IsWHIpKX19LHtrZXlzOltbIkFycm93TGVmdCIsIlNoaWZ0Il1dLGNhbGxiYWNrOmZ1bmN0aW9uKCl7d3IudHJhbnNm''@;'; + put 'put ''b3JtRW5kKDAsLTEqSS5nZXREaXJlY3Rpb25GYWN0b3IoKSl9fSx7a2V5czpbWyJBcnJvd0xlZnQiLCJTaGlmdCIsIkNvbnRyb2wvTWV0YSJdXSxjYXB0dXJlQ3RybDohMCxjYWxsYmFjazpmdW5jdGlvbigpe3ZhciBabixfcj1JLmdldFNlbGVjdGVkUmFuZ2VMYXN0KCksWHI9X3IuZnJvbSxj''@;'; + put 'put ''aT1fci50byxjMD0oWm49SS5jb2x1bW5JbmRleE1hcHBlcikuZ2V0TmVhcmVzdE5vdEhpZGRlbkluZGV4LmFwcGx5KFpuLFJ3KEkuaXNSdGwoKT9bSS5jb3VudENvbHMoKS0xLC0xXTpbMCwxXSkpO3dyLnNldFJhbmdlU3RhcnQoWHIuY2xvbmUoKSksd3Iuc2V0UmFuZ2VFbmQoSS5fY3JlYXRl''@;'; + put 'put ''Q2VsbENvb3JkcyhjaS5yb3csYzApKX0scnVuT25seUlmOmZ1bmN0aW9uKCl7cmV0dXJuIShJLnNlbGVjdGlvbi5pc1NlbGVjdGVkQnlDb3JuZXIoKXx8SS5zZWxlY3Rpb24uaXNTZWxlY3RlZEJ5Um93SGVhZGVyKCkpfX0se2tleXM6W1siQXJyb3dSaWdodCJdXSxjYWxsYmFjazpmdW5jdGlv''@;'; + put 'put ''bigpe3dyLnRyYW5zZm9ybVN0YXJ0KDAsSS5nZXREaXJlY3Rpb25GYWN0b3IoKSl9fSx7a2V5czpbWyJBcnJvd1JpZ2h0IiwiQ29udHJvbC9NZXRhIl1dLGNhcHR1cmVDdHJsOiEwLGNhbGxiYWNrOmZ1bmN0aW9uKCl7dmFyIFpuLF9yPUkuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKS5oaWdobGln''@;'; + put 'put ''aHQucm93LFhyPShabj1JLmNvbHVtbkluZGV4TWFwcGVyKS5nZXROZWFyZXN0Tm90SGlkZGVuSW5kZXguYXBwbHkoWm4sUncoSS5pc1J0bCgpP1swLDFdOltJLmNvdW50Q29scygpLTEsLTFdKSk7d3Iuc2V0UmFuZ2VTdGFydChJLl9jcmVhdGVDZWxsQ29vcmRzKF9yLFhyKSl9fSx7a2V5czpb''@;'; + put 'put ''WyJBcnJvd1JpZ2h0IiwiU2hpZnQiXV0sY2FsbGJhY2s6ZnVuY3Rpb24oKXt3ci50cmFuc2Zvcm1FbmQoMCxJLmdldERpcmVjdGlvbkZhY3RvcigpKX19LHtrZXlzOltbIkFycm93UmlnaHQiLCJTaGlmdCIsIkNvbnRyb2wvTWV0YSJdXSxjYXB0dXJlQ3RybDohMCxjYWxsYmFjazpmdW5jdGlv''@;'; + put 'put ''bigpe3ZhciBabixfcj1JLmdldFNlbGVjdGVkUmFuZ2VMYXN0KCksWHI9X3IuZnJvbSxjaT1fci50byxjMD0oWm49SS5jb2x1bW5JbmRleE1hcHBlcikuZ2V0TmVhcmVzdE5vdEhpZGRlbkluZGV4LmFwcGx5KFpuLFJ3KEkuaXNSdGwoKT9bMCwxXTpbSS5jb3VudENvbHMoKS0xLC0xXSkpO3dy''@;'; + put 'put ''LnNldFJhbmdlU3RhcnQoWHIuY2xvbmUoKSksd3Iuc2V0UmFuZ2VFbmQoSS5fY3JlYXRlQ2VsbENvb3JkcyhjaS5yb3csYzApKX0scnVuT25seUlmOmZ1bmN0aW9uKCl7cmV0dXJuIShJLnNlbGVjdGlvbi5pc1NlbGVjdGVkQnlDb3JuZXIoKXx8SS5zZWxlY3Rpb24uaXNTZWxlY3RlZEJ5Um93''@;'; + put 'put ''SGVhZGVyKCkpfX0se2tleXM6W1siSG9tZSJdXSxjYXB0dXJlQ3RybDohMCxjYWxsYmFjazpmdW5jdGlvbigpe3ZhciBabj1wYXJzZUludChJLmdldFNldHRpbmdzKCkuZml4ZWRDb2x1bW5zU3RhcnQsMTApLF9yPUkuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKS5oaWdobGlnaHQucm93LFhyPUku''@;'; + put 'put ''Y29sdW1uSW5kZXhNYXBwZXIuZ2V0TmVhcmVzdE5vdEhpZGRlbkluZGV4KFpuLDEpO3dyLnNldFJhbmdlU3RhcnQoSS5fY3JlYXRlQ2VsbENvb3JkcyhfcixYcikpfSxydW5Pbmx5SWY6ZnVuY3Rpb24oKXtyZXR1cm4gSS52aWV3LmlzTWFpblRhYmxlTm90RnVsbHlDb3ZlcmVkQnlPdmVybGF5''@;'; + put 'put ''cygpfX0se2tleXM6W1siSG9tZSIsIlNoaWZ0Il1dLGNhbGxiYWNrOmZ1bmN0aW9uKCl7d3Iuc2V0UmFuZ2VFbmQoSS5fY3JlYXRlQ2VsbENvb3Jkcyh3ci5zZWxlY3RlZFJhbmdlLmN1cnJlbnQoKS5mcm9tLnJvdyxJLmNvbHVtbkluZGV4TWFwcGVyLmdldE5lYXJlc3ROb3RIaWRkZW5JbmRl''@;'; + put 'put ''eCgwLDEpKSl9fSx7a2V5czpbWyJIb21lIiwiQ29udHJvbC9NZXRhIl1dLGNhcHR1cmVDdHJsOiEwLGNhbGxiYWNrOmZ1bmN0aW9uKCl7dmFyIFpuPXBhcnNlSW50KEkuZ2V0U2V0dGluZ3MoKS5maXhlZFJvd3NUb3AsMTApLF9yPXBhcnNlSW50KEkuZ2V0U2V0dGluZ3MoKS5maXhlZENvbHVt''@;'; + put 'put ''bnNTdGFydCwxMCksWHI9SS5yb3dJbmRleE1hcHBlci5nZXROZWFyZXN0Tm90SGlkZGVuSW5kZXgoWm4sMSksY2k9SS5jb2x1bW5JbmRleE1hcHBlci5nZXROZWFyZXN0Tm90SGlkZGVuSW5kZXgoX3IsMSk7d3Iuc2V0UmFuZ2VTdGFydChJLl9jcmVhdGVDZWxsQ29vcmRzKFhyLGNpKSl9LHJ1''@;'; + put 'put ''bk9ubHlJZjpmdW5jdGlvbigpe3JldHVybiBJLnZpZXcuaXNNYWluVGFibGVOb3RGdWxseUNvdmVyZWRCeU92ZXJsYXlzKCl9fSx7a2V5czpbWyJFbmQiXV0sY2FwdHVyZUN0cmw6ITAsY2FsbGJhY2s6ZnVuY3Rpb24oKXt3ci5zZXRSYW5nZVN0YXJ0KEkuX2NyZWF0ZUNlbGxDb29yZHMoSS5n''@;'; + put 'put ''ZXRTZWxlY3RlZFJhbmdlTGFzdCgpLmhpZ2hsaWdodC5yb3csSS5jb2x1bW5JbmRleE1hcHBlci5nZXROZWFyZXN0Tm90SGlkZGVuSW5kZXgoSS5jb3VudENvbHMoKS0xLC0xKSkpfSxydW5Pbmx5SWY6ZnVuY3Rpb24oKXtyZXR1cm4gSS52aWV3LmlzTWFpblRhYmxlTm90RnVsbHlDb3ZlcmVk''@;'; + put 'put ''QnlPdmVybGF5cygpfX0se2tleXM6W1siRW5kIiwiU2hpZnQiXV0sY2FsbGJhY2s6ZnVuY3Rpb24oKXt3ci5zZXRSYW5nZUVuZChJLl9jcmVhdGVDZWxsQ29vcmRzKHdyLnNlbGVjdGVkUmFuZ2UuY3VycmVudCgpLmZyb20ucm93LEkuY29sdW1uSW5kZXhNYXBwZXIuZ2V0TmVhcmVzdE5vdEhp''@;'; + put 'put ''ZGRlbkluZGV4KEkuY291bnRDb2xzKCktMSwtMSkpKX19LHtrZXlzOltbIkVuZCIsIkNvbnRyb2wvTWV0YSJdXSxjYXB0dXJlQ3RybDohMCxjYWxsYmFjazpmdW5jdGlvbigpe3ZhciBabj1wYXJzZUludChJLmdldFNldHRpbmdzKCkuZml4ZWRSb3dzQm90dG9tLDEwKSxfcj1JLnJvd0luZGV4''@;'; + put 'put ''TWFwcGVyLmdldE5lYXJlc3ROb3RIaWRkZW5JbmRleChJLmNvdW50Um93cygpLVpuLTEsLTEpLFhyPUkuY29sdW1uSW5kZXhNYXBwZXIuZ2V0TmVhcmVzdE5vdEhpZGRlbkluZGV4KEkuY291bnRDb2xzKCktMSwtMSk7d3Iuc2V0UmFuZ2VTdGFydChJLl9jcmVhdGVDZWxsQ29vcmRzKF9yLFhy''@;'; + put 'put ''KSl9LHJ1bk9ubHlJZjpmdW5jdGlvbigpe3JldHVybiBJLnZpZXcuaXNNYWluVGFibGVOb3RGdWxseUNvdmVyZWRCeU92ZXJsYXlzKCl9fSx7a2V5czpbWyJQYWdlVXAiXV0sY2FsbGJhY2s6ZnVuY3Rpb24oKXt3ci50cmFuc2Zvcm1TdGFydCgtSS5jb3VudFZpc2libGVSb3dzKCksMCl9fSx7''@;'; + put 'put ''a2V5czpbWyJQYWdlVXAiLCJTaGlmdCJdXSxjYWxsYmFjazpmdW5jdGlvbigpe3ZhciBfcj1JLmdldFNlbGVjdGVkUmFuZ2VMYXN0KCkudG8sWHI9TWF0aC5tYXgoX3Iucm93LUkuY291bnRWaXNpYmxlUm93cygpLDApLGNpPUkucm93SW5kZXhNYXBwZXIuZ2V0TmVhcmVzdE5vdEhpZGRlbklu''@;'; + put 'put ''ZGV4KFhyLDEpO2lmKG51bGwhPT1jaSl7dmFyIGMwPUkuX2NyZWF0ZUNlbGxDb29yZHMoY2ksX3IuY29sKSxYaT1fci5yb3ctSS52aWV3LmdldEZpcnN0RnVsbHlWaXNpYmxlUm93KCksRTA9TWF0aC5tYXgoYzAucm93LVhpLDApO3dyLnNldFJhbmdlRW5kKGMwKSxJLnNjcm9sbFZpZXdwb3J0''@;'; + put 'put ''VG8oRTApfX19LHtrZXlzOltbIlBhZ2VEb3duIl1dLGNhbGxiYWNrOmZ1bmN0aW9uKCl7d3IudHJhbnNmb3JtU3RhcnQoSS5jb3VudFZpc2libGVSb3dzKCksMCl9fSx7a2V5czpbWyJQYWdlRG93biIsIlNoaWZ0Il1dLGNhbGxiYWNrOmZ1bmN0aW9uKCl7dmFyIF9yPUkuZ2V0U2VsZWN0ZWRS''@;'; + put 'put ''YW5nZUxhc3QoKS50byxYcj1NYXRoLm1pbihfci5yb3crSS5jb3VudFZpc2libGVSb3dzKCksSS5jb3VudFJvd3MoKS0xKSxjaT1JLnJvd0luZGV4TWFwcGVyLmdldE5lYXJlc3ROb3RIaWRkZW5JbmRleChYciwtMSk7aWYobnVsbCE9PWNpKXt2YXIgYzA9SS5fY3JlYXRlQ2VsbENvb3Jkcyhj''@;'; + put 'put ''aSxfci5jb2wpLFhpPV9yLnJvdy1JLnZpZXcuZ2V0Rmlyc3RGdWxseVZpc2libGVSb3coKSxFMD1NYXRoLm1pbihjMC5yb3ctWGksSS5jb3VudFJvd3MoKS0xKTt3ci5zZXRSYW5nZUVuZChjMCksSS5zY3JvbGxWaWV3cG9ydFRvKEUwKX19fSx7a2V5czpbWyJUYWIiXV0sY2FsbGJhY2s6ZnVu''@;'; + put 'put ''Y3Rpb24oWm4pe3ZhciBfcj0iZnVuY3Rpb24iPT10eXBlb2YgZm4udGFiTW92ZXM/Zm4udGFiTW92ZXMoWm4pOmZuLnRhYk1vdmVzO3dyLnRyYW5zZm9ybVN0YXJ0KF9yLnJvdyxfci5jb2wsITApfX0se2tleXM6W1siU2hpZnQiLCJUYWIiXV0sY2FsbGJhY2s6ZnVuY3Rpb24oWm4pe3ZhciBf''@;'; + put 'put ''cj0iZnVuY3Rpb24iPT10eXBlb2YgZm4udGFiTW92ZXM/Zm4udGFiTW92ZXMoWm4pOmZuLnRhYk1vdmVzO3dyLnRyYW5zZm9ybVN0YXJ0KC1fci5yb3csLV9yLmNvbCl9fV0sWGwpLHozZSgpLmZvckVhY2goZnVuY3Rpb24oRm4pe3ZhciBabj1XWihGbik7aXIuYWRkSXRlbShGbixuZXcgWm4o''@;'; + put 'put ''dikpfSksem8uZ2V0U2luZ2xldG9uKCkucnVuKEksImNvbnN0cnVjdCIpfXZhciBEU2U9e19ob29rc1N0b3JhZ2U6T2JqZWN0LmNyZWF0ZShudWxsKSxhZGRIb29rOmZ1bmN0aW9uKGcsaCl7cmV0dXJuIHRoaXMuX2hvb2tzU3RvcmFnZVtnXXx8KHRoaXMuX2hvb2tzU3RvcmFnZVtnXT1bXSks''@;'; + put 'put ''dGhpcy5ob3QuYWRkSG9vayhnLGgpLHRoaXMuX2hvb2tzU3RvcmFnZVtnXS5wdXNoKGgpLHRoaXN9LHJlbW92ZUhvb2tzQnlLZXk6ZnVuY3Rpb24oZyl7dmFyIGg9dGhpcztVcih0aGlzLl9ob29rc1N0b3JhZ2VbZ118fFtdLGZ1bmN0aW9uKHYpe2guaG90LnJlbW92ZUhvb2soZyx2KX0pfSxj''@;'; + put 'put ''bGVhckhvb2tzOmZ1bmN0aW9uKCl7dmFyIGc9dGhpcztHbCh0aGlzLl9ob29rc1N0b3JhZ2UsZnVuY3Rpb24oaCx2KXtyZXR1cm4gZy5yZW1vdmVIb29rc0J5S2V5KHYpfSksdGhpcy5faG9va3NTdG9yYWdlPXt9fX07U2coRFNlLCJNSVhJTl9OQU1FIiwiaG9va3NSZWZSZWdpc3RlcmVyIix7''@;'; + put 'put ''d3JpdGFibGU6ITEsZW51bWVyYWJsZTohMX0pO2NvbnN0IERxZT1EU2U7ZnVuY3Rpb24gYTZlKGQpe3JldHVybihhNmU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZyl7cmV0dXJuIHR5cGVvZiBnfTpmdW5jdGlv''@;'; + put 'put ''bihnKXtyZXR1cm4gZyYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZy5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZyE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGd9KShkKX1mdW5jdGlvbiBMU2UoZCxnKXsobnVsbD09Z3x8Zz5kLmxlbmd0aCkmJihnPWQubGVuZ3RoKTtm''@;'; + put 'put ''b3IodmFyIGg9MCx2PW5ldyBBcnJheShnKTtoPGc7aCsrKXZbaF09ZFtoXTtyZXR1cm4gdn1mdW5jdGlvbiBsNmUoZCxnKXtyZXR1cm4obDZlPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHYseSl7cmV0dXJuIHYuX19wcm90b19f''@;'; + put 'put ''PXksdn0pKGQsZyl9ZnVuY3Rpb24gTnFlKGQsZyl7aWYoZyYmKCJvYmplY3QiPT09YTZlKGcpfHwiZnVuY3Rpb24iPT10eXBlb2YgZykpcmV0dXJuIGc7aWYodm9pZCAwIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJEZXJpdmVkIGNvbnN0cnVjdG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0''@;'; + put 'put ''IG9yIHVuZGVmaW5lZCIpO3JldHVybiBmdW5jdGlvbiBWcWUoZCl7aWYodm9pZCAwPT09ZCl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3JldHVybiBkfShkKX1mdW5jdGlvbiBtdGUo''@;'; + put 'put ''ZCl7cmV0dXJuKG10ZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihoKXtyZXR1cm4gaC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihoKX0pKGQpfWZ1bmN0aW9uIE9TZShkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcp''@;'; + put 'put ''KXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfWZ1bmN0aW9uIFJTZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2''@;'; + put 'put ''YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fWZ1bmN0aW9uIEJTZShkLGcsaCl7cmV0dXJuIGcmJlJTZShkLnByb3RvdHlwZSxnKSxoJiZSU2UoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFi''@;'; + put 'put ''bGU6ITF9KSxkfXZhciByZj1PYmplY3QuZnJlZXplKHtWSVJHSU46IlNUQVRFX1ZJUkdJTiIsRURJVElORzoiU1RBVEVfRURJVElORyIsV0FJVElORzoiU1RBVEVfV0FJVElORyIsRklOSVNIRUQ6IlNUQVRFX0ZJTklTSEVEIn0pLHM2ZT0iYmFzZUVkaXRvciIsQ089ZnVuY3Rpb24oKXtmdW5j''@;'; + put 'put ''dGlvbiBkKGcpe09TZSh0aGlzLGQpLHRoaXMuaG90PWcsdGhpcy5pbnN0YW5jZT1nLHRoaXMuc3RhdGU9cmYuVklSR0lOLHRoaXMuX29wZW5lZD0hMSx0aGlzLl9mdWxsRWRpdE1vZGU9ITEsdGhpcy5fY2xvc2VDYWxsYmFjaz1udWxsLHRoaXMuVEQ9bnVsbCx0aGlzLnJvdz1udWxsLHRoaXMu''@;'; + put 'put ''Y29sPW51bGwsdGhpcy5wcm9wPW51bGwsdGhpcy5vcmlnaW5hbFZhbHVlPW51bGwsdGhpcy5jZWxsUHJvcGVydGllcz1udWxsLHRoaXMuaW5pdCgpfXJldHVybiBCU2UoZCxbe2tleToiX2ZpcmVDYWxsYmFja3MiLHZhbHVlOmZ1bmN0aW9uKGgpe3RoaXMuX2Nsb3NlQ2FsbGJhY2smJih0aGlz''@;'; + put 'put ''Ll9jbG9zZUNhbGxiYWNrKGgpLHRoaXMuX2Nsb3NlQ2FsbGJhY2s9bnVsbCl9fSx7a2V5OiJpbml0Iix2YWx1ZTpmdW5jdGlvbigpe319LHtrZXk6ImdldFZhbHVlIix2YWx1ZTpmdW5jdGlvbigpe3Rocm93IEVycm9yKCJFZGl0b3IgZ2V0VmFsdWUoKSBtZXRob2QgdW5pbXBsZW1lbnRlZCIp''@;'; + put 'put ''fX0se2tleToic2V0VmFsdWUiLHZhbHVlOmZ1bmN0aW9uKCl7dGhyb3cgRXJyb3IoIkVkaXRvciBzZXRWYWx1ZSgpIG1ldGhvZCB1bmltcGxlbWVudGVkIil9fSx7a2V5OiJvcGVuIix2YWx1ZTpmdW5jdGlvbigpe3Rocm93IEVycm9yKCJFZGl0b3Igb3BlbigpIG1ldGhvZCB1bmltcGxlbWVu''@;'; + put 'put ''dGVkIil9fSx7a2V5OiJjbG9zZSIsdmFsdWU6ZnVuY3Rpb24oKXt0aHJvdyBFcnJvcigiRWRpdG9yIGNsb3NlKCkgbWV0aG9kIHVuaW1wbGVtZW50ZWQiKX19LHtrZXk6InByZXBhcmUiLHZhbHVlOmZ1bmN0aW9uKGgsdix5LEMsSSxqKXt0aGlzLlREPUMsdGhpcy5yb3c9aCx0aGlzLmNvbD12''@;'; + put 'put ''LHRoaXMucHJvcD15LHRoaXMub3JpZ2luYWxWYWx1ZT1JLHRoaXMuY2VsbFByb3BlcnRpZXM9aix0aGlzLnN0YXRlPXJmLlZJUkdJTn19LHtrZXk6ImV4dGVuZCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24oaCl7IWZ1bmN0aW9uIEZxZShkLGcpe2lmKCJmdW5jdGlvbiIhPXR5''@;'; + put 'put ''cGVvZiBnJiZudWxsIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiIpO2QucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZyYmZy5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTpkLHdyaXRhYmxlOiEw''@;'; + put 'put ''LGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxnJiZsNmUoZCxnKX0oeSxoKTt2YXIgdj1mdW5jdGlvbiBIcWUoZCl7dmFyIGc9ZnVuY3Rpb24ganFlKCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBSZWZsZWN0fHwh''@;'; + put 'put ''UmVmbGVjdC5jb25zdHJ1Y3R8fFJlZmxlY3QuY29uc3RydWN0LnNoYW0pcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIFByb3h5KXJldHVybiEwO3RyeXtyZXR1cm4gQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10sZnVuY3Rp''@;'; + put 'put ''b24oKXt9KSksITB9Y2F0Y2goZCl7cmV0dXJuITF9fSgpO3JldHVybiBmdW5jdGlvbigpe3ZhciB5LHY9bXRlKGQpO2lmKGcpe3ZhciBDPW10ZSh0aGlzKS5jb25zdHJ1Y3Rvcjt5PVJlZmxlY3QuY29uc3RydWN0KHYsYXJndW1lbnRzLEMpfWVsc2UgeT12LmFwcGx5KHRoaXMsYXJndW1lbnRz''@;'; + put 'put ''KTtyZXR1cm4gTnFlKHRoaXMseSl9fSh5KTtmdW5jdGlvbiB5KCl7cmV0dXJuIE9TZSh0aGlzLHkpLHYuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiBCU2UoeSl9KHRoaXMuY29uc3RydWN0b3IpfX0se2tleToic2F2ZVZhbHVlIix2YWx1ZTpmdW5jdGlvbihoLHYpe3ZhciBDLEksaix1''@;'; + put 'put ''ZSx5PXRoaXM7aWYodil7dmFyIF9lPXRoaXMuaG90LmdldFNlbGVjdGVkTGFzdCgpO0M9TWF0aC5tYXgoTWF0aC5taW4oX2VbMF0sX2VbMl0pLDApLEk9TWF0aC5tYXgoTWF0aC5taW4oX2VbMV0sX2VbM10pLDApLGo9TWF0aC5tYXgoX2VbMF0sX2VbMl0pLHVlPU1hdGgubWF4KF9lWzFdLF9l''@;'; + put 'put ''WzNdKX1lbHNle3ZhciBCZT1bdGhpcy5yb3csdGhpcy5jb2wsbnVsbCxudWxsXTtDPUJlWzBdLEk9QmVbMV0saj1CZVsyXSx1ZT1CZVszXX12YXIgTmU9dGhpcy5ob3QucnVuSG9va3MoIm1vZGlmeUdldENlbGxDb29yZHMiLEMsSSk7aWYoQXJyYXkuaXNBcnJheShOZSkpe3ZhciBLZT1mdW5j''@;'; + put 'put ''dGlvbiBMcWUoZCxnKXtyZXR1cm4gZnVuY3Rpb24gUHFlKGQpe2lmKEFycmF5LmlzQXJyYXkoZCkpcmV0dXJuIGR9KGQpfHxmdW5jdGlvbiBCcWUoZCxnKXt2YXIgaD1udWxsPT1kP251bGw6InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJmRbU3ltYm9sLml0ZXJhdG9yXXx8ZFsiQEBpdGVy''@;'; + put 'put ''YXRvciJdO2lmKG51bGwhPWgpe3ZhciBJLGosdj1bXSx5PSEwLEM9ITE7dHJ5e2ZvcihoPWguY2FsbChkKTshKHk9KEk9aC5uZXh0KCkpLmRvbmUpJiYodi5wdXNoKEkudmFsdWUpLCFnfHx2Lmxlbmd0aCE9PWcpO3k9ITApO31jYXRjaCh1ZSl7Qz0hMCxqPXVlfWZpbmFsbHl7dHJ5eyF5JiZu''@;'; + put 'put ''dWxsIT1oLnJldHVybiYmaC5yZXR1cm4oKX1maW5hbGx5e2lmKEMpdGhyb3cgan19cmV0dXJuIHZ9fShkLGcpfHxmdW5jdGlvbiBScWUoZCxnKXtpZihkKXtpZigic3RyaW5nIj09dHlwZW9mIGQpcmV0dXJuIExTZShkLGcpO3ZhciBoPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChk''@;'; + put 'put ''KS5zbGljZSg4LC0xKTtpZigiT2JqZWN0Ij09PWgmJmQuY29uc3RydWN0b3ImJihoPWQuY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1ofHwiU2V0Ij09PWgpcmV0dXJuIEFycmF5LmZyb20oZCk7aWYoIkFyZ3VtZW50cyI9PT1ofHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQp''@;'; + put 'put ''P0FycmF5JC8udGVzdChoKSlyZXR1cm4gTFNlKGQsZyl9fShkLGcpfHxmdW5jdGlvbiBPcWUoKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJh''@;'; + put 'put ''eSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfShOZSwyKTtDPUtlWzBdLEk9S2VbMV19dmFyIE90PXRoaXMuaG90LmdldFNob3J0Y3V0TWFuYWdlcigpLmdldENvbnRleHQoImVkaXRvciIpLCR0PXtydW5Pbmx5SWY6ZnVuY3Rpb24oKXtyZXR1''@;'; + put 'put ''cm4gVG8oeS5ob3QuZ2V0U2VsZWN0ZWQoKSl9LGdyb3VwOnM2ZX07dGhpcy5pc0luRnVsbEVkaXRNb2RlKCkmJk90LmFkZFNob3J0Y3V0cyhbe2tleXM6W1siQXJyb3dVcCJdXSxjYWxsYmFjazpmdW5jdGlvbigpe3kuaG90LnNlbGVjdGlvbi50cmFuc2Zvcm1TdGFydCgtMSwwKX19LHtrZXlz''@;'; + put 'put ''OltbIkFycm93RG93biJdXSxjYWxsYmFjazpmdW5jdGlvbigpe3kuaG90LnNlbGVjdGlvbi50cmFuc2Zvcm1TdGFydCgxLDApfX0se2tleXM6W1siQXJyb3dMZWZ0Il1dLGNhbGxiYWNrOmZ1bmN0aW9uKCl7eS5ob3Quc2VsZWN0aW9uLnRyYW5zZm9ybVN0YXJ0KDAsLTEqeS5ob3QuZ2V0RGly''@;'; + put 'put ''ZWN0aW9uRmFjdG9yKCkpfX0se2tleXM6W1siQXJyb3dSaWdodCJdXSxjYWxsYmFjazpmdW5jdGlvbigpe3kuaG90LnNlbGVjdGlvbi50cmFuc2Zvcm1TdGFydCgwLHkuaG90LmdldERpcmVjdGlvbkZhY3RvcigpKX19XSwkdCksdGhpcy5ob3QucG9wdWxhdGVGcm9tQXJyYXkoQyxJLGgsaix1''@;'; + put 'put ''ZSwiZWRpdCIpfX0se2tleToiYmVnaW5FZGl0aW5nIix2YWx1ZTpmdW5jdGlvbihoLHYpe2lmKHRoaXMuc3RhdGU9PT1yZi5WSVJHSU4pe3ZhciB5PXRoaXMuaG90LEM9eS5yb3dJbmRleE1hcHBlci5nZXRSZW5kZXJhYmxlRnJvbVZpc3VhbEluZGV4KHRoaXMucm93KSxJPXkuY29sdW1uSW5k''@;'; + put 'put ''ZXhNYXBwZXIuZ2V0UmVuZGVyYWJsZUZyb21WaXN1YWxJbmRleCh0aGlzLmNvbCk7aWYoeS52aWV3LnNjcm9sbFZpZXdwb3J0KHkuX2NyZWF0ZUNlbGxDb29yZHMoQyxJKSksdGhpcy5zdGF0ZT1yZi5FRElUSU5HLHRoaXMuaXNJbkZ1bGxFZGl0TW9kZSgpKXt2YXIgaj0ic3RyaW5nIj09dHlw''@;'; + put 'put ''ZW9mIGg/aDpldSh0aGlzLm9yaWdpbmFsVmFsdWUpO3RoaXMuc2V0VmFsdWUoail9dGhpcy5vcGVuKHYpLHRoaXMuX29wZW5lZD0hMCx0aGlzLmZvY3VzKCkseS52aWV3LnJlbmRlcigpLHkucnVuSG9va3MoImFmdGVyQmVnaW5FZGl0aW5nIix0aGlzLnJvdyx0aGlzLmNvbCl9fX0se2tleToi''@;'; + put 'put ''ZmluaXNoRWRpdGluZyIsdmFsdWU6ZnVuY3Rpb24oaCx2LHkpe3ZhciBJLEM9dGhpcztpZih5KXt2YXIgaj10aGlzLl9jbG9zZUNhbGxiYWNrO3RoaXMuX2Nsb3NlQ2FsbGJhY2s9ZnVuY3Rpb24oTmUpe2omJmooTmUpLHkoTmUpLEMuaG90LnZpZXcucmVuZGVyKCl9fWlmKCF0aGlzLmlzV2Fp''@;'; + put 'put ''dGluZygpKXt2YXIgX2U9dGhpcy5ob3QuZ2V0U2hvcnRjdXRNYW5hZ2VyKCkuZ2V0Q29udGV4dCgiZWRpdG9yIik7aWYoX2UucmVtb3ZlU2hvcnRjdXRzQnlHcm91cChzNmUpLF9lLnJlbW92ZVNob3J0Y3V0c0J5R3JvdXAobGVlKSx0aGlzLnN0YXRlPT09cmYuVklSR0lOKXJldHVybiB2b2lk''@;'; + put 'put ''IHRoaXMuaG90Ll9yZWdpc3RlclRpbWVvdXQoZnVuY3Rpb24oKXtDLl9maXJlQ2FsbGJhY2tzKCEwKX0pO2lmKHRoaXMuc3RhdGU9PT1yZi5FRElUSU5HKXtpZihoKXJldHVybiB0aGlzLmNhbmNlbENoYW5nZXMoKSx2b2lkIHRoaXMuaG90LnZpZXcucmVuZGVyKCk7dmFyIEJlPXRoaXMuZ2V0''@;'; + put 'put ''VmFsdWUoKTtJPXRoaXMuaG90LmdldFNldHRpbmdzKCkudHJpbVdoaXRlc3BhY2U/W1sic3RyaW5nIj09dHlwZW9mIEJlP1N0cmluZy5wcm90b3R5cGUudHJpbS5jYWxsKEJlfHwiIik6QmVdXTpbW0JlXV0sdGhpcy5zdGF0ZT1yZi5XQUlUSU5HLHRoaXMuc2F2ZVZhbHVlKEksdiksdGhpcy5o''@;'; + put 'put ''b3QuZ2V0Q2VsbFZhbGlkYXRvcih0aGlzLmNlbGxQcm9wZXJ0aWVzKT90aGlzLmhvdC5hZGRIb29rT25jZSgicG9zdEFmdGVyVmFsaWRhdGUiLGZ1bmN0aW9uKE5lKXtDLnN0YXRlPXJmLkZJTklTSEVELEMuZGlzY2FyZEVkaXRvcihOZSl9KToodGhpcy5zdGF0ZT1yZi5GSU5JU0hFRCx0aGlz''@;'; + put 'put ''LmRpc2NhcmRFZGl0b3IoITApKX19fX0se2tleToiY2FuY2VsQ2hhbmdlcyIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLnN0YXRlPXJmLkZJTklTSEVELHRoaXMuZGlzY2FyZEVkaXRvcigpfX0se2tleToiZGlzY2FyZEVkaXRvciIsdmFsdWU6ZnVuY3Rpb24oaCl7dGhpcy5zdGF0ZT09PXJmLkZJ''@;'; + put 'put ''TklTSEVEJiYoITE9PT1oJiYhMCE9PXRoaXMuY2VsbFByb3BlcnRpZXMuYWxsb3dJbnZhbGlkPyh0aGlzLmhvdC5zZWxlY3RDZWxsKHRoaXMucm93LHRoaXMuY29sKSx0aGlzLmZvY3VzKCksdGhpcy5zdGF0ZT1yZi5FRElUSU5HLHRoaXMuX2ZpcmVDYWxsYmFja3MoITEpKToodGhpcy5jbG9z''@;'; + put 'put ''ZSgpLHRoaXMuX29wZW5lZD0hMSx0aGlzLl9mdWxsRWRpdE1vZGU9ITEsdGhpcy5zdGF0ZT1yZi5WSVJHSU4sdGhpcy5fZmlyZUNhbGxiYWNrcyghMCksdGhpcy5ob3QuZ2V0U2hvcnRjdXRNYW5hZ2VyKCkuc2V0QWN0aXZlQ29udGV4dE5hbWUoImdyaWQiKSkpfX0se2tleToiZW5hYmxlRnVs''@;'; + put 'put ''bEVkaXRNb2RlIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuX2Z1bGxFZGl0TW9kZT0hMH19LHtrZXk6ImlzSW5GdWxsRWRpdE1vZGUiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2Z1bGxFZGl0TW9kZX19LHtrZXk6ImlzT3BlbmVkIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlz''@;'; + put 'put ''Ll9vcGVuZWR9fSx7a2V5OiJpc1dhaXRpbmciLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc3RhdGU9PT1yZi5XQUlUSU5HfX0se2tleToiZ2V0RWRpdGVkQ2VsbFJlY3QiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGgsdj10aGlzLmdldEVkaXRlZENlbGwoKTtpZih2KXt2YXIgeT10aGlz''@;'; + put 'put ''LmhvdC52aWV3Ll93dCxDPXkud3RPdmVybGF5cyxJPXkud3RWaWV3cG9ydCxqPXRoaXMuaG90LnJvb3RXaW5kb3csdWU9anUodiksX2U9RTIodiksQmU9anUodGhpcy5ob3Qucm9vdEVsZW1lbnQpLE5lPUUyKHRoaXMuaG90LnJvb3RFbGVtZW50KSxLZT1DLnRvcE92ZXJsYXkuaG9sZGVyLGR0''@;'; + put 'put ''PUMuaW5saW5lU3RhcnRPdmVybGF5LmhvbGRlcixPdD1LZSE9PWo/S2Uuc2Nyb2xsVG9wOjAsJHQ9ZHQhPT1qP2R0LnNjcm9sbExlZnQ6MCxmbj1qLmlubmVyV2lkdGgtQmUubGVmdC1OZSxpcj0obnVsbCE9PShoPUMuZ2V0UGFyZW50T3ZlcmxheSh2KSkmJnZvaWQgMCE9PWg/aDp0aGlzLmhv''@;'; + put 'put ''dC52aWV3Ll93dCkud3RUYWJsZSxtcj1pci5uYW1lLFNyPVsibWFzdGVyIiwiaW5saW5lX3N0YXJ0Il0uaW5jbHVkZXMobXIpP090OjAsd3I9WyJtYXN0ZXIiLCJ0b3AiLCJib3R0b20iXS5pbmNsdWRlcyhtcik/JHQ6MCx5aT11ZS50b3AtQmUudG9wLSh1ZS50b3A9PT1CZS50b3A/MDoxKS1T''@;'; + put 'put ''cixLaT0wO0tpPXRoaXMuaG90LmlzUnRsKCk/ai5pbm5lcldpZHRoLXVlLmxlZnQtX2UtZm4tMSt3cjp1ZS5sZWZ0LUJlLmxlZnQtMS13cixbInRvcCIsInRvcF9pbmxpbmVfc3RhcnRfY29ybmVyIl0uaW5jbHVkZXMobXIpJiYoeWkrPUMudG9wT3ZlcmxheS5nZXRPdmVybGF5T2Zmc2V0KCkp''@;'; + put 'put ''LFsiaW5saW5lX3N0YXJ0IiwidG9wX2lubGluZV9zdGFydF9jb3JuZXIiXS5pbmNsdWRlcyhtcikmJihLaSs9TWF0aC5hYnMoQy5pbmxpbmVTdGFydE92ZXJsYXkuZ2V0T3ZlcmxheU9mZnNldCgpKSk7dmFyIFNvPXRoaXMuaG90Lmhhc0NvbEhlYWRlcnMoKSxQbz10aGlzLmhvdC5yb3dJbmRl''@;'; + put 'put ''eE1hcHBlci5nZXRSZW5kZXJhYmxlRnJvbVZpc3VhbEluZGV4KHRoaXMucm93KSxTYT10aGlzLmhvdC5jb2x1bW5JbmRleE1hcHBlci5nZXRSZW5kZXJhYmxlRnJvbVZpc3VhbEluZGV4KHRoaXMuY29sKSxsYT10aGlzLmhvdC5yb3dJbmRleE1hcHBlci5nZXRSZW5kZXJhYmxlSW5kZXhlc0xl''@;'; + put 'put ''bmd0aCgpLXRoaXMuaG90LnZpZXcuX3d0LmdldFNldHRpbmcoImZpeGVkUm93c0JvdHRvbSIpOyhTbyYmUG88PTB8fFBvPT09bGEpJiYoeWkrPTEpLFNhPD0wJiYoS2krPTEpO3ZhciBhbD1JLnJvd3NSZW5kZXJDYWxjdWxhdG9yLnN0YXJ0UG9zaXRpb24sT3M9SS5jb2x1bW5zUmVuZGVyQ2Fs''@;'; + put 'put ''Y3VsYXRvci5zdGFydFBvc2l0aW9uLFAwPU1hdGguYWJzKEMuaW5saW5lU3RhcnRPdmVybGF5LmdldFNjcm9sbFBvc2l0aW9uKCkpLHJvPUMudG9wT3ZlcmxheS5nZXRTY3JvbGxQb3NpdGlvbigpLGZvPUJjKHRoaXMuaG90LnJvb3REb2N1bWVudCksSWE9di5vZmZzZXRUb3ArYWwtcm8sWGw9''@;'; + put 'put ''MDtpZih0aGlzLmhvdC5pc1J0bCgpKXt2YXIgRm49di5vZmZzZXRMZWZ0O1hsPUZuPj0wP2lyLmdldFdpZHRoKCktdi5vZmZzZXRMZWZ0Ok1hdGguYWJzKEZuKSxYbCs9T3MtUDAtX2V9ZWxzZSBYbD12Lm9mZnNldExlZnQrT3MtUDA7dmFyIFpuPU13KHRoaXMuVEQsdGhpcy5ob3Qucm9vdFdp''@;'; + put 'put ''bmRvdyksX3I9dGhpcy5ob3QuaXNSdGwoKT8iYm9yZGVyUmlnaHRXaWR0aCI6ImJvcmRlckxlZnRXaWR0aCIsWHI9cGFyc2VJbnQoWm5bX3JdLDEwKT4wPzA6MSxjaT1wYXJzZUludChabi5ib3JkZXJUb3BXaWR0aCwxMCk+MD8wOjEsYzA9RTIodikrWHIsWGk9RDEodikrY2ksRTA9R2JlKEtl''@;'; + put 'put ''KT9mbzowLHowPVdiZShkdCk/Zm86MCxrbz10aGlzLmhvdC52aWV3Lm1heGltdW1WaXNpYmxlRWxlbWVudFdpZHRoKFhsKS1FMCtYcjtyZXR1cm57dG9wOnlpLHN0YXJ0OktpLGhlaWdodDpYaSxtYXhIZWlnaHQ6TWF0aC5tYXgodGhpcy5ob3Qudmlldy5tYXhpbXVtVmlzaWJsZUVsZW1lbnRI''@;'; + put 'put ''ZWlnaHQoSWEpLXowK2NpLDIzKSx3aWR0aDpjMCxtYXhXaWR0aDprb319fX0se2tleToiZ2V0RWRpdGVkQ2VsbHNMYXllckNsYXNzIix2YWx1ZTpmdW5jdGlvbigpe3N3aXRjaCh0aGlzLmNoZWNrRWRpdG9yU2VjdGlvbigpKXtjYXNlImlubGluZS1zdGFydCI6cmV0dXJuImh0X2Nsb25lX2xl''@;'; + put 'put ''ZnQgaHRfY2xvbmVfaW5saW5lX3N0YXJ0IjtjYXNlImJvdHRvbSI6cmV0dXJuImh0X2Nsb25lX2JvdHRvbSI7Y2FzZSJib3R0b20taW5saW5lLXN0YXJ0LWNvcm5lciI6cmV0dXJuImh0X2Nsb25lX2JvdHRvbV9sZWZ0X2Nvcm5lciBodF9jbG9uZV9ib3R0b21faW5saW5lX3N0YXJ0X2Nvcm5l''@;'; + put 'put ''ciI7Y2FzZSJ0b3AiOnJldHVybiJodF9jbG9uZV90b3AiO2Nhc2UidG9wLWlubGluZS1zdGFydC1jb3JuZXIiOnJldHVybiJodF9jbG9uZV90b3BfbGVmdF9jb3JuZXIgaHRfY2xvbmVfdG9wX2lubGluZV9zdGFydF9jb3JuZXIiO2RlZmF1bHQ6cmV0dXJuImh0X2Nsb25lX21hc3RlciJ9fX0s''@;'; + put 'put ''e2tleToiZ2V0RWRpdGVkQ2VsbCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ob3QuZ2V0Q2VsbCh0aGlzLnJvdyx0aGlzLmNvbCwhMCl9fSx7a2V5OiJjaGVja0VkaXRvclNlY3Rpb24iLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9dGhpcy5ob3QuY291bnRSb3dzKCksdj0iIjtyZXR1''@;'; + put 'put ''cm4gdGhpcy5yb3c8dGhpcy5ob3QuZ2V0U2V0dGluZ3MoKS5maXhlZFJvd3NUb3A/dj10aGlzLmNvbDx0aGlzLmhvdC5nZXRTZXR0aW5ncygpLmZpeGVkQ29sdW1uc1N0YXJ0PyJ0b3AtaW5saW5lLXN0YXJ0LWNvcm5lciI6InRvcCI6dGhpcy5ob3QuZ2V0U2V0dGluZ3MoKS5maXhlZFJvd3NC''@;'; + put 'put ''b3R0b20mJnRoaXMucm93Pj1oLXRoaXMuaG90LmdldFNldHRpbmdzKCkuZml4ZWRSb3dzQm90dG9tP3Y9dGhpcy5jb2w8dGhpcy5ob3QuZ2V0U2V0dGluZ3MoKS5maXhlZENvbHVtbnNTdGFydD8iYm90dG9tLWlubGluZS1zdGFydC1jb3JuZXIiOiJib3R0b20iOnRoaXMuY29sPHRoaXMuaG90''@;'; + put 'put ''LmdldFNldHRpbmdzKCkuZml4ZWRDb2x1bW5zU3RhcnQmJih2PSJpbmxpbmUtc3RhcnQiKSx2fX1dLFt7a2V5OiJFRElUT1JfVFlQRSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuImJhc2UifX1dKSxkfSgpO2Z1bmN0aW9uIHpxZSgpe3ZhciBnLGQ9e21pbkhlaWdodDoyMDAsbWF4SGVpZ2h0OjMw''@;'; + put 'put ''MCxtaW5XaWR0aDoxMDAsbWF4V2lkdGg6MzAwfSxoPWRvY3VtZW50LmJvZHksdj1kb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiIikseT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJTUEFOIiksQz1mdW5jdGlvbihkdCxPdCwkdCl7ZHQuYWRkRXZlbnRMaXN0ZW5lcihPdCwkdCwhMSl9LEk9ZnVu''@;'; + put 'put ''Y3Rpb24oZHQsT3QsJHQpe2R0LnJlbW92ZUV2ZW50TGlzdGVuZXIoT3QsJHQsITEpfSxqPWZ1bmN0aW9uKGR0KXt2YXIgT3QsJHQ7ZHQ/L15bYS16QS1aIFwuLFxcXC9cfDAtOV0kLy50ZXN0KGR0KXx8KGR0PSIuIik6ZHQ9IiIsdm9pZCAwIT09di50ZXh0Q29udGVudD92LnRleHRDb250ZW50''@;'; + put 'put ''PWcudmFsdWUrZHQ6di5kYXRhPWcudmFsdWUrZHQseS5zdHlsZS5mb250U2l6ZT1OZShnKS5mb250U2l6ZSx5LnN0eWxlLmZvbnRGYW1pbHk9TmUoZykuZm9udEZhbWlseSx5LnN0eWxlLndoaXRlU3BhY2U9InByZSIsaC5hcHBlbmRDaGlsZCh5KSxPdD15LmNsaWVudFdpZHRoKzIsaC5yZW1v''@;'; + put 'put ''dmVDaGlsZCh5KSxnLnN0eWxlLmhlaWdodD1kLm1pbkhlaWdodCsicHgiLGcuc3R5bGUud2lkdGg9ZC5taW5XaWR0aD5PdD9kLm1pbldpZHRoKyJweCI6T3Q+ZC5tYXhXaWR0aD9kLm1heFdpZHRoKyJweCI6T3QrInB4IixkLm1pbkhlaWdodD4oJHQ9Zy5zY3JvbGxIZWlnaHQ/Zy5zY3JvbGxI''@;'; + put 'put ''ZWlnaHQtMTowKT9nLnN0eWxlLmhlaWdodD1kLm1pbkhlaWdodCsicHgiOmQubWF4SGVpZ2h0PCR0PyhnLnN0eWxlLmhlaWdodD1kLm1heEhlaWdodCsicHgiLGcuc3R5bGUub3ZlcmZsb3dZPSJ2aXNpYmxlIik6Zy5zdHlsZS5oZWlnaHQ9JHQrInB4In0sdWU9ZnVuY3Rpb24oKXt3aW5kb3cu''@;'; + put 'put ''c2V0VGltZW91dChqLDApfTtmdW5jdGlvbiBOZShLZSl7cmV0dXJuIEtlLmN1cnJlbnRTdHlsZXx8ZG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZShLZSl9cmV0dXJue2luaXQ6ZnVuY3Rpb24oZHQsT3QsJHQpeyFmdW5jdGlvbihkdCxPdCwkdCl7Zz1kdCxmdW5jdGlvbihk''@;'; + put 'put ''dCl7aWYoZHQmJmR0Lm1pbkhlaWdodClpZigiaW5oZXJpdCI9PWR0Lm1pbkhlaWdodClkLm1pbkhlaWdodD1nLmNsaWVudEhlaWdodDtlbHNle3ZhciBPdD1wYXJzZUludChkdC5taW5IZWlnaHQpO2lzTmFOKE90KXx8KGQubWluSGVpZ2h0PU90KX1pZihkdCYmZHQubWF4SGVpZ2h0KWlmKCJp''@;'; + put 'put ''bmhlcml0Ij09ZHQubWF4SGVpZ2h0KWQubWF4SGVpZ2h0PWcuY2xpZW50SGVpZ2h0O2Vsc2V7dmFyICR0PXBhcnNlSW50KGR0Lm1heEhlaWdodCk7aXNOYU4oJHQpfHwoZC5tYXhIZWlnaHQ9JHQpfWlmKGR0JiZkdC5taW5XaWR0aClpZigiaW5oZXJpdCI9PWR0Lm1pbldpZHRoKWQubWluV2lk''@;'; + put 'put ''dGg9Zy5jbGllbnRXaWR0aDtlbHNle3ZhciBmbj1wYXJzZUludChkdC5taW5XaWR0aCk7aXNOYU4oZm4pfHwoZC5taW5XaWR0aD1mbil9aWYoZHQmJmR0Lm1heFdpZHRoKWlmKCJpbmhlcml0Ij09ZHQubWF4V2lkdGgpZC5tYXhXaWR0aD1nLmNsaWVudFdpZHRoO2Vsc2V7dmFyIExuPXBhcnNl''@;'; + put 'put ''SW50KGR0Lm1heFdpZHRoKTtpc05hTihMbil8fChkLm1heFdpZHRoPUxuKX15LmZpcnN0Q2hpbGR8fCh5LmNsYXNzTmFtZT0iYXV0b1Jlc2l6ZSIseS5zdHlsZS5kaXNwbGF5PSJpbmxpbmUtYmxvY2siLHkuYXBwZW5kQ2hpbGQodikpfShPdCksIlRFWFRBUkVBIj09Zy5ub2RlTmFtZSYmKGcu''@;'; + put 'put ''c3R5bGUucmVzaXplPSJub25lIixnLnN0eWxlLm92ZXJmbG93WT0iIixnLnN0eWxlLmhlaWdodD1kLm1pbkhlaWdodCsicHgiLGcuc3R5bGUubWluV2lkdGg9ZC5taW5XaWR0aCsicHgiLGcuc3R5bGUubWF4V2lkdGg9ZC5tYXhXaWR0aCsicHgiLGcuc3R5bGUub3ZlcmZsb3dZPSJoaWRkZW4i''@;'; + put 'put ''KSwkdCYmKEMoZywiY2hhbmdlIixqKSxDKGcsImN1dCIsdWUpLEMoZywicGFzdGUiLHVlKSxDKGcsImRyb3AiLHVlKSxDKGcsImtleWRvd24iLHVlKSxDKGcsImZvY3VzIixqKSxDKGcsImNvbXBvc2l0aW9uc3RhcnQiLHVlKSxDKGcsImNvbXBvc2l0aW9udXBkYXRlIix1ZSksQyhnLCJjb21w''@;'; + put 'put ''b3NpdGlvbmVuZCIsdWUpKSxqKCl9KGR0LE90LCR0KX0sdW5PYnNlcnZlOmZ1bmN0aW9uKCl7SShnLCJjaGFuZ2UiLGopLEkoZywiY3V0Iix1ZSksSShnLCJwYXN0ZSIsdWUpLEkoZywiZHJvcCIsdWUpLEkoZywia2V5ZG93biIsdWUpLEkoZywiZm9jdXMiLGopLEkoZywiY29tcG9zaXRpb25z''@;'; + put 'put ''dGFydCIsdWUpLEkoZywiY29tcG9zaXRpb251cGRhdGUiLHVlKSxJKGcsImNvbXBvc2l0aW9uZW5kIix1ZSl9LHJlc2l6ZTpqfX1mdW5jdGlvbiBQU2UoZCxnKXtmb3IodmFyIGg9cDNlKGcpLHY9Zy52YWx1ZS5zcGxpdCgiXG4iKSx5PWgsQz0wLEk9MDtJPHYubGVuZ3RoO0krKyl7MCE9PUkm''@;'; + put 'put ''JihDKz12W0ktMV0ubGVuZ3RoKzEpO3ZhciB1ZT1DK3ZbSV0ubGVuZ3RoO2lmKCJob21lIj09PWQ/eT1DOiJlbmQiPT09ZCYmKHk9dWUpLGg8PXVlKWJyZWFrfVZaKGcseSl9ZnVuY3Rpb24gdTZlKGQpe3JldHVybih1NmU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5''@;'; + put 'put ''cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZyl7cmV0dXJuIHR5cGVvZiBnfTpmdW5jdGlvbihnKXtyZXR1cm4gZyYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZy5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZyE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGd9KShk''@;'; + put 'put ''KX1mdW5jdGlvbiBGU2UoZCxnKXtyZXR1cm4gZnVuY3Rpb24gVXFlKGQpe2lmKEFycmF5LmlzQXJyYXkoZCkpcmV0dXJuIGR9KGQpfHxmdW5jdGlvbiBZcWUoZCxnKXt2YXIgaD1udWxsPT1kP251bGw6InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJmRbU3ltYm9sLml0ZXJhdG9yXXx8ZFsi''@;'; + put 'put ''QEBpdGVyYXRvciJdO2lmKG51bGwhPWgpe3ZhciBJLGosdj1bXSx5PSEwLEM9ITE7dHJ5e2ZvcihoPWguY2FsbChkKTshKHk9KEk9aC5uZXh0KCkpLmRvbmUpJiYodi5wdXNoKEkudmFsdWUpLCFnfHx2Lmxlbmd0aCE9PWcpO3k9ITApO31jYXRjaCh1ZSl7Qz0hMCxqPXVlfWZpbmFsbHl7dHJ5''@;'; + put 'put ''eyF5JiZudWxsIT1oLnJldHVybiYmaC5yZXR1cm4oKX1maW5hbGx5e2lmKEMpdGhyb3cgan19cmV0dXJuIHZ9fShkLGcpfHxmdW5jdGlvbiBXcWUoZCxnKXtpZihkKXtpZigic3RyaW5nIj09dHlwZW9mIGQpcmV0dXJuIEhTZShkLGcpO3ZhciBoPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcu''@;'; + put 'put ''Y2FsbChkKS5zbGljZSg4LC0xKTtpZigiT2JqZWN0Ij09PWgmJmQuY29uc3RydWN0b3ImJihoPWQuY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1ofHwiU2V0Ij09PWgpcmV0dXJuIEFycmF5LmZyb20oZCk7aWYoIkFyZ3VtZW50cyI9PT1ofHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNs''@;'; + put 'put ''YW1wZWQpP0FycmF5JC8udGVzdChoKSlyZXR1cm4gSFNlKGQsZyl9fShkLGcpfHxmdW5jdGlvbiBHcWUoKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5v''@;'; + put 'put ''bi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfWZ1bmN0aW9uIEhTZShkLGcpeyhudWxsPT1nfHxnPmQubGVuZ3RoKSYmKGc9ZC5sZW5ndGgpO2Zvcih2YXIgaD0wLHY9bmV3IEFycmF5KGcpO2g8ZztoKyspdltoXT1kW2hdO3JldHVy''@;'; + put 'put ''biB2fWZ1bmN0aW9uIE5TZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5r''@;'; + put 'put ''ZXksdil9fWZ1bmN0aW9uIGZ6KCl7cmV0dXJuIGZ6PSJ1bmRlZmluZWQiIT10eXBlb2YgUmVmbGVjdCYmUmVmbGVjdC5nZXQ/UmVmbGVjdC5nZXQuYmluZCgpOmZ1bmN0aW9uKGcsaCx2KXt2YXIgeT1YcWUoZyxoKTtpZih5KXt2YXIgQz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9y''@;'; + put 'put ''KHksaCk7cmV0dXJuIEMuZ2V0P0MuZ2V0LmNhbGwoYXJndW1lbnRzLmxlbmd0aDwzP2c6dik6Qy52YWx1ZX19LGZ6LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBYcWUoZCxnKXtmb3IoOyFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZCxnKSYmbnVsbCE9PShk''@;'; + put 'put ''PUZTKGQpKTspO3JldHVybiBkfWZ1bmN0aW9uIGM2ZShkLGcpe3JldHVybihjNmU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24odix5KXtyZXR1cm4gdi5fX3Byb3RvX189eSx2fSkoZCxnKX1mdW5jdGlvbiBxcWUoZCxnKXtpZihn''@;'; + put 'put ''JiYoIm9iamVjdCI9PT11NmUoZyl8fCJmdW5jdGlvbiI9PXR5cGVvZiBnKSlyZXR1cm4gZztpZih2b2lkIDAhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIkRlcml2ZWQgY29uc3RydWN0b3JzIG1heSBvbmx5IHJldHVybiBvYmplY3Qgb3IgdW5kZWZpbmVkIik7cmV0dXJuIFZTZShkKX1mdW5j''@;'; + put 'put ''dGlvbiBWU2UoZCl7aWYodm9pZCAwPT09ZCl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3JldHVybiBkfWZ1bmN0aW9uIEZTKGQpe3JldHVybihGUz1PYmplY3Quc2V0UHJvdG90eXBl''@;'; + put 'put ''T2Y/T2JqZWN0LmdldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihoKXtyZXR1cm4gaC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihoKX0pKGQpfUIyKENPLERxZSk7dmFyIHZ0ZT0iaHRfZWRpdG9yX2hpZGRlbiIsalNlPSJ0ZXh0RWRpdG9yIixIUz1mdW5jdGlvbihkKXsh''@;'; + put 'put ''ZnVuY3Rpb24gS3FlKGQsZyl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGcmJm51bGwhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uIik7ZC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShnJiZnLnByb3RvdHlw''@;'; + put 'put ''ZSx7Y29uc3RydWN0b3I6e3ZhbHVlOmQsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGcmJmM2ZShkLGcpfShoLGQpO3ZhciBnPWZ1bmN0aW9uICRxZShkKXt2YXIgZz1mdW5jdGlvbiBlZXQo''@;'; + put 'put ''KXtpZigidW5kZWZpbmVkIj09dHlwZW9mIFJlZmxlY3R8fCFSZWZsZWN0LmNvbnN0cnVjdHx8UmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT10eXBlb2YgUHJveHkpcmV0dXJuITA7dHJ5e3JldHVybiBCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwo''@;'; + put 'put ''UmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSxmdW5jdGlvbigpe30pKSwhMH1jYXRjaChkKXtyZXR1cm4hMX19KCk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHksdj1GUyhkKTtpZihnKXt2YXIgQz1GUyh0aGlzKS5jb25zdHJ1Y3Rvcjt5PVJlZmxlY3QuY29uc3RydWN0KHYsYXJndW1lbnRz''@;'; + put 'put ''LEMpfWVsc2UgeT12LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gcXFlKHRoaXMseSl9fShoKTtmdW5jdGlvbiBoKHYpe3ZhciB5O3JldHVybiBmdW5jdGlvbiBRcWUoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNz''@;'; + put 'put ''IGFzIGEgZnVuY3Rpb24iKX0odGhpcyxoKSwoeT1nLmNhbGwodGhpcyx2KSkuZXZlbnRNYW5hZ2VyPW5ldyBMMShWU2UoeSkpLHkuYXV0b1Jlc2l6ZT16cWUoKSx5LlRFWFRBUkVBPXZvaWQgMCx5LnRleHRhcmVhU3R5bGU9dm9pZCAwLHkuVEVYVEFSRUFfUEFSRU5UPXZvaWQgMCx5LnRleHRh''@;'; + put 'put ''cmVhUGFyZW50U3R5bGU9dm9pZCAwLHkubGF5ZXJDbGFzcz12b2lkIDAseS5jcmVhdGVFbGVtZW50cygpLHkuYmluZEV2ZW50cygpLHkuaG90LmFkZEhvb2tPbmNlKCJhZnRlckRlc3Ryb3kiLGZ1bmN0aW9uKCl7cmV0dXJuIHkuZGVzdHJveSgpfSkseX1yZXR1cm4gZnVuY3Rpb24gSnFlKGQs''@;'; + put 'put ''ZyxoKXtnJiZOU2UoZC5wcm90b3R5cGUsZyksaCYmTlNlKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGgsW3trZXk6ImdldFZhbHVlIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlRFWFRBUkVBLnZhbHVlfX0se2tleToic2V0''@;'; + put 'put ''VmFsdWUiLHZhbHVlOmZ1bmN0aW9uKHkpe3RoaXMuVEVYVEFSRUEudmFsdWU9eX19LHtrZXk6Im9wZW4iLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpczt0aGlzLnJlZnJlc2hEaW1lbnNpb25zKCksdGhpcy5zaG93RWRpdGFibGVFbGVtZW50KCksdGhpcy5ob3QuZ2V0U2hvcnRjdXRNYW5h''@;'; + put 'put ''Z2VyKCkuc2V0QWN0aXZlQ29udGV4dE5hbWUoImVkaXRvciIpLHRoaXMuYWRkSG9vaygiYWZ0ZXJEb2N1bWVudEtleURvd24iLGZ1bmN0aW9uKEkpe3JldHVybiB5Lm9uQWZ0ZXJEb2N1bWVudEtleURvd24oSSl9KSx0aGlzLnJlZ2lzdGVyU2hvcnRjdXRzKCl9fSx7a2V5OiJjbG9zZSIsdmFs''@;'; + put 'put ''dWU6ZnVuY3Rpb24oKXt0aGlzLmF1dG9SZXNpemUudW5PYnNlcnZlKCksdGhpcy5ob3Qucm9vdERvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT10aGlzLlRFWFRBUkVBJiZ0aGlzLmhvdC5saXN0ZW4oKSx0aGlzLmhpZGVFZGl0YWJsZUVsZW1lbnQoKSx0aGlzLnVucmVnaXN0ZXJTaG9ydGN1dHMo''@;'; + put 'put ''KSx0aGlzLnJlbW92ZUhvb2tzQnlLZXkoImFmdGVyRG9jdW1lbnRLZXlEb3duIil9fSx7a2V5OiJwcmVwYXJlIix2YWx1ZTpmdW5jdGlvbih5LEMsSSxqLHVlLF9lKXt2YXIgQmU9dGhpcy5zdGF0ZTtpZihmeihGUyhoLnByb3RvdHlwZSksInByZXBhcmUiLHRoaXMpLmNhbGwodGhpcyx5LEMs''@;'; + put 'put ''SSxqLHVlLF9lKSwhX2UucmVhZE9ubHkpe3RoaXMucmVmcmVzaERpbWVuc2lvbnMoITApO3ZhciBLZT1fZS5mcmFnbWVudFNlbGVjdGlvbjtfZS5hbGxvd0ludmFsaWQmJih0aGlzLlRFWFRBUkVBLnZhbHVlPSIiKSxCZSE9PXJmLkZJTklTSEVEJiZ0aGlzLmhpZGVFZGl0YWJsZUVsZW1lbnQo''@;'; + put 'put ''KSwhS2UmJiFiOCgpJiZ0aGlzLmZvY3VzKCl9fX0se2tleToiYmVnaW5FZGl0aW5nIix2YWx1ZTpmdW5jdGlvbih5LEMpe3RoaXMuc3RhdGU9PT1yZi5WSVJHSU4mJih0aGlzLlRFWFRBUkVBLnZhbHVlPSIiLGZ6KEZTKGgucHJvdG90eXBlKSwiYmVnaW5FZGl0aW5nIix0aGlzKS5jYWxsKHRo''@;'; + put 'put ''aXMseSxDKSl9fSx7a2V5OiJmb2N1cyIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLlRFWFRBUkVBLnNlbGVjdCgpLFZaKHRoaXMuVEVYVEFSRUEsdGhpcy5URVhUQVJFQS52YWx1ZS5sZW5ndGgpfX0se2tleToiY3JlYXRlRWxlbWVudHMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcy5ob3Qu''@;'; + put 'put ''cm9vdERvY3VtZW50O3RoaXMuVEVYVEFSRUE9eS5jcmVhdGVFbGVtZW50KCJURVhUQVJFQSIpLHRoaXMuVEVYVEFSRUEuc2V0QXR0cmlidXRlKCJkYXRhLWhvdC1pbnB1dCIsIiIpLHRoaXMuVEVYVEFSRUEudGFiSW5kZXg9LTEsTzAodGhpcy5URVhUQVJFQSwiaGFuZHNvbnRhYmxlSW5wdXQi''@;'; + put 'put ''KSx0aGlzLnRleHRhcmVhU3R5bGU9dGhpcy5URVhUQVJFQS5zdHlsZSx0aGlzLnRleHRhcmVhU3R5bGUud2lkdGg9MCx0aGlzLnRleHRhcmVhU3R5bGUuaGVpZ2h0PTAsdGhpcy50ZXh0YXJlYVN0eWxlLm92ZXJmbG93WT0idmlzaWJsZSIsdGhpcy5URVhUQVJFQV9QQVJFTlQ9eS5jcmVhdGVF''@;'; + put 'put ''bGVtZW50KCJESVYiKSxPMCh0aGlzLlRFWFRBUkVBX1BBUkVOVCwiaGFuZHNvbnRhYmxlSW5wdXRIb2xkZXIiKSx0bCh0aGlzLlRFWFRBUkVBX1BBUkVOVCx0aGlzLmxheWVyQ2xhc3MpJiZwbCh0aGlzLlRFWFRBUkVBX1BBUkVOVCx0aGlzLmxheWVyQ2xhc3MpLE8wKHRoaXMuVEVYVEFSRUFf''@;'; + put 'put ''UEFSRU5ULHZ0ZSksdGhpcy50ZXh0YXJlYVBhcmVudFN0eWxlPXRoaXMuVEVYVEFSRUFfUEFSRU5ULnN0eWxlLHRoaXMuVEVYVEFSRUFfUEFSRU5ULmFwcGVuZENoaWxkKHRoaXMuVEVYVEFSRUEpLHRoaXMuaG90LnJvb3RFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuVEVYVEFSRUFfUEFSRU5U''@;'; + put 'put ''KX19LHtrZXk6ImhpZGVFZGl0YWJsZUVsZW1lbnQiLHZhbHVlOmZ1bmN0aW9uKCl7KF9iZSgpfHxiYmUoKSkmJih0aGlzLnRleHRhcmVhU3R5bGUudGV4dEluZGVudD0iLTk5OTk5cHgiKSx0aGlzLnRleHRhcmVhU3R5bGUub3ZlcmZsb3dZPSJ2aXNpYmxlIix0aGlzLnRleHRhcmVhUGFyZW50''@;'; + put 'put ''U3R5bGUub3BhY2l0eT0iMCIsdGhpcy50ZXh0YXJlYVBhcmVudFN0eWxlLmhlaWdodD0iMXB4IixwbCh0aGlzLlRFWFRBUkVBX1BBUkVOVCx0aGlzLmxheWVyQ2xhc3MpLE8wKHRoaXMuVEVYVEFSRUFfUEFSRU5ULHZ0ZSl9fSx7a2V5OiJzaG93RWRpdGFibGVFbGVtZW50Iix2YWx1ZTpmdW5j''@;'; + put 'put ''dGlvbigpe3RoaXMudGV4dGFyZWFQYXJlbnRTdHlsZS5oZWlnaHQ9IiIsdGhpcy50ZXh0YXJlYVBhcmVudFN0eWxlLm92ZXJmbG93PSIiLHRoaXMudGV4dGFyZWFQYXJlbnRTdHlsZS5wb3NpdGlvbj0iIix0aGlzLnRleHRhcmVhUGFyZW50U3R5bGVbdGhpcy5ob3QuaXNSdGwoKT8ibGVmdCI6''@;'; + put 'put ''InJpZ2h0Il09ImF1dG8iLHRoaXMudGV4dGFyZWFQYXJlbnRTdHlsZS5vcGFjaXR5PSIxIix0aGlzLnRleHRhcmVhU3R5bGUudGV4dEluZGVudD0iIix0aGlzLnRleHRhcmVhU3R5bGUub3ZlcmZsb3dZPSJoaWRkZW4iO3ZhciB5PXRoaXMuVEVYVEFSRUFfUEFSRU5ULmNoaWxkTm9kZXMsQz0h''@;'; + put 'put ''MTtpYSh5Lmxlbmd0aC0xLGZ1bmN0aW9uKEkpe2lmKHRsKHlbSV0sImhhbmRzb250YWJsZUVkaXRvciIpKXJldHVybiBDPSEwLCExfSksdGwodGhpcy5URVhUQVJFQV9QQVJFTlQsdnRlKSYmcGwodGhpcy5URVhUQVJFQV9QQVJFTlQsdnRlKSxDPyh0aGlzLmxheWVyQ2xhc3M9Imh0X2VkaXRv''@;'; + put 'put ''cl92aXNpYmxlIixPMCh0aGlzLlRFWFRBUkVBX1BBUkVOVCx0aGlzLmxheWVyQ2xhc3MpKToodGhpcy5sYXllckNsYXNzPXRoaXMuZ2V0RWRpdGVkQ2VsbHNMYXllckNsYXNzKCksTzAodGhpcy5URVhUQVJFQV9QQVJFTlQsdGhpcy5sYXllckNsYXNzKSl9fSx7a2V5OiJyZWZyZXNoVmFsdWUi''@;'; + put 'put ''LHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcy5ob3QudG9QaHlzaWNhbFJvdyh0aGlzLnJvdyksQz10aGlzLmhvdC5nZXRTb3VyY2VEYXRhQXRDZWxsKHksdGhpcy5jb2wpO3RoaXMub3JpZ2luYWxWYWx1ZT1DLHRoaXMuc2V0VmFsdWUoQyksdGhpcy5yZWZyZXNoRGltZW5zaW9ucygpfX0s''@;'; + put 'put ''e2tleToicmVmcmVzaERpbWVuc2lvbnMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0mJmFyZ3VtZW50c1swXTtpZih0aGlzLnN0YXRlPT09cmYuRURJVElOR3x8eSl7aWYodGhpcy5URD10aGlzLmdldEVkaXRlZENlbGwo''@;'; + put 'put ''KSwhdGhpcy5URClyZXR1cm4gdm9pZCh5fHx0aGlzLmNsb3NlKCkpO3ZhciBDPXRoaXMuZ2V0RWRpdGVkQ2VsbFJlY3QoKSxJPUMudG9wLGo9Qy5zdGFydCx1ZT1DLndpZHRoLF9lPUMubWF4V2lkdGgsQmU9Qy5oZWlnaHQsTmU9Qy5tYXhIZWlnaHQ7dGhpcy50ZXh0YXJlYVBhcmVudFN0eWxl''@;'; + put 'put ''LnRvcD0iIi5jb25jYXQoSSwicHgiKSx0aGlzLnRleHRhcmVhUGFyZW50U3R5bGVbdGhpcy5ob3QuaXNSdGwoKT8icmlnaHQiOiJsZWZ0Il09IiIuY29uY2F0KGosInB4IiksdGhpcy5zaG93RWRpdGFibGVFbGVtZW50KCk7dmFyIEtlPU13KHRoaXMuVEQsdGhpcy5ob3Qucm9vdFdpbmRvdyk7''@;'; + put 'put ''dGhpcy5URVhUQVJFQS5zdHlsZS5mb250U2l6ZT1LZS5mb250U2l6ZSx0aGlzLlRFWFRBUkVBLnN0eWxlLmZvbnRGYW1pbHk9S2UuZm9udEZhbWlseSx0aGlzLlRFWFRBUkVBLnN0eWxlLmJhY2tncm91bmRDb2xvcj10aGlzLlRELnN0eWxlLmJhY2tncm91bmRDb2xvcjt2YXIgZHQ9TXcodGhp''@;'; + put 'put ''cy5URVhUQVJFQSksT3Q9cGFyc2VJbnQoZHQucGFkZGluZ0xlZnQsMTApK3BhcnNlSW50KGR0LnBhZGRpbmdSaWdodCwxMCksJHQ9cGFyc2VJbnQoZHQucGFkZGluZ1RvcCwxMCkrcGFyc2VJbnQoZHQucGFkZGluZ0JvdHRvbSwxMCksZm49dWUtT3QsTG49QmUtJHQsaXI9X2UtT3QsbXI9TmUt''@;'; + put 'put ''JHQ7dGhpcy5hdXRvUmVzaXplLmluaXQodGhpcy5URVhUQVJFQSx7bWluV2lkdGg6TWF0aC5taW4oZm4saXIpLG1pbkhlaWdodDpNYXRoLm1pbihMbixtciksbWF4V2lkdGg6aXIsbWF4SGVpZ2h0Om1yfSwhMCl9fX0se2tleToiYmluZEV2ZW50cyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10''@;'; + put 'put ''aGlzO3RoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIodGhpcy5URVhUQVJFQSwiY3V0IixmdW5jdGlvbihDKXtyZXR1cm4gQy5zdG9wUHJvcGFnYXRpb24oKX0pLHRoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIodGhpcy5URVhUQVJFQSwicGFzdGUiLGZ1bmN0aW9u''@;'; + put 'put ''KEMpe3JldHVybiBDLnN0b3BQcm9wYWdhdGlvbigpfSksJGhlKCkmJnRoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIodGhpcy5URVhUQVJFQSwiZm9jdXNvdXQiLGZ1bmN0aW9uKCl7cmV0dXJuIHkuZmluaXNoRWRpdGluZyghMSl9KSx0aGlzLmFkZEhvb2soImFmdGVyU2Nyb2xs''@;'; + put 'put ''SG9yaXpvbnRhbGx5IixmdW5jdGlvbigpe3JldHVybiB5LnJlZnJlc2hEaW1lbnNpb25zKCl9KSx0aGlzLmFkZEhvb2soImFmdGVyU2Nyb2xsVmVydGljYWxseSIsZnVuY3Rpb24oKXtyZXR1cm4geS5yZWZyZXNoRGltZW5zaW9ucygpfSksdGhpcy5hZGRIb29rKCJhZnRlckNvbHVtblJlc2l6''@;'; + put 'put ''ZSIsZnVuY3Rpb24oKXt5LnJlZnJlc2hEaW1lbnNpb25zKCkseS5mb2N1cygpfSksdGhpcy5hZGRIb29rKCJhZnRlclJvd1Jlc2l6ZSIsZnVuY3Rpb24oKXt5LnJlZnJlc2hEaW1lbnNpb25zKCkseS5mb2N1cygpfSl9fSx7a2V5OiJhbGxvd0tleUV2ZW50UHJvcGFnYXRpb24iLHZhbHVlOmZ1''@;'; + put 'put ''bmN0aW9uKCl7fX0se2tleToiZGVzdHJveSIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmV2ZW50TWFuYWdlci5kZXN0cm95KCksdGhpcy5jbGVhckhvb2tzKCl9fSx7a2V5OiJyZWdpc3RlclNob3J0Y3V0cyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzLEk9dGhpcy5ob3QuZ2V0U2hvcnRj''@;'; + put 'put ''dXRNYW5hZ2VyKCkuZ2V0Q29udGV4dCgiZWRpdG9yIiksdWU9ZnVuY3Rpb24oKXt5LmhvdC5yb290RG9jdW1lbnQuZXhlY0NvbW1hbmQoImluc2VydFRleHQiLCExLCJcbiIpfTtJLmFkZFNob3J0Y3V0cyhbe2tleXM6W1siVGFiIl1dLGNhbGxiYWNrOmZ1bmN0aW9uKEJlKXt2YXIgTmU9eS5o''@;'; + put 'put ''b3QuZ2V0U2V0dGluZ3MoKSxLZT0iZnVuY3Rpb24iPT10eXBlb2YgTmUudGFiTW92ZXM/TmUudGFiTW92ZXMoQmUpOk5lLnRhYk1vdmVzO3kuaG90LnNlbGVjdGlvbi50cmFuc2Zvcm1TdGFydChLZS5yb3csS2UuY29sLCEwKX19LHtrZXlzOltbIlNoaWZ0IiwiVGFiIl1dLGNhbGxiYWNrOmZ1''@;'; + put 'put ''bmN0aW9uKEJlKXt2YXIgTmU9eS5ob3QuZ2V0U2V0dGluZ3MoKSxLZT0iZnVuY3Rpb24iPT10eXBlb2YgTmUudGFiTW92ZXM/TmUudGFiTW92ZXMoQmUpOk5lLnRhYk1vdmVzO3kuaG90LnNlbGVjdGlvbi50cmFuc2Zvcm1TdGFydCgtS2Uucm93LC1LZS5jb2wpfX0se2tleXM6W1siQ29udHJv''@;'; + put 'put ''bCIsIkVudGVyIl1dLGNhbGxiYWNrOmZ1bmN0aW9uKCl7cmV0dXJuIHVlKCksITF9LHJ1bk9ubHlJZjpmdW5jdGlvbihCZSl7cmV0dXJuIXkuaG90LnNlbGVjdGlvbi5pc011bHRpcGxlKCkmJiFCZS5hbHRLZXl9LHJlbGF0aXZlVG9Hcm91cDpHWixwb3NpdGlvbjoiYmVmb3JlIn0se2tleXM6''@;'; + put 'put ''W1siTWV0YSIsIkVudGVyIl1dLGNhbGxiYWNrOmZ1bmN0aW9uKCl7cmV0dXJuIHVlKCksITF9LHJ1bk9ubHlJZjpmdW5jdGlvbigpe3JldHVybiF5LmhvdC5zZWxlY3Rpb24uaXNNdWx0aXBsZSgpfSxyZWxhdGl2ZVRvR3JvdXA6R1oscG9zaXRpb246ImJlZm9yZSJ9LHtrZXlzOltbIkFsdCIs''@;'; + put 'put ''IkVudGVyIl1dLGNhbGxiYWNrOmZ1bmN0aW9uKCl7cmV0dXJuIHVlKCksITF9LHJlbGF0aXZlVG9Hcm91cDpHWixwb3NpdGlvbjoiYmVmb3JlIn0se2tleXM6W1siUGFnZVVwIl1dLGNhbGxiYWNrOmZ1bmN0aW9uKCl7eS5ob3Quc2VsZWN0aW9uLnRyYW5zZm9ybVN0YXJ0KC15LmhvdC5jb3Vu''@;'; + put 'put ''dFZpc2libGVSb3dzKCksMCl9fSx7a2V5czpbWyJQYWdlRG93biJdXSxjYWxsYmFjazpmdW5jdGlvbigpe3kuaG90LnNlbGVjdGlvbi50cmFuc2Zvcm1TdGFydCh5LmhvdC5jb3VudFZpc2libGVSb3dzKCksMCl9fSx7a2V5czpbWyJIb21lIl1dLGNhbGxiYWNrOmZ1bmN0aW9uKEJlLE5lKXtQ''@;'; + put 'put ''U2UoRlNlKE5lLDEpWzBdLHkuVEVYVEFSRUEpfX0se2tleXM6W1siRW5kIl1dLGNhbGxiYWNrOmZ1bmN0aW9uKEJlLE5lKXtQU2UoRlNlKE5lLDEpWzBdLHkuVEVYVEFSRUEpfX0se2tleXM6W1siQ29udHJvbC9NZXRhIiwiWiJdXSxwcmV2ZW50RGVmYXVsdDohMSxjYWxsYmFjazpmdW5jdGlv''@;'; + put 'put ''bigpe3kuaG90Ll9yZWdpc3RlclRpbWVvdXQoZnVuY3Rpb24oKXt5LmF1dG9SZXNpemUucmVzaXplKCl9LDEwKX19LHtrZXlzOltbIkNvbnRyb2wvTWV0YSIsIlNoaWZ0IiwiWiJdXSxwcmV2ZW50RGVmYXVsdDohMSxjYWxsYmFjazpmdW5jdGlvbigpe3kuaG90Ll9yZWdpc3RlclRpbWVvdXQo''@;'; + put 'put ''ZnVuY3Rpb24oKXt5LmF1dG9SZXNpemUucmVzaXplKCl9LDEwKX19XSx7cnVuT25seUlmOmZ1bmN0aW9uKCl7cmV0dXJuIFRvKHkuaG90LmdldFNlbGVjdGVkKCkpfSxncm91cDpqU2V9KX19LHtrZXk6InVucmVnaXN0ZXJTaG9ydGN1dHMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIEM9dGhpcy5o''@;'; + put 'put ''b3QuZ2V0U2hvcnRjdXRNYW5hZ2VyKCkuZ2V0Q29udGV4dCgiZWRpdG9yIik7Qy5yZW1vdmVTaG9ydGN1dHNCeUdyb3VwKGxlZSksQy5yZW1vdmVTaG9ydGN1dHNCeUdyb3VwKGpTZSksQy5yZW1vdmVTaG9ydGN1dHNCeUdyb3VwKHM2ZSl9fSx7a2V5OiJvbkFmdGVyRG9jdW1lbnRLZXlEb3du''@;'; + put 'put ''Iix2YWx1ZTpmdW5jdGlvbih5KXstMT09PVtRby5BUlJPV19VUCxRby5BUlJPV19SSUdIVCxRby5BUlJPV19ET1dOLFFvLkFSUk9XX0xFRlRdLmluZGV4T2YoeS5rZXlDb2RlKSYmdGhpcy5hdXRvUmVzaXplLnJlc2l6ZShTdHJpbmcuZnJvbUNoYXJDb2RlKHkua2V5Q29kZSkpfX1dLFt7a2V5''@;'; + put 'put ''OiJFRElUT1JfVFlQRSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuInRleHQifX1dKSxofShDTyk7ZnVuY3Rpb24gaHooZCxnLGgsdix5LEMsSSl7dmFyIGo9W10sdWU9W107SS5jbGFzc05hbWUmJk8wKGcsSS5jbGFzc05hbWUpLEkucmVhZE9ubHkmJmoucHVzaChJLnJlYWRPbmx5Q2VsbENsYXNz''@;'; + put 'put ''TmFtZSksITE9PT1JLnZhbGlkJiZJLmludmFsaWRDZWxsQ2xhc3NOYW1lP2oucHVzaChJLmludmFsaWRDZWxsQ2xhc3NOYW1lKTp1ZS5wdXNoKEkuaW52YWxpZENlbGxDbGFzc05hbWUpLCExPT09SS53b3JkV3JhcCYmSS5ub1dvcmRXcmFwQ2xhc3NOYW1lJiZqLnB1c2goSS5ub1dvcmRXcmFw''@;'; + put 'put ''Q2xhc3NOYW1lKSwhQyYmSS5wbGFjZWhvbGRlciYmai5wdXNoKEkucGxhY2Vob2xkZXJDZWxsQ2xhc3NOYW1lKSxwbChnLHVlKSxPMChnLGopfWZ1bmN0aW9uIEJ3KGQsZyxoLHYseSxDLEkpe2h6LmFwcGx5KHRoaXMsW2QsZyxoLHYseSxDLEldKTt2YXIgaj1DO2lmKCFqJiZJLnBsYWNlaG9s''@;'; + put 'put ''ZGVyJiYoaj1JLnBsYWNlaG9sZGVyKSxqPWV1KGopLGQuZ2V0U2V0dGluZ3MoKS50cmltV2hpdGVzcGFjZSYmKGo9ai50cmltKCkpLEkucmVuZGVyZXJUZW1wbGF0ZSl7RHAoZyk7dmFyIHVlPWQucm9vdERvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRFTVBMQVRFIik7dWUuc2V0QXR0cmlidXRl''@;'; + put 'put ''KCJiaW5kIiwie3t9fSIpLHVlLmlubmVySFRNTD1JLnJlbmRlcmVyVGVtcGxhdGUsSFRNTFRlbXBsYXRlRWxlbWVudC5kZWNvcmF0ZSh1ZSksdWUubW9kZWw9ZC5nZXRTb3VyY2VEYXRhQXRSb3coaCksZy5hcHBlbmRDaGlsZCh1ZSl9ZWxzZSBTdyhnLGopfWh6LlJFTkRFUkVSX1RZUEU9ImJh''@;'; + put 'put ''c2UiLEJ3LlJFTkRFUkVSX1RZUEU9InRleHQiO3ZhciBaU2U9e0NFTExfVFlQRToidGV4dCIsZWRpdG9yOkhTLHJlbmRlcmVyOkJ3fTtmdW5jdGlvbiB4dihkLGcpe3ZhciBoPW5ldyBvNmUoZCxnfHx7fSxaZGUpO3JldHVybiBoLmluaXQoKSxofWs4KFpTZSkseHYuZWRpdG9ycz17QmFzZUVk''@;'; + put 'put ''aXRvcjpDT30seHYuQ29yZT1mdW5jdGlvbihkKXt2YXIgZz1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e307cmV0dXJuIG5ldyBvNmUoZCxnLFpkZSl9LHh2LkRlZmF1bHRTZXR0aW5ncz1jU2UoKSx4di5ob29rcz16by5nZXRTaW5nbGV0''@;'; + put 'put ''b24oKSx4di5wYWNrYWdlTmFtZT0iaGFuZHNvbnRhYmxlIix4di5idWlsZERhdGU9IjA4LzA3LzIwMjIgMTU6MjQ6MDgiLHh2LnZlcnNpb249IjEyLjEuMiIseHYubGFuZ3VhZ2VzPXtkaWN0aW9uYXJ5S2V5czpxLGdldExhbmd1YWdlRGljdGlvbmFyeTpUa2UsZ2V0TGFuZ3VhZ2VzRGljdGlv''@;'; + put 'put ''bmFyaWVzOmZ1bmN0aW9uIEhYZSgpe3JldHVybiBQWGUoKX0scmVnaXN0ZXJMYW5ndWFnZURpY3Rpb25hcnk6eGtlLGdldFRyYW5zbGF0ZWRQaHJhc2U6SWtlfTtjb25zdCBKbD14dixhZXQ9WyJjb250YWluZXIiXSxmNmU9bmV3IE1hcCx6U2U9IlRoZSBIYW5kc29udGFibGUgaW5zdGFuY2Ug''@;'; + put 'put ''Ym91bmQgdG8gdGhpcyBjb21wb25lbnQgd2FzIGRlc3Ryb3llZCBhbmQgY2Fubm90IGJlIHVzZWQgcHJvcGVybHkuIjtsZXQga089KCgpPT57Y2xhc3MgZHtnZXRJbnN0YW5jZShoKXtjb25zdCB2PWY2ZS5nZXQoaCk7cmV0dXJuIHYuaXNEZXN0cm95ZWQ/KGNvbnNvbGUud2Fybih6U2UpLG51''@;'; + put 'put ''bGwpOnZ9cmVnaXN0ZXJJbnN0YW5jZShoLHYpe3JldHVybiBmNmUuc2V0KGgsdil9cmVtb3ZlSW5zdGFuY2UoaCl7cmV0dXJuIGY2ZS5kZWxldGUoaCl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1MDI3NXByb3Y9QWkoe3Rva2VuOmQsZmFj''@;'; + put 'put ''dG9yeTpkLlx1MDI3NWZhY30pLGR9KSgpO2NvbnN0IHNldD1PYmplY3Qua2V5cyhKbC5EZWZhdWx0U2V0dGluZ3MpLEdTZT1KbC5ob29rcy5nZXRSZWdpc3RlcmVkKCk7bGV0IFdTZT0oKCk9PntjbGFzcyBke21lcmdlU2V0dGluZ3MoaCl7Y29uc3Qgdj0ib2JqZWN0Ij09dHlwZW9mIGguc2V0''@;'; + put 'put ''dGluZ3MseT12P2guc2V0dGluZ3M6e307cmV0dXJuIEdTZS5jb25jYXQoc2V0KS5mb3JFYWNoKEk9Pntjb25zdCBqPUdTZS5pbmRleE9mKEkpPi0xO2xldCB1ZTt2JiZqJiYodWU9aC5zZXR0aW5nc1tJXSksdm9pZCAwIT09aFtJXSYmKHVlPWhbSV0pLHZvaWQgMCE9PXVlJiYoeVtJXT0iZnVu''@;'; + put 'put ''Y3Rpb24iPT10eXBlb2YgdWUmJmo/ZnVuY3Rpb24oLi4uX2Upe3JldHVybiBoLl9uZ1pvbmUucnVuKCgpPT51ZS5hcHBseSh0aGlzLF9lKSl9OnVlKX0pLHl9cHJlcGFyZUNoYW5nZXMoaCl7Y29uc3Qgdj17fTtyZXR1cm4gT2JqZWN0LmtleXMoaCkuZm9yRWFjaChDPT57aC5oYXNPd25Qcm9w''@;'; + put 'put ''ZXJ0eShDKSYmKHZbQ109aFtDXS5jdXJyZW50VmFsdWUpfSksdn19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1ZmFjfSksZH0pKCksQXRlPSgoKT0+e2NsYXNzIGR7Y29uc3Ry''@;'; + put 'put ''dWN0b3IoaCx2LHkpe3RoaXMuX25nWm9uZT1oLHRoaXMuX2hvdFRhYmxlUmVnaXN0ZXJlcj12LHRoaXMuX2hvdFNldHRpbmdzUmVzb2x2ZXI9eSx0aGlzLl9faG90SW5zdGFuY2U9bnVsbCx0aGlzLmNvbHVtbnNDb21wb25lbnRzPVtdLHRoaXMuaG90SWQ9IiJ9Z2V0IGhvdEluc3RhbmNlKCl7''@;'; + put 'put ''cmV0dXJuIXRoaXMuX19ob3RJbnN0YW5jZXx8dGhpcy5fX2hvdEluc3RhbmNlJiYhdGhpcy5fX2hvdEluc3RhbmNlLmlzRGVzdHJveWVkP3RoaXMuX19ob3RJbnN0YW5jZToodGhpcy5faG90VGFibGVSZWdpc3RlcmVyLnJlbW92ZUluc3RhbmNlKHRoaXMuaG90SWQpLGNvbnNvbGUud2Fybih6''@;'; + put 'put ''U2UpLG51bGwpfXNldCBob3RJbnN0YW5jZShoKXt0aGlzLl9faG90SW5zdGFuY2U9aH1uZ0FmdGVyVmlld0luaXQoKXtjb25zdCBoPXRoaXMuX2hvdFNldHRpbmdzUmVzb2x2ZXIubWVyZ2VTZXR0aW5ncyh0aGlzKTtpZih0aGlzLmNvbHVtbnNDb21wb25lbnRzLmxlbmd0aD4wKXtjb25zdCB2''@;'; + put 'put ''PVtdO3RoaXMuY29sdW1uc0NvbXBvbmVudHMuZm9yRWFjaCh5PT57di5wdXNoKHRoaXMuX2hvdFNldHRpbmdzUmVzb2x2ZXIubWVyZ2VTZXR0aW5ncyh5KSl9KSxoLmNvbHVtbnM9dn10aGlzLl9uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCk9Pnt0aGlzLmhvdEluc3RhbmNlPW5ldyBKbC5D''@;'; + put 'put ''b3JlKHRoaXMuY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQsaCksdGhpcy5ob3RJZCYmdGhpcy5faG90VGFibGVSZWdpc3RlcmVyLnJlZ2lzdGVySW5zdGFuY2UodGhpcy5ob3RJZCx0aGlzLmhvdEluc3RhbmNlKSx0aGlzLmhvdEluc3RhbmNlLmluaXQoKX0pfW5nT25DaGFuZ2VzKGgpe2lmKG51''@;'; + put 'put ''bGw9PT10aGlzLmhvdEluc3RhbmNlKXJldHVybjtjb25zdCB2PXRoaXMuX2hvdFNldHRpbmdzUmVzb2x2ZXIucHJlcGFyZUNoYW5nZXMoaCk7dGhpcy51cGRhdGVIb3RUYWJsZSh2KX1uZ09uRGVzdHJveSgpe3RoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKT0+e3RoaXMuaG90SW5z''@;'; + put 'put ''dGFuY2UmJnRoaXMuaG90SW5zdGFuY2UuZGVzdHJveSgpfSksdGhpcy5ob3RJZCYmdGhpcy5faG90VGFibGVSZWdpc3RlcmVyLnJlbW92ZUluc3RhbmNlKHRoaXMuaG90SWQpfXVwZGF0ZUhvdFRhYmxlKGgpeyF0aGlzLmhvdEluc3RhbmNlfHx0aGlzLl9uZ1pvbmUucnVuT3V0c2lkZUFuZ3Vs''@;'; + put 'put ''YXIoKCk9Pnt0aGlzLmhvdEluc3RhbmNlLnVwZGF0ZVNldHRpbmdzKGgsITEpfSl9b25BZnRlckNvbHVtbnNDaGFuZ2UoKXtpZih2b2lkIDAhPT10aGlzLmNvbHVtbnNDb21wb25lbnRzJiZ0aGlzLmNvbHVtbnNDb21wb25lbnRzLmxlbmd0aD4wKXtjb25zdCBoPVtdO3RoaXMuY29sdW1uc0Nv''@;'; + put 'put ''bXBvbmVudHMuZm9yRWFjaCh5PT57aC5wdXNoKHRoaXMuX2hvdFNldHRpbmdzUmVzb2x2ZXIubWVyZ2VTZXR0aW5ncyh5KSl9KSx0aGlzLnVwZGF0ZUhvdFRhYmxlKHtjb2x1bW5zOmh9KX19b25BZnRlckNvbHVtbnNOdW1iZXJDaGFuZ2UoKXtjb25zdCBoPVtdO3RoaXMuY29sdW1uc0NvbXBv''@;'; + put 'put ''bmVudHMubGVuZ3RoPjAmJnRoaXMuY29sdW1uc0NvbXBvbmVudHMuZm9yRWFjaCh2PT57aC5wdXNoKHRoaXMuX2hvdFNldHRpbmdzUmVzb2x2ZXIubWVyZ2VTZXR0aW5ncyh2KSl9KSx0aGlzLnVwZGF0ZUhvdFRhYmxlKHtjb2x1bW5zOmh9KX1hZGRDb2x1bW4oaCl7dGhpcy5jb2x1bW5zQ29t''@;'; + put 'put ''cG9uZW50cy5wdXNoKGgpLHRoaXMub25BZnRlckNvbHVtbnNOdW1iZXJDaGFuZ2UoKX1yZW1vdmVDb2x1bW4oaCl7Y29uc3Qgdj10aGlzLmNvbHVtbnNDb21wb25lbnRzLmluZGV4T2YoaCk7dGhpcy5jb2x1bW5zQ29tcG9uZW50cy5zcGxpY2UodiwxKSx0aGlzLm9uQWZ0ZXJDb2x1bW5zTnVt''@;'; + put 'put ''YmVyQ2hhbmdlKCl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKEt0KF9sKSxLdChrTyksS3QoV1NlKSl9LGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQsc2VsZWN0b3JzOltbImhvdC10YWJsZSJdXSx2aWV3UXVlcnk6ZnVuY3Rpb24oaCx2KXtpZigxJmgm''@;'; + put 'put ''JnZvKGFldCw1KSwyJmgpe2xldCB5O0hpKHk9JGkoKSkmJih2LmNvbnRhaW5lcj15LmZpcnN0KX19LGlucHV0czp7aG90SWQ6ImhvdElkIixzZXR0aW5nczoic2V0dGluZ3MiLGFjdGl2ZUhlYWRlckNsYXNzTmFtZToiYWN0aXZlSGVhZGVyQ2xhc3NOYW1lIixhbGxvd0VtcHR5OiJhbGxvd0Vt''@;'; + put 'put ''cHR5IixhbGxvd0h0bWw6ImFsbG93SHRtbCIsYWxsb3dJbnNlcnRDb2x1bW46ImFsbG93SW5zZXJ0Q29sdW1uIixhbGxvd0luc2VydFJvdzoiYWxsb3dJbnNlcnRSb3ciLGFsbG93SW52YWxpZDoiYWxsb3dJbnZhbGlkIixhbGxvd1JlbW92ZUNvbHVtbjoiYWxsb3dSZW1vdmVDb2x1bW4iLGFs''@;'; + put 'put ''bG93UmVtb3ZlUm93OiJhbGxvd1JlbW92ZVJvdyIsYXV0b0NvbHVtblNpemU6ImF1dG9Db2x1bW5TaXplIixhdXRvUm93U2l6ZToiYXV0b1Jvd1NpemUiLGF1dG9XcmFwQ29sOiJhdXRvV3JhcENvbCIsYXV0b1dyYXBSb3c6ImF1dG9XcmFwUm93IixiaW5kUm93c1dpdGhIZWFkZXJzOiJiaW5k''@;'; + put 'put ''Um93c1dpdGhIZWFkZXJzIixjZWxsOiJjZWxsIixjZWxsczoiY2VsbHMiLGNoZWNrZWRUZW1wbGF0ZToiY2hlY2tlZFRlbXBsYXRlIixjbGFzc05hbWU6ImNsYXNzTmFtZSIsY29sSGVhZGVyczoiY29sSGVhZGVycyIsY29sbGFwc2libGVDb2x1bW5zOiJjb2xsYXBzaWJsZUNvbHVtbnMiLGNv''@;'; + put 'put ''bHVtbkhlYWRlckhlaWdodDoiY29sdW1uSGVhZGVySGVpZ2h0Iixjb2x1bW5zOiJjb2x1bW5zIixjb2x1bW5Tb3J0aW5nOiJjb2x1bW5Tb3J0aW5nIixjb2x1bW5TdW1tYXJ5OiJjb2x1bW5TdW1tYXJ5Iixjb2xXaWR0aHM6ImNvbFdpZHRocyIsY29tbWVudGVkQ2VsbENsYXNzTmFtZToiY29t''@;'; + put 'put ''bWVudGVkQ2VsbENsYXNzTmFtZSIsY29tbWVudHM6ImNvbW1lbnRzIixjb250ZXh0TWVudToiY29udGV4dE1lbnUiLGNvcHlhYmxlOiJjb3B5YWJsZSIsY29weVBhc3RlOiJjb3B5UGFzdGUiLGNvcnJlY3RGb3JtYXQ6ImNvcnJlY3RGb3JtYXQiLGN1cnJlbnRDb2xDbGFzc05hbWU6ImN1cnJl''@;'; + put 'put ''bnRDb2xDbGFzc05hbWUiLGN1cnJlbnRIZWFkZXJDbGFzc05hbWU6ImN1cnJlbnRIZWFkZXJDbGFzc05hbWUiLGN1cnJlbnRSb3dDbGFzc05hbWU6ImN1cnJlbnRSb3dDbGFzc05hbWUiLGN1c3RvbUJvcmRlcnM6ImN1c3RvbUJvcmRlcnMiLGRhdGE6ImRhdGEiLGRhdGFTY2hlbWE6ImRhdGFT''@;'; + put 'put ''Y2hlbWEiLGRhdGVGb3JtYXQ6ImRhdGVGb3JtYXQiLGRlZmF1bHREYXRlOiJkZWZhdWx0RGF0ZSIsZGlzYWJsZVZpc3VhbFNlbGVjdGlvbjoiZGlzYWJsZVZpc3VhbFNlbGVjdGlvbiIsZHJhZ1RvU2Nyb2xsOiJkcmFnVG9TY3JvbGwiLGRyb3Bkb3duTWVudToiZHJvcGRvd25NZW51IixlZGl0''@;'; + put 'put ''b3I6ImVkaXRvciIsZW50ZXJCZWdpbnNFZGl0aW5nOiJlbnRlckJlZ2luc0VkaXRpbmciLGVudGVyTW92ZXM6ImVudGVyTW92ZXMiLGZpbGxIYW5kbGU6ImZpbGxIYW5kbGUiLGZpbHRlcjoiZmlsdGVyIixmaWx0ZXJpbmdDYXNlU2Vuc2l0aXZlOiJmaWx0ZXJpbmdDYXNlU2Vuc2l0aXZlIixm''@;'; + put 'put ''aWx0ZXJzOiJmaWx0ZXJzIixmaXhlZENvbHVtbnNMZWZ0OiJmaXhlZENvbHVtbnNMZWZ0IixmaXhlZENvbHVtbnNTdGFydDoiZml4ZWRDb2x1bW5zU3RhcnQiLGZpeGVkUm93c0JvdHRvbToiZml4ZWRSb3dzQm90dG9tIixmaXhlZFJvd3NUb3A6ImZpeGVkUm93c1RvcCIsZm9ybXVsYXM6ImZv''@;'; + put 'put ''cm11bGFzIixmcmFnbWVudFNlbGVjdGlvbjoiZnJhZ21lbnRTZWxlY3Rpb24iLGhlaWdodDoiaGVpZ2h0IixoaWRkZW5Db2x1bW5zOiJoaWRkZW5Db2x1bW5zIixoaWRkZW5Sb3dzOiJoaWRkZW5Sb3dzIixpbnZhbGlkQ2VsbENsYXNzTmFtZToiaW52YWxpZENlbGxDbGFzc05hbWUiLGxhYmVs''@;'; + put 'put ''OiJsYWJlbCIsbGFuZ3VhZ2U6Imxhbmd1YWdlIixsYXlvdXREaXJlY3Rpb246ImxheW91dERpcmVjdGlvbiIsbGljZW5zZUtleToibGljZW5zZUtleSIsbWFudWFsQ29sdW1uRnJlZXplOiJtYW51YWxDb2x1bW5GcmVlemUiLG1hbnVhbENvbHVtbk1vdmU6Im1hbnVhbENvbHVtbk1vdmUiLG1h''@;'; + put 'put ''bnVhbENvbHVtblJlc2l6ZToibWFudWFsQ29sdW1uUmVzaXplIixtYW51YWxSb3dNb3ZlOiJtYW51YWxSb3dNb3ZlIixtYW51YWxSb3dSZXNpemU6Im1hbnVhbFJvd1Jlc2l6ZSIsbWF4Q29sczoibWF4Q29scyIsbWF4Um93czoibWF4Um93cyIsbWVyZ2VDZWxsczoibWVyZ2VDZWxscyIsbWlu''@;'; + put 'put ''Q29sczoibWluQ29scyIsbWluUm93czoibWluUm93cyIsbWluU3BhcmVDb2xzOiJtaW5TcGFyZUNvbHMiLG1pblNwYXJlUm93czoibWluU3BhcmVSb3dzIixtdWx0aUNvbHVtblNvcnRpbmc6Im11bHRpQ29sdW1uU29ydGluZyIsbmVzdGVkSGVhZGVyczoibmVzdGVkSGVhZGVycyIsbmVzdGVk''@;'; + put 'put ''Um93czoibmVzdGVkUm93cyIsbm9Xb3JkV3JhcENsYXNzTmFtZToibm9Xb3JkV3JhcENsYXNzTmFtZSIsbnVtZXJpY0Zvcm1hdDoibnVtZXJpY0Zvcm1hdCIsb2JzZXJ2ZURPTVZpc2liaWxpdHk6Im9ic2VydmVET01WaXNpYmlsaXR5IixvdXRzaWRlQ2xpY2tEZXNlbGVjdHM6Im91dHNpZGVD''@;'; + put 'put ''bGlja0Rlc2VsZWN0cyIscGVyc2lzdGVudFN0YXRlOiJwZXJzaXN0ZW50U3RhdGUiLHBsYWNlaG9sZGVyOiJwbGFjZWhvbGRlciIscGxhY2Vob2xkZXJDZWxsQ2xhc3NOYW1lOiJwbGFjZWhvbGRlckNlbGxDbGFzc05hbWUiLHByZXZlbnRPdmVyZmxvdzoicHJldmVudE92ZXJmbG93IixwcmV2''@;'; + put 'put ''ZW50V2hlZWw6InByZXZlbnRXaGVlbCIscmVhZE9ubHk6InJlYWRPbmx5IixyZWFkT25seUNlbGxDbGFzc05hbWU6InJlYWRPbmx5Q2VsbENsYXNzTmFtZSIscmVuZGVyQWxsUm93czoicmVuZGVyQWxsUm93cyIscmVuZGVyZXI6InJlbmRlcmVyIixyb3dIZWFkZXJzOiJyb3dIZWFkZXJzIixy''@;'; + put 'put ''b3dIZWFkZXJXaWR0aDoicm93SGVhZGVyV2lkdGgiLHJvd0hlaWdodHM6InJvd0hlaWdodHMiLHNlYXJjaDoic2VhcmNoIixzZWxlY3Rpb25Nb2RlOiJzZWxlY3Rpb25Nb2RlIixzZWxlY3RPcHRpb25zOiJzZWxlY3RPcHRpb25zIixza2lwQ29sdW1uT25QYXN0ZToic2tpcENvbHVtbk9uUGFz''@;'; + put 'put ''dGUiLHNraXBSb3dPblBhc3RlOiJza2lwUm93T25QYXN0ZSIsc29ydEJ5UmVsZXZhbmNlOiJzb3J0QnlSZWxldmFuY2UiLHNvdXJjZToic291cmNlIixzdGFydENvbHM6InN0YXJ0Q29scyIsc3RhcnRSb3dzOiJzdGFydFJvd3MiLHN0cmV0Y2hIOiJzdHJldGNoSCIsc3RyaWN0OiJzdHJpY3Qi''@;'; + put 'put ''LHRhYmxlQ2xhc3NOYW1lOiJ0YWJsZUNsYXNzTmFtZSIsdGFiTW92ZXM6InRhYk1vdmVzIix0aXRsZToidGl0bGUiLHRyaW1Ecm9wZG93bjoidHJpbURyb3Bkb3duIix0cmltUm93czoidHJpbVJvd3MiLHRyaW1XaGl0ZXNwYWNlOiJ0cmltV2hpdGVzcGFjZSIsdHlwZToidHlwZSIsdW5jaGVj''@;'; + put 'put ''a2VkVGVtcGxhdGU6InVuY2hlY2tlZFRlbXBsYXRlIix1bmRvOiJ1bmRvIix2YWxpZGF0b3I6InZhbGlkYXRvciIsdmlld3BvcnRDb2x1bW5SZW5kZXJpbmdPZmZzZXQ6InZpZXdwb3J0Q29sdW1uUmVuZGVyaW5nT2Zmc2V0Iix2aWV3cG9ydFJvd1JlbmRlcmluZ09mZnNldDoidmlld3BvcnRS''@;'; + put 'put ''b3dSZW5kZXJpbmdPZmZzZXQiLHZpc2libGVSb3dzOiJ2aXNpYmxlUm93cyIsd2lkdGg6IndpZHRoIix3b3JkV3JhcDoid29yZFdyYXAiLGFmdGVyQWRkQ2hpbGQ6ImFmdGVyQWRkQ2hpbGQiLGFmdGVyQXV0b2ZpbGw6ImFmdGVyQXV0b2ZpbGwiLGFmdGVyQmVnaW5FZGl0aW5nOiJhZnRlckJl''@;'; + put 'put ''Z2luRWRpdGluZyIsYWZ0ZXJDZWxsTWV0YVJlc2V0OiJhZnRlckNlbGxNZXRhUmVzZXQiLGFmdGVyQ2hhbmdlOiJhZnRlckNoYW5nZSIsYWZ0ZXJDaGFuZ2VzT2JzZXJ2ZWQ6ImFmdGVyQ2hhbmdlc09ic2VydmVkIixhZnRlckNvbHVtbkNvbGxhcHNlOiJhZnRlckNvbHVtbkNvbGxhcHNlIixh''@;'; + put 'put ''ZnRlckNvbHVtbkV4cGFuZDoiYWZ0ZXJDb2x1bW5FeHBhbmQiLGFmdGVyQ29sdW1uTW92ZToiYWZ0ZXJDb2x1bW5Nb3ZlIixhZnRlckNvbHVtblJlc2l6ZToiYWZ0ZXJDb2x1bW5SZXNpemUiLGFmdGVyQ29sdW1uU29ydDoiYWZ0ZXJDb2x1bW5Tb3J0IixhZnRlckNvbnRleHRNZW51RGVmYXVs''@;'; + put 'put ''dE9wdGlvbnM6ImFmdGVyQ29udGV4dE1lbnVEZWZhdWx0T3B0aW9ucyIsYWZ0ZXJDb250ZXh0TWVudUhpZGU6ImFmdGVyQ29udGV4dE1lbnVIaWRlIixhZnRlckNvbnRleHRNZW51U2hvdzoiYWZ0ZXJDb250ZXh0TWVudVNob3ciLGFmdGVyQ29weToiYWZ0ZXJDb3B5IixhZnRlckNvcHlMaW1p''@;'; + put 'put ''dDoiYWZ0ZXJDb3B5TGltaXQiLGFmdGVyQ3JlYXRlQ29sOiJhZnRlckNyZWF0ZUNvbCIsYWZ0ZXJDcmVhdGVSb3c6ImFmdGVyQ3JlYXRlUm93IixhZnRlckN1dDoiYWZ0ZXJDdXQiLGFmdGVyRGVzZWxlY3Q6ImFmdGVyRGVzZWxlY3QiLGFmdGVyRGVzdHJveToiYWZ0ZXJEZXN0cm95IixhZnRl''@;'; + put 'put ''ckRldGFjaENoaWxkOiJhZnRlckRldGFjaENoaWxkIixhZnRlckRvY3VtZW50S2V5RG93bjoiYWZ0ZXJEb2N1bWVudEtleURvd24iLGFmdGVyRHJhd1NlbGVjdGlvbjoiYWZ0ZXJEcmF3U2VsZWN0aW9uIixhZnRlckRyb3Bkb3duTWVudURlZmF1bHRPcHRpb25zOiJhZnRlckRyb3Bkb3duTWVu''@;'; + put 'put ''dURlZmF1bHRPcHRpb25zIixhZnRlckRyb3Bkb3duTWVudUhpZGU6ImFmdGVyRHJvcGRvd25NZW51SGlkZSIsYWZ0ZXJEcm9wZG93bk1lbnVTaG93OiJhZnRlckRyb3Bkb3duTWVudVNob3ciLGFmdGVyRmlsdGVyOiJhZnRlckZpbHRlciIsYWZ0ZXJHZXRDZWxsTWV0YToiYWZ0ZXJHZXRDZWxs''@;'; + put 'put ''TWV0YSIsYWZ0ZXJHZXRDb2xIZWFkZXI6ImFmdGVyR2V0Q29sSGVhZGVyIixhZnRlckdldENvbHVtbkhlYWRlclJlbmRlcmVyczoiYWZ0ZXJHZXRDb2x1bW5IZWFkZXJSZW5kZXJlcnMiLGFmdGVyR2V0Um93SGVhZGVyOiJhZnRlckdldFJvd0hlYWRlciIsYWZ0ZXJHZXRSb3dIZWFkZXJSZW5k''@;'; + put 'put ''ZXJlcnM6ImFmdGVyR2V0Um93SGVhZGVyUmVuZGVyZXJzIixhZnRlckhpZGVDb2x1bW5zOiJhZnRlckhpZGVDb2x1bW5zIixhZnRlckhpZGVSb3dzOiJhZnRlckhpZGVSb3dzIixhZnRlckluaXQ6ImFmdGVySW5pdCIsYWZ0ZXJMYW5ndWFnZUNoYW5nZToiYWZ0ZXJMYW5ndWFnZUNoYW5nZSIs''@;'; + put 'put ''YWZ0ZXJMaXN0ZW46ImFmdGVyTGlzdGVuIixhZnRlckxvYWREYXRhOiJhZnRlckxvYWREYXRhIixhZnRlck1lcmdlQ2VsbHM6ImFmdGVyTWVyZ2VDZWxscyIsYWZ0ZXJNb2RpZnlUcmFuc2Zvcm1FbmQ6ImFmdGVyTW9kaWZ5VHJhbnNmb3JtRW5kIixhZnRlck1vZGlmeVRyYW5zZm9ybVN0YXJ0''@;'; + put 'put ''OiJhZnRlck1vZGlmeVRyYW5zZm9ybVN0YXJ0IixhZnRlck1vbWVudHVtU2Nyb2xsOiJhZnRlck1vbWVudHVtU2Nyb2xsIixhZnRlck9uQ2VsbENvbnRleHRNZW51OiJhZnRlck9uQ2VsbENvbnRleHRNZW51IixhZnRlck9uQ2VsbENvcm5lckRibENsaWNrOiJhZnRlck9uQ2VsbENvcm5lckRi''@;'; + put 'put ''bENsaWNrIixhZnRlck9uQ2VsbENvcm5lck1vdXNlRG93bjoiYWZ0ZXJPbkNlbGxDb3JuZXJNb3VzZURvd24iLGFmdGVyT25DZWxsTW91c2VEb3duOiJhZnRlck9uQ2VsbE1vdXNlRG93biIsYWZ0ZXJPbkNlbGxNb3VzZU91dDoiYWZ0ZXJPbkNlbGxNb3VzZU91dCIsYWZ0ZXJPbkNlbGxNb3Vz''@;'; + put 'put ''ZU92ZXI6ImFmdGVyT25DZWxsTW91c2VPdmVyIixhZnRlck9uQ2VsbE1vdXNlVXA6ImFmdGVyT25DZWxsTW91c2VVcCIsYWZ0ZXJQYXN0ZToiYWZ0ZXJQYXN0ZSIsYWZ0ZXJQbHVnaW5zSW5pdGlhbGl6ZWQ6ImFmdGVyUGx1Z2luc0luaXRpYWxpemVkIixhZnRlclJlZG86ImFmdGVyUmVkbyIs''@;'; + put 'put ''YWZ0ZXJSZWRvU3RhY2tDaGFuZ2U6ImFmdGVyUmVkb1N0YWNrQ2hhbmdlIixhZnRlclJlZnJlc2hEaW1lbnNpb25zOiJhZnRlclJlZnJlc2hEaW1lbnNpb25zIixhZnRlclJlbW92ZUNlbGxNZXRhOiJhZnRlclJlbW92ZUNlbGxNZXRhIixhZnRlclJlbW92ZUNvbDoiYWZ0ZXJSZW1vdmVDb2wi''@;'; + put 'put ''LGFmdGVyUmVtb3ZlUm93OiJhZnRlclJlbW92ZVJvdyIsYWZ0ZXJSZW5kZXI6ImFmdGVyUmVuZGVyIixhZnRlclJlbmRlcmVyOiJhZnRlclJlbmRlcmVyIixhZnRlclJvd01vdmU6ImFmdGVyUm93TW92ZSIsYWZ0ZXJSb3dSZXNpemU6ImFmdGVyUm93UmVzaXplIixhZnRlclNjcm9sbEhvcml6''@;'; + put 'put ''b250YWxseToiYWZ0ZXJTY3JvbGxIb3Jpem9udGFsbHkiLGFmdGVyU2Nyb2xsVmVydGljYWxseToiYWZ0ZXJTY3JvbGxWZXJ0aWNhbGx5IixhZnRlclNlbGVjdGlvbjoiYWZ0ZXJTZWxlY3Rpb24iLGFmdGVyU2VsZWN0aW9uQnlQcm9wOiJhZnRlclNlbGVjdGlvbkJ5UHJvcCIsYWZ0ZXJTZWxl''@;'; + put 'put ''Y3Rpb25FbmQ6ImFmdGVyU2VsZWN0aW9uRW5kIixhZnRlclNlbGVjdGlvbkVuZEJ5UHJvcDoiYWZ0ZXJTZWxlY3Rpb25FbmRCeVByb3AiLGFmdGVyU2V0Q2VsbE1ldGE6ImFmdGVyU2V0Q2VsbE1ldGEiLGFmdGVyU2V0RGF0YUF0Q2VsbDoiYWZ0ZXJTZXREYXRhQXRDZWxsIixhZnRlclNldERh''@;'; + put 'put ''dGFBdFJvd1Byb3A6ImFmdGVyU2V0RGF0YUF0Um93UHJvcCIsYWZ0ZXJTZXRTb3VyY2VEYXRhQXRDZWxsOiJhZnRlclNldFNvdXJjZURhdGFBdENlbGwiLGFmdGVyVHJpbVJvdzoiYWZ0ZXJUcmltUm93IixhZnRlclVuZG86ImFmdGVyVW5kbyIsYWZ0ZXJVbmRvU3RhY2tDaGFuZ2U6ImFmdGVy''@;'; + put 'put ''VW5kb1N0YWNrQ2hhbmdlIixhZnRlclVuaGlkZUNvbHVtbnM6ImFmdGVyVW5oaWRlQ29sdW1ucyIsYWZ0ZXJVbmhpZGVSb3dzOiJhZnRlclVuaGlkZVJvd3MiLGFmdGVyVW5saXN0ZW46ImFmdGVyVW5saXN0ZW4iLGFmdGVyVW5tZXJnZUNlbGxzOiJhZnRlclVubWVyZ2VDZWxscyIsYWZ0ZXJV''@;'; + put 'put ''bnRyaW1Sb3c6ImFmdGVyVW50cmltUm93IixhZnRlclVwZGF0ZVNldHRpbmdzOiJhZnRlclVwZGF0ZVNldHRpbmdzIixhZnRlclZhbGlkYXRlOiJhZnRlclZhbGlkYXRlIixhZnRlclZpZXdwb3J0Q29sdW1uQ2FsY3VsYXRvck92ZXJyaWRlOiJhZnRlclZpZXdwb3J0Q29sdW1uQ2FsY3VsYXRv''@;'; + put 'put ''ck92ZXJyaWRlIixhZnRlclZpZXdwb3J0Um93Q2FsY3VsYXRvck92ZXJyaWRlOiJhZnRlclZpZXdwb3J0Um93Q2FsY3VsYXRvck92ZXJyaWRlIixhZnRlclZpZXdSZW5kZXI6ImFmdGVyVmlld1JlbmRlciIsYmVmb3JlQWRkQ2hpbGQ6ImJlZm9yZUFkZENoaWxkIixiZWZvcmVBdXRvZmlsbDoi''@;'; + put 'put ''YmVmb3JlQXV0b2ZpbGwiLGJlZm9yZUF1dG9maWxsSW5zaWRlUG9wdWxhdGU6ImJlZm9yZUF1dG9maWxsSW5zaWRlUG9wdWxhdGUiLGJlZm9yZUNlbGxBbGlnbm1lbnQ6ImJlZm9yZUNlbGxBbGlnbm1lbnQiLGJlZm9yZUNoYW5nZToiYmVmb3JlQ2hhbmdlIixiZWZvcmVDaGFuZ2VSZW5kZXI6''@;'; + put 'put ''ImJlZm9yZUNoYW5nZVJlbmRlciIsYmVmb3JlQ29sdW1uQ29sbGFwc2U6ImJlZm9yZUNvbHVtbkNvbGxhcHNlIixiZWZvcmVDb2x1bW5FeHBhbmQ6ImJlZm9yZUNvbHVtbkV4cGFuZCIsYmVmb3JlQ29sdW1uTW92ZToiYmVmb3JlQ29sdW1uTW92ZSIsYmVmb3JlQ29sdW1uUmVzaXplOiJiZWZv''@;'; + put 'put ''cmVDb2x1bW5SZXNpemUiLGJlZm9yZUNvbHVtblNvcnQ6ImJlZm9yZUNvbHVtblNvcnQiLGJlZm9yZUNvbnRleHRNZW51U2V0SXRlbXM6ImJlZm9yZUNvbnRleHRNZW51U2V0SXRlbXMiLGJlZm9yZUNvbnRleHRNZW51U2hvdzoiYmVmb3JlQ29udGV4dE1lbnVTaG93IixiZWZvcmVDb3B5OiJi''@;'; + put 'put ''ZWZvcmVDb3B5IixiZWZvcmVDcmVhdGVDb2w6ImJlZm9yZUNyZWF0ZUNvbCIsYmVmb3JlQ3JlYXRlUm93OiJiZWZvcmVDcmVhdGVSb3ciLGJlZm9yZUN1dDoiYmVmb3JlQ3V0IixiZWZvcmVEZXRhY2hDaGlsZDoiYmVmb3JlRGV0YWNoQ2hpbGQiLGJlZm9yZURyYXdCb3JkZXJzOiJiZWZvcmVE''@;'; + put 'put ''cmF3Qm9yZGVycyIsYmVmb3JlRHJvcGRvd25NZW51U2V0SXRlbXM6ImJlZm9yZURyb3Bkb3duTWVudVNldEl0ZW1zIixiZWZvcmVEcm9wZG93bk1lbnVTaG93OiJiZWZvcmVEcm9wZG93bk1lbnVTaG93IixiZWZvcmVGaWx0ZXI6ImJlZm9yZUZpbHRlciIsYmVmb3JlR2V0Q2VsbE1ldGE6ImJl''@;'; + put 'put ''Zm9yZUdldENlbGxNZXRhIixiZWZvcmVIaWRlQ29sdW1uczoiYmVmb3JlSGlkZUNvbHVtbnMiLGJlZm9yZUhpZGVSb3dzOiJiZWZvcmVIaWRlUm93cyIsYmVmb3JlSW5pdDoiYmVmb3JlSW5pdCIsYmVmb3JlSW5pdFdhbGtvbnRhYmxlOiJiZWZvcmVJbml0V2Fsa29udGFibGUiLGJlZm9yZUtl''@;'; + put 'put ''eURvd246ImJlZm9yZUtleURvd24iLGJlZm9yZUxhbmd1YWdlQ2hhbmdlOiJiZWZvcmVMYW5ndWFnZUNoYW5nZSIsYmVmb3JlTG9hZERhdGE6ImJlZm9yZUxvYWREYXRhIixiZWZvcmVNZXJnZUNlbGxzOiJiZWZvcmVNZXJnZUNlbGxzIixiZWZvcmVPbkNlbGxDb250ZXh0TWVudToiYmVmb3Jl''@;'; + put 'put ''T25DZWxsQ29udGV4dE1lbnUiLGJlZm9yZU9uQ2VsbE1vdXNlRG93bjoiYmVmb3JlT25DZWxsTW91c2VEb3duIixiZWZvcmVPbkNlbGxNb3VzZU91dDoiYmVmb3JlT25DZWxsTW91c2VPdXQiLGJlZm9yZU9uQ2VsbE1vdXNlT3ZlcjoiYmVmb3JlT25DZWxsTW91c2VPdmVyIixiZWZvcmVPbkNl''@;'; + put 'put ''bGxNb3VzZVVwOiJiZWZvcmVPbkNlbGxNb3VzZVVwIixiZWZvcmVQYXN0ZToiYmVmb3JlUGFzdGUiLGJlZm9yZVJlZG86ImJlZm9yZVJlZG8iLGJlZm9yZVJlZG9TdGFja0NoYW5nZToiYmVmb3JlUmVkb1N0YWNrQ2hhbmdlIixiZWZvcmVSZWZyZXNoRGltZW5zaW9uczoiYmVmb3JlUmVmcmVz''@;'; + put 'put ''aERpbWVuc2lvbnMiLGJlZm9yZVJlbW92ZUNlbGxDbGFzc05hbWVzOiJiZWZvcmVSZW1vdmVDZWxsQ2xhc3NOYW1lcyIsYmVmb3JlUmVtb3ZlQ2VsbE1ldGE6ImJlZm9yZVJlbW92ZUNlbGxNZXRhIixiZWZvcmVSZW1vdmVDb2w6ImJlZm9yZVJlbW92ZUNvbCIsYmVmb3JlUmVtb3ZlUm93OiJi''@;'; + put 'put ''ZWZvcmVSZW1vdmVSb3ciLGJlZm9yZVJlbmRlcjoiYmVmb3JlUmVuZGVyIixiZWZvcmVSZW5kZXJlcjoiYmVmb3JlUmVuZGVyZXIiLGJlZm9yZVJvd01vdmU6ImJlZm9yZVJvd01vdmUiLGJlZm9yZVJvd1Jlc2l6ZToiYmVmb3JlUm93UmVzaXplIixiZWZvcmVTZXRDZWxsTWV0YToiYmVmb3Jl''@;'; + put 'put ''U2V0Q2VsbE1ldGEiLGJlZm9yZVNldFJhbmdlRW5kOiJiZWZvcmVTZXRSYW5nZUVuZCIsYmVmb3JlU2V0UmFuZ2VTdGFydDoiYmVmb3JlU2V0UmFuZ2VTdGFydCIsYmVmb3JlU2V0UmFuZ2VTdGFydE9ubHk6ImJlZm9yZVNldFJhbmdlU3RhcnRPbmx5IixiZWZvcmVTdHJldGNoaW5nQ29sdW1u''@;'; + put 'put ''V2lkdGg6ImJlZm9yZVN0cmV0Y2hpbmdDb2x1bW5XaWR0aCIsYmVmb3JlVG91Y2hTY3JvbGw6ImJlZm9yZVRvdWNoU2Nyb2xsIixiZWZvcmVUcmltUm93OiJiZWZvcmVUcmltUm93IixiZWZvcmVVbmRvOiJiZWZvcmVVbmRvIixiZWZvcmVVbmRvU3RhY2tDaGFuZ2U6ImJlZm9yZVVuZG9TdGFj''@;'; + put 'put ''a0NoYW5nZSIsYmVmb3JlVW5oaWRlQ29sdW1uczoiYmVmb3JlVW5oaWRlQ29sdW1ucyIsYmVmb3JlVW5oaWRlUm93czoiYmVmb3JlVW5oaWRlUm93cyIsYmVmb3JlVW5tZXJnZUNlbGxzOiJiZWZvcmVVbm1lcmdlQ2VsbHMiLGJlZm9yZVVudHJpbVJvdzoiYmVmb3JlVW50cmltUm93IixiZWZv''@;'; + put 'put ''cmVWYWxpZGF0ZToiYmVmb3JlVmFsaWRhdGUiLGJlZm9yZVZhbHVlUmVuZGVyOiJiZWZvcmVWYWx1ZVJlbmRlciIsYmVmb3JlVmlld1JlbmRlcjoiYmVmb3JlVmlld1JlbmRlciIsY29uc3RydWN0OiJjb25zdHJ1Y3QiLGluaXQ6ImluaXQiLG1vZGlmeUF1dG9Db2x1bW5TaXplU2VlZDoibW9k''@;'; + put 'put ''aWZ5QXV0b0NvbHVtblNpemVTZWVkIixtb2RpZnlBdXRvZmlsbFJhbmdlOiJtb2RpZnlBdXRvZmlsbFJhbmdlIixtb2RpZnlDb2xIZWFkZXI6Im1vZGlmeUNvbEhlYWRlciIsbW9kaWZ5Q29sdW1uSGVhZGVySGVpZ2h0OiJtb2RpZnlDb2x1bW5IZWFkZXJIZWlnaHQiLG1vZGlmeUNvbFdpZHRo''@;'; + put 'put ''OiJtb2RpZnlDb2xXaWR0aCIsbW9kaWZ5Q29weWFibGVSYW5nZToibW9kaWZ5Q29weWFibGVSYW5nZSIsbW9kaWZ5RGF0YToibW9kaWZ5RGF0YSIsbW9kaWZ5R2V0Q2VsbENvb3JkczoibW9kaWZ5R2V0Q2VsbENvb3JkcyIsbW9kaWZ5Um93RGF0YToibW9kaWZ5Um93RGF0YSIsbW9kaWZ5Um93''@;'; + put 'put ''SGVhZGVyOiJtb2RpZnlSb3dIZWFkZXIiLG1vZGlmeVJvd0hlYWRlcldpZHRoOiJtb2RpZnlSb3dIZWFkZXJXaWR0aCIsbW9kaWZ5Um93SGVpZ2h0OiJtb2RpZnlSb3dIZWlnaHQiLG1vZGlmeVNvdXJjZURhdGE6Im1vZGlmeVNvdXJjZURhdGEiLG1vZGlmeVRyYW5zZm9ybUVuZDoibW9kaWZ5''@;'; + put 'put ''VHJhbnNmb3JtRW5kIixtb2RpZnlUcmFuc2Zvcm1TdGFydDoibW9kaWZ5VHJhbnNmb3JtU3RhcnQiLHBlcnNpc3RlbnRTdGF0ZUxvYWQ6InBlcnNpc3RlbnRTdGF0ZUxvYWQiLHBlcnNpc3RlbnRTdGF0ZVJlc2V0OiJwZXJzaXN0ZW50U3RhdGVSZXNldCIscGVyc2lzdGVudFN0YXRlU2F2ZToi''@;'; + put 'put ''cGVyc2lzdGVudFN0YXRlU2F2ZSJ9LGZlYXR1cmVzOltobyhba08sV1NlXSksRDJdLGRlY2xzOjIsdmFyczoxLGNvbnN0czpbWzMsImlkIl0sWyJjb250YWluZXIiLCIiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oaCx2KXsxJmgmJkNyKDAsImRpdiIsMCwxKSwyJmgmJlR0KCJpZCIsdi5ob3RJZCl9''@;'; + put 'put ''LGVuY2Fwc3VsYXRpb246Mn0pLGR9KSgpLGg2ZT0oKCk9PntjbGFzcyBke3N0YXRpYyBmb3JSb290KCl7cmV0dXJue25nTW9kdWxlOmQscHJvdmlkZXJzOltrT119fX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVtb2Q9Y28oe3R5cGU6''@;'; + put 'put ''ZH0pLGQuXHUwMjc1aW5qPWIwKHt9KSxkLnZlcnNpb249IjEyLjEuMiIsZH0pKCk7ZnVuY3Rpb24gdWV0KGQsZyl7MSZkJiYocnQoMCwic3BhbiIsNiksWXQoMSwiIExvYWRpbmcuLi4gIiksbHQoKSl9ZnVuY3Rpb24gY2V0KGQsZyl7MSZkJiYocnQoMCwiZGl2IikoMSwiaDMiKSxZdCgyLCJM''@;'; + put 'put ''b2FkaW5nIHN1Ym1pdHRlZCB0YWJsZSIpLGx0KCkoKSl9ZnVuY3Rpb24gZmV0KGQsZyl7aWYoMSZkJiYocnQoMCwiZGl2Iiw0KSxybigxLHVldCwyLDAsInNwYW4iLDUpLHJuKDIsY2V0LDMsMCwiZGl2IiwzKSxsdCgpKSwyJmQpe2NvbnN0IGg9SnQoKTt1dCgxKSxUdCgibmdJZiIsIWgubG9h''@;'; + put 'put ''ZGVkKSx1dCgxKSxUdCgibmdJZiIsIWgubG9hZGVkKX19Y29uc3QgaGV0PWZ1bmN0aW9uKGQsZyl7cmV0dXJue3JlamVjdGVkOmQsYWNjZXB0ZWQ6Z319O2Z1bmN0aW9uIGRldChkLGcpe2lmKDEmZCl7Y29uc3QgaD1iaSgpO3J0KDAsImRpdiIpKDEsImRpdiIsNykoMiwiZGl2Iiw4KSgzLCJo''@;'; + put 'put ''NCIsOSksWXQoNCwiU3RhZ2VkIERhdGEiKSxsdCgpKCkoKSxydCg1LCJkaXYiLDEwKSg2LCJkaXYiLDExKSg3LCJkaXYiLDEyKSg4LCJkaXYiLDgpLFl0KDksIkJhc2ljIFN1Ym1pdHRlZCBEZXRhaWxzIiksbHQoKSgpLHJ0KDEwLCJkaXYiKSgxMSwic3BhbiIpLFl0KDEyLCJUYWJsZSBJZDoi''@;'; + put 'put ''KSxsdCgpLHJ0KDEzLCJzdHJvbmciKSgxNCwic3BhbiIpLFl0KDE1KSxsdCgpKCkoKSxydCgxNiwiZGl2IikoMTcsInNwYW4iKSxZdCgxOCwiQmFzZSBUYWJsZToiKSxsdCgpLHJ0KDE5LCJhIiwxMyksR24oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBpdChoKSxhKEp0KCkudmlld2VyVGFi''@;'; + put 'put ''bGVTY3JlZW4oKSl9KSxZdCgyMCksbHQoKSgpLHJ0KDIxLCJkaXYiKSgyMiwic3BhbiIpLFl0KDIzLCJTdWJtaXQgRGF0ZToiKSxsdCgpLHJ0KDI0LCJzcGFuIiwxNCksWXQoMjUpLGx0KCkoKSxydCgyNiwiZGl2IikoMjcsInNwYW4iKSxZdCgyOCwiUmV2aWV3IFN0YXR1czoiKSxsdCgpLHJ0''@;'; + put 'put ''KDI5LCJzcGFuIiwxNSksWXQoMzApLGx0KCkoKSgpLHJ0KDMxLCJkaXYiLDE2KSgzMiwiZGl2IiwxMikoMzMsImRpdiIsOCksWXQoMzQsIkFjdGlvbnMiKSxsdCgpKCkscnQoMzUsImRpdiIsMTcpKDM2LCJkaXYiLDE4KSgzNywiYnV0dG9uIiwxOSksR24oImNsaWNrIixmdW5jdGlvbigpe3Jl''@;'; + put 'put ''dHVybiBpdChoKSxhKEp0KCkudmlld2VyVGFibGVTY3JlZW4oKSl9KSxZdCgzOCwiIEdvIHRvIGJhc2UgdGFibGUgc2NyZWVuICIpLGx0KCkscnQoMzksImJ1dHRvbiIsMjApLEduKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gaXQoaCksYShKdCgpLmFwcHJvdmVUYWJsZVNjcmVlbigpKX0p''@;'; + put 'put ''LFl0KDQwLCIgR28gdG8gYXBwcm92YWxzIHNjcmVlbiAiKSxsdCgpLHJ0KDQxLCJidXR0b24iLDIxKSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIGl0KGgpLGEoSnQoKS5nb0JhY2soKSl9KSxZdCg0MiwiIEdvIGJhY2sgdG8gZWRpdG9yICIpLGx0KCkscnQoNDMsImJ1dHRvbiIsMjIp''@;'; + put 'put ''LEduKCJjbGljayIsZnVuY3Rpb24oKXtpdChoKTtjb25zdCB5PUp0KCk7cmV0dXJuIGEoeS5kb3dubG9hZChudWxsPT15LnRhYmxlRGV0YWlscz9udWxsOnkudGFibGVEZXRhaWxzLlRBQkxFX0lEKSl9KSxDcig0NCwiY2xyLWljb24iLDIzKSxsdCgpKCkoKSgpKCkscnQoNDUsImRpdiIsMjQp''@;'; + put 'put ''LENyKDQ2LCJob3QtdGFibGUiLDI1KSxsdCgpLENyKDQ3LCJkaXYiLDI2KSxsdCgpfWlmKDImZCl7Y29uc3QgaD1KdCgpO3V0KDE1KSxKaSgiICIsbnVsbD09aC50YWJsZURldGFpbHM/bnVsbDpoLnRhYmxlRGV0YWlscy5UQUJMRV9JRCwiIiksdXQoNSksSmkoIiAiLG51bGw9PWgudGFibGVE''@;'; + put 'put ''ZXRhaWxzP251bGw6aC50YWJsZURldGFpbHMuQkFTRV9UQUJMRSwiICIpLHV0KDUpLEppKCIgIixudWxsPT1oLnRhYmxlRGV0YWlscz9udWxsOmgudGFibGVEZXRhaWxzLlNVQk1JVFRFRF9PTl9EVFRNLCIgIiksdXQoNCksVHQoIm5nQ2xhc3MiLFozKDEzLGhldCwiUkVKRUNURUQiPT09KG51''@;'; + put 'put ''bGw9PWgudGFibGVEZXRhaWxzP251bGw6aC50YWJsZURldGFpbHMuUkVWSUVXX1NUQVRVU19JRCksIkFQUFJPVkVEIj09PShudWxsPT1oLnRhYmxlRGV0YWlscz9udWxsOmgudGFibGVEZXRhaWxzLlJFVklFV19TVEFUVVNfSUQpKSksdXQoMSksSmkoIiAiLG51bGw9PWgudGFibGVEZXRhaWxz''@;'; + put 'put ''P251bGw6aC50YWJsZURldGFpbHMuUkVWSUVXX1NUQVRVU19JRCwiICIpLHV0KDkpLFR0KCJkaXNhYmxlZCIsIkFQUFJPVkVEIj09PShudWxsPT1oLnRhYmxlRGV0YWlscz9udWxsOmgudGFibGVEZXRhaWxzLlJFVklFV19TVEFUVVNfSUQpfHwiUkVKRUNURUQiPT09KG51bGw9PWgudGFibGVE''@;'; + put 'put ''ZXRhaWxzP251bGw6aC50YWJsZURldGFpbHMuUkVWSUVXX1NUQVRVU19JRCkpLHV0KDcpLFR0KCJkYXRhIixoLmhvdFRhYmxlLmRhdGEpKCJjb2xIZWFkZXJzIixoLmhvdFRhYmxlLmNvbEhlYWRlcnMpKCJjb2x1bW5zIixoLmhvdFRhYmxlLmNvbHVtbnMpKCJtYXhSb3dzIixoLmhvdFRhYmxl''@;'; + put 'put ''Lm1heFJvd3MpKCJoZWlnaHQiLGguaG90VGFibGUuaGVpZ2h0KSgibGljZW5zZUtleSIsaC5ob3RUYWJsZS5saWNlbnNlS2V5KSgiY2VsbHMiLGguaG90VGFibGUuY2VsbHMpfX1jb25zdCBwZXQ9W3twYXRoOiI6dGFibGVJZCIsY29tcG9uZW50OigoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3Io''@;'; + put 'put ''aCx2LHksQyxJLGope3RoaXMuYXBwU2VydmljZT1oLHRoaXMuc2FzU3RvcmVTZXJ2aWNlPXYsdGhpcy5ldmVudFNlcnZpY2U9eSx0aGlzLnJvdXRlPUMsdGhpcy5yb3V0ZXI9SSx0aGlzLnNhc1NlcnZpY2U9aix0aGlzLmxvYWRlZD0hMSx0aGlzLmhvdFRhYmxlPXtkYXRhOltdLGNvbEhlYWRl''@;'; + put 'put ''cnM6W10sY29sdW1uczpbXSxoZWlnaHQ6NTAwLHNldHRpbmdzOnt9LGxpY2Vuc2VLZXk6dm9pZCAwLG1heFJvd3M6dGhpcy5hcHBTZXJ2aWNlLmRlbW9MaW1pdHMucm93c19hbGxvd2VkfHwxLzB9fXN1Ym1pdHRlZFRhYmxlU2NyZWVuKCl7dGhpcy5yb3V0ZS5uYXZpZ2F0ZUJ5VXJsKCIvc3Rh''@;'; + put 'put ''Z2UvIit0aGlzLnRhYmxlX2lkKX1hcHByb3ZlVGFibGVTY3JlZW4oKXt0aGlzLnJvdXRlLm5hdmlnYXRlQnlVcmwoIi9hcHByb3ZlL2FwcHJvdmVEZXQvIit0aGlzLnRhYmxlX2lkKX12aWV3ZXJUYWJsZVNjcmVlbigpe3RoaXMucm91dGUubmF2aWdhdGVCeVVybCgiL3ZpZXcvZGF0YS8iK3Ro''@;'; + put 'put ''aXMudGFibGVEZXRhaWxzLkJBU0VfVEFCTEUpfWdvQmFjaygpe3RoaXMucm91dGUubmF2aWdhdGVCeVVybCgiL2VkaXRvci8iK3RoaXMudGFibGVEZXRhaWxzLkJBU0VfVEFCTEUpfWRvd25sb2FkKGgpe2xldCB2PXRoaXMuc2FzU2VydmljZS5nZXRTYXNqc0NvbmZpZygpLHk9di5zZXJ2ZXJV''@;'; + put 'put ''cmwsQz12LmFwcExvYyxJPXRoaXMuc2FzU2VydmljZS5nZXRFeGVjdXRpb25QYXRoKCk7d2luZG93Lm9wZW4oeStJKyIvP19wcm9ncmFtPSIrQysiL3NlcnZpY2VzL2F1ZGl0b3JzL2dldGF1ZGl0ZmlsZSZ0YWJsZT0iK2gpfW5nT25Jbml0KCl7cmV0dXJuIG5vKHRoaXMsdm9pZCAwLHZvaWQg''@;'; + put 'put ''MCxmdW5jdGlvbiooKXtpZih0aGlzLmFwcFNlcnZpY2UuaG90X2xpY2Vuc2Vfa2V5LnN1YnNjcmliZShoPT57dGhpcy5ob3RUYWJsZS5saWNlbnNlS2V5PWh9KSx2b2lkIDAhPT10aGlzLnJvdXRlci5zbmFwc2hvdC5wYXJhbXMudGFibGVJZCl7dGhpcy50YWJsZV9pZD10aGlzLnJvdXRlci5z''@;'; + put 'put ''bmFwc2hvdC5wYXJhbXMudGFibGVJZDt0cnl7bGV0IGg9eWllbGQgdGhpcy5zYXNTdG9yZVNlcnZpY2UuZ2V0Q2hhbmdlSW5mbyh0aGlzLnRhYmxlX2lkKTtpZighaHx8IWguanNwYXJhbXMpdGhyb3cgbmV3IEVycm9yKCJqc3BhcmFtcyBwcm9wZXJ0eSBpcyBtaXNzaW5nIGZyb20gcmVzcG9u''@;'; + put 'put ''c2UuIik7dGhpcy50YWJsZURldGFpbHM9aC5qc3BhcmFtc1swXX1jYXRjaChoKXtsZXQgdj17fTtoLk1FU1NBR0U/dj1oOnYuTUVTU0FHRT1oLHRoaXMuZXZlbnRTZXJ2aWNlLmNhdGNoUmVzcG9uc2VFcnJvcigicHVibGljL2dldGNoYW5nZWluZm8iLHYpfXRyeXtsZXQgaD15aWVsZCB0aGlz''@;'; + put 'put ''LnNhc1N0b3JlU2VydmljZS5vcGVuVGFibGUodGhpcy50YWJsZV9pZCk7aWYoIWh8fCFoLnN0YWdldGFibGUpdGhyb3cgbmV3IEVycm9yKCJTdGFnZXRhYmxlIHByb3BlcnR5IGlzIG1pc3NpbmcgZnJvbSByZXNwb25zZS4iKTtsZXQgdj1oLnN0YWdldGFibGVbMF0seT1bXSxDPVtdO2Zvcihs''@;'; + put 'put ''ZXQgaiBpbiB2KXYmJnkucHVzaChqKTtmb3IobGV0IGo9MDtqPHkubGVuZ3RoO2orKylDLnB1c2goe2RhdGE6eVtqXX0pO2xldCBJPWZ1bmN0aW9uKCl7cmV0dXJue3JlYWRPbmx5OiEwfX07dGhpcy5ob3RUYWJsZS5kYXRhPWguc3RhZ2V0YWJsZSx0aGlzLmhvdFRhYmxlLmNvbEhlYWRlcnM9''@;'; + put 'put ''eSx0aGlzLmhvdFRhYmxlLmNvbHVtbnM9Qyx0aGlzLmhvdFRhYmxlLmNlbGxzPUksdGhpcy5sb2FkZWQ9ITAsdGhpcy5zZXRGb2N1cygpfWNhdGNoKGgpe2xldCB2PXt9O2guTUVTU0FHRXx8KHYuTUVTU0FHRT1oKSx0aGlzLmV2ZW50U2VydmljZS5jYXRjaFJlc3BvbnNlRXJyb3IoImF1ZGl0''@;'; + put 'put ''b3JzL2dldHN0YWdldGFibGUiLHYpLHRoaXMubG9hZGVkPSExfX19KX1zZXRGb2N1cygpe3NldFRpbWVvdXQoKCk9PntsZXQgaD13aW5kb3cuZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFwcHJvdmFsLWJ0biIpO2gmJmguZm9jdXMoKX0sMjAwKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0''@;'; + put 'put ''aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoS3QoUjcpLEt0KGtnKSxLdChtdSksS3QoWmwpLEt0KFB1KSxLdChnMikpfSxkLlx1MDI3NWNtcD1UaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJhcHAtc3RhZ2UiXV0saG9zdEF0dHJzOlsxLCJjb250ZW50LWNvbnRhaW5lciJdLGRlY2xzOjQsdmFyczoy''@;'; + put 'put ''LGNvbnN0czpbWzEsImNvbnRlbnQtYXJlYSJdLFsxLCJjbHItY29sLW1kLTEyIiwiY2FyZCJdLFsiY2xhc3MiLCJoLTgwdmggZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgZmxleC1jb2x1bW4gYWxpZ24taXRlbXMtY2VudGVyIiw0LCJuZ0lmIl0sWzQsIm5nSWYiXSxbMSwiaC04MHZo''@;'; + put 'put ''IiwiZC1mbGV4IiwianVzdGlmeS1jb250ZW50LWNlbnRlciIsImZsZXgtY29sdW1uIiwiYWxpZ24taXRlbXMtY2VudGVyIl0sWyJjbGFzcyIsInNwaW5uZXIiLDQsIm5nSWYiXSxbMSwic3Bpbm5lciJdLFsibmctaWYiLCJsb2FkZWQiLDEsImNhcmQtaGVhZGVyIl0sWzEsImNhcmQtdGl0bGUi''@;'; + put 'put ''LCJ0ZXh0LWNlbnRlciJdLFsxLCJtdC0wIl0sWyJuZy1pZiIsImxvYWRlZCIsMSwiY2xyLXJvdyJdLFsxLCJjYXJkLWJsb2NrIiwiY2xyLWNvbC1tZC02Il0sWzEsImNhcmQtaGVhZGVyIiwicHktNSJdLFsxLCJiYXNlVGFibGVMaW5rIiwzLCJjbGljayJdLFsxLCJtdC0xMCJdLFsxLCJtdC0x''@;'; + put 'put ''MCIsMywibmdDbGFzcyJdLFsxLCJjbHItY29sLW1kLTYiLCJjYXJkLWJsb2NrIl0sWzEsIm10LTIwIl0sWzEsInJvdyJdLFsxLCJidG4iLCJidG4tc20iLCJidG4tb3V0bGluZSIsInRleHQtY2VudGVyIiwibXQtMjAiLDMsImNsaWNrIl0sWyJpZCIsImFwcHJvdmFsLWJ0biIsMSwiYnRuIiwi''@;'; + put 'put ''YnRuLXNtIiwiYnRuLXN1Y2Nlc3Mtb3V0bGluZSIsInRleHQtY2VudGVyIiwibXQtMjAiLDMsImRpc2FibGVkIiwiY2xpY2siXSxbMSwiYnRuIiwiYnRuLXNtIiwiYnRuLWluZm8tb3V0bGluZSIsInRleHQtY2VudGVyIiwibXQtMjAiLDMsImNsaWNrIl0sWzEsImJ0biIsImJ0bi1zbSIsImJ0''@;'; + put 'put ''bi1zdWNjZXNzIiwidGV4dC1jZW50ZXIiLCJtdC0yMCIsIm1pbi13LTAiLDMsImNsaWNrIl0sWyJzaGFwZSIsImRvd25sb2FkIl0sWzEsImNhcmQtYmxvY2siXSxbImhvdElkIiwiaG90SW5zdGFuY2UiLCJpZCIsImhvdFRhYmxlIiwic3RyZXRjaEgiLCJhbGwiLDMsImRhdGEiLCJjb2xIZWFk''@;'; + put 'put ''ZXJzIiwiY29sdW1ucyIsIm1heFJvd3MiLCJoZWlnaHQiLCJsaWNlbnNlS2V5IiwiY2VsbHMiXSxbMSwiY2FyZC1mb290ZXIiLCJkLWZsZXgiLCJqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGgsdil7MSZoJiYocnQoMCwiZGl2IiwwKSgxLCJkaXYiLDEpLHJu''@;'; + put 'put ''KDIsZmV0LDMsMiwiZGl2IiwyKSxybigzLGRldCw0OCwxNiwiZGl2IiwzKSxsdCgpKCkpLDImaCYmKHV0KDIpLFR0KCJuZ0lmIiwhdi5sb2FkZWQpLHV0KDEpLFR0KCJuZ0lmIix2LmxvYWRlZCkpfSxkZXBlbmRlbmNpZXM6W2xjLE5vLHdsLEF0ZV0sc3R5bGVzOlsiLnJlamVjdGVkW19uZ2Nv''@;'; + put 'put ''bnRlbnQtJUNPTVAlXXtjb2xvcjojZjgzMTI2O2ZvbnQtd2VpZ2h0OjcwMH0uYWNjZXB0ZWRbX25nY29udGVudC0lQ09NUCVde2NvbG9yOiMzZmM0MjQ7Zm9udC13ZWlnaHQ6NzAwfS5iYXNlVGFibGVMaW5rW19uZ2NvbnRlbnQtJUNPTVAlXXtjdXJzb3I6cG9pbnRlcjttYXJnaW4tdG9wOjEw''@;'; + put 'put ''cHg7Y29sb3I6IzAwN2NiYn0iXX0pLGR9KSgpfV07bGV0IGdldD0oKCk9PntjbGFzcyBke31yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVtb2Q9Y28oe3R5cGU6ZH0pLGQuXHUwMjc1aW5qPWIwKHtpbXBvcnRzOltiYSx0TyxYaC5mb3JD''@;'; + put 'put ''aGlsZChwZXQpLGg2ZS5mb3JSb290KCldfSksZH0pKCk7ZnVuY3Rpb24gZDZlKGQpe3JldHVybihkNmU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZyl7cmV0dXJuIHR5cGVvZiBnfTpmdW5jdGlvbihnKXtyZXR1''@;'; + put 'put ''cm4gZyYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZy5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZyE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGd9KShkKX1mdW5jdGlvbiBtZXQoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5u''@;'; + put 'put ''b3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX1mdW5jdGlvbiBZU2UoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITAp''@;'; + put 'put ''LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX1mdW5jdGlvbiBNOCgpe3JldHVybiBNOD0idW5kZWZpbmVkIiE9dHlwZW9mIFJlZmxlY3QmJlJlZmxlY3QuZ2V0P1JlZmxlY3QuZ2V0LmJpbmQoKTpmdW5jdGlvbihnLGgsdil7dmFyIHk9QWV0KGcsaCk7aWYoeSl7dmFyIEM9T2Jq''@;'; + put 'put ''ZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih5LGgpO3JldHVybiBDLmdldD9DLmdldC5jYWxsKGFyZ3VtZW50cy5sZW5ndGg8Mz9nOnYpOkMudmFsdWV9fSxNOC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gQWV0KGQsZyl7Zm9yKDshT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Q''@;'; + put 'put ''cm9wZXJ0eS5jYWxsKGQsZykmJm51bGwhPT0oZD1BNChkKSk7KTtyZXR1cm4gZH1mdW5jdGlvbiBwNmUoZCxnKXtyZXR1cm4ocDZlPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHYseSl7cmV0dXJuIHYuX19wcm90b19fPXksdn0p''@;'; + put 'put ''KGQsZyl9ZnVuY3Rpb24gYmV0KGQsZyl7aWYoZyYmKCJvYmplY3QiPT09ZDZlKGcpfHwiZnVuY3Rpb24iPT10eXBlb2YgZykpcmV0dXJuIGc7aWYodm9pZCAwIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJEZXJpdmVkIGNvbnN0cnVjdG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0IG9yIHVu''@;'; + put 'put ''ZGVmaW5lZCIpO3JldHVybiBmdW5jdGlvbiBfZXQoZCl7aWYodm9pZCAwPT09ZCl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3JldHVybiBkfShkKX1mdW5jdGlvbiBBNChkKXtyZXR1''@;'; + put 'put ''cm4oQTQ9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24oaCl7cmV0dXJuIGguX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YoaCl9KShkKX12YXIgVVNlPSJoYW5kc29udGFibGVFZGl0b3IiLGc2ZT1mdW5jdGlvbihkKXsh''@;'; + put 'put ''ZnVuY3Rpb24geWV0KGQsZyl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGcmJm51bGwhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uIik7ZC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShnJiZnLnByb3RvdHlw''@;'; + put 'put ''ZSx7Y29uc3RydWN0b3I6e3ZhbHVlOmQsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGcmJnA2ZShkLGcpfShoLGQpO3ZhciBnPWZ1bmN0aW9uIHdldChkKXt2YXIgZz1mdW5jdGlvbiBDZXQo''@;'; + put 'put ''KXtpZigidW5kZWZpbmVkIj09dHlwZW9mIFJlZmxlY3R8fCFSZWZsZWN0LmNvbnN0cnVjdHx8UmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT10eXBlb2YgUHJveHkpcmV0dXJuITA7dHJ5e3JldHVybiBCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwo''@;'; + put 'put ''UmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSxmdW5jdGlvbigpe30pKSwhMH1jYXRjaChkKXtyZXR1cm4hMX19KCk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHksdj1BNChkKTtpZihnKXt2YXIgQz1BNCh0aGlzKS5jb25zdHJ1Y3Rvcjt5PVJlZmxlY3QuY29uc3RydWN0KHYsYXJndW1lbnRz''@;'; + put 'put ''LEMpfWVsc2UgeT12LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gYmV0KHRoaXMseSl9fShoKTtmdW5jdGlvbiBoKCl7cmV0dXJuIG1ldCh0aGlzLGgpLGcuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiBmdW5jdGlvbiB2ZXQoZCxnLGgpe2cmJllTZShkLnByb3RvdHlwZSxnKSxo''@;'; + put 'put ''JiZZU2UoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oaCxbe2tleToib3BlbiIsdmFsdWU6ZnVuY3Rpb24oKXtNOChBNChoLnByb3RvdHlwZSksIm9wZW4iLHRoaXMpLmNhbGwodGhpcyksdGhpcy5odEVkaXRvciYmdGhpcy5odEVkaXRv''@;'; + put 'put ''ci5kZXN0cm95KCksIm5vbmUiPT09dGhpcy5odENvbnRhaW5lci5zdHlsZS5kaXNwbGF5JiYodGhpcy5odENvbnRhaW5lci5zdHlsZS5kaXNwbGF5PSIiKSx0aGlzLmh0RWRpdG9yPW5ldyB0aGlzLmhvdC5jb25zdHJ1Y3Rvcih0aGlzLmh0Q29udGFpbmVyLHRoaXMuaHRPcHRpb25zKSx0aGlz''@;'; + put 'put ''Lmh0RWRpdG9yLmluaXQoKSx0aGlzLmh0RWRpdG9yLnJvb3RFbGVtZW50LnN0eWxlLmRpc3BsYXk9IiIsdGhpcy5jZWxsUHJvcGVydGllcy5zdHJpY3Q/dGhpcy5odEVkaXRvci5zZWxlY3RDZWxsKDAsMCk6dGhpcy5odEVkaXRvci5kZXNlbGVjdENlbGwoKSxWWih0aGlzLlRFWFRBUkVBLDAs''@;'; + put 'put ''dGhpcy5URVhUQVJFQS52YWx1ZS5sZW5ndGgpLHRoaXMucmVmcmVzaERpbWVuc2lvbnMoKX19LHtrZXk6ImNsb3NlIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuaHRFZGl0b3ImJih0aGlzLmh0RWRpdG9yLnJvb3RFbGVtZW50LnN0eWxlLmRpc3BsYXk9Im5vbmUiKSx0aGlzLnJlbW92ZUhvb2tz''@;'; + put 'put ''QnlLZXkoImJlZm9yZUtleURvd24iKSxNOChBNChoLnByb3RvdHlwZSksImNsb3NlIix0aGlzKS5jYWxsKHRoaXMpfX0se2tleToicHJlcGFyZSIsdmFsdWU6ZnVuY3Rpb24oeSxDLEksaix1ZSxfZSl7TTgoQTQoaC5wcm90b3R5cGUpLCJwcmVwYXJlIix0aGlzKS5jYWxsKHRoaXMseSxDLEks''@;'; + put 'put ''aix1ZSxfZSk7dmFyIEJlPXRoaXMsTmU9e3N0YXJ0Um93czowLHN0YXJ0Q29sczowLG1pblJvd3M6MCxtaW5Db2xzOjAsY2xhc3NOYW1lOiJsaXN0Ym94Iixjb3B5UGFzdGU6ITEsYXV0b0NvbHVtblNpemU6ITEsYXV0b1Jvd1NpemU6ITEscmVhZE9ubHk6ITAsZmlsbEhhbmRsZTohMSxhdXRv''@;'; + put 'put ''V3JhcENvbDohMSxhdXRvV3JhcFJvdzohMSxhZnRlck9uQ2VsbE1vdXNlRG93bjpmdW5jdGlvbihkdCxPdCl7dmFyICR0PXRoaXMuZ2V0U291cmNlRGF0YShPdC5yb3csT3QuY29sKTt2b2lkIDAhPT0kdCYmQmUuc2V0VmFsdWUoJHQpLEJlLmluc3RhbmNlLmRlc3Ryb3lFZGl0b3IoKX0scHJl''@;'; + put 'put ''dmVudFdoZWVsOiEwLGxheW91dERpcmVjdGlvbjp0aGlzLmhvdC5pc1J0bCgpPyJydGwiOiJsdHIifTt0aGlzLmNlbGxQcm9wZXJ0aWVzLmhhbmRzb250YWJsZSYmSTEoTmUsX2UuaGFuZHNvbnRhYmxlKSx0aGlzLmh0T3B0aW9ucz1OZX19LHtrZXk6ImJlZ2luRWRpdGluZyIsdmFsdWU6ZnVu''@;'; + put 'put ''Y3Rpb24oeSxDKXt2YXIgST10aGlzLmhvdC5nZXRTZXR0aW5ncygpLm9uQmVnaW5FZGl0aW5nO0kmJiExPT09SSgpfHxNOChBNChoLnByb3RvdHlwZSksImJlZ2luRWRpdGluZyIsdGhpcykuY2FsbCh0aGlzLHksQyl9fSx7a2V5OiJjcmVhdGVFbGVtZW50cyIsdmFsdWU6ZnVuY3Rpb24oKXtN''@;'; + put 'put ''OChBNChoLnByb3RvdHlwZSksImNyZWF0ZUVsZW1lbnRzIix0aGlzKS5jYWxsKHRoaXMpO3ZhciB5PXRoaXMuaG90LnJvb3REb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTt5LmNsYXNzTmFtZT0iaGFuZHNvbnRhYmxlRWRpdG9yIix0aGlzLlRFWFRBUkVBX1BBUkVOVC5hcHBlbmRDaGls''@;'; + put 'put ''ZCh5KSx0aGlzLmh0Q29udGFpbmVyPXksdGhpcy5hc3NpZ25Ib29rcygpfX0se2tleToiZmluaXNoRWRpdGluZyIsdmFsdWU6ZnVuY3Rpb24oeSxDLEkpe2lmKHRoaXMuaHRFZGl0b3ImJnRoaXMuaHRFZGl0b3IuaXNMaXN0ZW5pbmcoKSYmdGhpcy5ob3QubGlzdGVuKCksdGhpcy5odEVkaXRv''@;'; + put 'put ''ciYmdGhpcy5odEVkaXRvci5nZXRTZWxlY3RlZExhc3QoKSl7dmFyIGo9dGhpcy5odEVkaXRvci5nZXRJbnN0YW5jZSgpLmdldFZhbHVlKCk7dm9pZCAwIT09aiYmdGhpcy5zZXRWYWx1ZShqKX1NOChBNChoLnByb3RvdHlwZSksImZpbmlzaEVkaXRpbmciLHRoaXMpLmNhbGwodGhpcyx5LEMs''@;'; + put 'put ''SSl9fSx7a2V5OiJhc3NpZ25Ib29rcyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzO3RoaXMuaG90LmFkZEhvb2soImFmdGVyRGVzdHJveSIsZnVuY3Rpb24oKXt5Lmh0RWRpdG9yJiZ5Lmh0RWRpdG9yLmRlc3Ryb3koKX0pfX0se2tleToicmVnaXN0ZXJTaG9ydGN1dHMiLHZhbHVlOmZ1''@;'; + put 'put ''bmN0aW9uKCl7dmFyIHk9dGhpcyxJPXRoaXMuaG90LmdldFNob3J0Y3V0TWFuYWdlcigpLmdldENvbnRleHQoImVkaXRvciIpO004KEE0KGgucHJvdG90eXBlKSwicmVnaXN0ZXJTaG9ydGN1dHMiLHRoaXMpLmNhbGwodGhpcyk7dmFyIHVlPWZ1bmN0aW9uKEJlLE5lKXt2YXIgS2U9eS5odEVk''@;'; + put 'put ''aXRvci5nZXRJbnN0YW5jZSgpO2lmKHZvaWQgMCE9PUJlJiYoQmU8MHx8S2UuZmxpcHBlZCYmQmU+S2UuY291bnRSb3dzKCktMT9LZS5kZXNlbGVjdENlbGwoKTpLZS5zZWxlY3RDZWxsKEJlLDApLEtlLmdldERhdGEoKS5sZW5ndGgpKXJldHVybiBOZS5wcmV2ZW50RGVmYXVsdCgpLF84KE5l''@;'; + put 'put ''KSx5LmhvdC5saXN0ZW4oKSx5LlRFWFRBUkVBLmZvY3VzKCksITF9O0kuYWRkU2hvcnRjdXRzKFt7a2V5czpbWyJBcnJvd1VwIl1dLGNhbGxiYWNrOmZ1bmN0aW9uKEJlKXt2YXIgS2UsZHQsTmU9eS5odEVkaXRvci5nZXRJbnN0YW5jZSgpO3JldHVybiFOZS5nZXRTZWxlY3RlZExhc3QoKSYm''@;'; + put 'put ''TmUuZmxpcHBlZD9LZT1OZS5jb3VudFJvd3MoKS0xOk5lLmdldFNlbGVjdGVkTGFzdCgpJiYoTmUuZmxpcHBlZD8oZHQ9TmUuZ2V0U2VsZWN0ZWRMYXN0KClbMF0sS2U9TWF0aC5tYXgoMCxkdC0xKSk6S2U9KGR0PU5lLmdldFNlbGVjdGVkTGFzdCgpWzBdKS0xKSx1ZShLZSxCZSl9LHByZXZl''@;'; + put 'put ''bnREZWZhdWx0OiExfSx7a2V5czpbWyJBcnJvd0Rvd24iXV0sY2FsbGJhY2s6ZnVuY3Rpb24oQmUpe3ZhciBLZSxkdCxOZT15Lmh0RWRpdG9yLmdldEluc3RhbmNlKCk7aWYoTmUuZ2V0U2VsZWN0ZWRMYXN0KCl8fE5lLmZsaXBwZWQpe2lmKE5lLmdldFNlbGVjdGVkTGFzdCgpKWlmKE5lLmZs''@;'; + put 'put ''aXBwZWQpS2U9TmUuZ2V0U2VsZWN0ZWRMYXN0KClbMF0rMTtlbHNlIGlmKCFOZS5mbGlwcGVkKXt2YXIgT3Q9TmUuY291bnRSb3dzKCktMTtkdD1OZS5nZXRTZWxlY3RlZExhc3QoKVswXSxLZT1NYXRoLm1pbihPdCxkdCsxKX19ZWxzZSBLZT0wO3JldHVybiB1ZShLZSxCZSl9LHByZXZlbnRE''@;'; + put 'put ''ZWZhdWx0OiExfV0se2dyb3VwOlVTZSxyZWxhdGl2ZVRvR3JvdXA6bGVlLHBvc2l0aW9uOiJiZWZvcmUifSl9fSx7a2V5OiJ1bnJlZ2lzdGVyU2hvcnRjdXRzIix2YWx1ZTpmdW5jdGlvbigpe004KEE0KGgucHJvdG90eXBlKSwidW5yZWdpc3RlclNob3J0Y3V0cyIsdGhpcykuY2FsbCh0aGlz''@;'; + put 'put ''KSx0aGlzLmhvdC5nZXRTaG9ydGN1dE1hbmFnZXIoKS5nZXRDb250ZXh0KCJlZGl0b3IiKS5yZW1vdmVTaG9ydGN1dHNCeUdyb3VwKFVTZSl9fV0sW3trZXk6IkVESVRPUl9UWVBFIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4iaGFuZHNvbnRhYmxlIn19XSksaH0oSFMpO2Z1bmN0aW9uIG02ZShk''@;'; + put 'put ''KXtyZXR1cm4obTZlPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGcpe3JldHVybiB0eXBlb2YgZ306ZnVuY3Rpb24oZyl7cmV0dXJuIGcmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmcuY29uc3RydWN0b3I9''@;'; + put 'put ''PT1TeW1ib2wmJmchPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBnfSkoZCl9ZnVuY3Rpb24gUVNlKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVl''@;'; + put 'put ''ImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19ZnVuY3Rpb24gTlMoKXtyZXR1cm4gTlM9InVuZGVmaW5lZCIhPXR5cGVvZiBSZWZsZWN0JiZSZWZsZWN0LmdldD9SZWZsZWN0LmdldC5iaW5kKCk6ZnVuY3Rpb24oZyxoLHYpe3ZhciB5PXhl''@;'; + put 'put ''dChnLGgpO2lmKHkpe3ZhciBDPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoeSxoKTtyZXR1cm4gQy5nZXQ/Qy5nZXQuY2FsbChhcmd1bWVudHMubGVuZ3RoPDM/Zzp2KTpDLnZhbHVlfX0sTlMuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIHhldChkLGcpe2Zvcig7IU9i''@;'; + put 'put ''amVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChkLGcpJiZudWxsIT09KGQ9VHYoZCkpOyk7cmV0dXJuIGR9ZnVuY3Rpb24gdjZlKGQsZyl7cmV0dXJuKHY2ZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbih2LHkpe3Jl''@;'; + put 'put ''dHVybiB2Ll9fcHJvdG9fXz15LHZ9KShkLGcpfWZ1bmN0aW9uIERldChkLGcpe2lmKGcmJigib2JqZWN0Ij09PW02ZShnKXx8ImZ1bmN0aW9uIj09dHlwZW9mIGcpKXJldHVybiBnO2lmKHZvaWQgMCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9u''@;'; + put 'put ''bHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWQiKTtyZXR1cm4gQTZlKGQpfWZ1bmN0aW9uIEE2ZShkKXtpZih2b2lkIDA9PT1kKXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcigidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkIik7cmV0''@;'; + put 'put ''dXJuIGR9ZnVuY3Rpb24gVHYoZCl7cmV0dXJuKFR2PU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3QuZ2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKGgpe3JldHVybiBoLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKGgpfSkoZCl9dmFyIHk2ZT1uZXcgV2Vha01hcCx3''@;'; + put 'put ''NmU9ZnVuY3Rpb24oZCl7IWZ1bmN0aW9uIFRldChkLGcpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBnJiZudWxsIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiIpO2QucHJvdG90eXBlPU9iamVjdC5jcmVh''@;'; + put 'put ''dGUoZyYmZy5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTpkLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxnJiZ2NmUoZCxnKX0oaCxkKTt2YXIgZz1mdW5jdGlvbiBJZXQoZCl7dmFy''@;'; + put 'put ''IGc9ZnVuY3Rpb24gTGV0KCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBSZWZsZWN0fHwhUmVmbGVjdC5jb25zdHJ1Y3R8fFJlZmxlY3QuY29uc3RydWN0LnNoYW0pcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIFByb3h5KXJldHVybiEwO3RyeXtyZXR1cm4gQm9vbGVhbi5wcm90b3R5''@;'; + put 'put ''cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10sZnVuY3Rpb24oKXt9KSksITB9Y2F0Y2goZCl7cmV0dXJuITF9fSgpO3JldHVybiBmdW5jdGlvbigpe3ZhciB5LHY9VHYoZCk7aWYoZyl7dmFyIEM9VHYodGhpcykuY29uc3RydWN0b3I7eT1SZWZsZWN0LmNvbnN0''@;'; + put 'put ''cnVjdCh2LGFyZ3VtZW50cyxDKX1lbHNlIHk9di5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIERldCh0aGlzLHkpfX0oaCk7ZnVuY3Rpb24gaCh2KXt2YXIgeTtyZXR1cm4gZnVuY3Rpb24gTWV0KGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fu''@;'; + put 'put ''bm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsaCksZnVuY3Rpb24gT2V0KGQsZyxoKXtnIGluIGQ/T2JqZWN0LmRlZmluZVByb3BlcnR5KGQsZyx7dmFsdWU6aCxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmRbZ109aH0oQTZlKHk9Zy5j''@;'; + put 'put ''YWxsKHRoaXMsdikpLCJzb3J0QnlSZWxldmFuY2UiLGZ1bmN0aW9uKEMsSSxqKXt2YXIgZHQsT3QsJHQsdWU9W10sX2U9W10sQmU9Qy5sZW5ndGgsTmU9SS5sZW5ndGg7aWYoMD09PUJlKXtmb3IoT3Q9MDtPdDxOZTtPdCsrKV9lLnB1c2goT3QpO3JldHVybiBfZX1mb3IoT3Q9MDtPdDxOZTtP''@;'; + put 'put ''dCsrKXtpZihkdD1hM2UoZXUoSVtPdF0pKSxqKSR0PWR0LmluZGV4T2YoQyk7ZWxzZXt2YXIgZm49dGhpcy5jZWxsUHJvcGVydGllcy5sb2NhbGU7JHQ9ZHQudG9Mb2NhbGVMb3dlckNhc2UoZm4pLmluZGV4T2YoQy50b0xvY2FsZUxvd2VyQ2FzZShmbikpfS0xIT09JHQmJnVlLnB1c2goe2Jh''@;'; + put 'put ''c2VJbmRleDpPdCxpbmRleDokdCxjaGFyc0xlZnQ6ZHQubGVuZ3RoLSR0LUJlLHZhbHVlOmR0fSl9Zm9yKHVlLnNvcnQoZnVuY3Rpb24oTG4saXIpe2lmKC0xPT09aXIuaW5kZXgpcmV0dXJuLTE7aWYoLTE9PT1Mbi5pbmRleClyZXR1cm4gMTtpZihMbi5pbmRleDxpci5pbmRleClyZXR1cm4t''@;'; + put 'put ''MTtpZihpci5pbmRleDxMbi5pbmRleClyZXR1cm4gMTtpZihMbi5pbmRleD09PWlyLmluZGV4KXtpZihMbi5jaGFyc0xlZnQ8aXIuY2hhcnNMZWZ0KXJldHVybi0xO2lmKExuLmNoYXJzTGVmdD5pci5jaGFyc0xlZnQpcmV0dXJuIDF9cmV0dXJuIDB9KSxPdD0wLE5lPXVlLmxlbmd0aDtPdDxO''@;'; + put 'put ''ZTtPdCsrKV9lLnB1c2godWVbT3RdLmJhc2VJbmRleCk7cmV0dXJuIF9lfSkseS5xdWVyeT1udWxsLHkuc3RyaXBwZWRDaG9pY2VzPVtdLHkucmF3Q2hvaWNlcz1bXSx5NmUuc2V0KEE2ZSh5KSx7c2tpcE9uZTohMSxpc01hY09TOnkuaG90LnJvb3RXaW5kb3cubmF2aWdhdG9yLnBsYXRmb3Jt''@;'; + put 'put ''LmluZGV4T2YoIk1hYyIpPi0xfSkseX1yZXR1cm4gZnVuY3Rpb24gRWV0KGQsZyxoKXtnJiZRU2UoZC5wcm90b3R5cGUsZyksaCYmUVNlKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGgsW3trZXk6ImdldFZhbHVlIix2YWx1ZTpmdW5j''@;'; + put 'put ''dGlvbigpe3ZhciB5PXRoaXMsQz10aGlzLnJhd0Nob2ljZXMuZmluZChmdW5jdGlvbihJKXtyZXR1cm4geS5zdHJpcFZhbHVlSWZOZWVkZWQoSSk9PT15LlRFWFRBUkVBLnZhbHVlfSk7cmV0dXJuIFRvKEMpP0M6dGhpcy5URVhUQVJFQS52YWx1ZX19LHtrZXk6ImNyZWF0ZUVsZW1lbnRzIix2''@;'; + put 'put ''YWx1ZTpmdW5jdGlvbigpe05TKFR2KGgucHJvdG90eXBlKSwiY3JlYXRlRWxlbWVudHMiLHRoaXMpLmNhbGwodGhpcyksTzAodGhpcy5odENvbnRhaW5lciwiYXV0b2NvbXBsZXRlRWRpdG9yIiksTzAodGhpcy5odENvbnRhaW5lciwtMT09PXRoaXMuaG90LnJvb3RXaW5kb3cubmF2aWdhdG9y''@;'; + put 'put ''LnBsYXRmb3JtLmluZGV4T2YoIk1hYyIpPyIiOiJodE1hY1Njcm9sbCIpfX0se2tleToib3BlbiIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzLEM9eTZlLmdldCh0aGlzKTtOUyhUdihoLnByb3RvdHlwZSksIm9wZW4iLHRoaXMpLmNhbGwodGhpcyk7dmFyIEk9dGhpcy5odEVkaXRvci5n''@;'; + put 'put ''ZXRJbnN0YW5jZSgpLGo9dm9pZCAwPT09dGhpcy5jZWxsUHJvcGVydGllcy50cmltRHJvcGRvd258fHRoaXMuY2VsbFByb3BlcnRpZXMudHJpbURyb3Bkb3duO3RoaXMuc2hvd0VkaXRhYmxlRWxlbWVudCgpLHRoaXMuZm9jdXMoKTt2YXIgdWU9QmMoKTswPT09dWUmJkMuaXNNYWNPUyYmKHVl''@;'; + put 'put ''Kz0xNSksdGhpcy5hZGRIb29rKCJiZWZvcmVLZXlEb3duIixmdW5jdGlvbihfZSl7cmV0dXJuIHkub25CZWZvcmVLZXlEb3duKF9lKX0pLEkudXBkYXRlU2V0dGluZ3Moe2NvbFdpZHRoczpqP1tFMih0aGlzLlRFWFRBUkVBKS0yXTp2b2lkIDAsd2lkdGg6aj9FMih0aGlzLlRFWFRBUkVBKSt1''@;'; + put 'put ''ZTp2b2lkIDAscmVuZGVyZXI6ZnVuY3Rpb24oQmUsTmUsS2UsZHQsT3QsJHQsZm4pe0J3KEJlLE5lLEtlLGR0LE90LCR0LGZuKTt2YXIgeWksS2ksTG49eS5jZWxsUHJvcGVydGllcyxpcj1Mbi5maWx0ZXJpbmdDYXNlU2Vuc2l0aXZlLG1yPUxuLmFsbG93SHRtbCxTcj1Mbi5sb2NhbGUsd3I9''@;'; + put 'put ''eS5xdWVyeSxRcj1ldSgkdCk7UXImJiFtciYmLTEhPT0oeWk9ITA9PT1pcj9Rci5pbmRleE9mKHdyKTpRci50b0xvY2FsZUxvd2VyQ2FzZShTcikuaW5kZXhPZih3ci50b0xvY2FsZUxvd2VyQ2FzZShTcikpKSYmKEtpPVFyLnN1YnN0cih5aSx3ci5sZW5ndGgpLFFyPVFyLnJlcGxhY2UoS2ks''@;'; + put 'put ''IjxzdHJvbmc+Ii5jb25jYXQoS2ksIjwvc3Ryb25nPiIpKSksTmUuaW5uZXJIVE1MPVFyfSxhdXRvQ29sdW1uU2l6ZTohMH0pLEMuc2tpcE9uZSYmKEMuc2tpcE9uZT0hMSksdGhpcy5ob3QuX3JlZ2lzdGVyVGltZW91dChmdW5jdGlvbigpe3kucXVlcnlDaG9pY2VzKHkuVEVYVEFSRUEudmFs''@;'; + put 'put ''dWUpfSl9fSx7a2V5OiJjbG9zZSIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLnJlbW92ZUhvb2tzQnlLZXkoImJlZm9yZUtleURvd24iKSxOUyhUdihoLnByb3RvdHlwZSksImNsb3NlIix0aGlzKS5jYWxsKHRoaXMpfX0se2tleToiZGlzY2FyZEVkaXRvciIsdmFsdWU6ZnVuY3Rpb24oeSl7TlMo''@;'; + put 'put ''VHYoaC5wcm90b3R5cGUpLCJkaXNjYXJkRWRpdG9yIix0aGlzKS5jYWxsKHRoaXMseSksdGhpcy5ob3Qudmlldy5yZW5kZXIoKX19LHtrZXk6InF1ZXJ5Q2hvaWNlcyIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEM9dGhpcyxJPXRoaXMuY2VsbFByb3BlcnRpZXMuc291cmNlO3RoaXMucXVlcnk9''@;'; + put 'put ''eSwiZnVuY3Rpb24iPT10eXBlb2YgST9JLmNhbGwodGhpcy5jZWxsUHJvcGVydGllcyx5LGZ1bmN0aW9uKGope0MucmF3Q2hvaWNlcz1qLEMudXBkYXRlQ2hvaWNlc0xpc3QoQy5zdHJpcFZhbHVlc0lmTmVlZGVkKGopKX0pOkFycmF5LmlzQXJyYXkoSSk/KHRoaXMucmF3Q2hvaWNlcz1JLHRo''@;'; + put 'put ''aXMudXBkYXRlQ2hvaWNlc0xpc3QodGhpcy5zdHJpcFZhbHVlc0lmTmVlZGVkKEkpKSk6dGhpcy51cGRhdGVDaG9pY2VzTGlzdChbXSl9fSx7a2V5OiJ1cGRhdGVDaG9pY2VzTGlzdCIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEM9cDNlKHRoaXMuVEVYVEFSRUEpLEk9WmJlKHRoaXMuVEVYVEFS''@;'; + put 'put ''RUEpLGo9dGhpcy5jZWxsUHJvcGVydGllcy5zb3J0QnlSZWxldmFuY2UsdWU9dGhpcy5jZWxsUHJvcGVydGllcy5maWx0ZXIsX2U9bnVsbCxCZT1udWxsLE5lPXk7aiYmKF9lPXRoaXMuc29ydEJ5UmVsZXZhbmNlKHRoaXMuc3RyaXBWYWx1ZUlmTmVlZGVkKHRoaXMuZ2V0VmFsdWUoKSksTmUs''@;'; + put 'put ''dGhpcy5jZWxsUHJvcGVydGllcy5maWx0ZXJpbmdDYXNlU2Vuc2l0aXZlKSk7dmFyIEtlPUFycmF5LmlzQXJyYXkoX2UpP19lLmxlbmd0aDowO2lmKCExPT09dWUpS2UmJihCZT1fZVswXSk7ZWxzZXtmb3IodmFyIGR0PVtdLE90PTAsJHQ9TmUubGVuZ3RoO090PCR0JiYhKGomJktlPD1PdCk7''@;'; + put 'put ''T3QrKylkdC5wdXNoKEtlP05lW19lW090XV06TmVbT3RdKTtCZT0wLE5lPWR0fXRoaXMuc3RyaXBwZWRDaG9pY2VzPU5lLHRoaXMuaHRFZGl0b3IubG9hZERhdGEoRFooW05lXSkpLHRoaXMudXBkYXRlRHJvcGRvd25IZWlnaHQoKSx0aGlzLmZsaXBEcm9wZG93bklmTmVlZGVkKCksITA9PT10''@;'; + put 'put ''aGlzLmNlbGxQcm9wZXJ0aWVzLnN0cmljdCYmdGhpcy5oaWdobGlnaHRCZXN0TWF0Y2hpbmdDaG9pY2UoQmUpLHRoaXMuaG90Lmxpc3RlbigpLFZaKHRoaXMuVEVYVEFSRUEsQyxDPT09ST92b2lkIDA6SSl9fSx7a2V5OiJmbGlwRHJvcGRvd25JZk5lZWRlZCIsdmFsdWU6ZnVuY3Rpb24oKXt2''@;'; + put 'put ''YXIgeT1mTyh0aGlzLmhvdC52aWV3Ll93dC53dFRhYmxlLlRBQkxFKSxDPXk9PT10aGlzLmhvdC5yb290V2luZG93LEk9dGhpcy5jZWxsUHJvcGVydGllcy5wcmV2ZW50T3ZlcmZsb3c7aWYoQ3x8IUMmJihJfHwiaG9yaXpvbnRhbCI9PT1JKSlyZXR1cm4hMTt2YXIgaj1qdSh0aGlzLlRFWFRB''@;'; + put 'put ''UkVBKSx1ZT1EMSh0aGlzLlRFWFRBUkVBKSxfZT10aGlzLmdldERyb3Bkb3duSGVpZ2h0KCksQmU9eS5zY3JvbGxUb3AsTmU9RDEodGhpcy5ob3Qudmlldy5fd3Qud3RUYWJsZS5USEVBRCksS2U9anUoeSksZHQ9ai50b3AtS2UudG9wLU5lK0JlLE90PXkuc2Nyb2xsSGVpZ2h0LWR0LU5lLXVl''@;'; + put 'put ''LCR0PV9lPk90JiZkdD5PdDtyZXR1cm4gJHQ/dGhpcy5mbGlwRHJvcGRvd24oX2UpOnRoaXMudW5mbGlwRHJvcGRvd24oKSx0aGlzLmxpbWl0RHJvcGRvd25JZk5lZWRlZCgkdD9kdDpPdCxfZSksJHR9fSx7a2V5OiJsaW1pdERyb3Bkb3duSWZOZWVkZWQiLHZhbHVlOmZ1bmN0aW9uKHksQyl7''@;'; + put 'put ''aWYoQz55KXt2YXIgX2UsST0wLGo9MCx1ZT0wO2Rve0krPXVlPXRoaXMuaHRFZGl0b3IuZ2V0Um93SGVpZ2h0KGopfHx0aGlzLmh0RWRpdG9yLnZpZXcuX3d0LmdldFNldHRpbmcoImRlZmF1bHRSb3dIZWlnaHQiKSxqKz0xfXdoaWxlKEk8eSk7X2U9SS11ZSx0aGlzLmh0RWRpdG9yLmZsaXBw''@;'; + put 'put ''ZWQmJih0aGlzLmh0RWRpdG9yLnJvb3RFbGVtZW50LnN0eWxlLnRvcD0iIi5jb25jYXQocGFyc2VJbnQodGhpcy5odEVkaXRvci5yb290RWxlbWVudC5zdHlsZS50b3AsMTApK0MtX2UsInB4IikpLHRoaXMuc2V0RHJvcGRvd25IZWlnaHQoSS11ZSl9fX0se2tleToiZmxpcERyb3Bkb3duIix2''@;'; + put 'put ''YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz10aGlzLmh0RWRpdG9yLnJvb3RFbGVtZW50LnN0eWxlO0MucG9zaXRpb249ImFic29sdXRlIixDLnRvcD0iIi5jb25jYXQoLXksInB4IiksdGhpcy5odEVkaXRvci5mbGlwcGVkPSEwfX0se2tleToidW5mbGlwRHJvcGRvd24iLHZhbHVlOmZ1bmN0aW9u''@;'; + put 'put ''KCl7dmFyIHk9dGhpcy5odEVkaXRvci5yb290RWxlbWVudC5zdHlsZTt5LnBvc2l0aW9uPSJhYnNvbHV0ZSIseS50b3A9IiIsdGhpcy5odEVkaXRvci5mbGlwcGVkPXZvaWQgMH19LHtrZXk6InVwZGF0ZURyb3Bkb3duSGVpZ2h0Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXMuaHRFZGl0''@;'; + put 'put ''b3IuZ2V0Q29sV2lkdGgoMCkrQmModGhpcy5ob3Qucm9vdERvY3VtZW50KSsyLEM9dGhpcy5jZWxsUHJvcGVydGllcy50cmltRHJvcGRvd247dGhpcy5odEVkaXRvci51cGRhdGVTZXR0aW5ncyh7aGVpZ2h0OnRoaXMuZ2V0RHJvcGRvd25IZWlnaHQoKSx3aWR0aDpDP3ZvaWQgMDp5fSksdGhp''@;'; + put 'put ''cy5odEVkaXRvci52aWV3Ll93dC53dFRhYmxlLmFsaWduT3ZlcmxheXNXaXRoVHJpbW1pbmdDb250YWluZXIoKX19LHtrZXk6InNldERyb3Bkb3duSGVpZ2h0Iix2YWx1ZTpmdW5jdGlvbih5KXt0aGlzLmh0RWRpdG9yLnVwZGF0ZVNldHRpbmdzKHtoZWlnaHQ6eX0pfX0se2tleToiaGlnaGxp''@;'; + put 'put ''Z2h0QmVzdE1hdGNoaW5nQ2hvaWNlIix2YWx1ZTpmdW5jdGlvbih5KXsibnVtYmVyIj09dHlwZW9mIHk/dGhpcy5odEVkaXRvci5zZWxlY3RDZWxsKHksMCx2b2lkIDAsdm9pZCAwLHZvaWQgMCwhMSk6dGhpcy5odEVkaXRvci5kZXNlbGVjdENlbGwoKX19LHtrZXk6ImdldERyb3Bkb3duSGVp''@;'; + put 'put ''Z2h0Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXMuaHRFZGl0b3IuZ2V0SW5zdGFuY2UoKS5nZXRSb3dIZWlnaHQoMCl8fDIzLEM9dGhpcy5jZWxsUHJvcGVydGllcy52aXNpYmxlUm93cztyZXR1cm4gdGhpcy5zdHJpcHBlZENob2ljZXMubGVuZ3RoPj1DP0MqeTp0aGlzLnN0cmlwcGVk''@;'; + put 'put ''Q2hvaWNlcy5sZW5ndGgqeSs4fX0se2tleToic3RyaXBWYWx1ZUlmTmVlZGVkIix2YWx1ZTpmdW5jdGlvbih5KXtyZXR1cm4gdGhpcy5zdHJpcFZhbHVlc0lmTmVlZGVkKFt5XSlbMF19fSx7a2V5OiJzdHJpcFZhbHVlc0lmTmVlZGVkIix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz10aGlzLmNl''@;'; + put 'put ''bGxQcm9wZXJ0aWVzLmFsbG93SHRtbCxJPU9sKHksZnVuY3Rpb24odWUpe3JldHVybiBldSh1ZSl9KTtyZXR1cm4gT2woSSxmdW5jdGlvbih1ZSl7cmV0dXJuIEM/dWU6YTNlKHVlKX0pfX0se2tleToiYWxsb3dLZXlFdmVudFByb3BhZ2F0aW9uIix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz10''@;'; + put 'put ''aGlzLmh0RWRpdG9yLmdldFNlbGVjdGVkUmFuZ2VMYXN0KCksSV9yb3c9Qz9DLmZyb20ucm93Oi0xLGo9ITE7cmV0dXJuIHk9PT1Rby5BUlJPV19ET1dOJiZJX3Jvdz4wJiZJX3Jvdzx0aGlzLmh0RWRpdG9yLmNvdW50Um93cygpLTEmJihqPSEwKSx5PT09UW8uQVJST1dfVVAmJklfcm93Pi0x''@;'; + put 'put ''JiYoaj0hMCksan19LHtrZXk6Im9uQmVmb3JlS2V5RG93biIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEM9dGhpcyxJPXk2ZS5nZXQodGhpcyk7aWYoSS5za2lwT25lPSExLEpiZSh5LmtleUNvZGUpfHx5LmtleUNvZGU9PT1Rby5CQUNLU1BBQ0V8fHkua2V5Q29kZT09PVFvLkRFTEVURXx8eS5r''@;'; + put 'put ''ZXlDb2RlPT09UW8uSU5TRVJUKXt2YXIgaj0xMDtpZih5LmtleUNvZGU9PT1Rby5DJiYoeS5jdHJsS2V5fHx5Lm1ldGFLZXkpKXJldHVybjt0aGlzLmlzT3BlbmVkKCl8fChqKz0xMCksdGhpcy5odEVkaXRvciYmdGhpcy5ob3QuX3JlZ2lzdGVyVGltZW91dChmdW5jdGlvbigpe0MucXVlcnlD''@;'; + put 'put ''aG9pY2VzKEMuVEVYVEFSRUEudmFsdWUpLEkuc2tpcE9uZT0hMH0sail9fX1dLFt7a2V5OiJFRElUT1JfVFlQRSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuImF1dG9jb21wbGV0ZSJ9fV0pLGh9KGc2ZSk7ZnVuY3Rpb24gYjZlKGQpe3JldHVybihiNmU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJv''@;'; + put 'put ''bCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZyl7cmV0dXJuIHR5cGVvZiBnfTpmdW5jdGlvbihnKXtyZXR1cm4gZyYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZy5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZyE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJv''@;'; + put 'put ''bCI6dHlwZW9mIGd9KShkKX1mdW5jdGlvbiBCZXQoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX1mdW5jdGlvbiBKU2UoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9''@;'; + put 'put ''Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX1mdW5jdGlvbiBfNmUoZCxnKXtyZXR1cm4oXzZlPU9iamVjdC5zZXRQcm90b3R5cGVP''@;'; + put 'put ''Zj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHYseSl7cmV0dXJuIHYuX19wcm90b19fPXksdn0pKGQsZyl9ZnVuY3Rpb24gTmV0KGQsZyl7aWYoZyYmKCJvYmplY3QiPT09YjZlKGcpfHwiZnVuY3Rpb24iPT10eXBlb2YgZykpcmV0dXJuIGc7aWYodm9pZCAwIT09Zyl0''@;'; + put 'put ''aHJvdyBuZXcgVHlwZUVycm9yKCJEZXJpdmVkIGNvbnN0cnVjdG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0IG9yIHVuZGVmaW5lZCIpO3JldHVybiBmdW5jdGlvbiBWZXQoZCl7aWYodm9pZCAwPT09ZCl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlh''@;'; + put 'put ''bGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3JldHVybiBkfShkKX1mdW5jdGlvbiB5dGUoZCl7cmV0dXJuKHl0ZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihoKXtyZXR1cm4gaC5fX3Byb3RvX198fE9iamVj''@;'; + put 'put ''dC5nZXRQcm90b3R5cGVPZihoKX0pKGQpfXZhciBYU2U9ZnVuY3Rpb24oZCl7IWZ1bmN0aW9uIEZldChkLGcpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBnJiZudWxsIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5j''@;'; + put 'put ''dGlvbiIpO2QucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZyYmZy5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTpkLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxnJiZfNmUoZCxnKX0o''@;'; + put 'put ''aCxkKTt2YXIgZz1mdW5jdGlvbiBIZXQoZCl7dmFyIGc9ZnVuY3Rpb24gamV0KCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBSZWZsZWN0fHwhUmVmbGVjdC5jb25zdHJ1Y3R8fFJlZmxlY3QuY29uc3RydWN0LnNoYW0pcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIFByb3h5KXJldHVy''@;'; + put 'put ''biEwO3RyeXtyZXR1cm4gQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10sZnVuY3Rpb24oKXt9KSksITB9Y2F0Y2goZCl7cmV0dXJuITF9fSgpO3JldHVybiBmdW5jdGlvbigpe3ZhciB5LHY9eXRlKGQpO2lmKGcpe3ZhciBDPXl0ZSh0''@;'; + put 'put ''aGlzKS5jb25zdHJ1Y3Rvcjt5PVJlZmxlY3QuY29uc3RydWN0KHYsYXJndW1lbnRzLEMpfWVsc2UgeT12LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gTmV0KHRoaXMseSl9fShoKTtmdW5jdGlvbiBoKCl7cmV0dXJuIEJldCh0aGlzLGgpLGcuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJl''@;'; + put 'put ''dHVybiBmdW5jdGlvbiBQZXQoZCxnLGgpe2cmJkpTZShkLnByb3RvdHlwZSxnKSxoJiZKU2UoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oaCxbe2tleToiYmVnaW5FZGl0aW5nIix2YWx1ZTpmdW5jdGlvbih5LEMpe2lmKEMmJiJtb3Vz''@;'; + put 'put ''ZXVwIj09PUMudHlwZSl7dmFyIEk9dGhpcy5URC5xdWVyeVNlbGVjdG9yKCdpbnB1dFt0eXBlPSJjaGVja2JveCJdJyk7dGwoSSwiaHRCYWRWYWx1ZSIpfHxJLmNsaWNrKCl9fX0se2tleToiZmluaXNoRWRpdGluZyIsdmFsdWU6ZnVuY3Rpb24oKXt9fSx7a2V5OiJpbml0Iix2YWx1ZTpmdW5j''@;'; + put 'put ''dGlvbigpe319LHtrZXk6Im9wZW4iLHZhbHVlOmZ1bmN0aW9uKCl7fX0se2tleToiY2xvc2UiLHZhbHVlOmZ1bmN0aW9uKCl7fX0se2tleToiZ2V0VmFsdWUiLHZhbHVlOmZ1bmN0aW9uKCl7fX0se2tleToic2V0VmFsdWUiLHZhbHVlOmZ1bmN0aW9uKCl7fX0se2tleToiZm9jdXMiLHZhbHVl''@;'; + put 'put ''OmZ1bmN0aW9uKCl7fX1dLFt7a2V5OiJFRElUT1JfVFlQRSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuImNoZWNrYm94In19XSksaH0oQ08pLEtTZT1MKDQxMDc4KTtmdW5jdGlvbiBDNmUoZCl7cmV0dXJuKEM2ZT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5''@;'; + put 'put ''bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihnKXtyZXR1cm4gdHlwZW9mIGd9OmZ1bmN0aW9uKGcpe3JldHVybiBnJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZnLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZnIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgZ30pKGQpfWZ1bmN0''@;'; + put 'put ''aW9uICRTZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fWZ1''@;'; + put 'put ''bmN0aW9uIEl2KCl7cmV0dXJuIEl2PSJ1bmRlZmluZWQiIT10eXBlb2YgUmVmbGVjdCYmUmVmbGVjdC5nZXQ/UmVmbGVjdC5nZXQuYmluZCgpOmZ1bmN0aW9uKGcsaCx2KXt2YXIgeT1XZXQoZyxoKTtpZih5KXt2YXIgQz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHksaCk7cmV0''@;'; + put 'put ''dXJuIEMuZ2V0P0MuZ2V0LmNhbGwoYXJndW1lbnRzLmxlbmd0aDwzP2c6dik6Qy52YWx1ZX19LEl2LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBXZXQoZCxnKXtmb3IoOyFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZCxnKSYmbnVsbCE9PShkPUU4KGQpKTsp''@;'; + put 'put ''O3JldHVybiBkfWZ1bmN0aW9uIGs2ZShkLGcpe3JldHVybihrNmU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24odix5KXtyZXR1cm4gdi5fX3Byb3RvX189eSx2fSkoZCxnKX1mdW5jdGlvbiBRZXQoZCxnKXtpZihnJiYoIm9iamVj''@;'; + put 'put ''dCI9PT1DNmUoZyl8fCJmdW5jdGlvbiI9PXR5cGVvZiBnKSlyZXR1cm4gZztpZih2b2lkIDAhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIkRlcml2ZWQgY29uc3RydWN0b3JzIG1heSBvbmx5IHJldHVybiBvYmplY3Qgb3IgdW5kZWZpbmVkIik7cmV0dXJuIGZ1bmN0aW9uIEpldChkKXtpZih2''@;'; + put 'put ''b2lkIDA9PT1kKXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcigidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkIik7cmV0dXJuIGR9KGQpfWZ1bmN0aW9uIEU4KGQpe3JldHVybihFOD1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0Lmdl''@;'; + put 'put ''dFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihoKXtyZXR1cm4gaC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihoKX0pKGQpfXZhciBlTWU9ZnVuY3Rpb24oZCl7IWZ1bmN0aW9uIFlldChkLGcpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBnJiZudWxsIT09Zyl0aHJvdyBuZXcg''@;'; + put 'put ''VHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiIpO2QucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZyYmZy5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTpkLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3Qu''@;'; + put 'put ''ZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxnJiZrNmUoZCxnKX0oaCxkKTt2YXIgZz1mdW5jdGlvbiBVZXQoZCl7dmFyIGc9ZnVuY3Rpb24gWGV0KCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBSZWZsZWN0fHwhUmVmbGVjdC5jb25zdHJ1Y3R8fFJlZmxlY3Qu''@;'; + put 'put ''Y29uc3RydWN0LnNoYW0pcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIFByb3h5KXJldHVybiEwO3RyeXtyZXR1cm4gQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10sZnVuY3Rpb24oKXt9KSksITB9Y2F0Y2goZCl7cmV0dXJu''@;'; + put 'put ''ITF9fSgpO3JldHVybiBmdW5jdGlvbigpe3ZhciB5LHY9RTgoZCk7aWYoZyl7dmFyIEM9RTgodGhpcykuY29uc3RydWN0b3I7eT1SZWZsZWN0LmNvbnN0cnVjdCh2LGFyZ3VtZW50cyxDKX1lbHNlIHk9di5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIFFldCh0aGlzLHkpfX0oaCk7ZnVu''@;'; + put 'put ''Y3Rpb24gaCh2KXt2YXIgeTtyZXR1cm4gZnVuY3Rpb24gemV0KGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsaCksKHk9Zy5jYWxsKHRoaXMsdikpLmRlZmF1bHREYXRlRm9ybWF0''@;'; + put 'put ''PSJERC9NTS9ZWVlZIix5LmlzQ2VsbEVkaXRlZD0hMSx5LnBhcmVudERlc3Ryb3llZD0hMSx5LiRkYXRlUGlja2VyPW51bGwseX1yZXR1cm4gZnVuY3Rpb24gR2V0KGQsZyxoKXtnJiYkU2UoZC5wcm90b3R5cGUsZyksaCYmJFNlKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3Rv''@;'; + put 'put ''dHlwZSIse3dyaXRhYmxlOiExfSl9KGgsW3trZXk6ImluaXQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcztpZigiZnVuY3Rpb24iIT10eXBlb2YgVGwpdGhyb3cgbmV3IEVycm9yKCJZb3UgbmVlZCB0byBpbmNsdWRlIG1vbWVudC5qcyB0byB5b3VyIHByb2plY3QuIik7aWYoImZ1bmN0''@;'; + put 'put ''aW9uIiE9dHlwZW9mIEtTZSl0aHJvdyBuZXcgRXJyb3IoIllvdSBuZWVkIHRvIGluY2x1ZGUgUGlrYWRheSB0byB5b3VyIHByb2plY3QuIik7SXYoRTgoaC5wcm90b3R5cGUpLCJpbml0Iix0aGlzKS5jYWxsKHRoaXMpLHRoaXMuaW5zdGFuY2UuYWRkSG9vaygiYWZ0ZXJEZXN0cm95IixmdW5j''@;'; + put 'put ''dGlvbigpe3kucGFyZW50RGVzdHJveWVkPSEwLHkuZGVzdHJveUVsZW1lbnRzKCl9KX19LHtrZXk6ImNyZWF0ZUVsZW1lbnRzIix2YWx1ZTpmdW5jdGlvbigpe0l2KEU4KGgucHJvdG90eXBlKSwiY3JlYXRlRWxlbWVudHMiLHRoaXMpLmNhbGwodGhpcyksdGhpcy5kYXRlUGlja2VyPXRoaXMu''@;'; + put 'put ''aG90LnJvb3REb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKSx0aGlzLmRhdGVQaWNrZXJTdHlsZT10aGlzLmRhdGVQaWNrZXIuc3R5bGUsdGhpcy5kYXRlUGlja2VyU3R5bGUucG9zaXRpb249ImFic29sdXRlIix0aGlzLmRhdGVQaWNrZXJTdHlsZS50b3A9MCx0aGlzLmRhdGVQaWNrZXJT''@;'; + put 'put ''dHlsZS5sZWZ0PTAsdGhpcy5kYXRlUGlja2VyU3R5bGUuekluZGV4PTk5OTksdGhpcy5kYXRlUGlja2VyLnNldEF0dHJpYnV0ZSgiZGlyIix0aGlzLmhvdC5pc1J0bCgpPyJydGwiOiJsdHIiKSxPMCh0aGlzLmRhdGVQaWNrZXIsImh0RGF0ZXBpY2tlckhvbGRlciIpLHRoaXMuaG90LnJvb3RE''@;'; + put 'put ''b2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRoaXMuZGF0ZVBpY2tlciksbmV3IEwxKHRoaXMpLmFkZEV2ZW50TGlzdGVuZXIodGhpcy5kYXRlUGlja2VyLCJtb3VzZWRvd24iLGZ1bmN0aW9uKEMpe3JldHVybiBDLnN0b3BQcm9wYWdhdGlvbigpfSl9fSx7a2V5OiJkZXN0cm95RWxlbWVudHMi''@;'; + put 'put ''LHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcy5kYXRlUGlja2VyLnBhcmVudE5vZGU7dGhpcy4kZGF0ZVBpY2tlciYmdGhpcy4kZGF0ZVBpY2tlci5kZXN0cm95KCkseSYmeS5yZW1vdmVDaGlsZCh0aGlzLmRhdGVQaWNrZXIpfX0se2tleToicHJlcGFyZSIsdmFsdWU6ZnVuY3Rpb24oeSxD''@;'; + put 'put ''LEksaix1ZSxfZSl7SXYoRTgoaC5wcm90b3R5cGUpLCJwcmVwYXJlIix0aGlzKS5jYWxsKHRoaXMseSxDLEksaix1ZSxfZSl9fSx7a2V5OiJvcGVuIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTpu''@;'; + put 'put ''dWxsO0l2KEU4KGgucHJvdG90eXBlKSwib3BlbiIsdGhpcykuY2FsbCh0aGlzKSx0aGlzLnNob3dEYXRlcGlja2VyKHkpfX0se2tleToiY2xvc2UiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHksQz10aGlzO3RoaXMuX29wZW5lZD0hMSxudWxsIT09KHk9dGhpcy4kZGF0ZVBpY2tlcikmJnZvaWQg''@;'; + put 'put ''MCE9PXkmJnkuZGVzdHJveSYmdGhpcy4kZGF0ZVBpY2tlci5kZXN0cm95KCksdGhpcy5pbnN0YW5jZS5fcmVnaXN0ZXJUaW1lb3V0KGZ1bmN0aW9uKCl7Qy5pbnN0YW5jZS5fcmVmcmVzaEJvcmRlcnMoKX0pLEl2KEU4KGgucHJvdG90eXBlKSwiY2xvc2UiLHRoaXMpLmNhbGwodGhpcyl9fSx7''@;'; + put 'put ''a2V5OiJmaW5pc2hFZGl0aW5nIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdJiZhcmd1bWVudHNbMF0sQz1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXSYmYXJndW1lbnRzWzFdO2lmKHkpe3Zh''@;'; + put 'put ''ciBJPXRoaXMub3JpZ2luYWxWYWx1ZTt2b2lkIDAhPT1JJiZ0aGlzLnNldFZhbHVlKEkpfUl2KEU4KGgucHJvdG90eXBlKSwiZmluaXNoRWRpdGluZyIsdGhpcykuY2FsbCh0aGlzLHksQyl9fSx7a2V5OiJzaG93RGF0ZXBpY2tlciIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIF9lLEM9dGhpcy5U''@;'; + put 'put ''RC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxJPXRoaXMuY2VsbFByb3BlcnRpZXMuZGF0ZUZvcm1hdHx8dGhpcy5kZWZhdWx0RGF0ZUZvcm1hdCxqPXRoaXMuaW5zdGFuY2Uudmlldy5pc01vdXNlRG93bigpLHVlPSEheSYmYjNlKHkua2V5Q29kZSk7dGhpcy5kYXRlUGlja2VyLnN0eWxlLmRp''@;'; + put 'put ''c3BsYXk9ImJsb2NrIix0aGlzLiRkYXRlUGlja2VyPW5ldyBLU2UodGhpcy5nZXREYXRlUGlja2VyQ29uZmlnKCkpLHRoaXMuJGRhdGVQaWNrZXIuX29uSW5wdXRGb2N1cz1mdW5jdGlvbigpe30sdGhpcy5kYXRlUGlja2VyU3R5bGUudG9wPSIiLmNvbmNhdCh0aGlzLmhvdC5yb290V2luZG93''@;'; + put 'put ''LnBhZ2VZT2Zmc2V0K0MudG9wK0QxKHRoaXMuVEQpLCJweCIpO3ZhciBCZTtCZT10aGlzLmhvdC5pc1J0bCgpP0MucmlnaHQtRTIodGhpcy5kYXRlUGlja2VyKTpDLmxlZnQsdGhpcy5kYXRlUGlja2VyU3R5bGUubGVmdD0iIi5jb25jYXQoQmUsInB4IiksdGhpcy5vcmlnaW5hbFZhbHVlPyhU''@;'; + put 'put ''bChfZT10aGlzLm9yaWdpbmFsVmFsdWUsSSwhMCkuaXNWYWxpZCgpJiZ0aGlzLiRkYXRlUGlja2VyLnNldE1vbWVudChUbChfZSxJKSwhMCksdGhpcy5nZXRWYWx1ZSgpIT09dGhpcy5vcmlnaW5hbFZhbHVlJiZ0aGlzLnNldFZhbHVlKHRoaXMub3JpZ2luYWxWYWx1ZSksIXVlJiYhaiYmdGhp''@;'; + put 'put ''cy5zZXRWYWx1ZSgiIikpOnRoaXMuY2VsbFByb3BlcnRpZXMuZGVmYXVsdERhdGU/KFRsKF9lPXRoaXMuY2VsbFByb3BlcnRpZXMuZGVmYXVsdERhdGUsSSwhMCkuaXNWYWxpZCgpJiZ0aGlzLiRkYXRlUGlja2VyLnNldE1vbWVudChUbChfZSxJKSwhMCksIXVlJiYhaiYmdGhpcy5zZXRWYWx1''@;'; + put 'put ''ZSgiIikpOnRoaXMuJGRhdGVQaWNrZXIuZ290b1RvZGF5KCl9fSx7a2V5OiJoaWRlRGF0ZXBpY2tlciIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmRhdGVQaWNrZXJTdHlsZS5kaXNwbGF5PSJub25lIix0aGlzLiRkYXRlUGlja2VyLmhpZGUoKX19LHtrZXk6ImdldERhdGVQaWNrZXJDb25maWci''@;'; + put 'put ''LHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcyxDPXRoaXMuVEVYVEFSRUEsST17fTt0aGlzLmNlbGxQcm9wZXJ0aWVzJiZ0aGlzLmNlbGxQcm9wZXJ0aWVzLmRhdGVQaWNrZXJDb25maWcmJkxaKEksdGhpcy5jZWxsUHJvcGVydGllcy5kYXRlUGlja2VyQ29uZmlnKTt2YXIgaj1JLm9uU2Vs''@;'; + put 'put ''ZWN0LHVlPUkub25DbG9zZTtyZXR1cm4gSS5maWVsZD1DLEkudHJpZ2dlcj1DLEkuY29udGFpbmVyPXRoaXMuZGF0ZVBpY2tlcixJLmJvdW5kPSExLEkuZm9ybWF0PUkuZm9ybWF0fHx0aGlzLmRlZmF1bHREYXRlRm9ybWF0LEkucmVwb3NpdGlvbj1JLnJlcG9zaXRpb258fCExLEkuaXNSVEw9''@;'; + put 'put ''ITEsSS5vblNlbGVjdD1mdW5jdGlvbihfZSl7dmFyIEJlPV9lO2lzTmFOKEJlLmdldFRpbWUoKSl8fChCZT1UbChCZSkuZm9ybWF0KHkuY2VsbFByb3BlcnRpZXMuZGF0ZUZvcm1hdHx8eS5kZWZhdWx0RGF0ZUZvcm1hdCkpLHkuc2V0VmFsdWUoQmUpLHkuaGlkZURhdGVwaWNrZXIoKSxqJiZq''@;'; + put 'put ''KCl9LEkub25DbG9zZT1mdW5jdGlvbigpe3kucGFyZW50RGVzdHJveWVkfHx5LmZpbmlzaEVkaXRpbmcoITEpLHVlJiZ1ZSgpfSxJfX1dLFt7a2V5OiJFRElUT1JfVFlQRSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuImRhdGUifX1dKSxofShIUyk7ZnVuY3Rpb24gUzZlKGQpe3JldHVybihTNmU9''@;'; + put 'put ''ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZyl7cmV0dXJuIHR5cGVvZiBnfTpmdW5jdGlvbihnKXtyZXR1cm4gZyYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZy5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZyE9''@;'; + put 'put ''PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGd9KShkKX1mdW5jdGlvbiBLZXQoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX1mdW5jdGlvbiB0TWUoZCxnKXtmb3IodmFyIGg9''@;'; + put 'put ''MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX1mdW5jdGlvbiB3dGUoKXtyZXR1cm4gd3Rl''@;'; + put 'put ''PSJ1bmRlZmluZWQiIT10eXBlb2YgUmVmbGVjdCYmUmVmbGVjdC5nZXQ/UmVmbGVjdC5nZXQuYmluZCgpOmZ1bmN0aW9uKGcsaCx2KXt2YXIgeT1xZXQoZyxoKTtpZih5KXt2YXIgQz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHksaCk7cmV0dXJuIEMuZ2V0P0MuZ2V0LmNhbGwo''@;'; + put 'put ''YXJndW1lbnRzLmxlbmd0aDwzP2c6dik6Qy52YWx1ZX19LHd0ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gcWV0KGQsZyl7Zm9yKDshT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGQsZykmJm51bGwhPT0oZD1TTyhkKSk7KTtyZXR1cm4gZH1mdW5jdGlvbiBN''@;'; + put 'put ''NmUoZCxnKXtyZXR1cm4oTTZlPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHYseSl7cmV0dXJuIHYuX19wcm90b19fPXksdn0pKGQsZyl9ZnVuY3Rpb24gbnR0KGQsZyl7aWYoZyYmKCJvYmplY3QiPT09UzZlKGcpfHwiZnVuY3Rp''@;'; + put 'put ''b24iPT10eXBlb2YgZykpcmV0dXJuIGc7aWYodm9pZCAwIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJEZXJpdmVkIGNvbnN0cnVjdG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0IG9yIHVuZGVmaW5lZCIpO3JldHVybiBmdW5jdGlvbiBydHQoZCl7aWYodm9pZCAwPT09ZCl0aHJvdyBuZXcg''@;'; + put 'put ''UmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3JldHVybiBkfShkKX1mdW5jdGlvbiBTTyhkKXtyZXR1cm4oU089T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZi5iaW5kKCk6''@;'; + put 'put ''ZnVuY3Rpb24oaCl7cmV0dXJuIGguX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YoaCl9KShkKX12YXIgRTZlPWZ1bmN0aW9uKGQpeyFmdW5jdGlvbiBldHQoZCxnKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZyYmbnVsbCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhw''@;'; + put 'put ''cmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTtkLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGcmJmcucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6ZCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInBy''@;'; + put 'put ''b3RvdHlwZSIse3dyaXRhYmxlOiExfSksZyYmTTZlKGQsZyl9KGgsZCk7dmFyIGc9ZnVuY3Rpb24gdHR0KGQpe3ZhciBnPWZ1bmN0aW9uIGl0dCgpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0fHxSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVy''@;'; + put 'put ''biExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBQcm94eSlyZXR1cm4hMDt0cnl7cmV0dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLGZ1bmN0aW9uKCl7fSkpLCEwfWNhdGNoKGQpe3JldHVybiExfX0oKTtyZXR1cm4gZnVuY3Rp''@;'; + put 'put ''b24oKXt2YXIgeSx2PVNPKGQpO2lmKGcpe3ZhciBDPVNPKHRoaXMpLmNvbnN0cnVjdG9yO3k9UmVmbGVjdC5jb25zdHJ1Y3Qodixhcmd1bWVudHMsQyl9ZWxzZSB5PXYuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBudHQodGhpcyx5KX19KGgpO2Z1bmN0aW9uIGgoKXtyZXR1cm4gS2V0''@;'; + put 'put ''KHRoaXMsaCksZy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIGZ1bmN0aW9uICRldChkLGcsaCl7ZyYmdE1lKGQucHJvdG90eXBlLGcpLGgmJnRNZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShoLFt7a2V5OiJwcmVwYXJlIix2''@;'; + put 'put ''YWx1ZTpmdW5jdGlvbih5LEMsSSxqLHVlLF9lKXt3dGUoU08oaC5wcm90b3R5cGUpLCJwcmVwYXJlIix0aGlzKS5jYWxsKHRoaXMseSxDLEksaix1ZSxfZSksdGhpcy5jZWxsUHJvcGVydGllcy5maWx0ZXI9ITEsdGhpcy5jZWxsUHJvcGVydGllcy5zdHJpY3Q9ITB9fV0sW3trZXk6IkVESVRP''@;'; + put 'put ''Ul9UWVBFIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4iZHJvcGRvd24ifX1dKSxofSh3NmUpO2Z1bmN0aW9uIHg2ZShkKXtyZXR1cm4oeDZlPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGcpe3JldHVybiB0eXBlb2Yg''@;'; + put 'put ''Z306ZnVuY3Rpb24oZyl7cmV0dXJuIGcmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmcuY29uc3RydWN0b3I9PT1TeW1ib2wmJmchPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBnfSkoZCl9ZnVuY3Rpb24gYXR0KGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cg''@;'; + put 'put ''bmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9ZnVuY3Rpb24gbk1lKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImlu''@;'; + put 'put ''IHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19ZnVuY3Rpb24gVDZlKGQsZyl7cmV0dXJuKFQ2ZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbih2LHkpe3JldHVybiB2Ll9fcHJvdG9f''@;'; + put 'put ''Xz15LHZ9KShkLGcpfWZ1bmN0aW9uIGN0dChkLGcpe2lmKGcmJigib2JqZWN0Ij09PXg2ZShnKXx8ImZ1bmN0aW9uIj09dHlwZW9mIGcpKXJldHVybiBnO2lmKHZvaWQgMCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVj''@;'; + put 'put ''dCBvciB1bmRlZmluZWQiKTtyZXR1cm4gZnVuY3Rpb24gZnR0KGQpe2lmKHZvaWQgMD09PWQpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4gZH0oZCl9ZnVuY3Rpb24gYnRl''@;'; + put 'put ''KGQpe3JldHVybihidGU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24oaCl7cmV0dXJuIGguX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YoaCl9KShkKX16by5nZXRTaW5nbGV0b24oKS5hZGQoImJlZm9yZVZhbGlkYXRl''@;'; + put 'put ''IixmdW5jdGlvbihkLGcsaCl7dmFyIHY9dGhpcy5nZXRDZWxsTWV0YShnLHRoaXMucHJvcFRvQ29sKGgpKTt2LmVkaXRvcj09PUU2ZSYmdm9pZCAwPT09di5zdHJpY3QmJih2LmZpbHRlcj0hMSx2LnN0cmljdD0hMCl9KTt2YXIgck1lPWZ1bmN0aW9uKGQpeyFmdW5jdGlvbiBzdHQoZCxnKXtp''@;'; + put 'put ''ZigiZnVuY3Rpb24iIT10eXBlb2YgZyYmbnVsbCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTtkLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGcmJmcucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFs''@;'; + put 'put ''dWU6ZCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZyYmVDZlKGQsZyl9KGgsZCk7dmFyIGc9ZnVuY3Rpb24gdXR0KGQpe3ZhciBnPWZ1bmN0aW9uIGh0dCgpe2lmKCJ1bmRlZmluZWQiPT10''@;'; + put 'put ''eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0fHxSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBQcm94eSlyZXR1cm4hMDt0cnl7cmV0dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChC''@;'; + put 'put ''b29sZWFuLFtdLGZ1bmN0aW9uKCl7fSkpLCEwfWNhdGNoKGQpe3JldHVybiExfX0oKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgeSx2PWJ0ZShkKTtpZihnKXt2YXIgQz1idGUodGhpcykuY29uc3RydWN0b3I7eT1SZWZsZWN0LmNvbnN0cnVjdCh2LGFyZ3VtZW50cyxDKX1lbHNlIHk9di5hcHBs''@;'; + put 'put ''eSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIGN0dCh0aGlzLHkpfX0oaCk7ZnVuY3Rpb24gaCgpe3JldHVybiBhdHQodGhpcyxoKSxnLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gZnVuY3Rpb24gbHR0KGQsZyxoKXtnJiZuTWUoZC5wcm90b3R5cGUsZyksaCYmbk1lKGQsaCksT2JqZWN0''@;'; + put 'put ''LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGgsbnVsbCxbe2tleToiRURJVE9SX1RZUEUiLGdldDpmdW5jdGlvbigpe3JldHVybiJudW1lcmljIn19XSksaH0oSFMpO2Z1bmN0aW9uIEk2ZShkKXtyZXR1cm4oSTZlPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1i''@;'; + put 'put ''b2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGcpe3JldHVybiB0eXBlb2YgZ306ZnVuY3Rpb24oZyl7cmV0dXJuIGcmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmcuY29uc3RydWN0b3I9PT1TeW1ib2wmJmchPT1TeW1ib2wucHJvdG90eXBlPyJzeW1i''@;'; + put 'put ''b2wiOnR5cGVvZiBnfSkoZCl9ZnVuY3Rpb24gcHR0KGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9ZnVuY3Rpb24gaU1lKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2''@;'; + put 'put ''PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19ZnVuY3Rpb24gX3RlKCl7cmV0dXJuIF90ZT0idW5kZWZpbmVkIiE9dHlwZW9mIFJl''@;'; + put 'put ''ZmxlY3QmJlJlZmxlY3QuZ2V0P1JlZmxlY3QuZ2V0LmJpbmQoKTpmdW5jdGlvbihnLGgsdil7dmFyIHk9bXR0KGcsaCk7aWYoeSl7dmFyIEM9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih5LGgpO3JldHVybiBDLmdldD9DLmdldC5jYWxsKGFyZ3VtZW50cy5sZW5ndGg8Mz9nOnYp''@;'; + put 'put ''OkMudmFsdWV9fSxfdGUuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIG10dChkLGcpe2Zvcig7IU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChkLGcpJiZudWxsIT09KGQ9TU8oZCkpOyk7cmV0dXJuIGR9ZnVuY3Rpb24gRDZlKGQsZyl7cmV0dXJuKEQ2ZT1PYmpl''@;'; + put 'put ''Y3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbih2LHkpe3JldHVybiB2Ll9fcHJvdG9fXz15LHZ9KShkLGcpfWZ1bmN0aW9uIHl0dChkLGcpe2lmKGcmJigib2JqZWN0Ij09PUk2ZShnKXx8ImZ1bmN0aW9uIj09dHlwZW9mIGcpKXJldHVybiBn''@;'; + put 'put ''O2lmKHZvaWQgMCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWQiKTtyZXR1cm4gZnVuY3Rpb24gd3R0KGQpe2lmKHZvaWQgMD09PWQpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhh''@;'; + put 'put ''c24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4gZH0oZCl9ZnVuY3Rpb24gTU8oZCl7cmV0dXJuKE1PPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3QuZ2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKGgpe3JldHVybiBoLl9f''@;'; + put 'put ''cHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKGgpfSkoZCl9dmFyIG9NZT1mdW5jdGlvbihkKXshZnVuY3Rpb24gdnR0KGQsZyl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGcmJm51bGwhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUg''@;'; + put 'put ''bnVsbCBvciBhIGZ1bmN0aW9uIik7ZC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShnJiZnLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOmQsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0p''@;'; + put 'put ''LGcmJkQ2ZShkLGcpfShoLGQpO3ZhciBnPWZ1bmN0aW9uIEF0dChkKXt2YXIgZz1mdW5jdGlvbiBidHQoKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIFJlZmxlY3R8fCFSZWZsZWN0LmNvbnN0cnVjdHx8UmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT10eXBl''@;'; + put 'put ''b2YgUHJveHkpcmV0dXJuITA7dHJ5e3JldHVybiBCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSxmdW5jdGlvbigpe30pKSwhMH1jYXRjaChkKXtyZXR1cm4hMX19KCk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHksdj1NTyhkKTtpZihn''@;'; + put 'put ''KXt2YXIgQz1NTyh0aGlzKS5jb25zdHJ1Y3Rvcjt5PVJlZmxlY3QuY29uc3RydWN0KHYsYXJndW1lbnRzLEMpfWVsc2UgeT12LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4geXR0KHRoaXMseSl9fShoKTtmdW5jdGlvbiBoKCl7cmV0dXJuIHB0dCh0aGlzLGgpLGcuYXBwbHkodGhpcyxh''@;'; + put 'put ''cmd1bWVudHMpfXJldHVybiBmdW5jdGlvbiBndHQoZCxnLGgpe2cmJmlNZShkLnByb3RvdHlwZSxnKSxoJiZpTWUoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oaCxbe2tleToiY3JlYXRlRWxlbWVudHMiLHZhbHVlOmZ1bmN0aW9uKCl7''@;'; + put 'put ''X3RlKE1PKGgucHJvdG90eXBlKSwiY3JlYXRlRWxlbWVudHMiLHRoaXMpLmNhbGwodGhpcyksdGhpcy5URVhUQVJFQT10aGlzLmhvdC5yb290RG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW5wdXQiKSx0aGlzLlRFWFRBUkVBLnNldEF0dHJpYnV0ZSgidHlwZSIsInBhc3N3b3JkIiksdGhpcy5U''@;'; + put 'put ''RVhUQVJFQS5zZXRBdHRyaWJ1dGUoImRhdGEtaG90LWlucHV0IiwiIiksdGhpcy5URVhUQVJFQS5jbGFzc05hbWU9ImhhbmRzb250YWJsZUlucHV0Iix0aGlzLnRleHRhcmVhU3R5bGU9dGhpcy5URVhUQVJFQS5zdHlsZSx0aGlzLnRleHRhcmVhU3R5bGUud2lkdGg9MCx0aGlzLnRleHRhcmVh''@;'; + put 'put ''U3R5bGUuaGVpZ2h0PTAsRHAodGhpcy5URVhUQVJFQV9QQVJFTlQpLHRoaXMuVEVYVEFSRUFfUEFSRU5ULmFwcGVuZENoaWxkKHRoaXMuVEVYVEFSRUEpfX1dLFt7a2V5OiJFRElUT1JfVFlQRSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuInBhc3N3b3JkIn19XSksaH0oSFMpO2Z1bmN0aW9uIEN0''@;'; + put 'put ''ZShkKXtyZXR1cm4oQ3RlPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGcpe3JldHVybiB0eXBlb2YgZ306ZnVuY3Rpb24oZyl7cmV0dXJuIGcmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmcuY29uc3RydWN0''@;'; + put 'put ''b3I9PT1TeW1ib2wmJmchPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBnfSkoZCl9ZnVuY3Rpb24gQ3R0KGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9ZnVuY3Rpb24gYU1l''@;'; + put 'put ''KGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19ZnVuY3Rpb24g''@;'; + put 'put ''a3RlKCl7cmV0dXJuIGt0ZT0idW5kZWZpbmVkIiE9dHlwZW9mIFJlZmxlY3QmJlJlZmxlY3QuZ2V0P1JlZmxlY3QuZ2V0LmJpbmQoKTpmdW5jdGlvbihnLGgsdil7dmFyIHk9U3R0KGcsaCk7aWYoeSl7dmFyIEM9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih5LGgpO3JldHVybiBD''@;'; + put 'put ''LmdldD9DLmdldC5jYWxsKGFyZ3VtZW50cy5sZW5ndGg8Mz9nOnYpOkMudmFsdWV9fSxrdGUuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIFN0dChkLGcpe2Zvcig7IU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChkLGcpJiZudWxsIT09KGQ9RU8oZCkpOyk7cmV0''@;'; + put 'put ''dXJuIGR9ZnVuY3Rpb24gTDZlKGQsZyl7cmV0dXJuKEw2ZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbih2LHkpe3JldHVybiB2Ll9fcHJvdG9fXz15LHZ9KShkLGcpfWZ1bmN0aW9uIHh0dChkLGcpe2lmKGcmJigib2JqZWN0Ij09''@;'; + put 'put ''PUN0ZShnKXx8ImZ1bmN0aW9uIj09dHlwZW9mIGcpKXJldHVybiBnO2lmKHZvaWQgMCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWQiKTtyZXR1cm4gZnVuY3Rpb24gVHR0KGQpe2lmKHZvaWQg''@;'; + put 'put ''MD09PWQpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4gZH0oZCl9ZnVuY3Rpb24gRU8oZCl7cmV0dXJuKEVPPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3QuZ2V0UHJv''@;'; + put 'put ''dG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKGgpe3JldHVybiBoLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKGgpfSkoZCl9dmFyIE82ZT0iaHRfZWRpdG9yX3Zpc2libGUiLGxNZT0ic2VsZWN0RWRpdG9yIixMdHQ9ZnVuY3Rpb24oZCl7IWZ1bmN0aW9uIE10dChkLGcpe2lmKCJm''@;'; + put 'put ''dW5jdGlvbiIhPXR5cGVvZiBnJiZudWxsIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiIpO2QucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZyYmZy5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTpk''@;'; + put 'put ''LHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxnJiZMNmUoZCxnKX0oaCxkKTt2YXIgZz1mdW5jdGlvbiBFdHQoZCl7dmFyIGc9ZnVuY3Rpb24gSXR0KCl7aWYoInVuZGVmaW5lZCI9PXR5cGVv''@;'; + put 'put ''ZiBSZWZsZWN0fHwhUmVmbGVjdC5jb25zdHJ1Y3R8fFJlZmxlY3QuY29uc3RydWN0LnNoYW0pcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIFByb3h5KXJldHVybiEwO3RyeXtyZXR1cm4gQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xl''@;'; + put 'put ''YW4sW10sZnVuY3Rpb24oKXt9KSksITB9Y2F0Y2goZCl7cmV0dXJuITF9fSgpO3JldHVybiBmdW5jdGlvbigpe3ZhciB5LHY9RU8oZCk7aWYoZyl7dmFyIEM9RU8odGhpcykuY29uc3RydWN0b3I7eT1SZWZsZWN0LmNvbnN0cnVjdCh2LGFyZ3VtZW50cyxDKX1lbHNlIHk9di5hcHBseSh0aGlz''@;'; + put 'put ''LGFyZ3VtZW50cyk7cmV0dXJuIHh0dCh0aGlzLHkpfX0oaCk7ZnVuY3Rpb24gaCgpe3JldHVybiBDdHQodGhpcyxoKSxnLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gZnVuY3Rpb24ga3R0KGQsZyxoKXtnJiZhTWUoZC5wcm90b3R5cGUsZyksaCYmYU1lKGQsaCksT2JqZWN0LmRlZmlu''@;'; + put 'put ''ZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGgsW3trZXk6ImluaXQiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5zZWxlY3Q9dGhpcy5ob3Qucm9vdERvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlNFTEVDVCIpLE8wKHRoaXMuc2VsZWN0LCJodFNlbGVjdEVkaXRvciIpLHRo''@;'; + put 'put ''aXMuc2VsZWN0LnN0eWxlLmRpc3BsYXk9Im5vbmUiLHRoaXMuaG90LnJvb3RFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuc2VsZWN0KSx0aGlzLnJlZ2lzdGVySG9va3MoKX19LHtrZXk6ImdldFZhbHVlIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnNlbGVjdC52YWx1ZX19LHtrZXk6''@;'; + put 'put ''InNldFZhbHVlIix2YWx1ZTpmdW5jdGlvbih5KXt0aGlzLnNlbGVjdC52YWx1ZT15fX0se2tleToib3BlbiIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLl9vcGVuZWQ9ITAsdGhpcy5yZWZyZXNoRGltZW5zaW9ucygpLHRoaXMuc2VsZWN0LnN0eWxlLmRpc3BsYXk9IiIsdGhpcy5ob3QuZ2V0U2hv''@;'; + put 'put ''cnRjdXRNYW5hZ2VyKCkuc2V0QWN0aXZlQ29udGV4dE5hbWUoImVkaXRvciIpLHRoaXMucmVnaXN0ZXJTaG9ydGN1dHMoKX19LHtrZXk6ImNsb3NlIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuX29wZW5lZD0hMSx0aGlzLnNlbGVjdC5zdHlsZS5kaXNwbGF5PSJub25lIix0bCh0aGlzLnNlbGVj''@;'; + put 'put ''dCxPNmUpJiZwbCh0aGlzLnNlbGVjdCxPNmUpLHRoaXMudW5yZWdpc3RlclNob3J0Y3V0cygpLHRoaXMuY2xlYXJIb29rcygpfX0se2tleToiZm9jdXMiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5zZWxlY3QuZm9jdXMoKX19LHtrZXk6InJlZ2lzdGVySG9va3MiLHZhbHVlOmZ1bmN0aW9uKCl7''@;'; + put 'put ''dmFyIHk9dGhpczt0aGlzLmFkZEhvb2soImFmdGVyU2Nyb2xsSG9yaXpvbnRhbGx5IixmdW5jdGlvbigpe3JldHVybiB5LnJlZnJlc2hEaW1lbnNpb25zKCl9KSx0aGlzLmFkZEhvb2soImFmdGVyU2Nyb2xsVmVydGljYWxseSIsZnVuY3Rpb24oKXtyZXR1cm4geS5yZWZyZXNoRGltZW5zaW9u''@;'; + put 'put ''cygpfSksdGhpcy5hZGRIb29rKCJhZnRlckNvbHVtblJlc2l6ZSIsZnVuY3Rpb24oKXtyZXR1cm4geS5yZWZyZXNoRGltZW5zaW9ucygpfSksdGhpcy5hZGRIb29rKCJhZnRlclJvd1Jlc2l6ZSIsZnVuY3Rpb24oKXtyZXR1cm4geS5yZWZyZXNoRGltZW5zaW9ucygpfSl9fSx7a2V5OiJwcmVw''@;'; + put 'put ''YXJlIix2YWx1ZTpmdW5jdGlvbih5LEMsSSxqLHVlLF9lKXt2YXIgQmU9dGhpcztrdGUoRU8oaC5wcm90b3R5cGUpLCJwcmVwYXJlIix0aGlzKS5jYWxsKHRoaXMseSxDLEksaix1ZSxfZSk7dmFyIEtlLE5lPXRoaXMuY2VsbFByb3BlcnRpZXMuc2VsZWN0T3B0aW9ucztLZT10aGlzLnByZXBh''@;'; + put 'put ''cmVPcHRpb25zKCJmdW5jdGlvbiI9PXR5cGVvZiBOZT9OZSh0aGlzLnJvdyx0aGlzLmNvbCx0aGlzLnByb3ApOk5lKSxEcCh0aGlzLnNlbGVjdCksR2woS2UsZnVuY3Rpb24oZHQsT3Qpe3ZhciAkdD1CZS5ob3Qucm9vdERvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIk9QVElPTiIpOyR0LnZhbHVl''@;'; + put 'put ''PU90LGt3KCR0LGR0KSxCZS5zZWxlY3QuYXBwZW5kQ2hpbGQoJHQpfSl9fSx7a2V5OiJwcmVwYXJlT3B0aW9ucyIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEM9e307aWYoQXJyYXkuaXNBcnJheSh5KSlmb3IodmFyIEk9MCxqPXkubGVuZ3RoO0k8ajtJKyspQ1t5W0ldXT15W0ldO2Vsc2Uib2Jq''@;'; + put 'put ''ZWN0Ij09PUN0ZSh5KSYmKEM9eSk7cmV0dXJuIEN9fSx7a2V5OiJyZWZyZXNoVmFsdWUiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcy5ob3QuZ2V0U291cmNlRGF0YUF0Q2VsbCh0aGlzLnJvdyx0aGlzLnByb3ApO3RoaXMub3JpZ2luYWxWYWx1ZT15LHRoaXMuc2V0VmFsdWUoeSksdGhp''@;'; + put 'put ''cy5yZWZyZXNoRGltZW5zaW9ucygpfX0se2tleToicmVmcmVzaERpbWVuc2lvbnMiLHZhbHVlOmZ1bmN0aW9uKCl7aWYodGhpcy5zdGF0ZT09PXJmLkVESVRJTkcpe2lmKHRoaXMuVEQ9dGhpcy5nZXRFZGl0ZWRDZWxsKCksIXRoaXMuVEQpcmV0dXJuIHZvaWQgdGhpcy5jbG9zZSgpO3ZhciB5''@;'; + put 'put ''PXRoaXMuZ2V0RWRpdGVkQ2VsbFJlY3QoKSxDPXkudG9wLEk9eS5zdGFydCxqPXkud2lkdGgsX2U9dGhpcy5zZWxlY3Quc3R5bGU7X2UuaGVpZ2h0PSIiLmNvbmNhdCh5LmhlaWdodCwicHgiKSxfZS53aWR0aD0iIi5jb25jYXQoaiwicHgiKSxfZS50b3A9IiIuY29uY2F0KEMsInB4IiksX2Vb''@;'; + put 'put ''dGhpcy5ob3QuaXNSdGwoKT8icmlnaHQiOiJsZWZ0Il09IiIuY29uY2F0KEksInB4IiksX2UubWFyZ2luPSIwcHgiLE8wKHRoaXMuc2VsZWN0LE82ZSl9fX0se2tleToicmVnaXN0ZXJTaG9ydGN1dHMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcyxJPXRoaXMuaG90LmdldFNob3J0Y3V0''@;'; + put 'put ''TWFuYWdlcigpLmdldENvbnRleHQoImVkaXRvciIpLGo9e2dyb3VwOmxNZX07ITEhPT10aGlzLmlzSW5GdWxsRWRpdE1vZGUoKSYmSS5hZGRTaG9ydGN1dHMoW3trZXlzOltbIkFycm93VXAiXV0sY2FsbGJhY2s6ZnVuY3Rpb24oKXt2YXIgX2U9eS5zZWxlY3Quc2VsZWN0ZWRJbmRleC0xO19l''@;'; + put 'put ''Pj0wJiYoeS5zZWxlY3RbX2VdLnNlbGVjdGVkPSEwKX19LHtrZXlzOltbIkFycm93RG93biJdXSxjYWxsYmFjazpmdW5jdGlvbigpe3ZhciBfZT15LnNlbGVjdC5zZWxlY3RlZEluZGV4KzE7X2U8PXkuc2VsZWN0Lmxlbmd0aC0xJiYoeS5zZWxlY3RbX2VdLnNlbGVjdGVkPSEwKX19XSxqKX19''@;'; + put 'put ''LHtrZXk6InVucmVnaXN0ZXJTaG9ydGN1dHMiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5ob3QuZ2V0U2hvcnRjdXRNYW5hZ2VyKCkuZ2V0Q29udGV4dCgiZWRpdG9yIikucmVtb3ZlU2hvcnRjdXRzQnlHcm91cChsTWUpfX1dLFt7a2V5OiJFRElUT1JfVFlQRSIsZ2V0OmZ1bmN0aW9uKCl7cmV0''@;'; + put 'put ''dXJuInNlbGVjdCJ9fV0pLGh9KENPKTtmdW5jdGlvbiBSNmUoZCl7cmV0dXJuKFI2ZT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihnKXtyZXR1cm4gdHlwZW9mIGd9OmZ1bmN0aW9uKGcpe3JldHVybiBnJiYiZnVu''@;'; + put 'put ''Y3Rpb24iPT10eXBlb2YgU3ltYm9sJiZnLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZnIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgZ30pKGQpfWZ1bmN0aW9uIE90dChkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEg''@;'; + put 'put ''Y2xhc3MgYXMgYSBmdW5jdGlvbiIpfWZ1bmN0aW9uIHNNZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRl''@;'; + put 'put ''ZmluZVByb3BlcnR5KGQsdi5rZXksdil9fWZ1bmN0aW9uIFN0ZSgpe3JldHVybiBTdGU9InVuZGVmaW5lZCIhPXR5cGVvZiBSZWZsZWN0JiZSZWZsZWN0LmdldD9SZWZsZWN0LmdldC5iaW5kKCk6ZnVuY3Rpb24oZyxoLHYpe3ZhciB5PUJ0dChnLGgpO2lmKHkpe3ZhciBDPU9iamVjdC5nZXRP''@;'; + put 'put ''d25Qcm9wZXJ0eURlc2NyaXB0b3IoeSxoKTtyZXR1cm4gQy5nZXQ/Qy5nZXQuY2FsbChhcmd1bWVudHMubGVuZ3RoPDM/Zzp2KTpDLnZhbHVlfX0sU3RlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBCdHQoZCxnKXtmb3IoOyFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5''@;'; + put 'put ''LmNhbGwoZCxnKSYmbnVsbCE9PShkPXhPKGQpKTspO3JldHVybiBkfWZ1bmN0aW9uIEI2ZShkLGcpe3JldHVybihCNmU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24odix5KXtyZXR1cm4gdi5fX3Byb3RvX189eSx2fSkoZCxnKX1m''@;'; + put 'put ''dW5jdGlvbiBIdHQoZCxnKXtpZihnJiYoIm9iamVjdCI9PT1SNmUoZyl8fCJmdW5jdGlvbiI9PXR5cGVvZiBnKSlyZXR1cm4gZztpZih2b2lkIDAhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIkRlcml2ZWQgY29uc3RydWN0b3JzIG1heSBvbmx5IHJldHVybiBvYmplY3Qgb3IgdW5kZWZpbmVk''@;'; + put 'put ''Iik7cmV0dXJuIGZ1bmN0aW9uIE50dChkKXtpZih2b2lkIDA9PT1kKXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcigidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkIik7cmV0dXJuIGR9KGQpfWZ1bmN0aW9uIHhPKGQpe3JldHVybih4Tz1P''@;'; + put 'put ''YmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihoKXtyZXR1cm4gaC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihoKX0pKGQpfXZhciB1TWU9ZnVuY3Rpb24oZCl7IWZ1bmN0aW9uIFB0dChkLGcpe2lmKCJmdW5jdGlvbiIh''@;'; + put 'put ''PXR5cGVvZiBnJiZudWxsIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiIpO2QucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZyYmZy5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTpkLHdyaXRhYmxl''@;'; + put 'put ''OiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxnJiZCNmUoZCxnKX0oaCxkKTt2YXIgZz1mdW5jdGlvbiBGdHQoZCl7dmFyIGc9ZnVuY3Rpb24gVnR0KCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBSZWZsZWN0''@;'; + put 'put ''fHwhUmVmbGVjdC5jb25zdHJ1Y3R8fFJlZmxlY3QuY29uc3RydWN0LnNoYW0pcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIFByb3h5KXJldHVybiEwO3RyeXtyZXR1cm4gQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10sZnVu''@;'; + put 'put ''Y3Rpb24oKXt9KSksITB9Y2F0Y2goZCl7cmV0dXJuITF9fSgpO3JldHVybiBmdW5jdGlvbigpe3ZhciB5LHY9eE8oZCk7aWYoZyl7dmFyIEM9eE8odGhpcykuY29uc3RydWN0b3I7eT1SZWZsZWN0LmNvbnN0cnVjdCh2LGFyZ3VtZW50cyxDKX1lbHNlIHk9di5hcHBseSh0aGlzLGFyZ3VtZW50''@;'; + put 'put ''cyk7cmV0dXJuIEh0dCh0aGlzLHkpfX0oaCk7ZnVuY3Rpb24gaCgpe3JldHVybiBPdHQodGhpcyxoKSxnLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gZnVuY3Rpb24gUnR0KGQsZyxoKXtnJiZzTWUoZC5wcm90b3R5cGUsZyksaCYmc01lKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5''@;'; + put 'put ''KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGgsW3trZXk6InByZXBhcmUiLHZhbHVlOmZ1bmN0aW9uKHksQyxJLGosdWUsX2Upe1N0ZSh4TyhoLnByb3RvdHlwZSksInByZXBhcmUiLHRoaXMpLmNhbGwodGhpcyx5LEMsSSxqLHVlLF9lKSx0aGlzLlRFWFRBUkVBLmRpcj0ibHRyIn19''@;'; + put 'put ''XSxbe2tleToiRURJVE9SX1RZUEUiLGdldDpmdW5jdGlvbigpe3JldHVybiJ0aW1lIn19XSksaH0oSFMpO2Z1bmN0aW9uIFA2ZShkLGcsaCx2LHksQyxJKXtoei5hcHBseSh0aGlzLFtkLGcsaCx2LHksQyxJXSksa3coZyxudWxsPT1DPyIiOkMsITEpfWZ1bmN0aW9uIFRPKGQsZyxoLHYseSxD''@;'; + put 'put ''LEkpe3ZhciBqPWQucm9vdERvY3VtZW50LHVlPUkuYWxsb3dIdG1sP1A2ZTpCdyxfZT1qLmNyZWF0ZUVsZW1lbnQoIkRJViIpO2lmKF9lLmNsYXNzTmFtZT0iaHRBdXRvY29tcGxldGVBcnJvdyIsX2UuYXBwZW5kQ2hpbGQoai5jcmVhdGVUZXh0Tm9kZShTdHJpbmcuZnJvbUNoYXJDb2RlKDk2''@;'; + put 'put ''NjApKSksdWUuYXBwbHkodGhpcyxbZCxnLGgsdix5LEMsSV0pLGcuZmlyc3RDaGlsZHx8Zy5hcHBlbmRDaGlsZChqLmNyZWF0ZVRleHROb2RlKFN0cmluZy5mcm9tQ2hhckNvZGUoMTYwKSkpLGcuaW5zZXJ0QmVmb3JlKF9lLGcuZmlyc3RDaGlsZCksTzAoZywiaHRBdXRvY29tcGxldGUiKSwh''@;'; + put 'put ''ZC5hY0Fycm93TGlzdGVuZXIpe3ZhciBCZT1uZXcgTDEoZCk7ZC5hY0Fycm93TGlzdGVuZXI9ZnVuY3Rpb24oTmUpe3RsKE5lLnRhcmdldCwiaHRBdXRvY29tcGxldGVBcnJvdyIpJiZkLnZpZXcuX3d0LmdldFNldHRpbmcoIm9uQ2VsbERibENsaWNrIixudWxsLGQuX2NyZWF0ZUNlbGxDb29y''@;'; + put 'put ''ZHMoaCx2KSxnKX0sQmUuYWRkRXZlbnRMaXN0ZW5lcihkLnJvb3RFbGVtZW50LCJtb3VzZWRvd24iLGQuYWNBcnJvd0xpc3RlbmVyKSxkLmFkZEhvb2tPbmNlKCJhZnRlckRlc3Ryb3kiLGZ1bmN0aW9uKCl7QmUuZGVzdHJveSgpfSl9fVA2ZS5SRU5ERVJFUl9UWVBFPSJodG1sIixUTy5SRU5E''@;'; + put 'put ''RVJFUl9UWVBFPSJhdXRvY29tcGxldGUiO3ZhciBjTWU9bmV3IFdlYWtNYXAsZk1lPW5ldyBXZWFrTWFwLElPPSJkYXRhLXJvdyIsRE89ImRhdGEtY29sIjtmdW5jdGlvbiBGNmUoZCxnLGgsdix5LEMsSSl7dmFyIGo9ZC5yb290RG9jdW1lbnQ7aHouYXBwbHkodGhpcyxbZCxnLGgsdix5LEMs''@;'; + put 'put ''SV0pLGZ1bmN0aW9uIFV0dChkKXt2YXIgZz1mTWUuZ2V0KGQpO2lmKCFnKXt2YXIgaD1kLnJvb3RFbGVtZW50OyhnPW5ldyBMMShkKSkuYWRkRXZlbnRMaXN0ZW5lcihoLCJjbGljayIsZnVuY3Rpb24odil7cmV0dXJuIGZ1bmN0aW9uIEt0dChkLGcpe3ZhciBoPWQudGFyZ2V0O2lmKEg2ZSho''@;'; + put 'put ''KSYmaC5oYXNBdHRyaWJ1dGUoSU8pJiZoLmhhc0F0dHJpYnV0ZShETykpe3ZhciB2PXBhcnNlSW50KGguZ2V0QXR0cmlidXRlKElPKSwxMCkseT1wYXJzZUludChoLmdldEF0dHJpYnV0ZShETyksMTApO2cuZ2V0Q2VsbE1ldGEodix5KS5yZWFkT25seSYmZC5wcmV2ZW50RGVmYXVsdCgpfX0o''@;'; + put 'put ''dixkKX0pLGcuYWRkRXZlbnRMaXN0ZW5lcihoLCJtb3VzZXVwIixmdW5jdGlvbih2KXtyZXR1cm4gZnVuY3Rpb24gWHR0KGQsZyl7dmFyIGg9ZC50YXJnZXQ7IUg2ZShoKXx8IWguaGFzQXR0cmlidXRlKElPKXx8IWguaGFzQXR0cmlidXRlKERPKXx8c2V0VGltZW91dChnLmxpc3RlbiwxMCl9''@;'; + put 'put ''KHYsZCl9KSxnLmFkZEV2ZW50TGlzdGVuZXIoaCwiY2hhbmdlIixmdW5jdGlvbih2KXtyZXR1cm4gZnVuY3Rpb24gJHR0KGQsZyl7dmFyIGg9ZC50YXJnZXQ7aWYoSDZlKGgpJiZoLmhhc0F0dHJpYnV0ZShJTykmJmguaGFzQXR0cmlidXRlKERPKSl7dmFyIHY9cGFyc2VJbnQoaC5nZXRBdHRy''@;'; + put 'put ''aWJ1dGUoSU8pLDEwKSx5PXBhcnNlSW50KGguZ2V0QXR0cmlidXRlKERPKSwxMCksQz1nLmdldENlbGxNZXRhKHYseSk7Qy5yZWFkT25seXx8Zy5zZXREYXRhQXRDZWxsKHYseSxkLnRhcmdldC5jaGVja2VkP3ZvaWQgMD09PUMudW5jaGVja2VkVGVtcGxhdGV8fEMuY2hlY2tlZFRlbXBsYXRl''@;'; + put 'put ''OnZvaWQgMCE9PUMudW5jaGVja2VkVGVtcGxhdGUmJkMudW5jaGVja2VkVGVtcGxhdGUpfX0odixkKX0pLGZNZS5zZXQoZCxnKX19KGQpO3ZhciB1ZT1mdW5jdGlvbiBRdHQoZCl7dmFyIGc9ZC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpO3JldHVybiBnLmNsYXNzTmFtZT0iaHRDaGVja2JveFJl''@;'; + put 'put ''bmRlcmVySW5wdXQiLGcudHlwZT0iY2hlY2tib3giLGcuc2V0QXR0cmlidXRlKCJhdXRvY29tcGxldGUiLCJvZmYiKSxnLnNldEF0dHJpYnV0ZSgidGFiaW5kZXgiLCItMSIpLGcuY2xvbmVOb2RlKCExKX0oaiksX2U9SS5sYWJlbCxCZT0hMTtpZih2b2lkIDA9PT1JLmNoZWNrZWRUZW1wbGF0''@;'; + put 'put ''ZSYmKEkuY2hlY2tlZFRlbXBsYXRlPSEwKSx2b2lkIDA9PT1JLnVuY2hlY2tlZFRlbXBsYXRlJiYoSS51bmNoZWNrZWRUZW1wbGF0ZT0hMSksRHAoZyksQz09PUkuY2hlY2tlZFRlbXBsYXRlfHxldShDKS50b0xvY2FsZUxvd2VyQ2FzZShJLmxvY2FsZSk9PT1ldShJLmNoZWNrZWRUZW1wbGF0''@;'; + put 'put ''ZSkudG9Mb2NhbGVMb3dlckNhc2UoSS5sb2NhbGUpP3VlLmNoZWNrZWQ9ITA6Qz09PUkudW5jaGVja2VkVGVtcGxhdGV8fGV1KEMpLnRvTG9jYWxlTG93ZXJDYXNlKEkubG9jYWxlKT09PWV1KEkudW5jaGVja2VkVGVtcGxhdGUpLnRvTG9jYWxlTG93ZXJDYXNlKEkubG9jYWxlKT91ZS5jaGVj''@;'; + put 'put ''a2VkPSExOmRjKEMpP08wKHVlLCJub1ZhbHVlIik6KHVlLnN0eWxlLmRpc3BsYXk9Im5vbmUiLE8wKHVlLCJodEJhZFZhbHVlIiksQmU9ITApLHVlLnNldEF0dHJpYnV0ZShJTyxoKSx1ZS5zZXRBdHRyaWJ1dGUoRE8sdiksIUJlJiZfZSl7dmFyIE5lPSIiO2lmKF9lLnZhbHVlKU5lPSJmdW5j''@;'; + put 'put ''dGlvbiI9PXR5cGVvZiBfZS52YWx1ZT9fZS52YWx1ZS5jYWxsKHRoaXMsaCx2LHksQyk6X2UudmFsdWU7ZWxzZSBpZihfZS5wcm9wZXJ0eSl7dmFyIEtlPWQuZ2V0RGF0YUF0Um93UHJvcChoLF9lLnByb3BlcnR5KTtOZT1udWxsIT09S2U/S2U6IiJ9dmFyIGR0PWZ1bmN0aW9uIEp0dChkLGcs''@;'; + put 'put ''aCl7dmFyIHY9ZC5jcmVhdGVFbGVtZW50KCJsYWJlbCIpO3JldHVybiB2LmNsYXNzTmFtZT0iaHRDaGVja2JveFJlbmRlcmVyTGFiZWwgIi5jb25jYXQoaD8iZnVsbFdpZHRoIjoiIiksdi5hcHBlbmRDaGlsZChkLmNyZWF0ZVRleHROb2RlKGcpKSx2LmNsb25lTm9kZSghMCl9KGosTmUsITAh''@;'; + put 'put ''PT1fZS5zZXBhcmF0ZWQpOyJiZWZvcmUiPT09X2UucG9zaXRpb24/X2Uuc2VwYXJhdGVkPyhnLmFwcGVuZENoaWxkKGR0KSxnLmFwcGVuZENoaWxkKHVlKSk6KGR0LmFwcGVuZENoaWxkKHVlKSx1ZT1kdCk6KCFfZS5wb3NpdGlvbnx8ImFmdGVyIj09PV9lLnBvc2l0aW9uKSYmKF9lLnNlcGFy''@;'; + put 'put ''YXRlZD8oZy5hcHBlbmRDaGlsZCh1ZSksZy5hcHBlbmRDaGlsZChkdCkpOihkdC5pbnNlcnRCZWZvcmUodWUsZHQuZmlyc3RDaGlsZCksdWU9ZHQpKX1mdW5jdGlvbiAkdCgpe3ZhciBMbj1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXSYmYXJndW1lbnRzWzBdLGly''@;'; + put 'put ''PWQuZ2V0U2VsZWN0ZWRSYW5nZSgpO2lmKGlyKWZvcih2YXIgbXI9MDttcjxpci5sZW5ndGg7bXIrKyl7Zm9yKHZhciBTcj1pclttcl0uZ2V0VG9wU3RhcnRDb3JuZXIoKSx3cj1Tci5yb3csUXI9U3IuY29sLHlpPWlyW21yXS5nZXRCb3R0b21FbmRDb3JuZXIoKSxLaT15aS5yb3csU289eWku''@;'; + put 'put ''Y29sLFBvPVtdLFNhPXdyO1NhPD1LaTtTYSs9MSlmb3IodmFyIEphPVFyO0phPD1TbztKYSs9MSl7dmFyIGxhPWQuZ2V0Q2VsbE1ldGEoU2EsSmEpO2lmKCJjaGVja2JveCIhPT1sYS50eXBlKXJldHVybjtpZighMCE9PWxhLnJlYWRPbmx5KXt2b2lkIDA9PT1sYS5jaGVja2VkVGVtcGxhdGUm''@;'; + put 'put ''JihsYS5jaGVja2VkVGVtcGxhdGU9ITApLHZvaWQgMD09PWxhLnVuY2hlY2tlZFRlbXBsYXRlJiYobGEudW5jaGVja2VkVGVtcGxhdGU9ITEpO3ZhciBhbD1kLmdldERhdGFBdENlbGwoU2EsSmEpOyExPT09TG4/W2xhLmNoZWNrZWRUZW1wbGF0ZSxsYS5jaGVja2VkVGVtcGxhdGUudG9TdHJp''@;'; + put 'put ''bmcoKV0uaW5jbHVkZXMoYWwpP1BvLnB1c2goW1NhLEphLGxhLnVuY2hlY2tlZFRlbXBsYXRlXSk6W2xhLnVuY2hlY2tlZFRlbXBsYXRlLGxhLnVuY2hlY2tlZFRlbXBsYXRlLnRvU3RyaW5nKCksbnVsbCx2b2lkIDBdLmluY2x1ZGVzKGFsKSYmUG8ucHVzaChbU2EsSmEsbGEuY2hlY2tlZFRl''@;'; + put 'put ''bXBsYXRlXSk6UG8ucHVzaChbU2EsSmEsbGEudW5jaGVja2VkVGVtcGxhdGVdKX19UG8ubGVuZ3RoPjAmJmQuc2V0RGF0YUF0Q2VsbChQbyl9fWZ1bmN0aW9uIGZuKCl7dmFyIExuPWQuZ2V0U2VsZWN0ZWRSYW5nZSgpO2lmKExuKXtmb3IodmFyIGlyPTA7aXI8TG4ubGVuZ3RoO2lyKyspZm9y''@;'; + put 'put ''KHZhciBtcj1Mbltpcl0uZ2V0VG9wU3RhcnRDb3JuZXIoKSxTcj1Mbltpcl0uZ2V0Qm90dG9tRW5kQ29ybmVyKCksd3I9bXIucm93O3dyPD1Tci5yb3c7d3IrKylmb3IodmFyIFFyPW1yLmNvbDtRcjw9U3IuY29sO1FyKyspe3ZhciB5aT1kLmdldENlbGxNZXRhKHdyLFFyKTtpZigiY2hlY2ti''@;'; + put 'put ''b3giIT09eWkudHlwZSlyZXR1cm4hMTt2YXIgS2k9ZC5nZXRDZWxsKHdyLFFyKTtpZihudWxsPT1LaSlyZXR1cm4hMDtpZihLaS5xdWVyeVNlbGVjdG9yQWxsKCJpbnB1dFt0eXBlPWNoZWNrYm94XSIpLmxlbmd0aD4wJiYheWkucmVhZE9ubHkpcmV0dXJuITB9cmV0dXJuITF9fSghX2V8fF9l''@;'; + put 'put ''JiYhX2Uuc2VwYXJhdGVkKSYmZy5hcHBlbmRDaGlsZCh1ZSksQmUmJmcuYXBwZW5kQ2hpbGQoai5jcmVhdGVUZXh0Tm9kZSgiI2JhZC12YWx1ZSMiKSksY01lLmhhcyhkKXx8KGNNZS5zZXQoZCwhMCksZnVuY3Rpb24gT3QoKXtkLmdldFNob3J0Y3V0TWFuYWdlcigpLmdldENvbnRleHQoImdy''@;'; + put 'put ''aWQiKS5hZGRTaG9ydGN1dHMoW3trZXlzOltbInNwYWNlIl1dLGNhbGxiYWNrOmZ1bmN0aW9uKCl7cmV0dXJuICR0KCksIWZuKCl9fSx7a2V5czpbWyJlbnRlciJdXSxjYWxsYmFjazpmdW5jdGlvbigpe3JldHVybiAkdCgpLCFmbigpfSxydW5Pbmx5SWY6ZnVuY3Rpb24oKXtyZXR1cm4gZC5n''@;'; + put 'put ''ZXRTZXR0aW5ncygpLmVudGVyQmVnaW5zRWRpdGluZ319LHtrZXlzOltbImRlbGV0ZSJdLFsiYmFja3NwYWNlIl1dLGNhbGxiYWNrOmZ1bmN0aW9uKCl7cmV0dXJuICR0KCEwKSwhZm4oKX0scmVsYXRpdmVUb0dyb3VwOkdaLHBvc2l0aW9uOiJiZWZvcmUifV0se2dyb3VwOiJjaGVja2JveFJl''@;'; + put 'put ''bmRlcmVyIn0pfSgpKX1mdW5jdGlvbiBINmUoZCl7cmV0dXJuIklOUFVUIj09PWQudGFnTmFtZSYmImNoZWNrYm94Ij09PWQuZ2V0QXR0cmlidXRlKCJ0eXBlIil9em8uZ2V0U2luZ2xldG9uKCkuYWRkKCJtb2RpZnlBdXRvQ29sdW1uU2l6ZVNlZWQiLGZ1bmN0aW9uKGQsZyxoKXt2YXIgdj1n''@;'; + put 'put ''LmxhYmVsLEM9Zy5yb3c7aWYoImNoZWNrYm94Ij09PWcudHlwZSl7aWYodil7dmFyIHVlPXYudmFsdWUsX2U9di5wcm9wZXJ0eSxCZT1oO2lmKHVlKUJlPSJmdW5jdGlvbiI9PXR5cGVvZiB1ZT91ZShDLGcuY29sdW1uLGcucHJvcCxoKTp1ZTtlbHNlIGlmKF9lKXt2YXIgTmU9dGhpcy5nZXRE''@;'; + put 'put ''YXRhQXRSb3dQcm9wKEMsX2UpO0JlPW51bGwhPT1OZT9OZTpofWQ9QmV9cmV0dXJuIGR9fSksRjZlLlJFTkRFUkVSX1RZUEU9ImNoZWNrYm94Ijt2YXIgVlM9TCgyNDcxNSk7ZnVuY3Rpb24gTjZlKGQsZyxoLHYseSxDLEkpe3ZhciBqPUM7aWYodjQoaikpe3ZhciB1ZT1JLm51bWVyaWNGb3Jt''@;'; + put 'put ''YXQsX2U9dWUmJnVlLmN1bHR1cmV8fCItIixCZT11ZSYmdWUucGF0dGVybixOZT1JLmNsYXNzTmFtZXx8IiIsS2U9TmUubGVuZ3RoP05lLnNwbGl0KCIgIik6W107aWYodm9pZCAwIT09X2UmJiFWUy5sYW5ndWFnZXMoKVtfZV0pe3ZhciBkdD1fZS5yZXBsYWNlKCItIiwiIiksT3Q9VlMuYWxs''@;'; + put 'put ''TGFuZ3VhZ2VzP1ZTLmFsbExhbmd1YWdlc1tfZV06VlNbZHRdO090JiZWUy5yZWdpc3Rlckxhbmd1YWdlKE90KX1WUy5zZXRMYW5ndWFnZShfZSksaj1WUyhqKS5mb3JtYXQoQmV8fCIwIiksS2UuaW5kZXhPZigiaHRMZWZ0Iik8MCYmS2UuaW5kZXhPZigiaHRDZW50ZXIiKTwwJiZLZS5pbmRl''@;'; + put 'put ''eE9mKCJodFJpZ2h0Iik8MCYmS2UuaW5kZXhPZigiaHRKdXN0aWZ5Iik8MCYmS2UucHVzaCgiaHRSaWdodCIpLEtlLmluZGV4T2YoImh0TnVtZXJpYyIpPDAmJktlLnB1c2goImh0TnVtZXJpYyIpLEkuY2xhc3NOYW1lPUtlLmpvaW4oIiAiKSxnLmRpcj0ibHRyIn1CdyhkLGcsaCx2LHksaixJ''@;'; + put 'put ''KX1mdW5jdGlvbiBWNmUoZCxnLGgsdix5LEMsSSl7QncuYXBwbHkodGhpcyxbZCxnLGgsdix5LEMsSV0pO3ZhciB1ZT1JLmhhc2hTeW1ib2x8fCIqIixfZT0iIjtpYSgoSS5oYXNoTGVuZ3RofHxnLmlubmVySFRNTC5sZW5ndGgpLTEsZnVuY3Rpb24oKXtfZSs9dWV9KSxrdyhnLF9lKX1mdW5j''@;'; + put 'put ''dGlvbiBqNmUoZCxnLGgsdix5LEMsSSl7QncuYXBwbHkodGhpcyxbZCxnLGgsdix5LEMsSV0pLGcuZGlyPSJsdHIifWZ1bmN0aW9uIGR6KGQsZyl7dmFyIGg9ZDtudWxsPT1oJiYoaD0iIiksdGhpcy5hbGxvd0VtcHR5JiYiIj09PWg/ZyghMCk6dGhpcy5zdHJpY3QmJnRoaXMuc291cmNlPyJm''@;'; + put 'put ''dW5jdGlvbiI9PXR5cGVvZiB0aGlzLnNvdXJjZT90aGlzLnNvdXJjZShoLGRNZShoLGcpKTpkTWUoaCxnKSh0aGlzLnNvdXJjZSk6ZyghMCl9ZnVuY3Rpb24gZE1lKGQsZyl7dmFyIGg9ZDtyZXR1cm4gZnVuY3Rpb24odil7Zm9yKHZhciB5PSExLEM9MCxJPXYubGVuZ3RoO0M8STtDKyspaWYo''@;'; + put 'put ''aD09PXZbQ10pe3k9ITA7YnJlYWt9Zyh5KX19ZnVuY3Rpb24gcE1lKGQpe3ZhciBnPW5ldyBEYXRlKGQpO3JldHVybiBpc05hTihuZXcgRGF0ZSgiIi5jb25jYXQoZCwiVDAwOjAwIikpLmdldERhdGUoKSk/ZzpuZXcgRGF0ZShnLmdldFRpbWUoKSs2ZTQqZy5nZXRUaW1lem9uZU9mZnNldCgp''@;'; + put 'put ''KX1mdW5jdGlvbiBNdGUoZCxnKXt2YXIgaD1yX2UoImRhdGUiLHRoaXMuaW5zdGFuY2UpLHY9ZCx5PSEwO251bGw9PXYmJih2PSIiKTt2YXIgQz1UbCh2LHRoaXMuZGF0ZUZvcm1hdHx8aC5kZWZhdWx0RGF0ZUZvcm1hdCwhMCkuaXNWYWxpZCgpLEk9VGwobmV3IERhdGUodikpLmlzVmFsaWQo''@;'; + put 'put ''KXx8QztpZih0aGlzLmFsbG93RW1wdHkmJiIiPT09diYmKEk9ITAsQz0hMCksSXx8KHk9ITEpLCFJJiZDJiYoeT0hMCksSSYmIUMpaWYoITA9PT10aGlzLmNvcnJlY3RGb3JtYXQpe3ZhciBqPWZ1bmN0aW9uIG9udChkLGcpe3ZhciBoPVRsKHBNZShkKSksdj1UbChkLGcpLHk9ZC5zZWFyY2go''@;'; + put 'put ''L1tBLXpdL2cpPi0xO3JldHVybihoLmlzVmFsaWQoKSYmaC5mb3JtYXQoIngiKT09PXYuZm9ybWF0KCJ4Iil8fCF2LmlzVmFsaWQoKXx8eT9oOnYpLmZvcm1hdChnKX0odix0aGlzLmRhdGVGb3JtYXQpLHVlPXRoaXMuaW5zdGFuY2UudG9WaXN1YWxSb3codGhpcy5yb3cpLF9lPXRoaXMuaW5z''@;'; + put 'put ''dGFuY2UudG9WaXN1YWxDb2x1bW4odGhpcy5jb2wpO3RoaXMuaW5zdGFuY2Uuc2V0RGF0YUF0Q2VsbCh1ZSxfZSxqLCJkYXRlVmFsaWRhdG9yIikseT0hMH1lbHNlIHk9ITE7Zyh5KX1mdW5jdGlvbiBaNmUoZCxnKXt2YXIgaD1kO251bGw9PWgmJihoPSIiKSxnKCEoIXRoaXMuYWxsb3dFbXB0''@;'; + put 'put ''eXx8IiIhPT1oKXx8IiIhPT1oJiZ2NChkKSl9TjZlLlJFTkRFUkVSX1RZUEU9Im51bWVyaWMiLFY2ZS5SRU5ERVJFUl9UWVBFPSJwYXNzd29yZCIsajZlLlJFTkRFUkVSX1RZUEU9InRpbWUiLGR6LlZBTElEQVRPUl9UWVBFPSJhdXRvY29tcGxldGUiLEwoNzc5NCksTXRlLlZBTElEQVRPUl9U''@;'; + put 'put ''WVBFPSJkYXRlIixaNmUuVkFMSURBVE9SX1RZUEU9Im51bWVyaWMiO3ZhciBsbnQ9WyJZWVlZLU1NLUREVEhIOm1tOnNzLlNTU1oiLCJYIiwieCJdO2Z1bmN0aW9uIEV0ZShkLGcpe3ZhciBoPXRoaXMudGltZUZvcm1hdHx8Img6bW06c3MgYSIsdj0hMCx5PWQ7bnVsbD09PXkmJih5PSIiKSx5''@;'; + put 'put ''PS9eXGR7Myx9JC8udGVzdCh5KT9wYXJzZUludCh5LDEwKTp5O3ZhciBDPS9eXGR7MSwyfSQvLnRlc3QoeSk7QyYmKHkrPSI6MDAiKTt2YXIgST1UbCh5LGxudCwhMCkuaXNWYWxpZCgpP1RsKHkpOlRsKHksaCksaj1JLmlzVmFsaWQoKSx1ZT1UbCh5LGgsITApLmlzVmFsaWQoKSYmIUM7aWYo''@;'; + put 'put ''dGhpcy5hbGxvd0VtcHR5JiYiIj09PXkmJihqPSEwLHVlPSEwKSxqfHwodj0hMSksIWomJnVlJiYodj0hMCksaiYmIXVlKWlmKCEwPT09dGhpcy5jb3JyZWN0Rm9ybWF0KXt2YXIgX2U9SS5mb3JtYXQoaCksQmU9dGhpcy5pbnN0YW5jZS50b1Zpc3VhbFJvdyh0aGlzLnJvdyksTmU9dGhpcy5p''@;'; + put 'put ''bnN0YW5jZS50b1Zpc3VhbENvbHVtbih0aGlzLmNvbCk7dGhpcy5pbnN0YW5jZS5zZXREYXRhQXRDZWxsKEJlLE5lLF9lLCJ0aW1lVmFsaWRhdG9yIiksdj0hMH1lbHNlIHY9ITE7Zyh2KX1FdGUuVkFMSURBVE9SX1RZUEU9InRpbWUiO3ZhciBmbnQ9e0NFTExfVFlQRToiYXV0b2NvbXBsZXRl''@;'; + put 'put ''IixlZGl0b3I6dzZlLHJlbmRlcmVyOlRPLHZhbGlkYXRvcjpken0sZG50PXtDRUxMX1RZUEU6ImNoZWNrYm94IixlZGl0b3I6WFNlLHJlbmRlcmVyOkY2ZX0sZ250PXtDRUxMX1RZUEU6ImRhdGUiLGVkaXRvcjplTWUscmVuZGVyZXI6VE8sdmFsaWRhdG9yOk10ZX0sdm50PXtDRUxMX1RZUEU6''@;'; + put 'put ''ImRyb3Bkb3duIixlZGl0b3I6RTZlLHJlbmRlcmVyOlRPLHZhbGlkYXRvcjpken0seW50PXtDRUxMX1RZUEU6ImhhbmRzb250YWJsZSIsZWRpdG9yOmc2ZSxyZW5kZXJlcjpUT30sYm50PXtDRUxMX1RZUEU6Im51bWVyaWMiLGVkaXRvcjpyTWUscmVuZGVyZXI6TjZlLHZhbGlkYXRvcjpaNmUs''@;'; + put 'put ''ZGF0YVR5cGU6Im51bWJlciJ9LENudD17Q0VMTF9UWVBFOiJwYXNzd29yZCIsZWRpdG9yOm9NZSxyZW5kZXJlcjpWNmUsY29weWFibGU6ITF9LFNudD17Q0VMTF9UWVBFOiJ0aW1lIixlZGl0b3I6dU1lLHJlbmRlcmVyOmo2ZSx2YWxpZGF0b3I6RXRlfTtmdW5jdGlvbiBnTWUoZCxnKXsobnVs''@;'; + put 'put ''bD09Z3x8Zz5kLmxlbmd0aCkmJihnPWQubGVuZ3RoKTtmb3IodmFyIGg9MCx2PW5ldyBBcnJheShnKTtoPGc7aCsrKXZbaF09ZFtoXTtyZXR1cm4gdn1mdW5jdGlvbiBtTWUoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJh''@;'; + put 'put ''YmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX1MKDM4MTgzKTt2YXIgdk1lPW5ldyBNYXAoW1sicGx1Z2luIixmdW5jdGlvbiBOemUoZCl7cmV0dXJuISFXWihkKX1dLFsiY2VsbC10''@;'; + put 'put ''eXBlIixKQ2VdLFsiZWRpdG9yIixuX2VdLFsicmVuZGVyZXIiLHdfZV0sWyJ2YWxpZGF0b3IiLGJfZV1dKSxqUz1uZXcgV2Vha01hcCx6NmU9W10sRGc9bnVsbCxBTWU9bmV3IFdlYWtTZXQsWXM9ZnVuY3Rpb24oKXtmdW5jdGlvbiBkKGcpe3ZhciBoPXRoaXM7KGZ1bmN0aW9uIExudChkLGcp''@;'; + put 'put ''e2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSkodGhpcyxkKSxmdW5jdGlvbiBSbnQoZCxnKXsoZnVuY3Rpb24gQm50KGQsZyl7aWYoZy5oYXMoZCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90''@;'; + put 'put ''IGluaXRpYWxpemUgdGhlIHNhbWUgcHJpdmF0ZSBlbGVtZW50cyB0d2ljZSBvbiBhbiBvYmplY3QiKX0pKGQsZyksZy5hZGQoZCl9KHRoaXMsQU1lKSxTZyh0aGlzLCJob3QiLGcse3dyaXRhYmxlOiExfSksalMuc2V0KHRoaXMse2hvb2tzOnt9fSksRGc9bnVsbCx0aGlzLnBsdWdpbk5hbWU9''@;'; + put 'put ''bnVsbCx0aGlzLnBsdWdpbnNJbml0aWFsaXplZENhbGxiYWNrcz1bXSx0aGlzLmlzUGx1Z2luc1JlYWR5PSExLHRoaXMuZW5hYmxlZD0hMSx0aGlzLmluaXRpYWxpemVkPSExLHRoaXMuaG90LmFkZEhvb2soImFmdGVyUGx1Z2luc0luaXRpYWxpemVkIixmdW5jdGlvbigpe3JldHVybiBoLm9u''@;'; + put 'put ''QWZ0ZXJQbHVnaW5zSW5pdGlhbGl6ZWQoKX0pLHRoaXMuaG90LmFkZEhvb2soImFmdGVyVXBkYXRlU2V0dGluZ3MiLGZ1bmN0aW9uKHYpe3JldHVybiBoLm9uVXBkYXRlU2V0dGluZ3Modil9KSx0aGlzLmhvdC5hZGRIb29rKCJiZWZvcmVJbml0IixmdW5jdGlvbigpe3JldHVybiBoLmluaXQo''@;'; + put 'put ''KX0pfXJldHVybiBmdW5jdGlvbiBPbnQoZCxnLGgpe2cmJm1NZShkLnByb3RvdHlwZSxnKSxoJiZtTWUoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oZCxbe2tleToiaW5pdCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD10aGlzO3RoaXMu''@;'; + put 'put ''cGx1Z2luTmFtZT10aGlzLmhvdC5nZXRQbHVnaW5OYW1lKHRoaXMpO3ZhciB2PXRoaXMuY29uc3RydWN0b3IuUExVR0lOX0RFUFMseT1BcnJheS5pc0FycmF5KHYpP3Y6W107aWYoeS5sZW5ndGg+MCl7dmFyIEM9W107aWYoeS5mb3JFYWNoKGZ1bmN0aW9uKF9lKXt2YXIgTmU9ZnVuY3Rpb24g''@;'; + put 'put ''RW50KGQsZyl7cmV0dXJuIGZ1bmN0aW9uIERudChkKXtpZihBcnJheS5pc0FycmF5KGQpKXJldHVybiBkfShkKXx8ZnVuY3Rpb24gSW50KGQsZyl7dmFyIGg9bnVsbD09ZD9udWxsOiJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZkW1N5bWJvbC5pdGVyYXRvcl18fGRbIkBAaXRlcmF0b3Ii''@;'; + put 'put ''XTtpZihudWxsIT1oKXt2YXIgSSxqLHY9W10seT0hMCxDPSExO3RyeXtmb3IoaD1oLmNhbGwoZCk7ISh5PShJPWgubmV4dCgpKS5kb25lKSYmKHYucHVzaChJLnZhbHVlKSwhZ3x8di5sZW5ndGghPT1nKTt5PSEwKTt9Y2F0Y2godWUpe0M9ITAsaj11ZX1maW5hbGx5e3RyeXsheSYmbnVsbCE9''@;'; + put 'put ''aC5yZXR1cm4mJmgucmV0dXJuKCl9ZmluYWxseXtpZihDKXRocm93IGp9fXJldHVybiB2fX0oZCxnKXx8ZnVuY3Rpb24gVG50KGQsZyl7aWYoZCl7aWYoInN0cmluZyI9PXR5cGVvZiBkKXJldHVybiBnTWUoZCxnKTt2YXIgaD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZCkuc2xp''@;'; + put 'put ''Y2UoOCwtMSk7aWYoIk9iamVjdCI9PT1oJiZkLmNvbnN0cnVjdG9yJiYoaD1kLmNvbnN0cnVjdG9yLm5hbWUpLCJNYXAiPT09aHx8IlNldCI9PT1oKXJldHVybiBBcnJheS5mcm9tKGQpO2lmKCJBcmd1bWVudHMiPT09aHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJh''@;'; + put 'put ''eSQvLnRlc3QoaCkpcmV0dXJuIGdNZShkLGcpfX0oZCxnKXx8ZnVuY3Rpb24geG50KCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2Jq''@;'; + put 'put ''ZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX0oX2Uuc3BsaXQoIjoiKSwyKSxLZT1OZVswXSxkdD1OZVsxXTtpZighdk1lLmhhcyhLZSkpdGhyb3cgbmV3IEVycm9yKCdVbmtub3duIHBsdWdpbiBkZXBlbmRlbmN5IHR5cGUgIicuY29uY2F0KEtlLCci''@;'; + put 'put ''IHdhcyBmb3VuZC4nKSk7dk1lLmdldChLZSkoZHQpfHxDLnB1c2goIiAtICIuY29uY2F0KGR0LCIgKCIpLmNvbmNhdChLZSwiKSIpKX0pLEMubGVuZ3RoPjApe3ZhciBJPVsiVGhlICIuY29uY2F0KHRoaXMucGx1Z2luTmFtZSwiIHBsdWdpbiByZXF1aXJlcyB0aGUgZm9sbG93aW5nIG1vZHVs''@;'; + put 'put ''ZXM6XG4iKSwiIi5jb25jYXQoQy5qb2luKCJcbiIpLCJcbiIpXS5qb2luKCIiKTt6NmUucHVzaChJKX19aWYoRGd8fChEZz16M2UoKSksRGcuaW5kZXhPZigiVW5kb1JlZG8iKT49MCYmRGcuc3BsaWNlKERnLmluZGV4T2YoIlVuZG9SZWRvIiksMSksRGcuaW5kZXhPZih0aGlzLnBsdWdpbk5h''@;'; + put 'put ''bWUpPj0wJiZEZy5zcGxpY2UoRGcuaW5kZXhPZih0aGlzLnBsdWdpbk5hbWUpLDEpLHRoaXMuaG90LmFkZEhvb2tPbmNlKCJhZnRlclBsdWdpbnNJbml0aWFsaXplZCIsZnVuY3Rpb24oKXtoLmlzRW5hYmxlZCYmaC5pc0VuYWJsZWQoKSYmaC5lbmFibGVQbHVnaW4oKX0pLDA9PT1EZy5sZW5n''@;'; + put 'put ''dGgpe2lmKHo2ZS5sZW5ndGg+MCl7dmFyIHVlPVsiIi5jb25jYXQoejZlLmpvaW4oIlxuIiksIlxuIiksIllvdSBoYXZlIHRvIGltcG9ydCBhbmQgcmVnaXN0ZXIgdGhlbSBtYW51YWxseS4iXS5qb2luKCIiKTt0aHJvdyBuZXcgRXJyb3IodWUpfXRoaXMuaG90LnJ1bkhvb2tzKCJhZnRlclBs''@;'; + put 'put ''dWdpbnNJbml0aWFsaXplZCIpfXRoaXMuaW5pdGlhbGl6ZWQ9ITB9fSx7a2V5OiJlbmFibGVQbHVnaW4iLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5lbmFibGVkPSEwfX0se2tleToiZGlzYWJsZVBsdWdpbiIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmV2ZW50TWFuYWdlciYmdGhpcy5ldmVudE1h''@;'; + put 'put ''bmFnZXIuY2xlYXIoKSx0aGlzLmNsZWFySG9va3MoKSx0aGlzLmVuYWJsZWQ9ITF9fSx7a2V5OiJhZGRIb29rIix2YWx1ZTpmdW5jdGlvbihoLHYpe2pTLmdldCh0aGlzKS5ob29rc1toXT1qUy5nZXQodGhpcykuaG9va3NbaF18fFtdO3ZhciB5PWpTLmdldCh0aGlzKS5ob29rc1toXTt0aGlz''@;'; + put 'put ''LmhvdC5hZGRIb29rKGgsdikseS5wdXNoKHYpLGpTLmdldCh0aGlzKS5ob29rc1toXT15fX0se2tleToicmVtb3ZlSG9va3MiLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB2PXRoaXM7VXIoalMuZ2V0KHRoaXMpLmhvb2tzW2hdfHxbXSxmdW5jdGlvbih5KXt2LmhvdC5yZW1vdmVIb29rKGgseSl9''@;'; + put 'put ''KX19LHtrZXk6ImNsZWFySG9va3MiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9dGhpcyx2PWpTLmdldCh0aGlzKS5ob29rcztHbCh2LGZ1bmN0aW9uKHksQyl7cmV0dXJuIGgucmVtb3ZlSG9va3MoQyl9KSx2Lmxlbmd0aD0wfX0se2tleToiY2FsbE9uUGx1Z2luc1JlYWR5Iix2YWx1ZTpmdW5j''@;'; + put 'put ''dGlvbihoKXt0aGlzLmlzUGx1Z2luc1JlYWR5P2goKTp0aGlzLnBsdWdpbnNJbml0aWFsaXplZENhbGxiYWNrcy5wdXNoKGgpfX0se2tleToib25BZnRlclBsdWdpbnNJbml0aWFsaXplZCIsdmFsdWU6ZnVuY3Rpb24oKXtVcih0aGlzLnBsdWdpbnNJbml0aWFsaXplZENhbGxiYWNrcyxmdW5j''@;'; + put 'put ''dGlvbihoKXtyZXR1cm4gaCgpfSksdGhpcy5wbHVnaW5zSW5pdGlhbGl6ZWRDYWxsYmFja3MubGVuZ3RoPTAsdGhpcy5pc1BsdWdpbnNSZWFkeT0hMH19LHtrZXk6Im9uVXBkYXRlU2V0dGluZ3MiLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB2PWZ1bmN0aW9uIFBudChkLGcsaCl7aWYoIWcuaGFz''@;'; + put 'put ''KGQpKXRocm93IG5ldyBUeXBlRXJyb3IoImF0dGVtcHRlZCB0byBnZXQgcHJpdmF0ZSBmaWVsZCBvbiBub24taW5zdGFuY2UiKTtyZXR1cm4gaH0odGhpcyxBTWUsSG50KS5jYWxsKHRoaXMsaCk7dGhpcy5pc0VuYWJsZWQmJih0aGlzLmVuYWJsZWQmJiF0aGlzLmlzRW5hYmxlZCgpJiZ0aGlz''@;'; + put 'put ''LmRpc2FibGVQbHVnaW4oKSwhdGhpcy5lbmFibGVkJiZ0aGlzLmlzRW5hYmxlZCgpJiZ0aGlzLmVuYWJsZVBsdWdpbigpLHRoaXMuZW5hYmxlZCYmdGhpcy5pc0VuYWJsZWQoKSYmdiYmdGhpcy51cGRhdGVQbHVnaW4oaCkpfX0se2tleToidXBkYXRlUGx1Z2luIix2YWx1ZTpmdW5jdGlvbigp''@;'; + put 'put ''e319LHtrZXk6ImRlc3Ryb3kiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9dGhpczt0aGlzLmV2ZW50TWFuYWdlciYmdGhpcy5ldmVudE1hbmFnZXIuZGVzdHJveSgpLHRoaXMuY2xlYXJIb29rcygpLEdsKHRoaXMsZnVuY3Rpb24odix5KXsiaG90IiE9PXkmJihoW3ldPW51bGwpfSksZGVsZXRl''@;'; + put 'put ''IHRoaXMudCxkZWxldGUgdGhpcy5ob3R9fV0sW3trZXk6IlBMVUdJTl9LRVkiLGdldDpmdW5jdGlvbigpe3JldHVybiJiYXNlIn19LHtrZXk6IlNFVFRJTkdfS0VZUyIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuW3RoaXMuUExVR0lOX0tFWV19fV0pLGR9KCk7ZnVuY3Rpb24gSG50KGQpe2lmKCFk''@;'; + put 'put ''KXJldHVybiExO3ZhciBnPXRoaXMuY29uc3RydWN0b3IuU0VUVElOR19LRVlTO2lmKCJib29sZWFuIj09dHlwZW9mIGcpcmV0dXJuIGc7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspaWYodm9pZCAwIT09ZFtnW2hdXSlyZXR1cm4hMDtyZXR1cm4hMX1mdW5jdGlvbiB5TWUoZCxnKXsobnVs''@;'; + put 'put ''bD09Z3x8Zz5kLmxlbmd0aCkmJihnPWQubGVuZ3RoKTtmb3IodmFyIGg9MCx2PW5ldyBBcnJheShnKTtoPGc7aCsrKXZbaF09ZFtoXTtyZXR1cm4gdn1mdW5jdGlvbiB3TWUoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJh''@;'; + put 'put ''YmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX12YXIgWW50PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZChnKXsoZnVuY3Rpb24gR250KGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhy''@;'; + put 'put ''b3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KSh0aGlzLGQpLHRoaXMuaG90PWcsdGhpcy5jb250YWluZXI9bnVsbCx0aGlzLmluamVjdGVkPSExLHRoaXMucm93cz1bXSx0aGlzLmNvbHVtbnM9W10sdGhpcy5zYW1wbGVzPW51bGwsdGhpcy5z''@;'; + put 'put ''ZXR0aW5ncz17dXNlSGVhZGVyczohMH19cmV0dXJuIGZ1bmN0aW9uIFdudChkLGcsaCl7ZyYmd01lKGQucHJvdG90eXBlLGcpLGgmJndNZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShkLFt7a2V5OiJhZGRSb3ciLHZhbHVlOmZ1bmN0''@;'; + put 'put ''aW9uKGgsdil7aWYodGhpcy5jb2x1bW5zLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoIkRvZXNuJ3Qgc3VwcG9ydCBtdWx0aS1kaW1lbnNpb25hbCB0YWJsZSIpO3RoaXMucm93cy5sZW5ndGh8fCh0aGlzLmNvbnRhaW5lcj10aGlzLmNyZWF0ZUNvbnRhaW5lcih0aGlzLmhvdC5yb290RWxlbWVu''@;'; + put 'put ''dC5jbGFzc05hbWUpKTt2YXIgeT17cm93Omh9O3RoaXMucm93cy5wdXNoKHkpLHRoaXMuc2FtcGxlcz12LHRoaXMudGFibGU9dGhpcy5jcmVhdGVUYWJsZSh0aGlzLmhvdC50YWJsZS5jbGFzc05hbWUpLHRoaXMudGFibGUuY29sR3JvdXAuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVDb2xHcm91''@;'; + put 'put ''cHNDb2woKSksdGhpcy50YWJsZS50ci5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZVJvdyhoKSksdGhpcy5jb250YWluZXIuY29udGFpbmVyLmFwcGVuZENoaWxkKHRoaXMudGFibGUuZnJhZ21lbnQpLHkudGFibGU9dGhpcy50YWJsZS50YWJsZX19LHtrZXk6ImFkZENvbHVtbkhlYWRlcnNSb3ci''@;'; + put 'put ''LHZhbHVlOmZ1bmN0aW9uKGgpe2lmKG51bGwhPXRoaXMuaG90LmdldENvbEhlYWRlcigwKSl7dmFyIHk9e3JvdzotMX07dGhpcy5yb3dzLnB1c2goeSksdGhpcy5jb250YWluZXI9dGhpcy5jcmVhdGVDb250YWluZXIodGhpcy5ob3Qucm9vdEVsZW1lbnQuY2xhc3NOYW1lKSx0aGlzLnNhbXBs''@;'; + put 'put ''ZXM9aCx0aGlzLnRhYmxlPXRoaXMuY3JlYXRlVGFibGUodGhpcy5ob3QudGFibGUuY2xhc3NOYW1lKSx0aGlzLnRhYmxlLmNvbEdyb3VwLmFwcGVuZENoaWxkKHRoaXMuY3JlYXRlQ29sR3JvdXBzQ29sKCkpLHRoaXMuYXBwZW5kQ29sdW1uSGVhZGVyc1JvdygpLHRoaXMuY29udGFpbmVyLmNv''@;'; + put 'put ''bnRhaW5lci5hcHBlbmRDaGlsZCh0aGlzLnRhYmxlLmZyYWdtZW50KSx5LnRhYmxlPXRoaXMudGFibGUudGFibGV9fX0se2tleToiYWRkQ29sdW1uIix2YWx1ZTpmdW5jdGlvbihoLHYpe2lmKHRoaXMucm93cy5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKCJEb2Vzbid0IHN1cHBvcnQgbXVsdGkt''@;'; + put 'put ''ZGltZW5zaW9uYWwgdGFibGUiKTt0aGlzLmNvbHVtbnMubGVuZ3RofHwodGhpcy5jb250YWluZXI9dGhpcy5jcmVhdGVDb250YWluZXIodGhpcy5ob3Qucm9vdEVsZW1lbnQuY2xhc3NOYW1lKSk7dmFyIHk9e2NvbDpofTt0aGlzLmNvbHVtbnMucHVzaCh5KSx0aGlzLnNhbXBsZXM9dix0aGlz''@;'; + put 'put ''LnRhYmxlPXRoaXMuY3JlYXRlVGFibGUodGhpcy5ob3QudGFibGUuY2xhc3NOYW1lKSx0aGlzLmdldFNldHRpbmcoInVzZUhlYWRlcnMiKSYmbnVsbCE9PXRoaXMuaG90LmdldENvbEhlYWRlcihoKSYmdGhpcy5ob3Qudmlldy5hcHBlbmRDb2xIZWFkZXIoaCx0aGlzLnRhYmxlLnRoKSx0aGlz''@;'; + put 'put ''LnRhYmxlLnRCb2R5LmFwcGVuZENoaWxkKHRoaXMuY3JlYXRlQ29sKGgpKSx0aGlzLmNvbnRhaW5lci5jb250YWluZXIuYXBwZW5kQ2hpbGQodGhpcy50YWJsZS5mcmFnbWVudCkseS50YWJsZT10aGlzLnRhYmxlLnRhYmxlfX0se2tleToiZ2V0SGVpZ2h0cyIsdmFsdWU6ZnVuY3Rpb24oaCl7''@;'; + put 'put ''dGhpcy5pbmplY3RlZHx8dGhpcy5pbmplY3RUYWJsZSgpLFVyKHRoaXMucm93cyxmdW5jdGlvbih2KXtoKHYucm93LEQxKHYudGFibGUpLTEpfSl9fSx7a2V5OiJnZXRXaWR0aHMiLHZhbHVlOmZ1bmN0aW9uKGgpe3RoaXMuaW5qZWN0ZWR8fHRoaXMuaW5qZWN0VGFibGUoKSxVcih0aGlzLmNv''@;'; + put 'put ''bHVtbnMsZnVuY3Rpb24odil7dmFyIHk9di50YWJsZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtoKHYuY29sLE1hdGguY2VpbCh5LndpZHRoKSl9KX19LHtrZXk6InNldFNldHRpbmdzIix2YWx1ZTpmdW5jdGlvbihoKXt0aGlzLnNldHRpbmdzPWh9fSx7a2V5OiJzZXRTZXR0aW5nIix2YWx1''@;'; + put 'put ''ZTpmdW5jdGlvbihoLHYpe3RoaXMuc2V0dGluZ3N8fCh0aGlzLnNldHRpbmdzPXt9KSx0aGlzLnNldHRpbmdzW2hdPXZ9fSx7a2V5OiJnZXRTZXR0aW5ncyIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zZXR0aW5nc319LHtrZXk6ImdldFNldHRpbmciLHZhbHVlOmZ1bmN0aW9uKGgp''@;'; + put 'put ''e3JldHVybiB0aGlzLnNldHRpbmdzP3RoaXMuc2V0dGluZ3NbaF06bnVsbH19LHtrZXk6ImNyZWF0ZUNvbEdyb3Vwc0NvbCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD10aGlzLHY9dGhpcy5ob3Qucm9vdERvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTtyZXR1cm4gdGhpcy5ob3Qu''@;'; + put 'put ''aGFzUm93SGVhZGVycygpJiZ2LmFwcGVuZENoaWxkKHRoaXMuY3JlYXRlQ29sRWxlbWVudCgtMSkpLHRoaXMuc2FtcGxlcy5mb3JFYWNoKGZ1bmN0aW9uKHkpe1VyKHkuc3RyaW5ncyxmdW5jdGlvbihDKXt2LmFwcGVuZENoaWxkKGguY3JlYXRlQ29sRWxlbWVudChDLmNvbCkpfSl9KSx2fX0s''@;'; + put 'put ''e2tleToiY3JlYXRlUm93Iix2YWx1ZTpmdW5jdGlvbihoKXt2YXIgdj10aGlzLHk9dGhpcy5ob3Qucm9vdERvY3VtZW50LEM9eS5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCksST15LmNyZWF0ZUVsZW1lbnQoInRoIik7cmV0dXJuIHRoaXMuaG90Lmhhc1Jvd0hlYWRlcnMoKSYmKHRoaXMuaG90''@;'; + put 'put ''LnZpZXcuYXBwZW5kUm93SGVhZGVyKGgsSSksQy5hcHBlbmRDaGlsZChJKSksdGhpcy5zYW1wbGVzLmZvckVhY2goZnVuY3Rpb24oail7VXIoai5zdHJpbmdzLGZ1bmN0aW9uKHVlKXt2YXIgX2U9dWUuY29sLEJlPXYuaG90LmdldENlbGxNZXRhKGgsX2UpO0JlLmNvbD1fZSxCZS5yb3c9aDt2''@;'; + put 'put ''YXIgTmU9di5ob3QuZ2V0Q2VsbFJlbmRlcmVyKEJlKSxLZT15LmNyZWF0ZUVsZW1lbnQoInRkIik7S2Uuc2V0QXR0cmlidXRlKCJnaG9zdC10YWJsZSIsMSksTmUodi5ob3QsS2UsaCxfZSx2LmhvdC5jb2xUb1Byb3AoX2UpLHVlLnZhbHVlLEJlKSxDLmFwcGVuZENoaWxkKEtlKX0pfSksQ319''@;'; + put 'put ''LHtrZXk6ImFwcGVuZENvbHVtbkhlYWRlcnNSb3ciLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9dGhpcyx2PXRoaXMuaG90LnJvb3REb2N1bWVudCx5PXYuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpLEM9W107aWYodGhpcy5ob3QuaGFzUm93SGVhZGVycygpKXt2YXIgST12LmNyZWF0ZUVsZW1l''@;'; + put 'put ''bnQoInRoIik7Qy5wdXNoKFstMSxJXSkseS5hcHBlbmRDaGlsZChJKX10aGlzLnNhbXBsZXMuZm9yRWFjaChmdW5jdGlvbihqKXtVcihqLnN0cmluZ3MsZnVuY3Rpb24odWUpe3ZhciBfZT11ZS5jb2wsQmU9di5jcmVhdGVFbGVtZW50KCJ0aCIpO0MucHVzaChbX2UsQmVdKSx5LmFwcGVuZENo''@;'; + put 'put ''aWxkKEJlKX0pfSksdGhpcy50YWJsZS50SGVhZC5hcHBlbmRDaGlsZCh5KSxVcihDLGZ1bmN0aW9uKGope3ZhciB1ZT1mdW5jdGlvbiBObnQoZCxnKXtyZXR1cm4gZnVuY3Rpb24gem50KGQpe2lmKEFycmF5LmlzQXJyYXkoZCkpcmV0dXJuIGR9KGQpfHxmdW5jdGlvbiBabnQoZCxnKXt2YXIg''@;'; + put 'put ''aD1udWxsPT1kP251bGw6InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJmRbU3ltYm9sLml0ZXJhdG9yXXx8ZFsiQEBpdGVyYXRvciJdO2lmKG51bGwhPWgpe3ZhciBJLGosdj1bXSx5PSEwLEM9ITE7dHJ5e2ZvcihoPWguY2FsbChkKTshKHk9KEk9aC5uZXh0KCkpLmRvbmUpJiYodi5wdXNo''@;'; + put 'put ''KEkudmFsdWUpLCFnfHx2Lmxlbmd0aCE9PWcpO3k9ITApO31jYXRjaCh1ZSl7Qz0hMCxqPXVlfWZpbmFsbHl7dHJ5eyF5JiZudWxsIT1oLnJldHVybiYmaC5yZXR1cm4oKX1maW5hbGx5e2lmKEMpdGhyb3cgan19cmV0dXJuIHZ9fShkLGcpfHxmdW5jdGlvbiBqbnQoZCxnKXtpZihkKXtpZigi''@;'; + put 'put ''c3RyaW5nIj09dHlwZW9mIGQpcmV0dXJuIHlNZShkLGcpO3ZhciBoPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChkKS5zbGljZSg4LC0xKTtpZigiT2JqZWN0Ij09PWgmJmQuY29uc3RydWN0b3ImJihoPWQuY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1ofHwiU2V0Ij09PWgpcmV0''@;'; + put 'put ''dXJuIEFycmF5LmZyb20oZCk7aWYoIkFyZ3VtZW50cyI9PT1ofHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChoKSlyZXR1cm4geU1lKGQsZyl9fShkLGcpfHxmdW5jdGlvbiBWbnQoKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQg''@;'; + put 'put ''dG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfShqLDIpO2guaG90LnZpZXcuYXBwZW5kQ29sSGVhZGVyKHVlWzBd''@;'; + put 'put ''LHVlWzFdKX0pfX0se2tleToiY3JlYXRlQ29sIix2YWx1ZTpmdW5jdGlvbihoKXt2YXIgdj10aGlzLHk9dGhpcy5ob3Qucm9vdERvY3VtZW50LEM9eS5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7cmV0dXJuIHRoaXMuc2FtcGxlcy5mb3JFYWNoKGZ1bmN0aW9uKEkpe1VyKEkuc3RyaW5ncyxm''@;'; + put 'put ''dW5jdGlvbihqKXt2YXIgdWU9ai5yb3csX2U9di5ob3QuZ2V0Q2VsbE1ldGEodWUsaCk7X2UuY29sPWgsX2Uucm93PXVlO3ZhciBCZT12LmhvdC5nZXRDZWxsUmVuZGVyZXIoX2UpLE5lPXkuY3JlYXRlRWxlbWVudCgidGQiKSxLZT15LmNyZWF0ZUVsZW1lbnQoInRyIik7TmUuc2V0QXR0cmli''@;'; + put 'put ''dXRlKCJnaG9zdC10YWJsZSIsMSksQmUodi5ob3QsTmUsdWUsaCx2LmhvdC5jb2xUb1Byb3AoaCksai52YWx1ZSxfZSksS2UuYXBwZW5kQ2hpbGQoTmUpLEMuYXBwZW5kQ2hpbGQoS2UpfSl9KSxDfX0se2tleToiY2xlYW4iLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5yb3dzLmxlbmd0aD0wLHRo''@;'; + put 'put ''aXMucm93c1stMV09dm9pZCAwLHRoaXMuY29sdW1ucy5sZW5ndGg9MCx0aGlzLnNhbXBsZXMmJnRoaXMuc2FtcGxlcy5jbGVhcigpLHRoaXMuc2FtcGxlcz1udWxsLHRoaXMucmVtb3ZlVGFibGUoKX19LHtrZXk6ImluamVjdFRhYmxlIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBoPWFyZ3VtZW50''@;'; + put 'put ''cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTpudWxsO3RoaXMuaW5qZWN0ZWR8fCgoaHx8dGhpcy5ob3Qucm9vdEVsZW1lbnQpLmFwcGVuZENoaWxkKHRoaXMuY29udGFpbmVyLmZyYWdtZW50KSx0aGlzLmluamVjdGVkPSEwKX19LHtrZXk6InJlbW92ZVRh''@;'; + put 'put ''YmxlIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuaW5qZWN0ZWQmJnRoaXMuY29udGFpbmVyLmNvbnRhaW5lci5wYXJlbnROb2RlJiYodGhpcy5jb250YWluZXIuY29udGFpbmVyLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodGhpcy5jb250YWluZXIuY29udGFpbmVyKSx0aGlzLmNvbnRhaW5lcj1u''@;'; + put 'put ''dWxsLHRoaXMuaW5qZWN0ZWQ9ITEpfX0se2tleToiY3JlYXRlQ29sRWxlbWVudCIsdmFsdWU6ZnVuY3Rpb24oaCl7dmFyIHY9dGhpcy5ob3Qucm9vdERvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNvbCIpO3JldHVybiB2LnN0eWxlLndpZHRoPSIiLmNvbmNhdCh0aGlzLmhvdC52aWV3Ll93dC53''@;'; + put 'put ''dFRhYmxlLmdldFN0cmV0Y2hlZENvbHVtbldpZHRoKGgpLCJweCIpLHZ9fSx7a2V5OiJjcmVhdGVUYWJsZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06IiIsdj10aGlzLmhvdC5yb290RG9jdW1l''@;'; + put 'put ''bnQseT12LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSxDPXYuY3JlYXRlRWxlbWVudCgidGFibGUiKSxJPXYuY3JlYXRlRWxlbWVudCgidGhlYWQiKSxqPXYuY3JlYXRlRWxlbWVudCgidGJvZHkiKSx1ZT12LmNyZWF0ZUVsZW1lbnQoImNvbGdyb3VwIiksX2U9di5jcmVhdGVFbGVtZW50KCJ0''@;'; + put 'put ''ciIpLEJlPXYuY3JlYXRlRWxlbWVudCgidGgiKTtyZXR1cm4gdGhpcy5pc1ZlcnRpY2FsKCkmJkMuYXBwZW5kQ2hpbGQodWUpLHRoaXMuaXNIb3Jpem9udGFsKCkmJihfZS5hcHBlbmRDaGlsZChCZSksSS5hcHBlbmRDaGlsZChfZSksQy5zdHlsZS50YWJsZUxheW91dD0iYXV0byIsQy5zdHls''@;'; + put 'put ''ZS53aWR0aD0iYXV0byIpLEMuYXBwZW5kQ2hpbGQoSSksdGhpcy5pc1ZlcnRpY2FsKCkmJmouYXBwZW5kQ2hpbGQoX2UpLEMuYXBwZW5kQ2hpbGQoaiksTzAoQyxoKSx5LmFwcGVuZENoaWxkKEMpLHtmcmFnbWVudDp5LHRhYmxlOkMsdEhlYWQ6SSx0Qm9keTpqLGNvbEdyb3VwOnVlLHRyOl9l''@;'; + put 'put ''LHRoOkJlfX19LHtrZXk6ImNyZWF0ZUNvbnRhaW5lciIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06IiIsdj10aGlzLmhvdC5yb290RG9jdW1lbnQseT12LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQo''@;'; + put 'put ''KSxDPXYuY3JlYXRlRWxlbWVudCgiZGl2IiksST0iaHRHaG9zdFRhYmxlIGh0QXV0b1NpemUgIi5jb25jYXQoaC50cmltKCkpO3JldHVybiBPMChDLEkpLHkuYXBwZW5kQ2hpbGQoQykse2ZyYWdtZW50OnksY29udGFpbmVyOkN9fX0se2tleToiaXNWZXJ0aWNhbCIsdmFsdWU6ZnVuY3Rpb24o''@;'; + put 'put ''KXtyZXR1cm4hKCF0aGlzLnJvd3MubGVuZ3RofHx0aGlzLmNvbHVtbnMubGVuZ3RoKX19LHtrZXk6ImlzSG9yaXpvbnRhbCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4hKCF0aGlzLmNvbHVtbnMubGVuZ3RofHx0aGlzLnJvd3MubGVuZ3RoKX19XSksZH0oKTtjb25zdCBHNmU9WW50O2Z1bmN0''@;'; + put 'put ''aW9uIGJNZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fXZh''@;'; + put 'put ''ciBYbnQ9ZnVuY3Rpb24oKXtmdW5jdGlvbiBkKGcpeyhmdW5jdGlvbiBRbnQoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0pKHRoaXMsZCksdGhpcy5zYW1wbGVzPW51bGwsdGhpcy5kYXRh''@;'; + put 'put ''RmFjdG9yeT1nLHRoaXMuY3VzdG9tU2FtcGxlQ291bnQ9bnVsbCx0aGlzLmFsbG93RHVwbGljYXRlcz0hMX1yZXR1cm4gZnVuY3Rpb24gSm50KGQsZyxoKXtnJiZiTWUoZC5wcm90b3R5cGUsZyksaCYmYk1lKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRh''@;'; + put 'put ''YmxlOiExfSl9KGQsW3trZXk6ImdldFNhbXBsZUNvdW50Iix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmN1c3RvbVNhbXBsZUNvdW50P3RoaXMuY3VzdG9tU2FtcGxlQ291bnQ6ZC5TQU1QTEVfQ09VTlR9fSx7a2V5OiJzZXRTYW1wbGVDb3VudCIsdmFsdWU6ZnVuY3Rpb24oaCl7dGhp''@;'; + put 'put ''cy5jdXN0b21TYW1wbGVDb3VudD1ofX0se2tleToic2V0QWxsb3dEdXBsaWNhdGVzIix2YWx1ZTpmdW5jdGlvbihoKXt0aGlzLmFsbG93RHVwbGljYXRlcz1ofX0se2tleToiZ2VuZXJhdGVSb3dTYW1wbGVzIix2YWx1ZTpmdW5jdGlvbihoLHYpe3JldHVybiB0aGlzLmdlbmVyYXRlU2FtcGxl''@;'; + put 'put ''cygicm93Iix2LGgpfX0se2tleToiZ2VuZXJhdGVDb2x1bW5TYW1wbGVzIix2YWx1ZTpmdW5jdGlvbihoLHYpe3JldHVybiB0aGlzLmdlbmVyYXRlU2FtcGxlcygiY29sIix2LGgpfX0se2tleToiZ2VuZXJhdGVTYW1wbGVzIix2YWx1ZTpmdW5jdGlvbihoLHYseSl7dmFyIEM9dGhpcyxJPW5l''@;'; + put 'put ''dyBNYXAsaj0ibnVtYmVyIj09dHlwZW9mIHk/e2Zyb206eSx0bzp5fTp5O3JldHVybiBpYShqLmZyb20sai50byxmdW5jdGlvbihCZSl7dmFyIE5lPUMuZ2VuZXJhdGVTYW1wbGUoaCx2LEJlKTtJLnNldChCZSxOZSl9KSxJfX0se2tleToiZ2VuZXJhdGVTYW1wbGUiLHZhbHVlOmZ1bmN0aW9u''@;'; + put 'put ''KGgsdix5KXt2YXIgQz10aGlzO2lmKCJyb3ciIT09aCYmImNvbCIhPT1oKXRocm93IG5ldyBFcnJvcigiVW5zdXBwb3J0ZWQgc2FtcGxlIHR5cGUiKTt2YXIgST1uZXcgTWFwLGo9InJvdyI9PT1oPyJjb2wiOiJyb3ciLHVlPVtdO3JldHVybiBpYSh2LmZyb20sdi50byxmdW5jdGlvbihfZSl7''@;'; + put 'put ''dmFyIE90LEJlPSJyb3ciPT09aD9DLmRhdGFGYWN0b3J5KHksX2UpOkMuZGF0YUZhY3RvcnkoX2UseSksTmU9QmUudmFsdWUsS2U9QmUuYnVuZGxlU2VlZCxkdD0ic3RyaW5nIj09dHlwZW9mIEtlJiZLZS5sZW5ndGg+MDtPdD1kdD9LZTp4bChOZSk/IiIuY29uY2F0KE9iamVjdC5rZXlzKE5l''@;'; + put 'put ''KS5sZW5ndGgpOkFycmF5LmlzQXJyYXkoTmUpPyIiLmNvbmNhdChOZS5sZW5ndGgpOiIiLmNvbmNhdChldShOZSkubGVuZ3RoKSxJLmhhcyhPdCl8fEkuc2V0KE90LHtuZWVkZWQ6Qy5nZXRTYW1wbGVDb3VudCgpLHN0cmluZ3M6W119KTt2YXIgJHQ9SS5nZXQoT3QpOyR0Lm5lZWRlZCYmKCEo''@;'; + put 'put ''dWUuaW5kZXhPZihOZSk+LTEpfHxDLmFsbG93RHVwbGljYXRlc3x8ZHQpJiYoJHQuc3RyaW5ncy5wdXNoKGZ1bmN0aW9uIFVudChkLGcsaCl7cmV0dXJuIGcgaW4gZD9PYmplY3QuZGVmaW5lUHJvcGVydHkoZCxnLHt2YWx1ZTpoLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRh''@;'; + put 'put ''YmxlOiEwfSk6ZFtnXT1oLGR9KHt2YWx1ZTpOZX0saixfZSkpLHVlLnB1c2goTmUpLCR0Lm5lZWRlZC09MSl9KSxJfX1dLFt7a2V5OiJTQU1QTEVfQ09VTlQiLGdldDpmdW5jdGlvbigpe3JldHVybiAzfX1dKSxkfSgpO2NvbnN0IF9NZT1YbnQ7ZnVuY3Rpb24gVzZlKGQpe3JldHVybihXNmU9''@;'; + put 'put ''ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZyl7cmV0dXJuIHR5cGVvZiBnfTpmdW5jdGlvbihnKXtyZXR1cm4gZyYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZy5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZyE9''@;'; + put 'put ''PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGd9KShkKX1mdW5jdGlvbiBDTWUoZCxnKXtyZXR1cm4gZnVuY3Rpb24gZXJ0KGQpe2lmKEFycmF5LmlzQXJyYXkoZCkpcmV0dXJuIGR9KGQpfHxmdW5jdGlvbiBxbnQoZCxnKXt2YXIgaD1udWxsPT1kP251bGw6InVuZGVmaW5lZCIh''@;'; + put 'put ''PXR5cGVvZiBTeW1ib2wmJmRbU3ltYm9sLml0ZXJhdG9yXXx8ZFsiQEBpdGVyYXRvciJdO2lmKG51bGwhPWgpe3ZhciBJLGosdj1bXSx5PSEwLEM9ITE7dHJ5e2ZvcihoPWguY2FsbChkKTshKHk9KEk9aC5uZXh0KCkpLmRvbmUpJiYodi5wdXNoKEkudmFsdWUpLCFnfHx2Lmxlbmd0aCE9PWcp''@;'; + put 'put ''O3k9ITApO31jYXRjaCh1ZSl7Qz0hMCxqPXVlfWZpbmFsbHl7dHJ5eyF5JiZudWxsIT1oLnJldHVybiYmaC5yZXR1cm4oKX1maW5hbGx5e2lmKEMpdGhyb3cgan19cmV0dXJuIHZ9fShkLGcpfHxmdW5jdGlvbiAkbnQoZCxnKXtpZihkKXtpZigic3RyaW5nIj09dHlwZW9mIGQpcmV0dXJuIGtN''@;'; + put 'put ''ZShkLGcpO3ZhciBoPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChkKS5zbGljZSg4LC0xKTtpZigiT2JqZWN0Ij09PWgmJmQuY29uc3RydWN0b3ImJihoPWQuY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1ofHwiU2V0Ij09PWgpcmV0dXJuIEFycmF5LmZyb20oZCk7aWYoIkFyZ3Vt''@;'; + put 'put ''ZW50cyI9PT1ofHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChoKSlyZXR1cm4ga01lKGQsZyl9fShkLGcpfHxmdW5jdGlvbiBLbnQoKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxl''@;'; + put 'put ''IGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfWZ1bmN0aW9uIGtNZShkLGcpeyhudWxsPT1nfHxnPmQubGVuZ3RoKSYmKGc9ZC5sZW5ndGgpO2Zvcih2YXIgaD0w''@;'; + put 'put ''LHY9bmV3IEFycmF5KGcpO2g8ZztoKyspdltoXT1kW2hdO3JldHVybiB2fWZ1bmN0aW9uIFNNZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53''@;'; + put 'put ''cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fWZ1bmN0aW9uIFpTKCl7cmV0dXJuIFpTPSJ1bmRlZmluZWQiIT10eXBlb2YgUmVmbGVjdCYmUmVmbGVjdC5nZXQ/UmVmbGVjdC5nZXQuYmluZCgpOmZ1bmN0aW9uKGcsaCx2KXt2YXIgeT1ycnQoZyxoKTtpZih5''@;'; + put 'put ''KXt2YXIgQz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHksaCk7cmV0dXJuIEMuZ2V0P0MuZ2V0LmNhbGwoYXJndW1lbnRzLmxlbmd0aDwzP2c6dik6Qy52YWx1ZX19LFpTLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBycnQoZCxnKXtmb3IoOyFPYmplY3QucHJvdG90''@;'; + put 'put ''eXBlLmhhc093blByb3BlcnR5LmNhbGwoZCxnKSYmbnVsbCE9PShkPUR2KGQpKTspO3JldHVybiBkfWZ1bmN0aW9uIFk2ZShkLGcpe3JldHVybihZNmU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24odix5KXtyZXR1cm4gdi5fX3By''@;'; + put 'put ''b3RvX189eSx2fSkoZCxnKX1mdW5jdGlvbiBhcnQoZCxnKXtpZihnJiYoIm9iamVjdCI9PT1XNmUoZyl8fCJmdW5jdGlvbiI9PXR5cGVvZiBnKSlyZXR1cm4gZztpZih2b2lkIDAhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIkRlcml2ZWQgY29uc3RydWN0b3JzIG1heSBvbmx5IHJldHVybiBv''@;'; + put 'put ''YmplY3Qgb3IgdW5kZWZpbmVkIik7cmV0dXJuIE1NZShkKX1mdW5jdGlvbiBNTWUoZCl7aWYodm9pZCAwPT09ZCl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3JldHVybiBkfWZ1bmN0''@;'; + put 'put ''aW9uIER2KGQpe3JldHVybihEdj1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihoKXtyZXR1cm4gaC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihoKX0pKGQpfXpvLmdldFNpbmdsZXRvbigpLnJlZ2lzdGVyKCJtb2Rp''@;'; + put 'put ''ZnlBdXRvQ29sdW1uU2l6ZVNlZWQiKTt2YXIgcHo9ImF1dG9Db2x1bW5TaXplIixVNmU9bmV3IFdlYWtNYXAsY3J0PWZ1bmN0aW9uKGQpeyFmdW5jdGlvbiBpcnQoZCxnKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZyYmbnVsbCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVz''@;'; + put 'put ''c2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTtkLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGcmJmcucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6ZCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3Rv''@;'; + put 'put ''dHlwZSIse3dyaXRhYmxlOiExfSksZyYmWTZlKGQsZyl9KGgsZCk7dmFyIGc9ZnVuY3Rpb24gb3J0KGQpe3ZhciBnPWZ1bmN0aW9uIGxydCgpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0fHxSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiEx''@;'; + put 'put ''O2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBQcm94eSlyZXR1cm4hMDt0cnl7cmV0dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLGZ1bmN0aW9uKCl7fSkpLCEwfWNhdGNoKGQpe3JldHVybiExfX0oKTtyZXR1cm4gZnVuY3Rpb24o''@;'; + put 'put ''KXt2YXIgeSx2PUR2KGQpO2lmKGcpe3ZhciBDPUR2KHRoaXMpLmNvbnN0cnVjdG9yO3k9UmVmbGVjdC5jb25zdHJ1Y3Qodixhcmd1bWVudHMsQyl9ZWxzZSB5PXYuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBhcnQodGhpcyx5KX19KGgpO2Z1bmN0aW9uIGgodil7dmFyIHk7cmV0dXJu''@;'; + put 'put ''IGZ1bmN0aW9uIHRydChkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSh0aGlzLGgpLHk9Zy5jYWxsKHRoaXMsdiksVTZlLnNldChNTWUoeSkse2NhY2hlZENvbHVtbkhlYWRlcnM6W119KSx5''@;'; + put 'put ''Lmdob3N0VGFibGU9bmV3IEc2ZSh5LmhvdCkseS5zYW1wbGVzR2VuZXJhdG9yPW5ldyBfTWUoZnVuY3Rpb24oQyxJKXt2YXIgaj15LmhvdC5nZXRDZWxsTWV0YShDLEkpLHVlPSIiO2ouc3Bhbm5lZHx8KHVlPXkuaG90LmdldERhdGFBdENlbGwoQyxJKSk7dmFyIF9lPSIiO3JldHVybiB5Lmhv''@;'; + put 'put ''dC5oYXNIb29rKCJtb2RpZnlBdXRvQ29sdW1uU2l6ZVNlZWQiKSYmKF9lPXkuaG90LnJ1bkhvb2tzKCJtb2RpZnlBdXRvQ29sdW1uU2l6ZVNlZWQiLF9lLGosdWUpKSx7dmFsdWU6dWUsYnVuZGxlU2VlZDpfZX19KSx5LmZpcnN0Q2FsY3VsYXRpb249ITAseS5pblByb2dyZXNzPSExLHkubWVh''@;'; + put 'put ''c3VyZWRDb2x1bW5zPTAseS5jb2x1bW5XaWR0aHNNYXA9bmV3IER3LHkuaG90LmNvbHVtbkluZGV4TWFwcGVyLnJlZ2lzdGVyTWFwKCJhdXRvQ29sdW1uU2l6ZSIseS5jb2x1bW5XaWR0aHNNYXApLHkuYWRkSG9vaygiYmVmb3JlQ29sdW1uUmVzaXplIixmdW5jdGlvbihDLEksail7cmV0dXJu''@;'; + put 'put ''IHkub25CZWZvcmVDb2x1bW5SZXNpemUoQyxJLGopfSkseX1yZXR1cm4gZnVuY3Rpb24gbnJ0KGQsZyxoKXtnJiZTTWUoZC5wcm90b3R5cGUsZyksaCYmU01lKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGgsW3trZXk6ImlzRW5hYmxl''@;'; + put 'put ''ZCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4hMSE9PXRoaXMuaG90LmdldFNldHRpbmdzKClbcHpdJiYhdGhpcy5ob3QuZ2V0U2V0dGluZ3MoKS5jb2xXaWR0aHN9fSx7a2V5OiJlbmFibGVQbHVnaW4iLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcztpZighdGhpcy5lbmFibGVkKXt2YXIg''@;'; + put 'put ''Qz10aGlzLmhvdC5nZXRTZXR0aW5ncygpW3B6XTtDJiZudWxsIT1DLnVzZUhlYWRlcnMmJnRoaXMuZ2hvc3RUYWJsZS5zZXRTZXR0aW5nKCJ1c2VIZWFkZXJzIixDLnVzZUhlYWRlcnMpLHRoaXMuc2V0U2FtcGxpbmdPcHRpb25zKCksdGhpcy5hZGRIb29rKCJhZnRlckxvYWREYXRhIixmdW5j''@;'; + put 'put ''dGlvbigpe3JldHVybiB5Lm9uQWZ0ZXJMb2FkRGF0YS5hcHBseSh5LGFyZ3VtZW50cyl9KSx0aGlzLmFkZEhvb2soImJlZm9yZUNoYW5nZVJlbmRlciIsZnVuY3Rpb24oSSl7cmV0dXJuIHkub25CZWZvcmVDaGFuZ2UoSSl9KSx0aGlzLmFkZEhvb2soImFmdGVyRm9ybXVsYXNWYWx1ZXNVcGRh''@;'; + put 'put ''dGUiLGZ1bmN0aW9uKEkpe3JldHVybiB5Lm9uQWZ0ZXJGb3JtdWxhc1ZhbHVlc1VwZGF0ZShJKX0pLHRoaXMuYWRkSG9vaygiYmVmb3JlVmlld1JlbmRlciIsZnVuY3Rpb24oSSl7cmV0dXJuIHkub25CZWZvcmVWaWV3UmVuZGVyKEkpfSksdGhpcy5hZGRIb29rKCJtb2RpZnlDb2xXaWR0aCIs''@;'; + put 'put ''ZnVuY3Rpb24oSSxqKXtyZXR1cm4geS5nZXRDb2x1bW5XaWR0aChqLEkpfSksdGhpcy5hZGRIb29rKCJhZnRlckluaXQiLGZ1bmN0aW9uKCl7cmV0dXJuIHkub25BZnRlckluaXQoKX0pLFpTKER2KGgucHJvdG90eXBlKSwiZW5hYmxlUGx1Z2luIix0aGlzKS5jYWxsKHRoaXMpfX19LHtrZXk6''@;'; + put 'put ''InVwZGF0ZVBsdWdpbiIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzLmZpbmRDb2x1bW5zV2hlcmVIZWFkZXJXYXNDaGFuZ2VkKCk7eS5sZW5ndGgmJih0aGlzLmNsZWFyQ2FjaGUoeSksdGhpcy5jYWxjdWxhdGVWaXNpYmxlQ29sdW1uc1dpZHRoKCkpLFpTKER2KGgucHJvdG90eXBlKSwi''@;'; + put 'put ''dXBkYXRlUGx1Z2luIix0aGlzKS5jYWxsKHRoaXMpfX0se2tleToiZGlzYWJsZVBsdWdpbiIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzO1pTKER2KGgucHJvdG90eXBlKSwiZGlzYWJsZVBsdWdpbiIsdGhpcykuY2FsbCh0aGlzKSx0aGlzLmFkZEhvb2soImJlZm9yZUNvbHVtblJlc2l6''@;'; + put 'put ''ZSIsZnVuY3Rpb24oQyxJLGope3JldHVybiB5Lm9uQmVmb3JlQ29sdW1uUmVzaXplKEMsSSxqKX0pfX0se2tleToiY2FsY3VsYXRlVmlzaWJsZUNvbHVtbnNXaWR0aCIsdmFsdWU6ZnVuY3Rpb24oKXtpZih0aGlzLmhvdC5jb3VudFJvd3MoKSl7dmFyIEM9dGhpcy5ob3QucmVuZGVyQ2FsbCxJ''@;'; + put 'put ''PXRoaXMuZ2V0Rmlyc3RWaXNpYmxlQ29sdW1uKCksaj10aGlzLmdldExhc3RWaXNpYmxlQ29sdW1uKCk7LTE9PT1JfHwtMT09PWp8fHRoaXMuY2FsY3VsYXRlQ29sdW1uc1dpZHRoKHtmcm9tOkksdG86an0sdm9pZCAwLEMpfX19LHtrZXk6ImNhbGN1bGF0ZUNvbHVtbnNXaWR0aCIsdmFsdWU6''@;'; + put 'put ''ZnVuY3Rpb24oKXt2YXIgeT10aGlzLEM9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOntmcm9tOjAsdG86dGhpcy5ob3QuY291bnRDb2xzKCktMX0sST1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVu''@;'; + put 'put ''dHNbMV06e2Zyb206MCx0bzp0aGlzLmhvdC5jb3VudFJvd3MoKS0xfSxqPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdJiZhcmd1bWVudHNbMl0sdWU9Im51bWJlciI9PXR5cGVvZiBDP3tmcm9tOkMsdG86Q306QyxfZT0ibnVtYmVyIj09dHlwZW9mIEk/e2Zyb206''@;'; + put 'put ''SSx0bzpJfTpJO2lhKHVlLmZyb20sdWUudG8sZnVuY3Rpb24oQmUpe3ZhciBOZT15LmhvdC50b1BoeXNpY2FsQ29sdW1uKEJlKTtudWxsPT09TmUmJihOZT1CZSksKGp8fG51bGw9PT15LmNvbHVtbldpZHRoc01hcC5nZXRWYWx1ZUF0SW5kZXgoTmUpJiYheS5ob3QuX2dldENvbFdpZHRoRnJv''@;'; + put 'put ''bVNldHRpbmdzKE5lKSkmJlVyKHkuc2FtcGxlc0dlbmVyYXRvci5nZW5lcmF0ZUNvbHVtblNhbXBsZXMoQmUsX2UpLGZ1bmN0aW9uKGR0KXt2YXIgT3Q9Q01lKGR0LDIpO3JldHVybiB5Lmdob3N0VGFibGUuYWRkQ29sdW1uKE90WzBdLE90WzFdKX0pfSksdGhpcy5naG9zdFRhYmxlLmNvbHVt''@;'; + put 'put ''bnMubGVuZ3RoJiYodGhpcy5ob3QuYmF0Y2hFeGVjdXRpb24oZnVuY3Rpb24oKXt5Lmdob3N0VGFibGUuZ2V0V2lkdGhzKGZ1bmN0aW9uKEJlLE5lKXt2YXIgS2U9eS5ob3QudG9QaHlzaWNhbENvbHVtbihCZSk7eS5jb2x1bW5XaWR0aHNNYXAuc2V0VmFsdWVBdEluZGV4KEtlLE5lKX0pfSwh''@;'; + put 'put ''MCksdGhpcy5tZWFzdXJlZENvbHVtbnM9dWUudG8rMSx0aGlzLmdob3N0VGFibGUuY2xlYW4oKSl9fSx7a2V5OiJjYWxjdWxhdGVBbGxDb2x1bW5zV2lkdGgiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcyxDPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2Fy''@;'; + put 'put ''Z3VtZW50c1swXTp7ZnJvbTowLHRvOnRoaXMuaG90LmNvdW50Um93cygpLTF9LEk9MCxqPXRoaXMuaG90LmNvdW50Q29scygpLTEsdWU9bnVsbDt0aGlzLmluUHJvZ3Jlc3M9ITA7dmFyIF9lPWZ1bmN0aW9uIE5lKCl7aWYoIXkuaG90KXJldHVybiBUWih1ZSksdm9pZCh5LmluUHJvZ3Jlc3M9''@;'; + put 'put ''ITEpO3kuY2FsY3VsYXRlQ29sdW1uc1dpZHRoKHtmcm9tOkksdG86TWF0aC5taW4oSStoLkNBTENVTEFUSU9OX1NURVAsail9LEMpLChJPUkraC5DQUxDVUxBVElPTl9TVEVQKzEpPGo/dWU9emhlKE5lKTooVFoodWUpLHkuaW5Qcm9ncmVzcz0hMSx5LmhvdC52aWV3LmFkanVzdEVsZW1lbnRz''@;'; + put 'put ''U2l6ZSgpKX0sQmU9dGhpcy5nZXRTeW5jQ2FsY3VsYXRpb25MaW1pdCgpO3RoaXMuZmlyc3RDYWxjdWxhdGlvbiYmQmU+PTAmJih0aGlzLmNhbGN1bGF0ZUNvbHVtbnNXaWR0aCh7ZnJvbTowLHRvOkJlfSxDKSx0aGlzLmZpcnN0Q2FsY3VsYXRpb249ITEsST1CZSsxKSxJPGo/X2UoKTp0aGlz''@;'; + put 'put ''LmluUHJvZ3Jlc3M9ITF9fSx7a2V5OiJzZXRTYW1wbGluZ09wdGlvbnMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcy5ob3QuZ2V0U2V0dGluZ3MoKVtwel0sQz15JiZvMSh5LCJzYW1wbGluZ1JhdGlvIik/eS5zYW1wbGluZ1JhdGlvOnZvaWQgMCxJPXkmJm8xKHksImFsbG93U2FtcGxl''@;'; + put 'put ''RHVwbGljYXRlcyIpP3kuYWxsb3dTYW1wbGVEdXBsaWNhdGVzOnZvaWQgMDtDJiYhaXNOYU4oQykmJnRoaXMuc2FtcGxlc0dlbmVyYXRvci5zZXRTYW1wbGVDb3VudChwYXJzZUludChDLDEwKSksSSYmdGhpcy5zYW1wbGVzR2VuZXJhdG9yLnNldEFsbG93RHVwbGljYXRlcyhJKX19LHtrZXk6''@;'; + put 'put ''InJlY2FsY3VsYXRlQWxsQ29sdW1uc1dpZHRoIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuaG90LnZpZXcmJnRoaXMuaG90LnZpZXcuX3d0Lnd0VGFibGUuaXNWaXNpYmxlKCkmJih0aGlzLmNsZWFyQ2FjaGUoKSx0aGlzLmNhbGN1bGF0ZUFsbENvbHVtbnNXaWR0aCgpKX19LHtrZXk6ImdldFN5''@;'; + put 'put ''bmNDYWxjdWxhdGlvbkxpbWl0Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXMuaG90LmdldFNldHRpbmdzKClbcHpdLEM9aC5TWU5DX0NBTENVTEFUSU9OX0xJTUlULEk9dGhpcy5ob3QuY291bnRDb2xzKCktMTtyZXR1cm4geGwoeSkmJihpM2UoQz15LnN5bmNMaW1pdCk/Qz1CM2UoSSxD''@;'; + put 'put ''KTpDPj49MCksTWF0aC5taW4oQyxJKX19LHtrZXk6ImdldENvbHVtbldpZHRoIix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06dm9pZCAwLEk9IShhcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9''@;'; + put 'put ''PWFyZ3VtZW50c1syXSl8fGFyZ3VtZW50c1syXSxqPUM7cmV0dXJuIHZvaWQgMD09PWomJihqPXRoaXMuY29sdW1uV2lkdGhzTWFwLmdldFZhbHVlQXRJbmRleCh0aGlzLmhvdC50b1BoeXNpY2FsQ29sdW1uKHkpKSxJJiYibnVtYmVyIj09dHlwZW9mIGomJihqPU1hdGgubWF4KGosSGRlLkRF''@;'; + put 'put ''RkFVTFRfV0lEVEgpKSksan19LHtrZXk6ImdldEZpcnN0VmlzaWJsZUNvbHVtbiIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzLmhvdC52aWV3Ll93dDtpZih5Lnd0Vmlld3BvcnQuY29sdW1uc1Zpc2libGVDYWxjdWxhdG9yKXt2YXIgQz15Lnd0VGFibGUuZ2V0Rmlyc3RWaXNpYmxlQ29s''@;'; + put 'put ''dW1uKCk7aWYoLTEhPT1DKXJldHVybiB0aGlzLmhvdC5jb2x1bW5JbmRleE1hcHBlci5nZXRWaXN1YWxGcm9tUmVuZGVyYWJsZUluZGV4KEMpfWlmKHkud3RWaWV3cG9ydC5jb2x1bW5zUmVuZGVyQ2FsY3VsYXRvcil7dmFyIEk9eS53dFRhYmxlLmdldEZpcnN0UmVuZGVyZWRDb2x1bW4oKTtp''@;'; + put 'put ''ZigtMSE9PUkpcmV0dXJuIHRoaXMuaG90LmNvbHVtbkluZGV4TWFwcGVyLmdldFZpc3VhbEZyb21SZW5kZXJhYmxlSW5kZXgoSSl9cmV0dXJuLTF9fSx7a2V5OiJnZXRMYXN0VmlzaWJsZUNvbHVtbiIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzLmhvdC52aWV3Ll93dDtpZih5Lnd0Vmll''@;'; + put 'put ''d3BvcnQuY29sdW1uc1Zpc2libGVDYWxjdWxhdG9yKXt2YXIgQz15Lnd0VGFibGUuZ2V0TGFzdFZpc2libGVDb2x1bW4oKTtpZigtMSE9PUMpcmV0dXJuIHRoaXMuaG90LmNvbHVtbkluZGV4TWFwcGVyLmdldFZpc3VhbEZyb21SZW5kZXJhYmxlSW5kZXgoQyl9aWYoeS53dFZpZXdwb3J0LmNv''@;'; + put 'put ''bHVtbnNSZW5kZXJDYWxjdWxhdG9yKXt2YXIgST15Lnd0VGFibGUuZ2V0TGFzdFJlbmRlcmVkQ29sdW1uKCk7aWYoLTEhPT1JKXJldHVybiB0aGlzLmhvdC5jb2x1bW5JbmRleE1hcHBlci5nZXRWaXN1YWxGcm9tUmVuZGVyYWJsZUluZGV4KEkpfXJldHVybi0xfX0se2tleToiZmluZENvbHVt''@;'; + put 'put ''bnNXaGVyZUhlYWRlcldhc0NoYW5nZWQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcy5ob3QuZ2V0Q29sSGVhZGVyKCksST1VNmUuZ2V0KHRoaXMpLmNhY2hlZENvbHVtbkhlYWRlcnM7cmV0dXJuIFN1KHksZnVuY3Rpb24odWUsX2UsQmUpe3ZhciBOZT1JLmxlbmd0aDtyZXR1cm4oTmUt''@;'; + put 'put ''MTxCZXx8SVtCZV0hPT1fZSkmJnVlLnB1c2goQmUpLE5lLTE8QmU/SS5wdXNoKF9lKTpJW0JlXT1fZSx1ZX0sW10pfX0se2tleToiY2xlYXJDYWNoZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzLEM9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1l''@;'; + put 'put ''bnRzWzBdOltdO0MubGVuZ3RoP3RoaXMuaG90LmJhdGNoRXhlY3V0aW9uKGZ1bmN0aW9uKCl7VXIoQyxmdW5jdGlvbihJKXt5LmNvbHVtbldpZHRoc01hcC5zZXRWYWx1ZUF0SW5kZXgoSSxudWxsKX0pfSwhMCk6dGhpcy5jb2x1bW5XaWR0aHNNYXAuY2xlYXIoKX19LHtrZXk6ImlzTmVlZFJl''@;'; + put 'put ''Y2FsY3VsYXRlIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiEhZzQodGhpcy5jb2x1bW5XaWR0aHNNYXAuZ2V0VmFsdWVzKCkuc2xpY2UoMCx0aGlzLm1lYXN1cmVkQ29sdW1ucyksZnVuY3Rpb24oeSl7cmV0dXJuIG51bGw9PT15fSkubGVuZ3RofX0se2tleToib25CZWZvcmVWaWV3UmVuZGVy''@;'; + put 'put ''Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuY2FsY3VsYXRlVmlzaWJsZUNvbHVtbnNXaWR0aCgpLHRoaXMuaXNOZWVkUmVjYWxjdWxhdGUoKSYmIXRoaXMuaW5Qcm9ncmVzcyYmdGhpcy5jYWxjdWxhdGVBbGxDb2x1bW5zV2lkdGgoKX19LHtrZXk6Im9uQWZ0ZXJMb2FkRGF0YSIsdmFsdWU6ZnVu''@;'; + put 'put ''Y3Rpb24oKXt2YXIgeT10aGlzO3RoaXMuaG90LnZpZXc/dGhpcy5yZWNhbGN1bGF0ZUFsbENvbHVtbnNXaWR0aCgpOnNldFRpbWVvdXQoZnVuY3Rpb24oKXt5LmhvdCYmeS5yZWNhbGN1bGF0ZUFsbENvbHVtbnNXaWR0aCgpfSwwKX19LHtrZXk6Im9uQmVmb3JlQ2hhbmdlIix2YWx1ZTpmdW5j''@;'; + put 'put ''dGlvbih5KXt2YXIgQz10aGlzLEk9T2woeSxmdW5jdGlvbihqKXt2YXIgdWU9Q01lKGosMik7cmV0dXJuIEMuaG90LnRvUGh5c2ljYWxDb2x1bW4oQy5ob3QucHJvcFRvQ29sKHVlWzFdKSl9KTt0aGlzLmNsZWFyQ2FjaGUoQXJyYXkuZnJvbShuZXcgU2V0KEkpKSl9fSx7a2V5OiJvbkJlZm9y''@;'; + put 'put ''ZUNvbHVtblJlc2l6ZSIsdmFsdWU6ZnVuY3Rpb24oeSxDLEkpe3ZhciBqPXk7cmV0dXJuIEkmJih0aGlzLmNhbGN1bGF0ZUNvbHVtbnNXaWR0aChDLHZvaWQgMCwhMCksaj10aGlzLmdldENvbHVtbldpZHRoKEMsdm9pZCAwLCExKSksan19LHtrZXk6Im9uQWZ0ZXJJbml0Iix2YWx1ZTpmdW5j''@;'; + put 'put ''dGlvbigpe1U2ZS5nZXQodGhpcykuY2FjaGVkQ29sdW1uSGVhZGVycz10aGlzLmhvdC5nZXRDb2xIZWFkZXIoKX19LHtrZXk6Im9uQWZ0ZXJGb3JtdWxhc1ZhbHVlc1VwZGF0ZSIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEk9T2woZzQoeSxmdW5jdGlvbihqKXt2YXIgdWU7cmV0dXJuIFRvKG51''@;'; + put 'put ''bGw9PT0odWU9ai5hZGRyZXNzKXx8dm9pZCAwPT09dWU/dm9pZCAwOnVlLmNvbCl9KSxmdW5jdGlvbihqKXtyZXR1cm4gai5hZGRyZXNzLmNvbH0pO3RoaXMuY2xlYXJDYWNoZShBcnJheS5mcm9tKG5ldyBTZXQoSSkpKX19LHtrZXk6ImRlc3Ryb3kiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5n''@;'; + put 'put ''aG9zdFRhYmxlLmNsZWFuKCksWlMoRHYoaC5wcm90b3R5cGUpLCJkZXN0cm95Iix0aGlzKS5jYWxsKHRoaXMpfX1dLFt7a2V5OiJQTFVHSU5fS0VZIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gcHp9fSx7a2V5OiJQTFVHSU5fUFJJT1JJVFkiLGdldDpmdW5jdGlvbigpe3JldHVybiAxMH19LHtr''@;'; + put 'put ''ZXk6IlNFVFRJTkdfS0VZUyIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuITB9fSx7a2V5OiJDQUxDVUxBVElPTl9TVEVQIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gNTB9fSx7a2V5OiJTWU5DX0NBTENVTEFUSU9OX0xJTUlUIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gNTB9fV0pLGh9KFlzKSx6Uz17''@;'; + put 'put ''aG9yaXpvbnRhbDoiaG9yaXpvbnRhbCIsdmVydGljYWw6InZlcnRpY2FsIn07ZnVuY3Rpb24gUTZlKGQpe3JldHVybihRNmU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZyl7cmV0dXJuIHR5cGVvZiBnfTpmdW5j''@;'; + put 'put ''dGlvbihnKXtyZXR1cm4gZyYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZy5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZyE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGd9KShkKX1mdW5jdGlvbiBFTWUoZCxnKXtpZihkKXtpZigic3RyaW5nIj09dHlwZW9mIGQpcmV0dXJu''@;'; + put 'put ''IEo2ZShkLGcpO3ZhciBoPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChkKS5zbGljZSg4LC0xKTtpZigiT2JqZWN0Ij09PWgmJmQuY29uc3RydWN0b3ImJihoPWQuY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1ofHwiU2V0Ij09PWgpcmV0dXJuIEFycmF5LmZyb20oZCk7aWYoIkFy''@;'; + put 'put ''Z3VtZW50cyI9PT1ofHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChoKSlyZXR1cm4gSjZlKGQsZyl9fWZ1bmN0aW9uIEo2ZShkLGcpeyhudWxsPT1nfHxnPmQubGVuZ3RoKSYmKGc9ZC5sZW5ndGgpO2Zvcih2YXIgaD0wLHY9bmV3IEFycmF5KGcpO2g8''@;'; + put 'put ''ZztoKyspdltoXT1kW2hdO3JldHVybiB2fWZ1bmN0aW9uIHhNZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0''@;'; + put 'put ''LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fWZ1bmN0aW9uIEdTKCl7cmV0dXJuIEdTPSJ1bmRlZmluZWQiIT10eXBlb2YgUmVmbGVjdCYmUmVmbGVjdC5nZXQ/UmVmbGVjdC5nZXQuYmluZCgpOmZ1bmN0aW9uKGcsaCx2KXt2YXIgeT1rcnQoZyxoKTtpZih5KXt2YXIgQz1PYmplY3QuZ2V0''@;'; + put 'put ''T3duUHJvcGVydHlEZXNjcmlwdG9yKHksaCk7cmV0dXJuIEMuZ2V0P0MuZ2V0LmNhbGwoYXJndW1lbnRzLmxlbmd0aDwzP2c6dik6Qy52YWx1ZX19LEdTLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBrcnQoZCxnKXtmb3IoOyFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5''@;'; + put 'put ''LmNhbGwoZCxnKSYmbnVsbCE9PShkPUx2KGQpKTspO3JldHVybiBkfWZ1bmN0aW9uIFg2ZShkLGcpe3JldHVybihYNmU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24odix5KXtyZXR1cm4gdi5fX3Byb3RvX189eSx2fSkoZCxnKX1m''@;'; + put 'put ''dW5jdGlvbiBFcnQoZCxnKXtpZihnJiYoIm9iamVjdCI9PT1RNmUoZyl8fCJmdW5jdGlvbiI9PXR5cGVvZiBnKSlyZXR1cm4gZztpZih2b2lkIDAhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIkRlcml2ZWQgY29uc3RydWN0b3JzIG1heSBvbmx5IHJldHVybiBvYmplY3Qgb3IgdW5kZWZpbmVk''@;'; + put 'put ''Iik7cmV0dXJuIFRNZShkKX1mdW5jdGlvbiBUTWUoZCl7aWYodm9pZCAwPT09ZCl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3JldHVybiBkfWZ1bmN0aW9uIEx2KGQpe3JldHVybihM''@;'; + put 'put ''dj1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihoKXtyZXR1cm4gaC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihoKX0pKGQpfXpvLmdldFNpbmdsZXRvbigpLnJlZ2lzdGVyKCJtb2RpZnlBdXRvZmlsbFJhbmdlIiks''@;'; + put 'put ''em8uZ2V0U2luZ2xldG9uKCkucmVnaXN0ZXIoImJlZm9yZUF1dG9maWxsIiksem8uZ2V0U2luZ2xldG9uKCkucmVnaXN0ZXIoImFmdGVyQXV0b2ZpbGwiKTt2YXIgSU1lPSJhdXRvZmlsbCIsSXJ0PVsiZmlsbEhhbmRsZSJdLE9ydD1mdW5jdGlvbihkKXshZnVuY3Rpb24gU3J0KGQsZyl7aWYo''@;'; + put 'put ''ImZ1bmN0aW9uIiE9dHlwZW9mIGcmJm51bGwhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uIik7ZC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShnJiZnLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVl''@;'; + put 'put ''OmQsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGcmJlg2ZShkLGcpfShoLGQpO3ZhciBnPWZ1bmN0aW9uIE1ydChkKXt2YXIgZz1mdW5jdGlvbiB4cnQoKXtpZigidW5kZWZpbmVkIj09dHlw''@;'; + put 'put ''ZW9mIFJlZmxlY3R8fCFSZWZsZWN0LmNvbnN0cnVjdHx8UmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT10eXBlb2YgUHJveHkpcmV0dXJuITA7dHJ5e3JldHVybiBCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9v''@;'; + put 'put ''bGVhbixbXSxmdW5jdGlvbigpe30pKSwhMH1jYXRjaChkKXtyZXR1cm4hMX19KCk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHksdj1MdihkKTtpZihnKXt2YXIgQz1Mdih0aGlzKS5jb25zdHJ1Y3Rvcjt5PVJlZmxlY3QuY29uc3RydWN0KHYsYXJndW1lbnRzLEMpfWVsc2UgeT12LmFwcGx5KHRo''@;'; + put 'put ''aXMsYXJndW1lbnRzKTtyZXR1cm4gRXJ0KHRoaXMseSl9fShoKTtmdW5jdGlvbiBoKHYpe3ZhciB5O3JldHVybiBmdW5jdGlvbiBfcnQoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0odGhp''@;'; + put 'put ''cyxoKSwoeT1nLmNhbGwodGhpcyx2KSkuZXZlbnRNYW5hZ2VyPW5ldyBMMShUTWUoeSkpLHkuYWRkaW5nU3RhcnRlZD0hMSx5Lm1vdXNlRG93bk9uQ2VsbENvcm5lcj0hMSx5Lm1vdXNlRHJhZ091dHNpZGU9ITEseS5oYW5kbGVEcmFnZ2VkQ2VsbHM9MCx5LmRpcmVjdGlvbnM9W10seS5hdXRv''@;'; + put 'put ''SW5zZXJ0Um93PSExLHl9cmV0dXJuIGZ1bmN0aW9uIENydChkLGcsaCl7ZyYmeE1lKGQucHJvdG90eXBlLGcpLGgmJnhNZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShoLFt7a2V5OiJpc0VuYWJsZWQiLHZhbHVlOmZ1bmN0aW9uKCl7''@;'; + put 'put ''cmV0dXJuIHRoaXMuaG90LmdldFNldHRpbmdzKCkuZmlsbEhhbmRsZX19LHtrZXk6ImVuYWJsZVBsdWdpbiIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzO3RoaXMuZW5hYmxlZHx8KHRoaXMubWFwU2V0dGluZ3MoKSx0aGlzLnJlZ2lzdGVyRXZlbnRzKCksdGhpcy5hZGRIb29rKCJhZnRl''@;'; + put 'put ''ck9uQ2VsbENvcm5lck1vdXNlRG93biIsZnVuY3Rpb24oQyl7cmV0dXJuIHkub25BZnRlckNlbGxDb3JuZXJNb3VzZURvd24oQyl9KSx0aGlzLmFkZEhvb2soImFmdGVyT25DZWxsQ29ybmVyRGJsQ2xpY2siLGZ1bmN0aW9uKEMpe3JldHVybiB5Lm9uQ2VsbENvcm5lckRibENsaWNrKEMpfSks''@;'; + put 'put ''dGhpcy5hZGRIb29rKCJiZWZvcmVPbkNlbGxNb3VzZU92ZXIiLGZ1bmN0aW9uKEMsSSl7cmV0dXJuIHkub25CZWZvcmVDZWxsTW91c2VPdmVyKEkpfSksR1MoTHYoaC5wcm90b3R5cGUpLCJlbmFibGVQbHVnaW4iLHRoaXMpLmNhbGwodGhpcykpfX0se2tleToidXBkYXRlUGx1Z2luIix2YWx1''@;'; + put 'put ''ZTpmdW5jdGlvbigpe3RoaXMuZGlzYWJsZVBsdWdpbigpLHRoaXMuZW5hYmxlUGx1Z2luKCksR1MoTHYoaC5wcm90b3R5cGUpLCJ1cGRhdGVQbHVnaW4iLHRoaXMpLmNhbGwodGhpcyl9fSx7a2V5OiJkaXNhYmxlUGx1Z2luIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuY2xlYXJNYXBwZWRTZXR0''@;'; + put 'put ''aW5ncygpLEdTKEx2KGgucHJvdG90eXBlKSwiZGlzYWJsZVBsdWdpbiIsdGhpcykuY2FsbCh0aGlzKX19LHtrZXk6ImdldFNlbGVjdGlvbkRhdGEiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcyxDPXRoaXMuaG90LmdldFNlbGVjdGVkUmFuZ2VMYXN0KCksST1DLmdldFRvcFN0YXJ0Q29y''@;'; + put 'put ''bmVyKCksaj1JLnJvdyx1ZT1JLmNvbCxfZT1DLmdldEJvdHRvbUVuZENvcm5lcigpLEtlPXRoaXMuaG90LnJ1bkhvb2tzKCJtb2RpZnlDb3B5YWJsZVJhbmdlIixbe3N0YXJ0Um93Omosc3RhcnRDb2w6dWUsZW5kUm93Ol9lLnJvdyxlbmRDb2w6X2UuY29sfV0pLGR0PVtdLE90PVtdLCR0PVtd''@;'; + put 'put ''O3JldHVybiBVcihLZSxmdW5jdGlvbihmbil7Zm9yKHZhciBMbj1mbi5zdGFydFJvdztMbjw9Zm4uZW5kUm93O0xuKz0xKS0xPT09ZHQuaW5kZXhPZihMbikmJmR0LnB1c2goTG4pO2Zvcih2YXIgaXI9Zm4uc3RhcnRDb2w7aXI8PWZuLmVuZENvbDtpcis9MSktMT09PU90LmluZGV4T2YoaXIp''@;'; + put 'put ''JiZPdC5wdXNoKGlyKX0pLFVyKGR0LGZ1bmN0aW9uKGZuKXt2YXIgTG49W107VXIoT3QsZnVuY3Rpb24oaXIpe0xuLnB1c2goeS5ob3QuZ2V0Q29weWFibGVEYXRhKGZuLGlyKSl9KSwkdC5wdXNoKExuKX0pLCR0fX0se2tleToiZmlsbEluIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXM7''@;'; + put 'put ''aWYodGhpcy5ob3Quc2VsZWN0aW9uLmhpZ2hsaWdodC5nZXRGaWxsKCkuaXNFbXB0eSgpKXJldHVybiExO3ZhciBJPWZ1bmN0aW9uIEFydChkLGcpe3JldHVybiBmdW5jdGlvbiBicnQoZCl7aWYoQXJyYXkuaXNBcnJheShkKSlyZXR1cm4gZH0oZCl8fGZ1bmN0aW9uIHdydChkLGcpe3ZhciBo''@;'; + put 'put ''PW51bGw9PWQ/bnVsbDoidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmZFtTeW1ib2wuaXRlcmF0b3JdfHxkWyJAQGl0ZXJhdG9yIl07aWYobnVsbCE9aCl7dmFyIEksaix2PVtdLHk9ITAsQz0hMTt0cnl7Zm9yKGg9aC5jYWxsKGQpOyEoeT0oST1oLm5leHQoKSkuZG9uZSkmJih2LnB1c2go''@;'; + put 'put ''SS52YWx1ZSksIWd8fHYubGVuZ3RoIT09Zyk7eT0hMCk7fWNhdGNoKHVlKXtDPSEwLGo9dWV9ZmluYWxseXt0cnl7IXkmJm51bGwhPWgucmV0dXJuJiZoLnJldHVybigpfWZpbmFsbHl7aWYoQyl0aHJvdyBqfX1yZXR1cm4gdn19KGQsZyl8fEVNZShkLGcpfHxmdW5jdGlvbiB5cnQoKXt0aHJv''@;'; + put 'put ''dyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfSh0aGlz''@;'; + put 'put ''LmhvdC5zZWxlY3Rpb24uaGlnaGxpZ2h0LmdldEZpbGwoKS5nZXRWaXN1YWxDb3JuZXJzKCksNCksaj1JWzBdLHVlPUlbMV0sX2U9SVsyXSxCZT1JWzNdLE5lPXRoaXMuaG90LmdldFNlbGVjdGVkUmFuZ2VMYXN0KCksS2U9TmUuZ2V0VG9wU3RhcnRDb3JuZXIoKSxkdD1OZS5nZXRCb3R0b21F''@;'; + put 'put ''bmRDb3JuZXIoKTt0aGlzLnJlc2V0U2VsZWN0aW9uT2ZEcmFnZ2VkQXJlYSgpO3ZhciBPdD1bS2Uucm93LEtlLmNvbCxkdC5yb3csZHQuY29sXSwkdD10aGlzLmhvdC5ydW5Ib29rcygibW9kaWZ5QXV0b2ZpbGxSYW5nZSIsW01hdGgubWluKEtlLnJvdyxqKSxNYXRoLm1pbihLZS5jb2wsdWUp''@;'; + put 'put ''LE1hdGgubWF4KGR0LnJvdyxfZSksTWF0aC5tYXgoZHQuY29sLEJlKV0sT3QpLGZuPWZ1bmN0aW9uIGhydChkLGcsaCl7dmFyIHYseSxDO3JldHVybiBnWzBdPT09ZFswXSYmZ1sxXTxkWzFdPyhDPSJsZWZ0Iix2PWgoZ1swXSxnWzFdKSx5PWgoZ1syXSxkWzFdLTEpKTpnWzJdPT09ZFsyXSYm''@;'; + put 'put ''Z1swXT09PWRbMF0mJmdbM10+ZFszXT8oQz0icmlnaHQiLHY9aChnWzBdLGRbM10rMSkseT1oKGdbMl0sZ1szXSkpOmdbMF08ZFswXSYmZ1sxXT09PWRbMV0/KEM9InVwIix2PWgoZ1swXSxnWzFdKSx5PWgoZFswXS0xLGdbM10pKTpnWzJdPmRbMl0mJmdbMV09PT1kWzFdJiYoQz0iZG93biIs''@;'; + put 'put ''dj1oKGRbMl0rMSxnWzFdKSx5PWgoZ1syXSxnWzNdKSksdiYmdi5ub3JtYWxpemUoKSx5JiZ5Lm5vcm1hbGl6ZSgpLHtkaXJlY3Rpb25PZkRyYWc6QyxzdGFydE9mRHJhZ0Nvb3Jkczp2LGVuZE9mRHJhZ0Nvb3Jkczp5fX0oT3QsJHQsZnVuY3Rpb24oZm8sSWEpe3JldHVybiB5LmhvdC5fY3Jl''@;'; + put 'put ''YXRlQ2VsbENvb3JkcyhmbyxJYSl9KSxMbj1mbi5kaXJlY3Rpb25PZkRyYWcsaXI9Zm4uc3RhcnRPZkRyYWdDb29yZHMsbXI9Zm4uZW5kT2ZEcmFnQ29vcmRzO2lmKGlyJiZpci5yb3c+LTEmJmlyLmNvbD4tMSl7dmFyIFNyPXRoaXMuZ2V0U2VsZWN0aW9uRGF0YSgpLHdyPU5lLmNsb25lKCks''@;'; + put 'put ''UXI9dGhpcy5ob3QuX2NyZWF0ZUNlbGxSYW5nZShpcixpcixtcikseWk9dGhpcy5ob3QucnVuSG9va3MoImJlZm9yZUF1dG9maWxsIixTcix3cixRcixMbik7aWYoITE9PT15aSlyZXR1cm4gdGhpcy5ob3Quc2VsZWN0aW9uLmhpZ2hsaWdodC5nZXRGaWxsKCkuY2xlYXIoKSx0aGlzLmhvdC5y''@;'; + put 'put ''ZW5kZXIoKSwhMTt2YXIgS2k9ZnVuY3Rpb24gZnJ0KGQsZyxoLHYpe3ZhciB5PWgubGVuZ3RoLEM9aD9oWzBdLmxlbmd0aDowLEk9W10saj1nLnJvdy1kLnJvdyx1ZT1nLmNvbC1kLmNvbDtpZigtMSE9PVsiZG93biIsInVwIl0uaW5kZXhPZih2KSl7Zm9yKHZhciBfZT1bXSxCZT0wO0JlPHVl''@;'; + put 'put ''O0JlKyspe3ZhciBOZT1wYXJzZUludChoWzBdW0JlXSwxMCksS2U9cGFyc2VJbnQoaFt5LTFdW0JlXSwxMCk7X2UucHVzaCgoImRvd24iPT09dj9LZS1OZTpOZS1LZSkvKHktMSl8fDApfUkucHVzaChfZSl9aWYoLTEhPT1bInJpZ2h0IiwibGVmdCJdLmluZGV4T2YodikpZm9yKHZhciBPdD0w''@;'; + put 'put ''O090PGo7T3QrKyl7dmFyICR0PXBhcnNlSW50KGhbT3RdWzBdLDEwKSxmbj1wYXJzZUludChoW090XVtDLTFdLDEwKTtJLnB1c2goWygicmlnaHQiPT09dj9mbi0kdDokdC1mbikvKEMtMSl8fDBdKX1yZXR1cm4gSX0oaXIsbXIsU3IsTG4pLFNvPXlpLFBvPXlpO2lmKFsidXAiLCJsZWZ0Il0u''@;'; + put 'put ''aW5kZXhPZihMbik+LTEmJigxIT09UG8ubGVuZ3RofHwwIT09UG9bMF0ubGVuZ3RoKSlpZihTbz1bXSwidXAiPT09TG4pZm9yKHZhciBTYT1tci5yb3ctaXIucm93KzEsSmE9U2ElUG8ubGVuZ3RoLGxhPTA7bGE8U2E7bGErKylTby5wdXNoKFBvWyhsYSsoUG8ubGVuZ3RoLUphKSklUG8ubGVu''@;'; + put 'put ''Z3RoXSk7ZWxzZSBmb3IodmFyIGFsPW1yLmNvbC1pci5jb2wrMSxPcz1hbCVQb1swXS5sZW5ndGgsUDA9MDtQMDxQby5sZW5ndGg7UDArKyl7U28ucHVzaChbXSk7Zm9yKHZhciBybz0wO3JvPGFsO3JvKyspU29bUDBdLnB1c2goUG9bUDBdWyhybysoUG9bUDBdLmxlbmd0aC1PcykpJVBvW1Aw''@;'; + put 'put ''XS5sZW5ndGhdKX10aGlzLmhvdC5wb3B1bGF0ZUZyb21BcnJheShpci5yb3csaXIuY29sLFNvLG1yLnJvdyxtci5jb2wsIiIuY29uY2F0KHRoaXMucGx1Z2luTmFtZSwiLmZpbGwiKSxudWxsLExuLEtpKSx0aGlzLnNldFNlbGVjdGlvbigkdCksdGhpcy5ob3QucnVuSG9va3MoImFmdGVyQXV0''@;'; + put 'put ''b2ZpbGwiLFNvLHdyLFFyLExuKSx0aGlzLmhvdC5yZW5kZXIoKX1lbHNlIHRoaXMuaG90Ll9yZWZyZXNoQm9yZGVycygpO3JldHVybiEwfX0se2tleToicmVkdWNlU2VsZWN0aW9uQXJlYUlmTmVlZGVkIix2YWx1ZTpmdW5jdGlvbih5KXtyZXR1cm4geS5yb3c8MCYmKHkucm93PTApLHkuY29s''@;'; + put 'put ''PDAmJih5LmNvbD0wKSx5fX0se2tleToiZ2V0Q29vcmRzT2ZEcmFnQW5kRHJvcEJvcmRlcnMiLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPXRoaXMuaG90LmdldFNlbGVjdGVkUmFuZ2VMYXN0KCksST1DLmdldEJvdHRvbUVuZENvcm5lcigpLGo9eTtpZih0aGlzLmRpcmVjdGlvbnMuaW5jbHVk''@;'; + put 'put ''ZXMoelMudmVydGljYWwpJiZ0aGlzLmRpcmVjdGlvbnMuaW5jbHVkZXMoelMuaG9yaXpvbnRhbCkpe3ZhciB1ZT1DLmdldFRvcFN0YXJ0Q29ybmVyKCk7KEkuY29sPD15LmNvbHx8dWUuY29sPj15LmNvbCkmJihqPXRoaXMuaG90Ll9jcmVhdGVDZWxsQ29vcmRzKEkucm93LHkuY29sKSksKEku''@;'; + put 'put ''cm93PHkucm93fHx1ZS5yb3c+eS5yb3cpJiYoaj10aGlzLmhvdC5fY3JlYXRlQ2VsbENvb3Jkcyh5LnJvdyxJLmNvbCkpfWVsc2UgaWYodGhpcy5kaXJlY3Rpb25zLmluY2x1ZGVzKHpTLnZlcnRpY2FsKSlqPXRoaXMuaG90Ll9jcmVhdGVDZWxsQ29vcmRzKHkucm93LEkuY29sKTtlbHNle2lm''@;'; + put 'put ''KCF0aGlzLmRpcmVjdGlvbnMuaW5jbHVkZXMoelMuaG9yaXpvbnRhbCkpcmV0dXJuO2o9dGhpcy5ob3QuX2NyZWF0ZUNlbGxDb29yZHMoSS5yb3cseS5jb2wpfXJldHVybiB0aGlzLnJlZHVjZVNlbGVjdGlvbkFyZWFJZk5lZWRlZChqKX19LHtrZXk6InNob3dCb3JkZXIiLHZhbHVlOmZ1bmN0''@;'; + put 'put ''aW9uKHkpe3ZhciBDPXRoaXMuZ2V0Q29vcmRzT2ZEcmFnQW5kRHJvcEJvcmRlcnMoeSk7QyYmdGhpcy5yZWRyYXdCb3JkZXJzKEMpfX0se2tleToiYWRkUm93Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXM7dGhpcy5ob3QuX3JlZ2lzdGVyVGltZW91dChmdW5jdGlvbigpe3kuaG90LmFs''@;'; + put 'put ''dGVyKCJpbnNlcnRfcm93Iix2b2lkIDAsMSwiIi5jb25jYXQoeS5wbHVnaW5OYW1lLCIuZmlsbCIpKSx5LmFkZGluZ1N0YXJ0ZWQ9ITF9LDIwMCl9fSx7a2V5OiJhZGROZXdSb3dJZk5lZWRlZCIsdmFsdWU6ZnVuY3Rpb24oKXtpZighdGhpcy5ob3Quc2VsZWN0aW9uLmhpZ2hsaWdodC5nZXRG''@;'; + put 'put ''aWxsKCkuaXNFbXB0eSgpJiYhMT09PXRoaXMuYWRkaW5nU3RhcnRlZCYmdGhpcy5hdXRvSW5zZXJ0Um93KXt2YXIgeT10aGlzLmhvdC5nZXRTZWxlY3RlZExhc3QoKSxDPXRoaXMuaG90LnNlbGVjdGlvbi5oaWdobGlnaHQuZ2V0RmlsbCgpLmdldFZpc3VhbENvcm5lcnMoKSxJPXRoaXMuaG90''@;'; + put 'put ''LmNvdW50Um93cygpO3lbMl08SS0xJiZDWzJdPT09SS0xJiYodGhpcy5hZGRpbmdTdGFydGVkPSEwLHRoaXMuYWRkUm93KCkpfX19LHtrZXk6ImdldEluZGV4T2ZMYXN0QWRqYWNlbnRGaWxsZWRJblJvdyIsdmFsdWU6ZnVuY3Rpb24oeSl7Zm9yKHZhciBqLEM9dGhpcy5ob3QuZ2V0RGF0YSgp''@;'; + put 'put ''LEk9dGhpcy5ob3QuY291bnRSb3dzKCksdWU9eVsyXSsxO3VlPEk7dWUrKyl7Zm9yKHZhciBfZT15WzFdO19lPD15WzNdO19lKyspaWYoQ1t1ZV1bX2VdKXJldHVybi0xOyhDW3VlXVt5WzFdLTFdfHxDW3VlXVt5WzNdKzFdKSYmKGo9dWUpfXJldHVybiBqfX0se2tleToiYWRkU2VsZWN0aW9u''@;'; + put 'put ''RnJvbVN0YXJ0QXJlYVRvU3BlY2lmaWNSb3dJbmRleCIsdmFsdWU6ZnVuY3Rpb24oeSxDKXt0aGlzLmhvdC5zZWxlY3Rpb24uaGlnaGxpZ2h0LmdldEZpbGwoKS5jbGVhcigpLmFkZCh0aGlzLmhvdC5fY3JlYXRlQ2VsbENvb3Jkcyh5WzBdLHlbMV0pKS5hZGQodGhpcy5ob3QuX2NyZWF0ZUNl''@;'; + put 'put ''bGxDb29yZHMoQyx5WzNdKSkuY29tbWl0KCl9fSx7a2V5OiJzZXRTZWxlY3Rpb24iLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDOyhDPXRoaXMuaG90KS5zZWxlY3RDZWxsLmFwcGx5KEMsZnVuY3Rpb24gcHJ0KGQpe3JldHVybiBmdW5jdGlvbiB2cnQoZCl7aWYoQXJyYXkuaXNBcnJheShkKSly''@;'; + put 'put ''ZXR1cm4gSjZlKGQpfShkKXx8ZnVuY3Rpb24gbXJ0KGQpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZudWxsIT1kW1N5bWJvbC5pdGVyYXRvcl18fG51bGwhPWRbIkBAaXRlcmF0b3IiXSlyZXR1cm4gQXJyYXkuZnJvbShkKX0oZCl8fEVNZShkKXx8ZnVuY3Rpb24gZ3J0KCl7dGhy''@;'; + put 'put ''b3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIHNwcmVhZCBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9KE9sKHksZnVu''@;'; + put 'put ''Y3Rpb24oSSl7cmV0dXJuIE1hdGgubWF4KEksMCl9KSkuY29uY2F0KFshMSwhMV0pKX19LHtrZXk6InNlbGVjdEFkamFjZW50Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXMuaG90LmdldFNlbGVjdGVkTGFzdCgpLEM9dGhpcy5nZXRJbmRleE9mTGFzdEFkamFjZW50RmlsbGVkSW5Sb3co''@;'; + put 'put ''eSk7cmV0dXJuLTEhPT1DJiZ2b2lkIDAhPT1DJiYodGhpcy5hZGRTZWxlY3Rpb25Gcm9tU3RhcnRBcmVhVG9TcGVjaWZpY1Jvd0luZGV4KHksQyksITApfX0se2tleToicmVzZXRTZWxlY3Rpb25PZkRyYWdnZWRBcmVhIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuaGFuZGxlRHJhZ2dlZENlbGxz''@;'; + put 'put ''PTAsdGhpcy5ob3Quc2VsZWN0aW9uLmhpZ2hsaWdodC5nZXRGaWxsKCkuY2xlYXIoKX19LHtrZXk6InJlZHJhd0JvcmRlcnMiLHZhbHVlOmZ1bmN0aW9uKHkpe3RoaXMuaG90LnNlbGVjdGlvbi5oaWdobGlnaHQuZ2V0RmlsbCgpLmNsZWFyKCkuYWRkKHRoaXMuaG90LmdldFNlbGVjdGVkUmFu''@;'; + put 'put ''Z2VMYXN0KCkuZnJvbSkuYWRkKHRoaXMuaG90LmdldFNlbGVjdGVkUmFuZ2VMYXN0KCkudG8pLmFkZCh5KS5jb21taXQoKSx0aGlzLmhvdC52aWV3LnJlbmRlcigpfX0se2tleToiZ2V0SWZNb3VzZVdhc0RyYWdnZWRPdXRzaWRlIix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz10aGlzLmhvdC5y''@;'; + put 'put ''b290RG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LEk9anUodGhpcy5ob3QudGFibGUpLnRvcC0odGhpcy5ob3Qucm9vdFdpbmRvdy5wYWdlWU9mZnNldHx8Qy5zY3JvbGxUb3ApK0QxKHRoaXMuaG90LnRhYmxlKSxqPWp1KHRoaXMuaG90LnRhYmxlKS5sZWZ0LSh0aGlzLmhvdC5yb290V2luZG93''@;'; + put 'put ''LnBhZ2VYT2Zmc2V0fHxDLnNjcm9sbExlZnQpK0UyKHRoaXMuaG90LnRhYmxlKTtyZXR1cm4geS5jbGllbnRZPkkmJnkuY2xpZW50WDw9an19LHtrZXk6InJlZ2lzdGVyRXZlbnRzIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXMsQz10aGlzLmhvdC5yb290RG9jdW1lbnQuZG9jdW1lbnRF''@;'; + put 'put ''bGVtZW50O3RoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoQywibW91c2V1cCIsZnVuY3Rpb24oKXtyZXR1cm4geS5vbk1vdXNlVXAoKX0pLHRoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoQywibW91c2Vtb3ZlIixmdW5jdGlvbihJKXtyZXR1cm4geS5vbk1vdXNl''@;'; + put 'put ''TW92ZShJKX0pfX0se2tleToib25DZWxsQ29ybmVyRGJsQ2xpY2siLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5zZWxlY3RBZGphY2VudCgpJiZ0aGlzLmZpbGxJbigpfX0se2tleToib25BZnRlckNlbGxDb3JuZXJNb3VzZURvd24iLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5oYW5kbGVEcmFnZ2Vk''@;'; + put 'put ''Q2VsbHM9MSx0aGlzLm1vdXNlRG93bk9uQ2VsbENvcm5lcj0hMH19LHtrZXk6Im9uQmVmb3JlQ2VsbE1vdXNlT3ZlciIsdmFsdWU6ZnVuY3Rpb24oeSl7dGhpcy5tb3VzZURvd25PbkNlbGxDb3JuZXImJiF0aGlzLmhvdC52aWV3LmlzTW91c2VEb3duKCkmJnRoaXMuaGFuZGxlRHJhZ2dlZENl''@;'; + put 'put ''bGxzJiYodGhpcy5oYW5kbGVEcmFnZ2VkQ2VsbHMrPTEsdGhpcy5zaG93Qm9yZGVyKHkpLHRoaXMuYWRkTmV3Um93SWZOZWVkZWQoKSl9fSx7a2V5OiJvbk1vdXNlVXAiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5oYW5kbGVEcmFnZ2VkQ2VsbHMmJih0aGlzLmhhbmRsZURyYWdnZWRDZWxscz4x''@;'; + put 'put ''JiZ0aGlzLmZpbGxJbigpLHRoaXMuaGFuZGxlRHJhZ2dlZENlbGxzPTAsdGhpcy5tb3VzZURvd25PbkNlbGxDb3JuZXI9ITEpfX0se2tleToib25Nb3VzZU1vdmUiLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPXRoaXMuZ2V0SWZNb3VzZVdhc0RyYWdnZWRPdXRzaWRlKHkpOyExPT09dGhpcy5h''@;'; + put 'put ''ZGRpbmdTdGFydGVkJiZ0aGlzLmhhbmRsZURyYWdnZWRDZWxscz4wJiZDPyh0aGlzLm1vdXNlRHJhZ091dHNpZGU9ITAsdGhpcy5hZGRpbmdTdGFydGVkPSEwKTp0aGlzLm1vdXNlRHJhZ091dHNpZGU9ITEsdGhpcy5tb3VzZURyYWdPdXRzaWRlJiZ0aGlzLmF1dG9JbnNlcnRSb3cmJnRoaXMu''@;'; + put 'put ''YWRkUm93KCl9fSx7a2V5OiJjbGVhck1hcHBlZFNldHRpbmdzIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuZGlyZWN0aW9ucy5sZW5ndGg9MCx0aGlzLmF1dG9JbnNlcnRSb3c9ITF9fSx7a2V5OiJtYXBTZXR0aW5ncyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT1mdW5jdGlvbiBkcnQoZCl7dmFy''@;'; + put 'put ''IGc9e307cmV0dXJuITA9PT1kPyhnLmRpcmVjdGlvbnM9T2JqZWN0LmtleXMoelMpLGcuYXV0b0luc2VydFJvdz0hMCk6eGwoZCk/KGcuYXV0b0luc2VydFJvdz0hIVRvKGQuYXV0b0luc2VydFJvdykmJmQuZGlyZWN0aW9uIT09elMuaG9yaXpvbnRhbCYmZC5hdXRvSW5zZXJ0Um93LGcuZGly''@;'; + put 'put ''ZWN0aW9ucz1UbyhkLmRpcmVjdGlvbik/W2QuZGlyZWN0aW9uXTpPYmplY3Qua2V5cyh6UykpOiJzdHJpbmciPT10eXBlb2YgZD8oZy5kaXJlY3Rpb25zPVtkXSxnLmF1dG9JbnNlcnRSb3c9ITApOihnLmRpcmVjdGlvbnM9W10sZy5hdXRvSW5zZXJ0Um93PSExKSxnfSh0aGlzLmhvdC5nZXRT''@;'; + put 'put ''ZXR0aW5ncygpLmZpbGxIYW5kbGUpO3RoaXMuZGlyZWN0aW9ucz15LmRpcmVjdGlvbnMsdGhpcy5hdXRvSW5zZXJ0Um93PXkuYXV0b0luc2VydFJvd319LHtrZXk6ImRlc3Ryb3kiLHZhbHVlOmZ1bmN0aW9uKCl7R1MoTHYoaC5wcm90b3R5cGUpLCJkZXN0cm95Iix0aGlzKS5jYWxsKHRoaXMp''@;'; + put 'put ''fX1dLFt7a2V5OiJQTFVHSU5fS0VZIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gSU1lfX0se2tleToiUExVR0lOX1BSSU9SSVRZIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gMjB9fSx7a2V5OiJTRVRUSU5HX0tFWVMiLGdldDpmdW5jdGlvbigpe3JldHVybltJTWVdLmNvbmNhdChJcnQpfX1dKSxo''@;'; + put 'put ''fShZcyk7ZnVuY3Rpb24gSzZlKGQpe3JldHVybihLNmU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZyl7cmV0dXJuIHR5cGVvZiBnfTpmdW5jdGlvbihnKXtyZXR1cm4gZyYmImZ1bmN0aW9uIj09dHlwZW9mIFN5''@;'; + put 'put ''bWJvbCYmZy5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZyE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGd9KShkKX1mdW5jdGlvbiBScnQoZCxnKXtyZXR1cm4gZnVuY3Rpb24gSHJ0KGQpe2lmKEFycmF5LmlzQXJyYXkoZCkpcmV0dXJuIGR9KGQpfHxmdW5jdGlvbiBGcnQoZCxn''@;'; + put 'put ''KXt2YXIgaD1udWxsPT1kP251bGw6InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJmRbU3ltYm9sLml0ZXJhdG9yXXx8ZFsiQEBpdGVyYXRvciJdO2lmKG51bGwhPWgpe3ZhciBJLGosdj1bXSx5PSEwLEM9ITE7dHJ5e2ZvcihoPWguY2FsbChkKTshKHk9KEk9aC5uZXh0KCkpLmRvbmUpJiYo''@;'; + put 'put ''di5wdXNoKEkudmFsdWUpLCFnfHx2Lmxlbmd0aCE9PWcpO3k9ITApO31jYXRjaCh1ZSl7Qz0hMCxqPXVlfWZpbmFsbHl7dHJ5eyF5JiZudWxsIT1oLnJldHVybiYmaC5yZXR1cm4oKX1maW5hbGx5e2lmKEMpdGhyb3cgan19cmV0dXJuIHZ9fShkLGcpfHxmdW5jdGlvbiBQcnQoZCxnKXtpZihk''@;'; + put 'put ''KXtpZigic3RyaW5nIj09dHlwZW9mIGQpcmV0dXJuIERNZShkLGcpO3ZhciBoPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChkKS5zbGljZSg4LC0xKTtpZigiT2JqZWN0Ij09PWgmJmQuY29uc3RydWN0b3ImJihoPWQuY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1ofHwiU2V0Ij09''@;'; + put 'put ''PWgpcmV0dXJuIEFycmF5LmZyb20oZCk7aWYoIkFyZ3VtZW50cyI9PT1ofHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChoKSlyZXR1cm4gRE1lKGQsZyl9fShkLGcpfHxmdW5jdGlvbiBCcnQoKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0''@;'; + put 'put ''dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfWZ1bmN0aW9uIERNZShkLGcpeyhudWxsPT1nfHxnPmQu''@;'; + put 'put ''bGVuZ3RoKSYmKGc9ZC5sZW5ndGgpO2Zvcih2YXIgaD0wLHY9bmV3IEFycmF5KGcpO2g8ZztoKyspdltoXT1kW2hdO3JldHVybiB2fWZ1bmN0aW9uIExNZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYu''@;'; + put 'put ''Y29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fWZ1bmN0aW9uIExPKCl7cmV0dXJuIExPPSJ1bmRlZmluZWQiIT10eXBlb2YgUmVmbGVjdCYmUmVmbGVjdC5nZXQ/UmVmbGVjdC5nZXQuYmluZCgpOmZ1''@;'; + put 'put ''bmN0aW9uKGcsaCx2KXt2YXIgeT1qcnQoZyxoKTtpZih5KXt2YXIgQz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHksaCk7cmV0dXJuIEMuZ2V0P0MuZ2V0LmNhbGwoYXJndW1lbnRzLmxlbmd0aDwzP2c6dik6Qy52YWx1ZX19LExPLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5j''@;'; + put 'put ''dGlvbiBqcnQoZCxnKXtmb3IoOyFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZCxnKSYmbnVsbCE9PShkPVB3KGQpKTspO3JldHVybiBkfWZ1bmN0aW9uICQ2ZShkLGcpe3JldHVybigkNmU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5i''@;'; + put 'put ''aW5kKCk6ZnVuY3Rpb24odix5KXtyZXR1cm4gdi5fX3Byb3RvX189eSx2fSkoZCxnKX1mdW5jdGlvbiBHcnQoZCxnKXtpZihnJiYoIm9iamVjdCI9PT1LNmUoZyl8fCJmdW5jdGlvbiI9PXR5cGVvZiBnKSlyZXR1cm4gZztpZih2b2lkIDAhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIkRlcml2''@;'; + put 'put ''ZWQgY29uc3RydWN0b3JzIG1heSBvbmx5IHJldHVybiBvYmplY3Qgb3IgdW5kZWZpbmVkIik7cmV0dXJuIGZ1bmN0aW9uIFdydChkKXtpZih2b2lkIDA9PT1kKXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcigidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJl''@;'; + put 'put ''ZW4gY2FsbGVkIik7cmV0dXJuIGR9KGQpfWZ1bmN0aW9uIFB3KGQpe3JldHVybihQdz1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihoKXtyZXR1cm4gaC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihoKX0pKGQpfXZh''@;'; + put 'put ''ciB4dGU9ImF1dG9Sb3dTaXplIixKcnQ9ZnVuY3Rpb24oZCl7IWZ1bmN0aW9uIFpydChkLGcpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBnJiZudWxsIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiIpO2Qu''@;'; + put 'put ''cHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZyYmZy5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTpkLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxnJiYkNmUoZCxnKX0oaCxkKTt2YXIg''@;'; + put 'put ''Zz1mdW5jdGlvbiB6cnQoZCl7dmFyIGc9ZnVuY3Rpb24gWXJ0KCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBSZWZsZWN0fHwhUmVmbGVjdC5jb25zdHJ1Y3R8fFJlZmxlY3QuY29uc3RydWN0LnNoYW0pcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIFByb3h5KXJldHVybiEwO3RyeXty''@;'; + put 'put ''ZXR1cm4gQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10sZnVuY3Rpb24oKXt9KSksITB9Y2F0Y2goZCl7cmV0dXJuITF9fSgpO3JldHVybiBmdW5jdGlvbigpe3ZhciB5LHY9UHcoZCk7aWYoZyl7dmFyIEM9UHcodGhpcykuY29uc3Ry''@;'; + put 'put ''dWN0b3I7eT1SZWZsZWN0LmNvbnN0cnVjdCh2LGFyZ3VtZW50cyxDKX1lbHNlIHk9di5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIEdydCh0aGlzLHkpfX0oaCk7ZnVuY3Rpb24gaCh2KXt2YXIgeTtyZXR1cm4gZnVuY3Rpb24gTnJ0KGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhy''@;'; + put 'put ''b3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsaCksKHk9Zy5jYWxsKHRoaXMsdikpLnJvd0hlaWdodHNNYXA9dm9pZCAwLHkuaGVhZGVySGVpZ2h0PW51bGwseS5naG9zdFRhYmxlPW5ldyBHNmUoeS5ob3QpLHkuc2FtcGxlc0dlbmVy''@;'; + put 'put ''YXRvcj1uZXcgX01lKGZ1bmN0aW9uKEMsSSl7dmFyIGo7cmV0dXJuIEM+PTA/aj15LmhvdC5nZXREYXRhQXRDZWxsKEMsSSk6LTE9PT1DJiYoaj15LmhvdC5nZXRDb2xIZWFkZXIoSSkpLHt2YWx1ZTpqfX0pLHkuZmlyc3RDYWxjdWxhdGlvbj0hMCx5LmluUHJvZ3Jlc3M9ITEseS5tZWFzdXJl''@;'; + put 'put ''ZFJvd3M9MCx5LnJvd0hlaWdodHNNYXA9bmV3IER3LHkuaG90LnJvd0luZGV4TWFwcGVyLnJlZ2lzdGVyTWFwKCJhdXRvUm93U2l6ZSIseS5yb3dIZWlnaHRzTWFwKSx5LmFkZEhvb2soImJlZm9yZVJvd1Jlc2l6ZSIsZnVuY3Rpb24oQyxJLGope3JldHVybiB5Lm9uQmVmb3JlUm93UmVzaXpl''@;'; + put 'put ''KEMsSSxqKX0pLHl9cmV0dXJuIGZ1bmN0aW9uIFZydChkLGcsaCl7ZyYmTE1lKGQucHJvdG90eXBlLGcpLGgmJkxNZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShoLFt7a2V5OiJpc0VuYWJsZWQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFy''@;'; + put 'put ''IHk9dGhpcy5ob3QuZ2V0U2V0dGluZ3MoKVt4dGVdO3JldHVybiEwPT09eXx8eGwoeSl9fSx7a2V5OiJlbmFibGVQbHVnaW4iLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpczt0aGlzLmVuYWJsZWR8fCh0aGlzLnNldFNhbXBsaW5nT3B0aW9ucygpLHRoaXMuYWRkSG9vaygiYWZ0ZXJMb2Fk''@;'; + put 'put ''RGF0YSIsZnVuY3Rpb24oKXtyZXR1cm4geS5vbkFmdGVyTG9hZERhdGEuYXBwbHkoeSxhcmd1bWVudHMpfSksdGhpcy5hZGRIb29rKCJiZWZvcmVDaGFuZ2VSZW5kZXIiLGZ1bmN0aW9uKEMpe3JldHVybiB5Lm9uQmVmb3JlQ2hhbmdlKEMpfSksdGhpcy5hZGRIb29rKCJiZWZvcmVDb2x1bW5S''@;'; + put 'put ''ZXNpemUiLGZ1bmN0aW9uKCl7cmV0dXJuIHkucmVjYWxjdWxhdGVBbGxSb3dzSGVpZ2h0KCl9KSx0aGlzLmFkZEhvb2soImJlZm9yZVZpZXdSZW5kZXIiLGZ1bmN0aW9uKEMpe3JldHVybiB5Lm9uQmVmb3JlVmlld1JlbmRlcihDKX0pLHRoaXMuYWRkSG9vaygibW9kaWZ5Um93SGVpZ2h0Iixm''@;'; + put 'put ''dW5jdGlvbihDLEkpe3JldHVybiB5LmdldFJvd0hlaWdodChJLEMpfSksdGhpcy5hZGRIb29rKCJtb2RpZnlDb2x1bW5IZWFkZXJIZWlnaHQiLGZ1bmN0aW9uKCl7cmV0dXJuIHkuZ2V0Q29sdW1uSGVhZGVySGVpZ2h0KCl9KSxMTyhQdyhoLnByb3RvdHlwZSksImVuYWJsZVBsdWdpbiIsdGhp''@;'; + put 'put ''cykuY2FsbCh0aGlzKSl9fSx7a2V5OiJkaXNhYmxlUGx1Z2luIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXM7dGhpcy5oZWFkZXJIZWlnaHQ9bnVsbCxMTyhQdyhoLnByb3RvdHlwZSksImRpc2FibGVQbHVnaW4iLHRoaXMpLmNhbGwodGhpcyksdGhpcy5hZGRIb29rKCJiZWZvcmVSb3dS''@;'; + put 'put ''ZXNpemUiLGZ1bmN0aW9uKEMsSSxqKXtyZXR1cm4geS5vbkJlZm9yZVJvd1Jlc2l6ZShDLEksail9KX19LHtrZXk6ImNhbGN1bGF0ZVJvd3NIZWlnaHQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcyxDPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3Vt''@;'; + put 'put ''ZW50c1swXTp7ZnJvbTowLHRvOnRoaXMuaG90LmNvdW50Um93cygpLTF9LEk9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOntmcm9tOjAsdG86dGhpcy5ob3QuY291bnRDb2xzKCktMX0saj1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9''@;'; + put 'put ''PWFyZ3VtZW50c1syXSYmYXJndW1lbnRzWzJdLHVlPSJudW1iZXIiPT10eXBlb2YgQz97ZnJvbTpDLHRvOkN9OkMsX2U9Im51bWJlciI9PXR5cGVvZiBJP3tmcm9tOkksdG86SX06STtpZihudWxsIT09dGhpcy5ob3QuZ2V0Q29sSGVhZGVyKDApKXt2YXIgQmU9dGhpcy5zYW1wbGVzR2VuZXJh''@;'; + put 'put ''dG9yLmdlbmVyYXRlUm93U2FtcGxlcygtMSxfZSk7dGhpcy5naG9zdFRhYmxlLmFkZENvbHVtbkhlYWRlcnNSb3coQmUuZ2V0KC0xKSl9aWEodWUuZnJvbSx1ZS50byxmdW5jdGlvbihOZSl7KGp8fG51bGw9PT15LnJvd0hlaWdodHNNYXAuZ2V0VmFsdWVBdEluZGV4KE5lKSkmJlVyKHkuc2Ft''@;'; + put 'put ''cGxlc0dlbmVyYXRvci5nZW5lcmF0ZVJvd1NhbXBsZXMoTmUsX2UpLGZ1bmN0aW9uKGR0KXt2YXIgT3Q9UnJ0KGR0LDIpO3JldHVybiB5Lmdob3N0VGFibGUuYWRkUm93KE90WzBdLE90WzFdKX0pfSksdGhpcy5naG9zdFRhYmxlLnJvd3MubGVuZ3RoJiYodGhpcy5ob3QuYmF0Y2hFeGVjdXRp''@;'; + put 'put ''b24oZnVuY3Rpb24oKXt5Lmdob3N0VGFibGUuZ2V0SGVpZ2h0cyhmdW5jdGlvbihOZSxLZSl7TmU8MD95LmhlYWRlckhlaWdodD1LZTp5LnJvd0hlaWdodHNNYXAuc2V0VmFsdWVBdEluZGV4KHkuaG90LnRvUGh5c2ljYWxSb3coTmUpLEtlKX0pfSwhMCksdGhpcy5tZWFzdXJlZFJvd3M9dWUu''@;'; + put 'put ''dG8rMSx0aGlzLmdob3N0VGFibGUuY2xlYW4oKSl9fSx7a2V5OiJjYWxjdWxhdGVBbGxSb3dzSGVpZ2h0Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXMsQz1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06e2Zyb206MCx0bzp0aGlzLmhv''@;'; + put 'put ''dC5jb3VudENvbHMoKS0xfSxJPTAsaj10aGlzLmhvdC5jb3VudFJvd3MoKS0xLHVlPW51bGw7dGhpcy5pblByb2dyZXNzPSEwO3ZhciBfZT1mdW5jdGlvbiBOZSgpe2lmKCF5LmhvdClyZXR1cm4gVFoodWUpLHZvaWQoeS5pblByb2dyZXNzPSExKTt5LmNhbGN1bGF0ZVJvd3NIZWlnaHQoe2Zy''@;'; + put 'put ''b206SSx0bzpNYXRoLm1pbihJK2guQ0FMQ1VMQVRJT05fU1RFUCxqKX0sQyksKEk9SStoLkNBTENVTEFUSU9OX1NURVArMSk8aj91ZT16aGUoTmUpOihUWih1ZSkseS5pblByb2dyZXNzPSExLHkuaG90LnZpZXcuYWRqdXN0RWxlbWVudHNTaXplKCEwKSx5LmhvdC52aWV3Ll93dC53dE92ZXJs''@;'; + put 'put ''YXlzLmlubGluZVN0YXJ0T3ZlcmxheS5uZWVkRnVsbFJlbmRlciYmeS5ob3Qudmlldy5fd3Qud3RPdmVybGF5cy5pbmxpbmVTdGFydE92ZXJsYXkuY2xvbmUuZHJhdygpKX0sQmU9dGhpcy5nZXRTeW5jQ2FsY3VsYXRpb25MaW1pdCgpO3RoaXMuZmlyc3RDYWxjdWxhdGlvbiYmQmU+PTAmJih0''@;'; + put 'put ''aGlzLmNhbGN1bGF0ZVJvd3NIZWlnaHQoe2Zyb206MCx0bzpCZX0sQyksdGhpcy5maXJzdENhbGN1bGF0aW9uPSExLEk9QmUrMSksSTxqP19lKCk6KHRoaXMuaW5Qcm9ncmVzcz0hMSx0aGlzLmhvdC52aWV3LmFkanVzdEVsZW1lbnRzU2l6ZSghMSkpfX0se2tleToic2V0U2FtcGxpbmdPcHRp''@;'; + put 'put ''b25zIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXMuaG90LmdldFNldHRpbmdzKClbeHRlXSxDPXkmJm8xKHksInNhbXBsaW5nUmF0aW8iKT95LnNhbXBsaW5nUmF0aW86dm9pZCAwLEk9eSYmbzEoeSwiYWxsb3dTYW1wbGVEdXBsaWNhdGVzIik/eS5hbGxvd1NhbXBsZUR1cGxpY2F0ZXM6''@;'; + put 'put ''dm9pZCAwO0MmJiFpc05hTihDKSYmdGhpcy5zYW1wbGVzR2VuZXJhdG9yLnNldFNhbXBsZUNvdW50KHBhcnNlSW50KEMsMTApKSxJJiZ0aGlzLnNhbXBsZXNHZW5lcmF0b3Iuc2V0QWxsb3dEdXBsaWNhdGVzKEkpfX0se2tleToicmVjYWxjdWxhdGVBbGxSb3dzSGVpZ2h0Iix2YWx1ZTpmdW5j''@;'; + put 'put ''dGlvbigpe3VPKHRoaXMuaG90LnZpZXcuX3d0Lnd0VGFibGUuVEFCTEUpJiYodGhpcy5jbGVhckNhY2hlKCksdGhpcy5jYWxjdWxhdGVBbGxSb3dzSGVpZ2h0KCkpfX0se2tleToiZ2V0U3luY0NhbGN1bGF0aW9uTGltaXQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcy5ob3QuZ2V0U2V0''@;'; + put 'put ''dGluZ3MoKVt4dGVdLEM9aC5TWU5DX0NBTENVTEFUSU9OX0xJTUlULEk9dGhpcy5ob3QuY291bnRSb3dzKCktMTtyZXR1cm4geGwoeSkmJihpM2UoQz15LnN5bmNMaW1pdCk/Qz1CM2UoSSxDKTpDPj49MCksTWF0aC5taW4oQyxJKX19LHtrZXk6ImdldFJvd0hlaWdodCIsdmFsdWU6ZnVuY3Rp''@;'; + put 'put ''b24oeSl7dmFyIEM9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOnZvaWQgMCxJPXk8MD90aGlzLmhlYWRlckhlaWdodDp0aGlzLnJvd0hlaWdodHNNYXAuZ2V0VmFsdWVBdEluZGV4KHRoaXMuaG90LnRvUGh5c2ljYWxSb3coeSkpLGo9Qzty''@;'; + put 'put ''ZXR1cm4gbnVsbCE9PUkmJkk+KEN8fDApJiYoaj1JKSxqfX0se2tleToiZ2V0Q29sdW1uSGVhZGVySGVpZ2h0Iix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmhlYWRlckhlaWdodH19LHtrZXk6ImdldEZpcnN0VmlzaWJsZVJvdyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzLmhv''@;'; + put 'put ''dC52aWV3Ll93dDtyZXR1cm4geS53dFZpZXdwb3J0LnJvd3NWaXNpYmxlQ2FsY3VsYXRvcj95Lnd0VGFibGUuZ2V0Rmlyc3RWaXNpYmxlUm93KCk6eS53dFZpZXdwb3J0LnJvd3NSZW5kZXJDYWxjdWxhdG9yP3kud3RUYWJsZS5nZXRGaXJzdFJlbmRlcmVkUm93KCk6LTF9fSx7a2V5OiJnZXRM''@;'; + put 'put ''YXN0VmlzaWJsZVJvdyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzLmhvdC52aWV3Ll93dDtyZXR1cm4geS53dFZpZXdwb3J0LnJvd3NWaXNpYmxlQ2FsY3VsYXRvcj95Lnd0VGFibGUuZ2V0TGFzdFZpc2libGVSb3coKTp5Lnd0Vmlld3BvcnQucm93c1JlbmRlckNhbGN1bGF0b3I/eS53''@;'; + put 'put ''dFRhYmxlLmdldExhc3RSZW5kZXJlZFJvdygpOi0xfX0se2tleToiY2xlYXJDYWNoZSIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmhlYWRlckhlaWdodD1udWxsLHRoaXMucm93SGVpZ2h0c01hcC5pbml0KCl9fSx7a2V5OiJjbGVhckNhY2hlQnlSYW5nZSIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFy''@;'; + put 'put ''IEM9dGhpcyxJPSJudW1iZXIiPT10eXBlb2YgeT97ZnJvbTp5LHRvOnl9Onksaj1JLmZyb20sdWU9SS50bzt0aGlzLmhvdC5iYXRjaEV4ZWN1dGlvbihmdW5jdGlvbigpe2lhKE1hdGgubWluKGosdWUpLE1hdGgubWF4KGosdWUpLGZ1bmN0aW9uKF9lKXtDLnJvd0hlaWdodHNNYXAuc2V0VmFs''@;'; + put 'put ''dWVBdEluZGV4KF9lLG51bGwpfSl9LCEwKX19LHtrZXk6ImlzTmVlZFJlY2FsY3VsYXRlIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiEhZzQodGhpcy5yb3dIZWlnaHRzTWFwLmdldFZhbHVlcygpLnNsaWNlKDAsdGhpcy5tZWFzdXJlZFJvd3MpLGZ1bmN0aW9uKHkpe3JldHVybiBudWxsPT09''@;'; + put 'put ''eX0pLmxlbmd0aH19LHtrZXk6Im9uQmVmb3JlVmlld1JlbmRlciIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzLmhvdC5yZW5kZXJDYWxsLEM9dGhpcy5ob3QuZ2V0U2V0dGluZ3MoKS5maXhlZFJvd3NCb3R0b20sST10aGlzLmdldEZpcnN0VmlzaWJsZVJvdygpLGo9dGhpcy5nZXRMYXN0''@;'; + put 'put ''VmlzaWJsZVJvdygpO2lmKC0xIT09SSYmLTEhPT1qKXtpZih0aGlzLmNhbGN1bGF0ZVJvd3NIZWlnaHQoe2Zyb206SSx0bzpqfSx2b2lkIDAseSksQyl7dmFyIHVlPXRoaXMuaG90LmNvdW50Um93cygpLTE7dGhpcy5jYWxjdWxhdGVSb3dzSGVpZ2h0KHtmcm9tOnVlLUMsdG86dWV9KX10aGlz''@;'; + put 'put ''LmlzTmVlZFJlY2FsY3VsYXRlKCkmJiF0aGlzLmluUHJvZ3Jlc3MmJnRoaXMuY2FsY3VsYXRlQWxsUm93c0hlaWdodCgpfX19LHtrZXk6Im9uQmVmb3JlUm93TW92ZSIsdmFsdWU6ZnVuY3Rpb24oeSxDKXt0aGlzLmNsZWFyQ2FjaGVCeVJhbmdlKHtmcm9tOnksdG86Q30pLHRoaXMuY2FsY3Vs''@;'; + put 'put ''YXRlQWxsUm93c0hlaWdodCgpfX0se2tleToib25CZWZvcmVSb3dSZXNpemUiLHZhbHVlOmZ1bmN0aW9uKHksQyxJKXt2YXIgaj15O3JldHVybiBJJiYodGhpcy5jYWxjdWxhdGVSb3dzSGVpZ2h0KEMsdm9pZCAwLCEwKSxqPXRoaXMuZ2V0Um93SGVpZ2h0KEMpKSxqfX0se2tleToib25BZnRl''@;'; + put 'put ''ckxvYWREYXRhIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXM7dGhpcy5ob3Qudmlldz90aGlzLnJlY2FsY3VsYXRlQWxsUm93c0hlaWdodCgpOnNldFRpbWVvdXQoZnVuY3Rpb24oKXt5LmhvdCYmeS5yZWNhbGN1bGF0ZUFsbFJvd3NIZWlnaHQoKX0sMCl9fSx7a2V5OiJvbkJlZm9yZUNo''@;'; + put 'put ''YW5nZSIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEM9bnVsbDsxPT09eS5sZW5ndGg/Qz15WzBdWzBdOnkubGVuZ3RoPjEmJihDPXtmcm9tOnlbMF1bMF0sdG86eVt5Lmxlbmd0aC0xXVswXX0pLG51bGwhPT1DJiZ0aGlzLmNsZWFyQ2FjaGVCeVJhbmdlKEMpfX0se2tleToiZGVzdHJveSIsdmFs''@;'; + put 'put ''dWU6ZnVuY3Rpb24oKXt0aGlzLmdob3N0VGFibGUuY2xlYW4oKSxMTyhQdyhoLnByb3RvdHlwZSksImRlc3Ryb3kiLHRoaXMpLmNhbGwodGhpcyl9fV0sW3trZXk6IlBMVUdJTl9LRVkiLGdldDpmdW5jdGlvbigpe3JldHVybiB4dGV9fSx7a2V5OiJQTFVHSU5fUFJJT1JJVFkiLGdldDpmdW5j''@;'; + put 'put ''dGlvbigpe3JldHVybiA0MH19LHtrZXk6IlNFVFRJTkdfS0VZUyIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuITB9fSx7a2V5OiJDQUxDVUxBVElPTl9TVEVQIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gNTB9fSx7a2V5OiJTWU5DX0NBTENVTEFUSU9OX0xJTUlUIixnZXQ6ZnVuY3Rpb24oKXtyZXR1''@;'; + put 'put ''cm4gNTAwfX1dKSxofShZcyksT01lPW5ldyBNYXAoW1siaW5kZXhlc1NlcXVlbmNlIix7Z2V0TGlzdFdpdGhJbnNlcnRlZEl0ZW1zOm80ZSxnZXRMaXN0V2l0aFJlbW92ZWRJdGVtczp0en1dLFsicGh5c2ljYWxseUluZGV4ZWQiLHtnZXRMaXN0V2l0aEluc2VydGVkSXRlbXM6S2RlLGdldExp''@;'; + put 'put ''c3RXaXRoUmVtb3ZlZEl0ZW1zOiRkZX1dXSksUk1lPWZ1bmN0aW9uKGcpe2lmKCExPT09T01lLmhhcyhnKSl0aHJvdyBuZXcgRXJyb3IoIkFsdGVyIHN0cmF0ZWd5IHdpdGggSUQgJyIuY29uY2F0KGcsIicgZG9lcyBub3QgZXhpc3QuIikpO3JldHVybiBPTWUuZ2V0KGcpfTtmdW5jdGlvbiBx''@;'; + put 'put ''NmUoZCl7cmV0dXJuKHE2ZT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihnKXtyZXR1cm4gdHlwZW9mIGd9OmZ1bmN0aW9uKGcpe3JldHVybiBnJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZnLmNvbnN0cnVj''@;'; + put 'put ''dG9yPT09U3ltYm9sJiZnIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgZ30pKGQpfWZ1bmN0aW9uIEJNZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2''@;'; + put 'put ''YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fWZ1bmN0aW9uIGd6KCl7cmV0dXJuIGd6PSJ1bmRlZmluZWQiIT10eXBlb2YgUmVmbGVjdCYmUmVmbGVjdC5nZXQ/UmVmbGVjdC5nZXQuYmluZCgpOmZ1bmN0aW9uKGcsaCx2KXt2YXIg''@;'; + put 'put ''eT0kcnQoZyxoKTtpZih5KXt2YXIgQz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHksaCk7cmV0dXJuIEMuZ2V0P0MuZ2V0LmNhbGwoYXJndW1lbnRzLmxlbmd0aDwzP2c6dik6Qy52YWx1ZX19LGd6LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiAkcnQoZCxnKXtmb3Io''@;'; + put 'put ''OyFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZCxnKSYmbnVsbCE9PShkPVdTKGQpKTspO3JldHVybiBkfWZ1bmN0aW9uIGU4ZShkLGcpe3JldHVybihlOGU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24odix5''@;'; + put 'put ''KXtyZXR1cm4gdi5fX3Byb3RvX189eSx2fSkoZCxnKX1mdW5jdGlvbiB0aXQoZCxnKXtpZihnJiYoIm9iamVjdCI9PT1xNmUoZyl8fCJmdW5jdGlvbiI9PXR5cGVvZiBnKSlyZXR1cm4gZztpZih2b2lkIDAhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIkRlcml2ZWQgY29uc3RydWN0b3JzIG1h''@;'; + put 'put ''eSBvbmx5IHJldHVybiBvYmplY3Qgb3IgdW5kZWZpbmVkIik7cmV0dXJuIGZ1bmN0aW9uIG5pdChkKXtpZih2b2lkIDA9PT1kKXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcigidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkIik7cmV0dXJu''@;'; + put 'put ''IGR9KGQpfWZ1bmN0aW9uIFdTKGQpe3JldHVybihXUz1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihoKXtyZXR1cm4gaC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihoKX0pKGQpfXZhciBQTWU9Uk1lKCJwaHlzaWNh''@;'; + put 'put ''bGx5SW5kZXhlZCIpLGlpdD1QTWUuZ2V0TGlzdFdpdGhJbnNlcnRlZEl0ZW1zLG9pdD1QTWUuZ2V0TGlzdFdpdGhSZW1vdmVkSXRlbXMsYWl0PWZ1bmN0aW9uKGQpeyFmdW5jdGlvbiBxcnQoZCxnKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZyYmbnVsbCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJv''@;'; + put 'put ''cigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTtkLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGcmJmcucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6ZCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVBy''@;'; + put 'put ''b3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZyYmZThlKGQsZyl9KGgsZCk7dmFyIGc9ZnVuY3Rpb24gZWl0KGQpe3ZhciBnPWZ1bmN0aW9uIHJpdCgpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0fHxSZWZsZWN0LmNvbnN0cnVj''@;'; + put 'put ''dC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBQcm94eSlyZXR1cm4hMDt0cnl7cmV0dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLGZ1bmN0aW9uKCl7fSkpLCEwfWNhdGNoKGQpe3JldHVybiExfX0oKTty''@;'; + put 'put ''ZXR1cm4gZnVuY3Rpb24oKXt2YXIgeSx2PVdTKGQpO2lmKGcpe3ZhciBDPVdTKHRoaXMpLmNvbnN0cnVjdG9yO3k9UmVmbGVjdC5jb25zdHJ1Y3Qodixhcmd1bWVudHMsQyl9ZWxzZSB5PXYuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiB0aXQodGhpcyx5KX19KGgpO2Z1bmN0aW9uIGgo''@;'; + put 'put ''KXtyZXR1cm4gZnVuY3Rpb24gWHJ0KGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsaCksZy5jYWxsKHRoaXMsZnVuY3Rpb24odil7cmV0dXJuIHZ9KX1yZXR1cm4gZnVuY3Rpb24g''@;'; + put 'put ''S3J0KGQsZyxoKXtnJiZCTWUoZC5wcm90b3R5cGUsZyksaCYmQk1lKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGgsW3trZXk6Imluc2VydCIsdmFsdWU6ZnVuY3Rpb24oeSxDKXt2YXIgST1sNGUodGhpcy5pbmRleGVkVmFsdWVzLEMp''@;'; + put 'put ''O3RoaXMuaW5kZXhlZFZhbHVlcz1paXQoSSx5LEMsdGhpcy5pbml0VmFsdWVPckZuKSxneihXUyhoLnByb3RvdHlwZSksImluc2VydCIsdGhpcykuY2FsbCh0aGlzLHksQyl9fSx7a2V5OiJyZW1vdmUiLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPW9pdCh0aGlzLmluZGV4ZWRWYWx1ZXMseSk7''@;'; + put 'put ''dGhpcy5pbmRleGVkVmFsdWVzPWE0ZShDLHkpLGd6KFdTKGgucHJvdG90eXBlKSwicmVtb3ZlIix0aGlzKS5jYWxsKHRoaXMseSl9fV0pLGh9KFJTKTtjb25zdCBsaXQ9YWl0O2Z1bmN0aW9uIHQ4ZShkKXtyZXR1cm4odDhlPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10''@;'; + put 'put ''eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGcpe3JldHVybiB0eXBlb2YgZ306ZnVuY3Rpb24oZyl7cmV0dXJuIGcmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmcuY29uc3RydWN0b3I9PT1TeW1ib2wmJmchPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBnfSko''@;'; + put 'put ''ZCl9ZnVuY3Rpb24gbjhlKGQsZyl7KG51bGw9PWd8fGc+ZC5sZW5ndGgpJiYoZz1kLmxlbmd0aCk7Zm9yKHZhciBoPTAsdj1uZXcgQXJyYXkoZyk7aDxnO2grKyl2W2hdPWRbaF07cmV0dXJuIHZ9ZnVuY3Rpb24gRk1lKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdb''@;'; + put 'put ''aF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19ZnVuY3Rpb24gbXooKXtyZXR1cm4gbXo9InVuZGVmaW5lZCIhPXR5cGVvZiBSZWZsZWN0''@;'; + put 'put ''JiZSZWZsZWN0LmdldD9SZWZsZWN0LmdldC5iaW5kKCk6ZnVuY3Rpb24oZyxoLHYpe3ZhciB5PWdpdChnLGgpO2lmKHkpe3ZhciBDPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoeSxoKTtyZXR1cm4gQy5nZXQ/Qy5nZXQuY2FsbChhcmd1bWVudHMubGVuZ3RoPDM/Zzp2KTpDLnZh''@;'; + put 'put ''bHVlfX0sbXouYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIGdpdChkLGcpe2Zvcig7IU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChkLGcpJiZudWxsIT09KGQ9WVMoZCkpOyk7cmV0dXJuIGR9ZnVuY3Rpb24gcjhlKGQsZyl7cmV0dXJuKHI4ZT1PYmplY3Quc2V0''@;'; + put 'put ''UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbih2LHkpe3JldHVybiB2Ll9fcHJvdG9fXz15LHZ9KShkLGcpfWZ1bmN0aW9uIEFpdChkLGcpe2lmKGcmJigib2JqZWN0Ij09PXQ4ZShnKXx8ImZ1bmN0aW9uIj09dHlwZW9mIGcpKXJldHVybiBnO2lmKHZv''@;'; + put 'put ''aWQgMCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWQiKTtyZXR1cm4gZnVuY3Rpb24geWl0KGQpe2lmKHZvaWQgMD09PWQpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBi''@;'; + put 'put ''ZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4gZH0oZCl9ZnVuY3Rpb24gWVMoZCl7cmV0dXJuKFlTPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3QuZ2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKGgpe3JldHVybiBoLl9fcHJvdG9f''@;'; + put 'put ''X3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKGgpfSkoZCl9dmFyIEhNZT1STWUoInBoeXNpY2FsbHlJbmRleGVkIiksYml0PUhNZS5nZXRMaXN0V2l0aEluc2VydGVkSXRlbXMsX2l0PUhNZS5nZXRMaXN0V2l0aFJlbW92ZWRJdGVtcyxDaXQ9ZnVuY3Rpb24oZCl7IWZ1bmN0aW9uIG1pdChkLGcp''@;'; + put 'put ''e2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBnJiZudWxsIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiIpO2QucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZyYmZy5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2''@;'; + put 'put ''YWx1ZTpkLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxnJiZyOGUoZCxnKX0oaCxkKTt2YXIgZz1mdW5jdGlvbiB2aXQoZCl7dmFyIGc9ZnVuY3Rpb24gd2l0KCl7aWYoInVuZGVmaW5lZCI9''@;'; + put 'put ''PXR5cGVvZiBSZWZsZWN0fHwhUmVmbGVjdC5jb25zdHJ1Y3R8fFJlZmxlY3QuY29uc3RydWN0LnNoYW0pcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIFByb3h5KXJldHVybiEwO3RyeXtyZXR1cm4gQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0''@;'; + put 'put ''KEJvb2xlYW4sW10sZnVuY3Rpb24oKXt9KSksITB9Y2F0Y2goZCl7cmV0dXJuITF9fSgpO3JldHVybiBmdW5jdGlvbigpe3ZhciB5LHY9WVMoZCk7aWYoZyl7dmFyIEM9WVModGhpcykuY29uc3RydWN0b3I7eT1SZWZsZWN0LmNvbnN0cnVjdCh2LGFyZ3VtZW50cyxDKX1lbHNlIHk9di5hcHBs''@;'; + put 'put ''eSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIEFpdCh0aGlzLHkpfX0oaCk7ZnVuY3Rpb24gaCgpe3JldHVybiBmdW5jdGlvbiBkaXQoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0odGhpcyxo''@;'; + put 'put ''KSxnLmNhbGwodGhpcyxmdW5jdGlvbih2KXtyZXR1cm4gdn0pfXJldHVybiBmdW5jdGlvbiBwaXQoZCxnLGgpe2cmJkZNZShkLnByb3RvdHlwZSxnKSxoJiZGTWUoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oaCxbe2tleToiaW5zZXJ0''@;'; + put 'put ''Iix2YWx1ZTpmdW5jdGlvbih5LEMpe3ZhciBJPXRoaXM7dGhpcy5pbmRleGVkVmFsdWVzPWJpdCh0aGlzLmluZGV4ZWRWYWx1ZXMseSxDLGZ1bmN0aW9uKGosdWUpe3JldHVybiBJLmdldE5leHRWYWx1ZSh1ZSl9KSxteihZUyhoLnByb3RvdHlwZSksImluc2VydCIsdGhpcykuY2FsbCh0aGlz''@;'; + put 'put ''LHksQyl9fSx7a2V5OiJyZW1vdmUiLHZhbHVlOmZ1bmN0aW9uKHkpe3RoaXMuaW5kZXhlZFZhbHVlcz1faXQodGhpcy5pbmRleGVkVmFsdWVzLHkpLG16KFlTKGgucHJvdG90eXBlKSwicmVtb3ZlIix0aGlzKS5jYWxsKHRoaXMseSl9fSx7a2V5OiJnZXROZXh0VmFsdWUiLHZhbHVlOmZ1bmN0''@;'; + put 'put ''aW9uKHkpe3JldHVybiBNYXRoLm1heC5hcHBseShNYXRoLGZ1bmN0aW9uIHNpdChkKXtyZXR1cm4gZnVuY3Rpb24gaGl0KGQpe2lmKEFycmF5LmlzQXJyYXkoZCkpcmV0dXJuIG44ZShkKX0oZCl8fGZ1bmN0aW9uIGZpdChkKXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmbnVsbCE9''@;'; + put 'put ''ZFtTeW1ib2wuaXRlcmF0b3JdfHxudWxsIT1kWyJAQGl0ZXJhdG9yIl0pcmV0dXJuIEFycmF5LmZyb20oZCl9KGQpfHxmdW5jdGlvbiBjaXQoZCxnKXtpZihkKXtpZigic3RyaW5nIj09dHlwZW9mIGQpcmV0dXJuIG44ZShkLGcpO3ZhciBoPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2Fs''@;'; + put 'put ''bChkKS5zbGljZSg4LC0xKTtpZigiT2JqZWN0Ij09PWgmJmQuY29uc3RydWN0b3ImJihoPWQuY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1ofHwiU2V0Ij09PWgpcmV0dXJuIEFycmF5LmZyb20oZCk7aWYoIkFyZ3VtZW50cyI9PT1ofHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1w''@;'; + put 'put ''ZWQpP0FycmF5JC8udGVzdChoKSlyZXR1cm4gbjhlKGQsZyl9fShkKXx8ZnVuY3Rpb24gdWl0KCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIHNwcmVhZCBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9i''@;'; + put 'put ''amVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9KHRoaXMuZ2V0VmFsdWVzKCkpKSsxK3l9fV0pLGh9KFJTKTtmdW5jdGlvbiBpOGUoZCl7cmV0dXJuKGk4ZT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5p''@;'; + put 'put ''dGVyYXRvcj9mdW5jdGlvbihnKXtyZXR1cm4gdHlwZW9mIGd9OmZ1bmN0aW9uKGcpe3JldHVybiBnJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZnLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZnIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgZ30pKGQpfWZ1bmN0aW9uIE5N''@;'; + put 'put ''ZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fWZ1bmN0aW9u''@;'; + put 'put ''IE9PKCl7cmV0dXJuIE9PPSJ1bmRlZmluZWQiIT10eXBlb2YgUmVmbGVjdCYmUmVmbGVjdC5nZXQ/UmVmbGVjdC5nZXQuYmluZCgpOmZ1bmN0aW9uKGcsaCx2KXt2YXIgeT1FaXQoZyxoKTtpZih5KXt2YXIgQz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHksaCk7cmV0dXJuIEMu''@;'; + put 'put ''Z2V0P0MuZ2V0LmNhbGwoYXJndW1lbnRzLmxlbmd0aDwzP2c6dik6Qy52YWx1ZX19LE9PLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBFaXQoZCxnKXtmb3IoOyFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZCxnKSYmbnVsbCE9PShkPUZ3KGQpKTspO3JldHVy''@;'; + put 'put ''biBkfWZ1bmN0aW9uIG84ZShkLGcpe3JldHVybihvOGU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24odix5KXtyZXR1cm4gdi5fX3Byb3RvX189eSx2fSkoZCxnKX1mdW5jdGlvbiBJaXQoZCxnKXtpZihnJiYoIm9iamVjdCI9PT1p''@;'; + put 'put ''OGUoZyl8fCJmdW5jdGlvbiI9PXR5cGVvZiBnKSlyZXR1cm4gZztpZih2b2lkIDAhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIkRlcml2ZWQgY29uc3RydWN0b3JzIG1heSBvbmx5IHJldHVybiBvYmplY3Qgb3IgdW5kZWZpbmVkIik7cmV0dXJuIGZ1bmN0aW9uIERpdChkKXtpZih2b2lkIDA9''@;'; + put 'put ''PT1kKXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcigidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkIik7cmV0dXJuIGR9KGQpfWZ1bmN0aW9uIEZ3KGQpe3JldHVybihGdz1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFByb3Rv''@;'; + put 'put ''dHlwZU9mLmJpbmQoKTpmdW5jdGlvbihoKXtyZXR1cm4gaC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihoKX0pKGQpfXZhciBhOGU9ImJpbmRSb3dzV2l0aEhlYWRlcnMiLEJpdD1uZXcgTWFwKFtbImxvb3NlIixsaXRdLFsic3RyaWN0IixDaXRdXSksUGl0PWZ1bmN0aW9uKGQp''@;'; + put 'put ''eyFmdW5jdGlvbiB4aXQoZCxnKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZyYmbnVsbCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTtkLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGcmJmcucHJvdG90''@;'; + put 'put ''eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6ZCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZyYmbzhlKGQsZyl9KGgsZCk7dmFyIGc9ZnVuY3Rpb24gVGl0KGQpe3ZhciBnPWZ1bmN0aW9uIExp''@;'; + put 'put ''dCgpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0fHxSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBQcm94eSlyZXR1cm4hMDt0cnl7cmV0dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2Fs''@;'; + put 'put ''bChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLGZ1bmN0aW9uKCl7fSkpLCEwfWNhdGNoKGQpe3JldHVybiExfX0oKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgeSx2PUZ3KGQpO2lmKGcpe3ZhciBDPUZ3KHRoaXMpLmNvbnN0cnVjdG9yO3k9UmVmbGVjdC5jb25zdHJ1Y3Qodixhcmd1bWVu''@;'; + put 'put ''dHMsQyl9ZWxzZSB5PXYuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBJaXQodGhpcyx5KX19KGgpO2Z1bmN0aW9uIGgodil7dmFyIHk7cmV0dXJuIGZ1bmN0aW9uIFNpdChkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xh''@;'; + put 'put ''c3MgYXMgYSBmdW5jdGlvbiIpfSh0aGlzLGgpLCh5PWcuY2FsbCh0aGlzLHYpKS5oZWFkZXJJbmRleGVzPW51bGwseX1yZXR1cm4gZnVuY3Rpb24gTWl0KGQsZyxoKXtnJiZOTWUoZC5wcm90b3R5cGUsZyksaCYmTk1lKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIs''@;'; + put 'put ''e3dyaXRhYmxlOiExfSl9KGgsW3trZXk6ImlzRW5hYmxlZCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4hIXRoaXMuaG90LmdldFNldHRpbmdzKClbYThlXX19LHtrZXk6ImVuYWJsZVBsdWdpbiIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzO2lmKCF0aGlzLmVuYWJsZWQpe3ZhciBDPXRo''@;'; + put 'put ''aXMuaG90LmdldFNldHRpbmdzKClbYThlXTsic3RyaW5nIiE9dHlwZW9mIEMmJihDPSJsb29zZSIpO3ZhciBJPUJpdC5nZXQoQyk7dGhpcy5oZWFkZXJJbmRleGVzPXRoaXMuaG90LnJvd0luZGV4TWFwcGVyLnJlZ2lzdGVyTWFwKCJiaW5kUm93c1dpdGhIZWFkZXJzIixuZXcgSSksdGhpcy5h''@;'; + put 'put ''ZGRIb29rKCJtb2RpZnlSb3dIZWFkZXIiLGZ1bmN0aW9uKGope3JldHVybiB5Lm9uTW9kaWZ5Um93SGVhZGVyKGopfSksT08oRncoaC5wcm90b3R5cGUpLCJlbmFibGVQbHVnaW4iLHRoaXMpLmNhbGwodGhpcyl9fX0se2tleToiZGlzYWJsZVBsdWdpbiIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlz''@;'; + put 'put ''LmhvdC5yb3dJbmRleE1hcHBlci51bnJlZ2lzdGVyTWFwKCJiaW5kUm93c1dpdGhIZWFkZXJzIiksT08oRncoaC5wcm90b3R5cGUpLCJkaXNhYmxlUGx1Z2luIix0aGlzKS5jYWxsKHRoaXMpfX0se2tleToib25Nb2RpZnlSb3dIZWFkZXIiLHZhbHVlOmZ1bmN0aW9uKHkpe3JldHVybiB0aGlz''@;'; + put 'put ''LmhlYWRlckluZGV4ZXMuZ2V0VmFsdWVBdEluZGV4KHRoaXMuaG90LnRvUGh5c2ljYWxSb3coeSkpfX0se2tleToiZGVzdHJveSIsdmFsdWU6ZnVuY3Rpb24oKXtPTyhGdyhoLnByb3RvdHlwZSksImRlc3Ryb3kiLHRoaXMpLmNhbGwodGhpcyl9fV0sW3trZXk6IlBMVUdJTl9LRVkiLGdldDpm''@;'; + put 'put ''dW5jdGlvbigpe3JldHVybiBhOGV9fSx7a2V5OiJQTFVHSU5fUFJJT1JJVFkiLGdldDpmdW5jdGlvbigpe3JldHVybiAyMTB9fV0pLGh9KFlzKTtmdW5jdGlvbiBsOGUoZCl7cmV0dXJuKGw4ZT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVy''@;'; + put 'put ''YXRvcj9mdW5jdGlvbihnKXtyZXR1cm4gdHlwZW9mIGd9OmZ1bmN0aW9uKGcpe3JldHVybiBnJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZnLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZnIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgZ30pKGQpfWZ1bmN0aW9uIFZNZShk''@;'; + put 'put ''KXtyZXR1cm4gZnVuY3Rpb24gVml0KGQpe2lmKEFycmF5LmlzQXJyYXkoZCkpcmV0dXJuIHM4ZShkKX0oZCl8fGZ1bmN0aW9uIE5pdChkKXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmbnVsbCE9ZFtTeW1ib2wuaXRlcmF0b3JdfHxudWxsIT1kWyJAQGl0ZXJhdG9yIl0pcmV0dXJu''@;'; + put 'put ''IEFycmF5LmZyb20oZCl9KGQpfHxmdW5jdGlvbiBIaXQoZCxnKXtpZihkKXtpZigic3RyaW5nIj09dHlwZW9mIGQpcmV0dXJuIHM4ZShkLGcpO3ZhciBoPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChkKS5zbGljZSg4LC0xKTtpZigiT2JqZWN0Ij09PWgmJmQuY29uc3RydWN0b3Im''@;'; + put 'put ''JihoPWQuY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1ofHwiU2V0Ij09PWgpcmV0dXJuIEFycmF5LmZyb20oZCk7aWYoIkFyZ3VtZW50cyI9PT1ofHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChoKSlyZXR1cm4gczhlKGQsZyl9fShkKXx8ZnVuY3Rp''@;'; + put 'put ''b24gRml0KCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIHNwcmVhZCBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9''@;'; + put 'put ''KCl9ZnVuY3Rpb24gczhlKGQsZyl7KG51bGw9PWd8fGc+ZC5sZW5ndGgpJiYoZz1kLmxlbmd0aCk7Zm9yKHZhciBoPTAsdj1uZXcgQXJyYXkoZyk7aDxnO2grKyl2W2hdPWRbaF07cmV0dXJuIHZ9ZnVuY3Rpb24gaml0KGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVF''@;'; + put 'put ''cnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9ZnVuY3Rpb24gak1lKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2Lndy''@;'; + put 'put ''aXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19ZnVuY3Rpb24gVVMoKXtyZXR1cm4gVVM9InVuZGVmaW5lZCIhPXR5cGVvZiBSZWZsZWN0JiZSZWZsZWN0LmdldD9SZWZsZWN0LmdldC5iaW5kKCk6ZnVuY3Rpb24oZyxoLHYpe3ZhciB5PXppdChnLGgpO2lmKHkp''@;'; + put 'put ''e3ZhciBDPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoeSxoKTtyZXR1cm4gQy5nZXQ/Qy5nZXQuY2FsbChhcmd1bWVudHMubGVuZ3RoPDM/Zzp2KTpDLnZhbHVlfX0sVVMuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIHppdChkLGcpe2Zvcig7IU9iamVjdC5wcm90b3R5''@;'; + put 'put ''cGUuaGFzT3duUHJvcGVydHkuY2FsbChkLGcpJiZudWxsIT09KGQ9T3YoZCkpOyk7cmV0dXJuIGR9ZnVuY3Rpb24gdThlKGQsZyl7cmV0dXJuKHU4ZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbih2LHkpe3JldHVybiB2Ll9fcHJv''@;'; + put 'put ''dG9fXz15LHZ9KShkLGcpfWZ1bmN0aW9uIFlpdChkLGcpe2lmKGcmJigib2JqZWN0Ij09PWw4ZShnKXx8ImZ1bmN0aW9uIj09dHlwZW9mIGcpKXJldHVybiBnO2lmKHZvaWQgMCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9i''@;'; + put 'put ''amVjdCBvciB1bmRlZmluZWQiKTtyZXR1cm4gUk8oZCl9ZnVuY3Rpb24gUk8oZCl7aWYodm9pZCAwPT09ZCl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3JldHVybiBkfWZ1bmN0aW9u''@;'; + put 'put ''IE92KGQpe3JldHVybihPdj1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihoKXtyZXR1cm4gaC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihoKX0pKGQpfWZ1bmN0aW9uIFFpdChkLGcsaCl7KGZ1bmN0aW9uIEppdChk''@;'; + put 'put ''LGcpe2lmKGcuaGFzKGQpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBpbml0aWFsaXplIHRoZSBzYW1lIHByaXZhdGUgZWxlbWVudHMgdHdpY2Ugb24gYW4gb2JqZWN0Iil9KShkLGcpLGcuc2V0KGQsaCl9ZnVuY3Rpb24gYzhlKGQsZyxoKXtyZXR1cm4gZyBpbiBkP09iamVjdC5kZWZp''@;'; + put 'put ''bmVQcm9wZXJ0eShkLGcse3ZhbHVlOmgsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpkW2ddPWgsZH1mdW5jdGlvbiBaTWUoZCxnKXtyZXR1cm4gZnVuY3Rpb24gWGl0KGQsZyl7cmV0dXJuIGcuZ2V0P2cuZ2V0LmNhbGwoZCk6Zy52YWx1ZX0oZCx6TWUoZCxn''@;'; + put 'put ''LCJnZXQiKSl9ZnVuY3Rpb24gZjhlKGQsZyxoKXtyZXR1cm4gZnVuY3Rpb24gS2l0KGQsZyxoKXtpZihnLnNldClnLnNldC5jYWxsKGQsaCk7ZWxzZXtpZighZy53cml0YWJsZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJhdHRlbXB0ZWQgdG8gc2V0IHJlYWQgb25seSBwcml2YXRlIGZpZWxkIik7''@;'; + put 'put ''Zy52YWx1ZT1ofX0oZCx6TWUoZCxnLCJzZXQiKSxoKSxofWZ1bmN0aW9uIHpNZShkLGcsaCl7aWYoIWcuaGFzKGQpKXRocm93IG5ldyBUeXBlRXJyb3IoImF0dGVtcHRlZCB0byAiK2grIiBwcml2YXRlIGZpZWxkIG9uIG5vbi1pbnN0YW5jZSIpO3JldHVybiBnLmdldChkKX12YXIgaDhlPSJj''@;'; + put 'put ''b2xsYXBzaWJsZUNvbHVtbnMiLHFpdD1bIm5lc3RlZEhlYWRlcnMiXSxHTWU9bmV3IE1hcChbWyJjb2xsYXBzZSIse2hpZGVDb2x1bW46ITAsYmVmb3JlSG9vazoiYmVmb3JlQ29sdW1uQ29sbGFwc2UiLGFmdGVySG9vazoiYWZ0ZXJDb2x1bW5Db2xsYXBzZSJ9XSxbImV4cGFuZCIse2hpZGVD''@;'; + put 'put ''b2x1bW46ITEsYmVmb3JlSG9vazoiYmVmb3JlQ29sdW1uRXhwYW5kIixhZnRlckhvb2s6ImFmdGVyQ29sdW1uRXhwYW5kIn1dXSksQk89bmV3IFdlYWtNYXAsZTB0PWZ1bmN0aW9uKGQpeyFmdW5jdGlvbiBHaXQoZCxnKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZyYmbnVsbCE9PWcpdGhyb3cg''@;'; + put 'put ''bmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTtkLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGcmJmcucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6ZCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2Jq''@;'; + put 'put ''ZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZyYmdThlKGQsZyl9KGgsZCk7dmFyIGc9ZnVuY3Rpb24gV2l0KGQpe3ZhciBnPWZ1bmN0aW9uIFVpdCgpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0fHxSZWZs''@;'; + put 'put ''ZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBQcm94eSlyZXR1cm4hMDt0cnl7cmV0dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLGZ1bmN0aW9uKCl7fSkpLCEwfWNhdGNoKGQpe3Jl''@;'; + put 'put ''dHVybiExfX0oKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgeSx2PU92KGQpO2lmKGcpe3ZhciBDPU92KHRoaXMpLmNvbnN0cnVjdG9yO3k9UmVmbGVjdC5jb25zdHJ1Y3Qodixhcmd1bWVudHMsQyl9ZWxzZSB5PXYuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBZaXQodGhpcyx5KX19KGgp''@;'; + put 'put ''O2Z1bmN0aW9uIGgoKXt2YXIgdjtqaXQodGhpcyxoKTtmb3IodmFyIHk9YXJndW1lbnRzLmxlbmd0aCxDPW5ldyBBcnJheSh5KSxJPTA7STx5O0krKylDW0ldPWFyZ3VtZW50c1tJXTtyZXR1cm4gYzhlKFJPKHY9Zy5jYWxsLmFwcGx5KGcsW3RoaXNdLmNvbmNhdChDKSkpLCJuZXN0ZWRIZWFk''@;'; + put 'put ''ZXJzUGx1Z2luIixudWxsKSxjOGUoUk8odiksImV2ZW50TWFuYWdlciIsbmV3IEwxKFJPKHYpKSksYzhlKFJPKHYpLCJoZWFkZXJTdGF0ZU1hbmFnZXIiLG51bGwpLFFpdChSTyh2KSxCTyx7d3JpdGFibGU6ITAsdmFsdWU6bnVsbH0pLHZ9cmV0dXJuIGZ1bmN0aW9uIFppdChkLGcsaCl7ZyYm''@;'; + put 'put ''ak1lKGQucHJvdG90eXBlLGcpLGgmJmpNZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShoLFt7a2V5OiJpc0VuYWJsZWQiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuISF0aGlzLmhvdC5nZXRTZXR0aW5ncygpW2g4ZV19fSx7a2V5OiJl''@;'; + put 'put ''bmFibGVQbHVnaW4iLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpczt0aGlzLmVuYWJsZWR8fCh0aGlzLmhvdC5nZXRTZXR0aW5ncygpLm5lc3RlZEhlYWRlcnN8fGwxKCJZb3UgbmVlZCB0byBjb25maWd1cmUgdGhlIE5lc3RlZCBIZWFkZXJzIHBsdWdpbiBpbiBvcmRlciB0byB1c2UgY29s''@;'; + put 'put ''bGFwc2libGUgaGVhZGVycy4iKSxmOGUodGhpcyxCTyx0aGlzLmhvdC5jb2x1bW5JbmRleE1hcHBlci5jcmVhdGVBbmRSZWdpc3RlckluZGV4TWFwKHRoaXMucGx1Z2luTmFtZSwiaGlkaW5nIikpLHRoaXMubmVzdGVkSGVhZGVyc1BsdWdpbj10aGlzLmhvdC5nZXRQbHVnaW4oIm5lc3RlZEhl''@;'; + put 'put ''YWRlcnMiKSx0aGlzLmhlYWRlclN0YXRlTWFuYWdlcj10aGlzLm5lc3RlZEhlYWRlcnNQbHVnaW4uZ2V0U3RhdGVNYW5hZ2VyKCksdGhpcy5hZGRIb29rKCJpbml0IixmdW5jdGlvbigpe3JldHVybiB5Lm9uSW5pdCgpfSksdGhpcy5hZGRIb29rKCJhZnRlckxvYWREYXRhIixmdW5jdGlvbigp''@;'; + put 'put ''e3JldHVybiB5Lm9uQWZ0ZXJMb2FkRGF0YS5hcHBseSh5LGFyZ3VtZW50cyl9KSx0aGlzLmFkZEhvb2soImFmdGVyR2V0Q29sSGVhZGVyIixmdW5jdGlvbihqLHVlKXtyZXR1cm4geS5vbkFmdGVyR2V0Q29sSGVhZGVyKGosdWUpfSksdGhpcy5hZGRIb29rKCJiZWZvcmVPbkNlbGxNb3VzZURv''@;'; + put 'put ''d24iLGZ1bmN0aW9uKGosdWUsX2Upe3JldHVybiB5Lm9uQmVmb3JlT25DZWxsTW91c2VEb3duKGosdWUsX2UpfSksVVMoT3YoaC5wcm90b3R5cGUpLCJlbmFibGVQbHVnaW4iLHRoaXMpLmNhbGwodGhpcyksdGhpcy51cGRhdGVQbHVnaW4oKSl9fSx7a2V5OiJ1cGRhdGVQbHVnaW4iLHZhbHVl''@;'; + put 'put ''OmZ1bmN0aW9uKCl7aWYodGhpcy5ob3Qudmlldyl7aWYoIXRoaXMubmVzdGVkSGVhZGVyc1BsdWdpbi5kZXRlY3RlZE92ZXJsYXBwZWRIZWFkZXJzKXt2YXIgQz10aGlzLmhvdC5nZXRTZXR0aW5ncygpLmNvbGxhcHNpYmxlQ29sdW1uczsiYm9vbGVhbiI9PXR5cGVvZiBDP3RoaXMuaGVhZGVy''@;'; + put 'put ''U3RhdGVNYW5hZ2VyLm1hcFN0YXRlKGZ1bmN0aW9uKEkpe3JldHVybntjb2xsYXBzaWJsZTpJLm9yaWdDb2xzcGFuPjF9fSk6QXJyYXkuaXNBcnJheShDKSYmKHRoaXMuaGVhZGVyU3RhdGVNYW5hZ2VyLm1hcFN0YXRlKGZ1bmN0aW9uKCl7cmV0dXJue2NvbGxhcHNpYmxlOiExfX0pLHRoaXMu''@;'; + put 'put ''aGVhZGVyU3RhdGVNYW5hZ2VyLm1lcmdlU3RhdGVXaXRoKEMpKX1VUyhPdihoLnByb3RvdHlwZSksInVwZGF0ZVBsdWdpbiIsdGhpcykuY2FsbCh0aGlzKX19fSx7a2V5OiJkaXNhYmxlUGx1Z2luIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuaG90LmNvbHVtbkluZGV4TWFwcGVyLnVucmVnaXN0''@;'; + put 'put ''ZXJNYXAodGhpcy5wbHVnaW5OYW1lKSxmOGUodGhpcyxCTyxudWxsKSx0aGlzLm5lc3RlZEhlYWRlcnNQbHVnaW49bnVsbCx0aGlzLmNsZWFyQnV0dG9ucygpLFVTKE92KGgucHJvdG90eXBlKSwiZGlzYWJsZVBsdWdpbiIsdGhpcykuY2FsbCh0aGlzKX19LHtrZXk6ImNsZWFyQnV0dG9ucyIs''@;'; + put 'put ''dmFsdWU6ZnVuY3Rpb24oKXtpZih0aGlzLmhvdC52aWV3KXt2YXIgeT10aGlzLmhvdC52aWV3Ll93dC5nZXRTZXR0aW5nKCJjb2x1bW5IZWFkZXJzIikubGVuZ3RoLEM9dGhpcy5ob3Qudmlldy5fd3Qud3RUYWJsZS5USEVBRCxJPXRoaXMuaG90LnZpZXcuX3d0Lnd0T3ZlcmxheXMudG9wT3Zl''@;'; + put 'put ''cmxheS5jbG9uZS53dFRhYmxlLlRIRUFELGo9dGhpcy5ob3Qudmlldy5fd3Qud3RPdmVybGF5cy50b3BJbmxpbmVTdGFydENvcm5lck92ZXJsYXk/dGhpcy5ob3Qudmlldy5fd3Qud3RPdmVybGF5cy50b3BJbmxpbmVTdGFydENvcm5lck92ZXJsYXkuY2xvbmUud3RUYWJsZS5USEVBRDpudWxs''@;'; + put 'put ''LHVlPWZ1bmN0aW9uKEJlKXtCZSYmQmUucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChCZSl9O2lhKDAseS0xLGZ1bmN0aW9uKF9lKXt2YXIgQmU9Qy5jaGlsZE5vZGVzW19lXSxOZT1JLmNoaWxkTm9kZXNbX2VdLEtlPWo/ai5jaGlsZE5vZGVzW19lXTpudWxsO2lhKDAsQmUuY2hpbGROb2Rlcy5s''@;'; + put 'put ''ZW5ndGgtMSxmdW5jdGlvbihkdCl7dmFyIE90PUJlLmNoaWxkTm9kZXNbZHRdLnF1ZXJ5U2VsZWN0b3IoIi5jb2xsYXBzaWJsZUluZGljYXRvciIpO3VlKE90KSxOZSYmTmUuY2hpbGROb2Rlc1tkdF0mJihPdD1OZS5jaGlsZE5vZGVzW2R0XS5xdWVyeVNlbGVjdG9yKCIuY29sbGFwc2libGVJ''@;'; + put 'put ''bmRpY2F0b3IiKSx1ZShPdCkpLGomJktlJiZLZS5jaGlsZE5vZGVzW2R0XSYmKE90PUtlLmNoaWxkTm9kZXNbZHRdLnF1ZXJ5U2VsZWN0b3IoIi5jb2xsYXBzaWJsZUluZGljYXRvciIpLHVlKE90KSl9KX0pfX19LHtrZXk6ImV4cGFuZFNlY3Rpb24iLHZhbHVlOmZ1bmN0aW9uKHkpe3RoaXMu''@;'; + put 'put ''dG9nZ2xlQ29sbGFwc2libGVTZWN0aW9uKFt5XSwiZXhwYW5kIil9fSx7a2V5OiJjb2xsYXBzZVNlY3Rpb24iLHZhbHVlOmZ1bmN0aW9uKHkpe3RoaXMudG9nZ2xlQ29sbGFwc2libGVTZWN0aW9uKFt5XSwiY29sbGFwc2UiKX19LHtrZXk6InRvZ2dsZUFsbENvbGxhcHNpYmxlU2VjdGlvbnMi''@;'; + put 'put ''LHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPXRoaXMsST10aGlzLmhlYWRlclN0YXRlTWFuYWdlci5tYXBOb2RlcyhmdW5jdGlvbihqKXt2YXIgTmU9ai5jb2x1bW5JbmRleCxLZT1qLmlzQ29sbGFwc2VkO2lmKCEwPT09ai5jb2xsYXBzaWJsZSYmai5vcmlnQ29sc3Bhbj4xJiYoS2UmJiJleHBh''@;'; + put 'put ''bmQiPT09eXx8IUtlJiYiY29sbGFwc2UiPT09eSkpcmV0dXJue3JvdzpDLmhlYWRlclN0YXRlTWFuYWdlci5sZXZlbFRvUm93Q29vcmRzKGouaGVhZGVyTGV2ZWwpLGNvbDpOZX19KTt0aGlzLnRvZ2dsZUNvbGxhcHNpYmxlU2VjdGlvbihJLHkpfX0se2tleToiY29sbGFwc2VBbGwiLHZhbHVl''@;'; + put 'put ''OmZ1bmN0aW9uKCl7dGhpcy50b2dnbGVBbGxDb2xsYXBzaWJsZVNlY3Rpb25zKCJjb2xsYXBzZSIpfX0se2tleToiZXhwYW5kQWxsIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMudG9nZ2xlQWxsQ29sbGFwc2libGVTZWN0aW9ucygiZXhwYW5kIil9fSx7a2V5OiJ0b2dnbGVDb2xsYXBzaWJsZVNl''@;'; + put 'put ''Y3Rpb24iLHZhbHVlOmZ1bmN0aW9uKHksQyl7dmFyIEk9dGhpcztpZighR01lLmhhcyhDKSl0aHJvdyBuZXcgRXJyb3IoIlVuc3VwcG9ydGVkIGFjdGlvbiBpcyBwYXNzZWQgKCIuY29uY2F0KEMsIikuIikpO2lmKEFycmF5LmlzQXJyYXkoeSkpe3ZhciBqPWc0KHksZnVuY3Rpb24oZm4pe3Jl''@;'; + put 'put ''dHVybiBmbi5yb3c8MH0pLHVlPWoubGVuZ3RoPjA7VXIoaixmdW5jdGlvbihmbil7dmFyIExuLFNyPW51bGwhPT0oTG49SS5oZWFkZXJTdGF0ZU1hbmFnZXIuZ2V0SGVhZGVyU2V0dGluZ3MoZm4ucm93LGZuLmNvbCkpJiZ2b2lkIDAhPT1Mbj9Mbjp7fSxRcj1Tci5pc0NvbGxhcHNlZDtpZigh''@;'; + put 'put ''U3IuY29sbGFwc2libGV8fFFyJiYiY29sbGFwc2UiPT09Q3x8IVFyJiYiZXhwYW5kIj09PUMpcmV0dXJuIHVlPSExLCExfSk7dmFyIF9lPVtdLEJlPVtdO3VlJiZVcihqLGZ1bmN0aW9uKGZuKXt2YXIgbXI9SS5oZWFkZXJTdGF0ZU1hbmFnZXIudHJpZ2dlck5vZGVNb2RpZmljYXRpb24oQyxm''@;'; + put 'put ''bi5yb3csZm4uY29sKSxRcj1tci5yb2xsYmFja01vZGlmaWNhdGlvbjttci5jb2xzcGFuQ29tcGVuc2F0aW9uPjAmJihCZS5wdXNoLmFwcGx5KEJlLFZNZShtci5hZmZlY3RlZENvbHVtbnMpKSxfZS5wdXNoKFFyKSl9KTt2YXIgTmU9dGhpcy5nZXRDb2xsYXBzZWRDb2x1bW5zKCksS2U9W107''@;'; + put 'put ''ImNvbGxhcHNlIj09PUM/S2U9UWhlKFtdLmNvbmNhdChWTWUoTmUpLEJlKSk6ImV4cGFuZCI9PT1DJiYoS2U9ZzQoTmUsZnVuY3Rpb24oZm4pe3JldHVybiFCZS5pbmNsdWRlcyhmbil9KSk7dmFyIGR0PUdNZS5nZXQoQyk7aWYoITE9PT10aGlzLmhvdC5ydW5Ib29rcyhkdC5iZWZvcmVIb29r''@;'; + put 'put ''LE5lLEtlLHVlKSlyZXR1cm4gdm9pZCBVcihfZSxmdW5jdGlvbihmbil7Zm4oKX0pO3RoaXMuaG90LmJhdGNoRXhlY3V0aW9uKGZ1bmN0aW9uKCl7VXIoQmUsZnVuY3Rpb24oZm4pe1pNZShJLEJPKS5zZXRWYWx1ZUF0SW5kZXgoSS5ob3QudG9QaHlzaWNhbENvbHVtbihmbiksZHQuaGlkZUNv''@;'; + put 'put ''bHVtbil9KX0sITApO3ZhciAkdD10aGlzLmdldENvbGxhcHNlZENvbHVtbnMoKS5sZW5ndGghPT1OZS5sZW5ndGg7dGhpcy5ob3QucnVuSG9va3MoZHQuYWZ0ZXJIb29rLE5lLEtlLHVlLCR0KSx0aGlzLmhvdC5yZW5kZXIoKSx0aGlzLmhvdC52aWV3LmFkanVzdEVsZW1lbnRzU2l6ZSghMCl9''@;'; + put 'put ''fX0se2tleToiZ2V0Q29sbGFwc2VkQ29sdW1ucyIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gWk1lKHRoaXMsQk8pLmdldEhpZGRlbkluZGV4ZXMoKX19LHtrZXk6ImdlbmVyYXRlSW5kaWNhdG9yIix2YWx1ZTpmdW5jdGlvbih5LEMpe3ZhciBJPXRoaXMuaG90LnJvb3REb2N1bWVudC5jcmVh''@;'; + put 'put ''dGVFbGVtZW50KCJkaXYiKSxqPXRoaXMuaGVhZGVyU3RhdGVNYW5hZ2VyLmdldEhlYWRlclNldHRpbmdzKHksQyk7cmV0dXJuIE8wKEksImNvbGxhcHNpYmxlSW5kaWNhdG9yIiksai5pc0NvbGxhcHNlZD8oTzAoSSwiY29sbGFwc2VkIiksU3coSSwiKyIpKTooTzAoSSwiZXhwYW5kZWQiKSxT''@;'; + put 'put ''dyhJLCItIikpLEl9fSx7a2V5OiJvbkFmdGVyR2V0Q29sSGVhZGVyIix2YWx1ZTpmdW5jdGlvbih5LEMpe3ZhciBJLGo9Qy5wYXJlbnROb2RlLHVlPWoucGFyZW50Tm9kZSxfZT0tMSp1ZS5jaGlsZE5vZGVzLmxlbmd0aCtBcnJheS5wcm90b3R5cGUuaW5kZXhPZi5jYWxsKHVlLmNoaWxkTm9k''@;'; + put 'put ''ZXMsaiksQmU9bnVsbCE9PShJPXRoaXMuaGVhZGVyU3RhdGVNYW5hZ2VyLmdldEhlYWRlclNldHRpbmdzKF9lLHkpKSYmdm9pZCAwIT09ST9JOnt9O2lmKEJlLmNvbGxhcHNpYmxlJiZCZS5vcmlnQ29sc3Bhbj4xJiZ5Pj10aGlzLmhvdC5nZXRTZXR0aW5ncygpLmZpeGVkQ29sdW1uc1N0YXJ0''@;'; + put 'put ''KXt2YXIgZHQ9dGhpcy5nZW5lcmF0ZUluZGljYXRvcihfZSx5KTtDLnF1ZXJ5U2VsZWN0b3IoImRpdjpmaXJzdC1jaGlsZCIpLmFwcGVuZENoaWxkKGR0KX19fSx7a2V5OiJvbkJlZm9yZU9uQ2VsbE1vdXNlRG93biIsdmFsdWU6ZnVuY3Rpb24oeSxDKXt0bCh5LnRhcmdldCwiY29sbGFwc2li''@;'; + put 'put ''bGVJbmRpY2F0b3IiKSYmKHRsKHkudGFyZ2V0LCJleHBhbmRlZCIpPyh0aGlzLmV2ZW50TWFuYWdlci5maXJlRXZlbnQoeS50YXJnZXQsIm1vdXNldXAiKSx0aGlzLnRvZ2dsZUNvbGxhcHNpYmxlU2VjdGlvbihbQ10sImNvbGxhcHNlIikpOnRsKHkudGFyZ2V0LCJjb2xsYXBzZWQiKSYmKHRo''@;'; + put 'put ''aXMuZXZlbnRNYW5hZ2VyLmZpcmVFdmVudCh5LnRhcmdldCwibW91c2V1cCIpLHRoaXMudG9nZ2xlQ29sbGFwc2libGVTZWN0aW9uKFtDXSwiZXhwYW5kIikpLF84KHkpKX19LHtrZXk6Im9uSW5pdCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLnVwZGF0ZVBsdWdpbigpfX0se2tleToib25BZnRl''@;'; + put 'put ''ckxvYWREYXRhIix2YWx1ZTpmdW5jdGlvbih5LEMpe0N8fHRoaXMudXBkYXRlUGx1Z2luKCl9fSx7a2V5OiJkZXN0cm95Iix2YWx1ZTpmdW5jdGlvbigpe2Y4ZSh0aGlzLEJPLG51bGwpLFVTKE92KGgucHJvdG90eXBlKSwiZGVzdHJveSIsdGhpcykuY2FsbCh0aGlzKX19XSxbe2tleToiUExV''@;'; + put 'put ''R0lOX0tFWSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGg4ZX19LHtrZXk6IlBMVUdJTl9QUklPUklUWSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDI5MH19LHtrZXk6IlBMVUdJTl9ERVBTIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm5bInBsdWdpbjpOZXN0ZWRIZWFkZXJzIl19fSx7a2V5OiJTRVRU''@;'; + put 'put ''SU5HX0tFWVMiLGdldDpmdW5jdGlvbigpe3JldHVybltoOGVdLmNvbmNhdChxaXQpfX1dKSxofShZcyk7ZnVuY3Rpb24gV01lKGQsZyl7dmFyIGg9T2JqZWN0LmtleXMoZCk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHY9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9s''@;'; + put 'put ''cyhkKTtnJiYodj12LmZpbHRlcihmdW5jdGlvbih5KXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLHkpLmVudW1lcmFibGV9KSksaC5wdXNoLmFwcGx5KGgsdil9cmV0dXJuIGh9ZnVuY3Rpb24gbjB0KGQsZyxoKXtyZXR1cm4gZyBpbiBkP09iamVjdC5kZWZpbmVQ''@;'; + put 'put ''cm9wZXJ0eShkLGcse3ZhbHVlOmgsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpkW2ddPWgsZH1mdW5jdGlvbiBZTWUoZCxnKXtyZXR1cm4gZnVuY3Rpb24gYTB0KGQpe2lmKEFycmF5LmlzQXJyYXkoZCkpcmV0dXJuIGR9KGQpfHxmdW5jdGlvbiBvMHQoZCxn''@;'; + put 'put ''KXt2YXIgaD1udWxsPT1kP251bGw6InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJmRbU3ltYm9sLml0ZXJhdG9yXXx8ZFsiQEBpdGVyYXRvciJdO2lmKG51bGwhPWgpe3ZhciBJLGosdj1bXSx5PSEwLEM9ITE7dHJ5e2ZvcihoPWguY2FsbChkKTshKHk9KEk9aC5uZXh0KCkpLmRvbmUpJiYo''@;'; + put 'put ''di5wdXNoKEkudmFsdWUpLCFnfHx2Lmxlbmd0aCE9PWcpO3k9ITApO31jYXRjaCh1ZSl7Qz0hMCxqPXVlfWZpbmFsbHl7dHJ5eyF5JiZudWxsIT1oLnJldHVybiYmaC5yZXR1cm4oKX1maW5hbGx5e2lmKEMpdGhyb3cgan19cmV0dXJuIHZ9fShkLGcpfHxmdW5jdGlvbiBpMHQoZCxnKXtpZihk''@;'; + put 'put ''KXtpZigic3RyaW5nIj09dHlwZW9mIGQpcmV0dXJuIFVNZShkLGcpO3ZhciBoPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChkKS5zbGljZSg4LC0xKTtpZigiT2JqZWN0Ij09PWgmJmQuY29uc3RydWN0b3ImJihoPWQuY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1ofHwiU2V0Ij09''@;'; + put 'put ''PWgpcmV0dXJuIEFycmF5LmZyb20oZCk7aWYoIkFyZ3VtZW50cyI9PT1ofHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChoKSlyZXR1cm4gVU1lKGQsZyl9fShkLGcpfHxmdW5jdGlvbiByMHQoKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0''@;'; + put 'put ''dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfWZ1bmN0aW9uIFVNZShkLGcpeyhudWxsPT1nfHxnPmQu''@;'; + put 'put ''bGVuZ3RoKSYmKGc9ZC5sZW5ndGgpO2Zvcih2YXIgaD0wLHY9bmV3IEFycmF5KGcpO2g8ZztoKyspdltoXT1kW2hdO3JldHVybiB2fWZ1bmN0aW9uIFFNZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYu''@;'; + put 'put ''Y29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fXZhciB1MHQ9WyJzb3J0RW1wdHlDZWxscyIsImluZGljYXRvciIsImhlYWRlckFjdGlvbiIsImNvbXBhcmVGdW5jdGlvbkZhY3RvcnkiXSxkMHQ9ZnVu''@;'; + put 'put ''Y3Rpb24oKXtmdW5jdGlvbiBkKGcsaCl7KGZ1bmN0aW9uIGwwdChkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSkodGhpcyxkKSx0aGlzLmhvdD1nLHRoaXMuc29ydGluZ1N0YXRlcz1uZXcg''@;'; + put 'put ''WWVlLHRoaXMuc29ydEVtcHR5Q2VsbHM9ITEsdGhpcy5pbmRpY2F0b3I9ITAsdGhpcy5oZWFkZXJBY3Rpb249ITAsdGhpcy5jb21wYXJlRnVuY3Rpb25GYWN0b3J5PXZvaWQgMCx0aGlzLm1hcE5hbWU9aCx0aGlzLmhvdC5jb2x1bW5JbmRleE1hcHBlci5yZWdpc3Rlck1hcChoLHRoaXMuc29y''@;'; + put 'put ''dGluZ1N0YXRlcyl9cmV0dXJuIGZ1bmN0aW9uIHMwdChkLGcsaCl7ZyYmUU1lKGQucHJvdG90eXBlLGcpLGgmJlFNZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShkLFt7a2V5OiJ1cGRhdGVBbGxDb2x1bW5zUHJvcGVydGllcyIsdmFs''@;'; + put 'put ''dWU6ZnVuY3Rpb24oaCl7dmFyIHY9dGhpczsheGwoaCl8fEdsKGgsZnVuY3Rpb24oeSxDKXt1MHQuaW5jbHVkZXMoQykmJih2W0NdPXkpfSl9fSx7a2V5OiJnZXRBbGxDb2x1bW5zUHJvcGVydGllcyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD17c29ydEVtcHR5Q2VsbHM6dGhpcy5zb3J0RW1w''@;'; + put 'put ''dHlDZWxscyxpbmRpY2F0b3I6dGhpcy5pbmRpY2F0b3IsaGVhZGVyQWN0aW9uOnRoaXMuaGVhZGVyQWN0aW9ufTtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgdGhpcy5jb21wYXJlRnVuY3Rpb25GYWN0b3J5JiYoaC5jb21wYXJlRnVuY3Rpb25GYWN0b3J5PXRoaXMuY29tcGFyZUZ1bmN0aW9u''@;'; + put 'put ''RmFjdG9yeSksaH19LHtrZXk6ImdldFNvcnRPcmRlck9mQ29sdW1uIix2YWx1ZTpmdW5jdGlvbihoKXt2YXIgdjtyZXR1cm4gbnVsbD09PSh2PXRoaXMuc29ydGluZ1N0YXRlcy5nZXRWYWx1ZUF0SW5kZXgodGhpcy5ob3QudG9QaHlzaWNhbENvbHVtbihoKSkpfHx2b2lkIDA9PT12P3ZvaWQg''@;'; + put 'put ''MDp2LnNvcnRPcmRlcn19LHtrZXk6ImdldEluZGV4T2ZDb2x1bW5JblNvcnRRdWV1ZSIsdmFsdWU6ZnVuY3Rpb24oaCl7cmV0dXJuIGg9dGhpcy5ob3QudG9QaHlzaWNhbENvbHVtbihoKSx0aGlzLnNvcnRpbmdTdGF0ZXMuZ2V0RW50cmllcygpLmZpbmRJbmRleChmdW5jdGlvbih2KXtyZXR1''@;'; + put 'put ''cm4gWU1lKHYsMSlbMF09PT1ofSl9fSx7a2V5OiJnZXROdW1iZXJPZlNvcnRlZENvbHVtbnMiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc29ydGluZ1N0YXRlcy5nZXRMZW5ndGgoKX19LHtrZXk6ImlzTGlzdE9mU29ydGVkQ29sdW1uc0VtcHR5Iix2YWx1ZTpmdW5jdGlvbigpe3Jl''@;'; + put 'put ''dHVybiAwPT09dGhpcy5nZXROdW1iZXJPZlNvcnRlZENvbHVtbnMoKX19LHtrZXk6ImlzQ29sdW1uU29ydGVkIix2YWx1ZTpmdW5jdGlvbihoKXtyZXR1cm4geGwodGhpcy5zb3J0aW5nU3RhdGVzLmdldFZhbHVlQXRJbmRleCh0aGlzLmhvdC50b1BoeXNpY2FsQ29sdW1uKGgpKSl9fSx7a2V5''@;'; + put 'put ''OiJnZXRTb3J0U3RhdGVzIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBoPXRoaXM7cmV0dXJuIG51bGw9PT10aGlzLnNvcnRpbmdTdGF0ZXM/W106dGhpcy5zb3J0aW5nU3RhdGVzLmdldEVudHJpZXMoKS5tYXAoZnVuY3Rpb24oeSl7dmFyIEM9WU1lKHksMiksaj1DWzFdO3JldHVybiBmdW5jdGlv''@;'; + put 'put ''biB0MHQoZCl7Zm9yKHZhciBnPTE7Zzxhcmd1bWVudHMubGVuZ3RoO2crKyl7dmFyIGg9bnVsbCE9YXJndW1lbnRzW2ddP2FyZ3VtZW50c1tnXTp7fTtnJTI/V01lKE9iamVjdChoKSwhMCkuZm9yRWFjaChmdW5jdGlvbih2KXtuMHQoZCx2LGhbdl0pfSk6T2JqZWN0LmdldE93blByb3BlcnR5''@;'; + put 'put ''RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhoKSk6V01lKE9iamVjdChoKSkuZm9yRWFjaChmdW5jdGlvbih2KXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0''@;'; + put 'put ''b3IoaCx2KSl9KX1yZXR1cm4gZH0oe2NvbHVtbjpoLmhvdC50b1Zpc3VhbENvbHVtbihDWzBdKX0sail9KX19LHtrZXk6ImdldENvbHVtblNvcnRTdGF0ZSIsdmFsdWU6ZnVuY3Rpb24oaCl7dmFyIHY9dGhpcy5nZXRTb3J0T3JkZXJPZkNvbHVtbihoKTtpZihUbyh2KSlyZXR1cm57Y29sdW1u''@;'; + put 'put ''Omgsc29ydE9yZGVyOnZ9fX0se2tleToic2V0U29ydFN0YXRlcyIsdmFsdWU6ZnVuY3Rpb24oaCl7dGhpcy5zb3J0aW5nU3RhdGVzLmNsZWFyKCk7Zm9yKHZhciB2PTA7djxoLmxlbmd0aDt2Kz0xKXRoaXMuc29ydGluZ1N0YXRlcy5zZXRWYWx1ZUF0SW5kZXgodGhpcy5ob3QudG9QaHlzaWNh''@;'; + put 'put ''bENvbHVtbihoW3ZdLmNvbHVtbikse3NvcnRPcmRlcjpoW3ZdLnNvcnRPcmRlcn0pfX0se2tleToiZGVzdHJveSIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmhvdC5jb2x1bW5JbmRleE1hcHBlci51bnJlZ2lzdGVyTWFwKHRoaXMubWFwTmFtZSksdGhpcy5zb3J0aW5nU3RhdGVzPW51bGx9fV0p''@;'; + put 'put ''LGR9KCksVHRlPSJhc2MiLEl0ZT0iZGVzYyI7ZnVuY3Rpb24gSk1lKGQpe2lmKGQhPT1JdGUpcmV0dXJuIGQ9PT1UdGU/SXRlOlR0ZX1mdW5jdGlvbiBYTWUoZCl7cmV0dXJuIGQucXVlcnlTZWxlY3RvcigiLiIuY29uY2F0KCJjb2xIZWFkZXIiKSl9ZnVuY3Rpb24gS01lKGQsZyl7aWYoZDww''@;'; + put 'put ''fHwhZy5wYXJlbnROb2RlKXJldHVybiExO3ZhciBoPWcucGFyZW50Tm9kZS5wYXJlbnROb2RlLmNoaWxkTm9kZXM7cmV0dXJuLTE9PUFycmF5LmZyb20oaCkuaW5kZXhPZihnLnBhcmVudE5vZGUpLWgubGVuZ3RofWZ1bmN0aW9uIGQ4ZShkLGcsaCl7cmV0dXJuLTE9PT1kJiZnPj0wJiYhMT09''@;'; + put 'put ''PUV3KGgpfXZhciAkTWU9ImluZGljYXRvckRpc2FibGVkIixxTWU9ImNvbHVtblNvcnRpbmciLGVFZT0ic29ydEFjdGlvbiIsdEVlPW5ldyBNYXAoW1tUdGUsImFzY2VuZGluZyJdLFtJdGUsImRlc2NlbmRpbmciXV0pO2Z1bmN0aW9uIHkwdChkLGcsaCx2KXt2YXIgeT1bcU1lXTtpZih2JiZ5''@;'; + put 'put ''LnB1c2goZUVlKSwhMT09PWgpcmV0dXJuIHkucHVzaCgkTWUpLHk7dmFyIEM9ZC5nZXRTb3J0T3JkZXJPZkNvbHVtbihnKTtyZXR1cm4gVG8oQykmJnkucHVzaCh0RWUuZ2V0KEMpKSx5fWZ1bmN0aW9uIHcwdCgpe3JldHVybiBBcnJheS5mcm9tKHRFZS52YWx1ZXMoKSkuY29uY2F0KGVFZSwk''@;'; + put 'put ''TWUscU1lKX1mdW5jdGlvbiBuRWUoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShk''@;'; + put 'put ''LHYua2V5LHYpfX1mdW5jdGlvbiByRWUoZCxnLGgpe3JldHVybiBnJiZuRWUoZC5wcm90b3R5cGUsZyksaCYmbkVlKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZH1mdW5jdGlvbiBpRWUoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0''@;'; + put 'put ''aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX12YXIgb0VlPXJFZShmdW5jdGlvbiBkKGcpe2lFZSh0aGlzLGQpLHRoaXMuZGF0YT1nLHRoaXMubmV4dD1udWxsLHRoaXMucHJldj1udWxsfSksYjB0PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZCgp''@;'; + put 'put ''e2lFZSh0aGlzLGQpLHRoaXMuZmlyc3Q9bnVsbCx0aGlzLmxhc3Q9bnVsbH1yZXR1cm4gckVlKGQsW3trZXk6InB1c2giLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB2PW5ldyBvRWUoaCk7aWYobnVsbD09PXRoaXMuZmlyc3QpdGhpcy5maXJzdD12LHRoaXMubGFzdD12O2Vsc2V7dmFyIHk9dGhp''@;'; + put 'put ''cy5sYXN0O3RoaXMubGFzdD12LHYucHJldj15LHkubmV4dD12fX19LHtrZXk6InVuc2hpZnQiLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB2PW5ldyBvRWUoaCk7aWYobnVsbD09PXRoaXMuZmlyc3QpdGhpcy5maXJzdD12LHRoaXMubGFzdD12O2Vsc2V7dmFyIHk9dGhpcy5maXJzdDt0aGlzLmZp''@;'; + put 'put ''cnN0PXYsdi5uZXh0PXkseS5wcmV2PXZ9fX0se2tleToiaW5vcmRlciIsdmFsdWU6ZnVuY3Rpb24oaCl7Zm9yKHZhciB2PXRoaXMuZmlyc3Q7djspaCh2KSx2PXYubmV4dH19LHtrZXk6InJlbW92ZSIsdmFsdWU6ZnVuY3Rpb24oaCl7aWYobnVsbD09PXRoaXMuZmlyc3QpcmV0dXJuITE7Zm9y''@;'; + put 'put ''KHZhciB5LEMsdj10aGlzLmZpcnN0O3Y7KXtpZih2LmRhdGE9PT1oKXJldHVybiBDPXYucHJldiwoeT12Lm5leHQpJiYoeS5wcmV2PUMpLEMmJihDLm5leHQ9eSksdj09PXRoaXMuZmlyc3QmJih0aGlzLmZpcnN0PXkpLHY9PT10aGlzLmxhc3QmJih0aGlzLmxhc3Q9QyksITA7dj12Lm5leHR9''@;'; + put 'put ''cmV0dXJuITF9fSx7a2V5OiJoYXNDeWNsZSIsdmFsdWU6ZnVuY3Rpb24oKXtmb3IodmFyIGg9dGhpcy5maXJzdCx2PXRoaXMuZmlyc3Q7Oyl7aWYobnVsbD09PWh8fG51bGw9PT0oaD1oLm5leHQpKXJldHVybiExO2lmKChoPWgubmV4dCk9PT0odj12Lm5leHQpKXJldHVybiEwfX19LHtrZXk6''@;'; + put 'put ''InBvcCIsdmFsdWU6ZnVuY3Rpb24oKXtpZihudWxsPT09dGhpcy5sYXN0KXJldHVybiBudWxsO3ZhciBoPXRoaXMubGFzdDtyZXR1cm4gdGhpcy5sYXN0PXRoaXMubGFzdC5wcmV2LGh9fSx7a2V5OiJzaGlmdCIsdmFsdWU6ZnVuY3Rpb24oKXtpZihudWxsPT09dGhpcy5maXJzdClyZXR1cm4g''@;'; + put 'put ''bnVsbDt2YXIgaD10aGlzLmZpcnN0O3JldHVybiB0aGlzLmZpcnN0PXRoaXMuZmlyc3QubmV4dCxofX0se2tleToicmVjdXJzaXZlUmV2ZXJzZSIsdmFsdWU6ZnVuY3Rpb24oKXtpZih0aGlzLmZpcnN0KXsoZnVuY3Rpb24gaCh5LEMpeyFDfHwoaChDLEMubmV4dCksQy5uZXh0PXkpfSkodGhp''@;'; + put 'put ''cy5maXJzdCx0aGlzLmZpcnN0Lm5leHQpLHRoaXMuZmlyc3QubmV4dD1udWxsO3ZhciB2PXRoaXMuZmlyc3Q7dGhpcy5maXJzdD10aGlzLmxhc3QsdGhpcy5sYXN0PXZ9fX0se2tleToicmV2ZXJzZSIsdmFsdWU6ZnVuY3Rpb24oKXtpZih0aGlzLmZpcnN0JiZ0aGlzLmZpcnN0Lm5leHQpe2Zv''@;'; + put 'put ''cih2YXIgeSxoPXRoaXMuZmlyc3QubmV4dCx2PXRoaXMuZmlyc3Q7aDspeT1oLm5leHQsaC5uZXh0PXYsdi5wcmV2PWgsdj1oLGg9eTt0aGlzLmZpcnN0Lm5leHQ9bnVsbCx0aGlzLmxhc3QucHJldj1udWxsLHk9dGhpcy5maXJzdCx0aGlzLmZpcnN0PXYsdGhpcy5sYXN0PXl9fX1dKSxkfSgp''@;'; + put 'put ''O2NvbnN0IGFFZT1iMHQ7dmFyIF8wdD1mdW5jdGlvbihnLGgpe3ZhciB2PWcudG9TdHJpbmcoKSx5PWgudG9TdHJpbmcoKTtyZXR1cm4gdj09PXk/MDp2PHk/LTE6MX07ZnVuY3Rpb24gcDhlKGQpe3ZhciBnPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3Vt''@;'; + put 'put ''ZW50c1sxXTpfMHQsaD1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06MCx2PWFyZ3VtZW50cy5sZW5ndGg+MyYmdm9pZCAwIT09YXJndW1lbnRzWzNdP2FyZ3VtZW50c1szXTpkLmxlbmd0aDtpZihNYXRoLmFicyh2LWgpPD0xKXJldHVybltd''@;'; + put 'put ''O3ZhciB5PU1hdGguY2VpbCgoaCt2KS8yKTtyZXR1cm4gcDhlKGQsZyxoLHkpLHA4ZShkLGcseSx2KSxDMHQoZCxnLGgseSx2KX1mdW5jdGlvbiBDMHQoZCxnLGgsdix5KXtmb3IodmFyIEM9bmV3IGFFZSxJPW5ldyBhRWUsaj12LWgsdWU9eS12LF9lPU1hdGgubWF4KGosdWUpLEJlPXktaCxO''@;'; + put 'put ''ZT0wO05lPF9lO05lKz0xKU5lPGomJkMucHVzaChkW2grTmVdKSxOZTx1ZSYmSS5wdXNoKGRbditOZV0pO2Zvcih2YXIgS2U9MDtLZTxCZTspZFtoK0tlXT1DLmZpcnN0JiZJLmZpcnN0P2coQy5maXJzdC5kYXRhLEkuZmlyc3QuZGF0YSk+MD9JLnNoaWZ0KCkuZGF0YTpDLnNoaWZ0KCkuZGF0''@;'; + put 'put ''YTpDLmZpcnN0P0Muc2hpZnQoKS5kYXRhOkkuc2hpZnQoKS5kYXRhLEtlKz0xO3JldHVybiBkfWZ1bmN0aW9uIGxFZShkLGcsaCl7dmFyIHY9Zy5sb2NhbGU7cmV0dXJuIGZ1bmN0aW9uKHksQyl7dmFyIEk9aC5zb3J0RW1wdHlDZWxscztyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHkmJih5PXku''@;'; + put 'put ''dG9Mb2NhbGVMb3dlckNhc2UodikpLCJzdHJpbmciPT10eXBlb2YgQyYmKEM9Qy50b0xvY2FsZUxvd2VyQ2FzZSh2KSkseT09PUM/MDpkYyh5KT9kYyhDKT8wOkkmJiJhc2MiPT09ZD8tMToxOmRjKEMpP0kmJiJhc2MiPT09ZD8xOi0xOmlzTmFOKHkpJiYhaXNOYU4oQyk/ImFzYyI9PT1kPzE6''@;'; + put 'put ''LTE6IWlzTmFOKHkpJiZpc05hTihDKXx8KGlzTmFOKHkpfHxpc05hTihDKXx8KHk9cGFyc2VGbG9hdCh5KSxDPXBhcnNlRmxvYXQoQykpLHk8Qyk/ImFzYyI9PT1kPy0xOjE6eT5DPyJhc2MiPT09ZD8xOi0xOjB9fXZhciBnOGU9THAoInNvcnRpbmcuY29tcGFyZUZ1bmN0aW9uRmFjdG9yeSIp''@;'; + put 'put ''LER0ZT1nOGUucmVnaXN0ZXIsdUVlPWc4ZS5nZXRJdGVtLEQwdD1nOGUuaGFzSXRlbSxjRWU9THAoInNvcnRpbmcubWFpblNvcnRDb21wYXJhdG9yIiksZkVlPWNFZS5yZWdpc3RlcixMMHQ9Y0VlLmdldEl0ZW07ZnVuY3Rpb24gaEVlKGQpe3JldHVybiBEMHQoZCk/dUVlKGQpOnVFZSgiZGVm''@;'; + put 'put ''YXVsdCIpfWZ1bmN0aW9uIGRFZShkKXtyZXR1cm4gZnVuY3Rpb24gUDB0KGQpe2lmKEFycmF5LmlzQXJyYXkoZCkpcmV0dXJuIGR9KGQpfHxmdW5jdGlvbiBCMHQoZCl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJm51bGwhPWRbU3ltYm9sLml0ZXJhdG9yXXx8bnVsbCE9ZFsiQEBp''@;'; + put 'put ''dGVyYXRvciJdKXJldHVybiBBcnJheS5mcm9tKGQpfShkKXx8ZnVuY3Rpb24gUjB0KGQsZyl7aWYoZCl7aWYoInN0cmluZyI9PXR5cGVvZiBkKXJldHVybiBwRWUoZCxnKTt2YXIgaD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZCkuc2xpY2UoOCwtMSk7aWYoIk9iamVjdCI9PT1o''@;'; + put 'put ''JiZkLmNvbnN0cnVjdG9yJiYoaD1kLmNvbnN0cnVjdG9yLm5hbWUpLCJNYXAiPT09aHx8IlNldCI9PT1oKXJldHVybiBBcnJheS5mcm9tKGQpO2lmKCJBcmd1bWVudHMiPT09aHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QoaCkpcmV0dXJuIHBFZShk''@;'; + put 'put ''LGcpfX0oZCl8fGZ1bmN0aW9uIE8wdCgpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5p''@;'; + put 'put ''dGVyYXRvcl0oKSBtZXRob2QuIil9KCl9ZnVuY3Rpb24gcEVlKGQsZyl7KG51bGw9PWd8fGc+ZC5sZW5ndGgpJiYoZz1kLmxlbmd0aCk7Zm9yKHZhciBoPTAsdj1uZXcgQXJyYXkoZyk7aDxnO2grKyl2W2hdPWRbaF07cmV0dXJuIHZ9ZnVuY3Rpb24gbThlKGQpe3JldHVybihtOGU9ImZ1bmN0''@;'; + put 'put ''aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZyl7cmV0dXJuIHR5cGVvZiBnfTpmdW5jdGlvbihnKXtyZXR1cm4gZyYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZy5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZyE9PVN5bWJv''@;'; + put 'put ''bC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGd9KShkKX1EdGUoIm51bWVyaWMiLGZ1bmN0aW9uIFMwdChkLGcsaCl7cmV0dXJuIGZ1bmN0aW9uKHYseSl7dmFyIEM9cGFyc2VGbG9hdCh2KSxJPXBhcnNlRmxvYXQoeSksaj1oLnNvcnRFbXB0eUNlbGxzO2lmKEM9PT1JfHxpc05hTihDKSYm''@;'; + put 'put ''aXNOYU4oSSkpcmV0dXJuIDA7aWYoail7aWYoZGModikpcmV0dXJuImFzYyI9PT1kPy0xOjE7aWYoZGMoeSkpcmV0dXJuImFzYyI9PT1kPzE6LTF9cmV0dXJuIGlzTmFOKEMpPzE6aXNOYU4oSSk/LTE6QzxJPyJhc2MiPT09ZD8tMToxOkM+ST8iYXNjIj09PWQ/MTotMTowfX0pLER0ZSgiY2hl''@;'; + put 'put ''Y2tib3giLGZ1bmN0aW9uIEUwdChkLGcsaCl7dmFyIHY9Zy5jaGVja2VkVGVtcGxhdGUseT1nLnVuY2hlY2tlZFRlbXBsYXRlLEM9aC5zb3J0RW1wdHlDZWxscztyZXR1cm4gZnVuY3Rpb24oSSxqKXt2YXIgdWU9ZGMoSSksX2U9ZGMoaiksQmU9dWU/eTpJLE5lPV9lP3k6aixLZT1CZT09PXl8''@;'; + put 'put ''fEJlPT09dixkdD1OZT09PXl8fE5lPT09djtpZighMT09PUMpe2lmKHVlJiYhMT09PV9lKXJldHVybiAxO2lmKCExPT09dWUmJl9lKXJldHVybi0xfXJldHVybiExPT09S2UmJmR0PyJhc2MiPT09ZD8tMToxOktlJiYhMT09PWR0PyJhc2MiPT09ZD8xOi0xOiExPT09S2UmJiExPT09ZHQ/bEVl''@;'; + put 'put ''KGQsZyxoKShJLGopOkJlPT09eSYmTmU9PT12PyJhc2MiPT09ZD8tMToxOkJlPT09diYmTmU9PT15PyJhc2MiPT09ZD8xOi0xOjB9fSksRHRlKCJkYXRlIixmdW5jdGlvbiBUMHQoZCxnLGgpe3JldHVybiBmdW5jdGlvbih2LHkpe3ZhciBDPWguc29ydEVtcHR5Q2VsbHM7aWYodj09PXkpcmV0''@;'; + put 'put ''dXJuIDA7aWYoZGModikpcmV0dXJuIGRjKHkpPzA6QyYmImFzYyI9PT1kPy0xOjE7aWYoZGMoeSkpcmV0dXJuIEMmJiJhc2MiPT09ZD8xOi0xO3ZhciBJPWcuZGF0ZUZvcm1hdCxqPVRsKHYsSSksdWU9VGwoeSxJKTtyZXR1cm4gai5pc1ZhbGlkKCk/dWUuaXNWYWxpZCgpP3VlLmlzQWZ0ZXIo''@;'; + put 'put ''aik/ImFzYyI9PT1kPy0xOjE6dWUuaXNCZWZvcmUoaik/ImFzYyI9PT1kPzE6LTE6MDotMToxfX0pLER0ZSgiZGVmYXVsdCIsbEVlKTt2YXIgSDB0PVsiY29sdW1uIl0sTjB0PVsiY29sdW1uIl07ZnVuY3Rpb24gUE8oZCl7cmV0dXJuIGZ1bmN0aW9uIHowdChkKXtpZihBcnJheS5pc0FycmF5''@;'; + put 'put ''KGQpKXJldHVybiB2OGUoZCl9KGQpfHxmdW5jdGlvbiBaMHQoZCl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJm51bGwhPWRbU3ltYm9sLml0ZXJhdG9yXXx8bnVsbCE9ZFsiQEBpdGVyYXRvciJdKXJldHVybiBBcnJheS5mcm9tKGQpfShkKXx8ZnVuY3Rpb24gajB0KGQsZyl7aWYo''@;'; + put 'put ''ZCl7aWYoInN0cmluZyI9PXR5cGVvZiBkKXJldHVybiB2OGUoZCxnKTt2YXIgaD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZCkuc2xpY2UoOCwtMSk7aWYoIk9iamVjdCI9PT1oJiZkLmNvbnN0cnVjdG9yJiYoaD1kLmNvbnN0cnVjdG9yLm5hbWUpLCJNYXAiPT09aHx8IlNldCI9''@;'; + put 'put ''PT1oKXJldHVybiBBcnJheS5mcm9tKGQpO2lmKCJBcmd1bWVudHMiPT09aHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QoaCkpcmV0dXJuIHY4ZShkLGcpfX0oZCl8fGZ1bmN0aW9uIFYwdCgpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0''@;'; + put 'put ''ZW1wdCB0byBzcHJlYWQgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfWZ1bmN0aW9uIHY4ZShkLGcpeyhudWxsPT1nfHxnPmQubGVuZ3Ro''@;'; + put 'put ''KSYmKGc9ZC5sZW5ndGgpO2Zvcih2YXIgaD0wLHY9bmV3IEFycmF5KGcpO2g8ZztoKyspdltoXT1kW2hdO3JldHVybiB2fWZ1bmN0aW9uIGdFZShkLGcpe3ZhciBoPU9iamVjdC5rZXlzKGQpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciB2PU9iamVjdC5nZXRPd25Qcm9w''@;'; + put 'put ''ZXJ0eVN5bWJvbHMoZCk7ZyYmKHY9di5maWx0ZXIoZnVuY3Rpb24oeSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCx5KS5lbnVtZXJhYmxlfSkpLGgucHVzaC5hcHBseShoLHYpfXJldHVybiBofWZ1bmN0aW9uIG1FZShkKXtmb3IodmFyIGc9MTtnPGFyZ3VtZW50''@;'; + put 'put ''cy5sZW5ndGg7ZysrKXt2YXIgaD1udWxsIT1hcmd1bWVudHNbZ10/YXJndW1lbnRzW2ddOnt9O2clMj9nRWUoT2JqZWN0KGgpLCEwKS5mb3JFYWNoKGZ1bmN0aW9uKHYpe0cwdChkLHYsaFt2XSl9KTpPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVy''@;'; + put 'put ''dGllcyhkLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKGgpKTpnRWUoT2JqZWN0KGgpKS5mb3JFYWNoKGZ1bmN0aW9uKHYpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihoLHYpKX0pfXJldHVybiBkfWZ1bmN0aW9uIEcw''@;'; + put 'put ''dChkLGcsaCl7cmV0dXJuIGcgaW4gZD9PYmplY3QuZGVmaW5lUHJvcGVydHkoZCxnLHt2YWx1ZTpoLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZFtnXT1oLGR9ZnVuY3Rpb24gdkVlKGQsZyl7aWYobnVsbD09ZClyZXR1cm57fTt2YXIgdix5LGg9ZnVuY3Rp''@;'; + put 'put ''b24gVzB0KGQsZyl7aWYobnVsbD09ZClyZXR1cm57fTt2YXIgeSxDLGg9e30sdj1PYmplY3Qua2V5cyhkKTtmb3IoQz0wO0M8di5sZW5ndGg7QysrKSEoZy5pbmRleE9mKHk9dltDXSk+PTApJiYoaFt5XT1kW3ldKTtyZXR1cm4gaH0oZCxnKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1i''@;'; + put 'put ''b2xzKXt2YXIgQz1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGQpO2Zvcih5PTA7eTxDLmxlbmd0aDt5KyspIShnLmluZGV4T2Yodj1DW3ldKT49MCkmJighT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGQsdil8fChoW3ZdPWRbdl0pKX1yZXR1cm4gaH1m''@;'; + put 'put ''dW5jdGlvbiBBRWUoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYp''@;'; + put 'put ''fX1mdW5jdGlvbiBRUygpe3JldHVybiBRUz0idW5kZWZpbmVkIiE9dHlwZW9mIFJlZmxlY3QmJlJlZmxlY3QuZ2V0P1JlZmxlY3QuZ2V0LmJpbmQoKTpmdW5jdGlvbihnLGgsdil7dmFyIHk9UTB0KGcsaCk7aWYoeSl7dmFyIEM9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih5LGgp''@;'; + put 'put ''O3JldHVybiBDLmdldD9DLmdldC5jYWxsKGFyZ3VtZW50cy5sZW5ndGg8Mz9nOnYpOkMudmFsdWV9fSxRUy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gUTB0KGQsZyl7Zm9yKDshT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGQsZykmJm51bGwhPT0oZD1Sdihk''@;'; + put 'put ''KSk7KTtyZXR1cm4gZH1mdW5jdGlvbiBBOGUoZCxnKXtyZXR1cm4oQThlPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHYseSl7cmV0dXJuIHYuX19wcm90b19fPXksdn0pKGQsZyl9ZnVuY3Rpb24gSzB0KGQsZyl7aWYoZyYmKCJv''@;'; + put 'put ''YmplY3QiPT09bThlKGcpfHwiZnVuY3Rpb24iPT10eXBlb2YgZykpcmV0dXJuIGc7aWYodm9pZCAwIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJEZXJpdmVkIGNvbnN0cnVjdG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0IG9yIHVuZGVmaW5lZCIpO3JldHVybiBmdW5jdGlvbiAkMHQoZCl7''@;'; + put 'put ''aWYodm9pZCAwPT09ZCl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3JldHVybiBkfShkKX1mdW5jdGlvbiBSdihkKXtyZXR1cm4oUnY9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVj''@;'; + put 'put ''dC5nZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24oaCl7cmV0dXJuIGguX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YoaCl9KShkKX12YXIgeThlPSJjb2x1bW5Tb3J0aW5nIix5RWU9ImFwcGVuZCI7ZkVlKHk4ZSxmdW5jdGlvbiBGMHQoZCxnKXtyZXR1cm4gZnVuY3Rpb24o''@;'; + put 'put ''aCx2KXt2YXIgQmUsTmUsS2UsZHQsT3QsQz1kRWUoaCkuc2xpY2UoMSksaj1kRWUodikuc2xpY2UoMSk7cmV0dXJuIEJlPWRbMF0sS2U9Q1swXSxkdD1qWzBdLCgoT3Q9KE5lPWdbMF0pLmNvbHVtblNvcnRpbmcpLmNvbXBhcmVGdW5jdGlvbkZhY3Rvcnk/T3QuY29tcGFyZUZ1bmN0aW9uRmFj''@;'; + put 'put ''dG9yeTpoRWUoTmUudHlwZSkpKEJlLE5lLE90KShLZSxkdCl9fSksem8uZ2V0U2luZ2xldG9uKCkucmVnaXN0ZXIoImJlZm9yZUNvbHVtblNvcnQiKSx6by5nZXRTaW5nbGV0b24oKS5yZWdpc3RlcigiYWZ0ZXJDb2x1bW5Tb3J0Iik7dmFyIHdFZT1mdW5jdGlvbihkKXshZnVuY3Rpb24gSjB0''@;'; + put 'put ''KGQsZyl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGcmJm51bGwhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uIik7ZC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShnJiZnLnByb3RvdHlwZSx7Y29uc3RydWN0''@;'; + put 'put ''b3I6e3ZhbHVlOmQsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGcmJkE4ZShkLGcpfShoLGQpO3ZhciBnPWZ1bmN0aW9uIFgwdChkKXt2YXIgZz1mdW5jdGlvbiBxMHQoKXtpZigidW5kZWZp''@;'; + put 'put ''bmVkIj09dHlwZW9mIFJlZmxlY3R8fCFSZWZsZWN0LmNvbnN0cnVjdHx8UmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT10eXBlb2YgUHJveHkpcmV0dXJuITA7dHJ5e3JldHVybiBCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25z''@;'; + put 'put ''dHJ1Y3QoQm9vbGVhbixbXSxmdW5jdGlvbigpe30pKSwhMH1jYXRjaChkKXtyZXR1cm4hMX19KCk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHksdj1SdihkKTtpZihnKXt2YXIgQz1Sdih0aGlzKS5jb25zdHJ1Y3Rvcjt5PVJlZmxlY3QuY29uc3RydWN0KHYsYXJndW1lbnRzLEMpfWVsc2UgeT12''@;'; + put 'put ''LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gSzB0KHRoaXMseSl9fShoKTtmdW5jdGlvbiBoKHYpe3ZhciB5O3JldHVybiBmdW5jdGlvbiBZMHQoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rp''@;'; + put 'put ''b24iKX0odGhpcyxoKSwoeT1nLmNhbGwodGhpcyx2KSkuY29sdW1uU3RhdGVzTWFuYWdlcj1udWxsLHkuY29sdW1uTWV0YUNhY2hlPW51bGwseS5wbHVnaW5LZXk9eThlLHkuaW5kZXhlc1NlcXVlbmNlQ2FjaGU9bnVsbCx5fXJldHVybiBmdW5jdGlvbiBVMHQoZCxnLGgpe2cmJkFFZShkLnBy''@;'; + put 'put ''b3RvdHlwZSxnKSxoJiZBRWUoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oaCxbe2tleToiaXNFbmFibGVkIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiEhdGhpcy5ob3QuZ2V0U2V0dGluZ3MoKVt0aGlzLnBsdWdpbktleV19fSx7a2V5''@;'; + put 'put ''OiJlbmFibGVQbHVnaW4iLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpczt0aGlzLmVuYWJsZWR8fCh0aGlzLmNvbHVtblN0YXRlc01hbmFnZXI9bmV3IGQwdCh0aGlzLmhvdCwiIi5jb25jYXQodGhpcy5wbHVnaW5LZXksIi5zb3J0aW5nU3RhdGVzIikpLHRoaXMuY29sdW1uTWV0YUNhY2hl''@;'; + put 'put ''PW5ldyBEdyhmdW5jdGlvbihDKXt2YXIgST15LmhvdC50b1Zpc3VhbENvbHVtbihDKTtyZXR1cm4gbnVsbD09PUkmJihJPUMpLHkuZ2V0TWVyZ2VkUGx1Z2luU2V0dGluZ3MoSSl9KSx0aGlzLmhvdC5jb2x1bW5JbmRleE1hcHBlci5yZWdpc3Rlck1hcCgiIi5jb25jYXQodGhpcy5wbHVnaW5L''@;'; + put 'put ''ZXksIi5jb2x1bW5NZXRhIiksdGhpcy5jb2x1bW5NZXRhQ2FjaGUpLHRoaXMuYWRkSG9vaygiYWZ0ZXJHZXRDb2xIZWFkZXIiLGZ1bmN0aW9uKEMsSSl7cmV0dXJuIHkub25BZnRlckdldENvbEhlYWRlcihDLEkpfSksdGhpcy5hZGRIb29rKCJiZWZvcmVPbkNlbGxNb3VzZURvd24iLGZ1bmN0''@;'; + put 'put ''aW9uKCl7cmV0dXJuIHkub25CZWZvcmVPbkNlbGxNb3VzZURvd24uYXBwbHkoeSxhcmd1bWVudHMpfSksdGhpcy5hZGRIb29rKCJhZnRlck9uQ2VsbE1vdXNlRG93biIsZnVuY3Rpb24oQyxJKXtyZXR1cm4geS5vbkFmdGVyT25DZWxsTW91c2VEb3duKEMsSSl9KSx0aGlzLmFkZEhvb2soImFm''@;'; + put 'put ''dGVySW5pdCIsZnVuY3Rpb24oKXtyZXR1cm4geS5sb2FkT3JTb3J0QnlTZXR0aW5ncygpfSksdGhpcy5hZGRIb29rKCJhZnRlckxvYWREYXRhIixmdW5jdGlvbigpe3JldHVybiB5Lm9uQWZ0ZXJMb2FkRGF0YS5hcHBseSh5LGFyZ3VtZW50cyl9KSx0aGlzLmhvdC52aWV3JiZ0aGlzLmxvYWRP''@;'; + put 'put ''clNvcnRCeVNldHRpbmdzKCksUVMoUnYoaC5wcm90b3R5cGUpLCJlbmFibGVQbHVnaW4iLHRoaXMpLmNhbGwodGhpcykpfX0se2tleToiZGlzYWJsZVBsdWdpbiIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzLEM9ZnVuY3Rpb24oaix1ZSl7dmFyIF9lPVhNZSh1ZSk7ITE9PT1LTWUoaix1''@;'; + put 'put ''ZSl8fG51bGw9PT1fZXx8eS51cGRhdGVIZWFkZXJDbGFzc2VzKF9lKX07dGhpcy5ob3QuYWRkSG9vaygiYWZ0ZXJHZXRDb2xIZWFkZXIiLEMpLHRoaXMuaG90LmFkZEhvb2tPbmNlKCJhZnRlclZpZXdSZW5kZXIiLGZ1bmN0aW9uKCl7eS5ob3QucmVtb3ZlSG9vaygiYWZ0ZXJHZXRDb2xIZWFk''@;'; + put 'put ''ZXIiLEMpfSksdGhpcy5ob3QuYmF0Y2hFeGVjdXRpb24oZnVuY3Rpb24oKXtudWxsIT09eS5pbmRleGVzU2VxdWVuY2VDYWNoZSYmKHkuaG90LnJvd0luZGV4TWFwcGVyLnNldEluZGV4ZXNTZXF1ZW5jZSh5LmluZGV4ZXNTZXF1ZW5jZUNhY2hlLmdldFZhbHVlcygpKSx5LmhvdC5yb3dJbmRl''@;'; + put 'put ''eE1hcHBlci51bnJlZ2lzdGVyTWFwKHkucGx1Z2luS2V5KSl9LCEwKSx0aGlzLmhvdC5jb2x1bW5JbmRleE1hcHBlci51bnJlZ2lzdGVyTWFwKCIiLmNvbmNhdCh0aGlzLnBsdWdpbktleSwiLmNvbHVtbk1ldGEiKSksdGhpcy5jb2x1bW5TdGF0ZXNNYW5hZ2VyLmRlc3Ryb3koKSx0aGlzLmNv''@;'; + put 'put ''bHVtbk1ldGFDYWNoZT1udWxsLHRoaXMuY29sdW1uU3RhdGVzTWFuYWdlcj1udWxsLFFTKFJ2KGgucHJvdG90eXBlKSwiZGlzYWJsZVBsdWdpbiIsdGhpcykuY2FsbCh0aGlzKX19LHtrZXk6InNvcnQiLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPXRoaXMuZ2V0U29ydENvbmZpZygpLEk9dGhp''@;'; + put 'put ''cy5nZXROb3JtYWxpemVkU29ydENvbmZpZ3MoeSksaj10aGlzLmFyZVZhbGlkU29ydENvbmZpZ3MoSSk7ITEhPT10aGlzLmhvdC5ydW5Ib29rcygiYmVmb3JlQ29sdW1uU29ydCIsQyxJLGopJiYoMD09PUMubGVuZ3RoJiZudWxsPT09dGhpcy5pbmRleGVzU2VxdWVuY2VDYWNoZSYmKHRoaXMu''@;'; + put 'put ''aW5kZXhlc1NlcXVlbmNlQ2FjaGU9dGhpcy5ob3Qucm93SW5kZXhNYXBwZXIucmVnaXN0ZXJNYXAodGhpcy5wbHVnaW5LZXksbmV3IHVrZSksdGhpcy5pbmRleGVzU2VxdWVuY2VDYWNoZS5zZXRWYWx1ZXModGhpcy5ob3Qucm93SW5kZXhNYXBwZXIuZ2V0SW5kZXhlc1NlcXVlbmNlKCkpKSxq''@;'; + put 'put ''JiYodGhpcy5jb2x1bW5TdGF0ZXNNYW5hZ2VyLnNldFNvcnRTdGF0ZXMoSSksdGhpcy5zb3J0QnlQcmVzZXRTb3J0U3RhdGVzKEkpLHRoaXMuc2F2ZUFsbFNvcnRTZXR0aW5ncyhJKSksdGhpcy5ob3QucnVuSG9va3MoImFmdGVyQ29sdW1uU29ydCIsQyxqP0k6QyxqKSxqJiYodGhpcy5ob3Qu''@;'; + put 'put ''cmVuZGVyKCksdGhpcy5ob3QuZm9yY2VGdWxsUmVuZGVyPSExLHRoaXMuaG90LnZpZXcucmVuZGVyKCkpKX19LHtrZXk6ImNsZWFyU29ydCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLnNvcnQoW10pfX0se2tleToiaXNTb3J0ZWQiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZW5hYmxl''@;'; + put 'put ''ZCYmIXRoaXMuY29sdW1uU3RhdGVzTWFuYWdlci5pc0xpc3RPZlNvcnRlZENvbHVtbnNFbXB0eSgpfX0se2tleToiZ2V0U29ydENvbmZpZyIsdmFsdWU6ZnVuY3Rpb24oeSl7cmV0dXJuIFRvKHkpP3RoaXMuY29sdW1uU3RhdGVzTWFuYWdlci5nZXRDb2x1bW5Tb3J0U3RhdGUoeSk6dGhpcy5j''@;'; + put 'put ''b2x1bW5TdGF0ZXNNYW5hZ2VyLmdldFNvcnRTdGF0ZXMoKX19LHtrZXk6InNldFNvcnRDb25maWciLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPXRoaXMuZ2V0Tm9ybWFsaXplZFNvcnRDb25maWdzKHkpO3RoaXMuYXJlVmFsaWRTb3J0Q29uZmlncyhDKSYmdGhpcy5jb2x1bW5TdGF0ZXNNYW5h''@;'; + put 'put ''Z2VyLnNldFNvcnRTdGF0ZXMoQyl9fSx7a2V5OiJnZXROb3JtYWxpemVkU29ydENvbmZpZ3MiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOltdO3JldHVybiBBcnJheS5pc0FycmF5KHkpP3kuc2xp''@;'; + put 'put ''Y2UoMCwxKTpbeV19fSx7a2V5OiJhcmVWYWxpZFNvcnRDb25maWdzIix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz10aGlzLmhvdC5jb3VudENvbHMoKTtyZXR1cm4gZnVuY3Rpb24gbTB0KGQpe2lmKGQuc29tZShmdW5jdGlvbihoKXtyZXR1cm4hMT09PWZ1bmN0aW9uIGcwdChkKXtpZighMT09''@;'; + put 'put ''PXhsKGQpKXJldHVybiExO3ZhciBoPWQuc29ydE9yZGVyO3JldHVybiBOdW1iZXIuaXNJbnRlZ2VyKGQuY29sdW1uKSYmW1R0ZSxJdGVdLmluY2x1ZGVzKGgpfShoKX0pKXJldHVybiExO3ZhciBnPWQubWFwKGZ1bmN0aW9uKGgpe3JldHVybiBoLmNvbHVtbn0pO3JldHVybiBuZXcgU2V0KGcp''@;'; + put 'put ''LnNpemU9PT1nLmxlbmd0aH0oeSkmJnkuZXZlcnkoZnVuY3Rpb24oSSl7dmFyIGo9SS5jb2x1bW47cmV0dXJuIGo8PUMmJmo+PTB9KX19LHtrZXk6InNhdmVBbGxTb3J0U2V0dGluZ3MiLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPXRoaXMsST10aGlzLmNvbHVtblN0YXRlc01hbmFnZXIuZ2V0''@;'; + put 'put ''QWxsQ29sdW1uc1Byb3BlcnRpZXMoKTtJLmluaXRpYWxDb25maWc9T2woeSxmdW5jdGlvbihfZSl7dmFyIEJlPV9lLmNvbHVtbixOZT12RWUoX2UsSDB0KTtyZXR1cm4gbUVlKHtjb2x1bW46Qy5ob3QudG9QaHlzaWNhbENvbHVtbihCZSl9LE5lKX0pLHRoaXMuaG90LnJ1bkhvb2tzKCJwZXJz''@;'; + put 'put ''aXN0ZW50U3RhdGVTYXZlIiwiY29sdW1uU29ydGluZyIsSSl9fSx7a2V5OiJnZXRBbGxTYXZlZFNvcnRTZXR0aW5ncyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzLEM9e307dGhpcy5ob3QucnVuSG9va3MoInBlcnNpc3RlbnRTdGF0ZUxvYWQiLCJjb2x1bW5Tb3J0aW5nIixDKTt2YXIg''@;'; + put 'put ''ST1DLnZhbHVlO3JldHVybiBUbyhJKSYmQXJyYXkuaXNBcnJheShJLmluaXRpYWxDb25maWcpJiYoSS5pbml0aWFsQ29uZmlnPU9sKEkuaW5pdGlhbENvbmZpZyxmdW5jdGlvbihfZSl7dmFyIEJlPV9lLmNvbHVtbixOZT12RWUoX2UsTjB0KTtyZXR1cm4gbUVlKHtjb2x1bW46eS5ob3QudG9W''@;'; + put 'put ''aXN1YWxDb2x1bW4oQmUpfSxOZSl9KSksSX19LHtrZXk6ImdldENvbHVtbk5leHRDb25maWciLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPXRoaXMuY29sdW1uU3RhdGVzTWFuYWdlci5nZXRTb3J0T3JkZXJPZkNvbHVtbih5KTtpZihUbyhDKSl7dmFyIEk9Sk1lKEMpO3JldHVybiBUbyhJKT97''@;'; + put 'put ''Y29sdW1uOnksc29ydE9yZGVyOkl9OnZvaWQgMH12YXIgaj10aGlzLmhvdC5jb3VudENvbHMoKTtpZihOdW1iZXIuaXNJbnRlZ2VyKHkpJiZ5Pj0wJiZ5PGopcmV0dXJue2NvbHVtbjp5LHNvcnRPcmRlcjpKTWUoKX19fSx7a2V5OiJnZXROZXh0U29ydENvbmZpZyIsdmFsdWU6ZnVuY3Rpb24o''@;'; + put 'put ''eSl7dmFyIEM9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOnlFZSxJPXRoaXMuY29sdW1uU3RhdGVzTWFuYWdlci5nZXRJbmRleE9mQ29sdW1uSW5Tb3J0UXVldWUoeSksaj0tMSE9PUksdWU9dGhpcy5nZXRTb3J0Q29uZmlnKCksX2U9dGhp''@;'; + put 'put ''cy5nZXRDb2x1bW5OZXh0Q29uZmlnKHkpO2lmKGope2lmKGExKF9lKSlyZXR1cm5bXS5jb25jYXQoUE8odWUuc2xpY2UoMCxJKSksUE8odWUuc2xpY2UoSSsxKSkpO2lmKEM9PT15RWUpcmV0dXJuW10uY29uY2F0KFBPKHVlLnNsaWNlKDAsSSkpLFBPKHVlLnNsaWNlKEkrMSkpLFtfZV0pO2lm''@;'; + put 'put ''KCJyZXBsYWNlIj09PUMpcmV0dXJuW10uY29uY2F0KFBPKHVlLnNsaWNlKDAsSSkpLFtfZV0sUE8odWUuc2xpY2UoSSsxKSkpfXJldHVybiBUbyhfZSk/dWUuY29uY2F0KF9lKTp1ZX19LHtrZXk6ImdldFBsdWdpbkNvbHVtbkNvbmZpZyIsdmFsdWU6ZnVuY3Rpb24oeSl7aWYoeGwoeSkpe3Zh''@;'; + put 'put ''ciBDPXlbdGhpcy5wbHVnaW5LZXldO2lmKHhsKEMpKXJldHVybiBDfXJldHVybnt9fX0se2tleToiZ2V0TWVyZ2VkUGx1Z2luU2V0dGluZ3MiLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPXRoaXMuaG90LmdldFNldHRpbmdzKClbdGhpcy5wbHVnaW5LZXldLEk9dGhpcy5jb2x1bW5TdGF0ZXNN''@;'; + put 'put ''YW5hZ2VyLmdldEFsbENvbHVtbnNQcm9wZXJ0aWVzKCksaj10aGlzLmhvdC5nZXRDZWxsTWV0YSgwLHkpLHVlPU9iamVjdC5nZXRQcm90b3R5cGVPZihqKTtyZXR1cm4gQXJyYXkuaXNBcnJheSh1ZS5jb2x1bW5zKT9PYmplY3QuYXNzaWduKEksQyx0aGlzLmdldFBsdWdpbkNvbHVtbkNvbmZp''@;'; + put 'put ''Zyh1ZS5jb2x1bW5zW3ldKSk6VTIodWUuY29sdW1ucyk/T2JqZWN0LmFzc2lnbihJLEMsdGhpcy5nZXRQbHVnaW5Db2x1bW5Db25maWcodWUuY29sdW1ucyh5KSkpOk9iamVjdC5hc3NpZ24oSSxDKX19LHtrZXk6ImdldEZpcnN0Q2VsbFNldHRpbmdzIix2YWx1ZTpmdW5jdGlvbih5KXt2YXIg''@;'; + put 'put ''Qz10aGlzLmhvdC5nZXRDZWxsTWV0YSgwLHkpLEk9T2JqZWN0LmNyZWF0ZShDKTtyZXR1cm4gSVt0aGlzLnBsdWdpbktleV09dGhpcy5jb2x1bW5NZXRhQ2FjaGUuZ2V0VmFsdWVBdEluZGV4KHRoaXMuaG90LnRvUGh5c2ljYWxDb2x1bW4oeSkpLEl9fSx7a2V5OiJnZXROdW1iZXJPZlJvd3NU''@;'; + put 'put ''b1NvcnQiLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPXRoaXMuaG90LmdldFNldHRpbmdzKCk7cmV0dXJuIEMubWF4Um93czw9eT9DLm1heFJvd3M6eS1DLm1pblNwYXJlUm93c319LHtrZXk6InNvcnRCeVByZXNldFNvcnRTdGF0ZXMiLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPXRoaXM7aWYo''@;'; + put 'put ''MCE9PXkubGVuZ3RoKXtmb3IodmFyIEk9W10saj10aGlzLmhvdC5jb3VudFJvd3MoKSx1ZT1mdW5jdGlvbihmbil7cmV0dXJuIE9sKHksZnVuY3Rpb24oTG4pe3JldHVybiBDLmhvdC5nZXREYXRhQXRDZWxsKGZuLExuLmNvbHVtbil9KX0sX2U9MDtfZTx0aGlzLmdldE51bWJlck9mUm93c1Rv''@;'; + put 'put ''U29ydChqKTtfZSs9MSlJLnB1c2goW3RoaXMuaG90LnRvUGh5c2ljYWxSb3coX2UpXS5jb25jYXQodWUoX2UpKSk7dmFyIEJlPU9sKEksZnVuY3Rpb24oJHQpe3JldHVybiAkdFswXX0pOyFmdW5jdGlvbiBrMHQoZCxnKXtmb3IodmFyIGg9TDB0KGcpLHY9YXJndW1lbnRzLmxlbmd0aCx5PW5l''@;'; + put 'put ''dyBBcnJheSh2PjI/di0yOjApLEM9MjtDPHY7QysrKXlbQy0yXT1hcmd1bWVudHNbQ107cDhlKGQsaC5hcHBseSh2b2lkIDAseSkpfShJLHRoaXMucGx1Z2luS2V5LE9sKHksZnVuY3Rpb24oJHQpe3JldHVybiAkdC5zb3J0T3JkZXJ9KSxPbCh5LGZ1bmN0aW9uKCR0KXtyZXR1cm4gQy5nZXRG''@;'; + put 'put ''aXJzdENlbGxTZXR0aW5ncygkdC5jb2x1bW4pfSkpO2Zvcih2YXIgTmU9SS5sZW5ndGg7TmU8ajtOZSs9MSlJLnB1c2goW05lXS5jb25jYXQodWUoTmUpKSk7dmFyIEtlPU9sKEksZnVuY3Rpb24oJHQpe3JldHVybiAkdFswXX0pLGR0PW5ldyBNYXAoT2woQmUsZnVuY3Rpb24oJHQsZm4pe3Jl''@;'; + put 'put ''dHVyblskdCxLZVtmbl1dfSkpLE90PU9sKHRoaXMuaG90LnJvd0luZGV4TWFwcGVyLmdldEluZGV4ZXNTZXF1ZW5jZSgpLGZ1bmN0aW9uKCR0KXtyZXR1cm4gZHQuaGFzKCR0KT9kdC5nZXQoJHQpOiR0fSk7dGhpcy5ob3Qucm93SW5kZXhNYXBwZXIuc2V0SW5kZXhlc1NlcXVlbmNlKE90KX1l''@;'; + put 'put ''bHNlIHRoaXMuaG90LnJvd0luZGV4TWFwcGVyLnNldEluZGV4ZXNTZXF1ZW5jZSh0aGlzLmluZGV4ZXNTZXF1ZW5jZUNhY2hlLmdldFZhbHVlcygpKX19LHtrZXk6ImxvYWRPclNvcnRCeVNldHRpbmdzIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXMuZ2V0QWxsU2F2ZWRTb3J0U2V0dGlu''@;'; + put 'put ''Z3MoKTtpZih4bCh5KSl0aGlzLnNvcnRCeVNldHRpbmdzKHkpO2Vsc2V7dmFyIEM9dGhpcy5ob3QuZ2V0U2V0dGluZ3MoKVt0aGlzLnBsdWdpbktleV07dGhpcy5zb3J0QnlTZXR0aW5ncyhDKX19fSx7a2V5OiJzb3J0QnlTZXR0aW5ncyIsdmFsdWU6ZnVuY3Rpb24oeSl7aWYoeGwoeSkpe3Ro''@;'; + put 'put ''aXMuY29sdW1uU3RhdGVzTWFuYWdlci51cGRhdGVBbGxDb2x1bW5zUHJvcGVydGllcyh5KTt2YXIgQz15LmluaXRpYWxDb25maWc7KEFycmF5LmlzQXJyYXkoQyl8fHhsKEMpKSYmdGhpcy5zb3J0KEMpfWVsc2UgdGhpcy5ob3QucmVuZGVyKCl9fSx7a2V5OiJvbkFmdGVyR2V0Q29sSGVhZGVy''@;'; + put 'put ''Iix2YWx1ZTpmdW5jdGlvbih5LEMpe3ZhciBJPVhNZShDKTtpZighMSE9PUtNZSh5LEMpJiZudWxsIT09SSl7dmFyIGo9dGhpcy5nZXRGaXJzdENlbGxTZXR0aW5ncyh5KVt0aGlzLnBsdWdpbktleV07dGhpcy51cGRhdGVIZWFkZXJDbGFzc2VzKEksdGhpcy5jb2x1bW5TdGF0ZXNNYW5hZ2Vy''@;'; + put 'put ''LHksai5pbmRpY2F0b3Isai5oZWFkZXJBY3Rpb24pfX19LHtrZXk6InVwZGF0ZUhlYWRlckNsYXNzZXMiLHZhbHVlOmZ1bmN0aW9uKHkpe2lmKHBsKHksdzB0KCkpLCExIT09dGhpcy5lbmFibGVkKXtmb3IodmFyIEM9YXJndW1lbnRzLmxlbmd0aCxJPW5ldyBBcnJheShDPjE/Qy0xOjApLGo9''@;'; + put 'put ''MTtqPEM7aisrKUlbai0xXT1hcmd1bWVudHNbal07TzAoeSx5MHQuYXBwbHkodm9pZCAwLEkpKX19fSx7a2V5OiJvblVwZGF0ZVNldHRpbmdzIix2YWx1ZTpmdW5jdGlvbih5KXtRUyhSdihoLnByb3RvdHlwZSksIm9uVXBkYXRlU2V0dGluZ3MiLHRoaXMpLmNhbGwodGhpcyksbnVsbCE9PXRo''@;'; + put 'put ''aXMuY29sdW1uTWV0YUNhY2hlJiZ0aGlzLmNvbHVtbk1ldGFDYWNoZS5pbml0KHRoaXMuaG90LmNvbHVtbkluZGV4TWFwcGVyLmdldE51bWJlck9mSW5kZXhlcygpKSxUbyh5W3RoaXMucGx1Z2luS2V5XSkmJnRoaXMuc29ydEJ5U2V0dGluZ3MoeVt0aGlzLnBsdWdpbktleV0pfX0se2tleToi''@;'; + put 'put ''b25BZnRlckxvYWREYXRhIix2YWx1ZTpmdW5jdGlvbih5KXshMD09PXkmJnRoaXMuaG90LnZpZXcmJnRoaXMubG9hZE9yU29ydEJ5U2V0dGluZ3MoKX19LHtrZXk6Indhc0NsaWNrYWJsZUhlYWRlckNsaWNrZWQiLHZhbHVlOmZ1bmN0aW9uKHksQyl7cmV0dXJuIHRoaXMuZ2V0Rmlyc3RDZWxs''@;'; + put 'put ''U2V0dGluZ3MoQylbdGhpcy5wbHVnaW5LZXldLmhlYWRlckFjdGlvbiYmIlNQQU4iPT09eS50YXJnZXQubm9kZU5hbWV9fSx7a2V5OiJvbkJlZm9yZU9uQ2VsbE1vdXNlRG93biIsdmFsdWU6ZnVuY3Rpb24oeSxDLEksail7ITEhPT1kOGUoQy5yb3csQy5jb2wseSkmJnRoaXMud2FzQ2xpY2th''@;'; + put 'put ''YmxlSGVhZGVyQ2xpY2tlZCh5LEMuY29sKSYmdGhpcy5ob3QuZ2V0U2hvcnRjdXRNYW5hZ2VyKCkuaXNDdHJsUHJlc3NlZCgpJiYoai5jb2x1bW49ITApfX0se2tleToib25BZnRlck9uQ2VsbE1vdXNlRG93biIsdmFsdWU6ZnVuY3Rpb24oeSxDKXshMSE9PWQ4ZShDLnJvdyxDLmNvbCx5KSYm''@;'; + put 'put ''dGhpcy53YXNDbGlja2FibGVIZWFkZXJDbGlja2VkKHksQy5jb2wpJiYodGhpcy5ob3QuZ2V0U2hvcnRjdXRNYW5hZ2VyKCkuaXNDdHJsUHJlc3NlZCgpJiYodGhpcy5ob3QuZGVzZWxlY3RDZWxsKCksdGhpcy5ob3Quc2VsZWN0Q29sdW1ucyhDLmNvbCkpLHRoaXMuc29ydCh0aGlzLmdldENv''@;'; + put 'put ''bHVtbk5leHRDb25maWcoQy5jb2wpKSl9fSx7a2V5OiJkZXN0cm95Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5O251bGw9PT0oeT10aGlzLmNvbHVtblN0YXRlc01hbmFnZXIpfHx2b2lkIDA9PT15fHx5LmRlc3Ryb3koKSxRUyhSdihoLnByb3RvdHlwZSksImRlc3Ryb3kiLHRoaXMpLmNhbGwo''@;'; + put 'put ''dGhpcyl9fV0sW3trZXk6IlBMVUdJTl9LRVkiLGdldDpmdW5jdGlvbigpe3JldHVybiB5OGV9fSx7a2V5OiJQTFVHSU5fUFJJT1JJVFkiLGdldDpmdW5jdGlvbigpe3JldHVybiA1MH19XSksaH0oWXMpO2Z1bmN0aW9uIGJFZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIg''@;'; + put 'put ''dj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fUwoNDIxNDApO3ZhciBpb3Q9ZnVuY3Rpb24oKXtmdW5jdGlvbiBkKGcsaCl7KGZ1''@;'; + put 'put ''bmN0aW9uIG5vdChkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSkodGhpcyxkKSx0aGlzLnBsdWdpbj1nLHRoaXMuaG90PXRoaXMucGx1Z2luLmhvdCx0aGlzLmVuZHBvaW50cz1bXSx0aGlz''@;'; + put 'put ''LnNldHRpbmdzPWgsdGhpcy5zZXR0aW5nc1R5cGU9ImFycmF5Iix0aGlzLmN1cnJlbnRFbmRwb2ludD1udWxsLHRoaXMuY2VsbHNUb1NldENhY2hlPVtdfXJldHVybiBmdW5jdGlvbiByb3QoZCxnLGgpe2cmJmJFZShkLnByb3RvdHlwZSxnKSxoJiZiRWUoZCxoKSxPYmplY3QuZGVmaW5lUHJv''@;'; + put 'put ''cGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oZCxbe2tleToiZ2V0RW5kcG9pbnQiLHZhbHVlOmZ1bmN0aW9uKGgpe3JldHVybiJmdW5jdGlvbiI9PT10aGlzLnNldHRpbmdzVHlwZT90aGlzLmZpbGxNaXNzaW5nRW5kcG9pbnREYXRhKHRoaXMuc2V0dGluZ3MpW2hdOnRoaXMu''@;'; + put 'put ''ZW5kcG9pbnRzW2hdfX0se2tleToiZ2V0QWxsRW5kcG9pbnRzIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiJmdW5jdGlvbiI9PT10aGlzLnNldHRpbmdzVHlwZT90aGlzLmZpbGxNaXNzaW5nRW5kcG9pbnREYXRhKHRoaXMuc2V0dGluZ3MpOnRoaXMuZW5kcG9pbnRzfX0se2tleToiZmlsbE1p''@;'; + put 'put ''c3NpbmdFbmRwb2ludERhdGEiLHZhbHVlOmZ1bmN0aW9uKGgpe3JldHVybiB0aGlzLnBhcnNlU2V0dGluZ3MoaC5jYWxsKHRoaXMpKX19LHtrZXk6InBhcnNlU2V0dGluZ3MiLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB2PXRoaXMseT1bXSxDPWg7aWYoQ3x8ImZ1bmN0aW9uIiE9dHlwZW9mIHRo''@;'; + put 'put ''aXMuc2V0dGluZ3MpcmV0dXJuIEN8fChDPXRoaXMuc2V0dGluZ3MpLFVyKEMsZnVuY3Rpb24oSSl7dmFyIGo9e307di5hc3NpZ25TZXR0aW5nKEksaiwicmFuZ2VzIixbWzAsdi5ob3QuY291bnRSb3dzKCktMV1dKSx2LmFzc2lnblNldHRpbmcoSSxqLCJyZXZlcnNlZFJvd0Nvb3JkcyIsITEp''@;'; + put 'put ''LHYuYXNzaWduU2V0dGluZyhJLGosImRlc3RpbmF0aW9uUm93IixuZXcgRXJyb3IoIlxuICAgICAgICBZb3UgbXVzdCBwcm92aWRlIGEgZGVzdGluYXRpb24gcm93IGZvciB0aGUgQ29sdW1uIFN1bW1hcnkgcGx1Z2luIGluIG9yZGVyIHRvIHdvcmsgcHJvcGVybHkhXG4gICAgICAiKSksdi5h''@;'; + put 'put ''c3NpZ25TZXR0aW5nKEksaiwiZGVzdGluYXRpb25Db2x1bW4iLG5ldyBFcnJvcigiXG4gICAgICAgIFlvdSBtdXN0IHByb3ZpZGUgYSBkZXN0aW5hdGlvbiBjb2x1bW4gZm9yIHRoZSBDb2x1bW4gU3VtbWFyeSBwbHVnaW4gaW4gb3JkZXIgdG8gd29yayBwcm9wZXJseSFcbiAgICAgICIpKSx2''@;'; + put 'put ''LmFzc2lnblNldHRpbmcoSSxqLCJzb3VyY2VDb2x1bW4iLEkuZGVzdGluYXRpb25Db2x1bW4pLHYuYXNzaWduU2V0dGluZyhJLGosInR5cGUiLCJzdW0iKSx2LmFzc2lnblNldHRpbmcoSSxqLCJmb3JjZU51bWVyaWMiLCExKSx2LmFzc2lnblNldHRpbmcoSSxqLCJzdXBwcmVzc0RhdGFUeXBl''@;'; + put 'put ''RXJyb3JzIiwhMCksdi5hc3NpZ25TZXR0aW5nKEksaiwic3VwcHJlc3NEYXRhVHlwZUVycm9ycyIsITApLHYuYXNzaWduU2V0dGluZyhJLGosImN1c3RvbUZ1bmN0aW9uIixudWxsKSx2LmFzc2lnblNldHRpbmcoSSxqLCJyZWFkT25seSIsITApLHYuYXNzaWduU2V0dGluZyhJLGosInJvdW5k''@;'; + put 'put ''RmxvYXQiLCExKSx5LnB1c2goail9KSx5O3RoaXMuc2V0dGluZ3NUeXBlPSJmdW5jdGlvbiJ9fSx7a2V5OiJhc3NpZ25TZXR0aW5nIix2YWx1ZTpmdW5jdGlvbihoLHYseSxDKXtpZigicmFuZ2VzIiE9PXl8fHZvaWQgMCE9PWhbeV0pe2lmKCJyYW5nZXMiIT09eXx8MCE9PWhbeV0ubGVuZ3Ro''@;'; + put 'put ''KWlmKHZvaWQgMD09PWhbeV0pe2lmKEMgaW5zdGFuY2VvZiBFcnJvcil0aHJvdyBDO3ZbeV09Q31lbHNlIHZbeV09ImRlc3RpbmF0aW9uUm93Ij09PXkmJnYucmV2ZXJzZWRSb3dDb29yZHM/dGhpcy5ob3QuY291bnRSb3dzKCktaFt5XS0xOmhbeV19ZWxzZSB2W3ldPUN9fSx7a2V5OiJyZXNl''@;'; + put 'put ''dFNldHVwQmVmb3JlU3RydWN0dXJlQWx0ZXJhdGlvbiIsdmFsdWU6ZnVuY3Rpb24oaCx2LHkpe2lmKCJmdW5jdGlvbiI9PT10aGlzLnNldHRpbmdzVHlwZSl7dmFyIEM9aC5pbmRleE9mKCJyb3ciKT4tMT8icm93IjoiY29sIixJPXRoaXMuZ2V0QWxsRW5kcG9pbnRzKCk7VXIoSSxmdW5jdGlv''@;'; + put 'put ''bihqKXsicm93Ij09PUMmJmouZGVzdGluYXRpb25Sb3c+PXYmJigiaW5zZXJ0X3JvdyI9PT1oP2ouYWx0ZXJSb3dPZmZzZXQ9eToicmVtb3ZlX3JvdyI9PT1oJiYoai5hbHRlclJvd09mZnNldD0tMSp5KSksImNvbCI9PT1DJiZqLmRlc3RpbmF0aW9uQ29sdW1uPj12JiYoImluc2VydF9jb2wi''@;'; + put 'put ''PT09aD9qLmFsdGVyQ29sdW1uT2Zmc2V0PXk6InJlbW92ZV9jb2wiPT09aCYmKGouYWx0ZXJDb2x1bW5PZmZzZXQ9LTEqeSkpfSksdGhpcy5yZXNldEFsbEVuZHBvaW50cyhJLCExKX19fSx7a2V5OiJyZXNldFNldHVwQWZ0ZXJTdHJ1Y3R1cmVBbHRlcmF0aW9uIix2YWx1ZTpmdW5jdGlvbiho''@;'; + put 'put ''LHYseSxDLEkpe3ZhciBqPXRoaXMsdWU9IShhcmd1bWVudHMubGVuZ3RoPjUmJnZvaWQgMCE9PWFyZ3VtZW50c1s1XSl8fGFyZ3VtZW50c1s1XTtpZigiZnVuY3Rpb24iIT09dGhpcy5zZXR0aW5nc1R5cGUpe3ZhciBCZT1oLmluZGV4T2YoInJvdyIpPi0xPyJyb3ciOiJjb2wiLE5lPWguaW5k''@;'; + put 'put ''ZXhPZigicmVtb3ZlIik+LTE/LTE6MSxLZT10aGlzLmdldEFsbEVuZHBvaW50cygpLGR0PTA9PT1oLmluZGV4T2YoIm1vdmVfcm93IiksT3Q9djtVcihLZSxmdW5jdGlvbigkdCl7InJvdyI9PT1CZSYmJHQuZGVzdGluYXRpb25Sb3c+PU90JiYoJHQuYWx0ZXJSb3dPZmZzZXQ9TmUqeSksImNv''@;'; + put 'put ''bCI9PT1CZSYmJHQuZGVzdGluYXRpb25Db2x1bW4+PU90JiYoJHQuYWx0ZXJDb2x1bW5PZmZzZXQ9TmUqeSl9KSx0aGlzLnJlc2V0QWxsRW5kcG9pbnRzKEtlLCFkdCksVXIoS2UsZHQ/ZnVuY3Rpb24oJHQpe2ouZXh0ZW5kRW5kcG9pbnRSYW5nZXMoJHQsT3QsQ1swXSxDLmxlbmd0aCksai5y''@;'; + put 'put ''ZWNyZWF0ZVBoeXNpY2FsUmFuZ2VzKCR0KSxqLmNsZWFyT2Zmc2V0SW5mb3JtYXRpb24oJHQpfTpmdW5jdGlvbigkdCl7ai5zaGlmdEVuZHBvaW50Q29vcmRpbmF0ZXMoJHQsT3QpfSksdWUmJnRoaXMucmVmcmVzaEFsbEVuZHBvaW50cygpfWVsc2V7dmFyIF9lPWZ1bmN0aW9uICR0KCl7cmV0''@;'; + put 'put ''dXJuIGouaG90LnJlbW92ZUhvb2soImJlZm9yZVZpZXdSZW5kZXIiLCR0KSxqLnJlZnJlc2hBbGxFbmRwb2ludHMoKX07dGhpcy5ob3QuYWRkSG9va09uY2UoImJlZm9yZVZpZXdSZW5kZXIiLF9lKX19fSx7a2V5OiJjbGVhck9mZnNldEluZm9ybWF0aW9uIix2YWx1ZTpmdW5jdGlvbihoKXto''@;'; + put 'put ''LmFsdGVyUm93T2Zmc2V0PXZvaWQgMCxoLmFsdGVyQ29sdW1uT2Zmc2V0PXZvaWQgMH19LHtrZXk6ImV4dGVuZEVuZHBvaW50UmFuZ2VzIix2YWx1ZTpmdW5jdGlvbihoLHYseSxDKXtVcihoLnJhbmdlcyxmdW5jdGlvbihJKXtJWzFdJiYodj49SVswXSYmdjw9SVsxXT95PklbMV0/SVsxXSs9''@;'; + put 'put ''Qzp5PElbMF0mJihJWzBdLT1DKTp5Pj1JWzBdJiZ5PD1JWzFdJiYoSVsxXS09Qyx2PD1JWzBdJiYoSVswXSs9MSxJWzFdKz0xKSkpfSl9fSx7a2V5OiJyZWNyZWF0ZVBoeXNpY2FsUmFuZ2VzIix2YWx1ZTpmdW5jdGlvbihoKXt2YXIgdj10aGlzLEM9W10sST1bXTtVcihoLnJhbmdlcyxmdW5j''@;'; + put 'put ''dGlvbihqKXt2YXIgdWU9W107aWYoalsxXSlmb3IodmFyIF9lPWpbMF07X2U8PWpbMV07X2UrKyl1ZS5wdXNoKHYuaG90LnRvUGh5c2ljYWxSb3coX2UpKTtlbHNlIHVlLnB1c2godi5ob3QudG9QaHlzaWNhbFJvdyhqWzBdKSk7SS5wdXNoKHVlKX0pLFVyKEksZnVuY3Rpb24oail7dmFyIHVl''@;'; + put 'put ''PVtdO1VyKGosZnVuY3Rpb24oX2UsQmUpezA9PT1CZT91ZS5wdXNoKF9lKTpqW0JlXSE9PWpbQmUtMV0rMSYmKHVlLnB1c2goaltCZS0xXSksQy5wdXNoKHVlKSwodWU9W10pLnB1c2goX2UpKSxCZT09PWoubGVuZ3RoLTEmJih1ZS5wdXNoKF9lKSxDLnB1c2godWUpKX0pfSksaC5yYW5nZXM9''@;'; + put 'put ''Q319LHtrZXk6InNoaWZ0RW5kcG9pbnRDb29yZGluYXRlcyIsdmFsdWU6ZnVuY3Rpb24oaCx2KXtoLmFsdGVyUm93T2Zmc2V0JiYwIT09aC5hbHRlclJvd09mZnNldD8oaC5kZXN0aW5hdGlvblJvdys9aC5hbHRlclJvd09mZnNldHx8MCxVcihoLnJhbmdlcyxmdW5jdGlvbih5KXtVcih5LGZ1''@;'; + put 'put ''bmN0aW9uKEMsSSl7Qz49diYmKHlbSV0rPWguYWx0ZXJSb3dPZmZzZXR8fDApfSl9KSk6aC5hbHRlckNvbHVtbk9mZnNldCYmMCE9PWguYWx0ZXJDb2x1bW5PZmZzZXQmJihoLmRlc3RpbmF0aW9uQ29sdW1uKz1oLmFsdGVyQ29sdW1uT2Zmc2V0fHwwLGguc291cmNlQ29sdW1uKz1oLmFsdGVy''@;'; + put 'put ''Q29sdW1uT2Zmc2V0fHwwKX19LHtrZXk6InJlc2V0QWxsRW5kcG9pbnRzIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBoPXRoaXMsdj1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06dGhpcy5nZXRBbGxFbmRwb2ludHMoKSx5PSEoYXJndW1lbnRz''@;'; + put 'put ''Lmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0pfHxhcmd1bWVudHNbMV0sQz12LnNvbWUoZnVuY3Rpb24oSSl7dmFyIHVlPUkuYWx0ZXJDb2x1bW5PZmZzZXR8fDA7cmV0dXJuIEkuZGVzdGluYXRpb25Sb3crKEkuYWx0ZXJSb3dPZmZzZXR8fDApPj1oLmhvdC5jb3VudFJvd3MoKXx8''@;'; + put 'put ''SS5kZXN0aW5hdGlvbkNvbHVtbit1ZT49aC5ob3QuY291bnRDb2xzKCl9KTtDfHwodGhpcy5jZWxsc1RvU2V0Q2FjaGU9W10sVXIodixmdW5jdGlvbihJKXtoLnJlc2V0RW5kcG9pbnRWYWx1ZShJLHkpfSksdGhpcy5ob3Quc2V0RGF0YUF0Q2VsbCh0aGlzLmNlbGxzVG9TZXRDYWNoZSwiQ29s''@;'; + put 'put ''dW1uU3VtbWFyeS5yZXNldCIpLHRoaXMuY2VsbHNUb1NldENhY2hlPVtdKX19LHtrZXk6InJlZnJlc2hBbGxFbmRwb2ludHMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9dGhpczt0aGlzLmNlbGxzVG9TZXRDYWNoZT1bXSxVcih0aGlzLmdldEFsbEVuZHBvaW50cygpLGZ1bmN0aW9uKHYpe2gu''@;'; + put 'put ''Y3VycmVudEVuZHBvaW50PXYsaC5wbHVnaW4uY2FsY3VsYXRlKHYpLGguc2V0RW5kcG9pbnRWYWx1ZSh2LCJpbml0Iil9KSx0aGlzLmN1cnJlbnRFbmRwb2ludD1udWxsLHRoaXMuaG90LnNldERhdGFBdENlbGwodGhpcy5jZWxsc1RvU2V0Q2FjaGUsIkNvbHVtblN1bW1hcnkucmVzZXQiKSx0''@;'; + put 'put ''aGlzLmNlbGxzVG9TZXRDYWNoZT1bXX19LHtrZXk6InJlZnJlc2hDaGFuZ2VkRW5kcG9pbnRzIix2YWx1ZTpmdW5jdGlvbihoKXt2YXIgdj10aGlzLHk9W107dGhpcy5jZWxsc1RvU2V0Q2FjaGU9W10sVXIoaCxmdW5jdGlvbihDLEksail7IiIuY29uY2F0KENbMl18fCIiKSE9PSIiLmNvbmNh''@;'; + put 'put ''dChDWzNdKSYmVXIodi5nZXRBbGxFbmRwb2ludHMoKSxmdW5jdGlvbih1ZSxfZSl7di5ob3QucHJvcFRvQ29sKGpbSV1bMV0pPT09dWUuc291cmNlQ29sdW1uJiYtMT09PXkuaW5kZXhPZihfZSkmJnkucHVzaChfZSl9KX0pLFVyKHksZnVuY3Rpb24oQyl7di5yZWZyZXNoRW5kcG9pbnQodi5n''@;'; + put 'put ''ZXRFbmRwb2ludChDKSl9KSx0aGlzLmhvdC5zZXREYXRhQXRDZWxsKHRoaXMuY2VsbHNUb1NldENhY2hlLCJDb2x1bW5TdW1tYXJ5LnJlc2V0IiksdGhpcy5jZWxsc1RvU2V0Q2FjaGU9W119fSx7a2V5OiJyZWZyZXNoRW5kcG9pbnQiLHZhbHVlOmZ1bmN0aW9uKGgpe3RoaXMuY3VycmVudEVu''@;'; + put 'put ''ZHBvaW50PWgsdGhpcy5wbHVnaW4uY2FsY3VsYXRlKGgpLHRoaXMuc2V0RW5kcG9pbnRWYWx1ZShoKSx0aGlzLmN1cnJlbnRFbmRwb2ludD1udWxsfX0se2tleToicmVzZXRFbmRwb2ludFZhbHVlIix2YWx1ZTpmdW5jdGlvbihoKXt2YXIgdj0hKGFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAw''@;'; + put 'put ''IT09YXJndW1lbnRzWzFdKXx8YXJndW1lbnRzWzFdLHk9aC5hbHRlclJvd09mZnNldHx8MCxDPWguYWx0ZXJDb2x1bW5PZmZzZXR8fDAsST1bdGhpcy5ob3QudG9WaXN1YWxSb3coaC5kZXN0aW5hdGlvblJvdyksdGhpcy5ob3QudG9WaXN1YWxDb2x1bW4oaC5kZXN0aW5hdGlvbkNvbHVtbild''@;'; + put 'put ''LGo9SVswXSx1ZT1JWzFdO2lmKG51bGwhPT11ZSYmbnVsbCE9PWope3ZhciBfZT10aGlzLmhvdC5nZXRDZWxsTWV0YShqLHVlKTtfZS5yZWFkT25seT0hMSxfZS5jbGFzc05hbWU9IiJ9dGhpcy5jZWxsc1RvU2V0Q2FjaGUucHVzaChbdGhpcy5ob3QudG9WaXN1YWxSb3coaC5kZXN0aW5hdGlv''@;'; + put 'put ''blJvdysodj95OjApKSx0aGlzLmhvdC50b1Zpc3VhbENvbHVtbihoLmRlc3RpbmF0aW9uQ29sdW1uKyh2P0M6MCkpLCIiXSl9fSx7a2V5OiJzZXRFbmRwb2ludFZhbHVlIix2YWx1ZTpmdW5jdGlvbihoLHYpe3ZhciB5PWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJd''@;'; + put 'put ''JiZhcmd1bWVudHNbMl0sQz0tMSpoLmFsdGVyUm93T2Zmc2V0fHwwLEk9LTEqaC5hbHRlckNvbHVtbk9mZnNldHx8MCxqPXRoaXMuaG90LnRvVmlzdWFsUm93KGguZGVzdGluYXRpb25Sb3cpO2lmKGguZGVzdGluYXRpb25Sb3c+PXRoaXMuaG90LmNvdW50Um93cygpfHxoLmRlc3RpbmF0aW9u''@;'; + put 'put ''Q29sdW1uPj10aGlzLmhvdC5jb3VudENvbHMoKSl0aGlzLnRocm93T3V0T2ZCb3VuZHNXYXJuaW5nKCk7ZWxzZXt2YXIgdWU9dGhpcy5ob3QudG9WaXN1YWxSb3coaC5kZXN0aW5hdGlvblJvdytDKTtpZihudWxsIT09dWUpe3ZhciBfZT10aGlzLmhvdC5nZXRDZWxsTWV0YSh1ZSxoLmRlc3Rp''@;'; + put 'put ''bmF0aW9uQ29sdW1uK0kpOygiaW5pdCI9PT12fHxfZS5yZWFkT25seSE9PWgucmVhZE9ubHkpJiYoX2UucmVhZE9ubHk9aC5yZWFkT25seSxfZS5jbGFzc05hbWU9ImNvbHVtblN1bW1hcnlSZXN1bHQiKX1oLnJvdW5kRmxvYXQmJiFpc05hTihoLnJlc3VsdCkmJihoLnJlc3VsdD1oLnJlc3Vs''@;'; + put 'put ''dC50b0ZpeGVkKGgucm91bmRGbG9hdCkpLHk/dGhpcy5ob3Quc2V0RGF0YUF0Q2VsbChqLGguZGVzdGluYXRpb25Db2x1bW4saC5yZXN1bHQsIkNvbHVtblN1bW1hcnkuc2V0Iik6dGhpcy5jZWxsc1RvU2V0Q2FjaGUucHVzaChbaixoLmRlc3RpbmF0aW9uQ29sdW1uLGgucmVzdWx0XSksaC5h''@;'; + put 'put ''bHRlclJvd09mZnNldD12b2lkIDAsaC5hbHRlckNvbHVtbk9mZnNldD12b2lkIDB9fX0se2tleToidGhyb3dPdXRPZkJvdW5kc1dhcm5pbmciLHZhbHVlOmZ1bmN0aW9uKCl7bDEoIk9uZSBvZiB0aGUgQ29sdW1uIFN1bW1hcnkgcGx1Z2lucycgZGVzdGluYXRpb24gcG9pbnRzIHlvdSBwcm92''@;'; + put 'put ''aWRlZCBpcyBiZXlvbmQgdGhlIHRhYmxlIGJvdW5kYXJpZXMhIil9fV0pLGR9KCk7Y29uc3Qgb290PWlvdDtmdW5jdGlvbiB3OGUoZCl7cmV0dXJuKHc4ZT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihnKXtyZXR1''@;'; + put 'put ''cm4gdHlwZW9mIGd9OmZ1bmN0aW9uKGcpe3JldHVybiBnJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZnLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZnIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgZ30pKGQpfXZhciBfRWU7ZnVuY3Rpb24gQ0VlKGQsZyl7Zm9yKHZhciBo''@;'; + put 'put ''PTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19ZnVuY3Rpb24gTHRlKCl7cmV0dXJuIEx0''@;'; + put 'put ''ZT0idW5kZWZpbmVkIiE9dHlwZW9mIFJlZmxlY3QmJlJlZmxlY3QuZ2V0P1JlZmxlY3QuZ2V0LmJpbmQoKTpmdW5jdGlvbihnLGgsdil7dmFyIHk9dW90KGcsaCk7aWYoeSl7dmFyIEM9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih5LGgpO3JldHVybiBDLmdldD9DLmdldC5jYWxs''@;'; + put 'put ''KGFyZ3VtZW50cy5sZW5ndGg8Mz9nOnYpOkMudmFsdWV9fSxMdGUuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIHVvdChkLGcpe2Zvcig7IU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChkLGcpJiZudWxsIT09KGQ9Rk8oZCkpOyk7cmV0dXJuIGR9ZnVuY3Rpb24g''@;'; + put 'put ''YjhlKGQsZyl7cmV0dXJuKGI4ZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbih2LHkpe3JldHVybiB2Ll9fcHJvdG9fXz15LHZ9KShkLGcpfWZ1bmN0aW9uIGhvdChkLGcpe2lmKGcmJigib2JqZWN0Ij09PXc4ZShnKXx8ImZ1bmN0''@;'; + put 'put ''aW9uIj09dHlwZW9mIGcpKXJldHVybiBnO2lmKHZvaWQgMCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWQiKTtyZXR1cm4gZnVuY3Rpb24gZG90KGQpe2lmKHZvaWQgMD09PWQpdGhyb3cgbmV3''@;'; + put 'put ''IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4gZH0oZCl9ZnVuY3Rpb24gRk8oZCl7cmV0dXJuKEZPPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3QuZ2V0UHJvdG90eXBlT2YuYmluZCgp''@;'; + put 'put ''OmZ1bmN0aW9uKGgpe3JldHVybiBoLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKGgpfSkoZCl9dmFyIF84ZT0iY29sdW1uU3VtbWFyeSIsbW90PWZ1bmN0aW9uKGQpeyFmdW5jdGlvbiBjb3QoZCxnKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZyYmbnVsbCE9PWcpdGhyb3cgbmV3''@;'; + put 'put ''IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTtkLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGcmJmcucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6ZCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0''@;'; + put 'put ''LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZyYmYjhlKGQsZyl9KGgsZCk7dmFyIGc9ZnVuY3Rpb24gZm90KGQpe3ZhciBnPWZ1bmN0aW9uIHBvdCgpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0fHxSZWZsZWN0''@;'; + put 'put ''LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBQcm94eSlyZXR1cm4hMDt0cnl7cmV0dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLGZ1bmN0aW9uKCl7fSkpLCEwfWNhdGNoKGQpe3JldHVy''@;'; + put 'put ''biExfX0oKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgeSx2PUZPKGQpO2lmKGcpe3ZhciBDPUZPKHRoaXMpLmNvbnN0cnVjdG9yO3k9UmVmbGVjdC5jb25zdHJ1Y3Qodixhcmd1bWVudHMsQyl9ZWxzZSB5PXYuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBob3QodGhpcyx5KX19KGgpO2Z1''@;'; + put 'put ''bmN0aW9uIGgodil7dmFyIHk7cmV0dXJuIGZ1bmN0aW9uIGxvdChkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSh0aGlzLGgpLCh5PWcuY2FsbCh0aGlzLHYpKS5lbmRwb2ludHM9bnVsbCx5''@;'; + put 'put ''fXJldHVybiBmdW5jdGlvbiBzb3QoZCxnLGgpe2cmJkNFZShkLnByb3RvdHlwZSxnKSxoJiZDRWUoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oaCxbe2tleToiaXNFbmFibGVkIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiEhdGhpcy5o''@;'; + put 'put ''b3QuZ2V0U2V0dGluZ3MoKVtfOGVdfX0se2tleToiZW5hYmxlUGx1Z2luIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXM7dGhpcy5lbmFibGVkfHwodGhpcy5zZXR0aW5ncz10aGlzLmhvdC5nZXRTZXR0aW5ncygpW184ZV0sdGhpcy5lbmRwb2ludHM9bmV3IG9vdCh0aGlzLHRoaXMuc2V0''@;'; + put 'put ''dGluZ3MpLHRoaXMuYWRkSG9vaygiYWZ0ZXJJbml0IixmdW5jdGlvbigpe3JldHVybiB5Lm9uQWZ0ZXJJbml0LmFwcGx5KHksYXJndW1lbnRzKX0pLHRoaXMuYWRkSG9vaygiYWZ0ZXJDaGFuZ2UiLGZ1bmN0aW9uKCl7cmV0dXJuIHkub25BZnRlckNoYW5nZS5hcHBseSh5LGFyZ3VtZW50cyl9''@;'; + put 'put ''KSx0aGlzLmFkZEhvb2soImJlZm9yZUNyZWF0ZVJvdyIsZnVuY3Rpb24oQyxJLGope3JldHVybiB5LmVuZHBvaW50cy5yZXNldFNldHVwQmVmb3JlU3RydWN0dXJlQWx0ZXJhdGlvbigiaW5zZXJ0X3JvdyIsQyxJLG51bGwsail9KSx0aGlzLmFkZEhvb2soImJlZm9yZUNyZWF0ZUNvbCIsZnVu''@;'; + put 'put ''Y3Rpb24oQyxJLGope3JldHVybiB5LmVuZHBvaW50cy5yZXNldFNldHVwQmVmb3JlU3RydWN0dXJlQWx0ZXJhdGlvbigiaW5zZXJ0X2NvbCIsQyxJLG51bGwsail9KSx0aGlzLmFkZEhvb2soImJlZm9yZVJlbW92ZVJvdyIsZnVuY3Rpb24oKXtmb3IodmFyIEMsST1hcmd1bWVudHMubGVuZ3Ro''@;'; + put 'put ''LGo9bmV3IEFycmF5KEkpLHVlPTA7dWU8STt1ZSsrKWpbdWVdPWFyZ3VtZW50c1t1ZV07cmV0dXJuKEM9eS5lbmRwb2ludHMpLnJlc2V0U2V0dXBCZWZvcmVTdHJ1Y3R1cmVBbHRlcmF0aW9uLmFwcGx5KEMsWyJyZW1vdmVfcm93Il0uY29uY2F0KGopKX0pLHRoaXMuYWRkSG9vaygiYmVmb3Jl''@;'; + put 'put ''UmVtb3ZlQ29sIixmdW5jdGlvbigpe2Zvcih2YXIgQyxJPWFyZ3VtZW50cy5sZW5ndGgsaj1uZXcgQXJyYXkoSSksdWU9MDt1ZTxJO3VlKyspalt1ZV09YXJndW1lbnRzW3VlXTtyZXR1cm4oQz15LmVuZHBvaW50cykucmVzZXRTZXR1cEJlZm9yZVN0cnVjdHVyZUFsdGVyYXRpb24uYXBwbHko''@;'; + put 'put ''QyxbInJlbW92ZV9jb2wiXS5jb25jYXQoaikpfSksdGhpcy5hZGRIb29rKCJhZnRlckNyZWF0ZVJvdyIsZnVuY3Rpb24oQyxJLGope3JldHVybiB5LmVuZHBvaW50cy5yZXNldFNldHVwQWZ0ZXJTdHJ1Y3R1cmVBbHRlcmF0aW9uKCJpbnNlcnRfcm93IixDLEksbnVsbCxqKX0pLHRoaXMuYWRk''@;'; + put 'put ''SG9vaygiYWZ0ZXJDcmVhdGVDb2wiLGZ1bmN0aW9uKEMsSSxqKXtyZXR1cm4geS5lbmRwb2ludHMucmVzZXRTZXR1cEFmdGVyU3RydWN0dXJlQWx0ZXJhdGlvbigiaW5zZXJ0X2NvbCIsQyxJLG51bGwsail9KSx0aGlzLmFkZEhvb2soImFmdGVyUmVtb3ZlUm93IixmdW5jdGlvbigpe2Zvcih2''@;'; + put 'put ''YXIgQyxJPWFyZ3VtZW50cy5sZW5ndGgsaj1uZXcgQXJyYXkoSSksdWU9MDt1ZTxJO3VlKyspalt1ZV09YXJndW1lbnRzW3VlXTtyZXR1cm4oQz15LmVuZHBvaW50cykucmVzZXRTZXR1cEFmdGVyU3RydWN0dXJlQWx0ZXJhdGlvbi5hcHBseShDLFsicmVtb3ZlX3JvdyJdLmNvbmNhdChqKSl9''@;'; + put 'put ''KSx0aGlzLmFkZEhvb2soImFmdGVyUmVtb3ZlQ29sIixmdW5jdGlvbigpe2Zvcih2YXIgQyxJPWFyZ3VtZW50cy5sZW5ndGgsaj1uZXcgQXJyYXkoSSksdWU9MDt1ZTxJO3VlKyspalt1ZV09YXJndW1lbnRzW3VlXTtyZXR1cm4oQz15LmVuZHBvaW50cykucmVzZXRTZXR1cEFmdGVyU3RydWN0''@;'; + put 'put ''dXJlQWx0ZXJhdGlvbi5hcHBseShDLFsicmVtb3ZlX2NvbCJdLmNvbmNhdChqKSl9KSx0aGlzLmFkZEhvb2soImFmdGVyUm93TW92ZSIsZnVuY3Rpb24oKXtyZXR1cm4geS5vbkFmdGVyUm93TW92ZS5hcHBseSh5LGFyZ3VtZW50cyl9KSxMdGUoRk8oaC5wcm90b3R5cGUpLCJlbmFibGVQbHVn''@;'; + put 'put ''aW4iLHRoaXMpLmNhbGwodGhpcykpfX0se2tleToiZGlzYWJsZVBsdWdpbiIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmVuZHBvaW50cz1udWxsLHRoaXMuc2V0dGluZ3M9bnVsbCx0aGlzLmN1cnJlbnRFbmRwb2ludD1udWxsfX0se2tleToiY2FsY3VsYXRlIix2YWx1ZTpmdW5jdGlvbih5KXtz''@;'; + put 'put ''d2l0Y2goeS50eXBlLnRvTG93ZXJDYXNlKCkpe2Nhc2Uic3VtIjp5LnJlc3VsdD10aGlzLmNhbGN1bGF0ZVN1bSh5KTticmVhaztjYXNlIm1pbiI6Y2FzZSJtYXgiOnkucmVzdWx0PXRoaXMuY2FsY3VsYXRlTWluTWF4KHkseS50eXBlKTticmVhaztjYXNlImNvdW50Ijp5LnJlc3VsdD10aGlz''@;'; + put 'put ''LmNvdW50RW50cmllcyh5KTticmVhaztjYXNlImF2ZXJhZ2UiOnkucmVzdWx0PXRoaXMuY2FsY3VsYXRlQXZlcmFnZSh5KTticmVhaztjYXNlImN1c3RvbSI6eS5yZXN1bHQ9eS5jdXN0b21GdW5jdGlvbi5jYWxsKHRoaXMseSl9fX0se2tleToiY2FsY3VsYXRlU3VtIix2YWx1ZTpmdW5jdGlv''@;'; + put 'put ''bih5KXt2YXIgQz10aGlzLEk9MDtyZXR1cm4gR2woeS5yYW5nZXMsZnVuY3Rpb24oail7SSs9Qy5nZXRQYXJ0aWFsU3VtKGoseS5zb3VyY2VDb2x1bW4pfSksSX19LHtrZXk6ImdldFBhcnRpYWxTdW0iLHZhbHVlOmZ1bmN0aW9uKHksQyl7dmFyIEk9MCxqPXlbMV18fHlbMF0sdWU9bnVsbCxf''@;'; + put 'put ''ZT0wO2Rve3VlPXRoaXMuZ2V0Q2VsbFZhbHVlKGosQyl8fDA7dmFyIEJlPSgiIi5jb25jYXQodWUpLnNwbGl0KCIuIilbMV18fFtdKS5sZW5ndGh8fDE7QmU+X2UmJihfZT1CZSksSSs9dWV8fDAsai09MX13aGlsZShqPj15WzBdKTtyZXR1cm4gTWF0aC5yb3VuZChJKk1hdGgucG93KDEwLF9l''@;'; + put 'put ''KSkvTWF0aC5wb3coMTAsX2UpfX0se2tleToiY2FsY3VsYXRlTWluTWF4Iix2YWx1ZTpmdW5jdGlvbih5LEMpe3ZhciBJPXRoaXMsaj1udWxsO3JldHVybiBHbCh5LnJhbmdlcyxmdW5jdGlvbih1ZSl7dmFyIF9lPUkuZ2V0UGFydGlhbE1pbk1heCh1ZSx5LnNvdXJjZUNvbHVtbixDKTtpZihu''@;'; + put 'put ''dWxsPT09aiYmbnVsbCE9PV9lJiYoaj1fZSksbnVsbCE9PV9lKXN3aXRjaChDKXtjYXNlIm1pbiI6aj1NYXRoLm1pbihqLF9lKTticmVhaztjYXNlIm1heCI6aj1NYXRoLm1heChqLF9lKX19KSxudWxsPT09aj8iTm90IGVub3VnaCBkYXRhIjpqfX0se2tleToiZ2V0UGFydGlhbE1pbk1heCIs''@;'; + put 'put ''dmFsdWU6ZnVuY3Rpb24oeSxDLEkpe3ZhciBfZSxqPW51bGwsdWU9eVsxXXx8eVswXTtkb3tpZihfZT10aGlzLmdldENlbGxWYWx1ZSh1ZSxDKXx8bnVsbCxudWxsPT09ailqPV9lO2Vsc2UgaWYobnVsbCE9PV9lKXN3aXRjaChJKXtjYXNlIm1pbiI6aj1NYXRoLm1pbihqLF9lKTticmVhaztj''@;'; + put 'put ''YXNlIm1heCI6aj1NYXRoLm1heChqLF9lKX11ZS09MX13aGlsZSh1ZT49eVswXSk7cmV0dXJuIGp9fSx7a2V5OiJjb3VudEVtcHR5Iix2YWx1ZTpmdW5jdGlvbih5LEMpe3ZhciBqPTAsdWU9eVsxXXx8eVswXTtkb3t0aGlzLmdldENlbGxWYWx1ZSh1ZSxDKXx8KGorPTEpLHVlLT0xfXdoaWxl''@;'; + put 'put ''KHVlPj15WzBdKTtyZXR1cm4gan19LHtrZXk6ImNvdW50RW50cmllcyIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEM9dGhpcyxJPTA7cmV0dXJuIEdsKHkucmFuZ2VzLGZ1bmN0aW9uKHVlKXt2YXIgX2U9dm9pZCAwPT09dWVbMV0/MTp1ZVsxXS11ZVswXSsxLEJlPUMuY291bnRFbXB0eSh1ZSx5''@;'; + put 'put ''LnNvdXJjZUNvbHVtbik7SSs9X2UsSS09QmV9KSxJfX0se2tleToiY2FsY3VsYXRlQXZlcmFnZSIsdmFsdWU6ZnVuY3Rpb24oeSl7cmV0dXJuIHRoaXMuY2FsY3VsYXRlU3VtKHkpL3RoaXMuY291bnRFbnRyaWVzKHkpfX0se2tleToiZ2V0Q2VsbFZhbHVlIix2YWx1ZTpmdW5jdGlvbih5LEMp''@;'; + put 'put ''e3ZhciBJPXRoaXMuaG90LnRvVmlzdWFsUm93KHkpLGo9dGhpcy5ob3QudG9WaXN1YWxDb2x1bW4oQyksdWU9dGhpcy5ob3QuZ2V0U291cmNlRGF0YUF0Q2VsbCh5LEMpLF9lPSIiO2lmKG51bGwhPT1JJiZudWxsIT09aiYmKF9lPXRoaXMuaG90LmdldENlbGxNZXRhKEksaikuY2xhc3NOYW1l''@;'; + put 'put ''fHwiIiksX2UuaW5kZXhPZigiY29sdW1uU3VtbWFyeVJlc3VsdCIpPi0xKXJldHVybiBudWxsO2lmKHRoaXMuZW5kcG9pbnRzLmN1cnJlbnRFbmRwb2ludC5mb3JjZU51bWVyaWMmJigic3RyaW5nIj09dHlwZW9mIHVlJiYodWU9dWUucmVwbGFjZSgvLC8sIi4iKSksdWU9cGFyc2VGbG9hdCh1''@;'; + put 'put ''ZSkpLGlzTmFOKHVlKSYmIXRoaXMuZW5kcG9pbnRzLmN1cnJlbnRFbmRwb2ludC5zdXBwcmVzc0RhdGFUeXBlRXJyb3JzKXRocm93IG5ldyBFcnJvcihQMihfRWV8fChfRWU9ZnVuY3Rpb24gYW90KGQsZyl7cmV0dXJuIGd8fChnPWQuc2xpY2UoMCkpLE9iamVjdC5mcmVlemUoT2JqZWN0LmRl''@;'; + put 'put ''ZmluZVByb3BlcnRpZXMoZCx7cmF3Ont2YWx1ZTpPYmplY3QuZnJlZXplKGcpfX0pKX0oWyJDb2x1bW5TdW1tYXJ5IHBsdWdpbjogY2VsbCBhdCAoIiwiLCAiLCIpIGlzIG5vdCBpbiBhIFxuICAgICAgICAgIG51bWVyaWMgZm9ybWF0LiBDYW5ub3QgZG8gdGhlIGNhbGN1bGF0aW9uLiJdLFsi''@;'; + put 'put ''Q29sdW1uU3VtbWFyeSBwbHVnaW46IGNlbGwgYXQgKCIsIiwgIiwiKSBpcyBub3QgaW4gYVxceDIwXG4gICAgICAgICAgbnVtZXJpYyBmb3JtYXQuIENhbm5vdCBkbyB0aGUgY2FsY3VsYXRpb24uIl0pKSx5LEMpKTtyZXR1cm4gdWV9fSx7a2V5OiJvbkFmdGVySW5pdCIsdmFsdWU6ZnVuY3Rp''@;'; + put 'put ''b24oKXt0aGlzLmVuZHBvaW50cy5lbmRwb2ludHM9dGhpcy5lbmRwb2ludHMucGFyc2VTZXR0aW5ncygpLHRoaXMuZW5kcG9pbnRzLnJlZnJlc2hBbGxFbmRwb2ludHMoITApfX0se2tleToib25BZnRlckNoYW5nZSIsdmFsdWU6ZnVuY3Rpb24oeSxDKXt5JiYiQ29sdW1uU3VtbWFyeS5yZXNl''@;'; + put 'put ''dCIhPT1DJiYiQ29sdW1uU3VtbWFyeS5zZXQiIT09QyYmImxvYWREYXRhIiE9PUMmJnRoaXMuZW5kcG9pbnRzLnJlZnJlc2hDaGFuZ2VkRW5kcG9pbnRzKHkpfX0se2tleToib25BZnRlclJvd01vdmUiLHZhbHVlOmZ1bmN0aW9uKHksQyl7dGhpcy5lbmRwb2ludHMucmVzZXRTZXR1cEJlZm9y''@;'; + put 'put ''ZVN0cnVjdHVyZUFsdGVyYXRpb24oIm1vdmVfcm93Iix5WzBdLHkubGVuZ3RoLHksdGhpcy5wbHVnaW5OYW1lKSx0aGlzLmVuZHBvaW50cy5yZXNldFNldHVwQWZ0ZXJTdHJ1Y3R1cmVBbHRlcmF0aW9uKCJtb3ZlX3JvdyIsQyx5Lmxlbmd0aCx5LHRoaXMucGx1Z2luTmFtZSl9fV0sW3trZXk6''@;'; + put 'put ''IlBMVUdJTl9LRVkiLGdldDpmdW5jdGlvbigpe3JldHVybiBfOGV9fSx7a2V5OiJQTFVHSU5fUFJJT1JJVFkiLGdldDpmdW5jdGlvbigpe3JldHVybiAyMjB9fV0pLGh9KFlzKTtmdW5jdGlvbiBrRWUoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1l''@;'; + put 'put ''cmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX12YXIgeW90PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZChnLGgpeyhmdW5jdGlvbiB2b3QoZCxnKXtpZighKGQg''@;'; + put 'put ''aW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0pKHRoaXMsZCksdGhpcy5yb290RG9jdW1lbnQ9Zyx0aGlzLmlzUnRsPWgsdGhpcy5jb250YWluZXI9bnVsbCx0aGlzLmVkaXRvcj10aGlzLmNyZWF0ZUVkaXRvcigp''@;'; + put 'put ''LHRoaXMuZWRpdG9yU3R5bGU9dGhpcy5lZGl0b3Iuc3R5bGUsdGhpcy5oaWRkZW49ITAsdGhpcy5oaWRlKCl9cmV0dXJuIGZ1bmN0aW9uIEFvdChkLGcsaCl7ZyYma0VlKGQucHJvdG90eXBlLGcpLGgmJmtFZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0''@;'; + put 'put ''YWJsZTohMX0pfShkLFt7a2V5OiJzZXRQb3NpdGlvbiIsdmFsdWU6ZnVuY3Rpb24oaCx2KXt0aGlzLmVkaXRvclN0eWxlLmxlZnQ9IiIuY29uY2F0KGgsInB4IiksdGhpcy5lZGl0b3JTdHlsZS50b3A9IiIuY29uY2F0KHYsInB4Iil9fSx7a2V5OiJzZXRTaXplIix2YWx1ZTpmdW5jdGlvbiho''@;'; + put 'put ''LHYpe2lmKGgmJnYpe3ZhciB5PXRoaXMuZ2V0SW5wdXRFbGVtZW50KCk7eS5zdHlsZS53aWR0aD0iIi5jb25jYXQoaCwicHgiKSx5LnN0eWxlLmhlaWdodD0iIi5jb25jYXQodiwicHgiKX19fSx7a2V5OiJnZXRTaXplIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybnt3aWR0aDpFMih0aGlzLmdl''@;'; + put 'put ''dElucHV0RWxlbWVudCgpKSxoZWlnaHQ6RDEodGhpcy5nZXRJbnB1dEVsZW1lbnQoKSl9fX0se2tleToicmVzZXRTaXplIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBoPXRoaXMuZ2V0SW5wdXRFbGVtZW50KCk7aC5zdHlsZS53aWR0aD0iIixoLnN0eWxlLmhlaWdodD0iIn19LHtrZXk6InNldFJl''@;'; + put 'put ''YWRPbmx5U3RhdGUiLHZhbHVlOmZ1bmN0aW9uKGgpe3RoaXMuZ2V0SW5wdXRFbGVtZW50KCkucmVhZE9ubHk9aH19LHtrZXk6InNob3ciLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5lZGl0b3JTdHlsZS5kaXNwbGF5PSJibG9jayIsdGhpcy5oaWRkZW49ITF9fSx7a2V5OiJoaWRlIix2YWx1ZTpm''@;'; + put 'put ''dW5jdGlvbigpe3RoaXMuaGlkZGVufHwodGhpcy5lZGl0b3JTdHlsZS5kaXNwbGF5PSJub25lIiksdGhpcy5oaWRkZW49ITB9fSx7a2V5OiJpc1Zpc2libGUiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuImJsb2NrIj09PXRoaXMuZWRpdG9yU3R5bGUuZGlzcGxheX19LHtrZXk6InNldFZhbHVl''@;'; + put 'put ''Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciBoPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXToiIix2PWh8fCIiO3RoaXMuZ2V0SW5wdXRFbGVtZW50KCkudmFsdWU9dn19LHtrZXk6ImdldFZhbHVlIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0''@;'; + put 'put ''aGlzLmdldElucHV0RWxlbWVudCgpLnZhbHVlfX0se2tleToiaXNGb2N1c2VkIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJvb3REb2N1bWVudC5hY3RpdmVFbGVtZW50PT09dGhpcy5nZXRJbnB1dEVsZW1lbnQoKX19LHtrZXk6ImZvY3VzIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMu''@;'; + put 'put ''Z2V0SW5wdXRFbGVtZW50KCkuZm9jdXMoKX19LHtrZXk6ImNyZWF0ZUVkaXRvciIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD10aGlzLnJvb3REb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSx2PXRoaXMucm9vdERvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRleHRhcmVhIik7cmV0dXJuIGgu''@;'; + put 'put ''c3R5bGUuZGlzcGxheT0ibm9uZSIsdGhpcy5jb250YWluZXI9dGhpcy5yb290RG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksdGhpcy5jb250YWluZXIuc2V0QXR0cmlidXRlKCJkaXIiLHRoaXMuaXNSdGw/InJ0bCI6Imx0ciIpLE8wKHRoaXMuY29udGFpbmVyLGQuQ0xBU1NfRURJVE9S''@;'; + put 'put ''X0NPTlRBSU5FUiksdGhpcy5yb290RG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0aGlzLmNvbnRhaW5lciksTzAoaCxkLkNMQVNTX0VESVRPUiksTzAodixkLkNMQVNTX0lOUFVUKSxoLmFwcGVuZENoaWxkKHYpLHRoaXMuY29udGFpbmVyLmFwcGVuZENoaWxkKGgpLGh9fSx7a2V5OiJnZXRJ''@;'; + put 'put ''bnB1dEVsZW1lbnQiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZWRpdG9yLnF1ZXJ5U2VsZWN0b3IoIi4iLmNvbmNhdChkLkNMQVNTX0lOUFVUKSl9fSx7a2V5OiJkZXN0cm95Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciBoPXRoaXMuY29udGFpbmVyP3RoaXMuY29udGFpbmVyLnBhcmVu''@;'; + put 'put ''dE5vZGU6bnVsbDt0aGlzLmVkaXRvci5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRoaXMuZWRpdG9yKSx0aGlzLmVkaXRvcj1udWxsLHRoaXMuZWRpdG9yU3R5bGU9bnVsbCxoJiZoLnJlbW92ZUNoaWxkKHRoaXMuY29udGFpbmVyKX19XSxbe2tleToiQ0xBU1NfRURJVE9SX0NPTlRBSU5FUiIs''@;'; + put 'put ''Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuImh0Q29tbWVudHNDb250YWluZXIifX0se2tleToiQ0xBU1NfRURJVE9SIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4iaHRDb21tZW50cyJ9fSx7a2V5OiJDTEFTU19JTlBVVCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuImh0Q29tbWVudFRleHRBcmVhIn19LHtr''@;'; + put 'put ''ZXk6IkNMQVNTX0NFTEwiLGdldDpmdW5jdGlvbigpe3JldHVybiJodENvbW1lbnRDZWxsIn19XSksZH0oKTtjb25zdCB3b3Q9eW90O3ZhciBXbD0iLS0tLS0tLS0tIjtmdW5jdGlvbiBPdGUoZCl7cmV0dXJuIHRsKGQsImh0U2VwYXJhdG9yIil9ZnVuY3Rpb24gUnRlKGQpe3JldHVybiB0bChk''@;'; + put 'put ''LCJodERpc2FibGVkIil9ZnVuY3Rpb24gQnRlKGQpe3JldHVybiB0bChkLCJodFNlbGVjdGlvbkRpc2FibGVkIil9ZnVuY3Rpb24gSlMoZCl7dmFyIGc9ZC5nZXRTZWxlY3RlZCgpO3JldHVybiFnfHxnWzBdPDA/bnVsbDpnfWZ1bmN0aW9uIFhTKGQsZyl7dmFyIGg9e307cmV0dXJuIFVyKGQs''@;'; + put 'put ''ZnVuY3Rpb24odil7di5mb3JBbGwoZnVuY3Rpb24oeSxDKXt5Pj0wJiZDPj0wJiYoaFt5XXx8KGhbeV09W10pLGhbeV1bQ109Zyh5LEMpKX0pfSksaH1mdW5jdGlvbiBIdyhkLGcsaCx2LHkpe1VyKGQsZnVuY3Rpb24oQyl7Qy5mb3JBbGwoZnVuY3Rpb24oSSxqKXtJPj0wJiZqPj0wJiZmdW5j''@;'; + put 'put ''dGlvbiBNb3QoZCxnLGgsdix5LEMpe3ZhciBJPXkoZCxnKSxqPXY7SS5jbGFzc05hbWUmJihqPSJ2ZXJ0aWNhbCI9PT1oP2Z1bmN0aW9uIGtvdChkLGcpe2lmKC0xIT09ZC5pbmRleE9mKGcpKXJldHVybiBkO3ZhciBoPWQucmVwbGFjZSgiaHRUb3AiLCIiKS5yZXBsYWNlKCJodE1pZGRsZSIs''@;'; + put 'put ''IiIpLnJlcGxhY2UoImh0Qm90dG9tIiwiIikucmVwbGFjZSgiICAiLCIiKTtyZXR1cm4iIi5jb25jYXQoaCwiICIpLmNvbmNhdChnKX0oSS5jbGFzc05hbWUsdik6ZnVuY3Rpb24gU290KGQsZyl7aWYoLTEhPT1kLmluZGV4T2YoZykpcmV0dXJuIGQ7dmFyIGg9ZC5yZXBsYWNlKCJodExlZnQi''@;'; + put 'put ''LCIiKS5yZXBsYWNlKCJodENlbnRlciIsIiIpLnJlcGxhY2UoImh0UmlnaHQiLCIiKS5yZXBsYWNlKCJodEp1c3RpZnkiLCIiKS5yZXBsYWNlKCIgICIsIiIpO3JldHVybiIiLmNvbmNhdChoLCIgIikuY29uY2F0KGcpfShJLmNsYXNzTmFtZSx2KSksQyhkLGcsImNsYXNzTmFtZSIsail9KEks''@;'; + put 'put ''aixnLGgsdix5KX0pfSl9ZnVuY3Rpb24gT2coZCxnKXt2YXIgaD0hMTtyZXR1cm4gQXJyYXkuaXNBcnJheShkKSYmVXIoZCxmdW5jdGlvbih2KXtyZXR1cm4gdi5mb3JBbGwoZnVuY3Rpb24oeSxDKXtpZih5Pj0wJiZDPj0wJiZnKHksQykpcmV0dXJuIGg9ITAsITF9KSxofSksaH1mdW5jdGlv''@;'; + put 'put ''biBCdihkKXtyZXR1cm4nPHNwYW4gY2xhc3M9InNlbGVjdGVkIj4nLmNvbmNhdChTdHJpbmcuZnJvbUNoYXJDb2RlKDEwMDAzKSwiPC9zcGFuPiIpLmNvbmNhdChkKX1mdW5jdGlvbiBTRWUoZCxnKXtmb3IodmFyIGg9ZC5zbGljZSgwKTswPGgubGVuZ3RoJiZoWzBdLm5hbWU9PT1nOyloLnNo''@;'; + put 'put ''aWZ0KCk7cmV0dXJuIGh9ZnVuY3Rpb24geG90KGQsZyl7dmFyIGg9ZC5zbGljZSgwKTtyZXR1cm4gaC5yZXZlcnNlKCksKGg9U0VlKGgsZykpLnJldmVyc2UoKSxofWZ1bmN0aW9uIFRvdChkKXt2YXIgZz1bXTtyZXR1cm4gVXIoZCxmdW5jdGlvbihoLHYpe3Y+MD9nW2cubGVuZ3RoLTFdLm5h''@;'; + put 'put ''bWUhPT1oLm5hbWUmJmcucHVzaChoKTpnLnB1c2goaCl9KSxnfWZ1bmN0aW9uIE1FZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJs''@;'; + put 'put ''ZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fXZhciBFRWU9ZnVuY3Rpb24oKXtmdW5jdGlvbiBkKGcpeyhmdW5jdGlvbiBEb3QoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rp''@;'; + put 'put ''b24iKX0pKHRoaXMsZCksdGhpcy53YXNMYXN0QWN0aW9uU2hvdz0hMCx0aGlzLnNob3dEZWJvdW5jZWQ9bnVsbCx0aGlzLmhpZGluZ1RpbWVyPW51bGwsdGhpcy51cGRhdGVEZWxheShnKX1yZXR1cm4gZnVuY3Rpb24gTG90KGQsZyxoKXtnJiZNRWUoZC5wcm90b3R5cGUsZyksaCYmTUVlKGQs''@;'; + put 'put ''aCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGQsW3trZXk6ImhpZGUiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9dGhpczt0aGlzLndhc0xhc3RBY3Rpb25TaG93PSExLHRoaXMuaGlkaW5nVGltZXI9c2V0VGltZW91dChmdW5jdGlvbigpeyEx''@;'; + put 'put ''PT09aC53YXNMYXN0QWN0aW9uU2hvdyYmaC5ydW5Mb2NhbEhvb2tzKCJoaWRlIil9LDI1MCl9fSx7a2V5OiJzaG93Iix2YWx1ZTpmdW5jdGlvbihoKXt0aGlzLndhc0xhc3RBY3Rpb25TaG93PSEwLHRoaXMuc2hvd0RlYm91bmNlZChoKX19LHtrZXk6ImNhbmNlbEhpZGluZyIsdmFsdWU6ZnVu''@;'; + put 'put ''Y3Rpb24oKXt0aGlzLndhc0xhc3RBY3Rpb25TaG93PSEwLGNsZWFyVGltZW91dCh0aGlzLmhpZGluZ1RpbWVyKSx0aGlzLmhpZGluZ1RpbWVyPW51bGx9fSx7a2V5OiJ1cGRhdGVEZWxheSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD10aGlzLHY9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAh''@;'; + put 'put ''PT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOjI1MDt0aGlzLnNob3dEZWJvdW5jZWQ9eTNlKGZ1bmN0aW9uKHkpe2gud2FzTGFzdEFjdGlvblNob3cmJmgucnVuTG9jYWxIb29rcygic2hvdyIseS5mcm9tLnJvdyx5LmZyb20uY29sKX0sdil9fSx7a2V5OiJkZXN0cm95Iix2YWx1ZTpmdW5j''@;'; + put 'put ''dGlvbigpe3RoaXMuY2xlYXJMb2NhbEhvb2tzKCl9fV0pLGR9KCk7QjIoRUVlLGNkKTtjb25zdCBCb3Q9RUVlO2Z1bmN0aW9uIEM4ZShkKXtyZXR1cm4oQzhlPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGcpe3Jl''@;'; + put 'put ''dHVybiB0eXBlb2YgZ306ZnVuY3Rpb24oZyl7cmV0dXJuIGcmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmcuY29uc3RydWN0b3I9PT1TeW1ib2wmJmchPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBnfSkoZCl9ZnVuY3Rpb24gazhlKGQsZyxoKXtyZXR1cm4gZyBpbiBk''@;'; + put 'put ''P09iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGcse3ZhbHVlOmgsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpkW2ddPWgsZH1mdW5jdGlvbiB4RWUoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVt''@;'; + put 'put ''ZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX1mdW5jdGlvbiBLUygpe3JldHVybiBLUz0idW5kZWZpbmVkIiE9dHlwZW9mIFJlZmxlY3QmJlJlZmxlY3QuZ2V0P1JlZmxlY3Qu''@;'; + put 'put ''Z2V0LmJpbmQoKTpmdW5jdGlvbihnLGgsdil7dmFyIHk9SG90KGcsaCk7aWYoeSl7dmFyIEM9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih5LGgpO3JldHVybiBDLmdldD9DLmdldC5jYWxsKGFyZ3VtZW50cy5sZW5ndGg8Mz9nOnYpOkMudmFsdWV9fSxLUy5hcHBseSh0aGlzLGFy''@;'; + put 'put ''Z3VtZW50cyl9ZnVuY3Rpb24gSG90KGQsZyl7Zm9yKDshT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGQsZykmJm51bGwhPT0oZD1QdihkKSk7KTtyZXR1cm4gZH1mdW5jdGlvbiBTOGUoZCxnKXtyZXR1cm4oUzhlPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0''@;'; + put 'put ''UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHYseSl7cmV0dXJuIHYuX19wcm90b19fPXksdn0pKGQsZyl9ZnVuY3Rpb24gam90KGQsZyl7aWYoZyYmKCJvYmplY3QiPT09QzhlKGcpfHwiZnVuY3Rpb24iPT10eXBlb2YgZykpcmV0dXJuIGc7aWYodm9pZCAwIT09Zyl0aHJvdyBuZXcgVHlw''@;'; + put 'put ''ZUVycm9yKCJEZXJpdmVkIGNvbnN0cnVjdG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0IG9yIHVuZGVmaW5lZCIpO3JldHVybiBURWUoZCl9ZnVuY3Rpb24gVEVlKGQpe2lmKHZvaWQgMD09PWQpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2Vk''@;'; + put 'put ''IC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4gZH1mdW5jdGlvbiBQdihkKXtyZXR1cm4oUHY9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24oaCl7cmV0dXJuIGguX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90''@;'; + put 'put ''eXBlT2YoaCl9KShkKX12YXIgTThlPSJjb21tZW50cyIsUHRlPW5ldyBXZWFrTWFwLFJnPSJjb21tZW50IixITz0idmFsdWUiLEZ0ZT0icmVhZE9ubHkiLEdvdD1mdW5jdGlvbihkKXshZnVuY3Rpb24gTm90KGQsZyl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGcmJm51bGwhPT1nKXRocm93IG5l''@;'; + put 'put ''dyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uIik7ZC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShnJiZnLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOmQsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLE9iamVj''@;'; + put 'put ''dC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGcmJlM4ZShkLGcpfShoLGQpO3ZhciBnPWZ1bmN0aW9uIFZvdChkKXt2YXIgZz1mdW5jdGlvbiBab3QoKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIFJlZmxlY3R8fCFSZWZsZWN0LmNvbnN0cnVjdHx8UmVmbGVj''@;'; + put 'put ''dC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT10eXBlb2YgUHJveHkpcmV0dXJuITA7dHJ5e3JldHVybiBCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSxmdW5jdGlvbigpe30pKSwhMH1jYXRjaChkKXtyZXR1''@;'; + put 'put ''cm4hMX19KCk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHksdj1QdihkKTtpZihnKXt2YXIgQz1Qdih0aGlzKS5jb25zdHJ1Y3Rvcjt5PVJlZmxlY3QuY29uc3RydWN0KHYsYXJndW1lbnRzLEMpfWVsc2UgeT12LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gam90KHRoaXMseSl9fShoKTtm''@;'; + put 'put ''dW5jdGlvbiBoKHYpe3ZhciB5O3JldHVybiBmdW5jdGlvbiBQb3QoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0odGhpcyxoKSwoeT1nLmNhbGwodGhpcyx2KSkuZWRpdG9yPW51bGwseS5k''@;'; + put 'put ''aXNwbGF5U3dpdGNoPW51bGwseS5ldmVudE1hbmFnZXI9bnVsbCx5LnJhbmdlPXt9LHkucHJldmVudEVkaXRvckF1dG9Td2l0Y2g9ITEsUHRlLnNldChURWUoeSkse3RlbXBFZGl0b3JEaW1lbnNpb25zOnt9LGNlbGxCZWxvd0N1cnNvcjpudWxsfSkseX1yZXR1cm4gZnVuY3Rpb24gRm90KGQs''@;'; + put 'put ''ZyxoKXtnJiZ4RWUoZC5wcm90b3R5cGUsZyksaCYmeEVlKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGgsW3trZXk6ImlzRW5hYmxlZCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4hIXRoaXMuaG90LmdldFNldHRpbmdzKClbTThlXX19''@;'; + put 'put ''LHtrZXk6ImVuYWJsZVBsdWdpbiIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzO3RoaXMuZW5hYmxlZHx8KHRoaXMuZWRpdG9yfHwodGhpcy5lZGl0b3I9bmV3IHdvdCh0aGlzLmhvdC5yb290RG9jdW1lbnQsdGhpcy5ob3QuaXNSdGwoKSkpLHRoaXMuZXZlbnRNYW5hZ2VyfHwodGhpcy5l''@;'; + put 'put ''dmVudE1hbmFnZXI9bmV3IEwxKHRoaXMpKSx0aGlzLmRpc3BsYXlTd2l0Y2h8fCh0aGlzLmRpc3BsYXlTd2l0Y2g9bmV3IEJvdCh0aGlzLmdldERpc3BsYXlEZWxheVNldHRpbmcoKSkpLHRoaXMuYWRkSG9vaygiYWZ0ZXJDb250ZXh0TWVudURlZmF1bHRPcHRpb25zIixmdW5jdGlvbihDKXty''@;'; + put 'put ''ZXR1cm4geS5hZGRUb0NvbnRleHRNZW51KEMpfSksdGhpcy5hZGRIb29rKCJhZnRlclJlbmRlcmVyIixmdW5jdGlvbihDLEksaix1ZSxfZSxCZSl7cmV0dXJuIHkub25BZnRlclJlbmRlcmVyKEMsQmUpfSksdGhpcy5hZGRIb29rKCJhZnRlclNjcm9sbEhvcml6b250YWxseSIsZnVuY3Rpb24o''@;'; + put 'put ''KXtyZXR1cm4geS5oaWRlKCl9KSx0aGlzLmFkZEhvb2soImFmdGVyU2Nyb2xsVmVydGljYWxseSIsZnVuY3Rpb24oKXtyZXR1cm4geS5oaWRlKCl9KSx0aGlzLmFkZEhvb2soImFmdGVyQmVnaW5FZGl0aW5nIixmdW5jdGlvbigpe3JldHVybiB5LmhpZGUoKX0pLHRoaXMuZGlzcGxheVN3aXRj''@;'; + put 'put ''aC5hZGRMb2NhbEhvb2soImhpZGUiLGZ1bmN0aW9uKCl7cmV0dXJuIHkuaGlkZSgpfSksdGhpcy5kaXNwbGF5U3dpdGNoLmFkZExvY2FsSG9vaygic2hvdyIsZnVuY3Rpb24oQyxJKXtyZXR1cm4geS5zaG93QXRDZWxsKEMsSSl9KSx0aGlzLnJlZ2lzdGVyTGlzdGVuZXJzKCksS1MoUHYoaC5w''@;'; + put 'put ''cm90b3R5cGUpLCJlbmFibGVQbHVnaW4iLHRoaXMpLmNhbGwodGhpcykpfX0se2tleToidXBkYXRlUGx1Z2luIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuZGlzYWJsZVBsdWdpbigpLHRoaXMuZW5hYmxlUGx1Z2luKCksS1MoUHYoaC5wcm90b3R5cGUpLCJ1cGRhdGVQbHVnaW4iLHRoaXMpLmNh''@;'; + put 'put ''bGwodGhpcyksdGhpcy5kaXNwbGF5U3dpdGNoLnVwZGF0ZURlbGF5KHRoaXMuZ2V0RGlzcGxheURlbGF5U2V0dGluZygpKX19LHtrZXk6ImRpc2FibGVQbHVnaW4iLHZhbHVlOmZ1bmN0aW9uKCl7S1MoUHYoaC5wcm90b3R5cGUpLCJkaXNhYmxlUGx1Z2luIix0aGlzKS5jYWxsKHRoaXMpfX0s''@;'; + put 'put ''e2tleToicmVnaXN0ZXJMaXN0ZW5lcnMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcyxDPXRoaXMuaG90LnJvb3REb2N1bWVudDt0aGlzLmV2ZW50TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKEMsIm1vdXNlb3ZlciIsZnVuY3Rpb24oSSl7cmV0dXJuIHkub25Nb3VzZU92ZXIoSSl9KSx0''@;'; + put 'put ''aGlzLmV2ZW50TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKEMsIm1vdXNlZG93biIsZnVuY3Rpb24oSSl7cmV0dXJuIHkub25Nb3VzZURvd24oSSl9KSx0aGlzLmV2ZW50TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKEMsIm1vdXNldXAiLGZ1bmN0aW9uKCl7cmV0dXJuIHkub25Nb3VzZVVwKCl9''@;'; + put 'put ''KSx0aGlzLmV2ZW50TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKHRoaXMuZWRpdG9yLmdldElucHV0RWxlbWVudCgpLCJibHVyIixmdW5jdGlvbigpe3JldHVybiB5Lm9uRWRpdG9yQmx1cigpfSksdGhpcy5ldmVudE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcih0aGlzLmVkaXRvci5nZXRJbnB1''@;'; + put 'put ''dEVsZW1lbnQoKSwibW91c2Vkb3duIixmdW5jdGlvbihJKXtyZXR1cm4geS5vbkVkaXRvck1vdXNlRG93bihJKX0pLHRoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIodGhpcy5lZGl0b3IuZ2V0SW5wdXRFbGVtZW50KCksIm1vdXNldXAiLGZ1bmN0aW9uKEkpe3JldHVybiB5Lm9u''@;'; + put 'put ''RWRpdG9yTW91c2VVcChJKX0pfX0se2tleToic2V0UmFuZ2UiLHZhbHVlOmZ1bmN0aW9uKHkpe3RoaXMucmFuZ2U9eX19LHtrZXk6ImNsZWFyUmFuZ2UiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5yYW5nZT17fX19LHtrZXk6InRhcmdldElzQ2VsbFdpdGhDb21tZW50Iix2YWx1ZTpmdW5jdGlv''@;'; + put 'put ''bih5KXt2YXIgQz1Tdih5LnRhcmdldCwiVEQiLCJUQk9EWSIpO3JldHVybiEhKEMmJnRsKEMsImh0Q29tbWVudENlbGwiKSYmU3YoQyxbdGhpcy5ob3Qucm9vdEVsZW1lbnRdKSl9fSx7a2V5OiJ0YXJnZXRJc0NvbW1lbnRUZXh0QXJlYSIsdmFsdWU6ZnVuY3Rpb24oeSl7cmV0dXJuIHRoaXMu''@;'; + put 'put ''ZWRpdG9yLmdldElucHV0RWxlbWVudCgpPT09eS50YXJnZXR9fSx7a2V5OiJzZXRDb21tZW50Iix2YWx1ZTpmdW5jdGlvbih5KXtpZighdGhpcy5yYW5nZS5mcm9tKXRocm93IG5ldyBFcnJvcignQmVmb3JlIHVzaW5nIHRoaXMgbWV0aG9kLCBmaXJzdCBzZXQgY2VsbCByYW5nZSAoaG90Lmdl''@;'; + put 'put ''dFBsdWdpbigiY29tbWVudCIpLnNldFJhbmdlKCkpJyk7dmFyIEM9dGhpcy5lZGl0b3IuZ2V0VmFsdWUoKSxJPSIiO251bGwhPXk/ST15Om51bGwhPUMmJihJPUMpLHRoaXMudXBkYXRlQ29tbWVudE1ldGEodGhpcy5yYW5nZS5mcm9tLnJvdyx0aGlzLnJhbmdlLmZyb20uY29sLGs4ZSh7fSxI''@;'; + put 'put ''TyxJKSksdGhpcy5ob3QucmVuZGVyKCl9fSx7a2V5OiJzZXRDb21tZW50QXRDZWxsIix2YWx1ZTpmdW5jdGlvbih5LEMsSSl7dGhpcy5zZXRSYW5nZSh7ZnJvbTp0aGlzLmhvdC5fY3JlYXRlQ2VsbENvb3Jkcyh5LEMpfSksdGhpcy5zZXRDb21tZW50KEkpfX0se2tleToicmVtb3ZlQ29tbWVu''@;'; + put 'put ''dCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT0hKGFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdKXx8YXJndW1lbnRzWzBdO2lmKCF0aGlzLnJhbmdlLmZyb20pdGhyb3cgbmV3IEVycm9yKCdCZWZvcmUgdXNpbmcgdGhpcyBtZXRob2QsIGZpcnN0IHNldCBjZWxsIHJh''@;'; + put 'put ''bmdlIChob3QuZ2V0UGx1Z2luKCJjb21tZW50Iikuc2V0UmFuZ2UoKSknKTt0aGlzLmhvdC5zZXRDZWxsTWV0YSh0aGlzLnJhbmdlLmZyb20ucm93LHRoaXMucmFuZ2UuZnJvbS5jb2wsUmcpLHkmJnRoaXMuaG90LnJlbmRlcigpLHRoaXMuaGlkZSgpfX0se2tleToicmVtb3ZlQ29tbWVudEF0''@;'; + put 'put ''Q2VsbCIsdmFsdWU6ZnVuY3Rpb24oeSxDKXt2YXIgST0hKGFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdKXx8YXJndW1lbnRzWzJdO3RoaXMuc2V0UmFuZ2Uoe2Zyb206dGhpcy5ob3QuX2NyZWF0ZUNlbGxDb29yZHMoeSxDKX0pLHRoaXMucmVtb3ZlQ29tbWVudChJ''@;'; + put 'put ''KX19LHtrZXk6ImdldENvbW1lbnQiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0Q29tbWVudE1ldGEodGhpcy5yYW5nZS5mcm9tLnJvdyx0aGlzLnJhbmdlLmZyb20uY29sLEhPKX19LHtrZXk6ImdldENvbW1lbnRBdENlbGwiLHZhbHVlOmZ1bmN0aW9uKHksQyl7cmV0dXJuIHRo''@;'; + put 'put ''aXMuZ2V0Q29tbWVudE1ldGEoeSxDLEhPKX19LHtrZXk6InNob3ciLHZhbHVlOmZ1bmN0aW9uKCl7aWYoIXRoaXMucmFuZ2UuZnJvbSl0aHJvdyBuZXcgRXJyb3IoJ0JlZm9yZSB1c2luZyB0aGlzIG1ldGhvZCwgZmlyc3Qgc2V0IGNlbGwgcmFuZ2UgKGhvdC5nZXRQbHVnaW4oImNvbW1lbnQi''@;'; + put 'put ''KS5zZXRSYW5nZSgpKScpO3ZhciB5PXRoaXMucmFuZ2UuZnJvbSxDPXkucm93LEk9eS5jb2w7aWYoQzwwfHxDPnRoaXMuaG90LmNvdW50U291cmNlUm93cygpLTF8fEk8MHx8ST50aGlzLmhvdC5jb3VudFNvdXJjZUNvbHMoKS0xKXJldHVybiExO3ZhciBqPXRoaXMuaG90LmdldENlbGxNZXRh''@;'; + put 'put ''KHRoaXMucmFuZ2UuZnJvbS5yb3csdGhpcy5yYW5nZS5mcm9tLmNvbCk7cmV0dXJuIHRoaXMuZWRpdG9yLnNldFZhbHVlKGpbUmddP2pbUmddW0hPXToiIiksdGhpcy5lZGl0b3Iuc2hvdygpLHRoaXMucmVmcmVzaEVkaXRvcighMCksITB9fSx7a2V5OiJzaG93QXRDZWxsIix2YWx1ZTpmdW5j''@;'; + put 'put ''dGlvbih5LEMpe3JldHVybiB0aGlzLnNldFJhbmdlKHtmcm9tOnRoaXMuaG90Ll9jcmVhdGVDZWxsQ29vcmRzKHksQyl9KSx0aGlzLnNob3coKX19LHtrZXk6ImhpZGUiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5lZGl0b3IuaGlkZSgpfX0se2tleToicmVmcmVzaEVkaXRvciIsdmFsdWU6ZnVu''@;'; + put 'put ''Y3Rpb24oKXt2YXIgeSxDLEk9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0mJmFyZ3VtZW50c1swXTtpZihJfHx0aGlzLnJhbmdlLmZyb20mJnRoaXMuZWRpdG9yLmlzVmlzaWJsZSgpKXt2YXIgaj10aGlzLmhvdCx1ZT1qLnJvd0luZGV4TWFwcGVyLF9lPWouY29s''@;'; + put 'put ''dW1uSW5kZXhNYXBwZXIsQmU9dGhpcy5yYW5nZS5mcm9tLE5lPUJlLnJvdyxLZT1CZS5jb2wsZHQ9dWUuZ2V0UmVuZGVyYWJsZUZyb21WaXN1YWxJbmRleChOZSksT3Q9X2UuZ2V0UmVuZGVyYWJsZUZyb21WaXN1YWxJbmRleChLZSksJHQ9bnVsbD09PWR0O251bGw9PT1kdCYmKGR0PXVlLmdl''@;'; + put 'put ''dFJlbmRlcmFibGVGcm9tVmlzdWFsSW5kZXgodWUuZ2V0TmVhcmVzdE5vdEhpZGRlbkluZGV4KE5lLC0xKSkpLG51bGw9PT1PdCYmKE90PV9lLmdldFJlbmRlcmFibGVGcm9tVmlzdWFsSW5kZXgoX2UuZ2V0TmVhcmVzdE5vdEhpZGRlbkluZGV4KEtlLC0xKSkpO3ZhciBmbj1udWxsPT09ZHQs''@;'; + put 'put ''TG49bnVsbD09PU90O2R0PW51bGwhPT0oeT1kdCkmJnZvaWQgMCE9PXk/eTowLE90PW51bGwhPT0oQz1PdCkmJnZvaWQgMCE9PUM/QzowO3ZhciBpcj10aGlzLmhvdCxtcj1pci5yb290V2luZG93LFNyPWlyLnZpZXcuX3d0LHdyPVNyLnd0VGFibGUsUXI9d3IuZ2V0Q2VsbCh7cm93OmR0LGNv''@;'; + put 'put ''bDpPdH0pLHlpPXRoaXMuZ2V0Q29tbWVudE1ldGEoTmUsS2UsInN0eWxlIik7eWk/dGhpcy5lZGl0b3Iuc2V0U2l6ZSh5aS53aWR0aCx5aS5oZWlnaHQpOnRoaXMuZWRpdG9yLnJlc2V0U2l6ZSgpO3ZhciBLaT1Mbj8wOndyLmdldFN0cmV0Y2hlZENvbHVtbldpZHRoKE90KSxTbz0kdCYmIWZu''@;'; + put 'put ''P0QxKFFyKTowLFBvPVFyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLFNhPVBvLmxlZnQsSmE9UG8udG9wLGxhPVBvLndpZHRoLGFsPVBvLmhlaWdodCxPcz10aGlzLmVkaXRvci5nZXRTaXplKCksUDA9T3Mud2lkdGgscm89T3MuaGVpZ2h0LGZvPXRoaXMuaG90LnJvb3RXaW5kb3csSWE9Zm8u''@;'; + put 'put ''aW5uZXJXaWR0aCxYbD1mby5pbm5lckhlaWdodCxGbj10aGlzLmhvdC5yb290RG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LFpuPVNhK21yLnNjcm9sbFgrS2ksX3I9SmErbXIuc2Nyb2xsWStTbzt0aGlzLmhvdC5pc1J0bCgpJiYoWm4tPVAwK0tpKSx0aGlzLmhvdC5pc0x0cigpJiZTYStsYStQ''@;'; + put 'put ''MD5JYT9abj1TYSttci5zY3JvbGxYLVAwLTE6dGhpcy5ob3QuaXNSdGwoKSYmWm48LShGbi5zY3JvbGxXaWR0aC1Gbi5jbGllbnRXaWR0aCkmJihabj1TYSttci5zY3JvbGxYK0tpKzEpLEphK3JvPlhsJiYoX3ItPXJvLWFsKzEpLHRoaXMuZWRpdG9yLnNldFBvc2l0aW9uKFpuLF9yKSx0aGlz''@;'; + put 'put ''LmVkaXRvci5zZXRSZWFkT25seVN0YXRlKHRoaXMuZ2V0Q29tbWVudE1ldGEoTmUsS2UsRnRlKSl9fX0se2tleToiY2hlY2tTZWxlY3Rpb25Db21tZW50c0NvbnNpc3RlbmN5Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXMuaG90LmdldFNlbGVjdGVkUmFuZ2VMYXN0KCk7aWYoIXkpcmV0''@;'; + put 'put ''dXJuITE7dmFyIEM9ITEsST15LmdldFRvcFN0YXJ0Q29ybmVyKCk7cmV0dXJuIHRoaXMuZ2V0Q29tbWVudE1ldGEoSS5yb3csSS5jb2wsSE8pJiYoQz0hMCksQ319LHtrZXk6InVwZGF0ZUNvbW1lbnRNZXRhIix2YWx1ZTpmdW5jdGlvbih5LEMsSSl7dmFyIHVlLGo9dGhpcy5ob3QuZ2V0Q2Vs''@;'; + put 'put ''bE1ldGEoeSxDKVtSZ107aj9MWih1ZT1naChqKSxJKTp1ZT1JLHRoaXMuaG90LnNldENlbGxNZXRhKHksQyxSZyx1ZSl9fSx7a2V5OiJnZXRDb21tZW50TWV0YSIsdmFsdWU6ZnVuY3Rpb24oeSxDLEkpe3ZhciBqPXRoaXMuaG90LmdldENlbGxNZXRhKHksQyk7aWYoaltSZ10pcmV0dXJuIGpb''@;'; + put 'put ''UmddW0ldfX0se2tleToib25Nb3VzZURvd24iLHZhbHVlOmZ1bmN0aW9uKHkpe2lmKHRoaXMuaG90LnZpZXcmJnRoaXMuaG90LnZpZXcuX3d0JiYhdGhpcy5wcmV2ZW50RWRpdG9yQXV0b1N3aXRjaCYmIXRoaXMudGFyZ2V0SXNDb21tZW50VGV4dEFyZWEoeSkpe3ZhciBDPVN2KHkudGFyZ2V0''@;'; + put 'put ''LCJURCIsIlRCT0RZIiksST1udWxsO0MmJihJPXRoaXMuaG90LmdldENvb3JkcyhDKSksKCFDfHx0aGlzLnJhbmdlLmZyb20mJkkmJih0aGlzLnJhbmdlLmZyb20ucm93IT09SS5yb3d8fHRoaXMucmFuZ2UuZnJvbS5jb2whPT1JLmNvbCkpJiZ0aGlzLmhpZGUoKX19fSx7a2V5OiJvbk1vdXNl''@;'; + put 'put ''T3ZlciIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEM9UHRlLmdldCh0aGlzKSxJPXRoaXMuaG90LnJvb3REb2N1bWVudDtpZighKHRoaXMucHJldmVudEVkaXRvckF1dG9Td2l0Y2h8fHRoaXMuZWRpdG9yLmlzRm9jdXNlZCgpfHx0bCh5LnRhcmdldCwid3RCb3JkZXIiKXx8Qy5jZWxsQmVsb3dD''@;'; + put 'put ''dXJzb3I9PT15LnRhcmdldCkmJnRoaXMuZWRpdG9yKWlmKEMuY2VsbEJlbG93Q3Vyc29yPUkuZWxlbWVudEZyb21Qb2ludCh5LmNsaWVudFgseS5jbGllbnRZKSx0aGlzLnRhcmdldElzQ2VsbFdpdGhDb21tZW50KHkpKXt2YXIgaj10aGlzLmhvdC5fY3JlYXRlQ2VsbFJhbmdlKHRoaXMuaG90''@;'; + put 'put ''LmdldENvb3Jkcyh5LnRhcmdldCkpO3RoaXMuZGlzcGxheVN3aXRjaC5zaG93KGopfWVsc2UgX3coeS50YXJnZXQsSSkmJiF0aGlzLnRhcmdldElzQ29tbWVudFRleHRBcmVhKHkpJiZ0aGlzLmRpc3BsYXlTd2l0Y2guaGlkZSgpfX0se2tleToib25Nb3VzZVVwIix2YWx1ZTpmdW5jdGlvbigp''@;'; + put 'put ''e3RoaXMucHJldmVudEVkaXRvckF1dG9Td2l0Y2g9ITF9fSx7a2V5OiJvbkFmdGVyUmVuZGVyZXIiLHZhbHVlOmZ1bmN0aW9uKHksQyl7Q1tSZ10mJkNbUmddW0hPXSYmTzAoeSxDLmNvbW1lbnRlZENlbGxDbGFzc05hbWUpfX0se2tleToib25FZGl0b3JCbHVyIix2YWx1ZTpmdW5jdGlvbigp''@;'; + put 'put ''e3RoaXMuc2V0Q29tbWVudCgpfX0se2tleToib25FZGl0b3JNb3VzZURvd24iLHZhbHVlOmZ1bmN0aW9uKHkpe1B0ZS5nZXQodGhpcykudGVtcEVkaXRvckRpbWVuc2lvbnM9e3dpZHRoOkUyKHkudGFyZ2V0KSxoZWlnaHQ6RDEoeS50YXJnZXQpfX19LHtrZXk6Im9uRWRpdG9yTW91c2VVcCIs''@;'; + put 'put ''dmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEM9UHRlLmdldCh0aGlzKSxJPUUyKHkudGFyZ2V0KSxqPUQxKHkudGFyZ2V0KTsoSSE9PUMudGVtcEVkaXRvckRpbWVuc2lvbnMud2lkdGgrMXx8aiE9PUMudGVtcEVkaXRvckRpbWVuc2lvbnMuaGVpZ2h0KzIpJiZ0aGlzLnVwZGF0ZUNvbW1lbnRNZXRh''@;'; + put 'put ''KHRoaXMucmFuZ2UuZnJvbS5yb3csdGhpcy5yYW5nZS5mcm9tLmNvbCxrOGUoe30sInN0eWxlIix7d2lkdGg6SSxoZWlnaHQ6an0pKX19LHtrZXk6Im9uQ29udGV4dE1lbnVBZGRDb21tZW50Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXMuaG90LmdldFNlbGVjdGVkUmFuZ2VMYXN0KCk7''@;'; + put 'put ''dGhpcy5wcmV2ZW50RWRpdG9yQXV0b1N3aXRjaD0hMCx0aGlzLmRpc3BsYXlTd2l0Y2guY2FuY2VsSGlkaW5nKCksdGhpcy5zZXRSYW5nZSh7ZnJvbTp5LmhpZ2hsaWdodH0pLHRoaXMuc2hvdygpLHRoaXMuaG90LmRlc2VsZWN0Q2VsbCgpLHRoaXMuZWRpdG9yLmZvY3VzKCl9fSx7a2V5OiJv''@;'; + put 'put ''bkNvbnRleHRNZW51UmVtb3ZlQ29tbWVudCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzLEM9dGhpcy5ob3QuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKTt0aGlzLnByZXZlbnRFZGl0b3JBdXRvU3dpdGNoPSEwLEMuZm9yQWxsKGZ1bmN0aW9uKEksail7ST49MCYmaj49MCYmeS5yZW1vdmVD''@;'; + put 'put ''b21tZW50QXRDZWxsKEksaiwhMSl9KSx0aGlzLmhvdC5yZW5kZXIoKX19LHtrZXk6Im9uQ29udGV4dE1lbnVNYWtlUmVhZE9ubHkiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcyxDPXRoaXMuaG90LmdldFNlbGVjdGVkUmFuZ2VMYXN0KCk7dGhpcy5wcmV2ZW50RWRpdG9yQXV0b1N3aXRj''@;'; + put 'put ''aD0hMCxDLmZvckFsbChmdW5jdGlvbihJLGope2lmKEk+PTAmJmo+PTApe3ZhciB1ZT0hIXkuZ2V0Q29tbWVudE1ldGEoSSxqLEZ0ZSk7eS51cGRhdGVDb21tZW50TWV0YShJLGosazhlKHt9LEZ0ZSwhdWUpKX19KX19LHtrZXk6ImFkZFRvQ29udGV4dE1lbnUiLHZhbHVlOmZ1bmN0aW9uKHkp''@;'; + put 'put ''e3ZhciBDPXRoaXMsST1mdW5jdGlvbigpe3JldHVybiBDLmhvdC5yb3dJbmRleE1hcHBlci5nZXRSZW5kZXJhYmxlSW5kZXhlc0xlbmd0aCgpPjAmJkMuaG90LmNvbHVtbkluZGV4TWFwcGVyLmdldFJlbmRlcmFibGVJbmRleGVzTGVuZ3RoKCk+MH07eS5pdGVtcy5wdXNoKHtuYW1lOiItLS0t''@;'; + put 'put ''LS0tLS0ifSx7a2V5OiJjb21tZW50c0FkZEVkaXQiLG5hbWU6ZnVuY3Rpb24oKXtyZXR1cm4gQy5jaGVja1NlbGVjdGlvbkNvbW1lbnRzQ29uc2lzdGVuY3koKT9DLmhvdC5nZXRUcmFuc2xhdGVkUGhyYXNlKGo0ZSk6Qy5ob3QuZ2V0VHJhbnNsYXRlZFBocmFzZShWNGUpfSxjYWxsYmFjazpm''@;'; + put 'put ''dW5jdGlvbigpe3JldHVybiBDLm9uQ29udGV4dE1lbnVBZGRDb21tZW50KCl9LGRpc2FibGVkOmZ1bmN0aW9uKCl7cmV0dXJuIUkoKXx8IShDLmhvdC5nZXRTZWxlY3RlZExhc3QoKSYmIUMuaG90LnNlbGVjdGlvbi5pc1NlbGVjdGVkQnlDb3JuZXIoKSl9fSx7a2V5OiJjb21tZW50c1JlbW92''@;'; + put 'put ''ZSIsbmFtZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmdldFRyYW5zbGF0ZWRQaHJhc2UoWjRlKX0sY2FsbGJhY2s6ZnVuY3Rpb24oKXtyZXR1cm4gQy5vbkNvbnRleHRNZW51UmVtb3ZlQ29tbWVudCgpfSxkaXNhYmxlZDpmdW5jdGlvbigpe3JldHVybiFJKCl8fCEoQy5ob3QuZ2V0U2VsZWN0''@;'; + put 'put ''ZWRMYXN0KCkmJiFDLmhvdC5zZWxlY3Rpb24uaXNTZWxlY3RlZEJ5Q29ybmVyKCkpfX0se2tleToiY29tbWVudHNSZWFkT25seSIsbmFtZTpmdW5jdGlvbigpe3ZhciB1ZT10aGlzLF9lPXRoaXMuZ2V0VHJhbnNsYXRlZFBocmFzZSh6NGUpO3JldHVybiBPZyh0aGlzLmdldFNlbGVjdGVkUmFu''@;'; + put 'put ''Z2VMYXN0KCksZnVuY3Rpb24oTmUsS2Upe3ZhciBkdD11ZS5nZXRDZWxsTWV0YShOZSxLZSlbUmddO2lmKGR0JiYoZHQ9ZHRbRnRlXSksZHQpcmV0dXJuITB9KSYmKF9lPUJ2KF9lKSksX2V9LGNhbGxiYWNrOmZ1bmN0aW9uKCl7cmV0dXJuIEMub25Db250ZXh0TWVudU1ha2VSZWFkT25seSgp''@;'; + put 'put ''fSxkaXNhYmxlZDpmdW5jdGlvbigpe3JldHVybiFJKCl8fCEoQy5ob3QuZ2V0U2VsZWN0ZWRMYXN0KCkmJiFDLmhvdC5zZWxlY3Rpb24uaXNTZWxlY3RlZEJ5Q29ybmVyKCkmJkMuY2hlY2tTZWxlY3Rpb25Db21tZW50c0NvbnNpc3RlbmN5KCkpfX0pfX0se2tleToiZ2V0RGlzcGxheURlbGF5''@;'; + put 'put ''U2V0dGluZyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzLmhvdC5nZXRTZXR0aW5ncygpW004ZV07aWYoeGwoeSkpcmV0dXJuIHkuZGlzcGxheURlbGF5fX0se2tleToiZGVzdHJveSIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmVkaXRvciYmdGhpcy5lZGl0b3IuZGVzdHJveSgpLHRoaXMu''@;'; + put 'put ''ZGlzcGxheVN3aXRjaCYmdGhpcy5kaXNwbGF5U3dpdGNoLmRlc3Ryb3koKSxLUyhQdihoLnByb3RvdHlwZSksImRlc3Ryb3kiLHRoaXMpLmNhbGwodGhpcyl9fV0sW3trZXk6IlBMVUdJTl9LRVkiLGdldDpmdW5jdGlvbigpe3JldHVybiBNOGV9fSx7a2V5OiJQTFVHSU5fUFJJT1JJVFkiLGdl''@;'; + put 'put ''dDpmdW5jdGlvbigpe3JldHVybiA2MH19XSksaH0oWXMpO2Z1bmN0aW9uIERFZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0h''@;'; + put 'put ''MCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fXZhciBVb3Q9ZnVuY3Rpb24oKXtmdW5jdGlvbiBkKGcpeyhmdW5jdGlvbiBXb3QoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24i''@;'; + put 'put ''KX0pKHRoaXMsZCksdGhpcy5ob3Q9Zyx0aGlzLmNvbW1hbmRzPXt9LHRoaXMuY29tbW9uQ2FsbGJhY2s9bnVsbH1yZXR1cm4gZnVuY3Rpb24gWW90KGQsZyxoKXtnJiZERWUoZC5wcm90b3R5cGUsZyksaCYmREVlKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dy''@;'; + put 'put ''aXRhYmxlOiExfSl9KGQsW3trZXk6InJlZ2lzdGVyQ29tbWFuZCIsdmFsdWU6ZnVuY3Rpb24oaCx2KXt0aGlzLmNvbW1hbmRzW2hdPXZ9fSx7a2V5OiJzZXRDb21tb25DYWxsYmFjayIsdmFsdWU6ZnVuY3Rpb24oaCl7dGhpcy5jb21tb25DYWxsYmFjaz1ofX0se2tleToiZXhlY3V0ZSIsdmFs''@;'; + put 'put ''dWU6ZnVuY3Rpb24oaCl7Zm9yKHZhciB2PXRoaXMseT1hcmd1bWVudHMubGVuZ3RoLEM9bmV3IEFycmF5KHk+MT95LTE6MCksST0xO0k8eTtJKyspQ1tJLTFdPWFyZ3VtZW50c1tJXTt2YXIgaj1oLnNwbGl0KCI6IiksdWU9alswXSxfZT0yPT09ai5sZW5ndGg/alsxXTpudWxsLEJlPXRoaXMu''@;'; + put 'put ''Y29tbWFuZHNbdWVdO2lmKCFCZSl0aHJvdyBuZXcgRXJyb3IoIk1lbnUgY29tbWFuZCAnIi5jb25jYXQodWUsIicgbm90IGV4aXN0cy4iKSk7aWYoX2UmJkJlLnN1Ym1lbnUmJihCZT1Rb3QoX2UsQmUuc3VibWVudS5pdGVtcykpLCEwIT09QmUuZGlzYWJsZWQmJigiZnVuY3Rpb24iIT10eXBl''@;'; + put 'put ''b2YgQmUuZGlzYWJsZWR8fCEwIT09QmUuZGlzYWJsZWQuY2FsbCh0aGlzLmhvdCkpJiYhbzEoQmUsInN1Ym1lbnUiKSl7dmFyIE5lPVtdOyJmdW5jdGlvbiI9PXR5cGVvZiBCZS5jYWxsYmFjayYmTmUucHVzaChCZS5jYWxsYmFjayksImZ1bmN0aW9uIj09dHlwZW9mIHRoaXMuY29tbW9uQ2Fs''@;'; + put 'put ''bGJhY2smJk5lLnB1c2godGhpcy5jb21tb25DYWxsYmFjayksQy51bnNoaWZ0KGouam9pbigiOiIpKSxVcihOZSxmdW5jdGlvbihLZSl7cmV0dXJuIEtlLmFwcGx5KHYuaG90LEMpfSl9fX1dKSxkfSgpO2Z1bmN0aW9uIFFvdChkLGcpe3ZhciBoO3JldHVybiBVcihnLGZ1bmN0aW9uKHYpe3Zh''@;'; + put 'put ''ciB5PXYua2V5P3Yua2V5LnNwbGl0KCI6Iik6bnVsbDtpZihBcnJheS5pc0FycmF5KHkpJiZ5WzFdPT09ZClyZXR1cm4gaD12LCExfSksaH1jb25zdCBMRWU9VW90O3ZhciBQcD0iYWxpZ25tZW50IixIdGU9ImNsZWFyX2NvbHVtbiIsdno9ImNvbF9sZWZ0IixBej0iY29sX3JpZ2h0Iix5ej0i''@;'; + put 'put ''bWFrZV9yZWFkX29ubHkiLE50ZT0icmVkbyI7ZnVuY3Rpb24gT0VlKGQsZyl7KG51bGw9PWd8fGc+ZC5sZW5ndGgpJiYoZz1kLmxlbmd0aCk7Zm9yKHZhciBoPTAsdj1uZXcgQXJyYXkoZyk7aDxnO2grKyl2W2hdPWRbaF07cmV0dXJuIHZ9dmFyIHd6PSJyZW1vdmVfY29sIjtmdW5jdGlvbiBS''@;'; + put 'put ''RWUoZCxnKXsobnVsbD09Z3x8Zz5kLmxlbmd0aCkmJihnPWQubGVuZ3RoKTtmb3IodmFyIGg9MCx2PW5ldyBBcnJheShnKTtoPGc7aCsrKXZbaF09ZFtoXTtyZXR1cm4gdn12YXIgczMsVnRlPSJyZW1vdmVfcm93IixqdGU9InJvd19hYm92ZSIsWnRlPSJyb3dfYmVsb3ciLGJ6PSJub19pdGVt''@;'; + put 'put ''cyIsenRlPSJ1bmRvIjtmdW5jdGlvbiB5NChkLGcsaCl7cmV0dXJuIGcgaW4gZD9PYmplY3QuZGVmaW5lUHJvcGVydHkoZCxnLHt2YWx1ZTpoLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZFtnXT1oLGR9dmFyIEJFZT1banRlLFp0ZSx2eixBeixIdGUsVnRl''@;'; + put 'put ''LHd6LHp0ZSxOdGUseXosUHAsV2wsYnpdLFBFZT0oeTQoczM9e30sV2wsZnVuY3Rpb24gYm90KCl7cmV0dXJue25hbWU6V2x9fSkseTQoczMsYnosZnVuY3Rpb24gZ2F0KCl7cmV0dXJue2tleTpieixuYW1lOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0VHJhbnNsYXRlZFBocmFzZShDNGUp''@;'; + put 'put ''fSxkaXNhYmxlZDohMCxpc0NvbW1hbmQ6ITF9fSkseTQoczMsanRlLGZ1bmN0aW9uIGRhdCgpe3JldHVybntrZXk6anRlLG5hbWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXRUcmFuc2xhdGVkUGhyYXNlKGs0ZSl9LGNhbGxiYWNrOmZ1bmN0aW9uKGcsaCl7dmFyIHY9dGhpcy5zZWxlY3Rp''@;'; + put 'put ''b24uaXNTZWxlY3RlZEJ5Q29ybmVyKCkseT0wO3Z8fCh5PWhbTWF0aC5tYXgoaC5sZW5ndGgtMSwwKV0uc3RhcnQucm93KSx0aGlzLmFsdGVyKCJpbnNlcnRfcm93Iix5LDEsIkNvbnRleHRNZW51LnJvd0Fib3ZlIiksdiYmdGhpcy5zZWxlY3RBbGwoKX0sZGlzYWJsZWQ6ZnVuY3Rpb24oKXty''@;'; + put 'put ''ZXR1cm4hSlModGhpcyl8fCh0aGlzLnNlbGVjdGlvbi5pc1NlbGVjdGVkQnlDb3JuZXIoKT8wPT09dGhpcy5jb3VudFJvd3MoKTp0aGlzLnNlbGVjdGlvbi5pc1NlbGVjdGVkQnlDb2x1bW5IZWFkZXIoKXx8dGhpcy5jb3VudFJvd3MoKT49dGhpcy5nZXRTZXR0aW5ncygpLm1heFJvd3MpfSxo''@;'; + put 'put ''aWRkZW46ZnVuY3Rpb24oKXtyZXR1cm4hdGhpcy5nZXRTZXR0aW5ncygpLmFsbG93SW5zZXJ0Um93fX19KSx5NChzMyxadGUsZnVuY3Rpb24gcGF0KCl7cmV0dXJue2tleTpadGUsbmFtZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmdldFRyYW5zbGF0ZWRQaHJhc2UoUzRlKX0sY2FsbGJhY2s6''@;'; + put 'put ''ZnVuY3Rpb24oZyxoKXt2YXIgdj10aGlzLnNlbGVjdGlvbi5pc1NlbGVjdGVkQnlDb3JuZXIoKSx5PTA7aWYodil5PXRoaXMuY291bnRSb3dzKCk7ZWxzZXt2YXIgQyxJPWhbTWF0aC5tYXgoaC5sZW5ndGgtMSwwKV0saj1udWxsPT1JfHxudWxsPT09KEM9SS5lbmQpfHx2b2lkIDA9PT1DP3Zv''@;'; + put 'put ''aWQgMDpDLnJvdzt5PVRvKGopP2orMTowfXRoaXMuYWx0ZXIoImluc2VydF9yb3ciLHksMSwiQ29udGV4dE1lbnUucm93QmVsb3ciKSx2JiZ0aGlzLnNlbGVjdEFsbCgpfSxkaXNhYmxlZDpmdW5jdGlvbigpe3JldHVybiFKUyh0aGlzKXx8IXRoaXMuc2VsZWN0aW9uLmlzU2VsZWN0ZWRCeUNv''@;'; + put 'put ''cm5lcigpJiYodGhpcy5zZWxlY3Rpb24uaXNTZWxlY3RlZEJ5Q29sdW1uSGVhZGVyKCl8fHRoaXMuY291bnRSb3dzKCk+PXRoaXMuZ2V0U2V0dGluZ3MoKS5tYXhSb3dzKX0saGlkZGVuOmZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMuZ2V0U2V0dGluZ3MoKS5hbGxvd0luc2VydFJvd319fSkseTQo''@;'; + put 'put ''czMsdnosZnVuY3Rpb24gS290KCl7cmV0dXJue2tleTp2eixuYW1lOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0VHJhbnNsYXRlZFBocmFzZShNNGUpfSxjYWxsYmFjazpmdW5jdGlvbigpe3ZhciBnPXRoaXMuc2VsZWN0aW9uLmlzU2VsZWN0ZWRCeUNvcm5lcigpLGg9dGhpcy5pc1J0bCgp''@;'; + put 'put ''P3RoaXMuY291bnRDb2xzKCk6MDtpZighZyl7dmFyIHY9dGhpcy5nZXRTZWxlY3RlZFJhbmdlTGFzdCgpO2lmKFRvKHYpKXt2YXIgQz12LmdldFRvcExlZnRDb3JuZXIoKS5jb2w7aD10aGlzLmlzUnRsKCk/QysxOkN9fXRoaXMuYWx0ZXIoImluc2VydF9jb2wiLGgsMSwiQ29udGV4dE1lbnUu''@;'; + put 'put ''Y29sdW1uTGVmdCIpLGcmJnRoaXMuc2VsZWN0QWxsKCl9LGRpc2FibGVkOmZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMuaXNDb2x1bW5Nb2RpZmljYXRpb25BbGxvd2VkKCl8fCFKUyh0aGlzKXx8KHRoaXMuc2VsZWN0aW9uLmlzU2VsZWN0ZWRCeUNvcm5lcigpPzA9PT10aGlzLmNvdW50Q29scygp''@;'; + put 'put ''OnRoaXMuc2VsZWN0aW9uLmlzU2VsZWN0ZWRCeVJvd0hlYWRlcigpfHx0aGlzLmNvdW50Q29scygpPj10aGlzLmdldFNldHRpbmdzKCkubWF4Q29scyl9LGhpZGRlbjpmdW5jdGlvbigpe3JldHVybiF0aGlzLmdldFNldHRpbmdzKCkuYWxsb3dJbnNlcnRDb2x1bW59fX0pLHk0KHMzLEF6LGZ1''@;'; + put 'put ''bmN0aW9uICRvdCgpe3JldHVybntrZXk6QXosbmFtZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmdldFRyYW5zbGF0ZWRQaHJhc2UoRTRlKX0sY2FsbGJhY2s6ZnVuY3Rpb24oKXt2YXIgZz10aGlzLnNlbGVjdGlvbi5pc1NlbGVjdGVkQnlDb3JuZXIoKSxoPXRoaXMuaXNSdGwoKT8wOnRoaXMu''@;'; + put 'put ''Y291bnRDb2xzKCk7aWYoIWcpe3ZhciB2PXRoaXMuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKTtpZihUbyh2KSl7dmFyIEM9di5nZXRUb3BSaWdodENvcm5lcigpLmNvbDtoPXRoaXMuaXNSdGwoKT9DOkMrMX19dGhpcy5hbHRlcigiaW5zZXJ0X2NvbCIsaCwxLCJDb250ZXh0TWVudS5jb2x1bW5S''@;'; + put 'put ''aWdodCIpLGcmJnRoaXMuc2VsZWN0QWxsKCl9LGRpc2FibGVkOmZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMuaXNDb2x1bW5Nb2RpZmljYXRpb25BbGxvd2VkKCl8fCFKUyh0aGlzKXx8IXRoaXMuc2VsZWN0aW9uLmlzU2VsZWN0ZWRCeUNvcm5lcigpJiYodGhpcy5zZWxlY3Rpb24uaXNTZWxlY3Rl''@;'; + put 'put ''ZEJ5Um93SGVhZGVyKCl8fHRoaXMuY291bnRDb2xzKCk+PXRoaXMuZ2V0U2V0dGluZ3MoKS5tYXhDb2xzKX0saGlkZGVuOmZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMuZ2V0U2V0dGluZ3MoKS5hbGxvd0luc2VydENvbHVtbn19fSkseTQoczMsSHRlLGZ1bmN0aW9uIFhvdCgpe3JldHVybntrZXk6''@;'; + put 'put ''SHRlLG5hbWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXRUcmFuc2xhdGVkUGhyYXNlKE80ZSl9LGNhbGxiYWNrOmZ1bmN0aW9uKGcsaCl7dmFyIHY9aFswXS5zdGFydC5jb2wseT1oWzBdLmVuZC5jb2w7dGhpcy5jb3VudFJvd3MoKSYmdGhpcy5wb3B1bGF0ZUZyb21BcnJheSgwLHYsW1tu''@;'; + put 'put ''dWxsXV0sTWF0aC5tYXgoaFswXS5zdGFydC5yb3csaFswXS5lbmQucm93KSx5LCJDb250ZXh0TWVudS5jbGVhckNvbHVtbiIpfSxkaXNhYmxlZDpmdW5jdGlvbigpe3JldHVybiFKUyh0aGlzKXx8IXRoaXMuc2VsZWN0aW9uLmlzU2VsZWN0ZWRCeUNvbHVtbkhlYWRlcigpfX19KSx5NChzMyxW''@;'; + put 'put ''dGUsZnVuY3Rpb24gaGF0KCl7cmV0dXJue2tleTpWdGUsbmFtZTpmdW5jdGlvbigpe3ZhciBnPXRoaXMuZ2V0U2VsZWN0ZWQoKSxoPTA7aWYoZylpZihnLmxlbmd0aD4xKWg9MTtlbHNle3ZhciB2PWZ1bmN0aW9uIGxhdChkLGcpe3JldHVybiBmdW5jdGlvbiBmYXQoZCl7aWYoQXJyYXkuaXNB''@;'; + put 'put ''cnJheShkKSlyZXR1cm4gZH0oZCl8fGZ1bmN0aW9uIGNhdChkLGcpe3ZhciBoPW51bGw9PWQ/bnVsbDoidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmZFtTeW1ib2wuaXRlcmF0b3JdfHxkWyJAQGl0ZXJhdG9yIl07aWYobnVsbCE9aCl7dmFyIEksaix2PVtdLHk9ITAsQz0hMTt0cnl7Zm9y''@;'; + put 'put ''KGg9aC5jYWxsKGQpOyEoeT0oST1oLm5leHQoKSkuZG9uZSkmJih2LnB1c2goSS52YWx1ZSksIWd8fHYubGVuZ3RoIT09Zyk7eT0hMCk7fWNhdGNoKHVlKXtDPSEwLGo9dWV9ZmluYWxseXt0cnl7IXkmJm51bGwhPWgucmV0dXJuJiZoLnJldHVybigpfWZpbmFsbHl7aWYoQyl0aHJvdyBqfX1y''@;'; + put 'put ''ZXR1cm4gdn19KGQsZyl8fGZ1bmN0aW9uIHVhdChkLGcpe2lmKGQpe2lmKCJzdHJpbmciPT10eXBlb2YgZClyZXR1cm4gUkVlKGQsZyk7dmFyIGg9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGQpLnNsaWNlKDgsLTEpO2lmKCJPYmplY3QiPT09aCYmZC5jb25zdHJ1Y3RvciYmKGg9''@;'; + put 'put ''ZC5jb25zdHJ1Y3Rvci5uYW1lKSwiTWFwIj09PWh8fCJTZXQiPT09aClyZXR1cm4gQXJyYXkuZnJvbShkKTtpZigiQXJndW1lbnRzIj09PWh8fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KGgpKXJldHVybiBSRWUoZCxnKX19KGQsZyl8fGZ1bmN0aW9u''@;'; + put 'put ''IHNhdCgpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2Qu''@;'; + put 'put ''Iil9KCl9KGdbMF0sMyk7dlswXS12WzJdIT0wJiYoaD0xKX1yZXR1cm4gdGhpcy5nZXRUcmFuc2xhdGVkUGhyYXNlKHg0ZSxoKX0sY2FsbGJhY2s6ZnVuY3Rpb24oKXt0aGlzLmFsdGVyKCJyZW1vdmVfcm93IixmdW5jdGlvbiBBJGUoZCl7dmFyIGc9X08oZCk7aWYoMD09PWd8fDE9PT1nKXJl''@;'; + put 'put ''dHVybltdO3ZhciBoPXV6KGcpLHY9bmV3IFNldDtyZXR1cm4gVXIoZCxmdW5jdGlvbihJKXt2YXIgdWU9dFNlKGgoSSksMyksQmU9dWVbMl0sTmU9TWF0aC5tYXgodWVbMF0sMCk7VXIoQXJyYXkuZnJvbShuZXcgQXJyYXkoQmUtTmUrMSksZnVuY3Rpb24oZHQsT3Qpe3JldHVybiBOZStPdH0p''@;'; + put 'put ''LGZ1bmN0aW9uKGR0KXt2LmhhcyhkdCl8fHYuYWRkKGR0KX0pfSksU3UoQXJyYXkuZnJvbSh2KS5zb3J0KGZ1bmN0aW9uKEksail7cmV0dXJuIEktan0pLGZ1bmN0aW9uKEksaix1ZSxfZSl7cmV0dXJuIDAhPT11ZSYmaj09PV9lW3VlLTFdKzE/SVtJLmxlbmd0aC0xXVsxXSs9MTpJLnB1c2go''@;'; + put 'put ''W2osMV0pLEl9LFtdKX0odGhpcy5nZXRTZWxlY3RlZCgpKSwxLCJDb250ZXh0TWVudS5yZW1vdmVSb3ciKX0sZGlzYWJsZWQ6ZnVuY3Rpb24oKXtpZighSlModGhpcykpcmV0dXJuITA7dmFyIGg9dGhpcy5jb3VudFJvd3MoKTtyZXR1cm4gdGhpcy5zZWxlY3Rpb24uaXNTZWxlY3RlZEJ5Q29y''@;'; + put 'put ''bmVyKCk/MD09PWg6dGhpcy5zZWxlY3Rpb24uaXNTZWxlY3RlZEJ5Q29sdW1uSGVhZGVyKCl8fDA9PT1ofSxoaWRkZW46ZnVuY3Rpb24oKXtyZXR1cm4hdGhpcy5nZXRTZXR0aW5ncygpLmFsbG93UmVtb3ZlUm93fX19KSx5NChzMyx3eixmdW5jdGlvbiBhYXQoKXtyZXR1cm57a2V5Ond6LG5h''@;'; + put 'put ''bWU6ZnVuY3Rpb24oKXt2YXIgZz10aGlzLmdldFNlbGVjdGVkKCksaD0wO2lmKGcpaWYoZy5sZW5ndGg+MSloPTE7ZWxzZXt2YXIgdj1mdW5jdGlvbiB0YXQoZCxnKXtyZXR1cm4gZnVuY3Rpb24gb2F0KGQpe2lmKEFycmF5LmlzQXJyYXkoZCkpcmV0dXJuIGR9KGQpfHxmdW5jdGlvbiBpYXQo''@;'; + put 'put ''ZCxnKXt2YXIgaD1udWxsPT1kP251bGw6InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJmRbU3ltYm9sLml0ZXJhdG9yXXx8ZFsiQEBpdGVyYXRvciJdO2lmKG51bGwhPWgpe3ZhciBJLGosdj1bXSx5PSEwLEM9ITE7dHJ5e2ZvcihoPWguY2FsbChkKTshKHk9KEk9aC5uZXh0KCkpLmRvbmUp''@;'; + put 'put ''JiYodi5wdXNoKEkudmFsdWUpLCFnfHx2Lmxlbmd0aCE9PWcpO3k9ITApO31jYXRjaCh1ZSl7Qz0hMCxqPXVlfWZpbmFsbHl7dHJ5eyF5JiZudWxsIT1oLnJldHVybiYmaC5yZXR1cm4oKX1maW5hbGx5e2lmKEMpdGhyb3cgan19cmV0dXJuIHZ9fShkLGcpfHxmdW5jdGlvbiByYXQoZCxnKXtp''@;'; + put 'put ''ZihkKXtpZigic3RyaW5nIj09dHlwZW9mIGQpcmV0dXJuIE9FZShkLGcpO3ZhciBoPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChkKS5zbGljZSg4LC0xKTtpZigiT2JqZWN0Ij09PWgmJmQuY29uc3RydWN0b3ImJihoPWQuY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1ofHwiU2V0''@;'; + put 'put ''Ij09PWgpcmV0dXJuIEFycmF5LmZyb20oZCk7aWYoIkFyZ3VtZW50cyI9PT1ofHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChoKSlyZXR1cm4gT0VlKGQsZyl9fShkLGcpfHxmdW5jdGlvbiBuYXQoKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlk''@;'; + put 'put ''IGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfShnWzBdLDQpO3ZbMV0tdlszXSE9MCYmKGg9MSl9''@;'; + put 'put ''cmV0dXJuIHRoaXMuZ2V0VHJhbnNsYXRlZFBocmFzZShUNGUsaCl9LGNhbGxiYWNrOmZ1bmN0aW9uKCl7dGhpcy5hbHRlcigicmVtb3ZlX2NvbCIsZnVuY3Rpb24gdiRlKGQpe3ZhciBnPV9PKGQpO2lmKDA9PT1nfHwxPT09ZylyZXR1cm5bXTt2YXIgaD11eihnKSx2PW5ldyBTZXQ7cmV0dXJu''@;'; + put 'put ''IFVyKGQsZnVuY3Rpb24oSSl7dmFyIHVlPXRTZShoKEkpLDQpLEJlPXVlWzNdLE5lPU1hdGgubWF4KHVlWzFdLDApO1VyKEFycmF5LmZyb20obmV3IEFycmF5KEJlLU5lKzEpLGZ1bmN0aW9uKGR0LE90KXtyZXR1cm4gTmUrT3R9KSxmdW5jdGlvbihkdCl7di5oYXMoZHQpfHx2LmFkZChkdCl9''@;'; + put 'put ''KX0pLFN1KEFycmF5LmZyb20odikuc29ydChmdW5jdGlvbihJLGope3JldHVybiBJLWp9KSxmdW5jdGlvbihJLGosdWUsX2Upe3JldHVybiAwIT09dWUmJmo9PT1fZVt1ZS0xXSsxP0lbSS5sZW5ndGgtMV1bMV0rPTE6SS5wdXNoKFtqLDFdKSxJfSxbXSl9KHRoaXMuZ2V0U2VsZWN0ZWQoKSks''@;'; + put 'put ''bnVsbCwiQ29udGV4dE1lbnUucmVtb3ZlQ29sdW1uIil9LGRpc2FibGVkOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaXNDb2x1bW5Nb2RpZmljYXRpb25BbGxvd2VkKCkpcmV0dXJuITA7aWYoIUpTKHRoaXMpKXJldHVybiEwO3ZhciBoPXRoaXMuY291bnRDb2xzKCk7cmV0dXJuIHRoaXMuc2VsZWN0''@;'; + put 'put ''aW9uLmlzU2VsZWN0ZWRCeUNvcm5lcigpPzA9PT1oOnRoaXMuc2VsZWN0aW9uLmlzU2VsZWN0ZWRCeVJvd0hlYWRlcigpfHwwPT09aH0saGlkZGVuOmZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMuZ2V0U2V0dGluZ3MoKS5hbGxvd1JlbW92ZUNvbHVtbn19fSkseTQoczMsenRlLGZ1bmN0aW9uIG1h''@;'; + put 'put ''dCgpe3JldHVybntrZXk6enRlLG5hbWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXRUcmFuc2xhdGVkUGhyYXNlKEk0ZSl9LGNhbGxiYWNrOmZ1bmN0aW9uKCl7dGhpcy51bmRvKCl9LGhpZGRlbjpmdW5jdGlvbigpe3ZhciBnPXRoaXMuZ2V0UGx1Z2luKCJ1bmRvUmVkbyIpO3JldHVybiFn''@;'; + put 'put ''fHwhZy5pc0VuYWJsZWQoKX0sZGlzYWJsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4hdGhpcy5nZXRQbHVnaW4oInVuZG9SZWRvIikuaXNVbmRvQXZhaWxhYmxlKCl9fX0pLHk0KHMzLE50ZSxmdW5jdGlvbiBlYXQoKXtyZXR1cm57a2V5Ok50ZSxuYW1lOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0''@;'; + put 'put ''VHJhbnNsYXRlZFBocmFzZShENGUpfSxjYWxsYmFjazpmdW5jdGlvbigpe3RoaXMucmVkbygpfSxoaWRkZW46ZnVuY3Rpb24oKXt2YXIgZz10aGlzLmdldFBsdWdpbigidW5kb1JlZG8iKTtyZXR1cm4hZ3x8IWcuaXNFbmFibGVkKCl9LGRpc2FibGVkOmZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMu''@;'; + put 'put ''Z2V0UGx1Z2luKCJ1bmRvUmVkbyIpLmlzUmVkb0F2YWlsYWJsZSgpfX19KSx5NChzMyx5eixmdW5jdGlvbiBxb3QoKXtyZXR1cm57a2V5Onl6LG5hbWU6ZnVuY3Rpb24oKXt2YXIgZz10aGlzLGg9dGhpcy5nZXRUcmFuc2xhdGVkUGhyYXNlKEw0ZSk7cmV0dXJuIE9nKHRoaXMuZ2V0U2VsZWN0''@;'; + put 'put ''ZWRSYW5nZSgpLGZ1bmN0aW9uKHksQyl7cmV0dXJuIGcuZ2V0Q2VsbE1ldGEoeSxDKS5yZWFkT25seX0pJiYoaD1CdihoKSksaH0sY2FsbGJhY2s6ZnVuY3Rpb24oKXt2YXIgZz10aGlzLGg9dGhpcy5nZXRTZWxlY3RlZFJhbmdlKCksdj1PZyhoLGZ1bmN0aW9uKHksQyl7cmV0dXJuIGcuZ2V0''@;'; + put 'put ''Q2VsbE1ldGEoeSxDKS5yZWFkT25seX0pO1VyKGgsZnVuY3Rpb24oeSl7eS5mb3JBbGwoZnVuY3Rpb24oQyxJKXtDPj0wJiZJPj0wJiZnLnNldENlbGxNZXRhKEMsSSwicmVhZE9ubHkiLCF2KX0pfSksdGhpcy5yZW5kZXIoKX0sZGlzYWJsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4hKCF0aGlzLnNl''@;'; + put 'put ''bGVjdGlvbi5pc1NlbGVjdGVkQnlDb3JuZXIoKSYmMCE9PXRoaXMuY291bnRSb3dzKCkmJjAhPT10aGlzLmNvdW50Q29scygpJiZ0aGlzLmdldFNlbGVjdGVkUmFuZ2UoKSYmMCE9PXRoaXMuZ2V0U2VsZWN0ZWRSYW5nZSgpLmxlbmd0aCl9fX0pLHk0KHMzLFBwLGZ1bmN0aW9uIEpvdCgpe3Jl''@;'; + put 'put ''dHVybntrZXk6UHAsbmFtZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmdldFRyYW5zbGF0ZWRQaHJhc2UoRzRlKX0sZGlzYWJsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gMD09PXRoaXMuY291bnRSb3dzKCl8fDA9PT10aGlzLmNvdW50Q29scygpfHwhKHRoaXMuZ2V0U2VsZWN0ZWRSYW5nZSgpJiYh''@;'; + put 'put ''dGhpcy5zZWxlY3Rpb24uaXNTZWxlY3RlZEJ5Q29ybmVyKCkpfSxzdWJtZW51OntpdGVtczpbe2tleToiIi5jb25jYXQoUHAsIjpsZWZ0IiksbmFtZTpmdW5jdGlvbigpe3ZhciBnPXRoaXMsaD10aGlzLmdldFRyYW5zbGF0ZWRQaHJhc2UoVzRlKTtyZXR1cm4gT2codGhpcy5nZXRTZWxlY3Rl''@;'; + put 'put ''ZFJhbmdlKCksZnVuY3Rpb24oeSxDKXt2YXIgST1nLmdldENlbGxNZXRhKHksQykuY2xhc3NOYW1lO2lmKEkmJi0xIT09SS5pbmRleE9mKCJodExlZnQiKSlyZXR1cm4hMH0pJiYoaD1CdihoKSksaH0sY2FsbGJhY2s6ZnVuY3Rpb24oKXt2YXIgZz10aGlzLGg9dGhpcy5nZXRTZWxlY3RlZFJh''@;'; + put 'put ''bmdlKCksdj1YUyhoLGZ1bmN0aW9uKEksail7cmV0dXJuIGcuZ2V0Q2VsbE1ldGEoSSxqKS5jbGFzc05hbWV9KSx5PSJob3Jpem9udGFsIixDPSJodExlZnQiO3RoaXMucnVuSG9va3MoImJlZm9yZUNlbGxBbGlnbm1lbnQiLHYsaCx5LEMpLEh3KGgseSxDLGZ1bmN0aW9uKEksail7cmV0dXJu''@;'; + put 'put ''IGcuZ2V0Q2VsbE1ldGEoSSxqKX0sZnVuY3Rpb24oSSxqLHVlLF9lKXtyZXR1cm4gZy5zZXRDZWxsTWV0YShJLGosdWUsX2UpfSksdGhpcy5yZW5kZXIoKX0sZGlzYWJsZWQ6ITF9LHtrZXk6IiIuY29uY2F0KFBwLCI6Y2VudGVyIiksbmFtZTpmdW5jdGlvbigpe3ZhciBnPXRoaXMsaD10aGlz''@;'; + put 'put ''LmdldFRyYW5zbGF0ZWRQaHJhc2UoWTRlKTtyZXR1cm4gT2codGhpcy5nZXRTZWxlY3RlZFJhbmdlKCksZnVuY3Rpb24oeSxDKXt2YXIgST1nLmdldENlbGxNZXRhKHksQykuY2xhc3NOYW1lO2lmKEkmJi0xIT09SS5pbmRleE9mKCJodENlbnRlciIpKXJldHVybiEwfSkmJihoPUJ2KGgpKSxo''@;'; + put 'put ''fSxjYWxsYmFjazpmdW5jdGlvbigpe3ZhciBnPXRoaXMsaD10aGlzLmdldFNlbGVjdGVkUmFuZ2UoKSx2PVhTKGgsZnVuY3Rpb24oSSxqKXtyZXR1cm4gZy5nZXRDZWxsTWV0YShJLGopLmNsYXNzTmFtZX0pLHk9Imhvcml6b250YWwiLEM9Imh0Q2VudGVyIjt0aGlzLnJ1bkhvb2tzKCJiZWZv''@;'; + put 'put ''cmVDZWxsQWxpZ25tZW50Iix2LGgseSxDKSxIdyhoLHksQyxmdW5jdGlvbihJLGope3JldHVybiBnLmdldENlbGxNZXRhKEksail9LGZ1bmN0aW9uKEksaix1ZSxfZSl7cmV0dXJuIGcuc2V0Q2VsbE1ldGEoSSxqLHVlLF9lKX0pLHRoaXMucmVuZGVyKCl9LGRpc2FibGVkOiExfSx7a2V5OiIi''@;'; + put 'put ''LmNvbmNhdChQcCwiOnJpZ2h0IiksbmFtZTpmdW5jdGlvbigpe3ZhciBnPXRoaXMsaD10aGlzLmdldFRyYW5zbGF0ZWRQaHJhc2UoVTRlKTtyZXR1cm4gT2codGhpcy5nZXRTZWxlY3RlZFJhbmdlKCksZnVuY3Rpb24oeSxDKXt2YXIgST1nLmdldENlbGxNZXRhKHksQykuY2xhc3NOYW1lO2lm''@;'; + put 'put ''KEkmJi0xIT09SS5pbmRleE9mKCJodFJpZ2h0IikpcmV0dXJuITB9KSYmKGg9QnYoaCkpLGh9LGNhbGxiYWNrOmZ1bmN0aW9uKCl7dmFyIGc9dGhpcyxoPXRoaXMuZ2V0U2VsZWN0ZWRSYW5nZSgpLHY9WFMoaCxmdW5jdGlvbihJLGope3JldHVybiBnLmdldENlbGxNZXRhKEksaikuY2xhc3NO''@;'; + put 'put ''YW1lfSkseT0iaG9yaXpvbnRhbCIsQz0iaHRSaWdodCI7dGhpcy5ydW5Ib29rcygiYmVmb3JlQ2VsbEFsaWdubWVudCIsdixoLHksQyksSHcoaCx5LEMsZnVuY3Rpb24oSSxqKXtyZXR1cm4gZy5nZXRDZWxsTWV0YShJLGopfSxmdW5jdGlvbihJLGosdWUsX2Upe3JldHVybiBnLnNldENlbGxN''@;'; + put 'put ''ZXRhKEksaix1ZSxfZSl9KSx0aGlzLnJlbmRlcigpfSxkaXNhYmxlZDohMX0se2tleToiIi5jb25jYXQoUHAsIjpqdXN0aWZ5IiksbmFtZTpmdW5jdGlvbigpe3ZhciBnPXRoaXMsaD10aGlzLmdldFRyYW5zbGF0ZWRQaHJhc2UoUTRlKTtyZXR1cm4gT2codGhpcy5nZXRTZWxlY3RlZFJhbmdl''@;'; + put 'put ''KCksZnVuY3Rpb24oeSxDKXt2YXIgST1nLmdldENlbGxNZXRhKHksQykuY2xhc3NOYW1lO2lmKEkmJi0xIT09SS5pbmRleE9mKCJodEp1c3RpZnkiKSlyZXR1cm4hMH0pJiYoaD1CdihoKSksaH0sY2FsbGJhY2s6ZnVuY3Rpb24oKXt2YXIgZz10aGlzLGg9dGhpcy5nZXRTZWxlY3RlZFJhbmdl''@;'; + put 'put ''KCksdj1YUyhoLGZ1bmN0aW9uKEksail7cmV0dXJuIGcuZ2V0Q2VsbE1ldGEoSSxqKS5jbGFzc05hbWV9KSx5PSJob3Jpem9udGFsIixDPSJodEp1c3RpZnkiO3RoaXMucnVuSG9va3MoImJlZm9yZUNlbGxBbGlnbm1lbnQiLHYsaCx5LEMpLEh3KGgseSxDLGZ1bmN0aW9uKEksail7cmV0dXJu''@;'; + put 'put ''IGcuZ2V0Q2VsbE1ldGEoSSxqKX0sZnVuY3Rpb24oSSxqLHVlLF9lKXtyZXR1cm4gZy5zZXRDZWxsTWV0YShJLGosdWUsX2UpfSksdGhpcy5yZW5kZXIoKX0sZGlzYWJsZWQ6ITF9LHtuYW1lOldsfSx7a2V5OiIiLmNvbmNhdChQcCwiOnRvcCIpLG5hbWU6ZnVuY3Rpb24oKXt2YXIgZz10aGlz''@;'; + put 'put ''LGg9dGhpcy5nZXRUcmFuc2xhdGVkUGhyYXNlKEo0ZSk7cmV0dXJuIE9nKHRoaXMuZ2V0U2VsZWN0ZWRSYW5nZSgpLGZ1bmN0aW9uKHksQyl7dmFyIEk9Zy5nZXRDZWxsTWV0YSh5LEMpLmNsYXNzTmFtZTtpZihJJiYtMSE9PUkuaW5kZXhPZigiaHRUb3AiKSlyZXR1cm4hMH0pJiYoaD1Cdiho''@;'; + put 'put ''KSksaH0sY2FsbGJhY2s6ZnVuY3Rpb24oKXt2YXIgZz10aGlzLGg9dGhpcy5nZXRTZWxlY3RlZFJhbmdlKCksdj1YUyhoLGZ1bmN0aW9uKEksail7cmV0dXJuIGcuZ2V0Q2VsbE1ldGEoSSxqKS5jbGFzc05hbWV9KSx5PSJ2ZXJ0aWNhbCIsQz0iaHRUb3AiO3RoaXMucnVuSG9va3MoImJlZm9y''@;'; + put 'put ''ZUNlbGxBbGlnbm1lbnQiLHYsaCx5LEMpLEh3KGgseSxDLGZ1bmN0aW9uKEksail7cmV0dXJuIGcuZ2V0Q2VsbE1ldGEoSSxqKX0sZnVuY3Rpb24oSSxqLHVlLF9lKXtyZXR1cm4gZy5zZXRDZWxsTWV0YShJLGosdWUsX2UpfSksdGhpcy5yZW5kZXIoKX0sZGlzYWJsZWQ6ITF9LHtrZXk6IiIu''@;'; + put 'put ''Y29uY2F0KFBwLCI6bWlkZGxlIiksbmFtZTpmdW5jdGlvbigpe3ZhciBnPXRoaXMsaD10aGlzLmdldFRyYW5zbGF0ZWRQaHJhc2UoWDRlKTtyZXR1cm4gT2codGhpcy5nZXRTZWxlY3RlZFJhbmdlKCksZnVuY3Rpb24oeSxDKXt2YXIgST1nLmdldENlbGxNZXRhKHksQykuY2xhc3NOYW1lO2lm''@;'; + put 'put ''KEkmJi0xIT09SS5pbmRleE9mKCJodE1pZGRsZSIpKXJldHVybiEwfSkmJihoPUJ2KGgpKSxofSxjYWxsYmFjazpmdW5jdGlvbigpe3ZhciBnPXRoaXMsaD10aGlzLmdldFNlbGVjdGVkUmFuZ2UoKSx2PVhTKGgsZnVuY3Rpb24oSSxqKXtyZXR1cm4gZy5nZXRDZWxsTWV0YShJLGopLmNsYXNz''@;'; + put 'put ''TmFtZX0pLHk9InZlcnRpY2FsIixDPSJodE1pZGRsZSI7dGhpcy5ydW5Ib29rcygiYmVmb3JlQ2VsbEFsaWdubWVudCIsdixoLHksQyksSHcoaCx5LEMsZnVuY3Rpb24oSSxqKXtyZXR1cm4gZy5nZXRDZWxsTWV0YShJLGopfSxmdW5jdGlvbihJLGosdWUsX2Upe3JldHVybiBnLnNldENlbGxN''@;'; + put 'put ''ZXRhKEksaix1ZSxfZSl9KSx0aGlzLnJlbmRlcigpfSxkaXNhYmxlZDohMX0se2tleToiIi5jb25jYXQoUHAsIjpib3R0b20iKSxuYW1lOmZ1bmN0aW9uKCl7dmFyIGc9dGhpcyxoPXRoaXMuZ2V0VHJhbnNsYXRlZFBocmFzZShLNGUpO3JldHVybiBPZyh0aGlzLmdldFNlbGVjdGVkUmFuZ2Uo''@;'; + put 'put ''KSxmdW5jdGlvbih5LEMpe3ZhciBJPWcuZ2V0Q2VsbE1ldGEoeSxDKS5jbGFzc05hbWU7aWYoSSYmLTEhPT1JLmluZGV4T2YoImh0Qm90dG9tIikpcmV0dXJuITB9KSYmKGg9QnYoaCkpLGh9LGNhbGxiYWNrOmZ1bmN0aW9uKCl7dmFyIGc9dGhpcyxoPXRoaXMuZ2V0U2VsZWN0ZWRSYW5nZSgp''@;'; + put 'put ''LHY9WFMoaCxmdW5jdGlvbihJLGope3JldHVybiBnLmdldENlbGxNZXRhKEksaikuY2xhc3NOYW1lfSkseT0idmVydGljYWwiLEM9Imh0Qm90dG9tIjt0aGlzLnJ1bkhvb2tzKCJiZWZvcmVDZWxsQWxpZ25tZW50Iix2LGgseSxDKSxIdyhoLHksQyxmdW5jdGlvbihJLGope3JldHVybiBnLmdl''@;'; + put 'put ''dENlbGxNZXRhKEksail9LGZ1bmN0aW9uKEksaix1ZSxfZSl7cmV0dXJuIGcuc2V0Q2VsbE1ldGEoSSxqLHVlLF9lKX0pLHRoaXMucmVuZGVyKCl9LGRpc2FibGVkOiExfV19fX0pLHMzKTtmdW5jdGlvbiBGRWUoKXt2YXIgZD17fTtyZXR1cm4gR2woUEVlLGZ1bmN0aW9uKGcsaCl7ZFtoXT1n''@;'; + put 'put ''KCl9KSxkfWZ1bmN0aW9uIHZhdChkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfWZ1bmN0aW9uIEhFZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51''@;'; + put 'put ''bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fXZhciB5YXQ9ZnVuY3Rpb24oKXtmdW5jdGlvbiBkKGcpe3ZhciBoPWFyZ3VtZW50cy5sZW5ndGg+MSYm''@;'; + put 'put ''dm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTpudWxsO3ZhdCh0aGlzLGQpLHRoaXMuaG90PWcsdGhpcy5wcmVkZWZpbmVkSXRlbXM9RkVlKCksdGhpcy5kZWZhdWx0T3JkZXJQYXR0ZXJuPWh9cmV0dXJuIGZ1bmN0aW9uIEFhdChkLGcsaCl7ZyYmSEVlKGQucHJvdG90eXBlLGcp''@;'; + put 'put ''LGgmJkhFZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShkLFt7a2V5OiJzZXRQcmVkZWZpbmVkSXRlbXMiLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB2PXRoaXMseT17fTt0aGlzLmRlZmF1bHRPcmRlclBhdHRlcm4ubGVuZ3RoPTAsR2wo''@;'; + put 'put ''aCxmdW5jdGlvbihDLEkpe3ZhciBqPSIiO0MubmFtZT09PVdsPyh5W1dsXT1DLGo9V2wpOmlzTmFOKHBhcnNlSW50KEksMTApKT8oQy5rZXk9dm9pZCAwPT09Qy5rZXk/STpDLmtleSx5W0ldPUMsaj1DLmtleSk6KHlbQy5rZXldPUMsaj1DLmtleSksdi5kZWZhdWx0T3JkZXJQYXR0ZXJuLnB1''@;'; + put 'put ''c2goail9KSx0aGlzLnByZWRlZmluZWRJdGVtcz15fX0se2tleToiZ2V0SXRlbXMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOm51bGw7cmV0dXJuIHdhdChoLHRoaXMuZGVmYXVsdE9yZGVyUGF0''@;'; + put 'put ''dGVybix0aGlzLnByZWRlZmluZWRJdGVtcyl9fV0pLGR9KCk7ZnVuY3Rpb24gd2F0KCl7dmFyIGQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOm51bGwsZz1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1''@;'; + put 'put ''bWVudHNbMV06W10saD1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06e30sdj1bXSx5PWQ7cmV0dXJuIHkmJnkuaXRlbXM/eT15Lml0ZW1zOkFycmF5LmlzQXJyYXkoeSl8fCh5PWcpLHhsKHkpP0dsKHksZnVuY3Rpb24oQyxJKXt2YXIgaj1o''@;'; + put 'put ''WyJzdHJpbmciPT10eXBlb2YgQz9DOkldO2p8fChqPUMpLHhsKEMpP0kxKGosQyk6InN0cmluZyI9PXR5cGVvZiBqJiYoaj17bmFtZTpqfSksdm9pZCAwPT09ai5rZXkmJihqLmtleT1JKSx2LnB1c2goail9KTpVcih5LGZ1bmN0aW9uKEMsSSl7dmFyIGo9aFtDXTshaiYmQkVlLmluZGV4T2Yo''@;'; + put 'put ''Qyk+PTB8fChqfHwoaj17bmFtZTpDLGtleToiIi5jb25jYXQoSSl9KSx4bChDKSYmSTEoaixDKSx2b2lkIDA9PT1qLmtleSYmKGoua2V5PUkpLHYucHVzaChqKSl9KSx2fWNvbnN0IE5FZT15YXQ7ZnVuY3Rpb24gVkVlKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdb''@;'; + put 'put ''aF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19dmFyIENhdD1mdW5jdGlvbigpe2Z1bmN0aW9uIGQoZyxoKXshZnVuY3Rpb24gYmF0KGQs''@;'; + put 'put ''Zyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsZCk7dmFyIEMsSSxqLHVlLF9lLEJlLHY9Y08oaCkseT1NUyhoKTt0aGlzLnJvb3RXaW5kb3c9aCx0aGlzLnR5cGU9dGhpcy5nZXRTb3Vy''@;'; + put 'put ''Y2VUeXBlKGcpLCJsaXRlcmFsIj09PXRoaXMudHlwZT8oQz1wYXJzZUludChnLnRvcCwxMCksaj1wYXJzZUludChnLmxlZnQsMTApLF9lPWcuaGVpZ2h0fHwwLEJlPWcud2lkdGh8fDAsST1DLHVlPWosQys9dixqKz15KToiZXZlbnQiPT09dGhpcy50eXBlJiYoQz1wYXJzZUludChnLnBhZ2VZ''@;'; + put 'put ''LDEwKSxqPXBhcnNlSW50KGcucGFnZVgsMTApLF9lPWcudGFyZ2V0LmNsaWVudEhlaWdodCxCZT1nLnRhcmdldC5jbGllbnRXaWR0aCxJPUMtdix1ZT1qLXkpLHRoaXMudG9wPUMsdGhpcy50b3BSZWxhdGl2ZT1JLHRoaXMubGVmdD1qLHRoaXMubGVmdFJlbGF0aXZlPXVlLHRoaXMuc2Nyb2xs''@;'; + put 'put ''VG9wPXYsdGhpcy5zY3JvbGxMZWZ0PXksdGhpcy5jZWxsSGVpZ2h0PV9lLHRoaXMuY2VsbFdpZHRoPUJlfXJldHVybiBmdW5jdGlvbiBfYXQoZCxnLGgpe2cmJlZFZShkLnByb3RvdHlwZSxnKSxoJiZWRWUoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFi''@;'; + put 'put ''bGU6ITF9KX0oZCxbe2tleToiZ2V0U291cmNlVHlwZSIsdmFsdWU6ZnVuY3Rpb24oaCl7dmFyIHY9ImxpdGVyYWwiO3JldHVybiBoIGluc3RhbmNlb2YgRXZlbnQmJih2PSJldmVudCIpLHZ9fSx7a2V5OiJmaXRzQWJvdmUiLHZhbHVlOmZ1bmN0aW9uKGgpe3JldHVybiB0aGlzLnRvcFJlbGF0''@;'; + put 'put ''aXZlPj1oLm9mZnNldEhlaWdodH19LHtrZXk6ImZpdHNCZWxvdyIsdmFsdWU6ZnVuY3Rpb24oaCl7dmFyIHY9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOnRoaXMucm9vdFdpbmRvdy5pbm5lckhlaWdodDtyZXR1cm4gdGhpcy50b3BSZWxh''@;'; + put 'put ''dGl2ZStoLm9mZnNldEhlaWdodDw9dn19LHtrZXk6ImZpdHNPblJpZ2h0Iix2YWx1ZTpmdW5jdGlvbihoKXt2YXIgdj1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06dGhpcy5yb290V2luZG93LmlubmVyV2lkdGg7cmV0dXJuIHRoaXMubGVm''@;'; + put 'put ''dFJlbGF0aXZlK3RoaXMuY2VsbFdpZHRoK2gub2Zmc2V0V2lkdGg8PXZ9fSx7a2V5OiJmaXRzT25MZWZ0Iix2YWx1ZTpmdW5jdGlvbihoKXtyZXR1cm4gdGhpcy5sZWZ0UmVsYXRpdmU+PWgub2Zmc2V0V2lkdGh9fV0pLGR9KCk7Y29uc3Qga2F0PUNhdDtmdW5jdGlvbiBqRWUoZCxnKXt2YXIg''@;'; + put 'put ''aD1PYmplY3Qua2V5cyhkKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgdj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGQpO2cmJih2PXYuZmlsdGVyKGZ1bmN0aW9uKHkpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQseSkuZW51bWVy''@;'; + put 'put ''YWJsZX0pKSxoLnB1c2guYXBwbHkoaCx2KX1yZXR1cm4gaH1mdW5jdGlvbiBaRWUoZCl7Zm9yKHZhciBnPTE7Zzxhcmd1bWVudHMubGVuZ3RoO2crKyl7dmFyIGg9bnVsbCE9YXJndW1lbnRzW2ddP2FyZ3VtZW50c1tnXTp7fTtnJTI/akVlKE9iamVjdChoKSwhMCkuZm9yRWFjaChmdW5jdGlv''@;'; + put 'put ''bih2KXtTYXQoZCx2LGhbdl0pfSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhoKSk6akVlKE9iamVjdChoKSkuZm9yRWFjaChmdW5jdGlvbih2KXtPYmplY3QuZGVmaW5l''@;'; + put 'put ''UHJvcGVydHkoZCx2LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoaCx2KSl9KX1yZXR1cm4gZH1mdW5jdGlvbiBTYXQoZCxnLGgpe3JldHVybiBnIGluIGQ/T2JqZWN0LmRlZmluZVByb3BlcnR5KGQsZyx7dmFsdWU6aCxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0''@;'; + put 'put ''YWJsZTohMH0pOmRbZ109aCxkfWZ1bmN0aW9uIHpFZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmlu''@;'; + put 'put ''ZVByb3BlcnR5KGQsdi5rZXksdil9fXZhciBZRWU9ZnVuY3Rpb24oKXtmdW5jdGlvbiBkKGcsaCl7KGZ1bmN0aW9uIE1hdChkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSkodGhpcyxkKSx0''@;'; + put 'put ''aGlzLmhvdD1nLHRoaXMub3B0aW9ucz1ofHx7cGFyZW50Om51bGwsbmFtZTpudWxsLGNsYXNzTmFtZToiIixrZWVwSW5WaWV3cG9ydDohMCxzdGFuZGFsb25lOiExLG1pbldpZHRoOjIxNSxjb250YWluZXI6dGhpcy5ob3Qucm9vdERvY3VtZW50LmRvY3VtZW50RWxlbWVudH0sdGhpcy5ldmVu''@;'; + put 'put ''dE1hbmFnZXI9bmV3IEwxKHRoaXMpLHRoaXMuY29udGFpbmVyPXRoaXMuY3JlYXRlQ29udGFpbmVyKHRoaXMub3B0aW9ucy5uYW1lKSx0aGlzLmhvdE1lbnU9bnVsbCx0aGlzLmhvdFN1Yk1lbnVzPXt9LHRoaXMucGFyZW50TWVudT10aGlzLm9wdGlvbnMucGFyZW50fHxudWxsLHRoaXMubWVu''@;'; + put 'put ''dUl0ZW1zPW51bGwsdGhpcy5vcmlnT3V0c2lkZUNsaWNrRGVzZWxlY3RzPW51bGwsdGhpcy5rZXlFdmVudD0hMSx0aGlzLm9mZnNldD17YWJvdmU6MCxiZWxvdzowLGxlZnQ6MCxyaWdodDowfSx0aGlzLl9hZnRlclNjcm9sbENhbGxiYWNrPW51bGwsdGhpcy5yZWdpc3RlckV2ZW50cygpfXJl''@;'; + put 'put ''dHVybiBmdW5jdGlvbiBFYXQoZCxnLGgpe2cmJnpFZShkLnByb3RvdHlwZSxnKSxoJiZ6RWUoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oZCxbe2tleToicmVnaXN0ZXJFdmVudHMiLHZhbHVlOmZ1bmN0aW9uKCl7Zm9yKHZhciBoPXRo''@;'; + put 'put ''aXMsdj10aGlzLmhvdC5yb290V2luZG93O3Y7KXRoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIodi5kb2N1bWVudCwibW91c2Vkb3duIixmdW5jdGlvbih5KXtyZXR1cm4gaC5vbkRvY3VtZW50TW91c2VEb3duKHkpfSksdGhpcy5ldmVudE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5l''@;'; + put 'put ''cih2LmRvY3VtZW50LCJjb250ZXh0bWVudSIsZnVuY3Rpb24oeSl7cmV0dXJuIGgub25Eb2N1bWVudENvbnRleHRNZW51KHkpfSksdj1zM2Uodil9fSx7a2V5OiJzZXRNZW51SXRlbXMiLHZhbHVlOmZ1bmN0aW9uKGgpe3RoaXMubWVudUl0ZW1zPWh9fSx7a2V5OiJnZXRTZWxlY3RlZEl0ZW0i''@;'; + put 'put ''LHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaGFzU2VsZWN0ZWRJdGVtKCk/dGhpcy5ob3RNZW51LmdldFNvdXJjZURhdGFBdFJvdyh0aGlzLmhvdE1lbnUuZ2V0U2VsZWN0ZWRMYXN0KClbMF0pOm51bGx9fSx7a2V5OiJoYXNTZWxlY3RlZEl0ZW0iLHZhbHVlOmZ1bmN0aW9uKCl7cmV0''@;'; + put 'put ''dXJuIEFycmF5LmlzQXJyYXkodGhpcy5ob3RNZW51LmdldFNlbGVjdGVkTGFzdCgpKX19LHtrZXk6InNldE9mZnNldCIsdmFsdWU6ZnVuY3Rpb24oaCl7dmFyIHY9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOjA7dGhpcy5vZmZzZXRbaF09''@;'; + put 'put ''dn19LHtrZXk6ImlzU3ViTWVudSIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbCE9PXRoaXMucGFyZW50TWVudX19LHtrZXk6Im9wZW4iLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9dGhpczt0aGlzLnJ1bkxvY2FsSG9va3MoImJlZm9yZU9wZW4iKSx0aGlzLmNvbnRhaW5lci5yZW1vdmVB''@;'; + put 'put ''dHRyaWJ1dGUoInN0eWxlIiksdGhpcy5jb250YWluZXIuc3R5bGUuZGlzcGxheT0iYmxvY2siO3ZhciB2PXkzZShmdW5jdGlvbihkdCl7cmV0dXJuIGgub3BlblN1Yk1lbnUoZHQpfSwzMDApLHk9dGhpcy5vcHRpb25zLm1pbldpZHRofHwyMTUsQz0hMSxJPWc0KHRoaXMubWVudUl0ZW1zLGZ1''@;'; + put 'put ''bmN0aW9uKGR0KXtyZXR1cm4gZHQua2V5PT09YnomJihDPSEwKSxmdW5jdGlvbiBFb3QoZCxnKXtyZXR1cm4hZC5oaWRkZW58fCEoImZ1bmN0aW9uIj09dHlwZW9mIGQuaGlkZGVuJiZkLmhpZGRlbi5jYWxsKGcpKX0oZHQsaC5ob3QpfSk7aWYoSS5sZW5ndGg8MSYmIUMpSS5wdXNoKEZFZSgp''@;'; + put 'put ''W2J6XSk7ZWxzZSBpZigwPT09SS5sZW5ndGgpcmV0dXJuO0k9ZnVuY3Rpb24gSW90KGQpe3ZhciBnPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTpXbCxoPWQuc2xpY2UoMCk7cmV0dXJuIFRvdChoPXhvdChoPVNFZShoLGcpLGcpKX0oSSxX''@;'; + put 'put ''bCk7dmFyIGo9ITEsdWU9e2RhdGE6SSxjb2xIZWFkZXJzOiExLGF1dG9Db2x1bW5TaXplOiEwLGF1dG9XcmFwUm93OiExLG1vZGlmeUNvbFdpZHRoOmZ1bmN0aW9uKE90KXtyZXR1cm4gVG8oT3QpJiZPdDx5P3k6T3R9LGF1dG9Sb3dTaXplOiExLHJlYWRPbmx5OiEwLGVkaXRvcjohMSxjb3B5''@;'; + put 'put ''UGFzdGU6ITEsbWF4Q29sczoxLGNvbHVtbnM6W3tkYXRhOiJuYW1lIixyZW5kZXJlcjpmdW5jdGlvbihPdCwkdCxmbixMbixpcixtcil7cmV0dXJuIGgubWVudUl0ZW1SZW5kZXJlcihPdCwkdCxmbixMbixpcixtcil9fV0scmVuZGVyQWxsUm93czohMCxmcmFnbWVudFNlbGVjdGlvbjohMSxv''@;'; + put 'put ''dXRzaWRlQ2xpY2tEZXNlbGVjdHM6ITEsZGlzYWJsZVZpc3VhbFNlbGVjdGlvbjoiYXJlYSIsbGF5b3V0RGlyZWN0aW9uOnRoaXMuaG90LmlzUnRsKCk/InJ0bCI6Imx0ciIsYWZ0ZXJPbkNlbGxNb3VzZU92ZXI6ZnVuY3Rpb24oT3QsJHQpe2guaXNBbGxTdWJNZW51c0Nsb3NlZCgpP3YoJHQu''@;'; + put 'put ''cm93KTpoLm9wZW5TdWJNZW51KCR0LnJvdyl9LHJvd0hlaWdodHM6ZnVuY3Rpb24oT3Qpe3JldHVybiBJW090XS5uYW1lPT09V2w/MToyM30sYWZ0ZXJPbkNlbGxDb250ZXh0TWVudTpmdW5jdGlvbihPdCl7T3QucHJldmVudERlZmF1bHQoKSxlM2UoKSYmaiYmaC5oYXNTZWxlY3RlZEl0ZW0o''@;'; + put 'put ''KSYmaC5jbG9zZSghMCl9LGJlZm9yZU9uQ2VsbE1vdXNlVXA6ZnVuY3Rpb24oT3Qpe2guaGFzU2VsZWN0ZWRJdGVtKCkmJihqPSFoLmlzQ29tbWFuZFBhc3NpdmUoaC5nZXRTZWxlY3RlZEl0ZW0oKSksaC5leGVjdXRlQ29tbWFuZChPdCkpfSxhZnRlck9uQ2VsbE1vdXNlVXA6ZnVuY3Rpb24o''@;'; + put 'put ''T3QpeyghZTNlKCl8fCFFdyhPdCkpJiZqJiZoLmhhc1NlbGVjdGVkSXRlbSgpJiYoYjgoKXx8cWhlKCk/c2V0VGltZW91dChmdW5jdGlvbigpe3JldHVybiBoLmNsb3NlKCEwKX0sMzI1KTpoLmNsb3NlKCEwKSl9LGFmdGVyVW5saXN0ZW46ZnVuY3Rpb24oKXshaC5oYXNTZWxlY3RlZEl0ZW0o''@;'; + put 'put ''KSYmaC5pc09wZW5lZCgpJiZoLmhvdE1lbnUubGlzdGVuKCl9fTt0aGlzLm9yaWdPdXRzaWRlQ2xpY2tEZXNlbGVjdHM9dGhpcy5ob3QuZ2V0U2V0dGluZ3MoKS5vdXRzaWRlQ2xpY2tEZXNlbGVjdHMsdGhpcy5ob3QuZ2V0U2V0dGluZ3MoKS5vdXRzaWRlQ2xpY2tEZXNlbGVjdHM9ITEsdGhp''@;'; + put 'put ''cy5ob3RNZW51PW5ldyBvNmUodGhpcy5jb250YWluZXIsdWUpLHRoaXMuaG90TWVudS5hZGRIb29rKCJhZnRlckluaXQiLGZ1bmN0aW9uKCl7cmV0dXJuIGgub25BZnRlckluaXQoKX0pLHRoaXMuaG90TWVudS5hZGRIb29rKCJhZnRlclNlbGVjdGlvbiIsZnVuY3Rpb24oKXtyZXR1cm4gaC5v''@;'; + put 'put ''bkFmdGVyU2VsZWN0aW9uLmFwcGx5KGgsYXJndW1lbnRzKX0pLHRoaXMuaG90TWVudS5pbml0KCksdGhpcy5ob3RNZW51Lmxpc3RlbigpO3ZhciBfZT10aGlzLmhvdE1lbnUuZ2V0U2hvcnRjdXRNYW5hZ2VyKCksQmU9X2UuYWRkQ29udGV4dCgibWVudSIpLEtlPVpFZShaRWUoe30se2dyb3Vw''@;'; + put 'put ''OiJtZW51In0pLHt9LHtydW5Pbmx5SWY6ZnVuY3Rpb24oT3Qpe3JldHVybiExPT09WlooT3QudGFyZ2V0KXx8ITE9PT1oLmNvbnRhaW5lci5jb250YWlucyhPdC50YXJnZXQpfX0pO19lLnNldEFjdGl2ZUNvbnRleHROYW1lKCJtZW51IiksQmUuYWRkU2hvcnRjdXRzKFt7a2V5czpbWyJFc2Nh''@;'; + put 'put ''cGUiXV0sY2FsbGJhY2s6ZnVuY3Rpb24oKXtoLmtleUV2ZW50PSEwLGguY2xvc2UoKSxoLmtleUV2ZW50PSExfX0se2tleXM6W1siQXJyb3dEb3duIl1dLGNhbGxiYWNrOmZ1bmN0aW9uKCl7dmFyIE90PWguaG90TWVudS5nZXRTZWxlY3RlZExhc3QoKTtoLmtleUV2ZW50PSEwLE90P2guc2Vs''@;'; + put 'put ''ZWN0TmV4dENlbGwoT3RbMF0sT3RbMV0pOmguc2VsZWN0Rmlyc3RDZWxsKCksaC5rZXlFdmVudD0hMX19LHtrZXlzOltbIkFycm93VXAiXV0sY2FsbGJhY2s6ZnVuY3Rpb24oKXt2YXIgT3Q9aC5ob3RNZW51LmdldFNlbGVjdGVkTGFzdCgpO2gua2V5RXZlbnQ9ITAsT3Q/aC5zZWxlY3RQcmV2''@;'; + put 'put ''Q2VsbChPdFswXSxPdFsxXSk6aC5zZWxlY3RMYXN0Q2VsbCgpLGgua2V5RXZlbnQ9ITF9fSx7a2V5czpbWyJBcnJvd1JpZ2h0Il1dLGNhbGxiYWNrOmZ1bmN0aW9uKCl7dmFyIE90PWguaG90TWVudS5nZXRTZWxlY3RlZExhc3QoKTtpZihoLmtleUV2ZW50PSEwLE90KXt2YXIgJHQ9aC5vcGVu''@;'; + put 'put ''U3ViTWVudShPdFswXSk7JHQmJiR0LnNlbGVjdEZpcnN0Q2VsbCgpfWgua2V5RXZlbnQ9ITF9fSx7a2V5czpbWyJBcnJvd0xlZnQiXV0sY2FsbGJhY2s6ZnVuY3Rpb24oKXt2YXIgT3Q9aC5ob3RNZW51LmdldFNlbGVjdGVkTGFzdCgpO2gua2V5RXZlbnQ9ITAsT3QmJmguaXNTdWJNZW51KCkm''@;'; + put 'put ''JihoLmNsb3NlKCksaC5wYXJlbnRNZW51JiZoLnBhcmVudE1lbnUuaG90TWVudS5saXN0ZW4oKSksaC5rZXlFdmVudD0hMX19LHtrZXlzOltbIkVudGVyIl1dLGNhbGxiYWNrOmZ1bmN0aW9uKE90KXt2YXIgJHQ9aC5ob3RNZW51LmdldFNlbGVjdGVkTGFzdCgpO2gua2V5RXZlbnQ9ITAsaC5o''@;'; + put 'put ''b3RNZW51LmdldFNvdXJjZURhdGFBdFJvdygkdFswXSkuc3VibWVudXx8KGguZXhlY3V0ZUNvbW1hbmQoT3QpLGguY2xvc2UoITApKSxoLmtleUV2ZW50PSExfX0se2tleXM6W1siUGFnZVVwIl1dLGNhbGxiYWNrOmZ1bmN0aW9uKCl7dmFyIE90PWguaG90TWVudS5nZXRTZWxlY3RlZExhc3Qo''@;'; + put 'put ''KTtoLmtleUV2ZW50PSEwLE90P2guaG90TWVudS5zZWxlY3Rpb24udHJhbnNmb3JtU3RhcnQoLWguaG90TWVudS5jb3VudFZpc2libGVSb3dzKCksMCk6aC5zZWxlY3RGaXJzdENlbGwoKSxoLmtleUV2ZW50PSExfX0se2tleXM6W1siUGFnZURvd24iXV0sY2FsbGJhY2s6ZnVuY3Rpb24oKXt2''@;'; + put 'put ''YXIgT3Q9aC5ob3RNZW51LmdldFNlbGVjdGVkTGFzdCgpO2gua2V5RXZlbnQ9ITAsT3Q/aC5ob3RNZW51LnNlbGVjdGlvbi50cmFuc2Zvcm1TdGFydChoLmhvdE1lbnUuY291bnRWaXNpYmxlUm93cygpLDApOmguc2VsZWN0TGFzdENlbGwoKSxoLmtleUV2ZW50PSExfX1dLEtlKSx0aGlzLmJs''@;'; + put 'put ''b2NrTWFpblRhYmxlQ2FsbGJhY2tzKCksdGhpcy5ydW5Mb2NhbEhvb2tzKCJhZnRlck9wZW4iKX19LHtrZXk6ImNsb3NlIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBoPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdJiZhcmd1bWVudHNbMF07IXRoaXMuaXNPcGVuZWQo''@;'; + put 'put ''KXx8KGgmJnRoaXMucGFyZW50TWVudT90aGlzLnBhcmVudE1lbnUuY2xvc2UoKToodGhpcy5jbG9zZUFsbFN1Yk1lbnVzKCksdGhpcy5jb250YWluZXIuc3R5bGUuZGlzcGxheT0ibm9uZSIsdGhpcy5yZWxlYXNlTWFpblRhYmxlQ2FsbGJhY2tzKCksdGhpcy5ob3RNZW51LmRlc3Ryb3koKSx0''@;'; + put 'put ''aGlzLmhvdE1lbnU9bnVsbCx0aGlzLmhvdC5nZXRTZXR0aW5ncygpLm91dHNpZGVDbGlja0Rlc2VsZWN0cz10aGlzLm9yaWdPdXRzaWRlQ2xpY2tEZXNlbGVjdHMsdGhpcy5ydW5Mb2NhbEhvb2tzKCJhZnRlckNsb3NlIiksdGhpcy5wYXJlbnRNZW51JiZ0aGlzLnBhcmVudE1lbnUuaG90TWVu''@;'; + put 'put ''dS5saXN0ZW4oKSkpfX0se2tleToib3BlblN1Yk1lbnUiLHZhbHVlOmZ1bmN0aW9uKGgpe2lmKCF0aGlzLmhvdE1lbnUpcmV0dXJuITE7dmFyIHY9dGhpcy5ob3RNZW51LmdldENlbGwoaCwwKTtpZih0aGlzLmNsb3NlQWxsU3ViTWVudXMoKSwhdnx8IWZ1bmN0aW9uIENvdChkKXtyZXR1cm4g''@;'; + put 'put ''dGwoZCwiaHRTdWJtZW51Iil9KHYpKXJldHVybiExO3ZhciB5PXRoaXMuaG90TWVudS5nZXRTb3VyY2VEYXRhQXRSb3coaCksQz1uZXcgZCh0aGlzLmhvdCx7cGFyZW50OnRoaXMsbmFtZTp5Lm5hbWUsY2xhc3NOYW1lOnRoaXMub3B0aW9ucy5jbGFzc05hbWUsa2VlcEluVmlld3BvcnQ6ITAs''@;'; + put 'put ''Y29udGFpbmVyOnRoaXMub3B0aW9ucy5jb250YWluZXJ9KTtyZXR1cm4gQy5zZXRNZW51SXRlbXMoeS5zdWJtZW51Lml0ZW1zKSxDLm9wZW4oKSxDLnNldFBvc2l0aW9uKHYuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkpLHRoaXMuaG90U3ViTWVudXNbeS5rZXldPUMsQ319LHtrZXk6ImNsb3Nl''@;'; + put 'put ''U3ViTWVudSIsdmFsdWU6ZnVuY3Rpb24oaCl7dmFyIHY9dGhpcy5ob3RNZW51LmdldFNvdXJjZURhdGFBdFJvdyhoKSx5PXRoaXMuaG90U3ViTWVudXNbdi5rZXldO3kmJih5LmRlc3Ryb3koKSxkZWxldGUgdGhpcy5ob3RTdWJNZW51c1t2LmtleV0pfX0se2tleToiY2xvc2VBbGxTdWJNZW51''@;'; + put 'put ''cyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD10aGlzO1VyKHRoaXMuaG90TWVudS5nZXREYXRhKCksZnVuY3Rpb24odix5KXtyZXR1cm4gaC5jbG9zZVN1Yk1lbnUoeSl9KX19LHtrZXk6ImlzQWxsU3ViTWVudXNDbG9zZWQiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIDA9PT1PYmplY3Qua2V5''@;'; + put 'put ''cyh0aGlzLmhvdFN1Yk1lbnVzKS5sZW5ndGh9fSx7a2V5OiJkZXN0cm95Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciBoPXRoaXMuY29udGFpbmVyLnBhcmVudE5vZGU7dGhpcy5jbGVhckxvY2FsSG9va3MoKSx0aGlzLmNsb3NlKCksdGhpcy5wYXJlbnRNZW51PW51bGwsdGhpcy5ldmVudE1hbmFn''@;'; + put 'put ''ZXIuZGVzdHJveSgpLGgmJmgucmVtb3ZlQ2hpbGQodGhpcy5jb250YWluZXIpfX0se2tleToiaXNPcGVuZWQiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIG51bGwhPT10aGlzLmhvdE1lbnV9fSx7a2V5OiJleGVjdXRlQ29tbWFuZCIsdmFsdWU6ZnVuY3Rpb24oaCl7aWYodGhpcy5pc09wZW5l''@;'; + put 'put ''ZCgpJiZ0aGlzLmhhc1NlbGVjdGVkSXRlbSgpKXt2YXIgdj10aGlzLmdldFNlbGVjdGVkSXRlbSgpO2lmKHRoaXMucnVuTG9jYWxIb29rcygic2VsZWN0Iix2LGgpLCF0aGlzLmlzQ29tbWFuZFBhc3NpdmUodikpe3ZhciB5PXRoaXMuaG90LmdldFNlbGVjdGVkUmFuZ2UoKSxDPXk/ZnVuY3Rp''@;'; + put 'put ''b24gX290KGQpe3JldHVybiBPbChkLGZ1bmN0aW9uKGcpe3JldHVybntzdGFydDpnLmdldFRvcFN0YXJ0Q29ybmVyKCksZW5kOmcuZ2V0Qm90dG9tRW5kQ29ybmVyKCl9fSl9KHkpOltdO3RoaXMucnVuTG9jYWxIb29rcygiZXhlY3V0ZUNvbW1hbmQiLHYua2V5LEMsaCksdGhpcy5pc1N1Yk1l''@;'; + put 'put ''bnUoKSYmdGhpcy5wYXJlbnRNZW51LnJ1bkxvY2FsSG9va3MoImV4ZWN1dGVDb21tYW5kIix2LmtleSxDLGgpfX19fSx7a2V5OiJpc0NvbW1hbmRQYXNzaXZlIix2YWx1ZTpmdW5jdGlvbihoKXt2YXIgdj1oLmlzQ29tbWFuZCx5PWgubmFtZSxDPWguZGlzYWJsZWQsST1oLnN1Ym1lbnUsaj0h''@;'; + put 'put ''MD09PUN8fCJmdW5jdGlvbiI9PXR5cGVvZiBDJiYhMD09PUMuY2FsbCh0aGlzLmhvdCk7cmV0dXJuITE9PT12fHx5PT09V2x8fCEwPT09anx8SX19LHtrZXk6InNldFBvc2l0aW9uIix2YWx1ZTpmdW5jdGlvbihoKXt2YXIgdj1uZXcga2F0KGgsdGhpcy5jb250YWluZXIub3duZXJEb2N1bWVu''@;'; + put 'put ''dC5kZWZhdWx0Vmlldyk7dGhpcy5vcHRpb25zLmtlZXBJblZpZXdwb3J0Pyh2LmZpdHNCZWxvdyh0aGlzLmNvbnRhaW5lcik/dGhpcy5zZXRQb3NpdGlvbkJlbG93Q3Vyc29yKHYpOnYuZml0c0Fib3ZlKHRoaXMuY29udGFpbmVyKT90aGlzLnNldFBvc2l0aW9uQWJvdmVDdXJzb3Iodik6dGhp''@;'; + put 'put ''cy5zZXRQb3NpdGlvbkJlbG93Q3Vyc29yKHYpLHRoaXMuaG90LmlzTHRyKCk/dGhpcy5zZXRIb3Jpem9udGFsUG9zaXRpb25Gb3JMdHIodik6dGhpcy5zZXRIb3Jpem9udGFsUG9zaXRpb25Gb3JSdGwodikpOih0aGlzLnNldFBvc2l0aW9uQmVsb3dDdXJzb3IodiksdGhpcy5zZXRQb3NpdGlv''@;'; + put 'put ''bk9uUmlnaHRPZkN1cnNvcih2KSl9fSx7a2V5OiJzZXRIb3Jpem9udGFsUG9zaXRpb25Gb3JSdGwiLHZhbHVlOmZ1bmN0aW9uKGgpe2guZml0c09uTGVmdCh0aGlzLmNvbnRhaW5lcik/dGhpcy5zZXRQb3NpdGlvbk9uTGVmdE9mQ3Vyc29yKGgpOnRoaXMuc2V0UG9zaXRpb25PblJpZ2h0T2ZD''@;'; + put 'put ''dXJzb3IoaCl9fSx7a2V5OiJzZXRIb3Jpem9udGFsUG9zaXRpb25Gb3JMdHIiLHZhbHVlOmZ1bmN0aW9uKGgpe2guZml0c09uUmlnaHQodGhpcy5jb250YWluZXIpP3RoaXMuc2V0UG9zaXRpb25PblJpZ2h0T2ZDdXJzb3IoaCk6dGhpcy5zZXRQb3NpdGlvbk9uTGVmdE9mQ3Vyc29yKGgpfX0s''@;'; + put 'put ''e2tleToic2V0UG9zaXRpb25BYm92ZUN1cnNvciIsdmFsdWU6ZnVuY3Rpb24oaCl7dmFyIHY9dGhpcy5vZmZzZXQuYWJvdmUraC50b3AtdGhpcy5jb250YWluZXIub2Zmc2V0SGVpZ2h0O3RoaXMuaXNTdWJNZW51KCkmJih2PWgudG9wK2guY2VsbEhlaWdodC10aGlzLmNvbnRhaW5lci5vZmZz''@;'; + put 'put ''ZXRIZWlnaHQrMyksdGhpcy5jb250YWluZXIuc3R5bGUudG9wPSIiLmNvbmNhdCh2LCJweCIpfX0se2tleToic2V0UG9zaXRpb25CZWxvd0N1cnNvciIsdmFsdWU6ZnVuY3Rpb24oaCl7dmFyIHY9dGhpcy5vZmZzZXQuYmVsb3craC50b3ArMTt0aGlzLmlzU3ViTWVudSgpJiYodj1oLnRvcC0x''@;'; + put 'put ''KSx0aGlzLmNvbnRhaW5lci5zdHlsZS50b3A9IiIuY29uY2F0KHYsInB4Iil9fSx7a2V5OiJzZXRQb3NpdGlvbk9uUmlnaHRPZkN1cnNvciIsdmFsdWU6ZnVuY3Rpb24oaCl7dmFyIHY9aC5sZWZ0O2lmKHRoaXMuaXNTdWJNZW51KCkpe3ZhciB5PXRoaXMucGFyZW50TWVudS5jb250YWluZXIu''@;'; + put 'put ''Z2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7dis9aC5jZWxsV2lkdGgreS5yaWdodC0oaC5sZWZ0K2guY2VsbFdpZHRoKX1lbHNlIHYrPXRoaXMub2Zmc2V0LnJpZ2h0O3RoaXMuY29udGFpbmVyLnN0eWxlLmxlZnQ9IiIuY29uY2F0KHYsInB4Iil9fSx7a2V5OiJzZXRQb3NpdGlvbk9uTGVmdE9m''@;'; + put 'put ''Q3Vyc29yIix2YWx1ZTpmdW5jdGlvbihoKXt2YXIgdj10aGlzLm9mZnNldC5sZWZ0K2gubGVmdC10aGlzLmNvbnRhaW5lci5vZmZzZXRXaWR0aDtpZih0aGlzLmlzU3ViTWVudSgpKXt2YXIgeT10aGlzLnBhcmVudE1lbnUuY29udGFpbmVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3YtPWgu''@;'; + put 'put ''bGVmdC15LmxlZnR9dGhpcy5jb250YWluZXIuc3R5bGUubGVmdD0iIi5jb25jYXQodiwicHgiKX19LHtrZXk6InNlbGVjdEZpcnN0Q2VsbCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD10aGlzLmhvdE1lbnUuZ2V0Q2VsbCgwLDApO090ZShoKXx8UnRlKGgpfHxCdGUoaCk/dGhpcy5zZWxlY3RO''@;'; + put 'put ''ZXh0Q2VsbCgwLDApOnRoaXMuaG90TWVudS5zZWxlY3RDZWxsKDAsMCl9fSx7a2V5OiJzZWxlY3RMYXN0Q2VsbCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD10aGlzLmhvdE1lbnUuY291bnRSb3dzKCktMSx2PXRoaXMuaG90TWVudS5nZXRDZWxsKGgsMCk7T3RlKHYpfHxSdGUodil8fEJ0ZSh2''@;'; + put 'put ''KT90aGlzLnNlbGVjdFByZXZDZWxsKGgsMCk6KHRoaXMuaG90TWVudS5zZWxlY3RDZWxsKGgsMCx2b2lkIDAsdm9pZCAwLCExKSx0aGlzLmhvdE1lbnUuc2Nyb2xsVmlld3BvcnRUbyhoLDAsITAsITEpKX19LHtrZXk6InNlbGVjdE5leHRDZWxsIix2YWx1ZTpmdW5jdGlvbihoLHYpe3ZhciB5''@;'; + put 'put ''PWgrMSxDPXk8dGhpcy5ob3RNZW51LmNvdW50Um93cygpP3RoaXMuaG90TWVudS5nZXRDZWxsKHksdik6bnVsbDshQ3x8KE90ZShDKXx8UnRlKEMpfHxCdGUoQyk/dGhpcy5zZWxlY3ROZXh0Q2VsbCh5LHYpOnRoaXMuaG90TWVudS5zZWxlY3RDZWxsKHksdikpfX0se2tleToic2VsZWN0UHJl''@;'; + put 'put ''dkNlbGwiLHZhbHVlOmZ1bmN0aW9uKGgsdil7dmFyIHk9aC0xLEM9eT49MD90aGlzLmhvdE1lbnUuZ2V0Q2VsbCh5LHYpOm51bGw7IUN8fChPdGUoQyl8fFJ0ZShDKXx8QnRlKEMpP3RoaXMuc2VsZWN0UHJldkNlbGwoeSx2KTp0aGlzLmhvdE1lbnUuc2VsZWN0Q2VsbCh5LHYpKX19LHtrZXk6''@;'; + put 'put ''Im1lbnVJdGVtUmVuZGVyZXIiLHZhbHVlOmZ1bmN0aW9uKGgsdix5LEMsSSxqKXt2YXIgTG4sdWU9dGhpcyxfZT1oLmdldFNvdXJjZURhdGFBdFJvdyh5KSxCZT10aGlzLmhvdC5yb290RG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksT3Q9ZnVuY3Rpb24oTG4pe3JldHVybiBMbi5kaXNh''@;'; + put 'put ''YmxlU2VsZWN0aW9ufSwkdD1qOyJmdW5jdGlvbiI9PXR5cGVvZiAkdCYmKCR0PSR0LmNhbGwodGhpcy5ob3QpKSxEcCh2KSxPMChCZSwiaHRJdGVtV3JhcHBlciIpLHYuYXBwZW5kQ2hpbGQoQmUpLExuPV9lLG5ldyBSZWdFeHAoV2wsImkiKS50ZXN0KExuLm5hbWUpP08wKHYsImh0U2VwYXJh''@;'; + put 'put ''dG9yIik6ImZ1bmN0aW9uIj09dHlwZW9mIF9lLnJlbmRlcmVyPyhPMCh2LCJodEN1c3RvbU1lbnVSZW5kZXJlciIpLHYuYXBwZW5kQ2hpbGQoX2UucmVuZGVyZXIoaCxCZSx5LEMsSSwkdCkpKTprdyhCZSwkdCksZnVuY3Rpb24oTG4pe3JldHVybiEwPT09TG4uZGlzYWJsZWR8fCJmdW5jdGlv''@;'; + put 'put ''biI9PXR5cGVvZiBMbi5kaXNhYmxlZCYmITA9PT1Mbi5kaXNhYmxlZC5jYWxsKHVlLmhvdCl9KF9lKT8oTzAodiwiaHREaXNhYmxlZCIpLHRoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIodiwibW91c2VlbnRlciIsZnVuY3Rpb24oKXtyZXR1cm4gaC5kZXNlbGVjdENlbGwoKX0p''@;'; + put 'put ''KTpPdChfZSk/KE8wKHYsImh0U2VsZWN0aW9uRGlzYWJsZWQiKSx0aGlzLmV2ZW50TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKHYsIm1vdXNlZW50ZXIiLGZ1bmN0aW9uKCl7cmV0dXJuIGguZGVzZWxlY3RDZWxsKCl9KSk6ZnVuY3Rpb24oTG4pe3JldHVybiBvMShMbiwic3VibWVudSIpfShf''@;'; + put 'put ''ZSk/KE8wKHYsImh0U3VibWVudSIpLE90KF9lKT90aGlzLmV2ZW50TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKHYsIm1vdXNlZW50ZXIiLGZ1bmN0aW9uKCl7cmV0dXJuIGguZGVzZWxlY3RDZWxsKCl9KTp0aGlzLmV2ZW50TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKHYsIm1vdXNlZW50ZXIi''@;'; + put 'put ''LGZ1bmN0aW9uKCl7cmV0dXJuIGguc2VsZWN0Q2VsbCh5LEMsdm9pZCAwLHZvaWQgMCwhMSwhMSl9KSk6KHBsKHYsWyJodFN1Ym1lbnUiLCJodERpc2FibGVkIl0pLE90KF9lKT90aGlzLmV2ZW50TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKHYsIm1vdXNlZW50ZXIiLGZ1bmN0aW9uKCl7cmV0''@;'; + put 'put ''dXJuIGguZGVzZWxlY3RDZWxsKCl9KTp0aGlzLmV2ZW50TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKHYsIm1vdXNlZW50ZXIiLGZ1bmN0aW9uKCl7cmV0dXJuIGguc2VsZWN0Q2VsbCh5LEMsdm9pZCAwLHZvaWQgMCwhMSwhMSl9KSl9fSx7a2V5OiJjcmVhdGVDb250YWluZXIiLHZhbHVlOmZ1''@;'; + put 'put ''bmN0aW9uKCl7dmFyIEMsaD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06bnVsbCx2PXRoaXMub3B0aW9ucy5jb250YWluZXIub3duZXJEb2N1bWVudCx5PWg7cmV0dXJuIHkmJihVMih5KSYmKHk9bnVsbD09PSh5PXkuY2FsbCh0aGlzLmhv''@;'; + put 'put ''dCkpfHxhMSh5KT8iIjp5LnRvU3RyaW5nKCkpLHk9eS5yZXBsYWNlKC9bXkEtejAtOV0vZywiXyIpLHk9IiIuY29uY2F0KHRoaXMub3B0aW9ucy5jbGFzc05hbWUsIlN1Yl8iKS5jb25jYXQoeSksQz12LnF1ZXJ5U2VsZWN0b3IoIi4iLmNvbmNhdCh0aGlzLm9wdGlvbnMuY2xhc3NOYW1lLCIu''@;'; + put 'put ''IikuY29uY2F0KHkpKSksQ3x8KE8wKEM9di5jcmVhdGVFbGVtZW50KCJkaXYiKSwiaHRNZW51ICIuY29uY2F0KHRoaXMub3B0aW9ucy5jbGFzc05hbWUpKSx5JiZPMChDLHkpLHRoaXMub3B0aW9ucy5jb250YWluZXIuYXBwZW5kQ2hpbGQoQykpLEN9fSx7a2V5OiJibG9ja01haW5UYWJsZUNh''@;'; + put 'put ''bGxiYWNrcyIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLl9hZnRlclNjcm9sbENhbGxiYWNrPWZ1bmN0aW9uKCl7fSx0aGlzLmhvdC5hZGRIb29rKCJhZnRlclNjcm9sbFZlcnRpY2FsbHkiLHRoaXMuX2FmdGVyU2Nyb2xsQ2FsbGJhY2spLHRoaXMuaG90LmFkZEhvb2soImFmdGVyU2Nyb2xsSG9y''@;'; + put 'put ''aXpvbnRhbGx5Iix0aGlzLl9hZnRlclNjcm9sbENhbGxiYWNrKX19LHtrZXk6InJlbGVhc2VNYWluVGFibGVDYWxsYmFja3MiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5fYWZ0ZXJTY3JvbGxDYWxsYmFjayYmKHRoaXMuaG90LnJlbW92ZUhvb2soImFmdGVyU2Nyb2xsVmVydGljYWxseSIsdGhp''@;'; + put 'put ''cy5fYWZ0ZXJTY3JvbGxDYWxsYmFjayksdGhpcy5ob3QucmVtb3ZlSG9vaygiYWZ0ZXJTY3JvbGxIb3Jpem9udGFsbHkiLHRoaXMuX2FmdGVyU2Nyb2xsQ2FsbGJhY2spLHRoaXMuX2FmdGVyU2Nyb2xsQ2FsbGJhY2s9bnVsbCl9fSx7a2V5OiJvbkFmdGVySW5pdCIsdmFsdWU6ZnVuY3Rpb24o''@;'; + put 'put ''KXt2YXIgaD10aGlzLmhvdE1lbnUudmlldy5fd3Qud3RUYWJsZSx2PXRoaXMuaG90TWVudS5nZXRTZXR0aW5ncygpLmRhdGEseT1oLmhpZGVyLnN0eWxlLEM9aC5ob2xkZXIuc3R5bGUsST1wYXJzZUludCh5LndpZHRoLDEwKSxqPVN1KHYsZnVuY3Rpb24odWUsX2Upe3JldHVybiB1ZSsoX2Uu''@;'; + put 'put ''bmFtZT09PVdsPzE6MjYpfSwwKTtDLndpZHRoPSIiLmNvbmNhdChJKzMsInB4IiksQy5oZWlnaHQ9IiIuY29uY2F0KGorMywicHgiKSx5LmhlaWdodD1DLmhlaWdodH19LHtrZXk6Im9uQWZ0ZXJTZWxlY3Rpb24iLHZhbHVlOmZ1bmN0aW9uKGgsdix5LEMsSSl7ITE9PT10aGlzLmtleUV2ZW50''@;'; + put 'put ''JiYoSS52YWx1ZT0hMCl9fSx7a2V5OiJvbkRvY3VtZW50TW91c2VEb3duIix2YWx1ZTpmdW5jdGlvbihoKXshdGhpcy5pc09wZW5lZCgpfHwodGhpcy5vcHRpb25zLnN0YW5kYWxvbmUmJnRoaXMuaG90TWVudSYmIV93KGgudGFyZ2V0LHRoaXMuaG90TWVudS5yb290RWxlbWVudCl8fCh0aGlz''@;'; + put 'put ''LmlzQWxsU3ViTWVudXNDbG9zZWQoKXx8dGhpcy5pc1N1Yk1lbnUoKSkmJiFfdyhoLnRhcmdldCwiLmh0TWVudSIpKSYmdGhpcy5jbG9zZSghMCl9fSx7a2V5OiJvbkRvY3VtZW50Q29udGV4dE1lbnUiLHZhbHVlOmZ1bmN0aW9uKGgpeyF0aGlzLmlzT3BlbmVkKCl8fHRsKGgudGFyZ2V0LCJo''@;'; + put 'put ''dENvcmUiKSYmX3coaC50YXJnZXQsdGhpcy5ob3RNZW51LnJvb3RFbGVtZW50KSYmaC5wcmV2ZW50RGVmYXVsdCgpfX1dKSxkfSgpO0IyKFlFZSxjZCk7Y29uc3QgRThlPVlFZTtmdW5jdGlvbiB4OGUoZCl7cmV0dXJuKHg4ZT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09''@;'; + put 'put ''dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihnKXtyZXR1cm4gdHlwZW9mIGd9OmZ1bmN0aW9uKGcpe3JldHVybiBnJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZnLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZnIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgZ30p''@;'; + put 'put ''KGQpfWZ1bmN0aW9uIFVFZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5r''@;'; + put 'put ''ZXksdil9fWZ1bmN0aW9uICRTKCl7cmV0dXJuICRTPSJ1bmRlZmluZWQiIT10eXBlb2YgUmVmbGVjdCYmUmVmbGVjdC5nZXQ/UmVmbGVjdC5nZXQuYmluZCgpOmZ1bmN0aW9uKGcsaCx2KXt2YXIgeT1EYXQoZyxoKTtpZih5KXt2YXIgQz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9y''@;'; + put 'put ''KHksaCk7cmV0dXJuIEMuZ2V0P0MuZ2V0LmNhbGwoYXJndW1lbnRzLmxlbmd0aDwzP2c6dik6Qy52YWx1ZX19LCRTLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBEYXQoZCxnKXtmb3IoOyFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZCxnKSYmbnVsbCE9PShk''@;'; + put 'put ''PUZ2KGQpKTspO3JldHVybiBkfWZ1bmN0aW9uIFQ4ZShkLGcpe3JldHVybihUOGU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24odix5KXtyZXR1cm4gdi5fX3Byb3RvX189eSx2fSkoZCxnKX1mdW5jdGlvbiBSYXQoZCxnKXtpZihn''@;'; + put 'put ''JiYoIm9iamVjdCI9PT14OGUoZyl8fCJmdW5jdGlvbiI9PXR5cGVvZiBnKSlyZXR1cm4gZztpZih2b2lkIDAhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIkRlcml2ZWQgY29uc3RydWN0b3JzIG1heSBvbmx5IHJldHVybiBvYmplY3Qgb3IgdW5kZWZpbmVkIik7cmV0dXJuIFFFZShkKX1mdW5j''@;'; + put 'put ''dGlvbiBRRWUoZCl7aWYodm9pZCAwPT09ZCl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3JldHVybiBkfWZ1bmN0aW9uIEZ2KGQpe3JldHVybihGdj1PYmplY3Quc2V0UHJvdG90eXBl''@;'; + put 'put ''T2Y/T2JqZWN0LmdldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihoKXtyZXR1cm4gaC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihoKX0pKGQpfXZhciBHdGU9ImNvbnRleHRNZW51Ijt6by5nZXRTaW5nbGV0b24oKS5yZWdpc3RlcigiYWZ0ZXJDb250ZXh0TWVudURlZmF1''@;'; + put 'put ''bHRPcHRpb25zIiksem8uZ2V0U2luZ2xldG9uKCkucmVnaXN0ZXIoImJlZm9yZUNvbnRleHRNZW51U2hvdyIpLHpvLmdldFNpbmdsZXRvbigpLnJlZ2lzdGVyKCJhZnRlckNvbnRleHRNZW51U2hvdyIpLHpvLmdldFNpbmdsZXRvbigpLnJlZ2lzdGVyKCJhZnRlckNvbnRleHRNZW51SGlkZSIp''@;'; + put 'put ''LHpvLmdldFNpbmdsZXRvbigpLnJlZ2lzdGVyKCJhZnRlckNvbnRleHRNZW51RXhlY3V0ZSIpO3ZhciBKRWU9ZnVuY3Rpb24oZCl7IWZ1bmN0aW9uIExhdChkLGcpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBnJiZudWxsIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9u''@;'; + put 'put ''IG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiIpO2QucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZyYmZy5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTpkLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBl''@;'; + put 'put ''Iix7d3JpdGFibGU6ITF9KSxnJiZUOGUoZCxnKX0oaCxkKTt2YXIgZz1mdW5jdGlvbiBPYXQoZCl7dmFyIGc9ZnVuY3Rpb24gQmF0KCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBSZWZsZWN0fHwhUmVmbGVjdC5jb25zdHJ1Y3R8fFJlZmxlY3QuY29uc3RydWN0LnNoYW0pcmV0dXJuITE7aWYo''@;'; + put 'put ''ImZ1bmN0aW9uIj09dHlwZW9mIFByb3h5KXJldHVybiEwO3RyeXtyZXR1cm4gQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10sZnVuY3Rpb24oKXt9KSksITB9Y2F0Y2goZCl7cmV0dXJuITF9fSgpO3JldHVybiBmdW5jdGlvbigpe3Zh''@;'; + put 'put ''ciB5LHY9RnYoZCk7aWYoZyl7dmFyIEM9RnYodGhpcykuY29uc3RydWN0b3I7eT1SZWZsZWN0LmNvbnN0cnVjdCh2LGFyZ3VtZW50cyxDKX1lbHNlIHk9di5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIFJhdCh0aGlzLHkpfX0oaCk7ZnVuY3Rpb24gaCh2KXt2YXIgeTtyZXR1cm4gZnVu''@;'; + put 'put ''Y3Rpb24gVGF0KGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsaCksKHk9Zy5jYWxsKHRoaXMsdikpLmV2ZW50TWFuYWdlcj1uZXcgTDEoUUVlKHkpKSx5LmNvbW1hbmRFeGVjdXRv''@;'; + put 'put ''cj1uZXcgTEVlKHkuaG90KSx5Lml0ZW1zRmFjdG9yeT1udWxsLHkubWVudT1udWxsLHl9cmV0dXJuIGZ1bmN0aW9uIElhdChkLGcsaCl7ZyYmVUVlKGQucHJvdG90eXBlLGcpLGgmJlVFZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfSho''@;'; + put 'put ''LFt7a2V5OiJpc0VuYWJsZWQiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuISF0aGlzLmhvdC5nZXRTZXR0aW5ncygpW0d0ZV19fSx7a2V5OiJlbmFibGVQbHVnaW4iLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcztpZighdGhpcy5lbmFibGVkKXt2YXIgQz10aGlzLmhvdC5nZXRTZXR0aW5n''@;'; + put 'put ''cygpW0d0ZV07ImZ1bmN0aW9uIj09dHlwZW9mIEMuY2FsbGJhY2smJnRoaXMuY29tbWFuZEV4ZWN1dG9yLnNldENvbW1vbkNhbGxiYWNrKEMuY2FsbGJhY2spLHRoaXMubWVudT1uZXcgRThlKHRoaXMuaG90LHtjbGFzc05hbWU6Imh0Q29udGV4dE1lbnUiLGtlZXBJblZpZXdwb3J0OiEwLGNv''@;'; + put 'put ''bnRhaW5lcjpDLnVpQ29udGFpbmVyfHx0aGlzLmhvdC5yb290RG9jdW1lbnQuYm9keX0pLHRoaXMubWVudS5hZGRMb2NhbEhvb2soImJlZm9yZU9wZW4iLGZ1bmN0aW9uKCl7cmV0dXJuIHkub25NZW51QmVmb3JlT3BlbigpfSksdGhpcy5tZW51LmFkZExvY2FsSG9vaygiYWZ0ZXJPcGVuIixm''@;'; + put 'put ''dW5jdGlvbigpe3JldHVybiB5Lm9uTWVudUFmdGVyT3BlbigpfSksdGhpcy5tZW51LmFkZExvY2FsSG9vaygiYWZ0ZXJDbG9zZSIsZnVuY3Rpb24oKXtyZXR1cm4geS5vbk1lbnVBZnRlckNsb3NlKCl9KSx0aGlzLm1lbnUuYWRkTG9jYWxIb29rKCJleGVjdXRlQ29tbWFuZCIsZnVuY3Rpb24o''@;'; + put 'put ''KXtmb3IodmFyIEksaj1hcmd1bWVudHMubGVuZ3RoLHVlPW5ldyBBcnJheShqKSxfZT0wO19lPGo7X2UrKyl1ZVtfZV09YXJndW1lbnRzW19lXTtyZXR1cm4oST15LmV4ZWN1dGVDb21tYW5kKS5jYWxsLmFwcGx5KEksW3ldLmNvbmNhdCh1ZSkpfSksdGhpcy5hZGRIb29rKCJhZnRlck9uQ2Vs''@;'; + put 'put ''bENvbnRleHRNZW51IixmdW5jdGlvbihJKXtyZXR1cm4geS5vbkFmdGVyT25DZWxsQ29udGV4dE1lbnUoSSl9KSwkUyhGdihoLnByb3RvdHlwZSksImVuYWJsZVBsdWdpbiIsdGhpcykuY2FsbCh0aGlzKX19fSx7a2V5OiJ1cGRhdGVQbHVnaW4iLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5kaXNh''@;'; + put 'put ''YmxlUGx1Z2luKCksdGhpcy5lbmFibGVQbHVnaW4oKSwkUyhGdihoLnByb3RvdHlwZSksInVwZGF0ZVBsdWdpbiIsdGhpcykuY2FsbCh0aGlzKX19LHtrZXk6ImRpc2FibGVQbHVnaW4iLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5jbG9zZSgpLHRoaXMubWVudSYmKHRoaXMubWVudS5kZXN0cm95''@;'; + put 'put ''KCksdGhpcy5tZW51PW51bGwpLCRTKEZ2KGgucHJvdG90eXBlKSwiZGlzYWJsZVBsdWdpbiIsdGhpcykuY2FsbCh0aGlzKX19LHtrZXk6Im9wZW4iLHZhbHVlOmZ1bmN0aW9uKHkpe2lmKHRoaXMubWVudSYmKHRoaXMucHJlcGFyZU1lbnVJdGVtcygpLHRoaXMubWVudS5vcGVuKCksdGhpcy5t''@;'; + put 'put ''ZW51LmlzT3BlbmVkKCkpKXt2YXIgQz0wLEk9MDtpZih0aGlzLmhvdC5yb290RG9jdW1lbnQhPT10aGlzLm1lbnUuY29udGFpbmVyLm93bmVyRG9jdW1lbnQpe3ZhciB1ZT10aGlzLmhvdC5yb290V2luZG93LmZyYW1lRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxCZT11ZS5sZWZ0''@;'; + put 'put ''O0M9dWUudG9wLWNPKHkudmlldyksST1CZS1NUyh5LnZpZXcpfWVsc2UgQz0tMSpjTyh0aGlzLm1lbnUuaG90TWVudS5yb290V2luZG93KSxJPS0xKk1TKHRoaXMubWVudS5ob3RNZW51LnJvb3RXaW5kb3cpO3RoaXMubWVudS5zZXRQb3NpdGlvbih7dG9wOnBhcnNlSW50KHkucGFnZVksMTAp''@;'; + put 'put ''K0MsbGVmdDpwYXJzZUludCh5LnBhZ2VYLDEwKStJfSl9fX0se2tleToiY2xvc2UiLHZhbHVlOmZ1bmN0aW9uKCl7IXRoaXMubWVudXx8KHRoaXMubWVudS5jbG9zZSgpLHRoaXMuaXRlbXNGYWN0b3J5PW51bGwpfX0se2tleToiZXhlY3V0ZUNvbW1hbmQiLHZhbHVlOmZ1bmN0aW9uKHkpe3Zh''@;'; + put 'put ''ciBDO251bGw9PT10aGlzLml0ZW1zRmFjdG9yeSYmdGhpcy5wcmVwYXJlTWVudUl0ZW1zKCk7Zm9yKHZhciBJPWFyZ3VtZW50cy5sZW5ndGgsaj1uZXcgQXJyYXkoST4xP0ktMTowKSx1ZT0xO3VlPEk7dWUrKylqW3VlLTFdPWFyZ3VtZW50c1t1ZV07KEM9dGhpcy5jb21tYW5kRXhlY3V0b3Ip''@;'; + put 'put ''LmV4ZWN1dGUuYXBwbHkoQyxbeV0uY29uY2F0KGopKX19LHtrZXk6InByZXBhcmVNZW51SXRlbXMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpczt0aGlzLml0ZW1zRmFjdG9yeT1uZXcgTkVlKHRoaXMuaG90LGguREVGQVVMVF9JVEVNUyk7dmFyIEM9dGhpcy5ob3QuZ2V0U2V0dGluZ3Mo''@;'; + put 'put ''KVtHdGVdLEk9e2l0ZW1zOnRoaXMuaXRlbXNGYWN0b3J5LmdldEl0ZW1zKEMpfTt0aGlzLmhvdC5ydW5Ib29rcygiYWZ0ZXJDb250ZXh0TWVudURlZmF1bHRPcHRpb25zIixJKSx0aGlzLml0ZW1zRmFjdG9yeS5zZXRQcmVkZWZpbmVkSXRlbXMoSS5pdGVtcyk7dmFyIGo9dGhpcy5pdGVtc0Zh''@;'; + put 'put ''Y3RvcnkuZ2V0SXRlbXMoQyk7dGhpcy5ob3QucnVuSG9va3MoImJlZm9yZUNvbnRleHRNZW51U2V0SXRlbXMiLGopLHRoaXMubWVudS5zZXRNZW51SXRlbXMoaiksVXIoaixmdW5jdGlvbih1ZSl7cmV0dXJuIHkuY29tbWFuZEV4ZWN1dG9yLnJlZ2lzdGVyQ29tbWFuZCh1ZS5rZXksdWUpfSl9''@;'; + put 'put ''fSx7a2V5OiJvbkFmdGVyT25DZWxsQ29udGV4dE1lbnUiLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPXRoaXMuaG90LmdldFNldHRpbmdzKCksST1DLnJvd0hlYWRlcnMsaj1DLmNvbEhlYWRlcnMsX2U9eS50YXJnZXQ7dGhpcy5jbG9zZSgpLCF0bChfZSwiaGFuZHNvbnRhYmxlSW5wdXQiKSYm''@;'; + put 'put ''KHkucHJldmVudERlZmF1bHQoKSx5LnN0b3BQcm9wYWdhdGlvbigpLChJfHxqfHxmdW5jdGlvbiB1ZShCZSl7cmV0dXJuIlREIj09PUJlLm5vZGVOYW1lfHwiVEQiPT09QmUucGFyZW50Tm9kZS5ub2RlTmFtZX0oX2UpfHx0bChfZSwiY3VycmVudCIpJiZ0bChfZSwid3RCb3JkZXIiKSkmJnRo''@;'; + put 'put ''aXMub3Blbih5KSl9fSx7a2V5OiJvbk1lbnVCZWZvcmVPcGVuIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuaG90LnJ1bkhvb2tzKCJiZWZvcmVDb250ZXh0TWVudVNob3ciLHRoaXMpfX0se2tleToib25NZW51QWZ0ZXJPcGVuIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuaG90LnJ1bkhvb2tzKCJh''@;'; + put 'put ''ZnRlckNvbnRleHRNZW51U2hvdyIsdGhpcyl9fSx7a2V5OiJvbk1lbnVBZnRlckNsb3NlIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuaG90Lmxpc3RlbigpLHRoaXMuaG90LnJ1bkhvb2tzKCJhZnRlckNvbnRleHRNZW51SGlkZSIsdGhpcyl9fSx7a2V5OiJkZXN0cm95Iix2YWx1ZTpmdW5jdGlv''@;'; + put 'put ''bigpe3RoaXMuY2xvc2UoKSx0aGlzLm1lbnUmJnRoaXMubWVudS5kZXN0cm95KCksJFMoRnYoaC5wcm90b3R5cGUpLCJkZXN0cm95Iix0aGlzKS5jYWxsKHRoaXMpfX1dLFt7a2V5OiJQTFVHSU5fS0VZIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gR3RlfX0se2tleToiUExVR0lOX1BSSU9SSVRZ''@;'; + put 'put ''IixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gNzB9fSx7a2V5OiJQTFVHSU5fREVQUyIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuWyJwbHVnaW46QXV0b0NvbHVtblNpemUiXX19LHtrZXk6IkRFRkFVTFRfSVRFTVMiLGdldDpmdW5jdGlvbigpe3JldHVybltqdGUsWnRlLFdsLHZ6LEF6LFdsLFZ0ZSx3''@;'; + put 'put ''eixXbCx6dGUsTnRlLFdsLHl6LFdsLFBwXX19XSksaH0oWXMpO2Z1bmN0aW9uIFhFZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJs''@;'; + put 'put ''ZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fUpFZS5TRVBBUkFUT1I9e25hbWU6V2x9O3ZhciBqYXQ9ZnVuY3Rpb24oKXtmdW5jdGlvbiBkKCl7KGZ1bmN0aW9uIE5hdChkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBj''@;'; + put 'put ''YWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSkodGhpcyxkKSx0aGlzLmRhdGE9e319cmV0dXJuIGZ1bmN0aW9uIFZhdChkLGcsaCl7ZyYmWEVlKGQucHJvdG90eXBlLGcpLGgmJlhFZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShk''@;'; + put 'put ''LFt7a2V5OiJzZXREYXRhIix2YWx1ZTpmdW5jdGlvbihoLHYpe3RoaXMuZGF0YVtoXT12fX0se2tleToiZ2V0RGF0YSIsdmFsdWU6ZnVuY3Rpb24oaCl7cmV0dXJuIHRoaXMuZGF0YVtoXXx8dm9pZCAwfX1dKSxkfSgpO2Z1bmN0aW9uIEtFZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7''@;'; + put 'put ''aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fWZ1bmN0aW9uIFphdChkLGcsaCl7cmV0dXJuIGcmJktFZShkLnBy''@;'; + put 'put ''b3RvdHlwZSxnKSxoJiZLRWUoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxkfXZhciBHYXQ9WmF0KGZ1bmN0aW9uIGQoKXsoZnVuY3Rpb24gemF0KGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fu''@;'; + put 'put ''bm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KSh0aGlzLGQpLHRoaXMuY2xpcGJvYXJkRGF0YT1uZXcgamF0fSk7ZnVuY3Rpb24gJEVlKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25m''@;'; + put 'put ''aWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19dmFyIEk4ZT1mdW5jdGlvbigpe2Z1bmN0aW9uIGQoZyl7KGZ1bmN0aW9uIFdhdChkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJy''@;'; + put 'put ''b3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSkodGhpcyxkKSx0aGlzLnJvb3REb2N1bWVudD1nLmRlZmF1bHRWaWV3P2c6Zy5vd25lckRvY3VtZW50LHRoaXMubWFpbkVsZW1lbnQ9bnVsbCx0aGlzLmV2ZW50TWFuYWdlcj1uZXcgTDEodGhpcyksdGhpcy5saXN0ZW5l''@;'; + put 'put ''cnNDb3VudD1uZXcgV2Vha1NldCx0aGlzLmNvbnRhaW5lcj1nfXJldHVybiBmdW5jdGlvbiBZYXQoZCxnLGgpe2cmJiRFZShkLnByb3RvdHlwZSxnKSxoJiYkRWUoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oZCxbe2tleToidXNlU2Vj''@;'; + put 'put ''b25kYXJ5RWxlbWVudCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD1mdW5jdGlvbiBKYXQoZCl7dmFyIGc9WXRlLmdldChkKTtpZihnKXJldHVybiBnLnBhcmVudEVsZW1lbnR8fGQuYXBwZW5kQ2hpbGQoZyksZzt2YXIgdj0oZC5kZWZhdWx0Vmlldz9kOmQub3duZXJEb2N1bWVudCkuY3JlYXRl''@;'; + put 'put ''RWxlbWVudCgidGV4dGFyZWEiKTtyZXR1cm4gWXRlLnNldChkLHYpLHYuc2V0QXR0cmlidXRlKCJkYXRhLWhvdC1pbnB1dCIsIiIpLHYuY2xhc3NOYW1lPSJIYW5kc29udGFibGVDb3B5UGFzdGUiLHYudGFiSW5kZXg9LTEsdi5hdXRvY29tcGxldGU9Im9mZiIsdi53cmFwPSJoYXJkIix2LnZh''@;'; + put 'put ''bHVlPSIgIixkLmFwcGVuZENoaWxkKHYpLHZ9KHRoaXMuY29udGFpbmVyKTt0aGlzLmxpc3RlbmVyc0NvdW50LmhhcyhoKXx8KHRoaXMubGlzdGVuZXJzQ291bnQuYWRkKGgpLHFFZSh0aGlzLmV2ZW50TWFuYWdlcixoLHRoaXMpKSx0aGlzLm1haW5FbGVtZW50PWh9fSx7a2V5OiJzZXRGb2N1''@;'; + put 'put ''c2FibGVFbGVtZW50Iix2YWx1ZTpmdW5jdGlvbihoKXt0aGlzLmxpc3RlbmVyc0NvdW50LmhhcyhoKXx8KHRoaXMubGlzdGVuZXJzQ291bnQuYWRkKGgpLHFFZSh0aGlzLmV2ZW50TWFuYWdlcixoLHRoaXMpKSx0aGlzLm1haW5FbGVtZW50PWh9fSx7a2V5OiJnZXRGb2N1c2FibGVFbGVtZW50''@;'; + put 'put ''Iix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1haW5FbGVtZW50fX0se2tleToiZm9jdXMiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5tYWluRWxlbWVudC52YWx1ZT0iICIsYjgoKXx8WWJlKHRoaXMubWFpbkVsZW1lbnQpfX1dKSxkfSgpO0IyKEk4ZSxjZCk7dmFyIFd0ZT1uZXcgV2Vh''@;'; + put 'put ''a01hcCxEOGU9ZnVuY3Rpb24oZyxoKXtyZXR1cm4gZnVuY3Rpb24odil7cmV0dXJuIGgucnVuTG9jYWxIb29rcyhnLHYpfX07ZnVuY3Rpb24gcUVlKGQsZyxoKXtkLmFkZEV2ZW50TGlzdGVuZXIoZywiY29weSIsRDhlKCJjb3B5IixoKSksZC5hZGRFdmVudExpc3RlbmVyKGcsImN1dCIsRDhl''@;'; + put 'put ''KCJjdXQiLGgpKSxkLmFkZEV2ZW50TGlzdGVuZXIoZywicGFzdGUiLEQ4ZSgicGFzdGUiLGgpKX12YXIgWXRlPW5ldyBXZWFrTWFwO2Z1bmN0aW9uIGV4ZShkKXtpZihkIGluc3RhbmNlb2YgSThlKXt2YXIgZz1XdGUuZ2V0KGQuY29udGFpbmVyKTtpZigoZz1pc05hTihnKT8wOmcpPjAmJihn''@;'; + put 'put ''LT0xKSxmdW5jdGlvbiBRYXQoZCl7ZC5ldmVudE1hbmFnZXIuY2xlYXIoKX0oZCksZzw9MCl7Zz0wO3ZhciBoPVl0ZS5nZXQoZC5jb250YWluZXIpO2gmJmgucGFyZW50Tm9kZSYmKGgucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChoKSxZdGUuZGVsZXRlKGQuY29udGFpbmVyKSksZC5tYWluRWxl''@;'; + put 'put ''bWVudD1udWxsfVd0ZS5zZXQoZC5jb250YWluZXIsZyl9fWZ1bmN0aW9uIHR4ZShkLGcpeyhudWxsPT1nfHxnPmQubGVuZ3RoKSYmKGc9ZC5sZW5ndGgpO2Zvcih2YXIgaD0wLHY9bmV3IEFycmF5KGcpO2g8ZztoKyspdltoXT1kW2hdO3JldHVybiB2fWZ1bmN0aW9uIFV0ZShkKXtyZXR1cm4o''@;'; + put 'put ''VXRlPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGcpe3JldHVybiB0eXBlb2YgZ306ZnVuY3Rpb24oZyl7cmV0dXJuIGcmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmcuY29uc3RydWN0b3I9PT1TeW1ib2wm''@;'; + put 'put ''JmchPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBnfSkoZCl9ZnVuY3Rpb24gbnhlKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2''@;'; + put 'put ''LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19ZnVuY3Rpb24gcVMoKXtyZXR1cm4gcVM9InVuZGVmaW5lZCIhPXR5cGVvZiBSZWZsZWN0JiZSZWZsZWN0LmdldD9SZWZsZWN0LmdldC5iaW5kKCk6ZnVuY3Rpb24oZyxoLHYpe3ZhciB5PXJsdChnLGgpO2lm''@;'; + put 'put ''KHkpe3ZhciBDPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoeSxoKTtyZXR1cm4gQy5nZXQ/Qy5nZXQuY2FsbChhcmd1bWVudHMubGVuZ3RoPDM/Zzp2KTpDLnZhbHVlfX0scVMuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIHJsdChkLGcpe2Zvcig7IU9iamVjdC5wcm90''@;'; + put 'put ''b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChkLGcpJiZudWxsIT09KGQ9SHYoZCkpOyk7cmV0dXJuIGR9ZnVuY3Rpb24gTDhlKGQsZyl7cmV0dXJuKEw4ZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbih2LHkpe3JldHVybiB2Ll9f''@;'; + put 'put ''cHJvdG9fXz15LHZ9KShkLGcpfWZ1bmN0aW9uIGFsdChkLGcpe2lmKGcmJigib2JqZWN0Ij09PVV0ZShnKXx8ImZ1bmN0aW9uIj09dHlwZW9mIGcpKXJldHVybiBnO2lmKHZvaWQgMCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJu''@;'; + put 'put ''IG9iamVjdCBvciB1bmRlZmluZWQiKTtyZXR1cm4gcnhlKGQpfWZ1bmN0aW9uIHJ4ZShkKXtpZih2b2lkIDA9PT1kKXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcigidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkIik7cmV0dXJuIGR9ZnVu''@;'; + put 'put ''Y3Rpb24gSHYoZCl7cmV0dXJuKEh2PU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3QuZ2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKGgpe3JldHVybiBoLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKGgpfSkoZCl9em8uZ2V0U2luZ2xldG9uKCkucmVnaXN0ZXIoImFm''@;'; + put 'put ''dGVyQ29weUxpbWl0Iiksem8uZ2V0U2luZ2xldG9uKCkucmVnaXN0ZXIoIm1vZGlmeUNvcHlhYmxlUmFuZ2UiKSx6by5nZXRTaW5nbGV0b24oKS5yZWdpc3RlcigiYmVmb3JlQ3V0Iiksem8uZ2V0U2luZ2xldG9uKCkucmVnaXN0ZXIoImFmdGVyQ3V0Iiksem8uZ2V0U2luZ2xldG9uKCkucmVn''@;'; + put 'put ''aXN0ZXIoImJlZm9yZVBhc3RlIiksem8uZ2V0U2luZ2xldG9uKCkucmVnaXN0ZXIoImFmdGVyUGFzdGUiKSx6by5nZXRTaW5nbGV0b24oKS5yZWdpc3RlcigiYmVmb3JlQ29weSIpLHpvLmdldFNpbmdsZXRvbigpLnJlZ2lzdGVyKCJhZnRlckNvcHkiKTt2YXIgUXRlPSJjb3B5UGFzdGUiLHVs''@;'; + put 'put ''dD1bImZyYWdtZW50U2VsZWN0aW9uIl0sZU09bmV3IFdlYWtNYXAsaXhlPVsnPG1ldGEgbmFtZT0iZ2VuZXJhdG9yIiBjb250ZW50PSJIYW5kc29udGFibGUiLz4nLCc8c3R5bGUgdHlwZT0idGV4dC9jc3MiPnRke3doaXRlLXNwYWNlOm5vcm1hbH1icnttc28tZGF0YS1wbGFjZW1lbnQ6c2Ft''@;'; + put 'put ''ZS1jZWxsfTwvc3R5bGU+J10uam9pbigiIiksaGx0PWZ1bmN0aW9uKGQpeyFmdW5jdGlvbiBpbHQoZCxnKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZyYmbnVsbCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rp''@;'; + put 'put ''b24iKTtkLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGcmJmcucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6ZCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZyYmTDhlKGQsZyl9KGgs''@;'; + put 'put ''ZCk7dmFyIGc9ZnVuY3Rpb24gb2x0KGQpe3ZhciBnPWZ1bmN0aW9uIGxsdCgpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0fHxSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBQcm94eSlyZXR1cm4h''@;'; + put 'put ''MDt0cnl7cmV0dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLGZ1bmN0aW9uKCl7fSkpLCEwfWNhdGNoKGQpe3JldHVybiExfX0oKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgeSx2PUh2KGQpO2lmKGcpe3ZhciBDPUh2KHRoaXMp''@;'; + put 'put ''LmNvbnN0cnVjdG9yO3k9UmVmbGVjdC5jb25zdHJ1Y3Qodixhcmd1bWVudHMsQyl9ZWxzZSB5PXYuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBhbHQodGhpcyx5KX19KGgpO2Z1bmN0aW9uIGgodil7dmFyIHk7cmV0dXJuIGZ1bmN0aW9uIHRsdChkLGcpe2lmKCEoZCBpbnN0YW5jZW9m''@;'; + put 'put ''IGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSh0aGlzLGgpLCh5PWcuY2FsbCh0aGlzLHYpKS5jb2x1bW5zTGltaXQ9MS8wLHkuY29weWFibGVSYW5nZXM9W10seS5mb2N1c2FibGVFbGVtZW50PXZvaWQgMCx5LnBhc3RlTW9kZT0i''@;'; + put 'put ''b3ZlcndyaXRlIix5LnJvd3NMaW1pdD0xLzAseS51aUNvbnRhaW5lcj15LmhvdC5yb290RG9jdW1lbnQuYm9keSxlTS5zZXQocnhlKHkpLHtpc1RyaWdnZXJlZEJ5Q29weTohMSxpc1RyaWdnZXJlZEJ5Q3V0OiExLGlzQmVnaW5FZGl0aW5nOiExLGlzRnJhZ21lbnRTZWxlY3Rpb25FbmFibGVk''@;'; + put 'put ''OiExfSkseX1yZXR1cm4gZnVuY3Rpb24gbmx0KGQsZyxoKXtnJiZueGUoZC5wcm90b3R5cGUsZyksaCYmbnhlKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGgsW3trZXk6ImlzRW5hYmxlZCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4h''@;'; + put 'put ''IXRoaXMuaG90LmdldFNldHRpbmdzKClbUXRlXX19LHtrZXk6ImVuYWJsZVBsdWdpbiIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzO2lmKCF0aGlzLmVuYWJsZWQpe3ZhciBDPXRoaXMuaG90LmdldFNldHRpbmdzKCksST1DW1F0ZV0saj1DLmZyYWdtZW50U2VsZWN0aW9uO2VNLmdldCh0''@;'; + put 'put ''aGlzKS5pc0ZyYWdtZW50U2VsZWN0aW9uRW5hYmxlZD0hIWosIm9iamVjdCI9PT1VdGUoSSkmJih0aGlzLnBhc3RlTW9kZT1JLnBhc3RlTW9kZXx8dGhpcy5wYXN0ZU1vZGUsdGhpcy5yb3dzTGltaXQ9aXNOYU4oSS5yb3dzTGltaXQpP3RoaXMucm93c0xpbWl0Okkucm93c0xpbWl0LHRoaXMu''@;'; + put 'put ''Y29sdW1uc0xpbWl0PWlzTmFOKEkuY29sdW1uc0xpbWl0KT90aGlzLmNvbHVtbnNMaW1pdDpJLmNvbHVtbnNMaW1pdCx0aGlzLnVpQ29udGFpbmVyPUkudWlDb250YWluZXJ8fHRoaXMudWlDb250YWluZXIpLHRoaXMuYWRkSG9vaygiYWZ0ZXJDb250ZXh0TWVudURlZmF1bHRPcHRpb25zIixm''@;'; + put 'put ''dW5jdGlvbihfZSl7cmV0dXJuIHkub25BZnRlckNvbnRleHRNZW51RGVmYXVsdE9wdGlvbnMoX2UpfSksdGhpcy5hZGRIb29rKCJhZnRlck9uQ2VsbE1vdXNlVXAiLGZ1bmN0aW9uKCl7cmV0dXJuIHkub25BZnRlck9uQ2VsbE1vdXNlVXAoKX0pLHRoaXMuYWRkSG9vaygiYWZ0ZXJTZWxlY3Rp''@;'; + put 'put ''b25FbmQiLGZ1bmN0aW9uKCl7cmV0dXJuIHkub25BZnRlclNlbGVjdGlvbkVuZCgpfSksdGhpcy5hZGRIb29rKCJiZWZvcmVLZXlEb3duIixmdW5jdGlvbigpe3JldHVybiB5Lm9uQmVmb3JlS2V5RG93bigpfSksdGhpcy5mb2N1c2FibGVFbGVtZW50PWZ1bmN0aW9uIFVhdChkKXt2YXIgZz1u''@;'; + put 'put ''ZXcgSThlKGQpLGg9V3RlLmdldChkKTtyZXR1cm4gaD1pc05hTihoKT8wOmgsV3RlLnNldChkLGgrMSksZ30odGhpcy51aUNvbnRhaW5lciksdGhpcy5mb2N1c2FibGVFbGVtZW50LmFkZExvY2FsSG9vaygiY29weSIsZnVuY3Rpb24oX2Upe3JldHVybiB5Lm9uQ29weShfZSl9KS5hZGRMb2Nh''@;'; + put 'put ''bEhvb2soImN1dCIsZnVuY3Rpb24oX2Upe3JldHVybiB5Lm9uQ3V0KF9lKX0pLmFkZExvY2FsSG9vaygicGFzdGUiLGZ1bmN0aW9uKF9lKXtyZXR1cm4geS5vblBhc3RlKF9lKX0pLHFTKEh2KGgucHJvdG90eXBlKSwiZW5hYmxlUGx1Z2luIix0aGlzKS5jYWxsKHRoaXMpfX19LHtrZXk6InVw''@;'; + put 'put ''ZGF0ZVBsdWdpbiIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmRpc2FibGVQbHVnaW4oKSx0aGlzLmVuYWJsZVBsdWdpbigpLHRoaXMuZ2V0T3JDcmVhdGVGb2N1c2FibGVFbGVtZW50KCkscVMoSHYoaC5wcm90b3R5cGUpLCJ1cGRhdGVQbHVnaW4iLHRoaXMpLmNhbGwodGhpcyl9fSx7a2V5OiJk''@;'; + put 'put ''aXNhYmxlUGx1Z2luIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuZm9jdXNhYmxlRWxlbWVudCYmZXhlKHRoaXMuZm9jdXNhYmxlRWxlbWVudCkscVMoSHYoaC5wcm90b3R5cGUpLCJkaXNhYmxlUGx1Z2luIix0aGlzKS5jYWxsKHRoaXMpfX0se2tleToiY29weSIsdmFsdWU6ZnVuY3Rpb24oKXtl''@;'; + put 'put ''TS5nZXQodGhpcykuaXNUcmlnZ2VyZWRCeUNvcHk9ITAsdGhpcy5nZXRPckNyZWF0ZUZvY3VzYWJsZUVsZW1lbnQoKSx0aGlzLmZvY3VzYWJsZUVsZW1lbnQuZm9jdXMoKSx0aGlzLmhvdC5yb290RG9jdW1lbnQuZXhlY0NvbW1hbmQoImNvcHkiKX19LHtrZXk6ImN1dCIsdmFsdWU6ZnVuY3Rp''@;'; + put 'put ''b24oKXtlTS5nZXQodGhpcykuaXNUcmlnZ2VyZWRCeUN1dD0hMCx0aGlzLmdldE9yQ3JlYXRlRm9jdXNhYmxlRWxlbWVudCgpLHRoaXMuZm9jdXNhYmxlRWxlbWVudC5mb2N1cygpLHRoaXMuaG90LnJvb3REb2N1bWVudC5leGVjQ29tbWFuZCgiY3V0Iil9fSx7a2V5OiJnZXRSYW5nZWRDb3B5''@;'; + put 'put ''YWJsZURhdGEiLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPXRoaXMsST1bXSxqPVtdLHVlPVtdO3JldHVybiBVcih5LGZ1bmN0aW9uKF9lKXtpYShfZS5zdGFydFJvdyxfZS5lbmRSb3csZnVuY3Rpb24oQmUpey0xPT09ai5pbmRleE9mKEJlKSYmai5wdXNoKEJlKX0pLGlhKF9lLnN0YXJ0Q29s''@;'; + put 'put ''LF9lLmVuZENvbCxmdW5jdGlvbihCZSl7LTE9PT11ZS5pbmRleE9mKEJlKSYmdWUucHVzaChCZSl9KX0pLFVyKGosZnVuY3Rpb24oX2Upe3ZhciBCZT1bXTtVcih1ZSxmdW5jdGlvbihOZSl7QmUucHVzaChDLmhvdC5nZXRDb3B5YWJsZURhdGEoX2UsTmUpKX0pLEkucHVzaChCZSl9KSxjeihJ''@;'; + put 'put ''KX19LHtrZXk6ImdldFJhbmdlZERhdGEiLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPXRoaXMsST1bXSxqPVtdLHVlPVtdO3JldHVybiBVcih5LGZ1bmN0aW9uKF9lKXtpYShfZS5zdGFydFJvdyxfZS5lbmRSb3csZnVuY3Rpb24oQmUpey0xPT09ai5pbmRleE9mKEJlKSYmai5wdXNoKEJlKX0p''@;'; + put 'put ''LGlhKF9lLnN0YXJ0Q29sLF9lLmVuZENvbCxmdW5jdGlvbihCZSl7LTE9PT11ZS5pbmRleE9mKEJlKSYmdWUucHVzaChCZSl9KX0pLFVyKGosZnVuY3Rpb24oX2Upe3ZhciBCZT1bXTtVcih1ZSxmdW5jdGlvbihOZSl7QmUucHVzaChDLmhvdC5nZXRDb3B5YWJsZURhdGEoX2UsTmUpKX0pLEku''@;'; + put 'put ''cHVzaChCZSl9KSxJfX0se2tleToicGFzdGUiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOiIiLEM9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFd''@;'; + put 'put ''Onk7aWYoeXx8Qyl7dmFyIEk9bmV3IEdhdDt5JiZJLmNsaXBib2FyZERhdGEuc2V0RGF0YSgidGV4dC9wbGFpbiIseSksQyYmSS5jbGlwYm9hcmREYXRhLnNldERhdGEoInRleHQvaHRtbCIsQyksdGhpcy5nZXRPckNyZWF0ZUZvY3VzYWJsZUVsZW1lbnQoKSx0aGlzLm9uUGFzdGUoSSl9fX0s''@;'; + put 'put ''e2tleToic2V0Q29weWFibGVUZXh0Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXMuaG90LmdldFNlbGVjdGVkUmFuZ2VMYXN0KCk7aWYoeSl7dmFyIEM9eS5nZXRUb3BTdGFydENvcm5lcigpLEk9eS5nZXRCb3R0b21FbmRDb3JuZXIoKSxqPUMucm93LHVlPUMuY29sLF9lPUkucm93LEJl''@;'; + put 'put ''PUkuY29sLE5lPU1hdGgubWluKF9lLGordGhpcy5yb3dzTGltaXQtMSksS2U9TWF0aC5taW4oQmUsdWUrdGhpcy5jb2x1bW5zTGltaXQtMSk7dGhpcy5jb3B5YWJsZVJhbmdlcy5sZW5ndGg9MCx0aGlzLmNvcHlhYmxlUmFuZ2VzLnB1c2goe3N0YXJ0Um93Omosc3RhcnRDb2w6dWUsZW5kUm93''@;'; + put 'put ''Ok5lLGVuZENvbDpLZX0pLHRoaXMuY29weWFibGVSYW5nZXM9dGhpcy5ob3QucnVuSG9va3MoIm1vZGlmeUNvcHlhYmxlUmFuZ2UiLHRoaXMuY29weWFibGVSYW5nZXMpLChfZSE9PU5lfHxCZSE9PUtlKSYmdGhpcy5ob3QucnVuSG9va3MoImFmdGVyQ29weUxpbWl0IixfZS1qKzEsQmUtdWUr''@;'; + put 'put ''MSx0aGlzLnJvd3NMaW1pdCx0aGlzLmNvbHVtbnNMaW1pdCl9fX0se2tleToiZ2V0T3JDcmVhdGVGb2N1c2FibGVFbGVtZW50Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXMuaG90LmdldEFjdGl2ZUVkaXRvcigpLEM9eT95LlRFWFRBUkVBOnZvaWQgMDtDP3RoaXMuZm9jdXNhYmxlRWxl''@;'; + put 'put ''bWVudC5zZXRGb2N1c2FibGVFbGVtZW50KEMpOnRoaXMuZm9jdXNhYmxlRWxlbWVudC51c2VTZWNvbmRhcnlFbGVtZW50KCl9fSx7a2V5OiJpc0VkaXRvck9wZW5lZCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzLmhvdC5nZXRBY3RpdmVFZGl0b3IoKTtyZXR1cm4geSYmeS5pc09wZW5l''@;'; + put 'put ''ZCgpfX0se2tleToicG9wdWxhdGVWYWx1ZXMiLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp0aGlzLmhvdC5nZXRTZWxlY3RlZFJhbmdlTGFzdCgpO2lmKHkubGVuZ3RoKXtmb3IodmFyIEk9eS5s''@;'; + put 'put ''ZW5ndGgsaj15WzBdLmxlbmd0aCx1ZT1bXSxfZT1DLmdldFRvcFN0YXJ0Q29ybmVyKCksQmU9X2Uucm93LE5lPV9lLmNvbCxLZT1DLmdldEJvdHRvbUVuZENvcm5lcigpLGR0PUtlLnJvdyxPdD1LZS5jb2wsJHQ9QmUsZm49TmUsTG49QmUsaXI9TmU7dWUubGVuZ3RoPEl8fCR0PD1kdDspe3Zh''@;'; + put 'put ''ciBtcj10aGlzLmhvdC5nZXRDZWxsTWV0YSgkdCxOZSksU3I9bXIuc2tpcFJvd09uUGFzdGUsd3I9bXIudmlzdWFsUm93O2lmKCR0PXdyKzEsITAhPT1Tcil7TG49d3IsZm49TmU7Zm9yKHZhciBRcj1bXSx5aT11ZS5sZW5ndGglSTtRci5sZW5ndGg8anx8Zm48PU90Oyl7dmFyIEtpPXRoaXMu''@;'; + put 'put ''aG90LmdldENlbGxNZXRhKEJlLGZuKSxTbz1LaS5za2lwQ29sdW1uT25QYXN0ZSxQbz1LaS52aXN1YWxDb2w7aWYoZm49UG8rMSwhMCE9PVNvKXtpcj1Qbzt2YXIgU2E9UXIubGVuZ3RoJWo7UXIucHVzaCh5W3lpXVtTYV0pfX11ZS5wdXNoKFFyKX19cmV0dXJuIHRoaXMuaG90LnBvcHVsYXRl''@;'; + put 'put ''RnJvbUFycmF5KEJlLE5lLHVlLHZvaWQgMCx2b2lkIDAsIkNvcHlQYXN0ZS5wYXN0ZSIsdGhpcy5wYXN0ZU1vZGUpLFtCZSxOZSxMbixpcl19fX0se2tleToib25Db3B5Iix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz1lTS5nZXQodGhpcyk7aWYoKHRoaXMuaG90LmlzTGlzdGVuaW5nKCl8fEMu''@;'; + put 'put ''aXNUcmlnZ2VyZWRCeUNvcHkpJiYhdGhpcy5pc0VkaXRvck9wZW5lZCgpKXt0aGlzLnNldENvcHlhYmxlVGV4dCgpLEMuaXNUcmlnZ2VyZWRCeUNvcHk9ITE7dmFyIEk9dGhpcy5nZXRSYW5nZWREYXRhKHRoaXMuY29weWFibGVSYW5nZXMpO2lmKHRoaXMuaG90LnJ1bkhvb2tzKCJiZWZvcmVD''@;'; + put 'put ''b3B5IixJLHRoaXMuY29weWFibGVSYW5nZXMpKXt2YXIgdWU9Y3ooSSk7aWYoeSYmeS5jbGlwYm9hcmREYXRhKXt2YXIgX2U9TDNlKEkpO3kuY2xpcGJvYXJkRGF0YS5zZXREYXRhKCJ0ZXh0L3BsYWluIix1ZSkseS5jbGlwYm9hcmREYXRhLnNldERhdGEoInRleHQvaHRtbCIsW2l4ZSxfZV0u''@;'; + put 'put ''am9pbigiIikpfWVsc2UidW5kZWZpbmVkIj09dHlwZW9mIENsaXBib2FyZEV2ZW50JiZ0aGlzLmhvdC5yb290V2luZG93LmNsaXBib2FyZERhdGEuc2V0RGF0YSgiVGV4dCIsdWUpO3RoaXMuaG90LnJ1bkhvb2tzKCJhZnRlckNvcHkiLEksdGhpcy5jb3B5YWJsZVJhbmdlcyl9eS5wcmV2ZW50''@;'; + put 'put ''RGVmYXVsdCgpfX19LHtrZXk6Im9uQ3V0Iix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz1lTS5nZXQodGhpcyk7aWYoKHRoaXMuaG90LmlzTGlzdGVuaW5nKCl8fEMuaXNUcmlnZ2VyZWRCeUN1dCkmJiF0aGlzLmlzRWRpdG9yT3BlbmVkKCkpe3RoaXMuc2V0Q29weWFibGVUZXh0KCksQy5pc1Ry''@;'; + put 'put ''aWdnZXJlZEJ5Q3V0PSExO3ZhciBJPXRoaXMuZ2V0UmFuZ2VkRGF0YSh0aGlzLmNvcHlhYmxlUmFuZ2VzKTtpZih0aGlzLmhvdC5ydW5Ib29rcygiYmVmb3JlQ3V0IixJLHRoaXMuY29weWFibGVSYW5nZXMpKXt2YXIgdWU9Y3ooSSk7aWYoeSYmeS5jbGlwYm9hcmREYXRhKXt2YXIgX2U9TDNl''@;'; + put 'put ''KEkpO3kuY2xpcGJvYXJkRGF0YS5zZXREYXRhKCJ0ZXh0L3BsYWluIix1ZSkseS5jbGlwYm9hcmREYXRhLnNldERhdGEoInRleHQvaHRtbCIsW2l4ZSxfZV0uam9pbigiIikpfWVsc2UidW5kZWZpbmVkIj09dHlwZW9mIENsaXBib2FyZEV2ZW50JiZ0aGlzLmhvdC5yb290V2luZG93LmNsaXBi''@;'; + put 'put ''b2FyZERhdGEuc2V0RGF0YSgiVGV4dCIsdWUpO3RoaXMuaG90LmVtcHR5U2VsZWN0ZWRDZWxscygiQ29weVBhc3RlLmN1dCIpLHRoaXMuaG90LnJ1bkhvb2tzKCJhZnRlckN1dCIsSSx0aGlzLmNvcHlhYmxlUmFuZ2VzKX15LnByZXZlbnREZWZhdWx0KCl9fX0se2tleToib25QYXN0ZSIsdmFs''@;'; + put 'put ''dWU6ZnVuY3Rpb24oeSl7aWYodGhpcy5ob3QuaXNMaXN0ZW5pbmcoKSYmIXRoaXMuaXNFZGl0b3JPcGVuZWQoKSl7dmFyIEM7aWYoeSYmeS5wcmV2ZW50RGVmYXVsdCYmeS5wcmV2ZW50RGVmYXVsdCgpLHkmJnZvaWQgMCE9PXkuY2xpcGJvYXJkRGF0YSl7dmFyIEk9cXEoeS5jbGlwYm9hcmRE''@;'; + put 'put ''YXRhLmdldERhdGEoInRleHQvaHRtbCIpLHtBRERfVEFHUzpbIm1ldGEiXSxBRERfQVRUUjpbImNvbnRlbnQiXSxGT1JDRV9CT0RZOiEwfSk7Qz1JJiYvKDx0YWJsZSl8KDxUQUJMRSkvZy50ZXN0KEkpP2NfZShJLHRoaXMuaG90LnJvb3REb2N1bWVudCkuZGF0YTp5LmNsaXBib2FyZERhdGEu''@;'; + put 'put ''Z2V0RGF0YSgidGV4dC9wbGFpbiIpfWVsc2UidW5kZWZpbmVkIj09dHlwZW9mIENsaXBib2FyZEV2ZW50JiZ2b2lkIDAhPT10aGlzLmhvdC5yb290V2luZG93LmNsaXBib2FyZERhdGEmJihDPXRoaXMuaG90LnJvb3RXaW5kb3cuY2xpcGJvYXJkRGF0YS5nZXREYXRhKCJUZXh0IikpO2lmKCJz''@;'; + put 'put ''dHJpbmciPT10eXBlb2YgQyYmKEM9ZnVuY3Rpb24gbnFlKGQpe3ZhciBnPVtbIiJdXTtpZigwPT09ZC5sZW5ndGgpcmV0dXJuIGc7Zm9yKHZhciB5LGg9MCx2PTA7ZC5sZW5ndGg+MCYmeSE9PWQubGVuZ3RoOylpZih5PWQubGVuZ3RoLGQubWF0Y2goQ1NlKSlkPWQucmVwbGFjZShDU2UsIiIp''@;'; + put 'put ''LGdbdl1baCs9MV09IiI7ZWxzZSBpZihkLm1hdGNoKF9TZSkpZD1kLnJlcGxhY2UoX1NlLCIiKSxoPTAsZ1t2Kz0xXT1bIiJdO2Vsc2V7dmFyIEM9IiI7aWYoZC5zdGFydHNXaXRoKCciJykpe2Zvcih2YXIgST0wLGo9ITA7ajspe3ZhciB1ZT1kLnNsaWNlKDAsMSk7JyInPT09dWUmJihJKz0x''@;'; + put 'put ''KSxDKz11ZSwoMD09PShkPWQuc2xpY2UoMSkpLmxlbmd0aHx8ZC5tYXRjaCgvXltcdFxyXG5dLykmJkklMj09MCkmJihqPSExKX1DPUMucmVwbGFjZSgvXiIvLCIiKS5yZXBsYWNlKC8iJC8sIiIpLnJlcGxhY2UoL1siXSovZyxmdW5jdGlvbihCZSl7cmV0dXJuIG5ldyBBcnJheShNYXRoLmZs''@;'; + put 'put ''b29yKEJlLmxlbmd0aC8yKSkuZmlsbCgnIicpLmpvaW4oIiIpfSl9ZWxzZXt2YXIgX2U9ZC5tYXRjaCh0cWUpO2Q9ZC5zbGljZSgoQz1fZT9fZVswXToiIikubGVuZ3RoKX1nW3ZdW2hdPUN9cmV0dXJuIGd9KEMpKSwoIUN8fDAhPT1DLmxlbmd0aCkmJiExIT09dGhpcy5ob3QucnVuSG9va3Mo''@;'; + put 'put ''ImJlZm9yZVBhc3RlIixDLHRoaXMuY29weWFibGVSYW5nZXMpKXt2YXIgX2U9ZnVuY3Rpb24gWGF0KGQsZyl7cmV0dXJuIGZ1bmN0aW9uIGVsdChkKXtpZihBcnJheS5pc0FycmF5KGQpKXJldHVybiBkfShkKXx8ZnVuY3Rpb24gcWF0KGQsZyl7dmFyIGg9bnVsbD09ZD9udWxsOiJ1bmRlZmlu''@;'; + put 'put ''ZWQiIT10eXBlb2YgU3ltYm9sJiZkW1N5bWJvbC5pdGVyYXRvcl18fGRbIkBAaXRlcmF0b3IiXTtpZihudWxsIT1oKXt2YXIgSSxqLHY9W10seT0hMCxDPSExO3RyeXtmb3IoaD1oLmNhbGwoZCk7ISh5PShJPWgubmV4dCgpKS5kb25lKSYmKHYucHVzaChJLnZhbHVlKSwhZ3x8di5sZW5ndGgh''@;'; + put 'put ''PT1nKTt5PSEwKTt9Y2F0Y2godWUpe0M9ITAsaj11ZX1maW5hbGx5e3RyeXsheSYmbnVsbCE9aC5yZXR1cm4mJmgucmV0dXJuKCl9ZmluYWxseXtpZihDKXRocm93IGp9fXJldHVybiB2fX0oZCxnKXx8ZnVuY3Rpb24gJGF0KGQsZyl7aWYoZCl7aWYoInN0cmluZyI9PXR5cGVvZiBkKXJldHVy''@;'; + put 'put ''biB0eGUoZCxnKTt2YXIgaD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZCkuc2xpY2UoOCwtMSk7aWYoIk9iamVjdCI9PT1oJiZkLmNvbnN0cnVjdG9yJiYoaD1kLmNvbnN0cnVjdG9yLm5hbWUpLCJNYXAiPT09aHx8IlNldCI9PT1oKXJldHVybiBBcnJheS5mcm9tKGQpO2lmKCJB''@;'; + put 'put ''cmd1bWVudHMiPT09aHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QoaCkpcmV0dXJuIHR4ZShkLGcpfX0oZCxnKXx8ZnVuY3Rpb24gS2F0KCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVy''@;'; + put 'put ''YWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX0odGhpcy5wb3B1bGF0ZVZhbHVlcyhDKSw0KSxLZT1fZVsyXSxkdD1fZVszXTt0aGlzLmhvdC5zZWxlY3RD''@;'; + put 'put ''ZWxsKF9lWzBdLF9lWzFdLE1hdGgubWluKHRoaXMuaG90LmNvdW50Um93cygpLTEsS2UpLE1hdGgubWluKHRoaXMuaG90LmNvdW50Q29scygpLTEsZHQpKSx0aGlzLmhvdC5ydW5Ib29rcygiYWZ0ZXJQYXN0ZSIsQyx0aGlzLmNvcHlhYmxlUmFuZ2VzKX19fX0se2tleToib25BZnRlckNvbnRl''@;'; + put 'put ''eHRNZW51RGVmYXVsdE9wdGlvbnMiLHZhbHVlOmZ1bmN0aW9uKHkpe3kuaXRlbXMucHVzaCh7bmFtZToiLS0tLS0tLS0tIn0sZnVuY3Rpb24gRmF0KGQpe3JldHVybntrZXk6ImNvcHkiLG5hbWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXRUcmFuc2xhdGVkUGhyYXNlKFI0ZSl9LGNhbGxi''@;'; + put 'put ''YWNrOmZ1bmN0aW9uKCl7ZC5jb3B5KCl9LGRpc2FibGVkOmZ1bmN0aW9uKCl7aWYoMD09PXRoaXMuY291bnRSb3dzKCl8fDA9PT10aGlzLmNvdW50Q29scygpKXJldHVybiEwO3ZhciBoPXRoaXMuZ2V0U2VsZWN0ZWQoKTtyZXR1cm4haHx8aC5sZW5ndGg+MX0saGlkZGVuOiExfX0odGhpcyks''@;'; + put 'put ''ZnVuY3Rpb24gSGF0KGQpe3JldHVybntrZXk6ImN1dCIsbmFtZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmdldFRyYW5zbGF0ZWRQaHJhc2UoQjRlKX0sY2FsbGJhY2s6ZnVuY3Rpb24oKXtkLmN1dCgpfSxkaXNhYmxlZDpmdW5jdGlvbigpe2lmKDA9PT10aGlzLmNvdW50Um93cygpfHwwPT09''@;'; + put 'put ''dGhpcy5jb3VudENvbHMoKSlyZXR1cm4hMDt2YXIgaD10aGlzLmdldFNlbGVjdGVkKCk7cmV0dXJuIWh8fGgubGVuZ3RoPjF9LGhpZGRlbjohMX19KHRoaXMpKX19LHtrZXk6Im9uQWZ0ZXJPbkNlbGxNb3VzZVVwIix2YWx1ZTpmdW5jdGlvbigpeyF0aGlzLmhvdC5pc0xpc3RlbmluZygpfHx0''@;'; + put 'put ''aGlzLmlzRWRpdG9yT3BlbmVkKCl8fHRoaXMuaG90LmdldFNldHRpbmdzKCkuZnJhZ21lbnRTZWxlY3Rpb258fCh0aGlzLmdldE9yQ3JlYXRlRm9jdXNhYmxlRWxlbWVudCgpLHRoaXMuZm9jdXNhYmxlRWxlbWVudC5mb2N1cygpKX19LHtrZXk6Im9uQWZ0ZXJTZWxlY3Rpb25FbmQiLHZhbHVl''@;'; + put 'put ''OmZ1bmN0aW9uKCl7dmFyIEM9ZU0uZ2V0KHRoaXMpLmlzRnJhZ21lbnRTZWxlY3Rpb25FbmFibGVkO3RoaXMuaXNFZGl0b3JPcGVuZWQoKXx8KHRoaXMuZ2V0T3JDcmVhdGVGb2N1c2FibGVFbGVtZW50KCksKCFDfHx0aGlzLmZvY3VzYWJsZUVsZW1lbnQuZ2V0Rm9jdXNhYmxlRWxlbWVudCgp''@;'; + put 'put ''PT09dGhpcy5ob3Qucm9vdERvY3VtZW50LmFjdGl2ZUVsZW1lbnR8fCF6YmUoKSkmJih0aGlzLnNldENvcHlhYmxlVGV4dCgpLHRoaXMuZm9jdXNhYmxlRWxlbWVudC5mb2N1cygpKSl9fSx7a2V5OiJvbkJlZm9yZUtleURvd24iLHZhbHVlOmZ1bmN0aW9uKCl7aWYodGhpcy5ob3QuaXNMaXN0''@;'; + put 'put ''ZW5pbmcoKSYmIXRoaXMuaXNFZGl0b3JPcGVuZWQoKSl7dmFyIHk9dGhpcy5ob3Qucm9vdERvY3VtZW50LmFjdGl2ZUVsZW1lbnQsQz10aGlzLmhvdC5nZXRBY3RpdmVFZGl0b3IoKTshQ3x8eSE9PXRoaXMuZm9jdXNhYmxlRWxlbWVudC5nZXRGb2N1c2FibGVFbGVtZW50KCkmJnkhPT1DLnNl''@;'; + put 'put ''bGVjdHx8KHRoaXMuZ2V0T3JDcmVhdGVGb2N1c2FibGVFbGVtZW50KCksdGhpcy5mb2N1c2FibGVFbGVtZW50LmZvY3VzKCkpfX19LHtrZXk6ImRlc3Ryb3kiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5mb2N1c2FibGVFbGVtZW50JiYoZXhlKHRoaXMuZm9jdXNhYmxlRWxlbWVudCksdGhpcy5m''@;'; + put 'put ''b2N1c2FibGVFbGVtZW50PW51bGwpLHFTKEh2KGgucHJvdG90eXBlKSwiZGVzdHJveSIsdGhpcykuY2FsbCh0aGlzKX19XSxbe2tleToiUExVR0lOX0tFWSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFF0ZX19LHtrZXk6IlNFVFRJTkdfS0VZUyIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuW1F0ZV0u''@;'; + put 'put ''Y29uY2F0KHVsdCl9fSx7a2V5OiJQTFVHSU5fUFJJT1JJVFkiLGdldDpmdW5jdGlvbigpe3JldHVybiA4MH19XSksaH0oWXMpO2Z1bmN0aW9uIG94ZShkLGcpe3JldHVybiJib3JkZXJfcm93Ii5jb25jYXQoZCwiY29sIikuY29uY2F0KGcpfWZ1bmN0aW9uIE84ZShkKXt2YXIgZyxoO3JldHVy''@;'; + put 'put ''bihUbyhkLnN0YXJ0KXx8VG8oZC5sZWZ0KSkmJihkLnN0YXJ0PW51bGwhPT0oZz1kLnN0YXJ0KSYmdm9pZCAwIT09Zz9nOmQubGVmdCksKFRvKGQuZW5kKXx8VG8oZC5yaWdodCkpJiYoZC5lbmQ9bnVsbCE9PShoPWQuZW5kKSYmdm9pZCAwIT09aD9oOmQucmlnaHQpLGRlbGV0ZSBkLmxlZnQs''@;'; + put 'put ''ZGVsZXRlIGQucmlnaHQsZH1mdW5jdGlvbiBDeihkKXtyZXR1cm4gVG8oZC5zdGFydCkmJihkLmxlZnQ9ZC5zdGFydCksVG8oZC5lbmQpJiYoZC5yaWdodD1kLmVuZCksZH1mdW5jdGlvbiBSOGUoZCxnKXtyZXR1cm57aWQ6b3hlKGQsZyksYm9yZGVyOnt3aWR0aDoxLGNvbG9yOiIjMDAwIixj''@;'; + put 'put ''b3JuZXJWaXNpYmxlOiExfSxyb3c6ZCxjb2w6Zyx0b3A6e2hpZGU6ITB9LGJvdHRvbTp7aGlkZTohMH0sc3RhcnQ6e2hpZGU6ITB9LGVuZDp7aGlkZTohMH19fWZ1bmN0aW9uIFZ2KGQsZyl7dmFyIGg9ITE7cmV0dXJuIFVyKGQuZ2V0U2VsZWN0ZWRSYW5nZSgpLGZ1bmN0aW9uKHYpe3YuZm9y''@;'; + put 'put ''QWxsKGZ1bmN0aW9uKHksQyl7aWYoISh5PDB8fEM8MCkpe3ZhciBJPWQuZ2V0Q2VsbE1ldGEoeSxDKS5ib3JkZXJzO2lmKEkpe2lmKCFnKXJldHVybiBoPSEwLCExO2lmKCFvMShJW2ddLCJoaWRlIil8fCExPT09SVtnXS5oaWRlKXJldHVybiBoPSEwLCExfX19KX0pLGh9ZnVuY3Rpb24gSnRl''@;'; + put 'put ''KGQpe3JldHVybic8c3BhbiBjbGFzcz0ic2VsZWN0ZWQiPicuY29uY2F0KFN0cmluZy5mcm9tQ2hhckNvZGUoMTAwMDMpLCI8L3NwYW4+IikuY29uY2F0KGQpfXZhciB2bHQ9bmV3IE1hcChbWyJsZWZ0Iiwic3RhcnQiXSxbInJpZ2h0IiwiZW5kIl1dKTtmdW5jdGlvbiB5bHQoZCl7cmV0dXJu''@;'; + put 'put ''e2tleToiYm9yZGVyczp0b3AiLG5hbWU6ZnVuY3Rpb24oKXt2YXIgaD10aGlzLmdldFRyYW5zbGF0ZWRQaHJhc2UocTRlKTtyZXR1cm4gVnYodGhpcywidG9wIikmJihoPUp0ZShoKSksaH0sY2FsbGJhY2s6ZnVuY3Rpb24oaCx2KXt2YXIgeT1Wdih0aGlzLCJ0b3AiKTtkLnByZXBhcmVCb3Jk''@;'; + put 'put ''ZXIodiwidG9wIix5KX19fWZ1bmN0aW9uIHdsdChkKXt2YXIgZz1kLmhvdC5pc1J0bCgpPyJzdGFydCI6ImVuZCI7cmV0dXJue2tleToiYm9yZGVyczpyaWdodCIsbmFtZTpmdW5jdGlvbigpe3ZhciB2PXRoaXMuZ2V0VHJhbnNsYXRlZFBocmFzZShlcGUpO3JldHVybiBWdih0aGlzLGcpJiYo''@;'; + put 'put ''dj1KdGUodikpLHZ9LGNhbGxiYWNrOmZ1bmN0aW9uKHYseSl7dmFyIEM9VnYodGhpcyxnKTtkLnByZXBhcmVCb3JkZXIoeSxnLEMpfX19ZnVuY3Rpb24gYmx0KGQpe3JldHVybntrZXk6ImJvcmRlcnM6Ym90dG9tIixuYW1lOmZ1bmN0aW9uKCl7dmFyIGg9dGhpcy5nZXRUcmFuc2xhdGVkUGhy''@;'; + put 'put ''YXNlKHRwZSk7cmV0dXJuIFZ2KHRoaXMsImJvdHRvbSIpJiYoaD1KdGUoaCkpLGh9LGNhbGxiYWNrOmZ1bmN0aW9uKGgsdil7dmFyIHk9VnYodGhpcywiYm90dG9tIik7ZC5wcmVwYXJlQm9yZGVyKHYsImJvdHRvbSIseSl9fX1mdW5jdGlvbiBfbHQoZCl7dmFyIGc9ZC5ob3QuaXNSdGwoKT8i''@;'; + put 'put ''ZW5kIjoic3RhcnQiO3JldHVybntrZXk6ImJvcmRlcnM6bGVmdCIsbmFtZTpmdW5jdGlvbigpe3ZhciB2PXRoaXMuZ2V0VHJhbnNsYXRlZFBocmFzZShucGUpO3JldHVybiBWdih0aGlzLGcpJiYodj1KdGUodikpLHZ9LGNhbGxiYWNrOmZ1bmN0aW9uKHYseSl7dmFyIEM9VnYodGhpcyxnKTtk''@;'; + put 'put ''LnByZXBhcmVCb3JkZXIoeSxnLEMpfX19ZnVuY3Rpb24gQ2x0KGQpe3JldHVybntrZXk6ImJvcmRlcnM6bm9fYm9yZGVycyIsbmFtZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmdldFRyYW5zbGF0ZWRQaHJhc2UocnBlKX0sY2FsbGJhY2s6ZnVuY3Rpb24oaCx2KXtkLnByZXBhcmVCb3JkZXIo''@;'; + put 'put ''diwibm9Cb3JkZXJzIil9LGRpc2FibGVkOmZ1bmN0aW9uKCl7cmV0dXJuIVZ2KHRoaXMpfX19ZnVuY3Rpb24gQjhlKGQpe3JldHVybihCOGU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZyl7cmV0dXJuIHR5cGVv''@;'; + put 'put ''ZiBnfTpmdW5jdGlvbihnKXtyZXR1cm4gZyYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZy5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZyE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGd9KShkKX1mdW5jdGlvbiBheGUoZCxnKXtyZXR1cm4gZnVuY3Rpb24gRWx0KGQpe2lm''@;'; + put 'put ''KEFycmF5LmlzQXJyYXkoZCkpcmV0dXJuIGR9KGQpfHxmdW5jdGlvbiBNbHQoZCxnKXt2YXIgaD1udWxsPT1kP251bGw6InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJmRbU3ltYm9sLml0ZXJhdG9yXXx8ZFsiQEBpdGVyYXRvciJdO2lmKG51bGwhPWgpe3ZhciBJLGosdj1bXSx5PSEwLEM9''@;'; + put 'put ''ITE7dHJ5e2ZvcihoPWguY2FsbChkKTshKHk9KEk9aC5uZXh0KCkpLmRvbmUpJiYodi5wdXNoKEkudmFsdWUpLCFnfHx2Lmxlbmd0aCE9PWcpO3k9ITApO31jYXRjaCh1ZSl7Qz0hMCxqPXVlfWZpbmFsbHl7dHJ5eyF5JiZudWxsIT1oLnJldHVybiYmaC5yZXR1cm4oKX1maW5hbGx5e2lmKEMp''@;'; + put 'put ''dGhyb3cgan19cmV0dXJuIHZ9fShkLGcpfHxmdW5jdGlvbiBTbHQoZCxnKXtpZihkKXtpZigic3RyaW5nIj09dHlwZW9mIGQpcmV0dXJuIGx4ZShkLGcpO3ZhciBoPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChkKS5zbGljZSg4LC0xKTtpZigiT2JqZWN0Ij09PWgmJmQuY29uc3Ry''@;'; + put 'put ''dWN0b3ImJihoPWQuY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1ofHwiU2V0Ij09PWgpcmV0dXJuIEFycmF5LmZyb20oZCk7aWYoIkFyZ3VtZW50cyI9PT1ofHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChoKSlyZXR1cm4gbHhlKGQsZyl9fShkLGcp''@;'; + put 'put ''fHxmdW5jdGlvbiBrbHQoKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3Jd''@;'; + put 'put ''KCkgbWV0aG9kLiIpfSgpfWZ1bmN0aW9uIGx4ZShkLGcpeyhudWxsPT1nfHxnPmQubGVuZ3RoKSYmKGc9ZC5sZW5ndGgpO2Zvcih2YXIgaD0wLHY9bmV3IEFycmF5KGcpO2g8ZztoKyspdltoXT1kW2hdO3JldHVybiB2fWZ1bmN0aW9uIHhsdChkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRo''@;'; + put 'put ''cm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfWZ1bmN0aW9uIHN4ZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1''@;'; + put 'put ''ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fWZ1bmN0aW9uIHRNKCl7cmV0dXJuIHRNPSJ1bmRlZmluZWQiIT10eXBlb2YgUmVmbGVjdCYmUmVmbGVjdC5nZXQ/UmVmbGVjdC5nZXQuYmluZCgpOmZ1bmN0aW9uKGcsaCx2KXt2YXIgeT1J''@;'; + put 'put ''bHQoZyxoKTtpZih5KXt2YXIgQz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHksaCk7cmV0dXJuIEMuZ2V0P0MuZ2V0LmNhbGwoYXJndW1lbnRzLmxlbmd0aDwzP2c6dik6Qy52YWx1ZX19LHRNLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBJbHQoZCxnKXtmb3IoOyFP''@;'; + put 'put ''YmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZCxnKSYmbnVsbCE9PShkPWp2KGQpKTspO3JldHVybiBkfWZ1bmN0aW9uIFA4ZShkLGcpe3JldHVybihQOGU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24odix5KXty''@;'; + put 'put ''ZXR1cm4gdi5fX3Byb3RvX189eSx2fSkoZCxnKX1mdW5jdGlvbiBPbHQoZCxnKXtpZihnJiYoIm9iamVjdCI9PT1COGUoZyl8fCJmdW5jdGlvbiI9PXR5cGVvZiBnKSlyZXR1cm4gZztpZih2b2lkIDAhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIkRlcml2ZWQgY29uc3RydWN0b3JzIG1heSBv''@;'; + put 'put ''bmx5IHJldHVybiBvYmplY3Qgb3IgdW5kZWZpbmVkIik7cmV0dXJuIHV4ZShkKX1mdW5jdGlvbiB1eGUoZCl7aWYodm9pZCAwPT09ZCl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3Jl''@;'; + put 'put ''dHVybiBkfWZ1bmN0aW9uIGp2KGQpe3JldHVybihqdj1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihoKXtyZXR1cm4gaC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihoKX0pKGQpfWZ1bmN0aW9uIEJsdChkLGcsaCl7''@;'; + put 'put ''cmV0dXJuIGcgaW4gZD9PYmplY3QuZGVmaW5lUHJvcGVydHkoZCxnLHt2YWx1ZTpoLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZFtnXT1oLGR9dmFyIFh0ZT0iY3VzdG9tQm9yZGVycyIsRmx0PWZ1bmN0aW9uKGQpeyFmdW5jdGlvbiBEbHQoZCxnKXtpZigi''@;'; + put 'put ''ZnVuY3Rpb24iIT10eXBlb2YgZyYmbnVsbCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTtkLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGcmJmcucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6''@;'; + put 'put ''ZCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZyYmUDhlKGQsZyl9KGgsZCk7dmFyIGc9ZnVuY3Rpb24gTGx0KGQpe3ZhciBnPWZ1bmN0aW9uIFJsdCgpe2lmKCJ1bmRlZmluZWQiPT10eXBl''@;'; + put 'put ''b2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0fHxSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBQcm94eSlyZXR1cm4hMDt0cnl7cmV0dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29s''@;'; + put 'put ''ZWFuLFtdLGZ1bmN0aW9uKCl7fSkpLCEwfWNhdGNoKGQpe3JldHVybiExfX0oKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgeSx2PWp2KGQpO2lmKGcpe3ZhciBDPWp2KHRoaXMpLmNvbnN0cnVjdG9yO3k9UmVmbGVjdC5jb25zdHJ1Y3Qodixhcmd1bWVudHMsQyl9ZWxzZSB5PXYuYXBwbHkodGhp''@;'; + put 'put ''cyxhcmd1bWVudHMpO3JldHVybiBPbHQodGhpcyx5KX19KGgpO2Z1bmN0aW9uIGgoKXt2YXIgdjt4bHQodGhpcyxoKTtmb3IodmFyIHk9YXJndW1lbnRzLmxlbmd0aCxDPW5ldyBBcnJheSh5KSxJPTA7STx5O0krKylDW0ldPWFyZ3VtZW50c1tJXTtyZXR1cm4gQmx0KHV4ZSh2PWcuY2FsbC5h''@;'; + put 'put ''cHBseShnLFt0aGlzXS5jb25jYXQoQykpKSwic2F2ZWRCb3JkZXJzIixbXSksdn1yZXR1cm4gZnVuY3Rpb24gVGx0KGQsZyxoKXtnJiZzeGUoZC5wcm90b3R5cGUsZyksaCYmc3hlKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGgsW3tr''@;'; + put 'put ''ZXk6ImlzRW5hYmxlZCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4hIXRoaXMuaG90LmdldFNldHRpbmdzKClbWHRlXX19LHtrZXk6ImVuYWJsZVBsdWdpbiIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzO3RoaXMuZW5hYmxlZHx8KHRoaXMuYWRkSG9vaygiYWZ0ZXJDb250ZXh0TWVudURl''@;'; + put 'put ''ZmF1bHRPcHRpb25zIixmdW5jdGlvbihDKXtyZXR1cm4geS5vbkFmdGVyQ29udGV4dE1lbnVEZWZhdWx0T3B0aW9ucyhDKX0pLHRoaXMuYWRkSG9vaygiaW5pdCIsZnVuY3Rpb24oKXtyZXR1cm4geS5vbkFmdGVySW5pdCgpfSksdE0oanYoaC5wcm90b3R5cGUpLCJlbmFibGVQbHVnaW4iLHRo''@;'; + put 'put ''aXMpLmNhbGwodGhpcykpfX0se2tleToiZGlzYWJsZVBsdWdpbiIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmhpZGVCb3JkZXJzKCksdE0oanYoaC5wcm90b3R5cGUpLCJkaXNhYmxlUGx1Z2luIix0aGlzKS5jYWxsKHRoaXMpfX0se2tleToidXBkYXRlUGx1Z2luIix2YWx1ZTpmdW5jdGlvbigp''@;'; + put 'put ''e3RoaXMuZGlzYWJsZVBsdWdpbigpLHRoaXMuZW5hYmxlUGx1Z2luKCksdGhpcy5jaGFuZ2VCb3JkZXJTZXR0aW5ncygpLHRNKGp2KGgucHJvdG90eXBlKSwidXBkYXRlUGx1Z2luIix0aGlzKS5jYWxsKHRoaXMpfX0se2tleToic2V0Qm9yZGVycyIsdmFsdWU6ZnVuY3Rpb24oeSxDKXt2YXIg''@;'; + put 'put ''ST10aGlzLGo9WyJ0b3AiLCJib3R0b20iLCJzdGFydCIsImVuZCJdLHVlPW51bGw7QyYmKHRoaXMuY2hlY2tTZXR0aW5nc0NvaGVzaW9uKFtDXSksaj1PYmplY3Qua2V5cyhDKSx1ZT1POGUoQykpO3ZhciBCZT11eihfTyh5KSk7VXIoeSxmdW5jdGlvbihOZSl7Zm9yKHZhciBkdD1heGUoQmUo''@;'; + put 'put ''TmUpLDQpLCR0PWR0WzFdLGZuPWR0WzJdLExuPWR0WzNdLGlyPWZ1bmN0aW9uKHdyKXtmb3IodmFyIFFyPWZ1bmN0aW9uKFNvKXtVcihqLGZ1bmN0aW9uKFBvKXtJLnByZXBhcmVCb3JkZXJGcm9tQ3VzdG9tQWRkZWQod3IsU28sdWUsZnVuY3Rpb24gQWx0KGQpe3ZhciBnO3JldHVybiBudWxs''@;'; + put 'put ''IT09KGc9dmx0LmdldChkKSkmJnZvaWQgMCE9PWc/ZzpkfShQbykpfSl9LHlpPSR0O3lpPD1Mbjt5aSs9MSlRcih5aSl9LG1yPWR0WzBdO21yPD1mbjttcis9MSlpcihtcil9KSx0aGlzLmhvdC52aWV3LnJlbmRlcigpfX0se2tleToiZ2V0Qm9yZGVycyIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFy''@;'; + put 'put ''IEM9dGhpcztpZighQXJyYXkuaXNBcnJheSh5KSlyZXR1cm4gdGhpcy5zYXZlZEJvcmRlcnM7dmFyIGo9dXooX08oeSkpLHVlPVtdO3JldHVybiBVcih5LGZ1bmN0aW9uKF9lKXtmb3IodmFyIE5lPWF4ZShqKF9lKSw0KSxkdD1OZVsxXSxPdD1OZVsyXSwkdD1OZVszXSxmbj1mdW5jdGlvbiht''@;'; + put 'put ''cil7Zm9yKHZhciBTcj1mdW5jdGlvbih5aSl7VXIoQy5zYXZlZEJvcmRlcnMsZnVuY3Rpb24oS2kpe0tpLnJvdz09PW1yJiZLaS5jb2w9PT15aSYmdWUucHVzaChDeihLaSkpfSl9LHdyPWR0O3dyPD0kdDt3cis9MSlTcih3cil9LExuPU5lWzBdO0xuPD1PdDtMbis9MSlmbihMbil9KSx1ZX19''@;'; + put 'put ''LHtrZXk6ImNsZWFyQm9yZGVycyIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEM9dGhpczt5P3RoaXMuc2V0Qm9yZGVycyh5KTooVXIodGhpcy5zYXZlZEJvcmRlcnMsZnVuY3Rpb24oSSl7Qy5jbGVhckJvcmRlcnNGcm9tU2VsZWN0aW9uU2V0dGluZ3MoSS5pZCksQy5jbGVhck51bGxDZWxsUmFu''@;'; + put 'put ''Z2UoKSxDLmhvdC5yZW1vdmVDZWxsTWV0YShJLnJvdyxJLmNvbCwiYm9yZGVycyIpfSksdGhpcy5zYXZlZEJvcmRlcnMubGVuZ3RoPTApfX0se2tleToiaW5zZXJ0Qm9yZGVySW50b1NldHRpbmdzIix2YWx1ZTpmdW5jdGlvbih5LEMpe3RoaXMuY2hlY2tTYXZlZEJvcmRlcnMoeSl8fHRoaXMu''@;'; + put 'put ''c2F2ZWRCb3JkZXJzLnB1c2goeSk7dmFyIGo9dGhpcy5ob3QuX2NyZWF0ZUNlbGxSYW5nZSh0aGlzLmhvdC5fY3JlYXRlQ2VsbENvb3Jkcyh5LnJvdyx5LmNvbCkpO3RoaXMuY2hlY2tDdXN0b21TZWxlY3Rpb25zKHksaixDKXx8dGhpcy5ob3Quc2VsZWN0aW9uLmhpZ2hsaWdodC5hZGRDdXN0''@;'; + put 'put ''b21TZWxlY3Rpb24oe2JvcmRlcjp5LHZpc3VhbENlbGxSYW5nZTpqfSl9fSx7a2V5OiJwcmVwYXJlQm9yZGVyRnJvbUN1c3RvbUFkZGVkIix2YWx1ZTpmdW5jdGlvbih5LEMsSSxqKXt2YXIgdWU9dGhpcy5ob3QuY291bnRSb3dzKCksX2U9dGhpcy5ob3QuY291bnRDb2xzKCk7aWYoISh5Pj11''@;'; + put 'put ''ZXx8Qz49X2UpKXt2YXIgQmU9UjhlKHksQyk7SSYmKEJlPWZ1bmN0aW9uIHBsdChkLGcpe3JldHVybiBvMShnLCJib3JkZXIiKSYmZy5ib3JkZXImJihkLmJvcmRlcj1nLmJvcmRlciksbzEoZywidG9wIikmJlRvKGcudG9wKSYmKGcudG9wPyh4bChnLnRvcCl8fChnLnRvcD17d2lkdGg6MSxj''@;'; + put 'put ''b2xvcjoiIzAwMCJ9KSxkLnRvcD1nLnRvcCk6KGcudG9wPXtoaWRlOiEwfSxkLnRvcD1nLnRvcCkpLG8xKGcsImJvdHRvbSIpJiZUbyhnLmJvdHRvbSkmJihnLmJvdHRvbT8oeGwoZy5ib3R0b20pfHwoZy5ib3R0b209e3dpZHRoOjEsY29sb3I6IiMwMDAifSksZC5ib3R0b209Zy5ib3R0b20p''@;'; + put 'put ''OihnLmJvdHRvbT17aGlkZTohMH0sZC5ib3R0b209Zy5ib3R0b20pKSxvMShnLCJzdGFydCIpJiZUbyhnLnN0YXJ0KSYmKGcuc3RhcnQ/KHhsKGcuc3RhcnQpfHwoZy5zdGFydD17d2lkdGg6MSxjb2xvcjoiIzAwMCJ9KSxkLnN0YXJ0PWcuc3RhcnQpOihnLnN0YXJ0PXtoaWRlOiEwfSxkLnN0''@;'; + put 'put ''YXJ0PWcuc3RhcnQpKSxvMShnLCJlbmQiKSYmVG8oZy5lbmQpJiYoZy5lbmQ/KHhsKGcuZW5kKXx8KGcuZW5kPXt3aWR0aDoxLGNvbG9yOiIjMDAwIn0pLGQuZW5kPWcuZW5kKTooZy5lbmQ9e2hpZGU6ITB9LGQuZW5kPWcuZW5kKSksZH0oQmUsSSksVXIodGhpcy5ob3Quc2VsZWN0aW9uLmhp''@;'; + put 'put ''Z2hsaWdodC5jdXN0b21TZWxlY3Rpb25zLGZ1bmN0aW9uKE5lKXtpZihCZS5pZD09PU5lLnNldHRpbmdzLmlkKXJldHVybiBPYmplY3QuYXNzaWduKE5lLnNldHRpbmdzLEkpLEJlLmlkPU5lLnNldHRpbmdzLmlkLEJlLnRvcD1OZS5zZXR0aW5ncy50b3AsQmUuYm90dG9tPU5lLnNldHRpbmdz''@;'; + put 'put ''LmJvdHRvbSxCZS5zdGFydD1OZS5zZXR0aW5ncy5zdGFydCxCZS5lbmQ9TmUuc2V0dGluZ3MuZW5kLCExfSkpLHRoaXMuaG90LnNldENlbGxNZXRhKHksQywiYm9yZGVycyIsQ3ooQmUpKSx0aGlzLmluc2VydEJvcmRlckludG9TZXR0aW5ncyhCZSxqKX19fSx7a2V5OiJwcmVwYXJlQm9yZGVy''@;'; + put 'put ''RnJvbUN1c3RvbUFkZGVkUmFuZ2UiLHZhbHVlOmZ1bmN0aW9uKHksQyl7dmFyIEk9dGhpcyxqPU1hdGgubWluKHkudG8ucm93LHRoaXMuaG90LmNvdW50Um93cygpLTEpLHVlPU1hdGgubWluKHkudG8uY29sLHRoaXMuaG90LmNvdW50Q29scygpLTEpO2lhKHkuZnJvbS5yb3csaixmdW5jdGlv''@;'; + put 'put ''bihfZSl7aWEoeS5mcm9tLmNvbCx1ZSxmdW5jdGlvbihCZSl7dmFyIE5lPVI4ZShfZSxCZSksS2U9MDtfZT09PXkuZnJvbS5yb3cmJm8xKEMsInRvcCIpJiYoS2UrPTEsTmUudG9wPUMudG9wKSxfZT09PXkudG8ucm93JiZvMShDLCJib3R0b20iKSYmKEtlKz0xLE5lLmJvdHRvbT1DLmJvdHRv''@;'; + put 'put ''bSksQmU9PT15LmZyb20uY29sJiZvMShDLCJzdGFydCIpJiYoS2UrPTEsTmUuc3RhcnQ9Qy5zdGFydCksQmU9PT15LnRvLmNvbCYmbzEoQywiZW5kIikmJihLZSs9MSxOZS5lbmQ9Qy5lbmQpLEtlPjAmJihJLmhvdC5zZXRDZWxsTWV0YShfZSxCZSwiYm9yZGVycyIsQ3ooTmUpKSxJLmluc2Vy''@;'; + put 'put ''dEJvcmRlckludG9TZXR0aW5ncyhOZSkpfSl9KX19LHtrZXk6InJlbW92ZUFsbEJvcmRlcnMiLHZhbHVlOmZ1bmN0aW9uKHksQyl7dmFyIEk9b3hlKHksQyk7dGhpcy5zcGxpY2VCb3JkZXIoSSksdGhpcy5jbGVhckJvcmRlcnNGcm9tU2VsZWN0aW9uU2V0dGluZ3MoSSksdGhpcy5jbGVhck51''@;'; + put 'put ''bGxDZWxsUmFuZ2UoKSx0aGlzLmhvdC5yZW1vdmVDZWxsTWV0YSh5LEMsImJvcmRlcnMiKX19LHtrZXk6InNldEJvcmRlciIsdmFsdWU6ZnVuY3Rpb24oeSxDLEksail7dmFyIHVlPXRoaXMuaG90LmdldENlbGxNZXRhKHksQykuYm9yZGVyczt1ZT11ZSYmdm9pZCAwIT09dWUuYm9yZGVyP084''@;'; + put 'put ''ZSh1ZSk6UjhlKHksQyksaj8odWVbSV09e2hpZGU6ITB9LDQ9PT10aGlzLmNvdW50SGlkZSh1ZSk/dGhpcy5yZW1vdmVBbGxCb3JkZXJzKHksQyk6KHRoaXMuY2hlY2tDdXN0b21TZWxlY3Rpb25zRnJvbUNvbnRleHRNZW51KHVlLEksail8fHRoaXMuaW5zZXJ0Qm9yZGVySW50b1NldHRpbmdz''@;'; + put 'put ''KHVlKSx0aGlzLmhvdC5zZXRDZWxsTWV0YSh5LEMsImJvcmRlcnMiLEN6KHVlKSkpKToodWVbSV09e3dpZHRoOjEsY29sb3I6IiMwMDAifSx0aGlzLmNoZWNrQ3VzdG9tU2VsZWN0aW9uc0Zyb21Db250ZXh0TWVudSh1ZSxJLGopfHx0aGlzLmluc2VydEJvcmRlckludG9TZXR0aW5ncyh1ZSks''@;'; + put 'put ''dGhpcy5ob3Quc2V0Q2VsbE1ldGEoeSxDLCJib3JkZXJzIixDeih1ZSkpKX19LHtrZXk6InByZXBhcmVCb3JkZXIiLHZhbHVlOmZ1bmN0aW9uKHksQyxJKXt2YXIgaj10aGlzO1VyKHksZnVuY3Rpb24odWUpe3ZhciBfZT11ZS5zdGFydCxCZT11ZS5lbmQ7aWYoX2Uucm93PT09QmUucm93JiZf''@;'; + put 'put ''ZS5jb2w9PT1CZS5jb2wpIm5vQm9yZGVycyI9PT1DP2oucmVtb3ZlQWxsQm9yZGVycyhfZS5yb3csX2UuY29sKTpqLnNldEJvcmRlcihfZS5yb3csX2UuY29sLEMsSSk7ZWxzZSBzd2l0Y2goQyl7Y2FzZSJub0JvcmRlcnMiOmlhKF9lLmNvbCxCZS5jb2wsZnVuY3Rpb24oTmUpe2lhKF9lLnJv''@;'; + put 'put ''dyxCZS5yb3csZnVuY3Rpb24oS2Upe2oucmVtb3ZlQWxsQm9yZGVycyhLZSxOZSl9KX0pO2JyZWFrO2Nhc2UidG9wIjppYShfZS5jb2wsQmUuY29sLGZ1bmN0aW9uKE5lKXtqLnNldEJvcmRlcihfZS5yb3csTmUsQyxJKX0pO2JyZWFrO2Nhc2UiYm90dG9tIjppYShfZS5jb2wsQmUuY29sLGZ1''@;'; + put 'put ''bmN0aW9uKE5lKXtqLnNldEJvcmRlcihCZS5yb3csTmUsQyxJKX0pO2JyZWFrO2Nhc2Uic3RhcnQiOmlhKF9lLnJvdyxCZS5yb3csZnVuY3Rpb24oTmUpe2ouc2V0Qm9yZGVyKE5lLF9lLmNvbCxDLEkpfSk7YnJlYWs7Y2FzZSJlbmQiOmlhKF9lLnJvdyxCZS5yb3csZnVuY3Rpb24oTmUpe2ou''@;'; + put 'put ''c2V0Qm9yZGVyKE5lLEJlLmNvbCxDLEkpfSl9fSl9fSx7a2V5OiJjcmVhdGVDdXN0b21Cb3JkZXJzIix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz10aGlzO1VyKHksZnVuY3Rpb24oSSl7dmFyIGo9TzhlKEkpO0kucmFuZ2U/Qy5wcmVwYXJlQm9yZGVyRnJvbUN1c3RvbUFkZGVkUmFuZ2UoSS5y''@;'; + put 'put ''YW5nZSxqKTpDLnByZXBhcmVCb3JkZXJGcm9tQ3VzdG9tQWRkZWQoSS5yb3csSS5jb2wsail9KX19LHtrZXk6ImNvdW50SGlkZSIsdmFsdWU6ZnVuY3Rpb24oeSl7cmV0dXJuIFN1KFt5LnRvcCx5LmJvdHRvbSx5LnN0YXJ0LHkuZW5kXSxmdW5jdGlvbihCZSxOZSl7dmFyIEtlPUJlO3JldHVy''@;'; + put 'put ''biBOZSYmTmUuaGlkZSYmKEtlKz0xKSxLZX0sMCl9fSx7a2V5OiJjbGVhckJvcmRlcnNGcm9tU2VsZWN0aW9uU2V0dGluZ3MiLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPU9sKHRoaXMuaG90LnNlbGVjdGlvbi5oaWdobGlnaHQuY3VzdG9tU2VsZWN0aW9ucyxmdW5jdGlvbihJKXtyZXR1cm4g''@;'; + put 'put ''SS5zZXR0aW5ncy5pZH0pLmluZGV4T2YoeSk7Qz4tMSYmdGhpcy5ob3Quc2VsZWN0aW9uLmhpZ2hsaWdodC5jdXN0b21TZWxlY3Rpb25zW0NdLmNsZWFyKCl9fSx7a2V5OiJjbGVhck51bGxDZWxsUmFuZ2UiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcztVcih0aGlzLmhvdC5zZWxlY3Rp''@;'; + put 'put ''b24uaGlnaGxpZ2h0LmN1c3RvbVNlbGVjdGlvbnMsZnVuY3Rpb24oQyxJKXtpZihudWxsPT09Qy5jZWxsUmFuZ2UpcmV0dXJuIHkuaG90LnNlbGVjdGlvbi5oaWdobGlnaHQuY3VzdG9tU2VsZWN0aW9uc1tJXS5kZXN0cm95KCkseS5ob3Quc2VsZWN0aW9uLmhpZ2hsaWdodC5jdXN0b21TZWxl''@;'; + put 'put ''Y3Rpb25zLnNwbGljZShJLDEpLCExfSl9fSx7a2V5OiJoaWRlQm9yZGVycyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzO1VyKHRoaXMuc2F2ZWRCb3JkZXJzLGZ1bmN0aW9uKEMpe3kuY2xlYXJCb3JkZXJzRnJvbVNlbGVjdGlvblNldHRpbmdzKEMuaWQpLHkuY2xlYXJOdWxsQ2VsbFJh''@;'; + put 'put ''bmdlKCl9KX19LHtrZXk6InNwbGljZUJvcmRlciIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEM9T2wodGhpcy5zYXZlZEJvcmRlcnMsZnVuY3Rpb24oSSl7cmV0dXJuIEkuaWR9KS5pbmRleE9mKHkpO0M+LTEmJnRoaXMuc2F2ZWRCb3JkZXJzLnNwbGljZShDLDEpfX0se2tleToiY2hlY2tTYXZl''@;'; + put 'put ''ZEJvcmRlcnMiLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPXRoaXMsST0hMTtyZXR1cm4gND09PXRoaXMuY291bnRIaWRlKHkpPyh0aGlzLnNwbGljZUJvcmRlcih5LmlkKSxJPSEwKTpVcih0aGlzLnNhdmVkQm9yZGVycyxmdW5jdGlvbih1ZSxfZSl7aWYoeS5pZD09PXVlLmlkKXJldHVybiBD''@;'; + put 'put ''LnNhdmVkQm9yZGVyc1tfZV09eSxJPSEwLCExfSksSX19LHtrZXk6ImNoZWNrQ3VzdG9tU2VsZWN0aW9uc0Zyb21Db250ZXh0TWVudSIsdmFsdWU6ZnVuY3Rpb24oeSxDLEkpe3ZhciBqPSExO3JldHVybiBVcih0aGlzLmhvdC5zZWxlY3Rpb24uaGlnaGxpZ2h0LmN1c3RvbVNlbGVjdGlvbnMs''@;'; + put 'put ''ZnVuY3Rpb24odWUpe2lmKHkuaWQ9PT11ZS5zZXR0aW5ncy5pZClyZXR1cm4gR2wodWUuaW5zdGFuY2VCb3JkZXJzLGZ1bmN0aW9uKF9lKXtfZS50b2dnbGVIaWRkZW5DbGFzcyhDLEkpfSksaj0hMCwhMX0pLGp9fSx7a2V5OiJjaGVja0N1c3RvbVNlbGVjdGlvbnMiLHZhbHVlOmZ1bmN0aW9u''@;'; + put 'put ''KHksQyxJKXt2YXIgaj10aGlzLmNvdW50SGlkZSh5KSx1ZT0hMTtyZXR1cm4gND09PWo/KHRoaXMucmVtb3ZlQWxsQm9yZGVycyh5LnJvdyx5LmNvbCksdWU9ITApOlVyKHRoaXMuaG90LnNlbGVjdGlvbi5oaWdobGlnaHQuY3VzdG9tU2VsZWN0aW9ucyxmdW5jdGlvbihfZSl7aWYoeS5pZD09''@;'; + put 'put ''PV9lLnNldHRpbmdzLmlkKXJldHVybiBfZS52aXN1YWxDZWxsUmFuZ2U9QyxfZS5jb21taXQoKSxJJiZHbChfZS5pbnN0YW5jZUJvcmRlcnMsZnVuY3Rpb24oQmUpe0JlLmNoYW5nZUJvcmRlclN0eWxlKEkseSl9KSx1ZT0hMCwhMX0pLHVlfX0se2tleToiY2hhbmdlQm9yZGVyU2V0dGluZ3Mi''@;'; + put 'put ''LHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcy5ob3QuZ2V0U2V0dGluZ3MoKVtYdGVdO2lmKEFycmF5LmlzQXJyYXkoeSkpe3ZhciBDPWdoKHkpO3RoaXMuY2hlY2tTZXR0aW5nc0NvaGVzaW9uKEMpLEMubGVuZ3RofHwodGhpcy5zYXZlZEJvcmRlcnM9QyksdGhpcy5jcmVhdGVDdXN0b21C''@;'; + put 'put ''b3JkZXJzKEMpfWVsc2Ugdm9pZCAwIT09eSYmdGhpcy5jcmVhdGVDdXN0b21Cb3JkZXJzKHRoaXMuc2F2ZWRCb3JkZXJzKX19LHtrZXk6ImNoZWNrU2V0dGluZ3NDb2hlc2lvbiIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEM9ZnVuY3Rpb24gZ2x0KGQpe3JldHVybiBkLnNvbWUoZnVuY3Rpb24o''@;'; + put 'put ''Zyl7cmV0dXJuIFRvKGcubGVmdCl8fFRvKGcucmlnaHQpfSl9KHkpLEk9ZnVuY3Rpb24gbWx0KGQpe3JldHVybiBkLnNvbWUoZnVuY3Rpb24oZyl7cmV0dXJuIFRvKGcuc3RhcnQpfHxUbyhnLmVuZCl9KX0oeSk7aWYoQyYmSSl0aHJvdyBuZXcgRXJyb3IoJ1RoZSAibGVmdCIvInJpZ2h0IiBh''@;'; + put 'put ''bmQgInN0YXJ0Ii8iZW5kIiBvcHRpb25zIHNob3VsZCBub3QgYmUgdXNlZCB0b2dldGhlci4gUGxlYXNlIHVzZSBvbmx5IHRoZSBvcHRpb24gInN0YXJ0Ii8iZW5kIi4nKTtpZih0aGlzLmhvdC5pc1J0bCgpJiZDKXRocm93IG5ldyBFcnJvcignVGhlICJsZWZ0Ii8icmlnaHQiIHByb3BlcnRp''@;'; + put 'put ''ZXMgYXJlIG5vdCBzdXBwb3J0ZWQgZm9yIFJUTC4gUGxlYXNlIHVzZSBvcHRpb24gInN0YXJ0Ii8iZW5kIi4nKX19LHtrZXk6Im9uQWZ0ZXJDb250ZXh0TWVudURlZmF1bHRPcHRpb25zIix2YWx1ZTpmdW5jdGlvbih5KXshdGhpcy5ob3QuZ2V0U2V0dGluZ3MoKVtYdGVdfHx5Lml0ZW1zLnB1''@;'; + put 'put ''c2goe25hbWU6Ii0tLS0tLS0tLSJ9LHtrZXk6ImJvcmRlcnMiLG5hbWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXRUcmFuc2xhdGVkUGhyYXNlKCQ0ZSl9LGRpc2FibGVkOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2VsZWN0aW9uLmlzU2VsZWN0ZWRCeUNvcm5lcigpfSxzdWJtZW51Ontp''@;'; + put 'put ''dGVtczpbeWx0KHRoaXMpLHdsdCh0aGlzKSxibHQodGhpcyksX2x0KHRoaXMpLENsdCh0aGlzKV19fSl9fSx7a2V5OiJvbkFmdGVySW5pdCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmNoYW5nZUJvcmRlclNldHRpbmdzKCl9fSx7a2V5OiJkZXN0cm95Iix2YWx1ZTpmdW5jdGlvbigpe3RNKGp2''@;'; + put 'put ''KGgucHJvdG90eXBlKSwiZGVzdHJveSIsdGhpcykuY2FsbCh0aGlzKX19XSxbe2tleToiUExVR0lOX0tFWSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFh0ZX19LHtrZXk6IlBMVUdJTl9QUklPUklUWSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDkwfX1dKSxofShZcyk7ZnVuY3Rpb24gRjhlKGQp''@;'; + put 'put ''e3JldHVybihGOGU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZyl7cmV0dXJuIHR5cGVvZiBnfTpmdW5jdGlvbihnKXtyZXR1cm4gZyYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZy5jb25zdHJ1Y3Rvcj09''@;'; + put 'put ''PVN5bWJvbCYmZyE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGd9KShkKX1mdW5jdGlvbiBjeGUoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUi''@;'; + put 'put ''aW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX1mdW5jdGlvbiBuTSgpe3JldHVybiBuTT0idW5kZWZpbmVkIiE9dHlwZW9mIFJlZmxlY3QmJlJlZmxlY3QuZ2V0P1JlZmxlY3QuZ2V0LmJpbmQoKTpmdW5jdGlvbihnLGgsdil7dmFyIHk9Vmx0''@;'; + put 'put ''KGcsaCk7aWYoeSl7dmFyIEM9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih5LGgpO3JldHVybiBDLmdldD9DLmdldC5jYWxsKGFyZ3VtZW50cy5sZW5ndGg8Mz9nOnYpOkMudmFsdWV9fSxuTS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gVmx0KGQsZyl7Zm9yKDshT2Jq''@;'; + put 'put ''ZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGQsZykmJm51bGwhPT0oZD1adihkKSk7KTtyZXR1cm4gZH1mdW5jdGlvbiBIOGUoZCxnKXtyZXR1cm4oSDhlPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHYseSl7cmV0''@;'; + put 'put ''dXJuIHYuX19wcm90b19fPXksdn0pKGQsZyl9ZnVuY3Rpb24gemx0KGQsZyl7aWYoZyYmKCJvYmplY3QiPT09RjhlKGcpfHwiZnVuY3Rpb24iPT10eXBlb2YgZykpcmV0dXJuIGc7aWYodm9pZCAwIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJEZXJpdmVkIGNvbnN0cnVjdG9ycyBtYXkgb25s''@;'; + put 'put ''eSByZXR1cm4gb2JqZWN0IG9yIHVuZGVmaW5lZCIpO3JldHVybiBmeGUoZCl9ZnVuY3Rpb24gZnhlKGQpe2lmKHZvaWQgMD09PWQpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1''@;'; + put 'put ''cm4gZH1mdW5jdGlvbiBadihkKXtyZXR1cm4oWnY9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24oaCl7cmV0dXJuIGguX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YoaCl9KShkKX12YXIgaHhlPSJkcmFnVG9TY3JvbGwi''@;'; + put 'put ''LFlsdD1mdW5jdGlvbihkKXshZnVuY3Rpb24gamx0KGQsZyl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGcmJm51bGwhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uIik7ZC5wcm90b3R5cGU9T2JqZWN0LmNy''@;'; + put 'put ''ZWF0ZShnJiZnLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOmQsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGcmJkg4ZShkLGcpfShoLGQpO3ZhciBnPWZ1bmN0aW9uIFpsdChkKXt2''@;'; + put 'put ''YXIgZz1mdW5jdGlvbiBHbHQoKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIFJlZmxlY3R8fCFSZWZsZWN0LmNvbnN0cnVjdHx8UmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT10eXBlb2YgUHJveHkpcmV0dXJuITA7dHJ5e3JldHVybiBCb29sZWFuLnByb3Rv''@;'; + put 'put ''dHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSxmdW5jdGlvbigpe30pKSwhMH1jYXRjaChkKXtyZXR1cm4hMX19KCk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHksdj1adihkKTtpZihnKXt2YXIgQz1adih0aGlzKS5jb25zdHJ1Y3Rvcjt5PVJlZmxlY3QuY29u''@;'; + put 'put ''c3RydWN0KHYsYXJndW1lbnRzLEMpfWVsc2UgeT12LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gemx0KHRoaXMseSl9fShoKTtmdW5jdGlvbiBoKHYpe3ZhciB5O3JldHVybiBmdW5jdGlvbiBIbHQoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJD''@;'; + put 'put ''YW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0odGhpcyxoKSwoeT1nLmNhbGwodGhpcyx2KSkuZXZlbnRNYW5hZ2VyPW5ldyBMMShmeGUoeSkpLHkuYm91bmRhcmllcz1udWxsLHkuY2FsbGJhY2s9bnVsbCx5Lmxpc3RlbmluZz0hMSx5fXJldHVybiBmdW5jdGlvbiBObHQoZCxn''@;'; + put 'put ''LGgpe2cmJmN4ZShkLnByb3RvdHlwZSxnKSxoJiZjeGUoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oaCxbe2tleToiaXNFbmFibGVkIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiEhdGhpcy5ob3QuZ2V0U2V0dGluZ3MoKVtoeGVdfX0s''@;'; + put 'put ''e2tleToiZW5hYmxlUGx1Z2luIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXM7dGhpcy5lbmFibGVkfHwodGhpcy5hZGRIb29rKCJhZnRlck9uQ2VsbE1vdXNlRG93biIsZnVuY3Rpb24oQyl7cmV0dXJuIHkuc2V0dXBMaXN0ZW5pbmcoQyl9KSx0aGlzLmFkZEhvb2soImFmdGVyT25DZWxs''@;'; + put 'put ''Q29ybmVyTW91c2VEb3duIixmdW5jdGlvbihDKXtyZXR1cm4geS5zZXR1cExpc3RlbmluZyhDKX0pLHRoaXMucmVnaXN0ZXJFdmVudHMoKSxuTShadihoLnByb3RvdHlwZSksImVuYWJsZVBsdWdpbiIsdGhpcykuY2FsbCh0aGlzKSl9fSx7a2V5OiJ1cGRhdGVQbHVnaW4iLHZhbHVlOmZ1bmN0''@;'; + put 'put ''aW9uKCl7dGhpcy5kaXNhYmxlUGx1Z2luKCksdGhpcy5lbmFibGVQbHVnaW4oKSxuTShadihoLnByb3RvdHlwZSksInVwZGF0ZVBsdWdpbiIsdGhpcykuY2FsbCh0aGlzKX19LHtrZXk6ImRpc2FibGVQbHVnaW4iLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy51bnJlZ2lzdGVyRXZlbnRzKCksbk0o''@;'; + put 'put ''WnYoaC5wcm90b3R5cGUpLCJkaXNhYmxlUGx1Z2luIix0aGlzKS5jYWxsKHRoaXMpfX0se2tleToic2V0Qm91bmRhcmllcyIsdmFsdWU6ZnVuY3Rpb24oeSl7dGhpcy5ib3VuZGFyaWVzPXl9fSx7a2V5OiJzZXRDYWxsYmFjayIsdmFsdWU6ZnVuY3Rpb24oeSl7dGhpcy5jYWxsYmFjaz15fX0s''@;'; + put 'put ''e2tleToiY2hlY2siLHZhbHVlOmZ1bmN0aW9uKHksQyl7dmFyIEk9MCxqPTA7Qzx0aGlzLmJvdW5kYXJpZXMudG9wP2o9Qy10aGlzLmJvdW5kYXJpZXMudG9wOkM+dGhpcy5ib3VuZGFyaWVzLmJvdHRvbSYmKGo9Qy10aGlzLmJvdW5kYXJpZXMuYm90dG9tKSx5PHRoaXMuYm91bmRhcmllcy5s''@;'; + put 'put ''ZWZ0P0k9eS10aGlzLmJvdW5kYXJpZXMubGVmdDp5PnRoaXMuYm91bmRhcmllcy5yaWdodCYmKEk9eS10aGlzLmJvdW5kYXJpZXMucmlnaHQpLHRoaXMuY2FsbGJhY2soSSxqKX19LHtrZXk6Imxpc3RlbiIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmxpc3RlbmluZz0hMH19LHtrZXk6InVubGlz''@;'; + put 'put ''dGVuIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMubGlzdGVuaW5nPSExfX0se2tleToiaXNMaXN0ZW5pbmciLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubGlzdGVuaW5nfX0se2tleToicmVnaXN0ZXJFdmVudHMiLHZhbHVlOmZ1bmN0aW9uKCl7Zm9yKHZhciB5PXRoaXMsST10aGlzLmhv''@;'; + put 'put ''dC5yb290V2luZG93O0k7KXRoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoSS5kb2N1bWVudCwiY29udGV4dG1lbnUiLGZ1bmN0aW9uKCl7cmV0dXJuIHkudW5saXN0ZW4oKX0pLHRoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoSS5kb2N1bWVudCwibW91c2V1cCIs''@;'; + put 'put ''ZnVuY3Rpb24oKXtyZXR1cm4geS51bmxpc3RlbigpfSksdGhpcy5ldmVudE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihJLmRvY3VtZW50LCJtb3VzZW1vdmUiLGZ1bmN0aW9uKGope3JldHVybiB5Lm9uTW91c2VNb3ZlKGopfSksST1zM2UoSSl9fSx7a2V5OiJ1bnJlZ2lzdGVyRXZlbnRzIix2''@;'; + put 'put ''YWx1ZTpmdW5jdGlvbigpe3RoaXMuZXZlbnRNYW5hZ2VyLmNsZWFyKCl9fSx7a2V5OiJzZXR1cExpc3RlbmluZyIsdmFsdWU6ZnVuY3Rpb24oeSl7aWYoIUV3KHkpKXt2YXIgQz10aGlzLmhvdC52aWV3Ll93dC53dFRhYmxlLmhvbGRlcjtDIT09dGhpcy5ob3Qucm9vdFdpbmRvdyYmKHRoaXMu''@;'; + put 'put ''c2V0Qm91bmRhcmllcyhDLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpKSx0aGlzLnNldENhbGxiYWNrKGZ1bmN0aW9uKEksail7STwwP0Muc2Nyb2xsTGVmdC09NTA6ST4wJiYoQy5zY3JvbGxMZWZ0Kz01MCksajwwP0Muc2Nyb2xsVG9wLT0yMDpqPjAmJihDLnNjcm9sbFRvcCs9MjApfSksdGhp''@;'; + put 'put ''cy5saXN0ZW4oKSl9fX0se2tleToib25Nb3VzZU1vdmUiLHZhbHVlOmZ1bmN0aW9uKHkpeyF0aGlzLmlzTGlzdGVuaW5nKCl8fHRoaXMuY2hlY2soeS5jbGllbnRYLHkuY2xpZW50WSl9fSx7a2V5OiJkZXN0cm95Iix2YWx1ZTpmdW5jdGlvbigpe25NKFp2KGgucHJvdG90eXBlKSwiZGVzdHJv''@;'; + put 'put ''eSIsdGhpcykuY2FsbCh0aGlzKX19XSxbe2tleToiUExVR0lOX0tFWSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGh4ZX19LHtrZXk6IlBMVUdJTl9QUklPUklUWSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDEwMH19XSksaH0oWXMpO2Z1bmN0aW9uIE44ZShkKXtyZXR1cm4oTjhlPSJmdW5jdGlv''@;'; + put 'put ''biI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGcpe3JldHVybiB0eXBlb2YgZ306ZnVuY3Rpb24oZyl7cmV0dXJuIGcmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmcuY29uc3RydWN0b3I9PT1TeW1ib2wmJmchPT1TeW1ib2wu''@;'; + put 'put ''cHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBnfSkoZCl9ZnVuY3Rpb24gZHhlKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEw''@;'; + put 'put ''KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19ZnVuY3Rpb24gck0oKXtyZXR1cm4gck09InVuZGVmaW5lZCIhPXR5cGVvZiBSZWZsZWN0JiZSZWZsZWN0LmdldD9SZWZsZWN0LmdldC5iaW5kKCk6ZnVuY3Rpb24oZyxoLHYpe3ZhciB5PUpsdChnLGgpO2lmKHkpe3ZhciBDPU9i''@;'; + put 'put ''amVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoeSxoKTtyZXR1cm4gQy5nZXQ/Qy5nZXQuY2FsbChhcmd1bWVudHMubGVuZ3RoPDM/Zzp2KTpDLnZhbHVlfX0sck0uYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIEpsdChkLGcpe2Zvcig7IU9iamVjdC5wcm90b3R5cGUuaGFzT3du''@;'; + put 'put ''UHJvcGVydHkuY2FsbChkLGcpJiZudWxsIT09KGQ9enYoZCkpOyk7cmV0dXJuIGR9ZnVuY3Rpb24gVjhlKGQsZyl7cmV0dXJuKFY4ZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbih2LHkpe3JldHVybiB2Ll9fcHJvdG9fXz15LHZ9''@;'; + put 'put ''KShkLGcpfWZ1bmN0aW9uICRsdChkLGcpe2lmKGcmJigib2JqZWN0Ij09PU44ZShnKXx8ImZ1bmN0aW9uIj09dHlwZW9mIGcpKXJldHVybiBnO2lmKHZvaWQgMCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1''@;'; + put 'put ''bmRlZmluZWQiKTtyZXR1cm4gcHhlKGQpfWZ1bmN0aW9uIHB4ZShkKXtpZih2b2lkIDA9PT1kKXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcigidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkIik7cmV0dXJuIGR9ZnVuY3Rpb24genYoZCl7''@;'; + put 'put ''cmV0dXJuKHp2PU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3QuZ2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKGgpe3JldHVybiBoLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKGgpfSkoZCl9em8uZ2V0U2luZ2xldG9uKCkucmVnaXN0ZXIoImFmdGVyRHJvcGRvd25N''@;'; + put 'put ''ZW51RGVmYXVsdE9wdGlvbnMiKSx6by5nZXRTaW5nbGV0b24oKS5yZWdpc3RlcigiYmVmb3JlRHJvcGRvd25NZW51U2hvdyIpLHpvLmdldFNpbmdsZXRvbigpLnJlZ2lzdGVyKCJhZnRlckRyb3Bkb3duTWVudVNob3ciKSx6by5nZXRTaW5nbGV0b24oKS5yZWdpc3RlcigiYWZ0ZXJEcm9wZG93''@;'; + put 'put ''bk1lbnVIaWRlIiksem8uZ2V0U2luZ2xldG9uKCkucmVnaXN0ZXIoImFmdGVyRHJvcGRvd25NZW51RXhlY3V0ZSIpO3ZhciBqOGU9ImRyb3Bkb3duTWVudSIsWjhlPSJjaGFuZ2VUeXBlIixneGU9ZnVuY3Rpb24oZCl7IWZ1bmN0aW9uIFhsdChkLGcpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBn''@;'; + put 'put ''JiZudWxsIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiIpO2QucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZyYmZy5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTpkLHdyaXRhYmxlOiEwLGNvbmZp''@;'; + put 'put ''Z3VyYWJsZTohMH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxnJiZWOGUoZCxnKX0oaCxkKTt2YXIgZz1mdW5jdGlvbiBLbHQoZCl7dmFyIGc9ZnVuY3Rpb24gcWx0KCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBSZWZsZWN0fHwhUmVmbGVj''@;'; + put 'put ''dC5jb25zdHJ1Y3R8fFJlZmxlY3QuY29uc3RydWN0LnNoYW0pcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIFByb3h5KXJldHVybiEwO3RyeXtyZXR1cm4gQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10sZnVuY3Rpb24oKXt9''@;'; + put 'put ''KSksITB9Y2F0Y2goZCl7cmV0dXJuITF9fSgpO3JldHVybiBmdW5jdGlvbigpe3ZhciB5LHY9enYoZCk7aWYoZyl7dmFyIEM9enYodGhpcykuY29uc3RydWN0b3I7eT1SZWZsZWN0LmNvbnN0cnVjdCh2LGFyZ3VtZW50cyxDKX1lbHNlIHk9di5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJu''@;'; + put 'put ''ICRsdCh0aGlzLHkpfX0oaCk7ZnVuY3Rpb24gaCh2KXt2YXIgeTtyZXR1cm4gZnVuY3Rpb24gVWx0KGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsaCksKHk9Zy5jYWxsKHRoaXMs''@;'; + put 'put ''dikpLmV2ZW50TWFuYWdlcj1uZXcgTDEocHhlKHkpKSx5LmNvbW1hbmRFeGVjdXRvcj1uZXcgTEVlKHkuaG90KSx5Lml0ZW1zRmFjdG9yeT1udWxsLHkubWVudT1udWxsLHkuaG90LmFkZEhvb2soImFmdGVyR2V0Q29sSGVhZGVyIixmdW5jdGlvbihDLEkpe3JldHVybiB5Lm9uQWZ0ZXJHZXRD''@;'; + put 'put ''b2xIZWFkZXIoQyxJKX0pLHl9cmV0dXJuIGZ1bmN0aW9uIFFsdChkLGcsaCl7ZyYmZHhlKGQucHJvdG90eXBlLGcpLGgmJmR4ZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShoLFt7a2V5OiJpc0VuYWJsZWQiLHZhbHVlOmZ1bmN0aW9u''@;'; + put 'put ''KCl7cmV0dXJuIHRoaXMuaG90LmdldFNldHRpbmdzKClbajhlXX19LHtrZXk6ImVuYWJsZVBsdWdpbiIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzO2lmKCF0aGlzLmVuYWJsZWQpe3RoaXMuaXRlbXNGYWN0b3J5PW5ldyBORWUodGhpcy5ob3QsaC5ERUZBVUxUX0lURU1TKTt2YXIgQz10''@;'; + put 'put ''aGlzLmhvdC5nZXRTZXR0aW5ncygpW2o4ZV0sST17aXRlbXM6dGhpcy5pdGVtc0ZhY3RvcnkuZ2V0SXRlbXMoQyl9O3RoaXMucmVnaXN0ZXJFdmVudHMoKSwiZnVuY3Rpb24iPT10eXBlb2YgQy5jYWxsYmFjayYmdGhpcy5jb21tYW5kRXhlY3V0b3Iuc2V0Q29tbW9uQ2FsbGJhY2soQy5jYWxs''@;'; + put 'put ''YmFjayksck0oenYoaC5wcm90b3R5cGUpLCJlbmFibGVQbHVnaW4iLHRoaXMpLmNhbGwodGhpcyksdGhpcy5jYWxsT25QbHVnaW5zUmVhZHkoZnVuY3Rpb24oKXt5LmhvdC5ydW5Ib29rcygiYWZ0ZXJEcm9wZG93bk1lbnVEZWZhdWx0T3B0aW9ucyIsSSkseS5pdGVtc0ZhY3Rvcnkuc2V0UHJl''@;'; + put 'put ''ZGVmaW5lZEl0ZW1zKEkuaXRlbXMpO3ZhciBqPXkuaXRlbXNGYWN0b3J5LmdldEl0ZW1zKEMpO3kubWVudSYmeS5tZW51LmRlc3Ryb3koKSx5Lm1lbnU9bmV3IEU4ZSh5LmhvdCx7Y2xhc3NOYW1lOiJodERyb3Bkb3duTWVudSIsa2VlcEluVmlld3BvcnQ6ITAsY29udGFpbmVyOkMudWlDb250''@;'; + put 'put ''YWluZXJ8fHkuaG90LnJvb3REb2N1bWVudC5ib2R5fSkseS5ob3QucnVuSG9va3MoImJlZm9yZURyb3Bkb3duTWVudVNldEl0ZW1zIixqKSx5Lm1lbnUuc2V0TWVudUl0ZW1zKGopLHkubWVudS5hZGRMb2NhbEhvb2soImJlZm9yZU9wZW4iLGZ1bmN0aW9uKCl7cmV0dXJuIHkub25NZW51QmVm''@;'; + put 'put ''b3JlT3BlbigpfSkseS5tZW51LmFkZExvY2FsSG9vaygiYWZ0ZXJPcGVuIixmdW5jdGlvbigpe3JldHVybiB5Lm9uTWVudUFmdGVyT3BlbigpfSkseS5tZW51LmFkZExvY2FsSG9vaygiYWZ0ZXJDbG9zZSIsZnVuY3Rpb24oKXtyZXR1cm4geS5vbk1lbnVBZnRlckNsb3NlKCl9KSx5Lm1lbnUu''@;'; + put 'put ''YWRkTG9jYWxIb29rKCJleGVjdXRlQ29tbWFuZCIsZnVuY3Rpb24oKXtmb3IodmFyIHVlLF9lPWFyZ3VtZW50cy5sZW5ndGgsQmU9bmV3IEFycmF5KF9lKSxOZT0wO05lPF9lO05lKyspQmVbTmVdPWFyZ3VtZW50c1tOZV07cmV0dXJuKHVlPXkuZXhlY3V0ZUNvbW1hbmQpLmNhbGwuYXBwbHko''@;'; + put 'put ''dWUsW3ldLmNvbmNhdChCZSkpfSksVXIoaixmdW5jdGlvbih1ZSl7cmV0dXJuIHkuY29tbWFuZEV4ZWN1dG9yLnJlZ2lzdGVyQ29tbWFuZCh1ZS5rZXksdWUpfSl9KX19fSx7a2V5OiJ1cGRhdGVQbHVnaW4iLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5kaXNhYmxlUGx1Z2luKCksdGhpcy5lbmFi''@;'; + put 'put ''bGVQbHVnaW4oKSxyTSh6dihoLnByb3RvdHlwZSksInVwZGF0ZVBsdWdpbiIsdGhpcykuY2FsbCh0aGlzKX19LHtrZXk6ImRpc2FibGVQbHVnaW4iLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5jbG9zZSgpLHRoaXMubWVudSYmdGhpcy5tZW51LmRlc3Ryb3koKSxyTSh6dihoLnByb3RvdHlwZSks''@;'; + put 'put ''ImRpc2FibGVQbHVnaW4iLHRoaXMpLmNhbGwodGhpcyl9fSx7a2V5OiJyZWdpc3RlckV2ZW50cyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzO3RoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIodGhpcy5ob3Qucm9vdEVsZW1lbnQsImNsaWNrIixmdW5jdGlvbihDKXtyZXR1''@;'; + put 'put ''cm4geS5vblRhYmxlQ2xpY2soQyl9KX19LHtrZXk6Im9wZW4iLHZhbHVlOmZ1bmN0aW9uKHkpeyF0aGlzLm1lbnV8fCh0aGlzLm1lbnUub3BlbigpLHkud2lkdGgmJnRoaXMubWVudS5zZXRPZmZzZXQoImxlZnQiLHkud2lkdGgpLHRoaXMubWVudS5zZXRQb3NpdGlvbih5KSl9fSx7a2V5OiJj''@;'; + put 'put ''bG9zZSIsdmFsdWU6ZnVuY3Rpb24oKXshdGhpcy5tZW51fHx0aGlzLm1lbnUuY2xvc2UoKX19LHtrZXk6ImV4ZWN1dGVDb21tYW5kIix2YWx1ZTpmdW5jdGlvbih5KXtmb3IodmFyIEMsST1hcmd1bWVudHMubGVuZ3RoLGo9bmV3IEFycmF5KEk+MT9JLTE6MCksdWU9MTt1ZTxJO3VlKyspalt1''@;'; + put 'put ''ZS0xXT1hcmd1bWVudHNbdWVdOyhDPXRoaXMuY29tbWFuZEV4ZWN1dG9yKS5leGVjdXRlLmFwcGx5KEMsW3ldLmNvbmNhdChqKSl9fSx7a2V5OiJzZXRMaXN0ZW5pbmciLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9IShhcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXSl8''@;'; + put 'put ''fGFyZ3VtZW50c1swXTt0aGlzLm1lbnUuaXNPcGVuZWQoKSYmKHk/dGhpcy5tZW51LmhvdE1lbnUubGlzdGVuKCk6dGhpcy5tZW51LmhvdE1lbnUudW5saXN0ZW4oKSl9fSx7a2V5OiJvblRhYmxlQ2xpY2siLHZhbHVlOmZ1bmN0aW9uKHkpe2lmKHkuc3RvcFByb3BhZ2F0aW9uKCksdGwoeS50''@;'; + put 'put ''YXJnZXQsWjhlKSYmIXRoaXMubWVudS5pc09wZW5lZCgpKXt2YXIgQz0wLEk9MDtpZih0aGlzLmhvdC5yb290RG9jdW1lbnQhPT10aGlzLm1lbnUuY29udGFpbmVyLm93bmVyRG9jdW1lbnQpe3ZhciB1ZT10aGlzLmhvdC5yb290V2luZG93LmZyYW1lRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVu''@;'; + put 'put ''dFJlY3QoKTtDPXVlLnRvcCxJPXVlLmxlZnR9dmFyIE5lPXkudGFyZ2V0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3RoaXMub3Blbih7bGVmdDpOZS5sZWZ0K0ksdG9wOk5lLnRvcCt5LnRhcmdldC5vZmZzZXRIZWlnaHQrMytDLHdpZHRoOk5lLndpZHRoLGhlaWdodDpOZS5oZWlnaHR9KX19''@;'; + put 'put ''fSx7a2V5OiJvbkFmdGVyR2V0Q29sSGVhZGVyIix2YWx1ZTpmdW5jdGlvbih5LEMpe3ZhciBJPUMucGFyZW50Tm9kZTtpZihJKXt2YXIgaj1JLnBhcmVudE5vZGUuY2hpbGROb2Rlcyx1ZT1BcnJheS5wcm90b3R5cGUuaW5kZXhPZi5jYWxsKGosSSk7aWYoISh5PDB8fHVlIT09ai5sZW5ndGgt''@;'; + put 'put ''MSkpe3ZhciBfZT1DLnF1ZXJ5U2VsZWN0b3IoIi4iLmNvbmNhdChaOGUpKTtpZighdGhpcy5lbmFibGVkfHwhX2Upe2lmKCF0aGlzLmVuYWJsZWQpcmV0dXJuIHZvaWQoX2UmJl9lLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoX2UpKTt2YXIgQmU9dGhpcy5ob3Qucm9vdERvY3VtZW50LmNyZWF0''@;'; + put 'put ''ZUVsZW1lbnQoImJ1dHRvbiIpO0JlLmNsYXNzTmFtZT1aOGUsQmUudHlwZT0iYnV0dG9uIixCZS5vbmNsaWNrPWZ1bmN0aW9uKCl7cmV0dXJuITF9LEMuZmlyc3RDaGlsZC5pbnNlcnRCZWZvcmUoQmUsQy5maXJzdENoaWxkLmZpcnN0Q2hpbGQpfX19fX0se2tleToib25NZW51QmVmb3JlT3Bl''@;'; + put 'put ''biIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmhvdC5ydW5Ib29rcygiYmVmb3JlRHJvcGRvd25NZW51U2hvdyIsdGhpcyl9fSx7a2V5OiJvbk1lbnVBZnRlck9wZW4iLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5ob3QucnVuSG9va3MoImFmdGVyRHJvcGRvd25NZW51U2hvdyIsdGhpcyl9fSx7a2V5''@;'; + put 'put ''OiJvbk1lbnVBZnRlckNsb3NlIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuaG90Lmxpc3RlbigpLHRoaXMuaG90LnJ1bkhvb2tzKCJhZnRlckRyb3Bkb3duTWVudUhpZGUiLHRoaXMpfX0se2tleToiZGVzdHJveSIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmNsb3NlKCksdGhpcy5tZW51JiZ0aGlz''@;'; + put 'put ''Lm1lbnUuZGVzdHJveSgpLHJNKHp2KGgucHJvdG90eXBlKSwiZGVzdHJveSIsdGhpcykuY2FsbCh0aGlzKX19XSxbe2tleToiUExVR0lOX0tFWSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGo4ZX19LHtrZXk6IlBMVUdJTl9QUklPUklUWSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDIzMH19LHtr''@;'; + put 'put ''ZXk6IlBMVUdJTl9ERVBTIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm5bInBsdWdpbjpBdXRvQ29sdW1uU2l6ZSJdfX0se2tleToiREVGQVVMVF9JVEVNUyIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuW3Z6LEF6LFdsLHd6LFdsLEh0ZSxXbCx5eixXbCxQcF19fV0pLGh9KFlzKTtmdW5jdGlvbiBteGUo''@;'; + put 'put ''ZCxnKXsobnVsbD09Z3x8Zz5kLmxlbmd0aCkmJihnPWQubGVuZ3RoKTtmb3IodmFyIGg9MCx2PW5ldyBBcnJheShnKTtoPGc7aCsrKXZbaF09ZFtoXTtyZXR1cm4gdn1mdW5jdGlvbiB2eGUoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9''@;'; + put 'put ''di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX1neGUuU0VQQVJBVE9SPXtuYW1lOldsfTt2YXIgc3N0PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZChnKXsoZnVuY3Rpb24g''@;'; + put 'put ''YXN0KGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KSh0aGlzLGQpLHRoaXMuaG90PWcsdGhpcy5vcHRpb25zPXt9fXJldHVybiBmdW5jdGlvbiBsc3QoZCxnLGgpe2cmJnZ4ZShkLnByb3Rv''@;'; + put 'put ''dHlwZSxnKSxoJiZ2eGUoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oZCxbe2tleToic2V0T3B0aW9ucyIsdmFsdWU6ZnVuY3Rpb24oaCl7dGhpcy5vcHRpb25zPWh9fSx7a2V5OiJnZXREYXRhIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBo''@;'; + put 'put ''PXRoaXMsdj10aGlzLl9nZXREYXRhUmFuZ2UoKSxDPXYuc3RhcnRDb2wsaj12LmVuZENvbCx1ZT10aGlzLm9wdGlvbnMsX2U9W107cmV0dXJuIGlhKHYuc3RhcnRSb3csdi5lbmRSb3csZnVuY3Rpb24oQmUpe3ZhciBOZT1bXTshdWUuZXhwb3J0SGlkZGVuUm93cyYmaC5faXNIaWRkZW5Sb3co''@;'; + put 'put ''QmUpfHwoaWEoQyxqLGZ1bmN0aW9uKEtlKXshdWUuZXhwb3J0SGlkZGVuQ29sdW1ucyYmaC5faXNIaWRkZW5Db2x1bW4oS2UpfHxOZS5wdXNoKGguaG90LmdldERhdGFBdENlbGwoQmUsS2UpKX0pLF9lLnB1c2goTmUpKX0pLF9lfX0se2tleToiZ2V0Um93SGVhZGVycyIsdmFsdWU6ZnVuY3Rp''@;'; + put 'put ''b24oKXt2YXIgaD10aGlzLHY9W107aWYodGhpcy5vcHRpb25zLnJvd0hlYWRlcnMpe3ZhciB5PXRoaXMuX2dldERhdGFSYW5nZSgpLEM9eS5zdGFydFJvdyxJPXkuZW5kUm93LGo9dGhpcy5ob3QuZ2V0Um93SGVhZGVyKCk7aWEoQyxJLGZ1bmN0aW9uKHVlKXshaC5vcHRpb25zLmV4cG9ydEhp''@;'; + put 'put ''ZGRlblJvd3MmJmguX2lzSGlkZGVuUm93KHVlKXx8di5wdXNoKGpbdWVdKX0pfXJldHVybiB2fX0se2tleToiZ2V0Q29sdW1uSGVhZGVycyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD10aGlzLHY9W107aWYodGhpcy5vcHRpb25zLmNvbHVtbkhlYWRlcnMpe3ZhciB5PXRoaXMuX2dldERhdGFS''@;'; + put 'put ''YW5nZSgpLEM9eS5zdGFydENvbCxJPXkuZW5kQ29sLGo9dGhpcy5ob3QuZ2V0Q29sSGVhZGVyKCk7aWEoQyxJLGZ1bmN0aW9uKHVlKXshaC5vcHRpb25zLmV4cG9ydEhpZGRlbkNvbHVtbnMmJmguX2lzSGlkZGVuQ29sdW1uKHVlKXx8di5wdXNoKGpbdWVdKX0pfXJldHVybiB2fX0se2tleToi''@;'; + put 'put ''X2dldERhdGFSYW5nZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD10aGlzLmhvdC5jb3VudENvbHMoKS0xLHY9dGhpcy5ob3QuY291bnRSb3dzKCktMSx5PWZ1bmN0aW9uIHRzdChkLGcpe3JldHVybiBmdW5jdGlvbiBvc3QoZCl7aWYoQXJyYXkuaXNBcnJheShkKSlyZXR1cm4gZH0oZCl8fGZ1''@;'; + put 'put ''bmN0aW9uIGlzdChkLGcpe3ZhciBoPW51bGw9PWQ/bnVsbDoidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmZFtTeW1ib2wuaXRlcmF0b3JdfHxkWyJAQGl0ZXJhdG9yIl07aWYobnVsbCE9aCl7dmFyIEksaix2PVtdLHk9ITAsQz0hMTt0cnl7Zm9yKGg9aC5jYWxsKGQpOyEoeT0oST1oLm5l''@;'; + put 'put ''eHQoKSkuZG9uZSkmJih2LnB1c2goSS52YWx1ZSksIWd8fHYubGVuZ3RoIT09Zyk7eT0hMCk7fWNhdGNoKHVlKXtDPSEwLGo9dWV9ZmluYWxseXt0cnl7IXkmJm51bGwhPWgucmV0dXJuJiZoLnJldHVybigpfWZpbmFsbHl7aWYoQyl0aHJvdyBqfX1yZXR1cm4gdn19KGQsZyl8fGZ1bmN0aW9u''@;'; + put 'put ''IHJzdChkLGcpe2lmKGQpe2lmKCJzdHJpbmciPT10eXBlb2YgZClyZXR1cm4gbXhlKGQsZyk7dmFyIGg9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGQpLnNsaWNlKDgsLTEpO2lmKCJPYmplY3QiPT09aCYmZC5jb25zdHJ1Y3RvciYmKGg9ZC5jb25zdHJ1Y3Rvci5uYW1lKSwiTWFw''@;'; + put 'put ''Ij09PWh8fCJTZXQiPT09aClyZXR1cm4gQXJyYXkuZnJvbShkKTtpZigiQXJndW1lbnRzIj09PWh8fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KGgpKXJldHVybiBteGUoZCxnKX19KGQsZyl8fGZ1bmN0aW9uIG5zdCgpe3Rocm93IG5ldyBUeXBlRXJy''@;'; + put 'put ''b3IoIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9KHRoaXMub3B0aW9ucy5yYW5n''@;'; + put 'put ''ZSw0KSxDPXlbMF0sST12b2lkIDA9PT1DPzA6QyxqPXlbMV0sdWU9dm9pZCAwPT09aj8wOmosX2U9eVsyXSxCZT12b2lkIDA9PT1fZT92Ol9lLE5lPXlbM10sS2U9dm9pZCAwPT09TmU/aDpOZTtyZXR1cm57c3RhcnRSb3c6ST1NYXRoLm1heChJLDApLHN0YXJ0Q29sOnVlPU1hdGgubWF4KHVl''@;'; + put 'put ''LDApLGVuZFJvdzpCZT1NYXRoLm1pbihCZSx2KSxlbmRDb2w6S2U9TWF0aC5taW4oS2UsaCl9fX0se2tleToiX2lzSGlkZGVuUm93Iix2YWx1ZTpmdW5jdGlvbihoKXtyZXR1cm4gdGhpcy5ob3Qucm93SW5kZXhNYXBwZXIuaXNIaWRkZW4odGhpcy5ob3QudG9QaHlzaWNhbFJvdyhoKSl9fSx7''@;'; + put 'put ''a2V5OiJfaXNIaWRkZW5Db2x1bW4iLHZhbHVlOmZ1bmN0aW9uKGgpe3JldHVybiB0aGlzLmhvdC5jb2x1bW5JbmRleE1hcHBlci5pc0hpZGRlbih0aGlzLmhvdC50b1BoeXNpY2FsQ29sdW1uKGgpKX19XSksZH0oKTtjb25zdCB1c3Q9c3N0O2Z1bmN0aW9uIEF4ZShkLGcpe2Zvcih2YXIgaD0w''@;'; + put 'put ''O2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fXZhciBoc3Q9ZnVuY3Rpb24oKXtmdW5jdGlv''@;'; + put 'put ''biBkKGcsaCl7KGZ1bmN0aW9uIGNzdChkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSkodGhpcyxkKSx0aGlzLmRhdGFQcm92aWRlcj1nLHRoaXMub3B0aW9ucz10aGlzLl9tZXJnZU9wdGlv''@;'; + put 'put ''bnMoaCksdGhpcy5kYXRhUHJvdmlkZXIuc2V0T3B0aW9ucyh0aGlzLm9wdGlvbnMpfXJldHVybiBmdW5jdGlvbiBmc3QoZCxnLGgpe2cmJkF4ZShkLnByb3RvdHlwZSxnKSxoJiZBeGUoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oZCxb''@;'; + put 'put ''e2tleToiX21lcmdlT3B0aW9ucyIsdmFsdWU6ZnVuY3Rpb24oaCl7dmFyIHY9YTModGhpcy5jb25zdHJ1Y3Rvci5ERUZBVUxUX09QVElPTlMpLHk9bmV3IERhdGU7cmV0dXJuIHY9STEoYTMoZC5ERUZBVUxUX09QVElPTlMpLHYpLCh2PUkxKHYsaCkpLmZpbGVuYW1lPW8zZSh2LmZpbGVuYW1l''@;'; + put 'put ''LHtZWVlZOnkuZ2V0RnVsbFllYXIoKSxNTToiIi5jb25jYXQoeS5nZXRNb250aCgpKzEpLnBhZFN0YXJ0KDIsIjAiKSxERDoiIi5jb25jYXQoeS5nZXREYXRlKCkpLnBhZFN0YXJ0KDIsIjAiKX0pLHZ9fV0sW3trZXk6IkRFRkFVTFRfT1BUSU9OUyIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJue21p''@;'; + put 'put ''bWVUeXBlOiJ0ZXh0L3BsYWluIixmaWxlRXh0ZW5zaW9uOiJ0eHQiLGZpbGVuYW1lOiJIYW5kc29udGFibGUgW1lZWVldLVtNTV0tW0REXSIsZW5jb2Rpbmc6InV0Zi04Iixib206ITEsY29sdW1uSGVhZGVyczohMSxyb3dIZWFkZXJzOiExLGV4cG9ydEhpZGRlbkNvbHVtbnM6ITEsZXhwb3J0''@;'; + put 'put ''SGlkZGVuUm93czohMSxyYW5nZTpbXX19fV0pLGR9KCk7Y29uc3QgZHN0PWhzdDtmdW5jdGlvbiB6OGUoZCl7cmV0dXJuKHo4ZT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihnKXtyZXR1cm4gdHlwZW9mIGd9OmZ1''@;'; + put 'put ''bmN0aW9uKGcpe3JldHVybiBnJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZnLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZnIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgZ30pKGQpfWZ1bmN0aW9uIHBzdChkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBU''@;'; + put 'put ''eXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfWZ1bmN0aW9uIHl4ZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYo''@;'; + put 'put ''di53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fWZ1bmN0aW9uIEc4ZShkLGcpe3JldHVybihHOGU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24odix5KXtyZXR1cm4gdi5fX3Byb3RvX189eSx2''@;'; + put 'put ''fSkoZCxnKX1mdW5jdGlvbiBBc3QoZCxnKXtpZihnJiYoIm9iamVjdCI9PT16OGUoZyl8fCJmdW5jdGlvbiI9PXR5cGVvZiBnKSlyZXR1cm4gZztpZih2b2lkIDAhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIkRlcml2ZWQgY29uc3RydWN0b3JzIG1heSBvbmx5IHJldHVybiBvYmplY3Qgb3Ig''@;'; + put 'put ''dW5kZWZpbmVkIik7cmV0dXJuIGZ1bmN0aW9uIHlzdChkKXtpZih2b2lkIDA9PT1kKXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcigidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkIik7cmV0dXJuIGR9KGQpfWZ1bmN0aW9uIEt0ZShkKXty''@;'; + put 'put ''ZXR1cm4oS3RlPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3QuZ2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKGgpe3JldHVybiBoLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKGgpfSkoZCl9dmFyIGJzdD1TdHJpbmcuZnJvbUNoYXJDb2RlKDEzKSxfc3Q9U3RyaW5n''@;'; + put 'put ''LmZyb21DaGFyQ29kZSgzNCksQ3N0PVN0cmluZy5mcm9tQ2hhckNvZGUoMTApLGtzdD1mdW5jdGlvbihkKXshZnVuY3Rpb24gbXN0KGQsZyl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGcmJm51bGwhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIg''@;'; + put 'put ''YmUgbnVsbCBvciBhIGZ1bmN0aW9uIik7ZC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShnJiZnLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOmQsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZToh''@;'; + put 'put ''MX0pLGcmJkc4ZShkLGcpfShoLGQpO3ZhciBnPWZ1bmN0aW9uIHZzdChkKXt2YXIgZz1mdW5jdGlvbiB3c3QoKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIFJlZmxlY3R8fCFSZWZsZWN0LmNvbnN0cnVjdHx8UmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT10''@;'; + put 'put ''eXBlb2YgUHJveHkpcmV0dXJuITA7dHJ5e3JldHVybiBCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSxmdW5jdGlvbigpe30pKSwhMH1jYXRjaChkKXtyZXR1cm4hMX19KCk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHksdj1LdGUoZCk7''@;'; + put 'put ''aWYoZyl7dmFyIEM9S3RlKHRoaXMpLmNvbnN0cnVjdG9yO3k9UmVmbGVjdC5jb25zdHJ1Y3Qodixhcmd1bWVudHMsQyl9ZWxzZSB5PXYuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBBc3QodGhpcyx5KX19KGgpO2Z1bmN0aW9uIGgoKXtyZXR1cm4gcHN0KHRoaXMsaCksZy5hcHBseSh0''@;'; + put 'put ''aGlzLGFyZ3VtZW50cyl9cmV0dXJuIGZ1bmN0aW9uIGdzdChkLGcsaCl7ZyYmeXhlKGQucHJvdG90eXBlLGcpLGgmJnl4ZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShoLFt7a2V5OiJleHBvcnQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFy''@;'; + put 'put ''IHk9dGhpcyxDPXRoaXMub3B0aW9ucyxJPXRoaXMuZGF0YVByb3ZpZGVyLmdldERhdGEoKSxqPXRoaXMuZGF0YVByb3ZpZGVyLmdldENvbHVtbkhlYWRlcnMoKSx1ZT1qLmxlbmd0aD4wLF9lPXRoaXMuZGF0YVByb3ZpZGVyLmdldFJvd0hlYWRlcnMoKSxCZT1fZS5sZW5ndGg+MCxOZT1DLmJv''@;'; + put 'put ''bT9TdHJpbmcuZnJvbUNoYXJDb2RlKDY1Mjc5KToiIjtyZXR1cm4gdWUmJihqPU9sKGosZnVuY3Rpb24oS2Upe3JldHVybiB5Ll9lc2NhcGVDZWxsKEtlLCEwKX0pLEJlJiYoTmUrPUMuY29sdW1uRGVsaW1pdGVyKSxOZSs9ai5qb2luKEMuY29sdW1uRGVsaW1pdGVyKSxOZSs9Qy5yb3dEZWxp''@;'; + put 'put ''bWl0ZXIpLFVyKEksZnVuY3Rpb24oS2UsZHQpe2R0PjAmJihOZSs9Qy5yb3dEZWxpbWl0ZXIpLEJlJiYoTmUrPXkuX2VzY2FwZUNlbGwoX2VbZHRdKStDLmNvbHVtbkRlbGltaXRlciksTmUrPUtlLm1hcChmdW5jdGlvbihPdCl7cmV0dXJuIHkuX2VzY2FwZUNlbGwoT3QpfSkuam9pbihDLmNv''@;'; + put 'put ''bHVtbkRlbGltaXRlcil9KSxOZX19LHtrZXk6Il9lc2NhcGVDZWxsIix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXSYmYXJndW1lbnRzWzFdLEk9ZXUoeSk7cmV0dXJuIiIhPT1JJiYoQ3x8SS5pbmRleE9mKGJzdCk+PTB8''@;'; + put 'put ''fEkuaW5kZXhPZihfc3QpPj0wfHxJLmluZGV4T2YoQ3N0KT49MHx8SS5pbmRleE9mKHRoaXMub3B0aW9ucy5jb2x1bW5EZWxpbWl0ZXIpPj0wKSYmKEk9SS5yZXBsYWNlKG5ldyBSZWdFeHAoJyInLCJnIiksJyIiJyksST0nIicuY29uY2F0KEksJyInKSksSX19XSxbe2tleToiREVGQVVMVF9P''@;'; + put 'put ''UFRJT05TIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm57bWltZVR5cGU6InRleHQvY3N2IixmaWxlRXh0ZW5zaW9uOiJjc3YiLGJvbTohMCxjb2x1bW5EZWxpbWl0ZXI6IiwiLHJvd0RlbGltaXRlcjoiXHJcbiJ9fX1dKSxofShkc3QpLFc4ZT1mdW5jdGlvbiBNc3QoZCxnLGgpe3JldHVybiBnIGlu''@;'; + put 'put ''IGQ/T2JqZWN0LmRlZmluZVByb3BlcnR5KGQsZyx7dmFsdWU6aCxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmRbZ109aCxkfSh7fSwiY3N2Iixrc3QpO2Z1bmN0aW9uIHhzdChkLGcsaCl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIFc4ZVtkXT9uZXcgVzhl''@;'; + put 'put ''W2RdKGcsaCk6bnVsbH1mdW5jdGlvbiBZOGUoZCl7cmV0dXJuKFk4ZT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihnKXtyZXR1cm4gdHlwZW9mIGd9OmZ1bmN0aW9uKGcpe3JldHVybiBnJiYiZnVuY3Rpb24iPT10''@;'; + put 'put ''eXBlb2YgU3ltYm9sJiZnLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZnIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgZ30pKGQpfWZ1bmN0aW9uIFRzdChkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMg''@;'; + put 'put ''YSBmdW5jdGlvbiIpfWZ1bmN0aW9uIHd4ZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3Bl''@;'; + put 'put ''cnR5KGQsdi5rZXksdil9fWZ1bmN0aW9uIFU4ZShkLGcpe3JldHVybihVOGU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24odix5KXtyZXR1cm4gdi5fX3Byb3RvX189eSx2fSkoZCxnKX1mdW5jdGlvbiBPc3QoZCxnKXtpZihnJiYo''@;'; + put 'put ''Im9iamVjdCI9PT1ZOGUoZyl8fCJmdW5jdGlvbiI9PXR5cGVvZiBnKSlyZXR1cm4gZztpZih2b2lkIDAhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIkRlcml2ZWQgY29uc3RydWN0b3JzIG1heSBvbmx5IHJldHVybiBvYmplY3Qgb3IgdW5kZWZpbmVkIik7cmV0dXJuIGZ1bmN0aW9uIFJzdChk''@;'; + put 'put ''KXtpZih2b2lkIDA9PT1kKXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcigidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkIik7cmV0dXJuIGR9KGQpfWZ1bmN0aW9uICR0ZShkKXtyZXR1cm4oJHRlPU9iamVjdC5zZXRQcm90b3R5cGVPZj9P''@;'; + put 'put ''YmplY3QuZ2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKGgpe3JldHVybiBoLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKGgpfSkoZCl9dmFyIEhzdD1mdW5jdGlvbihkKXshZnVuY3Rpb24gRHN0KGQsZyl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGcmJm51bGwhPT1nKXRo''@;'; + put 'put ''cm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uIik7ZC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShnJiZnLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOmQsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0p''@;'; + put 'put ''LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGcmJlU4ZShkLGcpfShoLGQpO3ZhciBnPWZ1bmN0aW9uIExzdChkKXt2YXIgZz1mdW5jdGlvbiBCc3QoKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIFJlZmxlY3R8fCFSZWZsZWN0LmNvbnN0cnVjdHx8''@;'; + put 'put ''UmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT10eXBlb2YgUHJveHkpcmV0dXJuITA7dHJ5e3JldHVybiBCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSxmdW5jdGlvbigpe30pKSwhMH1jYXRjaChk''@;'; + put 'put ''KXtyZXR1cm4hMX19KCk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHksdj0kdGUoZCk7aWYoZyl7dmFyIEM9JHRlKHRoaXMpLmNvbnN0cnVjdG9yO3k9UmVmbGVjdC5jb25zdHJ1Y3Qodixhcmd1bWVudHMsQyl9ZWxzZSB5PXYuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBPc3QodGhpcyx5''@;'; + put 'put ''KX19KGgpO2Z1bmN0aW9uIGgoKXtyZXR1cm4gVHN0KHRoaXMsaCksZy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIGZ1bmN0aW9uIElzdChkLGcsaCl7ZyYmd3hlKGQucHJvdG90eXBlLGcpLGgmJnd4ZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0''@;'; + put 'put ''YWJsZTohMX0pfShoLFt7a2V5OiJpc0VuYWJsZWQiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuITB9fSx7a2V5OiJleHBvcnRBc1N0cmluZyIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEM9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOnt9O3Jl''@;'; + put 'put ''dHVybiB0aGlzLl9jcmVhdGVUeXBlRm9ybWF0dGVyKHksQykuZXhwb3J0KCl9fSx7a2V5OiJleHBvcnRBc0Jsb2IiLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp7fTtyZXR1cm4gdGhpcy5fY3Jl''@;'; + put 'put ''YXRlQmxvYih0aGlzLl9jcmVhdGVUeXBlRm9ybWF0dGVyKHksQykpfX0se2tleToiZG93bmxvYWRGaWxlIix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e30sST10aGlzLmhvdCxqPUkucm9vdERv''@;'; + put 'put ''Y3VtZW50LHVlPUkucm9vdFdpbmRvdyxfZT10aGlzLl9jcmVhdGVUeXBlRm9ybWF0dGVyKHksQyksQmU9dGhpcy5fY3JlYXRlQmxvYihfZSksTmU9dWUuVVJMfHx1ZS53ZWJraXRVUkwsS2U9ai5jcmVhdGVFbGVtZW50KCJhIiksZHQ9IiIuY29uY2F0KF9lLm9wdGlvbnMuZmlsZW5hbWUsIi4i''@;'; + put 'put ''KS5jb25jYXQoX2Uub3B0aW9ucy5maWxlRXh0ZW5zaW9uKTtpZih2b2lkIDAhPT1LZS5kb3dubG9hZCl7dmFyIE90PU5lLmNyZWF0ZU9iamVjdFVSTChCZSk7S2Uuc3R5bGUuZGlzcGxheT0ibm9uZSIsS2Uuc2V0QXR0cmlidXRlKCJocmVmIixPdCksS2Uuc2V0QXR0cmlidXRlKCJkb3dubG9h''@;'; + put 'put ''ZCIsZHQpLGouYm9keS5hcHBlbmRDaGlsZChLZSksS2UuZGlzcGF0Y2hFdmVudChuZXcgTW91c2VFdmVudCgiY2xpY2siKSksai5ib2R5LnJlbW92ZUNoaWxkKEtlKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7TmUucmV2b2tlT2JqZWN0VVJMKE90KX0sMTAwKX1lbHNlIG5hdmlnYXRvci5tc1Nh''@;'; + put 'put ''dmVPck9wZW5CbG9iJiZuYXZpZ2F0b3IubXNTYXZlT3JPcGVuQmxvYihCZSxkdCl9fSx7a2V5OiJfY3JlYXRlVHlwZUZvcm1hdHRlciIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEM9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOnt9O2lmKCFX''@;'; + put 'put ''OGVbeV0pdGhyb3cgbmV3IEVycm9yKCdFeHBvcnQgZm9ybWF0IHR5cGUgIicuY29uY2F0KHksJyIgaXMgbm90IHN1cHBvcnRlZC4nKSk7cmV0dXJuIHhzdCh5LG5ldyB1c3QodGhpcy5ob3QpLEMpfX0se2tleToiX2NyZWF0ZUJsb2IiLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPW51bGw7cmV0''@;'; + put 'put ''dXJuInVuZGVmaW5lZCIhPXR5cGVvZiBCbG9iJiYoQz1uZXcgQmxvYihbeS5leHBvcnQoKV0se3R5cGU6IiIuY29uY2F0KHkub3B0aW9ucy5taW1lVHlwZSwiO2NoYXJzZXQ9IikuY29uY2F0KHkub3B0aW9ucy5lbmNvZGluZyl9KSksQ319XSxbe2tleToiUExVR0lOX0tFWSIsZ2V0OmZ1bmN0''@;'; + put 'put ''aW9uKCl7cmV0dXJuImV4cG9ydEZpbGUifX0se2tleToiUExVR0lOX1BSSU9SSVRZIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gMjQwfX1dKSxofShZcyk7ZnVuY3Rpb24gYnhlKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVy''@;'; + put 'put ''YWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19dmFyIF94ZT1mdW5jdGlvbigpe2Z1bmN0aW9uIGQoZyxoKXt2YXIgdj1oLmlkLHk9aC5zdGF0ZWxlc3MsQz12b2lkIDA9PT15fHx5''@;'; + put 'put ''OyhmdW5jdGlvbiBOc3QoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0pKHRoaXMsZCksdGhpcy5ob3Q9Zyx0aGlzLmlkPXYsdGhpcy5lbGVtZW50cz1bXSx0aGlzLmhpZGRlbj0hMSx0aGlz''@;'; + put 'put ''LnN0YXRlSWQ9IkZpbHRlcnMuY29tcG9uZW50LiIuY29uY2F0KHRoaXMuaWQpLHRoaXMuc3RhdGU9Qz9udWxsOnRoaXMuaG90LmNvbHVtbkluZGV4TWFwcGVyLnJlZ2lzdGVyTWFwKHRoaXMuc3RhdGVJZCxuZXcgWWVlKX1yZXR1cm4gZnVuY3Rpb24gVnN0KGQsZyxoKXtnJiZieGUoZC5wcm90''@;'; + put 'put ''b3R5cGUsZyksaCYmYnhlKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGQsW3trZXk6InJlc2V0Iix2YWx1ZTpmdW5jdGlvbigpe1VyKHRoaXMuZWxlbWVudHMsZnVuY3Rpb24oaCl7cmV0dXJuIGgucmVzZXQoKX0pfX0se2tleToiaGlk''@;'; + put 'put ''ZSIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmhpZGRlbj0hMH19LHtrZXk6InNob3ciLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5oaWRkZW49ITF9fSx7a2V5OiJpc0hpZGRlbiIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbD09PXRoaXMuaG90fHx0aGlzLmhpZGRlbn19LHtrZXk6InJlc3Rv''@;'; + put 'put ''cmVTdGF0ZSIsdmFsdWU6ZnVuY3Rpb24oaCl7dGhpcy5zdGF0ZSYmdGhpcy5zZXRTdGF0ZSh0aGlzLnN0YXRlLmdldFZhbHVlQXRJbmRleChoKSl9fSx7a2V5OiJzZXRTdGF0ZSIsdmFsdWU6ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoIlRoZSBzdGF0ZSBzZXR0aW5nIGxvZ2ljIGlzIG5v''@;'; + put 'put ''dCBpbXBsZW1lbnRlZCIpfX0se2tleToic2F2ZVN0YXRlIix2YWx1ZTpmdW5jdGlvbihoKXt0aGlzLnN0YXRlJiZ0aGlzLnN0YXRlLnNldFZhbHVlQXRJbmRleChoLHRoaXMuZ2V0U3RhdGUoKSl9fSx7a2V5OiJnZXRTdGF0ZSIsdmFsdWU6ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoIlRo''@;'; + put 'put ''ZSBzdGF0ZSBnYXRoZXJpbmcgbG9naWMgaXMgbm90IGltcGxlbWVudGVkIil9fSx7a2V5OiJkZXN0cm95Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuaG90LmNvbHVtbkluZGV4TWFwcGVyLnVucmVnaXN0ZXJNYXAodGhpcy5zdGF0ZUlkKSx0aGlzLmNsZWFyTG9jYWxIb29rcygpLFVyKHRoaXMu''@;'; + put 'put ''ZWxlbWVudHMsZnVuY3Rpb24oaCl7cmV0dXJuIGguZGVzdHJveSgpfSksdGhpcy5zdGF0ZT1udWxsLHRoaXMuZWxlbWVudHM9bnVsbCx0aGlzLmhvdD1udWxsfX1dKSxkfSgpO0IyKF94ZSxjZCk7Y29uc3QgcXRlPV94ZTt2YXIga3o9e307ZnVuY3Rpb24gTncoZCxnKXtpZigha3pbZF0pdGhy''@;'; + put 'put ''b3cgRXJyb3IoJ0ZpbHRlciBjb25kaXRpb24gIicuY29uY2F0KGQsJyIgZG9lcyBub3QgZXhpc3QuJykpO3ZhciBoPWt6W2RdLHY9aC5jb25kaXRpb24seT1oLmRlc2NyaXB0b3IsQz1nO3JldHVybiB5LmlucHV0VmFsdWVzRGVjb3JhdG9yJiYoQz15LmlucHV0VmFsdWVzRGVjb3JhdG9yKEMp''@;'; + put 'put ''KSxmdW5jdGlvbihJKXtyZXR1cm4gdi5hcHBseShJLm1ldGEuaW5zdGFuY2UsW10uY29uY2F0KFtJXSxbQ10pKX19ZnVuY3Rpb24gTk8oZCl7aWYoIWt6W2RdKXRocm93IEVycm9yKCdGaWx0ZXIgY29uZGl0aW9uICInLmNvbmNhdChkLCciIGRvZXMgbm90IGV4aXN0LicpKTtyZXR1cm4ga3pb''@;'; + put 'put ''ZF0uZGVzY3JpcHRvcn1mdW5jdGlvbiBadShkLGcsaCl7aC5rZXk9ZCxreltkXT17Y29uZGl0aW9uOmcsZGVzY3JpcHRvcjpofX12YXIgSGY9Im5vbmUiO1p1KEhmLGZ1bmN0aW9uIGpzdCgpe3JldHVybiEwfSx7bmFtZTpldGUsaW5wdXRzQ291bnQ6MCxzaG93T3BlcmF0b3JzOiExfSk7dmFy''@;'; + put 'put ''IFN6PSJlbXB0eSI7WnUoU3osZnVuY3Rpb24gWnN0KGQpe3JldHVybiBkYyhkLnZhbHVlKX0se25hbWU6Y3BlLGlucHV0c0NvdW50OjAsc2hvd09wZXJhdG9yczohMH0pO3ZhciBlbmU9Im5vdF9lbXB0eSI7ZnVuY3Rpb24gQ3hlKGQsZyl7KG51bGw9PWd8fGc+ZC5sZW5ndGgpJiYoZz1kLmxl''@;'; + put 'put ''bmd0aCk7Zm9yKHZhciBoPTAsdj1uZXcgQXJyYXkoZyk7aDxnO2grKyl2W2hdPWRbaF07cmV0dXJuIHZ9WnUoZW5lLGZ1bmN0aW9uIHpzdChkLGcpe3JldHVybiFOdyhTeixnKShkKX0se25hbWU6ZnBlLGlucHV0c0NvdW50OjAsc2hvd09wZXJhdG9yczohMH0pO3ZhciBNej0iZXEiO2Z1bmN0''@;'; + put 'put ''aW9uIGt4ZShkLGcpeyhudWxsPT1nfHxnPmQubGVuZ3RoKSYmKGc9ZC5sZW5ndGgpO2Zvcih2YXIgaD0wLHY9bmV3IEFycmF5KGcpO2g8ZztoKyspdltoXT1kW2hdO3JldHVybiB2fWZ1bmN0aW9uIE14ZShkLGcpeyhudWxsPT1nfHxnPmQubGVuZ3RoKSYmKGc9ZC5sZW5ndGgpO2Zvcih2YXIg''@;'; + put 'put ''aD0wLHY9bmV3IEFycmF5KGcpO2g8ZztoKyspdltoXT1kW2hdO3JldHVybiB2fWZ1bmN0aW9uIHh4ZShkLGcpeyhudWxsPT1nfHxnPmQubGVuZ3RoKSYmKGc9ZC5sZW5ndGgpO2Zvcih2YXIgaD0wLHY9bmV3IEFycmF5KGcpO2g8ZztoKyspdltoXT1kW2hdO3JldHVybiB2fWZ1bmN0aW9uIEl4''@;'; + put 'put ''ZShkLGcpeyhudWxsPT1nfHxnPmQubGVuZ3RoKSYmKGc9ZC5sZW5ndGgpO2Zvcih2YXIgaD0wLHY9bmV3IEFycmF5KGcpO2g8ZztoKyspdltoXT1kW2hdO3JldHVybiB2fWZ1bmN0aW9uIEx4ZShkLGcpeyhudWxsPT1nfHxnPmQubGVuZ3RoKSYmKGc9ZC5sZW5ndGgpO2Zvcih2YXIgaD0wLHY9''@;'; + put 'put ''bmV3IEFycmF5KGcpO2g8ZztoKyspdltoXT1kW2hdO3JldHVybiB2fVp1KE16LGZ1bmN0aW9uIEpzdChkLGcpe3ZhciB2PWZ1bmN0aW9uIEdzdChkLGcpe3JldHVybiBmdW5jdGlvbiBRc3QoZCl7aWYoQXJyYXkuaXNBcnJheShkKSlyZXR1cm4gZH0oZCl8fGZ1bmN0aW9uIFVzdChkLGcpe3Zh''@;'; + put 'put ''ciBoPW51bGw9PWQ/bnVsbDoidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmZFtTeW1ib2wuaXRlcmF0b3JdfHxkWyJAQGl0ZXJhdG9yIl07aWYobnVsbCE9aCl7dmFyIEksaix2PVtdLHk9ITAsQz0hMTt0cnl7Zm9yKGg9aC5jYWxsKGQpOyEoeT0oST1oLm5leHQoKSkuZG9uZSkmJih2LnB1''@;'; + put 'put ''c2goSS52YWx1ZSksIWd8fHYubGVuZ3RoIT09Zyk7eT0hMCk7fWNhdGNoKHVlKXtDPSEwLGo9dWV9ZmluYWxseXt0cnl7IXkmJm51bGwhPWgucmV0dXJuJiZoLnJldHVybigpfWZpbmFsbHl7aWYoQyl0aHJvdyBqfX1yZXR1cm4gdn19KGQsZyl8fGZ1bmN0aW9uIFlzdChkLGcpe2lmKGQpe2lm''@;'; + put 'put ''KCJzdHJpbmciPT10eXBlb2YgZClyZXR1cm4gQ3hlKGQsZyk7dmFyIGg9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGQpLnNsaWNlKDgsLTEpO2lmKCJPYmplY3QiPT09aCYmZC5jb25zdHJ1Y3RvciYmKGg9ZC5jb25zdHJ1Y3Rvci5uYW1lKSwiTWFwIj09PWh8fCJTZXQiPT09aCly''@;'; + put 'put ''ZXR1cm4gQXJyYXkuZnJvbShkKTtpZigiQXJndW1lbnRzIj09PWh8fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KGgpKXJldHVybiBDeGUoZCxnKX19KGQsZyl8fGZ1bmN0aW9uIFdzdCgpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1w''@;'; + put 'put ''dCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9KGcsMSlbMF07cmV0dXJuIGV1KGQudmFsdWUpLnRvTG9jYWxl''@;'; + put 'put ''TG93ZXJDYXNlKGQubWV0YS5sb2NhbGUpPT09ZXUodil9LHtuYW1lOmhwZSxpbnB1dHNDb3VudDoxLHNob3dPcGVyYXRvcnM6ITB9KSxadSgibmVxIixmdW5jdGlvbiBYc3QoZCxnKXtyZXR1cm4hTncoTXosZykoZCl9LHtuYW1lOmRwZSxpbnB1dHNDb3VudDoxLHNob3dPcGVyYXRvcnM6ITB9''@;'; + put 'put ''KSxadSgiZ3QiLGZ1bmN0aW9uIG4ydChkLGcpe3ZhciB5PWZ1bmN0aW9uIEtzdChkLGcpe3JldHVybiBmdW5jdGlvbiB0MnQoZCl7aWYoQXJyYXkuaXNBcnJheShkKSlyZXR1cm4gZH0oZCl8fGZ1bmN0aW9uIGUydChkLGcpe3ZhciBoPW51bGw9PWQ/bnVsbDoidW5kZWZpbmVkIiE9dHlwZW9m''@;'; + put 'put ''IFN5bWJvbCYmZFtTeW1ib2wuaXRlcmF0b3JdfHxkWyJAQGl0ZXJhdG9yIl07aWYobnVsbCE9aCl7dmFyIEksaix2PVtdLHk9ITAsQz0hMTt0cnl7Zm9yKGg9aC5jYWxsKGQpOyEoeT0oST1oLm5leHQoKSkuZG9uZSkmJih2LnB1c2goSS52YWx1ZSksIWd8fHYubGVuZ3RoIT09Zyk7eT0hMCk7''@;'; + put 'put ''fWNhdGNoKHVlKXtDPSEwLGo9dWV9ZmluYWxseXt0cnl7IXkmJm51bGwhPWgucmV0dXJuJiZoLnJldHVybigpfWZpbmFsbHl7aWYoQyl0aHJvdyBqfX1yZXR1cm4gdn19KGQsZyl8fGZ1bmN0aW9uIHFzdChkLGcpe2lmKGQpe2lmKCJzdHJpbmciPT10eXBlb2YgZClyZXR1cm4ga3hlKGQsZyk7''@;'; + put 'put ''dmFyIGg9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGQpLnNsaWNlKDgsLTEpO2lmKCJPYmplY3QiPT09aCYmZC5jb25zdHJ1Y3RvciYmKGg9ZC5jb25zdHJ1Y3Rvci5uYW1lKSwiTWFwIj09PWh8fCJTZXQiPT09aClyZXR1cm4gQXJyYXkuZnJvbShkKTtpZigiQXJndW1lbnRzIj09''@;'; + put 'put ''PWh8fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KGgpKXJldHVybiBreGUoZCxnKX19KGQsZyl8fGZ1bmN0aW9uICRzdCgpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFu''@;'; + put 'put ''Y2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9KGcsMSlbMF07cmV0dXJuIm51bWVyaWMiPT09ZC5tZXRhLnR5cGUmJih5PXBhcnNlRmxvYXQoeSwxMCkpLGQudmFsdWU+eX0s''@;'; + put 'put ''e25hbWU6QXBlLGlucHV0c0NvdW50OjEsc2hvd09wZXJhdG9yczohMH0pLFp1KCJndGUiLGZ1bmN0aW9uIHMydChkLGcpe3ZhciB5PWZ1bmN0aW9uIHIydChkLGcpe3JldHVybiBmdW5jdGlvbiBsMnQoZCl7aWYoQXJyYXkuaXNBcnJheShkKSlyZXR1cm4gZH0oZCl8fGZ1bmN0aW9uIGEydChk''@;'; + put 'put ''LGcpe3ZhciBoPW51bGw9PWQ/bnVsbDoidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmZFtTeW1ib2wuaXRlcmF0b3JdfHxkWyJAQGl0ZXJhdG9yIl07aWYobnVsbCE9aCl7dmFyIEksaix2PVtdLHk9ITAsQz0hMTt0cnl7Zm9yKGg9aC5jYWxsKGQpOyEoeT0oST1oLm5leHQoKSkuZG9uZSkm''@;'; + put 'put ''Jih2LnB1c2goSS52YWx1ZSksIWd8fHYubGVuZ3RoIT09Zyk7eT0hMCk7fWNhdGNoKHVlKXtDPSEwLGo9dWV9ZmluYWxseXt0cnl7IXkmJm51bGwhPWgucmV0dXJuJiZoLnJldHVybigpfWZpbmFsbHl7aWYoQyl0aHJvdyBqfX1yZXR1cm4gdn19KGQsZyl8fGZ1bmN0aW9uIG8ydChkLGcpe2lm''@;'; + put 'put ''KGQpe2lmKCJzdHJpbmciPT10eXBlb2YgZClyZXR1cm4gTXhlKGQsZyk7dmFyIGg9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGQpLnNsaWNlKDgsLTEpO2lmKCJPYmplY3QiPT09aCYmZC5jb25zdHJ1Y3RvciYmKGg9ZC5jb25zdHJ1Y3Rvci5uYW1lKSwiTWFwIj09PWh8fCJTZXQi''@;'; + put 'put ''PT09aClyZXR1cm4gQXJyYXkuZnJvbShkKTtpZigiQXJndW1lbnRzIj09PWh8fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KGgpKXJldHVybiBNeGUoZCxnKX19KGQsZyl8fGZ1bmN0aW9uIGkydCgpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQg''@;'; + put 'put ''YXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9KGcsMSlbMF07cmV0dXJuIm51bWVyaWMiPT09ZC5t''@;'; + put 'put ''ZXRhLnR5cGUmJih5PXBhcnNlRmxvYXQoeSwxMCkpLGQudmFsdWU+PXl9LHtuYW1lOnlwZSxpbnB1dHNDb3VudDoxLHNob3dPcGVyYXRvcnM6ITB9KSxadSgibHQiLGZ1bmN0aW9uIHAydChkLGcpe3ZhciB5PWZ1bmN0aW9uIHUydChkLGcpe3JldHVybiBmdW5jdGlvbiBkMnQoZCl7aWYoQXJy''@;'; + put 'put ''YXkuaXNBcnJheShkKSlyZXR1cm4gZH0oZCl8fGZ1bmN0aW9uIGgydChkLGcpe3ZhciBoPW51bGw9PWQ/bnVsbDoidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmZFtTeW1ib2wuaXRlcmF0b3JdfHxkWyJAQGl0ZXJhdG9yIl07aWYobnVsbCE9aCl7dmFyIEksaix2PVtdLHk9ITAsQz0hMTt0''@;'; + put 'put ''cnl7Zm9yKGg9aC5jYWxsKGQpOyEoeT0oST1oLm5leHQoKSkuZG9uZSkmJih2LnB1c2goSS52YWx1ZSksIWd8fHYubGVuZ3RoIT09Zyk7eT0hMCk7fWNhdGNoKHVlKXtDPSEwLGo9dWV9ZmluYWxseXt0cnl7IXkmJm51bGwhPWgucmV0dXJuJiZoLnJldHVybigpfWZpbmFsbHl7aWYoQyl0aHJv''@;'; + put 'put ''dyBqfX1yZXR1cm4gdn19KGQsZyl8fGZ1bmN0aW9uIGYydChkLGcpe2lmKGQpe2lmKCJzdHJpbmciPT10eXBlb2YgZClyZXR1cm4geHhlKGQsZyk7dmFyIGg9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGQpLnNsaWNlKDgsLTEpO2lmKCJPYmplY3QiPT09aCYmZC5jb25zdHJ1Y3Rv''@;'; + put 'put ''ciYmKGg9ZC5jb25zdHJ1Y3Rvci5uYW1lKSwiTWFwIj09PWh8fCJTZXQiPT09aClyZXR1cm4gQXJyYXkuZnJvbShkKTtpZigiQXJndW1lbnRzIj09PWh8fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KGgpKXJldHVybiB4eGUoZCxnKX19KGQsZyl8fGZ1''@;'; + put 'put ''bmN0aW9uIGMydCgpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBt''@;'; + put 'put ''ZXRob2QuIil9KCl9KGcsMSlbMF07cmV0dXJuIm51bWVyaWMiPT09ZC5tZXRhLnR5cGUmJih5PXBhcnNlRmxvYXQoeSwxMCkpLGQudmFsdWU8eX0se25hbWU6d3BlLGlucHV0c0NvdW50OjEsc2hvd09wZXJhdG9yczohMH0pLFp1KCJsdGUiLGZ1bmN0aW9uIHcydChkLGcpe3ZhciB5PWZ1bmN0''@;'; + put 'put ''aW9uIGcydChkLGcpe3JldHVybiBmdW5jdGlvbiB5MnQoZCl7aWYoQXJyYXkuaXNBcnJheShkKSlyZXR1cm4gZH0oZCl8fGZ1bmN0aW9uIEEydChkLGcpe3ZhciBoPW51bGw9PWQ/bnVsbDoidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmZFtTeW1ib2wuaXRlcmF0b3JdfHxkWyJAQGl0ZXJh''@;'; + put 'put ''dG9yIl07aWYobnVsbCE9aCl7dmFyIEksaix2PVtdLHk9ITAsQz0hMTt0cnl7Zm9yKGg9aC5jYWxsKGQpOyEoeT0oST1oLm5leHQoKSkuZG9uZSkmJih2LnB1c2goSS52YWx1ZSksIWd8fHYubGVuZ3RoIT09Zyk7eT0hMCk7fWNhdGNoKHVlKXtDPSEwLGo9dWV9ZmluYWxseXt0cnl7IXkmJm51''@;'; + put 'put ''bGwhPWgucmV0dXJuJiZoLnJldHVybigpfWZpbmFsbHl7aWYoQyl0aHJvdyBqfX1yZXR1cm4gdn19KGQsZyl8fGZ1bmN0aW9uIHYydChkLGcpe2lmKGQpe2lmKCJzdHJpbmciPT10eXBlb2YgZClyZXR1cm4gSXhlKGQsZyk7dmFyIGg9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGQp''@;'; + put 'put ''LnNsaWNlKDgsLTEpO2lmKCJPYmplY3QiPT09aCYmZC5jb25zdHJ1Y3RvciYmKGg9ZC5jb25zdHJ1Y3Rvci5uYW1lKSwiTWFwIj09PWh8fCJTZXQiPT09aClyZXR1cm4gQXJyYXkuZnJvbShkKTtpZigiQXJndW1lbnRzIj09PWh8fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/''@;'; + put 'put ''QXJyYXkkLy50ZXN0KGgpKXJldHVybiBJeGUoZCxnKX19KGQsZyl8fGZ1bmN0aW9uIG0ydCgpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5''@;'; + put 'put ''IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9KGcsMSlbMF07cmV0dXJuIm51bWVyaWMiPT09ZC5tZXRhLnR5cGUmJih5PXBhcnNlRmxvYXQoeSwxMCkpLGQudmFsdWU8PXl9LHtuYW1lOmJwZSxpbnB1dHNDb3VudDoxLHNob3dPcGVyYXRvcnM6''@;'; + put 'put ''ITB9KTt2YXIgUThlPSJkYXRlX2FmdGVyIjtmdW5jdGlvbiBPeGUoZCxnKXsobnVsbD09Z3x8Zz5kLmxlbmd0aCkmJihnPWQubGVuZ3RoKTtmb3IodmFyIGg9MCx2PW5ldyBBcnJheShnKTtoPGc7aCsrKXZbaF09ZFtoXTtyZXR1cm4gdn1adShROGUsZnVuY3Rpb24gTTJ0KGQsZyl7dmFyIHY9''@;'; + put 'put ''ZnVuY3Rpb24gYjJ0KGQsZyl7cmV0dXJuIGZ1bmN0aW9uIFMydChkKXtpZihBcnJheS5pc0FycmF5KGQpKXJldHVybiBkfShkKXx8ZnVuY3Rpb24gazJ0KGQsZyl7dmFyIGg9bnVsbD09ZD9udWxsOiJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZkW1N5bWJvbC5pdGVyYXRvcl18fGRbIkBA''@;'; + put 'put ''aXRlcmF0b3IiXTtpZihudWxsIT1oKXt2YXIgSSxqLHY9W10seT0hMCxDPSExO3RyeXtmb3IoaD1oLmNhbGwoZCk7ISh5PShJPWgubmV4dCgpKS5kb25lKSYmKHYucHVzaChJLnZhbHVlKSwhZ3x8di5sZW5ndGghPT1nKTt5PSEwKTt9Y2F0Y2godWUpe0M9ITAsaj11ZX1maW5hbGx5e3RyeXsh''@;'; + put 'put ''eSYmbnVsbCE9aC5yZXR1cm4mJmgucmV0dXJuKCl9ZmluYWxseXtpZihDKXRocm93IGp9fXJldHVybiB2fX0oZCxnKXx8ZnVuY3Rpb24gQzJ0KGQsZyl7aWYoZCl7aWYoInN0cmluZyI9PXR5cGVvZiBkKXJldHVybiBMeGUoZCxnKTt2YXIgaD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNh''@;'; + put 'put ''bGwoZCkuc2xpY2UoOCwtMSk7aWYoIk9iamVjdCI9PT1oJiZkLmNvbnN0cnVjdG9yJiYoaD1kLmNvbnN0cnVjdG9yLm5hbWUpLCJNYXAiPT09aHx8IlNldCI9PT1oKXJldHVybiBBcnJheS5mcm9tKGQpO2lmKCJBcmd1bWVudHMiPT09aHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFt''@;'; + put 'put ''cGVkKT9BcnJheSQvLnRlc3QoaCkpcmV0dXJuIEx4ZShkLGcpfX0oZCxnKXx8ZnVuY3Rpb24gXzJ0KCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24t''@;'; + put 'put ''YXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX0oZywxKVswXSx5PVRsKGQudmFsdWUsZC5tZXRhLmRhdGVGb3JtYXQpLEM9VGwodixkLm1ldGEuZGF0ZUZvcm1hdCk7cmV0dXJuISgheS5pc1ZhbGlkKCl8fCFDLmlzVmFsaWQoKSkmJnku''@;'; + put 'put ''ZGlmZihDKT49MH0se25hbWU6a3BlLGlucHV0c0NvdW50OjEsc2hvd09wZXJhdG9yczohMH0pO3ZhciBKOGU9ImRhdGVfYmVmb3JlIjtmdW5jdGlvbiBSeGUoZCxnKXsobnVsbD09Z3x8Zz5kLmxlbmd0aCkmJihnPWQubGVuZ3RoKTtmb3IodmFyIGg9MCx2PW5ldyBBcnJheShnKTtoPGc7aCsr''@;'; + put 'put ''KXZbaF09ZFtoXTtyZXR1cm4gdn1adShKOGUsZnVuY3Rpb24gTDJ0KGQsZyl7dmFyIHY9ZnVuY3Rpb24gRTJ0KGQsZyl7cmV0dXJuIGZ1bmN0aW9uIEQydChkKXtpZihBcnJheS5pc0FycmF5KGQpKXJldHVybiBkfShkKXx8ZnVuY3Rpb24gSTJ0KGQsZyl7dmFyIGg9bnVsbD09ZD9udWxsOiJ1''@;'; + put 'put ''bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZkW1N5bWJvbC5pdGVyYXRvcl18fGRbIkBAaXRlcmF0b3IiXTtpZihudWxsIT1oKXt2YXIgSSxqLHY9W10seT0hMCxDPSExO3RyeXtmb3IoaD1oLmNhbGwoZCk7ISh5PShJPWgubmV4dCgpKS5kb25lKSYmKHYucHVzaChJLnZhbHVlKSwhZ3x8di5s''@;'; + put 'put ''ZW5ndGghPT1nKTt5PSEwKTt9Y2F0Y2godWUpe0M9ITAsaj11ZX1maW5hbGx5e3RyeXsheSYmbnVsbCE9aC5yZXR1cm4mJmgucmV0dXJuKCl9ZmluYWxseXtpZihDKXRocm93IGp9fXJldHVybiB2fX0oZCxnKXx8ZnVuY3Rpb24gVDJ0KGQsZyl7aWYoZCl7aWYoInN0cmluZyI9PXR5cGVvZiBk''@;'; + put 'put ''KXJldHVybiBPeGUoZCxnKTt2YXIgaD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZCkuc2xpY2UoOCwtMSk7aWYoIk9iamVjdCI9PT1oJiZkLmNvbnN0cnVjdG9yJiYoaD1kLmNvbnN0cnVjdG9yLm5hbWUpLCJNYXAiPT09aHx8IlNldCI9PT1oKXJldHVybiBBcnJheS5mcm9tKGQp''@;'; + put 'put ''O2lmKCJBcmd1bWVudHMiPT09aHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QoaCkpcmV0dXJuIE94ZShkLGcpfX0oZCxnKXx8ZnVuY3Rpb24geDJ0KCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5v''@;'; + put 'put ''bi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX0oZywxKVswXSx5PVRsKGQudmFsdWUsZC5tZXRhLmRhdGVGb3JtYXQpLEM9VGwodixkLm1ldGEu''@;'; + put 'put ''ZGF0ZUZvcm1hdCk7cmV0dXJuISgheS5pc1ZhbGlkKCl8fCFDLmlzVmFsaWQoKSkmJnkuZGlmZihDKTw9MH0se25hbWU6U3BlLGlucHV0c0NvdW50OjEsc2hvd09wZXJhdG9yczohMH0pO3ZhciBubmU9ImJldHdlZW4iO1p1KG5uZSxmdW5jdGlvbiBIMnQoZCxnKXt2YXIgaD1mdW5jdGlvbiBP''@;'; + put 'put ''MnQoZCxnKXtyZXR1cm4gZnVuY3Rpb24gRjJ0KGQpe2lmKEFycmF5LmlzQXJyYXkoZCkpcmV0dXJuIGR9KGQpfHxmdW5jdGlvbiBQMnQoZCxnKXt2YXIgaD1udWxsPT1kP251bGw6InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJmRbU3ltYm9sLml0ZXJhdG9yXXx8ZFsiQEBpdGVyYXRvciJd''@;'; + put 'put ''O2lmKG51bGwhPWgpe3ZhciBJLGosdj1bXSx5PSEwLEM9ITE7dHJ5e2ZvcihoPWguY2FsbChkKTshKHk9KEk9aC5uZXh0KCkpLmRvbmUpJiYodi5wdXNoKEkudmFsdWUpLCFnfHx2Lmxlbmd0aCE9PWcpO3k9ITApO31jYXRjaCh1ZSl7Qz0hMCxqPXVlfWZpbmFsbHl7dHJ5eyF5JiZudWxsIT1o''@;'; + put 'put ''LnJldHVybiYmaC5yZXR1cm4oKX1maW5hbGx5e2lmKEMpdGhyb3cgan19cmV0dXJuIHZ9fShkLGcpfHxmdW5jdGlvbiBCMnQoZCxnKXtpZihkKXtpZigic3RyaW5nIj09dHlwZW9mIGQpcmV0dXJuIFJ4ZShkLGcpO3ZhciBoPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChkKS5zbGlj''@;'; + put 'put ''ZSg4LC0xKTtpZigiT2JqZWN0Ij09PWgmJmQuY29uc3RydWN0b3ImJihoPWQuY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1ofHwiU2V0Ij09PWgpcmV0dXJuIEFycmF5LmZyb20oZCk7aWYoIkFyZ3VtZW50cyI9PT1ofHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5''@;'; + put 'put ''JC8udGVzdChoKSlyZXR1cm4gUnhlKGQsZyl9fShkLGcpfHxmdW5jdGlvbiBSMnQoKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmpl''@;'; + put 'put ''Y3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfShnLDIpLEM9aFswXSxJPWhbMV07aWYoIm51bWVyaWMiPT09ZC5tZXRhLnR5cGUpe3ZhciBqPXBhcnNlRmxvYXQoQywxMCksdWU9cGFyc2VGbG9hdChJLDEwKTtDPU1hdGgubWluKGosdWUpLEk9TWF0aC5t''@;'; + put 'put ''YXgoaix1ZSl9ZWxzZSBpZigiZGF0ZSI9PT1kLm1ldGEudHlwZSl7dmFyIF9lPU53KEo4ZSxbSV0pLEJlPU53KFE4ZSxbQ10pO3JldHVybiBfZShkKSYmQmUoZCl9cmV0dXJuIGQudmFsdWU+PUMmJmQudmFsdWU8PUl9LHtuYW1lOl9wZSxpbnB1dHNDb3VudDoyLHNob3dPcGVyYXRvcnM6ITB9''@;'; + put 'put ''KTt2YXIgQnhlPSJub3RfYmV0d2VlbiI7ZnVuY3Rpb24gUHhlKGQsZyl7KG51bGw9PWd8fGc+ZC5sZW5ndGgpJiYoZz1kLmxlbmd0aCk7Zm9yKHZhciBoPTAsdj1uZXcgQXJyYXkoZyk7aDxnO2grKyl2W2hdPWRbaF07cmV0dXJuIHZ9WnUoQnhlLGZ1bmN0aW9uIE4ydChkLGcpe3JldHVybiFO''@;'; + put 'put ''dyhubmUsZykoZCl9LHtuYW1lOkNwZSxpbnB1dHNDb3VudDoyLHNob3dPcGVyYXRvcnM6ITB9KTt2YXIgRnhlPSJiZWdpbnNfd2l0aCI7ZnVuY3Rpb24gSHhlKGQsZyl7KG51bGw9PWd8fGc+ZC5sZW5ndGgpJiYoZz1kLmxlbmd0aCk7Zm9yKHZhciBoPTAsdj1uZXcgQXJyYXkoZyk7aDxnO2gr''@;'; + put 'put ''Kyl2W2hdPWRbaF07cmV0dXJuIHZ9ZnVuY3Rpb24gVnhlKGQsZyl7KG51bGw9PWd8fGc+ZC5sZW5ndGgpJiYoZz1kLmxlbmd0aCk7Zm9yKHZhciBoPTAsdj1uZXcgQXJyYXkoZyk7aDxnO2grKyl2W2hdPWRbaF07cmV0dXJuIHZ9WnUoRnhlLGZ1bmN0aW9uIFcydChkLGcpe3ZhciB2PWZ1bmN0''@;'; + put 'put ''aW9uIFYydChkLGcpe3JldHVybiBmdW5jdGlvbiBHMnQoZCl7aWYoQXJyYXkuaXNBcnJheShkKSlyZXR1cm4gZH0oZCl8fGZ1bmN0aW9uIHoydChkLGcpe3ZhciBoPW51bGw9PWQ/bnVsbDoidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmZFtTeW1ib2wuaXRlcmF0b3JdfHxkWyJAQGl0ZXJh''@;'; + put 'put ''dG9yIl07aWYobnVsbCE9aCl7dmFyIEksaix2PVtdLHk9ITAsQz0hMTt0cnl7Zm9yKGg9aC5jYWxsKGQpOyEoeT0oST1oLm5leHQoKSkuZG9uZSkmJih2LnB1c2goSS52YWx1ZSksIWd8fHYubGVuZ3RoIT09Zyk7eT0hMCk7fWNhdGNoKHVlKXtDPSEwLGo9dWV9ZmluYWxseXt0cnl7IXkmJm51''@;'; + put 'put ''bGwhPWgucmV0dXJuJiZoLnJldHVybigpfWZpbmFsbHl7aWYoQyl0aHJvdyBqfX1yZXR1cm4gdn19KGQsZyl8fGZ1bmN0aW9uIFoydChkLGcpe2lmKGQpe2lmKCJzdHJpbmciPT10eXBlb2YgZClyZXR1cm4gUHhlKGQsZyk7dmFyIGg9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGQp''@;'; + put 'put ''LnNsaWNlKDgsLTEpO2lmKCJPYmplY3QiPT09aCYmZC5jb25zdHJ1Y3RvciYmKGg9ZC5jb25zdHJ1Y3Rvci5uYW1lKSwiTWFwIj09PWh8fCJTZXQiPT09aClyZXR1cm4gQXJyYXkuZnJvbShkKTtpZigiQXJndW1lbnRzIj09PWh8fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/''@;'; + put 'put ''QXJyYXkkLy50ZXN0KGgpKXJldHVybiBQeGUoZCxnKX19KGQsZyl8fGZ1bmN0aW9uIGoydCgpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5''@;'; + put 'put ''IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9KGcsMSlbMF07cmV0dXJuIGV1KGQudmFsdWUpLnRvTG9jYWxlTG93ZXJDYXNlKGQubWV0YS5sb2NhbGUpLnN0YXJ0c1dpdGgoZXUodikpfSx7bmFtZTpwcGUsaW5wdXRzQ291bnQ6MSxzaG93T3Bl''@;'; + put 'put ''cmF0b3JzOiEwfSksTCgzNzQ5OSksWnUoImVuZHNfd2l0aCIsZnVuY3Rpb24gSzJ0KGQsZyl7dmFyIHY9ZnVuY3Rpb24gWTJ0KGQsZyl7cmV0dXJuIGZ1bmN0aW9uIFgydChkKXtpZihBcnJheS5pc0FycmF5KGQpKXJldHVybiBkfShkKXx8ZnVuY3Rpb24gSjJ0KGQsZyl7dmFyIGg9bnVsbD09''@;'; + put 'put ''ZD9udWxsOiJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZkW1N5bWJvbC5pdGVyYXRvcl18fGRbIkBAaXRlcmF0b3IiXTtpZihudWxsIT1oKXt2YXIgSSxqLHY9W10seT0hMCxDPSExO3RyeXtmb3IoaD1oLmNhbGwoZCk7ISh5PShJPWgubmV4dCgpKS5kb25lKSYmKHYucHVzaChJLnZhbHVl''@;'; + put 'put ''KSwhZ3x8di5sZW5ndGghPT1nKTt5PSEwKTt9Y2F0Y2godWUpe0M9ITAsaj11ZX1maW5hbGx5e3RyeXsheSYmbnVsbCE9aC5yZXR1cm4mJmgucmV0dXJuKCl9ZmluYWxseXtpZihDKXRocm93IGp9fXJldHVybiB2fX0oZCxnKXx8ZnVuY3Rpb24gUTJ0KGQsZyl7aWYoZCl7aWYoInN0cmluZyI9''@;'; + put 'put ''PXR5cGVvZiBkKXJldHVybiBIeGUoZCxnKTt2YXIgaD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZCkuc2xpY2UoOCwtMSk7aWYoIk9iamVjdCI9PT1oJiZkLmNvbnN0cnVjdG9yJiYoaD1kLmNvbnN0cnVjdG9yLm5hbWUpLCJNYXAiPT09aHx8IlNldCI9PT1oKXJldHVybiBBcnJh''@;'; + put 'put ''eS5mcm9tKGQpO2lmKCJBcmd1bWVudHMiPT09aHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QoaCkpcmV0dXJuIEh4ZShkLGcpfX0oZCxnKXx8ZnVuY3Rpb24gVTJ0KCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3Ry''@;'; + put 'put ''dWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX0oZywxKVswXTtyZXR1cm4gZXUoZC52YWx1ZSkudG9Mb2NhbGVMb3dlckNhc2Uo''@;'; + put 'put ''ZC5tZXRhLmxvY2FsZSkuZW5kc1dpdGgoZXUodikpfSx7bmFtZTpncGUsaW5wdXRzQ291bnQ6MSxzaG93T3BlcmF0b3JzOiEwfSk7dmFyIFg4ZT0iY29udGFpbnMiO1p1KFg4ZSxmdW5jdGlvbiByMXQoZCxnKXt2YXIgdj1mdW5jdGlvbiAkMnQoZCxnKXtyZXR1cm4gZnVuY3Rpb24gbjF0KGQp''@;'; + put 'put ''e2lmKEFycmF5LmlzQXJyYXkoZCkpcmV0dXJuIGR9KGQpfHxmdW5jdGlvbiB0MXQoZCxnKXt2YXIgaD1udWxsPT1kP251bGw6InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJmRbU3ltYm9sLml0ZXJhdG9yXXx8ZFsiQEBpdGVyYXRvciJdO2lmKG51bGwhPWgpe3ZhciBJLGosdj1bXSx5PSEw''@;'; + put 'put ''LEM9ITE7dHJ5e2ZvcihoPWguY2FsbChkKTshKHk9KEk9aC5uZXh0KCkpLmRvbmUpJiYodi5wdXNoKEkudmFsdWUpLCFnfHx2Lmxlbmd0aCE9PWcpO3k9ITApO31jYXRjaCh1ZSl7Qz0hMCxqPXVlfWZpbmFsbHl7dHJ5eyF5JiZudWxsIT1oLnJldHVybiYmaC5yZXR1cm4oKX1maW5hbGx5e2lm''@;'; + put 'put ''KEMpdGhyb3cgan19cmV0dXJuIHZ9fShkLGcpfHxmdW5jdGlvbiBlMXQoZCxnKXtpZihkKXtpZigic3RyaW5nIj09dHlwZW9mIGQpcmV0dXJuIFZ4ZShkLGcpO3ZhciBoPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChkKS5zbGljZSg4LC0xKTtpZigiT2JqZWN0Ij09PWgmJmQuY29u''@;'; + put 'put ''c3RydWN0b3ImJihoPWQuY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1ofHwiU2V0Ij09PWgpcmV0dXJuIEFycmF5LmZyb20oZCk7aWYoIkFyZ3VtZW50cyI9PT1ofHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChoKSlyZXR1cm4gVnhlKGQsZyl9fShk''@;'; + put 'put ''LGcpfHxmdW5jdGlvbiBxMnQoKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0''@;'; + put 'put ''b3JdKCkgbWV0aG9kLiIpfSgpfShnLDEpWzBdO3JldHVybiBldShkLnZhbHVlKS50b0xvY2FsZUxvd2VyQ2FzZShkLm1ldGEubG9jYWxlKS5pbmRleE9mKGV1KHYpKT49MH0se25hbWU6bXBlLGlucHV0c0NvdW50OjEsc2hvd09wZXJhdG9yczohMH0pO3ZhciBqeGU9Im5vdF9jb250YWlucyI7''@;'; + put 'put ''WnUoanhlLGZ1bmN0aW9uIGkxdChkLGcpe3JldHVybiFOdyhYOGUsZykoZCl9LHtuYW1lOnZwZSxpbnB1dHNDb3VudDoxLHNob3dPcGVyYXRvcnM6ITB9KTt2YXIgWnhlPSJkYXRlX3RvbW9ycm93IjtadShaeGUsZnVuY3Rpb24gbzF0KGQpe3ZhciBnPVRsKGQudmFsdWUsZC5tZXRhLmRhdGVG''@;'; + put 'put ''b3JtYXQpO3JldHVybiEhZy5pc1ZhbGlkKCkmJmcuaXNTYW1lKFRsKCkuc3VidHJhY3QoLTEsImRheXMiKS5zdGFydE9mKCJkYXkiKSwiZCIpfSx7bmFtZTpFcGUsaW5wdXRzQ291bnQ6MH0pO3ZhciB6eGU9ImRhdGVfdG9kYXkiO1p1KHp4ZSxmdW5jdGlvbiBhMXQoZCl7dmFyIGc9VGwoZC52''@;'; + put 'put ''YWx1ZSxkLm1ldGEuZGF0ZUZvcm1hdCk7cmV0dXJuISFnLmlzVmFsaWQoKSYmZy5pc1NhbWUoVGwoKS5zdGFydE9mKCJkYXkiKSwiZCIpfSx7bmFtZTpNcGUsaW5wdXRzQ291bnQ6MH0pO3ZhciBFeixHeGU9ImRhdGVfeWVzdGVyZGF5IjtmdW5jdGlvbiBLOGUoZCxnLGgpe3JldHVybiBnIGlu''@;'; + put 'put ''IGQ/T2JqZWN0LmRlZmluZVByb3BlcnR5KGQsZyx7dmFsdWU6aCxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmRbZ109aCxkfVp1KEd4ZSxmdW5jdGlvbiBsMXQoZCl7dmFyIGc9VGwoZC52YWx1ZSxkLm1ldGEuZGF0ZUZvcm1hdCk7cmV0dXJuISFnLmlzVmFs''@;'; + put 'put ''aWQoKSYmZy5pc1NhbWUoVGwoKS5zdWJ0cmFjdCgxLCJkYXlzIikuc3RhcnRPZigiZGF5IiksImQiKX0se25hbWU6eHBlLGlucHV0c0NvdW50OjB9KTt2YXIgWXhlPShLOGUoRXo9e30sIm51bWVyaWMiLFtIZixXbCxTeixlbmUsV2wsTXosIm5lcSIsV2wsImd0IiwiZ3RlIiwibHQiLCJsdGUi''@;'; + put 'put ''LG5uZSxCeGVdKSxLOGUoRXosInRleHQiLFtIZixXbCxTeixlbmUsV2wsTXosIm5lcSIsV2wsRnhlLCJlbmRzX3dpdGgiLFdsLFg4ZSxqeGVdKSxLOGUoRXosImRhdGUiLFtIZixXbCxTeixlbmUsV2wsTXosIm5lcSIsV2wsSjhlLFE4ZSxubmUsV2wsWnhlLHp4ZSxHeGVdKSxFeik7ZnVuY3Rp''@;'; + put 'put ''b24gVXhlKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19dmFy''@;'; + put 'put ''IHE4ZT0iYnVpbGRpbmciLFF4ZT1bImNsaWNrIiwiaW5wdXQiLCJrZXlkb3duIiwia2V5cHJlc3MiLCJrZXl1cCIsImZvY3VzIiwiYmx1ciIsImNoYW5nZSJdLEp4ZT1mdW5jdGlvbigpe2Z1bmN0aW9uIGQoZyxoKXsoZnVuY3Rpb24gZjF0KGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhy''@;'; + put 'put ''b3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KSh0aGlzLGQpLHRoaXMuaG90PWcsdGhpcy5ldmVudE1hbmFnZXI9bmV3IEwxKHRoaXMpLHRoaXMub3B0aW9ucz1JMShkLkRFRkFVTFRTLGgpLHRoaXMuX2VsZW1lbnQ9dGhpcy5ob3Qucm9vdERv''@;'; + put 'put ''Y3VtZW50LmNyZWF0ZUVsZW1lbnQodGhpcy5vcHRpb25zLndyYXBJdD8iZGl2Ijp0aGlzLm9wdGlvbnMudGFnTmFtZSksdGhpcy5idWlsZFN0YXRlPW51bGx9cmV0dXJuIGZ1bmN0aW9uIGgxdChkLGcsaCl7ZyYmVXhlKGQucHJvdG90eXBlLGcpLGgmJlV4ZShkLGgpLE9iamVjdC5kZWZpbmVQ''@;'; + put 'put ''cm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShkLFt7a2V5OiJzZXRWYWx1ZSIsdmFsdWU6ZnVuY3Rpb24oaCl7dGhpcy5vcHRpb25zLnZhbHVlPWgsdGhpcy51cGRhdGUoKX19LHtrZXk6ImdldFZhbHVlIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm9wdGlvbnMu''@;'; + put 'put ''dmFsdWV9fSx7a2V5OiJlbGVtZW50IixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5idWlsZFN0YXRlPT09cThlP3RoaXMuX2VsZW1lbnQ6ImJ1aWx0Ij09PXRoaXMuYnVpbGRTdGF0ZT8odGhpcy51cGRhdGUoKSx0aGlzLl9lbGVtZW50KToodGhpcy5idWlsZFN0YXRlPXE4ZSx0aGlzLmJ1''@;'; + put 'put ''aWxkKCksdGhpcy5idWlsZFN0YXRlPSJidWlsdCIsdGhpcy5fZWxlbWVudCl9fSx7a2V5OiJpc0J1aWx0Iix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiJidWlsdCI9PT10aGlzLmJ1aWxkU3RhdGV9fSx7a2V5OiJ0cmFuc2xhdGVJZlBvc3NpYmxlIix2YWx1ZTpmdW5jdGlvbihoKXtyZXR1cm4i''@;'; + put 'put ''c3RyaW5nIj09dHlwZW9mIGgmJmguc3RhcnRzV2l0aChsMyk/dGhpcy5ob3QuZ2V0VHJhbnNsYXRlZFBocmFzZShoKTpofX0se2tleToiYnVpbGQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9dGhpcyx2PWZ1bmN0aW9uKEksail7aC5ldmVudE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihJLGos''@;'; + put 'put ''ZnVuY3Rpb24odWUpe3JldHVybiBoLnJ1bkxvY2FsSG9va3Moaix1ZSxoKX0pfTtpZih0aGlzLmJ1aWxkU3RhdGV8fCh0aGlzLmJ1aWxkU3RhdGU9cThlKSx0aGlzLm9wdGlvbnMuY2xhc3NOYW1lJiZPMCh0aGlzLl9lbGVtZW50LHRoaXMub3B0aW9ucy5jbGFzc05hbWUpLHRoaXMub3B0aW9u''@;'; + put 'put ''cy5jaGlsZHJlbi5sZW5ndGgpVXIodGhpcy5vcHRpb25zLmNoaWxkcmVuLGZ1bmN0aW9uKEMpe3JldHVybiBoLl9lbGVtZW50LmFwcGVuZENoaWxkKEMuZWxlbWVudCl9KTtlbHNlIGlmKHRoaXMub3B0aW9ucy53cmFwSXQpe3ZhciB5PXRoaXMuaG90LnJvb3REb2N1bWVudC5jcmVhdGVFbGVt''@;'; + put 'put ''ZW50KHRoaXMub3B0aW9ucy50YWdOYW1lKTtHbCh0aGlzLm9wdGlvbnMsZnVuY3Rpb24oQyxJKXt2b2lkIDAhPT15W0ldJiYiY2xhc3NOYW1lIiE9PUkmJiJ0YWdOYW1lIiE9PUkmJiJjaGlsZHJlbiIhPT1JJiYoeVtJXT1oLnRyYW5zbGF0ZUlmUG9zc2libGUoQykpfSksdGhpcy5fZWxlbWVu''@;'; + put 'put ''dC5hcHBlbmRDaGlsZCh5KSxVcihReGUsZnVuY3Rpb24oQyl7cmV0dXJuIHYoeSxDKX0pfWVsc2UgVXIoUXhlLGZ1bmN0aW9uKEMpe3JldHVybiB2KGguX2VsZW1lbnQsQyl9KX19LHtrZXk6InVwZGF0ZSIsdmFsdWU6ZnVuY3Rpb24oKXt9fSx7a2V5OiJyZXNldCIsdmFsdWU6ZnVuY3Rpb24o''@;'; + put 'put ''KXt0aGlzLm9wdGlvbnMudmFsdWU9IiIsdGhpcy51cGRhdGUoKX19LHtrZXk6InNob3ciLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5lbGVtZW50LnN0eWxlLmRpc3BsYXk9IiJ9fSx7a2V5OiJoaWRlIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuZWxlbWVudC5zdHlsZS5kaXNwbGF5PSJub25lIn19''@;'; + put 'put ''LHtrZXk6ImZvY3VzIix2YWx1ZTpmdW5jdGlvbigpe319LHtrZXk6ImRlc3Ryb3kiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5ldmVudE1hbmFnZXIuZGVzdHJveSgpLHRoaXMuZXZlbnRNYW5hZ2VyPW51bGwsdGhpcy5ob3Q9bnVsbCx0aGlzLl9lbGVtZW50LnBhcmVudE5vZGUmJnRoaXMuX2Vs''@;'; + put 'put ''ZW1lbnQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0aGlzLl9lbGVtZW50KSx0aGlzLl9lbGVtZW50PW51bGx9fV0sW3trZXk6IkRFRkFVTFRTIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gYTMoe2NsYXNzTmFtZToiIix2YWx1ZToiIix0YWdOYW1lOiJkaXYiLGNoaWxkcmVuOltdLHdyYXBJdDoh''@;'; + put 'put ''MH0pfX1dKSxkfSgpO0IyKEp4ZSxjZCk7Y29uc3QgVnc9SnhlO2Z1bmN0aW9uIGU1ZShkKXtyZXR1cm4oZTVlPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGcpe3JldHVybiB0eXBlb2YgZ306ZnVuY3Rpb24oZyl7''@;'; + put 'put ''cmV0dXJuIGcmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmcuY29uc3RydWN0b3I9PT1TeW1ib2wmJmchPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBnfSkoZCl9ZnVuY3Rpb24gWHhlKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5l''@;'; + put 'put ''bnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19ZnVuY3Rpb24gcm5lKCl7cmV0dXJuIHJuZT0idW5kZWZpbmVkIiE9dHlwZW9mIFJlZmxlY3QmJlJl''@;'; + put 'put ''ZmxlY3QuZ2V0P1JlZmxlY3QuZ2V0LmJpbmQoKTpmdW5jdGlvbihnLGgsdil7dmFyIHk9ZzF0KGcsaCk7aWYoeSl7dmFyIEM9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih5LGgpO3JldHVybiBDLmdldD9DLmdldC5jYWxsKGFyZ3VtZW50cy5sZW5ndGg8Mz9nOnYpOkMudmFsdWV9''@;'; + put 'put ''fSxybmUuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIGcxdChkLGcpe2Zvcig7IU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChkLGcpJiZudWxsIT09KGQ9Vk8oZCkpOyk7cmV0dXJuIGR9ZnVuY3Rpb24gdDVlKGQsZyl7cmV0dXJuKHQ1ZT1PYmplY3Quc2V0UHJv''@;'; + put 'put ''dG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbih2LHkpe3JldHVybiB2Ll9fcHJvdG9fXz15LHZ9KShkLGcpfWZ1bmN0aW9uIEExdChkLGcpe2lmKGcmJigib2JqZWN0Ij09PWU1ZShnKXx8ImZ1bmN0aW9uIj09dHlwZW9mIGcpKXJldHVybiBnO2lmKHZvaWQg''@;'; + put 'put ''MCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWQiKTtyZXR1cm4gS3hlKGQpfWZ1bmN0aW9uIEt4ZShkKXtpZih2b2lkIDA9PT1kKXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcigidGhpcyBoYXNu''@;'; + put 'put ''J3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkIik7cmV0dXJuIGR9ZnVuY3Rpb24gVk8oZCl7cmV0dXJuKFZPPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3QuZ2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKGgpe3JldHVybiBoLl9fcHJvdG9f''@;'; + put 'put ''X3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKGgpfSkoZCl9dmFyIGluZT1uZXcgV2Vha01hcCx3MXQ9ZnVuY3Rpb24oZCl7IWZ1bmN0aW9uIG0xdChkLGcpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBnJiZudWxsIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3Qg''@;'; + put 'put ''ZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiIpO2QucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZyYmZy5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTpkLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3Jp''@;'; + put 'put ''dGFibGU6ITF9KSxnJiZ0NWUoZCxnKX0oaCxkKTt2YXIgZz1mdW5jdGlvbiB2MXQoZCl7dmFyIGc9ZnVuY3Rpb24geTF0KCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBSZWZsZWN0fHwhUmVmbGVjdC5jb25zdHJ1Y3R8fFJlZmxlY3QuY29uc3RydWN0LnNoYW0pcmV0dXJuITE7aWYoImZ1bmN0''@;'; + put 'put ''aW9uIj09dHlwZW9mIFByb3h5KXJldHVybiEwO3RyeXtyZXR1cm4gQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10sZnVuY3Rpb24oKXt9KSksITB9Y2F0Y2goZCl7cmV0dXJuITF9fSgpO3JldHVybiBmdW5jdGlvbigpe3ZhciB5LHY9''@;'; + put 'put ''Vk8oZCk7aWYoZyl7dmFyIEM9Vk8odGhpcykuY29uc3RydWN0b3I7eT1SZWZsZWN0LmNvbnN0cnVjdCh2LGFyZ3VtZW50cyxDKX1lbHNlIHk9di5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIEExdCh0aGlzLHkpfX0oaCk7ZnVuY3Rpb24gaCh2LHkpe3ZhciBDO3JldHVybiBmdW5jdGlv''@;'; + put 'put ''biBkMXQoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0odGhpcyxoKSxDPWcuY2FsbCh0aGlzLHYsSTEoaC5ERUZBVUxUUyx5KSksaW5lLnNldChLeGUoQykse30pLEMucmVnaXN0ZXJIb29r''@;'; + put 'put ''cygpLEN9cmV0dXJuIGZ1bmN0aW9uIHAxdChkLGcsaCl7ZyYmWHhlKGQucHJvdG90eXBlLGcpLGgmJlh4ZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShoLFt7a2V5OiJyZWdpc3Rlckhvb2tzIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5''@;'; + put 'put ''PXRoaXM7dGhpcy5hZGRMb2NhbEhvb2soImNsaWNrIixmdW5jdGlvbigpe3JldHVybiB5Lm9uQ2xpY2soKX0pLHRoaXMuYWRkTG9jYWxIb29rKCJrZXl1cCIsZnVuY3Rpb24oQyl7cmV0dXJuIHkub25LZXl1cChDKX0pfX0se2tleToiYnVpbGQiLHZhbHVlOmZ1bmN0aW9uKCl7cm5lKFZPKGgu''@;'; + put 'put ''cHJvdG90eXBlKSwiYnVpbGQiLHRoaXMpLmNhbGwodGhpcyk7dmFyIHk9aW5lLmdldCh0aGlzKSxDPXRoaXMuaG90LnJvb3REb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTt5LmlucHV0PXRoaXMuX2VsZW1lbnQuZmlyc3RDaGlsZCxPMCh0aGlzLl9lbGVtZW50LCJodFVJSW5wdXQiKSxP''@;'; + put 'put ''MChDLCJodFVJSW5wdXRJY29uIiksdGhpcy5fZWxlbWVudC5hcHBlbmRDaGlsZChDKSx0aGlzLnVwZGF0ZSgpfX0se2tleToidXBkYXRlIix2YWx1ZTpmdW5jdGlvbigpe2lmKHRoaXMuaXNCdWlsdCgpKXt2YXIgeT1pbmUuZ2V0KHRoaXMpLmlucHV0O3kudHlwZT10aGlzLm9wdGlvbnMudHlw''@;'; + put 'put ''ZSx5LnBsYWNlaG9sZGVyPXRoaXMudHJhbnNsYXRlSWZQb3NzaWJsZSh0aGlzLm9wdGlvbnMucGxhY2Vob2xkZXIpLHkudmFsdWU9dGhpcy50cmFuc2xhdGVJZlBvc3NpYmxlKHRoaXMub3B0aW9ucy52YWx1ZSl9fX0se2tleToiZm9jdXMiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5pc0J1aWx0''@;'; + put 'put ''KCkmJmluZS5nZXQodGhpcykuaW5wdXQuZm9jdXMoKX19LHtrZXk6Im9uQ2xpY2siLHZhbHVlOmZ1bmN0aW9uKCl7fX0se2tleToib25LZXl1cCIsdmFsdWU6ZnVuY3Rpb24oeSl7dGhpcy5vcHRpb25zLnZhbHVlPXkudGFyZ2V0LnZhbHVlfX1dLFt7a2V5OiJERUZBVUxUUyIsZ2V0OmZ1bmN0''@;'; + put 'put ''aW9uKCl7cmV0dXJuIGEzKHtwbGFjZWhvbGRlcjoiIix0eXBlOiJ0ZXh0Iix0YWdOYW1lOiJpbnB1dCJ9KX19XSksaH0oVncpO2NvbnN0IGpPPXcxdDtmdW5jdGlvbiBuNWUoZCl7cmV0dXJuKG41ZT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5p''@;'; + put 'put ''dGVyYXRvcj9mdW5jdGlvbihnKXtyZXR1cm4gdHlwZW9mIGd9OmZ1bmN0aW9uKGcpe3JldHVybiBnJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZnLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZnIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgZ30pKGQpfWZ1bmN0aW9uICR4''@;'; + put 'put ''ZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fWZ1bmN0aW9u''@;'; + put 'put ''IFpPKCl7cmV0dXJuIFpPPSJ1bmRlZmluZWQiIT10eXBlb2YgUmVmbGVjdCYmUmVmbGVjdC5nZXQ/UmVmbGVjdC5nZXQuYmluZCgpOmZ1bmN0aW9uKGcsaCx2KXt2YXIgeT1DMXQoZyxoKTtpZih5KXt2YXIgQz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHksaCk7cmV0dXJuIEMu''@;'; + put 'put ''Z2V0P0MuZ2V0LmNhbGwoYXJndW1lbnRzLmxlbmd0aDwzP2c6dik6Qy52YWx1ZX19LFpPLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBDMXQoZCxnKXtmb3IoOyFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZCxnKSYmbnVsbCE9PShkPWp3KGQpKTspO3JldHVy''@;'; + put 'put ''biBkfWZ1bmN0aW9uIHI1ZShkLGcpe3JldHVybihyNWU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24odix5KXtyZXR1cm4gdi5fX3Byb3RvX189eSx2fSkoZCxnKX1mdW5jdGlvbiBNMXQoZCxnKXtpZihnJiYoIm9iamVjdCI9PT1u''@;'; + put 'put ''NWUoZyl8fCJmdW5jdGlvbiI9PXR5cGVvZiBnKSlyZXR1cm4gZztpZih2b2lkIDAhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIkRlcml2ZWQgY29uc3RydWN0b3JzIG1heSBvbmx5IHJldHVybiBvYmplY3Qgb3IgdW5kZWZpbmVkIik7cmV0dXJuIHF4ZShkKX1mdW5jdGlvbiBxeGUoZCl7aWYo''@;'; + put 'put ''dm9pZCAwPT09ZCl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3JldHVybiBkfWZ1bmN0aW9uIGp3KGQpe3JldHVybihqdz1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFBy''@;'; + put 'put ''b3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihoKXtyZXR1cm4gaC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihoKX0pKGQpfXZhciBvbmU9bmV3IFdlYWtNYXAseDF0PWZ1bmN0aW9uKGQpeyFmdW5jdGlvbiBrMXQoZCxnKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZyYmbnVsbCE9''@;'; + put 'put ''PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTtkLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGcmJmcucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6ZCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6''@;'; + put 'put ''ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZyYmcjVlKGQsZyl9KGgsZCk7dmFyIGc9ZnVuY3Rpb24gUzF0KGQpe3ZhciBnPWZ1bmN0aW9uIEUxdCgpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3Ry''@;'; + put 'put ''dWN0fHxSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBQcm94eSlyZXR1cm4hMDt0cnl7cmV0dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLGZ1bmN0aW9uKCl7fSkpLCEwfWNh''@;'; + put 'put ''dGNoKGQpe3JldHVybiExfX0oKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgeSx2PWp3KGQpO2lmKGcpe3ZhciBDPWp3KHRoaXMpLmNvbnN0cnVjdG9yO3k9UmVmbGVjdC5jb25zdHJ1Y3Qodixhcmd1bWVudHMsQyl9ZWxzZSB5PXYuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBNMXQodGhp''@;'; + put 'put ''cyx5KX19KGgpO2Z1bmN0aW9uIGgodix5KXt2YXIgQztyZXR1cm4gZnVuY3Rpb24gYjF0KGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsaCksQz1nLmNhbGwodGhpcyx2LEkxKGgu''@;'; + put 'put ''REVGQVVMVFMseSkpLG9uZS5zZXQocXhlKEMpLHt9KSxDLm1lbnU9bnVsbCxDLml0ZW1zPVtdLEMucmVnaXN0ZXJIb29rcygpLEN9cmV0dXJuIGZ1bmN0aW9uIF8xdChkLGcsaCl7ZyYmJHhlKGQucHJvdG90eXBlLGcpLGgmJiR4ZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90''@;'; + put 'put ''b3R5cGUiLHt3cml0YWJsZTohMX0pfShoLFt7a2V5OiJyZWdpc3Rlckhvb2tzIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXM7dGhpcy5hZGRMb2NhbEhvb2soImNsaWNrIixmdW5jdGlvbigpe3JldHVybiB5Lm9uQ2xpY2soKX0pfX0se2tleToic2V0SXRlbXMiLHZhbHVlOmZ1bmN0aW9u''@;'; + put 'put ''KHkpe3RoaXMuaXRlbXM9dGhpcy50cmFuc2xhdGVOYW1lcyh5KSx0aGlzLm1lbnUmJnRoaXMubWVudS5zZXRNZW51SXRlbXModGhpcy5pdGVtcyl9fSx7a2V5OiJ0cmFuc2xhdGVOYW1lcyIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEM9dGhpcztyZXR1cm4gVXIoeSxmdW5jdGlvbihJKXtJLm5h''@;'; + put 'put ''bWU9Qy50cmFuc2xhdGVJZlBvc3NpYmxlKEkubmFtZSl9KSx5fX0se2tleToiYnVpbGQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcztaTyhqdyhoLnByb3RvdHlwZSksImJ1aWxkIix0aGlzKS5jYWxsKHRoaXMpLHRoaXMubWVudT1uZXcgRThlKHRoaXMuaG90LHtjbGFzc05hbWU6Imh0''@;'; + put 'put ''U2VsZWN0VUkgaHRGaWx0ZXJzQ29uZGl0aW9uc01lbnUiLGtlZXBJblZpZXdwb3J0OiExLHN0YW5kYWxvbmU6ITAsY29udGFpbmVyOnRoaXMub3B0aW9ucy5tZW51Q29udGFpbmVyfSksdGhpcy5tZW51LnNldE1lbnVJdGVtcyh0aGlzLml0ZW1zKTt2YXIgQz1uZXcgVncodGhpcy5ob3Qse2Ns''@;'; + put 'put ''YXNzTmFtZToiaHRVSVNlbGVjdENhcHRpb24ifSksST1uZXcgVncodGhpcy5ob3Qse2NsYXNzTmFtZToiaHRVSVNlbGVjdERyb3Bkb3duIn0pLGo9b25lLmdldCh0aGlzKTtqLmNhcHRpb249QyxqLmNhcHRpb25FbGVtZW50PUMuZWxlbWVudCxqLmRyb3Bkb3duPUksVXIoW0MsSV0sZnVuY3Rp''@;'; + put 'put ''b24odWUpe3JldHVybiB5Ll9lbGVtZW50LmFwcGVuZENoaWxkKHVlLmVsZW1lbnQpfSksdGhpcy5tZW51LmFkZExvY2FsSG9vaygic2VsZWN0IixmdW5jdGlvbih1ZSl7cmV0dXJuIHkub25NZW51U2VsZWN0KHVlKX0pLHRoaXMubWVudS5hZGRMb2NhbEhvb2soImFmdGVyQ2xvc2UiLGZ1bmN0''@;'; + put 'put ''aW9uKCl7cmV0dXJuIHkub25NZW51Q2xvc2VkKCl9KSx0aGlzLnVwZGF0ZSgpfX0se2tleToidXBkYXRlIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5O3RoaXMuaXNCdWlsdCgpJiYoeT10aGlzLm9wdGlvbnMudmFsdWU/dGhpcy5vcHRpb25zLnZhbHVlLm5hbWU6dGhpcy5tZW51LmhvdC5nZXRU''@;'; + put 'put ''cmFuc2xhdGVkUGhyYXNlKGV0ZSksb25lLmdldCh0aGlzKS5jYXB0aW9uRWxlbWVudC50ZXh0Q29udGVudD15LFpPKGp3KGgucHJvdG90eXBlKSwidXBkYXRlIix0aGlzKS5jYWxsKHRoaXMpKX19LHtrZXk6Im9wZW5PcHRpb25zIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXMuZWxlbWVu''@;'; + put 'put ''dC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTt0aGlzLm1lbnUmJih0aGlzLm1lbnUub3BlbigpLHRoaXMubWVudS5zZXRQb3NpdGlvbih7bGVmdDp0aGlzLmhvdC5pc0x0cigpP3kubGVmdC01OnkubGVmdC0zMSx0b3A6eS50b3AtMSx3aWR0aDp5LndpZHRoLGhlaWdodDp5LmhlaWdodH0pKX19''@;'; + put 'put ''LHtrZXk6ImNsb3NlT3B0aW9ucyIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLm1lbnUmJnRoaXMubWVudS5jbG9zZSgpfX0se2tleToib25NZW51U2VsZWN0Iix2YWx1ZTpmdW5jdGlvbih5KXt5Lm5hbWUhPT1XbCYmKHRoaXMub3B0aW9ucy52YWx1ZT15LHRoaXMudXBkYXRlKCksdGhpcy5ydW5M''@;'; + put 'put ''b2NhbEhvb2tzKCJzZWxlY3QiLHRoaXMub3B0aW9ucy52YWx1ZSkpfX0se2tleToib25NZW51Q2xvc2VkIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMucnVuTG9jYWxIb29rcygiYWZ0ZXJDbG9zZSIpfX0se2tleToib25DbGljayIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLm9wZW5PcHRpb25zKCl9''@;'; + put 'put ''fSx7a2V5OiJkZXN0cm95Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMubWVudSYmKHRoaXMubWVudS5kZXN0cm95KCksdGhpcy5tZW51PW51bGwpO3ZhciB5PW9uZS5nZXQodGhpcyksQz15LmNhcHRpb24sST15LmRyb3Bkb3duO0MmJkMuZGVzdHJveSgpLEkmJkkuZGVzdHJveSgpLFpPKGp3KGgu''@;'; + put 'put ''cHJvdG90eXBlKSwiZGVzdHJveSIsdGhpcykuY2FsbCh0aGlzKX19XSxbe2tleToiREVGQVVMVFMiLGdldDpmdW5jdGlvbigpe3JldHVybiBhMyh7Y2xhc3NOYW1lOiJodFVJU2VsZWN0Iix3cmFwSXQ6ITF9KX19XSksaH0oVncpO2NvbnN0IGVUZT14MXQ7ZnVuY3Rpb24gaTVlKGQpe3JldHVy''@;'; + put 'put ''bihpNWU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZyl7cmV0dXJuIHR5cGVvZiBnfTpmdW5jdGlvbihnKXtyZXR1cm4gZyYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZy5jb25zdHJ1Y3Rvcj09PVN5bWJv''@;'; + put 'put ''bCYmZyE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGd9KShkKX1mdW5jdGlvbiBvNWUoZCxnKXsobnVsbD09Z3x8Zz5kLmxlbmd0aCkmJihnPWQubGVuZ3RoKTtmb3IodmFyIGg9MCx2PW5ldyBBcnJheShnKTtoPGc7aCsrKXZbaF09ZFtoXTtyZXR1cm4gdn1mdW5jdGlvbiB0''@;'; + put 'put ''VGUoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX1mdW5jdGlv''@;'; + put 'put ''biBhbmUoKXtyZXR1cm4gYW5lPSJ1bmRlZmluZWQiIT10eXBlb2YgUmVmbGVjdCYmUmVmbGVjdC5nZXQ/UmVmbGVjdC5nZXQuYmluZCgpOmZ1bmN0aW9uKGcsaCx2KXt2YXIgeT1QMXQoZyxoKTtpZih5KXt2YXIgQz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHksaCk7cmV0dXJu''@;'; + put 'put ''IEMuZ2V0P0MuZ2V0LmNhbGwoYXJndW1lbnRzLmxlbmd0aDwzP2c6dik6Qy52YWx1ZX19LGFuZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gUDF0KGQsZyl7Zm9yKDshT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGQsZykmJm51bGwhPT0oZD16TyhkKSk7KTty''@;'; + put 'put ''ZXR1cm4gZH1mdW5jdGlvbiBhNWUoZCxnKXtyZXR1cm4oYTVlPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHYseSl7cmV0dXJuIHYuX19wcm90b19fPXksdn0pKGQsZyl9ZnVuY3Rpb24gTjF0KGQsZyl7aWYoZyYmKCJvYmplY3Qi''@;'; + put 'put ''PT09aTVlKGcpfHwiZnVuY3Rpb24iPT10eXBlb2YgZykpcmV0dXJuIGc7aWYodm9pZCAwIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJEZXJpdmVkIGNvbnN0cnVjdG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0IG9yIHVuZGVmaW5lZCIpO3JldHVybiBmdW5jdGlvbiBWMXQoZCl7aWYodm9p''@;'; + put 'put ''ZCAwPT09ZCl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3JldHVybiBkfShkKX1mdW5jdGlvbiB6TyhkKXtyZXR1cm4oek89T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQ''@;'; + put 'put ''cm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24oaCl7cmV0dXJuIGguX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YoaCl9KShkKX12YXIgWjF0PWZ1bmN0aW9uKGQpeyFmdW5jdGlvbiBGMXQoZCxnKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZyYmbnVsbCE9PWcpdGhyb3cgbmV3IFR5''@;'; + put 'put ''cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTtkLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGcmJmcucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6ZCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRl''@;'; + put 'put ''ZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZyYmYTVlKGQsZyl9KGgsZCk7dmFyIGc9ZnVuY3Rpb24gSDF0KGQpe3ZhciBnPWZ1bmN0aW9uIGoxdCgpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0fHxSZWZsZWN0LmNv''@;'; + put 'put ''bnN0cnVjdC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBQcm94eSlyZXR1cm4hMDt0cnl7cmV0dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLGZ1bmN0aW9uKCl7fSkpLCEwfWNhdGNoKGQpe3JldHVybiEx''@;'; + put 'put ''fX0oKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgeSx2PXpPKGQpO2lmKGcpe3ZhciBDPXpPKHRoaXMpLmNvbnN0cnVjdG9yO3k9UmVmbGVjdC5jb25zdHJ1Y3Qodixhcmd1bWVudHMsQyl9ZWxzZSB5PXYuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBOMXQodGhpcyx5KX19KGgpO2Z1bmN0''@;'; + put 'put ''aW9uIGgodix5KXt2YXIgQztyZXR1cm4gZnVuY3Rpb24gUjF0KGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsaCksKEM9Zy5jYWxsKHRoaXMsdix7aWQ6eS5pZCxzdGF0ZWxlc3M6''@;'; + put 'put ''ITF9KSkubmFtZT15Lm5hbWUsQy5hZGRTZXBhcmF0b3I9eS5hZGRTZXBhcmF0b3IsQy5lbGVtZW50cy5wdXNoKG5ldyBlVGUoQy5ob3Qse21lbnVDb250YWluZXI6eS5tZW51Q29udGFpbmVyfSkpLEMuZWxlbWVudHMucHVzaChuZXcgak8oQy5ob3Qse3BsYWNlaG9sZGVyOkZwZX0pKSxDLmVs''@;'; + put 'put ''ZW1lbnRzLnB1c2gobmV3IGpPKEMuaG90LHtwbGFjZWhvbGRlcjpIcGV9KSksQy5yZWdpc3Rlckhvb2tzKCksQ31yZXR1cm4gZnVuY3Rpb24gQjF0KGQsZyxoKXtnJiZ0VGUoZC5wcm90b3R5cGUsZyksaCYmdFRlKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dy''@;'; + put 'put ''aXRhYmxlOiExfSl9KGgsW3trZXk6InJlZ2lzdGVySG9va3MiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpczt0aGlzLmdldFNlbGVjdEVsZW1lbnQoKS5hZGRMb2NhbEhvb2soInNlbGVjdCIsZnVuY3Rpb24oQyl7cmV0dXJuIHkub25Db25kaXRpb25TZWxlY3QoQyl9KSx0aGlzLmdldFNl''@;'; + put 'put ''bGVjdEVsZW1lbnQoKS5hZGRMb2NhbEhvb2soImFmdGVyQ2xvc2UiLGZ1bmN0aW9uKCl7cmV0dXJuIHkub25TZWxlY3RVSUNsb3NlZCgpfSksVXIodGhpcy5nZXRJbnB1dEVsZW1lbnRzKCksZnVuY3Rpb24oQyl7Qy5hZGRMb2NhbEhvb2soImtleWRvd24iLGZ1bmN0aW9uKEkpe3JldHVybiB5''@;'; + put 'put ''Lm9uSW5wdXRLZXlEb3duKEkpfSl9KX19LHtrZXk6InNldFN0YXRlIix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz10aGlzO2lmKHRoaXMucmVzZXQoKSx5KXt2YXIgST1hMyh5LmNvbW1hbmQpO0kubmFtZS5zdGFydHNXaXRoKHR1KSYmKEkubmFtZT10aGlzLmhvdC5nZXRUcmFuc2xhdGVkUGhy''@;'; + put 'put ''YXNlKEkubmFtZSkpLHRoaXMuZ2V0U2VsZWN0RWxlbWVudCgpLnNldFZhbHVlKEkpLFVyKHkuYXJncyxmdW5jdGlvbihqLHVlKXtpZih1ZT5JLmlucHV0c0NvdW50LTEpcmV0dXJuITE7dmFyIF9lPUMuZ2V0SW5wdXRFbGVtZW50KHVlKTtfZS5zZXRWYWx1ZShqKSxfZVtJLmlucHV0c0NvdW50''@;'; + put 'put ''PnVlPyJzaG93IjoiaGlkZSJdKCksdWV8fHNldFRpbWVvdXQoZnVuY3Rpb24oKXtyZXR1cm4gX2UuZm9jdXMoKX0sMTApfSl9fX0se2tleToiZ2V0U3RhdGUiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcy5nZXRTZWxlY3RFbGVtZW50KCkuZ2V0VmFsdWUoKXx8Tk8oSGYpLEM9W107cmV0''@;'; + put 'put ''dXJuIFVyKHRoaXMuZ2V0SW5wdXRFbGVtZW50cygpLGZ1bmN0aW9uKEksail7eS5pbnB1dHNDb3VudD5qJiZDLnB1c2goSS5nZXRWYWx1ZSgpKX0pLHtjb21tYW5kOnksYXJnczpDfX19LHtrZXk6InVwZGF0ZVN0YXRlIix2YWx1ZTpmdW5jdGlvbih5LEMpe3ZhciBJPU5PKHk/eS5uYW1lOkhm''@;'; + put 'put ''KTt0aGlzLnN0YXRlLnNldFZhbHVlQXRJbmRleChDLHtjb21tYW5kOkksYXJnczp5P3kuYXJnczpbXX0pLHl8fFVyKHRoaXMuZ2V0SW5wdXRFbGVtZW50cygpLGZ1bmN0aW9uKGope3JldHVybiBqLnNldFZhbHVlKG51bGwpfSl9fSx7a2V5OiJnZXRTZWxlY3RFbGVtZW50Iix2YWx1ZTpmdW5j''@;'; + put 'put ''dGlvbigpe3JldHVybiB0aGlzLmVsZW1lbnRzLmZpbHRlcihmdW5jdGlvbih5KXtyZXR1cm4geSBpbnN0YW5jZW9mIGVUZX0pWzBdfX0se2tleToiZ2V0SW5wdXRFbGVtZW50Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBd''@;'; + put 'put ''P2FyZ3VtZW50c1swXTowO3JldHVybiB0aGlzLmdldElucHV0RWxlbWVudHMoKVt5XX19LHtrZXk6ImdldElucHV0RWxlbWVudHMiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZWxlbWVudHMuZmlsdGVyKGZ1bmN0aW9uKHkpe3JldHVybiB5IGluc3RhbmNlb2Ygak99KX19LHtrZXk6''@;'; + put 'put ''ImdldE1lbnVJdGVtRGVzY3JpcHRvciIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzO3JldHVybntrZXk6dGhpcy5pZCxuYW1lOnRoaXMubmFtZSxpc0NvbW1hbmQ6ITEsZGlzYWJsZVNlbGVjdGlvbjohMCxoaWRkZW46ZnVuY3Rpb24oKXtyZXR1cm4geS5pc0hpZGRlbigpfSxyZW5kZXJl''@;'; + put 'put ''cjpmdW5jdGlvbihJLGosdWUsX2UsQmUsTmUpe08wKGoucGFyZW50Tm9kZSwiaHRGaWx0ZXJzTWVudUNvbmRpdGlvbiIpLHkuYWRkU2VwYXJhdG9yJiZPMChqLnBhcmVudE5vZGUsImJvcmRlciIpO3ZhciBLZT15LmhvdC5yb290RG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7cmV0dXJu''@;'; + put 'put ''IE8wKEtlLCJodEZpbHRlcnNNZW51TGFiZWwiKSxLZS50ZXh0Q29udGVudD1OZSxqLmFwcGVuZENoaWxkKEtlKSxqLnBhcmVudE5vZGUuaGFzQXR0cmlidXRlKCJnaG9zdC10YWJsZSIpfHxVcih5LmVsZW1lbnRzLGZ1bmN0aW9uKGR0KXtyZXR1cm4gai5hcHBlbmRDaGlsZChkdC5lbGVtZW50''@;'; + put 'put ''KX0pLGp9fX19LHtrZXk6InJlc2V0Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5LEM9dGhpcy5ob3QuZ2V0UGx1Z2luKCJmaWx0ZXJzIikuZ2V0U2VsZWN0ZWRDb2x1bW4oKSxJPUMmJkMudmlzdWFsSW5kZXgsdWU9ZnVuY3Rpb24gYzF0KGQpe3ZhciBnPVtdLGg9ZDtyZXR1cm4gWXhlW2hdfHwo''@;'; + put 'put ''aD0idGV4dCIpLFVyKFl4ZVtoXSxmdW5jdGlvbih2KXt2YXIgeTt5PXY9PT1XbD97bmFtZTpXbH06YTMoTk8odikpLGcucHVzaCh5KX0pLGd9KCh5PXRoaXMuaG90KS5nZXREYXRhVHlwZS5hcHBseSh5LGZ1bmN0aW9uIFQxdChkKXtyZXR1cm4gZnVuY3Rpb24gTzF0KGQpe2lmKEFycmF5Lmlz''@;'; + put 'put ''QXJyYXkoZCkpcmV0dXJuIG81ZShkKX0oZCl8fGZ1bmN0aW9uIEwxdChkKXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmbnVsbCE9ZFtTeW1ib2wuaXRlcmF0b3JdfHxudWxsIT1kWyJAQGl0ZXJhdG9yIl0pcmV0dXJuIEFycmF5LmZyb20oZCl9KGQpfHxmdW5jdGlvbiBEMXQoZCxn''@;'; + put 'put ''KXtpZihkKXtpZigic3RyaW5nIj09dHlwZW9mIGQpcmV0dXJuIG81ZShkLGcpO3ZhciBoPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChkKS5zbGljZSg4LC0xKTtpZigiT2JqZWN0Ij09PWgmJmQuY29uc3RydWN0b3ImJihoPWQuY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1ofHwi''@;'; + put 'put ''U2V0Ij09PWgpcmV0dXJuIEFycmF5LmZyb20oZCk7aWYoIkFyZ3VtZW50cyI9PT1ofHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChoKSlyZXR1cm4gbzVlKGQsZyl9fShkKXx8ZnVuY3Rpb24gSTF0KCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxp''@;'; + put 'put ''ZCBhdHRlbXB0IHRvIHNwcmVhZCBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9KHRoaXMuaG90LmdldFNlbGVjdGVkTGFzdCgpfHxbMCxJ''@;'; + put 'put ''XSkpKTtVcih0aGlzLmdldElucHV0RWxlbWVudHMoKSxmdW5jdGlvbihfZSl7cmV0dXJuIF9lLmhpZGUoKX0pLHRoaXMuZ2V0U2VsZWN0RWxlbWVudCgpLnNldEl0ZW1zKHVlKSxhbmUoek8oaC5wcm90b3R5cGUpLCJyZXNldCIsdGhpcykuY2FsbCh0aGlzKSx0aGlzLmdldFNlbGVjdEVsZW1l''@;'; + put 'put ''bnQoKS5zZXRWYWx1ZSh1ZVswXSl9fSx7a2V5OiJvbkNvbmRpdGlvblNlbGVjdCIsdmFsdWU6ZnVuY3Rpb24oeSl7VXIodGhpcy5nZXRJbnB1dEVsZW1lbnRzKCksZnVuY3Rpb24oQyxJKXtDW3kuaW5wdXRzQ291bnQ+ST8ic2hvdyI6ImhpZGUiXSgpLDA9PT1JJiZzZXRUaW1lb3V0KGZ1bmN0''@;'; + put 'put ''aW9uKCl7cmV0dXJuIEMuZm9jdXMoKX0sMTApfSksdGhpcy5ydW5Mb2NhbEhvb2tzKCJjaGFuZ2UiLHkpfX0se2tleToib25TZWxlY3RVSUNsb3NlZCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLnJ1bkxvY2FsSG9va3MoImFmdGVyQ2xvc2UiKX19LHtrZXk6Im9uSW5wdXRLZXlEb3duIix2YWx1''@;'; + put 'put ''ZTpmdW5jdGlvbih5KXtoTyh5LmtleUNvZGUsIkVOVEVSIik/KHRoaXMucnVuTG9jYWxIb29rcygiYWNjZXB0IiksXzgoeSkpOmhPKHkua2V5Q29kZSwiRVNDQVBFIikmJih0aGlzLnJ1bkxvY2FsSG9va3MoImNhbmNlbCIpLF84KHkpKX19XSksaH0ocXRlKTtjb25zdCBsNWU9WjF0O3ZhciB4''@;'; + put 'put ''ej17fTtmdW5jdGlvbiB6MXQoZCl7aWYoIXh6W2RdKXRocm93IEVycm9yKCdPcGVyYXRpb24gd2l0aCBpZCAiJy5jb25jYXQoZCwnIiBkb2VzIG5vdCBleGlzdC4nKSk7dmFyIGc9eHpbZF0uZnVuYztyZXR1cm4gZnVuY3Rpb24oaCx2KXtyZXR1cm4gZyhoLHYpfX1mdW5jdGlvbiBHMXQoZCl7''@;'; + put 'put ''cmV0dXJuIHh6W2RdLm5hbWV9ZnVuY3Rpb24gczVlKGQsZyxoKXt4eltkXT17bmFtZTpnLGZ1bmM6aH19dmFyIFp3PSJjb25qdW5jdGlvbiI7czVlKFp3LERwZSxmdW5jdGlvbiBZMXQoZCxnKXtyZXR1cm4gZC5ldmVyeShmdW5jdGlvbihoKXtyZXR1cm4gaC5mdW5jKGcpfSl9KTt2YXIgbG5l''@;'; + put 'put ''PSJkaXNqdW5jdGlvbiI7czVlKGxuZSx0dGUsZnVuY3Rpb24gUTF0KGQsZyl7cmV0dXJuIGQuc29tZShmdW5jdGlvbihoKXtyZXR1cm4gaC5mdW5jKGcpfSl9KTt2YXIgdTVlPSJkaXNqdW5jdGlvbldpdGhFeHRyYUNvbmRpdGlvbiI7ZnVuY3Rpb24gYzVlKGQpe3JldHVybihjNWU9ImZ1bmN0''@;'; + put 'put ''aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZyl7cmV0dXJuIHR5cGVvZiBnfTpmdW5jdGlvbihnKXtyZXR1cm4gZyYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZy5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZyE9PVN5bWJv''@;'; + put 'put ''bC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGd9KShkKX1mdW5jdGlvbiBuVGUoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9''@;'; + put 'put ''ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX1mdW5jdGlvbiBzbmUoKXtyZXR1cm4gc25lPSJ1bmRlZmluZWQiIT10eXBlb2YgUmVmbGVjdCYmUmVmbGVjdC5nZXQ/UmVmbGVjdC5nZXQuYmluZCgpOmZ1bmN0aW9uKGcsaCx2KXt2YXIgeT1xMXQoZyxoKTtpZih5KXt2YXIg''@;'; + put 'put ''Qz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHksaCk7cmV0dXJuIEMuZ2V0P0MuZ2V0LmNhbGwoYXJndW1lbnRzLmxlbmd0aDwzP2c6dik6Qy52YWx1ZX19LHNuZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gcTF0KGQsZyl7Zm9yKDshT2JqZWN0LnByb3RvdHlwZS5o''@;'; + put 'put ''YXNPd25Qcm9wZXJ0eS5jYWxsKGQsZykmJm51bGwhPT0oZD1HTyhkKSk7KTtyZXR1cm4gZH1mdW5jdGlvbiBmNWUoZCxnKXtyZXR1cm4oZjVlPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHYseSl7cmV0dXJuIHYuX19wcm90b19f''@;'; + put 'put ''PXksdn0pKGQsZyl9ZnVuY3Rpb24gbnV0KGQsZyl7aWYoZyYmKCJvYmplY3QiPT09YzVlKGcpfHwiZnVuY3Rpb24iPT10eXBlb2YgZykpcmV0dXJuIGc7aWYodm9pZCAwIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJEZXJpdmVkIGNvbnN0cnVjdG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0''@;'; + put 'put ''IG9yIHVuZGVmaW5lZCIpO3JldHVybiByVGUoZCl9ZnVuY3Rpb24gclRlKGQpe2lmKHZvaWQgMD09PWQpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4gZH1mdW5jdGlvbiBH''@;'; + put 'put ''TyhkKXtyZXR1cm4oR089T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24oaCl7cmV0dXJuIGguX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YoaCl9KShkKX1zNWUodTVlLHR0ZSxmdW5jdGlvbiBYMXQoZCxnKXtpZihkLmxl''@;'; + put 'put ''bmd0aDwzKXRocm93IEVycm9yKCJPcGVyYXRpb24gZG9lc24ndCB3b3JrIG9uIGxlc3MgdGhlbiB0aHJlZSBjb25kaXRpb25zLiIpO3JldHVybiBkLnNsaWNlKDAsZC5sZW5ndGgtMSkuc29tZShmdW5jdGlvbihoKXtyZXR1cm4gaC5mdW5jKGcpfSkmJmRbZC5sZW5ndGgtMV0uZnVuYyhnKX0p''@;'; + put 'put ''O3ZhciB1bmU9bmV3IFdlYWtNYXAsaXV0PWZ1bmN0aW9uKGQpeyFmdW5jdGlvbiBldXQoZCxnKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZyYmbnVsbCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTtk''@;'; + put 'put ''LnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGcmJmcucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6ZCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZyYmZjVlKGQsZyl9KGgsZCk7dmFy''@;'; + put 'put ''IGc9ZnVuY3Rpb24gdHV0KGQpe3ZhciBnPWZ1bmN0aW9uIHJ1dCgpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0fHxSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBQcm94eSlyZXR1cm4hMDt0cnl7''@;'; + put 'put ''cmV0dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLGZ1bmN0aW9uKCl7fSkpLCEwfWNhdGNoKGQpe3JldHVybiExfX0oKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgeSx2PUdPKGQpO2lmKGcpe3ZhciBDPUdPKHRoaXMpLmNvbnN0''@;'; + put 'put ''cnVjdG9yO3k9UmVmbGVjdC5jb25zdHJ1Y3Qodixhcmd1bWVudHMsQyl9ZWxzZSB5PXYuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBudXQodGhpcyx5KX19KGgpO2Z1bmN0aW9uIGgodix5KXt2YXIgQztyZXR1cm4gZnVuY3Rpb24gSzF0KGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykp''@;'; + put 'put ''dGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsaCksQz1nLmNhbGwodGhpcyx2LEkxKGguREVGQVVMVFMseSkpLHVuZS5zZXQoclRlKEMpLHt9KSxDfXJldHVybiBmdW5jdGlvbiAkMXQoZCxnLGgpe2cmJm5UZShkLnByb3RvdHlw''@;'; + put 'put ''ZSxnKSxoJiZuVGUoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oaCxbe2tleToiYnVpbGQiLHZhbHVlOmZ1bmN0aW9uKCl7c25lKEdPKGgucHJvdG90eXBlKSwiYnVpbGQiLHRoaXMpLmNhbGwodGhpcyk7dmFyIHk9dW5lLmdldCh0aGlz''@;'; + put 'put ''KTt5LmlucHV0PXRoaXMuX2VsZW1lbnQuZmlyc3RDaGlsZDt2YXIgQz10aGlzLmhvdC5yb290RG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibGFiZWwiKTtDLnRleHRDb250ZW50PXRoaXMudHJhbnNsYXRlSWZQb3NzaWJsZSh0aGlzLm9wdGlvbnMubGFiZWwudGV4dENvbnRlbnQpLEMuaHRtbEZv''@;'; + put 'put ''cj10aGlzLnRyYW5zbGF0ZUlmUG9zc2libGUodGhpcy5vcHRpb25zLmxhYmVsLmh0bWxGb3IpLHkubGFiZWw9Qyx0aGlzLl9lbGVtZW50LmFwcGVuZENoaWxkKEMpLHRoaXMudXBkYXRlKCl9fSx7a2V5OiJ1cGRhdGUiLHZhbHVlOmZ1bmN0aW9uKCl7aWYodGhpcy5pc0J1aWx0KCkpe3ZhciB5''@;'; + put 'put ''PXVuZS5nZXQodGhpcyk7eS5pbnB1dC5jaGVja2VkPXRoaXMub3B0aW9ucy5jaGVja2VkLHkubGFiZWwudGV4dENvbnRlbnQ9dGhpcy50cmFuc2xhdGVJZlBvc3NpYmxlKHRoaXMub3B0aW9ucy5sYWJlbC50ZXh0Q29udGVudCl9fX0se2tleToiaXNDaGVja2VkIix2YWx1ZTpmdW5jdGlvbigp''@;'; + put 'put ''e3JldHVybiB0aGlzLm9wdGlvbnMuY2hlY2tlZH19LHtrZXk6InNldENoZWNrZWQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9IShhcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXSl8fGFyZ3VtZW50c1swXTt0aGlzLm9wdGlvbnMuY2hlY2tlZD15LHRoaXMudXBkYXRl''@;'; + put 'put ''KCl9fSx7a2V5OiJmb2N1cyIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmlzQnVpbHQoKSYmdW5lLmdldCh0aGlzKS5pbnB1dC5mb2N1cygpfX1dLFt7a2V5OiJERUZBVUxUUyIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGEzKHt0eXBlOiJyYWRpbyIsdGFnTmFtZToiaW5wdXQiLGNsYXNzTmFtZToi''@;'; + put 'put ''aHRVSVJhZGlvIixsYWJlbDp7fX0pfX1dKSxofShWdyk7Y29uc3QgaVRlPWl1dDtmdW5jdGlvbiBoNWUoZCl7cmV0dXJuKGg1ZT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihnKXtyZXR1cm4gdHlwZW9mIGd9OmZ1''@;'; + put 'put ''bmN0aW9uKGcpe3JldHVybiBnJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZnLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZnIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgZ30pKGQpfXZhciBvVGU7ZnVuY3Rpb24gYVRlKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDto''@;'; + put 'put ''Kyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19ZnVuY3Rpb24gZDVlKGQsZyl7cmV0dXJuKGQ1ZT1PYmplY3Quc2V0''@;'; + put 'put ''UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbih2LHkpe3JldHVybiB2Ll9fcHJvdG9fXz15LHZ9KShkLGcpfWZ1bmN0aW9uIGN1dChkLGcpe2lmKGcmJigib2JqZWN0Ij09PWg1ZShnKXx8ImZ1bmN0aW9uIj09dHlwZW9mIGcpKXJldHVybiBnO2lmKHZv''@;'; + put 'put ''aWQgMCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWQiKTtyZXR1cm4gZnVuY3Rpb24gZnV0KGQpe2lmKHZvaWQgMD09PWQpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBi''@;'; + put 'put ''ZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4gZH0oZCl9ZnVuY3Rpb24gY25lKGQpe3JldHVybihjbmU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24oaCl7cmV0dXJuIGguX19wcm90''@;'; + put 'put ''b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YoaCl9KShkKX12YXIgZHV0PWZ1bmN0aW9uKGQpeyFmdW5jdGlvbiBzdXQoZCxnKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZyYmbnVsbCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxs''@;'; + put 'put ''IG9yIGEgZnVuY3Rpb24iKTtkLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGcmJmcucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6ZCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZyYm''@;'; + put 'put ''ZDVlKGQsZyl9KGgsZCk7dmFyIGc9ZnVuY3Rpb24gdXV0KGQpe3ZhciBnPWZ1bmN0aW9uIGh1dCgpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0fHxSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBQ''@;'; + put 'put ''cm94eSlyZXR1cm4hMDt0cnl7cmV0dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLGZ1bmN0aW9uKCl7fSkpLCEwfWNhdGNoKGQpe3JldHVybiExfX0oKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgeSx2PWNuZShkKTtpZihnKXt2''@;'; + put 'put ''YXIgQz1jbmUodGhpcykuY29uc3RydWN0b3I7eT1SZWZsZWN0LmNvbnN0cnVjdCh2LGFyZ3VtZW50cyxDKX1lbHNlIHk9di5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIGN1dCh0aGlzLHkpfX0oaCk7ZnVuY3Rpb24gaCh2LHkpe3ZhciBDO3JldHVybiBmdW5jdGlvbiBhdXQoZCxnKXtp''@;'; + put 'put ''ZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0odGhpcyxoKSwoQz1nLmNhbGwodGhpcyx2LHtpZDp5LmlkLHN0YXRlbGVzczohMX0pKS5uYW1lPXkubmFtZSxDLmJ1aWxkT3BlcmF0b3JzRWxlbWVudCgp''@;'; + put 'put ''LEN9cmV0dXJuIGZ1bmN0aW9uIGx1dChkLGcsaCl7ZyYmYVRlKGQucHJvdG90eXBlLGcpLGgmJmFUZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShoLFt7a2V5OiJnZXRNZW51SXRlbURlc2NyaXB0b3IiLHZhbHVlOmZ1bmN0aW9uKCl7''@;'; + put 'put ''dmFyIHk9dGhpcztyZXR1cm57a2V5OnRoaXMuaWQsbmFtZTp0aGlzLm5hbWUsaXNDb21tYW5kOiExLGRpc2FibGVTZWxlY3Rpb246ITAsaGlkZGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHkuaXNIaWRkZW4oKX0scmVuZGVyZXI6ZnVuY3Rpb24oSSxqKXtyZXR1cm4gTzAoai5wYXJlbnROb2RlLCJo''@;'; + put 'put ''dEZpbHRlcnNNZW51T3BlcmF0b3JzIiksai5wYXJlbnROb2RlLmhhc0F0dHJpYnV0ZSgiZ2hvc3QtdGFibGUiKXx8VXIoeS5lbGVtZW50cyxmdW5jdGlvbih1ZSl7cmV0dXJuIGouYXBwZW5kQ2hpbGQodWUuZWxlbWVudCl9KSxqfX19fSx7a2V5OiJidWlsZE9wZXJhdG9yc0VsZW1lbnQiLHZh''@;'; + put 'put ''bHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcyxDPVtadyxsbmVdO1VyKEMsZnVuY3Rpb24oSSl7dmFyIGo9bmV3IGlUZSh5LmhvdCx7bmFtZToib3BlcmF0b3IiLGxhYmVsOntodG1sRm9yOkksdGV4dENvbnRlbnQ6RzF0KEkpfSx2YWx1ZTpJLGNoZWNrZWQ6ST09PUNbMF0saWQ6SX0pO2ouYWRk''@;'; + put 'put ''TG9jYWxIb29rKCJjaGFuZ2UiLGZ1bmN0aW9uKHVlKXtyZXR1cm4geS5vblJhZGlvSW5wdXRDaGFuZ2UodWUpfSkseS5lbGVtZW50cy5wdXNoKGopfSl9fSx7a2V5OiJzZXRDaGVja2VkIix2YWx1ZTpmdW5jdGlvbih5KXtpZih0aGlzLmVsZW1lbnRzLmxlbmd0aDx5KXRocm93IEVycm9yKFAy''@;'; + put 'put ''KG9UZXx8KG9UZT1mdW5jdGlvbiBvdXQoZCxnKXtyZXR1cm4gZ3x8KGc9ZC5zbGljZSgwKSksT2JqZWN0LmZyZWV6ZShPYmplY3QuZGVmaW5lUHJvcGVydGllcyhkLHtyYXc6e3ZhbHVlOk9iamVjdC5mcmVlemUoZyl9fSkpfShbIlJhZGlvIGJ1dHRvbiB3aXRoIGluZGV4ICIsIiBkb2Vzbid0''@;'; + put 'put ''IGV4aXN0LiJdKSkseSkpO1VyKHRoaXMuZWxlbWVudHMsZnVuY3Rpb24oQyxJKXtDLnNldENoZWNrZWQoST09PXkpfSl9fSx7a2V5OiJnZXRBY3RpdmVPcGVyYXRpb25JZCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzLmVsZW1lbnRzLmZpbmQoZnVuY3Rpb24oQyl7cmV0dXJuIEMgaW5z''@;'; + put 'put ''dGFuY2VvZiBpVGUmJkMuaXNDaGVja2VkKCl9KTtyZXR1cm4geT95LmdldFZhbHVlKCk6Wnd9fSx7a2V5OiJnZXRTdGF0ZSIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXRBY3RpdmVPcGVyYXRpb25JZCgpfX0se2tleToic2V0U3RhdGUiLHZhbHVlOmZ1bmN0aW9uKHkpe3RoaXMu''@;'; + put 'put ''cmVzZXQoKSx5JiZ0aGlzLmdldEFjdGl2ZU9wZXJhdGlvbklkKCkhPT15JiZVcih0aGlzLmVsZW1lbnRzLGZ1bmN0aW9uKEMpe0Muc2V0Q2hlY2tlZChDLmdldFZhbHVlKCk9PT15KX0pfX0se2tleToidXBkYXRlU3RhdGUiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9YXJndW1lbnRzLmxlbmd0''@;'; + put 'put ''aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOlp3LEM9YXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDAsST15O0k9PT11NWUmJihJPWxuZSksdGhpcy5zdGF0ZS5zZXRWYWx1ZUF0SW5kZXgoQyxJKX19LHtrZXk6InJlc2V0Iix2YWx1ZTpmdW5jdGlv''@;'; + put 'put ''bigpe3RoaXMuc2V0Q2hlY2tlZCgwKX19LHtrZXk6Im9uUmFkaW9JbnB1dENoYW5nZSIsdmFsdWU6ZnVuY3Rpb24oeSl7dGhpcy5zZXRTdGF0ZSh5LnRhcmdldC52YWx1ZSl9fV0pLGh9KHF0ZSk7Y29uc3QgcHV0PWR1dDtmdW5jdGlvbiBtdXQoZCxnKXt2YXIgaD1kO3JldHVybiIiPT09aCYm''@;'; + put 'put ''KGg9IigiLmNvbmNhdChnLCIpIikpLGh9c2JlKCk7dmFyIHA1ZT1uZXcgU2V0KFsxXSkuaGFzKDEpLHZ1dD1wNWUmJiJmdW5jdGlvbiI9PXR5cGVvZiBBcnJheS5mcm9tO2Z1bmN0aW9uIFR6KGQpe3ZhciBnPWQ7cmV0dXJuIHA1ZSYmKGc9bmV3IFNldChnKSksZnVuY3Rpb24oaCl7cmV0dXJu''@;'; + put 'put ''IHA1ZT9nLmhhcyhoKTohIX5nLmluZGV4T2YoaCl9fWZ1bmN0aW9uIHNUZShkKXtyZXR1cm4gbnVsbD09ZD8iIjpkfWZ1bmN0aW9uIGc1ZShkKXt2YXIgZz1kO3JldHVybihnPXZ1dD9BcnJheS5mcm9tKG5ldyBTZXQoZykpOlFoZShnKSkuc29ydChmdW5jdGlvbihoLHYpe3JldHVybiJudW1i''@;'; + put 'put ''ZXIiPT10eXBlb2YgaCYmIm51bWJlciI9PXR5cGVvZiB2P2gtdjpoPT09dj8wOmg+dj8xOi0xfSl9ZnVuY3Rpb24gdVRlKGQsZyxoLHYpe3ZhciBJLHk9W10sQz1kPT09ZztyZXR1cm4gQ3x8KEk9VHooZykpLFVyKGQsZnVuY3Rpb24oail7dmFyIHVlPSExOyhDfHxJKGopKSYmKHVlPSEwKTt2''@;'; + put 'put ''YXIgX2U9e2NoZWNrZWQ6dWUsdmFsdWU6aix2aXN1YWxWYWx1ZTptdXQoaixoKX07diYmdihfZSkseS5wdXNoKF9lKX0pLHl9ZnVuY3Rpb24gbTVlKGQpe3JldHVybihtNWU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rp''@;'; + put 'put ''b24oZyl7cmV0dXJuIHR5cGVvZiBnfTpmdW5jdGlvbihnKXtyZXR1cm4gZyYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZy5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZyE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGd9KShkKX1mdW5jdGlvbiBjVGUoZCxnKXtmb3IodmFy''@;'; + put 'put ''IGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX1mdW5jdGlvbiBmbmUoKXtyZXR1cm4g''@;'; + put 'put ''Zm5lPSJ1bmRlZmluZWQiIT10eXBlb2YgUmVmbGVjdCYmUmVmbGVjdC5nZXQ/UmVmbGVjdC5nZXQuYmluZCgpOmZ1bmN0aW9uKGcsaCx2KXt2YXIgeT13dXQoZyxoKTtpZih5KXt2YXIgQz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHksaCk7cmV0dXJuIEMuZ2V0P0MuZ2V0LmNh''@;'; + put 'put ''bGwoYXJndW1lbnRzLmxlbmd0aDwzP2c6dik6Qy52YWx1ZX19LGZuZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gd3V0KGQsZyl7Zm9yKDshT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGQsZykmJm51bGwhPT0oZD1XTyhkKSk7KTtyZXR1cm4gZH1mdW5jdGlv''@;'; + put 'put ''biB2NWUoZCxnKXtyZXR1cm4odjVlPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHYseSl7cmV0dXJuIHYuX19wcm90b19fPXksdn0pKGQsZyl9ZnVuY3Rpb24gQ3V0KGQsZyl7aWYoZyYmKCJvYmplY3QiPT09bTVlKGcpfHwiZnVu''@;'; + put 'put ''Y3Rpb24iPT10eXBlb2YgZykpcmV0dXJuIGc7aWYodm9pZCAwIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJEZXJpdmVkIGNvbnN0cnVjdG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0IG9yIHVuZGVmaW5lZCIpO3JldHVybiBmVGUoZCl9ZnVuY3Rpb24gZlRlKGQpe2lmKHZvaWQgMD09PWQp''@;'; + put 'put ''dGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4gZH1mdW5jdGlvbiBXTyhkKXtyZXR1cm4oV089T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZi5i''@;'; + put 'put ''aW5kKCk6ZnVuY3Rpb24oaCl7cmV0dXJuIGguX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YoaCl9KShkKX1MKDQ5Mjk1KTt2YXIgQTVlPW5ldyBXZWFrTWFwLFN1dD1mdW5jdGlvbihkKXshZnVuY3Rpb24gYnV0KGQsZyl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGcmJm51bGwhPT1n''@;'; + put 'put ''KXRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uIik7ZC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShnJiZnLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOmQsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEw''@;'; + put 'put ''fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGcmJnY1ZShkLGcpfShoLGQpO3ZhciBnPWZ1bmN0aW9uIF91dChkKXt2YXIgZz1mdW5jdGlvbiBrdXQoKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIFJlZmxlY3R8fCFSZWZsZWN0LmNvbnN0cnVj''@;'; + put 'put ''dHx8UmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT10eXBlb2YgUHJveHkpcmV0dXJuITA7dHJ5e3JldHVybiBCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSxmdW5jdGlvbigpe30pKSwhMH1jYXRj''@;'; + put 'put ''aChkKXtyZXR1cm4hMX19KCk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHksdj1XTyhkKTtpZihnKXt2YXIgQz1XTyh0aGlzKS5jb25zdHJ1Y3Rvcjt5PVJlZmxlY3QuY29uc3RydWN0KHYsYXJndW1lbnRzLEMpfWVsc2UgeT12LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gQ3V0KHRoaXMs''@;'; + put 'put ''eSl9fShoKTtmdW5jdGlvbiBoKHYseSl7dmFyIEM7cmV0dXJuIGZ1bmN0aW9uIEF1dChkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSh0aGlzLGgpLEM9Zy5jYWxsKHRoaXMsdixJMShoLkRF''@;'; + put 'put ''RkFVTFRTLHkpKSxBNWUuc2V0KGZUZShDKSx7fSksQ31yZXR1cm4gZnVuY3Rpb24geXV0KGQsZyxoKXtnJiZjVGUoZC5wcm90b3R5cGUsZyksaCYmY1RlKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGgsW3trZXk6ImJ1aWxkIix2YWx1''@;'; + put 'put ''ZTpmdW5jdGlvbigpe2ZuZShXTyhoLnByb3RvdHlwZSksImJ1aWxkIix0aGlzKS5jYWxsKHRoaXMpLEE1ZS5nZXQodGhpcykubGluaz10aGlzLl9lbGVtZW50LmZpcnN0Q2hpbGR9fSx7a2V5OiJ1cGRhdGUiLHZhbHVlOmZ1bmN0aW9uKCl7IXRoaXMuaXNCdWlsdCgpfHwoQTVlLmdldCh0aGlz''@;'; + put 'put ''KS5saW5rLnRleHRDb250ZW50PXRoaXMudHJhbnNsYXRlSWZQb3NzaWJsZSh0aGlzLm9wdGlvbnMudGV4dENvbnRlbnQpKX19XSxbe2tleToiREVGQVVMVFMiLGdldDpmdW5jdGlvbigpe3JldHVybiBhMyh7aHJlZjoiIyIsdGFnTmFtZToiYSJ9KX19XSksaH0oVncpO2NvbnN0IGhUZT1TdXQ7''@;'; + put 'put ''ZnVuY3Rpb24geTVlKGQpe3JldHVybih5NWU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZyl7cmV0dXJuIHR5cGVvZiBnfTpmdW5jdGlvbihnKXtyZXR1cm4gZyYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYm''@;'; + put 'put ''Zy5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZyE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGd9KShkKX1mdW5jdGlvbiBkVGUoZCl7cmV0dXJuIGZ1bmN0aW9uIFR1dChkKXtpZihBcnJheS5pc0FycmF5KGQpKXJldHVybiB3NWUoZCl9KGQpfHxmdW5jdGlvbiB4dXQoZCl7aWYo''@;'; + put 'put ''InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJm51bGwhPWRbU3ltYm9sLml0ZXJhdG9yXXx8bnVsbCE9ZFsiQEBpdGVyYXRvciJdKXJldHVybiBBcnJheS5mcm9tKGQpfShkKXx8ZnVuY3Rpb24gRXV0KGQsZyl7aWYoZCl7aWYoInN0cmluZyI9PXR5cGVvZiBkKXJldHVybiB3NWUoZCxnKTt2''@;'; + put 'put ''YXIgaD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZCkuc2xpY2UoOCwtMSk7aWYoIk9iamVjdCI9PT1oJiZkLmNvbnN0cnVjdG9yJiYoaD1kLmNvbnN0cnVjdG9yLm5hbWUpLCJNYXAiPT09aHx8IlNldCI9PT1oKXJldHVybiBBcnJheS5mcm9tKGQpO2lmKCJBcmd1bWVudHMiPT09''@;'; + put 'put ''aHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QoaCkpcmV0dXJuIHc1ZShkLGcpfX0oZCl8fGZ1bmN0aW9uIE11dCgpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBzcHJlYWQgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4g''@;'; + put 'put ''b3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfWZ1bmN0aW9uIHc1ZShkLGcpeyhudWxsPT1nfHxnPmQubGVuZ3RoKSYmKGc9ZC5sZW5ndGgpO2Zvcih2YXIgaD0wLHY9bmV3IEFycmF5KGcp''@;'; + put 'put ''O2g8ZztoKyspdltoXT1kW2hdO3JldHVybiB2fWZ1bmN0aW9uIHBUZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2Jq''@;'; + put 'put ''ZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fWZ1bmN0aW9uIFlPKCl7cmV0dXJuIFlPPSJ1bmRlZmluZWQiIT10eXBlb2YgUmVmbGVjdCYmUmVmbGVjdC5nZXQ/UmVmbGVjdC5nZXQuYmluZCgpOmZ1bmN0aW9uKGcsaCx2KXt2YXIgeT1MdXQoZyxoKTtpZih5KXt2YXIgQz1PYmplY3Qu''@;'; + put 'put ''Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHksaCk7cmV0dXJuIEMuZ2V0P0MuZ2V0LmNhbGwoYXJndW1lbnRzLmxlbmd0aDwzP2c6dik6Qy52YWx1ZX19LFlPLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBMdXQoZCxnKXtmb3IoOyFPYmplY3QucHJvdG90eXBlLmhhc093blByb3Bl''@;'; + put 'put ''cnR5LmNhbGwoZCxnKSYmbnVsbCE9PShkPXp3KGQpKTspO3JldHVybiBkfWZ1bmN0aW9uIGI1ZShkLGcpe3JldHVybihiNWU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24odix5KXtyZXR1cm4gdi5fX3Byb3RvX189eSx2fSkoZCxn''@;'; + put 'put ''KX1mdW5jdGlvbiBCdXQoZCxnKXtpZihnJiYoIm9iamVjdCI9PT15NWUoZyl8fCJmdW5jdGlvbiI9PXR5cGVvZiBnKSlyZXR1cm4gZztpZih2b2lkIDAhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIkRlcml2ZWQgY29uc3RydWN0b3JzIG1heSBvbmx5IHJldHVybiBvYmplY3Qgb3IgdW5kZWZp''@;'; + put 'put ''bmVkIik7cmV0dXJuIGdUZShkKX1mdW5jdGlvbiBnVGUoZCl7aWYodm9pZCAwPT09ZCl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3JldHVybiBkfWZ1bmN0aW9uIHp3KGQpe3JldHVy''@;'; + put 'put ''bih6dz1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihoKXtyZXR1cm4gaC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihoKX0pKGQpfXZhciBGdXQ9bmV3IFdlYWtNYXAsTnV0PWZ1bmN0aW9uKGQpeyFmdW5jdGlvbiBP''@;'; + put 'put ''dXQoZCxnKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZyYmbnVsbCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTtkLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGcmJmcucHJvdG90eXBlLHtjb25zdHJ1''@;'; + put 'put ''Y3Rvcjp7dmFsdWU6ZCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZyYmYjVlKGQsZyl9KGgsZCk7dmFyIGc9ZnVuY3Rpb24gUnV0KGQpe3ZhciBnPWZ1bmN0aW9uIFB1dCgpe2lmKCJ1bmRl''@;'; + put 'put ''ZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0fHxSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBQcm94eSlyZXR1cm4hMDt0cnl7cmV0dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNv''@;'; + put 'put ''bnN0cnVjdChCb29sZWFuLFtdLGZ1bmN0aW9uKCl7fSkpLCEwfWNhdGNoKGQpe3JldHVybiExfX0oKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgeSx2PXp3KGQpO2lmKGcpe3ZhciBDPXp3KHRoaXMpLmNvbnN0cnVjdG9yO3k9UmVmbGVjdC5jb25zdHJ1Y3Qodixhcmd1bWVudHMsQyl9ZWxzZSB5''@;'; + put 'put ''PXYuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBCdXQodGhpcyx5KX19KGgpO2Z1bmN0aW9uIGgodix5KXt2YXIgQztyZXR1cm4gZnVuY3Rpb24gSXV0KGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1''@;'; + put 'put ''bmN0aW9uIil9KHRoaXMsaCksQz1nLmNhbGwodGhpcyx2LEkxKGguREVGQVVMVFMseSkpLEZ1dC5zZXQoZ1RlKEMpLHt9KSxDLnNlYXJjaElucHV0PW5ldyBqTyhDLmhvdCx7cGxhY2Vob2xkZXI6UHBlLGNsYXNzTmFtZToiaHRVSU11bHRpcGxlU2VsZWN0U2VhcmNoIn0pLEMuc2VsZWN0QWxs''@;'; + put 'put ''VUk9bmV3IGhUZShDLmhvdCx7dGV4dENvbnRlbnQ6THBlLGNsYXNzTmFtZToiaHRVSVNlbGVjdEFsbCJ9KSxDLmNsZWFyQWxsVUk9bmV3IGhUZShDLmhvdCx7dGV4dENvbnRlbnQ6T3BlLGNsYXNzTmFtZToiaHRVSUNsZWFyQWxsIn0pLEMuaXRlbXM9W10sQy5pdGVtc0JveD1udWxsLEMucmVn''@;'; + put 'put ''aXN0ZXJIb29rcygpLEN9cmV0dXJuIGZ1bmN0aW9uIER1dChkLGcsaCl7ZyYmcFRlKGQucHJvdG90eXBlLGcpLGgmJnBUZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShoLFt7a2V5OiJyZWdpc3Rlckhvb2tzIix2YWx1ZTpmdW5jdGlv''@;'; + put 'put ''bigpe3ZhciB5PXRoaXM7dGhpcy5zZWFyY2hJbnB1dC5hZGRMb2NhbEhvb2soImtleWRvd24iLGZ1bmN0aW9uKEMpe3JldHVybiB5Lm9uSW5wdXRLZXlEb3duKEMpfSksdGhpcy5zZWFyY2hJbnB1dC5hZGRMb2NhbEhvb2soImlucHV0IixmdW5jdGlvbihDKXtyZXR1cm4geS5vbklucHV0KEMp''@;'; + put 'put ''fSksdGhpcy5zZWxlY3RBbGxVSS5hZGRMb2NhbEhvb2soImNsaWNrIixmdW5jdGlvbihDKXtyZXR1cm4geS5vblNlbGVjdEFsbENsaWNrKEMpfSksdGhpcy5jbGVhckFsbFVJLmFkZExvY2FsSG9vaygiY2xpY2siLGZ1bmN0aW9uKEMpe3JldHVybiB5Lm9uQ2xlYXJBbGxDbGljayhDKX0pfX0s''@;'; + put 'put ''e2tleToic2V0SXRlbXMiLHZhbHVlOmZ1bmN0aW9uKHkpe3RoaXMuaXRlbXM9eSx0aGlzLml0ZW1zQm94JiZ0aGlzLml0ZW1zQm94LmxvYWREYXRhKHRoaXMuaXRlbXMpfX0se2tleToic2V0TG9jYWxlIix2YWx1ZTpmdW5jdGlvbih5KXt0aGlzLmxvY2FsZT15fX0se2tleToiZ2V0TG9jYWxl''@;'; + put 'put ''Iix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmxvY2FsZX19LHtrZXk6ImdldEl0ZW1zIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBkVGUodGhpcy5pdGVtcyl9fSx7a2V5OiJnZXRWYWx1ZSIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24ganV0KGQpe3ZhciBnPVtdO3Jl''@;'; + put 'put ''dHVybiBVcihkLGZ1bmN0aW9uKGgpe2guY2hlY2tlZCYmZy5wdXNoKGgudmFsdWUpfSksZ30odGhpcy5pdGVtcyl9fSx7a2V5OiJpc1NlbGVjdGVkQWxsVmFsdWVzIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLml0ZW1zLmxlbmd0aD09PXRoaXMuZ2V0VmFsdWUoKS5sZW5ndGh9fSx7''@;'; + put 'put ''a2V5OiJidWlsZCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzO1lPKHp3KGgucHJvdG90eXBlKSwiYnVpbGQiLHRoaXMpLmNhbGwodGhpcyk7dmFyIEM9dGhpcy5ob3Qucm9vdERvY3VtZW50LEk9Qy5jcmVhdGVFbGVtZW50KCJkaXYiKSxqPW5ldyBWdyh0aGlzLmhvdCx7Y2xhc3NOYW1l''@;'; + put 'put ''OiJodFVJU2VsZWN0aW9uQ29udHJvbHMiLGNoaWxkcmVuOlt0aGlzLnNlbGVjdEFsbFVJLHRoaXMuY2xlYXJBbGxVSV19KTt0aGlzLl9lbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuc2VhcmNoSW5wdXQuZWxlbWVudCksdGhpcy5fZWxlbWVudC5hcHBlbmRDaGlsZChqLmVsZW1lbnQpLHRoaXMu''@;'; + put 'put ''X2VsZW1lbnQuYXBwZW5kQ2hpbGQoSSk7dmFyIHVlPWZ1bmN0aW9uKEJlKXt5Ll9lbGVtZW50JiYoeS5pdGVtc0JveCYmeS5pdGVtc0JveC5kZXN0cm95KCksTzAoQmUsImh0VUlNdWx0aXBsZVNlbGVjdEhvdCIpLHkuaXRlbXNCb3g9bmV3IHkuaG90LmNvbnN0cnVjdG9yKEJlLHtkYXRhOnku''@;'; + put 'put ''aXRlbXMsY29sdW1uczpbe2RhdGE6ImNoZWNrZWQiLHR5cGU6ImNoZWNrYm94IixsYWJlbDp7cHJvcGVydHk6InZpc3VhbFZhbHVlIixwb3NpdGlvbjoiYWZ0ZXIifX1dLGJlZm9yZVJlbmRlcmVyOmZ1bmN0aW9uKE90LCR0LGZuLExuLGlyLG1yKXtPdC50aXRsZT1tci5pbnN0YW5jZS5nZXRE''@;'; + put 'put ''YXRhQXRSb3dQcm9wKCR0LG1yLmxhYmVsLnByb3BlcnR5KX0sbWF4Q29sczoxLGF1dG9XcmFwQ29sOiEwLGhlaWdodDoxMTAsY29sV2lkdGhzOmZ1bmN0aW9uKCl7cmV0dXJuIHkuaXRlbXNCb3guY29udGFpbmVyLnNjcm9sbFdpZHRoLUJjKEMpfSxjb3B5UGFzdGU6ITEsZGlzYWJsZVZpc3Vh''@;'; + put 'put ''bFNlbGVjdGlvbjoiYXJlYSIsZmlsbEhhbmRsZTohMSxmcmFnbWVudFNlbGVjdGlvbjoiY2VsbCIsdGFiTW92ZXM6e3JvdzoxLGNvbDowfSxsYXlvdXREaXJlY3Rpb246eS5ob3QuaXNSdGwoKT8icnRsIjoibHRyIn0pLHkuaXRlbXNCb3guaW5pdCgpLHkuaXRlbXNCb3guZ2V0U2hvcnRjdXRN''@;'; + put 'put ''YW5hZ2VyKCkuZ2V0Q29udGV4dCgiZ3JpZCIpLmFkZFNob3J0Y3V0KHtrZXlzOltbIkVzY2FwZSJdXSxjYWxsYmFjazpmdW5jdGlvbihPdCl7eS5ydW5Mb2NhbEhvb2tzKCJrZXlkb3duIixPdCx5KX0sZ3JvdXA6Im11bHRpcGxlU2VsZWN0Lml0ZW1Cb3gifSkpfTt1ZShJKSxzZXRUaW1lb3V0''@;'; + put 'put ''KGZ1bmN0aW9uKCl7cmV0dXJuIHVlKEkpfSwxMDApfX0se2tleToicmVzZXQiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5zZWFyY2hJbnB1dC5yZXNldCgpLHRoaXMuc2VsZWN0QWxsVUkucmVzZXQoKSx0aGlzLmNsZWFyQWxsVUkucmVzZXQoKX19LHtrZXk6InVwZGF0ZSIsdmFsdWU6ZnVuY3Rp''@;'; + put 'put ''b24oKXshdGhpcy5pc0J1aWx0KCl8fCh0aGlzLml0ZW1zQm94LmxvYWREYXRhKGZ1bmN0aW9uIFZ1dChkLGcpe3ZhciBoPVR6KGcpO3JldHVybiBPbChkLGZ1bmN0aW9uKHYpe3JldHVybiB2LmNoZWNrZWQ9aCh2LnZhbHVlKSx2fSl9KHRoaXMuaXRlbXMsdGhpcy5vcHRpb25zLnZhbHVlKSks''@;'; + put 'put ''WU8oencoaC5wcm90b3R5cGUpLCJ1cGRhdGUiLHRoaXMpLmNhbGwodGhpcykpfX0se2tleToiZGVzdHJveSIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLml0ZW1zQm94JiZ0aGlzLml0ZW1zQm94LmRlc3Ryb3koKSx0aGlzLnNlYXJjaElucHV0LmRlc3Ryb3koKSx0aGlzLmNsZWFyQWxsVUkuZGVz''@;'; + put 'put ''dHJveSgpLHRoaXMuc2VsZWN0QWxsVUkuZGVzdHJveSgpLHRoaXMuc2VhcmNoSW5wdXQ9bnVsbCx0aGlzLmNsZWFyQWxsVUk9bnVsbCx0aGlzLnNlbGVjdEFsbFVJPW51bGwsdGhpcy5pdGVtc0JveD1udWxsLHRoaXMuaXRlbXM9bnVsbCxZTyh6dyhoLnByb3RvdHlwZSksImRlc3Ryb3kiLHRo''@;'; + put 'put ''aXMpLmNhbGwodGhpcyl9fSx7a2V5OiJvbklucHV0Iix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgaixDPXRoaXMsST15LnRhcmdldC52YWx1ZS50b0xvY2FsZUxvd2VyQ2FzZSh0aGlzLmdldExvY2FsZSgpKTtqPSIiPT09ST9kVGUodGhpcy5pdGVtcyk6ZzQodGhpcy5pdGVtcyxmdW5jdGlvbih1''@;'; + put 'put ''ZSl7cmV0dXJuIiIuY29uY2F0KHVlLnZhbHVlKS50b0xvY2FsZUxvd2VyQ2FzZShDLmdldExvY2FsZSgpKS5pbmRleE9mKEkpPj0wfSksdGhpcy5pdGVtc0JveC5sb2FkRGF0YShqKX19LHtrZXk6Im9uSW5wdXRLZXlEb3duIix2YWx1ZTpmdW5jdGlvbih5KXt0aGlzLnJ1bkxvY2FsSG9va3Mo''@;'; + put 'put ''ImtleWRvd24iLHksdGhpcyksdzNlKGhPLHkua2V5Q29kZSkoIkFSUk9XX0RPV058VEFCIikmJiF0aGlzLml0ZW1zQm94LmlzTGlzdGVuaW5nKCkmJihfOCh5KSx0aGlzLml0ZW1zQm94Lmxpc3RlbigpLHRoaXMuaXRlbXNCb3guc2VsZWN0Q2VsbCgwLDApKX19LHtrZXk6Im9uU2VsZWN0QWxs''@;'; + put 'put ''Q2xpY2siLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPVtdO3kucHJldmVudERlZmF1bHQoKSxVcih0aGlzLml0ZW1zQm94LmdldFNvdXJjZURhdGEoKSxmdW5jdGlvbihJLGope0kuY2hlY2tlZD0hMCxDLnB1c2goVWRlKEksailbMF0pfSksdGhpcy5pdGVtc0JveC5zZXRTb3VyY2VEYXRhQXRD''@;'; + put 'put ''ZWxsKEMpfX0se2tleToib25DbGVhckFsbENsaWNrIix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz1bXTt5LnByZXZlbnREZWZhdWx0KCksVXIodGhpcy5pdGVtc0JveC5nZXRTb3VyY2VEYXRhKCksZnVuY3Rpb24oSSxqKXtJLmNoZWNrZWQ9ITEsQy5wdXNoKFVkZShJLGopWzBdKX0pLHRoaXMu''@;'; + put 'put ''aXRlbXNCb3guc2V0U291cmNlRGF0YUF0Q2VsbChDKX19XSxbe2tleToiREVGQVVMVFMiLGdldDpmdW5jdGlvbigpe3JldHVybiBhMyh7Y2xhc3NOYW1lOiJodFVJTXVsdGlwbGVTZWxlY3QiLHZhbHVlOltdfSl9fV0pLGh9KFZ3KTtjb25zdCBtVGU9TnV0O2Z1bmN0aW9uIHZUZShkLGcpe3Jl''@;'; + put 'put ''dHVybiBmdW5jdGlvbiBXdXQoZCl7aWYoQXJyYXkuaXNBcnJheShkKSlyZXR1cm4gZH0oZCl8fGZ1bmN0aW9uIEd1dChkLGcpe3ZhciBoPW51bGw9PWQ/bnVsbDoidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmZFtTeW1ib2wuaXRlcmF0b3JdfHxkWyJAQGl0ZXJhdG9yIl07aWYobnVsbCE9''@;'; + put 'put ''aCl7dmFyIEksaix2PVtdLHk9ITAsQz0hMTt0cnl7Zm9yKGg9aC5jYWxsKGQpOyEoeT0oST1oLm5leHQoKSkuZG9uZSkmJih2LnB1c2goSS52YWx1ZSksIWd8fHYubGVuZ3RoIT09Zyk7eT0hMCk7fWNhdGNoKHVlKXtDPSEwLGo9dWV9ZmluYWxseXt0cnl7IXkmJm51bGwhPWgucmV0dXJuJiZo''@;'; + put 'put ''LnJldHVybigpfWZpbmFsbHl7aWYoQyl0aHJvdyBqfX1yZXR1cm4gdn19KGQsZyl8fGZ1bmN0aW9uIHp1dChkLGcpe2lmKGQpe2lmKCJzdHJpbmciPT10eXBlb2YgZClyZXR1cm4gQVRlKGQsZyk7dmFyIGg9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGQpLnNsaWNlKDgsLTEpO2lm''@;'; + put 'put ''KCJPYmplY3QiPT09aCYmZC5jb25zdHJ1Y3RvciYmKGg9ZC5jb25zdHJ1Y3Rvci5uYW1lKSwiTWFwIj09PWh8fCJTZXQiPT09aClyZXR1cm4gQXJyYXkuZnJvbShkKTtpZigiQXJndW1lbnRzIj09PWh8fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KGgp''@;'; + put 'put ''KXJldHVybiBBVGUoZCxnKX19KGQsZyl8fGZ1bmN0aW9uIFp1dCgpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBo''@;'; + put 'put ''YXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9ZnVuY3Rpb24gQVRlKGQsZyl7KG51bGw9PWd8fGc+ZC5sZW5ndGgpJiYoZz1kLmxlbmd0aCk7Zm9yKHZhciBoPTAsdj1uZXcgQXJyYXkoZyk7aDxnO2grKyl2W2hdPWRbaF07cmV0dXJuIHZ9dmFyIGlNPSJieV92YWx1ZSI7''@;'; + put 'put ''ZnVuY3Rpb24gXzVlKGQpe3JldHVybihfNWU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZyl7cmV0dXJuIHR5cGVvZiBnfTpmdW5jdGlvbihnKXtyZXR1cm4gZyYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYm''@;'; + put 'put ''Zy5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZyE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGd9KShkKX1mdW5jdGlvbiB5VGUoZCxnKXsobnVsbD09Z3x8Zz5kLmxlbmd0aCkmJihnPWQubGVuZ3RoKTtmb3IodmFyIGg9MCx2PW5ldyBBcnJheShnKTtoPGc7aCsrKXZbaF09ZFto''@;'; + put 'put ''XTtyZXR1cm4gdn1mdW5jdGlvbiB3VGUoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0''@;'; + put 'put ''eShkLHYua2V5LHYpfX1mdW5jdGlvbiBobmUoKXtyZXR1cm4gaG5lPSJ1bmRlZmluZWQiIT10eXBlb2YgUmVmbGVjdCYmUmVmbGVjdC5nZXQ/UmVmbGVjdC5nZXQuYmluZCgpOmZ1bmN0aW9uKGcsaCx2KXt2YXIgeT1lY3QoZyxoKTtpZih5KXt2YXIgQz1PYmplY3QuZ2V0T3duUHJvcGVydHlE''@;'; + put 'put ''ZXNjcmlwdG9yKHksaCk7cmV0dXJuIEMuZ2V0P0MuZ2V0LmNhbGwoYXJndW1lbnRzLmxlbmd0aDwzP2c6dik6Qy52YWx1ZX19LGhuZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gZWN0KGQsZyl7Zm9yKDshT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGQsZykm''@;'; + put 'put ''Jm51bGwhPT0oZD1VTyhkKSk7KTtyZXR1cm4gZH1mdW5jdGlvbiBDNWUoZCxnKXtyZXR1cm4oQzVlPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHYseSl7cmV0dXJuIHYuX19wcm90b19fPXksdn0pKGQsZyl9ZnVuY3Rpb24gcmN0''@;'; + put 'put ''KGQsZyl7aWYoZyYmKCJvYmplY3QiPT09XzVlKGcpfHwiZnVuY3Rpb24iPT10eXBlb2YgZykpcmV0dXJuIGc7aWYodm9pZCAwIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJEZXJpdmVkIGNvbnN0cnVjdG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0IG9yIHVuZGVmaW5lZCIpO3JldHVybiBm''@;'; + put 'put ''dW5jdGlvbiBpY3QoZCl7aWYodm9pZCAwPT09ZCl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3JldHVybiBkfShkKX1mdW5jdGlvbiBVTyhkKXtyZXR1cm4oVU89T2JqZWN0LnNldFBy''@;'; + put 'put ''b3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24oaCl7cmV0dXJuIGguX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YoaCl9KShkKX1adShpTSxmdW5jdGlvbiBZdXQoZCxnKXtyZXR1cm4oMCx2VGUoZywxKVswXSkoZC52YWx1ZSl9LHtuYW1lOiJC''@;'; + put 'put ''eSB2YWx1ZSIsaW5wdXRzQ291bnQ6MCxpbnB1dFZhbHVlc0RlY29yYXRvcjpmdW5jdGlvbihnKXtyZXR1cm5bVHoodlRlKGcsMSlbMF0pXX0sc2hvd09wZXJhdG9yczohMX0pO3ZhciBhY3Q9ZnVuY3Rpb24oZCl7IWZ1bmN0aW9uIHRjdChkLGcpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBnJiZu''@;'; + put 'put ''dWxsIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiIpO2QucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZyYmZy5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTpkLHdyaXRhYmxlOiEwLGNvbmZpZ3Vy''@;'; + put 'put ''YWJsZTohMH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxnJiZDNWUoZCxnKX0oaCxkKTt2YXIgZz1mdW5jdGlvbiBuY3QoZCl7dmFyIGc9ZnVuY3Rpb24gb2N0KCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBSZWZsZWN0fHwhUmVmbGVjdC5j''@;'; + put 'put ''b25zdHJ1Y3R8fFJlZmxlY3QuY29uc3RydWN0LnNoYW0pcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIFByb3h5KXJldHVybiEwO3RyeXtyZXR1cm4gQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10sZnVuY3Rpb24oKXt9KSks''@;'; + put 'put ''ITB9Y2F0Y2goZCl7cmV0dXJuITF9fSgpO3JldHVybiBmdW5jdGlvbigpe3ZhciB5LHY9VU8oZCk7aWYoZyl7dmFyIEM9VU8odGhpcykuY29uc3RydWN0b3I7eT1SZWZsZWN0LmNvbnN0cnVjdCh2LGFyZ3VtZW50cyxDKX1lbHNlIHk9di5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIHJj''@;'; + put 'put ''dCh0aGlzLHkpfX0oaCk7ZnVuY3Rpb24gaCh2LHkpe3ZhciBDO3JldHVybiBmdW5jdGlvbiAkdXQoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0odGhpcyxoKSwoQz1nLmNhbGwodGhpcyx2''@;'; + put 'put ''LHtpZDp5LmlkLHN0YXRlbGVzczohMX0pKS5uYW1lPXkubmFtZSxDLmVsZW1lbnRzLnB1c2gobmV3IG1UZShDLmhvdCkpLEMucmVnaXN0ZXJIb29rcygpLEN9cmV0dXJuIGZ1bmN0aW9uIHF1dChkLGcsaCl7ZyYmd1RlKGQucHJvdG90eXBlLGcpLGgmJndUZShkLGgpLE9iamVjdC5kZWZpbmVQ''@;'; + put 'put ''cm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShoLFt7a2V5OiJyZWdpc3Rlckhvb2tzIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXM7dGhpcy5nZXRNdWx0aXBsZVNlbGVjdEVsZW1lbnQoKS5hZGRMb2NhbEhvb2soImtleWRvd24iLGZ1bmN0aW9uKEMpe3JldHVybiB5''@;'; + put 'put ''Lm9uSW5wdXRLZXlEb3duKEMpfSl9fSx7a2V5OiJzZXRTdGF0ZSIsdmFsdWU6ZnVuY3Rpb24oeSl7aWYodGhpcy5yZXNldCgpLHkmJnkuY29tbWFuZC5rZXk9PT1pTSl7dmFyIEM9dGhpcy5nZXRNdWx0aXBsZVNlbGVjdEVsZW1lbnQoKTtDLnNldEl0ZW1zKHkuaXRlbXNTbmFwc2hvdCksQy5z''@;'; + put 'put ''ZXRWYWx1ZSh5LmFyZ3NbMF0pLEMuc2V0TG9jYWxlKHkubG9jYWxlKX19fSx7a2V5OiJnZXRTdGF0ZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzLmdldE11bHRpcGxlU2VsZWN0RWxlbWVudCgpLEM9eS5nZXRJdGVtcygpO3JldHVybntjb21tYW5kOntrZXk6eS5pc1NlbGVjdGVkQWxs''@;'; + put 'put ''VmFsdWVzKCl8fCFDLmxlbmd0aD9IZjppTX0sYXJnczpbeS5nZXRWYWx1ZSgpXSxpdGVtc1NuYXBzaG90OkN9fX0se2tleToidXBkYXRlU3RhdGUiLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPXRoaXMsST1mdW5jdGlvbih1ZSxfZSxCZSxOZSxLZSl7dmFyICR0PWZ1bmN0aW9uIFV1dChkLGcp''@;'; + put 'put ''e3JldHVybiBmdW5jdGlvbiBLdXQoZCl7aWYoQXJyYXkuaXNBcnJheShkKSlyZXR1cm4gZH0oZCl8fGZ1bmN0aW9uIFh1dChkLGcpe3ZhciBoPW51bGw9PWQ/bnVsbDoidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmZFtTeW1ib2wuaXRlcmF0b3JdfHxkWyJAQGl0ZXJhdG9yIl07aWYobnVs''@;'; + put 'put ''bCE9aCl7dmFyIEksaix2PVtdLHk9ITAsQz0hMTt0cnl7Zm9yKGg9aC5jYWxsKGQpOyEoeT0oST1oLm5leHQoKSkuZG9uZSkmJih2LnB1c2goSS52YWx1ZSksIWd8fHYubGVuZ3RoIT09Zyk7eT0hMCk7fWNhdGNoKHVlKXtDPSEwLGo9dWV9ZmluYWxseXt0cnl7IXkmJm51bGwhPWgucmV0dXJu''@;'; + put 'put ''JiZoLnJldHVybigpfWZpbmFsbHl7aWYoQyl0aHJvdyBqfX1yZXR1cm4gdn19KGQsZyl8fGZ1bmN0aW9uIEp1dChkLGcpe2lmKGQpe2lmKCJzdHJpbmciPT10eXBlb2YgZClyZXR1cm4geVRlKGQsZyk7dmFyIGg9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGQpLnNsaWNlKDgsLTEp''@;'; + put 'put ''O2lmKCJPYmplY3QiPT09aCYmZC5jb25zdHJ1Y3RvciYmKGg9ZC5jb25zdHJ1Y3Rvci5uYW1lKSwiTWFwIj09PWh8fCJTZXQiPT09aClyZXR1cm4gQXJyYXkuZnJvbShkKTtpZigiQXJndW1lbnRzIj09PWh8fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0''@;'; + put 'put ''KGgpKXJldHVybiB5VGUoZCxnKX19KGQsZyl8fGZ1bmN0aW9uIFF1dCgpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVz''@;'; + put 'put ''dCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9KGc0KF9lLGZ1bmN0aW9uKFFyKXtyZXR1cm4gUXIubmFtZT09PWlNfSksMSlbMF0sZm49e30sTG49Qy5ob3QuZ2V0VHJhbnNsYXRlZFBocmFzZShudGUpO2lmKCR0KXt2YXIgaXI9ZzVlKE9sKE5lKHVlLEtlKSxmdW5j''@;'; + put 'put ''dGlvbihRcil7cmV0dXJuIFFyLnZhbHVlfSkpO0JlJiYoJHQuYXJnc1swXT1CZSk7dmFyIG1yPVtdLFNyPXVUZShpciwkdC5hcmdzWzBdLExuLGZ1bmN0aW9uKFFyKXtRci5jaGVja2VkJiZtci5wdXNoKFFyLnZhbHVlKX0pO2ZuLmxvY2FsZT1DLmhvdC5nZXRDZWxsTWV0YSgwLHkuZWRpdGVk''@;'; + put 'put ''Q29uZGl0aW9uU3RhY2suY29sdW1uKS5sb2NhbGUsZm4uYXJncz1bbXJdLGZuLmNvbW1hbmQ9Tk8oaU0pLGZuLml0ZW1zU25hcHNob3Q9U3J9ZWxzZSBmbi5hcmdzPVtdLGZuLmNvbW1hbmQ9Tk8oSGYpO0Muc3RhdGUuc2V0VmFsdWVBdEluZGV4KHVlLGZuKX07SSh5LmVkaXRlZENvbmRpdGlv''@;'; + put 'put ''blN0YWNrLmNvbHVtbix5LmVkaXRlZENvbmRpdGlvblN0YWNrLmNvbmRpdGlvbnMseS5jb25kaXRpb25BcmdzQ2hhbmdlLHkuZmlsdGVyZWRSb3dzRmFjdG9yeSkseS5kZXBlbmRlbnRDb25kaXRpb25TdGFja3MubGVuZ3RoJiZJKHkuZGVwZW5kZW50Q29uZGl0aW9uU3RhY2tzWzBdLmNvbHVt''@;'; + put 'put ''bix5LmRlcGVuZGVudENvbmRpdGlvblN0YWNrc1swXS5jb25kaXRpb25zLHkuY29uZGl0aW9uQXJnc0NoYW5nZSx5LmZpbHRlcmVkUm93c0ZhY3RvcnkseS5lZGl0ZWRDb25kaXRpb25TdGFjayl9fSx7a2V5OiJnZXRNdWx0aXBsZVNlbGVjdEVsZW1lbnQiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0''@;'; + put 'put ''dXJuIHRoaXMuZWxlbWVudHMuZmlsdGVyKGZ1bmN0aW9uKHkpe3JldHVybiB5IGluc3RhbmNlb2YgbVRlfSlbMF19fSx7a2V5OiJnZXRNZW51SXRlbURlc2NyaXB0b3IiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcztyZXR1cm57a2V5OnRoaXMuaWQsbmFtZTp0aGlzLm5hbWUsaXNDb21t''@;'; + put 'put ''YW5kOiExLGRpc2FibGVTZWxlY3Rpb246ITAsaGlkZGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHkuaXNIaWRkZW4oKX0scmVuZGVyZXI6ZnVuY3Rpb24oSSxqLHVlLF9lLEJlLE5lKXtPMChqLnBhcmVudE5vZGUsImh0RmlsdGVyc01lbnVWYWx1ZSIpO3ZhciBLZT15LmhvdC5yb290RG9jdW1lbnQu''@;'; + put 'put ''Y3JlYXRlRWxlbWVudCgiZGl2Iik7cmV0dXJuIE8wKEtlLCJodEZpbHRlcnNNZW51TGFiZWwiKSxLZS50ZXh0Q29udGVudD1OZSxqLmFwcGVuZENoaWxkKEtlKSxqLnBhcmVudE5vZGUuaGFzQXR0cmlidXRlKCJnaG9zdC10YWJsZSIpfHxVcih5LmVsZW1lbnRzLGZ1bmN0aW9uKGR0KXtyZXR1''@;'; + put 'put ''cm4gai5hcHBlbmRDaGlsZChkdC5lbGVtZW50KX0pLGp9fX19LHtrZXk6InJlc2V0Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXMuaG90LmdldFRyYW5zbGF0ZWRQaHJhc2UobnRlKSxDPWc1ZSh0aGlzLl9nZXRDb2x1bW5WaXNpYmxlVmFsdWVzKCkpLEk9dVRlKEMsQyx5KTt0aGlzLmdl''@;'; + put 'put ''dE11bHRpcGxlU2VsZWN0RWxlbWVudCgpLnNldEl0ZW1zKEkpLGhuZShVTyhoLnByb3RvdHlwZSksInJlc2V0Iix0aGlzKS5jYWxsKHRoaXMpLHRoaXMuZ2V0TXVsdGlwbGVTZWxlY3RFbGVtZW50KCkuc2V0VmFsdWUoQyk7dmFyIGo9dGhpcy5ob3QuZ2V0UGx1Z2luKCJmaWx0ZXJzIikuZ2V0''@;'; + put 'put ''U2VsZWN0ZWRDb2x1bW4oKS52aXN1YWxJbmRleDt0aGlzLmdldE11bHRpcGxlU2VsZWN0RWxlbWVudCgpLnNldExvY2FsZSh0aGlzLmhvdC5nZXRDZWxsTWV0YSgwLGopLmxvY2FsZSl9fSx7a2V5OiJvbklucHV0S2V5RG93biIsdmFsdWU6ZnVuY3Rpb24oeSl7aE8oeS5rZXlDb2RlLCJFU0NB''@;'; + put 'put ''UEUiKSYmKHRoaXMucnVuTG9jYWxIb29rcygiY2FuY2VsIiksXzgoeSkpfX0se2tleToiX2dldENvbHVtblZpc2libGVWYWx1ZXMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcy5ob3QuZ2V0UGx1Z2luKCJmaWx0ZXJzIikuZ2V0U2VsZWN0ZWRDb2x1bW4oKTtyZXR1cm4gT2wodGhpcy5o''@;'; + put 'put ''b3QuZ2V0RGF0YUF0Q29sKHkmJnkudmlzdWFsSW5kZXgpLGZ1bmN0aW9uKEkpe3JldHVybiBzVGUoSSl9KX19XSksaH0ocXRlKTtjb25zdCBsY3Q9YWN0O2Z1bmN0aW9uIGs1ZShkKXtyZXR1cm4oazVlPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9s''@;'; + put 'put ''Lml0ZXJhdG9yP2Z1bmN0aW9uKGcpe3JldHVybiB0eXBlb2YgZ306ZnVuY3Rpb24oZyl7cmV0dXJuIGcmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmcuY29uc3RydWN0b3I9PT1TeW1ib2wmJmchPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBnfSkoZCl9ZnVuY3Rpb24g''@;'; + put 'put ''YlRlKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19ZnVuY3Rp''@;'; + put 'put ''b24gUzVlKGQsZyl7cmV0dXJuKFM1ZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbih2LHkpe3JldHVybiB2Ll9fcHJvdG9fXz15LHZ9KShkLGcpfWZ1bmN0aW9uIGhjdChkLGcpe2lmKGcmJigib2JqZWN0Ij09PWs1ZShnKXx8ImZ1''@;'; + put 'put ''bmN0aW9uIj09dHlwZW9mIGcpKXJldHVybiBnO2lmKHZvaWQgMCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWQiKTtyZXR1cm4gZnVuY3Rpb24gZGN0KGQpe2lmKHZvaWQgMD09PWQpdGhyb3cg''@;'; + put 'put ''bmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4gZH0oZCl9ZnVuY3Rpb24gZG5lKGQpe3JldHVybihkbmU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZi5i''@;'; + put 'put ''aW5kKCk6ZnVuY3Rpb24oaCl7cmV0dXJuIGguX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YoaCl9KShkKX12YXIgZ2N0PWZ1bmN0aW9uKGQpeyFmdW5jdGlvbiBjY3QoZCxnKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZyYmbnVsbCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3Vw''@;'; + put 'put ''ZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTtkLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGcmJmcucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6ZCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5''@;'; + put 'put ''KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZyYmUzVlKGQsZyl9KGgsZCk7dmFyIGc9ZnVuY3Rpb24gZmN0KGQpe3ZhciBnPWZ1bmN0aW9uIHBjdCgpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0fHxSZWZsZWN0LmNvbnN0cnVjdC5zaGFt''@;'; + put 'put ''KXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBQcm94eSlyZXR1cm4hMDt0cnl7cmV0dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLGZ1bmN0aW9uKCl7fSkpLCEwfWNhdGNoKGQpe3JldHVybiExfX0oKTtyZXR1cm4g''@;'; + put 'put ''ZnVuY3Rpb24oKXt2YXIgeSx2PWRuZShkKTtpZihnKXt2YXIgQz1kbmUodGhpcykuY29uc3RydWN0b3I7eT1SZWZsZWN0LmNvbnN0cnVjdCh2LGFyZ3VtZW50cyxDKX1lbHNlIHk9di5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIGhjdCh0aGlzLHkpfX0oaCk7ZnVuY3Rpb24gaCh2LHkp''@;'; + put 'put ''e3ZhciBDO3JldHVybiBmdW5jdGlvbiBzY3QoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0odGhpcyxoKSwoQz1nLmNhbGwodGhpcyx2LHtpZDp5LmlkLHN0YXRlbGVzczohMH0pKS5uYW1l''@;'; + put 'put ''PXkubmFtZSxDLmVsZW1lbnRzLnB1c2gobmV3IGpPKEMuaG90LHt0eXBlOiJidXR0b24iLHZhbHVlOlJwZSxjbGFzc05hbWU6Imh0VUlCdXR0b24gaHRVSUJ1dHRvbk9LIixpZGVudGlmaWVyOmguQlVUVE9OX09LfSkpLEMuZWxlbWVudHMucHVzaChuZXcgak8oQy5ob3Qse3R5cGU6ImJ1dHRv''@;'; + put 'put ''biIsdmFsdWU6QnBlLGNsYXNzTmFtZToiaHRVSUJ1dHRvbiBodFVJQnV0dG9uQ2FuY2VsIixpZGVudGlmaWVyOmguQlVUVE9OX0NBTkNFTH0pKSxDLnJlZ2lzdGVySG9va3MoKSxDfXJldHVybiBmdW5jdGlvbiB1Y3QoZCxnLGgpe2cmJmJUZShkLnByb3RvdHlwZSxnKSxoJiZiVGUoZCxoKSxP''@;'; + put 'put ''YmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oaCxbe2tleToicmVnaXN0ZXJIb29rcyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzO1VyKHRoaXMuZWxlbWVudHMsZnVuY3Rpb24oQyl7Qy5hZGRMb2NhbEhvb2soImNsaWNrIixmdW5jdGlvbihJ''@;'; + put 'put ''LGope3JldHVybiB5Lm9uQnV0dG9uQ2xpY2soSSxqKX0pfSl9fSx7a2V5OiJnZXRNZW51SXRlbURlc2NyaXB0b3IiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcztyZXR1cm57a2V5OnRoaXMuaWQsbmFtZTp0aGlzLm5hbWUsaXNDb21tYW5kOiExLGRpc2FibGVTZWxlY3Rpb246ITAsaGlk''@;'; + put 'put ''ZGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHkuaXNIaWRkZW4oKX0scmVuZGVyZXI6ZnVuY3Rpb24oSSxqKXtyZXR1cm4gTzAoai5wYXJlbnROb2RlLCJodEZpbHRlcnNNZW51QWN0aW9uQmFyIiksai5wYXJlbnROb2RlLmhhc0F0dHJpYnV0ZSgiZ2hvc3QtdGFibGUiKXx8VXIoeS5lbGVtZW50cyxm''@;'; + put 'put ''dW5jdGlvbih1ZSl7cmV0dXJuIGouYXBwZW5kQ2hpbGQodWUuZWxlbWVudCl9KSxqfX19fSx7a2V5OiJhY2NlcHQiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5ydW5Mb2NhbEhvb2tzKCJhY2NlcHQiKX19LHtrZXk6ImNhbmNlbCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLnJ1bkxvY2FsSG9va3Mo''@;'; + put 'put ''ImNhbmNlbCIpfX0se2tleToib25CdXR0b25DbGljayIsdmFsdWU6ZnVuY3Rpb24oeSxDKXtDLm9wdGlvbnMuaWRlbnRpZmllcj09PWguQlVUVE9OX09LP3RoaXMuYWNjZXB0KCk6dGhpcy5jYW5jZWwoKX19XSxbe2tleToiQlVUVE9OX09LIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4ib2sifX0s''@;'; + put 'put ''e2tleToiQlVUVE9OX0NBTkNFTCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuImNhbmNlbCJ9fV0pLGh9KHF0ZSk7Y29uc3QgbWN0PWdjdDt2YXIgX1RlLENUZTtmdW5jdGlvbiBrVGUoZCxnKXtyZXR1cm4gZnVuY3Rpb24gd2N0KGQpe2lmKEFycmF5LmlzQXJyYXkoZCkpcmV0dXJuIGR9KGQpfHxm''@;'; + put 'put ''dW5jdGlvbiB5Y3QoZCxnKXt2YXIgaD1udWxsPT1kP251bGw6InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJmRbU3ltYm9sLml0ZXJhdG9yXXx8ZFsiQEBpdGVyYXRvciJdO2lmKG51bGwhPWgpe3ZhciBJLGosdj1bXSx5PSEwLEM9ITE7dHJ5e2ZvcihoPWguY2FsbChkKTshKHk9KEk9aC5u''@;'; + put 'put ''ZXh0KCkpLmRvbmUpJiYodi5wdXNoKEkudmFsdWUpLCFnfHx2Lmxlbmd0aCE9PWcpO3k9ITApO31jYXRjaCh1ZSl7Qz0hMCxqPXVlfWZpbmFsbHl7dHJ5eyF5JiZudWxsIT1oLnJldHVybiYmaC5yZXR1cm4oKX1maW5hbGx5e2lmKEMpdGhyb3cgan19cmV0dXJuIHZ9fShkLGcpfHxmdW5jdGlv''@;'; + put 'put ''biBBY3QoZCxnKXtpZihkKXtpZigic3RyaW5nIj09dHlwZW9mIGQpcmV0dXJuIFNUZShkLGcpO3ZhciBoPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChkKS5zbGljZSg4LC0xKTtpZigiT2JqZWN0Ij09PWgmJmQuY29uc3RydWN0b3ImJihoPWQuY29uc3RydWN0b3IubmFtZSksIk1h''@;'; + put 'put ''cCI9PT1ofHwiU2V0Ij09PWgpcmV0dXJuIEFycmF5LmZyb20oZCk7aWYoIkFyZ3VtZW50cyI9PT1ofHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChoKSlyZXR1cm4gU1RlKGQsZyl9fShkLGcpfHxmdW5jdGlvbiB2Y3QoKXt0aHJvdyBuZXcgVHlwZUVy''@;'; + put 'put ''cm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfWZ1bmN0aW9uIFNUZShkLGcp''@;'; + put 'put ''eyhudWxsPT1nfHxnPmQubGVuZ3RoKSYmKGc9ZC5sZW5ndGgpO2Zvcih2YXIgaD0wLHY9bmV3IEFycmF5KGcpO2g8ZztoKyspdltoXT1kW2hdO3JldHVybiB2fWZ1bmN0aW9uIE1UZShkLGcpe3JldHVybiBnfHwoZz1kLnNsaWNlKDApKSxPYmplY3QuZnJlZXplKE9iamVjdC5kZWZpbmVQcm9w''@;'; + put 'put ''ZXJ0aWVzKGQse3Jhdzp7dmFsdWU6T2JqZWN0LmZyZWV6ZShnKX19KSl9ZnVuY3Rpb24gYmN0KGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9ZnVuY3Rpb24gRVRlKGQsZyl7Zm9yKHZhciBo''@;'; + put 'put ''PTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19dmFyIHhUZT0iQ29uZGl0aW9uQ29sbGVj''@;'; + put 'put ''dGlvbi5maWx0ZXJpbmdTdGF0ZXMiLFRUZT1mdW5jdGlvbigpe2Z1bmN0aW9uIGQoZyl7dmFyIGg9IShhcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXSl8fGFyZ3VtZW50c1sxXTtiY3QodGhpcyxkKSx0aGlzLmhvdD1nLHRoaXMuaXNNYXBSZWdpc3RyYWJsZT1oLHRo''@;'; + put 'put ''aXMuZmlsdGVyaW5nU3RhdGVzPW5ldyBZZWUsITA9PT10aGlzLmlzTWFwUmVnaXN0cmFibGU/dGhpcy5ob3QuY29sdW1uSW5kZXhNYXBwZXIucmVnaXN0ZXJNYXAoeFRlLHRoaXMuZmlsdGVyaW5nU3RhdGVzKTp0aGlzLmZpbHRlcmluZ1N0YXRlcy5pbml0KHRoaXMuaG90LmNvbHVtbkluZGV4''@;'; + put 'put ''TWFwcGVyLmdldE51bWJlck9mSW5kZXhlcygpKX1yZXR1cm4gZnVuY3Rpb24gX2N0KGQsZyxoKXtnJiZFVGUoZC5wcm90b3R5cGUsZyksaCYmRVRlKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGQsW3trZXk6ImlzRW1wdHkiLHZhbHVl''@;'; + put 'put ''OmZ1bmN0aW9uKCl7cmV0dXJuIDA9PT10aGlzLmdldEZpbHRlcmVkQ29sdW1ucygpLmxlbmd0aH19LHtrZXk6ImlzTWF0Y2giLHZhbHVlOmZ1bmN0aW9uKGgsdil7dmFyIHksQz10aGlzLmZpbHRlcmluZ1N0YXRlcy5nZXRWYWx1ZUF0SW5kZXgodiksST1udWxsIT09KHk9bnVsbD09Qz92b2lk''@;'; + put 'put ''IDA6Qy5jb25kaXRpb25zKSYmdm9pZCAwIT09eT95OltdO3JldHVybiB0aGlzLmlzTWF0Y2hJbkNvbmRpdGlvbnMoSSxoLG51bGw9PUM/dm9pZCAwOkMub3BlcmF0aW9uKX19LHtrZXk6ImlzTWF0Y2hJbkNvbmRpdGlvbnMiLHZhbHVlOmZ1bmN0aW9uKGgsdil7dmFyIHk9YXJndW1lbnRzLmxl''@;'; + put 'put ''bmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOlp3O3JldHVybiFoLmxlbmd0aHx8ejF0KHkpKGgsdil9fSx7a2V5OiJhZGRDb25kaXRpb24iLHZhbHVlOmZ1bmN0aW9uKGgsdil7dmFyIHk9YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/''@;'; + put 'put ''YXJndW1lbnRzWzJdOlp3LEM9YXJndW1lbnRzLmxlbmd0aD4zP2FyZ3VtZW50c1szXTp2b2lkIDAsST10aGlzLmhvdC5nZXRDZWxsTWV0YSgwLGgpLmxvY2FsZSxqPU9sKHYuYXJncyxmdW5jdGlvbihOZSl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBOZT9OZS50b0xvY2FsZUxvd2VyQ2FzZShJ''@;'; + put 'put ''KTpOZX0pLHVlPXYubmFtZXx8di5jb21tYW5kLmtleTt0aGlzLnJ1bkxvY2FsSG9va3MoImJlZm9yZUFkZCIsaCk7dmFyIF9lPXRoaXMuZ2V0T3BlcmF0aW9uKGgpO2lmKF9lKXtpZihfZSE9PXkpdGhyb3cgRXJyb3IoUDIoX1RlfHwoX1RlPU1UZShbIlRoZSBjb2x1bW4gb2YgaW5kZXggIiwi''@;'; + put 'put ''IGhhcyBiZWVuIGFscmVhZHkgYXBwbGllZCB3aXRoIGEgYCIsImAgXG4gICAgICAgIGZpbHRlciBvcGVyYXRpb24uIFVzZSBgcmVtb3ZlQ29uZGl0aW9uc2AgdG8gY2xlYXIgdGhlIGN1cnJlbnQgY29uZGl0aW9ucyBhbmQgdGhlbiBhZGQgbmV3IG9uZXMuIFxuICAgICAgICBNaW5kIHRoYXQg''@;'; + put 'put ''eW91IGNhbm5vdCBtaXggZGlmZmVyZW50IHR5cGVzIG9mIG9wZXJhdGlvbnMgKGZvciBpbnN0YW5jZSwgaWYgeW91IHVzZSBgY29uanVuY3Rpb25gLCBcbiAgICAgICAgdXNlIGl0IGNvbnNlcXVlbnRseSBmb3IgYSBwYXJ0aWN1bGFyIGNvbHVtbikuIl0sWyJUaGUgY29sdW1uIG9mIGluZGV4''@;'; + put 'put ''ICIsIiBoYXMgYmVlbiBhbHJlYWR5IGFwcGxpZWQgd2l0aCBhIFxcYCIsIlxcYFxceDIwXG4gICAgICAgIGZpbHRlciBvcGVyYXRpb24uIFVzZSBcXGByZW1vdmVDb25kaXRpb25zXFxgIHRvIGNsZWFyIHRoZSBjdXJyZW50IGNvbmRpdGlvbnMgYW5kIHRoZW4gYWRkIG5ldyBvbmVzLlxceDIw''@;'; + put 'put ''XG4gICAgICAgIE1pbmQgdGhhdCB5b3UgY2Fubm90IG1peCBkaWZmZXJlbnQgdHlwZXMgb2Ygb3BlcmF0aW9ucyAoZm9yIGluc3RhbmNlLCBpZiB5b3UgdXNlIFxcYGNvbmp1bmN0aW9uXFxgLFxceDIwXG4gICAgICAgIHVzZSBpdCBjb25zZXF1ZW50bHkgZm9yIGEgcGFydGljdWxhciBjb2x1''@;'; + put 'put ''bW4pLiJdKSksaCxfZSkpfWVsc2UgaWYoYTEoeHpbeV0pKXRocm93IG5ldyBFcnJvcihQMihDVGV8fChDVGU9TVRlKFsiVW5leHBlY3RlZCBvcGVyYXRpb24gbmFtZWQgYCIsImAuIFBvc3NpYmxlIG9uZXMgYXJlIFxuICAgICAgICBgZGlzanVuY3Rpb25gIGFuZCBgY29uanVuY3Rpb25gLiJd''@;'; + put 'put ''LFsiVW5leHBlY3RlZCBvcGVyYXRpb24gbmFtZWQgXFxgIiwiXFxgLiBQb3NzaWJsZSBvbmVzIGFyZVxceDIwXG4gICAgICAgIFxcYGRpc2p1bmN0aW9uXFxgIGFuZCBcXGBjb25qdW5jdGlvblxcYC4iXSkpLHkpKTt2YXIgQmU9dGhpcy5nZXRDb25kaXRpb25zKGgpOzA9PT1CZS5sZW5ndGg/''@;'; + put 'put ''dGhpcy5maWx0ZXJpbmdTdGF0ZXMuc2V0VmFsdWVBdEluZGV4KGgse29wZXJhdGlvbjp5LGNvbmRpdGlvbnM6W3tuYW1lOnVlLGFyZ3M6aixmdW5jOk53KHVlLGopfV19LEMpOkJlLnB1c2goe25hbWU6dWUsYXJnczpqLGZ1bmM6TncodWUsail9KSx0aGlzLnJ1bkxvY2FsSG9va3MoImFmdGVy''@;'; + put 'put ''QWRkIixoKX19LHtrZXk6ImdldENvbmRpdGlvbnMiLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB2LHk7cmV0dXJuIG51bGwhPT0odj1udWxsPT09KHk9dGhpcy5maWx0ZXJpbmdTdGF0ZXMuZ2V0VmFsdWVBdEluZGV4KGgpKXx8dm9pZCAwPT09eT92b2lkIDA6eS5jb25kaXRpb25zKSYmdm9pZCAw''@;'; + put 'put ''IT09dj92OltdfX0se2tleToiZ2V0T3BlcmF0aW9uIix2YWx1ZTpmdW5jdGlvbihoKXt2YXIgdjtyZXR1cm4gbnVsbD09PSh2PXRoaXMuZmlsdGVyaW5nU3RhdGVzLmdldFZhbHVlQXRJbmRleChoKSl8fHZvaWQgMD09PXY/dm9pZCAwOnYub3BlcmF0aW9ufX0se2tleToiZ2V0RmlsdGVyZWRD''@;'; + put 'put ''b2x1bW5zIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmZpbHRlcmluZ1N0YXRlcy5nZXRFbnRyaWVzKCkubWFwKGZ1bmN0aW9uKGgpe3JldHVybiBrVGUoaCwxKVswXX0pfX0se2tleToiZ2V0Q29sdW1uU3RhY2tQb3NpdGlvbiIsdmFsdWU6ZnVuY3Rpb24oaCl7cmV0dXJuIHRoaXMu''@;'; + put 'put ''Z2V0RmlsdGVyZWRDb2x1bW5zKCkuaW5kZXhPZihoKX19LHtrZXk6ImV4cG9ydEFsbENvbmRpdGlvbnMiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIFN1KHRoaXMuZmlsdGVyaW5nU3RhdGVzLmdldEVudHJpZXMoKSxmdW5jdGlvbihoLHYpe3ZhciB5PWtUZSh2LDIpLEk9eVsxXTtyZXR1cm4g''@;'; + put 'put ''aC5wdXNoKHtjb2x1bW46eVswXSxvcGVyYXRpb246SS5vcGVyYXRpb24sY29uZGl0aW9uczpPbChJLmNvbmRpdGlvbnMsZnVuY3Rpb24oX2Upe3JldHVybntuYW1lOl9lLm5hbWUsYXJnczpfZS5hcmdzfX0pfSksaH0sW10pfX0se2tleToiaW1wb3J0QWxsQ29uZGl0aW9ucyIsdmFsdWU6ZnVu''@;'; + put 'put ''Y3Rpb24oaCl7dmFyIHY9dGhpczt0aGlzLmNsZWFuKCksVXIoaCxmdW5jdGlvbih5KXtVcih5LmNvbmRpdGlvbnMsZnVuY3Rpb24oQyl7cmV0dXJuIHYuYWRkQ29uZGl0aW9uKHkuY29sdW1uLEMpfSl9KX19LHtrZXk6InJlbW92ZUNvbmRpdGlvbnMiLHZhbHVlOmZ1bmN0aW9uKGgpe3RoaXMu''@;'; + put 'put ''cnVuTG9jYWxIb29rcygiYmVmb3JlUmVtb3ZlIixoKSx0aGlzLmZpbHRlcmluZ1N0YXRlcy5jbGVhclZhbHVlKGgpLHRoaXMucnVuTG9jYWxIb29rcygiYWZ0ZXJSZW1vdmUiLGgpfX0se2tleToiY2xlYW4iLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5ydW5Mb2NhbEhvb2tzKCJiZWZvcmVDbGVh''@;'; + put 'put ''biIpLHRoaXMuZmlsdGVyaW5nU3RhdGVzLmNsZWFyKCksdGhpcy5ydW5Mb2NhbEhvb2tzKCJhZnRlckNsZWFuIil9fSx7a2V5OiJoYXNDb25kaXRpb25zIix2YWx1ZTpmdW5jdGlvbihoLHYpe3ZhciB5PXRoaXMuZ2V0Q29uZGl0aW9ucyhoKTtyZXR1cm4gdj95LnNvbWUoZnVuY3Rpb24oQyl7''@;'; + put 'put ''cmV0dXJuIEMubmFtZT09PXZ9KTp5Lmxlbmd0aD4wfX0se2tleToiZGVzdHJveSIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmlzTWFwUmVnaXN0cmFibGUmJnRoaXMuaG90LmNvbHVtbkluZGV4TWFwcGVyLnVucmVnaXN0ZXJNYXAoeFRlKSx0aGlzLmZpbHRlcmluZ1N0YXRlcz1udWxsLHRoaXMu''@;'; + put 'put ''Y2xlYXJMb2NhbEhvb2tzKCl9fV0pLGR9KCk7QjIoVFRlLGNkKTtjb25zdCBJVGU9VFRlO2Z1bmN0aW9uIENjdChkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfWZ1bmN0aW9uIERUZShkLGcp''@;'; + put 'put ''e2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fXZhciBTY3Q9ZnVuY3Rp''@;'; + put 'put ''b24oKXtmdW5jdGlvbiBkKGcpe3ZhciBoPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTpmdW5jdGlvbigpe3JldHVybltdfTtDY3QodGhpcyxkKSx0aGlzLmNvbmRpdGlvbkNvbGxlY3Rpb249Zyx0aGlzLmNvbHVtbkRhdGFGYWN0b3J5PWh9''@;'; + put 'put ''cmV0dXJuIGZ1bmN0aW9uIGtjdChkLGcsaCl7ZyYmRFRlKGQucHJvdG90eXBlLGcpLGgmJkRUZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShkLFt7a2V5OiJmaWx0ZXIiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9dGhpcyx2PVtdO3Jl''@;'; + put 'put ''dHVybiBVcih0aGlzLmNvbmRpdGlvbkNvbGxlY3Rpb24uZ2V0RmlsdGVyZWRDb2x1bW5zKCksZnVuY3Rpb24oeSxDKXt2YXIgST1oLmNvbHVtbkRhdGFGYWN0b3J5KHkpO0MmJihJPWguX2dldEludGVyc2VjdERhdGEoSSx2KSksdj1oLmZpbHRlckJ5Q29sdW1uKHksSSl9KSx2fX0se2tleToi''@;'; + put 'put ''ZmlsdGVyQnlDb2x1bW4iLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB2PXRoaXMseT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06W10sQz1bXTtyZXR1cm4gVXIoeSxmdW5jdGlvbihJKXt2b2lkIDAhPT1JJiZ2LmNvbmRpdGlvbkNvbGxlY3Rp''@;'; + put 'put ''b24uaXNNYXRjaChJLGgpJiZDLnB1c2goSSl9KSxDfX0se2tleToiX2dldEludGVyc2VjdERhdGEiLHZhbHVlOmZ1bmN0aW9uKGgsdil7dmFyIHk9W107cmV0dXJuIFVyKHYsZnVuY3Rpb24oQyl7dmFyIEk9Qy5tZXRhLnZpc3VhbFJvdzt2b2lkIDAhPT1oW0ldJiYoeVtJXT1oW0ldKX0pLHl9''@;'; + put 'put ''fV0pLGR9KCk7Y29uc3QgTFRlPVNjdDtmdW5jdGlvbiBNY3QoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX1mdW5jdGlvbiBPVGUoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7''@;'; + put 'put ''dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX12YXIgUlRlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZChnLGgpe3ZhciB2PXRo''@;'; + put 'put ''aXMseT1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06ZnVuY3Rpb24oKXtyZXR1cm5bXX07TWN0KHRoaXMsZCksdGhpcy5ob3Q9Zyx0aGlzLmNvbmRpdGlvbkNvbGxlY3Rpb249aCx0aGlzLmNvbHVtbkRhdGFGYWN0b3J5PXksdGhpcy5jaGFu''@;'; + put 'put ''Z2VzPVtdLHRoaXMuZ3JvdXBpbmc9ITEsdGhpcy5sYXRlc3RFZGl0ZWRDb2x1bW5Qb3NpdGlvbj0tMSx0aGlzLmxhdGVzdE9yZGVyU3RhY2s9W10sdGhpcy5jb25kaXRpb25Db2xsZWN0aW9uLmFkZExvY2FsSG9vaygiYmVmb3JlUmVtb3ZlIixmdW5jdGlvbihDKXtyZXR1cm4gdi5fb25Db25k''@;'; + put 'put ''aXRpb25CZWZvcmVNb2RpZnkoQyl9KSx0aGlzLmNvbmRpdGlvbkNvbGxlY3Rpb24uYWRkTG9jYWxIb29rKCJhZnRlclJlbW92ZSIsZnVuY3Rpb24oQyl7cmV0dXJuIHYudXBkYXRlU3RhdGVzQXRDb2x1bW4oQyl9KSx0aGlzLmNvbmRpdGlvbkNvbGxlY3Rpb24uYWRkTG9jYWxIb29rKCJhZnRl''@;'; + put 'put ''ckFkZCIsZnVuY3Rpb24oQyl7cmV0dXJuIHYudXBkYXRlU3RhdGVzQXRDb2x1bW4oQyl9KSx0aGlzLmNvbmRpdGlvbkNvbGxlY3Rpb24uYWRkTG9jYWxIb29rKCJiZWZvcmVDbGVhbiIsZnVuY3Rpb24oKXtyZXR1cm4gdi5fb25Db25kaXRpb25CZWZvcmVDbGVhbigpfSksdGhpcy5jb25kaXRp''@;'; + put 'put ''b25Db2xsZWN0aW9uLmFkZExvY2FsSG9vaygiYWZ0ZXJDbGVhbiIsZnVuY3Rpb24oKXtyZXR1cm4gdi5fb25Db25kaXRpb25BZnRlckNsZWFuKCl9KX1yZXR1cm4gZnVuY3Rpb24gRWN0KGQsZyxoKXtnJiZPVGUoZC5wcm90b3R5cGUsZyksaCYmT1RlKGQsaCksT2JqZWN0LmRlZmluZVByb3Bl''@;'; + put 'put ''cnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGQsW3trZXk6Imdyb3VwQ2hhbmdlcyIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmdyb3VwaW5nPSEwfX0se2tleToiZmx1c2giLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9dGhpczt0aGlzLmdyb3VwaW5nPSExLFVyKHRoaXMuY2hhbmdl''@;'; + put 'put ''cyxmdW5jdGlvbih2KXtoLnVwZGF0ZVN0YXRlc0F0Q29sdW1uKHYpfSksdGhpcy5jaGFuZ2VzLmxlbmd0aD0wfX0se2tleToiX29uQ29uZGl0aW9uQmVmb3JlTW9kaWZ5Iix2YWx1ZTpmdW5jdGlvbihoKXt0aGlzLmxhdGVzdEVkaXRlZENvbHVtblBvc2l0aW9uPXRoaXMuY29uZGl0aW9uQ29s''@;'; + put 'put ''bGVjdGlvbi5nZXRDb2x1bW5TdGFja1Bvc2l0aW9uKGgpfX0se2tleToidXBkYXRlU3RhdGVzQXRDb2x1bW4iLHZhbHVlOmZ1bmN0aW9uKGgsdil7dmFyIHk9dGhpcztpZih0aGlzLmdyb3VwaW5nKS0xPT09dGhpcy5jaGFuZ2VzLmluZGV4T2YoaCkmJnRoaXMuY2hhbmdlcy5wdXNoKGgpO2Vs''@;'; + put 'put ''c2V7dmFyIEM9dGhpcy5jb25kaXRpb25Db2xsZWN0aW9uLmV4cG9ydEFsbENvbmRpdGlvbnMoKSxJPXRoaXMuY29uZGl0aW9uQ29sbGVjdGlvbi5nZXRDb2x1bW5TdGFja1Bvc2l0aW9uKGgpOy0xPT09SSYmKEk9dGhpcy5sYXRlc3RFZGl0ZWRDb2x1bW5Qb3NpdGlvbik7dmFyIGo9Qy5zbGlj''@;'; + put 'put ''ZSgwLEkpLHVlPUMuc2xpY2UoSSk7dWUubGVuZ3RoJiZ1ZVswXS5jb2x1bW49PT1oJiZ1ZS5zaGlmdCgpO3ZhciBfZT1RYmUoZnVuY3Rpb24oTmUsS2Upe3ZhciBkdD1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06W10sT3Q9bmV3IElUZSh5''@;'; + put 'put ''LmhvdCwhMSksJHQ9W10uY29uY2F0KE5lLGR0KTtPdC5pbXBvcnRBbGxDb25kaXRpb25zKCR0KTt2YXIgZm49eS5jb2x1bW5EYXRhRmFjdG9yeShLZSksaXI9VHooT2woT3QuaXNFbXB0eSgpP2ZuOm5ldyBMVGUoT3QsZnVuY3Rpb24obXIpe3JldHVybiB5LmNvbHVtbkRhdGFGYWN0b3J5KG1y''@;'; + put 'put ''KX0pLmZpbHRlcigpLGZ1bmN0aW9uKG1yKXtyZXR1cm4gbXIubWV0YS52aXN1YWxSb3d9KSk7cmV0dXJuIE90LmRlc3Ryb3koKSxnNChmbixmdW5jdGlvbihtcil7cmV0dXJuIGlyKG1yLm1ldGEudmlzdWFsUm93KX0pfSkoaiksQmU9W10uY29uY2F0KHRoaXMuY29uZGl0aW9uQ29sbGVjdGlv''@;'; + put 'put ''bi5nZXRDb25kaXRpb25zKGgpKTt0aGlzLnJ1bkxvY2FsSG9va3MoInVwZGF0ZSIse2VkaXRlZENvbmRpdGlvblN0YWNrOntjb2x1bW46aCxjb25kaXRpb25zOkJlfSxkZXBlbmRlbnRDb25kaXRpb25TdGFja3M6dWUsZmlsdGVyZWRSb3dzRmFjdG9yeTpfZSxjb25kaXRpb25BcmdzQ2hhbmdl''@;'; + put 'put ''OnZ9KX19fSx7a2V5OiJfb25Db25kaXRpb25CZWZvcmVDbGVhbiIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmxhdGVzdE9yZGVyU3RhY2s9dGhpcy5jb25kaXRpb25Db2xsZWN0aW9uLmdldEZpbHRlcmVkQ29sdW1ucygpfX0se2tleToiX29uQ29uZGl0aW9uQWZ0ZXJDbGVhbiIsdmFsdWU6ZnVu''@;'; + put 'put ''Y3Rpb24oKXt2YXIgaD10aGlzO1VyKHRoaXMubGF0ZXN0T3JkZXJTdGFjayxmdW5jdGlvbih2KXtoLnVwZGF0ZVN0YXRlc0F0Q29sdW1uKHYpfSl9fSx7a2V5OiJkZXN0cm95Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciBoPXRoaXM7dGhpcy5jbGVhckxvY2FsSG9va3MoKSxHbCh0aGlzLGZ1bmN0''@;'; + put 'put ''aW9uKHYseSl7aFt5XT1udWxsfSl9fV0pLGR9KCk7QjIoUlRlLGNkKTtjb25zdCB4Y3Q9UlRlO2Z1bmN0aW9uIE01ZShkKXtyZXR1cm4oTTVlPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGcpe3JldHVybiB0eXBl''@;'; + put 'put ''b2YgZ306ZnVuY3Rpb24oZyl7cmV0dXJuIGcmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmcuY29uc3RydWN0b3I9PT1TeW1ib2wmJmchPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBnfSkoZCl9dmFyIEJUZTtmdW5jdGlvbiBQVGUoZCxnKXsobnVsbD09Z3x8Zz5kLmxl''@;'; + put 'put ''bmd0aCkmJihnPWQubGVuZ3RoKTtmb3IodmFyIGg9MCx2PW5ldyBBcnJheShnKTtoPGc7aCsrKXZbaF09ZFtoXTtyZXR1cm4gdn1mdW5jdGlvbiBGVGUoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNv''@;'; + put 'put ''bmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX1mdW5jdGlvbiBRTygpe3JldHVybiBRTz0idW5kZWZpbmVkIiE9dHlwZW9mIFJlZmxlY3QmJlJlZmxlY3QuZ2V0P1JlZmxlY3QuZ2V0LmJpbmQoKTpmdW5j''@;'; + put 'put ''dGlvbihnLGgsdil7dmFyIHk9RmN0KGcsaCk7aWYoeSl7dmFyIEM9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih5LGgpO3JldHVybiBDLmdldD9DLmdldC5jYWxsKGFyZ3VtZW50cy5sZW5ndGg8Mz9nOnYpOkMudmFsdWV9fSxRTy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rp''@;'; + put 'put ''b24gRmN0KGQsZyl7Zm9yKDshT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGQsZykmJm51bGwhPT0oZD1HdyhkKSk7KTtyZXR1cm4gZH1mdW5jdGlvbiBFNWUoZCxnKXtyZXR1cm4oRTVlPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmlu''@;'; + put 'put ''ZCgpOmZ1bmN0aW9uKHYseSl7cmV0dXJuIHYuX19wcm90b19fPXksdn0pKGQsZyl9ZnVuY3Rpb24gVmN0KGQsZyl7aWYoZyYmKCJvYmplY3QiPT09TTVlKGcpfHwiZnVuY3Rpb24iPT10eXBlb2YgZykpcmV0dXJuIGc7aWYodm9pZCAwIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJEZXJpdmVk''@;'; + put 'put ''IGNvbnN0cnVjdG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0IG9yIHVuZGVmaW5lZCIpO3JldHVybiBIVGUoZCl9ZnVuY3Rpb24gSFRlKGQpe2lmKHZvaWQgMD09PWQpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNu''@;'; + put 'put ''J3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4gZH1mdW5jdGlvbiBHdyhkKXtyZXR1cm4oR3c9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24oaCl7cmV0dXJuIGguX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YoaCl9KShkKX12''@;'; + put 'put ''YXIgemN0PWZ1bmN0aW9uKGQpeyFmdW5jdGlvbiBIY3QoZCxnKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZyYmbnVsbCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTtkLnByb3RvdHlwZT1PYmplY3Qu''@;'; + put 'put ''Y3JlYXRlKGcmJmcucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6ZCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZyYmRTVlKGQsZyl9KGgsZCk7dmFyIGc9ZnVuY3Rpb24gTmN0KGQp''@;'; + put 'put ''e3ZhciBnPWZ1bmN0aW9uIGpjdCgpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0fHxSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBQcm94eSlyZXR1cm4hMDt0cnl7cmV0dXJuIEJvb2xlYW4ucHJv''@;'; + put 'put ''dG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLGZ1bmN0aW9uKCl7fSkpLCEwfWNhdGNoKGQpe3JldHVybiExfX0oKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgeSx2PUd3KGQpO2lmKGcpe3ZhciBDPUd3KHRoaXMpLmNvbnN0cnVjdG9yO3k9UmVmbGVjdC5j''@;'; + put 'put ''b25zdHJ1Y3Qodixhcmd1bWVudHMsQyl9ZWxzZSB5PXYuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBWY3QodGhpcyx5KX19KGgpO2Z1bmN0aW9uIGgodil7dmFyIHk7cmV0dXJuIGZ1bmN0aW9uIEJjdChkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3Io''@;'; + put 'put ''IkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSh0aGlzLGgpLCh5PWcuY2FsbCh0aGlzLHYpKS5ldmVudE1hbmFnZXI9bmV3IEwxKEhUZSh5KSkseS5kcm9wZG93bk1lbnVQbHVnaW49bnVsbCx5LmNvbmRpdGlvbkNvbGxlY3Rpb249bnVsbCx5LmNvbmRpdGlvblVwZGF0ZU9i''@;'; + put 'put ''c2VydmVyPW51bGwseS5jb21wb25lbnRzPW5ldyBNYXAoW1siZmlsdGVyX2J5X2NvbmRpdGlvbiIsbnVsbF0sWyJmaWx0ZXJfb3BlcmF0b3JzIixudWxsXSxbImZpbHRlcl9ieV9jb25kaXRpb24yIixudWxsXSxbImZpbHRlcl9ieV92YWx1ZSIsbnVsbF0sWyJmaWx0ZXJfYWN0aW9uX2JhciIs''@;'; + put 'put ''bnVsbF1dKSx5Lmxhc3RTZWxlY3RlZENvbHVtbj1udWxsLHkuZmlsdGVyc1Jvd3NNYXA9bnVsbCx5LmhvdC5hZGRIb29rKCJhZnRlckdldENvbEhlYWRlciIsZnVuY3Rpb24oQyxJKXtyZXR1cm4geS5vbkFmdGVyR2V0Q29sSGVhZGVyKEMsSSl9KSx5fXJldHVybiBmdW5jdGlvbiBQY3QoZCxn''@;'; + put 'put ''LGgpe2cmJkZUZShkLnByb3RvdHlwZSxnKSxoJiZGVGUoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oaCxbe2tleToiaXNFbmFibGVkIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiEhdGhpcy5ob3QuZ2V0U2V0dGluZ3MoKS5maWx0ZXJz''@;'; + put 'put ''fX0se2tleToiZW5hYmxlUGx1Z2luIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXM7aWYoIXRoaXMuZW5hYmxlZCl7dGhpcy5maWx0ZXJzUm93c01hcD10aGlzLmhvdC5yb3dJbmRleE1hcHBlci5yZWdpc3Rlck1hcCh0aGlzLnBsdWdpbk5hbWUsbmV3IG56KSx0aGlzLmRyb3Bkb3duTWVu''@;'; + put 'put ''dVBsdWdpbj10aGlzLmhvdC5nZXRQbHVnaW4oImRyb3Bkb3duTWVudSIpO3ZhciBDPXRoaXMuaG90LmdldFNldHRpbmdzKCkuZHJvcGRvd25NZW51LEk9QyYmQy51aUNvbnRhaW5lcnx8dGhpcy5ob3Qucm9vdERvY3VtZW50LmJvZHksaj1mdW5jdGlvbihkdCl7cmV0dXJuIGR0LmFkZExvY2Fs''@;'; + put 'put ''SG9vaygiYWNjZXB0IixmdW5jdGlvbigpe3JldHVybiB5Lm9uQWN0aW9uQmFyU3VibWl0KCJhY2NlcHQiKX0pLGR0LmFkZExvY2FsSG9vaygiY2FuY2VsIixmdW5jdGlvbigpe3JldHVybiB5Lm9uQWN0aW9uQmFyU3VibWl0KCJjYW5jZWwiKX0pLGR0LmFkZExvY2FsSG9vaygiY2hhbmdlIixm''@;'; + put 'put ''dW5jdGlvbihPdCl7cmV0dXJuIHkub25Db21wb25lbnRDaGFuZ2UoZHQsT3QpfSksZHR9O2lmKCF0aGlzLmNvbXBvbmVudHMuZ2V0KCJmaWx0ZXJfYnlfY29uZGl0aW9uIikpe3ZhciBCZT1uZXcgbDVlKHRoaXMuaG90LHtpZDoiZmlsdGVyX2J5X2NvbmRpdGlvbiIsbmFtZTpmdW5jdGlvbigp''@;'; + put 'put ''e3JldHVybiIiLmNvbmNhdCh5LmhvdC5nZXRUcmFuc2xhdGVkUGhyYXNlKFRwZSksIjoiKX0sYWRkU2VwYXJhdG9yOiExLG1lbnVDb250YWluZXI6SX0pO0JlLmFkZExvY2FsSG9vaygiYWZ0ZXJDbG9zZSIsZnVuY3Rpb24oKXtyZXR1cm4geS5vblNlbGVjdFVJQ2xvc2VkKCl9KSx0aGlzLmNv''@;'; + put 'put ''bXBvbmVudHMuc2V0KCJmaWx0ZXJfYnlfY29uZGl0aW9uIixqKEJlKSl9aWYodGhpcy5jb21wb25lbnRzLmdldCgiZmlsdGVyX29wZXJhdG9ycyIpfHx0aGlzLmNvbXBvbmVudHMuc2V0KCJmaWx0ZXJfb3BlcmF0b3JzIixuZXcgcHV0KHRoaXMuaG90LHtpZDoiZmlsdGVyX29wZXJhdG9ycyIs''@;'; + put 'put ''bmFtZToiT3BlcmF0b3JzIn0pKSwhdGhpcy5jb21wb25lbnRzLmdldCgiZmlsdGVyX2J5X2NvbmRpdGlvbjIiKSl7dmFyIE5lPW5ldyBsNWUodGhpcy5ob3Qse2lkOiJmaWx0ZXJfYnlfY29uZGl0aW9uMiIsbmFtZToiIixhZGRTZXBhcmF0b3I6ITAsbWVudUNvbnRhaW5lcjpJfSk7TmUuYWRk''@;'; + put 'put ''TG9jYWxIb29rKCJhZnRlckNsb3NlIixmdW5jdGlvbigpe3JldHVybiB5Lm9uU2VsZWN0VUlDbG9zZWQoKX0pLHRoaXMuY29tcG9uZW50cy5zZXQoImZpbHRlcl9ieV9jb25kaXRpb24yIixqKE5lKSl9dGhpcy5jb21wb25lbnRzLmdldCgiZmlsdGVyX2J5X3ZhbHVlIil8fHRoaXMuY29tcG9u''@;'; + put 'put ''ZW50cy5zZXQoImZpbHRlcl9ieV92YWx1ZSIsaihuZXcgbGN0KHRoaXMuaG90LHtpZDoiZmlsdGVyX2J5X3ZhbHVlIixuYW1lOmZ1bmN0aW9uKCl7cmV0dXJuIiIuY29uY2F0KHkuaG90LmdldFRyYW5zbGF0ZWRQaHJhc2UoSXBlKSwiOiIpfX0pKSksdGhpcy5jb21wb25lbnRzLmdldCgiZmls''@;'; + put 'put ''dGVyX2FjdGlvbl9iYXIiKXx8dGhpcy5jb21wb25lbnRzLnNldCgiZmlsdGVyX2FjdGlvbl9iYXIiLGoobmV3IG1jdCh0aGlzLmhvdCx7aWQ6ImZpbHRlcl9hY3Rpb25fYmFyIixuYW1lOiJBY3Rpb24gYmFyIn0pKSksdGhpcy5jb25kaXRpb25Db2xsZWN0aW9ufHwodGhpcy5jb25kaXRpb25D''@;'; + put 'put ''b2xsZWN0aW9uPW5ldyBJVGUodGhpcy5ob3QpKSx0aGlzLmNvbmRpdGlvblVwZGF0ZU9ic2VydmVyfHwodGhpcy5jb25kaXRpb25VcGRhdGVPYnNlcnZlcj1uZXcgeGN0KHRoaXMuaG90LHRoaXMuY29uZGl0aW9uQ29sbGVjdGlvbixmdW5jdGlvbihLZSl7cmV0dXJuIHkuZ2V0RGF0YU1hcEF0''@;'; + put 'put ''Q29sdW1uKEtlKX0pLHRoaXMuY29uZGl0aW9uVXBkYXRlT2JzZXJ2ZXIuYWRkTG9jYWxIb29rKCJ1cGRhdGUiLGZ1bmN0aW9uKEtlKXtyZXR1cm4geS51cGRhdGVDb21wb25lbnRzKEtlKX0pKSx0aGlzLmNvbXBvbmVudHMuZm9yRWFjaChmdW5jdGlvbihLZSl7cmV0dXJuIEtlLnNob3coKX0p''@;'; + put 'put ''LHRoaXMucmVnaXN0ZXJFdmVudHMoKSx0aGlzLmFkZEhvb2soImJlZm9yZURyb3Bkb3duTWVudVNldEl0ZW1zIixmdW5jdGlvbihLZSl7cmV0dXJuIHkub25CZWZvcmVEcm9wZG93bk1lbnVTZXRJdGVtcyhLZSl9KSx0aGlzLmFkZEhvb2soImFmdGVyRHJvcGRvd25NZW51RGVmYXVsdE9wdGlv''@;'; + put 'put ''bnMiLGZ1bmN0aW9uKEtlKXtyZXR1cm4geS5vbkFmdGVyRHJvcGRvd25NZW51RGVmYXVsdE9wdGlvbnMoS2UpfSksdGhpcy5hZGRIb29rKCJhZnRlckRyb3Bkb3duTWVudVNob3ciLGZ1bmN0aW9uKCl7cmV0dXJuIHkub25BZnRlckRyb3Bkb3duTWVudVNob3coKX0pLHRoaXMuYWRkSG9vaygi''@;'; + put 'put ''YWZ0ZXJEcm9wZG93bk1lbnVIaWRlIixmdW5jdGlvbigpe3JldHVybiB5Lm9uQWZ0ZXJEcm9wZG93bk1lbnVIaWRlKCl9KSx0aGlzLmFkZEhvb2soImFmdGVyQ2hhbmdlIixmdW5jdGlvbihLZSl7cmV0dXJuIHkub25BZnRlckNoYW5nZShLZSl9KSx0aGlzLmhvdC5nZXRTZXR0aW5ncygpLmRy''@;'; + put 'put ''b3Bkb3duTWVudSYmdGhpcy5kcm9wZG93bk1lbnVQbHVnaW4mJih0aGlzLmRyb3Bkb3duTWVudVBsdWdpbi5kaXNhYmxlUGx1Z2luKCksdGhpcy5kcm9wZG93bk1lbnVQbHVnaW4uZW5hYmxlUGx1Z2luKCkpLFFPKEd3KGgucHJvdG90eXBlKSwiZW5hYmxlUGx1Z2luIix0aGlzKS5jYWxsKHRo''@;'; + put 'put ''aXMpfX19LHtrZXk6InJlZ2lzdGVyRXZlbnRzIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXM7dGhpcy5ldmVudE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcih0aGlzLmhvdC5yb290RWxlbWVudCwiY2xpY2siLGZ1bmN0aW9uKEMpe3JldHVybiB5Lm9uVGFibGVDbGljayhDKX0pfX0se2tl''@;'; + put 'put ''eToiZGlzYWJsZVBsdWdpbiIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgQyx5PXRoaXM7dGhpcy5lbmFibGVkJiYobnVsbCE9PShDPXRoaXMuZHJvcGRvd25NZW51UGx1Z2luKSYmdm9pZCAwIT09QyYmQy5lbmFibGVkJiZ0aGlzLmRyb3Bkb3duTWVudVBsdWdpbi5tZW51LmNsZWFyTG9jYWxIb29r''@;'; + put 'put ''cygpLHRoaXMuY29tcG9uZW50cy5mb3JFYWNoKGZ1bmN0aW9uKEksail7SS5kZXN0cm95KCkseS5jb21wb25lbnRzLnNldChqLG51bGwpfSksdGhpcy5jb25kaXRpb25Db2xsZWN0aW9uLmRlc3Ryb3koKSx0aGlzLmNvbmRpdGlvbkNvbGxlY3Rpb249bnVsbCx0aGlzLmhvdC5yb3dJbmRleE1h''@;'; + put 'put ''cHBlci51bnJlZ2lzdGVyTWFwKHRoaXMucGx1Z2luTmFtZSkpLFFPKEd3KGgucHJvdG90eXBlKSwiZGlzYWJsZVBsdWdpbiIsdGhpcykuY2FsbCh0aGlzKX19LHtrZXk6ImFkZENvbmRpdGlvbiIsdmFsdWU6ZnVuY3Rpb24oeSxDLEkpe3ZhciBqPWFyZ3VtZW50cy5sZW5ndGg+MyYmdm9pZCAw''@;'; + put 'put ''IT09YXJndW1lbnRzWzNdP2FyZ3VtZW50c1szXTpadyx1ZT10aGlzLmhvdC50b1BoeXNpY2FsQ29sdW1uKHkpO3RoaXMuY29uZGl0aW9uQ29sbGVjdGlvbi5hZGRDb25kaXRpb24odWUse2NvbW1hbmQ6e2tleTpDfSxhcmdzOkl9LGopfX0se2tleToicmVtb3ZlQ29uZGl0aW9ucyIsdmFsdWU6''@;'; + put 'put ''ZnVuY3Rpb24oeSl7dmFyIEM9dGhpcy5ob3QudG9QaHlzaWNhbENvbHVtbih5KTt0aGlzLmNvbmRpdGlvbkNvbGxlY3Rpb24ucmVtb3ZlQ29uZGl0aW9ucyhDKX19LHtrZXk6ImNsZWFyQ29uZGl0aW9ucyIsdmFsdWU6ZnVuY3Rpb24oeSl7aWYodm9pZCAwPT09eSl0aGlzLmNvbmRpdGlvbkNv''@;'; + put 'put ''bGxlY3Rpb24uY2xlYW4oKTtlbHNle3ZhciBDPXRoaXMuaG90LnRvUGh5c2ljYWxDb2x1bW4oeSk7dGhpcy5jb25kaXRpb25Db2xsZWN0aW9uLnJlbW92ZUNvbmRpdGlvbnMoQyl9fX0se2tleToiZmlsdGVyIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXMsQz10aGlzLl9jcmVhdGVEYXRh''@;'; + put 'put ''RmlsdGVyKCksST0hdGhpcy5jb25kaXRpb25Db2xsZWN0aW9uLmlzRW1wdHkoKSxqPVtdLHVlPXRoaXMuY29uZGl0aW9uQ29sbGVjdGlvbi5leHBvcnRBbGxDb25kaXRpb25zKCk7aWYoITEhPT10aGlzLmhvdC5ydW5Ib29rcygiYmVmb3JlRmlsdGVyIix1ZSkpaWYoSSl7dmFyIEJlPVtdO3Ro''@;'; + put 'put ''aXMuaG90LmJhdGNoRXhlY3V0aW9uKGZ1bmN0aW9uKCl7eS5maWx0ZXJzUm93c01hcC5jbGVhcigpO3ZhciBOZT1UeihqPU9sKEMuZmlsdGVyKCksZnVuY3Rpb24oS2Upe3JldHVybiBLZS5tZXRhLnZpc3VhbFJvd30pKTtpYSh5LmhvdC5jb3VudFNvdXJjZVJvd3MoKS0xLGZ1bmN0aW9uKEtl''@;'; + put 'put ''KXtOZShLZSl8fEJlLnB1c2goS2UpfSksVXIoQmUsZnVuY3Rpb24oS2Upe3kuZmlsdGVyc1Jvd3NNYXAuc2V0VmFsdWVBdEluZGV4KEtlLCEwKX0pfSwhMCksai5sZW5ndGh8fHRoaXMuaG90LmRlc2VsZWN0Q2VsbCgpfWVsc2UgdGhpcy5maWx0ZXJzUm93c01hcC5jbGVhcigpO3RoaXMuaG90''@;'; + put 'put ''LnJ1bkhvb2tzKCJhZnRlckZpbHRlciIsdWUpLHRoaXMuaG90LnZpZXcuYWRqdXN0RWxlbWVudHNTaXplKCEwKSx0aGlzLmhvdC5yZW5kZXIoKSx0aGlzLmNsZWFyQ29sdW1uU2VsZWN0aW9uKCl9fSx7a2V5OiJnZXRTZWxlY3RlZENvbHVtbiIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhp''@;'; + put 'put ''cy5sYXN0U2VsZWN0ZWRDb2x1bW59fSx7a2V5OiJjbGVhckNvbHVtblNlbGVjdGlvbiIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeSxDPW51bGw9PT0oeT10aGlzLmhvdC5nZXRTZWxlY3RlZFJhbmdlTGFzdCgpKXx8dm9pZCAwPT09eT92b2lkIDA6eS5nZXRUb3BTdGFydENvcm5lcigpO3ZvaWQg''@;'; + put 'put ''MCE9PUMmJnRoaXMuaG90LnNlbGVjdENlbGwoQy5yb3csQy5jb2wpfX0se2tleToiZ2V0RGF0YU1hcEF0Q29sdW1uIix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz10aGlzLEk9dGhpcy5ob3QudG9WaXN1YWxDb2x1bW4oeSksaj1bXTtyZXR1cm4gVXIodGhpcy5ob3QuZ2V0U291cmNlRGF0YUF0''@;'; + put 'put ''Q29sKEkpLGZ1bmN0aW9uKHVlLF9lKXt2YXIgQmUsTmU9Qy5ob3QuZ2V0Q2VsbE1ldGEoX2UsSSksS2U9TmUucm93LGR0PU5lLmNvbCxPdD1OZS52aXN1YWxDb2wsJHQ9TmUudmlzdWFsUm93LGZuPU5lLnR5cGUsTG49TmUuaW5zdGFuY2UsaXI9TmUuZGF0ZUZvcm1hdCxtcj1OZS5sb2NhbGUs''@;'; + put 'put ''U3I9bnVsbCE9PShCZT1DLmhvdC5nZXREYXRhQXRDZWxsKEMuaG90LnRvVmlzdWFsUm93KF9lKSxJKSkmJnZvaWQgMCE9PUJlP0JlOnVlO2oucHVzaCh7bWV0YTp7cm93OktlLGNvbDpkdCx2aXN1YWxDb2w6T3QsdmlzdWFsUm93OiR0LHR5cGU6Zm4saW5zdGFuY2U6TG4sZGF0ZUZvcm1hdDpp''@;'; + put 'put ''cixsb2NhbGU6bXJ9LHZhbHVlOnNUZShTcil9KX0pLGp9fSx7a2V5OiJvbkFmdGVyQ2hhbmdlIix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz10aGlzO3kmJlVyKHksZnVuY3Rpb24oSSl7dmFyIGo9ZnVuY3Rpb24gSWN0KGQsZyl7cmV0dXJuIGZ1bmN0aW9uIFJjdChkKXtpZihBcnJheS5pc0Fy''@;'; + put 'put ''cmF5KGQpKXJldHVybiBkfShkKXx8ZnVuY3Rpb24gT2N0KGQsZyl7dmFyIGg9bnVsbD09ZD9udWxsOiJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZkW1N5bWJvbC5pdGVyYXRvcl18fGRbIkBAaXRlcmF0b3IiXTtpZihudWxsIT1oKXt2YXIgSSxqLHY9W10seT0hMCxDPSExO3RyeXtmb3Io''@;'; + put 'put ''aD1oLmNhbGwoZCk7ISh5PShJPWgubmV4dCgpKS5kb25lKSYmKHYucHVzaChJLnZhbHVlKSwhZ3x8di5sZW5ndGghPT1nKTt5PSEwKTt9Y2F0Y2godWUpe0M9ITAsaj11ZX1maW5hbGx5e3RyeXsheSYmbnVsbCE9aC5yZXR1cm4mJmgucmV0dXJuKCl9ZmluYWxseXtpZihDKXRocm93IGp9fXJl''@;'; + put 'put ''dHVybiB2fX0oZCxnKXx8ZnVuY3Rpb24gTGN0KGQsZyl7aWYoZCl7aWYoInN0cmluZyI9PXR5cGVvZiBkKXJldHVybiBQVGUoZCxnKTt2YXIgaD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZCkuc2xpY2UoOCwtMSk7aWYoIk9iamVjdCI9PT1oJiZkLmNvbnN0cnVjdG9yJiYoaD1k''@;'; + put 'put ''LmNvbnN0cnVjdG9yLm5hbWUpLCJNYXAiPT09aHx8IlNldCI9PT1oKXJldHVybiBBcnJheS5mcm9tKGQpO2lmKCJBcmd1bWVudHMiPT09aHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QoaCkpcmV0dXJuIFBUZShkLGcpfX0oZCxnKXx8ZnVuY3Rpb24g''@;'; + put 'put ''RGN0KCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4i''@;'; + put 'put ''KX0oKX0oSSwyKSxfZT1DLmhvdC5wcm9wVG9Db2woalsxXSk7Qy5jb25kaXRpb25Db2xsZWN0aW9uLmhhc0NvbmRpdGlvbnMoX2UpJiZDLnVwZGF0ZVZhbHVlQ29tcG9uZW50Q29uZGl0aW9uKF9lKX0pfX0se2tleToidXBkYXRlVmFsdWVDb21wb25lbnRDb25kaXRpb24iLHZhbHVlOmZ1bmN0''@;'; + put 'put ''aW9uKHkpe3ZhciBJPWc1ZSh0aGlzLmhvdC5nZXREYXRhQXRDb2woeSkpO3RoaXMuY29uZGl0aW9uVXBkYXRlT2JzZXJ2ZXIudXBkYXRlU3RhdGVzQXRDb2x1bW4oeSxJKX19LHtrZXk6InJlc3RvcmVDb21wb25lbnRzIix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgQyxJPW51bGw9PT0oQz10aGlz''@;'; + put 'put ''LmdldFNlbGVjdGVkQ29sdW1uKCkpfHx2b2lkIDA9PT1DP3ZvaWQgMDpDLnBoeXNpY2FsSW5kZXg7eS5mb3JFYWNoKGZ1bmN0aW9uKGope2ouaXNIaWRkZW4oKXx8ai5yZXN0b3JlU3RhdGUoSSl9KSx0aGlzLnVwZGF0ZURlcGVuZGVudENvbXBvbmVudHNWaXNpYmlsaXR5KCl9fSx7a2V5OiJv''@;'; + put 'put ''bkFmdGVyRHJvcGRvd25NZW51U2hvdyIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLnJlc3RvcmVDb21wb25lbnRzKEFycmF5LmZyb20odGhpcy5jb21wb25lbnRzLnZhbHVlcygpKSl9fSx7a2V5OiJvbkFmdGVyRHJvcGRvd25NZW51SGlkZSIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmNvbXBvbmVu''@;'; + put 'put ''dHMuZ2V0KCJmaWx0ZXJfYnlfY29uZGl0aW9uIikuZ2V0U2VsZWN0RWxlbWVudCgpLmNsb3NlT3B0aW9ucygpLHRoaXMuY29tcG9uZW50cy5nZXQoImZpbHRlcl9ieV9jb25kaXRpb24yIikuZ2V0U2VsZWN0RWxlbWVudCgpLmNsb3NlT3B0aW9ucygpfX0se2tleToib25CZWZvcmVEcm9wZG93''@;'; + put 'put ''bk1lbnVTZXRJdGVtcyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzO3RoaXMuZHJvcGRvd25NZW51UGx1Z2luJiZ0aGlzLmRyb3Bkb3duTWVudVBsdWdpbi5tZW51LmFkZExvY2FsSG9vaygiYWZ0ZXJPcGVuIixmdW5jdGlvbigpe3kuZHJvcGRvd25NZW51UGx1Z2luLm1lbnUuaG90TWVu''@;'; + put 'put ''dS51cGRhdGVTZXR0aW5ncyh7aGlkZGVuUm93czohMH0pfSl9fSx7a2V5OiJvbkFmdGVyRHJvcGRvd25NZW51RGVmYXVsdE9wdGlvbnMiLHZhbHVlOmZ1bmN0aW9uKHkpe3kuaXRlbXMucHVzaCh7bmFtZTpXbH0pLHRoaXMuY29tcG9uZW50cy5mb3JFYWNoKGZ1bmN0aW9uKEMpe3kuaXRlbXMu''@;'; + put 'put ''cHVzaChDLmdldE1lbnVJdGVtRGVzY3JpcHRvcigpKX0pfX0se2tleToiZ2V0T3BlcmF0aW9uQmFzZWRPbkFyZ3VtZW50cyIsdmFsdWU6ZnVuY3Rpb24oeSxDLEksail7dmFyIHVlPXk7cmV0dXJuIHVlPT09bG5lJiZDLmNvbW1hbmQua2V5IT09SGYmJkkuY29tbWFuZC5rZXkhPT1IZiYmai5j''@;'; + put 'put ''b21tYW5kLmtleSE9PUhmP3VlPXU1ZTpqLmNvbW1hbmQua2V5IT09SGYmJihDLmNvbW1hbmQua2V5PT09SGZ8fEkuY29tbWFuZC5rZXk9PT1IZikmJih1ZT1adyksdWV9fSx7a2V5OiJvbkFjdGlvbkJhclN1Ym1pdCIsdmFsdWU6ZnVuY3Rpb24oeSl7aWYoImFjY2VwdCI9PT15KXt2YXIgQyxJ''@;'; + put 'put ''PW51bGw9PT0oQz10aGlzLmdldFNlbGVjdGVkQ29sdW1uKCkpfHx2b2lkIDA9PT1DP3ZvaWQgMDpDLnBoeXNpY2FsSW5kZXgsaj10aGlzLmNvbXBvbmVudHMuZ2V0KCJmaWx0ZXJfYnlfY29uZGl0aW9uIikuZ2V0U3RhdGUoKSx1ZT10aGlzLmNvbXBvbmVudHMuZ2V0KCJmaWx0ZXJfYnlfY29u''@;'; + put 'put ''ZGl0aW9uMiIpLmdldFN0YXRlKCksX2U9dGhpcy5jb21wb25lbnRzLmdldCgiZmlsdGVyX2J5X3ZhbHVlIikuZ2V0U3RhdGUoKSxCZT10aGlzLmdldE9wZXJhdGlvbkJhc2VkT25Bcmd1bWVudHModGhpcy5jb21wb25lbnRzLmdldCgiZmlsdGVyX29wZXJhdG9ycyIpLmdldEFjdGl2ZU9wZXJh''@;'; + put 'put ''dGlvbklkKCksaix1ZSxfZSk7dGhpcy5jb25kaXRpb25VcGRhdGVPYnNlcnZlci5ncm91cENoYW5nZXMoKTt2YXIgTmU9dGhpcy5jb25kaXRpb25Db2xsZWN0aW9uLmdldENvbHVtblN0YWNrUG9zaXRpb24oSSk7LTE9PT1OZSYmKE5lPXZvaWQgMCksdGhpcy5jb25kaXRpb25Db2xsZWN0aW9u''@;'; + put 'put ''LnJlbW92ZUNvbmRpdGlvbnMoSSksai5jb21tYW5kLmtleSE9PUhmJiYodGhpcy5jb25kaXRpb25Db2xsZWN0aW9uLmFkZENvbmRpdGlvbihJLGosQmUsTmUpLHVlLmNvbW1hbmQua2V5IT09SGYmJnRoaXMuY29uZGl0aW9uQ29sbGVjdGlvbi5hZGRDb25kaXRpb24oSSx1ZSxCZSxOZSkpLF9l''@;'; + put 'put ''LmNvbW1hbmQua2V5IT09SGYmJnRoaXMuY29uZGl0aW9uQ29sbGVjdGlvbi5hZGRDb25kaXRpb24oSSxfZSxCZSxOZSksdGhpcy5jb25kaXRpb25VcGRhdGVPYnNlcnZlci5mbHVzaCgpLHRoaXMuY29tcG9uZW50cy5mb3JFYWNoKGZ1bmN0aW9uKEtlKXtyZXR1cm4gS2Uuc2F2ZVN0YXRlKEkp''@;'; + put 'put ''fSksdGhpcy5maWx0ZXJzUm93c01hcC5jbGVhcigpLHRoaXMuZmlsdGVyKCl9dGhpcy5kcm9wZG93bk1lbnVQbHVnaW4mJnRoaXMuZHJvcGRvd25NZW51UGx1Z2luLmNsb3NlKCl9fSx7a2V5OiJvbkNvbXBvbmVudENoYW5nZSIsdmFsdWU6ZnVuY3Rpb24oeSxDKXt0aGlzLnVwZGF0ZURlcGVu''@;'; + put 'put ''ZGVudENvbXBvbmVudHNWaXNpYmlsaXR5KCkseS5jb25zdHJ1Y3Rvcj09PWw1ZSYmIUMuaW5wdXRzQ291bnQmJnRoaXMuc2V0TGlzdGVuaW5nRHJvcGRvd25NZW51KCl9fSx7a2V5OiJvblNlbGVjdFVJQ2xvc2VkIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuc2V0TGlzdGVuaW5nRHJvcGRvd25N''@;'; + put 'put ''ZW51KCl9fSx7a2V5OiJzZXRMaXN0ZW5pbmdEcm9wZG93bk1lbnUiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5kcm9wZG93bk1lbnVQbHVnaW4mJnRoaXMuZHJvcGRvd25NZW51UGx1Z2luLnNldExpc3RlbmluZygpfX0se2tleToidXBkYXRlRGVwZW5kZW50Q29tcG9uZW50c1Zpc2liaWxpdHki''@;'; + put 'put ''LHZhbHVlOmZ1bmN0aW9uKCl7dmFyIEk9dGhpcy5jb21wb25lbnRzLmdldCgiZmlsdGVyX2J5X2NvbmRpdGlvbiIpLmdldFN0YXRlKCkuY29tbWFuZCxqPVt0aGlzLmNvbXBvbmVudHMuZ2V0KCJmaWx0ZXJfYnlfY29uZGl0aW9uMiIpLHRoaXMuY29tcG9uZW50cy5nZXQoImZpbHRlcl9vcGVy''@;'; + put 'put ''YXRvcnMiKV07SS5zaG93T3BlcmF0b3JzP3RoaXMuc2hvd0NvbXBvbmVudHMuYXBwbHkodGhpcyxqKTp0aGlzLmhpZGVDb21wb25lbnRzLmFwcGx5KHRoaXMsail9fSx7a2V5OiJvbkFmdGVyR2V0Q29sSGVhZGVyIix2YWx1ZTpmdW5jdGlvbih5LEMpe3ZhciBJPXRoaXMuaG90LnRvUGh5c2lj''@;'; + put 'put ''YWxDb2x1bW4oeSk7dGhpcy5lbmFibGVkJiZ0aGlzLmNvbmRpdGlvbkNvbGxlY3Rpb24uaGFzQ29uZGl0aW9ucyhJKT9PMChDLCJodEZpbHRlcnNBY3RpdmUiKTpwbChDLCJodEZpbHRlcnNBY3RpdmUiKX19LHtrZXk6Im9uVGFibGVDbGljayIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEM9U3Yo''@;'; + put 'put ''eS50YXJnZXQsIlRIIik7aWYoQyl7dmFyIEk9dGhpcy5ob3QuZ2V0Q29vcmRzKEMpLmNvbCxqPXRoaXMuaG90LnRvUGh5c2ljYWxDb2x1bW4oSSk7dGhpcy5sYXN0U2VsZWN0ZWRDb2x1bW49e3Zpc3VhbEluZGV4OkkscGh5c2ljYWxJbmRleDpqfX19fSx7a2V5OiJfY3JlYXRlRGF0YUZpbHRl''@;'; + put 'put ''ciIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzLEM9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOnRoaXMuY29uZGl0aW9uQ29sbGVjdGlvbjtyZXR1cm4gbmV3IExUZShDLGZ1bmN0aW9uKEkpe3JldHVybiB5LmdldERhdGFNYXBBdENv''@;'; + put 'put ''bHVtbihJKX0pfX0se2tleToidXBkYXRlQ29tcG9uZW50cyIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEM7aWYobnVsbCE9PShDPXRoaXMuZHJvcGRvd25NZW51UGx1Z2luKSYmdm9pZCAwIT09QyYmQy5lbmFibGVkKXt2YXIgST15LmVkaXRlZENvbmRpdGlvblN0YWNrLGo9SS5jb25kaXRpb25z''@;'; + put 'put ''LHVlPUkuY29sdW1uLF9lPWouZmlsdGVyKGZ1bmN0aW9uKEtlKXtyZXR1cm4gS2UubmFtZT09PWlNfSksQmU9ai5maWx0ZXIoZnVuY3Rpb24oS2Upe3JldHVybiBLZS5uYW1lIT09aU19KTtpZihfZS5sZW5ndGg+PTJ8fEJlLmxlbmd0aD49MylsMShQMihCVGV8fChCVGU9ZnVuY3Rpb24gVGN0''@;'; + put 'put ''KGQsZyl7cmV0dXJuIGd8fChnPWQuc2xpY2UoMCkpLE9iamVjdC5mcmVlemUoT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZCx7cmF3Ont2YWx1ZTpPYmplY3QuZnJlZXplKGcpfX0pKX0oWyJUaGUgZmlsdGVyIGNvbmRpdGlvbnMgaGF2ZSBiZWVuIGFwcGxpZWQgcHJvcGVybHksIGJ1dCBjb3Vs''@;'; + put 'put ''ZG5cdTIwMTl0IGJlIGRpc3BsYXllZCB2aXN1YWxseS4gXG4gICAgICAgIFRoZSBvdmVyYWxsIGFtb3VudCBvZiBjb25kaXRpb25zIGV4Y2VlZCB0aGUgY2FwYWJpbGl0eSBvZiB0aGUgZHJvcGRvd24gbWVudS4gXG4gICAgICAgIEZvciBtb3JlIGRldGFpbHMgc2VlIHRoZSBkb2N1bWVudGF0''@;'; + put 'put ''aW9uLiJdLFsiVGhlIGZpbHRlciBjb25kaXRpb25zIGhhdmUgYmVlbiBhcHBsaWVkIHByb3Blcmx5LCBidXQgY291bGRuXHUyMDE5dCBiZSBkaXNwbGF5ZWQgdmlzdWFsbHkuXFx4MjBcbiAgICAgICAgVGhlIG92ZXJhbGwgYW1vdW50IG9mIGNvbmRpdGlvbnMgZXhjZWVkIHRoZSBjYXBhYmls''@;'; + put 'put ''aXR5IG9mIHRoZSBkcm9wZG93biBtZW51LlxceDIwXG4gICAgICAgIEZvciBtb3JlIGRldGFpbHMgc2VlIHRoZSBkb2N1bWVudGF0aW9uLiJdKSkpKTtlbHNle3ZhciBOZT10aGlzLmNvbmRpdGlvbkNvbGxlY3Rpb24uZ2V0T3BlcmF0aW9uKHVlKTt0aGlzLmNvbXBvbmVudHMuZ2V0KCJmaWx0''@;'; + put 'put ''ZXJfYnlfY29uZGl0aW9uIikudXBkYXRlU3RhdGUoQmVbMF0sdWUpLHRoaXMuY29tcG9uZW50cy5nZXQoImZpbHRlcl9ieV9jb25kaXRpb24yIikudXBkYXRlU3RhdGUoQmVbMV0sdWUpLHRoaXMuY29tcG9uZW50cy5nZXQoImZpbHRlcl9vcGVyYXRvcnMiKS51cGRhdGVTdGF0ZShOZSx1ZSks''@;'; + put 'put ''dGhpcy5jb21wb25lbnRzLmdldCgiZmlsdGVyX2J5X3ZhbHVlIikudXBkYXRlU3RhdGUoeSl9fX19LHtrZXk6ImdldEluZGV4ZXNPZkNvbXBvbmVudHMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9W107aWYoIXRoaXMuZHJvcGRvd25NZW51UGx1Z2luKXJldHVybiB5O2Zvcih2YXIgQz10aGlz''@;'; + put 'put ''LmRyb3Bkb3duTWVudVBsdWdpbi5tZW51LEk9YXJndW1lbnRzLmxlbmd0aCxqPW5ldyBBcnJheShJKSx1ZT0wO3VlPEk7dWUrKylqW3VlXT1hcmd1bWVudHNbdWVdO3JldHVybiBVcihqLGZ1bmN0aW9uKF9lKXtVcihDLm1lbnVJdGVtcyxmdW5jdGlvbihCZSxOZSl7QmUua2V5PT09X2UuZ2V0''@;'; + put 'put ''TWVudUl0ZW1EZXNjcmlwdG9yKCkua2V5JiZ5LnB1c2goTmUpfSl9KSx5fX0se2tleToiY2hhbmdlQ29tcG9uZW50c1Zpc2liaWxpdHkiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9IShhcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXSl8fGFyZ3VtZW50c1swXTtpZih0''@;'; + put 'put ''aGlzLmRyb3Bkb3duTWVudVBsdWdpbil7Zm9yKHZhciBDPXRoaXMuZHJvcGRvd25NZW51UGx1Z2luLm1lbnUsST1DLmhvdE1lbnUsaj1JLmdldFBsdWdpbigiaGlkZGVuUm93cyIpLHVlPWFyZ3VtZW50cy5sZW5ndGgsX2U9bmV3IEFycmF5KHVlPjE/dWUtMTowKSxCZT0xO0JlPHVlO0JlKysp''@;'; + put 'put ''X2VbQmUtMV09YXJndW1lbnRzW0JlXTt2YXIgTmU9dGhpcy5nZXRJbmRleGVzT2ZDb21wb25lbnRzLmFwcGx5KHRoaXMsX2UpO3k/ai5zaG93Um93cyhOZSk6ai5oaWRlUm93cyhOZSksSS5yZW5kZXIoKX19fSx7a2V5OiJoaWRlQ29tcG9uZW50cyIsdmFsdWU6ZnVuY3Rpb24oKXtmb3IodmFy''@;'; + put 'put ''IHk9YXJndW1lbnRzLmxlbmd0aCxDPW5ldyBBcnJheSh5KSxJPTA7STx5O0krKylDW0ldPWFyZ3VtZW50c1tJXTt0aGlzLmNoYW5nZUNvbXBvbmVudHNWaXNpYmlsaXR5LmFwcGx5KHRoaXMsWyExXS5jb25jYXQoQykpfX0se2tleToic2hvd0NvbXBvbmVudHMiLHZhbHVlOmZ1bmN0aW9uKCl7''@;'; + put 'put ''Zm9yKHZhciB5PWFyZ3VtZW50cy5sZW5ndGgsQz1uZXcgQXJyYXkoeSksST0wO0k8eTtJKyspQ1tJXT1hcmd1bWVudHNbSV07dGhpcy5jaGFuZ2VDb21wb25lbnRzVmlzaWJpbGl0eS5hcHBseSh0aGlzLFshMF0uY29uY2F0KEMpKX19LHtrZXk6ImRlc3Ryb3kiLHZhbHVlOmZ1bmN0aW9uKCl7''@;'; + put 'put ''dmFyIHk9dGhpczt0aGlzLmVuYWJsZWQmJih0aGlzLmNvbXBvbmVudHMuZm9yRWFjaChmdW5jdGlvbihDLEkpe251bGwhPT1DJiYoQy5kZXN0cm95KCkseS5jb21wb25lbnRzLnNldChJLG51bGwpKX0pLHRoaXMuY29uZGl0aW9uQ29sbGVjdGlvbi5kZXN0cm95KCksdGhpcy5jb25kaXRpb25V''@;'; + put 'put ''cGRhdGVPYnNlcnZlci5kZXN0cm95KCksdGhpcy5ob3Qucm93SW5kZXhNYXBwZXIudW5yZWdpc3Rlck1hcCh0aGlzLnBsdWdpbk5hbWUpKSxRTyhHdyhoLnByb3RvdHlwZSksImRlc3Ryb3kiLHRoaXMpLmNhbGwodGhpcyl9fV0sW3trZXk6IlBMVUdJTl9LRVkiLGdldDpmdW5jdGlvbigpe3Jl''@;'; + put 'put ''dHVybiJmaWx0ZXJzIn19LHtrZXk6IlBMVUdJTl9QUklPUklUWSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDI1MH19LHtrZXk6IlBMVUdJTl9ERVBTIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm5bInBsdWdpbjpEcm9wZG93bk1lbnUiLCJwbHVnaW46SGlkZGVuUm93cyIsImNlbGwtdHlwZTpjaGVj''@;'; + put 'put ''a2JveCJdfX1dKSxofShZcyk7ZnVuY3Rpb24gVlRlKGQsZyl7dmFyIGg9T2JqZWN0LmtleXMoZCk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHY9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhkKTtnJiYodj12LmZpbHRlcihmdW5jdGlvbih5KXtyZXR1cm4gT2Jq''@;'; + put 'put ''ZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLHkpLmVudW1lcmFibGV9KSksaC5wdXNoLmFwcGx5KGgsdil9cmV0dXJuIGh9ZnVuY3Rpb24gSXooZCl7Zm9yKHZhciBnPTE7Zzxhcmd1bWVudHMubGVuZ3RoO2crKyl7dmFyIGg9bnVsbCE9YXJndW1lbnRzW2ddP2FyZ3VtZW50c1tnXTp7''@;'; + put 'put ''fTtnJTI/VlRlKE9iamVjdChoKSwhMCkuZm9yRWFjaChmdW5jdGlvbih2KXtHY3QoZCx2LGhbdl0pfSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhoKSk6VlRlKE9iamVj''@;'; + put 'put ''dChoKSkuZm9yRWFjaChmdW5jdGlvbih2KXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoaCx2KSl9KX1yZXR1cm4gZH1mdW5jdGlvbiBHY3QoZCxnLGgpe3JldHVybiBnIGluIGQ/T2JqZWN0LmRlZmluZVByb3BlcnR5KGQsZyx7dmFs''@;'; + put 'put ''dWU6aCxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmRbZ109aCxkfXZhciBqVGU9ImludGVybmFsLXVzZS1pbi1oYW5kc29udGFibGUiLFdjdD17bGljZW5zZUtleTpqVGUsdXNlQXJyYXlBcml0aG1ldGljOiEwLHVzZUNvbHVtbkluZGV4OiExLHVzZVN0YXRz''@;'; + put 'put ''OiExLGV2YWx1YXRlTnVsbFRvWmVybzohMCxwcmVjaXNpb25FcHNpbG9uOjFlLTEzLHByZWNpc2lvblJvdW5kaW5nOjE0LHNtYXJ0Um91bmRpbmc6ITAsbGVhcFllYXIxOTAwOiEwLG51bGxEYXRlOnt5ZWFyOjE4OTksbW9udGg6MTIsZGF5OjMxfSxudWxsWWVhcjozMCxkYXRlRm9ybWF0czpb''@;'; + put 'put ''IkREL01NL1lZWVkiLCJERC9NTS9ZWSJdLHRpbWVGb3JtYXRzOlsiaGg6bW0iLCJoaDptbTpzcy5zc3MiXSxtYXRjaFdob2xlQ2VsbDohMCx1c2VSZWd1bGFyRXhwcmVzc2lvbnM6ITEsdXNlV2lsZGNhcmRzOiEwLGZ1bmN0aW9uQXJnU2VwYXJhdG9yOiIsIix0aG91c2FuZFNlcGFyYXRvcjoi''@;'; + put 'put ''IixkZWNpbWFsU2VwYXJhdG9yOiIuIixsYW5ndWFnZToiZW5HQiJ9O2Z1bmN0aW9uIFpUZShkKXt2YXIgZyxoO3JldHVybnttYXhDb2x1bW5zOmQubWF4Q29sdW1ucyxtYXhSb3dzOmQubWF4Um93cyxsYW5ndWFnZTpudWxsPT09KGc9ZFt1M10pfHx2b2lkIDA9PT1nfHxudWxsPT09KGg9Zy5s''@;'; + put 'put ''YW5ndWFnZSl8fHZvaWQgMD09PWg/dm9pZCAwOmgubGFuZ0NvZGV9fWZ1bmN0aW9uIHpUZShkKXtyZXR1cm4gT2JqZWN0LmtleXMoZCkucmVkdWNlKGZ1bmN0aW9uKGcsaCl7cmV0dXJuImh5cGVyZm9ybXVsYSIhPT1oJiYoZ1toXT1kW2hdKSxnfSx7fSl9ZnVuY3Rpb24geDVlKGQpe3JldHVy''@;'; + put 'put ''bih4NWU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZyl7cmV0dXJuIHR5cGVvZiBnfTpmdW5jdGlvbihnKXtyZXR1cm4gZyYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZy5jb25zdHJ1Y3Rvcj09PVN5bWJv''@;'; + put 'put ''bCYmZyE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGd9KShkKX1mdW5jdGlvbiBwbmUoKXt2YXIgZD0iZW5naW5lX3JlbGF0aW9uc2hpcCIsZz1McCh1Myk7cmV0dXJuIGcuaGFzSXRlbShkKXx8Zy5yZWdpc3RlcihkLG5ldyBNYXApLGcuZ2V0SXRlbShkKX1mdW5jdGlvbiBU''@;'; + put 'put ''NWUoKXt2YXIgZD0ic2hhcmVkX2VuZ2luZV91c2FnZSIsZz1McCh1Myk7cmV0dXJuIGcuaGFzSXRlbShkKXx8Zy5yZWdpc3RlcihkLG5ldyBNYXApLGcuZ2V0SXRlbShkKX1mdW5jdGlvbiBHVGUoZCl7dmFyIGcsaD1wbmUoKSx2PTA9PT1oLnNpemU/W106QXJyYXkuZnJvbShudWxsIT09KGc9''@;'; + put 'put ''aC5nZXQoZCkpJiZ2b2lkIDAhPT1nP2c6W10pO3JldHVybiBuZXcgTWFwKHYubWFwKGZ1bmN0aW9uKHkpe3JldHVyblt5LmdldFBsdWdpbigiZm9ybXVsYXMiKS5zaGVldElkLHldfSkpfWZ1bmN0aW9uIFdUZShkLGcpe2lmKGQpe3ZhciBoPXBuZSgpLHY9aC5nZXQoZCkseT1UNWUoKSxDPXku''@;'; + put 'put ''Z2V0KGQpO3YmJnYuaW5jbHVkZXMoZykmJih2LnNwbGljZSh2LmluZGV4T2YoZyksMSksMD09PXYubGVuZ3RoJiZoLmRlbGV0ZShkKSksQyYmQy5pbmNsdWRlcyhnLmd1aWQpJiYoQy5zcGxpY2UoQy5pbmRleE9mKGcuZ3VpZCksMSksMD09PUMubGVuZ3RoJiYoeS5kZWxldGUoZCksZC5kZXN0''@;'; + put 'put ''cm95KCkpKX19ZnVuY3Rpb24gcWN0KGQsZyl7cmV0dXJuKGExKGcpfHwhZC5kb2VzU2hlZXRFeGlzdChnKSkmJihnPWQuYWRkU2hlZXQoZykpLGd9ZnVuY3Rpb24gWVRlKGQpe3JldHVybiJzdHJpbmciPT10eXBlb2YgZCYmIiciPT09ZC5jaGFyQXQoMCkmJiI9Ij09PWQuY2hhckF0KDEpfWZ1''@;'; + put 'put ''bmN0aW9uIFVUZShkLGcpe3ZhciBoPU9iamVjdC5rZXlzKGQpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciB2PU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZCk7ZyYmKHY9di5maWx0ZXIoZnVuY3Rpb24oeSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURl''@;'; + put 'put ''c2NyaXB0b3IoZCx5KS5lbnVtZXJhYmxlfSkpLGgucHVzaC5hcHBseShoLHYpfXJldHVybiBofWZ1bmN0aW9uIFFUZShkKXtmb3IodmFyIGc9MTtnPGFyZ3VtZW50cy5sZW5ndGg7ZysrKXt2YXIgaD1udWxsIT1hcmd1bWVudHNbZ10/YXJndW1lbnRzW2ddOnt9O2clMj9VVGUoT2JqZWN0KGgp''@;'; + put 'put ''LCEwKS5mb3JFYWNoKGZ1bmN0aW9uKHYpe2duZShkLHYsaFt2XSl9KTpPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhkLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKGgpKTpVVGUoT2JqZWN0KGgpKS5mb3JFYWNoKGZ1bmN0''@;'; + put 'put ''aW9uKHYpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihoLHYpKX0pfXJldHVybiBkfWZ1bmN0aW9uIER6KGQpe3JldHVybihEej0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRv''@;'; + put 'put ''cj9mdW5jdGlvbihnKXtyZXR1cm4gdHlwZW9mIGd9OmZ1bmN0aW9uKGcpe3JldHVybiBnJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZnLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZnIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgZ30pKGQpfWZ1bmN0aW9uIEpPKGQsZyl7''@;'; + put 'put ''cmV0dXJuIGZ1bmN0aW9uIGxmdChkKXtpZihBcnJheS5pc0FycmF5KGQpKXJldHVybiBkfShkKXx8ZnVuY3Rpb24gYWZ0KGQsZyl7dmFyIGg9bnVsbD09ZD9udWxsOiJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZkW1N5bWJvbC5pdGVyYXRvcl18fGRbIkBAaXRlcmF0b3IiXTtpZihudWxs''@;'; + put 'put ''IT1oKXt2YXIgSSxqLHY9W10seT0hMCxDPSExO3RyeXtmb3IoaD1oLmNhbGwoZCk7ISh5PShJPWgubmV4dCgpKS5kb25lKSYmKHYucHVzaChJLnZhbHVlKSwhZ3x8di5sZW5ndGghPT1nKTt5PSEwKTt9Y2F0Y2godWUpe0M9ITAsaj11ZX1maW5hbGx5e3RyeXsheSYmbnVsbCE9aC5yZXR1cm4m''@;'; + put 'put ''JmgucmV0dXJuKCl9ZmluYWxseXtpZihDKXRocm93IGp9fXJldHVybiB2fX0oZCxnKXx8SlRlKGQsZyl8fGZ1bmN0aW9uIG9mdCgpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBi''@;'; + put 'put ''ZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9ZnVuY3Rpb24gSlRlKGQsZyl7aWYoZCl7aWYoInN0cmluZyI9PXR5cGVvZiBkKXJldHVybiBJNWUoZCxnKTt2YXIgaD1PYmplY3QucHJvdG90eXBlLnRvU3Ry''@;'; + put 'put ''aW5nLmNhbGwoZCkuc2xpY2UoOCwtMSk7aWYoIk9iamVjdCI9PT1oJiZkLmNvbnN0cnVjdG9yJiYoaD1kLmNvbnN0cnVjdG9yLm5hbWUpLCJNYXAiPT09aHx8IlNldCI9PT1oKXJldHVybiBBcnJheS5mcm9tKGQpO2lmKCJBcmd1bWVudHMiPT09aHx8L14oPzpVaXxJKW50KD86OHwxNnwzMiko''@;'; + put 'put ''PzpDbGFtcGVkKT9BcnJheSQvLnRlc3QoaCkpcmV0dXJuIEk1ZShkLGcpfX1mdW5jdGlvbiBJNWUoZCxnKXsobnVsbD09Z3x8Zz5kLmxlbmd0aCkmJihnPWQubGVuZ3RoKTtmb3IodmFyIGg9MCx2PW5ldyBBcnJheShnKTtoPGc7aCsrKXZbaF09ZFtoXTtyZXR1cm4gdn1mdW5jdGlvbiBzZnQo''@;'; + put 'put ''ZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX1mdW5jdGlvbiBYVGUoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxl''@;'; + put 'put ''fHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX1mdW5jdGlvbiBvTSgpe3JldHVybiBvTT0idW5kZWZpbmVkIiE9dHlwZW9mIFJlZmxlY3QmJlJlZmxlY3QuZ2V0P1JlZmxlY3QuZ2V0LmJp''@;'; + put 'put ''bmQoKTpmdW5jdGlvbihnLGgsdil7dmFyIHk9Y2Z0KGcsaCk7aWYoeSl7dmFyIEM9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih5LGgpO3JldHVybiBDLmdldD9DLmdldC5jYWxsKGFyZ3VtZW50cy5sZW5ndGg8Mz9nOnYpOkMudmFsdWV9fSxvTS5hcHBseSh0aGlzLGFyZ3VtZW50''@;'; + put 'put ''cyl9ZnVuY3Rpb24gY2Z0KGQsZyl7Zm9yKDshT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGQsZykmJm51bGwhPT0oZD1HdihkKSk7KTtyZXR1cm4gZH1mdW5jdGlvbiBENWUoZCxnKXtyZXR1cm4oRDVlPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90''@;'; + put 'put ''eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHYseSl7cmV0dXJuIHYuX19wcm90b19fPXksdn0pKGQsZyl9ZnVuY3Rpb24gZGZ0KGQsZyl7aWYoZyYmKCJvYmplY3QiPT09RHooZyl8fCJmdW5jdGlvbiI9PXR5cGVvZiBnKSlyZXR1cm4gZztpZih2b2lkIDAhPT1nKXRocm93IG5ldyBUeXBlRXJyb3Io''@;'; + put 'put ''IkRlcml2ZWQgY29uc3RydWN0b3JzIG1heSBvbmx5IHJldHVybiBvYmplY3Qgb3IgdW5kZWZpbmVkIik7cmV0dXJuIGFNKGQpfWZ1bmN0aW9uIGFNKGQpe2lmKHZvaWQgMD09PWQpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIo''@;'; + put 'put ''KSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4gZH1mdW5jdGlvbiBHdihkKXtyZXR1cm4oR3Y9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24oaCl7cmV0dXJuIGguX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YoaCl9''@;'; + put 'put ''KShkKX1mdW5jdGlvbiBnbmUoZCxnLGgpe3JldHVybiBnIGluIGQ/T2JqZWN0LmRlZmluZVByb3BlcnR5KGQsZyx7dmFsdWU6aCxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmRbZ109aCxkfWZ1bmN0aW9uIEw1ZShkLGcsaCl7KGZ1bmN0aW9uIGdmdChkLGcp''@;'; + put 'put ''e2lmKGcuaGFzKGQpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBpbml0aWFsaXplIHRoZSBzYW1lIHByaXZhdGUgZWxlbWVudHMgdHdpY2Ugb24gYW4gb2JqZWN0Iil9KShkLGcpLGcuc2V0KGQsaCl9ZnVuY3Rpb24gWE8oZCxnLGgpe3JldHVybiBmdW5jdGlvbiBtZnQoZCxnLGgpe2lm''@;'; + put 'put ''KGcuc2V0KWcuc2V0LmNhbGwoZCxoKTtlbHNle2lmKCFnLndyaXRhYmxlKXRocm93IG5ldyBUeXBlRXJyb3IoImF0dGVtcHRlZCB0byBzZXQgcmVhZCBvbmx5IHByaXZhdGUgZmllbGQiKTtnLnZhbHVlPWh9fShkLEtUZShkLGcsInNldCIpLGgpLGh9ZnVuY3Rpb24gS08oZCxnKXtyZXR1cm4g''@;'; + put 'put ''ZnVuY3Rpb24gdmZ0KGQsZyl7cmV0dXJuIGcuZ2V0P2cuZ2V0LmNhbGwoZCk6Zy52YWx1ZX0oZCxLVGUoZCxnLCJnZXQiKSl9ZnVuY3Rpb24gS1RlKGQsZyxoKXtpZighZy5oYXMoZCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiYXR0ZW1wdGVkIHRvICIraCsiIHByaXZhdGUgZmllbGQgb24gbm9u''@;'; + put 'put ''LWluc3RhbmNlIik7cmV0dXJuIGcuZ2V0KGQpfXZhciB1Mz0iZm9ybXVsYXMiO3pvLmdldFNpbmdsZXRvbigpLnJlZ2lzdGVyKCJhZnRlck5hbWVkRXhwcmVzc2lvbkFkZGVkIiksem8uZ2V0U2luZ2xldG9uKCkucmVnaXN0ZXIoImFmdGVyTmFtZWRFeHByZXNzaW9uUmVtb3ZlZCIpLHpvLmdl''@;'; + put 'put ''dFNpbmdsZXRvbigpLnJlZ2lzdGVyKCJhZnRlclNoZWV0QWRkZWQiKSx6by5nZXRTaW5nbGV0b24oKS5yZWdpc3RlcigiYWZ0ZXJTaGVldFJlbW92ZWQiKSx6by5nZXRTaW5nbGV0b24oKS5yZWdpc3RlcigiYWZ0ZXJTaGVldFJlbmFtZWQiKSx6by5nZXRTaW5nbGV0b24oKS5yZWdpc3Rlcigi''@;'; + put 'put ''YWZ0ZXJGb3JtdWxhc1ZhbHVlc1VwZGF0ZSIpO3ZhciAkTz1mdW5jdGlvbihnKXtyZXR1cm4iVW5kb1JlZG8udW5kbyI9PT1nfHwiVW5kb1JlZG8ucmVkbyI9PT1nfHwiYXV0byI9PT1nfSxsTT1uZXcgV2Vha01hcCxPNWU9bmV3IFdlYWtNYXAsTHo9bmV3IFdlYWtNYXAseWZ0PWZ1bmN0aW9u''@;'; + put 'put ''KGQpeyFmdW5jdGlvbiBmZnQoZCxnKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZyYmbnVsbCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTtkLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGcmJmcucHJv''@;'; + put 'put ''dG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6ZCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZyYmRDVlKGQsZyl9KGgsZCk7dmFyIGc9ZnVuY3Rpb24gaGZ0KGQpe3ZhciBnPWZ1bmN0aW9u''@;'; + put 'put ''IHBmdCgpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0fHxSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBQcm94eSlyZXR1cm4hMDt0cnl7cmV0dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2Yu''@;'; + put 'put ''Y2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLGZ1bmN0aW9uKCl7fSkpLCEwfWNhdGNoKGQpe3JldHVybiExfX0oKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgeSx2PUd2KGQpO2lmKGcpe3ZhciBDPUd2KHRoaXMpLmNvbnN0cnVjdG9yO3k9UmVmbGVjdC5jb25zdHJ1Y3Qodixhcmd1''@;'; + put 'put ''bWVudHMsQyl9ZWxzZSB5PXYuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBkZnQodGhpcyx5KX19KGgpO2Z1bmN0aW9uIGgoKXt2YXIgdjtzZnQodGhpcyxoKTtmb3IodmFyIHk9YXJndW1lbnRzLmxlbmd0aCxDPW5ldyBBcnJheSh5KSxJPTA7STx5O0krKylDW0ldPWFyZ3VtZW50c1tJ''@;'; + put 'put ''XTtyZXR1cm4gTDVlKGFNKHY9Zy5jYWxsLmFwcGx5KGcsW3RoaXNdLmNvbmNhdChDKSkpLGxNLHt3cml0YWJsZTohMCx2YWx1ZTohMX0pLEw1ZShhTSh2KSxPNWUse3dyaXRhYmxlOiEwLHZhbHVlOiExfSksTDVlKGFNKHYpLEx6LHt3cml0YWJsZTohMCx2YWx1ZTpbWyJ2YWx1ZXNVcGRhdGVk''@;'; + put 'put ''IixmdW5jdGlvbigpe3ZhciBqO3JldHVybihqPXYpLm9uRW5naW5lVmFsdWVzVXBkYXRlZC5hcHBseShqLGFyZ3VtZW50cyl9XSxbIm5hbWVkRXhwcmVzc2lvbkFkZGVkIixmdW5jdGlvbigpe3ZhciBqO3JldHVybihqPXYpLm9uRW5naW5lTmFtZWRFeHByZXNzaW9uc0FkZGVkLmFwcGx5KGos''@;'; + put 'put ''YXJndW1lbnRzKX1dLFsibmFtZWRFeHByZXNzaW9uUmVtb3ZlZCIsZnVuY3Rpb24oKXt2YXIgajtyZXR1cm4oaj12KS5vbkVuZ2luZU5hbWVkRXhwcmVzc2lvbnNSZW1vdmVkLmFwcGx5KGosYXJndW1lbnRzKX1dLFsic2hlZXRBZGRlZCIsZnVuY3Rpb24oKXt2YXIgajtyZXR1cm4oaj12KS5v''@;'; + put 'put ''bkVuZ2luZVNoZWV0QWRkZWQuYXBwbHkoaixhcmd1bWVudHMpfV0sWyJzaGVldFJlbmFtZWQiLGZ1bmN0aW9uKCl7dmFyIGo7cmV0dXJuKGo9dikub25FbmdpbmVTaGVldFJlbmFtZWQuYXBwbHkoaixhcmd1bWVudHMpfV0sWyJzaGVldFJlbW92ZWQiLGZ1bmN0aW9uKCl7dmFyIGo7cmV0dXJu''@;'; + put 'put ''KGo9dikub25FbmdpbmVTaGVldFJlbW92ZWQuYXBwbHkoaixhcmd1bWVudHMpfV1dfSksZ25lKGFNKHYpLCJzdGF0aWNSZWdpc3RlciIsTHAoImZvcm11bGFzIikpLGduZShhTSh2KSwiZW5naW5lIixudWxsKSxnbmUoYU0odiksInNoZWV0TmFtZSIsbnVsbCksdn1yZXR1cm4gZnVuY3Rpb24g''@;'; + put 'put ''dWZ0KGQsZyxoKXtnJiZYVGUoZC5wcm90b3R5cGUsZyksaCYmWFRlKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGgsW3trZXk6InNoZWV0SWQiLGdldDpmdW5jdGlvbigpe3JldHVybiBudWxsPT09dGhpcy5zaGVldE5hbWU/bnVsbDp0''@;'; + put 'put ''aGlzLmVuZ2luZS5nZXRTaGVldElkKHRoaXMuc2hlZXROYW1lKX19LHtrZXk6ImlzRW5hYmxlZCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4hIXRoaXMuaG90LmdldFNldHRpbmdzKClbdTNdfX0se2tleToiZW5hYmxlUGx1Z2luIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5LEM9dGhpcztpZigh''@;'; + put 'put ''dGhpcy5lbmFibGVkKXtpZih0aGlzLmVuZ2luZT1udWxsIT09KHk9ZnVuY3Rpb24gUWN0KGQpe3ZhciB5LGc9ZC5nZXRTZXR0aW5ncygpLGg9Z1t1M10sdj1udWxsPT1oP3ZvaWQgMDpoLmVuZ2luZTtpZighMD09PWh8fGExKHYpKXJldHVybiBudWxsO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiB2''@;'; + put 'put ''Lmh5cGVyZm9ybXVsYXx8ImZ1bmN0aW9uIj09dHlwZW9mIHYpcmV0dXJuIGZ1bmN0aW9uIEpjdChkLGcsaCl7dmFyIHY9Z1t1M10seT1mdW5jdGlvbiBZY3QoZCl7dmFyIGcsaD1kW3UzXSx2PXpUZShudWxsIT1oJiZudWxsIT09KGc9aC5lbmdpbmUpJiZ2b2lkIDAhPT1nJiZnLmh5cGVyZm9y''@;'; + put 'put ''bXVsYT9oLmVuZ2luZTp7fSkseT1aVGUoZCk7cmV0dXJuIEl6KEl6KEl6KHt9LFdjdCksdikseSl9KGcpLEM9cG5lKCksST1UNWUoKTsoZnVuY3Rpb24gWGN0KGQsZyl7ZyYmZy5mb3JFYWNoKGZ1bmN0aW9uKGgpe3ZhciB2PWgubmFtZSx5PWgucGx1Z2luLEM9aC50cmFuc2xhdGlvbnM7dHJ5''@;'; + put 'put ''e2QucmVnaXN0ZXJGdW5jdGlvbih2LHksQyl9Y2F0Y2goSSl7bDEoSS5tZXNzYWdlKX19KX0pKGQsdi5mdW5jdGlvbnMpLGZ1bmN0aW9uIEtjdChkLGcpe2lmKGcpe3ZhciBoPWcubGFuZ0NvZGU7dHJ5e2QucmVnaXN0ZXJMYW5ndWFnZShoLGcpfWNhdGNoKHYpe2wxKHYubWVzc2FnZSl9fX0o''@;'; + put 'put ''ZCx2Lmxhbmd1YWdlKTt2YXIgaj1kLmJ1aWxkRW1wdHkoeSk7cmV0dXJuIEMuc2V0KGosW2hdKSxJLnNldChqLFtoLmd1aWRdKSxmdW5jdGlvbiAkY3QoZCxnKXtnJiYoZC5zdXNwZW5kRXZhbHVhdGlvbigpLGcuZm9yRWFjaChmdW5jdGlvbihoKXt2YXIgdj1oLm5hbWUseT1oLmV4cHJlc3Np''@;'; + put 'put ''b24sQz1oLnNjb3BlLEk9aC5vcHRpb25zO3RyeXtkLmFkZE5hbWVkRXhwcmVzc2lvbih2LHksQyxJKX1jYXRjaChqKXtsMShqLm1lc3NhZ2UpfX0pLGQucmVzdW1lRXZhbHVhdGlvbigpKX0oaix2Lm5hbWVkRXhwcmVzc2lvbnMpLGoub24oInNoZWV0QWRkZWQiLGZ1bmN0aW9uKCl7ai5yZWJ1''@;'; + put 'put ''aWxkQW5kUmVjYWxjdWxhdGUoKX0pLGoub24oInNoZWV0UmVtb3ZlZCIsZnVuY3Rpb24oKXtqLnJlYnVpbGRBbmRSZWNhbGN1bGF0ZSgpfSksan0obnVsbCE9PSh5PXYuaHlwZXJmb3JtdWxhKSYmdm9pZCAwIT09eT95OnYsZyxkKTtpZigib2JqZWN0Ij09PXg1ZSh2KSYmYTEodi5oeXBlcmZv''@;'; + put 'put ''cm11bGEpKXt2YXIgQz1wbmUoKSxJPVQ1ZSgpLmdldCh2KTtyZXR1cm4gQy5oYXModil8fEMuc2V0KHYsW10pLEMuZ2V0KHYpLnB1c2goZCksSSYmSS5wdXNoKGQuZ3VpZCksdi5nZXRDb25maWcoKS5saWNlbnNlS2V5fHx2LnVwZGF0ZUNvbmZpZyh7bGljZW5zZUtleTpqVGV9KSx2fXJldHVy''@;'; + put 'put ''biBudWxsfSh0aGlzLmhvdCkpJiZ2b2lkIDAhPT15P3k6dGhpcy5lbmdpbmUsIXRoaXMuZW5naW5lKXJldHVybiB2b2lkIGwxKCJNaXNzaW5nIHRoZSByZXF1aXJlZCBgZW5naW5lYCBrZXkgaW4gdGhlIEZvcm11bGFzIHNldHRpbmdzLiBQbGVhc2UgZmlsbCBpdCB3aXRoIGVpdGhlciBhbiBl''@;'; + put 'put ''bmdpbmUgY2xhc3Mgb3IgYW4gZW5naW5lIGluc3RhbmNlLiIpO2lmKG51bGwhPT10aGlzLnNoZWV0TmFtZSYmIXRoaXMuZW5naW5lLmRvZXNTaGVldEV4aXN0KHRoaXMuc2hlZXROYW1lKSl7dmFyIEk9dGhpcy5hZGRTaGVldCh0aGlzLnNoZWV0TmFtZSx0aGlzLmhvdC5nZXRTb3VyY2VEYXRh''@;'; + put 'put ''QXJyYXkoKSk7ITEhPT1JJiYodGhpcy5zaGVldE5hbWU9SSl9dGhpcy5hZGRIb29rKCJiZWZvcmVMb2FkRGF0YSIsZnVuY3Rpb24oKXtyZXR1cm4gQy5vbkJlZm9yZUxvYWREYXRhLmFwcGx5KEMsYXJndW1lbnRzKX0pLHRoaXMuYWRkSG9vaygiYWZ0ZXJMb2FkRGF0YSIsZnVuY3Rpb24oKXty''@;'; + put 'put ''ZXR1cm4gQy5vbkFmdGVyTG9hZERhdGEuYXBwbHkoQyxhcmd1bWVudHMpfSksdGhpcy5hZGRIb29rKCJtb2RpZnlEYXRhIixmdW5jdGlvbigpe3JldHVybiBDLm9uTW9kaWZ5RGF0YS5hcHBseShDLGFyZ3VtZW50cyl9KSx0aGlzLmFkZEhvb2soIm1vZGlmeVNvdXJjZURhdGEiLGZ1bmN0aW9u''@;'; + put 'put ''KCl7cmV0dXJuIEMub25Nb2RpZnlTb3VyY2VEYXRhLmFwcGx5KEMsYXJndW1lbnRzKX0pLHRoaXMuYWRkSG9vaygiYmVmb3JlVmFsaWRhdGUiLGZ1bmN0aW9uKCl7cmV0dXJuIEMub25CZWZvcmVWYWxpZGF0ZS5hcHBseShDLGFyZ3VtZW50cyl9KSx0aGlzLmFkZEhvb2soImFmdGVyU2V0U291''@;'; + put 'put ''cmNlRGF0YUF0Q2VsbCIsZnVuY3Rpb24oKXtyZXR1cm4gQy5vbkFmdGVyU2V0U291cmNlRGF0YUF0Q2VsbC5hcHBseShDLGFyZ3VtZW50cyl9KSx0aGlzLmFkZEhvb2soImFmdGVyU2V0RGF0YUF0Q2VsbCIsZnVuY3Rpb24oKXtyZXR1cm4gQy5vbkFmdGVyU2V0RGF0YUF0Q2VsbC5hcHBseShD''@;'; + put 'put ''LGFyZ3VtZW50cyl9KSx0aGlzLmFkZEhvb2soImFmdGVyU2V0RGF0YUF0Um93UHJvcCIsZnVuY3Rpb24oKXtyZXR1cm4gQy5vbkFmdGVyU2V0RGF0YUF0Q2VsbC5hcHBseShDLGFyZ3VtZW50cyl9KSx0aGlzLmFkZEhvb2soImJlZm9yZUNyZWF0ZVJvdyIsZnVuY3Rpb24oKXtyZXR1cm4gQy5v''@;'; + put 'put ''bkJlZm9yZUNyZWF0ZVJvdy5hcHBseShDLGFyZ3VtZW50cyl9KSx0aGlzLmFkZEhvb2soImJlZm9yZUNyZWF0ZUNvbCIsZnVuY3Rpb24oKXtyZXR1cm4gQy5vbkJlZm9yZUNyZWF0ZUNvbC5hcHBseShDLGFyZ3VtZW50cyl9KSx0aGlzLmFkZEhvb2soImFmdGVyQ3JlYXRlUm93IixmdW5jdGlv''@;'; + put 'put ''bigpe3JldHVybiBDLm9uQWZ0ZXJDcmVhdGVSb3cuYXBwbHkoQyxhcmd1bWVudHMpfSksdGhpcy5hZGRIb29rKCJhZnRlckNyZWF0ZUNvbCIsZnVuY3Rpb24oKXtyZXR1cm4gQy5vbkFmdGVyQ3JlYXRlQ29sLmFwcGx5KEMsYXJndW1lbnRzKX0pLHRoaXMuYWRkSG9vaygiYmVmb3JlUmVtb3Zl''@;'; + put 'put ''Um93IixmdW5jdGlvbigpe3JldHVybiBDLm9uQmVmb3JlUmVtb3ZlUm93LmFwcGx5KEMsYXJndW1lbnRzKX0pLHRoaXMuYWRkSG9vaygiYmVmb3JlUmVtb3ZlQ29sIixmdW5jdGlvbigpe3JldHVybiBDLm9uQmVmb3JlUmVtb3ZlQ29sLmFwcGx5KEMsYXJndW1lbnRzKX0pLHRoaXMuYWRkSG9v''@;'; + put 'put ''aygiYWZ0ZXJSZW1vdmVSb3ciLGZ1bmN0aW9uKCl7cmV0dXJuIEMub25BZnRlclJlbW92ZVJvdy5hcHBseShDLGFyZ3VtZW50cyl9KSx0aGlzLmFkZEhvb2soImFmdGVyUmVtb3ZlQ29sIixmdW5jdGlvbigpe3JldHVybiBDLm9uQWZ0ZXJSZW1vdmVDb2wuYXBwbHkoQyxhcmd1bWVudHMpfSks''@;'; + put 'put ''dGhpcy5hZGRIb29rKCJiZWZvcmVVbmRvIixmdW5jdGlvbihqKXsicm93X21vdmUiIT09KG51bGw9PWo/dm9pZCAwOmouYWN0aW9uVHlwZSkmJkMuZW5naW5lLnVuZG8oKX0pLHRoaXMuYWRkSG9vaygiYmVmb3JlUmVkbyIsZnVuY3Rpb24oail7InJvd19tb3ZlIiE9PShudWxsPT1qP3ZvaWQg''@;'; + put 'put ''MDpqLmFjdGlvblR5cGUpJiZDLmVuZ2luZS5yZWRvKCl9KSx0aGlzLmFkZEhvb2soImFmdGVyRGV0YWNoQ2hpbGQiLGZ1bmN0aW9uKCl7cmV0dXJuIEMub25BZnRlckRldGFjaENoaWxkLmFwcGx5KEMsYXJndW1lbnRzKX0pLHRoaXMuYWRkSG9vaygiYmVmb3JlQXV0b2ZpbGwiLGZ1bmN0aW9u''@;'; + put 'put ''KCl7cmV0dXJuIEMub25CZWZvcmVBdXRvZmlsbC5hcHBseShDLGFyZ3VtZW50cyl9KSxLTyh0aGlzLEx6KS5mb3JFYWNoKGZ1bmN0aW9uKGope3ZhciB1ZT1KTyhqLDIpO3JldHVybiBDLmVuZ2luZS5vbih1ZVswXSx1ZVsxXSl9KSxvTShHdihoLnByb3RvdHlwZSksImVuYWJsZVBsdWdpbiIs''@;'; + put 'put ''dGhpcykuY2FsbCh0aGlzKX19fSx7a2V5OiJkaXNhYmxlUGx1Z2luIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXM7S08odGhpcyxMeikuZm9yRWFjaChmdW5jdGlvbihDKXt2YXIgST1KTyhDLDIpO3JldHVybiB5LmVuZ2luZS5vZmYoSVswXSxJWzFdKX0pLFdUZSh0aGlzLmVuZ2luZSx0''@;'; + put 'put ''aGlzLmhvdCksdGhpcy5lbmdpbmU9bnVsbCxvTShHdihoLnByb3RvdHlwZSksImRpc2FibGVQbHVnaW4iLHRoaXMpLmNhbGwodGhpcyl9fSx7a2V5OiJ1cGRhdGVQbHVnaW4iLHZhbHVlOmZ1bmN0aW9uKHkpe3RoaXMuZW5naW5lLnVwZGF0ZUNvbmZpZyhmdW5jdGlvbiBVY3QoZCl7dmFyIGcs''@;'; + put 'put ''aD1kW3UzXSx2PXpUZShudWxsIT1oJiZudWxsIT09KGc9aC5lbmdpbmUpJiZ2b2lkIDAhPT1nJiZnLmh5cGVyZm9ybXVsYT9oLmVuZ2luZTp7fSkseT1aVGUoZCk7cmV0dXJuIEl6KEl6KHt9LHYpLHkpfSh0aGlzLmhvdC5nZXRTZXR0aW5ncygpKSk7dmFyIEM9dGhpcy5ob3QuZ2V0U2V0dGlu''@;'; + put 'put ''Z3MoKVt1M107aWYoVG8oQykmJlRvKEMuc2hlZXROYW1lKSYmQy5zaGVldE5hbWUhPT10aGlzLnNoZWV0TmFtZSYmdGhpcy5zd2l0Y2hTaGVldChDLnNoZWV0TmFtZSksIXkuZGF0YSYmbnVsbD09PXRoaXMuc2hlZXROYW1lKXt2YXIgST10aGlzLmhvdC5nZXRTZXR0aW5ncygpW3UzXS5zaGVl''@;'; + put 'put ''dE5hbWU7SSYmdGhpcy5lbmdpbmUuZG9lc1NoZWV0RXhpc3QoSSk/dGhpcy5zd2l0Y2hTaGVldCh0aGlzLnNoZWV0TmFtZSk6dGhpcy5zaGVldE5hbWU9dGhpcy5hZGRTaGVldChudWxsIT1JP0k6dm9pZCAwLHRoaXMuaG90LmdldFNvdXJjZURhdGFBcnJheSgpKX1vTShHdihoLnByb3RvdHlw''@;'; + put 'put ''ZSksInVwZGF0ZVBsdWdpbiIsdGhpcykuY2FsbCh0aGlzLHkpfX0se2tleToiZGVzdHJveSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzO0tPKHRoaXMsTHopLmZvckVhY2goZnVuY3Rpb24oQyl7dmFyIEksaj1KTyhDLDIpO3JldHVybiBudWxsPT09KEk9eS5lbmdpbmUpfHx2b2lkIDA9''@;'; + put 'put ''PT1JP3ZvaWQgMDpJLm9mZihqWzBdLGpbMV0pfSksWE8odGhpcyxMeixudWxsKSxXVGUodGhpcy5lbmdpbmUsdGhpcy5ob3QpLHRoaXMuZW5naW5lPW51bGwsb00oR3YoaC5wcm90b3R5cGUpLCJkZXN0cm95Iix0aGlzKS5jYWxsKHRoaXMpfX0se2tleToiZ2V0UGh5c2ljYWxJbmRleFBvc2l0''@;'; + put 'put ''aW9uIix2YWx1ZTpmdW5jdGlvbih5LEMsSSxqLHVlKXtyZXR1cm4hdWUmJnk+PUk/aisoeS1JKTpDfX0se2tleToidG9QaHlzaWNhbFJvd1Bvc2l0aW9uIix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXSYmYXJndW1lbnRz''@;'; + put 'put ''WzFdO3JldHVybiB0aGlzLmdldFBoeXNpY2FsSW5kZXhQb3NpdGlvbih5LHRoaXMuaG90LnRvUGh5c2ljYWxSb3coeSksdGhpcy5ob3QuY291bnRSb3dzKCksdGhpcy5ob3QuY291bnRTb3VyY2VSb3dzKCksQyl9fSx7a2V5OiJ0b1BoeXNpY2FsQ29sdW1uUG9zaXRpb24iLHZhbHVlOmZ1bmN0''@;'; + put 'put ''aW9uKHkpe3ZhciBDPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdJiZhcmd1bWVudHNbMV07cmV0dXJuIHRoaXMuZ2V0UGh5c2ljYWxJbmRleFBvc2l0aW9uKHksdGhpcy5ob3QudG9QaHlzaWNhbENvbHVtbih5KSx0aGlzLmhvdC5jb3VudENvbHMoKSx0aGlzLmhv''@;'; + put 'put ''dC5jb3VudFNvdXJjZUNvbHMoKSxDKX19LHtrZXk6ImFkZFNoZWV0Iix2YWx1ZTpmdW5jdGlvbih5LEMpe2lmKFRvKEMpJiYhS0NlKEMpKXJldHVybiBsMSgiVGhlIHByb3ZpZGVkIGRhdGEgc2hvdWxkIGJlIGFuIGFycmF5IG9mIGFycmF5cy4iKSwhMTtpZihudWxsIT15JiZ0aGlzLmVuZ2lu''@;'; + put 'put ''ZS5kb2VzU2hlZXRFeGlzdCh5KSlyZXR1cm4gbDEoIlNoZWV0IHdpdGggdGhlIHByb3ZpZGVkIG5hbWUgYWxyZWFkeSBleGlzdHMuIiksITE7dHJ5e3ZhciBJPXRoaXMuZW5naW5lLmFkZFNoZWV0KG51bGwhPXk/eTp2b2lkIDApO3JldHVybiBDJiZ0aGlzLmVuZ2luZS5zZXRTaGVldENvbnRl''@;'; + put 'put ''bnQodGhpcy5lbmdpbmUuZ2V0U2hlZXRJZChJKSxDKSxJfWNhdGNoKGope3JldHVybiBsMShqLm1lc3NhZ2UpLCExfX19LHtrZXk6InN3aXRjaFNoZWV0Iix2YWx1ZTpmdW5jdGlvbih5KXtpZih0aGlzLmVuZ2luZS5kb2VzU2hlZXRFeGlzdCh5KSl7dGhpcy5zaGVldE5hbWU9eTt2YXIgQz10''@;'; + put 'put ''aGlzLmVuZ2luZS5nZXRTaGVldFNlcmlhbGl6ZWQodGhpcy5zaGVldElkKTtDLmxlbmd0aD4wJiZ0aGlzLmhvdC5sb2FkRGF0YShDLCIiLmNvbmNhdChzZCh1MyksIi5zd2l0Y2hTaGVldCIpKX1lbHNlIF8zZSgiVGhlIHNoZWV0IG5hbWVkIGAiLmNvbmNhdCh5LCJgIGRvZXMgbm90IGV4aXN0''@;'; + put 'put ''LCBzd2l0Y2ggYWJvcnRlZC4iKSl9fSx7a2V5OiJnZXRDZWxsVHlwZSIsdmFsdWU6ZnVuY3Rpb24oeSxDKXt2YXIgST1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06dGhpcy5zaGVldElkLGo9dGhpcy5ob3QudG9QaHlzaWNhbFJvdyh5KSx1''@;'; + put 'put ''ZT10aGlzLmhvdC50b1BoeXNpY2FsQ29sdW1uKEMpO3JldHVybiBudWxsIT09aiYmbnVsbCE9PXVlP3RoaXMuZW5naW5lLmdldENlbGxUeXBlKHtzaGVldDpJLHJvdzpqLGNvbDp1ZX0pOiJFTVBUWSJ9fSx7a2V5OiJpc0Zvcm11bGFDZWxsVHlwZSIsdmFsdWU6ZnVuY3Rpb24oeSxDKXt2YXIg''@;'; + put 'put ''ST1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06dGhpcy5zaGVldElkLGo9dGhpcy5ob3QudG9QaHlzaWNhbFJvdyh5KSx1ZT10aGlzLmhvdC50b1BoeXNpY2FsQ29sdW1uKEMpO3JldHVybiBudWxsIT09aiYmbnVsbCE9PXVlJiZ0aGlzLmVu''@;'; + put 'put ''Z2luZS5kb2VzQ2VsbEhhdmVGb3JtdWxhKHtzaGVldDpJLHJvdzpqLGNvbDp1ZX0pfX0se2tleToicmVuZGVyRGVwZW5kZW50U2hlZXRzIix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz10aGlzLEk9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0mJmFyZ3VtZW50c1sx''@;'; + put 'put ''XSxqPW5ldyBTZXQ7eS5mb3JFYWNoKGZ1bmN0aW9uKHVlKXt2YXIgX2UsQmU9bnVsbD09dWV8fG51bGw9PT0oX2U9dWUuYWRkcmVzcyl8fHZvaWQgMD09PV9lP3ZvaWQgMDpfZS5zaGVldDt2b2lkIDAhPT1CZSYmKGouaGFzKEJlKXx8ai5hZGQoQmUpKX0pLEdUZSh0aGlzLmVuZ2luZSkuZm9y''@;'; + put 'put ''RWFjaChmdW5jdGlvbih1ZSxfZSl7dmFyIEJlOyhJfHxfZSE9PUMuc2hlZXRJZCkmJmouaGFzKF9lKSYmKHVlLnJlbmRlcigpLG51bGw9PT0oQmU9dWUudmlldyl8fHZvaWQgMD09PUJlfHxCZS5hZGp1c3RFbGVtZW50c1NpemUoKSl9KX19LHtrZXk6InZhbGlkYXRlRGVwZW5kZW50Q2VsbHMi''@;'; + put 'put ''LHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPXRoaXMsST1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06W10saj1mdW5jdGlvbihCZSl7dmFyIE5lLEtlPW51bGwhPT0oTmU9bnVsbD09QmU/dm9pZCAwOkJlLmFkZHJlc3MpJiZ2b2lkIDAhPT1O''@;'; + put 'put ''ZT9OZTp7fSxkdD1LZS5yb3csT3Q9S2UuY29sLCR0PUtlLnNoZWV0O3JldHVybiBUbygkdCk/IiIuY29uY2F0KCR0LCI6IikuY29uY2F0KGR0LCJ4IikuY29uY2F0KE90KToiIn0sdWU9bmV3IFNldChJLm1hcChmdW5jdGlvbihfZSl7cmV0dXJuIGooX2UpfSkpO3kuZm9yRWFjaChmdW5jdGlv''@;'; + put 'put ''bihfZSl7dmFyIEJlLE5lLEtlPW51bGwhPT0oQmU9X2UuYWRkcmVzcykmJnZvaWQgMCE9PUJlP0JlOnt9LGR0PUtlLnJvdyxPdD1LZS5jb2wsJHQ9VG8oZHQpP0MuaG90LnRvVmlzdWFsUm93KGR0KTpudWxsLGZuPVRvKE90KT9DLmhvdC50b1Zpc3VhbENvbHVtbihPdCk6bnVsbDtpZihudWxs''@;'; + put 'put ''IT09JHQmJm51bGwhPT1mbil7dmFyIExuPW51bGw9PV9lfHxudWxsPT09KE5lPV9lLmFkZHJlc3MpfHx2b2lkIDA9PT1OZT92b2lkIDA6TmUuc2hlZXQsaXI9aihfZSk7aWYodm9pZCAwIT09TG4mJiF1ZS5oYXMoaXIpKXt2YXIgbXI9R1RlKEMuZW5naW5lKS5nZXQoTG4pO2lmKCFtcilyZXR1''@;'; + put 'put ''cm47bXIudmFsaWRhdGVDZWxsKG1yLmdldERhdGFBdENlbGwoJHQsZm4pLG1yLmdldENlbGxNZXRhKCR0LGZuKSxmdW5jdGlvbigpe30pfX19KX19LHtrZXk6InN5bmNDaGFuZ2VXaXRoRW5naW5lIix2YWx1ZTpmdW5jdGlvbih5LEMsSSl7dmFyIGo9e3Jvdzp0aGlzLnRvUGh5c2ljYWxSb3dQ''@;'; + put 'put ''b3NpdGlvbih5KSxjb2w6dGhpcy50b1BoeXNpY2FsQ29sdW1uUG9zaXRpb24oQyksc2hlZXQ6dGhpcy5zaGVldElkfTtpZih0aGlzLmVuZ2luZS5pc0l0UG9zc2libGVUb1NldENlbGxDb250ZW50cyhqKSlyZXR1cm4gdGhpcy5lbmdpbmUuc2V0Q2VsbENvbnRlbnRzKGosSSk7bDEoIk5vdCBw''@;'; + put 'put ''b3NzaWJsZSB0byBzZXQgY2VsbCBkYXRhIGF0ICIuY29uY2F0KEpTT04uc3RyaW5naWZ5KGopKSl9fSx7a2V5OiJvbkJlZm9yZVZhbGlkYXRlIix2YWx1ZTpmdW5jdGlvbih5LEMsSSl7dmFyIGo9dGhpcy5ob3QucHJvcFRvQ29sKEkpO2lmKHRoaXMuaXNGb3JtdWxhQ2VsbFR5cGUoQyxqKSl7''@;'; + put 'put ''dmFyIHVlPXtyb3c6dGhpcy5ob3QudG9QaHlzaWNhbFJvdyhDKSxjb2w6dGhpcy5ob3QudG9QaHlzaWNhbENvbHVtbihqKSxzaGVldDp0aGlzLnNoZWV0SWR9LF9lPXRoaXMuZW5naW5lLmdldENlbGxWYWx1ZSh1ZSk7cmV0dXJuIm9iamVjdCI9PT1EeihfZSkmJm51bGwhPT1fZT9fZS52YWx1''@;'; + put 'put ''ZTpfZX1yZXR1cm4geX19LHtrZXk6Im9uQmVmb3JlQXV0b2ZpbGwiLHZhbHVlOmZ1bmN0aW9uKHksQyxJKXt2YXIgaj10aGlzLHVlPWZ1bmN0aW9uKEtlKXtyZXR1cm4gUVRlKFFUZSh7fSxLZSkse30se3NoZWV0Omouc2hlZXRJZH0pfSxfZT17c3RhcnQ6dWUoQy5nZXRUb3BTdGFydENvcm5l''@;'; + put 'put ''cigpKSxlbmQ6dWUoQy5nZXRCb3R0b21FbmRDb3JuZXIoKSl9LEJlPXtzdGFydDp1ZShJLmdldFRvcFN0YXJ0Q29ybmVyKCkpLGVuZDp1ZShJLmdldEJvdHRvbUVuZENvcm5lcigpKX07cmV0dXJuITEhPT10aGlzLmVuZ2luZS5pc0l0UG9zc2libGVUb1NldENlbGxDb250ZW50cyhCZSkmJnRo''@;'; + put 'put ''aXMuZW5naW5lLmdldEZpbGxSYW5nZURhdGEoX2UsQmUpfX0se2tleToib25CZWZvcmVMb2FkRGF0YSIsdmFsdWU6ZnVuY3Rpb24oeSxDKXt2YXIgST1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06IiI7SS5pbmNsdWRlcyhzZCh1MykpfHxY''@;'; + put 'put ''Tyh0aGlzLE81ZSxhMSh0aGlzLmhvdC5nZXRTZXR0aW5ncygpLmRhdGEpKX19LHtrZXk6Im9uQWZ0ZXJMb2FkRGF0YSIsdmFsdWU6ZnVuY3Rpb24oeSxDKXt2YXIgST1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06IiI7aWYoIUkuaW5jbHVk''@;'; + put 'put ''ZXMoc2QodTMpKSlpZih0aGlzLnNoZWV0TmFtZT1xY3QodGhpcy5lbmdpbmUsdGhpcy5ob3QuZ2V0U2V0dGluZ3MoKVt1M10uc2hlZXROYW1lKSxLTyh0aGlzLE81ZSkpdGhpcy5zd2l0Y2hTaGVldCh0aGlzLnNoZWV0TmFtZSk7ZWxzZXt2YXIgaj10aGlzLmhvdC5nZXRTb3VyY2VEYXRhQXJy''@;'; + put 'put ''YXkoKTtpZih0aGlzLmVuZ2luZS5pc0l0UG9zc2libGVUb1JlcGxhY2VTaGVldENvbnRlbnQodGhpcy5zaGVldElkLGopKXtYTyh0aGlzLGxNLCEwKTt2YXIgdWU9dGhpcy5lbmdpbmUuc2V0U2hlZXRDb250ZW50KHRoaXMuc2hlZXRJZCx0aGlzLmhvdC5nZXRTb3VyY2VEYXRhQXJyYXkoKSk7''@;'; + put 'put ''dGhpcy5yZW5kZXJEZXBlbmRlbnRTaGVldHModWUpLFhPKHRoaXMsbE0sITEpfX19fSx7a2V5OiJvbk1vZGlmeURhdGEiLHZhbHVlOmZ1bmN0aW9uKHksQyxJLGope2lmKCJnZXQiPT09aiYmIUtPKHRoaXMsbE0pJiZudWxsIT09dGhpcy5zaGVldE5hbWUmJnRoaXMuZW5naW5lLmRvZXNTaGVl''@;'; + put 'put ''dEV4aXN0KHRoaXMuc2hlZXROYW1lKSl7dmFyIHVlPXRoaXMuaG90LnRvVmlzdWFsUm93KHkpO2lmKCF0aGlzLmlzRm9ybXVsYUNlbGxUeXBlKHVlLEMpJiYiQVJSQVkiIT09dGhpcy5nZXRDZWxsVHlwZSh1ZSxDKSlyZXR1cm4gdm9pZChZVGUoSS52YWx1ZSkmJihJLnZhbHVlPWZ1bmN0aW9u''@;'; + put 'put ''IGVmdChkKXtyZXR1cm4gWVRlKGQpP2Quc3Vic3RyKDEpOmR9KEkudmFsdWUpKSk7dmFyIE5lPXtyb3c6eSxjb2w6dGhpcy50b1BoeXNpY2FsQ29sdW1uUG9zaXRpb24oQyksc2hlZXQ6dGhpcy5zaGVldElkfSxLZT10aGlzLmVuZ2luZS5nZXRDZWxsVmFsdWUoTmUpLGR0PSJvYmplY3QiPT09''@;'; + put 'put ''RHooS2UpJiZudWxsIT09S2U/S2UudmFsdWU6S2U7SS52YWx1ZT1kdH19fSx7a2V5OiJvbk1vZGlmeVNvdXJjZURhdGEiLHZhbHVlOmZ1bmN0aW9uKHksQyxJLGope2lmKCJnZXQiPT09aiYmIUtPKHRoaXMsbE0pJiZudWxsIT09dGhpcy5zaGVldE5hbWUmJnRoaXMuZW5naW5lLmRvZXNTaGVl''@;'; + put 'put ''dEV4aXN0KHRoaXMuc2hlZXROYW1lKSl7dmFyIHVlPXRoaXMuaG90LnRvVmlzdWFsUm93KHkpLF9lPXRoaXMuaG90LnByb3BUb0NvbChDKTtpZighdGhpcy5pc0Zvcm11bGFDZWxsVHlwZSh1ZSxfZSkmJiJBUlJBWSIhPT10aGlzLmdldENlbGxUeXBlKHVlLF9lKSlyZXR1cm47dmFyIEtlPXRo''@;'; + put 'put ''aXMuZW5naW5lLmdldFNoZWV0RGltZW5zaW9ucyh0aGlzLmVuZ2luZS5nZXRTaGVldElkKHRoaXMuc2hlZXROYW1lKSk7aWYoMCE9PUtlLndpZHRofHwwIT09S2UuaGVpZ2h0KXt2YXIgZHQ9e3Jvdzp5LGNvbDp0aGlzLnRvUGh5c2ljYWxDb2x1bW5Qb3NpdGlvbihfZSksc2hlZXQ6dGhpcy5z''@;'; + put 'put ''aGVldElkfTtJLnZhbHVlPXRoaXMuZW5naW5lLmdldENlbGxTZXJpYWxpemVkKGR0KX19fX0se2tleToib25BZnRlclNldERhdGFBdENlbGwiLHZhbHVlOmZ1bmN0aW9uKHksQyl7dmFyIEk9dGhpcztpZighJE8oQykpe3ZhciBqPVtdLHVlPVtdLF9lPXRoaXMuZW5naW5lLmJhdGNoKGZ1bmN0''@;'; + put 'put ''aW9uKCl7eS5mb3JFYWNoKGZ1bmN0aW9uKEJlKXt2YXIgTmU9Sk8oQmUsNCksS2U9TmVbMF0sT3Q9TmVbM10sJHQ9SS5ob3QucHJvcFRvQ29sKE5lWzFdKSxmbj1JLmhvdC50b1BoeXNpY2FsUm93KEtlKSxMbj1JLmhvdC50b1BoeXNpY2FsQ29sdW1uKCR0KSxpcj17cm93OmZuLGNvbDpMbixz''@;'; + put 'put ''aGVldDpJLnNoZWV0SWR9O251bGwhPT1mbiYmbnVsbCE9PUxuP0kuc3luY0NoYW5nZVdpdGhFbmdpbmUoS2UsJHQsT3QpOmoucHVzaChbS2UsJHQsT3RdKSx1ZS5wdXNoKHthZGRyZXNzOmlyfSl9KX0pO2oubGVuZ3RoJiZ0aGlzLmhvdC5hZGRIb29rT25jZSgiYWZ0ZXJDaGFuZ2UiLGZ1bmN0''@;'; + put 'put ''aW9uKCl7dmFyIEJlPUkuZW5naW5lLmJhdGNoKGZ1bmN0aW9uKCl7ai5mb3JFYWNoKGZ1bmN0aW9uKE5lKXt2YXIgS2U9Sk8oTmUsMyk7SS5zeW5jQ2hhbmdlV2l0aEVuZ2luZShLZVswXSxLZVsxXSxLZVsyXSl9KX0pO0kucmVuZGVyRGVwZW5kZW50U2hlZXRzKEJlLCEwKX0pLHRoaXMucmVu''@;'; + put 'put ''ZGVyRGVwZW5kZW50U2hlZXRzKF9lKSx0aGlzLnZhbGlkYXRlRGVwZW5kZW50Q2VsbHMoX2UsdWUpfX19LHtrZXk6Im9uQWZ0ZXJTZXRTb3VyY2VEYXRhQXRDZWxsIix2YWx1ZTpmdW5jdGlvbih5LEMpe3ZhciBJPXRoaXM7aWYoISRPKEMpKXt2YXIgaj1bXSx1ZT1bXTt5LmZvckVhY2goZnVu''@;'; + put 'put ''Y3Rpb24oX2Upe3ZhciBCZT1KTyhfZSw0KSxOZT1CZVswXSxkdD1CZVszXSxPdD1JLmhvdC5wcm9wVG9Db2woQmVbMV0pO2lmKHY0KE90KSl7dmFyICR0PXtyb3c6TmUsY29sOkkudG9QaHlzaWNhbENvbHVtblBvc2l0aW9uKE90KSxzaGVldDpJLnNoZWV0SWR9O2lmKCFJLmVuZ2luZS5pc0l0''@;'; + put 'put ''UG9zc2libGVUb1NldENlbGxDb250ZW50cygkdCkpcmV0dXJuIHZvaWQgbDEoIk5vdCBwb3NzaWJsZSB0byBzZXQgc291cmNlIGNlbGwgZGF0YSBhdCAiLmNvbmNhdChKU09OLnN0cmluZ2lmeSgkdCkpKTt1ZS5wdXNoKHthZGRyZXNzOiR0fSksai5wdXNoLmFwcGx5KGosZnVuY3Rpb24gdGZ0''@;'; + put 'put ''KGQpe3JldHVybiBmdW5jdGlvbiBpZnQoZCl7aWYoQXJyYXkuaXNBcnJheShkKSlyZXR1cm4gSTVlKGQpfShkKXx8ZnVuY3Rpb24gcmZ0KGQpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZudWxsIT1kW1N5bWJvbC5pdGVyYXRvcl18fG51bGwhPWRbIkBAaXRlcmF0b3IiXSlyZXR1''@;'; + put 'put ''cm4gQXJyYXkuZnJvbShkKX0oZCl8fEpUZShkKXx8ZnVuY3Rpb24gbmZ0KCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIHNwcmVhZCBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBo''@;'; + put 'put ''YXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9KEkuZW5naW5lLnNldENlbGxDb250ZW50cygkdCxkdCkpKX19KSx0aGlzLnJlbmRlckRlcGVuZGVudFNoZWV0cyhqKSx0aGlzLnZhbGlkYXRlRGVwZW5kZW50Q2VsbHMoaix1ZSl9fX0se2tleToib25CZWZvcmVDcmVhdGVS''@;'; + put 'put ''b3ciLHZhbHVlOmZ1bmN0aW9uKHksQyl7aWYobnVsbD09PXRoaXMuc2hlZXRJZHx8IXRoaXMuZW5naW5lLmRvZXNTaGVldEV4aXN0KHRoaXMuc2hlZXROYW1lKXx8IXRoaXMuZW5naW5lLmlzSXRQb3NzaWJsZVRvQWRkUm93cyh0aGlzLnNoZWV0SWQsW3RoaXMudG9QaHlzaWNhbFJvd1Bvc2l0''@;'; + put 'put ''aW9uKHkpLENdKSlyZXR1cm4hMX19LHtrZXk6Im9uQmVmb3JlQ3JlYXRlQ29sIix2YWx1ZTpmdW5jdGlvbih5LEMpe2lmKG51bGw9PT10aGlzLnNoZWV0SWR8fCF0aGlzLmVuZ2luZS5kb2VzU2hlZXRFeGlzdCh0aGlzLnNoZWV0TmFtZSl8fCF0aGlzLmVuZ2luZS5pc0l0UG9zc2libGVUb0Fk''@;'; + put 'put ''ZENvbHVtbnModGhpcy5zaGVldElkLFt0aGlzLnRvUGh5c2ljYWxDb2x1bW5Qb3NpdGlvbih5KSxDXSkpcmV0dXJuITF9fSx7a2V5OiJvbkJlZm9yZVJlbW92ZVJvdyIsdmFsdWU6ZnVuY3Rpb24oeSxDLEkpe3ZhciBqPXRoaXM7cmV0dXJuITEhPT1JLmV2ZXJ5KGZ1bmN0aW9uKF9lKXtyZXR1''@;'; + put 'put ''cm4gai5lbmdpbmUuaXNJdFBvc3NpYmxlVG9SZW1vdmVSb3dzKGouc2hlZXRJZCxbX2UsMV0pfSkmJnZvaWQgMH19LHtrZXk6Im9uQmVmb3JlUmVtb3ZlQ29sIix2YWx1ZTpmdW5jdGlvbih5LEMsSSl7dmFyIGo9dGhpcztyZXR1cm4hMSE9PUkuZXZlcnkoZnVuY3Rpb24oX2Upe3JldHVybiBq''@;'; + put 'put ''LmVuZ2luZS5pc0l0UG9zc2libGVUb1JlbW92ZUNvbHVtbnMoai5zaGVldElkLFtfZSwxXSl9KSYmdm9pZCAwfX0se2tleToib25BZnRlckNyZWF0ZVJvdyIsdmFsdWU6ZnVuY3Rpb24oeSxDLEkpe2lmKCEkTyhJKSl7dmFyIGo9dGhpcy5lbmdpbmUuYWRkUm93cyh0aGlzLnNoZWV0SWQsW3Ro''@;'; + put 'put ''aXMudG9QaHlzaWNhbFJvd1Bvc2l0aW9uKHkpLENdKTt0aGlzLnJlbmRlckRlcGVuZGVudFNoZWV0cyhqKX19fSx7a2V5OiJvbkFmdGVyQ3JlYXRlQ29sIix2YWx1ZTpmdW5jdGlvbih5LEMsSSl7aWYoISRPKEkpKXt2YXIgaj10aGlzLmVuZ2luZS5hZGRDb2x1bW5zKHRoaXMuc2hlZXRJZCxb''@;'; + put 'put ''dGhpcy50b1BoeXNpY2FsQ29sdW1uUG9zaXRpb24oeSksQ10pO3RoaXMucmVuZGVyRGVwZW5kZW50U2hlZXRzKGopfX19LHtrZXk6Im9uQWZ0ZXJSZW1vdmVSb3ciLHZhbHVlOmZ1bmN0aW9uKHksQyxJLGope3ZhciB1ZT10aGlzO2lmKCEkTyhqKSl7dmFyIF9lPUkuc29ydCgpLnJldmVyc2Uo''@;'; + put 'put ''KSxCZT10aGlzLmVuZ2luZS5iYXRjaChmdW5jdGlvbigpe19lLmZvckVhY2goZnVuY3Rpb24oTmUpe3VlLmVuZ2luZS5yZW1vdmVSb3dzKHVlLnNoZWV0SWQsW05lLDFdKX0pfSk7dGhpcy5yZW5kZXJEZXBlbmRlbnRTaGVldHMoQmUpfX19LHtrZXk6Im9uQWZ0ZXJSZW1vdmVDb2wiLHZhbHVl''@;'; + put 'put ''OmZ1bmN0aW9uKHksQyxJLGope3ZhciB1ZT10aGlzO2lmKCEkTyhqKSl7dmFyIF9lPUkuc29ydCgpLnJldmVyc2UoKSxCZT10aGlzLmVuZ2luZS5iYXRjaChmdW5jdGlvbigpe19lLmZvckVhY2goZnVuY3Rpb24oTmUpe3VlLmVuZ2luZS5yZW1vdmVDb2x1bW5zKHVlLnNoZWV0SWQsW05lLDFd''@;'; + put 'put ''KX0pfSk7dGhpcy5yZW5kZXJEZXBlbmRlbnRTaGVldHMoQmUpfX19LHtrZXk6Im9uQWZ0ZXJEZXRhY2hDaGlsZCIsdmFsdWU6ZnVuY3Rpb24oeSxDLEkpe3ZhciBqLHVlPXRoaXM7WE8odGhpcyxsTSwhMCk7dmFyIF9lPXRoaXMuaG90LmdldFNvdXJjZURhdGFBcnJheShJLDAsSSsoKG51bGw9''@;'; + put 'put ''PT0oaj1DLl9fY2hpbGRyZW4pfHx2b2lkIDA9PT1qP3ZvaWQgMDpqLmxlbmd0aCl8fDApLHRoaXMuaG90LmNvdW50U291cmNlQ29scygpKTtYTyh0aGlzLGxNLCExKSxfZS5mb3JFYWNoKGZ1bmN0aW9uKEJlLE5lKXtCZS5mb3JFYWNoKGZ1bmN0aW9uKEtlLGR0KXt1ZS5lbmdpbmUuc2V0Q2Vs''@;'; + put 'put ''bENvbnRlbnRzKHtjb2w6ZHQscm93OkkrTmUsc2hlZXQ6dWUuc2hlZXRJZH0sW1tLZV1dKX0pfSl9fSx7a2V5OiJvbkVuZ2luZVZhbHVlc1VwZGF0ZWQiLHZhbHVlOmZ1bmN0aW9uKHkpe3RoaXMuaG90LnJ1bkhvb2tzKCJhZnRlckZvcm11bGFzVmFsdWVzVXBkYXRlIix5KX19LHtrZXk6Im9u''@;'; + put 'put ''RW5naW5lTmFtZWRFeHByZXNzaW9uc0FkZGVkIix2YWx1ZTpmdW5jdGlvbih5LEMpe3RoaXMuaG90LnJ1bkhvb2tzKCJhZnRlck5hbWVkRXhwcmVzc2lvbkFkZGVkIix5LEMpfX0se2tleToib25FbmdpbmVOYW1lZEV4cHJlc3Npb25zUmVtb3ZlZCIsdmFsdWU6ZnVuY3Rpb24oeSxDKXt0aGlz''@;'; + put 'put ''LmhvdC5ydW5Ib29rcygiYWZ0ZXJOYW1lZEV4cHJlc3Npb25SZW1vdmVkIix5LEMpfX0se2tleToib25FbmdpbmVTaGVldEFkZGVkIix2YWx1ZTpmdW5jdGlvbih5KXt0aGlzLmhvdC5ydW5Ib29rcygiYWZ0ZXJTaGVldEFkZGVkIix5KX19LHtrZXk6Im9uRW5naW5lU2hlZXRSZW5hbWVkIix2''@;'; + put 'put ''YWx1ZTpmdW5jdGlvbih5LEMpe3RoaXMuaG90LnJ1bkhvb2tzKCJhZnRlclNoZWV0UmVuYW1lZCIseSxDKX19LHtrZXk6Im9uRW5naW5lU2hlZXRSZW1vdmVkIix2YWx1ZTpmdW5jdGlvbih5LEMpe3RoaXMuaG90LnJ1bkhvb2tzKCJhZnRlclNoZWV0UmVtb3ZlZCIseSxDKX19XSxbe2tleToi''@;'; + put 'put ''UExVR0lOX0tFWSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHUzfX0se2tleToiUExVR0lOX1BSSU9SSVRZIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gMjYwfX1dKSxofShZcyk7ZnVuY3Rpb24gcVRlKGQsZyl7KG51bGw9PWd8fGc+ZC5sZW5ndGgpJiYoZz1kLmxlbmd0aCk7Zm9yKHZhciBoPTAs''@;'; + put 'put ''dj1uZXcgQXJyYXkoZyk7aDxnO2grKyl2W2hdPWRbaF07cmV0dXJuIHZ9ZnVuY3Rpb24gbW5lKGQpe3JldHVybiBmdW5jdGlvbiBUZnQoZCl7aWYoQXJyYXkuaXNBcnJheShkKSlyZXR1cm4gUjVlKGQpfShkKXx8ZnVuY3Rpb24geGZ0KGQpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9s''@;'; + put 'put ''JiZudWxsIT1kW1N5bWJvbC5pdGVyYXRvcl18fG51bGwhPWRbIkBAaXRlcmF0b3IiXSlyZXR1cm4gQXJyYXkuZnJvbShkKX0oZCl8fGZ1bmN0aW9uIEVmdChkLGcpe2lmKGQpe2lmKCJzdHJpbmciPT10eXBlb2YgZClyZXR1cm4gUjVlKGQsZyk7dmFyIGg9T2JqZWN0LnByb3RvdHlwZS50b1N0''@;'; + put 'put ''cmluZy5jYWxsKGQpLnNsaWNlKDgsLTEpO2lmKCJPYmplY3QiPT09aCYmZC5jb25zdHJ1Y3RvciYmKGg9ZC5jb25zdHJ1Y3Rvci5uYW1lKSwiTWFwIj09PWh8fCJTZXQiPT09aClyZXR1cm4gQXJyYXkuZnJvbShkKTtpZigiQXJndW1lbnRzIj09PWh8fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIp''@;'; + put 'put ''KD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KGgpKXJldHVybiBSNWUoZCxnKX19KGQpfHxmdW5jdGlvbiBNZnQoKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gc3ByZWFkIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24t''@;'; + put 'put ''YXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX1mdW5jdGlvbiBSNWUoZCxnKXsobnVsbD09Z3x8Zz5kLmxlbmd0aCkmJihnPWQubGVuZ3RoKTtmb3IodmFyIGg9MCx2PW5ldyBBcnJheShnKTtoPGc7aCsrKXZbaF09ZFtoXTtyZXR1cm4g''@;'; + put 'put ''dn1mdW5jdGlvbiBCNWUoZCl7cmV0dXJuKEI1ZT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihnKXtyZXR1cm4gdHlwZW9mIGd9OmZ1bmN0aW9uKGcpe3JldHVybiBnJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9s''@;'; + put 'put ''JiZnLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZnIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgZ30pKGQpfWZ1bmN0aW9uIERmdChkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIp''@;'; + put 'put ''fWZ1bmN0aW9uIGVJZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXks''@;'; + put 'put ''dil9fWZ1bmN0aW9uIHNNKCl7cmV0dXJuIHNNPSJ1bmRlZmluZWQiIT10eXBlb2YgUmVmbGVjdCYmUmVmbGVjdC5nZXQ/UmVmbGVjdC5nZXQuYmluZCgpOmZ1bmN0aW9uKGcsaCx2KXt2YXIgeT1PZnQoZyxoKTtpZih5KXt2YXIgQz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHks''@;'; + put 'put ''aCk7cmV0dXJuIEMuZ2V0P0MuZ2V0LmNhbGwoYXJndW1lbnRzLmxlbmd0aDwzP2c6dik6Qy52YWx1ZX19LHNNLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBPZnQoZCxnKXtmb3IoOyFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZCxnKSYmbnVsbCE9PShkPVd2''@;'; + put 'put ''KGQpKTspO3JldHVybiBkfWZ1bmN0aW9uIFA1ZShkLGcpe3JldHVybihQNWU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24odix5KXtyZXR1cm4gdi5fX3Byb3RvX189eSx2fSkoZCxnKX1mdW5jdGlvbiBQZnQoZCxnKXtpZihnJiYo''@;'; + put 'put ''Im9iamVjdCI9PT1CNWUoZyl8fCJmdW5jdGlvbiI9PXR5cGVvZiBnKSlyZXR1cm4gZztpZih2b2lkIDAhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIkRlcml2ZWQgY29uc3RydWN0b3JzIG1heSBvbmx5IHJldHVybiBvYmplY3Qgb3IgdW5kZWZpbmVkIik7cmV0dXJuIEY1ZShkKX1mdW5jdGlv''@;'; + put 'put ''biBGNWUoZCl7aWYodm9pZCAwPT09ZCl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3JldHVybiBkfWZ1bmN0aW9uIFd2KGQpe3JldHVybihXdj1PYmplY3Quc2V0UHJvdG90eXBlT2Y/''@;'; + put 'put ''T2JqZWN0LmdldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihoKXtyZXR1cm4gaC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihoKX0pKGQpfWZ1bmN0aW9uIHRJZShkLGcsaCl7KGZ1bmN0aW9uIEhmdChkLGcpe2lmKGcuaGFzKGQpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNh''@;'; + put 'put ''bm5vdCBpbml0aWFsaXplIHRoZSBzYW1lIHByaXZhdGUgZWxlbWVudHMgdHdpY2Ugb24gYW4gb2JqZWN0Iil9KShkLGcpLGcuc2V0KGQsaCl9ZnVuY3Rpb24gdzQoZCxnKXtyZXR1cm4gZnVuY3Rpb24gTmZ0KGQsZyl7cmV0dXJuIGcuZ2V0P2cuZ2V0LmNhbGwoZCk6Zy52YWx1ZX0oZCxuSWUo''@;'; + put 'put ''ZCxnLCJnZXQiKSl9ZnVuY3Rpb24gT3ooZCxnLGgpe3JldHVybiBmdW5jdGlvbiBWZnQoZCxnLGgpe2lmKGcuc2V0KWcuc2V0LmNhbGwoZCxoKTtlbHNle2lmKCFnLndyaXRhYmxlKXRocm93IG5ldyBUeXBlRXJyb3IoImF0dGVtcHRlZCB0byBzZXQgcmVhZCBvbmx5IHByaXZhdGUgZmllbGQi''@;'; + put 'put ''KTtnLnZhbHVlPWh9fShkLG5JZShkLGcsInNldCIpLGgpLGh9ZnVuY3Rpb24gbkllKGQsZyxoKXtpZighZy5oYXMoZCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiYXR0ZW1wdGVkIHRvICIraCsiIHByaXZhdGUgZmllbGQgb24gbm9uLWluc3RhbmNlIik7cmV0dXJuIGcuZ2V0KGQpfXpvLmdldFNp''@;'; + put 'put ''bmdsZXRvbigpLnJlZ2lzdGVyKCJiZWZvcmVIaWRlQ29sdW1ucyIpLHpvLmdldFNpbmdsZXRvbigpLnJlZ2lzdGVyKCJhZnRlckhpZGVDb2x1bW5zIiksem8uZ2V0U2luZ2xldG9uKCkucmVnaXN0ZXIoImJlZm9yZVVuaGlkZUNvbHVtbnMiKSx6by5nZXRTaW5nbGV0b24oKS5yZWdpc3Rlcigi''@;'; + put 'put ''YWZ0ZXJVbmhpZGVDb2x1bW5zIik7dmFyIEg1ZT0iaGlkZGVuQ29sdW1ucyIsQmc9bmV3IFdlYWtNYXAsUGc9bmV3IFdlYWtNYXAsWmZ0PWZ1bmN0aW9uKGQpeyFmdW5jdGlvbiBSZnQoZCxnKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZyYmbnVsbCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigi''@;'; + put 'put ''U3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTtkLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGcmJmcucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6ZCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3Bl''@;'; + put 'put ''cnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZyYmUDVlKGQsZyl9KGgsZCk7dmFyIGc9ZnVuY3Rpb24gQmZ0KGQpe3ZhciBnPWZ1bmN0aW9uIEZmdCgpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0fHxSZWZsZWN0LmNvbnN0cnVjdC5z''@;'; + put 'put ''aGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBQcm94eSlyZXR1cm4hMDt0cnl7cmV0dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLGZ1bmN0aW9uKCl7fSkpLCEwfWNhdGNoKGQpe3JldHVybiExfX0oKTtyZXR1''@;'; + put 'put ''cm4gZnVuY3Rpb24oKXt2YXIgeSx2PVd2KGQpO2lmKGcpe3ZhciBDPVd2KHRoaXMpLmNvbnN0cnVjdG9yO3k9UmVmbGVjdC5jb25zdHJ1Y3Qodixhcmd1bWVudHMsQyl9ZWxzZSB5PXYuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBQZnQodGhpcyx5KX19KGgpO2Z1bmN0aW9uIGgoKXt2''@;'; + put 'put ''YXIgdjtEZnQodGhpcyxoKTtmb3IodmFyIHk9YXJndW1lbnRzLmxlbmd0aCxDPW5ldyBBcnJheSh5KSxJPTA7STx5O0krKylDW0ldPWFyZ3VtZW50c1tJXTtyZXR1cm4gdEllKEY1ZSh2PWcuY2FsbC5hcHBseShnLFt0aGlzXS5jb25jYXQoQykpKSxCZyx7d3JpdGFibGU6ITAsdmFsdWU6e319''@;'; + put 'put ''KSx0SWUoRjVlKHYpLFBnLHt3cml0YWJsZTohMCx2YWx1ZTpudWxsfSksdn1yZXR1cm4gZnVuY3Rpb24gTGZ0KGQsZyxoKXtnJiZlSWUoZC5wcm90b3R5cGUsZyksaCYmZUllKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGgsW3trZXk6''@;'; + put 'put ''ImlzRW5hYmxlZCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4hIXRoaXMuaG90LmdldFNldHRpbmdzKClbSDVlXX19LHtrZXk6ImVuYWJsZVBsdWdpbiIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzO2lmKCF0aGlzLmVuYWJsZWQpe3ZhciBDPXRoaXMuaG90LmdldFNldHRpbmdzKClbSDVl''@;'; + put 'put ''XTt4bChDKSYmKE96KHRoaXMsQmcsQyksYTEoQy5jb3B5UGFzdGVFbmFibGVkKSYmKEMuY29weVBhc3RlRW5hYmxlZD0hMCkpLE96KHRoaXMsUGcsbmV3IFdlZSksdzQodGhpcyxQZykuYWRkTG9jYWxIb29rKCJpbml0IixmdW5jdGlvbigpe3JldHVybiB5Lm9uTWFwSW5pdCgpfSksdGhpcy5o''@;'; + put 'put ''b3QuY29sdW1uSW5kZXhNYXBwZXIucmVnaXN0ZXJNYXAodGhpcy5wbHVnaW5OYW1lLHc0KHRoaXMsUGcpKSx0aGlzLmFkZEhvb2soImFmdGVyQ29udGV4dE1lbnVEZWZhdWx0T3B0aW9ucyIsZnVuY3Rpb24oKXtyZXR1cm4geS5vbkFmdGVyQ29udGV4dE1lbnVEZWZhdWx0T3B0aW9ucy5hcHBs''@;'; + put 'put ''eSh5LGFyZ3VtZW50cyl9KSx0aGlzLmFkZEhvb2soImFmdGVyR2V0Q2VsbE1ldGEiLGZ1bmN0aW9uKEksaix1ZSl7cmV0dXJuIHkub25BZnRlckdldENlbGxNZXRhKEksaix1ZSl9KSx0aGlzLmFkZEhvb2soIm1vZGlmeUNvbFdpZHRoIixmdW5jdGlvbihJLGope3JldHVybiB5Lm9uTW9kaWZ5''@;'; + put 'put ''Q29sV2lkdGgoSSxqKX0pLHRoaXMuYWRkSG9vaygiYWZ0ZXJHZXRDb2xIZWFkZXIiLGZ1bmN0aW9uKCl7cmV0dXJuIHkub25BZnRlckdldENvbEhlYWRlci5hcHBseSh5LGFyZ3VtZW50cyl9KSx0aGlzLmFkZEhvb2soIm1vZGlmeUNvcHlhYmxlUmFuZ2UiLGZ1bmN0aW9uKEkpe3JldHVybiB5''@;'; + put 'put ''Lm9uTW9kaWZ5Q29weWFibGVSYW5nZShJKX0pLHNNKFd2KGgucHJvdG90eXBlKSwiZW5hYmxlUGx1Z2luIix0aGlzKS5jYWxsKHRoaXMpfX19LHtrZXk6InVwZGF0ZVBsdWdpbiIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmRpc2FibGVQbHVnaW4oKSx0aGlzLmVuYWJsZVBsdWdpbigpLHNNKFd2''@;'; + put 'put ''KGgucHJvdG90eXBlKSwidXBkYXRlUGx1Z2luIix0aGlzKS5jYWxsKHRoaXMpfX0se2tleToiZGlzYWJsZVBsdWdpbiIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmhvdC5jb2x1bW5JbmRleE1hcHBlci51bnJlZ2lzdGVyTWFwKHRoaXMucGx1Z2luTmFtZSksT3oodGhpcyxCZyx7fSksc00oV3Yo''@;'; + put 'put ''aC5wcm90b3R5cGUpLCJkaXNhYmxlUGx1Z2luIix0aGlzKS5jYWxsKHRoaXMpLHRoaXMucmVzZXRDZWxsc01ldGEoKX19LHtrZXk6InNob3dDb2x1bW5zIix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz10aGlzLEk9dGhpcy5nZXRIaWRkZW5Db2x1bW5zKCksaj10aGlzLmlzVmFsaWRDb25maWco''@;'; + put 'put ''eSksdWU9SSxfZT13NCh0aGlzLFBnKS5nZXRWYWx1ZXMoKS5zbGljZSgpLEJlPXkubGVuZ3RoPjA7aiYmQmUmJihVcih5Lm1hcChmdW5jdGlvbihkdCl7cmV0dXJuIEMuaG90LnRvUGh5c2ljYWxDb2x1bW4oZHQpfSksZnVuY3Rpb24oZHQpe19lW2R0XT0hMX0pLHVlPVN1KF9lLGZ1bmN0aW9u''@;'; + put 'put ''KGR0LE90LCR0KXtyZXR1cm4gT3QmJmR0LnB1c2goQy5ob3QudG9WaXN1YWxDb2x1bW4oJHQpKSxkdH0sW10pKSwhMSE9PXRoaXMuaG90LnJ1bkhvb2tzKCJiZWZvcmVVbmhpZGVDb2x1bW5zIixJLHVlLGomJkJlKSYmKGomJkJlJiZ3NCh0aGlzLFBnKS5zZXRWYWx1ZXMoX2UpLHRoaXMuaG90''@;'; + put 'put ''LnZpZXcuYWRqdXN0RWxlbWVudHNTaXplKCksdGhpcy5ob3QucnVuSG9va3MoImFmdGVyVW5oaWRlQ29sdW1ucyIsSSx1ZSxqJiZCZSxqJiZ1ZS5sZW5ndGg8SS5sZW5ndGgpKX19LHtrZXk6InNob3dDb2x1bW4iLHZhbHVlOmZ1bmN0aW9uKCl7Zm9yKHZhciB5PWFyZ3VtZW50cy5sZW5ndGgs''@;'; + put 'put ''Qz1uZXcgQXJyYXkoeSksST0wO0k8eTtJKyspQ1tJXT1hcmd1bWVudHNbSV07dGhpcy5zaG93Q29sdW1ucyhDKX19LHtrZXk6ImhpZGVDb2x1bW5zIix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz10aGlzLEk9dGhpcy5nZXRIaWRkZW5Db2x1bW5zKCksaj10aGlzLmlzVmFsaWRDb25maWcoeSks''@;'; + put 'put ''dWU9STtqJiYodWU9QXJyYXkuZnJvbShuZXcgU2V0KEkuY29uY2F0KHkpKSkpLCExIT09dGhpcy5ob3QucnVuSG9va3MoImJlZm9yZUhpZGVDb2x1bW5zIixJLHVlLGopJiYoaiYmdGhpcy5ob3QuYmF0Y2hFeGVjdXRpb24oZnVuY3Rpb24oKXtVcih5LGZ1bmN0aW9uKEJlKXt3NChDLFBnKS5z''@;'; + put 'put ''ZXRWYWx1ZUF0SW5kZXgoQy5ob3QudG9QaHlzaWNhbENvbHVtbihCZSksITApfSl9LCEwKSx0aGlzLmhvdC5ydW5Ib29rcygiYWZ0ZXJIaWRlQ29sdW1ucyIsSSx1ZSxqLGomJnVlLmxlbmd0aD5JLmxlbmd0aCkpfX0se2tleToiaGlkZUNvbHVtbiIsdmFsdWU6ZnVuY3Rpb24oKXtmb3IodmFy''@;'; + put 'put ''IHk9YXJndW1lbnRzLmxlbmd0aCxDPW5ldyBBcnJheSh5KSxJPTA7STx5O0krKylDW0ldPWFyZ3VtZW50c1tJXTt0aGlzLmhpZGVDb2x1bW5zKEMpfX0se2tleToiZ2V0SGlkZGVuQ29sdW1ucyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzO3JldHVybiBPbCh3NCh0aGlzLFBnKS5nZXRI''@;'; + put 'put ''aWRkZW5JbmRleGVzKCksZnVuY3Rpb24oQyl7cmV0dXJuIHkuaG90LnRvVmlzdWFsQ29sdW1uKEMpfSl9fSx7a2V5OiJpc0hpZGRlbiIsdmFsdWU6ZnVuY3Rpb24oeSl7cmV0dXJuIHc0KHRoaXMsUGcpLmdldFZhbHVlQXRJbmRleCh0aGlzLmhvdC50b1BoeXNpY2FsQ29sdW1uKHkpKXx8ITF9''@;'; + put 'put ''fSx7a2V5OiJpc1ZhbGlkQ29uZmlnIix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz10aGlzLmhvdC5jb3VudENvbHMoKTtyZXR1cm4hIShBcnJheS5pc0FycmF5KHkpJiZ5Lmxlbmd0aD4wKSYmeS5ldmVyeShmdW5jdGlvbihJKXtyZXR1cm4gTnVtYmVyLmlzSW50ZWdlcihJKSYmST49MCYmSTxD''@;'; + put 'put ''fSl9fSx7a2V5OiJyZXNldENlbGxzTWV0YSIsdmFsdWU6ZnVuY3Rpb24oKXtVcih0aGlzLmhvdC5nZXRDZWxsc01ldGEoKSxmdW5jdGlvbih5KXt5JiYoeS5za2lwQ29sdW1uT25QYXN0ZT0hMSl9KX19LHtrZXk6Im9uTW9kaWZ5Q29sV2lkdGgiLHZhbHVlOmZ1bmN0aW9uKHksQyl7cmV0dXJu''@;'; + put 'put ''IHRoaXMuaXNIaWRkZW4oQyk/MDp3NCh0aGlzLEJnKS5pbmRpY2F0b3JzJiYodGhpcy5pc0hpZGRlbihDKzEpfHx0aGlzLmlzSGlkZGVuKEMtMSkpJiYibnVtYmVyIj09dHlwZW9mIHkmJnRoaXMuaG90Lmhhc0NvbEhlYWRlcnMoKT95KzE1OnZvaWQgMH19LHtrZXk6Im9uQWZ0ZXJHZXRDZWxs''@;'; + put 'put ''TWV0YSIsdmFsdWU6ZnVuY3Rpb24oeSxDLEkpe2lmKCExPT09dzQodGhpcyxCZykuY29weVBhc3RlRW5hYmxlZCYmdGhpcy5pc0hpZGRlbihDKSYmKEkuc2tpcENvbHVtbk9uUGFzdGU9ITApLHRoaXMuaXNIaWRkZW4oQy0xKSlJLmNsYXNzTmFtZT1JLmNsYXNzTmFtZXx8IiIsLTE9PT1JLmNs''@;'; + put 'put ''YXNzTmFtZS5pbmRleE9mKCJhZnRlckhpZGRlbkNvbHVtbiIpJiYoSS5jbGFzc05hbWUrPSIgYWZ0ZXJIaWRkZW5Db2x1bW4iKTtlbHNlIGlmKEkuY2xhc3NOYW1lKXt2YXIgaj1JLmNsYXNzTmFtZS5zcGxpdCgiICIpO2lmKGoubGVuZ3RoPjApe3ZhciB1ZT1qLmluZGV4T2YoImFmdGVySGlk''@;'; + put 'put ''ZGVuQ29sdW1uIik7dWU+LTEmJmouc3BsaWNlKHVlLDEpLEkuY2xhc3NOYW1lPWouam9pbigiICIpfX19fSx7a2V5OiJvbk1vZGlmeUNvcHlhYmxlUmFuZ2UiLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPXRoaXM7aWYodzQodGhpcyxCZykuY29weVBhc3RlRW5hYmxlZClyZXR1cm4geTt2YXIg''@;'; + put 'put ''ST1bXSxqPWZ1bmN0aW9uKF9lLEJlLE5lLEtlKXtJLnB1c2goe3N0YXJ0Um93Ol9lLGVuZFJvdzpCZSxzdGFydENvbDpOZSxlbmRDb2w6S2V9KX07cmV0dXJuIFVyKHksZnVuY3Rpb24odWUpe3ZhciBfZT0hMCxCZT0wO2lhKHVlLnN0YXJ0Q29sLHVlLmVuZENvbCxmdW5jdGlvbihOZSl7Qy5p''@;'; + put 'put ''c0hpZGRlbihOZSk/KF9lfHxqKHVlLnN0YXJ0Um93LHVlLmVuZFJvdyxCZSxOZS0xKSxfZT0hMCk6KF9lJiYoQmU9TmUpLE5lPT09dWUuZW5kQ29sJiZqKHVlLnN0YXJ0Um93LHVlLmVuZFJvdyxCZSxOZSksX2U9ITEpfSl9KSxJfX0se2tleToib25BZnRlckdldENvbEhlYWRlciIsdmFsdWU6''@;'; + put 'put ''ZnVuY3Rpb24oeSxDKXtpZih3NCh0aGlzLEJnKS5pbmRpY2F0b3JzJiYhKHk8MCkpe3ZhciBJPVtdO3k+PTEmJnRoaXMuaXNIaWRkZW4oeS0xKSYmSS5wdXNoKCJhZnRlckhpZGRlbkNvbHVtbiIpLHk8dGhpcy5ob3QuY291bnRDb2xzKCktMSYmdGhpcy5pc0hpZGRlbih5KzEpJiZJLnB1c2go''@;'; + put 'put ''ImJlZm9yZUhpZGRlbkNvbHVtbiIpLE8wKEMsSSl9fX0se2tleToib25BZnRlckNvbnRleHRNZW51RGVmYXVsdE9wdGlvbnMiLHZhbHVlOmZ1bmN0aW9uKHkpe3kuaXRlbXMucHVzaCh7bmFtZTpXbH0sZnVuY3Rpb24gU2Z0KGQpe3JldHVybntrZXk6ImhpZGRlbl9jb2x1bW5zX2hpZGUiLG5h''@;'; + put 'put ''bWU6ZnVuY3Rpb24oKXt2YXIgaD10aGlzLmdldFNlbGVjdGVkTGFzdCgpLHY9MDtpZihBcnJheS5pc0FycmF5KGgpKXt2YXIgeT1mdW5jdGlvbiB3ZnQoZCxnKXtyZXR1cm4gZnVuY3Rpb24ga2Z0KGQpe2lmKEFycmF5LmlzQXJyYXkoZCkpcmV0dXJuIGR9KGQpfHxmdW5jdGlvbiBDZnQoZCxn''@;'; + put 'put ''KXt2YXIgaD1udWxsPT1kP251bGw6InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJmRbU3ltYm9sLml0ZXJhdG9yXXx8ZFsiQEBpdGVyYXRvciJdO2lmKG51bGwhPWgpe3ZhciBJLGosdj1bXSx5PSEwLEM9ITE7dHJ5e2ZvcihoPWguY2FsbChkKTshKHk9KEk9aC5uZXh0KCkpLmRvbmUpJiYo''@;'; + put 'put ''di5wdXNoKEkudmFsdWUpLCFnfHx2Lmxlbmd0aCE9PWcpO3k9ITApO31jYXRjaCh1ZSl7Qz0hMCxqPXVlfWZpbmFsbHl7dHJ5eyF5JiZudWxsIT1oLnJldHVybiYmaC5yZXR1cm4oKX1maW5hbGx5e2lmKEMpdGhyb3cgan19cmV0dXJuIHZ9fShkLGcpfHxmdW5jdGlvbiBfZnQoZCxnKXtpZihk''@;'; + put 'put ''KXtpZigic3RyaW5nIj09dHlwZW9mIGQpcmV0dXJuIHFUZShkLGcpO3ZhciBoPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChkKS5zbGljZSg4LC0xKTtpZigiT2JqZWN0Ij09PWgmJmQuY29uc3RydWN0b3ImJihoPWQuY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1ofHwiU2V0Ij09''@;'; + put 'put ''PWgpcmV0dXJuIEFycmF5LmZyb20oZCk7aWYoIkFyZ3VtZW50cyI9PT1ofHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChoKSlyZXR1cm4gcVRlKGQsZyl9fShkLGcpfHxmdW5jdGlvbiBiZnQoKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0''@;'; + put 'put ''dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfShoLDQpO3lbMV0teVszXSE9MCYmKHY9MSl9cmV0dXJu''@;'; + put 'put ''IHRoaXMuZ2V0VHJhbnNsYXRlZFBocmFzZShhcGUsdil9LGNhbGxiYWNrOmZ1bmN0aW9uKCl7Zm9yKHZhciBoPXRoaXMuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKSx2PWguZnJvbSx5PWgudG8sQz1NYXRoLm1heChNYXRoLm1pbih2LmNvbCx5LmNvbCksMCksST1NYXRoLm1heCh2LmNvbCx5LmNv''@;'; + put 'put ''bCksaj1bXSx1ZT1DO3VlPD1JO3VlKz0xKWoucHVzaCh1ZSk7ZC5oaWRlQ29sdW1ucyhqKTt2YXIgQmU9dGhpcy5jb2x1bW5JbmRleE1hcHBlci5nZXROZWFyZXN0Tm90SGlkZGVuSW5kZXgoaltqLmxlbmd0aC0xXSwxLCEwKTtOdW1iZXIuaXNJbnRlZ2VyKEJlKSYmQmU+PTA/dGhpcy5zZWxl''@;'; + put 'put ''Y3RDb2x1bW5zKEJlKTp0aGlzLmRlc2VsZWN0Q2VsbCgpLHRoaXMucmVuZGVyKCksdGhpcy52aWV3LmFkanVzdEVsZW1lbnRzU2l6ZSghMCl9LGRpc2FibGVkOiExLGhpZGRlbjpmdW5jdGlvbigpe3JldHVybiEodGhpcy5zZWxlY3Rpb24uaXNTZWxlY3RlZEJ5Q29sdW1uSGVhZGVyKCl8fHRo''@;'; + put 'put ''aXMuc2VsZWN0aW9uLmlzU2VsZWN0ZWRCeUNvcm5lcigpKX19fSh0aGlzKSxmdW5jdGlvbiBJZnQoZCl7dmFyIGc9W107cmV0dXJue2tleToiaGlkZGVuX2NvbHVtbnNfc2hvdyIsbmFtZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmdldFRyYW5zbGF0ZWRQaHJhc2UobHBlLGcubGVuZ3RoPjE/''@;'; + put 'put ''MTowKX0sY2FsbGJhY2s6ZnVuY3Rpb24oKXt2YXIgdix5O2lmKDAhPT1nLmxlbmd0aCl7dmFyIEM9Z1swXSxJPWdbZy5sZW5ndGgtMV07Qz1udWxsIT09KHY9dGhpcy5jb2x1bW5JbmRleE1hcHBlci5nZXROZWFyZXN0Tm90SGlkZGVuSW5kZXgoQy0xLC0xKSkmJnZvaWQgMCE9PXY/djowLEk9''@;'; + put 'put ''bnVsbCE9PSh5PXRoaXMuY29sdW1uSW5kZXhNYXBwZXIuZ2V0TmVhcmVzdE5vdEhpZGRlbkluZGV4KEkrMSwxKSkmJnZvaWQgMCE9PXk/eTp0aGlzLmNvdW50Q29scygpLTEsZC5zaG93Q29sdW1ucyhnKSx0aGlzLnJlbmRlcigpLHRoaXMudmlldy5hZGp1c3RFbGVtZW50c1NpemUoITApLEkt''@;'; + put 'put ''QysxPT09dGhpcy5jb3VudENvbHMoKXx8dGhpcy5zZWxlY3RDb2x1bW5zKEMsSSl9fSxkaXNhYmxlZDohMSxoaWRkZW46ZnVuY3Rpb24oKXt2YXIgdj10aGlzLHk9T2woZC5nZXRIaWRkZW5Db2x1bW5zKCksZnVuY3Rpb24oaXIpe3JldHVybiB2LnRvUGh5c2ljYWxDb2x1bW4oaXIpfSk7aWYo''@;'; + put 'put ''IXRoaXMuc2VsZWN0aW9uLmlzU2VsZWN0ZWRCeUNvbHVtbkhlYWRlcigpJiYhdGhpcy5zZWxlY3Rpb24uaXNTZWxlY3RlZEJ5Q29ybmVyKCl8fHkubGVuZ3RoPDEpcmV0dXJuITA7Zy5sZW5ndGg9MDt2YXIgQz10aGlzLmdldFNlbGVjdGVkUmFuZ2VMYXN0KCksST1DLmdldFRvcFN0YXJ0Q29y''@;'; + put 'put ''bmVyKCkuY29sLGo9Qy5nZXRCb3R0b21FbmRDb3JuZXIoKS5jb2wsdWU9dGhpcy5jb2x1bW5JbmRleE1hcHBlcixfZT11ZS5nZXRSZW5kZXJhYmxlRnJvbVZpc3VhbEluZGV4KEkpLEJlPXVlLmdldFJlbmRlcmFibGVGcm9tVmlzdWFsSW5kZXgoaiksTmU9dWUuZ2V0Tm90VHJpbW1lZEluZGV4''@;'; + put 'put ''ZXMoKSxLZT1bXTtpZihJIT09ail7aWYoai1JKzE+QmUtX2UrMSl7dmFyICR0PU5lLnNsaWNlKEksaisxKTtLZS5wdXNoLmFwcGx5KEtlLG1uZSgkdC5maWx0ZXIoZnVuY3Rpb24oaXIpe3JldHVybiB5LmluY2x1ZGVzKGlyKX0pKSl9fWVsc2UgaWYoMD09PV9lJiZfZTxJKUtlLnB1c2guYXBw''@;'; + put 'put ''bHkoS2UsbW5lKE5lLnNsaWNlKDAsSSkpKTtlbHNlIGlmKG51bGw9PT1fZSlLZS5wdXNoLmFwcGx5KEtlLG1uZShOZS5zbGljZSgwLHRoaXMuY291bnRDb2xzKCkpKSk7ZWxzZXt2YXIgZm49dGhpcy5jb3VudENvbHMoKS0xO0JlPT09dWUuZ2V0UmVuZGVyYWJsZUZyb21WaXN1YWxJbmRleCh1''@;'; + put 'put ''ZS5nZXROZWFyZXN0Tm90SGlkZGVuSW5kZXgoZm4sLTEpKSYmZm4+aiYmS2UucHVzaC5hcHBseShLZSxtbmUoTmUuc2xpY2UoaisxKSkpfXJldHVybiBVcihLZSxmdW5jdGlvbihpcil7Zy5wdXNoKHYudG9WaXN1YWxDb2x1bW4oaXIpKX0pLDA9PT1nLmxlbmd0aH19fSh0aGlzKSl9fSx7a2V5''@;'; + put 'put ''OiJvbk1hcEluaXQiLHZhbHVlOmZ1bmN0aW9uKCl7QXJyYXkuaXNBcnJheSh3NCh0aGlzLEJnKS5jb2x1bW5zKSYmdGhpcy5oaWRlQ29sdW1ucyh3NCh0aGlzLEJnKS5jb2x1bW5zKX19LHtrZXk6ImRlc3Ryb3kiLHZhbHVlOmZ1bmN0aW9uKCl7T3oodGhpcyxCZyxudWxsKSxPeih0aGlzLFBn''@;'; + put 'put ''LG51bGwpLHNNKFd2KGgucHJvdG90eXBlKSwiZGVzdHJveSIsdGhpcykuY2FsbCh0aGlzKX19XSxbe2tleToiUExVR0lOX0tFWSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEg1ZX19LHtrZXk6IlBMVUdJTl9QUklPUklUWSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDMxMH19XSksaH0oWXMpO2Z1''@;'; + put 'put ''bmN0aW9uIHJJZShkLGcpeyhudWxsPT1nfHxnPmQubGVuZ3RoKSYmKGc9ZC5sZW5ndGgpO2Zvcih2YXIgaD0wLHY9bmV3IEFycmF5KGcpO2g8ZztoKyspdltoXT1kW2hdO3JldHVybiB2fWZ1bmN0aW9uIHZuZShkKXtyZXR1cm4gZnVuY3Rpb24gJGZ0KGQpe2lmKEFycmF5LmlzQXJyYXkoZCkp''@;'; + put 'put ''cmV0dXJuIE41ZShkKX0oZCl8fGZ1bmN0aW9uIEtmdChkKXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmbnVsbCE9ZFtTeW1ib2wuaXRlcmF0b3JdfHxudWxsIT1kWyJAQGl0ZXJhdG9yIl0pcmV0dXJuIEFycmF5LmZyb20oZCl9KGQpfHxmdW5jdGlvbiBYZnQoZCxnKXtpZihkKXtp''@;'; + put 'put ''Zigic3RyaW5nIj09dHlwZW9mIGQpcmV0dXJuIE41ZShkLGcpO3ZhciBoPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChkKS5zbGljZSg4LC0xKTtpZigiT2JqZWN0Ij09PWgmJmQuY29uc3RydWN0b3ImJihoPWQuY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1ofHwiU2V0Ij09PWgp''@;'; + put 'put ''cmV0dXJuIEFycmF5LmZyb20oZCk7aWYoIkFyZ3VtZW50cyI9PT1ofHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChoKSlyZXR1cm4gTjVlKGQsZyl9fShkKXx8ZnVuY3Rpb24gSmZ0KCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0''@;'; + put 'put ''IHRvIHNwcmVhZCBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9ZnVuY3Rpb24gTjVlKGQsZyl7KG51bGw9PWd8fGc+ZC5sZW5ndGgpJiYo''@;'; + put 'put ''Zz1kLmxlbmd0aCk7Zm9yKHZhciBoPTAsdj1uZXcgQXJyYXkoZyk7aDxnO2grKyl2W2hdPWRbaF07cmV0dXJuIHZ9ZnVuY3Rpb24gVjVlKGQpe3JldHVybihWNWU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZyl7''@;'; + put 'put ''cmV0dXJuIHR5cGVvZiBnfTpmdW5jdGlvbihnKXtyZXR1cm4gZyYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZy5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZyE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGd9KShkKX1mdW5jdGlvbiBlaHQoZCxnKXtpZighKGQgaW5zdGFu''@;'; + put 'put ''Y2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX1mdW5jdGlvbiBpSWUoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJs''@;'; + put 'put ''ZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX1mdW5jdGlvbiB1TSgpe3JldHVybiB1TT0idW5kZWZpbmVkIiE9dHlwZW9mIFJlZmxlY3QmJlJlZmxlY3QuZ2V0P1JlZmxlY3QuZ2V0LmJpbmQoKTpmdW5jdGlvbihnLGgs''@;'; + put 'put ''dil7dmFyIHk9bmh0KGcsaCk7aWYoeSl7dmFyIEM9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih5LGgpO3JldHVybiBDLmdldD9DLmdldC5jYWxsKGFyZ3VtZW50cy5sZW5ndGg8Mz9nOnYpOkMudmFsdWV9fSx1TS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gbmh0KGQs''@;'; + put 'put ''Zyl7Zm9yKDshT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGQsZykmJm51bGwhPT0oZD1ZdihkKSk7KTtyZXR1cm4gZH1mdW5jdGlvbiBqNWUoZCxnKXtyZXR1cm4oajVlPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0''@;'; + put 'put ''aW9uKHYseSl7cmV0dXJuIHYuX19wcm90b19fPXksdn0pKGQsZyl9ZnVuY3Rpb24gb2h0KGQsZyl7aWYoZyYmKCJvYmplY3QiPT09VjVlKGcpfHwiZnVuY3Rpb24iPT10eXBlb2YgZykpcmV0dXJuIGc7aWYodm9pZCAwIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJEZXJpdmVkIGNvbnN0cnVj''@;'; + put 'put ''dG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0IG9yIHVuZGVmaW5lZCIpO3JldHVybiBaNWUoZCl9ZnVuY3Rpb24gWjVlKGQpe2lmKHZvaWQgMD09PWQpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBj''@;'; + put 'put ''YWxsZWQiKTtyZXR1cm4gZH1mdW5jdGlvbiBZdihkKXtyZXR1cm4oWXY9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24oaCl7cmV0dXJuIGguX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YoaCl9KShkKX1mdW5jdGlvbiBv''@;'; + put 'put ''SWUoZCxnLGgpeyhmdW5jdGlvbiBsaHQoZCxnKXtpZihnLmhhcyhkKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgaW5pdGlhbGl6ZSB0aGUgc2FtZSBwcml2YXRlIGVsZW1lbnRzIHR3aWNlIG9uIGFuIG9iamVjdCIpfSkoZCxnKSxnLnNldChkLGgpfWZ1bmN0aW9uIEZwKGQsZyl7cmV0''@;'; + put 'put ''dXJuIGZ1bmN0aW9uIHNodChkLGcpe3JldHVybiBnLmdldD9nLmdldC5jYWxsKGQpOmcudmFsdWV9KGQsYUllKGQsZywiZ2V0IikpfWZ1bmN0aW9uIFJ6KGQsZyxoKXtyZXR1cm4gZnVuY3Rpb24gdWh0KGQsZyxoKXtpZihnLnNldClnLnNldC5jYWxsKGQsaCk7ZWxzZXtpZighZy53cml0YWJs''@;'; + put 'put ''ZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJhdHRlbXB0ZWQgdG8gc2V0IHJlYWQgb25seSBwcml2YXRlIGZpZWxkIik7Zy52YWx1ZT1ofX0oZCxhSWUoZCxnLCJzZXQiKSxoKSxofWZ1bmN0aW9uIGFJZShkLGcsaCl7aWYoIWcuaGFzKGQpKXRocm93IG5ldyBUeXBlRXJyb3IoImF0dGVtcHRlZCB0''@;'; + put 'put ''byAiK2grIiBwcml2YXRlIGZpZWxkIG9uIG5vbi1pbnN0YW5jZSIpO3JldHVybiBnLmdldChkKX16by5nZXRTaW5nbGV0b24oKS5yZWdpc3RlcigiYmVmb3JlSGlkZVJvd3MiKSx6by5nZXRTaW5nbGV0b24oKS5yZWdpc3RlcigiYWZ0ZXJIaWRlUm93cyIpLHpvLmdldFNpbmdsZXRvbigpLnJl''@;'; + put 'put ''Z2lzdGVyKCJiZWZvcmVVbmhpZGVSb3dzIiksem8uZ2V0U2luZ2xldG9uKCkucmVnaXN0ZXIoImFmdGVyVW5oaWRlUm93cyIpO3ZhciB6NWU9ImhpZGRlblJvd3MiLFV2PW5ldyBXZWFrTWFwLEZnPW5ldyBXZWFrTWFwLGZodD1mdW5jdGlvbihkKXshZnVuY3Rpb24gcmh0KGQsZyl7aWYoImZ1''@;'; + put 'put ''bmN0aW9uIiE9dHlwZW9mIGcmJm51bGwhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uIik7ZC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShnJiZnLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOmQs''@;'; + put 'put ''d3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGcmJmo1ZShkLGcpfShoLGQpO3ZhciBnPWZ1bmN0aW9uIGlodChkKXt2YXIgZz1mdW5jdGlvbiBhaHQoKXtpZigidW5kZWZpbmVkIj09dHlwZW9m''@;'; + put 'put ''IFJlZmxlY3R8fCFSZWZsZWN0LmNvbnN0cnVjdHx8UmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT10eXBlb2YgUHJveHkpcmV0dXJuITA7dHJ5e3JldHVybiBCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVh''@;'; + put 'put ''bixbXSxmdW5jdGlvbigpe30pKSwhMH1jYXRjaChkKXtyZXR1cm4hMX19KCk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHksdj1ZdihkKTtpZihnKXt2YXIgQz1Zdih0aGlzKS5jb25zdHJ1Y3Rvcjt5PVJlZmxlY3QuY29uc3RydWN0KHYsYXJndW1lbnRzLEMpfWVsc2UgeT12LmFwcGx5KHRoaXMs''@;'; + put 'put ''YXJndW1lbnRzKTtyZXR1cm4gb2h0KHRoaXMseSl9fShoKTtmdW5jdGlvbiBoKCl7dmFyIHY7ZWh0KHRoaXMsaCk7Zm9yKHZhciB5PWFyZ3VtZW50cy5sZW5ndGgsQz1uZXcgQXJyYXkoeSksST0wO0k8eTtJKyspQ1tJXT1hcmd1bWVudHNbSV07cmV0dXJuIG9JZShaNWUodj1nLmNhbGwuYXBw''@;'; + put 'put ''bHkoZyxbdGhpc10uY29uY2F0KEMpKSksVXYse3dyaXRhYmxlOiEwLHZhbHVlOnt9fSksb0llKFo1ZSh2KSxGZyx7d3JpdGFibGU6ITAsdmFsdWU6bnVsbH0pLHZ9cmV0dXJuIGZ1bmN0aW9uIHRodChkLGcsaCl7ZyYmaUllKGQucHJvdG90eXBlLGcpLGgmJmlJZShkLGgpLE9iamVjdC5kZWZp''@;'; + put 'put ''bmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShoLFt7a2V5OiJpc0VuYWJsZWQiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuISF0aGlzLmhvdC5nZXRTZXR0aW5ncygpW3o1ZV19fSx7a2V5OiJlbmFibGVQbHVnaW4iLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcztp''@;'; + put 'put ''ZighdGhpcy5lbmFibGVkKXt2YXIgQz10aGlzLmhvdC5nZXRTZXR0aW5ncygpW3o1ZV07eGwoQykmJihSeih0aGlzLFV2LEMpLGExKEMuY29weVBhc3RlRW5hYmxlZCkmJihDLmNvcHlQYXN0ZUVuYWJsZWQ9ITApKSxSeih0aGlzLEZnLG5ldyBXZWUpLEZwKHRoaXMsRmcpLmFkZExvY2FsSG9v''@;'; + put 'put ''aygiaW5pdCIsZnVuY3Rpb24oKXtyZXR1cm4geS5vbk1hcEluaXQoKX0pLHRoaXMuaG90LnJvd0luZGV4TWFwcGVyLnJlZ2lzdGVyTWFwKHRoaXMucGx1Z2luTmFtZSxGcCh0aGlzLEZnKSksdGhpcy5hZGRIb29rKCJhZnRlckNvbnRleHRNZW51RGVmYXVsdE9wdGlvbnMiLGZ1bmN0aW9uKCl7''@;'; + put 'put ''cmV0dXJuIHkub25BZnRlckNvbnRleHRNZW51RGVmYXVsdE9wdGlvbnMuYXBwbHkoeSxhcmd1bWVudHMpfSksdGhpcy5hZGRIb29rKCJhZnRlckdldENlbGxNZXRhIixmdW5jdGlvbihJLGosdWUpe3JldHVybiB5Lm9uQWZ0ZXJHZXRDZWxsTWV0YShJLGosdWUpfSksdGhpcy5hZGRIb29rKCJt''@;'; + put 'put ''b2RpZnlSb3dIZWlnaHQiLGZ1bmN0aW9uKEksail7cmV0dXJuIHkub25Nb2RpZnlSb3dIZWlnaHQoSSxqKX0pLHRoaXMuYWRkSG9vaygiYWZ0ZXJHZXRSb3dIZWFkZXIiLGZ1bmN0aW9uKCl7cmV0dXJuIHkub25BZnRlckdldFJvd0hlYWRlci5hcHBseSh5LGFyZ3VtZW50cyl9KSx0aGlzLmFk''@;'; + put 'put ''ZEhvb2soIm1vZGlmeUNvcHlhYmxlUmFuZ2UiLGZ1bmN0aW9uKEkpe3JldHVybiB5Lm9uTW9kaWZ5Q29weWFibGVSYW5nZShJKX0pLHVNKFl2KGgucHJvdG90eXBlKSwiZW5hYmxlUGx1Z2luIix0aGlzKS5jYWxsKHRoaXMpfX19LHtrZXk6InVwZGF0ZVBsdWdpbiIsdmFsdWU6ZnVuY3Rpb24o''@;'; + put 'put ''KXt0aGlzLmRpc2FibGVQbHVnaW4oKSx0aGlzLmVuYWJsZVBsdWdpbigpLHVNKFl2KGgucHJvdG90eXBlKSwidXBkYXRlUGx1Z2luIix0aGlzKS5jYWxsKHRoaXMpfX0se2tleToiZGlzYWJsZVBsdWdpbiIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmhvdC5yb3dJbmRleE1hcHBlci51bnJlZ2lz''@;'; + put 'put ''dGVyTWFwKHRoaXMucGx1Z2luTmFtZSksUnoodGhpcyxVdix7fSksdU0oWXYoaC5wcm90b3R5cGUpLCJkaXNhYmxlUGx1Z2luIix0aGlzKS5jYWxsKHRoaXMpLHRoaXMucmVzZXRDZWxsc01ldGEoKX19LHtrZXk6InNob3dSb3dzIix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz10aGlzLEk9dGhp''@;'; + put 'put ''cy5nZXRIaWRkZW5Sb3dzKCksaj10aGlzLmlzVmFsaWRDb25maWcoeSksdWU9SSxfZT1GcCh0aGlzLEZnKS5nZXRWYWx1ZXMoKS5zbGljZSgpLEJlPXkubGVuZ3RoPjA7aiYmQmUmJihVcih5Lm1hcChmdW5jdGlvbihkdCl7cmV0dXJuIEMuaG90LnRvUGh5c2ljYWxSb3coZHQpfSksZnVuY3Rp''@;'; + put 'put ''b24oZHQpe19lW2R0XT0hMX0pLHVlPVN1KF9lLGZ1bmN0aW9uKGR0LE90LCR0KXtyZXR1cm4gT3QmJmR0LnB1c2goQy5ob3QudG9WaXN1YWxSb3coJHQpKSxkdH0sW10pKSwhMSE9PXRoaXMuaG90LnJ1bkhvb2tzKCJiZWZvcmVVbmhpZGVSb3dzIixJLHVlLGomJkJlKSYmKGomJkJlJiZGcCh0''@;'; + put 'put ''aGlzLEZnKS5zZXRWYWx1ZXMoX2UpLHRoaXMuaG90LnJ1bkhvb2tzKCJhZnRlclVuaGlkZVJvd3MiLEksdWUsaiYmQmUsaiYmdWUubGVuZ3RoPEkubGVuZ3RoKSl9fSx7a2V5OiJzaG93Um93Iix2YWx1ZTpmdW5jdGlvbigpe2Zvcih2YXIgeT1hcmd1bWVudHMubGVuZ3RoLEM9bmV3IEFycmF5''@;'; + put 'put ''KHkpLEk9MDtJPHk7SSsrKUNbSV09YXJndW1lbnRzW0ldO3RoaXMuc2hvd1Jvd3MoQyl9fSx7a2V5OiJoaWRlUm93cyIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEM9dGhpcyxJPXRoaXMuZ2V0SGlkZGVuUm93cygpLGo9dGhpcy5pc1ZhbGlkQ29uZmlnKHkpLHVlPUk7aiYmKHVlPUFycmF5LmZy''@;'; + put 'put ''b20obmV3IFNldChJLmNvbmNhdCh5KSkpKSwhMSE9PXRoaXMuaG90LnJ1bkhvb2tzKCJiZWZvcmVIaWRlUm93cyIsSSx1ZSxqKSYmKGomJnRoaXMuaG90LmJhdGNoRXhlY3V0aW9uKGZ1bmN0aW9uKCl7VXIoeSxmdW5jdGlvbihCZSl7RnAoQyxGZykuc2V0VmFsdWVBdEluZGV4KEMuaG90LnRv''@;'; + put 'put ''UGh5c2ljYWxSb3coQmUpLCEwKX0pfSwhMCksdGhpcy5ob3QucnVuSG9va3MoImFmdGVySGlkZVJvd3MiLEksdWUsaixqJiZ1ZS5sZW5ndGg+SS5sZW5ndGgpKX19LHtrZXk6ImhpZGVSb3ciLHZhbHVlOmZ1bmN0aW9uKCl7Zm9yKHZhciB5PWFyZ3VtZW50cy5sZW5ndGgsQz1uZXcgQXJyYXko''@;'; + put 'put ''eSksST0wO0k8eTtJKyspQ1tJXT1hcmd1bWVudHNbSV07dGhpcy5oaWRlUm93cyhDKX19LHtrZXk6ImdldEhpZGRlblJvd3MiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcztyZXR1cm4gT2woRnAodGhpcyxGZykuZ2V0SGlkZGVuSW5kZXhlcygpLGZ1bmN0aW9uKEMpe3JldHVybiB5Lmhv''@;'; + put 'put ''dC50b1Zpc3VhbFJvdyhDKX0pfX0se2tleToiaXNIaWRkZW4iLHZhbHVlOmZ1bmN0aW9uKHkpe3JldHVybiBGcCh0aGlzLEZnKS5nZXRWYWx1ZUF0SW5kZXgodGhpcy5ob3QudG9QaHlzaWNhbFJvdyh5KSl8fCExfX0se2tleToiaXNWYWxpZENvbmZpZyIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFy''@;'; + put 'put ''IEM9dGhpcy5ob3QuY291bnRSb3dzKCk7cmV0dXJuISEoQXJyYXkuaXNBcnJheSh5KSYmeS5sZW5ndGg+MCkmJnkuZXZlcnkoZnVuY3Rpb24oSSl7cmV0dXJuIE51bWJlci5pc0ludGVnZXIoSSkmJkk+PTAmJkk8Q30pfX0se2tleToicmVzZXRDZWxsc01ldGEiLHZhbHVlOmZ1bmN0aW9uKCl7''@;'; + put 'put ''VXIodGhpcy5ob3QuZ2V0Q2VsbHNNZXRhKCksZnVuY3Rpb24oeSl7eSYmKHkuc2tpcFJvd09uUGFzdGU9ITEpfSl9fSx7a2V5OiJvbk1vZGlmeVJvd0hlaWdodCIsdmFsdWU6ZnVuY3Rpb24oeSxDKXtyZXR1cm4gdGhpcy5pc0hpZGRlbihDKT8wOnl9fSx7a2V5OiJvbkFmdGVyR2V0Q2VsbE1l''@;'; + put 'put ''dGEiLHZhbHVlOmZ1bmN0aW9uKHksQyxJKXtpZighMT09PUZwKHRoaXMsVXYpLmNvcHlQYXN0ZUVuYWJsZWQmJnRoaXMuaXNIaWRkZW4oeSkmJihJLnNraXBSb3dPblBhc3RlPSEwKSx0aGlzLmlzSGlkZGVuKHktMSkpSS5jbGFzc05hbWU9SS5jbGFzc05hbWV8fCIiLC0xPT09SS5jbGFzc05h''@;'; + put 'put ''bWUuaW5kZXhPZigiYWZ0ZXJIaWRkZW5Sb3ciKSYmKEkuY2xhc3NOYW1lKz0iIGFmdGVySGlkZGVuUm93Iik7ZWxzZSBpZihJLmNsYXNzTmFtZSl7dmFyIGo9SS5jbGFzc05hbWUuc3BsaXQoIiAiKTtpZihqLmxlbmd0aD4wKXt2YXIgdWU9ai5pbmRleE9mKCJhZnRlckhpZGRlblJvdyIpO3Vl''@;'; + put 'put ''Pi0xJiZqLnNwbGljZSh1ZSwxKSxJLmNsYXNzTmFtZT1qLmpvaW4oIiAiKX19fX0se2tleToib25Nb2RpZnlDb3B5YWJsZVJhbmdlIix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz10aGlzO2lmKEZwKHRoaXMsVXYpLmNvcHlQYXN0ZUVuYWJsZWQpcmV0dXJuIHk7dmFyIEk9W10saj1mdW5jdGlv''@;'; + put 'put ''bihfZSxCZSxOZSxLZSl7SS5wdXNoKHtzdGFydFJvdzpfZSxlbmRSb3c6QmUsc3RhcnRDb2w6TmUsZW5kQ29sOktlfSl9O3JldHVybiBVcih5LGZ1bmN0aW9uKHVlKXt2YXIgX2U9ITAsQmU9MDtpYSh1ZS5zdGFydFJvdyx1ZS5lbmRSb3csZnVuY3Rpb24oTmUpe0MuaXNIaWRkZW4oTmUpPyhf''@;'; + put 'put ''ZXx8aihCZSxOZS0xLHVlLnN0YXJ0Q29sLHVlLmVuZENvbCksX2U9ITApOihfZSYmKEJlPU5lKSxOZT09PXVlLmVuZFJvdyYmaihCZSxOZSx1ZS5zdGFydENvbCx1ZS5lbmRDb2wpLF9lPSExKX0pfSksSX19LHtrZXk6Im9uQWZ0ZXJHZXRSb3dIZWFkZXIiLHZhbHVlOmZ1bmN0aW9uKHksQyl7''@;'; + put 'put ''aWYoRnAodGhpcyxVdikuaW5kaWNhdG9ycyYmISh5PDApKXt2YXIgST1bXTt5Pj0xJiZ0aGlzLmlzSGlkZGVuKHktMSkmJkkucHVzaCgiYWZ0ZXJIaWRkZW5Sb3ciKSx5PHRoaXMuaG90LmNvdW50Um93cygpLTEmJnRoaXMuaXNIaWRkZW4oeSsxKSYmSS5wdXNoKCJiZWZvcmVIaWRkZW5Sb3ci''@;'; + put 'put ''KSxPMChDLEkpfX19LHtrZXk6Im9uQWZ0ZXJDb250ZXh0TWVudURlZmF1bHRPcHRpb25zIix2YWx1ZTpmdW5jdGlvbih5KXt5Lml0ZW1zLnB1c2goe25hbWU6V2x9LGZ1bmN0aW9uIFFmdChkKXtyZXR1cm57a2V5OiJoaWRkZW5fcm93c19oaWRlIixuYW1lOmZ1bmN0aW9uKCl7dmFyIGg9dGhp''@;'; + put 'put ''cy5nZXRTZWxlY3RlZExhc3QoKSx2PTA7aWYoQXJyYXkuaXNBcnJheShoKSl7dmFyIHk9ZnVuY3Rpb24gemZ0KGQsZyl7cmV0dXJuIGZ1bmN0aW9uIFVmdChkKXtpZihBcnJheS5pc0FycmF5KGQpKXJldHVybiBkfShkKXx8ZnVuY3Rpb24gWWZ0KGQsZyl7dmFyIGg9bnVsbD09ZD9udWxsOiJ1''@;'; + put 'put ''bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZkW1N5bWJvbC5pdGVyYXRvcl18fGRbIkBAaXRlcmF0b3IiXTtpZihudWxsIT1oKXt2YXIgSSxqLHY9W10seT0hMCxDPSExO3RyeXtmb3IoaD1oLmNhbGwoZCk7ISh5PShJPWgubmV4dCgpKS5kb25lKSYmKHYucHVzaChJLnZhbHVlKSwhZ3x8di5s''@;'; + put 'put ''ZW5ndGghPT1nKTt5PSEwKTt9Y2F0Y2godWUpe0M9ITAsaj11ZX1maW5hbGx5e3RyeXsheSYmbnVsbCE9aC5yZXR1cm4mJmgucmV0dXJuKCl9ZmluYWxseXtpZihDKXRocm93IGp9fXJldHVybiB2fX0oZCxnKXx8ZnVuY3Rpb24gV2Z0KGQsZyl7aWYoZCl7aWYoInN0cmluZyI9PXR5cGVvZiBk''@;'; + put 'put ''KXJldHVybiBySWUoZCxnKTt2YXIgaD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZCkuc2xpY2UoOCwtMSk7aWYoIk9iamVjdCI9PT1oJiZkLmNvbnN0cnVjdG9yJiYoaD1kLmNvbnN0cnVjdG9yLm5hbWUpLCJNYXAiPT09aHx8IlNldCI9PT1oKXJldHVybiBBcnJheS5mcm9tKGQp''@;'; + put 'put ''O2lmKCJBcmd1bWVudHMiPT09aHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QoaCkpcmV0dXJuIHJJZShkLGcpfX0oZCxnKXx8ZnVuY3Rpb24gR2Z0KCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5v''@;'; + put 'put ''bi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX0oaCwzKTt5WzBdLXlbMl0hPTAmJih2PTEpfXJldHVybiB0aGlzLmdldFRyYW5zbGF0ZWRQaHJh''@;'; + put 'put ''c2Uoc3BlLHYpfSxjYWxsYmFjazpmdW5jdGlvbigpe2Zvcih2YXIgaD10aGlzLmdldFNlbGVjdGVkUmFuZ2VMYXN0KCksdj1oLmZyb20seT1oLnRvLEM9TWF0aC5tYXgoTWF0aC5taW4odi5yb3cseS5yb3cpLDApLEk9TWF0aC5tYXgodi5yb3cseS5yb3cpLGo9W10sdWU9Qzt1ZTw9STt1ZSs9''@;'; + put 'put ''MSlqLnB1c2godWUpO2QuaGlkZVJvd3Moaik7dmFyIEJlPXRoaXMucm93SW5kZXhNYXBwZXIuZ2V0TmVhcmVzdE5vdEhpZGRlbkluZGV4KGpbai5sZW5ndGgtMV0sMSwhMCk7TnVtYmVyLmlzSW50ZWdlcihCZSkmJkJlPj0wP3RoaXMuc2VsZWN0Um93cyhCZSk6dGhpcy5kZXNlbGVjdENlbGwo''@;'; + put 'put ''KSx0aGlzLnJlbmRlcigpLHRoaXMudmlldy5hZGp1c3RFbGVtZW50c1NpemUoITApfSxkaXNhYmxlZDohMSxoaWRkZW46ZnVuY3Rpb24oKXtyZXR1cm4hKHRoaXMuc2VsZWN0aW9uLmlzU2VsZWN0ZWRCeVJvd0hlYWRlcigpfHx0aGlzLnNlbGVjdGlvbi5pc1NlbGVjdGVkQnlDb3JuZXIoKSl9''@;'; + put 'put ''fX0odGhpcyksZnVuY3Rpb24gcWZ0KGQpe3ZhciBnPVtdO3JldHVybntrZXk6ImhpZGRlbl9yb3dzX3Nob3ciLG5hbWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXRUcmFuc2xhdGVkUGhyYXNlKHVwZSxnLmxlbmd0aD4xPzE6MCl9LGNhbGxiYWNrOmZ1bmN0aW9uKCl7dmFyIHYseTtpZigw''@;'; + put 'put ''IT09Zy5sZW5ndGgpe3ZhciBDPWdbMF0sST1nW2cubGVuZ3RoLTFdO0M9bnVsbCE9PSh2PXRoaXMucm93SW5kZXhNYXBwZXIuZ2V0TmVhcmVzdE5vdEhpZGRlbkluZGV4KEMtMSwtMSkpJiZ2b2lkIDAhPT12P3Y6MCxJPW51bGwhPT0oeT10aGlzLnJvd0luZGV4TWFwcGVyLmdldE5lYXJlc3RO''@;'; + put 'put ''b3RIaWRkZW5JbmRleChJKzEsMSkpJiZ2b2lkIDAhPT15P3k6dGhpcy5jb3VudFJvd3MoKS0xLGQuc2hvd1Jvd3MoZyksdGhpcy5yZW5kZXIoKSx0aGlzLnZpZXcuYWRqdXN0RWxlbWVudHNTaXplKCEwKSxJLUMrMT09PXRoaXMuY291bnRSb3dzKCl8fHRoaXMuc2VsZWN0Um93cyhDLEkpfX0s''@;'; + put 'put ''ZGlzYWJsZWQ6ITEsaGlkZGVuOmZ1bmN0aW9uKCl7dmFyIHY9dGhpcyx5PU9sKGQuZ2V0SGlkZGVuUm93cygpLGZ1bmN0aW9uKGlyKXtyZXR1cm4gdi50b1BoeXNpY2FsUm93KGlyKX0pO2lmKCF0aGlzLnNlbGVjdGlvbi5pc1NlbGVjdGVkQnlSb3dIZWFkZXIoKSYmIXRoaXMuc2VsZWN0aW9u''@;'; + put 'put ''LmlzU2VsZWN0ZWRCeUNvcm5lcigpfHx5Lmxlbmd0aDwxKXJldHVybiEwO2cubGVuZ3RoPTA7dmFyIEM9dGhpcy5nZXRTZWxlY3RlZFJhbmdlTGFzdCgpLEk9Qy5nZXRUb3BTdGFydENvcm5lcigpLnJvdyxqPUMuZ2V0Qm90dG9tRW5kQ29ybmVyKCkucm93LHVlPXRoaXMucm93SW5kZXhNYXBw''@;'; + put 'put ''ZXIsX2U9dWUuZ2V0UmVuZGVyYWJsZUZyb21WaXN1YWxJbmRleChJKSxCZT11ZS5nZXRSZW5kZXJhYmxlRnJvbVZpc3VhbEluZGV4KGopLE5lPXVlLmdldE5vdFRyaW1tZWRJbmRleGVzKCksS2U9W107aWYoSSE9PWope2lmKGotSSsxPkJlLV9lKzEpe3ZhciAkdD1OZS5zbGljZShJLGorMSk7''@;'; + put 'put ''S2UucHVzaC5hcHBseShLZSx2bmUoJHQuZmlsdGVyKGZ1bmN0aW9uKGlyKXtyZXR1cm4geS5pbmNsdWRlcyhpcil9KSkpfX1lbHNlIGlmKDA9PT1fZSYmX2U8SSlLZS5wdXNoLmFwcGx5KEtlLHZuZShOZS5zbGljZSgwLEkpKSk7ZWxzZSBpZihudWxsPT09X2UpS2UucHVzaC5hcHBseShLZSx2''@;'; + put 'put ''bmUoTmUuc2xpY2UoMCx0aGlzLmNvdW50Um93cygpKSkpO2Vsc2V7dmFyIGZuPXRoaXMuY291bnRSb3dzKCktMTtCZT09PXVlLmdldFJlbmRlcmFibGVGcm9tVmlzdWFsSW5kZXgodWUuZ2V0TmVhcmVzdE5vdEhpZGRlbkluZGV4KGZuLC0xKSkmJmZuPmomJktlLnB1c2guYXBwbHkoS2Usdm5l''@;'; + put 'put ''KE5lLnNsaWNlKGorMSkpKX1yZXR1cm4gVXIoS2UsZnVuY3Rpb24oaXIpe2cucHVzaCh2LnRvVmlzdWFsUm93KGlyKSl9KSwwPT09Zy5sZW5ndGh9fX0odGhpcykpfX0se2tleToib25NYXBJbml0Iix2YWx1ZTpmdW5jdGlvbigpe0FycmF5LmlzQXJyYXkoRnAodGhpcyxVdikucm93cykmJnRo''@;'; + put 'put ''aXMuaGlkZVJvd3MoRnAodGhpcyxVdikucm93cyl9fSx7a2V5OiJkZXN0cm95Iix2YWx1ZTpmdW5jdGlvbigpe1J6KHRoaXMsVXYsbnVsbCksUnoodGhpcyxGZyxudWxsKSx1TShZdihoLnByb3RvdHlwZSksImRlc3Ryb3kiLHRoaXMpLmNhbGwodGhpcyl9fV0sW3trZXk6IlBMVUdJTl9LRVki''@;'; + put 'put ''LGdldDpmdW5jdGlvbigpe3JldHVybiB6NWV9fSx7a2V5OiJQTFVHSU5fUFJJT1JJVFkiLGdldDpmdW5jdGlvbigpe3JldHVybiAzMjB9fV0pLGh9KFlzKTtmdW5jdGlvbiBsSWUoZCxnKXsobnVsbD09Z3x8Zz5kLmxlbmd0aCkmJihnPWQubGVuZ3RoKTtmb3IodmFyIGg9MCx2PW5ldyBBcnJh''@;'; + put 'put ''eShnKTtoPGc7aCsrKXZbaF09ZFtoXTtyZXR1cm4gdn1mdW5jdGlvbiBzSWUoZCxnKXsobnVsbD09Z3x8Zz5kLmxlbmd0aCkmJihnPWQubGVuZ3RoKTtmb3IodmFyIGg9MCx2PW5ldyBBcnJheShnKTtoPGc7aCsrKXZbaF09ZFtoXTtyZXR1cm4gdn1mdW5jdGlvbiBHNWUoZCl7cmV0dXJuKEc1''@;'; + put 'put ''ZT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihnKXtyZXR1cm4gdHlwZW9mIGd9OmZ1bmN0aW9uKGcpe3JldHVybiBnJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZnLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZn''@;'; + put 'put ''IT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgZ30pKGQpfWZ1bmN0aW9uIHVJZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53''@;'; + put 'put ''cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fWZ1bmN0aW9uIHFPKCl7cmV0dXJuIHFPPSJ1bmRlZmluZWQiIT10eXBlb2YgUmVmbGVjdCYmUmVmbGVjdC5nZXQ/UmVmbGVjdC5nZXQuYmluZCgpOmZ1bmN0aW9uKGcsaCx2KXt2YXIgeT1NaHQoZyxoKTtpZih5''@;'; + put 'put ''KXt2YXIgQz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHksaCk7cmV0dXJuIEMuZ2V0P0MuZ2V0LmNhbGwoYXJndW1lbnRzLmxlbmd0aDwzP2c6dik6Qy52YWx1ZX19LHFPLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBNaHQoZCxnKXtmb3IoOyFPYmplY3QucHJvdG90''@;'; + put 'put ''eXBlLmhhc093blByb3BlcnR5LmNhbGwoZCxnKSYmbnVsbCE9PShkPVd3KGQpKTspO3JldHVybiBkfWZ1bmN0aW9uIFc1ZShkLGcpe3JldHVybihXNWU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24odix5KXtyZXR1cm4gdi5fX3By''@;'; + put 'put ''b3RvX189eSx2fSkoZCxnKX1mdW5jdGlvbiBUaHQoZCxnKXtpZihnJiYoIm9iamVjdCI9PT1HNWUoZyl8fCJmdW5jdGlvbiI9PXR5cGVvZiBnKSlyZXR1cm4gZztpZih2b2lkIDAhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIkRlcml2ZWQgY29uc3RydWN0b3JzIG1heSBvbmx5IHJldHVybiBv''@;'; + put 'put ''YmplY3Qgb3IgdW5kZWZpbmVkIik7cmV0dXJuIGNJZShkKX1mdW5jdGlvbiBjSWUoZCl7aWYodm9pZCAwPT09ZCl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3JldHVybiBkfWZ1bmN0''@;'; + put 'put ''aW9uIFd3KGQpe3JldHVybihXdz1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihoKXtyZXR1cm4gaC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihoKX0pKGQpfXpvLmdldFNpbmdsZXRvbigpLnJlZ2lzdGVyKCJiZWZv''@;'; + put 'put ''cmVDb2x1bW5GcmVlemUiKSx6by5nZXRTaW5nbGV0b24oKS5yZWdpc3RlcigiYWZ0ZXJDb2x1bW5GcmVlemUiKSx6by5nZXRTaW5nbGV0b24oKS5yZWdpc3RlcigiYmVmb3JlQ29sdW1uVW5mcmVlemUiKSx6by5nZXRTaW5nbGV0b24oKS5yZWdpc3RlcigiYWZ0ZXJDb2x1bW5VbmZyZWV6ZSIp''@;'; + put 'put ''O3ZhciBmSWU9Im1hbnVhbENvbHVtbkZyZWV6ZSIsQno9bmV3IFdlYWtNYXAsTGh0PWZ1bmN0aW9uKGQpeyFmdW5jdGlvbiBFaHQoZCxnKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZyYmbnVsbCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBi''@;'; + put 'put ''ZSBudWxsIG9yIGEgZnVuY3Rpb24iKTtkLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGcmJmcucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6ZCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiEx''@;'; + put 'put ''fSksZyYmVzVlKGQsZyl9KGgsZCk7dmFyIGc9ZnVuY3Rpb24geGh0KGQpe3ZhciBnPWZ1bmN0aW9uIElodCgpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0fHxSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5''@;'; + put 'put ''cGVvZiBQcm94eSlyZXR1cm4hMDt0cnl7cmV0dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLGZ1bmN0aW9uKCl7fSkpLCEwfWNhdGNoKGQpe3JldHVybiExfX0oKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgeSx2PVd3KGQpO2lm''@;'; + put 'put ''KGcpe3ZhciBDPVd3KHRoaXMpLmNvbnN0cnVjdG9yO3k9UmVmbGVjdC5jb25zdHJ1Y3Qodixhcmd1bWVudHMsQyl9ZWxzZSB5PXYuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBUaHQodGhpcyx5KX19KGgpO2Z1bmN0aW9uIGgodil7dmFyIHk7cmV0dXJuIGZ1bmN0aW9uIGtodChkLGcp''@;'; + put 'put ''e2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSh0aGlzLGgpLHk9Zy5jYWxsKHRoaXMsdiksQnouc2V0KGNJZSh5KSx7YWZ0ZXJGaXJzdFVzZTohMX0pLHl9cmV0dXJuIGZ1bmN0aW9uIFNodChkLGcs''@;'; + put 'put ''aCl7ZyYmdUllKGQucHJvdG90eXBlLGcpLGgmJnVJZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShoLFt7a2V5OiJpc0VuYWJsZWQiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuISF0aGlzLmhvdC5nZXRTZXR0aW5ncygpW2ZJZV19fSx7''@;'; + put 'put ''a2V5OiJlbmFibGVQbHVnaW4iLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpczt0aGlzLmVuYWJsZWR8fCh0aGlzLmFkZEhvb2soImFmdGVyQ29udGV4dE1lbnVEZWZhdWx0T3B0aW9ucyIsZnVuY3Rpb24oQyl7cmV0dXJuIHkuYWRkQ29udGV4dE1lbnVFbnRyeShDKX0pLHRoaXMuYWRkSG9v''@;'; + put 'put ''aygiYmVmb3JlQ29sdW1uTW92ZSIsZnVuY3Rpb24oQyxJKXtyZXR1cm4geS5vbkJlZm9yZUNvbHVtbk1vdmUoQyxJKX0pLHFPKFd3KGgucHJvdG90eXBlKSwiZW5hYmxlUGx1Z2luIix0aGlzKS5jYWxsKHRoaXMpKX19LHtrZXk6ImRpc2FibGVQbHVnaW4iLHZhbHVlOmZ1bmN0aW9uKCl7Qnou''@;'; + put 'put ''Z2V0KHRoaXMpLmFmdGVyRmlyc3RVc2U9ITEscU8oV3coaC5wcm90b3R5cGUpLCJkaXNhYmxlUGx1Z2luIix0aGlzKS5jYWxsKHRoaXMpfX0se2tleToidXBkYXRlUGx1Z2luIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuZGlzYWJsZVBsdWdpbigpLHRoaXMuZW5hYmxlUGx1Z2luKCkscU8oV3co''@;'; + put 'put ''aC5wcm90b3R5cGUpLCJ1cGRhdGVQbHVnaW4iLHRoaXMpLmNhbGwodGhpcyl9fSx7a2V5OiJmcmVlemVDb2x1bW4iLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPUJ6LmdldCh0aGlzKSxJPXRoaXMuaG90LmdldFNldHRpbmdzKCksaj1JLmZpeGVkQ29sdW1uc1N0YXJ0PHRoaXMuaG90LmNvdW50''@;'; + put 'put ''Q29scygpJiZ5PkkuZml4ZWRDb2x1bW5zU3RhcnQtMTtDLmFmdGVyRmlyc3RVc2V8fChDLmFmdGVyRmlyc3RVc2U9ITApLCExIT09dGhpcy5ob3QucnVuSG9va3MoImJlZm9yZUNvbHVtbkZyZWV6ZSIseSxqKSYmKGomJih0aGlzLmhvdC5jb2x1bW5JbmRleE1hcHBlci5tb3ZlSW5kZXhlcyh5''@;'; + put 'put ''LEkuZml4ZWRDb2x1bW5zU3RhcnQpLEkuX2ZpeGVkQ29sdW1uc1N0YXJ0Kz0xKSx0aGlzLmhvdC5ydW5Ib29rcygiYWZ0ZXJDb2x1bW5GcmVlemUiLHksaikpfX0se2tleToidW5mcmVlemVDb2x1bW4iLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPUJ6LmdldCh0aGlzKSxJPXRoaXMuaG90Lmdl''@;'; + put 'put ''dFNldHRpbmdzKCksaj1JLmZpeGVkQ29sdW1uc1N0YXJ0PjAmJnk8PUkuZml4ZWRDb2x1bW5zU3RhcnQtMTtDLmFmdGVyRmlyc3RVc2V8fChDLmFmdGVyRmlyc3RVc2U9ITApLCExIT09dGhpcy5ob3QucnVuSG9va3MoImJlZm9yZUNvbHVtblVuZnJlZXplIix5LGopJiYoaiYmKEkuX2ZpeGVk''@;'; + put 'put ''Q29sdW1uc1N0YXJ0LT0xLHRoaXMuaG90LmNvbHVtbkluZGV4TWFwcGVyLm1vdmVJbmRleGVzKHksSS5maXhlZENvbHVtbnNTdGFydCkpLHRoaXMuaG90LnJ1bkhvb2tzKCJhZnRlckNvbHVtblVuZnJlZXplIix5LGopKX19LHtrZXk6ImFkZENvbnRleHRNZW51RW50cnkiLHZhbHVlOmZ1bmN0''@;'; + put 'put ''aW9uKHkpe3kuaXRlbXMucHVzaCh7bmFtZToiLS0tLS0tLS0tIn0sZnVuY3Rpb24gdmh0KGQpe3JldHVybntrZXk6ImZyZWV6ZV9jb2x1bW4iLG5hbWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXRUcmFuc2xhdGVkUGhyYXNlKFA0ZSl9LGNhbGxiYWNrOmZ1bmN0aW9uKGgsdil7dmFyIHk9''@;'; + put 'put ''ZnVuY3Rpb24gaGh0KGQsZyl7cmV0dXJuIGZ1bmN0aW9uIG1odChkKXtpZihBcnJheS5pc0FycmF5KGQpKXJldHVybiBkfShkKXx8ZnVuY3Rpb24gZ2h0KGQsZyl7dmFyIGg9bnVsbD09ZD9udWxsOiJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZkW1N5bWJvbC5pdGVyYXRvcl18fGRbIkBA''@;'; + put 'put ''aXRlcmF0b3IiXTtpZihudWxsIT1oKXt2YXIgSSxqLHY9W10seT0hMCxDPSExO3RyeXtmb3IoaD1oLmNhbGwoZCk7ISh5PShJPWgubmV4dCgpKS5kb25lKSYmKHYucHVzaChJLnZhbHVlKSwhZ3x8di5sZW5ndGghPT1nKTt5PSEwKTt9Y2F0Y2godWUpe0M9ITAsaj11ZX1maW5hbGx5e3RyeXsh''@;'; + put 'put ''eSYmbnVsbCE9aC5yZXR1cm4mJmgucmV0dXJuKCl9ZmluYWxseXtpZihDKXRocm93IGp9fXJldHVybiB2fX0oZCxnKXx8ZnVuY3Rpb24gcGh0KGQsZyl7aWYoZCl7aWYoInN0cmluZyI9PXR5cGVvZiBkKXJldHVybiBsSWUoZCxnKTt2YXIgaD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNh''@;'; + put 'put ''bGwoZCkuc2xpY2UoOCwtMSk7aWYoIk9iamVjdCI9PT1oJiZkLmNvbnN0cnVjdG9yJiYoaD1kLmNvbnN0cnVjdG9yLm5hbWUpLCJNYXAiPT09aHx8IlNldCI9PT1oKXJldHVybiBBcnJheS5mcm9tKGQpO2lmKCJBcmd1bWVudHMiPT09aHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFt''@;'; + put 'put ''cGVkKT9BcnJheSQvLnRlc3QoaCkpcmV0dXJuIGxJZShkLGcpfX0oZCxnKXx8ZnVuY3Rpb24gZGh0KCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24t''@;'; + put 'put ''YXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX0odiwxKTtkLmZyZWV6ZUNvbHVtbih5WzBdLnN0YXJ0LmNvbCksdGhpcy5yZW5kZXIoKSx0aGlzLnZpZXcuYWRqdXN0RWxlbWVudHNTaXplKCEwKX0saGlkZGVuOmZ1bmN0aW9uKCl7dmFy''@;'; + put 'put ''IGg9dGhpcy5nZXRTZWxlY3RlZFJhbmdlKCksdj0hMTtyZXR1cm4odm9pZCAwPT09aHx8aC5sZW5ndGg+MXx8aFswXS5mcm9tLmNvbCE9PWhbMF0udG8uY29sfHxoWzBdLmZyb20uY29sPD10aGlzLmdldFNldHRpbmdzKCkuZml4ZWRDb2x1bW5zU3RhcnQtMSkmJih2PSEwKSx2fX19KHRoaXMp''@;'; + put 'put ''LGZ1bmN0aW9uIENodChkKXtyZXR1cm57a2V5OiJ1bmZyZWV6ZV9jb2x1bW4iLG5hbWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXRUcmFuc2xhdGVkUGhyYXNlKEY0ZSl9LGNhbGxiYWNrOmZ1bmN0aW9uKGgsdil7dmFyIHk9ZnVuY3Rpb24gQWh0KGQsZyl7cmV0dXJuIGZ1bmN0aW9uIF9o''@;'; + put 'put ''dChkKXtpZihBcnJheS5pc0FycmF5KGQpKXJldHVybiBkfShkKXx8ZnVuY3Rpb24gYmh0KGQsZyl7dmFyIGg9bnVsbD09ZD9udWxsOiJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZkW1N5bWJvbC5pdGVyYXRvcl18fGRbIkBAaXRlcmF0b3IiXTtpZihudWxsIT1oKXt2YXIgSSxqLHY9W10s''@;'; + put 'put ''eT0hMCxDPSExO3RyeXtmb3IoaD1oLmNhbGwoZCk7ISh5PShJPWgubmV4dCgpKS5kb25lKSYmKHYucHVzaChJLnZhbHVlKSwhZ3x8di5sZW5ndGghPT1nKTt5PSEwKTt9Y2F0Y2godWUpe0M9ITAsaj11ZX1maW5hbGx5e3RyeXsheSYmbnVsbCE9aC5yZXR1cm4mJmgucmV0dXJuKCl9ZmluYWxs''@;'; + put 'put ''eXtpZihDKXRocm93IGp9fXJldHVybiB2fX0oZCxnKXx8ZnVuY3Rpb24gd2h0KGQsZyl7aWYoZCl7aWYoInN0cmluZyI9PXR5cGVvZiBkKXJldHVybiBzSWUoZCxnKTt2YXIgaD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZCkuc2xpY2UoOCwtMSk7aWYoIk9iamVjdCI9PT1oJiZk''@;'; + put 'put ''LmNvbnN0cnVjdG9yJiYoaD1kLmNvbnN0cnVjdG9yLm5hbWUpLCJNYXAiPT09aHx8IlNldCI9PT1oKXJldHVybiBBcnJheS5mcm9tKGQpO2lmKCJBcmd1bWVudHMiPT09aHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QoaCkpcmV0dXJuIHNJZShkLGcp''@;'; + put 'put ''fX0oZCxnKXx8ZnVuY3Rpb24geWh0KCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0''@;'; + put 'put ''ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX0odiwxKTtkLnVuZnJlZXplQ29sdW1uKHlbMF0uc3RhcnQuY29sKSx0aGlzLnJlbmRlcigpLHRoaXMudmlldy5hZGp1c3RFbGVtZW50c1NpemUoITApfSxoaWRkZW46ZnVuY3Rpb24oKXt2YXIgaD10aGlzLmdldFNlbGVjdGVkUmFuZ2UoKSx2PSExO3Jl''@;'; + put 'put ''dHVybih2b2lkIDA9PT1ofHxoLmxlbmd0aD4xfHxoWzBdLmZyb20uY29sIT09aFswXS50by5jb2x8fGhbMF0uZnJvbS5jb2w+PXRoaXMuZ2V0U2V0dGluZ3MoKS5maXhlZENvbHVtbnNTdGFydCkmJih2PSEwKSx2fX19KHRoaXMpKX19LHtrZXk6Im9uQmVmb3JlQ29sdW1uTW92ZSIsdmFsdWU6''@;'; + put 'put ''ZnVuY3Rpb24oeSxDKXtpZihCei5nZXQodGhpcykuYWZ0ZXJGaXJzdFVzZSl7dmFyIGo9dGhpcy5ob3QuZ2V0U2V0dGluZ3MoKS5maXhlZENvbHVtbnNTdGFydDtpZihDPGp8fHkuc29tZShmdW5jdGlvbih1ZSl7cmV0dXJuIHVlPGp9KSlyZXR1cm4hMX19fV0sW3trZXk6IlBMVUdJTl9LRVki''@;'; + put 'put ''LGdldDpmdW5jdGlvbigpe3JldHVybiBmSWV9fSx7a2V5OiJQTFVHSU5fUFJJT1JJVFkiLGdldDpmdW5jdGlvbigpe3JldHVybiAxMTB9fV0pLGh9KFlzKTtmdW5jdGlvbiBoSWUoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVt''@;'; + put 'put ''ZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX12YXIgZVI9InB4IixCaHQ9ZnVuY3Rpb24oKXtmdW5jdGlvbiBkKGcpeyhmdW5jdGlvbiBPaHQoZCxnKXtpZighKGQgaW5zdGFu''@;'; + put 'put ''Y2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0pKHRoaXMsZCksdGhpcy5ob3Q9Zyx0aGlzLl9lbGVtZW50PW51bGwsdGhpcy5zdGF0ZT0wLHRoaXMuaW5saW5lUHJvcGVydHk9Zy5pc1J0bCgpPyJyaWdodCI6ImxlZnQifXJl''@;'; + put 'put ''dHVybiBmdW5jdGlvbiBSaHQoZCxnLGgpe2cmJmhJZShkLnByb3RvdHlwZSxnKSxoJiZoSWUoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oZCxbe2tleToiYXBwZW5kVG8iLHZhbHVlOmZ1bmN0aW9uKGgpe2guYXBwZW5kQ2hpbGQodGhp''@;'; + put 'put ''cy5fZWxlbWVudCksdGhpcy5zdGF0ZT0yfX0se2tleToiYnVpbGQiLHZhbHVlOmZ1bmN0aW9uKCl7MD09PXRoaXMuc3RhdGUmJih0aGlzLl9lbGVtZW50PXRoaXMuaG90LnJvb3REb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSx0aGlzLnN0YXRlPTEpfX0se2tleToiZGVzdHJveSIsdmFs''@;'; + put 'put ''dWU6ZnVuY3Rpb24oKXt0aGlzLmlzQXBwZW5kZWQoKSYmdGhpcy5fZWxlbWVudC5wYXJlbnRFbGVtZW50LnJlbW92ZUNoaWxkKHRoaXMuX2VsZW1lbnQpLHRoaXMuX2VsZW1lbnQ9bnVsbCx0aGlzLnN0YXRlPTB9fSx7a2V5OiJpc0FwcGVuZGVkIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiAy''@;'; + put 'put ''PT09dGhpcy5zdGF0ZX19LHtrZXk6ImlzQnVpbHQiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc3RhdGU+PTF9fSx7a2V5OiJzZXRQb3NpdGlvbiIsdmFsdWU6ZnVuY3Rpb24oaCx2KXt2NChoKSYmKHRoaXMuX2VsZW1lbnQuc3R5bGUudG9wPWgrZVIpLHY0KHYpJiYodGhpcy5fZWxl''@;'; + put 'put ''bWVudC5zdHlsZVt0aGlzLmlubGluZVByb3BlcnR5XT12K2VSKX19LHtrZXk6ImdldFBvc2l0aW9uIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBoPXRoaXMuX2VsZW1lbnQuc3R5bGU7cmV0dXJue3RvcDpoLnRvcD9wYXJzZUludChoLnRvcCwxMCk6MCxzdGFydDpoW3RoaXMuaW5saW5lUHJvcGVy''@;'; + put 'put ''dHldP3BhcnNlSW50KGhbdGhpcy5pbmxpbmVQcm9wZXJ0eV0sMTApOjB9fX0se2tleToic2V0U2l6ZSIsdmFsdWU6ZnVuY3Rpb24oaCx2KXt2NChoKSYmKHRoaXMuX2VsZW1lbnQuc3R5bGUud2lkdGg9aCtlUiksdjQodikmJih0aGlzLl9lbGVtZW50LnN0eWxlLmhlaWdodD12K2VSKX19LHtr''@;'; + put 'put ''ZXk6ImdldFNpemUiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJue3dpZHRoOnRoaXMuX2VsZW1lbnQuc3R5bGUud2lkdGg/cGFyc2VJbnQodGhpcy5fZWxlbWVudC5zdHlsZS53aWR0aCwxMCk6MCxoZWlnaHQ6dGhpcy5fZWxlbWVudC5zdHlsZS5oZWlnaHQ/cGFyc2VJbnQodGhpcy5fZWxlbWVu''@;'; + put 'put ''dC5zdHlsZS5oZWlnaHQsMTApOjB9fX0se2tleToic2V0T2Zmc2V0Iix2YWx1ZTpmdW5jdGlvbihoLHYpe3Y0KGgpJiYodGhpcy5fZWxlbWVudC5zdHlsZS5tYXJnaW5Ub3A9aCtlUiksdjQodikmJih0aGlzLl9lbGVtZW50LnN0eWxlWyJtYXJnaW4iLmNvbmNhdChzZCh0aGlzLmlubGluZVBy''@;'; + put 'put ''b3BlcnR5KSldPXYrZVIpfX0se2tleToiZ2V0T2Zmc2V0Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciBoPXRoaXMuX2VsZW1lbnQuc3R5bGUsdj0ibWFyZ2luIi5jb25jYXQoc2QodGhpcy5pbmxpbmVQcm9wZXJ0eSkpO3JldHVybnt0b3A6aC5tYXJnaW5Ub3A/cGFyc2VJbnQoaC5tYXJnaW5Ub3As''@;'; + put 'put ''MTApOjAsc3RhcnQ6aFt2XT9wYXJzZUludChoW3ZdLDEwKTowfX19XSksZH0oKTtjb25zdCBnSWU9Qmh0O2Z1bmN0aW9uIFU1ZShkKXtyZXR1cm4oVTVlPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGcpe3JldHVy''@;'; + put 'put ''biB0eXBlb2YgZ306ZnVuY3Rpb24oZyl7cmV0dXJuIGcmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmcuY29uc3RydWN0b3I9PT1TeW1ib2wmJmchPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBnfSkoZCl9ZnVuY3Rpb24gUGh0KGQsZyl7aWYoIShkIGluc3RhbmNlb2Yg''@;'; + put 'put ''ZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9ZnVuY3Rpb24gbUllKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAs''@;'; + put 'put ''InZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19ZnVuY3Rpb24gQW5lKCl7cmV0dXJuIEFuZT0idW5kZWZpbmVkIiE9dHlwZW9mIFJlZmxlY3QmJlJlZmxlY3QuZ2V0P1JlZmxlY3QuZ2V0LmJpbmQoKTpmdW5jdGlvbihnLGgsdil7''@;'; + put 'put ''dmFyIHk9SGh0KGcsaCk7aWYoeSl7dmFyIEM9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih5LGgpO3JldHVybiBDLmdldD9DLmdldC5jYWxsKGFyZ3VtZW50cy5sZW5ndGg8Mz9nOnYpOkMudmFsdWV9fSxBbmUuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIEhodChkLGcp''@;'; + put 'put ''e2Zvcig7IU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChkLGcpJiZudWxsIT09KGQ9dFIoZCkpOyk7cmV0dXJuIGR9ZnVuY3Rpb24gUTVlKGQsZyl7cmV0dXJuKFE1ZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlv''@;'; + put 'put ''bih2LHkpe3JldHVybiB2Ll9fcHJvdG9fXz15LHZ9KShkLGcpfWZ1bmN0aW9uIGpodChkLGcpe2lmKGcmJigib2JqZWN0Ij09PVU1ZShnKXx8ImZ1bmN0aW9uIj09dHlwZW9mIGcpKXJldHVybiBnO2lmKHZvaWQgMCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiRGVyaXZlZCBjb25zdHJ1Y3Rv''@;'; + put 'put ''cnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWQiKTtyZXR1cm4gZnVuY3Rpb24gWmh0KGQpe2lmKHZvaWQgMD09PWQpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTty''@;'; + put 'put ''ZXR1cm4gZH0oZCl9ZnVuY3Rpb24gdFIoZCl7cmV0dXJuKHRSPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3QuZ2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKGgpe3JldHVybiBoLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKGgpfSkoZCl9dmFyIFdodD1mdW5jdGlv''@;'; + put 'put ''bihkKXshZnVuY3Rpb24gTmh0KGQsZyl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGcmJm51bGwhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uIik7ZC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShnJiZnLnBy''@;'; + put 'put ''b3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOmQsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGcmJlE1ZShkLGcpfShoLGQpO3ZhciBnPWZ1bmN0aW9uIFZodChkKXt2YXIgZz1mdW5jdGlv''@;'; + put 'put ''biB6aHQoKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIFJlZmxlY3R8fCFSZWZsZWN0LmNvbnN0cnVjdHx8UmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT10eXBlb2YgUHJveHkpcmV0dXJuITA7dHJ5e3JldHVybiBCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9m''@;'; + put 'put ''LmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSxmdW5jdGlvbigpe30pKSwhMH1jYXRjaChkKXtyZXR1cm4hMX19KCk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHksdj10UihkKTtpZihnKXt2YXIgQz10Uih0aGlzKS5jb25zdHJ1Y3Rvcjt5PVJlZmxlY3QuY29uc3RydWN0KHYsYXJn''@;'; + put 'put ''dW1lbnRzLEMpfWVsc2UgeT12LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gamh0KHRoaXMseSl9fShoKTtmdW5jdGlvbiBoKCl7cmV0dXJuIFBodCh0aGlzLGgpLGcuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiBmdW5jdGlvbiBGaHQoZCxnLGgpe2cmJm1JZShkLnByb3RvdHlw''@;'; + put 'put ''ZSxnKSxoJiZtSWUoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oaCxbe2tleToiYnVpbGQiLHZhbHVlOmZ1bmN0aW9uKCl7QW5lKHRSKGgucHJvdG90eXBlKSwiYnVpbGQiLHRoaXMpLmNhbGwodGhpcyksTzAodGhpcy5fZWxlbWVudCwi''@;'; + put 'put ''aHRfX21hbnVhbENvbHVtbk1vdmUtLWJhY2tsaWdodCIpfX1dKSxofShnSWUpO2NvbnN0IFlodD1XaHQ7ZnVuY3Rpb24gSjVlKGQpe3JldHVybihKNWU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZyl7cmV0dXJu''@;'; + put 'put ''IHR5cGVvZiBnfTpmdW5jdGlvbihnKXtyZXR1cm4gZyYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZy5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZyE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGd9KShkKX1mdW5jdGlvbiBVaHQoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBn''@;'; + put 'put ''KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX1mdW5jdGlvbiB2SWUoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwi''@;'; + put 'put ''dmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX1mdW5jdGlvbiB5bmUoKXtyZXR1cm4geW5lPSJ1bmRlZmluZWQiIT10eXBlb2YgUmVmbGVjdCYmUmVmbGVjdC5nZXQ/UmVmbGVjdC5nZXQuYmluZCgpOmZ1bmN0aW9uKGcsaCx2KXt2''@;'; + put 'put ''YXIgeT1KaHQoZyxoKTtpZih5KXt2YXIgQz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHksaCk7cmV0dXJuIEMuZ2V0P0MuZ2V0LmNhbGwoYXJndW1lbnRzLmxlbmd0aDwzP2c6dik6Qy52YWx1ZX19LHluZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gSmh0KGQsZyl7''@;'; + put 'put ''Zm9yKDshT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGQsZykmJm51bGwhPT0oZD1uUihkKSk7KTtyZXR1cm4gZH1mdW5jdGlvbiBYNWUoZCxnKXtyZXR1cm4oWDVlPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9u''@;'; + put 'put ''KHYseSl7cmV0dXJuIHYuX19wcm90b19fPXksdn0pKGQsZyl9ZnVuY3Rpb24gJGh0KGQsZyl7aWYoZyYmKCJvYmplY3QiPT09SjVlKGcpfHwiZnVuY3Rpb24iPT10eXBlb2YgZykpcmV0dXJuIGc7aWYodm9pZCAwIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJEZXJpdmVkIGNvbnN0cnVjdG9y''@;'; + put 'put ''cyBtYXkgb25seSByZXR1cm4gb2JqZWN0IG9yIHVuZGVmaW5lZCIpO3JldHVybiBmdW5jdGlvbiBxaHQoZCl7aWYodm9pZCAwPT09ZCl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3Jl''@;'; + put 'put ''dHVybiBkfShkKX1mdW5jdGlvbiBuUihkKXtyZXR1cm4oblI9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24oaCl7cmV0dXJuIGguX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YoaCl9KShkKX12YXIgbjN0PWZ1bmN0aW9u''@;'; + put 'put ''KGQpeyFmdW5jdGlvbiBYaHQoZCxnKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZyYmbnVsbCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTtkLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGcmJmcucHJv''@;'; + put 'put ''dG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6ZCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZyYmWDVlKGQsZyl9KGgsZCk7dmFyIGc9ZnVuY3Rpb24gS2h0KGQpe3ZhciBnPWZ1bmN0aW9u''@;'; + put 'put ''IGUzdCgpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0fHxSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBQcm94eSlyZXR1cm4hMDt0cnl7cmV0dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2Yu''@;'; + put 'put ''Y2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLGZ1bmN0aW9uKCl7fSkpLCEwfWNhdGNoKGQpe3JldHVybiExfX0oKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgeSx2PW5SKGQpO2lmKGcpe3ZhciBDPW5SKHRoaXMpLmNvbnN0cnVjdG9yO3k9UmVmbGVjdC5jb25zdHJ1Y3Qodixhcmd1''@;'; + put 'put ''bWVudHMsQyl9ZWxzZSB5PXYuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiAkaHQodGhpcyx5KX19KGgpO2Z1bmN0aW9uIGgoKXtyZXR1cm4gVWh0KHRoaXMsaCksZy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIGZ1bmN0aW9uIFFodChkLGcsaCl7ZyYmdkllKGQucHJvdG90eXBl''@;'; + put 'put ''LGcpLGgmJnZJZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShoLFt7a2V5OiJidWlsZCIsdmFsdWU6ZnVuY3Rpb24oKXt5bmUoblIoaC5wcm90b3R5cGUpLCJidWlsZCIsdGhpcykuY2FsbCh0aGlzKSxPMCh0aGlzLl9lbGVtZW50LCJo''@;'; + put 'put ''dF9fbWFudWFsQ29sdW1uTW92ZS0tZ3VpZGVsaW5lIil9fV0pLGh9KGdJZSk7Y29uc3QgcjN0PW4zdDtmdW5jdGlvbiBLNWUoZCl7cmV0dXJuKEs1ZT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihnKXtyZXR1cm4g''@;'; + put 'put ''dHlwZW9mIGd9OmZ1bmN0aW9uKGcpe3JldHVybiBnJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZnLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZnIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgZ30pKGQpfWZ1bmN0aW9uIEFJZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5n''@;'; + put 'put ''dGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fWZ1bmN0aW9uIGNNKCl7cmV0dXJuIGNNPSJ1bmRlZmluZWQi''@;'; + put 'put ''IT10eXBlb2YgUmVmbGVjdCYmUmVmbGVjdC5nZXQ/UmVmbGVjdC5nZXQuYmluZCgpOmZ1bmN0aW9uKGcsaCx2KXt2YXIgeT1hM3QoZyxoKTtpZih5KXt2YXIgQz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHksaCk7cmV0dXJuIEMuZ2V0P0MuZ2V0LmNhbGwoYXJndW1lbnRzLmxl''@;'; + put 'put ''bmd0aDwzP2c6dik6Qy52YWx1ZX19LGNNLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBhM3QoZCxnKXtmb3IoOyFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZCxnKSYmbnVsbCE9PShkPVF2KGQpKTspO3JldHVybiBkfWZ1bmN0aW9uICQ1ZShkLGcpe3JldHVy''@;'; + put 'put ''bigkNWU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24odix5KXtyZXR1cm4gdi5fX3Byb3RvX189eSx2fSkoZCxnKX1mdW5jdGlvbiB1M3QoZCxnKXtpZihnJiYoIm9iamVjdCI9PT1LNWUoZyl8fCJmdW5jdGlvbiI9PXR5cGVvZiBn''@;'; + put 'put ''KSlyZXR1cm4gZztpZih2b2lkIDAhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIkRlcml2ZWQgY29uc3RydWN0b3JzIG1heSBvbmx5IHJldHVybiBvYmplY3Qgb3IgdW5kZWZpbmVkIik7cmV0dXJuIHE1ZShkKX1mdW5jdGlvbiBxNWUoZCl7aWYodm9pZCAwPT09ZCl0aHJvdyBuZXcgUmVmZXJl''@;'; + put 'put ''bmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3JldHVybiBkfWZ1bmN0aW9uIFF2KGQpe3JldHVybihRdj1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbiho''@;'; + put 'put ''KXtyZXR1cm4gaC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihoKX0pKGQpfXpvLmdldFNpbmdsZXRvbigpLnJlZ2lzdGVyKCJiZWZvcmVDb2x1bW5Nb3ZlIiksem8uZ2V0U2luZ2xldG9uKCkucmVnaXN0ZXIoImFmdGVyQ29sdW1uTW92ZSIpO3ZhciBlZ2U9Im1hbnVhbENvbHVt''@;'; + put 'put ''bk1vdmUiLFl3PW5ldyBXZWFrTWFwLHlJZT0iaHRfX21hbnVhbENvbHVtbk1vdmUiLHduZT0ic2hvdy11aSIsdGdlPSJvbi1tb3ZpbmctLWNvbHVtbnMiLG5nZT0iYWZ0ZXItc2VsZWN0aW9uLS1jb2x1bW5zIixoM3Q9ZnVuY3Rpb24oZCl7IWZ1bmN0aW9uIGwzdChkLGcpe2lmKCJmdW5jdGlv''@;'; + put 'put ''biIhPXR5cGVvZiBnJiZudWxsIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiIpO2QucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZyYmZy5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTpkLHdyaXRh''@;'; + put 'put ''YmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxnJiYkNWUoZCxnKX0oaCxkKTt2YXIgZz1mdW5jdGlvbiBzM3QoZCl7dmFyIGc9ZnVuY3Rpb24gYzN0KCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBSZWZs''@;'; + put 'put ''ZWN0fHwhUmVmbGVjdC5jb25zdHJ1Y3R8fFJlZmxlY3QuY29uc3RydWN0LnNoYW0pcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIFByb3h5KXJldHVybiEwO3RyeXtyZXR1cm4gQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10s''@;'; + put 'put ''ZnVuY3Rpb24oKXt9KSksITB9Y2F0Y2goZCl7cmV0dXJuITF9fSgpO3JldHVybiBmdW5jdGlvbigpe3ZhciB5LHY9UXYoZCk7aWYoZyl7dmFyIEM9UXYodGhpcykuY29uc3RydWN0b3I7eT1SZWZsZWN0LmNvbnN0cnVjdCh2LGFyZ3VtZW50cyxDKX1lbHNlIHk9di5hcHBseSh0aGlzLGFyZ3Vt''@;'; + put 'put ''ZW50cyk7cmV0dXJuIHUzdCh0aGlzLHkpfX0oaCk7ZnVuY3Rpb24gaCh2KXt2YXIgeTtyZXR1cm4gZnVuY3Rpb24gaTN0KGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsaCkseT1n''@;'; + put 'put ''LmNhbGwodGhpcyx2KSxZdy5zZXQocTVlKHkpLHtjb2x1bW5zVG9Nb3ZlOltdLGNvdW50Q29sczowLGZpeGVkQ29sdW1uczowLHByZXNzZWQ6dm9pZCAwLHRhcmdldDp7ZXZlbnRQYWdlWDp2b2lkIDAsY29vcmRzOnZvaWQgMCxURDp2b2lkIDAsY29sOnZvaWQgMH0sY2FjaGVkRHJvcEluZGV4''@;'; + put 'put ''OnZvaWQgMH0pLHkuZXZlbnRNYW5hZ2VyPW5ldyBMMShxNWUoeSkpLHkuYmFja2xpZ2h0PW5ldyBZaHQodikseS5ndWlkZWxpbmU9bmV3IHIzdCh2KSx5fXJldHVybiBmdW5jdGlvbiBvM3QoZCxnLGgpe2cmJkFJZShkLnByb3RvdHlwZSxnKSxoJiZBSWUoZCxoKSxPYmplY3QuZGVmaW5lUHJv''@;'; + put 'put ''cGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oaCxbe2tleToiaXNFbmFibGVkIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiEhdGhpcy5ob3QuZ2V0U2V0dGluZ3MoKVtlZ2VdfX0se2tleToiZW5hYmxlUGx1Z2luIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXM7dGhpcy5l''@;'; + put 'put ''bmFibGVkfHwodGhpcy5hZGRIb29rKCJiZWZvcmVPbkNlbGxNb3VzZURvd24iLGZ1bmN0aW9uKCl7cmV0dXJuIHkub25CZWZvcmVPbkNlbGxNb3VzZURvd24uYXBwbHkoeSxhcmd1bWVudHMpfSksdGhpcy5hZGRIb29rKCJiZWZvcmVPbkNlbGxNb3VzZU92ZXIiLGZ1bmN0aW9uKCl7cmV0dXJu''@;'; + put 'put ''IHkub25CZWZvcmVPbkNlbGxNb3VzZU92ZXIuYXBwbHkoeSxhcmd1bWVudHMpfSksdGhpcy5hZGRIb29rKCJhZnRlclNjcm9sbFZlcnRpY2FsbHkiLGZ1bmN0aW9uKCl7cmV0dXJuIHkub25BZnRlclNjcm9sbFZlcnRpY2FsbHkoKX0pLHRoaXMuYWRkSG9vaygiYWZ0ZXJMb2FkRGF0YSIsZnVu''@;'; + put 'put ''Y3Rpb24oKXtyZXR1cm4geS5vbkFmdGVyTG9hZERhdGEuYXBwbHkoeSxhcmd1bWVudHMpfSksdGhpcy5idWlsZFBsdWdpblVJKCksdGhpcy5yZWdpc3RlckV2ZW50cygpLE8wKHRoaXMuaG90LnJvb3RFbGVtZW50LHlJZSksY00oUXYoaC5wcm90b3R5cGUpLCJlbmFibGVQbHVnaW4iLHRoaXMp''@;'; + put 'put ''LmNhbGwodGhpcykpfX0se2tleToidXBkYXRlUGx1Z2luIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuZGlzYWJsZVBsdWdpbigpLHRoaXMuZW5hYmxlUGx1Z2luKCksdGhpcy5tb3ZlQnlTZXR0aW5nc09yTG9hZCgpLGNNKFF2KGgucHJvdG90eXBlKSwidXBkYXRlUGx1Z2luIix0aGlzKS5jYWxs''@;'; + put 'put ''KHRoaXMpfX0se2tleToiZGlzYWJsZVBsdWdpbiIsdmFsdWU6ZnVuY3Rpb24oKXtwbCh0aGlzLmhvdC5yb290RWxlbWVudCx5SWUpLHRoaXMudW5yZWdpc3RlckV2ZW50cygpLHRoaXMuYmFja2xpZ2h0LmRlc3Ryb3koKSx0aGlzLmd1aWRlbGluZS5kZXN0cm95KCksY00oUXYoaC5wcm90b3R5''@;'; + put 'put ''cGUpLCJkaXNhYmxlUGx1Z2luIix0aGlzKS5jYWxsKHRoaXMpfX0se2tleToibW92ZUNvbHVtbiIsdmFsdWU6ZnVuY3Rpb24oeSxDKXtyZXR1cm4gdGhpcy5tb3ZlQ29sdW1ucyhbeV0sQyl9fSx7a2V5OiJtb3ZlQ29sdW1ucyIsdmFsdWU6ZnVuY3Rpb24oeSxDKXt2YXIgST1Zdy5nZXQodGhp''@;'; + put 'put ''cyksaj1JLmNhY2hlZERyb3BJbmRleCx1ZT10aGlzLmlzTW92ZVBvc3NpYmxlKHksQyksX2U9dGhpcy5ob3QucnVuSG9va3MoImJlZm9yZUNvbHVtbk1vdmUiLHksQyxqLHVlKTtpZihJLmNhY2hlZERyb3BJbmRleD12b2lkIDAsITEhPT1fZSl7dWUmJnRoaXMuaG90LmNvbHVtbkluZGV4TWFw''@;'; + put 'put ''cGVyLm1vdmVJbmRleGVzKHksQyk7dmFyIEJlPXVlJiZ0aGlzLmlzQ29sdW1uT3JkZXJDaGFuZ2VkKHksQyk7cmV0dXJuIHRoaXMuaG90LnJ1bkhvb2tzKCJhZnRlckNvbHVtbk1vdmUiLHksQyxqLHVlLEJlKSxCZX19fSx7a2V5OiJkcmFnQ29sdW1uIix2YWx1ZTpmdW5jdGlvbih5LEMpe3Jl''@;'; + put 'put ''dHVybiB0aGlzLmRyYWdDb2x1bW5zKFt5XSxDKX19LHtrZXk6ImRyYWdDb2x1bW5zIix2YWx1ZTpmdW5jdGlvbih5LEMpe3ZhciBJPXRoaXMuY291bnRGaW5hbEluZGV4KHksQyk7cmV0dXJuIFl3LmdldCh0aGlzKS5jYWNoZWREcm9wSW5kZXg9Qyx0aGlzLm1vdmVDb2x1bW5zKHksSSl9fSx7''@;'; + put 'put ''a2V5OiJpc01vdmVQb3NzaWJsZSIsdmFsdWU6ZnVuY3Rpb24oeSxDKXt2YXIgST10aGlzLmhvdC5jb2x1bW5JbmRleE1hcHBlci5nZXROb3RUcmltbWVkSW5kZXhlc0xlbmd0aCgpLGo9eS5sZW5ndGgrQz5JLHVlPUM8MCxfZT15LnNvbWUoZnVuY3Rpb24oTmUpe3JldHVybiBOZTwwfSksQmU9''@;'; + put 'put ''eS5zb21lKGZ1bmN0aW9uKE5lKXtyZXR1cm4gTmU+PUl9KTtyZXR1cm4hKGp8fHVlfHxfZXx8QmUpfX0se2tleToiaXNDb2x1bW5PcmRlckNoYW5nZWQiLHZhbHVlOmZ1bmN0aW9uKHksQyl7cmV0dXJuIHkuc29tZShmdW5jdGlvbihJLGope3JldHVybiBJLWohPT1DfSl9fSx7a2V5OiJjb3Vu''@;'; + put 'put ''dEZpbmFsSW5kZXgiLHZhbHVlOmZ1bmN0aW9uKHksQyl7dmFyIEk9U3UoeSxmdW5jdGlvbihqLHVlKXtyZXR1cm4gdWU8QyYmKGorPTEpLGp9LDApO3JldHVybiBDLUl9fSx7a2V5OiJnZXRDb2x1bW5zV2lkdGgiLHZhbHVlOmZ1bmN0aW9uKHksQyl7Zm9yKHZhciBJPXRoaXMuaG90LmNvbHVt''@;'; + put 'put ''bkluZGV4TWFwcGVyLGo9MCx1ZT15O3VlPD1DO3VlKz0xKXt2YXIgX2U9SS5nZXRSZW5kZXJhYmxlRnJvbVZpc3VhbEluZGV4KHVlKTt1ZTwwP2orPXRoaXMuaG90LnZpZXcuX3d0Lnd0Vmlld3BvcnQuZ2V0Um93SGVhZGVyV2lkdGgoKXx8MDpudWxsIT09X2UmJihqKz10aGlzLmhvdC52aWV3''@;'; + put 'put ''Ll93dC53dFRhYmxlLmdldFN0cmV0Y2hlZENvbHVtbldpZHRoKF9lKXx8MCl9cmV0dXJuIGp9fSx7a2V5OiJtb3ZlQnlTZXR0aW5nc09yTG9hZCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzLmhvdC5nZXRTZXR0aW5ncygpW2VnZV07aWYoQXJyYXkuaXNBcnJheSh5KSl0aGlzLm1vdmVD''@;'; + put 'put ''b2x1bW5zKHksMCk7ZWxzZSBpZih2b2lkIDAhPT15KXt2YXIgQz10aGlzLnBlcnNpc3RlbnRTdGF0ZUxvYWQoKTtDLmxlbmd0aCYmdGhpcy5tb3ZlQ29sdW1ucyhDLDApfX19LHtrZXk6ImlzRml4ZWRDb2x1bW5zU3RhcnQiLHZhbHVlOmZ1bmN0aW9uKHkpe3JldHVybiB5PHRoaXMuaG90Lmdl''@;'; + put 'put ''dFNldHRpbmdzKCkuZml4ZWRDb2x1bW5zU3RhcnR9fSx7a2V5OiJwZXJzaXN0ZW50U3RhdGVTYXZlIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuaG90LnJ1bkhvb2tzKCJwZXJzaXN0ZW50U3RhdGVTYXZlIiwibWFudWFsQ29sdW1uTW92ZSIsdGhpcy5ob3QuY29sdW1uSW5kZXhNYXBwZXIuZ2V0''@;'; + put 'put ''SW5kZXhlc1NlcXVlbmNlKCkpfX0se2tleToicGVyc2lzdGVudFN0YXRlTG9hZCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT17fTtyZXR1cm4gdGhpcy5ob3QucnVuSG9va3MoInBlcnNpc3RlbnRTdGF0ZUxvYWQiLCJtYW51YWxDb2x1bW5Nb3ZlIix5KSx5LnZhbHVlP3kudmFsdWU6W119fSx7''@;'; + put 'put ''a2V5OiJwcmVwYXJlQ29sdW1uc1RvTW92aW5nIix2YWx1ZTpmdW5jdGlvbih5LEMpe3ZhciBJPVtdO3JldHVybiBpYSh5LEMsZnVuY3Rpb24oail7SS5wdXNoKGopfSksSX19LHtrZXk6InJlZnJlc2hQb3NpdGlvbnMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9WXcuZ2V0KHRoaXMpLEM9dGhp''@;'; + put 'put ''cy5ob3Qudmlldy5nZXRGaXJzdEZ1bGx5VmlzaWJsZUNvbHVtbigpO3RoaXMuaXNGaXhlZENvbHVtbnNTdGFydCh5LmhvdmVyZWRDb2x1bW4pJiZDPjAmJnRoaXMuaG90LnNjcm9sbFZpZXdwb3J0VG8odm9pZCAwLHRoaXMuaG90LmNvbHVtbkluZGV4TWFwcGVyLmdldE5lYXJlc3ROb3RIaWRk''@;'; + put 'put ''ZW5JbmRleChDLTEsLTEpKTt2YXIgST10aGlzLmhvdC52aWV3Ll93dC53dFRhYmxlLGo9dGhpcy5ob3Qudmlldy5fd3Qud3RPdmVybGF5cy5zY3JvbGxhYmxlRWxlbWVudCx1ZT0ibnVtYmVyIj09dHlwZW9mIGouc2Nyb2xsWD9qLnNjcm9sbFg6ai5zY3JvbGxMZWZ0LF9lPXRoaXMuaG90LnZp''@;'; + put 'put ''ZXcuVEhFQUQub2Zmc2V0TGVmdCt0aGlzLmdldENvbHVtbnNXaWR0aCgwLHkuaG92ZXJlZENvbHVtbi0xKSxCZT1JLmhpZGVyLm9mZnNldFdpZHRoLE5lPUkuVEJPRFkub2Zmc2V0TGVmdCxLZT10aGlzLmJhY2tsaWdodC5nZXRPZmZzZXQoKS5zdGFydCxkdD10aGlzLmJhY2tsaWdodC5nZXRT''@;'; + put 'put ''aXplKCkud2lkdGgsT3Q9MCwkdD0wO2lmKHRoaXMuaG90LmlzUnRsKCkpe3ZhciBmbj10aGlzLmhvdC5yb290V2luZG93LExuPUUyKHRoaXMuaG90LnJvb3RFbGVtZW50KTskdD1mbi5pbm5lcldpZHRoLXkudGFyZ2V0LmV2ZW50UGFnZVgtKGZuLmlubmVyV2lkdGgteS5yb290RWxlbWVudE9m''@;'; + put 'put ''ZnNldC1MbiktKHZvaWQgMD09PWouc2Nyb2xsWD91ZTowKX1lbHNlICR0PXkudGFyZ2V0LmV2ZW50UGFnZVgtKHkucm9vdEVsZW1lbnRPZmZzZXQtKHZvaWQgMD09PWouc2Nyb2xsWD91ZTowKSk7eS5oYXNSb3dIZWFkZXJzJiYoT3Q9dGhpcy5ob3Qudmlldy5fd3Qud3RPdmVybGF5cy5pbmxp''@;'; + put 'put ''bmVTdGFydE92ZXJsYXkuY2xvbmUud3RUYWJsZS5nZXRDb2x1bW5IZWFkZXIoLTEpLm9mZnNldFdpZHRoKSx0aGlzLmlzRml4ZWRDb2x1bW5zU3RhcnQoeS5ob3ZlcmVkQ29sdW1uKSYmKF9lKz11ZSksX2UrPU90LHkuaG92ZXJlZENvbHVtbjwwP3kudGFyZ2V0LmNvbD15LmZpeGVkQ29sdW1u''@;'; + put 'put ''c1N0YXJ0PjA/MDpDPjA/Qy0xOkM6eS50YXJnZXQuVEQub2Zmc2V0V2lkdGgvMitfZTw9JHQ/KHkudGFyZ2V0LmNvbD0oeS5ob3ZlcmVkQ29sdW1uPj15LmNvdW50Q29scz95LmNvdW50Q29scy0xOnkuaG92ZXJlZENvbHVtbikrMSxfZSs9eS50YXJnZXQuVEQub2Zmc2V0V2lkdGgpOnkudGFy''@;'; + put 'put ''Z2V0LmNvbD15LmhvdmVyZWRDb2x1bW47dmFyIFNyPSR0LHdyPV9lOyR0K2R0K0tlPj1CZT9Tcj1CZS1kdC1LZTokdCtLZTxOZStPdCYmKFNyPU5lK090K01hdGguYWJzKEtlKSksX2U+PUJlLTE/d3I9QmUtMTowPT09d3I/d3I9MTp2b2lkIDAhPT1qLnNjcm9sbFgmJnkuaG92ZXJlZENvbHVt''@;'; + put 'put ''bjx5LmZpeGVkQ29sdW1uc1N0YXJ0JiYod3ItPXkucm9vdEVsZW1lbnRPZmZzZXQ8PWouc2Nyb2xsWD95LnJvb3RFbGVtZW50T2Zmc2V0OjApLHRoaXMuYmFja2xpZ2h0LnNldFBvc2l0aW9uKG51bGwsU3IpLHRoaXMuZ3VpZGVsaW5lLnNldFBvc2l0aW9uKG51bGwsd3IpfX0se2tleToicmVn''@;'; + put 'put ''aXN0ZXJFdmVudHMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcyxDPXRoaXMuaG90LnJvb3REb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7dGhpcy5ldmVudE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihDLCJtb3VzZW1vdmUiLGZ1bmN0aW9uKEkpe3JldHVybiB5Lm9uTW91c2VNb3ZlKEkp''@;'; + put 'put ''fSksdGhpcy5ldmVudE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihDLCJtb3VzZXVwIixmdW5jdGlvbigpe3JldHVybiB5Lm9uTW91c2VVcCgpfSl9fSx7a2V5OiJ1bnJlZ2lzdGVyRXZlbnRzIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuZXZlbnRNYW5hZ2VyLmNsZWFyKCl9fSx7a2V5OiJvbkJl''@;'; + put 'put ''Zm9yZU9uQ2VsbE1vdXNlRG93biIsdmFsdWU6ZnVuY3Rpb24oeSxDLEksail7dmFyIHVlPXRoaXMuaG90LnZpZXcuX3d0Lnd0VGFibGUsX2U9dGhpcy5ob3Quc2VsZWN0aW9uLmlzU2VsZWN0ZWRCeUNvbHVtbkhlYWRlcigpLEJlPXRoaXMuaG90LmdldFNlbGVjdGVkUmFuZ2VMYXN0KCksTmU9''@;'; + put 'put ''WXcuZ2V0KHRoaXMpLEtlPXRsKHkudGFyZ2V0LCJzb3J0QWN0aW9uIik7aWYoIUJlfHwhX2V8fE5lLnByZXNzZWR8fDAhPT15LmJ1dHRvbnx8S2UpcmV0dXJuIE5lLnByZXNzZWQ9ITEsTmUuY29sdW1uc1RvTW92ZS5sZW5ndGg9MCx2b2lkIHBsKHRoaXMuaG90LnJvb3RFbGVtZW50LFt0Z2Us''@;'; + put 'put ''d25lXSk7dmFyIGR0PXRoaXMuZ3VpZGVsaW5lLmlzQnVpbHQoKSYmIXRoaXMuZ3VpZGVsaW5lLmlzQXBwZW5kZWQoKSxPdD10aGlzLmJhY2tsaWdodC5pc0J1aWx0KCkmJiF0aGlzLmJhY2tsaWdodC5pc0FwcGVuZGVkKCk7ZHQmJk90JiYodGhpcy5ndWlkZWxpbmUuYXBwZW5kVG8odWUuaGlk''@;'; + put 'put ''ZXIpLHRoaXMuYmFja2xpZ2h0LmFwcGVuZFRvKHVlLmhpZGVyKSk7dmFyICR0PUJlLmZyb20sZm49QmUudG8sTG49TWF0aC5taW4oJHQuY29sLGZuLmNvbCksaXI9TWF0aC5tYXgoJHQuY29sLGZuLmNvbCk7aWYoQy5yb3c8MCYmQy5jb2w+PUxuJiZDLmNvbDw9aXIpe2ouY29sdW1uPSEwLE5l''@;'; + put 'put ''LnByZXNzZWQ9ITAsTmUudGFyZ2V0LmV2ZW50UGFnZVg9eS5wYWdlWCxOZS50YXJnZXQuZXZlbnRPZmZzZXRYPXkub2Zmc2V0WCxOZS5ob3ZlcmVkQ29sdW1uPUMuY29sLE5lLnRhcmdldC5URD1JLE5lLnRhcmdldC5jb2w9Qy5jb2wsTmUuY29sdW1uc1RvTW92ZT10aGlzLnByZXBhcmVDb2x1''@;'; + put 'put ''bW5zVG9Nb3ZpbmcoTG4saXIpLE5lLmhhc1Jvd0hlYWRlcnM9ISF0aGlzLmhvdC5nZXRTZXR0aW5ncygpLnJvd0hlYWRlcnMsTmUuY291bnRDb2xzPXRoaXMuaG90LmNvdW50Q29scygpLE5lLmZpeGVkQ29sdW1uc1N0YXJ0PXRoaXMuaG90LmdldFNldHRpbmdzKCkuZml4ZWRDb2x1bW5zU3Rh''@;'; + put 'put ''cnQsTmUucm9vdEVsZW1lbnRPZmZzZXQ9anUodGhpcy5ob3Qucm9vdEVsZW1lbnQpLmxlZnQ7dmFyIG1yPU5lLmhhc1Jvd0hlYWRlcnM/LTE6MCxTcj11ZS5ob2xkZXIuc2Nyb2xsVG9wK3VlLmdldENvbHVtbkhlYWRlckhlaWdodCgwKSsxLHdyPUMuY29sPE5lLmZpeGVkQ29sdW1uc1N0YXJ0''@;'; + put 'put ''LFFyPU1hdGguYWJzKHRoaXMuaG90LnZpZXcuX3d0Lnd0T3ZlcmxheXMuaW5saW5lU3RhcnRPdmVybGF5LmdldFNjcm9sbFBvc2l0aW9uKCkpLHlpPU1hdGguYWJzKHkub2Zmc2V0WC0odGhpcy5ob3QuaXNSdGwoKT95LnRhcmdldC5vZmZzZXRXaWR0aDowKSksS2k9dGhpcy5nZXRDb2x1bW5z''@;'; + put 'put ''V2lkdGgoTG4sQy5jb2wtMSkreWksU289dGhpcy5nZXRDb2x1bW5zV2lkdGgobXIsTG4tMSkrKHdyP1FyOjApK0tpO3RoaXMuYmFja2xpZ2h0LnNldFBvc2l0aW9uKFNyLFNvKSx0aGlzLmJhY2tsaWdodC5zZXRTaXplKHRoaXMuZ2V0Q29sdW1uc1dpZHRoKExuLGlyKSx1ZS5oaWRlci5vZmZz''@;'; + put 'put ''ZXRIZWlnaHQtU3IpLHRoaXMuYmFja2xpZ2h0LnNldE9mZnNldChudWxsLC1LaSksTzAodGhpcy5ob3Qucm9vdEVsZW1lbnQsdGdlKX1lbHNlIHBsKHRoaXMuaG90LnJvb3RFbGVtZW50LG5nZSksTmUucHJlc3NlZD0hMSxOZS5jb2x1bW5zVG9Nb3ZlLmxlbmd0aD0wfX0se2tleToib25Nb3Vz''@;'; + put 'put ''ZU1vdmUiLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPVl3LmdldCh0aGlzKTtpZihDLnByZXNzZWQpe2lmKHkudGFyZ2V0PT09dGhpcy5iYWNrbGlnaHQuZWxlbWVudCl7dmFyIEk9dGhpcy5iYWNrbGlnaHQuZ2V0U2l6ZSgpLndpZHRoO3RoaXMuYmFja2xpZ2h0LnNldFNpemUoMCksc2V0VGlt''@;'; + put 'put ''ZW91dChmdW5jdGlvbigpe3RoaXMuYmFja2xpZ2h0LnNldFBvc2l0aW9uKEkpfSl9Qy50YXJnZXQuZXZlbnRQYWdlWD15LnBhZ2VYLHRoaXMucmVmcmVzaFBvc2l0aW9ucygpfX19LHtrZXk6Im9uQmVmb3JlT25DZWxsTW91c2VPdmVyIix2YWx1ZTpmdW5jdGlvbih5LEMsSSxqKXt2YXIgdWU9''@;'; + put 'put ''dGhpcy5ob3QuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKSxfZT1Zdy5nZXQodGhpcyk7IXVlfHwhX2UucHJlc3NlZHx8KF9lLmNvbHVtbnNUb01vdmUuaW5kZXhPZihDLmNvbCk+LTE/cGwodGhpcy5ob3Qucm9vdEVsZW1lbnQsd25lKTpPMCh0aGlzLmhvdC5yb290RWxlbWVudCx3bmUpLGoucm93''@;'; + put 'put ''PSEwLGouY29sdW1uPSEwLGouY2VsbD0hMCxfZS5ob3ZlcmVkQ29sdW1uPUMuY29sLF9lLnRhcmdldC5URD1JKX19LHtrZXk6Im9uTW91c2VVcCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT1Zdy5nZXQodGhpcyksQz15LnRhcmdldC5jb2wsST15LmNvbHVtbnNUb01vdmUubGVuZ3RoO2lmKHku''@;'; + put 'put ''aG92ZXJlZENvbHVtbj12b2lkIDAseS5wcmVzc2VkPSExLHkuYmFja2xpZ2h0V2lkdGg9MCxwbCh0aGlzLmhvdC5yb290RWxlbWVudCxbdGdlLHduZSxuZ2VdKSx0aGlzLmhvdC5zZWxlY3Rpb24uaXNTZWxlY3RlZEJ5Q29sdW1uSGVhZGVyKCkmJk8wKHRoaXMuaG90LnJvb3RFbGVtZW50LG5n''@;'; + put 'put ''ZSksIShJPDF8fHZvaWQgMD09PUMpKXt2YXIgdWU9dGhpcy5ob3QudG9QaHlzaWNhbENvbHVtbih5LmNvbHVtbnNUb01vdmVbMF0pLF9lPXRoaXMuZHJhZ0NvbHVtbnMoeS5jb2x1bW5zVG9Nb3ZlLEMpO2lmKHkuY29sdW1uc1RvTW92ZS5sZW5ndGg9MCwhMD09PV9lKXt0aGlzLnBlcnNpc3Rl''@;'; + put 'put ''bnRTdGF0ZVNhdmUoKSx0aGlzLmhvdC5yZW5kZXIoKSx0aGlzLmhvdC52aWV3LmFkanVzdEVsZW1lbnRzU2l6ZSghMCk7dmFyIEJlPXRoaXMuaG90LnRvVmlzdWFsQ29sdW1uKHVlKTt0aGlzLmhvdC5zZWxlY3RDb2x1bW5zKEJlLEJlK0ktMSl9fX19LHtrZXk6Im9uQWZ0ZXJTY3JvbGxWZXJ0''@;'; + put 'put ''aWNhbGx5Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXMuaG90LnZpZXcuX3d0Lnd0VGFibGUsaj15LmdldENvbHVtbkhlYWRlckhlaWdodCgwKSsxK3kuaG9sZGVyLnNjcm9sbFRvcDt0aGlzLmJhY2tsaWdodC5zZXRQb3NpdGlvbihqKSx0aGlzLmJhY2tsaWdodC5zZXRTaXplKG51bGws''@;'; + put 'put ''eS5oaWRlci5vZmZzZXRIZWlnaHQtail9fSx7a2V5OiJidWlsZFBsdWdpblVJIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuYmFja2xpZ2h0LmJ1aWxkKCksdGhpcy5ndWlkZWxpbmUuYnVpbGQoKX19LHtrZXk6Im9uQWZ0ZXJMb2FkRGF0YSIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLm1vdmVCeVNl''@;'; + put 'put ''dHRpbmdzT3JMb2FkKCl9fSx7a2V5OiJkZXN0cm95Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuYmFja2xpZ2h0LmRlc3Ryb3koKSx0aGlzLmd1aWRlbGluZS5kZXN0cm95KCksY00oUXYoaC5wcm90b3R5cGUpLCJkZXN0cm95Iix0aGlzKS5jYWxsKHRoaXMpfX1dLFt7a2V5OiJQTFVHSU5fS0VZ''@;'; + put 'put ''IixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZWdlfX0se2tleToiUExVR0lOX1BSSU9SSVRZIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gMTIwfX1dKSxofShZcyk7ZnVuY3Rpb24gcmdlKGQpe3JldHVybihyZ2U9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1i''@;'; + put 'put ''b2wuaXRlcmF0b3I/ZnVuY3Rpb24oZyl7cmV0dXJuIHR5cGVvZiBnfTpmdW5jdGlvbihnKXtyZXR1cm4gZyYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZy5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZyE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGd9KShkKX1mdW5jdGlv''@;'; + put 'put ''biB3SWUoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX1mdW5j''@;'; + put 'put ''dGlvbiBmTSgpe3JldHVybiBmTT0idW5kZWZpbmVkIiE9dHlwZW9mIFJlZmxlY3QmJlJlZmxlY3QuZ2V0P1JlZmxlY3QuZ2V0LmJpbmQoKTpmdW5jdGlvbihnLGgsdil7dmFyIHk9ZzN0KGcsaCk7aWYoeSl7dmFyIEM9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih5LGgpO3JldHVy''@;'; + put 'put ''biBDLmdldD9DLmdldC5jYWxsKGFyZ3VtZW50cy5sZW5ndGg8Mz9nOnYpOkMudmFsdWV9fSxmTS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gZzN0KGQsZyl7Zm9yKDshT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGQsZykmJm51bGwhPT0oZD1KdihkKSk7KTty''@;'; + put 'put ''ZXR1cm4gZH1mdW5jdGlvbiBpZ2UoZCxnKXtyZXR1cm4oaWdlPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHYseSl7cmV0dXJuIHYuX19wcm90b19fPXksdn0pKGQsZyl9ZnVuY3Rpb24gQTN0KGQsZyl7aWYoZyYmKCJvYmplY3Qi''@;'; + put 'put ''PT09cmdlKGcpfHwiZnVuY3Rpb24iPT10eXBlb2YgZykpcmV0dXJuIGc7aWYodm9pZCAwIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJEZXJpdmVkIGNvbnN0cnVjdG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0IG9yIHVuZGVmaW5lZCIpO3JldHVybiBvZ2UoZCl9ZnVuY3Rpb24gb2dlKGQp''@;'; + put 'put ''e2lmKHZvaWQgMD09PWQpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4gZH1mdW5jdGlvbiBKdihkKXtyZXR1cm4oSnY9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5n''@;'; + put 'put ''ZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24oaCl7cmV0dXJuIGguX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YoaCl9KShkKX12YXIgYm5lPSJtYW51YWxDb2x1bW5SZXNpemUiLGJJZT0ibWFudWFsQ29sdW1uV2lkdGhzIixhZ2U9bmV3IFdlYWtNYXAsYjN0PWZ1bmN0aW9u''@;'; + put 'put ''KGQpeyFmdW5jdGlvbiBtM3QoZCxnKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZyYmbnVsbCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTtkLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGcmJmcucHJv''@;'; + put 'put ''dG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6ZCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZyYmaWdlKGQsZyl9KGgsZCk7dmFyIGc9ZnVuY3Rpb24gdjN0KGQpe3ZhciBnPWZ1bmN0aW9u''@;'; + put 'put ''IHkzdCgpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0fHxSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBQcm94eSlyZXR1cm4hMDt0cnl7cmV0dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2Yu''@;'; + put 'put ''Y2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLGZ1bmN0aW9uKCl7fSkpLCEwfWNhdGNoKGQpe3JldHVybiExfX0oKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgeSx2PUp2KGQpO2lmKGcpe3ZhciBDPUp2KHRoaXMpLmNvbnN0cnVjdG9yO3k9UmVmbGVjdC5jb25zdHJ1Y3Qodixhcmd1''@;'; + put 'put ''bWVudHMsQyl9ZWxzZSB5PXYuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBBM3QodGhpcyx5KX19KGgpO2Z1bmN0aW9uIGgodil7dmFyIHk7IWZ1bmN0aW9uIGQzdChkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3Mg''@;'; + put 'put ''YXMgYSBmdW5jdGlvbiIpfSh0aGlzLGgpO3ZhciBDPSh5PWcuY2FsbCh0aGlzLHYpKS5ob3Qucm9vdERvY3VtZW50O3JldHVybiB5LmN1cnJlbnRUSD1udWxsLHkuY3VycmVudENvbD1udWxsLHkuc2VsZWN0ZWRDb2xzPVtdLHkuY3VycmVudFdpZHRoPW51bGwseS5uZXdTaXplPW51bGwseS5z''@;'; + put 'put ''dGFydFk9bnVsbCx5LnN0YXJ0V2lkdGg9bnVsbCx5LnN0YXJ0T2Zmc2V0PW51bGwseS5oYW5kbGU9Qy5jcmVhdGVFbGVtZW50KCJESVYiKSx5Lmd1aWRlPUMuY3JlYXRlRWxlbWVudCgiRElWIikseS5ldmVudE1hbmFnZXI9bmV3IEwxKG9nZSh5KSkseS5wcmVzc2VkPW51bGwseS5kYmxjbGlj''@;'; + put 'put ''az0wLHkuYXV0b3Jlc2l6ZVRpbWVvdXQ9bnVsbCx5LmNvbHVtbldpZHRoc01hcD12b2lkIDAsYWdlLnNldChvZ2UoeSkse2NvbmZpZzp2b2lkIDB9KSxPMCh5LmhhbmRsZSwibWFudWFsQ29sdW1uUmVzaXplciIpLE8wKHkuZ3VpZGUsIm1hbnVhbENvbHVtblJlc2l6ZXJHdWlkZSIpLHl9cmV0''@;'; + put 'put ''dXJuIGZ1bmN0aW9uIHAzdChkLGcsaCl7ZyYmd0llKGQucHJvdG90eXBlLGcpLGgmJndJZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShoLFt7a2V5OiJpbmxpbmVEaXIiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmhvdC5pc1J0''@;'; + put 'put ''bCgpPyJyaWdodCI6ImxlZnQifX0se2tleToiaXNFbmFibGVkIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmhvdC5nZXRTZXR0aW5ncygpW2JuZV19fSx7a2V5OiJlbmFibGVQbHVnaW4iLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpczt0aGlzLmVuYWJsZWR8fCh0aGlzLmNvbHVt''@;'; + put 'put ''bldpZHRoc01hcD1uZXcgRHcsdGhpcy5jb2x1bW5XaWR0aHNNYXAuYWRkTG9jYWxIb29rKCJpbml0IixmdW5jdGlvbigpe3JldHVybiB5Lm9uTWFwSW5pdCgpfSksdGhpcy5ob3QuY29sdW1uSW5kZXhNYXBwZXIucmVnaXN0ZXJNYXAodGhpcy5wbHVnaW5OYW1lLHRoaXMuY29sdW1uV2lkdGhz''@;'; + put 'put ''TWFwKSx0aGlzLmFkZEhvb2soIm1vZGlmeUNvbFdpZHRoIixmdW5jdGlvbihDLEkpe3JldHVybiB5Lm9uTW9kaWZ5Q29sV2lkdGgoQyxJKX0pLHRoaXMuYWRkSG9vaygiYmVmb3JlU3RyZXRjaGluZ0NvbHVtbldpZHRoIixmdW5jdGlvbihDLEkpe3JldHVybiB5Lm9uQmVmb3JlU3RyZXRjaGlu''@;'; + put 'put ''Z0NvbHVtbldpZHRoKEMsSSl9KSx0aGlzLmFkZEhvb2soImJlZm9yZUNvbHVtblJlc2l6ZSIsZnVuY3Rpb24oQyxJLGope3JldHVybiB5Lm9uQmVmb3JlQ29sdW1uUmVzaXplKEMsSSxqKX0pLHRoaXMuYmluZEV2ZW50cygpLGZNKEp2KGgucHJvdG90eXBlKSwiZW5hYmxlUGx1Z2luIix0aGlz''@;'; + put 'put ''KS5jYWxsKHRoaXMpKX19LHtrZXk6InVwZGF0ZVBsdWdpbiIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmRpc2FibGVQbHVnaW4oKSx0aGlzLmVuYWJsZVBsdWdpbigpLGZNKEp2KGgucHJvdG90eXBlKSwidXBkYXRlUGx1Z2luIix0aGlzKS5jYWxsKHRoaXMpfX0se2tleToiZGlzYWJsZVBsdWdp''@;'; + put 'put ''biIsdmFsdWU6ZnVuY3Rpb24oKXthZ2UuZ2V0KHRoaXMpLmNvbmZpZz10aGlzLmNvbHVtbldpZHRoc01hcC5nZXRWYWx1ZXMoKSx0aGlzLmhvdC5jb2x1bW5JbmRleE1hcHBlci51bnJlZ2lzdGVyTWFwKHRoaXMucGx1Z2luTmFtZSksZk0oSnYoaC5wcm90b3R5cGUpLCJkaXNhYmxlUGx1Z2lu''@;'; + put 'put ''Iix0aGlzKS5jYWxsKHRoaXMpfX0se2tleToic2F2ZU1hbnVhbENvbHVtbldpZHRocyIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmhvdC5ydW5Ib29rcygicGVyc2lzdGVudFN0YXRlU2F2ZSIsYkllLHRoaXMuY29sdW1uV2lkdGhzTWFwLmdldFZhbHVlcygpKX19LHtrZXk6ImxvYWRNYW51YWxD''@;'; + put 'put ''b2x1bW5XaWR0aHMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9e307cmV0dXJuIHRoaXMuaG90LnJ1bkhvb2tzKCJwZXJzaXN0ZW50U3RhdGVMb2FkIixiSWUseSkseS52YWx1ZX19LHtrZXk6InNldE1hbnVhbFNpemUiLHZhbHVlOmZ1bmN0aW9uKHksQyl7dmFyIEk9TWF0aC5tYXgoQywyMCks''@;'; + put 'put ''aj10aGlzLmhvdC50b1BoeXNpY2FsQ29sdW1uKHkpO3JldHVybiB0aGlzLmNvbHVtbldpZHRoc01hcC5zZXRWYWx1ZUF0SW5kZXgoaixJKSxJfX0se2tleToiY2xlYXJNYW51YWxTaXplIix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz10aGlzLmhvdC50b1BoeXNpY2FsQ29sdW1uKHkpO3RoaXMu''@;'; + put 'put ''Y29sdW1uV2lkdGhzTWFwLnNldFZhbHVlQXRJbmRleChDLG51bGwpfX0se2tleToib25NYXBJbml0Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXMsQz1hZ2UuZ2V0KHRoaXMpLEk9dGhpcy5ob3QuZ2V0U2V0dGluZ3MoKVtibmVdLGo9dGhpcy5sb2FkTWFudWFsQ29sdW1uV2lkdGhzKCk7''@;'; + put 'put ''dm9pZCAwIT09aj90aGlzLmhvdC5iYXRjaEV4ZWN1dGlvbihmdW5jdGlvbigpe2ouZm9yRWFjaChmdW5jdGlvbih1ZSxfZSl7eS5jb2x1bW5XaWR0aHNNYXAuc2V0VmFsdWVBdEluZGV4KF9lLHVlKX0pfSwhMCk6QXJyYXkuaXNBcnJheShJKT8odGhpcy5ob3QuYmF0Y2hFeGVjdXRpb24oZnVu''@;'; + put 'put ''Y3Rpb24oKXtJLmZvckVhY2goZnVuY3Rpb24odWUsX2Upe3kuY29sdW1uV2lkdGhzTWFwLnNldFZhbHVlQXRJbmRleChfZSx1ZSl9KX0sITApLEMuY29uZmlnPUkpOiEwPT09SSYmQXJyYXkuaXNBcnJheShDLmNvbmZpZykmJnRoaXMuaG90LmJhdGNoRXhlY3V0aW9uKGZ1bmN0aW9uKCl7Qy5j''@;'; + put 'put ''b25maWcuZm9yRWFjaChmdW5jdGlvbih1ZSxfZSl7eS5jb2x1bW5XaWR0aHNNYXAuc2V0VmFsdWVBdEluZGV4KF9lLHVlKX0pfSwhMCl9fSx7a2V5OiJzZXR1cEhhbmRsZVBvc2l0aW9uIix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz10aGlzO2lmKHkucGFyZW50Tm9kZSl7dGhpcy5jdXJyZW50''@;'; + put 'put ''VEg9eTt2YXIgST10aGlzLmhvdC52aWV3Ll93dCxqPUkud3RUYWJsZS5nZXRDb29yZHModGhpcy5jdXJyZW50VEgpLHVlPWouY29sO2lmKCEodWU8MCkpe3ZhciBLZSxfZT1EMSh0aGlzLmN1cnJlbnRUSCksQmU9dGhpcy5jdXJyZW50VEguZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7dWU8SS5n''@;'; + put 'put ''ZXRTZXR0aW5nKCJmaXhlZENvbHVtbnNTdGFydCIpJiYoS2U9SS53dE92ZXJsYXlzLnRvcElubGluZVN0YXJ0Q29ybmVyT3ZlcmxheS5nZXRSZWxhdGl2ZUNlbGxQb3NpdGlvbih0aGlzLmN1cnJlbnRUSCxqLnJvdyxqLmNvbCkpLEtlfHwoS2U9SS53dE92ZXJsYXlzLnRvcE92ZXJsYXkuZ2V0''@;'; + put 'put ''UmVsYXRpdmVDZWxsUG9zaXRpb24odGhpcy5jdXJyZW50VEgsai5yb3csai5jb2wpKSx0aGlzLmN1cnJlbnRDb2w9dGhpcy5ob3QuY29sdW1uSW5kZXhNYXBwZXIuZ2V0VmlzdWFsRnJvbVJlbmRlcmFibGVJbmRleCh1ZSksdGhpcy5zZWxlY3RlZENvbHM9W107dmFyIGR0PXRoaXMuaG90LnNl''@;'; + put 'put ''bGVjdGlvbi5pc1NlbGVjdGVkQnlDb3JuZXIoKXx8dGhpcy5ob3Quc2VsZWN0aW9uLmlzU2VsZWN0ZWRCeUNvbHVtbkhlYWRlcigpO3RoaXMuaG90LnNlbGVjdGlvbi5pc1NlbGVjdGVkKCkmJmR0JiZVcih0aGlzLmhvdC5nZXRTZWxlY3RlZFJhbmdlKCksZnVuY3Rpb24oJHQpe2lhKCR0Lmdl''@;'; + put 'put ''dFRvcFN0YXJ0Q29ybmVyKCkuY29sLCR0LmdldEJvdHRvbUVuZENvcm5lcigpLmNvbCxmdW5jdGlvbihpcil7Qy5zZWxlY3RlZENvbHMuaW5jbHVkZXMoaXIpfHxDLnNlbGVjdGVkQ29scy5wdXNoKGlyKX0pfSksdGhpcy5zZWxlY3RlZENvbHMuaW5jbHVkZXModGhpcy5jdXJyZW50Q29sKXx8''@;'; + put 'put ''KHRoaXMuc2VsZWN0ZWRDb2xzPVt0aGlzLmN1cnJlbnRDb2xdKSx0aGlzLnN0YXJ0T2Zmc2V0PUtlLnN0YXJ0LTYsdGhpcy5zdGFydFdpZHRoPXBhcnNlSW50KEJlLndpZHRoLDEwKSx0aGlzLmhhbmRsZS5zdHlsZS50b3A9IiIuY29uY2F0KEtlLnRvcCwicHgiKSx0aGlzLmhhbmRsZS5zdHls''@;'; + put 'put ''ZVt0aGlzLmlubGluZURpcl09IiIuY29uY2F0KHRoaXMuc3RhcnRPZmZzZXQrdGhpcy5zdGFydFdpZHRoLCJweCIpLHRoaXMuaGFuZGxlLnN0eWxlLmhlaWdodD0iIi5jb25jYXQoX2UsInB4IiksdGhpcy5ob3Qucm9vdEVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5oYW5kbGUpfX19fSx7a2V5''@;'; + put 'put ''OiJyZWZyZXNoSGFuZGxlUG9zaXRpb24iLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5oYW5kbGUuc3R5bGVbdGhpcy5pbmxpbmVEaXJdPSIiLmNvbmNhdCh0aGlzLnN0YXJ0T2Zmc2V0K3RoaXMuY3VycmVudFdpZHRoLCJweCIpfX0se2tleToic2V0dXBHdWlkZVBvc2l0aW9uIix2YWx1ZTpmdW5j''@;'; + put 'put ''dGlvbigpe3ZhciB5PXBhcnNlSW50KEQxKHRoaXMuaGFuZGxlKSwxMCksQz1wYXJzZUludCh0aGlzLmhhbmRsZS5zdHlsZS50b3AsMTApK3ksST1wYXJzZUludCh0aGlzLmhvdC52aWV3Lm1heGltdW1WaXNpYmxlRWxlbWVudEhlaWdodCgwKSwxMCk7TzAodGhpcy5oYW5kbGUsImFjdGl2ZSIp''@;'; + put 'put ''LE8wKHRoaXMuZ3VpZGUsImFjdGl2ZSIpLHRoaXMuZ3VpZGUuc3R5bGUudG9wPSIiLmNvbmNhdChDLCJweCIpLHRoaXMucmVmcmVzaEd1aWRlUG9zaXRpb24oKSx0aGlzLmd1aWRlLnN0eWxlLmhlaWdodD0iIi5jb25jYXQoSS15LCJweCIpLHRoaXMuaG90LnJvb3RFbGVtZW50LmFwcGVuZENo''@;'; + put 'put ''aWxkKHRoaXMuZ3VpZGUpfX0se2tleToicmVmcmVzaEd1aWRlUG9zaXRpb24iLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5ndWlkZS5zdHlsZVt0aGlzLmlubGluZURpcl09dGhpcy5oYW5kbGUuc3R5bGVbdGhpcy5pbmxpbmVEaXJdfX0se2tleToiaGlkZUhhbmRsZUFuZEd1aWRlIix2YWx1ZTpm''@;'; + put 'put ''dW5jdGlvbigpe3BsKHRoaXMuaGFuZGxlLCJhY3RpdmUiKSxwbCh0aGlzLmd1aWRlLCJhY3RpdmUiKX19LHtrZXk6ImNoZWNrSWZDb2x1bW5IZWFkZXIiLHZhbHVlOmZ1bmN0aW9uKHkpe3JldHVybiEhU3YoeSxbIlRIRUFEIl0sdGhpcy5ob3Qucm9vdEVsZW1lbnQpfX0se2tleToiZ2V0Q2xv''@;'; + put 'put ''c2VzdFRIUGFyZW50Iix2YWx1ZTpmdW5jdGlvbih5KXtyZXR1cm4iVEFCTEUiIT09eS50YWdOYW1lPyJUSCI9PT15LnRhZ05hbWU/eTp0aGlzLmdldENsb3Nlc3RUSFBhcmVudCh5LnBhcmVudE5vZGUpOm51bGx9fSx7a2V5OiJvbk1vdXNlT3ZlciIsdmFsdWU6ZnVuY3Rpb24oeSl7aWYoIUEz''@;'; + put 'put ''ZSh5LnRhcmdldCkmJnRoaXMuY2hlY2tJZkNvbHVtbkhlYWRlcih5LnRhcmdldCkpe3ZhciBDPXRoaXMuZ2V0Q2xvc2VzdFRIUGFyZW50KHkudGFyZ2V0KTtpZighQylyZXR1cm47dmFyIEk9Qy5nZXRBdHRyaWJ1dGUoImNvbHNwYW4iKTtDJiYobnVsbD09PUl8fCIxIj09PUkpJiYodGhpcy5w''@;'; + put 'put ''cmVzc2VkfHx0aGlzLnNldHVwSGFuZGxlUG9zaXRpb24oQykpfX19LHtrZXk6ImFmdGVyTW91c2VEb3duVGltZW91dCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzLEM9ZnVuY3Rpb24oKXt5LmhvdC5mb3JjZUZ1bGxSZW5kZXI9ITAseS5ob3Qudmlldy5yZW5kZXIoKSx5LmhvdC52aWV3''@;'; + put 'put ''LmFkanVzdEVsZW1lbnRzU2l6ZSghMCl9LEk9ZnVuY3Rpb24oX2UsQmUpe3ZhciBOZT15LmhvdC5ydW5Ib29rcygiYmVmb3JlQ29sdW1uUmVzaXplIix5Lm5ld1NpemUsX2UsITApO3ZvaWQgMCE9PU5lJiYoeS5uZXdTaXplPU5lKSwiYWxsIj09PXkuaG90LmdldFNldHRpbmdzKCkuc3RyZXRj''@;'; + put 'put ''aEg/eS5jbGVhck1hbnVhbFNpemUoX2UpOnkuc2V0TWFudWFsU2l6ZShfZSx5Lm5ld1NpemUpLHkuc2F2ZU1hbnVhbENvbHVtbldpZHRocygpLHkuaG90LnJ1bkhvb2tzKCJhZnRlckNvbHVtblJlc2l6ZSIseS5uZXdTaXplLF9lLCEwKSxCZSYmQygpfTt0aGlzLmRibGNsaWNrPj0yJiYodGhp''@;'; + put 'put ''cy5zZWxlY3RlZENvbHMubGVuZ3RoPjE/KFVyKHRoaXMuc2VsZWN0ZWRDb2xzLGZ1bmN0aW9uKHVlKXtJKHVlKX0pLEMoKSk6VXIodGhpcy5zZWxlY3RlZENvbHMsZnVuY3Rpb24odWUpe0kodWUsITApfSkpLHRoaXMuZGJsY2xpY2s9MCx0aGlzLmF1dG9yZXNpemVUaW1lb3V0PW51bGx9fSx7''@;'; + put 'put ''a2V5OiJvbk1vdXNlRG93biIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEM9dGhpczt0bCh5LnRhcmdldCwibWFudWFsQ29sdW1uUmVzaXplciIpJiYodGhpcy5zZXR1cEhhbmRsZVBvc2l0aW9uKHRoaXMuY3VycmVudFRIKSx0aGlzLnNldHVwR3VpZGVQb3NpdGlvbigpLHRoaXMucHJlc3NlZD0h''@;'; + put 'put ''MCxudWxsPT09dGhpcy5hdXRvcmVzaXplVGltZW91dCYmKHRoaXMuYXV0b3Jlc2l6ZVRpbWVvdXQ9c2V0VGltZW91dChmdW5jdGlvbigpe3JldHVybiBDLmFmdGVyTW91c2VEb3duVGltZW91dCgpfSw1MDApLHRoaXMuaG90Ll9yZWdpc3RlclRpbWVvdXQodGhpcy5hdXRvcmVzaXplVGltZW91''@;'; + put 'put ''dCkpLHRoaXMuZGJsY2xpY2srPTEsdGhpcy5zdGFydFg9eS5wYWdlWCx0aGlzLm5ld1NpemU9dGhpcy5zdGFydFdpZHRoKX19LHtrZXk6Im9uTW91c2VNb3ZlIix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz10aGlzO2lmKHRoaXMucHJlc3NlZCl7dmFyIEk9KHkucGFnZVgtdGhpcy5zdGFydFgp''@;'; + put 'put ''KnRoaXMuaG90LmdldERpcmVjdGlvbkZhY3RvcigpO3RoaXMuY3VycmVudFdpZHRoPXRoaXMuc3RhcnRXaWR0aCtJLFVyKHRoaXMuc2VsZWN0ZWRDb2xzLGZ1bmN0aW9uKGope0MubmV3U2l6ZT1DLnNldE1hbnVhbFNpemUoaixDLmN1cnJlbnRXaWR0aCl9KSx0aGlzLnJlZnJlc2hIYW5kbGVQ''@;'; + put 'put ''b3NpdGlvbigpLHRoaXMucmVmcmVzaEd1aWRlUG9zaXRpb24oKX19fSx7a2V5OiJvbk1vdXNlVXAiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcyxDPWZ1bmN0aW9uKCl7eS5ob3QuZm9yY2VGdWxsUmVuZGVyPSEwLHkuaG90LnZpZXcucmVuZGVyKCkseS5ob3Qudmlldy5hZGp1c3RFbGVt''@;'; + put 'put ''ZW50c1NpemUoITApfSxJPWZ1bmN0aW9uKF9lLEJlKXt5LmhvdC5ydW5Ib29rcygiYmVmb3JlQ29sdW1uUmVzaXplIix5Lm5ld1NpemUsX2UsITEpLEJlJiZDKCkseS5zYXZlTWFudWFsQ29sdW1uV2lkdGhzKCkseS5ob3QucnVuSG9va3MoImFmdGVyQ29sdW1uUmVzaXplIix5Lm5ld1NpemUs''@;'; + put 'put ''X2UsITEpfTt0aGlzLnByZXNzZWQmJih0aGlzLmhpZGVIYW5kbGVBbmRHdWlkZSgpLHRoaXMucHJlc3NlZD0hMSx0aGlzLm5ld1NpemUhPT10aGlzLnN0YXJ0V2lkdGgmJih0aGlzLnNlbGVjdGVkQ29scy5sZW5ndGg+MT8oVXIodGhpcy5zZWxlY3RlZENvbHMsZnVuY3Rpb24odWUpe0kodWUp''@;'; + put 'put ''fSksQygpKTpVcih0aGlzLnNlbGVjdGVkQ29scyxmdW5jdGlvbih1ZSl7SSh1ZSwhMCl9KSksdGhpcy5zZXR1cEhhbmRsZVBvc2l0aW9uKHRoaXMuY3VycmVudFRIKSl9fSx7a2V5OiJiaW5kRXZlbnRzIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXMsQz10aGlzLmhvdCxJPUMucm9vdFdp''@;'; + put 'put ''bmRvdyxqPUMucm9vdEVsZW1lbnQ7dGhpcy5ldmVudE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihqLCJtb3VzZW92ZXIiLGZ1bmN0aW9uKHVlKXtyZXR1cm4geS5vbk1vdXNlT3Zlcih1ZSl9KSx0aGlzLmV2ZW50TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKGosIm1vdXNlZG93biIsZnVuY3Rp''@;'; + put 'put ''b24odWUpe3JldHVybiB5Lm9uTW91c2VEb3duKHVlKX0pLHRoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoSSwibW91c2Vtb3ZlIixmdW5jdGlvbih1ZSl7cmV0dXJuIHkub25Nb3VzZU1vdmUodWUpfSksdGhpcy5ldmVudE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihJLCJtb3Vz''@;'; + put 'put ''ZXVwIixmdW5jdGlvbigpe3JldHVybiB5Lm9uTW91c2VVcCgpfSl9fSx7a2V5OiJvbk1vZGlmeUNvbFdpZHRoIix2YWx1ZTpmdW5jdGlvbih5LEMpe3ZhciBJPXk7aWYodGhpcy5lbmFibGVkKXt2YXIgaj10aGlzLmhvdC50b1BoeXNpY2FsQ29sdW1uKEMpLHVlPXRoaXMuY29sdW1uV2lkdGhz''@;'; + put 'put ''TWFwLmdldFZhbHVlQXRJbmRleChqKTt0aGlzLmhvdC5nZXRTZXR0aW5ncygpW2JuZV0mJnVlJiYoST11ZSl9cmV0dXJuIEl9fSx7a2V5OiJvbkJlZm9yZVN0cmV0Y2hpbmdDb2x1bW5XaWR0aCIsdmFsdWU6ZnVuY3Rpb24oeSxDKXt2YXIgST10aGlzLmNvbHVtbldpZHRoc01hcC5nZXRWYWx1''@;'; + put 'put ''ZUF0SW5kZXgoQyk7cmV0dXJuIG51bGw9PT1JJiYoST15KSxJfX0se2tleToib25CZWZvcmVDb2x1bW5SZXNpemUiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5ob3Qudmlldy5fd3Qud3RWaWV3cG9ydC5yZXNldEhhc092ZXJzaXplZENvbHVtbkhlYWRlcnNNYXJrZWQoKX19LHtrZXk6ImRlc3Ry''@;'; + put 'put ''b3kiLHZhbHVlOmZ1bmN0aW9uKCl7Zk0oSnYoaC5wcm90b3R5cGUpLCJkZXN0cm95Iix0aGlzKS5jYWxsKHRoaXMpfX1dLFt7a2V5OiJQTFVHSU5fS0VZIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gYm5lfX0se2tleToiUExVR0lOX1BSSU9SSVRZIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gMTMw''@;'; + put 'put ''fX1dKSxofShZcyk7ZnVuY3Rpb24gX0llKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVy''@;'; + put 'put ''dHkoZCx2LmtleSx2KX19dmFyIHJSPSJweCIsazN0PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZChnKXsoZnVuY3Rpb24gXzN0KGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KSh0aGlzLGQpLHRo''@;'; + put 'put ''aXMuaG90PWcsdGhpcy5fZWxlbWVudD1udWxsLHRoaXMuc3RhdGU9MH1yZXR1cm4gZnVuY3Rpb24gQzN0KGQsZyxoKXtnJiZfSWUoZC5wcm90b3R5cGUsZyksaCYmX0llKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGQsW3trZXk6ImFw''@;'; + put 'put ''cGVuZFRvIix2YWx1ZTpmdW5jdGlvbihoKXtoLmFwcGVuZENoaWxkKHRoaXMuX2VsZW1lbnQpLHRoaXMuc3RhdGU9Mn19LHtrZXk6ImJ1aWxkIix2YWx1ZTpmdW5jdGlvbigpezA9PT10aGlzLnN0YXRlJiYodGhpcy5fZWxlbWVudD10aGlzLmhvdC5yb290RG9jdW1lbnQuY3JlYXRlRWxlbWVu''@;'; + put 'put ''dCgiZGl2IiksdGhpcy5zdGF0ZT0xKX19LHtrZXk6ImRlc3Ryb3kiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5pc0FwcGVuZGVkKCkmJnRoaXMuX2VsZW1lbnQucGFyZW50RWxlbWVudC5yZW1vdmVDaGlsZCh0aGlzLl9lbGVtZW50KSx0aGlzLl9lbGVtZW50PW51bGwsdGhpcy5zdGF0ZT0wfX0s''@;'; + put 'put ''e2tleToiaXNBcHBlbmRlZCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRoaXMuc3RhdGV9fSx7a2V5OiJpc0J1aWx0Iix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnN0YXRlPj0xfX0se2tleToic2V0UG9zaXRpb24iLHZhbHVlOmZ1bmN0aW9uKGgsdil7dm9pZCAwIT09aCYm''@;'; + put 'put ''KHRoaXMuX2VsZW1lbnQuc3R5bGUudG9wPWgrclIpLHZvaWQgMCE9PXYmJih0aGlzLl9lbGVtZW50LnN0eWxlLmxlZnQ9dityUil9fSx7a2V5OiJnZXRQb3NpdGlvbiIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm57dG9wOnRoaXMuX2VsZW1lbnQuc3R5bGUudG9wP3BhcnNlSW50KHRoaXMuX2Vs''@;'; + put 'put ''ZW1lbnQuc3R5bGUudG9wLDEwKTowLGxlZnQ6dGhpcy5fZWxlbWVudC5zdHlsZS5sZWZ0P3BhcnNlSW50KHRoaXMuX2VsZW1lbnQuc3R5bGUubGVmdCwxMCk6MH19fSx7a2V5OiJzZXRTaXplIix2YWx1ZTpmdW5jdGlvbihoLHYpe2gmJih0aGlzLl9lbGVtZW50LnN0eWxlLndpZHRoPWgrclIp''@;'; + put 'put ''LHYmJih0aGlzLl9lbGVtZW50LnN0eWxlLmhlaWdodD12K3JSKX19LHtrZXk6ImdldFNpemUiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJue3dpZHRoOnRoaXMuX2VsZW1lbnQuc3R5bGUud2lkdGg/cGFyc2VJbnQodGhpcy5fZWxlbWVudC5zdHlsZS53aWR0aCwxMCk6MCxoZWlnaHQ6dGhpcy5f''@;'; + put 'put ''ZWxlbWVudC5zdHlsZS5oZWlnaHQ/cGFyc2VJbnQodGhpcy5fZWxlbWVudC5zdHlsZS5oZWlnaHQsMTApOjB9fX0se2tleToic2V0T2Zmc2V0Iix2YWx1ZTpmdW5jdGlvbihoLHYpe2gmJih0aGlzLl9lbGVtZW50LnN0eWxlLm1hcmdpblRvcD1oK3JSKSx2JiYodGhpcy5fZWxlbWVudC5zdHls''@;'; + put 'put ''ZS5tYXJnaW5MZWZ0PXYrclIpfX0se2tleToiZ2V0T2Zmc2V0Iix2YWx1ZTpmdW5jdGlvbigpe3JldHVybnt0b3A6dGhpcy5fZWxlbWVudC5zdHlsZS5tYXJnaW5Ub3A/cGFyc2VJbnQodGhpcy5fZWxlbWVudC5zdHlsZS5tYXJnaW5Ub3AsMTApOjAsbGVmdDp0aGlzLl9lbGVtZW50LnN0eWxl''@;'; + put 'put ''Lm1hcmdpbkxlZnQ/cGFyc2VJbnQodGhpcy5fZWxlbWVudC5zdHlsZS5tYXJnaW5MZWZ0LDEwKTowfX19XSksZH0oKTtjb25zdCBTSWU9azN0O2Z1bmN0aW9uIHNnZShkKXtyZXR1cm4oc2dlPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJh''@;'; + put 'put ''dG9yP2Z1bmN0aW9uKGcpe3JldHVybiB0eXBlb2YgZ306ZnVuY3Rpb24oZyl7cmV0dXJuIGcmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmcuY29uc3RydWN0b3I9PT1TeW1ib2wmJmchPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBnfSkoZCl9ZnVuY3Rpb24gUzN0KGQs''@;'; + put 'put ''Zyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9ZnVuY3Rpb24gTUllKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8''@;'; + put 'put ''ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19ZnVuY3Rpb24gX25lKCl7cmV0dXJuIF9uZT0idW5kZWZpbmVkIiE9dHlwZW9mIFJlZmxlY3QmJlJlZmxlY3QuZ2V0P1JlZmxlY3QuZ2V0LmJp''@;'; + put 'put ''bmQoKTpmdW5jdGlvbihnLGgsdil7dmFyIHk9RTN0KGcsaCk7aWYoeSl7dmFyIEM9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih5LGgpO3JldHVybiBDLmdldD9DLmdldC5jYWxsKGFyZ3VtZW50cy5sZW5ndGg8Mz9nOnYpOkMudmFsdWV9fSxfbmUuYXBwbHkodGhpcyxhcmd1bWVu''@;'; + put 'put ''dHMpfWZ1bmN0aW9uIEUzdChkLGcpe2Zvcig7IU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChkLGcpJiZudWxsIT09KGQ9aVIoZCkpOyk7cmV0dXJuIGR9ZnVuY3Rpb24gdWdlKGQsZyl7cmV0dXJuKHVnZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3Rv''@;'; + put 'put ''dHlwZU9mLmJpbmQoKTpmdW5jdGlvbih2LHkpe3JldHVybiB2Ll9fcHJvdG9fXz15LHZ9KShkLGcpfWZ1bmN0aW9uIEkzdChkLGcpe2lmKGcmJigib2JqZWN0Ij09PXNnZShnKXx8ImZ1bmN0aW9uIj09dHlwZW9mIGcpKXJldHVybiBnO2lmKHZvaWQgMCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJv''@;'; + put 'put ''cigiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWQiKTtyZXR1cm4gZnVuY3Rpb24gRDN0KGQpe2lmKHZvaWQgMD09PWQpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBo''@;'; + put 'put ''YXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4gZH0oZCl9ZnVuY3Rpb24gaVIoZCl7cmV0dXJuKGlSPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3QuZ2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKGgpe3JldHVybiBoLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKGgp''@;'; + put 'put ''fSkoZCl9dmFyIFIzdD1mdW5jdGlvbihkKXshZnVuY3Rpb24geDN0KGQsZyl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGcmJm51bGwhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uIik7ZC5wcm90b3R5cGU9''@;'; + put 'put ''T2JqZWN0LmNyZWF0ZShnJiZnLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOmQsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGcmJnVnZShkLGcpfShoLGQpO3ZhciBnPWZ1bmN0aW9u''@;'; + put 'put ''IFQzdChkKXt2YXIgZz1mdW5jdGlvbiBMM3QoKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIFJlZmxlY3R8fCFSZWZsZWN0LmNvbnN0cnVjdHx8UmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT10eXBlb2YgUHJveHkpcmV0dXJuITA7dHJ5e3JldHVybiBCb29s''@;'; + put 'put ''ZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSxmdW5jdGlvbigpe30pKSwhMH1jYXRjaChkKXtyZXR1cm4hMX19KCk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHksdj1pUihkKTtpZihnKXt2YXIgQz1pUih0aGlzKS5jb25zdHJ1Y3Rvcjt5PVJl''@;'; + put 'put ''ZmxlY3QuY29uc3RydWN0KHYsYXJndW1lbnRzLEMpfWVsc2UgeT12LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gSTN0KHRoaXMseSl9fShoKTtmdW5jdGlvbiBoKCl7cmV0dXJuIFMzdCh0aGlzLGgpLGcuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiBmdW5jdGlvbiBNM3QoZCxn''@;'; + put 'put ''LGgpe2cmJk1JZShkLnByb3RvdHlwZSxnKSxoJiZNSWUoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oaCxbe2tleToiYnVpbGQiLHZhbHVlOmZ1bmN0aW9uKCl7X25lKGlSKGgucHJvdG90eXBlKSwiYnVpbGQiLHRoaXMpLmNhbGwodGhp''@;'; + put 'put ''cyksTzAodGhpcy5fZWxlbWVudCwiaHRfX21hbnVhbFJvd01vdmUtLWJhY2tsaWdodCIpfX1dKSxofShTSWUpO2NvbnN0IEIzdD1SM3Q7ZnVuY3Rpb24gY2dlKGQpe3JldHVybihjZ2U9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/''@;'; + put 'put ''ZnVuY3Rpb24oZyl7cmV0dXJuIHR5cGVvZiBnfTpmdW5jdGlvbihnKXtyZXR1cm4gZyYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZy5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZyE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGd9KShkKX1mdW5jdGlvbiBQM3QoZCxnKXtp''@;'; + put 'put ''ZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX1mdW5jdGlvbiBFSWUoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2''@;'; + put 'put ''LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX1mdW5jdGlvbiBDbmUoKXtyZXR1cm4gQ25lPSJ1bmRlZmluZWQiIT10eXBlb2YgUmVmbGVjdCYmUmVmbGVjdC5nZXQ/UmVmbGVjdC5nZXQuYmluZCgp''@;'; + put 'put ''OmZ1bmN0aW9uKGcsaCx2KXt2YXIgeT1IM3QoZyxoKTtpZih5KXt2YXIgQz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHksaCk7cmV0dXJuIEMuZ2V0P0MuZ2V0LmNhbGwoYXJndW1lbnRzLmxlbmd0aDwzP2c6dik6Qy52YWx1ZX19LENuZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9''@;'; + put 'put ''ZnVuY3Rpb24gSDN0KGQsZyl7Zm9yKDshT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGQsZykmJm51bGwhPT0oZD1vUihkKSk7KTtyZXR1cm4gZH1mdW5jdGlvbiBmZ2UoZCxnKXtyZXR1cm4oZmdlPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBl''@;'; + put 'put ''T2YuYmluZCgpOmZ1bmN0aW9uKHYseSl7cmV0dXJuIHYuX19wcm90b19fPXksdn0pKGQsZyl9ZnVuY3Rpb24gajN0KGQsZyl7aWYoZyYmKCJvYmplY3QiPT09Y2dlKGcpfHwiZnVuY3Rpb24iPT10eXBlb2YgZykpcmV0dXJuIGc7aWYodm9pZCAwIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJE''@;'; + put 'put ''ZXJpdmVkIGNvbnN0cnVjdG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0IG9yIHVuZGVmaW5lZCIpO3JldHVybiBmdW5jdGlvbiBaM3QoZCl7aWYodm9pZCAwPT09ZCl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24n''@;'; + put 'put ''dCBiZWVuIGNhbGxlZCIpO3JldHVybiBkfShkKX1mdW5jdGlvbiBvUihkKXtyZXR1cm4ob1I9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24oaCl7cmV0dXJuIGguX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YoaCl9KShk''@;'; + put 'put ''KX12YXIgVzN0PWZ1bmN0aW9uKGQpeyFmdW5jdGlvbiBOM3QoZCxnKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZyYmbnVsbCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTtkLnByb3RvdHlwZT1PYmpl''@;'; + put 'put ''Y3QuY3JlYXRlKGcmJmcucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6ZCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZyYmZmdlKGQsZyl9KGgsZCk7dmFyIGc9ZnVuY3Rpb24gVjN0''@;'; + put 'put ''KGQpe3ZhciBnPWZ1bmN0aW9uIHozdCgpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0fHxSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBQcm94eSlyZXR1cm4hMDt0cnl7cmV0dXJuIEJvb2xlYW4u''@;'; + put 'put ''cHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLGZ1bmN0aW9uKCl7fSkpLCEwfWNhdGNoKGQpe3JldHVybiExfX0oKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgeSx2PW9SKGQpO2lmKGcpe3ZhciBDPW9SKHRoaXMpLmNvbnN0cnVjdG9yO3k9UmVmbGVj''@;'; + put 'put ''dC5jb25zdHJ1Y3Qodixhcmd1bWVudHMsQyl9ZWxzZSB5PXYuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBqM3QodGhpcyx5KX19KGgpO2Z1bmN0aW9uIGgoKXtyZXR1cm4gUDN0KHRoaXMsaCksZy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIGZ1bmN0aW9uIEYzdChkLGcsaCl7''@;'; + put 'put ''ZyYmRUllKGQucHJvdG90eXBlLGcpLGgmJkVJZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShoLFt7a2V5OiJidWlsZCIsdmFsdWU6ZnVuY3Rpb24oKXtDbmUob1IoaC5wcm90b3R5cGUpLCJidWlsZCIsdGhpcykuY2FsbCh0aGlzKSxP''@;'; + put 'put ''MCh0aGlzLl9lbGVtZW50LCJodF9fbWFudWFsUm93TW92ZS0tZ3VpZGVsaW5lIil9fV0pLGh9KFNJZSk7Y29uc3QgWTN0PVczdDtmdW5jdGlvbiBoZ2UoZCl7cmV0dXJuKGhnZT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5j''@;'; + put 'put ''dGlvbihnKXtyZXR1cm4gdHlwZW9mIGd9OmZ1bmN0aW9uKGcpe3JldHVybiBnJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZnLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZnIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgZ30pKGQpfWZ1bmN0aW9uIHhJZShkLGcpe2Zvcih2''@;'; + put 'put ''YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fWZ1bmN0aW9uIGhNKCl7cmV0dXJu''@;'; + put 'put ''IGhNPSJ1bmRlZmluZWQiIT10eXBlb2YgUmVmbGVjdCYmUmVmbGVjdC5nZXQ/UmVmbGVjdC5nZXQuYmluZCgpOmZ1bmN0aW9uKGcsaCx2KXt2YXIgeT1KM3QoZyxoKTtpZih5KXt2YXIgQz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHksaCk7cmV0dXJuIEMuZ2V0P0MuZ2V0LmNh''@;'; + put 'put ''bGwoYXJndW1lbnRzLmxlbmd0aDwzP2c6dik6Qy52YWx1ZX19LGhNLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBKM3QoZCxnKXtmb3IoOyFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZCxnKSYmbnVsbCE9PShkPVh2KGQpKTspO3JldHVybiBkfWZ1bmN0aW9u''@;'; + put 'put ''IGRnZShkLGcpe3JldHVybihkZ2U9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24odix5KXtyZXR1cm4gdi5fX3Byb3RvX189eSx2fSkoZCxnKX1mdW5jdGlvbiAkM3QoZCxnKXtpZihnJiYoIm9iamVjdCI9PT1oZ2UoZyl8fCJmdW5j''@;'; + put 'put ''dGlvbiI9PXR5cGVvZiBnKSlyZXR1cm4gZztpZih2b2lkIDAhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIkRlcml2ZWQgY29uc3RydWN0b3JzIG1heSBvbmx5IHJldHVybiBvYmplY3Qgb3IgdW5kZWZpbmVkIik7cmV0dXJuIHBnZShkKX1mdW5jdGlvbiBwZ2UoZCl7aWYodm9pZCAwPT09ZCl0''@;'; + put 'put ''aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3JldHVybiBkfWZ1bmN0aW9uIFh2KGQpe3JldHVybihYdj1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFByb3RvdHlwZU9mLmJp''@;'; + put 'put ''bmQoKTpmdW5jdGlvbihoKXtyZXR1cm4gaC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihoKX0pKGQpfXpvLmdldFNpbmdsZXRvbigpLnJlZ2lzdGVyKCJiZWZvcmVSb3dNb3ZlIiksem8uZ2V0U2luZ2xldG9uKCkucmVnaXN0ZXIoImFmdGVyUm93TW92ZSIpO3ZhciBnZ2U9Im1h''@;'; + put 'put ''bnVhbFJvd01vdmUiLFV3PW5ldyBXZWFrTWFwLFRJZT0iaHRfX21hbnVhbFJvd01vdmUiLGtuZT0ic2hvdy11aSIsbWdlPSJvbi1tb3ZpbmctLXJvd3MiLHZnZT0iYWZ0ZXItc2VsZWN0aW9uLS1yb3dzIix0ZHQ9ZnVuY3Rpb24oZCl7IWZ1bmN0aW9uIFgzdChkLGcpe2lmKCJmdW5jdGlvbiIh''@;'; + put 'put ''PXR5cGVvZiBnJiZudWxsIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiIpO2QucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZyYmZy5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTpkLHdyaXRhYmxl''@;'; + put 'put ''OiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxnJiZkZ2UoZCxnKX0oaCxkKTt2YXIgZz1mdW5jdGlvbiBLM3QoZCl7dmFyIGc9ZnVuY3Rpb24gcTN0KCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBSZWZsZWN0''@;'; + put 'put ''fHwhUmVmbGVjdC5jb25zdHJ1Y3R8fFJlZmxlY3QuY29uc3RydWN0LnNoYW0pcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIFByb3h5KXJldHVybiEwO3RyeXtyZXR1cm4gQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10sZnVu''@;'; + put 'put ''Y3Rpb24oKXt9KSksITB9Y2F0Y2goZCl7cmV0dXJuITF9fSgpO3JldHVybiBmdW5jdGlvbigpe3ZhciB5LHY9WHYoZCk7aWYoZyl7dmFyIEM9WHYodGhpcykuY29uc3RydWN0b3I7eT1SZWZsZWN0LmNvbnN0cnVjdCh2LGFyZ3VtZW50cyxDKX1lbHNlIHk9di5hcHBseSh0aGlzLGFyZ3VtZW50''@;'; + put 'put ''cyk7cmV0dXJuICQzdCh0aGlzLHkpfX0oaCk7ZnVuY3Rpb24gaCh2KXt2YXIgeTtyZXR1cm4gZnVuY3Rpb24gVTN0KGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsaCkseT1nLmNh''@;'; + put 'put ''bGwodGhpcyx2KSxVdy5zZXQocGdlKHkpLHtyb3dzVG9Nb3ZlOltdLHByZXNzZWQ6dm9pZCAwLHRhcmdldDp7ZXZlbnRQYWdlWTp2b2lkIDAsY29vcmRzOnZvaWQgMCxURDp2b2lkIDAscm93OnZvaWQgMH0sY2FjaGVkRHJvcEluZGV4OnZvaWQgMH0pLHkuZXZlbnRNYW5hZ2VyPW5ldyBMMShw''@;'; + put 'put ''Z2UoeSkpLHkuYmFja2xpZ2h0PW5ldyBCM3QodikseS5ndWlkZWxpbmU9bmV3IFkzdCh2KSx5fXJldHVybiBmdW5jdGlvbiBRM3QoZCxnLGgpe2cmJnhJZShkLnByb3RvdHlwZSxnKSxoJiZ4SWUoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9''@;'; + put 'put ''KX0oaCxbe2tleToiaXNFbmFibGVkIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiEhdGhpcy5ob3QuZ2V0U2V0dGluZ3MoKVtnZ2VdfX0se2tleToiZW5hYmxlUGx1Z2luIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXM7dGhpcy5lbmFibGVkfHwodGhpcy5hZGRIb29rKCJiZWZvcmVPbkNl''@;'; + put 'put ''bGxNb3VzZURvd24iLGZ1bmN0aW9uKCl7cmV0dXJuIHkub25CZWZvcmVPbkNlbGxNb3VzZURvd24uYXBwbHkoeSxhcmd1bWVudHMpfSksdGhpcy5hZGRIb29rKCJiZWZvcmVPbkNlbGxNb3VzZU92ZXIiLGZ1bmN0aW9uKCl7cmV0dXJuIHkub25CZWZvcmVPbkNlbGxNb3VzZU92ZXIuYXBwbHko''@;'; + put 'put ''eSxhcmd1bWVudHMpfSksdGhpcy5hZGRIb29rKCJhZnRlclNjcm9sbEhvcml6b250YWxseSIsZnVuY3Rpb24oKXtyZXR1cm4geS5vbkFmdGVyU2Nyb2xsSG9yaXpvbnRhbGx5KCl9KSx0aGlzLmFkZEhvb2soImFmdGVyTG9hZERhdGEiLGZ1bmN0aW9uKCl7cmV0dXJuIHkub25BZnRlckxvYWRE''@;'; + put 'put ''YXRhLmFwcGx5KHksYXJndW1lbnRzKX0pLHRoaXMuYnVpbGRQbHVnaW5VSSgpLHRoaXMucmVnaXN0ZXJFdmVudHMoKSxPMCh0aGlzLmhvdC5yb290RWxlbWVudCxUSWUpLGhNKFh2KGgucHJvdG90eXBlKSwiZW5hYmxlUGx1Z2luIix0aGlzKS5jYWxsKHRoaXMpKX19LHtrZXk6InVwZGF0ZVBs''@;'; + put 'put ''dWdpbiIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmRpc2FibGVQbHVnaW4oKSx0aGlzLmVuYWJsZVBsdWdpbigpLHRoaXMubW92ZUJ5U2V0dGluZ3NPckxvYWQoKSxoTShYdihoLnByb3RvdHlwZSksInVwZGF0ZVBsdWdpbiIsdGhpcykuY2FsbCh0aGlzKX19LHtrZXk6ImRpc2FibGVQbHVnaW4i''@;'; + put 'put ''LHZhbHVlOmZ1bmN0aW9uKCl7cGwodGhpcy5ob3Qucm9vdEVsZW1lbnQsVEllKSx0aGlzLnVucmVnaXN0ZXJFdmVudHMoKSx0aGlzLmJhY2tsaWdodC5kZXN0cm95KCksdGhpcy5ndWlkZWxpbmUuZGVzdHJveSgpLGhNKFh2KGgucHJvdG90eXBlKSwiZGlzYWJsZVBsdWdpbiIsdGhpcykuY2Fs''@;'; + put 'put ''bCh0aGlzKX19LHtrZXk6Im1vdmVSb3ciLHZhbHVlOmZ1bmN0aW9uKHksQyl7cmV0dXJuIHRoaXMubW92ZVJvd3MoW3ldLEMpfX0se2tleToibW92ZVJvd3MiLHZhbHVlOmZ1bmN0aW9uKHksQyl7dmFyIEk9VXcuZ2V0KHRoaXMpLGo9SS5jYWNoZWREcm9wSW5kZXgsdWU9dGhpcy5pc01vdmVQ''@;'; + put 'put ''b3NzaWJsZSh5LEMpLF9lPXRoaXMuaG90LnJ1bkhvb2tzKCJiZWZvcmVSb3dNb3ZlIix5LEMsaix1ZSk7aWYoSS5jYWNoZWREcm9wSW5kZXg9dm9pZCAwLCExIT09X2Upe3VlJiZ0aGlzLmhvdC5yb3dJbmRleE1hcHBlci5tb3ZlSW5kZXhlcyh5LEMpO3ZhciBCZT11ZSYmdGhpcy5pc1Jvd09y''@;'; + put 'put ''ZGVyQ2hhbmdlZCh5LEMpO3JldHVybiB0aGlzLmhvdC5ydW5Ib29rcygiYWZ0ZXJSb3dNb3ZlIix5LEMsaix1ZSxCZSksQmV9fX0se2tleToiZHJhZ1JvdyIsdmFsdWU6ZnVuY3Rpb24oeSxDKXtyZXR1cm4gdGhpcy5kcmFnUm93cyhbeV0sQyl9fSx7a2V5OiJkcmFnUm93cyIsdmFsdWU6ZnVu''@;'; + put 'put ''Y3Rpb24oeSxDKXt2YXIgST10aGlzLmNvdW50RmluYWxJbmRleCh5LEMpO3JldHVybiBVdy5nZXQodGhpcykuY2FjaGVkRHJvcEluZGV4PUMsdGhpcy5tb3ZlUm93cyh5LEkpfX0se2tleToiaXNNb3ZlUG9zc2libGUiLHZhbHVlOmZ1bmN0aW9uKHksQyl7dmFyIEk9dGhpcy5ob3Qucm93SW5k''@;'; + put 'put ''ZXhNYXBwZXIuZ2V0Tm90VHJpbW1lZEluZGV4ZXNMZW5ndGgoKSxqPXkubGVuZ3RoK0M+SSx1ZT1DPDAsX2U9eS5zb21lKGZ1bmN0aW9uKE5lKXtyZXR1cm4gTmU8MH0pLEJlPXkuc29tZShmdW5jdGlvbihOZSl7cmV0dXJuIE5lPj1JfSk7cmV0dXJuIShqfHx1ZXx8X2V8fEJlKX19LHtrZXk6''@;'; + put 'put ''ImlzUm93T3JkZXJDaGFuZ2VkIix2YWx1ZTpmdW5jdGlvbih5LEMpe3JldHVybiB5LnNvbWUoZnVuY3Rpb24oSSxqKXtyZXR1cm4gSS1qIT09Q30pfX0se2tleToiY291bnRGaW5hbEluZGV4Iix2YWx1ZTpmdW5jdGlvbih5LEMpe3ZhciBJPVN1KHksZnVuY3Rpb24oaix1ZSl7cmV0dXJuIHVl''@;'; + put 'put ''PEMmJihqKz0xKSxqfSwwKTtyZXR1cm4gQy1JfX0se2tleToiZ2V0Um93c0hlaWdodCIsdmFsdWU6ZnVuY3Rpb24oeSxDKXtmb3IodmFyIEk9dGhpcy5ob3Qucm93SW5kZXhNYXBwZXIsaj0wLHVlPXk7dWU8PUM7dWUrKyl7dmFyIF9lPUkuZ2V0UmVuZGVyYWJsZUZyb21WaXN1YWxJbmRleCh1''@;'; + put 'put ''ZSk7bnVsbCE9PV9lJiYoais9dGhpcy5ob3Qudmlldy5fd3Qud3RUYWJsZS5nZXRSb3dIZWlnaHQoX2UpfHwyMyl9cmV0dXJuIGp9fSx7a2V5OiJtb3ZlQnlTZXR0aW5nc09yTG9hZCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzLmhvdC5nZXRTZXR0aW5ncygpW2dnZV07aWYoQXJyYXku''@;'; + put 'put ''aXNBcnJheSh5KSl0aGlzLm1vdmVSb3dzKHksMCk7ZWxzZSBpZih2b2lkIDAhPT15KXt2YXIgQz10aGlzLnBlcnNpc3RlbnRTdGF0ZUxvYWQoKTtDLmxlbmd0aCYmdGhpcy5tb3ZlUm93cyhDLDApfX19LHtrZXk6ImlzRml4ZWRSb3dUb3AiLHZhbHVlOmZ1bmN0aW9uKHkpe3JldHVybiB5PHRo''@;'; + put 'put ''aXMuaG90LmdldFNldHRpbmdzKCkuZml4ZWRSb3dzVG9wfX0se2tleToiaXNGaXhlZFJvd0JvdHRvbSIsdmFsdWU6ZnVuY3Rpb24oeSl7cmV0dXJuIHk+dGhpcy5ob3QuY291bnRSb3dzKCktMS10aGlzLmhvdC5nZXRTZXR0aW5ncygpLmZpeGVkUm93c0JvdHRvbX19LHtrZXk6InBlcnNpc3Rl''@;'; + put 'put ''bnRTdGF0ZVNhdmUiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5ob3QucnVuSG9va3MoInBlcnNpc3RlbnRTdGF0ZVNhdmUiLCJtYW51YWxSb3dNb3ZlIix0aGlzLmhvdC5yb3dJbmRleE1hcHBlci5nZXRJbmRleGVzU2VxdWVuY2UoKSl9fSx7a2V5OiJwZXJzaXN0ZW50U3RhdGVMb2FkIix2YWx1''@;'; + put 'put ''ZTpmdW5jdGlvbigpe3ZhciB5PXt9O3JldHVybiB0aGlzLmhvdC5ydW5Ib29rcygicGVyc2lzdGVudFN0YXRlTG9hZCIsIm1hbnVhbFJvd01vdmUiLHkpLHkudmFsdWU/eS52YWx1ZTpbXX19LHtrZXk6InByZXBhcmVSb3dzVG9Nb3ZpbmciLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcy5o''@;'; + put 'put ''b3QuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKSxDPVtdO2lmKCF5KXJldHVybiBDO3ZhciBJPXkuZnJvbSxqPXkudG87cmV0dXJuIGlhKE1hdGgubWluKEkucm93LGoucm93KSxNYXRoLm1heChJLnJvdyxqLnJvdyksZnVuY3Rpb24oQmUpe0MucHVzaChCZSl9KSxDfX0se2tleToicmVmcmVzaFBv''@;'; + put 'put ''c2l0aW9ucyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT1Vdy5nZXQodGhpcyksQz15LnRhcmdldC5jb29yZHMsST10aGlzLmhvdC52aWV3LmdldEZpcnN0RnVsbHlWaXNpYmxlUm93KCksaj10aGlzLmhvdC52aWV3LmdldExhc3RGdWxseVZpc2libGVSb3coKSx1ZT10aGlzLmhvdC5jb3VudFJv''@;'; + put 'put ''d3MoKTt0aGlzLmlzRml4ZWRSb3dUb3AoQy5yb3cpJiZJPjAmJnRoaXMuaG90LnNjcm9sbFZpZXdwb3J0VG8odGhpcy5ob3Qucm93SW5kZXhNYXBwZXIuZ2V0TmVhcmVzdE5vdEhpZGRlbkluZGV4KEktMSwtMSkpLHRoaXMuaXNGaXhlZFJvd0JvdHRvbShDLnJvdykmJmo8dWUmJnRoaXMuaG90''@;'; + put 'put ''LnNjcm9sbFZpZXdwb3J0VG8odGhpcy5ob3Qucm93SW5kZXhNYXBwZXIuZ2V0TmVhcmVzdE5vdEhpZGRlbkluZGV4KGorMSwxKSx2b2lkIDAsITApO3ZhciBfZT10aGlzLmhvdC52aWV3Ll93dC53dFRhYmxlLEJlPXkudGFyZ2V0LlRELE5lPWp1KHRoaXMuaG90LnJvb3RFbGVtZW50KSxLZT10''@;'; + put 'put ''aGlzLmhvdC52aWV3LlRIRUFELm9mZnNldEhlaWdodCt0aGlzLmdldFJvd3NIZWlnaHQoMCxDLnJvdy0xKSxkdD15LnRhcmdldC5ldmVudFBhZ2VZLU5lLnRvcCtfZS5ob2xkZXIuc2Nyb2xsVG9wLE90PV9lLmhpZGVyLm9mZnNldEhlaWdodCwkdD1fZS5UQk9EWS5vZmZzZXRUb3AsZm49dGhp''@;'; + put 'put ''cy5iYWNrbGlnaHQuZ2V0T2Zmc2V0KCkudG9wLExuPXRoaXMuYmFja2xpZ2h0LmdldFNpemUoKS5oZWlnaHQ7dGhpcy5pc0ZpeGVkUm93VG9wKEMucm93KSYmKEtlKz1fZS5ob2xkZXIuc2Nyb2xsVG9wKSxDLnJvdzwwP3kudGFyZ2V0LnJvdz1JPjA/SS0xOkk6QmUub2Zmc2V0SGVpZ2h0LzIr''@;'; + put 'put ''S2U8PWR0Pyh5LnRhcmdldC5yb3c9Qy5yb3crMSxLZSs9MD09PUMucm93P0JlLm9mZnNldEhlaWdodC0xOkJlLm9mZnNldEhlaWdodCk6eS50YXJnZXQucm93PUMucm93O3ZhciBpcj1kdCxtcj1LZTtkdCtMbitmbj49T3Q/aXI9T3QtTG4tZm46ZHQrZm48JHQmJihpcj0kdCtNYXRoLmFicyhm''@;'; + put 'put ''bikpLEtlPj1PdC0xJiYobXI9T3QtMSksdGhpcy5iYWNrbGlnaHQuc2V0UG9zaXRpb24oaXIpLHRoaXMuZ3VpZGVsaW5lLnNldFBvc2l0aW9uKG1yKX19LHtrZXk6InJlZ2lzdGVyRXZlbnRzIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXMsQz10aGlzLmhvdC5yb290RG9jdW1lbnQuZG9j''@;'; + put 'put ''dW1lbnRFbGVtZW50O3RoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoQywibW91c2Vtb3ZlIixmdW5jdGlvbihJKXtyZXR1cm4geS5vbk1vdXNlTW92ZShJKX0pLHRoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoQywibW91c2V1cCIsZnVuY3Rpb24oKXtyZXR1cm4g''@;'; + put 'put ''eS5vbk1vdXNlVXAoKX0pfX0se2tleToidW5yZWdpc3RlckV2ZW50cyIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmV2ZW50TWFuYWdlci5jbGVhcigpfX0se2tleToib25CZWZvcmVPbkNlbGxNb3VzZURvd24iLHZhbHVlOmZ1bmN0aW9uKHksQyxJLGope3ZhciB1ZT10aGlzLmhvdC52aWV3Ll93''@;'; + put 'put ''dCxfZT11ZS53dFRhYmxlLEJlPXVlLnd0Vmlld3BvcnQsTmU9dGhpcy5ob3Quc2VsZWN0aW9uLmlzU2VsZWN0ZWRCeVJvd0hlYWRlcigpLEtlPXRoaXMuaG90LmdldFNlbGVjdGVkUmFuZ2VMYXN0KCksZHQ9VXcuZ2V0KHRoaXMpO2lmKCFLZXx8IU5lfHxkdC5wcmVzc2VkfHwwIT09eS5idXR0''@;'; + put 'put ''b24pcmV0dXJuIGR0LnByZXNzZWQ9ITEsZHQucm93c1RvTW92ZS5sZW5ndGg9MCx2b2lkIHBsKHRoaXMuaG90LnJvb3RFbGVtZW50LFttZ2Usa25lXSk7dmFyIE90PXRoaXMuZ3VpZGVsaW5lLmlzQnVpbHQoKSYmIXRoaXMuZ3VpZGVsaW5lLmlzQXBwZW5kZWQoKSwkdD10aGlzLmJhY2tsaWdo''@;'; + put 'put ''dC5pc0J1aWx0KCkmJiF0aGlzLmJhY2tsaWdodC5pc0FwcGVuZGVkKCk7T3QmJiR0JiYodGhpcy5ndWlkZWxpbmUuYXBwZW5kVG8oX2UuaGlkZXIpLHRoaXMuYmFja2xpZ2h0LmFwcGVuZFRvKF9lLmhpZGVyKSk7dmFyIGZuPUtlLmZyb20sTG49S2UudG8saXI9TWF0aC5taW4oZm4ucm93LExu''@;'; + put 'put ''LnJvdyksbXI9TWF0aC5tYXgoZm4ucm93LExuLnJvdyk7aWYoQy5jb2w8MCYmQy5yb3c+PWlyJiZDLnJvdzw9bXIpe2oucm93PSEwLGR0LnByZXNzZWQ9ITAsZHQudGFyZ2V0LmV2ZW50UGFnZVk9eS5wYWdlWSxkdC50YXJnZXQuY29vcmRzPUMsZHQudGFyZ2V0LlREPUksZHQucm93c1RvTW92''@;'; + put 'put ''ZT10aGlzLnByZXBhcmVSb3dzVG9Nb3ZpbmcoKTt2YXIgU3I9X2UuaG9sZGVyLnNjcm9sbExlZnQrQmUuZ2V0Um93SGVhZGVyV2lkdGgoKTt0aGlzLmJhY2tsaWdodC5zZXRQb3NpdGlvbihudWxsLFNyKSx0aGlzLmJhY2tsaWdodC5zZXRTaXplKF9lLmhpZGVyLm9mZnNldFdpZHRoLVNyLHRo''@;'; + put 'put ''aXMuZ2V0Um93c0hlaWdodChpcixtcikpLHRoaXMuYmFja2xpZ2h0LnNldE9mZnNldCgtMSoodGhpcy5nZXRSb3dzSGVpZ2h0KGlyLEMucm93LTEpK3kub2Zmc2V0WSksbnVsbCksTzAodGhpcy5ob3Qucm9vdEVsZW1lbnQsbWdlKSx0aGlzLnJlZnJlc2hQb3NpdGlvbnMoKX1lbHNlIHBsKHRo''@;'; + put 'put ''aXMuaG90LnJvb3RFbGVtZW50LHZnZSksZHQucHJlc3NlZD0hMSxkdC5yb3dzVG9Nb3ZlLmxlbmd0aD0wfX0se2tleToib25Nb3VzZU1vdmUiLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPVV3LmdldCh0aGlzKTtpZihDLnByZXNzZWQpe2lmKHkudGFyZ2V0PT09dGhpcy5iYWNrbGlnaHQuZWxl''@;'; + put 'put ''bWVudCl7dmFyIEk9dGhpcy5iYWNrbGlnaHQuZ2V0U2l6ZSgpLmhlaWdodDt0aGlzLmJhY2tsaWdodC5zZXRTaXplKG51bGwsMCksc2V0VGltZW91dChmdW5jdGlvbigpe3RoaXMuYmFja2xpZ2h0LnNldFBvc2l0aW9uKG51bGwsSSl9KX1DLnRhcmdldC5ldmVudFBhZ2VZPXkucGFnZVksdGhp''@;'; + put 'put ''cy5yZWZyZXNoUG9zaXRpb25zKCl9fX0se2tleToib25CZWZvcmVPbkNlbGxNb3VzZU92ZXIiLHZhbHVlOmZ1bmN0aW9uKHksQyxJLGope3ZhciB1ZT10aGlzLmhvdC5nZXRTZWxlY3RlZFJhbmdlTGFzdCgpLF9lPVV3LmdldCh0aGlzKTshdWV8fCFfZS5wcmVzc2VkfHwoX2Uucm93c1RvTW92''@;'; + put 'put ''ZS5pbmRleE9mKEMucm93KT4tMT9wbCh0aGlzLmhvdC5yb290RWxlbWVudCxrbmUpOk8wKHRoaXMuaG90LnJvb3RFbGVtZW50LGtuZSksai5yb3c9ITAsai5jb2x1bW49ITAsai5jZWxsPSEwLF9lLnRhcmdldC5jb29yZHM9QyxfZS50YXJnZXQuVEQ9SSl9fSx7a2V5OiJvbk1vdXNlVXAiLHZh''@;'; + put 'put ''bHVlOmZ1bmN0aW9uKCl7dmFyIHk9VXcuZ2V0KHRoaXMpLEM9eS50YXJnZXQucm93LEk9eS5yb3dzVG9Nb3ZlLmxlbmd0aDtpZih5LnByZXNzZWQ9ITEseS5iYWNrbGlnaHRIZWlnaHQ9MCxwbCh0aGlzLmhvdC5yb290RWxlbWVudCxbbWdlLGtuZSx2Z2VdKSx0aGlzLmhvdC5zZWxlY3Rpb24u''@;'; + put 'put ''aXNTZWxlY3RlZEJ5Um93SGVhZGVyKCkmJk8wKHRoaXMuaG90LnJvb3RFbGVtZW50LHZnZSksIShJPDF8fHZvaWQgMD09PUMpKXt2YXIgdWU9dGhpcy5ob3QudG9QaHlzaWNhbFJvdyh5LnJvd3NUb01vdmVbMF0pLF9lPXRoaXMuZHJhZ1Jvd3MoeS5yb3dzVG9Nb3ZlLEMpO2lmKHkucm93c1Rv''@;'; + put 'put ''TW92ZS5sZW5ndGg9MCwhMD09PV9lKXt0aGlzLnBlcnNpc3RlbnRTdGF0ZVNhdmUoKSx0aGlzLmhvdC5yZW5kZXIoKSx0aGlzLmhvdC52aWV3LmFkanVzdEVsZW1lbnRzU2l6ZSghMCk7dmFyIEJlPXRoaXMuaG90LnRvVmlzdWFsUm93KHVlKTt0aGlzLmhvdC5zZWxlY3RSb3dzKEJlLEJlK0kt''@;'; + put 'put ''MSl9fX19LHtrZXk6Im9uQWZ0ZXJTY3JvbGxIb3Jpem9udGFsbHkiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcy5ob3Qudmlldy5fd3Qud3RUYWJsZSxqPXRoaXMuaG90LnZpZXcuX3d0Lnd0Vmlld3BvcnQuZ2V0Um93SGVhZGVyV2lkdGgoKSt5LmhvbGRlci5zY3JvbGxMZWZ0O3RoaXMu''@;'; + put 'put ''YmFja2xpZ2h0LnNldFBvc2l0aW9uKG51bGwsaiksdGhpcy5iYWNrbGlnaHQuc2V0U2l6ZSh5LmhpZGVyLm9mZnNldFdpZHRoLWopfX0se2tleToiYnVpbGRQbHVnaW5VSSIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmJhY2tsaWdodC5idWlsZCgpLHRoaXMuZ3VpZGVsaW5lLmJ1aWxkKCl9fSx7''@;'; + put 'put ''a2V5OiJvbkFmdGVyTG9hZERhdGEiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5tb3ZlQnlTZXR0aW5nc09yTG9hZCgpfX0se2tleToiZGVzdHJveSIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmJhY2tsaWdodC5kZXN0cm95KCksdGhpcy5ndWlkZWxpbmUuZGVzdHJveSgpLGhNKFh2KGgucHJvdG90''@;'; + put 'put ''eXBlKSwiZGVzdHJveSIsdGhpcykuY2FsbCh0aGlzKX19XSxbe2tleToiUExVR0lOX0tFWSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGdnZX19LHtrZXk6IlBMVUdJTl9QUklPUklUWSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDE0MH19XSksaH0oWXMpO2Z1bmN0aW9uIEFnZShkKXtyZXR1cm4o''@;'; + put 'put ''QWdlPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGcpe3JldHVybiB0eXBlb2YgZ306ZnVuY3Rpb24oZyl7cmV0dXJuIGcmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmcuY29uc3RydWN0b3I9PT1TeW1ib2wm''@;'; + put 'put ''JmchPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBnfSkoZCl9ZnVuY3Rpb24gSUllKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2''@;'; + put 'put ''LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19ZnVuY3Rpb24gZE0oKXtyZXR1cm4gZE09InVuZGVmaW5lZCIhPXR5cGVvZiBSZWZsZWN0JiZSZWZsZWN0LmdldD9SZWZsZWN0LmdldC5iaW5kKCk6ZnVuY3Rpb24oZyxoLHYpe3ZhciB5PWlkdChnLGgpO2lm''@;'; + put 'put ''KHkpe3ZhciBDPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoeSxoKTtyZXR1cm4gQy5nZXQ/Qy5nZXQuY2FsbChhcmd1bWVudHMubGVuZ3RoPDM/Zzp2KTpDLnZhbHVlfX0sZE0uYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIGlkdChkLGcpe2Zvcig7IU9iamVjdC5wcm90''@;'; + put 'put ''b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChkLGcpJiZudWxsIT09KGQ9S3YoZCkpOyk7cmV0dXJuIGR9ZnVuY3Rpb24geWdlKGQsZyl7cmV0dXJuKHlnZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbih2LHkpe3JldHVybiB2Ll9f''@;'; + put 'put ''cHJvdG9fXz15LHZ9KShkLGcpfWZ1bmN0aW9uIGxkdChkLGcpe2lmKGcmJigib2JqZWN0Ij09PUFnZShnKXx8ImZ1bmN0aW9uIj09dHlwZW9mIGcpKXJldHVybiBnO2lmKHZvaWQgMCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJu''@;'; + put 'put ''IG9iamVjdCBvciB1bmRlZmluZWQiKTtyZXR1cm4gd2dlKGQpfWZ1bmN0aW9uIHdnZShkKXtpZih2b2lkIDA9PT1kKXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcigidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkIik7cmV0dXJuIGR9ZnVu''@;'; + put 'put ''Y3Rpb24gS3YoZCl7cmV0dXJuKEt2PU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3QuZ2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKGgpe3JldHVybiBoLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKGgpfSkoZCl9dmFyIExJZSxPSWUsUkllLEJJZSxTbmU9Im1hbnVh''@;'; + put 'put ''bFJvd1Jlc2l6ZSIsREllPSJtYW51YWxSb3dIZWlnaHRzIixiZ2U9bmV3IFdlYWtNYXAsY2R0PWZ1bmN0aW9uKGQpeyFmdW5jdGlvbiBvZHQoZCxnKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZyYmbnVsbCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVp''@;'; + put 'put ''dGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTtkLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGcmJmcucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6ZCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRh''@;'; + put 'put ''YmxlOiExfSksZyYmeWdlKGQsZyl9KGgsZCk7dmFyIGc9ZnVuY3Rpb24gYWR0KGQpe3ZhciBnPWZ1bmN0aW9uIHNkdCgpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0fHxSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlv''@;'; + put 'put ''biI9PXR5cGVvZiBQcm94eSlyZXR1cm4hMDt0cnl7cmV0dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLGZ1bmN0aW9uKCl7fSkpLCEwfWNhdGNoKGQpe3JldHVybiExfX0oKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgeSx2PUt2''@;'; + put 'put ''KGQpO2lmKGcpe3ZhciBDPUt2KHRoaXMpLmNvbnN0cnVjdG9yO3k9UmVmbGVjdC5jb25zdHJ1Y3Qodixhcmd1bWVudHMsQyl9ZWxzZSB5PXYuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBsZHQodGhpcyx5KX19KGgpO2Z1bmN0aW9uIGgodil7dmFyIHk7IWZ1bmN0aW9uIG5kdChkLGcp''@;'; + put 'put ''e2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSh0aGlzLGgpO3ZhciBDPSh5PWcuY2FsbCh0aGlzLHYpKS5ob3Qucm9vdERvY3VtZW50O3JldHVybiB5LmN1cnJlbnRUSD1udWxsLHkuY3VycmVudFJv''@;'; + put 'put ''dz1udWxsLHkuc2VsZWN0ZWRSb3dzPVtdLHkuY3VycmVudEhlaWdodD1udWxsLHkubmV3U2l6ZT1udWxsLHkuc3RhcnRZPW51bGwseS5zdGFydEhlaWdodD1udWxsLHkuc3RhcnRPZmZzZXQ9bnVsbCx5LmhhbmRsZT1DLmNyZWF0ZUVsZW1lbnQoIkRJViIpLHkuZ3VpZGU9Qy5jcmVhdGVFbGVt''@;'; + put 'put ''ZW50KCJESVYiKSx5LmV2ZW50TWFuYWdlcj1uZXcgTDEod2dlKHkpKSx5LnByZXNzZWQ9bnVsbCx5LmRibGNsaWNrPTAseS5hdXRvcmVzaXplVGltZW91dD1udWxsLHkucm93SGVpZ2h0c01hcD12b2lkIDAsYmdlLnNldCh3Z2UoeSkse2NvbmZpZzp2b2lkIDB9KSxPMCh5LmhhbmRsZSwibWFu''@;'; + put 'put ''dWFsUm93UmVzaXplciIpLE8wKHkuZ3VpZGUsIm1hbnVhbFJvd1Jlc2l6ZXJHdWlkZSIpLHl9cmV0dXJuIGZ1bmN0aW9uIHJkdChkLGcsaCl7ZyYmSUllKGQucHJvdG90eXBlLGcpLGgmJklJZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0p''@;'; + put 'put ''fShoLFt7a2V5OiJpbmxpbmVEaXIiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmhvdC5pc1J0bCgpPyJyaWdodCI6ImxlZnQifX0se2tleToiaXNFbmFibGVkIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmhvdC5nZXRTZXR0aW5ncygpW1NuZV19fSx7a2V5OiJlbmFibGVQbHVn''@;'; + put 'put ''aW4iLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpczt0aGlzLmVuYWJsZWR8fCh0aGlzLnJvd0hlaWdodHNNYXA9bmV3IER3LHRoaXMucm93SGVpZ2h0c01hcC5hZGRMb2NhbEhvb2soImluaXQiLGZ1bmN0aW9uKCl7cmV0dXJuIHkub25NYXBJbml0KCl9KSx0aGlzLmhvdC5yb3dJbmRleE1h''@;'; + put 'put ''cHBlci5yZWdpc3Rlck1hcCh0aGlzLnBsdWdpbk5hbWUsdGhpcy5yb3dIZWlnaHRzTWFwKSx0aGlzLmFkZEhvb2soIm1vZGlmeVJvd0hlaWdodCIsZnVuY3Rpb24oQyxJKXtyZXR1cm4geS5vbk1vZGlmeVJvd0hlaWdodChDLEkpfSksdGhpcy5iaW5kRXZlbnRzKCksZE0oS3YoaC5wcm90b3R5''@;'; + put 'put ''cGUpLCJlbmFibGVQbHVnaW4iLHRoaXMpLmNhbGwodGhpcykpfX0se2tleToidXBkYXRlUGx1Z2luIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuZGlzYWJsZVBsdWdpbigpLHRoaXMuZW5hYmxlUGx1Z2luKCksZE0oS3YoaC5wcm90b3R5cGUpLCJ1cGRhdGVQbHVnaW4iLHRoaXMpLmNhbGwodGhp''@;'; + put 'put ''cyl9fSx7a2V5OiJkaXNhYmxlUGx1Z2luIix2YWx1ZTpmdW5jdGlvbigpe2JnZS5nZXQodGhpcykuY29uZmlnPXRoaXMucm93SGVpZ2h0c01hcC5nZXRWYWx1ZXMoKSx0aGlzLmhvdC5yb3dJbmRleE1hcHBlci51bnJlZ2lzdGVyTWFwKHRoaXMucGx1Z2luTmFtZSksZE0oS3YoaC5wcm90b3R5''@;'; + put 'put ''cGUpLCJkaXNhYmxlUGx1Z2luIix0aGlzKS5jYWxsKHRoaXMpfX0se2tleToic2F2ZU1hbnVhbFJvd0hlaWdodHMiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5ob3QucnVuSG9va3MoInBlcnNpc3RlbnRTdGF0ZVNhdmUiLERJZSx0aGlzLnJvd0hlaWdodHNNYXAuZ2V0VmFsdWVzKCkpfX0se2tl''@;'; + put 'put ''eToibG9hZE1hbnVhbFJvd0hlaWdodHMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9e307cmV0dXJuIHRoaXMuaG90LnJ1bkhvb2tzKCJwZXJzaXN0ZW50U3RhdGVMb2FkIixESWUseSkseS52YWx1ZX19LHtrZXk6InNldE1hbnVhbFNpemUiLHZhbHVlOmZ1bmN0aW9uKHksQyl7dmFyIEk9dGhp''@;'; + put 'put ''cy5ob3QudG9QaHlzaWNhbFJvdyh5KSxqPU1hdGgubWF4KEMsSENlLkRFRkFVTFRfSEVJR0hUKTtyZXR1cm4gdGhpcy5yb3dIZWlnaHRzTWFwLnNldFZhbHVlQXRJbmRleChJLGopLGp9fSx7a2V5OiJzZXR1cEhhbmRsZVBvc2l0aW9uIix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz10aGlzO3Ro''@;'; + put 'put ''aXMuY3VycmVudFRIPXk7dmFyIEk9dGhpcy5ob3QudmlldyxqPUkuX3d0LHVlPWoud3RUYWJsZS5nZXRDb29yZHModGhpcy5jdXJyZW50VEgpLF9lPXVlLnJvdztpZighKF9lPDApKXt2YXIgT3QsQmU9RTIodGhpcy5jdXJyZW50VEgpLE5lPXRoaXMuY3VycmVudFRILmdldEJvdW5kaW5nQ2xp''@;'; + put 'put ''ZW50UmVjdCgpLEtlPV9lPGouZ2V0U2V0dGluZygiZml4ZWRSb3dzVG9wIiksZHQ9X2U+PUkuY291bnROb3RIaWRkZW5Sb3dJbmRleGVzKDAsMSktai5nZXRTZXR0aW5nKCJmaXhlZFJvd3NCb3R0b20iKTtLZT9PdD1qLnd0T3ZlcmxheXMudG9wSW5saW5lU3RhcnRDb3JuZXJPdmVybGF5Lmdl''@;'; + put 'put ''dFJlbGF0aXZlQ2VsbFBvc2l0aW9uKHRoaXMuY3VycmVudFRILHVlLnJvdyx1ZS5jb2wpOmR0JiYoT3Q9ai53dE92ZXJsYXlzLmJvdHRvbUlubGluZVN0YXJ0Q29ybmVyT3ZlcmxheS5nZXRSZWxhdGl2ZUNlbGxQb3NpdGlvbih0aGlzLmN1cnJlbnRUSCx1ZS5yb3csdWUuY29sKSksT3R8fChP''@;'; + put 'put ''dD1qLnd0T3ZlcmxheXMuaW5saW5lU3RhcnRPdmVybGF5LmdldFJlbGF0aXZlQ2VsbFBvc2l0aW9uKHRoaXMuY3VycmVudFRILHVlLnJvdyx1ZS5jb2wpKSx0aGlzLmN1cnJlbnRSb3c9dGhpcy5ob3Qucm93SW5kZXhNYXBwZXIuZ2V0VmlzdWFsRnJvbVJlbmRlcmFibGVJbmRleChfZSksdGhp''@;'; + put 'put ''cy5zZWxlY3RlZFJvd3M9W107dmFyICR0PXRoaXMuaG90LnNlbGVjdGlvbi5pc1NlbGVjdGVkQnlDb3JuZXIoKXx8dGhpcy5ob3Quc2VsZWN0aW9uLmlzU2VsZWN0ZWRCeVJvd0hlYWRlcigpO3RoaXMuaG90LnNlbGVjdGlvbi5pc1NlbGVjdGVkKCkmJiR0JiZVcih0aGlzLmhvdC5nZXRTZWxl''@;'; + put 'put ''Y3RlZFJhbmdlKCksZnVuY3Rpb24oTG4pe2lhKExuLmdldFRvcFN0YXJ0Q29ybmVyKCkucm93LExuLmdldEJvdHRvbVN0YXJ0Q29ybmVyKCkucm93LGZ1bmN0aW9uKFNyKXtDLnNlbGVjdGVkUm93cy5pbmNsdWRlcyhTcil8fEMuc2VsZWN0ZWRSb3dzLnB1c2goU3IpfSl9KSx0aGlzLnNlbGVj''@;'; + put 'put ''dGVkUm93cy5pbmNsdWRlcyh0aGlzLmN1cnJlbnRSb3cpfHwodGhpcy5zZWxlY3RlZFJvd3M9W3RoaXMuY3VycmVudFJvd10pLHRoaXMuc3RhcnRPZmZzZXQ9T3QudG9wLTYsdGhpcy5zdGFydEhlaWdodD1wYXJzZUludChOZS5oZWlnaHQsMTApLHRoaXMuaGFuZGxlLnN0eWxlLnRvcD0iIi5j''@;'; + put 'put ''b25jYXQodGhpcy5zdGFydE9mZnNldCt0aGlzLnN0YXJ0SGVpZ2h0LCJweCIpLHRoaXMuaGFuZGxlLnN0eWxlW3RoaXMuaW5saW5lRGlyXT0iIi5jb25jYXQoT3Quc3RhcnQsInB4IiksdGhpcy5oYW5kbGUuc3R5bGUud2lkdGg9IiIuY29uY2F0KEJlLCJweCIpLHRoaXMuaG90LnJvb3RFbGVt''@;'; + put 'put ''ZW50LmFwcGVuZENoaWxkKHRoaXMuaGFuZGxlKX19fSx7a2V5OiJyZWZyZXNoSGFuZGxlUG9zaXRpb24iLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5oYW5kbGUuc3R5bGUudG9wPSIiLmNvbmNhdCh0aGlzLnN0YXJ0T2Zmc2V0K3RoaXMuY3VycmVudEhlaWdodCwicHgiKX19LHtrZXk6InNldHVw''@;'; + put 'put ''R3VpZGVQb3NpdGlvbiIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT1wYXJzZUludChFMih0aGlzLmhhbmRsZSksMTApLEM9cGFyc2VJbnQodGhpcy5oYW5kbGUuc3R5bGVbdGhpcy5pbmxpbmVEaXJdLDEwKSt5LEk9cGFyc2VJbnQodGhpcy5ob3Qudmlldy5tYXhpbXVtVmlzaWJsZUVsZW1lbnRX''@;'; + put 'put ''aWR0aCgwKSwxMCk7TzAodGhpcy5oYW5kbGUsImFjdGl2ZSIpLE8wKHRoaXMuZ3VpZGUsImFjdGl2ZSIpLHRoaXMuZ3VpZGUuc3R5bGUudG9wPXRoaXMuaGFuZGxlLnN0eWxlLnRvcCx0aGlzLmd1aWRlLnN0eWxlW3RoaXMuaW5saW5lRGlyXT0iIi5jb25jYXQoQywicHgiKSx0aGlzLmd1aWRl''@;'; + put 'put ''LnN0eWxlLndpZHRoPSIiLmNvbmNhdChJLXksInB4IiksdGhpcy5ob3Qucm9vdEVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5ndWlkZSl9fSx7a2V5OiJyZWZyZXNoR3VpZGVQb3NpdGlvbiIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmd1aWRlLnN0eWxlLnRvcD10aGlzLmhhbmRsZS5zdHlsZS50''@;'; + put 'put ''b3B9fSx7a2V5OiJoaWRlSGFuZGxlQW5kR3VpZGUiLHZhbHVlOmZ1bmN0aW9uKCl7cGwodGhpcy5oYW5kbGUsImFjdGl2ZSIpLHBsKHRoaXMuZ3VpZGUsImFjdGl2ZSIpfX0se2tleToiY2hlY2tJZlJvd0hlYWRlciIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEMsSTtyZXR1cm4gU3YoeSxbIlRI''@;'; + put 'put ''Il0sdGhpcy5ob3Qucm9vdEVsZW1lbnQpJiYiVEJPRFkiPT09KG51bGw9PT0oQz15LnBhcmVudE5vZGUpfHx2b2lkIDA9PT1DfHxudWxsPT09KEk9Qy5wYXJlbnROb2RlKXx8dm9pZCAwPT09ST92b2lkIDA6SS50YWdOYW1lKX19LHtrZXk6ImdldENsb3Nlc3RUSFBhcmVudCIsdmFsdWU6ZnVu''@;'; + put 'put ''Y3Rpb24oeSl7cmV0dXJuIlRBQkxFIiE9PXkudGFnTmFtZT8iVEgiPT09eS50YWdOYW1lP3k6dGhpcy5nZXRDbG9zZXN0VEhQYXJlbnQoeS5wYXJlbnROb2RlKTpudWxsfX0se2tleToiZ2V0QWN0dWFsUm93SGVpZ2h0Iix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz10aGlzLmhvdC52aWV3Ll93''@;'; + put 'put ''dC53dFRhYmxlLmdldFJvd0hlaWdodCh5KTtyZXR1cm4gdm9pZCAwIT09QyYmdGhpcy5uZXdTaXplPEM/Qzp0aGlzLm5ld1NpemV9fSx7a2V5OiJvbk1vdXNlT3ZlciIsdmFsdWU6ZnVuY3Rpb24oeSl7aWYoIUEzZSh5LnRhcmdldCkmJnRoaXMuY2hlY2tJZlJvd0hlYWRlcih5LnRhcmdldCkp''@;'; + put 'put ''e3ZhciBDPXRoaXMuZ2V0Q2xvc2VzdFRIUGFyZW50KHkudGFyZ2V0KTtDJiYodGhpcy5wcmVzc2VkfHx0aGlzLnNldHVwSGFuZGxlUG9zaXRpb24oQykpfX19LHtrZXk6ImFmdGVyTW91c2VEb3duVGltZW91dCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzLEM9ZnVuY3Rpb24oKXt5Lmhv''@;'; + put 'put ''dC5mb3JjZUZ1bGxSZW5kZXI9ITAseS5ob3Qudmlldy5yZW5kZXIoKSx5LmhvdC52aWV3LmFkanVzdEVsZW1lbnRzU2l6ZSghMCl9LEk9ZnVuY3Rpb24oX2UsQmUpe3ZhciBOZT15LmhvdC5ydW5Ib29rcygiYmVmb3JlUm93UmVzaXplIix5LmdldEFjdHVhbFJvd0hlaWdodChfZSksX2UsITAp''@;'; + put 'put ''O3ZvaWQgMCE9PU5lJiYoeS5uZXdTaXplPU5lKSx5LnNldE1hbnVhbFNpemUoX2UseS5uZXdTaXplKSx5LmhvdC5ydW5Ib29rcygiYWZ0ZXJSb3dSZXNpemUiLHkuZ2V0QWN0dWFsUm93SGVpZ2h0KF9lKSxfZSwhMCksQmUmJkMoKX07dGhpcy5kYmxjbGljaz49MiYmKHRoaXMuc2VsZWN0ZWRS''@;'; + put 'put ''b3dzLmxlbmd0aD4xPyhVcih0aGlzLnNlbGVjdGVkUm93cyxmdW5jdGlvbih1ZSl7SSh1ZSl9KSxDKCkpOlVyKHRoaXMuc2VsZWN0ZWRSb3dzLGZ1bmN0aW9uKHVlKXtJKHVlLCEwKX0pKSx0aGlzLmRibGNsaWNrPTAsdGhpcy5hdXRvcmVzaXplVGltZW91dD1udWxsfX0se2tleToib25Nb3Vz''@;'; + put 'put ''ZURvd24iLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPXRoaXM7dGwoeS50YXJnZXQsIm1hbnVhbFJvd1Jlc2l6ZXIiKSYmKHRoaXMuc2V0dXBIYW5kbGVQb3NpdGlvbih0aGlzLmN1cnJlbnRUSCksdGhpcy5zZXR1cEd1aWRlUG9zaXRpb24oKSx0aGlzLnByZXNzZWQ9ITAsbnVsbD09PXRoaXMu''@;'; + put 'put ''YXV0b3Jlc2l6ZVRpbWVvdXQmJih0aGlzLmF1dG9yZXNpemVUaW1lb3V0PXNldFRpbWVvdXQoZnVuY3Rpb24oKXtyZXR1cm4gQy5hZnRlck1vdXNlRG93blRpbWVvdXQoKX0sNTAwKSx0aGlzLmhvdC5fcmVnaXN0ZXJUaW1lb3V0KHRoaXMuYXV0b3Jlc2l6ZVRpbWVvdXQpKSx0aGlzLmRibGNs''@;'; + put 'put ''aWNrKz0xLHRoaXMuc3RhcnRZPXkucGFnZVksdGhpcy5uZXdTaXplPXRoaXMuc3RhcnRIZWlnaHQpfX0se2tleToib25Nb3VzZU1vdmUiLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPXRoaXM7dGhpcy5wcmVzc2VkJiYodGhpcy5jdXJyZW50SGVpZ2h0PXRoaXMuc3RhcnRIZWlnaHQrKHkucGFn''@;'; + put 'put ''ZVktdGhpcy5zdGFydFkpLFVyKHRoaXMuc2VsZWN0ZWRSb3dzLGZ1bmN0aW9uKEkpe0MubmV3U2l6ZT1DLnNldE1hbnVhbFNpemUoSSxDLmN1cnJlbnRIZWlnaHQpfSksdGhpcy5yZWZyZXNoSGFuZGxlUG9zaXRpb24oKSx0aGlzLnJlZnJlc2hHdWlkZVBvc2l0aW9uKCkpfX0se2tleToib25N''@;'; + put 'put ''b3VzZVVwIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXMsQz1mdW5jdGlvbigpe3kuaG90LmZvcmNlRnVsbFJlbmRlcj0hMCx5LmhvdC52aWV3LnJlbmRlcigpLHkuaG90LnZpZXcuYWRqdXN0RWxlbWVudHNTaXplKCEwKX0sST1mdW5jdGlvbihfZSxCZSl7eS5ob3QucnVuSG9va3MoImJl''@;'; + put 'put ''Zm9yZVJvd1Jlc2l6ZSIseS5nZXRBY3R1YWxSb3dIZWlnaHQoX2UpLF9lLCExKSxCZSYmQygpLHkuc2F2ZU1hbnVhbFJvd0hlaWdodHMoKSx5LmhvdC5ydW5Ib29rcygiYWZ0ZXJSb3dSZXNpemUiLHkuZ2V0QWN0dWFsUm93SGVpZ2h0KF9lKSxfZSwhMSl9O3RoaXMucHJlc3NlZCYmKHRoaXMu''@;'; + put 'put ''aGlkZUhhbmRsZUFuZEd1aWRlKCksdGhpcy5wcmVzc2VkPSExLHRoaXMubmV3U2l6ZSE9PXRoaXMuc3RhcnRIZWlnaHQmJih0aGlzLnNlbGVjdGVkUm93cy5sZW5ndGg+MT8oVXIodGhpcy5zZWxlY3RlZFJvd3MsZnVuY3Rpb24odWUpe0kodWUpfSksQygpKTpVcih0aGlzLnNlbGVjdGVkUm93''@;'; + put 'put ''cyxmdW5jdGlvbih1ZSl7SSh1ZSwhMCl9KSksdGhpcy5zZXR1cEhhbmRsZVBvc2l0aW9uKHRoaXMuY3VycmVudFRIKSl9fSx7a2V5OiJiaW5kRXZlbnRzIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXMsQz10aGlzLmhvdCxJPUMucm9vdEVsZW1lbnQsaj1DLnJvb3RXaW5kb3c7dGhpcy5l''@;'; + put 'put ''dmVudE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihJLCJtb3VzZW92ZXIiLGZ1bmN0aW9uKHVlKXtyZXR1cm4geS5vbk1vdXNlT3Zlcih1ZSl9KSx0aGlzLmV2ZW50TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKEksIm1vdXNlZG93biIsZnVuY3Rpb24odWUpe3JldHVybiB5Lm9uTW91c2VEb3du''@;'; + put 'put ''KHVlKX0pLHRoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoaiwibW91c2Vtb3ZlIixmdW5jdGlvbih1ZSl7cmV0dXJuIHkub25Nb3VzZU1vdmUodWUpfSksdGhpcy5ldmVudE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihqLCJtb3VzZXVwIixmdW5jdGlvbigpe3JldHVybiB5Lm9u''@;'; + put 'put ''TW91c2VVcCgpfSl9fSx7a2V5OiJvbk1vZGlmeVJvd0hlaWdodCIsdmFsdWU6ZnVuY3Rpb24oeSxDKXt2YXIgST15O2lmKHRoaXMuZW5hYmxlZCl7dmFyIGo9dGhpcy5ob3QudG9QaHlzaWNhbFJvdyhDKSx1ZT10aGlzLnJvd0hlaWdodHNNYXAuZ2V0VmFsdWVBdEluZGV4KGopO3RoaXMuaG90''@;'; + put 'put ''LmdldFNldHRpbmdzKClbU25lXSYmdWUmJihJPXVlKX1yZXR1cm4gSX19LHtrZXk6Im9uTWFwSW5pdCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzLEM9YmdlLmdldCh0aGlzKSxJPXRoaXMuaG90LmdldFNldHRpbmdzKClbU25lXSxqPXRoaXMubG9hZE1hbnVhbFJvd0hlaWdodHMoKTt0''@;'; + put 'put ''aGlzLmhvdC5iYXRjaEV4ZWN1dGlvbihmdW5jdGlvbigpe3ZvaWQgMCE9PWo/ai5mb3JFYWNoKGZ1bmN0aW9uKHVlLF9lKXt5LnJvd0hlaWdodHNNYXAuc2V0VmFsdWVBdEluZGV4KF9lLHVlKX0pOkFycmF5LmlzQXJyYXkoSSk/KEkuZm9yRWFjaChmdW5jdGlvbih1ZSxfZSl7eS5yb3dIZWln''@;'; + put 'put ''aHRzTWFwLnNldFZhbHVlQXRJbmRleChfZSx1ZSl9KSxDLmNvbmZpZz1JKTohMD09PUkmJkFycmF5LmlzQXJyYXkoQy5jb25maWcpJiZDLmNvbmZpZy5mb3JFYWNoKGZ1bmN0aW9uKHVlLF9lKXt5LnJvd0hlaWdodHNNYXAuc2V0VmFsdWVBdEluZGV4KF9lLHVlKX0pfSwhMCl9fSx7a2V5OiJk''@;'; + put 'put ''ZXN0cm95Iix2YWx1ZTpmdW5jdGlvbigpe2RNKEt2KGgucHJvdG90eXBlKSwiZGVzdHJveSIsdGhpcykuY2FsbCh0aGlzKX19XSxbe2tleToiUExVR0lOX0tFWSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFNuZX19LHtrZXk6IlBMVUdJTl9QUklPUklUWSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJu''@;'; + put 'put ''IDMwfX1dKSxofShZcyk7ZnVuY3Rpb24gTW5lKGQsZyl7cmV0dXJuIGd8fChnPWQuc2xpY2UoMCkpLE9iamVjdC5mcmVlemUoT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZCx7cmF3Ont2YWx1ZTpPYmplY3QuZnJlZXplKGcpfX0pKX1mdW5jdGlvbiBQSWUoZCxnKXtmb3IodmFyIGg9MDtoPGcu''@;'; + put 'put ''bGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX12YXIgZGR0PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZChn''@;'; + put 'put ''LGgsdix5LEMsSSl7KGZ1bmN0aW9uIGZkdChkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSkodGhpcyxkKSx0aGlzLnJvdz1nLHRoaXMuY29sPWgsdGhpcy5yb3dzcGFuPXYsdGhpcy5jb2xz''@;'; + put 'put ''cGFuPXksdGhpcy5yZW1vdmVkPSExLHRoaXMuY2VsbENvb3Jkc0ZhY3Rvcnk9Qyx0aGlzLmNlbGxSYW5nZUZhY3Rvcnk9SX1yZXR1cm4gZnVuY3Rpb24gaGR0KGQsZyxoKXtnJiZQSWUoZC5wcm90b3R5cGUsZyksaCYmUEllKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlw''@;'; + put 'put ''ZSIse3dyaXRhYmxlOiExfSl9KGQsW3trZXk6Im5vcm1hbGl6ZSIsdmFsdWU6ZnVuY3Rpb24oaCl7dmFyIHY9aC5jb3VudFJvd3MoKSx5PWguY291bnRDb2xzKCk7dGhpcy5yb3c8MD90aGlzLnJvdz0wOnRoaXMucm93PnYtMSYmKHRoaXMucm93PXYtMSksdGhpcy5jb2w8MD90aGlzLmNvbD0w''@;'; + put 'put ''OnRoaXMuY29sPnktMSYmKHRoaXMuY29sPXktMSksdGhpcy5yb3crdGhpcy5yb3dzcGFuPnYtMSYmKHRoaXMucm93c3Bhbj12LXRoaXMucm93KSx0aGlzLmNvbCt0aGlzLmNvbHNwYW4+eS0xJiYodGhpcy5jb2xzcGFuPXktdGhpcy5jb2wpfX0se2tleToiaW5jbHVkZXMiLHZhbHVlOmZ1bmN0''@;'; + put 'put ''aW9uKGgsdil7cmV0dXJuIHRoaXMucm93PD1oJiZ0aGlzLmNvbDw9diYmdGhpcy5yb3crdGhpcy5yb3dzcGFuLTE+PWgmJnRoaXMuY29sK3RoaXMuY29sc3Bhbi0xPj12fX0se2tleToiaW5jbHVkZXNIb3Jpem9udGFsbHkiLHZhbHVlOmZ1bmN0aW9uKGgpe3JldHVybiB0aGlzLmNvbDw9aCYm''@;'; + put 'put ''dGhpcy5jb2wrdGhpcy5jb2xzcGFuLTE+PWh9fSx7a2V5OiJpbmNsdWRlc1ZlcnRpY2FsbHkiLHZhbHVlOmZ1bmN0aW9uKGgpe3JldHVybiB0aGlzLnJvdzw9aCYmdGhpcy5yb3crdGhpcy5yb3dzcGFuLTE+PWh9fSx7a2V5OiJzaGlmdCIsdmFsdWU6ZnVuY3Rpb24oaCx2KXt2YXIgeT1oWzBd''@;'; + put 'put ''fHxoWzFdLEM9ditNYXRoLmFicyhoWzBdfHxoWzFdKS0xLEk9aFswXT8iY29sc3BhbiI6InJvd3NwYW4iLGo9aFswXT8iY29sIjoicm93Iix1ZT1NYXRoLm1pbih2LEMpLF9lPU1hdGgubWF4KHYsQyksQmU9dGhpc1tqXSxOZT10aGlzW2pdK3RoaXNbSV0tMTtpZihCZT49diYmKHRoaXNbal0r''@;'; + put 'put ''PXkpLHk+MCl2PD1OZSYmdj5CZSYmKHRoaXNbSV0rPXkpO2Vsc2UgaWYoeTwwKXtpZih1ZTw9QmUmJl9lPj1OZSlyZXR1cm4gdGhpcy5yZW1vdmVkPSEwLCExO2lmKEJlPj11ZSYmQmU8PV9lKXt2YXIgS2U9X2UtQmUrMSxkdD1NYXRoLmFicyh5KS1LZTt0aGlzW2pdLT1kdCt5LHRoaXNbSV0t''@;'; + put 'put ''PUtlfWVsc2UgQmU8PXVlJiZOZT49X2U/dGhpc1tJXSs9eTpCZTw9dWUmJk5lPj11ZSYmTmU8X2UmJih0aGlzW0ldLT1OZS11ZSsxKX1yZXR1cm4hMH19LHtrZXk6ImlzRmFydGhlciIsdmFsdWU6ZnVuY3Rpb24oaCx2KXtyZXR1cm4haHx8KCJkb3duIj09PXY/aC5yb3craC5yb3dzcGFuLTE8''@;'; + put 'put ''dGhpcy5yb3crdGhpcy5yb3dzcGFuLTE6InVwIj09PXY/aC5yb3c+dGhpcy5yb3c6InJpZ2h0Ij09PXY/aC5jb2wraC5jb2xzcGFuLTE8dGhpcy5jb2wrdGhpcy5jb2xzcGFuLTE6ImxlZnQiPT09dj9oLmNvbD50aGlzLmNvbDpudWxsKX19LHtrZXk6ImdldExhc3RSb3ciLHZhbHVlOmZ1bmN0''@;'; + put 'put ''aW9uKCl7cmV0dXJuIHRoaXMucm93K3RoaXMucm93c3Bhbi0xfX0se2tleToiZ2V0TGFzdENvbHVtbiIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jb2wrdGhpcy5jb2xzcGFuLTF9fSx7a2V5OiJnZXRSYW5nZSIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jZWxsUmFuZ2VG''@;'; + put 'put ''YWN0b3J5KHRoaXMuY2VsbENvb3Jkc0ZhY3RvcnkodGhpcy5yb3csdGhpcy5jb2wpLHRoaXMuY2VsbENvb3Jkc0ZhY3RvcnkodGhpcy5yb3csdGhpcy5jb2wpLHRoaXMuY2VsbENvb3Jkc0ZhY3RvcnkodGhpcy5nZXRMYXN0Um93KCksdGhpcy5nZXRMYXN0Q29sdW1uKCkpKX19XSxbe2tleToi''@;'; + put 'put ''TkVHQVRJVkVfVkFMVUVTX1dBUk5JTkciLHZhbHVlOmZ1bmN0aW9uKGgpe3JldHVybiBQMihMSWV8fChMSWU9TW5lKFsiVGhlIG1lcmdlZCBjZWxsIGRlY2xhcmVkIHdpdGgge3JvdzogIiwiLCBjb2w6ICIsIiwgXG4gICAgICByb3dzcGFuOiAiLCIsIGNvbHNwYW46ICIsIn0gY29udGFpbnMg''@;'; + put 'put ''bmVnYXRpdmUgdmFsdWVzLCB3aGljaCBpcyBcbiAgICAgIG5vdCBzdXBwb3J0ZWQuIEl0IHdpbGwgbm90IGJlIGFkZGVkIHRvIHRoZSBjb2xsZWN0aW9uLiJdLFsiVGhlIG1lcmdlZCBjZWxsIGRlY2xhcmVkIHdpdGgge3JvdzogIiwiLCBjb2w6ICIsIixcXHgyMFxuICAgICAgcm93c3Bhbjog''@;'; + put 'put ''IiwiLCBjb2xzcGFuOiAiLCJ9IGNvbnRhaW5zIG5lZ2F0aXZlIHZhbHVlcywgd2hpY2ggaXNcXHgyMFxuICAgICAgbm90IHN1cHBvcnRlZC4gSXQgd2lsbCBub3QgYmUgYWRkZWQgdG8gdGhlIGNvbGxlY3Rpb24uIl0pKSxoLnJvdyxoLmNvbCxoLnJvd3NwYW4saC5jb2xzcGFuKX19LHtrZXk6''@;'; + put 'put ''IklTX09VVF9PRl9CT1VORFNfV0FSTklORyIsdmFsdWU6ZnVuY3Rpb24oaCl7cmV0dXJuIFAyKE9JZXx8KE9JZT1NbmUoWyJUaGUgbWVyZ2VkIGNlbGwgZGVjbGFyZWQgYXQgWyIsIiwgIiwiXSBpcyBwb3NpdGlvbmVkIFxuICAgICAgKG9yIHBvc2l0aW9uZWQgcGFydGlhbGx5KSBvdXRzaWRl''@;'; + put 'put ''IG9mIHRoZSB0YWJsZSByYW5nZS4gSXQgd2FzIG5vdCBhZGRlZCB0byB0aGUgdGFibGUsIHBsZWFzZSBmaXggeW91ciBzZXR1cC4iXSxbIlRoZSBtZXJnZWQgY2VsbCBkZWNsYXJlZCBhdCBbIiwiLCAiLCJdIGlzIHBvc2l0aW9uZWRcXHgyMFxuICAgICAgKG9yIHBvc2l0aW9uZWQgcGFydGlh''@;'; + put 'put ''bGx5KSBvdXRzaWRlIG9mIHRoZSB0YWJsZSByYW5nZS4gSXQgd2FzIG5vdCBhZGRlZCB0byB0aGUgdGFibGUsIHBsZWFzZSBmaXggeW91ciBzZXR1cC4iXSkpLGgucm93LGguY29sKX19LHtrZXk6IklTX1NJTkdMRV9DRUxMIix2YWx1ZTpmdW5jdGlvbihoKXtyZXR1cm4gUDIoUkllfHwoUkll''@;'; + put 'put ''PU1uZShbIlRoZSBtZXJnZWQgY2VsbCBkZWNsYXJlZCBhdCBbIiwiLCAiLCddIGhhcyBib3RoICJyb3dzcGFuIiBcbiAgICAgIGFuZCAiY29sc3BhbiIgZGVjbGFyZWQgYXMgIjEiLCB3aGljaCBtYWtlcyBpdCBhIHNpbmdsZSBjZWxsLiBJdCBjYW5ub3QgYmUgYWRkZWQgdG8gdGhlIGNvbGxl''@;'; + put 'put ''Y3Rpb24uJ10sWyJUaGUgbWVyZ2VkIGNlbGwgZGVjbGFyZWQgYXQgWyIsIiwgIiwnXSBoYXMgYm90aCAicm93c3BhbiJcXHgyMFxuICAgICAgYW5kICJjb2xzcGFuIiBkZWNsYXJlZCBhcyAiMSIsIHdoaWNoIG1ha2VzIGl0IGEgc2luZ2xlIGNlbGwuIEl0IGNhbm5vdCBiZSBhZGRlZCB0byB0''@;'; + put 'put ''aGUgY29sbGVjdGlvbi4nXSkpLGgucm93LGguY29sKX19LHtrZXk6IlpFUk9fU1BBTl9XQVJOSU5HIix2YWx1ZTpmdW5jdGlvbihoKXtyZXR1cm4gUDIoQkllfHwoQkllPU1uZShbIlRoZSBtZXJnZWQgY2VsbCBkZWNsYXJlZCBhdCBbIiwiLCAiLCddIGhhcyAicm93c3BhbiIgXG4gICAgICBv''@;'; + put 'put ''ciAiY29sc3BhbiIgZGVjbGFyZWQgYXMgIjAiLCB3aGljaCBpcyBub3Qgc3VwcG9ydGVkLiBJdCBjYW5ub3QgYmUgYWRkZWQgdG8gdGhlIGNvbGxlY3Rpb24uJ10sWyJUaGUgbWVyZ2VkIGNlbGwgZGVjbGFyZWQgYXQgWyIsIiwgIiwnXSBoYXMgInJvd3NwYW4iXFx4MjBcbiAgICAgIG9yICJj''@;'; + put 'put ''b2xzcGFuIiBkZWNsYXJlZCBhcyAiMCIsIHdoaWNoIGlzIG5vdCBzdXBwb3J0ZWQuIEl0IGNhbm5vdCBiZSBhZGRlZCB0byB0aGUgY29sbGVjdGlvbi4nXSkpLGgucm93LGguY29sKX19LHtrZXk6ImNvbnRhaW5zTmVnYXRpdmVWYWx1ZXMiLHZhbHVlOmZ1bmN0aW9uKGgpe3JldHVybiBoLnJv''@;'; + put 'put ''dzwwfHxoLmNvbDwwfHxoLnJvd3NwYW48MHx8aC5jb2xzcGFuPDB9fSx7a2V5OiJpc1NpbmdsZUNlbGwiLHZhbHVlOmZ1bmN0aW9uKGgpe3JldHVybiAxPT09aC5jb2xzcGFuJiYxPT09aC5yb3dzcGFufX0se2tleToiY29udGFpbnNaZXJvU3BhbiIsdmFsdWU6ZnVuY3Rpb24oaCl7cmV0dXJu''@;'; + put 'put ''IDA9PT1oLmNvbHNwYW58fDA9PT1oLnJvd3NwYW59fSx7a2V5OiJpc091dE9mQm91bmRzIix2YWx1ZTpmdW5jdGlvbihoLHYseSl7cmV0dXJuIGgucm93PDB8fGguY29sPDB8fGgucm93Pj12fHxoLnJvdytoLnJvd3NwYW4tMT49dnx8aC5jb2w+PXl8fGguY29sK2guY29sc3Bhbi0xPj15fX1d''@;'; + put 'put ''KSxkfSgpO2NvbnN0IEhnPWRkdDtmdW5jdGlvbiBfZ2UoZCxnLGgsdil7Zz9nLnJvdz09PWgmJmcuY29sPT09dj8oZC5zZXRBdHRyaWJ1dGUoInJvd3NwYW4iLGcucm93c3Bhbi50b1N0cmluZygpKSxkLnNldEF0dHJpYnV0ZSgiY29sc3BhbiIsZy5jb2xzcGFuLnRvU3RyaW5nKCkpKTooZC5y''@;'; + put 'put ''ZW1vdmVBdHRyaWJ1dGUoInJvd3NwYW4iKSxkLnJlbW92ZUF0dHJpYnV0ZSgiY29sc3BhbiIpLGQuc3R5bGUuZGlzcGxheT0ibm9uZSIpOihkLnJlbW92ZUF0dHJpYnV0ZSgicm93c3BhbiIpLGQucmVtb3ZlQXR0cmlidXRlKCJjb2xzcGFuIiksZC5zdHlsZS5kaXNwbGF5PSIiKX12YXIgRkll''@;'; + put 'put ''O2Z1bmN0aW9uIEhJZShkKXtyZXR1cm4gZnVuY3Rpb24gQWR0KGQpe2lmKEFycmF5LmlzQXJyYXkoZCkpcmV0dXJuIENnZShkKX0oZCl8fGZ1bmN0aW9uIHZkdChkKXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmbnVsbCE9ZFtTeW1ib2wuaXRlcmF0b3JdfHxudWxsIT1kWyJAQGl0''@;'; + put 'put ''ZXJhdG9yIl0pcmV0dXJuIEFycmF5LmZyb20oZCl9KGQpfHxmdW5jdGlvbiBtZHQoZCxnKXtpZihkKXtpZigic3RyaW5nIj09dHlwZW9mIGQpcmV0dXJuIENnZShkLGcpO3ZhciBoPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChkKS5zbGljZSg4LC0xKTtpZigiT2JqZWN0Ij09PWgm''@;'; + put 'put ''JmQuY29uc3RydWN0b3ImJihoPWQuY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1ofHwiU2V0Ij09PWgpcmV0dXJuIEFycmF5LmZyb20oZCk7aWYoIkFyZ3VtZW50cyI9PT1ofHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChoKSlyZXR1cm4gQ2dlKGQs''@;'; + put 'put ''Zyl9fShkKXx8ZnVuY3Rpb24gZ2R0KCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIHNwcmVhZCBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRv''@;'; + put 'put ''cl0oKSBtZXRob2QuIil9KCl9ZnVuY3Rpb24gQ2dlKGQsZyl7KG51bGw9PWd8fGc+ZC5sZW5ndGgpJiYoZz1kLmxlbmd0aCk7Zm9yKHZhciBoPTAsdj1uZXcgQXJyYXkoZyk7aDxnO2grKyl2W2hdPWRbaF07cmV0dXJuIHZ9ZnVuY3Rpb24gTkllKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0''@;'; + put 'put ''aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19dmFyIGJkdD1mdW5jdGlvbigpe2Z1bmN0aW9uIGQoZyl7KGZ1''@;'; + put 'put ''bmN0aW9uIHlkdChkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSkodGhpcyxkKSx0aGlzLnBsdWdpbj1nLHRoaXMubWVyZ2VkQ2VsbHM9W10sdGhpcy5ob3Q9Zy5ob3R9cmV0dXJuIGZ1bmN0''@;'; + put 'put ''aW9uIHdkdChkLGcsaCl7ZyYmTkllKGQucHJvdG90eXBlLGcpLGgmJk5JZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShkLFt7a2V5OiJnZXQiLHZhbHVlOmZ1bmN0aW9uKGgsdil7dmFyIEM9ITE7cmV0dXJuIFVyKHRoaXMubWVyZ2Vk''@;'; + put 'put ''Q2VsbHMsZnVuY3Rpb24oSSl7cmV0dXJuIShJLnJvdzw9aCYmSS5yb3crSS5yb3dzcGFuLTE+PWgmJkkuY29sPD12JiZJLmNvbCtJLmNvbHNwYW4tMT49diYmKEM9SSwxKSl9KSxDfX0se2tleToiZ2V0QnlSYW5nZSIsdmFsdWU6ZnVuY3Rpb24oaCl7dmFyIHk9ITE7cmV0dXJuIFVyKHRoaXMu''@;'; + put 'put ''bWVyZ2VkQ2VsbHMsZnVuY3Rpb24oQyl7cmV0dXJuIShDLnJvdzw9aC5mcm9tLnJvdyYmQy5yb3crQy5yb3dzcGFuLTE+PWgudG8ucm93JiZDLmNvbDw9aC5mcm9tLmNvbCYmQy5jb2wrQy5jb2xzcGFuLTE+PWgudG8uY29sKXx8KHk9Qyl9KSx5fX0se2tleToiZ2V0V2l0aGluUmFuZ2UiLHZh''@;'; + put 'put ''bHVlOmZ1bmN0aW9uKGgpe3ZhciB2PXRoaXMseT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXSYmYXJndW1lbnRzWzFdLEM9dGhpcy5tZXJnZWRDZWxscyxJPVtdLGo9aDtpZighai5pbmNsdWRlc1JhbmdlKXt2YXIgdWU9dGhpcy5ob3QuX2NyZWF0ZUNlbGxDb29y''@;'; + put 'put ''ZHMoai5mcm9tLnJvdyxqLmZyb20uY29sKSxfZT10aGlzLmhvdC5fY3JlYXRlQ2VsbENvb3JkcyhqLnRvLnJvdyxqLnRvLmNvbCk7aj10aGlzLmhvdC5fY3JlYXRlQ2VsbFJhbmdlKHVlLHVlLF9lKX1yZXR1cm4gVXIoQyxmdW5jdGlvbihCZSl7dmFyIE5lPXYuaG90Ll9jcmVhdGVDZWxsQ29v''@;'; + put 'put ''cmRzKEJlLnJvdyxCZS5jb2wpLEtlPXYuaG90Ll9jcmVhdGVDZWxsQ29vcmRzKEJlLnJvdytCZS5yb3dzcGFuLTEsQmUuY29sK0JlLmNvbHNwYW4tMSksZHQ9di5ob3QuX2NyZWF0ZUNlbGxSYW5nZShOZSxOZSxLZSk7eT9qLm92ZXJsYXBzKGR0KSYmSS5wdXNoKEJlKTpqLmluY2x1ZGVzUmFu''@;'; + put 'put ''Z2UoZHQpJiZJLnB1c2goQmUpfSksISFJLmxlbmd0aCYmSX19LHtrZXk6ImFkZCIsdmFsdWU6ZnVuY3Rpb24oaCl7dmFyIHY9dGhpcy5tZXJnZWRDZWxscyx5PWgucm93LEM9aC5jb2wsdWU9bmV3IEhnKHksQyxoLnJvd3NwYW4saC5jb2xzcGFuLHRoaXMuaG90Ll9jcmVhdGVDZWxsQ29vcmRz''@;'; + put 'put ''LHRoaXMuaG90Ll9jcmVhdGVDZWxsUmFuZ2UpLF9lPXRoaXMuZ2V0KHksQyksQmU9dGhpcy5pc092ZXJsYXBwaW5nKHVlKTtyZXR1cm4gX2V8fEJlPyhsMShkLklTX09WRVJMQVBQSU5HX1dBUk5JTkcodWUpKSwhMSk6KHRoaXMuaG90JiZ1ZS5ub3JtYWxpemUodGhpcy5ob3QpLHYucHVzaCh1''@;'; + put 'put ''ZSksdWUpfX0se2tleToicmVtb3ZlIix2YWx1ZTpmdW5jdGlvbihoLHYpe3ZhciB5PXRoaXMubWVyZ2VkQ2VsbHMsQz10aGlzLmdldChoLHYpLEk9Qz90aGlzLm1lcmdlZENlbGxzLmluZGV4T2YoQyk6LTE7cmV0dXJuISghQ3x8LTE9PT1JKSYmKHkuc3BsaWNlKEksMSksQyl9fSx7a2V5OiJj''@;'; + put 'put ''bGVhciIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD10aGlzLHk9W10sQz1bXTtVcih0aGlzLm1lcmdlZENlbGxzLGZ1bmN0aW9uKEkpe3ZhciBqPWguaG90LmdldENlbGwoSS5yb3csSS5jb2wpO2omJnkucHVzaChbaixoLmdldChJLnJvdyxJLmNvbCksSS5yb3csSS5jb2xdKX0pLHRoaXMubWVy''@;'; + put 'put ''Z2VkQ2VsbHMubGVuZ3RoPTAsVXIoeSxmdW5jdGlvbihJLGope2lhKDAsSS5yb3dzcGFuLTEsZnVuY3Rpb24odWUpe2lhKDAsSS5jb2xzcGFuLTEsZnVuY3Rpb24oX2Upe2lmKDAhPT1fZXx8MCE9PXVlKXt2YXIgQmU9aC5ob3QuZ2V0Q2VsbChJLnJvdyt1ZSxJLmNvbCtfZSk7QmUmJkMucHVz''@;'; + put 'put ''aChbQmUsbnVsbCxudWxsLG51bGxdKX19KX0pLHlbal1bMV09bnVsbH0pLFVyKHksZnVuY3Rpb24oSSl7X2dlLmFwcGx5KHZvaWQgMCxISWUoSSkpfSksVXIoQyxmdW5jdGlvbihJKXtfZ2UuYXBwbHkodm9pZCAwLEhJZShJKSl9KX19LHtrZXk6ImlzT3ZlcmxhcHBpbmciLHZhbHVlOmZ1bmN0''@;'; + put 'put ''aW9uKGgpe3ZhciB2PXRoaXMseT10aGlzLmhvdC5fY3JlYXRlQ2VsbFJhbmdlKHRoaXMuaG90Ll9jcmVhdGVDZWxsQ29vcmRzKDAsMCksdGhpcy5ob3QuX2NyZWF0ZUNlbGxDb29yZHMoaC5yb3csaC5jb2wpLHRoaXMuaG90Ll9jcmVhdGVDZWxsQ29vcmRzKGgucm93K2gucm93c3Bhbi0xLGgu''@;'; + put 'put ''Y29sK2guY29sc3Bhbi0xKSksQz0hMTtyZXR1cm4gVXIodGhpcy5tZXJnZWRDZWxscyxmdW5jdGlvbihJKXtyZXR1cm4hdi5ob3QuX2NyZWF0ZUNlbGxSYW5nZSh2LmhvdC5fY3JlYXRlQ2VsbENvb3JkcygwLDApLHYuaG90Ll9jcmVhdGVDZWxsQ29vcmRzKEkucm93LEkuY29sKSx2LmhvdC5f''@;'; + put 'put ''Y3JlYXRlQ2VsbENvb3JkcyhJLnJvdytJLnJvd3NwYW4tMSxJLmNvbCtJLmNvbHNwYW4tMSkpLm92ZXJsYXBzKHkpfHwoQz0hMCwhMSl9KSxDfX0se2tleToiaXNGaXJzdFJlbmRlcmFibGVNZXJnZWRDZWxsIix2YWx1ZTpmdW5jdGlvbihoLHYpe3ZhciB5PXRoaXMuZ2V0KGgsdik7cmV0dXJu''@;'; + put 'put ''IHkmJnRoaXMuaG90LnJvd0luZGV4TWFwcGVyLmdldE5lYXJlc3ROb3RIaWRkZW5JbmRleCh5LnJvdywxKT09PWgmJnRoaXMuaG90LmNvbHVtbkluZGV4TWFwcGVyLmdldE5lYXJlc3ROb3RIaWRkZW5JbmRleCh5LmNvbCwxKT09PXZ9fSx7a2V5OiJnZXRGaXJzdFJlbmRlcmFibGVDb29yZHMi''@;'; + put 'put ''LHZhbHVlOmZ1bmN0aW9uKGgsdil7dmFyIHk9dGhpcy5nZXQoaCx2KTtpZigheXx8dGhpcy5pc0ZpcnN0UmVuZGVyYWJsZU1lcmdlZENlbGwoaCx2KSlyZXR1cm4gdGhpcy5ob3QuX2NyZWF0ZUNlbGxDb29yZHMoaCx2KTt2YXIgQz10aGlzLmhvdC5yb3dJbmRleE1hcHBlci5nZXROZWFyZXN0''@;'; + put 'put ''Tm90SGlkZGVuSW5kZXgoeS5yb3csMSksST10aGlzLmhvdC5jb2x1bW5JbmRleE1hcHBlci5nZXROZWFyZXN0Tm90SGlkZGVuSW5kZXgoeS5jb2wsMSk7cmV0dXJuIHRoaXMuaG90Ll9jcmVhdGVDZWxsQ29vcmRzKEMsSSl9fSx7a2V5OiJzaGlmdENvbGxlY3Rpb25zIix2YWx1ZTpmdW5jdGlv''@;'; + put 'put ''bihoLHYseSl7dmFyIEM9dGhpcyxJPVswLDBdO3N3aXRjaChoKXtjYXNlInJpZ2h0IjpJWzBdKz15O2JyZWFrO2Nhc2UibGVmdCI6SVswXS09eTticmVhaztjYXNlImRvd24iOklbMV0rPXk7YnJlYWs7Y2FzZSJ1cCI6SVsxXS09eX1Vcih0aGlzLm1lcmdlZENlbGxzLGZ1bmN0aW9uKGope2ou''@;'; + put 'put ''c2hpZnQoSSx2KX0pLHNlZSh0aGlzLm1lcmdlZENlbGxzLmxlbmd0aC0xLDAsZnVuY3Rpb24oail7dmFyIHVlPUMubWVyZ2VkQ2VsbHNbal07dWUmJnVlLnJlbW92ZWQmJkMubWVyZ2VkQ2VsbHMuc3BsaWNlKEMubWVyZ2VkQ2VsbHMuaW5kZXhPZih1ZSksMSl9KX19XSxbe2tleToiSVNfT1ZF''@;'; + put 'put ''UkxBUFBJTkdfV0FSTklORyIsdmFsdWU6ZnVuY3Rpb24oaCl7cmV0dXJuIFAyKEZJZXx8KEZJZT1mdW5jdGlvbiBwZHQoZCxnKXtyZXR1cm4gZ3x8KGc9ZC5zbGljZSgwKSksT2JqZWN0LmZyZWV6ZShPYmplY3QuZGVmaW5lUHJvcGVydGllcyhkLHtyYXc6e3ZhbHVlOk9iamVjdC5mcmVlemUo''@;'; + put 'put ''Zyl9fSkpfShbIlRoZSBtZXJnZWQgY2VsbCBkZWNsYXJlZCBhdCBbIiwiLCAiLCJdLCBvdmVybGFwcyBcbiAgICAgIHdpdGggdGhlIG90aGVyIGRlY2xhcmVkIG1lcmdlZCBjZWxsLiBUaGUgb3ZlcmxhcHBpbmcgbWVyZ2VkIGNlbGwgd2FzIG5vdCBhZGRlZCB0byB0aGUgdGFibGUsIHBsZWFz''@;'; + put 'put ''ZSBcbiAgICAgIGZpeCB5b3VyIHNldHVwLiJdLFsiVGhlIG1lcmdlZCBjZWxsIGRlY2xhcmVkIGF0IFsiLCIsICIsIl0sIG92ZXJsYXBzXFx4MjBcbiAgICAgIHdpdGggdGhlIG90aGVyIGRlY2xhcmVkIG1lcmdlZCBjZWxsLiBUaGUgb3ZlcmxhcHBpbmcgbWVyZ2VkIGNlbGwgd2FzIG5vdCBh''@;'; + put 'put ''ZGRlZCB0byB0aGUgdGFibGUsIHBsZWFzZVxceDIwXG4gICAgICBmaXggeW91ciBzZXR1cC4iXSkpLGgucm93LGguY29sKX19XSksZH0oKTtjb25zdCBfZHQ9YmR0O2Z1bmN0aW9uIHBNKGQsZyl7cmV0dXJuIGZ1bmN0aW9uIE1kdChkKXtpZihBcnJheS5pc0FycmF5KGQpKXJldHVybiBkfShk''@;'; + put 'put ''KXx8ZnVuY3Rpb24gU2R0KGQsZyl7dmFyIGg9bnVsbD09ZD9udWxsOiJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZkW1N5bWJvbC5pdGVyYXRvcl18fGRbIkBAaXRlcmF0b3IiXTtpZihudWxsIT1oKXt2YXIgSSxqLHY9W10seT0hMCxDPSExO3RyeXtmb3IoaD1oLmNhbGwoZCk7ISh5PShJ''@;'; + put 'put ''PWgubmV4dCgpKS5kb25lKSYmKHYucHVzaChJLnZhbHVlKSwhZ3x8di5sZW5ndGghPT1nKTt5PSEwKTt9Y2F0Y2godWUpe0M9ITAsaj11ZX1maW5hbGx5e3RyeXsheSYmbnVsbCE9aC5yZXR1cm4mJmgucmV0dXJuKCl9ZmluYWxseXtpZihDKXRocm93IGp9fXJldHVybiB2fX0oZCxnKXx8ZnVu''@;'; + put 'put ''Y3Rpb24ga2R0KGQsZyl7aWYoZCl7aWYoInN0cmluZyI9PXR5cGVvZiBkKXJldHVybiBWSWUoZCxnKTt2YXIgaD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZCkuc2xpY2UoOCwtMSk7aWYoIk9iamVjdCI9PT1oJiZkLmNvbnN0cnVjdG9yJiYoaD1kLmNvbnN0cnVjdG9yLm5hbWUp''@;'; + put 'put ''LCJNYXAiPT09aHx8IlNldCI9PT1oKXJldHVybiBBcnJheS5mcm9tKGQpO2lmKCJBcmd1bWVudHMiPT09aHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QoaCkpcmV0dXJuIFZJZShkLGcpfX0oZCxnKXx8ZnVuY3Rpb24gQ2R0KCl7dGhyb3cgbmV3IFR5''@;'; + put 'put ''cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX1mdW5jdGlvbiBWSWUo''@;'; + put 'put ''ZCxnKXsobnVsbD09Z3x8Zz5kLmxlbmd0aCkmJihnPWQubGVuZ3RoKTtmb3IodmFyIGg9MCx2PW5ldyBBcnJheShnKTtoPGc7aCsrKXZbaF09ZFtoXTtyZXR1cm4gdn1mdW5jdGlvbiBqSWUoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9''@;'; + put 'put ''di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX12YXIgVGR0PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZChnKXsoZnVuY3Rpb24gRWR0KGQsZyl7aWYoIShkIGluc3RhbmNl''@;'; + put 'put ''b2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KSh0aGlzLGQpLHRoaXMucGx1Z2luPWcsdGhpcy5tZXJnZWRDZWxsc0NvbGxlY3Rpb249dGhpcy5wbHVnaW4ubWVyZ2VkQ2VsbHNDb2xsZWN0aW9uLHRoaXMuY3VycmVudEZpbGxE''@;'; + put 'put ''YXRhPW51bGx9cmV0dXJuIGZ1bmN0aW9uIHhkdChkLGcsaCl7ZyYmakllKGQucHJvdG90eXBlLGcpLGgmJmpJZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShkLFt7a2V5OiJjb3JyZWN0U2VsZWN0aW9uQXJlYVNpemUiLHZhbHVlOmZ1''@;'; + put 'put ''bmN0aW9uKGgpe2lmKGhbMF09PT1oWzJdJiZoWzFdPT09aFszXSl7dmFyIHY9dGhpcy5tZXJnZWRDZWxsc0NvbGxlY3Rpb24uZ2V0KGhbMF0saFsxXSk7diYmKGhbMl09aFswXSt2LnJvd3NwYW4tMSxoWzNdPWhbMV0rdi5jb2xzcGFuLTEpfX19LHtrZXk6ImdldERpcmVjdGlvbiIsdmFsdWU6''@;'; + put 'put ''ZnVuY3Rpb24oaCx2KXtyZXR1cm4gdlswXT09PWhbMF0mJnZbMV09PT1oWzFdJiZ2WzNdPT09aFszXT8iZG93biI6dlsyXT09PWhbMl0mJnZbMV09PT1oWzFdJiZ2WzNdPT09aFszXT8idXAiOnZbMV09PT1oWzFdJiZ2WzJdPT09aFsyXT8icmlnaHQiOiJsZWZ0In19LHtrZXk6InNuYXBEcmFn''@;'; + put 'put ''QXJlYSIsdmFsdWU6ZnVuY3Rpb24oaCx2LHksQyl7dmFyIEk9di5zbGljZSgwKSxqPXRoaXMuZ2V0QXV0b2ZpbGxTaXplKGgsdix5KSx1ZT1wTShoLDQpLF9lPXVlWzBdLEJlPXVlWzFdLE5lPXVlWzJdLEtlPXVlWzNdLE90PVsidXAiLCJkb3duIl0uaW5kZXhPZih5KT4tMT9OZS1fZSsxOktl''@;'; + put 'put ''LUJlKzEsZm49ai1NYXRoLmZsb29yKGovT3QpKk90LExuPXRoaXMuZ2V0RmFydGhlc3RDb2xsZWN0aW9uKGgsdix5LEMpO2lmKExuKWlmKCJkb3duIj09PXkpe3ZhciBpcj1Mbi5yb3crTG4ucm93c3Bhbi1fZS1mbjtJWzJdK2lyPj10aGlzLnBsdWdpbi5ob3QuY291bnRSb3dzKCk/SVsyXS09''@;'; + put 'put ''Zm46SVsyXSs9Zm4/aXI6MH1lbHNlIGlmKCJyaWdodCI9PT15KXt2YXIgU3I9TG4uY29sK0xuLmNvbHNwYW4tQmUtZm47SVszXStTcj49dGhpcy5wbHVnaW4uaG90LmNvdW50Q29scygpP0lbM10tPWZuOklbM10rPWZuP1NyOjB9ZWxzZSBpZigidXAiPT09eSl7dmFyIFFyPU5lLWZuLUxuLnJv''@;'; + put 'put ''dysxO0lbMF0rUXI8MD9JWzBdKz1mbjpJWzBdLT1mbj9RcjowfWVsc2UgaWYoImxlZnQiPT09eSl7dmFyIEtpPUtlLWZuLUxuLmNvbCsxO0lbMV0rS2k8MD9JWzFdKz1mbjpJWzFdLT1mbj9LaTowfXJldHVybiB0aGlzLnVwZGF0ZUN1cnJlbnRGaWxsQ2FjaGUoe2Jhc2VBcmVhOmgsZHJhZ0Rp''@;'; + put 'put ''cmVjdGlvbjp5LGZvdW5kTWVyZ2VkQ2VsbHM6QyxmaWxsU2l6ZTpqLGRyYWdBcmVhOkksY3ljbGVMZW5ndGg6T3R9KSxJfX0se2tleToidXBkYXRlQ3VycmVudEZpbGxDYWNoZSIsdmFsdWU6ZnVuY3Rpb24oaCl7dGhpcy5jdXJyZW50RmlsbERhdGF8fCh0aGlzLmN1cnJlbnRGaWxsRGF0YT17''@;'; + put 'put ''fSksSTEodGhpcy5jdXJyZW50RmlsbERhdGEsaCl9fSx7a2V5OiJnZXRBdXRvZmlsbFNpemUiLHZhbHVlOmZ1bmN0aW9uKGgsdix5KXt2YXIgQz1wTShoLDQpLEk9Q1swXSxqPUNbMV0sdWU9Q1syXSxfZT1DWzNdLEJlPXBNKHYsNCksTmU9QmVbMF0sS2U9QmVbMV0sZHQ9QmVbMl0sT3Q9QmVb''@;'; + put 'put ''M107c3dpdGNoKHkpe2Nhc2UidXAiOnJldHVybiBJLU5lO2Nhc2UiZG93biI6cmV0dXJuIGR0LXVlO2Nhc2UibGVmdCI6cmV0dXJuIGotS2U7Y2FzZSJyaWdodCI6cmV0dXJuIE90LV9lO2RlZmF1bHQ6cmV0dXJuIG51bGx9fX0se2tleToiZ2V0RHJhZ0FyZWEiLHZhbHVlOmZ1bmN0aW9uKGgs''@;'; + put 'put ''dix5KXt2YXIgQz1wTShoLDQpLEk9Q1swXSxqPUNbMV0sdWU9Q1syXSxfZT1DWzNdLEJlPXBNKHYsNCksTmU9QmVbMF0sS2U9QmVbMV0sZHQ9QmVbMl0sT3Q9QmVbM107c3dpdGNoKHkpe2Nhc2UidXAiOnJldHVybltOZSxLZSxJLTEsX2VdO2Nhc2UiZG93biI6cmV0dXJuW3VlKzEsaixkdCxf''@;'; + put 'put ''ZV07Y2FzZSJsZWZ0IjpyZXR1cm5bTmUsS2UsdWUsai0xXTtjYXNlInJpZ2h0IjpyZXR1cm5bSSxfZSsxLGR0LE90XTtkZWZhdWx0OnJldHVybiBudWxsfX19LHtrZXk6ImdldEZhcnRoZXN0Q29sbGVjdGlvbiIsdmFsdWU6ZnVuY3Rpb24oaCx2LHksQyl7dmFyIEk9cE0oaCw0KSxqPUlbMF0s''@;'; + put 'put ''dWU9SVsxXSxfZT1JWzJdLEJlPUlbM10sTmU9WyJ1cCIsImRvd24iXS5pbmRleE9mKHkpPi0xLEtlPU5lP19lOkJlLGR0PU5lP2o6dWUsT3Q9dGhpcy5nZXRBdXRvZmlsbFNpemUoaCx2LHkpLCR0PU5lP19lLWorMTpCZS11ZSsxLExuPU90LU1hdGguZmxvb3IoT3QvJHQpKiR0LGlyPW51bGws''@;'; + put 'put ''bXI9bnVsbCxTcj1udWxsO3N3aXRjaCh5KXtjYXNlInVwIjppcj0iaW5jbHVkZXNWZXJ0aWNhbGx5IixTcj1LZS1MbisxO2JyZWFrO2Nhc2UibGVmdCI6aXI9ImluY2x1ZGVzSG9yaXpvbnRhbGx5IixTcj1LZS1MbisxO2JyZWFrO2Nhc2UiZG93biI6aXI9ImluY2x1ZGVzVmVydGljYWxseSIs''@;'; + put 'put ''U3I9ZHQrTG4tMTticmVhaztjYXNlInJpZ2h0Ijppcj0iaW5jbHVkZXNIb3Jpem9udGFsbHkiLFNyPWR0K0xuLTF9cmV0dXJuIFVyKEMsZnVuY3Rpb24od3Ipe3dyW2lyXShTcikmJndyLmlzRmFydGhlcihtcix5KSYmKG1yPXdyKX0pLG1yfX0se2tleToicmVjcmVhdGVBZnRlckRhdGFQb3B1''@;'; + put 'put ''bGF0aW9uIix2YWx1ZTpmdW5jdGlvbihoKXtpZih0aGlzLmN1cnJlbnRGaWxsRGF0YSl7dmFyIHY9dGhpcy5nZXRSYW5nZUZyb21DaGFuZ2VzKGgpLHk9dGhpcy5jdXJyZW50RmlsbERhdGEuZm91bmRNZXJnZWRDZWxscyxDPXRoaXMuY3VycmVudEZpbGxEYXRhLmRyYWdEaXJlY3Rpb24sST1m''@;'; + put 'put ''dW5jdGlvbihLZSxkdCl7c3dpdGNoKEMpe2Nhc2UidXAiOnJldHVybiBLZS5yb3ctZHQ+PXYuZnJvbS5yb3c7Y2FzZSJkb3duIjpyZXR1cm4gS2Uucm93K0tlLnJvd3NwYW4tMStkdDw9di50by5yb3c7Y2FzZSJsZWZ0IjpyZXR1cm4gS2UuY29sLWR0Pj12LmZyb20uY29sdW1uO2Nhc2Uicmln''@;'; + put 'put ''aHQiOnJldHVybiBLZS5jb2wrS2UuY29sc3Bhbi0xK2R0PD12LnRvLmNvbHVtbjtkZWZhdWx0OnJldHVybiBudWxsfX0saj0wLHVlPW51bGwsX2U9MTtkb3tmb3IodmFyIEJlPTA7QmU8eS5sZW5ndGg7QmUrPTEpe2lmKEkodWU9eVtCZV0saj1fZSp0aGlzLmN1cnJlbnRGaWxsRGF0YS5jeWNs''@;'; + put 'put ''ZUxlbmd0aCkpc3dpdGNoKEMpe2Nhc2UidXAiOnRoaXMucGx1Z2luLm1lcmdlZENlbGxzQ29sbGVjdGlvbi5hZGQoe3Jvdzp1ZS5yb3ctaixyb3dzcGFuOnVlLnJvd3NwYW4sY29sOnVlLmNvbCxjb2xzcGFuOnVlLmNvbHNwYW59KTticmVhaztjYXNlImRvd24iOnRoaXMucGx1Z2luLm1lcmdl''@;'; + put 'put ''ZENlbGxzQ29sbGVjdGlvbi5hZGQoe3Jvdzp1ZS5yb3craixyb3dzcGFuOnVlLnJvd3NwYW4sY29sOnVlLmNvbCxjb2xzcGFuOnVlLmNvbHNwYW59KTticmVhaztjYXNlImxlZnQiOnRoaXMucGx1Z2luLm1lcmdlZENlbGxzQ29sbGVjdGlvbi5hZGQoe3Jvdzp1ZS5yb3cscm93c3Bhbjp1ZS5y''@;'; + put 'put ''b3dzcGFuLGNvbDp1ZS5jb2wtaixjb2xzcGFuOnVlLmNvbHNwYW59KTticmVhaztjYXNlInJpZ2h0Ijp0aGlzLnBsdWdpbi5tZXJnZWRDZWxsc0NvbGxlY3Rpb24uYWRkKHtyb3c6dWUucm93LHJvd3NwYW46dWUucm93c3Bhbixjb2w6dWUuY29sK2osY29sc3Bhbjp1ZS5jb2xzcGFufSl9QmU9''@;'; + put 'put ''PT15Lmxlbmd0aC0xJiYoX2UrPTEpfX13aGlsZShJKHVlLGopKTt0aGlzLmN1cnJlbnRGaWxsRGF0YT1udWxsLHRoaXMucGx1Z2luLmhvdC5yZW5kZXIoKX19fSx7a2V5OiJnZXRSYW5nZUZyb21DaGFuZ2VzIix2YWx1ZTpmdW5jdGlvbihoKXt2YXIgdj10aGlzLHk9e21pbjpudWxsLG1heDpu''@;'; + put 'put ''dWxsfSxDPXttaW46bnVsbCxtYXg6bnVsbH07cmV0dXJuIFVyKGgsZnVuY3Rpb24oSSl7dmFyIGo9SVswXSx1ZT12LnBsdWdpbi5ob3QucHJvcFRvQ29sKElbMV0pOyhudWxsPT09eS5taW58fGo8eS5taW4pJiYoeS5taW49aiksKG51bGw9PT15Lm1heHx8aj55Lm1heCkmJih5Lm1heD1qKSwo''@;'; + put 'put ''bnVsbD09PUMubWlufHx1ZTxDLm1pbikmJihDLm1pbj11ZSksKG51bGw9PT1DLm1heHx8dWU+Qy5tYXgpJiYoQy5tYXg9dWUpfSkse2Zyb206e3Jvdzp5Lm1pbixjb2x1bW46Qy5taW59LHRvOntyb3c6eS5tYXgsY29sdW1uOkMubWF4fX19fSx7a2V5OiJkcmFnQXJlYU92ZXJsYXBzQ29sbGVj''@;'; + put 'put ''dGlvbnMiLHZhbHVlOmZ1bmN0aW9uKGgsdix5KXt2YXIgST1wTSh0aGlzLmdldERyYWdBcmVhKGgsdix5KSw0KSxfZT1JWzJdLEJlPUlbM10sTmU9dGhpcy5wbHVnaW4uaG90Ll9jcmVhdGVDZWxsQ29vcmRzKElbMF0sSVsxXSksS2U9dGhpcy5wbHVnaW4uaG90Ll9jcmVhdGVDZWxsQ29vcmRz''@;'; + put 'put ''KF9lLEJlKSxkdD10aGlzLnBsdWdpbi5ob3QuX2NyZWF0ZUNlbGxSYW5nZShOZSxOZSxLZSk7cmV0dXJuISF0aGlzLm1lcmdlZENlbGxzQ29sbGVjdGlvbi5nZXRXaXRoaW5SYW5nZShkdCwhMCl9fV0pLGR9KCk7Y29uc3QgSWR0PVRkdDtmdW5jdGlvbiBaSWUoZCxnKXtmb3IodmFyIGg9MDto''@;'; + put 'put ''PGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX12YXIgT2R0PWZ1bmN0aW9uKCl7ZnVuY3Rpb24g''@;'; + put 'put ''ZChnKXsoZnVuY3Rpb24gRGR0KGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KSh0aGlzLGQpLHRoaXMucGx1Z2luPWcsdGhpcy5ob3Q9Zy5ob3QsdGhpcy5mdWxseVNlbGVjdGVkTWVyZ2Vk''@;'; + put 'put ''Q2VsbENsYXNzTmFtZT0iZnVsbHlTZWxlY3RlZE1lcmdlZENlbGwifXJldHVybiBmdW5jdGlvbiBMZHQoZCxnLGgpe2cmJlpJZShkLnByb3RvdHlwZSxnKSxoJiZaSWUoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oZCxbe2tleToic25h''@;'; + put 'put ''cERlbHRhIix2YWx1ZTpmdW5jdGlvbihoLHYseSl7dmFyIEM9di50byxqPUMuY29sK2guY29sO2gucm93P3RoaXMuanVtcE92ZXJNZXJnZWRDZWxsKGgseSxDLnJvdytoLnJvdyk6aC5jb2wmJnRoaXMuanVtcE92ZXJNZXJnZWRDZWxsKGgseSxqKX19LHtrZXk6Imp1bXBPdmVyTWVyZ2VkQ2Vs''@;'; + put 'put ''bCIsdmFsdWU6ZnVuY3Rpb24oaCx2LHkpe3ZhciBDPWgucm93fHxoLmNvbCxJPW51bGwsaj1udWxsLHVlPW51bGw7aC5yb3c/KEk9di5pbmNsdWRlc1ZlcnRpY2FsbHkoeSksaj12LnJvdyx1ZT12LmdldExhc3RSb3coKSk6aC5jb2wmJihJPXYuaW5jbHVkZXNIb3Jpem9udGFsbHkoeSksaj12''@;'; + put 'put ''LmNvbCx1ZT12LmdldExhc3RDb2x1bW4oKSksMCE9PUMmJihDPjA/SSYmeSE9PWomJihDKz11ZS15KzEpOkkmJnkhPT11ZSYmKEMtPXktaisxKSxoLnJvdz9oLnJvdz1DOmguY29sJiYoaC5jb2w9QykpfX0se2tleToiZ2V0VXBkYXRlZFNlbGVjdGlvblJhbmdlIix2YWx1ZTpmdW5jdGlvbiho''@;'; + put 'put ''LHYpe3JldHVybiB0aGlzLmhvdC5fY3JlYXRlQ2VsbFJhbmdlKGguaGlnaGxpZ2h0LGguZnJvbSx0aGlzLmhvdC5fY3JlYXRlQ2VsbENvb3JkcyhoLnRvLnJvdyt2LnJvdyxoLnRvLmNvbCt2LmNvbCkpfX0se2tleToiZ2V0U2VsZWN0ZWRNZXJnZWRDZWxsQ2xhc3NOYW1lIix2YWx1ZTpmdW5j''@;'; + put 'put ''dGlvbihoLHYseSxDKXt2YXIgST1NYXRoLm1pbih5WzBdLHlbMl0pLGo9TWF0aC5taW4oeVsxXSx5WzNdKSx1ZT1NYXRoLm1heCh5WzBdLHlbMl0pLF9lPU1hdGgubWF4KHlbMV0seVszXSk7aWYodm9pZCAwIT09QyYmdGhpcy5wbHVnaW4ubWVyZ2VkQ2VsbHNDb2xsZWN0aW9uLmlzRmlyc3RS''@;'; + put 'put ''ZW5kZXJhYmxlTWVyZ2VkQ2VsbChoLHYpKXt2YXIgTmU9dGhpcy5wbHVnaW4ubWVyZ2VkQ2VsbHNDb2xsZWN0aW9uLmdldChoLHYpO2lmKE5lKXt2YXIgS2U9TmUuZ2V0TGFzdFJvdygpLGR0PU5lLmdldExhc3RDb2x1bW4oKTtpZihJPD1OZS5yb3cmJmo8PU5lLmNvbCYmdWU+PUtlJiZfZT49''@;'; + put 'put ''ZHQpcmV0dXJuIiIuY29uY2F0KHRoaXMuZnVsbHlTZWxlY3RlZE1lcmdlZENlbGxDbGFzc05hbWUsIi0iKS5jb25jYXQoQyk7aWYodGhpcy5wbHVnaW4uc2VsZWN0aW9uQ2FsY3VsYXRpb25zLmlzTWVyZ2VDZWxsRnVsbHlTZWxlY3RlZChOZSx0aGlzLnBsdWdpbi5ob3QuZ2V0U2VsZWN0ZWRS''@;'; + put 'put ''YW5nZSgpKSlyZXR1cm4iIi5jb25jYXQodGhpcy5mdWxseVNlbGVjdGVkTWVyZ2VkQ2VsbENsYXNzTmFtZSwiLW11bHRpcGxlIil9fX19LHtrZXk6ImlzTWVyZ2VDZWxsRnVsbHlTZWxlY3RlZCIsdmFsdWU6ZnVuY3Rpb24oaCx2KXt2YXIgeT1bXTtpZighdnx8IWgpcmV0dXJuITE7Zm9yKHZh''@;'; + put 'put ''ciBDPTA7QzxoLnJvd3NwYW47Qys9MSlmb3IodmFyIEk9MDtJPGguY29sc3BhbjtJKz0xKXkucHVzaCh0aGlzLmhvdC5fY3JlYXRlQ2VsbENvb3JkcyhoLnJvdytDLGguY29sK0kpKTtmb3IodmFyIGo9MDtqPHkubGVuZ3RoO2orPTEpe2Zvcih2YXIgdWU9W10sX2U9MDtfZTx2Lmxlbmd0aDtf''@;'; + put 'put ''ZSs9MSl1ZVtfZV09dltfZV0uaW5jbHVkZXMoeVtqXSk7aWYoIXVlLmluY2x1ZGVzKCEwKSlyZXR1cm4hMX1yZXR1cm4hMH19LHtrZXk6ImdldFNlbGVjdGVkTWVyZ2VkQ2VsbENsYXNzTmFtZVRvUmVtb3ZlIix2YWx1ZTpmdW5jdGlvbigpe2Zvcih2YXIgaD1bXSx2PTA7djw9Nzt2Kz0xKWgu''@;'; + put 'put ''cHVzaCgiIi5jb25jYXQodGhpcy5mdWxseVNlbGVjdGVkTWVyZ2VkQ2VsbENsYXNzTmFtZSwiLSIpLmNvbmNhdCh2KSk7cmV0dXJuIGgucHVzaCgiIi5jb25jYXQodGhpcy5mdWxseVNlbGVjdGVkTWVyZ2VkQ2VsbENsYXNzTmFtZSwiLW11bHRpcGxlIikpLGh9fV0pLGR9KCk7Y29uc3QgUmR0''@;'; + put 'put ''PU9kdDtmdW5jdGlvbiBrZ2UoZCl7cmV0dXJuKGtnZT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihnKXtyZXR1cm4gdHlwZW9mIGd9OmZ1bmN0aW9uKGcpe3JldHVybiBnJiYiZnVuY3Rpb24iPT10eXBlb2YgU3lt''@;'; + put 'put ''Ym9sJiZnLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZnIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgZ30pKGQpfWZ1bmN0aW9uIHpJZShkLGcpe3JldHVybiBmdW5jdGlvbiBIZHQoZCl7aWYoQXJyYXkuaXNBcnJheShkKSlyZXR1cm4gZH0oZCl8fGZ1bmN0aW9uIEZkdChkLGcp''@;'; + put 'put ''e3ZhciBoPW51bGw9PWQ/bnVsbDoidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmZFtTeW1ib2wuaXRlcmF0b3JdfHxkWyJAQGl0ZXJhdG9yIl07aWYobnVsbCE9aCl7dmFyIEksaix2PVtdLHk9ITAsQz0hMTt0cnl7Zm9yKGg9aC5jYWxsKGQpOyEoeT0oST1oLm5leHQoKSkuZG9uZSkmJih2''@;'; + put 'put ''LnB1c2goSS52YWx1ZSksIWd8fHYubGVuZ3RoIT09Zyk7eT0hMCk7fWNhdGNoKHVlKXtDPSEwLGo9dWV9ZmluYWxseXt0cnl7IXkmJm51bGwhPWgucmV0dXJuJiZoLnJldHVybigpfWZpbmFsbHl7aWYoQyl0aHJvdyBqfX1yZXR1cm4gdn19KGQsZyl8fFdJZShkLGcpfHxmdW5jdGlvbiBQZHQo''@;'; + put 'put ''KXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgp''@;'; + put 'put ''fWZ1bmN0aW9uIEdJZShkKXtyZXR1cm4gZnVuY3Rpb24gamR0KGQpe2lmKEFycmF5LmlzQXJyYXkoZCkpcmV0dXJuIFNnZShkKX0oZCl8fGZ1bmN0aW9uIFZkdChkKXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmbnVsbCE9ZFtTeW1ib2wuaXRlcmF0b3JdfHxudWxsIT1kWyJAQGl0''@;'; + put 'put ''ZXJhdG9yIl0pcmV0dXJuIEFycmF5LmZyb20oZCl9KGQpfHxXSWUoZCl8fGZ1bmN0aW9uIE5kdCgpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBzcHJlYWQgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBv''@;'; + put 'put ''YmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfWZ1bmN0aW9uIFdJZShkLGcpe2lmKGQpe2lmKCJzdHJpbmciPT10eXBlb2YgZClyZXR1cm4gU2dlKGQsZyk7dmFyIGg9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGQpLnNsaWNlKDgsLTEp''@;'; + put 'put ''O2lmKCJPYmplY3QiPT09aCYmZC5jb25zdHJ1Y3RvciYmKGg9ZC5jb25zdHJ1Y3Rvci5uYW1lKSwiTWFwIj09PWh8fCJTZXQiPT09aClyZXR1cm4gQXJyYXkuZnJvbShkKTtpZigiQXJndW1lbnRzIj09PWh8fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0''@;'; + put 'put ''KGgpKXJldHVybiBTZ2UoZCxnKX19ZnVuY3Rpb24gU2dlKGQsZyl7KG51bGw9PWd8fGc+ZC5sZW5ndGgpJiYoZz1kLmxlbmd0aCk7Zm9yKHZhciBoPTAsdj1uZXcgQXJyYXkoZyk7aDxnO2grKyl2W2hdPWRbaF07cmV0dXJuIHZ9ZnVuY3Rpb24gWUllKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxl''@;'; + put 'put ''bmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19ZnVuY3Rpb24gYVIoKXtyZXR1cm4gYVI9InVuZGVmaW5l''@;'; + put 'put ''ZCIhPXR5cGVvZiBSZWZsZWN0JiZSZWZsZWN0LmdldD9SZWZsZWN0LmdldC5iaW5kKCk6ZnVuY3Rpb24oZyxoLHYpe3ZhciB5PUdkdChnLGgpO2lmKHkpe3ZhciBDPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoeSxoKTtyZXR1cm4gQy5nZXQ/Qy5nZXQuY2FsbChhcmd1bWVudHMu''@;'; + put 'put ''bGVuZ3RoPDM/Zzp2KTpDLnZhbHVlfX0sYVIuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIEdkdChkLGcpe2Zvcig7IU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChkLGcpJiZudWxsIT09KGQ9UXcoZCkpOyk7cmV0dXJuIGR9ZnVuY3Rpb24gTWdlKGQsZyl7cmV0''@;'; + put 'put ''dXJuKE1nZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbih2LHkpe3JldHVybiB2Ll9fcHJvdG9fXz15LHZ9KShkLGcpfWZ1bmN0aW9uIFVkdChkLGcpe2lmKGcmJigib2JqZWN0Ij09PWtnZShnKXx8ImZ1bmN0aW9uIj09dHlwZW9m''@;'; + put 'put ''IGcpKXJldHVybiBnO2lmKHZvaWQgMCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWQiKTtyZXR1cm4gVUllKGQpfWZ1bmN0aW9uIFVJZShkKXtpZih2b2lkIDA9PT1kKXRocm93IG5ldyBSZWZl''@;'; + put 'put ''cmVuY2VFcnJvcigidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkIik7cmV0dXJuIGR9ZnVuY3Rpb24gUXcoZCl7cmV0dXJuKFF3PU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3QuZ2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9u''@;'; + put 'put ''KGgpe3JldHVybiBoLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKGgpfSkoZCl9em8uZ2V0U2luZ2xldG9uKCkucmVnaXN0ZXIoImJlZm9yZU1lcmdlQ2VsbHMiKSx6by5nZXRTaW5nbGV0b24oKS5yZWdpc3RlcigiYWZ0ZXJNZXJnZUNlbGxzIiksem8uZ2V0U2luZ2xldG9uKCku''@;'; + put 'put ''cmVnaXN0ZXIoImJlZm9yZVVubWVyZ2VDZWxscyIpLHpvLmdldFNpbmdsZXRvbigpLnJlZ2lzdGVyKCJhZnRlclVubWVyZ2VDZWxscyIpO3ZhciAkSWUsUHo9Im1lcmdlQ2VsbHMiLFFJZT1uZXcgV2Vha01hcCxKSWU9UHosWGR0PWZ1bmN0aW9uKGQpeyFmdW5jdGlvbiBXZHQoZCxnKXtpZigi''@;'; + put 'put ''ZnVuY3Rpb24iIT10eXBlb2YgZyYmbnVsbCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTtkLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGcmJmcucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6''@;'; + put 'put ''ZCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZyYmTWdlKGQsZyl9KGgsZCk7dmFyIGc9ZnVuY3Rpb24gWWR0KGQpe3ZhciBnPWZ1bmN0aW9uIFFkdCgpe2lmKCJ1bmRlZmluZWQiPT10eXBl''@;'; + put 'put ''b2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0fHxSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBQcm94eSlyZXR1cm4hMDt0cnl7cmV0dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29s''@;'; + put 'put ''ZWFuLFtdLGZ1bmN0aW9uKCl7fSkpLCEwfWNhdGNoKGQpe3JldHVybiExfX0oKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgeSx2PVF3KGQpO2lmKGcpe3ZhciBDPVF3KHRoaXMpLmNvbnN0cnVjdG9yO3k9UmVmbGVjdC5jb25zdHJ1Y3Qodixhcmd1bWVudHMsQyl9ZWxzZSB5PXYuYXBwbHkodGhp''@;'; + put 'put ''cyxhcmd1bWVudHMpO3JldHVybiBVZHQodGhpcyx5KX19KGgpO2Z1bmN0aW9uIGgodil7dmFyIHk7cmV0dXJuIGZ1bmN0aW9uIFpkdChkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSh0aGlz''@;'; + put 'put ''LGgpLHk9Zy5jYWxsKHRoaXMsdiksUUllLnNldChVSWUoeSkse2xhc3REZXNpcmVkQ29vcmRzOm51bGx9KSx5Lm1lcmdlZENlbGxzQ29sbGVjdGlvbj1udWxsLHkuYXV0b2ZpbGxDYWxjdWxhdGlvbnM9bnVsbCx5LnNlbGVjdGlvbkNhbGN1bGF0aW9ucz1udWxsLHl9cmV0dXJuIGZ1bmN0aW9u''@;'; + put 'put ''IHpkdChkLGcsaCl7ZyYmWUllKGQucHJvdG90eXBlLGcpLGgmJllJZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShoLFt7a2V5OiJpc0VuYWJsZWQiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuISF0aGlzLmhvdC5nZXRTZXR0aW5ncygp''@;'; + put 'put ''W1B6XX19LHtrZXk6ImVuYWJsZVBsdWdpbiIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzO3RoaXMuZW5hYmxlZHx8KHRoaXMubWVyZ2VkQ2VsbHNDb2xsZWN0aW9uPW5ldyBfZHQodGhpcyksdGhpcy5hdXRvZmlsbENhbGN1bGF0aW9ucz1uZXcgSWR0KHRoaXMpLHRoaXMuc2VsZWN0aW9u''@;'; + put 'put ''Q2FsY3VsYXRpb25zPW5ldyBSZHQodGhpcyksdGhpcy5hZGRIb29rKCJhZnRlckluaXQiLGZ1bmN0aW9uKCl7cmV0dXJuIHkub25BZnRlckluaXQuYXBwbHkoeSxhcmd1bWVudHMpfSksdGhpcy5hZGRIb29rKCJtb2RpZnlUcmFuc2Zvcm1TdGFydCIsZnVuY3Rpb24oKXtyZXR1cm4geS5vbk1v''@;'; + put 'put ''ZGlmeVRyYW5zZm9ybVN0YXJ0LmFwcGx5KHksYXJndW1lbnRzKX0pLHRoaXMuYWRkSG9vaygiYWZ0ZXJNb2RpZnlUcmFuc2Zvcm1TdGFydCIsZnVuY3Rpb24oKXtyZXR1cm4geS5vbkFmdGVyTW9kaWZ5VHJhbnNmb3JtU3RhcnQuYXBwbHkoeSxhcmd1bWVudHMpfSksdGhpcy5hZGRIb29rKCJt''@;'; + put 'put ''b2RpZnlUcmFuc2Zvcm1FbmQiLGZ1bmN0aW9uKCl7cmV0dXJuIHkub25Nb2RpZnlUcmFuc2Zvcm1FbmQuYXBwbHkoeSxhcmd1bWVudHMpfSksdGhpcy5hZGRIb29rKCJtb2RpZnlHZXRDZWxsQ29vcmRzIixmdW5jdGlvbigpe3JldHVybiB5Lm9uTW9kaWZ5R2V0Q2VsbENvb3Jkcy5hcHBseSh5''@;'; + put 'put ''LGFyZ3VtZW50cyl9KSx0aGlzLmFkZEhvb2soImJlZm9yZVNldFJhbmdlU3RhcnQiLGZ1bmN0aW9uKCl7cmV0dXJuIHkub25CZWZvcmVTZXRSYW5nZVN0YXJ0LmFwcGx5KHksYXJndW1lbnRzKX0pLHRoaXMuYWRkSG9vaygiYmVmb3JlU2V0UmFuZ2VTdGFydE9ubHkiLGZ1bmN0aW9uKCl7cmV0''@;'; + put 'put ''dXJuIHkub25CZWZvcmVTZXRSYW5nZVN0YXJ0LmFwcGx5KHksYXJndW1lbnRzKX0pLHRoaXMuYWRkSG9vaygiYmVmb3JlU2V0UmFuZ2VFbmQiLGZ1bmN0aW9uKCl7cmV0dXJuIHkub25CZWZvcmVTZXRSYW5nZUVuZC5hcHBseSh5LGFyZ3VtZW50cyl9KSx0aGlzLmFkZEhvb2soImFmdGVySXNN''@;'; + put 'put ''dWx0aXBsZVNlbGVjdGlvbiIsZnVuY3Rpb24oKXtyZXR1cm4geS5vbkFmdGVySXNNdWx0aXBsZVNlbGVjdGlvbi5hcHBseSh5LGFyZ3VtZW50cyl9KSx0aGlzLmFkZEhvb2soImFmdGVyUmVuZGVyZXIiLGZ1bmN0aW9uKCl7cmV0dXJuIHkub25BZnRlclJlbmRlcmVyLmFwcGx5KHksYXJndW1l''@;'; + put 'put ''bnRzKX0pLHRoaXMuYWRkSG9vaygiYWZ0ZXJDb250ZXh0TWVudURlZmF1bHRPcHRpb25zIixmdW5jdGlvbigpe3JldHVybiB5LmFkZE1lcmdlQWN0aW9uc1RvQ29udGV4dE1lbnUuYXBwbHkoeSxhcmd1bWVudHMpfSksdGhpcy5hZGRIb29rKCJhZnRlckdldENlbGxNZXRhIixmdW5jdGlvbigp''@;'; + put 'put ''e3JldHVybiB5Lm9uQWZ0ZXJHZXRDZWxsTWV0YS5hcHBseSh5LGFyZ3VtZW50cyl9KSx0aGlzLmFkZEhvb2soImFmdGVyVmlld3BvcnRSb3dDYWxjdWxhdG9yT3ZlcnJpZGUiLGZ1bmN0aW9uKCl7cmV0dXJuIHkub25BZnRlclZpZXdwb3J0Um93Q2FsY3VsYXRvck92ZXJyaWRlLmFwcGx5KHks''@;'; + put 'put ''YXJndW1lbnRzKX0pLHRoaXMuYWRkSG9vaygiYWZ0ZXJWaWV3cG9ydENvbHVtbkNhbGN1bGF0b3JPdmVycmlkZSIsZnVuY3Rpb24oKXtyZXR1cm4geS5vbkFmdGVyVmlld3BvcnRDb2x1bW5DYWxjdWxhdG9yT3ZlcnJpZGUuYXBwbHkoeSxhcmd1bWVudHMpfSksdGhpcy5hZGRIb29rKCJtb2Rp''@;'; + put 'put ''ZnlBdXRvZmlsbFJhbmdlIixmdW5jdGlvbigpe3JldHVybiB5Lm9uTW9kaWZ5QXV0b2ZpbGxSYW5nZS5hcHBseSh5LGFyZ3VtZW50cyl9KSx0aGlzLmFkZEhvb2soImFmdGVyQ3JlYXRlQ29sIixmdW5jdGlvbigpe3JldHVybiB5Lm9uQWZ0ZXJDcmVhdGVDb2wuYXBwbHkoeSxhcmd1bWVudHMp''@;'; + put 'put ''fSksdGhpcy5hZGRIb29rKCJhZnRlclJlbW92ZUNvbCIsZnVuY3Rpb24oKXtyZXR1cm4geS5vbkFmdGVyUmVtb3ZlQ29sLmFwcGx5KHksYXJndW1lbnRzKX0pLHRoaXMuYWRkSG9vaygiYWZ0ZXJDcmVhdGVSb3ciLGZ1bmN0aW9uKCl7cmV0dXJuIHkub25BZnRlckNyZWF0ZVJvdy5hcHBseSh5''@;'; + put 'put ''LGFyZ3VtZW50cyl9KSx0aGlzLmFkZEhvb2soImFmdGVyUmVtb3ZlUm93IixmdW5jdGlvbigpe3JldHVybiB5Lm9uQWZ0ZXJSZW1vdmVSb3cuYXBwbHkoeSxhcmd1bWVudHMpfSksdGhpcy5hZGRIb29rKCJhZnRlckNoYW5nZSIsZnVuY3Rpb24oKXtyZXR1cm4geS5vbkFmdGVyQ2hhbmdlLmFw''@;'; + put 'put ''cGx5KHksYXJndW1lbnRzKX0pLHRoaXMuYWRkSG9vaygiYmVmb3JlRHJhd0JvcmRlcnMiLGZ1bmN0aW9uKCl7cmV0dXJuIHkub25CZWZvcmVEcmF3QXJlYUJvcmRlcnMuYXBwbHkoeSxhcmd1bWVudHMpfSksdGhpcy5hZGRIb29rKCJhZnRlckRyYXdTZWxlY3Rpb24iLGZ1bmN0aW9uKCl7cmV0''@;'; + put 'put ''dXJuIHkub25BZnRlckRyYXdTZWxlY3Rpb24uYXBwbHkoeSxhcmd1bWVudHMpfSksdGhpcy5hZGRIb29rKCJiZWZvcmVSZW1vdmVDZWxsQ2xhc3NOYW1lcyIsZnVuY3Rpb24oKXtyZXR1cm4geS5vbkJlZm9yZVJlbW92ZUNlbGxDbGFzc05hbWVzLmFwcGx5KHksYXJndW1lbnRzKX0pLHRoaXMu''@;'; + put 'put ''YWRkSG9vaygiYmVmb3JlVW5kb1N0YWNrQ2hhbmdlIixmdW5jdGlvbihDLEkpe2lmKCJNZXJnZUNlbGxzIj09PUkpcmV0dXJuITF9KSx0aGlzLnJlZ2lzdGVyU2hvcnRjdXRzKCksYVIoUXcoaC5wcm90b3R5cGUpLCJlbmFibGVQbHVnaW4iLHRoaXMpLmNhbGwodGhpcykpfX0se2tleToiZGlz''@;'; + put 'put ''YWJsZVBsdWdpbiIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmNsZWFyQ29sbGVjdGlvbnMoKSx0aGlzLnVucmVnaXN0ZXJTaG9ydGN1dHMoKSx0aGlzLmhvdC5yZW5kZXIoKSxhUihRdyhoLnByb3RvdHlwZSksImRpc2FibGVQbHVnaW4iLHRoaXMpLmNhbGwodGhpcyl9fSx7a2V5OiJ1cGRhdGVQ''@;'; + put 'put ''bHVnaW4iLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcy5ob3QuZ2V0U2V0dGluZ3MoKVtQel07dGhpcy5kaXNhYmxlUGx1Z2luKCksdGhpcy5lbmFibGVQbHVnaW4oKSx0aGlzLmdlbmVyYXRlRnJvbVNldHRpbmdzKHkpLGFSKFF3KGgucHJvdG90eXBlKSwidXBkYXRlUGx1Z2luIix0aGlz''@;'; + put 'put ''KS5jYWxsKHRoaXMpfX0se2tleToidmFsaWRhdGVTZXR0aW5nIix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz0hMDtyZXR1cm4hIXkmJihIZy5jb250YWluc05lZ2F0aXZlVmFsdWVzKHkpPyhsMShIZy5ORUdBVElWRV9WQUxVRVNfV0FSTklORyh5KSksQz0hMSk6SGcuaXNPdXRPZkJvdW5kcyh5''@;'; + put 'put ''LHRoaXMuaG90LmNvdW50Um93cygpLHRoaXMuaG90LmNvdW50Q29scygpKT8obDEoSGcuSVNfT1VUX09GX0JPVU5EU19XQVJOSU5HKHkpKSxDPSExKTpIZy5pc1NpbmdsZUNlbGwoeSk/KGwxKEhnLklTX1NJTkdMRV9DRUxMKHkpKSxDPSExKTpIZy5jb250YWluc1plcm9TcGFuKHkpJiYobDEo''@;'; + put 'put ''SGcuWkVST19TUEFOX1dBUk5JTkcoeSkpLEM9ITEpLEMpfX0se2tleToiZ2VuZXJhdGVGcm9tU2V0dGluZ3MiLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPXRoaXM7aWYoQXJyYXkuaXNBcnJheSh5KSl7dmFyIEksaj1bXTtVcih5LGZ1bmN0aW9uKF9lKXtpZihDLnZhbGlkYXRlU2V0dGluZyhf''@;'; + put 'put ''ZSkpe3ZhciBCZT1DLmhvdC5fY3JlYXRlQ2VsbENvb3JkcyhfZS5yb3csX2UuY29sKSxOZT1DLmhvdC5fY3JlYXRlQ2VsbENvb3JkcyhfZS5yb3crX2Uucm93c3Bhbi0xLF9lLmNvbCtfZS5jb2xzcGFuLTEpLEtlPUMuaG90Ll9jcmVhdGVDZWxsUmFuZ2UoQmUsQmUsTmUpO2oucHVzaChDLm1l''@;'; + put 'put ''cmdlUmFuZ2UoS2UsITAsITApKX19KSxqPWouZmlsdGVyKGZ1bmN0aW9uKF9lKXtyZXR1cm4hMCE9PV9lfSk7dmFyIHVlPXRoaXMuZ2V0QnVsa0NvbGxlY3Rpb25EYXRhKGopOyhJPXRoaXMuaG90KS5wb3B1bGF0ZUZyb21BcnJheS5hcHBseShJLEdJZSh1ZSkpfX19LHtrZXk6ImdldEJ1bGtD''@;'; + put 'put ''b2xsZWN0aW9uRGF0YSIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEMsST10aGlzLmdldEJ1bGtDb2xsZWN0aW9uRGF0YVJhbmdlKHkpLHVlPShDPXRoaXMuaG90KS5nZXREYXRhLmFwcGx5KEMsR0llKEkpKS5zcGxpY2UoMCk7cmV0dXJuIFVyKHksZnVuY3Rpb24oX2Upe3ZhciBCZT16SWUoX2Us''@;'; + put 'put ''MyksTmU9QmVbMF0sS2U9QmVbMV07VXIoQmVbMl0sZnVuY3Rpb24oT3QsJHQpe1VyKE90LGZ1bmN0aW9uKGZuLExuKXt1ZVtOZS1JWzBdKyR0XVtLZS1JWzFdK0xuXT1mbn0pfSl9KSxbSVswXSxJWzFdLHVlXX19LHtrZXk6ImdldEJ1bGtDb2xsZWN0aW9uRGF0YVJhbmdlIix2YWx1ZTpmdW5j''@;'; + put 'put ''dGlvbih5KXt2YXIgQz1bMCwwXSxJPVswLDBdLGo9bnVsbCx1ZT1udWxsLF9lPW51bGw7cmV0dXJuIFVyKHksZnVuY3Rpb24oQmUpe2o9QmVbMF0sdWU9QmVbMV0sX2U9QmVbMl0sQ1swXT1NYXRoLm1pbihqLENbMF0pLENbMV09TWF0aC5taW4odWUsQ1sxXSksSVswXT1NYXRoLm1heChqK19l''@;'; + put 'put ''Lmxlbmd0aC0xLElbMF0pLElbMV09TWF0aC5tYXgodWUrX2VbMF0ubGVuZ3RoLTEsSVsxXSl9KSxbXS5jb25jYXQoQyxJKX19LHtrZXk6ImNsZWFyQ29sbGVjdGlvbnMiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5tZXJnZWRDZWxsc0NvbGxlY3Rpb24uY2xlYXIoKX19LHtrZXk6ImNhbk1lcmdl''@;'; + put 'put ''UmFuZ2UiLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdJiZhcmd1bWVudHNbMV07cmV0dXJuISFDfHx0aGlzLnZhbGlkYXRlU2V0dGluZyh5KX19LHtrZXk6InRvZ2dsZU1lcmdlT25TZWxlY3Rpb24iLHZhbHVlOmZ1bmN0''@;'; + put 'put ''aW9uKCl7dmFyIHk9dGhpcy5ob3QuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKTtpZih5KXt5LnNldERpcmVjdGlvbih0aGlzLmhvdC5pc1J0bCgpPyJORS1TVyI6Ik5XLVNFIik7dmFyIEM9eS5mcm9tLEk9eS50bzt0aGlzLnRvZ2dsZU1lcmdlKHkpLHRoaXMuaG90LnNlbGVjdENlbGwoQy5yb3cs''@;'; + put 'put ''Qy5jb2wsSS5yb3csSS5jb2wsITEpfX19LHtrZXk6Im1lcmdlU2VsZWN0aW9uIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp0aGlzLmhvdC5nZXRTZWxlY3RlZFJhbmdlTGFzdCgpO2lmKHkpe3ku''@;'; + put 'put ''c2V0RGlyZWN0aW9uKHRoaXMuaG90LmlzUnRsKCk/Ik5FLVNXIjoiTlctU0UiKTt2YXIgQz15LmZyb20sST15LnRvO3RoaXMudW5tZXJnZVJhbmdlKHksITApLHRoaXMubWVyZ2VSYW5nZSh5KSx0aGlzLmhvdC5zZWxlY3RDZWxsKEMucm93LEMuY29sLEkucm93LEkuY29sLCExKX19fSx7a2V5''@;'; + put 'put ''OiJ1bm1lcmdlU2VsZWN0aW9uIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp0aGlzLmhvdC5nZXRTZWxlY3RlZFJhbmdlTGFzdCgpO2lmKHkpe3ZhciBDPXkuZnJvbSxJPXkudG87dGhpcy51bm1l''@;'; + put 'put ''cmdlUmFuZ2UoeSwhMCksdGhpcy5ob3Quc2VsZWN0Q2VsbChDLnJvdyxDLmNvbCxJLnJvdyxJLmNvbCwhMSl9fX0se2tleToibWVyZ2VSYW5nZSIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEM9dGhpcyxJPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdJiZhcmd1bWVu''@;'; + put 'put ''dHNbMV0saj1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXSYmYXJndW1lbnRzWzJdLHVlPXkuZ2V0VG9wU3RhcnRDb3JuZXIoKSxfZT15LmdldEJvdHRvbUVuZENvcm5lcigpLEJlPXtyb3c6dWUucm93LGNvbDp1ZS5jb2wscm93c3BhbjpfZS5yb3ctdWUucm93KzEs''@;'; + put 'put ''Y29sc3BhbjpfZS5jb2wtdWUuY29sKzF9LE5lPVtdLEtlPW51bGw7aWYoIXRoaXMuY2FuTWVyZ2VSYW5nZShCZSxJKSlyZXR1cm4hMTt0aGlzLmhvdC5ydW5Ib29rcygiYmVmb3JlTWVyZ2VDZWxscyIseSxJKSxpYSgwLEJlLnJvd3NwYW4tMSxmdW5jdGlvbihPdCl7aWEoMCxCZS5jb2xzcGFu''@;'; + put 'put ''LTEsZnVuY3Rpb24oJHQpe3ZhciBmbj1udWxsO05lW090XXx8KE5lW090XT1bXSksMD09PU90JiYwPT09JHQ/Zm49Qy5ob3QuZ2V0RGF0YUF0Q2VsbChCZS5yb3csQmUuY29sKTpDLmhvdC5zZXRDZWxsTWV0YShCZS5yb3crT3QsQmUuY29sKyR0LCJoaWRkZW4iLCEwKSxOZVtPdF1bJHRdPWZu''@;'; + put 'put ''fSl9KSx0aGlzLmhvdC5zZXRDZWxsTWV0YShCZS5yb3csQmUuY29sLCJzcGFubmVkIiwhMCk7dmFyIGR0PXRoaXMubWVyZ2VkQ2VsbHNDb2xsZWN0aW9uLmFkZChCZSk7cmV0dXJuIWR0fHwoaj9LZT1bQmUucm93LEJlLmNvbCxOZV06dGhpcy5ob3QucG9wdWxhdGVGcm9tQXJyYXkoQmUucm93''@;'; + put 'put ''LEJlLmNvbCxOZSx2b2lkIDAsdm9pZCAwLHRoaXMucGx1Z2luTmFtZSksdGhpcy5ob3QucnVuSG9va3MoImFmdGVyTWVyZ2VDZWxscyIseSxCZSxJKSxLZSl9fSx7a2V5OiJ1bm1lcmdlUmFuZ2UiLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPXRoaXMsST1hcmd1bWVudHMubGVuZ3RoPjEmJnZv''@;'; + put 'put ''aWQgMCE9PWFyZ3VtZW50c1sxXSYmYXJndW1lbnRzWzFdLGo9dGhpcy5tZXJnZWRDZWxsc0NvbGxlY3Rpb24uZ2V0V2l0aGluUmFuZ2UoeSk7IWp8fCh0aGlzLmhvdC5ydW5Ib29rcygiYmVmb3JlVW5tZXJnZUNlbGxzIix5LEkpLFVyKGosZnVuY3Rpb24odWUpe0MubWVyZ2VkQ2VsbHNDb2xs''@;'; + put 'put ''ZWN0aW9uLnJlbW92ZSh1ZS5yb3csdWUuY29sKSxpYSgwLHVlLnJvd3NwYW4tMSxmdW5jdGlvbihfZSl7aWEoMCx1ZS5jb2xzcGFuLTEsZnVuY3Rpb24oQmUpe0MuaG90LnJlbW92ZUNlbGxNZXRhKHVlLnJvdytfZSx1ZS5jb2wrQmUsImhpZGRlbiIpfSl9KSxDLmhvdC5yZW1vdmVDZWxsTWV0''@;'; + put 'put ''YSh1ZS5yb3csdWUuY29sLCJzcGFubmVkIil9KSx0aGlzLmhvdC5ydW5Ib29rcygiYWZ0ZXJVbm1lcmdlQ2VsbHMiLHksSSksdGhpcy5ob3QucmVuZGVyKCkpfX0se2tleToidG9nZ2xlTWVyZ2UiLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPXRoaXMubWVyZ2VkQ2VsbHNDb2xsZWN0aW9uLmdl''@;'; + put 'put ''dCh5LmZyb20ucm93LHkuZnJvbS5jb2wpO0Mucm93PT09eS5mcm9tLnJvdyYmQy5jb2w9PT15LmZyb20uY29sJiZDLnJvdytDLnJvd3NwYW4tMT09PXkudG8ucm93JiZDLmNvbCtDLmNvbHNwYW4tMT09PXkudG8uY29sP3RoaXMudW5tZXJnZVJhbmdlKHkpOnRoaXMubWVyZ2VTZWxlY3Rpb24o''@;'; + put 'put ''eSl9fSx7a2V5OiJtZXJnZSIsdmFsdWU6ZnVuY3Rpb24oeSxDLEksail7dmFyIHVlPXRoaXMuaG90Ll9jcmVhdGVDZWxsQ29vcmRzKHksQyksX2U9dGhpcy5ob3QuX2NyZWF0ZUNlbGxDb29yZHMoSSxqKTt0aGlzLm1lcmdlUmFuZ2UodGhpcy5ob3QuX2NyZWF0ZUNlbGxSYW5nZSh1ZSx1ZSxf''@;'; + put 'put ''ZSkpfX0se2tleToidW5tZXJnZSIsdmFsdWU6ZnVuY3Rpb24oeSxDLEksail7dmFyIHVlPXRoaXMuaG90Ll9jcmVhdGVDZWxsQ29vcmRzKHksQyksX2U9dGhpcy5ob3QuX2NyZWF0ZUNlbGxDb29yZHMoSSxqKTt0aGlzLnVubWVyZ2VSYW5nZSh0aGlzLmhvdC5fY3JlYXRlQ2VsbFJhbmdlKHVl''@;'; + put 'put ''LHVlLF9lKSl9fSx7a2V5OiJvbkFmdGVySW5pdCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmdlbmVyYXRlRnJvbVNldHRpbmdzKHRoaXMuaG90LmdldFNldHRpbmdzKClbUHpdKSx0aGlzLmhvdC5yZW5kZXIoKX19LHtrZXk6InJlZ2lzdGVyU2hvcnRjdXRzIix2YWx1ZTpmdW5jdGlvbigpe3Zh''@;'; + put 'put ''ciB5PXRoaXM7dGhpcy5ob3QuZ2V0U2hvcnRjdXRNYW5hZ2VyKCkuZ2V0Q29udGV4dCgiZ3JpZCIpLmFkZFNob3J0Y3V0KHtrZXlzOltbIkNvbnRyb2wiLCJtIl1dLGNhbGxiYWNrOmZ1bmN0aW9uKCl7eS50b2dnbGVNZXJnZSh5LmhvdC5nZXRTZWxlY3RlZFJhbmdlTGFzdCgpKSx5LmhvdC5y''@;'; + put 'put ''ZW5kZXIoKX0scnVuT25seUlmOmZ1bmN0aW9uKHVlKXtyZXR1cm4hdWUuYWx0S2V5fSxncm91cDpKSWV9KX19LHtrZXk6InVucmVnaXN0ZXJTaG9ydGN1dHMiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5ob3QuZ2V0U2hvcnRjdXRNYW5hZ2VyKCkuZ2V0Q29udGV4dCgiZ3JpZCIpLnJlbW92ZVNo''@;'; + put 'put ''b3J0Y3V0c0J5R3JvdXAoSkllKX19LHtrZXk6Im9uQWZ0ZXJJc011bHRpcGxlU2VsZWN0aW9uIix2YWx1ZTpmdW5jdGlvbih5KXtpZih5KWZvcih2YXIgQz10aGlzLm1lcmdlZENlbGxzQ29sbGVjdGlvbi5tZXJnZWRDZWxscyxJPXRoaXMuaG90LmdldFNlbGVjdGVkUmFuZ2VMYXN0KCksaj0w''@;'; + put 'put ''O2o8Qy5sZW5ndGg7ais9MSlpZihJLmZyb20ucm93PT09Q1tqXS5yb3cmJkkuZnJvbS5jb2w9PT1DW2pdLmNvbCYmSS50by5yb3c9PT1DW2pdLnJvdytDW2pdLnJvd3NwYW4tMSYmSS50by5jb2w9PT1DW2pdLmNvbCtDW2pdLmNvbHNwYW4tMSlyZXR1cm4hMTtyZXR1cm4geX19LHtrZXk6Im9u''@;'; + put 'put ''TW9kaWZ5VHJhbnNmb3JtU3RhcnQiLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciB1ZSxDPVFJZS5nZXQodGhpcyksST10aGlzLmhvdC5nZXRTZWxlY3RlZFJhbmdlTGFzdCgpLGo9e3Jvdzp5LnJvdyxjb2w6eS5jb2x9LF9lPXRoaXMuaG90Ll9jcmVhdGVDZWxsQ29vcmRzKEkuaGlnaGxpZ2h0LnJv''@;'; + put 'put ''dyxJLmhpZ2hsaWdodC5jb2wpLEJlPXRoaXMubWVyZ2VkQ2VsbHNDb2xsZWN0aW9uLmdldChfZS5yb3csX2UuY29sKTtpZihDLmxhc3REZXNpcmVkQ29vcmRzfHwoQy5sYXN0RGVzaXJlZENvb3Jkcz10aGlzLmhvdC5fY3JlYXRlQ2VsbENvb3JkcyhudWxsLG51bGwpKSxCZSl7dmFyIE5lPXRo''@;'; + put 'put ''aXMuaG90Ll9jcmVhdGVDZWxsQ29vcmRzKEJlLnJvdyxCZS5jb2wpLEtlPXRoaXMuaG90Ll9jcmVhdGVDZWxsQ29vcmRzKEJlLnJvdytCZS5yb3dzcGFuLTEsQmUuY29sK0JlLmNvbHNwYW4tMSk7dGhpcy5ob3QuX2NyZWF0ZUNlbGxSYW5nZShOZSxOZSxLZSkuaW5jbHVkZXMoQy5sYXN0RGVz''@;'; + put 'put ''aXJlZENvb3Jkcyl8fChDLmxhc3REZXNpcmVkQ29vcmRzPXRoaXMuaG90Ll9jcmVhdGVDZWxsQ29vcmRzKG51bGwsbnVsbCkpLGoucm93PUMubGFzdERlc2lyZWRDb29yZHMucm93P0MubGFzdERlc2lyZWRDb29yZHMucm93LV9lLnJvdzpqLnJvdyxqLmNvbD1DLmxhc3REZXNpcmVkQ29vcmRz''@;'; + put 'put ''LmNvbD9DLmxhc3REZXNpcmVkQ29vcmRzLmNvbC1fZS5jb2w6ai5jb2wseS5yb3c+MD9qLnJvdz1CZS5yb3crQmUucm93c3Bhbi0xLV9lLnJvdyt5LnJvdzp5LnJvdzwwJiYoai5yb3c9X2Uucm93LUJlLnJvdyt5LnJvdykseS5jb2w+MD9qLmNvbD1CZS5jb2wrQmUuY29sc3Bhbi0xLV9lLmNv''@;'; + put 'put ''bCt5LmNvbDp5LmNvbDwwJiYoai5jb2w9X2UuY29sLUJlLmNvbCt5LmNvbCl9dWU9dGhpcy5ob3QuX2NyZWF0ZUNlbGxDb29yZHMoSS5oaWdobGlnaHQucm93K2oucm93LEkuaGlnaGxpZ2h0LmNvbCtqLmNvbCk7dmFyIE90PXRoaXMubWVyZ2VkQ2VsbHNDb2xsZWN0aW9uLmdldCh1ZS5yb3cs''@;'; + put 'put ''dWUuY29sKTtpZihPdCl7dmFyICR0PXRoaXMubWVyZ2VkQ2VsbHNDb2xsZWN0aW9uLmdldEZpcnN0UmVuZGVyYWJsZUNvb3JkcyhPdC5yb3csT3QuY29sKTtDLmxhc3REZXNpcmVkQ29vcmRzPXVlLGo9e3JvdzokdC5yb3ctX2Uucm93LGNvbDokdC5jb2wtX2UuY29sfX0wIT09ai5yb3cmJih5''@;'; + put 'put ''LnJvdz1qLnJvdyksMCE9PWouY29sJiYoeS5jb2w9ai5jb2wpfX0se2tleToib25Nb2RpZnlUcmFuc2Zvcm1FbmQiLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPXRoaXMsST10aGlzLmhvdC5nZXRTZWxlY3RlZFJhbmdlTGFzdCgpLGo9YTMoeSksdWU9dGhpcy5zZWxlY3Rpb25DYWxjdWxhdGlv''@;'; + put 'put ''bnMuZ2V0VXBkYXRlZFNlbGVjdGlvblJhbmdlKEkseSksX2U9YTMoaiksQmU9dGhpcy5tZXJnZWRDZWxsc0NvbGxlY3Rpb24uZ2V0V2l0aGluUmFuZ2UodWUsITApO2Rve19lPWEzKGopLHRoaXMuc2VsZWN0aW9uQ2FsY3VsYXRpb25zLmdldFVwZGF0ZWRTZWxlY3Rpb25SYW5nZShJLGopLFVy''@;'; + put 'put ''KEJlLGZ1bmN0aW9uKE5lKXtDLnNlbGVjdGlvbkNhbGN1bGF0aW9ucy5zbmFwRGVsdGEoaixJLE5lKX0pfXdoaWxlKGoucm93IT09X2Uucm93fHxqLmNvbCE9PV9lLmNvbCk7eS5yb3c9ai5yb3cseS5jb2w9ai5jb2x9fSx7a2V5OiJvbk1vZGlmeUdldENlbGxDb29yZHMiLHZhbHVlOmZ1bmN0''@;'; + put 'put ''aW9uKHksQyl7aWYoISh5PDB8fEM8MCkpe3ZhciBJPXRoaXMubWVyZ2VkQ2VsbHNDb2xsZWN0aW9uLmdldCh5LEMpO2lmKEkpe3ZhciBqPUkucm93LHVlPUkuY29sO3JldHVybltqLHVlLGorSS5yb3dzcGFuLTEsdWUrSS5jb2xzcGFuLTFdfX19fSx7a2V5OiJhZGRNZXJnZUFjdGlvbnNUb0Nv''@;'; + put 'put ''bnRleHRNZW51Iix2YWx1ZTpmdW5jdGlvbih5KXt5Lml0ZW1zLnB1c2goe25hbWU6Ii0tLS0tLS0tLSJ9LGZ1bmN0aW9uIEJkdChkKXtyZXR1cm57a2V5OiJtZXJnZUNlbGxzIixuYW1lOmZ1bmN0aW9uKCl7dmFyIGg9dGhpcy5nZXRTZWxlY3RlZExhc3QoKTtpZihoKXt2YXIgdj1kLm1lcmdl''@;'; + put 'put ''ZENlbGxzQ29sbGVjdGlvbi5nZXQoaFswXSxoWzFdKTtpZih2LnJvdz09PWhbMF0mJnYuY29sPT09aFsxXSYmdi5yb3crdi5yb3dzcGFuLTE9PT1oWzJdJiZ2LmNvbCt2LmNvbHNwYW4tMT09PWhbM10pcmV0dXJuIHRoaXMuZ2V0VHJhbnNsYXRlZFBocmFzZShONGUpfXJldHVybiB0aGlzLmdl''@;'; + put 'put ''dFRyYW5zbGF0ZWRQaHJhc2UoSDRlKX0sY2FsbGJhY2s6ZnVuY3Rpb24oKXtkLnRvZ2dsZU1lcmdlT25TZWxlY3Rpb24oKX0sZGlzYWJsZWQ6ZnVuY3Rpb24oKXt2YXIgaD10aGlzLmdldFNlbGVjdGVkTGFzdCgpO3JldHVybiFofHxIZy5pc1NpbmdsZUNlbGwoe3JvdzpoWzBdLGNvbDpoWzFd''@;'; + put 'put ''LHJvd3NwYW46aFsyXS1oWzBdKzEsY29sc3BhbjpoWzNdLWhbMV0rMX0pfHx0aGlzLnNlbGVjdGlvbi5pc1NlbGVjdGVkQnlDb3JuZXIoKX0saGlkZGVuOiExfX0odGhpcykpfX0se2tleToib25BZnRlclJlbmRlcmVyIix2YWx1ZTpmdW5jdGlvbih5LEMsSSl7dmFyIGo9dGhpcy5tZXJnZWRD''@;'; + put 'put ''ZWxsc0NvbGxlY3Rpb24uZ2V0KEMsSSksdWU9eGwoaik/YTMoaik6dm9pZCAwO2lmKHhsKHVlKSl7dmFyIF9lPXRoaXMuaG90LEJlPV9lLnJvd0luZGV4TWFwcGVyLE5lPV9lLmNvbHVtbkluZGV4TWFwcGVyLExuPXpJZSh0aGlzLnRyYW5zbGF0ZU1lcmdlZENlbGxUb1JlbmRlcmFibGUodWUu''@;'; + put 'put ''cm93LHVlLnJvd3NwYW4sdWUuY29sLHVlLmNvbHNwYW4pLDIpLG1yPUxuWzFdLFFyPUxuWzBdLUJlLmdldFJlbmRlcmFibGVGcm9tVmlzdWFsSW5kZXgoQykrMSx5aT1tci1OZS5nZXRSZW5kZXJhYmxlRnJvbVZpc3VhbEluZGV4KEkpKzE7dWUucm93PUJlLmdldE5lYXJlc3ROb3RIaWRkZW5J''@;'; + put 'put ''bmRleCh1ZS5yb3csMSksdWUuY29sPU5lLmdldE5lYXJlc3ROb3RIaWRkZW5JbmRleCh1ZS5jb2wsMSksdWUucm93c3Bhbj1NYXRoLm1pbih1ZS5yb3dzcGFuLFFyKSx1ZS5jb2xzcGFuPU1hdGgubWluKHVlLmNvbHNwYW4seWkpfV9nZSh5LHVlLEMsSSl9fSx7a2V5OiJvbkJlZm9yZVNldFJh''@;'; + put 'put ''bmdlU3RhcnQiLHZhbHVlOmZ1bmN0aW9uKHkpe2lmKHRoaXMubWVyZ2VkQ2VsbHNDb2xsZWN0aW9uLmlzRmlyc3RSZW5kZXJhYmxlTWVyZ2VkQ2VsbCh5LnJvdyx5LmNvbCkpe3ZhciBDPXRoaXMubWVyZ2VkQ2VsbHNDb2xsZWN0aW9uLmdldCh5LnJvdyx5LmNvbCksST1bQy5yb3csQy5jb2xd''@;'; + put 'put ''O3kucm93PUlbMF0seS5jb2w9SVsxXX19fSx7a2V5OiJvbkJlZm9yZVNldFJhbmdlRW5kIix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz10aGlzLmhvdC5nZXRTZWxlY3RlZFJhbmdlTGFzdCgpO0MuaGlnaGxpZ2h0PXRoaXMuaG90Ll9jcmVhdGVDZWxsQ29vcmRzKEMuaGlnaGxpZ2h0LnJvdyxD''@;'; + put 'put ''LmhpZ2hsaWdodC5jb2wpLEMudG89eTt2YXIgST0hMTtpZighdGhpcy5ob3Quc2VsZWN0aW9uLmlzU2VsZWN0ZWRCeUNvbHVtbkhlYWRlcigpJiYhdGhpcy5ob3Quc2VsZWN0aW9uLmlzU2VsZWN0ZWRCeVJvd0hlYWRlcigpKWRve0k9ITE7Zm9yKHZhciBqPTA7ajx0aGlzLm1lcmdlZENlbGxz''@;'; + put 'put ''Q29sbGVjdGlvbi5tZXJnZWRDZWxscy5sZW5ndGg7ais9MSl7dmFyIF9lPXRoaXMubWVyZ2VkQ2VsbHNDb2xsZWN0aW9uLm1lcmdlZENlbGxzW2pdLmdldFJhbmdlKCk7Qy5leHBhbmRCeVJhbmdlKF9lKSYmKHkucm93PUMudG8ucm93LHkuY29sPUMudG8uY29sLEk9ITApfX13aGlsZShJKX19''@;'; + put 'put ''LHtrZXk6Im9uQWZ0ZXJHZXRDZWxsTWV0YSIsdmFsdWU6ZnVuY3Rpb24oeSxDLEkpe3ZhciBqPXRoaXMubWVyZ2VkQ2VsbHNDb2xsZWN0aW9uLmdldCh5LEMpO2omJihqLnJvdyE9PXl8fGouY29sIT09Qz9JLmNvcHlhYmxlPSExOihJLnJvd3NwYW49ai5yb3dzcGFuLEkuY29sc3Bhbj1qLmNv''@;'; + put 'put ''bHNwYW4pKX19LHtrZXk6Im9uQWZ0ZXJWaWV3cG9ydFJvd0NhbGN1bGF0b3JPdmVycmlkZSIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEM9dGhpcy5ob3QuY291bnRDb2xzKCk7dGhpcy5tb2RpZnlWaWV3cG9ydFJvd1N0YXJ0KHksQyksdGhpcy5tb2RpZnlWaWV3cG9ydFJvd0VuZCh5LEMpfX0s''@;'; + put 'put ''e2tleToibW9kaWZ5Vmlld3BvcnRSb3dTdGFydCIsdmFsdWU6ZnVuY3Rpb24oeSxDKXtmb3IodmFyIEk9dGhpcy5ob3Qucm93SW5kZXhNYXBwZXIsaj1JLmdldFZpc3VhbEZyb21SZW5kZXJhYmxlSW5kZXgoeS5zdGFydFJvdyksdWU9MDt1ZTxDO3VlKz0xKXt2YXIgX2U9dGhpcy5tZXJnZWRD''@;'; + put 'put ''ZWxsc0NvbGxlY3Rpb24uZ2V0KGosdWUpO2lmKHhsKF9lKSl7dmFyIEJlPUkuZ2V0UmVuZGVyYWJsZUZyb21WaXN1YWxJbmRleChJLmdldE5lYXJlc3ROb3RIaWRkZW5JbmRleChfZS5yb3csMSkpO2lmKEJlPHkuc3RhcnRSb3cpcmV0dXJuIHkuc3RhcnRSb3c9QmUsdm9pZCB0aGlzLm1vZGlm''@;'; + put 'put ''eVZpZXdwb3J0Um93U3RhcnQoeSxDKX19fX0se2tleToibW9kaWZ5Vmlld3BvcnRSb3dFbmQiLHZhbHVlOmZ1bmN0aW9uKHksQyl7Zm9yKHZhciBJPXRoaXMuaG90LnJvd0luZGV4TWFwcGVyLGo9SS5nZXRWaXN1YWxGcm9tUmVuZGVyYWJsZUluZGV4KHkuZW5kUm93KSx1ZT0wO3VlPEM7dWUr''@;'; + put 'put ''PTEpe3ZhciBfZT10aGlzLm1lcmdlZENlbGxzQ29sbGVjdGlvbi5nZXQoaix1ZSk7aWYoeGwoX2UpKXt2YXIgTmU9SS5nZXRSZW5kZXJhYmxlRnJvbVZpc3VhbEluZGV4KEkuZ2V0TmVhcmVzdE5vdEhpZGRlbkluZGV4KF9lLnJvdytfZS5yb3dzcGFuLTEsLTEpKTtpZihOZT55LmVuZFJvdyly''@;'; + put 'put ''ZXR1cm4geS5lbmRSb3c9TmUsdm9pZCB0aGlzLm1vZGlmeVZpZXdwb3J0Um93RW5kKHksQyl9fX19LHtrZXk6Im9uQWZ0ZXJWaWV3cG9ydENvbHVtbkNhbGN1bGF0b3JPdmVycmlkZSIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEM9dGhpcy5ob3QuY291bnRSb3dzKCk7dGhpcy5tb2RpZnlWaWV3''@;'; + put 'put ''cG9ydENvbHVtblN0YXJ0KHksQyksdGhpcy5tb2RpZnlWaWV3cG9ydENvbHVtbkVuZCh5LEMpfX0se2tleToibW9kaWZ5Vmlld3BvcnRDb2x1bW5TdGFydCIsdmFsdWU6ZnVuY3Rpb24oeSxDKXtmb3IodmFyIEk9dGhpcy5ob3QuY29sdW1uSW5kZXhNYXBwZXIsaj1JLmdldFZpc3VhbEZyb21S''@;'; + put 'put ''ZW5kZXJhYmxlSW5kZXgoeS5zdGFydENvbHVtbiksdWU9MDt1ZTxDO3VlKz0xKXt2YXIgX2U9dGhpcy5tZXJnZWRDZWxsc0NvbGxlY3Rpb24uZ2V0KHVlLGopO2lmKHhsKF9lKSl7dmFyIEJlPUkuZ2V0UmVuZGVyYWJsZUZyb21WaXN1YWxJbmRleChJLmdldE5lYXJlc3ROb3RIaWRkZW5JbmRl''@;'; + put 'put ''eChfZS5jb2wsMSkpO2lmKEJlPHkuc3RhcnRDb2x1bW4pcmV0dXJuIHkuc3RhcnRDb2x1bW49QmUsdm9pZCB0aGlzLm1vZGlmeVZpZXdwb3J0Q29sdW1uU3RhcnQoeSxDKX19fX0se2tleToibW9kaWZ5Vmlld3BvcnRDb2x1bW5FbmQiLHZhbHVlOmZ1bmN0aW9uKHksQyl7Zm9yKHZhciBJPXRo''@;'; + put 'put ''aXMuaG90LmNvbHVtbkluZGV4TWFwcGVyLGo9SS5nZXRWaXN1YWxGcm9tUmVuZGVyYWJsZUluZGV4KHkuZW5kQ29sdW1uKSx1ZT0wO3VlPEM7dWUrPTEpe3ZhciBfZT10aGlzLm1lcmdlZENlbGxzQ29sbGVjdGlvbi5nZXQodWUsaik7aWYoeGwoX2UpKXt2YXIgTmU9SS5nZXRSZW5kZXJhYmxl''@;'; + put 'put ''RnJvbVZpc3VhbEluZGV4KEkuZ2V0TmVhcmVzdE5vdEhpZGRlbkluZGV4KF9lLmNvbCtfZS5jb2xzcGFuLTEsLTEpKTtpZihOZT55LmVuZENvbHVtbilyZXR1cm4geS5lbmRDb2x1bW49TmUsdm9pZCB0aGlzLm1vZGlmeVZpZXdwb3J0Q29sdW1uRW5kKHksQyl9fX19LHtrZXk6InRyYW5zbGF0''@;'; + put 'put ''ZU1lcmdlZENlbGxUb1JlbmRlcmFibGUiLHZhbHVlOmZ1bmN0aW9uKHksQyxJLGope3ZhciBOZSxLZSx1ZT10aGlzLmhvdCxfZT11ZS5yb3dJbmRleE1hcHBlcixCZT11ZS5jb2x1bW5JbmRleE1hcHBlcjtyZXR1cm4gTmU9MD09PUM/X2UuZ2V0TmVhcmVzdE5vdEhpZGRlbkluZGV4KHksMSk6''@;'; + put 'put ''X2UuZ2V0TmVhcmVzdE5vdEhpZGRlbkluZGV4KHkrQy0xLC0xKSxLZT0wPT09aj9CZS5nZXROZWFyZXN0Tm90SGlkZGVuSW5kZXgoSSwxKTpCZS5nZXROZWFyZXN0Tm90SGlkZGVuSW5kZXgoSStqLTEsLTEpLFt5Pj0wP19lLmdldFJlbmRlcmFibGVGcm9tVmlzdWFsSW5kZXgoTmUpOnksST49''@;'; + put 'put ''MD9CZS5nZXRSZW5kZXJhYmxlRnJvbVZpc3VhbEluZGV4KEtlKTpJXX19LHtrZXk6Im9uTW9kaWZ5QXV0b2ZpbGxSYW5nZSIsdmFsdWU6ZnVuY3Rpb24oeSxDKXt0aGlzLmF1dG9maWxsQ2FsY3VsYXRpb25zLmNvcnJlY3RTZWxlY3Rpb25BcmVhU2l6ZShDKTt2YXIgST10aGlzLmF1dG9maWxs''@;'; + put 'put ''Q2FsY3VsYXRpb25zLmdldERpcmVjdGlvbihDLHkpLGo9eTtpZih0aGlzLmF1dG9maWxsQ2FsY3VsYXRpb25zLmRyYWdBcmVhT3ZlcmxhcHNDb2xsZWN0aW9ucyhDLGosSSkpcmV0dXJuIEM7dmFyIHVlPXRoaXMubWVyZ2VkQ2VsbHNDb2xsZWN0aW9uLmdldFdpdGhpblJhbmdlKHtmcm9tOnty''@;'; + put 'put ''b3c6Q1swXSxjb2w6Q1sxXX0sdG86e3JvdzpDWzJdLGNvbDpDWzNdfX0pO3JldHVybiB1ZSYmKGo9dGhpcy5hdXRvZmlsbENhbGN1bGF0aW9ucy5zbmFwRHJhZ0FyZWEoQyxqLEksdWUpKSxqfX0se2tleToib25BZnRlckNyZWF0ZUNvbCIsdmFsdWU6ZnVuY3Rpb24oeSxDKXt0aGlzLm1lcmdl''@;'; + put 'put ''ZENlbGxzQ29sbGVjdGlvbi5zaGlmdENvbGxlY3Rpb25zKCJyaWdodCIseSxDKX19LHtrZXk6Im9uQWZ0ZXJSZW1vdmVDb2wiLHZhbHVlOmZ1bmN0aW9uKHksQyl7dGhpcy5tZXJnZWRDZWxsc0NvbGxlY3Rpb24uc2hpZnRDb2xsZWN0aW9ucygibGVmdCIseSxDKX19LHtrZXk6Im9uQWZ0ZXJD''@;'; + put 'put ''cmVhdGVSb3ciLHZhbHVlOmZ1bmN0aW9uKHksQyxJKXsiYXV0byIhPT1JJiZ0aGlzLm1lcmdlZENlbGxzQ29sbGVjdGlvbi5zaGlmdENvbGxlY3Rpb25zKCJkb3duIix5LEMpfX0se2tleToib25BZnRlclJlbW92ZVJvdyIsdmFsdWU6ZnVuY3Rpb24oeSxDKXt0aGlzLm1lcmdlZENlbGxzQ29s''@;'; + put 'put ''bGVjdGlvbi5zaGlmdENvbGxlY3Rpb25zKCJ1cCIseSxDKX19LHtrZXk6Im9uQWZ0ZXJDaGFuZ2UiLHZhbHVlOmZ1bmN0aW9uKHksQyl7IkF1dG9maWxsLmZpbGwiPT09QyYmdGhpcy5hdXRvZmlsbENhbGN1bGF0aW9ucy5yZWNyZWF0ZUFmdGVyRGF0YVBvcHVsYXRpb24oeSl9fSx7a2V5OiJv''@;'; + put 'put ''bkJlZm9yZURyYXdBcmVhQm9yZGVycyIsdmFsdWU6ZnVuY3Rpb24oeSxDKXtpZihDJiYiYXJlYSI9PT1DKXt2YXIgST10aGlzLmhvdC5nZXRTZWxlY3RlZFJhbmdlTGFzdCgpO1VyKHRoaXMubWVyZ2VkQ2VsbHNDb2xsZWN0aW9uLmdldFdpdGhpblJhbmdlKEkpLGZ1bmN0aW9uKHVlKXtJLmdl''@;'; + put 'put ''dEJvdHRvbUVuZENvcm5lcigpLnJvdz09PXVlLmdldExhc3RSb3coKSYmSS5nZXRCb3R0b21FbmRDb3JuZXIoKS5jb2w9PT11ZS5nZXRMYXN0Q29sdW1uKCkmJih5WzJdPXVlLnJvdyx5WzNdPXVlLmNvbCl9KX19fSx7a2V5OiJvbkFmdGVyTW9kaWZ5VHJhbnNmb3JtU3RhcnQiLHZhbHVlOmZ1''@;'; + put 'put ''bmN0aW9uKHksQyxJKXtpZih0aGlzLmVuYWJsZWQpe3ZhciBqPXRoaXMubWVyZ2VkQ2VsbHNDb2xsZWN0aW9uLmdldCh5LnJvdyx5LmNvbCk7aWYoail7dmFyIHVlPUM+MCxfZT1DPDAsQmU9STwwLE5lPUk+MCxLZT1qLnJvdytqLnJvd3NwYW4tMT09dGhpcy5ob3QuY291bnRSb3dzKCktMSxk''@;'; + put 'put ''dD0wPT09ai5yb3csT3Q9ai5jb2wrai5jb2xzcGFuLTE9PXRoaXMuaG90LmNvdW50Q29scygpLTE7KHVlJiZLZXx8X2UmJmR0fHxOZSYmT3R8fEJlJiYwPT09ai5jb2wpJiYoeS5yb3c9ai5yb3cseS5jb2w9ai5jb2wpfX19fSx7a2V5OiJvbkFmdGVyRHJhd1NlbGVjdGlvbiIsdmFsdWU6ZnVu''@;'; + put 'put ''Y3Rpb24oeSxDLEksail7aWYoSSlyZXR1cm4gdGhpcy5zZWxlY3Rpb25DYWxjdWxhdGlvbnMuZ2V0U2VsZWN0ZWRNZXJnZWRDZWxsQ2xhc3NOYW1lKHksQyxJLGopfX0se2tleToib25CZWZvcmVSZW1vdmVDZWxsQ2xhc3NOYW1lcyIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zZWxl''@;'; + put 'put ''Y3Rpb25DYWxjdWxhdGlvbnMuZ2V0U2VsZWN0ZWRNZXJnZWRDZWxsQ2xhc3NOYW1lVG9SZW1vdmUoKX19XSxbe2tleToiUExVR0lOX0tFWSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFB6fX0se2tleToiUExVR0lOX1BSSU9SSVRZIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gMTUwfX1dKSxofShZ''@;'; + put 'put ''cyk7ZnVuY3Rpb24gWEllKGQpe3JldHVybiBmdW5jdGlvbiBlNHQoZCl7aWYoQXJyYXkuaXNBcnJheShkKSlyZXR1cm4gZH0oZCl8fGZ1bmN0aW9uIHFkdChkKXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmbnVsbCE9ZFtTeW1ib2wuaXRlcmF0b3JdfHxudWxsIT1kWyJAQGl0ZXJh''@;'; + put 'put ''dG9yIl0pcmV0dXJuIEFycmF5LmZyb20oZCl9KGQpfHxmdW5jdGlvbiAkZHQoZCxnKXtpZihkKXtpZigic3RyaW5nIj09dHlwZW9mIGQpcmV0dXJuIEtJZShkLGcpO3ZhciBoPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChkKS5zbGljZSg4LC0xKTtpZigiT2JqZWN0Ij09PWgmJmQu''@;'; + put 'put ''Y29uc3RydWN0b3ImJihoPWQuY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1ofHwiU2V0Ij09PWgpcmV0dXJuIEFycmF5LmZyb20oZCk7aWYoIkFyZ3VtZW50cyI9PT1ofHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChoKSlyZXR1cm4gS0llKGQsZyl9''@;'; + put 'put ''fShkKXx8ZnVuY3Rpb24gS2R0KCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJh''@;'; + put 'put ''dG9yXSgpIG1ldGhvZC4iKX0oKX1mdW5jdGlvbiBLSWUoZCxnKXsobnVsbD09Z3x8Zz5kLmxlbmd0aCkmJihnPWQubGVuZ3RoKTtmb3IodmFyIGg9MCx2PW5ldyBBcnJheShnKTtoPGc7aCsrKXZbaF09ZFtoXTtyZXR1cm4gdn1mdW5jdGlvbiBxSWUoKXtsMShQMigkSWV8fCgkSWU9ZnVuY3Rp''@;'; + put 'put ''b24gbjR0KGQsZyl7cmV0dXJuIGd8fChnPWQuc2xpY2UoMCkpLE9iamVjdC5mcmVlemUoT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZCx7cmF3Ont2YWx1ZTpPYmplY3QuZnJlZXplKGcpfX0pKX0oWyJQbHVnaW5zIGBjb2x1bW5Tb3J0aW5nYCBhbmQgYG11bHRpQ29sdW1uU29ydGluZ2Agc2hv''@;'; + put 'put ''dWxkIG5vdCBiZSBlbmFibGVkIHNpbXVsdGFuZW91c2x5LiBcbiAgICBPbmx5IGBtdWx0aUNvbHVtblNvcnRpbmdgIHdpbGwgd29yay4iXSxbIlBsdWdpbnMgXFxgY29sdW1uU29ydGluZ1xcYCBhbmQgXFxgbXVsdGlDb2x1bW5Tb3J0aW5nXFxgIHNob3VsZCBub3QgYmUgZW5hYmxlZCBzaW11''@;'; + put 'put ''bHRhbmVvdXNseS4gXG4gICAgT25seSBcXGBtdWx0aUNvbHVtblNvcnRpbmdcXGAgd2lsbCB3b3JrLiJdKSkpKX1mdW5jdGlvbiByNHQoZCxnLGgpe3ZhciB2PVtdO3JldHVybiExPT09aHx8ZC5pc0NvbHVtblNvcnRlZChnKSYmZC5nZXROdW1iZXJPZlNvcnRlZENvbHVtbnMoKT4xJiZ2LnB1''@;'; + put 'put ''c2goIiIuY29uY2F0KCJzb3J0IiwiLSIpLmNvbmNhdChkLmdldEluZGV4T2ZDb2x1bW5JblNvcnRRdWV1ZShnKSsxKSksdn1mdW5jdGlvbiBpNHQoZCl7dmFyIGc9ZC5jbGFzc05hbWUuc3BsaXQoIiAiKSxoPW5ldyBSZWdFeHAoIl4iLmNvbmNhdCgic29ydCIsIi1bMC05XXsxLDJ9JCIpKTty''@;'; + put 'put ''ZXR1cm4gZy5maWx0ZXIoZnVuY3Rpb24odil7cmV0dXJuIGgudGVzdCh2KX0pfWZ1bmN0aW9uIEVnZShkKXtyZXR1cm4oRWdlPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGcpe3JldHVybiB0eXBlb2YgZ306ZnVu''@;'; + put 'put ''Y3Rpb24oZyl7cmV0dXJuIGcmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmcuY29uc3RydWN0b3I9PT1TeW1ib2wmJmchPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBnfSkoZCl9ZnVuY3Rpb24gdERlKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2''@;'; + put 'put ''PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19ZnVuY3Rpb24gYjQoKXtyZXR1cm4gYjQ9InVuZGVmaW5lZCIhPXR5cGVvZiBSZWZs''@;'; + put 'put ''ZWN0JiZSZWZsZWN0LmdldD9SZWZsZWN0LmdldC5iaW5kKCk6ZnVuY3Rpb24oZyxoLHYpe3ZhciB5PWw0dChnLGgpO2lmKHkpe3ZhciBDPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoeSxoKTtyZXR1cm4gQy5nZXQ/Qy5nZXQuY2FsbChhcmd1bWVudHMubGVuZ3RoPDM/Zzp2KTpD''@;'; + put 'put ''LnZhbHVlfX0sYjQuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIGw0dChkLGcpe2Zvcig7IU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChkLGcpJiZudWxsIT09KGQ9YzMoZCkpOyk7cmV0dXJuIGR9ZnVuY3Rpb24geGdlKGQsZyl7cmV0dXJuKHhnZT1PYmplY3Qu''@;'; + put 'put ''c2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbih2LHkpe3JldHVybiB2Ll9fcHJvdG9fXz15LHZ9KShkLGcpfWZ1bmN0aW9uIGM0dChkLGcpe2lmKGcmJigib2JqZWN0Ij09PUVnZShnKXx8ImZ1bmN0aW9uIj09dHlwZW9mIGcpKXJldHVybiBnO2lm''@;'; + put 'put ''KHZvaWQgMCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWQiKTtyZXR1cm4gZnVuY3Rpb24gZjR0KGQpe2lmKHZvaWQgMD09PWQpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24n''@;'; + put 'put ''dCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4gZH0oZCl9ZnVuY3Rpb24gYzMoZCl7cmV0dXJuKGMzPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3QuZ2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKGgpe3JldHVybiBoLl9fcHJv''@;'; + put 'put ''dG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKGgpfSkoZCl9dmFyIFRnZT0ibXVsdGlDb2x1bW5Tb3J0aW5nIixuRGU9ImNvbHVtblNvcnRpbmciO2ZFZShUZ2UsZnVuY3Rpb24gdDR0KGQsZyl7cmV0dXJuIGZ1bmN0aW9uKGgsdil7dmFyIEM9WEllKGgpLnNsaWNlKDEpLGo9WEllKHYpLnNs''@;'; + put 'put ''aWNlKDEpO3JldHVybiBmdW5jdGlvbiB1ZShfZSl7dmFyIEJlPWRbX2VdLE5lPWdbX2VdLEtlPUNbX2VdLGR0PWpbX2VdLE90PU5lLm11bHRpQ29sdW1uU29ydGluZyxmbj0oT3QuY29tcGFyZUZ1bmN0aW9uRmFjdG9yeT9PdC5jb21wYXJlRnVuY3Rpb25GYWN0b3J5OmhFZShOZS50eXBlKSko''@;'; + put 'put ''QmUsTmUsT3QpKEtlLGR0KTtpZigwPT09Zm4pe3ZhciBMbj1fZSsxO2lmKHZvaWQgMCE9PWdbTG5dKXJldHVybiB1ZShMbil9cmV0dXJuIGZufSgwKX19KTt2YXIgZzR0PWZ1bmN0aW9uKGQpeyFmdW5jdGlvbiBzNHQoZCxnKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZyYmbnVsbCE9PWcpdGhy''@;'; + put 'put ''b3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTtkLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGcmJmcucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6ZCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSks''@;'; + put 'put ''T2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZyYmeGdlKGQsZyl9KGgsZCk7dmFyIGc9ZnVuY3Rpb24gdTR0KGQpe3ZhciBnPWZ1bmN0aW9uIGg0dCgpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0fHxS''@;'; + put 'put ''ZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBQcm94eSlyZXR1cm4hMDt0cnl7cmV0dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLGZ1bmN0aW9uKCl7fSkpLCEwfWNhdGNoKGQp''@;'; + put 'put ''e3JldHVybiExfX0oKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgeSx2PWMzKGQpO2lmKGcpe3ZhciBDPWMzKHRoaXMpLmNvbnN0cnVjdG9yO3k9UmVmbGVjdC5jb25zdHJ1Y3Qodixhcmd1bWVudHMsQyl9ZWxzZSB5PXYuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBjNHQodGhpcyx5KX19''@;'; + put 'put ''KGgpO2Z1bmN0aW9uIGgodil7dmFyIHk7cmV0dXJuIGZ1bmN0aW9uIG80dChkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSh0aGlzLGgpLCh5PWcuY2FsbCh0aGlzLHYpKS5wbHVnaW5LZXk9''@;'; + put 'put ''VGdlLHl9cmV0dXJuIGZ1bmN0aW9uIGE0dChkLGcsaCl7ZyYmdERlKGQucHJvdG90eXBlLGcpLGgmJnREZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShoLFt7a2V5OiJpc0VuYWJsZWQiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIGI0''@;'; + put 'put ''KGMzKGgucHJvdG90eXBlKSwiaXNFbmFibGVkIix0aGlzKS5jYWxsKHRoaXMpfX0se2tleToiZW5hYmxlUGx1Z2luIix2YWx1ZTpmdW5jdGlvbigpeyF0aGlzLmVuYWJsZWQmJnRoaXMuaG90LmdldFNldHRpbmdzKClbdGhpcy5wbHVnaW5LZXldJiZ0aGlzLmhvdC5nZXRTZXR0aW5ncygpW25E''@;'; + put 'put ''ZV0mJnFJZSgpLGI0KGMzKGgucHJvdG90eXBlKSwiZW5hYmxlUGx1Z2luIix0aGlzKS5jYWxsKHRoaXMpfX0se2tleToiZGlzYWJsZVBsdWdpbiIsdmFsdWU6ZnVuY3Rpb24oKXtiNChjMyhoLnByb3RvdHlwZSksImRpc2FibGVQbHVnaW4iLHRoaXMpLmNhbGwodGhpcyl9fSx7a2V5OiJzb3J0''@;'; + put 'put ''Iix2YWx1ZTpmdW5jdGlvbih5KXtiNChjMyhoLnByb3RvdHlwZSksInNvcnQiLHRoaXMpLmNhbGwodGhpcyx5KX19LHtrZXk6ImNsZWFyU29ydCIsdmFsdWU6ZnVuY3Rpb24oKXtiNChjMyhoLnByb3RvdHlwZSksImNsZWFyU29ydCIsdGhpcykuY2FsbCh0aGlzKX19LHtrZXk6ImlzU29ydGVk''@;'; + put 'put ''Iix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBiNChjMyhoLnByb3RvdHlwZSksImlzU29ydGVkIix0aGlzKS5jYWxsKHRoaXMpfX0se2tleToiZ2V0U29ydENvbmZpZyIsdmFsdWU6ZnVuY3Rpb24oeSl7cmV0dXJuIGI0KGMzKGgucHJvdG90eXBlKSwiZ2V0U29ydENvbmZpZyIsdGhpcykuY2Fs''@;'; + put 'put ''bCh0aGlzLHkpfX0se2tleToic2V0U29ydENvbmZpZyIsdmFsdWU6ZnVuY3Rpb24oeSl7YjQoYzMoaC5wcm90b3R5cGUpLCJzZXRTb3J0Q29uZmlnIix0aGlzKS5jYWxsKHRoaXMseSl9fSx7a2V5OiJnZXROb3JtYWxpemVkU29ydENvbmZpZ3MiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9YXJn''@;'; + put 'put ''dW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOltdO3JldHVybiBBcnJheS5pc0FycmF5KHkpP3k6W3ldfX0se2tleToidXBkYXRlSGVhZGVyQ2xhc3NlcyIsdmFsdWU6ZnVuY3Rpb24oeSl7Zm9yKHZhciBDLEk9YXJndW1lbnRzLmxlbmd0aCxqPW5l''@;'; + put 'put ''dyBBcnJheShJPjE/SS0xOjApLHVlPTE7dWU8STt1ZSsrKWpbdWUtMV09YXJndW1lbnRzW3VlXTsoQz1iNChjMyhoLnByb3RvdHlwZSksInVwZGF0ZUhlYWRlckNsYXNzZXMiLHRoaXMpKS5jYWxsLmFwcGx5KEMsW3RoaXMseV0uY29uY2F0KGopKSxwbCh5LGk0dCh5KSksITEhPT10aGlzLmVu''@;'; + put 'put ''YWJsZWQmJk8wKHkscjR0LmFwcGx5KHZvaWQgMCxqKSl9fSx7a2V5OiJvblVwZGF0ZVNldHRpbmdzIix2YWx1ZTpmdW5jdGlvbih5KXt0aGlzLmhvdC5nZXRTZXR0aW5ncygpW3RoaXMucGx1Z2luS2V5XSYmdGhpcy5ob3QuZ2V0U2V0dGluZ3MoKVtuRGVdJiZxSWUoKSxiNChjMyhoLnByb3Rv''@;'; + put 'put ''dHlwZSksIm9uVXBkYXRlU2V0dGluZ3MiLHRoaXMpLmNhbGwodGhpcyx5KX19LHtrZXk6Im9uQWZ0ZXJPbkNlbGxNb3VzZURvd24iLHZhbHVlOmZ1bmN0aW9uKHksQyl7ITEhPT1kOGUoQy5yb3csQy5jb2wseSkmJnRoaXMud2FzQ2xpY2thYmxlSGVhZGVyQ2xpY2tlZCh5LEMuY29sKSYmKHRo''@;'; + put 'put ''aXMuaG90LmdldFNob3J0Y3V0TWFuYWdlcigpLmlzQ3RybFByZXNzZWQoKT8odGhpcy5ob3QuZGVzZWxlY3RDZWxsKCksdGhpcy5ob3Quc2VsZWN0Q29sdW1ucyhDLmNvbCksdGhpcy5zb3J0KHRoaXMuZ2V0TmV4dFNvcnRDb25maWcoQy5jb2wsImFwcGVuZCIpKSk6dGhpcy5zb3J0KHRoaXMu''@;'; + put 'put ''Z2V0Q29sdW1uTmV4dENvbmZpZyhDLmNvbCkpKX19XSxbe2tleToiUExVR0lOX0tFWSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFRnZX19LHtrZXk6IlBMVUdJTl9QUklPUklUWSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDE3MH19XSksaH0od0VlKTtmdW5jdGlvbiBJZ2UoZCl7cmV0dXJuKEln''@;'; + put 'put ''ZT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihnKXtyZXR1cm4gdHlwZW9mIGd9OmZ1bmN0aW9uKGcpe3JldHVybiBnJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZnLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZn''@;'; + put 'put ''IT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgZ30pKGQpfWZ1bmN0aW9uIHJEZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53''@;'; + put 'put ''cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fWZ1bmN0aW9uIEVuZSgpe3JldHVybiBFbmU9InVuZGVmaW5lZCIhPXR5cGVvZiBSZWZsZWN0JiZSZWZsZWN0LmdldD9SZWZsZWN0LmdldC5iaW5kKCk6ZnVuY3Rpb24oZyxoLHYpe3ZhciB5PUE0dChnLGgpO2lm''@;'; + put 'put ''KHkpe3ZhciBDPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoeSxoKTtyZXR1cm4gQy5nZXQ/Qy5nZXQuY2FsbChhcmd1bWVudHMubGVuZ3RoPDM/Zzp2KTpDLnZhbHVlfX0sRW5lLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBBNHQoZCxnKXtmb3IoOyFPYmplY3QucHJv''@;'; + put 'put ''dG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZCxnKSYmbnVsbCE9PShkPWxSKGQpKTspO3JldHVybiBkfWZ1bmN0aW9uIERnZShkLGcpe3JldHVybihEZ2U9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24odix5KXtyZXR1cm4gdi5f''@;'; + put 'put ''X3Byb3RvX189eSx2fSkoZCxnKX1mdW5jdGlvbiBiNHQoZCxnKXtpZihnJiYoIm9iamVjdCI9PT1JZ2UoZyl8fCJmdW5jdGlvbiI9PXR5cGVvZiBnKSlyZXR1cm4gZztpZih2b2lkIDAhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIkRlcml2ZWQgY29uc3RydWN0b3JzIG1heSBvbmx5IHJldHVy''@;'; + put 'put ''biBvYmplY3Qgb3IgdW5kZWZpbmVkIik7cmV0dXJuIGZ1bmN0aW9uIF80dChkKXtpZih2b2lkIDA9PT1kKXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcigidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkIik7cmV0dXJuIGR9KGQpfWZ1bmN0''@;'; + put 'put ''aW9uIGxSKGQpe3JldHVybihsUj1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihoKXtyZXR1cm4gaC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihoKX0pKGQpfXZhciBNNHQ9ZnVuY3Rpb24oZCl7IWZ1bmN0aW9uIHk0''@;'; + put 'put ''dChkLGcpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBnJiZudWxsIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiIpO2QucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZyYmZy5wcm90b3R5cGUse2NvbnN0cnVj''@;'; + put 'put ''dG9yOnt2YWx1ZTpkLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxnJiZEZ2UoZCxnKX0oaCxkKTt2YXIgZz1mdW5jdGlvbiB3NHQoZCl7dmFyIGc9ZnVuY3Rpb24gQzR0KCl7aWYoInVuZGVm''@;'; + put 'put ''aW5lZCI9PXR5cGVvZiBSZWZsZWN0fHwhUmVmbGVjdC5jb25zdHJ1Y3R8fFJlZmxlY3QuY29uc3RydWN0LnNoYW0pcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIFByb3h5KXJldHVybiEwO3RyeXtyZXR1cm4gQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29u''@;'; + put 'put ''c3RydWN0KEJvb2xlYW4sW10sZnVuY3Rpb24oKXt9KSksITB9Y2F0Y2goZCl7cmV0dXJuITF9fSgpO3JldHVybiBmdW5jdGlvbigpe3ZhciB5LHY9bFIoZCk7aWYoZyl7dmFyIEM9bFIodGhpcykuY29uc3RydWN0b3I7eT1SZWZsZWN0LmNvbnN0cnVjdCh2LGFyZ3VtZW50cyxDKX1lbHNlIHk9''@;'; + put 'put ''di5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIGI0dCh0aGlzLHkpfX0oaCk7ZnVuY3Rpb24gaCh2KXt2YXIgeTtyZXR1cm4gZnVuY3Rpb24gbTR0KGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0''@;'; + put 'put ''aW9uIil9KHRoaXMsaCksKHk9Zy5jYWxsKHRoaXMsdikpLmRyYWdnZWQ9W10seS5ldmVudE1hbmFnZXI9bnVsbCx5Lmxhc3RTZXRDZWxsPW51bGwseX1yZXR1cm4gZnVuY3Rpb24gdjR0KGQsZyxoKXtnJiZyRGUoZC5wcm90b3R5cGUsZyksaCYmckRlKGQsaCksT2JqZWN0LmRlZmluZVByb3Bl''@;'; + put 'put ''cnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGgsW3trZXk6ImlzRW5hYmxlZCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gYjgoKX19LHtrZXk6ImVuYWJsZVBsdWdpbiIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmVuYWJsZWR8fCh0aGlzLmV2ZW50TWFuYWdlcnx8KHRoaXMuZXZl''@;'; + put 'put ''bnRNYW5hZ2VyPW5ldyBMMSh0aGlzKSksdGhpcy5yZWdpc3Rlckxpc3RlbmVycygpLEVuZShsUihoLnByb3RvdHlwZSksImVuYWJsZVBsdWdpbiIsdGhpcykuY2FsbCh0aGlzKSl9fSx7a2V5OiJyZWdpc3Rlckxpc3RlbmVycyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzLEM9dGhpcyxJ''@;'; + put 'put ''PXRoaXMuaG90LnJvb3RFbGVtZW50O2Z1bmN0aW9uIGoodWUpe2lmKDE9PT1DLmRyYWdnZWQubGVuZ3RoKXJldHVybiBDLmRyYWdnZWQuc3BsaWNlKDAsQy5kcmFnZ2VkLmxlbmd0aCksITA7dmFyIF9lPUMuZHJhZ2dlZC5pbmRleE9mKHVlKTtpZigtMT09PV9lKXJldHVybiExOzA9PT1fZT9D''@;'; + put 'put ''LmRyYWdnZWQ9Qy5kcmFnZ2VkLnNsaWNlKDAsMSk6MT09PV9lJiYoQy5kcmFnZ2VkPUMuZHJhZ2dlZC5zbGljZSgtMSkpfXRoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoSSwidG91Y2hzdGFydCIsZnVuY3Rpb24odWUpe3ZhciBfZTtyZXR1cm4gdGwodWUudGFyZ2V0LCJ0b3BT''@;'; + put 'put ''ZWxlY3Rpb25IYW5kbGUtSGl0QXJlYSIpPyhfZT1DLmhvdC5nZXRTZWxlY3RlZFJhbmdlTGFzdCgpLEMuZHJhZ2dlZC5wdXNoKCJ0b3AiKSxDLnRvdWNoU3RhcnRSYW5nZT17d2lkdGg6X2UuZ2V0V2lkdGgoKSxoZWlnaHQ6X2UuZ2V0SGVpZ2h0KCksZGlyZWN0aW9uOl9lLmdldERpcmVjdGlv''@;'; + put 'put ''bigpfSx1ZS5wcmV2ZW50RGVmYXVsdCgpLCExKTp0bCh1ZS50YXJnZXQsImJvdHRvbVNlbGVjdGlvbkhhbmRsZS1IaXRBcmVhIik/KF9lPUMuaG90LmdldFNlbGVjdGVkUmFuZ2VMYXN0KCksQy5kcmFnZ2VkLnB1c2goImJvdHRvbSIpLEMudG91Y2hTdGFydFJhbmdlPXt3aWR0aDpfZS5nZXRX''@;'; + put 'put ''aWR0aCgpLGhlaWdodDpfZS5nZXRIZWlnaHQoKSxkaXJlY3Rpb246X2UuZ2V0RGlyZWN0aW9uKCl9LHVlLnByZXZlbnREZWZhdWx0KCksITEpOnZvaWQgMH0pLHRoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoSSwidG91Y2hlbmQiLGZ1bmN0aW9uKHVlKXtyZXR1cm4gdGwodWUu''@;'; + put 'put ''dGFyZ2V0LCJ0b3BTZWxlY3Rpb25IYW5kbGUtSGl0QXJlYSIpPyhqLmNhbGwoQywidG9wIiksQy50b3VjaFN0YXJ0UmFuZ2U9dm9pZCAwLHVlLnByZXZlbnREZWZhdWx0KCksITEpOnRsKHVlLnRhcmdldCwiYm90dG9tU2VsZWN0aW9uSGFuZGxlLUhpdEFyZWEiKT8oai5jYWxsKEMsImJvdHRv''@;'; + put 'put ''bSIpLEMudG91Y2hTdGFydFJhbmdlPXZvaWQgMCx1ZS5wcmV2ZW50RGVmYXVsdCgpLCExKTp2b2lkIDB9KSx0aGlzLmV2ZW50TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKEksInRvdWNobW92ZSIsZnVuY3Rpb24odWUpe3ZhciBCZSxOZSxLZSxkdCxPdCwkdDtpZigwIT09Qy5kcmFnZ2VkLmxl''@;'; + put 'put ''bmd0aCl7dmFyIGZuPXkuaG90LnJvb3REb2N1bWVudC5lbGVtZW50RnJvbVBvaW50KHVlLnRvdWNoZXNbMF0uY2xpZW50WCx1ZS50b3VjaGVzWzBdLmNsaWVudFkpOyFmbnx8Zm49PT1DLmxhc3RTZXRDZWxsfHwoKCJURCI9PT1mbi5ub2RlTmFtZXx8IlRIIj09PWZuLm5vZGVOYW1lKSYmKC0x''@;'; + put 'put ''PT09KEJlPUMuaG90LmdldENvb3JkcyhmbikpLmNvbCYmKEJlLmNvbD0wKSxLZT0oTmU9Qy5ob3QuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKSkuZ2V0V2lkdGgoKSxkdD1OZS5nZXRIZWlnaHQoKSxPdD1OZS5nZXREaXJlY3Rpb24oKSwxPT09S2UmJjE9PT1kdCYmQy5ob3Quc2VsZWN0aW9uLnNl''@;'; + put 'put ''dFJhbmdlRW5kKEJlKSxudWxsIT09KCR0PUMuZ2V0Q3VycmVudFJhbmdlQ29vcmRzKE5lLEJlLEMudG91Y2hTdGFydFJhbmdlLmRpcmVjdGlvbixPdCxDLmRyYWdnZWRbMF0pKS5zdGFydCYmQy5ob3Quc2VsZWN0aW9uLnNldFJhbmdlU3RhcnQoJHQuc3RhcnQpLEMuaG90LnNlbGVjdGlvbi5z''@;'; + put 'put ''ZXRSYW5nZUVuZCgkdC5lbmQpLEMubGFzdFNldENlbGw9Zm4pLHVlLnByZXZlbnREZWZhdWx0KCkpfX0pfX0se2tleToiZ2V0Q3VycmVudFJhbmdlQ29vcmRzIix2YWx1ZTpmdW5jdGlvbih5LEMsSSxqLHVlKXt2YXIgX2U9eS5nZXRUb3BTdGFydENvcm5lcigpLEJlPXkuZ2V0Qm90dG9tRW5k''@;'; + put 'put ''Q29ybmVyKCksTmU9eS5nZXRCb3R0b21TdGFydENvcm5lcigpLEtlPXkuZ2V0VG9wRW5kQ29ybmVyKCksZHQ9e3N0YXJ0Om51bGwsZW5kOm51bGx9O3N3aXRjaChJKXtjYXNlIk5FLVNXIjpzd2l0Y2goail7Y2FzZSJORS1TVyI6Y2FzZSJOVy1TRSI6ZHQ9InRvcCI9PT11ZT97c3RhcnQ6dGhp''@;'; + put 'put ''cy5ob3QuX2NyZWF0ZUNlbGxDb29yZHMoQy5yb3cseS5oaWdobGlnaHQuY29sKSxlbmQ6dGhpcy5ob3QuX2NyZWF0ZUNlbGxDb29yZHMoTmUucm93LEMuY29sKX06e3N0YXJ0OnRoaXMuaG90Ll9jcmVhdGVDZWxsQ29vcmRzKHkuaGlnaGxpZ2h0LnJvdyxDLmNvbCksZW5kOnRoaXMuaG90Ll9j''@;'; + put 'put ''cmVhdGVDZWxsQ29vcmRzKEMucm93LF9lLmNvbCl9O2JyZWFrO2Nhc2UiU0UtTlciOiJib3R0b20iPT09dWUmJihkdD17c3RhcnQ6dGhpcy5ob3QuX2NyZWF0ZUNlbGxDb29yZHMoQmUucm93LEMuY29sKSxlbmQ6dGhpcy5ob3QuX2NyZWF0ZUNlbGxDb29yZHMoQy5yb3csX2UuY29sKX0pfWJy''@;'; + put 'put ''ZWFrO2Nhc2UiTlctU0UiOnN3aXRjaChqKXtjYXNlIk5FLVNXIjoidG9wIj09PXVlP2R0PXtzdGFydDpDLGVuZDpOZX06ZHQuZW5kPUM7YnJlYWs7Y2FzZSJOVy1TRSI6InRvcCI9PT11ZT9kdD17c3RhcnQ6QyxlbmQ6QmV9OmR0LmVuZD1DO2JyZWFrO2Nhc2UiU0UtTlciOiJ0b3AiPT09dWU/''@;'; + put 'put ''ZHQ9e3N0YXJ0OkMsZW5kOl9lfTpkdC5lbmQ9QzticmVhaztjYXNlIlNXLU5FIjoidG9wIj09PXVlP2R0PXtzdGFydDpDLGVuZDpLZX06ZHQuZW5kPUN9YnJlYWs7Y2FzZSJTVy1ORSI6c3dpdGNoKGope2Nhc2UiTlctU0UiOmR0PSJib3R0b20iPT09dWU/e3N0YXJ0OnRoaXMuaG90Ll9jcmVh''@;'; + put 'put ''dGVDZWxsQ29vcmRzKEMucm93LF9lLmNvbCksZW5kOnRoaXMuaG90Ll9jcmVhdGVDZWxsQ29vcmRzKE5lLnJvdyxDLmNvbCl9OntzdGFydDp0aGlzLmhvdC5fY3JlYXRlQ2VsbENvb3JkcyhfZS5yb3csQy5jb2wpLGVuZDp0aGlzLmhvdC5fY3JlYXRlQ2VsbENvb3JkcyhDLnJvdyxCZS5jb2wp''@;'; + put 'put ''fTticmVhaztjYXNlIlNXLU5FIjpkdD0idG9wIj09PXVlP3tzdGFydDp0aGlzLmhvdC5fY3JlYXRlQ2VsbENvb3Jkcyh5LmhpZ2hsaWdodC5yb3csQy5jb2wpLGVuZDp0aGlzLmhvdC5fY3JlYXRlQ2VsbENvb3JkcyhDLnJvdyxCZS5jb2wpfTp7c3RhcnQ6dGhpcy5ob3QuX2NyZWF0ZUNlbGxD''@;'; + put 'put ''b29yZHMoQy5yb3csX2UuY29sKSxlbmQ6dGhpcy5ob3QuX2NyZWF0ZUNlbGxDb29yZHMoX2Uucm93LEMuY29sKX07YnJlYWs7Y2FzZSJTRS1OVyI6ImJvdHRvbSI9PT11ZT9kdD17c3RhcnQ6dGhpcy5ob3QuX2NyZWF0ZUNlbGxDb29yZHMoQy5yb3csS2UuY29sKSxlbmQ6dGhpcy5ob3QuX2Ny''@;'; + put 'put ''ZWF0ZUNlbGxDb29yZHMoX2Uucm93LEMuY29sKX06InRvcCI9PT11ZSYmKGR0PXtzdGFydDpOZSxlbmQ6Q30pfWJyZWFrO2Nhc2UiU0UtTlciOnN3aXRjaChqKXtjYXNlIk5XLVNFIjpjYXNlIk5FLVNXIjpjYXNlIlNXLU5FIjoidG9wIj09PXVlJiYoZHQuZW5kPUMpO2JyZWFrO2Nhc2UiU0Ut''@;'; + put 'put ''TlciOiJ0b3AiPT09dWU/ZHQuZW5kPUM6ZHQ9e3N0YXJ0OkMsZW5kOl9lfX19cmV0dXJuIGR0fX0se2tleToiaXNEcmFnZ2VkIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmRyYWdnZWQubGVuZ3RoPjB9fV0sW3trZXk6IlBMVUdJTl9LRVkiLGdldDpmdW5jdGlvbigpe3JldHVybiJt''@;'; + put 'put ''dWx0aXBsZVNlbGVjdGlvbkhhbmRsZXMifX0se2tleToiUExVR0lOX1BSSU9SSVRZIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gMTYwfX1dKSxofShZcyk7ZnVuY3Rpb24gTGdlKCl7dmFyIGQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOnt9''@;'; + put 'put ''LGc9ZC5sYWJlbCxoPXZvaWQgMD09PWc/IiI6Zyx2PWQuY29sc3Bhbix5PXZvaWQgMD09PXY/MTp2LEM9ZC5vcmlnQ29sc3BhbixJPXZvaWQgMD09PUM/MTpDLGo9ZC5jb2xsYXBzaWJsZSx1ZT12b2lkIDAhPT1qJiZqLF9lPWQuY3Jvc3NIaWRkZW5Db2x1bW5zLEJlPXZvaWQgMD09PV9lP1td''@;'; + put 'put ''Ol9lLE5lPWQuaXNDb2xsYXBzZWQsS2U9dm9pZCAwIT09TmUmJk5lLGR0PWQuaXNIaWRkZW4sT3Q9dm9pZCAwIT09ZHQmJmR0LCR0PWQuaXNSb290LGZuPXZvaWQgMCE9PSR0JiYkdCxMbj1kLmlzUGxhY2Vob2xkZXIsaXI9dm9pZCAwIT09TG4mJkxuO3JldHVybntsYWJlbDpoLGNvbHNwYW46''@;'; + put 'put ''eSxvcmlnQ29sc3BhbjpJLGNvbGxhcHNpYmxlOnVlLGlzQ29sbGFwc2VkOktlLGNyb3NzSGlkZGVuQ29sdW1uczpCZSxpc0hpZGRlbjpPdCxpc1Jvb3Q6Zm4saXNQbGFjZWhvbGRlcjppcn19ZnVuY3Rpb24gb0RlKGQpe3JldHVybiBmdW5jdGlvbiBJNHQoZCl7aWYoQXJyYXkuaXNBcnJheShk''@;'; + put 'put ''KSlyZXR1cm4gT2dlKGQpfShkKXx8ZnVuY3Rpb24gVDR0KGQpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZudWxsIT1kW1N5bWJvbC5pdGVyYXRvcl18fG51bGwhPWRbIkBAaXRlcmF0b3IiXSlyZXR1cm4gQXJyYXkuZnJvbShkKX0oZCl8fGZ1bmN0aW9uIHg0dChkLGcpe2lmKGQp''@;'; + put 'put ''e2lmKCJzdHJpbmciPT10eXBlb2YgZClyZXR1cm4gT2dlKGQsZyk7dmFyIGg9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGQpLnNsaWNlKDgsLTEpO2lmKCJPYmplY3QiPT09aCYmZC5jb25zdHJ1Y3RvciYmKGg9ZC5jb25zdHJ1Y3Rvci5uYW1lKSwiTWFwIj09PWh8fCJTZXQiPT09''@;'; + put 'put ''aClyZXR1cm4gQXJyYXkuZnJvbShkKTtpZigiQXJndW1lbnRzIj09PWh8fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KGgpKXJldHVybiBPZ2UoZCxnKX19KGQpfHxmdW5jdGlvbiBFNHQoKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVt''@;'; + put 'put ''cHQgdG8gc3ByZWFkIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX1mdW5jdGlvbiBPZ2UoZCxnKXsobnVsbD09Z3x8Zz5kLmxlbmd0aCkm''@;'; + put 'put ''JihnPWQubGVuZ3RoKTtmb3IodmFyIGg9MCx2PW5ldyBBcnJheShnKTtoPGc7aCsrKXZbaF09ZFtoXTtyZXR1cm4gdn1mdW5jdGlvbiBENHQoZCl7dmFyIGc9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOjEvMCxoPVtdO2lmKDA9PT1nKXJl''@;'; + put 'put ''dHVybiBoO1VyKGQsZnVuY3Rpb24oeSl7dmFyIEM9W10sST0wO2gucHVzaChDKSxVcih5LGZ1bmN0aW9uKGope3ZhciB1ZT1MZ2UoKTtpZih4bChqKSl7dmFyIEJlPWouY29sc3Bhbjt1ZS5sYWJlbD1ldShqLmxhYmVsKSwibnVtYmVyIj09dHlwZW9mIEJlJiZCZT4xJiYodWUuY29sc3Bhbj1C''@;'; + put 'put ''ZSx1ZS5vcmlnQ29sc3Bhbj1CZSl9ZWxzZSB1ZS5sYWJlbD1ldShqKTt2YXIgTmU9ITE7aWYoKEkrPXVlLm9yaWdDb2xzcGFuKT49ZyYmKHVlLmNvbHNwYW49dWUub3JpZ0NvbHNwYW4tKEktZyksdWUub3JpZ0NvbHNwYW49dWUuY29sc3BhbixOZT0hMCksQy5wdXNoKHVlKSx1ZS5jb2xzcGFu''@;'; + put 'put ''PjEpZm9yKHZhciBLZT0wO0tlPHVlLmNvbHNwYW4tMTtLZSsrKUMucHVzaCh7bGFiZWw6IiIsaXNQbGFjZWhvbGRlcjohMH0pO3JldHVybiFOZX0pfSk7dmFyIHY9TWF0aC5tYXguYXBwbHkoTWF0aCxvRGUoT2woaCxmdW5jdGlvbih5KXtyZXR1cm4geS5sZW5ndGh9KSkpO3JldHVybiBVciho''@;'; + put 'put ''LGZ1bmN0aW9uKHkpe2lmKHkubGVuZ3RoPHYpe3ZhciBDPU9sKG5ldyBBcnJheSh2LXkubGVuZ3RoKSxmdW5jdGlvbigpe3JldHVybiBMZ2UoKX0pO3kuc3BsaWNlLmFwcGx5KHksW3kubGVuZ3RoLDBdLmNvbmNhdChvRGUoQykpKX19KSxofXZhciBMNHQ9WyJyb3ciLCJjb2wiXTtmdW5jdGlv''@;'; + put 'put ''biBhRGUoZCxnKXt2YXIgaD1PYmplY3Qua2V5cyhkKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgdj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGQpO2cmJih2PXYuZmlsdGVyKGZ1bmN0aW9uKHkpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlw''@;'; + put 'put ''dG9yKGQseSkuZW51bWVyYWJsZX0pKSxoLnB1c2guYXBwbHkoaCx2KX1yZXR1cm4gaH1mdW5jdGlvbiBSNHQoZCxnLGgpe3JldHVybiBnIGluIGQ/T2JqZWN0LmRlZmluZVByb3BlcnR5KGQsZyx7dmFsdWU6aCxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmRb''@;'; + put 'put ''Z109aCxkfWZ1bmN0aW9uIGxEZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQs''@;'; + put 'put ''di5rZXksdil9fWZ1bmN0aW9uIFJnZShkLGcsaCl7KGZ1bmN0aW9uIE40dChkLGcpe2lmKGcuaGFzKGQpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBpbml0aWFsaXplIHRoZSBzYW1lIHByaXZhdGUgZWxlbWVudHMgdHdpY2Ugb24gYW4gb2JqZWN0Iil9KShkLGcpLGcuc2V0KGQsaCl9''@;'; + put 'put ''ZnVuY3Rpb24geDgoZCxnKXtyZXR1cm4gZnVuY3Rpb24gVjR0KGQsZyl7cmV0dXJuIGcuZ2V0P2cuZ2V0LmNhbGwoZCk6Zy52YWx1ZX0oZCxzRGUoZCxnLCJnZXQiKSl9ZnVuY3Rpb24gRnooZCxnLGgpe3JldHVybiBmdW5jdGlvbiBqNHQoZCxnLGgpe2lmKGcuc2V0KWcuc2V0LmNhbGwoZCxo''@;'; + put 'put ''KTtlbHNle2lmKCFnLndyaXRhYmxlKXRocm93IG5ldyBUeXBlRXJyb3IoImF0dGVtcHRlZCB0byBzZXQgcmVhZCBvbmx5IHByaXZhdGUgZmllbGQiKTtnLnZhbHVlPWh9fShkLHNEZShkLGcsInNldCIpLGgpLGh9ZnVuY3Rpb24gc0RlKGQsZyxoKXtpZighZy5oYXMoZCkpdGhyb3cgbmV3IFR5''@;'; + put 'put ''cGVFcnJvcigiYXR0ZW1wdGVkIHRvICIraCsiIHByaXZhdGUgZmllbGQgb24gbm9uLWluc3RhbmNlIik7cmV0dXJuIGcuZ2V0KGQpfXZhciB1RGU9WyJsYWJlbCIsImNvbGxhcHNpYmxlIl0sJHY9bmV3IFdlYWtNYXAsZ009bmV3IFdlYWtNYXAsQmdlPW5ldyBXZWFrTWFwLFo0dD1mdW5jdGlv''@;'; + put 'put ''bigpe2Z1bmN0aW9uIGQoKXsoZnVuY3Rpb24gRjR0KGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KSh0aGlzLGQpLFJnZSh0aGlzLCR2LHt3cml0YWJsZTohMCx2YWx1ZTpbXX0pLFJnZSh0''@;'; + put 'put ''aGlzLGdNLHt3cml0YWJsZTohMCx2YWx1ZTowfSksUmdlKHRoaXMsQmdlLHt3cml0YWJsZTohMCx2YWx1ZToxLzB9KX1yZXR1cm4gZnVuY3Rpb24gSDR0KGQsZyxoKXtnJiZsRGUoZC5wcm90b3R5cGUsZyksaCYmbERlKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIs''@;'; + put 'put ''e3dyaXRhYmxlOiExfSl9KGQsW3trZXk6InNldENvbHVtbnNMaW1pdCIsdmFsdWU6ZnVuY3Rpb24oaCl7RnoodGhpcyxCZ2UsaCl9fSx7a2V5OiJzZXREYXRhIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBoPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50''@;'; + put 'put ''c1swXTpbXTtGeih0aGlzLCR2LEQ0dChoLHg4KHRoaXMsQmdlKSkpLEZ6KHRoaXMsZ00seDgodGhpcywkdikubGVuZ3RoKX19LHtrZXk6ImdldERhdGEiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHg4KHRoaXMsJHYpfX0se2tleToibWVyZ2VXaXRoIix2YWx1ZTpmdW5jdGlvbihoKXt2YXIg''@;'; + put 'put ''dj10aGlzO1VyKGgsZnVuY3Rpb24oeSl7dmFyIEM9eS5yb3csST15LmNvbCxqPWZ1bmN0aW9uIEI0dChkLGcpe2lmKG51bGw9PWQpcmV0dXJue307dmFyIHYseSxoPWZ1bmN0aW9uIFA0dChkLGcpe2lmKG51bGw9PWQpcmV0dXJue307dmFyIHksQyxoPXt9LHY9T2JqZWN0LmtleXMoZCk7Zm9y''@;'; + put 'put ''KEM9MDtDPHYubGVuZ3RoO0MrKykhKGcuaW5kZXhPZih5PXZbQ10pPj0wKSYmKGhbeV09ZFt5XSk7cmV0dXJuIGh9KGQsZyk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIEM9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhkKTtmb3IoeT0wO3k8Qy5sZW5ndGg7eSsr''@;'; + put 'put ''KSEoZy5pbmRleE9mKHY9Q1t5XSk+PTApJiYoIU9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChkLHYpfHwoaFt2XT1kW3ZdKSl9cmV0dXJuIGh9KHksTDR0KSx1ZT12LmdldEhlYWRlclNldHRpbmdzKEMsSSk7bnVsbCE9PXVlJiZJMSh1ZSxqLHVEZSl9KX19LHtr''@;'; + put 'put ''ZXk6Im1hcCIsdmFsdWU6ZnVuY3Rpb24oaCl7VXIoeDgodGhpcywkdiksZnVuY3Rpb24odil7VXIodixmdW5jdGlvbih5KXt2YXIgQz1oKGZ1bmN0aW9uIE80dChkKXtmb3IodmFyIGc9MTtnPGFyZ3VtZW50cy5sZW5ndGg7ZysrKXt2YXIgaD1udWxsIT1hcmd1bWVudHNbZ10/YXJndW1lbnRz''@;'; + put 'put ''W2ddOnt9O2clMj9hRGUoT2JqZWN0KGgpLCEwKS5mb3JFYWNoKGZ1bmN0aW9uKHYpe1I0dChkLHYsaFt2XSl9KTpPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhkLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKGgpKTphRGUo''@;'; + put 'put ''T2JqZWN0KGgpKS5mb3JFYWNoKGZ1bmN0aW9uKHYpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihoLHYpKX0pfXJldHVybiBkfSh7fSx5KSk7eGwoQykmJkkxKHksQyx1RGUpfSl9KX19LHtrZXk6ImdldEhlYWRlclNldHRpbmdzIix2''@;'; + put 'put ''YWx1ZTpmdW5jdGlvbihoLHYpe3ZhciB5O2lmKGg+PXg4KHRoaXMsZ00pfHxoPDApcmV0dXJuIG51bGw7dmFyIEM9eDgodGhpcywkdilbaF07cmV0dXJuIHY+PUMubGVuZ3RoP251bGw6bnVsbCE9PSh5PUNbdl0pJiZ2b2lkIDAhPT15P3k6bnVsbH19LHtrZXk6ImdldEhlYWRlcnNTZXR0aW5n''@;'; + put 'put ''cyIsdmFsdWU6ZnVuY3Rpb24oaCx2KXt2YXIgeT1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06MSxDPVtdO2lmKGg+PXg4KHRoaXMsZ00pfHxoPDApcmV0dXJuIEM7Zm9yKHZhciBJPXg4KHRoaXMsJHYpW2hdLGo9MCx1ZT12O3VlPEkubGVu''@;'; + put 'put ''Z3RoO3VlKyspe3ZhciBfZT1JW3VlXTtpZihfZS5pc1BsYWNlaG9sZGVyKXRocm93IG5ldyBFcnJvcigiVGhlIGZpcnN0IGNvbHVtbiBzZXR0aW5ncyBjYW5ub3Qgb3ZlcmxhcCB0aGUgb3RoZXIgaGVhZGVyIGxheWVycyIpO2lmKGorPV9lLmNvbHNwYW4sQy5wdXNoKF9lKSxfZS5jb2xzcGFu''@;'; + put 'put ''PjEmJih1ZSs9X2UuY29sc3Bhbi0xKSxqPT09eSlicmVhaztpZihqPnkpdGhyb3cgbmV3IEVycm9yKCJUaGUgbGFzdCBjb2x1bW4gc2V0dGluZ3MgY2Fubm90IG92ZXJsYXAgdGhlIG90aGVyIGhlYWRlciBsYXllcnMiKX1yZXR1cm4gQ319LHtrZXk6ImdldExheWVyc0NvdW50Iix2YWx1ZTpm''@;'; + put 'put ''dW5jdGlvbigpe3JldHVybiB4OCh0aGlzLGdNKX19LHtrZXk6ImdldENvbHVtbnNDb3VudCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4geDgodGhpcyxnTSk+MD94OCh0aGlzLCR2KVswXS5sZW5ndGg6MH19LHtrZXk6ImNsZWFyIix2YWx1ZTpmdW5jdGlvbigpe0Z6KHRoaXMsJHYsW10pLEZ6''@;'; + put 'put ''KHRoaXMsZ00sMCl9fV0pLGR9KCk7ZnVuY3Rpb24gY0RlKGQsZyl7dmFyIGg9T2JqZWN0LmtleXMoZCk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHY9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhkKTtnJiYodj12LmZpbHRlcihmdW5jdGlvbih5KXtyZXR1cm4g''@;'; + put 'put ''T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLHkpLmVudW1lcmFibGV9KSksaC5wdXNoLmFwcGx5KGgsdil9cmV0dXJuIGh9ZnVuY3Rpb24gZkRlKGQpe2Zvcih2YXIgZz0xO2c8YXJndW1lbnRzLmxlbmd0aDtnKyspe3ZhciBoPW51bGwhPWFyZ3VtZW50c1tnXT9hcmd1bWVudHNb''@;'; + put 'put ''Z106e307ZyUyP2NEZShPYmplY3QoaCksITApLmZvckVhY2goZnVuY3Rpb24odil7eG5lKGQsdixoW3ZdKX0pOk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGQsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMoaCkpOmNEZShP''@;'; + put 'put ''YmplY3QoaCkpLmZvckVhY2goZnVuY3Rpb24odil7T2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdixPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGgsdikpfSl9cmV0dXJuIGR9ZnVuY3Rpb24gaERlKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5l''@;'; + put 'put ''bnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19ZnVuY3Rpb24geG5lKGQsZyxoKXtyZXR1cm4gZyBpbiBkP09iamVjdC5kZWZpbmVQcm9wZXJ0eShk''@;'; + put 'put ''LGcse3ZhbHVlOmgsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpkW2ddPWgsZH1mdW5jdGlvbiBQZ2UoZCxnKXsobnVsbD09Z3x8Zz5kLmxlbmd0aCkmJihnPWQubGVuZ3RoKTtmb3IodmFyIGg9MCx2PW5ldyBBcnJheShnKTtoPGc7aCsrKXZbaF09ZFtoXTty''@;'; + put 'put ''ZXR1cm4gdn12YXIgbURlPW5ldyBNYXAoW1siREYtcHJlLW9yZGVyIixmdW5jdGlvbiBkRGUoZCxnKXtmb3IodmFyIGg9ZC5jYWxsKGcsdGhpcyksdj0wO3Y8dGhpcy5jaGlsZHMubGVuZ3RoO3YrKyl7aWYoITE9PT1oKXJldHVybiExO2g9ZERlLmNhbGwodGhpcy5jaGlsZHNbdl0sZCxnKX1y''@;'; + put 'put ''ZXR1cm4gaH1dLFsiREYtcG9zdC1vcmRlciIsZnVuY3Rpb24gcERlKGQsZyl7Zm9yKHZhciBoPTA7aDx0aGlzLmNoaWxkcy5sZW5ndGg7aCsrKWlmKCExPT09cERlLmNhbGwodGhpcy5jaGlsZHNbaF0sZCxnKSlyZXR1cm4hMTtyZXR1cm4gZC5jYWxsKGcsdGhpcyl9XSxbIkJGIixmdW5jdGlv''@;'; + put 'put ''biAkNHQoZCxnKXt2YXIgaD1bdGhpc107IWZ1bmN0aW9uIHYoKXtpZigwIT09aC5sZW5ndGgpe3ZhciB5PWguc2hpZnQoKTtoLnB1c2guYXBwbHkoaCxmdW5jdGlvbiBXNHQoZCl7cmV0dXJuIGZ1bmN0aW9uIEo0dChkKXtpZihBcnJheS5pc0FycmF5KGQpKXJldHVybiBQZ2UoZCl9KGQpfHxm''@;'; + put 'put ''dW5jdGlvbiBRNHQoZCl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJm51bGwhPWRbU3ltYm9sLml0ZXJhdG9yXXx8bnVsbCE9ZFsiQEBpdGVyYXRvciJdKXJldHVybiBBcnJheS5mcm9tKGQpfShkKXx8ZnVuY3Rpb24gVTR0KGQsZyl7aWYoZCl7aWYoInN0cmluZyI9PXR5cGVvZiBk''@;'; + put 'put ''KXJldHVybiBQZ2UoZCxnKTt2YXIgaD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZCkuc2xpY2UoOCwtMSk7aWYoIk9iamVjdCI9PT1oJiZkLmNvbnN0cnVjdG9yJiYoaD1kLmNvbnN0cnVjdG9yLm5hbWUpLCJNYXAiPT09aHx8IlNldCI9PT1oKXJldHVybiBBcnJheS5mcm9tKGQp''@;'; + put 'put ''O2lmKCJBcmd1bWVudHMiPT09aHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QoaCkpcmV0dXJuIFBnZShkLGcpfX0oZCl8fGZ1bmN0aW9uIFk0dCgpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBzcHJlYWQgbm9uLWl0ZXJh''@;'; + put 'put ''YmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfSh5LmNoaWxkcykpLCExIT09ZC5jYWxsKGcseSkmJnYoKX19KCl9XV0pLHZEZT1mdW5jdGlvbigpe2Z1bmN0''@;'; + put 'put ''aW9uIGQoZyl7KGZ1bmN0aW9uIHo0dChkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSkodGhpcyxkKSx4bmUodGhpcywiZGF0YSIse30pLHhuZSh0aGlzLCJwYXJlbnQiLG51bGwpLHhuZSh0''@;'; + put 'put ''aGlzLCJjaGlsZHMiLFtdKSx0aGlzLmRhdGE9Z31yZXR1cm4gZnVuY3Rpb24gRzR0KGQsZyxoKXtnJiZoRGUoZC5wcm90b3R5cGUsZyksaCYmaERlKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGQsW3trZXk6ImFkZENoaWxkIix2YWx1''@;'; + put 'put ''ZTpmdW5jdGlvbihoKXtoLnBhcmVudD10aGlzLHRoaXMuY2hpbGRzLnB1c2goaCl9fSx7a2V5OiJjbG9uZVRyZWUiLHZhbHVlOmZ1bmN0aW9uKCl7Zm9yKHZhciBoPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp0aGlzLHY9bmV3IGQoZkRl''@;'; + put 'put ''KHt9LGguZGF0YSkpLHk9MDt5PGguY2hpbGRzLmxlbmd0aDt5Kyspdi5hZGRDaGlsZCh0aGlzLmNsb25lVHJlZShoLmNoaWxkc1t5XSkpO3JldHVybiB2fX0se2tleToicmVwbGFjZVRyZWVXaXRoIix2YWx1ZTpmdW5jdGlvbihoKXt0aGlzLmRhdGE9ZkRlKHt9LGguZGF0YSksdGhpcy5jaGls''@;'; + put 'put ''ZHM9W107Zm9yKHZhciB2PTA7djxoLmNoaWxkcy5sZW5ndGg7disrKXRoaXMuYWRkQ2hpbGQoaC5jaGlsZHNbdl0pfX0se2tleToid2Fsa0Rvd24iLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB2PWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXToi''@;'; + put 'put ''QkYiO2lmKCFtRGUuaGFzKHYpKXRocm93IG5ldyBFcnJvcignVHJhdmVyc2FsIHN0cmF0ZWd5ICInLmNvbmNhdCh2LCciIGRvZXMgbm90IGV4aXN0JykpO21EZS5nZXQodikuY2FsbCh0aGlzLGgsdGhpcyl9fSx7a2V5OiJ3YWxrVXAiLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB2PXRoaXM7IWZ1''@;'; + put 'put ''bmN0aW9uIEMoSSl7ITEhPT1oLmNhbGwodixJKSYmbnVsbCE9PUkucGFyZW50JiZDKEkucGFyZW50KX0odGhpcyl9fV0pLGR9KCk7ZnVuY3Rpb24gQURlKGQsZyl7dmFyIGg9T2JqZWN0LmtleXMoZCk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHY9T2JqZWN0LmdldE93''@;'; + put 'put ''blByb3BlcnR5U3ltYm9scyhkKTtnJiYodj12LmZpbHRlcihmdW5jdGlvbih5KXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLHkpLmVudW1lcmFibGV9KSksaC5wdXNoLmFwcGx5KGgsdil9cmV0dXJuIGh9ZnVuY3Rpb24geURlKGQpe2Zvcih2YXIgZz0xO2c8YXJn''@;'; + put 'put ''dW1lbnRzLmxlbmd0aDtnKyspe3ZhciBoPW51bGwhPWFyZ3VtZW50c1tnXT9hcmd1bWVudHNbZ106e307ZyUyP0FEZShPYmplY3QoaCksITApLmZvckVhY2goZnVuY3Rpb24odil7ZXB0KGQsdixoW3ZdKX0pOk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQ''@;'; + put 'put ''cm9wZXJ0aWVzKGQsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMoaCkpOkFEZShPYmplY3QoaCkpLmZvckVhY2goZnVuY3Rpb24odil7T2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdixPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGgsdikpfSl9cmV0dXJuIGR9ZnVuY3Rp''@;'; + put 'put ''b24gZXB0KGQsZyxoKXtyZXR1cm4gZyBpbiBkP09iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGcse3ZhbHVlOmgsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpkW2ddPWgsZH1mdW5jdGlvbiB3RGUoZCxnKXsobnVsbD09Z3x8Zz5kLmxlbmd0aCkmJihnPWQubGVu''@;'; + put 'put ''Z3RoKTtmb3IodmFyIGg9MCx2PW5ldyBBcnJheShnKTtoPGc7aCsrKXZbaF09ZFtoXTtyZXR1cm4gdn1mdW5jdGlvbiBiRGUoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwi''@;'; + put 'put ''dmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX1mdW5jdGlvbiBGZ2UoZCxnLGgpeyhmdW5jdGlvbiBzcHQoZCxnKXtpZihnLmhhcyhkKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgaW5pdGlhbGl6ZSB0aGUgc2FtZSBwcml2''@;'; + put 'put ''YXRlIGVsZW1lbnRzIHR3aWNlIG9uIGFuIG9iamVjdCIpfSkoZCxnKSxnLnNldChkLGgpfWZ1bmN0aW9uIGYzKGQsZyl7cmV0dXJuIGZ1bmN0aW9uIHVwdChkLGcpe3JldHVybiBnLmdldD9nLmdldC5jYWxsKGQpOmcudmFsdWV9KGQsX0RlKGQsZywiZ2V0IikpfWZ1bmN0aW9uIF9EZShkLGcs''@;'; + put 'put ''aCl7aWYoIWcuaGFzKGQpKXRocm93IG5ldyBUeXBlRXJyb3IoImF0dGVtcHRlZCB0byAiK2grIiBwcml2YXRlIGZpZWxkIG9uIG5vbi1pbnN0YW5jZSIpO3JldHVybiBnLmdldChkKX12YXIga0RlLFNEZSxzUj1uZXcgV2Vha01hcCxtTT1uZXcgV2Vha01hcCx1Uj1uZXcgV2Vha01hcCxocHQ9''@;'; + put 'put ''ZnVuY3Rpb24oKXtmdW5jdGlvbiBkKGcpeyhmdW5jdGlvbiBhcHQoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0pKHRoaXMsZCksRmdlKHRoaXMsc1Ise3dyaXRhYmxlOiEwLHZhbHVlOm5l''@;'; + put 'put ''dyBNYXB9KSxGZ2UodGhpcyxtTSx7d3JpdGFibGU6ITAsdmFsdWU6bmV3IE1hcH0pLEZnZSh0aGlzLHVSLHt3cml0YWJsZTohMCx2YWx1ZTpudWxsfSksZnVuY3Rpb24gY3B0KGQsZyxoKXtyZXR1cm4gZnVuY3Rpb24gZnB0KGQsZyxoKXtpZihnLnNldClnLnNldC5jYWxsKGQsaCk7ZWxzZXtp''@;'; + put 'put ''ZighZy53cml0YWJsZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJhdHRlbXB0ZWQgdG8gc2V0IHJlYWQgb25seSBwcml2YXRlIGZpZWxkIik7Zy52YWx1ZT1ofX0oZCxfRGUoZCxnLCJzZXQiKSxoKSxofSh0aGlzLHVSLGcpfXJldHVybiBmdW5jdGlvbiBscHQoZCxnLGgpe2cmJmJEZShkLnByb3Rv''@;'; + put 'put ''dHlwZSxnKSxoJiZiRGUoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oZCxbe2tleToiZ2V0Um9vdHMiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIEFycmF5LmZyb20oZjModGhpcyxzUikudmFsdWVzKCkpfX0se2tleToiZ2V0Um9vdEJ5''@;'; + put 'put ''Q29sdW1uIix2YWx1ZTpmdW5jdGlvbihoKXt2YXIgdjtyZXR1cm4gZjModGhpcyxtTSkuaGFzKGgpJiYodj1mMyh0aGlzLHNSKS5nZXQoZjModGhpcyxtTSkuZ2V0KGgpKSksdn19LHtrZXk6ImdldE5vZGUiLHZhbHVlOmZ1bmN0aW9uKGgsdil7dmFyIHk9dGhpcy5nZXRSb290QnlDb2x1bW4o''@;'; + put 'put ''dik7aWYoeSl7dmFyIGosQz12LWYzKHRoaXMsbU0pLmdldCh2KSxJPTA7cmV0dXJuIHkud2Fsa0Rvd24oZnVuY3Rpb24odWUpe3ZhciBfZT11ZS5kYXRhLEJlPV9lLm9yaWdDb2xzcGFuO2lmKGg9PT1fZS5oZWFkZXJMZXZlbCl7aWYoQz49SSYmQzw9SStCZS0xKXJldHVybiBqPXVlLCExO0kr''@;'; + put 'put ''PUJlfX0pLGp9fX0se2tleToicmVidWlsZFRyZWVJbmRleCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD10aGlzLHY9MDtmMyh0aGlzLG1NKS5jbGVhcigpLFVyKGYzKHRoaXMsc1IpLGZ1bmN0aW9uKHkpe2Zvcih2YXIgST1mdW5jdGlvbiB0cHQoZCxnKXtyZXR1cm4gZnVuY3Rpb24gb3B0KGQp''@;'; + put 'put ''e2lmKEFycmF5LmlzQXJyYXkoZCkpcmV0dXJuIGR9KGQpfHxmdW5jdGlvbiBpcHQoZCxnKXt2YXIgaD1udWxsPT1kP251bGw6InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJmRbU3ltYm9sLml0ZXJhdG9yXXx8ZFsiQEBpdGVyYXRvciJdO2lmKG51bGwhPWgpe3ZhciBJLGosdj1bXSx5PSEw''@;'; + put 'put ''LEM9ITE7dHJ5e2ZvcihoPWguY2FsbChkKTshKHk9KEk9aC5uZXh0KCkpLmRvbmUpJiYodi5wdXNoKEkudmFsdWUpLCFnfHx2Lmxlbmd0aCE9PWcpO3k9ITApO31jYXRjaCh1ZSl7Qz0hMCxqPXVlfWZpbmFsbHl7dHJ5eyF5JiZudWxsIT1oLnJldHVybiYmaC5yZXR1cm4oKX1maW5hbGx5e2lm''@;'; + put 'put ''KEMpdGhyb3cgan19cmV0dXJuIHZ9fShkLGcpfHxmdW5jdGlvbiBycHQoZCxnKXtpZihkKXtpZigic3RyaW5nIj09dHlwZW9mIGQpcmV0dXJuIHdEZShkLGcpO3ZhciBoPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChkKS5zbGljZSg4LC0xKTtpZigiT2JqZWN0Ij09PWgmJmQuY29u''@;'; + put 'put ''c3RydWN0b3ImJihoPWQuY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1ofHwiU2V0Ij09PWgpcmV0dXJuIEFycmF5LmZyb20oZCk7aWYoIkFyZ3VtZW50cyI9PT1ofHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChoKSlyZXR1cm4gd0RlKGQsZyl9fShk''@;'; + put 'put ''LGcpfHxmdW5jdGlvbiBucHQoKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0''@;'; + put 'put ''b3JdKCkgbWV0aG9kLiIpfSgpfSh5LDIpWzFdLmRhdGEuY29sc3BhbixqPXY7ajx2K0k7aisrKWYzKGgsbU0pLnNldChqLHYpO3YrPUl9KX19LHtrZXk6ImJ1aWxkVHJlZSIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmNsZWFyKCk7Zm9yKHZhciBoPWYzKHRoaXMsdVIpLmdldENvbHVtbnNDb3Vu''@;'; + put 'put ''dCgpLHY9MDt2PGg7KXt2YXIgeT1mMyh0aGlzLHVSKS5nZXRIZWFkZXJTZXR0aW5ncygwLHYpLEM9bmV3IHZEZTtmMyh0aGlzLHNSKS5zZXQodixDKSx0aGlzLmJ1aWxkTGVhdmVzKEMsdiwwLHkub3JpZ0NvbHNwYW4pLHYrPXkub3JpZ0NvbHNwYW59dGhpcy5yZWJ1aWxkVHJlZUluZGV4KCl9''@;'; + put 'put ''fSx7a2V5OiJidWlsZExlYXZlcyIsdmFsdWU6ZnVuY3Rpb24oaCx2LHkpe3ZhciBDPXRoaXMsST1hcmd1bWVudHMubGVuZ3RoPjMmJnZvaWQgMCE9PWFyZ3VtZW50c1szXT9hcmd1bWVudHNbM106MSxqPWYzKHRoaXMsdVIpLmdldEhlYWRlcnNTZXR0aW5ncyh5LHYsSSk7eSs9MSxVcihqLGZ1''@;'; + put 'put ''bmN0aW9uKHVlKXt2YXIgQmUsX2U9eURlKHlEZSh7fSx1ZSkse30se2hlYWRlckxldmVsOnktMSxjb2x1bW5JbmRleDp2fSk7MT09PXk/KGguZGF0YT1fZSxCZT1oKTooQmU9bmV3IHZEZShfZSksaC5hZGRDaGlsZChCZSkpLHk8ZjMoQyx1UikuZ2V0TGF5ZXJzQ291bnQoKSYmQy5idWlsZExl''@;'; + put 'put ''YXZlcyhCZSx2LHksdWUub3JpZ0NvbHNwYW4pLHYrPXVlLm9yaWdDb2xzcGFufSl9fSx7a2V5OiJjbGVhciIsdmFsdWU6ZnVuY3Rpb24oKXtmMyh0aGlzLHNSKS5jbGVhcigpLGYzKHRoaXMsbU0pLmNsZWFyKCl9fV0pLGR9KCk7ZnVuY3Rpb24gQ0RlKGQsZyl7ZC53YWxrRG93bihmdW5jdGlv''@;'; + put 'put ''bihoKXt2YXIgdj1oLmRhdGEseT1oLmNoaWxkcztpZighdi5pc0hpZGRlbiYmKGcodi5jb2x1bW5JbmRleCksMD09PXkubGVuZ3RoKSlmb3IodmFyIEM9MTtDPHYuY29sc3BhbjtDKyspZyh2LmNvbHVtbkluZGV4K0MpfSl9ZnVuY3Rpb24gVG5lKGQsZyl7dmFyIGg9ZC5jaGlsZHM7aWYoMCE9''@;'; + put 'put ''PWgubGVuZ3RoKXJldHVybiBoWzBdLmRhdGFbZ119ZnVuY3Rpb24gSW5lKGQpe3JldHVybiBUbmUoZCwib3JpZ0NvbHNwYW4iKT09PWQuZGF0YS5vcmlnQ29sc3Bhbn1mdW5jdGlvbiBIZ2UoZCl7dmFyIGc9ZC5kYXRhLGg9ZC5jaGlsZHM7aWYoIWcuaXNDb2xsYXBzZWR8fGcuaXNIaWRkZW58''@;'; + put 'put ''fGcub3JpZ0NvbHNwYW48PTEpcmV0dXJue3JvbGxiYWNrTW9kaWZpY2F0aW9uOmZ1bmN0aW9uKCl7fSxhZmZlY3RlZENvbHVtbnM6W10sY29sc3BhbkNvbXBlbnNhdGlvbjowfTtpZihJbmUoZCkpcmV0dXJuIEhnZShoWzBdKTtnLmlzQ29sbGFwc2VkPSExO3ZhciB5PWguc2xpY2UoMSksQz1u''@;'; + put 'put ''ZXcgU2V0LEk9MDtpZih5Lmxlbmd0aD4wKVVyKHksZnVuY3Rpb24oTmUpe05lLnJlcGxhY2VUcmVlV2l0aChOZS5kYXRhLmNsb25lZFRyZWUpLE5lLmRhdGEuY2xvbmVkVHJlZT1udWxsLEkrPU5lLmRhdGEuY29sc3BhbixDRGUoTmUsZnVuY3Rpb24oZHQpe0MuYWRkKGR0KX0pfSk7ZWxzZXt2''@;'; + put 'put ''YXIgdWU9Zy5vcmlnQ29sc3BhbixfZT1nLmNvbHVtbkluZGV4O0k9dWUtZy5jb2xzcGFuO2Zvcih2YXIgQmU9MTtCZTx1ZTtCZSsrKUMuYWRkKF9lK0JlKX1yZXR1cm4gZC53YWxrVXAoZnVuY3Rpb24oTmUpe3ZhciBLZT1OZS5kYXRhO0tlLmNvbHNwYW4rPUksS2UuY29sc3Bhbj49S2Uub3Jp''@;'; + put 'put ''Z0NvbHNwYW4/KEtlLmNvbHNwYW49S2Uub3JpZ0NvbHNwYW4sS2UuaXNDb2xsYXBzZWQ9ITEpOkluZShOZSkmJihLZS5pc0NvbGxhcHNlZD1UbmUoTmUsImlzQ29sbGFwc2VkIikpfSkse3JvbGxiYWNrTW9kaWZpY2F0aW9uOmZ1bmN0aW9uKCl7cmV0dXJuIE5nZShkKX0sYWZmZWN0ZWRDb2x1''@;'; + put 'put ''bW5zOkFycmF5LmZyb20oQyksY29sc3BhbkNvbXBlbnNhdGlvbjpJfX1mdW5jdGlvbiBOZ2UoZCl7dmFyIGcsaD1kLmRhdGEsdj1kLmNoaWxkcztpZihoLmlzQ29sbGFwc2VkfHxoLmlzSGlkZGVufHxoLm9yaWdDb2xzcGFuPD0xKXJldHVybntyb2xsYmFja01vZGlmaWNhdGlvbjpmdW5jdGlv''@;'; + put 'put ''bigpe30sYWZmZWN0ZWRDb2x1bW5zOltdLGNvbHNwYW5Db21wZW5zYXRpb246MH07aWYoSW5lKGQpKXJldHVybiBOZ2UodlswXSk7aC5pc0NvbGxhcHNlZD0hMDt2YXIgQz12LnNsaWNlKDEpLEk9bmV3IFNldDtpZihDLmxlbmd0aD4wKVVyKEMsZnVuY3Rpb24oS2Upe0NEZShLZSxmdW5jdGlv''@;'; + put 'put ''bihkdCl7SS5hZGQoZHQpfSksS2UuZGF0YS5jbG9uZWRUcmVlPUtlLmNsb25lVHJlZSgpLEtlLndhbGtEb3duKGZ1bmN0aW9uKGR0KXtkdC5kYXRhLmlzSGlkZGVuPSEwfSl9KTtlbHNlIGZvcih2YXIgaj1oLm9yaWdDb2xzcGFuLHVlPWguY29sdW1uSW5kZXgsX2U9MTtfZTxqO19lKyspSS5h''@;'; + put 'put ''ZGQodWUrX2UpO3ZhciBOZT1oLmNvbHNwYW4tKG51bGwhPT0oZz1UbmUoZCwiY29sc3BhbiIpKSYmdm9pZCAwIT09Zz9nOjEpO3JldHVybiBkLndhbGtVcChmdW5jdGlvbihLZSl7dmFyIGR0PUtlLmRhdGE7ZHQuY29sc3Bhbi09TmUsZHQuY29sc3Bhbjw9MT8oZHQuY29sc3Bhbj0xLGR0Lmlz''@;'; + put 'put ''Q29sbGFwc2VkPSEwKTpJbmUoS2UpJiYoZHQuaXNDb2xsYXBzZWQ9VG5lKEtlLCJpc0NvbGxhcHNlZCIpKX0pLHtyb2xsYmFja01vZGlmaWNhdGlvbjpmdW5jdGlvbigpe3JldHVybiBIZ2UoZCl9LGFmZmVjdGVkQ29sdW1uczpBcnJheS5mcm9tKEkpLGNvbHNwYW5Db21wZW5zYXRpb246TmV9''@;'; + put 'put ''fXZhciBNRGU9bmV3IE1hcChbWyJjb2xsYXBzZSIsTmdlXSxbImV4cGFuZCIsSGdlXSxbImhpZGUtY29sdW1uIixmdW5jdGlvbiBwcHQoZCxnKXtpZighTnVtYmVyLmlzSW50ZWdlcihnKSl0aHJvdyBuZXcgRXJyb3IoIlRoZSBwYXNzZWQgZ3JpZENvbHVtbkluZGV4IGFyZ3VtZW50IGhhcyBp''@;'; + put 'put ''bnZhbGlkIHR5cGUuIik7aWYoZC5jaGlsZHMubGVuZ3RoPjApdGhyb3cgbmV3IEVycm9yKFAyKGtEZXx8KGtEZT1mdW5jdGlvbiBkcHQoZCxnKXtyZXR1cm4gZ3x8KGc9ZC5zbGljZSgwKSksT2JqZWN0LmZyZWV6ZShPYmplY3QuZGVmaW5lUHJvcGVydGllcyhkLHtyYXc6e3ZhbHVlOk9iamVj''@;'; + put 'put ''dC5mcmVlemUoZyl9fSkpfShbIlRoZSBwYXNzZWQgbm9kZSBpcyBub3QgdGhlIGxhc3Qgbm9kZSBvbiB0aGUgdHJlZS4gT25seSBmb3IgXG50aGUgbGFzdCBub2RlLCB0aGUgaGlkZSBjb2x1bW4gbW9kaWZpY2F0aW9uIGNhbiBiZSBhcHBsaWVkLiJdLFsiVGhlIHBhc3NlZCBub2RlIGlzIG5v''@;'; + put 'put ''dCB0aGUgbGFzdCBub2RlIG9uIHRoZSB0cmVlLiBPbmx5IGZvclxceDIwXG50aGUgbGFzdCBub2RlLCB0aGUgaGlkZSBjb2x1bW4gbW9kaWZpY2F0aW9uIGNhbiBiZSBhcHBsaWVkLiJdKSkpKTtpZighZC5kYXRhLmNyb3NzSGlkZGVuQ29sdW1ucy5pbmNsdWRlcyhnKSl7dmFyIHY9ITE7ZC53''@;'; + put 'put ''YWxrVXAoZnVuY3Rpb24oeSl7aWYoeS5kYXRhLmNvbGxhcHNpYmxlKXJldHVybiB2PSEwLCExfSksIXYmJmQud2Fsa1VwKGZ1bmN0aW9uKHkpe3ZhciBDPXkuZGF0YTtDLmNyb3NzSGlkZGVuQ29sdW1ucy5wdXNoKGcpLEMuY29sc3Bhbj4xP0MuY29sc3Bhbi09MTpDLmlzSGlkZGVuPSEwfSl9''@;'; + put 'put ''fV0sWyJzaG93LWNvbHVtbiIsZnVuY3Rpb24gbXB0KGQsZyl7aWYoIU51bWJlci5pc0ludGVnZXIoZykpdGhyb3cgbmV3IEVycm9yKCJUaGUgcGFzc2VkIGdyaWRDb2x1bW5JbmRleCBhcmd1bWVudCBoYXMgaW52YWxpZCB0eXBlLiIpO2lmKGQuY2hpbGRzLmxlbmd0aD4wKXRocm93IG5ldyBF''@;'; + put 'put ''cnJvcihQMihTRGV8fChTRGU9ZnVuY3Rpb24gZ3B0KGQsZyl7cmV0dXJuIGd8fChnPWQuc2xpY2UoMCkpLE9iamVjdC5mcmVlemUoT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZCx7cmF3Ont2YWx1ZTpPYmplY3QuZnJlZXplKGcpfX0pKX0oWyJUaGUgcGFzc2VkIG5vZGUgaXMgbm90IHRoZSBs''@;'; + put 'put ''YXN0IG5vZGUgb24gdGhlIHRyZWUuIE9ubHkgZm9yIFxudGhlIGxhc3Qgbm9kZSwgdGhlIHNob3cgY29sdW1uIG1vZGlmaWNhdGlvbiBjYW4gYmUgYXBwbGllZC4iXSxbIlRoZSBwYXNzZWQgbm9kZSBpcyBub3QgdGhlIGxhc3Qgbm9kZSBvbiB0aGUgdHJlZS4gT25seSBmb3JcXHgyMFxudGhl''@;'; + put 'put ''IGxhc3Qgbm9kZSwgdGhlIHNob3cgY29sdW1uIG1vZGlmaWNhdGlvbiBjYW4gYmUgYXBwbGllZC4iXSkpKSk7aWYoZC5kYXRhLmNyb3NzSGlkZGVuQ29sdW1ucy5pbmNsdWRlcyhnKSl7dmFyIHY9ITE7ZC53YWxrVXAoZnVuY3Rpb24oeSl7aWYoeS5kYXRhLmNvbGxhcHNpYmxlKXJldHVybiB2''@;'; + put 'put ''PSEwLCExfSksIXYmJmQud2Fsa1VwKGZ1bmN0aW9uKHkpe3ZhciBDPXkuZGF0YTtDLmNyb3NzSGlkZGVuQ29sdW1ucy5zcGxpY2UoQy5jcm9zc0hpZGRlbkNvbHVtbnMuaW5kZXhPZihnKSwxKSwhQy5pc0hpZGRlbiYmQy5jb2xzcGFuPEMub3JpZ0NvbHNwYW4mJihDLmNvbHNwYW4rPTEpLEMu''@;'; + put 'put ''aXNIaWRkZW49ITF9KX19XV0pLEFwdD1bImNyb3NzSGlkZGVuQ29sdW1ucyJdO2Z1bmN0aW9uIERuZShkKXt2YXIgZz1bXTtyZXR1cm4gVXIoZCxmdW5jdGlvbihoKXtoLndhbGtEb3duKGZ1bmN0aW9uKHYpe2Zvcih2YXIgeT12LmRhdGEsQz15Lm9yaWdDb2xzcGFuLEk9eS5jb2x1bW5JbmRl''@;'; + put 'put ''eCx1ZT15LmNyb3NzSGlkZGVuQ29sdW1ucyxfZT1mdW5jdGlvbiBfcHQoZCxnKXt2YXIgaDtyZXR1cm4gQXJyYXkuaXNBcnJheShkW2ddKT9oPWRbZ106ZFtnXT1oPVtdLGh9KGcseS5oZWFkZXJMZXZlbCksQmU9ITEsTmU9STtOZTxJK0M7TmUrKylpZih1ZS5pbmNsdWRlcyhOZSl8fEJlKV9l''@;'; + put 'put ''LnB1c2goe2xhYmVsOiIiLGlzUGxhY2Vob2xkZXI6ITB9KTtlbHNle3ZhciBkdD1icHQoeSk7ZHQuaXNSb290PSEwLF9lLnB1c2goZHQpLEJlPSEwfX0pfSksZ31mdW5jdGlvbiBicHQoZCl7cmV0dXJuIGZ1bmN0aW9uIHlwdChkLGcpe2lmKG51bGw9PWQpcmV0dXJue307dmFyIHYseSxoPWZ1''@;'; + put 'put ''bmN0aW9uIHdwdChkLGcpe2lmKG51bGw9PWQpcmV0dXJue307dmFyIHksQyxoPXt9LHY9T2JqZWN0LmtleXMoZCk7Zm9yKEM9MDtDPHYubGVuZ3RoO0MrKykhKGcuaW5kZXhPZih5PXZbQ10pPj0wKSYmKGhbeV09ZFt5XSk7cmV0dXJuIGh9KGQsZyk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5''@;'; + put 'put ''U3ltYm9scyl7dmFyIEM9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhkKTtmb3IoeT0wO3k8Qy5sZW5ndGg7eSsrKSEoZy5pbmRleE9mKHY9Q1t5XSk+PTApJiYoIU9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChkLHYpfHwoaFt2XT1kW3ZdKSl9cmV0dXJu''@;'; + put 'put ''IGh9KExnZShkKSxBcHQpfXZhciBDcHQ9WyJyb3ciXTtmdW5jdGlvbiBFRGUoZCxnKXt2YXIgaD1PYmplY3Qua2V5cyhkKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgdj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGQpO2cmJih2PXYuZmlsdGVyKGZ1bmN0aW9u''@;'; + put 'put ''KHkpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQseSkuZW51bWVyYWJsZX0pKSxoLnB1c2guYXBwbHkoaCx2KX1yZXR1cm4gaH1mdW5jdGlvbiB4RGUoZCl7Zm9yKHZhciBnPTE7Zzxhcmd1bWVudHMubGVuZ3RoO2crKyl7dmFyIGg9bnVsbCE9YXJndW1lbnRzW2dd''@;'; + put 'put ''P2FyZ3VtZW50c1tnXTp7fTtnJTI/RURlKE9iamVjdChoKSwhMCkuZm9yRWFjaChmdW5jdGlvbih2KXtrcHQoZCx2LGhbdl0pfSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9y''@;'; + put 'put ''cyhoKSk6RURlKE9iamVjdChoKSkuZm9yRWFjaChmdW5jdGlvbih2KXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoaCx2KSl9KX1yZXR1cm4gZH1mdW5jdGlvbiBrcHQoZCxnLGgpe3JldHVybiBnIGluIGQ/T2JqZWN0LmRlZmluZVBy''@;'; + put 'put ''b3BlcnR5KGQsZyx7dmFsdWU6aCxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmRbZ109aCxkfWZ1bmN0aW9uIFREZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29u''@;'; + put 'put ''ZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fWZ1bmN0aW9uIFZnZShkLGcsaCl7KGZ1bmN0aW9uIFRwdChkLGcpe2lmKGcuaGFzKGQpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBpbml0aWFsaXpl''@;'; + put 'put ''IHRoZSBzYW1lIHByaXZhdGUgZWxlbWVudHMgdHdpY2Ugb24gYW4gb2JqZWN0Iil9KShkLGcpLGcuc2V0KGQsaCl9ZnVuY3Rpb24gSHooZCxnLGgpe3JldHVybiBmdW5jdGlvbiBJcHQoZCxnLGgpe2lmKGcuc2V0KWcuc2V0LmNhbGwoZCxoKTtlbHNle2lmKCFnLndyaXRhYmxlKXRocm93IG5l''@;'; + put 'put ''dyBUeXBlRXJyb3IoImF0dGVtcHRlZCB0byBzZXQgcmVhZCBvbmx5IHByaXZhdGUgZmllbGQiKTtnLnZhbHVlPWh9fShkLElEZShkLGcsInNldCIpLGgpLGh9ZnVuY3Rpb24gTXUoZCxnKXtyZXR1cm4gZnVuY3Rpb24gRHB0KGQsZyl7cmV0dXJuIGcuZ2V0P2cuZ2V0LmNhbGwoZCk6Zy52YWx1''@;'; + put 'put ''ZX0oZCxJRGUoZCxnLCJnZXQiKSl9ZnVuY3Rpb24gSURlKGQsZyxoKXtpZighZy5oYXMoZCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiYXR0ZW1wdGVkIHRvICIraCsiIHByaXZhdGUgZmllbGQgb24gbm9uLWluc3RhbmNlIik7cmV0dXJuIGcuZ2V0KGQpfXZhciBOZz1uZXcgV2Vha01hcCxfND1u''@;'; + put 'put ''ZXcgV2Vha01hcCx2TT1uZXcgV2Vha01hcCxMcHQ9ZnVuY3Rpb24oKXtmdW5jdGlvbiBkKCl7KGZ1bmN0aW9uIEVwdChkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSkodGhpcyxkKSxWZ2Uo''@;'; + put 'put ''dGhpcyxOZyx7d3JpdGFibGU6ITAsdmFsdWU6bmV3IFo0dH0pLFZnZSh0aGlzLF80LHt3cml0YWJsZTohMCx2YWx1ZTpuZXcgaHB0KE11KHRoaXMsTmcpKX0pLFZnZSh0aGlzLHZNLHt3cml0YWJsZTohMCx2YWx1ZTpbW11dfSl9cmV0dXJuIGZ1bmN0aW9uIHhwdChkLGcsaCl7ZyYmVERlKGQu''@;'; + put 'put ''cHJvdG90eXBlLGcpLGgmJlREZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShkLFt7a2V5OiJzZXRTdGF0ZSIsdmFsdWU6ZnVuY3Rpb24oaCl7TXUodGhpcyxOZykuc2V0RGF0YShoKTt2YXIgdj0hMTt0cnl7TXUodGhpcyxfNCkuYnVp''@;'; + put 'put ''bGRUcmVlKCl9Y2F0Y2goeSl7TXUodGhpcyxfNCkuY2xlYXIoKSxNdSh0aGlzLE5nKS5jbGVhcigpLHY9ITB9cmV0dXJuIEh6KHRoaXMsdk0sRG5lKE11KHRoaXMsXzQpLmdldFJvb3RzKCkpKSx2fX0se2tleToic2V0Q29sdW1uc0xpbWl0Iix2YWx1ZTpmdW5jdGlvbihoKXtNdSh0aGlzLE5n''@;'; + put 'put ''KS5zZXRDb2x1bW5zTGltaXQoaCl9fSx7a2V5OiJtZXJnZVN0YXRlV2l0aCIsdmFsdWU6ZnVuY3Rpb24oaCl7dmFyIHY9dGhpcyx5PU9sKGgsZnVuY3Rpb24oQyl7dmFyIEk9Qy5yb3csaj1mdW5jdGlvbiBTcHQoZCxnKXtpZihudWxsPT1kKXJldHVybnt9O3ZhciB2LHksaD1mdW5jdGlvbiBN''@;'; + put 'put ''cHQoZCxnKXtpZihudWxsPT1kKXJldHVybnt9O3ZhciB5LEMsaD17fSx2PU9iamVjdC5rZXlzKGQpO2ZvcihDPTA7Qzx2Lmxlbmd0aDtDKyspIShnLmluZGV4T2YoeT12W0NdKT49MCkmJihoW3ldPWRbeV0pO3JldHVybiBofShkLGcpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMp''@;'; + put 'put ''e3ZhciBDPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZCk7Zm9yKHk9MDt5PEMubGVuZ3RoO3krKykhKGcuaW5kZXhPZih2PUNbeV0pPj0wKSYmKCFPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoZCx2KXx8KGhbdl09ZFt2XSkpfXJldHVybiBofShDLENw''@;'; + put 'put ''dCk7cmV0dXJuIHhEZSh7cm93Okk8MD92LnJvd0Nvb3Jkc1RvTGV2ZWwoSSk6SX0sail9KTtNdSh0aGlzLE5nKS5tZXJnZVdpdGgoeSksTXUodGhpcyxfNCkuYnVpbGRUcmVlKCksSHoodGhpcyx2TSxEbmUoTXUodGhpcyxfNCkuZ2V0Um9vdHMoKSkpfX0se2tleToibWFwU3RhdGUiLHZhbHVl''@;'; + put 'put ''OmZ1bmN0aW9uKGgpe011KHRoaXMsTmcpLm1hcChoKSxNdSh0aGlzLF80KS5idWlsZFRyZWUoKSxIeih0aGlzLHZNLERuZShNdSh0aGlzLF80KS5nZXRSb290cygpKSl9fSx7a2V5OiJtYXBOb2RlcyIsdmFsdWU6ZnVuY3Rpb24oaCl7cmV0dXJuIFN1KE11KHRoaXMsXzQpLmdldFJvb3RzKCks''@;'; + put 'put ''ZnVuY3Rpb24odix5KXtyZXR1cm4geS53YWxrRG93bihmdW5jdGlvbihDKXt2YXIgST1oKEMuZGF0YSk7dm9pZCAwIT09SSYmdi5wdXNoKEkpfSksdn0sW10pfX0se2tleToidHJpZ2dlck5vZGVNb2RpZmljYXRpb24iLHZhbHVlOmZ1bmN0aW9uKGgsdix5KXt2PDAmJih2PXRoaXMucm93Q29v''@;'; + put 'put ''cmRzVG9MZXZlbCh2KSk7dmFyIEksQz1NdSh0aGlzLF80KS5nZXROb2RlKHYseSk7cmV0dXJuIEMmJihJPWZ1bmN0aW9uIHZwdChkLGcsaCl7aWYoIU1EZS5oYXMoZCkpdGhyb3cgbmV3IEVycm9yKCdUaGUgbm9kZSBtb2RpZmllciBhY3Rpb24gKCInLmNvbmNhdChkLCciKSBkb2VzIG5vdCBl''@;'; + put 'put ''eGlzdC4nKSk7cmV0dXJuIE1EZS5nZXQoZCkoZyxoKX0oaCxDLHkpLEh6KHRoaXMsdk0sRG5lKE11KHRoaXMsXzQpLmdldFJvb3RzKCkpKSksSX19LHtrZXk6InRyaWdnZXJDb2x1bW5Nb2RpZmljYXRpb24iLHZhbHVlOmZ1bmN0aW9uKGgsdil7cmV0dXJuIHRoaXMudHJpZ2dlck5vZGVNb2Rp''@;'; + put 'put ''ZmljYXRpb24oaCwtMSx2KX19LHtrZXk6InJvd0Nvb3Jkc1RvTGV2ZWwiLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB2PU1hdGgubWF4KHRoaXMuZ2V0TGF5ZXJzQ291bnQoKSwxKSx5PXYtMTtyZXR1cm4gTWF0aC5taW4oTWF0aC5tYXgoaCt2LDApLHkpfX0se2tleToibGV2ZWxUb1Jvd0Nvb3Jk''@;'; + put 'put ''cyIsdmFsdWU6ZnVuY3Rpb24oaCl7dmFyIHY9TWF0aC5tYXgodGhpcy5nZXRMYXllcnNDb3VudCgpLDEpO3JldHVybiBNYXRoLm1pbihNYXRoLm1heChoLXYsLXYpLC0xKX19LHtrZXk6ImdldEhlYWRlclNldHRpbmdzIix2YWx1ZTpmdW5jdGlvbihoLHYpe3ZhciB5LEM7cmV0dXJuIGg8MCYm''@;'; + put 'put ''KGg9dGhpcy5yb3dDb29yZHNUb0xldmVsKGgpKSxoPj10aGlzLmdldExheWVyc0NvdW50KCk/bnVsbDpudWxsIT09KHk9bnVsbD09PShDPU11KHRoaXMsdk0pW2hdKXx8dm9pZCAwPT09Qz92b2lkIDA6Q1t2XSkmJnZvaWQgMCE9PXk/eTpudWxsfX0se2tleToiZ2V0SGVhZGVyVHJlZU5vZGVE''@;'; + put 'put ''YXRhIix2YWx1ZTpmdW5jdGlvbihoLHYpe2g8MCYmKGg9dGhpcy5yb3dDb29yZHNUb0xldmVsKGgpKTt2YXIgeT1NdSh0aGlzLF80KS5nZXROb2RlKGgsdik7cmV0dXJuIHk/eERlKHt9LHkuZGF0YSk6bnVsbH19LHtrZXk6ImZpbmRMZWZ0TW9zdENvbHVtbkluZGV4Iix2YWx1ZTpmdW5jdGlv''@;'; + put 'put ''bihoLHYpe3ZhciB5O2lmKChudWxsIT09KHk9dGhpcy5nZXRIZWFkZXJTZXR0aW5ncyhoLHYpKSYmdm9pZCAwIT09eT95Ontpc1Jvb3Q6ITB9KS5pc1Jvb3QpcmV0dXJuIHY7Zm9yKHZhciBqPXYtMTtqPj0wOyl7dmFyIHVlO2lmKChudWxsIT09KHVlPXRoaXMuZ2V0SGVhZGVyU2V0dGluZ3Mo''@;'; + put 'put ''aCxqKSkmJnZvaWQgMCE9PXVlP3VlOntpc1Jvb3Q6ITB9KS5pc1Jvb3QpYnJlYWs7ai09MX1yZXR1cm4gan19LHtrZXk6ImdldExheWVyc0NvdW50Iix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBNdSh0aGlzLE5nKS5nZXRMYXllcnNDb3VudCgpfX0se2tleToiZ2V0Q29sdW1uc0NvdW50Iix2''@;'; + put 'put ''YWx1ZTpmdW5jdGlvbigpe3JldHVybiBNdSh0aGlzLE5nKS5nZXRDb2x1bW5zQ291bnQoKX19LHtrZXk6ImNsZWFyIix2YWx1ZTpmdW5jdGlvbigpe0h6KHRoaXMsdk0sW10pLE11KHRoaXMsTmcpLmNsZWFyKCksTXUodGhpcyxfNCkuY2xlYXIoKX19XSksZH0oKTtmdW5jdGlvbiBERGUoZCxn''@;'; + put 'put ''KXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX1mdW5jdGlvbiBOeihk''@;'; + put 'put ''LGcsaCl7cmV0dXJuIGcgaW4gZD9PYmplY3QuZGVmaW5lUHJvcGVydHkoZCxnLHt2YWx1ZTpoLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZFtnXT1oLGR9dmFyIEJwdD1mdW5jdGlvbigpe2Z1bmN0aW9uIGQoZyxoKXsoZnVuY3Rpb24gT3B0KGQsZyl7aWYo''@;'; + put 'put ''IShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KSh0aGlzLGQpLE56KHRoaXMsImhvdCIsdm9pZCAwKSxOeih0aGlzLCJuZXN0ZWRIZWFkZXJTZXR0aW5nc0dldHRlciIsdm9pZCAwKSxOeih0aGlzLCJsYXll''@;'; + put 'put ''cnNDb3VudCIsMCksTnoodGhpcywiY29udGFpbmVyIix2b2lkIDApLE56KHRoaXMsIndpZHRoc01hcCIsdm9pZCAwKSx0aGlzLmhvdD1nLHRoaXMubmVzdGVkSGVhZGVyU2V0dGluZ3NHZXR0ZXI9aCx0aGlzLndpZHRoc01hcD10aGlzLmhvdC5jb2x1bW5JbmRleE1hcHBlci5jcmVhdGVBbmRS''@;'; + put 'put ''ZWdpc3RlckluZGV4TWFwKCJuZXN0ZWRIZWFkZXJzLndpZHRoc01hcCIsInBoeXNpY2FsSW5kZXhUb1ZhbHVlIil9cmV0dXJuIGZ1bmN0aW9uIFJwdChkLGcsaCl7ZyYmRERlKGQucHJvdG90eXBlLGcpLGgmJkREZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3''@;'; + put 'put ''cml0YWJsZTohMX0pfShkLFt7a2V5OiJzZXRMYXllcnNDb3VudCIsdmFsdWU6ZnVuY3Rpb24oaCl7cmV0dXJuIHRoaXMubGF5ZXJzQ291bnQ9aCx0aGlzfX0se2tleToiZ2V0V2lkdGgiLHZhbHVlOmZ1bmN0aW9uKGgpe3JldHVybiB0aGlzLndpZHRoc01hcC5nZXRWYWx1ZUF0SW5kZXgodGhp''@;'; + put 'put ''cy5ob3QudG9QaHlzaWNhbENvbHVtbihoKSl9fSx7a2V5OiJidWlsZFdpZHRoc01hcCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmNvbnRhaW5lcj10aGlzLmhvdC5yb290RG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksdGhpcy5jb250YWluZXIuY2xhc3NMaXN0LmFkZCgiaGFuZHNvbnRh''@;'; + put 'put ''YmxlIiwiaHRHaG9zdFRhYmxlIiwiaHRBdXRvU2l6ZSIpLHRoaXMuX2J1aWxkR2hvc3RUYWJsZSh0aGlzLmNvbnRhaW5lciksdGhpcy5ob3Qucm9vdERvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodGhpcy5jb250YWluZXIpO3ZhciBoPXRoaXMuY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3JBbGwo''@;'; + put 'put ''InRyOmxhc3Qtb2YtdHlwZSB0aCIpLHY9aC5sZW5ndGg7dGhpcy53aWR0aHNNYXAuY2xlYXIoKTtmb3IodmFyIHk9MDt5PHY7eSsrKXt2YXIgQz10aGlzLmhvdC5jb2x1bW5JbmRleE1hcHBlci5nZXRWaXN1YWxGcm9tUmVuZGVyYWJsZUluZGV4KHkpLEk9dGhpcy5ob3QudG9QaHlzaWNhbENv''@;'; + put 'put ''bHVtbihDKTt0aGlzLndpZHRoc01hcC5zZXRWYWx1ZUF0SW5kZXgoSSxoW3ldLm9mZnNldFdpZHRoKX10aGlzLmNvbnRhaW5lci5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRoaXMuY29udGFpbmVyKSx0aGlzLmNvbnRhaW5lcj1udWxsfX0se2tleToiX2J1aWxkR2hvc3RUYWJsZSIsdmFsdWU6''@;'; + put 'put ''ZnVuY3Rpb24oaCl7Zm9yKHZhciB2PXRoaXMuaG90LHk9di5yb290RG9jdW1lbnQsQz12LmNvbHVtbkluZGV4TWFwcGVyLEk9eS5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCksaj15LmNyZWF0ZUVsZW1lbnQoInRhYmxlIiksdWU9ISF0aGlzLmhvdC5nZXRTZXR0aW5ncygpLmRyb3Bkb3duTWVu''@;'; + put 'put ''dSxfZT1DLmdldFJlbmRlcmFibGVJbmRleGVzTGVuZ3RoKCksQmU9MDtCZTx0aGlzLmxheWVyc0NvdW50O0JlKyspe2Zvcih2YXIgTmU9eS5jcmVhdGVFbGVtZW50KCJ0ciIpLEtlPTA7S2U8X2U7S2UrKyl7dmFyIGR0PUMuZ2V0VmlzdWFsRnJvbVJlbmRlcmFibGVJbmRleChLZSk7bnVsbD09''@;'; + put 'put ''PWR0JiYoZHQ9S2UpO3ZhciBPdD15LmNyZWF0ZUVsZW1lbnQoInRoIiksJHQ9dGhpcy5uZXN0ZWRIZWFkZXJTZXR0aW5nc0dldHRlcihCZSxkdCk7aWYoJHQmJighJHQuaXNQbGFjZWhvbGRlcnx8JHQuaXNIaWRkZW4pKXt2YXIgZm49JHQubGFiZWw7dWUmJihmbis9JzxidXR0b24gY2xhc3M9''@;'; + put 'put ''ImNoYW5nZVR5cGUiPjwvYnV0dG9uPicpLGt3KE90LGZuKSxPdC5jb2xTcGFuPSR0LmNvbHNwYW4sTmUuYXBwZW5kQ2hpbGQoT3QpfX1qLmFwcGVuZENoaWxkKE5lKX1JLmFwcGVuZENoaWxkKGopLGguYXBwZW5kQ2hpbGQoSSl9fSx7a2V5OiJjbGVhciIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlz''@;'; + put 'put ''LndpZHRoc01hcC5jbGVhcigpLHRoaXMuY29udGFpbmVyPW51bGx9fV0pLGR9KCk7Y29uc3QgUHB0PUJwdDtmdW5jdGlvbiBqZ2UoZCl7cmV0dXJuKGpnZT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihnKXtyZXR1''@;'; + put 'put ''cm4gdHlwZW9mIGd9OmZ1bmN0aW9uKGcpe3JldHVybiBnJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZnLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZnIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgZ30pKGQpfXZhciBMRGUsT0RlO2Z1bmN0aW9uIFJEZShkLGcpe3JldHVy''@;'; + put 'put ''biBnfHwoZz1kLnNsaWNlKDApKSxPYmplY3QuZnJlZXplKE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGQse3Jhdzp7dmFsdWU6T2JqZWN0LmZyZWV6ZShnKX19KSl9ZnVuY3Rpb24gRnB0KGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwg''@;'; + put 'put ''YSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9ZnVuY3Rpb24gQkRlKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3Qu''@;'; + put 'put ''ZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19ZnVuY3Rpb24gQU0oKXtyZXR1cm4gQU09InVuZGVmaW5lZCIhPXR5cGVvZiBSZWZsZWN0JiZSZWZsZWN0LmdldD9SZWZsZWN0LmdldC5iaW5kKCk6ZnVuY3Rpb24oZyxoLHYpe3ZhciB5PU5wdChnLGgpO2lmKHkpe3ZhciBDPU9iamVjdC5nZXRP''@;'; + put 'put ''d25Qcm9wZXJ0eURlc2NyaXB0b3IoeSxoKTtyZXR1cm4gQy5nZXQ/Qy5nZXQuY2FsbChhcmd1bWVudHMubGVuZ3RoPDM/Zzp2KTpDLnZhbHVlfX0sQU0uYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIE5wdChkLGcpe2Zvcig7IU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHku''@;'; + put 'put ''Y2FsbChkLGcpJiZudWxsIT09KGQ9cXYoZCkpOyk7cmV0dXJuIGR9ZnVuY3Rpb24gWmdlKGQsZyl7cmV0dXJuKFpnZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbih2LHkpe3JldHVybiB2Ll9fcHJvdG9fXz15LHZ9KShkLGcpfWZ1''@;'; + put 'put ''bmN0aW9uIFpwdChkLGcpe2lmKGcmJigib2JqZWN0Ij09PWpnZShnKXx8ImZ1bmN0aW9uIj09dHlwZW9mIGcpKXJldHVybiBnO2lmKHZvaWQgMCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWQi''@;'; + put 'put ''KTtyZXR1cm4gVnooZCl9ZnVuY3Rpb24gVnooZCl7aWYodm9pZCAwPT09ZCl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3JldHVybiBkfWZ1bmN0aW9uIHF2KGQpe3JldHVybihxdj1P''@;'; + put 'put ''YmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihoKXtyZXR1cm4gaC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihoKX0pKGQpfWZ1bmN0aW9uIFBEZShkLGcsaCl7cmV0dXJuIGcgaW4gZD9PYmplY3QuZGVmaW5lUHJvcGVy''@;'; + put 'put ''dHkoZCxnLHt2YWx1ZTpoLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZFtnXT1oLGR9ZnVuY3Rpb24gRkRlKGQsZyxoKXsoZnVuY3Rpb24gR3B0KGQsZyl7aWYoZy5oYXMoZCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGluaXRpYWxpemUgdGhlIHNh''@;'; + put 'put ''bWUgcHJpdmF0ZSBlbGVtZW50cyB0d2ljZSBvbiBhbiBvYmplY3QiKX0pKGQsZyksZy5zZXQoZCxoKX1mdW5jdGlvbiBMbmUoZCxnLGgpe3JldHVybiBmdW5jdGlvbiBXcHQoZCxnLGgpe2lmKGcuc2V0KWcuc2V0LmNhbGwoZCxoKTtlbHNle2lmKCFnLndyaXRhYmxlKXRocm93IG5ldyBUeXBl''@;'; + put 'put ''RXJyb3IoImF0dGVtcHRlZCB0byBzZXQgcmVhZCBvbmx5IHByaXZhdGUgZmllbGQiKTtnLnZhbHVlPWh9fShkLEhEZShkLGcsInNldCIpLGgpLGh9ZnVuY3Rpb24gcGMoZCxnKXtyZXR1cm4gZnVuY3Rpb24gWXB0KGQsZyl7cmV0dXJuIGcuZ2V0P2cuZ2V0LmNhbGwoZCk6Zy52YWx1ZX0oZCxI''@;'; + put 'put ''RGUoZCxnLCJnZXQiKSl9ZnVuY3Rpb24gSERlKGQsZyxoKXtpZighZy5oYXMoZCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiYXR0ZW1wdGVkIHRvICIraCsiIHByaXZhdGUgZmllbGQgb24gbm9uLWluc3RhbmNlIik7cmV0dXJuIGcuZ2V0KGQpfXZhciBORGU9Im5lc3RlZEhlYWRlcnMiLGFmPW5l''@;'; + put 'put ''dyBXZWFrTWFwLEp3PW5ldyBXZWFrTWFwLFFwdD1mdW5jdGlvbihkKXshZnVuY3Rpb24gVnB0KGQsZyl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGcmJm51bGwhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9u''@;'; + put 'put ''Iik7ZC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShnJiZnLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOmQsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGcmJlpnZShkLGcpfShoLGQp''@;'; + put 'put ''O3ZhciBnPWZ1bmN0aW9uIGpwdChkKXt2YXIgZz1mdW5jdGlvbiB6cHQoKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIFJlZmxlY3R8fCFSZWZsZWN0LmNvbnN0cnVjdHx8UmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT10eXBlb2YgUHJveHkpcmV0dXJuITA7''@;'; + put 'put ''dHJ5e3JldHVybiBCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSxmdW5jdGlvbigpe30pKSwhMH1jYXRjaChkKXtyZXR1cm4hMX19KCk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHksdj1xdihkKTtpZihnKXt2YXIgQz1xdih0aGlzKS5j''@;'; + put 'put ''b25zdHJ1Y3Rvcjt5PVJlZmxlY3QuY29uc3RydWN0KHYsYXJndW1lbnRzLEMpfWVsc2UgeT12LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gWnB0KHRoaXMseSl9fShoKTtmdW5jdGlvbiBoKCl7dmFyIHY7RnB0KHRoaXMsaCk7Zm9yKHZhciB5PWFyZ3VtZW50cy5sZW5ndGgsQz1uZXcg''@;'; + put 'put ''QXJyYXkoeSksST0wO0k8eTtJKyspQ1tJXT1hcmd1bWVudHNbSV07cmV0dXJuIEZEZShWeih2PWcuY2FsbC5hcHBseShnLFt0aGlzXS5jb25jYXQoQykpKSxhZix7d3JpdGFibGU6ITAsdmFsdWU6bmV3IExwdH0pLEZEZShWeih2KSxKdyx7d3JpdGFibGU6ITAsdmFsdWU6bnVsbH0pLFBEZShW''@;'; + put 'put ''eih2KSwiZ2hvc3RUYWJsZSIsbmV3IFBwdCh2LmhvdCxmdW5jdGlvbihqLHVlKXtyZXR1cm4gdi5nZXRIZWFkZXJTZXR0aW5ncyhqLHVlKX0pKSxQRGUoVnoodiksImRldGVjdGVkT3ZlcmxhcHBlZEhlYWRlcnMiLCExKSx2fXJldHVybiBmdW5jdGlvbiBIcHQoZCxnLGgpe2cmJkJEZShkLnBy''@;'; + put 'put ''b3RvdHlwZSxnKSxoJiZCRGUoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oaCxbe2tleToiaXNFbmFibGVkIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiEhdGhpcy5ob3QuZ2V0U2V0dGluZ3MoKVtORGVdfX0se2tleToiZW5hYmxlUGx1''@;'; + put 'put ''Z2luIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXM7aWYoIXRoaXMuZW5hYmxlZCl7dmFyIEk9dGhpcy5ob3QuZ2V0U2V0dGluZ3MoKS5uZXN0ZWRIZWFkZXJzOyghQXJyYXkuaXNBcnJheShJKXx8IUFycmF5LmlzQXJyYXkoSVswXSkpJiZsMShQMihMRGV8fChMRGU9UkRlKFsiWW91ciBO''@;'; + put 'put ''ZXN0ZWQgSGVhZGVycyBwbHVnaW4gY29uZmlndXJhdGlvbiBpcyBpbnZhbGlkLiBUaGUgc2V0dGluZ3MgaGFzIHRvIGJlIFxuICAgICAgICAgICAgICAgICAgICAgICAgcGFzc2VkIGFzIGFuIGFycmF5IG9mIGFycmF5cyBlLnEuIFtbJ0ExJywgeyBsYWJlbDogJ0EyJywgY29sc3BhbjogMiB9''@;'; + put 'put ''XV0iXSxbIllvdXIgTmVzdGVkIEhlYWRlcnMgcGx1Z2luIGNvbmZpZ3VyYXRpb24gaXMgaW52YWxpZC4gVGhlIHNldHRpbmdzIGhhcyB0byBiZVxceDIwXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXNzZWQgYXMgYW4gYXJyYXkgb2YgYXJyYXlzIGUucS4gW1snQTEnLCB7IGxhYmVsOiAn''@;'; + put 'put ''QTInLCBjb2xzcGFuOiAyIH1dXSJdKSkpKSx0aGlzLmFkZEhvb2soImluaXQiLGZ1bmN0aW9uKCl7cmV0dXJuIHkub25Jbml0KCl9KSx0aGlzLmFkZEhvb2soImFmdGVyTG9hZERhdGEiLGZ1bmN0aW9uKCl7cmV0dXJuIHkub25BZnRlckxvYWREYXRhLmFwcGx5KHksYXJndW1lbnRzKX0pLHRo''@;'; + put 'put ''aXMuYWRkSG9vaygiYmVmb3JlT25DZWxsTW91c2VEb3duIixmdW5jdGlvbigpe3JldHVybiB5Lm9uQmVmb3JlT25DZWxsTW91c2VEb3duLmFwcGx5KHksYXJndW1lbnRzKX0pLHRoaXMuYWRkSG9vaygiYWZ0ZXJPbkNlbGxNb3VzZURvd24iLGZ1bmN0aW9uKCl7cmV0dXJuIHkub25BZnRlck9u''@;'; + put 'put ''Q2VsbE1vdXNlRG93bi5hcHBseSh5LGFyZ3VtZW50cyl9KSx0aGlzLmFkZEhvb2soImJlZm9yZU9uQ2VsbE1vdXNlT3ZlciIsZnVuY3Rpb24oKXtyZXR1cm4geS5vbkJlZm9yZU9uQ2VsbE1vdXNlT3Zlci5hcHBseSh5LGFyZ3VtZW50cyl9KSx0aGlzLmFkZEhvb2soImFmdGVyR2V0Q29sdW1u''@;'; + put 'put ''SGVhZGVyUmVuZGVyZXJzIixmdW5jdGlvbihqKXtyZXR1cm4geS5vbkFmdGVyR2V0Q29sdW1uSGVhZGVyUmVuZGVyZXJzKGopfSksdGhpcy5hZGRIb29rKCJtb2RpZnlDb2xXaWR0aCIsZnVuY3Rpb24oKXtyZXR1cm4geS5vbk1vZGlmeUNvbFdpZHRoLmFwcGx5KHksYXJndW1lbnRzKX0pLHRo''@;'; + put 'put ''aXMuYWRkSG9vaygiYmVmb3JlSGlnaGxpZ2h0aW5nQ29sdW1uSGVhZGVyIixmdW5jdGlvbigpe3JldHVybiB5Lm9uQmVmb3JlSGlnaGxpZ2h0aW5nQ29sdW1uSGVhZGVyLmFwcGx5KHksYXJndW1lbnRzKX0pLHRoaXMuYWRkSG9vaygiYWZ0ZXJWaWV3cG9ydENvbHVtbkNhbGN1bGF0b3JPdmVy''@;'; + put 'put ''cmlkZSIsZnVuY3Rpb24oKXtyZXR1cm4geS5vbkFmdGVyVmlld3BvcnRDb2x1bW5DYWxjdWxhdG9yT3ZlcnJpZGUuYXBwbHkoeSxhcmd1bWVudHMpfSksQU0ocXYoaC5wcm90b3R5cGUpLCJlbmFibGVQbHVnaW4iLHRoaXMpLmNhbGwodGhpcyksdGhpcy51cGRhdGVQbHVnaW4oKX19fSx7a2V5''@;'; + put 'put ''OiJ1cGRhdGVQbHVnaW4iLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcztpZih0aGlzLmhvdC52aWV3KXt2YXIgST10aGlzLmhvdC5nZXRTZXR0aW5ncygpLm5lc3RlZEhlYWRlcnM7cGModGhpcyxhZikuc2V0Q29sdW1uc0xpbWl0KHRoaXMuaG90LmNvdW50Q29scygpKSxBcnJheS5pc0Fy''@;'; + put 'put ''cmF5KEkpJiYodGhpcy5kZXRlY3RlZE92ZXJsYXBwZWRIZWFkZXJzPXBjKHRoaXMsYWYpLnNldFN0YXRlKEkpKSx0aGlzLmRldGVjdGVkT3ZlcmxhcHBlZEhlYWRlcnMmJmwxKFAyKE9EZXx8KE9EZT1SRGUoWyJZb3VyIE5lc3RlZCBIZWFkZXJzIHBsdWdpbiBzZXR1cCBjb250YWlucyBvdmVy''@;'; + put 'put ''bGFwcGluZyBoZWFkZXJzLiBUaGlzIGtpbmQgb2YgY29uZmlndXJhdGlvbiBcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzIGN1cnJlbnRseSBub3Qgc3VwcG9ydGVkLiJdLFsiWW91ciBOZXN0ZWQgSGVhZGVycyBwbHVnaW4gc2V0dXAgY29udGFpbnMgb3ZlcmxhcHBpbmcgaGVhZGVycy4g''@;'; + put 'put ''VGhpcyBraW5kIG9mIGNvbmZpZ3VyYXRpb25cXHgyMFxuICAgICAgICAgICAgICAgICAgICAgICAgaXMgY3VycmVudGx5IG5vdCBzdXBwb3J0ZWQuIl0pKSkpLHRoaXMuZW5hYmxlZCYmdGhpcy5ob3QuY29sdW1uSW5kZXhNYXBwZXIuaGlkaW5nTWFwc0NvbGxlY3Rpb24uZ2V0TWVyZ2VkVmFs''@;'; + put 'put ''dWVzKCkuZm9yRWFjaChmdW5jdGlvbihqLHVlKXt2YXIgX2U9ITA9PT1qPyJoaWRlLWNvbHVtbiI6InNob3ctY29sdW1uIjtwYyh5LGFmKS50cmlnZ2VyQ29sdW1uTW9kaWZpY2F0aW9uKF9lLHVlKX0pLCFwYyh0aGlzLEp3KSYmdGhpcy5lbmFibGVkJiZMbmUodGhpcyxKdyx0aGlzLmhvdC5j''@;'; + put 'put ''b2x1bW5JbmRleE1hcHBlci5jcmVhdGVDaGFuZ2VzT2JzZXJ2ZXIoImhpZGluZyIpLnN1YnNjcmliZShmdW5jdGlvbihqKXtqLmZvckVhY2goZnVuY3Rpb24odWUpe3ZhciBCZT11ZS5pbmRleDtpZigicmVwbGFjZSI9PT11ZS5vcCl7dmFyIEtlPSEwPT09dWUubmV3VmFsdWU/ImhpZGUtY29s''@;'; + put 'put ''dW1uIjoic2hvdy1jb2x1bW4iO3BjKHksYWYpLnRyaWdnZXJDb2x1bW5Nb2RpZmljYXRpb24oS2UsQmUpfX0pLHkuZ2hvc3RUYWJsZS5idWlsZFdpZHRoc01hcCgpfSkpLHRoaXMuZ2hvc3RUYWJsZS5zZXRMYXllcnNDb3VudCh0aGlzLmdldExheWVyc0NvdW50KCkpLmJ1aWxkV2lkdGhzTWFw''@;'; + put 'put ''KCksQU0ocXYoaC5wcm90b3R5cGUpLCJ1cGRhdGVQbHVnaW4iLHRoaXMpLmNhbGwodGhpcyl9fX0se2tleToiZGlzYWJsZVBsdWdpbiIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmNsZWFyQ29sc3BhbnMoKSxwYyh0aGlzLGFmKS5jbGVhcigpLHBjKHRoaXMsSncpLnVuc3Vic2NyaWJlKCksTG5l''@;'; + put 'put ''KHRoaXMsSncsbnVsbCksdGhpcy5naG9zdFRhYmxlLmNsZWFyKCksQU0ocXYoaC5wcm90b3R5cGUpLCJkaXNhYmxlUGx1Z2luIix0aGlzKS5jYWxsKHRoaXMpfX0se2tleToiZ2V0U3RhdGVNYW5hZ2VyIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBwYyh0aGlzLGFmKX19LHtrZXk6ImdldExh''@;'; + put 'put ''eWVyc0NvdW50Iix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBwYyh0aGlzLGFmKS5nZXRMYXllcnNDb3VudCgpfX0se2tleToiZ2V0SGVhZGVyU2V0dGluZ3MiLHZhbHVlOmZ1bmN0aW9uKHksQyl7cmV0dXJuIHBjKHRoaXMsYWYpLmdldEhlYWRlclNldHRpbmdzKHksQyl9fSx7a2V5OiJjbGVh''@;'; + put 'put ''ckNvbHNwYW5zIix2YWx1ZTpmdW5jdGlvbigpe2lmKHRoaXMuaG90LnZpZXcpZm9yKHZhciB5PXRoaXMuaG90LnZpZXcuX3d0LEM9eS5nZXRTZXR0aW5nKCJjb2x1bW5IZWFkZXJzIikubGVuZ3RoLEk9eS53dFRhYmxlLlRIRUFELGo9eS53dE92ZXJsYXlzLnRvcE92ZXJsYXkuY2xvbmUud3RU''@;'; + put 'put ''YWJsZS5USEVBRCx1ZT15Lnd0T3ZlcmxheXMudG9wSW5saW5lU3RhcnRDb3JuZXJPdmVybGF5P3kud3RPdmVybGF5cy50b3BJbmxpbmVTdGFydENvcm5lck92ZXJsYXkuY2xvbmUud3RUYWJsZS5USEVBRDpudWxsLF9lPTA7X2U8QztfZSsrKXt2YXIgQmU9SS5jaGlsZE5vZGVzW19lXTtpZigh''@;'; + put 'put ''QmUpYnJlYWs7Zm9yKHZhciBOZT1qLmNoaWxkTm9kZXNbX2VdLEtlPXVlP3VlLmNoaWxkTm9kZXNbX2VdOm51bGwsZHQ9MCxPdD1CZS5jaGlsZE5vZGVzLmxlbmd0aDtkdDxPdDtkdCsrKUJlLmNoaWxkTm9kZXNbZHRdLnJlbW92ZUF0dHJpYnV0ZSgiY29sc3BhbiIpLHBsKEJlLmNoaWxkTm9k''@;'; + put 'put ''ZXNbZHRdLCJoaWRkZW5IZWFkZXIiKSxOZSYmTmUuY2hpbGROb2Rlc1tkdF0mJihOZS5jaGlsZE5vZGVzW2R0XS5yZW1vdmVBdHRyaWJ1dGUoImNvbHNwYW4iKSxwbChOZS5jaGlsZE5vZGVzW2R0XSwiaGlkZGVuSGVhZGVyIikpLHVlJiZLZSYmS2UuY2hpbGROb2Rlc1tkdF0mJihLZS5jaGls''@;'; + put 'put ''ZE5vZGVzW2R0XS5yZW1vdmVBdHRyaWJ1dGUoImNvbHNwYW4iKSxwbChLZS5jaGlsZE5vZGVzW2R0XSwiaGlkZGVuSGVhZGVyIikpfX19LHtrZXk6ImhlYWRlclJlbmRlcmVyRmFjdG9yeSIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEM9dGhpcyxJPXRoaXMuaG90LnZpZXcuX3d0LmdldFNldHRp''@;'; + put 'put ''bmcoImZpeGVkQ29sdW1uc1N0YXJ0Iik7cmV0dXJuIGZ1bmN0aW9uKGosdWUpe3ZhciBfZSxCZT1DLmhvdCxOZT1CZS5yb290RG9jdW1lbnQsZHQ9QmUudmlldyxPdD1CZS5jb2x1bW5JbmRleE1hcHBlci5nZXRWaXN1YWxGcm9tUmVuZGVyYWJsZUluZGV4KGopO251bGw9PT1PdCYmKE90PWop''@;'; + put 'put ''LHVlLnJlbW92ZUF0dHJpYnV0ZSgiY29sc3BhbiIpLHBsKHVlLCJoaWRkZW5IZWFkZXIiKTt2YXIgJHQ9bnVsbCE9PShfZT1wYyhDLGFmKS5nZXRIZWFkZXJTZXR0aW5ncyh5LE90KSkmJnZvaWQgMCE9PV9lP19lOntsYWJlbDoiIn0sZm49JHQuY29sc3BhbixMbj0kdC5sYWJlbDtpZigkdC5p''@;'; + put 'put ''c1BsYWNlaG9sZGVyfHwkdC5pc0hpZGRlbilPMCh1ZSwiaGlkZGVuSGVhZGVyIik7ZWxzZSBpZihmbj4xKXt2YXIgU3Isd3IsUXI9ZHQuX3d0Lnd0T3ZlcmxheXMseWk9bnVsbD09PShTcj1Rci50b3BJbmxpbmVTdGFydENvcm5lck92ZXJsYXkpfHx2b2lkIDA9PT1Tcj92b2lkIDA6U3IuY2xv''@;'; + put 'put ''bmUud3RUYWJsZS5USEVBRC5jb250YWlucyh1ZSksS2k9bnVsbD09PSh3cj1Rci5pbmxpbmVTdGFydE92ZXJsYXkpfHx2b2lkIDA9PT13cj92b2lkIDA6d3IuY2xvbmUud3RUYWJsZS5USEVBRC5jb250YWlucyh1ZSksU289eWl8fEtpP01hdGgubWluKGZuLEktaik6Zm47U28+MSYmdWUuc2V0''@;'; + put 'put ''QXR0cmlidXRlKCJjb2xzcGFuIixTbyl9dmFyIFBvPU5lLmNyZWF0ZUVsZW1lbnQoImRpdiIpLFNhPU5lLmNyZWF0ZUVsZW1lbnQoInNwYW4iKTtPMChQbywicmVsYXRpdmUiKSxPMChTYSwiY29sSGVhZGVyIiksa3coU2EsTG4pLFBvLmFwcGVuZENoaWxkKFNhKSxEcCh1ZSksdWUuYXBwZW5k''@;'; + put 'put ''Q2hpbGQoUG8pLEMuaG90LnJ1bkhvb2tzKCJhZnRlckdldENvbEhlYWRlciIsT3QsdWUpfX19LHtrZXk6Im9uQmVmb3JlSGlnaGxpZ2h0aW5nQ29sdW1uSGVhZGVyIix2YWx1ZTpmdW5jdGlvbih5LEMsSSl7dmFyIGo9cGModGhpcyxhZikuZ2V0SGVhZGVyVHJlZU5vZGVEYXRhKEMseSk7aWYo''@;'; + put 'put ''IWopcmV0dXJuIHk7dmFyIHVlPUkuY2xhc3NOYW1lcyxfZT1JLmNvbHVtbkN1cnNvcixCZT1JLnNlbGVjdGlvblR5cGUsTmU9SS5zZWxlY3Rpb25XaWR0aCxLZT1wYyh0aGlzLGFmKS5nZXRIZWFkZXJTZXR0aW5ncyhDLHkpLGR0PUtlLmlzUm9vdDtpZihCZT09PWx6KXtpZighZHQpcmV0dXJu''@;'; + put 'put ''IGouY29sdW1uSW5kZXh9ZWxzZSBCZT09PWl0ZSYmKEtlLmNvbHNwYW4+TmUtX2V8fCFkdCkmJih1ZS5sZW5ndGg9MCk7cmV0dXJuIHl9fSx7a2V5OiJvbkJlZm9yZU9uQ2VsbE1vdXNlRG93biIsdmFsdWU6ZnVuY3Rpb24oeSxDLEksail7dGhpcy5fZ2V0SGVhZGVyVHJlZU5vZGVEYXRhQnlD''@;'; + put 'put ''b29yZHMoQykmJihqLmNvbHVtbj0hMCl9fSx7a2V5OiJvbkFmdGVyT25DZWxsTW91c2VEb3duIix2YWx1ZTpmdW5jdGlvbih5LEMpe3ZhciBJPXRoaXMuX2dldEhlYWRlclRyZWVOb2RlRGF0YUJ5Q29vcmRzKEMpO2lmKEkpe3ZhciBqPXRoaXMuaG90LnNlbGVjdGlvbix1ZT1qLmlzU2VsZWN0''@;'; + put 'put ''ZWQoKT9qLmdldFNlbGVjdGVkUmFuZ2UoKS5jdXJyZW50KCk6bnVsbCxfZT1bXSxCZT1JLmNvbHVtbkluZGV4LE5lPUkub3JpZ0NvbHNwYW4sS2U9IWouaW5JblNlbGVjdGlvbihDKTt5LnNoaWZ0S2V5JiZ1ZT9DLmNvbDx1ZS5mcm9tLmNvbD9fZS5wdXNoKHVlLmdldFRvcEVuZENvcm5lcigp''@;'; + put 'put ''LmNvbCxCZSxDLnJvdyk6X2UucHVzaChDLmNvbD51ZS5mcm9tLmNvbD91ZS5nZXRUb3BTdGFydENvcm5lcigpLmNvbDpCZSxCZStOZS0xLEMucm93KToob2VlKHkpfHxFdyh5KSYmS2UpJiZfZS5wdXNoKEJlLEJlK05lLTEsQy5yb3cpLGouc2VsZWN0Q29sdW1ucy5hcHBseShqLF9lKX19fSx7''@;'; + put 'put ''a2V5OiJvbkJlZm9yZU9uQ2VsbE1vdXNlT3ZlciIsdmFsdWU6ZnVuY3Rpb24oeSxDLEksail7dmFyIHVlO2lmKHRoaXMuaG90LnZpZXcuaXNNb3VzZURvd24oKSl7dmFyIF9lPXRoaXMuX2dldEhlYWRlclRyZWVOb2RlRGF0YUJ5Q29vcmRzKEMpO2lmKF9lKXt2YXIgQmU9X2UuY29sdW1uSW5k''@;'; + put 'put ''ZXgsTmU9X2Uub3JpZ0NvbHNwYW4sS2U9dGhpcy5ob3QuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKSxkdD1LZS5nZXRUb3BTdGFydENvcm5lcigpLE90PUtlLmdldEJvdHRvbUVuZENvcm5lcigpLCR0PUtlLmZyb207ai5jb2x1bW49ITAsai5jZWxsPSEwO3ZhciBmbj1bXTtDLmNvbDwkdC5jb2w/''@;'; + put 'put ''Zm4ucHVzaChPdC5jb2wsQmUpOmZuLnB1c2goQy5jb2w+JHQuY29sP2R0LmNvbDpCZSxCZStOZS0xKSwodWU9dGhpcy5ob3QpLnNlbGVjdENvbHVtbnMuYXBwbHkodWUsZm4pfX19fSx7a2V5OiJvbkFmdGVyR2V0Q29sdW1uSGVhZGVyUmVuZGVyZXJzIix2YWx1ZTpmdW5jdGlvbih5KXtpZih5''@;'; + put 'put ''KXt5Lmxlbmd0aD0wO2Zvcih2YXIgQz0wO0M8cGModGhpcyxhZikuZ2V0TGF5ZXJzQ291bnQoKTtDKyspeS5wdXNoKHRoaXMuaGVhZGVyUmVuZGVyZXJGYWN0b3J5KEMpKX19fSx7a2V5OiJvbkFmdGVyVmlld3BvcnRDb2x1bW5DYWxjdWxhdG9yT3ZlcnJpZGUiLHZhbHVlOmZ1bmN0aW9uKHkp''@;'; + put 'put ''e2Zvcih2YXIgQz1wYyh0aGlzLGFmKS5nZXRMYXllcnNDb3VudCgpLEk9eS5zdGFydENvbHVtbixqPSEhQyx1ZT0wO3VlPEM7dWUrKyl7dmFyIF9lPXBjKHRoaXMsYWYpLmZpbmRMZWZ0TW9zdENvbHVtbkluZGV4KHVlLHkuc3RhcnRDb2x1bW4pLEJlPXRoaXMuaG90LmNvbHVtbkluZGV4TWFw''@;'; + put 'put ''cGVyLmdldFJlbmRlcmFibGVGcm9tVmlzdWFsSW5kZXgoX2UpO2lmKF9lPj0wJiYoaj0hMSksdjQoQmUpJiZCZTx5LnN0YXJ0Q29sdW1uKXtJPUJlO2JyZWFrfX15LnN0YXJ0Q29sdW1uPWo/cGModGhpcyxhZikuZ2V0SGVhZGVyVHJlZU5vZGVEYXRhKDAsSSkuY29sdW1uSW5kZXg6SX19LHtr''@;'; + put 'put ''ZXk6Im9uTW9kaWZ5Q29sV2lkdGgiLHZhbHVlOmZ1bmN0aW9uKHksQyl7dmFyIEk9dGhpcy5naG9zdFRhYmxlLmdldFdpZHRoKEMpO3JldHVybiB5Pkk/eTpJfX0se2tleToib25Jbml0Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMudXBkYXRlUGx1Z2luKCl9fSx7a2V5OiJvbkFmdGVyTG9hZERh''@;'; + put 'put ''dGEiLHZhbHVlOmZ1bmN0aW9uKHksQyl7Q3x8dGhpcy51cGRhdGVQbHVnaW4oKX19LHtrZXk6ImRlc3Ryb3kiLHZhbHVlOmZ1bmN0aW9uKCl7TG5lKHRoaXMsYWYsbnVsbCksbnVsbCE9PXBjKHRoaXMsSncpJiYocGModGhpcyxKdykudW5zdWJzY3JpYmUoKSxMbmUodGhpcyxKdyxudWxsKSks''@;'; + put 'put ''QU0ocXYoaC5wcm90b3R5cGUpLCJkZXN0cm95Iix0aGlzKS5jYWxsKHRoaXMpfX0se2tleToiX2dldEhlYWRlclRyZWVOb2RlRGF0YUJ5Q29vcmRzIix2YWx1ZTpmdW5jdGlvbih5KXtpZighKHkucm93Pj0wfHx5LmNvbDwwKSlyZXR1cm4gcGModGhpcyxhZikuZ2V0SGVhZGVyVHJlZU5vZGVE''@;'; + put 'put ''YXRhKHkucm93LHkuY29sKX19XSxbe2tleToiUExVR0lOX0tFWSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIE5EZX19LHtrZXk6IlBMVUdJTl9QUklPUklUWSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDI4MH19XSksaH0oWXMpO2Z1bmN0aW9uIFZEZShkKXtyZXR1cm4gZnVuY3Rpb24gJHB0KGQp''@;'; + put 'put ''e2lmKEFycmF5LmlzQXJyYXkoZCkpcmV0dXJuIHpnZShkKX0oZCl8fGZ1bmN0aW9uIEtwdChkKXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmbnVsbCE9ZFtTeW1ib2wuaXRlcmF0b3JdfHxudWxsIT1kWyJAQGl0ZXJhdG9yIl0pcmV0dXJuIEFycmF5LmZyb20oZCl9KGQpfHxmdW5j''@;'; + put 'put ''dGlvbiBYcHQoZCxnKXtpZihkKXtpZigic3RyaW5nIj09dHlwZW9mIGQpcmV0dXJuIHpnZShkLGcpO3ZhciBoPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChkKS5zbGljZSg4LC0xKTtpZigiT2JqZWN0Ij09PWgmJmQuY29uc3RydWN0b3ImJihoPWQuY29uc3RydWN0b3IubmFtZSks''@;'; + put 'put ''Ik1hcCI9PT1ofHwiU2V0Ij09PWgpcmV0dXJuIEFycmF5LmZyb20oZCk7aWYoIkFyZ3VtZW50cyI9PT1ofHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChoKSlyZXR1cm4gemdlKGQsZyl9fShkKXx8ZnVuY3Rpb24gSnB0KCl7dGhyb3cgbmV3IFR5cGVF''@;'; + put 'put ''cnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIHNwcmVhZCBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9ZnVuY3Rpb24gemdlKGQsZyl7KG51''@;'; + put 'put ''bGw9PWd8fGc+ZC5sZW5ndGgpJiYoZz1kLmxlbmd0aCk7Zm9yKHZhciBoPTAsdj1uZXcgQXJyYXkoZyk7aDxnO2grKyl2W2hdPWRbaF07cmV0dXJuIHZ9ZnVuY3Rpb24gR2dlKGQpe3JldHVybihHZ2U9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wu''@;'; + put 'put ''aXRlcmF0b3I/ZnVuY3Rpb24oZyl7cmV0dXJuIHR5cGVvZiBnfTpmdW5jdGlvbihnKXtyZXR1cm4gZyYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZy5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZyE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGd9KShkKX1mdW5jdGlvbiBq''@;'; + put 'put ''RGUoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX12YXIgdDZ0''@;'; + put 'put ''PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZChnLGgpeyhmdW5jdGlvbiBxcHQoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0pKHRoaXMsZCksdGhpcy5ob3Q9aCx0aGlzLmRhdGE9bnVsbCx0aGlz''@;'; + put 'put ''LnBsdWdpbj1nLHRoaXMucGFyZW50UmVmZXJlbmNlPW5ldyBXZWFrTWFwLHRoaXMuY2FjaGU9e2xldmVsczpbXSxsZXZlbENvdW50OjAscm93czpbXSxub2RlSW5mbzpuZXcgV2Vha01hcH19cmV0dXJuIGZ1bmN0aW9uIGU2dChkLGcsaCl7ZyYmakRlKGQucHJvdG90eXBlLGcpLGgmJmpEZShk''@;'; + put 'put ''LGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShkLFt7a2V5OiJzZXREYXRhIix2YWx1ZTpmdW5jdGlvbihoKXt0aGlzLmRhdGE9aH19LHtrZXk6ImdldERhdGEiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZGF0YX19LHtrZXk6Imdl''@;'; + put 'put ''dFJhd1NvdXJjZURhdGEiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg7cmV0dXJuIHRoaXMucGx1Z2luLmRpc2FibGVDb3JlQVBJTW9kaWZpZXJzKCksaD10aGlzLmhvdC5nZXRTb3VyY2VEYXRhKCksdGhpcy5wbHVnaW4uZW5hYmxlQ29yZUFQSU1vZGlmaWVycygpLGh9fSx7a2V5OiJ1cGRhdGVX''@;'; + put 'put ''aXRoRGF0YSIsdmFsdWU6ZnVuY3Rpb24oaCl7dGhpcy5zZXREYXRhKGgpLHRoaXMucmV3cml0ZUNhY2hlKCl9fSx7a2V5OiJyZXdyaXRlQ2FjaGUiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9dGhpczt0aGlzLmNhY2hlPXtsZXZlbHM6W10sbGV2ZWxDb3VudDowLHJvd3M6W10sbm9kZUluZm86''@;'; + put 'put ''bmV3IFdlYWtNYXB9LGlhKDAsdGhpcy5kYXRhLmxlbmd0aC0xLGZ1bmN0aW9uKHYpe2guY2FjaGVOb2RlKGguZGF0YVt2XSwwLG51bGwpfSl9fSx7a2V5OiJjYWNoZU5vZGUiLHZhbHVlOmZ1bmN0aW9uKGgsdix5KXt2YXIgQz10aGlzO3RoaXMuY2FjaGUubGV2ZWxzW3ZdfHwodGhpcy5jYWNo''@;'; + put 'put ''ZS5sZXZlbHNbdl09W10sdGhpcy5jYWNoZS5sZXZlbENvdW50Kz0xKSx0aGlzLmNhY2hlLmxldmVsc1t2XS5wdXNoKGgpLHRoaXMuY2FjaGUucm93cy5wdXNoKGgpLHRoaXMuY2FjaGUubm9kZUluZm8uc2V0KGgse3BhcmVudDp5LHJvdzp0aGlzLmNhY2hlLnJvd3MubGVuZ3RoLTEsbGV2ZWw6''@;'; + put 'put ''dn0pLHRoaXMuaGFzQ2hpbGRyZW4oaCkmJlVyKGguX19jaGlsZHJlbixmdW5jdGlvbihJKXtDLmNhY2hlTm9kZShJLHYrMSxoKX0pfX0se2tleToiZ2V0RGF0YU9iamVjdCIsdmFsdWU6ZnVuY3Rpb24oaCl7cmV0dXJuIG51bGw9PWg/bnVsbDp0aGlzLmNhY2hlLnJvd3NbaF19fSx7a2V5OiJy''@;'; + put 'put ''ZWFkVHJlZU5vZGVzIix2YWx1ZTpmdW5jdGlvbihoLHYseSxDKXt2YXIgST10aGlzLGo9ITEsdWU9djtpZihpc05hTih1ZSkmJnVlLmVuZClyZXR1cm4gdWU7dmFyIF9lPWg7cmV0dXJuIF9lfHwoX2U9e19fY2hpbGRyZW46dGhpcy5kYXRhfSxqPSEwLHVlLT0xKSxudWxsIT15JiZ1ZT09PXk/''@;'; + put 'put ''e3Jlc3VsdDpfZSxlbmQ6ITB9Om51bGwhPUMmJl9lPT09Qz97cmVzdWx0OnVlLGVuZDohMH06KHVlKz0xLF9lLl9fY2hpbGRyZW4mJlVyKF9lLl9fY2hpbGRyZW4sZnVuY3Rpb24oQmUpe2lmKEkucGFyZW50UmVmZXJlbmNlLnNldChCZSxqP251bGw6X2UpLHVlPUkucmVhZFRyZWVOb2RlcyhC''@;'; + put 'put ''ZSx1ZSx5LEMpLGlzTmFOKHVlKSYmdWUuZW5kKXJldHVybiExfSksdWUpfX0se2tleToibW9ja1BhcmVudCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD10aGlzLm1vY2tOb2RlKCk7cmV0dXJuIGguX19jaGlsZHJlbj10aGlzLmRhdGEsaH19LHtrZXk6Im1vY2tOb2RlIix2YWx1ZTpmdW5jdGlv''@;'; + put 'put ''bigpe3ZhciBoPXt9O3JldHVybiBHbCh0aGlzLmRhdGFbMF0sZnVuY3Rpb24odix5KXtoW3ldPW51bGx9KSxofX0se2tleToiZ2V0Um93SW5kZXgiLHZhbHVlOmZ1bmN0aW9uKGgpe3JldHVybiBudWxsPT1oP251bGw6dGhpcy5jYWNoZS5ub2RlSW5mby5nZXQoaCkucm93fX0se2tleToiZ2V0''@;'; + put 'put ''Um93SW5kZXhXaXRoaW5QYXJlbnQiLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB2O3Y9aXNOYU4oaCk/aDp0aGlzLmdldERhdGFPYmplY3QoaCk7dmFyIHk9dGhpcy5nZXRSb3dQYXJlbnQoaCk7cmV0dXJuIG51bGw9PXk/dGhpcy5kYXRhLmluZGV4T2Yodik6eS5fX2NoaWxkcmVuLmluZGV4T2Yo''@;'; + put 'put ''dil9fSx7a2V5OiJjb3VudEFsbFJvd3MiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY291bnRDaGlsZHJlbih7X19jaGlsZHJlbjp0aGlzLmRhdGF9KX19LHtrZXk6ImNvdW50Q2hpbGRyZW4iLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB2PXRoaXMseT0wLEM9aDtyZXR1cm4gaXNOYU4o''@;'; + put 'put ''Qyl8fChDPXRoaXMuZ2V0RGF0YU9iamVjdChDKSksQyYmQy5fX2NoaWxkcmVuPyhVcihDLl9fY2hpbGRyZW4sZnVuY3Rpb24oSSl7eSs9MSxJLl9fY2hpbGRyZW4mJih5Kz12LmNvdW50Q2hpbGRyZW4oSSkpfSkseSk6MH19LHtrZXk6ImdldFJvd1BhcmVudCIsdmFsdWU6ZnVuY3Rpb24oaCl7''@;'; + put 'put ''dmFyIHY7cmV0dXJuIHY9aXNOYU4oaCk/aDp0aGlzLmdldERhdGFPYmplY3QoaCksdGhpcy5nZXRSb3dPYmplY3RQYXJlbnQodil9fSx7a2V5OiJnZXRSb3dPYmplY3RQYXJlbnQiLHZhbHVlOmZ1bmN0aW9uKGgpe3JldHVybiBoJiYib2JqZWN0Ij09PUdnZShoKT90aGlzLmNhY2hlLm5vZGVJ''@;'; + put 'put ''bmZvLmdldChoKS5wYXJlbnQ6bnVsbH19LHtrZXk6ImdldFJvd0xldmVsIix2YWx1ZTpmdW5jdGlvbihoKXt2YXIgdjtyZXR1cm4odj1pc05hTihoKT9oOnRoaXMuZ2V0RGF0YU9iamVjdChoKSk/dGhpcy5nZXRSb3dPYmplY3RMZXZlbCh2KTpudWxsfX0se2tleToiZ2V0Um93T2JqZWN0TGV2''@;'; + put 'put ''ZWwiLHZhbHVlOmZ1bmN0aW9uKGgpe3JldHVybiBudWxsPT1oP251bGw6dGhpcy5jYWNoZS5ub2RlSW5mby5nZXQoaCkubGV2ZWx9fSx7a2V5OiJoYXNDaGlsZHJlbiIsdmFsdWU6ZnVuY3Rpb24oaCl7dmFyIHY9aDtyZXR1cm4gaXNOYU4odil8fCh2PXRoaXMuZ2V0RGF0YU9iamVjdCh2KSks''@;'; + put 'put ''ISghdi5fX2NoaWxkcmVufHwhdi5fX2NoaWxkcmVuLmxlbmd0aCl9fSx7a2V5OiJpc0NoaWxkIix2YWx1ZTpmdW5jdGlvbihoKXtyZXR1cm4gbnVsbCE9PXRoaXMuZ2V0Um93UGFyZW50KGgpfX0se2tleToiZ2V0Q2hpbGQiLHZhbHVlOmZ1bmN0aW9uKGgsdil7dmFyIHk7cmV0dXJuKG51bGw9''@;'; + put 'put ''PT0oeT1oLl9fY2hpbGRyZW4pfHx2b2lkIDA9PT15P3ZvaWQgMDp5W3ZdKXx8bnVsbH19LHtrZXk6ImlzUm93SGlnaGVzdExldmVsIix2YWx1ZTpmdW5jdGlvbihoKXtyZXR1cm4hdGhpcy5pc0NoaWxkKGgpfX0se2tleToiaXNQYXJlbnQiLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB2LHk9aDty''@;'; + put 'put ''ZXR1cm4gaXNOYU4oeSl8fCh5PXRoaXMuZ2V0RGF0YU9iamVjdCh5KSkseSYmISF5Ll9fY2hpbGRyZW4mJjAhPT0obnVsbD09PSh2PXkuX19jaGlsZHJlbil8fHZvaWQgMD09PXY/dm9pZCAwOnYubGVuZ3RoKX19LHtrZXk6ImFkZENoaWxkIix2YWx1ZTpmdW5jdGlvbihoLHYpe3ZhciB5PXY7''@;'; + put 'put ''dGhpcy5ob3QucnVuSG9va3MoImJlZm9yZUFkZENoaWxkIixoLHkpO3ZhciBDPW51bGw7aCYmKEM9dGhpcy5nZXRSb3dJbmRleChoKSksdGhpcy5ob3QucnVuSG9va3MoImJlZm9yZUNyZWF0ZVJvdyIsQyt0aGlzLmNvdW50Q2hpbGRyZW4oaCkrMSwxKTt2YXIgST1oO2h8fChJPXRoaXMubW9j''@;'; + put 'put ''a1BhcmVudCgpKSxJLl9fY2hpbGRyZW58fChJLl9fY2hpbGRyZW49W10pLHl8fCh5PXRoaXMubW9ja05vZGUoKSksSS5fX2NoaWxkcmVuLnB1c2goeSksdGhpcy5yZXdyaXRlQ2FjaGUoKTt2YXIgaj10aGlzLmdldFJvd0luZGV4KHkpO3RoaXMuaG90LnJvd0luZGV4TWFwcGVyLmluc2VydElu''@;'; + put 'put ''ZGV4ZXMoaiwxKSx0aGlzLmhvdC5ydW5Ib29rcygiYWZ0ZXJDcmVhdGVSb3ciLGosMSksdGhpcy5ob3QucnVuSG9va3MoImFmdGVyQWRkQ2hpbGQiLGgseSl9fSx7a2V5OiJhZGRDaGlsZEF0SW5kZXgiLHZhbHVlOmZ1bmN0aW9uKGgsdix5KXt2YXIgSSxDPXk7aWYoQ3x8KEM9dGhpcy5tb2Nr''@;'; + put 'put ''Tm9kZSgpKSx0aGlzLmhvdC5ydW5Ib29rcygiYmVmb3JlQWRkQ2hpbGQiLGgsQyx2KSxoKXt2YXIgdWU9dGhpcy5nZXRSb3dJbmRleChoKSt2KzE7dGhpcy5ob3QucnVuSG9va3MoImJlZm9yZUNyZWF0ZVJvdyIsdWUsMSksaC5fX2NoaWxkcmVuLnNwbGljZSh2LG51bGwsQyksdGhpcy5yZXdy''@;'; + put 'put ''aXRlQ2FjaGUoKSx0aGlzLnBsdWdpbi5kaXNhYmxlQ29yZUFQSU1vZGlmaWVycygpLHRoaXMuaG90LnNldFNvdXJjZURhdGFBdENlbGwodGhpcy5nZXRSb3dJbmRleFdpdGhpblBhcmVudChoKSwiX19jaGlsZHJlbiIsaC5fX2NoaWxkcmVuLCJOZXN0ZWRSb3dzLmFkZENoaWxkQXRJbmRleCIp''@;'; + put 'put ''LHRoaXMuaG90LnJvd0luZGV4TWFwcGVyLmluc2VydEluZGV4ZXModWUsMSksdGhpcy5wbHVnaW4uZW5hYmxlQ29yZUFQSU1vZGlmaWVycygpLHRoaXMuaG90LnJ1bkhvb2tzKCJhZnRlckNyZWF0ZVJvdyIsdWUsMSksST11ZX1lbHNlIHRoaXMucGx1Z2luLmRpc2FibGVDb3JlQVBJTW9kaWZp''@;'; + put 'put ''ZXJzKCksdGhpcy5ob3QuYWx0ZXIoImluc2VydF9yb3ciLHYsMSwiTmVzdGVkUm93cy5hZGRDaGlsZEF0SW5kZXgiKSx0aGlzLnBsdWdpbi5lbmFibGVDb3JlQVBJTW9kaWZpZXJzKCksST10aGlzLmdldFJvd0luZGV4KHRoaXMuZGF0YVt2XSk7Qz10aGlzLmdldERhdGFPYmplY3QoSSksdGhp''@;'; + put 'put ''cy5ob3QucnVuSG9va3MoImFmdGVyQWRkQ2hpbGQiLGgsQyx2KX19LHtrZXk6ImFkZFNpYmxpbmciLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB2PWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXToiYmVsb3ciLHk9dGhpcy50cmFuc2xhdGVUcmlt''@;'; + put 'put ''bWVkUm93KGgpLEM9dGhpcy5nZXRSb3dQYXJlbnQoeSksST10aGlzLmdldFJvd0luZGV4V2l0aGluUGFyZW50KHkpO3N3aXRjaCh2KXtjYXNlImJlbG93Ijp0aGlzLmFkZENoaWxkQXRJbmRleChDLEkrMSxudWxsKTticmVhaztjYXNlImFib3ZlIjp0aGlzLmFkZENoaWxkQXRJbmRleChDLEks''@;'; + put 'put ''bnVsbCl9fX0se2tleToiZGV0YWNoRnJvbVBhcmVudCIsdmFsdWU6ZnVuY3Rpb24oaCl7dmFyIHY9dGhpcyx5PSEoYXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0pfHxhcmd1bWVudHNbMV0sQz1udWxsLEk9W107QXJyYXkuaXNBcnJheShoKT8oaWEoaFswXSxoWzJd''@;'; + put 'put ''LGZ1bmN0aW9uKExuKXt2YXIgaXI9di50cmFuc2xhdGVUcmltbWVkUm93KExuKTtJLnB1c2godi5nZXREYXRhT2JqZWN0KGlyKSl9KSxpYSgwLEkubGVuZ3RoLTIsZnVuY3Rpb24oTG4pe3YuZGV0YWNoRnJvbVBhcmVudChJW0xuXSwhMSl9KSxDPUlbSS5sZW5ndGgtMV0pOkM9aDt2YXIgaj10''@;'; + put 'put ''aGlzLmdldFJvd0luZGV4KEMpLHVlPXRoaXMuY291bnRDaGlsZHJlbihDKSxfZT10aGlzLmdldFJvd0luZGV4V2l0aGluUGFyZW50KEMpLEJlPXRoaXMuZ2V0Um93UGFyZW50KEMpLE5lPXRoaXMuZ2V0Um93UGFyZW50KEJlKSxLZT10aGlzLmdldFJvd0luZGV4KE5lKSxkdD1udWxsO2lmKHRo''@;'; + put 'put ''aXMuaG90LnJ1bkhvb2tzKCJiZWZvcmVEZXRhY2hDaGlsZCIsQmUsQyksbnVsbCE9X2Upe3ZhciBPdD1BcnJheS5mcm9tKG5ldyBBcnJheShqK3VlKzEpLmtleXMoKSkuc3BsaWNlKC0xKih1ZSsxKSk7aWYodGhpcy5ob3QucnVuSG9va3MoImJlZm9yZVJlbW92ZVJvdyIsaix1ZSsxLE90LHRo''@;'; + put 'put ''aXMucGx1Z2luLnBsdWdpbk5hbWUpLEJlLl9fY2hpbGRyZW4uc3BsaWNlKF9lLDEpLHRoaXMucmV3cml0ZUNhY2hlKCksdGhpcy5ob3QucnVuSG9va3MoImFmdGVyUmVtb3ZlUm93IixqLHVlKzEsT3QsdGhpcy5wbHVnaW4ucGx1Z2luTmFtZSksTmUpe2R0PUtlK3RoaXMuY291bnRDaGlsZHJl''@;'; + put 'put ''bihOZSk7dmFyICR0PXRoaXMuZ2V0Q2hpbGQoTmUsdGhpcy5jb3VudENoaWxkcmVuKE5lKS0xKSxmbj10aGlzLmdldFJvd0luZGV4KCR0KTt0aGlzLmhvdC5ydW5Ib29rcygiYmVmb3JlQ3JlYXRlUm93IixmbisxLHVlKzEsdGhpcy5wbHVnaW4ucGx1Z2luTmFtZSksTmUuX19jaGlsZHJlbi5w''@;'; + put 'put ''dXNoKEMpfWVsc2UgZHQ9dGhpcy5ob3QuY291bnRSb3dzKCkrMSx0aGlzLmhvdC5ydW5Ib29rcygiYmVmb3JlQ3JlYXRlUm93IixkdC0yLHVlKzEsdGhpcy5wbHVnaW4ucGx1Z2luTmFtZSksdGhpcy5kYXRhLnB1c2goQyl9dGhpcy5yZXdyaXRlQ2FjaGUoKSx0aGlzLmhvdC5ydW5Ib29rcygi''@;'; + put 'put ''YWZ0ZXJDcmVhdGVSb3ciLGR0LTIsdWUrMSx0aGlzLnBsdWdpbi5wbHVnaW5OYW1lKSx0aGlzLmhvdC5ydW5Ib29rcygiYWZ0ZXJEZXRhY2hDaGlsZCIsQmUsQyx0aGlzLmdldFJvd0luZGV4KEMpKSx5JiZ0aGlzLmhvdC5yZW5kZXIoKX19LHtrZXk6ImZpbHRlckRhdGEiLHZhbHVlOmZ1bmN0''@;'; + put 'put ''aW9uKGgsdix5KXt2YXIgQz10aGlzLEk9W107VXIoeSxmdW5jdGlvbihqKXtJLnB1c2goQy5nZXREYXRhT2JqZWN0KGopKX0pLFVyKEksZnVuY3Rpb24oail7dmFyIHVlPUMuZ2V0Um93SW5kZXhXaXRoaW5QYXJlbnQoaiksX2U9Qy5nZXRSb3dQYXJlbnQoaik7bnVsbD09PV9lP0MuZGF0YS5z''@;'; + put 'put ''cGxpY2UodWUsMSk6X2UuX19jaGlsZHJlbi5zcGxpY2UodWUsMSl9KSx0aGlzLnJld3JpdGVDYWNoZSgpfX0se2tleToic3BsaWNlRGF0YSIsdmFsdWU6ZnVuY3Rpb24oaCx2LHkpe3ZhciBDPXRoaXMuZ2V0RGF0YU9iamVjdChoLTEpLEk9bnVsbCxqPWg7aWYoQyYmQy5fX2NoaWxkcmVuJiYw''@;'; + put 'put ''PT09Qy5fX2NoaWxkcmVuLmxlbmd0aD8oST1DLGo9MCk6aDx0aGlzLmNvdW50QWxsUm93cygpJiYoST10aGlzLmdldFJvd1BhcmVudChoKSxqPXRoaXMuZ2V0Um93SW5kZXhXaXRoaW5QYXJlbnQoaCkpLEkpaWYoeSl7dmFyIHVlOyh1ZT1JLl9fY2hpbGRyZW4pLnNwbGljZS5hcHBseSh1ZSxb''@;'; + put 'put ''aix2XS5jb25jYXQoVkRlKHkpKSl9ZWxzZSBJLl9fY2hpbGRyZW4uc3BsaWNlKGosdik7ZWxzZSBpZih5KXt2YXIgX2U7KF9lPXRoaXMuZGF0YSkuc3BsaWNlLmFwcGx5KF9lLFtqLHZdLmNvbmNhdChWRGUoeSkpKX1lbHNlIHRoaXMuZGF0YS5zcGxpY2Uoaix2KTt0aGlzLnJld3JpdGVDYWNo''@;'; + put 'put ''ZSgpfX0se2tleToic3luY1Jvd1dpdGhSYXdTb3VyY2UiLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB2PWgseT1udWxsO2Rve251bGwhPT0oeT10aGlzLmdldFJvd1BhcmVudCh5KSkmJih2PXkpfXdoaWxlKG51bGwhPT15KTt0aGlzLnBsdWdpbi5kaXNhYmxlQ29yZUFQSU1vZGlmaWVycygpLHRo''@;'; + put 'put ''aXMuaG90LnNldFNvdXJjZURhdGFBdENlbGwodGhpcy5nZXRSb3dJbmRleCh2KSwiX19jaGlsZHJlbiIsdi5fX2NoaWxkcmVuLCJOZXN0ZWRSb3dzLnN5bmNSb3dXaXRoUmF3U291cmNlIiksdGhpcy5wbHVnaW4uZW5hYmxlQ29yZUFQSU1vZGlmaWVycygpfX0se2tleToibW92ZVJvdyIsdmFs''@;'; + put 'put ''dWU6ZnVuY3Rpb24oaCx2LHksQyl7dmFyIEk9dj09PXRoaXMuaG90LmNvdW50Um93cygpLGo9dGhpcy5nZXRSb3dQYXJlbnQoaCksdWU9dGhpcy5nZXRSb3dJbmRleFdpdGhpblBhcmVudChoKSxfZT1qLl9fY2hpbGRyZW4uc2xpY2UodWUsdWUrMSksQmU9aD52LE5lPXRoaXMuZ2V0Um93UGFy''@;'; + put 'put ''ZW50KEk/di0xOnYpO251bGw9PU5lJiYoTmU9dGhpcy5nZXRSb3dQYXJlbnQodi0xKSksbnVsbD09TmUmJihOZT10aGlzLmdldERhdGFPYmplY3Qodi0xKSksTmU/TmUuX19jaGlsZHJlbnx8KE5lLl9fY2hpbGRyZW49W10pOihOZT10aGlzLmdldERhdGFPYmplY3QodikpLl9fY2hpbGRyZW49''@;'; + put 'put ''W107dmFyIEtlPUl8fHl8fEM/TmUuX19jaGlsZHJlbi5sZW5ndGg6dGhpcy5nZXRSb3dJbmRleFdpdGhpblBhcmVudCh2KSxkdD1qPT09TmU7TmUuX19jaGlsZHJlbi5zcGxpY2UoS2UsMCxfZVswXSksai5fX2NoaWxkcmVuLnNwbGljZSh1ZSsoQmUmJmR0PzE6MCksMSksdGhpcy5zeW5jUm93''@;'; + put 'put ''V2l0aFJhd1NvdXJjZShqKSxkdHx8dGhpcy5zeW5jUm93V2l0aFJhd1NvdXJjZShOZSl9fSx7a2V5OiJ0cmFuc2xhdGVUcmltbWVkUm93Iix2YWx1ZTpmdW5jdGlvbihoKXtyZXR1cm4gdGhpcy5wbHVnaW4uY29sbGFwc2luZ1VJP3RoaXMucGx1Z2luLmNvbGxhcHNpbmdVSS50cmFuc2xhdGVU''@;'; + put 'put ''cmltbWVkUm93KGgpOmh9fSx7a2V5OiJ1bnRyYW5zbGF0ZVRyaW1tZWRSb3ciLHZhbHVlOmZ1bmN0aW9uKGgpe3JldHVybiB0aGlzLnBsdWdpbi5jb2xsYXBzaW5nVUk/dGhpcy5wbHVnaW4uY29sbGFwc2luZ1VJLnVudHJhbnNsYXRlVHJpbW1lZFJvdyhoKTpofX1dKSxkfSgpO2NvbnN0IG42''@;'; + put 'put ''dD10NnQ7ZnVuY3Rpb24gWkRlKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2''@;'; + put 'put ''LmtleSx2KX19ZnVuY3Rpb24gcjZ0KGQsZyxoKXtyZXR1cm4gZyYmWkRlKGQucHJvdG90eXBlLGcpLGgmJlpEZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGR9dmFyIG82dD1yNnQoZnVuY3Rpb24gZChnLGgpeyhmdW5jdGlvbiBpNnQo''@;'; + put 'put ''ZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0pKHRoaXMsZCksdGhpcy5ob3Q9aCx0aGlzLnBsdWdpbj1nfSk7Y29uc3QgV2dlPW82dDtmdW5jdGlvbiBZZ2UoZCl7cmV0dXJuKFlnZT0iZnVu''@;'; + put 'put ''Y3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihnKXtyZXR1cm4gdHlwZW9mIGd9OmZ1bmN0aW9uKGcpe3JldHVybiBnJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZnLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZnIT09U3lt''@;'; + put 'put ''Ym9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgZ30pKGQpfWZ1bmN0aW9uIHpEZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJs''@;'; + put 'put ''ZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fWZ1bmN0aW9uIFVnZShkLGcpe3JldHVybihVZ2U9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24odix5KXtyZXR1cm4gdi5fX3Byb3RvX189eSx2fSkoZCxnKX1m''@;'; + put 'put ''dW5jdGlvbiBjNnQoZCxnKXtpZihnJiYoIm9iamVjdCI9PT1ZZ2UoZyl8fCJmdW5jdGlvbiI9PXR5cGVvZiBnKSlyZXR1cm4gZztpZih2b2lkIDAhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIkRlcml2ZWQgY29uc3RydWN0b3JzIG1heSBvbmx5IHJldHVybiBvYmplY3Qgb3IgdW5kZWZpbmVk''@;'; + put 'put ''Iik7cmV0dXJuIGZ1bmN0aW9uIGY2dChkKXtpZih2b2lkIDA9PT1kKXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcigidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkIik7cmV0dXJuIGR9KGQpfWZ1bmN0aW9uIE9uZShkKXtyZXR1cm4oT25l''@;'; + put 'put ''PU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3QuZ2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKGgpe3JldHVybiBoLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKGgpfSkoZCl9dmFyIGQ2dD1mdW5jdGlvbihkKXshZnVuY3Rpb24gczZ0KGQsZyl7aWYoImZ1bmN0aW9u''@;'; + put 'put ''IiE9dHlwZW9mIGcmJm51bGwhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uIik7ZC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShnJiZnLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOmQsd3JpdGFi''@;'; + put 'put ''bGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGcmJlVnZShkLGcpfShoLGQpO3ZhciBnPWZ1bmN0aW9uIHU2dChkKXt2YXIgZz1mdW5jdGlvbiBoNnQoKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIFJlZmxl''@;'; + put 'put ''Y3R8fCFSZWZsZWN0LmNvbnN0cnVjdHx8UmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT10eXBlb2YgUHJveHkpcmV0dXJuITA7dHJ5e3JldHVybiBCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSxm''@;'; + put 'put ''dW5jdGlvbigpe30pKSwhMH1jYXRjaChkKXtyZXR1cm4hMX19KCk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHksdj1PbmUoZCk7aWYoZyl7dmFyIEM9T25lKHRoaXMpLmNvbnN0cnVjdG9yO3k9UmVmbGVjdC5jb25zdHJ1Y3Qodixhcmd1bWVudHMsQyl9ZWxzZSB5PXYuYXBwbHkodGhpcyxhcmd1''@;'; + put 'put ''bWVudHMpO3JldHVybiBjNnQodGhpcyx5KX19KGgpO2Z1bmN0aW9uIGgodix5KXt2YXIgQztyZXR1cm4gZnVuY3Rpb24gYTZ0KGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsaCks''@;'; + put 'put ''KEM9Zy5jYWxsKHRoaXMsdix5KSkuZGF0YU1hbmFnZXI9Qy5wbHVnaW4uZGF0YU1hbmFnZXIsQy5jb2xsYXBzaW5nVUk9Qy5wbHVnaW4uY29sbGFwc2luZ1VJLEMucm93SGVhZGVyV2lkdGhDYWNoZT1udWxsLEN9cmV0dXJuIGZ1bmN0aW9uIGw2dChkLGcsaCl7ZyYmekRlKGQucHJvdG90eXBl''@;'; + put 'put ''LGcpLGgmJnpEZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShoLFt7a2V5OiJhcHBlbmRMZXZlbEluZGljYXRvcnMiLHZhbHVlOmZ1bmN0aW9uKHksQyl7dmFyIEk9dGhpcy5ob3QudG9QaHlzaWNhbFJvdyh5KSxqPXRoaXMuZGF0YU1h''@;'; + put 'put ''bmFnZXIuZ2V0Um93TGV2ZWwoSSksdWU9dGhpcy5kYXRhTWFuYWdlci5nZXREYXRhT2JqZWN0KEkpLF9lPUMuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIkRJViIpWzBdLEJlPV9lLnF1ZXJ5U2VsZWN0b3IoInNwYW4ucm93SGVhZGVyIik7aWYoVXIoX2UucXVlcnlTZWxlY3RvckFsbCgnW2NsYXNz''@;'; + put 'put ''Xj0iaHRfbmVzdGluZyJdJyksZnVuY3Rpb24oJHQpeyR0JiZfZS5yZW1vdmVDaGlsZCgkdCl9KSxPMChDLGguQ1NTX0NMQVNTRVMuaW5kaWNhdG9yQ29udGFpbmVyKSxqKXt2YXIgS2U9dGhpcy5ob3Qucm9vdERvY3VtZW50LGR0PUJlLmNsb25lTm9kZSghMCk7X2UuaW5uZXJIVE1MPSIiLGlh''@;'; + put 'put ''KDAsai0xLGZ1bmN0aW9uKCl7dmFyICR0PUtlLmNyZWF0ZUVsZW1lbnQoIlNQQU4iKTtPMCgkdCxoLkNTU19DTEFTU0VTLmVtcHR5SW5kaWNhdG9yKSxfZS5hcHBlbmRDaGlsZCgkdCl9KSxfZS5hcHBlbmRDaGlsZChkdCl9aWYodGhpcy5kYXRhTWFuYWdlci5oYXNDaGlsZHJlbih1ZSkpe3Zh''@;'; + put 'put ''ciBPdD10aGlzLmhvdC5yb290RG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7TzAoQyxoLkNTU19DTEFTU0VTLnBhcmVudCksdGhpcy5jb2xsYXBzaW5nVUkuYXJlQ2hpbGRyZW5Db2xsYXBzZWQoSSk/TzAoT3QsIiIuY29uY2F0KGguQ1NTX0NMQVNTRVMuYnV0dG9uLCIgIikuY29uY2F0''@;'; + put 'put ''KGguQ1NTX0NMQVNTRVMuZXhwYW5kQnV0dG9uKSk6TzAoT3QsIiIuY29uY2F0KGguQ1NTX0NMQVNTRVMuYnV0dG9uLCIgIikuY29uY2F0KGguQ1NTX0NMQVNTRVMuY29sbGFwc2VCdXR0b24pKSxfZS5hcHBlbmRDaGlsZChPdCl9fX0se2tleToidXBkYXRlUm93SGVhZGVyV2lkdGgiLHZhbHVl''@;'; + put 'put ''OmZ1bmN0aW9uKHkpe3ZhciBDPXk7Q3x8KEM9dGhpcy5kYXRhTWFuYWdlci5jYWNoZS5sZXZlbENvdW50KSx0aGlzLnJvd0hlYWRlcldpZHRoQ2FjaGU9TWF0aC5tYXgoNTAsMTErMTAqQysyNSksdGhpcy5ob3QucmVuZGVyKCl9fV0sW3trZXk6IkNTU19DTEFTU0VTIixnZXQ6ZnVuY3Rpb24o''@;'; + put 'put ''KXtyZXR1cm57aW5kaWNhdG9yQ29udGFpbmVyOiJodF9uZXN0aW5nTGV2ZWxzIixwYXJlbnQ6Imh0X25lc3RpbmdQYXJlbnQiLGluZGljYXRvcjoiaHRfbmVzdGluZ0xldmVsIixlbXB0eUluZGljYXRvcjoiaHRfbmVzdGluZ0xldmVsX2VtcHR5IixidXR0b246Imh0X25lc3RpbmdCdXR0b24i''@;'; + put 'put ''LGV4cGFuZEJ1dHRvbjoiaHRfbmVzdGluZ0V4cGFuZCIsY29sbGFwc2VCdXR0b246Imh0X25lc3RpbmdDb2xsYXBzZSJ9fX1dKSxofShXZ2UpO2NvbnN0IEdEZT1kNnQ7ZnVuY3Rpb24gUWdlKGQpe3JldHVybihRZ2U9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVv''@;'; + put 'put ''ZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZyl7cmV0dXJuIHR5cGVvZiBnfTpmdW5jdGlvbihnKXtyZXR1cm4gZyYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZy5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZyE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGd9KShkKX1m''@;'; + put 'put ''dW5jdGlvbiBXRGUoZCl7cmV0dXJuIGZ1bmN0aW9uIHY2dChkKXtpZihBcnJheS5pc0FycmF5KGQpKXJldHVybiBKZ2UoZCl9KGQpfHxmdW5jdGlvbiBtNnQoZCl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJm51bGwhPWRbU3ltYm9sLml0ZXJhdG9yXXx8bnVsbCE9ZFsiQEBpdGVy''@;'; + put 'put ''YXRvciJdKXJldHVybiBBcnJheS5mcm9tKGQpfShkKXx8ZnVuY3Rpb24gZzZ0KGQsZyl7aWYoZCl7aWYoInN0cmluZyI9PXR5cGVvZiBkKXJldHVybiBKZ2UoZCxnKTt2YXIgaD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZCkuc2xpY2UoOCwtMSk7aWYoIk9iamVjdCI9PT1oJiZk''@;'; + put 'put ''LmNvbnN0cnVjdG9yJiYoaD1kLmNvbnN0cnVjdG9yLm5hbWUpLCJNYXAiPT09aHx8IlNldCI9PT1oKXJldHVybiBBcnJheS5mcm9tKGQpO2lmKCJBcmd1bWVudHMiPT09aHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QoaCkpcmV0dXJuIEpnZShkLGcp''@;'; + put 'put ''fX0oZCl8fGZ1bmN0aW9uIHA2dCgpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBzcHJlYWQgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3Jd''@;'; + put 'put ''KCkgbWV0aG9kLiIpfSgpfWZ1bmN0aW9uIEpnZShkLGcpeyhudWxsPT1nfHxnPmQubGVuZ3RoKSYmKGc9ZC5sZW5ndGgpO2Zvcih2YXIgaD0wLHY9bmV3IEFycmF5KGcpO2g8ZztoKyspdltoXT1kW2hdO3JldHVybiB2fWZ1bmN0aW9uIFlEZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7''@;'; + put 'put ''aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fWZ1bmN0aW9uIFhnZShkLGcpe3JldHVybihYZ2U9T2JqZWN0LnNl''@;'; + put 'put ''dFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24odix5KXtyZXR1cm4gdi5fX3Byb3RvX189eSx2fSkoZCxnKX1mdW5jdGlvbiBfNnQoZCxnKXtpZihnJiYoIm9iamVjdCI9PT1RZ2UoZyl8fCJmdW5jdGlvbiI9PXR5cGVvZiBnKSlyZXR1cm4gZztpZih2''@;'; + put 'put ''b2lkIDAhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIkRlcml2ZWQgY29uc3RydWN0b3JzIG1heSBvbmx5IHJldHVybiBvYmplY3Qgb3IgdW5kZWZpbmVkIik7cmV0dXJuIGZ1bmN0aW9uIEM2dChkKXtpZih2b2lkIDA9PT1kKXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcigidGhpcyBoYXNuJ3Qg''@;'; + put 'put ''YmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkIik7cmV0dXJuIGR9KGQpfWZ1bmN0aW9uIFJuZShkKXtyZXR1cm4oUm5lPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3QuZ2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKGgpe3JldHVybiBoLl9fcHJv''@;'; + put 'put ''dG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKGgpfSkoZCl9dmFyIFM2dD1mdW5jdGlvbihkKXshZnVuY3Rpb24gdzZ0KGQsZyl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGcmJm51bGwhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVs''@;'; + put 'put ''bCBvciBhIGZ1bmN0aW9uIik7ZC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShnJiZnLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOmQsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGcm''@;'; + put 'put ''JlhnZShkLGcpfShoLGQpO3ZhciBnPWZ1bmN0aW9uIGI2dChkKXt2YXIgZz1mdW5jdGlvbiBrNnQoKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIFJlZmxlY3R8fCFSZWZsZWN0LmNvbnN0cnVjdHx8UmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT10eXBlb2Yg''@;'; + put 'put ''UHJveHkpcmV0dXJuITA7dHJ5e3JldHVybiBCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSxmdW5jdGlvbigpe30pKSwhMH1jYXRjaChkKXtyZXR1cm4hMX19KCk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHksdj1SbmUoZCk7aWYoZyl7''@;'; + put 'put ''dmFyIEM9Um5lKHRoaXMpLmNvbnN0cnVjdG9yO3k9UmVmbGVjdC5jb25zdHJ1Y3Qodixhcmd1bWVudHMsQyl9ZWxzZSB5PXYuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBfNnQodGhpcyx5KX19KGgpO2Z1bmN0aW9uIGgodix5KXt2YXIgQztyZXR1cm4gZnVuY3Rpb24gQTZ0KGQsZyl7''@;'; + put 'put ''aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsaCksKEM9Zy5jYWxsKHRoaXMsdix5KSkuZGF0YU1hbmFnZXI9Qy5wbHVnaW4uZGF0YU1hbmFnZXIsQy5jb2xsYXBzZWRSb3dzPVtdLEMuY29s''@;'; + put 'put ''bGFwc2VkUm93c1N0YXNoPXtzdGFzaDpmdW5jdGlvbigpe3ZhciBqPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdJiZhcmd1bWVudHNbMF07Qy5sYXN0Q29sbGFwc2VkUm93cz1DLmNvbGxhcHNlZFJvd3Muc2xpY2UoMCksQy5leHBhbmRNdWx0aXBsZUNoaWxkcmVu''@;'; + put 'put ''KEMubGFzdENvbGxhcHNlZFJvd3Msail9LHNoaWZ0U3Rhc2g6ZnVuY3Rpb24oaix1ZSl7dmFyIF9lPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXToxO251bGw9PXVlJiYodWU9MS8wKSxVcihDLmxhc3RDb2xsYXBzZWRSb3dzLGZ1bmN0aW9u''@;'; + put 'put ''KEJlLE5lKXtCZT49aiYmQmU8dWUmJihDLmxhc3RDb2xsYXBzZWRSb3dzW05lXT1CZStfZSl9KX0sYXBwbHlTdGFzaDpmdW5jdGlvbigpe3ZhciBqPSEoYXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0pfHxhcmd1bWVudHNbMF07Qy5jb2xsYXBzZU11bHRpcGxlQ2hp''@;'; + put 'put ''bGRyZW4oQy5sYXN0Q29sbGFwc2VkUm93cyxqKSxDLmxhc3RDb2xsYXBzZWRSb3dzPXZvaWQgMH0sdHJpbVN0YXNoOmZ1bmN0aW9uKGosdWUpe2lhKGosait1ZS0xLGZ1bmN0aW9uKF9lKXt2YXIgQmU9Qy5sYXN0Q29sbGFwc2VkUm93cy5pbmRleE9mKF9lKTtCZT4tMSYmQy5sYXN0Q29sbGFw''@;'; + put 'put ''c2VkUm93cy5zcGxpY2UoQmUsMSl9KX19LEN9cmV0dXJuIGZ1bmN0aW9uIHk2dChkLGcsaCl7ZyYmWURlKGQucHJvdG90eXBlLGcpLGgmJllEZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShoLFt7a2V5OiJjb2xsYXBzZUNoaWxkcmVu''@;'; + put 'put ''Iix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz10aGlzLEk9IShhcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXSl8fGFyZ3VtZW50c1sxXSxqPSEoYXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0pfHxhcmd1bWVudHNbMl0sdWU9W10sX2U9bnVs''@;'; + put 'put ''bCxCZT1udWxsLE5lPW51bGw7cmV0dXJuIGlzTmFOKHkpP0JlPXRoaXMuZGF0YU1hbmFnZXIuZ2V0Um93SW5kZXgoX2U9eSk6KF9lPXRoaXMuZGF0YU1hbmFnZXIuZ2V0RGF0YU9iamVjdCh5KSxCZT15KSx0aGlzLmRhdGFNYW5hZ2VyLmhhc0NoaWxkcmVuKF9lKSYmVXIoX2UuX19jaGlsZHJl''@;'; + put 'put ''bixmdW5jdGlvbihLZSl7dWUucHVzaChDLmRhdGFNYW5hZ2VyLmdldFJvd0luZGV4KEtlKSl9KSxOZT10aGlzLmNvbGxhcHNlUm93cyh1ZSwhMCwhMSksaiYmdGhpcy50cmltUm93cyhOZSksSSYmdGhpcy5yZW5kZXJBbmRBZGp1c3QoKSwtMT09PXRoaXMuY29sbGFwc2VkUm93cy5pbmRleE9m''@;'; + put 'put ''KEJlKSYmdGhpcy5jb2xsYXBzZWRSb3dzLnB1c2goQmUpLE5lfX0se2tleToiY29sbGFwc2VNdWx0aXBsZUNoaWxkcmVuIix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz10aGlzLEk9IShhcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXSl8fGFyZ3VtZW50c1sxXSxqPSEo''@;'; + put 'put ''YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0pfHxhcmd1bWVudHNbMl0sdWU9W107VXIoeSxmdW5jdGlvbihfZSl7dWUucHVzaC5hcHBseSh1ZSxXRGUoQy5jb2xsYXBzZUNoaWxkcmVuKF9lLCExLCExKSkpfSksaiYmdGhpcy50cmltUm93cyh1ZSksSSYmdGhpcy5y''@;'; + put 'put ''ZW5kZXJBbmRBZGp1c3QoKX19LHtrZXk6ImNvbGxhcHNlUm93Iix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz0hKGFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdKXx8YXJndW1lbnRzWzFdO3RoaXMuY29sbGFwc2VSb3dzKFt5XSxDKX19LHtrZXk6ImNvbGxhcHNlUm93''@;'; + put 'put ''cyIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEM9dGhpcyxJPSEoYXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0pfHxhcmd1bWVudHNbMV0saj1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXSYmYXJndW1lbnRzWzJdLHVlPVtdO3JldHVybiBV''@;'; + put 'put ''cih5LGZ1bmN0aW9uKF9lKXt1ZS5wdXNoKF9lKSxJJiZDLmNvbGxhcHNlQ2hpbGRSb3dzKF9lLHVlKX0pLGomJnRoaXMudHJpbVJvd3ModWUpLHVlfX0se2tleToiY29sbGFwc2VDaGlsZFJvd3MiLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPXRoaXMsST1hcmd1bWVudHMubGVuZ3RoPjEmJnZv''@;'; + put 'put ''aWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06W10sdWU9YXJndW1lbnRzLmxlbmd0aD4zJiZ2b2lkIDAhPT1hcmd1bWVudHNbM10mJmFyZ3VtZW50c1szXTtpZih0aGlzLmRhdGFNYW5hZ2VyLmhhc0NoaWxkcmVuKHkpKXt2YXIgX2U9dGhpcy5kYXRhTWFuYWdlci5nZXREYXRhT2Jq''@;'; + put 'put ''ZWN0KHkpO1VyKF9lLl9fY2hpbGRyZW4sZnVuY3Rpb24oQmUpe3ZhciBOZT1DLmRhdGFNYW5hZ2VyLmdldFJvd0luZGV4KEJlKTtJLnB1c2goTmUpLEMuY29sbGFwc2VDaGlsZFJvd3MoTmUsSSl9KX11ZSYmdGhpcy50cmltUm93cyhJKX19LHtrZXk6ImV4cGFuZFJvdyIsdmFsdWU6ZnVuY3Rp''@;'; + put 'put ''b24oeSl7dmFyIEM9IShhcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXSl8fGFyZ3VtZW50c1sxXTt0aGlzLmV4cGFuZFJvd3MoW3ldLEMpfX0se2tleToiZXhwYW5kUm93cyIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEM9dGhpcyxJPSEoYXJndW1lbnRzLmxlbmd0aD4x''@;'; + put 'put ''JiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0pfHxhcmd1bWVudHNbMV0saj1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXSYmYXJndW1lbnRzWzJdLHVlPVtdO3JldHVybiBVcih5LGZ1bmN0aW9uKF9lKXt1ZS5wdXNoKF9lKSxJJiZDLmV4cGFuZENoaWxkUm93cyhfZSx1''@;'; + put 'put ''ZSl9KSxqJiZ0aGlzLnVudHJpbVJvd3ModWUpLHVlfX0se2tleToiZXhwYW5kQ2hpbGRSb3dzIix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz10aGlzLEk9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOltdLHVlPWFyZ3VtZW50cy5sZW5ndGg+''@;'; + put 'put ''MyYmdm9pZCAwIT09YXJndW1lbnRzWzNdJiZhcmd1bWVudHNbM107aWYodGhpcy5kYXRhTWFuYWdlci5oYXNDaGlsZHJlbih5KSl7dmFyIF9lPXRoaXMuZGF0YU1hbmFnZXIuZ2V0RGF0YU9iamVjdCh5KTtVcihfZS5fX2NoaWxkcmVuLGZ1bmN0aW9uKEJlKXtpZighQy5pc0FueVBhcmVudENv''@;'; + put 'put ''bGxhcHNlZChCZSkpe3ZhciBOZT1DLmRhdGFNYW5hZ2VyLmdldFJvd0luZGV4KEJlKTtJLnB1c2goTmUpLEMuZXhwYW5kQ2hpbGRSb3dzKE5lLEkpfX0pfXVlJiZ0aGlzLnVudHJpbVJvd3MoSSl9fSx7a2V5OiJleHBhbmRDaGlsZHJlbiIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEM9dGhpcyxJ''@;'; + put 'put ''PSEoYXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0pfHxhcmd1bWVudHNbMV0saj0hKGFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdKXx8YXJndW1lbnRzWzJdLHVlPVtdLF9lPW51bGwsQmU9bnVsbCxOZT1udWxsO3JldHVybiBpc05hTih5''@;'; + put 'put ''KT8oX2U9eSxCZT10aGlzLmRhdGFNYW5hZ2VyLmdldFJvd0luZGV4KHkpKTooX2U9dGhpcy5kYXRhTWFuYWdlci5nZXREYXRhT2JqZWN0KHkpLEJlPXkpLHRoaXMuY29sbGFwc2VkUm93cy5zcGxpY2UodGhpcy5jb2xsYXBzZWRSb3dzLmluZGV4T2YoQmUpLDEpLHRoaXMuZGF0YU1hbmFnZXIu''@;'; + put 'put ''aGFzQ2hpbGRyZW4oX2UpJiZVcihfZS5fX2NoaWxkcmVuLGZ1bmN0aW9uKEtlKXt2YXIgZHQ9Qy5kYXRhTWFuYWdlci5nZXRSb3dJbmRleChLZSk7dWUucHVzaChkdCl9KSxOZT10aGlzLmV4cGFuZFJvd3ModWUsITAsITEpLGomJnRoaXMudW50cmltUm93cyhOZSksSSYmdGhpcy5yZW5kZXJB''@;'; + put 'put ''bmRBZGp1c3QoKSxOZX19LHtrZXk6ImV4cGFuZE11bHRpcGxlQ2hpbGRyZW4iLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPXRoaXMsST0hKGFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdKXx8YXJndW1lbnRzWzFdLGo9IShhcmd1bWVudHMubGVuZ3RoPjImJnZvaWQg''@;'; + put 'put ''MCE9PWFyZ3VtZW50c1syXSl8fGFyZ3VtZW50c1syXSx1ZT1bXTtVcih5LGZ1bmN0aW9uKF9lKXt1ZS5wdXNoLmFwcGx5KHVlLFdEZShDLmV4cGFuZENoaWxkcmVuKF9lLCExLCExKSkpfSksaiYmdGhpcy51bnRyaW1Sb3dzKHVlKSxJJiZ0aGlzLnJlbmRlckFuZEFkanVzdCgpfX0se2tleToi''@;'; + put 'put ''Y29sbGFwc2VBbGwiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcyxDPXRoaXMuZGF0YU1hbmFnZXIuZ2V0RGF0YSgpLEk9W107VXIoQyxmdW5jdGlvbihqKXt5LmRhdGFNYW5hZ2VyLmhhc0NoaWxkcmVuKGopJiZJLnB1c2goail9KSx0aGlzLmNvbGxhcHNlTXVsdGlwbGVDaGlsZHJlbihJ''@;'; + put 'put ''KSx0aGlzLnJlbmRlckFuZEFkanVzdCgpfX0se2tleToiZXhwYW5kQWxsIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXMsQz10aGlzLmRhdGFNYW5hZ2VyLmdldERhdGEoKSxJPVtdO1VyKEMsZnVuY3Rpb24oail7eS5kYXRhTWFuYWdlci5oYXNDaGlsZHJlbihqKSYmSS5wdXNoKGopfSks''@;'; + put 'put ''dGhpcy5leHBhbmRNdWx0aXBsZUNoaWxkcmVuKEkpLHRoaXMucmVuZGVyQW5kQWRqdXN0KCl9fSx7a2V5OiJ0cmltUm93cyIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEM9dGhpczt0aGlzLmhvdC5iYXRjaEV4ZWN1dGlvbihmdW5jdGlvbigpe1VyKHksZnVuY3Rpb24oSSl7Qy5wbHVnaW4uY29s''@;'; + put 'put ''bGFwc2VkUm93c01hcC5zZXRWYWx1ZUF0SW5kZXgoSSwhMCl9KX0sITApfX0se2tleToidW50cmltUm93cyIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEM9dGhpczt0aGlzLmhvdC5iYXRjaEV4ZWN1dGlvbihmdW5jdGlvbigpe1VyKHksZnVuY3Rpb24oSSl7Qy5wbHVnaW4uY29sbGFwc2VkUm93''@;'; + put 'put ''c01hcC5zZXRWYWx1ZUF0SW5kZXgoSSwhMSl9KX0sITApfX0se2tleToiYXJlQ2hpbGRyZW5Db2xsYXBzZWQiLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPXRoaXMsST1pc05hTih5KT95OnRoaXMuZGF0YU1hbmFnZXIuZ2V0RGF0YU9iamVjdCh5KSxqPSEwO3JldHVybiBudWxsPT09SSYmKEk9''@;'; + put 'put ''e19fY2hpbGRyZW46dGhpcy5kYXRhTWFuYWdlci5kYXRhfSksdGhpcy5kYXRhTWFuYWdlci5oYXNDaGlsZHJlbihJKSYmVXIoSS5fX2NoaWxkcmVuLGZ1bmN0aW9uKHVlKXt2YXIgX2U9Qy5kYXRhTWFuYWdlci5nZXRSb3dJbmRleCh1ZSk7aWYoIUMucGx1Z2luLmNvbGxhcHNlZFJvd3NNYXAu''@;'; + put 'put ''Z2V0VmFsdWVBdEluZGV4KF9lKSlyZXR1cm4gaj0hMSwhMX0pLGp9fSx7a2V5OiJpc0FueVBhcmVudENvbGxhcHNlZCIsdmFsdWU6ZnVuY3Rpb24oeSl7Zm9yKHZhciBDPXk7bnVsbCE9PUM7KXtDPXRoaXMuZGF0YU1hbmFnZXIuZ2V0Um93UGFyZW50KEMpO3ZhciBJPXRoaXMuZGF0YU1hbmFn''@;'; + put 'put ''ZXIuZ2V0Um93SW5kZXgoQyk7aWYodGhpcy5jb2xsYXBzZWRSb3dzLmluZGV4T2YoSSk+LTEpcmV0dXJuITB9cmV0dXJuITF9fSx7a2V5OiJ0b2dnbGVTdGF0ZSIsdmFsdWU6ZnVuY3Rpb24oeSxDKXtpZighKEMuY29sPj0wKSl7dmFyIEk9dGhpcy50cmFuc2xhdGVUcmltbWVkUm93KEMucm93''@;'; + put 'put ''KTt0bCh5LnRhcmdldCxHRGUuQ1NTX0NMQVNTRVMuYnV0dG9uKSYmKHRoaXMuYXJlQ2hpbGRyZW5Db2xsYXBzZWQoSSk/dGhpcy5leHBhbmRDaGlsZHJlbihJKTp0aGlzLmNvbGxhcHNlQ2hpbGRyZW4oSSksXzgoeSkpfX19LHtrZXk6InRyYW5zbGF0ZVRyaW1tZWRSb3ciLHZhbHVlOmZ1bmN0''@;'; + put 'put ''aW9uKHkpe3JldHVybiB0aGlzLmhvdC50b1BoeXNpY2FsUm93KHkpfX0se2tleToidW50cmFuc2xhdGVUcmltbWVkUm93Iix2YWx1ZTpmdW5jdGlvbih5KXtyZXR1cm4gdGhpcy5ob3QudG9WaXN1YWxSb3coeSl9fSx7a2V5OiJyZW5kZXJBbmRBZGp1c3QiLHZhbHVlOmZ1bmN0aW9uKCl7dGhp''@;'; + put 'put ''cy5ob3QucmVuZGVyKCksdGhpcy5ob3Qudmlldy5hZGp1c3RFbGVtZW50c1NpemUoKX19XSksaH0oV2dlKTtjb25zdCBNNnQ9UzZ0O2Z1bmN0aW9uIEtnZShkKXtyZXR1cm4oS2dlPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1''@;'; + put 'put ''bmN0aW9uKGcpe3JldHVybiB0eXBlb2YgZ306ZnVuY3Rpb24oZyl7cmV0dXJuIGcmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmcuY29uc3RydWN0b3I9PT1TeW1ib2wmJmchPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBnfSkoZCl9ZnVuY3Rpb24gVURlKGQsZyl7Zm9y''@;'; + put 'put ''KHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19ZnVuY3Rpb24gJGdlKGQsZyl7''@;'; + put 'put ''cmV0dXJuKCRnZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbih2LHkpe3JldHVybiB2Ll9fcHJvdG9fXz15LHZ9KShkLGcpfWZ1bmN0aW9uIEQ2dChkLGcpe2lmKGcmJigib2JqZWN0Ij09PUtnZShnKXx8ImZ1bmN0aW9uIj09dHlw''@;'; + put 'put ''ZW9mIGcpKXJldHVybiBnO2lmKHZvaWQgMCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWQiKTtyZXR1cm4gUURlKGQpfWZ1bmN0aW9uIFFEZShkKXtpZih2b2lkIDA9PT1kKXRocm93IG5ldyBS''@;'; + put 'put ''ZWZlcmVuY2VFcnJvcigidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkIik7cmV0dXJuIGR9ZnVuY3Rpb24gQm5lKGQpe3JldHVybihCbmU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVu''@;'; + put 'put ''Y3Rpb24oaCl7cmV0dXJuIGguX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YoaCl9KShkKX12YXIgSkRlPW5ldyBXZWFrTWFwLE82dD1mdW5jdGlvbihkKXshZnVuY3Rpb24gVDZ0KGQsZyl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGcmJm51bGwhPT1nKXRocm93IG5ldyBUeXBlRXJy''@;'; + put 'put ''b3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uIik7ZC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShnJiZnLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOmQsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLE9iamVjdC5kZWZpbmVQ''@;'; + put 'put ''cm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGcmJiRnZShkLGcpfShoLGQpO3ZhciBnPWZ1bmN0aW9uIEk2dChkKXt2YXIgZz1mdW5jdGlvbiBMNnQoKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIFJlZmxlY3R8fCFSZWZsZWN0LmNvbnN0cnVjdHx8UmVmbGVjdC5jb25zdHJ1''@;'; + put 'put ''Y3Quc2hhbSlyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT10eXBlb2YgUHJveHkpcmV0dXJuITA7dHJ5e3JldHVybiBCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSxmdW5jdGlvbigpe30pKSwhMH1jYXRjaChkKXtyZXR1cm4hMX19KCk7''@;'; + put 'put ''cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHksdj1CbmUoZCk7aWYoZyl7dmFyIEM9Qm5lKHRoaXMpLmNvbnN0cnVjdG9yO3k9UmVmbGVjdC5jb25zdHJ1Y3Qodixhcmd1bWVudHMsQyl9ZWxzZSB5PXYuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBENnQodGhpcyx5KX19KGgpO2Z1bmN0aW9u''@;'; + put 'put ''IGgodix5KXt2YXIgQztyZXR1cm4gZnVuY3Rpb24gRTZ0KGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsaCksQz1nLmNhbGwodGhpcyx2LHkpLEpEZS5zZXQoUURlKEMpLHtyb3df''@;'; + put 'put ''YWJvdmU6ZnVuY3Rpb24oaix1ZSl7Qy5kYXRhTWFuYWdlci5hZGRTaWJsaW5nKHVlW3VlLmxlbmd0aC0xXS5zdGFydC5yb3csImFib3ZlIil9LHJvd19iZWxvdzpmdW5jdGlvbihqLHVlKXtDLmRhdGFNYW5hZ2VyLmFkZFNpYmxpbmcodWVbdWUubGVuZ3RoLTFdLnN0YXJ0LnJvdywiYmVsb3ci''@;'; + put 'put ''KX19KSxDLmRhdGFNYW5hZ2VyPUMucGx1Z2luLmRhdGFNYW5hZ2VyLEN9cmV0dXJuIGZ1bmN0aW9uIHg2dChkLGcsaCl7ZyYmVURlKGQucHJvdG90eXBlLGcpLGgmJlVEZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShoLFt7a2V5OiJh''@;'; + put 'put ''cHBlbmRPcHRpb25zIix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz10aGlzLEk9W3trZXk6ImFkZF9jaGlsZCIsbmFtZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmdldFRyYW5zbGF0ZWRQaHJhc2UoaXBlKX0sY2FsbGJhY2s6ZnVuY3Rpb24oKXt2YXIgdWU9Qy5kYXRhTWFuYWdlci50cmFuc2xh''@;'; + put 'put ''dGVUcmltbWVkUm93KEMuaG90LmdldFNlbGVjdGVkTGFzdCgpWzBdKSxfZT1DLmRhdGFNYW5hZ2VyLmdldERhdGFPYmplY3QodWUpO0MuZGF0YU1hbmFnZXIuYWRkQ2hpbGQoX2UpfSxkaXNhYmxlZDpmdW5jdGlvbigpe3ZhciB1ZT1DLmhvdC5nZXRTZWxlY3RlZExhc3QoKTtyZXR1cm4hdWV8''@;'; + put 'put ''fHVlWzBdPDB8fEMuaG90LnNlbGVjdGlvbi5pc1NlbGVjdGVkQnlDb2x1bW5IZWFkZXIoKXx8Qy5ob3QuY291bnRSb3dzKCk+PUMuaG90LmdldFNldHRpbmdzKCkubWF4Um93c319LHtrZXk6ImRldGFjaF9mcm9tX3BhcmVudCIsbmFtZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmdldFRyYW5z''@;'; + put 'put ''bGF0ZWRQaHJhc2Uob3BlKX0sY2FsbGJhY2s6ZnVuY3Rpb24oKXtDLmRhdGFNYW5hZ2VyLmRldGFjaEZyb21QYXJlbnQoQy5ob3QuZ2V0U2VsZWN0ZWRMYXN0KCkpfSxkaXNhYmxlZDpmdW5jdGlvbigpe3ZhciB1ZT1DLmhvdC5nZXRTZWxlY3RlZExhc3QoKSxfZT1DLmRhdGFNYW5hZ2VyLnRy''@;'; + put 'put ''YW5zbGF0ZVRyaW1tZWRSb3codWVbMF0pO3JldHVybiFDLmRhdGFNYW5hZ2VyLmdldFJvd1BhcmVudChfZSl8fCF1ZXx8dWVbMF08MHx8Qy5ob3Quc2VsZWN0aW9uLmlzU2VsZWN0ZWRCeUNvbHVtbkhlYWRlcigpfHxDLmhvdC5jb3VudFJvd3MoKT49Qy5ob3QuZ2V0U2V0dGluZ3MoKS5tYXhS''@;'; + put 'put ''b3dzfX0se25hbWU6Ii0tLS0tLS0tLSJ9XTtyZXR1cm4gaWEoMCx5Lml0ZW1zLmxlbmd0aC0xLGZ1bmN0aW9uKGope2lmKDA9PT1qKXJldHVybiBVcihJLGZ1bmN0aW9uKHVlLF9lKXt5Lml0ZW1zLnNwbGljZShqK19lLDAsdWUpfSksITF9KSx0aGlzLm1vZGlmeVJvd0luc2VydGluZ09wdGlv''@;'; + put 'put ''bnMoeSl9fSx7a2V5OiJtb2RpZnlSb3dJbnNlcnRpbmdPcHRpb25zIix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz1KRGUuZ2V0KHRoaXMpO3JldHVybiBpYSgwLHkuaXRlbXMubGVuZ3RoLTEsZnVuY3Rpb24oSSl7dmFyIGo9Q1t5Lml0ZW1zW0ldLmtleV07bnVsbCE9aiYmKHkuaXRlbXNbSV0u''@;'; + put 'put ''Y2FsbGJhY2s9ail9KSx5fX1dKSxofShXZ2UpO2NvbnN0IFI2dD1PNnQ7dmFyIFhEZTtmdW5jdGlvbiBLRGUoZCl7cmV0dXJuIGZ1bmN0aW9uIEg2dChkKXtpZihBcnJheS5pc0FycmF5KGQpKXJldHVybiBxZ2UoZCl9KGQpfHxmdW5jdGlvbiBGNnQoZCl7aWYoInVuZGVmaW5lZCIhPXR5cGVv''@;'; + put 'put ''ZiBTeW1ib2wmJm51bGwhPWRbU3ltYm9sLml0ZXJhdG9yXXx8bnVsbCE9ZFsiQEBpdGVyYXRvciJdKXJldHVybiBBcnJheS5mcm9tKGQpfShkKXx8ZnVuY3Rpb24gUDZ0KGQsZyl7aWYoZCl7aWYoInN0cmluZyI9PXR5cGVvZiBkKXJldHVybiBxZ2UoZCxnKTt2YXIgaD1PYmplY3QucHJvdG90''@;'; + put 'put ''eXBlLnRvU3RyaW5nLmNhbGwoZCkuc2xpY2UoOCwtMSk7aWYoIk9iamVjdCI9PT1oJiZkLmNvbnN0cnVjdG9yJiYoaD1kLmNvbnN0cnVjdG9yLm5hbWUpLCJNYXAiPT09aHx8IlNldCI9PT1oKXJldHVybiBBcnJheS5mcm9tKGQpO2lmKCJBcmd1bWVudHMiPT09aHx8L14oPzpVaXxJKW50KD86''@;'; + put 'put ''OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QoaCkpcmV0dXJuIHFnZShkLGcpfX0oZCl8fGZ1bmN0aW9uIEI2dCgpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBzcHJlYWQgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFi''@;'; + put 'put ''bGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfWZ1bmN0aW9uIHFnZShkLGcpeyhudWxsPT1nfHxnPmQubGVuZ3RoKSYmKGc9ZC5sZW5ndGgpO2Zvcih2YXIgaD0wLHY9bmV3IEFycmF5KGcpO2g8ZztoKyspdltoXT1kW2hd''@;'; + put 'put ''O3JldHVybiB2fWZ1bmN0aW9uICREZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5''@;'; + put 'put ''KGQsdi5rZXksdil9fXZhciBaNnQ9ZnVuY3Rpb24oKXtmdW5jdGlvbiBkKGcpeyhmdW5jdGlvbiBWNnQoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0pKHRoaXMsZCksdGhpcy5wbHVnaW49''@;'; + put 'put ''Zyx0aGlzLmhvdD1nLmhvdCx0aGlzLmRhdGFNYW5hZ2VyPWcuZGF0YU1hbmFnZXIsdGhpcy5jb2xsYXBzaW5nVUk9Zy5jb2xsYXBzaW5nVUl9cmV0dXJuIGZ1bmN0aW9uIGo2dChkLGcsaCl7ZyYmJERlKGQucHJvdG90eXBlLGcpLGgmJiREZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShk''@;'; + put 'put ''LCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShkLFt7a2V5OiJvbkJlZm9yZVJvd01vdmUiLHZhbHVlOmZ1bmN0aW9uKGgsdix5LEMpe3ZhciBJPXRoaXM7aWYodGhpcy5kaXNwbGF5QVBJQ29tcGF0aWJpbGl0eVdhcm5pbmcoe3Jvd3M6aCxmaW5hbEluZGV4OnYsZHJvcEluZGV4OnksbW92''@;'; + put 'put ''ZVBvc3NpYmxlOkN9KSlyZXR1cm4hMTt0aGlzLm1vdmVkVG9Db2xsYXBzZWQ9ITE7dmFyIHVlPXk9PT10aGlzLmhvdC5jb3VudFJvd3MoKSxfZT11ZT90aGlzLmhvdC5jb3VudFNvdXJjZVJvd3MoKTp0aGlzLmRhdGFNYW5hZ2VyLnRyYW5zbGF0ZVRyaW1tZWRSb3coeSksQmU9ITAsTmU9aC5t''@;'; + put 'put ''YXAoZnVuY3Rpb24oZm4pe2lmKCFCZSlyZXR1cm4hMTt2YXIgTG49SS5kYXRhTWFuYWdlci50cmFuc2xhdGVUcmltbWVkUm93KGZuKTtyZXR1cm4gQmU9SS5zaG91bGRBbGxvd01vdmluZyhMbixfZSksTG59KSxLZT0tMT09PU5lLmluZGV4T2YoX2UpO2lmKCFCZXx8IUtlKXJldHVybiExO3Zh''@;'; + put 'put ''ciBkdD10aGlzLmdldEJhc2VQYXJlbnQoTmUpLE90PXRoaXMuZ2V0VGFyZ2V0UGFyZW50KHVlLF9lKSwkdD1kdD09PU90O3JldHVybiB0aGlzLm1vdmVkVG9Db2xsYXBzZWQ9dGhpcy5jb2xsYXBzaW5nVUkuYXJlQ2hpbGRyZW5Db2xsYXBzZWQoT3QpLHRoaXMuY29sbGFwc2luZ1VJLmNvbGxh''@;'; + put 'put ''cHNlZFJvd3NTdGFzaC5zdGFzaCgpLHRoaXMuc2hpZnRDb2xsYXBzaWJsZVBhcmVudHNMb2NhdGlvbnMoTmUsX2UsJHQpLHRoaXMubW92ZVJvd3MoTmUsX2UsT3QpLHRoaXMuZGF0YU1hbmFnZXIucmV3cml0ZUNhY2hlKCksdGhpcy5tb3ZlQ2VsbHNNZXRhKE5lLF9lKSx0aGlzLmNvbGxhcHNp''@;'; + put 'put ''bmdVSS5jb2xsYXBzZWRSb3dzU3Rhc2guYXBwbHlTdGFzaCghMSksdGhpcy5ob3QucnVuSG9va3MoImFmdGVyUm93TW92ZSIsaCx2LHksQyxDJiZ0aGlzLmlzUm93T3JkZXJDaGFuZ2VkKGgsdikpLHRoaXMuaG90LnJlbmRlcigpLHRoaXMuc2VsZWN0Q2VsbHMoaCx5KSwhMX19LHtrZXk6ImRp''@;'; + put 'put ''c3BsYXlBUElDb21wYXRpYmlsaXR5V2FybmluZyIsdmFsdWU6ZnVuY3Rpb24oaCl7dmFyIHY9aC5yb3dzLHk9aC5maW5hbEluZGV4LEM9aC5kcm9wSW5kZXgsST1oLm1vdmVQb3NzaWJsZSxqPSExO3JldHVybiBhMShDKSYmKGwxKFAyKFhEZXx8KFhEZT1mdW5jdGlvbiBONnQoZCxnKXtyZXR1''@;'; + put 'put ''cm4gZ3x8KGc9ZC5zbGljZSgwKSksT2JqZWN0LmZyZWV6ZShPYmplY3QuZGVmaW5lUHJvcGVydGllcyhkLHtyYXc6e3ZhbHVlOk9iamVjdC5mcmVlemUoZyl9fSkpfShbIlNpbmNlIHZlcnNpb24gOC4wLjAgb2YgdGhlIEhhbmRzb250YWJsZSB0aGUgJ21vdmVSb3dzJyBtZXRob2QgaXNuJ3Qg''@;'; + put 'put ''dXNlZCBmb3IgbW92aW5nIHJvd3MgXG4gICAgICB3aGVuIHRoZSBOZXN0ZWRSb3dzIHBsdWdpbiBpcyBlbmFibGVkLiBQbGVhc2UgdXNlIHRoZSAnZHJhZ1Jvd3MnIG1ldGhvZCBpbnN0ZWFkLiJdLFsiU2luY2UgdmVyc2lvbiA4LjAuMCBvZiB0aGUgSGFuZHNvbnRhYmxlIHRoZSAnbW92ZVJv''@;'; + put 'put ''d3MnIG1ldGhvZCBpc24ndCB1c2VkIGZvciBtb3Zpbmcgcm93c1xceDIwXG4gICAgICB3aGVuIHRoZSBOZXN0ZWRSb3dzIHBsdWdpbiBpcyBlbmFibGVkLiBQbGVhc2UgdXNlIHRoZSAnZHJhZ1Jvd3MnIG1ldGhvZCBpbnN0ZWFkLiJdKSkpKSx0aGlzLmhvdC5ydW5Ib29rcygiYWZ0ZXJSb3dN''@;'; + put 'put ''b3ZlIix2LHksQyxJLCExKSxqPSEwKSxqfX0se2tleToic2hvdWxkQWxsb3dNb3ZpbmciLHZhbHVlOmZ1bmN0aW9uKGgsdil7cmV0dXJuISh0aGlzLmRhdGFNYW5hZ2VyLmlzUGFyZW50KGgpfHx0aGlzLmRhdGFNYW5hZ2VyLmlzUm93SGlnaGVzdExldmVsKGgpfHxoPT09dnx8MD09PXYpfX0s''@;'; + put 'put ''e2tleToiZ2V0QmFzZVBhcmVudCIsdmFsdWU6ZnVuY3Rpb24oaCl7cmV0dXJuIHRoaXMuZGF0YU1hbmFnZXIuZ2V0Um93UGFyZW50KGhbMF0pfX0se2tleToiZ2V0VGFyZ2V0UGFyZW50Iix2YWx1ZTpmdW5jdGlvbihoLHYpe3ZhciB5PXRoaXMuZGF0YU1hbmFnZXIuZ2V0Um93UGFyZW50KGg/''@;'; + put 'put ''di0xOnYpO3JldHVybiBudWxsPT15JiYoeT10aGlzLmRhdGFNYW5hZ2VyLmdldFJvd1BhcmVudCh2LTEpKSx5fX0se2tleToic2hpZnRDb2xsYXBzaWJsZVBhcmVudHNMb2NhdGlvbnMiLHZhbHVlOmZ1bmN0aW9uKGgsdix5KXt5fHwoTWF0aC5tYXguYXBwbHkoTWF0aCxLRGUoaCkpPD12P3Ro''@;'; + put 'put ''aXMuY29sbGFwc2luZ1VJLmNvbGxhcHNlZFJvd3NTdGFzaC5zaGlmdFN0YXNoKGhbMF0sdiwtMSpoLmxlbmd0aCk6dGhpcy5jb2xsYXBzaW5nVUkuY29sbGFwc2VkUm93c1N0YXNoLnNoaWZ0U3Rhc2godixoWzBdLGgubGVuZ3RoKSl9fSx7a2V5OiJtb3ZlUm93cyIsdmFsdWU6ZnVuY3Rpb24o''@;'; + put 'put ''aCx2LHkpe3ZhciBDPXRoaXMsST12PT09dGhpcy5kYXRhTWFuYWdlci5nZXRSb3dJbmRleCh5KSt0aGlzLmRhdGFNYW5hZ2VyLmNvdW50Q2hpbGRyZW4oeSkrMTt0aGlzLmhvdC5iYXRjaFJlbmRlcihmdW5jdGlvbigpe2guZm9yRWFjaChmdW5jdGlvbihqKXtDLmRhdGFNYW5hZ2VyLm1vdmVS''@;'; + put 'put ''b3coaix2LEMubW92ZWRUb0NvbGxhcHNlZCxJKX0pfSl9fSx7a2V5OiJtb3ZlQ2VsbHNNZXRhIix2YWx1ZTpmdW5jdGlvbihoLHYpe3ZhciBDLHk9dGhpcyxJPVtdLGo9TWF0aC5tYXguYXBwbHkoTWF0aCxLRGUoaCkpPHY7aC5mb3JFYWNoKGZ1bmN0aW9uKHVlKXtJLnB1c2goeS5ob3QuZ2V0''@;'; + put 'put ''Q2VsbE1ldGFBdFJvdyh1ZSkpfSksdGhpcy5ob3Quc3BsaWNlQ2VsbHNNZXRhKGhbMF0saC5sZW5ndGgpLChDPXRoaXMuaG90KS5zcGxpY2VDZWxsc01ldGEuYXBwbHkoQyxbdi0oaj9JLmxlbmd0aDowKSwwXS5jb25jYXQoSSkpfX0se2tleToic2VsZWN0Q2VsbHMiLHZhbHVlOmZ1bmN0aW9u''@;'; + put 'put ''KGgsdil7dmFyIHVlLHk9aC5sZW5ndGgsQz0wLEk9MCxqPW51bGw7aWYodGhpcy5tb3ZlZFRvQ29sbGFwc2VkKXt2YXIgX2U7X2U9dGhpcy5kYXRhTWFuYWdlci50cmFuc2xhdGVUcmltbWVkUm93KGhbeS0xXTx2P3YteTp2KTt2YXIgQmU9dGhpcy5kYXRhTWFuYWdlci5nZXRSb3dQYXJlbnQo''@;'; + put 'put ''bnVsbD09PV9lP3RoaXMuaG90LmNvdW50U291cmNlUm93cygpLTE6X2UtMSksTmU9dGhpcy5kYXRhTWFuYWdlci5nZXRSb3dJbmRleChCZSk7ST1DPXRoaXMuZGF0YU1hbmFnZXIudW50cmFuc2xhdGVUcmltbWVkUm93KE5lKX1lbHNlIGhbeS0xXTx2P0M9KEk9di0xKS15KzE6ST0oQz12KSt5''@;'; + put 'put ''LTE7aj10aGlzLmhvdC5zZWxlY3Rpb24sdWU9dGhpcy5ob3QuY291bnRDb2xzKCktMSxqLnNldFJhbmdlU3RhcnQodGhpcy5ob3QuX2NyZWF0ZUNlbGxDb29yZHMoQywwKSksai5zZXRSYW5nZUVuZCh0aGlzLmhvdC5fY3JlYXRlQ2VsbENvb3JkcyhJLHVlKSwhMCl9fSx7a2V5OiJpc1Jvd09y''@;'; + put 'put ''ZGVyQ2hhbmdlZCIsdmFsdWU6ZnVuY3Rpb24oaCx2KXtyZXR1cm4gaC5zb21lKGZ1bmN0aW9uKHksQyl7cmV0dXJuIHktQyE9PXZ9KX19XSksZH0oKTtmdW5jdGlvbiBlbWUoZCl7cmV0dXJuKGVtZT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5p''@;'; + put 'put ''dGVyYXRvcj9mdW5jdGlvbihnKXtyZXR1cm4gdHlwZW9mIGd9OmZ1bmN0aW9uKGcpe3JldHVybiBnJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZnLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZnIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgZ30pKGQpfWZ1bmN0aW9uIHFE''@;'; + put 'put ''ZShkKXtyZXR1cm4gZnVuY3Rpb24gWTZ0KGQpe2lmKEFycmF5LmlzQXJyYXkoZCkpcmV0dXJuIHRtZShkKX0oZCl8fGZ1bmN0aW9uIFc2dChkKXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmbnVsbCE9ZFtTeW1ib2wuaXRlcmF0b3JdfHxudWxsIT1kWyJAQGl0ZXJhdG9yIl0pcmV0''@;'; + put 'put ''dXJuIEFycmF5LmZyb20oZCl9KGQpfHxmdW5jdGlvbiBHNnQoZCxnKXtpZihkKXtpZigic3RyaW5nIj09dHlwZW9mIGQpcmV0dXJuIHRtZShkLGcpO3ZhciBoPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChkKS5zbGljZSg4LC0xKTtpZigiT2JqZWN0Ij09PWgmJmQuY29uc3RydWN0''@;'; + put 'put ''b3ImJihoPWQuY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1ofHwiU2V0Ij09PWgpcmV0dXJuIEFycmF5LmZyb20oZCk7aWYoIkFyZ3VtZW50cyI9PT1ofHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChoKSlyZXR1cm4gdG1lKGQsZyl9fShkKXx8ZnVu''@;'; + put 'put ''Y3Rpb24gejZ0KCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIHNwcmVhZCBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2Qu''@;'; + put 'put ''Iil9KCl9ZnVuY3Rpb24gdG1lKGQsZyl7KG51bGw9PWd8fGc+ZC5sZW5ndGgpJiYoZz1kLmxlbmd0aCk7Zm9yKHZhciBoPTAsdj1uZXcgQXJyYXkoZyk7aDxnO2grKyl2W2hdPWRbaF07cmV0dXJuIHZ9ZnVuY3Rpb24gZUxlKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2''@;'; + put 'put ''PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19ZnVuY3Rpb24geU0oKXtyZXR1cm4geU09InVuZGVmaW5lZCIhPXR5cGVvZiBSZWZs''@;'; + put 'put ''ZWN0JiZSZWZsZWN0LmdldD9SZWZsZWN0LmdldC5iaW5kKCk6ZnVuY3Rpb24oZyxoLHYpe3ZhciB5PUo2dChnLGgpO2lmKHkpe3ZhciBDPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoeSxoKTtyZXR1cm4gQy5nZXQ/Qy5nZXQuY2FsbChhcmd1bWVudHMubGVuZ3RoPDM/Zzp2KTpD''@;'; + put 'put ''LnZhbHVlfX0seU0uYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIEo2dChkLGcpe2Zvcig7IU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChkLGcpJiZudWxsIT09KGQ9ZTkoZCkpOyk7cmV0dXJuIGR9ZnVuY3Rpb24gbm1lKGQsZyl7cmV0dXJuKG5tZT1PYmplY3Qu''@;'; + put 'put ''c2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbih2LHkpe3JldHVybiB2Ll9fcHJvdG9fXz15LHZ9KShkLGcpfWZ1bmN0aW9uICQ2dChkLGcpe2lmKGcmJigib2JqZWN0Ij09PWVtZShnKXx8ImZ1bmN0aW9uIj09dHlwZW9mIGcpKXJldHVybiBnO2lm''@;'; + put 'put ''KHZvaWQgMCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWQiKTtyZXR1cm4gdExlKGQpfWZ1bmN0aW9uIHRMZShkKXtpZih2b2lkIDA9PT1kKXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcigidGhp''@;'; + put 'put ''cyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkIik7cmV0dXJuIGR9ZnVuY3Rpb24gZTkoZCl7cmV0dXJuKGU5PU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3QuZ2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKGgpe3JldHVybiBoLl9f''@;'; + put 'put ''cHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKGgpfSkoZCl9dmFyIHJtZT0ibmVzdGVkUm93cyIsdDk9bmV3IFdlYWtNYXAsbjh0PWZ1bmN0aW9uKGQpeyFmdW5jdGlvbiBYNnQoZCxnKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZyYmbnVsbCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigi''@;'; + put 'put ''U3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTtkLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGcmJmcucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6ZCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3Bl''@;'; + put 'put ''cnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZyYmbm1lKGQsZyl9KGgsZCk7dmFyIGc9ZnVuY3Rpb24gSzZ0KGQpe3ZhciBnPWZ1bmN0aW9uIHE2dCgpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0fHxSZWZsZWN0LmNvbnN0cnVjdC5z''@;'; + put 'put ''aGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBQcm94eSlyZXR1cm4hMDt0cnl7cmV0dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLGZ1bmN0aW9uKCl7fSkpLCEwfWNhdGNoKGQpe3JldHVybiExfX0oKTtyZXR1''@;'; + put 'put ''cm4gZnVuY3Rpb24oKXt2YXIgeSx2PWU5KGQpO2lmKGcpe3ZhciBDPWU5KHRoaXMpLmNvbnN0cnVjdG9yO3k9UmVmbGVjdC5jb25zdHJ1Y3Qodixhcmd1bWVudHMsQyl9ZWxzZSB5PXYuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiAkNnQodGhpcyx5KX19KGgpO2Z1bmN0aW9uIGgodil7''@;'; + put 'put ''dmFyIHk7cmV0dXJuIGZ1bmN0aW9uIFU2dChkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSh0aGlzLGgpLCh5PWcuY2FsbCh0aGlzLHYpKS5kYXRhTWFuYWdlcj1udWxsLHkuaGVhZGVyc1VJ''@;'; + put 'put ''PW51bGwseS5jb2xsYXBzZWRSb3dzTWFwPW51bGwsdDkuc2V0KHRMZSh5KSx7bW92ZWRUb0NvbGxhcHNlZDohMSxza2lwUmVuZGVyOm51bGwsc2tpcENvcmVBUElNb2RpZmllcnM6ITF9KSx5fXJldHVybiBmdW5jdGlvbiBRNnQoZCxnLGgpe2cmJmVMZShkLnByb3RvdHlwZSxnKSxoJiZlTGUo''@;'; + put 'put ''ZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oaCxbe2tleToiaXNFbmFibGVkIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiEhdGhpcy5ob3QuZ2V0U2V0dGluZ3MoKVtybWVdfX0se2tleToiZW5hYmxlUGx1Z2luIix2YWx1ZTpmdW5jdGlv''@;'; + put 'put ''bigpe3ZhciB5PXRoaXM7dGhpcy5lbmFibGVkfHwodGhpcy5jb2xsYXBzZWRSb3dzTWFwPXRoaXMuaG90LnJvd0luZGV4TWFwcGVyLnJlZ2lzdGVyTWFwKCJuZXN0ZWRSb3dzIixuZXcgbnopLHRoaXMuZGF0YU1hbmFnZXI9bmV3IG42dCh0aGlzLHRoaXMuaG90KSx0aGlzLmNvbGxhcHNpbmdV''@;'; + put 'put ''ST1uZXcgTTZ0KHRoaXMsdGhpcy5ob3QpLHRoaXMuaGVhZGVyc1VJPW5ldyBHRGUodGhpcyx0aGlzLmhvdCksdGhpcy5jb250ZXh0TWVudVVJPW5ldyBSNnQodGhpcyx0aGlzLmhvdCksdGhpcy5yb3dNb3ZlQ29udHJvbGxlcj1uZXcgWjZ0KHRoaXMpLHRoaXMuYWRkSG9vaygiYWZ0ZXJJbml0''@;'; + put 'put ''IixmdW5jdGlvbigpe3JldHVybiB5Lm9uQWZ0ZXJJbml0LmFwcGx5KHksYXJndW1lbnRzKX0pLHRoaXMuYWRkSG9vaygiYmVmb3JlVmlld1JlbmRlciIsZnVuY3Rpb24oKXtyZXR1cm4geS5vbkJlZm9yZVZpZXdSZW5kZXIuYXBwbHkoeSxhcmd1bWVudHMpfSksdGhpcy5hZGRIb29rKCJtb2Rp''@;'; + put 'put ''ZnlSb3dEYXRhIixmdW5jdGlvbigpe3JldHVybiB5Lm9uTW9kaWZ5Um93RGF0YS5hcHBseSh5LGFyZ3VtZW50cyl9KSx0aGlzLmFkZEhvb2soIm1vZGlmeVNvdXJjZUxlbmd0aCIsZnVuY3Rpb24oKXtyZXR1cm4geS5vbk1vZGlmeVNvdXJjZUxlbmd0aC5hcHBseSh5LGFyZ3VtZW50cyl9KSx0''@;'; + put 'put ''aGlzLmFkZEhvb2soImJlZm9yZURhdGFTcGxpY2UiLGZ1bmN0aW9uKCl7cmV0dXJuIHkub25CZWZvcmVEYXRhU3BsaWNlLmFwcGx5KHksYXJndW1lbnRzKX0pLHRoaXMuYWRkSG9vaygiZmlsdGVyRGF0YSIsZnVuY3Rpb24oKXtyZXR1cm4geS5vbkZpbHRlckRhdGEuYXBwbHkoeSxhcmd1bWVu''@;'; + put 'put ''dHMpfSksdGhpcy5hZGRIb29rKCJhZnRlckNvbnRleHRNZW51RGVmYXVsdE9wdGlvbnMiLGZ1bmN0aW9uKCl7cmV0dXJuIHkub25BZnRlckNvbnRleHRNZW51RGVmYXVsdE9wdGlvbnMuYXBwbHkoeSxhcmd1bWVudHMpfSksdGhpcy5hZGRIb29rKCJhZnRlckdldFJvd0hlYWRlciIsZnVuY3Rp''@;'; + put 'put ''b24oKXtyZXR1cm4geS5vbkFmdGVyR2V0Um93SGVhZGVyLmFwcGx5KHksYXJndW1lbnRzKX0pLHRoaXMuYWRkSG9vaygiYmVmb3JlT25DZWxsTW91c2VEb3duIixmdW5jdGlvbigpe3JldHVybiB5Lm9uQmVmb3JlT25DZWxsTW91c2VEb3duLmFwcGx5KHksYXJndW1lbnRzKX0pLHRoaXMuYWRk''@;'; + put 'put ''SG9vaygiYmVmb3JlUmVtb3ZlUm93IixmdW5jdGlvbigpe3JldHVybiB5Lm9uQmVmb3JlUmVtb3ZlUm93LmFwcGx5KHksYXJndW1lbnRzKX0pLHRoaXMuYWRkSG9vaygiYWZ0ZXJSZW1vdmVSb3ciLGZ1bmN0aW9uKCl7cmV0dXJuIHkub25BZnRlclJlbW92ZVJvdy5hcHBseSh5LGFyZ3VtZW50''@;'; + put 'put ''cyl9KSx0aGlzLmFkZEhvb2soImJlZm9yZUFkZENoaWxkIixmdW5jdGlvbigpe3JldHVybiB5Lm9uQmVmb3JlQWRkQ2hpbGQuYXBwbHkoeSxhcmd1bWVudHMpfSksdGhpcy5hZGRIb29rKCJhZnRlckFkZENoaWxkIixmdW5jdGlvbigpe3JldHVybiB5Lm9uQWZ0ZXJBZGRDaGlsZC5hcHBseSh5''@;'; + put 'put ''LGFyZ3VtZW50cyl9KSx0aGlzLmFkZEhvb2soImJlZm9yZURldGFjaENoaWxkIixmdW5jdGlvbigpe3JldHVybiB5Lm9uQmVmb3JlRGV0YWNoQ2hpbGQuYXBwbHkoeSxhcmd1bWVudHMpfSksdGhpcy5hZGRIb29rKCJhZnRlckRldGFjaENoaWxkIixmdW5jdGlvbigpe3JldHVybiB5Lm9uQWZ0''@;'; + put 'put ''ZXJEZXRhY2hDaGlsZC5hcHBseSh5LGFyZ3VtZW50cyl9KSx0aGlzLmFkZEhvb2soIm1vZGlmeVJvd0hlYWRlcldpZHRoIixmdW5jdGlvbigpe3JldHVybiB5Lm9uTW9kaWZ5Um93SGVhZGVyV2lkdGguYXBwbHkoeSxhcmd1bWVudHMpfSksdGhpcy5hZGRIb29rKCJhZnRlckNyZWF0ZVJvdyIs''@;'; + put 'put ''ZnVuY3Rpb24oKXtyZXR1cm4geS5vbkFmdGVyQ3JlYXRlUm93LmFwcGx5KHksYXJndW1lbnRzKX0pLHRoaXMuYWRkSG9vaygiYmVmb3JlUm93TW92ZSIsZnVuY3Rpb24oKXtyZXR1cm4geS5vbkJlZm9yZVJvd01vdmUuYXBwbHkoeSxhcmd1bWVudHMpfSksdGhpcy5hZGRIb29rKCJiZWZvcmVM''@;'; + put 'put ''b2FkRGF0YSIsZnVuY3Rpb24oQyl7cmV0dXJuIHkub25CZWZvcmVMb2FkRGF0YShDKX0pLHlNKGU5KGgucHJvdG90eXBlKSwiZW5hYmxlUGx1Z2luIix0aGlzKS5jYWxsKHRoaXMpKX19LHtrZXk6ImRpc2FibGVQbHVnaW4iLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5ob3Qucm93SW5kZXhNYXBw''@;'; + put 'put ''ZXIudW5yZWdpc3Rlck1hcCgibmVzdGVkUm93cyIpLHlNKGU5KGgucHJvdG90eXBlKSwiZGlzYWJsZVBsdWdpbiIsdGhpcykuY2FsbCh0aGlzKX19LHtrZXk6InVwZGF0ZVBsdWdpbiIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmRpc2FibGVQbHVnaW4oKTt2YXIgeT10aGlzLmRhdGFNYW5hZ2Vy''@;'; + put 'put ''LmdldERhdGEoKTt0aGlzLmVuYWJsZVBsdWdpbigpLHRoaXMuZGF0YU1hbmFnZXIudXBkYXRlV2l0aERhdGEoeSkseU0oZTkoaC5wcm90b3R5cGUpLCJ1cGRhdGVQbHVnaW4iLHRoaXMpLmNhbGwodGhpcyl9fSx7a2V5OiJvbkJlZm9yZVJvd01vdmUiLHZhbHVlOmZ1bmN0aW9uKHksQyxJLGop''@;'; + put 'put ''e3JldHVybiB0aGlzLnJvd01vdmVDb250cm9sbGVyLm9uQmVmb3JlUm93TW92ZSh5LEMsSSxqKX19LHtrZXk6ImRpc2FibGVDb3JlQVBJTW9kaWZpZXJzIix2YWx1ZTpmdW5jdGlvbigpe3Q5LmdldCh0aGlzKS5za2lwQ29yZUFQSU1vZGlmaWVycz0hMH19LHtrZXk6ImVuYWJsZUNvcmVBUElN''@;'; + put 'put ''b2RpZmllcnMiLHZhbHVlOmZ1bmN0aW9uKCl7dDkuZ2V0KHRoaXMpLnNraXBDb3JlQVBJTW9kaWZpZXJzPSExfX0se2tleToib25CZWZvcmVPbkNlbGxNb3VzZURvd24iLHZhbHVlOmZ1bmN0aW9uKHksQyxJKXt0aGlzLmNvbGxhcHNpbmdVSS50b2dnbGVTdGF0ZSh5LEMsSSl9fSx7a2V5OiJv''@;'; + put 'put ''bk1vZGlmeVJvd0RhdGEiLHZhbHVlOmZ1bmN0aW9uKHkpe2lmKCF0OS5nZXQodGhpcykuc2tpcENvcmVBUElNb2RpZmllcnMpcmV0dXJuIHRoaXMuZGF0YU1hbmFnZXIuZ2V0RGF0YU9iamVjdCh5KX19LHtrZXk6Im9uTW9kaWZ5U291cmNlTGVuZ3RoIix2YWx1ZTpmdW5jdGlvbigpe2lmKCF0''@;'; + put 'put ''OS5nZXQodGhpcykuc2tpcENvcmVBUElNb2RpZmllcnMpcmV0dXJuIHRoaXMuZGF0YU1hbmFnZXIuY291bnRBbGxSb3dzKCl9fSx7a2V5OiJvbkJlZm9yZURhdGFTcGxpY2UiLHZhbHVlOmZ1bmN0aW9uKHksQyxJKXtyZXR1cm4hKCF0OS5nZXQodGhpcykuc2tpcENvcmVBUElNb2RpZmllcnMm''@;'; + put 'put ''JiF0aGlzLmRhdGFNYW5hZ2VyLmlzUm93SGlnaGVzdExldmVsKHkpJiYodGhpcy5kYXRhTWFuYWdlci5zcGxpY2VEYXRhKHksQyxJKSwxKSl9fSx7a2V5OiJvbkZpbHRlckRhdGEiLHZhbHVlOmZ1bmN0aW9uKHksQyxJKXt2YXIgaj10OS5nZXQodGhpcyk7cmV0dXJuIHRoaXMuY29sbGFwc2lu''@;'; + put 'put ''Z1VJLmNvbGxhcHNlZFJvd3NTdGFzaC5zdGFzaCgpLHRoaXMuY29sbGFwc2luZ1VJLmNvbGxhcHNlZFJvd3NTdGFzaC50cmltU3Rhc2goSVswXSxDKSx0aGlzLmNvbGxhcHNpbmdVSS5jb2xsYXBzZWRSb3dzU3Rhc2guc2hpZnRTdGFzaChJWzBdLG51bGwsLTEqQyksdGhpcy5kYXRhTWFuYWdl''@;'; + put 'put ''ci5maWx0ZXJEYXRhKHksQyxJKSxqLnNraXBSZW5kZXI9ITAsdGhpcy5kYXRhTWFuYWdlci5nZXREYXRhKCkuc2xpY2UoKX19LHtrZXk6Im9uQWZ0ZXJDb250ZXh0TWVudURlZmF1bHRPcHRpb25zIix2YWx1ZTpmdW5jdGlvbih5KXtyZXR1cm4gdGhpcy5jb250ZXh0TWVudVVJLmFwcGVuZE9w''@;'; + put 'put ''dGlvbnMoeSl9fSx7a2V5OiJvbkFmdGVyR2V0Um93SGVhZGVyIix2YWx1ZTpmdW5jdGlvbih5LEMpe3RoaXMuaGVhZGVyc1VJLmFwcGVuZExldmVsSW5kaWNhdG9ycyh5LEMpfX0se2tleToib25Nb2RpZnlSb3dIZWFkZXJXaWR0aCIsdmFsdWU6ZnVuY3Rpb24oeSl7cmV0dXJuIHRoaXMuaGVh''@;'; + put 'put ''ZGVyc1VJLnJvd0hlYWRlcldpZHRoQ2FjaGV8fHl9fSx7a2V5OiJvbkFmdGVyUmVtb3ZlUm93Iix2YWx1ZTpmdW5jdGlvbih5LEMsSSxqKXt2YXIgdWU9dGhpcztpZihqIT09dGhpcy5wbHVnaW5OYW1lKXt2YXIgX2U9dDkuZ2V0KHRoaXMpO3NldFRpbWVvdXQoZnVuY3Rpb24oKXtfZS5za2lw''@;'; + put 'put ''UmVuZGVyPW51bGwsdWUuaGVhZGVyc1VJLnVwZGF0ZVJvd0hlYWRlcldpZHRoKCksdWUuY29sbGFwc2luZ1VJLmNvbGxhcHNlZFJvd3NTdGFzaC5hcHBseVN0YXNoKCl9LDApfX19LHtrZXk6Im9uQmVmb3JlUmVtb3ZlUm93Iix2YWx1ZTpmdW5jdGlvbih5LEMsSSl7dmFyIGo9dGhpcyx1ZT1B''@;'; + put 'put ''cnJheS5mcm9tKEkucmVkdWNlKGZ1bmN0aW9uKF9lLEJlKXtpZihqLmRhdGFNYW5hZ2VyLmlzUGFyZW50KEJlKSl7dmFyIE5lPWouZGF0YU1hbmFnZXIuZ2V0RGF0YU9iamVjdChCZSkuX19jaGlsZHJlbjtyZXR1cm4gX2UuYWRkKEJlKSxBcnJheS5pc0FycmF5KE5lKSYmTmUuZm9yRWFjaChm''@;'; + put 'put ''dW5jdGlvbihLZSl7cmV0dXJuIF9lLmFkZChqLmRhdGFNYW5hZ2VyLmdldFJvd0luZGV4KEtlKSl9KSxfZX1yZXR1cm4gX2UuYWRkKEJlKX0sbmV3IFNldCkpO0kubGVuZ3RoPTAsSS5wdXNoLmFwcGx5KEkscURlKHVlKSl9fSx7a2V5OiJvbkJlZm9yZUFkZENoaWxkIix2YWx1ZTpmdW5jdGlv''@;'; + put 'put ''bigpe3RoaXMuY29sbGFwc2luZ1VJLmNvbGxhcHNlZFJvd3NTdGFzaC5zdGFzaCgpfX0se2tleToib25BZnRlckFkZENoaWxkIix2YWx1ZTpmdW5jdGlvbih5LEMpe3RoaXMuY29sbGFwc2luZ1VJLmNvbGxhcHNlZFJvd3NTdGFzaC5zaGlmdFN0YXNoKHRoaXMuZGF0YU1hbmFnZXIuZ2V0Um93''@;'; + put 'put ''SW5kZXgoQykpLHRoaXMuY29sbGFwc2luZ1VJLmNvbGxhcHNlZFJvd3NTdGFzaC5hcHBseVN0YXNoKCksdGhpcy5oZWFkZXJzVUkudXBkYXRlUm93SGVhZGVyV2lkdGgoKX19LHtrZXk6Im9uQmVmb3JlRGV0YWNoQ2hpbGQiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5jb2xsYXBzaW5nVUkuY29s''@;'; + put 'put ''bGFwc2VkUm93c1N0YXNoLnN0YXNoKCl9fSx7a2V5OiJvbkFmdGVyRGV0YWNoQ2hpbGQiLHZhbHVlOmZ1bmN0aW9uKHksQyxJKXt0aGlzLmNvbGxhcHNpbmdVSS5jb2xsYXBzZWRSb3dzU3Rhc2guc2hpZnRTdGFzaChJLG51bGwsLTEpLHRoaXMuY29sbGFwc2luZ1VJLmNvbGxhcHNlZFJvd3NT''@;'; + put 'put ''dGFzaC5hcHBseVN0YXNoKCksdGhpcy5oZWFkZXJzVUkudXBkYXRlUm93SGVhZGVyV2lkdGgoKX19LHtrZXk6Im9uQWZ0ZXJDcmVhdGVSb3ciLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5kYXRhTWFuYWdlci5yZXdyaXRlQ2FjaGUoKX19LHtrZXk6Im9uQWZ0ZXJJbml0Iix2YWx1ZTpmdW5jdGlv''@;'; + put 'put ''bigpe3ZhciB5PU1hdGgubWF4LmFwcGx5KE1hdGgscURlKHRoaXMuZGF0YU1hbmFnZXIuY2FjaGUubGV2ZWxzKSk7eT4wJiZ0aGlzLmhlYWRlcnNVSS51cGRhdGVSb3dIZWFkZXJXaWR0aCh5KX19LHtrZXk6Im9uQmVmb3JlVmlld1JlbmRlciIsdmFsdWU6ZnVuY3Rpb24oeSxDKXt0OS5nZXQo''@;'; + put 'put ''dGhpcykuc2tpcFJlbmRlciYmKEMuc2tpcFJlbmRlcj0hMCl9fSx7a2V5OiJkZXN0cm95Iix2YWx1ZTpmdW5jdGlvbigpe3lNKGU5KGgucHJvdG90eXBlKSwiZGVzdHJveSIsdGhpcykuY2FsbCh0aGlzKX19LHtrZXk6Im9uQmVmb3JlTG9hZERhdGEiLHZhbHVlOmZ1bmN0aW9uKHkpe2lmKCEk''@;'; + put 'put ''Q2UoeSkpcmV0dXJuIF8zZSgiVGhlIE5lc3RlZCBSb3dzIHBsdWdpbiByZXF1aXJlcyBhbiBBcnJheSBvZiBPYmplY3RzIGFzIGEgZGF0YXNldCB0byBiZSBwcm92aWRlZC4gVGhlIHBsdWdpbiBoYXMgYmVlbiBkaXNhYmxlZC4iKSx0aGlzLmhvdC5nZXRTZXR0aW5ncygpW3JtZV09ITEsdm9p''@;'; + put 'put ''ZCB0aGlzLmRpc2FibGVQbHVnaW4oKTt0aGlzLmRhdGFNYW5hZ2VyLnNldERhdGEoeSksdGhpcy5kYXRhTWFuYWdlci5yZXdyaXRlQ2FjaGUoKX19XSxbe2tleToiUExVR0lOX0tFWSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHJtZX19LHtrZXk6IlBMVUdJTl9QUklPUklUWSIsZ2V0OmZ1bmN0''@;'; + put 'put ''aW9uKCl7cmV0dXJuIDMwMH19XSksaH0oWXMpO2Z1bmN0aW9uIHI4dChkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfWZ1bmN0aW9uIG5MZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7''@;'; + put 'put ''aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fXZhciBvOHQ9ZnVuY3Rpb24oKXtmdW5jdGlvbiBkKGcpe3ZhciBo''@;'; + put 'put ''PWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp3aW5kb3c7cjh0KHRoaXMsZCksdGhpcy5yb290V2luZG93PWgsdGhpcy5wcmVmaXg9Zyx0aGlzLnNhdmVkS2V5cz1bXSx0aGlzLmxvYWRTYXZlZEtleXMoKX1yZXR1cm4gZnVuY3Rpb24gaTh0''@;'; + put 'put ''KGQsZyxoKXtnJiZuTGUoZC5wcm90b3R5cGUsZyksaCYmbkxlKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGQsW3trZXk6InNhdmVWYWx1ZSIsdmFsdWU6ZnVuY3Rpb24oaCx2KXt0aGlzLnJvb3RXaW5kb3cubG9jYWxTdG9yYWdlLnNl''@;'; + put 'put ''dEl0ZW0oIiIuY29uY2F0KHRoaXMucHJlZml4LCJfIikuY29uY2F0KGgpLEpTT04uc3RyaW5naWZ5KHYpKSwtMT09PXRoaXMuc2F2ZWRLZXlzLmluZGV4T2YoaCkmJih0aGlzLnNhdmVkS2V5cy5wdXNoKGgpLHRoaXMuc2F2ZVNhdmVkS2V5cygpKX19LHtrZXk6ImxvYWRWYWx1ZSIsdmFsdWU6''@;'; + put 'put ''ZnVuY3Rpb24oaCx2KXt2YXIgeT12b2lkIDA9PT1oP3Y6aCxDPXRoaXMucm9vdFdpbmRvdy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbSgiIi5jb25jYXQodGhpcy5wcmVmaXgsIl8iKS5jb25jYXQoeSkpO3JldHVybiBudWxsPT09Qz92b2lkIDA6SlNPTi5wYXJzZShDKX19LHtrZXk6InJlc2V0Iix2''@;'; + put 'put ''YWx1ZTpmdW5jdGlvbihoKXt0aGlzLnJvb3RXaW5kb3cubG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oIiIuY29uY2F0KHRoaXMucHJlZml4LCJfIikuY29uY2F0KGgpKX19LHtrZXk6InJlc2V0QWxsIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBoPXRoaXM7VXIodGhpcy5zYXZlZEtleXMsZnVuY3Rp''@;'; + put 'put ''b24odix5KXtoLnJvb3RXaW5kb3cubG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oIiIuY29uY2F0KGgucHJlZml4LCJfIikuY29uY2F0KGguc2F2ZWRLZXlzW3ldKSl9KSx0aGlzLmNsZWFyU2F2ZWRLZXlzKCl9fSx7a2V5OiJsb2FkU2F2ZWRLZXlzIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBoPXRo''@;'; + put 'put ''aXMucm9vdFdpbmRvdy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbSgiIi5jb25jYXQodGhpcy5wcmVmaXgsIl9fcGVyc2lzdGVudFN0YXRlS2V5cyIpKSx2PSJzdHJpbmciPT10eXBlb2YgaD9KU09OLnBhcnNlKGgpOnZvaWQgMDt0aGlzLnNhdmVkS2V5cz12fHxbXX19LHtrZXk6InNhdmVTYXZlZEtl''@;'; + put 'put ''eXMiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5yb290V2luZG93LmxvY2FsU3RvcmFnZS5zZXRJdGVtKCIiLmNvbmNhdCh0aGlzLnByZWZpeCwiX19wZXJzaXN0ZW50U3RhdGVLZXlzIiksSlNPTi5zdHJpbmdpZnkodGhpcy5zYXZlZEtleXMpKX19LHtrZXk6ImNsZWFyU2F2ZWRLZXlzIix2YWx1''@;'; + put 'put ''ZTpmdW5jdGlvbigpe3RoaXMuc2F2ZWRLZXlzLmxlbmd0aD0wLHRoaXMuc2F2ZVNhdmVkS2V5cygpfX1dKSxkfSgpO2NvbnN0IGE4dD1vOHQ7ZnVuY3Rpb24gaW1lKGQpe3JldHVybihpbWU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0''@;'; + put 'put ''b3I/ZnVuY3Rpb24oZyl7cmV0dXJuIHR5cGVvZiBnfTpmdW5jdGlvbihnKXtyZXR1cm4gZyYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZy5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZyE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGd9KShkKX1mdW5jdGlvbiByTGUoZCxn''@;'; + put 'put ''KXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX1mdW5jdGlvbiB3TSgp''@;'; + put 'put ''e3JldHVybiB3TT0idW5kZWZpbmVkIiE9dHlwZW9mIFJlZmxlY3QmJlJlZmxlY3QuZ2V0P1JlZmxlY3QuZ2V0LmJpbmQoKTpmdW5jdGlvbihnLGgsdil7dmFyIHk9dTh0KGcsaCk7aWYoeSl7dmFyIEM9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih5LGgpO3JldHVybiBDLmdldD9D''@;'; + put 'put ''LmdldC5jYWxsKGFyZ3VtZW50cy5sZW5ndGg8Mz9nOnYpOkMudmFsdWV9fSx3TS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gdTh0KGQsZyl7Zm9yKDshT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGQsZykmJm51bGwhPT0oZD1uOShkKSk7KTtyZXR1cm4gZH1m''@;'; + put 'put ''dW5jdGlvbiBvbWUoZCxnKXtyZXR1cm4ob21lPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHYseSl7cmV0dXJuIHYuX19wcm90b19fPXksdn0pKGQsZyl9ZnVuY3Rpb24gaDh0KGQsZyl7aWYoZyYmKCJvYmplY3QiPT09aW1lKGcp''@;'; + put 'put ''fHwiZnVuY3Rpb24iPT10eXBlb2YgZykpcmV0dXJuIGc7aWYodm9pZCAwIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJEZXJpdmVkIGNvbnN0cnVjdG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0IG9yIHVuZGVmaW5lZCIpO3JldHVybiBmdW5jdGlvbiBkOHQoZCl7aWYodm9pZCAwPT09ZCl0''@;'; + put 'put ''aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3JldHVybiBkfShkKX1mdW5jdGlvbiBuOShkKXtyZXR1cm4objk9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVP''@;'; + put 'put ''Zi5iaW5kKCk6ZnVuY3Rpb24oaCl7cmV0dXJuIGguX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YoaCl9KShkKX16by5nZXRTaW5nbGV0b24oKS5yZWdpc3RlcigicGVyc2lzdGVudFN0YXRlU2F2ZSIpLHpvLmdldFNpbmdsZXRvbigpLnJlZ2lzdGVyKCJwZXJzaXN0ZW50U3RhdGVM''@;'; + put 'put ''b2FkIiksem8uZ2V0U2luZ2xldG9uKCkucmVnaXN0ZXIoInBlcnNpc3RlbnRTdGF0ZVJlc2V0Iik7dmFyIGlMZT0icGVyc2lzdGVudFN0YXRlIixtOHQ9ZnVuY3Rpb24oZCl7IWZ1bmN0aW9uIGM4dChkLGcpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBnJiZudWxsIT09Zyl0aHJvdyBuZXcgVHlw''@;'; + put 'put ''ZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiIpO2QucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZyYmZy5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTpkLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3QuZGVm''@;'; + put 'put ''aW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxnJiZvbWUoZCxnKX0oaCxkKTt2YXIgZz1mdW5jdGlvbiBmOHQoZCl7dmFyIGc9ZnVuY3Rpb24gcDh0KCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBSZWZsZWN0fHwhUmVmbGVjdC5jb25zdHJ1Y3R8fFJlZmxlY3QuY29u''@;'; + put 'put ''c3RydWN0LnNoYW0pcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIFByb3h5KXJldHVybiEwO3RyeXtyZXR1cm4gQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10sZnVuY3Rpb24oKXt9KSksITB9Y2F0Y2goZCl7cmV0dXJuITF9''@;'; + put 'put ''fSgpO3JldHVybiBmdW5jdGlvbigpe3ZhciB5LHY9bjkoZCk7aWYoZyl7dmFyIEM9bjkodGhpcykuY29uc3RydWN0b3I7eT1SZWZsZWN0LmNvbnN0cnVjdCh2LGFyZ3VtZW50cyxDKX1lbHNlIHk9di5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIGg4dCh0aGlzLHkpfX0oaCk7ZnVuY3Rp''@;'; + put 'put ''b24gaCh2KXt2YXIgeTtyZXR1cm4gZnVuY3Rpb24gbDh0KGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsaCksKHk9Zy5jYWxsKHRoaXMsdikpLnN0b3JhZ2U9dm9pZCAwLHl9cmV0''@;'; + put 'put ''dXJuIGZ1bmN0aW9uIHM4dChkLGcsaCl7ZyYmckxlKGQucHJvdG90eXBlLGcpLGgmJnJMZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShoLFt7a2V5OiJpc0VuYWJsZWQiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuISF0aGlzLmhvdC5n''@;'; + put 'put ''ZXRTZXR0aW5ncygpW2lMZV19fSx7a2V5OiJlbmFibGVQbHVnaW4iLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpczt0aGlzLmVuYWJsZWR8fCh0aGlzLnN0b3JhZ2V8fCh0aGlzLnN0b3JhZ2U9bmV3IGE4dCh0aGlzLmhvdC5yb290RWxlbWVudC5pZCx0aGlzLmhvdC5yb290V2luZG93KSks''@;'; + put 'put ''dGhpcy5hZGRIb29rKCJwZXJzaXN0ZW50U3RhdGVTYXZlIixmdW5jdGlvbihDLEkpe3JldHVybiB5LnNhdmVWYWx1ZShDLEkpfSksdGhpcy5hZGRIb29rKCJwZXJzaXN0ZW50U3RhdGVMb2FkIixmdW5jdGlvbihDLEkpe3JldHVybiB5LmxvYWRWYWx1ZShDLEkpfSksdGhpcy5hZGRIb29rKCJw''@;'; + put 'put ''ZXJzaXN0ZW50U3RhdGVSZXNldCIsZnVuY3Rpb24oKXtyZXR1cm4geS5yZXNldFZhbHVlKCl9KSx3TShuOShoLnByb3RvdHlwZSksImVuYWJsZVBsdWdpbiIsdGhpcykuY2FsbCh0aGlzKSl9fSx7a2V5OiJkaXNhYmxlUGx1Z2luIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuc3RvcmFnZT12b2lk''@;'; + put 'put ''IDAsd00objkoaC5wcm90b3R5cGUpLCJkaXNhYmxlUGx1Z2luIix0aGlzKS5jYWxsKHRoaXMpfX0se2tleToidXBkYXRlUGx1Z2luIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuZGlzYWJsZVBsdWdpbigpLHRoaXMuZW5hYmxlUGx1Z2luKCksd00objkoaC5wcm90b3R5cGUpLCJ1cGRhdGVQbHVn''@;'; + put 'put ''aW4iLHRoaXMpLmNhbGwodGhpcyl9fSx7a2V5OiJsb2FkVmFsdWUiLHZhbHVlOmZ1bmN0aW9uKHksQyl7Qy52YWx1ZT10aGlzLnN0b3JhZ2UubG9hZFZhbHVlKHkpfX0se2tleToic2F2ZVZhbHVlIix2YWx1ZTpmdW5jdGlvbih5LEMpe3RoaXMuc3RvcmFnZS5zYXZlVmFsdWUoeSxDKX19LHtr''@;'; + put 'put ''ZXk6InJlc2V0VmFsdWUiLHZhbHVlOmZ1bmN0aW9uKHkpe3ZvaWQgMD09PXk/dGhpcy5zdG9yYWdlLnJlc2V0QWxsKCk6dGhpcy5zdG9yYWdlLnJlc2V0KHkpfX0se2tleToiZGVzdHJveSIsdmFsdWU6ZnVuY3Rpb24oKXt3TShuOShoLnByb3RvdHlwZSksImRlc3Ryb3kiLHRoaXMpLmNhbGwo''@;'; + put 'put ''dGhpcyl9fV0sW3trZXk6IlBMVUdJTl9LRVkiLGdldDpmdW5jdGlvbigpe3JldHVybiBpTGV9fSx7a2V5OiJQTFVHSU5fUFJJT1JJVFkiLGdldDpmdW5jdGlvbigpe3JldHVybiAwfX1dKSxofShZcyk7ZnVuY3Rpb24gYW1lKGQpe3JldHVybihhbWU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJv''@;'; + put 'put ''bCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZyl7cmV0dXJuIHR5cGVvZiBnfTpmdW5jdGlvbihnKXtyZXR1cm4gZyYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZy5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZyE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJv''@;'; + put 'put ''bCI6dHlwZW9mIGd9KShkKX1mdW5jdGlvbiBsbWUoZCxnKXsobnVsbD09Z3x8Zz5kLmxlbmd0aCkmJihnPWQubGVuZ3RoKTtmb3IodmFyIGg9MCx2PW5ldyBBcnJheShnKTtoPGc7aCsrKXZbaF09ZFtoXTtyZXR1cm4gdn1mdW5jdGlvbiBvTGUoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3Ro''@;'; + put 'put ''O2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX1mdW5jdGlvbiBiTSgpe3JldHVybiBiTT0idW5kZWZpbmVkIiE9''@;'; + put 'put ''dHlwZW9mIFJlZmxlY3QmJlJlZmxlY3QuZ2V0P1JlZmxlY3QuZ2V0LmJpbmQoKTpmdW5jdGlvbihnLGgsdil7dmFyIHk9azh0KGcsaCk7aWYoeSl7dmFyIEM9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih5LGgpO3JldHVybiBDLmdldD9DLmdldC5jYWxsKGFyZ3VtZW50cy5sZW5n''@;'; + put 'put ''dGg8Mz9nOnYpOkMudmFsdWV9fSxiTS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gazh0KGQsZyl7Zm9yKDshT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGQsZykmJm51bGwhPT0oZD1yOShkKSk7KTtyZXR1cm4gZH1mdW5jdGlvbiBzbWUoZCxnKXtyZXR1cm4o''@;'; + put 'put ''c21lPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHYseSl7cmV0dXJuIHYuX19wcm90b19fPXksdn0pKGQsZyl9ZnVuY3Rpb24gRTh0KGQsZyl7aWYoZyYmKCJvYmplY3QiPT09YW1lKGcpfHwiZnVuY3Rpb24iPT10eXBlb2YgZykp''@;'; + put 'put ''cmV0dXJuIGc7aWYodm9pZCAwIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJEZXJpdmVkIGNvbnN0cnVjdG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0IG9yIHVuZGVmaW5lZCIpO3JldHVybiBmdW5jdGlvbiB4OHQoZCl7aWYodm9pZCAwPT09ZCl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3Io''@;'; + put 'put ''InRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3JldHVybiBkfShkKX1mdW5jdGlvbiByOShkKXtyZXR1cm4ocjk9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24oaCl7cmV0''@;'; + put 'put ''dXJuIGguX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YoaCl9KShkKX12YXIgdW1lPSJzZWFyY2giLEw4dD1mdW5jdGlvbihnLGgsdix5LEMpe2cuZ2V0Q2VsbE1ldGEoaCx2KS5pc1NlYXJjaFJlc3VsdD1DfSxPOHQ9ZnVuY3Rpb24oZyxoLHYpe3JldHVybiEoYTEoZyl8fG51bGw9''@;'; + put 'put ''PT1nfHwhZy50b0xvY2FsZUxvd2VyQ2FzZXx8MD09PWcubGVuZ3RofHxhMShoKXx8bnVsbD09PWgpJiYtMSE9PWgudG9TdHJpbmcoKS50b0xvY2FsZUxvd2VyQ2FzZSh2LmxvY2FsZSkuaW5kZXhPZihnLnRvTG9jYWxlTG93ZXJDYXNlKHYubG9jYWxlKSl9LFI4dD1mdW5jdGlvbihkKXshZnVu''@;'; + put 'put ''Y3Rpb24gUzh0KGQsZyl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGcmJm51bGwhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uIik7ZC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShnJiZnLnByb3RvdHlwZSx7''@;'; + put 'put ''Y29uc3RydWN0b3I6e3ZhbHVlOmQsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGcmJnNtZShkLGcpfShoLGQpO3ZhciBnPWZ1bmN0aW9uIE04dChkKXt2YXIgZz1mdW5jdGlvbiBUOHQoKXtp''@;'; + put 'put ''ZigidW5kZWZpbmVkIj09dHlwZW9mIFJlZmxlY3R8fCFSZWZsZWN0LmNvbnN0cnVjdHx8UmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT10eXBlb2YgUHJveHkpcmV0dXJuITA7dHJ5e3JldHVybiBCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVm''@;'; + put 'put ''bGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSxmdW5jdGlvbigpe30pKSwhMH1jYXRjaChkKXtyZXR1cm4hMX19KCk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHksdj1yOShkKTtpZihnKXt2YXIgQz1yOSh0aGlzKS5jb25zdHJ1Y3Rvcjt5PVJlZmxlY3QuY29uc3RydWN0KHYsYXJndW1lbnRzLEMp''@;'; + put 'put ''fWVsc2UgeT12LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gRTh0KHRoaXMseSl9fShoKTtmdW5jdGlvbiBoKHYpe3ZhciB5O3JldHVybiBmdW5jdGlvbiBfOHQoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFz''@;'; + put 'put ''IGEgZnVuY3Rpb24iKX0odGhpcyxoKSwoeT1nLmNhbGwodGhpcyx2KSkuY2FsbGJhY2s9TDh0LHkucXVlcnlNZXRob2Q9Tzh0LHkuc2VhcmNoUmVzdWx0Q2xhc3M9Imh0U2VhcmNoUmVzdWx0Iix5fXJldHVybiBmdW5jdGlvbiBDOHQoZCxnLGgpe2cmJm9MZShkLnByb3RvdHlwZSxnKSxoJiZv''@;'; + put 'put ''TGUoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oaCxbe2tleToiaXNFbmFibGVkIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmhvdC5nZXRTZXR0aW5ncygpW3VtZV19fSx7a2V5OiJlbmFibGVQbHVnaW4iLHZhbHVlOmZ1bmN0''@;'; + put 'put ''aW9uKCl7dmFyIHk9dGhpcztpZighdGhpcy5lbmFibGVkKXt2YXIgQz10aGlzLmhvdC5nZXRTZXR0aW5ncygpW3VtZV07dGhpcy51cGRhdGVQbHVnaW5TZXR0aW5ncyhDKSx0aGlzLmFkZEhvb2soImJlZm9yZVJlbmRlcmVyIixmdW5jdGlvbigpe3JldHVybiB5Lm9uQmVmb3JlUmVuZGVyZXIu''@;'; + put 'put ''YXBwbHkoeSxhcmd1bWVudHMpfSksYk0ocjkoaC5wcm90b3R5cGUpLCJlbmFibGVQbHVnaW4iLHRoaXMpLmNhbGwodGhpcyl9fX0se2tleToiZGlzYWJsZVBsdWdpbiIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzLEM9ZnVuY3Rpb24oKXtyZXR1cm4geS5vbkJlZm9yZVJlbmRlcmVyLmFw''@;'; + put 'put ''cGx5KHksYXJndW1lbnRzKX07dGhpcy5ob3QuYWRkSG9vaygiYmVmb3JlUmVuZGVyZXIiLEMpLHRoaXMuaG90LmFkZEhvb2tPbmNlKCJhZnRlclZpZXdSZW5kZXIiLGZ1bmN0aW9uKCl7eS5ob3QucmVtb3ZlSG9vaygiYmVmb3JlUmVuZGVyZXIiLEMpfSksYk0ocjkoaC5wcm90b3R5cGUpLCJk''@;'; + put 'put ''aXNhYmxlUGx1Z2luIix0aGlzKS5jYWxsKHRoaXMpfX0se2tleToidXBkYXRlUGx1Z2luIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuZGlzYWJsZVBsdWdpbigpLHRoaXMuZW5hYmxlUGx1Z2luKCksYk0ocjkoaC5wcm90b3R5cGUpLCJ1cGRhdGVQbHVnaW4iLHRoaXMpLmNhbGwodGhpcyl9fSx7''@;'; + put 'put ''a2V5OiJxdWVyeSIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEM9dGhpcyxJPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp0aGlzLmdldENhbGxiYWNrKCksaj1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1''@;'; + put 'put ''bWVudHNbMl06dGhpcy5nZXRRdWVyeU1ldGhvZCgpLHVlPXRoaXMuaG90LmNvdW50Um93cygpLF9lPXRoaXMuaG90LmNvdW50Q29scygpLEJlPVtdLE5lPXRoaXMuaG90O3JldHVybiBpYSgwLHVlLTEsZnVuY3Rpb24oS2Upe2lhKDAsX2UtMSxmdW5jdGlvbihkdCl7dmFyIE90PUMuaG90Lmdl''@;'; + put 'put ''dERhdGFBdENlbGwoS2UsZHQpLCR0PUMuaG90LmdldENlbGxNZXRhKEtlLGR0KSxmbj0kdC5zZWFyY2guY2FsbGJhY2t8fEksaXI9KCR0LnNlYXJjaC5xdWVyeU1ldGhvZHx8aikoeSxPdCwkdCk7aXImJkJlLnB1c2goe3JvdzpLZSxjb2w6ZHQsZGF0YTpPdH0pLGZuJiZmbihOZSxLZSxkdCxP''@;'; + put 'put ''dCxpcil9KX0pLEJlfX0se2tleToiZ2V0Q2FsbGJhY2siLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2FsbGJhY2t9fSx7a2V5OiJzZXRDYWxsYmFjayIsdmFsdWU6ZnVuY3Rpb24oeSl7dGhpcy5jYWxsYmFjaz15fX0se2tleToiZ2V0UXVlcnlNZXRob2QiLHZhbHVlOmZ1bmN0aW9u''@;'; + put 'put ''KCl7cmV0dXJuIHRoaXMucXVlcnlNZXRob2R9fSx7a2V5OiJzZXRRdWVyeU1ldGhvZCIsdmFsdWU6ZnVuY3Rpb24oeSl7dGhpcy5xdWVyeU1ldGhvZD15fX0se2tleToiZ2V0U2VhcmNoUmVzdWx0Q2xhc3MiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2VhcmNoUmVzdWx0Q2xhc3N9''@;'; + put 'put ''fSx7a2V5OiJzZXRTZWFyY2hSZXN1bHRDbGFzcyIsdmFsdWU6ZnVuY3Rpb24oeSl7dGhpcy5zZWFyY2hSZXN1bHRDbGFzcz15fX0se2tleToidXBkYXRlUGx1Z2luU2V0dGluZ3MiLHZhbHVlOmZ1bmN0aW9uKHkpe3hsKHkpJiYoeS5zZWFyY2hSZXN1bHRDbGFzcyYmdGhpcy5zZXRTZWFyY2hS''@;'; + put 'put ''ZXN1bHRDbGFzcyh5LnNlYXJjaFJlc3VsdENsYXNzKSx5LnF1ZXJ5TWV0aG9kJiZ0aGlzLnNldFF1ZXJ5TWV0aG9kKHkucXVlcnlNZXRob2QpLHkuY2FsbGJhY2smJnRoaXMuc2V0Q2FsbGJhY2soeS5jYWxsYmFjaykpfX0se2tleToib25CZWZvcmVSZW5kZXJlciIsdmFsdWU6ZnVuY3Rpb24o''@;'; + put 'put ''eSxDLEksaix1ZSxfZSl7dmFyIEtlLEJlPV9lLmNsYXNzTmFtZXx8W10sTmU9W107InN0cmluZyI9PXR5cGVvZiBCZT9OZT1CZS5zcGxpdCgiICIpOihLZT1OZSkucHVzaC5hcHBseShLZSxmdW5jdGlvbiB2OHQoZCl7cmV0dXJuIGZ1bmN0aW9uIGI4dChkKXtpZihBcnJheS5pc0FycmF5KGQp''@;'; + put 'put ''KXJldHVybiBsbWUoZCl9KGQpfHxmdW5jdGlvbiB3OHQoZCl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJm51bGwhPWRbU3ltYm9sLml0ZXJhdG9yXXx8bnVsbCE9ZFsiQEBpdGVyYXRvciJdKXJldHVybiBBcnJheS5mcm9tKGQpfShkKXx8ZnVuY3Rpb24geTh0KGQsZyl7aWYoZCl7''@;'; + put 'put ''aWYoInN0cmluZyI9PXR5cGVvZiBkKXJldHVybiBsbWUoZCxnKTt2YXIgaD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZCkuc2xpY2UoOCwtMSk7aWYoIk9iamVjdCI9PT1oJiZkLmNvbnN0cnVjdG9yJiYoaD1kLmNvbnN0cnVjdG9yLm5hbWUpLCJNYXAiPT09aHx8IlNldCI9PT1o''@;'; + put 'put ''KXJldHVybiBBcnJheS5mcm9tKGQpO2lmKCJBcmd1bWVudHMiPT09aHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QoaCkpcmV0dXJuIGxtZShkLGcpfX0oZCl8fGZ1bmN0aW9uIEE4dCgpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1w''@;'; + put 'put ''dCB0byBzcHJlYWQgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfShCZSkpLHRoaXMuaXNFbmFibGVkKCkmJl9lLmlzU2VhcmNoUmVzdWx0''@;'; + put 'put ''P05lLmluY2x1ZGVzKHRoaXMuc2VhcmNoUmVzdWx0Q2xhc3MpfHxOZS5wdXNoKCIiLmNvbmNhdCh0aGlzLnNlYXJjaFJlc3VsdENsYXNzKSk6TmUuaW5jbHVkZXModGhpcy5zZWFyY2hSZXN1bHRDbGFzcykmJk5lLnNwbGljZShOZS5pbmRleE9mKHRoaXMuc2VhcmNoUmVzdWx0Q2xhc3MpLDEp''@;'; + put 'put ''LF9lLmNsYXNzTmFtZT1OZS5qb2luKCIgIil9fSx7a2V5OiJkZXN0cm95Iix2YWx1ZTpmdW5jdGlvbigpe2JNKHI5KGgucHJvdG90eXBlKSwiZGVzdHJveSIsdGhpcykuY2FsbCh0aGlzKX19XSxbe2tleToiUExVR0lOX0tFWSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHVtZX19LHtrZXk6IlBM''@;'; + put 'put ''VUdJTl9QUklPUklUWSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDE5MH19XSksaH0oWXMpO2Z1bmN0aW9uIGNtZShkKXtyZXR1cm4oY21lPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGcpe3JldHVybiB0eXBlb2Yg''@;'; + put 'put ''Z306ZnVuY3Rpb24oZyl7cmV0dXJuIGcmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmcuY29uc3RydWN0b3I9PT1TeW1ib2wmJmchPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBnfSkoZCl9ZnVuY3Rpb24gYUxlKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKysp''@;'; + put 'put ''e3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19ZnVuY3Rpb24gY1IoKXtyZXR1cm4gY1I9InVuZGVmaW5lZCIhPXR5cGVv''@;'; + put 'put ''ZiBSZWZsZWN0JiZSZWZsZWN0LmdldD9SZWZsZWN0LmdldC5iaW5kKCk6ZnVuY3Rpb24oZyxoLHYpe3ZhciB5PUY4dChnLGgpO2lmKHkpe3ZhciBDPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoeSxoKTtyZXR1cm4gQy5nZXQ/Qy5nZXQuY2FsbChhcmd1bWVudHMubGVuZ3RoPDM/''@;'; + put 'put ''Zzp2KTpDLnZhbHVlfX0sY1IuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIEY4dChkLGcpe2Zvcig7IU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChkLGcpJiZudWxsIT09KGQ9WHcoZCkpOyk7cmV0dXJuIGR9ZnVuY3Rpb24gZm1lKGQsZyl7cmV0dXJuKGZtZT1P''@;'; + put 'put ''YmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbih2LHkpe3JldHVybiB2Ll9fcHJvdG9fXz15LHZ9KShkLGcpfWZ1bmN0aW9uIFY4dChkLGcpe2lmKGcmJigib2JqZWN0Ij09PWNtZShnKXx8ImZ1bmN0aW9uIj09dHlwZW9mIGcpKXJldHVy''@;'; + put 'put ''biBnO2lmKHZvaWQgMCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWQiKTtyZXR1cm4gZnVuY3Rpb24gajh0KGQpe2lmKHZvaWQgMD09PWQpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlz''@;'; + put 'put ''IGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4gZH0oZCl9ZnVuY3Rpb24gWHcoZCl7cmV0dXJuKFh3PU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3QuZ2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKGgpe3JldHVybiBo''@;'; + put 'put ''Ll9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKGgpfSkoZCl9dmFyIFc4dD1mdW5jdGlvbihkKXshZnVuY3Rpb24gSDh0KGQsZyl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGcmJm51bGwhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIg''@;'; + put 'put ''YmUgbnVsbCBvciBhIGZ1bmN0aW9uIik7ZC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShnJiZnLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOmQsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZToh''@;'; + put 'put ''MX0pLGcmJmZtZShkLGcpfShoLGQpO3ZhciBnPWZ1bmN0aW9uIE44dChkKXt2YXIgZz1mdW5jdGlvbiBaOHQoKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIFJlZmxlY3R8fCFSZWZsZWN0LmNvbnN0cnVjdHx8UmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT10''@;'; + put 'put ''eXBlb2YgUHJveHkpcmV0dXJuITA7dHJ5e3JldHVybiBCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSxmdW5jdGlvbigpe30pKSwhMH1jYXRjaChkKXtyZXR1cm4hMX19KCk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHksdj1YdyhkKTtp''@;'; + put 'put ''ZihnKXt2YXIgQz1Ydyh0aGlzKS5jb25zdHJ1Y3Rvcjt5PVJlZmxlY3QuY29uc3RydWN0KHYsYXJndW1lbnRzLEMpfWVsc2UgeT12LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gVjh0KHRoaXMseSl9fShoKTtmdW5jdGlvbiBoKHYpe3ZhciB5O3JldHVybiBmdW5jdGlvbiBCOHQoZCxn''@;'; + put 'put ''KXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0odGhpcyxoKSwoeT1nLmNhbGwodGhpcyx2KSkuc2Nyb2xsYmFycz1bXSx5LmNsb25lcz1bXSx5LmxvY2tlZENvbGxlY3Rpb249ITEseS5mcmVlemVP''@;'; + put 'put ''dmVybGF5cz0hMSx5fXJldHVybiBmdW5jdGlvbiBQOHQoZCxnLGgpe2cmJmFMZShkLnByb3RvdHlwZSxnKSxoJiZhTGUoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oaCxbe2tleToiaXNFbmFibGVkIix2YWx1ZTpmdW5jdGlvbigpe3Jl''@;'; + put 'put ''dHVybiBHaGUoKX19LHtrZXk6ImVuYWJsZVBsdWdpbiIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzO3RoaXMuZW5hYmxlZHx8KHRoaXMuYWRkSG9vaygiYWZ0ZXJWaWV3UmVuZGVyIixmdW5jdGlvbigpe3JldHVybiB5Lm9uQWZ0ZXJWaWV3UmVuZGVyKCl9KSx0aGlzLnJlZ2lzdGVyRXZl''@;'; + put 'put ''bnRzKCksY1IoWHcoaC5wcm90b3R5cGUpLCJlbmFibGVQbHVnaW4iLHRoaXMpLmNhbGwodGhpcykpfX0se2tleToidXBkYXRlUGx1Z2luIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMubG9ja2VkQ29sbGVjdGlvbj0hMSxjUihYdyhoLnByb3RvdHlwZSksInVwZGF0ZVBsdWdpbiIsdGhpcykuY2Fs''@;'; + put 'put ''bCh0aGlzKX19LHtrZXk6ImRpc2FibGVQbHVnaW4iLHZhbHVlOmZ1bmN0aW9uKCl7Y1IoWHcoaC5wcm90b3R5cGUpLCJkaXNhYmxlUGx1Z2luIix0aGlzKS5jYWxsKHRoaXMpfX0se2tleToicmVnaXN0ZXJFdmVudHMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpczt0aGlzLmFkZEhvb2so''@;'; + put 'put ''ImJlZm9yZVRvdWNoU2Nyb2xsIixmdW5jdGlvbigpe3JldHVybiB5Lm9uQmVmb3JlVG91Y2hTY3JvbGwoKX0pLHRoaXMuYWRkSG9vaygiYWZ0ZXJNb21lbnR1bVNjcm9sbCIsZnVuY3Rpb24oKXtyZXR1cm4geS5vbkFmdGVyTW9tZW50dW1TY3JvbGwoKX0pfX0se2tleToib25BZnRlclZpZXdS''@;'; + put 'put ''ZW5kZXIiLHZhbHVlOmZ1bmN0aW9uKCl7aWYoIXRoaXMubG9ja2VkQ29sbGVjdGlvbil7dmFyIHk9dGhpcy5ob3Qudmlldy5fd3Qud3RPdmVybGF5cyxDPXkudG9wT3ZlcmxheSxJPXkuYm90dG9tT3ZlcmxheSxqPXkuaW5saW5lU3RhcnRPdmVybGF5LHVlPXkudG9wSW5saW5lU3RhcnRDb3Ju''@;'; + put 'put ''ZXJPdmVybGF5LF9lPXkuYm90dG9tSW5saW5lU3RhcnRDb3JuZXJPdmVybGF5O3RoaXMubG9ja2VkQ29sbGVjdGlvbj0hMCx0aGlzLnNjcm9sbGJhcnMubGVuZ3RoPTAsdGhpcy5zY3JvbGxiYXJzLnB1c2goQyksSS5jbG9uZSYmdGhpcy5zY3JvbGxiYXJzLnB1c2goSSksdGhpcy5zY3JvbGxi''@;'; + put 'put ''YXJzLnB1c2goaiksdWUmJnRoaXMuc2Nyb2xsYmFycy5wdXNoKHVlKSxfZSYmX2UuY2xvbmUmJnRoaXMuc2Nyb2xsYmFycy5wdXNoKF9lKSx0aGlzLmNsb25lcz1bXSxDLm5lZWRGdWxsUmVuZGVyJiZ0aGlzLmNsb25lcy5wdXNoKEMuY2xvbmUud3RUYWJsZS5ob2xkZXIucGFyZW50Tm9kZSks''@;'; + put 'put ''SS5uZWVkRnVsbFJlbmRlciYmdGhpcy5jbG9uZXMucHVzaChJLmNsb25lLnd0VGFibGUuaG9sZGVyLnBhcmVudE5vZGUpLGoubmVlZEZ1bGxSZW5kZXImJnRoaXMuY2xvbmVzLnB1c2goai5jbG9uZS53dFRhYmxlLmhvbGRlci5wYXJlbnROb2RlKSx1ZSYmdGhpcy5jbG9uZXMucHVzaCh1ZS5j''@;'; + put 'put ''bG9uZS53dFRhYmxlLmhvbGRlci5wYXJlbnROb2RlKSxfZSYmX2UuY2xvbmUmJnRoaXMuY2xvbmVzLnB1c2goX2UuY2xvbmUud3RUYWJsZS5ob2xkZXIucGFyZW50Tm9kZSl9fX0se2tleToib25CZWZvcmVUb3VjaFNjcm9sbCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmZyZWV6ZU92ZXJsYXlz''@;'; + put 'put ''PSEwLFVyKHRoaXMuY2xvbmVzLGZ1bmN0aW9uKHkpe08wKHksImhpZGUtdHdlZW4iKX0pfX0se2tleToib25BZnRlck1vbWVudHVtU2Nyb2xsIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXM7dGhpcy5mcmVlemVPdmVybGF5cz0hMSxVcih0aGlzLmNsb25lcyxmdW5jdGlvbihDKXtwbChD''@;'; + put 'put ''LCJoaWRlLXR3ZWVuIiksTzAoQywic2hvdy10d2VlbiIpfSksdGhpcy5ob3QuX3JlZ2lzdGVyVGltZW91dChmdW5jdGlvbigpe1VyKHkuY2xvbmVzLGZ1bmN0aW9uKEMpe3BsKEMsInNob3ctdHdlZW4iKX0pfSw0MDApLFVyKHRoaXMuc2Nyb2xsYmFycyxmdW5jdGlvbihDKXtDLnJlZnJlc2go''@;'; + put 'put ''KSxDLnJlc2V0Rml4ZWRQb3NpdGlvbigpfSksdGhpcy5ob3Qudmlldy5fd3Qud3RPdmVybGF5cy5zeW5jU2Nyb2xsV2l0aE1hc3RlcigpfX1dLFt7a2V5OiJQTFVHSU5fS0VZIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4idG91Y2hTY3JvbGwifX0se2tleToiUExVR0lOX1BSSU9SSVRZIixnZXQ6''@;'; + put 'put ''ZnVuY3Rpb24oKXtyZXR1cm4gMjAwfX0se2tleToiU0VUVElOR19LRVlTIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4hMH19XSksaH0oWXMpO2Z1bmN0aW9uIGhtZShkKXtyZXR1cm4oaG1lPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9y''@;'; + put 'put ''P2Z1bmN0aW9uKGcpe3JldHVybiB0eXBlb2YgZ306ZnVuY3Rpb24oZyl7cmV0dXJuIGcmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmcuY29uc3RydWN0b3I9PT1TeW1ib2wmJmchPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBnfSkoZCl9ZnVuY3Rpb24gbExlKGQsZyl7''@;'; + put 'put ''Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19ZnVuY3Rpb24gX00oKXty''@;'; + put 'put ''ZXR1cm4gX009InVuZGVmaW5lZCIhPXR5cGVvZiBSZWZsZWN0JiZSZWZsZWN0LmdldD9SZWZsZWN0LmdldC5iaW5kKCk6ZnVuY3Rpb24oZyxoLHYpe3ZhciB5PVE4dChnLGgpO2lmKHkpe3ZhciBDPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoeSxoKTtyZXR1cm4gQy5nZXQ/Qy5n''@;'; + put 'put ''ZXQuY2FsbChhcmd1bWVudHMubGVuZ3RoPDM/Zzp2KTpDLnZhbHVlfX0sX00uYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIFE4dChkLGcpe2Zvcig7IU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChkLGcpJiZudWxsIT09KGQ9aTkoZCkpOyk7cmV0dXJuIGR9ZnVu''@;'; + put 'put ''Y3Rpb24gZG1lKGQsZyl7cmV0dXJuKGRtZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbih2LHkpe3JldHVybiB2Ll9fcHJvdG9fXz15LHZ9KShkLGcpfWZ1bmN0aW9uIEs4dChkLGcpe2lmKGcmJigib2JqZWN0Ij09PWhtZShnKXx8''@;'; + put 'put ''ImZ1bmN0aW9uIj09dHlwZW9mIGcpKXJldHVybiBnO2lmKHZvaWQgMCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWQiKTtyZXR1cm4gZnVuY3Rpb24gJDh0KGQpe2lmKHZvaWQgMD09PWQpdGhy''@;'; + put 'put ''b3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4gZH0oZCl9ZnVuY3Rpb24gaTkoZCl7cmV0dXJuKGk5PU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3QuZ2V0UHJvdG90eXBlT2Yu''@;'; + put 'put ''YmluZCgpOmZ1bmN0aW9uKGgpe3JldHVybiBoLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKGgpfSkoZCl9dmFyIFBuZT0idHJpbVJvd3MiLHQ1dD1mdW5jdGlvbihkKXshZnVuY3Rpb24gSjh0KGQsZyl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGcmJm51bGwhPT1nKXRocm93IG5l''@;'; + put 'put ''dyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uIik7ZC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShnJiZnLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOmQsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLE9iamVj''@;'; + put 'put ''dC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGcmJmRtZShkLGcpfShoLGQpO3ZhciBnPWZ1bmN0aW9uIFg4dChkKXt2YXIgZz1mdW5jdGlvbiBxOHQoKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIFJlZmxlY3R8fCFSZWZsZWN0LmNvbnN0cnVjdHx8UmVmbGVj''@;'; + put 'put ''dC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT10eXBlb2YgUHJveHkpcmV0dXJuITA7dHJ5e3JldHVybiBCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSxmdW5jdGlvbigpe30pKSwhMH1jYXRjaChkKXtyZXR1''@;'; + put 'put ''cm4hMX19KCk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHksdj1pOShkKTtpZihnKXt2YXIgQz1pOSh0aGlzKS5jb25zdHJ1Y3Rvcjt5PVJlZmxlY3QuY29uc3RydWN0KHYsYXJndW1lbnRzLEMpfWVsc2UgeT12LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gSzh0KHRoaXMseSl9fShoKTtm''@;'; + put 'put ''dW5jdGlvbiBoKHYpe3ZhciB5O3JldHVybiBmdW5jdGlvbiBZOHQoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0odGhpcyxoKSwoeT1nLmNhbGwodGhpcyx2KSkudHJpbW1lZFJvd3NNYXA9''@;'; + put 'put ''bnVsbCx5fXJldHVybiBmdW5jdGlvbiBVOHQoZCxnLGgpe2cmJmxMZShkLnByb3RvdHlwZSxnKSxoJiZsTGUoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oaCxbe2tleToiaXNFbmFibGVkIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiEh''@;'; + put 'put ''dGhpcy5ob3QuZ2V0U2V0dGluZ3MoKVtQbmVdfX0se2tleToiZW5hYmxlUGx1Z2luIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXM7dGhpcy5lbmFibGVkfHwodGhpcy50cmltbWVkUm93c01hcD10aGlzLmhvdC5yb3dJbmRleE1hcHBlci5yZWdpc3Rlck1hcCgidHJpbVJvd3MiLG5ldyBu''@;'; + put 'put ''eiksdGhpcy50cmltbWVkUm93c01hcC5hZGRMb2NhbEhvb2soImluaXQiLGZ1bmN0aW9uKCl7cmV0dXJuIHkub25NYXBJbml0KCl9KSxfTShpOShoLnByb3RvdHlwZSksImVuYWJsZVBsdWdpbiIsdGhpcykuY2FsbCh0aGlzKSl9fSx7a2V5OiJ1cGRhdGVQbHVnaW4iLHZhbHVlOmZ1bmN0aW9u''@;'; + put 'put ''KCl7dmFyIHk9dGhpcyxDPXRoaXMuaG90LmdldFNldHRpbmdzKClbUG5lXTtBcnJheS5pc0FycmF5KEMpJiZ0aGlzLmhvdC5iYXRjaEV4ZWN1dGlvbihmdW5jdGlvbigpe3kudHJpbW1lZFJvd3NNYXAuY2xlYXIoKSxVcihDLGZ1bmN0aW9uKEkpe3kudHJpbW1lZFJvd3NNYXAuc2V0VmFsdWVB''@;'; + put 'put ''dEluZGV4KEksITApfSl9LCEwKSxfTShpOShoLnByb3RvdHlwZSksInVwZGF0ZVBsdWdpbiIsdGhpcykuY2FsbCh0aGlzKX19LHtrZXk6ImRpc2FibGVQbHVnaW4iLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5ob3Qucm93SW5kZXhNYXBwZXIudW5yZWdpc3Rlck1hcCgidHJpbVJvd3MiKSxfTShp''@;'; + put 'put ''OShoLnByb3RvdHlwZSksImRpc2FibGVQbHVnaW4iLHRoaXMpLmNhbGwodGhpcyl9fSx7a2V5OiJnZXRUcmltbWVkUm93cyIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50cmltbWVkUm93c01hcC5nZXRUcmltbWVkSW5kZXhlcygpfX0se2tleToidHJpbVJvd3MiLHZhbHVlOmZ1bmN0''@;'; + put 'put ''aW9uKHkpe3ZhciBDPXRoaXMsST10aGlzLmdldFRyaW1tZWRSb3dzKCksaj10aGlzLmlzVmFsaWRDb25maWcoeSksdWU9STtqJiYodWU9QXJyYXkuZnJvbShuZXcgU2V0KEkuY29uY2F0KHkpKSkpLCExIT09dGhpcy5ob3QucnVuSG9va3MoImJlZm9yZVRyaW1Sb3ciLEksdWUsaikmJihqJiZ0''@;'; + put 'put ''aGlzLmhvdC5iYXRjaEV4ZWN1dGlvbihmdW5jdGlvbigpe1VyKHksZnVuY3Rpb24oQmUpe0MudHJpbW1lZFJvd3NNYXAuc2V0VmFsdWVBdEluZGV4KEJlLCEwKX0pfSwhMCksdGhpcy5ob3QucnVuSG9va3MoImFmdGVyVHJpbVJvdyIsSSx1ZSxqLGomJnVlLmxlbmd0aD5JLmxlbmd0aCkpfX0s''@;'; + put 'put ''e2tleToidHJpbVJvdyIsdmFsdWU6ZnVuY3Rpb24oKXtmb3IodmFyIHk9YXJndW1lbnRzLmxlbmd0aCxDPW5ldyBBcnJheSh5KSxJPTA7STx5O0krKylDW0ldPWFyZ3VtZW50c1tJXTt0aGlzLnRyaW1Sb3dzKEMpfX0se2tleToidW50cmltUm93cyIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEM9''@;'; + put 'put ''dGhpcy5nZXRUcmltbWVkUm93cygpLEk9dGhpcy5pc1ZhbGlkQ29uZmlnKHkpLGo9Qyx1ZT10aGlzLnRyaW1tZWRSb3dzTWFwLmdldFZhbHVlcygpLnNsaWNlKCksX2U9eS5sZW5ndGg+MDtJJiZfZSYmKFVyKHksZnVuY3Rpb24oTmUpe3VlW05lXT0hMX0pLGo9U3UodWUsZnVuY3Rpb24oTmUs''@;'; + put 'put ''S2UsZHQpe3JldHVybiBLZSYmTmUucHVzaChkdCksTmV9LFtdKSksITEhPT10aGlzLmhvdC5ydW5Ib29rcygiYmVmb3JlVW50cmltUm93IixDLGosSSYmX2UpJiYoSSYmX2UmJnRoaXMudHJpbW1lZFJvd3NNYXAuc2V0VmFsdWVzKHVlKSx0aGlzLmhvdC5ydW5Ib29rcygiYWZ0ZXJVbnRyaW1S''@;'; + put 'put ''b3ciLEMsaixJJiZfZSxJJiZqLmxlbmd0aDxDLmxlbmd0aCkpfX0se2tleToidW50cmltUm93Iix2YWx1ZTpmdW5jdGlvbigpe2Zvcih2YXIgeT1hcmd1bWVudHMubGVuZ3RoLEM9bmV3IEFycmF5KHkpLEk9MDtJPHk7SSsrKUNbSV09YXJndW1lbnRzW0ldO3RoaXMudW50cmltUm93cyhDKX19''@;'; + put 'put ''LHtrZXk6ImlzVHJpbW1lZCIsdmFsdWU6ZnVuY3Rpb24oeSl7cmV0dXJuIHRoaXMudHJpbW1lZFJvd3NNYXAuZ2V0VmFsdWVBdEluZGV4KHkpfHwhMX19LHtrZXk6InVudHJpbUFsbCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLnVudHJpbVJvd3ModGhpcy5nZXRUcmltbWVkUm93cygpKX19LHtr''@;'; + put 'put ''ZXk6ImlzVmFsaWRDb25maWciLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPXRoaXMuaG90LmNvdW50U291cmNlUm93cygpO3JldHVybiB5LmV2ZXJ5KGZ1bmN0aW9uKEkpe3JldHVybiBOdW1iZXIuaXNJbnRlZ2VyKEkpJiZJPj0wJiZJPEN9KX19LHtrZXk6Im9uTWFwSW5pdCIsdmFsdWU6ZnVu''@;'; + put 'put ''Y3Rpb24oKXt2YXIgeT10aGlzLEM9dGhpcy5ob3QuZ2V0U2V0dGluZ3MoKVtQbmVdO0FycmF5LmlzQXJyYXkoQykmJnRoaXMuaG90LmJhdGNoRXhlY3V0aW9uKGZ1bmN0aW9uKCl7VXIoQyxmdW5jdGlvbihJKXt5LnRyaW1tZWRSb3dzTWFwLnNldFZhbHVlQXRJbmRleChJLCEwKX0pfSwhMCl9''@;'; + put 'put ''fSx7a2V5OiJkZXN0cm95Iix2YWx1ZTpmdW5jdGlvbigpe19NKGk5KGgucHJvdG90eXBlKSwiZGVzdHJveSIsdGhpcykuY2FsbCh0aGlzKX19XSxbe2tleToiUExVR0lOX0tFWSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFBuZX19LHtrZXk6IlBMVUdJTl9QUklPUklUWSIsZ2V0OmZ1bmN0aW9u''@;'; + put 'put ''KCl7cmV0dXJuIDMzMH19XSksaH0oWXMpO2Z1bmN0aW9uIHBtZShkKXtyZXR1cm4ocG1lPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGcpe3JldHVybiB0eXBlb2YgZ306ZnVuY3Rpb24oZyl7cmV0dXJuIGcmJiJm''@;'; + put 'put ''dW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmcuY29uc3RydWN0b3I9PT1TeW1ib2wmJmchPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBnfSkoZCl9ZnVuY3Rpb24gc0xlKGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwg''@;'; + put 'put ''YSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9ZnVuY3Rpb24gdUxlKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3Qu''@;'; + put 'put ''ZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19ZnVuY3Rpb24gY0xlKGQsZyxoKXtyZXR1cm4gZyYmdUxlKGQucHJvdG90eXBlLGcpLGgmJnVMZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGR9ZnVuY3Rpb24gZkxlKGQsZyl7aWYoImZ1''@;'; + put 'put ''bmN0aW9uIiE9dHlwZW9mIGcmJm51bGwhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uIik7ZC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShnJiZnLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOmQs''@;'; + put 'put ''d3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGcmJmdtZShkLGcpfWZ1bmN0aW9uIGdtZShkLGcpe3JldHVybihnbWU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVP''@;'; + put 'put ''Zi5iaW5kKCk6ZnVuY3Rpb24odix5KXtyZXR1cm4gdi5fX3Byb3RvX189eSx2fSkoZCxnKX1mdW5jdGlvbiBoTGUoZCl7dmFyIGc9ZnVuY3Rpb24gaTV0KCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBSZWZsZWN0fHwhUmVmbGVjdC5jb25zdHJ1Y3R8fFJlZmxlY3QuY29uc3RydWN0LnNoYW0p''@;'; + put 'put ''cmV0dXJuITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIFByb3h5KXJldHVybiEwO3RyeXtyZXR1cm4gQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10sZnVuY3Rpb24oKXt9KSksITB9Y2F0Y2goZCl7cmV0dXJuITF9fSgpO3JldHVybiBm''@;'; + put 'put ''dW5jdGlvbigpe3ZhciB5LHY9Rm5lKGQpO2lmKGcpe3ZhciBDPUZuZSh0aGlzKS5jb25zdHJ1Y3Rvcjt5PVJlZmxlY3QuY29uc3RydWN0KHYsYXJndW1lbnRzLEMpfWVsc2UgeT12LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gbjV0KHRoaXMseSl9fWZ1bmN0aW9uIG41dChkLGcpe2lm''@;'; + put 'put ''KGcmJigib2JqZWN0Ij09PXBtZShnKXx8ImZ1bmN0aW9uIj09dHlwZW9mIGcpKXJldHVybiBnO2lmKHZvaWQgMCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWQiKTtyZXR1cm4gZnVuY3Rpb24g''@;'; + put 'put ''cjV0KGQpe2lmKHZvaWQgMD09PWQpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4gZH0oZCl9ZnVuY3Rpb24gRm5lKGQpe3JldHVybihGbmU9T2JqZWN0LnNldFByb3RvdHlw''@;'; + put 'put ''ZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24oaCl7cmV0dXJuIGguX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YoaCl9KShkKX1mdW5jdGlvbiBkTGUoZCxnKXtyZXR1cm4gZnVuY3Rpb24gZjV0KGQpe2lmKEFycmF5LmlzQXJyYXkoZCkpcmV0dXJuIGR9''@;'; + put 'put ''KGQpfHxmdW5jdGlvbiBjNXQoZCxnKXt2YXIgaD1udWxsPT1kP251bGw6InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJmRbU3ltYm9sLml0ZXJhdG9yXXx8ZFsiQEBpdGVyYXRvciJdO2lmKG51bGwhPWgpe3ZhciBJLGosdj1bXSx5PSEwLEM9ITE7dHJ5e2ZvcihoPWguY2FsbChkKTshKHk9''@;'; + put 'put ''KEk9aC5uZXh0KCkpLmRvbmUpJiYodi5wdXNoKEkudmFsdWUpLCFnfHx2Lmxlbmd0aCE9PWcpO3k9ITApO31jYXRjaCh1ZSl7Qz0hMCxqPXVlfWZpbmFsbHl7dHJ5eyF5JiZudWxsIT1oLnJldHVybiYmaC5yZXR1cm4oKX1maW5hbGx5e2lmKEMpdGhyb3cgan19cmV0dXJuIHZ9fShkLGcpfHxw''@;'; + put 'put ''TGUoZCxnKXx8ZnVuY3Rpb24gdTV0KCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0''@;'; + put 'put ''ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX1mdW5jdGlvbiBwTGUoZCxnKXtpZihkKXtpZigic3RyaW5nIj09dHlwZW9mIGQpcmV0dXJuIG1tZShkLGcpO3ZhciBoPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChkKS5zbGljZSg4LC0xKTtpZigiT2JqZWN0Ij09PWgmJmQuY29uc3RydWN0''@;'; + put 'put ''b3ImJihoPWQuY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1ofHwiU2V0Ij09PWgpcmV0dXJuIEFycmF5LmZyb20oZCk7aWYoIkFyZ3VtZW50cyI9PT1ofHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChoKSlyZXR1cm4gbW1lKGQsZyl9fWZ1bmN0aW9u''@;'; + put 'put ''IG1tZShkLGcpeyhudWxsPT1nfHxnPmQubGVuZ3RoKSYmKGc9ZC5sZW5ndGgpO2Zvcih2YXIgaD0wLHY9bmV3IEFycmF5KGcpO2g8ZztoKyspdltoXT1kW2hdO3JldHVybiB2fWZ1bmN0aW9uIFZvKGQpe3ZhciBnPXRoaXM7dGhpcy5pbnN0YW5jZT1kLHRoaXMuZG9uZUFjdGlvbnM9W10sdGhp''@;'; + put 'put ''cy51bmRvbmVBY3Rpb25zPVtdLHRoaXMuaWdub3JlTmV3QWN0aW9ucz0hMSx0aGlzLmVuYWJsZWQ9ITEsZC5hZGRIb29rKCJhZnRlckNoYW5nZSIsZnVuY3Rpb24oaCx2KXt2YXIgeT10aGlzLEM9aCYmaC5sZW5ndGg7QyYmaC5maW5kKGZ1bmN0aW9uKHVlKXt2YXIgX2U9ZExlKHVlLDQpO3Jl''@;'; + put 'put ''dHVybiBfZVsyXSE9PV9lWzNdfSkmJmcuZG9uZShmdW5jdGlvbigpe3ZhciBfZT1oLnJlZHVjZShmdW5jdGlvbihOZSxLZSl7cmV0dXJuIE5lLnB1c2goZnVuY3Rpb24gbzV0KGQpe3JldHVybiBmdW5jdGlvbiBzNXQoZCl7aWYoQXJyYXkuaXNBcnJheShkKSlyZXR1cm4gbW1lKGQpfShkKXx8''@;'; + put 'put ''ZnVuY3Rpb24gbDV0KGQpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZudWxsIT1kW1N5bWJvbC5pdGVyYXRvcl18fG51bGwhPWRbIkBAaXRlcmF0b3IiXSlyZXR1cm4gQXJyYXkuZnJvbShkKX0oZCl8fHBMZShkKXx8ZnVuY3Rpb24gYTV0KCl7dGhyb3cgbmV3IFR5cGVFcnJvcigi''@;'; + put 'put ''SW52YWxpZCBhdHRlbXB0IHRvIHNwcmVhZCBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9KEtlKSksTmV9LFtdKTtVcihfZSxmdW5jdGlv''@;'; + put 'put ''bihOZSl7TmVbMV09ZC5wcm9wVG9Db2woTmVbMV0pfSk7dmFyIEJlPUM+MT95LmdldFNlbGVjdGVkKCk6W1tfZVswXVswXSxfZVswXVsxXV1dO3JldHVybiBuZXcgVm8uQ2hhbmdlQWN0aW9uKF9lLEJlKX0sdil9KSxkLmFkZEhvb2soImFmdGVyQ3JlYXRlUm93IixmdW5jdGlvbihoLHYseSl7''@;'; + put 'put ''Zy5kb25lKGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBWby5DcmVhdGVSb3dBY3Rpb24oaCx2KX0seSl9KSxkLmFkZEhvb2soImJlZm9yZVJlbW92ZVJvdyIsZnVuY3Rpb24oaCx2LHksQyl7Zy5kb25lKGZ1bmN0aW9uKCl7dmFyIHVlPWcuaW5zdGFuY2UuZ2V0U291cmNlRGF0YUFycmF5KCksX2U9''@;'; + put 'put ''KHVlLmxlbmd0aCtoKSV1ZS5sZW5ndGgsQmU9ZC50b1BoeXNpY2FsUm93KF9lKSxOZT1naCh1ZS5zbGljZShCZSxCZSt2KSk7cmV0dXJuIG5ldyBWby5SZW1vdmVSb3dBY3Rpb24oX2UsTmUsZC5nZXRTZXR0aW5ncygpLmZpeGVkUm93c0JvdHRvbSxkLmdldFNldHRpbmdzKCkuZml4ZWRSb3dz''@;'; + put 'put ''VG9wKX0sQyl9KSxkLmFkZEhvb2soImFmdGVyQ3JlYXRlQ29sIixmdW5jdGlvbihoLHYseSl7Zy5kb25lKGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBWby5DcmVhdGVDb2x1bW5BY3Rpb24oaCx2KX0seSl9KSxkLmFkZEhvb2soImJlZm9yZVJlbW92ZUNvbCIsZnVuY3Rpb24oaCx2LHksQyl7Zy5k''@;'; + put 'put ''b25lKGZ1bmN0aW9uKCl7dmFyIHVlPWcuaW5zdGFuY2UuZ2V0U291cmNlRGF0YUFycmF5KCksX2U9KGcuaW5zdGFuY2UuY291bnRDb2xzKCkraCklZy5pbnN0YW5jZS5jb3VudENvbHMoKSxCZT1bXSxOZT1bXSxLZT1bXTtpYSh1ZS5sZW5ndGgtMSxmdW5jdGlvbigkdCl7dmFyIGZuPVtdLExu''@;'; + put 'put ''PXVlWyR0XTtpYShfZSxfZSsodi0xKSxmdW5jdGlvbihpcil7Zm4ucHVzaChMbltkLnRvUGh5c2ljYWxDb2x1bW4oaXIpXSl9KSxCZS5wdXNoKGZuKX0pLGlhKHYtMSxmdW5jdGlvbigkdCl7S2UucHVzaChkLnRvUGh5c2ljYWxDb2x1bW4oX2UrJHQpKX0pLEFycmF5LmlzQXJyYXkoZC5nZXRT''@;'; + put 'put ''ZXR0aW5ncygpLmNvbEhlYWRlcnMpJiZpYSh2LTEsZnVuY3Rpb24oJHQpe05lLnB1c2goZC5nZXRTZXR0aW5ncygpLmNvbEhlYWRlcnNbZC50b1BoeXNpY2FsQ29sdW1uKF9lKyR0KV18fG51bGwpfSk7dmFyIGR0PWQuY29sdW1uSW5kZXhNYXBwZXIuZ2V0SW5kZXhlc1NlcXVlbmNlKCksT3Q9''@;'; + put 'put ''ZC5yb3dJbmRleE1hcHBlci5nZXRJbmRleGVzU2VxdWVuY2UoKTtyZXR1cm4gbmV3IFZvLlJlbW92ZUNvbHVtbkFjdGlvbihfZSxLZSxCZSxOZSxkdCxPdCxkLmdldFNldHRpbmdzKCkuZml4ZWRDb2x1bW5zU3RhcnQpfSxDKX0pLGQuYWRkSG9vaygiYmVmb3JlQ2VsbEFsaWdubWVudCIsZnVu''@;'; + put 'put ''Y3Rpb24oaCx2LHksQyl7Zy5kb25lKGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBWby5DZWxsQWxpZ25tZW50QWN0aW9uKGgsdix5LEMpfSl9KSxkLmFkZEhvb2soImJlZm9yZUZpbHRlciIsZnVuY3Rpb24oaCl7Zy5kb25lKGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBWby5GaWx0ZXJzQWN0aW9uKGgp''@;'; + put 'put ''fSl9KSxkLmFkZEhvb2soImJlZm9yZVJvd01vdmUiLGZ1bmN0aW9uKGgsdil7ITEhPT1oJiZnLmRvbmUoZnVuY3Rpb24oKXtyZXR1cm4gbmV3IFZvLlJvd01vdmVBY3Rpb24oaCx2KX0pfSksZC5hZGRIb29rKCJiZWZvcmVNZXJnZUNlbGxzIixmdW5jdGlvbihoLHYpe3Z8fGcuZG9uZShmdW5j''@;'; + put 'put ''dGlvbigpe3JldHVybiBuZXcgVm8uTWVyZ2VDZWxsc0FjdGlvbihkLGgpfSl9KSxkLmFkZEhvb2soImFmdGVyVW5tZXJnZUNlbGxzIixmdW5jdGlvbihoLHYpe3Z8fGcuZG9uZShmdW5jdGlvbigpe3JldHVybiBuZXcgVm8uVW5tZXJnZUNlbGxzQWN0aW9uKGQsaCl9KX0pLGQuYWRkSG9vaygi''@;'; + put 'put ''YWZ0ZXJJbml0IixmdW5jdGlvbigpe2cuaW5pdCgpfSl9Vm8ucHJvdG90eXBlLmRvbmU9ZnVuY3Rpb24oZCxnKXtpZighdGhpcy5pZ25vcmVOZXdBY3Rpb25zJiYiVW5kb1JlZG8udW5kbyIhPT1nJiYiVW5kb1JlZG8ucmVkbyIhPT1nJiYiYXV0byIhPT1nKXt2YXIgdj10aGlzLmRvbmVBY3Rp''@;'; + put 'put ''b25zLnNsaWNlKCk7aWYoITEhPT10aGlzLmluc3RhbmNlLnJ1bkhvb2tzKCJiZWZvcmVVbmRvU3RhY2tDaGFuZ2UiLHYsZykpe3ZhciBDPWQoKSxJPXRoaXMudW5kb25lQWN0aW9ucy5zbGljZSgpO3RoaXMuZG9uZUFjdGlvbnMucHVzaChDKSx0aGlzLmluc3RhbmNlLnJ1bkhvb2tzKCJhZnRl''@;'; + put 'put ''clVuZG9TdGFja0NoYW5nZSIsdix0aGlzLmRvbmVBY3Rpb25zLnNsaWNlKCkpLHRoaXMuaW5zdGFuY2UucnVuSG9va3MoImJlZm9yZVJlZG9TdGFja0NoYW5nZSIsSSksdGhpcy51bmRvbmVBY3Rpb25zLmxlbmd0aD0wLHRoaXMuaW5zdGFuY2UucnVuSG9va3MoImFmdGVyUmVkb1N0YWNrQ2hh''@;'; + put 'put ''bmdlIixJLHRoaXMudW5kb25lQWN0aW9ucy5zbGljZSgpKX19fSxWby5wcm90b3R5cGUudW5kbz1mdW5jdGlvbigpe2lmKHRoaXMuaXNVbmRvQXZhaWxhYmxlKCkpe3ZhciBkPXRoaXMuZG9uZUFjdGlvbnMuc2xpY2UoKTt0aGlzLmluc3RhbmNlLnJ1bkhvb2tzKCJiZWZvcmVVbmRvU3RhY2tD''@;'; + put 'put ''aGFuZ2UiLGQpO3ZhciBnPXRoaXMuZG9uZUFjdGlvbnMucG9wKCk7dGhpcy5pbnN0YW5jZS5ydW5Ib29rcygiYWZ0ZXJVbmRvU3RhY2tDaGFuZ2UiLGQsdGhpcy5kb25lQWN0aW9ucy5zbGljZSgpKTt2YXIgaD1naChnKTtpZighMT09PXRoaXMuaW5zdGFuY2UucnVuSG9va3MoImJlZm9yZVVu''@;'; + put 'put ''ZG8iLGgpKXJldHVybjt0aGlzLmlnbm9yZU5ld0FjdGlvbnM9ITA7dmFyIHk9dGhpcyxDPXRoaXMudW5kb25lQWN0aW9ucy5zbGljZSgpO3RoaXMuaW5zdGFuY2UucnVuSG9va3MoImJlZm9yZVJlZG9TdGFja0NoYW5nZSIsQyksZy51bmRvKHRoaXMuaW5zdGFuY2UsZnVuY3Rpb24oKXt5Lmln''@;'; + put 'put ''bm9yZU5ld0FjdGlvbnM9ITEseS51bmRvbmVBY3Rpb25zLnB1c2goZyl9KSx0aGlzLmluc3RhbmNlLnJ1bkhvb2tzKCJhZnRlclJlZG9TdGFja0NoYW5nZSIsQyx0aGlzLnVuZG9uZUFjdGlvbnMuc2xpY2UoKSksdGhpcy5pbnN0YW5jZS5ydW5Ib29rcygiYWZ0ZXJVbmRvIixoKX19LFZvLnBy''@;'; + put 'put ''b3RvdHlwZS5yZWRvPWZ1bmN0aW9uKCl7aWYodGhpcy5pc1JlZG9BdmFpbGFibGUoKSl7dmFyIGQ9dGhpcy51bmRvbmVBY3Rpb25zLnNsaWNlKCk7dGhpcy5pbnN0YW5jZS5ydW5Ib29rcygiYmVmb3JlUmVkb1N0YWNrQ2hhbmdlIixkKTt2YXIgZz10aGlzLnVuZG9uZUFjdGlvbnMucG9wKCk7''@;'; + put 'put ''dGhpcy5pbnN0YW5jZS5ydW5Ib29rcygiYWZ0ZXJSZWRvU3RhY2tDaGFuZ2UiLGQsdGhpcy51bmRvbmVBY3Rpb25zLnNsaWNlKCkpO3ZhciBoPWdoKGcpO2lmKCExPT09dGhpcy5pbnN0YW5jZS5ydW5Ib29rcygiYmVmb3JlUmVkbyIsaCkpcmV0dXJuO3RoaXMuaWdub3JlTmV3QWN0aW9ucz0h''@;'; + put 'put ''MDt2YXIgeT10aGlzLEM9dGhpcy5kb25lQWN0aW9ucy5zbGljZSgpO3RoaXMuaW5zdGFuY2UucnVuSG9va3MoImJlZm9yZVVuZG9TdGFja0NoYW5nZSIsQyksZy5yZWRvKHRoaXMuaW5zdGFuY2UsZnVuY3Rpb24oKXt5Lmlnbm9yZU5ld0FjdGlvbnM9ITEseS5kb25lQWN0aW9ucy5wdXNoKGcp''@;'; + put 'put ''fSksdGhpcy5pbnN0YW5jZS5ydW5Ib29rcygiYWZ0ZXJVbmRvU3RhY2tDaGFuZ2UiLEMsdGhpcy5kb25lQWN0aW9ucy5zbGljZSgpKSx0aGlzLmluc3RhbmNlLnJ1bkhvb2tzKCJhZnRlclJlZG8iLGgpfX0sVm8ucHJvdG90eXBlLmlzVW5kb0F2YWlsYWJsZT1mdW5jdGlvbigpe3JldHVybiB0''@;'; + put 'put ''aGlzLmRvbmVBY3Rpb25zLmxlbmd0aD4wfSxWby5wcm90b3R5cGUuaXNSZWRvQXZhaWxhYmxlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudW5kb25lQWN0aW9ucy5sZW5ndGg+MH0sVm8ucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uKCl7dGhpcy5kb25lQWN0aW9ucy5sZW5ndGg9MCx0aGlzLnVu''@;'; + put 'put ''ZG9uZUFjdGlvbnMubGVuZ3RoPTB9LFZvLnByb3RvdHlwZS5pc0VuYWJsZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lbmFibGVkfSxWby5wcm90b3R5cGUuZW5hYmxlPWZ1bmN0aW9uKCl7aWYoIXRoaXMuaXNFbmFibGVkKCkpe3ZhciBkPXRoaXMuaW5zdGFuY2U7dGhpcy5lbmFibGVkPSEw''@;'; + put 'put ''LGZ1bmN0aW9uIGc1dChkKXtkLnVuZG89ZnVuY3Rpb24oKXtyZXR1cm4gZC51bmRvUmVkby51bmRvKCl9LGQucmVkbz1mdW5jdGlvbigpe3JldHVybiBkLnVuZG9SZWRvLnJlZG8oKX0sZC5pc1VuZG9BdmFpbGFibGU9ZnVuY3Rpb24oKXtyZXR1cm4gZC51bmRvUmVkby5pc1VuZG9BdmFpbGFi''@;'; + put 'put ''bGUoKX0sZC5pc1JlZG9BdmFpbGFibGU9ZnVuY3Rpb24oKXtyZXR1cm4gZC51bmRvUmVkby5pc1JlZG9BdmFpbGFibGUoKX0sZC5jbGVhclVuZG89ZnVuY3Rpb24oKXtyZXR1cm4gZC51bmRvUmVkby5jbGVhcigpfX0oZCksdGhpcy5yZWdpc3RlclNob3J0Y3V0cygpLGQuYWRkSG9vaygiYWZ0''@;'; + put 'put ''ZXJDaGFuZ2UiLG1MZSl9fSxWby5wcm90b3R5cGUuZGlzYWJsZT1mdW5jdGlvbigpe2lmKHRoaXMuaXNFbmFibGVkKCkpe3ZhciBkPXRoaXMuaW5zdGFuY2U7dGhpcy5lbmFibGVkPSExLGZ1bmN0aW9uIG01dChkKXtkZWxldGUgZC51bmRvLGRlbGV0ZSBkLnJlZG8sZGVsZXRlIGQuaXNVbmRv''@;'; + put 'put ''QXZhaWxhYmxlLGRlbGV0ZSBkLmlzUmVkb0F2YWlsYWJsZSxkZWxldGUgZC5jbGVhclVuZG99KGQpLHRoaXMudW5yZWdpc3RlclNob3J0Y3V0cygpLGQucmVtb3ZlSG9vaygiYWZ0ZXJDaGFuZ2UiLG1MZSl9fSxWby5wcm90b3R5cGUuZGVzdHJveT1mdW5jdGlvbigpe3RoaXMuY2xlYXIoKSx0''@;'; + put 'put ''aGlzLmluc3RhbmNlPW51bGwsdGhpcy5kb25lQWN0aW9ucz1udWxsLHRoaXMudW5kb25lQWN0aW9ucz1udWxsfSwoVm8uQWN0aW9uPWZ1bmN0aW9uKCl7fSkucHJvdG90eXBlLnVuZG89ZnVuY3Rpb24oKXt9LFZvLkFjdGlvbi5wcm90b3R5cGUucmVkbz1mdW5jdGlvbigpe30sa3YoVm8uQ2hh''@;'; + put 'put ''bmdlQWN0aW9uPWZ1bmN0aW9uKGQsZyl7dGhpcy5jaGFuZ2VzPWQsdGhpcy5zZWxlY3RlZD1nLHRoaXMuYWN0aW9uVHlwZT0iY2hhbmdlIn0sVm8uQWN0aW9uKSxWby5DaGFuZ2VBY3Rpb24ucHJvdG90eXBlLnVuZG89ZnVuY3Rpb24oZCxnKXtmb3IodmFyIGg9Z2godGhpcy5jaGFuZ2VzKSx2''@;'; + put 'put ''PWQuY291bnRFbXB0eVJvd3MoITApLHk9ZC5jb3VudEVtcHR5Q29scyghMCksQz0wLEk9aC5sZW5ndGg7QzxJO0MrKyloW0NdLnNwbGljZSgzLDEpO2QuYWRkSG9va09uY2UoImFmdGVyQ2hhbmdlIixnKSxkLnNldERhdGFBdENlbGwoaCxudWxsLG51bGwsIlVuZG9SZWRvLnVuZG8iKTtmb3Io''@;'; + put 'put ''dmFyIGo9MCx1ZT1oLmxlbmd0aDtqPHVlO2orKyl7dmFyIF9lPWRMZShoW2pdLDIpLEJlPV9lWzBdLE5lPV9lWzFdO2QuZ2V0U2V0dGluZ3MoKS5taW5TcGFyZVJvd3MmJkJlKzErZC5nZXRTZXR0aW5ncygpLm1pblNwYXJlUm93cz09PWQuY291bnRSb3dzKCkmJnY9PT1kLmdldFNldHRpbmdz''@;'; + put 'put ''KCkubWluU3BhcmVSb3dzJiYoZC5hbHRlcigicmVtb3ZlX3JvdyIscGFyc2VJbnQoQmUrMSwxMCksZC5nZXRTZXR0aW5ncygpLm1pblNwYXJlUm93cyksZC51bmRvUmVkby5kb25lQWN0aW9ucy5wb3AoKSksZC5nZXRTZXR0aW5ncygpLm1pblNwYXJlQ29scyYmTmUrMStkLmdldFNldHRpbmdz''@;'; + put 'put ''KCkubWluU3BhcmVDb2xzPT09ZC5jb3VudENvbHMoKSYmeT09PWQuZ2V0U2V0dGluZ3MoKS5taW5TcGFyZUNvbHMmJihkLmFsdGVyKCJyZW1vdmVfY29sIixwYXJzZUludChOZSsxLDEwKSxkLmdldFNldHRpbmdzKCkubWluU3BhcmVDb2xzKSxkLnVuZG9SZWRvLmRvbmVBY3Rpb25zLnBvcCgp''@;'; + put 'put ''KX1kLnNlbGVjdENlbGxzKHRoaXMuc2VsZWN0ZWQsITEsITEpfSxWby5DaGFuZ2VBY3Rpb24ucHJvdG90eXBlLnJlZG89ZnVuY3Rpb24oZCxnKXtmb3IodmFyIGg9Z2godGhpcy5jaGFuZ2VzKSx2PTAseT1oLmxlbmd0aDt2PHk7disrKWhbdl0uc3BsaWNlKDIsMSk7ZC5hZGRIb29rT25jZSgi''@;'; + put 'put ''YWZ0ZXJDaGFuZ2UiLGcpLGQuc2V0RGF0YUF0Q2VsbChoLG51bGwsbnVsbCwiVW5kb1JlZG8ucmVkbyIpLHRoaXMuc2VsZWN0ZWQmJmQuc2VsZWN0Q2VsbHModGhpcy5zZWxlY3RlZCwhMSwhMSl9LGt2KFZvLkNyZWF0ZVJvd0FjdGlvbj1mdW5jdGlvbihkLGcpe3RoaXMuaW5kZXg9ZCx0aGlz''@;'; + put 'put ''LmFtb3VudD1nLHRoaXMuYWN0aW9uVHlwZT0iaW5zZXJ0X3JvdyJ9LFZvLkFjdGlvbiksVm8uQ3JlYXRlUm93QWN0aW9uLnByb3RvdHlwZS51bmRvPWZ1bmN0aW9uKGQsZyl7dmFyIGg9ZC5jb3VudFJvd3MoKSx2PWQuZ2V0U2V0dGluZ3MoKS5taW5TcGFyZVJvd3M7dGhpcy5pbmRleD49aCYm''@;'; + put 'put ''dGhpcy5pbmRleC12PGgmJih0aGlzLmluZGV4LT12KSxkLmFkZEhvb2tPbmNlKCJhZnRlclJlbW92ZVJvdyIsZyksZC5hbHRlcigicmVtb3ZlX3JvdyIsdGhpcy5pbmRleCx0aGlzLmFtb3VudCwiVW5kb1JlZG8udW5kbyIpfSxWby5DcmVhdGVSb3dBY3Rpb24ucHJvdG90eXBlLnJlZG89ZnVu''@;'; + put 'put ''Y3Rpb24oZCxnKXtkLmFkZEhvb2tPbmNlKCJhZnRlckNyZWF0ZVJvdyIsZyksZC5hbHRlcigiaW5zZXJ0X3JvdyIsdGhpcy5pbmRleCx0aGlzLmFtb3VudCwiVW5kb1JlZG8ucmVkbyIpfSxrdihWby5SZW1vdmVSb3dBY3Rpb249ZnVuY3Rpb24oZCxnLGgsdil7dGhpcy5pbmRleD1kLHRoaXMu''@;'; + put 'put ''ZGF0YT1nLHRoaXMuYWN0aW9uVHlwZT0icmVtb3ZlX3JvdyIsdGhpcy5maXhlZFJvd3NCb3R0b209aCx0aGlzLmZpeGVkUm93c1RvcD12fSxWby5BY3Rpb24pLFZvLlJlbW92ZVJvd0FjdGlvbi5wcm90b3R5cGUudW5kbz1mdW5jdGlvbihkLGcpe3ZhciBoPWQuZ2V0U2V0dGluZ3MoKTtoLmZp''@;'; + put 'put ''eGVkUm93c0JvdHRvbT10aGlzLmZpeGVkUm93c0JvdHRvbSxoLmZpeGVkUm93c1RvcD10aGlzLmZpeGVkUm93c1RvcCxkLmFsdGVyKCJpbnNlcnRfcm93Iix0aGlzLmluZGV4LHRoaXMuZGF0YS5sZW5ndGgsIlVuZG9SZWRvLnVuZG8iKSxkLmFkZEhvb2tPbmNlKCJhZnRlclZpZXdSZW5kZXIi''@;'; + put 'put ''LGcpLGQucG9wdWxhdGVGcm9tQXJyYXkodGhpcy5pbmRleCwwLHRoaXMuZGF0YSx2b2lkIDAsdm9pZCAwLCJVbmRvUmVkby51bmRvIil9LFZvLlJlbW92ZVJvd0FjdGlvbi5wcm90b3R5cGUucmVkbz1mdW5jdGlvbihkLGcpe2QuYWRkSG9va09uY2UoImFmdGVyUmVtb3ZlUm93IixnKSxkLmFs''@;'; + put 'put ''dGVyKCJyZW1vdmVfcm93Iix0aGlzLmluZGV4LHRoaXMuZGF0YS5sZW5ndGgsIlVuZG9SZWRvLnJlZG8iKX0sa3YoVm8uQ3JlYXRlQ29sdW1uQWN0aW9uPWZ1bmN0aW9uKGQsZyl7dGhpcy5pbmRleD1kLHRoaXMuYW1vdW50PWcsdGhpcy5hY3Rpb25UeXBlPSJpbnNlcnRfY29sIn0sVm8uQWN0''@;'; + put 'put ''aW9uKSxWby5DcmVhdGVDb2x1bW5BY3Rpb24ucHJvdG90eXBlLnVuZG89ZnVuY3Rpb24oZCxnKXtkLmFkZEhvb2tPbmNlKCJhZnRlclJlbW92ZUNvbCIsZyksZC5hbHRlcigicmVtb3ZlX2NvbCIsdGhpcy5pbmRleCx0aGlzLmFtb3VudCwiVW5kb1JlZG8udW5kbyIpfSxWby5DcmVhdGVDb2x1''@;'; + put 'put ''bW5BY3Rpb24ucHJvdG90eXBlLnJlZG89ZnVuY3Rpb24oZCxnKXtkLmFkZEhvb2tPbmNlKCJhZnRlckNyZWF0ZUNvbCIsZyksZC5hbHRlcigiaW5zZXJ0X2NvbCIsdGhpcy5pbmRleCx0aGlzLmFtb3VudCwiVW5kb1JlZG8ucmVkbyIpfSxrdihWby5SZW1vdmVDb2x1bW5BY3Rpb249ZnVuY3Rp''@;'; + put 'put ''b24oZCxnLGgsdix5LEMsSSl7dGhpcy5pbmRleD1kLHRoaXMuaW5kZXhlcz1nLHRoaXMuZGF0YT1oLHRoaXMuYW1vdW50PXRoaXMuZGF0YVswXS5sZW5ndGgsdGhpcy5oZWFkZXJzPXYsdGhpcy5jb2x1bW5Qb3NpdGlvbnM9eS5zbGljZSgwKSx0aGlzLnJvd1Bvc2l0aW9ucz1DLnNsaWNlKDAp''@;'; + put 'put ''LHRoaXMuYWN0aW9uVHlwZT0icmVtb3ZlX2NvbCIsdGhpcy5maXhlZENvbHVtbnNTdGFydD1JfSxWby5BY3Rpb24pLFZvLlJlbW92ZUNvbHVtbkFjdGlvbi5wcm90b3R5cGUudW5kbz1mdW5jdGlvbihkLGcpe3ZhciBoPXRoaXM7ZC5nZXRTZXR0aW5ncygpLmZpeGVkQ29sdW1uc1N0YXJ0PXRo''@;'; + put 'put ''aXMuZml4ZWRDb2x1bW5zU3RhcnQ7Zm9yKHZhciB5PXRoaXMuaW5kZXhlcy5zbGljZSgwKS5zb3J0KCksQz1mdW5jdGlvbihLZSxkdCxPdCl7cmV0dXJuIE90W2guaW5kZXhlcy5pbmRleE9mKHlbZHRdKV19LEk9dGhpcy5kYXRhLmxlbmd0aCxqPVtdLHVlPTA7dWU8STt1ZSsrKWoucHVzaChP''@;'; + put 'put ''bCh0aGlzLmRhdGFbdWVdLEMpKTt2YXIgX2U9T2wodGhpcy5oZWFkZXJzLEMpLEJlPVtdO2QuYWx0ZXIoImluc2VydF9jb2wiLHRoaXMuaW5kZXhlc1swXSx0aGlzLmluZGV4ZXMubGVuZ3RoLCJVbmRvUmVkby51bmRvIiksVXIoZC5nZXRTb3VyY2VEYXRhQXJyYXkoKSxmdW5jdGlvbihOZSxL''@;'; + put 'put ''ZSl7VXIoeSxmdW5jdGlvbihkdCxPdCl7TmVbZHRdPWpbS2VdW090XSxCZS5wdXNoKFtLZSxkdCxOZVtkdF1dKX0pfSksZC5zZXRTb3VyY2VEYXRhQXRDZWxsKEJlLHZvaWQgMCx2b2lkIDAsIlVuZG9SZWRvLnVuZG8iKSxkLmNvbHVtbkluZGV4TWFwcGVyLmluc2VydEluZGV4ZXMoeVswXSx5''@;'; + put 'put ''Lmxlbmd0aCksdm9pZCAwIT09dGhpcy5oZWFkZXJzJiZVcihfZSxmdW5jdGlvbihOZSxLZSl7ZC5nZXRTZXR0aW5ncygpLmNvbEhlYWRlcnNbeVtLZV1dPU5lfSksZC5iYXRjaEV4ZWN1dGlvbihmdW5jdGlvbigpe2Qucm93SW5kZXhNYXBwZXIuc2V0SW5kZXhlc1NlcXVlbmNlKGgucm93UG9z''@;'; + put 'put ''aXRpb25zKSxkLmNvbHVtbkluZGV4TWFwcGVyLnNldEluZGV4ZXNTZXF1ZW5jZShoLmNvbHVtblBvc2l0aW9ucyl9LCEwKSxkLmFkZEhvb2tPbmNlKCJhZnRlclZpZXdSZW5kZXIiLGcpLGQucmVuZGVyKCl9LFZvLlJlbW92ZUNvbHVtbkFjdGlvbi5wcm90b3R5cGUucmVkbz1mdW5jdGlvbihk''@;'; + put 'put ''LGcpe2QuYWRkSG9va09uY2UoImFmdGVyUmVtb3ZlQ29sIixnKSxkLmFsdGVyKCJyZW1vdmVfY29sIix0aGlzLmluZGV4LHRoaXMuYW1vdW50LCJVbmRvUmVkby5yZWRvIil9LChWby5DZWxsQWxpZ25tZW50QWN0aW9uPWZ1bmN0aW9uKGQsZyxoLHYpe3RoaXMuc3RhdGVCZWZvcmU9ZCx0aGlz''@;'; + put 'put ''LnJhbmdlPWcsdGhpcy50eXBlPWgsdGhpcy5hbGlnbm1lbnQ9dn0pLnByb3RvdHlwZS51bmRvPWZ1bmN0aW9uKGQsZyl7dmFyIGg9dGhpcztVcih0aGlzLnJhbmdlLGZ1bmN0aW9uKHYpe3YuZm9yQWxsKGZ1bmN0aW9uKHksQyl7eT49MCYmQz49MCYmZC5zZXRDZWxsTWV0YSh5LEMsImNsYXNz''@;'; + put 'put ''TmFtZSIsaC5zdGF0ZUJlZm9yZVt5XVtDXXx8IiBodExlZnQiKX0pfSksZC5hZGRIb29rT25jZSgiYWZ0ZXJWaWV3UmVuZGVyIixnKSxkLnJlbmRlcigpfSxWby5DZWxsQWxpZ25tZW50QWN0aW9uLnByb3RvdHlwZS5yZWRvPWZ1bmN0aW9uKGQsZyl7SHcodGhpcy5yYW5nZSx0aGlzLnR5cGUs''@;'; + put 'put ''dGhpcy5hbGlnbm1lbnQsZnVuY3Rpb24oaCx2KXtyZXR1cm4gZC5nZXRDZWxsTWV0YShoLHYpfSxmdW5jdGlvbihoLHYseSxDKXtyZXR1cm4gZC5zZXRDZWxsTWV0YShoLHYseSxDKX0pLGQuYWRkSG9va09uY2UoImFmdGVyVmlld1JlbmRlciIsZyksZC5yZW5kZXIoKX0sa3YoVm8uRmlsdGVy''@;'; + put 'put ''c0FjdGlvbj1mdW5jdGlvbihkKXt0aGlzLmNvbmRpdGlvbnNTdGFjaz1kLHRoaXMuYWN0aW9uVHlwZT0iZmlsdGVyIn0sVm8uQWN0aW9uKSxWby5GaWx0ZXJzQWN0aW9uLnByb3RvdHlwZS51bmRvPWZ1bmN0aW9uKGQsZyl7dmFyIGg9ZC5nZXRQbHVnaW4oImZpbHRlcnMiKTtkLmFkZEhvb2tP''@;'; + put 'put ''bmNlKCJhZnRlclZpZXdSZW5kZXIiLGcpLGguY29uZGl0aW9uQ29sbGVjdGlvbi5pbXBvcnRBbGxDb25kaXRpb25zKHRoaXMuY29uZGl0aW9uc1N0YWNrLnNsaWNlKDAsdGhpcy5jb25kaXRpb25zU3RhY2subGVuZ3RoLTEpKSxoLmZpbHRlcigpfSxWby5GaWx0ZXJzQWN0aW9uLnByb3RvdHlw''@;'; + put 'put ''ZS5yZWRvPWZ1bmN0aW9uKGQsZyl7dmFyIGg9ZC5nZXRQbHVnaW4oImZpbHRlcnMiKTtkLmFkZEhvb2tPbmNlKCJhZnRlclZpZXdSZW5kZXIiLGcpLGguY29uZGl0aW9uQ29sbGVjdGlvbi5pbXBvcnRBbGxDb25kaXRpb25zKHRoaXMuY29uZGl0aW9uc1N0YWNrKSxoLmZpbHRlcigpfTt2YXIg''@;'; + put 'put ''ZDV0PWZ1bmN0aW9uKGQpe2ZMZShoLGQpO3ZhciBnPWhMZShoKTtmdW5jdGlvbiBoKHYseSl7dmFyIEM7c0xlKHRoaXMsaCksKEM9Zy5jYWxsKHRoaXMpKS5jZWxsUmFuZ2U9eTt2YXIgST1DLmNlbGxSYW5nZS5nZXRUb3BTdGFydENvcm5lcigpLGo9Qy5jZWxsUmFuZ2UuZ2V0Qm90dG9tRW5k''@;'; + put 'put ''Q29ybmVyKCk7cmV0dXJuIEMucmFuZ2VEYXRhPXYuZ2V0RGF0YShJLnJvdyxJLmNvbCxqLnJvdyxqLmNvbCksQ31yZXR1cm4gY0xlKGgsW3trZXk6InVuZG8iLHZhbHVlOmZ1bmN0aW9uKHksQyl7dmFyIEk9eS5nZXRQbHVnaW4oIm1lcmdlQ2VsbHMiKTt5LmFkZEhvb2tPbmNlKCJhZnRlclZp''@;'; + put 'put ''ZXdSZW5kZXIiLEMpLEkudW5tZXJnZVJhbmdlKHRoaXMuY2VsbFJhbmdlLCEwKTt2YXIgaj10aGlzLmNlbGxSYW5nZS5nZXRUb3BTdGFydENvcm5lcigpO3kucG9wdWxhdGVGcm9tQXJyYXkoai5yb3csai5jb2wsdGhpcy5yYW5nZURhdGEsdm9pZCAwLHZvaWQgMCwiTWVyZ2VDZWxscyIpfX0s''@;'; + put 'put ''e2tleToicmVkbyIsdmFsdWU6ZnVuY3Rpb24oeSxDKXt2YXIgST15LmdldFBsdWdpbigibWVyZ2VDZWxscyIpO3kuYWRkSG9va09uY2UoImFmdGVyVmlld1JlbmRlciIsQyksSS5tZXJnZVJhbmdlKHRoaXMuY2VsbFJhbmdlKX19XSksaH0oVm8uQWN0aW9uKTtWby5NZXJnZUNlbGxzQWN0aW9u''@;'; + put 'put ''PWQ1dDt2YXIgcDV0PWZ1bmN0aW9uKGQpe2ZMZShoLGQpO3ZhciBnPWhMZShoKTtmdW5jdGlvbiBoKHYseSl7dmFyIEM7cmV0dXJuIHNMZSh0aGlzLGgpLChDPWcuY2FsbCh0aGlzKSkuY2VsbFJhbmdlPXksQ31yZXR1cm4gY0xlKGgsW3trZXk6InVuZG8iLHZhbHVlOmZ1bmN0aW9uKHksQyl7''@;'; + put 'put ''dmFyIEk9eS5nZXRQbHVnaW4oIm1lcmdlQ2VsbHMiKTt5LmFkZEhvb2tPbmNlKCJhZnRlclZpZXdSZW5kZXIiLEMpLEkubWVyZ2VSYW5nZSh0aGlzLmNlbGxSYW5nZSwhMCl9fSx7a2V5OiJyZWRvIix2YWx1ZTpmdW5jdGlvbih5LEMpe3ZhciBJPXkuZ2V0UGx1Z2luKCJtZXJnZUNlbGxzIik7''@;'; + put 'put ''eS5hZGRIb29rT25jZSgiYWZ0ZXJWaWV3UmVuZGVyIixDKSxJLnVubWVyZ2VSYW5nZSh0aGlzLmNlbGxSYW5nZSwhMCkseS5yZW5kZXIoKX19XSksaH0oVm8uQWN0aW9uKTtmdW5jdGlvbiBtTGUoZCxnKXtpZigibG9hZERhdGEiPT09ZylyZXR1cm4gdGhpcy51bmRvUmVkby5jbGVhcigpfVZv''@;'; + put 'put ''LlVubWVyZ2VDZWxsc0FjdGlvbj1wNXQsa3YoVm8uUm93TW92ZUFjdGlvbj1mdW5jdGlvbihkLGcpe3RoaXMucm93cz1kLnNsaWNlKCksdGhpcy5maW5hbEluZGV4PWcsdGhpcy5hY3Rpb25UeXBlPSJyb3dfbW92ZSJ9LFZvLkFjdGlvbiksVm8uUm93TW92ZUFjdGlvbi5wcm90b3R5cGUudW5k''@;'; + put 'put ''bz1mdW5jdGlvbihkLGcpe3ZhciBoPXRoaXMsdj1kLmdldFBsdWdpbigibWFudWFsUm93TW92ZSIpLHk9W10uY29uY2F0KHRoaXMucm93cyksQz15LmZpbHRlcihmdW5jdGlvbihCZSl7cmV0dXJuIEJlPmguZmluYWxJbmRleH0pLEk9eS5maWx0ZXIoZnVuY3Rpb24oQmUpe3JldHVybiBCZTw9''@;'; + put 'put ''aC5maW5hbEluZGV4fSksaj1DLnNvcnQoZnVuY3Rpb24oQmUsTmUpe3JldHVybiBOZS1CZX0pLmNvbmNhdChJLnNvcnQoZnVuY3Rpb24oQmUsTmUpe3JldHVybiBCZS1OZX0pKTtkLmFkZEhvb2tPbmNlKCJhZnRlclZpZXdSZW5kZXIiLGcpO2Zvcih2YXIgdWU9MDt1ZTxqLmxlbmd0aDt1ZSs9''@;'; + put 'put ''MSl7dmFyIF9lPWQudG9WaXN1YWxSb3coalt1ZV0pO3YubW92ZVJvdyhfZSxqW3VlXSl9ZC5yZW5kZXIoKSxkLmRlc2VsZWN0Q2VsbCgpLGQuc2VsZWN0Um93cyh0aGlzLnJvd3NbMF0sdGhpcy5yb3dzWzBdK3RoaXMucm93cy5sZW5ndGgtMSl9LFZvLlJvd01vdmVBY3Rpb24ucHJvdG90eXBl''@;'; + put 'put ''LnJlZG89ZnVuY3Rpb24oZCxnKXt2YXIgaD1kLmdldFBsdWdpbigibWFudWFsUm93TW92ZSIpO2QuYWRkSG9va09uY2UoImFmdGVyVmlld1JlbmRlciIsZyksaC5tb3ZlUm93cyh0aGlzLnJvd3Muc2xpY2UoKSx0aGlzLmZpbmFsSW5kZXgpLGQucmVuZGVyKCksZC5kZXNlbGVjdENlbGwoKSxk''@;'; + put 'put ''LnNlbGVjdFJvd3ModGhpcy5maW5hbEluZGV4LHRoaXMuZmluYWxJbmRleCt0aGlzLnJvd3MubGVuZ3RoLTEpfSxWby5wcm90b3R5cGUuaW5pdD1mdW5jdGlvbigpe3ZhciBkPXRoaXMuaW5zdGFuY2UuZ2V0U2V0dGluZ3MoKS51bmRvLGc9dm9pZCAwPT09ZHx8ZDt0aGlzLmluc3RhbmNlLnVu''@;'; + put 'put ''ZG9SZWRvfHwodGhpcy5pbnN0YW5jZS51bmRvUmVkbz10aGlzKSxnP3RoaXMuaW5zdGFuY2UudW5kb1JlZG8uZW5hYmxlKCk6dGhpcy5pbnN0YW5jZS51bmRvUmVkby5kaXNhYmxlKCl9LFZvLnByb3RvdHlwZS5yZWdpc3RlclNob3J0Y3V0cz1mdW5jdGlvbigpe3ZhciBkPXRoaXM7dGhpcy5p''@;'; + put 'put ''bnN0YW5jZS5nZXRTaG9ydGN1dE1hbmFnZXIoKS5nZXRDb250ZXh0KCJncmlkIikuYWRkU2hvcnRjdXRzKFt7a2V5czpbWyJDb250cm9sL01ldGEiLCJ6Il1dLGNhbGxiYWNrOmZ1bmN0aW9uKCl7ZC51bmRvKCl9fSx7a2V5czpbWyJDb250cm9sL01ldGEiLCJ5Il0sWyJDb250cm9sL01ldGEi''@;'; + put 'put ''LCJTaGlmdCIsInoiXV0sY2FsbGJhY2s6ZnVuY3Rpb24oKXtkLnJlZG8oKX19XSx7cnVuT25seUlmOmZ1bmN0aW9uKEkpe3JldHVybiFJLmFsdEtleX0sZ3JvdXA6InVuZG9SZWRvIn0pfSxWby5wcm90b3R5cGUudW5yZWdpc3RlclNob3J0Y3V0cz1mdW5jdGlvbigpe3RoaXMuaW5zdGFuY2Uu''@;'; + put 'put ''Z2V0U2hvcnRjdXRNYW5hZ2VyKCkuZ2V0Q29udGV4dCgiZ3JpZCIpLnJlbW92ZVNob3J0Y3V0c0J5R3JvdXAoInVuZG9SZWRvIil9O3ZhciBqej16by5nZXRTaW5nbGV0b24oKTtqei5hZGQoImFmdGVyVXBkYXRlU2V0dGluZ3MiLGZ1bmN0aW9uKCl7dmFyIGQ7bnVsbD09PShkPXRoaXMuZ2V0''@;'; + put 'put ''UGx1Z2luKCJ1bmRvUmVkbyIpKXx8dm9pZCAwPT09ZHx8ZC5pbml0KCl9KSxqei5yZWdpc3RlcigiYmVmb3JlVW5kbyIpLGp6LnJlZ2lzdGVyKCJhZnRlclVuZG8iKSxqei5yZWdpc3RlcigiYmVmb3JlUmVkbyIpLGp6LnJlZ2lzdGVyKCJhZnRlclJlZG8iKSxWby5QTFVHSU5fS0VZPSJ1bmRv''@;'; + put 'put ''UmVkbyIsVm8uU0VUVElOR19LRVlTPSEwO2NvbnN0IHY1dD1WbztmdW5jdGlvbiB2TGUoKXsoZnVuY3Rpb24gWnR0KCl7dWQoQ08pLHVkKHc2ZSksdWQoWFNlKSx1ZChlTWUpLHVkKEU2ZSksdWQoZzZlKSx1ZChyTWUpLHVkKG9NZSksdWQoTHR0KSx1ZChIUyksdWQodU1lKX0pKCksZnVuY3Rp''@;'; + put 'put ''b24gbm50KCl7TWcoVE8pLE1nKGh6KSxNZyhGNmUpLE1nKFA2ZSksTWcoTjZlKSxNZyhWNmUpLE1nKEJ3KSxNZyhqNmUpfSgpLGZ1bmN0aW9uIHVudCgpe3BPKGR6KSxwTyhNdGUpLHBPKFo2ZSkscE8oRXRlKX0oKSxmdW5jdGlvbiBNbnQoKXtrOChmbnQpLGs4KGRudCksazgoZ250KSxrOCh2''@;'; + put 'put ''bnQpLGs4KHludCksazgoYm50KSxrOChDbnQpLGs4KFpTZSksazgoU250KX0oKSxmdW5jdGlvbiBBNXQoKXtMcyhjcnQpLExzKE9ydCksTHMoSnJ0KSxMcyhQaXQpLExzKGUwdCksTHMod0VlKSxMcyhtb3QpLExzKEdvdCksTHMoSkVlKSxMcyhobHQpLExzKEZsdCksTHMoWWx0KSxMcyhneGUp''@;'; + put 'put ''LExzKEhzdCksTHMoemN0KSxMcyh5ZnQpLExzKFpmdCksTHMoZmh0KSxMcyhMaHQpLExzKGgzdCksTHMoYjN0KSxMcyh0ZHQpLExzKGNkdCksTHMoWGR0KSxMcyhnNHQpLExzKE00dCksTHMoUXB0KSxMcyhuOHQpLExzKG04dCksTHMoUjh0KSxMcyhXOHQpLExzKHQ1dCksTHModjV0KX0oKX1j''@;'; + put 'put ''bGFzcyB2bWV7Y29uc3RydWN0b3IoZyl7dGhpcy5yYXdGaWxlPWc7bGV0IHY9ZnVuY3Rpb24geTV0KGQpe3JldHVybiEoIWR8fCEoZC5ub2RlTmFtZXx8ZC5wcm9wJiZkLmF0dHImJmQuZmluZCkpfShnKT9nLnZhbHVlOmc7dGhpc1siX2NyZWF0ZUZyb20iKygic3RyaW5nIj09dHlwZW9mIHY/''@;'; + put 'put ''IkZha2VQYXRoIjoiT2JqZWN0IildKHYpfV9jcmVhdGVGcm9tRmFrZVBhdGgoZyl7dGhpcy5sYXN0TW9kaWZpZWREYXRlPXZvaWQgMCx0aGlzLnNpemU9dm9pZCAwLHRoaXMudHlwZT0ibGlrZS8iK2cuc2xpY2UoZy5sYXN0SW5kZXhPZigiLiIpKzEpLnRvTG93ZXJDYXNlKCksdGhpcy5uYW1l''@;'; + put 'put ''PWcuc2xpY2UoZy5sYXN0SW5kZXhPZigiLyIpK2cubGFzdEluZGV4T2YoIlxcIikrMil9X2NyZWF0ZUZyb21PYmplY3QoZyl7dGhpcy5zaXplPWcuc2l6ZSx0aGlzLnR5cGU9Zy50eXBlLHRoaXMubmFtZT1nLm5hbWV9fWNsYXNzIHc1dHtjb25zdHJ1Y3RvcihnLGgsdil7dGhpcy51cmw9Ii8i''@;'; + put 'put ''LHRoaXMuaGVhZGVycz1bXSx0aGlzLndpdGhDcmVkZW50aWFscz0hMCx0aGlzLmZvcm1EYXRhPVtdLHRoaXMuaXNSZWFkeT0hMSx0aGlzLmlzVXBsb2FkaW5nPSExLHRoaXMuaXNVcGxvYWRlZD0hMSx0aGlzLmlzU3VjY2Vzcz0hMSx0aGlzLmlzQ2FuY2VsPSExLHRoaXMuaXNFcnJvcj0hMSx0''@;'; + put 'put ''aGlzLnByb2dyZXNzPTAsdGhpcy5pbmRleD12b2lkIDAsdGhpcy51cGxvYWRlcj1nLHRoaXMuc29tZT1oLHRoaXMub3B0aW9ucz12LHRoaXMuZmlsZT1uZXcgdm1lKGgpLHRoaXMuX2ZpbGU9aCxnLm9wdGlvbnMmJih0aGlzLm1ldGhvZD1nLm9wdGlvbnMubWV0aG9kfHwiUE9TVCIsdGhpcy5h''@;'; + put 'put ''bGlhcz1nLm9wdGlvbnMuaXRlbUFsaWFzfHwiZmlsZSIpLHRoaXMudXJsPWcub3B0aW9ucy51cmx9dXBsb2FkKCl7dHJ5e3RoaXMudXBsb2FkZXIudXBsb2FkSXRlbSh0aGlzKX1jYXRjaChnKXt0aGlzLnVwbG9hZGVyLl9vbkNvbXBsZXRlSXRlbSh0aGlzLCIiLDAse30pLHRoaXMudXBsb2Fk''@;'; + put 'put ''ZXIuX29uRXJyb3JJdGVtKHRoaXMsIiIsMCx7fSl9fWNhbmNlbCgpe3RoaXMudXBsb2FkZXIuY2FuY2VsSXRlbSh0aGlzKX1yZW1vdmUoKXt0aGlzLnVwbG9hZGVyLnJlbW92ZUZyb21RdWV1ZSh0aGlzKX1vbkJlZm9yZVVwbG9hZCgpe31vbkJ1aWxkRm9ybShnKXtyZXR1cm57Zm9ybTpnfX1v''@;'; + put 'put ''blByb2dyZXNzKGcpe3JldHVybntwcm9ncmVzczpnfX1vblN1Y2Nlc3MoZyxoLHYpe3JldHVybntyZXNwb25zZTpnLHN0YXR1czpoLGhlYWRlcnM6dn19b25FcnJvcihnLGgsdil7cmV0dXJue3Jlc3BvbnNlOmcsc3RhdHVzOmgsaGVhZGVyczp2fX1vbkNhbmNlbChnLGgsdil7cmV0dXJue3Jl''@;'; + put 'put ''c3BvbnNlOmcsc3RhdHVzOmgsaGVhZGVyczp2fX1vbkNvbXBsZXRlKGcsaCx2KXtyZXR1cm57cmVzcG9uc2U6ZyxzdGF0dXM6aCxoZWFkZXJzOnZ9fV9vbkJlZm9yZVVwbG9hZCgpe3RoaXMuaXNSZWFkeT0hMCx0aGlzLmlzVXBsb2FkaW5nPSEwLHRoaXMuaXNVcGxvYWRlZD0hMSx0aGlzLmlz''@;'; + put 'put ''U3VjY2Vzcz0hMSx0aGlzLmlzQ2FuY2VsPSExLHRoaXMuaXNFcnJvcj0hMSx0aGlzLnByb2dyZXNzPTAsdGhpcy5vbkJlZm9yZVVwbG9hZCgpfV9vbkJ1aWxkRm9ybShnKXt0aGlzLm9uQnVpbGRGb3JtKGcpfV9vblByb2dyZXNzKGcpe3RoaXMucHJvZ3Jlc3M9Zyx0aGlzLm9uUHJvZ3Jlc3Mo''@;'; + put 'put ''Zyl9X29uU3VjY2VzcyhnLGgsdil7dGhpcy5pc1JlYWR5PSExLHRoaXMuaXNVcGxvYWRpbmc9ITEsdGhpcy5pc1VwbG9hZGVkPSEwLHRoaXMuaXNTdWNjZXNzPSEwLHRoaXMuaXNDYW5jZWw9ITEsdGhpcy5pc0Vycm9yPSExLHRoaXMucHJvZ3Jlc3M9MTAwLHRoaXMuaW5kZXg9dm9pZCAwLHRo''@;'; + put 'put ''aXMub25TdWNjZXNzKGcsaCx2KX1fb25FcnJvcihnLGgsdil7dGhpcy5pc1JlYWR5PSExLHRoaXMuaXNVcGxvYWRpbmc9ITEsdGhpcy5pc1VwbG9hZGVkPSEwLHRoaXMuaXNTdWNjZXNzPSExLHRoaXMuaXNDYW5jZWw9ITEsdGhpcy5pc0Vycm9yPSEwLHRoaXMucHJvZ3Jlc3M9MCx0aGlzLmlu''@;'; + put 'put ''ZGV4PXZvaWQgMCx0aGlzLm9uRXJyb3IoZyxoLHYpfV9vbkNhbmNlbChnLGgsdil7dGhpcy5pc1JlYWR5PSExLHRoaXMuaXNVcGxvYWRpbmc9ITEsdGhpcy5pc1VwbG9hZGVkPSExLHRoaXMuaXNTdWNjZXNzPSExLHRoaXMuaXNDYW5jZWw9ITAsdGhpcy5pc0Vycm9yPSExLHRoaXMucHJvZ3Jl''@;'; + put 'put ''c3M9MCx0aGlzLmluZGV4PXZvaWQgMCx0aGlzLm9uQ2FuY2VsKGcsaCx2KX1fb25Db21wbGV0ZShnLGgsdil7dGhpcy5vbkNvbXBsZXRlKGcsaCx2KSx0aGlzLnVwbG9hZGVyLm9wdGlvbnMucmVtb3ZlQWZ0ZXJVcGxvYWQmJnRoaXMucmVtb3ZlKCl9X3ByZXBhcmVUb1VwbG9hZGluZygpe3Ro''@;'; + put 'put ''aXMuaW5kZXg9dGhpcy5pbmRleHx8Kyt0aGlzLnVwbG9hZGVyLl9uZXh0SW5kZXgsdGhpcy5pc1JlYWR5PSEwfX1sZXQgYjV0PSgoKT0+e2NsYXNzIGR7c3RhdGljIGdldE1pbWVDbGFzcyhoKXtsZXQgdj0iYXBwbGljYXRpb24iO3JldHVybi0xIT09dGhpcy5taW1lX3BzZC5pbmRleE9mKGgu''@;'; + put 'put ''dHlwZSl8fGgudHlwZS5tYXRjaCgiaW1hZ2UuKiIpP3Y9ImltYWdlIjpoLnR5cGUubWF0Y2goInZpZGVvLioiKT92PSJ2aWRlbyI6aC50eXBlLm1hdGNoKCJhdWRpby4qIik/dj0iYXVkaW8iOiJhcHBsaWNhdGlvbi9wZGYiPT09aC50eXBlP3Y9InBkZiI6LTEhPT10aGlzLm1pbWVfY29tcHJl''@;'; + put 'put ''c3MuaW5kZXhPZihoLnR5cGUpP3Y9ImNvbXByZXNzIjotMSE9PXRoaXMubWltZV9kb2MuaW5kZXhPZihoLnR5cGUpP3Y9ImRvYyI6LTEhPT10aGlzLm1pbWVfeHNsLmluZGV4T2YoaC50eXBlKT92PSJ4bHMiOi0xIT09dGhpcy5taW1lX3BwdC5pbmRleE9mKGgudHlwZSkmJih2PSJwcHQiKSwi''@;'; + put 'put ''YXBwbGljYXRpb24iPT09diYmKHY9dGhpcy5maWxlVHlwZURldGVjdGlvbihoLm5hbWUpKSx2fXN0YXRpYyBmaWxlVHlwZURldGVjdGlvbihoKXtsZXQgdj17anBnOiJpbWFnZSIsanBlZzoiaW1hZ2UiLHRpZjoiaW1hZ2UiLHBzZDoiaW1hZ2UiLGJtcDoiaW1hZ2UiLHBuZzoiaW1hZ2UiLG5l''@;'; + put 'put ''ZjoiaW1hZ2UiLHRpZmY6ImltYWdlIixjcjI6ImltYWdlIixkd2c6ImltYWdlIixjZHI6ImltYWdlIixhaToiaW1hZ2UiLGluZGQ6ImltYWdlIixwaW46ImltYWdlIixjZHA6ImltYWdlIixza3A6ImltYWdlIixzdHA6ImltYWdlIiwiM2RtIjoiaW1hZ2UiLG1wMzoiYXVkaW8iLHdhdjoiYXVk''@;'; + put 'put ''aW8iLHdtYToiYXVkaW8iLG1vZDoiYXVkaW8iLG00YToiYXVkaW8iLGNvbXByZXNzOiJjb21wcmVzcyIsemlwOiJjb21wcmVzcyIscmFyOiJjb21wcmVzcyIsIjd6IjoiY29tcHJlc3MiLGx6OiJjb21wcmVzcyIsejAxOiJjb21wcmVzcyIsYnoyOiJjb21wcmVzcyIsZ3o6ImNvbXByZXNzIixw''@;'; + put 'put ''ZGY6InBkZiIseGxzOiJ4bHMiLHhsc3g6InhscyIsb2RzOiJ4bHMiLG1wNDoidmlkZW8iLGF2aToidmlkZW8iLHdtdjoidmlkZW8iLG1wZzoidmlkZW8iLG10czoidmlkZW8iLGZsdjoidmlkZW8iLCIzZ3AiOiJ2aWRlbyIsdm9iOiJ2aWRlbyIsbTR2OiJ2aWRlbyIsbXBlZzoidmlkZW8iLG0y''@;'; + put 'put ''dHM6InZpZGVvIixtb3Y6InZpZGVvIixkb2M6ImRvYyIsZG9jeDoiZG9jIixlcHM6ImRvYyIsdHh0OiJkb2MiLG9kdDoiZG9jIixydGY6ImRvYyIscHB0OiJwcHQiLHBwdHg6InBwdCIscHBzOiJwcHQiLHBwc3g6InBwdCIsb2RwOiJwcHQifSx5PWguc3BsaXQoIi4iKTtpZih5Lmxlbmd0aDwy''@;'; + put 'put ''KXJldHVybiJhcHBsaWNhdGlvbiI7bGV0IEM9eVt5Lmxlbmd0aC0xXS50b0xvd2VyQ2FzZSgpO3JldHVybiB2b2lkIDA9PT12W0NdPyJhcHBsaWNhdGlvbiI6dltDXX19cmV0dXJuIGQubWltZV9kb2M9WyJhcHBsaWNhdGlvbi9tc3dvcmQiLCJhcHBsaWNhdGlvbi9tc3dvcmQiLCJhcHBsaWNh''@;'; + put 'put ''dGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQud29yZHByb2Nlc3NpbmdtbC5kb2N1bWVudCIsImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLnRlbXBsYXRlIiwiYXBwbGljYXRpb24vdm5kLm1zLXdvcmQu''@;'; + put 'put ''ZG9jdW1lbnQubWFjcm9FbmFibGVkLjEyIiwiYXBwbGljYXRpb24vdm5kLm1zLXdvcmQudGVtcGxhdGUubWFjcm9FbmFibGVkLjEyIl0sZC5taW1lX3hzbD1bImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbCIsImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbCIsImFwcGxpY2F0aW9uL3ZuZC5tcy1l''@;'; + put 'put ''eGNlbCIsImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0IiwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwudGVtcGxhdGUiLCJhcHBsaWNhdGlvbi92bmQubXMt''@;'; + put 'put ''ZXhjZWwuc2hlZXQubWFjcm9FbmFibGVkLjEyIiwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLnRlbXBsYXRlLm1hY3JvRW5hYmxlZC4xMiIsImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC5hZGRpbi5tYWNyb0VuYWJsZWQuMTIiLCJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwuc2hlZXQuYmlu''@;'; + put 'put ''YXJ5Lm1hY3JvRW5hYmxlZC4xMiJdLGQubWltZV9wcHQ9WyJhcHBsaWNhdGlvbi92bmQubXMtcG93ZXJwb2ludCIsImFwcGxpY2F0aW9uL3ZuZC5tcy1wb3dlcnBvaW50IiwiYXBwbGljYXRpb24vdm5kLm1zLXBvd2VycG9pbnQiLCJhcHBsaWNhdGlvbi92bmQubXMtcG93ZXJwb2ludCIsImFw''@;'; + put 'put ''cGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC5wcmVzZW50YXRpb24iLCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQucHJlc2VudGF0aW9ubWwudGVtcGxhdGUiLCJhcHBsaWNhdGlvbi92bmQub3Bl''@;'; + put 'put ''bnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQucHJlc2VudGF0aW9ubWwuc2xpZGVzaG93IiwiYXBwbGljYXRpb24vdm5kLm1zLXBvd2VycG9pbnQuYWRkaW4ubWFjcm9FbmFibGVkLjEyIiwiYXBwbGljYXRpb24vdm5kLm1zLXBvd2VycG9pbnQucHJlc2VudGF0aW9uLm1hY3JvRW5hYmxlZC4x''@;'; + put 'put ''MiIsImFwcGxpY2F0aW9uL3ZuZC5tcy1wb3dlcnBvaW50LnByZXNlbnRhdGlvbi5tYWNyb0VuYWJsZWQuMTIiLCJhcHBsaWNhdGlvbi92bmQubXMtcG93ZXJwb2ludC5zbGlkZXNob3cubWFjcm9FbmFibGVkLjEyIl0sZC5taW1lX3BzZD1bImltYWdlL3Bob3Rvc2hvcCIsImltYWdlL3gtcGhv''@;'; + put 'put ''dG9zaG9wIiwiaW1hZ2UvcHNkIiwiYXBwbGljYXRpb24vcGhvdG9zaG9wIiwiYXBwbGljYXRpb24vcHNkIiwienotYXBwbGljYXRpb24venotd2luYXNzb2MtcHNkIl0sZC5taW1lX2NvbXByZXNzPVsiYXBwbGljYXRpb24veC1ndGFyIiwiYXBwbGljYXRpb24veC1nY29tcHJlc3MiLCJhcHBs''@;'; + put 'put ''aWNhdGlvbi9jb21wcmVzcyIsImFwcGxpY2F0aW9uL3gtdGFyIiwiYXBwbGljYXRpb24veC1yYXItY29tcHJlc3NlZCIsImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSIsImFwcGxpY2F0aW9uL3gtemlwLWNvbXByZXNzZWQiLCJhcHBsaWNhdGlvbi96aXAtY29tcHJlc3NlZCIsImFwcGxpY2F0''@;'; + put 'put ''aW9uL3gtN3otY29tcHJlc3NlZCIsImFwcGxpY2F0aW9uL2d6aXAiLCJhcHBsaWNhdGlvbi94LWJ6aXAyIl0sZH0pKCk7Y2xhc3MgQzV0e2NvbnN0cnVjdG9yKGcpe3RoaXMuaXNVcGxvYWRpbmc9ITEsdGhpcy5xdWV1ZT1bXSx0aGlzLnByb2dyZXNzPTAsdGhpcy5fbmV4dEluZGV4PTAsdGhp''@;'; + put 'put ''cy5vcHRpb25zPXthdXRvVXBsb2FkOiExLGlzSFRNTDU6ITAsZmlsdGVyczpbXSxyZW1vdmVBZnRlclVwbG9hZDohMSxkaXNhYmxlTXVsdGlwYXJ0OiExLGZvcm1hdERhdGFGdW5jdGlvbjpoPT5oLl9maWxlLGZvcm1hdERhdGFGdW5jdGlvbklzQXN5bmM6ITF9LHRoaXMuc2V0T3B0aW9ucyhn''@;'; + put 'put ''KSx0aGlzLnJlc3BvbnNlPW5ldyBhcn1zZXRPcHRpb25zKGcpe3RoaXMub3B0aW9ucz1PYmplY3QuYXNzaWduKHRoaXMub3B0aW9ucyxnKSx0aGlzLmF1dGhUb2tlbj10aGlzLm9wdGlvbnMuYXV0aFRva2VuLHRoaXMuYXV0aFRva2VuSGVhZGVyPXRoaXMub3B0aW9ucy5hdXRoVG9rZW5IZWFk''@;'; + put 'put ''ZXJ8fCJBdXRob3JpemF0aW9uIix0aGlzLmF1dG9VcGxvYWQ9dGhpcy5vcHRpb25zLmF1dG9VcGxvYWQsdGhpcy5vcHRpb25zLmZpbHRlcnMudW5zaGlmdCh7bmFtZToicXVldWVMaW1pdCIsZm46dGhpcy5fcXVldWVMaW1pdEZpbHRlcn0pLHRoaXMub3B0aW9ucy5tYXhGaWxlU2l6ZSYmdGhp''@;'; + put 'put ''cy5vcHRpb25zLmZpbHRlcnMudW5zaGlmdCh7bmFtZToiZmlsZVNpemUiLGZuOnRoaXMuX2ZpbGVTaXplRmlsdGVyfSksdGhpcy5vcHRpb25zLmFsbG93ZWRGaWxlVHlwZSYmdGhpcy5vcHRpb25zLmZpbHRlcnMudW5zaGlmdCh7bmFtZToiZmlsZVR5cGUiLGZuOnRoaXMuX2ZpbGVUeXBlRmls''@;'; + put 'put ''dGVyfSksdGhpcy5vcHRpb25zLmFsbG93ZWRNaW1lVHlwZSYmdGhpcy5vcHRpb25zLmZpbHRlcnMudW5zaGlmdCh7bmFtZToibWltZVR5cGUiLGZuOnRoaXMuX21pbWVUeXBlRmlsdGVyfSk7Zm9yKGxldCBoPTA7aDx0aGlzLnF1ZXVlLmxlbmd0aDtoKyspdGhpcy5xdWV1ZVtoXS51cmw9dGhp''@;'; + put 'put ''cy5vcHRpb25zLnVybH1hZGRUb1F1ZXVlKGcsaCx2KXtsZXQgeT1bXTtmb3IobGV0IHVlIG9mIGcpeS5wdXNoKHVlKTtsZXQgQz10aGlzLl9nZXRGaWx0ZXJzKHYpLEk9dGhpcy5xdWV1ZS5sZW5ndGgsaj1bXTt5Lm1hcCh1ZT0+e2h8fChoPXRoaXMub3B0aW9ucyk7bGV0IF9lPW5ldyB2bWUo''@;'; + put 'put ''dWUpO2lmKHRoaXMuX2lzVmFsaWRGaWxlKF9lLEMsaCkpe2xldCBCZT1uZXcgdzV0KHRoaXMsdWUsaCk7ai5wdXNoKEJlKSx0aGlzLnF1ZXVlLnB1c2goQmUpLHRoaXMuX29uQWZ0ZXJBZGRpbmdGaWxlKEJlKX1lbHNlIHRoaXMuX29uV2hlbkFkZGluZ0ZpbGVGYWlsZWQoX2UsQ1t0aGlzLl9m''@;'; + put 'put ''YWlsRmlsdGVySW5kZXhdLGgpfSksdGhpcy5xdWV1ZS5sZW5ndGghPT1JJiYodGhpcy5fb25BZnRlckFkZGluZ0FsbChqKSx0aGlzLnByb2dyZXNzPXRoaXMuX2dldFRvdGFsUHJvZ3Jlc3MoKSksdGhpcy5fcmVuZGVyKCksdGhpcy5vcHRpb25zLmF1dG9VcGxvYWQmJnRoaXMudXBsb2FkQWxs''@;'; + put 'put ''KCl9cmVtb3ZlRnJvbVF1ZXVlKGcpe2xldCBoPXRoaXMuZ2V0SW5kZXhPZkl0ZW0oZyksdj10aGlzLnF1ZXVlW2hdO3YuaXNVcGxvYWRpbmcmJnYuY2FuY2VsKCksdGhpcy5xdWV1ZS5zcGxpY2UoaCwxKSx0aGlzLnByb2dyZXNzPXRoaXMuX2dldFRvdGFsUHJvZ3Jlc3MoKX1jbGVhclF1ZXVl''@;'; + put 'put ''KCl7Zm9yKDt0aGlzLnF1ZXVlLmxlbmd0aDspdGhpcy5xdWV1ZVswXS5yZW1vdmUoKTt0aGlzLnByb2dyZXNzPTB9dXBsb2FkSXRlbShnKXtsZXQgaD10aGlzLmdldEluZGV4T2ZJdGVtKGcpLHY9dGhpcy5xdWV1ZVtoXSx5PXRoaXMub3B0aW9ucy5pc0hUTUw1PyJfeGhyVHJhbnNwb3J0Ijoi''@;'; + put 'put ''X2lmcmFtZVRyYW5zcG9ydCI7di5fcHJlcGFyZVRvVXBsb2FkaW5nKCksIXRoaXMuaXNVcGxvYWRpbmcmJih0aGlzLmlzVXBsb2FkaW5nPSEwLHRoaXNbeV0odikpfWNhbmNlbEl0ZW0oZyl7bGV0IGg9dGhpcy5nZXRJbmRleE9mSXRlbShnKSx2PXRoaXMucXVldWVbaF07diYmdi5pc1VwbG9h''@;'; + put 'put ''ZGluZyYmKHRoaXMub3B0aW9ucy5pc0hUTUw1P3YuX3hocjp2Ll9mb3JtKS5hYm9ydCgpfXVwbG9hZEFsbCgpe2xldCBnPXRoaXMuZ2V0Tm90VXBsb2FkZWRJdGVtcygpLmZpbHRlcihoPT4haC5pc1VwbG9hZGluZyk7IWcubGVuZ3RofHwoZy5tYXAoaD0+aC5fcHJlcGFyZVRvVXBsb2FkaW5n''@;'; + put 'put ''KCkpLGdbMF0udXBsb2FkKCkpfWNhbmNlbEFsbCgpe3RoaXMuZ2V0Tm90VXBsb2FkZWRJdGVtcygpLm1hcChoPT5oLmNhbmNlbCgpKX1pc0ZpbGUoZyl7cmV0dXJuIGZ1bmN0aW9uIF81dChkKXtyZXR1cm4gRmlsZSYmZCBpbnN0YW5jZW9mIEZpbGV9KGcpfWlzRmlsZUxpa2VPYmplY3QoZyl7''@;'; + put 'put ''cmV0dXJuIGcgaW5zdGFuY2VvZiB2bWV9Z2V0SW5kZXhPZkl0ZW0oZyl7cmV0dXJuIm51bWJlciI9PXR5cGVvZiBnP2c6dGhpcy5xdWV1ZS5pbmRleE9mKGcpfWdldE5vdFVwbG9hZGVkSXRlbXMoKXtyZXR1cm4gdGhpcy5xdWV1ZS5maWx0ZXIoZz0+IWcuaXNVcGxvYWRlZCl9Z2V0UmVhZHlJ''@;'; + put 'put ''dGVtcygpe3JldHVybiB0aGlzLnF1ZXVlLmZpbHRlcihnPT5nLmlzUmVhZHkmJiFnLmlzVXBsb2FkaW5nKS5zb3J0KChnLGgpPT5nLmluZGV4LWguaW5kZXgpfWRlc3Ryb3koKXt9b25BZnRlckFkZGluZ0FsbChnKXtyZXR1cm57ZmlsZUl0ZW1zOmd9fW9uQnVpbGRJdGVtRm9ybShnLGgpe3Jl''@;'; + put 'put ''dHVybntmaWxlSXRlbTpnLGZvcm06aH19b25BZnRlckFkZGluZ0ZpbGUoZyl7cmV0dXJue2ZpbGVJdGVtOmd9fW9uV2hlbkFkZGluZ0ZpbGVGYWlsZWQoZyxoLHYpe3JldHVybntpdGVtOmcsZmlsdGVyOmgsb3B0aW9uczp2fX1vbkJlZm9yZVVwbG9hZEl0ZW0oZyl7cmV0dXJue2ZpbGVJdGVt''@;'; + put 'put ''Omd9fW9uUHJvZ3Jlc3NJdGVtKGcsaCl7cmV0dXJue2ZpbGVJdGVtOmcscHJvZ3Jlc3M6aH19b25Qcm9ncmVzc0FsbChnKXtyZXR1cm57cHJvZ3Jlc3M6Z319b25TdWNjZXNzSXRlbShnLGgsdix5KXtyZXR1cm57aXRlbTpnLHJlc3BvbnNlOmgsc3RhdHVzOnYsaGVhZGVyczp5fX1vbkVycm9y''@;'; + put 'put ''SXRlbShnLGgsdix5KXtyZXR1cm57aXRlbTpnLHJlc3BvbnNlOmgsc3RhdHVzOnYsaGVhZGVyczp5fX1vbkNhbmNlbEl0ZW0oZyxoLHYseSl7cmV0dXJue2l0ZW06ZyxyZXNwb25zZTpoLHN0YXR1czp2LGhlYWRlcnM6eX19b25Db21wbGV0ZUl0ZW0oZyxoLHYseSl7cmV0dXJue2l0ZW06Zyxy''@;'; + put 'put ''ZXNwb25zZTpoLHN0YXR1czp2LGhlYWRlcnM6eX19b25Db21wbGV0ZUFsbCgpe31fbWltZVR5cGVGaWx0ZXIoZyl7cmV0dXJuISh0aGlzLm9wdGlvbnMuYWxsb3dlZE1pbWVUeXBlJiYtMT09PXRoaXMub3B0aW9ucy5hbGxvd2VkTWltZVR5cGUuaW5kZXhPZihnLnR5cGUpKX1fZmlsZVNpemVG''@;'; + put 'put ''aWx0ZXIoZyl7cmV0dXJuISh0aGlzLm9wdGlvbnMubWF4RmlsZVNpemUmJmcuc2l6ZT50aGlzLm9wdGlvbnMubWF4RmlsZVNpemUpfV9maWxlVHlwZUZpbHRlcihnKXtyZXR1cm4hKHRoaXMub3B0aW9ucy5hbGxvd2VkRmlsZVR5cGUmJi0xPT09dGhpcy5vcHRpb25zLmFsbG93ZWRGaWxlVHlw''@;'; + put 'put ''ZS5pbmRleE9mKGI1dC5nZXRNaW1lQ2xhc3MoZykpKX1fb25FcnJvckl0ZW0oZyxoLHYseSl7Zy5fb25FcnJvcihoLHYseSksdGhpcy5vbkVycm9ySXRlbShnLGgsdix5KX1fb25Db21wbGV0ZUl0ZW0oZyxoLHYseSl7Zy5fb25Db21wbGV0ZShoLHYseSksdGhpcy5vbkNvbXBsZXRlSXRlbShn''@;'; + put 'put ''LGgsdix5KTtsZXQgQz10aGlzLmdldFJlYWR5SXRlbXMoKVswXTt0aGlzLmlzVXBsb2FkaW5nPSExLEM/Qy51cGxvYWQoKToodGhpcy5vbkNvbXBsZXRlQWxsKCksdGhpcy5wcm9ncmVzcz10aGlzLl9nZXRUb3RhbFByb2dyZXNzKCksdGhpcy5fcmVuZGVyKCkpfV9oZWFkZXJzR2V0dGVyKGcp''@;'; + put 'put ''e3JldHVybiBoPT5oP2dbaC50b0xvd2VyQ2FzZSgpXXx8dm9pZCAwOmd9X3hoclRyYW5zcG9ydChnKXtsZXQgeSxoPXRoaXMsdj1nLl94aHI9bmV3IFhNTEh0dHBSZXF1ZXN0O2lmKHRoaXMuX29uQmVmb3JlVXBsb2FkSXRlbShnKSwibnVtYmVyIiE9dHlwZW9mIGcuX2ZpbGUuc2l6ZSl0aHJv''@;'; + put 'put ''dyBuZXcgVHlwZUVycm9yKCJUaGUgZmlsZSBzcGVjaWZpZWQgaXMgbm8gbG9uZ2VyIHZhbGlkIik7aWYodGhpcy5vcHRpb25zLmRpc2FibGVNdWx0aXBhcnQpeT10aGlzLm9wdGlvbnMuZm9ybWF0RGF0YUZ1bmN0aW9uKGcpO2Vsc2V7eT1uZXcgRm9ybURhdGEsdGhpcy5fb25CdWlsZEl0ZW1G''@;'; + put 'put ''b3JtKGcseSk7Y29uc3QgQz0oKT0+eS5hcHBlbmQoZy5hbGlhcyxnLl9maWxlLGcuZmlsZS5uYW1lKTt0aGlzLm9wdGlvbnMucGFyYW1ldGVyc0JlZm9yZUZpbGVzfHxDKCksdm9pZCAwIT09dGhpcy5vcHRpb25zLmFkZGl0aW9uYWxQYXJhbWV0ZXImJk9iamVjdC5rZXlzKHRoaXMub3B0aW9u''@;'; + put 'put ''cy5hZGRpdGlvbmFsUGFyYW1ldGVyKS5mb3JFYWNoKEk9PntsZXQgaj10aGlzLm9wdGlvbnMuYWRkaXRpb25hbFBhcmFtZXRlcltJXTsic3RyaW5nIj09dHlwZW9mIGomJmouaW5kZXhPZigie3tmaWxlX25hbWV9fSIpPj0wJiYoaj1qLnJlcGxhY2UoInt7ZmlsZV9uYW1lfX0iLGcuZmlsZS5u''@;'; + put 'put ''YW1lKSkseS5hcHBlbmQoSSxqKX0pLHRoaXMub3B0aW9ucy5wYXJhbWV0ZXJzQmVmb3JlRmlsZXMmJkMoKX1pZih2LnVwbG9hZC5vbnByb2dyZXNzPUM9PntsZXQgST1NYXRoLnJvdW5kKEMubGVuZ3RoQ29tcHV0YWJsZT8xMDAqQy5sb2FkZWQvQy50b3RhbDowKTt0aGlzLl9vblByb2dyZXNz''@;'; + put 'put ''SXRlbShnLEkpfSx2Lm9ubG9hZD0oKT0+e2xldCBDPXRoaXMuX3BhcnNlSGVhZGVycyh2LmdldEFsbFJlc3BvbnNlSGVhZGVycygpKSxJPXRoaXMuX3RyYW5zZm9ybVJlc3BvbnNlKHYucmVzcG9uc2UsQyk7dGhpc1siX29uIisodGhpcy5faXNTdWNjZXNzQ29kZSh2LnN0YXR1cyk/IlN1Y2Nl''@;'; + put 'put ''c3MiOiJFcnJvciIpKyJJdGVtIl0oZyxJLHYuc3RhdHVzLEMpLHRoaXMuX29uQ29tcGxldGVJdGVtKGcsSSx2LnN0YXR1cyxDKX0sdi5vbmVycm9yPSgpPT57bGV0IEM9dGhpcy5fcGFyc2VIZWFkZXJzKHYuZ2V0QWxsUmVzcG9uc2VIZWFkZXJzKCkpLEk9dGhpcy5fdHJhbnNmb3JtUmVzcG9u''@;'; + put 'put ''c2Uodi5yZXNwb25zZSxDKTt0aGlzLl9vbkVycm9ySXRlbShnLEksdi5zdGF0dXMsQyksdGhpcy5fb25Db21wbGV0ZUl0ZW0oZyxJLHYuc3RhdHVzLEMpfSx2Lm9uYWJvcnQ9KCk9PntsZXQgQz10aGlzLl9wYXJzZUhlYWRlcnModi5nZXRBbGxSZXNwb25zZUhlYWRlcnMoKSksST10aGlzLl90''@;'; + put 'put ''cmFuc2Zvcm1SZXNwb25zZSh2LnJlc3BvbnNlLEMpO3RoaXMuX29uQ2FuY2VsSXRlbShnLEksdi5zdGF0dXMsQyksdGhpcy5fb25Db21wbGV0ZUl0ZW0oZyxJLHYuc3RhdHVzLEMpfSx2Lm9wZW4oZy5tZXRob2QsZy51cmwsITApLHYud2l0aENyZWRlbnRpYWxzPWcud2l0aENyZWRlbnRpYWxz''@;'; + put 'put ''LHRoaXMub3B0aW9ucy5oZWFkZXJzKWZvcihsZXQgQyBvZiB0aGlzLm9wdGlvbnMuaGVhZGVycyl2LnNldFJlcXVlc3RIZWFkZXIoQy5uYW1lLEMudmFsdWUpO2lmKGcuaGVhZGVycy5sZW5ndGgpZm9yKGxldCBDIG9mIGcuaGVhZGVycyl2LnNldFJlcXVlc3RIZWFkZXIoQy5uYW1lLEMudmFs''@;'; + put 'put ''dWUpO3RoaXMuYXV0aFRva2VuJiZ2LnNldFJlcXVlc3RIZWFkZXIodGhpcy5hdXRoVG9rZW5IZWFkZXIsdGhpcy5hdXRoVG9rZW4pLHYub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKCl7di5yZWFkeVN0YXRlPT1YTUxIdHRwUmVxdWVzdC5ET05FJiZoLnJlc3BvbnNlLmVtaXQodi5yZXNw''@;'; + put 'put ''b25zZVRleHQpfSx0aGlzLm9wdGlvbnMuZm9ybWF0RGF0YUZ1bmN0aW9uSXNBc3luYz95LnRoZW4oQz0+di5zZW5kKEpTT04uc3RyaW5naWZ5KEMpKSk6di5zZW5kKHkpLHRoaXMuX3JlbmRlcigpfV9nZXRUb3RhbFByb2dyZXNzKGc9MCl7aWYodGhpcy5vcHRpb25zLnJlbW92ZUFmdGVyVXBs''@;'; + put 'put ''b2FkKXJldHVybiBnO2xldCBoPXRoaXMuZ2V0Tm90VXBsb2FkZWRJdGVtcygpLmxlbmd0aCx5PTEwMC90aGlzLnF1ZXVlLmxlbmd0aDtyZXR1cm4gTWF0aC5yb3VuZCgoaD90aGlzLnF1ZXVlLmxlbmd0aC1oOnRoaXMucXVldWUubGVuZ3RoKSp5K2cqeS8xMDApfV9nZXRGaWx0ZXJzKGcpe2lm''@;'; + put 'put ''KCFnKXJldHVybiB0aGlzLm9wdGlvbnMuZmlsdGVycztpZihBcnJheS5pc0FycmF5KGcpKXJldHVybiBnO2lmKCJzdHJpbmciPT10eXBlb2YgZyl7bGV0IGg9Zy5tYXRjaCgvW15ccyxdKy9nKTtyZXR1cm4gdGhpcy5vcHRpb25zLmZpbHRlcnMuZmlsdGVyKHY9Pi0xIT09aC5pbmRleE9mKHYu''@;'; + put 'put ''bmFtZSkpfXJldHVybiB0aGlzLm9wdGlvbnMuZmlsdGVyc31fcmVuZGVyKCl7fV9xdWV1ZUxpbWl0RmlsdGVyKCl7cmV0dXJuIHZvaWQgMD09PXRoaXMub3B0aW9ucy5xdWV1ZUxpbWl0fHx0aGlzLnF1ZXVlLmxlbmd0aDx0aGlzLm9wdGlvbnMucXVldWVMaW1pdH1faXNWYWxpZEZpbGUoZyxo''@;'; + put 'put ''LHYpe3JldHVybiB0aGlzLl9mYWlsRmlsdGVySW5kZXg9LTEsIWgubGVuZ3RofHxoLmV2ZXJ5KHk9Pih0aGlzLl9mYWlsRmlsdGVySW5kZXgrKyx5LmZuLmNhbGwodGhpcyxnLHYpKSl9X2lzU3VjY2Vzc0NvZGUoZyl7cmV0dXJuIGc+PTIwMCYmZzwzMDB8fDMwND09PWd9X3RyYW5zZm9ybVJl''@;'; + put 'put ''c3BvbnNlKGcsaCl7cmV0dXJuIGd9X3BhcnNlSGVhZGVycyhnKXtsZXQgdix5LEMsaD17fTtyZXR1cm4gZyYmZy5zcGxpdCgiXG4iKS5tYXAoST0+e0M9SS5pbmRleE9mKCI6Iiksdj1JLnNsaWNlKDAsQykudHJpbSgpLnRvTG93ZXJDYXNlKCkseT1JLnNsaWNlKEMrMSkudHJpbSgpLHYmJiho''@;'; + put 'put ''W3ZdPWhbdl0/aFt2XSsiLCAiK3k6eSl9KSxofV9vbldoZW5BZGRpbmdGaWxlRmFpbGVkKGcsaCx2KXt0aGlzLm9uV2hlbkFkZGluZ0ZpbGVGYWlsZWQoZyxoLHYpfV9vbkFmdGVyQWRkaW5nRmlsZShnKXt0aGlzLm9uQWZ0ZXJBZGRpbmdGaWxlKGcpfV9vbkFmdGVyQWRkaW5nQWxsKGcpe3Ro''@;'; + put 'put ''aXMub25BZnRlckFkZGluZ0FsbChnKX1fb25CZWZvcmVVcGxvYWRJdGVtKGcpe2cuX29uQmVmb3JlVXBsb2FkKCksdGhpcy5vbkJlZm9yZVVwbG9hZEl0ZW0oZyl9X29uQnVpbGRJdGVtRm9ybShnLGgpe2cuX29uQnVpbGRGb3JtKGgpLHRoaXMub25CdWlsZEl0ZW1Gb3JtKGcsaCl9X29uUHJv''@;'; + put 'put ''Z3Jlc3NJdGVtKGcsaCl7bGV0IHY9dGhpcy5fZ2V0VG90YWxQcm9ncmVzcyhoKTt0aGlzLnByb2dyZXNzPXYsZy5fb25Qcm9ncmVzcyhoKSx0aGlzLm9uUHJvZ3Jlc3NJdGVtKGcsaCksdGhpcy5vblByb2dyZXNzQWxsKHYpLHRoaXMuX3JlbmRlcigpfV9vblN1Y2Nlc3NJdGVtKGcsaCx2LHkp''@;'; + put 'put ''e2cuX29uU3VjY2VzcyhoLHYseSksdGhpcy5vblN1Y2Nlc3NJdGVtKGcsaCx2LHkpfV9vbkNhbmNlbEl0ZW0oZyxoLHYseSl7Zy5fb25DYW5jZWwoaCx2LHkpLHRoaXMub25DYW5jZWxJdGVtKGcsaCx2LHkpfX1sZXQgazV0PSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCl7dGhpcy5vbkZp''@;'; + put 'put ''bGVTZWxlY3RlZD1uZXcgYXIsdGhpcy5lbGVtZW50PWh9Z2V0T3B0aW9ucygpe3JldHVybiB0aGlzLnVwbG9hZGVyLm9wdGlvbnN9Z2V0RmlsdGVycygpe3JldHVybnt9fWlzRW1wdHlBZnRlclNlbGVjdGlvbigpe3JldHVybiEhdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuYXR0cmlidXRl''@;'; + put 'put ''cy5tdWx0aXBsZX1vbkNoYW5nZSgpe2xldCBoPXRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LmZpbGVzLHY9dGhpcy5nZXRPcHRpb25zKCkseT10aGlzLmdldEZpbHRlcnMoKTt0aGlzLnVwbG9hZGVyLmFkZFRvUXVldWUoaCx2LHkpLHRoaXMub25GaWxlU2VsZWN0ZWQuZW1pdChoKSx0aGlz''@;'; + put 'put ''LmlzRW1wdHlBZnRlclNlbGVjdGlvbigpJiYodGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQudmFsdWU9IiIpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShLdChibykpfSxkLlx1MDI3NWRpcj1XaSh7dHlwZTpkLHNlbGVjdG9yczpbWyIiLCJuZzJG''@;'; + put 'put ''aWxlU2VsZWN0IiwiIl1dLGhvc3RCaW5kaW5nczpmdW5jdGlvbihoLHYpezEmaCYmR24oImNoYW5nZSIsZnVuY3Rpb24oKXtyZXR1cm4gdi5vbkNoYW5nZSgpfSl9LGlucHV0czp7dXBsb2FkZXI6InVwbG9hZGVyIn0sb3V0cHV0czp7b25GaWxlU2VsZWN0ZWQ6Im9uRmlsZVNlbGVjdGVkIn19''@;'; + put 'put ''KSxkfSkoKSxTNXQ9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoKXt0aGlzLmZpbGVPdmVyPW5ldyBhcix0aGlzLm9uRmlsZURyb3A9bmV3IGFyLHRoaXMuZWxlbWVudD1ofWdldE9wdGlvbnMoKXtyZXR1cm4gdGhpcy51cGxvYWRlci5vcHRpb25zfWdldEZpbHRlcnMoKXtyZXR1cm57fX1v''@;'; + put 'put ''bkRyb3AoaCl7bGV0IHY9dGhpcy5fZ2V0VHJhbnNmZXIoaCk7aWYoIXYpcmV0dXJuO2xldCB5PXRoaXMuZ2V0T3B0aW9ucygpLEM9dGhpcy5nZXRGaWx0ZXJzKCk7dGhpcy5fcHJldmVudEFuZFN0b3AoaCksdGhpcy51cGxvYWRlci5hZGRUb1F1ZXVlKHYuZmlsZXMseSxDKSx0aGlzLmZpbGVP''@;'; + put 'put ''dmVyLmVtaXQoITEpLHRoaXMub25GaWxlRHJvcC5lbWl0KHYuZmlsZXMpfW9uRHJhZ092ZXIoaCl7bGV0IHY9dGhpcy5fZ2V0VHJhbnNmZXIoaCk7IXRoaXMuX2hhdmVGaWxlcyh2LnR5cGVzKXx8KHYuZHJvcEVmZmVjdD0iY29weSIsdGhpcy5fcHJldmVudEFuZFN0b3AoaCksdGhpcy5maWxl''@;'; + put 'put ''T3Zlci5lbWl0KCEwKSl9b25EcmFnTGVhdmUoaCl7dGhpcy5lbGVtZW50JiZoLmN1cnJlbnRUYXJnZXQ9PT10aGlzLmVsZW1lbnRbMF18fCh0aGlzLl9wcmV2ZW50QW5kU3RvcChoKSx0aGlzLmZpbGVPdmVyLmVtaXQoITEpKX1fZ2V0VHJhbnNmZXIoaCl7cmV0dXJuIGguZGF0YVRyYW5zZmVy''@;'; + put 'put ''P2guZGF0YVRyYW5zZmVyOmgub3JpZ2luYWxFdmVudC5kYXRhVHJhbnNmZXJ9X3ByZXZlbnRBbmRTdG9wKGgpe2gucHJldmVudERlZmF1bHQoKSxoLnN0b3BQcm9wYWdhdGlvbigpfV9oYXZlRmlsZXMoaCl7cmV0dXJuISFoJiYoaC5pbmRleE9mPy0xIT09aC5pbmRleE9mKCJGaWxlcyIpOiEh''@;'; + put 'put ''aC5jb250YWlucyYmaC5jb250YWlucygiRmlsZXMiKSl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKEt0KGJvKSl9LGQuXHUwMjc1ZGlyPVdpKHt0eXBlOmQsc2VsZWN0b3JzOltbIiIsIm5nMkZpbGVEcm9wIiwiIl1dLGhvc3RCaW5kaW5nczpmdW5j''@;'; + put 'put ''dGlvbihoLHYpezEmaCYmR24oImRyb3AiLGZ1bmN0aW9uKEMpe3JldHVybiB2Lm9uRHJvcChDKX0pKCJkcmFnb3ZlciIsZnVuY3Rpb24oQyl7cmV0dXJuIHYub25EcmFnT3ZlcihDKX0pKCJkcmFnbGVhdmUiLGZ1bmN0aW9uKEMpe3JldHVybiB2Lm9uRHJhZ0xlYXZlKEMpfSl9LGlucHV0czp7''@;'; + put 'put ''dXBsb2FkZXI6InVwbG9hZGVyIn0sb3V0cHV0czp7ZmlsZU92ZXI6ImZpbGVPdmVyIixvbkZpbGVEcm9wOiJvbkZpbGVEcm9wIn19KSxkfSkoKSxNNXQ9KCgpPT57Y2xhc3MgZHt9cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1bW9kPWNv''@;'; + put 'put ''KHt0eXBlOmR9KSxkLlx1MDI3NWluaj1iMCh7aW1wb3J0czpbYmFdfSksZH0pKCksQW1lPSgoKT0+e2NsYXNzIGR7fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1MDI3NW1vZD1jbyh7dHlwZTpkfSksZC5cdTAyNzVpbmo9YjAoe2ltcG9ydHM6''@;'; + put 'put ''W2JhXX0pLGR9KSgpLEhuZT0oKCk9PntjbGFzcyBke25nT25Jbml0KCl7fX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVtb2Q9Y28oe3R5cGU6ZH0pLGQuXHUwMjc1aW5qPWIwKHtwcm92aWRlcnM6W0xILERIXSxpbXBvcnRzOltiYSxu''@;'; + put 'put ''ZCxYaCx0TyxBbWUsUmplLmZvclJvb3QoKV19KSxkfSkoKSxObmU9KCgpPT57Y2xhc3MgZHt9cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1bW9kPWNvKHt0eXBlOmR9KSxkLlx1MDI3NWluaj1iMCh7aW1wb3J0czpbYmFdfSksZH0pKCks''@;'; + put 'put ''eW1lPSgoKT0+e2NsYXNzIGR7fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1MDI3NW1vZD1jbyh7dHlwZTpkfSksZC5cdTAyNzVpbmo9YjAoe2ltcG9ydHM6W2JhLG5kLHRPLFhoLEhuZSxObmUsQW1lXX0pLGR9KSgpO3ZhciB3bWUsYm1lLF9t''@;'; + put 'put ''ZSxDbWUsa21lLENNPUwoMzA2MjgpO0woNDM5OSksdkxlKCksZnVuY3Rpb24gRTV0KGQpe3ZhciBnPSJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiZ3aW5kb3cualF1ZXJ5OyFnfHwoZy5mbi5oYW5kc29udGFibGU9ZnVuY3Rpb24oaCl7dmFyIEksdj10aGlzLmZpcnN0KCkseT12LmRhdGEo''@;'; + put 'put ''ImhhbmRzb250YWJsZSIpO2lmKCJzdHJpbmciIT10eXBlb2YgaCl7dmFyIEM9aHx8e307cmV0dXJuIHk/eS51cGRhdGVTZXR0aW5ncyhDKTooeT1uZXcgZC5Db3JlKHZbMF0sQyksdi5kYXRhKCJoYW5kc29udGFibGUiLHkpLHkuaW5pdCgpKSx2fWlmKHkpe2lmKHZvaWQgMD09PXlbaF0pdGhy''@;'; + put 'put ''b3cgbmV3IEVycm9yKCJIYW5kc29udGFibGUgZG8gbm90IHByb3ZpZGUgYWN0aW9uOiAiLmNvbmNhdChoKSk7Zm9yKHZhciBqLHVlPWFyZ3VtZW50cy5sZW5ndGgsX2U9bmV3IEFycmF5KHVlPjE/dWUtMTowKSxCZT0xO0JlPHVlO0JlKyspX2VbQmUtMV09YXJndW1lbnRzW0JlXTtJPShqPXlb''@;'; + put 'put ''aF0pLmNhbGwuYXBwbHkoaixbeV0uY29uY2F0KF9lKSksImRlc3Ryb3kiPT09aCYmdi5yZW1vdmVEYXRhKCl9cmV0dXJuIEl9KX0oSmwpLEpsLl9fR2hvc3RUYWJsZT1HNmUsSmwuX2dldExpc3RlbmVyc0NvdW50ZXI9ZnVuY3Rpb24gRlplKCl7cmV0dXJuIGFlZX0sSmwuX2dldFJlZ2lzdGVy''@;'; + put 'put ''ZWRNYXBzQ291bnRlcj1mdW5jdGlvbiBYSmUoKXtyZXR1cm4gZzRlfSxKbC5FdmVudE1hbmFnZXI9TDE7dmFyIHg1dD1bQixNZSxlZSxKLG1lLGllLFUsTixFLFEsYWUsV10sVDV0PVtaLFldO0psLmhlbHBlcj17fSxKbC5kb209e30sVXIoeDV0LGZ1bmN0aW9uKGQpe1VyKE9iamVjdC5nZXRP''@;'; + put 'put ''d25Qcm9wZXJ0eU5hbWVzKGQpLGZ1bmN0aW9uKGcpeyJfIiE9PWcuY2hhckF0KDApJiYoSmwuaGVscGVyW2ddPWRbZ10pfSl9KSxVcihUNXQsZnVuY3Rpb24oZCl7VXIoT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoZCksZnVuY3Rpb24oZyl7Il8iIT09Zy5jaGFyQXQoMCkmJihKbC5kb21b''@;'; + put 'put ''Z109ZFtnXSl9KX0pLEpsLmNlbGxUeXBlcz1udWxsIT09KHdtZT1KbC5jZWxsVHlwZXMpJiZ2b2lkIDAhPT13bWU/d21lOnt9LFVyKEhRZSgpLGZ1bmN0aW9uKGQpe0psLmNlbGxUeXBlc1tkXT1aZWUoZCl9KSxKbC5jZWxsVHlwZXMucmVnaXN0ZXJDZWxsVHlwZT1rOCxKbC5jZWxsVHlwZXMu''@;'; + put 'put ''Z2V0Q2VsbFR5cGU9WmVlLEpsLmVkaXRvcnM9bnVsbCE9PShibWU9SmwuZWRpdG9ycykmJnZvaWQgMCE9PWJtZT9ibWU6e30sVXIoRFplKCksZnVuY3Rpb24oZCl7SmwuZWRpdG9yc1siIi5jb25jYXQoc2QoZCksIkVkaXRvciIpXT1pX2UoZCl9KSxKbC5lZGl0b3JzLnJlZ2lzdGVyRWRpdG9y''@;'; + put 'put ''PXVkLEpsLmVkaXRvcnMuZ2V0RWRpdG9yPWlfZSxKbC5yZW5kZXJlcnM9bnVsbCE9PShfbWU9SmwucmVuZGVyZXJzKSYmdm9pZCAwIT09X21lP19tZTp7fSxVcihHemUoKSxmdW5jdGlvbihkKXt2YXIgZz1HM2UoZCk7ImJhc2UiPT09ZCYmKEpsLnJlbmRlcmVycy5jZWxsRGVjb3JhdG9yPWcp''@;'; + put 'put ''LEpsLnJlbmRlcmVyc1siIi5jb25jYXQoc2QoZCksIlJlbmRlcmVyIildPWd9KSxKbC5yZW5kZXJlcnMucmVnaXN0ZXJSZW5kZXJlcj1NZyxKbC5yZW5kZXJlcnMuZ2V0UmVuZGVyZXI9RzNlLEpsLnZhbGlkYXRvcnM9bnVsbCE9PShDbWU9SmwudmFsaWRhdG9ycykmJnZvaWQgMCE9PUNtZT9D''@;'; + put 'put ''bWU6e30sVXIoVXplKCksZnVuY3Rpb24oZCl7SmwudmFsaWRhdG9yc1siIi5jb25jYXQoc2QoZCksIlZhbGlkYXRvciIpXT1XM2UoZCl9KSxKbC52YWxpZGF0b3JzLnJlZ2lzdGVyVmFsaWRhdG9yPXBPLEpsLnZhbGlkYXRvcnMuZ2V0VmFsaWRhdG9yPVczZSxKbC5wbHVnaW5zPW51bGwhPT0o''@;'; + put 'put ''a21lPUpsLnBsdWdpbnMpJiZ2b2lkIDAhPT1rbWU/a21lOnt9LFVyKHozZSgpLGZ1bmN0aW9uKGQpe0psLnBsdWdpbnNbZF09V1ooZCl9KSxKbC5wbHVnaW5zWyIiLmNvbmNhdChzZChZcy5QTFVHSU5fS0VZKSwiUGx1Z2luIildPVlzLEpsLnBsdWdpbnMucmVnaXN0ZXJQbHVnaW49THMsSmwu''@;'; + put 'put ''cGx1Z2lucy5nZXRQbHVnaW49V1o7Y29uc3QgSTV0PUpsLEFMZT0oZCxnLGgpPT57Zm9yKGxldCB2IG9mIGQpe2NvbnN0IHk9Zy5maW5kKEk9PkkuZGF0YT09PXYuTkFNRSksQz1oLnZhcnNbdi5OQU1FXTtDJiYodi5UWVBFPVsiREFURSIsIkRBVEVUSU1FIiwiVElNRSJdLmluY2x1ZGVzKHYu''@;'; + put 'put ''RERUWVBFKT8ibnVtIjpDLnR5cGUpLHkmJnYuREVTQyYmKHkuZGVzYz12LkRFU0MpLHkmJkMubGVuZ3RoJiYoeS5sZW5ndGg9cGFyc2VJbnQoQy5sZW5ndGgpKSx5JiZ2LkNMU19SVUxFJiYoeS5jbHNSdWxlPXYuQ0xTX1JVTEUpfXJldHVybiBnfTtmdW5jdGlvbiBTbWUoZCxnKXtpZihudWxs''@;'; + put 'put ''PT1kfHwhaXNOYU4oZCkmJmlzRmluaXRlKGQpKXJldHVybiBnJiZnKCEwKSwhMDtjb25zdCBoPSgwLGJ3LmlzU3BlY2lhbE1pc3NpbmcpKGQpO3JldHVybiBnJiZnKGgpLGh9Y29uc3QgeUxlPXtDQVNFOihkLGcpPT57c3dpdGNoKGcpe2Nhc2UiVVBDQVNFIjpyZXR1cm4hIVt2b2lkIDAsbnVs''@;'; + put 'put ''bF0uaW5jbHVkZXMoZCl8fCJzdHJpbmciPT10eXBlb2YgZCYmZC50b1N0cmluZygpPT09ZC50b1N0cmluZygpLnRvVXBwZXJDYXNlKCk7Y2FzZSJMT1dDQVNFIjpyZXR1cm4hIVt2b2lkIDAsbnVsbF0uaW5jbHVkZXMoZCl8fCJzdHJpbmciPT10eXBlb2YgZCYmZC50b1N0cmluZygpPT09ZC50''@;'; + put 'put ''b1N0cmluZygpLnRvTG93ZXJDYXNlKCl9cmV0dXJuITB9LE1JTlZBTDooZCxnKT0+e2NvbnN0IGg9U21lKGQpLHY9cGFyc2VGbG9hdChkKTtyZXR1cm4oIWh8fCFpc05hTih2KSkmJnY+PU51bWJlcihnLnRvU3RyaW5nKCkpfSxNQVhWQUw6KGQsZyk9Pntjb25zdCBoPVNtZShkKSx2PXBhcnNl''@;'; + put 'put ''RmxvYXQoZCk7cmV0dXJuISghaHx8IWlzTmFOKHYpKXx8djw9TnVtYmVyKGcudG9TdHJpbmcoKSl9LE5PVE5VTEw6KGQsZyk9Pm51bGwhPWQmJmQudG9TdHJpbmcoKS5sZW5ndGg+MH07Y2xhc3MgUjV0e2NvbnN0cnVjdG9yKGcsaCx2LHksQyxJKXt0aGlzLnJ1bGVzPVtdLHRoaXMuZHFydWxl''@;'; + put 'put ''cz1bXSx0aGlzLmRxZGF0YT1bXSx0aGlzLmhpZGRlbkNvbHVtbnM9W10sdGhpcy5wcmltYXJ5S2V5cz1bXSx0aGlzLmV4ZWN1dGVIb3RWYWxpZGF0b3I9KGosdWUsX2UpPT57Y29uc3QgQmU9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGopLHt2YWxpZGF0b3I6dm9pZCAwLGNvcnJl''@;'; + put 'put ''Y3RGb3JtYXQ6ITEscm93OjAsY29sOjAsaW5zdGFuY2U6bmV3IEk1dChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSx7fSksdmlzdWFsUm93OjAsdmlzdWFsQ29sOjAscHJvcDowfSk7bnVsbD09dWUmJih1ZT0iIiksaiYmai52YWxpZGF0b3ImJiJmdW5jdGlvbiI9PXR5cGVvZiBqLnZh''@;'; + put 'put ''bGlkYXRvcj9qLnZhbGlkYXRvci5jYWxsKEJlLHVlLE5lPT57X2UmJl9lKE5lKX0pOl9lJiZfZSghMSl9LHRoaXMuc2FzcGFyYW1zPWcsdGhpcy5ob3RJbnN0YW5jZT1JLHRoaXMucnVsZXM9KGQ9Pnt0cnl7cmV0dXJuIEpTT04ucGFyc2UoYFske2R9XWApfWNhdGNoKGcpe3JldHVybltdfX0p''@;'; + put 'put ''KGcuQ09MVFlQRSksdGhpcy5ydWxlcz1BTGUodix0aGlzLnJ1bGVzLGgpLHRoaXMuZHFydWxlcz15LHRoaXMuZHFkYXRhPUMsdGhpcy5wcmltYXJ5S2V5cz1nLlBLLnNwbGl0KCIgIiksdGhpcy51cGRhdGVEcURhdGEoKSx0aGlzLnNldHVwVmFsaWRhdGlvbnMoKX1nZXRSdWxlcygpe3JldHVy''@;'; + put 'put ''biB0aGlzLnJ1bGVzfWdldFJ1bGUoZyl7Y29uc3QgaD10aGlzLmdldFJ1bGVJbmRleChnKTtyZXR1cm4gdGhpcy5ydWxlc1toXX1nZXRIaWRkZW5Db2x1bW5zKCl7cmV0dXJuIHRoaXMuaGlkZGVuQ29sdW1uc311cGRhdGVSdWxlKGcsaCl7bGV0IHY9dGhpcy5nZXRSdWxlSW5kZXgoZyk7dGhp''@;'; + put 'put ''cy5ydWxlc1t2XT1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdGhpcy5ydWxlc1t2XSksaCl9cmVtb3ZlUnVsZShnKXtjb25zdCBoPXRoaXMuZ2V0UnVsZUluZGV4KGcpO3RoaXMucnVsZXMuc3BsaWNlKGgsMSl9Z2V0RHFEZXRhaWxzKGcpe3JldHVybiBnP3RoaXMuZHFydWxlcy5m''@;'; + put 'put ''aWx0ZXIoaD0+aC5CQVNFX0NPTD09PWcpOnRoaXMuZHFydWxlc31pc0RxQ29sKGcpe3JldHVybiEhdGhpcy5kcXJ1bGVzLmZpbmQoaD0+aC5CQVNFX0NPTD09PWcpfWhhc0RxUnVsZXMoZyxoLHY9ITEpe3JldHVybiB2P3RoaXMuZHFydWxlcy5maWx0ZXIoeT0+eS5CQVNFX0NPTD09PWcmJmgu''@;'; + put 'put ''aW5jbHVkZXMoeS5SVUxFX1RZUEUpKS5sZW5ndGg9PT1oLmxlbmd0aDohIXRoaXMuZHFydWxlcy5maW5kKHk9PnkuQkFTRV9DT0w9PT1nJiZoLmluY2x1ZGVzKHkuUlVMRV9UWVBFKSl9Z2V0RHFEcm9wZG93blNvdXJjZShnKXtsZXQgaD1bXTtyZXR1cm4gdGhpcy5kcXJ1bGVzLmZvckVhY2go''@;'; + put 'put ''dj0+e3YuQkFTRV9DT0wudG9TdHJpbmcoKT09PWcuZGF0YSYmZy5kYXRhLnRvU3RyaW5nKCkmJlsiSEFSRFNFTEVDVCIsIlNPRlRTRUxFQ1QiLCJIQVJEU0VMRUNUX0hPT0siLCJTT0ZUU0VMRUNUX0hPT0siXS5pbmNsdWRlcyh2LlJVTEVfVFlQRS50b1N0cmluZygpKSYmdGhpcy5kcWRhdGEu''@;'; + put 'put ''ZmlsdGVyKHk9PnkuQkFTRV9DT0w9PT12LkJBU0VfQ09MKS5mb3JFYWNoKHk9PntoLnB1c2goZy50eXBlJiYibnVtZXJpYyI9PT1nLnR5cGU/TnVtYmVyKHkuUlVMRV9EQVRBKTp5LlJVTEVfREFUQSl9KX0pLGh9dXBkYXRlRHFEYXRhKCl7dGhpcy5kcWRhdGEubGVuZ3RoPjAmJihkPT57Y29u''@;'; + put 'put ''c3QgZz1bXTtyZXR1cm4gdGhpcy5kcWRhdGEuZm9yRWFjaChoPT57Zy5pbmNsdWRlcyhoLkJBU0VfQ09MKXx8Zy5wdXNoKGguQkFTRV9DT0wpfSksZ30pKCkuZm9yRWFjaChoPT57bGV0IHY9ITE7dGhpcy5kcXJ1bGVzLmxlbmd0aD4wJiZ0aGlzLmRxcnVsZXMuZm9yRWFjaCh5PT57eS5CQVNF''@;'; + put 'put ''X0NPTD09PWgmJigiU09GVFNFTEVDVCI9PT15LlJVTEVfVFlQRXx8IkhBUkRTRUxFQ1QiPT09eS5SVUxFX1RZUEUpJiYodj0hMCl9KSx2fHx0aGlzLmRxcnVsZXMucHVzaCh7QkFTRV9DT0w6aCxSVUxFX1RZUEU6IlNPRlRTRUxFQ1QiLFJVTEVfVkFMVUU6aCxYOjF9KX0pfXNldHVwVmFsaWRh''@;'; + put 'put ''dGlvbnMoKXt2YXIgZztmb3IobGV0IGg9MDtoPHRoaXMucnVsZXMubGVuZ3RoO2grKyl7Y29uc3Qgdj10aGlzLnJ1bGVzW2hdLmRhdGF8fCIiO2lmKCJfX19fX0RFTEVURV9fVEhJU19fUkVDT1JEX19fX18iIT09dil7aWYodGhpcy5pc0RxQ29sKHYpKXtsZXQgQz10aGlzLmdldERxRHJvcGRv''@;'; + put 'put ''d25Tb3VyY2UodGhpcy5ydWxlc1toXSk7Qy5sZW5ndGg+MCYmKHRoaXMucnVsZXNbaF0uc291cmNlPUMsdGhpcy5ydWxlc1toXS50eXBlPSJhdXRvY29tcGxldGUiLHRoaXMucnVsZXNbaF0uZmlsdGVyPSExKSx0aGlzLmhhc0RxUnVsZXModixbIlNPRlRTRUxFQ1QiXSkmJih0aGlzLnJ1bGVz''@;'; + put 'put ''W2hdLnN0cmljdD0hMSksdGhpcy5oYXNEcVJ1bGVzKHYsWyJIQVJEU0VMRUNUIl0pJiYodGhpcy5ydWxlc1toXS5zdHJpY3Q9ITApLHRoaXMuaGFzRHFSdWxlcyh2LFsiU09GVFNFTEVDVF9IT09LIl0pJiYodGhpcy5ydWxlc1toXS5zdHJpY3Q9ITEpLHRoaXMuaGFzRHFSdWxlcyh2LFsiSEFS''@;'; + put 'put ''RFNFTEVDVF9IT09LIl0pJiYodGhpcy5ydWxlc1toXS5zdHJpY3Q9ITApLHRoaXMuaGFzRHFSdWxlcyh2LFsiTk9UTlVMTCJdKSYmKHRoaXMucnVsZXNbaF0uYWxsb3dFbXB0eT0hMSl9InRydWUiPT09dGhpcy5ydWxlc1toXS5jb3JyZWN0Rm9ybWF0JiYodGhpcy5ydWxlc1toXS5jb3JyZWN0''@;'; + put 'put ''Rm9ybWF0PSEwKSx0aGlzLnNldERlZmF1bHRWYWxpZGF0b3IodGhpcyxoKSx0aGlzLnNldENvbHVtbkxldmVsU2VjdXJpdHkoaCl9fW51bGwhPT0oZz10aGlzLnNhc3BhcmFtcykmJnZvaWQgMCE9PWcmJmcuQ0xTX0ZMQUcmJnRoaXMuaGlkZGVuQ29sdW1ucy5wdXNoKDApfXNldERlZmF1bHRW''@;'; + put 'put ''YWxpZGF0b3IoZyxoKXt0aGlzLnJ1bGVzW2hdLnZhbGlkYXRvcj1mdW5jdGlvbih2LHkpe3ZhciBDO2NvbnN0IEk9bnVsbD09PShDPWcucnVsZXNbaF0uZGF0YSl8fHZvaWQgMD09PUM/dm9pZCAwOkMudG9TdHJpbmcoKSxqPWcucnVsZXNbaF0udHlwZXx8IiI7bGV0IHVlPW51bGw7cmV0dXJu''@;'; + put 'put ''ImF1dG9jb21wbGV0ZSIhPT10aGlzLmVkaXRvcnx8KGcuZ2V0SGFuZHNvbnRhYmxlVmFsaWRhdG9yKCJhdXRvY29tcGxldGUiKS5jYWxsKHRoaXMsdixfZT0+e3VlPV9lfSksdWUpPyhnLmdldEhhbmRzb250YWJsZVZhbGlkYXRvcihqKS5jYWxsKHRoaXMsdixfZT0+e3VlPV9lfSksdWU/Zy5s''@;'; + put 'put ''ZW5ndGhDaGVjayh2LGcucnVsZXNbaF0ubGVuZ3RoLGopP2cuaXNEcUNvbChJfHwiIikmJiEoKGQsZyk9Pntmb3IobGV0IGggb2YgZClpZih5TGVbaC5SVUxFX1RZUEVdJiYheUxlW2guUlVMRV9UWVBFXShnLGguUlVMRV9WQUxVRSkpcmV0dXJuIGNvbnNvbGUud2FybihgRFEgSW52YWxpZCBS''@;'; + put 'put ''ZWFzb246ICR7aC5SVUxFX1RZUEV9XG5WYWx1ZTogJHtnfSlcblJ1bGUgVmFsdWU6ICR7aC5SVUxFX1ZBTFVFLmxlbmd0aD4wJiYiICIhPT1oLlJVTEVfVkFMVUU/aC5SVUxFX1ZBTFVFOiJOb3QgZGVmaW5lZCJ9YCksITE7cmV0dXJuITB9KShnLmdldERxRGV0YWlscyhJfHwiIiksdik/KGNv''@;'; + put 'put ''bnNvbGUud2FybihgRFEgVmFsaWRhdGlvbiAtIGludmFsaWQgKFZhbHVlOiAke3Z9KWApLHZvaWQgeSghMSkpOnZvaWQgeSghMCk6KGNvbnNvbGUud2FybihgTGVuZ3RoIFZhbGlkYXRpb24gLSBpbnZhbGlkIChWYWx1ZTogJHt2fSlgKSx2b2lkIHkoITEpKTooY29uc29sZS53YXJuKGBIT1Qg''@;'; + put 'put ''TmF0aXZlIFZhbGlkYXRpb24gLSBpbnZhbGlkIChWYWx1ZTogJHt2fSlgKSx2b2lkIHkoITEpKSk6KGNvbnNvbGUud2FybihgSE9UIE5hdGl2ZSBWYWxpZGF0aW9uIChhdXRvY29tcGxldGUpIC0gaW52YWxpZCAoVmFsdWU6ICR7dn0pYCksdm9pZCB5KCExKSl9fWxlbmd0aENoZWNrKGcsaCx2''@;'; + put 'put ''KXtpZigoMCxidy5pc1NwZWNpYWxNaXNzaW5nKShnKXx8bnVsbD09Z3x8bnVsbD09aClyZXR1cm4hMDtpZigibnVtZXJpYyI9PT12KXtpZig4PT09aClyZXR1cm4hMDtpZihoPDN8fGg+OHx8IU51bWJlci5pc0ludGVnZXIoaCkpcmV0dXJuIGNvbnNvbGUud2FybigiaW52YWxpZCBsZW5ndGgg''@;'; + put 'put ''ZnJvbSBTQVMsIHJ1bGUgbGVuZ3RoIGNhbiBvbmx5IGJlIGFuIGludGVnZXIgYmV0d2VlbiAzLTgiKSwhMTtjb25zdCB5PU51bWJlcihnKT09PWcmJmclMSE9MDtpZihoPDgmJnkpcmV0dXJuIGNvbnNvbGUud2FybigicmVkdWNlZCBsZW5ndGggbnVtZXJpY3MgY2Fubm90IGNvbnRhaW4gZGVj''@;'; + put 'put ''aW1hbHMgZWxzZSBwcmVjaXNpb24gd2lsbCBiZSBhZmZlY3RlZCIpLCExO3N3aXRjaChoKXtjYXNlIDM6cmV0dXJuIGc8PTgxOTI7Y2FzZSA0OnJldHVybiBnPD0yMDk3MTUyO2Nhc2UgNTpyZXR1cm4gZzw9NTM2ODcwOTEyO2Nhc2UgNjpyZXR1cm4gZzw9MTM3NDM4OTUzNDcyO2Nhc2UgNzpy''@;'; + put 'put ''ZXR1cm4gZzw9MzUxODQzNzIwODg4MzJ9fXJldHVybiBnLnRvU3RyaW5nKCkubGVuZ3RoPD1ofWdldEhhbmRzb250YWJsZVZhbGlkYXRvcihnKXtzd2l0Y2goZyl7Y2FzZSJhdXRvY29tcGxldGUiOnJldHVybiBkejtjYXNlIm51bWVyaWMiOnJldHVybiBTbWU7Y2FzZSJkYXRlIjpyZXR1cm4g''@;'; + put 'put ''TXRlO2Nhc2UidGltZSI6cmV0dXJuIEV0ZTtkZWZhdWx0OnJldHVybihoLHYpPT52P3YoITApOm51bGx9fWdldFJ1bGVJbmRleChnKXtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIGc/Zzp0aGlzLnJ1bGVzLmZpbmRJbmRleChoPT5oLmRhdGE9PT1nKX1zZXRDb2x1bW5MZXZlbFNlY3VyaXR5KGcp''@;'; + put 'put ''e3ZhciBoO2lmKG51bGw9PT0oaD10aGlzLnNhc3BhcmFtcyl8fHZvaWQgMD09PWh8fCFoLkNMU19GTEFHKXJldHVybjtjb25zdCB2PXRoaXMucnVsZXNbZ107aWYodGhpcy5wcmltYXJ5S2V5cy5pbmNsdWRlcyh2LmRhdGEpJiYodi5jbHNSdWxlPSJSRUFEIiksIkhJREUiPT09di5jbHNSdWxl''@;'; + put 'put ''JiZ0aGlzLmhpZGRlbkNvbHVtbnMucHVzaChnKSwiUkVBRCI9PT12LmNsc1J1bGUmJih2LnJlYWRPbmx5PSEwKSwiRURJVCI9PT12LmNsc1J1bGUpe3YucmVhZE9ubHk9ITE7Y29uc3QgeT10aGlzLmhpZGRlbkNvbHVtbnMuaW5kZXhPZihnKTt0aGlzLmhpZGRlbkNvbHVtbnMuc3BsaWNlKHks''@;'; + put 'put ''MSl9fX1jb25zdCBWbmU9e251bWVyaWM6MCxkZWZhdWx0OiIifSxCNXQ9KGQsZyk9PmQ/ImF1dG9jb21wbGV0ZSI9PT1kP2cmJmcuc291cmNlP2cuc291cmNlWzBdOltdOlZuZS5oYXNPd25Qcm9wZXJ0eShkKT9WbmVbZF06Vm5lLmRlZmF1bHQ6Vm5lLmRlZmF1bHQsd0xlPWQ9PntsZXQgZz0o''@;'; + put 'put ''IjAiK2QuZ2V0VVRDSG91cnMoKSkuc2xpY2UoLTIpKyI6IjtyZXR1cm4gZz1nKygiMCIrZC5nZXRVVENNaW51dGVzKCkpLnNsaWNlKC0yKSsiOiIsZys9KCIwIitkLmdldFVUQ1NlY29uZHMoKSkuc2xpY2UoLTIpLGd9LE1tZT1kPT5kLmdldEZ1bGxZZWFyKCkrIi0iKygiMCIrKGQuZ2V0TW9u''@;'; + put 'put ''dGgoKSsxKSkuc2xpY2UoLTIpKyItIisoIjAiK2QuZ2V0RGF0ZSgpKS5zbGljZSgtMiksRW1lPWQ9Pm5ldyBEYXRlKE1hdGgucm91bmQoODY0MDAqKGQtMjU1NjkpKjFlMykpLEg1dD0oZCxnKT0+e2NvbnN0IGg9W10sdj1bXTtyZXR1cm4gZy5mb3JFYWNoKHk9PnstMT09PWQuaW5kZXhPZih5''@;'; + put 'put ''KT9oLnB1c2goeSk6di5wdXNoKHkpfSksW2gsdl19LE41dD0oZCxnLGgsdix5LEMsSSk9PihnLmlubmVySFRNTD1gJHtDP0MudG9TdHJpbmcoKToiIn0gPGNkcy1pY29uIHNoYXBlPSJleGNsYW1hdGlvbi1jaXJjbGUiIHN0YXR1cz0id2FybmluZyI+PC9jZHMtaWNvbj5gLGcpLHhtZT0oZCxn''@;'; + put 'put ''LGgsdix5LEMsSSk9PihnLmlubmVySFRNTD1DfHwiIixnKSxWNXQ9KGQsZyxoLHYseSxDLEkpPT4oZy5pbm5lckhUTUw9YCR7Qz9DLnRvU3RyaW5nKCk6IiJ9IDxzcGFuIGNsYXNzPSJzcGlubmVyIHNwaW5uZXItc20gdmVydGljYWwtYWxpZ24tbWlkZGxlIj48L3NwYW4+YCxnKSxUbWU9ZD0+''@;'; + put 'put ''ISEvXi17MCwxfVxkKyQvLnRlc3QoZCksYkxlPWQ9PiEhL15cZCtcLlxkKyQvLnRlc3QoZCksa009dm9pZCAwLFo1dD1bImVuLUdCIixbWyJhIiwicCJdLFsiYW0iLCJwbSJdLGtNXSxbWyJhbSIsInBtIl0sa00sa01dLFtbIlMiLCJNIiwiVCIsIlciLCJUIiwiRiIsIlMiXSxbIlN1biIsIk1v''@;'; + put 'put ''biIsIlR1ZSIsIldlZCIsIlRodSIsIkZyaSIsIlNhdCJdLFsiU3VuZGF5IiwiTW9uZGF5IiwiVHVlc2RheSIsIldlZG5lc2RheSIsIlRodXJzZGF5IiwiRnJpZGF5IiwiU2F0dXJkYXkiXSxbIlN1IiwiTW8iLCJUdSIsIldlIiwiVGgiLCJGciIsIlNhIl1dLGtNLFtbIkoiLCJGIiwiTSIsIkEi''@;'; + put 'put ''LCJNIiwiSiIsIkoiLCJBIiwiUyIsIk8iLCJOIiwiRCJdLFsiSmFuIiwiRmViIiwiTWFyIiwiQXByIiwiTWF5IiwiSnVuIiwiSnVsIiwiQXVnIiwiU2VwdCIsIk9jdCIsIk5vdiIsIkRlYyJdLFsiSmFudWFyeSIsIkZlYnJ1YXJ5IiwiTWFyY2giLCJBcHJpbCIsIk1heSIsIkp1bmUiLCJKdWx5''@;'; + put 'put ''IiwiQXVndXN0IiwiU2VwdGVtYmVyIiwiT2N0b2JlciIsIk5vdmVtYmVyIiwiRGVjZW1iZXIiXV0sa00sW1siQiIsIkEiXSxbIkJDIiwiQUQiXSxbIkJlZm9yZSBDaHJpc3QiLCJBbm5vIERvbWluaSJdXSwxLFs2LDBdLFsiZGQvTU0veSIsImQgTU1NIHkiLCJkIE1NTU0geSIsIkVFRUUsIGQg''@;'; + put 'put ''TU1NTSB5Il0sWyJISDptbSIsIkhIOm1tOnNzIiwiSEg6bW06c3MgeiIsIkhIOm1tOnNzIHp6enoiXSxbInsxfSwgezB9IixrTSwiezF9ICdhdCcgezB9IixrTV0sWyIuIiwiLCIsIjsiLCIlIiwiKyIsIi0iLCJFIiwiXHhkNyIsIlx1MjAzMCIsIlx1MjIxZSIsIk5hTiIsIjoiXSxbIiMsIyMw''@;'; + put 'put ''LiMjIyIsIiMsIyMwJSIsIlx4YTQjLCMjMC4wMCIsIiNFMCJdLCJHQlAiLCJceGEzIiwiQnJpdGlzaCBQb3VuZCIse0pQWTpbIkpQXHhhNSIsIlx4YTUiXSxVU0Q6WyJVUyQiLCIkIl19LCJsdHIiLGZ1bmN0aW9uIGo1dChkKXtjb25zdCBoPU1hdGguZmxvb3IoTWF0aC5hYnMoZCkpLHY9ZC50''@;'; + put 'put ''b1N0cmluZygpLnJlcGxhY2UoL15bXi5dKlwuPy8sIiIpLmxlbmd0aDtyZXR1cm4gMT09PWgmJjA9PT12PzE6NX1dO2xldCBfTGU9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYpe3RoaXMudGVtcGxhdGVSZWY9aCx0aGlzLnZjUmVmPXYsdGhpcy5jb250ZXh0PXskaW1wbGljaXQ6bnVs''@;'; + put 'put ''bCxuZ1ZhcjpudWxsfSx0aGlzLmhhc1ZpZXc9ITF9c2V0IG5nVmFyKGgpe3RoaXMuY29udGV4dC4kaW1wbGljaXQ9dGhpcy5jb250ZXh0Lm5nVmFyPWgsdGhpcy5oYXNWaWV3fHwodGhpcy52Y1JlZi5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy50ZW1wbGF0ZVJlZix0aGlzLmNvbnRleHQpLHRo''@;'; + put 'put ''aXMuaGFzVmlldz0hMCl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKEt0KHFyKSxLdChVaSkpfSxkLlx1MDI3NWRpcj1XaSh7dHlwZTpkLHNlbGVjdG9yczpbWyIiLCJuZ1ZhciIsIiJdXSxpbnB1dHM6e25nVmFyOiJuZ1ZhciJ9fSksZH0pKCk7Y29u''@;'; + put 'put ''c3QgejV0PVsiaW5wdXQiXSxHNXQ9ZnVuY3Rpb24oZCxnKXtyZXR1cm57IndpZHRoLnB4IjpkLCJtYXgtaGVpZ2h0LnB4IjpnfX0sVzV0PVsiKiJdO2xldCBZNXQ9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoKXt0aGlzLmNkcj1oLHRoaXMuaW5wdXRJZD0iIix0aGlzLnBsYWNlaG9sZGVy''@;'; + put 'put ''PSIiLHRoaXMudmFsdWU9IiIsdGhpcy5kaXNhYmxlZD0hMSx0aGlzLnR5cGU9InRleHQiLHRoaXMuYXV0b2NvbXBsZXRlPSJvZmYiLHRoaXMudGFiaW5kZXg9IiIsdGhpcy5lbWl0T25seVNlbGVjdGVkPSExLHRoaXMub25JbnB1dEtleWRvd249bmV3IGFyLHRoaXMub25JbnB1dENoYW5nZT1u''@;'; + put 'put ''ZXcgYXIsdGhpcy52YWx1ZUNoYW5nZT1uZXcgYXIsdGhpcy5kYXRhbGlzdE9wZW49ITEsdGhpcy5pbnB1dEZvY3VzZWQ9ITEsdGhpcy5pbnB1dENsaWVudFJlY3Q9e30sdGhpcy5wcmV2ZW50RGF0YWxpc3RDbG9zZT0hMX1uZ09uSW5pdCgpe31uZ0FmdGVyVmlld0luaXQoKXtzZXRUaW1lb3V0''@;'; + put 'put ''KCgpPT57dGhpcy5jYWxjdWxhdGVJbnB1dFBvc2l0aW9uKCl9LDUwMCl9b25JbnB1dEZpcmVkKGgsdil7dGhpcy5kYXRhbGlzdE9wZW49ITAsdGhpcy51bnNlbGVjdEFsbE9wdGlvbnMoKSx0aGlzLmZpbHRlck9wdGlvbnNMaXN0KCksKCF0aGlzLmVtaXRPbmx5U2VsZWN0ZWR8fHYpJiYodGhp''@;'; + put 'put ''cy5vbklucHV0Q2hhbmdlLmVtaXQoe3RhcmdldDp7dmFsdWU6dGhpcy52YWx1ZX19KSx0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodGhpcy52YWx1ZSkpfW9uSW5wdXRDbGljayhoKXt0aGlzLmRhdGFsaXN0T3Blbj0hMH1yZXNldERhdGFsaXN0RmlsdGVyKCl7dGhpcy5maWx0ZXJPcHRpb25zTGlz''@;'; + put 'put ''dCghMCl9b25JbnB1dEZvY3VzaW4oaCl7dGhpcy5pbnB1dEZvY3VzZWQ9ITB9b25JbnB1dEZvY3Vzb3V0KGgpe3RoaXMuaW5wdXRGb2N1c2VkPSExLHRoaXMuc2V0VG9DbG9zZURhdGFsaXN0KCl9ZmlsdGVyT3B0aW9uc0xpc3QoaCl7Y29uc3Qgdj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxs''@;'; + put 'put ''KGAjZGF0YWxpc3RfJHt0aGlzLmlucHV0SWR9IG9wdGlvbmApO2ZvcihsZXQgeT0wO3k8di5sZW5ndGg7eSsrKXtjb25zdCBDPXZbeV07aWYoMD09PXRoaXMudmFsdWUubGVuZ3RoKXtDLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpO2NvbnRpbnVlfWlmKGgpe0MuY2xhc3NMaXN0LnJlbW92''@;'; + put 'put ''ZSgiaGlkZGVuIik7Y29udGludWV9Y29uc3QgdWU9KEMuaW5uZXJUZXh0fHwiIikrKEMudmFsdWV8fCIiKTtudWxsIT11ZSYmdWUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh0aGlzLnZhbHVlLnRvTG93ZXJDYXNlKCkpP0MuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIik6Qy5jbGFzc0xpc3Qu''@;'; + put 'put ''YWRkKCJoaWRkZW4iKX19c2V0VG9DbG9zZURhdGFsaXN0KCl7dGhpcy5kYXRhbGlzdENsb3NlVGltZW91dD1zZXRUaW1lb3V0KCgpPT57dGhpcy5wcmV2ZW50RGF0YWxpc3RDbG9zZXx8KHRoaXMuZGF0YWxpc3RPcGVuPSExLHRoaXMudW5zZWxlY3RBbGxPcHRpb25zKCksdGhpcy5yZXNldERh''@;'; + put 'put ''dGFsaXN0RmlsdGVyKCkpfSwxMDApfWNhbGN1bGF0ZUlucHV0UG9zaXRpb24oKXtjb25zdCBoPXRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQsdj1udWxsPT1oP3ZvaWQgMDpoLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3RoaXMuaW5wdXRDbGllbnRSZWN0PXt3aWR0aDp2LndpZHRo''@;'; + put 'put ''LGJvdHRvbTp2LmJvdHRvbX0sdGhpcy5pbm5lckhlaWdodD13aW5kb3cuaW5uZXJIZWlnaHR9b25EYXRhTGlzdE1vdXNlRW50ZXIoaCl7dGhpcy5wcmV2ZW50RGF0YWxpc3RDbG9zZT0hMH1vbkRhdGFMaXN0TW91c2VMZWF2ZShoKXt0aGlzLnByZXZlbnREYXRhbGlzdENsb3NlPSExLHRoaXMu''@;'; + put 'put ''aW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKX1vbkRhdGFMaXN0U2Nyb2xsKGgpe3RoaXMuc2V0VG9DbG9zZURhdGFsaXN0KCl9b25EYXRhTGlzdENsaWNrKGgpe2NvbnN0IHY9aC50YXJnZXQ7aWYoIk9QVElPTiIhPT12LnRhZ05hbWUpcmV0dXJuO2xldCB5PXYuaW5uZXJUZXh0''@;'; + put 'put ''LEM9di52YWx1ZTsoeXx8QykmJihDfHwoQz15KSksQyYmKHRoaXMucHJldmVudERhdGFsaXN0Q2xvc2U9ITEsdGhpcy52YWx1ZT1DLHRoaXMub25JbnB1dEZpcmVkKG51bGwsITApLHRoaXMuc2V0VG9DbG9zZURhdGFsaXN0KCkpfW9uTWFpbktleWRvd24oaCl7c3dpdGNoKGgua2V5KXtjYXNl''@;'; + put 'put ''IkFycm93VXAiOnRoaXMuZ2V0T3B0aW9uc01vdmVGb2N1cygidXAiKTticmVhaztjYXNlIkFycm93RG93biI6dGhpcy5nZXRPcHRpb25zTW92ZUZvY3VzKCJkb3duIik7YnJlYWs7Y2FzZSJFbnRlciI6dGhpcy5zZWxlY3RGb2N1c2VkT3B0aW9uKCk7YnJlYWs7Y2FzZSJFc2NhcGUiOnRoaXMu''@;'; + put 'put ''c2V0VG9DbG9zZURhdGFsaXN0KCl9fXVuc2VsZWN0QWxsT3B0aW9ucygpe2NvbnN0IGg9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChgI2RhdGFsaXN0XyR7dGhpcy5pbnB1dElkfSBvcHRpb25gKTtmb3IobGV0IHY9MDt2PGgubGVuZ3RoO3YrKyloW3ZdLmNsYXNzTGlzdC5yZW1vdmUoImZv''@;'; + put 'put ''Y3VzZWQiKX1zZWxlY3RGb2N1c2VkT3B0aW9uKCl7Y29uc3QgaD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKGAjZGF0YWxpc3RfJHt0aGlzLmlucHV0SWR9IG9wdGlvbi5mb2N1c2VkYCk7aCYmdGhpcy5vbkRhdGFMaXN0Q2xpY2soe3RhcmdldDpofSksdGhpcy5zZXRUb0Nsb3NlRGF0YWxpc3Qo''@;'; + put 'put ''KX1nZXRPcHRpb25zTW92ZUZvY3VzKGgpe2NvbnN0IHY9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChgI2RhdGFsaXN0XyR7dGhpcy5pbnB1dElkfSBvcHRpb246bm90KC5oaWRkZW4pYCk7bGV0IHk9MDtmb3IobGV0IEM9MDtDPHYubGVuZ3RoO0MrKyl7Y29uc3QgST12W0NdO2lmKEkuY2xh''@;'; + put 'put ''c3NMaXN0LmNvbnRhaW5zKCJmb2N1c2VkIikpe3k9ImRvd24iPT09aD9DKzE6Qy0xLHk8MCYmKHk9di5sZW5ndGgtMSkseT52Lmxlbmd0aC0xJiYoeT0wKSxJLmNsYXNzTGlzdC5yZW1vdmUoImZvY3VzZWQiKTticmVha319dlt5XS5jbGFzc0xpc3QuYWRkKCJmb2N1c2VkIil9b25SZXNpemUo''@;'; + put 'put ''aCl7dGhpcy5jYWxjdWxhdGVJbnB1dFBvc2l0aW9uKCl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKEt0KGQxKSl9LGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQsc2VsZWN0b3JzOltbImFwcC1hdXRvY29tcGxldGUiXV0sdmlld1F1ZXJ5OmZ1bmN0aW9u''@;'; + put 'put ''KGgsdil7aWYoMSZoJiZ2byh6NXQsNSksMiZoKXtsZXQgeTtIaSh5PSRpKCkpJiYodi5pbnB1dEVsZW1lbnQ9eS5maXJzdCl9fSxob3N0QmluZGluZ3M6ZnVuY3Rpb24oaCx2KXsxJmgmJkduKCJyZXNpemUiLGZ1bmN0aW9uKEMpe3JldHVybiB2Lm9uUmVzaXplKEMpfSwwLExiKX0saW5wdXRz''@;'; + put 'put ''OntpbnB1dElkOiJpbnB1dElkIixwbGFjZWhvbGRlcjoicGxhY2Vob2xkZXIiLHZhbHVlOiJ2YWx1ZSIsZGlzYWJsZWQ6ImRpc2FibGVkIix0eXBlOiJ0eXBlIixhdXRvY29tcGxldGU6ImF1dG9jb21wbGV0ZSIsdGFiaW5kZXg6InRhYmluZGV4IixlbWl0T25seVNlbGVjdGVkOiJlbWl0T25s''@;'; + put 'put ''eVNlbGVjdGVkIn0sb3V0cHV0czp7b25JbnB1dEtleWRvd246Im9uSW5wdXRLZXlkb3duIixvbklucHV0Q2hhbmdlOiJvbklucHV0Q2hhbmdlIix2YWx1ZUNoYW5nZToidmFsdWVDaGFuZ2UifSxuZ0NvbnRlbnRTZWxlY3RvcnM6VzV0LGRlY2xzOjYsdmFyczoxNCxjb25zdHM6W1sxLCJhdXRv''@;'; + put 'put ''Y29tcGxldGUtd3JhcHBlciIsMywia2V5ZG93biJdLFsidHlwZSIsInRleHQiLCJhdXRvY29tcGxldGUiLCJvZmYiLCJhdXRvZm9jdXMiLCIiLCJ0YWJpbmRleCIsIjAiLDEsImlucHV0LXZhbCIsMywiaWQiLCJwbGFjZWhvbGRlciIsIm5nTW9kZWwiLCJkaXNhYmxlZCIsIm5nTW9kZWxDaGFu''@;'; + put 'put ''Z2UiLCJjbGljayIsImZvY3VzIiwiZm9jdXNvdXQiXSxbImlucHV0IiwiIl0sWzEsIm92ZXJsYXkiXSxbMSwiZGF0YWxpc3QiLDMsIm5nU3R5bGUiLCJpZCIsImNsaWNrIiwibW91c2VlbnRlciIsIm1vdXNlbGVhdmUiLCJzY3JvbGwiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oaCx2KXsxJmgmJihL''@;'; + put 'put ''MCgpLHJ0KDAsImRpdiIsMCksR24oImtleWRvd24iLGZ1bmN0aW9uKEMpe3JldHVybiB2Lm9uTWFpbktleWRvd24oQyl9KSxydCgxLCJpbnB1dCIsMSwyKSxHbigibmdNb2RlbENoYW5nZSIsZnVuY3Rpb24oQyl7cmV0dXJuIHYudmFsdWU9Q30pKCJjbGljayIsZnVuY3Rpb24oQyl7cmV0dXJu''@;'; + put 'put ''IHYub25JbnB1dENsaWNrKEMpfSkoIm5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9uKEMpe3JldHVybiB2Lm9uSW5wdXRGaXJlZChDKX0pKCJmb2N1cyIsZnVuY3Rpb24oQyl7cmV0dXJuIHYub25JbnB1dEZvY3VzaW4oQyl9KSgiZm9jdXNvdXQiLGZ1bmN0aW9uKEMpe3JldHVybiB2Lm9uSW5wdXRG''@;'; + put 'put ''b2N1c291dChDKX0pLGx0KCksQ3IoMywiZGl2IiwzKSxydCg0LCJkaXYiLDQpLEduKCJjbGljayIsZnVuY3Rpb24oQyl7cmV0dXJuIHYub25EYXRhTGlzdENsaWNrKEMpfSkoIm1vdXNlZW50ZXIiLGZ1bmN0aW9uKEMpe3JldHVybiB2Lm9uRGF0YUxpc3RNb3VzZUVudGVyKEMpfSkoIm1vdXNl''@;'; + put 'put ''bGVhdmUiLGZ1bmN0aW9uKEMpe3JldHVybiB2Lm9uRGF0YUxpc3RNb3VzZUxlYXZlKEMpfSkoInNjcm9sbCIsZnVuY3Rpb24oQyl7cmV0dXJuIHYub25EYXRhTGlzdFNjcm9sbChDKX0pLE5pKDUpLGx0KCkoKSksMiZoJiYodXQoMSksVHQoImlkIix2LmlucHV0SWQpKCJwbGFjZWhvbGRlciIs''@;'; + put 'put ''di5wbGFjZWhvbGRlcikoIm5nTW9kZWwiLHYudmFsdWUpKCJkaXNhYmxlZCIsdi5kaXNhYmxlZCksR2koImxpc3QiLCJkYXRhbGlzdF8iK3YuaW5wdXRJZCksdXQoMiksRmkoImhpZGRlbiIsIXYuZGF0YWxpc3RPcGVuKSx1dCgxKSxGaSgiaGlkZGVuIiwhdi5kYXRhbGlzdE9wZW4pLFR0KCJu''@;'; + put 'put ''Z1N0eWxlIixaMygxMSxHNXQsdi5pbnB1dENsaWVudFJlY3Qud2lkdGgsdi5pbm5lckhlaWdodCYmdi5pbnB1dENsaWVudFJlY3QuYm90dG9tP3YuaW5uZXJIZWlnaHQtdi5pbnB1dENsaWVudFJlY3QuYm90dG9tOnZvaWQgMCkpKCJpZCIsImRhdGFsaXN0XyIrdi5pbnB1dElkKSl9LGRlcGVu''@;'; + put 'put ''ZGVuY2llczpbRVcsbTEseHMsVHNdLHN0eWxlczpbIi5pbnB1dC12YWxbX25nY29udGVudC0lQ09NUCVde2JvcmRlcjowcHg7YmFja2dyb3VuZDojZmJmOGY4O2JvcmRlci1ib3R0b206MXB4IHNvbGlkICM5OTk5OTl9aW5wdXRbX25nY29udGVudC0lQ09NUCVde3dpZHRoOjEwMCU7b3V0bGlu''@;'; + put 'put ''ZTpub25lfWlucHV0W19uZ2NvbnRlbnQtJUNPTVAlXTo6LXdlYmtpdC1jYWxlbmRhci1waWNrZXItaW5kaWNhdG9ye21hcmdpbi10b3A6LTVweH0uYXV0b2NvbXBsZXRlLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm92ZXJsYXlbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmZp''@;'; + put 'put ''eGVkO2xlZnQ6MDt0b3A6MDtyaWdodDowO2JvdHRvbTowO3otaW5kZXg6MTUwMH0uYXV0b2NvbXBsZXRlLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLmRhdGFsaXN0W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDtiYWNrZ3JvdW5kOndoaXRlO2JveC1zaGFkb3c6MCAz''@;'; + put 'put ''cHggMTBweCAtMXB4ICMwMDAwMDAyYjtvdmVyZmxvdzphdXRvO3otaW5kZXg6MjAwMH0uYXV0b2NvbXBsZXRlLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLmRhdGFsaXN0W19uZ2NvbnRlbnQtJUNPTVAlXSAgICAgb3B0aW9ue3BhZGRpbmc6NXB4IDEwcHg7Y3Vyc29yOnBvaW50ZXJ9''@;'; + put 'put ''LmF1dG9jb21wbGV0ZS13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5kYXRhbGlzdFtfbmdjb250ZW50LSVDT01QJV0gICAgIG9wdGlvbjpob3ZlcntiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjA1ODgyMzUyOTQpfS5hdXRvY29tcGxldGUtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0g''@;'; + put 'put ''ICAuZGF0YWxpc3RbX25nY29udGVudC0lQ09NUCVdICAgICBvcHRpb24uZm9jdXNlZHtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjA1ODgyMzUyOTQpfSJdfSksZH0pKCksVTV0PSgoKT0+e2NsYXNzIGR7dHJhbnNmb3JtKGgsdil7aWYoInN0cmluZyI9PXR5cGVvZiBoJiZoLmxlbmd0aDwxKXJl''@;'; + put 'put ''dHVybiBoO3N3aXRjaCh2KXtjYXNlImRhdGUiOnJldHVybiBUbChoLCJERE1NTVlZWVk6aGg6bW06c3MiKS5mb3JtYXQoIkREL01NL1lZWVkiKTtjYXNlInRpbWUiOntpZigic3RyaW5nIiE9dHlwZW9mIGgpdGhyb3cgbmV3IEVycm9yKCJFcnJvciBwYXJzaW5nIHRpbWUuIFZhbHVlIGlzIG5v''@;'; + put 'put ''dCBzdHJpbmcuIik7Y29uc3QgeT1wYXJzZUludChoLnNwbGl0KCI6IilbMF0pLEM9cGFyc2VJbnQoaC5zcGxpdCgiOiIpWzFdKSxJPXBhcnNlSW50KGguc3BsaXQoIjoiKVsyXSk7cmV0dXJuYCR7eTwxMD8iMCIreTp5fToke0M8MTA/IjAiK0M6Q306JHtJPDEwPyIwIitJOkl9YH19cmV0dXJu''@;'; + put 'put ''InN0cmluZyI9PXR5cGVvZiBoP2g6aC50b1N0cmluZygpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVwaXBlPVVzKHtuYW1lOiJkYXRlVGltZUZvcm1hdHRlciIsdHlwZTpkLHB1cmU6ITB9KSxkfSkoKTtjb25zdCBRNXQ9WyJpbnB1''@;'; + put 'put ''dCJdO2Z1bmN0aW9uIEo1dChkLGcpe2lmKDEmZCYmKHJ0KDAsImxhYmVsIiwzKSxZdCgxKSxsdCgpKSwyJmQpe2NvbnN0IGg9SnQoKTt1dCgxKSxqaShoLmxhYmVsKX19ZnVuY3Rpb24gWDV0KGQsZyl7aWYoMSZkKXtjb25zdCBoPWJpKCk7RjAoMCkscnQoMSwiY2xyLWRhdGUtY29udGFpbmVy''@;'; + put 'put ''IikoMiwiaW5wdXQiLDQpLEduKCJjbHJEYXRlQ2hhbmdlIixmdW5jdGlvbih5KXtyZXR1cm4gaXQoaCksYShKdCgpLm9uRGF0ZUlucHV0RmlyZWQoeSkpfSkoImZvY3VzIixmdW5jdGlvbigpe3JldHVybiBpdChoKSxhKEp0KCkuaW5wdXRGb2N1c2VkPSEwKX0pKCJmb2N1c291dCIsZnVuY3Rp''@;'; + put 'put ''b24oKXtyZXR1cm4gaXQoaCksYShKdCgpLmlucHV0Rm9jdXNlZD0hMSl9KSgiZm9jdXNpbiIsZnVuY3Rpb24oeSl7cmV0dXJuIGl0KGgpLGEoSnQoKS5vbkZvY3VzaW5JbnB1dCh5KSl9KSgibW91c2VvdmVyIixmdW5jdGlvbigpe3JldHVybiBpdChoKSxhKEp0KCkub25JbnB1dE1vdXNlT3Zl''@;'; + put 'put ''cigpKX0pKCJtb3VzZW91dCIsZnVuY3Rpb24oKXtyZXR1cm4gaXQoaCksYShKdCgpLm9uSW5wdXRNb3VzZU91dCgpKX0pLG5uKDMsImRhdGVUaW1lRm9ybWF0dGVyIiksbHQoKSgpLEgwKCl9aWYoMiZkKXtjb25zdCBoPUp0KCk7dXQoMiksVHQoImlkIixoLmlucHV0SWQpKCJwbGFjZWhvbGRl''@;'; + put 'put ''ciIsUG4oMyw1LGgudGVtcCwiZGF0ZSIpKSgiY2xyRGF0ZSIsaC52YWx1ZSkoImRpc2FibGVkIixoLmRpc2FibGVkKSxHaSgibGlzdCIsImRhdGFsaXN0XyIraC5pbnB1dElkKX19ZnVuY3Rpb24gSzV0KGQsZyl7aWYoMSZkKXtjb25zdCBoPWJpKCk7RjAoMCkscnQoMSwiaW5wdXQiLDUpLEdu''@;'; + put 'put ''KCJpbnB1dCIsZnVuY3Rpb24oeSl7cmV0dXJuIGl0KGgpLGEoSnQoKS5vbklucHV0RmlyZWQoeSkpfSkoImZvY3VzIixmdW5jdGlvbigpe3JldHVybiBpdChoKSxhKEp0KCkuaW5wdXRGb2N1c2VkPSEwKX0pKCJmb2N1c291dCIsZnVuY3Rpb24oKXtyZXR1cm4gaXQoaCksYShKdCgpLmlucHV0''@;'; + put 'put ''Rm9jdXNlZD0hMSl9KSgiZm9jdXNpbiIsZnVuY3Rpb24oeSl7cmV0dXJuIGl0KGgpLGEoSnQoKS5vbkZvY3VzaW5JbnB1dCh5KSl9KSgibW91c2VvdmVyIixmdW5jdGlvbigpe3JldHVybiBpdChoKSxhKEp0KCkub25JbnB1dE1vdXNlT3ZlcigpKX0pKCJtb3VzZW91dCIsZnVuY3Rpb24oKXty''@;'; + put 'put ''ZXR1cm4gaXQoaCksYShKdCgpLm9uSW5wdXRNb3VzZU91dCgpKX0pLGx0KCksSDAoKX1pZigyJmQpe2NvbnN0IGg9SnQoKTt1dCgxKSxUdCgidmFsdWUiLGgudmFsdWUpKCJpZCIsaC5pbnB1dElkKSgiZGlzYWJsZWQiLGguZGlzYWJsZWQpLEdpKCJsaXN0IiwiZGF0YWxpc3RfIitoLmlucHV0''@;'; + put 'put ''SWQpfX1mdW5jdGlvbiAkNXQoZCxnKXtpZigxJmQpe2NvbnN0IGg9YmkoKTtGMCgwKSxydCgxLCJhcHAtYXV0b2NvbXBsZXRlIiw2LDcpLEduKCJvbklucHV0Q2hhbmdlIixmdW5jdGlvbih5KXtyZXR1cm4gaXQoaCksYShKdCgpLm9uSW5wdXRGaXJlZCh5KSl9KSxOaSgzKSxsdCgpLEgwKCl9''@;'; + put 'put ''aWYoMiZkKXtjb25zdCBoPUp0KCk7dXQoMSksVHQoImlucHV0SWQiLGguaW5wdXRJZCkoInZhbHVlIiwobnVsbD09aC52YWx1ZT9udWxsOmgudmFsdWUudG9TdHJpbmcoKSl8fCIiKSgiZW1pdE9ubHlTZWxlY3RlZCIsaC5lbWl0T25seVNlbGVjdGVkKSgiZGlzYWJsZWQiLGguZGlzYWJsZWQp''@;'; + put 'put ''fX1jb25zdCBxNXQ9WyIqIl07bGV0IENMZT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKCl7dGhpcy5pbnB1dElkPSIiLHRoaXMudmFsdWU9IiIsdGhpcy5kaXNhYmxlZD0hMSx0aGlzLnR5cGU9InRleHQiLHRoaXMuZGlzYWJsZVNvZnRzZWxlY3Q9ITEsdGhpcy5lbWl0T25seVNlbGVjdGVk''@;'; + put 'put ''PSExLHRoaXMudmFsdWVDaGFuZ2U9bmV3IGFyLHRoaXMub25JbnB1dEV2ZW50PW5ldyBhcix0aGlzLmZvY3VzaW5JbnB1dD1uZXcgYXIsdGhpcy50ZW1wPSIiLHRoaXMuaW5wdXRGb2N1c2VkPSExfW5nT25DaGFuZ2VzKGgpe2gudmFsdWUmJmgudmFsdWUuY3VycmVudFZhbHVlIT09aC52YWx1''@;'; + put 'put ''ZS5wcmV2aW91c1ZhbHVlJiZ0aGlzLnZhbHVlQ2hhbmdlLmVtaXQoaC52YWx1ZS5jdXJyZW50VmFsdWUpfW5nT25Jbml0KCl7fW9uSW5wdXRGaXJlZChoKXtjb25zdCB2PWgudGFyZ2V0LnZhbHVlO3RoaXMudGVtcD12LHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh2KSx0aGlzLm9uSW5wdXRFdmVu''@;'; + put 'put ''dC5lbWl0KGgpfW9uRGF0ZUlucHV0RmlyZWQoaCl7dGhpcy50ZW1wPWgsdGhpcy52YWx1ZUNoYW5nZS5lbWl0KGgpLHRoaXMub25JbnB1dEV2ZW50LmVtaXQoaCl9b25JbnB1dE1vdXNlT3V0KCl7dGhpcy5kaXNhYmxlU29mdHNlbGVjdHx8KHRoaXMudmFsdWU9dGhpcy50ZW1wLHRoaXMudGVt''@;'; + put 'put ''cD0iIil9b25JbnB1dE1vdXNlT3Zlcigpe3RoaXMuZGlzYWJsZVNvZnRzZWxlY3R8fCh0aGlzLnRlbXA9dGhpcy52YWx1ZT90aGlzLnZhbHVlOiIiLHRoaXMudmFsdWU9IiIpfW9uRm9jdXNpbklucHV0KGgpe3RoaXMuZm9jdXNpbklucHV0LmVtaXQoaCl9fXJldHVybiBkLlx1MDI3NWZhYz1m''@;'; + put 'put ''dW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1MDI3NWNtcD1UaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJhcHAtc29mdC1zZWxlY3QiXV0sdmlld1F1ZXJ5OmZ1bmN0aW9uKGgsdil7aWYoMSZoJiZ2byhRNXQsNSksMiZoKXtsZXQgeTtIaSh5PSRpKCkpJiYodi5pbnB1dEVsZW1lbnQ9''@;'; + put 'put ''eS5maXJzdCl9fSxpbnB1dHM6e2lucHV0SWQ6ImlucHV0SWQiLGxhYmVsOiJsYWJlbCIsdmFsdWU6InZhbHVlIixkaXNhYmxlZDoiZGlzYWJsZWQiLHR5cGU6InR5cGUiLGRpc2FibGVTb2Z0c2VsZWN0OiJkaXNhYmxlU29mdHNlbGVjdCIsZW1pdE9ubHlTZWxlY3RlZDoiZW1pdE9ubHlTZWxl''@;'; + put 'put ''Y3RlZCJ9LG91dHB1dHM6e3ZhbHVlQ2hhbmdlOiJ2YWx1ZUNoYW5nZSIsb25JbnB1dEV2ZW50OiJvbklucHV0RXZlbnQiLGZvY3VzaW5JbnB1dDoiZm9jdXNpbklucHV0In0sZmVhdHVyZXM6W0QyXSxuZ0NvbnRlbnRTZWxlY3RvcnM6cTV0LGRlY2xzOjUsdmFyczo1LGNvbnN0czpbWyJjbGFz''@;'; + put 'put ''cyIsImNsci1jb250cm9sLWxhYmVsIiw0LCJuZ0lmIl0sWzMsIm5nU3dpdGNoIl0sWzQsIm5nU3dpdGNoQ2FzZSJdLFsxLCJjbHItY29udHJvbC1sYWJlbCJdLFsidHlwZSIsImRhdGUiLCJjbHJEYXRlIiwiIiwzLCJpZCIsInBsYWNlaG9sZGVyIiwiY2xyRGF0ZSIsImRpc2FibGVkIiwiY2xy''@;'; + put 'put ''RGF0ZUNoYW5nZSIsImZvY3VzIiwiZm9jdXNvdXQiLCJmb2N1c2luIiwibW91c2VvdmVyIiwibW91c2VvdXQiXSxbInR5cGUiLCJ0aW1lIiwic3RlcCIsIjEiLDEsImlucHV0LXZhbCIsMywidmFsdWUiLCJpZCIsImRpc2FibGVkIiwiaW5wdXQiLCJmb2N1cyIsImZvY3Vzb3V0IiwiZm9jdXNp''@;'; + put 'put ''biIsIm1vdXNlb3ZlciIsIm1vdXNlb3V0Il0sWyJ0eXBlIiwidGV4dCIsImF1dG9jb21wbGV0ZSIsIm9mZiIsImF1dG9mb2N1cyIsIiIsInRhYmluZGV4IiwiMCIsMSwiaW5wdXQtdmFsIiwzLCJpbnB1dElkIiwidmFsdWUiLCJlbWl0T25seVNlbGVjdGVkIiwiZGlzYWJsZWQiLCJvbklucHV0''@;'; + put 'put ''Q2hhbmdlIl0sWyJpbnB1dCIsIiJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihoLHYpezEmaCYmKEswKCkscm4oMCxKNXQsMiwxLCJsYWJlbCIsMCksRjAoMSwxKSxybigyLFg1dCw0LDgsIm5nLWNvbnRhaW5lciIsMikscm4oMyxLNXQsMiw0LCJuZy1jb250YWluZXIiLDIpLHJuKDQsJDV0LDQsNCwi''@;'; + put 'put ''bmctY29udGFpbmVyIiwyKSxIMCgpKSwyJmgmJihUdCgibmdJZiIsdi5sYWJlbCksdXQoMSksVHQoIm5nU3dpdGNoIix2LnR5cGUpLHV0KDEpLFR0KCJuZ1N3aXRjaENhc2UiLCJkYXRlIiksdXQoMSksVHQoIm5nU3dpdGNoQ2FzZSIsInRpbWUiKSx1dCgxKSxUdCgibmdTd2l0Y2hDYXNlIiwi''@;'; + put 'put ''dGV4dCIpKX0sZGVwZW5kZW5jaWVzOltObyxKZCxpcCxvdCxuWixJZmUsWTV0LFU1dF0sc3R5bGVzOlsiLmlucHV0LXZhbFtfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyOjBweDtiYWNrZ3JvdW5kOiNmYmY4Zjg7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgIzk5OTk5OX1pbnB1dFtfbmdjb250''@;'; + put 'put ''ZW50LSVDT01QJV17d2lkdGg6MTAwJTtvdXRsaW5lOm5vbmV9aW5wdXRbX25nY29udGVudC0lQ09NUCVdOjotd2Via2l0LWNhbGVuZGFyLXBpY2tlci1pbmRpY2F0b3J7bWFyZ2luLXRvcDotNXB4fWNsci1kYXRlLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRp''@;'; + put 'put ''dmU7bWFyZ2luLXRvcDoycHghaW1wb3J0YW50fWNsci1kYXRlLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0gICAgIC5jbHItaW5wdXQtZ3JvdXAtaWNvbi1hY3Rpb257cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6LTVweH1jbHItZGF0ZS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVd''@;'; + put 'put ''ICAgICBpbnB1dDo6LXdlYmtpdC1jYWxlbmRhci1waWNrZXItaW5kaWNhdG9ye21hcmdpbi1yaWdodDoyMHB4O21hcmdpbi10b3A6LTVweH0iXX0pLGR9KSgpLGVndD0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgpe3RoaXMuaGVscGVyU2VydmljZT1ofXRyYW5zZm9ybShoLHY9ImRheXMi''@;'; + put 'put ''LHk9ITEpe2lmKHZvaWQgMD09PWgmJihoPSIiKSwic3RyaW5nIiE9dHlwZW9mIGgmJihoPWgudG9TdHJpbmcoKSksMD09PWgubGVuZ3RoKXtpZigiZGF5cyI9PT12KXJldHVybiBudWxsO2lmKCJzZWNvbmRzIj09PXYpcmV0dXJuIHk/IjExOjAwOjAwIjpudWxsfWxldCBDPXRoaXMuaGVscGVy''@;'; + put 'put ''U2VydmljZS5jb252ZXJ0U2FzRGF5c1RvSnNEYXRlKGgsdik7aWYoND09PWguc3BsaXQoIjoiKS5sZW5ndGgpe2NvbnN0IGo9aC5zcGxpdCgiOiIpO0M9bmV3IERhdGUoalswXSksQy5zZXRIb3VycyhwYXJzZUludChqWzFdKSksQy5zZXRNaW51dGVzKHBhcnNlSW50KGpbMl0pKSxDLnNldFNl''@;'; + put 'put ''Y29uZHMocGFyc2VJbnQoalszXSkpfWVsc2UgaXNOYU4oTnVtYmVyKGgpKSYmKEM9bmV3IERhdGUoaCkpO2xldCBJPWAke3RoaXMuaGVscGVyU2VydmljZS5hZGRMZWFkaW5nWmVybyhDLmdldEhvdXJzKCkudG9TdHJpbmcoKSl9OiR7dGhpcy5oZWxwZXJTZXJ2aWNlLmFkZExlYWRpbmdaZXJv''@;'; + put 'put ''KEMuZ2V0TWludXRlcygpLnRvU3RyaW5nKCkpfToke3RoaXMuaGVscGVyU2VydmljZS5hZGRMZWFkaW5nWmVybyhDLmdldFNlY29uZHMoKS50b1N0cmluZygpKX1gO3JldHVybiB5P0k6Q319cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoS3QoWGMsMTYp''@;'; + put 'put ''KX0sZC5cdTAyNzVwaXBlPVVzKHtuYW1lOiJzYXNUb0pzRGF0ZSIsdHlwZTpkLHB1cmU6ITB9KSxkfSkoKSx0Z3Q9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoKXt0aGlzLmhlbHBlclNlcnZpY2U9aH10cmFuc2Zvcm0oaCl7aWYobnVsbD09aHx8IiI9PT1oKXJldHVybiIiO2xldCB2LHks''@;'; + put 'put ''QztpZigic3RyaW5nIj09dHlwZW9mIGgmJjM9PT1oLnNwbGl0KCI6IikubGVuZ3RoKXtjb25zdCBJPWguc3BsaXQoIjoiKTt2PUlbMF0seT1JWzFdLEM9SVsyXX1lbHNlIm51bWJlciIhPXR5cGVvZiBoJiYoaD1wYXJzZUludChoKSksdj1NYXRoLmZsb29yKGgvMzYwMCkseT1NYXRoLmZsb29y''@;'; + put 'put ''KGglMzYwMC82MCksQz1NYXRoLmZsb29yKGglMzYwMCU2MCk7cmV0dXJuYCR7dGhpcy5oZWxwZXJTZXJ2aWNlLmFkZExlYWRpbmdaZXJvKHYpfToke3RoaXMuaGVscGVyU2VydmljZS5hZGRMZWFkaW5nWmVybyh5KX06JHt0aGlzLmhlbHBlclNlcnZpY2UuYWRkTGVhZGluZ1plcm8oQyl9YH19''@;'; + put 'put ''cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoS3QoWGMsMTYpKX0sZC5cdTAyNzVwaXBlPVVzKHtuYW1lOiJzZWNvbmRzUGFyc2VyIix0eXBlOmQscHVyZTohMH0pLGR9KSgpO2Z1bmN0aW9uIG5ndChkLGcpe2lmKDEmZCYmKHJ0KDAsIm9wdGlvbiIsMjQp''@;'; + put 'put ''LFl0KDEpLGx0KCkpLDImZCl7Y29uc3QgaD1nLiRpbXBsaWNpdDtUdCgic2VsZWN0ZWQiLEp0KCkubG9naWNPcGVyYXRvcnNbMF0pLHV0KDEpLEppKCIgIixoLCIgIil9fWZ1bmN0aW9uIHJndChkLGcpezEmZCYmKHJ0KDAsImRpdiIsMjUpLFl0KDEsIlxuICAgICAgICAiKSxDcigyLCJwcm9n''@;'; + put 'put ''cmVzcyIpLFl0KDMsIlxuICAgICAgIiksbHQoKSl9ZnVuY3Rpb24gaWd0KGQsZyl7MSZkJiZDcigwLCJkaXYiKX1mdW5jdGlvbiBvZ3QoZCxnKXtpZigxJmQmJihydCgwLCJvcHRpb24iLDI0KSxZdCgxKSxsdCgpKSwyJmQpe2NvbnN0IGg9Zy4kaW1wbGljaXQ7VHQoInNlbGVjdGVkIixKdCgy''@;'; + put 'put ''KS5sb2dpY09wZXJhdG9yc1swXSksdXQoMSksSmkoIiAiLGgsIiAiKX19ZnVuY3Rpb24gYWd0KGQsZyl7aWYoMSZkKXtjb25zdCBoPWJpKCk7cnQoMCwiYnV0dG9uIiwzNCksR24oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBpdChoKSxhKEp0KDIpLmFkZEdyb3VwQ2xhdXNlKCkpfSksQ3Io''@;'; + put 'put ''MSwiY2xyLWljb24iLDM1KSxydCgyLCJzcGFuIiksWXQoMywiR3JvdXAiKSxsdCgpKCl9fWZ1bmN0aW9uIGxndChkLGcpe2lmKDEmZCl7Y29uc3QgaD1iaSgpO3J0KDAsImNsci1pY29uIiwzNiksR24oImNsaWNrIixmdW5jdGlvbigpe2l0KGgpO2NvbnN0IHk9SnQoKS5pbmRleDtyZXR1cm4g''@;'; + put 'put ''YShKdCgpLnJlbW92ZUdyb3VwQ2xhdXNlKHkpKX0pLGx0KCl9fWZ1bmN0aW9uIHNndChkLGcpe2lmKDEmZCYmKHJ0KDAsIm9wdGlvbiIpLFl0KDEpLGx0KCkpLDImZCl7Y29uc3QgaD1nLiRpbXBsaWNpdDt1dCgxKSxKaSgiICIsaC5OQU1FLCIgIil9fWZ1bmN0aW9uIHVndChkLGcpe2lmKDEm''@;'; + put 'put ''ZCYmKHJ0KDAsIm9wdGlvbiIpLFl0KDEpLGx0KCkpLDImZCl7Y29uc3QgaD1nLiRpbXBsaWNpdDt1dCgxKSxqaShoKX19ZnVuY3Rpb24gY2d0KGQsZyl7MSZkJiZmMSgwKX1jb25zdCBmZ3Q9ZnVuY3Rpb24oZCxnLGgpe3JldHVybntxdWVyeTpkLHF1ZXJ5SW5kZXg6ZyxjbGF1c2VJbmRleDpo''@;'; + put 'put ''fX07ZnVuY3Rpb24gaGd0KGQsZyl7aWYoMSZkKXtjb25zdCBoPWJpKCk7cnQoMCwiZGl2Iiw1MykoMSwiYnV0dG9uIiw1NCksR24oImNsaWNrIixmdW5jdGlvbigpe2l0KGgpO2NvbnN0IHk9SnQoMikuaW5kZXgsQz1KdCgpLmluZGV4LEk9SnQoKTtyZXR1cm4gSS5jdXJyZW50UXVlcnlJbmRl''@;'; + put 'put ''eD15LGEoSS5jdXJyZW50Q2xhdXNlSW5kZXg9Qyl9KSxZdCgyLCIgQ2hvb3NlIHZhbHVlcyAiKSxsdCgpLHJuKDMsY2d0LDEsMCwibmctY29udGFpbmVyIiw1NSksbHQoKX1pZigyJmQpe2NvbnN0IGg9SnQoMiksdj1oLiRpbXBsaWNpdCx5PWguaW5kZXgsQz1KdCgpLmluZGV4O0p0KCk7Y29u''@;'; + put 'put ''c3QgST15YSgzNyk7dXQoMyksVHQoIm5nVGVtcGxhdGVPdXRsZXQiLEkpKCJuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dCIsSCgyLGZndCx2LHksQykpfX1mdW5jdGlvbiBkZ3QoZCxnKXsxJmQmJmYxKDApfWNvbnN0IHBndD1mdW5jdGlvbihkLGcsaCx2KXtyZXR1cm57cXVlcnk6ZCxxdWVyeUlu''@;'; + put 'put ''ZGV4OmcsY2xhdXNlSW5kZXg6aCxpc0RhdGVUaW1lOnZ9fTtmdW5jdGlvbiBnZ3QoZCxnKXtpZigxJmQmJihydCgwLCJkaXYiLDU2KSxybigxLGRndCwxLDAsIm5nLWNvbnRhaW5lciIsNTUpLGx0KCkpLDImZCl7Y29uc3QgaD1KdCgpLm5nVmFyLHY9SnQoKSx5PXYuJGltcGxpY2l0LEM9di5p''@;'; + put 'put ''bmRleCxJPUp0KCkuaW5kZXgsaj1KdCgpLHVlPXlhKDMxKSxfZT15YSgzMyk7dXQoMSksVHQoIm5nVGVtcGxhdGVPdXRsZXQiLGgmJmoudXNlUGlja2Vycz91ZTpfZSkoIm5nVGVtcGxhdGVPdXRsZXRDb250ZXh0IixyZSgyLHBndCx5LEMsSSxoKSl9fWZ1bmN0aW9uIG1ndChkLGcpezEmZCYm''@;'; + put 'put ''ZjEoMCl9ZnVuY3Rpb24gdmd0KGQsZyl7MSZkJiZmMSgwKX1jb25zdCBBZ3Q9ZnVuY3Rpb24oZCxnLGgsdil7cmV0dXJue3JhbmdlOiJzdGFydCIscXVlcnk6ZCxxdWVyeVZhbHVlSW5kZXg6MCxxdWVyeUluZGV4OmcsY2xhdXNlSW5kZXg6aCxpc0RhdGVUaW1lOnZ9fSx5Z3Q9ZnVuY3Rpb24o''@;'; + put 'put ''ZCxnLGgsdil7cmV0dXJue3JhbmdlOiJlbmQiLHF1ZXJ5OmQscXVlcnlWYWx1ZUluZGV4OjEscXVlcnlJbmRleDpnLGNsYXVzZUluZGV4OmgsaXNEYXRlVGltZTp2fX07ZnVuY3Rpb24gd2d0KGQsZyl7aWYoMSZkJiYocnQoMCwiZGl2Iiw1NykoMSwiZGl2Iiw1OCkscm4oMixtZ3QsMSwwLCJu''@;'; + put 'put ''Zy1jb250YWluZXIiLDU1KSxsdCgpLHJ0KDMsImRpdiIsNTkpLHJuKDQsdmd0LDEsMCwibmctY29udGFpbmVyIiw1NSksbHQoKSgpKSwyJmQpe2NvbnN0IGg9SnQoKS5uZ1Zhcix2PUp0KCkseT12LiRpbXBsaWNpdCxDPXYuaW5kZXgsST1KdCgpLmluZGV4LGo9SnQoKSx1ZT15YSgzMSksX2U9''@;'; + put 'put ''eWEoMzUpO3V0KDIpLFR0KCJuZ1RlbXBsYXRlT3V0bGV0IixoJiZqLnVzZVBpY2tlcnM/dWU6X2UpKCJuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dCIscmUoNCxBZ3QseSxDLEksaCkpLHV0KDIpLFR0KCJuZ1RlbXBsYXRlT3V0bGV0IixoJiZqLnVzZVBpY2tlcnM/dWU6X2UpKCJuZ1RlbXBsYXRl''@;'; + put 'put ''T3V0bGV0Q29udGV4dCIscmUoOSx5Z3QseSxDLEksaCkpfX1mdW5jdGlvbiBiZ3QoZCxnKXtpZigxJmQpe2NvbnN0IGg9YmkoKTtydCgwLCJkaXYiLDYwKSgxLCJsYWJlbCIsNjEpLFl0KDIsIlZhbHVlIiksbHQoKSxydCgzLCJpbnB1dCIsNjIpLEduKCJuZ01vZGVsQ2hhbmdlIixmdW5jdGlv''@;'; + put 'put ''bih5KXtyZXR1cm4gaXQoaCksYShKdCgyKS4kaW1wbGljaXQudmFsdWU9eSl9KSgibmdNb2RlbENoYW5nZSIsZnVuY3Rpb24oeSl7aXQoaCk7Y29uc3QgQz1KdCgyKS5pbmRleCxJPUp0KCkuaW5kZXg7cmV0dXJuIGEoSnQoKS5zZXRWYXJpYWJsZVZhbHVlcyh5LEMsSSkpfSksbHQoKSgpfWlm''@;'; + put 'put ''KDImZCl7Y29uc3QgaD1KdCgyKS4kaW1wbGljaXQ7dXQoMyksVHQoIm5nTW9kZWwiLGgudmFsdWUpfX1mdW5jdGlvbiBfZ3QoZCxnKXtpZigxJmQmJihydCgwLCJkaXYiLDQ4KSxybigxLGhndCw0LDYsImRpdiIsNDkpLHJuKDIsZ2d0LDIsNywiZGl2Iiw1MCkscm4oMyx3Z3QsNSwxNCwiZGl2''@;'; + put 'put ''Iiw1MSkscm4oNCxiZ3QsNCwxLCJkaXYiLDUyKSxsdCgpKSwyJmQpe2NvbnN0IGg9SnQoKS4kaW1wbGljaXQ7dXQoMSksVHQoIm5nSWYiLCJJTiI9PT1oLm9wZXJhdG9yfHwiTk9UIElOIj09PWgub3BlcmF0b3IpLHV0KDEpLFR0KCJuZ0lmIiwiQkVUV0VFTiIhPT1oLm9wZXJhdG9yJiYiSU4i''@;'; + put 'put ''IT09aC5vcGVyYXRvciYmIk5PVCBJTiIhPT1oLm9wZXJhdG9yJiYiTElLRSIhPT1oLm9wZXJhdG9yJiYiQ09OVEFJTlMiIT09aC5vcGVyYXRvciYmIkJFR0lOU19XSVRIIiE9PWgub3BlcmF0b3IpLHV0KDEpLFR0KCJuZ0lmIiwiQkVUV0VFTiI9PT1oLm9wZXJhdG9yKSx1dCgxKSxUdCgibmdJ''@;'; + put 'put ''ZiIsIkxJS0UiPT09aC5vcGVyYXRvcnx8IkJFR0lOU19XSVRIIj09PWgub3BlcmF0b3J8fCJDT05UQUlOUyI9PT1oLm9wZXJhdG9yKX19ZnVuY3Rpb24gQ2d0KGQsZyl7aWYoMSZkKXtjb25zdCBoPWJpKCk7cnQoMCwiZGl2Iiw4KSgxLCJkaXYiLDM3KSgyLCJkaXYiLDM4KSgzLCJhcHAtc29m''@;'; + put 'put ''dC1zZWxlY3QiLDM5KSxHbigidmFsdWVDaGFuZ2UiLGZ1bmN0aW9uKHkpe3JldHVybiBhKGl0KGgpLiRpbXBsaWNpdC52YXJpYWJsZT15KX0pKCJvbklucHV0RXZlbnQiLGZ1bmN0aW9uKHkpe2NvbnN0IEM9aXQoaCksST1DLiRpbXBsaWNpdCxqPUMuaW5kZXgsdWU9SnQoKS5pbmRleDtyZXR1''@;'; + put 'put ''cm4gYShKdCgpLnZhcmlhYmxlSW5wdXRDaGFuZ2UoSS52YXJpYWJsZSxqLHVlLHkpKX0pLHJuKDQsc2d0LDIsMSwib3B0aW9uIiw0MCksbHQoKSgpKCkscnQoNSwiZGl2Iiw0MSkoNiwiY2xyLXNlbGVjdC1jb250YWluZXIiKSg3LCJsYWJlbCIpLFl0KDgsIk9wZXJhdG9yIiksbHQoKSxydCg5''@;'; + put 'put ''LCJzZWxlY3QiLDQyKSxHbigibmdNb2RlbENoYW5nZSIsZnVuY3Rpb24oeSl7cmV0dXJuIGEoaXQoaCkuJGltcGxpY2l0Lm9wZXJhdG9yPXkpfSkoIm5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9uKCl7Y29uc3QgeT1pdChoKSxDPXkuaW5kZXgsST15LiRpbXBsaWNpdCxqPUp0KCkuaW5kZXg7cmV0''@;'; + put 'put ''dXJuIGEoSnQoKS5zZXRWYXJpYWJsZU9wZXJhdG9yKEMsSS5vcGVyYXRvcixqKSl9KSxybigxMCx1Z3QsMiwxLCJvcHRpb24iLDQwKSxsdCgpKCkoKSxybigxMSxfZ3QsNSw0LCJkaXYiLDQzKSxydCgxMiwiZGl2Iiw0NCkoMTMsImJ1dHRvbiIsNDUpLEduKCJjbGljayIsZnVuY3Rpb24oKXtj''@;'; + put 'put ''b25zdCBDPWl0KGgpLmluZGV4LEk9SnQoKS5pbmRleDtyZXR1cm4gYShKdCgpLnJlbW92ZUNsYXVzZShDLEkpKX0pLENyKDE0LCJjbHItaWNvbiIsNDYpKDE1LCJzcGFuIiksbHQoKSxydCgxNiwiYnV0dG9uIiw0NyksR24oImNsaWNrIixmdW5jdGlvbigpe2l0KGgpO2NvbnN0IHk9SnQoKS5p''@;'; + put 'put ''bmRleDtyZXR1cm4gYShKdCgpLmFkZENsYXVzZSh5KSl9KSxDcigxNywiY2xyLWljb24iLDM1KSgxOCwic3BhbiIpLGx0KCkoKSgpfWlmKDImZCl7Y29uc3QgaD1nLiRpbXBsaWNpdCx2PWcuaW5kZXgseT1KdCgpLmluZGV4LEM9SnQoKTtGaSgiaW52YWxpZC1jbGF1c2UiLGguaW52YWxpZENs''@;'; + put 'put ''YXVzZSksdXQoMyksVHQoImlkIiwic2VsZWN0X3ZhbHNfdmFyX2lkIit2KyJfIit5KSgiaW5wdXRJZCIsInZhbHNfdmFyX2lkIit2KyJfIit5KSgiZW1pdE9ubHlTZWxlY3RlZCIsITApKCJ2YWx1ZSIsaC52YXJpYWJsZSksdXQoMSksVHQoIm5nRm9yT2YiLEMuY29scyksdXQoNSksVHQoIm5n''@;'; + put 'put ''TW9kZWwiLGgub3BlcmF0b3IpLHV0KDEpLFR0KCJuZ0Zvck9mIixoLm9wZXJhdG9ycyksdXQoMSksVHQoIm5nVmFyIiwiREFURSI9PT1oLmRkdHlwZXx8IkRBVEVUSU1FIj09PWguZGR0eXBlfHwiVElNRSI9PT1oLmRkdHlwZSksdXQoMiksVHQoImRpc2FibGVkIiwxPT09Qy5jbGF1c2VzLnF1''@;'; + put 'put ''ZXJ5T2JqW3ldLmVsZW1lbnRzLmxlbmd0aCl9fWZ1bmN0aW9uIGtndChkLGcpe2lmKDEmZCl7Y29uc3QgaD1iaSgpO3J0KDAsImRpdiIsMjYpKDEsImRpdiIsOCkoMiwiZGl2IiwyNykoMywiZGl2IiwyOCkoNCwiY2xyLXNlbGVjdC1jb250YWluZXIiKSg1LCJsYWJlbCIpLFl0KDYsIkxvZ2lj''@;'; + put 'put ''IiksbHQoKSxydCg3LCJzZWxlY3QiLDI5KSxHbigibmdNb2RlbENoYW5nZSIsZnVuY3Rpb24oeSl7cmV0dXJuIGEoaXQoaCkuJGltcGxpY2l0LmNsYXVzZUxvZ2ljPXkpfSkoIm5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9uKCl7cmV0dXJuIGl0KGgpLGEoSnQoKS5zZXRMb2dpYygpKX0pLHJuKDgs''@;'; + put 'put ''b2d0LDIsMiwib3B0aW9uIiwxMSksbHQoKSgpKCksQ3IoOSwiYnIiKSxybigxMCxhZ3QsNCwwLCJidXR0b24iLDMwKSxsdCgpLHJ0KDExLCJkaXYiLDMxKSxybigxMixsZ3QsMSwwLCJjbHItaWNvbiIsMzIpLHJuKDEzLENndCwxOSwxMSwiZGl2IiwzMyksbHQoKSgpLENyKDE0LCJiciIpLGx0''@;'; + put 'put ''KCl9aWYoMiZkKXtjb25zdCBoPWcuJGltcGxpY2l0LHY9SnQoKTt1dCgxKSxGaSgiaW52YWxpZC1jbGF1c2UiLGguaW52YWxpZENsYXVzZSksdXQoNiksVHQoIm5nTW9kZWwiLGguY2xhdXNlTG9naWMpKCJkaXNhYmxlZCIsaC5lbGVtZW50cy5sZW5ndGg8MiksdXQoMSksVHQoIm5nRm9yT2Yi''@;'; + put 'put ''LHYubG9naWNPcGVyYXRvcnMpLHV0KDIpLFR0KCJuZ0lmIix2LmlubmVyV2lkdGg+NzY4KSx1dCgyKSxUdCgibmdJZiIsdi5jbGF1c2VzLnF1ZXJ5T2JqLmxlbmd0aD4xKSx1dCgxKSxUdCgibmdGb3JPZiIsaC5lbGVtZW50cyl9fWZ1bmN0aW9uIFNndChkLGcpe2lmKDEmZCl7Y29uc3QgaD1i''@;'; + put 'put ''aSgpO0YwKDApLHJ0KDEsImFwcC1zb2Z0LXNlbGVjdCIsNjUpLEduKCJ2YWx1ZUNoYW5nZSIsZnVuY3Rpb24oeSl7aXQoaCk7Y29uc3QgQz1KdCgpLEk9Qy5xdWVyeSxqPUMucXVlcnlJbmRleCx1ZT1DLmNsYXVzZUluZGV4LF9lPUMucXVlcnlWYWx1ZUluZGV4O3JldHVybiBhKEp0KCkuZGF0''@;'; + put 'put ''ZUNoYW5nZSh5LEksaix1ZSxfZSkpfSksbm4oMiwic2FzVG9Kc0RhdGUiKSxubigzLCJzYXNUb0pzRGF0ZSIpLGx0KCksSDAoKX1pZigyJmQpe2NvbnN0IGg9SnQoKSx2PWgucXVlcnlJbmRleCx5PWguY2xhdXNlSW5kZXgsQz1oLnF1ZXJ5VmFsdWVJbmRleCxJPWgucXVlcnk7dXQoMSksVHQo''@;'; + put 'put ''ImRpc2FibGVTb2Z0c2VsZWN0IiwhMCkoImlucHV0SWQiLCJ2YWxzX2RhdGUiK3YrIl8iK3kpKCJ2YWx1ZSIsdm9pZCAwIT09Qz96dCgyLDMsSS52YWx1ZVtDXSk6enQoMyw1LEkudmFsdWUpKX19ZnVuY3Rpb24gTWd0KGQsZyl7aWYoMSZkKXtjb25zdCBoPWJpKCk7RjAoMCkscnQoMSwiYXBw''@;'; + put 'put ''LXNvZnQtc2VsZWN0Iiw2NiksR24oInZhbHVlQ2hhbmdlIixmdW5jdGlvbih5KXtpdChoKTtjb25zdCBDPUp0KCksST1DLmNsYXVzZUluZGV4LGo9Qy5xdWVyeUluZGV4O3JldHVybiBhKEp0KCkuZ2V0UXVlcnlEYXRlVGltZShJLGopLmRhdGU9eSl9KSgib25JbnB1dEV2ZW50IixmdW5jdGlv''@;'; + put 'put ''bigpe2l0KGgpO2NvbnN0IHk9SnQoKSxDPXkucXVlcnksST15LnF1ZXJ5SW5kZXgsaj15LmNsYXVzZUluZGV4LHVlPXkucXVlcnlWYWx1ZUluZGV4O3JldHVybiBhKEp0KCkuZGF0ZVRpbWVDaGFuZ2UoQyxJLGosdWUpKX0pLG5uKDIsInNhc1RvSnNEYXRlIiksbm4oMywic2FzVG9Kc0RhdGUi''@;'; + put 'put ''KSxsdCgpLHJ0KDQsImFwcC1zb2Z0LXNlbGVjdCIsNjcpLEduKCJ2YWx1ZUNoYW5nZSIsZnVuY3Rpb24oeSl7aXQoaCk7Y29uc3QgQz1KdCgpLEk9Qy5jbGF1c2VJbmRleCxqPUMucXVlcnlJbmRleDtyZXR1cm4gYShKdCgpLmdldFF1ZXJ5RGF0ZVRpbWUoSSxqKS50aW1lPXkpfSkoIm9uSW5w''@;'; + put 'put ''dXRFdmVudCIsZnVuY3Rpb24oKXtpdChoKTtjb25zdCB5PUp0KCksQz15LnF1ZXJ5LEk9eS5xdWVyeUluZGV4LGo9eS5jbGF1c2VJbmRleCx1ZT15LnF1ZXJ5VmFsdWVJbmRleDtyZXR1cm4gYShKdCgpLmRhdGVUaW1lQ2hhbmdlKEMsSSxqLHVlKSl9KSxubig1LCJzYXNUb0pzRGF0ZSIpLG5u''@;'; + put 'put ''KDYsInNhc1RvSnNEYXRlIiksbHQoKSxIMCgpfWlmKDImZCl7Y29uc3QgaD1KdCgpLHY9aC5xdWVyeUluZGV4LHk9aC5jbGF1c2VJbmRleCxDPWgucXVlcnlWYWx1ZUluZGV4LEk9aC5xdWVyeTt1dCgxKSxUdCgiZGlzYWJsZVNvZnRzZWxlY3QiLCEwKSgiaW5wdXRJZCIsInZhbHNfZGF0ZSIr''@;'; + put 'put ''disiXyIreSkoInZhbHVlIix2b2lkIDAhPT1DP1BuKDIsNixJLnZhbHVlW0NdLCJzZWNvbmRzIik6UG4oMyw5LEkudmFsdWUsInNlY29uZHMiKSksdXQoMyksVHQoImRpc2FibGVTb2Z0c2VsZWN0IiwhMCkoImlucHV0SWQiLCJ2YWxzX3RpbWUiK3YrIl8iK3kpKCJ2YWx1ZSIsdm9pZCAwIT09''@;'; + put 'put ''Qz9Ubig1LDEyLEkudmFsdWVbQ10sInNlY29uZHMiLCEwKTpUbig2LDE2LEkudmFsdWUsInNlY29uZHMiLCEwKSl9fWZ1bmN0aW9uIEVndChkLGcpe2lmKDEmZCl7Y29uc3QgaD1iaSgpO0YwKDApLHJ0KDEsImFwcC1zb2Z0LXNlbGVjdCIsNjgpLEduKCJvbklucHV0RXZlbnQiLGZ1bmN0aW9u''@;'; + put 'put ''KHkpe2l0KGgpO2NvbnN0IEM9SnQoKSxJPUMucXVlcnksaj1DLnF1ZXJ5SW5kZXgsdWU9Qy5jbGF1c2VJbmRleCxfZT1DLnF1ZXJ5VmFsdWVJbmRleDtyZXR1cm4gYShKdCgpLnRpbWVDaGFuZ2UoeSxJLGosdWUsX2UpKX0pLG5uKDIsInNlY29uZHNQYXJzZXIiKSxubigzLCJzZWNvbmRzUGFy''@;'; + put 'put ''c2VyIiksbHQoKSxIMCgpfWlmKDImZCl7Y29uc3QgaD1KdCgpLHY9aC5xdWVyeUluZGV4LHk9aC5jbGF1c2VJbmRleCxDPWgucXVlcnlWYWx1ZUluZGV4LEk9aC5xdWVyeTt1dCgxKSxUdCgiZGlzYWJsZVNvZnRzZWxlY3QiLCEwKSgiaW5wdXRJZCIsInZhbHNfIit2KyJfIit5KSgidmFsdWUi''@;'; + put 'put ''LHZvaWQgMCE9PUM/enQoMiwzLEkudmFsdWVbQ10pOnp0KDMsNSxJLnZhbHVlKSl9fWZ1bmN0aW9uIHhndChkLGcpezEmZCYmKEYwKDAsNjMpLHJuKDEsU2d0LDQsNywibmctY29udGFpbmVyIiw2NCkscm4oMixNZ3QsNywyMCwibmctY29udGFpbmVyIiw2NCkscm4oMyxFZ3QsNCw3LCJuZy1j''@;'; + put 'put ''b250YWluZXIiLDY0KSxIMCgpKSwyJmQmJihUdCgibmdTd2l0Y2giLGcucXVlcnkuZGR0eXBlKSx1dCgxKSxUdCgibmdTd2l0Y2hDYXNlIiwiREFURSIpLHV0KDEpLFR0KCJuZ1N3aXRjaENhc2UiLCJEQVRFVElNRSIpLHV0KDEpLFR0KCJuZ1N3aXRjaENhc2UiLCJUSU1FIikpfWZ1bmN0aW9u''@;'; + put 'put ''IFRndChkLGcpe2lmKDEmZCYmKHJ0KDAsIm9wdGlvbiIsNzEpLFl0KDEpLGx0KCkpLDImZCl7Y29uc3QgaD1nLiRpbXBsaWNpdDtUdCgidmFsdWUiLGgudW5mb3JtYXR0ZWQpLHV0KDEpLEppKCIgIixoLmZvcm1hdHRlZC50cmltKCksIiAiKX19ZnVuY3Rpb24gSWd0KGQsZyl7aWYoMSZkKXtj''@;'; + put 'put ''b25zdCBoPWJpKCk7cnQoMCwiYXBwLXNvZnQtc2VsZWN0Iiw2OSksR24oInZhbHVlQ2hhbmdlIixmdW5jdGlvbih5KXtyZXR1cm4gYShpdChoKS5xdWVyeS52YWx1ZT15KX0pKCJvbklucHV0RXZlbnQiLGZ1bmN0aW9uKHkpe2NvbnN0IEM9aXQoaCksST1DLnF1ZXJ5SW5kZXgsaj1DLmNsYXVz''@;'; + put 'put ''ZUluZGV4O3JldHVybiBhKEp0KCkuc2V0VmFyaWFibGVWYWx1ZXMoeS50YXJnZXQudmFsdWUsSSxqKSl9KSxybigxLFRndCwyLDIsIm9wdGlvbiIsNzApLGx0KCl9aWYoMiZkKXtjb25zdCBoPWcucXVlcnk7VHQoImlucHV0SWQiLCJ2YWxzXyIrZy5xdWVyeUluZGV4KyJfIitnLmNsYXVzZUlu''@;'; + put 'put ''ZGV4KSgidmFsdWUiLGgudmFsdWUpLHV0KDEpLFR0KCJuZ0Zvck9mIixoLnZhbHVlcyl9fWZ1bmN0aW9uIERndChkLGcpe2lmKDEmZCYmKHJ0KDAsIm9wdGlvbiIsNzEpLFl0KDEpLGx0KCkpLDImZCl7Y29uc3QgaD1nLiRpbXBsaWNpdDtUdCgidmFsdWUiLGguZm9ybWF0dGVkKSx1dCgxKSxK''@;'; + put 'put ''aSgiICIsaC5mb3JtYXR0ZWQsIiAiKX19ZnVuY3Rpb24gTGd0KGQsZyl7aWYoMSZkKXtjb25zdCBoPWJpKCk7cnQoMCwiYXBwLXNvZnQtc2VsZWN0Iiw3MiksR24oInZhbHVlQ2hhbmdlIixmdW5jdGlvbih5KXtjb25zdCBDPWl0KGgpO3JldHVybiBhKEMucXVlcnkudmFsdWVbQy5xdWVyeVZh''@;'; + put 'put ''bHVlSW5kZXhdPXkpfSkoIm9uSW5wdXRFdmVudCIsZnVuY3Rpb24oKXtjb25zdCB5PWl0KGgpLEM9eS5xdWVyeSxJPXkucXVlcnlJbmRleCxqPXkuY2xhdXNlSW5kZXg7cmV0dXJuIGEoSnQoKS5zZXRWYXJpYWJsZVZhbHVlcyhDLnZhbHVlLEksaikpfSkscm4oMSxEZ3QsMiwyLCJvcHRpb24i''@;'; + put 'put ''LDcwKSxsdCgpfWlmKDImZCl7Y29uc3QgaD1nLnJhbmdlLHY9Zy5xdWVyeSx5PWcucXVlcnlWYWx1ZUluZGV4O1R0KCJpbnB1dElkIiwidmFscy0iK2grIl8iK2cucXVlcnlJbmRleCsiXyIrZy5jbGF1c2VJbmRleCkoInZhbHVlIix2LnZhbHVlW3ldKSgiZGlzYWJsZWQiLHZvaWQgMCE9PXkm''@;'; + put 'put ''JiJzdGFydCIhPT1oJiYhdi52YWx1ZVswXSksdXQoMSksVHQoIm5nRm9yT2YiLHYudmFsdWVzKX19ZnVuY3Rpb24gT2d0KGQsZyl7MSZkJiYocnQoMCwiaDUiLDgwKSxZdCgxLCIgTm8gdmFsdWVzIGF2YWlsYWJsZS4gIiksbHQoKSl9ZnVuY3Rpb24gUmd0KGQsZyl7aWYoMSZkKXtjb25zdCBo''@;'; + put 'put ''PWJpKCk7cnQoMCwiY2xyLWNoZWNrYm94LXdyYXBwZXIiKSgxLCJpbnB1dCIsODIpLEduKCJuZ01vZGVsQ2hhbmdlIixmdW5jdGlvbih5KXtjb25zdCBJPWl0KGgpLmluZGV4O3JldHVybiBhKEp0KDIpLnF1ZXJ5LnZhbHVlW0ldLmNoZWNrZWQ9eSl9KSgibmdNb2RlbENoYW5nZSIsZnVuY3Rp''@;'; + put 'put ''b24oeSl7aXQoaCk7Y29uc3QgQz1KdCgyKSxJPUMucXVlcnlJbmRleCxqPUMuY2xhdXNlSW5kZXg7cmV0dXJuIGEoSnQoKS5zZXRWYXJpYWJsZVZhbHVlcyh5LEksaikpfSksbHQoKSxydCgyLCJsYWJlbCIpLFl0KDMpLGx0KCkoKX1pZigyJmQpe2NvbnN0IGg9Zy4kaW1wbGljaXQsdj1nLmlu''@;'; + put 'put ''ZGV4LHk9SnQoMikucXVlcnk7dXQoMSksVHQoIm5nTW9kZWwiLHkudmFsdWVbdl0uY2hlY2tlZCksdXQoMiksSmkoIiAiLGguZm9ybWF0dGVkLCIgIil9fWZ1bmN0aW9uIEJndChkLGcpe2lmKDEmZCYmKHJ0KDAsInNlY3Rpb24iLDgxKSgxLCJjbHItY2hlY2tib3gtY29udGFpbmVyIikscm4o''@;'; + put 'put ''MixSZ3QsNCwyLCJjbHItY2hlY2tib3gtd3JhcHBlciIsNDApLGx0KCkoKSksMiZkKXtjb25zdCBoPUp0KCkucXVlcnk7dXQoMiksVHQoIm5nRm9yT2YiLGgudmFsdWVzKX19ZnVuY3Rpb24gUGd0KGQsZyl7aWYoMSZkKXtjb25zdCBoPWJpKCk7cnQoMCwiY2xyLW1vZGFsIiw3MykoMSwiaDMi''@;'; + put 'put ''LDc0KSxZdCgyLCJTZWxlY3QgdmFsdWVzIiksbHQoKSxydCgzLCJkaXYiLDc1KSxybig0LE9ndCwyLDAsImg1Iiw3Nikscm4oNSxCZ3QsMywxLCJzZWN0aW9uIiw3NyksbHQoKSxydCg2LCJkaXYiLDc4KSg3LCJidXR0b24iLDc5KSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7aXQoaCk7Y29uc3Qg''@;'; + put 'put ''eT1KdCgpO3JldHVybiB5LmN1cnJlbnRRdWVyeUluZGV4PS0xLGEoeS5jdXJyZW50Q2xhdXNlSW5kZXg9LTEpfSksWXQoOCwiIEFwcGx5ICIpLGx0KCkoKSgpfWlmKDImZCl7Y29uc3QgaD1nLnF1ZXJ5LHY9Zy5xdWVyeUluZGV4LHk9Zy5jbGF1c2VJbmRleCxDPUp0KCk7VHQoImNsck1vZGFs''@;'; + put 'put ''T3BlbiIsQy5jdXJyZW50UXVlcnlJbmRleD09PXYmJkMuY3VycmVudENsYXVzZUluZGV4PT09eSkoImNsck1vZGFsQ2xvc2FibGUiLCExKSx1dCg0KSxUdCgibmdJZiIsIUMuaXNBcnIoaC52YWx1ZSkpLHV0KDEpLFR0KCJuZ0lmIixDLmlzQXJyKGgudmFsdWUpKX19IWZ1bmN0aW9uICRyZShk''@;'; + put 'put ''LGcsaCl7KGZ1bmN0aW9uIHhQKGQsZyxoKXsic3RyaW5nIiE9dHlwZW9mIGcmJihoPWcsZz1kW01vLkxvY2FsZUlkXSksZz1nLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvXy9nLCItIiksazVbZ109ZCxoJiYoazVbZ11bTW8uRXh0cmFEYXRhXT1oKX0pKGQsZyxoKX0oWjV0KTtsZXQga0xlPSgo''@;'; + put 'put ''KT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2LHksQyl7dGhpcy5zYXNTdG9yZVNlcnZpY2U9aCx0aGlzLmV2ZW50U2VydmljZT12LHRoaXMuaGVscGVyU2VydmljZT15LHRoaXMuY2RmPUMsdGhpcy5jbGF1c2VBbXQ9WyIiXSx0aGlzLm51bU9wZXJhdG9ycz1bIj0iLCI8IiwiPiIsIjw9Iiwi''@;'; + put 'put ''Pj0iLCJCRVRXRUVOIiwiSU4iLCJOT1QgSU4iLCJORSJdLHRoaXMuY2hhck9wZXJhdG9ycz1bIj0iLCI8IiwiPiIsIjw9IiwiPj0iLCJDT05UQUlOUyIsIklOIiwiTk9UIElOIiwiTkUiXSx0aGlzLm5vdEluPSExLHRoaXMubm90QXJyPSEwLHRoaXMud2FzQmV0d2Vlbj0hMSx0aGlzLndoZXJl''@;'; + put 'put ''Q2xhdXNlTG9hZGluZz0hMSx0aGlzLmR5bmFtaWNXaGVyZUNsYXVzZT0hMCx0aGlzLnVzZVBpY2tlcnM9ITEsdGhpcy5xdWVyeU9iaj17ZWxlbWVudHM6W3tsb2dpYzpudWxsLHR5cGU6bnVsbCxkZHR5cGU6bnVsbCx2YXJpYWJsZTpudWxsLG9wZXJhdG9yOm51bGwsdmFsdWU6bnVsbCx2YWx1''@;'; + put 'put ''ZXM6W10sb3BlcmF0b3JzOltdfV0sY2xhdXNlTG9naWM6IiIsaW52YWxpZENsYXVzZTohMX0sdGhpcy5zZWxWYXI9e2luZGV4Om51bGwsZm9ybWF0Om51bGwsdHlwZTpudWxsfSx0aGlzLmluT2JqPVt7Y2hlY2tlZDohMSx2YWx1ZTpudWxsfV0sdGhpcy5ncm91cExvZ2ljPSJBTkQiLHRoaXMu''@;'; + put 'put ''Y2xhdXNlcz17cXVlcnlPYmo6W3RoaXMucXVlcnlPYmpdLGNsYXVzZUxvZ2ljOltdLGdyb3VwTG9naWM6dGhpcy5ncm91cExvZ2ljfSx0aGlzLmxvZ2ljT3BlcmF0b3JzPVsiQU5EIiwiT1IiXSx0aGlzLnF1ZXJ5RGF0ZVRpbWU9W10sdGhpcy5jdXJyZW50Q2xhdXNlSW5kZXg9LTEsdGhpcy5j''@;'; + put 'put ''dXJyZW50UXVlcnlJbmRleD0tMSx0aGlzLnBlbmRpbmdJTlZhbHVlc1NldD1udWxsLHRoaXMuaW5uZXJXaWR0aD13aW5kb3cuc2NyZWVuLndpZHRoLHRoaXMuaW5uZXJXaWR0aD43NjgmJih0aGlzLm5vQm9yZGVyPSJib3JkZXItbGVmdDogMnB4IHNvbGlkIGdyYXk7Iil9Z2V0UXVlcnlEYXRl''@;'; + put 'put ''VGltZShoLHYpe2xldCB5PXRoaXMucXVlcnlEYXRlVGltZS5maW5kKEM9PkMuY2xhdXNlSW5kZXg9PT1oJiZDLnF1ZXJ5SW5kZXg9PT12KTtpZigheSl7Y29uc3QgQz10aGlzLnF1ZXJ5RGF0ZVRpbWUucHVzaCh7Y2xhdXNlSW5kZXg6aCxxdWVyeUluZGV4OnYsZGF0ZToiIix0aW1lOiIifSkt''@;'; + put 'put ''MTt5PXRoaXMucXVlcnlEYXRlVGltZVtDXX1yZXR1cm4geX11c2VQaWNrZXJzQ2hhbmdlKCl7dGhpcy5xdWVyeURhdGVUaW1lPVtdfXJlc2V0RmlsdGVyKCl7dGhpcy53aGVyZVN0cmluZz12b2lkIDAsdGhpcy53aGVyZUNsYXVzZT12b2lkIDAsdGhpcy5xdWVyeU9iaj17ZWxlbWVudHM6W3ts''@;'; + put 'put ''b2dpYzpudWxsLHR5cGU6bnVsbCxkZHR5cGU6bnVsbCx2YXJpYWJsZTpudWxsLG9wZXJhdG9yOm51bGwsdmFsdWU6bnVsbCx2YWx1ZXM6W10sb3BlcmF0b3JzOltdfV19LHRoaXMuY2xhdXNlcz17cXVlcnlPYmo6W3RoaXMucXVlcnlPYmpdLGNsYXVzZUxvZ2ljOltdLGdyb3VwTG9naWM6dGhp''@;'; + put 'put ''cy5ncm91cExvZ2ljfSx0aGlzLndoZXJlQ2xhdXNlRm4oITApfXNldFRvR2xvYmFscygpeygiaG9tZSI9PT1uaS5yb290UGFyYW18fCJlZGl0b3IiPT09bmkucm9vdFBhcmFtKSYmKG5pLmVkaXRvci5maWx0ZXIuZ3JvdXBMb2dpYz10aGlzLmdyb3VwTG9naWMsInN0cmluZyI9PXR5cGVvZiB0''@;'; + put 'put ''aGlzLndoZXJlQ2xhdXNlJiYobmkuZWRpdG9yLmZpbHRlci53aGVyZUNsYXVzZT10aGlzLndoZXJlQ2xhdXNlKSwic3RyaW5nIj09dHlwZW9mIHRoaXMubGliZHMmJihuaS5lZGl0b3IuZmlsdGVyLmxpYmRzPXRoaXMubGliZHMpLG5pLmVkaXRvci5maWx0ZXIuY2xhdXNlcz10aGlzLmNsYXVz''@;'; + put 'put ''ZXMpLCJ2aWV3Ij09PW5pLnJvb3RQYXJhbSYmKG5pLnZpZXdlci5maWx0ZXIuZ3JvdXBMb2dpYz10aGlzLmdyb3VwTG9naWMsInN0cmluZyI9PXR5cGVvZiB0aGlzLndoZXJlQ2xhdXNlJiYobmkudmlld2VyLmZpbHRlci53aGVyZUNsYXVzZT10aGlzLndoZXJlQ2xhdXNlKSwic3RyaW5nIj09''@;'; + put 'put ''dHlwZW9mIHRoaXMubGliZHMmJihuaS52aWV3ZXIuZmlsdGVyLmxpYmRzPXRoaXMubGliZHMpLG5pLnZpZXdlci5maWx0ZXIuY2xhdXNlcz10aGlzLmNsYXVzZXMpfWdldEZyb21HbG9iYWxzKCl7KCJob21lIj09PW5pLnJvb3RQYXJhbXx8ImVkaXRvciI9PT1uaS5yb290UGFyYW0pJiYobmku''@;'; + put 'put ''ZWRpdG9yLmZpbHRlci5jb2xzLmxlbmd0aD4wJiYodGhpcy5jb2xzPUpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkobmkuZWRpdG9yLmZpbHRlci5jb2xzKSkpLG5pLmVkaXRvci5maWx0ZXIudmFscy5sZW5ndGg+MCYmKHRoaXMudmFscz1KU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KG5pLmVk''@;'; + put 'put ''aXRvci5maWx0ZXIudmFscykpKSwiIiE9PW5pLmVkaXRvci5maWx0ZXIuZ3JvdXBMb2dpYyYmKHRoaXMuZ3JvdXBMb2dpYz1uaS5lZGl0b3IuZmlsdGVyLmdyb3VwTG9naWMsdGhpcy53aGVyZUNsYXVzZT1uaS5lZGl0b3IuZmlsdGVyLndoZXJlQ2xhdXNlLHRoaXMubGliZHM9bmkuZWRpdG9y''@;'; + put 'put ''LmZpbHRlci5saWJkcyx0aGlzLmNsYXVzZXM9bmkuZWRpdG9yLmZpbHRlci5jbGF1c2VzLHRoaXMud2hlcmVDbGF1c2VGbigpKSksInZpZXciPT09bmkucm9vdFBhcmFtJiYobmkudmlld2VyLmZpbHRlci5jb2xzLmxlbmd0aD4wJiYodGhpcy5jb2xzPUpTT04ucGFyc2UoSlNPTi5zdHJpbmdp''@;'; + put 'put ''Znkobmkudmlld2VyLmZpbHRlci5jb2xzKSkpLG5pLnZpZXdlci5maWx0ZXIudmFscy5sZW5ndGg+MCYmKHRoaXMudmFscz1KU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KG5pLnZpZXdlci5maWx0ZXIudmFscykpKSwiIiE9PW5pLnZpZXdlci5maWx0ZXIuZ3JvdXBMb2dpYyYmKHRoaXMuZ3Jv''@;'; + put 'put ''dXBMb2dpYz1uaS52aWV3ZXIuZmlsdGVyLmdyb3VwTG9naWMsdGhpcy53aGVyZUNsYXVzZT1uaS52aWV3ZXIuZmlsdGVyLndoZXJlQ2xhdXNlLHRoaXMubGliZHM9bmkudmlld2VyLmZpbHRlci5saWJkcyx0aGlzLmNsYXVzZXM9bmkudmlld2VyLmZpbHRlci5jbGF1c2VzLHRoaXMud2hlcmVD''@;'; + put 'put ''bGF1c2VGbigpKSl9c2V0R3JvdXBMb2dpYyhoKXt0aGlzLmdyb3VwTG9naWM9aCx0aGlzLmNsYXVzZXMuZ3JvdXBMb2dpYz1oLHRoaXMud2hlcmVDbGF1c2VGbigpLHRoaXMuc2V0VG9HbG9iYWxzKCl9ZGF0ZUNoYW5nZShoLHYseSxDLEkpe2xldCBqPXRoaXMuaGVscGVyU2VydmljZS5jb252''@;'; + put 'put ''ZXJ0SnNEYXRlVG9TYXNEYXRlKGgpOyJCRVRXRUVOIj09PXYub3BlcmF0b3ImJnZvaWQgMCE9PUkmJih0aGlzLmNsYXVzZXMucXVlcnlPYmpbQ10uZWxlbWVudHNbeV0udmFsdWVbSV09aiksdGhpcy5zZXRWYXJpYWJsZVZhbHVlcyhqLHksQyl9ZGF0ZVRpbWVDaGFuZ2UoaCx2LHksQyl7Y29u''@;'; + put 'put ''c3QgST10aGlzLmdldFF1ZXJ5RGF0ZVRpbWUoeSx2KTtpZigiIj09PUkuZGF0ZSl7aWYoIiI9PT1oLnZhbHVlKXJldHVybjtJLmRhdGU9aC52YWx1ZS5zcGxpdCgiOiIpWzBdfWNvbnN0IGo9cGFyc2VJbnQoSS50aW1lLnNwbGl0KCI6IilbMF0pLHVlPXBhcnNlSW50KEkudGltZS5zcGxpdCgi''@;'; + put 'put ''OiIpWzFdKSxfZT1wYXJzZUludChJLnRpbWUuc3BsaXQoIjoiKVsyXSl8fDA7bGV0IEJlPW5ldyBEYXRlKEkuZGF0ZSksTmU9bmV3IERhdGUoQmUuZ2V0RnVsbFllYXIoKSxCZS5nZXRNb250aCgpLEJlLmdldERhdGUoKSxqLHVlLF9lKSxLZT10aGlzLmhlbHBlclNlcnZpY2UuY29udmVydEpz''@;'; + put 'put ''RGF0ZVRvU2FzRGF0ZShOZSwic2Vjb25kcyIpOyJCRVRXRUVOIj09PWgub3BlcmF0b3ImJnZvaWQgMCE9PUMmJih0aGlzLmNsYXVzZXMucXVlcnlPYmpbeV0uZWxlbWVudHNbdl0udmFsdWVbQ109S2UpLHRoaXMuc2V0VmFyaWFibGVWYWx1ZXMoS2Usdix5KX10aW1lQ2hhbmdlKGgsdix5LEMs''@;'; + put 'put ''SSl7aD1oLnRhcmdldC52YWx1ZTtsZXQgS2U9NjAqcGFyc2VJbnQoaC5zcGxpdCgiOiIpWzBdKSo2MCs2MCpwYXJzZUludChoLnNwbGl0KCI6IilbMV0pKyhwYXJzZUludChoLnNwbGl0KCI6IilbMl0pfHwwKTsiQkVUV0VFTiI9PT12Lm9wZXJhdG9yJiZ2b2lkIDAhPT1JJiYodGhpcy5jbGF1''@;'; + put 'put ''c2VzLnF1ZXJ5T2JqW0NdLmVsZW1lbnRzW3ldLnZhbHVlW0ldPUtlKSx0aGlzLnNldFZhcmlhYmxlVmFsdWVzKEtlLHksQyl9ZHluYW1pY1doZXJlQ2xhdXNlQ3JlYXRvcihoLHYpe2xldCB5PVtdO2lmKHRoaXMuY2xhdXNlcy5xdWVyeU9iai5sZW5ndGg+MXx8dGhpcy5jbGF1c2VzLnF1ZXJ5''@;'; + put 'put ''T2JqW2hdLmVsZW1lbnRzLmxlbmd0aD4xKWZvcihsZXQgQz0wO0M8dGhpcy5jbGF1c2VzLnF1ZXJ5T2JqLmxlbmd0aDtDKyspZm9yKGxldCBJPTA7STx0aGlzLmNsYXVzZXMucXVlcnlPYmpbQ10uZWxlbWVudHMubGVuZ3RoO0krKyl7aWYoQz09PWgmJkk9PT12fHxbbnVsbCx2b2lkIDBdLmlu''@;'; + put 'put ''Y2x1ZGVzKHRoaXMuY2xhdXNlcy5xdWVyeU9ialtDXS5lbGVtZW50c1tJXS52YXJpYWJsZSl8fFtudWxsLHZvaWQgMF0uaW5jbHVkZXModGhpcy5jbGF1c2VzLnF1ZXJ5T2JqW0NdLmVsZW1lbnRzW0ldLm9wZXJhdG9yKXx8W251bGwsdm9pZCAwXS5pbmNsdWRlcyh0aGlzLmNsYXVzZXMucXVl''@;'; + put 'put ''cnlPYmpbQ10uZWxlbWVudHNbSV0udmFsdWUpKWNvbnRpbnVlO2xldCBqPSIiO2NvbnN0IHVlPXRoaXMuY2xhdXNlcy5xdWVyeU9ialtDXS5lbGVtZW50c1tJXS5vcGVyYXRvcixfZT10aGlzLmNsYXVzZXMucXVlcnlPYmpbQ10uZWxlbWVudHNbSV0udmFyaWFibGU7IkJFVFdFRU4iPT09dWU/''@;'; + put 'put ''aj1gJHt0aGlzLmNsYXVzZXMucXVlcnlPYmpbQ10uZWxlbWVudHNbSV0udmFsdWVbMF19IEFORCAke3RoaXMuY2xhdXNlcy5xdWVyeU9ialtDXVtJXS52YWx1ZVsxXX1gOiJJTiI9PT11ZXx8Ik5PVCBJTiI9PT11ZT8odGhpcy5jbGF1c2VzLnF1ZXJ5T2JqW0NdW0ldLnZhbHVlLmZvckVhY2go''@;'; + put 'put ''QmU9PntpZihCZS5jaGVja2VkKXtsZXQgTmU9QmUudmFsOyJzdHJpbmciIT10eXBlb2YgTmV8fCgwLGJ3LmlzU3BlY2lhbE1pc3NpbmcpKE5lKT9qLmxlbmd0aD4wP2orPWAsJHtOZX1gOmo9YCgke05lfWA6ai5sZW5ndGg+MD9qKz1gLCcke05lfSdgOmo9YCgnJHtOZX0nYH19KSxqLmxlbmd0''@;'; + put 'put ''aD4wJiYoais9IikiKSk6IiI9PT10aGlzLmNsYXVzZXMucXVlcnlPYmpbQ10uZWxlbWVudHNbSV0udmFsdWU/aj0iY2hhciI9PT10aGlzLmNsYXVzZXMucXVlcnlPYmpbQ10uZWxlbWVudHNbSV0udHlwZT8iJyAnIjoiLiI6ImNoYXIiPT09dGhpcy5jbGF1c2VzLnF1ZXJ5T2JqW0NdLmVsZW1l''@;'; + put 'put ''bnRzW0ldLnR5cGUmJihqPWAnJHt0aGlzLmNsYXVzZXMucXVlcnlPYmpbQ10uZWxlbWVudHNbSV0udmFsdWV9J2ApLHkucHVzaCh7R1JPVVBfTE9HSUM6dGhpcy5jbGF1c2VzLmdyb3VwTG9naWMsU1VCR1JPVVBfTE9HSUM6dGhpcy5jbGF1c2VzLnF1ZXJ5T2JqW0NdLmNsYXVzZUxvZ2ljfHwi''@;'; + put 'put ''QU5EIixTVUJHUk9VUF9JRDpDLFZBUklBQkxFX05NOl9lLE9QRVJBVE9SX05NOnVlLFJBV19WQUxVRTpqfHx0aGlzLmNsYXVzZXMucXVlcnlPYmpbQ10uZWxlbWVudHNbSV0udmFsdWV9KX1yZXR1cm4geX1nZXRWYWx1ZXMoaCx2LHkpe3JldHVybiBubyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVu''@;'; + put 'put ''Y3Rpb24qKCl7dGhpcy53aGVyZUNsYXVzZUxvYWRpbmc9ITA7bGV0IEM9IiI7dm9pZCAwIT09dGhpcy5saWJkcyYmKEM9dGhpcy5saWJkcyksdGhpcy5jbGVhclZhbHVlcyh2LHkpLHRoaXMuY2xhdXNlcy5xdWVyeU9ialt5XS5lbGVtZW50c1t2XS52YWx1ZXM9W10sdGhpcy5jbGF1c2VzLnF1''@;'; + put 'put ''ZXJ5T2JqW3ldLmVsZW1lbnRzW3ZdLnZhbHVlPSIiLHRoaXMuY2xhdXNlcy5xdWVyeU9ialt5XS5lbGVtZW50c1t2XS5vcGVyYXRvcj0iPSIsdGhpcy5jbGF1c2VzLnF1ZXJ5T2JqW3ldLmVsZW1lbnRzW3ZdLnZhcmlhYmxlPWg7dHJ5e2lmKHZvaWQgMCE9PXRoaXMuY29scyl7Zm9yKGxldCBf''@;'; + put 'put ''ZT0wO19lPHRoaXMuY29scy5sZW5ndGg7X2UrKyl0aGlzLmNvbHNbX2VdLk5BTUU9PT1oJiYodGhpcy5zZWxWYXIuaW5kZXg9X2UpO2NvbnN0IEk9dGhpcy5jb2xzW3RoaXMuc2VsVmFyLmluZGV4XS5ERFRZUEU7dGhpcy5jbGF1c2VzLnF1ZXJ5T2JqW3ldLmVsZW1lbnRzW3ZdLmRkdHlwZT1J''@;'; + put 'put ''LHRoaXMuY2xhdXNlcy5xdWVyeU9ialt5XS5lbGVtZW50c1t2XS50eXBlPXRoaXMuY29sc1t0aGlzLnNlbFZhci5pbmRleF0uVFlQRSx0aGlzLmNsYXVzZXMucXVlcnlPYmpbeV0uZWxlbWVudHNbdl0ub3BlcmF0b3JzPSJudW0iPT09dGhpcy5jbGF1c2VzLnF1ZXJ5T2JqW3ldLmVsZW1lbnRz''@;'; + put 'put ''W3ZdLnR5cGU/dGhpcy5udW1PcGVyYXRvcnM6dGhpcy5jaGFyT3BlcmF0b3JzO2xldCBqPVtdO3RoaXMuZHluYW1pY1doZXJlQ2xhdXNlJiYoaj10aGlzLmR5bmFtaWNXaGVyZUNsYXVzZUNyZWF0b3IoeSx2KSk7Y29uc3QgdWU9WyJEQVRFVElNRSIsIlRJTUUiLCJEQVRFIl0uaW5jbHVkZXMo''@;'; + put 'put ''SSk7dGhpcy5zYXNTdG9yZVNlcnZpY2UuZ2V0UXVlcnlWYWx1ZXMoaCxDLGopLnRoZW4oX2U9PntpZih0aGlzLmNsYXVzZXMucXVlcnlPYmpbeV0uZWxlbWVudHNbdl0udmFsdWVzPV9lLnZhbHMubWFwKE5lPT57Y29uc3QgS2U9Im51bSI9PT1fZS4kdmFscy52YXJzLlVORk9STUFUVEVELnR5''@;'; + put 'put ''cGU7bGV0IE90PUtlJiYoMCxidy5pc1NwZWNpYWxNaXNzaW5nKShOZS5VTkZPUk1BVFRFRCk/Ii4iK05lLlVORk9STUFUVEVEOk5lLlVORk9STUFUVEVEO3JldHVybiBLZSYmbnVsbD09PU90JiYoT3Q9Ii4iKSx7Zm9ybWF0dGVkOnVlP05lLkZPUk1BVFRFRC5zcGxpdCgiLiIpWzBdOk5lLkZP''@;'; + put 'put ''Uk1BVFRFRCx1bmZvcm1hdHRlZDpPdH19KS5zbGljZSgwLDJlMyksdGhpcy53aGVyZUNsYXVzZUZuKCksdGhpcy5zZXRUb0dsb2JhbHMoKSx0aGlzLndoZXJlQ2xhdXNlTG9hZGluZz0hMSxudWxsIT09dGhpcy5wZW5kaW5nSU5WYWx1ZXNTZXQpe2NvbnN0e2NsYXVzZUluZGV4Ok5lLHF1ZXJ5''@;'; + put 'put ''SW5kZXg6S2V9PXRoaXMucGVuZGluZ0lOVmFsdWVzU2V0O3RoaXMuc2V0SU5WYWx1ZXMoTmUsS2UpLHRoaXMucGVuZGluZ0lOVmFsdWVzU2V0PW51bGx9dGhpcy5jZGYuZGV0ZWN0Q2hhbmdlcygpfSkuY2F0Y2goX2U9Pnt0aGlzLndoZXJlQ2xhdXNlTG9hZGluZz0hMX0pfX1jYXRjaChJKXt0''@;'; + put 'put ''aGlzLmV2ZW50U2VydmljZS5jYXRjaFJlc3BvbnNlRXJyb3IoInB1YmxpYy9nZXRjb2x2YWxzIixJKX19KX1nZXRsb2dpYyhoKXt0aGlzLmxvZ2ljPWgsdGhpcy53aGVyZUNsYXVzZUZuKCl9c2V0TG9naWMoKXt0aGlzLndoZXJlQ2xhdXNlRm4oKSx0aGlzLnNldFRvR2xvYmFscygpfWlzQXJy''@;'; + put 'put ''KGgpe3JldHVybiBoIGluc3RhbmNlb2YgQXJyYXkmJmgubGVuZ3RoPjAmJnZvaWQgMCE9PWhbMF0uY2hlY2tlZH12YXJpYWJsZUlucHV0Q2hhbmdlKGgsdix5LEMpe3RoaXMuZ2V0VmFsdWVzKGgsdix5KX1zZXRWYXJpYWJsZVZhbHVlcyhoLHYseSl7bGV0IEM9dGhpcy5jbGF1c2VzLnF1ZXJ5''@;'; + put 'put ''T2JqW3ldLmVsZW1lbnRzW3ZdLm9wZXJhdG9yOyJCRVRXRUVOIiE9PUMmJiJJTiIhPT1DJiYiTk9UIElOIiE9PUMmJih0aGlzLmNsYXVzZXMucXVlcnlPYmpbeV0uZWxlbWVudHNbdl0udmFsdWU9aC50b1N0cmluZygpKSx0aGlzLndoZXJlQ2xhdXNlRm4oKSx0aGlzLnNldFRvR2xvYmFscygp''@;'; + put 'put ''fXNldFZhcmlhYmxlT3BlcmF0b3IoaCx2LHkpe2xldCBDPXRoaXMuY2xhdXNlcy5xdWVyeU9ialt5XS5lbGVtZW50c1toXS52YWx1ZTtDIGluc3RhbmNlb2YgQXJyYXkmJiJJTiIhPT12JiYiTk9UIElOIiE9PXYmJihDPUMgaW5zdGFuY2VvZiBBcnJheSYmMj09PUMubGVuZ3RoJiYic3RyaW5n''@;'; + put 'put ''Ij09dHlwZW9mIENbMF0/Q1swXToiIiksdGhpcy5jbGVhclZhbHVlc09wZXJhdG9yKGgseSksdGhpcy5jbGF1c2VzLnF1ZXJ5T2JqW3ldLmVsZW1lbnRzW2hdLm9wZXJhdG9yPXYsKCI9Ij09PXZ8fCI+Ij09PXZ8fCI8Ij09PXZ8fCI8PSI9PT12fHwiPj0iPT09dnx8Ik5FIj09PXYpJiYodGhp''@;'; + put 'put ''cy5jbGF1c2VzLnF1ZXJ5T2JqW3ldLmVsZW1lbnRzW2hdLnZhbHVlPUMpLCJCRVRXRUVOIj09PXYmJih0aGlzLmNsYXVzZXMucXVlcnlPYmpbeV0uZWxlbWVudHNbaF0udmFsdWU9W10sdGhpcy5jbGF1c2VzLnF1ZXJ5T2JqW3ldLmVsZW1lbnRzW2hdLnZhbHVlLnB1c2goQyksdGhpcy5jbGF1''@;'; + put 'put ''c2VzLnF1ZXJ5T2JqW3ldLmVsZW1lbnRzW2hdLnZhbHVlLnB1c2goIiIpKSwoIklOIj09PXZ8fCJOT1QgSU4iPT09dikmJnRoaXMuc2V0SU5WYWx1ZXMoeSxoKSx0aGlzLndoZXJlQ2xhdXNlRm4oKSx0aGlzLnNldFRvR2xvYmFscygpfXNldElOVmFsdWVzKGgsdil7Y29uc3QgeT1bXSxDPXRo''@;'; + put 'put ''aXMuY2xhdXNlcy5xdWVyeU9ialtoXS5lbGVtZW50c1t2XS52YWx1ZXM7Qy5sZW5ndGg8MSYmKHRoaXMucGVuZGluZ0lOVmFsdWVzU2V0PXtjbGF1c2VJbmRleDpoLHF1ZXJ5SW5kZXg6dn0pO2ZvcihsZXQgST0wO0k8Qy5sZW5ndGg7SSsrKXkucHVzaCh7Y2hlY2tlZDohMSx2YWw6Q1tJXS5m''@;'; + put 'put ''b3JtYXR0ZWR9KTt0aGlzLmNsYXVzZXMucXVlcnlPYmpbaF0uZWxlbWVudHNbdl0udmFsdWU9eX1jbGVhclZhbHVlcyhoLHYpe3RoaXMuY2xhdXNlcy5xdWVyeU9ialt2XS5lbGVtZW50c1toXS52YWx1ZT0iIn1jbGVhclZhbHVlc09wZXJhdG9yKGgsdil7bGV0IHk9dGhpcy5jbGF1c2VzLnF1''@;'; + put 'put ''ZXJ5T2JqW3ZdLmVsZW1lbnRzW2hdLm9wZXJhdG9yOygiQkVUV0VFTiI9PT15fHwiSU4iPT09eXx8Ik5PVCBJTiI9PT15fHwiQ09OVEFJTlMiPT09eSkmJnRoaXMuY2xlYXJWYWx1ZXMoaCx2KX1oYXNJbnZhbGlkQ2x1YXNlKGgpe2ZvcihsZXQgdiBvZiBoKXtpZihudWxsPT09di52YXJpYWJs''@;'; + put 'put ''ZXx8bnVsbD09PXYub3BlcmF0b3J8fG51bGw9PT12LnZhbHVlfHwiIj09PXYudmFsdWUpcmV0dXJuIHYuaW52YWxpZENsYXVzZT0hMCwhMDt2LmludmFsaWRDbGF1c2U9ITF9cmV0dXJuIGguaW52YWxpZENsYXVzZT0hMSwhMX1oYXNJbnZhbGlkR3JvdXBDbHVhc2UoKXtmb3IobGV0IGg9MDto''@;'; + put 'put ''PHRoaXMuY2xhdXNlcy5xdWVyeU9iai5sZW5ndGg7aCsrKXtpZih0aGlzLmhhc0ludmFsaWRDbHVhc2UodGhpcy5jbGF1c2VzLnF1ZXJ5T2JqW2hdLmVsZW1lbnRzKSlyZXR1cm4gdGhpcy5jbGF1c2VzLnF1ZXJ5T2JqW2hdLmludmFsaWRDbGF1c2U9ITAsITA7dGhpcy5jbGF1c2VzLnF1ZXJ5''@;'; + put 'put ''T2JqW2hdLmludmFsaWRDbGF1c2U9ITF9cmV0dXJuITF9YWRkQ2xhdXNlKGgpe2lmKHRoaXMuaGFzSW52YWxpZENsdWFzZSh0aGlzLmNsYXVzZXMucXVlcnlPYmpbaF0uZWxlbWVudHMpKXJldHVybiB2b2lkIHRoaXMuZXZlbnRTZXJ2aWNlLnNob3dJbmZvTW9kYWwoIkVycm9yIiwiQ2Fubm90''@;'; + put 'put ''IGFkZCBuZXcgY2xhdXNlLCB3aGVuIG9uZSBvciBtb3JlIGNsYXVzZXMgYXJlIGludmFsaWQgb3IgZW1wdHkuIik7dGhpcy5jbGF1c2VBbXQucHVzaCgiIiksdGhpcy5jbGF1c2VzLnF1ZXJ5T2JqW2hdLmVsZW1lbnRzLnB1c2goe2xvZ2ljOm51bGwsdHlwZTpudWxsLHZhcmlhYmxlOm51bGws''@;'; + put 'put ''b3BlcmF0b3I6bnVsbCx2YWx1ZTpudWxsLHZhbHVlczpbXSxvcGVyYXRvcnM6W119KTtsZXQgdj10aGlzLmNsYXVzZXMucXVlcnlPYmpbaF0uY2xhdXNlTG9naWM7dGhpcy5jbGF1c2VzLnF1ZXJ5T2JqW2hdLmNsYXVzZUxvZ2ljPXZvaWQgMD09PXY/IkFORCI6Ik9SIj09PXY/Ik9SIjoiQU5E''@;'; + put 'put ''Iix0aGlzLndoZXJlQ2xhdXNlRm4oKSx0aGlzLnNldFRvR2xvYmFscygpfWFkZEdyb3VwQ2xhdXNlKCl7dGhpcy5oYXNJbnZhbGlkR3JvdXBDbHVhc2UoKT90aGlzLmV2ZW50U2VydmljZS5zaG93SW5mb01vZGFsKCJFcnJvciIsIkNhbm5vdCBhZGQgbmV3IGNsYXVzZSwgd2hlbiBvbmUgb3Ig''@;'; + put 'put ''bW9yZSBjbGF1c2VzIGFyZSBpbnZhbGlkIG9yIGVtcHR5LiIpOih0aGlzLmNsYXVzZXMucXVlcnlPYmoucHVzaCh7ZWxlbWVudHM6W3tsb2dpYzpudWxsLHR5cGU6bnVsbCx2YXJpYWJsZTpudWxsLG9wZXJhdG9yOm51bGwsdmFsdWU6bnVsbCx2YWx1ZXM6W10sb3BlcmF0b3JzOltdfV19KSx0''@;'; + put 'put ''aGlzLnNldFRvR2xvYmFscygpKX1pc0luSHRtbENvbGxlY3Rpb24oaCx2KXtmb3IobGV0IHk9MDt5PHYubGVuZ3RoO3krKylpZih2W3ldLnZhbHVlPT09aClyZXR1cm4hMDtyZXR1cm4hMX1yZW1vdmVHcm91cENsYXVzZShoKXt0aGlzLmNsYXVzZXMucXVlcnlPYmouc3BsaWNlKGgsMSksdGhp''@;'; + put 'put ''cy53aGVyZUNsYXVzZUZuKCl9cmVtb3ZlQ2xhdXNlKGgsdil7dGhpcy5jbGF1c2VzLnF1ZXJ5T2JqW3ZdLmVsZW1lbnRzLnNwbGljZShoLDEpLHRoaXMud2hlcmVDbGF1c2VGbigpLHRoaXMuc2V0VG9HbG9iYWxzKCl9d2hlcmVDbGF1c2VGbihoPSExKXtjb25zdCB2PXRoaXMuaGVscGVyU2Vy''@;'; + put 'put ''dmljZS5kZWVwQ2xvbmUodGhpcy5jbGF1c2VzKTtpZihoJiYodi5xdWVyeU9ialswXS5lbGVtZW50cz1bXSksdm9pZCAwIT09dGhpcy5saWJkcyl7bGV0IHk9dGhpcy5zYXNTdG9yZVNlcnZpY2Uud2hlcmVDbGF1c2VDcmVhdG9yKHYsdGhpcy5ncm91cExvZ2ljLHRoaXMubGliZHMpO2h8fCh0''@;'; + put 'put ''aGlzLndoZXJlQ2xhdXNlPXkud2hlcmVDbGF1c2UsdGhpcy53aGVyZVN0cmluZz15LnN0cmluZyl9fW5nQWZ0ZXJWaWV3SW5pdCgpe3JldHVybiBubyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7dGhpcy5fcmVtb3ZlUXJ5PXRoaXMuc2FzU3RvcmVTZXJ2aWNlLnJlbW92ZVF1ZXJ5''@;'; + put 'put ''LnN1YnNjcmliZShoPT57dGhpcy5jbGF1c2VzLnF1ZXJ5T2JqLmxlbmd0aD49MSYmKHRoaXMuY2xhdXNlcy5xdWVyeU9iai5sZW5ndGg9MSx0aGlzLmNsYXVzZXMucXVlcnlPYmpbMF0uZWxlbWVudHMubGVuZ3RoPj0xJiYodGhpcy5jbGF1c2VzLnF1ZXJ5T2JqWzBdLmVsZW1lbnRzLmxlbmd0''@;'; + put 'put ''aD0xLHRoaXMuY2xhdXNlcy5xdWVyeU9ialswXS5lbGVtZW50cz1bXSx0aGlzLmNsYXVzZXMucXVlcnlPYmpbMF0uZWxlbWVudHMucHVzaCh7bG9naWM6bnVsbCx0eXBlOm51bGwsdmFyaWFibGU6bnVsbCxvcGVyYXRvcjpudWxsLHZhbHVlOm51bGwsdmFsdWVzOltdLG9wZXJhdG9yczpbXX0p''@;'; + put 'put ''LHRoaXMud2hlcmVDbGF1c2VGbigpKSl9KSx0aGlzLmNvbHVtbnNTdWI9dGhpcy5zYXNTdG9yZVNlcnZpY2UuY29sdW1ucy5zdWJzY3JpYmUoaD0+e2xldCB2PWguZGF0YS5jb2xzOygiaG9tZSI9PT1uaS5yb290UGFyYW18fCJlZGl0b3IiPT09bmkucm9vdFBhcmFtKSYmbmkuZWRpdG9yLmZp''@;'; + put 'put ''bHRlci5jb2xzLmxlbmd0aDwxJiYodGhpcy5jb2xzPXYsdGhpcy5saWJkcz1oLmxpYmRzLG5pLmVkaXRvci5maWx0ZXIuY29scz1KU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHYpKSksInZpZXciPT09bmkucm9vdFBhcmFtJiZuaS52aWV3ZXIuZmlsdGVyLmNvbHMubGVuZ3RoPDEmJih0aGlz''@;'; + put 'put ''LmNvbHM9dix0aGlzLmxpYmRzPWgubGliZHMsbmkudmlld2VyLmZpbHRlci5jb2xzPUpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodikpKSx0aGlzLmxpYmRzfHwodGhpcy5saWJkcz1oLmxpYmRzKX0pLHRoaXMudmFsdWVzU3ViPXRoaXMuc2FzU3RvcmVTZXJ2aWNlLnZhbHVlcy5zdWJzY3Jp''@;'; + put 'put ''YmUoaD0+eygiaG9tZSI9PT1uaS5yb290UGFyYW18fCJlZGl0b3IiPT09bmkucm9vdFBhcmFtKSYmbmkuZWRpdG9yLmZpbHRlci52YWxzLmxlbmd0aDwxJiYodGhpcy52YWxzPWgudmFscyxuaS5lZGl0b3IuZmlsdGVyLnZhbHM9SlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShoLnZhbHMpKSks''@;'; + put 'put ''InZpZXciPT09bmkucm9vdFBhcmFtJiZuaS52aWV3ZXIuZmlsdGVyLnZhbHMubGVuZ3RoPDEmJih0aGlzLnZhbHM9aC52YWxzLG5pLnZpZXdlci5maWx0ZXIudmFscz1KU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGgudmFscykpKX0pfSl9bmdBZnRlckNvbnRlbnRJbml0KCl7dGhpcy5nZXRG''@;'; + put 'put ''cm9tR2xvYmFscygpLHNldFRpbWVvdXQoKCk9PntsZXQgaD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjdmFsc192YXJfaWQwXzAiKTtoJiZoLmZvY3VzKCl9LDUwMCl9bmdPbkRlc3Ryb3koKXt0aGlzLmNvbHVtbnNTdWImJnRoaXMuY29sdW1uc1N1Yi51bnN1YnNjcmliZSgpLHRoaXMudmFs''@;'; + put 'put ''dWVzU3ViJiZ0aGlzLnZhbHVlc1N1Yi51bnN1YnNjcmliZSgpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShLdChrZyksS3QobXUpLEt0KFhjKSxLdChkMSkpfSxkLlx1MDI3NWNtcD1UaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJhcHAtcXVlcnkiXV0s''@;'; + put 'put ''ZmVhdHVyZXM6W2hvKFt7cHJvdmlkZTpZZCx1c2VWYWx1ZToiZW4tR0IifV0pXSxkZWNsczozOCx2YXJzOjExLGNvbnN0czpbWzEsImNsci1mbGV4LXJvdyIsImNsci1mb3JtLWNvbnRyb2wiLCJtLTAiXSxbMSwiY2xyLWNvbnRyb2wtY29udGFpbmVyIl0sWzEsImNsci1jaGVja2JveC13cmFw''@;'; + put 'put ''cGVyIl0sWyJuYW1lIiwiZHluYW1pYy13aGVyZS1jbGF1c2UiLCJ0eXBlIiwiY2hlY2tib3giLCJpZCIsImR5bmFtaWNXaGVyZUNsYXVzZSIsMywibmdNb2RlbCIsIm5nTW9kZWxDaGFuZ2UiXSxbImZvciIsImR5bmFtaWNXaGVyZUNsYXVzZSIsMSwiY2xyLWNvbnRyb2wtbGFiZWwiXSxbMSwi''@;'; + put 'put ''Y2xyLWNvbnRyb2wtY29udGFpbmVyIiwibWwtMTUiXSxbIm5hbWUiLCJkeW5hbWljLXdoZXJlLWNsYXVzZSIsInR5cGUiLCJjaGVja2JveCIsImlkIiwidXNlUGlja2VycyIsMywibmdNb2RlbCIsIm5nTW9kZWxDaGFuZ2UiLCJjaGFuZ2UiXSxbImZvciIsInVzZVBpY2tlcnMiLDEsImNsci1j''@;'; + put 'put ''b250cm9sLWxhYmVsIl0sWzEsImNsci1yb3ciXSxbMSwic2VsZWN0IiwiY2xyLWNvbC1tZC0yIiwibWItMzAiXSxbImNsclNlbGVjdCIsIiIsMywiZGlzYWJsZWQiLCJuZ01vZGVsIiwibmdNb2RlbENoYW5nZSJdLFszLCJzZWxlY3RlZCIsNCwibmdGb3IiLCJuZ0Zvck9mIl0sWzEsImNsci1j''@;'; + put 'put ''b2wtbWQtMTAiLCJtYi0zMCJdLFsxLCJsaW5lLW51bWJlcnMiLCJsYW5ndWFnZS1tYXJrdXAiXSxbImNsYXNzIiwicHJvZ3Jlc1N0YXRpYyBwcm9ncmVzcyBsb29wIiw0LCJuZ0lmIl0sWzEsImxhbmd1YWdlLXNxbCJdLFsxLCJjb250ZW50Il0sWzEsImNsYXVzZXMtY29udGFpbmVyIiwiY2xy''@;'; + put 'put ''LWNvbC1tZC0xMiJdLFs0LCJuZ0lmIl0sWyJjbGFzcyIsImNsYXVzZS1yb3ciLDQsIm5nRm9yIiwibmdGb3JPZiJdLFsicGlja2VyIiwiIl0sWyJub3RQaWNrZXIiLCIiXSxbIm5vdFBpY2tlclJhbmdlIiwiIl0sWyJjaGVja2JveFZhbHVlcyIsIiJdLFszLCJzZWxlY3RlZCJdLFsxLCJwcm9n''@;'; + put 'put ''cmVzU3RhdGljIiwicHJvZ3Jlc3MiLCJsb29wIl0sWzEsImNsYXVzZS1yb3ciXSxbMSwiY2xhdXNlLWxvZ2ljIiwiY2xyLWNvbC1tZC0yIl0sWzEsInNlbGVjdCJdLFsiY2xyU2VsZWN0IiwiIiwzLCJuZ01vZGVsIiwiZGlzYWJsZWQiLCJuZ01vZGVsQ2hhbmdlIl0sWyJjbGFzcyIsImJ0biBi''@;'; + put 'put ''dG4tcHJpbWFyeSBidG4tYmxvY2sgbXQtMTAiLDMsImNsaWNrIiw0LCJuZ0lmIl0sWzEsImNsYXVzZS1xdWVyeSIsImNsci1jb2wtbWQtMTAiXSxbInNoYXBlIiwidGltZXMiLCJzaXplIiwiMzYiLCJjbGFzcyIsInJlbW92ZS1ncm91cC1jbGF1c2UtYnV0dG9uIiwzLCJjbGljayIsNCwibmdJ''@;'; + put 'put ''ZiJdLFsiY2xhc3MiLCJjbHItcm93IiwzLCJpbnZhbGlkLWNsYXVzZSIsNCwibmdGb3IiLCJuZ0Zvck9mIl0sWzEsImJ0biIsImJ0bi1wcmltYXJ5IiwiYnRuLWJsb2NrIiwibXQtMTAiLDMsImNsaWNrIl0sWyJzaGFwZSIsInBsdXMiXSxbInNoYXBlIiwidGltZXMiLCJzaXplIiwiMzYiLDEs''@;'; + put 'put ''InJlbW92ZS1ncm91cC1jbGF1c2UtYnV0dG9uIiwzLCJjbGljayJdLFsxLCJ2YXJpYWJsZS1jb2wiLCJmb3JtLWdyb3VwIiwiY2xyLWNvbC1tZC0zIl0sWzEsImRhdGFsaXN0LXdyYXBwZXIiXSxbImxhYmVsIiwiVmFyaWFibGUiLDMsImlkIiwiaW5wdXRJZCIsImVtaXRPbmx5U2VsZWN0ZWQi''@;'; + put 'put ''LCJ2YWx1ZSIsInZhbHVlQ2hhbmdlIiwib25JbnB1dEV2ZW50Il0sWzQsIm5nRm9yIiwibmdGb3JPZiJdLFsxLCJvcGVyYXRvci1jb2wiLCJmb3JtLWdyb3VwIiwiY2xyLWNvbC1tZC0zIl0sWyJjbHJTZWxlY3QiLCIiLDEsIm10LTIiLDMsIm5nTW9kZWwiLCJuZ01vZGVsQ2hhbmdlIl0sWyJj''@;'; + put 'put ''bGFzcyIsInZhbHVlLWNvbCBmb3JtLWdyb3VwIGNsci1jb2wtbWQtMyIsNCwibmdWYXIiXSxbMSwiY2xhdXNlLWJ1dHRvbnMiLCJjbHItY29sLW1kLTIiLCJidG4tZ3JvdXAiXSxbMSwiYnRuIiwiYnRuLXdhcm5pbmciLCJidG4tYmxvY2siLDMsImRpc2FibGVkIiwiY2xpY2siXSxbInNoYXBl''@;'; + put 'put ''IiwibWludXMiXSxbMSwiYnRuIiwiYnRuLXN1Y2Nlc3MiLCJidG4tYmxvY2siLDMsImNsaWNrIl0sWzEsInZhbHVlLWNvbCIsImZvcm0tZ3JvdXAiLCJjbHItY29sLW1kLTMiXSxbImNsYXNzIiwiY2hlY2tib3gtdmFscyIsNCwibmdJZiJdLFsiY2xhc3MiLCJzaW5nbGUtZmllbGQtdmFscyIs''@;'; + put 'put ''NCwibmdJZiJdLFsiY2xhc3MiLCJyYW5nZS12YWxzIiw0LCJuZ0lmIl0sWyJjbGFzcyIsImNvbnRhaW5zLXZhbHMiLDQsIm5nSWYiXSxbMSwiY2hlY2tib3gtdmFscyJdLFsidHlwZSIsImJ1dHRvbiIsMSwiYnRuIiwiYnRuLWxpbmsiLDMsImNsaWNrIl0sWzQsIm5nVGVtcGxhdGVPdXRsZXQi''@;'; + put 'put ''LCJuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dCJdLFsxLCJzaW5nbGUtZmllbGQtdmFscyJdLFsxLCJyYW5nZS12YWxzIl0sWzEsImZyb20iXSxbMSwidG8iXSxbMSwiY29udGFpbnMtdmFscyJdLFsxLCJjbHItY29udHJvbC1sYWJlbCJdLFsidHlwZSIsInRleHQiLDEsImlucHV0LXZhbCIsMywi''@;'; + put 'put ''bmdNb2RlbCIsIm5nTW9kZWxDaGFuZ2UiXSxbMywibmdTd2l0Y2giXSxbNCwibmdTd2l0Y2hDYXNlIl0sWyJsYWJlbCIsIlZhbHVlIiwidHlwZSIsImRhdGUiLDMsImRpc2FibGVTb2Z0c2VsZWN0IiwiaW5wdXRJZCIsInZhbHVlIiwidmFsdWVDaGFuZ2UiXSxbImxhYmVsIiwiVmFsdWUiLCJ0''@;'; + put 'put ''eXBlIiwiZGF0ZSIsMywiZGlzYWJsZVNvZnRzZWxlY3QiLCJpbnB1dElkIiwidmFsdWUiLCJ2YWx1ZUNoYW5nZSIsIm9uSW5wdXRFdmVudCJdLFsidHlwZSIsInRpbWUiLDMsImRpc2FibGVTb2Z0c2VsZWN0IiwiaW5wdXRJZCIsInZhbHVlIiwidmFsdWVDaGFuZ2UiLCJvbklucHV0RXZlbnQi''@;'; + put 'put ''XSxbImxhYmVsIiwiVmFsdWUiLCJ0eXBlIiwidGltZSIsMywiZGlzYWJsZVNvZnRzZWxlY3QiLCJpbnB1dElkIiwidmFsdWUiLCJvbklucHV0RXZlbnQiXSxbImxhYmVsIiwiVmFsdWUiLDMsImlucHV0SWQiLCJ2YWx1ZSIsInZhbHVlQ2hhbmdlIiwib25JbnB1dEV2ZW50Il0sWzMsInZhbHVl''@;'; + put 'put ''Iiw0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbMywidmFsdWUiXSxbImxhYmVsIiwiVmFsdWUiLDMsImlucHV0SWQiLCJ2YWx1ZSIsImRpc2FibGVkIiwidmFsdWVDaGFuZ2UiLCJvbklucHV0RXZlbnQiXSxbMSwiaW4tdmFsdWVzLW1vZGFsIiwzLCJjbHJNb2RhbE9wZW4iLCJjbHJNb2RhbENsb3Nh''@;'; + put 'put ''YmxlIl0sWzEsIm1vZGFsLXRpdGxlIl0sWzEsIm1vZGFsLWJvZHkiXSxbImNsYXNzIiwibm8tdmFsdWVzIiw0LCJuZ0lmIl0sWyJjbGFzcyIsImZvcm0tYmxvY2siLDQsIm5nSWYiXSxbMSwibW9kYWwtZm9vdGVyIl0sWyJ0eXBlIiwiYnV0dG9uIiwxLCJidG4iLCJidG4tb3V0bGluZSIsMywi''@;'; + put 'put ''Y2xpY2siXSxbMSwibm8tdmFsdWVzIl0sWzEsImZvcm0tYmxvY2siXSxbInR5cGUiLCJjaGVja2JveCIsImNsckNoZWNrYm94IiwiIiwzLCJuZ01vZGVsIiwibmdNb2RlbENoYW5nZSJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihoLHYpezEmaCYmKHJ0KDAsImRpdiIsMCkoMSwiZGl2IiwxKSgyLCJk''@;'; + put 'put ''aXYiLDIpKDMsImlucHV0IiwzKSxHbigibmdNb2RlbENoYW5nZSIsZnVuY3Rpb24oQyl7cmV0dXJuIHYuZHluYW1pY1doZXJlQ2xhdXNlPUN9KSxsdCgpLHJ0KDQsImxhYmVsIiw0KSxZdCg1LCJEeW5hbWljIHdoZXJlIGNsYXVzZSIpLGx0KCkoKSgpLHJ0KDYsImRpdiIsNSkoNywiZGl2Iiwy''@;'; + put 'put ''KSg4LCJpbnB1dCIsNiksR24oIm5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9uKEMpe3JldHVybiB2LnVzZVBpY2tlcnM9Q30pKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7cmV0dXJuIHYudXNlUGlja2Vyc0NoYW5nZSgpfSksbHQoKSxydCg5LCJsYWJlbCIsNyksWXQoMTAsIiBVc2UgcGlja2VycyAiKSxs''@;'; + put 'put ''dCgpKCkoKSgpLHJ0KDExLCJkaXYiLDgpKDEyLCJkaXYiLDkpKDEzLCJjbHItc2VsZWN0LWNvbnRhaW5lciIpKDE0LCJsYWJlbCIpLFl0KDE1LCJHcm91cCBsb2dpYyIpLGx0KCkscnQoMTYsInNlbGVjdCIsMTApLEduKCJuZ01vZGVsQ2hhbmdlIixmdW5jdGlvbihDKXtyZXR1cm4gdi5ncm91''@;'; + put 'put ''cExvZ2ljPUN9KSgibmdNb2RlbENoYW5nZSIsZnVuY3Rpb24oKXtyZXR1cm4gdi5zZXRHcm91cExvZ2ljKHYuZ3JvdXBMb2dpYyl9KSxybigxNyxuZ3QsMiwyLCJvcHRpb24iLDExKSxsdCgpKCkoKSxydCgxOCwiZGl2IiwxMikoMTksInByZSIsMTMpLFl0KDIwLCIgICAgICAiKSxybigyMSxy''@;'; + put 'put ''Z3QsNCwwLCJkaXYiLDE0KSxZdCgyMiwiXG5cbiAgICAgICIpLHJ0KDIzLCJjb2RlIiwxNSksWXQoMjQpLGx0KCksWXQoMjUsIlxuICAgICIpLGx0KCkoKSgpLHJ0KDI2LCJkaXYiLDE2KSgyNywiZGl2IiwxNykscm4oMjgsaWd0LDEsMCwiZGl2IiwxOCkscm4oMjksa2d0LDE1LDgsImRpdiIs''@;'; + put 'put ''MTkpLGx0KCkoKSxybigzMCx4Z3QsNCw0LCJuZy10ZW1wbGF0ZSIsbnVsbCwyMCxacikscm4oMzIsSWd0LDIsMywibmctdGVtcGxhdGUiLG51bGwsMjEsWnIpLHJuKDM0LExndCwyLDQsIm5nLXRlbXBsYXRlIixudWxsLDIyLFpyKSxybigzNixQZ3QsOSw0LCJuZy10ZW1wbGF0ZSIsbnVsbCwy''@;'; + put 'put ''MyxacikpLDImaCYmKHV0KDMpLFR0KCJuZ01vZGVsIix2LmR5bmFtaWNXaGVyZUNsYXVzZSksdXQoNSksVHQoIm5nTW9kZWwiLHYudXNlUGlja2VycyksdXQoOCksVHQoImRpc2FibGVkIiwobnVsbD09di5jbGF1c2VzfHxudWxsPT12LmNsYXVzZXMucXVlcnlPYmo/bnVsbDp2LmNsYXVzZXMu''@;'; + put 'put ''cXVlcnlPYmoubGVuZ3RoKTwxKSgibmdNb2RlbCIsdi5ncm91cExvZ2ljKSx1dCgxKSxUdCgibmdGb3JPZiIsdi5sb2dpY09wZXJhdG9ycyksdXQoNCksVHQoIm5nSWYiLHYud2hlcmVDbGF1c2VMb2FkaW5nKSx1dCgzKSxqaSh2LndoZXJlQ2xhdXNlKSx1dCgzKSxGaSgiY2xyLWNvbC1tZC0x''@;'; + put 'put ''MCIsKG51bGw9PXYuY2xhdXNlc3x8bnVsbD09di5jbGF1c2VzLnF1ZXJ5T2JqP251bGw6di5jbGF1c2VzLnF1ZXJ5T2JqLmxlbmd0aCk+MSksdXQoMSksVHQoIm5nSWYiLChudWxsPT12LmNsYXVzZXN8fG51bGw9PXYuY2xhdXNlcy5xdWVyeU9iaj9udWxsOnYuY2xhdXNlcy5xdWVyeU9iai5s''@;'; + put 'put ''ZW5ndGgpPjEpLHV0KDEpLFR0KCJuZ0Zvck9mIix2LmNsYXVzZXMucXVlcnlPYmopKX0sZGVwZW5kZW5jaWVzOltFcyxObyxYZCxKZCxpcCxxMyxlZCxtMSxJZixPZix4cyxUcyx3bCxvZCxhZCxvdCxSbyxsbyxPaSxpWixyWixfTGUsQ0xlLGVndCx0Z3RdLHN0eWxlczpbJ0BjaGFyc2V0ICJV''@;'; + put 'put ''VEYtOCI7LmNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleH0uY29udGVudFtfbmdjb250ZW50LSVDT01QJV0gICAuY2xhdXNlcy1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW59LmNvbnRlbnRbX25nY29u''@;'; + put 'put ''dGVudC0lQ09NUCVdICAgLmNsYXVzZXMtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jbGF1c2UtbG9naWNbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtiYWNrZ3JvdW5kOiNlOWU5ZTk7''@;'; + put 'put ''cGFkZGluZzoxNXB4fS5jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jbGF1c2VzLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0gICAuY2xhdXNlLXF1ZXJ5W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjMwcHggMCAyMHB4IDIwcHg7YmFja2dyb3VuZDojZmJmOGY4O2Rpc3Bs''@;'; + put 'put ''YXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtwb3NpdGlvbjpyZWxhdGl2ZX0uY29udGVudFtfbmdjb250ZW50LSVDT01QJV0gICAuY2xhdXNlcy1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdICAgLmNsYXVzZS1xdWVyeVtfbmdjb250ZW50''@;'; + put 'put ''LSVDT01QJV0gPiAuY2xyLXJvd1tfbmdjb250ZW50LSVDT01QJV17anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW59LmNvbnRlbnRbX25nY29udGVudC0lQ09NUCVdICAgLmNsYXVzZXMtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jbGF1c2UtcXVlcnlbX25nY29udGVudC0l''@;'; + put 'put ''Q09NUCVdID4gLmNsci1yb3dbX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFzdC1jaGlsZCl7cGFkZGluZy1ib3R0b206MTVweDttYXJnaW4tYm90dG9tOjE1cHg7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgcmdiYSgwLDAsMCwuMTYpfS5jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5j''@;'; + put 'put ''bGF1c2VzLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0gICAuY2xhdXNlLXF1ZXJ5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5yZW1vdmUtZ3JvdXAtY2xhdXNlLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7dG9wOjBweDtyaWdodDoxMHB4O2NvbG9yOmdy''@;'; + put 'put ''YXl9LmNvbnRlbnRbX25nY29udGVudC0lQ09NUCVdICAgLmNsYXVzZXMtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jbGF1c2UtcXVlcnlbX25nY29udGVudC0lQ09NUCVdICAgLnZhcmlhYmxlLWNvbFtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1z''@;'; + put 'put ''OmZsZXgtc3RhcnQ7cGFkZGluZy1ib3R0b206MXB4fS5jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jbGF1c2VzLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0gICAuY2xhdXNlLXF1ZXJ5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC52YXJpYWJsZS1jb2xbX25nY29udGVudC0lQ09N''@;'; + put 'put ''UCVdICAgLmRhdGFsaXN0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdLCAuY29udGVudFtfbmdjb250ZW50LSVDT01QJV0gICAuY2xhdXNlcy1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdICAgLmNsYXVzZS1xdWVyeVtfbmdjb250ZW50LSVDT01QJV0gICAudmFyaWFibGUtY29sW19u''@;'; + put 'put ''Z2NvbnRlbnQtJUNPTVAlXSAgIC5kYXRhbGlzdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGlucHV0W19uZ2NvbnRlbnQtJUNPTVAlXXt3aWR0aDoxMDAlfS5jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jbGF1c2VzLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0gICAu''@;'; + put 'put ''Y2xhdXNlLXF1ZXJ5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5vcGVyYXRvci1jb2xbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpmbGV4LXN0YXJ0fS5jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jbGF1c2VzLWNvbnRhaW5lcltfbmdjb250ZW50LSVD''@;'; + put 'put ''T01QJV0gICAuY2xhdXNlLXF1ZXJ5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5vcGVyYXRvci1jb2xbX25nY29udGVudC0lQ09NUCVdICAgY2xyLXNlbGVjdC1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2hlaWdodDo0NXB4O21hcmdpbi10b3A6MDt3aWR0aDoxMDAlfS5jb250ZW50W19u''@;'; + put 'put ''Z2NvbnRlbnQtJUNPTVAlXSAgIC5jbGF1c2VzLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0gICAuY2xhdXNlLXF1ZXJ5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC52YWx1ZS1jb2xbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpmbGV4LXN0YXJ0O3BhZGRp''@;'; + put 'put ''bmctYm90dG9tOjFweH0uY29udGVudFtfbmdjb250ZW50LSVDT01QJV0gICAuY2xhdXNlcy1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdICAgLmNsYXVzZS1xdWVyeVtfbmdjb250ZW50LSVDT01QJV0gICAudmFsdWUtY29sW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jaGVja2JveC12YWxz''@;'; + put 'put ''W19uZ2NvbnRlbnQtJUNPTVAlXXt3aWR0aDoxMDAlO3BhZGRpbmc6MCA1cHg7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgcmdiYSgwLDAsMCwuMyl9LmNvbnRlbnRbX25nY29udGVudC0lQ09NUCVdICAgLmNsYXVzZXMtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jbGF1c2UtcXVl''@;'; + put 'put ''cnlbX25nY29udGVudC0lQ09NUCVdICAgLnZhbHVlLWNvbFtfbmdjb250ZW50LSVDT01QJV0gICAuY2hlY2tib3gtdmFsc1tfbmdjb250ZW50LSVDT01QJV0gICBjbHItY2hlY2tib3gtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOjB9LmNvbnRlbnRbX25nY29udGVu''@;'; + put 'put ''dC0lQ09NUCVdICAgLmNsYXVzZXMtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jbGF1c2UtcXVlcnlbX25nY29udGVudC0lQ09NUCVdICAgLnZhbHVlLWNvbFtfbmdjb250ZW50LSVDT01QJV0gICAuY2hlY2tib3gtdmFsc1tfbmdjb250ZW50LSVDT01QJV0gICBzZWN0aW9uW19u''@;'; + put 'put ''Z2NvbnRlbnQtJUNPTVAlXXttYXgtaGVpZ2h0OjEyMHB4O292ZXJmbG93LXk6c2Nyb2xsfS5jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jbGF1c2VzLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0gICAuY2xhdXNlLXF1ZXJ5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC52YWx1ZS1j''@;'; + put 'put ''b2xbX25nY29udGVudC0lQ09NUCVdICAgLnNpbmdsZS1maWVsZC12YWxzW19uZ2NvbnRlbnQtJUNPTVAlXXt3aWR0aDoxMDAlfS5jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jbGF1c2VzLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0gICAuY2xhdXNlLXF1ZXJ5W19uZ2NvbnRl''@;'; + put 'put ''bnQtJUNPTVAlXSAgIC52YWx1ZS1jb2xbX25nY29udGVudC0lQ09NUCVdICAgLnNpbmdsZS1maWVsZC12YWxzW19uZ2NvbnRlbnQtJUNPTVAlXSAgICAgLmNsci1jb250cm9sLWNvbnRhaW5lcnt3aWR0aDoxMDAlfS5jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jbGF1c2VzLWNvbnRh''@;'; + put 'put ''aW5lcltfbmdjb250ZW50LSVDT01QJV0gICAuY2xhdXNlLXF1ZXJ5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC52YWx1ZS1jb2xbX25nY29udGVudC0lQ09NUCVdICAgLnNpbmdsZS1maWVsZC12YWxzW19uZ2NvbnRlbnQtJUNPTVAlXSAgICAgLmNsci1jb250cm9sLWNvbnRhaW5lciAuY2xyLWlu''@;'; + put 'put ''cHV0LXdyYXBwZXJ7bWF4LXdpZHRoOm5vbmV9LmNvbnRlbnRbX25nY29udGVudC0lQ09NUCVdICAgLmNsYXVzZXMtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jbGF1c2UtcXVlcnlbX25nY29udGVudC0lQ09NUCVdICAgLnZhbHVlLWNvbFtfbmdjb250ZW50LSVDT01QJV0gICAu''@;'; + put 'put ''c2luZ2xlLWZpZWxkLXZhbHNbX25nY29udGVudC0lQ09NUCVdICAgICAuY2xyLWNvbnRyb2wtY29udGFpbmVyIC5jbHItaW5wdXQtd3JhcHBlciAuY2xyLWlucHV0LWdyb3Vwe3dpZHRoOjEwMCV9LmNvbnRlbnRbX25nY29udGVudC0lQ09NUCVdICAgLmNsYXVzZXMtY29udGFpbmVyW19uZ2Nv''@;'; + put 'put ''bnRlbnQtJUNPTVAlXSAgIC5jbGF1c2UtcXVlcnlbX25nY29udGVudC0lQ09NUCVdICAgLnZhbHVlLWNvbFtfbmdjb250ZW50LSVDT01QJV0gICAuc2luZ2xlLWZpZWxkLXZhbHNbX25nY29udGVudC0lQ09NUCVdID4gaW5wdXRbX25nY29udGVudC0lQ09NUCVde3dpZHRoOjEwMCV9LmNvbnRl''@;'; + put 'put ''bnRbX25nY29udGVudC0lQ09NUCVdICAgLmNsYXVzZXMtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jbGF1c2UtcXVlcnlbX25nY29udGVudC0lQ09NUCVdICAgLnZhbHVlLWNvbFtfbmdjb250ZW50LSVDT01QJV0gICAuc2luZ2xlLWZpZWxkLXZhbHNbX25nY29udGVudC0lQ09N''@;'; + put 'put ''UCVdICAgaW5wdXRbdHlwZT10aW1lXVtfbmdjb250ZW50LSVDT01QJV17d2lkdGg6MTAwJTtwYWRkaW5nLXJpZ2h0OjE3cHh9LmNvbnRlbnRbX25nY29udGVudC0lQ09NUCVdICAgLmNsYXVzZXMtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jbGF1c2UtcXVlcnlbX25nY29udGVu''@;'; + put 'put ''dC0lQ09NUCVdICAgLnZhbHVlLWNvbFtfbmdjb250ZW50LSVDT01QJV0gICAucmFuZ2UtdmFsc1tfbmdjb250ZW50LSVDT01QJV17d2lkdGg6MTAwJX0uY29udGVudFtfbmdjb250ZW50LSVDT01QJV0gICAuY2xhdXNlcy1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdICAgLmNsYXVzZS1x''@;'; + put 'put ''dWVyeVtfbmdjb250ZW50LSVDT01QJV0gICAudmFsdWUtY29sW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5yYW5nZS12YWxzW19uZ2NvbnRlbnQtJUNPTVAlXSAgICAgLmNsci1jb250cm9sLWNvbnRhaW5lcnt3aWR0aDoxMDAlfS5jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jbGF1c2Vz''@;'; + put 'put ''LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0gICAuY2xhdXNlLXF1ZXJ5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC52YWx1ZS1jb2xbX25nY29udGVudC0lQ09NUCVdICAgLnJhbmdlLXZhbHNbX25nY29udGVudC0lQ09NUCVdICAgICAuY2xyLWNvbnRyb2wtY29udGFpbmVyIC5jbHItaW5w''@;'; + put 'put ''dXQtd3JhcHBlcnttYXgtd2lkdGg6bm9uZX0uY29udGVudFtfbmdjb250ZW50LSVDT01QJV0gICAuY2xhdXNlcy1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdICAgLmNsYXVzZS1xdWVyeVtfbmdjb250ZW50LSVDT01QJV0gICAudmFsdWUtY29sW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5y''@;'; + put 'put ''YW5nZS12YWxzW19uZ2NvbnRlbnQtJUNPTVAlXSAgICAgLmNsci1jb250cm9sLWNvbnRhaW5lciAuY2xyLWlucHV0LXdyYXBwZXIgLmNsci1pbnB1dC1ncm91cHt3aWR0aDoxMDAlfS5jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jbGF1c2VzLWNvbnRhaW5lcltfbmdjb250ZW50LSVD''@;'; + put 'put ''T01QJV0gICAuY2xhdXNlLXF1ZXJ5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC52YWx1ZS1jb2xbX25nY29udGVudC0lQ09NUCVdICAgLnJhbmdlLXZhbHNbX25nY29udGVudC0lQ09NUCVdICAgLmZyb21bX25nY29udGVudC0lQ09NUCVde21hcmdpbi1ib3R0b206MTBweH0uY29udGVudFtfbmdj''@;'; + put 'put ''b250ZW50LSVDT01QJV0gICAuY2xhdXNlcy1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdICAgLmNsYXVzZS1xdWVyeVtfbmdjb250ZW50LSVDT01QJV0gICAudmFsdWUtY29sW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5yYW5nZS12YWxzW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5mcm9tW19u''@;'; + put 'put ''Z2NvbnRlbnQtJUNPTVAlXSA+IGlucHV0W19uZ2NvbnRlbnQtJUNPTVAlXXt3aWR0aDoxMDAlfS5jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jbGF1c2VzLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0gICAuY2xhdXNlLXF1ZXJ5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC52YWx1''@;'; + put 'put ''ZS1jb2xbX25nY29udGVudC0lQ09NUCVdICAgLnJhbmdlLXZhbHNbX25nY29udGVudC0lQ09NUCVdICAgLmZyb21bX25nY29udGVudC0lQ09NUCVdICAgaW5wdXRbdHlwZT10aW1lXVtfbmdjb250ZW50LSVDT01QJV17d2lkdGg6MTAwJTtwYWRkaW5nLXJpZ2h0OjE3cHh9LmNvbnRlbnRbX25n''@;'; + put 'put ''Y29udGVudC0lQ09NUCVdICAgLmNsYXVzZXMtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jbGF1c2UtcXVlcnlbX25nY29udGVudC0lQ09NUCVdICAgLnZhbHVlLWNvbFtfbmdjb250ZW50LSVDT01QJV0gICAucmFuZ2UtdmFsc1tfbmdjb250ZW50LSVDT01QJV0gICAuZnJvbVtf''@;'; + put 'put ''bmdjb250ZW50LSVDT01QJV0sIC5jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jbGF1c2VzLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0gICAuY2xhdXNlLXF1ZXJ5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC52YWx1ZS1jb2xbX25nY29udGVudC0lQ09NUCVdICAgLnJhbmdlLXZh''@;'; + put 'put ''bHNbX25nY29udGVudC0lQ09NUCVdICAgLnRvW19uZ2NvbnRlbnQtJUNPTVAlXXttaW4td2lkdGg6MTAwcHh9LmNvbnRlbnRbX25nY29udGVudC0lQ09NUCVdICAgLmNsYXVzZXMtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jbGF1c2UtcXVlcnlbX25nY29udGVudC0lQ09NUCVd''@;'; + put 'put ''ICAgLnZhbHVlLWNvbFtfbmdjb250ZW50LSVDT01QJV0gICAucmFuZ2UtdmFsc1tfbmdjb250ZW50LSVDT01QJV0gICAuZnJvbVtfbmdjb250ZW50LSVDT01QJV0gPiBpbnB1dFtfbmdjb250ZW50LSVDT01QJV0sIC5jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jbGF1c2VzLWNvbnRh''@;'; + put 'put ''aW5lcltfbmdjb250ZW50LSVDT01QJV0gICAuY2xhdXNlLXF1ZXJ5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC52YWx1ZS1jb2xbX25nY29udGVudC0lQ09NUCVdICAgLnJhbmdlLXZhbHNbX25nY29udGVudC0lQ09NUCVdICAgLnRvW19uZ2NvbnRlbnQtJUNPTVAlXSA+IGlucHV0W19uZ2NvbnRl''@;'; + put 'put ''bnQtJUNPTVAlXXt3aWR0aDoxMDAlfS5jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jbGF1c2VzLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0gICAuY2xhdXNlLXF1ZXJ5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC52YWx1ZS1jb2xbX25nY29udGVudC0lQ09NUCVdICAgLnJhbmdl''@;'; + put 'put ''LXZhbHNbX25nY29udGVudC0lQ09NUCVdICAgLmZyb21bX25nY29udGVudC0lQ09NUCVdICAgaW5wdXRbdHlwZT10aW1lXVtfbmdjb250ZW50LSVDT01QJV0sIC5jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jbGF1c2VzLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0gICAuY2xh''@;'; + put 'put ''dXNlLXF1ZXJ5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC52YWx1ZS1jb2xbX25nY29udGVudC0lQ09NUCVdICAgLnJhbmdlLXZhbHNbX25nY29udGVudC0lQ09NUCVdICAgLnRvW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGlucHV0W3R5cGU9dGltZV1bX25nY29udGVudC0lQ09NUCVde3dpZHRoOjEw''@;'; + put 'put ''MCU7cGFkZGluZy1yaWdodDoxN3B4fS5jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jbGF1c2VzLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0gICAuY2xhdXNlLXF1ZXJ5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC52YWx1ZS1jb2xbX25nY29udGVudC0lQ09NUCVdICAgLmNvbnRh''@;'; + put 'put ''aW5zLXZhbHNbX25nY29udGVudC0lQ09NUCVde3dpZHRoOjEwMCV9LmNvbnRlbnRbX25nY29udGVudC0lQ09NUCVdICAgLmNsYXVzZXMtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jbGF1c2UtcXVlcnlbX25nY29udGVudC0lQ09NUCVdICAgLnZhbHVlLWNvbFtfbmdjb250ZW50''@;'; + put 'put ''LSVDT01QJV0gICAuY29udGFpbnMtdmFsc1tfbmdjb250ZW50LSVDT01QJV0gICAgIC5jbHItY29udHJvbC1jb250YWluZXJ7d2lkdGg6MTAwJX0uY29udGVudFtfbmdjb250ZW50LSVDT01QJV0gICAuY2xhdXNlcy1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdICAgLmNsYXVzZS1xdWVy''@;'; + put 'put ''eVtfbmdjb250ZW50LSVDT01QJV0gICAudmFsdWUtY29sW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jb250YWlucy12YWxzW19uZ2NvbnRlbnQtJUNPTVAlXSAgICAgLmNsci1jb250cm9sLWNvbnRhaW5lciAuY2xyLWlucHV0LXdyYXBwZXJ7bWF4LXdpZHRoOm5vbmV9LmNvbnRlbnRbX25nY29u''@;'; + put 'put ''dGVudC0lQ09NUCVdICAgLmNsYXVzZXMtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jbGF1c2UtcXVlcnlbX25nY29udGVudC0lQ09NUCVdICAgLnZhbHVlLWNvbFtfbmdjb250ZW50LSVDT01QJV0gICAuY29udGFpbnMtdmFsc1tfbmdjb250ZW50LSVDT01QJV0gICAgIC5jbHIt''@;'; + put 'put ''Y29udHJvbC1jb250YWluZXIgLmNsci1pbnB1dC13cmFwcGVyIC5jbHItaW5wdXQtZ3JvdXB7d2lkdGg6MTAwJX0uY29udGVudFtfbmdjb250ZW50LSVDT01QJV0gICAuY2xhdXNlcy1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdICAgLmNsYXVzZS1xdWVyeVtfbmdjb250ZW50LSVDT01Q''@;'; + put 'put ''JV0gICAudmFsdWUtY29sW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jb250YWlucy12YWxzW19uZ2NvbnRlbnQtJUNPTVAlXSA+IGlucHV0W19uZ2NvbnRlbnQtJUNPTVAlXXt3aWR0aDoxMDAlfS5jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jbGF1c2VzLWNvbnRhaW5lcltfbmdjb250''@;'; + put 'put ''ZW50LSVDT01QJV0gICAuY2xhdXNlLXF1ZXJ5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC52YWx1ZS1jb2xbX25nY29udGVudC0lQ09NUCVdICAgLmNvbnRhaW5zLXZhbHNbX25nY29udGVudC0lQ09NUCVdICAgaW5wdXRbdHlwZT10aW1lXVtfbmdjb250ZW50LSVDT01QJV17d2lkdGg6MTAwJTtw''@;'; + put 'put ''YWRkaW5nLXJpZ2h0OjE3cHh9LmNvbnRlbnRbX25nY29udGVudC0lQ09NUCVdICAgLmNsYXVzZXMtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jbGF1c2UtcXVlcnlbX25nY29udGVudC0lQ09NUCVdICAgLmNsYXVzZS1idXR0b25zW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5''@;'; + put 'put ''OmZsZXg7anVzdGlmeS1jb250ZW50OnNwYWNlLWFyb3VuZDtmbGV4LWRpcmVjdGlvbjpyb3c7YWxpZ24taXRlbXM6Y2VudGVyfS5jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jbGF1c2VzLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0gICAuY2xhdXNlLXF1ZXJ5W19uZ2NvbnRl''@;'; + put 'put ''bnQtJUNPTVAlXSAgIC5jbGF1c2UtYnV0dG9uc1tfbmdjb250ZW50LSVDT01QJV0gICBidXR0b25bX25nY29udGVudC0lQ09NUCVde21pbi13aWR0aDphdXRvfS5pbnZhbGlkLWNsYXVzZVtfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyLWxlZnQ6MnB4IHNvbGlkICNkOTRiMzF9LmNsYXVzZS1y''@;'; + put 'put ''b3dbX25nY29udGVudC0lQ09NUCVdICAgY2xyLWljb25bX25nY29udGVudC0lQ09NUCVde21hcmdpbjowfS5jbGF1c2Utcm93W19uZ2NvbnRlbnQtJUNPTVAlXTphZnRlcntwb3NpdGlvbjpyZWxhdGl2ZTtjb250ZW50OiIiO2hlaWdodDouNDE2NjdyZW07d2lkdGg6LjQxNjY3cmVtO3RvcDou''@;'; + put 'put ''MjkxNjdyZW07cmlnaHQ6LjI1cmVtO2JhY2tncm91bmQtaW1hZ2U6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0ZjgsJTNDc3ZnJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZ1xcMjAyNiUyQzkuODQlMkMzLjI0YTAuNjglMkMwLjY4JTJDMCUyQzElMkMxJTJD''@;'; + put 'put ''MSUyQzFaJTIyJTJGJTNFJTBBJTNDJTJGc3ZnJTNFJTBBKTtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7YmFja2dyb3VuZC1zaXplOmNvbnRhaW47dmVydGljYWwtYWxpZ246bWlkZGxlO21hcmdpbjowfVtfbmdjb250ZW50LSVDT01QJV06bm90KHByZSkgPiBjb2RlW2NsYXNzKj1sYW5n''@;'; + put 'put ''dWFnZS1dW19uZ2NvbnRlbnQtJUNPTVAlXSwgcHJlW2NsYXNzKj1sYW5ndWFnZS1dW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kLWNvbG9yOiNmYmY4Zjh9cHJlW2NsYXNzKj1sYW5ndWFnZS1dW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjhweDttYXJnaW46MDtib3JkZXItcmFk''@;'; + put 'put ''aXVzOjFweDtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7bWluLWhlaWdodDo2NnB4O3Bvc2l0aW9uOnJlbGF0aXZlfXByZVtjbGFzcyo9bGFuZ3VhZ2UtXVtfbmdjb250ZW50LSVDT01QJV0gICBzcGFuLnNwaW5uZXJbX25nY29udGVudC0l''@;'; + put 'put ''Q09NUCVde3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MTBweDt0b3A6MTBweH1wcmVbY2xhc3MqPWxhbmd1YWdlLV1bX25nY29udGVudC0lQ09NUCVdICAgY29kZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6cHJlLXdyYXA7d29yZC1icmVhazpicmVhay13b3JkfS5pbnB1dC12YWxb''@;'; + put 'put ''X25nY29udGVudC0lQ09NUCVde2JvcmRlcjowcHg7YmFja2dyb3VuZDojZmJmOGY4O2JvcmRlci1ib3R0b206MXB4IHNvbGlkICM5OTk5OTl9Y2xyLWRhdGUtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOjJweCFpbXBvcnRhbnR9aW5wdXRbdHlwZT10aW1lXVtfbmdj''@;'; + put 'put ''b250ZW50LSVDT01QJV17Ym9yZGVyOjA7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjYjNiM2IzfWlucHV0W3R5cGU9dGltZV1bX25nY29udGVudC0lQ09NUCVdOmZvY3Vze291dGxpbmU6bm9uZX0uaW4tdmFsdWVzLW1vZGFsW19uZ2NvbnRlbnQtJUNP''@;'; + put 'put ''TVAlXSAgIC5tb2RhbC1mb290ZXJbX25nY29udGVudC0lQ09NUCVde2JvcmRlci10b3A6MXB4IHNvbGlkICNkOGQ4ZDg7bWFyZ2luLXRvcDoxMHB4fS5wcm9ncmVzc1tfbmdjb250ZW50LSVDT01QJV0sIC5wcm9ncmVzcy1zdGF0aWNbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQtY29s''@;'; + put 'put ''b3I6dHJhbnNwYXJlbnQ7d2lkdGg6MTAwJTtoZWlnaHQ6NHB4O3RvcDozcHh9J119KSxkfSkoKSxGZ3Q9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3Rvcigpe3RoaXMuZmlsZU92ZXI9ITEsdGhpcy5maWxlRHJvcHBlZD1uZXcgYXIsdGhpcy5maWxlRHJhZ2dlZE92ZXI9bmV3IGFyfW9uRHJhZ092''@;'; + put 'put ''ZXIoaCl7aC5wcmV2ZW50RGVmYXVsdCgpLGguc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5jb250YWluc0ZpbGVzKGgpJiYhdGhpcy5maWxlT3ZlciYmKHRoaXMuZmlsZU92ZXI9ITAsdGhpcy5maWxlRHJhZ2dlZE92ZXIuZW1pdCgpKX1vbkRyYWdMZWF2ZShoKXtoLnByZXZlbnREZWZhdWx0KCks''@;'; + put 'put ''aC5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLmZpbGVPdmVyPSExfW9uZHJvcChoKXtoLnByZXZlbnREZWZhdWx0KCksaC5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLmZpbGVPdmVyPSExO2NvbnN0IHY9aC5kYXRhVHJhbnNmZXIuZmlsZXM7di5sZW5ndGg+MCYmdGhpcy5maWxlRHJvcHBlZC5lbWl0''@;'; + put 'put ''KHYpfWNvbnRhaW5zRmlsZXMoaCl7aWYoaCYmaC5kYXRhVHJhbnNmZXImJmguZGF0YVRyYW5zZmVyLnR5cGVzKWZvcihsZXQgdj0wO3Y8aC5kYXRhVHJhbnNmZXIudHlwZXMubGVuZ3RoO3YrKylpZigiRmlsZXMiPT1oLmRhdGFUcmFuc2Zlci50eXBlc1t2XSlyZXR1cm4hMH19cmV0dXJuIGQu''@;'; + put 'put ''XHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1ZGlyPVdpKHt0eXBlOmQsc2VsZWN0b3JzOltbIiIsImFwcERyYWdOZHJvcCIsIiJdXSxob3N0VmFyczoyLGhvc3RCaW5kaW5nczpmdW5jdGlvbihoLHYpezEmaCYmR24oImRyYWdvdmVyIixmdW5jdGlvbihD''@;'; + put 'put ''KXtyZXR1cm4gdi5vbkRyYWdPdmVyKEMpfSkoImRyYWdsZWF2ZSIsZnVuY3Rpb24oQyl7cmV0dXJuIHYub25EcmFnTGVhdmUoQyl9KSgiZHJvcCIsZnVuY3Rpb24oQyl7cmV0dXJuIHYub25kcm9wKEMpfSksMiZoJiZGaSgiZmlsZW92ZXIiLHYuZmlsZU92ZXIpfSxvdXRwdXRzOntmaWxlRHJv''@;'; + put 'put ''cHBlZDoiZmlsZURyb3BwZWQiLGZpbGVEcmFnZ2VkT3ZlcjoiZmlsZURyYWdnZWRPdmVyIn19KSxkfSkoKTtmdW5jdGlvbiBIZ3QoZCxnKXsxJmQmJihydCgwLCJwIiw4KSxZdCgxLCIgTm8gZGF0YXNldCBtZXRhIHRvIHNob3cuICIpLGx0KCkpfWZ1bmN0aW9uIE5ndChkLGcpe2lmKDEmZCYm''@;'; + put 'put ''KHJ0KDAsImNsci1kZy1yb3ciKSgxLCJjbHItZGctY2VsbCIpLFl0KDIpLGx0KCkscnQoMywiY2xyLWRnLWNlbGwiKSxZdCg0KSxsdCgpKCkpLDImZCl7Y29uc3QgaD1nLiRpbXBsaWNpdDt1dCgyKSxqaShoLk5BTUUpLHV0KDIpLGppKGguVkFMVUUpfX1mdW5jdGlvbiBWZ3QoZCxnKXtpZigx''@;'; + put 'put ''JmQmJihydCgwLCJjbHItdGFiLWNvbnRlbnQiLDExKSgxLCJjbHItZGF0YWdyaWQiKSgyLCJjbHItZGctY29sdW1uIiksWXQoMywiTmFtZSIpLGx0KCkscnQoNCwiY2xyLWRnLWNvbHVtbiIpLFl0KDUsIlZhbHVlIiksbHQoKSxybig2LE5ndCw1LDIsImNsci1kZy1yb3ciLDUpLGx0KCkoKSks''@;'; + put 'put ''MiZkKXtjb25zdCBoPUp0KCkuJGltcGxpY2l0O3V0KDYpLFR0KCJuZ0Zvck9mIixoLmRzbWV0YSl9fWZ1bmN0aW9uIGpndChkLGcpe2lmKDEmZCYmKHJ0KDAsImNsci10YWIiKSgxLCJidXR0b24iLDkpLFl0KDIpLGx0KCkscm4oMyxWZ3QsNywxLCJjbHItdGFiLWNvbnRlbnQiLDEwKSxsdCgp''@;'; + put 'put ''KSwyJmQpe2NvbnN0IGg9Zy4kaW1wbGljaXQsdj1nLmluZGV4O3V0KDIpLGppKGguZ3JvdXApLHV0KDEpLFR0KCJjbHJJZkFjdGl2ZSIsMD09PXYpfX1sZXQgU0xlPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoKXt0aGlzLm9wZW49ITEsdGhpcy5kc21ldGE9W10sdGhpcy5vcGVuQ2hhbmdl''@;'; + put 'put ''PW5ldyBhcix0aGlzLmRzbWV0YUdyb3VwcGVkPVtdfW5nT25Jbml0KCl7fW5nT25DaGFuZ2VzKGgpe3ZhciB2LHk7KG51bGw9PT0oeT1udWxsPT09KHY9aC5kc21ldGEpfHx2b2lkIDA9PT12P3ZvaWQgMDp2LmN1cnJlbnRWYWx1ZSl8fHZvaWQgMD09PXk/dm9pZCAwOnkubGVuZ3RoKT4wJiZ0''@;'; + put 'put ''aGlzLnBhcnNlRFNNZXRhKCl9cGFyc2VEU01ldGEoKXt0aGlzLmRzbWV0YUdyb3VwcGVkPVtdO2ZvcihsZXQgaCBvZiB0aGlzLmRzbWV0YSl7bGV0IHY9dGhpcy5kc21ldGFHcm91cHBlZC5maW5kSW5kZXgoeT0+eS5ncm91cD09PWguT0RTX1RBQkxFKTt2PDAmJih2PXRoaXMuZHNtZXRhR3Jv''@;'; + put 'put ''dXBwZWQucHVzaCh7Z3JvdXA6aC5PRFNfVEFCTEUsZHNtZXRhOltdfSktMSksdGhpcy5kc21ldGFHcm91cHBlZFt2XS5kc21ldGEucHVzaChoKX19b25PcGVuQ2hhbmdlKGgpe3RoaXMub3Blbj1oLHRoaXMub3BlbkNoYW5nZS5lbWl0KGgpfW9uQ2xvc2VDbGljaygpe3RoaXMub25PcGVuQ2hh''@;'; + put 'put ''bmdlKCExKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQsc2VsZWN0b3JzOltbImFwcC1kYXRhc2V0LWluZm8iXV0saW5wdXRzOntvcGVuOiJvcGVuIixkc21ldGE6ImRzbWV0YSJ9LG91dHB1dHM6e29wZW5D''@;'; + put 'put ''aGFuZ2U6Im9wZW5DaGFuZ2UifSxmZWF0dXJlczpbRDJdLGRlY2xzOjEwLHZhcnM6NSxjb25zdHM6W1szLCJjbHJNb2RhbE9wZW4iLCJjbHJNb2RhbFNpemUiLCJjbHJNb2RhbENsb3NhYmxlIiwiY2xyTW9kYWxPcGVuQ2hhbmdlIl0sWzEsIm1vZGFsLXRpdGxlIiwiY2VudGVyIiwidGV4dC1j''@;'; + put 'put ''ZW50ZXIiLCJjb2xvci1kYXJrZXItZ3JheSJdLFsxLCJtb2RhbC1ib2R5Il0sWyJjbGFzcyIsInRleHQtY2VudGVyIiw0LCJuZ0lmIl0sWyJjbHJMYXlvdXQiLCJ2ZXJ0aWNhbCJdLFs0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbMSwibW9kYWwtZm9vdGVyIl0sWyJ0eXBlIiwiYnV0dG9uIiwxLCJi''@;'; + put 'put ''dG4iLCJidG4tc20iLCJidG4taW5mby1vdXRsaW5lIiwzLCJjbGljayJdLFsxLCJ0ZXh0LWNlbnRlciJdLFsiY2xyVGFiTGluayIsIiIsImlkIiwibGluazEiXSxbImlkIiwiY29udGVudDEiLCJjbGFzcyIsImQtZmxleCBjbHItanVzdGlmeS1jb250ZW50LWNlbnRlciB3LTEwMCIsNCwiY2xy''@;'; + put 'put ''SWZBY3RpdmUiXSxbImlkIiwiY29udGVudDEiLDEsImQtZmxleCIsImNsci1qdXN0aWZ5LWNvbnRlbnQtY2VudGVyIiwidy0xMDAiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oaCx2KXsxJmgmJihydCgwLCJjbHItbW9kYWwiLDApLEduKCJjbHJNb2RhbE9wZW5DaGFuZ2UiLGZ1bmN0aW9uKEMpe3Jl''@;'; + put 'put ''dHVybiB2Lm9uT3BlbkNoYW5nZShDKX0pLHJ0KDEsImgzIiwxKSxZdCgyLCJEYXRhc2V0IE1ldGEiKSxsdCgpLHJ0KDMsImRpdiIsMikscm4oNCxIZ3QsMiwwLCJwIiwzKSxydCg1LCJjbHItdGFicyIsNCkscm4oNixqZ3QsNCwyLCJjbHItdGFiIiw1KSxsdCgpKCkscnQoNywiZGl2Iiw2KSg4''@;'; + put 'put ''LCJidXR0b24iLDcpLEduKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gdi5vbkNsb3NlQ2xpY2soKX0pLFl0KDksIiBDbG9zZSAiKSxsdCgpKCkoKSksMiZoJiYoVHQoImNsck1vZGFsT3BlbiIsdi5vcGVuKSgiY2xyTW9kYWxTaXplIiwieGwiKSgiY2xyTW9kYWxDbG9zYWJsZSIsITApLHV0''@;'; + put 'put ''KDQpLFR0KCJuZ0lmIix2LmRzbWV0YUdyb3VwcGVkLmxlbmd0aDwxKSx1dCgyKSxUdCgibmdGb3JPZiIsdi5kc21ldGFHcm91cHBlZCkpfSxkZXBlbmRlbmNpZXM6W0VzLE5vLFpMLGdTLG1TLGd3LEdMLEFTLHlTLHZTLGR3LEhMLFZMLG9kLGFkLEcyLFhMLCRMLEFaLEtMLEpMLG1aXSxzdHls''@;'; + put 'put ''ZXM6WyIubW9kYWwtYm9keVtfbmdjb250ZW50LSVDT01QJV0gICBjbHItdGFic1tfbmdjb250ZW50LSVDT01QJV17bWF4LWhlaWdodDo3MHZofS5tb2RhbC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSAgICAgLnRhYi1jb250ZW50e3dpZHRoOjEwMCU7b3ZlcmZsb3c6YXV0b30ubW9kYWwtYm9k''@;'; + put 'put ''eVtfbmdjb250ZW50LSVDT01QJV0gICAgIC50YWItY29udGVudCAuZGF0YWdyaWQtb3V0ZXItd3JhcHBlcnt3aWR0aDoxMDAlfSJdfSksZH0pKCk7ZnVuY3Rpb24gWmd0KGQsZyl7aWYoMSZkJiYocnQoMCwic3BhbiIsMTcpLFl0KDEpLGx0KCkpLDImZCl7Y29uc3QgaD1KdCgyKTt1dCgxKSxq''@;'; + put 'put ''aShoLmdlbmVyYXRlZFJlY29yZFVybCl9fWZ1bmN0aW9uIHpndChkLGcpe2lmKDEmZCl7Y29uc3QgaD1iaSgpO3J0KDAsImJ1dHRvbiIsMTgpLEduKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gaXQoaCksYShKdCgyKS5nZW5lcmF0ZUVkaXRSZWNvcmRVcmwoKSl9KSxZdCgxKSxsdCgpfWlm''@;'; + put 'put ''KDImZCl7Y29uc3QgaD1KdCgyKTtUdCgiZGlzYWJsZWQiLGguZ2VuZXJhdGVFZGl0UmVjb3JkVXJsTG9hZGluZyksdXQoMSksSmkoIiAiLGguZ2VuZXJhdGVkUmVjb3JkVXJsPyJjb3B5IHRvIGNsaXBib2FyZCI6aC5nZW5lcmF0ZUVkaXRSZWNvcmRVcmxMb2FkaW5nPyJHZW5lcmF0aW5nIHVy''@;'; + put 'put ''bC4uLiI6IkxpbmsgdG8gdGhpcyByZWNvcmQiLCIgIil9fWZ1bmN0aW9uIEdndChkLGcpe2lmKDEmZCYmKEYwKDApLHJuKDEsWmd0LDIsMSwic3BhbiIsMTUpLHJuKDIsemd0LDIsMiwiYnV0dG9uIiwxNiksSDAoKSksMiZkKXtjb25zdCBoPUp0KCk7dXQoMSksVHQoIm5nSWYiLCEobnVsbCE9''@;'; + put 'put ''aC5jdXJyZW50UmVjb3JkJiZoLmN1cnJlbnRSZWNvcmQubm9MaW5rT3B0aW9uKSksdXQoMSksVHQoIm5nSWYiLCEobnVsbCE9aC5jdXJyZW50UmVjb3JkJiZoLmN1cnJlbnRSZWNvcmQubm9MaW5rT3B0aW9uKSl9fWZ1bmN0aW9uIFdndChkLGcpezEmZCYmKHJ0KDAsImRpdiIsMTkpKDEsInNw''@;'; + put 'put ''YW4iLDIwKSxZdCgyLCIgTG9hZGluZy4uLiAiKSxsdCgpKCkpfWZ1bmN0aW9uIFlndChkLGcpezEmZCYmQ3IoMCwiY2xyLWljb24iLDMzKX1mdW5jdGlvbiBVZ3QoZCxnKXsxJmQmJihydCgwLCJzcGFuIiwzNCksWXQoMSwiIExvYWRpbmcuLi4gIiksbHQoKSl9ZnVuY3Rpb24gUWd0KGQsZyl7''@;'; + put 'put ''MSZkJiZDcigwLCJjZHMtaWNvbiIsMzUpfWZ1bmN0aW9uIEpndChkLGcpe2lmKDEmZCl7Y29uc3QgaD1iaSgpO3J0KDAsImNsci1pbnB1dC1jb250YWluZXIiLDM3KSgxLCJpbnB1dCIsMzgpLEduKCJmb2N1c2luIixmdW5jdGlvbih5KXtpdChoKTtjb25zdCBDPUp0KDMpLmluZGV4O3JldHVy''@;'; + put 'put ''biBhKEp0KDIpLm9uUmVjb3JkSW5wdXRGb2N1cyh5LEMpKX0pKCJwYXN0ZSIsZnVuY3Rpb24oeSl7cmV0dXJuIGl0KGgpLGEoSnQoNSkucmVjb3JkSW5wdXRQYXN0ZSh5KSl9KSgiaW5wdXQiLGZ1bmN0aW9uKHkpe2l0KGgpO2NvbnN0IEM9SnQoMykuJGltcGxpY2l0LEk9SnQoMik7cmV0dXJu''@;'; + put 'put ''IEkucmVjb3JkSW5wdXRDaGFuZ2UoeSxDLmtleSksYShJLmN1cnJlbnRSZWNvcmQubm9MaW5rT3B0aW9uPSEwKX0pKCJuZ01vZGVsQ2hhbmdlIixmdW5jdGlvbih5KXtpdChoKTtjb25zdCBDPUp0KDMpLiRpbXBsaWNpdDtyZXR1cm4gYShKdCgyKS5jdXJyZW50UmVjb3JkW0Mua2V5XT15KX0p''@;'; + put 'put ''LGx0KCkoKX1pZigyJmQpe2NvbnN0IGg9SnQoMykuJGltcGxpY2l0LHY9SnQoMik7RmkoImludmFsaWQtZGF0YSIsdi5jdXJyZW50UmVjb3JkSW52YWxpZENvbHMuaW5jbHVkZXMoaC5rZXkpKSx1dCgxKSxUdCgibmdNb2RlbCIsdi5jdXJyZW50UmVjb3JkW2gua2V5XSl9fWZ1bmN0aW9uIFhn''@;'; + put 'put ''dChkLGcpezEmZCYmZjEoMCl9Y29uc3QgSW1lPWZ1bmN0aW9uKGQsZyl7cmV0dXJue2NvbDpkLGNvbEluZGV4Omd9fTtmdW5jdGlvbiBLZ3QoZCxnKXtpZigxJmQmJihydCgwLCJkaXYiKSxybigxLFhndCwxLDAsIm5nLWNvbnRhaW5lciIsMzkpLGx0KCkpLDImZCl7Y29uc3QgaD1KdCgzKSx2''@;'; + put 'put ''PWguJGltcGxpY2l0LHk9aC5pbmRleDtKdCgyKTtjb25zdCBDPXlhKDI3KTt1dCgxKSxUdCgibmdUZW1wbGF0ZU91dGxldCIsQykoIm5nVGVtcGxhdGVPdXRsZXRDb250ZXh0IixaMygyLEltZSx2LHkpKX19Y29uc3QgJGd0PWZ1bmN0aW9uKCl7cmV0dXJuWyJudW1lcmljIix2b2lkIDBdfSxN''@;'; + put 'put ''TGU9ZnVuY3Rpb24oKXtyZXR1cm5bImF1dG9jb21wbGV0ZSJdfTtmdW5jdGlvbiBxZ3QoZCxnKXtpZigxJmQmJihGMCgwKSxybigxLEpndCwyLDMsImNsci1pbnB1dC1jb250YWluZXIiLDM2KSxybigyLEtndCwyLDUsImRpdiIsMiksSDAoKSksMiZkKXtjb25zdCBoPUp0KDIpLiRpbXBsaWNp''@;'; + put 'put ''dCx2PUp0KDIpO2xldCB5LEM7dXQoMSksVHQoIm5nSWYiLFZzKDIsJGd0KS5pbmNsdWRlcyhudWxsPT12LmN1cnJlbnRSZWNvcmRWYWxpZGF0b3J8fG51bGw9PSh5PXYuY3VycmVudFJlY29yZFZhbGlkYXRvci5nZXRSdWxlKGgua2V5KSk/bnVsbDp5LmVkaXRvcikpLHV0KDEpLFR0KCJuZ0lm''@;'; + put 'put ''IixWcygzLE1MZSkuaW5jbHVkZXMobnVsbD09di5jdXJyZW50UmVjb3JkVmFsaWRhdG9yfHxudWxsPT0oQz12LmN1cnJlbnRSZWNvcmRWYWxpZGF0b3IuZ2V0UnVsZShoLmtleSkpP251bGw6Qy5lZGl0b3IpKX19ZnVuY3Rpb24gZW10KGQsZyl7aWYoMSZkKXtjb25zdCBoPWJpKCk7cnQoMCwi''@;'; + put 'put ''Y2xyLXRleHRhcmVhLWNvbnRhaW5lciIpKDEsInRleHRhcmVhIiw0MCw0MSksR24oImZvY3VzaW4iLGZ1bmN0aW9uKHkpe2l0KGgpO2NvbnN0IEM9SnQoMykuaW5kZXg7cmV0dXJuIGEoSnQoMikub25SZWNvcmRJbnB1dEZvY3VzKHksQykpfSkoInBhc3RlIixmdW5jdGlvbih5KXtyZXR1cm4g''@;'; + put 'put ''aXQoaCksYShKdCg1KS5yZWNvcmRJbnB1dFBhc3RlKHkpKX0pKCJpbnB1dCIsZnVuY3Rpb24oeSl7aXQoaCk7Y29uc3QgQz1KdCgzKS4kaW1wbGljaXQ7cmV0dXJuIGEoSnQoMikucmVjb3JkSW5wdXRDaGFuZ2UoeSxDLmtleSkpfSkoIm5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9uKHkpe2l0KGgp''@;'; + put 'put ''O2NvbnN0IEM9SnQoMykuJGltcGxpY2l0O3JldHVybiBhKEp0KDIpLmN1cnJlbnRSZWNvcmRbQy5rZXldPXkpfSksWXQoMywiICAgICAgICAgICAgICAgICAgIiksbHQoKSxydCg0LCJjbHItY29udHJvbC1oZWxwZXIiKSxZdCg1KSxsdCgpKCl9aWYoMiZkKXtjb25zdCBoPXlhKDIpLHY9SnQo''@;'; + put 'put ''MykuJGltcGxpY2l0LHk9SnQoMik7bGV0IEMsSSxqO3V0KDEpLEZpKCJpbnZhbGlkLWRhdGEiLHkuY3VycmVudFJlY29yZEludmFsaWRDb2xzLmluY2x1ZGVzKHYua2V5KSkoIm5vdC1jaGFyIixudWxsPT15LmN1cnJlbnRSZWNvcmRWYWxpZGF0b3J8fG51bGw9PShDPXkuY3VycmVudFJlY29y''@;'; + put 'put ''ZFZhbGlkYXRvci5nZXRSdWxlKHYua2V5KSk/bnVsbDpDLnR5cGUpLFR0KCJyb3dzIix2LnZhbHVlLmxlbmd0aD44MD82OjEpKCJuZ01vZGVsIix5LmN1cnJlbnRSZWNvcmRbdi5rZXldKSgibWF4TGVuZ3RoIixudWxsPT15LmN1cnJlbnRSZWNvcmRWYWxpZGF0b3J8fG51bGw9PShJPXkuY3Vy''@;'; + put 'put ''cmVudFJlY29yZFZhbGlkYXRvci5nZXRSdWxlKHYua2V5KSk/bnVsbDpJLmxlbmd0aCksdXQoNCksRmgoIiIsaC52YWx1ZS5sZW5ndGgsIiAvICIsbnVsbD09eS5jdXJyZW50UmVjb3JkVmFsaWRhdG9yfHxudWxsPT0oaj15LmN1cnJlbnRSZWNvcmRWYWxpZGF0b3IuZ2V0UnVsZSh2LmtleSkp''@;'; + put 'put ''P251bGw6ai5sZW5ndGgsIiIpfX1mdW5jdGlvbiB0bXQoZCxnKXsxJmQmJmYxKDApfWZ1bmN0aW9uIG5tdChkLGcpe2lmKDEmZCYmKHJ0KDAsImRpdiIpLHJuKDEsdG10LDEsMCwibmctY29udGFpbmVyIiwzOSksbHQoKSksMiZkKXtjb25zdCBoPUp0KDMpLHY9aC4kaW1wbGljaXQseT1oLmlu''@;'; + put 'put ''ZGV4O0p0KDIpO2NvbnN0IEM9eWEoMjcpO3V0KDEpLFR0KCJuZ1RlbXBsYXRlT3V0bGV0IixDKSgibmdUZW1wbGF0ZU91dGxldENvbnRleHQiLFozKDIsSW1lLHYseSkpfX1jb25zdCBybXQ9ZnVuY3Rpb24oKXtyZXR1cm5bdm9pZCAwXX07ZnVuY3Rpb24gaW10KGQsZyl7aWYoMSZkJiYoRjAo''@;'; + put 'put ''MCkscm4oMSxlbXQsNiw5LCJjbHItdGV4dGFyZWEtY29udGFpbmVyIiwyKSxybigyLG5tdCwyLDUsImRpdiIsMiksSDAoKSksMiZkKXtjb25zdCBoPUp0KDIpLiRpbXBsaWNpdCx2PUp0KDIpO2xldCB5LEM7dXQoMSksVHQoIm5nSWYiLFZzKDIscm10KS5pbmNsdWRlcyhudWxsPT12LmN1cnJl''@;'; + put 'put ''bnRSZWNvcmRWYWxpZGF0b3J8fG51bGw9PSh5PXYuY3VycmVudFJlY29yZFZhbGlkYXRvci5nZXRSdWxlKGgua2V5KSk/bnVsbDp5LmVkaXRvcikpLHV0KDEpLFR0KCJuZ0lmIixWcygzLE1MZSkuaW5jbHVkZXMobnVsbD09di5jdXJyZW50UmVjb3JkVmFsaWRhdG9yfHxudWxsPT0oQz12LmN1''@;'; + put 'put ''cnJlbnRSZWNvcmRWYWxpZGF0b3IuZ2V0UnVsZShoLmtleSkpP251bGw6Qy5lZGl0b3IpKX19ZnVuY3Rpb24gb210KGQsZyl7aWYoMSZkKXtjb25zdCBoPWJpKCk7cnQoMCwiY2xyLXRleHRhcmVhLWNvbnRhaW5lciIsNDIpKDEsInRleHRhcmVhIiw0MyksR24oInBhc3RlIixmdW5jdGlvbih5''@;'; + put 'put ''KXtyZXR1cm4gaXQoaCksYShKdCg0KS5yZWNvcmRJbnB1dFBhc3RlKHkpKX0pKCJpbnB1dCIsZnVuY3Rpb24oeSl7aXQoaCk7Y29uc3QgQz1KdCgyKS4kaW1wbGljaXQ7cmV0dXJuIGEoSnQoMikucmVjb3JkSW5wdXRDaGFuZ2UoeSxDLmtleSkpfSkoIm5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9u''@;'; + put 'put ''KHkpe2l0KGgpO2NvbnN0IEM9SnQoMikuJGltcGxpY2l0O3JldHVybiBhKEp0KDIpLmN1cnJlbnRSZWNvcmRbQy5rZXldPXkpfSksbHQoKSxydCgyLCJjbHItY29udHJvbC1oZWxwZXIiKSxZdCgzLCJISDptbTpzcyIpLGx0KCkoKX1pZigyJmQpe2NvbnN0IGg9SnQoMikuJGltcGxpY2l0LHY9''@;'; + put 'put ''SnQoMik7bGV0IHk7dXQoMSksRmkoImludmFsaWQtZGF0YSIsdi5jdXJyZW50UmVjb3JkSW52YWxpZENvbHMuaW5jbHVkZXMoaC5rZXkpKSgibm90LWNoYXIiLG51bGw9PXYuY3VycmVudFJlY29yZFZhbGlkYXRvcnx8bnVsbD09KHk9di5jdXJyZW50UmVjb3JkVmFsaWRhdG9yLmdldFJ1bGUo''@;'; + put 'put ''aC5rZXkpKT9udWxsOnkudHlwZSksVHQoInJvd3MiLGgudmFsdWUubGVuZ3RoPjgwPzY6MSkoIm5nTW9kZWwiLHYuY3VycmVudFJlY29yZFtoLmtleV0pfX1mdW5jdGlvbiBhbXQoZCxnKXtpZigxJmQpe2NvbnN0IGg9YmkoKTtydCgwLCJkaXYiLDQyKSgxLCJ0ZXh0YXJlYSIsNDQpLEduKCJw''@;'; + put 'put ''YXN0ZSIsZnVuY3Rpb24oeSl7cmV0dXJuIGl0KGgpLGEoSnQoNCkucmVjb3JkSW5wdXRQYXN0ZSh5KSl9KSgiaW5wdXQiLGZ1bmN0aW9uKHkpe2l0KGgpO2NvbnN0IEM9SnQoMikuJGltcGxpY2l0O3JldHVybiBhKEp0KDIpLnJlY29yZElucHV0Q2hhbmdlKHksQy5rZXkpKX0pKCJuZ01vZGVs''@;'; + put 'put ''Q2hhbmdlIixmdW5jdGlvbih5KXtpdChoKTtjb25zdCBDPUp0KDIpLiRpbXBsaWNpdDtyZXR1cm4gYShKdCgyKS5jdXJyZW50UmVjb3JkW0Mua2V5XT15KX0pLGx0KCkscnQoMiwiY2xyLWRhdGUtY29udGFpbmVyIiw0NSkoMywiaW5wdXQiLDQ2KSxHbigiY2xyRGF0ZUNoYW5nZSIsZnVuY3Rp''@;'; + put 'put ''b24oeSl7aXQoaCk7Y29uc3QgQz1KdCgyKS4kaW1wbGljaXQ7cmV0dXJuIGEoSnQoMikucmVjb3JkRGF0ZUNoYW5nZSh5LEMua2V5KSl9KSxsdCgpKCkoKX1pZigyJmQpe2NvbnN0IGg9SnQoMikuJGltcGxpY2l0LHY9SnQoMik7dXQoMSksRmkoImludmFsaWQtZGF0YSIsdi5jdXJyZW50UmVj''@;'; + put 'put ''b3JkSW52YWxpZENvbHMuaW5jbHVkZXMoaC5rZXkpKSxUdCgibmdNb2RlbCIsdi5jdXJyZW50UmVjb3JkW2gua2V5XSl9fWZ1bmN0aW9uIGxtdChkLGcpezEmZCYmZjEoMCl9ZnVuY3Rpb24gc210KGQsZyl7aWYoMSZkJiYocnQoMCwiZGl2Iikscm4oMSxsbXQsMSwwLCJuZy1jb250YWluZXIi''@;'; + put 'put ''LDM5KSxsdCgpKSwyJmQpe2NvbnN0IGg9SnQoMiksdj1oLiRpbXBsaWNpdCx5PWguaW5kZXg7SnQoMik7Y29uc3QgQz15YSgyNyk7dXQoMSksVHQoIm5nVGVtcGxhdGVPdXRsZXQiLEMpKCJuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dCIsWjMoMixJbWUsdix5KSl9fWZ1bmN0aW9uIHVtdChkLGcp''@;'; + put 'put ''e2lmKDEmZCYmKEYwKDApLHJ0KDEsImRpdiIsMjIpKDIsImRpdiIsMjMpKDMsInAiLDI0KSxZdCg0KSxybig1LFlndCwxLDAsImNsci1pY29uIiwyNSksbHQoKSxydCg2LCJwIiwyNiksWXQoNyksbHQoKSgpLHJ0KDgsImRpdiIsMjcpLHJuKDksVWd0LDIsMCwic3BhbiIsMjgpLHJuKDEwLFFn''@;'; + put 'put ''dCwxLDAsImNkcy1pY29uIiwyOSkscm4oMTEscWd0LDMsNCwibmctY29udGFpbmVyIiwzMCkscm4oMTIsaW10LDMsNCwibmctY29udGFpbmVyIiwzMCkscm4oMTMsb210LDQsNiwiY2xyLXRleHRhcmVhLWNvbnRhaW5lciIsMzEpLHJuKDE0LGFtdCw0LDMsImRpdiIsMzEpLHJuKDE1LHNtdCwy''@;'; + put 'put ''LDUsImRpdiIsMzApLGx0KCkoKSxDcigxNiwiaHIiLDMyKSxIMCgpKSwyJmQpe2NvbnN0IGg9SnQoKSx2PWguJGltcGxpY2l0LHk9aC5pbmRleCxDPUp0KDIpO2xldCBJLGo7dXQoNCksSmkoIiAiLHYua2V5LCIgIiksdXQoMSksVHQoIm5nSWYiLEMuaXNDb2xQayh2LmtleSkpLHV0KDIpLEpp''@;'; + put 'put ''KCIgIixudWxsPT1DLmN1cnJlbnRSZWNvcmRWYWxpZGF0b3J8fG51bGw9PShJPUMuY3VycmVudFJlY29yZFZhbGlkYXRvci5nZXRSdWxlKHYua2V5KSk/bnVsbDpJLmRlc2MsIiAiKSx1dCgxKSxUdCgibmdTd2l0Y2giLG51bGw9PUMuY3VycmVudFJlY29yZFZhbGlkYXRvcnx8bnVsbD09KGo9''@;'; + put 'put ''Qy5jdXJyZW50UmVjb3JkVmFsaWRhdG9yLmdldFJ1bGUodi5rZXkpKT9udWxsOmoudHlwZSksdXQoMSksVHQoIm5nSWYiLEMuY3VycmVudFJlY29yZExvYWRpbmdzLmluY2x1ZGVzKHkpKSx1dCgxKSxUdCgibmdJZiIsQy5jdXJyZW50UmVjb3JkRXJyb3JzLmluY2x1ZGVzKHkpKSx1dCgxKSxU''@;'; + put 'put ''dCgibmdTd2l0Y2hDYXNlIiwibnVtZXJpYyIpLHV0KDEpLFR0KCJuZ1N3aXRjaENhc2UiLHZvaWQgMCksdXQoMSksVHQoIm5nU3dpdGNoQ2FzZSIsInRpbWUiKSx1dCgxKSxUdCgibmdTd2l0Y2hDYXNlIiwiZGF0ZSIpLHV0KDEpLFR0KCJuZ1N3aXRjaENhc2UiLCJhdXRvY29tcGxldGUiKX19''@;'; + put 'put ''ZnVuY3Rpb24gY210KGQsZyl7aWYoMSZkJiYoRjAoMCkscm4oMSx1bXQsMTcsMTEsIm5nLWNvbnRhaW5lciIsMiksSDAoKSksMiZkKXtjb25zdCBoPWcuJGltcGxpY2l0O3V0KDEpLFR0KCJuZ0lmIiwiQWN0aW9uIiE9PWgua2V5JiYiX19fX19ERUxFVEVfX1RISVNfX1JFQ09SRF9fX19fIiE9''@;'; + put 'put ''PWgua2V5JiYibm9MaW5rT3B0aW9uIiE9PWgua2V5KX19ZnVuY3Rpb24gZm10KGQsZyl7aWYoMSZkJiYoRjAoMCkscm4oMSxjbXQsMiwxLCJuZy1jb250YWluZXIiLDIxKSxubigyLCJrZXl2YWx1ZSIpLEgwKCkpLDImZCl7Y29uc3QgaD1KdCgpO3V0KDEpLFR0KCJuZ0Zvck9mIixQbigyLDIs''@;'; + put 'put ''aC5jdXJyZW50UmVjb3JkLGgub3JpZ2luYWxPcmRlcikpKCJuZ0ZvclRyYWNrQnkiLGgudHJhY2tCeUZuKX19ZnVuY3Rpb24gaG10KGQsZyl7aWYoMSZkJiYocnQoMCwib3B0aW9uIiw1MSksWXQoMSksbHQoKSksMiZkKXtjb25zdCBoPWcuJGltcGxpY2l0O1R0KCJuZ1ZhbHVlIixoKSx1dCgx''@;'; + put 'put ''KSxKaSgiICIsaCwiICIpfX1mdW5jdGlvbiBkbXQoZCxnKXtpZigxJmQpe2NvbnN0IGg9YmkoKTtydCgwLCJkaXYiKSgxLCJhcHAtc29mdC1zZWxlY3QiLDQ5KSxHbigiZm9jdXNpbiIsZnVuY3Rpb24oeSl7aXQoaCk7Y29uc3QgQz1KdCgpLmNvbEluZGV4O3JldHVybiBhKEp0KCkub25SZWNv''@;'; + put 'put ''cmRJbnB1dEZvY3VzKHksQykpfSkoInZhbHVlQ2hhbmdlIixmdW5jdGlvbih5KXtpdChoKTtjb25zdCBDPUp0KCkuY29sO3JldHVybiBhKEp0KCkuY3VycmVudFJlY29yZFtDLmtleV09eSl9KSgib25JbnB1dEV2ZW50IixmdW5jdGlvbigpe2l0KGgpO2NvbnN0IHk9SnQoKSxDPXkuY29sLEk9''@;'; + put 'put ''eS5jb2xJbmRleDtyZXR1cm4gYShKdCgpLm9uUmVjb3JkRHJvcGRvd25DaGFuZ2UoQy5rZXksSSkpfSkscm4oMixobXQsMiwyLCJvcHRpb24iLDUwKSxsdCgpKCl9aWYoMiZkKXtjb25zdCBoPUp0KCkuY29sLHY9SnQoKTtsZXQgeTt1dCgxKSxUdCgidmFsdWUiLHYuY3VycmVudFJlY29yZFto''@;'; + put 'put ''LmtleV0pKCJpbnB1dElkIixoLmtleSksdXQoMSksVHQoIm5nRm9yT2YiLG51bGw9PXYuY3VycmVudFJlY29yZFZhbGlkYXRvcnx8bnVsbD09KHk9di5jdXJyZW50UmVjb3JkVmFsaWRhdG9yLmdldFJ1bGUoaC5rZXkpKT9udWxsOnkuc291cmNlKX19ZnVuY3Rpb24gcG10KGQsZyl7aWYoMSZk''@;'; + put 'put ''JiYocnQoMCwib3B0aW9uIiw1NCksWXQoMSksbHQoKSksMiZkKXtjb25zdCBoPWcuJGltcGxpY2l0O1R0KCJ2YWx1ZSIsaCksdXQoMSksSmkoIiAiLGgsIiAiKX19ZnVuY3Rpb24gZ210KGQsZyl7aWYoMSZkKXtjb25zdCBoPWJpKCk7cnQoMCwic2VsZWN0Iiw1MiksR24oImZvY3VzaW4iLGZ1''@;'; + put 'put ''bmN0aW9uKHkpe2l0KGgpO2NvbnN0IEM9SnQoKS5jb2xJbmRleDtyZXR1cm4gYShKdCgpLm9uUmVjb3JkSW5wdXRGb2N1cyh5LEMpKX0pKCJuZ01vZGVsQ2hhbmdlIixmdW5jdGlvbih5KXtpdChoKTtjb25zdCBDPUp0KCkuY29sO3JldHVybiBhKEp0KCkuY3VycmVudFJlY29yZFtDLmtleV09''@;'; + put 'put ''eSl9KSxybigxLHBtdCwyLDIsIm9wdGlvbiIsNTMpLGx0KCl9aWYoMiZkKXtjb25zdCBoPUp0KCkuY29sLHY9SnQoKTtsZXQgeTtUdCgibmdNb2RlbCIsdi5jdXJyZW50UmVjb3JkW2gua2V5XSksdXQoMSksVHQoIm5nRm9yT2YiLG51bGw9PXYuY3VycmVudFJlY29yZFZhbGlkYXRvcnx8bnVs''@;'; + put 'put ''bD09KHk9di5jdXJyZW50UmVjb3JkVmFsaWRhdG9yLmdldFJ1bGUoaC5rZXkpKT9udWxsOnkuc291cmNlKX19Y29uc3QgbW10PWZ1bmN0aW9uKCl7cmV0dXJuWyJTT0ZUU0VMRUNUIiwiU09GVFNFTEVDVF9IT09LIl19O2Z1bmN0aW9uIHZtdChkLGcpe2lmKDEmZCYmKHJuKDAsZG10LDMsMywi''@;'; + put 'put ''ZGl2Iiw0Nykscm4oMSxnbXQsMiwyLCJuZy10ZW1wbGF0ZSIsbnVsbCw0OCxacikpLDImZCl7Y29uc3QgaD1nLmNvbCx2PXlhKDIpLHk9SnQoKTtUdCgibmdJZiIsbnVsbD09eS5jdXJyZW50UmVjb3JkVmFsaWRhdG9yP251bGw6eS5jdXJyZW50UmVjb3JkVmFsaWRhdG9yLmhhc0RxUnVsZXMo''@;'; + put 'put ''aC5rZXksVnMoMixtbXQpKSkoIm5nSWZFbHNlIix2KX19bGV0IEFtdD0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgsdil7dGhpcy5zYXNTdG9yZVNlcnZpY2U9aCx0aGlzLmhlbHBlclNlcnZpY2U9dix0aGlzLnJlY29yZEFjdGlvbj1udWxsLHRoaXMuZmlsdGVyPSExLHRoaXMuc3VibWl0''@;'; + put 'put ''TG9hZGluZz0hMSx0aGlzLmhlYWRlclBrcz1bXSx0aGlzLmNlbGxWYWxpZGF0aW9uPVtdLHRoaXMuY3VycmVudFJlY29yZEluZGV4PS0xLHRoaXMuY3VycmVudFJlY29yZExvYWRpbmdzPVtdLHRoaXMuY3VycmVudFJlY29yZEVycm9ycz1bXSx0aGlzLm9uUmVjb3JkQ2hhbmdlPW5ldyBhcix0''@;'; + put 'put ''aGlzLm9uUmVjb3JkSW5wdXRGb2N1c2VkPW5ldyBhcix0aGlzLm9uUmVjb3JkRHJvcGRvd25DaGFuZ2VkPW5ldyBhcix0aGlzLm9uUmVjb3JkRWRpdENsb3NlPW5ldyBhcix0aGlzLm9uUmVjb3JkRWRpdENvbmZpcm09bmV3IGFyLHRoaXMub25OZXh0UmVjb3JkPW5ldyBhcix0aGlzLm9uUHJl''@;'; + put 'put ''dmlvdXNSZWNvcmQ9bmV3IGFyLHRoaXMuY3VycmVudFJlY29yZEludmFsaWRDb2xzPVtdLHRoaXMuZ2VuZXJhdGVFZGl0UmVjb3JkVXJsTG9hZGluZz0hMSx0aGlzLmdlbmVyYXRlZFJlY29yZFVybD1udWxsLHRoaXMuYWRkUmVjb3JkVXJsPW51bGwsdGhpcy5yZWNvcmROZXdPclBrTW9kaWZp''@;'; + put 'put ''ZWQ9ITEsdGhpcy5hZGRSZWNvcmRMb2FkaW5nPSExLHRoaXMub3JpZ2luYWxPcmRlcj0oeSxDKT0+MH1uZ09uSW5pdCgpe312YWxpZGF0ZVJlY29yZENvbChoLHYpe3JldHVybiBubyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7cmV0dXJuIG5ldyBQcm9taXNlKCh5LEMpPT57dmFy''@;'; + put 'put ''IEk7bnVsbD09PShJPXRoaXMuY3VycmVudFJlY29yZFZhbGlkYXRvcil8fHZvaWQgMD09PUl8fEkuZXhlY3V0ZUhvdFZhbGlkYXRvcihoLHYsaj0+e3koail9KX0pfSl9cmVjb3JkRGF0ZUNoYW5nZShoLHYpe3ZhciB5O2xldCBDPW51bGw9PT0oeT10aGlzLmN1cnJlbnRSZWNvcmRWYWxpZGF0''@;'; + put 'put ''b3IpfHx2b2lkIDA9PT15P3ZvaWQgMDp5LmdldFJ1bGUodiksST1DP0MuZGF0ZUZvcm1hdDoiIjt0aGlzLmN1cnJlbnRSZWNvcmQmJih0aGlzLmN1cnJlbnRSZWNvcmRbdl09ZUkoKShoKS5mb3JtYXQoSSkpfWlzUmVjb3JkTW9kYWxJbnZhbGlkKCl7cmV0dXJuIHRoaXMuY3VycmVudFJlY29y''@;'; + put 'put ''ZEludmFsaWRDb2xzLmxlbmd0aD4wfWNvbmZpcm1SZWNvcmRFZGl0KCl7dGhpcy5jdXJyZW50UmVjb3JkSW52YWxpZENvbHMubGVuZ3RoPDEmJnRoaXMub25SZWNvcmRDaGFuZ2UuZW1pdCh0aGlzLmN1cnJlbnRSZWNvcmQpfWNsb3NlUmVjb3JkRWRpdCgpe3RoaXMub25SZWNvcmRFZGl0Q2xv''@;'; + put 'put ''c2UuZW1pdCgpfW9uUmVjb3JkRHJvcGRvd25DaGFuZ2UoaCx2KXt0aGlzLm9uUmVjb3JkRHJvcGRvd25DaGFuZ2VkLmVtaXQoe2NvbE5hbWU6aCxjb2w6dn0pfW9uUmVjb3JkSW5wdXRGb2N1cyhoLHYpe3RoaXMub25SZWNvcmRJbnB1dEZvY3VzZWQuZW1pdCh7ZXZlbnQ6aCxjb2xOYW1lOnZ9''@;'; + put 'put ''KX1yZWNvcmRJbnB1dFBhc3RlKGgpe3NldFRpbWVvdXQoKCk9PntoLnRhcmdldC52YWx1ZT1oLnRhcmdldC52YWx1ZS5yZXBsYWNlKC9ccyskLywiIil9LDApfXJlY29yZElucHV0Q2hhbmdlKGgsdil7dmFyIHk7cmV0dXJuIG5vKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtjb25z''@;'; + put 'put ''dCBDPW51bGw9PT0oeT10aGlzLmN1cnJlbnRSZWNvcmRWYWxpZGF0b3IpfHx2b2lkIDA9PT15P3ZvaWQgMDp5LmdldFJ1bGUodiksST1oLnRhcmdldC52YWx1ZTt0aGlzLmhlbHBlclNlcnZpY2UuZGVib3VuY2VDYWxsKDMwMCwoKT0+e3RoaXMudmFsaWRhdGVSZWNvcmRDb2woQyxJKS50aGVu''@;'; + put 'put ''KGo9Pntjb25zdCB1ZT10aGlzLmN1cnJlbnRSZWNvcmRJbnZhbGlkQ29scy5pbmRleE9mKHYpO2o/dWU+LTEmJnRoaXMuY3VycmVudFJlY29yZEludmFsaWRDb2xzLnNwbGljZSh1ZSwxKTp1ZTwwJiZ0aGlzLmN1cnJlbnRSZWNvcmRJbnZhbGlkQ29scy5wdXNoKHYpfSl9KX0pfW9uTmV4dFJl''@;'; + put 'put ''Y29yZENsaWNrKCl7dGhpcy5vbk5leHRSZWNvcmQuZW1pdCgpfW9uUHJldmlvdXNSZWNvcmRDbGljaygpe3RoaXMub25QcmV2aW91c1JlY29yZC5lbWl0KCl9Y29weVRvQ2xpcChoKXtjb25zdCB2PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNyZWNvcmRNb2RhbFJlZiAubW9kYWwtdGl0bGUi''@;'; + put 'put ''KTtpZih2KXtjb25zdCB5PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRleHRhcmVhIik7eS5zdHlsZS5wb3NpdGlvbj0iZml4ZWQiLHkuc3R5bGUubGVmdD0iMCIseS5zdHlsZS50b3A9IjAiLHkuc3R5bGUub3BhY2l0eT0iMCIseS5zdHlsZS56SW5kZXg9IjUwMDAiLHkudmFsdWU9aCx2LmFw''@;'; + put 'put ''cGVuZENoaWxkKHkpLHkuZm9jdXMoKSx5LnNlbGVjdCgpLGRvY3VtZW50LmV4ZWNDb21tYW5kKCJjb3B5Iiksdi5yZW1vdmVDaGlsZCh5KSx0aGlzLmdlbmVyYXRlZFJlY29yZFVybD1ofX1nZW5lcmF0ZUVkaXRSZWNvcmRVcmwoKXtyZXR1cm4gbm8odGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0''@;'; + put 'put ''aW9uKigpe2lmKHRoaXMuZ2VuZXJhdGVkUmVjb3JkVXJsKXRoaXMuY29weVRvQ2xpcCh0aGlzLmdlbmVyYXRlZFJlY29yZFVybCk7ZWxzZXt0aGlzLmdlbmVyYXRlRWRpdFJlY29yZFVybExvYWRpbmc9ITA7Y29uc3QgaD1bXTt0aGlzLmhlYWRlclBrcy5mb3JFYWNoKHY9PntsZXQgeT0iQyIs''@;'; + put 'put ''Qz0iIjtmb3IobGV0IEk9MDtJPHRoaXMuY2VsbFZhbGlkYXRpb24ubGVuZ3RoO0krKyl7Y29uc3Qgaj10aGlzLmNlbGxWYWxpZGF0aW9uW0ldO2lmKGouZGF0YT09PXYpeygibnVtZXJpYyI9PT1qLnR5cGV8fCJkYXRlIj09PWoudHlwZXx8InRpbWUiPT09ai50eXBlKSYmKHk9Ik4iKTticmVh''@;'; + put 'put ''a319Qz0iQyI9PT15P2AnJHt0aGlzLmN1cnJlbnRSZWNvcmRbdl19J2A6dGhpcy5jdXJyZW50UmVjb3JkW3ZdLnRvU3RyaW5nKCksaC5wdXNoKHtHUk9VUF9MT0dJQzoiQU5EIixTVUJHUk9VUF9MT0dJQzoiQU5EIixTVUJHUk9VUF9JRDowLFZBUklBQkxFX05NOnYsT1BFUkFUT1JfTk06Ij0i''@;'; + put 'put ''LFJBV19WQUxVRTpDfSl9KSxoLmxlbmd0aD4wJiZ0aGlzLmxpYmRzJiYoeWllbGQgdGhpcy5zYXNTdG9yZVNlcnZpY2Uuc2F2ZVF1ZXJ5KHRoaXMubGliZHMsaCkudGhlbih2PT57dGhpcy5xdWVyeUZpbHRlcj17aWQ6di5yZXN1bHRbMF0uRklMVEVSX1JLLHRhYmxlOnYucmVzdWx0WzBdLkZJ''@;'; + put 'put ''TFRFUl9UQUJMRX07Y29uc3QgST1sb2NhdGlvbi5ocmVmLnNwbGl0KCIjIilbMF0rIiMvZWRpdG9yL2VkaXQtcmVjb3JkLyIrdGhpcy5xdWVyeUZpbHRlci50YWJsZSsiLyIrdGhpcy5xdWVyeUZpbHRlci5pZDt0aGlzLmNvcHlUb0NsaXAoSSksdGhpcy5nZW5lcmF0ZUVkaXRSZWNvcmRVcmxM''@;'; + put 'put ''b2FkaW5nPSExLHRoaXMuZmlsdGVyPSExfSkuY2F0Y2godj0+e3RoaXMuc3VibWl0TG9hZGluZz0hMX0pKX19KX1pc0NvbFBrKGgpe3JldHVybiB0aGlzLmhlYWRlclBrcy5pbmRleE9mKGgpPi0xfXRyYWNrQnlGbihoLHYpe3JldHVybiBofX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24o''@;'; + put 'put ''aCl7cmV0dXJuIG5ldyhofHxkKShLdChrZyksS3QoWGMpKX0sZC5cdTAyNzVjbXA9VGkoe3R5cGU6ZCxzZWxlY3RvcnM6W1siYXBwLWVkaXQtcmVjb3JkIl1dLGlucHV0czp7Y3VycmVudFJlY29yZDoiY3VycmVudFJlY29yZCIscmVjb3JkQWN0aW9uOiJyZWNvcmRBY3Rpb24iLGxpYmRzOiJs''@;'; + put 'put ''aWJkcyIscXVlcnlGaWx0ZXI6InF1ZXJ5RmlsdGVyIixmaWx0ZXI6ImZpbHRlciIsc3VibWl0TG9hZGluZzoic3VibWl0TG9hZGluZyIsaGVhZGVyUGtzOiJoZWFkZXJQa3MiLGNlbGxWYWxpZGF0aW9uOiJjZWxsVmFsaWRhdGlvbiIsY3VycmVudFJlY29yZEluZGV4OiJjdXJyZW50UmVjb3Jk''@;'; + put 'put ''SW5kZXgiLGN1cnJlbnRSZWNvcmRMb2FkaW5nczoiY3VycmVudFJlY29yZExvYWRpbmdzIixjdXJyZW50UmVjb3JkRXJyb3JzOiJjdXJyZW50UmVjb3JkRXJyb3JzIixjdXJyZW50UmVjb3JkVmFsaWRhdG9yOiJjdXJyZW50UmVjb3JkVmFsaWRhdG9yIn0sb3V0cHV0czp7b25SZWNvcmRDaGFu''@;'; + put 'put ''Z2U6Im9uUmVjb3JkQ2hhbmdlIixvblJlY29yZElucHV0Rm9jdXNlZDoib25SZWNvcmRJbnB1dEZvY3VzZWQiLG9uUmVjb3JkRHJvcGRvd25DaGFuZ2VkOiJvblJlY29yZERyb3Bkb3duQ2hhbmdlZCIsb25SZWNvcmRFZGl0Q2xvc2U6Im9uUmVjb3JkRWRpdENsb3NlIixvblJlY29yZEVkaXRD''@;'; + put 'put ''b25maXJtOiJvblJlY29yZEVkaXRDb25maXJtIixvbk5leHRSZWNvcmQ6Im9uTmV4dFJlY29yZCIsb25QcmV2aW91c1JlY29yZDoib25QcmV2aW91c1JlY29yZCJ9LGRlY2xzOjI4LHZhcnM6MTYsY29uc3RzOltbImlkIiwicmVjb3JkTW9kYWxSZWYiLDEsInJlY29yZC1lZGl0LW1vZGFsIiwi''@;'; + put 'put ''cG9zaXRpb24tcmVsYXRpdmUiLDMsImNsck1vZGFsT3BlbiIsImNsck1vZGFsQ2xvc2FibGUiXSxbMSwibW9kYWwtdGl0bGUiXSxbNCwibmdJZiJdLFsxLCJtb2RhbC1ib2R5Il0sWyJjbGFzcyIsImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlciB3LTEw''@;'; + put 'put ''MCBweS0xMCIsNCwibmdJZiJdLFsxLCJtb2RhbC1mb290ZXIiXSxbMSwidmFsaWRhdGlvbi1pbmZvLWFsZXJ0IiwzLCJjbHJBbGVydENsb3NhYmxlIiwiY2xyQWxlcnRUeXBlIl0sWzEsImFsZXJ0LXRleHQiXSxbMSwicHJldi1uZXh0Il0sWyJ0eXBlIiwiYnV0dG9uIiwidGFiaW5kZXgiLCIw''@;'; + put 'put ''IiwxLCJidG4iLCJidG4tb3V0bGluZSIsImZvY3VzYWJsZSIsMywiZGlzYWJsZWQiLCJjbGljayJdLFsic2hhcGUiLCJhbmdsZSBsZWZ0Iiwic2l6ZSIsIjIzIl0sWyJzaGFwZSIsImFuZ2xlIHJpZ2h0Iiwic2l6ZSIsIjIzIl0sWyJ0eXBlIiwiYnV0dG9uIiwxLCJidG4iLCJidG4tb3V0bGlu''@;'; + put 'put ''ZSIsImZvY3VzYWJsZSIsMywiY2xpY2siXSxbInR5cGUiLCJidXR0b24iLDEsImJ0biIsImJ0bi1wcmltYXJ5IiwiZm9jdXNhYmxlIiwzLCJkaXNhYmxlZCIsImNsaWNrIl0sWyJhdXRvY29tcGxldGUiLCIiXSxbImNsYXNzIiwicG9zaXRpb24tYWJzb2x1dGUgZ2VuZXJhdGUtcmVjb3JkLXVy''@;'; + put 'put ''bCIsNCwibmdJZiJdLFsiY2xhc3MiLCJidG4gYnRuLWxpbmsgZ2VuZXJhdGUtcmVjb3JkLXVybC1idXR0b24gcG9zaXRpb24tYWJzb2x1dGUiLDMsImRpc2FibGVkIiwiY2xpY2siLDQsIm5nSWYiXSxbMSwicG9zaXRpb24tYWJzb2x1dGUiLCJnZW5lcmF0ZS1yZWNvcmQtdXJsIl0sWzEsImJ0''@;'; + put 'put ''biIsImJ0bi1saW5rIiwiZ2VuZXJhdGUtcmVjb3JkLXVybC1idXR0b24iLCJwb3NpdGlvbi1hYnNvbHV0ZSIsMywiZGlzYWJsZWQiLCJjbGljayJdLFsxLCJkLWZsZXgiLCJqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIiwiYWxpZ24taXRlbXMtY2VudGVyIiwidy0xMDAiLCJweS0xMCJdLFsxLCJz''@;'; + put 'put ''cGlubmVyIl0sWzQsIm5nRm9yIiwibmdGb3JPZiIsIm5nRm9yVHJhY2tCeSJdLFsxLCJjb2x1bW4tZW50cnkiXSxbMSwibmFtZS1pbnB1dC1yb3ciXSxbMSwiZm9udC13ZWlnaHQtYm9sZCJdLFsic2hhcGUiLCJrZXkiLDQsIm5nSWYiXSxbMSwiY2VsbC1kZXNjIl0sWzEsImlucHV0cy13cmFw''@;'; + put 'put ''cGVyIiwicG9zaXRpb24tcmVsYXRpdmUiLDMsIm5nU3dpdGNoIl0sWyJjbGFzcyIsInNwaW5uZXIgc3Bpbm5lci1pbmxpbmUgZmxleC11bnNldCBwb3NpdGlvbi1hYnNvbHV0ZSBlbnRyeS1pbnB1dC1sZWZ0LW9mZnNldCIsNCwibmdJZiJdLFsiY2xhc3MiLCJmbGV4LXVuc2V0IHBvc2l0aW9u''@;'; + put 'put ''LWFic29sdXRlIGVudHJ5LWlucHV0LWxlZnQtb2Zmc2V0Iiwic2hhcGUiLCJlcnJvci1zdGFuZGFyZCIsInN0YXR1cyIsIndhcm5pbmciLDQsIm5nSWYiXSxbNCwibmdTd2l0Y2hDYXNlIl0sWyJjbGFzcyIsImRhdGUtZmllbGQiLDQsIm5nU3dpdGNoQ2FzZSJdLFsxLCJtdC0xMCJdLFsic2hh''@;'; + put 'put ''cGUiLCJrZXkiXSxbMSwic3Bpbm5lciIsInNwaW5uZXItaW5saW5lIiwiZmxleC11bnNldCIsInBvc2l0aW9uLWFic29sdXRlIiwiZW50cnktaW5wdXQtbGVmdC1vZmZzZXQiXSxbInNoYXBlIiwiZXJyb3Itc3RhbmRhcmQiLCJzdGF0dXMiLCJ3YXJuaW5nIiwxLCJmbGV4LXVuc2V0IiwicG9z''@;'; + put 'put ''aXRpb24tYWJzb2x1dGUiLCJlbnRyeS1pbnB1dC1sZWZ0LW9mZnNldCJdLFsiY2xhc3MiLCJudW1lcmljLWlucHV0IiwzLCJpbnZhbGlkLWRhdGEiLDQsIm5nSWYiXSxbMSwibnVtZXJpYy1pbnB1dCJdLFsiY2xySW5wdXQiLCIiLCJ0eXBlIiwidGV4dCIsMSwibm90LWNoYXIiLDMsIm5nTW9k''@;'; + put 'put ''ZWwiLCJmb2N1c2luIiwicGFzdGUiLCJpbnB1dCIsIm5nTW9kZWxDaGFuZ2UiXSxbNCwibmdUZW1wbGF0ZU91dGxldCIsIm5nVGVtcGxhdGVPdXRsZXRDb250ZXh0Il0sWyJjbHJUZXh0YXJlYSIsIiIsMywicm93cyIsIm5nTW9kZWwiLCJtYXhMZW5ndGgiLCJmb2N1c2luIiwicGFzdGUiLCJp''@;'; + put 'put ''bnB1dCIsIm5nTW9kZWxDaGFuZ2UiXSxbImNoYXJUZXh0YXJlYSIsIiJdLFsxLCJkYXRlLWZpZWxkIl0sWyJjbHJUZXh0YXJlYSIsIiIsMywicm93cyIsIm5nTW9kZWwiLCJwYXN0ZSIsImlucHV0IiwibmdNb2RlbENoYW5nZSJdLFsiY2xyVGV4dGFyZWEiLCIiLCJyb3dzIiwiMSIsImNvbHMi''@;'; + put 'put ''LCJhdXRvIiwxLCJub3QtY2hhciIsMywibmdNb2RlbCIsInBhc3RlIiwiaW5wdXQiLCJuZ01vZGVsQ2hhbmdlIl0sWzEsImRhdGUtcGlja2VyIl0sWyJ0eXBlIiwiZGF0ZSIsIm5hbWUiLCJkYXRlIiwiY2xyRGF0ZSIsIiIsMSwiZC1ub25lIiwzLCJjbHJEYXRlQ2hhbmdlIl0sWzQsIm5nSWYi''@;'; + put 'put ''LCJuZ0lmRWxzZSJdLFsib3RoZXJfdGhhbl9zb2Z0X3NlbGVjdCIsIiJdLFszLCJ2YWx1ZSIsImlucHV0SWQiLCJmb2N1c2luIiwidmFsdWVDaGFuZ2UiLCJvbklucHV0RXZlbnQiXSxbMywibmdWYWx1ZSIsNCwibmdGb3IiLCJuZ0Zvck9mIl0sWzMsIm5nVmFsdWUiXSxbImNsclNlbGVjdCIs''@;'; + put 'put ''IiIsMywibmdNb2RlbCIsImZvY3VzaW4iLCJuZ01vZGVsQ2hhbmdlIl0sWzMsInZhbHVlIiw0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbMywidmFsdWUiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oaCx2KXsxJmgmJihydCgwLCJjbHItbW9kYWwiLDApKDEsImgzIiwxKSxZdCgyKSxybigzLEdndCwzLDIs''@;'; + put 'put ''Im5nLWNvbnRhaW5lciIsMiksbHQoKSxydCg0LCJkaXYiLDMpLHJuKDUsV2d0LDMsMCwiZGl2Iiw0KSxybig2LGZtdCwzLDUsIm5nLWNvbnRhaW5lciIsMiksbHQoKSxydCg3LCJkaXYiLDUpKDgsImNsci1hbGVydCIsNikoOSwiY2xyLWFsZXJ0LWl0ZW0iKSgxMCwic3BhbiIsNyksWXQoMTEs''@;'; + put 'put ''IiBEYXRhIFZhbGlkYXRpb24gRXJyb3JzIC0gUGxlYXNlIFJldmlldyAiKSxsdCgpKCkoKSxydCgxMiwiZGl2Iiw4KSgxMywiYnV0dG9uIiw5KSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHYub25QcmV2aW91c1JlY29yZENsaWNrKCl9KSxDcigxNCwiY2xyLWljb24iLDEwKSxsdCgp''@;'; + put 'put ''LHJ0KDE1LCJwIiksWXQoMTYsIiBDdXJyZW50IHJvdzogIikscnQoMTcsInN0cm9uZyIpLFl0KDE4KSxsdCgpKCkscnQoMTksImJ1dHRvbiIsOSksR24oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiB2Lm9uTmV4dFJlY29yZENsaWNrKCl9KSxDcigyMCwiY2xyLWljb24iLDExKSxsdCgpKCks''@;'; + put 'put ''cnQoMjEsImRpdiIpKDIyLCJidXR0b24iLDEyKSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHYuY3VycmVudFJlY29yZC5ub0xpbmtPcHRpb249ITEsdi5jbG9zZVJlY29yZEVkaXQoKX0pLFl0KDIzLCIgQ2FuY2VsICIpLGx0KCkscnQoMjQsImJ1dHRvbiIsMTMpLEduKCJjbGljayIs''@;'; + put 'put ''ZnVuY3Rpb24oKXtyZXR1cm4gdi5jb25maXJtUmVjb3JkRWRpdCgpfSksWXQoMjUsIiBDb25maXJtICIpLGx0KCkoKSgpLHJuKDI2LHZtdCwzLDMsIm5nLXRlbXBsYXRlIixudWxsLDE0LFpyKSxsdCgpKSwyJmgmJihUdCgiY2xyTW9kYWxPcGVuIiwhMCkoImNsck1vZGFsQ2xvc2FibGUiLCEx''@;'; + put 'put ''KSx1dCgyKSxrZigiICIsIkFERCI9PT12LnJlY29yZEFjdGlvbj8iQWRkIjoiRWRpdCIsIiByZWNvcmQgaW4gIiwobnVsbD09di5saWJkcz9udWxsOnYubGliZHMuc3BsaXQoIi4iKSlbMF0sIi4iLChudWxsPT12LmxpYmRzP251bGw6di5saWJkcy5zcGxpdCgiLiIpKVsxXSwiICIpLHV0KDEp''@;'; + put 'put ''LFR0KCJuZ0lmIiwiRURJVCI9PT12LnJlY29yZEFjdGlvbiksdXQoMiksVHQoIm5nSWYiLHYuYWRkUmVjb3JkTG9hZGluZyksdXQoMSksVHQoIm5nSWYiLCF2LmFkZFJlY29yZExvYWRpbmcpLHV0KDIpLFIzKCJ2aXNpYmlsaXR5Iix2LmN1cnJlbnRSZWNvcmRJbnZhbGlkQ29scy5sZW5ndGg+''@;'; + put 'put ''MD8idmlzaWJsZSI6ImhpZGRlbiIpLFR0KCJjbHJBbGVydENsb3NhYmxlIiwhMSkoImNsckFsZXJ0VHlwZSIsImRhbmdlciIpLHV0KDUpLFR0KCJkaXNhYmxlZCIsdi5jdXJyZW50UmVjb3JkSW52YWxpZENvbHMubGVuZ3RoPjApLHV0KDUpLEppKCIgIix2LmN1cnJlbnRSZWNvcmRJbmRleCsx''@;'; + put 'put ''LCIgIiksdXQoMSksVHQoImRpc2FibGVkIix2LmN1cnJlbnRSZWNvcmRJbnZhbGlkQ29scy5sZW5ndGg+MCksdXQoNSksVHQoImRpc2FibGVkIix2LmN1cnJlbnRSZWNvcmRJbnZhbGlkQ29scy5sZW5ndGg+MCkpfSxkZXBlbmRlbmNpZXM6W0VzLE5vLFhkLEpkLGlwLHEzLGVkLG0xLE9mLHhz''@;'; + put 'put ''LFRzLHBaLGt5ZSxnWixKZmUsd2wsWm8sb2QsYWQsUmUsblosSWZlLHB2LFJBZSxpWixtT2UsWUFlLENMZSxHVF0sc3R5bGVzOlsiLnJlY29yZC1lZGl0LW1vZGFsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jb2x1bW4tZW50cnlbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtqdXN0''@;'; + put 'put ''aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2Vlbn0ucmVjb3JkLWVkaXQtbW9kYWxbX25nY29udGVudC0lQ09NUCVdICAgLmNvbHVtbi1lbnRyeVtfbmdjb250ZW50LSVDT01QJV0gICAubmFtZS1pbnB1dC1yb3dbX25nY29udGVudC0lQ09NUCVde3dpZHRoOjEwMCU7bWF4LXdpZHRoOjI2MHB4fS5y''@;'; + put 'put ''ZWNvcmQtZWRpdC1tb2RhbFtfbmdjb250ZW50LSVDT01QJV0gICAuY29sdW1uLWVudHJ5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5uYW1lLWlucHV0LXJvd1tfbmdjb250ZW50LSVDT01QJV0gICAuY2VsbC1kZXNjW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tcmlnaHQ6MzBweDttYXJnaW4t''@;'; + put 'put ''dG9wOjEwcHh9LnJlY29yZC1lZGl0LW1vZGFsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jb2x1bW4tZW50cnlbX25nY29udGVudC0lQ09NUCVdICAgLmlucHV0cy13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmbGV4OjE7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcn0ucmVjb3Jk''@;'; + put 'put ''LWVkaXQtbW9kYWxbX25nY29udGVudC0lQ09NUCVdICAgLmNvbHVtbi1lbnRyeVtfbmdjb250ZW50LSVDT01QJV0gICAuaW5wdXRzLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgID4qOm5vdCguZGF0ZS1maWVsZCk6bm90KGNsci1zZWxlY3QtY29udGFpbmVyKXtmbGV4OjF9LnJlY29y''@;'; + put 'put ''ZC1lZGl0LW1vZGFsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jb2x1bW4tZW50cnlbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDowfS5yZWNvcmQtZWRpdC1tb2RhbFtfbmdjb250ZW50LSVDT01QJV0gICAuY29sdW1uLWVudHJ5W19uZ2NvbnRl''@;'; + put 'put ''bnQtJUNPTVAlXSAgICAgLmNsci10ZXh0YXJlYS13cmFwcGVye21hcmdpbi10b3A6MCFpbXBvcnRhbnR9LnJlY29yZC1lZGl0LW1vZGFsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jb2x1bW4tZW50cnlbX25nY29udGVudC0lQ09NUCVdICAgICAuY2xyLWZvcm0tY29udHJvbHttYXJnaW4tdG9w''@;'; + put 'put ''OjAhaW1wb3J0YW50fS5yZWNvcmQtZWRpdC1tb2RhbFtfbmdjb250ZW50LSVDT01QJV0gICAuY29sdW1uLWVudHJ5W19uZ2NvbnRlbnQtJUNPTVAlXSAgICAgYXBwLXNvZnQtc2VsZWN0e2Rpc3BsYXk6YmxvY2s7d2lkdGg6MjI0cHg7YmFja2dyb3VuZDojZmZmO2JvcmRlcjoxcHggc29saWQg''@;'; + put 'put ''Izk5OTtjb2xvcjojMDAwO3BhZGRpbmc6Y2FsYyguMjVyZW0gKyAycHgpIC41cmVtO2JvcmRlci1yYWRpdXM6LjEyNXJlbTtmb250LXNpemU6LjU0MTY2N3JlbTttYXJnaW4tcmlnaHQ6NnB4fS5yZWNvcmQtZWRpdC1tb2RhbFtfbmdjb250ZW50LSVDT01QJV0gICAuY29sdW1uLWVudHJ5W19u''@;'; + put 'put ''Z2NvbnRlbnQtJUNPTVAlXSAgICAgYXBwLXNvZnQtc2VsZWN0IGlucHV0e3dpZHRoOjEwMCU7Ym9yZGVyOjA7YmFja2dyb3VuZC1jb2xvcjojZmZmfS5yZWNvcmQtZWRpdC1tb2RhbFtfbmdjb250ZW50LSVDT01QJV0gICAuY29sdW1uLWVudHJ5W19uZ2NvbnRlbnQtJUNPTVAlXSAgICAgYXBw''@;'; + put 'put ''LXNvZnQtc2VsZWN0IGlucHV0OmZvY3Vze2JhY2tncm91bmQ6bm9uZTtib3JkZXI6MCFpbXBvcnRhbnR9LnJlY29yZC1lZGl0LW1vZGFsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jb2x1bW4tZW50cnlbX25nY29udGVudC0lQ09NUCVdICAgICBhcHAtc29mdC1zZWxlY3QgaW5wdXQ6Oi13ZWJr''@;'; + put 'put ''aXQtb3V0ZXItc3Bpbi1idXR0b24sIC5yZWNvcmQtZWRpdC1tb2RhbFtfbmdjb250ZW50LSVDT01QJV0gICAuY29sdW1uLWVudHJ5W19uZ2NvbnRlbnQtJUNPTVAlXSAgICAgYXBwLXNvZnQtc2VsZWN0IGlucHV0Ojotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uey13ZWJraXQtYXBwZWFyYW5j''@;'; + put 'put ''ZTpub25lO21hcmdpbjowfS5yZWNvcmQtZWRpdC1tb2RhbFtfbmdjb250ZW50LSVDT01QJV0gICAuY29sdW1uLWVudHJ5W19uZ2NvbnRlbnQtJUNPTVAlXTpmaXJzdC1jaGlsZCAgIHBbX25nY29udGVudC0lQ09NUCVdOmZpcnN0LWNoaWxke21hcmdpbi10b3A6MH0ucmVjb3JkLWVkaXQtbW9k''@;'; + put 'put ''YWxbX25nY29udGVudC0lQ09NUCVdICAgLmRhdGUtZmllbGRbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5yZWNvcmQtZWRpdC1tb2RhbFtfbmdjb250ZW50LSVDT01QJV0gICAuZGF0ZS1maWVsZFtfbmdjb250ZW50LSVDT01QJV0g''@;'; + put 'put ''ICB0ZXh0YXJlYVtfbmdjb250ZW50LSVDT01QJV17d2lkdGg6MjMwcHh9LnJlY29yZC1lZGl0LW1vZGFsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5kYXRlLWZpZWxkW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5kYXRlLXBpY2tlcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7''@;'; + put 'put ''cmlnaHQ6MDt0b3A6NHB4fS5yZWNvcmQtZWRpdC1tb2RhbFtfbmdjb250ZW50LSVDT01QJV0gICAuZGF0ZS1maWVsZFtfbmdjb250ZW50LSVDT01QJV0gICAuZGF0ZS1waWNrZXJbX25nY29udGVudC0lQ09NUCVdICAgICAuY2xyLWlucHV0LWdyb3Vwe2JvcmRlcjowIWltcG9ydGFudH0ucmVj''@;'; + put 'put ''b3JkLWVkaXQtbW9kYWxbX25nY29udGVudC0lQ09NUCVdICAgLm1vZGFsLWJvZHlbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEwcHh9LnJlY29yZC1lZGl0LW1vZGFsW19uZ2NvbnRlbnQtJUNPTVAlXSAgICAgY2xyLXNlbGVjdC1jb250YWluZXJ7Ym9yZGVyOjFweCBzb2xp''@;'; + put 'put ''ZCAjOTk5O2NvbG9yOiMwMDA7Ym9yZGVyLXJhZGl1czouMTI1cmVtO21hcmdpbi1yaWdodDo1cHh9LnJlY29yZC1lZGl0LW1vZGFsW19uZ2NvbnRlbnQtJUNPTVAlXSAgICAgY2xyLXNlbGVjdC1jb250YWluZXIgLmNsci1zZWxlY3Qtd3JhcHBlcnttYXgtaGVpZ2h0OnVuc2V0fS5yZWNvcmQt''@;'; + put 'put ''ZWRpdC1tb2RhbFtfbmdjb250ZW50LSVDT01QJV0gICAgIGNsci1zZWxlY3QtY29udGFpbmVyIC5jbHItc2VsZWN0LXdyYXBwZXI6YWZ0ZXJ7dG9wOjE1cHh9LnJlY29yZC1lZGl0LW1vZGFsW19uZ2NvbnRlbnQtJUNPTVAlXSAgICAgY2xyLXNlbGVjdC1jb250YWluZXIgc2VsZWN0e2hlaWdo''@;'; + put 'put ''dDphdXRvO3BhZGRpbmc6MTBweCAyMHB4IDEwcHggMTBweDtib3JkZXI6MCFpbXBvcnRhbnR9LnJlY29yZC1lZGl0LW1vZGFsW19uZ2NvbnRlbnQtJUNPTVAlXSAgICAgY2xyLXNlbGVjdC1jb250YWluZXIgc2VsZWN0OmZvY3Vze2JhY2tncm91bmQ6MCAwIWltcG9ydGFudH0ucmVjb3JkLWVk''@;'; + put 'put ''aXQtbW9kYWxbX25nY29udGVudC0lQ09NUCVdICAgICBjbHItc2VsZWN0LWNvbnRhaW5lciBzZWxlY3Q6aG92ZXJ7YmFja2dyb3VuZDp0cmFuc3BhcmVudH0ucmVjb3JkLWVkaXQtbW9kYWxbX25nY29udGVudC0lQ09NUCVdICAgICBjbHItaW5wdXQtY29udGFpbmVye3dpZHRoOjIyNHB4O2Jh''@;'; + put 'put ''Y2tncm91bmQ6I2ZmZjtib3JkZXI6MXB4IHNvbGlkICM5OTk7Y29sb3I6IzAwMDtwYWRkaW5nOmNhbGMoLjI1cmVtICsgMnB4KSAuNXJlbTtib3JkZXItcmFkaXVzOi4xMjVyZW07Zm9udC1zaXplOi41NDE2NjdyZW07bWFyZ2luLXJpZ2h0OjZweH0ucmVjb3JkLWVkaXQtbW9kYWxbX25nY29u''@;'; + put 'put ''dGVudC0lQ09NUCVdICAgICBjbHItaW5wdXQtY29udGFpbmVyIGlucHV0e3dpZHRoOjEwMCU7Ym9yZGVyOjB9LnJlY29yZC1lZGl0LW1vZGFsW19uZ2NvbnRlbnQtJUNPTVAlXSAgICAgY2xyLWlucHV0LWNvbnRhaW5lciBpbnB1dDpmb2N1c3tiYWNrZ3JvdW5kOm5vbmU7Ym9yZGVyOjAhaW1w''@;'; + put 'put ''b3J0YW50fS5yZWNvcmQtZWRpdC1tb2RhbFtfbmdjb250ZW50LSVDT01QJV0gICAgIGNsci1pbnB1dC1jb250YWluZXIgaW5wdXQ6Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24sIC5yZWNvcmQtZWRpdC1tb2RhbFtfbmdjb250ZW50LSVDT01QJV0gICAgIGNsci1pbnB1dC1jb250YWluZXIg''@;'; + put 'put ''aW5wdXQ6Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b257LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7bWFyZ2luOjB9LnJlY29yZC1lZGl0LW1vZGFsW19uZ2NvbnRlbnQtJUNPTVAlXSAgICAgY2xyLWlucHV0LWNvbnRhaW5lci5pbnZhbGlkLWRhdGF7Ym9yZGVyLWNvbG9yOnJlZH0ucmVjb3Jk''@;'; + put 'put ''LWVkaXQtbW9kYWxbX25nY29udGVudC0lQ09NUCVdICAgICAubW9kYWwtZGlhbG9ne3dpZHRoOjgwdnd9LnJlY29yZC1lZGl0LW1vZGFsW19uZ2NvbnRlbnQtJUNPTVAlXSAgICAgLmNsci1jb250cm9sLWNvbnRhaW5lcnt3aWR0aDoxMDAlfS5yZWNvcmQtZWRpdC1tb2RhbFtfbmdjb250ZW50''@;'; + put 'put ''LSVDT01QJV0gICAgIC5jbHItY29udHJvbC1jb250YWluZXIgdGV4dGFyZWF7d2lkdGg6MTAwJTtyZXNpemU6bm9uZTtib3JkZXItY29sb3I6Izk5OX0ucmVjb3JkLWVkaXQtbW9kYWxbX25nY29udGVudC0lQ09NUCVdICAgICAuY2xyLWNvbnRyb2wtY29udGFpbmVyIHRleHRhcmVhLmludmFs''@;'; + put 'put ''aWQtZGF0YXtib3JkZXItY29sb3I6cmVkO291dGxpbmU6MH0ucmVjb3JkLWVkaXQtbW9kYWxbX25nY29udGVudC0lQ09NUCVdICAgICAuY2xyLWNvbnRyb2wtY29udGFpbmVyIHRleHRhcmVhLm5vdC1jaGFye2ZvbnQtZmFtaWx5Okx1Y2lkYSBDb25zb2xlLE1vbmFjbyxtb25vc3BhY2V9LnJl''@;'; + put 'put ''Y29yZC1lZGl0LW1vZGFsW19uZ2NvbnRlbnQtJUNPTVAlXSAgICAgLmdlbmVyYXRlLXJlY29yZC11cmx7cmlnaHQ6NDBweDt0b3A6NDBweDtmb250LXNpemU6MTJweH0ucmVjb3JkLWVkaXQtbW9kYWxbX25nY29udGVudC0lQ09NUCVdICAgICAuZ2VuZXJhdGUtcmVjb3JkLXVybC1idXR0b257''@;'; + put 'put ''cmlnaHQ6MjVweDt0b3A6NXB4fS5yZWNvcmQtZWRpdC1tb2RhbFtfbmdjb250ZW50LSVDT01QJV0gICAgIC5tb2RhbC1oZWFkZXJ7cGFkZGluZzowIDAgMXJlbX0ucmVjb3JkLWVkaXQtbW9kYWxbX25nY29udGVudC0lQ09NUCVdICAgICAubW9kYWwtZm9vdGVye2Rpc3BsYXk6ZmxleDthbGln''@;'; + put 'put ''bi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47aGVpZ2h0OjY1cHh9LnJlY29yZC1lZGl0LW1vZGFsW19uZ2NvbnRlbnQtJUNPTVAlXSAgICAgLm1vZGFsLWZvb3RlciAuYWxlcnR7bWFyZ2luOjB9LnByZXYtbmV4dFtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxh''@;'; + put 'put ''eTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjttYXJnaW4tbGVmdDotMTUwcHh9LnByZXYtbmV4dFtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW46MH0ucHJldi1uZXh0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17''@;'; + put 'put ''bWFyZ2luOjAgMTBweH0uZm9jdXNhYmxlW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1c3tib3gtc2hhZG93OjAgMCAzcHggIzVhYTIyMH0uZW50cnktaW5wdXQtbGVmdC1vZmZzZXRbX25nY29udGVudC0lQ09NUCVde2xlZnQ6LTMwcHh9LnZhbGlkYXRpb24taW5mby1hbGVydFtfbmdjb250ZW50''@;'; + put 'put ''LSVDT01QJV17d2lkdGg6MzEwcHh9Il19KSxkfSkoKTtmdW5jdGlvbiB5bXQoZCxnKXtpZigxJmQmJihydCgwLCJwIiwzKSxZdCgxKSxsdCgpKSwyJmQpe2NvbnN0IGg9Zy4kaW1wbGljaXQ7dXQoMSksSmkoIiAiLGgsIiAiKX19bGV0IHdtdD0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKCl7''@;'; + put 'put ''dGhpcy5zdGF0ZXNMaXN0PVtdLHRoaXMucHJvY2Vzc2VkU3RhdGVzPVtdLHRoaXMuc3RhdGVySW5Qcm9ncmVzcz0hMSx0aGlzLm1pbkRlbGF5PTFlM31uZ09uSW5pdCgpe31hcHBlbmRTdGF0ZShoKXtpZigie2ZpbmlzaH0iPT09aClyZXR1cm4gdGhpcy5zdGF0ZXJJblByb2dyZXNzPSExLHZv''@;'; + put 'put ''aWQgY2xlYXJJbnRlcnZhbCh0aGlzLnN0YXRlSW50ZXJ2YWwpO3RoaXMuc3RhdGVzTGlzdC5wdXNoKGgpLHRoaXMucHJvY2Vzc2VkU3RhdGVzLnB1c2goaCl9cmVwbGFjZUxhc3RTdGF0ZShoKXt0aGlzLnN0YXRlc0xpc3QubGVuZ3RoPjA/KHRoaXMuc3RhdGVzTGlzdC5wb3AoKSx0aGlzLnN0''@;'; + put 'put ''YXRlc0xpc3QucHVzaChoKSk6dGhpcy5wcm9jZXNzZWRTdGF0ZXNbdGhpcy5wcm9jZXNzZWRTdGF0ZXMubGVuZ3RoLTFdPWh9Y2xlYXJTdGF0ZXMoKXt0aGlzLnByb2Nlc3NlZFN0YXRlcz1bXX1zdGFydFN0YXRlcigpe3RoaXMuc3RhdGVySW5Qcm9ncmVzcz0hMCx0aGlzLnN0YXRlc0xpc3Qu''@;'; + put 'put ''bGVuZ3RoPjAmJnRoaXMucHJvY2Vzc2VkU3RhdGVzLnB1c2godGhpcy5zdGF0ZXNMaXN0LnNoaWZ0KCl8fCIiKSx0aGlzLnN0YXRlSW50ZXJ2YWw9c2V0SW50ZXJ2YWwoKCk9Pnt0aGlzLnN0YXRlc0xpc3QubGVuZ3RoPjAmJnRoaXMucHJvY2Vzc2VkU3RhdGVzLnB1c2godGhpcy5zdGF0ZXNM''@;'; + put 'put ''aXN0LnNoaWZ0KCl8fCIiKX0sdGhpcy5taW5EZWxheSl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1MDI3NWNtcD1UaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJhcHAtdXBsb2FkLXN0YXRlciJdXSxkZWNsczo1LHZhcnM6MSxjb25zdHM6W1si''@;'; + put 'put ''Y2xhc3MiLCJtLTAiLDQsIm5nRm9yIiwibmdGb3JPZiJdLFsxLCJ0ZXh0LWNlbnRlciJdLFsxLCJzcGlubmVyIiwic3Bpbm5lci1zbSIsInZlcnRpY2FsLWFsaWduLW1pZGRsZSJdLFsxLCJtLTAiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oaCx2KXsxJmgmJihydCgwLCJkaXYiKSxybigxLHltdCwy''@;'; + put 'put ''LDEsInAiLDApLGx0KCkscnQoMiwiZGl2IiwxKSgzLCJzcGFuIiwyKSxZdCg0LCJMb2FkaW5nLi4uIiksbHQoKSgpKSwyJmgmJih1dCgxKSxUdCgibmdGb3JPZiIsdi5wcm9jZXNzZWRTdGF0ZXMpKX0sZGVwZW5kZW5jaWVzOltFc10sc3R5bGVzOlsiW19uZ2hvc3QtJUNPTVAlXXtkaXNwbGF5''@;'; + put 'put ''OmJsb2NrfXBbX25nY29udGVudC0lQ09NUCVde21hcmdpbjowO3RleHQtYWxpZ246Y2VudGVyfSJdfSksZH0pKCksYm10PSgoKT0+e2NsYXNzIGR7dHJhbnNmb3JtKGgpe3JldHVybiBoLnJlcGxhY2UoL1x8L2csIiB8ICIpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJu''@;'; + put 'put ''IG5ldyhofHxkKX0sZC5cdTAyNzVwaXBlPVVzKHtuYW1lOiJwa1NwYWNlU2VwYXJhdGUiLHR5cGU6ZCxwdXJlOiEwfSksZH0pKCksRUxlPSgoKT0+e2NsYXNzIGR7dHJhbnNmb3JtKGgsdil7cmV0dXJuIHRoaXMuYWRkU2VwYXJhdG9ycyhoLnRvU3RyaW5nKCksdil9YWRkU2VwYXJhdG9ycyho''@;'; + put 'put ''LHY9IiAiKXtjb25zdCB5PShoKz0iIikuc3BsaXQoIi4iKTtsZXQgQz15WzBdO2NvbnN0IEk9eS5sZW5ndGg+MT8iLiIreVsxXToiIixqPS8oXGQrKShcZHszfSkvO2Zvcig7ai50ZXN0KEMpOylDPUMucmVwbGFjZShqLCIkMSIrdisiJDIiKTtyZXR1cm4gQytJfX1yZXR1cm4gZC5cdTAyNzVm''@;'; + put 'put ''YWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVwaXBlPVVzKHtuYW1lOiJ0aG91c2FuZFNlcGFyYXRvciIsdHlwZTpkLHB1cmU6ITB9KSxkfSkoKTtjb25zdCBfbXQ9WyJodCJdLENtdD1bInVwbG9hZFN0YXRlciJdLGttdD1bInF1ZXJ5RmlsdGVyIl0sU210PVsiaG90''@;'; + put 'put ''SW5zdGFuY2UiXSxNbXQ9WyJmaWxlVXBsb2FkSW5wdXQiXTtmdW5jdGlvbiBFbXQoZCxnKXtpZigxJmQpe2NvbnN0IGg9YmkoKTtydCgwLCJkaXYiLDU4KSgxLCJzcGFuIiw1OSkoMiwibGFiZWwiLDYwKSxZdCgzLCIgQnJvd3NlICIpLGx0KCkoKSxydCg0LCJpbnB1dCIsNjEsNjIpLEduKCJj''@;'; + put 'put ''aGFuZ2UiLGZ1bmN0aW9uKHkpe3JldHVybiBpdChoKSxhKEp0KCkuZ2V0RmlsZURlc2MoeSkpfSksbHQoKSgpfWlmKDImZCl7Y29uc3QgaD1KdCgpO3V0KDQpLFR0KCJ1cGxvYWRlciIsaC51cGxvYWRlcil9fWZ1bmN0aW9uIHhtdChkLGcpe2lmKDEmZCl7Y29uc3QgaD1iaSgpO3J0KDAsImRp''@;'; + put 'put ''diIsNjMpKDEsImJ1dHRvbiIsNjQpLEduKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gaXQoaCksYShKdCgpLmdldEZpbGUoKSl9KSxZdCgyLCIgVXBsb2FkICIpLGx0KCkoKX0yJmQmJih1dCgxKSxUdCgiZGlzYWJsZWQiLCEwKSl9ZnVuY3Rpb24gVG10KGQsZyl7aWYoMSZkKXtjb25zdCBo''@;'; + put 'put ''PWJpKCk7cnQoMCwiYnV0dG9uIiw2NSksR24oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBpdChoKSxhKEp0KCkuc2hvd1VwbG9hZE1vZGFsPSExKX0pLFl0KDEsIiBDbG9zZSAiKSxsdCgpfWlmKDImZCl7Y29uc3QgaD1KdCgpO1R0KCJkaXNhYmxlZCIsaC5leGNlbEZpbGVQYXJzaW5nfHxo''@;'; + put 'put ''LnVwbG9hZExvYWRpbmcpfX1mdW5jdGlvbiBJbXQoZCxnKXtpZigxJmQpe2NvbnN0IGg9YmkoKTtydCgwLCJidXR0b24iLDY2KSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIGl0KGgpLGEoSnQoKS5zaG93VXBsb2FkTW9kYWw9ITEpfSksWXQoMSwiIFNraXAgIiksbHQoKX19ZnVuY3Rp''@;'; + put 'put ''b24gRG10KGQsZyl7MSZkJiYocnQoMCwiZGl2Iiw2NyksQ3IoMSwiYXBwLXVwbG9hZC1zdGF0ZXIiLG51bGwsNjgpLGx0KCkpfWZ1bmN0aW9uIExtdChkLGcpe2lmKDEmZCl7Y29uc3QgaD1iaSgpO3J0KDAsImFwcC1lZGl0LXJlY29yZCIsNjkpLEduKCJvblJlY29yZENoYW5nZSIsZnVuY3Rp''@;'; + put 'put ''b24oKXtyZXR1cm4gaXQoaCksYShKdCgpLmNvbmZpcm1SZWNvcmRFZGl0KCkpfSkoIm9uUmVjb3JkSW5wdXRGb2N1c2VkIixmdW5jdGlvbih5KXtyZXR1cm4gaXQoaCksYShKdCgpLm9uUmVjb3JkSW5wdXRGb2N1cyh5KSl9KSgib25SZWNvcmRFZGl0Q2xvc2UiLGZ1bmN0aW9uKCl7cmV0dXJu''@;'; + put 'put ''IGl0KGgpLGEoSnQoKS5jbG9zZVJlY29yZEVkaXQoKSl9KSgib25OZXh0UmVjb3JkIixmdW5jdGlvbigpe3JldHVybiBpdChoKSxhKEp0KCkub25OZXh0UmVjb3JkKCkpfSkoIm9uUHJldmlvdXNSZWNvcmQiLGZ1bmN0aW9uKCl7cmV0dXJuIGl0KGgpLGEoSnQoKS5vblByZXZpb3VzUmVjb3Jk''@;'; + put 'put ''KCkpfSksbHQoKX1pZigyJmQpe2NvbnN0IGg9SnQoKTtUdCgiY3VycmVudFJlY29yZCIsaC5jdXJyZW50RWRpdFJlY29yZCkoInJlY29yZEFjdGlvbiIsaC5yZWNvcmRBY3Rpb24pKCJsaWJkcyIsaC5saWJkcykoInF1ZXJ5RmlsdGVyIixoLnF1ZXJ5RmlsdGVyKSgiZmlsdGVyIixoLmZpbHRl''@;'; + put 'put ''cikoInN1Ym1pdExvYWRpbmciLGguc3VibWl0TG9hZGluZykoImhlYWRlclBrcyIsaC5oZWFkZXJQa3MpKCJjZWxsVmFsaWRhdGlvbiIsaC5jZWxsVmFsaWRhdGlvbikoImN1cnJlbnRSZWNvcmRJbmRleCIsaC5jdXJyZW50RWRpdFJlY29yZEluZGV4KSgiY3VycmVudFJlY29yZExvYWRpbmdz''@;'; + put 'put ''IixoLmN1cnJlbnRFZGl0UmVjb3JkTG9hZGluZ3MpKCJjdXJyZW50UmVjb3JkRXJyb3JzIixoLmN1cnJlbnRFZGl0UmVjb3JkRXJyb3JzKSgiY3VycmVudFJlY29yZFZhbGlkYXRvciIsaC5jdXJyZW50RWRpdFJlY29yZFZhbGlkYXRvcil9fWZ1bmN0aW9uIE9tdChkLGcpezEmZCYmKHJ0KDAs''@;'; + put 'put ''ImRpdiIsNzApLENyKDEsInByb2dyZXNzIiksbHQoKSl9ZnVuY3Rpb24gUm10KGQsZyl7MSZkJiZDcigwLCJjbHItaWNvbiIsNzUpfWZ1bmN0aW9uIEJtdChkLGcpe2lmKDEmZCYmKEYwKDApLFl0KDEpLG5uKDIsInRob3VzYW5kU2VwYXJhdG9yIiksSDAoKSksMiZkKXtjb25zdCBoPUp0KDMp''@;'; + put 'put ''O3V0KDEpLEZoKCIgKCIsUG4oMiwyLGguZGF0YVNvdXJjZS5sZW5ndGgsIiwiKSwiICIsMT09PWguZGF0YVNvdXJjZS5sZW5ndGg/InJvdyI6InJvd3MiLCIpICIpfX1mdW5jdGlvbiBQbXQoZCxnKXsxJmQmJihGMCgwKSxZdCgxLCIgKDAgcm93cykgIiksSDAoKSl9ZnVuY3Rpb24gRm10KGQs''@;'; + put 'put ''Zyl7aWYoMSZkJiYoRjAoMCkscm4oMSxCbXQsMyw1LCJuZy1jb250YWluZXIiLDQ1KSxybigyLFBtdCwyLDAsIm5nLWNvbnRhaW5lciIsNDUpLEgwKCkpLDImZCl7Y29uc3QgaD1KdCgyKTt1dCgxKSxUdCgibmdJZiIsIWguemVyb0ZpbHRlclJvd3MpLHV0KDEpLFR0KCJuZ0lmIixoLnplcm9G''@;'; + put 'put ''aWx0ZXJSb3dzKX19ZnVuY3Rpb24gSG10KGQsZyl7aWYoMSZkKXtjb25zdCBoPWJpKCk7cnQoMCwiaDQiLDcxKSgxLCJjbHItaWNvbiIsNzIpLEduKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gaXQoaCksYShKdCgpLmRhdGFzZXRJbmZvPSEwKX0pLGx0KCkscm4oMixSbXQsMSwwLCJjbHIt''@;'; + put 'put ''aWNvbiIsNzMpLFl0KDMpLHJ0KDQsImEiLDc0KSxZdCg1KSxsdCgpLHJuKDYsRm10LDMsMiwibmctY29udGFpbmVyIiw0NSksbHQoKX1pZigyJmQpe2NvbnN0IGg9Zy5uZ1Zhcix2PUp0KCk7dXQoMiksVHQoIm5nSWYiLGgudGFibGVOYW1lLmluY2x1ZGVzKCItRkMiKSksdXQoMSksSmkoIiAi''@;'; + put 'put ''LGgubGliTmFtZSwiLiIpLHV0KDEpLFR0KCJyb3V0ZXJMaW5rIiwiL3ZpZXcvZGF0YS8iK3YubGliZHMpLHV0KDEpLGppKGgudGFibGVOYW1lLnJlcGxhY2UoIi1GQyIsIiIpKSx1dCgxKSxUdCgibmdJZiIsdi5kYXRhU291cmNlKX19ZnVuY3Rpb24gTm10KGQsZyl7aWYoMSZkKXtjb25zdCBo''@;'; + put 'put ''PWJpKCk7cnQoMCwiYnV0dG9uIiw4MiksR24oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBpdChoKSxhKEp0KDMpLm9uU2hvd1VwbG9hZE1vZGFsKCkpfSksQ3IoMSwiY2xyLWljb24iLDgzKSxydCgyLCJzcGFuIiksWXQoMywiVXBsb2FkIiksbHQoKSgpfX1mdW5jdGlvbiBWbXQoZCxnKXtp''@;'; + put 'put ''ZigxJmQpe2NvbnN0IGg9YmkoKTtGMCgwKSxydCgxLCJidXR0b24iLDc3KSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIGl0KGgpLGEoSnQoMikub3BlblFiKCkpfSksQ3IoMiwiY2xyLWljb24iLDc4KSxydCgzLCJzcGFuIiksWXQoNCwiRmlsdGVyIiksbHQoKSgpLHJ0KDUsImJ1dHRv''@;'; + put 'put ''biIsNzkpLEduKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gaXQoaCksYShKdCgyKS5lZGl0VGFibGUoKSl9KSxDcig2LCJjbHItaWNvbiIsODApLHJ0KDcsInNwYW4iKSxZdCg4LCJFZGl0IiksbHQoKSgpLHJuKDksTm10LDQsMCwiYnV0dG9uIiw4MSksSDAoKX1pZigyJmQpe2NvbnN0IGg9''@;'; + put 'put ''SnQoMik7dXQoOSksVHQoIm5nSWYiLCFoLmNvbHVtbkxldmVsU2VjdXJpdHlGbGFnKX19ZnVuY3Rpb24gam10KGQsZyl7aWYoMSZkKXtjb25zdCBoPWJpKCk7cnQoMCwiYnV0dG9uIiw4OCksR24oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBpdChoKSxhKEp0KDMpLmFkZFJvdygpKX0pLENy''@;'; + put 'put ''KDEsImNsci1pY29uIiw4OSksWXQoMiwiQWRkIFJvdyAiKSxsdCgpfTImZCYmVHQoImNsckxvYWRpbmciLEp0KDMpLmFkZGluZ05ld1Jvdyl9ZnVuY3Rpb24gWm10KGQsZyl7aWYoMSZkKXtjb25zdCBoPWJpKCk7RjAoMCkscnQoMSwiYnV0dG9uIiw4NCksR24oImNsaWNrIixmdW5jdGlvbigp''@;'; + put 'put ''e3JldHVybiBpdChoKSxhKEp0KDIpLmNhbmNlbEVkaXQoKSl9KSxDcigyLCJjbHItaWNvbiIsODUpLHJ0KDMsInNwYW4iKSxZdCg0LCJDYW5jZWwiKSxsdCgpKCkscm4oNSxqbXQsMywxLCJidXR0b24iLDg2KSxydCg2LCJidXR0b24iLDM4KSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJu''@;'; + put 'put ''IGl0KGgpLGEoSnQoMikuY2hlY2tTYXZlKCkpfSksQ3IoNywiY2xyLWljb24iLDg3KSxZdCg4LCJTdWJtaXQgIiksbHQoKSxIMCgpfWlmKDImZCl7Y29uc3QgaD1KdCgyKTt1dCg1KSxUdCgibmdJZiIsIWgucmVzdHJpY3Rpb25zLnJlc3RyaWN0QWRkUm93KX19ZnVuY3Rpb24gem10KGQsZyl7''@;'; + put 'put ''aWYoMSZkKXtjb25zdCBoPWJpKCk7cnQoMCwiYnV0dG9uIiw5MyksR24oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBpdChoKSxhKEp0KDMpLm1hbnVhbEZpbGVFZGl0TW9kYWw9ITApfSksQ3IoMSwiY2xyLWljb24iLDgwKSxydCgyLCJzcGFuIiksWXQoMywiRWRpdCIpLGx0KCkoKX19ZnVu''@;'; + put 'put ''Y3Rpb24gR210KGQsZyl7aWYoMSZkKXtjb25zdCBoPWJpKCk7RjAoMCkscnQoMSwiYnV0dG9uIiw5MCksR24oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBpdChoKSxhKEp0KDIpLmRpc2NhcmRTb3VyY2VGaWxlPSEwKX0pLENyKDIsImNsci1pY29uIiw4NSkscnQoMywic3BhbiIpLFl0KDQs''@;'; + put 'put ''IkRpc2NhcmQgZmlsZSIpLGx0KCkoKSxybig1LHptdCw0LDAsImJ1dHRvbiIsOTEpLHJ0KDYsImJ1dHRvbiIsOTIpLEduKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gaXQoaCksYShKdCgyKS5nZXRGaWxlKCkpfSksQ3IoNywiY2xyLWljb24iLDg3KSxZdCg4LCIgU3VibWl0ICIpLGx0KCks''@;'; + put 'put ''SDAoKX1pZigyJmQpe2NvbnN0IGg9SnQoMik7dXQoNSksVHQoIm5nSWYiLGguaG90VGFibGUucmVhZE9ubHkpLHV0KDEpLFR0KCJjbHJMb2FkaW5nIixoLnVwbG9hZExvYWRpbmcpfX1mdW5jdGlvbiBXbXQoZCxnKXtpZigxJmQmJihydCgwLCJkaXYiLDc2KSxybigxLFZtdCwxMCwxLCJuZy1j''@;'; + put 'put ''b250YWluZXIiLDQ1KSxybigyLFptdCw5LDEsIm5nLWNvbnRhaW5lciIsNDUpLHJuKDMsR210LDksMiwibmctY29udGFpbmVyIiw0NSksbHQoKSksMiZkKXtjb25zdCBoPUp0KCk7dXQoMSksVHQoIm5nSWYiLGguaG90VGFibGUucmVhZE9ubHkmJiFoLnVwbG9hZFByZXZpZXcpLHV0KDEpLFR0''@;'; + put 'put ''KCJuZ0lmIiwhaC5ob3RUYWJsZS5yZWFkT25seSYmIWgudXBsb2FkUHJldmlldyksdXQoMSksVHQoIm5nSWYiLGgudXBsb2FkUHJldmlldyl9fWZ1bmN0aW9uIFltdChkLGcpe2lmKDEmZCYmKHJ0KDAsImRpdiIsOTQpKDEsInNwYW4iKSxZdCgyLCJGSUxURVIgOiAiKSxydCgzLCJiIiksWXQo''@;'; + put 'put ''NCksbHQoKSgpKCkpLDImZCl7Y29uc3QgaD1KdCgpO3V0KDQpLGppKGgucXVlcnlUZXh0KX19ZnVuY3Rpb24gVW10KGQsZyl7MSZkJiYoRjAoMCkscnQoMSwic3BhbiIsOTcpLFl0KDIsIiBMb2FkaW5nLi4uICIpLGx0KCkscnQoMywiZGl2IikoNCwiaDMiKSxZdCg1LCJMb2FkaW5nIHRhYmxl''@;'; + put 'put ''IiksbHQoKSgpLEgwKCkpfWZ1bmN0aW9uIFFtdChkLGcpezEmZCYmKEYwKDApLHJ0KDEsInNwYW4iKSxDcigyLCJjbHItaWNvbiIsOTgpLGx0KCkscnQoMywiZGl2IikoNCwiaDMiKSxZdCg1LCJMb2FkaW5nIHRhYmxlIGVycm9yIiksbHQoKSgpLEgwKCkpfWZ1bmN0aW9uIEptdChkLGcpe2lm''@;'; + put 'put ''KDEmZCYmKHJ0KDAsImRpdiIsOTUpKDEsImRpdiIsOTYpLHJuKDIsVW10LDYsMCwibmctY29udGFpbmVyIiw0NSkscm4oMyxRbXQsNiwwLCJuZy1jb250YWluZXIiLDQ1KSxsdCgpKCkpLDImZCl7Y29uc3QgaD1KdCgpO3V0KDIpLFR0KCJuZ0lmIiwhaC5nZXRkYXRhRXJyb3IpLHV0KDEpLFR0''@;'; + put 'put ''KCJuZ0lmIixoLmdldGRhdGFFcnJvcil9fWZ1bmN0aW9uIFhtdChkLGcpe2lmKDEmZCl7Y29uc3QgaD1iaSgpO3J0KDAsImJ1dHRvbiIsOTkpLEduKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gaXQoaCksYShKdCgpLmFkZFJlY29yZEJ1dHRvbkNsaWNrKCkpfSksQ3IoMSwiY2xyLWljb24i''@;'; + put 'put ''LDg5KSxZdCgyLCIgQWRkIFJlY29yZCAiKSxsdCgpfX1mdW5jdGlvbiBLbXQoZCxnKXtpZigxJmQpe2NvbnN0IGg9YmkoKTtydCgwLCJkaXYiLDExMCkoMSwiZGl2IiwxMTEpKDIsImxhYmVsIiwxMTIpLFl0KDMsIk1lc3NhZ2UiKSxsdCgpLHJ0KDQsInRleHRhcmVhIiwxMTMpLEduKCJuZ01v''@;'; + put 'put ''ZGVsQ2hhbmdlIixmdW5jdGlvbih5KXtyZXR1cm4gaXQoaCksYShKdCgyKS5tZXNzYWdlPXkpfSksbHQoKSgpKCl9aWYoMiZkKXtjb25zdCBoPUp0KDIpO3V0KDQpLFR0KCJuZ01vZGVsIixoLm1lc3NhZ2UpKCJkaXNhYmxlZCIsIWgudmFsaWRhdGlvbkRvbmUpKCJ2YWx1ZSIsaC52YWxpZGF0''@;'; + put 'put ''aW9uRG9uZT8iIjoiUGxlYXNlIHdhaXQgd2hpbGUgd2UgdmFsaWRhdGUgIitoLmNvbHMubGVuZ3RoKmgubW9kaWZlZFJvd3NJbmRleGVzLmxlbmd0aCsiIGNlbGxzLiIpfX1mdW5jdGlvbiAkbXQoZCxnKXtpZigxJmQpe2NvbnN0IGg9YmkoKTtydCgwLCJkaXYiLDEwMCkoMSwiZGl2IiwxMDEp''@;'; + put 'put ''KDIsImRpdiIsMTAyKSgzLCJkaXYiLDEwMykoNCwiYnV0dG9uIiwxMDQpLENyKDUsImNsci1pY29uIiwxMDUpLGx0KCkscnQoNiwiaDMiLDIpLFl0KDcpLGx0KCkoKSxydCg4LCJkaXYiLDMpLHJuKDksS210LDUsMywiZGl2IiwxMDYpLGx0KCkscnQoMTAsImRpdiIsMTA3KSgxMSwiYnV0dG9u''@;'; + put 'put ''IiwxMDgpLEduKCJjbGljayIsZnVuY3Rpb24oKXtpdChoKTtjb25zdCB5PUp0KCk7cmV0dXJuIGEoeS5zYXZlVGFibGUoeS5ob3RUYWJsZS5kYXRhKSl9KSxZdCgxMiwiIFN1Ym1pdCAiKSxsdCgpLHJ0KDEzLCJidXR0b24iLDEwOSksR24oImNsaWNrIixmdW5jdGlvbigpe2l0KGgpO2NvbnN0''@;'; + put 'put ''IHk9SnQoKTtyZXR1cm4geS5jYW5jZWxTdWJtaXQoKSx5LnN1Ym1pdD0hMSxhKHkudmFsaWRhdGlvbkRvbmU9MCl9KSxZdCgxNCwiIENhbmNlbCAiKSxsdCgpKCkoKSgpKCl9aWYoMiZkKXtjb25zdCBoPUp0KCk7dXQoNyksa2YoIiBTdWJtaXQgZm9yIEFwcHJvdmFsICgiLGgucm93c0NoYW5n''@;'; + put 'put ''ZWQucm93c0FkZGVkLCIgYWRkZWQsICIsaC5yb3dzQ2hhbmdlZC5yb3dzVXBkYXRlZCwiIHVwZGF0ZWQsICIsaC5yb3dzQ2hhbmdlZC5yb3dzRGVsZXRlZCwiIGRlbGV0ZWQpICIpLHV0KDIpLFR0KCJuZ0lmIixoLnRhYmxlVHJ1ZSksdXQoMiksVHQoImRpc2FibGVkIiwhaC52YWxpZGF0aW9u''@;'; + put 'put ''RG9uZSl9fWZ1bmN0aW9uIHFtdChkLGcpe2lmKDEmZCYmKHJ0KDAsInNwYW4iLDExNCksWXQoMSksbm4oMiwicGtTcGFjZVNlcGFyYXRlIiksbHQoKSksMiZkKXtjb25zdCBoPWcuJGltcGxpY2l0LHY9SnQoKTt1dCgxKSxGaCgiIE9uIHJvdyAiLGgrMSwiOiAiLHp0KDIsMix2LnBrRmllbGRz''@;'; + put 'put ''W2hdLnJlcGxhY2UoInwiLCIiKSksIiAiKX19ZnVuY3Rpb24gZTd0KGQsZyl7aWYoMSZkJiYocnQoMCwicCIpLFl0KDEpLGx0KCkpLDImZCl7Y29uc3QgaD1nLiRpbXBsaWNpdDt1dCgxKSxrZigiICIsaC5jb2wsIigiLGgubGVuLCIpLCAiLGgudmFsLCIgIil9fWZ1bmN0aW9uIHQ3dChkLGcp''@;'; + put 'put ''e2lmKDEmZCl7Y29uc3QgaD1iaSgpO3J0KDAsImRpdiIsMTE1KSgxLCJkaXYiLDExNikoMiwiZGl2IiwxMDIpKDMsImRpdiIsMTAzKSg0LCJidXR0b24iLDEwNCksQ3IoNSwiY2xyLWljb24iLDEwNSksbHQoKSxydCg2LCJoMyIsMiksWXQoNywiRXJyb3IiKSxsdCgpKCkscnQoOCwiZGl2Iiwz''@;'; + put 'put ''KSg5LCJwIiksWXQoMTAsIllvdSBjYW5ub3Qgc3VibWl0IGVtcHR5IGNsYXVzZXMiKSxsdCgpKCkscnQoMTEsImRpdiIsMTcpKDEyLCJidXR0b24iLDM4KSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIGl0KGgpLGEoSnQoKS5udWxsVmFyaWFibGVzPSExKX0pLFl0KDEzLCIgT2sgIiks''@;'; + put 'put ''bHQoKSgpKCkoKSgpfX1mdW5jdGlvbiBuN3QoZCxnKXsxJmQmJkNyKDAsImFwcC1xdWVyeSIsbnVsbCwxMTcpfWZ1bmN0aW9uIHI3dChkLGcpezEmZCYmKHJ0KDAsInAiLDExOCksWXQoMSwiIFNvcnJ5IHRoYXQgZGlkbid0IHdvcmssIHRyeSBhZ2Fpbi4gIiksbHQoKSl9Y29uc3QgaTd0PWZ1''@;'; + put 'put ''bmN0aW9uKCl7cmV0dXJuWyIvaG9tZSJdfSxvN3Q9ZnVuY3Rpb24oZCxnKXtyZXR1cm57bGliTmFtZTpkLHRhYmxlTmFtZTpnfX0seExlPWZ1bmN0aW9uKCl7cmV0dXJuWyIiLCIgIl19LGE3dD1mdW5jdGlvbihkKXtyZXR1cm57aGVhZGVyQmFyRmlsdGVyOmR9fSxUTGU9TCg0MTkyNSksSUxl''@;'; + put 'put ''PUwoOTMxNzIpLkJ1ZmZlcjtsZXQgam5lPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2LHksQyxJLGosdWUsX2UsQmUsTmUpe3RoaXMuYXBwU2VydmljZT1oLHRoaXMuZXZlbnRTZXJ2aWNlPXYsdGhpcy5sb2dnZXJTZXJ2aWNlPXksdGhpcy5zYXNTdG9yZVNlcnZpY2U9Qyx0aGlzLmhl''@;'; + put 'put ''bHBlclNlcnZpY2U9SSx0aGlzLnJvdXRlcj1qLHRoaXMucm91dGU9dWUsdGhpcy5zYXNTZXJ2aWNlPV9lLHRoaXMuY2RmPUJlLHRoaXMuaG90UmVnaXN0ZXJlcj1OZSx0aGlzLnVwbG9hZFN0YXRlckNvbXBMaXN0PW5ldyB6cix0aGlzLnF1ZXJ5RmlsdGVyQ29tcExpc3Q9bmV3IHpyLHRoaXMu''@;'; + put 'put ''aG90SW5zdGFuY2VDb21wTGlzdD1uZXcgenIsdGhpcy5maWxlVXBsb2FkSW5wdXRDb21wTGlzdD1uZXcgenIsdGhpcy5tZXNzYWdlPSIiLHRoaXMuJGRhdGFGb3JtYXRzPW51bGwsdGhpcy5jb2xzPVtdLHRoaXMuZGVtb0xpbWl0cz10aGlzLmFwcFNlcnZpY2UuZGVtb0xpbWl0cyx0aGlzLnJl''@;'; + put 'put ''c3RyaWN0aW9ucz17fSx0aGlzLmRhdGFzZXRJbmZvPSExLHRoaXMuZHNtZXRhPVtdLHRoaXMuaG90VGFibGU9e2RhdGE6W10sY29sSGVhZGVyczpbXSxoaWRkZW46ITAsY29sdW1uczpbXSxoZWlnaHQ6NTAwLG1pblNwYXJlUm93czoxLGxpY2Vuc2VLZXk6dm9pZCAwLHJlYWRPbmx5OiEwLHNl''@;'; + put 'put ''dHRpbmdzOntjb250ZXh0TWVudTp7aXRlbXM6e2VkaXRfcm93OntuYW1lOiJFZGl0IHJvdyIsaGlkZGVuKCl7Y29uc3QgZHQ9dGhpcy5nZXRTZWxlY3RlZFJhbmdlKCk7aWYoIWR0KXJldHVybiExO2NvbnN0IE90PWR0WzBdO3JldHVybiBPdC5mcm9tLnJvdyE9PU90LnRvLnJvd30sY2FsbGJh''@;'; + put 'put ''Y2s6KEtlLGR0LE90KT0+e2xldCAkdD1kdFswXTskdC5zdGFydC5yb3c9PT0kdC5lbmQucm93JiZ0aGlzLmVkaXRSZWNvcmQobnVsbCwkdC5zdGFydC5yb3cpfX0scm93X2Fib3ZlOntuYW1lOiJSb3cgYWJvdmUifSxyb3dfYmVsb3c6e25hbWU6IlJvdyBiZWxvdyJ9LHJlbW92ZV9yb3c6e25h''@;'; + put 'put ''bWU6Iklnbm9yZSByb3cifSxzcDE6e25hbWU6Ii0tLS0tLS0tLSJ9LHVuZG86e25hbWU6IlVuZG8ifSxyZWRvOntuYW1lOiJSZWRvIn19fX19LHRoaXMuaG90Q2VsbHNQcm9wUm93PW51bGwsdGhpcy5maWx0ZXI9ITEsdGhpcy5zdWJtaXRMb2FkaW5nPSExLHRoaXMudXBsb2FkTG9hZGluZz0h''@;'; + put 'put ''MSx0aGlzLnJvd3NDaGFuZ2VkPXtyb3dzVXBkYXRlZDowLHJvd3NEZWxldGVkOjAscm93c0FkZGVkOjB9LHRoaXMubW9kaWZlZFJvd3NJbmRleGVzPVtdLHRoaXMucXVlcnlFcnI9ITEsdGhpcy5zdWNjZXNzRW5hYmxlPSExLHRoaXMubnVsbFZhcmlhYmxlcz0hMSx0aGlzLnBrRmllbGRzPVtd''@;'; + put 'put ''LHRoaXMuZmlsZW5hbWU9IiIsdGhpcy5iYWRFZGl0PSExLHRoaXMuc2F2ZUxvYWRpbmc9ITEsdGhpcy5hcHByb3ZlcnM9W10sdGhpcy5lcnJWYWxpZGF0aW9uPSExLHRoaXMucGtOdWxsPSExLHRoaXMubm9Qa051bGw9ITEsdGhpcy50YWJsZURhdGE9W10sdGhpcy5xdWVyeVRleHQ9IiIsdGhp''@;'; + put 'put ''cy5xdWVyeVRleHRTYXZlZD0iIix0aGlzLnNob3dBcHByb3ZlcnM9ITEsdGhpcy5wa0R1cHM9ITEsdGhpcy52YWxpZGF0aW9uRG9uZT0wLHRoaXMuZHVwbGljYXRlUGtJbmRleGVzPVtdLHRoaXMuY29sdW1uSGVhZGVyPVtdLHRoaXMuc3BlY0luZm89W10sdGhpcy50b29Mb25nPSExLHRoaXMu''@;'; + put 'put ''ZXhjZWVkQ2VsbHM9W10sdGhpcy51cGxvYWRlcj1uZXcgQzV0KHt1cmw6IiJ9KSx0aGlzLnVwbG9hZFVybD0iIix0aGlzLmV4Y2VsRmlsZVJlYWR5PSExLHRoaXMudXBsb2FkUHJldmlldz0hMSx0aGlzLmV4Y2VsRmlsZVBhcnNpbmc9ITEsdGhpcy5leGNlbFVwbG9hZFN0YXRlPW51bGwsdGhp''@;'; + put 'put ''cy5kYXRhPVtdLHRoaXMuaGVhZGVyQXJyYXk9W10sdGhpcy5ob3REYXRhU2NoZW1hPXt9LHRoaXMuaGVhZGVyU2hvdz1bXSx0aGlzLmhlYWRlclZpc2libGU9ITEsdGhpcy5oYXNCYXNlRHJvcFpvbmVPdmVyPSExLHRoaXMuaGFzQW5vdGhlckRyb3Bab25lT3Zlcj0hMSx0aGlzLmhlYWRlclBr''@;'; + put 'put ''cz1bXSx0aGlzLmNvbHVtbkxldmVsU2VjdXJpdHlGbGFnPSExLHRoaXMuZGF0ZVRpbWVIZWFkZXJzPVtdLHRoaXMudGltZUhlYWRlcnM9W10sdGhpcy5kYXRlSGVhZGVycz1bXSx0aGlzLnhsUnVsZXM9W10sdGhpcy5lbmNvZGluZz0iVVRGLTgiLHRoaXMuaGVhZGVyQ29sdW1ucz1bXSx0aGlz''@;'; + put 'put ''LmNlbGxWYWxpZGF0aW9uPVtdLHRoaXMuZmlsZVBhc3N3b3JkU3ViamVjdD1uZXcgJGUsdGhpcy5maWxlVW5sb2NrRXJyb3I9ITEsdGhpcy5maWxlUGFzc3dvcmRNb2RhbD0hMSx0aGlzLnNob3dVcGxvYWRNb2RhbD0hMSx0aGlzLmRpc2NhcmRTb3VyY2VGaWxlPSExLHRoaXMubWFudWFsRmls''@;'; + put 'put ''ZUVkaXRNb2RhbD0hMSx0aGlzLnJlY29yZEFjdGlvbj1udWxsLHRoaXMuY3VycmVudEVkaXRSZWNvcmRMb2FkaW5ncz1bXSx0aGlzLmN1cnJlbnRFZGl0UmVjb3JkRXJyb3JzPVtdLHRoaXMuY3VycmVudEVkaXRSZWNvcmRJbmRleD0tMSx0aGlzLmdlbmVyYXRlRWRpdFJlY29yZFVybExvYWRp''@;'; + put 'put ''bmc9ITEsdGhpcy5nZW5lcmF0ZWRSZWNvcmRVcmw9bnVsbCx0aGlzLmFkZFJlY29yZFVybD1udWxsLHRoaXMucmVjb3JkTmV3T3JQa01vZGlmaWVkPSExLHRoaXMuYWRkUmVjb3JkTG9hZGluZz0hMSx0aGlzLnNpbmdsZVJvd1NlbGVjdGVkPSExLHRoaXMuYWRkaW5nTmV3Um93PSExLHRoaXMu''@;'; + put 'put ''Z2V0ZGF0YUVycm9yPSExLHRoaXMuemVyb0ZpbHRlclJvd3M9ITEsdGhpcy50YWJsZUZpbGVEcmFnT3Zlcj0hMSx0aGlzLmNlbGxWYWxpZGF0aW9uU291cmNlPVtdLHRoaXMudmFsaWRhdGlvblRhYmxlTGltaXQ9MjAsdGhpcy5leHRlbmRlZENlbGxWYWxpZGF0aW9uRmllbGRzPXtESVNQTEFZ''@;'; + put 'put ''X0lOREVYOjAsRVhUUkFfQ09MX05BTUU6MSxESVNQTEFZX1ZBTFVFOjIsRElTUExBWV9UWVBFOjMsUkFXX1ZBTFVFX05VTTo0LFJBV19WQUxVRV9DSEFSOjUsRk9SQ0VfRkxBRzo2fSx0aGlzLmNlbGxWYWxpZGF0aW9uRmllbGRzPXtESVNQTEFZX0lOREVYOjAsRElTUExBWV9WQUxVRToxLFJB''@;'; + put 'put ''V19WQUxVRToyfSx0aGlzLmRpc2FibGVkQmFzaWNEeW5hbWljQ2VsbFZhbGlkYXRpb25NYXA9W10sdGhpcy50aW1lc0NsaWNrZWQ9MCx0aGlzLmhvdFRhYmxlLmhlaWdodD1kb2N1bWVudC5ib2R5LmNsaWVudEhlaWdodC0yMjQsdGhpcy5ob3RSZWdpc3RlcmVyPW5ldyBrTyx0aGlzLnBhcnNl''@;'; + put 'put ''UmVzdHJpY3Rpb25zKCksdGhpcy5zZXRSZXN0cmljdGlvbnMoKX1wYXJzZVJlc3RyaWN0aW9ucygpe3RoaXMuYXBwU2VydmljZS5yZXN0cmljdEVkaXRSZWNvcmQmJih0aGlzLnJlc3RyaWN0aW9ucy5yZW1vdmVBZGRSZWNvcmRCdXR0b249ITAsdGhpcy5yZXN0cmljdGlvbnMucmVtb3ZlRWRp''@;'; + put 'put ''dFJlY29yZEJ1dHRvbj0hMCksdGhpcy5kZW1vTGltaXRzLmRpc2FibGVkRWRpdFJlY29yZCYmKHRoaXMucmVzdHJpY3Rpb25zLnJlc3RyaWN0QWRkUmVjb3JkPSEwKX1zZXRSZXN0cmljdGlvbnMoaCl7dmFyIHYseSxDLEksaix1ZSxfZSxCZTtoJiYodGhpcy5yZXN0cmljdGlvbnM9T2JqZWN0''@;'; + put 'put ''LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHRoaXMucmVzdHJpY3Rpb25zKSxoKSksdGhpcy5yZXN0cmljdGlvbnMucmVtb3ZlRWRpdFJlY29yZEJ1dHRvbiYmZGVsZXRlKG51bGw9PT0oeT1udWxsPT09KHY9dGhpcy5ob3RUYWJsZSl8fHZvaWQgMD09PXY/dm9pZCAwOnYuc2V0dGluZ3MpfHx2''@;'; + put 'put ''b2lkIDA9PT15P3ZvaWQgMDp5LmNvbnRleHRNZW51KS5pdGVtcy5lZGl0X3Jvdyx0aGlzLnJlc3RyaWN0aW9ucy5yZXN0cmljdEFkZFJvdyYmKGRlbGV0ZShudWxsPT09KEk9bnVsbD09PShDPXRoaXMuaG90VGFibGUpfHx2b2lkIDA9PT1DP3ZvaWQgMDpDLnNldHRpbmdzKXx8dm9pZCAwPT09''@;'; + put 'put ''ST92b2lkIDA6SS5jb250ZXh0TWVudSkuaXRlbXMucm93X2Fib3ZlLGRlbGV0ZShudWxsPT09KHVlPW51bGw9PT0oaj10aGlzLmhvdFRhYmxlKXx8dm9pZCAwPT09aj92b2lkIDA6ai5zZXR0aW5ncyl8fHZvaWQgMD09PXVlP3ZvaWQgMDp1ZS5jb250ZXh0TWVudSkuaXRlbXMucm93X2JlbG93''@;'; + put 'put ''LGRlbGV0ZShudWxsPT09KEJlPW51bGw9PT0oX2U9dGhpcy5ob3RUYWJsZSl8fHZvaWQgMD09PV9lP3ZvaWQgMDpfZS5zZXR0aW5ncyl8fHZvaWQgMD09PUJlP3ZvaWQgMDpCZS5jb250ZXh0TWVudSkuaXRlbXMucmVtb3ZlX3Jvdyl9Y2hlY2tSb3dMaW1pdCgpe3ZhciBoO3RoaXMuZGVtb0xp''@;'; + put 'put ''bWl0cy5yb3dzX2FsbG93ZWQmJih0aGlzLnJlc3RyaWN0aW9ucy5yZXN0cmljdEFkZFJvdz0obnVsbD09PShoPXRoaXMuZGF0YVNvdXJjZSl8fHZvaWQgMD09PWg/dm9pZCAwOmgubGVuZ3RoKT49dGhpcy5kZW1vTGltaXRzLnJvd3NfYWxsb3dlZCl9cmVzZXRGaWx0ZXIoKXt0aGlzLnF1ZXJ5''@;'; + put 'put ''RmlsdGVyQ29tcExpc3QuZmlyc3QmJnRoaXMucXVlcnlGaWx0ZXJDb21wTGlzdC5maXJzdC5yZXNldEZpbHRlcigpfW9uU2hvd1VwbG9hZE1vZGFsKCl7dGhpcy5kZW1vTGltaXRzLmRpc2FibGVkRmlsZVVwbG9hZD90aGlzLmV2ZW50U2VydmljZS5zaG93RGVtb0xpbWl0TW9kYWwoKTp0aGlz''@;'; + put 'put ''LmNvbHVtbkxldmVsU2VjdXJpdHlGbGFnP3RoaXMuZXZlbnRTZXJ2aWNlLnNob3dJbmZvTW9kYWwoIkluZm9ybWF0aW9uIiwiVXBsb2FkIGZlYXR1cmUgaXMgZGlzYWJsZWQgd2hpbGUgQ29sdW1uIExldmVsIFNlY3VyaXR5IHJ1bGVzIGFyZSBhY3RpdmUiKTp0aGlzLnVwbG9hZFByZXZpZXd8''@;'; + put 'put ''fCh0aGlzLnNob3dVcGxvYWRNb2RhbD0hMCl9ZmlsZU92ZXJCYXNlKGgpe3RoaXMuaGFzQmFzZURyb3Bab25lT3Zlcj1ofXVwZGF0ZV9zaGVldF9yYW5nZShoKXt2YXIgdj17czp7cjoxLzAsYzoxLzB9LGU6e3I6MCxjOjB9fTtPYmplY3Qua2V5cyhoKS5maWx0ZXIoZnVuY3Rpb24oeSl7cmV0''@;'; + put 'put ''dXJuIiEiIT15LmNoYXJBdCgwKX0pLm1hcChDTS51dGlscy5kZWNvZGVfY2VsbCkuZm9yRWFjaChmdW5jdGlvbih5KXt2LnMuYz1NYXRoLm1pbih2LnMuYyx5LmMpLHYucy5yPU1hdGgubWluKHYucy5yLHkuciksdi5lLmM9TWF0aC5tYXgodi5lLmMseS5jKSx2LmUucj1NYXRoLm1heCh2LmUu''@;'; + put 'put ''cix5LnIpfSksaFsiIXJlZiJdPUNNLnV0aWxzLmVuY29kZV9yYW5nZSh2KX1nZXRSYW5nZUFuZFNoZWV0KGgpe2xldCB2PTAseT0wLEM9LTEsST0tMSxqPSIiLHVlPSExLF9lPVtdLE5lPVsiX19fX19ERUxFVEVfX1RISVNfX1JFQ09SRF9fX19fIiwuLi50aGlzLmhlYWRlckFycmF5XS5tYXAo''@;'; + put 'put ''T3Q9Pk90LnRvTG93ZXJDYXNlKCkpLEtlPU5lLnJlZHVjZSgoT3QsJHQpPT4oT3RbJHRdPS0xLE90KSx7fSk7cmV0dXJuIGguU2hlZXROYW1lcy5mb3JFYWNoKE90PT57aWYodWUpcmV0dXJuO19lPVtdLGo9T3Q7Y29uc3QgJHQ9aC5TaGVldHNbal07aWYodGhpcy5kYXRhPUNNLnV0aWxzLnNo''@;'; + put 'put ''ZWV0X3RvX2pzb24oJHQse2hlYWRlcjoxLGJsYW5rcm93czohMSxkZWZ2YWw6IiJ9KSx0aGlzLmRhdGEubGVuZ3RoPD0xKXJldHVybjtsZXQgZm49W107dGhpcy5oZWFkZXJBcnJheS5mb3JFYWNoKCgpPT5mbi5wdXNoKCIiKSksdGhpcy5kYXRhLnB1c2goZm4pO2xldCBMbj0hMTtpZih0aGlz''@;'; + put 'put ''LmRhdGEuZm9yRWFjaCgoaXIsbXIpPT57aWYoIXVlKWlmKExuKXtsZXQgU3I9ITAsd3I9ITE7TmUuZm9yRWFjaChRcj0+e2NvbnN0IHlpPUtlW1FyXTsiIiE9PWlyW3lpXSYmdm9pZCAwIT09aXJbeWldP1NyPSExOi0xIT09dGhpcy5oZWFkZXJQa3MuaW5kZXhPZihRci50b1VwcGVyQ2FzZSgp''@;'; + put 'put ''KSYmKHdyPSEwKX0pLFNyfHx3cj8oST1tcix1ZT0hMCk6LTE9PT1DJiYoQz1tcil9ZWxzZXtjb25zdCBTcj1pci5tYXAoUXI9PlFyLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKSk7aWYoIVNyLmluY2x1ZGVzKCJfX19fX2RlbGV0ZV9fdGhpc19fcmVjb3JkX19fX18iKSl7Y29uc3QgUXI9TmUu''@;'; + put 'put ''aW5kZXhPZigiX19fX19kZWxldGVfX3RoaXNfX3JlY29yZF9fX19fIik7UXI+LTEmJk5lLnNwbGljZShRciwxKX1Mbj0hMCxOZS5mb3JFYWNoKFFyPT57LTE9PT1Tci5pbmRleE9mKFFyKSYmKExuPSExKX0pO2xldCB3cj1bXTt3cj10aGlzLmZpbmRWYWxpZEhlYWRlcnMoU3IsTmUsbXIsaiks''@;'; + put 'put ''ITE9PT13clswXT8oTG49ITEsd3JbMV0ubGVuZ3RoPjAmJndyWzFdLmZvckVhY2goUXI9PntfZS5wdXNoKFFyKX0pKTpLZT13clsxXX19KSx1ZSYmKHRoaXMudXBkYXRlX3NoZWV0X3JhbmdlKCR0KSwkdFsiIXJlZiJdKSl7Y29uc3QgbXI9Q00udXRpbHMuZGVjb2RlX3JhbmdlKCR0WyIhcmVm''@;'; + put 'put ''Il18fCIiKTt2PW1yLnMucix5PW1yLnMuY319KSwtMT09PUMmJih1ZT0hMSkse2ZvdW5kRGF0YTp1ZSxzaGVldE5hbWU6aixzdGFydFJvdzpDLGVuZFJvdzpJLGNzdkFycmF5SGVhZGVyc01hcDpLZSxtaXNzaW5nSGVhZGVyczpfZSxyYW5nZVN0YXJ0Um93OnYscmFuZ2VTdGFydENvbDp5fX1w''@;'; + put 'put ''cm9tcHRFeGNlbFBhc3N3b3JkKCl7cmV0dXJuIG5ldyBQcm9taXNlKChoLHYpPT57dGhpcy5maWxlUGFzc3dvcmRNb2RhbD0hMCxzZXRUaW1lb3V0KCgpPT57Y29uc3QgeT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjZmlsZVBhc3N3b3JkSW5wdXQiKTt5JiYoeS5mb2N1cygpLHkudmFsdWU9''@;'; + put 'put ''IiIpfSwxMDApLHRoaXMuZmlsZVBhc3N3b3JkU3ViamVjdC5zdWJzY3JpYmUoeT0+e3RoaXMuZmlsZVVubG9ja0Vycm9yPSExLGgoeXx8dm9pZCAwKX0pfSl9Z2V0RmlsZURlc2MoaCx2PSExKXtsZXQgeTt0aGlzLmV4Y2VsVXBsb2FkU3RhdGU9IkxvYWRpbmciLHRoaXMuZXhjZWxGaWxlUGFy''@;'; + put 'put ''c2luZz0hMCx5PXY/aFswXTpoLnRhcmdldC5maWxlc1swXSx0aGlzLmV4Y2VsRmlsZVJlYWR5PSExLHRoaXMuZmlsZW5hbWU9IiI7bGV0IEM9eS5uYW1lO3RoaXMuZmlsZW5hbWU9Qyx0aGlzLmFwcGVuZFVwbG9hZFN0YXRlKGBMb2FkaW5nICR7Q30gaW50byB0aGUgYnJvd3NlcmApO2xldCBq''@;'; + put 'put ''PUMuc2xpY2UoQy5sYXN0SW5kZXhPZigiLiIpKzEsQy5sYXN0SW5kZXhPZigiLiIpKzQpO2lmKCJ4bHMiPT09ai50b0xvd2VyQ2FzZSgpKXtsZXQgdWU9bmV3IEZpbGVSZWFkZXI7dWUub25sb2FkPUJlPT5ubyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7Y29uc3QgTmU9dGhpcy50''@;'; + put 'put ''b0JzdHIoQmUudGFyZ2V0LnJlc3VsdCk7bGV0IEtlLGR0PSExO2NvbnN0IE90PXt0eXBlOiJiaW5hcnkiLGNlbGxEYXRlczohMSxjZWxsRm9ybXVsYTohMCxjZWxsU3R5bGVzOiEwLGNlbGxORjohMSxjZWxsVGV4dDohMX07dHJ5e0tlPUNNLnJlYWQoTmUsT2JqZWN0LmFzc2lnbih7fSxPdCkp''@;'; + put 'put ''fWNhdGNoKFFyKXtpZihRci5tZXNzYWdlLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoInBhc3N3b3JkIikpZm9yKGR0PSEwO2R0Oyl7Y29uc3QgeWk9eWllbGQgdGhpcy5wcm9tcHRFeGNlbFBhc3N3b3JkKCk7aWYoeWkpdHJ5e0tlPUNNLnJlYWQoTmUsT2JqZWN0LmFzc2lnbihPYmplY3QuYXNz''@;'; + put 'put ''aWduKHt9LE90KSx7cGFzc3dvcmQ6eWl9KSksZHQ9ITEsdGhpcy5maWxlVW5sb2NrRXJyb3I9ITF9Y2F0Y2goS2kpe3RoaXMuZmlsZVVubG9ja0Vycm9yPSEwLEtpLm1lc3NhZ2UudG9Mb3dlckNhc2UoKS5pbmNsdWRlcygicGFzc3dvcmQiKXx8KGR0PSExKX1lbHNlIGR0PSExfWVsc2UgdGhp''@;'; + put 'put ''cy5ldmVudFNlcnZpY2Uuc2hvd0Fib3J0TW9kYWwobnVsbCxRcix2b2lkIDAsIkVycm9yIHJlYWRpbmcgZmlsZSIpfWlmKCFLZSlyZXR1cm4gdGhpcy5leGNlbEZpbGVQYXJzaW5nPSExLHZvaWQodGhpcy5zaG93VXBsb2FkTW9kYWw9ITEpO2xldCAkdD0hMSxmbj1bXTtjb25zdCBMbj1bIl9f''@;'; + put 'put ''X19fREVMRVRFX19USElTX19SRUNPUkRfX19fXyIsLi4udGhpcy5oZWFkZXJBcnJheV07bGV0IGlyPUxuLm1hcChRcj0+UXIudG9Mb3dlckNhc2UoKSksbXI9aXIucmVkdWNlKChRcix5aSk9PihRclt5aV09LTEsUXIpLHt9KSxTcj1bXTtjb25zdCB3cj10aGlzLmdldFJhbmdlQW5kU2hlZXQo''@;'; + put 'put ''S2UpO2lmKGZuPXdyLm1pc3NpbmdIZWFkZXJzLHdyLmZvdW5kRGF0YSl7JHQ9ITAsbXI9d3IuY3N2QXJyYXlIZWFkZXJzTWFwO2NvbnN0IFFyPUtlLlNoZWV0c1t3ci5zaGVldE5hbWVdO3RoaXMuYXBwZW5kVXBsb2FkU3RhdGUoYFRhYmxlIGZvdW5kIG9uIHNoZWV0ICR7d3Iuc2hlZXROYW1l''@;'; + put 'put ''fSBvbiByb3cgJHt3ci5zdGFydFJvd31gKTtsZXQgeWk9IiIsS2k9IiI7Zm9yKGxldCBTbz13ci5zdGFydFJvdztTbzx3ci5lbmRSb3c7KytTbyl7Y29uc3QgUG89W107aXIuZm9yRWFjaChKYT0+e2NvbnN0IGFsPUNNLnV0aWxzLmVuY29kZV9jZWxsKHtyOndyLnJhbmdlU3RhcnRSb3crU28s''@;'; + put 'put ''Yzp3ci5yYW5nZVN0YXJ0Q29sK21yW0phXX0pO2xldCBPczsiIj09PXlpJiYoeWk9YWwpLEtpPWFsLE9zPVFyW2FsXT9RclthbF06e3Y6IiJ9LFBvLnB1c2goT3MpfSksUG8uZmluZChKYT0+IiIhPT1KYS52KSYmU3IucHVzaChQbyl9dGhpcy5ldmVudFNlcnZpY2Uuc2hvd0luZm9Nb2RhbCgi''@;'; + put 'put ''VGFibGUgRm91bmQiLGBTaGVldDogJHt3ci5zaGVldE5hbWV9XG5SYW5nZTogJHt5aX06JHtLaX1gKX1lbHNlIGZuPXdyLm1pc3NpbmdIZWFkZXJzO2lmKGZuLmxlbmd0aD4wKXtmbi5zb3J0KGZ1bmN0aW9uKEtpLFNvKXtyZXR1cm4gS2lbMV09PT1Tb1sxXT8wOktpWzFdPlNvWzFdPy0xOjF9''@;'; + put 'put ''KTtsZXQgUXI9Zm4ubWFwKHlpPT55aVswXSkuc2xpY2UoMCw1KS5qb2luKCJcbiIpO3JldHVybiB0aGlzLmV2ZW50U2VydmljZS5zaG93QWJvcnRNb2RhbChudWxsLFFyKSxzZXRUaW1lb3V0KCgpPT57dGhpcy5maWxlbmFtZT0iIn0pLHRoaXMuZXhjZWxGaWxlUGFyc2luZz0hMSx2b2lkIHRo''@;'; + put 'put ''aXMudXBsb2FkZXIucXVldWUucG9wKCl9aWYoMD09PVNyLmxlbmd0aHx8MD09PVNyWzBdLmxlbmd0aClyZXR1cm4gdGhpcy5ldmVudFNlcnZpY2Uuc2hvd0Fib3J0TW9kYWwobnVsbCwiTm8gcmVsZXZhbnQgZGF0YSBmb3VuZCBpbiBGaWxlICEiKSxzZXRUaW1lb3V0KCgpPT57dGhpcy5maWxl''@;'; + put 'put ''bmFtZT0iIn0pLHRoaXMuZXhjZWxGaWxlUGFyc2luZz0hMSx2b2lkIHRoaXMudXBsb2FkZXIucXVldWUucG9wKCk7aWYoKHRoaXMuZGF0ZVRpbWVIZWFkZXJzLmxlbmd0aD4wfHx0aGlzLmRhdGVIZWFkZXJzLmxlbmd0aD4wfHx0aGlzLnRpbWVIZWFkZXJzLmxlbmd0aD4wKSYmKFNyPXRoaXMu''@;'; + put 'put ''dXBkYXRlRGF0ZVRpbWVDb2xzKExuLFNyKSksdGhpcy54bFJ1bGVzLmxlbmd0aD4wJiYoU3I9dGhpcy51cGRhdGVYTFJ1bGVDb2xzKExuLFNyKSksISR0KXtpZigwPT09Zm4ubGVuZ3RoKXRoaXMuZXZlbnRTZXJ2aWNlLnNob3dBYm9ydE1vZGFsKG51bGwsIk5vIHJlbGV2YW50IGRhdGEgZm91''@;'; + put 'put ''bmQgaW4gRmlsZSAhIiksc2V0VGltZW91dCgoKT0+e3RoaXMuZmlsZW5hbWU9IiJ9KTtlbHNle2ZuLnNvcnQoZnVuY3Rpb24oS2ksU28pe3JldHVybiBLaVsxXT09PVNvWzFdPzA6S2lbMV0+U29bMV0/LTE6MX0pO2xldCBRcj1mbi5tYXAoeWk9PnlpWzBdKS5zbGljZSgwLDUpLmpvaW4oIlxu''@;'; + put 'put ''Iik7dGhpcy5ldmVudFNlcnZpY2Uuc2hvd0Fib3J0TW9kYWwobnVsbCxRcil9cmV0dXJuIHRoaXMuZXhjZWxGaWxlUGFyc2luZz0hMSx2b2lkIHRoaXMudXBsb2FkZXIucXVldWUucG9wKCl9e3RoaXMuaGVhZGVyU2hvdz1MbixTcj1Tci5tYXAoeWk9PnlpLm1hcChLaT0+Im4iPT09S2kudD9L''@;'; + put 'put ''aS52OktpLncpKSxTcj1Tci5tYXAoeWk9PnlpLm1hcCgoS2ksU28pPT57dmFyIFBvOyFLaSYmMCE9PUtpJiYoS2k9IiIpLGlzTmFOKEtpKSYmKEtpPUtpLnJlcGxhY2UoLyIvZywnIiInKSkuc2VhcmNoKC8sL2cpPi0xJiYoS2k9JyInK0tpKyciJyk7Y29uc3QgSmE9bnVsbD09PShQbz10aGlz''@;'; + put 'put ''LmRjVmFsaWRhdG9yKXx8dm9pZCAwPT09UG8/dm9pZCAwOlBvLmdldFJ1bGUodGhpcy5oZWFkZXJTaG93W1NvXSk7cmV0dXJuIm51bWVyaWMiPT09KG51bGw9PUphP3ZvaWQgMDpKYS50eXBlKSYmKDAsYncuaXNTcGVjaWFsTWlzc2luZykoS2kpJiYhS2kuaW5jbHVkZXMoIi4iKSYmKEtpPSIu''@;'; + put 'put ''IitLaSksS2l9KSksdGhpcy5kYXRhPVNyO2xldCBRcj1Mbi5qb2luKCIsIikrIlxuIjtpZihRcis9U3IubWFwKHlpPT55aS5qb2luKCIsIikpLmpvaW4oIlxuIiksIldMQVRJTjEiPT09dGhpcy5lbmNvZGluZyl7bGV0IHlpPVRMZS5kZWNvZGUoSUxlLmZyb20oUXIpLCJDUC0xMjUyIiksS2k9''@;'; + put 'put ''bmV3IEJsb2IoW3lpXSx7dHlwZToiYXBwbGljYXRpb24vY3N2In0pLFNvPXRoaXMuYmxvYlRvRmlsZShLaSx0aGlzLmZpbGVuYW1lKyIuY3N2Iik7dGhpcy51cGxvYWRlci5hZGRUb1F1ZXVlKFtTb10pfWVsc2V7bGV0IHlpPW5ldyBCbG9iKFtRcl0se3R5cGU6ImFwcGxpY2F0aW9uL2NzdiJ9''@;'; + put 'put ''KSxLaT10aGlzLmJsb2JUb0ZpbGUoeWksdGhpcy5maWxlbmFtZSsiLmNzdiIpO3RoaXMudXBsb2FkZXIuYWRkVG9RdWV1ZShbS2ldKX10aGlzLmV4Y2VsRmlsZVJlYWR5PSEwfWlmKDA9PT10aGlzLmRhdGEubGVuZ3RoKXJldHVybiB0aGlzLnNob3dVcGxvYWRNb2RhbD0hMSx0aGlzLnVwbG9h''@;'; + put 'put ''ZFByZXZpZXc9ITEsdGhpcy5leGNlbEZpbGVQYXJzaW5nPSExLHZvaWQgdGhpcy5ldmVudFNlcnZpY2Uuc2hvd0Fib3J0TW9kYWwobnVsbCwiVGFibGUgaW4gdGhlIGZpbGUgaXMgZW1wdHkuIERhdGEgZm91bmQgb24gc2hlZXQ6ICIpO3RoaXMuZXhjZWxGaWxlUmVhZHk9ITAsdGhpcy5nZXRQ''@;'; + put 'put ''ZW5kaW5nRXhjZWxQcmV2aWV3KCl9KSx1ZS5yZWFkQXNBcnJheUJ1ZmZlcih5KX1lbHNlIGlmKCJjc3YiPT09ai50b0xvd2VyQ2FzZSgpKWlmKCJXTEFUSU4xIj09PXRoaXMuZW5jb2Rpbmcpe2xldCB1ZT1uZXcgRmlsZVJlYWRlcjt1ZS5vbmxvYWQ9QmU9PntsZXQgTmU9VExlLmRlY29kZShJ''@;'; + put 'put ''TGUuZnJvbShCZS50YXJnZXQucmVzdWx0KSwiQ1AtMTI1MiIpLEtlPW5ldyBCbG9iKFtOZV0se3R5cGU6an0pLGR0PXRoaXMuYmxvYlRvRmlsZShLZSx0aGlzLmZpbGVuYW1lKTt0aGlzLnVwbG9hZGVyLnF1ZXVlLnBvcCgpLHRoaXMudXBsb2FkZXIuYWRkVG9RdWV1ZShbZHRdKSx0aGlzLmV4''@;'; + put 'put ''Y2VsRmlsZVJlYWR5PSEwfSx0aGlzLmV4Y2VsRmlsZVJlYWR5PSEwLHRoaXMuZXhjZWxGaWxlUGFyc2luZz0hMSx1ZS5yZWFkQXNBcnJheUJ1ZmZlcih5KSx0aGlzLmdldEZpbGUoKX1lbHNlIHRoaXMuZXhjZWxGaWxlUmVhZHk9ITAsdGhpcy5leGNlbEZpbGVQYXJzaW5nPSExLHRoaXMuZ2V0''@;'; + put 'put ''RmlsZSgpO2Vsc2UgdGhpcy5ldmVudFNlcnZpY2Uuc2hvd0Fib3J0TW9kYWwobnVsbCwnSW52YWxpZCBmaWxlIHR5cGUgIjxiPicrdGhpcy5maWxlbmFtZSsnPC9iPiIuIFBsZWFzZSB1cGxvYWQgY3N2IG9yIGV4Y2VsIGZpbGUuJyksdGhpcy5leGNlbEZpbGVSZWFkeT0hMCx0aGlzLmV4Y2Vs''@;'; + put 'put ''RmlsZVBhcnNpbmc9ITEsdGhpcy51cGxvYWRlci5xdWV1ZS5wb3AoKX1nZXRGaWxlKCl7aWYodGhpcy5jaGVja0ludmFsaWQoKSlyZXR1cm4gdm9pZCB0aGlzLmV2ZW50U2VydmljZS5zaG93QWJvcnRNb2RhbChudWxsLCJJbnZhbGlkIHZhbHVlcyBhcmUgcHJlc2VudC4iKTt0aGlzLnVwbG9h''@;'; + put 'put ''ZExvYWRpbmc9ITA7bGV0IGg9W107Zm9yKGNvbnN0IHYgb2YgdGhpcy51cGxvYWRlci5xdWV1ZSloLnB1c2goe2ZpbGU6di5fZmlsZSxmaWxlTmFtZTp2Ll9maWxlLm5hbWV9KTt0aGlzLnNhc1NlcnZpY2UudXBsb2FkRmlsZSh0aGlzLnVwbG9hZFVybCxoLHt0YWJsZTp0aGlzLmxpYmRzfSku''@;'; + put 'put ''dGhlbih2PT57aWYodm9pZCAwPT09di5zYXNqc0Fib3J0KXtpZih2b2lkIDA9PT12LnNhc3BhcmFtcylyZXR1cm47e3RoaXMudXBsb2FkTG9hZGluZz0hMTtsZXQgeT12LnNhc3BhcmFtc1swXTt0aGlzLnN1Y2Nlc3NFbmFibGU9ITAsdGhpcy50YWJsZUlkPXkuRFNJRCx0aGlzLnJvdXRlci5u''@;'; + put 'put ''YXZpZ2F0ZUJ5VXJsKCIvc3RhZ2UvIit0aGlzLnRhYmxlSWQpfX1lbHNle2NvbnN0IHk9dixDPXkuc2FzanNBYm9ydFswXS5NU0csST15LnNhc2pzQWJvcnRbMF0uTUFDO3RoaXMudXBsb2FkTG9hZGluZz0hMSx0aGlzLmZpbGVuYW1lPSIiLHRoaXMuZmlsZVVwbG9hZElucHV0Q29tcExpc3Qu''@;'; + put 'put ''Zmlyc3QmJih0aGlzLmZpbGVVcGxvYWRJbnB1dENvbXBMaXN0LmZpcnN0Lm5hdGl2ZUVsZW1lbnQudmFsdWU9IiIpLHRoaXMudXBsb2FkZXIucXVldWU9W10sdGhpcy5ldmVudFNlcnZpY2Uuc2hvd0Fib3J0TW9kYWwoIiIsQyx7U1lTV0FSTklOR1RFWFQ6eS5TWVNXQVJOSU5HVEVYVCxTWVNF''@;'; + put 'put ''UlJPUlRFWFQ6eS5TWVNFUlJPUlRFWFQsTUFDOkl9KX19LHY9Pnt0aGlzLnVwbG9hZExvYWRpbmc9ITEsdGhpcy5maWxlVXBsb2FkSW5wdXRDb21wTGlzdC5maXJzdCYmKHRoaXMuZmlsZVVwbG9hZElucHV0Q29tcExpc3QuZmlyc3QubmF0aXZlRWxlbWVudC52YWx1ZT0iIiksdGhpcy51cGxv''@;'; + put 'put ''YWRlci5xdWV1ZT1bXSx0aGlzLmV2ZW50U2VydmljZS5jYXRjaFJlc3BvbnNlRXJyb3IoImZpbGUgdXBsb2FkIix2KX0pfWdldFBlbmRpbmdFeGNlbFByZXZpZXcoKXt0aGlzLnF1ZXJ5VGV4dFNhdmVkPXRoaXMucXVlcnlUZXh0LHRoaXMucXVlcnlUZXh0PSIiLHRoaXMuZXhjZWxVcGxvYWRT''@;'; + put 'put ''dGF0ZT0iUGFyc2luZyIsdGhpcy50b2dnbGVIb3RQbHVnaW4oImNvbnRleHRNZW51IiwhMSk7bGV0IGg9W107dGhpcy5kYXRhLm1hcCh5PT57bGV0IEM9e307dGhpcy5oZWFkZXJTaG93Lm1hcCgoSSxqKT0+e0NbSV09eVtqXX0pLEMuX19fX19ERUxFVEVfX1RISVNfX1JFQ09SRF9fX19ffHwo''@;'; + put 'put ''Qy5fX19fX0RFTEVURV9fVEhJU19fUkVDT1JEX19fX189Ik5vIiksaC5wdXNoKEMpfSksdGhpcy5kYXRhU291cmNlVW5jaGFuZ2VkPXRoaXMuaGVscGVyU2VydmljZS5kZWVwQ2xvbmUodGhpcy5kYXRhU291cmNlKSx0aGlzLmRhdGFTb3VyY2U9aCx0aGlzLmhvdFRhYmxlLmRhdGE9aDtjb25z''@;'; + put 'put ''dCB2PXRoaXMuaG90SW5zdGFuY2U7dGhpcy5leGNlbFVwbG9hZFN0YXRlPSJWYWxpZGF0aW5nLUhPVCIsdi51cGRhdGVTZXR0aW5ncyh7ZGF0YTp0aGlzLmRhdGFTb3VyY2V9LCExKSx2LnJlbmRlcigpLHRoaXMuYXBwZW5kVXBsb2FkU3RhdGUoIlZhbGlkYXRpbmcgcm93cyIpLHYudmFsaWRh''@;'; + put 'put ''dGVDZWxscygoKT0+e3RoaXMuc2hvd1VwbG9hZE1vZGFsPSExLHRoaXMudXBsb2FkUHJldmlldz0hMCx0aGlzLmV4Y2VsRmlsZVBhcnNpbmc9ITEsdGhpcy5leGNlbFVwbG9hZFN0YXRlPW51bGx9KX1kaXNjYXJkUGVuZGluZ0V4Y2VsKGgpe2gmJnRoaXMuY2FuY2VsRWRpdCgpLHRoaXMuZmls''@;'; + put 'put ''ZVVwbG9hZElucHV0Q29tcExpc3QuZmlyc3QmJih0aGlzLmZpbGVVcGxvYWRJbnB1dENvbXBMaXN0LmZpcnN0Lm5hdGl2ZUVsZW1lbnQudmFsdWU9IiIpLHRoaXMudXBsb2FkUHJldmlldz0hMSx0aGlzLmV4Y2VsRmlsZVJlYWR5PSExLHRoaXMudXBsb2FkZXIucXVldWU9W10saXNOYU4ocGFy''@;'; + put 'put ''c2VJbnQodGhpcy5yb3V0ZXIudXJsLnNwbGl0KCIvIikucG9wKCl8fCIiKSl8fHRoaXMucXVlcnlUZXh0U2F2ZWQubGVuZ3RoPjAmJih0aGlzLnF1ZXJ5VGV4dD10aGlzLnF1ZXJ5VGV4dFNhdmVkLHRoaXMucXVlcnlUZXh0U2F2ZWQ9IiIpfXByZXZpZXdUYWJsZUVkaXRDb25maXJtKCl7dGhp''@;'; + put 'put ''cy5kaXNjYXJkUGVuZGluZ0V4Y2VsKCksdGhpcy5jb252ZXJ0VG9Db3JyZWN0VHlwZXModGhpcy5kYXRhU291cmNlKSx0aGlzLmVkaXRUYWJsZSghMCl9YXBwZW5kVXBsb2FkU3RhdGUoaCx2PSExKXt0aGlzLmNkZi5kZXRlY3RDaGFuZ2VzKCksdGhpcy51cGxvYWRTdGF0ZXJDb21wTGlzdC5m''@;'; + put 'put ''aXJzdCYmKHY/dGhpcy51cGxvYWRTdGF0ZXJDb21wTGlzdC5maXJzdC5yZXBsYWNlTGFzdFN0YXRlKGgpOnRoaXMudXBsb2FkU3RhdGVyQ29tcExpc3QuZmlyc3QuYXBwZW5kU3RhdGUoaCkpfWZpbmRWYWxpZEhlYWRlcnMoaCx2LHksQyl7bGV0IEk9ITEsaj1bXSx1ZT0wO2Zvcig7dWU8aC5s''@;'; + put 'put ''ZW5ndGg7KXtpZighSSYmLTEhPT12LmluZGV4T2YoaFt1ZV0pKXtsZXQgX2UsQmU9MCxOZT0wLEtlPTAsZHQ9W10sT3Q9ITE7Zm9yKGxldCBMbj11ZTtMbjxoLmxlbmd0aDtMbisrKXtpZigiIj09PWhbTG5dfHwtMSE9PWR0LmluZGV4T2YoaFtMbl0pJiZ0aGlzLmlzQ29sSGVhZGVyKGhbTG5d''@;'; + put 'put ''KSl7IiI9PT1oW0xuXSYmKE90PSEwKSxfZT1MbjticmVha31kdC5wdXNoKGhbTG5dKX1sZXQgJHQ9W107dm9pZCAwIT09X2U/KCR0PWguc2xpY2UodWUsX2UpLEtlPXVlLE5lPV9lLE90PyhCZT11ZSx1ZT1fZSk6KEJlPXVlLHVlPV9lLTEpKTooJHQ9aC5zbGljZSh1ZSksQmU9dWUsS2U9dWUs''@;'; + put 'put ''TmU9aC5sZW5ndGgsdWU9aC5sZW5ndGgpO2xldCBmbj0hMDtpZih2LmZvckVhY2goTG49PnstMT09PSR0LmluZGV4T2YoTG4pJiYoZm49ITEpfSksZm4pe0k9ITA7bGV0IGlyPXYucmVkdWNlKGZ1bmN0aW9uKFNyLHdyKXtyZXR1cm4gU3Jbd3JdPS0xLFNyfSx7fSksbXI9aC5zbGljZShCZSxO''@;'; + put 'put ''ZSk7cmV0dXJuIHYuZm9yRWFjaChTcj0+e2lyW1NyXT1tci5pbmRleE9mKFNyKStCZX0pLFshMCxpcl19e2xldCBMbj1INXQoJHQsdik7ai5wdXNoKFsiPGI+VEFCKCIrQysiKTwvYj4gLSAiK0xuWzFdLmpvaW4oIiwiKSsiICggbWlzc2luZyAiK0xuWzBdLmpvaW4oIiwiKSsiICkiLExuWzFd''@;'; + put 'put ''Lmxlbmd0aF0pfX11ZSsrfXJldHVyblshMSxqXX1pc0NvbFBrKGgpe3JldHVybiB0aGlzLmhlYWRlclBrcy5pbmRleE9mKGgpPi0xfWlzUmVhZG9ubHlDb2woaCl7dmFyIHY7Y29uc3QgeT1udWxsPT09KHY9dGhpcy5kY1ZhbGlkYXRvcil8fHZvaWQgMD09PXY/dm9pZCAwOnYuZ2V0UnVsZSho''@;'; + put 'put ''KTtyZXR1cm4gbnVsbD09eT92b2lkIDA6eS5yZWFkT25seX1pc0NvbEhlYWRlcihoKXtyZXR1cm4gdGhpcy5oZWFkZXJBcnJheS5pbmRleE9mKGgudG9VcHBlckNhc2UoKSk+LTF9cmVtb3ZlUXVlcnkoKXt0aGlzLnNhc1N0b3JlU2VydmljZS5yZW1vdmVDbGF1c2UoKX11cGRhdGVEYXRlVGlt''@;'; + put 'put ''ZUNvbHMoaCx2KXtpZih0aGlzLmRhdGVIZWFkZXJzLmxlbmd0aD4wKXtsZXQgeT1bXTt0aGlzLmRhdGVIZWFkZXJzLmZvckVhY2goQz0+ey0xIT09aC5pbmRleE9mKEMpJiZ5LnB1c2goaC5pbmRleE9mKEMpKX0pLHYuZm9yRWFjaChDPT57eS5mb3JFYWNoKEk9Pntjb25zdCBqPUNbSV07aWYo''@;'; + put 'put ''VG1lKGoudikpe2NvbnN0IHVlPUVtZShOdW1iZXIoai52KSk7ai52PXVlLmdldEZ1bGxZZWFyKCkrIi0iKygiMCIrKHVlLmdldE1vbnRoKCkrMSkpLnNsaWNlKC0yKSsiLSIrKCIwIit1ZS5nZXREYXRlKCkpLnNsaWNlKC0yKX1lbHNlIGlmKGomJmoudiYmLTE9PT1qLnYudG9TdHJpbmcoKS5p''@;'; + put 'put ''bmRleE9mKCI6Iikpe2NvbnN0IHVlPW5ldyBEYXRlKGoudik7IkludmFsaWQgRGF0ZSIhPT11ZS50b1VUQ1N0cmluZygpJiYoai52PU1tZSh1ZSkpfUNbSV09an0pfSl9aWYodGhpcy50aW1lSGVhZGVycy5sZW5ndGg+MCl7bGV0IHk9W107dGhpcy50aW1lSGVhZGVycy5mb3JFYWNoKEM9Pnst''@;'; + put 'put ''MSE9PWguaW5kZXhPZihDKSYmeS5wdXNoKGguaW5kZXhPZihDKSl9KSx2LmZvckVhY2goQz0+e3kuZm9yRWFjaChJPT57Y29uc3Qgaj1DW0ldO2lmKFRtZShqLnYpfHxiTGUoai52KXx8ai52LmluY2x1ZGVzKCJFLSIpKXtjb25zdCB1ZT1FbWUoTnVtYmVyKGoudikpO2oudj13TGUodWUpfUNb''@;'; + put 'put ''SV09an0pfSl9aWYodGhpcy5kYXRlVGltZUhlYWRlcnMubGVuZ3RoPjApe2xldCB5PVtdO3RoaXMuZGF0ZVRpbWVIZWFkZXJzLmZvckVhY2goQz0+ey0xIT09aC5pbmRleE9mKEMpJiZ5LnB1c2goaC5pbmRleE9mKEMpKX0pLHYuZm9yRWFjaChDPT57eS5mb3JFYWNoKEk9Pntjb25zdCBqPUNb''@;'; + put 'put ''SV07aWYoVG1lKGoudil8fGJMZShqLnYpKXtsZXQgdWU9RW1lKE51bWJlcihqLnYpKTtqLnY9TW1lKHVlKSsiICIrd0xlKHVlKX1lbHNle2lmKC0xPT09ai52LmluZGV4T2YoIiAiKSYmLTEhPT1qLnYuaW5kZXhPZigiOiIpKXtsZXQgX2U9ai52LnN1YnN0cmluZygwLGoudi5pbmRleE9mKCI6''@;'; + put 'put ''IikpO19lPV9lKyIgIitqLnYuc3Vic3RyaW5nKGoudi5pbmRleE9mKCI6IikrMSksai52PV9lfWxldCB1ZT1uZXcgRGF0ZShqLnYpOyJJbnZhbGlkIERhdGUiIT09dWUudG9VVENTdHJpbmcoKSYmKGoudj1NbWUodWUpKyIgIisoZD0+e2xldCBnPSgiMCIrZC5nZXRIb3VycygpKS5zbGljZSgt''@;'; + put 'put ''MikrIjoiO3JldHVybiBnPWcrKCIwIitkLmdldE1pbnV0ZXMoKSkuc2xpY2UoLTIpKyI6IixnKz0oIjAiK2QuZ2V0U2Vjb25kcygpKS5zbGljZSgtMiksZ30pKHVlKSl9Q1tJXT1qfSl9KX1yZXR1cm4gdn11cGRhdGVYTFJ1bGVDb2xzKGgsdil7aWYodGhpcy54bFJ1bGVzLmxlbmd0aD4wKXtj''@;'; + put 'put ''b25zdCB5PVtdO3RoaXMueGxSdWxlcy5mb3JFYWNoKEM9PnstMSE9PWguaW5kZXhPZihDLlhMX0NPTFVNTikmJihDLmluZGV4PWguaW5kZXhPZihDLlhMX0NPTFVNTikseS5wdXNoKEMpKX0pLHYuZm9yRWFjaChDPT57eS5mb3JFYWNoKEk9Pntjb25zdCBqPUNbSS5pbmRleF07IkZPUk1VTEEi''@;'; + put 'put ''PT09SS5YTF9SVUxFJiYiZiJpbiBqJiYoIm4iPT09ai50P2oudj0iPSIrai5mOmoudz0iPSIrai5mKSxDW0ldPWp9KX0pfXJldHVybiB2fWJsb2JUb0ZpbGUoaCx2KXtjb25zdCB5PWg7cmV0dXJuIHkubGFzdE1vZGlmaWVkRGF0ZT1uZXcgRGF0ZSx5Lm5hbWU9dix5fXRvQnN0cihoKXtsZXQg''@;'; + put 'put ''dj1uZXcgVWludDhBcnJheShoKSx5PSIiLEM9di5ieXRlTGVuZ3RoO2ZvcihsZXQgST0wO0k8QztJKyspeSs9U3RyaW5nLmZyb21DaGFyQ29kZSh2W0ldKTtyZXR1cm4geX1zZW5kQ2xhdXNlKCl7cmV0dXJuIG5vKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXt0aGlzLnN1Ym1pdExv''@;'; + put 'put ''YWRpbmc9ITA7bGV0IGg9W10sdj1bXTtpZih2b2lkIDA9PT10aGlzLmNsYXVzZXMpcmV0dXJuIHRoaXMubnVsbFZhcmlhYmxlcz0hMCx2b2lkKHRoaXMuc3VibWl0TG9hZGluZz0hMSk7e2xldCB5PXRoaXMuY2xhdXNlcy5xdWVyeU9iajtpZih5WzBdLmVsZW1lbnRzLmxlbmd0aDwxKXJldHVy''@;'; + put 'put ''bigiaG9tZSI9PT1uaS5yb290UGFyYW18fCJlZGl0b3IiPT09bmkucm9vdFBhcmFtKSYmKG5pLmVkaXRvci5maWx0ZXIuY2xhdXNlcz1bXSxuaS5lZGl0b3IuZmlsdGVyLnF1ZXJ5PVtdLG5pLmVkaXRvci5maWx0ZXIuZ3JvdXBMb2dpYz0iIiksdm9pZCB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5''@;'; + put 'put ''VXJsKCIvZWRpdG9yLyIrdGhpcy5saWJkcyk7Zm9yKGxldCBDPTA7Qzx5Lmxlbmd0aDtDKyspe2NvbnN0IEk9eVtDXS5lbGVtZW50cztoPUkuZmlsdGVyKGZ1bmN0aW9uKGope3JldHVybiBudWxsPT09ai52YXJpYWJsZX0pLGgubGVuZ3RoJiZ2LnB1c2goSSl9fWlmKHYubGVuZ3RoKXJldHVy''@;'; + put 'put ''biB0aGlzLm51bGxWYXJpYWJsZXM9ITAsdm9pZCh0aGlzLnN1Ym1pdExvYWRpbmc9ITEpO3RyeXtpZih2b2lkIDAhPT10aGlzLmNsYXVzZXMmJnRoaXMubGliZHMpe2NvbnN0IHk9e2dyb3VwTG9naWM6dGhpcy5jbGF1c2VzLmdyb3VwTG9naWMsZmlsdGVyR3JvdXBzOltdfTt0aGlzLmNsYXVz''@;'; + put 'put ''ZXMucXVlcnlPYmouZm9yRWFjaChJPT57Y29uc3Qgaj17ZmlsdGVyQ2xhdXNlczpbXX07SS5lbGVtZW50cy5mb3JFYWNoKHVlPT57ai5maWx0ZXJDbGF1c2VzLnB1c2godGhpcy5oZWxwZXJTZXJ2aWNlLmRlZXBDbG9uZSh1ZSkpfSksai5jbGF1c2VMb2dpYz1JLmNsYXVzZUxvZ2ljLHkuZmls''@;'; + put 'put ''dGVyR3JvdXBzLnB1c2godGhpcy5oZWxwZXJTZXJ2aWNlLmRlZXBDbG9uZShqKSl9KTtjb25zdCBDPXRoaXMuc2FzU3RvcmVTZXJ2aWNlLmNyZWF0ZUZpbHRlclF1ZXJ5VGFibGUoeSk7eWllbGQgdGhpcy5zYXNTdG9yZVNlcnZpY2Uuc2F2ZVF1ZXJ5KHRoaXMubGliZHMsQykudGhlbihJPT57''@;'; + put 'put ''dGhpcy5xdWVyeUZpbHRlcj17aWQ6SS5yZXN1bHRbMF0uRklMVEVSX1JLLHRhYmxlOkkucmVzdWx0WzBdLkZJTFRFUl9UQUJMRX0sdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCgiLyIse3NraXBMb2NhdGlvbkNoYW5nZTohMH0pLnRoZW4oKCk9PnRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwo''@;'; + put 'put ''Ii9lZGl0b3IvIit0aGlzLnF1ZXJ5RmlsdGVyLnRhYmxlKyIvIit0aGlzLnF1ZXJ5RmlsdGVyLmlkKSksdGhpcy5maWx0ZXI9ITF9KS5jYXRjaChJPT57dGhpcy5zdWJtaXRMb2FkaW5nPSExfSl9fWNhdGNoKHkpe3RoaXMucXVlcnlFcnI9ITAsdGhpcy5zdWJtaXRMb2FkaW5nPSExLHRoaXMu''@;'; + put 'put ''cXVlcnlFcnJNZXNzYWdlPXl9fSl9b3BlblFiKCl7dGhpcy5saWJkcyYmKHRoaXMuZmlsdGVyPSEwLHRoaXMuY2RmLmRldGVjdENoYW5nZXMoKSx0aGlzLnN1Ym1pdExvYWRpbmc9ITEsdGhpcy5zYXNTdG9yZVNlcnZpY2Uuc2V0UXVlcnlWYXJpYWJsZXModGhpcy5saWJkcyx0aGlzLmNvbHMp''@;'; + put 'put ''KX1lZGl0VGFibGUoaCx2KXt0aGlzLnRvZ2dsZUhvdFBsdWdpbigiY29udGV4dE1lbnUiLCEwKTtjb25zdCB5PXRoaXMuaG90SW5zdGFuY2U7bGV0IEM9eS5nZXRQbHVnaW4oIm11bHRpQ29sdW1uU29ydGluZyIpLEk9Qy5nZXRTb3J0Q29uZmlnKCksaj1BcnJheS5pc0FycmF5KEkpP0k6W0ld''@;'; + put 'put ''O3NldFRpbWVvdXQoKCk9PntofHwodGhpcy5kYXRhU291cmNlVW5jaGFuZ2VkPXRoaXMuaGVscGVyU2VydmljZS5kZWVwQ2xvbmUodGhpcy5kYXRhU291cmNlKSx2JiZ0aGlzLmRhdGFTb3VyY2VVbmNoYW5nZWQucG9wKCkpLHRoaXMuaG90VGFibGUucmVhZE9ubHk9ITEsdGhpcy5ob3RUYWJs''@;'; + put 'put ''ZS5kYXRhPXRoaXMuZGF0YVNvdXJjZSx5LnVwZGF0ZVNldHRpbmdzKHtyZWFkT25seTp0aGlzLmhvdFRhYmxlLnJlYWRPbmx5fSwhMSkseS5yZW5kZXIoKTtmb3IobGV0IHVlIG9mIGopQy5zb3J0KHVlKTt0aGlzLnJlU2V0Q2VsbFZhbGlkYXRpb25WYWx1ZXMoKX0sMCl9Y29udmVydFRvQ29y''@;'; + put 'put ''cmVjdFR5cGVzKGgpe2ZvcihsZXQgdiBvZiBoKWZvcihsZXQgeSBpbiB2KXtsZXQgQz10aGlzLmNvbHMuZmluZChJPT5JLk5BTUU9PT15KTtDJiYiIiE9PXZbeV0mJiJudW0iPT09Qy5UWVBFJiYhQy5ERFRZUEUuaW5jbHVkZXMoIlRJTUUiKSYmIUMuRERUWVBFLmluY2x1ZGVzKCJEQVRFIikm''@;'; + put 'put ''Jih2W3ldPXBhcnNlSW50KHZbeV0pKX19Y2FuY2VsRWRpdCgpe3RoaXMudG9nZ2xlSG90UGx1Z2luKCJjb250ZXh0TWVudSIsITEpLHRoaXMuY2VsbFZhbGlkYXRpb25Tb3VyY2U9W107Y29uc3QgaD10aGlzLmhvdEluc3RhbmNlO2xldCB2PWguZ2V0UGx1Z2luKCJtdWx0aUNvbHVtblNvcnRp''@;'; + put 'put ''bmciKSx5PXYuZ2V0U29ydENvbmZpZygpLEM9QXJyYXkuaXNBcnJheSh5KT95Olt5XTt0aGlzLmRhdGFTb3VyY2VVbmNoYW5nZWQmJih0aGlzLmRhdGFTb3VyY2U9dGhpcy5oZWxwZXJTZXJ2aWNlLmRlZXBDbG9uZSh0aGlzLmRhdGFTb3VyY2VVbmNoYW5nZWQpKSx0aGlzLmhvdFRhYmxlLmRh''@;'; + put 'put ''dGE9dGhpcy5kYXRhU291cmNlLHRoaXMuaG90VGFibGUucmVhZE9ubHk9ITAsaC51cGRhdGVTZXR0aW5ncyh7cmVhZE9ubHk6dGhpcy5ob3RUYWJsZS5yZWFkT25seSxkYXRhOnRoaXMuZGF0YVNvdXJjZX0sITEpLGgudmFsaWRhdGVSb3dzKHRoaXMubW9kaWZlZFJvd3NJbmRleGVzKTtmb3Io''@;'; + put 'put ''bGV0IEkgb2YgQyl2LnNvcnQoSSk7dGhpcy5jaGVja1Jvd0xpbWl0KCl9aG90Q2xpY2tlZCgpezE9PT10aGlzLnRpbWVzQ2xpY2tlZCYmdGhpcy5ob3RUYWJsZS5yZWFkT25seSYmdGhpcy5lZGl0VGFibGUoKSwwPT09dGhpcy50aW1lc0NsaWNrZWQmJih0aGlzLnRpbWVzQ2xpY2tlZCsrLHNl''@;'; + put 'put ''dFRpbWVvdXQoKCk9Pnt0aGlzLnRpbWVzQ2xpY2tlZD0wfSwyMDApKX1jbGVhbkV4Y2VlZCgpe3RoaXMuZXhjZWVkQ2VsbHM9W119YXBwcm92ZXJzVG9nZ2xlKCl7dGhpcy5zaG93QXBwcm92ZXJzPSF0aGlzLnNob3dBcHByb3ZlcnN9YWRkUm93KCl7dGhpcy5hZGRpbmdOZXdSb3c9ITAsc2V0''@;'; + put 'put ''VGltZW91dCgoKT0+e2NvbnN0IGg9dGhpcy5ob3RJbnN0YW5jZTtsZXQgdj10aGlzLmRhdGFTb3VyY2UubGVuZ3RoO2guYWx0ZXIoImluc2VydF9yb3ciLHYsMSksaC51cGRhdGVTZXR0aW5ncyh7ZGF0YTp0aGlzLmRhdGFTb3VyY2V9LCExKSxoLnNlbGVjdENlbGwodGhpcy5kYXRhU291cmNl''@;'; + put 'put ''Lmxlbmd0aC0xLDApLGgucmVuZGVyKCksdGhpcy5kYXRhU291cmNlW3ZdJiYodGhpcy5kYXRhU291cmNlW3ZdLm5vTGlua09wdGlvbj0hMCksdGhpcy5hZGRpbmdOZXdSb3c9ITEsdGhpcy5yZVNldENlbGxWYWxpZGF0aW9uVmFsdWVzKCl9KX1jYW5jZWxTdWJtaXQoKXt0aGlzLmRhdGFTb3Vy''@;'; + put 'put ''Y2U9dGhpcy5oZWxwZXJTZXJ2aWNlLmRlZXBDbG9uZSh0aGlzLmRhdGFTb3VyY2VCZWZvcmVTdWJtaXQpLHRoaXMuZGF0YVNvdXJjZUJlZm9yZVN1Ym1pdD1bXSx0aGlzLmhvdFRhYmxlLmRhdGE9dGhpcy5kYXRhU291cmNlO2NvbnN0IGg9dGhpcy5ob3RJbnN0YW5jZTtoLnVwZGF0ZVNldHRp''@;'; + put 'put ''bmdzKHtkYXRhOnRoaXMuZGF0YVNvdXJjZSxjb2xIZWFkZXJzOnRoaXMuaGVhZGVyQ29sdW1ucyxjb2x1bW5zOnRoaXMuY2VsbFZhbGlkYXRpb24sbW9kaWZ5Q29sV2lkdGg6ZnVuY3Rpb24odix5KXtyZXR1cm4gMD09PXk/NjA6dj41MDA/NTAwOnZ9fSwhMSksaC5zZWxlY3RDZWxsKDAsMCks''@;'; + put 'put ''aC5yZW5kZXIoKSxoLnZhbGlkYXRlUm93cyh0aGlzLm1vZGlmZWRSb3dzSW5kZXhlcyksdGhpcy5yZVNldENlbGxWYWxpZGF0aW9uVmFsdWVzKCl9Z2V0Um93c1N1Ym1pdHRpbmdDb3VudCgpe3RoaXMuc2FzU2VydmljZS5nZXRTYXNqc0NvbmZpZygpLmRlYnVnJiYodGhpcy5sb2dnZXJTZXJ2''@;'; + put 'put ''aWNlLmxvZyh0aGlzLmRhdGFTb3VyY2UpLHRoaXMubG9nZ2VyU2VydmljZS5sb2codGhpcy5kYXRhU291cmNlVW5jaGFuZ2VkKSk7bGV0IGg9MCx2PTAseT0wO3RoaXMubW9kaWZlZFJvd3NJbmRleGVzPVtdLHRoaXMuZGF0YU1vZGlmaWVkPVtdO2ZvcihsZXQgQz0wO0M8dGhpcy5kYXRhU291''@;'; + put 'put ''cmNlLmxlbmd0aDtDKyspe2xldCBJPXRoaXMuaGVscGVyU2VydmljZS5kZWVwQ2xvbmUodGhpcy5kYXRhU291cmNlW0NdKTtpZigiWWVzIj09PUkuX19fX19ERUxFVEVfX1RISVNfX1JFQ09SRF9fX19fKXRoaXMuZGF0YU1vZGlmaWVkLnB1c2goSSksdisrO2Vsc2V7bGV0IGo9dGhpcy5kYXRh''@;'; + put 'put ''U291cmNlVW5jaGFuZ2VkLmZpbmQodWU9Pntmb3IobGV0IF9lIG9mIHRoaXMuaGVhZGVyUGtzKWlmKHVlW19lXSE9PUlbX2VdKXJldHVybiExO3JldHVybiEwfSk7aj9KU09OLnN0cmluZ2lmeShJKSE9PUpTT04uc3RyaW5naWZ5KGopJiYodGhpcy5kYXRhTW9kaWZpZWQucHVzaChJKSx0aGlz''@;'; + put 'put ''Lm1vZGlmZWRSb3dzSW5kZXhlcy5wdXNoKEMpLGgrKyk6KHRoaXMuZGF0YU1vZGlmaWVkLnB1c2goSSksdGhpcy5tb2RpZmVkUm93c0luZGV4ZXMucHVzaChDKSx5KyspfX10aGlzLnJvd3NDaGFuZ2VkPXtyb3dzVXBkYXRlZDpoLHJvd3NEZWxldGVkOnYscm93c0FkZGVkOnl9fXZhbGlkYXRl''@;'; + put 'put ''UHJpbWFyeUtleXMoKXtjb25zdCBoPXRoaXMuaG90SW5zdGFuY2U7bGV0IHY9aC5nZXREYXRhKCk7dGhpcy5wa0ZpZWxkcz1bXTtmb3IobGV0IGo9MDtqPHYubGVuZ3RoO2orKyl7bGV0IHVlPSIiO2ZvcihsZXQgX2U9MTtfZTx0aGlzLnJlYWRPbmx5RmllbGRzKzE7X2UrKyl1ZT11ZSsifCIr''@;'; + put 'put ''dltqXVtfZV07dGhpcy5wa0ZpZWxkcy5wdXNoKHVlKX1sZXQgSSx5PVtdLEM9dGhpcy5kYXRhU291cmNlLmxlbmd0aDtmb3IobGV0IGo9MDtqPHRoaXMucGtGaWVsZHMubGVuZ3RoO2orKylmb3IobGV0IHVlPTA7dWU8dGhpcy5wa0ZpZWxkcy5sZW5ndGg7dWUrKyl0aGlzLnBrRmllbGRzW2pd''@;'; + put 'put ''PT09dGhpcy5wa0ZpZWxkc1t1ZV0mJnVlIT09aiYmeS5wdXNoKHVlKTtpZih0aGlzLnBrRmllbGRzLmxlbmd0aD5DKWZvcihsZXQgaj1DO2o8dGhpcy5wa0ZpZWxkcy5sZW5ndGg7aisrKWZvcihsZXQgdWU9Qzt1ZTx0aGlzLnBrRmllbGRzLmxlbmd0aDt1ZSsrKWo8dWUmJnRoaXMucGtGaWVs''@;'; + put 'put ''ZHNbal09PT10aGlzLnBrRmllbGRzW3VlXSYmeS5wdXNoKHVlKTtmb3IobGV0IGo9MDtqPHkubGVuZ3RoO2orKylmb3IobGV0IHVlPTE7dWU8dGhpcy5yZWFkT25seUZpZWxkcysxO3VlKyspST1oLmdldENlbGxNZXRhKHlbal0sdWUpLEkudmFsaWQ9ITEsSS5kdXBLZXk9ITAsaC5yZW5kZXIo''@;'; + put 'put ''KTt0aGlzLmR1cGxpY2F0ZVBrSW5kZXhlcz1bLi4ubmV3IFNldCh5LnNvcnQoKSldfXJlU2V0Q2VsbFZhbGlkYXRpb25WYWx1ZXMoaD0hMSx2KXtjb25zdCB5PXRoaXMuaG90SW5zdGFuY2U7Zm9yKGxldCBDIG9mIHRoaXMuY2VsbFZhbGlkYXRpb25Tb3VyY2Upe2NvbnN0IEk9Qy52YWx1ZXMu''@;'; + put 'put ''bWFwKGo9PmpbdGhpcy5jZWxsVmFsaWRhdGlvbkZpZWxkcy5SQVdfVkFMVUVdKTt5LmJhdGNoKCgpPT57dmFyIGosdWUsX2UsQmU7Y29uc3QgTmU9eS5nZXRDZWxsTWV0YShDLnJvdyxDLmNvbCksS2U9bnVsbD09PShqPXRoaXMuZGNWYWxpZGF0b3IpfHx2b2lkIDA9PT1qP3ZvaWQgMDpqLmdl''@;'; + put 'put ''dFJ1bGUoTmUuZGF0YXx8IiIpO2xldCBkdDtLZSYmKGR0PW51bGw9PT0odWU9dGhpcy5kY1ZhbGlkYXRvcil8fHZvaWQgMD09PXVlP3ZvaWQgMDp1ZS5nZXREcURyb3Bkb3duU291cmNlKEtlKSksZHR8fChkdD1bXSk7Y29uc3QgT3Q9Wy4uLm5ldyBTZXQoWy4uLmR0LC4uLkldKV07bnVsbD09''@;'; + put 'put ''PShfZT10aGlzLmN1cnJlbnRFZGl0UmVjb3JkVmFsaWRhdG9yKXx8dm9pZCAwPT09X2V8fF9lLnVwZGF0ZVJ1bGUoQy5jb2wse3NvdXJjZTpPdH0pLHkuc2V0Q2VsbE1ldGEoQy5yb3csQy5jb2wsInNvdXJjZSIsT3QpLEMudmFsdWVzLmxlbmd0aD4wJiYoeS5zZXRDZWxsTWV0YShDLnJvdyxD''@;'; + put 'put ''LmNvbCwicmVuZGVyZXIiLCJhdXRvY29tcGxldGUiKSx5LnNldENlbGxNZXRhKEMucm93LEMuY29sLCJlZGl0b3IiLCJhdXRvY29tcGxldGUiKSx5LnNldENlbGxNZXRhKEMucm93LEMuY29sLCJzdHJpY3QiLEMuc3RyaWN0KSx5LnNldENlbGxNZXRhKEMucm93LEMuY29sLCJmaWx0ZXIiLCEx''@;'; + put 'put ''KSxudWxsPT09KEJlPXRoaXMuY3VycmVudEVkaXRSZWNvcmRWYWxpZGF0b3IpfHx2b2lkIDA9PT1CZXx8QmUudXBkYXRlUnVsZShDLmNvbCx7cmVuZGVyZXI6ImF1dG9jb21wbGV0ZSIsZWRpdG9yOiJhdXRvY29tcGxldGUiLHN0cmljdDpDLnN0cmljdCxmaWx0ZXI6ITF9KSksdGhpcy5yZVNl''@;'; + put 'put ''dEV4dGVuZGVkQ2VsbFZhbGlkYXRpb25WYWx1ZXMoQyx2b2lkIDAsaCx2KSx5LnJlbmRlcigpfSl9fXJlU2V0RXh0ZW5kZWRDZWxsVmFsaWRhdGlvblZhbHVlcyhoLHYseT0hMSxDKXtpZihoKXt2fHwodj1oLnJvdyk7Y29uc3Qgaj10aGlzLmdldEV4dGVuZGVkVmFsdWVzQnlDZWxsVmFsdWUo''@;'; + put 'put ''aCk7dGhpcy5zZXRFeHRlbmRlZFZhbHVlc1RvQ2VsbHMoaCx2LGoseSxDKX1lbHNlIGZvcihsZXQgaiBvZiB0aGlzLmNlbGxWYWxpZGF0aW9uU291cmNlKXtjb25zdCB1ZT10aGlzLmdldEV4dGVuZGVkVmFsdWVzQnlDZWxsVmFsdWUoaik7dGhpcy5zZXRFeHRlbmRlZFZhbHVlc1RvQ2VsbHMo''@;'; + put 'put ''aixqLnJvdyx1ZSx5LEMpfX1zZXRFeHRlbmRlZFZhbHVlc1RvQ2VsbHMoaCx2LHksQz0hMSxJKXt2YXIgaix1ZSxfZSxCZTtjb25zdCBOZT10aGlzLmhvdEluc3RhbmNlO2xldCBLZT1bXTtmb3IobGV0IGR0IG9mIHkpS2UuaW5kZXhPZihkdC5FWFRSQV9DT0xfTkFNRSk8MCYmS2UucHVzaChk''@;'; + put 'put ''dC5FWFRSQV9DT0xfTkFNRSk7Zm9yKGxldCBkdCBvZiBLZSl7Y29uc3QgT3Q9eS5maWx0ZXIoUXI9PlFyLkVYVFJBX0NPTF9OQU1FPT09ZHQpO2xldCAkdD1PdC5tYXAoUXI9PiJDIj09PVFyLkRJU1BMQVlfVFlQRT9Rci5SQVdfVkFMVUVfQ0hBUjpRci5SQVdfVkFMVUVfTlVNKTtjb25zdCBm''@;'; + put 'put ''bj1OZS5wcm9wVG9Db2woZHQpO3RoaXMuZGlzYWJsZWRCYXNpY0R5bmFtaWNDZWxsVmFsaWRhdGlvbk1hcC5maW5kKFFyPT5Rci5yb3c9PT12JiZRci5jb2w9PT1mbil8fHRoaXMuZGlzYWJsZWRCYXNpY0R5bmFtaWNDZWxsVmFsaWRhdGlvbk1hcC5wdXNoKHtyb3c6dixjb2w6Zm4sYWN0aXZl''@;'; + put 'put ''OiExfSksTmUuc2V0Q2VsbE1ldGEodixmbiwicmVuZGVyZXIiLCJhdXRvY29tcGxldGUiKSxOZS5zZXRDZWxsTWV0YSh2LGZuLCJlZGl0b3IiLCJhdXRvY29tcGxldGUiKSxOZS5zZXRDZWxsTWV0YSh2LGZuLCJzdHJpY3QiLGguc3RyaWN0KSxOZS5zZXRDZWxsTWV0YSh2LGZuLCJmaWx0ZXIi''@;'; + put 'put ''LCExKSxudWxsPT09KGo9dGhpcy5jdXJyZW50RWRpdFJlY29yZFZhbGlkYXRvcil8fHZvaWQgMD09PWp8fGoudXBkYXRlUnVsZShmbix7cmVuZGVyZXI6ImF1dG9jb21wbGV0ZSIsZWRpdG9yOiJhdXRvY29tcGxldGUiLHN0cmljdDpoLnN0cmljdCxmaWx0ZXI6ITF9KTtjb25zdCBpcj1OZS5n''@;'; + put 'put ''ZXRDZWxsTWV0YSh2LGZuKSxtcj1udWxsPT09KHVlPXRoaXMuZGNWYWxpZGF0b3IpfHx2b2lkIDA9PT11ZT92b2lkIDA6dWUuZ2V0UnVsZShpci5kYXRhfHwiIik7bGV0IFNyO21yJiYoU3I9bnVsbD09PShfZT10aGlzLmRjVmFsaWRhdG9yKXx8dm9pZCAwPT09X2U/dm9pZCAwOl9lLmdldERx''@;'; + put 'put ''RHJvcGRvd25Tb3VyY2UobXIpKSxTcnx8KFNyPVtdKSwibnVtZXJpYyI9PT0obnVsbD09bXI/dm9pZCAwOm1yLnR5cGUpPyhTcj10aGlzLmhlbHBlclNlcnZpY2UuY29udmVydEFycmF5VmFsdWVzKFNyLCJudW1iZXIiKSwkdD10aGlzLmhlbHBlclNlcnZpY2UuY29udmVydEFycmF5VmFsdWVz''@;'; + put 'put ''KCR0LCJudW1iZXIiKSk6KFNyPXRoaXMuaGVscGVyU2VydmljZS5jb252ZXJ0QXJyYXlWYWx1ZXMoU3IsInN0cmluZyIpLCR0PXRoaXMuaGVscGVyU2VydmljZS5jb252ZXJ0QXJyYXlWYWx1ZXMoJHQsInN0cmluZyIpKTtjb25zdCB3cj1bLi4ubmV3IFNldChbLi4uU3IsLi4uJHRdKV07aWYo''@;'; + put 'put ''TmUuc2V0Q2VsbE1ldGEodixmbiwic291cmNlIix3ciksbnVsbD09PShCZT10aGlzLmN1cnJlbnRFZGl0UmVjb3JkVmFsaWRhdG9yKXx8dm9pZCAwPT09QmV8fEJlLnVwZGF0ZVJ1bGUoZm4se3NvdXJjZTp3cn0pLEMpe2lmKEkmJkkhPT12KXJldHVybjtjb25zdCBRcj1PdC5maW5kKHlpPT4x''@;'; + put 'put ''PT09eWkuRk9SQ0VfRkxBRyk7UXImJnNldFRpbWVvdXQoKCk9PntOZS5zZXREYXRhQXRDZWxsKHYsZm4sIkMiPT09UXIuRElTUExBWV9UWVBFP1FyLlJBV19WQUxVRV9DSEFSOlFyLlJBV19WQUxVRV9OVU0sImZvcmNlX2NlbGxfdmFsaWRhdGlvbl92YWx1ZSIpLHRoaXMuY3VycmVudEVkaXRS''@;'; + put 'put ''ZWNvcmRJbmRleD09PXYmJih0aGlzLmRhdGFTb3VyY2VbdGhpcy5jdXJyZW50RWRpdFJlY29yZEluZGV4XVtkdF09IkMiPT09UXIuRElTUExBWV9UWVBFP1FyLlJBV19WQUxVRV9DSEFSOlFyLlJBV19WQUxVRV9OVU0pfSl9fX1nZXRFeHRlbmRlZFZhbHVlc0J5Q2VsbFZhbHVlKGgsdil7dmFy''@;'; + put 'put ''IHk7Y29uc3QgST10aGlzLmhvdEluc3RhbmNlLmdldERhdGFBdENlbGwodnx8aC5yb3csaC5jb2wpLGo9KGgudmFsdWVzLmZpbmQoTmU9Pk5lW3RoaXMuY2VsbFZhbGlkYXRpb25GaWVsZHMuUkFXX1ZBTFVFXT09PUkpfHxbXSlbdGhpcy5jZWxsVmFsaWRhdGlvbkZpZWxkcy5ESVNQTEFZX0lO''@;'; + put 'put ''REVYXSx1ZT1udWxsPT09KHk9aC5leHRlbmRlZF92YWx1ZXMpfHx2b2lkIDA9PT15P3ZvaWQgMDp5LmZpbHRlcihOZT0+TmVbMF09PT1qKSxfZT10aGlzLmhlbHBlclNlcnZpY2UuZGVlcENsb25lKHRoaXMuZXh0ZW5kZWRDZWxsVmFsaWRhdGlvbkZpZWxkcyksQmU9W107Zm9yKGxldCBOZSBv''@;'; + put 'put ''ZiB1ZXx8W10pe2xldCBLZT17fTtmb3IobGV0IGR0IG9mIE9iamVjdC5rZXlzKF9lKSlLZVtkdF09TmVbX2VbZHRdXTtCZS5wdXNoKEtlKX1yZXR1cm4gQmV9Y2hlY2tTYXZlKCl7aWYodGhpcy5nZXRSb3dzU3VibWl0dGluZ0NvdW50KCksMD09PXRoaXMucm93c0NoYW5nZWQucm93c0FkZGVk''@;'; + put 'put ''JiYwPT09dGhpcy5yb3dzQ2hhbmdlZC5yb3dzVXBkYXRlZCYmMD09PXRoaXMucm93c0NoYW5nZWQucm93c0RlbGV0ZWQpcmV0dXJuIHRoaXMuYmFkRWRpdFRpdGxlPSJObyBjaGFuZ2VzIHRvIHN1Ym1pdCIsdGhpcy5iYWRFZGl0Q2F1c2U9IlBsZWFzZSBtb2RpZnkgc29tZSB2YWx1ZXMgYW5k''@;'; + put 'put ''IHRyeSBhZ2Fpbi4iLHZvaWQodGhpcy5iYWRFZGl0PSEwKTtjb25zdCBoPXRoaXMuaG90SW5zdGFuY2U7dGhpcy5kYXRhU291cmNlQmVmb3JlU3VibWl0PXRoaXMuaGVscGVyU2VydmljZS5kZWVwQ2xvbmUodGhpcy5kYXRhU291cmNlKTtmb3IobGV0IHk9MDt5PHRoaXMuZGF0YVNvdXJjZS5s''@;'; + put 'put ''ZW5ndGg7eSsrKWRlbGV0ZSB0aGlzLmRhdGFTb3VyY2VbeV0ubm9MaW5rT3B0aW9uO2gudXBkYXRlU2V0dGluZ3Moe2RhdGE6dGhpcy5kYXRhU291cmNlLGNvbEhlYWRlcnM6dGhpcy5oZWFkZXJDb2x1bW5zLGNvbHVtbnM6dGhpcy5jZWxsVmFsaWRhdGlvbixtb2RpZnlDb2xXaWR0aDpmdW5j''@;'; + put 'put ''dGlvbih5LEMpe3JldHVybiB5PjUwMD81MDA6eX19LCExKSx0aGlzLnJlU2V0Q2VsbFZhbGlkYXRpb25WYWx1ZXMoKSxkLmNudD0wLGQubm9uUGtDbnQ9MDtsZXQgdj1oLmdldERhdGEoKTtpZih2Lmxlbmd0aD4xJiZoLmlzRW1wdHlSb3codi5sZW5ndGgtMSkmJmguYWx0ZXIoInJlbW92ZV9y''@;'; + put 'put ''b3ciLHYubGVuZ3RoLTEpLHRoaXMudmFsaWRhdGVQcmltYXJ5S2V5cygpLDAhPT10aGlzLmR1cGxpY2F0ZVBrSW5kZXhlcy5sZW5ndGgpcmV0dXJuIHRoaXMucGtEdXBzPSEwLHRoaXMuc3VibWl0PSExLHZvaWQgdGhpcy5jYW5jZWxTdWJtaXQoKTt0aGlzLnBrRHVwcz0hMSxoLnZhbGlkYXRl''@;'; + put 'put ''Um93cyh0aGlzLm1vZGlmZWRSb3dzSW5kZXhlcywoKT0+e3RoaXMuY2hlY2tJbnZhbGlkKCk/dGhpcy5ldmVudFNlcnZpY2Uuc2hvd0luZm9Nb2RhbCgiVmFsaWRhdGlvbiBlcnJvciIsIkludmFsaWQgVmFsdWVzIGFyZSBQcmVzZW50Iik6KHRoaXMuc3VibWl0PSEwLHRoaXMudmFsaWRhdGlv''@;'; + put 'put ''bkRvbmU9MSxzZXRUaW1lb3V0KCgpPT57ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZvcm1GaWVsZHNfOCIpLmZvY3VzKCl9KSl9KX1zYXZlVGFibGUoaCl7cmV0dXJuIG5vKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtpZih0aGlzLmhvdEluc3RhbmNlLmdldERhdGEoKSxoPSho''@;'; + put 'put ''PWguZmlsdGVyKEM9PiEhdGhpcy5kYXRhTW9kaWZpZWQuZmluZChqPT57Zm9yKGxldCB1ZSBvZiB0aGlzLmhlYWRlclBrcylpZihqW3VlXSE9PUNbdWVdKXJldHVybiExO3JldHVybiEwfSkpKS5tYXAoQz0+e2xldCBJPUMuX19fX19ERUxFVEVfX1RISVNfX1JFQ09SRF9fX19fO3JldHVybiBk''@;'; + put 'put ''ZWxldGUgQy5fX19fX0RFTEVURV9fVEhJU19fUkVDT1JEX19fX18sQy5fX19fX0RFTEVURV9fVEhJU19fUkVDT1JEX19fX189SSxPYmplY3Qua2V5cyhDKS5tYXAoaj0+e3ZhciB1ZTtjb25zdCBfZT1udWxsPT09KHVlPXRoaXMuZGNWYWxpZGF0b3IpfHx2b2lkIDA9PT11ZT92b2lkIDA6dWUu''@;'; + put 'put ''Z2V0UnVsZShqKTsibnVtZXJpYyI9PT0obnVsbD09X2U/dm9pZCAwOl9lLnR5cGUpJiYiLiI9PT1DW2pdJiYoQ1tqXT1udWxsKX0pLEN9KSx0aGlzLmxvZ2dlclNlcnZpY2UubG9nKCJEYXRhIHN1Ym1pdHRlZCIsaCksdGhpcy5jaGVja0ludmFsaWQoKSlyZXR1cm4gdGhpcy5ldmVudFNlcnZp''@;'; + put 'put ''Y2Uuc2hvd0luZm9Nb2RhbCgiVmFsaWRhdGlvbiBlcnJvciIsIkludmFsaWQgVmFsdWVzIGFyZSBQcmVzZW50IiksdGhpcy5jYW5jZWxTdWJtaXQoKSx2b2lkKHRoaXMuc3VibWl0PSExKTtpZih0aGlzLnZhbGlkYXRpb25Eb25lPTAsdGhpcy5zYXZlTG9hZGluZz0hMCxkLmNudDwxJiYwPT09''@;'; + put 'put ''dGhpcy5kdXBsaWNhdGVQa0luZGV4ZXMubGVuZ3RoJiZkLm5vblBrQ250PDEpe3RoaXMuc2F2ZUxvYWRpbmc9ITAsdGhpcy5kaXNhYmxlU3VibWl0PSExLHRoaXMuc3VibWl0PSEwO2xldCBDPXtBQ1RJT046IkxPQUQifTtpZih0aGlzLm1lc3NhZ2U9dGhpcy5tZXNzYWdlLnJlcGxhY2UoL1xu''@;'; + put 'put ''L2csIi4gIiksQy5NRVNTQUdFPXRoaXMubWVzc2FnZSxDLkxJQkRTPXRoaXMubGliZHMsdGhpcy5jb2xzJiYoeWllbGQgdGhpcy5zYXNTdG9yZVNlcnZpY2UudXBkYXRlVGFibGUoQyxoLCJTQVNDb250cm9sVGFibGUiLCJlZGl0b3JzL3N0YWdlZGF0YSIsdGhpcy4kZGF0YUZvcm1hdHMpLnRo''@;'; + put 'put ''ZW4oaj0+e2lmKHZvaWQgMCE9PWouc2FzcGFyYW1zKXJldHVybiB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKCIvc3RhZ2UvIitqLnNhc3BhcmFtc1swXS5EU0lEKSwhMH0pLmNhdGNoKGo9Pihjb25zb2xlLmxvZygiZXJyIixqKSxkLmNudD0wLGQubm9uUGtDbnQ9MCx0aGlzLmRpc2FibGVT''@;'; + put 'put ''dWJtaXQ9ITAsdGhpcy5zdWJtaXQ9ITEsITEpKSkpcmV0dXJufWQuY250Pj0xPyh0aGlzLnBrTnVsbD0hMCx0aGlzLnN1Ym1pdD0hMCk6dGhpcy5zdWJtaXQ9ITEsZC5ub25Qa0NudD49MT8odGhpcy5ub1BrTnVsbD0hMCx0aGlzLnN1Ym1pdD0hMCk6dGhpcy5zdWJtaXQ9ITEsdGhpcy5jYW5j''@;'; + put 'put ''ZWxTdWJtaXQoKSxkLmNudD0wLGQubm9uUGtDbnQ9MCx0aGlzLmRpc2FibGVTdWJtaXQ9ITB9KX12YWxpZGF0b3JSdWxlU291cmNlKGgpe3ZhciB2O3JldHVybiBudWxsPT09KHY9dGhpcy5kY1ZhbGlkYXRvcil8fHZvaWQgMD09PXY/dm9pZCAwOnYuZ2V0UnVsZShoKX1jaGVja0ludmFsaWQo''@;'; + put 'put ''KXtyZXR1cm4gdGhpcy5ob3RJbnN0YW5jZUNvbXBMaXN0LmZpcnN0LmNvbnRhaW5lci5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5odEludmFsaWQiKS5sZW5ndGg+MH1nb1RvRWRpdG9yKCl7dGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCgiLyIpfWNsb3NlUmVjb3JkRWRpdCho''@;'; + put 'put ''KXt0aGlzLmN1cnJlbnRFZGl0UmVjb3JkSW5kZXg9LTEsdGhpcy5jdXJyZW50RWRpdFJlY29yZD12b2lkIDAsdGhpcy5jdXJyZW50RWRpdFJlY29yZFZhbGlkYXRvcj12b2lkIDAsIkFERCI9PT10aGlzLnJlY29yZEFjdGlvbiYmIWgmJih0aGlzLmRhdGFTb3VyY2U9dGhpcy5oZWxwZXJTZXJ2''@;'; + put 'put ''aWNlLmRlZXBDbG9uZSh0aGlzLnByZXZEYXRhU291cmNlKSx0aGlzLmhvdEluc3RhbmNlLnVwZGF0ZVNldHRpbmdzKHtkYXRhOnRoaXMuZGF0YVNvdXJjZX0sITEpKX1jb25maXJtUmVjb3JkRWRpdChoPSEwKXtjb25zdCB2PXRoaXMuY3VycmVudEVkaXRSZWNvcmRJbmRleDtoJiYodGhpcy5j''@;'; + put 'put ''dXJyZW50RWRpdFJlY29yZEluZGV4PS0xKSx0aGlzLmNvbHVtbkhlYWRlci5tYXAoQz0+e3ZhciBJLGo7Y29uc3QgdWU9dGhpcy5jdXJyZW50RWRpdFJlY29yZFtDXSxfZT0ibnVtIj09PShudWxsPT09KGo9bnVsbD09PShJPXRoaXMuJGRhdGFGb3JtYXRzKXx8dm9pZCAwPT09ST92b2lkIDA6''@;'; + put 'put ''SS52YXJzW0NdKXx8dm9pZCAwPT09aj92b2lkIDA6ai50eXBlKSxCZT0oMCxidy5pc1NwZWNpYWxNaXNzaW5nKSh1ZSk7X2UmJiFpc05hTih1ZSkmJiFCZSYmKHRoaXMuY3VycmVudEVkaXRSZWNvcmRbQ109MSp1ZSl9KSx0aGlzLmRhdGFTb3VyY2Vbdl09dGhpcy5jdXJyZW50RWRpdFJlY29y''@;'; + put 'put ''ZCx0aGlzLmhvdFRhYmxlLmRhdGFbdl09dGhpcy5jdXJyZW50RWRpdFJlY29yZCx0aGlzLmhvdEluc3RhbmNlLnVwZGF0ZVNldHRpbmdzKHtkYXRhOnRoaXMuZGF0YVNvdXJjZX0sITEpLGgmJih0aGlzLmN1cnJlbnRFZGl0UmVjb3JkPXZvaWQgMCl9b25OZXh0UmVjb3JkKCl7dGhpcy5jb25m''@;'; + put 'put ''aXJtUmVjb3JkRWRpdCghMSksdGhpcy5jdXJyZW50RWRpdFJlY29yZEluZGV4PXRoaXMuY3VycmVudEVkaXRSZWNvcmRJbmRleD49dGhpcy5kYXRhU291cmNlLmxlbmd0aC0xPzA6dGhpcy5jdXJyZW50RWRpdFJlY29yZEluZGV4KzEsdGhpcy5lZGl0UmVjb3JkKG51bGwsdGhpcy5jdXJyZW50''@;'; + put 'put ''RWRpdFJlY29yZEluZGV4KX1vblByZXZpb3VzUmVjb3JkKCl7dGhpcy5jb25maXJtUmVjb3JkRWRpdCghMSksdGhpcy5jdXJyZW50RWRpdFJlY29yZEluZGV4PXRoaXMuY3VycmVudEVkaXRSZWNvcmRJbmRleDw9MD90aGlzLmRhdGFTb3VyY2UubGVuZ3RoLTE6dGhpcy5jdXJyZW50RWRpdFJl''@;'; + put 'put ''Y29yZEluZGV4LTEsdGhpcy5lZGl0UmVjb3JkKG51bGwsdGhpcy5jdXJyZW50RWRpdFJlY29yZEluZGV4KX1hZGRSZWNvcmRCdXR0b25DbGljaygpe3RoaXMucmVzdHJpY3Rpb25zLnJlc3RyaWN0QWRkUmVjb3JkP3RoaXMuZXZlbnRTZXJ2aWNlLnNob3dEZW1vTGltaXRNb2RhbCgpOnRoaXMu''@;'; + put 'put ''YWRkRWRpdE5ld1JlY29yZCgpfWFkZEVkaXROZXdSZWNvcmQoKXt0aGlzLmFkZFJlY29yZCgpLHNldFRpbWVvdXQoKCk9Pnt0aGlzLmVkaXRSZWNvcmQobnVsbCx0aGlzLmRhdGFTb3VyY2UubGVuZ3RoLTEsITApfSwxZTMpfWFkZFJlY29yZCgpe3RoaXMuYWRkUm93KCl9ZWRpdFJlY29yZCho''@;'; + put 'put ''LHYseSl7dmFyIEMsSTtpZighKHZvaWQgMD09PXZ8fHY8MHx8dGhpcy5yZXN0cmljdGlvbnMucmVzdHJpY3RFZGl0UmVjb3JkKSl7aWYodGhpcy5yZWNvcmRBY3Rpb249eT8iQUREIjoiRURJVCIsdGhpcy5ob3RUYWJsZS5yZWFkT25seSYmdGhpcy5lZGl0VGFibGUoITEseSksdGhpcy5jdXJy''@;'; + put 'put ''ZW50RWRpdFJlY29yZFZhbGlkYXRvcj10aGlzLmhlbHBlclNlcnZpY2UuZGVlcENsb25lKHRoaXMuZGNWYWxpZGF0b3IpLHkpdGhpcy5wcmV2RGF0YVNvdXJjZT10aGlzLmhlbHBlclNlcnZpY2UuZGVlcENsb25lKHRoaXMuZGF0YVNvdXJjZSksdGhpcy5wcmV2RGF0YVNvdXJjZS5wb3AoKTtl''@;'; + put 'put ''bHNle2NvbnN0IGo9dGhpcy5oZWxwZXJTZXJ2aWNlLmRlZXBDbG9uZSh0aGlzLmhvdEluc3RhbmNlLmdldENlbGxNZXRhQXRSb3codikpO2ZvcihsZXQgdWUgb2YgailpZih1ZSl7Y29uc3QgX2U9bnVsbD09PShDPXVlLnByb3ApfHx2b2lkIDA9PT1DP3ZvaWQgMDpDLnRvU3RyaW5nKCk7ZGVs''@;'; + put 'put ''ZXRlIHVlLnByb3AsZGVsZXRlIHVlLmRhdGEsbnVsbD09PShJPXRoaXMuY3VycmVudEVkaXRSZWNvcmRWYWxpZGF0b3IpfHx2b2lkIDA9PT1JfHxJLnVwZGF0ZVJ1bGUodWUuY29sLE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx1ZSkse2RhdGE6X2V9KSl9fXRoaXMuY3VycmVudEVk''@;'; + put 'put ''aXRSZWNvcmRJbmRleD12LHRoaXMuY3VycmVudEVkaXRSZWNvcmQ9dGhpcy5oZWxwZXJTZXJ2aWNlLmRlZXBDbG9uZSh0aGlzLmRhdGFTb3VyY2Vbdl0pfX10b2dnbGVIb3RQbHVnaW4oaCx2KXtjb25zdCB5PXRoaXMuaG90SW5zdGFuY2U7eS5iYXRjaCgoKT0+e2xldCBDPXkuZ2V0UGx1Z2lu''@;'; + put 'put ''KGgpO0M/KHNldFRpbWVvdXQoKCk9Pnt2P0MuZW5hYmxlUGx1Z2luKCk6Qy5kaXNhYmxlUGx1Z2luKCl9LDEwMCkseS5yZW5kZXIoKSk6Y29uc29sZS53YXJuKCJUb2dnbGUgSG90IFBsdWdpbiBmYWlsZWQgLSBQbHVnaW4gbmFtZWQ6ICIraCsiIC0gY291bGQgbm90IGJlIGZvdW5kLiIpfSl9''@;'; + put 'put ''ZHluYW1pY0NlbGxWYWxpZGF0aW9uRGlzYWJsZWQoaCx2KXtyZXR1cm4hIXRoaXMuZGlzYWJsZWRCYXNpY0R5bmFtaWNDZWxsVmFsaWRhdGlvbk1hcC5maW5kKEM9PkMucm93PT09aCYmQy5jb2w9PT12JiYhQy5hY3RpdmUpfWR5bmFtaWNDZWxsVmFsaWRhdGlvbihoLHYpe3ZhciB5O2lmKHRo''@;'; + put 'put ''aXMuZHluYW1pY0NlbGxWYWxpZGF0aW9uRGlzYWJsZWQoaCx2KSlyZXR1cm47Y29uc3QgQz10aGlzLmhvdEluc3RhbmNlO2lmKEMuZ2V0Q2VsbE1ldGEoaCx2KS5yZWFkT25seSlyZXR1cm47Y29uc3Qgaj1DLmdldERhdGFBdENlbGwoaCx2KSx1ZT10aGlzLmhlbHBlclNlcnZpY2UuZGVlcENs''@;'; + put 'put ''b25lKHRoaXMuZGF0YVNvdXJjZVtoXSksX2U9T2JqZWN0LmtleXModWUpW3ZdLEJlPXRoaXMuaGVscGVyU2VydmljZS5kZWxldGVLZXlzQW5kSGFzaCh1ZSxbX2UsIm5vTGlua09wdGlvbiJdLCExKSxOZT10aGlzLmNlbGxWYWxpZGF0aW9uU291cmNlLmZpbmRJbmRleChLZT0+S2UuaGFzaD09''@;'; + put 'put ''PUJlKTtpZihOZT4tMSl7bGV0IEtlPXRoaXMuY2VsbFZhbGlkYXRpb25Tb3VyY2VbTmVdLnZhbHVlcy5tYXAoJHQ9PiR0W3RoaXMuY2VsbFZhbGlkYXRpb25GaWVsZHMuUkFXX1ZBTFVFXSk7Y29uc3QgZHQ9KEMuZ2V0Q2VsbE1ldGEoaCx2KS5zb3VyY2V8fFtdKS5sZW5ndGg8MSxPdD0iICIh''@;'; + put 'put ''PT1qO0MuYmF0Y2goKCk9Pnt2YXIgJHQsZm4sTG4saXI7Y29uc3QgbXI9Qy5nZXRDZWxsTWV0YShoLHYpLFNyPW51bGw9PT0oJHQ9dGhpcy5kY1ZhbGlkYXRvcil8fHZvaWQgMD09PSR0P3ZvaWQgMDokdC5nZXRSdWxlKG1yLmRhdGF8fCIiKTtsZXQgd3I7U3ImJih3cj1udWxsPT09KGZuPXRo''@;'; + put 'put ''aXMuZGNWYWxpZGF0b3IpfHx2b2lkIDA9PT1mbj92b2lkIDA6Zm4uZ2V0RHFEcm9wZG93blNvdXJjZShTcikpLHdyfHwod3I9W10pLCJudW1lcmljIj09PShudWxsPT1Tcj92b2lkIDA6U3IudHlwZSk/KHdyPXRoaXMuaGVscGVyU2VydmljZS5jb252ZXJ0QXJyYXlWYWx1ZXMod3IsIm51bWJl''@;'; + put 'put ''ciIpLEtlPXRoaXMuaGVscGVyU2VydmljZS5jb252ZXJ0QXJyYXlWYWx1ZXMoS2UsIm51bWJlciIpKTood3I9dGhpcy5oZWxwZXJTZXJ2aWNlLmNvbnZlcnRBcnJheVZhbHVlcyh3ciwic3RyaW5nIiksS2U9dGhpcy5oZWxwZXJTZXJ2aWNlLmNvbnZlcnRBcnJheVZhbHVlcyhLZSwic3RyaW5n''@;'; + put 'put ''IikpO2NvbnN0IFFyPVsuLi5uZXcgU2V0KFsuLi53ciwuLi5LZV0pXTtpZihDLnNldENlbGxNZXRhKGgsdiwic291cmNlIixRciksbnVsbD09PShMbj10aGlzLmN1cnJlbnRFZGl0UmVjb3JkVmFsaWRhdG9yKXx8dm9pZCAwPT09TG58fExuLnVwZGF0ZVJ1bGUodix7c291cmNlOlFyfSksdGhp''@;'; + put 'put ''cy5jZWxsVmFsaWRhdGlvblNvdXJjZVtOZV0udmFsdWVzLmxlbmd0aD4wKXtjb25zdCB5aT10aGlzLmNlbGxWYWxpZGF0aW9uU291cmNlW05lXS5zdHJpY3Q7Qy5zZXRDZWxsTWV0YShoLHYsInJlbmRlcmVyIiwiYXV0b2NvbXBsZXRlIiksQy5zZXRDZWxsTWV0YShoLHYsImVkaXRvciIsImF1''@;'; + put 'put ''dG9jb21wbGV0ZSIpLEMuc2V0Q2VsbE1ldGEoaCx2LCJzdHJpY3QiLHlpKSxDLnNldENlbGxNZXRhKGgsdiwiZmlsdGVyIiwhMSksbnVsbD09PShpcj10aGlzLmN1cnJlbnRFZGl0UmVjb3JkVmFsaWRhdG9yKXx8dm9pZCAwPT09aXJ8fGlyLnVwZGF0ZVJ1bGUodix7cmVuZGVyZXI6ImF1dG9j''@;'; + put 'put ''b21wbGV0ZSIsZWRpdG9yOiJhdXRvY29tcGxldGUiLHN0cmljdDp5aSxmaWx0ZXI6ITF9KX10aGlzLnJlU2V0RXh0ZW5kZWRDZWxsVmFsaWRhdGlvblZhbHVlcyh0aGlzLmNlbGxWYWxpZGF0aW9uU291cmNlW05lXSxoLGR0JiZPdCksQy5yZW5kZXIoKX0pfWlmKE5lPDApe2NvbnN0IEtlPXtT''@;'; + put 'put ''QVNDb250cm9sVGFibGU6W3tsaWJkczp0aGlzLmxpYmRzLHZhcmlhYmxlX25tOl9lfV0sc291cmNlX3JvdzpbdWVdfSxkdD1udWxsPT09KHk9dGhpcy5kY1ZhbGlkYXRvcil8fHZvaWQgMD09PXk/dm9pZCAwOnkuZ2V0RHFEZXRhaWxzKF9lKS5maW5kKE90PT4iU09GVFNFTEVDVF9IT09LIj09''@;'; + put 'put ''PU90LlJVTEVfVFlQRXx8IkhBUkRTRUxFQ1RfSE9PSyI9PT1PdC5SVUxFX1RZUEUpO2R0JiYodGhpcy5jZWxsVmFsaWRhdGlvblNvdXJjZS5wdXNoKHtyb3c6aCxjb2w6dixzdHJpY3Q6IkhBUkRTRUxFQ1RfSE9PSyI9PT1kdC5SVUxFX1RZUEUsdmFsdWVzOltdLGhhc2g6QmUsY291bnQ6dGhp''@;'; + put 'put ''cy5jZWxsVmFsaWRhdGlvblNvdXJjZS5sZW5ndGgrMX0pLEMuc2V0Q2VsbE1ldGEoaCx2LCJyZW5kZXJlciIsVjV0KSx0aGlzLmN1cnJlbnRFZGl0UmVjb3JkTG9hZGluZ3MucHVzaCh2KSxDLnJlbmRlcigpLHRoaXMuc2FzU2VydmljZS5yZXF1ZXN0KCJlZGl0b3JzL2dldGR5bmFtaWNjb2x2''@;'; + put 'put ''YWxzIixLZSx2b2lkIDAse3N1cHByZXNzU3VjY2Vzc0Fib3J0TW9kYWw6ITAsc3VwcHJlc3NFcnJvckFib3J0TW9kYWw6ITB9KS50aGVuKE90PT57aWYoT3QuZHluYW1pY192YWx1ZXMubWFwKGZuPT5mblt0aGlzLmNlbGxWYWxpZGF0aW9uRmllbGRzLlJBV19WQUxVRV0pLmxlbmd0aD4wKXtj''@;'; + put 'put ''b25zdCBmbj10aGlzLmNlbGxWYWxpZGF0aW9uU291cmNlLmZpbmRJbmRleChMbj0+TG4uaGFzaD09PUJlKTtmbj4tMSYmKHRoaXMuY2VsbFZhbGlkYXRpb25Tb3VyY2VbZm5dPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0aGlzLmNlbGxWYWxpZGF0aW9uU291cmNlW2ZuXSkse3Jv''@;'; + put 'put ''dzpoLGNvbDp2LHZhbHVlczpPdC5keW5hbWljX3ZhbHVlcyxleHRlbmRlZF92YWx1ZXM6T3QuZHluYW1pY19leHRlbmRlZF92YWx1ZXN9KSksQy5zZXRDZWxsTWV0YShoLHYsInJlbmRlcmVyIix4bWUpLHRoaXMuY3VycmVudEVkaXRSZWNvcmRMb2FkaW5ncy5zcGxpY2UodGhpcy5jdXJyZW50''@;'; + put 'put ''RWRpdFJlY29yZExvYWRpbmdzLmluZGV4T2YodiksMSksQy5kZXNlbGVjdENlbGwoKSxDLnJlbmRlcigpLEMuYmF0Y2goKCk9PntzZXRUaW1lb3V0KCgpPT57dGhpcy5yZVNldENlbGxWYWxpZGF0aW9uVmFsdWVzKCEwLGgpLEMucmVuZGVyKCksQy52YWxpZGF0ZVJvd3MoW2hdKX0sMTAwKX0p''@;'; + put 'put ''fWlmKEMuc2V0Q2VsbE1ldGEoaCx2LCJyZW5kZXJlciIseG1lKSx0aGlzLmN1cnJlbnRFZGl0UmVjb3JkTG9hZGluZ3Muc3BsaWNlKHRoaXMuY3VycmVudEVkaXRSZWNvcmRMb2FkaW5ncy5pbmRleE9mKHYpLDEpLEMuZGVzZWxlY3RDZWxsKCksQy5yZW5kZXIoKSx0aGlzLmNlbGxWYWxpZGF0''@;'; + put 'put ''aW9uU291cmNlLmxlbmd0aD50aGlzLnZhbGlkYXRpb25UYWJsZUxpbWl0KXtjb25zdCBmbj10aGlzLmNlbGxWYWxpZGF0aW9uU291cmNlLnJlZHVjZSgoaXIsbXIpPT5pci5jb3VudDxtci5jb3VudD9pcjptciksTG49dGhpcy5jZWxsVmFsaWRhdGlvblNvdXJjZS5pbmRleE9mKGZuKTt0aGlz''@;'; + put 'put ''LmNlbGxWYWxpZGF0aW9uU291cmNlLnNwbGljZShMbiwxKX19KS5jYXRjaChPdD0+e2NvbnN0ICR0PXRoaXMuY2VsbFZhbGlkYXRpb25Tb3VyY2UuZmluZEluZGV4KGZuPT5mbi5oYXNoPT09QmUpO3RoaXMuY2VsbFZhbGlkYXRpb25Tb3VyY2Uuc3BsaWNlKCR0LDEpLEMuYmF0Y2goKCk9PntD''@;'; + put 'put ''LnNldENlbGxNZXRhKGgsdiwicmVuZGVyZXIiLE41dCksQy5yZW5kZXIoKX0pLHRoaXMuY3VycmVudEVkaXRSZWNvcmRMb2FkaW5ncy5zcGxpY2UodGhpcy5jdXJyZW50RWRpdFJlY29yZExvYWRpbmdzLmluZGV4T2YodiksMSksdGhpcy5jdXJyZW50RWRpdFJlY29yZEVycm9ycy5wdXNoKHYp''@;'; + put 'put ''LHNldFRpbWVvdXQoKCk9PntDLnNldENlbGxNZXRhKGgsdiwicmVuZGVyZXIiLHhtZSksQy5yZW5kZXIoKSx0aGlzLmN1cnJlbnRFZGl0UmVjb3JkRXJyb3JzLnNwbGljZSh0aGlzLmN1cnJlbnRFZGl0UmVjb3JkRXJyb3JzLmluZGV4T2YodiksMSl9LDNlMyksdGhpcy5yZVNldENlbGxWYWxp''@;'; + put 'put ''ZGF0aW9uVmFsdWVzKCksdGhpcy5sb2dnZXJTZXJ2aWNlLmxvZygiZ2V0ZHluYW1pY2NvbHZhbHMgZXJyb3I6IixPdCl9KSl9fWNoZWNrRW1wdHlSb3dXaGVuRmlsdGVyKCl7dGhpcy56ZXJvRmlsdGVyUm93cz0hMSx2b2lkIDAhPT10aGlzLmZpbHRlcl9wayYmMT09PXRoaXMuaG90VGFibGUu''@;'; + put 'put ''ZGF0YS5sZW5ndGgmJltudWxsLCIiXS5pbmNsdWRlcyh0aGlzLmhvdFRhYmxlLmRhdGFbMF1bdGhpcy5oZWFkZXJQa3NbMF1dKSYmKHRoaXMuemVyb0ZpbHRlclJvd3M9ITApfW9uUmVjb3JkSW5wdXRGb2N1cyhoKXt0aGlzLmR5bmFtaWNDZWxsVmFsaWRhdGlvbih0aGlzLmN1cnJlbnRFZGl0''@;'; + put 'put ''UmVjb3JkSW5kZXgsaC5jb2xOYW1lKX1leGVjdXRlRHluYW1pY0NlbGxWYWxpZGF0aW9uSWZBcHBsaWNhYmxlKGgsdix5KXtjb25zdCBDPXRoaXMuaGVscGVyU2VydmljZS5kZWxldGVLZXlzQW5kSGFzaCh0aGlzLmRhdGFTb3VyY2VbeV0sW2gsIm5vTGlua09wdGlvbiJdKSxJPXRoaXMuY2Vs''@;'; + put 'put ''bFZhbGlkYXRpb25Tb3VyY2UuZmluZChqPT5qLmhhc2g9PT1DJiZ2PT09ai5jb2wpO2lmKEkmJkkuZXh0ZW5kZWRfdmFsdWVzJiZJLmV4dGVuZGVkX3ZhbHVlcy5sZW5ndGg+MCl7Y29uc3Qgaj10aGlzLmdldEV4dGVuZGVkVmFsdWVzQnlDZWxsVmFsdWUoSSx5KTt0aGlzLnNldEV4dGVuZGVk''@;'; + put 'put ''VmFsdWVzVG9DZWxscyhJLHksaiwhMCl9fW5nT25Jbml0KCl7cmV0dXJuIG5vKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXt0aGlzLmFwcFNlcnZpY2UuaG90X2xpY2Vuc2Vfa2V5LnN1YnNjcmliZSh2PT57dGhpcy5ob3RUYWJsZS5saWNlbnNlS2V5PXZ9KSx0aGlzLl9xdWVyeT10''@;'; + put 'put ''aGlzLnNhc1N0b3JlU2VydmljZS5xdWVyeS5zdWJzY3JpYmUodj0+e3RoaXMud2hlcmVTdHJpbmc9di5zdHJpbmcsdGhpcy5jbGF1c2VzPXYub2JqLHRoaXMubGliZHM9di5saWJkc30pO2xldCBoPXt9O3ZvaWQgMCE9PXRoaXMucm91dGUuc25hcHNob3QucGFyYW1zLmxpYk1lbSYmKHRoaXMu''@;'; + put 'put ''bGliZHM9dGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbXMubGliTWVtLHRoaXMuZmlsdGVyX3BrPXRoaXMucm91dGUuc25hcHNob3QucGFyYW1zLmZpbHRlcklkLCJlZGl0LXJlY29yZCI9PT10aGlzLnJvdXRlLnNuYXBzaG90LnVybFswXS5wYXRoJiYodGhpcy5yZWNvcmRBY3Rpb249dm9pZCAw''@;'; + put 'put ''IT09dGhpcy5maWx0ZXJfcGs/IkVESVQiOiJBREQiKSxoLkxJQkRTPXRoaXMubGliZHMsdm9pZCAwIT09dGhpcy5maWx0ZXJfcGsmJihoLkZJTFRFUl9SSz1wYXJzZUludCh0aGlzLmZpbHRlcl9waykpLGguT1VUREVTVD0iV0VCIix0aGlzLmxpYmRzJiYobmkuZWRpdG9yLmxpYnJhcnk9dGhp''@;'; + put 'put ''cy5saWJkcy5zcGxpdCgiLiIpWzBdLG5pLmVkaXRvci50YWJsZT10aGlzLmxpYmRzLnNwbGl0KCIuIilbMV0pKSx0aGlzLmxpYmRzJiYodGhpcy5nZXRkYXRhRXJyb3I9ITEseWllbGQgdGhpcy5zYXNTdG9yZVNlcnZpY2UuY2FsbFNlcnZpY2UoaCwiU0FTQ29udHJvbFRhYmxlIiwiZWRpdG9y''@;'; + put 'put ''cy9nZXRkYXRhIix0aGlzLmxpYmRzKS50aGVuKHY9Pnt0aGlzLmluaXRTZXR1cCh2KX0pLmNhdGNoKHY9Pnt0aGlzLmdldGRhdGFFcnJvcj0hMCx0aGlzLnRhYmxlVHJ1ZT0hMH0pKX0pfW5nQWZ0ZXJWaWV3SW5pdCgpe2NvbnN0IGg9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImhvdC1kaXNw''@;'; + put 'put ''bGF5LWxpY2Vuc2UtaW5mbyIpO2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkZW1vLWJhbm5lciIpP2h8fCh0aGlzLmhvdFRhYmxlLmhlaWdodCs9MzApOnRoaXMuaG90VGFibGUuaGVpZ2h0Kz1oPzM1OjYwfWluaXRTZXR1cChoKXtpZih0aGlzLmhvdEluc3RhbmNlPXRoaXMuaG90UmVnaXN0''@;'; + put 'put ''ZXJlci5nZXRJbnN0YW5jZSgiaG90SW5zdGFuY2UiKSx0aGlzLmdldGRhdGFFcnJvcnx8IWh8fCFoLmRhdGEpcmV0dXJuO3RoaXMuY29scz1oLmRhdGEuY29scyx0aGlzLmRzbWV0YT1oLmRhdGEuZHNtZXRhO2NvbnN0IHY9dGhpcy5ob3RJbnN0YW5jZSx5PWguZGF0YS5hcHByb3ZlcnM7dGhp''@;'; + put 'put ''cy5jb2xzJiYodGhpcy5oZWFkZXJBcnJheT0oZD0+e2NvbnN0IGc9W107Zm9yKGxldCBoIG9mIGQpIl9fX19fREVMRVRFX19USElTX19SRUNPUkRfX19fXyIhPT1oLk5BTUUmJmcucHVzaChoLk5BTUUpO3JldHVybiBnfSkodGhpcy5jb2xzKSkseS5mb3JFYWNoKEk9Pnt0aGlzLmFwcHJvdmVy''@;'; + put 'put ''cy5wdXNoKEkuUEVSU09OTkFNRSl9KSx0aGlzLnRhYmxlVHJ1ZT0hMCx0aGlzLmxpYmRzPWgubGliZHMsdGhpcy5ob3RUYWJsZS5kYXRhPWguZGF0YS5zYXNkYXRhLHRoaXMuaGVhZGVyQ29sdW1ucz1oLmRhdGEuc2FzcGFyYW1zWzBdLkNPTEhFQURFUlMuc3BsaXQoIiwiKSx0aGlzLmhlYWRl''@;'; + put 'put ''clBrcz1oLmRhdGEuc2FzcGFyYW1zWzBdLlBLLnNwbGl0KCIgIiksdGhpcy5jb2x1bW5MZXZlbFNlY3VyaXR5RmxhZz0hIWguZGF0YS5zYXNwYXJhbXNbMF0uQ0xTX0ZMQUcsdGhpcy5jb2x1bW5MZXZlbFNlY3VyaXR5RmxhZyYmdGhpcy5zZXRSZXN0cmljdGlvbnMoe3Jlc3RyaWN0QWRkUm93''@;'; + put 'put ''OiEwLHJlbW92ZUVkaXRSZWNvcmRCdXR0b246ITAscmVtb3ZlQWRkUmVjb3JkQnV0dG9uOiEwfSksdGhpcy5jaGVja0VtcHR5Um93V2hlbkZpbHRlcigpLC0xIT09dGhpcy5oZWFkZXJDb2x1bW5zLmluZGV4T2YoIl9fX19fREVMRVRFX19USElTX19SRUNPUkRfX19fXyIpJiYodGhpcy5oZWFk''@;'; + put 'put ''ZXJDb2x1bW5zW3RoaXMuaGVhZGVyQ29sdW1ucy5pbmRleE9mKCJfX19fX0RFTEVURV9fVEhJU19fUkVDT1JEX19fX18iKV09IkRlbGV0ZT8iKSx0aGlzLmhlYWRlckFycmF5PXRoaXMuaGVhZGVyQ29sdW1ucy5zbGljZSgxKSwiIiE9PWguZGF0YS5zYXNwYXJhbXNbMF0uRFRWQVJTJiYodGhp''@;'; + put 'put ''cy5kYXRlSGVhZGVycz1oLmRhdGEuc2FzcGFyYW1zWzBdLkRUVkFSUy5zcGxpdCgiICIpKSwiIiE9PWguZGF0YS5zYXNwYXJhbXNbMF0uVE1WQVJTJiYodGhpcy50aW1lSGVhZGVycz1oLmRhdGEuc2FzcGFyYW1zWzBdLlRNVkFSUy5zcGxpdCgiICIpKSwiIiE9PWguZGF0YS5zYXNwYXJhbXNb''@;'; + put 'put ''MF0uRFRUTVZBUlMmJih0aGlzLmRhdGVUaW1lSGVhZGVycz1oLmRhdGEuc2FzcGFyYW1zWzBdLkRUVE1WQVJTLnNwbGl0KCIgIikpLGguZGF0YS54bF9ydWxlcy5sZW5ndGg+MCYmKHRoaXMueGxSdWxlcz10aGlzLmhlbHBlclNlcnZpY2UuZGVlcENsb25lKGguZGF0YS54bF9ydWxlcykpLHRo''@;'; + put 'put ''aXMuZGNWYWxpZGF0b3I9bmV3IFI1dChoLmRhdGEuc2FzcGFyYW1zWzBdLGguZGF0YS4kc2FzZGF0YSx0aGlzLmNvbHMsaC5kYXRhLmRxcnVsZXMsaC5kYXRhLmRxZGF0YSksdGhpcy5jZWxsVmFsaWRhdGlvbj10aGlzLmRjVmFsaWRhdG9yLmdldFJ1bGVzKCksdGhpcy5kYXRhU291cmNlPWgu''@;'; + put 'put ''ZGF0YS5zYXNkYXRhLHRoaXMuJGRhdGFGb3JtYXRzPWguZGF0YS4kc2FzZGF0YTtmb3IobGV0IEk9MDtJPHRoaXMuaGVhZGVyQ29sdW1ucy5sZW5ndGg7SSsrKXRoaXMuaG90RGF0YVNjaGVtYVt0aGlzLmNlbGxWYWxpZGF0aW9uW0ldLmRhdGFdPUI1dCh0aGlzLmNlbGxWYWxpZGF0aW9uW0ld''@;'; + put 'put ''LnR5cGUsdGhpcy5jZWxsVmFsaWRhdGlvbltJXSk7dGhpcy5jaGVja1Jvd0xpbWl0KCksdi51cGRhdGVTZXR0aW5ncyh7ZGF0YTp0aGlzLmRhdGFTb3VyY2UsY29sSGVhZGVyczp0aGlzLmhlYWRlckNvbHVtbnMsY29sdW1uczp0aGlzLmNlbGxWYWxpZGF0aW9uLGhlaWdodDp0aGlzLmhvdFRh''@;'; + put 'put ''YmxlLmhlaWdodCxzdHJldGNoSDoiYWxsIixyZWFkT25seTp0aGlzLmhvdFRhYmxlLnJlYWRPbmx5LGhpZGRlbkNvbHVtbnM6e2luZGljYXRvcnM6ITAsY29sdW1uczp0aGlzLmRjVmFsaWRhdG9yLmdldEhpZGRlbkNvbHVtbnMoKX0sbW9kaWZ5Q29sV2lkdGg6ZnVuY3Rpb24oSSxqKXtyZXR1''@;'; + put 'put ''cm4gMD09PWo/NjA6ST41MDA/NTAwOkl9LG1hbnVhbENvbHVtbkZyZWV6ZTohMSxtdWx0aUNvbHVtblNvcnRpbmc6ITAsbWFudWFsQ29sdW1uUmVzaXplOiEwLGZpbHRlcnM6ITEsbWFudWFsUm93UmVzaXplOiEwLHZpZXdwb3J0Um93UmVuZGVyaW5nT2Zmc2V0OjUwLHJvd0hlYWRlcnM6ST0+''@;'; + put 'put ''IiAiLHJvd0hlYWRlcldpZHRoOjE1LHJvd0hlaWdodHM6MjQsbWF4Um93czp0aGlzLmFwcFNlcnZpY2UuZGVtb0xpbWl0cy5yb3dzX2FsbG93ZWR8fDEvMCxpbnZhbGlkQ2VsbENsYXNzTmFtZToiaHRJbnZhbGlkIixkcm9wZG93bk1lbnU6e2l0ZW1zOnttYWtlX3JlYWRfb25seTp7bmFtZToi''@;'; + put 'put ''bWFrZV9yZWFkX29ubHkifSxhbGlnbm1lbnQ6e25hbWU6ImFsaWdubWVudCJ9LHNwMTp7bmFtZToiLS0tLS0tLS0tIn0saW5mbzp7bmFtZToidGVzdCBpbmZvIixyZW5kZXJlcjooSSxqLHVlLF9lLEJlLE5lKT0+e3ZhciBLZSxkdDtjb25zdCBPdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJz''@;'; + put 'put ''cGFuIik7bGV0ICR0LGZuPSJObyBpbmZvIGZvdW5kIjtpZih0aGlzLmhvdEluc3RhbmNlKXtjb25zdCBMbj10aGlzLmhvdEluc3RhbmNlLmdldFNlbGVjdGVkKCl8fFtdLGlyPUxuP0xuWzBdWzFdOi0xLG1yPW51bGw9PT0oS2U9dGhpcy5ob3RJbnN0YW5jZSl8fHZvaWQgMD09PUtlP3ZvaWQg''@;'; + put 'put ''MDpLZS5jb2xUb1Byb3AoaXIpOyR0PW51bGw9PT0oZHQ9dGhpcy4kZGF0YUZvcm1hdHMpfHx2b2lkIDA9PT1kdD92b2lkIDA6ZHQudmFyc1ttcl0sJHQmJihmbj1gTEFCRUw6ICR7bnVsbD09JHQ/dm9pZCAwOiR0LmxhYmVsfTxicj5UWVBFOiAke251bGw9PSR0P3ZvaWQgMDokdC50eXBlfTxi''@;'; + put 'put ''cj5MRU5HVEg6ICR7bnVsbD09JHQ/dm9pZCAwOiR0Lmxlbmd0aH08YnI+Rk9STUFUOiAke251bGw9PSR0P3ZvaWQgMDokdC5mb3JtYXR9YCl9cmV0dXJuIE90LmlubmVySFRNTD1mbixPdH19fX0sZGF0YVNjaGVtYTp0aGlzLmhvdERhdGFTY2hlbWEsY29udGV4dE1lbnU6dGhpcy5ob3RUYWJs''@;'; + put 'put ''ZS5zZXR0aW5ncy5jb250ZXh0TWVudSxjdXJyZW50SGVhZGVyQ2xhc3NOYW1lOiJjdXN0b21IIixhZnRlckdldENvbEhlYWRlcjooSSxqKT0+e2NvbnN0IHVlPXRoaXMuY29sdW1uSGVhZGVyW0ldLF9lPXVlJiZ0aGlzLmlzQ29sUGsodWUpLEJlPXVlJiZ0aGlzLmlzUmVhZG9ubHlDb2wodWUp''@;'; + put 'put ''O19lJiZqLmNsYXNzTGlzdC5hZGQoInByaW1hcnlLZXlIZWFkZXJTdHlsZSIpLEJlJiYhX2UmJmouY2xhc3NMaXN0LmFkZCgicmVhZG9ubHlDZWxsIiksMD09PUkmJmouY2xhc3NMaXN0LmFkZCgiZmlyc3RDb2x1bW5IZWFkZXJTdHlsZSIpfSxhZnRlckdldENlbGxNZXRhOihJLGosdWUpPT57''@;'; + put 'put ''aiYmdGhpcy5pc1JlYWRvbmx5Q29sKGopJiYodWUuY2xhc3NOYW1lPSJyZWFkb25seUNlbGwiKX19LCExKSx0aGlzLmhvdFRhYmxlLmhpZGRlbj0hMSx0aGlzLnRvZ2dsZUhvdFBsdWdpbigiY29udGV4dE1lbnUiLCExKSx0aGlzLnF1ZXJ5VGV4dD1oLmRhdGEuc2FzcGFyYW1zWzBdLkZJTFRF''@;'; + put 'put ''Ul9URVhULHRoaXMuY29sdW1uSGVhZGVyPWguZGF0YS5zYXNwYXJhbXNbMF0uQ09MSEVBREVSUy5zcGxpdCgiLCIpLHRoaXMuY29sdW1uSGVhZGVyWzBdPSJEZWxldGU/Iix0aGlzLnJlYWRPbmx5RmllbGRzPWguZGF0YS5zYXNwYXJhbXNbMF0uUEtDTlQ7bGV0IEM9ZG9jdW1lbnQuZ2V0RWxl''@;'; + put 'put ''bWVudEJ5SWQoImhvdEluc3RhbmNlIik7QyYmQy5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLEk9Pnt0aGlzLnVwbG9hZFByZXZpZXd8fHRoaXMuaG90Q2xpY2tlZCgpLHNldFRpbWVvdXQoKCk9PntsZXQgaj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuZGVidWctc3dpdGNoLWl0ZW0i''@;'; + put 'put ''KXx8dm9pZCAwO2omJmouY2xpY2soKX0sMTAwKX0pLHYuYWRkSG9vaygiYWZ0ZXJTZWxlY3Rpb24iLChJLGosdWUsX2UsQmUsTmUpPT57ST09PXVlJiZqPT09X2UmJiExPT09dGhpcy5ob3RUYWJsZS5yZWFkT25seSYmdGhpcy5keW5hbWljQ2VsbFZhbGlkYXRpb24oSSxqKX0pLHYuYWRkSG9v''@;'; + put 'put ''aygiYmVmb3JlS2V5RG93biIsST0+e2NvbnN0IGo9dGhpcy5ob3RJbnN0YW5jZS5nZXRTZWxlY3RlZCgpLHVlPWomJmpbMF07aWYodWUpe2NvbnN0IF9lPXVlWzBdLE5lPXVlWzFdLEtlPXVlWzNdO2lmKF9lPT09dWVbMl0mJk5lPT09S2Upe2NvbnN0IGR0PXRoaXMuaG90SW5zdGFuY2UuZ2V0''@;'; + put 'put ''Q2VsbE1ldGEoX2UsTmUpO2R0JiYhMT09PWR0LmZpbHRlciYmdGhpcy5ob3RJbnN0YW5jZS5zZXRDZWxsTWV0YShfZSxOZSwiZmlsdGVyIiwhMCl9fX0pLHYuYWRkSG9vaygiYWZ0ZXJDaGFuZ2UiLChJLGopPT57aWYoImVkaXQiPT09ail7Y29uc3QgdWU9dGhpcy5ob3RJbnN0YW5jZSxfZT1J''@;'; + put 'put ''WzBdWzBdLEJlPUlbMF1bMV0sTmU9dWUucHJvcFRvQ29sKEJlKSxLZT11ZS5nZXRDZWxsTWV0YShfZSxOZSk7S2UmJiExPT09S2UuZmlsdGVyJiZ1ZS5zZXRDZWxsTWV0YShfZSxOZSwiZmlsdGVyIiwhMCksdGhpcy5leGVjdXRlRHluYW1pY0NlbGxWYWxpZGF0aW9uSWZBcHBsaWNhYmxlKEJl''@;'; + put 'put ''LE5lLF9lKX19KSx2LmFkZEhvb2soImFmdGVyUmVuZGVyIixJPT57dGhpcy5ldmVudFNlcnZpY2UuZGlzcGF0Y2hFdmVudCgicmVzaXplIil9KSx2LmFkZEhvb2soImFmdGVyQ3JlYXRlUm93IiwoSSxqKT0+e2xldCB1ZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIud3RIb2xkZXIiKTtzZXRU''@;'; + put 'put ''aW1lb3V0KCgpPT57dWUmJih1ZS5zY3JvbGxUb3A9dWUuc2Nyb2xsSGVpZ2h0KX0pfSksdi5hZGRIb29rKCJiZWZvcmVQYXN0ZSIsKEksaik9Pntjb25zdCB1ZT1qWzBdLnN0YXJ0Q29sO0lbMF09SVswXS5tYXAoKF9lLEJlKT0+e3ZhciBOZSxLZTtjb25zdCBPdD0ibnVtIj09PShudWxsPT09''@;'; + put 'put ''KEtlPW51bGw9PT0oTmU9dGhpcy4kZGF0YUZvcm1hdHMpfHx2b2lkIDA9PT1OZT92b2lkIDA6TmUudmFyc1t0aGlzLmNvbHVtbkhlYWRlclt1ZStCZV1dKXx8dm9pZCAwPT09S2U/dm9pZCAwOktlLnR5cGUpLCR0PSgwLGJ3LmlzU3BlY2lhbE1pc3NpbmcpKF9lKTtyZXR1cm4gT3QmJiFpc05h''@;'; + put 'put ''TihfZSkmJiEkdCYmKF9lKj0xKSxfZX0pfSksdi5hZGRIb29rKCJhZnRlclJlbW92ZVJvdyIsKCk9Pnt0aGlzLmNoZWNrUm93TGltaXQoKX0pLHYuYWRkSG9vaygiYWZ0ZXJDcmVhdGVSb3ciLCgpPT57dGhpcy5jaGVja1Jvd0xpbWl0KCl9KSx0aGlzLnVwbG9hZFVybD0ic2VydmljZXMvZWRp''@;'; + put 'put ''dG9ycy9sb2FkZmlsZSIsbnVsbCE9PXRoaXMucmVjb3JkQWN0aW9uJiYoIkFERCI9PT10aGlzLnJlY29yZEFjdGlvbj8odGhpcy5hZGRSZWNvcmQoKSx0aGlzLmVkaXRSZWNvcmQobnVsbCx0aGlzLmRhdGFTb3VyY2UubGVuZ3RoLTEsITApKToxPT09dGhpcy5kYXRhU291cmNlLmxlbmd0aCYm''@;'; + put 'put ''dGhpcy5lZGl0UmVjb3JkKG51bGwsMCkpLGguZGF0YS5xdWVyeS5sZW5ndGg+MCYmKCJob21lIj09PW5pLnJvb3RQYXJhbXx8ImVkaXRvciI9PT1uaS5yb290UGFyYW0pJiYwPT09bmkuZWRpdG9yLmZpbHRlci5jbGF1c2VzLmxlbmd0aCYmKG5pLmVkaXRvci5maWx0ZXIucXVlcnk9dGhpcy5o''@;'; + put 'put ''ZWxwZXJTZXJ2aWNlLmRlZXBDbG9uZShoLmRhdGEucXVlcnkpLG5pLmVkaXRvci5maWx0ZXIubGliZHM9dGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbXMubGliTWVtLHRoaXMuc2FzU3RvcmVTZXJ2aWNlLmluaXRpYWxpemVHbG9iYWxGaWx0ZXJDbGF1c2UoImVkaXQiLHRoaXMuY29scykpLHYu''@;'; + put 'put ''cmVuZGVyKCksc2V0VGltZW91dCgoKT0+e2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5pbmZvQmFyIikmJih0aGlzLmhvdFRhYmxlLmhlaWdodC09NDUpLHRoaXMucmVzdHJpY3Rpb25zLnJlc3RyaWN0RWRpdFJlY29yZCYmKHRoaXMuaG90VGFibGUuaGVpZ2h0Kz0yMCksdi51cGRhdGVTZXR0''@;'; + put 'put ''aW5ncyh7aGVpZ2h0OnRoaXMuaG90VGFibGUuaGVpZ2h0fSl9KX19cmV0dXJuIGQuY250PTAsZC5ub25Qa0NudD0wLGQubGFzdENlbGw9MCxkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKEt0KFI3KSxLdChtdSksS3Qoc2MpLEt0KGtnKSxLdChYYyksS3QoWmwpLEt0''@;'; + put 'put ''KFB1KSxLdChnMiksS3QoZDEpLEt0KGtPKSl9LGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQsc2VsZWN0b3JzOltbImFwcC1lZGl0b3IiXV0sdmlld1F1ZXJ5OmZ1bmN0aW9uKGgsdil7aWYoMSZoJiYodm8oX210LDcpLHZvKENtdCw1KSx2byhrbXQsNSksdm8oU210LDUpLHZvKE1tdCw1KSksMiZo''@;'; + put 'put ''KXtsZXQgeTtIaSh5PSRpKCkpJiYodi5odD15LmZpcnN0KSxIaSh5PSRpKCkpJiYodi51cGxvYWRTdGF0ZXJDb21wTGlzdD15KSxIaSh5PSRpKCkpJiYodi5xdWVyeUZpbHRlckNvbXBMaXN0PXkpLEhpKHk9JGkoKSkmJih2LmhvdEluc3RhbmNlQ29tcExpc3Q9eSksSGkoeT0kaSgpKSYmKHYu''@;'; + put 'put ''ZmlsZVVwbG9hZElucHV0Q29tcExpc3Q9eSl9fSxob3N0QXR0cnM6WzEsImNvbnRlbnQtY29udGFpbmVyIl0sZGVjbHM6MTY1LHZhcnM6NzAsY29uc3RzOltbMSwiY29udGVudC1hcmVhIl0sWyJuZzJGaWxlRHJvcCIsIiIsMSwicmVsYXRpdmUiLDMsInVwbG9hZGVyIiwiY2xyTW9kYWxTaXpl''@;'; + put 'put ''IiwiY2xyTW9kYWxTdGF0aWNCYWNrZHJvcCIsImNsck1vZGFsQ2xvc2FibGUiLCJjbHJNb2RhbE9wZW4iLCJmaWxlT3ZlciIsIm9uRmlsZURyb3AiLCJjbHJNb2RhbE9wZW5DaGFuZ2UiXSxbMSwibW9kYWwtdGl0bGUiXSxbMSwibW9kYWwtYm9keSJdLFsxLCJkcm9wLWFyZWEiXSxbMSwiY2xy''@;'; + put 'put ''LWNvbC1tZC0xMiJdLFsxLCJjbHItcm93IiwiY2FyZC1ibG9jayIsIm10LTE1IiwiZC1mbGV4IiwianVzdGlmeS1jb250ZW50LWJldHdlZW4iXSxbMSwiY2xyLWNvbC1tZC1hdXRvIl0sWzEsImVuY29kaW5nLWJsb2NrIl0sWyJjbHJJbmxpbmUiLCIiLDEsIm10LTAtaSJdLFsidHlwZSIsInJh''@;'; + put 'put ''ZGlvIiwiY2xyUmFkaW8iLCIiLCJ2YWx1ZSIsIlVURi04IiwibmFtZSIsImVuY29kaW5nIiwzLCJuZ01vZGVsIiwiZGlzYWJsZWQiLCJuZ01vZGVsQ2hhbmdlIl0sWyJ0eXBlIiwicmFkaW8iLCJjbHJSYWRpbyIsIiIsInZhbHVlIiwiV0xBVElOMSIsIm5hbWUiLCJlbmNvZGluZyIsMywibmdN''@;'; + put 'put ''b2RlbCIsImRpc2FibGVkIiwibmdNb2RlbENoYW5nZSJdLFsiY2xhc3MiLCJjbHItY29sLW1kLTMgZmlsdGVyQnRuIiw0LCJuZ0lmIl0sWyJjbGFzcyIsImNsci1jb2wtbWQtMyBlZGl0QnRuIiw0LCJuZ0lmIl0sWyJ0eXBlIiwiYnV0dG9uIiwiY2xhc3MiLCJidG4gYnRuLXByaW1hcnkgbXIt''@;'; + put 'put ''MCIsMywiZGlzYWJsZWQiLCJjbGljayIsNCwibmdJZiJdLFsidHlwZSIsImJ1dHRvbiIsImNsYXNzIiwiYnRuIGJ0bi1wcmltYXJ5IG1yLTAiLDMsImNsaWNrIiw0LCJuZ0lmIl0sWyJjbGFzcyIsImV4Y2VsLXBhcnNpbmcgY2xyLWNvbC1tZC0xMiIsNCwibmdJZiJdLFsxLCJtb2RhbC1mb290''@;'; + put 'put ''ZXIiXSxbMywiY3VycmVudFJlY29yZCIsInJlY29yZEFjdGlvbiIsImxpYmRzIiwicXVlcnlGaWx0ZXIiLCJmaWx0ZXIiLCJzdWJtaXRMb2FkaW5nIiwiaGVhZGVyUGtzIiwiY2VsbFZhbGlkYXRpb24iLCJjdXJyZW50UmVjb3JkSW5kZXgiLCJjdXJyZW50UmVjb3JkTG9hZGluZ3MiLCJjdXJy''@;'; + put 'put ''ZW50UmVjb3JkRXJyb3JzIiwiY3VycmVudFJlY29yZFZhbGlkYXRvciIsIm9uUmVjb3JkQ2hhbmdlIiwib25SZWNvcmRJbnB1dEZvY3VzZWQiLCJvblJlY29yZEVkaXRDbG9zZSIsIm9uTmV4dFJlY29yZCIsIm9uUHJldmlvdXNSZWNvcmQiLDQsIm5nSWYiXSxbImh0IiwiIl0sWyJjbGFzcyIs''@;'; + put 'put ''InByb2dyZXNTdGF0aWMgcHJvZ3Jlc3MgbG9vcCIsNCwibmdJZiJdLFsiYXBwRHJhZ05kcm9wIiwiIiwxLCJjYXJkIiwicG9zaXRpb24tcmVsYXRpdmUiLDMsImZpbGVEcmFnZ2VkT3ZlciJdLFsxLCJjYXJkLWhlYWRlciIsImNsci1yb3ciLCJidXR0b25CYXIiLCJoZWFkZXJCYXIiXSxbMSwi''@;'; + put 'put ''Y2xyLWNvbC1tZC00IiwiYmFja0J0biJdLFsxLCJidG4iLCJidG4tc20iLDMsInJvdXRlckxpbmsiXSxbInNoYXBlIiwiY2FyZXQiLCJkaXIiLCJsZWZ0Iiwic2l6ZSIsIjIwIl0sWzEsImNsci1jb2wtbWQtNCIsImQtZmxleCIsImZsZXgtY29sdW1uIiwiYWxpZ24taXRlbXMtY2VudGVyIl0s''@;'; + put 'put ''WyJjbGFzcyIsImVkaXRvci10aXRsZSB0ZXh0LWNlbnRlciBtdC0wLWkiLDQsIm5nVmFyIl0sWyJjbGFzcyIsImNsci1jb2wtbWQtNCBidG5DdHJsIiw0LCJuZ0lmIl0sWyJjbGFzcyIsImNsci1jb2wtbWQtMTIgaW5mb0JhciIsNCwibmdJZiJdLFsxLCJjYXJkLWJsb2NrIiwicGItMCIsMywi''@;'; + put 'put ''bmdDbGFzcyJdLFsiY2xhc3MiLCJjYXJkLXRleHQiLDQsIm5nSWYiXSxbMSwiY2FyZC10ZXh0IiwiaG90RWRpdG9yIl0sWyJob3RJZCIsImhvdEluc3RhbmNlIiwiaWQiLCJob3RUYWJsZSIsMSwiZWRpdC1ob3QiLDMsImxpY2Vuc2VLZXkiXSxbImhvdEluc3RhbmNlIiwiIl0sWyJ0eXBlIiwi''@;'; + put 'put ''YnV0dG9uIiwiY2xhc3MiLCJidG4gYnRuLXNtIGJ0bi1zdWNjZXNzIG10LTIiLDMsImNsaWNrIiw0LCJuZ0lmIl0sWyJjbGFzcyIsIm1vZGFsIiw0LCJuZ0lmIl0sWzMsImNsck1vZGFsT3BlbiIsImNsck1vZGFsT3BlbkNoYW5nZSJdLFsidHlwZSIsImJ1dHRvbiIsMSwiYnRuIiwiYnRuLXNt''@;'; + put 'put ''IiwiYnRuLXByaW1hcnkiLDMsImNsaWNrIl0sWyJ0eXBlIiwiYnV0dG9uIiwxLCJidG4iLCJidG4tcHJpbWFyeSIsMywiY2xpY2siXSxbImNsYXNzIiwiZC1ibG9jayIsNCwibmdGb3IiLCJuZ0Zvck9mIl0sWzQsIm5nRm9yIiwibmdGb3JPZiJdLFsiY2xhc3MiLCJtb2RhbCB6LWluZGV4LWhp''@;'; + put 'put ''Z2hlc3QiLDQsIm5nSWYiXSxbMywiY2xyTW9kYWxPcGVuIiwiY2xyTW9kYWxTaXplIiwiY2xyTW9kYWxDbG9zYWJsZSIsImNsck1vZGFsT3BlbkNoYW5nZSJdLFsxLCJtb2RhbC10aXRsZSIsImNlbnRlciIsInRleHQtY2VudGVyIiwiY29sb3ItZGFya2VyLWdyYXkiXSxbNCwibmdJZiJdLFsi''@;'; + put 'put ''dHlwZSIsImJ1dHRvbiIsMSwiYnRuIiwiYnRuLXNtIiwiYnRuLWxpbmsiLDMsImNsaWNrIl0sWyJ0eXBlIiwiYnV0dG9uIiwxLCJidG4iLCJidG4tc20iLCJidG4tb3V0bGluZSIsMywiY2xpY2siXSxbInR5cGUiLCJidXR0b24iLDEsImJ0biIsImJ0bi1zbSIsImJ0bi1zdWNjZXNzLW91dGxp''@;'; + put 'put ''bmUiLDMsImNsckxvYWRpbmciLCJjbGljayJdLFsidHlwZSIsImJ1dHRvbiIsMSwiYnRuIiwiYnRuLW91dGxpbmUiLDMsImNsaWNrIl0sWyJ0eXBlIiwiYnV0dG9uIiwxLCJidG4iLCJidG4tc20iLCJidG4tc3VjY2Vzcy1vdXRsaW5lIiwzLCJjbGljayJdLFsxLCJtb2RhbC1ib2R5IiwiZC1m''@;'; + put 'put ''bGV4IiwiY2xyLWp1c3RpZnktY29udGVudC1jZW50ZXIiXSxbMSwibS0wIl0sWyJkYXRhLWxwaWdub3JlIiwidHJ1ZSIsImF1dG9jb21wbGV0ZSIsIm9mZiIsImlkIiwiZmlsZVBhc3N3b3JkSW5wdXQiLCJ0eXBlIiwidGV4dCIsMSwiY2xyLWlucHV0IiwiZGlzYWJsZS1wYXNzd29yZC1tYW5h''@;'; + put 'put ''Z2VyIl0sWyJmaWxlUGFzc3dvcmRJbnB1dCIsIiJdLFsiY2xhc3MiLCJtLTAgY29sb3ItcmVkIiw0LCJuZ0lmIl0sWyJ0eXBlIiwiYnV0dG9uIiwxLCJidG4iLCJidG4tc20iLCJidG4tc3VjY2Vzcy1vdXRsaW5lIiwzLCJkaXNhYmxlZCIsImNsaWNrIl0sWzMsIm9wZW4iLCJkc21ldGEiLCJv''@;'; + put 'put ''cGVuQ2hhbmdlIl0sWzEsImNsci1jb2wtbWQtMyIsImZpbHRlckJ0biJdLFsxLCJmaWx0ZXJCdG4iLCJ3LTEwMCJdLFsiZm9yIiwiZmlsZS11cGxvYWQiLDEsImJ0biIsImJ0bi1zbSIsImJ0bi1vdXRsaW5lIiwicHJvZmlsZS1idXR0b25zIiwidy0xMDAiXSxbImhpZGRlbiIsIiIsImlkIiwi''@;'; + put 'put ''ZmlsZS11cGxvYWQiLCJ0eXBlIiwiZmlsZSIsIm5nMkZpbGVTZWxlY3QiLCIiLDMsInVwbG9hZGVyIiwiY2hhbmdlIl0sWyJmaWxlVXBsb2FkSW5wdXQiLCIiXSxbMSwiY2xyLWNvbC1tZC0zIiwiZWRpdEJ0biJdLFsxLCJidG5WaWV3IiwiYnRuIiwiYnRuLXNtIiwiYnRuLXN1Y2Nlc3MiLCJw''@;'; + put 'put ''cm9maWxlLWJ1dHRvbnMiLCJ3LTEwMCIsMywiZGlzYWJsZWQiLCJjbGljayJdLFsidHlwZSIsImJ1dHRvbiIsMSwiYnRuIiwiYnRuLXByaW1hcnkiLCJtci0wIiwzLCJkaXNhYmxlZCIsImNsaWNrIl0sWyJ0eXBlIiwiYnV0dG9uIiwxLCJidG4iLCJidG4tcHJpbWFyeSIsIm1yLTAiLDMsImNs''@;'; + put 'put ''aWNrIl0sWzEsImV4Y2VsLXBhcnNpbmciLCJjbHItY29sLW1kLTEyIl0sWyJ1cGxvYWRTdGF0ZXIiLCIiXSxbMywiY3VycmVudFJlY29yZCIsInJlY29yZEFjdGlvbiIsImxpYmRzIiwicXVlcnlGaWx0ZXIiLCJmaWx0ZXIiLCJzdWJtaXRMb2FkaW5nIiwiaGVhZGVyUGtzIiwiY2VsbFZhbGlk''@;'; + put 'put ''YXRpb24iLCJjdXJyZW50UmVjb3JkSW5kZXgiLCJjdXJyZW50UmVjb3JkTG9hZGluZ3MiLCJjdXJyZW50UmVjb3JkRXJyb3JzIiwiY3VycmVudFJlY29yZFZhbGlkYXRvciIsIm9uUmVjb3JkQ2hhbmdlIiwib25SZWNvcmRJbnB1dEZvY3VzZWQiLCJvblJlY29yZEVkaXRDbG9zZSIsIm9uTmV4''@;'; + put 'put ''dFJlY29yZCIsIm9uUHJldmlvdXNSZWNvcmQiXSxbMSwicHJvZ3Jlc1N0YXRpYyIsInByb2dyZXNzIiwibG9vcCJdLFsxLCJlZGl0b3ItdGl0bGUiLCJ0ZXh0LWNlbnRlciIsIm10LTAtaSJdLFsic2hhcGUiLCJpbmZvLWNpcmNsZSIsInNpemUiLCIyNCIsMSwiaXMtaGlnaGxpZ2h0IiwiY3Vy''@;'; + put 'put ''c29yLXBvaW50ZXIiLDMsImNsaWNrIl0sWyJzaGFwZSIsImJvbHQiLCJjbGFzcyIsImNvbG9yLXllbGxvdyIsNCwibmdJZiJdLFsxLCJtci0xMCIsMywicm91dGVyTGluayJdLFsic2hhcGUiLCJib2x0IiwxLCJjb2xvci15ZWxsb3ciXSxbMSwiY2xyLWNvbC1tZC00IiwiYnRuQ3RybCJdLFsi''@;'; + put 'put ''dHlwZSIsImJ1dHRvbiIsMSwiYnRuVmlldyIsImJ0biIsImJ0bi1zbSIsImJ0bi1pY29uIiwiYnRuLWJsb2NrIiwzLCJjbGljayJdLFsic2hhcGUiLCJmaWx0ZXIiXSxbInR5cGUiLCJidXR0b24iLDEsImJ0biIsImJ0bi1zbSIsImJ0bi1wcmltYXJ5IiwiYnRuLWJsb2NrIiwzLCJjbGljayJd''@;'; + put 'put ''LFsic2hhcGUiLCJub3RlIl0sWyJ0eXBlIiwiYnV0dG9uIiwiY2xhc3MiLCJidG4gYnRuLXNtIGJ0bi1zdWNjZXNzIGJ0bi1ibG9jayBtci0wIiwzLCJjbGljayIsNCwibmdJZiJdLFsidHlwZSIsImJ1dHRvbiIsMSwiYnRuIiwiYnRuLXNtIiwiYnRuLXN1Y2Nlc3MiLCJidG4tYmxvY2siLCJt''@;'; + put 'put ''ci0wIiwzLCJjbGljayJdLFsic2hhcGUiLCJ1cGxvYWQiXSxbInR5cGUiLCJidXR0b24iLDEsImJ0biIsImJ0bi1zbSIsImJ0bi1pY29uIiwiYnRuLW91dGxpbmUtZGFuZ2VyIiwzLCJjbGljayJdLFsic2hhcGUiLCJ0aW1lcyJdLFsidHlwZSIsImJ1dHRvbiIsImNsYXNzIiwiYnRuIGJ0bi1z''@;'; + put 'put ''bSBidG4tc3VjY2VzcyIsMywiY2xyTG9hZGluZyIsImNsaWNrIiw0LCJuZ0lmIl0sWyJzaGFwZSIsImNoZWNrIiwic2l6ZSIsIjIwIl0sWyJ0eXBlIiwiYnV0dG9uIiwxLCJidG4iLCJidG4tc20iLCJidG4tc3VjY2VzcyIsMywiY2xyTG9hZGluZyIsImNsaWNrIl0sWyJzaGFwZSIsInBsdXMi''@;'; + put 'put ''LCJzaXplIiwiMTYiXSxbInR5cGUiLCJidXR0b24iLDEsImJ0biIsImJ0bi1zbSIsImJ0bi1pY29uIiwiYnRuLW91dGxpbmUtZGFuZ2VyIiwiYnRuLXVwbG9hZC1wcmV2aWV3IiwzLCJjbGljayJdLFsidHlwZSIsImJ1dHRvbiIsImNsYXNzIiwiYnRuIGJ0bi1zbSBidG4tcHJpbWFyeSBidG4t''@;'; + put 'put ''dXBsb2FkLXByZXZpZXciLDMsImNsaWNrIiw0LCJuZ0lmIl0sWyJ0eXBlIiwiYnV0dG9uIiwxLCJidG4iLCJidG4tc20iLCJidG4tc3VjY2VzcyIsInByZXZpZXctc3VibWl0IiwzLCJjbHJMb2FkaW5nIiwiY2xpY2siXSxbInR5cGUiLCJidXR0b24iLDEsImJ0biIsImJ0bi1zbSIsImJ0bi1w''@;'; + put 'put ''cmltYXJ5IiwiYnRuLXVwbG9hZC1wcmV2aWV3IiwzLCJjbGljayJdLFsxLCJjbHItY29sLW1kLTEyIiwiaW5mb0JhciJdLFsxLCJjYXJkLXRleHQiXSxbMSwiaC03MHZoIiwiZC1mbGV4IiwianVzdGlmeS1jb250ZW50LWNlbnRlciIsImZsZXgtY29sdW1uIiwiYWxpZ24taXRlbXMtY2VudGVy''@;'; + put 'put ''Il0sWzEsInNwaW5uZXIiXSxbInNoYXBlIiwiZXJyb3Itc3RhbmRhcmQiLDEsImVycm9yLWljb24iXSxbInR5cGUiLCJidXR0b24iLDEsImJ0biIsImJ0bi1zbSIsImJ0bi1zdWNjZXNzIiwibXQtMiIsMywiY2xpY2siXSxbMSwibW9kYWwiXSxbInJvbGUiLCJkaWFsb2ciLCJhcmlhLWhpZGRl''@;'; + put 'put ''biIsInRydWUiLDEsIm1vZGFsLWRpYWxvZyIsIm1vZGFsLWxnIl0sWzEsIm1vZGFsLWNvbnRlbnQiXSxbMSwibW9kYWwtaGVhZGVyIl0sWyJhcmlhLWxhYmVsIiwiQ2xvc2UiLCJ0eXBlIiwiYnV0dG9uIiwxLCJjbG9zZSJdLFsiYXJpYS1oaWRkZW4iLCJ0cnVlIiwic2hhcGUiLCJjbG9zZSJd''@;'; + put 'put ''LFsiY2xhc3MiLCJjbHItb2Zmc2V0LW1kLTIgY2xyLWNvbC1tZC04Iiw0LCJuZ0lmIl0sWzEsIm1vZGFsLWZvb3RlciIsImp1c3RpZnktY29udGVudC1jZW50ZXItaSJdLFsiaWQiLCJzdWJtaXRCdG4iLCJ0eXBlIiwic3VibWl0IiwxLCJidG4iLCJidG4tc20iLCJidG4tc3VjY2Vzcy1vdXRs''@;'; + put 'put ''aW5lIiwibS0wIiwzLCJkaXNhYmxlZCIsImNsaWNrIl0sWyJpZCIsImNhbmNlbFN1Ym1pdEJ0biIsInR5cGUiLCJidXR0b24iLDEsImJ0biIsImJ0bi1zbSIsImJ0bi1vdXRsaW5lIiwzLCJjbGljayJdLFsxLCJjbHItb2Zmc2V0LW1kLTIiLCJjbHItY29sLW1kLTgiXSxbMSwiZm9ybS1ncm91''@;'; + put 'put ''cCJdLFsiZm9yIiwiZm9ybUZpZWxkc184Il0sWyJ0eXBlIiwidGV4dCIsImlkIiwiZm9ybUZpZWxkc184Iiwicm93cyIsIjUiLDEsInctMTAwIiwzLCJuZ01vZGVsIiwiZGlzYWJsZWQiLCJ2YWx1ZSIsIm5nTW9kZWxDaGFuZ2UiXSxbMSwiZC1ibG9jayJdLFsxLCJtb2RhbCIsInotaW5kZXgt''@;'; + put 'put ''aGlnaGVzdCJdLFsicm9sZSIsImRpYWxvZyIsImFyaWEtaGlkZGVuIiwidHJ1ZSIsMSwibW9kYWwtZGlhbG9nIl0sWyJxdWVyeUZpbHRlciIsIiJdLFsxLCJtLTAiLCJjb2xvci1yZWQiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oaCx2KXtpZigxJmgpe2NvbnN0IHk9YmkoKTtydCgwLCJkaXYiLDAp''@;'; + put 'put ''KDEsImNsci1tb2RhbCIsMSksR24oImZpbGVPdmVyIixmdW5jdGlvbihJKXtyZXR1cm4gdi5maWxlT3ZlckJhc2UoSSl9KSgib25GaWxlRHJvcCIsZnVuY3Rpb24oSSl7cmV0dXJuIHYuZ2V0RmlsZURlc2MoSSwhMCl9KSgiY2xyTW9kYWxPcGVuQ2hhbmdlIixmdW5jdGlvbihJKXtyZXR1cm4g''@;'; + put 'put ''di5zaG93VXBsb2FkTW9kYWw9SX0pLHJ0KDIsImgzIiwyKSxZdCgzLCJVcGxvYWQgRmlsZSIpLGx0KCkscnQoNCwiZGl2IiwzKSg1LCJkaXYiLDQpKDYsInNwYW4iKSxZdCg3LCJEcm9wIGZpbGUgYW55d2hlcmUgdG8gdXBsb2FkISIpLGx0KCkoKSxydCg4LCJkaXYiLDUpKDksImRpdiIsNiko''@;'; + put 'put ''MTAsImRpdiIsNykoMTEsImRpdiIsOCkoMTIsImNsci1yYWRpby1jb250YWluZXIiLDkpKDEzLCJjbHItcmFkaW8td3JhcHBlciIpKDE0LCJpbnB1dCIsMTApLEduKCJuZ01vZGVsQ2hhbmdlIixmdW5jdGlvbihJKXtyZXR1cm4gdi5lbmNvZGluZz1JfSksbHQoKSxydCgxNSwibGFiZWwiKSxZ''@;'; + put 'put ''dCgxNiwiVVRGLTgiKSxsdCgpKCkscnQoMTcsImNsci1yYWRpby13cmFwcGVyIikoMTgsImlucHV0IiwxMSksR24oIm5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9uKEkpe3JldHVybiB2LmVuY29kaW5nPUl9KSxsdCgpLHJ0KDE5LCJsYWJlbCIpLFl0KDIwLCJXTEFUSU4xIiksbHQoKSgpKCkoKSgp''@;'; + put 'put ''LHJuKDIxLEVtdCw2LDEsImRpdiIsMTIpLHJuKDIyLHhtdCwzLDEsImRpdiIsMTMpLHJ0KDIzLCJkaXYiLDcpLHJuKDI0LFRtdCwyLDEsImJ1dHRvbiIsMTQpLHJuKDI1LEltdCwyLDAsImJ1dHRvbiIsMTUpLGx0KCkscm4oMjYsRG10LDMsMCwiZGl2IiwxNiksbHQoKSgpKCksQ3IoMjcsImRp''@;'; + put 'put ''diIsMTcpLGx0KCkscm4oMjgsTG10LDEsMTIsImFwcC1lZGl0LXJlY29yZCIsMTgpLHJ0KDI5LCJkaXYiLG51bGwsMTkpLHJuKDMxLE9tdCwyLDAsImRpdiIsMjApLHJ0KDMyLCJkaXYiLDIxKSxHbigiZmlsZURyYWdnZWRPdmVyIixmdW5jdGlvbigpe3JldHVybiB2Lm9uU2hvd1VwbG9hZE1v''@;'; + put 'put ''ZGFsKCl9KSxydCgzMywiZGl2IiwyMikoMzQsImRpdiIsMjMpKDM1LCJzcGFuIiwyNCksQ3IoMzYsImNsci1pY29uIiwyNSksWXQoMzcsIkJhY2sgdG8gdGFibGUgc2VsZWN0aW9uICIpLGx0KCkoKSxydCgzOCwiZGl2IiwyNikscm4oMzksSG10LDcsNSwiaDQiLDI3KSxsdCgpLHJuKDQwLFdt''@;'; + put 'put ''dCw0LDMsImRpdiIsMjgpLHJuKDQxLFltdCw1LDEsImRpdiIsMjkpLGx0KCkscnQoNDIsImRpdiIsMzApLHJuKDQzLEptdCw0LDIsImRpdiIsMzEpLHJ0KDQ0LCJkaXYiLDMyKSxDcig0NSwiaG90LXRhYmxlIiwzMywzNCkscm4oNDcsWG10LDMsMCwiYnV0dG9uIiwzNSkscm4oNDgsJG10LDE1''@;'; + put 'put ''LDUsImRpdiIsMzYpLHJ0KDQ5LCJjbHItbW9kYWwiLDM3KSxHbigiY2xyTW9kYWxPcGVuQ2hhbmdlIixmdW5jdGlvbihJKXtyZXR1cm4gdi5iYWRFZGl0PUl9KSxydCg1MCwiaDMiLDIpLFl0KDUxKSxsdCgpLHJ0KDUyLCJkaXYiLDMpKDUzLCJwIiksWXQoNTQpLGx0KCkoKSxydCg1NSwiZGl2''@;'; + put 'put ''IiwxNykoNTYsImJ1dHRvbiIsMzgpLEduKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gdi5iYWRFZGl0PSExfSksWXQoNTcsIiBPayAiKSxsdCgpKCkoKSxydCg1OCwiY2xyLW1vZGFsIiwzNyksR24oImNsck1vZGFsT3BlbkNoYW5nZSIsZnVuY3Rpb24oSSl7cmV0dXJuIHYucGtOdWxsPUl9''@;'; + put 'put ''KSxydCg1OSwiaDMiLDIpLFl0KDYwLCJFcnJvciIpLGx0KCkscnQoNjEsImRpdiIsMykoNjIsInAiKSxZdCg2MywiIE51bGwgdmFsdWVzIG9yIGluY29ycmVjdCBkYXRhIHR5cGVzIGNhbm5vdCBiZSBzdWJtaXR0ZWQgZm9yIFByaW1hcnkgS2V5IGNvbHVtbnMgIiksbHQoKSgpLHJ0KDY0LCJk''@;'; + put 'put ''aXYiLDE3KSg2NSwiYnV0dG9uIiwzOSksR24oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiB2LnBrTnVsbD0hMSx2LmJhZEVkaXQ9ITF9KSxZdCg2NiwiIE9rICIpLGx0KCkoKSgpLHJ0KDY3LCJjbHItbW9kYWwiLDM3KSxHbigiY2xyTW9kYWxPcGVuQ2hhbmdlIixmdW5jdGlvbihJKXtyZXR1''@;'; + put 'put ''cm4gdi5ub1BrTnVsbD1JfSkscnQoNjgsImgzIiwyKSxZdCg2OSwiRXJyb3IiKSxsdCgpLHJ0KDcwLCJkaXYiLDMpKDcxLCJwIiksWXQoNzIsIkluY29ycmVjdCBkYXRhIHR5cGVzIGluIG5vbi1QcmltYXJ5IEtleSBjb2x1bW5zIiksbHQoKSgpLHJ0KDczLCJkaXYiLDE3KSg3NCwiYnV0dG9u''@;'; + put 'put ''IiwzOSksR24oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiB2Lm5vUGtOdWxsPSExLHYuYmFkRWRpdD0hMX0pLFl0KDc1LCIgT2sgIiksbHQoKSgpKCkscnQoNzYsImNsci1tb2RhbCIsMzcpLEduKCJjbHJNb2RhbE9wZW5DaGFuZ2UiLGZ1bmN0aW9uKEkpe3JldHVybiB2LnBrRHVwcz1JfSks''@;'; + put 'put ''cnQoNzcsImgzIiwyKSxZdCg3OCwiRXJyb3IiKSxsdCgpLHJ0KDc5LCJkaXYiLDMpKDgwLCJwIiksWXQoODEsIiBEdXBsaWNhdGUgdmFsdWVzIGNhbm5vdCBiZSBzdWJtaXR0ZWQgZm9yIFByaW1hcnkgS2V5IGNvbHVtbnMgIiksbHQoKSxydCg4MiwicCIpLFl0KDgzLCJEdXBsaWNhdGVzIGZv''@;'; + put 'put ''dW5kOiIpLGx0KCkscm4oODQscW10LDMsNCwic3BhbiIsNDApLGx0KCkscnQoODUsImRpdiIsMTcpKDg2LCJidXR0b24iLDM5KSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHYucGtEdXBzPSExfSksWXQoODcsIiBPayAiKSxsdCgpKCkoKSxydCg4OCwiY2xyLW1vZGFsIiwzNyksR24o''@;'; + put 'put ''ImNsck1vZGFsT3BlbkNoYW5nZSIsZnVuY3Rpb24oSSl7cmV0dXJuIHYudG9vTG9uZz1JfSkscnQoODksImgzIiwyKSxZdCg5MCwiRXJyb3IiKSxsdCgpLHJ0KDkxLCJkaXYiLDMpKDkyLCJwIiksWXQoOTMsIiBUaGUgZm9sbG93aW5nIGNvbHVtbnMgaGF2ZSB2YWx1ZXMgdGhhdCBleGNlZWQg''@;'; + put 'put ''bGVuZ3RoIGxpbWl0czogIiksbHQoKSxybig5NCxlN3QsMiwzLCJwIiw0MSksbHQoKSxydCg5NSwiZGl2IiwxNykoOTYsImJ1dHRvbiIsMzkpLEduKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gdi50b29Mb25nPSExLHYuY2xlYW5FeGNlZWQoKX0pLFl0KDk3LCIgT2sgIiksbHQoKSgpKCko''@;'; + put 'put ''KSgpKCkoKSgpLHJuKDk4LHQ3dCwxNCwwLCJkaXYiLDQyKSxydCg5OSwiY2xyLW1vZGFsIiw0MyksR24oImNsck1vZGFsT3BlbkNoYW5nZSIsZnVuY3Rpb24oSSl7cmV0dXJuIHYuZmlsdGVyPUl9KSxydCgxMDAsImgzIiw0NCksWXQoMTAxLCIgRmlsdGVyIGZvciB0YWJsZTogIikscnQoMTAy''@;'; + put 'put ''LCJzcGFuIiksWXQoMTAzKSxsdCgpKCkscnQoMTA0LCJkaXYiLDMpLHJuKDEwNSxuN3QsMiwwLCJhcHAtcXVlcnkiLDQ1KSxsdCgpLHJ0KDEwNiwiZGl2IiwxNykoMTA3LCJidXR0b24iLDQ2KSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHYucmVzZXRGaWx0ZXIoKX0pLFl0KDEwOCwi''@;'; + put 'put ''IHJlc2V0IGZpbHRlciAiKSxsdCgpLHJ0KDEwOSwiYnV0dG9uIiw0NyksR24oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiB2LmZpbHRlcj0hMX0pLFl0KDExMCwiIENhbmNlbCAiKSxsdCgpLHJ0KDExMSwiYnV0dG9uIiw0OCksR24oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiB2LnNlbmRD''@;'; + put 'put ''bGF1c2UoKX0pLFl0KDExMiwiIE9rICIpLGx0KCkoKSgpLHJ0KDExMywiY2xyLW1vZGFsIiwzNyksR24oImNsck1vZGFsT3BlbkNoYW5nZSIsZnVuY3Rpb24oSSl7cmV0dXJuIHYucXVlcnlFcnI9SX0pLHJ0KDExNCwiaDMiLDIpLFl0KDExNSwiRXJyb3IiKSxsdCgpLHJ0KDExNiwiZGl2Iiwz''@;'; + put 'put ''KSgxMTcsInAiKSxZdCgxMTgpLGx0KCkoKSxydCgxMTksImRpdiIsMTcpKDEyMCwiYnV0dG9uIiw0OSksR24oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiB2LnF1ZXJ5RXJyPSExfSksWXQoMTIxLCIgQ2FuY2VsICIpLGx0KCkscnQoMTIyLCJidXR0b24iLDM5KSxHbigiY2xpY2siLGZ1bmN0''@;'; + put 'put ''aW9uKCl7cmV0dXJuIHYucXVlcnlFcnI9ITF9KSxZdCgxMjMsIiBPayAiKSxsdCgpKCkoKSxydCgxMjQsImNsci1tb2RhbCIsNDMpLEduKCJjbHJNb2RhbE9wZW5DaGFuZ2UiLGZ1bmN0aW9uKEkpe3JldHVybiB2LmRpc2NhcmRTb3VyY2VGaWxlPUl9KSxydCgxMjUsImgzIiw0NCksWXQoMTI2''@;'; + put 'put ''LCJXYXJuaW5nIiksbHQoKSxydCgxMjcsImRpdiIsMyksWXQoMTI4LCIgVGhpcyBhY3Rpb24gd2lsbCBkaXNjYXJkIHRoZSBzb3VyY2UgZmlsZSBhbmQgaXQncyBsb2FkZWQgZGF0YSAiKSxydCgxMjksImIiKSxZdCgxMzApLGx0KCksWXQoMTMxLCIgRG8geW91IHdpc2ggdG8gcHJvY2VlZD8g''@;'; + put 'put ''IiksbHQoKSxydCgxMzIsImRpdiIsMTcpKDEzMywiYnV0dG9uIiw0NyksR24oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiB2LmRpc2NhcmRTb3VyY2VGaWxlPSExfSksWXQoMTM0LCIgQ2FuY2VsICIpLGx0KCkscnQoMTM1LCJidXR0b24iLDUwKSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0''@;'; + put 'put ''dXJuIHYuZGlzY2FyZFNvdXJjZUZpbGU9ITEsdi5kaXNjYXJkUGVuZGluZ0V4Y2VsKCEwKX0pLFl0KDEzNiwiIE9rICIpLGx0KCkoKSgpLHJ0KDEzNywiY2xyLW1vZGFsIiw0MyksR24oImNsck1vZGFsT3BlbkNoYW5nZSIsZnVuY3Rpb24oSSl7cmV0dXJuIHYuZmlsZVBhc3N3b3JkTW9kYWw9''@;'; + put 'put ''SX0pLHJ0KDEzOCwiaDMiLDQ0KSxZdCgxMzksIiBQYXNzd29yZCBQcm90ZWN0ZWQgRmlsZSAiKSxsdCgpLHJ0KDE0MCwiZGl2Iiw1MSkoMTQxLCJwIiw1MiksWXQoMTQyLCJQbGVhc2UgZW50ZXIgcGFzc3dvcmQ6IiksbHQoKSxDcigxNDMsImlucHV0Iiw1Myw1NCksbHQoKSxydCgxNDUsImRp''@;'; + put 'put ''diIsMTcpLHJuKDE0NixyN3QsMiwwLCJwIiw1NSkscnQoMTQ3LCJidXR0b24iLDQ3KSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHYuZmlsZVBhc3N3b3JkTW9kYWw9ITEsdi5maWxlUGFzc3dvcmRTdWJqZWN0Lm5leHQodm9pZCAwKX0pLFl0KDE0OCwiIENhbmNlbCB1cGxvYWQgIiks''@;'; + put 'put ''bHQoKSxydCgxNDksImJ1dHRvbiIsNTYpLEduKCJjbGljayIsZnVuY3Rpb24oKXtpdCh5KTtjb25zdCBJPXlhKDE0NCk7cmV0dXJuIHYuZmlsZVBhc3N3b3JkTW9kYWw9ITEsYSh2LmZpbGVQYXNzd29yZFN1YmplY3QubmV4dChJLnZhbHVlKSl9KSxZdCgxNTAsIiBVbmxvY2sgIiksbHQoKSgp''@;'; + put 'put ''KCkscnQoMTUxLCJjbHItbW9kYWwiLDQzKSxHbigiY2xyTW9kYWxPcGVuQ2hhbmdlIixmdW5jdGlvbihJKXtyZXR1cm4gdi5tYW51YWxGaWxlRWRpdE1vZGFsPUl9KSxydCgxNTIsImgzIiw0NCksWXQoMTUzLCJXYXJuaW5nIiksbHQoKSxydCgxNTQsImRpdiIsMyksWXQoMTU1LCIgTWFudWFs''@;'; + put 'put ''bHkgZWRpdGluZyB0aGlzIGRhdGEgd2lsbCBtZWFuIHRoZSBzb3VyY2UgZmlsZSAiKSxydCgxNTYsImIiKSxZdCgxNTcpLGx0KCksWXQoMTU4LCIgd2lsbCBiZSBkaXNjYXJkZWQuIERvIHlvdSB3aXNoIHRvIHByb2NlZWQ/ICIpLGx0KCkscnQoMTU5LCJkaXYiLDE3KSgxNjAsImJ1dHRvbiIs''@;'; + put 'put ''NDcpLEduKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gdi5tYW51YWxGaWxlRWRpdE1vZGFsPSExfSksWXQoMTYxLCIgQ2FuY2VsICIpLGx0KCkscnQoMTYyLCJidXR0b24iLDUwKSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHYubWFudWFsRmlsZUVkaXRNb2RhbD0hMSx2LnByZXZp''@;'; + put 'put ''ZXdUYWJsZUVkaXRDb25maXJtKCl9KSxZdCgxNjMsIiBPayAiKSxsdCgpKCkoKSxydCgxNjQsImFwcC1kYXRhc2V0LWluZm8iLDU3KSxHbigib3BlbkNoYW5nZSIsZnVuY3Rpb24oSSl7cmV0dXJuIHYuZGF0YXNldEluZm89SX0pLGx0KCl9aWYoMiZoKXtjb25zdCB5PXlhKDE0NCk7dXQoMSks''@;'; + put 'put ''VHQoInVwbG9hZGVyIix2LnVwbG9hZGVyKSgiY2xyTW9kYWxTaXplIiwieGwiKSgiY2xyTW9kYWxTdGF0aWNCYWNrZHJvcCIsITEpKCJjbHJNb2RhbENsb3NhYmxlIiwiVmFsaWRhdGluZy1EUSI9PT12LmV4Y2VsVXBsb2FkU3RhdGUpKCJjbHJNb2RhbE9wZW4iLHYuc2hvd1VwbG9hZE1vZGFs''@;'; + put 'put ''KSx1dCgxMyksVHQoIm5nTW9kZWwiLHYuZW5jb2RpbmcpKCJkaXNhYmxlZCIsIiIhPXYuZmlsZW5hbWUpLHV0KDQpLFR0KCJuZ01vZGVsIix2LmVuY29kaW5nKSgiZGlzYWJsZWQiLCIiIT12LmZpbGVuYW1lKSx1dCgzKSxUdCgibmdJZiIsIXYuZXhjZWxGaWxlUGFyc2luZyYmIXYudXBsb2Fk''@;'; + put 'put ''TG9hZGluZyksdXQoMSksVHQoIm5nSWYiLCF2LmV4Y2VsRmlsZVBhcnNpbmcmJiF2LnVwbG9hZExvYWRpbmcpLHV0KDIpLFR0KCJuZ0lmIiwiVmFsaWRhdGluZyIhPT12LmV4Y2VsVXBsb2FkU3RhdGUpLHV0KDEpLFR0KCJuZ0lmIiwiVmFsaWRhdGluZy1EUSI9PT12LmV4Y2VsVXBsb2FkU3Rh''@;'; + put 'put ''dGUpLHV0KDEpLFR0KCJuZ0lmIix2LmV4Y2VsRmlsZVBhcnNpbmcpLHV0KDIpLFR0KCJuZ0lmIix2LmN1cnJlbnRFZGl0UmVjb3JkSW5kZXg+LTEpLHV0KDMpLFR0KCJuZ0lmIiwhdi52YWxpZGF0aW9uRG9uZSYmdi5zdWJtaXQpLHV0KDEpLFIzKCJtaW4taGVpZ2h0Iiwibm9uLWNvbW1lcmNp''@;'; + put 'put ''YWwtYW5kLWV2YWx1YXRpb24iIT09di5ob3RUYWJsZS5saWNlbnNlS2V5PyJjYWxjKDEwMHZoIC0gMTU1cHgpIjoiY2FsYygxMDB2aCAtIDE2MHB4KSIpLHV0KDMpLFR0KCJyb3V0ZXJMaW5rIixWcyg2MixpN3QpKSx1dCg0KSxUdCgibmdWYXIiLFozKDYzLG83dCwobnVsbD09di5saWJkcz9u''@;'; + put 'put ''dWxsOnYubGliZHMuc3BsaXQoIi4iKSlbMF0sKG51bGw9PXYubGliZHM/bnVsbDp2LmxpYmRzLnNwbGl0KCIuIikpWzFdKSksdXQoMSksVHQoIm5nSWYiLHYudGFibGVUcnVlKSx1dCgxKSxUdCgibmdJZiIsIVZzKDY2LHhMZSkuaW5jbHVkZXModi5xdWVyeVRleHQpKSx1dCgxKSxUdCgibmdD''@;'; + put 'put ''bGFzcyIsR2QoNjgsYTd0LCFWcyg2Nyx4TGUpLmluY2x1ZGVzKHYucXVlcnlUZXh0KSkpLHV0KDEpLFR0KCJuZ0lmIiwhdi50YWJsZVRydWUpLHV0KDIpLEZpKCJoaWRkZW4iLHYuaG90VGFibGUuaGlkZGVuKSxUdCgibGljZW5zZUtleSIsdi5ob3RUYWJsZS5saWNlbnNlS2V5KSx1dCgyKSxU''@;'; + put 'put ''dCgibmdJZiIsdi50YWJsZVRydWUmJiF2LnJlc3RyaWN0aW9ucy5yZW1vdmVBZGRSZWNvcmRCdXR0b24pLHV0KDEpLFR0KCJuZ0lmIix2LnN1Ym1pdCksdXQoMSksVHQoImNsck1vZGFsT3BlbiIsdi5iYWRFZGl0KSx1dCgyKSxqaSh2LmJhZEVkaXRUaXRsZXx8IkVycm9yIiksdXQoMyksamko''@;'; + put 'put ''di5iYWRFZGl0Q2F1c2UpLHV0KDQpLFR0KCJjbHJNb2RhbE9wZW4iLHYucGtOdWxsKSx1dCg5KSxUdCgiY2xyTW9kYWxPcGVuIix2Lm5vUGtOdWxsKSx1dCg5KSxUdCgiY2xyTW9kYWxPcGVuIix2LnBrRHVwcyksdXQoOCksVHQoIm5nRm9yT2YiLHYuZHVwbGljYXRlUGtJbmRleGVzKSx1dCg0''@;'; + put 'put ''KSxUdCgiY2xyTW9kYWxPcGVuIix2LnRvb0xvbmcpLHV0KDYpLFR0KCJuZ0Zvck9mIix2LmV4Y2VlZENlbGxzKSx1dCg0KSxUdCgibmdJZiIsdi5udWxsVmFyaWFibGVzKSx1dCgxKSxUdCgiY2xyTW9kYWxPcGVuIix2LmZpbHRlcikoImNsck1vZGFsU2l6ZSIsInhsIikoImNsck1vZGFsQ2xv''@;'; + put 'put ''c2FibGUiLCExKSx1dCg0KSxKaSgiICIsdi5saWJkcywiICIpLHV0KDIpLFR0KCJuZ0lmIix2LmZpbHRlciksdXQoNiksVHQoImNsckxvYWRpbmciLHYuc3VibWl0TG9hZGluZyksdXQoMiksVHQoImNsck1vZGFsT3BlbiIsdi5xdWVyeUVyciksdXQoNSksamkodi5xdWVyeUVyck1lc3NhZ2Up''@;'; + put 'put ''LHV0KDYpLFR0KCJjbHJNb2RhbE9wZW4iLHYuZGlzY2FyZFNvdXJjZUZpbGUpKCJjbHJNb2RhbFNpemUiLCJ4bCIpKCJjbHJNb2RhbENsb3NhYmxlIiwhMSksdXQoNiksamkodi5maWxlbmFtZSksdXQoNyksVHQoImNsck1vZGFsT3BlbiIsdi5maWxlUGFzc3dvcmRNb2RhbCkoImNsck1vZGFs''@;'; + put 'put ''U2l6ZSIsIm1kIikoImNsck1vZGFsQ2xvc2FibGUiLCExKSx1dCg5KSxUdCgibmdJZiIsdi5maWxlVW5sb2NrRXJyb3IpLHV0KDMpLFR0KCJkaXNhYmxlZCIseS52YWx1ZS5sZW5ndGg8MSksdXQoMiksVHQoImNsck1vZGFsT3BlbiIsdi5tYW51YWxGaWxlRWRpdE1vZGFsKSgiY2xyTW9kYWxT''@;'; + put 'put ''aXplIiwieGwiKSgiY2xyTW9kYWxDbG9zYWJsZSIsITEpLHV0KDYpLGppKHYuZmlsZW5hbWUpLHV0KDcpLFR0KCJvcGVuIix2LmRhdGFzZXRJbmZvKSgiZHNtZXRhIix2LmRzbWV0YSl9fSxkZXBlbmRlbmNpZXM6W2xjLEVzLE5vLG0xLHFoLHhzLFRzLFk2LHY3LHdsLG9kLGFkLGdvLHcsb3Qs''@;'; + put 'put ''RGZlLGhPZSxXQWUsUzV0LGs1dCxBdGUsa0xlLF9MZSxGZ3QsU0xlLEFtdCx3bXQsYm10LEVMZV0sc3R5bGVzOlsiLmJ1dHRvbkJhcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMTBweDthbGlnbi1pdGVtczpjZW50ZXI7cG9zaXRpb246YWJzb2x1dGV9LnRlc3RSZWRbX25nY29u''@;'; + put 'put ''dGVudC0lQ09NUCVde2NvbG9yOiNmZmY7YmFja2dyb3VuZDpyZ2JhKDI1NSwwLDAsLjgpIWltcG9ydGFudH1ob3QtdGFibGVbX25nY29udGVudC0lQ09NUCVdICAgICAuZmlyc3RDb2x1bW5IZWFkZXJTdHlsZSBidXR0b24uY2hhbmdlVHlwZXtkaXNwbGF5Om5vbmV9aG90LXRhYmxlW19uZ2Nv''@;'; + put 'put ''bnRlbnQtJUNPTVAlXSAgICAgLmhhbmRzb250YWJsZSB0Ym9keSB0aC5odF9faGlnaGxpZ2h0LnByaW1hcnlLZXlIZWFkZXJTdHlsZSwgaG90LXRhYmxlW19uZ2NvbnRlbnQtJUNPTVAlXSAgICAgLmhhbmRzb250YWJsZSB0aGVhZCB0aC5odF9faGlnaGxpZ2h0LnByaW1hcnlLZXlIZWFkZXJT''@;'; + put 'put ''dHlsZXtiYWNrZ3JvdW5kOnJnYmEoNDgsMTA3LDAsLjY5MDE5NjA3ODQpfWhvdC10YWJsZVtfbmdjb250ZW50LSVDT01QJV0gICAgIC5wcmltYXJ5S2V5SGVhZGVyU3R5bGV7YmFja2dyb3VuZDpyZ2JhKDQ4LDEwNywwLC40MzEzNzI1NDkpfWhvdC10YWJsZVtfbmdjb250ZW50LSVDT01QJV0g''@;'; + put 'put ''ICAgIHRoLnJlYWRvbmx5Q2VsbCBkaXZ7b3BhY2l0eTouNH1ob3QtdGFibGVbX25nY29udGVudC0lQ09NUCVdICAgICB0ZC5yZWFkb25seUNlbGx7b3BhY2l0eTouNX0uaW5mb0Jhcltfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDoxNHB4O2JhY2tncm91bmQ6IzQ5NTk2Nztjb2xvcjoj''@;'; + put 'put ''ZmZmO3RleHQtYWxpZ246Y2VudGVyO3BhZGRpbmc6M3B4O2ZvbnQtc2l6ZToxNnB4O2hlaWdodDozMHB4O3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7b3ZlcmZsb3c6aGlkZGVuO3doaXRlLXNwYWNlOm5vd3JhcH0uaW5mb0Jhcltfbmdjb250ZW50LSVDT01QJV0gICBzcGFuW19uZ2NvbnRlbnQt''@;'; + put 'put ''JUNPTVAlXXt3aWR0aDo4MCV9LmluZm9CYXJbX25nY29udGVudC0lQ09NUCVdOmhvdmVye2hlaWdodDp1bnNldDt3aGl0ZS1zcGFjZTpub3JtYWx9LmluZm9CYXJbX25nY29udGVudC0lQ09NUCVdOmhvdmVyICAgc3Bhbltfbmdjb250ZW50LSVDT01QJV17d2lkdGg6dW5zZXR9LnBrSGVhZGVy''@;'; + put 'put ''W19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kOiM2ODc2ODI7Y29sb3I6I2ZmZjttYXJnaW46LTFweH0uaGVhZGVyQmFyW19uZ2NvbnRlbnQtJUNPTVAlXXthbGlnbi1pdGVtczpjZW50ZXI7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDo5MDA7YmFja2dyb3VuZDojZmZmZmZmO21hcmdp''@;'; + put 'put ''bi1sZWZ0Oi0xcHg7YmFja2dyb3VuZDojZjVmNmZlO3dpZHRoOmNhbGMoMTAwJSArIC0wcHgpO3RvcDotNDJweH0uZXJyb3ItaWNvbltfbmdjb250ZW50LSVDT01QJV17d2lkdGg6MzBweDtoZWlnaHQ6MzBweDtjb2xvcjpyZWR9LmhlYWRlckJhckZpbHRlcltfbmdjb250ZW50LSVDT01QJV17''@;'; + put 'put ''bWFyZ2luLXRvcDo1MHB4fS5idG5DdHJsW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kfS5jYXJkLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyLWJvdHRvbToxcHggc29saWQgdHJhbnNwYXJlbnR9LmhpZGRlbltfbmdjb250''@;'; + put 'put ''ZW50LSVDT01QJV17dmlzaWJpbGl0eTpoaWRkZW59Lm15LWRyb3Atem9uZVtfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyOnNvbGlkIDFweCBsaWdodGdyYXk7Ym9yZGVyLXJhZGl1czoxMHB4O2JhY2tncm91bmQ6d2hpdGVzbW9rZTtib3gtc2hhZG93Omluc2V0IDAgMCA0cHggMnB4ICNhN2E1''@;'; + put 'put ''YTUyYjtoZWlnaHQ6NTB2aH0ubnYtZmlsZS1vdmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXI6c29saWQgMnB4IGdyZWVufS5maWxlLWRyb3AtdGV4dFtfbmdjb250ZW50LSVDT01QJV17dGV4dC1hbGlnbjpjZW50ZXJ9QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpey5w''@;'; + put 'put ''cm9ncmVzU3RhdGljW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOjlweCFpbXBvcnRhbnR9LnByb2dyZXNzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLnByb2dyZXNzLXN0YXRpY1tfbmdjb250ZW50LSVDT01QJV17d2lkdGg6Y2FsYygxMDAlIC0gMTRweCl9LmhvdEVkaXRvcltfbmdjb250''@;'; + put 'put ''ZW50LSVDT01QJV17bWFyZ2luLXRvcDo0MHB4fS5idXR0b25CYXJbX25nY29udGVudC0lQ09NUCVdICAgLmJhY2tCdG5bX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6bm9uZX0uY2FyZC1ibG9ja1tfbmdjb250ZW50LSVDT01QJV0sIC5jYXJkLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV17''@;'; + put 'put ''cGFkZGluZzoxMHB4IDAgMH0uY2FyZFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDo1MHB4fS5ob3RMb2FkZXJbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6MTByZW19LmJ0bkN0cmxbX25nY29udGVudC0lQ09NUCVde2p1c3RpZnktY29udGVudDpjZW50ZXJ9LmhlYWRlckJh''@;'; + put 'put ''cltfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLWxlZnQ6MDt3aWR0aDpjYWxjKDEwMCUgLSAxNnB4KTt0b3A6NjBweH19LmhvdEVkaXRvcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmV9LmV4Y2VsLXBhcnNpbmdbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtm''@;'; + put 'put ''bGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24taXRlbXM6Y2VudGVyO3Bvc2l0aW9uOnJlbGF0aXZlfS5leGNlbC1wYXJzaW5nW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5kZXRhaWxzW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW46MDtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6LTQ1cHh9LmVkaXQt''@;'; + put 'put ''cmVjb3JkLXNwaW5uZXJbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsLjYpO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowcHg7Ym90dG9tOjBweDt3aWR0aDox''@;'; + put 'put ''MDAlO3otaW5kZXg6NTAwfUBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ4MHB4KXsucHJvZ3Jlc1N0YXRpY1tfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDozMnB4IWltcG9ydGFudH0uYnV0dG9uQmFyW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjEzcHggMCAxNHB4O2Fs''@;'; + put 'put ''aWduLWl0ZW1zOmNlbnRlcjtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDA7YmFja2dyb3VuZDojZmZmZmZmO21hcmdpbi1sZWZ0Oi0yNXB4O2JhY2tncm91bmQ6I2Y1ZjZmZX0uY2FyZFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDo1MHB4fS5ob3RFZGl0b3JbX25nY29udGVu''@;'; + put 'put ''dC0lQ09NUCVde21hcmdpbi10b3A6NDBweH0uYnV0dG9uQmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5iYWNrQnRuW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5Om5vbmV9LmJ1dHRvbkJhcltfbmdjb250ZW50LSVDT01QJV0gICAuYnRuLmJ0bi1zbVtfbmdjb250ZW50LSVDT01QJV17cGFk''@;'; + put 'put ''ZGluZzowIDEwcHggNXB4fS5jYXJkLWJsb2NrW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmNhcmQtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjEwcHggMCAwfX0uY29udGVudC1hcmVhW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi44cmVtIWltcG9ydGFudH0uZHJvcC1hcmVh''@;'; + put 'put ''W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt0b3A6MDtsZWZ0OjA7Ym90dG9tOjA7cmlnaHQ6MDtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjttYXJnaW46MXB4O2JvcmRlcjoycHggZGFzaGVkICNmZmY7ei1pbmRleDotMX0uZHJvcC1hcmVhW19uZ2NvbnRl''@;'; + put 'put ''bnQtJUNPTVAlXSAgIHNwYW5bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyMHB4O21hcmdpbi10b3A6MjBweDtjb2xvcjojZmZmfSNzdWJtaXRCdG5bX25nY29udGVudC0lQ09NUCVdLCAjY2FuY2VsU3VibWl0QnRuW19uZ2NvbnRlbnQtJUNPTVAlXXt3aWR0aDoxNTBweH0iXX0pLGR9''@;'; + put 'put ''KSgpO2NvbnN0IGw3dD1be3BhdGg6IjpsaWJNZW0iLGNvbXBvbmVudDpqbmV9LHtwYXRoOiI6bGliTWVtLzpmaWx0ZXJJZCIsY29tcG9uZW50OmpuZX0se3BhdGg6ImVkaXQtcmVjb3JkLzpsaWJNZW0iLGNvbXBvbmVudDpqbmV9LHtwYXRoOiJlZGl0LXJlY29yZC86bGliTWVtLzpmaWx0ZXJJ''@;'; + put 'put ''ZCIsY29tcG9uZW50OmpuZX1dO2xldCBzN3Q9KCgpPT57Y2xhc3MgZHt9cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1bW9kPWNvKHt0eXBlOmR9KSxkLlx1MDI3NWluaj1iMCh7aW1wb3J0czpbYmEsWGguZm9yQ2hpbGQobDd0KSxYaF19''@;'; + put 'put ''KSxkfSkoKTt2TGUoKTtsZXQgdTd0PSgoKT0+e2NsYXNzIGR7fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1MDI3NW1vZD1jbyh7dHlwZTpkfSksZC5cdTAyNzVpbmo9YjAoe2ltcG9ydHM6W2JhLG5kLHM3dCx0TyxNNXQsaDZlLmZvclJvb3Qo''@;'; + put 'put ''KSx5bWUsQW1lLEhuZSxObmVdfSksZH0pKCk7ZnVuY3Rpb24gYzd0KGQsZyl7MSZkJiZDcigwLCJjbHItaWNvbiIsMTIpfWZ1bmN0aW9uIGY3dChkLGcpe2lmKDEmZCl7Y29uc3QgaD1iaSgpO3J0KDAsImNsci1pY29uIiwxMyksR24oImNsaWNrIixmdW5jdGlvbigpe2l0KGgpO2NvbnN0IHk9''@;'; + put 'put ''SnQoMik7cmV0dXJuIHkuZ3JvdXBTZWFyY2g9IiIsYSh5Lmdyb3VwTGlzdE9uRmlsdGVyKCkpfSksbHQoKX19ZnVuY3Rpb24gaDd0KGQsZyl7aWYoMSZkKXtjb25zdCBoPWJpKCk7cnQoMCwiY2xyLXRyZWUtbm9kZSIsNikoMSwiZGl2Iiw3KSgyLCJpbnB1dCIsOCw5KSxHbigibmdNb2RlbENo''@;'; + put 'put ''YW5nZSIsZnVuY3Rpb24oeSl7cmV0dXJuIGl0KGgpLGEoSnQoKS5ncm91cFNlYXJjaD15KX0pKCJrZXl1cCIsZnVuY3Rpb24oKXtyZXR1cm4gaXQoaCksYShKdCgpLmdyb3VwTGlzdE9uRmlsdGVyKCkpfSksbHQoKSxybig0LGM3dCwxLDAsImNsci1pY29uIiwxMCkscm4oNSxmN3QsMSwwLCJj''@;'; + put 'put ''bHItaWNvbiIsMTEpLGx0KCkoKX1pZigyJmQpe2NvbnN0IGg9eWEoMyksdj1KdCgpO3V0KDIpLFR0KCJuZ01vZGVsIix2Lmdyb3VwU2VhcmNoKSx1dCgyKSxUdCgibmdJZiIsaC52YWx1ZS5sZW5ndGg8MSksdXQoMSksVHQoIm5nSWYiLGgudmFsdWUubGVuZ3RoPjApfX1mdW5jdGlvbiBkN3Qo''@;'; + put 'put ''ZCxnKXtpZigxJmQpe2NvbnN0IGg9YmkoKTtydCgwLCJjbHItdHJlZS1ub2RlIiwxNSksR24oImNsaWNrIixmdW5jdGlvbigpe2l0KGgpO2NvbnN0IHk9SnQoKS4kaW1wbGljaXQ7cmV0dXJuIGEoSnQoKS5ncm91cE9uQ2xpY2soeSkpfSkscnQoMSwicCIsMTYpLENyKDIsImNsci1pY29uIiwx''@;'; + put 'put ''NyksWXQoMyksbHQoKSgpfWlmKDImZCl7Y29uc3QgaD1KdCgpLiRpbXBsaWNpdCx2PUp0KCk7RmkoInRhYmxlLWFjdGl2ZSIsaC5HUk9VUFVSST09PXYuZ3JvdXBVcmkpLHV0KDMpLEppKCIgIixoLkdST1VQTkFNRSwiICIpfX1mdW5jdGlvbiBwN3QoZCxnKXtpZigxJmQmJihGMCgwKSxybigx''@;'; + put 'put ''LGQ3dCw0LDMsImNsci10cmVlLW5vZGUiLDE0KSxIMCgpKSwyJmQpe2NvbnN0IGg9Zy4kaW1wbGljaXQ7dXQoMSksVHQoIm5nSWYiLCFoLmhpZGRlbil9fWZ1bmN0aW9uIGc3dChkLGcpezEmZCYmKHJ0KDAsImRpdiIsMTgpKDEsInNwYW4iLDE5KSxZdCgyLCIgTG9hZGluZy4uLiAiKSxsdCgp''@;'; + put 'put ''KCkpfWZ1bmN0aW9uIG03dChkLGcpe2lmKDEmZCYmKHJ0KDAsImRpdiIsMjEpKDEsImRpdiIsMjIpKDIsInRhYmxlIiwyNCkoMywidGJvZHkiKSg0LCJ0ciIpKDUsInRkIiwyNSkoNiwicCIsMjYpKDcsImIiKSxZdCg4KSxsdCgpKCkoKSgpLHJ0KDksInRyIikoMTAsInRkIiwyNSkoMTEsImki''@;'; + put 'put ''KSxZdCgxMiksbHQoKSgpKCkoKSgpKCkoKSksMiZkKXtjb25zdCBoPUp0KDIpO3V0KDgpLGppKGguZ3JvdXBOYW1lKSx1dCg0KSxqaShoLmdyb3VwRGVzY3x8Im5vIGRlc2NyaXB0aW9uIil9fWZ1bmN0aW9uIHY3dChkLGcpezEmZCYmKHJ0KDAsImg1IiksWXQoMSwiTm8gTWVtYmVycyBQcmVz''@;'; + put 'put ''ZW50IiksbHQoKSl9ZnVuY3Rpb24gQTd0KGQsZyl7MSZkJiYoRjAoMCkscnQoMSwidGQiLDMxKSgyLCJiIiksWXQoMywiTkFNRSIpLGx0KCkoKSxydCg0LCJ0ZCIsMzEpKDUsImIiKSxZdCg2LCJFTUFJTCIpLGx0KCkoKSxydCg3LCJ0ZCIsMzEpKDgsImIiKSxZdCg5LCJDUkVBVEVEIiksbHQo''@;'; + put 'put ''KSgpLHJ0KDEwLCJ0ZCIsMzIpKDExLCJiIiksWXQoMTIsIlVQREFURUQiKSxsdCgpKCksSDAoKSl9ZnVuY3Rpb24geTd0KGQsZyl7MSZkJiYoRjAoMCkscnQoMSwidGQiLDMxKSgyLCJiIiksWXQoMywiSUQiKSxsdCgpKCkscnQoNCwidGQiLDMxKSg1LCJiIiksWXQoNiwiRElTUExBWSBOQU1F''@;'; + put 'put ''IiksbHQoKSgpLHJ0KDcsInRkIiwzMSkoOCwiYiIpLFl0KDksIlVTRVIgTkFNRSIpLGx0KCkoKSxIMCgpKX1mdW5jdGlvbiB3N3QoZCxnKXtpZigxJmQmJihGMCgwKSxydCgxLCJ0ZCIsMzIpLFl0KDIpLGx0KCkscnQoMywidGQiLDMyKSxZdCg0KSxsdCgpLHJ0KDUsInRkIiwzMiksWXQoNiks''@;'; + put 'put ''bHQoKSxydCg3LCJ0ZCIsMzIpLFl0KDgpLGx0KCksSDAoKSksMiZkKXtjb25zdCBoPUp0KCkuJGltcGxpY2l0O3V0KDIpLGppKGguTUVNQkVSTkFNRSksdXQoMiksamkoaC5FTUFJTCksdXQoMiksamkoaC5NRU1CRVJDUkVBVEVEKSx1dCgyKSxqaShoLk1FTUJFUlVQREFURUQpfX1mdW5jdGlv''@;'; + put 'put ''biBiN3QoZCxnKXtpZigxJmQmJihGMCgwKSxydCgxLCJ0ZCIsMzIpLFl0KDIpLGx0KCkscnQoMywidGQiLDMyKSxZdCg0KSxsdCgpLHJ0KDUsInRkIiwzMiksWXQoNiksbHQoKSxIMCgpKSwyJmQpe2NvbnN0IGg9SnQoKS4kaW1wbGljaXQ7dXQoMiksamkoaC5JRCksdXQoMiksamkoaC5ESVNQ''@;'; + put 'put ''TEFZTkFNRSksdXQoMiksamkoaC5VU0VSTkFNRSl9fWZ1bmN0aW9uIF83dChkLGcpe2lmKDEmZCYmKHJ0KDAsInRyIiwzMykscm4oMSx3N3QsOSw0LCJuZy1jb250YWluZXIiLDUpLHJuKDIsYjd0LDcsMywibmctY29udGFpbmVyIiw1KSxsdCgpKSwyJmQpe2NvbnN0IGg9Zy4kaW1wbGljaXQs''@;'; + put 'put ''dj1KdCg0KTtUdCgicm91dGVyTGluayIsIi92aWV3L3VzZXJuYXYvdXNlcnMvIisoaC5VUklNRU18fGguSUQpKSx1dCgxKSxUdCgibmdJZiIsdi5zZXJ2ZXJUeXBlPT09di5TZXJ2ZXJUeXBlLlNhczkpLHV0KDEpLFR0KCJuZ0lmIix2LnNlcnZlclR5cGU9PT12LlNlcnZlclR5cGUuU2FzanMp''@;'; + put 'put ''fX1mdW5jdGlvbiBDN3QoZCxnKXtpZigxJmQmJihydCgwLCJ0YWJsZSIsMjkpKDEsInRoZWFkIikoMiwidHIiKSxybigzLEE3dCwxMywwLCJuZy1jb250YWluZXIiLDUpLHJuKDQseTd0LDEwLDAsIm5nLWNvbnRhaW5lciIsNSksbHQoKSgpLHJ0KDUsInRib2R5Iikscm4oNixfN3QsMywzLCJ0''@;'; + put 'put ''ciIsMzApLGx0KCkoKSksMiZkKXtjb25zdCBoPUp0KDMpO3V0KDMpLFR0KCJuZ0lmIixoLnNlcnZlclR5cGU9PT1oLlNlcnZlclR5cGUuU2FzOSksdXQoMSksVHQoIm5nSWYiLGguc2VydmVyVHlwZT09PWguU2VydmVyVHlwZS5TYXNqcyksdXQoMiksVHQoIm5nRm9yT2YiLGguZ3JvdXBNZW1i''@;'; + put 'put ''ZXJzKX19ZnVuY3Rpb24gazd0KGQsZyl7aWYoMSZkJiYocnQoMCwiZGl2IikoMSwiaDMiKSxZdCgyKSxsdCgpLHJuKDMsdjd0LDIsMCwiaDUiLDUpLHJ0KDQsImRpdiIsMjcpLHJuKDUsQzd0LDcsMywidGFibGUiLDI4KSxsdCgpKCkpLDImZCl7Y29uc3QgaD1KdCgyKTt1dCgyKSxKaSgiTUVN''@;'; + put 'put ''QkVSUyAoIixoLmdyb3VwTWVtYmVyQ291bnQsIikiKSx1dCgxKSxUdCgibmdJZiIsMD09aC5ncm91cE1lbWJlckNvdW50KSx1dCgyKSxUdCgibmdJZiIsMCE9aC5ncm91cE1lbWJlckNvdW50KX19ZnVuY3Rpb24gUzd0KGQsZyl7MSZkJiYocnQoMCwiaDUiKSxZdCgxLCJObyBNZW1iZXJzIFBy''@;'; + put 'put ''ZXNlbnQiKSxsdCgpKX1mdW5jdGlvbiBNN3QoZCxnKXtpZigxJmQmJihydCgwLCJ0ciIsMzMpKDEsInRkIiwzMiksWXQoMiksbHQoKSgpKSwyJmQpe2NvbnN0IGg9Zy4kaW1wbGljaXQ7VHQoInJvdXRlckxpbmsiLCIvdmlldy91c2VybmF2L3VzZXJzLyIraC5NRU1CRVJJRCksdXQoMiksamko''@;'; + put 'put ''aC5NRU1CRVJOQU1FKX19ZnVuY3Rpb24gRTd0KGQsZyl7aWYoMSZkJiYocnQoMCwidGFibGUiLDI5KSgxLCJ0aGVhZCIpKDIsInRyIikoMywidGQiKSg0LCJiIiksWXQoNSksbHQoKSgpKCkoKSxydCg2LCJ0Ym9keSIpLHJuKDcsTTd0LDMsMiwidHIiLDMwKSxsdCgpKCkpLDImZCl7Y29uc3Qg''@;'; + put 'put ''aD1KdCgzKTt1dCg1KSxKaSgiTUVNQkVSUyAoIixoLmdyb3VwTWVtYmVyQ291bnQsIikiKSx1dCgyKSxUdCgibmdGb3JPZiIsaC5ncm91cE1lbWJlcnMpfX1mdW5jdGlvbiB4N3QoZCxnKXtpZigxJmQmJihydCgwLCJkaXYiKSgxLCJoMyIpLFl0KDIpLGx0KCkscm4oMyxTN3QsMiwwLCJoNSIs''@;'; + put 'put ''NSkscnQoNCwiZGl2IiwyNykscm4oNSxFN3QsOCwyLCJ0YWJsZSIsMjgpLGx0KCkoKSksMiZkKXtjb25zdCBoPUp0KDIpO3V0KDIpLGppKGguZ3JvdXBOYW1lKSx1dCgxKSxUdCgibmdJZiIsMD09aC5ncm91cE1lbWJlckNvdW50KSx1dCgyKSxUdCgibmdJZiIsMCE9aC5ncm91cE1lbWJlckNv''@;'; + put 'put ''dW50KX19ZnVuY3Rpb24gVDd0KGQsZyl7aWYoMSZkJiYocnQoMCwiZGl2Iikscm4oMSxtN3QsMTMsMiwiZGl2IiwyMCkscnQoMiwiZGl2IiwyMSkoMywiZGl2IiwyMikoNCwiZGl2IiwyMykscm4oNSxrN3QsNiwzLCJkaXYiLDUpLHJuKDYseDd0LDYsMywiZGl2Iiw1KSxDcig3LCJiciIpLGx0''@;'; + put 'put ''KCkoKSgpKCkpLDImZCl7Y29uc3QgaD1KdCgpO3V0KDEpLFR0KCJuZ0lmIixoLnNlcnZlclR5cGUhPT1oLlNlcnZlclR5cGUuU2FzVml5YSksdXQoNCksVHQoIm5nSWYiLGguc2VydmVyVHlwZSE9PWguU2VydmVyVHlwZS5TYXNWaXlhKSx1dCgxKSxUdCgibmdJZiIsaC5zZXJ2ZXJUeXBlPT09''@;'; + put 'put ''aC5TZXJ2ZXJUeXBlLlNhc1ZpeWEpfX1sZXQgRExlPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2LHksQyxJKXt0aGlzLnNhc1NlcnZpY2U9aCx0aGlzLmhlbHBlclNlcnZpY2U9dix0aGlzLnJvdXRlcj15LHRoaXMubG9jYXRpb249Qyx0aGlzLnJvdXRlPUksdGhpcy5ncm91cFNlYXJj''@;'; + put 'put ''aD0iIix0aGlzLnBhcmFtUHJlc2VudD0hMSx0aGlzLnBhcmFtVVJJPSIiLHRoaXMuZ3JvdXBVcmk9IiIsdGhpcy5ncm91cE5hbWU9IiIsdGhpcy5ncm91cERlc2M9IiIsdGhpcy5zYXNqc0NvbmZpZz1uZXcgUTMuU0FTanNDb25maWcsdGhpcy5pc1ZpeWE9ITEsdGhpcy5sb2FkaW5nPSExLHRo''@;'; + put 'put ''aXMuU2VydmVyVHlwZT1IdS5ELHRoaXMuc2FzanNDb25maWc9dGhpcy5zYXNTZXJ2aWNlLmdldFNhc2pzQ29uZmlnKCksdGhpcy5zZXJ2ZXJUeXBlPXRoaXMuc2FzU2VydmljZS5nZXRTZXJ2ZXJUeXBlKCksIlNBU1ZJWUEiPT09dGhpcy5zYXNqc0NvbmZpZy5zZXJ2ZXJUeXBlJiYodGhpcy5p''@;'; + put 'put ''c1ZpeWE9ITApfW5nT25Jbml0KCl7bmkudmlld2VyLmN1cnJlbnRTZWxlY3Rpb249InZpZXcvdXNlcm5hdi9ncm91cHMiLHZvaWQgMCE9PXRoaXMucm91dGUuc25hcHNob3QucGFyYW1zLnVyaSYmKHRoaXMucGFyYW1QcmVzZW50PSEwLHRoaXMucGFyYW1VUkk9dGhpcy5yb3V0ZS5zbmFwc2hv''@;'; + put 'put ''dC5wYXJhbXMudXJpKSxuaS51c2VybmF2Lmdyb3VwTGlzdCYmIXRoaXMucGFyYW1QcmVzZW50Pyh0aGlzLmdyb3Vwcz1uaS51c2VybmF2Lmdyb3VwTGlzdCx0aGlzLmdyb3VwU2VhcmNoPW5pLnVzZXJuYXYuZ3JvdXBTZWFyY2gpOih2b2lkIDA9PT1uaS51c2VybmF2Lmdyb3VwTGlzdD8odGhp''@;'; + put 'put ''cy5sb2FkaW5nPSEwLHRoaXMuaXNWaXlhP2ZldGNoKHRoaXMuc2FzanNDb25maWcuc2VydmVyVXJsKyIvaWRlbnRpdGllcy9ncm91cHM/bGltaXQ9MjAwMCIse2hlYWRlcnM6e0FjY2VwdDoiYXBwbGljYXRpb24vanNvbiJ9fSkudGhlbihoPT5oLnRleHQoKSkudGhlbihoPT57bGV0IHk9SlNP''@;'; + put 'put ''Ti5wYXJzZShoKS5pdGVtcy5tYXAoQz0+KHtHUk9VUFVSSTpDLmlkLEdST1VQTkFNRTpDLm5hbWUsR1JPVVBERVNDOkMuZGVzY3JpcHRpb259KSk7dGhpcy5sb2FkaW5nPSExLHRoaXMuZ3JvdXBzPXksbmkudXNlcm5hdi5ncm91cExpc3Q9eX0pOnRoaXMuc2FzU2VydmljZS5yZXF1ZXN0KCJw''@;'; + put 'put ''dWJsaWMvZ2V0Z3JvdXBzIixudWxsKS50aGVuKGg9Pnt0aGlzLmxvYWRpbmc9ITEsdGhpcy5ncm91cHM9aC5ncm91cHMsbmkudXNlcm5hdi5ncm91cExpc3Q9aC5ncm91cHN9KSk6KHRoaXMuZ3JvdXBzPW5pLnVzZXJuYXYuZ3JvdXBMaXN0LHRoaXMuZ3JvdXBTZWFyY2g9bmkudXNlcm5hdi5n''@;'; + put 'put ''cm91cFNlYXJjaCksdGhpcy5wYXJhbVByZXNlbnQmJih0aGlzLmxvYWRpbmc9ITAsdGhpcy5pc1ZpeWE/ZmV0Y2godGhpcy5zYXNqc0NvbmZpZy5zZXJ2ZXJVcmwrIi9pZGVudGl0aWVzL2dyb3Vwcy8iK3RoaXMucGFyYW1VUkkrIi9tZW1iZXJzP2xpbWl0PTIwMDAiLHtoZWFkZXJzOntBY2Nl''@;'; + put 'put ''cHQ6ImFwcGxpY2F0aW9uL2pzb24ifX0pLnRoZW4oaD0+aC50ZXh0KCkpLnRoZW4oaD0+e2xldCB2PUpTT04ucGFyc2UoaCk7dGhpcy5sb2FkaW5nPSExO2xldCB5PXYuaXRlbXMubWFwKEM9Pih7TUVNQkVSTkFNRTpDLm5hbWUsTUVNQkVSSUQ6Qy5pZH0pKTt0aGlzLmdyb3VwTWVtYmVycz15''@;'; + put 'put ''LHRoaXMuZ3JvdXBNZW1iZXJDb3VudD15Lmxlbmd0aCx0aGlzLmdyb3VwVXJpPXRoaXMucGFyYW1VUkksdGhpcy5ncm91cE5hbWU9dGhpcy5wYXJhbVVSSX0pOnRoaXMuc2FzU2VydmljZS5yZXF1ZXN0KCJ1c2VybmF2L3VzZXJtZW1iZXJzYnlncm91cCIse2l3YW50Olt7Z3JvdXBpZDp0aGlz''@;'; + put 'put ''LnBhcmFtVVJJfV19KS50aGVuKHY9Pnt0aGlzLmdyb3VwTWVtYmVycz12LnNhc21lbWJlcnMsdGhpcy5ncm91cE1lbWJlckNvdW50PXYuc2FzbWVtYmVycy5sZW5ndGgsdm9pZCAwIT09di5zYXNtZW1iZXJzWzBdJiYodGhpcy5sb2FkaW5nPSExLHRoaXMuZ3JvdXBVcmk9di5zYXNtZW1iZXJz''@;'; + put 'put ''WzBdLlVSSU1FTXx8dGhpcy5wYXJhbVVSSSx0aGlzLmdyb3VwTmFtZT12LnNhc21lbWJlcnNbMF0uR1JPVVBOQU1FLHRoaXMuZ3JvdXBEZXNjPXYuc2FzbWVtYmVyc1swXS5HUk9VUERFU0MsdGhpcy5ncm91cE5hbWV8fCh0aGlzLmdyb3VwTmFtZT10aGlzLnBhcmFtVVJJKSl9KSkpfWdyb3Vw''@;'; + put 'put ''TGlzdE9uRmlsdGVyKCl7dGhpcy5oZWxwZXJTZXJ2aWNlLmxpYnJhcnlPbkZpbHRlcih0aGlzLmdyb3Vwcyx0aGlzLmdyb3VwU2VhcmNoLCJHUk9VUE5BTUUiKSxuaS51c2VybmF2Lmdyb3VwU2VhcmNoPXRoaXMuZ3JvdXBTZWFyY2h9Z3JvdXBPbkNsaWNrKGgpe3RoaXMubG9hZGluZz0hMDts''@;'; + put 'put ''ZXQgdj10aGlzLnJvdXRlci51cmw7dGhpcy5sb2NhdGlvbi5yZXBsYWNlU3RhdGUodGhpcy5wYXJhbVByZXNlbnQ/di5zbGljZSgwLHYubGFzdEluZGV4T2YoIi8iKSkrIi8iK2VuY29kZVVSSShoLkdST1VQVVJJKTp2KyIvIitlbmNvZGVVUkkoaC5HUk9VUFVSSSkpLHRoaXMuaXNWaXlhP2Zl''@;'; + put 'put ''dGNoKHRoaXMuc2FzanNDb25maWcuc2VydmVyVXJsKyIvaWRlbnRpdGllcy9ncm91cHMvIitoLkdST1VQVVJJKyIvbWVtYmVycz9saW1pdD0yMDAwIix7aGVhZGVyczp7QWNjZXB0OiJhcHBsaWNhdGlvbi9qc29uIn19KS50aGVuKHk9PnkudGV4dCgpKS50aGVuKHk9PntsZXQgQz1KU09OLnBh''@;'; + put 'put ''cnNlKHkpO3RoaXMubG9hZGluZz0hMSx0aGlzLmdyb3VwVXJpPWguR1JPVVBVUkksdGhpcy5ncm91cE5hbWU9aC5HUk9VUE5BTUUsdGhpcy5ncm91cERlc2M9aC5HUk9VUERFU0M7bGV0IEk9Qy5pdGVtcy5tYXAoaj0+KHtNRU1CRVJOQU1FOmoubmFtZSxNRU1CRVJJRDpqLmlkfSkpO3RoaXMu''@;'; + put 'put ''Z3JvdXBNZW1iZXJzPUksdGhpcy5ncm91cE1lbWJlckNvdW50PUkubGVuZ3RofSk6dGhpcy5zYXNTZXJ2aWNlLnJlcXVlc3QoInVzZXJuYXYvdXNlcm1lbWJlcnNieWdyb3VwIix7aXdhbnQ6W3tncm91cGlkOmguR1JPVVBVUkl9XX0pLnRoZW4oQz0+e3RoaXMubG9hZGluZz0hMSx0aGlzLmdy''@;'; + put 'put ''b3VwVXJpPWguR1JPVVBVUkksdGhpcy5ncm91cE5hbWU9aC5HUk9VUE5BTUUsdGhpcy5ncm91cERlc2M9aC5HUk9VUERFU0MsdGhpcy5ncm91cE1lbWJlcnM9Qy5zYXNtZW1iZXJzLHRoaXMuZ3JvdXBNZW1iZXJDb3VudD1DLnNhc21lbWJlcnMubGVuZ3RofSl9fXJldHVybiBkLlx1MDI3NWZh''@;'; + put 'put ''Yz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKEt0KGcyKSxLdChYYyksS3QoWmwpLEt0KFY2KSxLdChQdSkpfSxkLlx1MDI3NWNtcD1UaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJhcHAtZ3JvdXAiXV0saG9zdEF0dHJzOlsxLCJjb250ZW50LWNvbnRhaW5lciJdLGRlY2xzOjcsdmFyczo0''@;'; + put 'put ''LGNvbnN0czpbWzEsInNpZGViYXItaGVpZ2h0Il0sWyJjbGFzcyIsInNlYXJjaC1ub2RlIiw0LCJuZ0lmIl0sWzQsIm5nRm9yIiwibmdGb3JPZiJdLFsxLCJjb250ZW50LWFyZWEiXSxbImNsYXNzIiwibG9hZGluZ1NwaW5uZXIiLDQsIm5nSWYiXSxbNCwibmdJZiJdLFsxLCJzZWFyY2gtbm9k''@;'; + put 'put ''ZSJdLFsxLCJ0cmVlLXNlYXJjaC13cmFwcGVyIl0sWyJjbHJJbnB1dCIsIiIsInBsYWNlaG9sZGVyIiwiRmlsdGVyIGJ5IEdyb3VwcyIsIm5hbWUiLCJpbnB1dCIsImF1dG9jb21wbGV0ZSIsIm9mZiIsMywibmdNb2RlbCIsIm5nTW9kZWxDaGFuZ2UiLCJrZXl1cCJdLFsic2VhcmNoTGliVHJl''@;'; + put 'put ''ZUlucHV0IiwiIl0sWyJzaGFwZSIsInNlYXJjaCIsNCwibmdJZiJdLFsic2hhcGUiLCJ0aW1lcyIsMywiY2xpY2siLDQsIm5nSWYiXSxbInNoYXBlIiwic2VhcmNoIl0sWyJzaGFwZSIsInRpbWVzIiwzLCJjbGljayJdLFszLCJ0YWJsZS1hY3RpdmUiLCJjbGljayIsNCwibmdJZiJdLFszLCJj''@;'; + put 'put ''bGljayJdLFsxLCJtLTAiLCJjdXJzb3ItcG9pbnRlciIsImxpc3QtcGFkZGluZyJdLFsic2hhcGUiLCJ1c2VycyJdLFsxLCJsb2FkaW5nU3Bpbm5lciJdLFsxLCJzcGlubmVyIl0sWyJjbGFzcyIsImNsci1yb3ciLDQsIm5nSWYiXSxbMSwiY2xyLXJvdyJdLFsxLCJjbHItY29sLTgiXSxbMSwi''@;'; + put 'put ''Y2FyZCIsImdyb3VwLWRhdGEiXSxbMSwidGFibGUiLCJncm91cC1pbmZvIl0sWzEsImxlZnQiXSxbMSwiZ3JvdXAtaW5mby10ZXh0Il0sWzEsInRhYmxlLWNvbnRhaW5lciJdLFsiY2xhc3MiLCJ0YWJsZSBtZW1iZXItdGFibGUiLDQsIm5nSWYiXSxbMSwidGFibGUiLCJtZW1iZXItdGFibGUi''@;'; + put 'put ''XSxbMywicm91dGVyTGluayIsNCwibmdGb3IiLCJuZ0Zvck9mIl0sWzEsIndpZHRoLTI1Il0sWzEsIiJdLFszLCJyb3V0ZXJMaW5rIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGgsdil7MSZoJiYocnQoMCwiYXBwLXNpZGViYXIiLDApKDEsImNsci10cmVlIikscm4oMixoN3QsNiwzLCJjbHItdHJl''@;'; + put 'put ''ZS1ub2RlIiwxKSxybigzLHA3dCwyLDEsIm5nLWNvbnRhaW5lciIsMiksbHQoKSgpLHJ0KDQsImRpdiIsMykscm4oNSxnN3QsMywwLCJkaXYiLDQpLHJuKDYsVDd0LDgsMywiZGl2Iiw1KSxsdCgpKSwyJmgmJih1dCgyKSxUdCgibmdJZiIsdi5ncm91cHMpLHV0KDEpLFR0KCJuZ0Zvck9mIix2''@;'; + put 'put ''Lmdyb3VwcyksdXQoMiksVHQoIm5nSWYiLHYubG9hZGluZyksdXQoMSksVHQoIm5nSWYiLHYuZ3JvdXBNZW1iZXJzJiYhdi5sb2FkaW5nKSl9LGRlcGVuZGVuY2llczpbRXMsTm8sbTEseHMsVHMsWTYseXYsX2csd2wscHYsa1NdLHN0eWxlczpbIi5zaWRlYmFyLWhlaWdodFtfbmdjb250ZW50''@;'; + put 'put ''LSVDT01QJV17aGVpZ2h0OjEwMCV9Lmdyb3VwLWluZm8tdGV4dFtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTppbmxpbmU7Zm9udC1zaXplOjIwcHh9Lmdyb3VwLWluZm9bX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQtY29sb3I6I2Y5ZjlmOTtib3JkZXI6MXB4IHNvbGlkICNhN2E3''@;'; + put 'put ''YTc7Ym9yZGVyLXJhZGl1czozcHg7Ym94LXNoYWRvdzowIDJweCA1cHggI2RhZDdkN30uZ3JvdXAtaW5mb1tfbmdjb250ZW50LSVDT01QJV0gICB0ZFtfbmdjb250ZW50LSVDT01QJV17dGV4dC1hbGlnbjpjZW50ZXJ9Lmdyb3VwLWRhdGFbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQt''@;'; + put 'put ''Y29sb3I6I2Y5ZjlmOTtib3JkZXI6MXB4IHNvbGlkICNhN2E3YTc7Ym9yZGVyLXJhZGl1czozcHg7Ym94LXNoYWRvdzowIDJweCA1cHggI2RhZDdkN30uZ3JvdXAtZGF0YVtfbmdjb250ZW50LSVDT01QJV17bWluLWhlaWdodDphdXRvfS5ncm91cC1kYXRhW19uZ2NvbnRlbnQtJUNPTVAlXSAg''@;'; + put 'put ''IGgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmdyb3VwLWRhdGFbX25nY29udGVudC0lQ09NUCVdICAgaDVbX25nY29udGVudC0lQ09NUCVde3RleHQtYWxpZ246Y2VudGVyfS5ncm91cC1kYXRhW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tZW1iZXItdGFibGVbX25nY29udGVudC0lQ09NUCVde2Jh''@;'; + put 'put ''Y2tncm91bmQtY29sb3I6I2Y5ZjlmOTt3aWR0aDoxMDAlfS5ncm91cC1kYXRhW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tZW1iZXItdGFibGVbX25nY29udGVudC0lQ09NUCVdICAgdGhlYWRbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQtY29sb3I6I2RhZGFkYX0uZ3JvdXAtZGF0YVtf''@;'; + put 'put ''bmdjb250ZW50LSVDT01QJV0gICAubWVtYmVyLXRhYmxlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHRib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHRyW19uZ2NvbnRlbnQtJUNPTVAlXTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiNlNmU2ZTY7Y3Vyc29yOnBvaW50ZXJ9LnRhYmxlLWNvbnRhaW5l''@;'; + put 'put ''cltfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3c6YXV0b31AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCl7Lmdyb3VwLWRhdGFbX25nY29udGVudC0lQ09NUCVde21pbi1oZWlnaHQ6dW5zZXQhaW1wb3J0YW50fX0iXX0pLGR9KSgpO3ZhciBEbWU9TCg5OTIxKSxJN3Q9TCgy''@;'; + put 'put ''MDMzKTtmdW5jdGlvbiBEN3QoZCxnKXsxJmQmJkNyKDAsImNsci1pY29uIiwyNSl9ZnVuY3Rpb24gTDd0KGQsZyl7aWYoMSZkKXtjb25zdCBoPWJpKCk7cnQoMCwiY2xyLWljb24iLDI2KSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7aXQoaCk7Y29uc3QgeT1KdCgyKTtyZXR1cm4geS5saWJyYXJp''@;'; + put 'put ''ZXNTZWFyY2g9IiIsYSh5LmxpYnJhcnlPbkZpbHRlcigpKX0pLGx0KCl9fWZ1bmN0aW9uIE83dChkLGcpe2lmKDEmZCl7Y29uc3QgaD1iaSgpO3J0KDAsImNsci10cmVlLW5vZGUiLDE5KSgxLCJkaXYiLDIwKSgyLCJpbnB1dCIsMjEsMjIpLEduKCJuZ01vZGVsQ2hhbmdlIixmdW5jdGlvbih5''@;'; + put 'put ''KXtyZXR1cm4gaXQoaCksYShKdCgpLmxpYnJhcmllc1NlYXJjaD15KX0pKCJrZXl1cCIsZnVuY3Rpb24oKXtyZXR1cm4gaXQoaCksYShKdCgpLmxpYnJhcnlPbkZpbHRlcigpKX0pLGx0KCkscm4oNCxEN3QsMSwwLCJjbHItaWNvbiIsMjMpLHJuKDUsTDd0LDEsMCwiY2xyLWljb24iLDI0KSxs''@;'; + put 'put ''dCgpKCl9aWYoMiZkKXtjb25zdCBoPXlhKDMpLHY9SnQoKTt1dCgyKSxUdCgibmdNb2RlbCIsdi5saWJyYXJpZXNTZWFyY2gpLHV0KDIpLFR0KCJuZ0lmIixoLnZhbHVlLmxlbmd0aDwxKSx1dCgxKSxUdCgibmdJZiIsaC52YWx1ZS5sZW5ndGg+MCl9fWZ1bmN0aW9uIFI3dChkLGcpezEmZCYm''@;'; + put 'put ''Q3IoMCwiY2xyLWljb24iLDI1KX1mdW5jdGlvbiBCN3QoZCxnKXtpZigxJmQpe2NvbnN0IGg9YmkoKTtydCgwLCJjbHItaWNvbiIsMjYpLEduKCJjbGljayIsZnVuY3Rpb24oKXtpdChoKSxKdCgpO2NvbnN0IHk9eWEoMyksQz1KdCgyKS4kaW1wbGljaXQsST1KdCgpO3JldHVybiB5LnZhbHVl''@;'; + put 'put ''PSIiLEMuc2VhcmNoU3RyaW5nPSIiLGEoSS50cmVlT25GaWx0ZXIoQywidGFibGVzLlRBQkxFTkFNRSIpKX0pLGx0KCl9fWZ1bmN0aW9uIFA3dChkLGcpe2lmKDEmZCl7Y29uc3QgaD1iaSgpO3J0KDAsImNsci10cmVlLW5vZGUiLDE5KSgxLCJkaXYiLDIwKSgyLCJpbnB1dCIsMzIsMzMpLEdu''@;'; + put 'put ''KCJuZ01vZGVsQ2hhbmdlIixmdW5jdGlvbih5KXtyZXR1cm4gaXQoaCksYShKdCgyKS4kaW1wbGljaXQuc2VhcmNoU3RyaW5nPXkpfSkoImtleXVwIixmdW5jdGlvbigpe2l0KGgpO2NvbnN0IHk9SnQoMikuJGltcGxpY2l0O3JldHVybiBhKEp0KCkudHJlZU9uRmlsdGVyKHksInRhYmxlcy5U''@;'; + put 'put ''QUJMRU5BTUUiKSl9KSxsdCgpLHJuKDQsUjd0LDEsMCwiY2xyLWljb24iLDIzKSxybig1LEI3dCwxLDAsImNsci1pY29uIiwyNCksbHQoKSgpfWlmKDImZCl7Y29uc3QgaD15YSgzKSx2PUp0KDIpLiRpbXBsaWNpdDt1dCgyKSxUdCgibmdNb2RlbCIsdi5zZWFyY2hTdHJpbmcpLHV0KDIpLFR0''@;'; + put 'put ''KCJuZ0lmIixoLnZhbHVlLmxlbmd0aDwxKSx1dCgxKSxUdCgibmdJZiIsaC52YWx1ZS5sZW5ndGg+MCl9fWZ1bmN0aW9uIEY3dChkLGcpezEmZCYmQ3IoMCwiY2xyLWljb24iLDI1KX1mdW5jdGlvbiBIN3QoZCxnKXtpZigxJmQpe2NvbnN0IGg9YmkoKTtydCgwLCJjbHItaWNvbiIsMjYpLEdu''@;'; + put 'put ''KCJjbGljayIsZnVuY3Rpb24oKXtpdChoKSxKdCgpO2NvbnN0IHk9eWEoMyksQz1KdCgpLiRpbXBsaWNpdCxJPUp0KDMpO3JldHVybiB5LnZhbHVlPSIiLEMuc2VhcmNoU3RyaW5nPSIiLGEoSS50cmVlT25GaWx0ZXIoQywiY29sdW1ucy5DT0xOQU1FIikpfSksbHQoKX19ZnVuY3Rpb24gTjd0''@;'; + put 'put ''KGQsZyl7aWYoMSZkKXtjb25zdCBoPWJpKCk7cnQoMCwiY2xyLXRyZWUtbm9kZSIsMTkpKDEsImRpdiIsMjApKDIsImlucHV0IiwzNiwzMyksR24oIm5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9uKHkpe3JldHVybiBpdChoKSxhKEp0KCkuJGltcGxpY2l0LnNlYXJjaFN0cmluZz15KX0pKCJrZXl1''@;'; + put 'put ''cCIsZnVuY3Rpb24oKXtpdChoKTtjb25zdCB5PUp0KCkuJGltcGxpY2l0O3JldHVybiBhKEp0KDMpLnRyZWVPbkZpbHRlcih5LCJjb2x1bW5zLkNPTE5BTUUiKSl9KSxsdCgpLHJuKDQsRjd0LDEsMCwiY2xyLWljb24iLDIzKSxybig1LEg3dCwxLDAsImNsci1pY29uIiwyNCksbHQoKSgpfWlm''@;'; + put 'put ''KDImZCl7Y29uc3QgaD15YSgzKSx2PUp0KCkuJGltcGxpY2l0O3V0KDIpLFR0KCJuZ01vZGVsIix2LnNlYXJjaFN0cmluZyksdXQoMiksVHQoIm5nSWYiLGgudmFsdWUubGVuZ3RoPDEpLHV0KDEpLFR0KCJuZ0lmIixoLnZhbHVlLmxlbmd0aD4wKX19ZnVuY3Rpb24gVjd0KGQsZyl7aWYoMSZk''@;'; + put 'put ''KXtjb25zdCBoPWJpKCk7cnQoMCwiY2xyLXRyZWUtbm9kZSIpKDEsImJ1dHRvbiIsMzcpLEduKCJjbGljayIsZnVuY3Rpb24oKXtjb25zdCBDPWl0KGgpLiRpbXBsaWNpdCxJPUp0KCkuJGltcGxpY2l0LGo9SnQoMikuJGltcGxpY2l0O3JldHVybiBhKEp0KCkuY29sdW1uT25DbGljayhDLGos''@;'; + put 'put ''SSkpfSksQ3IoMiwiY2xyLWljb24iLDM4KSxZdCgzKSxsdCgpKCl9aWYoMiZkKXtjb25zdCBoPWcuJGltcGxpY2l0LHY9SnQoNCk7dXQoMSksRmkoImNvbHVtbi1hY3RpdmUiLHYubGliQ29sdW1uQWN0aXZlKGguQ09MVVJJKSksdXQoMiksSmkoIiAiLGguQ09MTkFNRSwiICIpfX1mdW5jdGlv''@;'; + put 'put ''biBqN3QoZCxnKXtpZigxJmQpe2NvbnN0IGg9YmkoKTtydCgwLCJjbHItdHJlZS1ub2RlIiwyOCksR24oImNsaWNrIixmdW5jdGlvbih5KXtjb25zdCBJPWl0KGgpLiRpbXBsaWNpdCxqPUp0KDIpLiRpbXBsaWNpdDtyZXR1cm4gYShKdCgpLnRyZWVOb2RlQ2xpY2tlZCh5LEksai50YWJsZXMp''@;'; + put 'put ''KX0pKCJjbHJFeHBhbmRlZENoYW5nZSIsZnVuY3Rpb24oeSl7cmV0dXJuIGEoaXQoaCkuJGltcGxpY2l0LmV4cGFuZGVkPXkpfSkscnQoMSwicCIsMzQpLEduKCJjbGljayIsZnVuY3Rpb24oKXtjb25zdCBDPWl0KGgpLiRpbXBsaWNpdCxJPUp0KDIpLiRpbXBsaWNpdDtyZXR1cm4gYShKdCgp''@;'; + put 'put ''LnRhYmxlT25DbGljayhDLlRBQkxFVVJJLEMsSSkpfSksQ3IoMiwiY2xyLWljb24iLDM1KSxZdCgzKSxsdCgpLHJuKDQsTjd0LDYsMywiY2xyLXRyZWUtbm9kZSIsMSkscm4oNSxWN3QsNCwzLCJjbHItdHJlZS1ub2RlIiwyKSxsdCgpfWlmKDImZCl7Y29uc3QgaD1nLiRpbXBsaWNpdDtGaSgi''@;'; + put 'put ''Y2xyLWV4cGFuZGVkIixoLmV4cGFuZGVkKSxUdCgiY2xyRXhwYW5kZWQiLGguZXhwYW5kZWQpKCJjbHJMb2FkaW5nIixoLmxvYWRpbmdDb2x1bW5zJiYhaC5jb2x1bW5zKSx1dCgxKSxUdCgiaWQiLGguVEFCTEVVUkkpLHV0KDIpLEppKCIgIixoLlRBQkxFTkFNRSwiICIpLHV0KDEpLFR0KCJu''@;'; + put 'put ''Z0lmIixoLmNvbHVtbnMpLHV0KDEpLFR0KCJuZ0Zvck9mIixoLmNvbHVtbnMpfX1mdW5jdGlvbiBaN3QoZCxnKXtpZigxJmQpe2NvbnN0IGg9YmkoKTtydCgwLCJjbHItdHJlZS1ub2RlIiwyOCksR24oImNsaWNrIixmdW5jdGlvbih5KXtpdChoKTtjb25zdCBDPUp0KCkuJGltcGxpY2l0LEk9''@;'; + put 'put ''SnQoKTtyZXR1cm4gYShJLnRyZWVOb2RlQ2xpY2tlZCh5LEMsSS5saWJyYXJ5TGlzdCkpfSkoImNsckV4cGFuZGVkQ2hhbmdlIixmdW5jdGlvbih5KXtyZXR1cm4gaXQoaCksYShKdCgpLiRpbXBsaWNpdC5leHBhbmRlZD15KX0pLHJ0KDEsInAiLDI5KSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7''@;'; + put 'put ''aXQoaCk7Y29uc3QgeT1KdCgpLiRpbXBsaWNpdCxDPUp0KCk7cmV0dXJuIEMubGliPXkuTElCUkFSWUlELGEoQy5saWJyYXJ5T25DbGljayhDLmxpYnx8IiIseSkpfSksQ3IoMiwiY2xyLWljb24iLDMwKSxZdCgzKSxsdCgpLHJuKDQsUDd0LDYsMywiY2xyLXRyZWUtbm9kZSIsMSkscm4oNSxq''@;'; + put 'put ''N3QsNiw4LCJjbHItdHJlZS1ub2RlIiwzMSksbHQoKX1pZigyJmQpe2NvbnN0IGg9SnQoKS4kaW1wbGljaXQ7RmkoImNsci1leHBhbmRlZCIsaC5leHBhbmRlZCksVHQoImNsckV4cGFuZGVkIixoLmV4cGFuZGVkKSgiY2xyTG9hZGluZyIsaC5sb2FkaW5nVGFibGVzJiYhaC50YWJsZXMpLHV0''@;'; + put 'put ''KDMpLEppKCIgIixoLkxJQlJBUllOQU1FLCIgIiksdXQoMSksVHQoIm5nSWYiLGgudGFibGVzKSx1dCgxKSxUdCgibmdGb3JPZiIsaC50YWJsZXMpfX1mdW5jdGlvbiB6N3QoZCxnKXtpZigxJmQmJihGMCgwKSxybigxLFo3dCw2LDcsImNsci10cmVlLW5vZGUiLDI3KSxIMCgpKSwyJmQpe2Nv''@;'; + put 'put ''bnN0IGg9Zy4kaW1wbGljaXQ7dXQoMSksVHQoIm5nSWYiLCFoLmhpZGRlbiYmaC5pbkZvcmVncm91bmQpfX1mdW5jdGlvbiBHN3QoZCxnKXsxJmQmJihydCgwLCJkaXYiLDM5KSgxLCJzcGFuIiw0MCksWXQoMiwiIExvYWRpbmcuLi4gIiksbHQoKSgpKX1mdW5jdGlvbiBXN3QoZCxnKXsxJmQm''@;'; + put 'put ''JihydCgwLCJkaXYiLDQxKSxDcigxLCJjbHItaWNvbiIsNDIpLHJ0KDIsImgzIiw0MyksWXQoMywiUGxlYXNlIHNlbGVjdCBhIGNvbHVtbiBvciB0YWJsZSIpLGx0KCkoKSl9ZnVuY3Rpb24gWTd0KGQsZyl7aWYoMSZkJiYocnQoMCwiaDMiLDUyKSxZdCgxKSxsdCgpKSwyJmQpe2NvbnN0IGg9''@;'; + put 'put ''SnQoMyk7dXQoMSksSmkoIiAiLGguY3VycmVudExpbmVhZ2VQYXRoQ29sdW1uP2guY3VycmVudExpbmVhZ2VQYXRoTGliVGFibGUrIi4iK2guY3VycmVudExpbmVhZ2VQYXRoQ29sdW1uOmguY3VycmVudExpbmVhZ2VQYXRoTGliVGFibGUsIiAiKX19ZnVuY3Rpb24gVTd0KGQsZyl7aWYoMSZk''@;'; + put 'put ''JiYocnQoMCwiZGl2Iiw1MCkscm4oMSxZN3QsMiwxLCJoMyIsNTEpLGx0KCkpLDImZCl7Y29uc3QgaD1KdCgyKTt1dCgxKSxUdCgibmdJZiIsIWguY3VycmVudExpbmVhZ2VQYXRoQ29sdW1uJiYhaC5jdXJyZW50TGluZWFnZVBhdGhMaWJUYWJsZSl9fWZ1bmN0aW9uIFE3dChkLGcpe2lmKDEm''@;'; + put 'put ''ZCYmKHJ0KDAsInNwYW4iKSxZdCgxKSxydCgyLCJhIiw1MyksWXQoMyksbHQoKSxZdCg0KSxsdCgpKSwyJmQpe2NvbnN0IGg9SnQoMik7dXQoMSksSmkoIiAiLGgubGluZWFnZVRhYmxlTmFtZS5zcGxpdCgiLiIpWzBdLCIuIiksdXQoMSksVHQoInJvdXRlckxpbmsiLCIvdmlldy9kYXRhLyIr''@;'; + put 'put ''aC5saW5lYWdlVGFibGVOYW1lKSx1dCgxKSxqaShoLmxpbmVhZ2VUYWJsZU5hbWUuc3BsaXQoIi4iKVsxXSksdXQoMSksSmkoIiIsaC5saW5lYWdlQ29sdW1uTmFtZS5sZW5ndGg+MD8iLiIraC5saW5lYWdlQ29sdW1uTmFtZToiIiwiICIpfX1mdW5jdGlvbiBKN3QoZCxnKXtpZigxJmQpe2Nv''@;'; + put 'put ''bnN0IGg9YmkoKTtydCgwLCJkaXYiLDYyKSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIGl0KGgpLGEoSnQoNCkuZG93bmxvYWRQTkcoKSl9KSxZdCgxLCIgUE5HICIpLGx0KCl9fWZ1bmN0aW9uIFg3dChkLGcpe2lmKDEmZCl7Y29uc3QgaD1iaSgpO3J0KDAsImRpdiIsNjIpLEduKCJj''@;'; + put 'put ''bGljayIsZnVuY3Rpb24oKXtyZXR1cm4gaXQoaCksYShKdCg0KS5kb3dubG9hZENTVigpKX0pLFl0KDEsIiBDU1YgIiksbHQoKX19ZnVuY3Rpb24gSzd0KGQsZyl7aWYoMSZkKXtjb25zdCBoPWJpKCk7cnQoMCwiY2xyLWRyb3Bkb3duLW1lbnUiLDYxKSgxLCJkaXYiLDYyKSxHbigiY2xpY2si''@;'; + put 'put ''LGZ1bmN0aW9uKCl7cmV0dXJuIGl0KGgpLGEoSnQoMykuZG93bmxvYWRTVkcoKSl9KSxZdCgyLCJTVkciKSxsdCgpLHJuKDMsSjd0LDIsMCwiZGl2Iiw2MykscnQoNCwiZGl2Iiw2MiksR24oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBpdChoKSxhKEp0KDMpLmRvd25sb2FkRG90KCkpfSks''@;'; + put 'put ''WXQoNSwiRG90IiksbHQoKSxybig2LFg3dCwyLDAsImRpdiIsNjMpLGx0KCl9aWYoMiZkKXtjb25zdCBoPUp0KDMpO3V0KDMpLFR0KCJuZ0lmIiwhaC5oZWxwZXJTZXJ2aWNlLmlzTWljcm9zb2Z0KSx1dCgzKSxUdCgibmdJZiIsaC5mbGF0ZGF0YSl9fWZ1bmN0aW9uICQ3dChkLGcpe2lmKDEm''@;'; + put 'put ''ZCl7Y29uc3QgaD1iaSgpO3J0KDAsImNsci1jaGVja2JveC13cmFwcGVyIiw2NCkoMSwiaW5wdXQiLDY1KSxHbigiY2hhbmdlIixmdW5jdGlvbigpe3JldHVybiBpdChoKSxhKEp0KDMpLmdlbmVyYXRlR3JhcGgoKSl9KSgibmdNb2RlbENoYW5nZSIsZnVuY3Rpb24oeSl7cmV0dXJuIGl0KGgp''@;'; + put 'put ''LGEoSnQoMykucmVmcmVzaENhY2hlPXkpfSksbHQoKSxydCgyLCJsYWJlbCIpLFl0KDMsIlJlZnJlc2ggQ2FjaGUiKSxsdCgpKCl9aWYoMiZkKXtjb25zdCBoPUp0KDMpO3V0KDEpLFR0KCJuZ01vZGVsIixoLnJlZnJlc2hDYWNoZSl9fWZ1bmN0aW9uIHE3dChkLGcpe2lmKDEmZCl7Y29uc3Qg''@;'; + put 'put ''aD1iaSgpO3J0KDAsImRpdiIsNTQpKDEsImRpdiIsNTUpKDIsImRpdiIsNTYpLEduKCJjbGljayIsZnVuY3Rpb24oKXtpdChoKTtjb25zdCB5PUp0KDIpO3JldHVybiB5LmZvcndhcmRMaW5lYWdlPSExLGEoeS5yb3V0ZXIudXJsLmluY2x1ZGVzKCJjb2x1bW4iKT95Lm9uR2VuZXJhdGVDbGlj''@;'; + put 'put ''aygpOnkub25HZW5lcmF0ZUdyYXBoVGFibGVDbGljaygpKX0pLENyKDMsImlucHV0Iiw1NykscnQoNCwibGFiZWwiKSxZdCg1LCJCYWNrd2FyZCIpLGx0KCkoKSxydCg2LCJkaXYiLDU2KSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7aXQoaCk7Y29uc3QgeT1KdCgyKTtyZXR1cm4geS5mb3J3YXJk''@;'; + put 'put ''TGluZWFnZT0hMCxhKHkucm91dGVyLnVybC5pbmNsdWRlcygiY29sdW1uIik/eS5vbkdlbmVyYXRlQ2xpY2soKTp5Lm9uR2VuZXJhdGVHcmFwaFRhYmxlQ2xpY2soKSl9KSxDcig3LCJpbnB1dCIsNTcpLHJ0KDgsImxhYmVsIiksWXQoOSwiRm9yd2FyZCIpLGx0KCkoKSgpLHJ0KDEwLCJjbHIt''@;'; + put 'put ''ZHJvcGRvd24iLDU4KSgxMSwiYnV0dG9uIiw1OSksWXQoMTIsIiBEb3dubG9hZCAiKSxDcigxMywiY2xyLWljb24iLDE1KSxsdCgpLHJuKDE0LEs3dCw3LDIsImNsci1kcm9wZG93bi1tZW51IiwxNiksbHQoKSxybigxNSwkN3QsNCwxLCJjbHItY2hlY2tib3gtd3JhcHBlciIsNjApLGx0KCl9''@;'; + put 'put ''aWYoMiZkKXtjb25zdCBoPUp0KDIpO3V0KDMpLFR0KCJjaGVja2VkIiwhaC5mb3J3YXJkTGluZWFnZSksdXQoNCksVHQoImNoZWNrZWQiLGguZm9yd2FyZExpbmVhZ2UpLHV0KDQpLFR0KCJkaXNhYmxlZCIsIWguY29sdW1uJiYhaC50YWJsZSksdXQoNCksVHQoIm5nSWYiLGguY29sdW1uKX19''@;'; + put 'put ''ZnVuY3Rpb24gZXZ0KGQsZyl7MSZkJiYocnQoMCwic3BhbiIsNjkpLFl0KDEsIiBMb2FkaW5nLi4uICIpLGx0KCkpfWZ1bmN0aW9uIHR2dChkLGcpezEmZCYmQ3IoMCwic3BhbiIsNDApfWZ1bmN0aW9uIG52dChkLGcpe2lmKDEmZCYmKHJ0KDAsImRpdiIsNzApKDEsImRpdiIsNzEpLHJuKDIs''@;'; + put 'put ''dHZ0LDEsMCwic3BhbiIsNzIpLGx0KCksQ3IoMywiZGl2Iiw3MyksbHQoKSksMiZkKXtjb25zdCBoPUp0KDMpO3V0KDIpLFR0KCJuZ0lmIixoLmdyYXBoUmVuZGVyaW5nKX19ZnVuY3Rpb24gcnZ0KGQsZyl7aWYoMSZkJiYocnQoMCwiZGl2IikoMSwiZGl2Iiw2Nikscm4oMixldnQsMiwwLCJz''@;'; + put 'put ''cGFuIiw2Nykscm4oMyxudnQsNCwxLCJkaXYiLDY4KSxsdCgpKCkpLDImZCl7Y29uc3QgaD1KdCgyKTtGaSgibXQtMiIsaC50YWJsZUZsYWcpLHV0KDIpLFR0KCJuZ0lmIixoLmdyYXBoTG9hZGluZyksdXQoMSksVHQoIm5nSWYiLCFoLmdyYXBoTG9hZGluZyl9fWZ1bmN0aW9uIGl2dChkLGcp''@;'; + put 'put ''e2lmKDEmZCYmKEYwKDApLHJuKDEsVTd0LDIsMSwiZGl2Iiw0NCkscnQoMiwiZGl2Iiw0NSkoMywic2VjdGlvbiIsNDYpKDQsImRpdiIsNDcpLHJuKDUsUTd0LDUsNCwic3BhbiIsNyksbHQoKSxybig2LHE3dCwxNiw0LCJkaXYiLDQ4KSxsdCgpLHJuKDcscnZ0LDQsNCwiZGl2Iiw0OSksbHQo''@;'; + put 'put ''KSxIMCgpKSwyJmQpe2NvbnN0IGg9SnQoKTt1dCgxKSxUdCgibmdJZiIsIWguZ3JhcGhDb250YWluZXIpLHV0KDQpLFR0KCJuZ0lmIixoLmxpbmVhZ2VUYWJsZU5hbWUubGVuZ3RoPjApLHV0KDEpLFR0KCJuZ0lmIixoLmdyYXBoQ29udGFpbmVyKSx1dCgxKSxUdCgibmdJZiIsaC5ncmFwaENv''@;'; + put 'put ''bnRhaW5lcil9fWZ1bmN0aW9uIG92dChkLGcpe2lmKDEmZCl7Y29uc3QgaD1iaSgpO3J0KDAsImRpdiIsNjIpLEduKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gaXQoaCksYShKdCgyKS5yZW5kZXJUb0Rvd25sb2FkKCJQTkciKSl9KSxZdCgxLCIgUE5HICIpLGx0KCl9fWZ1bmN0aW9uIGF2''@;'; + put 'put ''dChkLGcpe2lmKDEmZCl7Y29uc3QgaD1iaSgpO3J0KDAsImNsci1kcm9wZG93bi1tZW51Iiw2MSkoMSwiZGl2Iiw2MiksR24oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBpdChoKSxhKEp0KCkucmVuZGVyVG9Eb3dubG9hZCgiU1ZHIikpfSksWXQoMiwiU1ZHIiksbHQoKSxybigzLG92dCwy''@;'; + put 'put ''LDAsImRpdiIsNjMpLHJ0KDQsImRpdiIsNjIpLEduKCJjbGljayIsZnVuY3Rpb24oKXtpdChoKTtjb25zdCB5PUp0KCk7cmV0dXJuIHkuZG93bmxvYWREb3QoKSxhKHkuY2FuY2VsUmVuZGVyaW5nR3JhcGgoKSl9KSxZdCg1LCIgRG90ICIpLGx0KCkoKX1pZigyJmQpe2NvbnN0IGg9SnQoKTt1''@;'; + put 'put ''dCgzKSxUdCgibmdJZiIsIWguaGVscGVyU2VydmljZS5pc01pY3Jvc29mdCl9fWNvbnN0IGx2dD1MKDE1NDM5KTtsZXQgWm5lPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2LHksQyxJLGosdWUpe3RoaXMuc2FzU2VydmljZT1oLHRoaXMucm91dGU9dix0aGlzLnJvdXRlcj15LHRoaXMu''@;'; + put 'put ''bG9jYXRpb249Qyx0aGlzLmV2ZW50U2VydmljZT1JLHRoaXMubG9nZ2VyU2VydmljZT1qLHRoaXMuaGVscGVyU2VydmljZT11ZSx0aGlzLnN3aXRjaEZsYWc9ITEsdGhpcy50YWJsZUZsYWc9ITAsdGhpcy5mb3J3YXJkTGluZWFnZT0hMSx0aGlzLmZsYXRkYXRhPVtdLHRoaXMuZ3JhcGhMb2Fk''@;'; + put 'put ''aW5nPSExLHRoaXMuZ3JhcGhSZW5kZXJpbmc9ITEsdGhpcy5ncmFwaENvbnRhaW5lcj0hMSx0aGlzLnZpeklucHV0PSIiLHRoaXMubGlicmFyaWVzUGFnaW5nPSExLHRoaXMubGlicmFyeVRhYmxlc1JlZj0iIix0aGlzLmxpYnJhcmllc1NlYXJjaD0iIix0aGlzLnRhYmxlQ29sdW1uc1JlZj0i''@;'; + put 'put ''Iix0aGlzLmxpbmVhZ2VUYWJsZU5hbWU9IiIsdGhpcy5saW5lYWdlQ29sdW1uTmFtZT0iIix0aGlzLmxpYj1udWxsLHRoaXMudGFibGVEaXNhYmxlPSExLHRoaXMucmVmcmVzaENhY2hlPSExLHRoaXMuY3VycmVudExpbmVhZ2VQYXRoTGliVGFibGU9IiIsdGhpcy5jdXJyZW50TGluZWFnZVBh''@;'; + put 'put ''dGhDb2x1bW49IiIsdGhpcy5sYXJnZURvdEZpbGVMaW5lcz1udWxsLHRoaXMubGFyZ2VEb3RGaWxlTGltaXQ9MWUzLHRoaXMucGVuZGluZ1JlbmRlckRvd25sb2FkPW51bGwsdGhpcy5kZWJvdW5jZVRpbWU9NTAwfXNob3dUYWJsZVNlbGVjdCgpe3RoaXMudGFibGVGbGFnPSF0aGlzLnRhYmxl''@;'; + put 'put ''RmxhZ310YWJsZU9uQ2xpY2soaCx2LHksQz0hMSl7cmV0dXJuIG5vKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXt2LmNvbHVtbnM/KHYuZXhwYW5kZWQ9IXYuZXhwYW5kZWQsITA9PT12LmV4cGFuZGVkJiYodGhpcy50YWJsZT1oLEN8fHRoaXMub25HZW5lcmF0ZUdyYXBoVGFibGVD''@;'; + put 'put ''bGljaygpKSk6KHYuZXhwYW5kZWQ9IXYuZXhwYW5kZWQsdi5sb2FkaW5nQ29sdW1ucz0hMCx0aGlzLnRhYmxlPWgsdGhpcy5jdXJyZW50TGluZWFnZVBhdGhMaWJUYWJsZT12LkxJQk5BTUUrIi4iK3YuVEFCTEVOQU1FLHlpZWxkIHRoaXMuc2VsZWN0VGFibGUoaCx2KSxDfHx0aGlzLm9uR2Vu''@;'; + put 'put ''ZXJhdGVHcmFwaFRhYmxlQ2xpY2soKSksdGhpcy5jb2xsYXBzZVRyZWVJdGVtcyh5LnRhYmxlcyx2KX0pfXNlbGVjdFRhYmxlKGgsdil7cmV0dXJuIG5vKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXt0aGlzLmNvbHVtbnNMaXN0PVtdO2xldCB5PXtTQVNDb250cm9sVGFibGU6W3t0''@;'; + put 'put ''YWJsZXVyaTpofV19O3lpZWxkIHRoaXMuc2FzU2VydmljZS5yZXF1ZXN0KCJsaW5lYWdlL2dldG1ldGFjb2xzIix5KS50aGVuKEM9Pnt0aGlzLmNvbHVtbnNMaXN0PUMubWV0YWNvbHMsdGhpcy5jb2x1bW5zTGlzdCYmdGhpcy5jb2x1bW5zTGlzdC5sZW5ndGg+MCYmKHYuY29sdW1ucz10aGlz''@;'; + put 'put ''LmNvbHVtbnNMaXN0LHYuZXhwYW5kZWQ9ITAsdi5sb2FkaW5nQ29sdW1ucz0hMSl9KS5jYXRjaChDPT5DKSx0aGlzLnNldEdsb2JhbERhdGEoKX0pfWxvYWRNb3JlTGlicmFyaWVzKCl7dGhpcy5saWJyYXJpZXNQYWdpbmd8fCh0aGlzLmxpYnJhcmllc1BhZ2luZz0hMCx0aGlzLmhlbHBlclNl''@;'; + put 'put ''cnZpY2UuZGlzcGxheUxpYnJhcmllcyh0aGlzLmxpYnJhcnlMaXN0LCEwKSx0aGlzLmxpYnJhcmllc1BhZ2luZz0hMSl9Y29sbGFwc2VUcmVlSXRlbXMoaCx2KXtoLmZvckVhY2goeT0+e0pTT04uc3RyaW5naWZ5KHkpIT09SlNPTi5zdHJpbmdpZnkodikmJih5LmV4cGFuZGVkPSExKX0pfXRy''@;'; + put 'put ''ZWVOb2RlQ2xpY2tlZChoLHYseSl7IkNvbGxhcHNlIj09PWgudGFyZ2V0LnRpdGxlJiZ0aGlzLmNvbGxhcHNlVHJlZUl0ZW1zKHksdil9bGlicmFyeU9uQ2xpY2soaCx2KXtyZXR1cm4gbm8odGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe3YudGFibGVzP3YuZXhwYW5kZWQ9IXYuZXhw''@;'; + put 'put ''YW5kZWQ6KHYubG9hZGluZ1RhYmxlcz0hMCx5aWVsZCB0aGlzLnNlbGVjdExpYnJhcnkoaCx2KSksdGhpcy5jb2xsYXBzZVRyZWVJdGVtcyh0aGlzLmxpYnJhcnlMaXN0LHYpfSl9c2VsZWN0TGlicmFyeShoLHYpe3JldHVybiBubyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7dGhp''@;'; + put 'put ''cy50YWJsZXNMaXN0PVtdLHRoaXMuY29sdW1uc0xpc3Q9W107bGV0IHk9e1NBU0NvbnRyb2xUYWJsZTpbe2xpYnVyaTpofV19O3lpZWxkIHRoaXMuc2FzU2VydmljZS5yZXF1ZXN0KCJsaW5lYWdlL2dldG1ldGF0YWJsZXMiLHkpLnRoZW4oQz0+e3RoaXMudGFibGVzTGlzdD1DLm1ldGF0YWJs''@;'; + put 'put ''ZXMsdGhpcy50YWJsZXNMaXN0JiZ0aGlzLnRhYmxlc0xpc3QubGVuZ3RoPjAmJih2LnRhYmxlcz10aGlzLnRhYmxlc0xpc3Qsdi5leHBhbmRlZD0hMCksdGhpcy5zZXRHbG9iYWxEYXRhKCl9KS5jYXRjaChDPT5DKSx2LmxvYWRpbmdUYWJsZXM9ITF9KX1jb2x1bW5PbkNsaWNrKGgsdix5KXt0''@;'; + put 'put ''aGlzLmxpYj12LkxJQlJBUllJRCx0aGlzLnRhYmxlPXkuVEFCTEVVUkksdGhpcy5jb2x1bW49aC5DT0xVUkksdGhpcy5zZXRHbG9iYWxEYXRhKCksdGhpcy5vbkdlbmVyYXRlQ2xpY2soKX10cmVlT25GaWx0ZXIoaCx2KXt0aGlzLmhlbHBlclNlcnZpY2UudHJlZU9uRmlsdGVyKGgsdil9bGli''@;'; + put 'put ''cmFyeU9uRmlsdGVyKCl7dGhpcy5oZWxwZXJTZXJ2aWNlLmxpYnJhcnlPbkZpbHRlcih0aGlzLmxpYnJhcnlMaXN0LHRoaXMubGlicmFyaWVzU2VhcmNoLCJMSUJSQVJZTkFNRSIpLG5pLmxpbmVhZ2UubGlicmFyaWVzU2VhcmNoPXRoaXMubGlicmFyaWVzU2VhcmNofWxpYkNvbHVtbkFjdGl2''@;'; + put 'put ''ZShoKXtpZighdGhpcy5jb2x1bW4pcmV0dXJuITE7bGV0IHY9aC5zcGxpdCgiXFwiKSx5PXRoaXMuY29sdW1uLnNwbGl0KCJcXCIpO3JldHVybiB2W3YubGVuZ3RoLTFdPT15W3kubGVuZ3RoLTFdfXNldEdsb2JhbERhdGEoKXtuaS5saW5lYWdlLmxpYnJhcnlMaXN0PXRoaXMubGlicmFyeUxp''@;'; + put 'put ''c3QsbmkubGluZWFnZS50YWJsZXNMaXN0PXRoaXMudGFibGVzTGlzdCxuaS5saW5lYWdlLmNvbHVtbnNMaXN0PXRoaXMuY29sdW1uc0xpc3QsbmkubGluZWFnZS5saWI9dGhpcy5saWIsbmkubGluZWFnZS50YWJsZT10aGlzLnRhYmxlLG5pLmxpbmVhZ2UuY29sdW1uPXRoaXMuY29sdW1ufWxv''@;'; + put 'put ''YWRHbG9iYWxEYXRhKCl7dGhpcy5saWJyYXJ5TGlzdD1uaS5saW5lYWdlLmxpYnJhcnlMaXN0LHRoaXMudGFibGVzTGlzdD1uaS5saW5lYWdlLnRhYmxlc0xpc3QsdGhpcy5jb2x1bW5zTGlzdD1uaS5saW5lYWdlLmNvbHVtbnNMaXN0LHRoaXMubGlicmFyaWVzU2VhcmNoPW5pLmxpbmVhZ2Uu''@;'; + put 'put ''bGlicmFyaWVzU2VhcmNofXJlc3VibWl0V2l0aE1heERlcHRoKGgpe3RoaXMuY2FuY2VsUmVuZGVyaW5nR3JhcGgoKSx0aGlzLnJvdXRlci5uYXZpZ2F0ZShbXSx7cmVsYXRpdmVUbzp0aGlzLnJvdXRlLHF1ZXJ5UGFyYW1zOnttYXhfZGVwdGg6aH19KX1uZ09uSW5pdCgpe25pLnZpZXdlci5j''@;'; + put 'put ''dXJyZW50U2VsZWN0aW9uPSJ2aWV3L2xpbmVhZ2UiO2xldCBoPXRoaXMucm91dGUuc25hcHNob3QucGFyYW1zLnJlbG9hZDtpZih2b2lkIDAhPT1oKXtsZXQgdj10aGlzLnJvdXRlci51cmw7InJlbG9hZCI9PT1oP2xvY2FsU3RvcmFnZS5nZXRJdGVtKCJmaXJzdExvYWQiKT8obG9jYWxTdG9y''@;'; + put 'put ''YWdlLnJlbW92ZUl0ZW0oImZpcnN0TG9hZCIpLHRoaXMubG9jYXRpb24ucmVwbGFjZVN0YXRlKHYuc2xpY2UoMCx2Lmxhc3RJbmRleE9mKCIvIikpKSk6KGxvY2FsU3RvcmFnZS5maXJzdExvYWQ9ITAsc2V0VGltZW91dChmdW5jdGlvbigpe3dpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKX0sMmUz''@;'; + put 'put ''KSk6dGhpcy5sb2NhdGlvbi5yZXBsYWNlU3RhdGUodi5zbGljZSgwLHYubGFzdEluZGV4T2YoIi8iKSkpfXRoaXMuaW5pdERhdGEoKX1pbml0RGF0YSgpe3JldHVybiBubyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7bmkubGluZWFnZS5saWJyYXJ5TGlzdCYmKG5pLmxpbmVhZ2Uu''@;'; + put 'put ''bGlicmFyeUxpc3QubGVuZ3RoPjA/dGhpcy5sb2FkR2xvYmFsRGF0YSgpOnlpZWxkIHRoaXMuc2FzU2VydmljZS5yZXF1ZXN0KCJwdWJsaWMvdmlld2xpYnMiLG51bGwpLnRoZW4oQz0+e3RoaXMubGlicmFyeUxpc3Q9Qy5zYXNsaWJzLHRoaXMuaGVscGVyU2VydmljZS5kaXNwbGF5TGlicmFy''@;'; + put 'put ''aWVzKHRoaXMubGlicmFyeUxpc3QpLHRoaXMubGlicmFyeUxpc3QmJnRoaXMubGlicmFyeUxpc3QubGVuZ3RoPjAmJih0aGlzLmxpYj10aGlzLmxpYnJhcnlMaXN0WzBdLkxJQlJBUllJRCksdGhpcy5zZXRHbG9iYWxEYXRhKCl9KS5jYXRjaChDPT5DKSx0aGlzLnJvdXRlLnF1ZXJ5UGFyYW1z''@;'; + put 'put ''LnN1YnNjcmliZShDPT57dGhpcy5vblJvdXRlQ2hhbmdlKCl9KSx0aGlzLnJvdXRlLnBhcmFtcy5zdWJzY3JpYmUoQz0+e3RoaXMub25Sb3V0ZUNoYW5nZSgpfSkpfSl9b25Sb3V0ZUNoYW5nZSgpe2NsZWFyVGltZW91dCh0aGlzLmRlYm91bmNlVGltZW91dCksdGhpcy5kZWJvdW5jZVRpbWVv''@;'; + put 'put ''dXQ9c2V0VGltZW91dCgoKT0+e2NvbnN0IGg9dGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbXMuY29sdXJpLHY9dGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbXMuZGlyZWN0aW9uLHk9dGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbXMudGFibGVpZCxDPXRoaXMucm91dGUuc25hcHNob3QucXVlcnlQ''@;'; + put 'put ''YXJhbXMubWF4X2RlcHRoO2gmJnYmJih0aGlzLmZvcndhcmRMaW5lYWdlPSJGT1JXQVJEIj09PXYsdGhpcy5jb2x1bW49aCx0aGlzLmdlbmVyYXRlR3JhcGgoaCx2LEMpKSwhdGhpcy5yb3V0ZXIudXJsLmluY2x1ZGVzKCJjb2x1bW4iKSYmeSYmdiYmKHRoaXMuZm9yd2FyZExpbmVhZ2U9IkZP''@;'; + put 'put ''UldBUkQiPT09dix0aGlzLnRhYmxlPXksdGhpcy5nZW5lcmF0ZUdyYXBoVGFibGVMZXZlbCh5LHYsQykpfSx0aGlzLmRlYm91bmNlVGltZW91dCl9bmdBZnRlckNvbnRlbnRJbml0KCl7fWRpcmVjdGlvblRleHQoKXtyZXR1cm4gdGhpcy5mb3J3YXJkTGluZWFnZT8iRk9SV0FSRCI6IlJFVkVS''@;'; + put 'put ''U0UifW9uR2VuZXJhdGVDbGljaygpe2xldCBoPXRoaXMuZGlyZWN0aW9uVGV4dCgpLHY9dGhpcy5jb2x1bW4/dGhpcy5jb2x1bW4uc3Vic3RyaW5nKHRoaXMuY29sdW1uLmluZGV4T2YoIlxcIikrMSk6bnVsbDt0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKCIvdmlldy9saW5lYWdlL2NvbHVt''@;'; + put 'put ''bi8iK3YrIi8iK2gpfW9uR2VuZXJhdGVHcmFwaFRhYmxlQ2xpY2soKXtsZXQgaD10aGlzLmRpcmVjdGlvblRleHQoKSx2PXRoaXMudGFibGUuc3BsaXQoIlxcIilbMV07dGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCgiL3ZpZXcvbGluZWFnZS8iK3YrIi8iK2gpfWdlbmVyYXRlR3JhcGhUYWJs''@;'; + put 'put ''ZUxldmVsKGgsdix5KXtyZXR1cm4gbm8odGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe2xldCBDPXtTQVNDb250cm9sVGFibGU6W3t0YWJsZV9pZDpoLGRpcmVjdGlvbjp2fHx0aGlzLmRpcmVjdGlvblRleHQoKX1dfTtyZXR1cm4geSYmKEMuU0FTQ29udHJvbFRhYmxlWzBdLm1heF9k''@;'; + put 'put ''ZXB0aD15KSx0aGlzLnRhYmxlRmxhZz0hMSx0aGlzLnN3aXRjaEZsYWc9ITAsdGhpcy5ncmFwaENvbnRhaW5lcj0hMCx0aGlzLmdyYXBoTG9hZGluZz0hMCx0aGlzLnZpeklucHV0PSIiLG5ldyBQcm9taXNlKChJLGopPT57dGhpcy5zYXNTZXJ2aWNlLnJlcXVlc3QoImxpbmVhZ2UvZmV0Y2h0''@;'; + put 'put ''YWJsZWxpbmVhZ2UiLEMpLnRoZW4odWU9Pm5vKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtpZigic3RyaW5nIj09dHlwZW9mIHVlKXJldHVybiB0aGlzLnZpeklucHV0PSJkaWdyYXBoIEcge1NBUyBFcnJvcn0iLHZvaWQgdGhpcy5idWlsZEdyYXBoKCk7dGhpcy5saW5lYWdlVGFi''@;'; + put 'put ''bGVOYW1lPXVlLmluZm9bMF0uTElCUkVGKyIuIit1ZS5pbmZvWzBdLlRBQkxFTkFNRTtsZXQgX2U9dWUuZmluYWxmaW5hbCxCZT0iIjtmb3IobGV0IE5lPTA7TmU8X2UubGVuZ3RoO05lKyspQmUrPXVuZXNjYXBlKF9lW05lXS5MSU5FKSsiXG4iO2lmKHRoaXMuZmxhdGRhdGE9dWUuZmxhdGRh''@;'; + put 'put ''dGEsdGhpcy5saWJyYXJ5TGlzdCl7bGV0IEtlLE5lPXRoaXMubGlicmFyeUxpc3QuZmluZChkdD0+ZHQuTElCUkFSWVJFRi50b0xvd2VyQ2FzZSgpPT09dWUuaW5mb1swXS5MSUJSRUYudG9Mb3dlckNhc2UoKSk7aWYoeWllbGQgdGhpcy5saWJyYXJ5T25DbGljayhOZS5MSUJSQVJZSUQsTmUp''@;'; + put 'put ''LE5lLnRhYmxlcyYmKEtlPU5lLnRhYmxlcy5maW5kKGR0PT5kdC5UQUJMRVVSSS5zcGxpdCgiXFwiKVsxXT09PXVlLmluZm9bMF0uVEFCTEVJRCksS2UpKXtpZih0aGlzLnRhYmxlPUtlLlRBQkxFVVJJLHRoaXMudGFibGUpe2NvbnN0IGR0PXRoaXMudGFibGUucmVwbGFjZSgiXFwiLCJcXFxc''@;'; + put 'put ''Iik7bGV0IE90PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYFtpZD0nJHtkdH0nXWApO3NldFRpbWVvdXQoKCk9PntPdCYmT3Quc2Nyb2xsSW50b1ZpZXcoKX0sMWUzKX10aGlzLnRhYmxlT25DbGljayhLZS5UQUJMRVVSSSxLZSxOZSx2b2lkIDAhPT12KX1OZSYmKE5lLmV4cGFuZGVkPSEwKSxL''@;'; + put 'put ''ZSYmKEtlLmV4cGFuZGVkPSEwKX10aGlzLnZpeklucHV0PUJlfHwiZGlncmFwaCBHIHtObyBMaW5lYWdlIEF2YWlsYWJsZX0iLHRoaXMudml6SW5wdXQ9dGhpcy52aXpJbnB1dC5yZXBsYWNlKC9cc2RzOi9nLCJcbmRzOiIpLnJlcGxhY2UoL1xzXG4vZywiXG4iKSx0aGlzLmlkbG9va3VwPXVl''@;'; + put 'put ''LmlkbG9va3VwLHVlLmZpbmFsZmluYWwubGVuZ3RoPnRoaXMubGFyZ2VEb3RGaWxlTGltaXQ/dGhpcy5sYXJnZURvdEZpbGVMaW5lcz11ZS5maW5hbGZpbmFsLmxlbmd0aDp0aGlzLmJ1aWxkR3JhcGgoKSxJKCl9KSkuY2F0Y2godWU9Pnt0aGlzLmdyYXBoTG9hZGluZz0hMSx0aGlzLmdyYXBo''@;'; + put 'put ''Q29udGFpbmVyPSExfSl9KX0pfWNhbmNlbFJlbmRlcmluZ0dyYXBoKCl7dGhpcy52aXpJbnB1dD0iZGlncmFwaCBHIHtObyBMaW5lYWdlIEF2YWlsYWJsZX0iLHRoaXMubGFyZ2VEb3RGaWxlTGluZXM9bnVsbCx0aGlzLmJ1aWxkR3JhcGgoKX1jb250aW51ZVJlbmRlcmluZ0dyYXBoKCl7dGhp''@;'; + put 'put ''cy5sYXJnZURvdEZpbGVMaW5lcz1udWxsLHRoaXMuYnVpbGRHcmFwaCgoKT0+e2lmKG51bGwhPT10aGlzLnBlbmRpbmdSZW5kZXJEb3dubG9hZCl7c3dpdGNoKHRoaXMucGVuZGluZ1JlbmRlckRvd25sb2FkKXtjYXNlIlBORyI6dGhpcy5kb3dubG9hZFBORygpO2JyZWFrO2Nhc2UiU1ZHIjp0''@;'; + put 'put ''aGlzLmRvd25sb2FkU1ZHKCl9dGhpcy5wZW5kaW5nUmVuZGVyRG93bmxvYWQ9bnVsbCx0aGlzLnZpeklucHV0PSJkaWdyYXBoIEcge05vIExpbmVhZ2UgQXZhaWxhYmxlfSIsdGhpcy5idWlsZEdyYXBoKCl9fSl9cmVuZGVyVG9Eb3dubG9hZChoKXtzd2l0Y2goaCl7Y2FzZSJQTkciOnRoaXMu''@;'; + put 'put ''cGVuZGluZ1JlbmRlckRvd25sb2FkPSJQTkciLHRoaXMuY29udGludWVSZW5kZXJpbmdHcmFwaCgpO2JyZWFrO2Nhc2UiU1ZHIjp0aGlzLnBlbmRpbmdSZW5kZXJEb3dubG9hZD0iU1ZHIix0aGlzLmNvbnRpbnVlUmVuZGVyaW5nR3JhcGgoKX19bWFrZUdyYXBoTGlua2FibGUoaCl7bGV0IHY9''@;'; + put 'put ''ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiI2dyYXBoIC5ub2RlIik7Zm9yKGxldCB5IG9mIHYpe2xldCBqLEM9eS5xdWVyeVNlbGVjdG9yKCJ0aXRsZSIpLmlubmVySFRNTCxJPWguZmluZCh1ZT0+dWUuTUVUQUlEPT09Qyk7SSYmKGo9IlRBQkxFIj09PUkuTUVUQVRZUEU/Ii92aWV3L2Rh''@;'; + put 'put ''dGEvIitJLk1FVEFOQU1FOiIvdmlldy9tZXRhZGF0YS9vYmplY3QvIitJLk1FVEFJRCx5LmNsYXNzTGlzdC5hZGQoImN1cnNvci1wb2ludGVyIikseS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsdWU9Pnt0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKGopfSkpfX1nZW5lcmF0ZUdyYXBoKGgs''@;'; + put 'put ''dix5KXtyZXR1cm4gbm8odGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe2xldCBDPXtTQVNDb250cm9sVGFibGU6W3tjb2x1cmk6aHx8dGhpcy5jb2x1bW4sZGlyZWN0aW9uOnZ8fHRoaXMuZGlyZWN0aW9uVGV4dCgpLHJlZnJlc2g6dGhpcy5yZWZyZXNoQ2FjaGU/MTowfV19O3JldHVy''@;'; + put 'put ''biB5JiYoQy5TQVNDb250cm9sVGFibGVbMF0ubWF4X2RlcHRoPXkpLHRoaXMudGFibGVGbGFnPSExLHRoaXMuc3dpdGNoRmxhZz0hMCx0aGlzLmdyYXBoQ29udGFpbmVyPSEwLHRoaXMuZ3JhcGhMb2FkaW5nPSEwLHRoaXMudml6SW5wdXQ9IiIsbmV3IFByb21pc2UoKEksaik9Pnt0aGlzLnNh''@;'; + put 'put ''c1NlcnZpY2UucmVxdWVzdCgibGluZWFnZS9mZXRjaGxpbmVhZ2UiLEMpLnRoZW4odWU9Pm5vKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtpZigic3RyaW5nIj09dHlwZW9mIHVlKXJldHVybiB0aGlzLnZpeklucHV0PSJkaWdyYXBoIEcge1NBUyBFcnJvcn0iLHZvaWQgdGhpcy5i''@;'; + put 'put ''dWlsZEdyYXBoKCk7dGhpcy5saW5lYWdlVGFibGVOYW1lPXVlLmluZm9bMF0uTElCUkVGKyIuIit1ZS5pbmZvWzBdLlRBQk5BTUUsdGhpcy5saW5lYWdlQ29sdW1uTmFtZT11ZS5pbmZvWzBdLkNPTE5BTUUsdGhpcy5pZGxvb2t1cD11ZS5pZGxvb2t1cDtsZXQgX2U9dWUuZnJvbXNhcyxCZT0i''@;'; + put 'put ''Ijtmb3IobGV0IE5lPTA7TmU8X2UubGVuZ3RoO05lKyspQmUrPXVuZXNjYXBlKF9lW05lXS5TVFJJTkcpKyJcbiI7aWYodGhpcy52aXpJbnB1dD1CZXx8ImRpZ3JhcGggRyB7Tm8gTGluZWFnZSBBdmFpbGFibGV9Iix0aGlzLnZpeklucHV0PXRoaXMudml6SW5wdXQucmVwbGFjZSgvXHNkczov''@;'; + put 'put ''ZywiXG5kczoiKS5yZXBsYWNlKC9cc1xuL2csIlxuIiksdGhpcy5mbGF0ZGF0YT11ZS5mbGF0ZGF0YSx0aGlzLmxpYnJhcnlMaXN0KXtsZXQgS2UsTmU9dGhpcy5saWJyYXJ5TGlzdC5maW5kKGR0PT5kdC5MSUJSQVJZUkVGPT09dWUuaW5mb1swXS5MSUJSRUYpO05lfHwoTmU9dGhpcy5saWJy''@;'; + put 'put ''YXJ5TGlzdC5maW5kKGR0PT5kdC5saWJyYXJ5cmVmPT09dWUuaW5mb1swXS5saWJyZWYpKSxOZSYmKHlpZWxkIHRoaXMubGlicmFyeU9uQ2xpY2soTmUuTElCUkFSWUlELE5lKSxOZS50YWJsZXMmJihLZT1OZS50YWJsZXMuZmluZChkdD0+ZHQuVEFCTEVVUkk9PT11ZS5pbmZvWzBdLlRBQlVS''@;'; + put 'put ''SSksdGhpcy50YWJsZU9uQ2xpY2soS2UuVEFCTEVVUkksS2UsTmUsITApLnRoZW4oKCk9PntsZXQgZHQ9S2UuVEFCTEVVUkk7aWYoZHQpe2NvbnN0IE90PWR0LnJlcGxhY2UoIlxcIiwiXFxcXCIpO2xldCAkdD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKGBbaWQ9JyR7T3R9J11gKTtzZXRUaW1l''@;'; + put 'put ''b3V0KCgpPT57JHQmJih0aGlzLmxvZ2dlclNlcnZpY2UubG9nKCJsaWJyYXJ5VG9TZWxlY3QiLE5lKSwkdC5zY3JvbGxJbnRvVmlldygpKX0sMWUzKX19KSksTmUmJihOZS5leHBhbmRlZD0hMCksS2UmJihLZS5leHBhbmRlZD0hMCkpfXVlLmZyb21zYXMubGVuZ3RoPnRoaXMubGFyZ2VEb3RG''@;'; + put 'put ''aWxlTGltaXQ/dGhpcy5sYXJnZURvdEZpbGVMaW5lcz11ZS5mcm9tc2FzLmxlbmd0aDp0aGlzLmJ1aWxkR3JhcGgoKSxJKCl9KSkuY2F0Y2godWU9Pnt0aGlzLmdyYXBoTG9hZGluZz0hMSx0aGlzLmdyYXBoQ29udGFpbmVyPSExfSl9KX0pfWdldFNWR1VSTCgpe2xldCBoPWRvY3VtZW50Lmdl''@;'; + put 'put ''dEVsZW1lbnRCeUlkKCJncmFwaCIpLHY9bmV3IFhNTFNlcmlhbGl6ZXIseT1uZXcgQmxvYihbdi5zZXJpYWxpemVUb1N0cmluZyhoKV0se3R5cGU6ImltYWdlL3N2Zyt4bWwifSk7cmV0dXJuIFVSTC5jcmVhdGVPYmplY3RVUkwoeSl9Z2V0U1ZHQmxvYigpe2xldCBoPWRvY3VtZW50LmdldEVs''@;'; + put 'put ''ZW1lbnRCeUlkKCJncmFwaCIpLHY9bmV3IFhNTFNlcmlhbGl6ZXI7cmV0dXJuIG5ldyBCbG9iKFt2LnNlcmlhbGl6ZVRvU3RyaW5nKGgpXSx7dHlwZToiaW1hZ2Uvc3ZnK3htbCJ9KX1kb3dubG9hZFNWRygpe2lmKERtZS5ncmFwaHZpeigiI2dyYXBoIikucmVzZXRab29tKCksbmF2aWdhdG9y''@;'; + put 'put ''LmFwcFZlcnNpb24udG9TdHJpbmcoKS5pbmRleE9mKCIuTkVUIik+MCl3aW5kb3cubmF2aWdhdG9yLm1zU2F2ZUJsb2IodGhpcy5nZXRTVkdCbG9iKCksdGhpcy5jb25zdHJ1Y3ROYW1lKCJzdmciKSk7ZWxzZXtsZXQgaD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIik7aC5ocmVmPXRoaXMu''@;'; + put 'put ''Z2V0U1ZHVVJMKCksaC5kb3dubG9hZD10aGlzLmNvbnN0cnVjdE5hbWUoInN2ZyIpLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaCksaC5jbGljaygpLGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoaCl9fWRvd25sb2FkUE5HKCl7cmV0dXJuIG5vKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5j''@;'; + put 'put ''dGlvbiooKXtEbWUuZ3JhcGh2aXooIiNncmFwaCIpLnJlc2V0Wm9vbSgpLEk3dC5zYXZlU3ZnQXNQbmcoZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2dyYXBoIHN2ZyIpLHRoaXMuY29uc3RydWN0TmFtZSgicG5nIikpfSl9ZG93bmxvYWRDU1YoKXtsZXQgaD10aGlzLmZsYXRkYXRhO2NvbnN0''@;'; + put 'put ''IHY9KEJlLE5lKT0+bnVsbD09PU5lPyIiOk5lLHk9T2JqZWN0LmtleXMoaFswXSk7bGV0IEM9aC5tYXAoQmU9PnkubWFwKE5lPT5KU09OLnN0cmluZ2lmeShCZVtOZV0sdikpLmpvaW4oIiwiKSk7Qy51bnNoaWZ0KHkuam9pbigiLCIpKTtsZXQgST1DLmpvaW4oIlxyXG4iKTt2YXIgaj1kb2N1''@;'; + put 'put ''bWVudC5jcmVhdGVFbGVtZW50KCJhIiksdWU9bmV3IEJsb2IoW0ldLHt0eXBlOiJ0ZXh0L2NzdiJ9KTtpZihuYXZpZ2F0b3IuYXBwVmVyc2lvbi50b1N0cmluZygpLmluZGV4T2YoIi5ORVQiKT4wKXdpbmRvdy5uYXZpZ2F0b3IubXNTYXZlQmxvYih1ZSx0aGlzLmNvbnN0cnVjdE5hbWUoImNz''@;'; + put 'put ''diIpKTtlbHNle3ZhciBfZT13aW5kb3cuVVJMLmNyZWF0ZU9iamVjdFVSTCh1ZSk7ai5ocmVmPV9lLGouZG93bmxvYWQ9dGhpcy5jb25zdHJ1Y3ROYW1lKCJjc3YiKSxqLmNsaWNrKCksd2luZG93LlVSTC5yZXZva2VPYmplY3RVUkwoX2UpLGoucmVtb3ZlKCl9fWdldERvdFVybCgpe2xldCB2''@;'; + put 'put ''PW5ldyBCbG9iKFt0aGlzLnZpeklucHV0XSx7dHlwZToidGV4dC9wbGFpbiJ9KTtyZXR1cm4gd2luZG93LlVSTC5jcmVhdGVPYmplY3RVUkwodil9Z2V0RG90QmxvYigpe3JldHVybiBuZXcgQmxvYihbdGhpcy52aXpJbnB1dF0se3R5cGU6InRleHQvcGxhaW4ifSl9ZG93bmxvYWREb3QoKXtp''@;'; + put 'put ''ZihuYXZpZ2F0b3IuYXBwVmVyc2lvbi50b1N0cmluZygpLmluZGV4T2YoIi5ORVQiKT4wKXdpbmRvdy5uYXZpZ2F0b3IubXNTYXZlQmxvYih0aGlzLmdldERvdEJsb2IoKSx0aGlzLmNvbnN0cnVjdE5hbWUoInR4dCIpKTtlbHNle2xldCBoPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKTto''@;'; + put 'put ''LmhyZWY9dGhpcy5nZXREb3RVcmwoKSxoLmRvd25sb2FkPXRoaXMuY29uc3RydWN0TmFtZSgidHh0IiksZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChoKSxoLmNsaWNrKCksZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChoKX19c2hvd1N2Zygpe3dpbmRvdy5vcGVuKHRoaXMuZ2V0U1ZHVVJM''@;'; + put 'put ''KCksIl9ibGFuayIpfWJ1aWxkR3JhcGgoaCl7dGhpcy5ldmVudFNlcnZpY2UuY2xvc2VTaWRlYmFyKCksdGhpcy5ncmFwaExvYWRpbmc9ITEsdGhpcy5ncmFwaFJlbmRlcmluZz0hMCxzZXRUaW1lb3V0KCgpPT57RG1lLmdyYXBodml6KCIjZ3JhcGgiKS56b29tKCEwKS50b3RhbE1lbW9yeSg2''@;'; + put 'put ''NzEwODg2NCkuYWRkSW1hZ2UoImh0dHBzOi8vZGF0YWNvbnRyb2xsZXIuaW8vd3AtY29udGVudC91cGxvYWRzLzIwMjAvMDEvZmMxLnBuZyIsIjMwcHgiLCIzMHB4IikucmVuZGVyRG90KHRoaXMudml6SW5wdXQsKCk9Pnt0aGlzLmdyYXBoUmVuZGVyaW5nPSExLHRoaXMuaWRsb29rdXAmJnRo''@;'; + put 'put ''aXMubWFrZUdyYXBoTGlua2FibGUodGhpcy5pZGxvb2t1cCksaCYmaCgpfSl9LDEwMCl9Y29uc3RydWN0TmFtZShoKXtsZXQgdj0iIix5PSIiLEM9IiIsST1sdnQoKS5mb3JtYXQoIllZTU1ERF9ISG1tIik7aWYodGhpcy5saWJyYXJ5TGlzdCYmdGhpcy5saWJyYXJ5TGlzdC5sZW5ndGgpe2xl''@;'; + put 'put ''dCBqPXRoaXMubGlicmFyeUxpc3QuZmluZCh1ZT0+dWUuTElCUkFSWUlEPT10aGlzLmxpYik7aiYmKHY9YF8ke2ouTElCUkFSWU5BTUV9YCl9aWYodGhpcy50YWJsZXNMaXN0JiZ0aGlzLnRhYmxlc0xpc3QubGVuZ3RoKXtsZXQgaj10aGlzLnRhYmxlc0xpc3QuZmluZCh1ZT0+dWUuVEFCTEVV''@;'; + put 'put ''Ukk9PXRoaXMudGFibGUpO2omJih5PWBfJHtqLlRBQkxFTkFNRX1gKX1pZih0aGlzLmNvbHVtbnNMaXN0JiZ0aGlzLmNvbHVtbnNMaXN0Lmxlbmd0aCl7bGV0IGo9dGhpcy5jb2x1bW5zTGlzdC5maW5kKHVlPT51ZS5DT0xVUkk9PXRoaXMuY29sdW1uKTtqJiYoQz1gXyR7ai5DT0xOQU1FfWAp''@;'; + put 'put ''fXJldHVybmAke3RoaXMuZGlyZWN0aW9uVGV4dCgpfSR7dn0ke3l9JHtDfV8ke0l9LiR7aH1gfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShLdChnMiksS3QoUHUpLEt0KFpsKSxLdChWNiksS3QobXUpLEt0KHNjKSxLdChYYykpfSxkLlx1MDI3NWNt''@;'; + put 'put ''cD1UaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJhcHAtbGluZWFnZSJdXSxob3N0QXR0cnM6WzEsImNvbnRlbnQtY29udGFpbmVyIl0sZGVjbHM6NDEsdmFyczo5LGNvbnN0czpbWzMsInNjcm9sbGVkVG9Cb3R0b20iXSxbImNsYXNzIiwic2VhcmNoLW5vZGUiLDQsIm5nSWYiXSxbNCwibmdGb3Ii''@;'; + put 'put ''LCJuZ0Zvck9mIl0sWyJjbGFzcyIsInctMTAwIHRleHQtY2VudGVyIiw0LCJuZ0lmIl0sWzEsImNvbnRlbnQtYXJlYSJdLFsxLCJjYXJkIl0sWyJjbGFzcyIsIm5vLXRhYmxlLXNlbGVjdGVkIiw0LCJuZ0lmIl0sWzQsIm5nSWYiXSxbMywiY2xyTW9kYWxPcGVuIiwiY2xyTW9kYWxDbG9zYWJs''@;'; + put 'put ''ZSJdLFsxLCJtb2RhbC10aXRsZSJdLFsxLCJtb2RhbC1ib2R5Il0sWzEsIm1vZGFsLWZvb3RlciIsImQtZmxleCIsImZsZXgtY29sdW1uIl0sWzEsImJpZ2xpbmVhZ2Utcm93Il0sWyJ0eXBlIiwiYnV0dG9uIiwxLCJidG4iLCJidG4tc20iLCJidG4tcHJpbWFyeSIsMywiY2xpY2siXSxbImNs''@;'; + put 'put ''ckRyb3Bkb3duVHJpZ2dlciIsIiIsMSwiYnRuIiwiYnRuLXNtIiwiYnRuLXByaW1hcnkiLCJtdC0zLW5lZ2F0aXZlIiwzLCJkaXNhYmxlZCJdLFsic2hhcGUiLCJjYXJldCBkb3duIl0sWyJjbHJQb3NpdGlvbiIsImJvdHRvbS1sZWZ0Iiw0LCJjbHJJZk9wZW4iXSxbInR5cGUiLCJudW1iZXIi''@;'; + put 'put ''LCJtaW4iLCIxIiwicGxhY2Vob2xkZXIiLCJNYXggZGVwdGggdmFsdWUiLDEsImNsci1pbnB1dCIsIm1heC1kZXB0aC1pbnB1dCJdLFsibWF4RGVwdGgiLCIiXSxbMSwic2VhcmNoLW5vZGUiXSxbMSwidHJlZS1zZWFyY2gtd3JhcHBlciJdLFsiY2xySW5wdXQiLCIiLCJwbGFjZWhvbGRlciIs''@;'; + put 'put ''IkxpYnJhcmllcyIsIm5hbWUiLCJpbnB1dCIsImF1dG9jb21wbGV0ZSIsIm9mZiIsMywibmdNb2RlbCIsIm5nTW9kZWxDaGFuZ2UiLCJrZXl1cCJdLFsic2VhcmNoTGliVHJlZUlucHV0IiwiIl0sWyJzaGFwZSIsInNlYXJjaCIsNCwibmdJZiJdLFsic2hhcGUiLCJ0aW1lcyIsMywiY2xpY2si''@;'; + put 'put ''LDQsIm5nSWYiXSxbInNoYXBlIiwic2VhcmNoIl0sWyJzaGFwZSIsInRpbWVzIiwzLCJjbGljayJdLFszLCJjbHJFeHBhbmRlZCIsImNsckxvYWRpbmciLCJjbHItZXhwYW5kZWQiLCJjbGljayIsImNsckV4cGFuZGVkQ2hhbmdlIiw0LCJuZ0lmIl0sWzMsImNsckV4cGFuZGVkIiwiY2xyTG9h''@;'; + put 'put ''ZGluZyIsImNsaWNrIiwiY2xyRXhwYW5kZWRDaGFuZ2UiXSxbMSwibS0wIiwiY3Vyc29yLXBvaW50ZXIiLDMsImNsaWNrIl0sWyJzaGFwZSIsInJhY2stc2VydmVyIl0sWzMsImNsckV4cGFuZGVkIiwiY2xyTG9hZGluZyIsImNsci1leHBhbmRlZCIsImNsaWNrIiwiY2xyRXhwYW5kZWRDaGFu''@;'; + put 'put ''Z2UiLDQsIm5nRm9yIiwibmdGb3JPZiJdLFsiY2xySW5wdXQiLCIiLCJwbGFjZWhvbGRlciIsIlRhYmxlcyIsIm5hbWUiLCJpbnB1dCIsImF1dG9jb21wbGV0ZSIsIm9mZiIsMywibmdNb2RlbCIsIm5nTW9kZWxDaGFuZ2UiLCJrZXl1cCJdLFsic2VhcmNoVHJlZUlucHV0IiwiIl0sWzEsIm0t''@;'; + put 'put ''MCIsImN1cnNvci1wb2ludGVyIiwzLCJpZCIsImNsaWNrIl0sWyJzaGFwZSIsInRhYmxlIl0sWyJjbHJJbnB1dCIsIiIsInBsYWNlaG9sZGVyIiwiQ29sdW1ucyIsIm5hbWUiLCJpbnB1dCIsImF1dG9jb21wbGV0ZSIsIm9mZiIsMywibmdNb2RlbCIsIm5nTW9kZWxDaGFuZ2UiLCJrZXl1cCJd''@;'; + put 'put ''LFsxLCJjbHItdHJlZW5vZGUtbGluayIsMywiY2xpY2siXSxbInNoYXBlIiwib2JqZWN0cyJdLFsxLCJ3LTEwMCIsInRleHQtY2VudGVyIl0sWzEsInNwaW5uZXIiLCJzcGlubmVyLXNtIl0sWzEsIm5vLXRhYmxlLXNlbGVjdGVkIl0sWyJzaGFwZSIsIndhcm5pbmctc3RhbmRhcmQiLCJzaXpl''@;'; + put 'put ''IiwiNjAiLDEsImlzLWluZm8iLCJpY29uLWRjLWZpbGwiXSxbMSwidGV4dC1jZW50ZXIiLCJjb2xvci1ncmF5Il0sWyJjbGFzcyIsImNhcmQtaGVhZGVyIGQtZmxleCBmbGV4LWNvbHVtbiBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIiw0LCJuZ0lmIl0sWzEsImNhcmQtYmxvY2siXSxbMSwiZm9y''@;'; + put 'put ''bS1ibG9jayIsInN3IiwiY2xyLXJvdyIsInBvc2l0aW9uLXJlbGF0aXZlIiwiZC1mbGV4IiwiYWxpZ24taXRlbXMtY2VudGVyIl0sWzEsImxpbmFnZS10aXRsZS13cmFwcGVyIiwiZC1mbGV4IiwiYWxpZ24taXRlbXMtY2VudGVyIiwiZm9udC13ZWlnaHQtYm9sZCIsInBvc2l0aW9uLWFic29s''@;'; + put 'put ''dXRlIl0sWyJjbGFzcyIsImNsci1jb2wtbWQtMTIgdGV4dC1jZW50ZXIgZC1mbGV4IGp1c3RpZnktY29udGVudC1lbmQiLDQsIm5nSWYiXSxbMywibXQtMiIsNCwibmdJZiJdLFsxLCJjYXJkLWhlYWRlciIsImQtZmxleCIsImZsZXgtY29sdW1uIiwianVzdGlmeS1jb250ZW50LWNlbnRlciJd''@;'; + put 'put ''LFsiY2xhc3MiLCJ0ZXh0LWNlbnRlciBwYi0xMCIsNCwibmdJZiJdLFsxLCJ0ZXh0LWNlbnRlciIsInBiLTEwIl0sWzMsInJvdXRlckxpbmsiXSxbMSwiY2xyLWNvbC1tZC0xMiIsInRleHQtY2VudGVyIiwiZC1mbGV4IiwianVzdGlmeS1jb250ZW50LWVuZCJdLFsxLCJidG4tZ3JvdXAiLCJk''@;'; + put 'put ''LWJsb2NrIl0sWzEsInJhZGlvIiwiYnRuIiwzLCJjbGljayJdLFsidHlwZSIsInJhZGlvIiwibmFtZSIsImJ0bi1ncm91cC1kZW1vLXJhZGlvcyIsMywiY2hlY2tlZCJdLFsxLCJtci0xMCJdLFsiY2xyRHJvcGRvd25UcmlnZ2VyIiwiIiwxLCJidG4iLCJidG4taW5mby1vdXRsaW5lIiwzLCJk''@;'; + put 'put ''aXNhYmxlZCJdLFsiY2xhc3MiLCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIiw0LCJuZ0lmIl0sWyJjbHJQb3NpdGlvbiIsImJvdHRvbS1sZWZ0Il0sWyJjbHJEcm9wZG93bkl0ZW0iLCIiLDMsImNsaWNrIl0sWyJjbHJEcm9wZG93bkl0ZW0iLCIiLDMsImNsaWNrIiw0LCJuZ0lmIl0sWzEs''@;'; + put 'put ''ImQtZmxleCIsImFsaWduLWl0ZW1zLWNlbnRlciJdLFsidHlwZSIsImNoZWNrYm94IiwiY2xyQ2hlY2tib3giLCIiLCJuYW1lIiwicmVmcmVzaENhY2hlIiwzLCJuZ01vZGVsIiwiY2hhbmdlIiwibmdNb2RlbENoYW5nZSJdLFsxLCJ0ZXh0LWNlbnRlciJdLFsiY2xhc3MiLCJzcGlubmVyIiw0''@;'; + put 'put ''LCJuZ0lmIl0sWyJjbGFzcyIsInBvc2l0aW9uLXJlbGF0aXZlIiw0LCJuZ0lmIl0sWzEsInNwaW5uZXIiXSxbMSwicG9zaXRpb24tcmVsYXRpdmUiXSxbMSwiZ3JhcGgtcmVuZGVyLXNwaW5uZXIiXSxbImNsYXNzIiwic3Bpbm5lciBzcGlubmVyLXNtIiw0LCJuZ0lmIl0sWyJpZCIsImdyYXBo''@;'; + put 'put ''Il1dLHRlbXBsYXRlOmZ1bmN0aW9uKGgsdil7aWYoMSZoKXtjb25zdCB5PWJpKCk7cnQoMCwiYXBwLXNpZGViYXIiLDApLEduKCJzY3JvbGxlZFRvQm90dG9tIixmdW5jdGlvbigpe3JldHVybiB2LmxvYWRNb3JlTGlicmFyaWVzKCl9KSxydCgxLCJjbHItdHJlZSIpLHJuKDIsTzd0LDYsMywi''@;'; + put 'put ''Y2xyLXRyZWUtbm9kZSIsMSkscm4oMyx6N3QsMiwxLCJuZy1jb250YWluZXIiLDIpLGx0KCkscm4oNCxHN3QsMywwLCJkaXYiLDMpLGx0KCkscnQoNSwiZGl2Iiw0KSg2LCJkaXYiLDUpLHJuKDcsVzd0LDQsMCwiZGl2Iiw2KSxybig4LGl2dCw4LDQsIm5nLWNvbnRhaW5lciIsNyksbHQoKSgp''@;'; + put 'put ''LHJ0KDksImNsci1tb2RhbCIsOCkoMTAsImgzIiw5KSxZdCgxMSwiV2FybmluZyIpLGx0KCkscnQoMTIsImRpdiIsMTApKDEzLCJwIiksWXQoMTQpLGx0KCkoKSxydCgxNSwiZGl2IiwxMSkoMTYsImRpdiIsMTIpKDE3LCJwIiksWXQoMTgsIlJlbmRlciBhbnl3YXkgKHRoaXMgbWF5IHRha2Ug''@;'; + put 'put ''YSBsb25nIHRpbWUpIiksbHQoKSxydCgxOSwiYnV0dG9uIiwxMyksR24oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiB2LmNvbnRpbnVlUmVuZGVyaW5nR3JhcGgoKX0pLFl0KDIwLCIgUmVuZGVyICIpLGx0KCkoKSxydCgyMSwiZGl2IiwxMikoMjIsInAiKSxZdCgyMywiRG93bmxvYWQgdGhl''@;'; + put 'put ''IHJlc3VsdCAoUE5HICYgU1ZHIHJlcXVpcmUgcmVuZGVyaW5nKSIpLGx0KCkscnQoMjQsImNsci1kcm9wZG93biIpKDI1LCJidXR0b24iLDE0KSxZdCgyNiwiIERvd25sb2FkICIpLENyKDI3LCJjbHItaWNvbiIsMTUpLGx0KCkscm4oMjgsYXZ0LDYsMSwiY2xyLWRyb3Bkb3duLW1lbnUiLDE2''@;'; + put 'put ''KSxsdCgpKCkscnQoMjksImRpdiIsMTIpKDMwLCJwIiksWXQoMzEsIlJlc3VibWl0IHdpdGggYSBtYXgtZGVwdGggKHNwZWNpZnkgZGVwdGgpIiksbHQoKSxDcigzMiwiaW5wdXQiLDE3LDE4KSxydCgzNCwiYnV0dG9uIiwxMyksR24oImNsaWNrIixmdW5jdGlvbigpe2l0KHkpO2NvbnN0IEk9''@;'; + put 'put ''eWEoMzMpO3JldHVybiBhKHYucmVzdWJtaXRXaXRoTWF4RGVwdGgoSS52YWx1ZSkpfSksWXQoMzUsIiBSZXN1Ym1pdCAiKSxsdCgpKCkscnQoMzYsImRpdiIsMTIpKDM3LCJwIiksWXQoMzgsIkNhbmNlbCB0aGlzIHN1Ym1pc3Npb24iKSxsdCgpLHJ0KDM5LCJidXR0b24iLDEzKSxHbigiY2xp''@;'; + put 'put ''Y2siLGZ1bmN0aW9uKCl7cmV0dXJuIHYuY2FuY2VsUmVuZGVyaW5nR3JhcGgoKX0pLFl0KDQwLCIgQ2FuY2VsICIpLGx0KCkoKSgpKCl9MiZoJiYodXQoMiksVHQoIm5nSWYiLHYubGlicmFyeUxpc3QpLHV0KDEpLFR0KCJuZ0Zvck9mIix2LmxpYnJhcnlMaXN0KSx1dCgxKSxUdCgibmdJZiIs''@;'; + put 'put ''di5saWJyYXJpZXNQYWdpbmcpLHV0KDMpLFR0KCJuZ0lmIiwhdi5jb2x1bW4mJiF2LnRhYmxlKSx1dCgxKSxUdCgibmdJZiIsdi5jb2x1bW58fHYudGFibGUpLHV0KDEpLFR0KCJjbHJNb2RhbE9wZW4iLG51bGwhPT12LmxhcmdlRG90RmlsZUxpbmVzKSgiY2xyTW9kYWxDbG9zYWJsZSIsITEp''@;'; + put 'put ''LHV0KDUpLEppKCIgVGhlIGdlbmVyYXRlZCBkb3QgZmlsZSBoYXMgIix2LmxhcmdlRG90RmlsZUxpbmVzLCIgbGluZXMuIFJlbmRlcmluZyBtYXkgdGFrZSBhIGxvbmcgdGltZSwgaG93IHdvdWxkIHlvdSBsaWtlIHRvIHByb2NlZWQ/ICIpLHV0KDExKSxUdCgiZGlzYWJsZWQiLCF2LmNvbHVt''@;'; + put 'put ''biYmIXYudGFibGUpKX0sZGVwZW5kZW5jaWVzOltFcyxObyxtMSxJZix4cyxUcyx2Nyx5dixfZyxZTCx3bCxvZCxhZCxnbyxaYSxvdCxSbyxPaSxwdix2dyxVTCxRTCxkWixrU10sc3R5bGVzOlsiLnRvZ2dsZS1zd2l0Y2hbX25nY29udGVudC0lQ09NUCVdICAgaW5wdXRbdHlwZT1jaGVja2Jv''@;'; + put 'put ''eF1bX25nY29udGVudC0lQ09NUCVdOmNoZWNrZWQgKyBsYWJlbFtfbmdjb250ZW50LSVDT01QJV06YmVmb3Jle2JvcmRlci1jb2xvcjojMzE0MzUxO2JhY2tncm91bmQtY29sb3I6IzMxNDM1MSFpbXBvcnRhbnQ7dHJhbnNpdGlvbjouMTVzIGVhc2UtaW47dHJhbnNpdGlvbi1wcm9wZXJ0eTpi''@;'; + put 'put ''b3JkZXItY29sb3IsYmFja2dyb3VuZC1jb2xvcn0jZ3JhcGhbX25nY29udGVudC0lQ09NUCVde2hlaWdodDpjYWxjKDEwMHZoIC0gMTk1cHgpO292ZXJmbG93OmhpZGRlbjt0ZXh0LWFsaWduOmNlbnRlcjtkaXNwbGF5OmJsb2NrO3dpZHRoOjEwMCU7Ym9yZGVyOjFweCBzb2xpZCAjZTRlNGU0''@;'; + put 'put ''O21hcmdpbi10b3A6MTBweH0uc2VsZWN0aW9uLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3dpZHRoOjEwMCU7bWF4LXdpZHRoOjY3MHB4fS5jb2x1bW4tYWN0aXZlW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kOiNkOGUzZTk7Y29sb3I6IzAwMH0uY29udGVudC1hcmVhW19uZ2Nv''@;'; + put 'put ''bnRlbnQtJUNPTVAlXXtwYWRkaW5nOi41cmVtIWltcG9ydGFudH0uY29udGVudC1hcmVhW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jYXJkW19uZ2NvbnRlbnQtJUNPTVAlXXttaW4taGVpZ2h0OmNhbGMoMTAwdmggLSAxMjBweCl9LmNvbnRlbnQtYXJlYVtfbmdjb250ZW50LSVDT01QJV0gICAu''@;'; + put 'put ''Y2FyZFtfbmdjb250ZW50LSVDT01QJV0gICAuY2FyZC1ibG9ja1tfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouNXJlbSAuMzVyZW0haW1wb3J0YW50fWNsci10cmVlLW5vZGVbX25nY29udGVudC0lQ09NUCVdICAgYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dy''@;'; + put 'put ''YXB9LmdyYXBoLXJlbmRlci1zcGlubmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDt3aWR0aDoxMDAlO2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO21hcmdpbi10b3A6MTBweH0uYmlnbGluZWFnZS1yb3dbX25nY29udGVudC0lQ09NUCVd''@;'; + put 'put ''e2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjthbGlnbi1pdGVtczpjZW50ZXI7bWFyZ2luLWJvdHRvbToyMHB4fS5tb2RhbC1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luOjB9LmxpbmVhZ2UtdGl0bGUtd3Jh''@;'; + put 'put ''cHBlcltfbmdjb250ZW50LSVDT01QJV17bGVmdDoxMnB4fS5tYXgtZGVwdGgtaW5wdXRbX25nY29udGVudC0lQ09NUCVde3dpZHRoOjEyMHB4fUBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCl7LnRvZ2dsZS1zd2l0Y2gtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tYm90dG9t''@;'; + put 'put ''OjIwcHh9fSJdfSksZH0pKCk7ZnVuY3Rpb24gc3Z0KGQsZyl7aWYoMSZkJiYocnQoMCwib3B0aW9uIiwxMCksWXQoMSksbHQoKSksMiZkKXtjb25zdCBoPWcuJGltcGxpY2l0O0k2KCJ2YWx1ZSIsaCksdXQoMSksSmkoIiAiLGgsIiAiKX19ZnVuY3Rpb24gdXZ0KGQsZyl7MSZkJiZDcigwLCJj''@;'; + put 'put ''bHItaWNvbiIsMTcpfWZ1bmN0aW9uIGN2dChkLGcpe2lmKDEmZCl7Y29uc3QgaD1iaSgpO3J0KDAsImNsci1pY29uIiwxOCksR24oImNsaWNrIixmdW5jdGlvbigpe2l0KGgpO2NvbnN0IHk9SnQoMik7cmV0dXJuIHkubWV0YURhdGFTZWFyY2g9IiIsYSh5Lm1ldGFMaXN0T25GaWx0ZXIoKSl9''@;'; + put 'put ''KSxsdCgpfX1mdW5jdGlvbiBmdnQoZCxnKXtpZigxJmQpe2NvbnN0IGg9YmkoKTtydCgwLCJjbHItdHJlZS1ub2RlIiwxMSkoMSwiZGl2IiwxMikoMiwiaW5wdXQiLDEzLDE0KSxHbigibmdNb2RlbENoYW5nZSIsZnVuY3Rpb24oeSl7cmV0dXJuIGl0KGgpLGEoSnQoKS5tZXRhRGF0YVNlYXJj''@;'; + put 'put ''aD15KX0pKCJrZXl1cCIsZnVuY3Rpb24oKXtyZXR1cm4gaXQoaCksYShKdCgpLm1ldGFMaXN0T25GaWx0ZXIoKSl9KSxsdCgpLHJuKDQsdXZ0LDEsMCwiY2xyLWljb24iLDE1KSxybig1LGN2dCwxLDAsImNsci1pY29uIiwxNiksbHQoKSgpfWlmKDImZCl7Y29uc3QgaD15YSgzKSx2PUp0KCk7''@;'; + put 'put ''dXQoMiksVHQoIm5nTW9kZWwiLHYubWV0YURhdGFTZWFyY2gpLHV0KDIpLFR0KCJuZ0lmIixoLnZhbHVlLmxlbmd0aDwxKSx1dCgxKSxUdCgibmdJZiIsaC52YWx1ZS5sZW5ndGg+MCl9fWZ1bmN0aW9uIGh2dChkLGcpe2lmKDEmZCl7Y29uc3QgaD1iaSgpO3J0KDAsImNsci10cmVlLW5vZGUi''@;'; + put 'put ''LDIwKSxHbigiY2xpY2siLGZ1bmN0aW9uKHkpe2l0KGgpO2NvbnN0IEM9SnQoKS4kaW1wbGljaXQsST1KdCgpO3JldHVybiBhKEkudHJlZU5vZGVDbGlja2VkKHksQyxJLm1ldGFEYXRhTGlzdCkpfSkoImNsckV4cGFuZGVkQ2hhbmdlIixmdW5jdGlvbih5KXtyZXR1cm4gaXQoaCksYShKdCgp''@;'; + put 'put ''LiRpbXBsaWNpdC5leHBhbmRlZD15KX0pLHJ0KDEsInAiLDIxKSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7aXQoaCk7Y29uc3QgeT1KdCgpLiRpbXBsaWNpdCxDPUp0KCk7cmV0dXJuIEMubWV0YURhdGFJZD15LklELGEoQy5tZXRhRGF0YU9uQ2xpY2soQy5tZXRhRGF0YUlkLHkpKX0pLENyKDIs''@;'; + put 'put ''ImNsci1pY29uIiwyMiksWXQoMyksbHQoKSgpfWlmKDImZCl7Y29uc3QgaD1KdCgpLiRpbXBsaWNpdDtUdCgiY2xyRXhwYW5kZWQiLGguZXhwYW5kZWQpKCJjbHJMb2FkaW5nIixoLmxvYWRpbmdUYWJsZXMmJiFoLnRhYmxlcyksdXQoMyksSmkoIiAiLGguSUQsIiAiKX19ZnVuY3Rpb24gZHZ0''@;'; + put 'put ''KGQsZyl7aWYoMSZkJiYoRjAoMCkscm4oMSxodnQsNCwzLCJjbHItdHJlZS1ub2RlIiwxOSksSDAoKSksMiZkKXtjb25zdCBoPWcuJGltcGxpY2l0O3V0KDEpLFR0KCJuZ0lmIiwhaC5oaWRkZW4pfX1mdW5jdGlvbiBwdnQoZCxnKXsxJmQmJihydCgwLCJkaXYiLDIzKSxDcigxLCJjbHItaWNv''@;'; + put 'put ''biIsMjQpLHJ0KDIsImgzIiwyNSksWXQoMywiUGxlYXNlIHNlbGVjdCBhIHR5cGUiKSxsdCgpKCkpfWZ1bmN0aW9uIGd2dChkLGcpezEmZCYmKHJ0KDAsImg0IiksWXQoMSwiTG9hZGluZyBtZXRhZGF0YSB0eXBlcyIpLGx0KCkpfWZ1bmN0aW9uIG12dChkLGcpezEmZCYmKHJ0KDAsImg0Iiks''@;'; + put 'put ''WXQoMSwiTG9hZGluZyBtZXRhZGF0YSBvYmplY3RzIiksbHQoKSl9ZnVuY3Rpb24gdnZ0KGQsZyl7aWYoMSZkJiYocnQoMCwiZGl2Iikscm4oMSxndnQsMiwwLCJoNCIsMjgpLHJuKDIsbXZ0LDIsMCwiaDQiLDI4KSxsdCgpKSwyJmQpe2NvbnN0IGg9SnQoMik7dXQoMSksVHQoIm5nSWYiLGgu''@;'; + put 'put ''bWV0YXR5cGVzTG9hZGluZyksdXQoMSksVHQoIm5nSWYiLCFoLm1ldGF0eXBlc0xvYWRpbmcpfX1mdW5jdGlvbiBBdnQoZCxnKXtpZigxJmQmJihydCgwLCJkaXYiLDI2KSgxLCJzcGFuIiwyNyksWXQoMiwiIExvYWRpbmcuLi4gIiksbHQoKSxybigzLHZ2dCwzLDIsImRpdiIsMjgpLGx0KCkp''@;'; + put 'put ''LDImZCl7Y29uc3QgaD1KdCgpO3V0KDMpLFR0KCJuZ0lmIixoLmxvYWRpbmcpfX1mdW5jdGlvbiB5dnQoZCxnKXtpZigxJmQpe2NvbnN0IGg9YmkoKTtydCgwLCJkaXYiLDM1KSgxLCJpbnB1dCIsMzYsMzcpLEduKCJuZ01vZGVsQ2hhbmdlIixmdW5jdGlvbih5KXtyZXR1cm4gaXQoaCksYShK''@;'; + put 'put ''dCgyKS5tZXRhT2JqZWN0U2VhcmNoPXkpfSkoImtleXVwIixmdW5jdGlvbigpe3JldHVybiBpdChoKSxhKEp0KDIpLm1ldGFPYmplY3RPbkZpbHRlcigpKX0pLGx0KCkoKX1pZigyJmQpe2NvbnN0IGg9SnQoMik7dXQoMSksVHQoIm5nTW9kZWwiLGgubWV0YU9iamVjdFNlYXJjaCl9fWZ1bmN0''@;'; + put 'put ''aW9uIHd2dChkLGcpezEmZCYmQ3IoMCwiY2xyLWljb24iLDQxKX1mdW5jdGlvbiBidnQoZCxnKXsxJmQmJkNyKDAsImNsci1pY29uIiwyMil9ZnVuY3Rpb24gX3Z0KGQsZyl7aWYoMSZkJiYocnQoMCwicCIsNTIpLFl0KDEpLGx0KCkpLDImZCl7Y29uc3QgaD1KdCgpLiRpbXBsaWNpdDt1dCgx''@;'; + put 'put ''KSxKaSgiICIsaC5VUkksIiAiKX19ZnVuY3Rpb24gQ3Z0KGQsZyl7aWYoMSZkJiYocnQoMCwiY2xyLXRyZWUtbm9kZSIsNDcpKDEsImRpdiIsNDgpLHJuKDIsd3Z0LDEsMCwiY2xyLWljb24iLDQ5KSxybigzLGJ2dCwxLDAsImNsci1pY29uIiw1MCksWXQoNCkscm4oNSxfdnQsMiwxLCJwIiw1''@;'; + put 'put ''MSksbHQoKSgpKSwyJmQpe2NvbnN0IGg9Zy4kaW1wbGljaXQ7VHQoImNsckV4cGFuZGFibGUiLCEwKSx1dCgxKSxGaSgib2JqZWN0LWhlYWRlciIsIWguY291bnQpLHV0KDEpLFR0KCJuZ0lmIiwhaC5jb3VudCksdXQoMSksVHQoIm5nSWYiLGguY291bnQpLHV0KDEpLEppKCIgIixoLmRpc3Bs''@;'; + put 'put ''YXksIiAiKSx1dCgxKSxUdCgibmdJZiIsIWguY291bnQpfX1mdW5jdGlvbiBrdnQoZCxnKXtpZigxJmQmJihydCgwLCJjbHItdHJlZSIsNDUpLHJuKDEsQ3Z0LDYsNywiY2xyLXRyZWUtbm9kZSIsNDYpLG5uKDIsImFzeW5jIiksbHQoKSksMiZkKXtjb25zdCBoPUp0KDYpO1R0KCJjbHJMYXp5''@;'; + put 'put ''IiwhMCksdXQoMSksVHQoImNsclJlY3Vyc2l2ZUZvck9mIix6dCgyLDMsaC5yb290JCkpKCJjbHJSZWN1cnNpdmVGb3JHZXRDaGlsZHJlbiIsaC5nZXRDaGlsZHJlbil9fWZ1bmN0aW9uIFN2dChkLGcpe2lmKDEmZCYmKHJ0KDAsImNsci1hY2NvcmRpb24tY29udGVudCIpLHJuKDEsa3Z0LDMs''@;'; + put 'put ''NSwiY2xyLXRyZWUiLDQ0KSxsdCgpKSwyJmQpe2NvbnN0IGg9SnQoNSk7dXQoMSksVHQoIm5nSWYiLGguc2hvd0FjYyl9fWZ1bmN0aW9uIE12dChkLGcpe2lmKDEmZCl7Y29uc3QgaD1iaSgpO3J0KDAsImNsci1hY2NvcmRpb24tcGFuZWwiLDQwKSxHbigiY2xyQWNjb3JkaW9uUGFuZWxPcGVu''@;'; + put 'put ''Q2hhbmdlIixmdW5jdGlvbih5KXtpdChoKTtjb25zdCBDPUp0KCkuJGltcGxpY2l0LEk9SnQoMyk7cmV0dXJuIGEoeT9JLnBhbmVsQ2hhbmdlKHksQyk6IiIpfSkscnQoMSwiY2xyLWFjY29yZGlvbi10aXRsZSIpLENyKDIsImNsci1pY29uIiw0MSksWXQoMykscnQoNCwicCIsNDIpLFl0KDUp''@;'; + put 'put ''LGx0KCkoKSxybig2LFN2dCwyLDEsImNsci1hY2NvcmRpb24tY29udGVudCIsNDMpLGx0KCl9aWYoMiZkKXtjb25zdCBoPUp0KCkuJGltcGxpY2l0O3V0KDMpLEppKCIgIixoLk5BTUUsIiAiKSx1dCgyKSxqaShoLklEKX19ZnVuY3Rpb24gRXZ0KGQsZyl7aWYoMSZkJiYoRjAoMCkscm4oMSxN''@;'; + put 'put ''dnQsNywyLCJjbHItYWNjb3JkaW9uLXBhbmVsIiwzOSksSDAoKSksMiZkKXtjb25zdCBoPWcuJGltcGxpY2l0O3V0KDEpLFR0KCJuZ0lmIiwhaC5oaWRkZW4pfX1mdW5jdGlvbiB4dnQoZCxnKXtpZigxJmQmJihydCgwLCJkaXYiLDM4KSgxLCJjbHItYWNjb3JkaW9uIikscm4oMixFdnQsMiwx''@;'; + put 'put ''LCJuZy1jb250YWluZXIiLDQpLGx0KCkoKSksMiZkKXtjb25zdCBoPUp0KDIpO3V0KDIpLFR0KCJuZ0Zvck9mIixoLm1ldGFPYmplY3RTaG93TGlzdCl9fWZ1bmN0aW9uIFR2dChkLGcpezEmZCYmQ3IoMCwiY2xyLWljb24iLDQxKX1mdW5jdGlvbiBJdnQoZCxnKXsxJmQmJkNyKDAsImNsci1p''@;'; + put 'put ''Y29uIiwyMil9ZnVuY3Rpb24gRHZ0KGQsZyl7aWYoMSZkJiYocnQoMCwicCIsNTIpLFl0KDEpLGx0KCkpLDImZCl7Y29uc3QgaD1KdCgpLiRpbXBsaWNpdDt1dCgxKSxKaSgiICIsaC5VUkksIiAiKX19ZnVuY3Rpb24gTHZ0KGQsZyl7aWYoMSZkJiYocnQoMCwiY2xyLXRyZWUtbm9kZSIsNDcp''@;'; + put 'put ''KDEsImRpdiIsNDgpLHJuKDIsVHZ0LDEsMCwiY2xyLWljb24iLDQ5KSxybigzLEl2dCwxLDAsImNsci1pY29uIiw1MCksWXQoNCkscm4oNSxEdnQsMiwxLCJwIiw1MSksbHQoKSgpKSwyJmQpe2NvbnN0IGg9Zy4kaW1wbGljaXQ7VHQoImNsckV4cGFuZGFibGUiLCEwKSx1dCgxKSxGaSgib2Jq''@;'; + put 'put ''ZWN0LWhlYWRlciIsIWguY291bnQpLHV0KDEpLFR0KCJuZ0lmIiwhaC5jb3VudCksdXQoMSksVHQoIm5nSWYiLGguY291bnQpLHV0KDEpLEppKCIgIixoLmRpc3BsYXksIiAiKSx1dCgxKSxUdCgibmdJZiIsIWguY291bnQpfX1mdW5jdGlvbiBPdnQoZCxnKXtpZigxJmQmJihydCgwLCJjbHIt''@;'; + put 'put ''dHJlZSIsNDUpLHJuKDEsTHZ0LDYsNywiY2xyLXRyZWUtbm9kZSIsNDYpLG5uKDIsImFzeW5jIiksbHQoKSksMiZkKXtjb25zdCBoPUp0KDQpO1R0KCJjbHJMYXp5IiwhMCksdXQoMSksVHQoImNsclJlY3Vyc2l2ZUZvck9mIix6dCgyLDMsaC5yb290JCkpKCJjbHJSZWN1cnNpdmVGb3JHZXRD''@;'; + put 'put ''aGlsZHJlbiIsaC5nZXRDaGlsZHJlbil9fWZ1bmN0aW9uIFJ2dChkLGcpe2lmKDEmZCYmKEYwKDApLHJ0KDEsImRpdiIsNTMpLENyKDIsImNsci1pY29uIiw0MSkscnQoMywiZGl2Iiw1NCkoNCwicCIsNTUpLFl0KDUpLGx0KCkscnQoNiwicCIsNTYpLFl0KDcpLGx0KCkoKSgpLHJuKDgsT3Z0''@;'; + put 'put ''LDMsNSwiY2xyLXRyZWUiLDQ0KSxIMCgpKSwyJmQpe2NvbnN0IGg9Zy4kaW1wbGljaXQsdj1KdCgzKTt1dCg1KSxKaSgiICIsaC5OQU1FLCIgIiksdXQoMiksSmkoIiAiLGguSUQsIiAiKSx1dCgxKSxUdCgibmdJZiIsdi5zaG93QWNjKX19ZnVuY3Rpb24gQnZ0KGQsZyl7aWYoMSZkJiYocnQo''@;'; + put 'put ''MCwiZGl2IiwzOCkscm4oMSxSdnQsOSwzLCJuZy1jb250YWluZXIiLDQpLGx0KCkpLDImZCl7Y29uc3QgaD1KdCgyKTt1dCgxKSxUdCgibmdGb3JPZiIsaC5tZXRhT2JqZWN0U2hvd0xpc3QpfX1mdW5jdGlvbiBQdnQoZCxnKXtpZigxJmQmJihydCgwLCJjbHItZGctcm93IikoMSwiY2xyLWRn''@;'; + put 'put ''LWNlbGwiKSxZdCgyKSxsdCgpLHJ0KDMsImNsci1kZy1jZWxsIiksWXQoNCksbHQoKSxydCg1LCJjbHItZGctY2VsbCIpLFl0KDYpLGx0KCkoKSksMiZkKXtjb25zdCBoPWcuJGltcGxpY2l0O3V0KDIpLGppKGguVFlQRSksdXQoMiksamkoaC5OQU1FKSx1dCgyKSxqaShoLlZBTFVFKX19Y29u''@;'; + put 'put ''c3QgRnZ0PWZ1bmN0aW9uKCl7cmV0dXJuWzEwLDIwLDUwLDEwMF19O2Z1bmN0aW9uIEh2dChkLGcpe2lmKDEmZCYmKHJ0KDAsImNsci1kYXRhZ3JpZCIsNTcpKDEsImNsci1kZy1jb2x1bW4iKSxZdCgyLCIgVFlQRSAiKSxDcigzLCJjbHItZGctc3RyaW5nLWZpbHRlciIsNTgpLGx0KCkscnQo''@;'; + put 'put ''NCwiY2xyLWRnLWNvbHVtbiIpLFl0KDUsIiBOQU1FICIpLENyKDYsImNsci1kZy1zdHJpbmctZmlsdGVyIiw1OCksbHQoKSxydCg3LCJjbHItZGctY29sdW1uIiksWXQoOCwiIFZBTFVFICIpLENyKDksImNsci1kZy1zdHJpbmctZmlsdGVyIiw1OCksbHQoKSxybigxMCxQdnQsNywzLCJjbHIt''@;'; + put 'put ''ZGctcm93Iiw1OSkscnQoMTEsImNsci1kZy1mb290ZXIiKSgxMiwiY2xyLWRnLXBhZ2luYXRpb24iLDYwLDYxKSgxNCwiY2xyLWRnLXBhZ2Utc2l6ZSIsNjIpLFl0KDE1LCJBdHRyaWJ1dGVzIHBlciBwYWdlIiksbHQoKSxZdCgxNiksbHQoKSgpKCkpLDImZCl7Y29uc3QgaD15YSgxMyksdj1K''@;'; + put 'put ''dCgyKTt1dCgzKSxUdCgiY2xyRGdTdHJpbmdGaWx0ZXIiLHYudHlwZUZpbHRlciksdXQoMyksVHQoImNsckRnU3RyaW5nRmlsdGVyIix2Lm5hbWVGaWx0ZXIpLHV0KDMpLFR0KCJjbHJEZ1N0cmluZ0ZpbHRlciIsdi52YWx1ZUZpbHRlciksdXQoMSksVHQoImNsckRnSXRlbXNPZiIsdi5tZXRh''@;'; + put 'put ''T2JqZWN0QXR0cmlidXRlcyksdXQoMiksVHQoImNsckRnUGFnZVNpemUiLDEwKSx1dCgyKSxUdCgiY2xyUGFnZVNpemVPcHRpb25zIixWcyg5LEZ2dCkpLHV0KDIpLGtmKCIgIixoLmZpcnN0SXRlbSsxLCIgLSAiLGgubGFzdEl0ZW0rMSwiIG9mICIsaC50b3RhbEl0ZW1zLCIgQXR0cmlidXRl''@;'; + put 'put ''cyAiKX19ZnVuY3Rpb24gTnZ0KGQsZyl7aWYoMSZkJiYocnQoMCwiZGl2IiwyOSkoMSwiZGl2IiwzMCkscm4oMix5dnQsMywxLCJkaXYiLDMxKSxDcigzLCJiciIpLHJuKDQseHZ0LDMsMSwiZGl2IiwzMikscm4oNSxCdnQsMiwxLCJkaXYiLDMyKSxsdCgpLHJ0KDYsImRpdiIsMzMpKDcsImgz''@;'; + put 'put ''IiksWXQoOCksbHQoKSxybig5LEh2dCwxNywxMCwiY2xyLWRhdGFncmlkIiwzNCksbHQoKSgpKSwyJmQpe2NvbnN0IGg9SnQoKTt1dCgyKSxUdCgibmdJZiIsaC5tZXRhT2JqZWN0TGlzdCYmIWgub2JqZWN0Um91dGUpLHV0KDIpLFR0KCJuZ0lmIiwhaC5vYmplY3RWaWV3KSx1dCgxKSxUdCgi''@;'; + put 'put ''bmdJZiIsaC5vYmplY3RWaWV3KSx1dCgzKSxqaShoLmFzc29PYmplY3RTZWxlY3RlZCksdXQoMSksVHQoIm5nSWYiLGguc2hvd1RhYmxlKX19bGV0IExtZT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgsdix5LEMsSSxqKXt0aGlzLmV2ZW50U2VydmljZT1oLHRoaXMuc2FzU2VydmljZT12''@;'; + put 'put ''LHRoaXMuaGVscGVyU2VydmljZT15LHRoaXMubG9jYXRpb249Qyx0aGlzLnJvdXRlcj1JLHRoaXMucm91dGU9aix0aGlzLm1ldGFEYXRhU2VhcmNoPSIiLHRoaXMubWV0YU9iamVjdFNlYXJjaD0iIix0aGlzLm1ldGFPYmplY3RBc3NvY2lhdGlvbnM9W10sdGhpcy5tZXRhT2JqZWN0QXR0cmli''@;'; + put 'put ''dXRlcz1bXSx0aGlzLnNob3dUYWJsZT0hMSx0aGlzLnNob3dBY2M9ITEsdGhpcy5tZXRhRGF0YUlkPSIiLHRoaXMubG9hZGluZz0hMCx0aGlzLm1ldGF0eXBlc0xvYWRpbmc9ITAsdGhpcy5tZXRhT2JqZWN0U2l6ZT0yMDAsdGhpcy5hc3NvVHlwZVNlbGVjdGVkPSIiLHRoaXMuYXNzb09iamVj''@;'; + put 'put ''dFNlbGVjdGVkPSIiLHRoaXMucmVwb3NpdG9yeT0iIix0aGlzLm9iamVjdFJvdXRlPSExLHRoaXMuc2hvd0RhdGE9ITEsdGhpcy5vYmplY3RWaWV3PSExLHRoaXMuZ2V0Q2hpbGRyZW49dWU9PnVlLmNvdW50P2FhKHVlLmRldGFpbHMpOnRoaXMuc2FzU2VydmljZS5yZXF1ZXN0KCJtZXRhbmF2''@;'; + put 'put ''L21ldGFkZXRhaWxzIix7U0FTQ29udHJvbFRhYmxlOlt7b2JqZWN0dXJpOnVlLkFTU09DVVJJfV19KS50aGVuKEJlPT57dGhpcy5zaG93VGFibGU9ITAsdGhpcy5tZXRhT2JqZWN0QXR0cmlidXRlcz1CZS5hdHRyaWJ1dGVzLHRoaXMuYXNzb09iamVjdFNlbGVjdGVkPXVlLk5BTUU7bGV0IE5l''@;'; + put 'put ''PXRoaXMucm91dGVyLnVybDtyZXR1cm4gdGhpcy5sb2NhdGlvbi5yZXBsYWNlU3RhdGUodGhpcy5vYmplY3RSb3V0ZT9OZS5zbGljZSgwLE5lLmxhc3RJbmRleE9mKCJvYmplY3QiKSkrIm9iamVjdC8iK3VlLkFTU09DVVJJLnNsaWNlKDErdWUuQVNTT0NVUkkuaW5kZXhPZigiXFwiKSk6TmUr''@;'; + put 'put ''Ii9vYmplY3QvIit1ZS5BU1NPQ1VSSS5zbGljZSgxK3VlLkFTU09DVVJJLmluZGV4T2YoIlxcIikpKSx0aGlzLmdldEFzc29zaWF0aW9uc0NvdW50KEJlLmFzc29jaWF0aW9ucyl9KSx0aGlzLmRlYm91bmNlPSExfW5nT25Jbml0KCl7bmkudmlld2VyLmN1cnJlbnRTZWxlY3Rpb249InZpZXcv''@;'; + put 'put ''bWV0YWRhdGEiLHRoaXMucm91dGVyLnVybC5pbmNsdWRlcygiL3ZpZXcvbWV0YWRhdGEvb2JqZWN0LyIpJiYodGhpcy5vYmplY3RSb3V0ZT0hMCx0aGlzLm9iamVjdFZpZXc9ITApLHRoaXMucGFnZVNpemU9NSxuaS5tZXRhZGF0YS5tZXRhRGF0YUxpc3QmJm5pLm1ldGFkYXRhLm1ldGFSZXBv''@;'; + put 'put ''c2l0b3JpZXMmJiF0aGlzLm9iamVjdFJvdXRlPyh0aGlzLm1ldGFEYXRhTGlzdD1uaS5tZXRhZGF0YS5tZXRhRGF0YUxpc3QsdGhpcy5yZXBvc2l0b3JpZXM9bmkubWV0YWRhdGEubWV0YVJlcG9zaXRvcmllcyx0aGlzLnJlcG9zaXRvcnk9bmkubWV0YWRhdGEuc2VsZWN0ZWRSZXBvc2l0b3J5''@;'; + put 'put ''LHRoaXMubG9hZGluZz0hMSx0aGlzLm1ldGF0eXBlc0xvYWRpbmc9ITEsdGhpcy5tZXRhRGF0YVNlYXJjaD1uaS5tZXRhZGF0YS5tZXRhRGF0YVNlYXJjaCk6KHRoaXMuc2FzU2VydmljZS5yZXF1ZXN0KCJtZXRhbmF2L21ldGF0eXBlcyIsbnVsbCkudGhlbihoPT57dGhpcy5tZXRhRGF0YUxp''@;'; + put 'put ''c3Q9aC50eXBlcyxuaS5tZXRhZGF0YS5tZXRhRGF0YUxpc3Q9dGhpcy5tZXRhRGF0YUxpc3QsdGhpcy5sb2FkaW5nPSExLHRoaXMubWV0YXR5cGVzTG9hZGluZz0hMX0pLHRoaXMuc2FzU2VydmljZS5yZXF1ZXN0KCJtZXRhbmF2L21ldGFyZXBvcyIsbnVsbCkudGhlbihoPT57bGV0IHY9ITE7''@;'; + put 'put ''dGhpcy5yZXBvc2l0b3JpZXM9W107Zm9yKGxldCB5PTA7eTxoLm91dHJlcG9zLmxlbmd0aDt5KyspdGhpcy5yZXBvc2l0b3JpZXMucHVzaChoLm91dHJlcG9zW3ldLk5BTUUpLCJGb3VuZGF0aW9uIj09PWgub3V0cmVwb3NbeV0uTkFNRSYmKHY9ITApO2lmKHRoaXMucmVwb3NpdG9yeT12PyJG''@;'; + put 'put ''b3VuZGF0aW9uIjpoLm91dHJlcG9zWzBdLk5BTUUsbmkubWV0YWRhdGEubWV0YVJlcG9zaXRvcmllcz10aGlzLnJlcG9zaXRvcmllcyxuaS5tZXRhZGF0YS5zZWxlY3RlZFJlcG9zaXRvcnk9dGhpcy5yZXBvc2l0b3J5LHRoaXMub2JqZWN0Um91dGUpe3RoaXMuZXZlbnRTZXJ2aWNlLmNsb3Nl''@;'; + put 'put ''U2lkZWJhcigpLHRoaXMuc2hvd0RhdGE9ITA7bGV0IHk9IiIsQz10aGlzLnJvdXRlLnNuYXBzaG90LnBhcmFtcy5vYmplY3RJRDt0aGlzLm1ldGFPYmplY3RMaXN0PVtdLHRoaXMubWV0YU9iamVjdExpc3QucHVzaCh7SUQ6QyxOQU1FOnl9KSx0aGlzLm1ldGFPYmplY3RTaG93TGlzdD10aGlz''@;'; + put 'put ''Lm1ldGFPYmplY3RMaXN0LHRoaXMubWV0YU9iamVjdE9uQ2xpY2sodGhpcy5tZXRhT2JqZWN0U2hvd0xpc3RbMF0uSUQsdGhpcy5tZXRhT2JqZWN0U2hvd0xpc3RbMF0pfX0pKX10cmVlTm9kZUNsaWNrZWQoaCx2LHkpeyJDb2xsYXBzZSI9PT1oLnRhcmdldC50aXRsZSYmdGhpcy5jb2xsYXBz''@;'; + put 'put ''ZVRyZWVJdGVtcyh5LHYpfWNvbGxhcHNlVHJlZUl0ZW1zKGgsdil7aC5mb3JFYWNoKHk9PntKU09OLnN0cmluZ2lmeSh5KSE9PUpTT04uc3RyaW5naWZ5KHYpJiYoeS5leHBhbmRlZD0hMSl9KX1tZXRhRGF0YU9uQ2xpY2soaCx2KXt0aGlzLm9iamVjdFZpZXc9ITEsdGhpcy5sb2NhdGlvbi5y''@;'; + put 'put ''ZXBsYWNlU3RhdGUoIi92aWV3L21ldGFkYXRhIiksdGhpcy5zaG93RGF0YT0hMSx0aGlzLmxvYWRpbmc9ITAsdGhpcy5zZWxlY3RtZXRhRGF0YShoLHYpfW1ldGFPYmplY3RPbkNsaWNrKGgsdil7dGhpcy5hc3NvT2JqZWN0U2VsZWN0ZWQ9IiAuICIsdGhpcy5zaG93QWNjPSExLHRoaXMubWV0''@;'; + put 'put ''YU9iamVjdEF0dHJpYnV0ZXM9W10sdGhpcy5zZWxlY3RtZXRhT2JqZWN0KGgsdil9c2VsZWN0bWV0YURhdGEoaCx2KXtyZXR1cm4gbm8odGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe3RoaXMuc2FzU2VydmljZS5yZXF1ZXN0KCJtZXRhbmF2L21ldGFvYmplY3RzIix7U0FTQ29udHJv''@;'; + put 'put ''bFRhYmxlOlt7bWV0YXR5cGU6aCxyZXBvOnRoaXMucmVwb3NpdG9yeX1dfSkudGhlbihDPT57dGhpcy5tZXRhT2JqZWN0TGlzdD1DLm9iamVjdHMsdGhpcy5nZXRNZXRhT2JqZWN0QXR0cmlidXRlcyh0aGlzLm1ldGFPYmplY3RTaXplKSx0aGlzLmxvYWRpbmc9ITEsdGhpcy5hc3NvVHlwZVNl''@;'; + put 'put ''bGVjdGVkPWgsdGhpcy5ldmVudFNlcnZpY2UuY2xvc2VTaWRlYmFyKCksdGhpcy5zaG93RGF0YT0hMH0pfSl9c2VsZWN0bWV0YU9iamVjdChoLHYpe3JldHVybiBubyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7dGhpcy5zYXNTZXJ2aWNlLnJlcXVlc3QoIm1ldGFuYXYvbWV0YWRl''@;'; + put 'put ''dGFpbHMiLHtTQVNDb250cm9sVGFibGU6W3tvYmplY3R1cmk6aH1dfSkudGhlbihDPT57dGhpcy5tZXRhT2JqZWN0QXNzb2NpYXRpb25zPUMuYXNzb2NpYXRpb25zLHRoaXMucm9vdCQ9YWEodGhpcy5nZXRBc3Nvc2lhdGlvbnNDb3VudChDLmFzc29jaWF0aW9ucykpLHRoaXMuc2hvd0FjYz0h''@;'; + put 'put ''MCx0aGlzLnNob3dUYWJsZT0hMDtsZXQgST1DLmF0dHJpYnV0ZXMuZmluZCh1ZT0+Ik5hbWUiPT09dWUuTkFNRSkuVkFMVUU7dGhpcy5hc3NvT2JqZWN0U2VsZWN0ZWQ9SSx2Lk5BTUU9STtsZXQgaj10aGlzLnJvdXRlci51cmw7dGhpcy5sb2NhdGlvbi5yZXBsYWNlU3RhdGUodGhpcy5vYmpl''@;'; + put 'put ''Y3RSb3V0ZT9qLnNsaWNlKDAsai5sYXN0SW5kZXhPZigib2JqZWN0IikpKyJvYmplY3QvIitoLnNsaWNlKDEraC5pbmRleE9mKCJcXCIpKTpqKyIvb2JqZWN0LyIraC5zbGljZSgxK2guaW5kZXhPZigiXFwiKSkpLHRoaXMubWV0YU9iamVjdEF0dHJpYnV0ZXM9Qy5hdHRyaWJ1dGVzfSl9KX1z''@;'; + put 'put ''ZWxlY3RBc3Nvc2lhdGlvbnNEZXRhaWxzKGgsdil7cmV0dXJuIG5vKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXt0aGlzLnNhc1NlcnZpY2UucmVxdWVzdCgibWV0YW5hdi9tZXRhZGV0YWlscyIse1NBU0NvbnRyb2xUYWJsZTpbe29iamVjdHVyaTpofV19KS50aGVuKEM9Pnt0aGlz''@;'; + put 'put ''Lm1ldGFPYmplY3RBdHRyaWJ1dGVzPUMuYXR0cmlidXRlcyx0aGlzLnNob3dUYWJsZT0hMH0pfSl9Z2V0QXNzb3NpYXRpb25zQ291bnQoaCl7bGV0IHY9bmV3IE1hcDtmb3IobGV0IEMgb2YgaCl7di5oYXMoQy5BU1NPQyl8fHYuc2V0KEMuQVNTT0Mse2NvdW50OjAsZGV0YWlsczpbXX0pO2xl''@;'; + put 'put ''dCBJPXYuZ2V0KEMuQVNTT0MpO0kuY291bnQrKyxJLmRldGFpbHMucHVzaCh7QVNTT0NVUkk6Qy5BU1NPQ1VSSSxOQU1FOkMuTkFNRSxkaXNwbGF5OkMuTkFNRSxVUkk6Qy5BU1NPQ1VSSS5zbGljZShDLkFTU09DVVJJLmluZGV4T2YoIjoiKSsxKX0pfWxldCB5PVtdO3JldHVybiB2LmZvckVh''@;'; + put 'put ''Y2goZnVuY3Rpb24oQyxJKXt5LnB1c2goe0FTU09DOkksY291bnQ6Qy5jb3VudCxkZXRhaWxzOkMuZGV0YWlscyxkaXNwbGF5OkkrIiAoICIrQy5jb3VudCsiICkifSl9KSx5fXNldFR5cGVBc3Nvc2lhdGlvbnMoaCl7bGV0IHY9W107Zm9yKGxldCB5IG9mIHRoaXMubWV0YU9iamVjdEFzc29j''@;'; + put 'put ''aWF0aW9ucyl5LkFTU09DPT09aCYmdi5wdXNoKHkpO3JldHVybiB0aGlzLmFzc29zaWF0aW9uTmFtZXM9dix2fWFzc29zaWF0aW9uTmFtZU9uQ2xpY2soaCl7dGhpcy5hc3NvT2JqZWN0U2VsZWN0ZWQ9IiAuICIsdGhpcy5tZXRhT2JqZWN0QXR0cmlidXRlcz1bXSx0aGlzLnNob3dUYWJsZT0h''@;'; + put 'put ''MSx0aGlzLnNlbGVjdEFzc29zaWF0aW9uc0RldGFpbHMoaCl9bWV0YUxpc3RPbkZpbHRlcigpe3RoaXMuaGVscGVyU2VydmljZS5saWJyYXJ5T25GaWx0ZXIodGhpcy5tZXRhRGF0YUxpc3QsdGhpcy5tZXRhRGF0YVNlYXJjaCwiSUQiKSxuaS5tZXRhZGF0YS5tZXRhRGF0YVNlYXJjaD10aGlz''@;'; + put 'put ''Lm1ldGFEYXRhU2VhcmNofW1ldGFPYmplY3RPbkZpbHRlcigpe3RoaXMubWV0YU9iamVjdEF0dHJpYnV0ZXM9W10sdGhpcy5oZWxwZXJTZXJ2aWNlLm1ldGFPYmplY3RPbkZpbHRlcih0aGlzLm1ldGFPYmplY3RMaXN0LHRoaXMubWV0YU9iamVjdFNlYXJjaCwiTkFNRSIpLHRoaXMuZ2V0TWV0''@;'; + put 'put ''YU9iamVjdEF0dHJpYnV0ZXModGhpcy5tZXRhT2JqZWN0U2l6ZSksbmkubWV0YWRhdGEubWV0YU9iamVjdFNlYXJjaD10aGlzLm1ldGFPYmplY3RTZWFyY2h9Z2V0TWV0YU9iamVjdEF0dHJpYnV0ZXMoaCl7aWYodm9pZCAwIT09dGhpcy5tZXRhT2JqZWN0TGlzdCYmdGhpcy5tZXRhT2JqZWN0''@;'; + put 'put ''TGlzdC5sZW5ndGg+aCl7bGV0IHY9MCx5PS0xO2ZvcihsZXQgQz0wO0M8dGhpcy5tZXRhT2JqZWN0TGlzdC5sZW5ndGg7QysrKWlmKCh2b2lkIDA9PT10aGlzLm1ldGFPYmplY3RMaXN0W0NdLmhpZGRlbnx8ITE9PT10aGlzLm1ldGFPYmplY3RMaXN0W0NdLmhpZGRlbikmJnYrKyx2PT09aCl7''@;'; + put 'put ''eT1DO2JyZWFrfXRoaXMubWV0YU9iamVjdFNob3dMaXN0PS0xIT09eT90aGlzLm1ldGFPYmplY3RMaXN0LnNsaWNlKDAseSk6dGhpcy5tZXRhT2JqZWN0TGlzdH1lbHNlIHRoaXMubWV0YU9iamVjdFNob3dMaXN0PXRoaXMubWV0YU9iamVjdExpc3R9cGFuZWxDaGFuZ2UoaCx2KXt0aGlzLmRl''@;'; + put 'put ''Ym91bmNlfHwodGhpcy5tZXRhT2JqZWN0T25DbGljayh2LklELHYpLHRoaXMuZGVib3VuY2U9ITAsc2V0VGltZW91dCgoKT0+e3RoaXMuZGVib3VuY2U9ITF9LDYwMCkpfXVwZGF0ZVNlbGVjdGVkUmVwb3NpdG9yeSgpe25pLm1ldGFkYXRhLnNlbGVjdGVkUmVwb3NpdG9yeT10aGlzLnJlcG9z''@;'; + put 'put ''aXRvcnl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKEt0KG11KSxLdChnMiksS3QoWGMpLEt0KFY2KSxLdChabCksS3QoUHUpKX0sZC5cdTAyNzVjbXA9VGkoe3R5cGU6ZCxzZWxlY3RvcnM6W1siYXBwLW1ldGFkYXRhIl1dLGhvc3RBdHRyczpbMSwi''@;'; + put 'put ''Y29udGVudC1jb250YWluZXIiXSxkZWNsczoxNSx2YXJzOjcsY29uc3RzOltbMSwicmVwby1kcm9wZG93biJdLFsiY2xyU2VsZWN0IiwiIiwiaWQiLCJyZXBvc2l0b3J5IiwzLCJuZ01vZGVsIiwibmdNb2RlbENoYW5nZSIsImNoYW5nZSJdLFszLCJ2YWx1ZSIsNCwibmdGb3IiLCJuZ0Zvck9m''@;'; + put 'put ''Il0sWyJjbGFzcyIsInNlYXJjaC1ub2RlIiw0LCJuZ0lmIl0sWzQsIm5nRm9yIiwibmdGb3JPZiJdLFsxLCJjb250ZW50LWFyZWEiXSxbMSwiY2FyZCIsImJhY2tncm91bmQtdHJhbnNwYXJlbnQtaSJdLFsiY2xhc3MiLCJuby10YWJsZS1zZWxlY3RlZCIsNCwibmdJZiJdLFsiY2xhc3MiLCJs''@;'; + put 'put ''b2FkaW5nU3Bpbm5lciIsNCwibmdJZiJdLFsiY2xhc3MiLCJjbHItcm93IGNsci1mbGV4LWdyb3ctMSIsNCwibmdJZiJdLFszLCJ2YWx1ZSJdLFsxLCJzZWFyY2gtbm9kZSJdLFsxLCJ0cmVlLXNlYXJjaC13cmFwcGVyIl0sWyJjbHJJbnB1dCIsIiIsInBsYWNlaG9sZGVyIiwic2VhcmNoIFNB''@;'; + put 'put ''UyBUeXBlcyIsIm5hbWUiLCJpbnB1dCIsImF1dG9jb21wbGV0ZSIsIm9mZiIsMywibmdNb2RlbCIsIm5nTW9kZWxDaGFuZ2UiLCJrZXl1cCJdLFsic2VhcmNoTGliVHJlZUlucHV0IiwiIl0sWyJzaGFwZSIsInNlYXJjaCIsNCwibmdJZiJdLFsic2hhcGUiLCJ0aW1lcyIsMywiY2xpY2siLDQs''@;'; + put 'put ''Im5nSWYiXSxbInNoYXBlIiwic2VhcmNoIl0sWyJzaGFwZSIsInRpbWVzIiwzLCJjbGljayJdLFszLCJjbHJFeHBhbmRlZCIsImNsckxvYWRpbmciLCJjbGljayIsImNsckV4cGFuZGVkQ2hhbmdlIiw0LCJuZ0lmIl0sWzMsImNsckV4cGFuZGVkIiwiY2xyTG9hZGluZyIsImNsaWNrIiwiY2xy''@;'; + put 'put ''RXhwYW5kZWRDaGFuZ2UiXSxbMSwibS0wIiwiY3Vyc29yLXBvaW50ZXIiLDMsImNsaWNrIl0sWyJzaGFwZSIsImJsb2NrIl0sWzEsIm5vLXRhYmxlLXNlbGVjdGVkIl0sWyJzaGFwZSIsIndhcm5pbmctc3RhbmRhcmQiLCJzaXplIiwiNjAiLDEsImlzLWluZm8iLCJpY29uLWRjLWZpbGwiXSxb''@;'; + put 'put ''MSwidGV4dC1jZW50ZXIiLCJjb2xvci1ncmF5Il0sWzEsImxvYWRpbmdTcGlubmVyIl0sWzEsInNwaW5uZXIiXSxbNCwibmdJZiJdLFsxLCJjbHItcm93IiwiY2xyLWZsZXgtZ3Jvdy0xIl0sWzEsImNsci1jb2wtNiJdLFsiY2xhc3MiLCJzZWFyY2gtaW5wdXQiLDQsIm5nSWYiXSxbImNsYXNz''@;'; + put 'put ''Iiwib2JqZWN0cy1jb2wiLDQsIm5nSWYiXSxbMSwiY2xyLWNvbC02IiwidGV4dC1jZW50ZXIiXSxbImNsYXNzIiwiZGF0YWdyaWQtY3VzdG9tLWZvb3RlciIsNCwibmdJZiJdLFsxLCJzZWFyY2gtaW5wdXQiXSxbImNscklucHV0IiwiIiwicGxhY2Vob2xkZXIiLCJzZWFyY2giLCJuYW1lIiwi''@;'; + put 'put ''aW5wdXQiLCJhdXRvY29tcGxldGUiLCJvZmYiLDMsIm5nTW9kZWwiLCJuZ01vZGVsQ2hhbmdlIiwia2V5dXAiXSxbInNlYXJjaE9ialRyZWVJbnB1dCIsIiJdLFsxLCJvYmplY3RzLWNvbCJdLFszLCJjbHJBY2NvcmRpb25QYW5lbE9wZW5DaGFuZ2UiLDQsIm5nSWYiXSxbMywiY2xyQWNjb3Jk''@;'; + put 'put ''aW9uUGFuZWxPcGVuQ2hhbmdlIl0sWyJzaGFwZSIsInJhY2stc2VydmVyIl0sWzEsImZsb2F0LXJpZ2h0Il0sWzQsImNscklmRXhwYW5kZWQiXSxbMywiY2xyTGF6eSIsNCwibmdJZiJdLFszLCJjbHJMYXp5Il0sWzMsImNsckV4cGFuZGFibGUiLDQsImNsclJlY3Vyc2l2ZUZvciIsImNsclJl''@;'; + put 'put ''Y3Vyc2l2ZUZvck9mIiwiY2xyUmVjdXJzaXZlRm9yR2V0Q2hpbGRyZW4iXSxbMywiY2xyRXhwYW5kYWJsZSJdLFsxLCJmdWxsLXdpZHRoIl0sWyJzaGFwZSIsInJhY2stc2VydmVyIiw0LCJuZ0lmIl0sWyJzaGFwZSIsImJsb2NrIiw0LCJuZ0lmIl0sWyJjbGFzcyIsImZsb2F0LXJpZ2h0IG9i''@;'; + put 'put ''amVjdC11cmkiLDQsIm5nSWYiXSxbMSwiZmxvYXQtcmlnaHQiLCJvYmplY3QtdXJpIl0sWzEsImNvbHMtaGVhZCJdLFsxLCJvYmplY3QtdGV4dCJdLFsxLCJtLTAiLCJ3b3JkLWJyZWFrIiwibXItMjAiXSxbMSwiZmxvYXQtcmlnaHQiLCJtbC0zIl0sWzEsImRhdGFncmlkLWN1c3RvbS1mb290''@;'; + put 'put ''ZXIiXSxbMywiY2xyRGdTdHJpbmdGaWx0ZXIiXSxbNCwiY2xyRGdJdGVtcyIsImNsckRnSXRlbXNPZiJdLFszLCJjbHJEZ1BhZ2VTaXplIl0sWyJwYWdpbmF0aW9uIiwiIl0sWzMsImNsclBhZ2VTaXplT3B0aW9ucyJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihoLHYpezEmaCYmKHJ0KDAsImFwcC1z''@;'; + put 'put ''aWRlYmFyIikoMSwiZGl2IiwwKSgyLCJjbHItc2VsZWN0LWNvbnRhaW5lciIpKDMsImxhYmVsIiksWXQoNCwiTWV0YWRhdGEgUmVwb3NpdG9yeSIpLGx0KCkscnQoNSwic2VsZWN0IiwxKSxHbigibmdNb2RlbENoYW5nZSIsZnVuY3Rpb24oQyl7cmV0dXJuIHYucmVwb3NpdG9yeT1DfSkoImNo''@;'; + put 'put ''YW5nZSIsZnVuY3Rpb24oKXtyZXR1cm4gdi51cGRhdGVTZWxlY3RlZFJlcG9zaXRvcnkoKX0pLHJuKDYsc3Z0LDIsMiwib3B0aW9uIiwyKSxsdCgpKCkoKSxydCg3LCJjbHItdHJlZSIpLHJuKDgsZnZ0LDYsMywiY2xyLXRyZWUtbm9kZSIsMykscm4oOSxkdnQsMiwxLCJuZy1jb250YWluZXIi''@;'; + put 'put ''LDQpLGx0KCkoKSxydCgxMCwiZGl2Iiw1KSgxMSwiZGl2Iiw2KSxybigxMixwdnQsNCwwLCJkaXYiLDcpLHJuKDEzLEF2dCw0LDEsImRpdiIsOCkscm4oMTQsTnZ0LDEwLDUsImRpdiIsOSksbHQoKSgpKSwyJmgmJih1dCg1KSxUdCgibmdNb2RlbCIsdi5yZXBvc2l0b3J5KSx1dCgxKSxUdCgi''@;'; + put 'put ''bmdGb3JPZiIsdi5yZXBvc2l0b3JpZXMpLHV0KDIpLFR0KCJuZ0lmIix2Lm1ldGFEYXRhTGlzdCksdXQoMSksVHQoIm5nRm9yT2YiLHYubWV0YURhdGFMaXN0KSx1dCgzKSxUdCgibmdJZiIsIXYubG9hZGluZyYmIXYubWV0YU9iamVjdExpc3QpLHV0KDEpLFR0KCJuZ0lmIix2LmxvYWRpbmcp''@;'; + put 'put ''LHV0KDEpLFR0KCJuZ0lmIix2LnNob3dEYXRhKSl9LGRlcGVuZGVuY2llczpbRXMsTm8scTMsZWQsbTEsT2YseHMsVHMsWkwsZ1MsakwsbVMsZnllLGd3LGNaLGZaLCRmZSxHTCxBUyx5Uyx2UyxkdyxITCxWTCxGZmUseXYsX2csQXllLHdsLGdvLEZmLG90LHB2LGlaLHJaLEskLERMLHEkLCQk''@;'; + put 'put ''LGVxLFVqLGtTLFdoXSxzdHlsZXM6WyIub2JqZWN0cy1jb2xbX25nY29udGVudC0lQ09NUCVde2hlaWdodDo3NXZoO292ZXJmbG93OnNjcm9sbDtib3JkZXI6MXB4IHNvbGlkICNjY2NjY2M7YmFja2dyb3VuZDp3aGl0ZTtib3JkZXItcmFkaXVzOjRweH0uY29scy1oZWFkW19uZ2NvbnRlbnQt''@;'; + put 'put ''JUNPTVAlXXtiYWNrZ3JvdW5kOiNmYWZhZmE7Ym9yZGVyOjFweCBzb2xpZCAjY2NjY2NjO3BhZGRpbmc6MTBweDtkaXNwbGF5OmZsZXh9Lm9iamVjdC10ZXh0W19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6ZmxleC1zdGFydDtqdXN0aWZ5LWNvbnRlbnQ6c3Bh''@;'; + put 'put ''Y2UtYmV0d2VlbjttYXJnaW4tbGVmdDoxMHB4O2ZsZXg6MX0ucmVwby1kcm9wZG93bltfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXJpZ2h0OjE1cHg7bWFyZ2luLWxlZnQ6MTVweDttYXJnaW4tYm90dG9tOjEwcHh9LmNsci1hY2NvcmRpb24tdGl0bGVbX25nY29udGVudC0lQ09NUCVde3dp''@;'; + put 'put ''ZHRoOjEwMCV9LmZsb2F0LXJpZ2h0W19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW46MDtmbG9hdDpyaWdodH0uZnVsbC13aWR0aFtfbmdjb250ZW50LSVDT01QJV17d2lkdGg6MTAwJX0ub2JqZWN0LXVyaVtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luOjVweCAwIDB9Lm9iamVjdC1oZWFkZXJb''@;'; + put 'put ''X25nY29udGVudC0lQ09NUCVde3BhZGRpbmctbGVmdDozcHg7cGFkZGluZy1yaWdodDozcHh9Lm9iamVjdC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdOmhvdmVye2JhY2tncm91bmQtY29sb3I6I2Q4ZTNlOTtib3JkZXItcmFkaXVzOjNweH0uZGF0YWdyaWQtaG9zdFtfbmdjb250ZW50LSVD''@;'; + put 'put ''T01QJV17ZGlzcGxheTp1bnNldCFpbXBvcnRhbnR9LmNhcmRbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6MDtmbGV4OjE7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn0uY29udGVudC1hcmVhW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi41cmVtIWltcG9ydGFu''@;'; + put 'put ''dDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1ufSJdfSksZC5cdTAyNzVwcm92PUFpKHt0b2tlbjpkLGZhY3Rvcnk6ZC5cdTAyNzVmYWMscHJvdmlkZWRJbjoicm9vdCJ9KSxkfSkoKTtmdW5jdGlvbiBWdnQoZCxnKXsxJmQmJkNyKDAsImNsci1pY29uIiwxMil9ZnVuY3Rpb24g''@;'; + put 'put ''anZ0KGQsZyl7aWYoMSZkKXtjb25zdCBoPWJpKCk7cnQoMCwiY2xyLWljb24iLDEzKSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7aXQoaCk7Y29uc3QgeT1KdCgyKTtyZXR1cm4geS5yb2xlU2VhcmNoPSIiLGEoeS5yb2xlTGlzdE9uRmlsdGVyKCkpfSksbHQoKX19ZnVuY3Rpb24gWnZ0KGQsZyl7''@;'; + put 'put ''aWYoMSZkKXtjb25zdCBoPWJpKCk7cnQoMCwiY2xyLXRyZWUtbm9kZSIsNikoMSwiZGl2Iiw3KSgyLCJpbnB1dCIsOCw5KSxHbigibmdNb2RlbENoYW5nZSIsZnVuY3Rpb24oeSl7cmV0dXJuIGl0KGgpLGEoSnQoKS5yb2xlU2VhcmNoPXkpfSkoImtleXVwIixmdW5jdGlvbigpe3JldHVybiBp''@;'; + put 'put ''dChoKSxhKEp0KCkucm9sZUxpc3RPbkZpbHRlcigpKX0pLGx0KCkscm4oNCxWdnQsMSwwLCJjbHItaWNvbiIsMTApLHJuKDUsanZ0LDEsMCwiY2xyLWljb24iLDExKSxsdCgpKCl9aWYoMiZkKXtjb25zdCBoPXlhKDMpLHY9SnQoKTt1dCgyKSxUdCgibmdNb2RlbCIsdi5yb2xlU2VhcmNoKSx1''@;'; + put 'put ''dCgyKSxUdCgibmdJZiIsaC52YWx1ZS5sZW5ndGg8MSksdXQoMSksVHQoIm5nSWYiLGgudmFsdWUubGVuZ3RoPjApfX1mdW5jdGlvbiB6dnQoZCxnKXtpZigxJmQpe2NvbnN0IGg9YmkoKTtydCgwLCJjbHItdHJlZS1ub2RlIiwxNSksR24oImNsaWNrIixmdW5jdGlvbigpe2l0KGgpO2NvbnN0''@;'; + put 'put ''IHk9SnQoKS4kaW1wbGljaXQ7cmV0dXJuIGEoSnQoKS5yb2xlT25DbGljayh5KSl9KSxydCgxLCJwIiwxNiksQ3IoMiwiY2xyLWljb24iLDE3KSxZdCgzKSxsdCgpKCl9aWYoMiZkKXtjb25zdCBoPUp0KCkuJGltcGxpY2l0LHY9SnQoKTtGaSgidGFibGUtYWN0aXZlIixoLlJPTEVVUkk9PT12''@;'; + put 'put ''LnJvbGVVcmkpLHV0KDMpLEppKCIgIixoLlJPTEVOQU1FLCIgIil9fWZ1bmN0aW9uIEd2dChkLGcpe2lmKDEmZCYmKEYwKDApLHJuKDEsenZ0LDQsMywiY2xyLXRyZWUtbm9kZSIsMTQpLEgwKCkpLDImZCl7Y29uc3QgaD1nLiRpbXBsaWNpdDt1dCgxKSxUdCgibmdJZiIsIWguaGlkZGVuKX19''@;'; + put 'put ''ZnVuY3Rpb24gV3Z0KGQsZyl7MSZkJiYocnQoMCwiZGl2IiwxOCkoMSwic3BhbiIsMTkpLFl0KDIsIiBMb2FkaW5nLi4uICIpLGx0KCkoKSl9ZnVuY3Rpb24gWXZ0KGQsZyl7MSZkJiYocnQoMCwiaDUiKSxZdCgxLCJObyBNZW1iZXJzIFByZXNlbnQiKSxsdCgpKX1mdW5jdGlvbiBVdnQoZCxn''@;'; + put 'put ''KXtpZigxJmQmJihydCgwLCJ0ciIsMzIpKDEsInRkIiwzMCksWXQoMiksbHQoKSxydCgzLCJ0ZCIsMzApLFl0KDQpLGx0KCkscnQoNSwidGQiLDMwKSxZdCg2KSxsdCgpLHJ0KDcsInRkIiwzMCksWXQoOCksbHQoKSgpKSwyJmQpe2NvbnN0IGg9Zy4kaW1wbGljaXQ7VHQoInJvdXRlckxpbmsi''@;'; + put 'put ''LCIvdmlldy91c2VybmF2L3VzZXJzLyIraC5VUklNRU0pLHV0KDIpLGppKGguTUVNQkVSTkFNRSksdXQoMiksamkoaC5FTUFJTCksdXQoMiksamkoaC5NRU1CRVJDUkVBVEVEKSx1dCgyKSxqaShoLk1FTUJFUlVQREFURUQpfX1mdW5jdGlvbiBRdnQoZCxnKXtpZigxJmQmJihydCgwLCJ0YWJs''@;'; + put 'put ''ZSIsMjgpKDEsInRoZWFkIikoMiwidHIiKSgzLCJ0ZCIsMjkpKDQsImIiKSxZdCg1LCJOQU1FIiksbHQoKSgpLHJ0KDYsInRkIiwyOSkoNywiYiIpLFl0KDgsIkVNQUlMIiksbHQoKSgpLHJ0KDksInRkIiwyOSkoMTAsImIiKSxZdCgxMSwiQ1JFQVRFRCIpLGx0KCkoKSxydCgxMiwidGQiLDMw''@;'; + put 'put ''KSgxMywiYiIpLFl0KDE0LCJVUERBVEVEIiksbHQoKSgpKCkoKSxydCgxNSwidGJvZHkiKSxybigxNixVdnQsOSw1LCJ0ciIsMzEpLGx0KCkoKSksMiZkKXtjb25zdCBoPUp0KDIpO3V0KDE2KSxUdCgibmdGb3JPZiIsaC5yb2xlTWVtYmVycyl9fWZ1bmN0aW9uIEp2dChkLGcpezEmZCYmKHJ0''@;'; + put 'put ''KDAsImg1IiksWXQoMSwiTm8gR3JvdXBzIFByZXNlbnQgISIpLGx0KCkpfWZ1bmN0aW9uIFh2dChkLGcpe2lmKDEmZCYmKHJ0KDAsInRyIiwzMikoMSwidGQiLDMwKSxZdCgyKSxsdCgpLHJ0KDMsInRkIiwzMCksWXQoNCksbHQoKSxydCg1LCJ0ZCIsMzApLFl0KDYpLGx0KCkscnQoNywidGQi''@;'; + put 'put ''LDMwKSxZdCg4KSxsdCgpKCkpLDImZCl7Y29uc3QgaD1nLiRpbXBsaWNpdDtUdCgicm91dGVyTGluayIsIi92aWV3L3VzZXJuYXYvZ3JvdXBzLyIraC5VUklNRU0pLHV0KDIpLGppKGguTUVNQkVSTkFNRSksdXQoMiksamkoaC5FTUFJTCksdXQoMiksamkoaC5NRU1CRVJDUkVBVEVEKSx1dCgy''@;'; + put 'put ''KSxqaShoLk1FTUJFUlVQREFURUQpfX1mdW5jdGlvbiBLdnQoZCxnKXtpZigxJmQmJihydCgwLCJ0YWJsZSIsMjgpKDEsInRoZWFkIikoMiwidHIiKSgzLCJ0ZCIsMjkpKDQsImIiKSxZdCg1LCJOQU1FIiksbHQoKSgpLHJ0KDYsInRkIiwyOSkoNywiYiIpLFl0KDgsIkVNQUlMIiksbHQoKSgp''@;'; + put 'put ''LHJ0KDksInRkIiwyOSkoMTAsImIiKSxZdCgxMSwiQ1JFQVRFRCIpLGx0KCkoKSxydCgxMiwidGQiLDMwKSgxMywiYiIpLFl0KDE0LCJVUERBVEVEIiksbHQoKSgpKCkoKSxydCgxNSwidGJvZHkiKSxybigxNixYdnQsOSw1LCJ0ciIsMzEpLGx0KCkoKSksMiZkKXtjb25zdCBoPUp0KDIpO3V0''@;'; + put 'put ''KDE2KSxUdCgibmdGb3JPZiIsaC5yb2xlR3JvdXBzKX19ZnVuY3Rpb24gJHZ0KGQsZyl7aWYoMSZkJiYocnQoMCwiZGl2IikoMSwiZGl2IiwyMCkoMiwiZGl2IiwyMSkoMywidGFibGUiLDIyKSg0LCJ0Ym9keSIpKDUsInRyIikoNiwidGQiLDIzKSg3LCJwIiwyNCkoOCwiYiIpLFl0KDkpLGx0''@;'; + put 'put ''KCkoKSgpKCkscnQoMTAsInRyIikoMTEsInRkIiwyMykoMTIsImkiKSxZdCgxMyksbHQoKSgpKCkoKSgpKCkoKSxydCgxNCwiZGl2IiwyMCkoMTUsImRpdiIsMjEpKDE2LCJkaXYiLDI1KSgxNywiZGl2IikoMTgsImgzIiksWXQoMTkpLGx0KCkscm4oMjAsWXZ0LDIsMCwiaDUiLDUpLHJ0KDIx''@;'; + put 'put ''LCJkaXYiLDI2KSxybigyMixRdnQsMTcsMSwidGFibGUiLDI3KSxsdCgpKCksQ3IoMjMsImhyIikscnQoMjQsImRpdiIpKDI1LCJoMyIpLFl0KDI2KSxsdCgpLHJuKDI3LEp2dCwyLDAsImg1Iiw1KSxydCgyOCwiZGl2IiwyNikscm4oMjksS3Z0LDE3LDEsInRhYmxlIiwyNyksbHQoKSgpLENy''@;'; + put 'put ''KDMwLCJiciIpLGx0KCkoKSgpKCkpLDImZCl7Y29uc3QgaD1KdCgpO3V0KDkpLGppKGgucm9sZU5hbWUpLHV0KDQpLGppKGgucm9sZURlc2MpLHV0KDYpLEppKCJNRU1CRVJTICgiLGgucm9sZU1lbWJlcnNDb3VudCwiKSIpLHV0KDEpLFR0KCJuZ0lmIiwwPT1oLnJvbGVNZW1iZXJzQ291bnQp''@;'; + put 'put ''LHV0KDIpLFR0KCJuZ0lmIiwwIT1oLnJvbGVNZW1iZXJzQ291bnQpLHV0KDQpLEppKCJHcm91cHMgKCIsaC5yb2xlR3JvdXBzQ291bnQsIikiKSx1dCgxKSxUdCgibmdJZiIsMD09aC5yb2xlR3JvdXBzQ291bnQpLHV0KDIpLFR0KCJuZ0lmIiwwIT1oLnJvbGVHcm91cHNDb3VudCl9fWxldCBM''@;'; + put 'put ''TGU9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYseSxDLEkpe3RoaXMuc2FzU2VydmljZT1oLHRoaXMuaGVscGVyU2VydmljZT12LHRoaXMucm91dGVyPXksdGhpcy5sb2NhdGlvbj1DLHRoaXMucm91dGU9SSx0aGlzLnJvbGVTZWFyY2g9IiIsdGhpcy5yb2xlVXJpPSIiLHRoaXMucm9s''@;'; + put 'put ''ZU5hbWU9IiIsdGhpcy5yb2xlRGVzYz0iIix0aGlzLnBhcmFtUHJlc2VudD0hMSx0aGlzLnBhcmFtVVJJPSIiLHRoaXMubG9hZGluZz0hMX1uZ09uSW5pdCgpe25pLnZpZXdlci5jdXJyZW50U2VsZWN0aW9uPSJ2aWV3L3VzZXJuYXYvcm9sZXMiLHZvaWQgMCE9PXRoaXMucm91dGUuc25hcHNo''@;'; + put 'put ''b3QucGFyYW1zLnVyaSYmKHRoaXMucGFyYW1QcmVzZW50PSEwLHRoaXMucGFyYW1VUkk9dGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbXMudXJpKSxuaS51c2VybmF2LnJvbGVMaXN0JiYhdGhpcy5wYXJhbVByZXNlbnQ/KHRoaXMucm9sZXM9bmkudXNlcm5hdi5yb2xlTGlzdCx0aGlzLnJvbGVT''@;'; + put 'put ''ZWFyY2g9bmkudXNlcm5hdi5yb2xlU2VhcmNoKTp2b2lkIDA9PT1uaS51c2VybmF2LnJvbGVMaXN0Pyh0aGlzLmxvYWRpbmc9ITAsdGhpcy5zYXNTZXJ2aWNlLnJlcXVlc3QoInVzZXJuYXYvdXNlcnJvbGVzIixudWxsKS50aGVuKGg9PntpZih0aGlzLmxvYWRpbmc9ITEsdGhpcy5yb2xlcz1o''@;'; + put 'put ''LnJvbGVzLG5pLnVzZXJuYXYucm9sZUxpc3Q9aC5yb2xlcyx0aGlzLnBhcmFtUHJlc2VudCYmdm9pZCAwIT09dGhpcy5yb2xlcyl7bGV0IHY9dGhpcy5maW5kUm9sZSh0aGlzLnJvbGVzLHRoaXMucGFyYW1VUkkpOyExIT09diYmKHRoaXMubG9hZGluZz0hMCx0aGlzLnNhc1NlcnZpY2UucmVx''@;'; + put 'put ''dWVzdCgidXNlcm5hdi91c2VybWVtYmVyc2J5cm9sZSIse2l3YW50Olt7cm9sZWlkOnRoaXMucGFyYW1VUkl9XX0pLnRoZW4oQz0+e3RoaXMubG9hZGluZz0hMSx0aGlzLnJvbGVNZW1iZXJzPUMuc2FzbWVtYmVycyx0aGlzLnJvbGVNZW1iZXJzQ291bnQ9Qy5zYXNtZW1iZXJzLmxlbmd0aCx0''@;'; + put 'put ''aGlzLnJvbGVHcm91cHM9Qy5zYXNncm91cHMsdGhpcy5yb2xlR3JvdXBzQ291bnQ9Qy5zYXNncm91cHMubGVuZ3RoLHRoaXMucm9sZVVyaT12LlJPTEVVUkksdGhpcy5yb2xlTmFtZT12LlJPTEVOQU1FLHRoaXMucm9sZURlc2M9di5ST0xFREVTQ30pKX19KSk6KHRoaXMucm9sZXM9bmkudXNl''@;'; + put 'put ''cm5hdi5yb2xlTGlzdCx0aGlzLnJvbGVTZWFyY2g9bmkudXNlcm5hdi5yb2xlU2VhcmNoLHRoaXMuc2FzU2VydmljZS5yZXF1ZXN0KCJ1c2VybmF2L3VzZXJyb2xlcyIsbnVsbCkudGhlbihoPT57aWYodGhpcy5yb2xlcz1oLnJvbGVzLG5pLnVzZXJuYXYucm9sZUxpc3Q9aC5yb2xlcyx0aGlz''@;'; + put 'put ''LnBhcmFtUHJlc2VudCYmdm9pZCAwIT09dGhpcy5yb2xlcyl7bGV0IHY9dGhpcy5maW5kUm9sZSh0aGlzLnJvbGVzLHRoaXMucGFyYW1VUkkpOyExIT09diYmKHRoaXMubG9hZGluZz0hMCx0aGlzLnNhc1NlcnZpY2UucmVxdWVzdCgidXNlcm5hdi91c2VybWVtYmVyc2J5cm9sZSIse2l3YW50''@;'; + put 'put ''Olt7cm9sZWlkOnRoaXMucGFyYW1VUkl9XX0pLnRoZW4oQz0+e3RoaXMubG9hZGluZz0hMSx0aGlzLnJvbGVNZW1iZXJzPUMuc2FzbWVtYmVycyx0aGlzLnJvbGVNZW1iZXJzQ291bnQ9Qy5zYXNtZW1iZXJzLmxlbmd0aCx0aGlzLnJvbGVHcm91cHM9Qy5zYXNncm91cHMsdGhpcy5yb2xlR3Jv''@;'; + put 'put ''dXBzQ291bnQ9Qy5zYXNncm91cHMubGVuZ3RoLHRoaXMucm9sZVVyaT12LlJPTEVVUkksdGhpcy5yb2xlTmFtZT12LlJPTEVOQU1FLHRoaXMucm9sZURlc2M9di5ST0xFREVTQ30pKX19KSl9cm9sZUxpc3RPbkZpbHRlcigpe3RoaXMuaGVscGVyU2VydmljZS5saWJyYXJ5T25GaWx0ZXIodGhp''@;'; + put 'put ''cy5yb2xlcyx0aGlzLnJvbGVTZWFyY2gsIlJPTEVOQU1FIiksbmkudXNlcm5hdi5yb2xlU2VhcmNoPXRoaXMucm9sZVNlYXJjaH1yb2xlT25DbGljayhoKXt0aGlzLmxvYWRpbmc9ITA7bGV0IHY9dGhpcy5yb3V0ZXIudXJsO3RoaXMubG9jYXRpb24ucmVwbGFjZVN0YXRlKHRoaXMucGFyYW1Q''@;'; + put 'put ''cmVzZW50P3Yuc2xpY2UoMCx2Lmxhc3RJbmRleE9mKCIvIikpKyIvIitlbmNvZGVVUkkoaC5ST0xFVVJJKTp2KyIvIitlbmNvZGVVUkkoaC5ST0xFVVJJKSksdGhpcy5zYXNTZXJ2aWNlLnJlcXVlc3QoInVzZXJuYXYvdXNlcm1lbWJlcnNieXJvbGUiLHtpd2FudDpbe3JvbGVpZDpoLlJPTEVV''@;'; + put 'put ''Ukl9XX0pLnRoZW4oQz0+e3RoaXMubG9hZGluZz0hMSx0aGlzLnJvbGVNZW1iZXJzPUMuc2FzbWVtYmVycyx0aGlzLnJvbGVNZW1iZXJzQ291bnQ9Qy5zYXNtZW1iZXJzLmxlbmd0aCx0aGlzLnJvbGVHcm91cHM9Qy5zYXNncm91cHMsdGhpcy5yb2xlR3JvdXBzQ291bnQ9Qy5zYXNncm91cHMu''@;'; + put 'put ''bGVuZ3RoLHRoaXMucm9sZVVyaT1oLlJPTEVVUkksdGhpcy5yb2xlTmFtZT1oLlJPTEVOQU1FLHRoaXMucm9sZURlc2M9aC5ST0xFREVTQ30pfWZpbmRSb2xlKGgsdil7bGV0IHk9ITE7cmV0dXJuIGguZm9yRWFjaChDPT57Qy5ST0xFVVJJPT09diYmKHk9Qyl9KSx5fX1yZXR1cm4gZC5cdTAy''@;'; + put 'put ''NzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShLdChnMiksS3QoWGMpLEt0KFpsKSxLdChWNiksS3QoUHUpKX0sZC5cdTAyNzVjbXA9VGkoe3R5cGU6ZCxzZWxlY3RvcnM6W1siYXBwLXJvbGUiXV0saG9zdEF0dHJzOlsxLCJjb250ZW50LWNvbnRhaW5lciJdLGRlY2xzOjcsdmFy''@;'; + put 'put ''czo0LGNvbnN0czpbWzEsInNpZGViYXItaGVpZ2h0Il0sWyJjbGFzcyIsInNlYXJjaC1ub2RlIiw0LCJuZ0lmIl0sWzQsIm5nRm9yIiwibmdGb3JPZiJdLFsxLCJjb250ZW50LWFyZWEiXSxbImNsYXNzIiwibG9hZGluZ1NwaW5uZXIiLDQsIm5nSWYiXSxbNCwibmdJZiJdLFsxLCJzZWFyY2gt''@;'; + put 'put ''bm9kZSJdLFsxLCJ0cmVlLXNlYXJjaC13cmFwcGVyIl0sWyJjbHJJbnB1dCIsIiIsInBsYWNlaG9sZGVyIiwiRmlsdGVyIGJ5IFJvbGVzIiwibmFtZSIsImlucHV0IiwiYXV0b2NvbXBsZXRlIiwib2ZmIiwzLCJuZ01vZGVsIiwibmdNb2RlbENoYW5nZSIsImtleXVwIl0sWyJzZWFyY2hMaWJU''@;'; + put 'put ''cmVlSW5wdXQiLCIiXSxbInNoYXBlIiwic2VhcmNoIiw0LCJuZ0lmIl0sWyJzaGFwZSIsInRpbWVzIiwzLCJjbGljayIsNCwibmdJZiJdLFsic2hhcGUiLCJzZWFyY2giXSxbInNoYXBlIiwidGltZXMiLDMsImNsaWNrIl0sWzMsInRhYmxlLWFjdGl2ZSIsImNsaWNrIiw0LCJuZ0lmIl0sWzMs''@;'; + put 'put ''ImNsaWNrIl0sWzEsIm0tMCIsImN1cnNvci1wb2ludGVyIiwibGlzdC1wYWRkaW5nIl0sWyJzaGFwZSIsImJsb2Nrcy1ncm91cCJdLFsxLCJsb2FkaW5nU3Bpbm5lciJdLFsxLCJzcGlubmVyIl0sWzEsImNsci1yb3ciXSxbMSwiY2xyLWNvbC04Il0sWzEsInRhYmxlIiwicm9sZS1pbmZvIl0s''@;'; + put 'put ''WzEsImxlZnQiXSxbMSwicm9sZS1pbmZvLXRleHQiXSxbMSwiY2FyZCIsInJvbGUtZGF0YSJdLFsxLCJ0YWJsZS1jb250YWluZXIiXSxbImNsYXNzIiwidGFibGUgbWVtYmVyLXRhYmxlIiw0LCJuZ0lmIl0sWzEsInRhYmxlIiwibWVtYmVyLXRhYmxlIl0sWzEsIndpZHRoLTI1Il0sWzEsIiJd''@;'; + put 'put ''LFszLCJyb3V0ZXJMaW5rIiw0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbMywicm91dGVyTGluayJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihoLHYpezEmaCYmKHJ0KDAsImFwcC1zaWRlYmFyIiwwKSgxLCJjbHItdHJlZSIpLHJuKDIsWnZ0LDYsMywiY2xyLXRyZWUtbm9kZSIsMSkscm4oMyxHdnQsMiwx''@;'; + put 'put ''LCJuZy1jb250YWluZXIiLDIpLGx0KCkoKSxydCg0LCJkaXYiLDMpLHJuKDUsV3Z0LDMsMCwiZGl2Iiw0KSxybig2LCR2dCwzMSw4LCJkaXYiLDUpLGx0KCkpLDImaCYmKHV0KDIpLFR0KCJuZ0lmIix2LnJvbGVzKSx1dCgxKSxUdCgibmdGb3JPZiIsdi5yb2xlcyksdXQoMiksVHQoIm5nSWYi''@;'; + put 'put ''LHYubG9hZGluZyksdXQoMSksVHQoIm5nSWYiLHYucm9sZU1lbWJlcnMmJiF2LmxvYWRpbmcpKX0sZGVwZW5kZW5jaWVzOltFcyxObyxtMSx4cyxUcyxZNix5dixfZyx3bCxwdixrU10sc3R5bGVzOlsiLnNpZGViYXItaGVpZ2h0W19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MTAwJX0ucm9s''@;'; + put 'put ''ZS1pbmZvLXRleHRbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6aW5saW5lO2ZvbnQtc2l6ZToyMHB4fS5yb2xlLWluZm9bX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQtY29sb3I6I2Y5ZjlmOTtib3JkZXI6MXB4IHNvbGlkICNhN2E3YTc7Ym9yZGVyLXJhZGl1czozcHg7Ym94LXNo''@;'; + put 'put ''YWRvdzowIDJweCA1cHggI2RhZDdkN30ucm9sZS1pbmZvW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHRkW19uZ2NvbnRlbnQtJUNPTVAlXXt0ZXh0LWFsaWduOmNlbnRlcn0ucm9sZS1kYXRhW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kLWNvbG9yOiNmOWY5Zjk7Ym9yZGVyOjFweCBzb2xp''@;'; + put 'put ''ZCAjYTdhN2E3O2JvcmRlci1yYWRpdXM6M3B4O2JveC1zaGFkb3c6MCAycHggNXB4ICNkYWQ3ZDd9LnJvbGUtZGF0YVtfbmdjb250ZW50LSVDT01QJV17bWluLWhlaWdodDp1bnNldH0ucm9sZS1kYXRhW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLnJvbGUt''@;'; + put 'put ''ZGF0YVtfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV17dGV4dC1hbGlnbjpjZW50ZXJ9Lm1lbWJlci10YWJsZVtfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZC1jb2xvcjojZjlmOWY5O3dpZHRoOjEwMCV9Lm1lbWJlci10YWJsZVtfbmdjb250ZW50LSVDT01Q''@;'; + put 'put ''JV0gICB0aGVhZFtfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZC1jb2xvcjojZGFkYWRhfS5tZW1iZXItdGFibGVbX25nY29udGVudC0lQ09NUCVdICAgdGJvZHlbX25nY29udGVudC0lQ09NUCVdICAgdHJbX25nY29udGVudC0lQ09NUCVdOmhvdmVye2JhY2tncm91bmQtY29sb3I6I2U2''@;'; + put 'put ''ZTZlNjtjdXJzb3I6cG9pbnRlcn0udGFibGUtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdy15OnNjcm9sbDttYXgtaGVpZ2h0OjcwMHB4fUBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KXsucm9sZS1kYXRhW19uZ2NvbnRlbnQtJUNPTVAlXXttaW4taGVp''@;'; + put 'put ''Z2h0OnVuc2V0IWltcG9ydGFudH19Il19KSxkfSkoKSxxdnQ9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3Rvcigpe31uZ09uSW5pdCgpe319cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQsc2VsZWN0b3JzOltbImFw''@;'; + put 'put ''cC11c2VybmF2LXJvdXRlIl1dLGhvc3RBdHRyczpbMSwiY29udGVudC1jb250YWluZXIiXSxkZWNsczoxLHZhcnM6MCx0ZW1wbGF0ZTpmdW5jdGlvbihoLHYpezEmaCYmQ3IoMCwicm91dGVyLW91dGxldCIpfSxkZXBlbmRlbmNpZXM6W295XX0pLGR9KSgpLGU5dD0oKCk9PntjbGFzcyBke2Nv''@;'; + put 'put ''bnN0cnVjdG9yKCl7fW5nT25Jbml0KCl7fW5nT25EZXN0cm95KCl7fX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVjbXA9VGkoe3R5cGU6ZCxzZWxlY3RvcnM6W1siYXBwLXZpZXctcm91dGUiXV0saG9zdEF0dHJzOlsxLCJjb250ZW50''@;'; + put 'put ''LWNvbnRhaW5lciJdLGRlY2xzOjEsdmFyczowLHRlbXBsYXRlOmZ1bmN0aW9uKGgsdil7MSZoJiZDcigwLCJyb3V0ZXItb3V0bGV0Iil9LGRlcGVuZGVuY2llczpbb3ldfSksZH0pKCk7ZnVuY3Rpb24gdDl0KGQsZyl7MSZkJiZDcigwLCJjbHItaWNvbiIsMTIpfWZ1bmN0aW9uIG45dChkLGcp''@;'; + put 'put ''e2lmKDEmZCl7Y29uc3QgaD1iaSgpO3J0KDAsImNsci1pY29uIiwxMyksR24oImNsaWNrIixmdW5jdGlvbigpe2l0KGgpO2NvbnN0IHk9SnQoMik7cmV0dXJuIHkudXNlclNlYXJjaD0iIixhKHkudXNlckxpc3RPbkZpbHRlcigpKX0pLGx0KCl9fWZ1bmN0aW9uIHI5dChkLGcpe2lmKDEmZCl7''@;'; + put 'put ''Y29uc3QgaD1iaSgpO3J0KDAsImNsci10cmVlLW5vZGUiLDYpKDEsImRpdiIsNykoMiwiaW5wdXQiLDgsOSksR24oIm5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9uKHkpe3JldHVybiBpdChoKSxhKEp0KCkudXNlclNlYXJjaD15KX0pKCJrZXl1cCIsZnVuY3Rpb24oKXtyZXR1cm4gaXQoaCksYShK''@;'; + put 'put ''dCgpLnVzZXJMaXN0T25GaWx0ZXIoKSl9KSxsdCgpLHJuKDQsdDl0LDEsMCwiY2xyLWljb24iLDEwKSxybig1LG45dCwxLDAsImNsci1pY29uIiwxMSksbHQoKSgpfWlmKDImZCl7Y29uc3QgaD15YSgzKSx2PUp0KCk7dXQoMiksVHQoIm5nTW9kZWwiLHYudXNlclNlYXJjaCksdXQoMiksVHQo''@;'; + put 'put ''Im5nSWYiLGgudmFsdWUubGVuZ3RoPDEpLHV0KDEpLFR0KCJuZ0lmIixoLnZhbHVlLmxlbmd0aD4wKX19ZnVuY3Rpb24gaTl0KGQsZyl7aWYoMSZkKXtjb25zdCBoPWJpKCk7cnQoMCwiY2xyLXRyZWUtbm9kZSIsMTUpLEduKCJjbGljayIsZnVuY3Rpb24oKXtpdChoKTtjb25zdCB5PUp0KCku''@;'; + put 'put ''JGltcGxpY2l0O3JldHVybiBhKEp0KCkudXNlck9uQ2xpY2soeSkpfSkscnQoMSwicCIsMTYpLENyKDIsImNsci1pY29uIiwxNyksWXQoMyksbHQoKSgpfWlmKDImZCl7Y29uc3QgaD1KdCgpLiRpbXBsaWNpdCx2PUp0KCk7RmkoInRhYmxlLWFjdGl2ZSIsKG51bGw9PXYudXNlckluZm8/bnVs''@;'; + put 'put ''bDp2LnVzZXJJbmZvLlVSSSk9PT1oLlVSSSksdXQoMyksSmkoIiAiLGguTkFNRSwiICIpfX1mdW5jdGlvbiBvOXQoZCxnKXtpZigxJmQmJihGMCgwKSxybigxLGk5dCw0LDMsImNsci10cmVlLW5vZGUiLDE0KSxIMCgpKSwyJmQpe2NvbnN0IGg9Zy4kaW1wbGljaXQ7dXQoMSksVHQoIm5nSWYi''@;'; + put 'put ''LCFoLmhpZGRlbil9fWZ1bmN0aW9uIGE5dChkLGcpezEmZCYmKHJ0KDAsImRpdiIsMTgpKDEsInNwYW4iLDE5KSxZdCgyLCIgTG9hZGluZy4uLiAiKSxsdCgpKCkpfWZ1bmN0aW9uIGw5dChkLGcpe2lmKDEmZCYmKEYwKDApLHJ0KDEsInRyIikoMiwidGQiLDI3KSxZdCgzLCIgTWV0YWRhdGEg''@;'; + put 'put ''Q3JlYXRlZDogIikscnQoNCwiYiIpLFl0KDUpLGx0KCkoKSgpLHJ0KDYsInRyIikoNywidGQiLDI3KSxZdCg4LCIgTWV0YWRhdGEgVXBkYXRlZDogIikscnQoOSwiYiIpLFl0KDEwKSxsdCgpKCkoKSxIMCgpKSwyJmQpe2NvbnN0IGg9SnQoMyk7dXQoNSksamkoaC51c2VySW5mby5NRVRBREFU''@;'; + put 'put ''QUNSRUFURUQpLHV0KDUpLGppKGgudXNlckluZm8uTUVUQURBVEFVUERBVEVEKX19ZnVuY3Rpb24gczl0KGQsZyl7aWYoMSZkJiYocnQoMCwiZGl2IiwyMSkoMSwiZGl2IiwyMikoMiwidGFibGUiLDI2KSgzLCJ0Ym9keSIpKDQsInRyIikoNSwidGQiLDI3KSg2LCJwIiwyOCkoNywiYiIpLFl0''@;'; + put 'put ''KDgpLGx0KCkoKSgpKCkscnQoOSwidHIiKSgxMCwidGQiLDI3KSgxMSwicCIsMjgpKDEyLCJiIiksWXQoMTMpLGx0KCkoKSgpKCkscm4oMTQsbDl0LDExLDIsIm5nLWNvbnRhaW5lciIsNSksbHQoKSgpKCkoKSksMiZkKXtjb25zdCBoPUp0KDIpO3V0KDgpLGppKGgudXNlckluZm8uTkFNRSks''@;'; + put 'put ''dXQoNSksamkoaC51c2VySW5mby5ESVNQTEFZTkFNRSksdXQoMSksVHQoIm5nSWYiLGguc2VydmVyVHlwZT09PWguU2VydmVyVHlwZS5TYXM5KX19ZnVuY3Rpb24gdTl0KGQsZyl7aWYoMSZkJiYocnQoMCwiZGl2IiwyMSkoMSwiZGl2IiwyMikoMiwidGFibGUiLDI2KSgzLCJ0Ym9keSIpKDQs''@;'; + put 'put ''InRyIikoNSwidGQiLDI3KSg2LCJwIiwyOCkoNywiYiIpLFl0KDgpLGx0KCkoKSgpKCkscnQoOSwidHIiKSgxMCwidGQiLDI3KSxZdCgxMSwiIFVzZXIgSUQ6ICIpLHJ0KDEyLCJiIiksWXQoMTMpLGx0KCkoKSgpLHJ0KDE0LCJ0ciIpKDE1LCJ0ZCIsMjcpLFl0KDE2LCIgVXNlciBwcm92aWRl''@;'; + put 'put ''ciBJRDogIikscnQoMTcsImIiKSxZdCgxOCksbHQoKSgpKCkoKSgpKCkoKSksMiZkKXtjb25zdCBoPUp0KDIpO3V0KDgpLGppKGgudXNlckluZm8uTkFNRSksdXQoNSksamkoaC51c2VySW5mby5VUkkpLHV0KDUpLGppKGgudXNlckluZm8uUFJPVklERVIpfX1mdW5jdGlvbiBjOXQoZCxnKXsx''@;'; + put 'put ''JmQmJihydCgwLCJoNSIpLFl0KDEsIk5vIEVtYWlscyBQcmVzZW50IiksbHQoKSl9ZnVuY3Rpb24gZjl0KGQsZyl7aWYoMSZkJiYocnQoMCwidHIiKSgxLCJ0ZCIsMzEpLFl0KDIpLGx0KCkscnQoMywidGQiLDMxKSxZdCg0KSxsdCgpKCkpLDImZCl7Y29uc3QgaD1nLiRpbXBsaWNpdDt1dCgy''@;'; + put 'put ''KSxqaShoLkVNQUlMKSx1dCgyKSxqaShoLlRZUEUpfX1mdW5jdGlvbiBoOXQoZCxnKXtpZigxJmQmJihydCgwLCJ0YWJsZSIsMjkpKDEsInRoZWFkIikoMiwidHIiKSgzLCJ0ZCIsMzApKDQsImIiKSxZdCg1LCJFTUFJTCIpLGx0KCkoKSxydCg2LCJ0ZCIsMzEpKDcsImIiKSxZdCg4LCJUWVBF''@;'; + put 'put ''IiksbHQoKSgpKCkoKSxydCg5LCJ0Ym9keSIpLHJuKDEwLGY5dCw1LDIsInRyIiwyKSxsdCgpKCkpLDImZCl7Y29uc3QgaD1KdCgzKTt1dCgxMCksVHQoIm5nRm9yT2YiLGgudXNlckVtYWlscyl9fWZ1bmN0aW9uIGQ5dChkLGcpe2lmKDEmZCYmKHJ0KDAsImRpdiIpKDEsImgzIiksWXQoMiks''@;'; + put 'put ''bHQoKSxybigzLGM5dCwyLDAsImg1Iiw1KSxydCg0LCJkaXYiLDI0KSxybig1LGg5dCwxMSwxLCJ0YWJsZSIsMjUpLGx0KCkoKSksMiZkKXtjb25zdCBoPUp0KDIpO3V0KDIpLEppKCJFTUFJTFMgKCIsaC51c2VyRW1haWxzQ291bnR8fCIwIiwiKSIpLHV0KDEpLFR0KCJuZ0lmIiwwPT1oLnVz''@;'; + put 'put ''ZXJFbWFpbHNDb3VudCksdXQoMiksVHQoIm5nSWYiLDAhPWgudXNlckVtYWlsc0NvdW50KX19ZnVuY3Rpb24gcDl0KGQsZyl7MSZkJiZDcigwLCJociIpfWZ1bmN0aW9uIGc5dChkLGcpezEmZCYmKHJ0KDAsImg1IiksWXQoMSwiTm8gR3JvdXBzIFByZXNlbnQiKSxsdCgpKX1mdW5jdGlvbiBt''@;'; + put 'put ''OXQoZCxnKXtpZigxJmQmJihydCgwLCJ0ZCIsMzMpLFl0KDEpLGx0KCkpLDImZCl7Y29uc3QgaD1KdCgpLiRpbXBsaWNpdDtUdCgicm91dGVyTGluayIsIi92aWV3L3VzZXJuYXYvZ3JvdXBzLyIraC5VUkkpLHV0KDEpLEppKCIgIixoLkdST1VQTkFNRSwiICIpfX1mdW5jdGlvbiB2OXQoZCxn''@;'; + put 'put ''KXtpZigxJmQmJihGMCgwKSxydCgxLCJ0ZCIsMzMpLFl0KDIpLGx0KCksSDAoKSksMiZkKXtjb25zdCBoPUp0KCkuJGltcGxpY2l0O3V0KDEpLFR0KCJyb3V0ZXJMaW5rIiwiL3ZpZXcvdXNlcm5hdi9ncm91cHMvIisoaC5HUk9VUFVSSXx8aC5VUkkpKSx1dCgxKSxKaSgiICIsaC5HUk9VUE5B''@;'; + put 'put ''TUUsIiAiKX19ZnVuY3Rpb24gQTl0KGQsZyl7aWYoMSZkJiYocnQoMCwidHIiKSxybigxLG05dCwyLDIsInRkIiwzMikscm4oMix2OXQsMywyLCJuZy1jb250YWluZXIiLDUpLGx0KCkpLDImZCl7Y29uc3QgaD1KdCgzKTt1dCgxKSxUdCgibmdJZiIsaC5zZXJ2ZXJUeXBlPT09aC5TZXJ2ZXJU''@;'; + put 'put ''eXBlLlNhc1ZpeWEpLHV0KDEpLFR0KCJuZ0lmIixoLnNlcnZlclR5cGUhPT1oLlNlcnZlclR5cGUuU2FzVml5YSl9fWZ1bmN0aW9uIHk5dChkLGcpe2lmKDEmZCYmKHJ0KDAsInRhYmxlIiwyOSkoMSwidGJvZHkiKSxybigyLEE5dCwzLDIsInRyIiwyKSxsdCgpKCkpLDImZCl7Y29uc3QgaD1K''@;'; + put 'put ''dCgyKTt1dCgyKSxUdCgibmdGb3JPZiIsaC51c2VyR3JvdXBzKX19ZnVuY3Rpb24gdzl0KGQsZyl7MSZkJiZDcigwLCJociIpfWZ1bmN0aW9uIGI5dChkLGcpezEmZCYmKHJ0KDAsImg1IiksWXQoMSwiTm8gUm9sZXMgUHJlc2VudCIpLGx0KCkpfWZ1bmN0aW9uIF85dChkLGcpe2lmKDEmZCYm''@;'; + put 'put ''KHJ0KDAsInRyIikoMSwidGQiLDM0KSxZdCgyKSxsdCgpKCkpLDImZCl7Y29uc3QgaD1nLiRpbXBsaWNpdCx2PUp0KDQpO3V0KDEpLFR0KCJyb3V0ZXJMaW5rIiwiL3ZpZXcvdXNlcm5hdi9yb2xlcy8iK3YuZ2V0Um9sZVVSSShoLlJPTEVVUkkpKSx1dCgxKSxKaSgiICIsaC5ST0xFTkFNRSwi''@;'; + put 'put ''ICIpfX1mdW5jdGlvbiBDOXQoZCxnKXtpZigxJmQmJihydCgwLCJ0YWJsZSIsMjkpKDEsInRib2R5Iikscm4oMixfOXQsMywyLCJ0ciIsMiksbHQoKSgpKSwyJmQpe2NvbnN0IGg9SnQoMyk7dXQoMiksVHQoIm5nRm9yT2YiLGgudXNlclJvbGVzKX19ZnVuY3Rpb24gazl0KGQsZyl7aWYoMSZk''@;'; + put 'put ''JiYocnQoMCwiZGl2IikoMSwiaDMiKSxZdCgyKSxsdCgpLHJuKDMsYjl0LDIsMCwiaDUiLDUpLHJ0KDQsImRpdiIsMjQpLHJuKDUsQzl0LDMsMSwidGFibGUiLDI1KSxsdCgpKCkpLDImZCl7Y29uc3QgaD1KdCgyKTt1dCgyKSxKaSgiUk9MRVMgKCIsaC51c2VyUm9sZXNDb3VudHx8IjAiLCIp''@;'; + put 'put ''IiksdXQoMSksVHQoIm5nSWYiLDA9PWgudXNlclJvbGVzQ291bnQpLHV0KDIpLFR0KCJuZ0lmIiwwIT1oLnVzZXJSb2xlc0NvdW50KX19ZnVuY3Rpb24gUzl0KGQsZyl7MSZkJiZDcigwLCJociIpfWZ1bmN0aW9uIE05dChkLGcpezEmZCYmKHJ0KDAsImg1IiksWXQoMSwiTm8gTG9naW5zIFBy''@;'; + put 'put ''ZXNlbnQiKSxsdCgpKX1mdW5jdGlvbiBFOXQoZCxnKXtpZigxJmQmJihydCgwLCJ0ciIpKDEsInRkIiwzMSksWXQoMiksbHQoKSxydCgzLCJ0ZCIsMzEpLFl0KDQpLGx0KCkoKSksMiZkKXtjb25zdCBoPWcuJGltcGxpY2l0O3V0KDIpLGppKGguRE9NQUlOKSx1dCgyKSxqaShoLlVTRVJJRCl9''@;'; + put 'put ''fWZ1bmN0aW9uIHg5dChkLGcpe2lmKDEmZCYmKHJ0KDAsInRhYmxlIiwyOSkoMSwidGhlYWQiKSgyLCJ0ciIpKDMsInRkIiwzMCkoNCwiYiIpLFl0KDUsIkRPTUFJTiIpLGx0KCkoKSxydCg2LCJ0ZCIpKDcsImIiKSxZdCg4LCJVU0VSIElEIiksbHQoKSgpKCkoKSxydCg5LCJ0Ym9keSIpLHJu''@;'; + put 'put ''KDEwLEU5dCw1LDIsInRyIiwyKSxsdCgpKCkpLDImZCl7Y29uc3QgaD1KdCgzKTt1dCgxMCksVHQoIm5nRm9yT2YiLGgudXNlckxvZ2lucyl9fWZ1bmN0aW9uIFQ5dChkLGcpe2lmKDEmZCYmKHJ0KDAsImRpdiIpKDEsImgzIiksWXQoMiksbHQoKSxybigzLE05dCwyLDAsImg1Iiw1KSxydCg0''@;'; + put 'put ''LCJkaXYiLDI0KSxybig1LHg5dCwxMSwxLCJ0YWJsZSIsMjUpLGx0KCkoKSksMiZkKXtjb25zdCBoPUp0KDIpO3V0KDIpLEppKCJMT0dJTlMgKCIsaC51c2VyTG9naW5zQ291bnR8fCIwIiwiKSIpLHV0KDEpLFR0KCJuZ0lmIiwwPT1oLnVzZXJMb2dpbnNDb3VudCksdXQoMiksVHQoIm5nSWYi''@;'; + put 'put ''LDAhPWgudXNlckxvZ2luc0NvdW50KX19ZnVuY3Rpb24gSTl0KGQsZyl7aWYoMSZkJiYocnQoMCwiZGl2Iikscm4oMSxzOXQsMTUsMywiZGl2IiwyMCkscm4oMix1OXQsMTksMywiZGl2IiwyMCkscnQoMywiZGl2IiwyMSkoNCwiZGl2IiwyMikoNSwiZGl2IiwyMykscm4oNixkOXQsNiwzLCJk''@;'; + put 'put ''aXYiLDUpLHJuKDcscDl0LDEsMCwiaHIiLDUpLHJ0KDgsImRpdiIpKDksImgzIiksWXQoMTApLGx0KCkscm4oMTEsZzl0LDIsMCwiaDUiLDUpLHJ0KDEyLCJkaXYiLDI0KSxybigxMyx5OXQsMywxLCJ0YWJsZSIsMjUpLGx0KCkoKSxybigxNCx3OXQsMSwwLCJociIsNSkscm4oMTUsazl0LDYs''@;'; + put 'put ''MywiZGl2Iiw1KSxybigxNixTOXQsMSwwLCJociIsNSkscm4oMTcsVDl0LDYsMywiZGl2Iiw1KSxDcigxOCwiYnIiKSxsdCgpKCkoKSgpKSwyJmQpe2NvbnN0IGg9SnQoKTt1dCgxKSxUdCgibmdJZiIsaC5zZXJ2ZXJUeXBlIT09aC5TZXJ2ZXJUeXBlLlNhc1ZpeWEpLHV0KDEpLFR0KCJuZ0lm''@;'; + put 'put ''IixoLnNlcnZlclR5cGU9PT1oLlNlcnZlclR5cGUuU2FzVml5YSYmaC51c2VySW5mbyksdXQoNCksVHQoIm5nSWYiLGguc2VydmVyVHlwZT09PWguU2VydmVyVHlwZS5TYXM5KSx1dCgxKSxUdCgibmdJZiIsaC5zZXJ2ZXJUeXBlPT09aC5TZXJ2ZXJUeXBlLlNhczkpLHV0KDMpLEppKCJHUk9V''@;'; + put 'put ''UFMgKCIsaC51c2VyR3JvdXBzQ291bnR8fCIwIiwiKSIpLHV0KDEpLFR0KCJuZ0lmIiwwPT1oLnVzZXJHcm91cHNDb3VudCksdXQoMiksVHQoIm5nSWYiLDAhPWgudXNlckdyb3Vwc0NvdW50KSx1dCgxKSxUdCgibmdJZiIsaC5zZXJ2ZXJUeXBlPT09aC5TZXJ2ZXJUeXBlLlNhczkpLHV0KDEp''@;'; + put 'put ''LFR0KCJuZ0lmIixoLnNlcnZlclR5cGU9PT1oLlNlcnZlclR5cGUuU2FzOSksdXQoMSksVHQoIm5nSWYiLGguc2VydmVyVHlwZT09PWguU2VydmVyVHlwZS5TYXM5KSx1dCgxKSxUdCgibmdJZiIsaC5zZXJ2ZXJUeXBlPT09aC5TZXJ2ZXJUeXBlLlNhczkpfX1sZXQgT0xlPSgoKT0+e2NsYXNz''@;'; + put 'put ''IGR7Y29uc3RydWN0b3IoaCx2LHksQyxJKXt0aGlzLmhlbHBlclNlcnZpY2U9aCx0aGlzLnNhc1NlcnZpY2U9dix0aGlzLnJvdXRlPXksdGhpcy5sb2NhdGlvbj1DLHRoaXMucm91dGVyPUksdGhpcy5sb2FkaW5nPSExLHRoaXMudXNlclNlYXJjaD0iIix0aGlzLnBhcmFtUHJlc2VudD0hMSx0''@;'; + put 'put ''aGlzLnBhcmFtTmFtZT0iIix0aGlzLnNhc2pzQ29uZmlnPW5ldyBRMy5TQVNqc0NvbmZpZyx0aGlzLmlzVml5YT0hMSx0aGlzLnNlcnZlclR5cGU9IiIsdGhpcy5TZXJ2ZXJUeXBlPUh1LkQsdGhpcy5zZXJ2ZXJUeXBlPXRoaXMuc2FzU2VydmljZS5nZXRTZXJ2ZXJUeXBlKCksdGhpcy5zYXNq''@;'; + put 'put ''c0NvbmZpZz10aGlzLnNhc1NlcnZpY2UuZ2V0U2FzanNDb25maWcoKSwiU0FTVklZQSI9PT10aGlzLnNhc2pzQ29uZmlnLnNlcnZlclR5cGUmJih0aGlzLmlzVml5YT0hMCl9bmdPbkluaXQoKXtpZihuaS52aWV3ZXIuY3VycmVudFNlbGVjdGlvbj0idmlldy91c2VybmF2L3VzZXJzIix2b2lk''@;'; + put 'put ''IDAhPT10aGlzLnJvdXRlLnNuYXBzaG90LnBhcmFtcy51cmkmJih0aGlzLnBhcmFtUHJlc2VudD0hMCx0aGlzLnBhcmFtTmFtZT10aGlzLnJvdXRlLnNuYXBzaG90LnBhcmFtcy51cmkpLG5pLnVzZXJuYXYudXNlckxpc3QmJiF0aGlzLnBhcmFtUHJlc2VudCl0aGlzLnVzZXJzPW5pLnVzZXJu''@;'; + put 'put ''YXYudXNlckxpc3QsdGhpcy51c2VyU2VhcmNoPW5pLnVzZXJuYXYudXNlclNlYXJjaDtlbHNlIGlmKHZvaWQgMD09PW5pLnVzZXJuYXYudXNlckxpc3Q/KHRoaXMubG9hZGluZz0hMCx0aGlzLmlzVml5YT9mZXRjaCh0aGlzLnNhc2pzQ29uZmlnLnNlcnZlclVybCsiL2lkZW50aXRpZXMvdXNl''@;'; + put 'put ''cnM/bGltaXQ9MjAwMCIse2hlYWRlcnM6e0FjY2VwdDoiYXBwbGljYXRpb24vanNvbiJ9fSkudGhlbihoPT5oLnRleHQoKSkudGhlbihoPT57bGV0IHk9SlNPTi5wYXJzZShoKS5pdGVtcy5tYXAoQz0+KHtOQU1FOkMubmFtZSxVUkk6Qy5pZCxQUk9WSURFUjpDLnByb3ZpZGVySWR9KSk7dGhp''@;'; + put 'put ''cy5sb2FkaW5nPSExLHRoaXMudXNlcnM9eSxuaS51c2VybmF2LnVzZXJMaXN0PXl9KTp0aGlzLnNhc1NlcnZpY2UucmVxdWVzdCgidXNlcm5hdi91c2VybWVtYmVycyIsbnVsbCkudGhlbihoPT57dGhpcy5sb2FkaW5nPSExLHRoaXMudXNlcnM9aC51c2VycyxuaS51c2VybmF2LnVzZXJMaXN0''@;'; + put 'put ''PWgudXNlcnN9KSk6KHRoaXMudXNlcnM9bmkudXNlcm5hdi51c2VyTGlzdCx0aGlzLnVzZXJTZWFyY2g9bmkudXNlcm5hdi51c2VyU2VhcmNoKSx0aGlzLnBhcmFtUHJlc2VudClpZih0aGlzLmxvYWRpbmc9ITAsdGhpcy5pc1ZpeWEpe2xldCBoPXRoaXMucm91dGUuc25hcHNob3QucGFyYW1z''@;'; + put 'put ''LnVyaTtmZXRjaCh0aGlzLnNhc2pzQ29uZmlnLnNlcnZlclVybCsiL2lkZW50aXRpZXMvdXNlcnMvIitoKyIvbWVtYmVyc2hpcHM/bGltaXQ9MjAwMCIse2hlYWRlcnM6e0FjY2VwdDoiYXBwbGljYXRpb24vanNvbiJ9fSkudGhlbih2PT52LnRleHQoKSkudGhlbih2PT57bGV0IHk9SlNPTi5w''@;'; + put 'put ''YXJzZSh2KTt0aGlzLnVzZXJEYXRhPXksdGhpcy5sb2FkaW5nPSExO2xldCBDPXkuaXRlbXMubWFwKEk9Pih7R1JPVVBOQU1FOkkubmFtZSxVUkk6SS5pZH0pKTt0aGlzLnVzZXJHcm91cHM9Qyx0aGlzLnVzZXJHcm91cHNDb3VudD1DLmxlbmd0aCx0aGlzLnVzZXJzJiYodGhpcy51c2VySW5m''@;'; + put 'put ''bz10aGlzLnVzZXJzLmZpbmQoST0+SS5VUkk9PT1oKSl9KX1lbHNle2NvbnN0IGg9dGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbXMudXJpO3RoaXMuc2FzU2VydmljZS5yZXF1ZXN0KCJ1c2VybmF2L3VzZXJncm91cHNieW1lbWJlciIse2l3YW50Olt7dXJpOmh9XX0pLnRoZW4oeT0+e3N3aXRj''@;'; + put 'put ''aCh0aGlzLmxvYWRpbmc9ITEsdGhpcy5zZXJ2ZXJUeXBlKXtjYXNlIEh1LkQuU2FzOTp0aGlzLnVzZXJJbmZvPXkuaW5mb1swXSx0aGlzLnVzZXJFbWFpbHM9eS5lbWFpbHMsdGhpcy51c2VyRW1haWxzQ291bnQ9eS5lbWFpbHMubGVuZ3RoLHRoaXMudXNlclJvbGVzPXkucm9sZXMsdGhpcy51''@;'; + put 'put ''c2VyUm9sZXNDb3VudD15LnJvbGVzLmxlbmd0aCx0aGlzLnVzZXJMb2dpbnM9eS5sb2dpbnMsdGhpcy51c2VyTG9naW5zQ291bnQ9eS5sb2dpbnMubGVuZ3RoO2JyZWFrO2Nhc2UgSHUuRC5TYXNqczppZih0aGlzLnVzZXJzKXRoaXMudXNlckluZm89dGhpcy51c2Vycy5maW5kKEM9PkMuVVJJ''@;'; + put 'put ''PT09aCk7ZWxzZXtjb25zdCBDPXkuZ3JvdXBzWzBdO3RoaXMudXNlckluZm89e1VSSTpDLklELE5BTUU6Qy5OQU1FLERJU1BMQVlOQU1FOkMuTkFNRX19fXRoaXMudXNlckRhdGE9eSx0aGlzLnVzZXJHcm91cHM9eS5ncm91cHMsdGhpcy51c2VyR3JvdXBzQ291bnQ9eS5ncm91cHMubGVuZ3Ro''@;'; + put 'put ''fSl9fXVzZXJMaXN0T25GaWx0ZXIoKXt0aGlzLmhlbHBlclNlcnZpY2UubGlicmFyeU9uRmlsdGVyKHRoaXMudXNlcnMsdGhpcy51c2VyU2VhcmNoLCJOQU1FIiksbmkudXNlcm5hdi51c2VyU2VhcmNoPXRoaXMudXNlclNlYXJjaH11c2VyT25DbGljayhoKXt0aGlzLmxvYWRpbmc9ITA7bGV0''@;'; + put 'put ''IHY9dGhpcy5yb3V0ZXIudXJsO3RoaXMubG9jYXRpb24ucmVwbGFjZVN0YXRlKHRoaXMucGFyYW1QcmVzZW50P3Yuc2xpY2UoMCx2Lmxhc3RJbmRleE9mKCIvIikpKyIvIitlbmNvZGVVUkkoaC5VUkkpOnYrIi8iK2VuY29kZVVSSShoLlVSSSkpLHRoaXMuaXNWaXlhP2ZldGNoKHRoaXMuc2Fz''@;'; + put 'put ''anNDb25maWcuc2VydmVyVXJsKyIvaWRlbnRpdGllcy91c2Vycy8iK2guVVJJKyIvbWVtYmVyc2hpcHM/bGltaXQ9MjAwMCIse2hlYWRlcnM6e0FjY2VwdDoiYXBwbGljYXRpb24vanNvbiJ9fSkudGhlbih5PT55LnRleHQoKSkudGhlbih5PT57bGV0IEM9SlNPTi5wYXJzZSh5KTt0aGlzLnVz''@;'; + put 'put ''ZXJEYXRhPUMsdGhpcy5sb2FkaW5nPSExO2xldCBJPUMuaXRlbXMubWFwKGo9Pih7R1JPVVBOQU1FOmoubmFtZSxVUkk6ai5pZH0pKTt0aGlzLnVzZXJHcm91cHM9SSx0aGlzLnVzZXJHcm91cHNDb3VudD1JLmxlbmd0aCx0aGlzLnVzZXJzJiYodGhpcy51c2VySW5mbz10aGlzLnVzZXJzLmZp''@;'; + put 'put ''bmQoaj0+ai5VUkk9PT1oLlVSSSkpfSk6dGhpcy5zYXNTZXJ2aWNlLnJlcXVlc3QoInVzZXJuYXYvdXNlcmdyb3Vwc2J5bWVtYmVyIix7aXdhbnQ6W3t1cmk6aC5VUkl9XX0pLnRoZW4oQz0+e3N3aXRjaCh0aGlzLmxvYWRpbmc9ITEsdGhpcy5zZXJ2ZXJUeXBlKXtjYXNlIEh1LkQuU2FzOTp0''@;'; + put 'put ''aGlzLnVzZXJJbmZvPUMuaW5mb1swXSx0aGlzLnVzZXJFbWFpbHM9Qy5lbWFpbHMsdGhpcy51c2VyRW1haWxzQ291bnQ9Qy5lbWFpbHMubGVuZ3RoLHRoaXMudXNlclJvbGVzPUMucm9sZXMsdGhpcy51c2VyUm9sZXNDb3VudD1DLnJvbGVzLmxlbmd0aCx0aGlzLnVzZXJMb2dpbnM9Qy5sb2dp''@;'; + put 'put ''bnMsdGhpcy51c2VyTG9naW5zQ291bnQ9Qy5sb2dpbnMubGVuZ3RoO2JyZWFrO2Nhc2UgSHUuRC5TYXNqczppZih0aGlzLnVzZXJzKXRoaXMudXNlckluZm89dGhpcy51c2Vycy5maW5kKEk9PkkuVVJJPT09aC5VUkkpO2Vsc2V7Y29uc3QgST1DLmdyb3Vwc1swXTt0aGlzLnVzZXJJbmZvPXtV''@;'; + put 'put ''Ukk6SS5JRCxOQU1FOkkuTkFNRSxESVNQTEFZTkFNRTpJLk5BTUV9fX10aGlzLnVzZXJEYXRhPUMsdGhpcy51c2VyR3JvdXBzPUMuZ3JvdXBzLHRoaXMudXNlckdyb3Vwc0NvdW50PUMuZ3JvdXBzLmxlbmd0aH0pfWdldFJvbGVVUkkoaCl7cmV0dXJuIGguc3BsaXQoIk9NU09CSjpJZGVudGl0''@;'; + put 'put ''eUdyb3VwIilbMV0uc2xpY2UoMSl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKEt0KFhjKSxLdChnMiksS3QoUHUpLEt0KFY2KSxLdChabCkpfSxkLlx1MDI3NWNtcD1UaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJhcHAtdXNlciJdXSxob3N0QXR0cnM6''@;'; + put 'put ''WzEsImNvbnRlbnQtY29udGFpbmVyIl0sZGVjbHM6Nyx2YXJzOjQsY29uc3RzOltbMSwic2lkZWJhci1oZWlnaHQiXSxbImNsYXNzIiwic2VhcmNoLW5vZGUiLDQsIm5nSWYiXSxbNCwibmdGb3IiLCJuZ0Zvck9mIl0sWzEsImNvbnRlbnQtYXJlYSJdLFsiY2xhc3MiLCJsb2FkaW5nU3Bpbm5l''@;'; + put 'put ''ciIsNCwibmdJZiJdLFs0LCJuZ0lmIl0sWzEsInNlYXJjaC1ub2RlIl0sWzEsInRyZWUtc2VhcmNoLXdyYXBwZXIiXSxbImNscklucHV0IiwiIiwicGxhY2Vob2xkZXIiLCJGaWx0ZXIgYnkgVXNlcnMiLCJuYW1lIiwiaW5wdXQiLCJhdXRvY29tcGxldGUiLCJvZmYiLDMsIm5nTW9kZWwiLCJu''@;'; + put 'put ''Z01vZGVsQ2hhbmdlIiwia2V5dXAiXSxbInNlYXJjaExpYlRyZWVJbnB1dCIsIiJdLFsic2hhcGUiLCJzZWFyY2giLDQsIm5nSWYiXSxbInNoYXBlIiwidGltZXMiLDMsImNsaWNrIiw0LCJuZ0lmIl0sWyJzaGFwZSIsInNlYXJjaCJdLFsic2hhcGUiLCJ0aW1lcyIsMywiY2xpY2siXSxbMywi''@;'; + put 'put ''dGFibGUtYWN0aXZlIiwiY2xpY2siLDQsIm5nSWYiXSxbMywiY2xpY2siXSxbMSwibS0wIiwiY3Vyc29yLXBvaW50ZXIiLCJsaXN0LXBhZGRpbmciXSxbInNoYXBlIiwidXNlciJdLFsxLCJsb2FkaW5nU3Bpbm5lciJdLFsxLCJzcGlubmVyIl0sWyJjbGFzcyIsImNsci1yb3ciLDQsIm5nSWYi''@;'; + put 'put ''XSxbMSwiY2xyLXJvdyJdLFsxLCJjbHItY29sLTgiXSxbMSwiY2FyZCIsInVzZXItZGF0YSJdLFsxLCJ0YWJsZS1jb250YWluZXIiXSxbImNsYXNzIiwidGFibGUgdXNlci10YWJsZSIsNCwibmdJZiJdLFsxLCJ0YWJsZSIsInVzZXItaW5mbyJdLFsxLCJsZWZ0Il0sWzEsInVzZXItaW5mby10''@;'; + put 'put ''ZXh0Il0sWzEsInRhYmxlIiwidXNlci10YWJsZSJdLFsxLCJ3aWR0aC01MCJdLFsxLCIiXSxbInJvdXRlckxpbmtBY3RpdmUiLCJhY3RpdmUiLCJjbGFzcyIsIiIsMywicm91dGVyTGluayIsNCwibmdJZiJdLFsicm91dGVyTGlua0FjdGl2ZSIsImFjdGl2ZSIsMSwiIiwzLCJyb3V0ZXJMaW5r''@;'; + put 'put ''Il0sWzMsInJvdXRlckxpbmsiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oaCx2KXsxJmgmJihydCgwLCJhcHAtc2lkZWJhciIsMCkoMSwiY2xyLXRyZWUiKSxybigyLHI5dCw2LDMsImNsci10cmVlLW5vZGUiLDEpLHJuKDMsbzl0LDIsMSwibmctY29udGFpbmVyIiwyKSxsdCgpKCkscnQoNCwiZGl2''@;'; + put 'put ''IiwzKSxybig1LGE5dCwzLDAsImRpdiIsNCkscm4oNixJOXQsMTksMTEsImRpdiIsNSksbHQoKSksMiZoJiYodXQoMiksVHQoIm5nSWYiLHYudXNlcnMpLHV0KDEpLFR0KCJuZ0Zvck9mIix2LnVzZXJzKSx1dCgyKSxUdCgibmdJZiIsdi5sb2FkaW5nKSx1dCgxKSxUdCgibmdJZiIsdi51c2Vy''@;'; + put 'put ''RGF0YSYmIXYubG9hZGluZykpfSxkZXBlbmRlbmNpZXM6W0VzLE5vLG0xLHhzLFRzLFk2LGxrLHl2LF9nLHdsLHB2LGtTXSxzdHlsZXM6WyIuc2lkZWJhci1oZWlnaHRbX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxMDAlfS51c2VyLWluZm8tdGV4dFtfbmdjb250ZW50LSVDT01QJV17ZGlz''@;'; + put 'put ''cGxheTppbmxpbmU7Zm9udC1zaXplOjIwcHh9LnVzZXItaW5mb1tfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZC1jb2xvcjojZjlmOWY5O2JvcmRlcjoxcHggc29saWQgI2E3YTdhNztib3JkZXItcmFkaXVzOjNweDtib3gtc2hhZG93OjAgMnB4IDVweCAjZGFkN2Q3fS51c2VyLWluZm9b''@;'; + put 'put ''X25nY29udGVudC0lQ09NUCVdICAgdGRbX25nY29udGVudC0lQ09NUCVde3RleHQtYWxpZ246Y2VudGVyfS51c2VyLWRhdGFbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQtY29sb3I6I2Y5ZjlmOTtib3JkZXI6MXB4IHNvbGlkICNhN2E3YTc7Ym9yZGVyLXJhZGl1czozcHg7Ym94LXNo''@;'; + put 'put ''YWRvdzowIDJweCA1cHggI2RhZDdkN30udXNlci1kYXRhW19uZ2NvbnRlbnQtJUNPTVAlXXttaW4taGVpZ2h0OmF1dG99LnVzZXItZGF0YVtfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV0sIC51c2VyLWRhdGFbX25nY29udGVudC0lQ09NUCVdICAgaDVbX25nY29u''@;'; + put 'put ''dGVudC0lQ09NUCVde3RleHQtYWxpZ246Y2VudGVyfS51c2VyLXRhYmxlW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kLWNvbG9yOiNmOWY5Zjk7d2lkdGg6MTAwJX0udXNlci10YWJsZVtfbmdjb250ZW50LSVDT01QJV0gICB0aGVhZFtfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3Vu''@;'; + put 'put ''ZC1jb2xvcjojZGFkYWRhfS51c2VyLXRhYmxlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHRib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHRyW19uZ2NvbnRlbnQtJUNPTVAlXTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiNlNmU2ZTY7Y3Vyc29yOnBvaW50ZXJ9LndpZHRoLTUwW19uZ2NvbnRlbnQt''@;'; + put 'put ''JUNPTVAlXXt3aWR0aDo1MCV9LndpZHRoLTMzW19uZ2NvbnRlbnQtJUNPTVAlXXt3aWR0aDozMyV9LnRhYmxlLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3cteTpzY3JvbGw7bWF4LWhlaWdodDo1MDBweH1AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCl7''@;'; + put 'put ''LnVzZXItZGF0YVtfbmdjb250ZW50LSVDT01QJV17bWluLWhlaWdodDp1bnNldCFpbXBvcnRhbnR9fSJdfSksZH0pKCk7Y29uc3QgUkxlPW5ldyB6ZSgiV2luZG93VG9rZW4iLCJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiZ3aW5kb3cuZG9jdW1lbnQ/e3Byb3ZpZGVkSW46InJvb3QiLGZh''@;'; + put 'put ''Y3Rvcnk6KCk9PndpbmRvd306dm9pZCAwKTtjbGFzcyBWZ3tjb25zdHJ1Y3RvcihnLGgpe3RoaXMuZG9jdW1lbnQ9Zyx0aGlzLndpbmRvdz1oLHRoaXMuY29weVN1YmplY3Q9bmV3ICRlLHRoaXMuY29weVJlc3BvbnNlJD10aGlzLmNvcHlTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpLHRoaXMuY29u''@;'; + put 'put ''ZmlnPXt9fWNvbmZpZ3VyZShnKXt0aGlzLmNvbmZpZz1nfWNvcHkoZyl7aWYoIXRoaXMuaXNTdXBwb3J0ZWR8fCFnKXJldHVybiB0aGlzLnB1c2hDb3B5UmVzcG9uc2Uoe2lzU3VjY2VzczohMSxjb250ZW50Omd9KTtjb25zdCBoPXRoaXMuY29weUZyb21Db250ZW50KGcpO3JldHVybiB0aGlz''@;'; + put 'put ''LnB1c2hDb3B5UmVzcG9uc2UoaD97Y29udGVudDpnLGlzU3VjY2VzczpofTp7aXNTdWNjZXNzOiExLGNvbnRlbnQ6Z30pfWdldCBpc1N1cHBvcnRlZCgpe3JldHVybiEhdGhpcy5kb2N1bWVudC5xdWVyeUNvbW1hbmRTdXBwb3J0ZWQmJiEhdGhpcy5kb2N1bWVudC5xdWVyeUNvbW1hbmRTdXBw''@;'; + put 'put ''b3J0ZWQoImNvcHkiKSYmISF0aGlzLndpbmRvd31pc1RhcmdldFZhbGlkKGcpe2lmKGcgaW5zdGFuY2VvZiBIVE1MSW5wdXRFbGVtZW50fHxnIGluc3RhbmNlb2YgSFRNTFRleHRBcmVhRWxlbWVudCl7aWYoZy5oYXNBdHRyaWJ1dGUoImRpc2FibGVkIikpdGhyb3cgbmV3IEVycm9yKCdJbnZh''@;'; + put 'put ''bGlkICJ0YXJnZXQiIGF0dHJpYnV0ZS4gUGxlYXNlIHVzZSAicmVhZG9ubHkiIGluc3RlYWQgb2YgImRpc2FibGVkIiBhdHRyaWJ1dGUnKTtyZXR1cm4hMH10aHJvdyBuZXcgRXJyb3IoIlRhcmdldCBzaG91bGQgYmUgaW5wdXQgb3IgdGV4dGFyZWEiKX1jb3B5RnJvbUlucHV0RWxlbWVudChn''@;'; + put 'put ''LGg9ITApe3RyeXt0aGlzLnNlbGVjdFRhcmdldChnKTtjb25zdCB2PXRoaXMuY29weVRleHQoKTtyZXR1cm4gdGhpcy5jbGVhclNlbGVjdGlvbihoP2c6dm9pZCAwLHRoaXMud2luZG93KSx2JiZ0aGlzLmlzQ29weVN1Y2Nlc3NJbklFMTEoKX1jYXRjaCh2KXtyZXR1cm4hMX19aXNDb3B5U3Vj''@;'; + put 'put ''Y2Vzc0luSUUxMSgpe2NvbnN0IGc9dGhpcy53aW5kb3cuY2xpcGJvYXJkRGF0YTtyZXR1cm4hKGcmJmcuZ2V0RGF0YSYmIWcuZ2V0RGF0YSgiVGV4dCIpKX1jb3B5RnJvbUNvbnRlbnQoZyxoPXRoaXMuZG9jdW1lbnQuYm9keSl7aWYodGhpcy50ZW1wVGV4dEFyZWEmJiFoLmNvbnRhaW5zKHRo''@;'; + put 'put ''aXMudGVtcFRleHRBcmVhKSYmdGhpcy5kZXN0cm95KHRoaXMudGVtcFRleHRBcmVhLnBhcmVudEVsZW1lbnQpLCF0aGlzLnRlbXBUZXh0QXJlYSl7dGhpcy50ZW1wVGV4dEFyZWE9dGhpcy5jcmVhdGVUZW1wVGV4dEFyZWEodGhpcy5kb2N1bWVudCx0aGlzLndpbmRvdyk7dHJ5e2guYXBwZW5k''@;'; + put 'put ''Q2hpbGQodGhpcy50ZW1wVGV4dEFyZWEpfWNhdGNoKHkpe3Rocm93IG5ldyBFcnJvcigiQ29udGFpbmVyIHNob3VsZCBiZSBhIERvbSBlbGVtZW50Iil9fXRoaXMudGVtcFRleHRBcmVhLnZhbHVlPWc7Y29uc3Qgdj10aGlzLmNvcHlGcm9tSW5wdXRFbGVtZW50KHRoaXMudGVtcFRleHRBcmVh''@;'; + put 'put ''LCExKTtyZXR1cm4gdGhpcy5jb25maWcuY2xlYW5VcEFmdGVyQ29weSYmdGhpcy5kZXN0cm95KHRoaXMudGVtcFRleHRBcmVhLnBhcmVudEVsZW1lbnQpLHZ9ZGVzdHJveShnPXRoaXMuZG9jdW1lbnQuYm9keSl7dGhpcy50ZW1wVGV4dEFyZWEmJihnLnJlbW92ZUNoaWxkKHRoaXMudGVtcFRl''@;'; + put 'put ''eHRBcmVhKSx0aGlzLnRlbXBUZXh0QXJlYT12b2lkIDApfXNlbGVjdFRhcmdldChnKXtyZXR1cm4gZy5zZWxlY3QoKSxnLnNldFNlbGVjdGlvblJhbmdlKDAsZy52YWx1ZS5sZW5ndGgpLGcudmFsdWUubGVuZ3RofWNvcHlUZXh0KCl7cmV0dXJuIHRoaXMuZG9jdW1lbnQuZXhlY0NvbW1hbmQo''@;'; + put 'put ''ImNvcHkiKX1jbGVhclNlbGVjdGlvbihnLGgpe2cmJmcuZm9jdXMoKSxoLmdldFNlbGVjdGlvbigpLnJlbW92ZUFsbFJhbmdlcygpfWNyZWF0ZVRlbXBUZXh0QXJlYShnLGgpe2NvbnN0IHY9InJ0bCI9PT1nLmRvY3VtZW50RWxlbWVudC5nZXRBdHRyaWJ1dGUoImRpciIpO2xldCB5O3JldHVy''@;'; + put 'put ''biB5PWcuY3JlYXRlRWxlbWVudCgidGV4dGFyZWEiKSx5LnN0eWxlLmZvbnRTaXplPSIxMnB0Iix5LnN0eWxlLmJvcmRlcj0iMCIseS5zdHlsZS5wYWRkaW5nPSIwIix5LnN0eWxlLm1hcmdpbj0iMCIseS5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiLHkuc3R5bGVbdj8icmlnaHQiOiJsZWZ0''@;'; + put 'put ''Il09Ii05OTk5cHgiLHkuc3R5bGUudG9wPShoLnBhZ2VZT2Zmc2V0fHxnLmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3ApKyJweCIseS5zZXRBdHRyaWJ1dGUoInJlYWRvbmx5IiwiIikseX1wdXNoQ29weVJlc3BvbnNlKGcpe3RoaXMuY29weVN1YmplY3QubmV4dChnKX1wdXNoQ29weVJlcG9u''@;'; + put 'put ''c2UoZyl7dGhpcy5wdXNoQ29weVJlc3BvbnNlKGcpfX1WZy5cdTAyNzVmYWM9ZnVuY3Rpb24oZyl7cmV0dXJuIG5ldyhnfHxWZykoQ2kocHMpLENpKFJMZSw4KSl9LFZnLlx1MDI3NXByb3Y9QWkoe3Rva2VuOlZnLGZhY3Rvcnk6VmcuXHUwMjc1ZmFjLHByb3ZpZGVkSW46InJvb3QifSksVmcu''@;'; + put 'put ''bmdJbmplY3RhYmxlRGVmPXZpKHtmYWN0b3J5OmZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBWZyhoMihwcyksaDIoUkxlLDgpKX0sdG9rZW46VmcscHJvdmlkZWRJbjoicm9vdCJ9KTtsZXQgRDl0PSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCl7dGhpcy5jbGlwYm9hcmRTcnY9aCx0aGlzLmNi''@;'; + put 'put ''T25TdWNjZXNzPW5ldyBhcix0aGlzLmNiT25FcnJvcj1uZXcgYXJ9bmdPbkluaXQoKXt9bmdPbkRlc3Ryb3koKXt0aGlzLmNsaXBib2FyZFNydi5kZXN0cm95KHRoaXMuY29udGFpbmVyKX1vbkNsaWNrKGgpe3RoaXMuY2xpcGJvYXJkU3J2LmlzU3VwcG9ydGVkP3RoaXMudGFyZ2V0RWxtJiZ0''@;'; + put 'put ''aGlzLmNsaXBib2FyZFNydi5pc1RhcmdldFZhbGlkKHRoaXMudGFyZ2V0RWxtKT90aGlzLmhhbmRsZVJlc3VsdCh0aGlzLmNsaXBib2FyZFNydi5jb3B5RnJvbUlucHV0RWxlbWVudCh0aGlzLnRhcmdldEVsbSksdGhpcy50YXJnZXRFbG0udmFsdWUsaCk6dGhpcy5jYkNvbnRlbnQmJnRoaXMu''@;'; + put 'put ''aGFuZGxlUmVzdWx0KHRoaXMuY2xpcGJvYXJkU3J2LmNvcHlGcm9tQ29udGVudCh0aGlzLmNiQ29udGVudCx0aGlzLmNvbnRhaW5lciksdGhpcy5jYkNvbnRlbnQsaCk6dGhpcy5oYW5kbGVSZXN1bHQoITEsdm9pZCAwLGgpfWhhbmRsZVJlc3VsdChoLHYseSl7bGV0IEM9e2lzU3VjY2Vzczpo''@;'; + put 'put ''LGV2ZW50Onl9O2g/KEM9T2JqZWN0LmFzc2lnbihDLHtjb250ZW50OnYsc3VjY2Vzc01lc3NhZ2U6dGhpcy5jYlN1Y2Nlc3NNc2d9KSx0aGlzLmNiT25TdWNjZXNzLmVtaXQoQykpOnRoaXMuY2JPbkVycm9yLmVtaXQoQyksdGhpcy5jbGlwYm9hcmRTcnYucHVzaENvcHlSZXNwb25zZShDKX19''@;'; + put 'put ''cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoS3QoVmcpKX0sZC5cdTAyNzVkaXI9V2koe3R5cGU6ZCxzZWxlY3RvcnM6W1siIiwibmd4Q2xpcGJvYXJkIiwiIl1dLGhvc3RCaW5kaW5nczpmdW5jdGlvbihoLHYpezEmaCYmR24oImNsaWNrIixmdW5jdGlv''@;'; + put 'put ''bihDKXtyZXR1cm4gdi5vbkNsaWNrKEMudGFyZ2V0KX0pfSxpbnB1dHM6e3RhcmdldEVsbTpbIm5neENsaXBib2FyZCIsInRhcmdldEVsbSJdLGNvbnRhaW5lcjoiY29udGFpbmVyIixjYkNvbnRlbnQ6ImNiQ29udGVudCIsY2JTdWNjZXNzTXNnOiJjYlN1Y2Nlc3NNc2cifSxvdXRwdXRzOntj''@;'; + put 'put ''Yk9uU3VjY2VzczoiY2JPblN1Y2Nlc3MiLGNiT25FcnJvcjoiY2JPbkVycm9yIn19KSxkfSkoKSxMOXQ9KCgpPT57Y2xhc3MgZHt9cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1bW9kPWNvKHt0eXBlOmR9KSxkLlx1MDI3NWluaj1iMCh7''@;'; + put 'put ''aW1wb3J0czpbYmFdfSksZH0pKCk7dmFyIE85dD1MKDM2NjI1KTtsZXQgUjl0PSgoKT0+e2NsYXNzIGR7dHJhbnNmb3JtKGgsLi4udil7Y29uc3QgeT1wYXJzZUludCh2WzBdKXx8MixDPSJudW1iZXIiIT10eXBlb2YgaD9wYXJzZUludChoKTpoO3JldHVybigwLE85dC5SKShDLHkpfX1yZXR1''@;'; + put 'put ''cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVwaXBlPVVzKHtuYW1lOiJjb252ZXJ0U2l6ZSIsdHlwZTpkLHB1cmU6ITB9KSxkfSkoKTtjb25zdCBCOXQ9WyJxdWVyeUZpbHRlciJdO2Z1bmN0aW9uIFA5dChkLGcpezEmZCYmKHJ0KDAsImRpdiIs''@;'; + put 'put ''NDkpLENyKDEsImNsci1zcGlubmVyIiw1MCksbHQoKSl9ZnVuY3Rpb24gRjl0KGQsZyl7MSZkJiZDcigwLCJjbHItaWNvbiIsNTcpfWZ1bmN0aW9uIEg5dChkLGcpe2lmKDEmZCl7Y29uc3QgaD1iaSgpO3J0KDAsImNsci1pY29uIiw1OCksR24oImNsaWNrIixmdW5jdGlvbigpe2l0KGgpO2Nv''@;'; + put 'put ''bnN0IHk9SnQoMik7cmV0dXJuIHkubGlicmFyaWVzU2VhcmNoPSIiLGEoeS5saWJyYXJ5T25GaWx0ZXIoKSl9KSxsdCgpfX1mdW5jdGlvbiBOOXQoZCxnKXtpZigxJmQpe2NvbnN0IGg9YmkoKTtydCgwLCJjbHItdHJlZS1ub2RlIiw1MSkoMSwiZGl2Iiw1MikoMiwiaW5wdXQiLDUzLDU0KSxH''@;'; + put 'put ''bigibmdNb2RlbENoYW5nZSIsZnVuY3Rpb24oeSl7cmV0dXJuIGl0KGgpLGEoSnQoKS5saWJyYXJpZXNTZWFyY2g9eSl9KSgia2V5dXAiLGZ1bmN0aW9uKCl7cmV0dXJuIGl0KGgpLGEoSnQoKS5saWJyYXJ5T25GaWx0ZXIoKSl9KSxsdCgpLHJuKDQsRjl0LDEsMCwiY2xyLWljb24iLDU1KSxy''@;'; + put 'put ''big1LEg5dCwxLDAsImNsci1pY29uIiw1NiksbHQoKSgpfWlmKDImZCl7Y29uc3QgaD15YSgzKSx2PUp0KCk7dXQoMiksVHQoIm5nTW9kZWwiLHYubGlicmFyaWVzU2VhcmNoKSx1dCgyKSxUdCgibmdJZiIsaC52YWx1ZS5sZW5ndGg8MSksdXQoMSksVHQoIm5nSWYiLGgudmFsdWUubGVuZ3Ro''@;'; + put 'put ''PjApfX1mdW5jdGlvbiBWOXQoZCxnKXsxJmQmJkNyKDAsImNsci1pY29uIiw1Nyl9ZnVuY3Rpb24gajl0KGQsZyl7aWYoMSZkKXtjb25zdCBoPWJpKCk7cnQoMCwiY2xyLWljb24iLDU4KSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7aXQoaCksSnQoKTtjb25zdCB5PXlhKDMpLEM9SnQoMikuJGlt''@;'; + put 'put ''cGxpY2l0LEk9SnQoKTtyZXR1cm4geS52YWx1ZT0iIixDLnNlYXJjaFN0cmluZz0iIixhKEkudHJlZU9uRmlsdGVyKEMsInRhYmxlcyIpKX0pLGx0KCl9fWZ1bmN0aW9uIFo5dChkLGcpe2lmKDEmZCl7Y29uc3QgaD1iaSgpO3J0KDAsImNsci10cmVlLW5vZGUiLDUxKSgxLCJkaXYiLDUyKSgy''@;'; + put 'put ''LCJpbnB1dCIsNjMsNjQpLEduKCJuZ01vZGVsQ2hhbmdlIixmdW5jdGlvbih5KXtyZXR1cm4gaXQoaCksYShKdCgyKS4kaW1wbGljaXQuc2VhcmNoU3RyaW5nPXkpfSkoImtleXVwIixmdW5jdGlvbigpe2l0KGgpO2NvbnN0IHk9SnQoMikuJGltcGxpY2l0O3JldHVybiBhKEp0KCkudHJlZU9u''@;'; + put 'put ''RmlsdGVyKHksInRhYmxlcyIpKX0pLGx0KCkscm4oNCxWOXQsMSwwLCJjbHItaWNvbiIsNTUpLHJuKDUsajl0LDEsMCwiY2xyLWljb24iLDU2KSxsdCgpKCl9aWYoMiZkKXtjb25zdCBoPXlhKDMpLHY9SnQoMikuJGltcGxpY2l0O3V0KDIpLFR0KCJpZCIsInNlYXJjaF8iK3YuTElCUkFSWVJF''@;'; + put 'put ''RikoIm5nTW9kZWwiLHYuc2VhcmNoU3RyaW5nKSx1dCgyKSxUdCgibmdJZiIsaC52YWx1ZS5sZW5ndGg8MSksdXQoMSksVHQoIm5nSWYiLGgudmFsdWUubGVuZ3RoPjApfX1mdW5jdGlvbiB6OXQoZCxnKXsxJmQmJkNyKDAsImNsci1pY29uIiw3MCl9ZnVuY3Rpb24gRzl0KGQsZyl7MSZkJiZD''@;'; + put 'put ''cigwLCJjbHItaWNvbiIsNzEpfWZ1bmN0aW9uIFc5dChkLGcpe2lmKDEmZCl7Y29uc3QgaD1iaSgpO3J0KDAsImJ1dHRvbiIsNjYpLEduKCJjbGljayIsZnVuY3Rpb24oKXtpdChoKTtjb25zdCB5PUp0KCkuJGltcGxpY2l0LEM9SnQoMikuJGltcGxpY2l0LEk9SnQoKTtyZXR1cm4gSS5saWI9''@;'; + put 'put ''Qy5MSUJSQVJZUkVGLEkudGFibGU9eSxJLnNlbGVjdExpYlRhYmxlKHkpLGEoSS52aWV3RGF0YSgwKSl9KSxGMCgxLDY3KSxybigyLHo5dCwxLDAsImNsci1pY29uIiw2OCkscm4oMyxHOXQsMSwwLCJjbHItaWNvbiIsNjkpLEgwKCksWXQoNCksbHQoKX1pZigyJmQpe2NvbnN0IGg9SnQoKS4k''@;'; + put 'put ''aW1wbGljaXQsdj1KdCgyKS4kaW1wbGljaXQ7RmkoInRhYmxlLWFjdGl2ZSIsSnQoKS5saWJUYWJBY3RpdmUodi5MSUJSQVJZUkVGLGgpKSx1dCgxKSxUdCgibmdTd2l0Y2giLGguaW5jbHVkZXMoIi1GQyIpKSx1dCgxKSxUdCgibmdTd2l0Y2hDYXNlIiwhMCksdXQoMSksVHQoIm5nU3dpdGNo''@;'; + put 'put ''Q2FzZSIsITEpLHV0KDEpLEppKCIgIixoLnJlcGxhY2UoIi1GQyIsIiIpLCIgIil9fWZ1bmN0aW9uIFk5dChkLGcpe2lmKDEmZCYmKHJ0KDAsImNsci10cmVlLW5vZGUiKSxybigxLFc5dCw1LDYsImJ1dHRvbiIsNjUpLGx0KCkpLDImZCl7Y29uc3QgaD1nLiRpbXBsaWNpdDt1dCgxKSxUdCgi''@;'; + put 'put ''bmdJZiIsaC5sZW5ndGg+MCl9fWZ1bmN0aW9uIFU5dChkLGcpe2lmKDEmZCl7Y29uc3QgaD1iaSgpO3J0KDAsImNsci10cmVlLW5vZGUiLDYwKSxHbigiY2xpY2siLGZ1bmN0aW9uKHkpe2l0KGgpO2NvbnN0IEM9SnQoKS4kaW1wbGljaXQ7cmV0dXJuIGEoSnQoKS50cmVlTm9kZUNsaWNrZWQo''@;'; + put 'put ''eSxDKSl9KSgiY2xyRXhwYW5kZWRDaGFuZ2UiLGZ1bmN0aW9uKHkpe3JldHVybiBpdChoKSxhKEp0KCkuJGltcGxpY2l0LmV4cGFuZGVkPXkpfSkscnQoMSwicCIsNjEpLEduKCJjbGljayIsZnVuY3Rpb24oKXtpdChoKTtjb25zdCB5PUp0KCkuJGltcGxpY2l0LEM9SnQoKTtyZXR1cm4gQy5s''@;'; + put 'put ''aWI9eS5MSUJSQVJZUkVGLGEoQy5saWJyYXJ5T25DbGljayh5LkxJQlJBUllSRUYseSkpfSksQ3IoMiwiY2xyLWljb24iLDYyKSxZdCgzKSxsdCgpLHJuKDQsWjl0LDYsNCwiY2xyLXRyZWUtbm9kZSIsMikscm4oNSxZOXQsMiwxLCJjbHItdHJlZS1ub2RlIiwzKSxsdCgpfWlmKDImZCl7Y29u''@;'; + put 'put ''c3QgaD1KdCgpLiRpbXBsaWNpdDtGaSgiY2xyLWV4cGFuZGVkIixoLmV4cGFuZGVkKSxUdCgiY2xyRXhwYW5kZWQiLGguZXhwYW5kZWQpKCJjbHJMb2FkaW5nIixoLmxvYWRpbmdUYWJsZXMmJiFoLnRhYmxlcyksdXQoMyksSmkoIiAiLGguTElCUkFSWU5BTUUsIiAiKSx1dCgxKSxUdCgibmdJ''@;'; + put 'put ''ZiIsaC50YWJsZXMpLHV0KDEpLFR0KCJuZ0Zvck9mIixoLnRhYmxlcyl9fWZ1bmN0aW9uIFE5dChkLGcpe2lmKDEmZCYmKEYwKDApLHJuKDEsVTl0LDYsNywiY2xyLXRyZWUtbm9kZSIsNTkpLEgwKCkpLDImZCl7Y29uc3QgaD1nLiRpbXBsaWNpdDt1dCgxKSxUdCgibmdJZiIsIWguaGlkZGVu''@;'; + put 'put ''JiZoLmluRm9yZWdyb3VuZCl9fWZ1bmN0aW9uIEo5dChkLGcpezEmZCYmKHJ0KDAsImRpdiIsNzIpKDEsInNwYW4iLDczKSxZdCgyLCIgTG9hZGluZy4uLiAiKSxsdCgpKCkpfWZ1bmN0aW9uIFg5dChkLGcpe2lmKDEmZCl7Y29uc3QgaD1iaSgpO3J0KDAsImRpdiIsNzQpKDEsImRpdiIsNzUp''@;'; + put 'put ''KDIsImRpdiIsNzYpKDMsImRpdiIsNzcpKDQsImJ1dHRvbiIsNzgpLENyKDUsImNsci1pY29uIiw3OSksbHQoKSxydCg2LCJoMyIsNDMpLFl0KDcsIkVycm9yIiksbHQoKSgpLHJ0KDgsImRpdiIsMTApKDksInAiKSxZdCgxMCwiWW91IGNhbm5vdCBzdWJtaXQgZW1wdHkgY2xhdXNlcyIpLGx0''@;'; + put 'put ''KCkoKSxydCgxMSwiZGl2IiwyMSkoMTIsImJ1dHRvbiIsODApLEduKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gaXQoaCksYShKdCgpLm51bGxWYXJpYWJsZXM9ITEpfSksWXQoMTMsIiBPayAiKSxsdCgpKCkoKSgpKCl9fWZ1bmN0aW9uIEs5dChkLGcpezEmZCYmQ3IoMCwiZGl2Iiw4MSl9''@;'; + put 'put ''ZnVuY3Rpb24gJDl0KGQsZyl7MSZkJiZDcigwLCJhcHAtcXVlcnkiLG51bGwsODIpfWZ1bmN0aW9uIHE5dChkLGcpezEmZCYmKHJ0KDAsImRpdiIsODMpKDEsInNwYW4iLDg0KSxZdCgyLCIgTG9hZGluZy4uLiAiKSxsdCgpLHJ0KDMsImRpdiIpKDQsImg0IiksWXQoNSwiTG9hZGluZyB0YWJs''@;'; + put 'put ''ZSB2aWV3ZXIiKSxsdCgpKCkoKSl9ZnVuY3Rpb24gZUF0KGQsZyl7aWYoMSZkKXtjb25zdCBoPWJpKCk7cnQoMCwiY2xyLWljb24iLDEwNCksR24oImNsaWNrIixmdW5jdGlvbigpe2l0KGgpLEp0KCk7Y29uc3QgeT15YSg1KTtyZXR1cm4gYShKdCgyKS5zZWFyY2hUYWJsZSh5KSl9KSxsdCgp''@;'; + put 'put ''fX1mdW5jdGlvbiB0QXQoZCxnKXsxJmQmJihydCgwLCJzcGFuIiwxMDUpLFl0KDEsIiBMb2FkaW5nLi4uICIpLGx0KCkpfWZ1bmN0aW9uIG5BdChkLGcpezEmZCYmQ3IoMCwiY2xyLWljb24iLDEwNil9ZnVuY3Rpb24gckF0KGQsZyl7aWYoMSZkJiYocnQoMCwic3BhbiIpLFl0KDEpLG5uKDIs''@;'; + put 'put ''InRob3VzYW5kU2VwYXJhdG9yIiksbHQoKSksMiZkKXtjb25zdCBoPUp0KDQpO3V0KDEpLEZoKCIgKCIsUG4oMiwyLGgubnVtYmVyT2ZSb3dzLCIsIiksIiAiLDE9PT1oLm51bWJlck9mUm93cz8icm93Ijoicm93cyIsIikgIil9fWZ1bmN0aW9uIGlBdChkLGcpe2lmKDEmZCl7Y29uc3QgaD1i''@;'; + put 'put ''aSgpO3J0KDAsImgzIiwxMDcpLFl0KDEpLHJuKDIsckF0LDMsNSwic3BhbiIsMzgpLHJ0KDMsImNsci1pY29uIiwxMDgpLEduKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gaXQoaCksYShKdCgzKS5yZWxvYWRUYWJsZURhdGEoKSl9KSxsdCgpKCl9aWYoMiZkKXtjb25zdCBoPUp0KDMpO3V0''@;'; + put 'put ''KDEpLEppKCIgIixudWxsPT1oLnRhYmxlVGl0bGU/bnVsbDpoLnRhYmxlVGl0bGUucmVwbGFjZSgiLUZDIiwiIiksIiAiKSx1dCgxKSxUdCgibmdJZiIsbnVsbCE9PWgubnVtYmVyT2ZSb3dzKX19ZnVuY3Rpb24gb0F0KGQsZyl7aWYoMSZkKXtjb25zdCBoPWJpKCk7cnQoMCwiYnV0dG9uIiwx''@;'; + put 'put ''MTcpLEduKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gaXQoaCksYShKdCg1KS5lZGl0VGFibGUoKSl9KSxDcigxLCJjbHItaWNvbiIsMTIwKSxydCgyLCJzcGFuIiksWXQoMywiRWRpdCIpLGx0KCkoKX19ZnVuY3Rpb24gYUF0KGQsZyl7aWYoMSZkKXtjb25zdCBoPWJpKCk7cnQoMCwiYnV0''@;'; + put 'put ''dG9uIiwxMTcpLEduKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gaXQoaCksYShKdCg1KS5nb1RvTGluZWFnZSgpKX0pLENyKDEsImNsci1pY29uIiwxMjEpLHJ0KDIsInNwYW4iKSxZdCgzLCJMaW5lYWdlIiksbHQoKSgpfX1mdW5jdGlvbiBsQXQoZCxnKXtpZigxJmQpe2NvbnN0IGg9Ymko''@;'; + put 'put ''KTtydCgwLCJjbHItZHJvcGRvd24tbWVudSIsMTEzKSxybigxLG9BdCw0LDAsImJ1dHRvbiIsMTE0KSxybigyLGFBdCw0LDAsImJ1dHRvbiIsMTE0KSxydCgzLCJidXR0b24iLDExNSksR24oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBpdChoKSxhKEp0KDQpLm9wZW5RYigpKX0pLENyKDQs''@;'; + put 'put ''ImNsci1pY29uIiwxMTYpLHJ0KDUsInNwYW4iKSxZdCg2LCJGaWx0ZXIiKSxsdCgpKCkscnQoNywiYnV0dG9uIiwxMTcpLEduKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gaXQoaCksYShKdCg0KS5vcGVuRG93bmxvYWQ9ITApfSksQ3IoOCwiY2xyLWljb24iLDExOCkscnQoOSwic3BhbiIp''@;'; + put 'put ''LFl0KDEwLCJEb3dubG9hZCIpLGx0KCkoKSxydCgxMSwiYnV0dG9uIiwxMTcpLEduKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gaXQoaCksYShKdCg0KS5zaG93V2ViUXVlcnkoKSl9KSxDcigxMiwiY2xyLWljb24iLDExOSkscnQoMTMsInNwYW4iKSxZdCgxNCwiV2ViIFF1ZXJ5IFVSTCIp''@;'; + put 'put ''LGx0KCkoKSgpfWlmKDImZCl7Y29uc3QgaD1KdCg0KTt1dCgxKSxUdCgibmdJZiIsaC50YWJsZUVkaXRFeGlzdHMoKSksdXQoMSksVHQoIm5nSWYiLGgudGFibGV1cmkpfX1mdW5jdGlvbiBzQXQoZCxnKXsxJmQmJihydCgwLCJjbHItZHJvcGRvd24iLDEwOSkoMSwiYnV0dG9uIiwxMTApLENy''@;'; + put 'put ''KDIsImNsci1pY29uIiwxMTEpLFl0KDMsIiBvcHRpb25zICIpLGx0KCkscm4oNCxsQXQsMTUsMiwiY2xyLWRyb3Bkb3duLW1lbnUiLDExMiksbHQoKSksMiZkJiZUdCgiY2xyQ2xvc2VNZW51T25JdGVtQ2xpY2siLCEwKX1mdW5jdGlvbiB1QXQoZCxnKXtpZigxJmQmJihydCgwLCJkaXYiLDEy''@;'; + put 'put ''MikoMSwic3BhbiIpLFl0KDIsIkZJTFRFUiA6ICIpLHJ0KDMsImIiKSxZdCg0KSxsdCgpKCkoKSksMiZkKXtjb25zdCBoPUp0KDMpO3V0KDQpLGppKGgucXVlcnlUZXh0KX19Y29uc3QgY0F0PWZ1bmN0aW9uKCl7cmV0dXJuWyIiLCIgIl19O2Z1bmN0aW9uIGZBdChkLGcpe2lmKDEmZCl7Y29u''@;'; + put 'put ''c3QgaD1iaSgpO3J0KDAsImRpdiIsODgpKDEsInNlY3Rpb24iLDg5KSgyLCJmb3JtIiw5MCkoMywiZGl2Iiw5MSkoNCwiaW5wdXQiLDkyLDkzKSxHbigia2V5dXAuZW50ZXIiLGZ1bmN0aW9uKCl7aXQoaCk7Y29uc3QgeT15YSg1KTtyZXR1cm4gYShKdCgyKS5zZWFyY2hUYWJsZSh5KSl9KSxs''@;'; + put 'put ''dCgpLHJuKDYsZUF0LDEsMCwiY2xyLWljb24iLDk0KSxybig3LHRBdCwyLDAsInNwYW4iLDk1KSxsdCgpLHJ0KDgsImNsci1jaGVja2JveC1jb250YWluZXIiKSg5LCJjbHItY2hlY2tib3gtd3JhcHBlciIpKDEwLCJpbnB1dCIsOTYpLEduKCJuZ01vZGVsQ2hhbmdlIixmdW5jdGlvbih5KXty''@;'; + put 'put ''ZXR1cm4gaXQoaCksYShKdCgyKS5zZWFyY2hOdW1lcmljPXkpfSksbHQoKSxydCgxMSwibGFiZWwiKSxZdCgxMiwiTnVtZXJpYyIpLGx0KCkoKSgpKCkoKSxydCgxMywiZGl2Iiw5NykoMTQsImNsci1pY29uIiw5OCksR24oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBpdChoKSxhKEp0KDIp''@;'; + put 'put ''LmRhdGFzZXRJbmZvPSEwKX0pLGx0KCkscm4oMTUsbkF0LDEsMCwiY2xyLWljb24iLDk5KSxybigxNixpQXQsNCwyLCJoMyIsMTAwKSxsdCgpLHJ0KDE3LCJkaXYiLDEwMSkscm4oMTgsc0F0LDUsMSwiY2xyLWRyb3Bkb3duIiwxMDIpLGx0KCkscm4oMTksdUF0LDUsMSwiZGl2IiwxMDMpLGx0''@;'; + put 'put ''KCl9aWYoMiZkKXtjb25zdCBoPUp0KDIpO3V0KDQpLFR0KCJ0eXBlIixoLnNlYXJjaE51bWVyaWM/Im51bWJlciI6InRleHQiKSx1dCgyKSxUdCgibmdJZiIsIWguc2VhcmNoTG9hZGluZyksdXQoMSksVHQoIm5nSWYiLGguc2VhcmNoTG9hZGluZyksdXQoMyksVHQoIm5nTW9kZWwiLGguc2Vh''@;'; + put 'put ''cmNoTnVtZXJpYyksdXQoNSksVHQoIm5nSWYiLG51bGw9PWgudGFibGVUaXRsZT9udWxsOmgudGFibGVUaXRsZS5pbmNsdWRlcygiLUZDIikpLHV0KDEpLFR0KCJuZ0lmIixoLnRhYmxlVGl0bGUmJmgudGFibGVUaXRsZS5sZW5ndGg+MCksdXQoMiksVHQoIm5nSWYiLGgudGFibGVUaXRsZSYm''@;'; + put 'put ''IWguYWJvcnRBY3RpdmUpLHV0KDEpLFR0KCJuZ0lmIiwiMT0xIiE9PWgucXVlcnlUZXh0JiYhVnMoOCxjQXQpLmluY2x1ZGVzKGgucXVlcnlUZXh0KSYmIWguYWJvcnRBY3RpdmUpfX1mdW5jdGlvbiBoQXQoZCxnKXsxJmQmJihydCgwLCJkaXYiLDEyMyksQ3IoMSwiY2xyLWljb24iLDEyNCks''@;'; + put 'put ''cnQoMiwiaDMiLDEyNSksWXQoMywiUGxlYXNlIHNlbGVjdCBhIGxpYnJhcnkiKSxsdCgpKCkpfWZ1bmN0aW9uIGRBdChkLGcpezEmZCYmQ3IoMCwiY2xyLXNwaW5uZXIiLDUwKX1mdW5jdGlvbiBwQXQoZCxnKXtpZigxJmQpe2NvbnN0IGg9YmkoKTtydCgwLCJwIiwxMzQpLFl0KDEsIiBObyBs''@;'; + put 'put ''aWJyYXJ5IGluZm8gZm91bmQuIENsaWNrICIpLHJ0KDIsImNsci1pY29uIiwxMzUpLEduKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gaXQoaCksYShKdCg0KS5yZWxvYWRMaWJJbmZvKCkpfSksbHQoKSxZdCgzLCIgYnV0dG9uIHRvIHJlZnJlc2guICIpLGx0KCl9fWZ1bmN0aW9uIGdBdChk''@;'; + put 'put ''LGcpezEmZCYmKHJ0KDAsInAiLDE0MCksWXQoMSwiRU5HSU5FOiIpLGx0KCkpfWZ1bmN0aW9uIG1BdChkLGcpezEmZCYmKHJ0KDAsInAiLDE0MCksWXQoMSwiTElCSUQ6IiksbHQoKSl9ZnVuY3Rpb24gdkF0KGQsZyl7MSZkJiYocnQoMCwicCIsMTQwKSxZdCgxLCJMSUJOQU1FOiIpLGx0KCkp''@;'; + put 'put ''fWZ1bmN0aW9uIEFBdChkLGcpezEmZCYmKHJ0KDAsInAiLDE0MCksWXQoMSwiTElCU0laRToiKSxsdCgpKX1mdW5jdGlvbiB5QXQoZCxnKXsxJmQmJihydCgwLCJwIiwxNDApLFl0KDEsIk9XTkVSUzoiKSxsdCgpKX1mdW5jdGlvbiB3QXQoZCxnKXsxJmQmJihydCgwLCJwIiwxNDApLFl0KDEs''@;'; + put 'put ''IlBBVEhTOiIpLGx0KCkpfWZ1bmN0aW9uIGJBdChkLGcpezEmZCYmKHJ0KDAsInAiLDE0MCksWXQoMSwiUEVSTVM6IiksbHQoKSl9ZnVuY3Rpb24gX0F0KGQsZyl7MSZkJiYocnQoMCwicCIsMTQwKSxZdCgxLCJTQ0hFTUFTOiIpLGx0KCkpfWZ1bmN0aW9uIENBdChkLGcpezEmZCYmKHJ0KDAs''@;'; + put 'put ''InAiLDE0MCksWXQoMSwiVEFCTEVfQ05UOiIpLGx0KCkpfWZ1bmN0aW9uIGtBdChkLGcpe2lmKDEmZCYmKHJ0KDAsInAiLDE0MSksWXQoMSksbHQoKSksMiZkKXtjb25zdCBoPUp0KDUpO3V0KDEpLEppKCIgIixoLmxpYmluZm9bMF0/aC5saWJpbmZvWzBdLkVOR0lORToiIiwiICIpfX1mdW5j''@;'; + put 'put ''dGlvbiBTQXQoZCxnKXtpZigxJmQmJihydCgwLCJwIiwxNDEpLFl0KDEpLGx0KCkpLDImZCl7Y29uc3QgaD1KdCg1KTt1dCgxKSxKaSgiICIsaC5saWJpbmZvWzBdP2gubGliaW5mb1swXS5MSUJJRDoiIiwiICIpfX1mdW5jdGlvbiBNQXQoZCxnKXtpZigxJmQmJihydCgwLCJwIiwxNDEpLFl0''@;'; + put 'put ''KDEpLGx0KCkpLDImZCl7Y29uc3QgaD1KdCg1KTt1dCgxKSxKaSgiICIsaC5saWJpbmZvWzBdP2gubGliaW5mb1swXS5MSUJOQU1FOiIiLCIgIil9fWZ1bmN0aW9uIEVBdChkLGcpe2lmKDEmZCYmKHJ0KDAsInAiLDE0MSksWXQoMSksbm4oMiwiY29udmVydFNpemUiKSxsdCgpKSwyJmQpe2Nv''@;'; + put 'put ''bnN0IGg9SnQoNSk7dXQoMSksSmkoIiAiLGgubGliaW5mb1swXT96dCgyLDEsaC5saWJpbmZvWzBdLkxJQlNJWkUpOiIiLCIgIil9fWZ1bmN0aW9uIHhBdChkLGcpe2lmKDEmZCYmKHJ0KDAsInAiLDE0MSksWXQoMSksbHQoKSksMiZkKXtjb25zdCBoPUp0KDUpO3V0KDEpLEppKCIgIixoLmxp''@;'; + put 'put ''YmluZm9bMF0/aC5saWJpbmZvWzBdLk9XTkVSUzoiIiwiICIpfX1mdW5jdGlvbiBUQXQoZCxnKXtpZigxJmQmJihydCgwLCJwIiwxNDEpLFl0KDEpLGx0KCkpLDImZCl7Y29uc3QgaD1KdCg1KTt1dCgxKSxKaSgiICIsaC5saWJpbmZvWzBdP2gubGliaW5mb1swXS5QQVRIUzoiIiwiICIpfX1m''@;'; + put 'put ''dW5jdGlvbiBJQXQoZCxnKXtpZigxJmQmJihydCgwLCJwIiwxNDEpLFl0KDEpLGx0KCkpLDImZCl7Y29uc3QgaD1KdCg1KTt1dCgxKSxKaSgiICIsaC5saWJpbmZvWzBdP2gubGliaW5mb1swXS5QRVJNUzoiIiwiICIpfX1mdW5jdGlvbiBEQXQoZCxnKXtpZigxJmQmJihydCgwLCJwIiwxNDEp''@;'; + put 'put ''LFl0KDEpLGx0KCkpLDImZCl7Y29uc3QgaD1KdCg1KTt1dCgxKSxKaSgiICIsaC5saWJpbmZvWzBdP2gubGliaW5mb1swXS5TQ0hFTUFTOiIiLCIgIil9fWZ1bmN0aW9uIExBdChkLGcpe2lmKDEmZCYmKHJ0KDAsInAiLDE0MSksWXQoMSksbHQoKSksMiZkKXtjb25zdCBoPUp0KDUpO3V0KDEp''@;'; + put 'put ''LEppKCIgIixoLmxpYmluZm9bMF0/aC5saWJpbmZvWzBdLlRBQkxFX0NOVDoiIiwiICIpfX1mdW5jdGlvbiBPQXQoZCxnKXtpZigxJmQmJihGMCgwKSxydCgxLCJkaXYiLDEzNikscm4oMixnQXQsMiwwLCJwIiwxMzcpLHJuKDMsbUF0LDIsMCwicCIsMTM3KSxybig0LHZBdCwyLDAsInAiLDEz''@;'; + put 'put ''Nykscm4oNSxBQXQsMiwwLCJwIiwxMzcpLHJuKDYseUF0LDIsMCwicCIsMTM3KSxybig3LHdBdCwyLDAsInAiLDEzNykscm4oOCxiQXQsMiwwLCJwIiwxMzcpLHJuKDksX0F0LDIsMCwicCIsMTM3KSxybigxMCxDQXQsMiwwLCJwIiwxMzcpLGx0KCkscnQoMTEsImRpdiIsMTM4KSxybigxMixr''@;'; + put 'put ''QXQsMiwxLCJwIiwxMzkpLHJuKDEzLFNBdCwyLDEsInAiLDEzOSkscm4oMTQsTUF0LDIsMSwicCIsMTM5KSxybigxNSxFQXQsMywzLCJwIiwxMzkpLHJuKDE2LHhBdCwyLDEsInAiLDEzOSkscm4oMTcsVEF0LDIsMSwicCIsMTM5KSxybigxOCxJQXQsMiwxLCJwIiwxMzkpLHJuKDE5LERBdCwy''@;'; + put 'put ''LDEsInAiLDEzOSkscm4oMjAsTEF0LDIsMSwicCIsMTM5KSxsdCgpLEgwKCkpLDImZCl7Y29uc3QgaD1KdCg0KTt1dCgyKSxUdCgibmdJZiIsIiIhPT1oLmxpYmluZm9bMF0uRU5HSU5FKSx1dCgxKSxUdCgibmdJZiIsIiIhPT1oLmxpYmluZm9bMF0uTElCSUQpLHV0KDEpLFR0KCJuZ0lmIiwi''@;'; + put 'put ''IiE9PWgubGliaW5mb1swXS5MSUJOQU1FKSx1dCgxKSxUdCgibmdJZiIsbnVsbCE9PWgubGliaW5mb1swXS5MSUJTSVpFKSx1dCgxKSxUdCgibmdJZiIsIiIhPT1oLmxpYmluZm9bMF0uT1dORVJTKSx1dCgxKSxUdCgibmdJZiIsIiIhPT1oLmxpYmluZm9bMF0uUEFUSFMpLHV0KDEpLFR0KCJu''@;'; + put 'put ''Z0lmIiwiIiE9PWgubGliaW5mb1swXS5QRVJNUyksdXQoMSksVHQoIm5nSWYiLCIiIT09aC5saWJpbmZvWzBdLlNDSEVNQVMpLHV0KDEpLFR0KCJuZ0lmIixudWxsIT09aC5saWJpbmZvWzBdLlRBQkxFX0NOVCksdXQoMiksVHQoIm5nSWYiLCIiIT09aC5saWJpbmZvWzBdLkVOR0lORSksdXQo''@;'; + put 'put ''MSksVHQoIm5nSWYiLCIiIT09aC5saWJpbmZvWzBdLkxJQklEKSx1dCgxKSxUdCgibmdJZiIsIiIhPT1oLmxpYmluZm9bMF0uTElCTkFNRSksdXQoMSksVHQoIm5nSWYiLG51bGwhPT1oLmxpYmluZm9bMF0uTElCU0laRSksdXQoMSksVHQoIm5nSWYiLCIiIT09aC5saWJpbmZvWzBdLk9XTkVS''@;'; + put 'put ''UyksdXQoMSksVHQoIm5nSWYiLCIiIT09aC5saWJpbmZvWzBdLlBBVEhTKSx1dCgxKSxUdCgibmdJZiIsIiIhPT1oLmxpYmluZm9bMF0uUEVSTVMpLHV0KDEpLFR0KCJuZ0lmIiwiIiE9PWgubGliaW5mb1swXS5TQ0hFTUFTKSx1dCgxKSxUdCgibmdJZiIsbnVsbCE9PWgubGliaW5mb1swXS5U''@;'; + put 'put ''QUJMRV9DTlQpfX1mdW5jdGlvbiBSQXQoZCxnKXtpZigxJmQmJihydCgwLCJkaXYiLDEzMikscm4oMSxwQXQsNCwwLCJwIiwxMzMpLHJuKDIsT0F0LDIxLDE4LCJuZy1jb250YWluZXIiLDM4KSxsdCgpKSwyJmQpe2NvbnN0IGg9SnQoMyk7dXQoMSksVHQoIm5nSWYiLGgubGliaW5mby5sZW5n''@;'; + put 'put ''dGg8MSksdXQoMSksVHQoIm5nSWYiLGgubGliaW5mby5sZW5ndGg+MCl9fWZ1bmN0aW9uIEJBdChkLGcpezEmZCYmKHJ0KDAsImRpdiIsMTQyKSxDcigxLCJjbHItaWNvbiIsMTQzKSxydCgyLCJoMyIsMTI1KSxZdCgzLCJQbGVhc2Ugc2VsZWN0IGEgdGFibGUiKSxsdCgpKCkpfWZ1bmN0aW9u''@;'; + put 'put ''IFBBdChkLGcpe2lmKDEmZCl7Y29uc3QgaD1iaSgpO0YwKDApLHJ0KDEsImRpdiIsMTI2KSxDcigyLCJzZWN0aW9uIiw4OSkscnQoMywiZGl2Iiw5NykoNCwiaDMiLDEyNyksWXQoNSksbHQoKSxydCg2LCJjbHItaWNvbiIsMTA4KSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIGl0KGgp''@;'; + put 'put ''LGEoSnQoMikucmVsb2FkTGliSW5mbygpKX0pLGx0KCkoKSxDcig3LCJkaXYiLDEwMSksbHQoKSxydCg4LCJkaXYiLDEyOCkscm4oOSxkQXQsMSwwLCJjbHItc3Bpbm5lciIsMTI5KSxsdCgpLHJuKDEwLFJBdCwzLDIsImRpdiIsMTMwKSxybigxMSxCQXQsNCwwLCJkaXYiLDEzMSksSDAoKX1p''@;'; + put 'put ''ZigyJmQpe2NvbnN0IGg9SnQoMik7dXQoNSksSmkoIiAiLGgubGliLCIgIiksdXQoNCksVHQoIm5nSWYiLG51bGw9PT1oLmxpYmluZm8pLHV0KDEpLFR0KCJuZ0lmIixudWxsIT09aC5saWJpbmZvKSx1dCgxKSxUdCgibmdJZiIsbnVsbCE9PWgubGliaW5mbyl9fWZ1bmN0aW9uIEZBdChkLGcp''@;'; + put 'put ''ezEmZCYmKHJ0KDAsImgzIiwxMjUpLFl0KDEsIiBObyBkYXRhIGZvdW5kIHdpdGggZ2l2ZW4gY29uZGl0aW9ucyAiKSxsdCgpKX1mdW5jdGlvbiBIQXQoZCxnKXsxJmQmJihydCgwLCJoMyIsMTI1KSxZdCgxLCIgTm8gZGF0YSBmb3VuZCBkdWUgdG8gc2FzIHJlcXVlc3QgZXJyb3IgIiksbHQo''@;'; + put 'put ''KSl9ZnVuY3Rpb24gTkF0KGQsZyl7aWYoMSZkJiYocnQoMCwiZGl2IiwxNDQpLENyKDEsImNsci1pY29uIiwxNDUpLHJuKDIsRkF0LDIsMCwiaDMiLDE0Nikscm4oMyxIQXQsMiwwLCJoMyIsMTQ2KSxsdCgpKSwyJmQpe2NvbnN0IGg9SnQoMik7dXQoMiksVHQoIm5nSWYiLGgubm9EYXRhKSx1''@;'; + put 'put ''dCgxKSxUdCgibmdJZiIsaC5ub0RhdGFSZXFFcnIpfX1mdW5jdGlvbiBWQXQoZCxnKXtpZigxJmQmJihydCgwLCJkaXYiKSxDcigxLCJob3QtdGFibGUiLDE0NyksbHQoKSksMiZkKXtjb25zdCBoPUp0KDIpO3V0KDEpLFR0KCJtdWx0aUNvbHVtblNvcnRpbmciLCEwKSgidmlld3BvcnRSb3dS''@;'; + put 'put ''ZW5kZXJpbmdPZmZzZXQiLDUwKSgiZGF0YSIsaC5ob3RUYWJsZS5kYXRhKSgiY29sSGVhZGVycyIsaC5ob3RUYWJsZS5jb2xIZWFkZXJzKSgiY29sdW1ucyIsaC5ob3RUYWJsZS5jb2x1bW5zKSgiZmlsdGVycyIsITApKCJkcm9wZG93bk1lbnUiLGguaG90VGFibGUuZHJvcGRvd25NZW51KSgi''@;'; + put 'put ''aGVpZ2h0IixoLmhvdFRhYmxlLmhlaWdodCkoIm1vZGlmeUNvbFdpZHRoIixoLm1heFdpZHRoQ2hla2VyKSgiY2VsbHMiLGguaG90VGFibGUuY2VsbHMpKCJtYXhSb3dzIixoLmhvdFRhYmxlLm1heFJvd3MpKCJtYW51YWxDb2x1bW5SZXNpemUiLCEwKSgibGljZW5zZUtleSIsaC5ob3RUYWJs''@;'; + put 'put ''ZS5saWNlbnNlS2V5KX19ZnVuY3Rpb24gakF0KGQsZyl7aWYoMSZkJiYocnQoMCwiZGl2IiwyNykscm4oMSxmQXQsMjAsOSwiZGl2Iiw4NSkscm4oMixoQXQsNCwwLCJkaXYiLDg2KSxybigzLFBBdCwxMiw0LCJuZy1jb250YWluZXIiLDM4KSxybig0LE5BdCw0LDIsImRpdiIsODcpLHJuKDUs''@;'; + put 'put ''VkF0LDIsMTMsImRpdiIsMzgpLGx0KCkpLDImZCl7Y29uc3QgaD1KdCgpO3V0KDEpLFR0KCJuZ0lmIixoLnRhYmxlKSx1dCgxKSxUdCgibmdJZiIsIShoLmxpYnx8aC50YWJsZXx8aC5ub0RhdGFSZXFFcnJ8fGgubm9EYXRhKSksdXQoMSksVHQoIm5nSWYiLCFoLm5vRGF0YSYmIWgubm9EYXRh''@;'; + put 'put ''UmVxRXJyJiYhaC50YWJsZSYmaC5saWIpLHV0KDEpLFR0KCJuZ0lmIixoLm5vRGF0YXx8aC5ub0RhdGFSZXFFcnIpLHV0KDEpLFR0KCJuZ0lmIiwhaC5ub0RhdGEmJiFoLm5vRGF0YVJlcUVyciYmaC50YWJsZSl9fWxldCB6bmU9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYseSxDLEks''@;'; + put 'put ''aix1ZSxfZSxCZSl7dGhpcy5hcHBTZXJ2aWNlPWgsdGhpcy5zYXNTdG9yZVNlcnZpY2U9dix0aGlzLnNhc1NlcnZpY2U9eSx0aGlzLnJvdXRlcj1DLHRoaXMucm91dGU9SSx0aGlzLmV2ZW50U2VydmljZT1qLHRoaXMubG9nZ2VyU2VydmljZT11ZSx0aGlzLmhlbHBlclNlcnZpY2U9X2UsdGhp''@;'; + put 'put ''cy5jZGY9QmUsdGhpcy5xdWVyeUZpbHRlckNvbXBMaXN0PW5ldyB6cix0aGlzLmxpYnJhcmllc1BhZ2luZz0hMSx0aGlzLmxpYnJhcmllc1NlYXJjaD0iIix0aGlzLmxpYnJhcnlUYWJsZXNSZWY9IiIsdGhpcy5saWJyYXJpZXNUcmVlRXhwYW5kZWQ9ITEsdGhpcy5saWJpbmZvPW51bGwsdGhp''@;'; + put 'put ''cy50YWJsZXVyaT1udWxsLHRoaXMuZmlsdGVyPSExLHRoaXMuZmlsdGVyQ29scz1bXSx0aGlzLm51bGxWYXJpYWJsZXM9ITEsdGhpcy5hYm9ydEFjdGl2ZT0hMSx0aGlzLnVybEZpbHRlclBrPW51bGwsdGhpcy5xdWVyeVRleHQ9IiIsdGhpcy53ZWJRdWVyeVRleHQ9IiIsdGhpcy5xdWVyeUVy''@;'; + put 'put ''cj0hMSx0aGlzLnRhYmxlRmxhZz0hMCx0aGlzLmxpYnJhcmllc0xvYWRpbmc9ITEsdGhpcy5sb2FkaW5nVGFibGVWaWV3PSExLHRoaXMuc3dpdGNoRmxhZz0hMSx0aGlzLm5vRGF0YT0hMSx0aGlzLm5vRGF0YVJlcUVycj0hMSx0aGlzLnRhYmxlRGlzYWJsZT0hMSx0aGlzLmFjdGlvbkRpc2Fi''@;'; + put 'put ''bGU9ITEsdGhpcy5vcGVuRG93bmxvYWQ9ITEsdGhpcy53ZWJRdWVyeT0hMSx0aGlzLndlYlF1ZXJ5VGFiPSExLHRoaXMuZG93bmxvYWRGb3JtYXQ9IkNTViIsdGhpcy5zYXNqc0NvbmZpZz1uZXcgUTMuU0FTanNDb25maWcsdGhpcy5zZWFyY2hMb2FkaW5nPSExLHRoaXMuc2VhcmNoTnVtZXJp''@;'; + put 'put ''Yz0hMSx0aGlzLm51bWJlck9mUm93cz1udWxsLHRoaXMuaGVhZGVyUGtzPVtdLHRoaXMuJGRhdGFGb3JtYXRzPW51bGwsdGhpcy5kYXRhc2V0SW5mbz0hMSx0aGlzLmRzbWV0YT1bXSx0aGlzLmhvdFRhYmxlPXtkYXRhOltdLGNvbEhlYWRlcnM6W10sY29sdW1uczpbXSxoZWlnaHQ6NTAwLG1h''@;'; + put 'put ''eFJvd3M6dGhpcy5hcHBTZXJ2aWNlLmRlbW9MaW1pdHMucm93c19hbGxvd2VkfHwxLzAsc2V0dGluZ3M6e30sYWZ0ZXJHZXRDb2xIZWFkZXI6dm9pZCAwLGxpY2Vuc2VLZXk6dm9pZCAwLGRyb3Bkb3duTWVudTp7aXRlbXM6e21ha2VfcmVhZF9vbmx5OntuYW1lOiJtYWtlX3JlYWRfb25seSJ9''@;'; + put 'put ''LGFsaWdubWVudDp7bmFtZToiYWxpZ25tZW50In0sc3AxOntuYW1lOiItLS0tLS0tLS0ifSxpbmZvOntuYW1lOiJ0ZXN0IGluZm8iLHJlbmRlcmVyOihOZSxLZSxkdCxPdCwkdCxmbik9Pnt2YXIgTG4saXI7Y29uc3QgbXI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpO2xldCBTcix3''@;'; + put 'put ''cj0iTm8gaW5mbyBmb3VuZCI7aWYodGhpcy5ob3RJbnN0YW5jZSl7Y29uc3QgUXI9dGhpcy5ob3RJbnN0YW5jZS5nZXRTZWxlY3RlZCgpfHxbXSx5aT1Rcj9RclswXVsxXTotMSxLaT1udWxsPT09KExuPXRoaXMuaG90SW5zdGFuY2UpfHx2b2lkIDA9PT1Mbj92b2lkIDA6TG4uY29sVG9Qcm9w''@;'; + put 'put ''KHlpKTtTcj1udWxsPT09KGlyPXRoaXMuJGRhdGFGb3JtYXRzKXx8dm9pZCAwPT09aXI/dm9pZCAwOmlyLnZhcnNbS2ldLFNyJiYod3I9YExBQkVMOiAke251bGw9PVNyP3ZvaWQgMDpTci5sYWJlbH08YnI+VFlQRTogJHtudWxsPT1Tcj92b2lkIDA6U3IudHlwZX08YnI+TEVOR1RIOiAke251''@;'; + put 'put ''bGw9PVNyP3ZvaWQgMDpTci5sZW5ndGh9PGJyPkZPUk1BVDogJHtudWxsPT1Tcj92b2lkIDA6U3IuZm9ybWF0fWApfXJldHVybiBtci5pbm5lckhUTUw9d3IsbXJ9fX19fSx0aGlzLmhvdEluc3RhbmNlPW51bGwsdGhpcy5ob3RJbnN0YW5jZUNsaWNrTGlzdGVuZXI9ITEsdGhpcy5ob3RUYWJs''@;'; + put 'put ''ZS5oZWlnaHQ9ZG9jdW1lbnQuYm9keS5jbGllbnRIZWlnaHQtMzEwLHRoaXMuaG90VGFibGVSZWdpc3RlcmVyPW5ldyBrTyx0aGlzLnNhc2pzQ29uZmlnPXRoaXMuc2FzU2VydmljZS5nZXRTYXNqc0NvbmZpZygpfW5nT25Jbml0KCl7IiIhPT1uaS52aWV3ZXIuY3VycmVudFNlbGVjdGlvbiYm''@;'; + put 'put ''MD09PU9iamVjdC5rZXlzKHRoaXMucm91dGUuc25hcHNob3QucGFyYW1zKS5sZW5ndGgmJnRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwobmkudmlld2VyLmN1cnJlbnRTZWxlY3Rpb24pLHZvaWQgMCE9PXRoaXMucm91dGUuc25hcHNob3QucGFyYW1zLmxpYk1lbSYmKG5pLnZpZXdlci5jdXJy''@;'; + put 'put ''ZW50U2VsZWN0aW9uPSJ2aWV3L2RhdGEiKSx0aGlzLmFwcFNlcnZpY2UuaG90X2xpY2Vuc2Vfa2V5LnN1YnNjcmliZShoPT57dGhpcy5ob3RUYWJsZS5saWNlbnNlS2V5PWh9KX1yZXNldEZpbHRlcigpe3RoaXMucXVlcnlGaWx0ZXJDb21wTGlzdC5maXJzdCYmdGhpcy5xdWVyeUZpbHRlckNv''@;'; + put 'put ''bXBMaXN0LmZpcnN0LnJlc2V0RmlsdGVyKCl9c2VhcmNoVGFibGUoaCl7cmV0dXJuIG5vKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXt0aGlzLnNlYXJjaExvYWRpbmc9ITA7bGV0IHY9aC52YWx1ZSx5PXRoaXMubGliKyIuIit0aGlzLnRhYmxlLEM9cGFyc2VJbnQodGhpcy5yb3V0''@;'; + put 'put ''ZS5zbmFwc2hvdC5wYXJhbXMuZmlsdGVySWQpfHwwO3lpZWxkIHRoaXMuc2FzU3RvcmVTZXJ2aWNlLnZpZXdEYXRhU2VhcmNoKHYsdGhpcy5zZWFyY2hOdW1lcmljLHksQykudGhlbihJPT57SS5zYXNwYXJhbXN8fEkudmlld0RhdGE/KHRoaXMuaG90VGFibGUuZGF0YT1JLnZpZXdkYXRhLHRo''@;'; + put 'put ''aXMuJGRhdGFGb3JtYXRzPUkuJHZpZXdkYXRhLHRoaXMuZHNtZXRhPUkuZHNtZXRhLHRoaXMubnVtYmVyT2ZSb3dzPUkuc2FzcGFyYW1zWzBdLk5PQlMsdGhpcy5xdWVyeVRleHQ9SS5zYXNwYXJhbXNbMF0uRklMVEVSX1RFWFQsdGhpcy5oZWFkZXJQa3M9SS5zYXNwYXJhbXNbMF0uUEtfRklF''@;'; + put 'put ''TERTLnNwbGl0KCIgIiksMD09PXRoaXMuaG90VGFibGUuZGF0YS5sZW5ndGg/dGhpcy5ub0RhdGE9ITA6KHRoaXMubm9EYXRhPSExLHRoaXMudGFibGVGbGFnPSExLHRoaXMuc2V0dXBIb3QoKSkpOnRoaXMuc2VhcmNoTG9hZGluZz0hMX0pLmNhdGNoKEk9Pnt0aGlzLmxvZ2dlclNlcnZpY2Uu''@;'; + put 'put ''ZXJyb3IoSSl9KSx0aGlzLnNlYXJjaExvYWRpbmc9ITF9KX1yZWxvYWRUYWJsZURhdGEoKXt0aGlzLnZpZXdEYXRhKHRoaXMudXJsRmlsdGVyUGt8fDApfXJlbG9hZExpYkluZm8oKXtyZXR1cm4gbm8odGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe3RoaXMubGliaW5mbz1udWxsLHRo''@;'; + put 'put ''aXMuc2FzU3RvcmVTZXJ2aWNlLnJlZnJlc2hMaWJJbmZvKHRoaXMubGliKS50aGVuKGg9Pm5vKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXt0aGlzLmxpYmluZm89aC5saWJpbmZvLG5pLnZpZXdlci5saWJpbmZvPXRoaXMubGliaW5mbztjb25zdCB2PXRoaXMubGlicmFyaWVzLmZp''@;'; + put 'put ''bmQoeT0+eS5MSUJSQVJZUkVGPT09dGhpcy5saWIpO3YmJih2LmxpYmluZm89dGhpcy5saWJpbmZvKX0pLGg9Pnt0aGlzLmxvZ2dlclNlcnZpY2UuZXJyb3IoaCksbnVsbD09PXRoaXMubGliaW5mbyYmKHRoaXMubGliaW5mbz1bXSl9KX0pfWZpbHRlckZuKGgpe3RoaXMubGlicmFyaWVzPXRo''@;'; + put 'put ''aXMubGlicmFyaWVzLmZpbHRlcih5PT4tMSE9PXkuTElCUkFSWU5BTUUudG9Mb3dlckNhc2UoKS5pbmRleE9mKGgudG9Mb2NhbGVMb3dlckNhc2UoKSkpfWRvd25sb2FkRGF0YSgpe2xldCBoPXRoaXMuc2FzanNDb25maWcuc2VydmVyVXJsLHY9dGhpcy5zYXNqc0NvbmZpZy5hcHBMb2M7Y29u''@;'; + put 'put ''c3QgeT10aGlzLnNhc1NlcnZpY2UuZ2V0RXhlY3V0aW9uUGF0aCgpO2xldCB1ZSxDPSImdHlwZT0iK3RoaXMuZG93bmxvYWRGb3JtYXQsST0iJnRhYmxlPSIrdGhpcy50YWJsZVRpdGxlLGo9IlNBU1ZJWUEiPT09dGhpcy5zYXNqc0NvbmZpZy5zZXJ2ZXJUeXBlP2AmX2NvbnRleHRuYW1lPSR7''@;'; + put 'put ''dGhpcy5zYXNqc0NvbmZpZy5jb250ZXh0TmFtZX1gOiIiO3VlPXZvaWQgMD09PXRoaXMucm91dGUuc25hcHNob3QucGFyYW1zLmZpbHRlcklkPzA6cGFyc2VJbnQodGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbXMuZmlsdGVySWQpLHdpbmRvdy5vcGVuKGgreSsiLz9fcHJvZ3JhbT0iK3YrIi9z''@;'; + put 'put ''ZXJ2aWNlcy9wdWJsaWMvZ2V0cmF3ZGF0YSIrQytJK2orIiZmaWx0ZXI9Iit1ZSksdGhpcy5vcGVuRG93bmxvYWQ9ITF9ZG93bmxvYWREREwoKXtsZXQgaD10aGlzLmxpYix2PXRoaXMudGFibGUseT10aGlzLmRvd25sb2FkRm9ybWF0LnJlcGxhY2UoIl9EREwiLCIiKSxDPXRoaXMuc2FzanND''@;'; + put 'put ''b25maWcuc2VydmVyVXJsLEk9dGhpcy5zYXNqc0NvbmZpZy5hcHBMb2M7Y29uc3Qgaj10aGlzLnNhc1NlcnZpY2UuZ2V0RXhlY3V0aW9uUGF0aCgpO3dpbmRvdy5vcGVuKEMraisiLz9fcHJvZ3JhbT0iK0krIi9zZXJ2aWNlcy9wdWJsaWMvZ2V0ZGRsIitgJmRzPSR7dn0mbGlicmVmPSR7aH0m''@;'; + put 'put ''Zmxhdm91cj0ke3l9JHsiU0FTVklZQSI9PT10aGlzLnNhc2pzQ29uZmlnLnNlcnZlclR5cGU/YCZfY29udGV4dG5hbWU9JHt0aGlzLnNhc2pzQ29uZmlnLmNvbnRleHROYW1lfWA6IiJ9YCksdGhpcy5vcGVuRG93bmxvYWQ9ITF9b25DbGlDb21tYW5kRm9jdXMoaCl7aC5wcmV2ZW50RGVmYXVs''@;'; + put 'put ''dCgpLGgudGFyZ2V0LnNlbGVjdCgpfWVkaXRUYWJsZSgpe3RoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoIi9lZGl0b3IvIit0aGlzLmxpYlRhYil9dGFibGVFZGl0RXhpc3RzKCl7bGV0IGg9e307aD1uaS5lZGl0b3IubGlic0FuZFRhYmxlcztsZXQgdj10aGlzLmxpYlRhYi5zcGxpdCgiLiIp''@;'; + put 'put ''WzFdLHk9dGhpcy5saWJUYWIuc3BsaXQoIi4iKVswXTtyZXR1cm4hIWhbeV0mJmhbeV0uaW5jbHVkZXModil9Z29Ub0xpbmVhZ2UoKXtsZXQgdj1gL3ZpZXcvbGluZWFnZS8ke3RoaXMudGFibGV1cmkuc3BsaXQoIlxcIilbMV19L1JFVkVSU0VgO3RoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwo''@;'; + put 'put ''dil9c2hvd1dlYlF1ZXJ5KCl7bGV0IGg7dGhpcy53ZWJRdWVyeT0hMCxoPXZvaWQgMD09PXRoaXMucm91dGUuc25hcHNob3QucGFyYW1zLmZpbHRlcklkPzA6cGFyc2VJbnQodGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbXMuZmlsdGVySWQpO2xldCB2PXdpbmRvdy5sb2NhdGlvbi5wb3J0Lmxl''@;'; + put 'put ''bmd0aD4wPyI6Iit3aW5kb3cubG9jYXRpb24ucG9ydDoiIjtjb25zdCB5PXRoaXMuc2FzU2VydmljZS5nZXRFeGVjdXRpb25QYXRoKCk7bGV0IEk9YCR7d2luZG93LmxvY2F0aW9uLnByb3RvY29sfS8vJHt3aW5kb3cubG9jYXRpb24uaG9zdG5hbWV9JHt2fS8ke3l9Lz9fcHJvZ3JhbT0ke3Ro''@;'; + put 'put ''aXMuc2FzanNDb25maWcuYXBwTG9jfS9zZXJ2aWNlcy9wdWJsaWMvZ2V0cmF3ZGF0YSZ0eXBlPVdFQiR7dGhpcy53ZWJRdWVyeVRhYj8iVEFCIjoiQ1NWIn0mdGFibGU9JHt0aGlzLnRhYmxlVGl0bGV9JHsiJmZpbHRlcj0iK2h9YDt0aGlzLndlYlF1ZXJ5VGV4dD1JLnJlcGxhY2UoLyAvZ2lt''@;'; + put 'put ''LCIlMjAiKX1jb3B5VG9DbGlwKCl7bGV0IGg9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGV4dGFyZWEiKTtoLnN0eWxlLnBvc2l0aW9uPSJmaXhlZCIsaC5zdHlsZS5sZWZ0PSIwIixoLnN0eWxlLnRvcD0iMCIsaC5zdHlsZS5vcGFjaXR5PSIwIixoLnZhbHVlPXRoaXMud2ViUXVlcnlUZXh0''@;'; + put 'put ''LGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaCksaC5mb2N1cygpLGguc2VsZWN0KCksZG9jdW1lbnQuZXhlY0NvbW1hbmQoImNvcHkiKSxkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGgpfWdvVG9WaWV3ZXIoKXt0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKCIvdmlldy9kYXRhIil9c2hv''@;'; + put 'put ''d1RhYmxlU2VsZWN0KCl7dGhpcy50YWJsZUZsYWc9IXRoaXMudGFibGVGbGFnfWNoZWNrRXhwYW5kKGgpe31jb2xsYXBzZUxpYnJhcnlJdGVtcyhoLHYpe2guZm9yRWFjaCh5PT57eS5MSUJSQVJZUkVGIT09di5MSUJSQVJZUkVGJiYoeS5leHBhbmRlZD0hMSl9KX1sb2FkTW9yZUxpYnJhcmll''@;'; + put 'put ''cygpe3RoaXMubGlicmFyaWVzUGFnaW5nfHwodGhpcy5saWJyYXJpZXNQYWdpbmc9ITAsdGhpcy5oZWxwZXJTZXJ2aWNlLmRpc3BsYXlMaWJyYXJpZXModGhpcy5saWJyYXJpZXMsITApLHRoaXMubGlicmFyaWVzUGFnaW5nPSExKX10cmVlTm9kZUNsaWNrZWQoaCx2KXsiQ29sbGFwc2UiPT09''@;'; + put 'put ''aC50YXJnZXQudGl0bGUmJnRoaXMuY29sbGFwc2VMaWJyYXJ5SXRlbXModGhpcy5saWJyYXJpZXMsdil9bGlicmFyeUV4cGFuZGVkQ2hhbmdlKGgsdil7aCYmdGhpcy5jb2xsYXBzZUxpYnJhcnlJdGVtcyh0aGlzLmxpYnJhcmllcyx2KX1saWJyYXJ5T25DbGljayhoLHYseSl7cmV0dXJuIG5v''@;'; + put 'put ''KHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtpZih2LnRhYmxlcz92LmV4cGFuZGVkPSEheXx8IXYuZXhwYW5kZWQ6eWllbGQgdGhpcy5zZWxlY3RUYWJsZShoLCExLHYpLHYuZXhwYW5kZWQpe3RoaXMuY2RmLmRldGVjdENoYW5nZXMoKTtsZXQgQz1kb2N1bWVudC5xdWVyeVNlbGVj''@;'; + put 'put ''dG9yKGAjc2VhcmNoXyR7di5MSUJSQVJZUkVGfWApO3RoaXMubG9nZ2VyU2VydmljZS5sb2coIltsaWJUcmVlU2VhcmNoSW5wdXRdIixDKSxDJiZDLmZvY3VzKCksdiYmdi5saWJpbmZvJiYodGhpcy5saWJpbmZvPXYubGliaW5mbyksdGhpcy5saWImJnRoaXMudGFibGUmJiF5JiZ0aGlzLnJv''@;'; + put 'put ''dXRlci5uYXZpZ2F0ZUJ5VXJsKCIvdmlldy9kYXRhIix7c2tpcExvY2F0aW9uQ2hhbmdlOiEwfSkudGhlbigoKT0+e3RoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoIi92aWV3L2RhdGEvIit0aGlzLmxpYil9KX10aGlzLmNvbGxhcHNlTGlicmFyeUl0ZW1zKHRoaXMubGlicmFyaWVzLHYpfSl9''@;'; + put 'put ''c2VsZWN0VGFibGUoaCx2LHkpe3JldHVybiBubyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7eS5sb2FkaW5nVGFibGVzPSEwLHRoaXMudGFibGU9ITEsdGhpcy50YWJsZURpc2FibGU9ITAsIlBsZWFzZSBzZWxlY3QgbGlicmFyeSIhPT1oP25pLnZpZXdlci50YWJsZXNTZXQmJnY/''@;'; + put 'put ''KHRoaXMuYWJvcnRBY3RpdmU9ITEsdGhpcy50YWJsZURpc2FibGU9ITEsdGhpcy50YWJsZXM9bmkudmlld2VyLnRhYmxlcyx0aGlzLmxpYmluZm89bmkudmlld2VyLmxpYmluZm8pOih0aGlzLmxpYmluZm89bnVsbCx5aWVsZCB0aGlzLnNhc1N0b3JlU2VydmljZS52aWV3VGFibGVzKGgpLnRo''@;'; + put 'put ''ZW4oQz0+e3RoaXMuYWJvcnRBY3RpdmU9ITEsdGhpcy50YWJsZURpc2FibGU9ITE7bGV0IEk9Qy5tcHRhYmxlcy5tYXAoZnVuY3Rpb24oail7cmV0dXJuIGouTUVNTkFNRX0pO3RoaXMubGliaW5mbz1DLmxpYmluZm98fFtdLHRoaXMudGFibGVzPUkseSYmKHkudGFibGVzPUkseS5saWJpbmZv''@;'; + put 'put ''PXRoaXMubGliaW5mbyksdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCgiL3ZpZXcvZGF0YS8iKSxuaS52aWV3ZXIubGlicmFyaWVzPXRoaXMubGlicmFyaWVzLG5pLnZpZXdlci5saWJyYXJ5PXRoaXMubGliLG5pLnZpZXdlci50YWJsZXM9dGhpcy50YWJsZXMsbmkudmlld2VyLmxpYmluZm89''@;'; + put 'put ''dGhpcy5saWJpbmZvLG5pLnZpZXdlci50YWJsZXNTZXQ9ITB9KS5jYXRjaChDPT57dGhpcy5sb2dnZXJTZXJ2aWNlLmVycm9yKEMpLHRoaXMuYWJvcnRBY3RpdmU9ITAsdGhpcy5ub0RhdGE9ITAsdGhpcy50YWJsZVRpdGxlPSIiLHRoaXMudGFibGVEaXNhYmxlPSEwfSkpOnRoaXMudGFibGVE''@;'; + put 'put ''aXNhYmxlPSEwLG5pLnZpZXdlci5saWJyYXJ5PXRoaXMubGliLHZ8fHRoaXMuY2xlYXJHbG9iYWxzRmlsdGVyKCkseS5sb2FkaW5nVGFibGVzPSExLHkuZXhwYW5kZWQ9IXkuZXhwYW5kZWR9KX1zZWxlY3RMaWJUYWJsZShoLHYpeyJQbGVhc2Ugc2VsZWN0IHRhYmxlIiE9PWg/KHRoaXMuYWN0''@;'; + put 'put ''aW9uRGlzYWJsZT0hMSx0aGlzLmxpYlRhYj10aGlzLmxpYisiLiIrdGhpcy50YWJsZSk6dGhpcy5hY3Rpb25EaXNhYmxlPSEwLG5pLnZpZXdlci50YWJsZT1oLHZ8fHRoaXMuY2xlYXJHbG9iYWxzRmlsdGVyKCksdGhpcy5sb2dnZXJTZXJ2aWNlLmxvZyh0aGlzLmxpYlRhYil9Y2xlYXJHbG9i''@;'; + put 'put ''YWxzRmlsdGVyKCl7bmkudmlld2VyLmZpbHRlci5saWJkcz0iIixuaS52aWV3ZXIuZmlsdGVyLndoZXJlQ2xhdXNlPSIiLG5pLnZpZXdlci5maWx0ZXIuZ3JvdXBMb2dpYz0iIixuaS52aWV3ZXIuZmlsdGVyLmNsYXVzZXM9W10sbmkudmlld2VyLmZpbHRlci5jb2xzPVtdLG5pLnZpZXdlci5m''@;'; + put 'put ''aWx0ZXIudmFscz1bXX1saWJUYWJBY3RpdmUoaCx2KXtyZXR1cm4hIXRoaXMubGliVGFiJiZoKyIuIit2PT09dGhpcy5saWJUYWJ9dHJlZU9uRmlsdGVyKGgsdil7dGhpcy5oZWxwZXJTZXJ2aWNlLnRyZWVPbkZpbHRlcihoLHYpfWxpYnJhcnlPbkZpbHRlcigpe3RoaXMuaGVscGVyU2Vydmlj''@;'; + put 'put ''ZS5saWJyYXJ5T25GaWx0ZXIodGhpcy5saWJyYXJpZXMsdGhpcy5saWJyYXJpZXNTZWFyY2gsIkxJQlJBUllOQU1FIiksbmkudmlld2VyLmxpYnJhcmllc1NlYXJjaD10aGlzLmxpYnJhcmllc1NlYXJjaH1saWJyYXJ5UmVzZXRGaWx0ZXIoKXt0aGlzLmhlbHBlclNlcnZpY2UucmVzZXRBcnJh''@;'; + put 'put ''eUZpbHRlcih0aGlzLmxpYnJhcmllcyl9dmlld0RhdGEoaCl7cmV0dXJuIG5vKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtsZXQgdjtpZih0aGlzLmxvYWRpbmdUYWJsZVZpZXc9ITAsdm9pZCAwPT09dGhpcy5saWJEYXRhc2V0KXY9dGhpcy5saWIrIi4iK3RoaXMudGFibGU7ZWxz''@;'; + put 'put ''ZSBpZih2b2lkIDA9PT10aGlzLmxpYiYmdm9pZCAwPT09dGhpcy50YWJsZSl7bGV0IEk9W107aWYoST10aGlzLmxpYkRhdGFzZXQuc3BsaXQoIi4iKSxuaS52aWV3ZXIuc3RhcnR1cFNldD90aGlzLmxpYnJhcmllcz1uaS52aWV3ZXIubGlicmFyaWVzOnlpZWxkIHRoaXMuc2FzU3RvcmVTZXJ2''@;'; + put 'put ''aWNlLnZpZXdMaWJzKCkudGhlbihqPT57dGhpcy5saWJyYXJpZXM9ai5zYXNsaWJzfSkuY2F0Y2goaj0+e3RoaXMubG9nZ2VyU2VydmljZS5lcnJvcihqKX0pLHRoaXMubGliPUlbMF0sbmkudmlld2VyLnN0YXJ0dXBTZXQpdGhpcy50YWJsZXM9bmkudmlld2VyLnRhYmxlcztlbHNle2xldCBq''@;'; + put 'put ''PXRoaXMubGlicmFyaWVzLmZpbmQodWU9PnVlLkxJQlJBUllSRUYudG9Mb3dlckNhc2UoKT09PXRoaXMubGliLnRvTG93ZXJDYXNlKCkpO3lpZWxkIHRoaXMuc2FzU3RvcmVTZXJ2aWNlLnZpZXdUYWJsZXModGhpcy5saWIpLnRoZW4odWU9Pnt0aGlzLnRhYmxlcz11ZS5tcHRhYmxlcy5tYXAo''@;'; + put 'put ''ZnVuY3Rpb24oX2Upe3JldHVybiBfZS5NRU1OQU1FfSksai50YWJsZXM9dGhpcy50YWJsZXMsbmkudmlld2VyLmxpYnJhcmllcz10aGlzLmxpYnJhcmllcyxuaS52aWV3ZXIudGFibGVzPXRoaXMudGFibGVzLG5pLnZpZXdlci5zdGFydHVwU2V0PSEwfSkuY2F0Y2godWU9Pnt0aGlzLmxvZ2dl''@;'; + put 'put ''clNlcnZpY2UuZXJyb3IodWUpfSl9dGhpcy50YWJsZT1JWzFdLHRoaXMudGFibGVGbGFnPSExLHY9dGhpcy5saWJEYXRhc2V0LHRoaXMubGliVGFiPXZ9ZWxzZSBuaS52aWV3ZXIuc3RhcnR1cFNldD90aGlzLmxpYnJhcmllcz1uaS52aWV3ZXIubGlicmFyaWVzOnlpZWxkIHRoaXMuc2FzU3Rv''@;'; + put 'put ''cmVTZXJ2aWNlLnZpZXdMaWJzKCkudGhlbihJPT57dGhpcy5saWJyYXJpZXM9SS5zYXNsaWJzfSkuY2F0Y2goST0+e3RoaXMubG9nZ2VyU2VydmljZS5lcnJvcihJKX0pLHZvaWQgMCE9PXRoaXMudGFibGUmJihuaS52aWV3ZXIuc3RhcnR1cFNldD90aGlzLnRhYmxlcz1uaS52aWV3ZXIudGFi''@;'; + put 'put ''bGVzOnlpZWxkIHRoaXMuc2FzU3RvcmVTZXJ2aWNlLnZpZXdUYWJsZXModGhpcy5saWIpLnRoZW4oST0+e3RoaXMudGFibGVzPUkubXB0YWJsZXMubWFwKGZ1bmN0aW9uKGope3JldHVybiBqLk1FTU5BTUV9KX0pLmNhdGNoKEk9Pnt0aGlzLmxvZ2dlclNlcnZpY2UuZXJyb3IoSSksdGhpcy5y''@;'; + put 'put ''b3V0ZXIubmF2aWdhdGVCeVVybCgiL3ZpZXcvZGF0YSIpfSksdGhpcy50YWJsZUZsYWc9ITEsdj10aGlzLmxpYisiLiIrdGhpcy50YWJsZSx0aGlzLnRhYmxlVGl0bGU9dix0aGlzLmxpYlRhYj12KTt0aGlzLnJvdXRlci51cmwuc3BsaXQoIi8iKS5sZW5ndGg+MyYmdiYmKHlpZWxkIHRoaXMu''@;'; + put 'put ''c2FzU3RvcmVTZXJ2aWNlLnZpZXdEYXRhKHYsaCkudGhlbihJPT57aWYoSS5xdWVyeS5sZW5ndGg+MCYmInZpZXciPT09bmkucm9vdFBhcmFtJiYwPT09bmkudmlld2VyLmZpbHRlci5jbGF1c2VzLmxlbmd0aCYmKG5pLnZpZXdlci5maWx0ZXIucXVlcnk9dGhpcy5oZWxwZXJTZXJ2aWNlLmRl''@;'; + put 'put ''ZXBDbG9uZShJLnF1ZXJ5KSxuaS52aWV3ZXIuZmlsdGVyLmxpYmRzPXRoaXMucm91dGUuc25hcHNob3QucGFyYW1zLmxpYk1lbSx0aGlzLnNhc1N0b3JlU2VydmljZS5pbml0aWFsaXplR2xvYmFsRmlsdGVyQ2xhdXNlKCJ2aWV3IixJLmNvbHMpKSx0aGlzLmFib3J0QWN0aXZlPSExLHRoaXMu''@;'; + put 'put ''ZmlsdGVyQ29scz1JLmNvbHMsQUxlKHRoaXMuZmlsdGVyQ29scyxbXSxJLiR2aWV3ZGF0YSksdGhpcy5udW1iZXJPZlJvd3M9SS5zYXNwYXJhbXNbMF0uTk9CUyx0aGlzLmhlYWRlclBrcz1JLnNhc3BhcmFtc1swXS5QS19GSUVMRFMuc3BsaXQoIiAiKSwiU0FTOSI9PT10aGlzLnNhc2pzQ29u''@;'; + put 'put ''ZmlnLnNlcnZlclR5cGUpe2xldCBOZT1JLnNhc3BhcmFtc1swXS5UQUJMRVVSSTtOZSYmTmUubGVuZ3RoPjAmJih0aGlzLnRhYmxldXJpPU5lKX10aGlzLmhvdFRhYmxlLmRhdGE9SS52aWV3ZGF0YSx0aGlzLiRkYXRhRm9ybWF0cz1JLiR2aWV3ZGF0YSx0aGlzLmRzbWV0YT1JLmRzbWV0YSx0''@;'; + put 'put ''aGlzLnF1ZXJ5VGV4dD1JLnNhc3BhcmFtc1swXS5GSUxURVJfVEVYVDtsZXQgaj1bXSx1ZT1bXTtmb3IobGV0IE5lIGluIEkudmlld2RhdGFbMF0pTmUmJnVlLnB1c2goTmUpO2ZvcihsZXQgTmU9MDtOZTx1ZS5sZW5ndGg7TmUrKylqLnB1c2goe2RhdGE6dWVbTmVdfSk7dGhpcy5ob3RUYWJs''@;'; + put 'put ''ZS5jb2xIZWFkZXJzPXVlLHRoaXMuaG90VGFibGUuY29sdW1ucz1qLHRoaXMuaG90VGFibGUuY2VsbHM9ZnVuY3Rpb24oKXtyZXR1cm57cmVhZE9ubHk6ITB9fSx0aGlzLnRhYmxlRmxhZz0hMTtsZXQgQmU9W107QmU9di5zcGxpdCgiLiIpLHRoaXMubGliPUJlWzBdLHRoaXMudGFibGU9QmVb''@;'; + put 'put ''MV0sMD09PXRoaXMuaG90VGFibGUuZGF0YS5sZW5ndGg/KHRoaXMubm9EYXRhPSEwLHRoaXMudGFibGVGbGFnPSEwKToodGhpcy5ub0RhdGE9ITEsdGhpcy50YWJsZUZsYWc9ITEpLHRoaXMubm9EYXRhUmVxRXJyPSExfSkuY2F0Y2goST0+e3RoaXMubG9nZ2VyU2VydmljZS5lcnJvcihJKSx0''@;'; + put 'put ''aGlzLmFib3J0QWN0aXZlPSEwLHRoaXMubm9EYXRhUmVxRXJyPSEwfSkpLHRoaXMucm91dGVyLnVybC5pbmNsdWRlcygiL2RhdGEiKSYmdiYmdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCgwIT09aD8iL3ZpZXcvZGF0YS8iK3YrIi8iK2g6Ii92aWV3L2RhdGEvIit2KTtsZXQgeT10aGlzLnRh''@;'; + put 'put ''YmxlLEM9dGhpcy5saWJyYXJpZXMuZmluZChJPT5JLkxJQlJBUllSRUYudG9Mb3dlckNhc2UoKT09PXRoaXMubGliLnRvTG93ZXJDYXNlKCkpO0M/bmkudmlld2VyLmxpYnJhcmllcy5sZW5ndGg+MD8odGhpcy5saWJyYXJpZXM9bmkudmlld2VyLmxpYnJhcmllcyx0aGlzLmxpYnJhcmllc1Nl''@;'; + put 'put ''YXJjaD1uaS52aWV3ZXIubGlicmFyaWVzU2VhcmNoLHRoaXMubGlicmFyeU9uQ2xpY2sodGhpcy5saWIsQywhMCkpOnRoaXMuc2VsZWN0VGFibGUodGhpcy5saWIsITEsQyk6dGhpcy5saWJpbmZvPVtdLHRoaXMudGFibGU9eXx8dGhpcy50YWJsZSx0aGlzLmxpYnJhcmllcyYmdGhpcy5oZWxw''@;'; + put 'put ''ZXJTZXJ2aWNlLmRpc3BsYXlMaWJyYXJpZXModGhpcy5saWJyYXJpZXMpLHRoaXMucm91dGVyLnVybC5pbmNsdWRlcygiL2RhdGEiKSYmdGhpcy5ldmVudFNlcnZpY2UuY2xvc2VTaWRlYmFyKCksdGhpcy5sb2FkaW5nVGFibGVWaWV3PSExLCF0aGlzLm5vRGF0YSYmIXRoaXMubm9EYXRhUmVx''@;'; + put 'put ''RXJyJiZ2JiZ0aGlzLnNldHVwSG90KCksdGhpcy5ob3RJbnN0YW5jZUNsaWNrTGlzdGVuZXJ8fHNldFRpbWVvdXQoKCk9PntsZXQgST1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaG90SW5zdGFuY2UiKTtJJiYoSS5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLGo9PntzZXRUaW1lb3V0''@;'; + put 'put ''KCgpPT57bGV0IHVlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5kZWJ1Zy1zd2l0Y2gtaXRlbSIpfHx2b2lkIDA7dWUmJnVlLmNsaWNrKCl9LDEwMCl9KSx0aGlzLmhvdEluc3RhbmNlQ2xpY2tMaXN0ZW5lcj0hMCl9LDJlMyl9KX1tYXhXaWR0aENoZWtlcihoLHYpe3JldHVybiBoPjIwMD8y''@;'; + put 'put ''MDA6aH1vcGVuUWIoKXt0aGlzLmZpbHRlcj0hMCx0aGlzLmNkZi5kZXRlY3RDaGFuZ2VzKCksdGhpcy5zYXNTdG9yZVNlcnZpY2Uuc2V0UXVlcnlWYXJpYWJsZXModGhpcy5saWIrIi4iK3RoaXMudGFibGUsdGhpcy5maWx0ZXJDb2xzKX1zZW5kQ2xhdXNlKCl7cmV0dXJuIG5vKHRoaXMsdm9p''@;'; + put 'put ''ZCAwLHZvaWQgMCxmdW5jdGlvbiooKXt0aGlzLnN1Ym1pdExvYWRpbmc9ITA7bGV0IGg9W10sdj1bXTtpZih2b2lkIDA9PT10aGlzLmNsYXVzZXMpcmV0dXJuIHRoaXMubnVsbFZhcmlhYmxlcz0hMCx2b2lkKHRoaXMuc3VibWl0TG9hZGluZz0hMSk7e2xldCB5PXRoaXMuY2xhdXNlcy5xdWVy''@;'; + put 'put ''eU9iajtpZih5WzBdLmVsZW1lbnRzLmxlbmd0aDwxKXJldHVybiJ2aWV3Ij09PW5pLnJvb3RQYXJhbSYmKG5pLnZpZXdlci5maWx0ZXIuY2xhdXNlcz1bXSxuaS52aWV3ZXIuZmlsdGVyLnF1ZXJ5PVtdLG5pLnZpZXdlci5maWx0ZXIuZ3JvdXBMb2dpYz0iIiksdm9pZCB0aGlzLnJvdXRlci5u''@;'; + put 'put ''YXZpZ2F0ZUJ5VXJsKCIvdmlldy9kYXRhLyIrdGhpcy5saWJkcyk7Zm9yKGxldCBDPTA7Qzx5Lmxlbmd0aDtDKyspe2NvbnN0IEk9eVtDXS5lbGVtZW50cztoPUkuZmlsdGVyKGZ1bmN0aW9uKGope3JldHVybiBudWxsPT09ai52YXJpYWJsZX0pLGgubGVuZ3RoJiZ2LnB1c2goSSl9fWlmKHYu''@;'; + put 'put ''bGVuZ3RoKXJldHVybiB0aGlzLm51bGxWYXJpYWJsZXM9ITAsdm9pZCh0aGlzLnN1Ym1pdExvYWRpbmc9ITEpO3tjb25zdCB5PXtncm91cExvZ2ljOnRoaXMuY2xhdXNlcy5ncm91cExvZ2ljLGZpbHRlckdyb3VwczpbXX07dGhpcy5jbGF1c2VzLnF1ZXJ5T2JqLmZvckVhY2goST0+e2NvbnN0''@;'; + put 'put ''IGo9e2ZpbHRlckNsYXVzZXM6W119O0kuZWxlbWVudHMuZm9yRWFjaCh1ZT0+e2ouZmlsdGVyQ2xhdXNlcy5wdXNoKHRoaXMuaGVscGVyU2VydmljZS5kZWVwQ2xvbmUodWUpKX0pLGouY2xhdXNlTG9naWM9SS5jbGF1c2VMb2dpYyx5LmZpbHRlckdyb3Vwcy5wdXNoKHRoaXMuaGVscGVyU2Vy''@;'; + put 'put ''dmljZS5kZWVwQ2xvbmUoaikpfSk7Y29uc3QgQz10aGlzLnNhc1N0b3JlU2VydmljZS5jcmVhdGVGaWx0ZXJRdWVyeVRhYmxlKHkpO3lpZWxkIHRoaXMuc2FzU3RvcmVTZXJ2aWNlLnNhdmVRdWVyeSh0aGlzLmxpYmRzLEMpLnRoZW4oST0+e3RoaXMucXVlcnlUZXh0PUkucmVzdWx0WzBdLkZJ''@;'; + put 'put ''TFRFUl9URVhUO2xldCBqPUkucmVzdWx0WzBdLkZJTFRFUl9SSzt0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKCIvdmlldy9kYXRhLyIrdGhpcy5saWJkcysiLyIraiksdGhpcy52aWV3RGF0YShqKSx0aGlzLmZpbHRlcj0hMX0pLmNhdGNoKEk9Pnt0aGlzLmxvZ2dlclNlcnZpY2UuZXJyb3Io''@;'; + put 'put ''SSl9KSx0aGlzLnN1Ym1pdExvYWRpbmc9ITF9fSl9cmVtb3ZlUXVlcnkoKXt0aGlzLnNhc1N0b3JlU2VydmljZS5yZW1vdmVDbGF1c2UoKX1jYWxjdWxhdGVIb3RIZWlnaHQoKXtjb25zdCBoPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJob3QtZGlzcGxheS1saWNlbnNlLWluZm8iKTtkb2N1''@;'; + put 'put ''bWVudC5nZXRFbGVtZW50QnlJZCgiZGVtby1iYW5uZXIiKT9ofHwodGhpcy5ob3RUYWJsZS5oZWlnaHQrPTUwKTpoP3RoaXMuaG90VGFibGUuaGVpZ2h0LT00MDp0aGlzLmhvdFRhYmxlLmhlaWdodCs9MTMwfXNldHVwSG90KCl7c2V0VGltZW91dCgoKT0+eyF0aGlzLmxvYWRpbmdUYWJsZVZp''@;'; + put 'put ''ZXcmJnRoaXMubGliRGF0YXNldCYmKHRoaXMuaG90SW5zdGFuY2U9dGhpcy5ob3RUYWJsZVJlZ2lzdGVyZXIuZ2V0SW5zdGFuY2UoImhvdEluc3RhbmNlIiksdGhpcy5ob3RJbnN0YW5jZSYmdGhpcy5ob3RJbnN0YW5jZS51cGRhdGVTZXR0aW5ncyh7bW9kaWZ5Q29sV2lkdGg6ZnVuY3Rpb24o''@;'; + put 'put ''aCx2KXtyZXR1cm4gaD41MDA/NTAwOmh9LGFmdGVyR2V0Q29sSGVhZGVyOihoLHYpPT57dmFyIHk7Y29uc3QgQz1udWxsPT09KHk9dGhpcy5ob3RJbnN0YW5jZSl8fHZvaWQgMD09PXk/dm9pZCAwOnkuY29sVG9Qcm9wKGgpO0MmJnRoaXMuaGVhZGVyUGtzLmluZGV4T2YoQyk+LTEmJnYuY2xh''@;'; + put 'put ''c3NMaXN0LmFkZCgicHJpbWFyeUtleUhlYWRlclN0eWxlIil9fSkpfSwxZTMpfWxvYWRXaXRoUGFyYW1ldGVycygpe3JldHVybiBubyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7dGhpcy5zd2l0Y2hGbGFnPSEwLHRoaXMudGFibGVUaXRsZT10aGlzLnJvdXRlLnNuYXBzaG90LnBh''@;'; + put 'put ''cmFtcy5saWJNZW18fDAsdGhpcy51cmxGaWx0ZXJQaz1wYXJzZUludCh0aGlzLnJvdXRlLnNuYXBzaG90LnBhcmFtcy5maWx0ZXJJZHx8IjAiKTtsZXQgdj10aGlzLnJvdXRlLnNuYXBzaG90LnBhcmFtcy5saWJNZW07dGhpcy5saWJEYXRhc2V0PXYsdi5pbmNsdWRlcygiLiIpfHwodGhpcy5s''@;'; + put 'put ''aWI9dikseWllbGQgdGhpcy52aWV3RGF0YSh0aGlzLnVybEZpbHRlclBrKSx0aGlzLm5vRGF0YT9zZXRUaW1lb3V0KCgpPT57dGhpcy50YWJsZUZsYWc9ITB9LDEyMDApOnNldFRpbWVvdXQoKCk9Pnt0aGlzLnRhYmxlRmxhZz0hMX0sMTIwMCl9KX1sb2FkV2l0aG91dFBhcmFtZXRlcnMoKXty''@;'; + put 'put ''ZXR1cm4gbm8odGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe3RoaXMuc3dpdGNoRmxhZz0hMSx0aGlzLmxpYnJhcmllc0xvYWRpbmc9ITAsbmkudmlld2VyLnN0YXJ0dXBTZXQ/c2V0VGltZW91dCgoKT0+e3RoaXMubGlicmFyaWVzPW5pLnZpZXdlci5saWJyYXJpZXMsdGhpcy5saWJy''@;'; + put 'put ''YXJpZXNTZWFyY2g9bmkudmlld2VyLmxpYnJhcmllc1NlYXJjaCx0aGlzLmxpYj1uaS52aWV3ZXIubGlicmFyeSx0aGlzLmxpYnJhcmllc1RyZWVFeHBhbmRlZD0hMCx0aGlzLmxpYnJhcmllc0xvYWRpbmc9ITEsdGhpcy5oZWxwZXJTZXJ2aWNlLmRpc3BsYXlMaWJyYXJpZXModGhpcy5saWJy''@;'; + put 'put ''YXJpZXMpfSwxMDApOih0aGlzLm5vRGF0YVJlcUVycj0hMSx5aWVsZCB0aGlzLnNhc1N0b3JlU2VydmljZS52aWV3TGlicygpLnRoZW4oaD0+e3RoaXMubGlicmFyaWVzPWguc2FzbGlicyxuaS52aWV3ZXIubGlicmFyaWVzPXRoaXMubGlicmFyaWVzLG5pLnZpZXdlci5zdGFydHVwU2V0PSEw''@;'; + put 'put ''LHRoaXMubGlicmFyaWVzTG9hZGluZz0hMSx0aGlzLmhlbHBlclNlcnZpY2UuZGlzcGxheUxpYnJhcmllcyh0aGlzLmxpYnJhcmllcyl9KS5jYXRjaChoPT57dGhpcy5sb2dnZXJTZXJ2aWNlLmVycm9yKGgpLHRoaXMubGlicmFyaWVzTG9hZGluZz0hMSx0aGlzLm5vRGF0YVJlcUVycj0hMH0p''@;'; + put 'put ''KX0pfW5nQWZ0ZXJWaWV3SW5pdCgpe3RoaXMuY2FsY3VsYXRlSG90SGVpZ2h0KCl9bmdBZnRlckNvbnRlbnRJbml0KCl7cmV0dXJuIG5vKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXt0aGlzLmhvdFRhYmxlLmRhdGEubGVuZ3RoPjAmJih0aGlzLnRhYmxlRmxhZz0hMCksdGhpcy5f''@;'; + put 'put ''cXVlcnk9dGhpcy5zYXNTdG9yZVNlcnZpY2UucXVlcnkuc3Vic2NyaWJlKGg9Pnt0aGlzLndoZXJlU3RyaW5nPWguc3RyaW5nLHRoaXMuY2xhdXNlcz1oLm9iaix0aGlzLmxpYmRzPWgubGliZHN9KSx2b2lkIDAhPT10aGlzLnJvdXRlLnNuYXBzaG90LnBhcmFtcy5saWJNZW0/dGhpcy5sb2Fk''@;'; + put 'put ''V2l0aFBhcmFtZXRlcnMoKTp0aGlzLmxvYWRXaXRob3V0UGFyYW1ldGVycygpfSl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKEt0KFI3KSxLdChrZyksS3QoZzIpLEt0KFpsKSxLdChQdSksS3QobXUpLEt0KHNjKSxLdChYYyksS3QoZDEpKX0sZC5c''@;'; + put 'put ''dTAyNzVjbXA9VGkoe3R5cGU6ZCxzZWxlY3RvcnM6W1siYXBwLXZpZXdlciJdXSx2aWV3UXVlcnk6ZnVuY3Rpb24oaCx2KXtpZigxJmgmJnZvKEI5dCw1KSwyJmgpe2xldCB5O0hpKHk9JGkoKSkmJih2LnF1ZXJ5RmlsdGVyQ29tcExpc3Q9eSl9fSxob3N0QXR0cnM6WzEsImNvbnRlbnQtY29u''@;'; + put 'put ''dGFpbmVyIl0sZGVjbHM6OTQsdmFyczoyOCxjb25zdHM6W1szLCJzY3JvbGxlZFRvQm90dG9tIl0sWyJjbGFzcyIsIm15LTEwLW14LWF1dG8gdGV4dC1jZW50ZXIiLDQsIm5nSWYiXSxbImNsYXNzIiwic2VhcmNoLW5vZGUiLDQsIm5nSWYiXSxbNCwibmdGb3IiLCJuZ0Zvck9mIl0sWyJjbGFz''@;'; + put 'put ''cyIsInctMTAwIHRleHQtY2VudGVyIiw0LCJuZ0lmIl0sWzEsImNvbnRlbnQtYXJlYSJdLFsiY2xhc3MiLCJtb2RhbCB6LWluZGV4LWhpZ2hlc3QiLDQsIm5nSWYiXSxbImNsYXNzIiwibW9kYWwtYmFja2Ryb3AiLCJhcmlhLWhpZGRlbiIsInRydWUiLDQsIm5nSWYiXSxbMywiY2xyTW9kYWxP''@;'; + put 'put ''cGVuIiwiY2xyTW9kYWxTaXplIiwiY2xyTW9kYWxPcGVuQ2hhbmdlIl0sWzEsIm1vZGFsLXRpdGxlIiwiY2VudGVyIiwidGV4dC1jZW50ZXIiLCJjb2xvci1kYXJrZXItZ3JheSJdLFsxLCJtb2RhbC1ib2R5Il0sWzEsImNsci1jb2wtbWQtNiJdLFsxLCJkb3dubG9hZC1zZWxlY3QiXSxbImNs''@;'; + put 'put ''clNlbGVjdCIsIiIsMywibmdNb2RlbCIsIm5nTW9kZWxDaGFuZ2UiXSxbInZhbHVlIiwiQ1NWIl0sWyJ2YWx1ZSIsIlNBUyJdLFsidmFsdWUiLCJQR1NRTF9EREwiXSxbInZhbHVlIiwiU0FTX0RETCJdLFsidmFsdWUiLCJUU1FMX0RETCJdLFsidmFsdWUiLCJFWENFTCJdLFsidmFsdWUiLCJN''@;'; + put 'put ''QVJLRE9XTiJdLFsxLCJtb2RhbC1mb290ZXIiXSxbInR5cGUiLCJidXR0b24iLDEsImJ0biIsImJ0bi1zbSIsImJ0bi1vdXRsaW5lIiwzLCJjbGljayJdLFsidHlwZSIsInN1Ym1pdCIsMSwiYnRuIiwiYnRuLXNtIiwiYnRuLXN1Y2Nlc3Mtb3V0bGluZSIsMywiaWQiLCJjbGljayJdLFsxLCJt''@;'; + put 'put ''b2RhbC1ib2R5Iiwid2ViLXF1ZXJ5Il0sWzEsInJvdyJdLFsxLCJjbHItY29sLWxnLTEyIiwiY2xyLWNvbC1tZC0xMiIsImNsci1jb2wtc20tMTIiLCJjbHItY29sLXhzLTEyIl0sWzEsImNhcmQiXSxbMSwiY2FyZC1oZWFkZXIiLCJkLWZsZXgiLCJqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiJd''@;'; + put 'put ''LFsxLCJidG4tZ3JvdXAiXSxbMSwicmFkaW8iLCJidG4iLDMsImNsaWNrIl0sWyJ0eXBlIiwicmFkaW8iLCJuYW1lIiwiYnRuLWdyb3VwLWRlbW8tcmFkaW9zIiwzLCJjaGVja2VkIl0sWzEsImNhcmQtYmxvY2siLCJ3b3JkLWJyZWFrLWFsbCJdLFsicm93cyIsIjQiLCJjb2xzIiwiNTAiLCJ0''@;'; + put 'put ''eXBlIiwidGV4dCIsInJlYWRvbmx5IiwiIiwxLCJ3ZWItcXVlcnktdGV4dCIsInctMTAwIiwzLCJ2YWx1ZSIsImZvY3VzIl0sWyJjbGlDb21tYW5kSW5wdXQiLCIiXSxbMSwiY2FyZC1mb290ZXIiXSxbMSwiYnRuIiwiYnRuLXNtIiwiYnRuLWxpbmsiLDMsIm5neENsaXBib2FyZCIsImNsaWNr''@;'; + put 'put ''Il0sWyJhcmlhLW1vZGFsIiwidHJ1ZSIsMywiY2xyTW9kYWxPcGVuIiwiY2xyTW9kYWxTaXplIiwiY2xyTW9kYWxDbG9zYWJsZSIsImNsck1vZGFsT3BlbkNoYW5nZSJdLFs0LCJuZ0lmIl0sWyJ0eXBlIiwiYnV0dG9uIiwxLCJidG4iLCJidG4tc20iLCJidG4tbGluayIsMywiY2xpY2siXSxb''@;'; + put 'put ''InR5cGUiLCJidXR0b24iLDEsImJ0biIsImJ0bi1vdXRsaW5lIiwiYnRuLXNtIiwzLCJjbGljayJdLFsidHlwZSIsInN1Ym1pdCIsMSwiYnRuIiwiYnRuLXNtIiwiYnRuLXN1Y2Nlc3Mtb3V0bGluZSIsMywiY2xyTG9hZGluZyIsImNsaWNrIl0sWzMsImNsck1vZGFsT3BlbiIsImNsck1vZGFs''@;'; + put 'put ''T3BlbkNoYW5nZSJdLFsxLCJtb2RhbC10aXRsZSJdLFsidHlwZSIsImJ1dHRvbiIsMSwiYnRuIiwiYnRuLW91dGxpbmUiLDMsImNsaWNrIl0sWyJ0eXBlIiwiYnV0dG9uIiwxLCJidG4iLCJidG4tcHJpbWFyeSIsMywiY2xpY2siXSxbImNsYXNzIiwibG9hZGluZ1NwaW5uZXIiLDQsIm5nSWYi''@;'; + put 'put ''XSxbImNsYXNzIiwiY2FyZCIsNCwibmdJZiJdLFszLCJvcGVuIiwiZHNtZXRhIiwib3BlbkNoYW5nZSJdLFsxLCJteS0xMC1teC1hdXRvIiwidGV4dC1jZW50ZXIiXSxbImNsck1lZGl1bSIsIiJdLFsxLCJzZWFyY2gtbm9kZSJdLFsxLCJ0cmVlLXNlYXJjaC13cmFwcGVyIl0sWyJjbHJJbnB1''@;'; + put 'put ''dCIsIiIsInBsYWNlaG9sZGVyIiwiTGlicmFyaWVzIiwibmFtZSIsImlucHV0IiwiYXV0b2NvbXBsZXRlIiwib2ZmIiwzLCJuZ01vZGVsIiwibmdNb2RlbENoYW5nZSIsImtleXVwIl0sWyJzZWFyY2hMaWJUcmVlSW5wdXQiLCIiXSxbInNoYXBlIiwic2VhcmNoIiw0LCJuZ0lmIl0sWyJzaGFw''@;'; + put 'put ''ZSIsInRpbWVzIiwzLCJjbGljayIsNCwibmdJZiJdLFsic2hhcGUiLCJzZWFyY2giXSxbInNoYXBlIiwidGltZXMiLDMsImNsaWNrIl0sWzMsImNsckV4cGFuZGVkIiwiY2xyTG9hZGluZyIsImNsci1leHBhbmRlZCIsImNsaWNrIiwiY2xyRXhwYW5kZWRDaGFuZ2UiLDQsIm5nSWYiXSxbMywi''@;'; + put 'put ''Y2xyRXhwYW5kZWQiLCJjbHJMb2FkaW5nIiwiY2xpY2siLCJjbHJFeHBhbmRlZENoYW5nZSJdLFsxLCJtLTAiLCJjdXJzb3ItcG9pbnRlciIsMywiY2xpY2siXSxbInNoYXBlIiwicmFjay1zZXJ2ZXIiXSxbImNscklucHV0IiwiIiwicGxhY2Vob2xkZXIiLCJUYWJsZXMiLCJuYW1lIiwiaW5w''@;'; + put 'put ''dXQiLCJhdXRvY29tcGxldGUiLCJvZmYiLDMsImlkIiwibmdNb2RlbCIsIm5nTW9kZWxDaGFuZ2UiLCJrZXl1cCJdLFsic2VhcmNoVHJlZUlucHV0IiwiIl0sWyJjbGFzcyIsImNsci10cmVlbm9kZS1saW5rIiwzLCJ0YWJsZS1hY3RpdmUiLCJjbGljayIsNCwibmdJZiJdLFsxLCJjbHItdHJl''@;'; + put 'put ''ZW5vZGUtbGluayIsMywiY2xpY2siXSxbMywibmdTd2l0Y2giXSxbInNoYXBlIiwiYm9sdCIsNCwibmdTd2l0Y2hDYXNlIl0sWyJzaGFwZSIsInRhYmxlIiw0LCJuZ1N3aXRjaENhc2UiXSxbInNoYXBlIiwiYm9sdCJdLFsic2hhcGUiLCJ0YWJsZSJdLFsxLCJ3LTEwMCIsInRleHQtY2VudGVy''@;'; + put 'put ''Il0sWzEsInNwaW5uZXIiLCJzcGlubmVyLXNtIl0sWzEsIm1vZGFsIiwiei1pbmRleC1oaWdoZXN0Il0sWyJyb2xlIiwiZGlhbG9nIiwiYXJpYS1oaWRkZW4iLCJ0cnVlIiwxLCJtb2RhbC1kaWFsb2ciXSxbMSwibW9kYWwtY29udGVudCJdLFsxLCJtb2RhbC1oZWFkZXIiXSxbImFyaWEtbGFi''@;'; + put 'put ''ZWwiLCJDbG9zZSIsInR5cGUiLCJidXR0b24iLDEsImNsb3NlIl0sWyJhcmlhLWhpZGRlbiIsInRydWUiLCJzaGFwZSIsImNsb3NlIl0sWyJ0eXBlIiwiYnV0dG9uIiwxLCJidG4iLCJidG4tc20iLCJidG4tcHJpbWFyeSIsMywiY2xpY2siXSxbImFyaWEtaGlkZGVuIiwidHJ1ZSIsMSwibW9k''@;'; + put 'put ''YWwtYmFja2Ryb3AiXSxbInF1ZXJ5RmlsdGVyIiwiIl0sWzEsImxvYWRpbmdTcGlubmVyIl0sWzEsInNwaW5uZXIiXSxbImNsYXNzIiwiaGVhZGVyLXJvdyBjbHItcm93IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIHctMTAwIG0tMCIsNCwibmdJZiJdLFsiY2xhc3MiLCJuby10YWJsZS1zZWxl''@;'; + put 'put ''Y3RlZCIsNCwibmdJZiJdLFsiY2xhc3MiLCJjYXJkLWJsb2NrIG5vRGF0YSIsNCwibmdJZiJdLFsxLCJoZWFkZXItcm93IiwiY2xyLXJvdyIsImp1c3RpZnktY29udGVudC1iZXR3ZWVuIiwidy0xMDAiLCJtLTAiXSxbMSwiZm9ybS1ibG9jayIsInNlYXJjaC13cmFwcGVyIiwic3ciLCJjbHIt''@;'; + put 'put ''Y29sLW1kIl0sWyJjbHJGb3JtIiwiIiwxLCJkLWZsZXgiLCJhbGlnbi1pdGVtcy1jZW50ZXIiXSxbMSwiaW5wdXQtd3JhcHBlciJdLFsiY2xySW5wdXQiLCIiLCJwbGFjZWhvbGRlciIsIlNlYXJjaCIsIm5hbWUiLCJzZWFyY2gtaW5wdXQiLDMsInR5cGUiLCJrZXl1cC5lbnRlciJdLFsic2Vh''@;'; + put 'put ''cmNoRWwiLCIiXSxbInNoYXBlIiwic2VhcmNoIiwzLCJjbGljayIsNCwibmdJZiJdLFsiY2xhc3MiLCJzcGlubmVyIHNwaW5uZXItaW5saW5lIiw0LCJuZ0lmIl0sWyJ0eXBlIiwiY2hlY2tib3giLCJjbHJDaGVja2JveCIsIiIsIm5hbWUiLCJudW1lcmljX2NoZWNrIiwzLCJuZ01vZGVsIiwi''@;'; + put 'put ''bmdNb2RlbENoYW5nZSJdLFsxLCJ0aXRsZS1jb2wiLCJjbHItY29sLWF1dG8iXSxbInNoYXBlIiwiaW5mby1jaXJjbGUiLCJzaXplIiwiMjQiLDEsImlzLWhpZ2hsaWdodCIsImN1cnNvci1wb2ludGVyIiwzLCJjbGljayJdLFsic2hhcGUiLCJib2x0IiwiY2xhc3MiLCJjb2xvci15ZWxsb3cg''@;'; + put 'put ''bXQtNSBtci01Iiw0LCJuZ0lmIl0sWyJjbGFzcyIsInZpZXdlclRpdGxlIiw0LCJuZ0lmIl0sWzEsIm9wdGlvbnMtY29sIiwiY2xyLWNvbC1tZCJdLFsiY2xhc3MiLCJvcHRpb25zLWRyb3Bkb3duIiwzLCJjbHJDbG9zZU1lbnVPbkl0ZW1DbGljayIsNCwibmdJZiJdLFsiY2xhc3MiLCJjbHIt''@;'; + put 'put ''Y29sLW1kLTEyIGluZm9CYXIiLDQsIm5nSWYiXSxbInNoYXBlIiwic2VhcmNoIiwzLCJjbGljayJdLFsxLCJzcGlubmVyIiwic3Bpbm5lci1pbmxpbmUiXSxbInNoYXBlIiwiYm9sdCIsMSwiY29sb3IteWVsbG93IiwibXQtNSIsIm1yLTUiXSxbMSwidmlld2VyVGl0bGUiXSxbInNoYXBlIiwi''@;'; + put 'put ''cmVmcmVzaCIsMSwicmVmcmVzaC10YWJsZSIsMywiY2xpY2siXSxbMSwib3B0aW9ucy1kcm9wZG93biIsMywiY2xyQ2xvc2VNZW51T25JdGVtQ2xpY2siXSxbInR5cGUiLCJidXR0b24iLCJjbHJEcm9wZG93blRyaWdnZXIiLCIiLDEsImJ0biIsImJ0bi1zbSIsImJ0bi1vdXRsaW5lIiwiZmls''@;'; + put 'put ''dGVyU2lkZSJdLFsic2hhcGUiLCJjb2ciLCJzaXplIiwiMTUiXSxbImNsclBvc2l0aW9uIiwiYm90dG9tLXJpZ2h0Iiw0LCJjbHJJZk9wZW4iXSxbImNsclBvc2l0aW9uIiwiYm90dG9tLXJpZ2h0Il0sWyJ0eXBlIiwiYnV0dG9uIiwiY2xhc3MiLCJidG4gYnRuLXNtIGJ0bi1zdWNjZXNzLW91''@;'; + put 'put ''dGxpbmUiLCJjbHJEcm9wZG93bkl0ZW0iLCIiLDMsImNsaWNrIiw0LCJuZ0lmIl0sWyJ0eXBlIiwiYnV0dG9uIiwiY2xyRHJvcGRvd25JdGVtIiwiIiwxLCJidG4iLCJidG4tc20iLCJidG4tb3V0bGluZSIsImJ0bi1ibG9jayIsMywiY2xpY2siXSxbInNoYXBlIiwiZmlsdGVyIl0sWyJ0eXBl''@;'; + put 'put ''IiwiYnV0dG9uIiwiY2xyRHJvcGRvd25JdGVtIiwiIiwxLCJidG4iLCJidG4tc20iLCJidG4tc3VjY2Vzcy1vdXRsaW5lIiwzLCJjbGljayJdLFsic2hhcGUiLCJkb3dubG9hZCJdLFsic2hhcGUiLCJkb3dubG9hZC1jbG91ZCJdLFsic2hhcGUiLCJwZW5jaWwiXSxbInNoYXBlIiwic3dpdGNo''@;'; + put 'put ''Il0sWzEsImNsci1jb2wtbWQtMTIiLCJpbmZvQmFyIl0sWzEsIm5vLXRhYmxlLXNlbGVjdGVkIl0sWyJzaGFwZSIsIndhcm5pbmctc3RhbmRhcmQiLCJzaXplIiwiNjAiLDEsImlzLWluZm8iLCJpY29uLWRjLWZpbGwiXSxbMSwidGV4dC1jZW50ZXIiLCJjb2xvci1ncmF5Il0sWzEsImhlYWRl''@;'; + put 'put ''ci1yb3ciLCJjbHItcm93IiwiYm9yZGVyLWJvdHRvbS1kaXZpZGVyIiwianVzdGlmeS1jb250ZW50LWJldHdlZW4iLCJ3LTEwMCIsIm0tMCJdLFsxLCJ2aWV3ZXJUaXRsZSIsIm10LTE3Il0sWzEsInRleHQtY2VudGVyIiwibXQtMTAiXSxbImNsck1lZGl1bSIsIiIsNCwibmdJZiJdLFsiY2xh''@;'; + put 'put ''c3MiLCJsaWJpbmZvIG0tMCBjbHItcm93Iiw0LCJuZ0lmIl0sWyJjbGFzcyIsIm5vLXRhYmxlLXNlbGVjdGVkIHBvaW50ZXItZXZlbnRzLW5vbmUiLDQsIm5nSWYiXSxbMSwibGliaW5mbyIsIm0tMCIsImNsci1yb3ciXSxbImNsYXNzIiwidGV4dC1jZW50ZXIgbS0wIHctMTAwIiw0LCJuZ0lm''@;'; + put 'put ''Il0sWzEsInRleHQtY2VudGVyIiwibS0wIiwidy0xMDAiXSxbInNoYXBlIiwicmVmcmVzaCIsMSwicmVmcmVzaC10YWJsZSIsIm0tMCIsMywiY2xpY2siXSxbMSwiY2xyLWNvbC0yIl0sWyJjbGFzcyIsIm0tMCIsNCwibmdJZiJdLFsxLCJjbHItY29sIl0sWyJjbGFzcyIsIm0tMCBmb250LWJv''@;'; + put 'put ''bGQiLDQsIm5nSWYiXSxbMSwibS0wIl0sWzEsIm0tMCIsImZvbnQtYm9sZCJdLFsxLCJuby10YWJsZS1zZWxlY3RlZCIsInBvaW50ZXItZXZlbnRzLW5vbmUiXSxbInNoYXBlIiwiaW5mby1zdGFuZGFyZCIsInNpemUiLCI2MCIsMSwiaXMtaW5mbyIsImljb24tZGMtZmlsbCJdLFsxLCJjYXJk''@;'; + put 'put ''LWJsb2NrIiwibm9EYXRhIl0sWyJzaGFwZSIsIndhcm5pbmctc3RhbmRhcmQiLCJzaXplIiwiNjAiLDEsImlzLWluZm8iXSxbImNsYXNzIiwidGV4dC1jZW50ZXIgY29sb3ItZ3JheSIsNCwibmdJZiJdLFsiaG90SWQiLCJob3RJbnN0YW5jZSIsImlkIiwiaG90VGFibGUiLCJzdHJldGNoSCIs''@;'; + put 'put ''ImFsbCIsMywibXVsdGlDb2x1bW5Tb3J0aW5nIiwidmlld3BvcnRSb3dSZW5kZXJpbmdPZmZzZXQiLCJkYXRhIiwiY29sSGVhZGVycyIsImNvbHVtbnMiLCJmaWx0ZXJzIiwiZHJvcGRvd25NZW51IiwiaGVpZ2h0IiwibW9kaWZ5Q29sV2lkdGgiLCJjZWxscyIsIm1heFJvd3MiLCJtYW51YWxD''@;'; + put 'put ''b2x1bW5SZXNpemUiLCJsaWNlbnNlS2V5Il1dLHRlbXBsYXRlOmZ1bmN0aW9uKGgsdil7aWYoMSZoJiYocnQoMCwiYXBwLXNpZGViYXIiLDApLEduKCJzY3JvbGxlZFRvQm90dG9tIixmdW5jdGlvbigpe3JldHVybiB2LmxvYWRNb3JlTGlicmFyaWVzKCl9KSxybigxLFA5dCwyLDAsImRpdiIs''@;'; + put 'put ''MSkscnQoMiwiY2xyLXRyZWUiKSxybigzLE45dCw2LDMsImNsci10cmVlLW5vZGUiLDIpLHJuKDQsUTl0LDIsMSwibmctY29udGFpbmVyIiwzKSxsdCgpLHJuKDUsSjl0LDMsMCwiZGl2Iiw0KSxsdCgpLHJ0KDYsImRpdiIsNSkscm4oNyxYOXQsMTQsMCwiZGl2Iiw2KSxybig4LEs5dCwxLDAs''@;'; + put 'put ''ImRpdiIsNykscnQoOSwiY2xyLW1vZGFsIiw4KSxHbigiY2xyTW9kYWxPcGVuQ2hhbmdlIixmdW5jdGlvbihDKXtyZXR1cm4gdi5vcGVuRG93bmxvYWQ9Q30pLHJ0KDEwLCJoMyIsOSksWXQoMTEsIkRvd25sb2FkIiksbHQoKSxydCgxMiwiZGl2IiwxMCkoMTMsImRpdiIsMTEpKDE0LCJjbHIt''@;'; + put 'put ''c2VsZWN0LWNvbnRhaW5lciIsMTIpKDE1LCJsYWJlbCIpLFl0KDE2LCJQbGVhc2UgY2hvb3NlIGRvd25sb2FkIGZvcm1hdCIpLGx0KCkscnQoMTcsInNlbGVjdCIsMTMpLEduKCJuZ01vZGVsQ2hhbmdlIixmdW5jdGlvbihDKXtyZXR1cm4gdi5kb3dubG9hZEZvcm1hdD1DfSkscnQoMTgsIm9w''@;'; + put 'put ''dGlvbiIsMTQpLFl0KDE5LCJDU1YiKSxsdCgpLHJ0KDIwLCJvcHRpb24iLDE1KSxZdCgyMSwiRGF0YWxpbmVzIChjYXJkcyBmaWxlKSIpLGx0KCkscnQoMjIsIm9wdGlvbiIsMTYpLFl0KDIzLCJEREwgKFBHU1FMIEZsYXZvdXIpIiksbHQoKSxydCgyNCwib3B0aW9uIiwxNyksWXQoMjUsIkRE''@;'; + put 'put ''TCAoU0FTIEZsYXZvdXIpIiksbHQoKSxydCgyNiwib3B0aW9uIiwxOCksWXQoMjcsIkRETCAoVFNRTCBGbGF2b3VyKSIpLGx0KCkscnQoMjgsIm9wdGlvbiIsMTkpLFl0KDI5LCJFeGNlbCAoLnhsc3gpIiksbHQoKSxydCgzMCwib3B0aW9uIiwyMCksWXQoMzEsIk1hcmtkb3duICgubWQpIiks''@;'; + put 'put ''bHQoKSgpKCkoKSgpLHJ0KDMyLCJkaXYiLDIxKSgzMywiYnV0dG9uIiwyMiksR24oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiB2Lm9wZW5Eb3dubG9hZD0hMX0pLFl0KDM0LCIgQ2FuY2VsICIpLGx0KCkscnQoMzUsImJ1dHRvbiIsMjMpLEduKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4g''@;'; + put 'put ''di5kb3dubG9hZEZvcm1hdC5pbmNsdWRlcygiRERMIik/di5kb3dubG9hZERETCgpOnYuZG93bmxvYWREYXRhKCl9KSxZdCgzNiwiIE9rICIpLGx0KCkoKSgpLHJ0KDM3LCJjbHItbW9kYWwiLDgpLEduKCJjbHJNb2RhbE9wZW5DaGFuZ2UiLGZ1bmN0aW9uKEMpe3JldHVybiB2LndlYlF1ZXJ5''@;'; + put 'put ''PUN9KSxydCgzOCwiaDMiLDkpLFl0KDM5LCIgV2ViIFF1ZXJ5IFVSTCAiKSxsdCgpLHJ0KDQwLCJkaXYiLDI0KSg0MSwiZGl2IiwyNSkoNDIsImRpdiIsMjYpKDQzLCJkaXYiLDI3KSg0NCwiZGl2IiwyOCkoNDUsInNwYW4iKSxZdCg0NiwiQ29weSB0aGUgYmVsb3cgaW50byB5b3VyIHByZWZl''@;'; + put 'put ''cnJlZCBjbGllbnQgdG9vbDoiKSxsdCgpLHJ0KDQ3LCJkaXYiLDI5KSg0OCwiZGl2IiwzMCksR24oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiB2LndlYlF1ZXJ5VGFiPSEwLHYuc2hvd1dlYlF1ZXJ5KCl9KSxDcig0OSwiaW5wdXQiLDMxKSxydCg1MCwibGFiZWwiKSxZdCg1MSwiVEFCIiks''@;'; + put 'put ''bHQoKSgpLHJ0KDUyLCJkaXYiLDMwKSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHYud2ViUXVlcnlUYWI9ITEsdi5zaG93V2ViUXVlcnkoKX0pLENyKDUzLCJpbnB1dCIsMzEpLHJ0KDU0LCJsYWJlbCIpLFl0KDU1LCJDU1YiKSxsdCgpKCkoKSgpLHJ0KDU2LCJkaXYiLDMyKSg1Nywi''@;'; + put 'put ''dGV4dGFyZWEiLDMzLDM0KSxHbigiZm9jdXMiLGZ1bmN0aW9uKEMpe3JldHVybiB2Lm9uQ2xpQ29tbWFuZEZvY3VzKEMpfSksWXQoNTksIiAgICAgICAgICAgICAgIiksbHQoKSgpLHJ0KDYwLCJkaXYiLDM1KSg2MSwiYnV0dG9uIiwzNiksR24oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiB2''@;'; + put 'put ''LmNvcHlUb0NsaXAoKX0pLFl0KDYyLCIgY29weSB0byBjbGlwYm9hcmQgIiksbHQoKSgpKCkoKSgpKCkscnQoNjMsImRpdiIsMjEpKDY0LCJidXR0b24iLDIyKSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHYud2ViUXVlcnk9ITF9KSxZdCg2NSwiIGNsb3NlICIpLGx0KCkoKSgpLHJ0''@;'; + put 'put ''KDY2LCJjbHItbW9kYWwiLDM3KSxHbigiY2xyTW9kYWxPcGVuQ2hhbmdlIixmdW5jdGlvbihDKXtyZXR1cm4gdi5maWx0ZXI9Q30pLHJ0KDY3LCJoMyIsOSksWXQoNjgsIiBGaWx0ZXIgZm9yIHRhYmxlOiIpLHJ0KDY5LCJzcGFuIiksWXQoNzApLGx0KCkoKSxydCg3MSwiZGl2IiwxMCkscm4o''@;'; + put 'put ''NzIsJDl0LDIsMCwiYXBwLXF1ZXJ5IiwzOCksbHQoKSxydCg3MywiZGl2IiwyMSkoNzQsImJ1dHRvbiIsMzkpLEduKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gdi5yZXNldEZpbHRlcigpfSksWXQoNzUsIiByZXNldCBmaWx0ZXIgIiksbHQoKSxydCg3NiwiYnV0dG9uIiw0MCksR24oImNs''@;'; + put 'put ''aWNrIixmdW5jdGlvbigpe3JldHVybiB2LmZpbHRlcj0hMSx2LnJlbW92ZVF1ZXJ5KCl9KSxZdCg3NywiIENhbmNlbCAiKSxsdCgpLHJ0KDc4LCJidXR0b24iLDQxKSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHYuc2VuZENsYXVzZSgpfSksWXQoNzksIiBPayAiKSxsdCgpKCkoKSxy''@;'; + put 'put ''dCg4MCwiY2xyLW1vZGFsIiw0MiksR24oImNsck1vZGFsT3BlbkNoYW5nZSIsZnVuY3Rpb24oQyl7cmV0dXJuIHYucXVlcnlFcnI9Q30pLHJ0KDgxLCJoMyIsNDMpLFl0KDgyLCJFcnJvciIpLGx0KCkscnQoODMsImRpdiIsMTApKDg0LCJwIiksWXQoODUpLGx0KCkoKSxydCg4NiwiZGl2Iiwy''@;'; + put 'put ''MSkoODcsImJ1dHRvbiIsNDQpLEduKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gdi5xdWVyeUVycj0hMX0pLFl0KDg4LCIgQ2FuY2VsICIpLGx0KCkscnQoODksImJ1dHRvbiIsNDUpLEduKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gdi5xdWVyeUVycj0hMX0pLFl0KDkwLCIgT2sgIiks''@;'; + put 'put ''bHQoKSgpKCkscm4oOTEscTl0LDYsMCwiZGl2Iiw0Nikscm4oOTIsakF0LDYsNSwiZGl2Iiw0NyksbHQoKSxydCg5MywiYXBwLWRhdGFzZXQtaW5mbyIsNDgpLEduKCJvcGVuQ2hhbmdlIixmdW5jdGlvbihDKXtyZXR1cm4gdi5kYXRhc2V0SW5mbz1DfSksbHQoKSksMiZoKXtjb25zdCB5PXlh''@;'; + put 'put ''KDU4KTt1dCgxKSxUdCgibmdJZiIsdi5saWJyYXJpZXNMb2FkaW5nKSx1dCgyKSxUdCgibmdJZiIsdi5saWJyYXJpZXMpLHV0KDEpLFR0KCJuZ0Zvck9mIix2LmxpYnJhcmllcyksdXQoMSksVHQoIm5nSWYiLHYubGlicmFyaWVzUGFnaW5nKSx1dCgyKSxUdCgibmdJZiIsdi5udWxsVmFyaWFi''@;'; + put 'put ''bGVzKSx1dCgxKSxUdCgibmdJZiIsdi5udWxsVmFyaWFibGVzKSx1dCgxKSxUdCgiY2xyTW9kYWxPcGVuIix2Lm9wZW5Eb3dubG9hZCkoImNsck1vZGFsU2l6ZSIsIm1kIiksdXQoOCksVHQoIm5nTW9kZWwiLHYuZG93bmxvYWRGb3JtYXQpLHV0KDE4KSxUdCgiaWQiLHYudGFibGVUaXRsZSks''@;'; + put 'put ''dXQoMiksVHQoImNsck1vZGFsT3BlbiIsdi53ZWJRdWVyeSkoImNsck1vZGFsU2l6ZSIsImxnIiksdXQoMTIpLFR0KCJjaGVja2VkIix2LndlYlF1ZXJ5VGFiKSx1dCg0KSxUdCgiY2hlY2tlZCIsIXYud2ViUXVlcnlUYWIpLHV0KDQpLEk2KCJ2YWx1ZSIsdi53ZWJRdWVyeVRleHQpLHV0KDQp''@;'; + put 'put ''LFR0KCJuZ3hDbGlwYm9hcmQiLHkpLHV0KDUpLFR0KCJjbHJNb2RhbE9wZW4iLHYuZmlsdGVyKSgiY2xyTW9kYWxTaXplIiwieGwiKSgiY2xyTW9kYWxDbG9zYWJsZSIsITEpLHV0KDQpLEppKCIgIix2LmxpYlRhYiwiICIpLHV0KDIpLFR0KCJuZ0lmIix2LmZpbHRlciksdXQoNiksVHQoImNs''@;'; + put 'put ''ckxvYWRpbmciLHYuc3VibWl0TG9hZGluZyksdXQoMiksVHQoImNsck1vZGFsT3BlbiIsdi5xdWVyeUVyciksdXQoNSksamkodi5xdWVyeUVyck1lc3NhZ2UpLHV0KDYpLFR0KCJuZ0lmIix2LmxvYWRpbmdUYWJsZVZpZXcpLHV0KDEpLFR0KCJuZ0lmIiwhdi5sb2FkaW5nVGFibGVWaWV3KSx1''@;'; + put 'put ''dCgxKSxUdCgib3BlbiIsdi5kYXRhc2V0SW5mbykoImRzbWV0YSIsdi5kc21ldGEpfX0sZGVwZW5kZW5jaWVzOltFcyxObyxKZCxpcCxEOXQscGcscTMsZWQsbTEsSWYsT2YseHMsZGcsVHMsTGMseXYsX2csWUwsd2wsb2QsYWQsZ28sWmEsdyxvdCx1cixSbyxsbyxPaSxwdixpWixyWix2dyxV''@;'; + put 'put ''TCxRTCxkWixnYSxBdGUsa0xlLGtTLFNMZSxFTGUsUjl0XSxzdHlsZXM6WyIuY2FyZFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDowO2ZsZXg6MTtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1ufWNsci10cmVlLW5vZGVbX25nY29udGVudC0lQ09NUCVdICAgYnV0dG9u''@;'; + put 'put ''W19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXB9LnRvZ2dsZS1zd2l0Y2hbX25nY29udGVudC0lQ09NUCVdICAgaW5wdXRbdHlwZT1jaGVja2JveF1bX25nY29udGVudC0lQ09NUCVdOmNoZWNrZWQgKyBsYWJlbFtfbmdjb250ZW50LSVDT01QJV06YmVmb3Jle2JvcmRlci1j''@;'; + put 'put ''b2xvcjojMzE0MzUxO2JhY2tncm91bmQtY29sb3I6IzMxNDM1MSFpbXBvcnRhbnQ7dHJhbnNpdGlvbjouMTVzIGVhc2UtaW47dHJhbnNpdGlvbi1wcm9wZXJ0eTpib3JkZXItY29sb3IsYmFja2dyb3VuZC1jb2xvcn0uaGVhZGVyLXJvd1tfbmdjb250ZW50LSVDT01QJV0gICAudGl0bGUtY29s''@;'; + put 'put ''W19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyfS5oZWFkZXItcm93W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5vcHRpb25zLWNvbFtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpmbGV4LWVuZH0uc2VhcmNoLXdy''@;'; + put 'put ''YXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgICAuaW5wdXQtd3JhcHBlcntwb3NpdGlvbjpyZWxhdGl2ZTttaW4td2lkdGg6MTcwcHh9LnNlYXJjaC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgICAgLmlucHV0LXdyYXBwZXIgY2xyLWljb24sIC5zZWFyY2gtd3JhcHBlcltfbmdjb250''@;'; + put 'put ''ZW50LSVDT01QJV0gICAgIC5pbnB1dC13cmFwcGVyIC5zcGlubmVye3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjE5cHg7dG9wOjBweH0uc2VhcmNoLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgICAuaW5wdXQtd3JhcHBlciBjbHItaWNvbntjdXJzb3I6cG9pbnRlcjtiYWNrZ3JvdW5k''@;'; + put 'put ''OndoaXRlfS5zZWFyY2gtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAgIGNsci1pbnB1dC1jb250YWluZXJ7bWFyZ2luLXRvcDotNXB4O21hcmdpbi1yaWdodDowfS5zZWFyY2gtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAgIGNsci1pbnB1dC1jb250YWluZXIgbGFiZWx7ZGlz''@;'; + put 'put ''cGxheTpub25lfS5zZWFyY2gtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAgIGNsci1jaGVja2JveC1jb250YWluZXJ7bWFyZ2luLXRvcDowfS5zZWFyY2gtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAgIGlucHV0e2JvcmRlci1ib3R0b206bm9uZTtib3JkZXI6MXB4IHNvbGlk''@;'; + put 'put ''ICM5OTl9LnNlYXJjaC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgICAgaW5wdXQ6Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24sIC5zZWFyY2gtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAgIGlucHV0Ojotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uey13ZWJraXQtYXBwZWFy''@;'; + put 'put ''YW5jZTpub25lO21hcmdpbjowfS5zZWFyY2gtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAgIGlucHV0W3R5cGU9bnVtYmVyXXstbW96LWFwcGVhcmFuY2U6dGV4dGZpZWxkfS5zd1tfbmdjb250ZW50LSVDT01QJV17bWFyZ2luOjFyZW0gMHJlbSAuNXJlbSAxcmVtfS5pbmZvQmFyW19u''@;'; + put 'put ''Z2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOjEwcHg7YmFja2dyb3VuZDojNDk1OTY3O2NvbG9yOiNmZmY7dGV4dC1hbGlnbjpjZW50ZXI7cGFkZGluZzozcHg7Zm9udC1zaXplOjE2cHh9LmZpbHRlclNpZGVbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6MjZweDttYXJnaW4tYm90''@;'; + put 'put ''dG9tOjE5cHh9Lm9wdGlvbnMtZHJvcGRvd25bX25nY29udGVudC0lQ09NUCVdICAgICBjbHItaWNvbnttYXJnaW4tcmlnaHQ6NXB4fS52aWV3ZXJUaXRsZVtfbmdjb250ZW50LSVDT01QJV17dGV4dC1hbGlnbjpjZW50ZXI7bWFyZ2luLWJvdHRvbToxNXB4fS5kcm9wZG93bi1tZW51W19uZ2Nv''@;'; + put 'put ''bnRlbnQtJUNPTVAlXXt3aWR0aDoxODBweDttYXJnaW4tdG9wOi0xOHB4O3BhZGRpbmc6MH0uZHJvcGRvd24tbWVudVtfbmdjb250ZW50LSVDT01QJV0gICAuYnRuW19uZ2NvbnRlbnQtJUNPTVAlXXt3aWR0aDoxMDAlO3RleHQtdHJhbnNmb3JtOm5vbmV9LmNhcmRGbGV4W19uZ2NvbnRlbnQt''@;'; + put 'put ''JUNPTVAlXXtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcn0ubm9EYXRhW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24taXRlbXM6Y2VudGVyO2ZsZXg6MX0uZmlsdGVyQnRu''@;'; + put 'put ''W19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kfS5lZGl0QnRuW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnR9LmJ0blZpZXdbX25nY29udGVudC0lQ09NUCVde21hcmdpbjowIWlt''@;'; + put 'put ''cG9ydGFudH0uY29udGVudC1hcmVhW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi41cmVtIWltcG9ydGFudDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1ufS5kb3dubG9hZC1zZWxlY3RbX25nY29udGVudC0lQ09NUCVdICAgICAuY2xyLXNlbGVjdC13cmFwcGVye21heC1o''@;'; + put 'put ''ZWlnaHQ6dW5zZXQhaW1wb3J0YW50fS5yZWZyZXNoLXRhYmxlW19uZ2NvbnRlbnQtJUNPTVAlXXtjdXJzb3I6cG9pbnRlcjttYXJnaW4tbGVmdDo1cHh9LmxpYmluZm9bX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MTBweCAyMHB4fWhvdC10YWJsZVtfbmdjb250ZW50LSVDT01QJV0gICAg''@;'; + put 'put ''IC5wcmltYXJ5S2V5SGVhZGVyU3R5bGV7YmFja2dyb3VuZDpyZ2JhKDQ4LDEwNywwLC40MzEzNzI1NDkpfS5uby10YWJsZS1zZWxlY3RlZFtfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZDpub25lfS53ZWItcXVlcnlbX25nY29udGVudC0lQ09NUCVde21heC1oZWlnaHQ6MzV2aH0ud2Vi''@;'; + put 'put ''LXF1ZXJ5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC53ZWItcXVlcnktdGV4dFtfbmdjb250ZW50LSVDT01QJV17bWluLWhlaWdodDoxMDBweDttYXgtaGVpZ2h0OjEwMHB4fUBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KXsuZmlsdGVyQnRuW19uZ2NvbnRlbnQtJUNPTVAlXSwg''@;'; + put 'put ''LmVkaXRCdG5bX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfX1AbWVkaWEgKG1pbi13aWR0aDogNTc2cHgpey5yb3dbX25nY29udGVudC0lQ09NUCVde21hcmdpbi1yaWdodDowcmVtO21hcmdpbi1sZWZ0OjByZW19fSJdfSksZH0pKCk7Y29u''@;'; + put 'put ''c3QgWkF0PVt7cGF0aDoiIixjb21wb25lbnQ6ZTl0LGNoaWxkcmVuOlt7cGF0aDoiIixwYXRoTWF0Y2g6ImZ1bGwiLHJlZGlyZWN0VG86ImRhdGEifSx7cGF0aDoiZGF0YSIsY29tcG9uZW50OnpuZX0se3BhdGg6ImRhdGEiLGNvbXBvbmVudDp6bmV9LHtwYXRoOiJkYXRhLzpsaWJNZW0vOmZp''@;'; + put 'put ''bHRlcklkIixjb21wb25lbnQ6em5lfSx7cGF0aDoiZGF0YS86bGliTWVtIixjb21wb25lbnQ6em5lfSx7cGF0aDoibGluZWFnZSIsY29tcG9uZW50OlpuZX0se3BhdGg6ImxpbmVhZ2UvOnRhYmxlaWQvOmRpcmVjdGlvbiIsY29tcG9uZW50OlpuZX0se3BhdGg6ImxpbmVhZ2UvY29sdW1uLzpj''@;'; + put 'put ''b2x1cmkvOmRpcmVjdGlvbiIsY29tcG9uZW50OlpuZX0se3BhdGg6ImxpbmVhZ2UvY29sdW1uLzpjb2x1cmkvOmRpcmVjdGlvbi86cmVsb2FkIixjb21wb25lbnQ6Wm5lfSx7cGF0aDoibWV0YWRhdGEiLGNvbXBvbmVudDpMbWV9LHtwYXRoOiJtZXRhZGF0YS9vYmplY3QvOm9iamVjdElEIixj''@;'; + put 'put ''b21wb25lbnQ6TG1lfSx7cGF0aDoibWV0YWRhdGEvb2JqZWN0LzpvYmplY3RJRC86b2JqZWN0TmFtZSIsY29tcG9uZW50OkxtZX0se3BhdGg6InVzZXJuYXYiLGNvbXBvbmVudDpxdnQsY2hpbGRyZW46W3twYXRoOiIiLHBhdGhNYXRjaDoiZnVsbCIscmVkaXJlY3RUbzoiZ3JvdXBzIn0se3Bh''@;'; + put 'put ''dGg6InVzZXJzIixjb21wb25lbnQ6T0xlfSx7cGF0aDoidXNlcnMvOnVyaSIsY29tcG9uZW50Ok9MZX0se3BhdGg6Imdyb3VwcyIsY29tcG9uZW50OkRMZX0se3BhdGg6Imdyb3Vwcy86dXJpIixjb21wb25lbnQ6RExlfSx7cGF0aDoicm9sZXMiLGNvbXBvbmVudDpMTGV9LHtwYXRoOiJyb2xl''@;'; + put 'put ''cy86dXJpIixjb21wb25lbnQ6TExlfV19XX1dO2xldCB6QXQ9KCgpPT57Y2xhc3MgZHt9cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1bW9kPWNvKHt0eXBlOmR9KSxkLlx1MDI3NWluaj1iMCh7aW1wb3J0czpbWGguZm9yQ2hpbGQoWkF0''@;'; + put 'put ''KSxYaF19KSxkfSkoKSxHQXQ9KCgpPT57Y2xhc3MgZHt9cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1bW9kPWNvKHt0eXBlOmR9KSxkLlx1MDI3NWluaj1iMCh7aW1wb3J0czpbYmEsekF0LEw5dCxuZCx0TyxoNmUuZm9yUm9vdCgpLHlt''@;'; + put 'put ''ZSxIbmUsTm5lXX0pLGR9KSgpO2NvbnN0IFlBdD1YaC5mb3JSb290KFt7cGF0aDoiIixyZWRpcmVjdFRvOiJob21lIixwYXRoTWF0Y2g6ImZ1bGwifSx7cGF0aDoidmlldyIsbG9hZENoaWxkcmVuOigpPT5HQXR9LHtwYXRoOiJhcHByb3ZlIixjb21wb25lbnQ6QVZlLGNoaWxkcmVuOlt7cGF0''@;'; + put 'put ''aDoiIixwYXRoTWF0Y2g6ImZ1bGwiLHJlZGlyZWN0VG86InRvYXBwcm92ZSJ9LHtwYXRoOiJ0b2FwcHJvdmUiLGNvbXBvbmVudDpQd2V9LHtwYXRoOiJhcHByb3ZlRGV0Lzp0YWJsZUlkIixjb21wb25lbnQ6TndlfSx7cGF0aDoic3VibWl0dGVkIixjb21wb25lbnQ6VndlfV19LHtwYXRoOiJs''@;'; + put 'put ''aWNlbnNpbmcvOmFjdGlvbiIsY29tcG9uZW50OkdqZSxjYW5BY3RpdmF0ZTpbamhlXSxjYW5EZWFjdGl2YXRlOltqaGVdfSx7cGF0aDoiaG9tZSIsY29tcG9uZW50OldIZX0se3BhdGg6ImVkaXRvciIsbG9hZENoaWxkcmVuOigpPT51N3R9LHtwYXRoOiJzdGFnZSIsbG9hZENoaWxkcmVuOigp''@;'; + put 'put ''PT5nZXR9LHtwYXRoOiJhYm91dCIsY29tcG9uZW50OmZIZX0se3BhdGg6ImFjdGlvbnMvOmxpYmRzLzpkc2lkIixjb21wb25lbnQ6ek5lfSx7cGF0aDoiaGlzdG9yeSIsY29tcG9uZW50OnJWZX0se3BhdGg6InN1Ym1pdHRlZCIsY29tcG9uZW50OlZ3ZX0se3BhdGg6ImRlcGxveSIsY29tcG9u''@;'; + put 'put ''ZW50Olp3ZX0se3BhdGg6ImRlcGxveS9tYW51YWxkZXBsb3kiLGNvbXBvbmVudDpad2V9LHtwYXRoOiIqKiIsY29tcG9uZW50OmlWZX1dLHt1c2VIYXNoOiEwLHJlbGF0aXZlTGlua1Jlc29sdXRpb246ImxlZ2FjeSJ9KTtsZXQgVUF0PSgoKT0+e2NsYXNzIGR7fXJldHVybiBkLlx1MDI3NWZh''@;'; + put 'put ''Yz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1MDI3NW1vZD1jbyh7dHlwZTpkLGJvb3RzdHJhcDpbZlBlXX0pLGQuXHUwMjc1aW5qPWIwKHtwcm92aWRlcnM6W1I3LGtnLFB3ZSxqaGVdLGltcG9ydHM6W2NIZSwkVyxuZCxQMmUsakksWUF0LEhuZSx0Tyx5bWUsTm5lXX0pLGR9''@;'; + put 'put ''KSgpOyhmdW5jdGlvbiBndSgpe3hUPSExfSkoKSxPaWUoKS5ib290c3RyYXBNb2R1bGUoVUF0KX0sMTE0MDooWGUsSmUsTCk9Pnt2YXIgbWU9TCgxNzE1NikuZGVmYXVsdDtzZWxmLFhlLmV4cG9ydHM9KCgpPT57dmFyIEI9ezI2NTY6ZnVuY3Rpb24oVSxRLFopeyJ1c2Ugc3RyaWN0Ijt2YXIg''@;'; + put 'put ''aWU9dGhpcyYmdGhpcy5fX2ltcG9ydERlZmF1bHR8fGZ1bmN0aW9uKFcpe3JldHVybiBXJiZXLl9fZXNNb2R1bGU/Vzp7ZGVmYXVsdDpXfX07T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLFEuZGVjb2RlVG9rZW49US5oYXNUb2tlbkV4cGlyZWQ9US5p''@;'; + put 'put ''c1JlZnJlc2hUb2tlbkV4cGlyaW5nPVEuaXNBY2Nlc3NUb2tlbkV4cGlyaW5nPXZvaWQgMDt2YXIgYWU9aWUoWig2MjQ1KSk7ZnVuY3Rpb24gWShXLE4pe3JldHVybigwLGFlLmRlZmF1bHQpKFcpLmV4cC0obmV3IERhdGUpLnZhbHVlT2YoKS8xZTM8PU59US5pc0FjY2Vzc1Rva2VuRXhwaXJp''@;'; + put 'put ''bmc9ZnVuY3Rpb24oVyxOKXtyZXR1cm4gdm9pZCAwPT09TiYmKE49MzYwMCksIVd8fFkoVyxOKX0sUS5pc1JlZnJlc2hUb2tlbkV4cGlyaW5nPWZ1bmN0aW9uKFcsTil7cmV0dXJuIHZvaWQgMD09PU4mJihOPTMwKSwhV3x8WShXLE4pfSxRLmhhc1Rva2VuRXhwaXJlZD1mdW5jdGlvbihXKXty''@;'; + put 'put ''ZXR1cm4hV3x8WShXLDApfSxRLmRlY29kZVRva2VuPWZ1bmN0aW9uKFcpe3ZhciBOO3RyeXtOPSgwLGFlLmRlZmF1bHQpKFcpfWNhdGNoKGVlKXt0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgdG9rZW4gc3VwcGxpZWQuIil9cmV0dXJuIE59fSw2Nzk5OmZ1bmN0aW9uKFUsUSxaKXsidXNlIHN0''@;'; + put 'put ''cmljdCI7dmFyIGllPXRoaXMmJnRoaXMuX19jcmVhdGVCaW5kaW5nfHwoT2JqZWN0LmNyZWF0ZT9mdW5jdGlvbihZLFcsTixlZSl7dm9pZCAwPT09ZWUmJihlZT1OKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoWSxlZSx7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gV1tOXX19''@;'; + put 'put ''KX06ZnVuY3Rpb24oWSxXLE4sZWUpe3ZvaWQgMD09PWVlJiYoZWU9TiksWVtlZV09V1tOXX0pLGFlPXRoaXMmJnRoaXMuX19leHBvcnRTdGFyfHxmdW5jdGlvbihZLFcpe2Zvcih2YXIgTiBpbiBZKSJkZWZhdWx0Ij09PU58fE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChX''@;'; + put 'put ''LE4pfHxpZShXLFksTil9O09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxhZShaKDI2NTYpLFEpfSwzMjU5OmZ1bmN0aW9uKFUsUSl7InVzZSBzdHJpY3QiO3ZhciBaPXRoaXMmJnRoaXMuX19hc3NpZ258fGZ1bmN0aW9uKCl7cmV0dXJuIFo9T2JqZWN0''@;'; + put 'put ''LmFzc2lnbnx8ZnVuY3Rpb24oaWUpe2Zvcih2YXIgYWUsWT0xLFc9YXJndW1lbnRzLmxlbmd0aDtZPFc7WSsrKWZvcih2YXIgTiBpbiBhZT1hcmd1bWVudHNbWV0pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGFlLE4pJiYoaWVbTl09YWVbTl0pO3JldHVybiBpZX0sWi5h''@;'; + put 'put ''cHBseSh0aGlzLGFyZ3VtZW50cyl9O09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxRLnByZWZpeE1lc3NhZ2U9dm9pZCAwLFEucHJlZml4TWVzc2FnZT1mdW5jdGlvbihpZSxhZSl7aWYoIm9iamVjdCI9PXR5cGVvZiBpZSlpZihpZS5oYXNPd25Qcm9w''@;'; + put 'put ''ZXJ0eSgibWVzc2FnZSIpKWllLm1lc3NhZ2U9YWUraWUubWVzc2FnZTtlbHNle2lmKCFpZS5oYXNPd25Qcm9wZXJ0eSgiYm9keSIpKXJldHVybiBaKFooe30saWUpLHttZXNzYWdlOmFlfSk7aWYoIm9iamVjdCI9PXR5cGVvZiBpZS5ib2R5JiYoaWUubWVzc2FnZT1pZS5ib2R5Lm1lc3NhZ2U/''@;'; + put 'put ''YWUraWUuYm9keS5tZXNzYWdlOmFlKSwic3RyaW5nIj09dHlwZW9mIGllLmJvZHkpe3ZhciBZPXZvaWQgMDt0cnl7WT1KU09OLnBhcnNlKGllLmJvZHkpfWNhdGNoKFcpe3JldHVybiBpZS5tZXNzYWdlPWFlLGllfXJldHVybiBZLm1lc3NhZ2U9WS5tZXNzYWdlP2FlK1kubWVzc2FnZTphZSxp''@;'; + put 'put ''ZS5ib2R5PVksaWV9fXJldHVybiJzdHJpbmciPT10eXBlb2YgaWUmJihpZT1hZStpZSksaWV9fSw5Nzc4OmZ1bmN0aW9uKFUsUSxaKXsidXNlIHN0cmljdCI7dmFyIGllPXRoaXMmJnRoaXMuX19jcmVhdGVCaW5kaW5nfHwoT2JqZWN0LmNyZWF0ZT9mdW5jdGlvbihZLFcsTixlZSl7dm9pZCAw''@;'; + put 'put ''PT09ZWUmJihlZT1OKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoWSxlZSx7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gV1tOXX19KX06ZnVuY3Rpb24oWSxXLE4sZWUpe3ZvaWQgMD09PWVlJiYoZWU9TiksWVtlZV09V1tOXX0pLGFlPXRoaXMmJnRoaXMuX19leHBvcnRTdGFy''@;'; + put 'put ''fHxmdW5jdGlvbihZLFcpe2Zvcih2YXIgTiBpbiBZKSJkZWZhdWx0Ij09PU58fE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChXLE4pfHxpZShXLFksTil9O09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxhZShaKDMyNTkpLFEpLGFl''@;'; + put 'put ''KFooMTA2NCksUSl9LDEwNjQ6ZnVuY3Rpb24oVSxRLFopeyJ1c2Ugc3RyaWN0Ijt2YXIgaWUsYWU9dGhpcyYmdGhpcy5fX2V4dGVuZHN8fChpZT1mdW5jdGlvbihxLEope3JldHVybihpZT1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVu''@;'; + put 'put ''Y3Rpb24oc2Usb2Upe3NlLl9fcHJvdG9fXz1vZX18fGZ1bmN0aW9uKHNlLG9lKXtmb3IodmFyIGNlIGluIG9lKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvZSxjZSkmJihzZVtjZV09b2VbY2VdKX0pKHEsSil9LGZ1bmN0aW9uKHEsSil7aWYoImZ1bmN0aW9uIiE9dHlw''@;'; + put 'put ''ZW9mIEomJm51bGwhPT1KKXRocm93IG5ldyBUeXBlRXJyb3IoIkNsYXNzIGV4dGVuZHMgdmFsdWUgIitTdHJpbmcoSikrIiBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsIik7ZnVuY3Rpb24gc2UoKXt0aGlzLmNvbnN0cnVjdG9yPXF9aWUocSxKKSxxLnByb3RvdHlwZT1udWxsPT09Sj9P''@;'; + put 'put ''YmplY3QuY3JlYXRlKEopOihzZS5wcm90b3R5cGU9Si5wcm90b3R5cGUsbmV3IHNlKX0pLFk9dGhpcyYmdGhpcy5fX3JlYWR8fGZ1bmN0aW9uKHEsSil7dmFyIHNlPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJnFbU3ltYm9sLml0ZXJhdG9yXTtpZighc2UpcmV0dXJuIHE7dmFyIG9lLGNl''@;'; + put 'put ''LGRlPXNlLmNhbGwocSksdmU9W107dHJ5e2Zvcig7KHZvaWQgMD09PUp8fEotLSA+MCkmJiEob2U9ZGUubmV4dCgpKS5kb25lOyl2ZS5wdXNoKG9lLnZhbHVlKX1jYXRjaChBZSl7Y2U9e2Vycm9yOkFlfX1maW5hbGx5e3RyeXtvZSYmIW9lLmRvbmUmJihzZT1kZS5yZXR1cm4pJiZzZS5jYWxs''@;'; + put 'put ''KGRlKX1maW5hbGx5e2lmKGNlKXRocm93IGNlLmVycm9yfX1yZXR1cm4gdmV9LFc9dGhpcyYmdGhpcy5fX3NwcmVhZEFycmF5fHxmdW5jdGlvbihxLEosc2Upe2lmKHNlfHwyPT09YXJndW1lbnRzLmxlbmd0aClmb3IodmFyIG9lLGNlPTAsZGU9Si5sZW5ndGg7Y2U8ZGU7Y2UrKykhb2UmJmNl''@;'; + put 'put ''IGluIEp8fChvZXx8KG9lPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKEosMCxjZSkpLG9lW2NlXT1KW2NlXSk7cmV0dXJuIHEuY29uY2F0KG9lfHxBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChKKSl9O09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9''@;'; + put 'put ''KSxRLlNlcnZlclR5cGVFcnJvcj12b2lkIDA7dmFyIE49WigzOTAwKSxlZT1mdW5jdGlvbihxKXtmdW5jdGlvbiBKKHNlKXt2b2lkIDA9PT1zZSYmKHNlPVtdKTt2YXIgb2U9dGhpcyxjZT0oc2U9VyhbXSxZKG5ldyBTZXQoc2UpKSwhMSkpLmxlbmd0aD9zZS5qb2luKCIsICIpLnRyaW0oKTpb''@;'; + put 'put ''Ti5TZXJ2ZXJUeXBlLlNhc1ZpeWEsTi5TZXJ2ZXJUeXBlLlNhczksTi5TZXJ2ZXJUeXBlLlNhc2pzXS5qb2luKCIsICIpLnRyaW0oKTtyZXR1cm4gY2U9Y2UucmVwbGFjZSgvLFxzKFteLF0qKSQvLCIgYW5kICQxIiksKG9lPXEuY2FsbCh0aGlzLCJJbnZhbGlkIHNlcnZlciB0eXBlOiB2YWxp''@;'; + put 'put ''ZCBvcHRpb24iLmNvbmNhdCgxIT09c2UubGVuZ3RoPyJzIjoiIiwiICIpLmNvbmNhdCgxIT09c2UubGVuZ3RoPyJhcmUiOiJpcyIsIiAiKS5jb25jYXQoY2UpKXx8dGhpcykubmFtZT0iU2VydmVyVHlwZUVycm9yIixPYmplY3Quc2V0UHJvdG90eXBlT2Yob2UsSi5wcm90b3R5cGUpLG9lfXJl''@;'; + put 'put ''dHVybiBhZShKLHEpLEp9KEVycm9yKTtRLlNlcnZlclR5cGVFcnJvcj1lZX0sMzkwNjpmdW5jdGlvbihVLFEsWil7InVzZSBzdHJpY3QiO3ZhciBpZT10aGlzJiZ0aGlzLl9fYXdhaXRlcnx8ZnVuY3Rpb24oc2Usb2UsY2UsZGUpe3JldHVybiBuZXcoY2V8fChjZT1Qcm9taXNlKSkoZnVuY3Rp''@;'; + put 'put ''b24odmUsQWUpe2Z1bmN0aW9uIGtlKFRlKXt0cnl7SWUoZGUubmV4dChUZSkpfWNhdGNoKEVlKXtBZShFZSl9fWZ1bmN0aW9uIFNlKFRlKXt0cnl7SWUoZGUudGhyb3coVGUpKX1jYXRjaChFZSl7QWUoRWUpfX1mdW5jdGlvbiBJZShUZSl7dmFyIEVlO1RlLmRvbmU/dmUoVGUudmFsdWUpOihF''@;'; + put 'put ''ZT1UZS52YWx1ZSxFZSBpbnN0YW5jZW9mIGNlP0VlOm5ldyBjZShmdW5jdGlvbihoZSl7aGUoRWUpfSkpLnRoZW4oa2UsU2UpfUllKChkZT1kZS5hcHBseShzZSxvZXx8W10pKS5uZXh0KCkpfSl9LGFlPXRoaXMmJnRoaXMuX19nZW5lcmF0b3J8fGZ1bmN0aW9uKHNlLG9lKXt2YXIgY2UsZGUs''@;'; + put 'put ''dmUsQWUsa2U9e2xhYmVsOjAsc2VudDpmdW5jdGlvbigpe2lmKDEmdmVbMF0pdGhyb3cgdmVbMV07cmV0dXJuIHZlWzFdfSx0cnlzOltdLG9wczpbXX07cmV0dXJuIEFlPXtuZXh0OlNlKDApLHRocm93OlNlKDEpLHJldHVybjpTZSgyKX0sImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmKEFl''@;'; + put 'put ''W1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pLEFlO2Z1bmN0aW9uIFNlKEllKXtyZXR1cm4gZnVuY3Rpb24oVGUpe3JldHVybiBmdW5jdGlvbihFZSl7aWYoY2UpdGhyb3cgbmV3IFR5cGVFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLiIpO2Zv''@;'; + put 'put ''cig7a2U7KXRyeXtpZihjZT0xLGRlJiYodmU9MiZFZVswXT9kZS5yZXR1cm46RWVbMF0/ZGUudGhyb3d8fCgodmU9ZGUucmV0dXJuKSYmdmUuY2FsbChkZSksMCk6ZGUubmV4dCkmJiEodmU9dmUuY2FsbChkZSxFZVsxXSkpLmRvbmUpcmV0dXJuIHZlO3N3aXRjaChkZT0wLHZlJiYoRWU9WzIm''@;'; + put 'put ''RWVbMF0sdmUudmFsdWVdKSxFZVswXSl7Y2FzZSAwOmNhc2UgMTp2ZT1FZTticmVhaztjYXNlIDQ6cmV0dXJuIGtlLmxhYmVsKysse3ZhbHVlOkVlWzFdLGRvbmU6ITF9O2Nhc2UgNTprZS5sYWJlbCsrLGRlPUVlWzFdLEVlPVswXTtjb250aW51ZTtjYXNlIDc6RWU9a2Uub3BzLnBvcCgpLGtl''@;'; + put 'put ''LnRyeXMucG9wKCk7Y29udGludWU7ZGVmYXVsdDppZighKCh2ZT0odmU9a2UudHJ5cykubGVuZ3RoPjAmJnZlW3ZlLmxlbmd0aC0xXSl8fDYhPT1FZVswXSYmMiE9PUVlWzBdKSl7a2U9MDtjb250aW51ZX1pZigzPT09RWVbMF0mJighdmV8fEVlWzFdPnZlWzBdJiZFZVsxXTx2ZVszXSkpe2tl''@;'; + put 'put ''LmxhYmVsPUVlWzFdO2JyZWFrfWlmKDY9PT1FZVswXSYma2UubGFiZWw8dmVbMV0pe2tlLmxhYmVsPXZlWzFdLHZlPUVlO2JyZWFrfWlmKHZlJiZrZS5sYWJlbDx2ZVsyXSl7a2UubGFiZWw9dmVbMl0sa2Uub3BzLnB1c2goRWUpO2JyZWFrfXZlWzJdJiZrZS5vcHMucG9wKCksa2UudHJ5cy5w''@;'; + put 'put ''b3AoKTtjb250aW51ZX1FZT1vZS5jYWxsKHNlLGtlKX1jYXRjaChoZSl7RWU9WzYsaGVdLGRlPTB9ZmluYWxseXtjZT12ZT0wfWlmKDUmRWVbMF0pdGhyb3cgRWVbMV07cmV0dXJue3ZhbHVlOkVlWzBdP0VlWzFdOnZvaWQgMCxkb25lOiEwfX0oW0llLFRlXSl9fX0sWT10aGlzJiZ0aGlzLl9f''@;'; + put 'put ''cmVhZHx8ZnVuY3Rpb24oc2Usb2Upe3ZhciBjZT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZzZVtTeW1ib2wuaXRlcmF0b3JdO2lmKCFjZSlyZXR1cm4gc2U7dmFyIGRlLHZlLEFlPWNlLmNhbGwoc2UpLGtlPVtdO3RyeXtmb3IoOyh2b2lkIDA9PT1vZXx8b2UtLSA+MCkmJiEoZGU9QWUu''@;'; + put 'put ''bmV4dCgpKS5kb25lOylrZS5wdXNoKGRlLnZhbHVlKX1jYXRjaChTZSl7dmU9e2Vycm9yOlNlfX1maW5hbGx5e3RyeXtkZSYmIWRlLmRvbmUmJihjZT1BZS5yZXR1cm4pJiZjZS5jYWxsKEFlKX1maW5hbGx5e2lmKHZlKXRocm93IHZlLmVycm9yfX1yZXR1cm4ga2V9LFc9dGhpcyYmdGhpcy5f''@;'; + put 'put ''X3NwcmVhZEFycmF5fHxmdW5jdGlvbihzZSxvZSxjZSl7aWYoY2V8fDI9PT1hcmd1bWVudHMubGVuZ3RoKWZvcih2YXIgZGUsdmU9MCxBZT1vZS5sZW5ndGg7dmU8QWU7dmUrKykhZGUmJnZlIGluIG9lfHwoZGV8fChkZT1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChvZSwwLHZlKSksZGVb''@;'; + put 'put ''dmVdPW9lW3ZlXSk7cmV0dXJuIHNlLmNvbmNhdChkZXx8QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwob2UpKX0sTj10aGlzJiZ0aGlzLl9faW1wb3J0RGVmYXVsdHx8ZnVuY3Rpb24oc2Upe3JldHVybiBzZSYmc2UuX19lc01vZHVsZT9zZTp7ZGVmYXVsdDpzZX19O09iamVjdC5kZWZpbmVQ''@;'; + put 'put ''cm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxRLnVwZGF0ZUNzdj1RLmNyZWF0ZUNzdj1RLnJlYWRDc3Y9dm9pZCAwO3ZhciBlZT1aKDE1NTkpLHE9TihaKDc1NjUpKTtRLnJlYWRDc3Y9ZnVuY3Rpb24oc2Upe3JldHVybiBpZSh2b2lkIDAsdm9pZCAwLHZvaWQgMCxmdW5jdGlv''@;'; + put 'put ''bigpe3JldHVybiBhZSh0aGlzLGZ1bmN0aW9uKG9lKXtzd2l0Y2gob2UubGFiZWwpe2Nhc2UgMDpyZXR1cm5bNCwoMCxlZS5yZWFkRmlsZSkoc2UpXTtjYXNlIDE6cmV0dXJuWzIsb2Uuc2VudCgpLnNwbGl0KCJcbiIpLmZpbHRlcihmdW5jdGlvbihjZSl7cmV0dXJuIGNlLmxlbmd0aH0pLm1h''@;'; + put 'put ''cChmdW5jdGlvbihjZSl7cmV0dXJuIGNlLnNwbGl0KCIsIil9KV19fSl9KX0sUS5jcmVhdGVDc3Y9ZnVuY3Rpb24oc2Usb2UsY2Upe3JldHVybiBpZSh2b2lkIDAsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBkZTtyZXR1cm4gYWUodGhpcyxmdW5jdGlvbih2ZSl7c3dpdGNoKHZlLmxh''@;'; + put 'put ''YmVsKXtjYXNlIDA6cmV0dXJuIGRlPSgwLHEuZGVmYXVsdCkob2Use2hlYWRlcjoxPT09b2UubGVuZ3RoLGNvbHVtbnM6Y2V9KSxbNCwoMCxlZS5jcmVhdGVGaWxlKShzZSxkZSldO2Nhc2UgMTpyZXR1cm4gdmUuc2VudCgpLFsyXX19KX0pfSxRLnVwZGF0ZUNzdj1mdW5jdGlvbihzZSxvZSxj''@;'; + put 'put ''ZSxkZSl7cmV0dXJuIGllKHZvaWQgMCx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIHZlLEFlLGtlO3JldHVybiBhZSh0aGlzLGZ1bmN0aW9uKFNlKXtzd2l0Y2goU2UubGFiZWwpe2Nhc2UgMDpyZXR1cm5bNCxKKHNlLG9lLGNlLGRlKV07Y2FzZSAxOnJldHVybiB2ZT1TZS5zZW50KCks''@;'; + put 'put ''ZGUmJihBZT0wPT09dmUubGVuZ3RoPzE6dmUubGVuZ3RoLChrZT1jZS5maW5kSW5kZXgoZnVuY3Rpb24oSWUpe3JldHVybiBJZT09PWRlfSkpPi0xP29lLnNwbGljZShrZSwwLEFlKTooY2Uuc3BsaWNlKDAsMCxkZSksb2Uuc3BsaWNlKDAsMCxBZSkpKSx2ZS5wdXNoKG9lKSxbNCwoMCxRLmNy''@;'; + put 'put ''ZWF0ZUNzdikoc2UsdmUsY2UpXTtjYXNlIDI6cmV0dXJuIFNlLnNlbnQoKSxbMl19fSl9KX07dmFyIEo9ZnVuY3Rpb24oc2Usb2UsY2UsZGUpe3JldHVybiBpZSh2b2lkIDAsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciB2ZSxBZSxrZSxTZTtyZXR1cm4gYWUodGhpcyxmdW5jdGlvbihJ''@;'; + put 'put ''ZSl7c3dpdGNoKEllLmxhYmVsKXtjYXNlIDA6aWYob2UubGVuZ3RoIT09Y2UubGVuZ3RoKXtpZihvZS5sZW5ndGg+Y2UubGVuZ3RoKXRocm93IG5ldyBFcnJvcigiYSByZWNvcmQgY2FuIG5vdCBoYXZlIG1vcmUgZmllbGRzIHRoYW4gcHJvdmlkZWQgY29sdW1ucyIpO2lmKCFkZXx8b2UubGVu''@;'; + put 'put ''Z3RoKzEhPT1jZS5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKCJhIHJlY29yZCBjYW4gbm90IGhhdmUgbGVzcyBmaWVsZHMgdGhhbiBwcm92aWRlZCBjb2x1bW5zIil9ZWxzZSBpZihkZSYmY2UuaW5jbHVkZXMoZGUpKXRocm93IG5ldyBFcnJvcigiYSByZWNvcmQgY2FuIG5vdCBoYXZlIG1vcmUg''@;'; + put 'put ''ZmllbGRzIHRoYW4gcHJvdmlkZWQgY29sdW1ucyIpO3JldHVybls0LCgwLFEucmVhZENzdikoc2UpLmNhdGNoKGZ1bmN0aW9uKFRlKXtyZXR1cm5bXX0pXTtjYXNlIDE6aWYodmU9SWUuc2VudCgpLEFlPXZlWzBdKXtpZihjZS5sZW5ndGg+QWUubGVuZ3RoKXRocm93IG5ldyBFcnJvcigibnVt''@;'; + put 'put ''YmVyIG9mIHByb3ZpZGVkIGNvbHVtbnMgYXJlIGdyZWF0ZXIgdGhhbiBudW1iZXIgb2YgZXhpc3RpbmcgY29sdW1ucyIpO2lmKGNlLmxlbmd0aDxBZS5sZW5ndGgpe2lmKCFkZXx8Y2UubGVuZ3RoKzEhPT1BZS5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKCJudW1iZXIgb2YgcHJvdmlkZWQgY29s''@;'; + put 'put ''dW1ucyBhcmUgbGVzcyB0aGFuIG51bWJlciBvZiBleGlzdGluZyBjb2x1bW5zIik7aWYoa2U9QWUuZmluZEluZGV4KGZ1bmN0aW9uKFRlKXtyZXR1cm4gVGU9PT1kZX0pLFNlPVcoW10sWShjZSksITEpLCEoa2U+LTEpKXRocm93IG5ldyBFcnJvcigicHJvdmlkZWQgY29sdW1ucyBkb2VzIG5v''@;'; + put 'put ''dCBtYXRjaCBleGlzdGluZyBjb2x1bW5zIik7aWYoU2Uuc3BsaWNlKGtlLDAsZGUpLEpTT04uc3RyaW5naWZ5KGNlKSE9PUpTT04uc3RyaW5naWZ5KFNlKSl0aHJvdyBuZXcgRXJyb3IoInByb3ZpZGVkIGNvbHVtbnMgZG9lcyBub3QgbWF0Y2ggZXhpc3RpbmcgY29sdW1ucyIpfWVsc2V7aWYo''@;'; + put 'put ''SlNPTi5zdHJpbmdpZnkoY2UpIT09SlNPTi5zdHJpbmdpZnkoQWUpKXRocm93IG5ldyBFcnJvcigicHJvdmlkZWQgY29sdW1ucyBkb2VzIG5vdCBtYXRjaCBleGlzdGluZyBjb2x1bW5zIik7aWYoZGUmJiFjZS5pbmNsdWRlcyhkZSkpdGhyb3cgbmV3IEVycm9yKCJjYW4gbm90IGFkZCBuZXcg''@;'; + put 'put ''aWQgdG8gZXhpc3RpbmcgZGF0YSIpfX1yZXR1cm5bMix2ZV19fSl9KX19LDE1NTk6ZnVuY3Rpb24oVSxRLFopeyJ1c2Ugc3RyaWN0Ijt2YXIgaWU9dGhpcyYmdGhpcy5fX2NyZWF0ZUJpbmRpbmd8fChPYmplY3QuY3JlYXRlP2Z1bmN0aW9uKEVlLGhlLE8seil7dm9pZCAwPT09eiYmKHo9Tyks''@;'; + put 'put ''T2JqZWN0LmRlZmluZVByb3BlcnR5KEVlLHose2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGhlW09dfX0pfTpmdW5jdGlvbihFZSxoZSxPLHope3ZvaWQgMD09PXomJih6PU8pLEVlW3pdPWhlW09dfSksYWU9dGhpcyYmdGhpcy5fX3NldE1vZHVsZURlZmF1bHR8fChPYmpl''@;'; + put 'put ''Y3QuY3JlYXRlP2Z1bmN0aW9uKEVlLGhlKXtPYmplY3QuZGVmaW5lUHJvcGVydHkoRWUsImRlZmF1bHQiLHtlbnVtZXJhYmxlOiEwLHZhbHVlOmhlfSl9OmZ1bmN0aW9uKEVlLGhlKXtFZS5kZWZhdWx0PWhlfSksWT10aGlzJiZ0aGlzLl9faW1wb3J0U3Rhcnx8ZnVuY3Rpb24oRWUpe2lmKEVl''@;'; + put 'put ''JiZFZS5fX2VzTW9kdWxlKXJldHVybiBFZTt2YXIgaGU9e307aWYobnVsbCE9RWUpZm9yKHZhciBPIGluIEVlKSJkZWZhdWx0IiE9PU8mJk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChFZSxPKSYmaWUoaGUsRWUsTyk7cmV0dXJuIGFlKGhlLEVlKSxoZX0sVz10aGlzJiZ0''@;'; + put 'put ''aGlzLl9fYXdhaXRlcnx8ZnVuY3Rpb24oRWUsaGUsTyx6KXtyZXR1cm4gbmV3KE98fChPPVByb21pc2UpKShmdW5jdGlvbihuZSx0ZSl7ZnVuY3Rpb24geChUKXt0cnl7Vih6Lm5leHQoVCkpfWNhdGNoKFMpe3RlKFMpfX1mdW5jdGlvbiBQKFQpe3RyeXtWKHoudGhyb3coVCkpfWNhdGNoKFMp''@;'; + put 'put ''e3RlKFMpfX1mdW5jdGlvbiBWKFQpe3ZhciBTO1QuZG9uZT9uZShULnZhbHVlKTooUz1ULnZhbHVlLFMgaW5zdGFuY2VvZiBPP1M6bmV3IE8oZnVuY3Rpb24oRil7RihTKX0pKS50aGVuKHgsUCl9Vigoej16LmFwcGx5KEVlLGhlfHxbXSkpLm5leHQoKSl9KX0sTj10aGlzJiZ0aGlzLl9fZ2Vu''@;'; + put 'put ''ZXJhdG9yfHxmdW5jdGlvbihFZSxoZSl7dmFyIE8seixuZSx0ZSx4PXtsYWJlbDowLHNlbnQ6ZnVuY3Rpb24oKXtpZigxJm5lWzBdKXRocm93IG5lWzFdO3JldHVybiBuZVsxXX0sdHJ5czpbXSxvcHM6W119O3JldHVybiB0ZT17bmV4dDpQKDApLHRocm93OlAoMSkscmV0dXJuOlAoMil9LCJm''@;'; + put 'put ''dW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJih0ZVtTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSx0ZTtmdW5jdGlvbiBQKFYpe3JldHVybiBmdW5jdGlvbihUKXtyZXR1cm4gZnVuY3Rpb24oUyl7aWYoTyl0aHJvdyBuZXcgVHlwZUVycm9yKCJHZW5lcmF0b3IgaXMg''@;'; + put 'put ''YWxyZWFkeSBleGVjdXRpbmcuIik7Zm9yKDt4Oyl0cnl7aWYoTz0xLHomJihuZT0yJlNbMF0/ei5yZXR1cm46U1swXT96LnRocm93fHwoKG5lPXoucmV0dXJuKSYmbmUuY2FsbCh6KSwwKTp6Lm5leHQpJiYhKG5lPW5lLmNhbGwoeixTWzFdKSkuZG9uZSlyZXR1cm4gbmU7c3dpdGNoKHo9MCxu''@;'; + put 'put ''ZSYmKFM9WzImU1swXSxuZS52YWx1ZV0pLFNbMF0pe2Nhc2UgMDpjYXNlIDE6bmU9UzticmVhaztjYXNlIDQ6cmV0dXJuIHgubGFiZWwrKyx7dmFsdWU6U1sxXSxkb25lOiExfTtjYXNlIDU6eC5sYWJlbCsrLHo9U1sxXSxTPVswXTtjb250aW51ZTtjYXNlIDc6Uz14Lm9wcy5wb3AoKSx4LnRy''@;'; + put 'put ''eXMucG9wKCk7Y29udGludWU7ZGVmYXVsdDppZighKChuZT0obmU9eC50cnlzKS5sZW5ndGg+MCYmbmVbbmUubGVuZ3RoLTFdKXx8NiE9PVNbMF0mJjIhPT1TWzBdKSl7eD0wO2NvbnRpbnVlfWlmKDM9PT1TWzBdJiYoIW5lfHxTWzFdPm5lWzBdJiZTWzFdPG5lWzNdKSl7eC5sYWJlbD1TWzFd''@;'; + put 'put ''O2JyZWFrfWlmKDY9PT1TWzBdJiZ4LmxhYmVsPG5lWzFdKXt4LmxhYmVsPW5lWzFdLG5lPVM7YnJlYWt9aWYobmUmJngubGFiZWw8bmVbMl0pe3gubGFiZWw9bmVbMl0seC5vcHMucHVzaChTKTticmVha31uZVsyXSYmeC5vcHMucG9wKCkseC50cnlzLnBvcCgpO2NvbnRpbnVlfVM9aGUuY2Fs''@;'; + put 'put ''bChFZSx4KX1jYXRjaChGKXtTPVs2LEZdLHo9MH1maW5hbGx5e089bmU9MH1pZig1JlNbMF0pdGhyb3cgU1sxXTtyZXR1cm57dmFsdWU6U1swXT9TWzFdOnZvaWQgMCxkb25lOiEwfX0oW1YsVF0pfX19LGVlPXRoaXMmJnRoaXMuX19yZWFkfHxmdW5jdGlvbihFZSxoZSl7dmFyIE89ImZ1bmN0''@;'; + put 'put ''aW9uIj09dHlwZW9mIFN5bWJvbCYmRWVbU3ltYm9sLml0ZXJhdG9yXTtpZighTylyZXR1cm4gRWU7dmFyIHosbmUsdGU9Ty5jYWxsKEVlKSx4PVtdO3RyeXtmb3IoOyh2b2lkIDA9PT1oZXx8aGUtLSA+MCkmJiEoej10ZS5uZXh0KCkpLmRvbmU7KXgucHVzaCh6LnZhbHVlKX1jYXRjaChQKXtu''@;'; + put 'put ''ZT17ZXJyb3I6UH19ZmluYWxseXt0cnl7eiYmIXouZG9uZSYmKE89dGUucmV0dXJuKSYmTy5jYWxsKHRlKX1maW5hbGx5e2lmKG5lKXRocm93IG5lLmVycm9yfX1yZXR1cm4geH0scT10aGlzJiZ0aGlzLl9fc3ByZWFkQXJyYXl8fGZ1bmN0aW9uKEVlLGhlLE8pe2lmKE98fDI9PT1hcmd1bWVu''@;'; + put 'put ''dHMubGVuZ3RoKWZvcih2YXIgeixuZT0wLHRlPWhlLmxlbmd0aDtuZTx0ZTtuZSsrKSF6JiZuZSBpbiBoZXx8KHp8fCh6PUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGhlLDAsbmUpKSx6W25lXT1oZVtuZV0pO3JldHVybiBFZS5jb25jYXQoenx8QXJyYXkucHJvdG90eXBlLnNsaWNlLmNh''@;'; + put 'put ''bGwoaGUpKX0sSj10aGlzJiZ0aGlzLl9faW1wb3J0RGVmYXVsdHx8ZnVuY3Rpb24oRWUpe3JldHVybiBFZSYmRWUuX19lc01vZHVsZT9FZTp7ZGVmYXVsdDpFZX19O09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxRLmlzVGVzdEZpbGU9US50ZXN0Rmls''@;'; + put 'put ''ZVJlZ0V4cD1RLmNyZWF0ZVdyaXRlU3RyZWFtPVEuZ2V0UmVhbFBhdGg9US5iYXNlNjRFbmNvZGVGaWxlPVEuYmFzZTY0RW5jb2RlSW1hZ2VGaWxlPVEucGF0aFNlcEVzY2FwZWQ9US5jb3B5PVEubW92ZUZpbGU9US5nZXRSZWxhdGl2ZVBhdGg9US51bmlmeUZpbGVQYXRoPVEuZGVsZXRlRm9s''@;'; + put 'put ''ZGVyPVEuZGVsZXRlRmlsZT1RLmNyZWF0ZUZpbGU9US5jcmVhdGVGb2xkZXI9US5saXN0RmlsZXNBbmRTdWJGb2xkZXJzSW5Gb2xkZXI9US5saXN0U3ViRm9sZGVyc0luRm9sZGVyPVEubGlzdEluaUZpbGVzSW5Gb2xkZXI9US5saXN0RmlsZXNJbkZvbGRlcj1RLnJlYWRGaWxlQmluYXJ5PVEu''@;'; + put 'put ''cmVhZEZpbGU9US5pc0ZvbGRlcj1RLmZvbGRlckV4aXN0cz1RLmZpbGVFeGlzdHM9dm9pZCAwO3ZhciBzZT1KKFooNTY3NCkpLG9lPUooWig5ODQpKSxjZT1KKFooMjUyMCkpLGRlPVooNjI2NiksdmU9WShaKDI5NzUpKTtmdW5jdGlvbiBBZShFZSl7cmV0dXJuIFcodGhpcyx2b2lkIDAsdm9p''@;'; + put 'put ''ZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIE4odGhpcyxmdW5jdGlvbihoZSl7cmV0dXJuWzIsc2UuZGVmYXVsdC5wcm9taXNlcy5hY2Nlc3MoRWUsc2UuZGVmYXVsdC5jb25zdGFudHMuRl9PSykudGhlbihmdW5jdGlvbigpe3JldHVybiEwfSkuY2F0Y2goZnVuY3Rpb24oKXtyZXR1cm4hMX0pXX0p''@;'; + put 'put ''fSl9ZnVuY3Rpb24ga2UoRWUpe3JldHVybiBXKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBOKHRoaXMsZnVuY3Rpb24oaGUpe3JldHVyblsyLHNlLmRlZmF1bHQucHJvbWlzZXMucmVhZEZpbGUoRWUpXX0pfSl9ZnVuY3Rpb24gU2UoRWUpe3JldHVybiBXKHRoaXMsdm9p''@;'; + put 'put ''ZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBOKHRoaXMsZnVuY3Rpb24oaGUpe3JldHVyblsyLHNlLmRlZmF1bHQucHJvbWlzZXMucmVhZGRpcihFZSx7d2l0aEZpbGVUeXBlczohMH0pLnRoZW4oZnVuY3Rpb24oTyl7cmV0dXJuIE8uZmlsdGVyKGZ1bmN0aW9uKHope3JldHVybiF6Lmlz''@;'; + put 'put ''RGlyZWN0b3J5KCl9KS5tYXAoZnVuY3Rpb24oeil7cmV0dXJuIHoubmFtZX0pfSldfSl9KX1mdW5jdGlvbiBJZShFZSl7cmV0dXJuIFcodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIE4odGhpcyxmdW5jdGlvbihoZSl7cmV0dXJuWzIsc2UuZGVmYXVsdC5wcm9taXNlcy5t''@;'; + put 'put ''a2RpcihFZSx7cmVjdXJzaXZlOiEwfSldfSl9KX1mdW5jdGlvbiBUZShFZSxoZSxPKXt2b2lkIDA9PT1oZSYmKGhlPWNlLmRlZmF1bHQuc2VwKSx2b2lkIDA9PT1PJiYoTz0iLyIpO3ZhciB6PXt1bml4OiIvIix3aW46IlxcIn0sbmU9T2JqZWN0LmtleXMoeikuZmluZChmdW5jdGlvbih4KXty''@;'; + put 'put ''ZXR1cm4gelt4XT09PWhlfSk7aWYobmUpe3ZhciB0ZT16W09iamVjdC5rZXlzKHopLmZpbmQoZnVuY3Rpb24oeCl7cmV0dXJuIHghPT1uZX0pXTtyZXR1cm4gbmU9eltuZV0sRWUuc3BsaXQodGUpLmpvaW4obmUpfXJldHVybiBFZS5zcGxpdChPKS5qb2luKGhlKX1RLmZpbGVFeGlzdHM9ZnVu''@;'; + put 'put ''Y3Rpb24oRWUpe3JldHVybiBXKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBOKHRoaXMsZnVuY3Rpb24oaGUpe3JldHVyblsyLHNlLmRlZmF1bHQucHJvbWlzZXMuYWNjZXNzKEVlLHNlLmRlZmF1bHQuY29uc3RhbnRzLkZfT0spLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4h''@;'; + put 'put ''MH0pLmNhdGNoKGZ1bmN0aW9uKCl7cmV0dXJuITF9KV19KX0pfSxRLmZvbGRlckV4aXN0cz1BZSxRLmlzRm9sZGVyPWZ1bmN0aW9uKEVlKXtyZXR1cm4gVyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gTih0aGlzLGZ1bmN0aW9uKGhlKXtyZXR1cm5bMixzZS5kZWZhdWx0''@;'; + put 'put ''LnByb21pc2VzLmxzdGF0KEVlKS50aGVuKGZ1bmN0aW9uKE8pe3JldHVybiBPLmlzRGlyZWN0b3J5KCl9KS5jYXRjaChmdW5jdGlvbigpe3JldHVybiExfSldfSl9KX0sUS5yZWFkRmlsZT1mdW5jdGlvbihFZSxoZSl7cmV0dXJuIHZvaWQgMD09PWhlJiYoaGU9InV0ZjgiKSxXKHRoaXMsdm9p''@;'; + put 'put ''ZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBOKHRoaXMsZnVuY3Rpb24oTyl7cmV0dXJuWzIsc2UuZGVmYXVsdC5wcm9taXNlcy5yZWFkRmlsZShFZSxoZSldfSl9KX0sUS5yZWFkRmlsZUJpbmFyeT1rZSxRLmxpc3RGaWxlc0luRm9sZGVyPVNlLFEubGlzdEluaUZpbGVzSW5Gb2xkZXI9''@;'; + put 'put ''ZnVuY3Rpb24oRWUpe3JldHVybiBXKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBOKHRoaXMsZnVuY3Rpb24oaGUpe3N3aXRjaChoZS5sYWJlbCl7Y2FzZSAwOnJldHVybls0LFNlKEVlKV07Y2FzZSAxOnJldHVyblsyLGhlLnNlbnQoKS5maWx0ZXIoZnVuY3Rpb24oTyl7''@;'; + put 'put ''cmV0dXJuIE8uZW5kc1dpdGgoIi5pbmkiKX0pXX19KX0pfSxRLmxpc3RTdWJGb2xkZXJzSW5Gb2xkZXI9ZnVuY3Rpb24oRWUpe3JldHVybiBXKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBOKHRoaXMsZnVuY3Rpb24oaGUpe3JldHVyblsyLHNlLmRlZmF1bHQucHJvbWlz''@;'; + put 'put ''ZXMucmVhZGRpcihFZSx7d2l0aEZpbGVUeXBlczohMH0pLnRoZW4oZnVuY3Rpb24oTyl7cmV0dXJuIE8uZmlsdGVyKGZ1bmN0aW9uKHope3JldHVybiB6LmlzRGlyZWN0b3J5KCl9KS5tYXAoZnVuY3Rpb24oeil7cmV0dXJuIHoubmFtZX0pfSldfSl9KX0sUS5saXN0RmlsZXNBbmRTdWJGb2xk''@;'; + put 'put ''ZXJzSW5Gb2xkZXI9ZnVuY3Rpb24gRWUoaGUsTyl7cmV0dXJuIHZvaWQgMD09PU8mJihPPSEwKSxXKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciB6PXRoaXM7cmV0dXJuIE4odGhpcyxmdW5jdGlvbihuZSl7cmV0dXJuWzIsc2UuZGVmYXVsdC5wcm9taXNlcy5yZWFkZGlyKGhl''@;'; + put 'put ''LHt3aXRoRmlsZVR5cGVzOiEwfSkudGhlbihmdW5jdGlvbih0ZSl7cmV0dXJuIFcoeix2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIHgsUD10aGlzO3JldHVybiBOKHRoaXMsZnVuY3Rpb24oVil7c3dpdGNoKFYubGFiZWwpe2Nhc2UgMDpyZXR1cm4gTyYmdGUuZmlsdGVyKGZ1bmN0aW9u''@;'; + put 'put ''KFQpe3JldHVybiBULmlzRGlyZWN0b3J5KCl9KS5sZW5ndGg/KHg9W10sWzQsKDAsZGUuYXN5bmNGb3JFYWNoKSh0ZS5maWx0ZXIoZnVuY3Rpb24oVCl7cmV0dXJuIFQuaXNEaXJlY3RvcnkoKX0pLGZ1bmN0aW9uKFQpe3JldHVybiBXKFAsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBT''@;'; + put 'put ''LEYseWU7cmV0dXJuIE4odGhpcyxmdW5jdGlvbihDZSl7c3dpdGNoKENlLmxhYmVsKXtjYXNlIDA6cmV0dXJuIEY9Y2UuZGVmYXVsdC5qb2luKGhlLFM9VC5uYW1lKSx5ZT1bcShbXSxlZSh4KSwhMSldLFs0LEVlKEYpXTtjYXNlIDE6cmV0dXJuIHg9cS5hcHBseSh2b2lkIDAseWUuY29uY2F0''@;'; + put 'put ''KFtlZS5hcHBseSh2b2lkIDAsW0NlLnNlbnQoKS5tYXAoZnVuY3Rpb24oRGUpe3JldHVybiBjZS5kZWZhdWx0LmpvaW4oUyxEZSl9KV0pLCExXSkpLFsyXX19KX0pfSldKTpbMywyXTtjYXNlIDE6cmV0dXJuIFYuc2VudCgpLFsyLHEocShbXSxlZSh0ZS5maWx0ZXIoZnVuY3Rpb24oVCl7cmV0''@;'; + put 'put ''dXJuIVQuaXNEaXJlY3RvcnkoKX0pLm1hcChmdW5jdGlvbihUKXtyZXR1cm4gVC5uYW1lfSkpLCExKSxlZSh4KSwhMSldO2Nhc2UgMjpyZXR1cm5bMix0ZS5tYXAoZnVuY3Rpb24oVCl7cmV0dXJuIFQubmFtZX0pXX19KX0pfSldfSl9KX0sUS5jcmVhdGVGb2xkZXI9SWUsUS5jcmVhdGVGaWxl''@;'; + put 'put ''PWZ1bmN0aW9uKEVlLGhlLE8pe3JldHVybiBXKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciB6LG5lO3JldHVybiBOKHRoaXMsZnVuY3Rpb24odGUpe3N3aXRjaCh0ZS5sYWJlbCl7Y2FzZSAwOnJldHVybihFZT1UZShFZSkpLnNwbGl0KGNlLmRlZmF1bHQuc2VwKS5sZW5ndGg+''@;'; + put 'put ''MT8oKHo9RWUuc3BsaXQoY2UuZGVmYXVsdC5zZXApKS5wb3AoKSxbNCxBZShuZT16LmpvaW4oY2UuZGVmYXVsdC5zZXApKV0pOlszLDNdO2Nhc2UgMTpyZXR1cm4gdGUuc2VudCgpP1szLDNdOls0LEllKG5lKV07Y2FzZSAyOnRlLnNlbnQoKSx0ZS5sYWJlbD0zO2Nhc2UgMzpyZXR1cm5bMixz''@;'; + put 'put ''ZS5kZWZhdWx0LnByb21pc2VzLndyaXRlRmlsZShFZSxoZSxPKV19fSl9KX0sUS5kZWxldGVGaWxlPWZ1bmN0aW9uKEVlKXtyZXR1cm4gVyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gTih0aGlzLGZ1bmN0aW9uKGhlKXtyZXR1cm5bMixzZS5kZWZhdWx0LnJlbW92ZShF''@;'; + put 'put ''ZSldfSl9KX0sUS5kZWxldGVGb2xkZXI9ZnVuY3Rpb24oRWUpe3JldHVybiBXKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBOKHRoaXMsZnVuY3Rpb24oaGUpe3JldHVyblsyLG5ldyBQcm9taXNlKGZ1bmN0aW9uKE8seil7KDAsb2UuZGVmYXVsdCkoRWUse30sZnVuY3Rp''@;'; + put 'put ''b24obmUpe3JldHVybiBuZT96KG5lKTpPKCl9KX0pXX0pfSl9LFEudW5pZnlGaWxlUGF0aD1UZSxRLmdldFJlbGF0aXZlUGF0aD1mdW5jdGlvbihFZSxoZSl7dmFyIE89RWUuc3BsaXQoY2UuZGVmYXVsdC5zZXApLHo9aGUuc3BsaXQoY2UuZGVmYXVsdC5zZXApLG5lPVtdLHRlPVtdO08uZm9y''@;'; + put 'put ''RWFjaChmdW5jdGlvbihULFMpe3ZvaWQgMCE9PXpbU10mJk9bU109PT16W1NdP25lLnB1c2goVCk6VCYmdGUucHVzaChUKX0pO3ZhciB4PW5lLmpvaW4oY2UuZGVmYXVsdC5zZXApLFA9bmV3IFJlZ0V4cCgiXiIuY29uY2F0KGNlLmRlZmF1bHQuc2VwLnJlcGxhY2UoL1xcL2csIlxcXFwiKSkp''@;'; + put 'put ''LFY9bmV3IFJlZ0V4cCgiIi5jb25jYXQoY2UuZGVmYXVsdC5zZXAucmVwbGFjZSgvXFwvZywiXFxcXCIpLCIkIikpO3JldHVybih0ZS5sZW5ndGg/Ii4uIi5jb25jYXQoY2UuZGVmYXVsdC5zZXApLnJlcGVhdCh0ZS5sZW5ndGgpOiIuIi5jb25jYXQoY2UuZGVmYXVsdC5zZXApKStoZS5yZXBs''@;'; + put 'put ''YWNlKHgsIiIpLnJlcGxhY2UoUCwiIikucmVwbGFjZShWLCIiKX0sUS5tb3ZlRmlsZT1mdW5jdGlvbihFZSxoZSl7cmV0dXJuIFcodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIE4odGhpcyxmdW5jdGlvbihPKXtyZXR1cm5bMixzZS5kZWZhdWx0LnByb21pc2VzLnJlbmFt''@;'; + put 'put ''ZShFZSxoZSldfSl9KX0sUS5jb3B5PWZ1bmN0aW9uKEVlLGhlKXtyZXR1cm4gVyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gTih0aGlzLGZ1bmN0aW9uKE8pe3JldHVyblsyLHNlLmRlZmF1bHQuY29weShFZSxoZSldfSl9KX0sUS5wYXRoU2VwRXNjYXBlZD1jZS5kZWZh''@;'; + put 'put ''dWx0LnNlcC5yZXBsYWNlKC9cXC9nLCJcXFxcIiksUS5iYXNlNjRFbmNvZGVJbWFnZUZpbGU9ZnVuY3Rpb24oRWUpe3JldHVybiBXKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBOKHRoaXMsZnVuY3Rpb24oaGUpe3JldHVyblsyLGtlKEVlKS50aGVuKGZ1bmN0aW9uKE8p''@;'; + put 'put ''e3ZhciB6PWNlLmRlZmF1bHQuZXh0bmFtZShFZSkuc3Vic3RyKDEpfHwicG5nIjtyZXR1cm4ic3ZnIj09PXomJih6PSJzdmcreG1sIiksImRhdGE6aW1hZ2UvIit6KyI7YmFzZTY0LCIrTy50b1N0cmluZygiYmFzZTY0Iil9KV19KX0pfSxRLmJhc2U2NEVuY29kZUZpbGU9ZnVuY3Rpb24oRWUp''@;'; + put 'put ''e3JldHVybiBXKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBOKHRoaXMsZnVuY3Rpb24oaGUpe3JldHVyblsyLHNlLmRlZmF1bHQucHJvbWlzZXMucmVhZEZpbGUoRWUse2VuY29kaW5nOiJiYXNlNjQifSldfSl9KX0sUS5nZXRSZWFsUGF0aD1mdW5jdGlvbihFZSl7cmV0''@;'; + put 'put ''dXJuIHNlLmRlZmF1bHQucmVhbHBhdGhTeW5jKEVlKX0sUS5jcmVhdGVXcml0ZVN0cmVhbT1mdW5jdGlvbihFZSl7cmV0dXJuIFcodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIE4odGhpcyxmdW5jdGlvbihoZSl7c3dpdGNoKGhlLmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQs''@;'; + put 'put ''dmUuZmlsZUV4aXN0cyhFZSldO2Nhc2UgMTpyZXR1cm4gaGUuc2VudCgpP1syLHNlLmRlZmF1bHQuY3JlYXRlV3JpdGVTdHJlYW0oRWUse2ZsYWdzOiJhIn0pXTpbNCx2ZS5jcmVhdGVGaWxlKEVlLCIiKV07Y2FzZSAyOnJldHVybiBoZS5zZW50KCksWzIsc2UuZGVmYXVsdC5jcmVhdGVXcml0''@;'; + put 'put ''ZVN0cmVhbShFZSx7ZmxhZ3M6ImEifSldfX0pfSl9LFEudGVzdEZpbGVSZWdFeHA9L1wudGVzdFwuKFxkK1wuKT9zYXMkL2ksUS5pc1Rlc3RGaWxlPWZ1bmN0aW9uKEVlKXtyZXR1cm4gUS50ZXN0RmlsZVJlZ0V4cC50ZXN0KEVlKX19LDU2MjY6ZnVuY3Rpb24oVSxRLFopeyJ1c2Ugc3RyaWN0''@;'; + put 'put ''Ijt2YXIgaWU9dGhpcyYmdGhpcy5fX2ltcG9ydERlZmF1bHR8fGZ1bmN0aW9uKFcpe3JldHVybiBXJiZXLl9fZXNNb2R1bGU/Vzp7ZGVmYXVsdDpXfX07T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLFEuZ2V0QWJzb2x1dGVQYXRoPXZvaWQgMDt2YXIg''@;'; + put 'put ''YWU9aWUoWigyNTIwKSksWT1pZShaKDc0MzUpKTtRLmdldEFic29sdXRlUGF0aD1mdW5jdGlvbihXLE4pe3JldHVybiBhZS5kZWZhdWx0LmlzQWJzb2x1dGUoVyl8fC9efi8uZXhlYyhXKT9hZS5kZWZhdWx0Lm5vcm1hbGl6ZShXLnJlcGxhY2UoL15+LyxZLmRlZmF1bHQuaG9tZWRpcigpKSk6''@;'; + put 'put ''YWUuZGVmYXVsdC5qb2luKE4sVyl9fSwyOTc1OmZ1bmN0aW9uKFUsUSxaKXsidXNlIHN0cmljdCI7dmFyIGllPXRoaXMmJnRoaXMuX19jcmVhdGVCaW5kaW5nfHwoT2JqZWN0LmNyZWF0ZT9mdW5jdGlvbihOLGVlLHEsSil7dm9pZCAwPT09SiYmKEo9cSksT2JqZWN0LmRlZmluZVByb3BlcnR5''@;'; + put 'put ''KE4sSix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZWVbcV19fSl9OmZ1bmN0aW9uKE4sZWUscSxKKXt2b2lkIDA9PT1KJiYoSj1xKSxOW0pdPWVlW3FdfSksYWU9dGhpcyYmdGhpcy5fX2V4cG9ydFN0YXJ8fGZ1bmN0aW9uKE4sZWUpe2Zvcih2YXIgcSBpbiBOKSJkZWZh''@;'; + put 'put ''dWx0Ij09PXF8fE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlZSxxKXx8aWUoZWUsTixxKX07T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLFEucmVhZENzdj1RLmNyZWF0ZUNzdj1RLnVwZGF0ZUNzdj1RLnRlc3RGaWxlUmVnRXhw''@;'; + put 'put ''PVEuaXNUZXN0RmlsZT1RLmdldFJlYWxQYXRoPVEuYmFzZTY0RW5jb2RlRmlsZT1RLmJhc2U2NEVuY29kZUltYWdlRmlsZT1RLmNvcHk9US5wYXRoU2VwRXNjYXBlZD1RLm1vdmVGaWxlPVEudW5pZnlGaWxlUGF0aD1RLmdldFJlbGF0aXZlUGF0aD1RLmRlbGV0ZUZvbGRlcj1RLmRlbGV0ZUZp''@;'; + put 'put ''bGU9US5jcmVhdGVXcml0ZVN0cmVhbT1RLmNyZWF0ZUZvbGRlcj1RLmNyZWF0ZUZpbGU9US5saXN0RmlsZXNBbmRTdWJGb2xkZXJzSW5Gb2xkZXI9US5saXN0U3ViRm9sZGVyc0luRm9sZGVyPVEubGlzdEluaUZpbGVzSW5Gb2xkZXI9US5saXN0RmlsZXNJbkZvbGRlcj1RLnJlYWRGaWxlQmlu''@;'; + put 'put ''YXJ5PVEucmVhZEZpbGU9US5pc0ZvbGRlcj1RLmZvbGRlckV4aXN0cz1RLmZpbGVFeGlzdHM9dm9pZCAwO3ZhciBZPVooMTU1OSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsImZpbGVFeGlzdHMiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBZLmZpbGVFeGlzdHN9fSks''@;'; + put 'put ''T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsImZvbGRlckV4aXN0cyIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFkuZm9sZGVyRXhpc3RzfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJpc0ZvbGRlciIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJu''@;'; + put 'put ''IFkuaXNGb2xkZXJ9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KFEsInJlYWRGaWxlIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gWS5yZWFkRmlsZX19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwicmVhZEZpbGVCaW5hcnkiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5j''@;'; + put 'put ''dGlvbigpe3JldHVybiBZLnJlYWRGaWxlQmluYXJ5fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJsaXN0RmlsZXNJbkZvbGRlciIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFkubGlzdEZpbGVzSW5Gb2xkZXJ9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KFEsImxp''@;'; + put 'put ''c3RJbmlGaWxlc0luRm9sZGVyIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gWS5saXN0SW5pRmlsZXNJbkZvbGRlcn19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwibGlzdFN1YkZvbGRlcnNJbkZvbGRlciIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0''@;'; + put 'put ''dXJuIFkubGlzdFN1YkZvbGRlcnNJbkZvbGRlcn19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwibGlzdEZpbGVzQW5kU3ViRm9sZGVyc0luRm9sZGVyIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gWS5saXN0RmlsZXNBbmRTdWJGb2xkZXJzSW5Gb2xkZXJ9fSksT2Jq''@;'; + put 'put ''ZWN0LmRlZmluZVByb3BlcnR5KFEsImNyZWF0ZUZpbGUiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBZLmNyZWF0ZUZpbGV9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KFEsImNyZWF0ZUZvbGRlciIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFku''@;'; + put 'put ''Y3JlYXRlRm9sZGVyfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJjcmVhdGVXcml0ZVN0cmVhbSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFkuY3JlYXRlV3JpdGVTdHJlYW19fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KFEsImRlbGV0ZUZpbGUiLHtlbnVtZXJh''@;'; + put 'put ''YmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBZLmRlbGV0ZUZpbGV9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KFEsImRlbGV0ZUZvbGRlciIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFkuZGVsZXRlRm9sZGVyfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJn''@;'; + put 'put ''ZXRSZWxhdGl2ZVBhdGgiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBZLmdldFJlbGF0aXZlUGF0aH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwidW5pZnlGaWxlUGF0aCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFkudW5pZnlGaWxlUGF0''@;'; + put 'put ''aH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwibW92ZUZpbGUiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBZLm1vdmVGaWxlfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJwYXRoU2VwRXNjYXBlZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0''@;'; + put 'put ''dXJuIFkucGF0aFNlcEVzY2FwZWR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KFEsImNvcHkiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBZLmNvcHl9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KFEsImJhc2U2NEVuY29kZUltYWdlRmlsZSIse2VudW1lcmFibGU6ITAs''@;'; + put 'put ''Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFkuYmFzZTY0RW5jb2RlSW1hZ2VGaWxlfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJiYXNlNjRFbmNvZGVGaWxlIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gWS5iYXNlNjRFbmNvZGVGaWxlfX0pLE9iamVjdC5kZWZpbmVQ''@;'; + put 'put ''cm9wZXJ0eShRLCJnZXRSZWFsUGF0aCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFkuZ2V0UmVhbFBhdGh9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KFEsImlzVGVzdEZpbGUiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBZLmlzVGVzdEZpbGV9''@;'; + put 'put ''fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KFEsInRlc3RGaWxlUmVnRXhwIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gWS50ZXN0RmlsZVJlZ0V4cH19KTt2YXIgVz1aKDM5MDYpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJ1cGRhdGVDc3YiLHtlbnVtZXJhYmxlOiEw''@;'; + put 'put ''LGdldDpmdW5jdGlvbigpe3JldHVybiBXLnVwZGF0ZUNzdn19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwiY3JlYXRlQ3N2Iix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gVy5jcmVhdGVDc3Z9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KFEsInJlYWRDc3YiLHtlbnVt''@;'; + put 'put ''ZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBXLnJlYWRDc3Z9fSksYWUoWig1NjI2KSxRKX0sMjc3NzooVSxRLFopPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxRLm5ld0xpbmU9US5jYXBpdGFsaXplRmlyc3RD''@;'; + put 'put ''aGFyPVEuc2FuaXRpemVTcGVjaWFsQ2hhcnM9US5wYWRXaXRoTnVtYmVyPXZvaWQgMDt2YXIgaWU9Wig1MzA2KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwicGFkV2l0aE51bWJlciIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGllLnBhZFdpdGhOdW1iZXJ9fSk7dmFy''@;'; + put 'put ''IGFlPVooOTAxNyk7T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsInNhbml0aXplU3BlY2lhbENoYXJzIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gYWUuc2FuaXRpemVTcGVjaWFsQ2hhcnN9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KFEsImNhcGl0YWxpemVGaXJzdENo''@;'; + put 'put ''YXIiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBhZS5jYXBpdGFsaXplRmlyc3RDaGFyfX0pO3ZhciBZPVooMTYyOCk7T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIm5ld0xpbmUiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBZLm5ld0xpbmV9fSl9''@;'; + put 'put ''LDUzMDY6KFUsUSk9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLFEucGFkV2l0aE51bWJlcj12b2lkIDAsUS5wYWRXaXRoTnVtYmVyPWZ1bmN0aW9uKFosaWUpe3JldHVybiB2b2lkIDA9PT1pZSYmKGllPTApLFo+OT9aOiIi''@;'; + put 'put ''LmNvbmNhdChpZSkuY29uY2F0KFopfX0sMTYyODooVSxRLFopPT57InVzZSBzdHJpY3QiO3ZhciBpZT1aKDQxNTUpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxRLm5ld0xpbmU9dm9pZCAwLFEubmV3TGluZT1mdW5jdGlvbigpe3JldHVybiJ3aW4z''@;'; + put 'put ''MiI9PT1pZS5wbGF0Zm9ybT8iXFxyXFxuIjoiXFxuIn19LDkwMTc6KFUsUSk9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLFEuY2FwaXRhbGl6ZUZpcnN0Q2hhcj1RLnNhbml0aXplU3BlY2lhbENoYXJzPXZvaWQgMCxRLnNh''@;'; + put 'put ''bml0aXplU3BlY2lhbENoYXJzPWZ1bmN0aW9uKFope3JldHVybiBaLnJlcGxhY2UoL1tcdTAwMWJcdTAwOWJdW1soKSM7P10qKD86WzAtOV17MSw0fSg/OjtbMC05XXswLDR9KSopP1swLTlBLU9SWmNmLW5xcnk9PjxdL2csIiIpfSxRLmNhcGl0YWxpemVGaXJzdENoYXI9ZnVuY3Rpb24oWil7''@;'; + put 'put ''cmV0dXJuIFouY2hhckF0KDApLnRvVXBwZXJDYXNlKCkrWi5zbGljZSgxKX19LDY0Njc6ZnVuY3Rpb24oVSxRLFopeyJ1c2Ugc3RyaWN0Ijt2YXIgaWU9dGhpcyYmdGhpcy5fX2ltcG9ydERlZmF1bHR8fGZ1bmN0aW9uKFkpe3JldHVybiBZJiZZLl9fZXNNb2R1bGU/WTp7ZGVmYXVsdDpZfX07''@;'; + put 'put ''T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLFEuaXNTcGVjaWFsTWlzc2luZz1RLmNob2ljZVZhbGlkYXRvcj1RLmNvbmZpcm1hdGlvblZhbGlkYXRvcj1RLnVybFZhbGlkYXRvcj12b2lkIDA7dmFyIGFlPWllKFooNDgxKSk7US51cmxWYWxpZGF0b3I9''@;'; + put 'put ''ZnVuY3Rpb24oWSxXKXtyZXR1cm4hIWFlLmRlZmF1bHQuaXNIdHRwVXJpKFkpfHwhIWFlLmRlZmF1bHQuaXNIdHRwc1VyaShZKXx8IiI9PT1ZfHxXfSxRLmNvbmZpcm1hdGlvblZhbGlkYXRvcj1mdW5jdGlvbihZKXtyZXR1cm4hMD09PVl8fCExPT09WX0sUS5jaG9pY2VWYWxpZGF0b3I9ZnVu''@;'; + put 'put ''Y3Rpb24oWSxXLE4pe3JldHVybiBZPjAmJlk8PVd8fE59LFEuaXNTcGVjaWFsTWlzc2luZz1mdW5jdGlvbihZKXtyZXR1cm4oInN0cmluZyIhPXR5cGVvZiBZfHwhWS5pbmNsdWRlcygiLi4iKSkmJm5ldyBSZWdFeHAoIl4oXFwuKT9bYS16Xy5dezF9JCIsImkiKS50ZXN0KFkpfX0sNzc1Nzoo''@;'; + put 'put ''VSxRLFopPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxRLmdlbmVyYXRlVGltZXN0YW1wPVEudGltZXN0YW1wVG9ZWVlZTU1EREhITU1TUz12b2lkIDA7dmFyIGllPVooMTMwMik7T2JqZWN0LmRlZmluZVByb3BlcnR5KFEs''@;'; + put 'put ''InRpbWVzdGFtcFRvWVlZWU1NRERISE1NU1MiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBpZS50aW1lc3RhbXBUb1lZWVlNTURESEhNTVNTfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJnZW5lcmF0ZVRpbWVzdGFtcCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0''@;'; + put 'put ''aW9uKCl7cmV0dXJuIGllLmdlbmVyYXRlVGltZXN0YW1wfX0pfSwxMzAyOihVLFEsWik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLFEuZ2VuZXJhdGVUaW1lc3RhbXA9US50aW1lc3RhbXBUb1lZWVlNTURESEhNTVNTPXZv''@;'; + put 'put ''aWQgMDt2YXIgaWU9WigyNzc3KTtRLnRpbWVzdGFtcFRvWVlZWU1NRERISE1NU1M9ZnVuY3Rpb24oYWUpe3ZvaWQgMD09PWFlJiYoYWU9RGF0ZS5ub3coKSk7dmFyIFk9bmV3IERhdGUoYWUpO3JldHVybltZLmdldEZ1bGxZZWFyKCksKDAsaWUucGFkV2l0aE51bWJlcikoWS5nZXRNb250aCgp''@;'; + put 'put ''KzEpLCgwLGllLnBhZFdpdGhOdW1iZXIpKFkuZ2V0RGF0ZSgpKV0uam9pbigiLyIpKyIgIitbKDAsaWUucGFkV2l0aE51bWJlcikoWS5nZXRIb3VycygpKSwoMCxpZS5wYWRXaXRoTnVtYmVyKShZLmdldE1pbnV0ZXMoKSksKDAsaWUucGFkV2l0aE51bWJlcikoWS5nZXRTZWNvbmRzKCkpXS5q''@;'; + put 'put ''b2luKCI6Iil9LFEuZ2VuZXJhdGVUaW1lc3RhbXA9ZnVuY3Rpb24oYWUsWSl7dm9pZCAwPT09YWUmJihhZT0iIik7dmFyIFc9bmV3IERhdGUsTj1bVy5nZXRVVENGdWxsWWVhcigpLFcuZ2V0VVRDTW9udGgoKSsxLFcuZ2V0VVRDRGF0ZSgpLFcuZ2V0VVRDSG91cnMoKSxXLmdldFVUQ01pbnV0''@;'; + put 'put ''ZXMoKSxXLmdldFVUQ1NlY29uZHMoKV07cmV0dXJuIE49Ti5tYXAoZnVuY3Rpb24oZWUpe3JldHVybigwLGllLnBhZFdpdGhOdW1iZXIpKGVlKX0pLFkmJmFlJiZZPE4ubGVuZ3RoJiZZPj0wJiZOLnNwbGljZShZLDAsYWUpLE4uam9pbihZPyIiOmFlKX19LDgyMzk6KFUsUSk9PnsidXNlIHN0''@;'; + put 'put ''cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pfSwyNDI3OihVLFEpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KX0sMTg5OihVLFEpPT57InVzZSBzdHJpY3QiO09iamVjdC5k''@;'; + put 'put ''ZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KX0sMzY5MjooVSxRKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSl9LDY5Mzk6KFUsUSk9PnsidXNlIHN0cmljdCI7dmFyIFo7T2JqZWN0LmRlZmluZVBy''@;'; + put 'put ''b3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLFEuTWVtYmVyVHlwZT12b2lkIDAsKFo9US5NZW1iZXJUeXBlfHwoUS5NZW1iZXJUeXBlPXt9KSkuc2VydmljZT0ic2VydmljZSIsWi5maWxlPSJmaWxlIixaLmZvbGRlcj0iZm9sZGVyIn0sNTE2NTooVSxRKT0+eyJ1c2Ugc3RyaWN0''@;'; + put 'put ''IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSl9LDM5MDA6ZnVuY3Rpb24oVSxRLFopeyJ1c2Ugc3RyaWN0Ijt2YXIgaWU9dGhpcyYmdGhpcy5fX2NyZWF0ZUJpbmRpbmd8fChPYmplY3QuY3JlYXRlP2Z1bmN0aW9uKFksVyxOLGVlKXt2b2lkIDA9PT1l''@;'; + put 'put ''ZSYmKGVlPU4pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShZLGVlLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBXW05dfX0pfTpmdW5jdGlvbihZLFcsTixlZSl7dm9pZCAwPT09ZWUmJihlZT1OKSxZW2VlXT1XW05dfSksYWU9dGhpcyYmdGhpcy5fX2V4cG9ydFN0YXJ8fGZ1''@;'; + put 'put ''bmN0aW9uKFksVyl7Zm9yKHZhciBOIGluIFkpImRlZmF1bHQiPT09Tnx8T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKFcsTil8fGllKFcsWSxOKX07T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGFlKFooODIzOSksUSksYWUoWigy''@;'; + put 'put ''NDI3KSxRKSxhZShaKDE4OSksUSksYWUoWigzNjkyKSxRKSxhZShaKDY5MzkpLFEpLGFlKFooNTE2NSksUSksYWUoWig0MDY5KSxRKSxhZShaKDg5MzIpLFEpLGFlKFooNCksUSksYWUoWigyMDE1KSxRKSxhZShaKDg1MTUpLFEpLGFlKFooNTMxMyksUSksYWUoWig4OTc5KSxRKX0sNDA2OToo''@;'; + put 'put ''VSxRKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksUS5pc01hY3JvVmFycz12b2lkIDAsUS5pc01hY3JvVmFycz1mdW5jdGlvbihaKXtyZXR1cm4gWiYmIm9iamVjdCI9PXR5cGVvZiBaLm1hY3JvVmFycyYmIUFycmF5Lmlz''@;'; + put 'put ''QXJyYXkoWi5tYWNyb1ZhcnMpfX0sODkzMjooVSxRKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSl9LDQ6KFUsUSk9PnsidXNlIHN0cmljdCI7dmFyIFo7T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2''@;'; + put 'put ''YWx1ZTohMH0pLFEuU0FTSnNGaWxlVHlwZT12b2lkIDAsKFo9US5TQVNKc0ZpbGVUeXBlfHwoUS5TQVNKc0ZpbGVUeXBlPXt9KSkuc2VydmljZT0iU2VydmljZSIsWi5qb2I9IkpvYiIsWi50ZXN0PSJUZXN0In0sMjAxNTooVSxRKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVy''@;'; + put 'put ''dHkoUSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSl9LDg1MTU6KFUsUSk9PnsidXNlIHN0cmljdCI7dmFyIFo7T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLFEuU2VydmVyVHlwZT12b2lkIDAsKFo9US5TZXJ2ZXJUeXBlfHwoUS5TZXJ2ZXJUeXBlPXt9''@;'; + put 'put ''KSkuU2FzVml5YT0iU0FTVklZQSIsWi5TYXM5PSJTQVM5IixaLlNhc2pzPSJTQVNKUyJ9LDUzMTM6KFUsUSk9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pfSw4OTc5OihVLFEsWik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRl''@;'; + put 'put ''ZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLFEuVGFyZ2V0PXZvaWQgMDt2YXIgaWU9Wig4NTE1KSxhZT1aKDY3ODEpLFk9ZnVuY3Rpb24oKXtmdW5jdGlvbiBXKE4pe3RoaXMuX3NlcnZlclR5cGU9aWUuU2VydmVyVHlwZS5TYXNWaXlhO3RyeXtpZighTil0aHJvdyBu''@;'; + put 'put ''ZXcgRXJyb3IoIkludmFsaWQgdGFyZ2V0OiBJbnB1dCBKU09OIGlzIG51bGwgb3IgdW5kZWZpbmVkLiIpO3RoaXMuX25hbWU9KDAsYWUudmFsaWRhdGVUYXJnZXROYW1lKShOLm5hbWUpLHRoaXMuX3NlcnZlclVybD0oMCxhZS52YWxpZGF0ZVNlcnZlclVybCkoTi5zZXJ2ZXJVcmwpLHRoaXMu''@;'; + put 'put ''X3NlcnZlclR5cGU9KDAsYWUudmFsaWRhdGVTZXJ2ZXJUeXBlKShOLnNlcnZlclR5cGUpLHRoaXMuX2h0dHBzQWdlbnRPcHRpb25zPSgwLGFlLnZhbGlkYXRlSHR0cHNBZ2VudE9wdGlvbnMpKE4uaHR0cHNBZ2VudE9wdGlvbnMpLHRoaXMuX2FwcExvYz0oMCxhZS52YWxpZGF0ZUFwcExvYyko''@;'; + put 'put ''Ti5hcHBMb2MpLHRoaXMuX2NvbnRleHROYW1lPSgwLGFlLnZhbGlkYXRlQ29udGV4dE5hbWUpKE4uY29udGV4dE5hbWUsdGhpcy5fc2VydmVyVHlwZSksdGhpcy5fc2VydmVyTmFtZT0oMCxhZS52YWxpZGF0ZVNlcnZlck5hbWUpKE4uc2VydmVyTmFtZSx0aGlzLl9zZXJ2ZXJUeXBlKSx0aGlz''@;'; + put 'put ''Ll9yZXBvc2l0b3J5TmFtZT0oMCxhZS52YWxpZGF0ZVJlcG9zaXRvcnlOYW1lKShOLnJlcG9zaXRvcnlOYW1lLHRoaXMuX3NlcnZlclR5cGUpLE4uZG9jQ29uZmlnJiYodGhpcy5fZG9jQ29uZmlnPSgwLGFlLnZhbGlkYXRlRG9jQ29uZmlnKShOLmRvY0NvbmZpZykpLE4uYXV0aENvbmZpZyYm''@;'; + put 'put ''KHRoaXMuX2F1dGhDb25maWc9KDAsYWUudmFsaWRhdGVBdXRoQ29uZmlnKShOLmF1dGhDb25maWcpKSxOLmF1dGhDb25maWdTYXM5JiYodGhpcy5fYXV0aENvbmZpZ1Nhczk9KDAsYWUudmFsaWRhdGVBdXRoQ29uZmlnU2FzOSkoTi5hdXRoQ29uZmlnU2FzOSkpLE4uYnVpbGRDb25maWcmJih0''@;'; + put 'put ''aGlzLl9idWlsZENvbmZpZz0oMCxhZS52YWxpZGF0ZUJ1aWxkQ29uZmlnKShOLmJ1aWxkQ29uZmlnLHRoaXMuX25hbWUpKSx0aGlzLl9kZXBsb3lDb25maWc9KDAsYWUudmFsaWRhdGVEZXBsb3lDb25maWcpKE4uZGVwbG95Q29uZmlnP04uZGVwbG95Q29uZmlnOntkZXBsb3lTZXJ2aWNlUGFj''@;'; + put 'put ''azohMCxkZXBsb3lTY3JpcHRzOltdfSksTi5zZXJ2aWNlQ29uZmlnJiYodGhpcy5fc2VydmljZUNvbmZpZz0oMCxhZS52YWxpZGF0ZVNlcnZpY2VDb25maWcpKE4uc2VydmljZUNvbmZpZykpLE4uam9iQ29uZmlnJiYodGhpcy5fam9iQ29uZmlnPSgwLGFlLnZhbGlkYXRlSm9iQ29uZmlnKShO''@;'; + put 'put ''LmpvYkNvbmZpZykpLE4uc3RyZWFtQ29uZmlnJiYodGhpcy5fc3RyZWFtQ29uZmlnPSgwLGFlLnZhbGlkYXRlU3RyZWFtQ29uZmlnKShOLnN0cmVhbUNvbmZpZykpLE4udGVzdENvbmZpZyYmKHRoaXMuX3Rlc3RDb25maWc9KDAsYWUudmFsaWRhdGVUZXN0Q29uZmlnKShOLnRlc3RDb25maWcp''@;'; + put 'put ''KSxOLm1hY3JvRm9sZGVycyYmTi5tYWNyb0ZvbGRlcnMubGVuZ3RoJiYodGhpcy5fbWFjcm9Gb2xkZXJzPU4ubWFjcm9Gb2xkZXJzKSxOLnByb2dyYW1Gb2xkZXJzJiZOLnByb2dyYW1Gb2xkZXJzLmxlbmd0aCYmKHRoaXMuX3Byb2dyYW1Gb2xkZXJzPU4ucHJvZ3JhbUZvbGRlcnMpLE4uYmlu''@;'; + put 'put ''YXJ5Rm9sZGVycyYmTi5iaW5hcnlGb2xkZXJzLmxlbmd0aCYmKHRoaXMuX2JpbmFyeUZvbGRlcnM9Ti5iaW5hcnlGb2xkZXJzKX1jYXRjaChlZSl7dGhyb3cgbmV3IEVycm9yKCJFcnJvciBwYXJzaW5nIHRhcmdldDogIi5jb25jYXQoZWUubWVzc2FnZSkpfX1yZXR1cm4gT2JqZWN0LmRlZmlu''@;'; + put 'put ''ZVByb3BlcnR5KFcucHJvdG90eXBlLCJuYW1lIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX25hbWV9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KFcucHJvdG90eXBlLCJzZXJ2ZXJVcmwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4g''@;'; + put 'put ''dGhpcy5fc2VydmVyVXJsfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShXLnByb3RvdHlwZSwic2VydmVyVHlwZSIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9zZXJ2ZXJUeXBlfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZToh''@;'; + put 'put ''MH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShXLnByb3RvdHlwZSwiaHR0cHNBZ2VudE9wdGlvbnMiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5faHR0cHNBZ2VudE9wdGlvbnN9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KFcucHJv''@;'; + put 'put ''dG90eXBlLCJhcHBMb2MiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYXBwTG9jfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShXLnByb3RvdHlwZSwiZG9jQ29uZmlnIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2RvY0Nv''@;'; + put 'put ''bmZpZ30sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoVy5wcm90b3R5cGUsImF1dGhDb25maWciLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYXV0aENvbmZpZ30sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3Qu''@;'; + put 'put ''ZGVmaW5lUHJvcGVydHkoVy5wcm90b3R5cGUsImF1dGhDb25maWdTYXM5Iix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2F1dGhDb25maWdTYXM5fSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShXLnByb3RvdHlwZSwiYnVpbGRDb25m''@;'; + put 'put ''aWciLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYnVpbGRDb25maWd9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KFcucHJvdG90eXBlLCJkZXBsb3lDb25maWciLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZGVwbG95Q29u''@;'; + put 'put ''ZmlnfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShXLnByb3RvdHlwZSwic2VydmljZUNvbmZpZyIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9zZXJ2aWNlQ29uZmlnfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9i''@;'; + put 'put ''amVjdC5kZWZpbmVQcm9wZXJ0eShXLnByb3RvdHlwZSwiam9iQ29uZmlnIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2pvYkNvbmZpZ30sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoVy5wcm90b3R5cGUsInN0cmVhbUNvbmZpZyIs''@;'; + put 'put ''e2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9zdHJlYW1Db25maWd9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KFcucHJvdG90eXBlLCJtYWNyb0ZvbGRlcnMiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fbWFjcm9Gb2xkZXJz''@;'; + put 'put ''fSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShXLnByb3RvdHlwZSwicHJvZ3JhbUZvbGRlcnMiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcHJvZ3JhbUZvbGRlcnN9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2Jq''@;'; + put 'put ''ZWN0LmRlZmluZVByb3BlcnR5KFcucHJvdG90eXBlLCJiaW5hcnlGb2xkZXJzIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2JpbmFyeUZvbGRlcnN9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KFcucHJvdG90eXBlLCJjb250ZXh0''@;'; + put 'put ''TmFtZSIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9jb250ZXh0TmFtZX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoVy5wcm90b3R5cGUsInNlcnZlck5hbWUiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc2VydmVyTmFt''@;'; + put 'put ''ZX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoVy5wcm90b3R5cGUsInJlcG9zaXRvcnlOYW1lIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3JlcG9zaXRvcnlOYW1lfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9i''@;'; + put 'put ''amVjdC5kZWZpbmVQcm9wZXJ0eShXLnByb3RvdHlwZSwidGVzdENvbmZpZyIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90ZXN0Q29uZmlnfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLFcucHJvdG90eXBlLnRvSnNvbj1mdW5jdGlvbihOKXt2YXIgZWUscSxKO3ZvaWQg''@;'; + put 'put ''MD09PU4mJihOPSEwKTt2YXIgc2U9e25hbWU6dGhpcy5uYW1lLHNlcnZlclVybDp0aGlzLnNlcnZlclVybCxzZXJ2ZXJUeXBlOnRoaXMuc2VydmVyVHlwZSxodHRwc0FnZW50T3B0aW9uczp0aGlzLmh0dHBzQWdlbnRPcHRpb25zLGFwcExvYzp0aGlzLmFwcExvYyxkb2NDb25maWc6dGhpcy5k''@;'; + put 'put ''b2NDb25maWd9O3JldHVybiEobnVsbD09PShlZT10aGlzLm1hY3JvRm9sZGVycyl8fHZvaWQgMD09PWVlKSYmZWUubGVuZ3RoJiYoc2UubWFjcm9Gb2xkZXJzPXRoaXMubWFjcm9Gb2xkZXJzKSwhKG51bGw9PT0ocT10aGlzLnByb2dyYW1Gb2xkZXJzKXx8dm9pZCAwPT09cSkmJnEubGVuZ3Ro''@;'; + put 'put ''JiYoc2UucHJvZ3JhbUZvbGRlcnM9dGhpcy5wcm9ncmFtRm9sZGVycyksIShudWxsPT09KEo9dGhpcy5iaW5hcnlGb2xkZXJzKXx8dm9pZCAwPT09SikmJkoubGVuZ3RoJiYoc2UuYmluYXJ5Rm9sZGVycz10aGlzLmJpbmFyeUZvbGRlcnMpLHRoaXMuYXV0aENvbmZpZyYmKHNlLmF1dGhDb25m''@;'; + put 'put ''aWc9dGhpcy5hdXRoQ29uZmlnKSx0aGlzLmF1dGhDb25maWdTYXM5JiYoc2UuYXV0aENvbmZpZ1Nhczk9dGhpcy5hdXRoQ29uZmlnU2FzOSksdGhpcy5idWlsZENvbmZpZz9zZS5idWlsZENvbmZpZz10aGlzLmJ1aWxkQ29uZmlnOk4mJihzZS5idWlsZENvbmZpZz17aW5pdFByb2dyYW06IiIs''@;'; + put 'put ''dGVybVByb2dyYW06IiIsYnVpbGRPdXRwdXRGaWxlTmFtZToiIi5jb25jYXQodGhpcy5uYW1lLCIuc2FzIiksYnVpbGRPdXRwdXRGb2xkZXI6InNhc2pzYnVpbGQiLGJ1aWxkUmVzdWx0c0ZvbGRlcjoic2FzanNyZXN1bHRzIixtYWNyb1ZhcnM6e319KSx0aGlzLmpvYkNvbmZpZz9zZS5qb2JD''@;'; + put 'put ''b25maWc9dGhpcy5qb2JDb25maWc6TiYmKHNlLmpvYkNvbmZpZz17am9iRm9sZGVyczpbXSxpbml0UHJvZ3JhbToiIix0ZXJtUHJvZ3JhbToiIixtYWNyb1ZhcnM6e319KSx0aGlzLnNlcnZpY2VDb25maWc/c2Uuc2VydmljZUNvbmZpZz10aGlzLnNlcnZpY2VDb25maWc6TiYmKHNlLnNlcnZp''@;'; + put 'put ''Y2VDb25maWc9e3NlcnZpY2VGb2xkZXJzOltdLGluaXRQcm9ncmFtOiIiLHRlcm1Qcm9ncmFtOiIiLG1hY3JvVmFyczp7fX0pLHRoaXMuc3RyZWFtQ29uZmlnP3NlLnN0cmVhbUNvbmZpZz10aGlzLnN0cmVhbUNvbmZpZzpOJiYoc2Uuc3RyZWFtQ29uZmlnPXtzdHJlYW1XZWJGb2xkZXI6IiIs''@;'; + put 'put ''c3RyZWFtV2ViOiExLHdlYlNvdXJjZVBhdGg6IiIsc3RyZWFtU2VydmljZU5hbWU6IiIsYXNzZXRQYXRoczpbXX0pLCF0aGlzLmRlcGxveUNvbmZpZ3x8dGhpcy5kZXBsb3lDb25maWcuZGVwbG95U2VydmljZVBhY2smJiF0aGlzLmRlcGxveUNvbmZpZy5kZXBsb3lTY3JpcHRzLmxlbmd0aD9O''@;'; + put 'put ''JiYoc2UuZGVwbG95Q29uZmlnPXtkZXBsb3lTY3JpcHRzOltdLGRlcGxveVNlcnZpY2VQYWNrOiExfSk6c2UuZGVwbG95Q29uZmlnPXRoaXMuZGVwbG95Q29uZmlnLHRoaXMudGVzdENvbmZpZz9zZS50ZXN0Q29uZmlnPXRoaXMudGVzdENvbmZpZzpOJiYoc2UudGVzdENvbmZpZz17aW5pdFBy''@;'; + put 'put ''b2dyYW06IiIsdGVybVByb2dyYW06IiIsbWFjcm9WYXJzOnt9LHRlc3RTZXRVcDoiIix0ZXN0VGVhckRvd246IiJ9KSx0aGlzLnNlcnZlclR5cGU9PT1pZS5TZXJ2ZXJUeXBlLlNhc1ZpeWE/c2UuY29udGV4dE5hbWU9dGhpcy5jb250ZXh0TmFtZTp0aGlzLnNlcnZlclR5cGU9PT1pZS5TZXJ2''@;'; + put 'put ''ZXJUeXBlLlNhczkmJihzZS5zZXJ2ZXJOYW1lPXRoaXMuc2VydmVyTmFtZSxzZS5yZXBvc2l0b3J5TmFtZT10aGlzLnJlcG9zaXRvcnlOYW1lKSxzZX0sV30oKTtRLlRhcmdldD1ZfSw2NzgxOmZ1bmN0aW9uKFUsUSxaKXsidXNlIHN0cmljdCI7dmFyIGllPXRoaXMmJnRoaXMuX19pbXBvcnRE''@;'; + put 'put ''ZWZhdWx0fHxmdW5jdGlvbihXKXtyZXR1cm4gVyYmVy5fX2VzTW9kdWxlP1c6e2RlZmF1bHQ6V319O09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxRLnZhbGlkYXRlUmVwb3NpdG9yeU5hbWU9US52YWxpZGF0ZVNlcnZlck5hbWU9US52YWxpZGF0ZUNv''@;'; + put 'put ''bnRleHROYW1lPVEudmFsaWRhdGVTdHJlYW1Db25maWc9US52YWxpZGF0ZURlcGxveUNvbmZpZz1RLnZhbGlkYXRlSm9iQ29uZmlnPVEudmFsaWRhdGVUZXN0Q29uZmlnPVEudmFsaWRhdGVTZXJ2aWNlQ29uZmlnPVEudmFsaWRhdGVCdWlsZENvbmZpZz1RLnZhbGlkYXRlQXV0aENvbmZpZ1Nh''@;'; + put 'put ''czk9US52YWxpZGF0ZUF1dGhDb25maWc9US52YWxpZGF0ZURvY0NvbmZpZz1RLnZhbGlkYXRlQXBwTG9jPVEudmFsaWRhdGVIdHRwc0FnZW50T3B0aW9ucz1RLnZhbGlkYXRlU2VydmVyVXJsPVEudmFsaWRhdGVUYXJnZXROYW1lPVEudmFsaWRhdGVTZXJ2ZXJUeXBlPXZvaWQgMDt2YXIgYWU9''@;'; + put 'put ''aWUoWig0ODEpKSxZPVooMzkwMCk7US52YWxpZGF0ZVNlcnZlclR5cGU9ZnVuY3Rpb24oVyl7aWYoIVcpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIHNlcnZlciB0eXBlOiBgc2VydmVyVHlwZWAgY2Fubm90IGJlIG51bGwgb3IgdW5kZWZpbmVkLiIpO2lmKFchPT1ZLlNlcnZlclR5cGUuU2Fz''@;'; + put 'put ''OSYmVyE9PVkuU2VydmVyVHlwZS5TYXNWaXlhJiZXIT09WS5TZXJ2ZXJUeXBlLlNhc2pzKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBzZXJ2ZXIgdHlwZTogU3VwcG9ydGVkIHZhbHVlcyBmb3IgIGBzZXJ2ZXJUeXBlYCBhcmUgIi5jb25jYXQoWS5TZXJ2ZXJUeXBlLlNhc1ZpeWEsIiwgIiku''@;'; + put 'put ''Y29uY2F0KFkuU2VydmVyVHlwZS5TYXM5LCIgYW5kICIpLmNvbmNhdChZLlNlcnZlclR5cGUuU2FzanMsIi4iKSk7cmV0dXJuIFd9LFEudmFsaWRhdGVUYXJnZXROYW1lPWZ1bmN0aW9uKFcpe2lmKCFXKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCB0YXJnZXQgbmFtZTogYG5hbWVgIGNhbm5v''@;'; + put 'put ''dCBiZSBlbXB0eSwgbnVsbCBvciB1bmRlZmluZWQuIik7aWYoVy50cmltKCkuaW5jbHVkZXMoIiAiKSl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgdGFyZ2V0IG5hbWU6IGBuYW1lYCBjYW5ub3QgaW5jbHVkZSBzcGFjZXMuIik7aWYoIS9eW2EtekEtWjAtOVwtXSskL2kudGVzdChXKSl0aHJv''@;'; + put 'put ''dyBuZXcgRXJyb3IoIkludmFsaWQgdGFyZ2V0IG5hbWU6IGBuYW1lYCBjYW4gb25seSBjb250YWluIGFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzIGFuZCBkYXNoZXMuIik7cmV0dXJuIFd9LFEudmFsaWRhdGVTZXJ2ZXJVcmw9ZnVuY3Rpb24oVyl7aWYobnVsbD09VyYmKFc9IiIpLCIiIT09VyYm''@;'; + put 'put ''IWFlLmRlZmF1bHQuaXNIdHRwVXJpKFcpJiYhYWUuZGVmYXVsdC5pc0h0dHBzVXJpKFcpKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBzZXJ2ZXIgVVJMOiBgc2VydmVyVXJsYCBzaG91bGQgZWl0aGVyIGJlIGFuIGVtcHR5IHN0cmluZyBvciBhIHZhbGlkIFVSTCBvZiB0aGUgZm9ybSBodHRw''@;'; + put 'put ''KHMpOi8veW91ci1zZXJ2ZXIuY29tKDpwb3J0KS4iKTtyZXR1cm4gV30sUS52YWxpZGF0ZUh0dHBzQWdlbnRPcHRpb25zPWZ1bmN0aW9uKFcpe2lmKFcpe2lmKCJvYmplY3QiIT10eXBlb2YgVyl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgdmFsdWU6IGBodHRwc0FnZW50T3B0aW9uc2Agc2hv''@;'; + put 'put ''dWxkIGVpdGhlciBiZSBhbiBlbXB0eSBvciBhbiBvYmplY3Qgb2YgYEh0dHBzQWdlbnRPcHRpb25zYCIpO2lmKG51bGw9PVcuYWxsb3dJbnNlY3VyZVJlcXVlc3RzKVcuYWxsb3dJbnNlY3VyZVJlcXVlc3RzPSExO2Vsc2UgaWYoImJvb2xlYW4iIT10eXBlb2YgVy5hbGxvd0luc2VjdXJlUmVx''@;'; + put 'put ''dWVzdHMpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIHZhbHVlOiBgaHR0cHNBZ2VudE9wdGlvbnMuYWxsb3dJbnNlY3VyZVJlcXVlc3RzYCBzaG91bGQgZWl0aGVyIGJlIGFuIGVtcHR5IG9yIGEgYm9vbGVhbiIpO3JldHVybiJzdHJpbmciIT10eXBlb2YgVy5jYVBhdGgmJihXLmNhUGF0aD12''@;'; + put 'put ''b2lkIDApLCJzdHJpbmciIT10eXBlb2YgVy5rZXlQYXRoJiYoVy5rZXlQYXRoPXZvaWQgMCksInN0cmluZyIhPXR5cGVvZiBXLmNlcnRQYXRoJiYoVy5jZXJ0UGF0aD12b2lkIDApLFd9fSxRLnZhbGlkYXRlQXBwTG9jPWZ1bmN0aW9uKFcpe2lmKCFXKXRocm93IG5ldyBFcnJvcigiSW52YWxp''@;'; + put 'put ''ZCBhcHAgbG9jYXRpb246IGBhcHBMb2NgIGNhbm5vdCBiZSBlbXB0eSwgbnVsbCBvciB1bmRlZmluZWQuIik7aWYoIVcuc3RhcnRzV2l0aCgiLyIpKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBhcHAgbG9jYXRpb246IGBhcHBMb2NgIG11c3Qgc3RhcnQgd2l0aCBhIGAvYC4iKTtyZXR1cm4g''@;'; + put 'put ''V30sUS52YWxpZGF0ZURvY0NvbmZpZz1mdW5jdGlvbihXKXtpZihXfHwoVz17fSksImJvb2xlYW4iIT10eXBlb2YgVy5kaXNwbGF5TWFjcm9Db3JlJiYoVy5kaXNwbGF5TWFjcm9Db3JlPXZvaWQgMCksImJvb2xlYW4iIT10eXBlb2YgVy5lbmFibGVMaW5lYWdlJiYoVy5lbmFibGVMaW5lYWdl''@;'; + put 'put ''PXZvaWQgMCksInN0cmluZyIhPXR5cGVvZiBXLm91dERpcmVjdG9yeSYmKFcub3V0RGlyZWN0b3J5PXZvaWQgMCksInN0cmluZyI9PXR5cGVvZiBXLmRhdGFDb250cm9sbGVyVXJsKXtpZigiIiE9PVcuZGF0YUNvbnRyb2xsZXJVcmwmJiFhZS5kZWZhdWx0LmlzSHR0cFVyaShXLmRhdGFDb250''@;'; + put 'put ''cm9sbGVyVXJsKSYmIWFlLmRlZmF1bHQuaXNIdHRwc1VyaShXLmRhdGFDb250cm9sbGVyVXJsKSl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgRGF0YSBDb250cm9sbGVyIFVybDogYGRhdGFDb250cm9sbGVyVXJsYCBzaG91bGQgZWl0aGVyIGJlIGFuIGVtcHR5IHN0cmluZyBvciBhIHZhbGlk''@;'; + put 'put ''IFVSTCBvZiB0aGUgZm9ybSBodHRwKHMpOi8veW91ci1zZXJ2ZXIuY29tKDpwb3J0KS4iKX1lbHNlIFcuZGF0YUNvbnRyb2xsZXJVcmw9dm9pZCAwO3JldHVybiBXfSxRLnZhbGlkYXRlQXV0aENvbmZpZz1mdW5jdGlvbihXKXtpZighVyl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgYXV0aCBj''@;'; + put 'put ''b25maWc6IEpTT04gY2Fubm90IGJlIG51bGwgb3IgdW5kZWZpbmVkLiIpO3JldHVybiBXfSxRLnZhbGlkYXRlQXV0aENvbmZpZ1Nhczk9ZnVuY3Rpb24oVyl7aWYoIVcpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIGF1dGggY29uZmlnIGZvciBzYXM5OiBKU09OIGNhbm5vdCBiZSBudWxsIG9y''@;'; + put 'put ''IHVuZGVmaW5lZC4iKTtpZighVy51c2VyTmFtZXx8IVcucGFzc3dvcmQpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIGF1dGggY29uZmlnIGZvciBzYXM5OiB1c2VyTmFtZSBhbmQgcGFzc3dvcmQgY2FuIG5vdCBiZSBlbXB0eSIpO3JldHVybiBXfSxRLnZhbGlkYXRlQnVpbGRDb25maWc9ZnVu''@;'; + put 'put ''Y3Rpb24oVyxOKXtpZighVyl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgYnVpbGQgY29uZmlnOiBKU09OIGNhbm5vdCBiZSBudWxsIG9yIHVuZGVmaW5lZC4iKTtyZXR1cm4gVy5idWlsZFJlc3VsdHNGb2xkZXJ8fChXLmJ1aWxkUmVzdWx0c0ZvbGRlcj0ic2FzanNyZXN1bHRzIiksVy5idWls''@;'; + put 'put ''ZE91dHB1dEZvbGRlcnx8KFcuYnVpbGRPdXRwdXRGb2xkZXI9InNhc2pzYnVpbGQiKSxXLmJ1aWxkT3V0cHV0RmlsZU5hbWV8fChXLmJ1aWxkT3V0cHV0RmlsZU5hbWU9IiIuY29uY2F0KE4sIi5zYXMiKSksVy5pbml0UHJvZ3JhbXx8KFcuaW5pdFByb2dyYW09IiIpLFcudGVybVByb2dyYW18''@;'; + put 'put ''fChXLnRlcm1Qcm9ncmFtPSIiKSxXLm1hY3JvVmFyc3x8KFcubWFjcm9WYXJzPXt9KSxXfSxRLnZhbGlkYXRlU2VydmljZUNvbmZpZz1mdW5jdGlvbihXKXtpZighVyl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgc2VydmljZSBjb25maWc6IEpTT04gY2Fubm90IGJlIG51bGwgb3IgdW5kZWZp''@;'; + put 'put ''bmVkLiIpO3JldHVybiBXLmluaXRQcm9ncmFtfHwoVy5pbml0UHJvZ3JhbT0iIiksVy50ZXJtUHJvZ3JhbXx8KFcudGVybVByb2dyYW09IiIpLFcuc2VydmljZUZvbGRlcnN8fChXLnNlcnZpY2VGb2xkZXJzPVtdKSxXLm1hY3JvVmFyc3x8KFcubWFjcm9WYXJzPXt9KSxXfSxRLnZhbGlkYXRl''@;'; + put 'put ''VGVzdENvbmZpZz1mdW5jdGlvbihXKXtpZighVyl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgdGVzdCBjb25maWc6IEpTT04gY2Fubm90IGJlIG51bGwgb3IgdW5kZWZpbmVkLiIpO3JldHVybiBXLmluaXRQcm9ncmFtfHwoVy5pbml0UHJvZ3JhbT0iIiksVy50ZXJtUHJvZ3JhbXx8KFcudGVy''@;'; + put 'put ''bVByb2dyYW09IiIpLFcubWFjcm9WYXJzfHwoVy5tYWNyb1ZhcnM9e30pLFcudGVzdFNldFVwfHwoVy50ZXN0U2V0VXA9IiIpLFcudGVzdFRlYXJEb3dufHwoVy50ZXN0VGVhckRvd249IiIpLFd9LFEudmFsaWRhdGVKb2JDb25maWc9ZnVuY3Rpb24oVyl7aWYoIVcpdGhyb3cgbmV3IEVycm9y''@;'; + put 'put ''KCJJbnZhbGlkIGpvYiBjb25maWc6IEpTT04gY2Fubm90IGJlIG51bGwgb3IgdW5kZWZpbmVkLiIpO3JldHVybiBXLmluaXRQcm9ncmFtfHwoVy5pbml0UHJvZ3JhbT0iIiksVy50ZXJtUHJvZ3JhbXx8KFcudGVybVByb2dyYW09IiIpLFcuam9iRm9sZGVyc3x8KFcuam9iRm9sZGVycz1bXSks''@;'; + put 'put ''Vy5tYWNyb1ZhcnN8fChXLm1hY3JvVmFycz17fSksV30sUS52YWxpZGF0ZURlcGxveUNvbmZpZz1mdW5jdGlvbihXKXtpZighVyl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgZGVwbG95IGNvbmZpZzogSlNPTiBjYW5ub3QgYmUgbnVsbCBvciB1bmRlZmluZWQuIik7cmV0dXJuIFcuZGVwbG95''@;'; + put 'put ''U2VydmljZVBhY2s9ISFXLmRlcGxveVNlcnZpY2VQYWNrLFcuZGVwbG95U2NyaXB0c3x8KFcuZGVwbG95U2NyaXB0cz1bXSksV30sUS52YWxpZGF0ZVN0cmVhbUNvbmZpZz1mdW5jdGlvbihXKXtpZighVyl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgc3RyZWFtIGNvbmZpZzogSlNPTiBjYW5u''@;'; + put 'put ''b3QgYmUgbnVsbCBvciB1bmRlZmluZWQuIik7aWYoITAhPT1XLnN0cmVhbVdlYiYmITEhPT1XLnN0cmVhbVdlYil0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgc3RyZWFtIGNvbmZpZzogYHN0cmVhbVdlYmAgY2Fubm90IGJlIGEgbm9uLWJvb2xlYW4gdmFsdWUuIik7aWYoVy5zdHJlYW1XZWIm''@;'; + put 'put ''JiFXLnN0cmVhbVdlYkZvbGRlcil0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgc3RyZWFtIGNvbmZpZzogYHN0cmVhbVdlYkZvbGRlcmAgY2Fubm90IGJlIGVtcHR5LCBudWxsIG9yIHVuZGVmaW5lZCB3aGVuIGBzdHJlYW1XZWJgIGlzIHRydWUuIik7aWYoVy5zdHJlYW1XZWImJiFXLndlYlNv''@;'; + put 'put ''dXJjZVBhdGgpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIHN0cmVhbSBjb25maWc6IGB3ZWJTb3VyY2VQYXRoYCBjYW5ub3QgYmUgZW1wdHksIG51bGwgb3IgdW5kZWZpbmVkLiIpO3JldHVybiBXLnN0cmVhbUxvZ28mJiJzdHJpbmciIT10eXBlb2YgVy5zdHJlYW1Mb2dvJiYoVy5zdHJlYW1M''@;'; + put 'put ''b2dvPXZvaWQgMCksVy5hc3NldFBhdGhzfHwoVy5hc3NldFBhdGhzPVtdKSxXLnN0cmVhbVNlcnZpY2VOYW1lfHwoVy5zdHJlYW1TZXJ2aWNlTmFtZT0iY2xpY2ttZSIpLFd9LFEudmFsaWRhdGVDb250ZXh0TmFtZT1mdW5jdGlvbihXLE4pe3JldHVybiBOIT09WS5TZXJ2ZXJUeXBlLlNhc1Zp''@;'; + put 'put ''eWF8fFc/VzoiU0FTIEpvYiBFeGVjdXRpb24gY29tcHV0ZSBjb250ZXh0In0sUS52YWxpZGF0ZVNlcnZlck5hbWU9ZnVuY3Rpb24oVyxOKXtyZXR1cm4gTiE9PVkuU2VydmVyVHlwZS5TYXM5fHxXP1c6IlNBU0FwcCJ9LFEudmFsaWRhdGVSZXBvc2l0b3J5TmFtZT1mdW5jdGlvbihXLE4pe3Jl''@;'; + put 'put ''dHVybiBOIT09WS5TZXJ2ZXJUeXBlLlNhczl8fFc/VzoiRm91bmRhdGlvbiJ9fSwyOTI3OmZ1bmN0aW9uKFUsUSxaKXsidXNlIHN0cmljdCI7dmFyIGllPVooODc2NCkuQnVmZmVyLGFlPXRoaXMmJnRoaXMuX19pbXBvcnREZWZhdWx0fHxmdW5jdGlvbihOKXtyZXR1cm4gTiYmTi5fX2VzTW9k''@;'; + put 'put ''dWxlP046e2RlZmF1bHQ6Tn19O09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxRLmRlY29kZUZyb21CYXNlNjQ9US5lbmNvZGVUb0Jhc2U2ND12b2lkIDA7dmFyIFk9YWUoWig1ODM1KSksVz0ie3Nhc2pzX2VuY29kZWR9IjtRLmVuY29kZVRvQmFzZTY0''@;'; + put 'put ''PWZ1bmN0aW9uKE4pe3ZhciBlZT1ZLmRlZmF1bHQucmFuZG9tQnl0ZXMoMTAwKS50b1N0cmluZygiaGV4IikscT1pZS5mcm9tKGVlK04pLnRvU3RyaW5nKCJiYXNlNjQiKTtyZXR1cm4gVytxfSxRLmRlY29kZUZyb21CYXNlNjQ9ZnVuY3Rpb24oTil7cmV0dXJuIE4uc3RhcnRzV2l0aChXKT8o''@;'; + put 'put ''Tj1OLnJlcGxhY2UoL157c2FzanNfZW5jb2RlZH0vLCIiKSxpZS5mcm9tKE4sImJhc2U2NCIpLnRvU3RyaW5nKCkuc3Vic3RyaW5nKDIwMCkpOk59fSw1ODE6KFUsUSk9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLFEuYnl0''@;'; + put 'put ''ZXNUb1NpemU9dm9pZCAwLFEuYnl0ZXNUb1NpemU9ZnVuY3Rpb24oWixpZSxhZSl7aWYodm9pZCAwPT09aWUmJihpZT0xKSx2b2lkIDA9PT1hZSYmKGFlPTEwOTk1MTE2Mjc3NzYpLDA9PT1aKXJldHVybiIwIEIiO1o9Wj5hZT9hZTpaO3ZhciBZPWllPDA/MDppZSxXPU1hdGguZmxvb3IoTWF0''@;'; + put 'put ''aC5sb2coWikvTWF0aC5sb2coMTAyNCkpO3JldHVybihaL01hdGgucG93KDEwMjQsVykpLnRvRml4ZWQoWSkrIiAiK1siQiIsIktCIiwiTUIiLCJHQiIsIlRCIl1bV119fSw4NjUzOihVLFEpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFs''@;'; + put 'put ''dWU6ITB9KSxRLmNodW5rPXZvaWQgMCxRLmNodW5rPWZ1bmN0aW9uKFosaWUpe3JldHVybiB2b2lkIDA9PT1pZSYmKGllPTIyMCksWi5sZW5ndGg8PWllP1taXTooWi5tYXRjaChuZXcgUmVnRXhwKCIuezEsIitpZSsifSIsImciKSl8fFtdKS5maWx0ZXIoZnVuY3Rpb24oYWUpe3JldHVybiEh''@;'; + put 'put ''YWV9KX19LDY0NTc6ZnVuY3Rpb24oVSxRKXsidXNlIHN0cmljdCI7dmFyIFo9dGhpcyYmdGhpcy5fX3JlYWR8fGZ1bmN0aW9uKGFlLFkpe3ZhciBXPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmFlW1N5bWJvbC5pdGVyYXRvcl07aWYoIVcpcmV0dXJuIGFlO3ZhciBOLGVlLHE9Vy5jYWxs''@;'; + put 'put ''KGFlKSxKPVtdO3RyeXtmb3IoOyh2b2lkIDA9PT1ZfHxZLS0gPjApJiYhKE49cS5uZXh0KCkpLmRvbmU7KUoucHVzaChOLnZhbHVlKX1jYXRjaChzZSl7ZWU9e2Vycm9yOnNlfX1maW5hbGx5e3RyeXtOJiYhTi5kb25lJiYoVz1xLnJldHVybikmJlcuY2FsbChxKX1maW5hbGx5e2lmKGVlKXRo''@;'; + put 'put ''cm93IGVlLmVycm9yfX1yZXR1cm4gSn0saWU9dGhpcyYmdGhpcy5fX3NwcmVhZEFycmF5fHxmdW5jdGlvbihhZSxZLFcpe2lmKFd8fDI9PT1hcmd1bWVudHMubGVuZ3RoKWZvcih2YXIgTixlZT0wLHE9WS5sZW5ndGg7ZWU8cTtlZSsrKSFOJiZlZSBpbiBZfHwoTnx8KE49QXJyYXkucHJvdG90''@;'; + put 'put ''eXBlLnNsaWNlLmNhbGwoWSwwLGVlKSksTltlZV09WVtlZV0pO3JldHVybiBhZS5jb25jYXQoTnx8QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoWSkpfTtPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksUS5kaWZmPXZvaWQgMCxRLmRpZmY9ZnVuY3Rp''@;'; + put 'put ''b24oYWUsWSl7dmFyIFc9YWUuZmlsdGVyKGZ1bmN0aW9uKGVlKXtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIGVlPyFKU09OLnN0cmluZ2lmeShZKS5pbmNsdWRlcyhKU09OLnN0cmluZ2lmeShlZSkpOiFZLmluY2x1ZGVzKGVlKX0pLE49WS5maWx0ZXIoZnVuY3Rpb24oZWUpe3JldHVybiJvYmpl''@;'; + put 'put ''Y3QiPT10eXBlb2YgZWU/IUpTT04uc3RyaW5naWZ5KGFlKS5pbmNsdWRlcyhKU09OLnN0cmluZ2lmeShlZSkpOiFhZS5pbmNsdWRlcyhlZSl9KTtyZXR1cm4gaWUoaWUoW10sWihXKSwhMSksWihOKSwhMSl9fSwxNTI5OihVLFEpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0''@;'; + put 'put ''eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxRLmdldEV4ZWN1dG9yUGF0aD12b2lkIDA7dmFyIFo9e1NBU1ZJWUE6Ii9TQVNKb2JFeGVjdXRpb24iLFNBUzk6Ii9TQVNTdG9yZWRQcm9jZXNzL2RvIn07US5nZXRFeGVjdXRvclBhdGg9ZnVuY3Rpb24oaWUpe3JldHVybiBpZT8oaWU9aWUu''@;'; + put 'put ''dG9VcHBlckNhc2UoKSxaW2llXXx8IiIpOiIifX0sMzMxNjooVSxRLFopPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxRLmdldFRyZWVFeGFtcGxlPVEuaXNGaWxlVHJlZT12b2lkIDA7dmFyIGllPVooMzkwMCk7US5pc0Zp''@;'; + put 'put ''bGVUcmVlPWZ1bmN0aW9uKE4pe3JldHVybiBOJiZOLm1lbWJlcnMmJkFycmF5LmlzQXJyYXkoTi5tZW1iZXJzKSYmMD09PU4ubWVtYmVycy5maWx0ZXIoZnVuY3Rpb24oZWUpe3JldHVybiFhZShlZSkmJiFZKGVlKSYmIVcoZWUpfSkubGVuZ3RofTt2YXIgYWU9ZnVuY3Rpb24oTil7cmV0dXJu''@;'; + put 'put ''IE4mJiJzdHJpbmciPT10eXBlb2YgTi5uYW1lJiZOLnR5cGU9PT1pZS5NZW1iZXJUeXBlLnNlcnZpY2UmJiJzdHJpbmciPT10eXBlb2YgTi5jb2RlfSxZPWZ1bmN0aW9uKE4pe3JldHVybiBOJiYic3RyaW5nIj09dHlwZW9mIE4ubmFtZSYmTi50eXBlPT09aWUuTWVtYmVyVHlwZS5maWxlJiYi''@;'; + put 'put ''c3RyaW5nIj09dHlwZW9mIE4uY29kZX0sVz1mdW5jdGlvbihOKXtyZXR1cm4gTiYmInN0cmluZyI9PXR5cGVvZiBOLm5hbWUmJk4udHlwZT09PWllLk1lbWJlclR5cGUuZm9sZGVyJiZOLm1lbWJlcnMmJkFycmF5LmlzQXJyYXkoTi5tZW1iZXJzKSYmMD09PU4ubWVtYmVycy5maWx0ZXIoZnVu''@;'; + put 'put ''Y3Rpb24oZWUpe3JldHVybiFhZShlZSkmJiFZKGVlKSYmIVcoZWUpfSkubGVuZ3RofTtRLmdldFRyZWVFeGFtcGxlPWZ1bmN0aW9uKCl7cmV0dXJue21lbWJlcnM6W3tuYW1lOiJqb2JzIix0eXBlOmllLk1lbWJlclR5cGUuZm9sZGVyLG1lbWJlcnM6W3tuYW1lOiJleHRyYWN0Iix0eXBlOmll''@;'; + put 'put ''Lk1lbWJlclR5cGUuZm9sZGVyLG1lbWJlcnM6W3tuYW1lOiJtYWtlZGF0YTEiLHR5cGU6aWUuTWVtYmVyVHlwZS5zZXJ2aWNlLGNvZGU6IiVwdXQgSGVsbG8gV29ybGQhOyJ9XX1dfV19fX0sNjI2NjpmdW5jdGlvbihVLFEsWil7InVzZSBzdHJpY3QiO3ZhciBpZT10aGlzJiZ0aGlzLl9fY3Jl''@;'; + put 'put ''YXRlQmluZGluZ3x8KE9iamVjdC5jcmVhdGU/ZnVuY3Rpb24ob2UsY2UsZGUsdmUpe3ZvaWQgMD09PXZlJiYodmU9ZGUpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvZSx2ZSx7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gY2VbZGVdfX0pfTpmdW5jdGlvbihvZSxjZSxkZSx2''@;'; + put 'put ''ZSl7dm9pZCAwPT09dmUmJih2ZT1kZSksb2VbdmVdPWNlW2RlXX0pLGFlPXRoaXMmJnRoaXMuX19leHBvcnRTdGFyfHxmdW5jdGlvbihvZSxjZSl7Zm9yKHZhciBkZSBpbiBvZSkiZGVmYXVsdCI9PT1kZXx8T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGNlLGRlKXx8aWUo''@;'; + put 'put ''Y2Usb2UsZGUpfTtPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksUS5jaHVuaz1RLmRpZmY9US5ieXRlc1RvU2l6ZT1RLmdldEV4ZWN1dG9yUGF0aD1RLmRlY29kZUZyb21CYXNlNjQ9US5lbmNvZGVUb0Jhc2U2ND1RLnVybE9yaWdpbj1RLmlzV2luZG93''@;'; + put 'put ''cz1RLnVuaXFBcnJheT1RLmFzeW5jRm9yRWFjaD1RLnV1aWR2ND12b2lkIDA7dmFyIFk9WigxMTMxKTtPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwidXVpZHY0Iix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gWS51dWlkdjR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KFEs''@;'; + put 'put ''ImFzeW5jRm9yRWFjaCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFkuYXN5bmNGb3JFYWNofX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJ1bmlxQXJyYXkiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBZLnVuaXFBcnJheX19KSxPYmplY3Qu''@;'; + put 'put ''ZGVmaW5lUHJvcGVydHkoUSwiaXNXaW5kb3dzIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gWS5pc1dpbmRvd3N9fSksYWUoWigzMzE2KSxRKTt2YXIgVz1aKDk2NTIpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJ1cmxPcmlnaW4iLHtlbnVtZXJhYmxlOiEwLGdldDpm''@;'; + put 'put ''dW5jdGlvbigpe3JldHVybiBXLnVybE9yaWdpbn19KTt2YXIgTj1aKDI5MjcpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJlbmNvZGVUb0Jhc2U2NCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIE4uZW5jb2RlVG9CYXNlNjR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5''@;'; + put 'put ''KFEsImRlY29kZUZyb21CYXNlNjQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBOLmRlY29kZUZyb21CYXNlNjR9fSk7dmFyIGVlPVooMTUyOSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsImdldEV4ZWN1dG9yUGF0aCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9u''@;'; + put 'put ''KCl7cmV0dXJuIGVlLmdldEV4ZWN1dG9yUGF0aH19KTt2YXIgcT1aKDU4MSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsImJ5dGVzVG9TaXplIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gcS5ieXRlc1RvU2l6ZX19KTt2YXIgSj1aKDY0NTcpO09iamVjdC5kZWZpbmVQ''@;'; + put 'put ''cm9wZXJ0eShRLCJkaWZmIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gSi5kaWZmfX0pO3ZhciBzZT1aKDg2NTMpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJjaHVuayIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHNlLmNodW5rfX0pfSw5NjUy''@;'; + put 'put ''OihVLFEpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxRLnVybE9yaWdpbj12b2lkIDAsUS51cmxPcmlnaW49ZnVuY3Rpb24oWil7aWYoIiI9PT1aKXJldHVybiBaO3ZhciBpZTt0cnl7aWU9bmV3IFVSTChaKS5vcmlnaW59''@;'; + put 'put ''Y2F0Y2goYWUpe3Rocm93IG5ldyBFcnJvcigiSW52YWxpZCBVUkwuIil9cmV0dXJuIGllfX0sMTEzMTpmdW5jdGlvbihVLFEsWil7InVzZSBzdHJpY3QiO3ZhciBpZT1aKDQxNTUpLGFlPXRoaXMmJnRoaXMuX19hd2FpdGVyfHxmdW5jdGlvbihXLE4sZWUscSl7cmV0dXJuIG5ldyhlZXx8KGVl''@;'; + put 'put ''PVByb21pc2UpKShmdW5jdGlvbihKLHNlKXtmdW5jdGlvbiBvZSh2ZSl7dHJ5e2RlKHEubmV4dCh2ZSkpfWNhdGNoKEFlKXtzZShBZSl9fWZ1bmN0aW9uIGNlKHZlKXt0cnl7ZGUocS50aHJvdyh2ZSkpfWNhdGNoKEFlKXtzZShBZSl9fWZ1bmN0aW9uIGRlKHZlKXt2YXIgQWU7dmUuZG9uZT9K''@;'; + put 'put ''KHZlLnZhbHVlKTooQWU9dmUudmFsdWUsQWUgaW5zdGFuY2VvZiBlZT9BZTpuZXcgZWUoZnVuY3Rpb24oa2Upe2tlKEFlKX0pKS50aGVuKG9lLGNlKX1kZSgocT1xLmFwcGx5KFcsTnx8W10pKS5uZXh0KCkpfSl9LFk9dGhpcyYmdGhpcy5fX2dlbmVyYXRvcnx8ZnVuY3Rpb24oVyxOKXt2YXIg''@;'; + put 'put ''ZWUscSxKLHNlLG9lPXtsYWJlbDowLHNlbnQ6ZnVuY3Rpb24oKXtpZigxJkpbMF0pdGhyb3cgSlsxXTtyZXR1cm4gSlsxXX0sdHJ5czpbXSxvcHM6W119O3JldHVybiBzZT17bmV4dDpjZSgwKSx0aHJvdzpjZSgxKSxyZXR1cm46Y2UoMil9LCJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJihz''@;'; + put 'put ''ZVtTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSxzZTtmdW5jdGlvbiBjZShkZSl7cmV0dXJuIGZ1bmN0aW9uKHZlKXtyZXR1cm4gZnVuY3Rpb24oQWUpe2lmKGVlKXRocm93IG5ldyBUeXBlRXJyb3IoIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy4iKTtm''@;'; + put 'put ''b3IoO29lOyl0cnl7aWYoZWU9MSxxJiYoSj0yJkFlWzBdP3EucmV0dXJuOkFlWzBdP3EudGhyb3d8fCgoSj1xLnJldHVybikmJkouY2FsbChxKSwwKTpxLm5leHQpJiYhKEo9Si5jYWxsKHEsQWVbMV0pKS5kb25lKXJldHVybiBKO3N3aXRjaChxPTAsSiYmKEFlPVsyJkFlWzBdLEoudmFsdWVd''@;'; + put 'put ''KSxBZVswXSl7Y2FzZSAwOmNhc2UgMTpKPUFlO2JyZWFrO2Nhc2UgNDpyZXR1cm4gb2UubGFiZWwrKyx7dmFsdWU6QWVbMV0sZG9uZTohMX07Y2FzZSA1Om9lLmxhYmVsKysscT1BZVsxXSxBZT1bMF07Y29udGludWU7Y2FzZSA3OkFlPW9lLm9wcy5wb3AoKSxvZS50cnlzLnBvcCgpO2NvbnRp''@;'; + put 'put ''bnVlO2RlZmF1bHQ6aWYoISgoSj0oSj1vZS50cnlzKS5sZW5ndGg+MCYmSltKLmxlbmd0aC0xXSl8fDYhPT1BZVswXSYmMiE9PUFlWzBdKSl7b2U9MDtjb250aW51ZX1pZigzPT09QWVbMF0mJighSnx8QWVbMV0+SlswXSYmQWVbMV08SlszXSkpe29lLmxhYmVsPUFlWzFdO2JyZWFrfWlmKDY9''@;'; + put 'put ''PT1BZVswXSYmb2UubGFiZWw8SlsxXSl7b2UubGFiZWw9SlsxXSxKPUFlO2JyZWFrfWlmKEomJm9lLmxhYmVsPEpbMl0pe29lLmxhYmVsPUpbMl0sb2Uub3BzLnB1c2goQWUpO2JyZWFrfUpbMl0mJm9lLm9wcy5wb3AoKSxvZS50cnlzLnBvcCgpO2NvbnRpbnVlfUFlPU4uY2FsbChXLG9lKX1j''@;'; + put 'put ''YXRjaChrZSl7QWU9WzYsa2VdLHE9MH1maW5hbGx5e2VlPUo9MH1pZig1JkFlWzBdKXRocm93IEFlWzFdO3JldHVybnt2YWx1ZTpBZVswXT9BZVsxXTp2b2lkIDAsZG9uZTohMH19KFtkZSx2ZV0pfX19O09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxR''@;'; + put 'put ''LmlzV2luZG93cz1RLnVuaXFBcnJheT1RLnV1aWR2ND1RLmFzeW5jRm9yRWFjaD12b2lkIDAsUS5hc3luY0ZvckVhY2g9ZnVuY3Rpb24oVyxOKXtyZXR1cm4gYWUodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGVlO3JldHVybiBZKHRoaXMsZnVuY3Rpb24ocSl7c3dpdGNoKHEu''@;'; + put 'put ''bGFiZWwpe2Nhc2UgMDplZT0wLHEubGFiZWw9MTtjYXNlIDE6cmV0dXJuIGVlPFcubGVuZ3RoP1s0LE4oV1tlZV0sZWUsVyldOlszLDRdO2Nhc2UgMjpxLnNlbnQoKSxxLmxhYmVsPTM7Y2FzZSAzOnJldHVybiBlZSsrLFszLDFdO2Nhc2UgNDpyZXR1cm5bMl19fSl9KX0sUS51dWlkdjQ9ZnVu''@;'; + put 'put ''Y3Rpb24oKXtyZXR1cm4ieHh4eHh4eHgteHh4eC00eHh4LXl4eHgteHh4eHh4eHh4eHh4Ii5yZXBsYWNlKC9beHldL2csZnVuY3Rpb24oVyl7dmFyIE49MTYqTWF0aC5yYW5kb20oKXwwO3JldHVybigieCI9PVc/TjozJk58OCkudG9TdHJpbmcoMTYpfSl9LFEudW5pcUFycmF5PWZ1bmN0aW9u''@;'; + put 'put ''KFcpe3JldHVybiBBcnJheS5mcm9tKG5ldyBTZXQoVykpfSxRLmlzV2luZG93cz1mdW5jdGlvbigpe3JldHVybiJ3aW4zMiI9PT1pZS5wbGF0Zm9ybX19LDk4MDk6KFUsUSxaKT0+eyJ1c2Ugc3RyaWN0Ijtjb25zdCBpZT1RO2llLmJpZ251bT1aKDQ1OTApLGllLmRlZmluZT1aKDI1MDApLmRl''@;'; + put 'put ''ZmluZSxpZS5iYXNlPVooMTk3OSksaWUuY29uc3RhbnRzPVooNjgyNiksaWUuZGVjb2RlcnM9Wig4MzA3KSxpZS5lbmNvZGVycz1aKDY1NzkpfSwyNTAwOihVLFEsWik9PnsidXNlIHN0cmljdCI7Y29uc3QgaWU9Wig2NTc5KSxhZT1aKDgzMDcpLFk9Wig1NzE3KTtmdW5jdGlvbiBXKE4sZWUp''@;'; + put 'put ''e3RoaXMubmFtZT1OLHRoaXMuYm9keT1lZSx0aGlzLmRlY29kZXJzPXt9LHRoaXMuZW5jb2RlcnM9e319US5kZWZpbmU9ZnVuY3Rpb24oTixlZSl7cmV0dXJuIG5ldyBXKE4sZWUpfSxXLnByb3RvdHlwZS5fY3JlYXRlTmFtZWQ9ZnVuY3Rpb24oTil7Y29uc3QgZWU9dGhpcy5uYW1lO2Z1bmN0''@;'; + put 'put ''aW9uIHEoSil7dGhpcy5faW5pdE5hbWVkKEosZWUpfXJldHVybiBZKHEsTikscS5wcm90b3R5cGUuX2luaXROYW1lZD1mdW5jdGlvbihKLHNlKXtOLmNhbGwodGhpcyxKLHNlKX0sbmV3IHEodGhpcyl9LFcucHJvdG90eXBlLl9nZXREZWNvZGVyPWZ1bmN0aW9uKE4pe3JldHVybiB0aGlzLmRl''@;'; + put 'put ''Y29kZXJzLmhhc093blByb3BlcnR5KE49Tnx8ImRlciIpfHwodGhpcy5kZWNvZGVyc1tOXT10aGlzLl9jcmVhdGVOYW1lZChhZVtOXSkpLHRoaXMuZGVjb2RlcnNbTl19LFcucHJvdG90eXBlLmRlY29kZT1mdW5jdGlvbihOLGVlLHEpe3JldHVybiB0aGlzLl9nZXREZWNvZGVyKGVlKS5kZWNv''@;'; + put 'put ''ZGUoTixxKX0sVy5wcm90b3R5cGUuX2dldEVuY29kZXI9ZnVuY3Rpb24oTil7cmV0dXJuIHRoaXMuZW5jb2RlcnMuaGFzT3duUHJvcGVydHkoTj1OfHwiZGVyIil8fCh0aGlzLmVuY29kZXJzW05dPXRoaXMuX2NyZWF0ZU5hbWVkKGllW05dKSksdGhpcy5lbmNvZGVyc1tOXX0sVy5wcm90b3R5''@;'; + put 'put ''cGUuZW5jb2RlPWZ1bmN0aW9uKE4sZWUscSl7cmV0dXJuIHRoaXMuX2dldEVuY29kZXIoZWUpLmVuY29kZShOLHEpfX0sNjYyNTooVSxRLFopPT57InVzZSBzdHJpY3QiO2NvbnN0IGllPVooNTcxNyksYWU9Wig4NDY1KS5iLFk9WigyMzk5KS5CdWZmZXI7ZnVuY3Rpb24gVyhlZSxxKXthZS5j''@;'; + put 'put ''YWxsKHRoaXMscSksWS5pc0J1ZmZlcihlZSk/KHRoaXMuYmFzZT1lZSx0aGlzLm9mZnNldD0wLHRoaXMubGVuZ3RoPWVlLmxlbmd0aCk6dGhpcy5lcnJvcigiSW5wdXQgbm90IEJ1ZmZlciIpfWZ1bmN0aW9uIE4oZWUscSl7aWYoQXJyYXkuaXNBcnJheShlZSkpdGhpcy5sZW5ndGg9MCx0aGlz''@;'; + put 'put ''LnZhbHVlPWVlLm1hcChmdW5jdGlvbihKKXtyZXR1cm4gTi5pc0VuY29kZXJCdWZmZXIoSil8fChKPW5ldyBOKEoscSkpLHRoaXMubGVuZ3RoKz1KLmxlbmd0aCxKfSx0aGlzKTtlbHNlIGlmKCJudW1iZXIiPT10eXBlb2YgZWUpe2lmKCEoMDw9ZWUmJmVlPD0yNTUpKXJldHVybiBxLmVycm9y''@;'; + put 'put ''KCJub24tYnl0ZSBFbmNvZGVyQnVmZmVyIHZhbHVlIik7dGhpcy52YWx1ZT1lZSx0aGlzLmxlbmd0aD0xfWVsc2UgaWYoInN0cmluZyI9PXR5cGVvZiBlZSl0aGlzLnZhbHVlPWVlLHRoaXMubGVuZ3RoPVkuYnl0ZUxlbmd0aChlZSk7ZWxzZXtpZighWS5pc0J1ZmZlcihlZSkpcmV0dXJuIHEu''@;'; + put 'put ''ZXJyb3IoIlVuc3VwcG9ydGVkIHR5cGU6ICIrdHlwZW9mIGVlKTt0aGlzLnZhbHVlPWVlLHRoaXMubGVuZ3RoPWVlLmxlbmd0aH19aWUoVyxhZSksUS5DPVcsVy5pc0RlY29kZXJCdWZmZXI9ZnVuY3Rpb24oZWUpe3JldHVybiBlZSBpbnN0YW5jZW9mIFd8fCJvYmplY3QiPT10eXBlb2YgZWUm''@;'; + put 'put ''JlkuaXNCdWZmZXIoZWUuYmFzZSkmJiJEZWNvZGVyQnVmZmVyIj09PWVlLmNvbnN0cnVjdG9yLm5hbWUmJiJudW1iZXIiPT10eXBlb2YgZWUub2Zmc2V0JiYibnVtYmVyIj09dHlwZW9mIGVlLmxlbmd0aCYmImZ1bmN0aW9uIj09dHlwZW9mIGVlLnNhdmUmJiJmdW5jdGlvbiI9PXR5cGVvZiBl''@;'; + put 'put ''ZS5yZXN0b3JlJiYiZnVuY3Rpb24iPT10eXBlb2YgZWUuaXNFbXB0eSYmImZ1bmN0aW9uIj09dHlwZW9mIGVlLnJlYWRVSW50OCYmImZ1bmN0aW9uIj09dHlwZW9mIGVlLnNraXAmJiJmdW5jdGlvbiI9PXR5cGVvZiBlZS5yYXd9LFcucHJvdG90eXBlLnNhdmU9ZnVuY3Rpb24oKXtyZXR1cm57''@;'; + put 'put ''b2Zmc2V0OnRoaXMub2Zmc2V0LHJlcG9ydGVyOmFlLnByb3RvdHlwZS5zYXZlLmNhbGwodGhpcyl9fSxXLnByb3RvdHlwZS5yZXN0b3JlPWZ1bmN0aW9uKGVlKXtjb25zdCBxPW5ldyBXKHRoaXMuYmFzZSk7cmV0dXJuIHEub2Zmc2V0PWVlLm9mZnNldCxxLmxlbmd0aD10aGlzLm9mZnNldCx0''@;'; + put 'put ''aGlzLm9mZnNldD1lZS5vZmZzZXQsYWUucHJvdG90eXBlLnJlc3RvcmUuY2FsbCh0aGlzLGVlLnJlcG9ydGVyKSxxfSxXLnByb3RvdHlwZS5pc0VtcHR5PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMub2Zmc2V0PT09dGhpcy5sZW5ndGh9LFcucHJvdG90eXBlLnJlYWRVSW50OD1mdW5jdGlvbihl''@;'; + put 'put ''ZSl7cmV0dXJuIHRoaXMub2Zmc2V0KzE8PXRoaXMubGVuZ3RoP3RoaXMuYmFzZS5yZWFkVUludDgodGhpcy5vZmZzZXQrKywhMCk6dGhpcy5lcnJvcihlZXx8IkRlY29kZXJCdWZmZXIgb3ZlcnJ1biIpfSxXLnByb3RvdHlwZS5za2lwPWZ1bmN0aW9uKGVlLHEpe2lmKCEodGhpcy5vZmZzZXQr''@;'; + put 'put ''ZWU8PXRoaXMubGVuZ3RoKSlyZXR1cm4gdGhpcy5lcnJvcihxfHwiRGVjb2RlckJ1ZmZlciBvdmVycnVuIik7Y29uc3QgSj1uZXcgVyh0aGlzLmJhc2UpO3JldHVybiBKLl9yZXBvcnRlclN0YXRlPXRoaXMuX3JlcG9ydGVyU3RhdGUsSi5vZmZzZXQ9dGhpcy5vZmZzZXQsSi5sZW5ndGg9dGhp''@;'; + put 'put ''cy5vZmZzZXQrZWUsdGhpcy5vZmZzZXQrPWVlLEp9LFcucHJvdG90eXBlLnJhdz1mdW5jdGlvbihlZSl7cmV0dXJuIHRoaXMuYmFzZS5zbGljZShlZT9lZS5vZmZzZXQ6dGhpcy5vZmZzZXQsdGhpcy5sZW5ndGgpfSxRLlI9TixOLmlzRW5jb2RlckJ1ZmZlcj1mdW5jdGlvbihlZSl7cmV0dXJu''@;'; + put 'put ''IGVlIGluc3RhbmNlb2YgTnx8Im9iamVjdCI9PXR5cGVvZiBlZSYmIkVuY29kZXJCdWZmZXIiPT09ZWUuY29uc3RydWN0b3IubmFtZSYmIm51bWJlciI9PXR5cGVvZiBlZS5sZW5ndGgmJiJmdW5jdGlvbiI9PXR5cGVvZiBlZS5qb2lufSxOLnByb3RvdHlwZS5qb2luPWZ1bmN0aW9uKGVlLHEp''@;'; + put 'put ''e3JldHVybiBlZXx8KGVlPVkuYWxsb2ModGhpcy5sZW5ndGgpKSxxfHwocT0wKSwwPT09dGhpcy5sZW5ndGh8fChBcnJheS5pc0FycmF5KHRoaXMudmFsdWUpP3RoaXMudmFsdWUuZm9yRWFjaChmdW5jdGlvbihKKXtKLmpvaW4oZWUscSkscSs9Si5sZW5ndGh9KTooIm51bWJlciI9PXR5cGVv''@;'; + put 'put ''ZiB0aGlzLnZhbHVlP2VlW3FdPXRoaXMudmFsdWU6InN0cmluZyI9PXR5cGVvZiB0aGlzLnZhbHVlP2VlLndyaXRlKHRoaXMudmFsdWUscSk6WS5pc0J1ZmZlcih0aGlzLnZhbHVlKSYmdGhpcy52YWx1ZS5jb3B5KGVlLHEpLHErPXRoaXMubGVuZ3RoKSksZWV9fSwxOTc5OihVLFEsWik9Pnsi''@;'; + put 'put ''dXNlIHN0cmljdCI7Y29uc3QgaWU9UTtpZS5SZXBvcnRlcj1aKDg0NjUpLmIsaWUuRGVjb2RlckJ1ZmZlcj1aKDY2MjUpLkMsaWUuRW5jb2RlckJ1ZmZlcj1aKDY2MjUpLlIsaWUuTm9kZT1aKDE5NDkpfSwxOTQ5OihVLFEsWik9PnsidXNlIHN0cmljdCI7Y29uc3QgaWU9Wig4NDY1KS5iLGFl''@;'; + put 'put ''PVooNjYyNSkuUixZPVooNjYyNSkuQyxXPVooOTc0NiksTj1bInNlcSIsInNlcW9mIiwic2V0Iiwic2V0b2YiLCJvYmppZCIsImJvb2wiLCJnZW50aW1lIiwidXRjdGltZSIsIm51bGxfIiwiZW51bSIsImludCIsIm9iakRlc2MiLCJiaXRzdHIiLCJibXBzdHIiLCJjaGFyc3RyIiwiZ2Vuc3Ry''@;'; + put 'put ''IiwiZ3JhcGhzdHIiLCJpYTVzdHIiLCJpc282NDZzdHIiLCJudW1zdHIiLCJvY3RzdHIiLCJwcmludHN0ciIsInQ2MXN0ciIsInVuaXN0ciIsInV0ZjhzdHIiLCJ2aWRlb3N0ciJdLGVlPVsia2V5Iiwib2JqIiwidXNlIiwib3B0aW9uYWwiLCJleHBsaWNpdCIsImltcGxpY2l0IiwiZGVmIiwi''@;'; + put 'put ''Y2hvaWNlIiwiYW55IiwiY29udGFpbnMiXS5jb25jYXQoTik7ZnVuY3Rpb24gcShzZSxvZSxjZSl7Y29uc3QgZGU9e307dGhpcy5fYmFzZVN0YXRlPWRlLGRlLm5hbWU9Y2UsZGUuZW5jPXNlLGRlLnBhcmVudD1vZXx8bnVsbCxkZS5jaGlsZHJlbj1udWxsLGRlLnRhZz1udWxsLGRlLmFyZ3M9''@;'; + put 'put ''bnVsbCxkZS5yZXZlcnNlQXJncz1udWxsLGRlLmNob2ljZT1udWxsLGRlLm9wdGlvbmFsPSExLGRlLmFueT0hMSxkZS5vYmo9ITEsZGUudXNlPW51bGwsZGUudXNlRGVjb2Rlcj1udWxsLGRlLmtleT1udWxsLGRlLmRlZmF1bHQ9bnVsbCxkZS5leHBsaWNpdD1udWxsLGRlLmltcGxpY2l0PW51''@;'; + put 'put ''bGwsZGUuY29udGFpbnM9bnVsbCxkZS5wYXJlbnR8fChkZS5jaGlsZHJlbj1bXSx0aGlzLl93cmFwKCkpfVUuZXhwb3J0cz1xO2NvbnN0IEo9WyJlbmMiLCJwYXJlbnQiLCJjaGlsZHJlbiIsInRhZyIsImFyZ3MiLCJyZXZlcnNlQXJncyIsImNob2ljZSIsIm9wdGlvbmFsIiwiYW55Iiwib2Jq''@;'; + put 'put ''IiwidXNlIiwiYWx0ZXJlZFVzZSIsImtleSIsImRlZmF1bHQiLCJleHBsaWNpdCIsImltcGxpY2l0IiwiY29udGFpbnMiXTtxLnByb3RvdHlwZS5jbG9uZT1mdW5jdGlvbigpe2NvbnN0IHNlPXRoaXMuX2Jhc2VTdGF0ZSxvZT17fTtKLmZvckVhY2goZnVuY3Rpb24oZGUpe29lW2RlXT1zZVtk''@;'; + put 'put ''ZV19KTtjb25zdCBjZT1uZXcgdGhpcy5jb25zdHJ1Y3RvcihvZS5wYXJlbnQpO3JldHVybiBjZS5fYmFzZVN0YXRlPW9lLGNlfSxxLnByb3RvdHlwZS5fd3JhcD1mdW5jdGlvbigpe2NvbnN0IHNlPXRoaXMuX2Jhc2VTdGF0ZTtlZS5mb3JFYWNoKGZ1bmN0aW9uKG9lKXt0aGlzW29lXT1mdW5j''@;'; + put 'put ''dGlvbigpe2NvbnN0IGNlPW5ldyB0aGlzLmNvbnN0cnVjdG9yKHRoaXMpO3JldHVybiBzZS5jaGlsZHJlbi5wdXNoKGNlKSxjZVtvZV0uYXBwbHkoY2UsYXJndW1lbnRzKX19LHRoaXMpfSxxLnByb3RvdHlwZS5faW5pdD1mdW5jdGlvbihzZSl7Y29uc3Qgb2U9dGhpcy5fYmFzZVN0YXRlO1co''@;'; + put 'put ''bnVsbD09PW9lLnBhcmVudCksc2UuY2FsbCh0aGlzKSxvZS5jaGlsZHJlbj1vZS5jaGlsZHJlbi5maWx0ZXIoZnVuY3Rpb24oY2Upe3JldHVybiBjZS5fYmFzZVN0YXRlLnBhcmVudD09PXRoaXN9LHRoaXMpLFcuZXF1YWwob2UuY2hpbGRyZW4ubGVuZ3RoLDEsIlJvb3Qgbm9kZSBjYW4gaGF2''@;'; + put 'put ''ZSBvbmx5IG9uZSBjaGlsZCIpfSxxLnByb3RvdHlwZS5fdXNlQXJncz1mdW5jdGlvbihzZSl7Y29uc3Qgb2U9dGhpcy5fYmFzZVN0YXRlLGNlPXNlLmZpbHRlcihmdW5jdGlvbihkZSl7cmV0dXJuIGRlIGluc3RhbmNlb2YgdGhpcy5jb25zdHJ1Y3Rvcn0sdGhpcyk7c2U9c2UuZmlsdGVyKGZ1''@;'; + put 'put ''bmN0aW9uKGRlKXtyZXR1cm4hKGRlIGluc3RhbmNlb2YgdGhpcy5jb25zdHJ1Y3Rvcil9LHRoaXMpLDAhPT1jZS5sZW5ndGgmJihXKG51bGw9PT1vZS5jaGlsZHJlbiksb2UuY2hpbGRyZW49Y2UsY2UuZm9yRWFjaChmdW5jdGlvbihkZSl7ZGUuX2Jhc2VTdGF0ZS5wYXJlbnQ9dGhpc30sdGhp''@;'; + put 'put ''cykpLDAhPT1zZS5sZW5ndGgmJihXKG51bGw9PT1vZS5hcmdzKSxvZS5hcmdzPXNlLG9lLnJldmVyc2VBcmdzPXNlLm1hcChmdW5jdGlvbihkZSl7aWYoIm9iamVjdCIhPXR5cGVvZiBkZXx8ZGUuY29uc3RydWN0b3IhPT1PYmplY3QpcmV0dXJuIGRlO2NvbnN0IHZlPXt9O3JldHVybiBPYmpl''@;'; + put 'put ''Y3Qua2V5cyhkZSkuZm9yRWFjaChmdW5jdGlvbihBZSl7QWU9PSgwfEFlKSYmKEFlfD0wKSx2ZVtkZVtBZV1dPUFlfSksdmV9KSl9LFsiX3BlZWtUYWciLCJfZGVjb2RlVGFnIiwiX3VzZSIsIl9kZWNvZGVTdHIiLCJfZGVjb2RlT2JqaWQiLCJfZGVjb2RlVGltZSIsIl9kZWNvZGVOdWxsIiwi''@;'; + put 'put ''X2RlY29kZUludCIsIl9kZWNvZGVCb29sIiwiX2RlY29kZUxpc3QiLCJfZW5jb2RlQ29tcG9zaXRlIiwiX2VuY29kZVN0ciIsIl9lbmNvZGVPYmppZCIsIl9lbmNvZGVUaW1lIiwiX2VuY29kZU51bGwiLCJfZW5jb2RlSW50IiwiX2VuY29kZUJvb2wiXS5mb3JFYWNoKGZ1bmN0aW9uKHNlKXtx''@;'; + put 'put ''LnByb3RvdHlwZVtzZV09ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3Ioc2UrIiBub3QgaW1wbGVtZW50ZWQgZm9yIGVuY29kaW5nOiAiK3RoaXMuX2Jhc2VTdGF0ZS5lbmMpfX0pLE4uZm9yRWFjaChmdW5jdGlvbihzZSl7cS5wcm90b3R5cGVbc2VdPWZ1bmN0aW9uKCl7Y29uc3Qgb2U9dGhp''@;'; + put 'put ''cy5fYmFzZVN0YXRlLGNlPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cyk7cmV0dXJuIFcobnVsbD09PW9lLnRhZyksb2UudGFnPXNlLHRoaXMuX3VzZUFyZ3MoY2UpLHRoaXN9fSkscS5wcm90b3R5cGUudXNlPWZ1bmN0aW9uKHNlKXtXKHNlKTtjb25zdCBvZT10aGlzLl9i''@;'; + put 'put ''YXNlU3RhdGU7cmV0dXJuIFcobnVsbD09PW9lLnVzZSksb2UudXNlPXNlLHRoaXN9LHEucHJvdG90eXBlLm9wdGlvbmFsPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2Jhc2VTdGF0ZS5vcHRpb25hbD0hMCx0aGlzfSxxLnByb3RvdHlwZS5kZWY9ZnVuY3Rpb24oc2Upe2NvbnN0IG9lPXRoaXMu''@;'; + put 'put ''X2Jhc2VTdGF0ZTtyZXR1cm4gVyhudWxsPT09b2UuZGVmYXVsdCksb2UuZGVmYXVsdD1zZSxvZS5vcHRpb25hbD0hMCx0aGlzfSxxLnByb3RvdHlwZS5leHBsaWNpdD1mdW5jdGlvbihzZSl7Y29uc3Qgb2U9dGhpcy5fYmFzZVN0YXRlO3JldHVybiBXKG51bGw9PT1vZS5leHBsaWNpdCYmbnVs''@;'; + put 'put ''bD09PW9lLmltcGxpY2l0KSxvZS5leHBsaWNpdD1zZSx0aGlzfSxxLnByb3RvdHlwZS5pbXBsaWNpdD1mdW5jdGlvbihzZSl7Y29uc3Qgb2U9dGhpcy5fYmFzZVN0YXRlO3JldHVybiBXKG51bGw9PT1vZS5leHBsaWNpdCYmbnVsbD09PW9lLmltcGxpY2l0KSxvZS5pbXBsaWNpdD1zZSx0aGlz''@;'; + put 'put ''fSxxLnByb3RvdHlwZS5vYmo9ZnVuY3Rpb24oKXtjb25zdCBzZT10aGlzLl9iYXNlU3RhdGUsb2U9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzKTtyZXR1cm4gc2Uub2JqPSEwLDAhPT1vZS5sZW5ndGgmJnRoaXMuX3VzZUFyZ3Mob2UpLHRoaXN9LHEucHJvdG90eXBlLmtl''@;'; + put 'put ''eT1mdW5jdGlvbihzZSl7Y29uc3Qgb2U9dGhpcy5fYmFzZVN0YXRlO3JldHVybiBXKG51bGw9PT1vZS5rZXkpLG9lLmtleT1zZSx0aGlzfSxxLnByb3RvdHlwZS5hbnk9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYmFzZVN0YXRlLmFueT0hMCx0aGlzfSxxLnByb3RvdHlwZS5jaG9pY2U9ZnVu''@;'; + put 'put ''Y3Rpb24oc2Upe2NvbnN0IG9lPXRoaXMuX2Jhc2VTdGF0ZTtyZXR1cm4gVyhudWxsPT09b2UuY2hvaWNlKSxvZS5jaG9pY2U9c2UsdGhpcy5fdXNlQXJncyhPYmplY3Qua2V5cyhzZSkubWFwKGZ1bmN0aW9uKGNlKXtyZXR1cm4gc2VbY2VdfSkpLHRoaXN9LHEucHJvdG90eXBlLmNvbnRhaW5z''@;'; + put 'put ''PWZ1bmN0aW9uKHNlKXtjb25zdCBvZT10aGlzLl9iYXNlU3RhdGU7cmV0dXJuIFcobnVsbD09PW9lLnVzZSksb2UuY29udGFpbnM9c2UsdGhpc30scS5wcm90b3R5cGUuX2RlY29kZT1mdW5jdGlvbihzZSxvZSl7Y29uc3QgY2U9dGhpcy5fYmFzZVN0YXRlO2lmKG51bGw9PT1jZS5wYXJlbnQp''@;'; + put 'put ''cmV0dXJuIHNlLndyYXBSZXN1bHQoY2UuY2hpbGRyZW5bMF0uX2RlY29kZShzZSxvZSkpO2xldCBkZSx2ZT1jZS5kZWZhdWx0LEFlPSEwLGtlPW51bGw7aWYobnVsbCE9PWNlLmtleSYmKGtlPXNlLmVudGVyS2V5KGNlLmtleSkpLGNlLm9wdGlvbmFsKXtsZXQgU2U9bnVsbDtpZihudWxsIT09''@;'; + put 'put ''Y2UuZXhwbGljaXQ/U2U9Y2UuZXhwbGljaXQ6bnVsbCE9PWNlLmltcGxpY2l0P1NlPWNlLmltcGxpY2l0Om51bGwhPT1jZS50YWcmJihTZT1jZS50YWcpLG51bGwhPT1TZXx8Y2UuYW55KXtpZihBZT10aGlzLl9wZWVrVGFnKHNlLFNlLGNlLmFueSksc2UuaXNFcnJvcihBZSkpcmV0dXJuIEFl''@;'; + put 'put ''fWVsc2V7Y29uc3QgSWU9c2Uuc2F2ZSgpO3RyeXtudWxsPT09Y2UuY2hvaWNlP3RoaXMuX2RlY29kZUdlbmVyaWMoY2UudGFnLHNlLG9lKTp0aGlzLl9kZWNvZGVDaG9pY2Uoc2Usb2UpLEFlPSEwfWNhdGNoKFRlKXtBZT0hMX1zZS5yZXN0b3JlKEllKX19aWYoY2Uub2JqJiZBZSYmKGRlPXNl''@;'; + put 'put ''LmVudGVyT2JqZWN0KCkpLEFlKXtpZihudWxsIT09Y2UuZXhwbGljaXQpe2NvbnN0IEllPXRoaXMuX2RlY29kZVRhZyhzZSxjZS5leHBsaWNpdCk7aWYoc2UuaXNFcnJvcihJZSkpcmV0dXJuIEllO3NlPUllfWNvbnN0IFNlPXNlLm9mZnNldDtpZihudWxsPT09Y2UudXNlJiZudWxsPT09Y2Uu''@;'; + put 'put ''Y2hvaWNlKXtsZXQgSWU7Y2UuYW55JiYoSWU9c2Uuc2F2ZSgpKTtjb25zdCBUZT10aGlzLl9kZWNvZGVUYWcoc2UsbnVsbCE9PWNlLmltcGxpY2l0P2NlLmltcGxpY2l0OmNlLnRhZyxjZS5hbnkpO2lmKHNlLmlzRXJyb3IoVGUpKXJldHVybiBUZTtjZS5hbnk/dmU9c2UucmF3KEllKTpzZT1U''@;'; + put 'put ''ZX1pZihvZSYmb2UudHJhY2smJm51bGwhPT1jZS50YWcmJm9lLnRyYWNrKHNlLnBhdGgoKSxTZSxzZS5sZW5ndGgsInRhZ2dlZCIpLG9lJiZvZS50cmFjayYmbnVsbCE9PWNlLnRhZyYmb2UudHJhY2soc2UucGF0aCgpLHNlLm9mZnNldCxzZS5sZW5ndGgsImNvbnRlbnQiKSxjZS5hbnl8fCh2''@;'; + put 'put ''ZT1udWxsPT09Y2UuY2hvaWNlP3RoaXMuX2RlY29kZUdlbmVyaWMoY2UudGFnLHNlLG9lKTp0aGlzLl9kZWNvZGVDaG9pY2Uoc2Usb2UpKSxzZS5pc0Vycm9yKHZlKSlyZXR1cm4gdmU7aWYoY2UuYW55fHxudWxsIT09Y2UuY2hvaWNlfHxudWxsPT09Y2UuY2hpbGRyZW58fGNlLmNoaWxkcmVu''@;'; + put 'put ''LmZvckVhY2goZnVuY3Rpb24oSWUpe0llLl9kZWNvZGUoc2Usb2UpfSksY2UuY29udGFpbnMmJigib2N0c3RyIj09PWNlLnRhZ3x8ImJpdHN0ciI9PT1jZS50YWcpKXtjb25zdCBJZT1uZXcgWSh2ZSk7dmU9dGhpcy5fZ2V0VXNlKGNlLmNvbnRhaW5zLHNlLl9yZXBvcnRlclN0YXRlLm9iaiku''@;'; + put 'put ''X2RlY29kZShJZSxvZSl9fXJldHVybiBjZS5vYmomJkFlJiYodmU9c2UubGVhdmVPYmplY3QoZGUpKSxudWxsPT09Y2Uua2V5fHxudWxsPT09dmUmJiEwIT09QWU/bnVsbCE9PWtlJiZzZS5leGl0S2V5KGtlKTpzZS5sZWF2ZUtleShrZSxjZS5rZXksdmUpLHZlfSxxLnByb3RvdHlwZS5fZGVj''@;'; + put 'put ''b2RlR2VuZXJpYz1mdW5jdGlvbihzZSxvZSxjZSl7Y29uc3QgZGU9dGhpcy5fYmFzZVN0YXRlO3JldHVybiJzZXEiPT09c2V8fCJzZXQiPT09c2U/bnVsbDoic2Vxb2YiPT09c2V8fCJzZXRvZiI9PT1zZT90aGlzLl9kZWNvZGVMaXN0KG9lLHNlLGRlLmFyZ3NbMF0sY2UpOi9zdHIkLy50ZXN0''@;'; + put 'put ''KHNlKT90aGlzLl9kZWNvZGVTdHIob2Usc2UsY2UpOiJvYmppZCI9PT1zZSYmZGUuYXJncz90aGlzLl9kZWNvZGVPYmppZChvZSxkZS5hcmdzWzBdLGRlLmFyZ3NbMV0sY2UpOiJvYmppZCI9PT1zZT90aGlzLl9kZWNvZGVPYmppZChvZSxudWxsLG51bGwsY2UpOiJnZW50aW1lIj09PXNlfHwi''@;'; + put 'put ''dXRjdGltZSI9PT1zZT90aGlzLl9kZWNvZGVUaW1lKG9lLHNlLGNlKToibnVsbF8iPT09c2U/dGhpcy5fZGVjb2RlTnVsbChvZSxjZSk6ImJvb2wiPT09c2U/dGhpcy5fZGVjb2RlQm9vbChvZSxjZSk6Im9iakRlc2MiPT09c2U/dGhpcy5fZGVjb2RlU3RyKG9lLHNlLGNlKToiaW50Ij09PXNl''@;'; + put 'put ''fHwiZW51bSI9PT1zZT90aGlzLl9kZWNvZGVJbnQob2UsZGUuYXJncyYmZGUuYXJnc1swXSxjZSk6bnVsbCE9PWRlLnVzZT90aGlzLl9nZXRVc2UoZGUudXNlLG9lLl9yZXBvcnRlclN0YXRlLm9iaikuX2RlY29kZShvZSxjZSk6b2UuZXJyb3IoInVua25vd24gdGFnOiAiK3NlKX0scS5wcm90''@;'; + put 'put ''b3R5cGUuX2dldFVzZT1mdW5jdGlvbihzZSxvZSl7Y29uc3QgY2U9dGhpcy5fYmFzZVN0YXRlO3JldHVybiBjZS51c2VEZWNvZGVyPXRoaXMuX3VzZShzZSxvZSksVyhudWxsPT09Y2UudXNlRGVjb2Rlci5fYmFzZVN0YXRlLnBhcmVudCksY2UudXNlRGVjb2Rlcj1jZS51c2VEZWNvZGVyLl9i''@;'; + put 'put ''YXNlU3RhdGUuY2hpbGRyZW5bMF0sY2UuaW1wbGljaXQhPT1jZS51c2VEZWNvZGVyLl9iYXNlU3RhdGUuaW1wbGljaXQmJihjZS51c2VEZWNvZGVyPWNlLnVzZURlY29kZXIuY2xvbmUoKSxjZS51c2VEZWNvZGVyLl9iYXNlU3RhdGUuaW1wbGljaXQ9Y2UuaW1wbGljaXQpLGNlLnVzZURlY29k''@;'; + put 'put ''ZXJ9LHEucHJvdG90eXBlLl9kZWNvZGVDaG9pY2U9ZnVuY3Rpb24oc2Usb2Upe2NvbnN0IGNlPXRoaXMuX2Jhc2VTdGF0ZTtsZXQgZGU9bnVsbCx2ZT0hMTtyZXR1cm4gT2JqZWN0LmtleXMoY2UuY2hvaWNlKS5zb21lKGZ1bmN0aW9uKEFlKXtjb25zdCBrZT1zZS5zYXZlKCksU2U9Y2UuY2hv''@;'; + put 'put ''aWNlW0FlXTt0cnl7Y29uc3QgSWU9U2UuX2RlY29kZShzZSxvZSk7aWYoc2UuaXNFcnJvcihJZSkpcmV0dXJuITE7ZGU9e3R5cGU6QWUsdmFsdWU6SWV9LHZlPSEwfWNhdGNoKEllKXtyZXR1cm4gc2UucmVzdG9yZShrZSksITF9cmV0dXJuITB9LHRoaXMpLHZlP2RlOnNlLmVycm9yKCJDaG9p''@;'; + put 'put ''Y2Ugbm90IG1hdGNoZWQiKX0scS5wcm90b3R5cGUuX2NyZWF0ZUVuY29kZXJCdWZmZXI9ZnVuY3Rpb24oc2Upe3JldHVybiBuZXcgYWUoc2UsdGhpcy5yZXBvcnRlcil9LHEucHJvdG90eXBlLl9lbmNvZGU9ZnVuY3Rpb24oc2Usb2UsY2Upe2NvbnN0IGRlPXRoaXMuX2Jhc2VTdGF0ZTtpZihu''@;'; + put 'put ''dWxsIT09ZGUuZGVmYXVsdCYmZGUuZGVmYXVsdD09PXNlKXJldHVybjtjb25zdCB2ZT10aGlzLl9lbmNvZGVWYWx1ZShzZSxvZSxjZSk7cmV0dXJuIHZvaWQgMD09PXZlfHx0aGlzLl9za2lwRGVmYXVsdCh2ZSxvZSxjZSk/dm9pZCAwOnZlfSxxLnByb3RvdHlwZS5fZW5jb2RlVmFsdWU9ZnVu''@;'; + put 'put ''Y3Rpb24oc2Usb2UsY2Upe2NvbnN0IGRlPXRoaXMuX2Jhc2VTdGF0ZTtpZihudWxsPT09ZGUucGFyZW50KXJldHVybiBkZS5jaGlsZHJlblswXS5fZW5jb2RlKHNlLG9lfHxuZXcgaWUpO2xldCB2ZT1udWxsO2lmKHRoaXMucmVwb3J0ZXI9b2UsZGUub3B0aW9uYWwmJnZvaWQgMD09PXNlKXtp''@;'; + put 'put ''ZihudWxsPT09ZGUuZGVmYXVsdClyZXR1cm47c2U9ZGUuZGVmYXVsdH1sZXQgQWU9bnVsbCxrZT0hMTtpZihkZS5hbnkpdmU9dGhpcy5fY3JlYXRlRW5jb2RlckJ1ZmZlcihzZSk7ZWxzZSBpZihkZS5jaG9pY2UpdmU9dGhpcy5fZW5jb2RlQ2hvaWNlKHNlLG9lKTtlbHNlIGlmKGRlLmNvbnRh''@;'; + put 'put ''aW5zKUFlPXRoaXMuX2dldFVzZShkZS5jb250YWlucyxjZSkuX2VuY29kZShzZSxvZSksa2U9ITA7ZWxzZSBpZihkZS5jaGlsZHJlbilBZT1kZS5jaGlsZHJlbi5tYXAoZnVuY3Rpb24oU2Upe2lmKCJudWxsXyI9PT1TZS5fYmFzZVN0YXRlLnRhZylyZXR1cm4gU2UuX2VuY29kZShudWxsLG9l''@;'; + put 'put ''LHNlKTtpZihudWxsPT09U2UuX2Jhc2VTdGF0ZS5rZXkpcmV0dXJuIG9lLmVycm9yKCJDaGlsZCBzaG91bGQgaGF2ZSBhIGtleSIpO2NvbnN0IEllPW9lLmVudGVyS2V5KFNlLl9iYXNlU3RhdGUua2V5KTtpZigib2JqZWN0IiE9dHlwZW9mIHNlKXJldHVybiBvZS5lcnJvcigiQ2hpbGQgZXhw''@;'; + put 'put ''ZWN0ZWQsIGJ1dCBpbnB1dCBpcyBub3Qgb2JqZWN0Iik7Y29uc3QgVGU9U2UuX2VuY29kZShzZVtTZS5fYmFzZVN0YXRlLmtleV0sb2Usc2UpO3JldHVybiBvZS5sZWF2ZUtleShJZSksVGV9LHRoaXMpLmZpbHRlcihmdW5jdGlvbihTZSl7cmV0dXJuIFNlfSksQWU9dGhpcy5fY3JlYXRlRW5j''@;'; + put 'put ''b2RlckJ1ZmZlcihBZSk7ZWxzZSBpZigic2Vxb2YiPT09ZGUudGFnfHwic2V0b2YiPT09ZGUudGFnKXtpZighZGUuYXJnc3x8MSE9PWRlLmFyZ3MubGVuZ3RoKXJldHVybiBvZS5lcnJvcigiVG9vIG1hbnkgYXJncyBmb3IgOiAiK2RlLnRhZyk7aWYoIUFycmF5LmlzQXJyYXkoc2UpKXJldHVy''@;'; + put 'put ''biBvZS5lcnJvcigic2Vxb2Yvc2V0b2YsIGJ1dCBkYXRhIGlzIG5vdCBBcnJheSIpO2NvbnN0IFNlPXRoaXMuY2xvbmUoKTtTZS5fYmFzZVN0YXRlLmltcGxpY2l0PW51bGwsQWU9dGhpcy5fY3JlYXRlRW5jb2RlckJ1ZmZlcihzZS5tYXAoZnVuY3Rpb24oSWUpe3JldHVybiB0aGlzLl9nZXRV''@;'; + put 'put ''c2UodGhpcy5fYmFzZVN0YXRlLmFyZ3NbMF0sc2UpLl9lbmNvZGUoSWUsb2UpfSxTZSkpfWVsc2UgbnVsbCE9PWRlLnVzZT92ZT10aGlzLl9nZXRVc2UoZGUudXNlLGNlKS5fZW5jb2RlKHNlLG9lKTooQWU9dGhpcy5fZW5jb2RlUHJpbWl0aXZlKGRlLnRhZyxzZSksa2U9ITApO2lmKCFkZS5h''@;'; + put 'put ''bnkmJm51bGw9PT1kZS5jaG9pY2Upe2NvbnN0IFNlPW51bGwhPT1kZS5pbXBsaWNpdD9kZS5pbXBsaWNpdDpkZS50YWcsSWU9bnVsbD09PWRlLmltcGxpY2l0PyJ1bml2ZXJzYWwiOiJjb250ZXh0IjtudWxsPT09U2U/bnVsbD09PWRlLnVzZSYmb2UuZXJyb3IoIlRhZyBjb3VsZCBiZSBvbWl0''@;'; + put 'put ''dGVkIG9ubHkgZm9yIC51c2UoKSIpOm51bGw9PT1kZS51c2UmJih2ZT10aGlzLl9lbmNvZGVDb21wb3NpdGUoU2Usa2UsSWUsQWUpKX1yZXR1cm4gbnVsbCE9PWRlLmV4cGxpY2l0JiYodmU9dGhpcy5fZW5jb2RlQ29tcG9zaXRlKGRlLmV4cGxpY2l0LCExLCJjb250ZXh0Iix2ZSkpLHZlfSxx''@;'; + put 'put ''LnByb3RvdHlwZS5fZW5jb2RlQ2hvaWNlPWZ1bmN0aW9uKHNlLG9lKXtjb25zdCBjZT10aGlzLl9iYXNlU3RhdGUsZGU9Y2UuY2hvaWNlW3NlLnR5cGVdO3JldHVybiBkZXx8VyghMSxzZS50eXBlKyIgbm90IGZvdW5kIGluICIrSlNPTi5zdHJpbmdpZnkoT2JqZWN0LmtleXMoY2UuY2hvaWNl''@;'; + put 'put ''KSkpLGRlLl9lbmNvZGUoc2UudmFsdWUsb2UpfSxxLnByb3RvdHlwZS5fZW5jb2RlUHJpbWl0aXZlPWZ1bmN0aW9uKHNlLG9lKXtjb25zdCBjZT10aGlzLl9iYXNlU3RhdGU7aWYoL3N0ciQvLnRlc3Qoc2UpKXJldHVybiB0aGlzLl9lbmNvZGVTdHIob2Usc2UpO2lmKCJvYmppZCI9PT1zZSYm''@;'; + put 'put ''Y2UuYXJncylyZXR1cm4gdGhpcy5fZW5jb2RlT2JqaWQob2UsY2UucmV2ZXJzZUFyZ3NbMF0sY2UuYXJnc1sxXSk7aWYoIm9iamlkIj09PXNlKXJldHVybiB0aGlzLl9lbmNvZGVPYmppZChvZSxudWxsLG51bGwpO2lmKCJnZW50aW1lIj09PXNlfHwidXRjdGltZSI9PT1zZSlyZXR1cm4gdGhp''@;'; + put 'put ''cy5fZW5jb2RlVGltZShvZSxzZSk7aWYoIm51bGxfIj09PXNlKXJldHVybiB0aGlzLl9lbmNvZGVOdWxsKCk7aWYoImludCI9PT1zZXx8ImVudW0iPT09c2UpcmV0dXJuIHRoaXMuX2VuY29kZUludChvZSxjZS5hcmdzJiZjZS5yZXZlcnNlQXJnc1swXSk7aWYoImJvb2wiPT09c2UpcmV0dXJu''@;'; + put 'put ''IHRoaXMuX2VuY29kZUJvb2wob2UpO2lmKCJvYmpEZXNjIj09PXNlKXJldHVybiB0aGlzLl9lbmNvZGVTdHIob2Usc2UpO3Rocm93IG5ldyBFcnJvcigiVW5zdXBwb3J0ZWQgdGFnOiAiK3NlKX0scS5wcm90b3R5cGUuX2lzTnVtc3RyPWZ1bmN0aW9uKHNlKXtyZXR1cm4vXlswLTkgXSokLy50''@;'; + put 'put ''ZXN0KHNlKX0scS5wcm90b3R5cGUuX2lzUHJpbnRzdHI9ZnVuY3Rpb24oc2Upe3JldHVybi9eW0EtWmEtejAtOSAnKCkrLC0uLzo9P10qJC8udGVzdChzZSl9fSw4NDY1OihVLFEsWik9PnsidXNlIHN0cmljdCI7Y29uc3QgaWU9Wig1NzE3KTtmdW5jdGlvbiBhZShXKXt0aGlzLl9yZXBvcnRl''@;'; + put 'put ''clN0YXRlPXtvYmo6bnVsbCxwYXRoOltdLG9wdGlvbnM6V3x8e30sZXJyb3JzOltdfX1mdW5jdGlvbiBZKFcsTil7dGhpcy5wYXRoPVcsdGhpcy5yZXRocm93KE4pfVEuYj1hZSxhZS5wcm90b3R5cGUuaXNFcnJvcj1mdW5jdGlvbihXKXtyZXR1cm4gVyBpbnN0YW5jZW9mIFl9LGFlLnByb3Rv''@;'; + put 'put ''dHlwZS5zYXZlPWZ1bmN0aW9uKCl7Y29uc3QgVz10aGlzLl9yZXBvcnRlclN0YXRlO3JldHVybntvYmo6Vy5vYmoscGF0aExlbjpXLnBhdGgubGVuZ3RofX0sYWUucHJvdG90eXBlLnJlc3RvcmU9ZnVuY3Rpb24oVyl7Y29uc3QgTj10aGlzLl9yZXBvcnRlclN0YXRlO04ub2JqPVcub2JqLE4u''@;'; + put 'put ''cGF0aD1OLnBhdGguc2xpY2UoMCxXLnBhdGhMZW4pfSxhZS5wcm90b3R5cGUuZW50ZXJLZXk9ZnVuY3Rpb24oVyl7cmV0dXJuIHRoaXMuX3JlcG9ydGVyU3RhdGUucGF0aC5wdXNoKFcpfSxhZS5wcm90b3R5cGUuZXhpdEtleT1mdW5jdGlvbihXKXtjb25zdCBOPXRoaXMuX3JlcG9ydGVyU3Rh''@;'; + put 'put ''dGU7Ti5wYXRoPU4ucGF0aC5zbGljZSgwLFctMSl9LGFlLnByb3RvdHlwZS5sZWF2ZUtleT1mdW5jdGlvbihXLE4sZWUpe2NvbnN0IHE9dGhpcy5fcmVwb3J0ZXJTdGF0ZTt0aGlzLmV4aXRLZXkoVyksbnVsbCE9PXEub2JqJiYocS5vYmpbTl09ZWUpfSxhZS5wcm90b3R5cGUucGF0aD1mdW5j''@;'; + put 'put ''dGlvbigpe3JldHVybiB0aGlzLl9yZXBvcnRlclN0YXRlLnBhdGguam9pbigiLyIpfSxhZS5wcm90b3R5cGUuZW50ZXJPYmplY3Q9ZnVuY3Rpb24oKXtjb25zdCBXPXRoaXMuX3JlcG9ydGVyU3RhdGUsTj1XLm9iajtyZXR1cm4gVy5vYmo9e30sTn0sYWUucHJvdG90eXBlLmxlYXZlT2JqZWN0''@;'; + put 'put ''PWZ1bmN0aW9uKFcpe2NvbnN0IE49dGhpcy5fcmVwb3J0ZXJTdGF0ZSxlZT1OLm9iajtyZXR1cm4gTi5vYmo9VyxlZX0sYWUucHJvdG90eXBlLmVycm9yPWZ1bmN0aW9uKFcpe2xldCBOO2NvbnN0IGVlPXRoaXMuX3JlcG9ydGVyU3RhdGUscT1XIGluc3RhbmNlb2YgWTtpZihOPXE/VzpuZXcg''@;'; + put 'put ''WShlZS5wYXRoLm1hcChmdW5jdGlvbihKKXtyZXR1cm4iWyIrSlNPTi5zdHJpbmdpZnkoSikrIl0ifSkuam9pbigiIiksVy5tZXNzYWdlfHxXLFcuc3RhY2spLCFlZS5vcHRpb25zLnBhcnRpYWwpdGhyb3cgTjtyZXR1cm4gcXx8ZWUuZXJyb3JzLnB1c2goTiksTn0sYWUucHJvdG90eXBlLndy''@;'; + put 'put ''YXBSZXN1bHQ9ZnVuY3Rpb24oVyl7Y29uc3QgTj10aGlzLl9yZXBvcnRlclN0YXRlO3JldHVybiBOLm9wdGlvbnMucGFydGlhbD97cmVzdWx0OnRoaXMuaXNFcnJvcihXKT9udWxsOlcsZXJyb3JzOk4uZXJyb3JzfTpXfSxpZShZLEVycm9yKSxZLnByb3RvdHlwZS5yZXRocm93PWZ1bmN0aW9u''@;'; + put 'put ''KFcpe2lmKHRoaXMubWVzc2FnZT1XKyIgYXQ6ICIrKHRoaXMucGF0aHx8IihzaGFsbG93KSIpLEVycm9yLmNhcHR1cmVTdGFja1RyYWNlJiZFcnJvci5jYXB0dXJlU3RhY2tUcmFjZSh0aGlzLFkpLCF0aGlzLnN0YWNrKXRyeXt0aHJvdyBuZXcgRXJyb3IodGhpcy5tZXNzYWdlKX1jYXRjaChO''@;'; + put 'put ''KXt0aGlzLnN0YWNrPU4uc3RhY2t9cmV0dXJuIHRoaXN9fSwxNjA6KFUsUSk9PnsidXNlIHN0cmljdCI7ZnVuY3Rpb24gWihpZSl7Y29uc3QgYWU9e307cmV0dXJuIE9iamVjdC5rZXlzKGllKS5mb3JFYWNoKGZ1bmN0aW9uKFkpeygwfFkpPT1ZJiYoWXw9MCksYWVbaWVbWV1dPVl9KSxhZX1R''@;'; + put 'put ''LnRhZ0NsYXNzPXswOiJ1bml2ZXJzYWwiLDE6ImFwcGxpY2F0aW9uIiwyOiJjb250ZXh0IiwzOiJwcml2YXRlIn0sUS50YWdDbGFzc0J5TmFtZT1aKFEudGFnQ2xhc3MpLFEudGFnPXswOiJlbmQiLDE6ImJvb2wiLDI6ImludCIsMzoiYml0c3RyIiw0OiJvY3RzdHIiLDU6Im51bGxfIiw2OiJv''@;'; + put 'put ''YmppZCIsNzoib2JqRGVzYyIsODoiZXh0ZXJuYWwiLDk6InJlYWwiLDEwOiJlbnVtIiwxMToiZW1iZWQiLDEyOiJ1dGY4c3RyIiwxMzoicmVsYXRpdmVPaWQiLDE2OiJzZXEiLDE3OiJzZXQiLDE4OiJudW1zdHIiLDE5OiJwcmludHN0ciIsMjA6InQ2MXN0ciIsMjE6InZpZGVvc3RyIiwyMjoi''@;'; + put 'put ''aWE1c3RyIiwyMzoidXRjdGltZSIsMjQ6ImdlbnRpbWUiLDI1OiJncmFwaHN0ciIsMjY6ImlzbzY0NnN0ciIsMjc6ImdlbnN0ciIsMjg6InVuaXN0ciIsMjk6ImNoYXJzdHIiLDMwOiJibXBzdHIifSxRLnRhZ0J5TmFtZT1aKFEudGFnKX0sNjgyNjooVSxRLFopPT57InVzZSBzdHJpY3QiO2Nv''@;'; + put 'put ''bnN0IGllPVE7aWUuX3JldmVyc2U9ZnVuY3Rpb24oYWUpe2NvbnN0IFk9e307cmV0dXJuIE9iamVjdC5rZXlzKGFlKS5mb3JFYWNoKGZ1bmN0aW9uKFcpeygwfFcpPT1XJiYoV3w9MCksWVthZVtXXV09V30pLFl9LGllLmRlcj1aKDE2MCl9LDE2NzE6KFUsUSxaKT0+eyJ1c2Ugc3RyaWN0Ijtj''@;'; + put 'put ''b25zdCBpZT1aKDU3MTcpLGFlPVooNDU5MCksWT1aKDY2MjUpLkMsVz1aKDE5NDkpLE49WigxNjApO2Z1bmN0aW9uIGVlKG9lKXt0aGlzLmVuYz0iZGVyIix0aGlzLm5hbWU9b2UubmFtZSx0aGlzLmVudGl0eT1vZSx0aGlzLnRyZWU9bmV3IHEsdGhpcy50cmVlLl9pbml0KG9lLmJvZHkpfWZ1''@;'; + put 'put ''bmN0aW9uIHEob2Upe1cuY2FsbCh0aGlzLCJkZXIiLG9lKX1mdW5jdGlvbiBKKG9lLGNlKXtsZXQgZGU9b2UucmVhZFVJbnQ4KGNlKTtpZihvZS5pc0Vycm9yKGRlKSlyZXR1cm4gZGU7Y29uc3QgdmU9Ti50YWdDbGFzc1tkZT4+Nl0sQWU9MD09KDMyJmRlKTtpZigzMT09KDMxJmRlKSl7bGV0''@;'; + put 'put ''IGtlPWRlO2ZvcihkZT0wOzEyOD09KDEyOCZrZSk7KXtpZihrZT1vZS5yZWFkVUludDgoY2UpLG9lLmlzRXJyb3Ioa2UpKXJldHVybiBrZTtkZTw8PTcsZGV8PTEyNyZrZX19ZWxzZSBkZSY9MzE7cmV0dXJue2Nsczp2ZSxwcmltaXRpdmU6QWUsdGFnOmRlLHRhZ1N0cjpOLnRhZ1tkZV19fWZ1''@;'; + put 'put ''bmN0aW9uIHNlKG9lLGNlLGRlKXtsZXQgdmU9b2UucmVhZFVJbnQ4KGRlKTtpZihvZS5pc0Vycm9yKHZlKSlyZXR1cm4gdmU7aWYoIWNlJiYxMjg9PT12ZSlyZXR1cm4gbnVsbDtpZigwPT0oMTI4JnZlKSlyZXR1cm4gdmU7Y29uc3QgQWU9MTI3JnZlO2lmKEFlPjQpcmV0dXJuIG9lLmVycm9y''@;'; + put 'put ''KCJsZW5ndGggb2N0ZWN0IGlzIHRvbyBsb25nIik7dmU9MDtmb3IobGV0IGtlPTA7a2U8QWU7a2UrKyl7dmU8PD04O2NvbnN0IFNlPW9lLnJlYWRVSW50OChkZSk7aWYob2UuaXNFcnJvcihTZSkpcmV0dXJuIFNlO3ZlfD1TZX1yZXR1cm4gdmV9VS5leHBvcnRzPWVlLGVlLnByb3RvdHlwZS5k''@;'; + put 'put ''ZWNvZGU9ZnVuY3Rpb24ob2UsY2Upe3JldHVybiBZLmlzRGVjb2RlckJ1ZmZlcihvZSl8fChvZT1uZXcgWShvZSxjZSkpLHRoaXMudHJlZS5fZGVjb2RlKG9lLGNlKX0saWUocSxXKSxxLnByb3RvdHlwZS5fcGVla1RhZz1mdW5jdGlvbihvZSxjZSxkZSl7aWYob2UuaXNFbXB0eSgpKXJldHVy''@;'; + put 'put ''biExO2NvbnN0IHZlPW9lLnNhdmUoKSxBZT1KKG9lLCdGYWlsZWQgdG8gcGVlayB0YWc6ICInK2NlKyciJyk7cmV0dXJuIG9lLmlzRXJyb3IoQWUpP0FlOihvZS5yZXN0b3JlKHZlKSxBZS50YWc9PT1jZXx8QWUudGFnU3RyPT09Y2V8fEFlLnRhZ1N0cisib2YiPT09Y2V8fGRlKX0scS5wcm90''@;'; + put 'put ''b3R5cGUuX2RlY29kZVRhZz1mdW5jdGlvbihvZSxjZSxkZSl7Y29uc3QgdmU9SihvZSwnRmFpbGVkIHRvIGRlY29kZSB0YWcgb2YgIicrY2UrJyInKTtpZihvZS5pc0Vycm9yKHZlKSlyZXR1cm4gdmU7bGV0IEFlPXNlKG9lLHZlLnByaW1pdGl2ZSwnRmFpbGVkIHRvIGdldCBsZW5ndGggb2Yg''@;'; + put 'put ''IicrY2UrJyInKTtpZihvZS5pc0Vycm9yKEFlKSlyZXR1cm4gQWU7aWYoIWRlJiZ2ZS50YWchPT1jZSYmdmUudGFnU3RyIT09Y2UmJnZlLnRhZ1N0cisib2YiIT09Y2UpcmV0dXJuIG9lLmVycm9yKCdGYWlsZWQgdG8gbWF0Y2ggdGFnOiAiJytjZSsnIicpO2lmKHZlLnByaW1pdGl2ZXx8bnVs''@;'; + put 'put ''bCE9PUFlKXJldHVybiBvZS5za2lwKEFlLCdGYWlsZWQgdG8gbWF0Y2ggYm9keSBvZjogIicrY2UrJyInKTtjb25zdCBrZT1vZS5zYXZlKCksU2U9dGhpcy5fc2tpcFVudGlsRW5kKG9lLCdGYWlsZWQgdG8gc2tpcCBpbmRlZmluaXRlIGxlbmd0aCBib2R5OiAiJyt0aGlzLnRhZysnIicpO3Jl''@;'; + put 'put ''dHVybiBvZS5pc0Vycm9yKFNlKT9TZTooQWU9b2Uub2Zmc2V0LWtlLm9mZnNldCxvZS5yZXN0b3JlKGtlKSxvZS5za2lwKEFlLCdGYWlsZWQgdG8gbWF0Y2ggYm9keSBvZjogIicrY2UrJyInKSl9LHEucHJvdG90eXBlLl9za2lwVW50aWxFbmQ9ZnVuY3Rpb24ob2UsY2Upe2Zvcig7Oyl7Y29u''@;'; + put 'put ''c3QgZGU9SihvZSxjZSk7aWYob2UuaXNFcnJvcihkZSkpcmV0dXJuIGRlO2NvbnN0IHZlPXNlKG9lLGRlLnByaW1pdGl2ZSxjZSk7aWYob2UuaXNFcnJvcih2ZSkpcmV0dXJuIHZlO2xldCBBZTtpZihBZT1kZS5wcmltaXRpdmV8fG51bGwhPT12ZT9vZS5za2lwKHZlKTp0aGlzLl9za2lwVW50''@;'; + put 'put ''aWxFbmQob2UsY2UpLG9lLmlzRXJyb3IoQWUpKXJldHVybiBBZTtpZigiZW5kIj09PWRlLnRhZ1N0cilicmVha319LHEucHJvdG90eXBlLl9kZWNvZGVMaXN0PWZ1bmN0aW9uKG9lLGNlLGRlLHZlKXtjb25zdCBBZT1bXTtmb3IoOyFvZS5pc0VtcHR5KCk7KXtjb25zdCBrZT10aGlzLl9wZWVr''@;'; + put 'put ''VGFnKG9lLCJlbmQiKTtpZihvZS5pc0Vycm9yKGtlKSlyZXR1cm4ga2U7Y29uc3QgU2U9ZGUuZGVjb2RlKG9lLCJkZXIiLHZlKTtpZihvZS5pc0Vycm9yKFNlKSYma2UpYnJlYWs7QWUucHVzaChTZSl9cmV0dXJuIEFlfSxxLnByb3RvdHlwZS5fZGVjb2RlU3RyPWZ1bmN0aW9uKG9lLGNlKXtp''@;'; + put 'put ''ZigiYml0c3RyIj09PWNlKXtjb25zdCBkZT1vZS5yZWFkVUludDgoKTtyZXR1cm4gb2UuaXNFcnJvcihkZSk/ZGU6e3VudXNlZDpkZSxkYXRhOm9lLnJhdygpfX1pZigiYm1wc3RyIj09PWNlKXtjb25zdCBkZT1vZS5yYXcoKTtpZihkZS5sZW5ndGglMj09MSlyZXR1cm4gb2UuZXJyb3IoIkRl''@;'; + put 'put ''Y29kaW5nIG9mIHN0cmluZyB0eXBlOiBibXBzdHIgbGVuZ3RoIG1pc21hdGNoIik7bGV0IHZlPSIiO2ZvcihsZXQgQWU9MDtBZTxkZS5sZW5ndGgvMjtBZSsrKXZlKz1TdHJpbmcuZnJvbUNoYXJDb2RlKGRlLnJlYWRVSW50MTZCRSgyKkFlKSk7cmV0dXJuIHZlfWlmKCJudW1zdHIiPT09Y2Up''@;'; + put 'put ''e2NvbnN0IGRlPW9lLnJhdygpLnRvU3RyaW5nKCJhc2NpaSIpO3JldHVybiB0aGlzLl9pc051bXN0cihkZSk/ZGU6b2UuZXJyb3IoIkRlY29kaW5nIG9mIHN0cmluZyB0eXBlOiBudW1zdHIgdW5zdXBwb3J0ZWQgY2hhcmFjdGVycyIpfWlmKCJvY3RzdHIiPT09Y2V8fCJvYmpEZXNjIj09PWNl''@;'; + put 'put ''KXJldHVybiBvZS5yYXcoKTtpZigicHJpbnRzdHIiPT09Y2Upe2NvbnN0IGRlPW9lLnJhdygpLnRvU3RyaW5nKCJhc2NpaSIpO3JldHVybiB0aGlzLl9pc1ByaW50c3RyKGRlKT9kZTpvZS5lcnJvcigiRGVjb2Rpbmcgb2Ygc3RyaW5nIHR5cGU6IHByaW50c3RyIHVuc3VwcG9ydGVkIGNoYXJh''@;'; + put 'put ''Y3RlcnMiKX1yZXR1cm4vc3RyJC8udGVzdChjZSk/b2UucmF3KCkudG9TdHJpbmcoKTpvZS5lcnJvcigiRGVjb2Rpbmcgb2Ygc3RyaW5nIHR5cGU6ICIrY2UrIiB1bnN1cHBvcnRlZCIpfSxxLnByb3RvdHlwZS5fZGVjb2RlT2JqaWQ9ZnVuY3Rpb24ob2UsY2UsZGUpe2xldCB2ZTtjb25zdCBB''@;'; + put 'put ''ZT1bXTtsZXQga2U9MCxTZT0wO2Zvcig7IW9lLmlzRW1wdHkoKTspU2U9b2UucmVhZFVJbnQ4KCksa2U8PD03LGtlfD0xMjcmU2UsMD09KDEyOCZTZSkmJihBZS5wdXNoKGtlKSxrZT0wKTtpZigxMjgmU2UmJkFlLnB1c2goa2UpLHZlPWRlP0FlOltBZVswXS80MHwwLEFlWzBdJTQwXS5jb25j''@;'; + put 'put ''YXQoQWUuc2xpY2UoMSkpLGNlKXtsZXQgRWU9Y2VbdmUuam9pbigiICIpXTt2b2lkIDA9PT1FZSYmKEVlPWNlW3ZlLmpvaW4oIi4iKV0pLHZvaWQgMCE9PUVlJiYodmU9RWUpfXJldHVybiB2ZX0scS5wcm90b3R5cGUuX2RlY29kZVRpbWU9ZnVuY3Rpb24ob2UsY2Upe2NvbnN0IGRlPW9lLnJh''@;'; + put 'put ''dygpLnRvU3RyaW5nKCk7bGV0IHZlLEFlLGtlLFNlLEllLFRlO2lmKCJnZW50aW1lIj09PWNlKXZlPTB8ZGUuc2xpY2UoMCw0KSxBZT0wfGRlLnNsaWNlKDQsNiksa2U9MHxkZS5zbGljZSg2LDgpLFNlPTB8ZGUuc2xpY2UoOCwxMCksSWU9MHxkZS5zbGljZSgxMCwxMiksVGU9MHxkZS5zbGlj''@;'; + put 'put ''ZSgxMiwxNCk7ZWxzZXtpZigidXRjdGltZSIhPT1jZSlyZXR1cm4gb2UuZXJyb3IoIkRlY29kaW5nICIrY2UrIiB0aW1lIGlzIG5vdCBzdXBwb3J0ZWQgeWV0Iik7dmU9MHxkZS5zbGljZSgwLDIpLEFlPTB8ZGUuc2xpY2UoMiw0KSxrZT0wfGRlLnNsaWNlKDQsNiksU2U9MHxkZS5zbGljZSg2''@;'; + put 'put ''LDgpLEllPTB8ZGUuc2xpY2UoOCwxMCksVGU9MHxkZS5zbGljZSgxMCwxMiksdmU9dmU8NzA/MmUzK3ZlOjE5MDArdmV9cmV0dXJuIERhdGUuVVRDKHZlLEFlLTEsa2UsU2UsSWUsVGUsMCl9LHEucHJvdG90eXBlLl9kZWNvZGVOdWxsPWZ1bmN0aW9uKCl7cmV0dXJuIG51bGx9LHEucHJvdG90''@;'; + put 'put ''eXBlLl9kZWNvZGVCb29sPWZ1bmN0aW9uKG9lKXtjb25zdCBjZT1vZS5yZWFkVUludDgoKTtyZXR1cm4gb2UuaXNFcnJvcihjZSk/Y2U6MCE9PWNlfSxxLnByb3RvdHlwZS5fZGVjb2RlSW50PWZ1bmN0aW9uKG9lLGNlKXtjb25zdCBkZT1vZS5yYXcoKTtsZXQgdmU9bmV3IGFlKGRlKTtyZXR1''@;'; + put 'put ''cm4gY2UmJih2ZT1jZVt2ZS50b1N0cmluZygxMCldfHx2ZSksdmV9LHEucHJvdG90eXBlLl91c2U9ZnVuY3Rpb24ob2UsY2Upe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBvZSYmKG9lPW9lKGNlKSksb2UuX2dldERlY29kZXIoImRlciIpLnRyZWV9fSw4MzA3OihVLFEsWik9PnsidXNlIHN0''@;'; + put 'put ''cmljdCI7Y29uc3QgaWU9UTtpZS5kZXI9WigxNjcxKSxpZS5wZW09Wig5NjMxKX0sOTYzMTooVSxRLFopPT57InVzZSBzdHJpY3QiO2NvbnN0IGllPVooNTcxNyksYWU9WigyMzk5KS5CdWZmZXIsWT1aKDE2NzEpO2Z1bmN0aW9uIFcoTil7WS5jYWxsKHRoaXMsTiksdGhpcy5lbmM9InBlbSJ9''@;'; + put 'put ''aWUoVyxZKSxVLmV4cG9ydHM9VyxXLnByb3RvdHlwZS5kZWNvZGU9ZnVuY3Rpb24oTixlZSl7Y29uc3QgcT1OLnRvU3RyaW5nKCkuc3BsaXQoL1tcclxuXSsvZyksSj1lZS5sYWJlbC50b1VwcGVyQ2FzZSgpLHNlPS9eLS0tLS0oQkVHSU58RU5EKSAoW14tXSspLS0tLS0kLztsZXQgb2U9LTEs''@;'; + put 'put ''Y2U9LTE7Zm9yKGxldCBBZT0wO0FlPHEubGVuZ3RoO0FlKyspe2NvbnN0IGtlPXFbQWVdLm1hdGNoKHNlKTtpZihudWxsIT09a2UmJmtlWzJdPT09Sil7aWYoLTEhPT1vZSl7aWYoIkVORCIhPT1rZVsxXSlicmVhaztjZT1BZTticmVha31pZigiQkVHSU4iIT09a2VbMV0pYnJlYWs7b2U9QWV9''@;'; + put 'put ''fWlmKC0xPT09b2V8fC0xPT09Y2UpdGhyb3cgbmV3IEVycm9yKCJQRU0gc2VjdGlvbiBub3QgZm91bmQgZm9yOiAiK0opO2NvbnN0IGRlPXEuc2xpY2Uob2UrMSxjZSkuam9pbigiIik7ZGUucmVwbGFjZSgvW15hLXowLTkrLz1dKy9naSwiIik7Y29uc3QgdmU9YWUuZnJvbShkZSwiYmFzZTY0''@;'; + put 'put ''Iik7cmV0dXJuIFkucHJvdG90eXBlLmRlY29kZS5jYWxsKHRoaXMsdmUsZWUpfX0sNjk4NDooVSxRLFopPT57InVzZSBzdHJpY3QiO2NvbnN0IGllPVooNTcxNyksYWU9WigyMzk5KS5CdWZmZXIsWT1aKDE5NDkpLFc9WigxNjApO2Z1bmN0aW9uIE4oSil7dGhpcy5lbmM9ImRlciIsdGhpcy5u''@;'; + put 'put ''YW1lPUoubmFtZSx0aGlzLmVudGl0eT1KLHRoaXMudHJlZT1uZXcgZWUsdGhpcy50cmVlLl9pbml0KEouYm9keSl9ZnVuY3Rpb24gZWUoSil7WS5jYWxsKHRoaXMsImRlciIsSil9ZnVuY3Rpb24gcShKKXtyZXR1cm4gSjwxMD8iMCIrSjpKfVUuZXhwb3J0cz1OLE4ucHJvdG90eXBlLmVuY29k''@;'; + put 'put ''ZT1mdW5jdGlvbihKLHNlKXtyZXR1cm4gdGhpcy50cmVlLl9lbmNvZGUoSixzZSkuam9pbigpfSxpZShlZSxZKSxlZS5wcm90b3R5cGUuX2VuY29kZUNvbXBvc2l0ZT1mdW5jdGlvbihKLHNlLG9lLGNlKXtjb25zdCBkZT1mdW5jdGlvbihrZSxTZSxJZSxUZSl7bGV0IEVlO2lmKCJzZXFvZiI9''@;'; + put 'put ''PT1rZT9rZT0ic2VxIjoic2V0b2YiPT09a2UmJihrZT0ic2V0IiksVy50YWdCeU5hbWUuaGFzT3duUHJvcGVydHkoa2UpKUVlPVcudGFnQnlOYW1lW2tlXTtlbHNle2lmKCJudW1iZXIiIT10eXBlb2Yga2V8fCgwfGtlKSE9PWtlKXJldHVybiBUZS5lcnJvcigiVW5rbm93biB0YWc6ICIra2Up''@;'; + put 'put ''O0VlPWtlfXJldHVybiBFZT49MzE/VGUuZXJyb3IoIk11bHRpLW9jdGV0IHRhZyBlbmNvZGluZyB1bnN1cHBvcnRlZCIpOihTZXx8KEVlfD0zMiksRWV8PVcudGFnQ2xhc3NCeU5hbWVbSWV8fCJ1bml2ZXJzYWwiXTw8NixFZSl9KEosc2Usb2UsdGhpcy5yZXBvcnRlcik7aWYoY2UubGVuZ3Ro''@;'; + put 'put ''PDEyOCl7Y29uc3Qga2U9YWUuYWxsb2MoMik7cmV0dXJuIGtlWzBdPWRlLGtlWzFdPWNlLmxlbmd0aCx0aGlzLl9jcmVhdGVFbmNvZGVyQnVmZmVyKFtrZSxjZV0pfWxldCB2ZT0xO2ZvcihsZXQga2U9Y2UubGVuZ3RoO2tlPj0yNTY7a2U+Pj04KXZlKys7Y29uc3QgQWU9YWUuYWxsb2MoMit2''@;'; + put 'put ''ZSk7QWVbMF09ZGUsQWVbMV09MTI4fHZlO2ZvcihsZXQga2U9MSt2ZSxTZT1jZS5sZW5ndGg7U2U+MDtrZS0tLFNlPj49OClBZVtrZV09MjU1JlNlO3JldHVybiB0aGlzLl9jcmVhdGVFbmNvZGVyQnVmZmVyKFtBZSxjZV0pfSxlZS5wcm90b3R5cGUuX2VuY29kZVN0cj1mdW5jdGlvbihKLHNl''@;'; + put 'put ''KXtpZigiYml0c3RyIj09PXNlKXJldHVybiB0aGlzLl9jcmVhdGVFbmNvZGVyQnVmZmVyKFswfEoudW51c2VkLEouZGF0YV0pO2lmKCJibXBzdHIiPT09c2Upe2NvbnN0IG9lPWFlLmFsbG9jKDIqSi5sZW5ndGgpO2ZvcihsZXQgY2U9MDtjZTxKLmxlbmd0aDtjZSsrKW9lLndyaXRlVUludDE2''@;'; + put 'put ''QkUoSi5jaGFyQ29kZUF0KGNlKSwyKmNlKTtyZXR1cm4gdGhpcy5fY3JlYXRlRW5jb2RlckJ1ZmZlcihvZSl9cmV0dXJuIm51bXN0ciI9PT1zZT90aGlzLl9pc051bXN0cihKKT90aGlzLl9jcmVhdGVFbmNvZGVyQnVmZmVyKEopOnRoaXMucmVwb3J0ZXIuZXJyb3IoIkVuY29kaW5nIG9mIHN0''@;'; + put 'put ''cmluZyB0eXBlOiBudW1zdHIgc3VwcG9ydHMgb25seSBkaWdpdHMgYW5kIHNwYWNlIik6InByaW50c3RyIj09PXNlP3RoaXMuX2lzUHJpbnRzdHIoSik/dGhpcy5fY3JlYXRlRW5jb2RlckJ1ZmZlcihKKTp0aGlzLnJlcG9ydGVyLmVycm9yKCJFbmNvZGluZyBvZiBzdHJpbmcgdHlwZTogcHJp''@;'; + put 'put ''bnRzdHIgc3VwcG9ydHMgb25seSBsYXRpbiB1cHBlciBhbmQgbG93ZXIgY2FzZSBsZXR0ZXJzLCBkaWdpdHMsIHNwYWNlLCBhcG9zdHJvcGhlLCBsZWZ0IGFuZCByaWd0aCBwYXJlbnRoZXNpcywgcGx1cyBzaWduLCBjb21tYSwgaHlwaGVuLCBkb3QsIHNsYXNoLCBjb2xvbiwgZXF1YWwgc2ln''@;'; + put 'put ''biwgcXVlc3Rpb24gbWFyayIpOi9zdHIkLy50ZXN0KHNlKXx8Im9iakRlc2MiPT09c2U/dGhpcy5fY3JlYXRlRW5jb2RlckJ1ZmZlcihKKTp0aGlzLnJlcG9ydGVyLmVycm9yKCJFbmNvZGluZyBvZiBzdHJpbmcgdHlwZTogIitzZSsiIHVuc3VwcG9ydGVkIil9LGVlLnByb3RvdHlwZS5fZW5j''@;'; + put 'put ''b2RlT2JqaWQ9ZnVuY3Rpb24oSixzZSxvZSl7aWYoInN0cmluZyI9PXR5cGVvZiBKKXtpZighc2UpcmV0dXJuIHRoaXMucmVwb3J0ZXIuZXJyb3IoInN0cmluZyBvYmppZCBnaXZlbiwgYnV0IG5vIHZhbHVlcyBtYXAgZm91bmQiKTtpZighc2UuaGFzT3duUHJvcGVydHkoSikpcmV0dXJuIHRo''@;'; + put 'put ''aXMucmVwb3J0ZXIuZXJyb3IoIm9iamlkIG5vdCBmb3VuZCBpbiB2YWx1ZXMgbWFwIik7Sj1zZVtKXS5zcGxpdCgvW1xzLl0rL2cpO2ZvcihsZXQgQWU9MDtBZTxKLmxlbmd0aDtBZSsrKUpbQWVdfD0wfWVsc2UgaWYoQXJyYXkuaXNBcnJheShKKSl7Sj1KLnNsaWNlKCk7Zm9yKGxldCBBZT0w''@;'; + put 'put ''O0FlPEoubGVuZ3RoO0FlKyspSltBZV18PTB9aWYoIUFycmF5LmlzQXJyYXkoSikpcmV0dXJuIHRoaXMucmVwb3J0ZXIuZXJyb3IoIm9iamlkKCkgc2hvdWxkIGJlIGVpdGhlciBhcnJheSBvciBzdHJpbmcsIGdvdDogIitKU09OLnN0cmluZ2lmeShKKSk7aWYoIW9lKXtpZihKWzFdPj00MCly''@;'; + put 'put ''ZXR1cm4gdGhpcy5yZXBvcnRlci5lcnJvcigiU2Vjb25kIG9iamlkIGlkZW50aWZpZXIgT09CIik7Si5zcGxpY2UoMCwyLDQwKkpbMF0rSlsxXSl9bGV0IGNlPTA7Zm9yKGxldCBBZT0wO0FlPEoubGVuZ3RoO0FlKyspe2xldCBrZT1KW0FlXTtmb3IoY2UrKztrZT49MTI4O2tlPj49NyljZSsr''@;'; + put 'put ''fWNvbnN0IGRlPWFlLmFsbG9jKGNlKTtsZXQgdmU9ZGUubGVuZ3RoLTE7Zm9yKGxldCBBZT1KLmxlbmd0aC0xO0FlPj0wO0FlLS0pe2xldCBrZT1KW0FlXTtmb3IoZGVbdmUtLV09MTI3JmtlOyhrZT4+PTcpPjA7KWRlW3ZlLS1dPTEyOHwxMjcma2V9cmV0dXJuIHRoaXMuX2NyZWF0ZUVuY29k''@;'; + put 'put ''ZXJCdWZmZXIoZGUpfSxlZS5wcm90b3R5cGUuX2VuY29kZVRpbWU9ZnVuY3Rpb24oSixzZSl7bGV0IG9lO2NvbnN0IGNlPW5ldyBEYXRlKEopO3JldHVybiJnZW50aW1lIj09PXNlP29lPVtxKGNlLmdldFVUQ0Z1bGxZZWFyKCkpLHEoY2UuZ2V0VVRDTW9udGgoKSsxKSxxKGNlLmdldFVUQ0Rh''@;'; + put 'put ''dGUoKSkscShjZS5nZXRVVENIb3VycygpKSxxKGNlLmdldFVUQ01pbnV0ZXMoKSkscShjZS5nZXRVVENTZWNvbmRzKCkpLCJaIl0uam9pbigiIik6InV0Y3RpbWUiPT09c2U/b2U9W3EoY2UuZ2V0VVRDRnVsbFllYXIoKSUxMDApLHEoY2UuZ2V0VVRDTW9udGgoKSsxKSxxKGNlLmdldFVUQ0Rh''@;'; + put 'put ''dGUoKSkscShjZS5nZXRVVENIb3VycygpKSxxKGNlLmdldFVUQ01pbnV0ZXMoKSkscShjZS5nZXRVVENTZWNvbmRzKCkpLCJaIl0uam9pbigiIik6dGhpcy5yZXBvcnRlci5lcnJvcigiRW5jb2RpbmcgIitzZSsiIHRpbWUgaXMgbm90IHN1cHBvcnRlZCB5ZXQiKSx0aGlzLl9lbmNvZGVTdHIo''@;'; + put 'put ''b2UsIm9jdHN0ciIpfSxlZS5wcm90b3R5cGUuX2VuY29kZU51bGw9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY3JlYXRlRW5jb2RlckJ1ZmZlcigiIil9LGVlLnByb3RvdHlwZS5fZW5jb2RlSW50PWZ1bmN0aW9uKEosc2Upe2lmKCJzdHJpbmciPT10eXBlb2YgSil7aWYoIXNlKXJldHVybiB0''@;'; + put 'put ''aGlzLnJlcG9ydGVyLmVycm9yKCJTdHJpbmcgaW50IG9yIGVudW0gZ2l2ZW4sIGJ1dCBubyB2YWx1ZXMgbWFwIik7aWYoIXNlLmhhc093blByb3BlcnR5KEopKXJldHVybiB0aGlzLnJlcG9ydGVyLmVycm9yKCJWYWx1ZXMgbWFwIGRvZXNuJ3QgY29udGFpbjogIitKU09OLnN0cmluZ2lmeShK''@;'; + put 'put ''KSk7Sj1zZVtKXX1pZigibnVtYmVyIiE9dHlwZW9mIEomJiFhZS5pc0J1ZmZlcihKKSl7Y29uc3QgZGU9Si50b0FycmF5KCk7IUouc2lnbiYmMTI4JmRlWzBdJiZkZS51bnNoaWZ0KDApLEo9YWUuZnJvbShkZSl9aWYoYWUuaXNCdWZmZXIoSikpe2xldCBkZT1KLmxlbmd0aDswPT09Si5sZW5n''@;'; + put 'put ''dGgmJmRlKys7Y29uc3QgdmU9YWUuYWxsb2MoZGUpO3JldHVybiBKLmNvcHkodmUpLDA9PT1KLmxlbmd0aCYmKHZlWzBdPTApLHRoaXMuX2NyZWF0ZUVuY29kZXJCdWZmZXIodmUpfWlmKEo8MTI4KXJldHVybiB0aGlzLl9jcmVhdGVFbmNvZGVyQnVmZmVyKEopO2lmKEo8MjU2KXJldHVybiB0''@;'; + put 'put ''aGlzLl9jcmVhdGVFbmNvZGVyQnVmZmVyKFswLEpdKTtsZXQgb2U9MTtmb3IobGV0IGRlPUo7ZGU+PTI1NjtkZT4+PTgpb2UrKztjb25zdCBjZT1uZXcgQXJyYXkob2UpO2ZvcihsZXQgZGU9Y2UubGVuZ3RoLTE7ZGU+PTA7ZGUtLSljZVtkZV09MjU1JkosSj4+PTg7cmV0dXJuIDEyOCZjZVsw''@;'; + put 'put ''XSYmY2UudW5zaGlmdCgwKSx0aGlzLl9jcmVhdGVFbmNvZGVyQnVmZmVyKGFlLmZyb20oY2UpKX0sZWUucHJvdG90eXBlLl9lbmNvZGVCb29sPWZ1bmN0aW9uKEope3JldHVybiB0aGlzLl9jcmVhdGVFbmNvZGVyQnVmZmVyKEo/MjU1OjApfSxlZS5wcm90b3R5cGUuX3VzZT1mdW5jdGlvbihK''@;'; + put 'put ''LHNlKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgSiYmKEo9SihzZSkpLEouX2dldEVuY29kZXIoImRlciIpLnRyZWV9LGVlLnByb3RvdHlwZS5fc2tpcERlZmF1bHQ9ZnVuY3Rpb24oSixzZSxvZSl7Y29uc3QgY2U9dGhpcy5fYmFzZVN0YXRlO2xldCBkZTtpZihudWxsPT09Y2UuZGVmYXVs''@;'; + put 'put ''dClyZXR1cm4hMTtjb25zdCB2ZT1KLmpvaW4oKTtpZih2b2lkIDA9PT1jZS5kZWZhdWx0QnVmZmVyJiYoY2UuZGVmYXVsdEJ1ZmZlcj10aGlzLl9lbmNvZGVWYWx1ZShjZS5kZWZhdWx0LHNlLG9lKS5qb2luKCkpLHZlLmxlbmd0aCE9PWNlLmRlZmF1bHRCdWZmZXIubGVuZ3RoKXJldHVybiEx''@;'; + put 'put ''O2ZvcihkZT0wO2RlPHZlLmxlbmd0aDtkZSsrKWlmKHZlW2RlXSE9PWNlLmRlZmF1bHRCdWZmZXJbZGVdKXJldHVybiExO3JldHVybiEwfX0sNjU3OTooVSxRLFopPT57InVzZSBzdHJpY3QiO2NvbnN0IGllPVE7aWUuZGVyPVooNjk4NCksaWUucGVtPVooMjg4Myl9LDI4ODM6KFUsUSxaKT0+''@;'; + put 'put ''eyJ1c2Ugc3RyaWN0Ijtjb25zdCBpZT1aKDU3MTcpLGFlPVooNjk4NCk7ZnVuY3Rpb24gWShXKXthZS5jYWxsKHRoaXMsVyksdGhpcy5lbmM9InBlbSJ9aWUoWSxhZSksVS5leHBvcnRzPVksWS5wcm90b3R5cGUuZW5jb2RlPWZ1bmN0aW9uKFcsTil7Y29uc3QgZWU9YWUucHJvdG90eXBlLmVu''@;'; + put 'put ''Y29kZS5jYWxsKHRoaXMsVykudG9TdHJpbmcoImJhc2U2NCIpLHE9WyItLS0tLUJFR0lOICIrTi5sYWJlbCsiLS0tLS0iXTtmb3IobGV0IEo9MDtKPGVlLmxlbmd0aDtKKz02NClxLnB1c2goZWUuc2xpY2UoSixKKzY0KSk7cmV0dXJuIHEucHVzaCgiLS0tLS1FTkQgIitOLmxhYmVsKyItLS0t''@;'; + put 'put ''LSIpLHEuam9pbigiXG4iKX19LDQ1OTA6ZnVuY3Rpb24oVSxRLFopeyFmdW5jdGlvbihpZSxhZSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIFkoeCxQKXtpZigheCl0aHJvdyBuZXcgRXJyb3IoUHx8IkFzc2VydGlvbiBmYWlsZWQiKX1mdW5jdGlvbiBXKHgsUCl7eC5zdXBlcl89UDt2YXIgVj1m''@;'; + put 'put ''dW5jdGlvbigpe307Vi5wcm90b3R5cGU9UC5wcm90b3R5cGUseC5wcm90b3R5cGU9bmV3IFYseC5wcm90b3R5cGUuY29uc3RydWN0b3I9eH1mdW5jdGlvbiBOKHgsUCxWKXtpZihOLmlzQk4oeCkpcmV0dXJuIHg7dGhpcy5uZWdhdGl2ZT0wLHRoaXMud29yZHM9bnVsbCx0aGlzLmxlbmd0aD0w''@;'; + put 'put ''LHRoaXMucmVkPW51bGwsbnVsbCE9PXgmJigibGUiIT09UCYmImJlIiE9PVB8fChWPVAsUD0xMCksdGhpcy5faW5pdCh4fHwwLFB8fDEwLFZ8fCJiZSIpKX12YXIgZWU7Im9iamVjdCI9PXR5cGVvZiBpZT9pZS5leHBvcnRzPU46YWUuQk49TixOLkJOPU4sTi53b3JkU2l6ZT0yNjt0cnl7ZWU9''@;'; + put 'put ''InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cmJnZvaWQgMCE9PXdpbmRvdy5CdWZmZXI/d2luZG93LkJ1ZmZlcjpaKDk1MCkuQnVmZmVyfWNhdGNoKHgpe31mdW5jdGlvbiBxKHgsUCl7dmFyIFY9eC5jaGFyQ29kZUF0KFApO3JldHVybiBWPj02NSYmVjw9NzA/Vi01NTpWPj05NyYmVjw9MTAy''@;'; + put 'put ''P1YtODc6Vi00OCYxNX1mdW5jdGlvbiBKKHgsUCxWKXt2YXIgVD1xKHgsVik7cmV0dXJuIFYtMT49UCYmKFR8PXEoeCxWLTEpPDw0KSxUfWZ1bmN0aW9uIHNlKHgsUCxWLFQpe2Zvcih2YXIgUz0wLEY9TWF0aC5taW4oeC5sZW5ndGgsVikseWU9UDt5ZTxGO3llKyspe3ZhciBDZT14LmNoYXJD''@;'; + put 'put ''b2RlQXQoeWUpLTQ4O1MqPVQsUys9Q2U+PTQ5P0NlLTQ5KzEwOkNlPj0xNz9DZS0xNysxMDpDZX1yZXR1cm4gU31OLmlzQk49ZnVuY3Rpb24oeCl7cmV0dXJuIHggaW5zdGFuY2VvZiBOfHxudWxsIT09eCYmIm9iamVjdCI9PXR5cGVvZiB4JiZ4LmNvbnN0cnVjdG9yLndvcmRTaXplPT09Ti53''@;'; + put 'put ''b3JkU2l6ZSYmQXJyYXkuaXNBcnJheSh4LndvcmRzKX0sTi5tYXg9ZnVuY3Rpb24oeCxQKXtyZXR1cm4geC5jbXAoUCk+MD94OlB9LE4ubWluPWZ1bmN0aW9uKHgsUCl7cmV0dXJuIHguY21wKFApPDA/eDpQfSxOLnByb3RvdHlwZS5faW5pdD1mdW5jdGlvbih4LFAsVil7aWYoIm51bWJlciI9''@;'; + put 'put ''PXR5cGVvZiB4KXJldHVybiB0aGlzLl9pbml0TnVtYmVyKHgsUCxWKTtpZigib2JqZWN0Ij09dHlwZW9mIHgpcmV0dXJuIHRoaXMuX2luaXRBcnJheSh4LFAsVik7ImhleCI9PT1QJiYoUD0xNiksWShQPT09KDB8UCkmJlA+PTImJlA8PTM2KTt2YXIgVD0wOyItIj09PSh4PXgudG9TdHJpbmco''@;'; + put 'put ''KS5yZXBsYWNlKC9ccysvZywiIikpWzBdJiYoVCsrLHRoaXMubmVnYXRpdmU9MSksVDx4Lmxlbmd0aCYmKDE2PT09UD90aGlzLl9wYXJzZUhleCh4LFQsVik6KHRoaXMuX3BhcnNlQmFzZSh4LFAsVCksImxlIj09PVYmJnRoaXMuX2luaXRBcnJheSh0aGlzLnRvQXJyYXkoKSxQLFYpKSl9LE4u''@;'; + put 'put ''cHJvdG90eXBlLl9pbml0TnVtYmVyPWZ1bmN0aW9uKHgsUCxWKXt4PDAmJih0aGlzLm5lZ2F0aXZlPTEseD0teCkseDw2NzEwODg2ND8odGhpcy53b3Jkcz1bNjcxMDg4NjMmeF0sdGhpcy5sZW5ndGg9MSk6eDw0NTAzNTk5NjI3MzcwNDk2Pyh0aGlzLndvcmRzPVs2NzEwODg2MyZ4LHgvNjcx''@;'; + put 'put ''MDg4NjQmNjcxMDg4NjNdLHRoaXMubGVuZ3RoPTIpOihZKHg8OTAwNzE5OTI1NDc0MDk5MiksdGhpcy53b3Jkcz1bNjcxMDg4NjMmeCx4LzY3MTA4ODY0JjY3MTA4ODYzLDFdLHRoaXMubGVuZ3RoPTMpLCJsZSI9PT1WJiZ0aGlzLl9pbml0QXJyYXkodGhpcy50b0FycmF5KCksUCxWKX0sTi5w''@;'; + put 'put ''cm90b3R5cGUuX2luaXRBcnJheT1mdW5jdGlvbih4LFAsVil7aWYoWSgibnVtYmVyIj09dHlwZW9mIHgubGVuZ3RoKSx4Lmxlbmd0aDw9MClyZXR1cm4gdGhpcy53b3Jkcz1bMF0sdGhpcy5sZW5ndGg9MSx0aGlzO3RoaXMubGVuZ3RoPU1hdGguY2VpbCh4Lmxlbmd0aC8zKSx0aGlzLndvcmRz''@;'; + put 'put ''PW5ldyBBcnJheSh0aGlzLmxlbmd0aCk7Zm9yKHZhciBUPTA7VDx0aGlzLmxlbmd0aDtUKyspdGhpcy53b3Jkc1tUXT0wO3ZhciBTLEYseWU9MDtpZigiYmUiPT09Vilmb3IoVD14Lmxlbmd0aC0xLFM9MDtUPj0wO1QtPTMpdGhpcy53b3Jkc1tTXXw9KEY9eFtUXXx4W1QtMV08PDh8eFtULTJd''@;'; + put 'put ''PDwxNik8PHllJjY3MTA4ODYzLHRoaXMud29yZHNbUysxXT1GPj4+MjYteWUmNjcxMDg4NjMsKHllKz0yNCk+PTI2JiYoeWUtPTI2LFMrKyk7ZWxzZSBpZigibGUiPT09Vilmb3IoVD0wLFM9MDtUPHgubGVuZ3RoO1QrPTMpdGhpcy53b3Jkc1tTXXw9KEY9eFtUXXx4W1QrMV08PDh8eFtUKzJd''@;'; + put 'put ''PDwxNik8PHllJjY3MTA4ODYzLHRoaXMud29yZHNbUysxXT1GPj4+MjYteWUmNjcxMDg4NjMsKHllKz0yNCk+PTI2JiYoeWUtPTI2LFMrKyk7cmV0dXJuIHRoaXMuc3RyaXAoKX0sTi5wcm90b3R5cGUuX3BhcnNlSGV4PWZ1bmN0aW9uKHgsUCxWKXt0aGlzLmxlbmd0aD1NYXRoLmNlaWwoKHgu''@;'; + put 'put ''bGVuZ3RoLVApLzYpLHRoaXMud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoKTtmb3IodmFyIFQ9MDtUPHRoaXMubGVuZ3RoO1QrKyl0aGlzLndvcmRzW1RdPTA7dmFyIFMsRj0wLHllPTA7aWYoImJlIj09PVYpZm9yKFQ9eC5sZW5ndGgtMTtUPj1QO1QtPTIpUz1KKHgsUCxUKTw8Rix0aGlz''@;'; + put 'put ''LndvcmRzW3llXXw9NjcxMDg4NjMmUyxGPj0xOD8oRi09MTgsdGhpcy53b3Jkc1t5ZSs9MV18PVM+Pj4yNik6Ris9ODtlbHNlIGZvcihUPSh4Lmxlbmd0aC1QKSUyPT0wP1ArMTpQO1Q8eC5sZW5ndGg7VCs9MilTPUooeCxQLFQpPDxGLHRoaXMud29yZHNbeWVdfD02NzEwODg2MyZTLEY+PTE4''@;'; + put 'put ''PyhGLT0xOCx0aGlzLndvcmRzW3llKz0xXXw9Uz4+PjI2KTpGKz04O3RoaXMuc3RyaXAoKX0sTi5wcm90b3R5cGUuX3BhcnNlQmFzZT1mdW5jdGlvbih4LFAsVil7dGhpcy53b3Jkcz1bMF0sdGhpcy5sZW5ndGg9MTtmb3IodmFyIFQ9MCxTPTE7Uzw9NjcxMDg4NjM7Uyo9UClUKys7VC0tLFM9''@;'; + put 'put ''Uy9QfDA7Zm9yKHZhciBGPXgubGVuZ3RoLVYseWU9RiVULENlPU1hdGgubWluKEYsRi15ZSkrVixEZT0wLFBlPVY7UGU8Q2U7UGUrPVQpRGU9c2UoeCxQZSxQZStULFApLHRoaXMuaW11bG4oUyksdGhpcy53b3Jkc1swXStEZTw2NzEwODg2ND90aGlzLndvcmRzWzBdKz1EZTp0aGlzLl9pYWRk''@;'; + put 'put ''bihEZSk7aWYoMCE9PXllKXt2YXIgUWU9MTtmb3IoRGU9c2UoeCxQZSx4Lmxlbmd0aCxQKSxQZT0wO1BlPHllO1BlKyspUWUqPVA7dGhpcy5pbXVsbihRZSksdGhpcy53b3Jkc1swXStEZTw2NzEwODg2ND90aGlzLndvcmRzWzBdKz1EZTp0aGlzLl9pYWRkbihEZSl9dGhpcy5zdHJpcCgpfSxO''@;'; + put 'put ''LnByb3RvdHlwZS5jb3B5PWZ1bmN0aW9uKHgpe3gud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoKTtmb3IodmFyIFA9MDtQPHRoaXMubGVuZ3RoO1ArKyl4LndvcmRzW1BdPXRoaXMud29yZHNbUF07eC5sZW5ndGg9dGhpcy5sZW5ndGgseC5uZWdhdGl2ZT10aGlzLm5lZ2F0aXZlLHgucmVk''@;'; + put 'put ''PXRoaXMucmVkfSxOLnByb3RvdHlwZS5jbG9uZT1mdW5jdGlvbigpe3ZhciB4PW5ldyBOKG51bGwpO3JldHVybiB0aGlzLmNvcHkoeCkseH0sTi5wcm90b3R5cGUuX2V4cGFuZD1mdW5jdGlvbih4KXtmb3IoO3RoaXMubGVuZ3RoPHg7KXRoaXMud29yZHNbdGhpcy5sZW5ndGgrK109MDtyZXR1''@;'; + put 'put ''cm4gdGhpc30sTi5wcm90b3R5cGUuc3RyaXA9ZnVuY3Rpb24oKXtmb3IoO3RoaXMubGVuZ3RoPjEmJjA9PT10aGlzLndvcmRzW3RoaXMubGVuZ3RoLTFdOyl0aGlzLmxlbmd0aC0tO3JldHVybiB0aGlzLl9ub3JtU2lnbigpfSxOLnByb3RvdHlwZS5fbm9ybVNpZ249ZnVuY3Rpb24oKXtyZXR1''@;'; + put 'put ''cm4gMT09PXRoaXMubGVuZ3RoJiYwPT09dGhpcy53b3Jkc1swXSYmKHRoaXMubmVnYXRpdmU9MCksdGhpc30sTi5wcm90b3R5cGUuaW5zcGVjdD1mdW5jdGlvbigpe3JldHVybih0aGlzLnJlZD8iPEJOLVI6ICI6IjxCTjogIikrdGhpcy50b1N0cmluZygxNikrIj4ifTt2YXIgb2U9WyIiLCIw''@;'; + put 'put ''IiwiMDAiLCIwMDAiLCIwMDAwIiwiMDAwMDAiLCIwMDAwMDAiLCIwMDAwMDAwIiwiMDAwMDAwMDAiLCIwMDAwMDAwMDAiLCIwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAiLCIw''@;'; + put 'put ''MDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAw''@;'; + put 'put ''MDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIl0sY2U9WzAsMCwyNSwxNiwxMiwxMSwxMCw5LDgsOCw3LDcsNyw3LDYsNiw2LDYsNiw2LDYsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNV0sZGU9WzAsMCwzMzU1''@;'; + put 'put ''NDQzMiw0MzA0NjcyMSwxNjc3NzIxNiw0ODgyODEyNSw2MDQ2NjE3Niw0MDM1MzYwNywxNjc3NzIxNiw0MzA0NjcyMSwxZTcsMTk0ODcxNzEsMzU4MzE4MDgsNjI3NDg1MTcsNzUyOTUzNiwxMTM5MDYyNSwxNjc3NzIxNiwyNDEzNzU2OSwzNDAxMjIyNCw0NzA0NTg4MSw2NGU2LDQwODQxMDEs''@;'; + put 'put ''NTE1MzYzMiw2NDM2MzQzLDc5NjI2MjQsOTc2NTYyNSwxMTg4MTM3NiwxNDM0ODkwNywxNzIxMDM2OCwyMDUxMTE0OSwyNDNlNSwyODYyOTE1MSwzMzU1NDQzMiwzOTEzNTM5Myw0NTQzNTQyNCw1MjUyMTg3NSw2MDQ2NjE3Nl07ZnVuY3Rpb24gdmUoeCxQLFYpe1YubmVnYXRpdmU9UC5uZWdh''@;'; + put 'put ''dGl2ZV54Lm5lZ2F0aXZlO3ZhciBUPXgubGVuZ3RoK1AubGVuZ3RofDA7Vi5sZW5ndGg9VCxUPVQtMXwwO3ZhciBTPTB8eC53b3Jkc1swXSxGPTB8UC53b3Jkc1swXSx5ZT1TKkYsRGU9eWUvNjcxMDg4NjR8MDtWLndvcmRzWzBdPTY3MTA4ODYzJnllO2Zvcih2YXIgUGU9MTtQZTxUO1BlKysp''@;'; + put 'put ''e2Zvcih2YXIgUWU9RGU+Pj4yNiwkZT02NzEwODg2MyZEZSxndD1NYXRoLm1pbihQZSxQLmxlbmd0aC0xKSx3dD1NYXRoLm1heCgwLFBlLXgubGVuZ3RoKzEpO3d0PD1ndDt3dCsrKVFlKz0oeWU9KFM9MHx4LndvcmRzW1BlLXd0fDBdKSooRj0wfFAud29yZHNbd3RdKSskZSkvNjcxMDg4NjR8''@;'; + put 'put ''MCwkZT02NzEwODg2MyZ5ZTtWLndvcmRzW1BlXT0wfCRlLERlPTB8UWV9cmV0dXJuIDAhPT1EZT9WLndvcmRzW1BlXT0wfERlOlYubGVuZ3RoLS0sVi5zdHJpcCgpfU4ucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKHgsUCl7dmFyIFY7aWYoUD0wfFB8fDEsMTY9PT0oeD14fHwxMCl8fCJo''@;'; + put 'put ''ZXgiPT09eCl7Vj0iIjtmb3IodmFyIFQ9MCxTPTAsRj0wO0Y8dGhpcy5sZW5ndGg7RisrKXt2YXIgeWU9dGhpcy53b3Jkc1tGXSxDZT0oMTY3NzcyMTUmKHllPDxUfFMpKS50b1N0cmluZygxNik7Vj0wIT0oUz15ZT4+PjI0LVQmMTY3NzcyMTUpfHxGIT09dGhpcy5sZW5ndGgtMT9vZVs2LUNl''@;'; + put 'put ''Lmxlbmd0aF0rQ2UrVjpDZStWLChUKz0yKT49MjYmJihULT0yNixGLS0pfWZvcigwIT09UyYmKFY9Uy50b1N0cmluZygxNikrVik7Vi5sZW5ndGglUCE9MDspVj0iMCIrVjtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmUmJihWPSItIitWKSxWfWlmKHg9PT0oMHx4KSYmeD49MiYmeDw9MzYpe3Zh''@;'; + put 'put ''ciBEZT1jZVt4XSxQZT1kZVt4XTtWPSIiO3ZhciBRZT10aGlzLmNsb25lKCk7Zm9yKFFlLm5lZ2F0aXZlPTA7IVFlLmlzWmVybygpOyl7dmFyICRlPVFlLm1vZG4oUGUpLnRvU3RyaW5nKHgpO1Y9KFFlPVFlLmlkaXZuKFBlKSkuaXNaZXJvKCk/JGUrVjpvZVtEZS0kZS5sZW5ndGhdKyRlK1Z9''@;'; + put 'put ''Zm9yKHRoaXMuaXNaZXJvKCkmJihWPSIwIitWKTtWLmxlbmd0aCVQIT0wOylWPSIwIitWO3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZSYmKFY9Ii0iK1YpLFZ9WSghMSwiQmFzZSBzaG91bGQgYmUgYmV0d2VlbiAyIGFuZCAzNiIpfSxOLnByb3RvdHlwZS50b051bWJlcj1mdW5jdGlvbigpe3Zh''@;'; + put 'put ''ciB4PXRoaXMud29yZHNbMF07cmV0dXJuIDI9PT10aGlzLmxlbmd0aD94Kz02NzEwODg2NCp0aGlzLndvcmRzWzFdOjM9PT10aGlzLmxlbmd0aCYmMT09PXRoaXMud29yZHNbMl0/eCs9NDUwMzU5OTYyNzM3MDQ5Nis2NzEwODg2NCp0aGlzLndvcmRzWzFdOnRoaXMubGVuZ3RoPjImJlkoITEs''@;'; + put 'put ''Ik51bWJlciBjYW4gb25seSBzYWZlbHkgc3RvcmUgdXAgdG8gNTMgYml0cyIpLDAhPT10aGlzLm5lZ2F0aXZlPy14Onh9LE4ucHJvdG90eXBlLnRvSlNPTj1mdW5jdGlvbigpe3JldHVybiB0aGlzLnRvU3RyaW5nKDE2KX0sTi5wcm90b3R5cGUudG9CdWZmZXI9ZnVuY3Rpb24oeCxQKXtyZXR1''@;'; + put 'put ''cm4gWSh2b2lkIDAhPT1lZSksdGhpcy50b0FycmF5TGlrZShlZSx4LFApfSxOLnByb3RvdHlwZS50b0FycmF5PWZ1bmN0aW9uKHgsUCl7cmV0dXJuIHRoaXMudG9BcnJheUxpa2UoQXJyYXkseCxQKX0sTi5wcm90b3R5cGUudG9BcnJheUxpa2U9ZnVuY3Rpb24oeCxQLFYpe3ZhciBUPXRoaXMu''@;'; + put 'put ''Ynl0ZUxlbmd0aCgpLFM9Vnx8TWF0aC5tYXgoMSxUKTtZKFQ8PVMsImJ5dGUgYXJyYXkgbG9uZ2VyIHRoYW4gZGVzaXJlZCBsZW5ndGgiKSxZKFM+MCwiUmVxdWVzdGVkIGFycmF5IGxlbmd0aCA8PSAwIiksdGhpcy5zdHJpcCgpO3ZhciBGLHllLENlPSJsZSI9PT1QLERlPW5ldyB4KFMpLFBl''@;'; + put 'put ''PXRoaXMuY2xvbmUoKTtpZihDZSl7Zm9yKHllPTA7IVBlLmlzWmVybygpO3llKyspRj1QZS5hbmRsbigyNTUpLFBlLml1c2hybig4KSxEZVt5ZV09Rjtmb3IoO3llPFM7eWUrKylEZVt5ZV09MH1lbHNle2Zvcih5ZT0wO3llPFMtVDt5ZSsrKURlW3llXT0wO2Zvcih5ZT0wOyFQZS5pc1plcm8o''@;'; + put 'put ''KTt5ZSsrKUY9UGUuYW5kbG4oMjU1KSxQZS5pdXNocm4oOCksRGVbUy15ZS0xXT1GfXJldHVybiBEZX0sTi5wcm90b3R5cGUuX2NvdW50Qml0cz1NYXRoLmNsejMyP2Z1bmN0aW9uKHgpe3JldHVybiAzMi1NYXRoLmNsejMyKHgpfTpmdW5jdGlvbih4KXt2YXIgUD14LFY9MDtyZXR1cm4gUD49''@;'; + put 'put ''NDA5NiYmKFYrPTEzLFA+Pj49MTMpLFA+PTY0JiYoVis9NyxQPj4+PTcpLFA+PTgmJihWKz00LFA+Pj49NCksUD49MiYmKFYrPTIsUD4+Pj0yKSxWK1B9LE4ucHJvdG90eXBlLl96ZXJvQml0cz1mdW5jdGlvbih4KXtpZigwPT09eClyZXR1cm4gMjY7dmFyIFA9eCxWPTA7cmV0dXJuIDA9PSg4''@;'; + put 'put ''MTkxJlApJiYoVis9MTMsUD4+Pj0xMyksMD09KDEyNyZQKSYmKFYrPTcsUD4+Pj03KSwwPT0oMTUmUCkmJihWKz00LFA+Pj49NCksMD09KDMmUCkmJihWKz0yLFA+Pj49MiksMD09KDEmUCkmJlYrKyxWfSxOLnByb3RvdHlwZS5iaXRMZW5ndGg9ZnVuY3Rpb24oKXt2YXIgUD10aGlzLl9jb3Vu''@;'; + put 'put ''dEJpdHModGhpcy53b3Jkc1t0aGlzLmxlbmd0aC0xXSk7cmV0dXJuIDI2Kih0aGlzLmxlbmd0aC0xKStQfSxOLnByb3RvdHlwZS56ZXJvQml0cz1mdW5jdGlvbigpe2lmKHRoaXMuaXNaZXJvKCkpcmV0dXJuIDA7Zm9yKHZhciB4PTAsUD0wO1A8dGhpcy5sZW5ndGg7UCsrKXt2YXIgVj10aGlz''@;'; + put 'put ''Ll96ZXJvQml0cyh0aGlzLndvcmRzW1BdKTtpZih4Kz1WLDI2IT09VilicmVha31yZXR1cm4geH0sTi5wcm90b3R5cGUuYnl0ZUxlbmd0aD1mdW5jdGlvbigpe3JldHVybiBNYXRoLmNlaWwodGhpcy5iaXRMZW5ndGgoKS84KX0sTi5wcm90b3R5cGUudG9Ud29zPWZ1bmN0aW9uKHgpe3JldHVy''@;'; + put 'put ''biAwIT09dGhpcy5uZWdhdGl2ZT90aGlzLmFicygpLmlub3RuKHgpLmlhZGRuKDEpOnRoaXMuY2xvbmUoKX0sTi5wcm90b3R5cGUuZnJvbVR3b3M9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMudGVzdG4oeC0xKT90aGlzLm5vdG4oeCkuaWFkZG4oMSkuaW5lZygpOnRoaXMuY2xvbmUoKX0sTi5w''@;'; + put 'put ''cm90b3R5cGUuaXNOZWc9ZnVuY3Rpb24oKXtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmV9LE4ucHJvdG90eXBlLm5lZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmNsb25lKCkuaW5lZygpfSxOLnByb3RvdHlwZS5pbmVnPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXNaZXJvKCl8fCh0aGlzLm5l''@;'; + put 'put ''Z2F0aXZlXj0xKSx0aGlzfSxOLnByb3RvdHlwZS5pdW9yPWZ1bmN0aW9uKHgpe2Zvcig7dGhpcy5sZW5ndGg8eC5sZW5ndGg7KXRoaXMud29yZHNbdGhpcy5sZW5ndGgrK109MDtmb3IodmFyIFA9MDtQPHgubGVuZ3RoO1ArKyl0aGlzLndvcmRzW1BdPXRoaXMud29yZHNbUF18eC53b3Jkc1tQ''@;'; + put 'put ''XTtyZXR1cm4gdGhpcy5zdHJpcCgpfSxOLnByb3RvdHlwZS5pb3I9ZnVuY3Rpb24oeCl7cmV0dXJuIFkoMD09KHRoaXMubmVnYXRpdmV8eC5uZWdhdGl2ZSkpLHRoaXMuaXVvcih4KX0sTi5wcm90b3R5cGUub3I9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMubGVuZ3RoPngubGVuZ3RoP3RoaXMu''@;'; + put 'put ''Y2xvbmUoKS5pb3IoeCk6eC5jbG9uZSgpLmlvcih0aGlzKX0sTi5wcm90b3R5cGUudW9yPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmxlbmd0aD54Lmxlbmd0aD90aGlzLmNsb25lKCkuaXVvcih4KTp4LmNsb25lKCkuaXVvcih0aGlzKX0sTi5wcm90b3R5cGUuaXVhbmQ9ZnVuY3Rpb24oeCl7''@;'; + put 'put ''dmFyIFA7UD10aGlzLmxlbmd0aD54Lmxlbmd0aD94OnRoaXM7Zm9yKHZhciBWPTA7VjxQLmxlbmd0aDtWKyspdGhpcy53b3Jkc1tWXT10aGlzLndvcmRzW1ZdJngud29yZHNbVl07cmV0dXJuIHRoaXMubGVuZ3RoPVAubGVuZ3RoLHRoaXMuc3RyaXAoKX0sTi5wcm90b3R5cGUuaWFuZD1mdW5j''@;'; + put 'put ''dGlvbih4KXtyZXR1cm4gWSgwPT0odGhpcy5uZWdhdGl2ZXx4Lm5lZ2F0aXZlKSksdGhpcy5pdWFuZCh4KX0sTi5wcm90b3R5cGUuYW5kPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmxlbmd0aD54Lmxlbmd0aD90aGlzLmNsb25lKCkuaWFuZCh4KTp4LmNsb25lKCkuaWFuZCh0aGlzKX0sTi5w''@;'; + put 'put ''cm90b3R5cGUudWFuZD1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5sZW5ndGg+eC5sZW5ndGg/dGhpcy5jbG9uZSgpLml1YW5kKHgpOnguY2xvbmUoKS5pdWFuZCh0aGlzKX0sTi5wcm90b3R5cGUuaXV4b3I9ZnVuY3Rpb24oeCl7dmFyIFAsVjt0aGlzLmxlbmd0aD54Lmxlbmd0aD8oUD10aGlz''@;'; + put 'put ''LFY9eCk6KFA9eCxWPXRoaXMpO2Zvcih2YXIgVD0wO1Q8Vi5sZW5ndGg7VCsrKXRoaXMud29yZHNbVF09UC53b3Jkc1tUXV5WLndvcmRzW1RdO2lmKHRoaXMhPT1QKWZvcig7VDxQLmxlbmd0aDtUKyspdGhpcy53b3Jkc1tUXT1QLndvcmRzW1RdO3JldHVybiB0aGlzLmxlbmd0aD1QLmxlbmd0''@;'; + put 'put ''aCx0aGlzLnN0cmlwKCl9LE4ucHJvdG90eXBlLml4b3I9ZnVuY3Rpb24oeCl7cmV0dXJuIFkoMD09KHRoaXMubmVnYXRpdmV8eC5uZWdhdGl2ZSkpLHRoaXMuaXV4b3IoeCl9LE4ucHJvdG90eXBlLnhvcj1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5sZW5ndGg+eC5sZW5ndGg/dGhpcy5jbG9u''@;'; + put 'put ''ZSgpLml4b3IoeCk6eC5jbG9uZSgpLml4b3IodGhpcyl9LE4ucHJvdG90eXBlLnV4b3I9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMubGVuZ3RoPngubGVuZ3RoP3RoaXMuY2xvbmUoKS5pdXhvcih4KTp4LmNsb25lKCkuaXV4b3IodGhpcyl9LE4ucHJvdG90eXBlLmlub3RuPWZ1bmN0aW9uKHgp''@;'; + put 'put ''e1koIm51bWJlciI9PXR5cGVvZiB4JiZ4Pj0wKTt2YXIgUD0wfE1hdGguY2VpbCh4LzI2KSxWPXglMjY7dGhpcy5fZXhwYW5kKFApLFY+MCYmUC0tO2Zvcih2YXIgVD0wO1Q8UDtUKyspdGhpcy53b3Jkc1tUXT02NzEwODg2MyZ+dGhpcy53b3Jkc1tUXTtyZXR1cm4gVj4wJiYodGhpcy53b3Jk''@;'; + put 'put ''c1tUXT1+dGhpcy53b3Jkc1tUXSY2NzEwODg2Mz4+MjYtViksdGhpcy5zdHJpcCgpfSxOLnByb3RvdHlwZS5ub3RuPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmNsb25lKCkuaW5vdG4oeCl9LE4ucHJvdG90eXBlLnNldG49ZnVuY3Rpb24oeCxQKXtZKCJudW1iZXIiPT10eXBlb2YgeCYmeD49''@;'; + put 'put ''MCk7dmFyIFY9eC8yNnwwLFQ9eCUyNjtyZXR1cm4gdGhpcy5fZXhwYW5kKFYrMSksdGhpcy53b3Jkc1tWXT1QP3RoaXMud29yZHNbVl18MTw8VDp0aGlzLndvcmRzW1ZdJn4oMTw8VCksdGhpcy5zdHJpcCgpfSxOLnByb3RvdHlwZS5pYWRkPWZ1bmN0aW9uKHgpe3ZhciBQLFYsVDtpZigwIT09''@;'; + put 'put ''dGhpcy5uZWdhdGl2ZSYmMD09PXgubmVnYXRpdmUpcmV0dXJuIHRoaXMubmVnYXRpdmU9MCxQPXRoaXMuaXN1Yih4KSx0aGlzLm5lZ2F0aXZlXj0xLHRoaXMuX25vcm1TaWduKCk7aWYoMD09PXRoaXMubmVnYXRpdmUmJjAhPT14Lm5lZ2F0aXZlKXJldHVybiB4Lm5lZ2F0aXZlPTAsUD10aGlz''@;'; + put 'put ''LmlzdWIoeCkseC5uZWdhdGl2ZT0xLFAuX25vcm1TaWduKCk7dGhpcy5sZW5ndGg+eC5sZW5ndGg/KFY9dGhpcyxUPXgpOihWPXgsVD10aGlzKTtmb3IodmFyIFM9MCxGPTA7RjxULmxlbmd0aDtGKyspdGhpcy53b3Jkc1tGXT02NzEwODg2MyYoUD0oMHxWLndvcmRzW0ZdKSsoMHxULndvcmRz''@;'; + put 'put ''W0ZdKStTKSxTPVA+Pj4yNjtmb3IoOzAhPT1TJiZGPFYubGVuZ3RoO0YrKyl0aGlzLndvcmRzW0ZdPTY3MTA4ODYzJihQPSgwfFYud29yZHNbRl0pK1MpLFM9UD4+PjI2O2lmKHRoaXMubGVuZ3RoPVYubGVuZ3RoLDAhPT1TKXRoaXMud29yZHNbdGhpcy5sZW5ndGhdPVMsdGhpcy5sZW5ndGgr''@;'; + put 'put ''KztlbHNlIGlmKFYhPT10aGlzKWZvcig7RjxWLmxlbmd0aDtGKyspdGhpcy53b3Jkc1tGXT1WLndvcmRzW0ZdO3JldHVybiB0aGlzfSxOLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oeCl7dmFyIFA7cmV0dXJuIDAhPT14Lm5lZ2F0aXZlJiYwPT09dGhpcy5uZWdhdGl2ZT8oeC5uZWdhdGl2ZT0w''@;'; + put 'put ''LFA9dGhpcy5zdWIoeCkseC5uZWdhdGl2ZV49MSxQKTowPT09eC5uZWdhdGl2ZSYmMCE9PXRoaXMubmVnYXRpdmU/KHRoaXMubmVnYXRpdmU9MCxQPXguc3ViKHRoaXMpLHRoaXMubmVnYXRpdmU9MSxQKTp0aGlzLmxlbmd0aD54Lmxlbmd0aD90aGlzLmNsb25lKCkuaWFkZCh4KTp4LmNsb25l''@;'; + put 'put ''KCkuaWFkZCh0aGlzKX0sTi5wcm90b3R5cGUuaXN1Yj1mdW5jdGlvbih4KXtpZigwIT09eC5uZWdhdGl2ZSl7eC5uZWdhdGl2ZT0wO3ZhciBQPXRoaXMuaWFkZCh4KTtyZXR1cm4geC5uZWdhdGl2ZT0xLFAuX25vcm1TaWduKCl9aWYoMCE9PXRoaXMubmVnYXRpdmUpcmV0dXJuIHRoaXMubmVn''@;'; + put 'put ''YXRpdmU9MCx0aGlzLmlhZGQoeCksdGhpcy5uZWdhdGl2ZT0xLHRoaXMuX25vcm1TaWduKCk7dmFyIFYsVCxTPXRoaXMuY21wKHgpO2lmKDA9PT1TKXJldHVybiB0aGlzLm5lZ2F0aXZlPTAsdGhpcy5sZW5ndGg9MSx0aGlzLndvcmRzWzBdPTAsdGhpcztTPjA/KFY9dGhpcyxUPXgpOihWPXgs''@;'; + put 'put ''VD10aGlzKTtmb3IodmFyIEY9MCx5ZT0wO3llPFQubGVuZ3RoO3llKyspRj0oUD0oMHxWLndvcmRzW3llXSktKDB8VC53b3Jkc1t5ZV0pK0YpPj4yNix0aGlzLndvcmRzW3llXT02NzEwODg2MyZQO2Zvcig7MCE9PUYmJnllPFYubGVuZ3RoO3llKyspRj0oUD0oMHxWLndvcmRzW3llXSkrRik+''@;'; + put 'put ''PjI2LHRoaXMud29yZHNbeWVdPTY3MTA4ODYzJlA7aWYoMD09PUYmJnllPFYubGVuZ3RoJiZWIT09dGhpcylmb3IoO3llPFYubGVuZ3RoO3llKyspdGhpcy53b3Jkc1t5ZV09Vi53b3Jkc1t5ZV07cmV0dXJuIHRoaXMubGVuZ3RoPU1hdGgubWF4KHRoaXMubGVuZ3RoLHllKSxWIT09dGhpcyYm''@;'; + put 'put ''KHRoaXMubmVnYXRpdmU9MSksdGhpcy5zdHJpcCgpfSxOLnByb3RvdHlwZS5zdWI9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc3ViKHgpfTt2YXIgQWU9ZnVuY3Rpb24oeCxQLFYpe3ZhciBULFMsRix5ZT14LndvcmRzLENlPVAud29yZHMsRGU9Vi53b3JkcyxQZT0wLFFlPTB8''@;'; + put 'put ''eWVbMF0sJGU9ODE5MSZRZSxndD1RZT4+PjEzLHd0PTB8eWVbMV0sbXQ9ODE5MSZ3dCx2dD13dD4+PjEzLEF0PTB8eWVbMl0saHQ9ODE5MSZBdCxCdD1BdD4+PjEzLG9uPTB8eWVbM10sX3Q9ODE5MSZvbix0dD1vbj4+PjEzLGV0PTB8eWVbNF0sYXQ9ODE5MSZldCxMdD1ldD4+PjEzLEN0PTB8''@;'; + put 'put ''eWVbNV0sZnQ9ODE5MSZDdCxIdD1DdD4+PjEzLEdlPTB8eWVbNl0sVWU9ODE5MSZHZSx5dD1HZT4+PjEzLGp0PTB8eWVbN10sUXQ9ODE5MSZqdCxnbj1qdD4+PjEzLGRuPTB8eWVbOF0seW49ODE5MSZkbixsbj1kbj4+PjEzLE5uPTB8eWVbOV0sYm49ODE5MSZObixlcj1Obj4+PjEzLHNyPTB8''@;'; + put 'put ''Q2VbMF0sWG49ODE5MSZzcixGcj1zcj4+PjEzLHhyPTB8Q2VbMV0scXQ9ODE5MSZ4cixwcj14cj4+PjEzLG5yPTB8Q2VbMl0sQW49ODE5MSZucixxbj1ucj4+PjEzLFd0PTB8Q2VbM10scG49ODE5MSZXdCxLbj1XdD4+PjEzLE50PTB8Q2VbNF0sc249ODE5MSZOdCxVbj1OdD4+PjEzLHduPTB8''@;'; + put 'put ''Q2VbNV0sdG49ODE5MSZ3bix6bj13bj4+PjEzLFRyPTB8Q2VbNl0sQm49ODE5MSZUcixrcj1Ucj4+PjEzLG1uPTB8Q2VbN10sdW49ODE5MSZtbixjbj1tbj4+PjEzLF9uPTB8Q2VbOF0sR3Q9ODE5MSZfbixrbj1fbj4+PjEzLFZuPTB8Q2VbOV0sZW49ODE5MSZWbixJbj1Wbj4+PjEzO1YubmVn''@;'; + put 'put ''YXRpdmU9eC5uZWdhdGl2ZV5QLm5lZ2F0aXZlLFYubGVuZ3RoPTE5O3ZhciBKbj0oUGUrKFQ9TWF0aC5pbXVsKCRlLFhuKSl8MCkrKCg4MTkxJihTPShTPU1hdGguaW11bCgkZSxGcikpK01hdGguaW11bChndCxYbil8MCkpPDwxMyl8MDtQZT0oKEY9TWF0aC5pbXVsKGd0LEZyKSkrKFM+Pj4x''@;'; + put 'put ''Myl8MCkrKEpuPj4+MjYpfDAsSm4mPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKG10LFhuKSxTPShTPU1hdGguaW11bChtdCxGcikpK01hdGguaW11bCh2dCxYbil8MCxGPU1hdGguaW11bCh2dCxGcik7dmFyIG9yPShQZSsoVD1UK01hdGguaW11bCgkZSxxdCl8MCl8MCkrKCg4MTkxJihTPShTPVMr''@;'; + put 'put ''TWF0aC5pbXVsKCRlLHByKXwwKStNYXRoLmltdWwoZ3QscXQpfDApKTw8MTMpfDA7UGU9KChGPUYrTWF0aC5pbXVsKGd0LHByKXwwKSsoUz4+PjEzKXwwKSsob3I+Pj4yNil8MCxvciY9NjcxMDg4NjMsVD1NYXRoLmltdWwoaHQsWG4pLFM9KFM9TWF0aC5pbXVsKGh0LEZyKSkrTWF0aC5pbXVs''@;'; + put 'put ''KEJ0LFhuKXwwLEY9TWF0aC5pbXVsKEJ0LEZyKSxUPVQrTWF0aC5pbXVsKG10LHF0KXwwLFM9KFM9UytNYXRoLmltdWwobXQscHIpfDApK01hdGguaW11bCh2dCxxdCl8MCxGPUYrTWF0aC5pbXVsKHZ0LHByKXwwO3ZhciBncj0oUGUrKFQ9VCtNYXRoLmltdWwoJGUsQW4pfDApfDApKygoODE5''@;'; + put 'put ''MSYoUz0oUz1TK01hdGguaW11bCgkZSxxbil8MCkrTWF0aC5pbXVsKGd0LEFuKXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGguaW11bChndCxxbil8MCkrKFM+Pj4xMyl8MCkrKGdyPj4+MjYpfDAsZ3ImPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKF90LFhuKSxTPShTPU1hdGguaW11bChfdCxGcikp''@;'; + put 'put ''K01hdGguaW11bCh0dCxYbil8MCxGPU1hdGguaW11bCh0dCxGciksVD1UK01hdGguaW11bChodCxxdCl8MCxTPShTPVMrTWF0aC5pbXVsKGh0LHByKXwwKStNYXRoLmltdWwoQnQscXQpfDAsRj1GK01hdGguaW11bChCdCxwcil8MCxUPVQrTWF0aC5pbXVsKG10LEFuKXwwLFM9KFM9UytNYXRo''@;'; + put 'put ''LmltdWwobXQscW4pfDApK01hdGguaW11bCh2dCxBbil8MCxGPUYrTWF0aC5pbXVsKHZ0LHFuKXwwO3ZhciBLcj0oUGUrKFQ9VCtNYXRoLmltdWwoJGUscG4pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bCgkZSxLbil8MCkrTWF0aC5pbXVsKGd0LHBuKXwwKSk8PDEzKXwwO1BlPSgo''@;'; + put 'put ''Rj1GK01hdGguaW11bChndCxLbil8MCkrKFM+Pj4xMyl8MCkrKEtyPj4+MjYpfDAsS3ImPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGF0LFhuKSxTPShTPU1hdGguaW11bChhdCxGcikpK01hdGguaW11bChMdCxYbil8MCxGPU1hdGguaW11bChMdCxGciksVD1UK01hdGguaW11bChfdCxxdCl8MCxT''@;'; + put 'put ''PShTPVMrTWF0aC5pbXVsKF90LHByKXwwKStNYXRoLmltdWwodHQscXQpfDAsRj1GK01hdGguaW11bCh0dCxwcil8MCxUPVQrTWF0aC5pbXVsKGh0LEFuKXwwLFM9KFM9UytNYXRoLmltdWwoaHQscW4pfDApK01hdGguaW11bChCdCxBbil8MCxGPUYrTWF0aC5pbXVsKEJ0LHFuKXwwLFQ9VCtN''@;'; + put 'put ''YXRoLmltdWwobXQscG4pfDAsUz0oUz1TK01hdGguaW11bChtdCxLbil8MCkrTWF0aC5pbXVsKHZ0LHBuKXwwLEY9RitNYXRoLmltdWwodnQsS24pfDA7dmFyIFZyPShQZSsoVD1UK01hdGguaW11bCgkZSxzbil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKCRlLFVuKXwwKStNYXRo''@;'; + put 'put ''LmltdWwoZ3Qsc24pfDApKTw8MTMpfDA7UGU9KChGPUYrTWF0aC5pbXVsKGd0LFVuKXwwKSsoUz4+PjEzKXwwKSsoVnI+Pj4yNil8MCxWciY9NjcxMDg4NjMsVD1NYXRoLmltdWwoZnQsWG4pLFM9KFM9TWF0aC5pbXVsKGZ0LEZyKSkrTWF0aC5pbXVsKEh0LFhuKXwwLEY9TWF0aC5pbXVsKEh0''@;'; + put 'put ''LEZyKSxUPVQrTWF0aC5pbXVsKGF0LHF0KXwwLFM9KFM9UytNYXRoLmltdWwoYXQscHIpfDApK01hdGguaW11bChMdCxxdCl8MCxGPUYrTWF0aC5pbXVsKEx0LHByKXwwLFQ9VCtNYXRoLmltdWwoX3QsQW4pfDAsUz0oUz1TK01hdGguaW11bChfdCxxbil8MCkrTWF0aC5pbXVsKHR0LEFuKXww''@;'; + put 'put ''LEY9RitNYXRoLmltdWwodHQscW4pfDAsVD1UK01hdGguaW11bChodCxwbil8MCxTPShTPVMrTWF0aC5pbXVsKGh0LEtuKXwwKStNYXRoLmltdWwoQnQscG4pfDAsRj1GK01hdGguaW11bChCdCxLbil8MCxUPVQrTWF0aC5pbXVsKG10LHNuKXwwLFM9KFM9UytNYXRoLmltdWwobXQsVW4pfDAp''@;'; + put 'put ''K01hdGguaW11bCh2dCxzbil8MCxGPUYrTWF0aC5pbXVsKHZ0LFVuKXwwO3ZhciBpaT0oUGUrKFQ9VCtNYXRoLmltdWwoJGUsdG4pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bCgkZSx6bil8MCkrTWF0aC5pbXVsKGd0LHRuKXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGguaW11bChn''@;'; + put 'put ''dCx6bil8MCkrKFM+Pj4xMyl8MCkrKGlpPj4+MjYpfDAsaWkmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKFVlLFhuKSxTPShTPU1hdGguaW11bChVZSxGcikpK01hdGguaW11bCh5dCxYbil8MCxGPU1hdGguaW11bCh5dCxGciksVD1UK01hdGguaW11bChmdCxxdCl8MCxTPShTPVMrTWF0aC5pbXVs''@;'; + put 'put ''KGZ0LHByKXwwKStNYXRoLmltdWwoSHQscXQpfDAsRj1GK01hdGguaW11bChIdCxwcil8MCxUPVQrTWF0aC5pbXVsKGF0LEFuKXwwLFM9KFM9UytNYXRoLmltdWwoYXQscW4pfDApK01hdGguaW11bChMdCxBbil8MCxGPUYrTWF0aC5pbXVsKEx0LHFuKXwwLFQ9VCtNYXRoLmltdWwoX3QscG4p''@;'; + put 'put ''fDAsUz0oUz1TK01hdGguaW11bChfdCxLbil8MCkrTWF0aC5pbXVsKHR0LHBuKXwwLEY9RitNYXRoLmltdWwodHQsS24pfDAsVD1UK01hdGguaW11bChodCxzbil8MCxTPShTPVMrTWF0aC5pbXVsKGh0LFVuKXwwKStNYXRoLmltdWwoQnQsc24pfDAsRj1GK01hdGguaW11bChCdCxVbil8MCxU''@;'; + put 'put ''PVQrTWF0aC5pbXVsKG10LHRuKXwwLFM9KFM9UytNYXRoLmltdWwobXQsem4pfDApK01hdGguaW11bCh2dCx0bil8MCxGPUYrTWF0aC5pbXVsKHZ0LHpuKXwwO3ZhciBScj0oUGUrKFQ9VCtNYXRoLmltdWwoJGUsQm4pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bCgkZSxrcil8MCkr''@;'; + put 'put ''TWF0aC5pbXVsKGd0LEJuKXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGguaW11bChndCxrcil8MCkrKFM+Pj4xMyl8MCkrKFJyPj4+MjYpfDAsUnImPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKFF0LFhuKSxTPShTPU1hdGguaW11bChRdCxGcikpK01hdGguaW11bChnbixYbil8MCxGPU1hdGguaW11''@;'; + put 'put ''bChnbixGciksVD1UK01hdGguaW11bChVZSxxdCl8MCxTPShTPVMrTWF0aC5pbXVsKFVlLHByKXwwKStNYXRoLmltdWwoeXQscXQpfDAsRj1GK01hdGguaW11bCh5dCxwcil8MCxUPVQrTWF0aC5pbXVsKGZ0LEFuKXwwLFM9KFM9UytNYXRoLmltdWwoZnQscW4pfDApK01hdGguaW11bChIdCxB''@;'; + put 'put ''bil8MCxGPUYrTWF0aC5pbXVsKEh0LHFuKXwwLFQ9VCtNYXRoLmltdWwoYXQscG4pfDAsUz0oUz1TK01hdGguaW11bChhdCxLbil8MCkrTWF0aC5pbXVsKEx0LHBuKXwwLEY9RitNYXRoLmltdWwoTHQsS24pfDAsVD1UK01hdGguaW11bChfdCxzbil8MCxTPShTPVMrTWF0aC5pbXVsKF90LFVu''@;'; + put 'put ''KXwwKStNYXRoLmltdWwodHQsc24pfDAsRj1GK01hdGguaW11bCh0dCxVbil8MCxUPVQrTWF0aC5pbXVsKGh0LHRuKXwwLFM9KFM9UytNYXRoLmltdWwoaHQsem4pfDApK01hdGguaW11bChCdCx0bil8MCxGPUYrTWF0aC5pbXVsKEJ0LHpuKXwwLFQ9VCtNYXRoLmltdWwobXQsQm4pfDAsUz0o''@;'; + put 'put ''Uz1TK01hdGguaW11bChtdCxrcil8MCkrTWF0aC5pbXVsKHZ0LEJuKXwwLEY9RitNYXRoLmltdWwodnQsa3IpfDA7dmFyIGxpPShQZSsoVD1UK01hdGguaW11bCgkZSx1bil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKCRlLGNuKXwwKStNYXRoLmltdWwoZ3QsdW4pfDApKTw8MTMp''@;'; + put 'put ''fDA7UGU9KChGPUYrTWF0aC5pbXVsKGd0LGNuKXwwKSsoUz4+PjEzKXwwKSsobGk+Pj4yNil8MCxsaSY9NjcxMDg4NjMsVD1NYXRoLmltdWwoeW4sWG4pLFM9KFM9TWF0aC5pbXVsKHluLEZyKSkrTWF0aC5pbXVsKGxuLFhuKXwwLEY9TWF0aC5pbXVsKGxuLEZyKSxUPVQrTWF0aC5pbXVsKFF0''@;'; + put 'put ''LHF0KXwwLFM9KFM9UytNYXRoLmltdWwoUXQscHIpfDApK01hdGguaW11bChnbixxdCl8MCxGPUYrTWF0aC5pbXVsKGduLHByKXwwLFQ9VCtNYXRoLmltdWwoVWUsQW4pfDAsUz0oUz1TK01hdGguaW11bChVZSxxbil8MCkrTWF0aC5pbXVsKHl0LEFuKXwwLEY9RitNYXRoLmltdWwoeXQscW4p''@;'; + put 'put ''fDAsVD1UK01hdGguaW11bChmdCxwbil8MCxTPShTPVMrTWF0aC5pbXVsKGZ0LEtuKXwwKStNYXRoLmltdWwoSHQscG4pfDAsRj1GK01hdGguaW11bChIdCxLbil8MCxUPVQrTWF0aC5pbXVsKGF0LHNuKXwwLFM9KFM9UytNYXRoLmltdWwoYXQsVW4pfDApK01hdGguaW11bChMdCxzbil8MCxG''@;'; + put 'put ''PUYrTWF0aC5pbXVsKEx0LFVuKXwwLFQ9VCtNYXRoLmltdWwoX3QsdG4pfDAsUz0oUz1TK01hdGguaW11bChfdCx6bil8MCkrTWF0aC5pbXVsKHR0LHRuKXwwLEY9RitNYXRoLmltdWwodHQsem4pfDAsVD1UK01hdGguaW11bChodCxCbil8MCxTPShTPVMrTWF0aC5pbXVsKGh0LGtyKXwwKStN''@;'; + put 'put ''YXRoLmltdWwoQnQsQm4pfDAsRj1GK01hdGguaW11bChCdCxrcil8MCxUPVQrTWF0aC5pbXVsKG10LHVuKXwwLFM9KFM9UytNYXRoLmltdWwobXQsY24pfDApK01hdGguaW11bCh2dCx1bil8MCxGPUYrTWF0aC5pbXVsKHZ0LGNuKXwwO3ZhciBNaT0oUGUrKFQ9VCtNYXRoLmltdWwoJGUsR3Qp''@;'; + put 'put ''fDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bCgkZSxrbil8MCkrTWF0aC5pbXVsKGd0LEd0KXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGguaW11bChndCxrbil8MCkrKFM+Pj4xMyl8MCkrKE1pPj4+MjYpfDAsTWkmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGJuLFhuKSxTPShTPU1hdGgu''@;'; + put 'put ''aW11bChibixGcikpK01hdGguaW11bChlcixYbil8MCxGPU1hdGguaW11bChlcixGciksVD1UK01hdGguaW11bCh5bixxdCl8MCxTPShTPVMrTWF0aC5pbXVsKHluLHByKXwwKStNYXRoLmltdWwobG4scXQpfDAsRj1GK01hdGguaW11bChsbixwcil8MCxUPVQrTWF0aC5pbXVsKFF0LEFuKXww''@;'; + put 'put ''LFM9KFM9UytNYXRoLmltdWwoUXQscW4pfDApK01hdGguaW11bChnbixBbil8MCxGPUYrTWF0aC5pbXVsKGduLHFuKXwwLFQ9VCtNYXRoLmltdWwoVWUscG4pfDAsUz0oUz1TK01hdGguaW11bChVZSxLbil8MCkrTWF0aC5pbXVsKHl0LHBuKXwwLEY9RitNYXRoLmltdWwoeXQsS24pfDAsVD1U''@;'; + put 'put ''K01hdGguaW11bChmdCxzbil8MCxTPShTPVMrTWF0aC5pbXVsKGZ0LFVuKXwwKStNYXRoLmltdWwoSHQsc24pfDAsRj1GK01hdGguaW11bChIdCxVbil8MCxUPVQrTWF0aC5pbXVsKGF0LHRuKXwwLFM9KFM9UytNYXRoLmltdWwoYXQsem4pfDApK01hdGguaW11bChMdCx0bil8MCxGPUYrTWF0''@;'; + put 'put ''aC5pbXVsKEx0LHpuKXwwLFQ9VCtNYXRoLmltdWwoX3QsQm4pfDAsUz0oUz1TK01hdGguaW11bChfdCxrcil8MCkrTWF0aC5pbXVsKHR0LEJuKXwwLEY9RitNYXRoLmltdWwodHQsa3IpfDAsVD1UK01hdGguaW11bChodCx1bil8MCxTPShTPVMrTWF0aC5pbXVsKGh0LGNuKXwwKStNYXRoLmlt''@;'; + put 'put ''dWwoQnQsdW4pfDAsRj1GK01hdGguaW11bChCdCxjbil8MCxUPVQrTWF0aC5pbXVsKG10LEd0KXwwLFM9KFM9UytNYXRoLmltdWwobXQsa24pfDApK01hdGguaW11bCh2dCxHdCl8MCxGPUYrTWF0aC5pbXVsKHZ0LGtuKXwwO3ZhciBvMD0oUGUrKFQ9VCtNYXRoLmltdWwoJGUsZW4pfDApfDAp''@;'; + put 'put ''KygoODE5MSYoUz0oUz1TK01hdGguaW11bCgkZSxJbil8MCkrTWF0aC5pbXVsKGd0LGVuKXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGguaW11bChndCxJbil8MCkrKFM+Pj4xMyl8MCkrKG8wPj4+MjYpfDAsbzAmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGJuLHF0KSxTPShTPU1hdGguaW11bChi''@;'; + put 'put ''bixwcikpK01hdGguaW11bChlcixxdCl8MCxGPU1hdGguaW11bChlcixwciksVD1UK01hdGguaW11bCh5bixBbil8MCxTPShTPVMrTWF0aC5pbXVsKHluLHFuKXwwKStNYXRoLmltdWwobG4sQW4pfDAsRj1GK01hdGguaW11bChsbixxbil8MCxUPVQrTWF0aC5pbXVsKFF0LHBuKXwwLFM9KFM9''@;'; + put 'put ''UytNYXRoLmltdWwoUXQsS24pfDApK01hdGguaW11bChnbixwbil8MCxGPUYrTWF0aC5pbXVsKGduLEtuKXwwLFQ9VCtNYXRoLmltdWwoVWUsc24pfDAsUz0oUz1TK01hdGguaW11bChVZSxVbil8MCkrTWF0aC5pbXVsKHl0LHNuKXwwLEY9RitNYXRoLmltdWwoeXQsVW4pfDAsVD1UK01hdGgu''@;'; + put 'put ''aW11bChmdCx0bil8MCxTPShTPVMrTWF0aC5pbXVsKGZ0LHpuKXwwKStNYXRoLmltdWwoSHQsdG4pfDAsRj1GK01hdGguaW11bChIdCx6bil8MCxUPVQrTWF0aC5pbXVsKGF0LEJuKXwwLFM9KFM9UytNYXRoLmltdWwoYXQsa3IpfDApK01hdGguaW11bChMdCxCbil8MCxGPUYrTWF0aC5pbXVs''@;'; + put 'put ''KEx0LGtyKXwwLFQ9VCtNYXRoLmltdWwoX3QsdW4pfDAsUz0oUz1TK01hdGguaW11bChfdCxjbil8MCkrTWF0aC5pbXVsKHR0LHVuKXwwLEY9RitNYXRoLmltdWwodHQsY24pfDAsVD1UK01hdGguaW11bChodCxHdCl8MCxTPShTPVMrTWF0aC5pbXVsKGh0LGtuKXwwKStNYXRoLmltdWwoQnQs''@;'; + put 'put ''R3QpfDAsRj1GK01hdGguaW11bChCdCxrbil8MDt2YXIgbjA9KFBlKyhUPVQrTWF0aC5pbXVsKG10LGVuKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwobXQsSW4pfDApK01hdGguaW11bCh2dCxlbil8MCkpPDwxMyl8MDtQZT0oKEY9RitNYXRoLmltdWwodnQsSW4pfDApKyhTPj4+''@;'; + put 'put ''MTMpfDApKyhuMD4+PjI2KXwwLG4wJj02NzEwODg2MyxUPU1hdGguaW11bChibixBbiksUz0oUz1NYXRoLmltdWwoYm4scW4pKStNYXRoLmltdWwoZXIsQW4pfDAsRj1NYXRoLmltdWwoZXIscW4pLFQ9VCtNYXRoLmltdWwoeW4scG4pfDAsUz0oUz1TK01hdGguaW11bCh5bixLbil8MCkrTWF0''@;'; + put 'put ''aC5pbXVsKGxuLHBuKXwwLEY9RitNYXRoLmltdWwobG4sS24pfDAsVD1UK01hdGguaW11bChRdCxzbil8MCxTPShTPVMrTWF0aC5pbXVsKFF0LFVuKXwwKStNYXRoLmltdWwoZ24sc24pfDAsRj1GK01hdGguaW11bChnbixVbil8MCxUPVQrTWF0aC5pbXVsKFVlLHRuKXwwLFM9KFM9UytNYXRo''@;'; + put 'put ''LmltdWwoVWUsem4pfDApK01hdGguaW11bCh5dCx0bil8MCxGPUYrTWF0aC5pbXVsKHl0LHpuKXwwLFQ9VCtNYXRoLmltdWwoZnQsQm4pfDAsUz0oUz1TK01hdGguaW11bChmdCxrcil8MCkrTWF0aC5pbXVsKEh0LEJuKXwwLEY9RitNYXRoLmltdWwoSHQsa3IpfDAsVD1UK01hdGguaW11bChh''@;'; + put 'put ''dCx1bil8MCxTPShTPVMrTWF0aC5pbXVsKGF0LGNuKXwwKStNYXRoLmltdWwoTHQsdW4pfDAsRj1GK01hdGguaW11bChMdCxjbil8MCxUPVQrTWF0aC5pbXVsKF90LEd0KXwwLFM9KFM9UytNYXRoLmltdWwoX3Qsa24pfDApK01hdGguaW11bCh0dCxHdCl8MCxGPUYrTWF0aC5pbXVsKHR0LGtu''@;'; + put 'put ''KXwwO3ZhciBkMD0oUGUrKFQ9VCtNYXRoLmltdWwoaHQsZW4pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bChodCxJbil8MCkrTWF0aC5pbXVsKEJ0LGVuKXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGguaW11bChCdCxJbil8MCkrKFM+Pj4xMyl8MCkrKGQwPj4+MjYpfDAsZDAmPTY3''@;'; + put 'put ''MTA4ODYzLFQ9TWF0aC5pbXVsKGJuLHBuKSxTPShTPU1hdGguaW11bChibixLbikpK01hdGguaW11bChlcixwbil8MCxGPU1hdGguaW11bChlcixLbiksVD1UK01hdGguaW11bCh5bixzbil8MCxTPShTPVMrTWF0aC5pbXVsKHluLFVuKXwwKStNYXRoLmltdWwobG4sc24pfDAsRj1GK01hdGgu''@;'; + put 'put ''aW11bChsbixVbil8MCxUPVQrTWF0aC5pbXVsKFF0LHRuKXwwLFM9KFM9UytNYXRoLmltdWwoUXQsem4pfDApK01hdGguaW11bChnbix0bil8MCxGPUYrTWF0aC5pbXVsKGduLHpuKXwwLFQ9VCtNYXRoLmltdWwoVWUsQm4pfDAsUz0oUz1TK01hdGguaW11bChVZSxrcil8MCkrTWF0aC5pbXVs''@;'; + put 'put ''KHl0LEJuKXwwLEY9RitNYXRoLmltdWwoeXQsa3IpfDAsVD1UK01hdGguaW11bChmdCx1bil8MCxTPShTPVMrTWF0aC5pbXVsKGZ0LGNuKXwwKStNYXRoLmltdWwoSHQsdW4pfDAsRj1GK01hdGguaW11bChIdCxjbil8MCxUPVQrTWF0aC5pbXVsKGF0LEd0KXwwLFM9KFM9UytNYXRoLmltdWwo''@;'; + put 'put ''YXQsa24pfDApK01hdGguaW11bChMdCxHdCl8MCxGPUYrTWF0aC5pbXVsKEx0LGtuKXwwO3ZhciBtMD0oUGUrKFQ9VCtNYXRoLmltdWwoX3QsZW4pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bChfdCxJbil8MCkrTWF0aC5pbXVsKHR0LGVuKXwwKSk8PDEzKXwwO1BlPSgoRj1GK01h''@;'; + put 'put ''dGguaW11bCh0dCxJbil8MCkrKFM+Pj4xMyl8MCkrKG0wPj4+MjYpfDAsbTAmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGJuLHNuKSxTPShTPU1hdGguaW11bChibixVbikpK01hdGguaW11bChlcixzbil8MCxGPU1hdGguaW11bChlcixVbiksVD1UK01hdGguaW11bCh5bix0bil8MCxTPShTPVMr''@;'; + put 'put ''TWF0aC5pbXVsKHluLHpuKXwwKStNYXRoLmltdWwobG4sdG4pfDAsRj1GK01hdGguaW11bChsbix6bil8MCxUPVQrTWF0aC5pbXVsKFF0LEJuKXwwLFM9KFM9UytNYXRoLmltdWwoUXQsa3IpfDApK01hdGguaW11bChnbixCbil8MCxGPUYrTWF0aC5pbXVsKGduLGtyKXwwLFQ9VCtNYXRoLmlt''@;'; + put 'put ''dWwoVWUsdW4pfDAsUz0oUz1TK01hdGguaW11bChVZSxjbil8MCkrTWF0aC5pbXVsKHl0LHVuKXwwLEY9RitNYXRoLmltdWwoeXQsY24pfDAsVD1UK01hdGguaW11bChmdCxHdCl8MCxTPShTPVMrTWF0aC5pbXVsKGZ0LGtuKXwwKStNYXRoLmltdWwoSHQsR3QpfDAsRj1GK01hdGguaW11bChI''@;'; + put 'put ''dCxrbil8MDt2YXIgRzA9KFBlKyhUPVQrTWF0aC5pbXVsKGF0LGVuKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoYXQsSW4pfDApK01hdGguaW11bChMdCxlbil8MCkpPDwxMyl8MDtQZT0oKEY9RitNYXRoLmltdWwoTHQsSW4pfDApKyhTPj4+MTMpfDApKyhHMD4+PjI2KXwwLEcw''@;'; + put 'put ''Jj02NzEwODg2MyxUPU1hdGguaW11bChibix0biksUz0oUz1NYXRoLmltdWwoYm4sem4pKStNYXRoLmltdWwoZXIsdG4pfDAsRj1NYXRoLmltdWwoZXIsem4pLFQ9VCtNYXRoLmltdWwoeW4sQm4pfDAsUz0oUz1TK01hdGguaW11bCh5bixrcil8MCkrTWF0aC5pbXVsKGxuLEJuKXwwLEY9RitN''@;'; + put 'put ''YXRoLmltdWwobG4sa3IpfDAsVD1UK01hdGguaW11bChRdCx1bil8MCxTPShTPVMrTWF0aC5pbXVsKFF0LGNuKXwwKStNYXRoLmltdWwoZ24sdW4pfDAsRj1GK01hdGguaW11bChnbixjbil8MCxUPVQrTWF0aC5pbXVsKFVlLEd0KXwwLFM9KFM9UytNYXRoLmltdWwoVWUsa24pfDApK01hdGgu''@;'; + put 'put ''aW11bCh5dCxHdCl8MCxGPUYrTWF0aC5pbXVsKHl0LGtuKXwwO3ZhciBEaT0oUGUrKFQ9VCtNYXRoLmltdWwoZnQsZW4pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bChmdCxJbil8MCkrTWF0aC5pbXVsKEh0LGVuKXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGguaW11bChIdCxJbil8''@;'; + put 'put ''MCkrKFM+Pj4xMyl8MCkrKERpPj4+MjYpfDAsRGkmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGJuLEJuKSxTPShTPU1hdGguaW11bChibixrcikpK01hdGguaW11bChlcixCbil8MCxGPU1hdGguaW11bChlcixrciksVD1UK01hdGguaW11bCh5bix1bil8MCxTPShTPVMrTWF0aC5pbXVsKHluLGNu''@;'; + put 'put ''KXwwKStNYXRoLmltdWwobG4sdW4pfDAsRj1GK01hdGguaW11bChsbixjbil8MCxUPVQrTWF0aC5pbXVsKFF0LEd0KXwwLFM9KFM9UytNYXRoLmltdWwoUXQsa24pfDApK01hdGguaW11bChnbixHdCl8MCxGPUYrTWF0aC5pbXVsKGduLGtuKXwwO3ZhciBXMD0oUGUrKFQ9VCtNYXRoLmltdWwo''@;'; + put 'put ''VWUsZW4pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bChVZSxJbil8MCkrTWF0aC5pbXVsKHl0LGVuKXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGguaW11bCh5dCxJbil8MCkrKFM+Pj4xMyl8MCkrKFcwPj4+MjYpfDAsVzAmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGJuLHVuKSxTPShT''@;'; + put 'put ''PU1hdGguaW11bChibixjbikpK01hdGguaW11bChlcix1bil8MCxGPU1hdGguaW11bChlcixjbiksVD1UK01hdGguaW11bCh5bixHdCl8MCxTPShTPVMrTWF0aC5pbXVsKHluLGtuKXwwKStNYXRoLmltdWwobG4sR3QpfDAsRj1GK01hdGguaW11bChsbixrbil8MDt2YXIgRW89KFBlKyhUPVQr''@;'; + put 'put ''TWF0aC5pbXVsKFF0LGVuKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoUXQsSW4pfDApK01hdGguaW11bChnbixlbil8MCkpPDwxMyl8MDtQZT0oKEY9RitNYXRoLmltdWwoZ24sSW4pfDApKyhTPj4+MTMpfDApKyhFbz4+PjI2KXwwLEVvJj02NzEwODg2MyxUPU1hdGguaW11bChi''@;'; + put 'put ''bixHdCksUz0oUz1NYXRoLmltdWwoYm4sa24pKStNYXRoLmltdWwoZXIsR3QpfDAsRj1NYXRoLmltdWwoZXIsa24pO3ZhciBxbz0oUGUrKFQ9VCtNYXRoLmltdWwoeW4sZW4pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bCh5bixJbil8MCkrTWF0aC5pbXVsKGxuLGVuKXwwKSk8PDEz''@;'; + put 'put ''KXwwO1BlPSgoRj1GK01hdGguaW11bChsbixJbil8MCkrKFM+Pj4xMyl8MCkrKHFvPj4+MjYpfDAscW8mPTY3MTA4ODYzO3ZhciBjYT0oUGUrKFQ9TWF0aC5pbXVsKGJuLGVuKSl8MCkrKCg4MTkxJihTPShTPU1hdGguaW11bChibixJbikpK01hdGguaW11bChlcixlbil8MCkpPDwxMyl8MDty''@;'; + put 'put ''ZXR1cm4gUGU9KChGPU1hdGguaW11bChlcixJbikpKyhTPj4+MTMpfDApKyhjYT4+PjI2KXwwLGNhJj02NzEwODg2MyxEZVswXT1KbixEZVsxXT1vcixEZVsyXT1ncixEZVszXT1LcixEZVs0XT1WcixEZVs1XT1paSxEZVs2XT1ScixEZVs3XT1saSxEZVs4XT1NaSxEZVs5XT1vMCxEZVsxMF09''@;'; + put 'put ''bjAsRGVbMTFdPWQwLERlWzEyXT1tMCxEZVsxM109RzAsRGVbMTRdPURpLERlWzE1XT1XMCxEZVsxNl09RW8sRGVbMTddPXFvLERlWzE4XT1jYSwwIT09UGUmJihEZVsxOV09UGUsVi5sZW5ndGgrKyksVn07ZnVuY3Rpb24ga2UoeCxQLFYpe3JldHVybihuZXcgU2UpLm11bHAoeCxQLFYpfWZ1''@;'; + put 'put ''bmN0aW9uIFNlKHgsUCl7dGhpcy54PXgsdGhpcy55PVB9TWF0aC5pbXVsfHwoQWU9dmUpLE4ucHJvdG90eXBlLm11bFRvPWZ1bmN0aW9uKHgsUCl7dmFyIFQ9dGhpcy5sZW5ndGgreC5sZW5ndGg7cmV0dXJuIDEwPT09dGhpcy5sZW5ndGgmJjEwPT09eC5sZW5ndGg/QWUodGhpcyx4LFApOlQ8''@;'; + put 'put ''NjM/dmUodGhpcyx4LFApOlQ8MTAyND9mdW5jdGlvbihTLEYseWUpe3llLm5lZ2F0aXZlPUYubmVnYXRpdmVeUy5uZWdhdGl2ZSx5ZS5sZW5ndGg9Uy5sZW5ndGgrRi5sZW5ndGg7Zm9yKHZhciBDZT0wLERlPTAsUGU9MDtQZTx5ZS5sZW5ndGgtMTtQZSsrKXt2YXIgUWU9RGU7RGU9MDtmb3Io''@;'; + put 'put ''dmFyICRlPTY3MTA4ODYzJkNlLGd0PU1hdGgubWluKFBlLEYubGVuZ3RoLTEpLHd0PU1hdGgubWF4KDAsUGUtUy5sZW5ndGgrMSk7d3Q8PWd0O3d0Kyspe3ZhciB2dD0oMHxTLndvcmRzW1BlLXd0XSkqKDB8Ri53b3Jkc1t3dF0pLEF0PTY3MTA4ODYzJnZ0OyRlPTY3MTA4ODYzJihBdD1BdCsk''@;'; + put 'put ''ZXwwKSxEZSs9KFFlPShRZT1RZSsodnQvNjcxMDg4NjR8MCl8MCkrKEF0Pj4+MjYpfDApPj4+MjYsUWUmPTY3MTA4ODYzfXllLndvcmRzW1BlXT0kZSxDZT1RZSxRZT1EZX1yZXR1cm4gMCE9PUNlP3llLndvcmRzW1BlXT1DZTp5ZS5sZW5ndGgtLSx5ZS5zdHJpcCgpfSh0aGlzLHgsUCk6a2Uo''@;'; + put 'put ''dGhpcyx4LFApfSxTZS5wcm90b3R5cGUubWFrZVJCVD1mdW5jdGlvbih4KXtmb3IodmFyIFA9bmV3IEFycmF5KHgpLFY9Ti5wcm90b3R5cGUuX2NvdW50Qml0cyh4KS0xLFQ9MDtUPHg7VCsrKVBbVF09dGhpcy5yZXZCaW4oVCxWLHgpO3JldHVybiBQfSxTZS5wcm90b3R5cGUucmV2QmluPWZ1''@;'; + put 'put ''bmN0aW9uKHgsUCxWKXtpZigwPT09eHx8eD09PVYtMSlyZXR1cm4geDtmb3IodmFyIFQ9MCxTPTA7UzxQO1MrKylUfD0oMSZ4KTw8UC1TLTEseD4+PTE7cmV0dXJuIFR9LFNlLnByb3RvdHlwZS5wZXJtdXRlPWZ1bmN0aW9uKHgsUCxWLFQsUyxGKXtmb3IodmFyIHllPTA7eWU8Rjt5ZSsrKVRb''@;'; + put 'put ''eWVdPVBbeFt5ZV1dLFNbeWVdPVZbeFt5ZV1dfSxTZS5wcm90b3R5cGUudHJhbnNmb3JtPWZ1bmN0aW9uKHgsUCxWLFQsUyxGKXt0aGlzLnBlcm11dGUoRix4LFAsVixULFMpO2Zvcih2YXIgeWU9MTt5ZTxTO3llPDw9MSlmb3IodmFyIENlPXllPDwxLERlPU1hdGguY29zKDIqTWF0aC5QSS9D''@;'; + put 'put ''ZSksUGU9TWF0aC5zaW4oMipNYXRoLlBJL0NlKSxRZT0wO1FlPFM7UWUrPUNlKWZvcih2YXIgJGU9RGUsZ3Q9UGUsd3Q9MDt3dDx5ZTt3dCsrKXt2YXIgbXQ9VltRZSt3dF0sdnQ9VFtRZSt3dF0sQXQ9VltRZSt3dCt5ZV0saHQ9VFtRZSt3dCt5ZV0sQnQ9JGUqQXQtZ3QqaHQ7aHQ9JGUqaHQr''@;'; + put 'put ''Z3QqQXQsVltRZSt3dF09bXQrKEF0PUJ0KSxUW1FlK3d0XT12dCtodCxWW1FlK3d0K3llXT1tdC1BdCxUW1FlK3d0K3llXT12dC1odCx3dCE9PUNlJiYoQnQ9RGUqJGUtUGUqZ3QsZ3Q9RGUqZ3QrUGUqJGUsJGU9QnQpfX0sU2UucHJvdG90eXBlLmd1ZXNzTGVuMTNiPWZ1bmN0aW9uKHgsUCl7''@;'; + put 'put ''dmFyIFY9MXxNYXRoLm1heChQLHgpLFQ9MSZWLFM9MDtmb3IoVj1WLzJ8MDtWO1Y+Pj49MSlTKys7cmV0dXJuIDE8PFMrMStUfSxTZS5wcm90b3R5cGUuY29uanVnYXRlPWZ1bmN0aW9uKHgsUCxWKXtpZighKFY8PTEpKWZvcih2YXIgVD0wO1Q8Vi8yO1QrKyl7dmFyIFM9eFtUXTt4W1RdPXhb''@;'; + put 'put ''Vi1ULTFdLHhbVi1ULTFdPVMsUz1QW1RdLFBbVF09LVBbVi1ULTFdLFBbVi1ULTFdPS1TfX0sU2UucHJvdG90eXBlLm5vcm1hbGl6ZTEzYj1mdW5jdGlvbih4LFApe2Zvcih2YXIgVj0wLFQ9MDtUPFAvMjtUKyspe3ZhciBTPTgxOTIqTWF0aC5yb3VuZCh4WzIqVCsxXS9QKStNYXRoLnJvdW5k''@;'; + put 'put ''KHhbMipUXS9QKStWO3hbVF09NjcxMDg4NjMmUyxWPVM8NjcxMDg4NjQ/MDpTLzY3MTA4ODY0fDB9cmV0dXJuIHh9LFNlLnByb3RvdHlwZS5jb252ZXJ0MTNiPWZ1bmN0aW9uKHgsUCxWLFQpe2Zvcih2YXIgUz0wLEY9MDtGPFA7RisrKVZbMipGXT04MTkxJihTKz0wfHhbRl0pLFZbMipGKzFd''@;'; + put 'put ''PTgxOTEmKFM+Pj49MTMpLFM+Pj49MTM7Zm9yKEY9MipQO0Y8VDsrK0YpVltGXT0wO1koMD09PVMpLFkoMD09KC04MTkyJlMpKX0sU2UucHJvdG90eXBlLnN0dWI9ZnVuY3Rpb24oeCl7Zm9yKHZhciBQPW5ldyBBcnJheSh4KSxWPTA7Vjx4O1YrKylQW1ZdPTA7cmV0dXJuIFB9LFNlLnByb3Rv''@;'; + put 'put ''dHlwZS5tdWxwPWZ1bmN0aW9uKHgsUCxWKXt2YXIgVD0yKnRoaXMuZ3Vlc3NMZW4xM2IoeC5sZW5ndGgsUC5sZW5ndGgpLFM9dGhpcy5tYWtlUkJUKFQpLEY9dGhpcy5zdHViKFQpLHllPW5ldyBBcnJheShUKSxDZT1uZXcgQXJyYXkoVCksRGU9bmV3IEFycmF5KFQpLFBlPW5ldyBBcnJheShU''@;'; + put 'put ''KSxRZT1uZXcgQXJyYXkoVCksJGU9bmV3IEFycmF5KFQpLGd0PVYud29yZHM7Z3QubGVuZ3RoPVQsdGhpcy5jb252ZXJ0MTNiKHgud29yZHMseC5sZW5ndGgseWUsVCksdGhpcy5jb252ZXJ0MTNiKFAud29yZHMsUC5sZW5ndGgsUGUsVCksdGhpcy50cmFuc2Zvcm0oeWUsRixDZSxEZSxULFMp''@;'; + put 'put ''LHRoaXMudHJhbnNmb3JtKFBlLEYsUWUsJGUsVCxTKTtmb3IodmFyIHd0PTA7d3Q8VDt3dCsrKXt2YXIgbXQ9Q2Vbd3RdKlFlW3d0XS1EZVt3dF0qJGVbd3RdO0RlW3d0XT1DZVt3dF0qJGVbd3RdK0RlW3d0XSpRZVt3dF0sQ2Vbd3RdPW10fXJldHVybiB0aGlzLmNvbmp1Z2F0ZShDZSxEZSxU''@;'; + put 'put ''KSx0aGlzLnRyYW5zZm9ybShDZSxEZSxndCxGLFQsUyksdGhpcy5jb25qdWdhdGUoZ3QsRixUKSx0aGlzLm5vcm1hbGl6ZTEzYihndCxUKSxWLm5lZ2F0aXZlPXgubmVnYXRpdmVeUC5uZWdhdGl2ZSxWLmxlbmd0aD14Lmxlbmd0aCtQLmxlbmd0aCxWLnN0cmlwKCl9LE4ucHJvdG90eXBlLm11''@;'; + put 'put ''bD1mdW5jdGlvbih4KXt2YXIgUD1uZXcgTihudWxsKTtyZXR1cm4gUC53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgreC5sZW5ndGgpLHRoaXMubXVsVG8oeCxQKX0sTi5wcm90b3R5cGUubXVsZj1mdW5jdGlvbih4KXt2YXIgUD1uZXcgTihudWxsKTtyZXR1cm4gUC53b3Jkcz1uZXcgQXJy''@;'; + put 'put ''YXkodGhpcy5sZW5ndGgreC5sZW5ndGgpLGtlKHRoaXMseCxQKX0sTi5wcm90b3R5cGUuaW11bD1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5jbG9uZSgpLm11bFRvKHgsdGhpcyl9LE4ucHJvdG90eXBlLmltdWxuPWZ1bmN0aW9uKHgpe1koIm51bWJlciI9PXR5cGVvZiB4KSxZKHg8NjcxMDg4''@;'; + put 'put ''NjQpO2Zvcih2YXIgUD0wLFY9MDtWPHRoaXMubGVuZ3RoO1YrKyl7dmFyIFQ9KDB8dGhpcy53b3Jkc1tWXSkqeCxTPSg2NzEwODg2MyZUKSsoNjcxMDg4NjMmUCk7UD4+PTI2LFArPVQvNjcxMDg4NjR8MCxQKz1TPj4+MjYsdGhpcy53b3Jkc1tWXT02NzEwODg2MyZTfXJldHVybiAwIT09UCYm''@;'; + put 'put ''KHRoaXMud29yZHNbVl09UCx0aGlzLmxlbmd0aCsrKSx0aGlzfSxOLnByb3RvdHlwZS5tdWxuPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmNsb25lKCkuaW11bG4oeCl9LE4ucHJvdG90eXBlLnNxcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLm11bCh0aGlzKX0sTi5wcm90b3R5cGUuaXNxcj1m''@;'; + put 'put ''dW5jdGlvbigpe3JldHVybiB0aGlzLmltdWwodGhpcy5jbG9uZSgpKX0sTi5wcm90b3R5cGUucG93PWZ1bmN0aW9uKHgpe3ZhciBQPWZ1bmN0aW9uKEYpe2Zvcih2YXIgeWU9bmV3IEFycmF5KEYuYml0TGVuZ3RoKCkpLENlPTA7Q2U8eWUubGVuZ3RoO0NlKyspe3ZhciBQZT1DZSUyNjt5ZVtD''@;'; + put 'put ''ZV09KEYud29yZHNbQ2UvMjZ8MF0mMTw8UGUpPj4+UGV9cmV0dXJuIHllfSh4KTtpZigwPT09UC5sZW5ndGgpcmV0dXJuIG5ldyBOKDEpO2Zvcih2YXIgVj10aGlzLFQ9MDtUPFAubGVuZ3RoJiYwPT09UFtUXTtUKyssVj1WLnNxcigpKTtpZigrK1Q8UC5sZW5ndGgpZm9yKHZhciBTPVYuc3Fy''@;'; + put 'put ''KCk7VDxQLmxlbmd0aDtUKyssUz1TLnNxcigpKTAhPT1QW1RdJiYoVj1WLm11bChTKSk7cmV0dXJuIFZ9LE4ucHJvdG90eXBlLml1c2hsbj1mdW5jdGlvbih4KXtZKCJudW1iZXIiPT10eXBlb2YgeCYmeD49MCk7dmFyIFAsVj14JTI2LFQ9KHgtVikvMjYsUz02NzEwODg2Mz4+PjI2LVY8PDI2''@;'; + put 'put ''LVY7aWYoMCE9PVYpe3ZhciBGPTA7Zm9yKFA9MDtQPHRoaXMubGVuZ3RoO1ArKyl7dmFyIHllPXRoaXMud29yZHNbUF0mUzt0aGlzLndvcmRzW1BdPSgwfHRoaXMud29yZHNbUF0pLXllPDxWfEYsRj15ZT4+PjI2LVZ9RiYmKHRoaXMud29yZHNbUF09Rix0aGlzLmxlbmd0aCsrKX1pZigwIT09''@;'; + put 'put ''VCl7Zm9yKFA9dGhpcy5sZW5ndGgtMTtQPj0wO1AtLSl0aGlzLndvcmRzW1ArVF09dGhpcy53b3Jkc1tQXTtmb3IoUD0wO1A8VDtQKyspdGhpcy53b3Jkc1tQXT0wO3RoaXMubGVuZ3RoKz1UfXJldHVybiB0aGlzLnN0cmlwKCl9LE4ucHJvdG90eXBlLmlzaGxuPWZ1bmN0aW9uKHgpe3JldHVy''@;'; + put 'put ''biBZKDA9PT10aGlzLm5lZ2F0aXZlKSx0aGlzLml1c2hsbih4KX0sTi5wcm90b3R5cGUuaXVzaHJuPWZ1bmN0aW9uKHgsUCxWKXt2YXIgVDtZKCJudW1iZXIiPT10eXBlb2YgeCYmeD49MCksVD1QPyhQLVAlMjYpLzI2OjA7dmFyIFM9eCUyNixGPU1hdGgubWluKCh4LVMpLzI2LHRoaXMubGVu''@;'; + put 'put ''Z3RoKSx5ZT02NzEwODg2M142NzEwODg2Mz4+PlM8PFMsQ2U9VjtpZihULT1GLFQ9TWF0aC5tYXgoMCxUKSxDZSl7Zm9yKHZhciBEZT0wO0RlPEY7RGUrKylDZS53b3Jkc1tEZV09dGhpcy53b3Jkc1tEZV07Q2UubGVuZ3RoPUZ9aWYoMCE9PUYpaWYodGhpcy5sZW5ndGg+Rilmb3IodGhpcy5s''@;'; + put 'put ''ZW5ndGgtPUYsRGU9MDtEZTx0aGlzLmxlbmd0aDtEZSsrKXRoaXMud29yZHNbRGVdPXRoaXMud29yZHNbRGUrRl07ZWxzZSB0aGlzLndvcmRzWzBdPTAsdGhpcy5sZW5ndGg9MTt2YXIgUGU9MDtmb3IoRGU9dGhpcy5sZW5ndGgtMTtEZT49MCYmKDAhPT1QZXx8RGU+PVQpO0RlLS0pe3ZhciBR''@;'; + put 'put ''ZT0wfHRoaXMud29yZHNbRGVdO3RoaXMud29yZHNbRGVdPVBlPDwyNi1TfFFlPj4+UyxQZT1RZSZ5ZX1yZXR1cm4gQ2UmJjAhPT1QZSYmKENlLndvcmRzW0NlLmxlbmd0aCsrXT1QZSksMD09PXRoaXMubGVuZ3RoJiYodGhpcy53b3Jkc1swXT0wLHRoaXMubGVuZ3RoPTEpLHRoaXMuc3RyaXAo''@;'; + put 'put ''KX0sTi5wcm90b3R5cGUuaXNocm49ZnVuY3Rpb24oeCxQLFYpe3JldHVybiBZKDA9PT10aGlzLm5lZ2F0aXZlKSx0aGlzLml1c2hybih4LFAsVil9LE4ucHJvdG90eXBlLnNobG49ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc2hsbih4KX0sTi5wcm90b3R5cGUudXNobG49ZnVu''@;'; + put 'put ''Y3Rpb24oeCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pdXNobG4oeCl9LE4ucHJvdG90eXBlLnNocm49ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc2hybih4KX0sTi5wcm90b3R5cGUudXNocm49ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pdXNocm4oeCl9LE4ucHJv''@;'; + put 'put ''dG90eXBlLnRlc3RuPWZ1bmN0aW9uKHgpe1koIm51bWJlciI9PXR5cGVvZiB4JiZ4Pj0wKTt2YXIgUD14JTI2LFY9KHgtUCkvMjY7cmV0dXJuISh0aGlzLmxlbmd0aDw9Vnx8ISh0aGlzLndvcmRzW1ZdJjE8PFApKX0sTi5wcm90b3R5cGUuaW1hc2tuPWZ1bmN0aW9uKHgpe1koIm51bWJlciI9''@;'; + put 'put ''PXR5cGVvZiB4JiZ4Pj0wKTt2YXIgUD14JTI2LFY9KHgtUCkvMjY7cmV0dXJuIFkoMD09PXRoaXMubmVnYXRpdmUsImltYXNrbiB3b3JrcyBvbmx5IHdpdGggcG9zaXRpdmUgbnVtYmVycyIpLHRoaXMubGVuZ3RoPD1WP3RoaXM6KDAhPT1QJiZWKyssdGhpcy5sZW5ndGg9TWF0aC5taW4oVix0''@;'; + put 'put ''aGlzLmxlbmd0aCksMCE9PVAmJih0aGlzLndvcmRzW3RoaXMubGVuZ3RoLTFdJj02NzEwODg2M142NzEwODg2Mz4+PlA8PFApLHRoaXMuc3RyaXAoKSl9LE4ucHJvdG90eXBlLm1hc2tuPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmNsb25lKCkuaW1hc2tuKHgpfSxOLnByb3RvdHlwZS5pYWRk''@;'; + put 'put ''bj1mdW5jdGlvbih4KXtyZXR1cm4gWSgibnVtYmVyIj09dHlwZW9mIHgpLFkoeDw2NzEwODg2NCkseDwwP3RoaXMuaXN1Ym4oLXgpOjAhPT10aGlzLm5lZ2F0aXZlPzE9PT10aGlzLmxlbmd0aCYmKDB8dGhpcy53b3Jkc1swXSk8eD8odGhpcy53b3Jkc1swXT14LSgwfHRoaXMud29yZHNbMF0p''@;'; + put 'put ''LHRoaXMubmVnYXRpdmU9MCx0aGlzKToodGhpcy5uZWdhdGl2ZT0wLHRoaXMuaXN1Ym4oeCksdGhpcy5uZWdhdGl2ZT0xLHRoaXMpOnRoaXMuX2lhZGRuKHgpfSxOLnByb3RvdHlwZS5faWFkZG49ZnVuY3Rpb24oeCl7dGhpcy53b3Jkc1swXSs9eDtmb3IodmFyIFA9MDtQPHRoaXMubGVuZ3Ro''@;'; + put 'put ''JiZ0aGlzLndvcmRzW1BdPj02NzEwODg2NDtQKyspdGhpcy53b3Jkc1tQXS09NjcxMDg4NjQsUD09PXRoaXMubGVuZ3RoLTE/dGhpcy53b3Jkc1tQKzFdPTE6dGhpcy53b3Jkc1tQKzFdKys7cmV0dXJuIHRoaXMubGVuZ3RoPU1hdGgubWF4KHRoaXMubGVuZ3RoLFArMSksdGhpc30sTi5wcm90''@;'; + put 'put ''b3R5cGUuaXN1Ym49ZnVuY3Rpb24oeCl7aWYoWSgibnVtYmVyIj09dHlwZW9mIHgpLFkoeDw2NzEwODg2NCkseDwwKXJldHVybiB0aGlzLmlhZGRuKC14KTtpZigwIT09dGhpcy5uZWdhdGl2ZSlyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLHRoaXMuaWFkZG4oeCksdGhpcy5uZWdhdGl2ZT0xLHRo''@;'; + put 'put ''aXM7aWYodGhpcy53b3Jkc1swXS09eCwxPT09dGhpcy5sZW5ndGgmJnRoaXMud29yZHNbMF08MCl0aGlzLndvcmRzWzBdPS10aGlzLndvcmRzWzBdLHRoaXMubmVnYXRpdmU9MTtlbHNlIGZvcih2YXIgUD0wO1A8dGhpcy5sZW5ndGgmJnRoaXMud29yZHNbUF08MDtQKyspdGhpcy53b3Jkc1tQ''@;'; + put 'put ''XSs9NjcxMDg4NjQsdGhpcy53b3Jkc1tQKzFdLT0xO3JldHVybiB0aGlzLnN0cmlwKCl9LE4ucHJvdG90eXBlLmFkZG49ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pYWRkbih4KX0sTi5wcm90b3R5cGUuc3Vibj1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlzdWJu''@;'; + put 'put ''KHgpfSxOLnByb3RvdHlwZS5pYWJzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlzfSxOLnByb3RvdHlwZS5hYnM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlhYnMoKX0sTi5wcm90b3R5cGUuX2lzaGxuc3VibXVsPWZ1bmN0aW9uKHgsUCxWKXt2YXIgVCxT''@;'; + put 'put ''O3RoaXMuX2V4cGFuZCh4Lmxlbmd0aCtWKTt2YXIgeWU9MDtmb3IoVD0wO1Q8eC5sZW5ndGg7VCsrKXtTPSgwfHRoaXMud29yZHNbVCtWXSkreWU7dmFyIENlPSgwfHgud29yZHNbVF0pKlA7eWU9KChTLT02NzEwODg2MyZDZSk+PjI2KS0oQ2UvNjcxMDg4NjR8MCksdGhpcy53b3Jkc1tUK1Zd''@;'; + put 'put ''PTY3MTA4ODYzJlN9Zm9yKDtUPHRoaXMubGVuZ3RoLVY7VCsrKXllPShTPSgwfHRoaXMud29yZHNbVCtWXSkreWUpPj4yNix0aGlzLndvcmRzW1QrVl09NjcxMDg4NjMmUztpZigwPT09eWUpcmV0dXJuIHRoaXMuc3RyaXAoKTtmb3IoWSgtMT09PXllKSx5ZT0wLFQ9MDtUPHRoaXMubGVuZ3Ro''@;'; + put 'put ''O1QrKyl5ZT0oUz0tKDB8dGhpcy53b3Jkc1tUXSkreWUpPj4yNix0aGlzLndvcmRzW1RdPTY3MTA4ODYzJlM7cmV0dXJuIHRoaXMubmVnYXRpdmU9MSx0aGlzLnN0cmlwKCl9LE4ucHJvdG90eXBlLl93b3JkRGl2PWZ1bmN0aW9uKHgsUCl7dmFyIFYsVD10aGlzLmNsb25lKCksUz14LEY9MHxT''@;'; + put 'put ''LndvcmRzW1MubGVuZ3RoLTFdOzAhPShWPTI2LXRoaXMuX2NvdW50Qml0cyhGKSkmJihTPVMudXNobG4oViksVC5pdXNobG4oViksRj0wfFMud29yZHNbUy5sZW5ndGgtMV0pO3ZhciB5ZSxDZT1ULmxlbmd0aC1TLmxlbmd0aDtpZigibW9kIiE9PVApeyh5ZT1uZXcgTihudWxsKSkubGVuZ3Ro''@;'; + put 'put ''PUNlKzEseWUud29yZHM9bmV3IEFycmF5KHllLmxlbmd0aCk7Zm9yKHZhciBEZT0wO0RlPHllLmxlbmd0aDtEZSsrKXllLndvcmRzW0RlXT0wfXZhciBQZT1ULmNsb25lKCkuX2lzaGxuc3VibXVsKFMsMSxDZSk7MD09PVBlLm5lZ2F0aXZlJiYoVD1QZSx5ZSYmKHllLndvcmRzW0NlXT0xKSk7''@;'; + put 'put ''Zm9yKHZhciBRZT1DZS0xO1FlPj0wO1FlLS0pe3ZhciAkZT02NzEwODg2NCooMHxULndvcmRzW1MubGVuZ3RoK1FlXSkrKDB8VC53b3Jkc1tTLmxlbmd0aCtRZS0xXSk7Zm9yKCRlPU1hdGgubWluKCRlL0Z8MCw2NzEwODg2MyksVC5faXNobG5zdWJtdWwoUywkZSxRZSk7MCE9PVQubmVnYXRp''@;'; + put 'put ''dmU7KSRlLS0sVC5uZWdhdGl2ZT0wLFQuX2lzaGxuc3VibXVsKFMsMSxRZSksVC5pc1plcm8oKXx8KFQubmVnYXRpdmVePTEpO3llJiYoeWUud29yZHNbUWVdPSRlKX1yZXR1cm4geWUmJnllLnN0cmlwKCksVC5zdHJpcCgpLCJkaXYiIT09UCYmMCE9PVYmJlQuaXVzaHJuKFYpLHtkaXY6eWV8''@;'; + put 'put ''fG51bGwsbW9kOlR9fSxOLnByb3RvdHlwZS5kaXZtb2Q9ZnVuY3Rpb24oeCxQLFYpe3JldHVybiBZKCF4LmlzWmVybygpKSx0aGlzLmlzWmVybygpP3tkaXY6bmV3IE4oMCksbW9kOm5ldyBOKDApfTowIT09dGhpcy5uZWdhdGl2ZSYmMD09PXgubmVnYXRpdmU/KEY9dGhpcy5uZWcoKS5kaXZt''@;'; + put 'put ''b2QoeCxQKSwibW9kIiE9PVAmJihUPUYuZGl2Lm5lZygpKSwiZGl2IiE9PVAmJihTPUYubW9kLm5lZygpLFYmJjAhPT1TLm5lZ2F0aXZlJiZTLmlhZGQoeCkpLHtkaXY6VCxtb2Q6U30pOjA9PT10aGlzLm5lZ2F0aXZlJiYwIT09eC5uZWdhdGl2ZT8oRj10aGlzLmRpdm1vZCh4Lm5lZygpLFAp''@;'; + put 'put ''LCJtb2QiIT09UCYmKFQ9Ri5kaXYubmVnKCkpLHtkaXY6VCxtb2Q6Ri5tb2R9KTowIT0odGhpcy5uZWdhdGl2ZSZ4Lm5lZ2F0aXZlKT8oRj10aGlzLm5lZygpLmRpdm1vZCh4Lm5lZygpLFApLCJkaXYiIT09UCYmKFM9Ri5tb2QubmVnKCksViYmMCE9PVMubmVnYXRpdmUmJlMuaXN1Yih4KSks''@;'; + put 'put ''e2RpdjpGLmRpdixtb2Q6U30pOngubGVuZ3RoPnRoaXMubGVuZ3RofHx0aGlzLmNtcCh4KTwwP3tkaXY6bmV3IE4oMCksbW9kOnRoaXN9OjE9PT14Lmxlbmd0aD8iZGl2Ij09PVA/e2Rpdjp0aGlzLmRpdm4oeC53b3Jkc1swXSksbW9kOm51bGx9OiJtb2QiPT09UD97ZGl2Om51bGwsbW9kOm5l''@;'; + put 'put ''dyBOKHRoaXMubW9kbih4LndvcmRzWzBdKSl9OntkaXY6dGhpcy5kaXZuKHgud29yZHNbMF0pLG1vZDpuZXcgTih0aGlzLm1vZG4oeC53b3Jkc1swXSkpfTp0aGlzLl93b3JkRGl2KHgsUCk7dmFyIFQsUyxGfSxOLnByb3RvdHlwZS5kaXY9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuZGl2bW9k''@;'; + put 'put ''KHgsImRpdiIsITEpLmRpdn0sTi5wcm90b3R5cGUubW9kPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmRpdm1vZCh4LCJtb2QiLCExKS5tb2R9LE4ucHJvdG90eXBlLnVtb2Q9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuZGl2bW9kKHgsIm1vZCIsITApLm1vZH0sTi5wcm90b3R5cGUuZGl2Um91''@;'; + put 'put ''bmQ9ZnVuY3Rpb24oeCl7dmFyIFA9dGhpcy5kaXZtb2QoeCk7aWYoUC5tb2QuaXNaZXJvKCkpcmV0dXJuIFAuZGl2O3ZhciBWPTAhPT1QLmRpdi5uZWdhdGl2ZT9QLm1vZC5pc3ViKHgpOlAubW9kLFQ9eC51c2hybigxKSxTPXguYW5kbG4oMSksRj1WLmNtcChUKTtyZXR1cm4gRjwwfHwxPT09''@;'; + put 'put ''UyYmMD09PUY/UC5kaXY6MCE9PVAuZGl2Lm5lZ2F0aXZlP1AuZGl2LmlzdWJuKDEpOlAuZGl2LmlhZGRuKDEpfSxOLnByb3RvdHlwZS5tb2RuPWZ1bmN0aW9uKHgpe1koeDw9NjcxMDg4NjMpO2Zvcih2YXIgUD02NzEwODg2NCV4LFY9MCxUPXRoaXMubGVuZ3RoLTE7VD49MDtULS0pVj0oUCpW''@;'; + put 'put ''KygwfHRoaXMud29yZHNbVF0pKSV4O3JldHVybiBWfSxOLnByb3RvdHlwZS5pZGl2bj1mdW5jdGlvbih4KXtZKHg8PTY3MTA4ODYzKTtmb3IodmFyIFA9MCxWPXRoaXMubGVuZ3RoLTE7Vj49MDtWLS0pe3ZhciBUPSgwfHRoaXMud29yZHNbVl0pKzY3MTA4ODY0KlA7dGhpcy53b3Jkc1tWXT1U''@;'; + put 'put ''L3h8MCxQPVQleH1yZXR1cm4gdGhpcy5zdHJpcCgpfSxOLnByb3RvdHlwZS5kaXZuPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmNsb25lKCkuaWRpdm4oeCl9LE4ucHJvdG90eXBlLmVnY2Q9ZnVuY3Rpb24oeCl7WSgwPT09eC5uZWdhdGl2ZSksWSgheC5pc1plcm8oKSk7dmFyIFA9dGhpcyxW''@;'; + put 'put ''PXguY2xvbmUoKTtQPTAhPT1QLm5lZ2F0aXZlP1AudW1vZCh4KTpQLmNsb25lKCk7Zm9yKHZhciBUPW5ldyBOKDEpLFM9bmV3IE4oMCksRj1uZXcgTigwKSx5ZT1uZXcgTigxKSxDZT0wO1AuaXNFdmVuKCkmJlYuaXNFdmVuKCk7KVAuaXVzaHJuKDEpLFYuaXVzaHJuKDEpLCsrQ2U7Zm9yKHZh''@;'; + put 'put ''ciBEZT1WLmNsb25lKCksUGU9UC5jbG9uZSgpOyFQLmlzWmVybygpOyl7Zm9yKHZhciBRZT0wLCRlPTE7MD09KFAud29yZHNbMF0mJGUpJiZRZTwyNjsrK1FlLCRlPDw9MSk7aWYoUWU+MClmb3IoUC5pdXNocm4oUWUpO1FlLS0gPjA7KShULmlzT2RkKCl8fFMuaXNPZGQoKSkmJihULmlhZGQo''@;'; + put 'put ''RGUpLFMuaXN1YihQZSkpLFQuaXVzaHJuKDEpLFMuaXVzaHJuKDEpO2Zvcih2YXIgZ3Q9MCx3dD0xOzA9PShWLndvcmRzWzBdJnd0KSYmZ3Q8MjY7KytndCx3dDw8PTEpO2lmKGd0PjApZm9yKFYuaXVzaHJuKGd0KTtndC0tID4wOykoRi5pc09kZCgpfHx5ZS5pc09kZCgpKSYmKEYuaWFkZChE''@;'; + put 'put ''ZSkseWUuaXN1YihQZSkpLEYuaXVzaHJuKDEpLHllLml1c2hybigxKTtQLmNtcChWKT49MD8oUC5pc3ViKFYpLFQuaXN1YihGKSxTLmlzdWIoeWUpKTooVi5pc3ViKFApLEYuaXN1YihUKSx5ZS5pc3ViKFMpKX1yZXR1cm57YTpGLGI6eWUsZ2NkOlYuaXVzaGxuKENlKX19LE4ucHJvdG90eXBl''@;'; + put 'put ''Ll9pbnZtcD1mdW5jdGlvbih4KXtZKDA9PT14Lm5lZ2F0aXZlKSxZKCF4LmlzWmVybygpKTt2YXIgUD10aGlzLFY9eC5jbG9uZSgpO1A9MCE9PVAubmVnYXRpdmU/UC51bW9kKHgpOlAuY2xvbmUoKTtmb3IodmFyIFQsUz1uZXcgTigxKSxGPW5ldyBOKDApLHllPVYuY2xvbmUoKTtQLmNtcG4o''@;'; + put 'put ''MSk+MCYmVi5jbXBuKDEpPjA7KXtmb3IodmFyIENlPTAsRGU9MTswPT0oUC53b3Jkc1swXSZEZSkmJkNlPDI2OysrQ2UsRGU8PD0xKTtpZihDZT4wKWZvcihQLml1c2hybihDZSk7Q2UtLSA+MDspUy5pc09kZCgpJiZTLmlhZGQoeWUpLFMuaXVzaHJuKDEpO2Zvcih2YXIgUGU9MCxRZT0xOzA9''@;'; + put 'put ''PShWLndvcmRzWzBdJlFlKSYmUGU8MjY7KytQZSxRZTw8PTEpO2lmKFBlPjApZm9yKFYuaXVzaHJuKFBlKTtQZS0tID4wOylGLmlzT2RkKCkmJkYuaWFkZCh5ZSksRi5pdXNocm4oMSk7UC5jbXAoVik+PTA/KFAuaXN1YihWKSxTLmlzdWIoRikpOihWLmlzdWIoUCksRi5pc3ViKFMpKX1yZXR1''@;'; + put 'put ''cm4oVD0wPT09UC5jbXBuKDEpP1M6RikuY21wbigwKTwwJiZULmlhZGQoeCksVH0sTi5wcm90b3R5cGUuZ2NkPWZ1bmN0aW9uKHgpe2lmKHRoaXMuaXNaZXJvKCkpcmV0dXJuIHguYWJzKCk7aWYoeC5pc1plcm8oKSlyZXR1cm4gdGhpcy5hYnMoKTt2YXIgUD10aGlzLmNsb25lKCksVj14LmNs''@;'; + put 'put ''b25lKCk7UC5uZWdhdGl2ZT0wLFYubmVnYXRpdmU9MDtmb3IodmFyIFQ9MDtQLmlzRXZlbigpJiZWLmlzRXZlbigpO1QrKylQLml1c2hybigxKSxWLml1c2hybigxKTtmb3IoOzspe2Zvcig7UC5pc0V2ZW4oKTspUC5pdXNocm4oMSk7Zm9yKDtWLmlzRXZlbigpOylWLml1c2hybigxKTt2YXIg''@;'; + put 'put ''Uz1QLmNtcChWKTtpZihTPDApe3ZhciBGPVA7UD1WLFY9Rn1lbHNlIGlmKDA9PT1TfHwwPT09Vi5jbXBuKDEpKWJyZWFrO1AuaXN1YihWKX1yZXR1cm4gVi5pdXNobG4oVCl9LE4ucHJvdG90eXBlLmludm09ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuZWdjZCh4KS5hLnVtb2QoeCl9LE4ucHJv''@;'; + put 'put ''dG90eXBlLmlzRXZlbj1mdW5jdGlvbigpe3JldHVybiAwPT0oMSZ0aGlzLndvcmRzWzBdKX0sTi5wcm90b3R5cGUuaXNPZGQ9ZnVuY3Rpb24oKXtyZXR1cm4gMT09KDEmdGhpcy53b3Jkc1swXSl9LE4ucHJvdG90eXBlLmFuZGxuPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLndvcmRzWzBdJnh9''@;'; + put 'put ''LE4ucHJvdG90eXBlLmJpbmNuPWZ1bmN0aW9uKHgpe1koIm51bWJlciI9PXR5cGVvZiB4KTt2YXIgUD14JTI2LFY9KHgtUCkvMjYsVD0xPDxQO2lmKHRoaXMubGVuZ3RoPD1WKXJldHVybiB0aGlzLl9leHBhbmQoVisxKSx0aGlzLndvcmRzW1ZdfD1ULHRoaXM7Zm9yKHZhciBTPVQsRj1WOzAh''@;'; + put 'put ''PT1TJiZGPHRoaXMubGVuZ3RoO0YrKyl7dmFyIHllPTB8dGhpcy53b3Jkc1tGXTtTPSh5ZSs9Uyk+Pj4yNix0aGlzLndvcmRzW0ZdPXllJj02NzEwODg2M31yZXR1cm4gMCE9PVMmJih0aGlzLndvcmRzW0ZdPVMsdGhpcy5sZW5ndGgrKyksdGhpc30sTi5wcm90b3R5cGUuaXNaZXJvPWZ1bmN0''@;'; + put 'put ''aW9uKCl7cmV0dXJuIDE9PT10aGlzLmxlbmd0aCYmMD09PXRoaXMud29yZHNbMF19LE4ucHJvdG90eXBlLmNtcG49ZnVuY3Rpb24oeCl7dmFyIFAsVj14PDA7aWYoMCE9PXRoaXMubmVnYXRpdmUmJiFWKXJldHVybi0xO2lmKDA9PT10aGlzLm5lZ2F0aXZlJiZWKXJldHVybiAxO2lmKHRoaXMu''@;'; + put 'put ''c3RyaXAoKSx0aGlzLmxlbmd0aD4xKVA9MTtlbHNle1YmJih4PS14KSxZKHg8PTY3MTA4ODYzLCJOdW1iZXIgaXMgdG9vIGJpZyIpO3ZhciBUPTB8dGhpcy53b3Jkc1swXTtQPVQ9PT14PzA6VDx4Py0xOjF9cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlPzB8LVA6UH0sTi5wcm90b3R5cGUuY21w''@;'; + put 'put ''PWZ1bmN0aW9uKHgpe2lmKDAhPT10aGlzLm5lZ2F0aXZlJiYwPT09eC5uZWdhdGl2ZSlyZXR1cm4tMTtpZigwPT09dGhpcy5uZWdhdGl2ZSYmMCE9PXgubmVnYXRpdmUpcmV0dXJuIDE7dmFyIFA9dGhpcy51Y21wKHgpO3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZT8wfC1QOlB9LE4ucHJvdG90''@;'; + put 'put ''eXBlLnVjbXA9ZnVuY3Rpb24oeCl7aWYodGhpcy5sZW5ndGg+eC5sZW5ndGgpcmV0dXJuIDE7aWYodGhpcy5sZW5ndGg8eC5sZW5ndGgpcmV0dXJuLTE7Zm9yKHZhciBQPTAsVj10aGlzLmxlbmd0aC0xO1Y+PTA7Vi0tKXt2YXIgVD0wfHRoaXMud29yZHNbVl0sUz0wfHgud29yZHNbVl07aWYo''@;'; + put 'put ''VCE9PVMpe1Q8Uz9QPS0xOlQ+UyYmKFA9MSk7YnJlYWt9fXJldHVybiBQfSxOLnByb3RvdHlwZS5ndG49ZnVuY3Rpb24oeCl7cmV0dXJuIDE9PT10aGlzLmNtcG4oeCl9LE4ucHJvdG90eXBlLmd0PWZ1bmN0aW9uKHgpe3JldHVybiAxPT09dGhpcy5jbXAoeCl9LE4ucHJvdG90eXBlLmd0ZW49''@;'; + put 'put ''ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuY21wbih4KT49MH0sTi5wcm90b3R5cGUuZ3RlPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmNtcCh4KT49MH0sTi5wcm90b3R5cGUubHRuPWZ1bmN0aW9uKHgpe3JldHVybi0xPT09dGhpcy5jbXBuKHgpfSxOLnByb3RvdHlwZS5sdD1mdW5jdGlvbih4''@;'; + put 'put ''KXtyZXR1cm4tMT09PXRoaXMuY21wKHgpfSxOLnByb3RvdHlwZS5sdGVuPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmNtcG4oeCk8PTB9LE4ucHJvdG90eXBlLmx0ZT1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5jbXAoeCk8PTB9LE4ucHJvdG90eXBlLmVxbj1mdW5jdGlvbih4KXtyZXR1cm4g''@;'; + put 'put ''MD09PXRoaXMuY21wbih4KX0sTi5wcm90b3R5cGUuZXE9ZnVuY3Rpb24oeCl7cmV0dXJuIDA9PT10aGlzLmNtcCh4KX0sTi5yZWQ9ZnVuY3Rpb24oeCl7cmV0dXJuIG5ldyBuZSh4KX0sTi5wcm90b3R5cGUudG9SZWQ9ZnVuY3Rpb24oeCl7cmV0dXJuIFkoIXRoaXMucmVkLCJBbHJlYWR5IGEg''@;'; + put 'put ''bnVtYmVyIGluIHJlZHVjdGlvbiBjb250ZXh0IiksWSgwPT09dGhpcy5uZWdhdGl2ZSwicmVkIHdvcmtzIG9ubHkgd2l0aCBwb3NpdGl2ZXMiKSx4LmNvbnZlcnRUbyh0aGlzKS5fZm9yY2VSZWQoeCl9LE4ucHJvdG90eXBlLmZyb21SZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gWSh0aGlzLnJlZCwi''@;'; + put 'put ''ZnJvbVJlZCB3b3JrcyBvbmx5IHdpdGggbnVtYmVycyBpbiByZWR1Y3Rpb24gY29udGV4dCIpLHRoaXMucmVkLmNvbnZlcnRGcm9tKHRoaXMpfSxOLnByb3RvdHlwZS5fZm9yY2VSZWQ9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMucmVkPXgsdGhpc30sTi5wcm90b3R5cGUuZm9yY2VSZWQ9ZnVu''@;'; + put 'put ''Y3Rpb24oeCl7cmV0dXJuIFkoIXRoaXMucmVkLCJBbHJlYWR5IGEgbnVtYmVyIGluIHJlZHVjdGlvbiBjb250ZXh0IiksdGhpcy5fZm9yY2VSZWQoeCl9LE4ucHJvdG90eXBlLnJlZEFkZD1mdW5jdGlvbih4KXtyZXR1cm4gWSh0aGlzLnJlZCwicmVkQWRkIHdvcmtzIG9ubHkgd2l0aCByZWQg''@;'; + put 'put ''bnVtYmVycyIpLHRoaXMucmVkLmFkZCh0aGlzLHgpfSxOLnByb3RvdHlwZS5yZWRJQWRkPWZ1bmN0aW9uKHgpe3JldHVybiBZKHRoaXMucmVkLCJyZWRJQWRkIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLmlhZGQodGhpcyx4KX0sTi5wcm90b3R5cGUucmVkU3ViPWZ1''@;'; + put 'put ''bmN0aW9uKHgpe3JldHVybiBZKHRoaXMucmVkLCJyZWRTdWIgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuc3ViKHRoaXMseCl9LE4ucHJvdG90eXBlLnJlZElTdWI9ZnVuY3Rpb24oeCl7cmV0dXJuIFkodGhpcy5yZWQsInJlZElTdWIgd29ya3Mgb25seSB3aXRoIHJl''@;'; + put 'put ''ZCBudW1iZXJzIiksdGhpcy5yZWQuaXN1Yih0aGlzLHgpfSxOLnByb3RvdHlwZS5yZWRTaGw9ZnVuY3Rpb24oeCl7cmV0dXJuIFkodGhpcy5yZWQsInJlZFNobCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5zaGwodGhpcyx4KX0sTi5wcm90b3R5cGUucmVkTXVsPWZ1''@;'; + put 'put ''bmN0aW9uKHgpe3JldHVybiBZKHRoaXMucmVkLCJyZWRNdWwgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTIodGhpcyx4KSx0aGlzLnJlZC5tdWwodGhpcyx4KX0sTi5wcm90b3R5cGUucmVkSU11bD1mdW5jdGlvbih4KXtyZXR1cm4gWSh0aGlzLnJlZCwi''@;'; + put 'put ''cmVkTXVsIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkyKHRoaXMseCksdGhpcy5yZWQuaW11bCh0aGlzLHgpfSxOLnByb3RvdHlwZS5yZWRTcXI9ZnVuY3Rpb24oKXtyZXR1cm4gWSh0aGlzLnJlZCwicmVkU3FyIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVt''@;'; + put 'put ''YmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLnNxcih0aGlzKX0sTi5wcm90b3R5cGUucmVkSVNxcj1mdW5jdGlvbigpe3JldHVybiBZKHRoaXMucmVkLCJyZWRJU3FyIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRo''@;'; + put 'put ''aXMucmVkLmlzcXIodGhpcyl9LE4ucHJvdG90eXBlLnJlZFNxcnQ9ZnVuY3Rpb24oKXtyZXR1cm4gWSh0aGlzLnJlZCwicmVkU3FydCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5zcXJ0KHRoaXMpfSxOLnByb3RvdHlwZS5y''@;'; + put 'put ''ZWRJbnZtPWZ1bmN0aW9uKCl7cmV0dXJuIFkodGhpcy5yZWQsInJlZEludm0gd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQuaW52bSh0aGlzKX0sTi5wcm90b3R5cGUucmVkTmVnPWZ1bmN0aW9uKCl7cmV0dXJuIFkodGhpcy5y''@;'; + put 'put ''ZWQsInJlZE5lZyB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5uZWcodGhpcyl9LE4ucHJvdG90eXBlLnJlZFBvdz1mdW5jdGlvbih4KXtyZXR1cm4gWSh0aGlzLnJlZCYmIXgucmVkLCJyZWRQb3cobm9ybWFsTnVtKSIpLHRo''@;'; + put 'put ''aXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLnBvdyh0aGlzLHgpfTt2YXIgSWU9e2syNTY6bnVsbCxwMjI0Om51bGwscDE5MjpudWxsLHAyNTUxOTpudWxsfTtmdW5jdGlvbiBUZSh4LFApe3RoaXMubmFtZT14LHRoaXMucD1uZXcgTihQLDE2KSx0aGlzLm49dGhpcy5wLmJpdExlbmd0''@;'; + put 'put ''aCgpLHRoaXMuaz1uZXcgTigxKS5pdXNobG4odGhpcy5uKS5pc3ViKHRoaXMucCksdGhpcy50bXA9dGhpcy5fdG1wKCl9ZnVuY3Rpb24gRWUoKXtUZS5jYWxsKHRoaXMsImsyNTYiLCJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZm''@;'; + put 'put ''ZSBmZmZmZmMyZiIpfWZ1bmN0aW9uIGhlKCl7VGUuY2FsbCh0aGlzLCJwMjI0IiwiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgMDAwMDAwMDAgMDAwMDAwMDAgMDAwMDAwMDEiKX1mdW5jdGlvbiBPKCl7VGUuY2FsbCh0aGlzLCJwMTkyIiwiZmZmZmZmZmYgZmZmZmZmZmYg''@;'; + put 'put ''ZmZmZmZmZmYgZmZmZmZmZmUgZmZmZmZmZmYgZmZmZmZmZmYiKX1mdW5jdGlvbiB6KCl7VGUuY2FsbCh0aGlzLCIyNTUxOSIsIjdmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZWQiKX1mdW5jdGlvbiBuZSh4KXtpZigic3Ry''@;'; + put 'put ''aW5nIj09dHlwZW9mIHgpe3ZhciBQPU4uX3ByaW1lKHgpO3RoaXMubT1QLnAsdGhpcy5wcmltZT1QfWVsc2UgWSh4Lmd0bigxKSwibW9kdWx1cyBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAxIiksdGhpcy5tPXgsdGhpcy5wcmltZT1udWxsfWZ1bmN0aW9uIHRlKHgpe25lLmNhbGwodGhpcyx4KSx0''@;'; + put 'put ''aGlzLnNoaWZ0PXRoaXMubS5iaXRMZW5ndGgoKSx0aGlzLnNoaWZ0JTI2IT0wJiYodGhpcy5zaGlmdCs9MjYtdGhpcy5zaGlmdCUyNiksdGhpcy5yPW5ldyBOKDEpLml1c2hsbih0aGlzLnNoaWZ0KSx0aGlzLnIyPXRoaXMuaW1vZCh0aGlzLnIuc3FyKCkpLHRoaXMucmludj10aGlzLnIuX2lu''@;'; + put 'put ''dm1wKHRoaXMubSksdGhpcy5taW52PXRoaXMucmludi5tdWwodGhpcy5yKS5pc3VibigxKS5kaXYodGhpcy5tKSx0aGlzLm1pbnY9dGhpcy5taW52LnVtb2QodGhpcy5yKSx0aGlzLm1pbnY9dGhpcy5yLnN1Yih0aGlzLm1pbnYpfVRlLnByb3RvdHlwZS5fdG1wPWZ1bmN0aW9uKCl7dmFyIHg9''@;'; + put 'put ''bmV3IE4obnVsbCk7cmV0dXJuIHgud29yZHM9bmV3IEFycmF5KE1hdGguY2VpbCh0aGlzLm4vMTMpKSx4fSxUZS5wcm90b3R5cGUuaXJlZHVjZT1mdW5jdGlvbih4KXt2YXIgUCxWPXg7ZG97dGhpcy5zcGxpdChWLHRoaXMudG1wKSxQPShWPShWPXRoaXMuaW11bEsoVikpLmlhZGQodGhpcy50''@;'; + put 'put ''bXApKS5iaXRMZW5ndGgoKX13aGlsZShQPnRoaXMubik7dmFyIFQ9UDx0aGlzLm4/LTE6Vi51Y21wKHRoaXMucCk7cmV0dXJuIDA9PT1UPyhWLndvcmRzWzBdPTAsVi5sZW5ndGg9MSk6VD4wP1YuaXN1Yih0aGlzLnApOnZvaWQgMCE9PVYuc3RyaXA/Vi5zdHJpcCgpOlYuX3N0cmlwKCksVn0s''@;'; + put 'put ''VGUucHJvdG90eXBlLnNwbGl0PWZ1bmN0aW9uKHgsUCl7eC5pdXNocm4odGhpcy5uLDAsUCl9LFRlLnByb3RvdHlwZS5pbXVsSz1mdW5jdGlvbih4KXtyZXR1cm4geC5pbXVsKHRoaXMuayl9LFcoRWUsVGUpLEVlLnByb3RvdHlwZS5zcGxpdD1mdW5jdGlvbih4LFApe2Zvcih2YXIgVj00MTk0''@;'; + put 'put ''MzAzLFQ9TWF0aC5taW4oeC5sZW5ndGgsOSksUz0wO1M8VDtTKyspUC53b3Jkc1tTXT14LndvcmRzW1NdO2lmKFAubGVuZ3RoPVQseC5sZW5ndGg8PTkpcmV0dXJuIHgud29yZHNbMF09MCx2b2lkKHgubGVuZ3RoPTEpO3ZhciBGPXgud29yZHNbOV07Zm9yKFAud29yZHNbUC5sZW5ndGgrK109''@;'; + put 'put ''RiZWLFM9MTA7Uzx4Lmxlbmd0aDtTKyspe3ZhciB5ZT0wfHgud29yZHNbU107eC53b3Jkc1tTLTEwXT0oeWUmVik8PDR8Rj4+PjIyLEY9eWV9eC53b3Jkc1tTLTEwXT1GPj4+PTIyLHgubGVuZ3RoLT0wPT09RiYmeC5sZW5ndGg+MTA/MTA6OX0sRWUucHJvdG90eXBlLmltdWxLPWZ1bmN0aW9u''@;'; + put 'put ''KHgpe3gud29yZHNbeC5sZW5ndGhdPTAseC53b3Jkc1t4Lmxlbmd0aCsxXT0wLHgubGVuZ3RoKz0yO2Zvcih2YXIgUD0wLFY9MDtWPHgubGVuZ3RoO1YrKyl7dmFyIFQ9MHx4LndvcmRzW1ZdO3gud29yZHNbVl09NjcxMDg4NjMmKFArPTk3NypUKSxQPTY0KlQrKFAvNjcxMDg4NjR8MCl9cmV0''@;'; + put 'put ''dXJuIDA9PT14LndvcmRzW3gubGVuZ3RoLTFdJiYoeC5sZW5ndGgtLSwwPT09eC53b3Jkc1t4Lmxlbmd0aC0xXSYmeC5sZW5ndGgtLSkseH0sVyhoZSxUZSksVyhPLFRlKSxXKHosVGUpLHoucHJvdG90eXBlLmltdWxLPWZ1bmN0aW9uKHgpe2Zvcih2YXIgUD0wLFY9MDtWPHgubGVuZ3RoO1Yr''@;'; + put 'put ''Kyl7dmFyIFQ9MTkqKDB8eC53b3Jkc1tWXSkrUCxTPTY3MTA4ODYzJlQ7VD4+Pj0yNix4LndvcmRzW1ZdPVMsUD1UfXJldHVybiAwIT09UCYmKHgud29yZHNbeC5sZW5ndGgrK109UCkseH0sTi5fcHJpbWU9ZnVuY3Rpb24oeCl7aWYoSWVbeF0pcmV0dXJuIEllW3hdO3ZhciBQO2lmKCJrMjU2''@;'; + put 'put ''Ij09PXgpUD1uZXcgRWU7ZWxzZSBpZigicDIyNCI9PT14KVA9bmV3IGhlO2Vsc2UgaWYoInAxOTIiPT09eClQPW5ldyBPO2Vsc2V7aWYoInAyNTUxOSIhPT14KXRocm93IG5ldyBFcnJvcigiVW5rbm93biBwcmltZSAiK3gpO1A9bmV3IHp9cmV0dXJuIEllW3hdPVAsUH0sbmUucHJvdG90eXBl''@;'; + put 'put ''Ll92ZXJpZnkxPWZ1bmN0aW9uKHgpe1koMD09PXgubmVnYXRpdmUsInJlZCB3b3JrcyBvbmx5IHdpdGggcG9zaXRpdmVzIiksWSh4LnJlZCwicmVkIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpfSxuZS5wcm90b3R5cGUuX3ZlcmlmeTI9ZnVuY3Rpb24oeCxQKXtZKDA9PSh4Lm5lZ2F0''@;'; + put 'put ''aXZlfFAubmVnYXRpdmUpLCJyZWQgd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlcyIpLFkoeC5yZWQmJngucmVkPT09UC5yZWQsInJlZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKX0sbmUucHJvdG90eXBlLmltb2Q9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMucHJpbWU/dGhpcy5wcmlt''@;'; + put 'put ''ZS5pcmVkdWNlKHgpLl9mb3JjZVJlZCh0aGlzKTp4LnVtb2QodGhpcy5tKS5fZm9yY2VSZWQodGhpcyl9LG5lLnByb3RvdHlwZS5uZWc9ZnVuY3Rpb24oeCl7cmV0dXJuIHguaXNaZXJvKCk/eC5jbG9uZSgpOnRoaXMubS5zdWIoeCkuX2ZvcmNlUmVkKHRoaXMpfSxuZS5wcm90b3R5cGUuYWRk''@;'; + put 'put ''PWZ1bmN0aW9uKHgsUCl7dGhpcy5fdmVyaWZ5Mih4LFApO3ZhciBWPXguYWRkKFApO3JldHVybiBWLmNtcCh0aGlzLm0pPj0wJiZWLmlzdWIodGhpcy5tKSxWLl9mb3JjZVJlZCh0aGlzKX0sbmUucHJvdG90eXBlLmlhZGQ9ZnVuY3Rpb24oeCxQKXt0aGlzLl92ZXJpZnkyKHgsUCk7dmFyIFY9''@;'; + put 'put ''eC5pYWRkKFApO3JldHVybiBWLmNtcCh0aGlzLm0pPj0wJiZWLmlzdWIodGhpcy5tKSxWfSxuZS5wcm90b3R5cGUuc3ViPWZ1bmN0aW9uKHgsUCl7dGhpcy5fdmVyaWZ5Mih4LFApO3ZhciBWPXguc3ViKFApO3JldHVybiBWLmNtcG4oMCk8MCYmVi5pYWRkKHRoaXMubSksVi5fZm9yY2VSZWQo''@;'; + put 'put ''dGhpcyl9LG5lLnByb3RvdHlwZS5pc3ViPWZ1bmN0aW9uKHgsUCl7dGhpcy5fdmVyaWZ5Mih4LFApO3ZhciBWPXguaXN1YihQKTtyZXR1cm4gVi5jbXBuKDApPDAmJlYuaWFkZCh0aGlzLm0pLFZ9LG5lLnByb3RvdHlwZS5zaGw9ZnVuY3Rpb24oeCxQKXtyZXR1cm4gdGhpcy5fdmVyaWZ5MSh4''@;'; + put 'put ''KSx0aGlzLmltb2QoeC51c2hsbihQKSl9LG5lLnByb3RvdHlwZS5pbXVsPWZ1bmN0aW9uKHgsUCl7cmV0dXJuIHRoaXMuX3ZlcmlmeTIoeCxQKSx0aGlzLmltb2QoeC5pbXVsKFApKX0sbmUucHJvdG90eXBlLm11bD1mdW5jdGlvbih4LFApe3JldHVybiB0aGlzLl92ZXJpZnkyKHgsUCksdGhp''@;'; + put 'put ''cy5pbW9kKHgubXVsKFApKX0sbmUucHJvdG90eXBlLmlzcXI9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuaW11bCh4LHguY2xvbmUoKSl9LG5lLnByb3RvdHlwZS5zcXI9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMubXVsKHgseCl9LG5lLnByb3RvdHlwZS5zcXJ0PWZ1bmN0aW9uKHgpe2lmKHgu''@;'; + put 'put ''aXNaZXJvKCkpcmV0dXJuIHguY2xvbmUoKTt2YXIgUD10aGlzLm0uYW5kbG4oMyk7aWYoWShQJTI9PTEpLDM9PT1QKXt2YXIgVj10aGlzLm0uYWRkKG5ldyBOKDEpKS5pdXNocm4oMik7cmV0dXJuIHRoaXMucG93KHgsVil9Zm9yKHZhciBUPXRoaXMubS5zdWJuKDEpLFM9MDshVC5pc1plcm8o''@;'; + put 'put ''KSYmMD09PVQuYW5kbG4oMSk7KVMrKyxULml1c2hybigxKTtZKCFULmlzWmVybygpKTt2YXIgRj1uZXcgTigxKS50b1JlZCh0aGlzKSx5ZT1GLnJlZE5lZygpLENlPXRoaXMubS5zdWJuKDEpLml1c2hybigxKSxEZT10aGlzLm0uYml0TGVuZ3RoKCk7Zm9yKERlPW5ldyBOKDIqRGUqRGUpLnRv''@;'; + put 'put ''UmVkKHRoaXMpOzAhPT10aGlzLnBvdyhEZSxDZSkuY21wKHllKTspRGUucmVkSUFkZCh5ZSk7Zm9yKHZhciBQZT10aGlzLnBvdyhEZSxUKSxRZT10aGlzLnBvdyh4LFQuYWRkbigxKS5pdXNocm4oMSkpLCRlPXRoaXMucG93KHgsVCksZ3Q9UzswIT09JGUuY21wKEYpOyl7Zm9yKHZhciB3dD0k''@;'; + put 'put ''ZSxtdD0wOzAhPT13dC5jbXAoRik7bXQrKyl3dD13dC5yZWRTcXIoKTtZKG10PGd0KTt2YXIgdnQ9dGhpcy5wb3coUGUsbmV3IE4oMSkuaXVzaGxuKGd0LW10LTEpKTtRZT1RZS5yZWRNdWwodnQpLFBlPXZ0LnJlZFNxcigpLCRlPSRlLnJlZE11bChQZSksZ3Q9bXR9cmV0dXJuIFFlfSxuZS5w''@;'; + put 'put ''cm90b3R5cGUuaW52bT1mdW5jdGlvbih4KXt2YXIgUD14Ll9pbnZtcCh0aGlzLm0pO3JldHVybiAwIT09UC5uZWdhdGl2ZT8oUC5uZWdhdGl2ZT0wLHRoaXMuaW1vZChQKS5yZWROZWcoKSk6dGhpcy5pbW9kKFApfSxuZS5wcm90b3R5cGUucG93PWZ1bmN0aW9uKHgsUCl7aWYoUC5pc1plcm8o''@;'; + put 'put ''KSlyZXR1cm4gbmV3IE4oMSkudG9SZWQodGhpcyk7aWYoMD09PVAuY21wbigxKSlyZXR1cm4geC5jbG9uZSgpO3ZhciBWPW5ldyBBcnJheSgxNik7VlswXT1uZXcgTigxKS50b1JlZCh0aGlzKSxWWzFdPXg7Zm9yKHZhciBUPTI7VDxWLmxlbmd0aDtUKyspVltUXT10aGlzLm11bChWW1QtMV0s''@;'; + put 'put ''eCk7dmFyIFM9VlswXSxGPTAseWU9MCxDZT1QLmJpdExlbmd0aCgpJTI2O2ZvcigwPT09Q2UmJihDZT0yNiksVD1QLmxlbmd0aC0xO1Q+PTA7VC0tKXtmb3IodmFyIERlPVAud29yZHNbVF0sUGU9Q2UtMTtQZT49MDtQZS0tKXt2YXIgUWU9RGU+PlBlJjE7UyE9PVZbMF0mJihTPXRoaXMuc3Fy''@;'; + put 'put ''KFMpKSwwIT09UWV8fDAhPT1GPyhGPDw9MSxGfD1RZSwoND09Kyt5ZXx8MD09PVQmJjA9PT1QZSkmJihTPXRoaXMubXVsKFMsVltGXSkseWU9MCxGPTApKTp5ZT0wfUNlPTI2fXJldHVybiBTfSxuZS5wcm90b3R5cGUuY29udmVydFRvPWZ1bmN0aW9uKHgpe3ZhciBQPXgudW1vZCh0aGlzLm0p''@;'; + put 'put ''O3JldHVybiBQPT09eD9QLmNsb25lKCk6UH0sbmUucHJvdG90eXBlLmNvbnZlcnRGcm9tPWZ1bmN0aW9uKHgpe3ZhciBQPXguY2xvbmUoKTtyZXR1cm4gUC5yZWQ9bnVsbCxQfSxOLm1vbnQ9ZnVuY3Rpb24oeCl7cmV0dXJuIG5ldyB0ZSh4KX0sVyh0ZSxuZSksdGUucHJvdG90eXBlLmNvbnZl''@;'; + put 'put ''cnRUbz1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5pbW9kKHgudXNobG4odGhpcy5zaGlmdCkpfSx0ZS5wcm90b3R5cGUuY29udmVydEZyb209ZnVuY3Rpb24oeCl7dmFyIFA9dGhpcy5pbW9kKHgubXVsKHRoaXMucmludikpO3JldHVybiBQLnJlZD1udWxsLFB9LHRlLnByb3RvdHlwZS5pbXVs''@;'; + put 'put ''PWZ1bmN0aW9uKHgsUCl7aWYoeC5pc1plcm8oKXx8UC5pc1plcm8oKSlyZXR1cm4geC53b3Jkc1swXT0wLHgubGVuZ3RoPTEseDt2YXIgVj14LmltdWwoUCksVD1WLm1hc2tuKHRoaXMuc2hpZnQpLm11bCh0aGlzLm1pbnYpLmltYXNrbih0aGlzLnNoaWZ0KS5tdWwodGhpcy5tKSxTPVYuaXN1''@;'; + put 'put ''YihUKS5pdXNocm4odGhpcy5zaGlmdCksRj1TO3JldHVybiBTLmNtcCh0aGlzLm0pPj0wP0Y9Uy5pc3ViKHRoaXMubSk6Uy5jbXBuKDApPDAmJihGPVMuaWFkZCh0aGlzLm0pKSxGLl9mb3JjZVJlZCh0aGlzKX0sdGUucHJvdG90eXBlLm11bD1mdW5jdGlvbih4LFApe2lmKHguaXNaZXJvKCl8''@;'; + put 'put ''fFAuaXNaZXJvKCkpcmV0dXJuIG5ldyBOKDApLl9mb3JjZVJlZCh0aGlzKTt2YXIgVj14Lm11bChQKSxUPVYubWFza24odGhpcy5zaGlmdCkubXVsKHRoaXMubWludikuaW1hc2tuKHRoaXMuc2hpZnQpLm11bCh0aGlzLm0pLFM9Vi5pc3ViKFQpLml1c2hybih0aGlzLnNoaWZ0KSxGPVM7cmV0''@;'; + put 'put ''dXJuIFMuY21wKHRoaXMubSk+PTA/Rj1TLmlzdWIodGhpcy5tKTpTLmNtcG4oMCk8MCYmKEY9Uy5pYWRkKHRoaXMubSkpLEYuX2ZvcmNlUmVkKHRoaXMpfSx0ZS5wcm90b3R5cGUuaW52bT1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5pbW9kKHguX2ludm1wKHRoaXMubSkubXVsKHRoaXMucjIp''@;'; + put 'put ''KS5fZm9yY2VSZWQodGhpcyl9fShVPVoubm1kKFUpLHRoaXMpfSw5MjgyOihVLFEsWik9PnsidXNlIHN0cmljdCI7dmFyIGllPVooNDE1NSksYWU9Wig1MTA4KTtmdW5jdGlvbiBZKFFlKXtyZXR1cm4oWT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJv''@;'; + put 'put ''bC5pdGVyYXRvcj9mdW5jdGlvbigkZSl7cmV0dXJuIHR5cGVvZiAkZX06ZnVuY3Rpb24oJGUpe3JldHVybiAkZSYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmJGUuY29uc3RydWN0b3I9PT1TeW1ib2wmJiRlIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgJGV9KShRZSl9''@;'; + put 'put ''dmFyIFcsTixlZT1aKDIxMzYpLmNvZGVzLHE9ZWUuRVJSX0FNQklHVU9VU19BUkdVTUVOVCxKPWVlLkVSUl9JTlZBTElEX0FSR19UWVBFLHNlPWVlLkVSUl9JTlZBTElEX0FSR19WQUxVRSxvZT1lZS5FUlJfSU5WQUxJRF9SRVRVUk5fVkFMVUUsY2U9ZWUuRVJSX01JU1NJTkdfQVJHUyxkZT1a''@;'; + put 'put ''KDU5NjEpLHZlPVooOTUzOSkuaW5zcGVjdCxBZT1aKDk1MzkpLnR5cGVzLGtlPUFlLmlzUHJvbWlzZSxTZT1BZS5pc1JlZ0V4cCxJZT1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ246Wig4MDkxKS5hc3NpZ24sVGU9T2JqZWN0LmlzP09iamVjdC5pczpaKDYwOSk7ZnVuY3Rpb24gRWUoKXt2''@;'; + put 'put ''YXIgUWU9Wig5MTU4KTtXPVFlLmlzRGVlcEVxdWFsLE49UWUuaXNEZWVwU3RyaWN0RXF1YWx9dmFyIGhlPSExLE89VS5leHBvcnRzPXgsej17fTtmdW5jdGlvbiBuZShRZSl7dGhyb3cgUWUubWVzc2FnZSBpbnN0YW5jZW9mIEVycm9yP1FlLm1lc3NhZ2U6bmV3IGRlKFFlKX1mdW5jdGlvbiB0''@;'; + put 'put ''ZShRZSwkZSxndCx3dCl7aWYoIWd0KXt2YXIgbXQ9ITE7aWYoMD09PSRlKW10PSEwLHd0PSJObyB2YWx1ZSBhcmd1bWVudCBwYXNzZWQgdG8gYGFzc2VydC5vaygpYCI7ZWxzZSBpZih3dCBpbnN0YW5jZW9mIEVycm9yKXRocm93IHd0O3ZhciB2dD1uZXcgZGUoe2FjdHVhbDpndCxleHBlY3Rl''@;'; + put 'put ''ZDohMCxtZXNzYWdlOnd0LG9wZXJhdG9yOiI9PSIsc3RhY2tTdGFydEZuOlFlfSk7dGhyb3cgdnQuZ2VuZXJhdGVkTWVzc2FnZT1tdCx2dH19ZnVuY3Rpb24geCgpe2Zvcih2YXIgUWU9YXJndW1lbnRzLmxlbmd0aCwkZT1uZXcgQXJyYXkoUWUpLGd0PTA7Z3Q8UWU7Z3QrKykkZVtndF09YXJn''@;'; + put 'put ''dW1lbnRzW2d0XTt0ZS5hcHBseSh2b2lkIDAsW3gsJGUubGVuZ3RoXS5jb25jYXQoJGUpKX1PLmZhaWw9ZnVuY3Rpb24gUWUoJGUsZ3Qsd3QsbXQsdnQpe3ZhciBBdCxodD1hcmd1bWVudHMubGVuZ3RoO2lmKDA9PT1odD9BdD0iRmFpbGVkIjoxPT09aHQ/KHd0PSRlLCRlPXZvaWQgMCk6KCEx''@;'; + put 'put ''PT09aGUmJihoZT0hMCwoaWUuZW1pdFdhcm5pbmc/aWUuZW1pdFdhcm5pbmc6YWUud2Fybi5iaW5kKGFlKSkoImFzc2VydC5mYWlsKCkgd2l0aCBtb3JlIHRoYW4gb25lIGFyZ3VtZW50IGlzIGRlcHJlY2F0ZWQuIFBsZWFzZSB1c2UgYXNzZXJ0LnN0cmljdEVxdWFsKCkgaW5zdGVhZCBvciBv''@;'; + put 'put ''bmx5IHBhc3MgYSBtZXNzYWdlLiIsIkRlcHJlY2F0aW9uV2FybmluZyIsIkRFUDAwOTQiKSksMj09PWh0JiYobXQ9IiE9IikpLHd0IGluc3RhbmNlb2YgRXJyb3IpdGhyb3cgd3Q7dmFyIG9uPXthY3R1YWw6JGUsZXhwZWN0ZWQ6Z3Qsb3BlcmF0b3I6dm9pZCAwPT09bXQ/ImZhaWwiOm10LHN0''@;'; + put 'put ''YWNrU3RhcnRGbjp2dHx8UWV9O3ZvaWQgMCE9PXd0JiYob24ubWVzc2FnZT13dCk7dmFyIF90PW5ldyBkZShvbik7dGhyb3cgQXQmJihfdC5tZXNzYWdlPUF0LF90LmdlbmVyYXRlZE1lc3NhZ2U9ITApLF90fSxPLkFzc2VydGlvbkVycm9yPWRlLE8ub2s9eCxPLmVxdWFsPWZ1bmN0aW9uIFFl''@;'; + put 'put ''KCRlLGd0LHd0KXtpZihhcmd1bWVudHMubGVuZ3RoPDIpdGhyb3cgbmV3IGNlKCJhY3R1YWwiLCJleHBlY3RlZCIpOyRlIT1ndCYmbmUoe2FjdHVhbDokZSxleHBlY3RlZDpndCxtZXNzYWdlOnd0LG9wZXJhdG9yOiI9PSIsc3RhY2tTdGFydEZuOlFlfSl9LE8ubm90RXF1YWw9ZnVuY3Rpb24g''@;'; + put 'put ''UWUoJGUsZ3Qsd3Qpe2lmKGFyZ3VtZW50cy5sZW5ndGg8Mil0aHJvdyBuZXcgY2UoImFjdHVhbCIsImV4cGVjdGVkIik7JGU9PWd0JiZuZSh7YWN0dWFsOiRlLGV4cGVjdGVkOmd0LG1lc3NhZ2U6d3Qsb3BlcmF0b3I6IiE9IixzdGFja1N0YXJ0Rm46UWV9KX0sTy5kZWVwRXF1YWw9ZnVuY3Rp''@;'; + put 'put ''b24gUWUoJGUsZ3Qsd3Qpe2lmKGFyZ3VtZW50cy5sZW5ndGg8Mil0aHJvdyBuZXcgY2UoImFjdHVhbCIsImV4cGVjdGVkIik7dm9pZCAwPT09VyYmRWUoKSxXKCRlLGd0KXx8bmUoe2FjdHVhbDokZSxleHBlY3RlZDpndCxtZXNzYWdlOnd0LG9wZXJhdG9yOiJkZWVwRXF1YWwiLHN0YWNrU3Rh''@;'; + put 'put ''cnRGbjpRZX0pfSxPLm5vdERlZXBFcXVhbD1mdW5jdGlvbiBRZSgkZSxndCx3dCl7aWYoYXJndW1lbnRzLmxlbmd0aDwyKXRocm93IG5ldyBjZSgiYWN0dWFsIiwiZXhwZWN0ZWQiKTt2b2lkIDA9PT1XJiZFZSgpLFcoJGUsZ3QpJiZuZSh7YWN0dWFsOiRlLGV4cGVjdGVkOmd0LG1lc3NhZ2U6''@;'; + put 'put ''d3Qsb3BlcmF0b3I6Im5vdERlZXBFcXVhbCIsc3RhY2tTdGFydEZuOlFlfSl9LE8uZGVlcFN0cmljdEVxdWFsPWZ1bmN0aW9uIFFlKCRlLGd0LHd0KXtpZihhcmd1bWVudHMubGVuZ3RoPDIpdGhyb3cgbmV3IGNlKCJhY3R1YWwiLCJleHBlY3RlZCIpO3ZvaWQgMD09PVcmJkVlKCksTigkZSxn''@;'; + put 'put ''dCl8fG5lKHthY3R1YWw6JGUsZXhwZWN0ZWQ6Z3QsbWVzc2FnZTp3dCxvcGVyYXRvcjoiZGVlcFN0cmljdEVxdWFsIixzdGFja1N0YXJ0Rm46UWV9KX0sTy5ub3REZWVwU3RyaWN0RXF1YWw9ZnVuY3Rpb24gUWUoJGUsZ3Qsd3Qpe2lmKGFyZ3VtZW50cy5sZW5ndGg8Mil0aHJvdyBuZXcgY2Uo''@;'; + put 'put ''ImFjdHVhbCIsImV4cGVjdGVkIik7dm9pZCAwPT09VyYmRWUoKSxOKCRlLGd0KSYmbmUoe2FjdHVhbDokZSxleHBlY3RlZDpndCxtZXNzYWdlOnd0LG9wZXJhdG9yOiJub3REZWVwU3RyaWN0RXF1YWwiLHN0YWNrU3RhcnRGbjpRZX0pfSxPLnN0cmljdEVxdWFsPWZ1bmN0aW9uIFFlKCRlLGd0''@;'; + put 'put ''LHd0KXtpZihhcmd1bWVudHMubGVuZ3RoPDIpdGhyb3cgbmV3IGNlKCJhY3R1YWwiLCJleHBlY3RlZCIpO1RlKCRlLGd0KXx8bmUoe2FjdHVhbDokZSxleHBlY3RlZDpndCxtZXNzYWdlOnd0LG9wZXJhdG9yOiJzdHJpY3RFcXVhbCIsc3RhY2tTdGFydEZuOlFlfSl9LE8ubm90U3RyaWN0RXF1''@;'; + put 'put ''YWw9ZnVuY3Rpb24gUWUoJGUsZ3Qsd3Qpe2lmKGFyZ3VtZW50cy5sZW5ndGg8Mil0aHJvdyBuZXcgY2UoImFjdHVhbCIsImV4cGVjdGVkIik7VGUoJGUsZ3QpJiZuZSh7YWN0dWFsOiRlLGV4cGVjdGVkOmd0LG1lc3NhZ2U6d3Qsb3BlcmF0b3I6Im5vdFN0cmljdEVxdWFsIixzdGFja1N0YXJ0''@;'; + put 'put ''Rm46UWV9KX07dmFyIFA9ZnVuY3Rpb24gUWUoJGUsZ3Qsd3Qpe3ZhciBtdD10aGlzOyhmdW5jdGlvbih2dCxBdCl7aWYoISh2dCBpbnN0YW5jZW9mIEF0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0pKHRoaXMsUWUpLGd0LmZvckVh''@;'; + put 'put ''Y2goZnVuY3Rpb24odnQpe3Z0IGluICRlJiYobXRbdnRdPXZvaWQgMCE9PXd0JiYic3RyaW5nIj09dHlwZW9mIHd0W3Z0XSYmU2UoJGVbdnRdKSYmJGVbdnRdLnRlc3Qod3RbdnRdKT93dFt2dF06JGVbdnRdKX0pfTtmdW5jdGlvbiBWKFFlLCRlLGd0LHd0LG10LHZ0KXtpZighKGd0IGluIFFl''@;'; + put 'put ''KXx8IU4oUWVbZ3RdLCRlW2d0XSkpe2lmKCF3dCl7dmFyIEF0PW5ldyBQKFFlLG10KSxodD1uZXcgUCgkZSxtdCxRZSksQnQ9bmV3IGRlKHthY3R1YWw6QXQsZXhwZWN0ZWQ6aHQsb3BlcmF0b3I6ImRlZXBTdHJpY3RFcXVhbCIsc3RhY2tTdGFydEZuOnZ0fSk7dGhyb3cgQnQuYWN0dWFsPVFl''@;'; + put 'put ''LEJ0LmV4cGVjdGVkPSRlLEJ0Lm9wZXJhdG9yPXZ0Lm5hbWUsQnR9bmUoe2FjdHVhbDpRZSxleHBlY3RlZDokZSxtZXNzYWdlOnd0LG9wZXJhdG9yOnZ0Lm5hbWUsc3RhY2tTdGFydEZuOnZ0fSl9fWZ1bmN0aW9uIFQoUWUsJGUsZ3Qsd3Qpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiAkZSl7aWYo''@;'; + put 'put ''U2UoJGUpKXJldHVybiAkZS50ZXN0KFFlKTtpZigyPT09YXJndW1lbnRzLmxlbmd0aCl0aHJvdyBuZXcgSigiZXhwZWN0ZWQiLFsiRnVuY3Rpb24iLCJSZWdFeHAiXSwkZSk7aWYoIm9iamVjdCIhPT1ZKFFlKXx8bnVsbD09PVFlKXt2YXIgbXQ9bmV3IGRlKHthY3R1YWw6UWUsZXhwZWN0ZWQ6''@;'; + put 'put ''JGUsbWVzc2FnZTpndCxvcGVyYXRvcjoiZGVlcFN0cmljdEVxdWFsIixzdGFja1N0YXJ0Rm46d3R9KTt0aHJvdyBtdC5vcGVyYXRvcj13dC5uYW1lLG10fXZhciB2dD1PYmplY3Qua2V5cygkZSk7aWYoJGUgaW5zdGFuY2VvZiBFcnJvcil2dC5wdXNoKCJuYW1lIiwibWVzc2FnZSIpO2Vsc2Ug''@;'; + put 'put ''aWYoMD09PXZ0Lmxlbmd0aCl0aHJvdyBuZXcgc2UoImVycm9yIiwkZSwibWF5IG5vdCBiZSBhbiBlbXB0eSBvYmplY3QiKTtyZXR1cm4gdm9pZCAwPT09VyYmRWUoKSx2dC5mb3JFYWNoKGZ1bmN0aW9uKEF0KXsic3RyaW5nIj09dHlwZW9mIFFlW0F0XSYmU2UoJGVbQXRdKSYmJGVbQXRdLnRl''@;'; + put 'put ''c3QoUWVbQXRdKXx8VihRZSwkZSxBdCxndCx2dCx3dCl9KSwhMH1yZXR1cm4gdm9pZCAwIT09JGUucHJvdG90eXBlJiZRZSBpbnN0YW5jZW9mICRlfHwhRXJyb3IuaXNQcm90b3R5cGVPZigkZSkmJiEwPT09JGUuY2FsbCh7fSxRZSl9ZnVuY3Rpb24gUyhRZSl7aWYoImZ1bmN0aW9uIiE9dHlw''@;'; + put 'put ''ZW9mIFFlKXRocm93IG5ldyBKKCJmbiIsIkZ1bmN0aW9uIixRZSk7dHJ5e1FlKCl9Y2F0Y2goJGUpe3JldHVybiAkZX1yZXR1cm4gen1mdW5jdGlvbiBGKFFlKXtyZXR1cm4ga2UoUWUpfHxudWxsIT09UWUmJiJvYmplY3QiPT09WShRZSkmJiJmdW5jdGlvbiI9PXR5cGVvZiBRZS50aGVuJiYi''@;'; + put 'put ''ZnVuY3Rpb24iPT10eXBlb2YgUWUuY2F0Y2h9ZnVuY3Rpb24geWUoUWUpe3JldHVybiBQcm9taXNlLnJlc29sdmUoKS50aGVuKGZ1bmN0aW9uKCl7dmFyICRlO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBRZSl7aWYoIUYoJGU9UWUoKSkpdGhyb3cgbmV3IG9lKCJpbnN0YW5jZSBvZiBQcm9taXNl''@;'; + put 'put ''IiwicHJvbWlzZUZuIiwkZSl9ZWxzZXtpZighRihRZSkpdGhyb3cgbmV3IEooInByb21pc2VGbiIsWyJGdW5jdGlvbiIsIlByb21pc2UiXSxRZSk7JGU9UWV9cmV0dXJuIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gJGV9KS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJu''@;'; + put 'put ''IHp9KS5jYXRjaChmdW5jdGlvbihndCl7cmV0dXJuIGd0fSl9KX1mdW5jdGlvbiBDZShRZSwkZSxndCx3dCl7aWYoInN0cmluZyI9PXR5cGVvZiBndCl7aWYoND09PWFyZ3VtZW50cy5sZW5ndGgpdGhyb3cgbmV3IEooImVycm9yIixbIk9iamVjdCIsIkVycm9yIiwiRnVuY3Rpb24iLCJSZWdF''@;'; + put 'put ''eHAiXSxndCk7aWYoIm9iamVjdCI9PT1ZKCRlKSYmbnVsbCE9PSRlKXtpZigkZS5tZXNzYWdlPT09Z3QpdGhyb3cgbmV3IHEoImVycm9yL21lc3NhZ2UiLCdUaGUgZXJyb3IgbWVzc2FnZSAiJy5jb25jYXQoJGUubWVzc2FnZSwnIiBpcyBpZGVudGljYWwgdG8gdGhlIG1lc3NhZ2UuJykpfWVs''@;'; + put 'put ''c2UgaWYoJGU9PT1ndCl0aHJvdyBuZXcgcSgiZXJyb3IvbWVzc2FnZSIsJ1RoZSBlcnJvciAiJy5jb25jYXQoJGUsJyIgaXMgaWRlbnRpY2FsIHRvIHRoZSBtZXNzYWdlLicpKTt3dD1ndCxndD12b2lkIDB9ZWxzZSBpZihudWxsIT1ndCYmIm9iamVjdCIhPT1ZKGd0KSYmImZ1bmN0aW9uIiE9''@;'; + put 'put ''dHlwZW9mIGd0KXRocm93IG5ldyBKKCJlcnJvciIsWyJPYmplY3QiLCJFcnJvciIsIkZ1bmN0aW9uIiwiUmVnRXhwIl0sZ3QpO2lmKCRlPT09eil7dmFyIG10PSIiO2d0JiZndC5uYW1lJiYobXQrPSIgKCIuY29uY2F0KGd0Lm5hbWUsIikiKSksbXQrPXd0PyI6ICIuY29uY2F0KHd0KToiLiIs''@;'; + put 'put ''bmUoe2FjdHVhbDp2b2lkIDAsZXhwZWN0ZWQ6Z3Qsb3BlcmF0b3I6UWUubmFtZSxtZXNzYWdlOiJNaXNzaW5nIGV4cGVjdGVkICIuY29uY2F0KCJyZWplY3RzIj09PVFlLm5hbWU/InJlamVjdGlvbiI6ImV4Y2VwdGlvbiIpLmNvbmNhdChtdCksc3RhY2tTdGFydEZuOlFlfSl9aWYoZ3QmJiFU''@;'; + put 'put ''KCRlLGd0LHd0LFFlKSl0aHJvdyAkZX1mdW5jdGlvbiBEZShRZSwkZSxndCx3dCl7aWYoJGUhPT16KXtpZigic3RyaW5nIj09dHlwZW9mIGd0JiYod3Q9Z3QsZ3Q9dm9pZCAwKSwhZ3R8fFQoJGUsZ3QpKXt2YXIgbXQ9d3Q/IjogIi5jb25jYXQod3QpOiIuIjtuZSh7YWN0dWFsOiRlLGV4cGVj''@;'; + put 'put ''dGVkOmd0LG9wZXJhdG9yOlFlLm5hbWUsbWVzc2FnZToiR290IHVud2FudGVkICIuY29uY2F0KCJkb2VzTm90UmVqZWN0Ij09PVFlLm5hbWU/InJlamVjdGlvbiI6ImV4Y2VwdGlvbiIpLmNvbmNhdChtdCwiXG4iKSsnQWN0dWFsIG1lc3NhZ2U6ICInLmNvbmNhdCgkZSYmJGUubWVzc2FnZSwn''@;'; + put 'put ''IicpLHN0YWNrU3RhcnRGbjpRZX0pfXRocm93ICRlfX1mdW5jdGlvbiBQZSgpe2Zvcih2YXIgUWU9YXJndW1lbnRzLmxlbmd0aCwkZT1uZXcgQXJyYXkoUWUpLGd0PTA7Z3Q8UWU7Z3QrKykkZVtndF09YXJndW1lbnRzW2d0XTt0ZS5hcHBseSh2b2lkIDAsW1BlLCRlLmxlbmd0aF0uY29uY2F0''@;'; + put 'put ''KCRlKSl9Ty50aHJvd3M9ZnVuY3Rpb24gUWUoJGUpe2Zvcih2YXIgZ3Q9YXJndW1lbnRzLmxlbmd0aCx3dD1uZXcgQXJyYXkoZ3Q+MT9ndC0xOjApLG10PTE7bXQ8Z3Q7bXQrKyl3dFttdC0xXT1hcmd1bWVudHNbbXRdO0NlLmFwcGx5KHZvaWQgMCxbUWUsUygkZSldLmNvbmNhdCh3dCkpfSxP''@;'; + put 'put ''LnJlamVjdHM9ZnVuY3Rpb24gUWUoJGUpe2Zvcih2YXIgZ3Q9YXJndW1lbnRzLmxlbmd0aCx3dD1uZXcgQXJyYXkoZ3Q+MT9ndC0xOjApLG10PTE7bXQ8Z3Q7bXQrKyl3dFttdC0xXT1hcmd1bWVudHNbbXRdO3JldHVybiB5ZSgkZSkudGhlbihmdW5jdGlvbih2dCl7cmV0dXJuIENlLmFwcGx5''@;'; + put 'put ''KHZvaWQgMCxbUWUsdnRdLmNvbmNhdCh3dCkpfSl9LE8uZG9lc05vdFRocm93PWZ1bmN0aW9uIFFlKCRlKXtmb3IodmFyIGd0PWFyZ3VtZW50cy5sZW5ndGgsd3Q9bmV3IEFycmF5KGd0PjE/Z3QtMTowKSxtdD0xO210PGd0O210Kyspd3RbbXQtMV09YXJndW1lbnRzW210XTtEZS5hcHBseSh2''@;'; + put 'put ''b2lkIDAsW1FlLFMoJGUpXS5jb25jYXQod3QpKX0sTy5kb2VzTm90UmVqZWN0PWZ1bmN0aW9uIFFlKCRlKXtmb3IodmFyIGd0PWFyZ3VtZW50cy5sZW5ndGgsd3Q9bmV3IEFycmF5KGd0PjE/Z3QtMTowKSxtdD0xO210PGd0O210Kyspd3RbbXQtMV09YXJndW1lbnRzW210XTtyZXR1cm4geWUo''@;'; + put 'put ''JGUpLnRoZW4oZnVuY3Rpb24odnQpe3JldHVybiBEZS5hcHBseSh2b2lkIDAsW1FlLHZ0XS5jb25jYXQod3QpKX0pfSxPLmlmRXJyb3I9ZnVuY3Rpb24gUWUoJGUpe2lmKG51bGwhPSRlKXt2YXIgZ3Q9ImlmRXJyb3IgZ290IHVud2FudGVkIGV4Y2VwdGlvbjogIjsib2JqZWN0Ij09PVkoJGUp''@;'; + put 'put ''JiYic3RyaW5nIj09dHlwZW9mICRlLm1lc3NhZ2U/Z3QrPTA9PT0kZS5tZXNzYWdlLmxlbmd0aCYmJGUuY29uc3RydWN0b3I/JGUuY29uc3RydWN0b3IubmFtZTokZS5tZXNzYWdlOmd0Kz12ZSgkZSk7dmFyIHd0PW5ldyBkZSh7YWN0dWFsOiRlLGV4cGVjdGVkOm51bGwsb3BlcmF0b3I6Imlm''@;'; + put 'put ''RXJyb3IiLG1lc3NhZ2U6Z3Qsc3RhY2tTdGFydEZuOlFlfSksbXQ9JGUuc3RhY2s7aWYoInN0cmluZyI9PXR5cGVvZiBtdCl7dmFyIHZ0PW10LnNwbGl0KCJcbiIpO3Z0LnNoaWZ0KCk7Zm9yKHZhciBBdD13dC5zdGFjay5zcGxpdCgiXG4iKSxodD0wO2h0PHZ0Lmxlbmd0aDtodCsrKXt2YXIg''@;'; + put 'put ''QnQ9QXQuaW5kZXhPZih2dFtodF0pO2lmKC0xIT09QnQpe0F0PUF0LnNsaWNlKDAsQnQpO2JyZWFrfX13dC5zdGFjaz0iIi5jb25jYXQoQXQuam9pbigiXG4iKSwiXG4iKS5jb25jYXQodnQuam9pbigiXG4iKSl9dGhyb3cgd3R9fSxPLnN0cmljdD1JZShQZSxPLHtlcXVhbDpPLnN0cmljdEVx''@;'; + put 'put ''dWFsLGRlZXBFcXVhbDpPLmRlZXBTdHJpY3RFcXVhbCxub3RFcXVhbDpPLm5vdFN0cmljdEVxdWFsLG5vdERlZXBFcXVhbDpPLm5vdERlZXBTdHJpY3RFcXVhbH0pLE8uc3RyaWN0LnN0cmljdD1PLnN0cmljdH0sNTk2MTooVSxRLFopPT57InVzZSBzdHJpY3QiO3ZhciBpZT1aKDQxNTUpO2Z1''@;'; + put 'put ''bmN0aW9uIGFlKHRlLHgsUCl7cmV0dXJuIHggaW4gdGU/T2JqZWN0LmRlZmluZVByb3BlcnR5KHRlLHgse3ZhbHVlOlAsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTp0ZVt4XT1QLHRlfWZ1bmN0aW9uIFkodGUseCl7Zm9yKHZhciBQPTA7UDx4Lmxlbmd0aDtQ''@;'; + put 'put ''Kyspe3ZhciBWPXhbUF07Vi5lbnVtZXJhYmxlPVYuZW51bWVyYWJsZXx8ITEsVi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIFYmJihWLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkodGUsVi5rZXksVil9fWZ1bmN0aW9uIFcodGUseCl7cmV0dXJuIXh8fCJvYmplY3QiIT09''@;'; + put 'put ''Y2UoeCkmJiJmdW5jdGlvbiIhPXR5cGVvZiB4P04odGUpOnh9ZnVuY3Rpb24gTih0ZSl7aWYodm9pZCAwPT09dGUpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4gdGV9ZnVu''@;'; + put 'put ''Y3Rpb24gZWUodGUpe3ZhciB4PSJmdW5jdGlvbiI9PXR5cGVvZiBNYXA/bmV3IE1hcDp2b2lkIDA7cmV0dXJuIGVlPWZ1bmN0aW9uKFApe2lmKG51bGw9PT1QfHwtMT09PUZ1bmN0aW9uLnRvU3RyaW5nLmNhbGwoUCkuaW5kZXhPZigiW25hdGl2ZSBjb2RlXSIpKXJldHVybiBQO2lmKCJmdW5j''@;'; + put 'put ''dGlvbiIhPXR5cGVvZiBQKXRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uIik7aWYodm9pZCAwIT09eCl7aWYoeC5oYXMoUCkpcmV0dXJuIHguZ2V0KFApO3guc2V0KFAsVCl9ZnVuY3Rpb24gVCgpe3JldHVybiBK''@;'; + put 'put ''KFAsYXJndW1lbnRzLG9lKHRoaXMpLmNvbnN0cnVjdG9yKX1yZXR1cm4gVC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShQLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOlQsZW51bWVyYWJsZTohMSx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksc2UoVCxQKX0sZWUodGUpfWZ1''@;'; + put 'put ''bmN0aW9uIHEoKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIFJlZmxlY3R8fCFSZWZsZWN0LmNvbnN0cnVjdHx8UmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT10eXBlb2YgUHJveHkpcmV0dXJuITA7dHJ5e3JldHVybiBEYXRlLnByb3RvdHlwZS50b1N0cmlu''@;'; + put 'put ''Zy5jYWxsKFJlZmxlY3QuY29uc3RydWN0KERhdGUsW10sZnVuY3Rpb24oKXt9KSksITB9Y2F0Y2godGUpe3JldHVybiExfX1mdW5jdGlvbiBKKHRlLHgsUCl7cmV0dXJuKEo9cSgpP1JlZmxlY3QuY29uc3RydWN0OmZ1bmN0aW9uKFYsVCxTKXt2YXIgRj1bbnVsbF07Ri5wdXNoLmFwcGx5KEYs''@;'; + put 'put ''VCk7dmFyIHllPW5ldyhGdW5jdGlvbi5iaW5kLmFwcGx5KFYsRikpO3JldHVybiBTJiZzZSh5ZSxTLnByb3RvdHlwZSkseWV9KS5hcHBseShudWxsLGFyZ3VtZW50cyl9ZnVuY3Rpb24gc2UodGUseCl7cmV0dXJuKHNlPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8ZnVuY3Rpb24oUCxWKXtyZXR1''@;'; + put 'put ''cm4gUC5fX3Byb3RvX189VixQfSkodGUseCl9ZnVuY3Rpb24gb2UodGUpe3JldHVybihvZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFByb3RvdHlwZU9mOmZ1bmN0aW9uKHgpe3JldHVybiB4Ll9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKHgpfSkodGUpfWZ1bmN0''@;'; + put 'put ''aW9uIGNlKHRlKXtyZXR1cm4oY2U9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oeCl7cmV0dXJuIHR5cGVvZiB4fTpmdW5jdGlvbih4KXtyZXR1cm4geCYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmeC5jb25z''@;'; + put 'put ''dHJ1Y3Rvcj09PVN5bWJvbCYmeCE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIHh9KSh0ZSl9dmFyIGRlPVooOTUzOSkuaW5zcGVjdCx2ZT1aKDIxMzYpLmNvZGVzLkVSUl9JTlZBTElEX0FSR19UWVBFO2Z1bmN0aW9uIEFlKHRlLHgsUCl7cmV0dXJuKHZvaWQgMD09PVB8fFA+''@;'; + put 'put ''dGUubGVuZ3RoKSYmKFA9dGUubGVuZ3RoKSx0ZS5zdWJzdHJpbmcoUC14Lmxlbmd0aCxQKT09PXh9dmFyIGtlPSIiLFNlPSIiLEllPSIiLFRlPSIiLEVlPXtkZWVwU3RyaWN0RXF1YWw6IkV4cGVjdGVkIHZhbHVlcyB0byBiZSBzdHJpY3RseSBkZWVwLWVxdWFsOiIsc3RyaWN0RXF1YWw6IkV4''@;'; + put 'put ''cGVjdGVkIHZhbHVlcyB0byBiZSBzdHJpY3RseSBlcXVhbDoiLHN0cmljdEVxdWFsT2JqZWN0OidFeHBlY3RlZCAiYWN0dWFsIiB0byBiZSByZWZlcmVuY2UtZXF1YWwgdG8gImV4cGVjdGVkIjonLGRlZXBFcXVhbDoiRXhwZWN0ZWQgdmFsdWVzIHRvIGJlIGxvb3NlbHkgZGVlcC1lcXVhbDoi''@;'; + put 'put ''LGVxdWFsOiJFeHBlY3RlZCB2YWx1ZXMgdG8gYmUgbG9vc2VseSBlcXVhbDoiLG5vdERlZXBTdHJpY3RFcXVhbDonRXhwZWN0ZWQgImFjdHVhbCIgbm90IHRvIGJlIHN0cmljdGx5IGRlZXAtZXF1YWwgdG86Jyxub3RTdHJpY3RFcXVhbDonRXhwZWN0ZWQgImFjdHVhbCIgdG8gYmUgc3RyaWN0''@;'; + put 'put ''bHkgdW5lcXVhbCB0bzonLG5vdFN0cmljdEVxdWFsT2JqZWN0OidFeHBlY3RlZCAiYWN0dWFsIiBub3QgdG8gYmUgcmVmZXJlbmNlLWVxdWFsIHRvICJleHBlY3RlZCI6Jyxub3REZWVwRXF1YWw6J0V4cGVjdGVkICJhY3R1YWwiIG5vdCB0byBiZSBsb29zZWx5IGRlZXAtZXF1YWwgdG86Jyxu''@;'; + put 'put ''b3RFcXVhbDonRXhwZWN0ZWQgImFjdHVhbCIgdG8gYmUgbG9vc2VseSB1bmVxdWFsIHRvOicsbm90SWRlbnRpY2FsOiJWYWx1ZXMgaWRlbnRpY2FsIGJ1dCBub3QgcmVmZXJlbmNlLWVxdWFsOiJ9O2Z1bmN0aW9uIGhlKHRlKXt2YXIgeD1PYmplY3Qua2V5cyh0ZSksUD1PYmplY3QuY3JlYXRl''@;'; + put 'put ''KE9iamVjdC5nZXRQcm90b3R5cGVPZih0ZSkpO3JldHVybiB4LmZvckVhY2goZnVuY3Rpb24oVil7UFtWXT10ZVtWXX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShQLCJtZXNzYWdlIix7dmFsdWU6dGUubWVzc2FnZX0pLFB9ZnVuY3Rpb24gTyh0ZSl7cmV0dXJuIGRlKHRlLHtjb21wYWN0OiEx''@;'; + put 'put ''LGN1c3RvbUluc3BlY3Q6ITEsZGVwdGg6MWUzLG1heEFycmF5TGVuZ3RoOjEvMCxzaG93SGlkZGVuOiExLGJyZWFrTGVuZ3RoOjEvMCxzaG93UHJveHk6ITEsc29ydGVkOiEwLGdldHRlcnM6ITB9KX12YXIgbmU9ZnVuY3Rpb24odGUpe2Z1bmN0aW9uIHgoUyl7dmFyIEY7aWYoZnVuY3Rpb24o''@;'; + put 'put ''aHQsQnQpe2lmKCEoaHQgaW5zdGFuY2VvZiBCdCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMseCksIm9iamVjdCIhPT1jZShTKXx8bnVsbD09PVMpdGhyb3cgbmV3IHZlKCJvcHRpb25zIiwiT2JqZWN0IixTKTt2YXIgeWU9''@;'; + put 'put ''Uy5tZXNzYWdlLENlPVMub3BlcmF0b3IsRGU9Uy5zdGFja1N0YXJ0Rm4sUGU9Uy5hY3R1YWwsUWU9Uy5leHBlY3RlZCwkZT1FcnJvci5zdGFja1RyYWNlTGltaXQ7aWYoRXJyb3Iuc3RhY2tUcmFjZUxpbWl0PTAsbnVsbCE9eWUpRj1XKHRoaXMsb2UoeCkuY2FsbCh0aGlzLFN0cmluZyh5ZSkp''@;'; + put 'put ''KTtlbHNlIGlmKGllLnN0ZGVyciYmaWUuc3RkZXJyLmlzVFRZJiYoaWUuc3RkZXJyJiZpZS5zdGRlcnIuZ2V0Q29sb3JEZXB0aCYmMSE9PWllLnN0ZGVyci5nZXRDb2xvckRlcHRoKCk/KGtlPSJceDFiWzM0bSIsU2U9Ilx4MWJbMzJtIixUZT0iXHgxYlszOW0iLEllPSJceDFiWzMxbSIpOihr''@;'; + put 'put ''ZT0iIixTZT0iIixUZT0iIixJZT0iIikpLCJvYmplY3QiPT09Y2UoUGUpJiZudWxsIT09UGUmJiJvYmplY3QiPT09Y2UoUWUpJiZudWxsIT09UWUmJiJzdGFjayJpbiBQZSYmUGUgaW5zdGFuY2VvZiBFcnJvciYmInN0YWNrImluIFFlJiZRZSBpbnN0YW5jZW9mIEVycm9yJiYoUGU9aGUoUGUp''@;'; + put 'put ''LFFlPWhlKFFlKSksImRlZXBTdHJpY3RFcXVhbCI9PT1DZXx8InN0cmljdEVxdWFsIj09PUNlKUY9Vyh0aGlzLG9lKHgpLmNhbGwodGhpcyxmdW5jdGlvbiB6KHRlLHgsUCl7dmFyIFY9IiIsVD0iIixTPTAsRj0iIix5ZT0hMSxDZT1PKHRlKSxEZT1DZS5zcGxpdCgiXG4iKSxQZT1PKHgpLnNw''@;'; + put 'put ''bGl0KCJcbiIpLFFlPTAsJGU9IiI7aWYoInN0cmljdEVxdWFsIj09PVAmJiJvYmplY3QiPT09Y2UodGUpJiYib2JqZWN0Ij09PWNlKHgpJiZudWxsIT09dGUmJm51bGwhPT14JiYoUD0ic3RyaWN0RXF1YWxPYmplY3QiKSwxPT09RGUubGVuZ3RoJiYxPT09UGUubGVuZ3RoJiZEZVswXSE9PVBl''@;'; + put 'put ''WzBdKXt2YXIgZ3Q9RGVbMF0ubGVuZ3RoK1BlWzBdLmxlbmd0aDtpZihndDw9MTApe2lmKCEoIm9iamVjdCI9PT1jZSh0ZSkmJm51bGwhPT10ZXx8Im9iamVjdCI9PT1jZSh4KSYmbnVsbCE9PXh8fDA9PT10ZSYmMD09PXgpKXJldHVybiIiLmNvbmNhdChFZVtQXSwiXG5cbiIpKyIiLmNvbmNh''@;'; + put 'put ''dChEZVswXSwiICE9PSAiKS5jb25jYXQoUGVbMF0sIlxuIil9ZWxzZSBpZigic3RyaWN0RXF1YWxPYmplY3QiIT09UCYmZ3Q8KGllLnN0ZGVyciYmaWUuc3RkZXJyLmlzVFRZP2llLnN0ZGVyci5jb2x1bW5zOjgwKSl7Zm9yKDtEZVswXVtRZV09PT1QZVswXVtRZV07KVFlKys7UWU+MiYmKCRl''@;'; + put 'put ''PSJcbiAgIi5jb25jYXQoZnVuY3Rpb24oTHQsQ3Qpe2lmKEN0PU1hdGguZmxvb3IoQ3QpLDA9PUx0Lmxlbmd0aHx8MD09Q3QpcmV0dXJuIiI7dmFyIGZ0PUx0Lmxlbmd0aCpDdDtmb3IoQ3Q9TWF0aC5mbG9vcihNYXRoLmxvZyhDdCkvTWF0aC5sb2coMikpO0N0OylMdCs9THQsQ3QtLTtyZXR1''@;'; + put 'put ''cm4gTHQrTHQuc3Vic3RyaW5nKDAsZnQtTHQubGVuZ3RoKX0oIiAiLFFlKSwiXiIpLFFlPTApfX1mb3IodmFyIHd0PURlW0RlLmxlbmd0aC0xXSxtdD1QZVtQZS5sZW5ndGgtMV07d3Q9PT1tdCYmKFFlKys8Mj9GPSJcbiAgIi5jb25jYXQod3QpLmNvbmNhdChGKTpWPXd0LERlLnBvcCgpLFBl''@;'; + put 'put ''LnBvcCgpLDAhPT1EZS5sZW5ndGgmJjAhPT1QZS5sZW5ndGgpOyl3dD1EZVtEZS5sZW5ndGgtMV0sbXQ9UGVbUGUubGVuZ3RoLTFdO3ZhciB2dD1NYXRoLm1heChEZS5sZW5ndGgsUGUubGVuZ3RoKTtpZigwPT09dnQpe3ZhciBBdD1DZS5zcGxpdCgiXG4iKTtpZihBdC5sZW5ndGg+MzApZm9y''@;'; + put 'put ''KEF0WzI2XT0iIi5jb25jYXQoa2UsIi4uLiIpLmNvbmNhdChUZSk7QXQubGVuZ3RoPjI3OylBdC5wb3AoKTtyZXR1cm4iIi5jb25jYXQoRWUubm90SWRlbnRpY2FsLCJcblxuIikuY29uY2F0KEF0LmpvaW4oIlxuIiksIlxuIil9UWU+MyYmKEY9IlxuIi5jb25jYXQoa2UsIi4uLiIpLmNvbmNh''@;'; + put 'put ''dChUZSkuY29uY2F0KEYpLHllPSEwKSwiIiE9PVYmJihGPSJcbiAgIi5jb25jYXQoVikuY29uY2F0KEYpLFY9IiIpO3ZhciBodD0wLEJ0PUVlW1BdKyJcbiIuY29uY2F0KFNlLCIrIGFjdHVhbCIpLmNvbmNhdChUZSwiICIpLmNvbmNhdChJZSwiLSBleHBlY3RlZCIpLmNvbmNhdChUZSksb249''@;'; + put 'put ''IiAiLmNvbmNhdChrZSwiLi4uIikuY29uY2F0KFRlLCIgTGluZXMgc2tpcHBlZCIpO2ZvcihRZT0wO1FlPHZ0O1FlKyspe3ZhciBfdD1RZS1TO2lmKERlLmxlbmd0aDxRZSsxKV90PjEmJlFlPjImJihfdD40PyhUKz0iXG4iLmNvbmNhdChrZSwiLi4uIikuY29uY2F0KFRlKSx5ZT0hMCk6X3Q+''@;'; + put 'put ''MyYmKFQrPSJcbiAgIi5jb25jYXQoUGVbUWUtMl0pLGh0KyspLFQrPSJcbiAgIi5jb25jYXQoUGVbUWUtMV0pLGh0KyspLFM9UWUsVis9IlxuIi5jb25jYXQoSWUsIi0iKS5jb25jYXQoVGUsIiAiKS5jb25jYXQoUGVbUWVdKSxodCsrO2Vsc2UgaWYoUGUubGVuZ3RoPFFlKzEpX3Q+MSYmUWU+''@;'; + put 'put ''MiYmKF90PjQ/KFQrPSJcbiIuY29uY2F0KGtlLCIuLi4iKS5jb25jYXQoVGUpLHllPSEwKTpfdD4zJiYoVCs9IlxuICAiLmNvbmNhdChEZVtRZS0yXSksaHQrKyksVCs9IlxuICAiLmNvbmNhdChEZVtRZS0xXSksaHQrKyksUz1RZSxUKz0iXG4iLmNvbmNhdChTZSwiKyIpLmNvbmNhdChUZSwi''@;'; + put 'put ''ICIpLmNvbmNhdChEZVtRZV0pLGh0Kys7ZWxzZXt2YXIgdHQ9UGVbUWVdLGV0PURlW1FlXSxhdD1ldCE9PXR0JiYoIUFlKGV0LCIsIil8fGV0LnNsaWNlKDAsLTEpIT09dHQpO2F0JiZBZSh0dCwiLCIpJiZ0dC5zbGljZSgwLC0xKT09PWV0JiYoYXQ9ITEsZXQrPSIsIiksYXQ/KF90PjEmJlFl''@;'; + put 'put ''PjImJihfdD40PyhUKz0iXG4iLmNvbmNhdChrZSwiLi4uIikuY29uY2F0KFRlKSx5ZT0hMCk6X3Q+MyYmKFQrPSJcbiAgIi5jb25jYXQoRGVbUWUtMl0pLGh0KyspLFQrPSJcbiAgIi5jb25jYXQoRGVbUWUtMV0pLGh0KyspLFM9UWUsVCs9IlxuIi5jb25jYXQoU2UsIisiKS5jb25jYXQoVGUs''@;'; + put 'put ''IiAiKS5jb25jYXQoZXQpLFYrPSJcbiIuY29uY2F0KEllLCItIikuY29uY2F0KFRlLCIgIikuY29uY2F0KHR0KSxodCs9Mik6KFQrPVYsVj0iIiwxIT09X3QmJjAhPT1RZXx8KFQrPSJcbiAgIi5jb25jYXQoZXQpLGh0KyspKX1pZihodD4yMCYmUWU8dnQtMilyZXR1cm4iIi5jb25jYXQoQnQp''@;'; + put 'put ''LmNvbmNhdChvbiwiXG4iKS5jb25jYXQoVCwiXG4iKS5jb25jYXQoa2UsIi4uLiIpLmNvbmNhdChUZSkuY29uY2F0KFYsIlxuIikrIiIuY29uY2F0KGtlLCIuLi4iKS5jb25jYXQoVGUpfXJldHVybiIiLmNvbmNhdChCdCkuY29uY2F0KHllP29uOiIiLCJcbiIpLmNvbmNhdChUKS5jb25jYXQo''@;'; + put 'put ''VikuY29uY2F0KEYpLmNvbmNhdCgkZSl9KFBlLFFlLENlKSkpO2Vsc2UgaWYoIm5vdERlZXBTdHJpY3RFcXVhbCI9PT1DZXx8Im5vdFN0cmljdEVxdWFsIj09PUNlKXt2YXIgZ3Q9RWVbQ2VdLHd0PU8oUGUpLnNwbGl0KCJcbiIpO2lmKCJub3RTdHJpY3RFcXVhbCI9PT1DZSYmIm9iamVjdCI9''@;'; + put 'put ''PT1jZShQZSkmJm51bGwhPT1QZSYmKGd0PUVlLm5vdFN0cmljdEVxdWFsT2JqZWN0KSx3dC5sZW5ndGg+MzApZm9yKHd0WzI2XT0iIi5jb25jYXQoa2UsIi4uLiIpLmNvbmNhdChUZSk7d3QubGVuZ3RoPjI3Oyl3dC5wb3AoKTtGPVcodGhpcywxPT09d3QubGVuZ3RoP29lKHgpLmNhbGwodGhp''@;'; + put 'put ''cywiIi5jb25jYXQoZ3QsIiAiKS5jb25jYXQod3RbMF0pKTpvZSh4KS5jYWxsKHRoaXMsIiIuY29uY2F0KGd0LCJcblxuIikuY29uY2F0KHd0LmpvaW4oIlxuIiksIlxuIikpKX1lbHNle3ZhciBtdD1PKFBlKSx2dD0iIixBdD1FZVtDZV07Im5vdERlZXBFcXVhbCI9PT1DZXx8Im5vdEVxdWFs''@;'; + put 'put ''Ij09PUNlPyhtdD0iIi5jb25jYXQoRWVbQ2VdLCJcblxuIikuY29uY2F0KG10KSkubGVuZ3RoPjEwMjQmJihtdD0iIi5jb25jYXQobXQuc2xpY2UoMCwxMDIxKSwiLi4uIikpOih2dD0iIi5jb25jYXQoTyhRZSkpLG10Lmxlbmd0aD41MTImJihtdD0iIi5jb25jYXQobXQuc2xpY2UoMCw1MDkp''@;'; + put 'put ''LCIuLi4iKSksdnQubGVuZ3RoPjUxMiYmKHZ0PSIiLmNvbmNhdCh2dC5zbGljZSgwLDUwOSksIi4uLiIpKSwiZGVlcEVxdWFsIj09PUNlfHwiZXF1YWwiPT09Q2U/bXQ9IiIuY29uY2F0KEF0LCJcblxuIikuY29uY2F0KG10LCJcblxuc2hvdWxkIGVxdWFsXG5cbiIpOnZ0PSIgIi5jb25jYXQo''@;'; + put 'put ''Q2UsIiAiKS5jb25jYXQodnQpKSxGPVcodGhpcyxvZSh4KS5jYWxsKHRoaXMsIiIuY29uY2F0KG10KS5jb25jYXQodnQpKSl9cmV0dXJuIEVycm9yLnN0YWNrVHJhY2VMaW1pdD0kZSxGLmdlbmVyYXRlZE1lc3NhZ2U9IXllLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShOKEYpLCJuYW1lIix7dmFs''@;'; + put 'put ''dWU6IkFzc2VydGlvbkVycm9yIFtFUlJfQVNTRVJUSU9OXSIsZW51bWVyYWJsZTohMSx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxGLmNvZGU9IkVSUl9BU1NFUlRJT04iLEYuYWN0dWFsPVBlLEYuZXhwZWN0ZWQ9UWUsRi5vcGVyYXRvcj1DZSxFcnJvci5jYXB0dXJlU3RhY2tUcmFj''@;'; + put 'put ''ZSYmRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UoTihGKSxEZSksRi5uYW1lPSJBc3NlcnRpb25FcnJvciIsVyhGKX12YXIgUCxWO3JldHVybiBmdW5jdGlvbihTLEYpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBGJiZudWxsIT09Ril0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9u''@;'; + put 'put ''IG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiIpO1MucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoRiYmRi5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTpTLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxGJiZzZShTLEYpfSh4LHRlKSxQPXgsVj1be2tleToidG9T''@;'; + put 'put ''dHJpbmciLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIiIuY29uY2F0KHRoaXMubmFtZSwiIFsiKS5jb25jYXQodGhpcy5jb2RlLCJdOiAiKS5jb25jYXQodGhpcy5tZXNzYWdlKX19LHtrZXk6ZGUuY3VzdG9tLHZhbHVlOmZ1bmN0aW9uKFMsRil7cmV0dXJuIGRlKHRoaXMsZnVuY3Rpb24oeWUp''@;'; + put 'put ''e2Zvcih2YXIgQ2U9MTtDZTxhcmd1bWVudHMubGVuZ3RoO0NlKyspe3ZhciBEZT1udWxsIT1hcmd1bWVudHNbQ2VdP2FyZ3VtZW50c1tDZV06e30sUGU9T2JqZWN0LmtleXMoRGUpOyJmdW5jdGlvbiI9PXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzJiYoUGU9UGUuY29uY2F0''@;'; + put 'put ''KE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoRGUpLmZpbHRlcihmdW5jdGlvbihRZSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRGUsUWUpLmVudW1lcmFibGV9KSkpLFBlLmZvckVhY2goZnVuY3Rpb24oUWUpe2FlKHllLFFlLERlW1FlXSl9KX1yZXR1cm4g''@;'; + put 'put ''eWV9KHt9LEYse2N1c3RvbUluc3BlY3Q6ITEsZGVwdGg6MH0pKX19XSxWJiZZKFAucHJvdG90eXBlLFYpLHh9KGVlKEVycm9yKSk7VS5leHBvcnRzPW5lfSwyMTM2OihVLFEsWik9PnsidXNlIHN0cmljdCI7ZnVuY3Rpb24gaWUob2Upe3JldHVybihpZT0iZnVuY3Rpb24iPT10eXBlb2YgU3lt''@;'; + put 'put ''Ym9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihjZSl7cmV0dXJuIHR5cGVvZiBjZX06ZnVuY3Rpb24oY2Upe3JldHVybiBjZSYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmY2UuY29uc3RydWN0b3I9PT1TeW1ib2wmJmNlIT09U3ltYm9sLnByb3RvdHlw''@;'; + put 'put ''ZT8ic3ltYm9sIjp0eXBlb2YgY2V9KShvZSl9ZnVuY3Rpb24gWShvZSl7cmV0dXJuKFk9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZjpmdW5jdGlvbihjZSl7cmV0dXJuIGNlLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKGNlKX0pKG9lKX1mdW5j''@;'; + put 'put ''dGlvbiBXKG9lLGNlKXtyZXR1cm4oVz1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fGZ1bmN0aW9uKGRlLHZlKXtyZXR1cm4gZGUuX19wcm90b19fPXZlLGRlfSkob2UsY2UpfXZhciBOLGVlLHE9e307ZnVuY3Rpb24gSihvZSxjZSxkZSl7ZGV8fChkZT1FcnJvcik7dmFyIHZlPWZ1bmN0aW9uKEFl''@;'; + put 'put ''KXtmdW5jdGlvbiBrZShTZSxJZSxUZSl7dmFyIEVlLGhlLE8sejtyZXR1cm4gZnVuY3Rpb24oaGUsTyl7aWYoIShoZSBpbnN0YW5jZW9mIE8pKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSh0aGlzLGtlKSwoRWU9ZnVuY3Rpb24gYWUo''@;'; + put 'put ''b2UsY2Upe3JldHVybiFjZXx8Im9iamVjdCIhPT1pZShjZSkmJiJmdW5jdGlvbiIhPXR5cGVvZiBjZT9mdW5jdGlvbihkZSl7aWYodm9pZCAwPT09ZGUpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBj''@;'; + put 'put ''YWxsZWQiKTtyZXR1cm4gZGV9KG9lKTpjZX0odGhpcyxZKGtlKS5jYWxsKHRoaXMsKGhlPVNlLE89SWUsej1UZSwic3RyaW5nIj09dHlwZW9mIGNlP2NlOmNlKGhlLE8seikpKSkpLmNvZGU9b2UsRWV9cmV0dXJuIGZ1bmN0aW9uKFNlLEllKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgSWUmJm51''@;'; + put 'put ''bGwhPT1JZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiIpO1NlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKEllJiZJZS5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTpTZSx3cml0YWJsZTohMCxjb25m''@;'; + put 'put ''aWd1cmFibGU6ITB9fSksSWUmJlcoU2UsSWUpfShrZSxBZSksa2V9KGRlKTtxW29lXT12ZX1mdW5jdGlvbiBzZShvZSxjZSl7aWYoQXJyYXkuaXNBcnJheShvZSkpe3ZhciBkZT1vZS5sZW5ndGg7cmV0dXJuIG9lPW9lLm1hcChmdW5jdGlvbih2ZSl7cmV0dXJuIFN0cmluZyh2ZSl9KSxkZT4y''@;'; + put 'put ''PyJvbmUgb2YgIi5jb25jYXQoY2UsIiAiKS5jb25jYXQob2Uuc2xpY2UoMCxkZS0xKS5qb2luKCIsICIpLCIsIG9yICIpK29lW2RlLTFdOjI9PT1kZT8ib25lIG9mICIuY29uY2F0KGNlLCIgIikuY29uY2F0KG9lWzBdLCIgb3IgIikuY29uY2F0KG9lWzFdKToib2YgIi5jb25jYXQoY2UsIiAi''@;'; + put 'put ''KS5jb25jYXQob2VbMF0pfXJldHVybiJvZiAiLmNvbmNhdChjZSwiICIpLmNvbmNhdChTdHJpbmcob2UpKX1KKCJFUlJfQU1CSUdVT1VTX0FSR1VNRU5UIiwnVGhlICIlcyIgYXJndW1lbnQgaXMgYW1iaWd1b3VzLiAlcycsVHlwZUVycm9yKSxKKCJFUlJfSU5WQUxJRF9BUkdfVFlQRSIsZnVu''@;'; + put 'put ''Y3Rpb24ob2UsY2UsZGUpe3ZhciB2ZSxTZSxUZSxoZTtpZih2b2lkIDA9PT1OJiYoTj1aKDkyODIpKSxOKCJzdHJpbmciPT10eXBlb2Ygb2UsIiduYW1lJyBtdXN0IGJlIGEgc3RyaW5nIiksInN0cmluZyI9PXR5cGVvZiBjZSYmIm5vdCAiPT09Y2Uuc3Vic3RyKDAsIm5vdCAiLmxlbmd0aCk/''@;'; + put 'put ''KHZlPSJtdXN0IG5vdCBiZSIsY2U9Y2UucmVwbGFjZSgvXm5vdCAvLCIiKSk6dmU9Im11c3QgYmUiLFRlPW9lLCh2b2lkIDA9PT1oZXx8aGU+VGUubGVuZ3RoKSYmKGhlPVRlLmxlbmd0aCksIiBhcmd1bWVudCI9PT1UZS5zdWJzdHJpbmcoaGUtIiBhcmd1bWVudCIubGVuZ3RoLGhlKSlTZT0i''@;'; + put 'put ''VGhlICIuY29uY2F0KG9lLCIgIikuY29uY2F0KHZlLCIgIikuY29uY2F0KHNlKGNlLCJ0eXBlIikpO2Vsc2V7dmFyIEllPWZ1bmN0aW9uKFRlLEVlLGhlKXtyZXR1cm4ibnVtYmVyIiE9dHlwZW9mIGhlJiYoaGU9MCksIShoZSsiLiIubGVuZ3RoPlRlLmxlbmd0aCkmJi0xIT09VGUuaW5kZXhP''@;'; + put 'put ''ZigiLiIsaGUpfShvZSk/InByb3BlcnR5IjoiYXJndW1lbnQiO1NlPSdUaGUgIicuY29uY2F0KG9lLCciICcpLmNvbmNhdChJZSwiICIpLmNvbmNhdCh2ZSwiICIpLmNvbmNhdChzZShjZSwidHlwZSIpKX1yZXR1cm4gU2UrIi4gUmVjZWl2ZWQgdHlwZSAiLmNvbmNhdChpZShkZSkpfSxUeXBl''@;'; + put 'put ''RXJyb3IpLEooIkVSUl9JTlZBTElEX0FSR19WQUxVRSIsZnVuY3Rpb24ob2UsY2Upe3ZhciBkZT1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06ImlzIGludmFsaWQiO3ZvaWQgMD09PWVlJiYoZWU9Wig5NTM5KSk7dmFyIHZlPWVlLmluc3Bl''@;'; + put 'put ''Y3QoY2UpO3JldHVybiB2ZS5sZW5ndGg+MTI4JiYodmU9IiIuY29uY2F0KHZlLnNsaWNlKDAsMTI4KSwiLi4uIikpLCJUaGUgYXJndW1lbnQgJyIuY29uY2F0KG9lLCInICIpLmNvbmNhdChkZSwiLiBSZWNlaXZlZCAiKS5jb25jYXQodmUpfSxUeXBlRXJyb3IsUmFuZ2VFcnJvciksSigiRVJS''@;'; + put 'put ''X0lOVkFMSURfUkVUVVJOX1ZBTFVFIixmdW5jdGlvbihvZSxjZSxkZSl7dmFyIHZlO3JldHVybiB2ZT1kZSYmZGUuY29uc3RydWN0b3ImJmRlLmNvbnN0cnVjdG9yLm5hbWU/Imluc3RhbmNlIG9mICIuY29uY2F0KGRlLmNvbnN0cnVjdG9yLm5hbWUpOiJ0eXBlICIuY29uY2F0KGllKGRlKSks''@;'; + put 'put ''IkV4cGVjdGVkICIuY29uY2F0KG9lLCcgdG8gYmUgcmV0dXJuZWQgZnJvbSB0aGUgIicpLmNvbmNhdChjZSwnIicpKyIgZnVuY3Rpb24gYnV0IGdvdCAiLmNvbmNhdCh2ZSwiLiIpfSxUeXBlRXJyb3IpLEooIkVSUl9NSVNTSU5HX0FSR1MiLGZ1bmN0aW9uKCl7Zm9yKHZhciBvZT1hcmd1bWVu''@;'; + put 'put ''dHMubGVuZ3RoLGNlPW5ldyBBcnJheShvZSksZGU9MDtkZTxvZTtkZSsrKWNlW2RlXT1hcmd1bWVudHNbZGVdO3ZvaWQgMD09PU4mJihOPVooOTI4MikpLE4oY2UubGVuZ3RoPjAsIkF0IGxlYXN0IG9uZSBhcmcgbmVlZHMgdG8gYmUgc3BlY2lmaWVkIik7dmFyIHZlPSJUaGUgIixBZT1jZS5s''@;'; + put 'put ''ZW5ndGg7c3dpdGNoKGNlPWNlLm1hcChmdW5jdGlvbihrZSl7cmV0dXJuJyInLmNvbmNhdChrZSwnIicpfSksQWUpe2Nhc2UgMTp2ZSs9IiIuY29uY2F0KGNlWzBdLCIgYXJndW1lbnQiKTticmVhaztjYXNlIDI6dmUrPSIiLmNvbmNhdChjZVswXSwiIGFuZCAiKS5jb25jYXQoY2VbMV0sIiBh''@;'; + put 'put ''cmd1bWVudHMiKTticmVhaztkZWZhdWx0OnZlKz1jZS5zbGljZSgwLEFlLTEpLmpvaW4oIiwgIiksdmUrPSIsIGFuZCAiLmNvbmNhdChjZVtBZS0xXSwiIGFyZ3VtZW50cyIpfXJldHVybiIiLmNvbmNhdCh2ZSwiIG11c3QgYmUgc3BlY2lmaWVkIil9LFR5cGVFcnJvciksVS5leHBvcnRzLmNv''@;'; + put 'put ''ZGVzPXF9LDkxNTg6KFUsUSxaKT0+eyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBpZShBdCxodCl7cmV0dXJuIGZ1bmN0aW9uKEJ0KXtpZihBcnJheS5pc0FycmF5KEJ0KSlyZXR1cm4gQnR9KEF0KXx8ZnVuY3Rpb24oQnQsb24pe3ZhciBfdD1bXSx0dD0hMCxldD0hMSxhdD12b2lkIDA7dHJ5e2Zv''@;'; + put 'put ''cih2YXIgTHQsQ3Q9QnRbU3ltYm9sLml0ZXJhdG9yXSgpOyEodHQ9KEx0PUN0Lm5leHQoKSkuZG9uZSkmJihfdC5wdXNoKEx0LnZhbHVlKSwhb258fF90Lmxlbmd0aCE9PW9uKTt0dD0hMCk7fWNhdGNoKGZ0KXtldD0hMCxhdD1mdH1maW5hbGx5e3RyeXt0dHx8bnVsbD09Q3QucmV0dXJufHxD''@;'; + put 'put ''dC5yZXR1cm4oKX1maW5hbGx5e2lmKGV0KXRocm93IGF0fX1yZXR1cm4gX3R9KEF0LGh0KXx8ZnVuY3Rpb24oKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlIil9KCl9ZnVuY3Rpb24gYWUoQXQpe3JldHVy''@;'; + put 'put ''bihhZT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihodCl7cmV0dXJuIHR5cGVvZiBodH06ZnVuY3Rpb24oaHQpe3JldHVybiBodCYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmaHQuY29uc3RydWN0b3I9PT1T''@;'; + put 'put ''eW1ib2wmJmh0IT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgaHR9KShBdCl9dmFyIFk9dm9pZCAwIT09L2EvZy5mbGFncyxXPWZ1bmN0aW9uKEF0KXt2YXIgaHQ9W107cmV0dXJuIEF0LmZvckVhY2goZnVuY3Rpb24oQnQpe3JldHVybiBodC5wdXNoKEJ0KX0pLGh0fSxOPWZ1''@;'; + put 'put ''bmN0aW9uKEF0KXt2YXIgaHQ9W107cmV0dXJuIEF0LmZvckVhY2goZnVuY3Rpb24oQnQsb24pe3JldHVybiBodC5wdXNoKFtvbixCdF0pfSksaHR9LGVlPU9iamVjdC5pcz9PYmplY3QuaXM6Wig2MDkpLHE9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scz9PYmplY3QuZ2V0T3duUHJvcGVy''@;'; + put 'put ''dHlTeW1ib2xzOmZ1bmN0aW9uKCl7cmV0dXJuW119LEo9TnVtYmVyLmlzTmFOP051bWJlci5pc05hTjpaKDM2MCk7ZnVuY3Rpb24gc2UoQXQpe3JldHVybiBBdC5jYWxsLmJpbmQoQXQpfXZhciBvZT1zZShPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5KSxjZT1zZShPYmplY3QucHJv''@;'; + put 'put ''dG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlKSxkZT1zZShPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nKSx2ZT1aKDk1MzkpLnR5cGVzLEFlPXZlLmlzQW55QXJyYXlCdWZmZXIsa2U9dmUuaXNBcnJheUJ1ZmZlclZpZXcsU2U9dmUuaXNEYXRlLEllPXZlLmlzTWFwLFRlPXZlLmlzUmVnRXhw''@;'; + put 'put ''LEVlPXZlLmlzU2V0LGhlPXZlLmlzTmF0aXZlRXJyb3IsTz12ZS5pc0JveGVkUHJpbWl0aXZlLHo9dmUuaXNOdW1iZXJPYmplY3QsbmU9dmUuaXNTdHJpbmdPYmplY3QsdGU9dmUuaXNCb29sZWFuT2JqZWN0LHg9dmUuaXNCaWdJbnRPYmplY3QsUD12ZS5pc1N5bWJvbE9iamVjdCxWPXZlLmlz''@;'; + put 'put ''RmxvYXQzMkFycmF5LFQ9dmUuaXNGbG9hdDY0QXJyYXk7ZnVuY3Rpb24gUyhBdCl7aWYoMD09PUF0Lmxlbmd0aHx8QXQubGVuZ3RoPjEwKXJldHVybiEwO2Zvcih2YXIgaHQ9MDtodDxBdC5sZW5ndGg7aHQrKyl7dmFyIEJ0PUF0LmNoYXJDb2RlQXQoaHQpO2lmKEJ0PDQ4fHxCdD41NylyZXR1''@;'; + put 'put ''cm4hMH1yZXR1cm4gMTA9PT1BdC5sZW5ndGgmJkF0Pj1NYXRoLnBvdygyLDMyKX1mdW5jdGlvbiBGKEF0KXtyZXR1cm4gT2JqZWN0LmtleXMoQXQpLmZpbHRlcihTKS5jb25jYXQocShBdCkuZmlsdGVyKE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuYmluZChBdCkpKX1m''@;'; + put 'put ''dW5jdGlvbiB5ZShBdCxodCl7aWYoQXQ9PT1odClyZXR1cm4gMDtmb3IodmFyIEJ0PUF0Lmxlbmd0aCxvbj1odC5sZW5ndGgsX3Q9MCx0dD1NYXRoLm1pbihCdCxvbik7X3Q8dHQ7KytfdClpZihBdFtfdF0hPT1odFtfdF0pe0J0PUF0W190XSxvbj1odFtfdF07YnJlYWt9cmV0dXJuIEJ0PG9u''@;'; + put 'put ''Py0xOm9uPEJ0PzE6MH1mdW5jdGlvbiBDZShBdCxodCxCdCxvbil7aWYoQXQ9PT1odClyZXR1cm4gMCE9PUF0fHwhQnR8fGVlKEF0LGh0KTtpZihCdCl7aWYoIm9iamVjdCIhPT1hZShBdCkpcmV0dXJuIm51bWJlciI9PXR5cGVvZiBBdCYmSihBdCkmJkooaHQpO2lmKCJvYmplY3QiIT09YWUo''@;'; + put 'put ''aHQpfHxudWxsPT09QXR8fG51bGw9PT1odHx8T2JqZWN0LmdldFByb3RvdHlwZU9mKEF0KSE9PU9iamVjdC5nZXRQcm90b3R5cGVPZihodCkpcmV0dXJuITF9ZWxzZXtpZihudWxsPT09QXR8fCJvYmplY3QiIT09YWUoQXQpKXJldHVybihudWxsPT09aHR8fCJvYmplY3QiIT09YWUoaHQpKSYm''@;'; + put 'put ''QXQ9PWh0O2lmKG51bGw9PT1odHx8Im9iamVjdCIhPT1hZShodCkpcmV0dXJuITF9dmFyIF90LHR0LGV0LGF0LFVlLHl0LEx0PWRlKEF0KTtpZihMdCE9PWRlKGh0KSlyZXR1cm4hMTtpZihBcnJheS5pc0FycmF5KEF0KSl7aWYoQXQubGVuZ3RoIT09aHQubGVuZ3RoKXJldHVybiExO3ZhciBD''@;'; + put 'put ''dD1GKEF0KSxmdD1GKGh0KTtyZXR1cm4gQ3QubGVuZ3RoPT09ZnQubGVuZ3RoJiZQZShBdCxodCxCdCxvbiwxLEN0KX1pZigiW29iamVjdCBPYmplY3RdIj09PUx0JiYoIUllKEF0KSYmSWUoaHQpfHwhRWUoQXQpJiZFZShodCkpKXJldHVybiExO2lmKFNlKEF0KSl7aWYoIVNlKGh0KXx8RGF0''@;'; + put 'put ''ZS5wcm90b3R5cGUuZ2V0VGltZS5jYWxsKEF0KSE9PURhdGUucHJvdG90eXBlLmdldFRpbWUuY2FsbChodCkpcmV0dXJuITF9ZWxzZSBpZihUZShBdCkpe2lmKCFUZShodCl8fChldD1BdCxhdD1odCwhKFk/ZXQuc291cmNlPT09YXQuc291cmNlJiZldC5mbGFncz09PWF0LmZsYWdzOlJlZ0V4''@;'; + put 'put ''cC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChldCk9PT1SZWdFeHAucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoYXQpKSkpcmV0dXJuITF9ZWxzZSBpZihoZShBdCl8fEF0IGluc3RhbmNlb2YgRXJyb3Ipe2lmKEF0Lm1lc3NhZ2UhPT1odC5tZXNzYWdlfHxBdC5uYW1lIT09aHQubmFtZSlyZXR1''@;'; + put 'put ''cm4hMX1lbHNle2lmKGtlKEF0KSl7aWYoQnR8fCFWKEF0KSYmIVQoQXQpKXtpZigoVWU9QXQpLmJ5dGVMZW5ndGghPT0oeXQ9aHQpLmJ5dGVMZW5ndGh8fDAhPT15ZShuZXcgVWludDhBcnJheShVZS5idWZmZXIsVWUuYnl0ZU9mZnNldCxVZS5ieXRlTGVuZ3RoKSxuZXcgVWludDhBcnJheSh5''@;'; + put 'put ''dC5idWZmZXIseXQuYnl0ZU9mZnNldCx5dC5ieXRlTGVuZ3RoKSkpcmV0dXJuITF9ZWxzZSBpZighZnVuY3Rpb24oVWUseXQpe2lmKFVlLmJ5dGVMZW5ndGghPT15dC5ieXRlTGVuZ3RoKXJldHVybiExO2Zvcih2YXIganQ9MDtqdDxVZS5ieXRlTGVuZ3RoO2p0KyspaWYoVWVbanRdIT09eXRb''@;'; + put 'put ''anRdKXJldHVybiExO3JldHVybiEwfShBdCxodCkpcmV0dXJuITE7dmFyIEh0PUYoQXQpLEdlPUYoaHQpO3JldHVybiBIdC5sZW5ndGg9PT1HZS5sZW5ndGgmJlBlKEF0LGh0LEJ0LG9uLDAsSHQpfWlmKEVlKEF0KSlyZXR1cm4hKCFFZShodCl8fEF0LnNpemUhPT1odC5zaXplKSYmUGUoQXQs''@;'; + put 'put ''aHQsQnQsb24sMik7aWYoSWUoQXQpKXJldHVybiEoIUllKGh0KXx8QXQuc2l6ZSE9PWh0LnNpemUpJiZQZShBdCxodCxCdCxvbiwzKTtpZihBZShBdCkpe2lmKChfdD1BdCkuYnl0ZUxlbmd0aCE9PSh0dD1odCkuYnl0ZUxlbmd0aHx8MCE9PXllKG5ldyBVaW50OEFycmF5KF90KSxuZXcgVWlu''@;'; + put 'put ''dDhBcnJheSh0dCkpKXJldHVybiExfWVsc2UgaWYoTyhBdCkmJiFmdW5jdGlvbihVZSx5dCl7cmV0dXJuIHooVWUpP3ooeXQpJiZlZShOdW1iZXIucHJvdG90eXBlLnZhbHVlT2YuY2FsbChVZSksTnVtYmVyLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoeXQpKTpuZShVZSk/bmUoeXQpJiZTdHJp''@;'; + put 'put ''bmcucHJvdG90eXBlLnZhbHVlT2YuY2FsbChVZSk9PT1TdHJpbmcucHJvdG90eXBlLnZhbHVlT2YuY2FsbCh5dCk6dGUoVWUpP3RlKHl0KSYmQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFVlKT09PUJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbCh5dCk6eChVZSk/eCh5dCkm''@;'; + put 'put ''JkJpZ0ludC5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFVlKT09PUJpZ0ludC5wcm90b3R5cGUudmFsdWVPZi5jYWxsKHl0KTpQKHl0KSYmU3ltYm9sLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoVWUpPT09U3ltYm9sLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoeXQpfShBdCxodCkpcmV0dXJuITF9''@;'; + put 'put ''cmV0dXJuIFBlKEF0LGh0LEJ0LG9uLDApfWZ1bmN0aW9uIERlKEF0LGh0KXtyZXR1cm4gaHQuZmlsdGVyKGZ1bmN0aW9uKEJ0KXtyZXR1cm4gY2UoQXQsQnQpfSl9ZnVuY3Rpb24gUGUoQXQsaHQsQnQsb24sX3QsdHQpe2lmKDU9PT1hcmd1bWVudHMubGVuZ3RoKXt0dD1PYmplY3Qua2V5cyhB''@;'; + put 'put ''dCk7dmFyIGV0PU9iamVjdC5rZXlzKGh0KTtpZih0dC5sZW5ndGghPT1ldC5sZW5ndGgpcmV0dXJuITF9Zm9yKHZhciBhdD0wO2F0PHR0Lmxlbmd0aDthdCsrKWlmKCFvZShodCx0dFthdF0pKXJldHVybiExO2lmKEJ0JiY1PT09YXJndW1lbnRzLmxlbmd0aCl7dmFyIEx0PXEoQXQpO2lmKDAh''@;'; + put 'put ''PT1MdC5sZW5ndGgpe3ZhciBDdD0wO2ZvcihhdD0wO2F0PEx0Lmxlbmd0aDthdCsrKXt2YXIgZnQ9THRbYXRdO2lmKGNlKEF0LGZ0KSl7aWYoIWNlKGh0LGZ0KSlyZXR1cm4hMTt0dC5wdXNoKGZ0KSxDdCsrfWVsc2UgaWYoY2UoaHQsZnQpKXJldHVybiExfXZhciBIdD1xKGh0KTtpZihMdC5s''@;'; + put 'put ''ZW5ndGghPT1IdC5sZW5ndGgmJkRlKGh0LEh0KS5sZW5ndGghPT1DdClyZXR1cm4hMX1lbHNle3ZhciBHZT1xKGh0KTtpZigwIT09R2UubGVuZ3RoJiYwIT09RGUoaHQsR2UpLmxlbmd0aClyZXR1cm4hMX19aWYoMD09PXR0Lmxlbmd0aCYmKDA9PT1fdHx8MT09PV90JiYwPT09QXQubGVuZ3Ro''@;'; + put 'put ''fHwwPT09QXQuc2l6ZSkpcmV0dXJuITA7aWYodm9pZCAwPT09b24pb249e3ZhbDE6bmV3IE1hcCx2YWwyOm5ldyBNYXAscG9zaXRpb246MH07ZWxzZXt2YXIgVWU9b24udmFsMS5nZXQoQXQpO2lmKHZvaWQgMCE9PVVlKXt2YXIgeXQ9b24udmFsMi5nZXQoaHQpO2lmKHZvaWQgMCE9PXl0KXJl''@;'; + put 'put ''dHVybiBVZT09PXl0fW9uLnBvc2l0aW9uKyt9b24udmFsMS5zZXQoQXQsb24ucG9zaXRpb24pLG9uLnZhbDIuc2V0KGh0LG9uLnBvc2l0aW9uKTt2YXIganQ9dnQoQXQsaHQsQnQsdHQsb24sX3QpO3JldHVybiBvbi52YWwxLmRlbGV0ZShBdCksb24udmFsMi5kZWxldGUoaHQpLGp0fWZ1bmN0''@;'; + put 'put ''aW9uIFFlKEF0LGh0LEJ0LG9uKXtmb3IodmFyIF90PVcoQXQpLHR0PTA7dHQ8X3QubGVuZ3RoO3R0Kyspe3ZhciBldD1fdFt0dF07aWYoQ2UoaHQsZXQsQnQsb24pKXJldHVybiBBdC5kZWxldGUoZXQpLCEwfXJldHVybiExfWZ1bmN0aW9uICRlKEF0KXtzd2l0Y2goYWUoQXQpKXtjYXNlInVu''@;'; + put 'put ''ZGVmaW5lZCI6cmV0dXJuIG51bGw7Y2FzZSJvYmplY3QiOnJldHVybjtjYXNlInN5bWJvbCI6cmV0dXJuITE7Y2FzZSJzdHJpbmciOkF0PStBdDtjYXNlIm51bWJlciI6aWYoSihBdCkpcmV0dXJuITF9cmV0dXJuITB9ZnVuY3Rpb24gZ3QoQXQsaHQsQnQpe3ZhciBvbj0kZShCdCk7cmV0dXJu''@;'; + put 'put ''IG51bGwhPW9uP29uOmh0LmhhcyhvbikmJiFBdC5oYXMob24pfWZ1bmN0aW9uIHd0KEF0LGh0LEJ0LG9uLF90KXt2YXIgdHQ9JGUoQnQpO2lmKG51bGwhPXR0KXJldHVybiB0dDt2YXIgZXQ9aHQuZ2V0KHR0KTtyZXR1cm4hKHZvaWQgMD09PWV0JiYhaHQuaGFzKHR0KXx8IUNlKG9uLGV0LCEx''@;'; + put 'put ''LF90KSkmJiFBdC5oYXModHQpJiZDZShvbixldCwhMSxfdCl9ZnVuY3Rpb24gbXQoQXQsaHQsQnQsb24sX3QsdHQpe2Zvcih2YXIgZXQ9VyhBdCksYXQ9MDthdDxldC5sZW5ndGg7YXQrKyl7dmFyIEx0PWV0W2F0XTtpZihDZShCdCxMdCxfdCx0dCkmJkNlKG9uLGh0LmdldChMdCksX3QsdHQp''@;'; + put 'put ''KXJldHVybiBBdC5kZWxldGUoTHQpLCEwfXJldHVybiExfWZ1bmN0aW9uIHZ0KEF0LGh0LEJ0LG9uLF90LHR0KXt2YXIgZXQ9MDtpZigyPT09dHQpe2lmKCFmdW5jdGlvbihmdCxIdCxHZSxVZSl7Zm9yKHZhciB5dD1udWxsLGp0PVcoZnQpLFF0PTA7UXQ8anQubGVuZ3RoO1F0Kyspe3ZhciBn''@;'; + put 'put ''bj1qdFtRdF07aWYoIm9iamVjdCI9PT1hZShnbikmJm51bGwhPT1nbiludWxsPT09eXQmJih5dD1uZXcgU2V0KSx5dC5hZGQoZ24pO2Vsc2UgaWYoIUh0Lmhhcyhnbikpe2lmKEdlfHwhZ3QoZnQsSHQsZ24pKXJldHVybiExO251bGw9PT15dCYmKHl0PW5ldyBTZXQpLHl0LmFkZChnbil9fWlm''@;'; + put 'put ''KG51bGwhPT15dCl7Zm9yKHZhciBkbj1XKEh0KSx5bj0wO3luPGRuLmxlbmd0aDt5bisrKXt2YXIgbG49ZG5beW5dO2lmKCJvYmplY3QiPT09YWUobG4pJiZudWxsIT09bG4pe2lmKCFRZSh5dCxsbixHZSxVZSkpcmV0dXJuITF9ZWxzZSBpZighR2UmJiFmdC5oYXMobG4pJiYhUWUoeXQsbG4s''@;'; + put 'put ''R2UsVWUpKXJldHVybiExfXJldHVybiAwPT09eXQuc2l6ZX1yZXR1cm4hMH0oQXQsaHQsQnQsX3QpKXJldHVybiExfWVsc2UgaWYoMz09PXR0KXtpZighZnVuY3Rpb24oZnQsSHQsR2UsVWUpe2Zvcih2YXIgeXQ9bnVsbCxqdD1OKGZ0KSxRdD0wO1F0PGp0Lmxlbmd0aDtRdCsrKXt2YXIgZ249''@;'; + put 'put ''aWUoanRbUXRdLDIpLGRuPWduWzBdLHluPWduWzFdO2lmKCJvYmplY3QiPT09YWUoZG4pJiZudWxsIT09ZG4pbnVsbD09PXl0JiYoeXQ9bmV3IFNldCkseXQuYWRkKGRuKTtlbHNle3ZhciBsbj1IdC5nZXQoZG4pO2lmKHZvaWQgMD09PWxuJiYhSHQuaGFzKGRuKXx8IUNlKHluLGxuLEdlLFVl''@;'; + put 'put ''KSl7aWYoR2V8fCF3dChmdCxIdCxkbix5bixVZSkpcmV0dXJuITE7bnVsbD09PXl0JiYoeXQ9bmV3IFNldCkseXQuYWRkKGRuKX19fWlmKG51bGwhPT15dCl7Zm9yKHZhciBObj1OKEh0KSxibj0wO2JuPE5uLmxlbmd0aDtibisrKXt2YXIgZXI9aWUoTm5bYm5dLDIpLHNyPShkbj1lclswXSxl''@;'; + put 'put ''clsxXSk7aWYoIm9iamVjdCI9PT1hZShkbikmJm51bGwhPT1kbil7aWYoIW10KHl0LGZ0LGRuLHNyLEdlLFVlKSlyZXR1cm4hMX1lbHNlIGlmKCEoR2V8fGZ0LmhhcyhkbikmJkNlKGZ0LmdldChkbiksc3IsITEsVWUpfHxtdCh5dCxmdCxkbixzciwhMSxVZSkpKXJldHVybiExfXJldHVybiAw''@;'; + put 'put ''PT09eXQuc2l6ZX1yZXR1cm4hMH0oQXQsaHQsQnQsX3QpKXJldHVybiExfWVsc2UgaWYoMT09PXR0KWZvcig7ZXQ8QXQubGVuZ3RoO2V0Kyspe2lmKCFvZShBdCxldCkpe2lmKG9lKGh0LGV0KSlyZXR1cm4hMTtmb3IodmFyIGF0PU9iamVjdC5rZXlzKEF0KTtldDxhdC5sZW5ndGg7ZXQrKyl7''@;'; + put 'put ''dmFyIEx0PWF0W2V0XTtpZighb2UoaHQsTHQpfHwhQ2UoQXRbTHRdLGh0W0x0XSxCdCxfdCkpcmV0dXJuITF9cmV0dXJuIGF0Lmxlbmd0aD09PU9iamVjdC5rZXlzKGh0KS5sZW5ndGh9aWYoIW9lKGh0LGV0KXx8IUNlKEF0W2V0XSxodFtldF0sQnQsX3QpKXJldHVybiExfWZvcihldD0wO2V0''@;'; + put 'put ''PG9uLmxlbmd0aDtldCsrKXt2YXIgQ3Q9b25bZXRdO2lmKCFDZShBdFtDdF0saHRbQ3RdLEJ0LF90KSlyZXR1cm4hMX1yZXR1cm4hMH1VLmV4cG9ydHM9e2lzRGVlcEVxdWFsOmZ1bmN0aW9uKEF0LGh0KXtyZXR1cm4gQ2UoQXQsaHQsITEpfSxpc0RlZXBTdHJpY3RFcXVhbDpmdW5jdGlvbihB''@;'; + put 'put ''dCxodCl7cmV0dXJuIENlKEF0LGh0LCEwKX19fSw4MjI0OlU9PnsidXNlIHN0cmljdCI7VS5leHBvcnRzPWZ1bmN0aW9uKFEpe3JldHVybiBRfX0sOTY2OTooVSxRLFopPT57VS5leHBvcnRzPVooMTYwOSl9LDU0NDg6KFUsUSxaKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgaWU9Wig0ODY3KSxhZT1a''@;'; + put 'put ''KDYwMjYpLFk9Wig0MzcyKSxXPVooNTMyNyksTj1aKDQwOTcpLGVlPVooNDEwOSkscT1aKDc5ODUpLEo9Wig1MDYxKSxzZT1aKDU2NTUpLG9lPVooNTI2Myk7VS5leHBvcnRzPWZ1bmN0aW9uKGNlKXtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24oZGUsdmUpe3ZhciBBZSxrZT1jZS5kYXRh''@;'; + put 'put ''LFNlPWNlLmhlYWRlcnMsSWU9Y2UucmVzcG9uc2VUeXBlO2Z1bmN0aW9uIFRlKCl7Y2UuY2FuY2VsVG9rZW4mJmNlLmNhbmNlbFRva2VuLnVuc3Vic2NyaWJlKEFlKSxjZS5zaWduYWwmJmNlLnNpZ25hbC5yZW1vdmVFdmVudExpc3RlbmVyKCJhYm9ydCIsQWUpfWllLmlzRm9ybURhdGEoa2Up''@;'; + put 'put ''JiZkZWxldGUgU2VbIkNvbnRlbnQtVHlwZSJdO3ZhciBFZT1uZXcgWE1MSHR0cFJlcXVlc3Q7aWYoY2UuYXV0aCl7dmFyIGhlPWNlLmF1dGgudXNlcm5hbWV8fCIiLE89Y2UuYXV0aC5wYXNzd29yZD91bmVzY2FwZShlbmNvZGVVUklDb21wb25lbnQoY2UuYXV0aC5wYXNzd29yZCkpOiIiO1Nl''@;'; + put 'put ''LkF1dGhvcml6YXRpb249IkJhc2ljICIrYnRvYShoZSsiOiIrTyl9dmFyIHo9TihjZS5iYXNlVVJMLGNlLnVybCk7ZnVuY3Rpb24gbmUoKXtpZihFZSl7dmFyIHg9ImdldEFsbFJlc3BvbnNlSGVhZGVycyJpbiBFZT9lZShFZS5nZXRBbGxSZXNwb25zZUhlYWRlcnMoKSk6bnVsbDthZShmdW5j''@;'; + put 'put ''dGlvbihWKXtkZShWKSxUZSgpfSxmdW5jdGlvbihWKXt2ZShWKSxUZSgpfSx7ZGF0YTpJZSYmInRleHQiIT09SWUmJiJqc29uIiE9PUllP0VlLnJlc3BvbnNlOkVlLnJlc3BvbnNlVGV4dCxzdGF0dXM6RWUuc3RhdHVzLHN0YXR1c1RleHQ6RWUuc3RhdHVzVGV4dCxoZWFkZXJzOngsY29uZmln''@;'; + put 'put ''OmNlLHJlcXVlc3Q6RWV9KSxFZT1udWxsfX1pZihFZS5vcGVuKGNlLm1ldGhvZC50b1VwcGVyQ2FzZSgpLFcoeixjZS5wYXJhbXMsY2UucGFyYW1zU2VyaWFsaXplciksITApLEVlLnRpbWVvdXQ9Y2UudGltZW91dCwib25sb2FkZW5kImluIEVlP0VlLm9ubG9hZGVuZD1uZTpFZS5vbnJlYWR5''@;'; + put 'put ''c3RhdGVjaGFuZ2U9ZnVuY3Rpb24oKXtFZSYmND09PUVlLnJlYWR5U3RhdGUmJigwIT09RWUuc3RhdHVzfHxFZS5yZXNwb25zZVVSTCYmMD09PUVlLnJlc3BvbnNlVVJMLmluZGV4T2YoImZpbGU6IikpJiZzZXRUaW1lb3V0KG5lKX0sRWUub25hYm9ydD1mdW5jdGlvbigpe0VlJiYodmUoSigi''@;'; + put 'put ''UmVxdWVzdCBhYm9ydGVkIixjZSwiRUNPTk5BQk9SVEVEIixFZSkpLEVlPW51bGwpfSxFZS5vbmVycm9yPWZ1bmN0aW9uKCl7dmUoSigiTmV0d29yayBFcnJvciIsY2UsbnVsbCxFZSkpLEVlPW51bGx9LEVlLm9udGltZW91dD1mdW5jdGlvbigpe3ZhciB4PWNlLnRpbWVvdXQ/InRpbWVvdXQg''@;'; + put 'put ''b2YgIitjZS50aW1lb3V0KyJtcyBleGNlZWRlZCI6InRpbWVvdXQgZXhjZWVkZWQiO2NlLnRpbWVvdXRFcnJvck1lc3NhZ2UmJih4PWNlLnRpbWVvdXRFcnJvck1lc3NhZ2UpLHZlKEooeCxjZSwoY2UudHJhbnNpdGlvbmFsfHxzZS50cmFuc2l0aW9uYWwpLmNsYXJpZnlUaW1lb3V0RXJyb3I/''@;'; + put 'put ''IkVUSU1FRE9VVCI6IkVDT05OQUJPUlRFRCIsRWUpKSxFZT1udWxsfSxpZS5pc1N0YW5kYXJkQnJvd3NlckVudigpKXt2YXIgdGU9KGNlLndpdGhDcmVkZW50aWFsc3x8cSh6KSkmJmNlLnhzcmZDb29raWVOYW1lP1kucmVhZChjZS54c3JmQ29va2llTmFtZSk6dm9pZCAwO3RlJiYoU2VbY2Uu''@;'; + put 'put ''eHNyZkhlYWRlck5hbWVdPXRlKX0ic2V0UmVxdWVzdEhlYWRlciJpbiBFZSYmaWUuZm9yRWFjaChTZSxmdW5jdGlvbih4LFApe3ZvaWQgMD09PWtlJiYiY29udGVudC10eXBlIj09PVAudG9Mb3dlckNhc2UoKT9kZWxldGUgU2VbUF06RWUuc2V0UmVxdWVzdEhlYWRlcihQLHgpfSksaWUuaXNV''@;'; + put 'put ''bmRlZmluZWQoY2Uud2l0aENyZWRlbnRpYWxzKXx8KEVlLndpdGhDcmVkZW50aWFscz0hIWNlLndpdGhDcmVkZW50aWFscyksSWUmJiJqc29uIiE9PUllJiYoRWUucmVzcG9uc2VUeXBlPWNlLnJlc3BvbnNlVHlwZSksImZ1bmN0aW9uIj09dHlwZW9mIGNlLm9uRG93bmxvYWRQcm9ncmVzcyYm''@;'; + put 'put ''RWUuYWRkRXZlbnRMaXN0ZW5lcigicHJvZ3Jlc3MiLGNlLm9uRG93bmxvYWRQcm9ncmVzcyksImZ1bmN0aW9uIj09dHlwZW9mIGNlLm9uVXBsb2FkUHJvZ3Jlc3MmJkVlLnVwbG9hZCYmRWUudXBsb2FkLmFkZEV2ZW50TGlzdGVuZXIoInByb2dyZXNzIixjZS5vblVwbG9hZFByb2dyZXNzKSwo''@;'; + put 'put ''Y2UuY2FuY2VsVG9rZW58fGNlLnNpZ25hbCkmJihBZT1mdW5jdGlvbih4KXtFZSYmKHZlKCF4fHx4JiZ4LnR5cGU/bmV3IG9lKCJjYW5jZWxlZCIpOngpLEVlLmFib3J0KCksRWU9bnVsbCl9LGNlLmNhbmNlbFRva2VuJiZjZS5jYW5jZWxUb2tlbi5zdWJzY3JpYmUoQWUpLGNlLnNpZ25hbCYm''@;'; + put 'put ''KGNlLnNpZ25hbC5hYm9ydGVkP0FlKCk6Y2Uuc2lnbmFsLmFkZEV2ZW50TGlzdGVuZXIoImFib3J0IixBZSkpKSxrZXx8KGtlPW51bGwpLEVlLnNlbmQoa2UpfSl9fSwxNjA5OihVLFEsWik9PnsidXNlIHN0cmljdCI7dmFyIGllPVooNDg2NyksYWU9WigxODQ5KSxZPVooMzIxKSxXPVooNzE4''@;'; + put 'put ''NSksTj1mdW5jdGlvbiBlZShxKXt2YXIgSj1uZXcgWShxKSxzZT1hZShZLnByb3RvdHlwZS5yZXF1ZXN0LEopO3JldHVybiBpZS5leHRlbmQoc2UsWS5wcm90b3R5cGUsSiksaWUuZXh0ZW5kKHNlLEopLHNlLmNyZWF0ZT1mdW5jdGlvbihvZSl7cmV0dXJuIGVlKFcocSxvZSkpfSxzZX0oWig1''@;'; + put 'put ''NjU1KSk7Ti5BeGlvcz1ZLE4uQ2FuY2VsPVooNTI2MyksTi5DYW5jZWxUb2tlbj1aKDQ5NzIpLE4uaXNDYW5jZWw9Wig2NTAyKSxOLlZFUlNJT049Wig3Mjg4KS52ZXJzaW9uLE4uYWxsPWZ1bmN0aW9uKGVlKXtyZXR1cm4gUHJvbWlzZS5hbGwoZWUpfSxOLnNwcmVhZD1aKDg3MTMpLE4uaXNB''@;'; + put 'put ''eGlvc0Vycm9yPVooNjI2OCksVS5leHBvcnRzPU4sVS5leHBvcnRzLmRlZmF1bHQ9Tn0sNTI2MzpVPT57InVzZSBzdHJpY3QiO2Z1bmN0aW9uIFEoWil7dGhpcy5tZXNzYWdlPVp9US5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4iQ2FuY2VsIisodGhpcy5tZXNzYWdlPyI6''@;'; + put 'put ''ICIrdGhpcy5tZXNzYWdlOiIiKX0sUS5wcm90b3R5cGUuX19DQU5DRUxfXz0hMCxVLmV4cG9ydHM9UX0sNDk3MjooVSxRLFopPT57InVzZSBzdHJpY3QiO3ZhciBpZT1aKDUyNjMpO2Z1bmN0aW9uIGFlKFkpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBZKXRocm93IG5ldyBUeXBlRXJyb3IoImV4''@;'; + put 'put ''ZWN1dG9yIG11c3QgYmUgYSBmdW5jdGlvbi4iKTt2YXIgVzt0aGlzLnByb21pc2U9bmV3IFByb21pc2UoZnVuY3Rpb24oZWUpe1c9ZWV9KTt2YXIgTj10aGlzO3RoaXMucHJvbWlzZS50aGVuKGZ1bmN0aW9uKGVlKXtpZihOLl9saXN0ZW5lcnMpe3ZhciBxLEo9Ti5fbGlzdGVuZXJzLmxlbmd0''@;'; + put 'put ''aDtmb3IocT0wO3E8SjtxKyspTi5fbGlzdGVuZXJzW3FdKGVlKTtOLl9saXN0ZW5lcnM9bnVsbH19KSx0aGlzLnByb21pc2UudGhlbj1mdW5jdGlvbihlZSl7dmFyIHEsSj1uZXcgUHJvbWlzZShmdW5jdGlvbihzZSl7Ti5zdWJzY3JpYmUoc2UpLHE9c2V9KS50aGVuKGVlKTtyZXR1cm4gSi5j''@;'; + put 'put ''YW5jZWw9ZnVuY3Rpb24oKXtOLnVuc3Vic2NyaWJlKHEpfSxKfSxZKGZ1bmN0aW9uKGVlKXtOLnJlYXNvbnx8KE4ucmVhc29uPW5ldyBpZShlZSksVyhOLnJlYXNvbikpfSl9YWUucHJvdG90eXBlLnRocm93SWZSZXF1ZXN0ZWQ9ZnVuY3Rpb24oKXtpZih0aGlzLnJlYXNvbil0aHJvdyB0aGlz''@;'; + put 'put ''LnJlYXNvbn0sYWUucHJvdG90eXBlLnN1YnNjcmliZT1mdW5jdGlvbihZKXt0aGlzLnJlYXNvbj9ZKHRoaXMucmVhc29uKTp0aGlzLl9saXN0ZW5lcnM/dGhpcy5fbGlzdGVuZXJzLnB1c2goWSk6dGhpcy5fbGlzdGVuZXJzPVtZXX0sYWUucHJvdG90eXBlLnVuc3Vic2NyaWJlPWZ1bmN0aW9u''@;'; + put 'put ''KFkpe2lmKHRoaXMuX2xpc3RlbmVycyl7dmFyIFc9dGhpcy5fbGlzdGVuZXJzLmluZGV4T2YoWSk7LTEhPT1XJiZ0aGlzLl9saXN0ZW5lcnMuc3BsaWNlKFcsMSl9fSxhZS5zb3VyY2U9ZnVuY3Rpb24oKXt2YXIgWTtyZXR1cm57dG9rZW46bmV3IGFlKGZ1bmN0aW9uKFcpe1k9V30pLGNhbmNl''@;'; + put 'put ''bDpZfX0sVS5leHBvcnRzPWFlfSw2NTAyOlU9PnsidXNlIHN0cmljdCI7VS5leHBvcnRzPWZ1bmN0aW9uKFEpe3JldHVybiEoIVF8fCFRLl9fQ0FOQ0VMX18pfX0sMzIxOihVLFEsWik9PnsidXNlIHN0cmljdCI7dmFyIGllPVooNDg2NyksYWU9Wig1MzI3KSxZPVooNzgyKSxXPVooMzU3Miks''@;'; + put 'put ''Tj1aKDcxODUpLGVlPVooNDg3NSkscT1lZS52YWxpZGF0b3JzO2Z1bmN0aW9uIEooc2Upe3RoaXMuZGVmYXVsdHM9c2UsdGhpcy5pbnRlcmNlcHRvcnM9e3JlcXVlc3Q6bmV3IFkscmVzcG9uc2U6bmV3IFl9fUoucHJvdG90eXBlLnJlcXVlc3Q9ZnVuY3Rpb24oc2Usb2UpeyJzdHJpbmciPT10''@;'; + put 'put ''eXBlb2Ygc2U/KG9lPW9lfHx7fSkudXJsPXNlOm9lPXNlfHx7fSxvZS5tZXRob2Q9KG9lPU4odGhpcy5kZWZhdWx0cyxvZSkpLm1ldGhvZD9vZS5tZXRob2QudG9Mb3dlckNhc2UoKTp0aGlzLmRlZmF1bHRzLm1ldGhvZD90aGlzLmRlZmF1bHRzLm1ldGhvZC50b0xvd2VyQ2FzZSgpOiJnZXQi''@;'; + put 'put ''O3ZhciBjZT1vZS50cmFuc2l0aW9uYWw7dm9pZCAwIT09Y2UmJmVlLmFzc2VydE9wdGlvbnMoY2Use3NpbGVudEpTT05QYXJzaW5nOnEudHJhbnNpdGlvbmFsKHEuYm9vbGVhbiksZm9yY2VkSlNPTlBhcnNpbmc6cS50cmFuc2l0aW9uYWwocS5ib29sZWFuKSxjbGFyaWZ5VGltZW91dEVycm9y''@;'; + put 'put ''OnEudHJhbnNpdGlvbmFsKHEuYm9vbGVhbil9LCExKTt2YXIgZGU9W10sdmU9ITA7dGhpcy5pbnRlcmNlcHRvcnMucmVxdWVzdC5mb3JFYWNoKGZ1bmN0aW9uKGhlKXsiZnVuY3Rpb24iPT10eXBlb2YgaGUucnVuV2hlbiYmITE9PT1oZS5ydW5XaGVuKG9lKXx8KHZlPXZlJiZoZS5zeW5jaHJv''@;'; + put 'put ''bm91cyxkZS51bnNoaWZ0KGhlLmZ1bGZpbGxlZCxoZS5yZWplY3RlZCkpfSk7dmFyIEFlLGtlPVtdO2lmKHRoaXMuaW50ZXJjZXB0b3JzLnJlc3BvbnNlLmZvckVhY2goZnVuY3Rpb24oaGUpe2tlLnB1c2goaGUuZnVsZmlsbGVkLGhlLnJlamVjdGVkKX0pLCF2ZSl7dmFyIFNlPVtXLHZvaWQg''@;'; + put 'put ''MF07Zm9yKEFycmF5LnByb3RvdHlwZS51bnNoaWZ0LmFwcGx5KFNlLGRlKSxTZT1TZS5jb25jYXQoa2UpLEFlPVByb21pc2UucmVzb2x2ZShvZSk7U2UubGVuZ3RoOylBZT1BZS50aGVuKFNlLnNoaWZ0KCksU2Uuc2hpZnQoKSk7cmV0dXJuIEFlfWZvcih2YXIgSWU9b2U7ZGUubGVuZ3RoOyl7''@;'; + put 'put ''dmFyIFRlPWRlLnNoaWZ0KCksRWU9ZGUuc2hpZnQoKTt0cnl7SWU9VGUoSWUpfWNhdGNoKGhlKXtFZShoZSk7YnJlYWt9fXRyeXtBZT1XKEllKX1jYXRjaChoZSl7cmV0dXJuIFByb21pc2UucmVqZWN0KGhlKX1mb3IoO2tlLmxlbmd0aDspQWU9QWUudGhlbihrZS5zaGlmdCgpLGtlLnNoaWZ0''@;'; + put 'put ''KCkpO3JldHVybiBBZX0sSi5wcm90b3R5cGUuZ2V0VXJpPWZ1bmN0aW9uKHNlKXtyZXR1cm4gc2U9Tih0aGlzLmRlZmF1bHRzLHNlKSxhZShzZS51cmwsc2UucGFyYW1zLHNlLnBhcmFtc1NlcmlhbGl6ZXIpLnJlcGxhY2UoL15cPy8sIiIpfSxpZS5mb3JFYWNoKFsiZGVsZXRlIiwiZ2V0Iiwi''@;'; + put 'put ''aGVhZCIsIm9wdGlvbnMiXSxmdW5jdGlvbihzZSl7Si5wcm90b3R5cGVbc2VdPWZ1bmN0aW9uKG9lLGNlKXtyZXR1cm4gdGhpcy5yZXF1ZXN0KE4oY2V8fHt9LHttZXRob2Q6c2UsdXJsOm9lLGRhdGE6KGNlfHx7fSkuZGF0YX0pKX19KSxpZS5mb3JFYWNoKFsicG9zdCIsInB1dCIsInBhdGNo''@;'; + put 'put ''Il0sZnVuY3Rpb24oc2Upe0oucHJvdG90eXBlW3NlXT1mdW5jdGlvbihvZSxjZSxkZSl7cmV0dXJuIHRoaXMucmVxdWVzdChOKGRlfHx7fSx7bWV0aG9kOnNlLHVybDpvZSxkYXRhOmNlfSkpfX0pLFUuZXhwb3J0cz1KfSw3ODI6KFUsUSxaKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgaWU9Wig0ODY3''@;'; + put 'put ''KTtmdW5jdGlvbiBhZSgpe3RoaXMuaGFuZGxlcnM9W119YWUucHJvdG90eXBlLnVzZT1mdW5jdGlvbihZLFcsTil7cmV0dXJuIHRoaXMuaGFuZGxlcnMucHVzaCh7ZnVsZmlsbGVkOlkscmVqZWN0ZWQ6VyxzeW5jaHJvbm91czohIU4mJk4uc3luY2hyb25vdXMscnVuV2hlbjpOP04ucnVuV2hl''@;'; + put 'put ''bjpudWxsfSksdGhpcy5oYW5kbGVycy5sZW5ndGgtMX0sYWUucHJvdG90eXBlLmVqZWN0PWZ1bmN0aW9uKFkpe3RoaXMuaGFuZGxlcnNbWV0mJih0aGlzLmhhbmRsZXJzW1ldPW51bGwpfSxhZS5wcm90b3R5cGUuZm9yRWFjaD1mdW5jdGlvbihZKXtpZS5mb3JFYWNoKHRoaXMuaGFuZGxlcnMs''@;'; + put 'put ''ZnVuY3Rpb24oVyl7bnVsbCE9PVcmJlkoVyl9KX0sVS5leHBvcnRzPWFlfSw0MDk3OihVLFEsWik9PnsidXNlIHN0cmljdCI7dmFyIGllPVooMTc5MyksYWU9Wig3MzAzKTtVLmV4cG9ydHM9ZnVuY3Rpb24oWSxXKXtyZXR1cm4gWSYmIWllKFcpP2FlKFksVyk6V319LDUwNjE6KFUsUSxaKT0+''@;'; + put 'put ''eyJ1c2Ugc3RyaWN0Ijt2YXIgaWU9Wig4OTY1KTtVLmV4cG9ydHM9ZnVuY3Rpb24oYWUsWSxXLE4sZWUpe3ZhciBxPW5ldyBFcnJvcihhZSk7cmV0dXJuIGllKHEsWSxXLE4sZWUpfX0sMzU3MjooVSxRLFopPT57InVzZSBzdHJpY3QiO3ZhciBpZT1aKDQ4NjcpLGFlPVooODUyNyksWT1aKDY1''@;'; + put 'put ''MDIpLFc9Wig1NjU1KSxOPVooNTI2Myk7ZnVuY3Rpb24gZWUocSl7aWYocS5jYW5jZWxUb2tlbiYmcS5jYW5jZWxUb2tlbi50aHJvd0lmUmVxdWVzdGVkKCkscS5zaWduYWwmJnEuc2lnbmFsLmFib3J0ZWQpdGhyb3cgbmV3IE4oImNhbmNlbGVkIil9VS5leHBvcnRzPWZ1bmN0aW9uKHEpe3Jl''@;'; + put 'put ''dHVybiBlZShxKSxxLmhlYWRlcnM9cS5oZWFkZXJzfHx7fSxxLmRhdGE9YWUuY2FsbChxLHEuZGF0YSxxLmhlYWRlcnMscS50cmFuc2Zvcm1SZXF1ZXN0KSxxLmhlYWRlcnM9aWUubWVyZ2UocS5oZWFkZXJzLmNvbW1vbnx8e30scS5oZWFkZXJzW3EubWV0aG9kXXx8e30scS5oZWFkZXJzKSxp''@;'; + put 'put ''ZS5mb3JFYWNoKFsiZGVsZXRlIiwiZ2V0IiwiaGVhZCIsInBvc3QiLCJwdXQiLCJwYXRjaCIsImNvbW1vbiJdLGZ1bmN0aW9uKEope2RlbGV0ZSBxLmhlYWRlcnNbSl19KSwocS5hZGFwdGVyfHxXLmFkYXB0ZXIpKHEpLnRoZW4oZnVuY3Rpb24oSil7cmV0dXJuIGVlKHEpLEouZGF0YT1hZS5j''@;'; + put 'put ''YWxsKHEsSi5kYXRhLEouaGVhZGVycyxxLnRyYW5zZm9ybVJlc3BvbnNlKSxKfSxmdW5jdGlvbihKKXtyZXR1cm4gWShKKXx8KGVlKHEpLEomJkoucmVzcG9uc2UmJihKLnJlc3BvbnNlLmRhdGE9YWUuY2FsbChxLEoucmVzcG9uc2UuZGF0YSxKLnJlc3BvbnNlLmhlYWRlcnMscS50cmFuc2Zv''@;'; + put 'put ''cm1SZXNwb25zZSkpKSxQcm9taXNlLnJlamVjdChKKX0pfX0sODk2NTpVPT57InVzZSBzdHJpY3QiO1UuZXhwb3J0cz1mdW5jdGlvbihRLFosaWUsYWUsWSl7cmV0dXJuIFEuY29uZmlnPVosaWUmJihRLmNvZGU9aWUpLFEucmVxdWVzdD1hZSxRLnJlc3BvbnNlPVksUS5pc0F4aW9zRXJyb3I9''@;'; + put 'put ''ITAsUS50b0pTT049ZnVuY3Rpb24oKXtyZXR1cm57bWVzc2FnZTp0aGlzLm1lc3NhZ2UsbmFtZTp0aGlzLm5hbWUsZGVzY3JpcHRpb246dGhpcy5kZXNjcmlwdGlvbixudW1iZXI6dGhpcy5udW1iZXIsZmlsZU5hbWU6dGhpcy5maWxlTmFtZSxsaW5lTnVtYmVyOnRoaXMubGluZU51bWJlcixj''@;'; + put 'put ''b2x1bW5OdW1iZXI6dGhpcy5jb2x1bW5OdW1iZXIsc3RhY2s6dGhpcy5zdGFjayxjb25maWc6dGhpcy5jb25maWcsY29kZTp0aGlzLmNvZGUsc3RhdHVzOnRoaXMucmVzcG9uc2UmJnRoaXMucmVzcG9uc2Uuc3RhdHVzP3RoaXMucmVzcG9uc2Uuc3RhdHVzOm51bGx9fSxRfX0sNzE4NTooVSxR''@;'; + put 'put ''LFopPT57InVzZSBzdHJpY3QiO3ZhciBpZT1aKDQ4NjcpO1UuZXhwb3J0cz1mdW5jdGlvbihhZSxZKXtZPVl8fHt9O3ZhciBXPXt9O2Z1bmN0aW9uIE4oY2UsZGUpe3JldHVybiBpZS5pc1BsYWluT2JqZWN0KGNlKSYmaWUuaXNQbGFpbk9iamVjdChkZSk/aWUubWVyZ2UoY2UsZGUpOmllLmlz''@;'; + put 'put ''UGxhaW5PYmplY3QoZGUpP2llLm1lcmdlKHt9LGRlKTppZS5pc0FycmF5KGRlKT9kZS5zbGljZSgpOmRlfWZ1bmN0aW9uIGVlKGNlKXtyZXR1cm4gaWUuaXNVbmRlZmluZWQoWVtjZV0pP2llLmlzVW5kZWZpbmVkKGFlW2NlXSk/dm9pZCAwOk4odm9pZCAwLGFlW2NlXSk6TihhZVtjZV0sWVtj''@;'; + put 'put ''ZV0pfWZ1bmN0aW9uIHEoY2Upe2lmKCFpZS5pc1VuZGVmaW5lZChZW2NlXSkpcmV0dXJuIE4odm9pZCAwLFlbY2VdKX1mdW5jdGlvbiBKKGNlKXtyZXR1cm4gaWUuaXNVbmRlZmluZWQoWVtjZV0pP2llLmlzVW5kZWZpbmVkKGFlW2NlXSk/dm9pZCAwOk4odm9pZCAwLGFlW2NlXSk6Tih2b2lk''@;'; + put 'put ''IDAsWVtjZV0pfWZ1bmN0aW9uIHNlKGNlKXtyZXR1cm4gY2UgaW4gWT9OKGFlW2NlXSxZW2NlXSk6Y2UgaW4gYWU/Tih2b2lkIDAsYWVbY2VdKTp2b2lkIDB9dmFyIG9lPXt1cmw6cSxtZXRob2Q6cSxkYXRhOnEsYmFzZVVSTDpKLHRyYW5zZm9ybVJlcXVlc3Q6Six0cmFuc2Zvcm1SZXNwb25z''@;'; + put 'put ''ZTpKLHBhcmFtc1NlcmlhbGl6ZXI6Six0aW1lb3V0OkosdGltZW91dE1lc3NhZ2U6Six3aXRoQ3JlZGVudGlhbHM6SixhZGFwdGVyOkoscmVzcG9uc2VUeXBlOkoseHNyZkNvb2tpZU5hbWU6Six4c3JmSGVhZGVyTmFtZTpKLG9uVXBsb2FkUHJvZ3Jlc3M6SixvbkRvd25sb2FkUHJvZ3Jlc3M6''@;'; + put 'put ''SixkZWNvbXByZXNzOkosbWF4Q29udGVudExlbmd0aDpKLG1heEJvZHlMZW5ndGg6Six0cmFuc3BvcnQ6SixodHRwQWdlbnQ6SixodHRwc0FnZW50OkosY2FuY2VsVG9rZW46Sixzb2NrZXRQYXRoOkoscmVzcG9uc2VFbmNvZGluZzpKLHZhbGlkYXRlU3RhdHVzOnNlfTtyZXR1cm4gaWUuZm9y''@;'; + put 'put ''RWFjaChPYmplY3Qua2V5cyhhZSkuY29uY2F0KE9iamVjdC5rZXlzKFkpKSxmdW5jdGlvbihjZSl7dmFyIGRlPW9lW2NlXXx8ZWUsdmU9ZGUoY2UpO2llLmlzVW5kZWZpbmVkKHZlKSYmZGUhPT1zZXx8KFdbY2VdPXZlKX0pLFd9fSw2MDI2OihVLFEsWik9PnsidXNlIHN0cmljdCI7dmFyIGll''@;'; + put 'put ''PVooNTA2MSk7VS5leHBvcnRzPWZ1bmN0aW9uKGFlLFksVyl7dmFyIE49Vy5jb25maWcudmFsaWRhdGVTdGF0dXM7Vy5zdGF0dXMmJk4mJiFOKFcuc3RhdHVzKT9ZKGllKCJSZXF1ZXN0IGZhaWxlZCB3aXRoIHN0YXR1cyBjb2RlICIrVy5zdGF0dXMsVy5jb25maWcsbnVsbCxXLnJlcXVlc3Qs''@;'; + put 'put ''VykpOmFlKFcpfX0sODUyNzooVSxRLFopPT57InVzZSBzdHJpY3QiO3ZhciBpZT1aKDQ4NjcpLGFlPVooNTY1NSk7VS5leHBvcnRzPWZ1bmN0aW9uKFksVyxOKXt2YXIgZWU9dGhpc3x8YWU7cmV0dXJuIGllLmZvckVhY2goTixmdW5jdGlvbihxKXtZPXEuY2FsbChlZSxZLFcpfSksWX19LDU2''@;'; + put 'put ''NTU6KFUsUSxaKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgaWU9Wig0MTU1KSxhZT1aKDQ4NjcpLFk9Wig2MDE2KSxXPVooODk2NSksTj17IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCJ9O2Z1bmN0aW9uIGVlKHNlLG9lKXshYWUuaXNVbmRlZmluZWQoc2Up''@;'; + put 'put ''JiZhZS5pc1VuZGVmaW5lZChzZVsiQ29udGVudC1UeXBlIl0pJiYoc2VbIkNvbnRlbnQtVHlwZSJdPW9lKX12YXIgcSxKPXt0cmFuc2l0aW9uYWw6e3NpbGVudEpTT05QYXJzaW5nOiEwLGZvcmNlZEpTT05QYXJzaW5nOiEwLGNsYXJpZnlUaW1lb3V0RXJyb3I6ITF9LGFkYXB0ZXI6KCgidW5k''@;'; + put 'put ''ZWZpbmVkIiE9dHlwZW9mIFhNTEh0dHBSZXF1ZXN0fHx2b2lkIDAhPT1pZSYmIltvYmplY3QgcHJvY2Vzc10iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGllKSkmJihxPVooNTQ0OCkpLHEpLHRyYW5zZm9ybVJlcXVlc3Q6W2Z1bmN0aW9uKHNlLG9lKXtyZXR1cm4gWShvZSwi''@;'; + put 'put ''QWNjZXB0IiksWShvZSwiQ29udGVudC1UeXBlIiksYWUuaXNGb3JtRGF0YShzZSl8fGFlLmlzQXJyYXlCdWZmZXIoc2UpfHxhZS5pc0J1ZmZlcihzZSl8fGFlLmlzU3RyZWFtKHNlKXx8YWUuaXNGaWxlKHNlKXx8YWUuaXNCbG9iKHNlKT9zZTphZS5pc0FycmF5QnVmZmVyVmlldyhzZSk/c2Uu''@;'; + put 'put ''YnVmZmVyOmFlLmlzVVJMU2VhcmNoUGFyYW1zKHNlKT8oZWUob2UsImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDtjaGFyc2V0PXV0Zi04Iiksc2UudG9TdHJpbmcoKSk6YWUuaXNPYmplY3Qoc2UpfHxvZSYmImFwcGxpY2F0aW9uL2pzb24iPT09b2VbIkNvbnRlbnQtVHlwZSJd''@;'; + put 'put ''PyhlZShvZSwiYXBwbGljYXRpb24vanNvbiIpLGZ1bmN0aW9uKGNlLGRlLHZlKXtpZihhZS5pc1N0cmluZyhjZSkpdHJ5e3JldHVybigwLEpTT04ucGFyc2UpKGNlKSxhZS50cmltKGNlKX1jYXRjaChBZSl7aWYoIlN5bnRheEVycm9yIiE9PUFlLm5hbWUpdGhyb3cgQWV9cmV0dXJuKDAsSlNP''@;'; + put 'put ''Ti5zdHJpbmdpZnkpKGNlKX0oc2UpKTpzZX1dLHRyYW5zZm9ybVJlc3BvbnNlOltmdW5jdGlvbihzZSl7dmFyIG9lPXRoaXMudHJhbnNpdGlvbmFsfHxKLnRyYW5zaXRpb25hbCx2ZT0hKG9lJiZvZS5zaWxlbnRKU09OUGFyc2luZykmJiJqc29uIj09PXRoaXMucmVzcG9uc2VUeXBlO2lmKHZl''@;'; + put 'put ''fHxvZSYmb2UuZm9yY2VkSlNPTlBhcnNpbmcmJmFlLmlzU3RyaW5nKHNlKSYmc2UubGVuZ3RoKXRyeXtyZXR1cm4gSlNPTi5wYXJzZShzZSl9Y2F0Y2goQWUpe2lmKHZlKXRocm93IlN5bnRheEVycm9yIj09PUFlLm5hbWU/VyhBZSx0aGlzLCJFX0pTT05fUEFSU0UiKTpBZX1yZXR1cm4gc2V9''@;'; + put 'put ''XSx0aW1lb3V0OjAseHNyZkNvb2tpZU5hbWU6IlhTUkYtVE9LRU4iLHhzcmZIZWFkZXJOYW1lOiJYLVhTUkYtVE9LRU4iLG1heENvbnRlbnRMZW5ndGg6LTEsbWF4Qm9keUxlbmd0aDotMSx2YWxpZGF0ZVN0YXR1czpmdW5jdGlvbihzZSl7cmV0dXJuIHNlPj0yMDAmJnNlPDMwMH0saGVhZGVy''@;'; + put 'put ''czp7Y29tbW9uOntBY2NlcHQ6ImFwcGxpY2F0aW9uL2pzb24sIHRleHQvcGxhaW4sICovKiJ9fX07YWUuZm9yRWFjaChbImRlbGV0ZSIsImdldCIsImhlYWQiXSxmdW5jdGlvbihzZSl7Si5oZWFkZXJzW3NlXT17fX0pLGFlLmZvckVhY2goWyJwb3N0IiwicHV0IiwicGF0Y2giXSxmdW5jdGlv''@;'; + put 'put ''bihzZSl7Si5oZWFkZXJzW3NlXT1hZS5tZXJnZShOKX0pLFUuZXhwb3J0cz1KfSw3Mjg4OlU9PntVLmV4cG9ydHM9e3ZlcnNpb246IjAuMjYuMCJ9fSwxODQ5OlU9PnsidXNlIHN0cmljdCI7VS5leHBvcnRzPWZ1bmN0aW9uKFEsWil7cmV0dXJuIGZ1bmN0aW9uKCl7Zm9yKHZhciBpZT1uZXcg''@;'; + put 'put ''QXJyYXkoYXJndW1lbnRzLmxlbmd0aCksYWU9MDthZTxpZS5sZW5ndGg7YWUrKylpZVthZV09YXJndW1lbnRzW2FlXTtyZXR1cm4gUS5hcHBseShaLGllKX19fSw1MzI3OihVLFEsWik9PnsidXNlIHN0cmljdCI7dmFyIGllPVooNDg2Nyk7ZnVuY3Rpb24gYWUoWSl7cmV0dXJuIGVuY29kZVVS''@;'; + put 'put ''SUNvbXBvbmVudChZKS5yZXBsYWNlKC8lM0EvZ2ksIjoiKS5yZXBsYWNlKC8lMjQvZywiJCIpLnJlcGxhY2UoLyUyQy9naSwiLCIpLnJlcGxhY2UoLyUyMC9nLCIrIikucmVwbGFjZSgvJTVCL2dpLCJbIikucmVwbGFjZSgvJTVEL2dpLCJdIil9VS5leHBvcnRzPWZ1bmN0aW9uKFksVyxOKXtp''@;'; + put 'put ''ZighVylyZXR1cm4gWTt2YXIgZWU7aWYoTillZT1OKFcpO2Vsc2UgaWYoaWUuaXNVUkxTZWFyY2hQYXJhbXMoVykpZWU9Vy50b1N0cmluZygpO2Vsc2V7dmFyIHE9W107aWUuZm9yRWFjaChXLGZ1bmN0aW9uKHNlLG9lKXtudWxsIT1zZSYmKGllLmlzQXJyYXkoc2UpP29lKz0iW10iOnNlPVtz''@;'; + put 'put ''ZV0saWUuZm9yRWFjaChzZSxmdW5jdGlvbihjZSl7aWUuaXNEYXRlKGNlKT9jZT1jZS50b0lTT1N0cmluZygpOmllLmlzT2JqZWN0KGNlKSYmKGNlPUpTT04uc3RyaW5naWZ5KGNlKSkscS5wdXNoKGFlKG9lKSsiPSIrYWUoY2UpKX0pKX0pLGVlPXEuam9pbigiJiIpfWlmKGVlKXt2YXIgSj1Z''@;'; + put 'put ''LmluZGV4T2YoIiMiKTstMSE9PUomJihZPVkuc2xpY2UoMCxKKSksWSs9KC0xPT09WS5pbmRleE9mKCI/Iik/Ij8iOiImIikrZWV9cmV0dXJuIFl9fSw3MzAzOlU9PnsidXNlIHN0cmljdCI7VS5leHBvcnRzPWZ1bmN0aW9uKFEsWil7cmV0dXJuIFo/US5yZXBsYWNlKC9cLyskLywiIikrIi8i''@;'; + put 'put ''K1oucmVwbGFjZSgvXlwvKy8sIiIpOlF9fSw0MzcyOihVLFEsWik9PnsidXNlIHN0cmljdCI7dmFyIGllPVooNDg2Nyk7VS5leHBvcnRzPWllLmlzU3RhbmRhcmRCcm93c2VyRW52KCk/e3dyaXRlOmZ1bmN0aW9uKGFlLFksVyxOLGVlLHEpe3ZhciBKPVtdO0oucHVzaChhZSsiPSIrZW5jb2Rl''@;'; + put 'put ''VVJJQ29tcG9uZW50KFkpKSxpZS5pc051bWJlcihXKSYmSi5wdXNoKCJleHBpcmVzPSIrbmV3IERhdGUoVykudG9HTVRTdHJpbmcoKSksaWUuaXNTdHJpbmcoTikmJkoucHVzaCgicGF0aD0iK04pLGllLmlzU3RyaW5nKGVlKSYmSi5wdXNoKCJkb21haW49IitlZSksITA9PT1xJiZKLnB1c2go''@;'; + put 'put ''InNlY3VyZSIpLGRvY3VtZW50LmNvb2tpZT1KLmpvaW4oIjsgIil9LHJlYWQ6ZnVuY3Rpb24oYWUpe3ZhciBZPWRvY3VtZW50LmNvb2tpZS5tYXRjaChuZXcgUmVnRXhwKCIoXnw7XFxzKikoIithZSsiKT0oW147XSopIikpO3JldHVybiBZP2RlY29kZVVSSUNvbXBvbmVudChZWzNdKTpudWxs''@;'; + put 'put ''fSxyZW1vdmU6ZnVuY3Rpb24oYWUpe3RoaXMud3JpdGUoYWUsIiIsRGF0ZS5ub3coKS04NjRlNSl9fTp7d3JpdGU6ZnVuY3Rpb24oKXt9LHJlYWQ6ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbH0scmVtb3ZlOmZ1bmN0aW9uKCl7fX19LDE3OTM6VT0+eyJ1c2Ugc3RyaWN0IjtVLmV4cG9ydHM9ZnVu''@;'; + put 'put ''Y3Rpb24oUSl7cmV0dXJuL14oW2Etel1bYS16XGQrXC0uXSo6KT9cL1wvL2kudGVzdChRKX19LDYyNjg6KFUsUSxaKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgaWU9Wig0ODY3KTtVLmV4cG9ydHM9ZnVuY3Rpb24oYWUpe3JldHVybiBpZS5pc09iamVjdChhZSkmJiEwPT09YWUuaXNBeGlvc0Vycm9y''@;'; + put 'put ''fX0sNzk4NTooVSxRLFopPT57InVzZSBzdHJpY3QiO3ZhciBpZT1aKDQ4NjcpO1UuZXhwb3J0cz1pZS5pc1N0YW5kYXJkQnJvd3NlckVudigpP2Z1bmN0aW9uKCl7dmFyIGFlLFk9Lyhtc2llfHRyaWRlbnQpL2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSxXPWRvY3VtZW50LmNyZWF0ZUVs''@;'; + put 'put ''ZW1lbnQoImEiKTtmdW5jdGlvbiBOKGVlKXt2YXIgcT1lZTtyZXR1cm4gWSYmKFcuc2V0QXR0cmlidXRlKCJocmVmIixxKSxxPVcuaHJlZiksVy5zZXRBdHRyaWJ1dGUoImhyZWYiLHEpLHtocmVmOlcuaHJlZixwcm90b2NvbDpXLnByb3RvY29sP1cucHJvdG9jb2wucmVwbGFjZSgvOiQvLCIi''@;'; + put 'put ''KToiIixob3N0OlcuaG9zdCxzZWFyY2g6Vy5zZWFyY2g/Vy5zZWFyY2gucmVwbGFjZSgvXlw/LywiIik6IiIsaGFzaDpXLmhhc2g/Vy5oYXNoLnJlcGxhY2UoL14jLywiIik6IiIsaG9zdG5hbWU6Vy5ob3N0bmFtZSxwb3J0OlcucG9ydCxwYXRobmFtZToiLyI9PT1XLnBhdGhuYW1lLmNoYXJB''@;'; + put 'put ''dCgwKT9XLnBhdGhuYW1lOiIvIitXLnBhdGhuYW1lfX1yZXR1cm4gYWU9Tih3aW5kb3cubG9jYXRpb24uaHJlZiksZnVuY3Rpb24oZWUpe3ZhciBxPWllLmlzU3RyaW5nKGVlKT9OKGVlKTplZTtyZXR1cm4gcS5wcm90b2NvbD09PWFlLnByb3RvY29sJiZxLmhvc3Q9PT1hZS5ob3N0fX0oKTpm''@;'; + put 'put ''dW5jdGlvbigpe3JldHVybiEwfX0sNjAxNjooVSxRLFopPT57InVzZSBzdHJpY3QiO3ZhciBpZT1aKDQ4NjcpO1UuZXhwb3J0cz1mdW5jdGlvbihhZSxZKXtpZS5mb3JFYWNoKGFlLGZ1bmN0aW9uKFcsTil7TiE9PVkmJk4udG9VcHBlckNhc2UoKT09PVkudG9VcHBlckNhc2UoKSYmKGFlW1ld''@;'; + put 'put ''PVcsZGVsZXRlIGFlW05dKX0pfX0sNDEwOTooVSxRLFopPT57InVzZSBzdHJpY3QiO3ZhciBpZT1aKDQ4NjcpLGFlPVsiYWdlIiwiYXV0aG9yaXphdGlvbiIsImNvbnRlbnQtbGVuZ3RoIiwiY29udGVudC10eXBlIiwiZXRhZyIsImV4cGlyZXMiLCJmcm9tIiwiaG9zdCIsImlmLW1vZGlmaWVk''@;'; + put 'put ''LXNpbmNlIiwiaWYtdW5tb2RpZmllZC1zaW5jZSIsImxhc3QtbW9kaWZpZWQiLCJsb2NhdGlvbiIsIm1heC1mb3J3YXJkcyIsInByb3h5LWF1dGhvcml6YXRpb24iLCJyZWZlcmVyIiwicmV0cnktYWZ0ZXIiLCJ1c2VyLWFnZW50Il07VS5leHBvcnRzPWZ1bmN0aW9uKFkpe3ZhciBXLE4sZWUs''@;'; + put 'put ''cT17fTtyZXR1cm4gWSYmaWUuZm9yRWFjaChZLnNwbGl0KCJcbiIpLGZ1bmN0aW9uKEope2lmKGVlPUouaW5kZXhPZigiOiIpLFc9aWUudHJpbShKLnN1YnN0cigwLGVlKSkudG9Mb3dlckNhc2UoKSxOPWllLnRyaW0oSi5zdWJzdHIoZWUrMSkpLFcpe2lmKHFbV10mJmFlLmluZGV4T2YoVyk+''@;'; + put 'put ''PTApcmV0dXJuO3FbV109InNldC1jb29raWUiPT09Vz8ocVtXXT9xW1ddOltdKS5jb25jYXQoW05dKTpxW1ddP3FbV10rIiwgIitOOk59fSkscX19LDg3MTM6VT0+eyJ1c2Ugc3RyaWN0IjtVLmV4cG9ydHM9ZnVuY3Rpb24oUSl7cmV0dXJuIGZ1bmN0aW9uKFope3JldHVybiBRLmFwcGx5KG51''@;'; + put 'put ''bGwsWil9fX0sNDg3NTooVSxRLFopPT57InVzZSBzdHJpY3QiO3ZhciBpZT1aKDUxMDgpLGFlPVooNzI4OCkudmVyc2lvbixZPXt9O1sib2JqZWN0IiwiYm9vbGVhbiIsIm51bWJlciIsImZ1bmN0aW9uIiwic3RyaW5nIiwic3ltYm9sIl0uZm9yRWFjaChmdW5jdGlvbihOLGVlKXtZW05dPWZ1''@;'; + put 'put ''bmN0aW9uKHEpe3JldHVybiB0eXBlb2YgcT09PU58fCJhIisoZWU8MT8ibiAiOiIgIikrTn19KTt2YXIgVz17fTtZLnRyYW5zaXRpb25hbD1mdW5jdGlvbihOLGVlLHEpe2Z1bmN0aW9uIEooc2Usb2Upe3JldHVybiJbQXhpb3MgdiIrYWUrIl0gVHJhbnNpdGlvbmFsIG9wdGlvbiAnIitzZSsi''@;'; + put 'put ''JyIrb2UrKHE/Ii4gIitxOiIiKX1yZXR1cm4gZnVuY3Rpb24oc2Usb2UsY2Upe2lmKCExPT09Til0aHJvdyBuZXcgRXJyb3IoSihvZSwiIGhhcyBiZWVuIHJlbW92ZWQiKyhlZT8iIGluICIrZWU6IiIpKSk7cmV0dXJuIGVlJiYhV1tvZV0mJihXW29lXT0hMCxpZS53YXJuKEoob2UsIiBoYXMg''@;'; + put 'put ''YmVlbiBkZXByZWNhdGVkIHNpbmNlIHYiK2VlKyIgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmVhciBmdXR1cmUiKSkpLCFOfHxOKHNlLG9lLGNlKX19LFUuZXhwb3J0cz17YXNzZXJ0T3B0aW9uczpmdW5jdGlvbihOLGVlLHEpe2lmKCJvYmplY3QiIT10eXBlb2YgTil0aHJvdyBuZXcg''@;'; + put 'put ''VHlwZUVycm9yKCJvcHRpb25zIG11c3QgYmUgYW4gb2JqZWN0Iik7Zm9yKHZhciBKPU9iamVjdC5rZXlzKE4pLHNlPUoubGVuZ3RoO3NlLS0gPjA7KXt2YXIgb2U9SltzZV0sY2U9ZWVbb2VdO2lmKGNlKXt2YXIgZGU9TltvZV0sdmU9dm9pZCAwPT09ZGV8fGNlKGRlLG9lLE4pO2lmKCEwIT09''@;'; + put 'put ''dmUpdGhyb3cgbmV3IFR5cGVFcnJvcigib3B0aW9uICIrb2UrIiBtdXN0IGJlICIrdmUpfWVsc2UgaWYoITAhPT1xKXRocm93IEVycm9yKCJVbmtub3duIG9wdGlvbiAiK29lKX19LHZhbGlkYXRvcnM6WX19LDQ4Njc6KFUsUSxaKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgaWU9WigxODQ5KSxhZT1P''@;'; + put 'put ''YmplY3QucHJvdG90eXBlLnRvU3RyaW5nO2Z1bmN0aW9uIFkob2Upe3JldHVybiBBcnJheS5pc0FycmF5KG9lKX1mdW5jdGlvbiBXKG9lKXtyZXR1cm4gdm9pZCAwPT09b2V9ZnVuY3Rpb24gTihvZSl7cmV0dXJuIltvYmplY3QgQXJyYXlCdWZmZXJdIj09PWFlLmNhbGwob2UpfWZ1bmN0aW9u''@;'; + put 'put ''IGVlKG9lKXtyZXR1cm4gbnVsbCE9PW9lJiYib2JqZWN0Ij09dHlwZW9mIG9lfWZ1bmN0aW9uIHEob2Upe2lmKCJbb2JqZWN0IE9iamVjdF0iIT09YWUuY2FsbChvZSkpcmV0dXJuITE7dmFyIGNlPU9iamVjdC5nZXRQcm90b3R5cGVPZihvZSk7cmV0dXJuIG51bGw9PT1jZXx8Y2U9PT1PYmpl''@;'; + put 'put ''Y3QucHJvdG90eXBlfWZ1bmN0aW9uIEoob2Upe3JldHVybiJbb2JqZWN0IEZ1bmN0aW9uXSI9PT1hZS5jYWxsKG9lKX1mdW5jdGlvbiBzZShvZSxjZSl7aWYobnVsbCE9b2UpaWYoIm9iamVjdCIhPXR5cGVvZiBvZSYmKG9lPVtvZV0pLFkob2UpKWZvcih2YXIgZGU9MCx2ZT1vZS5sZW5ndGg7''@;'; + put 'put ''ZGU8dmU7ZGUrKyljZS5jYWxsKG51bGwsb2VbZGVdLGRlLG9lKTtlbHNlIGZvcih2YXIgQWUgaW4gb2UpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9lLEFlKSYmY2UuY2FsbChudWxsLG9lW0FlXSxBZSxvZSl9VS5leHBvcnRzPXtpc0FycmF5OlksaXNBcnJheUJ1ZmZl''@;'; + put 'put ''cjpOLGlzQnVmZmVyOmZ1bmN0aW9uKG9lKXtyZXR1cm4gbnVsbCE9PW9lJiYhVyhvZSkmJm51bGwhPT1vZS5jb25zdHJ1Y3RvciYmIVcob2UuY29uc3RydWN0b3IpJiYiZnVuY3Rpb24iPT10eXBlb2Ygb2UuY29uc3RydWN0b3IuaXNCdWZmZXImJm9lLmNvbnN0cnVjdG9yLmlzQnVmZmVyKG9l''@;'; + put 'put ''KX0saXNGb3JtRGF0YTpmdW5jdGlvbihvZSl7cmV0dXJuIltvYmplY3QgRm9ybURhdGFdIj09PWFlLmNhbGwob2UpfSxpc0FycmF5QnVmZmVyVmlldzpmdW5jdGlvbihvZSl7cmV0dXJuInVuZGVmaW5lZCIhPXR5cGVvZiBBcnJheUJ1ZmZlciYmQXJyYXlCdWZmZXIuaXNWaWV3P0FycmF5QnVm''@;'; + put 'put ''ZmVyLmlzVmlldyhvZSk6b2UmJm9lLmJ1ZmZlciYmTihvZS5idWZmZXIpfSxpc1N0cmluZzpmdW5jdGlvbihvZSl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBvZX0saXNOdW1iZXI6ZnVuY3Rpb24ob2Upe3JldHVybiJudW1iZXIiPT10eXBlb2Ygb2V9LGlzT2JqZWN0OmVlLGlzUGxhaW5PYmpl''@;'; + put 'put ''Y3Q6cSxpc1VuZGVmaW5lZDpXLGlzRGF0ZTpmdW5jdGlvbihvZSl7cmV0dXJuIltvYmplY3QgRGF0ZV0iPT09YWUuY2FsbChvZSl9LGlzRmlsZTpmdW5jdGlvbihvZSl7cmV0dXJuIltvYmplY3QgRmlsZV0iPT09YWUuY2FsbChvZSl9LGlzQmxvYjpmdW5jdGlvbihvZSl7cmV0dXJuIltvYmpl''@;'; + put 'put ''Y3QgQmxvYl0iPT09YWUuY2FsbChvZSl9LGlzRnVuY3Rpb246Sixpc1N0cmVhbTpmdW5jdGlvbihvZSl7cmV0dXJuIGVlKG9lKSYmSihvZS5waXBlKX0saXNVUkxTZWFyY2hQYXJhbXM6ZnVuY3Rpb24ob2Upe3JldHVybiJbb2JqZWN0IFVSTFNlYXJjaFBhcmFtc10iPT09YWUuY2FsbChvZSl9''@;'; + put 'put ''LGlzU3RhbmRhcmRCcm93c2VyRW52OmZ1bmN0aW9uKCl7cmV0dXJuKCJ1bmRlZmluZWQiPT10eXBlb2YgbmF2aWdhdG9yfHwiUmVhY3ROYXRpdmUiIT09bmF2aWdhdG9yLnByb2R1Y3QmJiJOYXRpdmVTY3JpcHQiIT09bmF2aWdhdG9yLnByb2R1Y3QmJiJOUyIhPT1uYXZpZ2F0b3IucHJvZHVj''@;'; + put 'put ''dCkmJiJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiYidW5kZWZpbmVkIiE9dHlwZW9mIGRvY3VtZW50fSxmb3JFYWNoOnNlLG1lcmdlOmZ1bmN0aW9uIG9lKCl7dmFyIGNlPXt9O2Z1bmN0aW9uIGRlKGtlLFNlKXtjZVtTZV09cShjZVtTZV0pJiZxKGtlKT9vZShjZVtTZV0sa2UpOnEoa2Up''@;'; + put 'put ''P29lKHt9LGtlKTpZKGtlKT9rZS5zbGljZSgpOmtlfWZvcih2YXIgdmU9MCxBZT1hcmd1bWVudHMubGVuZ3RoO3ZlPEFlO3ZlKyspc2UoYXJndW1lbnRzW3ZlXSxkZSk7cmV0dXJuIGNlfSxleHRlbmQ6ZnVuY3Rpb24ob2UsY2UsZGUpe3JldHVybiBzZShjZSxmdW5jdGlvbih2ZSxBZSl7b2Vb''@;'; + put 'put ''QWVdPWRlJiYiZnVuY3Rpb24iPT10eXBlb2YgdmU/aWUodmUsZGUpOnZlfSksb2V9LHRyaW06ZnVuY3Rpb24ob2Upe3JldHVybiBvZS50cmltP29lLnRyaW0oKTpvZS5yZXBsYWNlKC9eXHMrfFxzKyQvZywiIil9LHN0cmlwQk9NOmZ1bmN0aW9uKG9lKXtyZXR1cm4gNjUyNzk9PT1vZS5jaGFy''@;'; + put 'put ''Q29kZUF0KDApJiYob2U9b2Uuc2xpY2UoMSkpLG9lfX19LDU2MjM6VT0+eyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBRKGFlLFksVyl7YWUgaW5zdGFuY2VvZiBSZWdFeHAmJihhZT1aKGFlLFcpKSxZIGluc3RhbmNlb2YgUmVnRXhwJiYoWT1aKFksVykpO3ZhciBOPWllKGFlLFksVyk7cmV0dXJu''@;'; + put 'put ''IE4mJntzdGFydDpOWzBdLGVuZDpOWzFdLHByZTpXLnNsaWNlKDAsTlswXSksYm9keTpXLnNsaWNlKE5bMF0rYWUubGVuZ3RoLE5bMV0pLHBvc3Q6Vy5zbGljZShOWzFdK1kubGVuZ3RoKX19ZnVuY3Rpb24gWihhZSxZKXt2YXIgVz1ZLm1hdGNoKGFlKTtyZXR1cm4gVz9XWzBdOm51bGx9ZnVu''@;'; + put 'put ''Y3Rpb24gaWUoYWUsWSxXKXt2YXIgTixlZSxxLEosc2Usb2U9Vy5pbmRleE9mKGFlKSxjZT1XLmluZGV4T2YoWSxvZSsxKSxkZT1vZTtpZihvZT49MCYmY2U+MCl7aWYoYWU9PT1ZKXJldHVybltvZSxjZV07Zm9yKE49W10scT1XLmxlbmd0aDtkZT49MCYmIXNlOylkZT09b2U/KE4ucHVzaChk''@;'; + put 'put ''ZSksb2U9Vy5pbmRleE9mKGFlLGRlKzEpKToxPT1OLmxlbmd0aD9zZT1bTi5wb3AoKSxjZV06KChlZT1OLnBvcCgpKTxxJiYocT1lZSxKPWNlKSxjZT1XLmluZGV4T2YoWSxkZSsxKSksZGU9b2U8Y2UmJm9lPj0wP29lOmNlO04ubGVuZ3RoJiYoc2U9W3EsSl0pfXJldHVybiBzZX1VLmV4cG9y''@;'; + put 'put ''dHM9USxRLnJhbmdlPWllfSw5NzQyOihVLFEpPT57InVzZSBzdHJpY3QiO1EuYnl0ZUxlbmd0aD1mdW5jdGlvbihKKXt2YXIgc2U9ZWUoSiksY2U9c2VbMV07cmV0dXJuIDMqKHNlWzBdK2NlKS80LWNlfSxRLnRvQnl0ZUFycmF5PWZ1bmN0aW9uKEope3ZhciBzZSxvZSxFZSxjZT1lZShKKSxk''@;'; + put 'put ''ZT1jZVswXSx2ZT1jZVsxXSxBZT1uZXcgYWUoMyooZGUrKEVlPXZlKSkvNC1FZSksa2U9MCxTZT12ZT4wP2RlLTQ6ZGU7Zm9yKG9lPTA7b2U8U2U7b2UrPTQpc2U9aWVbSi5jaGFyQ29kZUF0KG9lKV08PDE4fGllW0ouY2hhckNvZGVBdChvZSsxKV08PDEyfGllW0ouY2hhckNvZGVBdChvZSsy''@;'; + put 'put ''KV08PDZ8aWVbSi5jaGFyQ29kZUF0KG9lKzMpXSxBZVtrZSsrXT1zZT4+MTYmMjU1LEFlW2tlKytdPXNlPj44JjI1NSxBZVtrZSsrXT0yNTUmc2U7cmV0dXJuIDI9PT12ZSYmKHNlPWllW0ouY2hhckNvZGVBdChvZSldPDwyfGllW0ouY2hhckNvZGVBdChvZSsxKV0+PjQsQWVba2UrK109MjU1''@;'; + put 'put ''JnNlKSwxPT09dmUmJihzZT1pZVtKLmNoYXJDb2RlQXQob2UpXTw8MTB8aWVbSi5jaGFyQ29kZUF0KG9lKzEpXTw8NHxpZVtKLmNoYXJDb2RlQXQob2UrMildPj4yLEFlW2tlKytdPXNlPj44JjI1NSxBZVtrZSsrXT0yNTUmc2UpLEFlfSxRLmZyb21CeXRlQXJyYXk9ZnVuY3Rpb24oSil7Zm9y''@;'; + put 'put ''KHZhciBzZSxvZT1KLmxlbmd0aCxjZT1vZSUzLGRlPVtdLEFlPTAsa2U9b2UtY2U7QWU8a2U7QWUrPTE2MzgzKWRlLnB1c2gocShKLEFlLEFlKzE2MzgzPmtlP2tlOkFlKzE2MzgzKSk7cmV0dXJuIDE9PT1jZT9kZS5wdXNoKFpbKHNlPUpbb2UtMV0pPj4yXStaW3NlPDw0JjYzXSsiPT0iKToy''@;'; + put 'put ''PT09Y2UmJmRlLnB1c2goWlsoc2U9KEpbb2UtMl08PDgpK0pbb2UtMV0pPj4xMF0rWltzZT4+NCY2M10rWltzZTw8MiY2M10rIj0iKSxkZS5qb2luKCIiKX07Zm9yKHZhciBaPVtdLGllPVtdLGFlPSJ1bmRlZmluZWQiIT10eXBlb2YgVWludDhBcnJheT9VaW50OEFycmF5OkFycmF5LFk9IkFC''@;'; + put 'put ''Q0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky8iLFc9MCxOPVkubGVuZ3RoO1c8TjsrK1cpWltXXT1ZW1ddLGllW1kuY2hhckNvZGVBdChXKV09VztmdW5jdGlvbiBlZShKKXt2YXIgc2U9Si5sZW5ndGg7aWYoc2UlND4wKXRocm93''@;'; + put 'put ''IG5ldyBFcnJvcigiSW52YWxpZCBzdHJpbmcuIExlbmd0aCBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgNCIpO3ZhciBvZT1KLmluZGV4T2YoIj0iKTtyZXR1cm4tMT09PW9lJiYob2U9c2UpLFtvZSxvZT09PXNlPzA6NC1vZSU0XX1mdW5jdGlvbiBxKEosc2Usb2Upe2Zvcih2YXIgZGUsdmU9W10s''@;'; + put 'put ''QWU9c2U7QWU8b2U7QWUrPTMpdmUucHVzaChaWyhkZT0oSltBZV08PDE2JjE2NzExNjgwKSsoSltBZSsxXTw8OCY2NTI4MCkrKDI1NSZKW0FlKzJdKSk+PjE4JjYzXStaW2RlPj4xMiY2M10rWltkZT4+NiY2M10rWls2MyZkZV0pO3JldHVybiB2ZS5qb2luKCIiKX1pZVsiLSIuY2hhckNvZGVB''@;'; + put 'put ''dCgwKV09NjIsaWVbIl8iLmNoYXJDb2RlQXQoMCldPTYzfSwzNTUwOmZ1bmN0aW9uKFUsUSxaKXshZnVuY3Rpb24oaWUsYWUpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBZKFQsUyl7aWYoIVQpdGhyb3cgbmV3IEVycm9yKFN8fCJBc3NlcnRpb24gZmFpbGVkIil9ZnVuY3Rpb24gVyhULFMpe1Qu''@;'; + put 'put ''c3VwZXJfPVM7dmFyIEY9ZnVuY3Rpb24oKXt9O0YucHJvdG90eXBlPVMucHJvdG90eXBlLFQucHJvdG90eXBlPW5ldyBGLFQucHJvdG90eXBlLmNvbnN0cnVjdG9yPVR9ZnVuY3Rpb24gTihULFMsRil7aWYoTi5pc0JOKFQpKXJldHVybiBUO3RoaXMubmVnYXRpdmU9MCx0aGlzLndvcmRzPW51''@;'; + put 'put ''bGwsdGhpcy5sZW5ndGg9MCx0aGlzLnJlZD1udWxsLG51bGwhPT1UJiYoImxlIiE9PVMmJiJiZSIhPT1TfHwoRj1TLFM9MTApLHRoaXMuX2luaXQoVHx8MCxTfHwxMCxGfHwiYmUiKSl9dmFyIGVlOyJvYmplY3QiPT10eXBlb2YgaWU/aWUuZXhwb3J0cz1OOmFlLkJOPU4sTi5CTj1OLE4ud29y''@;'; + put 'put ''ZFNpemU9MjY7dHJ5e2VlPSJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiZ2b2lkIDAhPT13aW5kb3cuQnVmZmVyP3dpbmRvdy5CdWZmZXI6Wig2NjAxKS5CdWZmZXJ9Y2F0Y2goVCl7fWZ1bmN0aW9uIHEoVCxTKXt2YXIgRj1ULmNoYXJDb2RlQXQoUyk7cmV0dXJuIEY+PTQ4JiZGPD01Nz9G''@;'; + put 'put ''LTQ4OkY+PTY1JiZGPD03MD9GLTU1OkY+PTk3JiZGPD0xMDI/Ri04Nzp2b2lkIFkoITEsIkludmFsaWQgY2hhcmFjdGVyIGluICIrVCl9ZnVuY3Rpb24gSihULFMsRil7dmFyIHllPXEoVCxGKTtyZXR1cm4gRi0xPj1TJiYoeWV8PXEoVCxGLTEpPDw0KSx5ZX1mdW5jdGlvbiBzZShULFMsRix5''@;'; + put 'put ''ZSl7Zm9yKHZhciBDZT0wLERlPTAsUGU9TWF0aC5taW4oVC5sZW5ndGgsRiksUWU9UztRZTxQZTtRZSsrKXt2YXIgJGU9VC5jaGFyQ29kZUF0KFFlKS00ODtDZSo9eWUsRGU9JGU+PTQ5PyRlLTQ5KzEwOiRlPj0xNz8kZS0xNysxMDokZSxZKCRlPj0wJiZEZTx5ZSwiSW52YWxpZCBjaGFyYWN0''@;'; + put 'put ''ZXIiKSxDZSs9RGV9cmV0dXJuIENlfWZ1bmN0aW9uIG9lKFQsUyl7VC53b3Jkcz1TLndvcmRzLFQubGVuZ3RoPVMubGVuZ3RoLFQubmVnYXRpdmU9Uy5uZWdhdGl2ZSxULnJlZD1TLnJlZH1pZihOLmlzQk49ZnVuY3Rpb24oVCl7cmV0dXJuIFQgaW5zdGFuY2VvZiBOfHxudWxsIT09VCYmIm9i''@;'; + put 'put ''amVjdCI9PXR5cGVvZiBUJiZULmNvbnN0cnVjdG9yLndvcmRTaXplPT09Ti53b3JkU2l6ZSYmQXJyYXkuaXNBcnJheShULndvcmRzKX0sTi5tYXg9ZnVuY3Rpb24oVCxTKXtyZXR1cm4gVC5jbXAoUyk+MD9UOlN9LE4ubWluPWZ1bmN0aW9uKFQsUyl7cmV0dXJuIFQuY21wKFMpPDA/VDpTfSxO''@;'; + put 'put ''LnByb3RvdHlwZS5faW5pdD1mdW5jdGlvbihULFMsRil7aWYoIm51bWJlciI9PXR5cGVvZiBUKXJldHVybiB0aGlzLl9pbml0TnVtYmVyKFQsUyxGKTtpZigib2JqZWN0Ij09dHlwZW9mIFQpcmV0dXJuIHRoaXMuX2luaXRBcnJheShULFMsRik7ImhleCI9PT1TJiYoUz0xNiksWShTPT09KDB8''@;'; + put 'put ''UykmJlM+PTImJlM8PTM2KTt2YXIgeWU9MDsiLSI9PT0oVD1ULnRvU3RyaW5nKCkucmVwbGFjZSgvXHMrL2csIiIpKVswXSYmKHllKyssdGhpcy5uZWdhdGl2ZT0xKSx5ZTxULmxlbmd0aCYmKDE2PT09Uz90aGlzLl9wYXJzZUhleChULHllLEYpOih0aGlzLl9wYXJzZUJhc2UoVCxTLHllKSwi''@;'; + put 'put ''bGUiPT09RiYmdGhpcy5faW5pdEFycmF5KHRoaXMudG9BcnJheSgpLFMsRikpKX0sTi5wcm90b3R5cGUuX2luaXROdW1iZXI9ZnVuY3Rpb24oVCxTLEYpe1Q8MCYmKHRoaXMubmVnYXRpdmU9MSxUPS1UKSxUPDY3MTA4ODY0Pyh0aGlzLndvcmRzPVs2NzEwODg2MyZUXSx0aGlzLmxlbmd0aD0x''@;'; + put 'put ''KTpUPDQ1MDM1OTk2MjczNzA0OTY/KHRoaXMud29yZHM9WzY3MTA4ODYzJlQsVC82NzEwODg2NCY2NzEwODg2M10sdGhpcy5sZW5ndGg9Mik6KFkoVDw5MDA3MTk5MjU0NzQwOTkyKSx0aGlzLndvcmRzPVs2NzEwODg2MyZULFQvNjcxMDg4NjQmNjcxMDg4NjMsMV0sdGhpcy5sZW5ndGg9Myks''@;'; + put 'put ''ImxlIj09PUYmJnRoaXMuX2luaXRBcnJheSh0aGlzLnRvQXJyYXkoKSxTLEYpfSxOLnByb3RvdHlwZS5faW5pdEFycmF5PWZ1bmN0aW9uKFQsUyxGKXtpZihZKCJudW1iZXIiPT10eXBlb2YgVC5sZW5ndGgpLFQubGVuZ3RoPD0wKXJldHVybiB0aGlzLndvcmRzPVswXSx0aGlzLmxlbmd0aD0x''@;'; + put 'put ''LHRoaXM7dGhpcy5sZW5ndGg9TWF0aC5jZWlsKFQubGVuZ3RoLzMpLHRoaXMud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoKTtmb3IodmFyIHllPTA7eWU8dGhpcy5sZW5ndGg7eWUrKyl0aGlzLndvcmRzW3llXT0wO3ZhciBDZSxEZSxQZT0wO2lmKCJiZSI9PT1GKWZvcih5ZT1ULmxlbmd0''@;'; + put 'put ''aC0xLENlPTA7eWU+PTA7eWUtPTMpdGhpcy53b3Jkc1tDZV18PShEZT1UW3llXXxUW3llLTFdPDw4fFRbeWUtMl08PDE2KTw8UGUmNjcxMDg4NjMsdGhpcy53b3Jkc1tDZSsxXT1EZT4+PjI2LVBlJjY3MTA4ODYzLChQZSs9MjQpPj0yNiYmKFBlLT0yNixDZSsrKTtlbHNlIGlmKCJsZSI9PT1G''@;'; + put 'put ''KWZvcih5ZT0wLENlPTA7eWU8VC5sZW5ndGg7eWUrPTMpdGhpcy53b3Jkc1tDZV18PShEZT1UW3llXXxUW3llKzFdPDw4fFRbeWUrMl08PDE2KTw8UGUmNjcxMDg4NjMsdGhpcy53b3Jkc1tDZSsxXT1EZT4+PjI2LVBlJjY3MTA4ODYzLChQZSs9MjQpPj0yNiYmKFBlLT0yNixDZSsrKTtyZXR1''@;'; + put 'put ''cm4gdGhpcy5fc3RyaXAoKX0sTi5wcm90b3R5cGUuX3BhcnNlSGV4PWZ1bmN0aW9uKFQsUyxGKXt0aGlzLmxlbmd0aD1NYXRoLmNlaWwoKFQubGVuZ3RoLVMpLzYpLHRoaXMud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoKTtmb3IodmFyIHllPTA7eWU8dGhpcy5sZW5ndGg7eWUrKyl0aGlz''@;'; + put 'put ''LndvcmRzW3llXT0wO3ZhciBDZSxEZT0wLFBlPTA7aWYoImJlIj09PUYpZm9yKHllPVQubGVuZ3RoLTE7eWU+PVM7eWUtPTIpQ2U9SihULFMseWUpPDxEZSx0aGlzLndvcmRzW1BlXXw9NjcxMDg4NjMmQ2UsRGU+PTE4PyhEZS09MTgsdGhpcy53b3Jkc1tQZSs9MV18PUNlPj4+MjYpOkRlKz04''@;'; + put 'put ''O2Vsc2UgZm9yKHllPShULmxlbmd0aC1TKSUyPT0wP1MrMTpTO3llPFQubGVuZ3RoO3llKz0yKUNlPUooVCxTLHllKTw8RGUsdGhpcy53b3Jkc1tQZV18PTY3MTA4ODYzJkNlLERlPj0xOD8oRGUtPTE4LHRoaXMud29yZHNbUGUrPTFdfD1DZT4+PjI2KTpEZSs9ODt0aGlzLl9zdHJpcCgpfSxO''@;'; + put 'put ''LnByb3RvdHlwZS5fcGFyc2VCYXNlPWZ1bmN0aW9uKFQsUyxGKXt0aGlzLndvcmRzPVswXSx0aGlzLmxlbmd0aD0xO2Zvcih2YXIgeWU9MCxDZT0xO0NlPD02NzEwODg2MztDZSo9Uyl5ZSsrO3llLS0sQ2U9Q2UvU3wwO2Zvcih2YXIgRGU9VC5sZW5ndGgtRixQZT1EZSV5ZSxRZT1NYXRoLm1p''@;'; + put 'put ''bihEZSxEZS1QZSkrRiwkZT0wLGd0PUY7Z3Q8UWU7Z3QrPXllKSRlPXNlKFQsZ3QsZ3QreWUsUyksdGhpcy5pbXVsbihDZSksdGhpcy53b3Jkc1swXSskZTw2NzEwODg2ND90aGlzLndvcmRzWzBdKz0kZTp0aGlzLl9pYWRkbigkZSk7aWYoMCE9PVBlKXt2YXIgd3Q9MTtmb3IoJGU9c2UoVCxn''@;'; + put 'put ''dCxULmxlbmd0aCxTKSxndD0wO2d0PFBlO2d0Kyspd3QqPVM7dGhpcy5pbXVsbih3dCksdGhpcy53b3Jkc1swXSskZTw2NzEwODg2ND90aGlzLndvcmRzWzBdKz0kZTp0aGlzLl9pYWRkbigkZSl9dGhpcy5fc3RyaXAoKX0sTi5wcm90b3R5cGUuY29weT1mdW5jdGlvbihUKXtULndvcmRzPW5l''@;'; + put 'put ''dyBBcnJheSh0aGlzLmxlbmd0aCk7Zm9yKHZhciBTPTA7Uzx0aGlzLmxlbmd0aDtTKyspVC53b3Jkc1tTXT10aGlzLndvcmRzW1NdO1QubGVuZ3RoPXRoaXMubGVuZ3RoLFQubmVnYXRpdmU9dGhpcy5uZWdhdGl2ZSxULnJlZD10aGlzLnJlZH0sTi5wcm90b3R5cGUuX21vdmU9ZnVuY3Rpb24o''@;'; + put 'put ''VCl7b2UoVCx0aGlzKX0sTi5wcm90b3R5cGUuY2xvbmU9ZnVuY3Rpb24oKXt2YXIgVD1uZXcgTihudWxsKTtyZXR1cm4gdGhpcy5jb3B5KFQpLFR9LE4ucHJvdG90eXBlLl9leHBhbmQ9ZnVuY3Rpb24oVCl7Zm9yKDt0aGlzLmxlbmd0aDxUOyl0aGlzLndvcmRzW3RoaXMubGVuZ3RoKytdPTA7''@;'; + put 'put ''cmV0dXJuIHRoaXN9LE4ucHJvdG90eXBlLl9zdHJpcD1mdW5jdGlvbigpe2Zvcig7dGhpcy5sZW5ndGg+MSYmMD09PXRoaXMud29yZHNbdGhpcy5sZW5ndGgtMV07KXRoaXMubGVuZ3RoLS07cmV0dXJuIHRoaXMuX25vcm1TaWduKCl9LE4ucHJvdG90eXBlLl9ub3JtU2lnbj1mdW5jdGlvbigp''@;'; + put 'put ''e3JldHVybiAxPT09dGhpcy5sZW5ndGgmJjA9PT10aGlzLndvcmRzWzBdJiYodGhpcy5uZWdhdGl2ZT0wKSx0aGlzfSwidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbC5mb3IpdHJ5e04ucHJvdG90eXBlW1N5bWJvbC5mb3IoIm5vZGVqcy51dGls''@;'; + put 'put ''Lmluc3BlY3QuY3VzdG9tIildPWNlfWNhdGNoKFQpe04ucHJvdG90eXBlLmluc3BlY3Q9Y2V9ZWxzZSBOLnByb3RvdHlwZS5pbnNwZWN0PWNlO2Z1bmN0aW9uIGNlKCl7cmV0dXJuKHRoaXMucmVkPyI8Qk4tUjogIjoiPEJOOiAiKSt0aGlzLnRvU3RyaW5nKDE2KSsiPiJ9dmFyIGRlPVsiIiwi''@;'; + put 'put ''MCIsIjAwIiwiMDAwIiwiMDAwMCIsIjAwMDAwIiwiMDAwMDAwIiwiMDAwMDAwMCIsIjAwMDAwMDAwIiwiMDAwMDAwMDAwIiwiMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwIiwi''@;'; + put 'put ''MDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAw''@;'; + put 'put ''MDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCJdLHZlPVswLDAsMjUsMTYsMTIsMTEsMTAsOSw4LDgsNyw3LDcsNyw2LDYsNiw2LDYsNiw2LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDVdLEFlPVswLDAsMzM1''@;'; + put 'put ''NTQ0MzIsNDMwNDY3MjEsMTY3NzcyMTYsNDg4MjgxMjUsNjA0NjYxNzYsNDAzNTM2MDcsMTY3NzcyMTYsNDMwNDY3MjEsMWU3LDE5NDg3MTcxLDM1ODMxODA4LDYyNzQ4NTE3LDc1Mjk1MzYsMTEzOTA2MjUsMTY3NzcyMTYsMjQxMzc1NjksMzQwMTIyMjQsNDcwNDU4ODEsNjRlNiw0MDg0MTAx''@;'; + put 'put ''LDUxNTM2MzIsNjQzNjM0Myw3OTYyNjI0LDk3NjU2MjUsMTE4ODEzNzYsMTQzNDg5MDcsMTcyMTAzNjgsMjA1MTExNDksMjQzZTUsMjg2MjkxNTEsMzM1NTQ0MzIsMzkxMzUzOTMsNDU0MzU0MjQsNTI1MjE4NzUsNjA0NjYxNzZdO2Z1bmN0aW9uIGtlKFQsUyxGKXtGLm5lZ2F0aXZlPVMubmVn''@;'; + put 'put ''YXRpdmVeVC5uZWdhdGl2ZTt2YXIgeWU9VC5sZW5ndGgrUy5sZW5ndGh8MDtGLmxlbmd0aD15ZSx5ZT15ZS0xfDA7dmFyIENlPTB8VC53b3Jkc1swXSxEZT0wfFMud29yZHNbMF0sUGU9Q2UqRGUsJGU9UGUvNjcxMDg4NjR8MDtGLndvcmRzWzBdPTY3MTA4ODYzJlBlO2Zvcih2YXIgZ3Q9MTtn''@;'; + put 'put ''dDx5ZTtndCsrKXtmb3IodmFyIHd0PSRlPj4+MjYsbXQ9NjcxMDg4NjMmJGUsdnQ9TWF0aC5taW4oZ3QsUy5sZW5ndGgtMSksQXQ9TWF0aC5tYXgoMCxndC1ULmxlbmd0aCsxKTtBdDw9dnQ7QXQrKyl3dCs9KFBlPShDZT0wfFQud29yZHNbZ3QtQXR8MF0pKihEZT0wfFMud29yZHNbQXRdKStt''@;'; + put 'put ''dCkvNjcxMDg4NjR8MCxtdD02NzEwODg2MyZQZTtGLndvcmRzW2d0XT0wfG10LCRlPTB8d3R9cmV0dXJuIDAhPT0kZT9GLndvcmRzW2d0XT0wfCRlOkYubGVuZ3RoLS0sRi5fc3RyaXAoKX1OLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbihULFMpe3ZhciBGO2lmKFM9MHxTfHwxLDE2PT09''@;'; + put 'put ''KFQ9VHx8MTApfHwiaGV4Ij09PVQpe0Y9IiI7Zm9yKHZhciB5ZT0wLENlPTAsRGU9MDtEZTx0aGlzLmxlbmd0aDtEZSsrKXt2YXIgUGU9dGhpcy53b3Jkc1tEZV0sUWU9KDE2Nzc3MjE1JihQZTw8eWV8Q2UpKS50b1N0cmluZygxNik7Q2U9UGU+Pj4yNC15ZSYxNjc3NzIxNSwoeWUrPTIpPj0y''@;'; + put 'put ''NiYmKHllLT0yNixEZS0tKSxGPTAhPT1DZXx8RGUhPT10aGlzLmxlbmd0aC0xP2RlWzYtUWUubGVuZ3RoXStRZStGOlFlK0Z9Zm9yKDAhPT1DZSYmKEY9Q2UudG9TdHJpbmcoMTYpK0YpO0YubGVuZ3RoJVMhPTA7KUY9IjAiK0Y7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlJiYoRj0iLSIrRiks''@;'; + put 'put ''Rn1pZihUPT09KDB8VCkmJlQ+PTImJlQ8PTM2KXt2YXIgJGU9dmVbVF0sZ3Q9QWVbVF07Rj0iIjt2YXIgd3Q9dGhpcy5jbG9uZSgpO2Zvcih3dC5uZWdhdGl2ZT0wOyF3dC5pc1plcm8oKTspe3ZhciBtdD13dC5tb2RybihndCkudG9TdHJpbmcoVCk7Rj0od3Q9d3QuaWRpdm4oZ3QpKS5pc1pl''@;'; + put 'put ''cm8oKT9tdCtGOmRlWyRlLW10Lmxlbmd0aF0rbXQrRn1mb3IodGhpcy5pc1plcm8oKSYmKEY9IjAiK0YpO0YubGVuZ3RoJVMhPTA7KUY9IjAiK0Y7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlJiYoRj0iLSIrRiksRn1ZKCExLCJCYXNlIHNob3VsZCBiZSBiZXR3ZWVuIDIgYW5kIDM2Iil9LE4u''@;'; + put 'put ''cHJvdG90eXBlLnRvTnVtYmVyPWZ1bmN0aW9uKCl7dmFyIFQ9dGhpcy53b3Jkc1swXTtyZXR1cm4gMj09PXRoaXMubGVuZ3RoP1QrPTY3MTA4ODY0KnRoaXMud29yZHNbMV06Mz09PXRoaXMubGVuZ3RoJiYxPT09dGhpcy53b3Jkc1syXT9UKz00NTAzNTk5NjI3MzcwNDk2KzY3MTA4ODY0KnRo''@;'; + put 'put ''aXMud29yZHNbMV06dGhpcy5sZW5ndGg+MiYmWSghMSwiTnVtYmVyIGNhbiBvbmx5IHNhZmVseSBzdG9yZSB1cCB0byA1MyBiaXRzIiksMCE9PXRoaXMubmVnYXRpdmU/LVQ6VH0sTi5wcm90b3R5cGUudG9KU09OPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudG9TdHJpbmcoMTYsMil9LGVlJiYo''@;'; + put 'put ''Ti5wcm90b3R5cGUudG9CdWZmZXI9ZnVuY3Rpb24oVCxTKXtyZXR1cm4gdGhpcy50b0FycmF5TGlrZShlZSxULFMpfSksTi5wcm90b3R5cGUudG9BcnJheT1mdW5jdGlvbihULFMpe3JldHVybiB0aGlzLnRvQXJyYXlMaWtlKEFycmF5LFQsUyl9LE4ucHJvdG90eXBlLnRvQXJyYXlMaWtlPWZ1''@;'; + put 'put ''bmN0aW9uKFQsUyxGKXt0aGlzLl9zdHJpcCgpO3ZhciB5ZT10aGlzLmJ5dGVMZW5ndGgoKSxDZT1GfHxNYXRoLm1heCgxLHllKTtZKHllPD1DZSwiYnl0ZSBhcnJheSBsb25nZXIgdGhhbiBkZXNpcmVkIGxlbmd0aCIpLFkoQ2U+MCwiUmVxdWVzdGVkIGFycmF5IGxlbmd0aCA8PSAwIik7dmFy''@;'; + put 'put ''IFBlLFFlLERlPShRZT1DZSwoUGU9VCkuYWxsb2NVbnNhZmU/UGUuYWxsb2NVbnNhZmUoUWUpOm5ldyBQZShRZSkpO3JldHVybiB0aGlzWyJfdG9BcnJheUxpa2UiKygibGUiPT09Uz8iTEUiOiJCRSIpXShEZSx5ZSksRGV9LE4ucHJvdG90eXBlLl90b0FycmF5TGlrZUxFPWZ1bmN0aW9uKFQs''@;'; + put 'put ''Uyl7Zm9yKHZhciBGPTAseWU9MCxDZT0wLERlPTA7Q2U8dGhpcy5sZW5ndGg7Q2UrKyl7dmFyIFBlPXRoaXMud29yZHNbQ2VdPDxEZXx5ZTtUW0YrK109MjU1JlBlLEY8VC5sZW5ndGgmJihUW0YrK109UGU+PjgmMjU1KSxGPFQubGVuZ3RoJiYoVFtGKytdPVBlPj4xNiYyNTUpLDY9PT1EZT8o''@;'; + put 'put ''RjxULmxlbmd0aCYmKFRbRisrXT1QZT4+MjQmMjU1KSx5ZT0wLERlPTApOih5ZT1QZT4+PjI0LERlKz0yKX1pZihGPFQubGVuZ3RoKWZvcihUW0YrK109eWU7RjxULmxlbmd0aDspVFtGKytdPTB9LE4ucHJvdG90eXBlLl90b0FycmF5TGlrZUJFPWZ1bmN0aW9uKFQsUyl7Zm9yKHZhciBGPVQu''@;'; + put 'put ''bGVuZ3RoLTEseWU9MCxDZT0wLERlPTA7Q2U8dGhpcy5sZW5ndGg7Q2UrKyl7dmFyIFBlPXRoaXMud29yZHNbQ2VdPDxEZXx5ZTtUW0YtLV09MjU1JlBlLEY+PTAmJihUW0YtLV09UGU+PjgmMjU1KSxGPj0wJiYoVFtGLS1dPVBlPj4xNiYyNTUpLDY9PT1EZT8oRj49MCYmKFRbRi0tXT1QZT4+''@;'; + put 'put ''MjQmMjU1KSx5ZT0wLERlPTApOih5ZT1QZT4+PjI0LERlKz0yKX1pZihGPj0wKWZvcihUW0YtLV09eWU7Rj49MDspVFtGLS1dPTB9LE4ucHJvdG90eXBlLl9jb3VudEJpdHM9TWF0aC5jbHozMj9mdW5jdGlvbihUKXtyZXR1cm4gMzItTWF0aC5jbHozMihUKX06ZnVuY3Rpb24oVCl7dmFyIFM9''@;'; + put 'put ''VCxGPTA7cmV0dXJuIFM+PTQwOTYmJihGKz0xMyxTPj4+PTEzKSxTPj02NCYmKEYrPTcsUz4+Pj03KSxTPj04JiYoRis9NCxTPj4+PTQpLFM+PTImJihGKz0yLFM+Pj49MiksRitTfSxOLnByb3RvdHlwZS5femVyb0JpdHM9ZnVuY3Rpb24oVCl7aWYoMD09PVQpcmV0dXJuIDI2O3ZhciBTPVQs''@;'; + put 'put ''Rj0wO3JldHVybiAwPT0oODE5MSZTKSYmKEYrPTEzLFM+Pj49MTMpLDA9PSgxMjcmUykmJihGKz03LFM+Pj49NyksMD09KDE1JlMpJiYoRis9NCxTPj4+PTQpLDA9PSgzJlMpJiYoRis9MixTPj4+PTIpLDA9PSgxJlMpJiZGKyssRn0sTi5wcm90b3R5cGUuYml0TGVuZ3RoPWZ1bmN0aW9uKCl7''@;'; + put 'put ''dmFyIFM9dGhpcy5fY291bnRCaXRzKHRoaXMud29yZHNbdGhpcy5sZW5ndGgtMV0pO3JldHVybiAyNioodGhpcy5sZW5ndGgtMSkrU30sTi5wcm90b3R5cGUuemVyb0JpdHM9ZnVuY3Rpb24oKXtpZih0aGlzLmlzWmVybygpKXJldHVybiAwO2Zvcih2YXIgVD0wLFM9MDtTPHRoaXMubGVuZ3Ro''@;'; + put 'put ''O1MrKyl7dmFyIEY9dGhpcy5femVyb0JpdHModGhpcy53b3Jkc1tTXSk7aWYoVCs9RiwyNiE9PUYpYnJlYWt9cmV0dXJuIFR9LE4ucHJvdG90eXBlLmJ5dGVMZW5ndGg9ZnVuY3Rpb24oKXtyZXR1cm4gTWF0aC5jZWlsKHRoaXMuYml0TGVuZ3RoKCkvOCl9LE4ucHJvdG90eXBlLnRvVHdvcz1m''@;'; + put 'put ''dW5jdGlvbihUKXtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmU/dGhpcy5hYnMoKS5pbm90bihUKS5pYWRkbigxKTp0aGlzLmNsb25lKCl9LE4ucHJvdG90eXBlLmZyb21Ud29zPWZ1bmN0aW9uKFQpe3JldHVybiB0aGlzLnRlc3RuKFQtMSk/dGhpcy5ub3RuKFQpLmlhZGRuKDEpLmluZWcoKTp0''@;'; + put 'put ''aGlzLmNsb25lKCl9LE4ucHJvdG90eXBlLmlzTmVnPWZ1bmN0aW9uKCl7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlfSxOLnByb3RvdHlwZS5uZWc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmluZWcoKX0sTi5wcm90b3R5cGUuaW5lZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmlz''@;'; + put 'put ''WmVybygpfHwodGhpcy5uZWdhdGl2ZV49MSksdGhpc30sTi5wcm90b3R5cGUuaXVvcj1mdW5jdGlvbihUKXtmb3IoO3RoaXMubGVuZ3RoPFQubGVuZ3RoOyl0aGlzLndvcmRzW3RoaXMubGVuZ3RoKytdPTA7Zm9yKHZhciBTPTA7UzxULmxlbmd0aDtTKyspdGhpcy53b3Jkc1tTXT10aGlzLndv''@;'; + put 'put ''cmRzW1NdfFQud29yZHNbU107cmV0dXJuIHRoaXMuX3N0cmlwKCl9LE4ucHJvdG90eXBlLmlvcj1mdW5jdGlvbihUKXtyZXR1cm4gWSgwPT0odGhpcy5uZWdhdGl2ZXxULm5lZ2F0aXZlKSksdGhpcy5pdW9yKFQpfSxOLnByb3RvdHlwZS5vcj1mdW5jdGlvbihUKXtyZXR1cm4gdGhpcy5sZW5n''@;'; + put 'put ''dGg+VC5sZW5ndGg/dGhpcy5jbG9uZSgpLmlvcihUKTpULmNsb25lKCkuaW9yKHRoaXMpfSxOLnByb3RvdHlwZS51b3I9ZnVuY3Rpb24oVCl7cmV0dXJuIHRoaXMubGVuZ3RoPlQubGVuZ3RoP3RoaXMuY2xvbmUoKS5pdW9yKFQpOlQuY2xvbmUoKS5pdW9yKHRoaXMpfSxOLnByb3RvdHlwZS5p''@;'; + put 'put ''dWFuZD1mdW5jdGlvbihUKXt2YXIgUztTPXRoaXMubGVuZ3RoPlQubGVuZ3RoP1Q6dGhpcztmb3IodmFyIEY9MDtGPFMubGVuZ3RoO0YrKyl0aGlzLndvcmRzW0ZdPXRoaXMud29yZHNbRl0mVC53b3Jkc1tGXTtyZXR1cm4gdGhpcy5sZW5ndGg9Uy5sZW5ndGgsdGhpcy5fc3RyaXAoKX0sTi5w''@;'; + put 'put ''cm90b3R5cGUuaWFuZD1mdW5jdGlvbihUKXtyZXR1cm4gWSgwPT0odGhpcy5uZWdhdGl2ZXxULm5lZ2F0aXZlKSksdGhpcy5pdWFuZChUKX0sTi5wcm90b3R5cGUuYW5kPWZ1bmN0aW9uKFQpe3JldHVybiB0aGlzLmxlbmd0aD5ULmxlbmd0aD90aGlzLmNsb25lKCkuaWFuZChUKTpULmNsb25l''@;'; + put 'put ''KCkuaWFuZCh0aGlzKX0sTi5wcm90b3R5cGUudWFuZD1mdW5jdGlvbihUKXtyZXR1cm4gdGhpcy5sZW5ndGg+VC5sZW5ndGg/dGhpcy5jbG9uZSgpLml1YW5kKFQpOlQuY2xvbmUoKS5pdWFuZCh0aGlzKX0sTi5wcm90b3R5cGUuaXV4b3I9ZnVuY3Rpb24oVCl7dmFyIFMsRjt0aGlzLmxlbmd0''@;'; + put 'put ''aD5ULmxlbmd0aD8oUz10aGlzLEY9VCk6KFM9VCxGPXRoaXMpO2Zvcih2YXIgeWU9MDt5ZTxGLmxlbmd0aDt5ZSsrKXRoaXMud29yZHNbeWVdPVMud29yZHNbeWVdXkYud29yZHNbeWVdO2lmKHRoaXMhPT1TKWZvcig7eWU8Uy5sZW5ndGg7eWUrKyl0aGlzLndvcmRzW3llXT1TLndvcmRzW3ll''@;'; + put 'put ''XTtyZXR1cm4gdGhpcy5sZW5ndGg9Uy5sZW5ndGgsdGhpcy5fc3RyaXAoKX0sTi5wcm90b3R5cGUuaXhvcj1mdW5jdGlvbihUKXtyZXR1cm4gWSgwPT0odGhpcy5uZWdhdGl2ZXxULm5lZ2F0aXZlKSksdGhpcy5pdXhvcihUKX0sTi5wcm90b3R5cGUueG9yPWZ1bmN0aW9uKFQpe3JldHVybiB0''@;'; + put 'put ''aGlzLmxlbmd0aD5ULmxlbmd0aD90aGlzLmNsb25lKCkuaXhvcihUKTpULmNsb25lKCkuaXhvcih0aGlzKX0sTi5wcm90b3R5cGUudXhvcj1mdW5jdGlvbihUKXtyZXR1cm4gdGhpcy5sZW5ndGg+VC5sZW5ndGg/dGhpcy5jbG9uZSgpLml1eG9yKFQpOlQuY2xvbmUoKS5pdXhvcih0aGlzKX0s''@;'; + put 'put ''Ti5wcm90b3R5cGUuaW5vdG49ZnVuY3Rpb24oVCl7WSgibnVtYmVyIj09dHlwZW9mIFQmJlQ+PTApO3ZhciBTPTB8TWF0aC5jZWlsKFQvMjYpLEY9VCUyNjt0aGlzLl9leHBhbmQoUyksRj4wJiZTLS07Zm9yKHZhciB5ZT0wO3llPFM7eWUrKyl0aGlzLndvcmRzW3llXT02NzEwODg2MyZ+dGhp''@;'; + put 'put ''cy53b3Jkc1t5ZV07cmV0dXJuIEY+MCYmKHRoaXMud29yZHNbeWVdPX50aGlzLndvcmRzW3llXSY2NzEwODg2Mz4+MjYtRiksdGhpcy5fc3RyaXAoKX0sTi5wcm90b3R5cGUubm90bj1mdW5jdGlvbihUKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlub3RuKFQpfSxOLnByb3RvdHlwZS5zZXRuPWZ1''@;'; + put 'put ''bmN0aW9uKFQsUyl7WSgibnVtYmVyIj09dHlwZW9mIFQmJlQ+PTApO3ZhciBGPVQvMjZ8MCx5ZT1UJTI2O3JldHVybiB0aGlzLl9leHBhbmQoRisxKSx0aGlzLndvcmRzW0ZdPVM/dGhpcy53b3Jkc1tGXXwxPDx5ZTp0aGlzLndvcmRzW0ZdJn4oMTw8eWUpLHRoaXMuX3N0cmlwKCl9LE4ucHJv''@;'; + put 'put ''dG90eXBlLmlhZGQ9ZnVuY3Rpb24oVCl7dmFyIFMsRix5ZTtpZigwIT09dGhpcy5uZWdhdGl2ZSYmMD09PVQubmVnYXRpdmUpcmV0dXJuIHRoaXMubmVnYXRpdmU9MCxTPXRoaXMuaXN1YihUKSx0aGlzLm5lZ2F0aXZlXj0xLHRoaXMuX25vcm1TaWduKCk7aWYoMD09PXRoaXMubmVnYXRpdmUm''@;'; + put 'put ''JjAhPT1ULm5lZ2F0aXZlKXJldHVybiBULm5lZ2F0aXZlPTAsUz10aGlzLmlzdWIoVCksVC5uZWdhdGl2ZT0xLFMuX25vcm1TaWduKCk7dGhpcy5sZW5ndGg+VC5sZW5ndGg/KEY9dGhpcyx5ZT1UKTooRj1ULHllPXRoaXMpO2Zvcih2YXIgQ2U9MCxEZT0wO0RlPHllLmxlbmd0aDtEZSsrKXRo''@;'; + put 'put ''aXMud29yZHNbRGVdPTY3MTA4ODYzJihTPSgwfEYud29yZHNbRGVdKSsoMHx5ZS53b3Jkc1tEZV0pK0NlKSxDZT1TPj4+MjY7Zm9yKDswIT09Q2UmJkRlPEYubGVuZ3RoO0RlKyspdGhpcy53b3Jkc1tEZV09NjcxMDg4NjMmKFM9KDB8Ri53b3Jkc1tEZV0pK0NlKSxDZT1TPj4+MjY7aWYodGhp''@;'; + put 'put ''cy5sZW5ndGg9Ri5sZW5ndGgsMCE9PUNlKXRoaXMud29yZHNbdGhpcy5sZW5ndGhdPUNlLHRoaXMubGVuZ3RoKys7ZWxzZSBpZihGIT09dGhpcylmb3IoO0RlPEYubGVuZ3RoO0RlKyspdGhpcy53b3Jkc1tEZV09Ri53b3Jkc1tEZV07cmV0dXJuIHRoaXN9LE4ucHJvdG90eXBlLmFkZD1mdW5j''@;'; + put 'put ''dGlvbihUKXt2YXIgUztyZXR1cm4gMCE9PVQubmVnYXRpdmUmJjA9PT10aGlzLm5lZ2F0aXZlPyhULm5lZ2F0aXZlPTAsUz10aGlzLnN1YihUKSxULm5lZ2F0aXZlXj0xLFMpOjA9PT1ULm5lZ2F0aXZlJiYwIT09dGhpcy5uZWdhdGl2ZT8odGhpcy5uZWdhdGl2ZT0wLFM9VC5zdWIodGhpcyks''@;'; + put 'put ''dGhpcy5uZWdhdGl2ZT0xLFMpOnRoaXMubGVuZ3RoPlQubGVuZ3RoP3RoaXMuY2xvbmUoKS5pYWRkKFQpOlQuY2xvbmUoKS5pYWRkKHRoaXMpfSxOLnByb3RvdHlwZS5pc3ViPWZ1bmN0aW9uKFQpe2lmKDAhPT1ULm5lZ2F0aXZlKXtULm5lZ2F0aXZlPTA7dmFyIFM9dGhpcy5pYWRkKFQpO3Jl''@;'; + put 'put ''dHVybiBULm5lZ2F0aXZlPTEsUy5fbm9ybVNpZ24oKX1pZigwIT09dGhpcy5uZWdhdGl2ZSlyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLHRoaXMuaWFkZChUKSx0aGlzLm5lZ2F0aXZlPTEsdGhpcy5fbm9ybVNpZ24oKTt2YXIgRix5ZSxDZT10aGlzLmNtcChUKTtpZigwPT09Q2UpcmV0dXJuIHRo''@;'; + put 'put ''aXMubmVnYXRpdmU9MCx0aGlzLmxlbmd0aD0xLHRoaXMud29yZHNbMF09MCx0aGlzO0NlPjA/KEY9dGhpcyx5ZT1UKTooRj1ULHllPXRoaXMpO2Zvcih2YXIgRGU9MCxQZT0wO1BlPHllLmxlbmd0aDtQZSsrKURlPShTPSgwfEYud29yZHNbUGVdKS0oMHx5ZS53b3Jkc1tQZV0pK0RlKT4+MjYs''@;'; + put 'put ''dGhpcy53b3Jkc1tQZV09NjcxMDg4NjMmUztmb3IoOzAhPT1EZSYmUGU8Ri5sZW5ndGg7UGUrKylEZT0oUz0oMHxGLndvcmRzW1BlXSkrRGUpPj4yNix0aGlzLndvcmRzW1BlXT02NzEwODg2MyZTO2lmKDA9PT1EZSYmUGU8Ri5sZW5ndGgmJkYhPT10aGlzKWZvcig7UGU8Ri5sZW5ndGg7UGUr''@;'; + put 'put ''Kyl0aGlzLndvcmRzW1BlXT1GLndvcmRzW1BlXTtyZXR1cm4gdGhpcy5sZW5ndGg9TWF0aC5tYXgodGhpcy5sZW5ndGgsUGUpLEYhPT10aGlzJiYodGhpcy5uZWdhdGl2ZT0xKSx0aGlzLl9zdHJpcCgpfSxOLnByb3RvdHlwZS5zdWI9ZnVuY3Rpb24oVCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5p''@;'; + put 'put ''c3ViKFQpfTt2YXIgU2U9ZnVuY3Rpb24oVCxTLEYpe3ZhciB5ZSxDZSxEZSxQZT1ULndvcmRzLFFlPVMud29yZHMsJGU9Ri53b3JkcyxndD0wLHd0PTB8UGVbMF0sbXQ9ODE5MSZ3dCx2dD13dD4+PjEzLEF0PTB8UGVbMV0saHQ9ODE5MSZBdCxCdD1BdD4+PjEzLG9uPTB8UGVbMl0sX3Q9ODE5''@;'; + put 'put ''MSZvbix0dD1vbj4+PjEzLGV0PTB8UGVbM10sYXQ9ODE5MSZldCxMdD1ldD4+PjEzLEN0PTB8UGVbNF0sZnQ9ODE5MSZDdCxIdD1DdD4+PjEzLEdlPTB8UGVbNV0sVWU9ODE5MSZHZSx5dD1HZT4+PjEzLGp0PTB8UGVbNl0sUXQ9ODE5MSZqdCxnbj1qdD4+PjEzLGRuPTB8UGVbN10seW49ODE5''@;'; + put 'put ''MSZkbixsbj1kbj4+PjEzLE5uPTB8UGVbOF0sYm49ODE5MSZObixlcj1Obj4+PjEzLHNyPTB8UGVbOV0sWG49ODE5MSZzcixGcj1zcj4+PjEzLHhyPTB8UWVbMF0scXQ9ODE5MSZ4cixwcj14cj4+PjEzLG5yPTB8UWVbMV0sQW49ODE5MSZucixxbj1ucj4+PjEzLFd0PTB8UWVbMl0scG49ODE5''@;'; + put 'put ''MSZXdCxLbj1XdD4+PjEzLE50PTB8UWVbM10sc249ODE5MSZOdCxVbj1OdD4+PjEzLHduPTB8UWVbNF0sdG49ODE5MSZ3bix6bj13bj4+PjEzLFRyPTB8UWVbNV0sQm49ODE5MSZUcixrcj1Ucj4+PjEzLG1uPTB8UWVbNl0sdW49ODE5MSZtbixjbj1tbj4+PjEzLF9uPTB8UWVbN10sR3Q9ODE5''@;'; + put 'put ''MSZfbixrbj1fbj4+PjEzLFZuPTB8UWVbOF0sZW49ODE5MSZWbixJbj1Wbj4+PjEzLEpuPTB8UWVbOV0sb3I9ODE5MSZKbixncj1Kbj4+PjEzO0YubmVnYXRpdmU9VC5uZWdhdGl2ZV5TLm5lZ2F0aXZlLEYubGVuZ3RoPTE5O3ZhciBLcj0oZ3QrKHllPU1hdGguaW11bChtdCxxdCkpfDApKygo''@;'; + put 'put ''ODE5MSYoQ2U9KENlPU1hdGguaW11bChtdCxwcikpK01hdGguaW11bCh2dCxxdCl8MCkpPDwxMyl8MDtndD0oKERlPU1hdGguaW11bCh2dCxwcikpKyhDZT4+PjEzKXwwKSsoS3I+Pj4yNil8MCxLciY9NjcxMDg4NjMseWU9TWF0aC5pbXVsKGh0LHF0KSxDZT0oQ2U9TWF0aC5pbXVsKGh0LHBy''@;'; + put 'put ''KSkrTWF0aC5pbXVsKEJ0LHF0KXwwLERlPU1hdGguaW11bChCdCxwcik7dmFyIFZyPShndCsoeWU9eWUrTWF0aC5pbXVsKG10LEFuKXwwKXwwKSsoKDgxOTEmKENlPShDZT1DZStNYXRoLmltdWwobXQscW4pfDApK01hdGguaW11bCh2dCxBbil8MCkpPDwxMyl8MDtndD0oKERlPURlK01hdGgu''@;'; + put 'put ''aW11bCh2dCxxbil8MCkrKENlPj4+MTMpfDApKyhWcj4+PjI2KXwwLFZyJj02NzEwODg2Myx5ZT1NYXRoLmltdWwoX3QscXQpLENlPShDZT1NYXRoLmltdWwoX3QscHIpKStNYXRoLmltdWwodHQscXQpfDAsRGU9TWF0aC5pbXVsKHR0LHByKSx5ZT15ZStNYXRoLmltdWwoaHQsQW4pfDAsQ2U9''@;'; + put 'put ''KENlPUNlK01hdGguaW11bChodCxxbil8MCkrTWF0aC5pbXVsKEJ0LEFuKXwwLERlPURlK01hdGguaW11bChCdCxxbil8MDt2YXIgaWk9KGd0Kyh5ZT15ZStNYXRoLmltdWwobXQscG4pfDApfDApKygoODE5MSYoQ2U9KENlPUNlK01hdGguaW11bChtdCxLbil8MCkrTWF0aC5pbXVsKHZ0LHBu''@;'; + put 'put ''KXwwKSk8PDEzKXwwO2d0PSgoRGU9RGUrTWF0aC5pbXVsKHZ0LEtuKXwwKSsoQ2U+Pj4xMyl8MCkrKGlpPj4+MjYpfDAsaWkmPTY3MTA4ODYzLHllPU1hdGguaW11bChhdCxxdCksQ2U9KENlPU1hdGguaW11bChhdCxwcikpK01hdGguaW11bChMdCxxdCl8MCxEZT1NYXRoLmltdWwoTHQscHIp''@;'; + put 'put ''LHllPXllK01hdGguaW11bChfdCxBbil8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKF90LHFuKXwwKStNYXRoLmltdWwodHQsQW4pfDAsRGU9RGUrTWF0aC5pbXVsKHR0LHFuKXwwLHllPXllK01hdGguaW11bChodCxwbil8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKGh0LEtuKXwwKStNYXRoLmltdWwo''@;'; + put 'put ''QnQscG4pfDAsRGU9RGUrTWF0aC5pbXVsKEJ0LEtuKXwwO3ZhciBScj0oZ3QrKHllPXllK01hdGguaW11bChtdCxzbil8MCl8MCkrKCg4MTkxJihDZT0oQ2U9Q2UrTWF0aC5pbXVsKG10LFVuKXwwKStNYXRoLmltdWwodnQsc24pfDApKTw8MTMpfDA7Z3Q9KChEZT1EZStNYXRoLmltdWwodnQs''@;'; + put 'put ''VW4pfDApKyhDZT4+PjEzKXwwKSsoUnI+Pj4yNil8MCxSciY9NjcxMDg4NjMseWU9TWF0aC5pbXVsKGZ0LHF0KSxDZT0oQ2U9TWF0aC5pbXVsKGZ0LHByKSkrTWF0aC5pbXVsKEh0LHF0KXwwLERlPU1hdGguaW11bChIdCxwcikseWU9eWUrTWF0aC5pbXVsKGF0LEFuKXwwLENlPShDZT1DZStN''@;'; + put 'put ''YXRoLmltdWwoYXQscW4pfDApK01hdGguaW11bChMdCxBbil8MCxEZT1EZStNYXRoLmltdWwoTHQscW4pfDAseWU9eWUrTWF0aC5pbXVsKF90LHBuKXwwLENlPShDZT1DZStNYXRoLmltdWwoX3QsS24pfDApK01hdGguaW11bCh0dCxwbil8MCxEZT1EZStNYXRoLmltdWwodHQsS24pfDAseWU9''@;'; + put 'put ''eWUrTWF0aC5pbXVsKGh0LHNuKXwwLENlPShDZT1DZStNYXRoLmltdWwoaHQsVW4pfDApK01hdGguaW11bChCdCxzbil8MCxEZT1EZStNYXRoLmltdWwoQnQsVW4pfDA7dmFyIGxpPShndCsoeWU9eWUrTWF0aC5pbXVsKG10LHRuKXwwKXwwKSsoKDgxOTEmKENlPShDZT1DZStNYXRoLmltdWwo''@;'; + put 'put ''bXQsem4pfDApK01hdGguaW11bCh2dCx0bil8MCkpPDwxMyl8MDtndD0oKERlPURlK01hdGguaW11bCh2dCx6bil8MCkrKENlPj4+MTMpfDApKyhsaT4+PjI2KXwwLGxpJj02NzEwODg2Myx5ZT1NYXRoLmltdWwoVWUscXQpLENlPShDZT1NYXRoLmltdWwoVWUscHIpKStNYXRoLmltdWwoeXQs''@;'; + put 'put ''cXQpfDAsRGU9TWF0aC5pbXVsKHl0LHByKSx5ZT15ZStNYXRoLmltdWwoZnQsQW4pfDAsQ2U9KENlPUNlK01hdGguaW11bChmdCxxbil8MCkrTWF0aC5pbXVsKEh0LEFuKXwwLERlPURlK01hdGguaW11bChIdCxxbil8MCx5ZT15ZStNYXRoLmltdWwoYXQscG4pfDAsQ2U9KENlPUNlK01hdGgu''@;'; + put 'put ''aW11bChhdCxLbil8MCkrTWF0aC5pbXVsKEx0LHBuKXwwLERlPURlK01hdGguaW11bChMdCxLbil8MCx5ZT15ZStNYXRoLmltdWwoX3Qsc24pfDAsQ2U9KENlPUNlK01hdGguaW11bChfdCxVbil8MCkrTWF0aC5pbXVsKHR0LHNuKXwwLERlPURlK01hdGguaW11bCh0dCxVbil8MCx5ZT15ZStN''@;'; + put 'put ''YXRoLmltdWwoaHQsdG4pfDAsQ2U9KENlPUNlK01hdGguaW11bChodCx6bil8MCkrTWF0aC5pbXVsKEJ0LHRuKXwwLERlPURlK01hdGguaW11bChCdCx6bil8MDt2YXIgTWk9KGd0Kyh5ZT15ZStNYXRoLmltdWwobXQsQm4pfDApfDApKygoODE5MSYoQ2U9KENlPUNlK01hdGguaW11bChtdCxr''@;'; + put 'put ''cil8MCkrTWF0aC5pbXVsKHZ0LEJuKXwwKSk8PDEzKXwwO2d0PSgoRGU9RGUrTWF0aC5pbXVsKHZ0LGtyKXwwKSsoQ2U+Pj4xMyl8MCkrKE1pPj4+MjYpfDAsTWkmPTY3MTA4ODYzLHllPU1hdGguaW11bChRdCxxdCksQ2U9KENlPU1hdGguaW11bChRdCxwcikpK01hdGguaW11bChnbixxdCl8''@;'; + put 'put ''MCxEZT1NYXRoLmltdWwoZ24scHIpLHllPXllK01hdGguaW11bChVZSxBbil8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKFVlLHFuKXwwKStNYXRoLmltdWwoeXQsQW4pfDAsRGU9RGUrTWF0aC5pbXVsKHl0LHFuKXwwLHllPXllK01hdGguaW11bChmdCxwbil8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVs''@;'; + put 'put ''KGZ0LEtuKXwwKStNYXRoLmltdWwoSHQscG4pfDAsRGU9RGUrTWF0aC5pbXVsKEh0LEtuKXwwLHllPXllK01hdGguaW11bChhdCxzbil8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKGF0LFVuKXwwKStNYXRoLmltdWwoTHQsc24pfDAsRGU9RGUrTWF0aC5pbXVsKEx0LFVuKXwwLHllPXllK01hdGgu''@;'; + put 'put ''aW11bChfdCx0bil8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKF90LHpuKXwwKStNYXRoLmltdWwodHQsdG4pfDAsRGU9RGUrTWF0aC5pbXVsKHR0LHpuKXwwLHllPXllK01hdGguaW11bChodCxCbil8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKGh0LGtyKXwwKStNYXRoLmltdWwoQnQsQm4pfDAsRGU9''@;'; + put 'put ''RGUrTWF0aC5pbXVsKEJ0LGtyKXwwO3ZhciBvMD0oZ3QrKHllPXllK01hdGguaW11bChtdCx1bil8MCl8MCkrKCg4MTkxJihDZT0oQ2U9Q2UrTWF0aC5pbXVsKG10LGNuKXwwKStNYXRoLmltdWwodnQsdW4pfDApKTw8MTMpfDA7Z3Q9KChEZT1EZStNYXRoLmltdWwodnQsY24pfDApKyhDZT4+''@;'; + put 'put ''PjEzKXwwKSsobzA+Pj4yNil8MCxvMCY9NjcxMDg4NjMseWU9TWF0aC5pbXVsKHluLHF0KSxDZT0oQ2U9TWF0aC5pbXVsKHluLHByKSkrTWF0aC5pbXVsKGxuLHF0KXwwLERlPU1hdGguaW11bChsbixwcikseWU9eWUrTWF0aC5pbXVsKFF0LEFuKXwwLENlPShDZT1DZStNYXRoLmltdWwoUXQs''@;'; + put 'put ''cW4pfDApK01hdGguaW11bChnbixBbil8MCxEZT1EZStNYXRoLmltdWwoZ24scW4pfDAseWU9eWUrTWF0aC5pbXVsKFVlLHBuKXwwLENlPShDZT1DZStNYXRoLmltdWwoVWUsS24pfDApK01hdGguaW11bCh5dCxwbil8MCxEZT1EZStNYXRoLmltdWwoeXQsS24pfDAseWU9eWUrTWF0aC5pbXVs''@;'; + put 'put ''KGZ0LHNuKXwwLENlPShDZT1DZStNYXRoLmltdWwoZnQsVW4pfDApK01hdGguaW11bChIdCxzbil8MCxEZT1EZStNYXRoLmltdWwoSHQsVW4pfDAseWU9eWUrTWF0aC5pbXVsKGF0LHRuKXwwLENlPShDZT1DZStNYXRoLmltdWwoYXQsem4pfDApK01hdGguaW11bChMdCx0bil8MCxEZT1EZStN''@;'; + put 'put ''YXRoLmltdWwoTHQsem4pfDAseWU9eWUrTWF0aC5pbXVsKF90LEJuKXwwLENlPShDZT1DZStNYXRoLmltdWwoX3Qsa3IpfDApK01hdGguaW11bCh0dCxCbil8MCxEZT1EZStNYXRoLmltdWwodHQsa3IpfDAseWU9eWUrTWF0aC5pbXVsKGh0LHVuKXwwLENlPShDZT1DZStNYXRoLmltdWwoaHQs''@;'; + put 'put ''Y24pfDApK01hdGguaW11bChCdCx1bil8MCxEZT1EZStNYXRoLmltdWwoQnQsY24pfDA7dmFyIG4wPShndCsoeWU9eWUrTWF0aC5pbXVsKG10LEd0KXwwKXwwKSsoKDgxOTEmKENlPShDZT1DZStNYXRoLmltdWwobXQsa24pfDApK01hdGguaW11bCh2dCxHdCl8MCkpPDwxMyl8MDtndD0oKERl''@;'; + put 'put ''PURlK01hdGguaW11bCh2dCxrbil8MCkrKENlPj4+MTMpfDApKyhuMD4+PjI2KXwwLG4wJj02NzEwODg2Myx5ZT1NYXRoLmltdWwoYm4scXQpLENlPShDZT1NYXRoLmltdWwoYm4scHIpKStNYXRoLmltdWwoZXIscXQpfDAsRGU9TWF0aC5pbXVsKGVyLHByKSx5ZT15ZStNYXRoLmltdWwoeW4s''@;'; + put 'put ''QW4pfDAsQ2U9KENlPUNlK01hdGguaW11bCh5bixxbil8MCkrTWF0aC5pbXVsKGxuLEFuKXwwLERlPURlK01hdGguaW11bChsbixxbil8MCx5ZT15ZStNYXRoLmltdWwoUXQscG4pfDAsQ2U9KENlPUNlK01hdGguaW11bChRdCxLbil8MCkrTWF0aC5pbXVsKGduLHBuKXwwLERlPURlK01hdGgu''@;'; + put 'put ''aW11bChnbixLbil8MCx5ZT15ZStNYXRoLmltdWwoVWUsc24pfDAsQ2U9KENlPUNlK01hdGguaW11bChVZSxVbil8MCkrTWF0aC5pbXVsKHl0LHNuKXwwLERlPURlK01hdGguaW11bCh5dCxVbil8MCx5ZT15ZStNYXRoLmltdWwoZnQsdG4pfDAsQ2U9KENlPUNlK01hdGguaW11bChmdCx6bil8''@;'; + put 'put ''MCkrTWF0aC5pbXVsKEh0LHRuKXwwLERlPURlK01hdGguaW11bChIdCx6bil8MCx5ZT15ZStNYXRoLmltdWwoYXQsQm4pfDAsQ2U9KENlPUNlK01hdGguaW11bChhdCxrcil8MCkrTWF0aC5pbXVsKEx0LEJuKXwwLERlPURlK01hdGguaW11bChMdCxrcil8MCx5ZT15ZStNYXRoLmltdWwoX3Qs''@;'; + put 'put ''dW4pfDAsQ2U9KENlPUNlK01hdGguaW11bChfdCxjbil8MCkrTWF0aC5pbXVsKHR0LHVuKXwwLERlPURlK01hdGguaW11bCh0dCxjbil8MCx5ZT15ZStNYXRoLmltdWwoaHQsR3QpfDAsQ2U9KENlPUNlK01hdGguaW11bChodCxrbil8MCkrTWF0aC5pbXVsKEJ0LEd0KXwwLERlPURlK01hdGgu''@;'; + put 'put ''aW11bChCdCxrbil8MDt2YXIgZDA9KGd0Kyh5ZT15ZStNYXRoLmltdWwobXQsZW4pfDApfDApKygoODE5MSYoQ2U9KENlPUNlK01hdGguaW11bChtdCxJbil8MCkrTWF0aC5pbXVsKHZ0LGVuKXwwKSk8PDEzKXwwO2d0PSgoRGU9RGUrTWF0aC5pbXVsKHZ0LEluKXwwKSsoQ2U+Pj4xMyl8MCkr''@;'; + put 'put ''KGQwPj4+MjYpfDAsZDAmPTY3MTA4ODYzLHllPU1hdGguaW11bChYbixxdCksQ2U9KENlPU1hdGguaW11bChYbixwcikpK01hdGguaW11bChGcixxdCl8MCxEZT1NYXRoLmltdWwoRnIscHIpLHllPXllK01hdGguaW11bChibixBbil8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKGJuLHFuKXwwKStN''@;'; + put 'put ''YXRoLmltdWwoZXIsQW4pfDAsRGU9RGUrTWF0aC5pbXVsKGVyLHFuKXwwLHllPXllK01hdGguaW11bCh5bixwbil8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKHluLEtuKXwwKStNYXRoLmltdWwobG4scG4pfDAsRGU9RGUrTWF0aC5pbXVsKGxuLEtuKXwwLHllPXllK01hdGguaW11bChRdCxzbil8''@;'; + put 'put ''MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKFF0LFVuKXwwKStNYXRoLmltdWwoZ24sc24pfDAsRGU9RGUrTWF0aC5pbXVsKGduLFVuKXwwLHllPXllK01hdGguaW11bChVZSx0bil8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKFVlLHpuKXwwKStNYXRoLmltdWwoeXQsdG4pfDAsRGU9RGUrTWF0aC5pbXVs''@;'; + put 'put ''KHl0LHpuKXwwLHllPXllK01hdGguaW11bChmdCxCbil8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKGZ0LGtyKXwwKStNYXRoLmltdWwoSHQsQm4pfDAsRGU9RGUrTWF0aC5pbXVsKEh0LGtyKXwwLHllPXllK01hdGguaW11bChhdCx1bil8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKGF0LGNuKXwwKStN''@;'; + put 'put ''YXRoLmltdWwoTHQsdW4pfDAsRGU9RGUrTWF0aC5pbXVsKEx0LGNuKXwwLHllPXllK01hdGguaW11bChfdCxHdCl8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKF90LGtuKXwwKStNYXRoLmltdWwodHQsR3QpfDAsRGU9RGUrTWF0aC5pbXVsKHR0LGtuKXwwLHllPXllK01hdGguaW11bChodCxlbil8''@;'; + put 'put ''MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKGh0LEluKXwwKStNYXRoLmltdWwoQnQsZW4pfDAsRGU9RGUrTWF0aC5pbXVsKEJ0LEluKXwwO3ZhciBtMD0oZ3QrKHllPXllK01hdGguaW11bChtdCxvcil8MCl8MCkrKCg4MTkxJihDZT0oQ2U9Q2UrTWF0aC5pbXVsKG10LGdyKXwwKStNYXRoLmltdWwo''@;'; + put 'put ''dnQsb3IpfDApKTw8MTMpfDA7Z3Q9KChEZT1EZStNYXRoLmltdWwodnQsZ3IpfDApKyhDZT4+PjEzKXwwKSsobTA+Pj4yNil8MCxtMCY9NjcxMDg4NjMseWU9TWF0aC5pbXVsKFhuLEFuKSxDZT0oQ2U9TWF0aC5pbXVsKFhuLHFuKSkrTWF0aC5pbXVsKEZyLEFuKXwwLERlPU1hdGguaW11bChG''@;'; + put 'put ''cixxbikseWU9eWUrTWF0aC5pbXVsKGJuLHBuKXwwLENlPShDZT1DZStNYXRoLmltdWwoYm4sS24pfDApK01hdGguaW11bChlcixwbil8MCxEZT1EZStNYXRoLmltdWwoZXIsS24pfDAseWU9eWUrTWF0aC5pbXVsKHluLHNuKXwwLENlPShDZT1DZStNYXRoLmltdWwoeW4sVW4pfDApK01hdGgu''@;'; + put 'put ''aW11bChsbixzbil8MCxEZT1EZStNYXRoLmltdWwobG4sVW4pfDAseWU9eWUrTWF0aC5pbXVsKFF0LHRuKXwwLENlPShDZT1DZStNYXRoLmltdWwoUXQsem4pfDApK01hdGguaW11bChnbix0bil8MCxEZT1EZStNYXRoLmltdWwoZ24sem4pfDAseWU9eWUrTWF0aC5pbXVsKFVlLEJuKXwwLENl''@;'; + put 'put ''PShDZT1DZStNYXRoLmltdWwoVWUsa3IpfDApK01hdGguaW11bCh5dCxCbil8MCxEZT1EZStNYXRoLmltdWwoeXQsa3IpfDAseWU9eWUrTWF0aC5pbXVsKGZ0LHVuKXwwLENlPShDZT1DZStNYXRoLmltdWwoZnQsY24pfDApK01hdGguaW11bChIdCx1bil8MCxEZT1EZStNYXRoLmltdWwoSHQs''@;'; + put 'put ''Y24pfDAseWU9eWUrTWF0aC5pbXVsKGF0LEd0KXwwLENlPShDZT1DZStNYXRoLmltdWwoYXQsa24pfDApK01hdGguaW11bChMdCxHdCl8MCxEZT1EZStNYXRoLmltdWwoTHQsa24pfDAseWU9eWUrTWF0aC5pbXVsKF90LGVuKXwwLENlPShDZT1DZStNYXRoLmltdWwoX3QsSW4pfDApK01hdGgu''@;'; + put 'put ''aW11bCh0dCxlbil8MCxEZT1EZStNYXRoLmltdWwodHQsSW4pfDA7dmFyIEcwPShndCsoeWU9eWUrTWF0aC5pbXVsKGh0LG9yKXwwKXwwKSsoKDgxOTEmKENlPShDZT1DZStNYXRoLmltdWwoaHQsZ3IpfDApK01hdGguaW11bChCdCxvcil8MCkpPDwxMyl8MDtndD0oKERlPURlK01hdGguaW11''@;'; + put 'put ''bChCdCxncil8MCkrKENlPj4+MTMpfDApKyhHMD4+PjI2KXwwLEcwJj02NzEwODg2Myx5ZT1NYXRoLmltdWwoWG4scG4pLENlPShDZT1NYXRoLmltdWwoWG4sS24pKStNYXRoLmltdWwoRnIscG4pfDAsRGU9TWF0aC5pbXVsKEZyLEtuKSx5ZT15ZStNYXRoLmltdWwoYm4sc24pfDAsQ2U9KENl''@;'; + put 'put ''PUNlK01hdGguaW11bChibixVbil8MCkrTWF0aC5pbXVsKGVyLHNuKXwwLERlPURlK01hdGguaW11bChlcixVbil8MCx5ZT15ZStNYXRoLmltdWwoeW4sdG4pfDAsQ2U9KENlPUNlK01hdGguaW11bCh5bix6bil8MCkrTWF0aC5pbXVsKGxuLHRuKXwwLERlPURlK01hdGguaW11bChsbix6bil8''@;'; + put 'put ''MCx5ZT15ZStNYXRoLmltdWwoUXQsQm4pfDAsQ2U9KENlPUNlK01hdGguaW11bChRdCxrcil8MCkrTWF0aC5pbXVsKGduLEJuKXwwLERlPURlK01hdGguaW11bChnbixrcil8MCx5ZT15ZStNYXRoLmltdWwoVWUsdW4pfDAsQ2U9KENlPUNlK01hdGguaW11bChVZSxjbil8MCkrTWF0aC5pbXVs''@;'; + put 'put ''KHl0LHVuKXwwLERlPURlK01hdGguaW11bCh5dCxjbil8MCx5ZT15ZStNYXRoLmltdWwoZnQsR3QpfDAsQ2U9KENlPUNlK01hdGguaW11bChmdCxrbil8MCkrTWF0aC5pbXVsKEh0LEd0KXwwLERlPURlK01hdGguaW11bChIdCxrbil8MCx5ZT15ZStNYXRoLmltdWwoYXQsZW4pfDAsQ2U9KENl''@;'; + put 'put ''PUNlK01hdGguaW11bChhdCxJbil8MCkrTWF0aC5pbXVsKEx0LGVuKXwwLERlPURlK01hdGguaW11bChMdCxJbil8MDt2YXIgRGk9KGd0Kyh5ZT15ZStNYXRoLmltdWwoX3Qsb3IpfDApfDApKygoODE5MSYoQ2U9KENlPUNlK01hdGguaW11bChfdCxncil8MCkrTWF0aC5pbXVsKHR0LG9yKXww''@;'; + put 'put ''KSk8PDEzKXwwO2d0PSgoRGU9RGUrTWF0aC5pbXVsKHR0LGdyKXwwKSsoQ2U+Pj4xMyl8MCkrKERpPj4+MjYpfDAsRGkmPTY3MTA4ODYzLHllPU1hdGguaW11bChYbixzbiksQ2U9KENlPU1hdGguaW11bChYbixVbikpK01hdGguaW11bChGcixzbil8MCxEZT1NYXRoLmltdWwoRnIsVW4pLHll''@;'; + put 'put ''PXllK01hdGguaW11bChibix0bil8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKGJuLHpuKXwwKStNYXRoLmltdWwoZXIsdG4pfDAsRGU9RGUrTWF0aC5pbXVsKGVyLHpuKXwwLHllPXllK01hdGguaW11bCh5bixCbil8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKHluLGtyKXwwKStNYXRoLmltdWwobG4s''@;'; + put 'put ''Qm4pfDAsRGU9RGUrTWF0aC5pbXVsKGxuLGtyKXwwLHllPXllK01hdGguaW11bChRdCx1bil8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKFF0LGNuKXwwKStNYXRoLmltdWwoZ24sdW4pfDAsRGU9RGUrTWF0aC5pbXVsKGduLGNuKXwwLHllPXllK01hdGguaW11bChVZSxHdCl8MCxDZT0oQ2U9Q2Ur''@;'; + put 'put ''TWF0aC5pbXVsKFVlLGtuKXwwKStNYXRoLmltdWwoeXQsR3QpfDAsRGU9RGUrTWF0aC5pbXVsKHl0LGtuKXwwLHllPXllK01hdGguaW11bChmdCxlbil8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKGZ0LEluKXwwKStNYXRoLmltdWwoSHQsZW4pfDAsRGU9RGUrTWF0aC5pbXVsKEh0LEluKXwwO3Zh''@;'; + put 'put ''ciBXMD0oZ3QrKHllPXllK01hdGguaW11bChhdCxvcil8MCl8MCkrKCg4MTkxJihDZT0oQ2U9Q2UrTWF0aC5pbXVsKGF0LGdyKXwwKStNYXRoLmltdWwoTHQsb3IpfDApKTw8MTMpfDA7Z3Q9KChEZT1EZStNYXRoLmltdWwoTHQsZ3IpfDApKyhDZT4+PjEzKXwwKSsoVzA+Pj4yNil8MCxXMCY9''@;'; + put 'put ''NjcxMDg4NjMseWU9TWF0aC5pbXVsKFhuLHRuKSxDZT0oQ2U9TWF0aC5pbXVsKFhuLHpuKSkrTWF0aC5pbXVsKEZyLHRuKXwwLERlPU1hdGguaW11bChGcix6bikseWU9eWUrTWF0aC5pbXVsKGJuLEJuKXwwLENlPShDZT1DZStNYXRoLmltdWwoYm4sa3IpfDApK01hdGguaW11bChlcixCbil8''@;'; + put 'put ''MCxEZT1EZStNYXRoLmltdWwoZXIsa3IpfDAseWU9eWUrTWF0aC5pbXVsKHluLHVuKXwwLENlPShDZT1DZStNYXRoLmltdWwoeW4sY24pfDApK01hdGguaW11bChsbix1bil8MCxEZT1EZStNYXRoLmltdWwobG4sY24pfDAseWU9eWUrTWF0aC5pbXVsKFF0LEd0KXwwLENlPShDZT1DZStNYXRo''@;'; + put 'put ''LmltdWwoUXQsa24pfDApK01hdGguaW11bChnbixHdCl8MCxEZT1EZStNYXRoLmltdWwoZ24sa24pfDAseWU9eWUrTWF0aC5pbXVsKFVlLGVuKXwwLENlPShDZT1DZStNYXRoLmltdWwoVWUsSW4pfDApK01hdGguaW11bCh5dCxlbil8MCxEZT1EZStNYXRoLmltdWwoeXQsSW4pfDA7dmFyIEVv''@;'; + put 'put ''PShndCsoeWU9eWUrTWF0aC5pbXVsKGZ0LG9yKXwwKXwwKSsoKDgxOTEmKENlPShDZT1DZStNYXRoLmltdWwoZnQsZ3IpfDApK01hdGguaW11bChIdCxvcil8MCkpPDwxMyl8MDtndD0oKERlPURlK01hdGguaW11bChIdCxncil8MCkrKENlPj4+MTMpfDApKyhFbz4+PjI2KXwwLEVvJj02NzEw''@;'; + put 'put ''ODg2Myx5ZT1NYXRoLmltdWwoWG4sQm4pLENlPShDZT1NYXRoLmltdWwoWG4sa3IpKStNYXRoLmltdWwoRnIsQm4pfDAsRGU9TWF0aC5pbXVsKEZyLGtyKSx5ZT15ZStNYXRoLmltdWwoYm4sdW4pfDAsQ2U9KENlPUNlK01hdGguaW11bChibixjbil8MCkrTWF0aC5pbXVsKGVyLHVuKXwwLERl''@;'; + put 'put ''PURlK01hdGguaW11bChlcixjbil8MCx5ZT15ZStNYXRoLmltdWwoeW4sR3QpfDAsQ2U9KENlPUNlK01hdGguaW11bCh5bixrbil8MCkrTWF0aC5pbXVsKGxuLEd0KXwwLERlPURlK01hdGguaW11bChsbixrbil8MCx5ZT15ZStNYXRoLmltdWwoUXQsZW4pfDAsQ2U9KENlPUNlK01hdGguaW11''@;'; + put 'put ''bChRdCxJbil8MCkrTWF0aC5pbXVsKGduLGVuKXwwLERlPURlK01hdGguaW11bChnbixJbil8MDt2YXIgcW89KGd0Kyh5ZT15ZStNYXRoLmltdWwoVWUsb3IpfDApfDApKygoODE5MSYoQ2U9KENlPUNlK01hdGguaW11bChVZSxncil8MCkrTWF0aC5pbXVsKHl0LG9yKXwwKSk8PDEzKXwwO2d0''@;'; + put 'put ''PSgoRGU9RGUrTWF0aC5pbXVsKHl0LGdyKXwwKSsoQ2U+Pj4xMyl8MCkrKHFvPj4+MjYpfDAscW8mPTY3MTA4ODYzLHllPU1hdGguaW11bChYbix1biksQ2U9KENlPU1hdGguaW11bChYbixjbikpK01hdGguaW11bChGcix1bil8MCxEZT1NYXRoLmltdWwoRnIsY24pLHllPXllK01hdGguaW11''@;'; + put 'put ''bChibixHdCl8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKGJuLGtuKXwwKStNYXRoLmltdWwoZXIsR3QpfDAsRGU9RGUrTWF0aC5pbXVsKGVyLGtuKXwwLHllPXllK01hdGguaW11bCh5bixlbil8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKHluLEluKXwwKStNYXRoLmltdWwobG4sZW4pfDAsRGU9RGUr''@;'; + put 'put ''TWF0aC5pbXVsKGxuLEluKXwwO3ZhciBjYT0oZ3QrKHllPXllK01hdGguaW11bChRdCxvcil8MCl8MCkrKCg4MTkxJihDZT0oQ2U9Q2UrTWF0aC5pbXVsKFF0LGdyKXwwKStNYXRoLmltdWwoZ24sb3IpfDApKTw8MTMpfDA7Z3Q9KChEZT1EZStNYXRoLmltdWwoZ24sZ3IpfDApKyhDZT4+PjEz''@;'; + put 'put ''KXwwKSsoY2E+Pj4yNil8MCxjYSY9NjcxMDg4NjMseWU9TWF0aC5pbXVsKFhuLEd0KSxDZT0oQ2U9TWF0aC5pbXVsKFhuLGtuKSkrTWF0aC5pbXVsKEZyLEd0KXwwLERlPU1hdGguaW11bChGcixrbikseWU9eWUrTWF0aC5pbXVsKGJuLGVuKXwwLENlPShDZT1DZStNYXRoLmltdWwoYm4sSW4p''@;'; + put 'put ''fDApK01hdGguaW11bChlcixlbil8MCxEZT1EZStNYXRoLmltdWwoZXIsSW4pfDA7dmFyIGxsPShndCsoeWU9eWUrTWF0aC5pbXVsKHluLG9yKXwwKXwwKSsoKDgxOTEmKENlPShDZT1DZStNYXRoLmltdWwoeW4sZ3IpfDApK01hdGguaW11bChsbixvcil8MCkpPDwxMyl8MDtndD0oKERlPURl''@;'; + put 'put ''K01hdGguaW11bChsbixncil8MCkrKENlPj4+MTMpfDApKyhsbD4+PjI2KXwwLGxsJj02NzEwODg2Myx5ZT1NYXRoLmltdWwoWG4sZW4pLENlPShDZT1NYXRoLmltdWwoWG4sSW4pKStNYXRoLmltdWwoRnIsZW4pfDAsRGU9TWF0aC5pbXVsKEZyLEluKTt2YXIgUWk9KGd0Kyh5ZT15ZStNYXRo''@;'; + put 'put ''LmltdWwoYm4sb3IpfDApfDApKygoODE5MSYoQ2U9KENlPUNlK01hdGguaW11bChibixncil8MCkrTWF0aC5pbXVsKGVyLG9yKXwwKSk8PDEzKXwwO2d0PSgoRGU9RGUrTWF0aC5pbXVsKGVyLGdyKXwwKSsoQ2U+Pj4xMyl8MCkrKFFpPj4+MjYpfDAsUWkmPTY3MTA4ODYzO3ZhciBNYT0oZ3Qr''@;'; + put 'put ''KHllPU1hdGguaW11bChYbixvcikpfDApKygoODE5MSYoQ2U9KENlPU1hdGguaW11bChYbixncikpK01hdGguaW11bChGcixvcil8MCkpPDwxMyl8MDtyZXR1cm4gZ3Q9KChEZT1NYXRoLmltdWwoRnIsZ3IpKSsoQ2U+Pj4xMyl8MCkrKE1hPj4+MjYpfDAsTWEmPTY3MTA4ODYzLCRlWzBdPUty''@;'; + put 'put ''LCRlWzFdPVZyLCRlWzJdPWlpLCRlWzNdPVJyLCRlWzRdPWxpLCRlWzVdPU1pLCRlWzZdPW8wLCRlWzddPW4wLCRlWzhdPWQwLCRlWzldPW0wLCRlWzEwXT1HMCwkZVsxMV09RGksJGVbMTJdPVcwLCRlWzEzXT1FbywkZVsxNF09cW8sJGVbMTVdPWNhLCRlWzE2XT1sbCwkZVsxN109UWksJGVb''@;'; + put 'put ''MThdPU1hLDAhPT1ndCYmKCRlWzE5XT1ndCxGLmxlbmd0aCsrKSxGfTtmdW5jdGlvbiBJZShULFMsRil7Ri5uZWdhdGl2ZT1TLm5lZ2F0aXZlXlQubmVnYXRpdmUsRi5sZW5ndGg9VC5sZW5ndGgrUy5sZW5ndGg7Zm9yKHZhciB5ZT0wLENlPTAsRGU9MDtEZTxGLmxlbmd0aC0xO0RlKyspe3Zh''@;'; + put 'put ''ciBQZT1DZTtDZT0wO2Zvcih2YXIgUWU9NjcxMDg4NjMmeWUsJGU9TWF0aC5taW4oRGUsUy5sZW5ndGgtMSksZ3Q9TWF0aC5tYXgoMCxEZS1ULmxlbmd0aCsxKTtndDw9JGU7Z3QrKyl7dmFyIG10PSgwfFQud29yZHNbRGUtZ3RdKSooMHxTLndvcmRzW2d0XSksdnQ9NjcxMDg4NjMmbXQ7UWU9''@;'; + put 'put ''NjcxMDg4NjMmKHZ0PXZ0K1FlfDApLENlKz0oUGU9KFBlPVBlKyhtdC82NzEwODg2NHwwKXwwKSsodnQ+Pj4yNil8MCk+Pj4yNixQZSY9NjcxMDg4NjN9Ri53b3Jkc1tEZV09UWUseWU9UGUsUGU9Q2V9cmV0dXJuIDAhPT15ZT9GLndvcmRzW0RlXT15ZTpGLmxlbmd0aC0tLEYuX3N0cmlwKCl9''@;'; + put 'put ''ZnVuY3Rpb24gVGUoVCxTLEYpe3JldHVybiBJZShULFMsRil9ZnVuY3Rpb24gRWUoVCxTKXt0aGlzLng9VCx0aGlzLnk9U31NYXRoLmltdWx8fChTZT1rZSksTi5wcm90b3R5cGUubXVsVG89ZnVuY3Rpb24oVCxTKXt2YXIgRj10aGlzLmxlbmd0aCtULmxlbmd0aDtyZXR1cm4gMTA9PT10aGlz''@;'; + put 'put ''Lmxlbmd0aCYmMTA9PT1ULmxlbmd0aD9TZSh0aGlzLFQsUyk6Rjw2Mz9rZSh0aGlzLFQsUyk6RjwxMDI0P0llKHRoaXMsVCxTKTpUZSh0aGlzLFQsUyl9LEVlLnByb3RvdHlwZS5tYWtlUkJUPWZ1bmN0aW9uKFQpe2Zvcih2YXIgUz1uZXcgQXJyYXkoVCksRj1OLnByb3RvdHlwZS5fY291bnRC''@;'; + put 'put ''aXRzKFQpLTEseWU9MDt5ZTxUO3llKyspU1t5ZV09dGhpcy5yZXZCaW4oeWUsRixUKTtyZXR1cm4gU30sRWUucHJvdG90eXBlLnJldkJpbj1mdW5jdGlvbihULFMsRil7aWYoMD09PVR8fFQ9PT1GLTEpcmV0dXJuIFQ7Zm9yKHZhciB5ZT0wLENlPTA7Q2U8UztDZSsrKXllfD0oMSZUKTw8Uy1D''@;'; + put 'put ''ZS0xLFQ+Pj0xO3JldHVybiB5ZX0sRWUucHJvdG90eXBlLnBlcm11dGU9ZnVuY3Rpb24oVCxTLEYseWUsQ2UsRGUpe2Zvcih2YXIgUGU9MDtQZTxEZTtQZSsrKXllW1BlXT1TW1RbUGVdXSxDZVtQZV09RltUW1BlXV19LEVlLnByb3RvdHlwZS50cmFuc2Zvcm09ZnVuY3Rpb24oVCxTLEYseWUs''@;'; + put 'put ''Q2UsRGUpe3RoaXMucGVybXV0ZShEZSxULFMsRix5ZSxDZSk7Zm9yKHZhciBQZT0xO1BlPENlO1BlPDw9MSlmb3IodmFyIFFlPVBlPDwxLCRlPU1hdGguY29zKDIqTWF0aC5QSS9RZSksZ3Q9TWF0aC5zaW4oMipNYXRoLlBJL1FlKSx3dD0wO3d0PENlO3d0Kz1RZSlmb3IodmFyIG10PSRlLHZ0''@;'; + put 'put ''PWd0LEF0PTA7QXQ8UGU7QXQrKyl7dmFyIGh0PUZbd3QrQXRdLEJ0PXllW3d0K0F0XSxvbj1GW3d0K0F0K1BlXSxfdD15ZVt3dCtBdCtQZV0sdHQ9bXQqb24tdnQqX3Q7X3Q9bXQqX3QrdnQqb24sRlt3dCtBdF09aHQrKG9uPXR0KSx5ZVt3dCtBdF09QnQrX3QsRlt3dCtBdCtQZV09aHQtb24s''@;'; + put 'put ''eWVbd3QrQXQrUGVdPUJ0LV90LEF0IT09UWUmJih0dD0kZSptdC1ndCp2dCx2dD0kZSp2dCtndCptdCxtdD10dCl9fSxFZS5wcm90b3R5cGUuZ3Vlc3NMZW4xM2I9ZnVuY3Rpb24oVCxTKXt2YXIgRj0xfE1hdGgubWF4KFMsVCkseWU9MSZGLENlPTA7Zm9yKEY9Ri8yfDA7RjtGPj4+PTEpQ2Ur''@;'; + put 'put ''KztyZXR1cm4gMTw8Q2UrMSt5ZX0sRWUucHJvdG90eXBlLmNvbmp1Z2F0ZT1mdW5jdGlvbihULFMsRil7aWYoIShGPD0xKSlmb3IodmFyIHllPTA7eWU8Ri8yO3llKyspe3ZhciBDZT1UW3llXTtUW3llXT1UW0YteWUtMV0sVFtGLXllLTFdPUNlLENlPVNbeWVdLFNbeWVdPS1TW0YteWUtMV0s''@;'; + put 'put ''U1tGLXllLTFdPS1DZX19LEVlLnByb3RvdHlwZS5ub3JtYWxpemUxM2I9ZnVuY3Rpb24oVCxTKXtmb3IodmFyIEY9MCx5ZT0wO3llPFMvMjt5ZSsrKXt2YXIgQ2U9ODE5MipNYXRoLnJvdW5kKFRbMip5ZSsxXS9TKStNYXRoLnJvdW5kKFRbMip5ZV0vUykrRjtUW3llXT02NzEwODg2MyZDZSxG''@;'; + put 'put ''PUNlPDY3MTA4ODY0PzA6Q2UvNjcxMDg4NjR8MH1yZXR1cm4gVH0sRWUucHJvdG90eXBlLmNvbnZlcnQxM2I9ZnVuY3Rpb24oVCxTLEYseWUpe2Zvcih2YXIgQ2U9MCxEZT0wO0RlPFM7RGUrKylGWzIqRGVdPTgxOTEmKENlKz0wfFRbRGVdKSxGWzIqRGUrMV09ODE5MSYoQ2U+Pj49MTMpLENl''@;'; + put 'put ''Pj4+PTEzO2ZvcihEZT0yKlM7RGU8eWU7KytEZSlGW0RlXT0wO1koMD09PUNlKSxZKDA9PSgtODE5MiZDZSkpfSxFZS5wcm90b3R5cGUuc3R1Yj1mdW5jdGlvbihUKXtmb3IodmFyIFM9bmV3IEFycmF5KFQpLEY9MDtGPFQ7RisrKVNbRl09MDtyZXR1cm4gU30sRWUucHJvdG90eXBlLm11bHA9''@;'; + put 'put ''ZnVuY3Rpb24oVCxTLEYpe3ZhciB5ZT0yKnRoaXMuZ3Vlc3NMZW4xM2IoVC5sZW5ndGgsUy5sZW5ndGgpLENlPXRoaXMubWFrZVJCVCh5ZSksRGU9dGhpcy5zdHViKHllKSxQZT1uZXcgQXJyYXkoeWUpLFFlPW5ldyBBcnJheSh5ZSksJGU9bmV3IEFycmF5KHllKSxndD1uZXcgQXJyYXkoeWUp''@;'; + put 'put ''LHd0PW5ldyBBcnJheSh5ZSksbXQ9bmV3IEFycmF5KHllKSx2dD1GLndvcmRzO3Z0Lmxlbmd0aD15ZSx0aGlzLmNvbnZlcnQxM2IoVC53b3JkcyxULmxlbmd0aCxQZSx5ZSksdGhpcy5jb252ZXJ0MTNiKFMud29yZHMsUy5sZW5ndGgsZ3QseWUpLHRoaXMudHJhbnNmb3JtKFBlLERlLFFlLCRl''@;'; + put 'put ''LHllLENlKSx0aGlzLnRyYW5zZm9ybShndCxEZSx3dCxtdCx5ZSxDZSk7Zm9yKHZhciBBdD0wO0F0PHllO0F0Kyspe3ZhciBodD1RZVtBdF0qd3RbQXRdLSRlW0F0XSptdFtBdF07JGVbQXRdPVFlW0F0XSptdFtBdF0rJGVbQXRdKnd0W0F0XSxRZVtBdF09aHR9cmV0dXJuIHRoaXMuY29uanVn''@;'; + put 'put ''YXRlKFFlLCRlLHllKSx0aGlzLnRyYW5zZm9ybShRZSwkZSx2dCxEZSx5ZSxDZSksdGhpcy5jb25qdWdhdGUodnQsRGUseWUpLHRoaXMubm9ybWFsaXplMTNiKHZ0LHllKSxGLm5lZ2F0aXZlPVQubmVnYXRpdmVeUy5uZWdhdGl2ZSxGLmxlbmd0aD1ULmxlbmd0aCtTLmxlbmd0aCxGLl9zdHJp''@;'; + put 'put ''cCgpfSxOLnByb3RvdHlwZS5tdWw9ZnVuY3Rpb24oVCl7dmFyIFM9bmV3IE4obnVsbCk7cmV0dXJuIFMud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoK1QubGVuZ3RoKSx0aGlzLm11bFRvKFQsUyl9LE4ucHJvdG90eXBlLm11bGY9ZnVuY3Rpb24oVCl7dmFyIFM9bmV3IE4obnVsbCk7cmV0''@;'; + put 'put ''dXJuIFMud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoK1QubGVuZ3RoKSxUZSh0aGlzLFQsUyl9LE4ucHJvdG90eXBlLmltdWw9ZnVuY3Rpb24oVCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5tdWxUbyhULHRoaXMpfSxOLnByb3RvdHlwZS5pbXVsbj1mdW5jdGlvbihUKXt2YXIgUz1UPDA7UyYm''@;'; + put 'put ''KFQ9LVQpLFkoIm51bWJlciI9PXR5cGVvZiBUKSxZKFQ8NjcxMDg4NjQpO2Zvcih2YXIgRj0wLHllPTA7eWU8dGhpcy5sZW5ndGg7eWUrKyl7dmFyIENlPSgwfHRoaXMud29yZHNbeWVdKSpULERlPSg2NzEwODg2MyZDZSkrKDY3MTA4ODYzJkYpO0Y+Pj0yNixGKz1DZS82NzEwODg2NHwwLEYr''@;'; + put 'put ''PURlPj4+MjYsdGhpcy53b3Jkc1t5ZV09NjcxMDg4NjMmRGV9cmV0dXJuIDAhPT1GJiYodGhpcy53b3Jkc1t5ZV09Rix0aGlzLmxlbmd0aCsrKSxTP3RoaXMuaW5lZygpOnRoaXN9LE4ucHJvdG90eXBlLm11bG49ZnVuY3Rpb24oVCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pbXVsbihUKX0sTi5w''@;'; + put 'put ''cm90b3R5cGUuc3FyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXVsKHRoaXMpfSxOLnByb3RvdHlwZS5pc3FyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW11bCh0aGlzLmNsb25lKCkpfSxOLnByb3RvdHlwZS5wb3c9ZnVuY3Rpb24oVCl7dmFyIFM9ZnVuY3Rpb24oRGUpe2Zvcih2YXIgUGU9''@;'; + put 'put ''bmV3IEFycmF5KERlLmJpdExlbmd0aCgpKSxRZT0wO1FlPFBlLmxlbmd0aDtRZSsrKVBlW1FlXT1EZS53b3Jkc1tRZS8yNnwwXT4+PlFlJTI2JjE7cmV0dXJuIFBlfShUKTtpZigwPT09Uy5sZW5ndGgpcmV0dXJuIG5ldyBOKDEpO2Zvcih2YXIgRj10aGlzLHllPTA7eWU8Uy5sZW5ndGgmJjA9''@;'; + put 'put ''PT1TW3llXTt5ZSsrLEY9Ri5zcXIoKSk7aWYoKyt5ZTxTLmxlbmd0aClmb3IodmFyIENlPUYuc3FyKCk7eWU8Uy5sZW5ndGg7eWUrKyxDZT1DZS5zcXIoKSkwIT09U1t5ZV0mJihGPUYubXVsKENlKSk7cmV0dXJuIEZ9LE4ucHJvdG90eXBlLml1c2hsbj1mdW5jdGlvbihUKXtZKCJudW1iZXIi''@;'; + put 'put ''PT10eXBlb2YgVCYmVD49MCk7dmFyIFMsRj1UJTI2LHllPShULUYpLzI2LENlPTY3MTA4ODYzPj4+MjYtRjw8MjYtRjtpZigwIT09Ril7dmFyIERlPTA7Zm9yKFM9MDtTPHRoaXMubGVuZ3RoO1MrKyl7dmFyIFBlPXRoaXMud29yZHNbU10mQ2U7dGhpcy53b3Jkc1tTXT0oMHx0aGlzLndvcmRz''@;'; + put 'put ''W1NdKS1QZTw8RnxEZSxEZT1QZT4+PjI2LUZ9RGUmJih0aGlzLndvcmRzW1NdPURlLHRoaXMubGVuZ3RoKyspfWlmKDAhPT15ZSl7Zm9yKFM9dGhpcy5sZW5ndGgtMTtTPj0wO1MtLSl0aGlzLndvcmRzW1MreWVdPXRoaXMud29yZHNbU107Zm9yKFM9MDtTPHllO1MrKyl0aGlzLndvcmRzW1Nd''@;'; + put 'put ''PTA7dGhpcy5sZW5ndGgrPXllfXJldHVybiB0aGlzLl9zdHJpcCgpfSxOLnByb3RvdHlwZS5pc2hsbj1mdW5jdGlvbihUKXtyZXR1cm4gWSgwPT09dGhpcy5uZWdhdGl2ZSksdGhpcy5pdXNobG4oVCl9LE4ucHJvdG90eXBlLml1c2hybj1mdW5jdGlvbihULFMsRil7dmFyIHllO1koIm51bWJl''@;'; + put 'put ''ciI9PXR5cGVvZiBUJiZUPj0wKSx5ZT1TPyhTLVMlMjYpLzI2OjA7dmFyIENlPVQlMjYsRGU9TWF0aC5taW4oKFQtQ2UpLzI2LHRoaXMubGVuZ3RoKSxQZT02NzEwODg2M142NzEwODg2Mz4+PkNlPDxDZSxRZT1GO2lmKHllLT1EZSx5ZT1NYXRoLm1heCgwLHllKSxRZSl7Zm9yKHZhciAkZT0w''@;'; + put 'put ''OyRlPERlOyRlKyspUWUud29yZHNbJGVdPXRoaXMud29yZHNbJGVdO1FlLmxlbmd0aD1EZX1pZigwIT09RGUpaWYodGhpcy5sZW5ndGg+RGUpZm9yKHRoaXMubGVuZ3RoLT1EZSwkZT0wOyRlPHRoaXMubGVuZ3RoOyRlKyspdGhpcy53b3Jkc1skZV09dGhpcy53b3Jkc1skZStEZV07ZWxzZSB0''@;'; + put 'put ''aGlzLndvcmRzWzBdPTAsdGhpcy5sZW5ndGg9MTt2YXIgZ3Q9MDtmb3IoJGU9dGhpcy5sZW5ndGgtMTskZT49MCYmKDAhPT1ndHx8JGU+PXllKTskZS0tKXt2YXIgd3Q9MHx0aGlzLndvcmRzWyRlXTt0aGlzLndvcmRzWyRlXT1ndDw8MjYtQ2V8d3Q+Pj5DZSxndD13dCZQZX1yZXR1cm4gUWUm''@;'; + put 'put ''JjAhPT1ndCYmKFFlLndvcmRzW1FlLmxlbmd0aCsrXT1ndCksMD09PXRoaXMubGVuZ3RoJiYodGhpcy53b3Jkc1swXT0wLHRoaXMubGVuZ3RoPTEpLHRoaXMuX3N0cmlwKCl9LE4ucHJvdG90eXBlLmlzaHJuPWZ1bmN0aW9uKFQsUyxGKXtyZXR1cm4gWSgwPT09dGhpcy5uZWdhdGl2ZSksdGhp''@;'; + put 'put ''cy5pdXNocm4oVCxTLEYpfSxOLnByb3RvdHlwZS5zaGxuPWZ1bmN0aW9uKFQpe3JldHVybiB0aGlzLmNsb25lKCkuaXNobG4oVCl9LE4ucHJvdG90eXBlLnVzaGxuPWZ1bmN0aW9uKFQpe3JldHVybiB0aGlzLmNsb25lKCkuaXVzaGxuKFQpfSxOLnByb3RvdHlwZS5zaHJuPWZ1bmN0aW9uKFQp''@;'; + put 'put ''e3JldHVybiB0aGlzLmNsb25lKCkuaXNocm4oVCl9LE4ucHJvdG90eXBlLnVzaHJuPWZ1bmN0aW9uKFQpe3JldHVybiB0aGlzLmNsb25lKCkuaXVzaHJuKFQpfSxOLnByb3RvdHlwZS50ZXN0bj1mdW5jdGlvbihUKXtZKCJudW1iZXIiPT10eXBlb2YgVCYmVD49MCk7dmFyIFM9VCUyNixGPShU''@;'; + put 'put ''LVMpLzI2O3JldHVybiEodGhpcy5sZW5ndGg8PUZ8fCEodGhpcy53b3Jkc1tGXSYxPDxTKSl9LE4ucHJvdG90eXBlLmltYXNrbj1mdW5jdGlvbihUKXtZKCJudW1iZXIiPT10eXBlb2YgVCYmVD49MCk7dmFyIFM9VCUyNixGPShULVMpLzI2O3JldHVybiBZKDA9PT10aGlzLm5lZ2F0aXZlLCJp''@;'; + put 'put ''bWFza24gd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlIG51bWJlcnMiKSx0aGlzLmxlbmd0aDw9Rj90aGlzOigwIT09UyYmRisrLHRoaXMubGVuZ3RoPU1hdGgubWluKEYsdGhpcy5sZW5ndGgpLDAhPT1TJiYodGhpcy53b3Jkc1t0aGlzLmxlbmd0aC0xXSY9NjcxMDg4NjNeNjcxMDg4NjM+Pj5T''@;'; + put 'put ''PDxTKSx0aGlzLl9zdHJpcCgpKX0sTi5wcm90b3R5cGUubWFza249ZnVuY3Rpb24oVCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pbWFza24oVCl9LE4ucHJvdG90eXBlLmlhZGRuPWZ1bmN0aW9uKFQpe3JldHVybiBZKCJudW1iZXIiPT10eXBlb2YgVCksWShUPDY3MTA4ODY0KSxUPDA/dGhpcy5p''@;'; + put 'put ''c3VibigtVCk6MCE9PXRoaXMubmVnYXRpdmU/MT09PXRoaXMubGVuZ3RoJiYoMHx0aGlzLndvcmRzWzBdKTw9VD8odGhpcy53b3Jkc1swXT1ULSgwfHRoaXMud29yZHNbMF0pLHRoaXMubmVnYXRpdmU9MCx0aGlzKToodGhpcy5uZWdhdGl2ZT0wLHRoaXMuaXN1Ym4oVCksdGhpcy5uZWdhdGl2''@;'; + put 'put ''ZT0xLHRoaXMpOnRoaXMuX2lhZGRuKFQpfSxOLnByb3RvdHlwZS5faWFkZG49ZnVuY3Rpb24oVCl7dGhpcy53b3Jkc1swXSs9VDtmb3IodmFyIFM9MDtTPHRoaXMubGVuZ3RoJiZ0aGlzLndvcmRzW1NdPj02NzEwODg2NDtTKyspdGhpcy53b3Jkc1tTXS09NjcxMDg4NjQsUz09PXRoaXMubGVu''@;'; + put 'put ''Z3RoLTE/dGhpcy53b3Jkc1tTKzFdPTE6dGhpcy53b3Jkc1tTKzFdKys7cmV0dXJuIHRoaXMubGVuZ3RoPU1hdGgubWF4KHRoaXMubGVuZ3RoLFMrMSksdGhpc30sTi5wcm90b3R5cGUuaXN1Ym49ZnVuY3Rpb24oVCl7aWYoWSgibnVtYmVyIj09dHlwZW9mIFQpLFkoVDw2NzEwODg2NCksVDww''@;'; + put 'put ''KXJldHVybiB0aGlzLmlhZGRuKC1UKTtpZigwIT09dGhpcy5uZWdhdGl2ZSlyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLHRoaXMuaWFkZG4oVCksdGhpcy5uZWdhdGl2ZT0xLHRoaXM7aWYodGhpcy53b3Jkc1swXS09VCwxPT09dGhpcy5sZW5ndGgmJnRoaXMud29yZHNbMF08MCl0aGlzLndvcmRz''@;'; + put 'put ''WzBdPS10aGlzLndvcmRzWzBdLHRoaXMubmVnYXRpdmU9MTtlbHNlIGZvcih2YXIgUz0wO1M8dGhpcy5sZW5ndGgmJnRoaXMud29yZHNbU108MDtTKyspdGhpcy53b3Jkc1tTXSs9NjcxMDg4NjQsdGhpcy53b3Jkc1tTKzFdLT0xO3JldHVybiB0aGlzLl9zdHJpcCgpfSxOLnByb3RvdHlwZS5h''@;'; + put 'put ''ZGRuPWZ1bmN0aW9uKFQpe3JldHVybiB0aGlzLmNsb25lKCkuaWFkZG4oVCl9LE4ucHJvdG90eXBlLnN1Ym49ZnVuY3Rpb24oVCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc3VibihUKX0sTi5wcm90b3R5cGUuaWFicz1mdW5jdGlvbigpe3JldHVybiB0aGlzLm5lZ2F0aXZlPTAsdGhpc30sTi5w''@;'; + put 'put ''cm90b3R5cGUuYWJzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pYWJzKCl9LE4ucHJvdG90eXBlLl9pc2hsbnN1Ym11bD1mdW5jdGlvbihULFMsRil7dmFyIHllLENlO3RoaXMuX2V4cGFuZChULmxlbmd0aCtGKTt2YXIgUGU9MDtmb3IoeWU9MDt5ZTxULmxlbmd0aDt5ZSsrKXtD''@;'; + put 'put ''ZT0oMHx0aGlzLndvcmRzW3llK0ZdKStQZTt2YXIgUWU9KDB8VC53b3Jkc1t5ZV0pKlM7UGU9KChDZS09NjcxMDg4NjMmUWUpPj4yNiktKFFlLzY3MTA4ODY0fDApLHRoaXMud29yZHNbeWUrRl09NjcxMDg4NjMmQ2V9Zm9yKDt5ZTx0aGlzLmxlbmd0aC1GO3llKyspUGU9KENlPSgwfHRoaXMu''@;'; + put 'put ''d29yZHNbeWUrRl0pK1BlKT4+MjYsdGhpcy53b3Jkc1t5ZStGXT02NzEwODg2MyZDZTtpZigwPT09UGUpcmV0dXJuIHRoaXMuX3N0cmlwKCk7Zm9yKFkoLTE9PT1QZSksUGU9MCx5ZT0wO3llPHRoaXMubGVuZ3RoO3llKyspUGU9KENlPS0oMHx0aGlzLndvcmRzW3llXSkrUGUpPj4yNix0aGlz''@;'; + put 'put ''LndvcmRzW3llXT02NzEwODg2MyZDZTtyZXR1cm4gdGhpcy5uZWdhdGl2ZT0xLHRoaXMuX3N0cmlwKCl9LE4ucHJvdG90eXBlLl93b3JkRGl2PWZ1bmN0aW9uKFQsUyl7dmFyIEYseWU9dGhpcy5jbG9uZSgpLENlPVQsRGU9MHxDZS53b3Jkc1tDZS5sZW5ndGgtMV07MCE9KEY9MjYtdGhpcy5f''@;'; + put 'put ''Y291bnRCaXRzKERlKSkmJihDZT1DZS51c2hsbihGKSx5ZS5pdXNobG4oRiksRGU9MHxDZS53b3Jkc1tDZS5sZW5ndGgtMV0pO3ZhciBQZSxRZT15ZS5sZW5ndGgtQ2UubGVuZ3RoO2lmKCJtb2QiIT09Uyl7KFBlPW5ldyBOKG51bGwpKS5sZW5ndGg9UWUrMSxQZS53b3Jkcz1uZXcgQXJyYXko''@;'; + put 'put ''UGUubGVuZ3RoKTtmb3IodmFyICRlPTA7JGU8UGUubGVuZ3RoOyRlKyspUGUud29yZHNbJGVdPTB9dmFyIGd0PXllLmNsb25lKCkuX2lzaGxuc3VibXVsKENlLDEsUWUpOzA9PT1ndC5uZWdhdGl2ZSYmKHllPWd0LFBlJiYoUGUud29yZHNbUWVdPTEpKTtmb3IodmFyIHd0PVFlLTE7d3Q+PTA7''@;'; + put 'put ''d3QtLSl7dmFyIG10PTY3MTA4ODY0KigwfHllLndvcmRzW0NlLmxlbmd0aCt3dF0pKygwfHllLndvcmRzW0NlLmxlbmd0aCt3dC0xXSk7Zm9yKG10PU1hdGgubWluKG10L0RlfDAsNjcxMDg4NjMpLHllLl9pc2hsbnN1Ym11bChDZSxtdCx3dCk7MCE9PXllLm5lZ2F0aXZlOyltdC0tLHllLm5l''@;'; + put 'put ''Z2F0aXZlPTAseWUuX2lzaGxuc3VibXVsKENlLDEsd3QpLHllLmlzWmVybygpfHwoeWUubmVnYXRpdmVePTEpO1BlJiYoUGUud29yZHNbd3RdPW10KX1yZXR1cm4gUGUmJlBlLl9zdHJpcCgpLHllLl9zdHJpcCgpLCJkaXYiIT09UyYmMCE9PUYmJnllLml1c2hybihGKSx7ZGl2OlBlfHxudWxs''@;'; + put 'put ''LG1vZDp5ZX19LE4ucHJvdG90eXBlLmRpdm1vZD1mdW5jdGlvbihULFMsRil7cmV0dXJuIFkoIVQuaXNaZXJvKCkpLHRoaXMuaXNaZXJvKCk/e2RpdjpuZXcgTigwKSxtb2Q6bmV3IE4oMCl9OjAhPT10aGlzLm5lZ2F0aXZlJiYwPT09VC5uZWdhdGl2ZT8oRGU9dGhpcy5uZWcoKS5kaXZtb2Qo''@;'; + put 'put ''VCxTKSwibW9kIiE9PVMmJih5ZT1EZS5kaXYubmVnKCkpLCJkaXYiIT09UyYmKENlPURlLm1vZC5uZWcoKSxGJiYwIT09Q2UubmVnYXRpdmUmJkNlLmlhZGQoVCkpLHtkaXY6eWUsbW9kOkNlfSk6MD09PXRoaXMubmVnYXRpdmUmJjAhPT1ULm5lZ2F0aXZlPyhEZT10aGlzLmRpdm1vZChULm5l''@;'; + put 'put ''ZygpLFMpLCJtb2QiIT09UyYmKHllPURlLmRpdi5uZWcoKSkse2Rpdjp5ZSxtb2Q6RGUubW9kfSk6MCE9KHRoaXMubmVnYXRpdmUmVC5uZWdhdGl2ZSk/KERlPXRoaXMubmVnKCkuZGl2bW9kKFQubmVnKCksUyksImRpdiIhPT1TJiYoQ2U9RGUubW9kLm5lZygpLEYmJjAhPT1DZS5uZWdhdGl2''@;'; + put 'put ''ZSYmQ2UuaXN1YihUKSkse2RpdjpEZS5kaXYsbW9kOkNlfSk6VC5sZW5ndGg+dGhpcy5sZW5ndGh8fHRoaXMuY21wKFQpPDA/e2RpdjpuZXcgTigwKSxtb2Q6dGhpc306MT09PVQubGVuZ3RoPyJkaXYiPT09Uz97ZGl2OnRoaXMuZGl2bihULndvcmRzWzBdKSxtb2Q6bnVsbH06Im1vZCI9PT1T''@;'; + put 'put ''P3tkaXY6bnVsbCxtb2Q6bmV3IE4odGhpcy5tb2RybihULndvcmRzWzBdKSl9OntkaXY6dGhpcy5kaXZuKFQud29yZHNbMF0pLG1vZDpuZXcgTih0aGlzLm1vZHJuKFQud29yZHNbMF0pKX06dGhpcy5fd29yZERpdihULFMpO3ZhciB5ZSxDZSxEZX0sTi5wcm90b3R5cGUuZGl2PWZ1bmN0aW9u''@;'; + put 'put ''KFQpe3JldHVybiB0aGlzLmRpdm1vZChULCJkaXYiLCExKS5kaXZ9LE4ucHJvdG90eXBlLm1vZD1mdW5jdGlvbihUKXtyZXR1cm4gdGhpcy5kaXZtb2QoVCwibW9kIiwhMSkubW9kfSxOLnByb3RvdHlwZS51bW9kPWZ1bmN0aW9uKFQpe3JldHVybiB0aGlzLmRpdm1vZChULCJtb2QiLCEwKS5t''@;'; + put 'put ''b2R9LE4ucHJvdG90eXBlLmRpdlJvdW5kPWZ1bmN0aW9uKFQpe3ZhciBTPXRoaXMuZGl2bW9kKFQpO2lmKFMubW9kLmlzWmVybygpKXJldHVybiBTLmRpdjt2YXIgRj0wIT09Uy5kaXYubmVnYXRpdmU/Uy5tb2QuaXN1YihUKTpTLm1vZCx5ZT1ULnVzaHJuKDEpLENlPVQuYW5kbG4oMSksRGU9''@;'; + put 'put ''Ri5jbXAoeWUpO3JldHVybiBEZTwwfHwxPT09Q2UmJjA9PT1EZT9TLmRpdjowIT09Uy5kaXYubmVnYXRpdmU/Uy5kaXYuaXN1Ym4oMSk6Uy5kaXYuaWFkZG4oMSl9LE4ucHJvdG90eXBlLm1vZHJuPWZ1bmN0aW9uKFQpe3ZhciBTPVQ8MDtTJiYoVD0tVCksWShUPD02NzEwODg2Myk7Zm9yKHZh''@;'; + put 'put ''ciBGPTY3MTA4ODY0JVQseWU9MCxDZT10aGlzLmxlbmd0aC0xO0NlPj0wO0NlLS0peWU9KEYqeWUrKDB8dGhpcy53b3Jkc1tDZV0pKSVUO3JldHVybiBTPy15ZTp5ZX0sTi5wcm90b3R5cGUubW9kbj1mdW5jdGlvbihUKXtyZXR1cm4gdGhpcy5tb2RybihUKX0sTi5wcm90b3R5cGUuaWRpdm49''@;'; + put 'put ''ZnVuY3Rpb24oVCl7dmFyIFM9VDwwO1MmJihUPS1UKSxZKFQ8PTY3MTA4ODYzKTtmb3IodmFyIEY9MCx5ZT10aGlzLmxlbmd0aC0xO3llPj0wO3llLS0pe3ZhciBDZT0oMHx0aGlzLndvcmRzW3llXSkrNjcxMDg4NjQqRjt0aGlzLndvcmRzW3llXT1DZS9UfDAsRj1DZSVUfXJldHVybiB0aGlz''@;'; + put 'put ''Ll9zdHJpcCgpLFM/dGhpcy5pbmVnKCk6dGhpc30sTi5wcm90b3R5cGUuZGl2bj1mdW5jdGlvbihUKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlkaXZuKFQpfSxOLnByb3RvdHlwZS5lZ2NkPWZ1bmN0aW9uKFQpe1koMD09PVQubmVnYXRpdmUpLFkoIVQuaXNaZXJvKCkpO3ZhciBTPXRoaXMsRj1U''@;'; + put 'put ''LmNsb25lKCk7Uz0wIT09Uy5uZWdhdGl2ZT9TLnVtb2QoVCk6Uy5jbG9uZSgpO2Zvcih2YXIgeWU9bmV3IE4oMSksQ2U9bmV3IE4oMCksRGU9bmV3IE4oMCksUGU9bmV3IE4oMSksUWU9MDtTLmlzRXZlbigpJiZGLmlzRXZlbigpOylTLml1c2hybigxKSxGLml1c2hybigxKSwrK1FlO2Zvcih2''@;'; + put 'put ''YXIgJGU9Ri5jbG9uZSgpLGd0PVMuY2xvbmUoKTshUy5pc1plcm8oKTspe2Zvcih2YXIgd3Q9MCxtdD0xOzA9PShTLndvcmRzWzBdJm10KSYmd3Q8MjY7Kyt3dCxtdDw8PTEpO2lmKHd0PjApZm9yKFMuaXVzaHJuKHd0KTt3dC0tID4wOykoeWUuaXNPZGQoKXx8Q2UuaXNPZGQoKSkmJih5ZS5p''@;'; + put 'put ''YWRkKCRlKSxDZS5pc3ViKGd0KSkseWUuaXVzaHJuKDEpLENlLml1c2hybigxKTtmb3IodmFyIHZ0PTAsQXQ9MTswPT0oRi53b3Jkc1swXSZBdCkmJnZ0PDI2OysrdnQsQXQ8PD0xKTtpZih2dD4wKWZvcihGLml1c2hybih2dCk7dnQtLSA+MDspKERlLmlzT2RkKCl8fFBlLmlzT2RkKCkpJiYo''@;'; + put 'put ''RGUuaWFkZCgkZSksUGUuaXN1YihndCkpLERlLml1c2hybigxKSxQZS5pdXNocm4oMSk7Uy5jbXAoRik+PTA/KFMuaXN1YihGKSx5ZS5pc3ViKERlKSxDZS5pc3ViKFBlKSk6KEYuaXN1YihTKSxEZS5pc3ViKHllKSxQZS5pc3ViKENlKSl9cmV0dXJue2E6RGUsYjpQZSxnY2Q6Ri5pdXNobG4o''@;'; + put 'put ''UWUpfX0sTi5wcm90b3R5cGUuX2ludm1wPWZ1bmN0aW9uKFQpe1koMD09PVQubmVnYXRpdmUpLFkoIVQuaXNaZXJvKCkpO3ZhciBTPXRoaXMsRj1ULmNsb25lKCk7Uz0wIT09Uy5uZWdhdGl2ZT9TLnVtb2QoVCk6Uy5jbG9uZSgpO2Zvcih2YXIgeWUsQ2U9bmV3IE4oMSksRGU9bmV3IE4oMCks''@;'; + put 'put ''UGU9Ri5jbG9uZSgpO1MuY21wbigxKT4wJiZGLmNtcG4oMSk+MDspe2Zvcih2YXIgUWU9MCwkZT0xOzA9PShTLndvcmRzWzBdJiRlKSYmUWU8MjY7KytRZSwkZTw8PTEpO2lmKFFlPjApZm9yKFMuaXVzaHJuKFFlKTtRZS0tID4wOylDZS5pc09kZCgpJiZDZS5pYWRkKFBlKSxDZS5pdXNocm4o''@;'; + put 'put ''MSk7Zm9yKHZhciBndD0wLHd0PTE7MD09KEYud29yZHNbMF0md3QpJiZndDwyNjsrK2d0LHd0PDw9MSk7aWYoZ3Q+MClmb3IoRi5pdXNocm4oZ3QpO2d0LS0gPjA7KURlLmlzT2RkKCkmJkRlLmlhZGQoUGUpLERlLml1c2hybigxKTtTLmNtcChGKT49MD8oUy5pc3ViKEYpLENlLmlzdWIoRGUp''@;'; + put 'put ''KTooRi5pc3ViKFMpLERlLmlzdWIoQ2UpKX1yZXR1cm4oeWU9MD09PVMuY21wbigxKT9DZTpEZSkuY21wbigwKTwwJiZ5ZS5pYWRkKFQpLHllfSxOLnByb3RvdHlwZS5nY2Q9ZnVuY3Rpb24oVCl7aWYodGhpcy5pc1plcm8oKSlyZXR1cm4gVC5hYnMoKTtpZihULmlzWmVybygpKXJldHVybiB0''@;'; + put 'put ''aGlzLmFicygpO3ZhciBTPXRoaXMuY2xvbmUoKSxGPVQuY2xvbmUoKTtTLm5lZ2F0aXZlPTAsRi5uZWdhdGl2ZT0wO2Zvcih2YXIgeWU9MDtTLmlzRXZlbigpJiZGLmlzRXZlbigpO3llKyspUy5pdXNocm4oMSksRi5pdXNocm4oMSk7Zm9yKDs7KXtmb3IoO1MuaXNFdmVuKCk7KVMuaXVzaHJu''@;'; + put 'put ''KDEpO2Zvcig7Ri5pc0V2ZW4oKTspRi5pdXNocm4oMSk7dmFyIENlPVMuY21wKEYpO2lmKENlPDApe3ZhciBEZT1TO1M9RixGPURlfWVsc2UgaWYoMD09PUNlfHwwPT09Ri5jbXBuKDEpKWJyZWFrO1MuaXN1YihGKX1yZXR1cm4gRi5pdXNobG4oeWUpfSxOLnByb3RvdHlwZS5pbnZtPWZ1bmN0''@;'; + put 'put ''aW9uKFQpe3JldHVybiB0aGlzLmVnY2QoVCkuYS51bW9kKFQpfSxOLnByb3RvdHlwZS5pc0V2ZW49ZnVuY3Rpb24oKXtyZXR1cm4gMD09KDEmdGhpcy53b3Jkc1swXSl9LE4ucHJvdG90eXBlLmlzT2RkPWZ1bmN0aW9uKCl7cmV0dXJuIDE9PSgxJnRoaXMud29yZHNbMF0pfSxOLnByb3RvdHlw''@;'; + put 'put ''ZS5hbmRsbj1mdW5jdGlvbihUKXtyZXR1cm4gdGhpcy53b3Jkc1swXSZUfSxOLnByb3RvdHlwZS5iaW5jbj1mdW5jdGlvbihUKXtZKCJudW1iZXIiPT10eXBlb2YgVCk7dmFyIFM9VCUyNixGPShULVMpLzI2LHllPTE8PFM7aWYodGhpcy5sZW5ndGg8PUYpcmV0dXJuIHRoaXMuX2V4cGFuZChG''@;'; + put 'put ''KzEpLHRoaXMud29yZHNbRl18PXllLHRoaXM7Zm9yKHZhciBDZT15ZSxEZT1GOzAhPT1DZSYmRGU8dGhpcy5sZW5ndGg7RGUrKyl7dmFyIFBlPTB8dGhpcy53b3Jkc1tEZV07Q2U9KFBlKz1DZSk+Pj4yNix0aGlzLndvcmRzW0RlXT1QZSY9NjcxMDg4NjN9cmV0dXJuIDAhPT1DZSYmKHRoaXMu''@;'; + put 'put ''d29yZHNbRGVdPUNlLHRoaXMubGVuZ3RoKyspLHRoaXN9LE4ucHJvdG90eXBlLmlzWmVybz1mdW5jdGlvbigpe3JldHVybiAxPT09dGhpcy5sZW5ndGgmJjA9PT10aGlzLndvcmRzWzBdfSxOLnByb3RvdHlwZS5jbXBuPWZ1bmN0aW9uKFQpe3ZhciBTLEY9VDwwO2lmKDAhPT10aGlzLm5lZ2F0''@;'; + put 'put ''aXZlJiYhRilyZXR1cm4tMTtpZigwPT09dGhpcy5uZWdhdGl2ZSYmRilyZXR1cm4gMTtpZih0aGlzLl9zdHJpcCgpLHRoaXMubGVuZ3RoPjEpUz0xO2Vsc2V7RiYmKFQ9LVQpLFkoVDw9NjcxMDg4NjMsIk51bWJlciBpcyB0b28gYmlnIik7dmFyIHllPTB8dGhpcy53b3Jkc1swXTtTPXllPT09''@;'; + put 'put ''VD8wOnllPFQ/LTE6MX1yZXR1cm4gMCE9PXRoaXMubmVnYXRpdmU/MHwtUzpTfSxOLnByb3RvdHlwZS5jbXA9ZnVuY3Rpb24oVCl7aWYoMCE9PXRoaXMubmVnYXRpdmUmJjA9PT1ULm5lZ2F0aXZlKXJldHVybi0xO2lmKDA9PT10aGlzLm5lZ2F0aXZlJiYwIT09VC5uZWdhdGl2ZSlyZXR1cm4g''@;'; + put 'put ''MTt2YXIgUz10aGlzLnVjbXAoVCk7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlPzB8LVM6U30sTi5wcm90b3R5cGUudWNtcD1mdW5jdGlvbihUKXtpZih0aGlzLmxlbmd0aD5ULmxlbmd0aClyZXR1cm4gMTtpZih0aGlzLmxlbmd0aDxULmxlbmd0aClyZXR1cm4tMTtmb3IodmFyIFM9MCxGPXRo''@;'; + put 'put ''aXMubGVuZ3RoLTE7Rj49MDtGLS0pe3ZhciB5ZT0wfHRoaXMud29yZHNbRl0sQ2U9MHxULndvcmRzW0ZdO2lmKHllIT09Q2Upe3llPENlP1M9LTE6eWU+Q2UmJihTPTEpO2JyZWFrfX1yZXR1cm4gU30sTi5wcm90b3R5cGUuZ3RuPWZ1bmN0aW9uKFQpe3JldHVybiAxPT09dGhpcy5jbXBuKFQp''@;'; + put 'put ''fSxOLnByb3RvdHlwZS5ndD1mdW5jdGlvbihUKXtyZXR1cm4gMT09PXRoaXMuY21wKFQpfSxOLnByb3RvdHlwZS5ndGVuPWZ1bmN0aW9uKFQpe3JldHVybiB0aGlzLmNtcG4oVCk+PTB9LE4ucHJvdG90eXBlLmd0ZT1mdW5jdGlvbihUKXtyZXR1cm4gdGhpcy5jbXAoVCk+PTB9LE4ucHJvdG90''@;'; + put 'put ''eXBlLmx0bj1mdW5jdGlvbihUKXtyZXR1cm4tMT09PXRoaXMuY21wbihUKX0sTi5wcm90b3R5cGUubHQ9ZnVuY3Rpb24oVCl7cmV0dXJuLTE9PT10aGlzLmNtcChUKX0sTi5wcm90b3R5cGUubHRlbj1mdW5jdGlvbihUKXtyZXR1cm4gdGhpcy5jbXBuKFQpPD0wfSxOLnByb3RvdHlwZS5sdGU9''@;'; + put 'put ''ZnVuY3Rpb24oVCl7cmV0dXJuIHRoaXMuY21wKFQpPD0wfSxOLnByb3RvdHlwZS5lcW49ZnVuY3Rpb24oVCl7cmV0dXJuIDA9PT10aGlzLmNtcG4oVCl9LE4ucHJvdG90eXBlLmVxPWZ1bmN0aW9uKFQpe3JldHVybiAwPT09dGhpcy5jbXAoVCl9LE4ucmVkPWZ1bmN0aW9uKFQpe3JldHVybiBu''@;'; + put 'put ''ZXcgUChUKX0sTi5wcm90b3R5cGUudG9SZWQ9ZnVuY3Rpb24oVCl7cmV0dXJuIFkoIXRoaXMucmVkLCJBbHJlYWR5IGEgbnVtYmVyIGluIHJlZHVjdGlvbiBjb250ZXh0IiksWSgwPT09dGhpcy5uZWdhdGl2ZSwicmVkIHdvcmtzIG9ubHkgd2l0aCBwb3NpdGl2ZXMiKSxULmNvbnZlcnRUbyh0''@;'; + put 'put ''aGlzKS5fZm9yY2VSZWQoVCl9LE4ucHJvdG90eXBlLmZyb21SZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gWSh0aGlzLnJlZCwiZnJvbVJlZCB3b3JrcyBvbmx5IHdpdGggbnVtYmVycyBpbiByZWR1Y3Rpb24gY29udGV4dCIpLHRoaXMucmVkLmNvbnZlcnRGcm9tKHRoaXMpfSxOLnByb3RvdHlwZS5f''@;'; + put 'put ''Zm9yY2VSZWQ9ZnVuY3Rpb24oVCl7cmV0dXJuIHRoaXMucmVkPVQsdGhpc30sTi5wcm90b3R5cGUuZm9yY2VSZWQ9ZnVuY3Rpb24oVCl7cmV0dXJuIFkoIXRoaXMucmVkLCJBbHJlYWR5IGEgbnVtYmVyIGluIHJlZHVjdGlvbiBjb250ZXh0IiksdGhpcy5fZm9yY2VSZWQoVCl9LE4ucHJvdG90''@;'; + put 'put ''eXBlLnJlZEFkZD1mdW5jdGlvbihUKXtyZXR1cm4gWSh0aGlzLnJlZCwicmVkQWRkIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLmFkZCh0aGlzLFQpfSxOLnByb3RvdHlwZS5yZWRJQWRkPWZ1bmN0aW9uKFQpe3JldHVybiBZKHRoaXMucmVkLCJyZWRJQWRkIHdvcmtz''@;'; + put 'put ''IG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLmlhZGQodGhpcyxUKX0sTi5wcm90b3R5cGUucmVkU3ViPWZ1bmN0aW9uKFQpe3JldHVybiBZKHRoaXMucmVkLCJyZWRTdWIgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuc3ViKHRoaXMsVCl9LE4ucHJvdG90''@;'; + put 'put ''eXBlLnJlZElTdWI9ZnVuY3Rpb24oVCl7cmV0dXJuIFkodGhpcy5yZWQsInJlZElTdWIgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuaXN1Yih0aGlzLFQpfSxOLnByb3RvdHlwZS5yZWRTaGw9ZnVuY3Rpb24oVCl7cmV0dXJuIFkodGhpcy5yZWQsInJlZFNobCB3b3Jr''@;'; + put 'put ''cyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5zaGwodGhpcyxUKX0sTi5wcm90b3R5cGUucmVkTXVsPWZ1bmN0aW9uKFQpe3JldHVybiBZKHRoaXMucmVkLCJyZWRNdWwgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTIodGhpcyxUKSx0aGlz''@;'; + put 'put ''LnJlZC5tdWwodGhpcyxUKX0sTi5wcm90b3R5cGUucmVkSU11bD1mdW5jdGlvbihUKXtyZXR1cm4gWSh0aGlzLnJlZCwicmVkTXVsIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkyKHRoaXMsVCksdGhpcy5yZWQuaW11bCh0aGlzLFQpfSxOLnByb3RvdHlw''@;'; + put 'put ''ZS5yZWRTcXI9ZnVuY3Rpb24oKXtyZXR1cm4gWSh0aGlzLnJlZCwicmVkU3FyIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLnNxcih0aGlzKX0sTi5wcm90b3R5cGUucmVkSVNxcj1mdW5jdGlvbigpe3JldHVybiBZKHRoaXMu''@;'; + put 'put ''cmVkLCJyZWRJU3FyIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLmlzcXIodGhpcyl9LE4ucHJvdG90eXBlLnJlZFNxcnQ9ZnVuY3Rpb24oKXtyZXR1cm4gWSh0aGlzLnJlZCwicmVkU3FydCB3b3JrcyBvbmx5IHdpdGggcmVk''@;'; + put 'put ''IG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5zcXJ0KHRoaXMpfSxOLnByb3RvdHlwZS5yZWRJbnZtPWZ1bmN0aW9uKCl7cmV0dXJuIFkodGhpcy5yZWQsInJlZEludm0gd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhp''@;'; + put 'put ''cyksdGhpcy5yZWQuaW52bSh0aGlzKX0sTi5wcm90b3R5cGUucmVkTmVnPWZ1bmN0aW9uKCl7cmV0dXJuIFkodGhpcy5yZWQsInJlZE5lZyB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5uZWcodGhpcyl9LE4ucHJvdG90eXBl''@;'; + put 'put ''LnJlZFBvdz1mdW5jdGlvbihUKXtyZXR1cm4gWSh0aGlzLnJlZCYmIVQucmVkLCJyZWRQb3cobm9ybWFsTnVtKSIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLnBvdyh0aGlzLFQpfTt2YXIgaGU9e2syNTY6bnVsbCxwMjI0Om51bGwscDE5MjpudWxsLHAyNTUxOTpudWxsfTtm''@;'; + put 'put ''dW5jdGlvbiBPKFQsUyl7dGhpcy5uYW1lPVQsdGhpcy5wPW5ldyBOKFMsMTYpLHRoaXMubj10aGlzLnAuYml0TGVuZ3RoKCksdGhpcy5rPW5ldyBOKDEpLml1c2hsbih0aGlzLm4pLmlzdWIodGhpcy5wKSx0aGlzLnRtcD10aGlzLl90bXAoKX1mdW5jdGlvbiB6KCl7Ty5jYWxsKHRoaXMsImsy''@;'; + put 'put ''NTYiLCJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZSBmZmZmZmMyZiIpfWZ1bmN0aW9uIG5lKCl7Ty5jYWxsKHRoaXMsInAyMjQiLCJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiAwMDAwMDAwMCAwMDAwMDAw''@;'; + put 'put ''MCAwMDAwMDAwMSIpfWZ1bmN0aW9uIHRlKCl7Ty5jYWxsKHRoaXMsInAxOTIiLCJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZSBmZmZmZmZmZiBmZmZmZmZmZiIpfWZ1bmN0aW9uIHgoKXtPLmNhbGwodGhpcywiMjU1MTkiLCI3ZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZm''@;'; + put 'put ''ZmZmZmYgZmZmZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZmZmZmZmVkIil9ZnVuY3Rpb24gUChUKXtpZigic3RyaW5nIj09dHlwZW9mIFQpe3ZhciBTPU4uX3ByaW1lKFQpO3RoaXMubT1TLnAsdGhpcy5wcmltZT1TfWVsc2UgWShULmd0bigxKSwibW9kdWx1cyBtdXN0IGJlIGdyZWF0ZXIgdGhh''@;'; + put 'put ''biAxIiksdGhpcy5tPVQsdGhpcy5wcmltZT1udWxsfWZ1bmN0aW9uIFYoVCl7UC5jYWxsKHRoaXMsVCksdGhpcy5zaGlmdD10aGlzLm0uYml0TGVuZ3RoKCksdGhpcy5zaGlmdCUyNiE9MCYmKHRoaXMuc2hpZnQrPTI2LXRoaXMuc2hpZnQlMjYpLHRoaXMucj1uZXcgTigxKS5pdXNobG4odGhp''@;'; + put 'put ''cy5zaGlmdCksdGhpcy5yMj10aGlzLmltb2QodGhpcy5yLnNxcigpKSx0aGlzLnJpbnY9dGhpcy5yLl9pbnZtcCh0aGlzLm0pLHRoaXMubWludj10aGlzLnJpbnYubXVsKHRoaXMucikuaXN1Ym4oMSkuZGl2KHRoaXMubSksdGhpcy5taW52PXRoaXMubWludi51bW9kKHRoaXMuciksdGhpcy5t''@;'; + put 'put ''aW52PXRoaXMuci5zdWIodGhpcy5taW52KX1PLnByb3RvdHlwZS5fdG1wPWZ1bmN0aW9uKCl7dmFyIFQ9bmV3IE4obnVsbCk7cmV0dXJuIFQud29yZHM9bmV3IEFycmF5KE1hdGguY2VpbCh0aGlzLm4vMTMpKSxUfSxPLnByb3RvdHlwZS5pcmVkdWNlPWZ1bmN0aW9uKFQpe3ZhciBTLEY9VDtk''@;'; + put 'put ''b3t0aGlzLnNwbGl0KEYsdGhpcy50bXApLFM9KEY9KEY9dGhpcy5pbXVsSyhGKSkuaWFkZCh0aGlzLnRtcCkpLmJpdExlbmd0aCgpfXdoaWxlKFM+dGhpcy5uKTt2YXIgeWU9Uzx0aGlzLm4/LTE6Ri51Y21wKHRoaXMucCk7cmV0dXJuIDA9PT15ZT8oRi53b3Jkc1swXT0wLEYubGVuZ3RoPTEp''@;'; + put 'put ''OnllPjA/Ri5pc3ViKHRoaXMucCk6dm9pZCAwIT09Ri5zdHJpcD9GLnN0cmlwKCk6Ri5fc3RyaXAoKSxGfSxPLnByb3RvdHlwZS5zcGxpdD1mdW5jdGlvbihULFMpe1QuaXVzaHJuKHRoaXMubiwwLFMpfSxPLnByb3RvdHlwZS5pbXVsSz1mdW5jdGlvbihUKXtyZXR1cm4gVC5pbXVsKHRoaXMu''@;'; + put 'put ''ayl9LFcoeixPKSx6LnByb3RvdHlwZS5zcGxpdD1mdW5jdGlvbihULFMpe2Zvcih2YXIgRj00MTk0MzAzLHllPU1hdGgubWluKFQubGVuZ3RoLDkpLENlPTA7Q2U8eWU7Q2UrKylTLndvcmRzW0NlXT1ULndvcmRzW0NlXTtpZihTLmxlbmd0aD15ZSxULmxlbmd0aDw9OSlyZXR1cm4gVC53b3Jk''@;'; + put 'put ''c1swXT0wLHZvaWQoVC5sZW5ndGg9MSk7dmFyIERlPVQud29yZHNbOV07Zm9yKFMud29yZHNbUy5sZW5ndGgrK109RGUmRixDZT0xMDtDZTxULmxlbmd0aDtDZSsrKXt2YXIgUGU9MHxULndvcmRzW0NlXTtULndvcmRzW0NlLTEwXT0oUGUmRik8PDR8RGU+Pj4yMixEZT1QZX1ULndvcmRzW0Nl''@;'; + put 'put ''LTEwXT1EZT4+Pj0yMixULmxlbmd0aC09MD09PURlJiZULmxlbmd0aD4xMD8xMDo5fSx6LnByb3RvdHlwZS5pbXVsSz1mdW5jdGlvbihUKXtULndvcmRzW1QubGVuZ3RoXT0wLFQud29yZHNbVC5sZW5ndGgrMV09MCxULmxlbmd0aCs9Mjtmb3IodmFyIFM9MCxGPTA7RjxULmxlbmd0aDtGKysp''@;'; + put 'put ''e3ZhciB5ZT0wfFQud29yZHNbRl07VC53b3Jkc1tGXT02NzEwODg2MyYoUys9OTc3KnllKSxTPTY0KnllKyhTLzY3MTA4ODY0fDApfXJldHVybiAwPT09VC53b3Jkc1tULmxlbmd0aC0xXSYmKFQubGVuZ3RoLS0sMD09PVQud29yZHNbVC5sZW5ndGgtMV0mJlQubGVuZ3RoLS0pLFR9LFcobmUs''@;'; + put 'put ''TyksVyh0ZSxPKSxXKHgsTykseC5wcm90b3R5cGUuaW11bEs9ZnVuY3Rpb24oVCl7Zm9yKHZhciBTPTAsRj0wO0Y8VC5sZW5ndGg7RisrKXt2YXIgeWU9MTkqKDB8VC53b3Jkc1tGXSkrUyxDZT02NzEwODg2MyZ5ZTt5ZT4+Pj0yNixULndvcmRzW0ZdPUNlLFM9eWV9cmV0dXJuIDAhPT1TJiYo''@;'; + put 'put ''VC53b3Jkc1tULmxlbmd0aCsrXT1TKSxUfSxOLl9wcmltZT1mdW5jdGlvbihUKXtpZihoZVtUXSlyZXR1cm4gaGVbVF07dmFyIFM7aWYoImsyNTYiPT09VClTPW5ldyB6O2Vsc2UgaWYoInAyMjQiPT09VClTPW5ldyBuZTtlbHNlIGlmKCJwMTkyIj09PVQpUz1uZXcgdGU7ZWxzZXtpZigicDI1''@;'; + put 'put ''NTE5IiE9PVQpdGhyb3cgbmV3IEVycm9yKCJVbmtub3duIHByaW1lICIrVCk7Uz1uZXcgeH1yZXR1cm4gaGVbVF09UyxTfSxQLnByb3RvdHlwZS5fdmVyaWZ5MT1mdW5jdGlvbihUKXtZKDA9PT1ULm5lZ2F0aXZlLCJyZWQgd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlcyIpLFkoVC5yZWQsInJl''@;'; + put 'put ''ZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKX0sUC5wcm90b3R5cGUuX3ZlcmlmeTI9ZnVuY3Rpb24oVCxTKXtZKDA9PShULm5lZ2F0aXZlfFMubmVnYXRpdmUpLCJyZWQgd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlcyIpLFkoVC5yZWQmJlQucmVkPT09Uy5yZWQsInJlZCB3b3JrcyBv''@;'; + put 'put ''bmx5IHdpdGggcmVkIG51bWJlcnMiKX0sUC5wcm90b3R5cGUuaW1vZD1mdW5jdGlvbihUKXtyZXR1cm4gdGhpcy5wcmltZT90aGlzLnByaW1lLmlyZWR1Y2UoVCkuX2ZvcmNlUmVkKHRoaXMpOihvZShULFQudW1vZCh0aGlzLm0pLl9mb3JjZVJlZCh0aGlzKSksVCl9LFAucHJvdG90eXBlLm5l''@;'; + put 'put ''Zz1mdW5jdGlvbihUKXtyZXR1cm4gVC5pc1plcm8oKT9ULmNsb25lKCk6dGhpcy5tLnN1YihUKS5fZm9yY2VSZWQodGhpcyl9LFAucHJvdG90eXBlLmFkZD1mdW5jdGlvbihULFMpe3RoaXMuX3ZlcmlmeTIoVCxTKTt2YXIgRj1ULmFkZChTKTtyZXR1cm4gRi5jbXAodGhpcy5tKT49MCYmRi5p''@;'; + put 'put ''c3ViKHRoaXMubSksRi5fZm9yY2VSZWQodGhpcyl9LFAucHJvdG90eXBlLmlhZGQ9ZnVuY3Rpb24oVCxTKXt0aGlzLl92ZXJpZnkyKFQsUyk7dmFyIEY9VC5pYWRkKFMpO3JldHVybiBGLmNtcCh0aGlzLm0pPj0wJiZGLmlzdWIodGhpcy5tKSxGfSxQLnByb3RvdHlwZS5zdWI9ZnVuY3Rpb24o''@;'; + put 'put ''VCxTKXt0aGlzLl92ZXJpZnkyKFQsUyk7dmFyIEY9VC5zdWIoUyk7cmV0dXJuIEYuY21wbigwKTwwJiZGLmlhZGQodGhpcy5tKSxGLl9mb3JjZVJlZCh0aGlzKX0sUC5wcm90b3R5cGUuaXN1Yj1mdW5jdGlvbihULFMpe3RoaXMuX3ZlcmlmeTIoVCxTKTt2YXIgRj1ULmlzdWIoUyk7cmV0dXJu''@;'; + put 'put ''IEYuY21wbigwKTwwJiZGLmlhZGQodGhpcy5tKSxGfSxQLnByb3RvdHlwZS5zaGw9ZnVuY3Rpb24oVCxTKXtyZXR1cm4gdGhpcy5fdmVyaWZ5MShUKSx0aGlzLmltb2QoVC51c2hsbihTKSl9LFAucHJvdG90eXBlLmltdWw9ZnVuY3Rpb24oVCxTKXtyZXR1cm4gdGhpcy5fdmVyaWZ5MihULFMp''@;'; + put 'put ''LHRoaXMuaW1vZChULmltdWwoUykpfSxQLnByb3RvdHlwZS5tdWw9ZnVuY3Rpb24oVCxTKXtyZXR1cm4gdGhpcy5fdmVyaWZ5MihULFMpLHRoaXMuaW1vZChULm11bChTKSl9LFAucHJvdG90eXBlLmlzcXI9ZnVuY3Rpb24oVCl7cmV0dXJuIHRoaXMuaW11bChULFQuY2xvbmUoKSl9LFAucHJv''@;'; + put 'put ''dG90eXBlLnNxcj1mdW5jdGlvbihUKXtyZXR1cm4gdGhpcy5tdWwoVCxUKX0sUC5wcm90b3R5cGUuc3FydD1mdW5jdGlvbihUKXtpZihULmlzWmVybygpKXJldHVybiBULmNsb25lKCk7dmFyIFM9dGhpcy5tLmFuZGxuKDMpO2lmKFkoUyUyPT0xKSwzPT09Uyl7dmFyIEY9dGhpcy5tLmFkZChu''@;'; + put 'put ''ZXcgTigxKSkuaXVzaHJuKDIpO3JldHVybiB0aGlzLnBvdyhULEYpfWZvcih2YXIgeWU9dGhpcy5tLnN1Ym4oMSksQ2U9MDsheWUuaXNaZXJvKCkmJjA9PT15ZS5hbmRsbigxKTspQ2UrKyx5ZS5pdXNocm4oMSk7WSgheWUuaXNaZXJvKCkpO3ZhciBEZT1uZXcgTigxKS50b1JlZCh0aGlzKSxQ''@;'; + put 'put ''ZT1EZS5yZWROZWcoKSxRZT10aGlzLm0uc3VibigxKS5pdXNocm4oMSksJGU9dGhpcy5tLmJpdExlbmd0aCgpO2ZvcigkZT1uZXcgTigyKiRlKiRlKS50b1JlZCh0aGlzKTswIT09dGhpcy5wb3coJGUsUWUpLmNtcChQZSk7KSRlLnJlZElBZGQoUGUpO2Zvcih2YXIgZ3Q9dGhpcy5wb3coJGUs''@;'; + put 'put ''eWUpLHd0PXRoaXMucG93KFQseWUuYWRkbigxKS5pdXNocm4oMSkpLG10PXRoaXMucG93KFQseWUpLHZ0PUNlOzAhPT1tdC5jbXAoRGUpOyl7Zm9yKHZhciBBdD1tdCxodD0wOzAhPT1BdC5jbXAoRGUpO2h0KyspQXQ9QXQucmVkU3FyKCk7WShodDx2dCk7dmFyIEJ0PXRoaXMucG93KGd0LG5l''@;'; + put 'put ''dyBOKDEpLml1c2hsbih2dC1odC0xKSk7d3Q9d3QucmVkTXVsKEJ0KSxndD1CdC5yZWRTcXIoKSxtdD1tdC5yZWRNdWwoZ3QpLHZ0PWh0fXJldHVybiB3dH0sUC5wcm90b3R5cGUuaW52bT1mdW5jdGlvbihUKXt2YXIgUz1ULl9pbnZtcCh0aGlzLm0pO3JldHVybiAwIT09Uy5uZWdhdGl2ZT8o''@;'; + put 'put ''Uy5uZWdhdGl2ZT0wLHRoaXMuaW1vZChTKS5yZWROZWcoKSk6dGhpcy5pbW9kKFMpfSxQLnByb3RvdHlwZS5wb3c9ZnVuY3Rpb24oVCxTKXtpZihTLmlzWmVybygpKXJldHVybiBuZXcgTigxKS50b1JlZCh0aGlzKTtpZigwPT09Uy5jbXBuKDEpKXJldHVybiBULmNsb25lKCk7dmFyIEY9bmV3''@;'; + put 'put ''IEFycmF5KDE2KTtGWzBdPW5ldyBOKDEpLnRvUmVkKHRoaXMpLEZbMV09VDtmb3IodmFyIHllPTI7eWU8Ri5sZW5ndGg7eWUrKylGW3llXT10aGlzLm11bChGW3llLTFdLFQpO3ZhciBDZT1GWzBdLERlPTAsUGU9MCxRZT1TLmJpdExlbmd0aCgpJTI2O2ZvcigwPT09UWUmJihRZT0yNikseWU9''@;'; + put 'put ''Uy5sZW5ndGgtMTt5ZT49MDt5ZS0tKXtmb3IodmFyICRlPVMud29yZHNbeWVdLGd0PVFlLTE7Z3Q+PTA7Z3QtLSl7dmFyIHd0PSRlPj5ndCYxO0NlIT09RlswXSYmKENlPXRoaXMuc3FyKENlKSksMCE9PXd0fHwwIT09RGU/KERlPDw9MSxEZXw9d3QsKDQ9PSsrUGV8fDA9PT15ZSYmMD09PWd0''@;'; + put 'put ''KSYmKENlPXRoaXMubXVsKENlLEZbRGVdKSxQZT0wLERlPTApKTpQZT0wfVFlPTI2fXJldHVybiBDZX0sUC5wcm90b3R5cGUuY29udmVydFRvPWZ1bmN0aW9uKFQpe3ZhciBTPVQudW1vZCh0aGlzLm0pO3JldHVybiBTPT09VD9TLmNsb25lKCk6U30sUC5wcm90b3R5cGUuY29udmVydEZyb209''@;'; + put 'put ''ZnVuY3Rpb24oVCl7dmFyIFM9VC5jbG9uZSgpO3JldHVybiBTLnJlZD1udWxsLFN9LE4ubW9udD1mdW5jdGlvbihUKXtyZXR1cm4gbmV3IFYoVCl9LFcoVixQKSxWLnByb3RvdHlwZS5jb252ZXJ0VG89ZnVuY3Rpb24oVCl7cmV0dXJuIHRoaXMuaW1vZChULnVzaGxuKHRoaXMuc2hpZnQpKX0s''@;'; + put 'put ''Vi5wcm90b3R5cGUuY29udmVydEZyb209ZnVuY3Rpb24oVCl7dmFyIFM9dGhpcy5pbW9kKFQubXVsKHRoaXMucmludikpO3JldHVybiBTLnJlZD1udWxsLFN9LFYucHJvdG90eXBlLmltdWw9ZnVuY3Rpb24oVCxTKXtpZihULmlzWmVybygpfHxTLmlzWmVybygpKXJldHVybiBULndvcmRzWzBd''@;'; + put 'put ''PTAsVC5sZW5ndGg9MSxUO3ZhciBGPVQuaW11bChTKSx5ZT1GLm1hc2tuKHRoaXMuc2hpZnQpLm11bCh0aGlzLm1pbnYpLmltYXNrbih0aGlzLnNoaWZ0KS5tdWwodGhpcy5tKSxDZT1GLmlzdWIoeWUpLml1c2hybih0aGlzLnNoaWZ0KSxEZT1DZTtyZXR1cm4gQ2UuY21wKHRoaXMubSk+PTA/''@;'; + put 'put ''RGU9Q2UuaXN1Yih0aGlzLm0pOkNlLmNtcG4oMCk8MCYmKERlPUNlLmlhZGQodGhpcy5tKSksRGUuX2ZvcmNlUmVkKHRoaXMpfSxWLnByb3RvdHlwZS5tdWw9ZnVuY3Rpb24oVCxTKXtpZihULmlzWmVybygpfHxTLmlzWmVybygpKXJldHVybiBuZXcgTigwKS5fZm9yY2VSZWQodGhpcyk7dmFy''@;'; + put 'put ''IEY9VC5tdWwoUykseWU9Ri5tYXNrbih0aGlzLnNoaWZ0KS5tdWwodGhpcy5taW52KS5pbWFza24odGhpcy5zaGlmdCkubXVsKHRoaXMubSksQ2U9Ri5pc3ViKHllKS5pdXNocm4odGhpcy5zaGlmdCksRGU9Q2U7cmV0dXJuIENlLmNtcCh0aGlzLm0pPj0wP0RlPUNlLmlzdWIodGhpcy5tKTpD''@;'; + put 'put ''ZS5jbXBuKDApPDAmJihEZT1DZS5pYWRkKHRoaXMubSkpLERlLl9mb3JjZVJlZCh0aGlzKX0sVi5wcm90b3R5cGUuaW52bT1mdW5jdGlvbihUKXtyZXR1cm4gdGhpcy5pbW9kKFQuX2ludm1wKHRoaXMubSkubXVsKHRoaXMucjIpKS5fZm9yY2VSZWQodGhpcyl9fShVPVoubm1kKFUpLHRoaXMp''@;'; + put 'put ''fSwzNjQ0OihVLFEsWik9Pnt2YXIgaWU9WigxMDQ4KSxhZT1aKDU2MjMpO1UuZXhwb3J0cz1mdW5jdGlvbihTZSl7cmV0dXJuIFNlPygie30iPT09U2Uuc3Vic3RyKDAsMikmJihTZT0iXFx7XFx9IitTZS5zdWJzdHIoMikpLGtlKChJZT1TZSxJZS5zcGxpdCgiXFxcXCIpLmpvaW4oWSkuc3Bs''@;'; + put 'put ''aXQoIlxceyIpLmpvaW4oVykuc3BsaXQoIlxcfSIpLmpvaW4oTikuc3BsaXQoIlxcLCIpLmpvaW4oZWUpLnNwbGl0KCJcXC4iKS5qb2luKHEpKSwhMCkubWFwKHNlKSk6W107dmFyIEllfTt2YXIgWT0iXDBTTEFTSCIrTWF0aC5yYW5kb20oKSsiXDAiLFc9IlwwT1BFTiIrTWF0aC5yYW5kb20o''@;'; + put 'put ''KSsiXDAiLE49IlwwQ0xPU0UiK01hdGgucmFuZG9tKCkrIlwwIixlZT0iXDBDT01NQSIrTWF0aC5yYW5kb20oKSsiXDAiLHE9IlwwUEVSSU9EIitNYXRoLnJhbmRvbSgpKyJcMCI7ZnVuY3Rpb24gSihTZSl7cmV0dXJuIHBhcnNlSW50KFNlLDEwKT09U2U/cGFyc2VJbnQoU2UsMTApOlNlLmNo''@;'; + put 'put ''YXJDb2RlQXQoMCl9ZnVuY3Rpb24gc2UoU2Upe3JldHVybiBTZS5zcGxpdChZKS5qb2luKCJcXCIpLnNwbGl0KFcpLmpvaW4oInsiKS5zcGxpdChOKS5qb2luKCJ9Iikuc3BsaXQoZWUpLmpvaW4oIiwiKS5zcGxpdChxKS5qb2luKCIuIil9ZnVuY3Rpb24gb2UoU2Upe2lmKCFTZSlyZXR1cm5b''@;'; + put 'put ''IiJdO3ZhciBJZT1bXSxUZT1hZSgieyIsIn0iLFNlKTtpZighVGUpcmV0dXJuIFNlLnNwbGl0KCIsIik7dmFyIGhlPVRlLmJvZHksTz1UZS5wb3N0LHo9VGUucHJlLnNwbGl0KCIsIik7elt6Lmxlbmd0aC0xXSs9InsiK2hlKyJ9Ijt2YXIgbmU9b2UoTyk7cmV0dXJuIE8ubGVuZ3RoJiYoelt6''@;'; + put 'put ''Lmxlbmd0aC0xXSs9bmUuc2hpZnQoKSx6LnB1c2guYXBwbHkoeixuZSkpLEllLnB1c2guYXBwbHkoSWUseiksSWV9ZnVuY3Rpb24gY2UoU2Upe3JldHVybiJ7IitTZSsifSJ9ZnVuY3Rpb24gZGUoU2Upe3JldHVybi9eLT8wXGQvLnRlc3QoU2UpfWZ1bmN0aW9uIHZlKFNlLEllKXtyZXR1cm4g''@;'; + put 'put ''U2U8PUllfWZ1bmN0aW9uIEFlKFNlLEllKXtyZXR1cm4gU2U+PUllfWZ1bmN0aW9uIGtlKFNlLEllKXt2YXIgVGU9W10sRWU9YWUoInsiLCJ9IixTZSk7aWYoIUVlfHwvXCQkLy50ZXN0KEVlLnByZSkpcmV0dXJuW1NlXTt2YXIgaGUsTz0vXi0/XGQrXC5cLi0/XGQrKD86XC5cLi0/XGQrKT8k''@;'; + put 'put ''Ly50ZXN0KEVlLmJvZHkpLHo9L15bYS16QS1aXVwuXC5bYS16QS1aXSg/OlwuXC4tP1xkKyk/JC8udGVzdChFZS5ib2R5KSxuZT1PfHx6LHRlPUVlLmJvZHkuaW5kZXhPZigiLCIpPj0wO2lmKCFuZSYmIXRlKXJldHVybiBFZS5wb3N0Lm1hdGNoKC8sLipcfS8pP2tlKFNlPUVlLnByZSsieyIr''@;'; + put 'put ''RWUuYm9keStOK0VlLnBvc3QpOltTZV07aWYobmUpaGU9RWUuYm9keS5zcGxpdCgvXC5cLi8pO2Vsc2UgaWYoMT09PShoZT1vZShFZS5ib2R5KSkubGVuZ3RoJiYxPT09KGhlPWtlKGhlWzBdLCExKS5tYXAoY2UpKS5sZW5ndGgpcmV0dXJuKFY9RWUucG9zdC5sZW5ndGg/a2UoRWUucG9zdCwh''@;'; + put 'put ''MSk6WyIiXSkubWFwKGZ1bmN0aW9uKEF0KXtyZXR1cm4gRWUucHJlK2hlWzBdK0F0fSk7dmFyIHgsUD1FZS5wcmUsVj1FZS5wb3N0Lmxlbmd0aD9rZShFZS5wb3N0LCExKTpbIiJdO2lmKG5lKXt2YXIgVD1KKGhlWzBdKSxTPUooaGVbMV0pLEY9TWF0aC5tYXgoaGVbMF0ubGVuZ3RoLGhlWzFd''@;'; + put 'put ''Lmxlbmd0aCkseWU9Mz09aGUubGVuZ3RoP01hdGguYWJzKEooaGVbMl0pKToxLENlPXZlO1M8VCYmKHllKj0tMSxDZT1BZSk7dmFyIERlPWhlLnNvbWUoZGUpO3g9W107Zm9yKHZhciBQZT1UO0NlKFBlLFMpO1BlKz15ZSl7dmFyIFFlO2lmKHopIlxcIj09PShRZT1TdHJpbmcuZnJvbUNoYXJD''@;'; + put 'put ''b2RlKFBlKSkmJihRZT0iIik7ZWxzZSBpZihRZT1TdHJpbmcoUGUpLERlKXt2YXIgJGU9Ri1RZS5sZW5ndGg7aWYoJGU+MCl7dmFyIGd0PW5ldyBBcnJheSgkZSsxKS5qb2luKCIwIik7UWU9UGU8MD8iLSIrZ3QrUWUuc2xpY2UoMSk6Z3QrUWV9fXgucHVzaChRZSl9fWVsc2UgeD1pZShoZSxm''@;'; + put 'put ''dW5jdGlvbihBdCl7cmV0dXJuIGtlKEF0LCExKX0pO2Zvcih2YXIgd3Q9MDt3dDx4Lmxlbmd0aDt3dCsrKWZvcih2YXIgbXQ9MDttdDxWLmxlbmd0aDttdCsrKXt2YXIgdnQ9UCt4W3d0XStWW210XTsoIUllfHxuZXx8dnQpJiZUZS5wdXNoKHZ0KX1yZXR1cm4gVGV9fSw5OTMxOihVLFEsWik9''@;'; + put 'put ''Pnt2YXIgaWU7ZnVuY3Rpb24gYWUoVyl7dGhpcy5yYW5kPVd9aWYoVS5leHBvcnRzPWZ1bmN0aW9uKFcpe3JldHVybiBpZXx8KGllPW5ldyBhZShudWxsKSksaWUuZ2VuZXJhdGUoVyl9LFUuZXhwb3J0cy5SYW5kPWFlLGFlLnByb3RvdHlwZS5nZW5lcmF0ZT1mdW5jdGlvbihXKXtyZXR1cm4g''@;'; + put 'put ''dGhpcy5fcmFuZChXKX0sYWUucHJvdG90eXBlLl9yYW5kPWZ1bmN0aW9uKFcpe2lmKHRoaXMucmFuZC5nZXRCeXRlcylyZXR1cm4gdGhpcy5yYW5kLmdldEJ5dGVzKFcpO2Zvcih2YXIgTj1uZXcgVWludDhBcnJheShXKSxlZT0wO2VlPE4ubGVuZ3RoO2VlKyspTltlZV09dGhpcy5yYW5kLmdl''@;'; + put 'put ''dEJ5dGUoKTtyZXR1cm4gTn0sIm9iamVjdCI9PXR5cGVvZiBzZWxmKXNlbGYuY3J5cHRvJiZzZWxmLmNyeXB0by5nZXRSYW5kb21WYWx1ZXM/YWUucHJvdG90eXBlLl9yYW5kPWZ1bmN0aW9uKFcpe3ZhciBOPW5ldyBVaW50OEFycmF5KFcpO3JldHVybiBzZWxmLmNyeXB0by5nZXRSYW5kb21W''@;'; + put 'put ''YWx1ZXMoTiksTn06c2VsZi5tc0NyeXB0byYmc2VsZi5tc0NyeXB0by5nZXRSYW5kb21WYWx1ZXM/YWUucHJvdG90eXBlLl9yYW5kPWZ1bmN0aW9uKFcpe3ZhciBOPW5ldyBVaW50OEFycmF5KFcpO3JldHVybiBzZWxmLm1zQ3J5cHRvLmdldFJhbmRvbVZhbHVlcyhOKSxOfToib2JqZWN0Ij09''@;'; + put 'put ''dHlwZW9mIHdpbmRvdyYmKGFlLnByb3RvdHlwZS5fcmFuZD1mdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcigiTm90IGltcGxlbWVudGVkIHlldCIpfSk7ZWxzZSB0cnl7dmFyIFk9Wig5MjE0KTtpZigiZnVuY3Rpb24iIT10eXBlb2YgWS5yYW5kb21CeXRlcyl0aHJvdyBuZXcgRXJyb3IoIk5v''@;'; + put 'put ''dCBzdXBwb3J0ZWQiKTthZS5wcm90b3R5cGUuX3JhbmQ9ZnVuY3Rpb24oVyl7cmV0dXJuIFkucmFuZG9tQnl0ZXMoVyl9fWNhdGNoKFcpe319LDQ0OTc6KFUsUSxaKT0+e3ZhciBpZT1aKDk1MDkpLkJ1ZmZlcjtmdW5jdGlvbiBhZShKKXtpZS5pc0J1ZmZlcihKKXx8KEo9aWUuZnJvbShKKSk7''@;'; + put 'put ''Zm9yKHZhciBzZT1KLmxlbmd0aC80fDAsb2U9bmV3IEFycmF5KHNlKSxjZT0wO2NlPHNlO2NlKyspb2VbY2VdPUoucmVhZFVJbnQzMkJFKDQqY2UpO3JldHVybiBvZX1mdW5jdGlvbiBZKEope2Zvcig7MDxKLmxlbmd0aDtKKyspSlswXT0wfWZ1bmN0aW9uIFcoSixzZSxvZSxjZSxkZSl7Zm9y''@;'; + put 'put ''KHZhciB2ZSxBZSxrZSxTZSxJZT1vZVswXSxUZT1vZVsxXSxFZT1vZVsyXSxoZT1vZVszXSxPPUpbMF1ec2VbMF0sej1KWzFdXnNlWzFdLG5lPUpbMl1ec2VbMl0sdGU9SlszXV5zZVszXSx4PTQsUD0xO1A8ZGU7UCsrKXZlPUllW08+Pj4yNF1eVGVbej4+PjE2JjI1NV1eRWVbbmU+Pj44JjI1''@;'; + put 'put ''NV1eaGVbMjU1JnRlXV5zZVt4KytdLEFlPUllW3o+Pj4yNF1eVGVbbmU+Pj4xNiYyNTVdXkVlW3RlPj4+OCYyNTVdXmhlWzI1NSZPXV5zZVt4KytdLGtlPUllW25lPj4+MjRdXlRlW3RlPj4+MTYmMjU1XV5FZVtPPj4+OCYyNTVdXmhlWzI1NSZ6XV5zZVt4KytdLFNlPUllW3RlPj4+MjRdXlRl''@;'; + put 'put ''W08+Pj4xNiYyNTVdXkVlW3o+Pj44JjI1NV1eaGVbMjU1Jm5lXV5zZVt4KytdLE89dmUsej1BZSxuZT1rZSx0ZT1TZTtyZXR1cm4gdmU9KGNlW08+Pj4yNF08PDI0fGNlW3o+Pj4xNiYyNTVdPDwxNnxjZVtuZT4+PjgmMjU1XTw8OHxjZVsyNTUmdGVdKV5zZVt4KytdLEFlPShjZVt6Pj4+MjRd''@;'; + put 'put ''PDwyNHxjZVtuZT4+PjE2JjI1NV08PDE2fGNlW3RlPj4+OCYyNTVdPDw4fGNlWzI1NSZPXSlec2VbeCsrXSxrZT0oY2VbbmU+Pj4yNF08PDI0fGNlW3RlPj4+MTYmMjU1XTw8MTZ8Y2VbTz4+PjgmMjU1XTw8OHxjZVsyNTUmel0pXnNlW3grK10sU2U9KGNlW3RlPj4+MjRdPDwyNHxjZVtPPj4+''@;'; + put 'put ''MTYmMjU1XTw8MTZ8Y2Vbej4+PjgmMjU1XTw8OHxjZVsyNTUmbmVdKV5zZVt4KytdLFt2ZT4+Pj0wLEFlPj4+PTAsa2U+Pj49MCxTZT4+Pj0wXX12YXIgTj1bMCwxLDIsNCw4LDE2LDMyLDY0LDEyOCwyNyw1NF0sZWU9ZnVuY3Rpb24oKXtmb3IodmFyIEo9bmV3IEFycmF5KDI1Niksc2U9MDtz''@;'; + put 'put ''ZTwyNTY7c2UrKylKW3NlXT1zZTwxMjg/c2U8PDE6c2U8PDFeMjgzO2Zvcih2YXIgb2U9W10sY2U9W10sZGU9W1tdLFtdLFtdLFtdXSx2ZT1bW10sW10sW10sW11dLEFlPTAsa2U9MCxTZT0wO1NlPDI1NjsrK1NlKXt2YXIgSWU9a2Vea2U8PDFea2U8PDJea2U8PDNea2U8PDQ7b2VbQWVdPUll''@;'; + put 'put ''PUllPj4+OF4yNTUmSWVeOTksY2VbSWVdPUFlO3ZhciBUZT1KW0FlXSxFZT1KW1RlXSxoZT1KW0VlXSxPPTI1NypKW0llXV4xNjg0MzAwOCpJZTtkZVswXVtBZV09Tzw8MjR8Tz4+PjgsZGVbMV1bQWVdPU88PDE2fE8+Pj4xNixkZVsyXVtBZV09Tzw8OHxPPj4+MjQsZGVbM11bQWVdPU8sdmVb''@;'; + put 'put ''MF1bSWVdPShPPTE2ODQzMDA5KmhlXjY1NTM3KkVlXjI1NypUZV4xNjg0MzAwOCpBZSk8PDI0fE8+Pj44LHZlWzFdW0llXT1PPDwxNnxPPj4+MTYsdmVbMl1bSWVdPU88PDh8Tz4+PjI0LHZlWzNdW0llXT1PLDA9PT1BZT9BZT1rZT0xOihBZT1UZV5KW0pbSltoZV5UZV1dXSxrZV49SltKW2tl''@;'; + put 'put ''XV0pfXJldHVybntTQk9YOm9lLElOVl9TQk9YOmNlLFNVQl9NSVg6ZGUsSU5WX1NVQl9NSVg6dmV9fSgpO2Z1bmN0aW9uIHEoSil7dGhpcy5fa2V5PWFlKEopLHRoaXMuX3Jlc2V0KCl9cS5ibG9ja1NpemU9MTYscS5rZXlTaXplPTMyLHEucHJvdG90eXBlLmJsb2NrU2l6ZT1xLmJsb2NrU2l6''@;'; + put 'put ''ZSxxLnByb3RvdHlwZS5rZXlTaXplPXEua2V5U2l6ZSxxLnByb3RvdHlwZS5fcmVzZXQ9ZnVuY3Rpb24oKXtmb3IodmFyIEo9dGhpcy5fa2V5LHNlPUoubGVuZ3RoLG9lPXNlKzYsY2U9NCoob2UrMSksZGU9W10sdmU9MDt2ZTxzZTt2ZSsrKWRlW3ZlXT1KW3ZlXTtmb3IodmU9c2U7dmU8Y2U7''@;'; + put 'put ''dmUrKyl7dmFyIEFlPWRlW3ZlLTFdO3ZlJXNlPT0wPyhBZT1lZS5TQk9YWyhBZT1BZTw8OHxBZT4+PjI0KT4+PjI0XTw8MjR8ZWUuU0JPWFtBZT4+PjE2JjI1NV08PDE2fGVlLlNCT1hbQWU+Pj44JjI1NV08PDh8ZWUuU0JPWFsyNTUmQWVdLEFlXj1OW3ZlL3NlfDBdPDwyNCk6c2U+NiYmdmUl''@;'; + put 'put ''c2U9PTQmJihBZT1lZS5TQk9YW0FlPj4+MjRdPDwyNHxlZS5TQk9YW0FlPj4+MTYmMjU1XTw8MTZ8ZWUuU0JPWFtBZT4+PjgmMjU1XTw8OHxlZS5TQk9YWzI1NSZBZV0pLGRlW3ZlXT1kZVt2ZS1zZV1eQWV9Zm9yKHZhciBrZT1bXSxTZT0wO1NlPGNlO1NlKyspe3ZhciBJZT1jZS1TZSxUZT1k''@;'; + put 'put ''ZVtJZS0oU2UlND8wOjQpXTtrZVtTZV09U2U8NHx8SWU8PTQ/VGU6ZWUuSU5WX1NVQl9NSVhbMF1bZWUuU0JPWFtUZT4+PjI0XV1eZWUuSU5WX1NVQl9NSVhbMV1bZWUuU0JPWFtUZT4+PjE2JjI1NV1dXmVlLklOVl9TVUJfTUlYWzJdW2VlLlNCT1hbVGU+Pj44JjI1NV1dXmVlLklOVl9TVUJf''@;'; + put 'put ''TUlYWzNdW2VlLlNCT1hbMjU1JlRlXV19dGhpcy5fblJvdW5kcz1vZSx0aGlzLl9rZXlTY2hlZHVsZT1kZSx0aGlzLl9pbnZLZXlTY2hlZHVsZT1rZX0scS5wcm90b3R5cGUuZW5jcnlwdEJsb2NrUmF3PWZ1bmN0aW9uKEope3JldHVybiBXKEo9YWUoSiksdGhpcy5fa2V5U2NoZWR1bGUsZWUu''@;'; + put 'put ''U1VCX01JWCxlZS5TQk9YLHRoaXMuX25Sb3VuZHMpfSxxLnByb3RvdHlwZS5lbmNyeXB0QmxvY2s9ZnVuY3Rpb24oSil7dmFyIHNlPXRoaXMuZW5jcnlwdEJsb2NrUmF3KEopLG9lPWllLmFsbG9jVW5zYWZlKDE2KTtyZXR1cm4gb2Uud3JpdGVVSW50MzJCRShzZVswXSwwKSxvZS53cml0ZVVJ''@;'; + put 'put ''bnQzMkJFKHNlWzFdLDQpLG9lLndyaXRlVUludDMyQkUoc2VbMl0sOCksb2Uud3JpdGVVSW50MzJCRShzZVszXSwxMiksb2V9LHEucHJvdG90eXBlLmRlY3J5cHRCbG9jaz1mdW5jdGlvbihKKXt2YXIgc2U9KEo9YWUoSikpWzFdO0pbMV09SlszXSxKWzNdPXNlO3ZhciBvZT1XKEosdGhpcy5f''@;'; + put 'put ''aW52S2V5U2NoZWR1bGUsZWUuSU5WX1NVQl9NSVgsZWUuSU5WX1NCT1gsdGhpcy5fblJvdW5kcyksY2U9aWUuYWxsb2NVbnNhZmUoMTYpO3JldHVybiBjZS53cml0ZVVJbnQzMkJFKG9lWzBdLDApLGNlLndyaXRlVUludDMyQkUob2VbM10sNCksY2Uud3JpdGVVSW50MzJCRShvZVsyXSw4KSxj''@;'; + put 'put ''ZS53cml0ZVVJbnQzMkJFKG9lWzFdLDEyKSxjZX0scS5wcm90b3R5cGUuc2NydWI9ZnVuY3Rpb24oKXtZKHRoaXMuX2tleVNjaGVkdWxlKSxZKHRoaXMuX2ludktleVNjaGVkdWxlKSxZKHRoaXMuX2tleSl9LFUuZXhwb3J0cy5BRVM9cX0sNDg0ODooVSxRLFopPT57dmFyIGllPVooNDQ5Nyks''@;'; + put 'put ''YWU9Wig5NTA5KS5CdWZmZXIsWT1aKDEwMjcpLFc9Wig1NzE3KSxOPVooMzI4OCksZWU9Wig3Mjk1KSxxPVooNjg1KTtmdW5jdGlvbiBKKHNlLG9lLGNlLGRlKXtZLmNhbGwodGhpcyk7dmFyIHZlPWFlLmFsbG9jKDQsMCk7dGhpcy5fY2lwaGVyPW5ldyBpZS5BRVMob2UpO3ZhciBBZT10aGlz''@;'; + put 'put ''Ll9jaXBoZXIuZW5jcnlwdEJsb2NrKHZlKTt0aGlzLl9naGFzaD1uZXcgTihBZSksY2U9ZnVuY3Rpb24oa2UsU2UsSWUpe2lmKDEyPT09U2UubGVuZ3RoKXJldHVybiBrZS5fZmluSUQ9YWUuY29uY2F0KFtTZSxhZS5mcm9tKFswLDAsMCwxXSldKSxhZS5jb25jYXQoW1NlLGFlLmZyb20oWzAs''@;'; + put 'put ''MCwwLDJdKV0pO3ZhciBUZT1uZXcgTihJZSksRWU9U2UubGVuZ3RoLGhlPUVlJTE2O1RlLnVwZGF0ZShTZSksaGUmJlRlLnVwZGF0ZShhZS5hbGxvYyhoZT0xNi1oZSwwKSksVGUudXBkYXRlKGFlLmFsbG9jKDgsMCkpO3ZhciBPPTgqRWUsej1hZS5hbGxvYyg4KTt6LndyaXRlVUludEJFKE8s''@;'; + put 'put ''MCw4KSxUZS51cGRhdGUoeiksa2UuX2ZpbklEPVRlLnN0YXRlO3ZhciBuZT1hZS5mcm9tKGtlLl9maW5JRCk7cmV0dXJuIHEobmUpLG5lfSh0aGlzLGNlLEFlKSx0aGlzLl9wcmV2PWFlLmZyb20oY2UpLHRoaXMuX2NhY2hlPWFlLmFsbG9jVW5zYWZlKDApLHRoaXMuX3NlY0NhY2hlPWFlLmFs''@;'; + put 'put ''bG9jVW5zYWZlKDApLHRoaXMuX2RlY3J5cHQ9ZGUsdGhpcy5fYWxlbj0wLHRoaXMuX2xlbj0wLHRoaXMuX21vZGU9c2UsdGhpcy5fYXV0aFRhZz1udWxsLHRoaXMuX2NhbGxlZD0hMX1XKEosWSksSi5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbihzZSl7aWYoIXRoaXMuX2NhbGxlZCYmdGhp''@;'; + put 'put ''cy5fYWxlbil7dmFyIG9lPTE2LXRoaXMuX2FsZW4lMTY7b2U8MTYmJihvZT1hZS5hbGxvYyhvZSwwKSx0aGlzLl9naGFzaC51cGRhdGUob2UpKX10aGlzLl9jYWxsZWQ9ITA7dmFyIGNlPXRoaXMuX21vZGUuZW5jcnlwdCh0aGlzLHNlKTtyZXR1cm4gdGhpcy5fZ2hhc2gudXBkYXRlKHRoaXMu''@;'; + put 'put ''X2RlY3J5cHQ/c2U6Y2UpLHRoaXMuX2xlbis9c2UubGVuZ3RoLGNlfSxKLnByb3RvdHlwZS5fZmluYWw9ZnVuY3Rpb24oKXtpZih0aGlzLl9kZWNyeXB0JiYhdGhpcy5fYXV0aFRhZyl0aHJvdyBuZXcgRXJyb3IoIlVuc3VwcG9ydGVkIHN0YXRlIG9yIHVuYWJsZSB0byBhdXRoZW50aWNhdGUg''@;'; + put 'put ''ZGF0YSIpO3ZhciBzZT1lZSh0aGlzLl9naGFzaC5maW5hbCg4KnRoaXMuX2FsZW4sOCp0aGlzLl9sZW4pLHRoaXMuX2NpcGhlci5lbmNyeXB0QmxvY2sodGhpcy5fZmluSUQpKTtpZih0aGlzLl9kZWNyeXB0JiZmdW5jdGlvbihvZSxjZSl7dmFyIGRlPTA7b2UubGVuZ3RoIT09Y2UubGVuZ3Ro''@;'; + put 'put ''JiZkZSsrO2Zvcih2YXIgdmU9TWF0aC5taW4ob2UubGVuZ3RoLGNlLmxlbmd0aCksQWU9MDtBZTx2ZTsrK0FlKWRlKz1vZVtBZV1eY2VbQWVdO3JldHVybiBkZX0oc2UsdGhpcy5fYXV0aFRhZykpdGhyb3cgbmV3IEVycm9yKCJVbnN1cHBvcnRlZCBzdGF0ZSBvciB1bmFibGUgdG8gYXV0aGVu''@;'; + put 'put ''dGljYXRlIGRhdGEiKTt0aGlzLl9hdXRoVGFnPXNlLHRoaXMuX2NpcGhlci5zY3J1YigpfSxKLnByb3RvdHlwZS5nZXRBdXRoVGFnPWZ1bmN0aW9uKCl7aWYodGhpcy5fZGVjcnlwdHx8IWFlLmlzQnVmZmVyKHRoaXMuX2F1dGhUYWcpKXRocm93IG5ldyBFcnJvcigiQXR0ZW1wdGluZyB0byBn''@;'; + put 'put ''ZXQgYXV0aCB0YWcgaW4gdW5zdXBwb3J0ZWQgc3RhdGUiKTtyZXR1cm4gdGhpcy5fYXV0aFRhZ30sSi5wcm90b3R5cGUuc2V0QXV0aFRhZz1mdW5jdGlvbihzZSl7aWYoIXRoaXMuX2RlY3J5cHQpdGhyb3cgbmV3IEVycm9yKCJBdHRlbXB0aW5nIHRvIHNldCBhdXRoIHRhZyBpbiB1bnN1cHBv''@;'; + put 'put ''cnRlZCBzdGF0ZSIpO3RoaXMuX2F1dGhUYWc9c2V9LEoucHJvdG90eXBlLnNldEFBRD1mdW5jdGlvbihzZSl7aWYodGhpcy5fY2FsbGVkKXRocm93IG5ldyBFcnJvcigiQXR0ZW1wdGluZyB0byBzZXQgQUFEIGluIHVuc3VwcG9ydGVkIHN0YXRlIik7dGhpcy5fZ2hhc2gudXBkYXRlKHNlKSx0''@;'; + put 'put ''aGlzLl9hbGVuKz1zZS5sZW5ndGh9LFUuZXhwb3J0cz1KfSw0Njk2OihVLFEsWik9Pnt2YXIgaWU9WigxNDk0KSxhZT1aKDYxOTMpLFk9Wig0OTQ2KTtRLmNyZWF0ZUNpcGhlcj1RLkNpcGhlcj1pZS5jcmVhdGVDaXBoZXIsUS5jcmVhdGVDaXBoZXJpdj1RLkNpcGhlcml2PWllLmNyZWF0ZUNp''@;'; + put 'put ''cGhlcml2LFEuY3JlYXRlRGVjaXBoZXI9US5EZWNpcGhlcj1hZS5jcmVhdGVEZWNpcGhlcixRLmNyZWF0ZURlY2lwaGVyaXY9US5EZWNpcGhlcml2PWFlLmNyZWF0ZURlY2lwaGVyaXYsUS5saXN0Q2lwaGVycz1RLmdldENpcGhlcnM9ZnVuY3Rpb24oKXtyZXR1cm4gT2JqZWN0LmtleXMoWSl9''@;'; + put 'put ''fSw2MTkzOihVLFEsWik9Pnt2YXIgaWU9Wig0ODQ4KSxhZT1aKDk1MDkpLkJ1ZmZlcixZPVooNDUpLFc9Wig1OTY5KSxOPVooMTAyNyksZWU9Wig0NDk3KSxxPVooMzA0OCk7ZnVuY3Rpb24gSihjZSxkZSx2ZSl7Ti5jYWxsKHRoaXMpLHRoaXMuX2NhY2hlPW5ldyBzZSx0aGlzLl9sYXN0PXZv''@;'; + put 'put ''aWQgMCx0aGlzLl9jaXBoZXI9bmV3IGVlLkFFUyhkZSksdGhpcy5fcHJldj1hZS5mcm9tKHZlKSx0aGlzLl9tb2RlPWNlLHRoaXMuX2F1dG9wYWRkaW5nPSEwfWZ1bmN0aW9uIHNlKCl7dGhpcy5jYWNoZT1hZS5hbGxvY1Vuc2FmZSgwKX1mdW5jdGlvbiBvZShjZSxkZSx2ZSl7dmFyIEFlPVlb''@;'; + put 'put ''Y2UudG9Mb3dlckNhc2UoKV07aWYoIUFlKXRocm93IG5ldyBUeXBlRXJyb3IoImludmFsaWQgc3VpdGUgdHlwZSIpO2lmKCJzdHJpbmciPT10eXBlb2YgdmUmJih2ZT1hZS5mcm9tKHZlKSksIkdDTSIhPT1BZS5tb2RlJiZ2ZS5sZW5ndGghPT1BZS5pdil0aHJvdyBuZXcgVHlwZUVycm9yKCJp''@;'; + put 'put ''bnZhbGlkIGl2IGxlbmd0aCAiK3ZlLmxlbmd0aCk7aWYoInN0cmluZyI9PXR5cGVvZiBkZSYmKGRlPWFlLmZyb20oZGUpKSxkZS5sZW5ndGghPT1BZS5rZXkvOCl0aHJvdyBuZXcgVHlwZUVycm9yKCJpbnZhbGlkIGtleSBsZW5ndGggIitkZS5sZW5ndGgpO3JldHVybiJzdHJlYW0iPT09QWUu''@;'; + put 'put ''dHlwZT9uZXcgVyhBZS5tb2R1bGUsZGUsdmUsITApOiJhdXRoIj09PUFlLnR5cGU/bmV3IGllKEFlLm1vZHVsZSxkZSx2ZSwhMCk6bmV3IEooQWUubW9kdWxlLGRlLHZlKX1aKDU3MTcpKEosTiksSi5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbihjZSl7dmFyIGRlLHZlO3RoaXMuX2NhY2hl''@;'; + put 'put ''LmFkZChjZSk7Zm9yKHZhciBBZT1bXTtkZT10aGlzLl9jYWNoZS5nZXQodGhpcy5fYXV0b3BhZGRpbmcpOyl2ZT10aGlzLl9tb2RlLmRlY3J5cHQodGhpcyxkZSksQWUucHVzaCh2ZSk7cmV0dXJuIGFlLmNvbmNhdChBZSl9LEoucHJvdG90eXBlLl9maW5hbD1mdW5jdGlvbigpe3ZhciBjZT10''@;'; + put 'put ''aGlzLl9jYWNoZS5mbHVzaCgpO2lmKHRoaXMuX2F1dG9wYWRkaW5nKXJldHVybiBmdW5jdGlvbihkZSl7dmFyIHZlPWRlWzE1XTtpZih2ZTwxfHx2ZT4xNil0aHJvdyBuZXcgRXJyb3IoInVuYWJsZSB0byBkZWNyeXB0IGRhdGEiKTtmb3IodmFyIEFlPS0xOysrQWU8dmU7KWlmKGRlW0FlKygx''@;'; + put 'put ''Ni12ZSldIT09dmUpdGhyb3cgbmV3IEVycm9yKCJ1bmFibGUgdG8gZGVjcnlwdCBkYXRhIik7aWYoMTYhPT12ZSlyZXR1cm4gZGUuc2xpY2UoMCwxNi12ZSl9KHRoaXMuX21vZGUuZGVjcnlwdCh0aGlzLGNlKSk7aWYoY2UpdGhyb3cgbmV3IEVycm9yKCJkYXRhIG5vdCBtdWx0aXBsZSBvZiBi''@;'; + put 'put ''bG9jayBsZW5ndGgiKX0sSi5wcm90b3R5cGUuc2V0QXV0b1BhZGRpbmc9ZnVuY3Rpb24oY2Upe3JldHVybiB0aGlzLl9hdXRvcGFkZGluZz0hIWNlLHRoaXN9LHNlLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oY2Upe3RoaXMuY2FjaGU9YWUuY29uY2F0KFt0aGlzLmNhY2hlLGNlXSl9LHNlLnBy''@;'; + put 'put ''b3RvdHlwZS5nZXQ9ZnVuY3Rpb24oY2Upe3ZhciBkZTtpZihjZSl7aWYodGhpcy5jYWNoZS5sZW5ndGg+MTYpcmV0dXJuIGRlPXRoaXMuY2FjaGUuc2xpY2UoMCwxNiksdGhpcy5jYWNoZT10aGlzLmNhY2hlLnNsaWNlKDE2KSxkZX1lbHNlIGlmKHRoaXMuY2FjaGUubGVuZ3RoPj0xNilyZXR1''@;'; + put 'put ''cm4gZGU9dGhpcy5jYWNoZS5zbGljZSgwLDE2KSx0aGlzLmNhY2hlPXRoaXMuY2FjaGUuc2xpY2UoMTYpLGRlO3JldHVybiBudWxsfSxzZS5wcm90b3R5cGUuZmx1c2g9ZnVuY3Rpb24oKXtpZih0aGlzLmNhY2hlLmxlbmd0aClyZXR1cm4gdGhpcy5jYWNoZX0sUS5jcmVhdGVEZWNpcGhlcj1m''@;'; + put 'put ''dW5jdGlvbihjZSxkZSl7dmFyIHZlPVlbY2UudG9Mb3dlckNhc2UoKV07aWYoIXZlKXRocm93IG5ldyBUeXBlRXJyb3IoImludmFsaWQgc3VpdGUgdHlwZSIpO3ZhciBBZT1xKGRlLCExLHZlLmtleSx2ZS5pdik7cmV0dXJuIG9lKGNlLEFlLmtleSxBZS5pdil9LFEuY3JlYXRlRGVjaXBoZXJp''@;'; + put 'put ''dj1vZX0sMTQ5NDooVSxRLFopPT57dmFyIGllPVooNDUpLGFlPVooNDg0OCksWT1aKDk1MDkpLkJ1ZmZlcixXPVooNTk2OSksTj1aKDEwMjcpLGVlPVooNDQ5NykscT1aKDMwNDgpO2Z1bmN0aW9uIEooZGUsdmUsQWUpe04uY2FsbCh0aGlzKSx0aGlzLl9jYWNoZT1uZXcgb2UsdGhpcy5fY2lw''@;'; + put 'put ''aGVyPW5ldyBlZS5BRVModmUpLHRoaXMuX3ByZXY9WS5mcm9tKEFlKSx0aGlzLl9tb2RlPWRlLHRoaXMuX2F1dG9wYWRkaW5nPSEwfVooNTcxNykoSixOKSxKLnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKGRlKXt2YXIgdmUsQWU7dGhpcy5fY2FjaGUuYWRkKGRlKTtmb3IodmFyIGtlPVtd''@;'; + put 'put ''O3ZlPXRoaXMuX2NhY2hlLmdldCgpOylBZT10aGlzLl9tb2RlLmVuY3J5cHQodGhpcyx2ZSksa2UucHVzaChBZSk7cmV0dXJuIFkuY29uY2F0KGtlKX07dmFyIHNlPVkuYWxsb2MoMTYsMTYpO2Z1bmN0aW9uIG9lKCl7dGhpcy5jYWNoZT1ZLmFsbG9jVW5zYWZlKDApfWZ1bmN0aW9uIGNlKGRl''@;'; + put 'put ''LHZlLEFlKXt2YXIga2U9aWVbZGUudG9Mb3dlckNhc2UoKV07aWYoIWtlKXRocm93IG5ldyBUeXBlRXJyb3IoImludmFsaWQgc3VpdGUgdHlwZSIpO2lmKCJzdHJpbmciPT10eXBlb2YgdmUmJih2ZT1ZLmZyb20odmUpKSx2ZS5sZW5ndGghPT1rZS5rZXkvOCl0aHJvdyBuZXcgVHlwZUVycm9y''@;'; + put 'put ''KCJpbnZhbGlkIGtleSBsZW5ndGggIit2ZS5sZW5ndGgpO2lmKCJzdHJpbmciPT10eXBlb2YgQWUmJihBZT1ZLmZyb20oQWUpKSwiR0NNIiE9PWtlLm1vZGUmJkFlLmxlbmd0aCE9PWtlLml2KXRocm93IG5ldyBUeXBlRXJyb3IoImludmFsaWQgaXYgbGVuZ3RoICIrQWUubGVuZ3RoKTtyZXR1''@;'; + put 'put ''cm4ic3RyZWFtIj09PWtlLnR5cGU/bmV3IFcoa2UubW9kdWxlLHZlLEFlKToiYXV0aCI9PT1rZS50eXBlP25ldyBhZShrZS5tb2R1bGUsdmUsQWUpOm5ldyBKKGtlLm1vZHVsZSx2ZSxBZSl9Si5wcm90b3R5cGUuX2ZpbmFsPWZ1bmN0aW9uKCl7dmFyIGRlPXRoaXMuX2NhY2hlLmZsdXNoKCk7''@;'; + put 'put ''aWYodGhpcy5fYXV0b3BhZGRpbmcpcmV0dXJuIGRlPXRoaXMuX21vZGUuZW5jcnlwdCh0aGlzLGRlKSx0aGlzLl9jaXBoZXIuc2NydWIoKSxkZTtpZighZGUuZXF1YWxzKHNlKSl0aHJvdyB0aGlzLl9jaXBoZXIuc2NydWIoKSxuZXcgRXJyb3IoImRhdGEgbm90IG11bHRpcGxlIG9mIGJsb2Nr''@;'; + put 'put ''IGxlbmd0aCIpfSxKLnByb3RvdHlwZS5zZXRBdXRvUGFkZGluZz1mdW5jdGlvbihkZSl7cmV0dXJuIHRoaXMuX2F1dG9wYWRkaW5nPSEhZGUsdGhpc30sb2UucHJvdG90eXBlLmFkZD1mdW5jdGlvbihkZSl7dGhpcy5jYWNoZT1ZLmNvbmNhdChbdGhpcy5jYWNoZSxkZV0pfSxvZS5wcm90b3R5''@;'; + put 'put ''cGUuZ2V0PWZ1bmN0aW9uKCl7aWYodGhpcy5jYWNoZS5sZW5ndGg+MTUpe3ZhciBkZT10aGlzLmNhY2hlLnNsaWNlKDAsMTYpO3JldHVybiB0aGlzLmNhY2hlPXRoaXMuY2FjaGUuc2xpY2UoMTYpLGRlfXJldHVybiBudWxsfSxvZS5wcm90b3R5cGUuZmx1c2g9ZnVuY3Rpb24oKXtmb3IodmFy''@;'; + put 'put ''IGRlPTE2LXRoaXMuY2FjaGUubGVuZ3RoLHZlPVkuYWxsb2NVbnNhZmUoZGUpLEFlPS0xOysrQWU8ZGU7KXZlLndyaXRlVUludDgoZGUsQWUpO3JldHVybiBZLmNvbmNhdChbdGhpcy5jYWNoZSx2ZV0pfSxRLmNyZWF0ZUNpcGhlcml2PWNlLFEuY3JlYXRlQ2lwaGVyPWZ1bmN0aW9uKGRlLHZl''@;'; + put 'put ''KXt2YXIgQWU9aWVbZGUudG9Mb3dlckNhc2UoKV07aWYoIUFlKXRocm93IG5ldyBUeXBlRXJyb3IoImludmFsaWQgc3VpdGUgdHlwZSIpO3ZhciBrZT1xKHZlLCExLEFlLmtleSxBZS5pdik7cmV0dXJuIGNlKGRlLGtlLmtleSxrZS5pdil9fSwzMjg4OihVLFEsWik9Pnt2YXIgaWU9Wig5NTA5''@;'; + put 'put ''KS5CdWZmZXIsYWU9aWUuYWxsb2MoMTYsMCk7ZnVuY3Rpb24gWShOKXt2YXIgZWU9aWUuYWxsb2NVbnNhZmUoMTYpO3JldHVybiBlZS53cml0ZVVJbnQzMkJFKE5bMF0+Pj4wLDApLGVlLndyaXRlVUludDMyQkUoTlsxXT4+PjAsNCksZWUud3JpdGVVSW50MzJCRShOWzJdPj4+MCw4KSxlZS53''@;'; + put 'put ''cml0ZVVJbnQzMkJFKE5bM10+Pj4wLDEyKSxlZX1mdW5jdGlvbiBXKE4pe3RoaXMuaD1OLHRoaXMuc3RhdGU9aWUuYWxsb2MoMTYsMCksdGhpcy5jYWNoZT1pZS5hbGxvY1Vuc2FmZSgwKX1XLnByb3RvdHlwZS5naGFzaD1mdW5jdGlvbihOKXtmb3IodmFyIGVlPS0xOysrZWU8Ti5sZW5ndGg7''@;'; + put 'put ''KXRoaXMuc3RhdGVbZWVdXj1OW2VlXTt0aGlzLl9tdWx0aXBseSgpfSxXLnByb3RvdHlwZS5fbXVsdGlwbHk9ZnVuY3Rpb24oKXtmb3IodmFyIE4sZWUscSxKPVsoTj10aGlzLmgpLnJlYWRVSW50MzJCRSgwKSxOLnJlYWRVSW50MzJCRSg0KSxOLnJlYWRVSW50MzJCRSg4KSxOLnJlYWRVSW50''@;'; + put 'put ''MzJCRSgxMildLHNlPVswLDAsMCwwXSxvZT0tMTsrK29lPDEyODspe2ZvcigwIT0odGhpcy5zdGF0ZVt+fihvZS84KV0mMTw8Ny1vZSU4KSYmKHNlWzBdXj1KWzBdLHNlWzFdXj1KWzFdLHNlWzJdXj1KWzJdLHNlWzNdXj1KWzNdKSxxPTAhPSgxJkpbM10pLGVlPTM7ZWU+MDtlZS0tKUpbZWVd''@;'; + put 'put ''PUpbZWVdPj4+MXwoMSZKW2VlLTFdKTw8MzE7SlswXT1KWzBdPj4+MSxxJiYoSlswXT0tNTIwMDkzNjk2XkpbMF0pfXRoaXMuc3RhdGU9WShzZSl9LFcucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbihOKXt2YXIgZWU7Zm9yKHRoaXMuY2FjaGU9aWUuY29uY2F0KFt0aGlzLmNhY2hlLE5dKTt0''@;'; + put 'put ''aGlzLmNhY2hlLmxlbmd0aD49MTY7KWVlPXRoaXMuY2FjaGUuc2xpY2UoMCwxNiksdGhpcy5jYWNoZT10aGlzLmNhY2hlLnNsaWNlKDE2KSx0aGlzLmdoYXNoKGVlKX0sVy5wcm90b3R5cGUuZmluYWw9ZnVuY3Rpb24oTixlZSl7cmV0dXJuIHRoaXMuY2FjaGUubGVuZ3RoJiZ0aGlzLmdoYXNo''@;'; + put 'put ''KGllLmNvbmNhdChbdGhpcy5jYWNoZSxhZV0sMTYpKSx0aGlzLmdoYXNoKFkoWzAsTiwwLGVlXSkpLHRoaXMuc3RhdGV9LFUuZXhwb3J0cz1XfSw2ODU6VT0+e1UuZXhwb3J0cz1mdW5jdGlvbihRKXtmb3IodmFyIFosaWU9US5sZW5ndGg7aWUtLTspe2lmKDI1NSE9PShaPVEucmVhZFVJbnQ4''@;'; + put 'put ''KGllKSkpe1orKyxRLndyaXRlVUludDgoWixpZSk7YnJlYWt9US53cml0ZVVJbnQ4KDAsaWUpfX19LDUyOTI6KFUsUSxaKT0+e3ZhciBpZT1aKDcyOTUpO1EuZW5jcnlwdD1mdW5jdGlvbihhZSxZKXt2YXIgVz1pZShZLGFlLl9wcmV2KTtyZXR1cm4gYWUuX3ByZXY9YWUuX2NpcGhlci5lbmNy''@;'; + put 'put ''eXB0QmxvY2soVyksYWUuX3ByZXZ9LFEuZGVjcnlwdD1mdW5jdGlvbihhZSxZKXt2YXIgVz1hZS5fcHJldjthZS5fcHJldj1ZO3ZhciBOPWFlLl9jaXBoZXIuZGVjcnlwdEJsb2NrKFkpO3JldHVybiBpZShOLFcpfX0sNjMxMTooVSxRLFopPT57dmFyIGllPVooOTUwOSkuQnVmZmVyLGFlPVoo''@;'; + put 'put ''NzI5NSk7ZnVuY3Rpb24gWShXLE4sZWUpe3ZhciBxPU4ubGVuZ3RoLEo9YWUoTixXLl9jYWNoZSk7cmV0dXJuIFcuX2NhY2hlPVcuX2NhY2hlLnNsaWNlKHEpLFcuX3ByZXY9aWUuY29uY2F0KFtXLl9wcmV2LGVlP046Sl0pLEp9US5lbmNyeXB0PWZ1bmN0aW9uKFcsTixlZSl7Zm9yKHZhciBx''@;'; + put 'put ''LEo9aWUuYWxsb2NVbnNhZmUoMCk7Ti5sZW5ndGg7KXtpZigwPT09Vy5fY2FjaGUubGVuZ3RoJiYoVy5fY2FjaGU9Vy5fY2lwaGVyLmVuY3J5cHRCbG9jayhXLl9wcmV2KSxXLl9wcmV2PWllLmFsbG9jVW5zYWZlKDApKSwhKFcuX2NhY2hlLmxlbmd0aDw9Ti5sZW5ndGgpKXtKPWllLmNvbmNh''@;'; + put 'put ''dChbSixZKFcsTixlZSldKTticmVha31KPWllLmNvbmNhdChbSixZKFcsTi5zbGljZSgwLHE9Vy5fY2FjaGUubGVuZ3RoKSxlZSldKSxOPU4uc2xpY2UocSl9cmV0dXJuIEp9fSwxNTEwOihVLFEsWik9Pnt2YXIgaWU9Wig5NTA5KS5CdWZmZXI7ZnVuY3Rpb24gYWUoVyxOLGVlKXtmb3IodmFy''@;'; + put 'put ''IHEsSixzZT0tMSxvZT0wOysrc2U8ODspcT1OJjE8PDctc2U/MTI4OjAsb2UrPSgxMjgmKEo9Vy5fY2lwaGVyLmVuY3J5cHRCbG9jayhXLl9wcmV2KVswXV5xKSk+PnNlJTgsVy5fcHJldj1ZKFcuX3ByZXYsZWU/cTpKKTtyZXR1cm4gb2V9ZnVuY3Rpb24gWShXLE4pe3ZhciBlZT1XLmxlbmd0''@;'; + put 'put ''aCxxPS0xLEo9aWUuYWxsb2NVbnNhZmUoVy5sZW5ndGgpO2ZvcihXPWllLmNvbmNhdChbVyxpZS5mcm9tKFtOXSldKTsrK3E8ZWU7KUpbcV09V1txXTw8MXxXW3ErMV0+Pjc7cmV0dXJuIEp9US5lbmNyeXB0PWZ1bmN0aW9uKFcsTixlZSl7Zm9yKHZhciBxPU4ubGVuZ3RoLEo9aWUuYWxsb2NV''@;'; + put 'put ''bnNhZmUocSksc2U9LTE7KytzZTxxOylKW3NlXT1hZShXLE5bc2VdLGVlKTtyZXR1cm4gSn19LDE5NjQ6KFUsUSxaKT0+e3ZhciBpZT1aKDk1MDkpLkJ1ZmZlcjtmdW5jdGlvbiBhZShZLFcsTil7dmFyIGVlPVkuX2NpcGhlci5lbmNyeXB0QmxvY2soWS5fcHJldilbMF1eVztyZXR1cm4gWS5f''@;'; + put 'put ''cHJldj1pZS5jb25jYXQoW1kuX3ByZXYuc2xpY2UoMSksaWUuZnJvbShbTj9XOmVlXSldKSxlZX1RLmVuY3J5cHQ9ZnVuY3Rpb24oWSxXLE4pe2Zvcih2YXIgZWU9Vy5sZW5ndGgscT1pZS5hbGxvY1Vuc2FmZShlZSksSj0tMTsrK0o8ZWU7KXFbSl09YWUoWSxXW0pdLE4pO3JldHVybiBxfX0s''@;'; + put 'put ''NjAwOTooVSxRLFopPT57dmFyIGllPVooNzI5NSksYWU9Wig5NTA5KS5CdWZmZXIsWT1aKDY4NSk7ZnVuY3Rpb24gVyhOKXt2YXIgZWU9Ti5fY2lwaGVyLmVuY3J5cHRCbG9ja1JhdyhOLl9wcmV2KTtyZXR1cm4gWShOLl9wcmV2KSxlZX1RLmVuY3J5cHQ9ZnVuY3Rpb24oTixlZSl7dmFyIHE9''@;'; + put 'put ''TWF0aC5jZWlsKGVlLmxlbmd0aC8xNiksSj1OLl9jYWNoZS5sZW5ndGg7Ti5fY2FjaGU9YWUuY29uY2F0KFtOLl9jYWNoZSxhZS5hbGxvY1Vuc2FmZSgxNipxKV0pO2Zvcih2YXIgc2U9MDtzZTxxO3NlKyspe3ZhciBvZT1XKE4pLGNlPUorMTYqc2U7Ti5fY2FjaGUud3JpdGVVSW50MzJCRShv''@;'; + put 'put ''ZVswXSxjZSswKSxOLl9jYWNoZS53cml0ZVVJbnQzMkJFKG9lWzFdLGNlKzQpLE4uX2NhY2hlLndyaXRlVUludDMyQkUob2VbMl0sY2UrOCksTi5fY2FjaGUud3JpdGVVSW50MzJCRShvZVszXSxjZSsxMil9dmFyIGRlPU4uX2NhY2hlLnNsaWNlKDAsZWUubGVuZ3RoKTtyZXR1cm4gTi5fY2Fj''@;'; + put 'put ''aGU9Ti5fY2FjaGUuc2xpY2UoZWUubGVuZ3RoKSxpZShlZSxkZSl9fSwxMDg0OihVLFEpPT57US5lbmNyeXB0PWZ1bmN0aW9uKFosaWUpe3JldHVybiBaLl9jaXBoZXIuZW5jcnlwdEJsb2NrKGllKX0sUS5kZWNyeXB0PWZ1bmN0aW9uKFosaWUpe3JldHVybiBaLl9jaXBoZXIuZGVjcnlwdEJs''@;'; + put 'put ''b2NrKGllKX19LDQ1OihVLFEsWik9Pnt2YXIgaWU9e0VDQjpaKDEwODQpLENCQzpaKDUyOTIpLENGQjpaKDYzMTEpLENGQjg6WigxOTY0KSxDRkIxOlooMTUxMCksT0ZCOlooODg2MSksQ1RSOlooNjAwOSksR0NNOlooNjAwOSl9LGFlPVooNDk0Nik7Zm9yKHZhciBZIGluIGFlKWFlW1ldLm1v''@;'; + put 'put ''ZHVsZT1pZVthZVtZXS5tb2RlXTtVLmV4cG9ydHM9YWV9LDg4NjE6KFUsUSxaKT0+e3ZhciBpZT1aKDg3NjQpLkJ1ZmZlcixhZT1aKDcyOTUpO2Z1bmN0aW9uIFkoVyl7cmV0dXJuIFcuX3ByZXY9Vy5fY2lwaGVyLmVuY3J5cHRCbG9jayhXLl9wcmV2KSxXLl9wcmV2fVEuZW5jcnlwdD1mdW5j''@;'; + put 'put ''dGlvbihXLE4pe2Zvcig7Vy5fY2FjaGUubGVuZ3RoPE4ubGVuZ3RoOylXLl9jYWNoZT1pZS5jb25jYXQoW1cuX2NhY2hlLFkoVyldKTt2YXIgZWU9Vy5fY2FjaGUuc2xpY2UoMCxOLmxlbmd0aCk7cmV0dXJuIFcuX2NhY2hlPVcuX2NhY2hlLnNsaWNlKE4ubGVuZ3RoKSxhZShOLGVlKX19LDU5''@;'; + put 'put ''Njk6KFUsUSxaKT0+e3ZhciBpZT1aKDQ0OTcpLGFlPVooOTUwOSkuQnVmZmVyLFk9WigxMDI3KTtmdW5jdGlvbiBXKE4sZWUscSxKKXtZLmNhbGwodGhpcyksdGhpcy5fY2lwaGVyPW5ldyBpZS5BRVMoZWUpLHRoaXMuX3ByZXY9YWUuZnJvbShxKSx0aGlzLl9jYWNoZT1hZS5hbGxvY1Vuc2Fm''@;'; + put 'put ''ZSgwKSx0aGlzLl9zZWNDYWNoZT1hZS5hbGxvY1Vuc2FmZSgwKSx0aGlzLl9kZWNyeXB0PUosdGhpcy5fbW9kZT1OfVooNTcxNykoVyxZKSxXLnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKE4pe3JldHVybiB0aGlzLl9tb2RlLmVuY3J5cHQodGhpcyxOLHRoaXMuX2RlY3J5cHQpfSxXLnBy''@;'; + put 'put ''b3RvdHlwZS5fZmluYWw9ZnVuY3Rpb24oKXt0aGlzLl9jaXBoZXIuc2NydWIoKX0sVS5leHBvcnRzPVd9LDM2MTQ6KFUsUSxaKT0+e3ZhciBpZT1aKDc2NjcpLGFlPVooNDY5NiksWT1aKDQ1KSxXPVooOTcxNSksTj1aKDMwNDgpO2Z1bmN0aW9uIGVlKEosc2Usb2Upe2lmKEo9Si50b0xvd2Vy''@;'; + put 'put ''Q2FzZSgpLFlbSl0pcmV0dXJuIGFlLmNyZWF0ZUNpcGhlcml2KEosc2Usb2UpO2lmKFdbSl0pcmV0dXJuIG5ldyBpZSh7a2V5OnNlLGl2Om9lLG1vZGU6Sn0pO3Rocm93IG5ldyBUeXBlRXJyb3IoImludmFsaWQgc3VpdGUgdHlwZSIpfWZ1bmN0aW9uIHEoSixzZSxvZSl7aWYoSj1KLnRvTG93''@;'; + put 'put ''ZXJDYXNlKCksWVtKXSlyZXR1cm4gYWUuY3JlYXRlRGVjaXBoZXJpdihKLHNlLG9lKTtpZihXW0pdKXJldHVybiBuZXcgaWUoe2tleTpzZSxpdjpvZSxtb2RlOkosZGVjcnlwdDohMH0pO3Rocm93IG5ldyBUeXBlRXJyb3IoImludmFsaWQgc3VpdGUgdHlwZSIpfVEuY3JlYXRlQ2lwaGVyPVEu''@;'; + put 'put ''Q2lwaGVyPWZ1bmN0aW9uKEosc2Upe3ZhciBvZSxjZTtpZihKPUoudG9Mb3dlckNhc2UoKSxZW0pdKW9lPVlbSl0ua2V5LGNlPVlbSl0uaXY7ZWxzZXtpZighV1tKXSl0aHJvdyBuZXcgVHlwZUVycm9yKCJpbnZhbGlkIHN1aXRlIHR5cGUiKTtvZT04KldbSl0ua2V5LGNlPVdbSl0uaXZ9dmFy''@;'; + put 'put ''IGRlPU4oc2UsITEsb2UsY2UpO3JldHVybiBlZShKLGRlLmtleSxkZS5pdil9LFEuY3JlYXRlQ2lwaGVyaXY9US5DaXBoZXJpdj1lZSxRLmNyZWF0ZURlY2lwaGVyPVEuRGVjaXBoZXI9ZnVuY3Rpb24oSixzZSl7dmFyIG9lLGNlO2lmKEo9Si50b0xvd2VyQ2FzZSgpLFlbSl0pb2U9WVtKXS5r''@;'; + put 'put ''ZXksY2U9WVtKXS5pdjtlbHNle2lmKCFXW0pdKXRocm93IG5ldyBUeXBlRXJyb3IoImludmFsaWQgc3VpdGUgdHlwZSIpO29lPTgqV1tKXS5rZXksY2U9V1tKXS5pdn12YXIgZGU9TihzZSwhMSxvZSxjZSk7cmV0dXJuIHEoSixkZS5rZXksZGUuaXYpfSxRLmNyZWF0ZURlY2lwaGVyaXY9US5E''@;'; + put 'put ''ZWNpcGhlcml2PXEsUS5saXN0Q2lwaGVycz1RLmdldENpcGhlcnM9ZnVuY3Rpb24oKXtyZXR1cm4gT2JqZWN0LmtleXMoVykuY29uY2F0KGFlLmdldENpcGhlcnMoKSl9fSw3NjY3OihVLFEsWik9Pnt2YXIgaWU9WigxMDI3KSxhZT1aKDUyNTEpLFk9Wig1NzE3KSxXPVooOTUwOSkuQnVmZmVy''@;'; + put 'put ''LE49eyJkZXMtZWRlMy1jYmMiOmFlLkNCQy5pbnN0YW50aWF0ZShhZS5FREUpLCJkZXMtZWRlMyI6YWUuRURFLCJkZXMtZWRlLWNiYyI6YWUuQ0JDLmluc3RhbnRpYXRlKGFlLkVERSksImRlcy1lZGUiOmFlLkVERSwiZGVzLWNiYyI6YWUuQ0JDLmluc3RhbnRpYXRlKGFlLkRFUyksImRlcy1l''@;'; + put 'put ''Y2IiOmFlLkRFU307ZnVuY3Rpb24gZWUocSl7aWUuY2FsbCh0aGlzKTt2YXIgSixzZT1xLm1vZGUudG9Mb3dlckNhc2UoKSxvZT1OW3NlXTtKPXEuZGVjcnlwdD8iZGVjcnlwdCI6ImVuY3J5cHQiO3ZhciBjZT1xLmtleTtXLmlzQnVmZmVyKGNlKXx8KGNlPVcuZnJvbShjZSkpLCJkZXMtZWRl''@;'; + put 'put ''IiE9PXNlJiYiZGVzLWVkZS1jYmMiIT09c2V8fChjZT1XLmNvbmNhdChbY2UsY2Uuc2xpY2UoMCw4KV0pKTt2YXIgZGU9cS5pdjtXLmlzQnVmZmVyKGRlKXx8KGRlPVcuZnJvbShkZSkpLHRoaXMuX2Rlcz1vZS5jcmVhdGUoe2tleTpjZSxpdjpkZSx0eXBlOkp9KX1OLmRlcz1OWyJkZXMtY2Jj''@;'; + put 'put ''Il0sTi5kZXMzPU5bImRlcy1lZGUzLWNiYyJdLFUuZXhwb3J0cz1lZSxZKGVlLGllKSxlZS5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbihxKXtyZXR1cm4gVy5mcm9tKHRoaXMuX2Rlcy51cGRhdGUocSkpfSxlZS5wcm90b3R5cGUuX2ZpbmFsPWZ1bmN0aW9uKCl7cmV0dXJuIFcuZnJvbSh0''@;'; + put 'put ''aGlzLl9kZXMuZmluYWwoKSl9fSw5NzE1OihVLFEpPT57UVsiZGVzLWVjYiJdPXtrZXk6OCxpdjowfSxRWyJkZXMtY2JjIl09US5kZXM9e2tleTo4LGl2Ojh9LFFbImRlcy1lZGUzLWNiYyJdPVEuZGVzMz17a2V5OjI0LGl2Ojh9LFFbImRlcy1lZGUzIl09e2tleToyNCxpdjowfSxRWyJkZXMt''@;'; + put 'put ''ZWRlLWNiYyJdPXtrZXk6MTYsaXY6OH0sUVsiZGVzLWVkZSJdPXtrZXk6MTYsaXY6MH19LDM2NjM6KFUsUSxaKT0+e3ZhciBpZT1aKDg3NjQpLkJ1ZmZlcixhZT1aKDM1NTApLFk9WigxNzk4KTtmdW5jdGlvbiBXKGVlKXt2YXIgcSxKPWVlLm1vZHVsdXMuYnl0ZUxlbmd0aCgpO2Rve3E9bmV3''@;'; + put 'put ''IGFlKFkoSikpfXdoaWxlKHEuY21wKGVlLm1vZHVsdXMpPj0wfHwhcS51bW9kKGVlLnByaW1lMSl8fCFxLnVtb2QoZWUucHJpbWUyKSk7cmV0dXJuIHF9ZnVuY3Rpb24gTihlZSxxKXt2YXIgRWUsaGUsSj17YmxpbmRlcjooaGU9VyhFZT1xKSkudG9SZWQoYWUubW9udChFZS5tb2R1bHVzKSku''@;'; + put 'put ''cmVkUG93KG5ldyBhZShFZS5wdWJsaWNFeHBvbmVudCkpLmZyb21SZWQoKSx1bmJsaW5kZXI6aGUuaW52bShFZS5tb2R1bHVzKX0sc2U9cS5tb2R1bHVzLmJ5dGVMZW5ndGgoKSxvZT1uZXcgYWUoZWUpLm11bChKLmJsaW5kZXIpLnVtb2QocS5tb2R1bHVzKSxjZT1vZS50b1JlZChhZS5tb250''@;'; + put 'put ''KHEucHJpbWUxKSksZGU9b2UudG9SZWQoYWUubW9udChxLnByaW1lMikpLHZlPXEuY29lZmZpY2llbnQsQWU9cS5wcmltZTEsa2U9cS5wcmltZTIsU2U9Y2UucmVkUG93KHEuZXhwb25lbnQxKS5mcm9tUmVkKCksSWU9ZGUucmVkUG93KHEuZXhwb25lbnQyKS5mcm9tUmVkKCksVGU9U2UuaXN1''@;'; + put 'put ''YihJZSkuaW11bCh2ZSkudW1vZChBZSkuaW11bChrZSk7cmV0dXJuIEllLmlhZGQoVGUpLmltdWwoSi51bmJsaW5kZXIpLnVtb2QocS5tb2R1bHVzKS50b0FycmF5TGlrZShpZSwiYmUiLHNlKX1OLmdldHI9VyxVLmV4cG9ydHM9Tn0sNjA0MjooVSxRLFopPT57VS5leHBvcnRzPVooNTIwNyl9''@;'; + put 'put ''LDQ3NDM6KFUsUSxaKT0+e3ZhciBpZT1aKDU2NzkpLkJ1ZmZlcixhZT1aKDM0ODIpLFk9Wig4NDczKSxXPVooNTcxNyksTj1aKDI5NTcpLGVlPVooNzc1MykscT1aKDUyMDcpO2Z1bmN0aW9uIEooZGUpe1kuV3JpdGFibGUuY2FsbCh0aGlzKTt2YXIgdmU9cVtkZV07aWYoIXZlKXRocm93IG5l''@;'; + put 'put ''dyBFcnJvcigiVW5rbm93biBtZXNzYWdlIGRpZ2VzdCIpO3RoaXMuX2hhc2hUeXBlPXZlLmhhc2gsdGhpcy5faGFzaD1hZSh2ZS5oYXNoKSx0aGlzLl90YWc9dmUuaWQsdGhpcy5fc2lnblR5cGU9dmUuc2lnbn1mdW5jdGlvbiBzZShkZSl7WS5Xcml0YWJsZS5jYWxsKHRoaXMpO3ZhciB2ZT1x''@;'; + put 'put ''W2RlXTtpZighdmUpdGhyb3cgbmV3IEVycm9yKCJVbmtub3duIG1lc3NhZ2UgZGlnZXN0Iik7dGhpcy5faGFzaD1hZSh2ZS5oYXNoKSx0aGlzLl90YWc9dmUuaWQsdGhpcy5fc2lnblR5cGU9dmUuc2lnbn1mdW5jdGlvbiBvZShkZSl7cmV0dXJuIG5ldyBKKGRlKX1mdW5jdGlvbiBjZShkZSl7''@;'; + put 'put ''cmV0dXJuIG5ldyBzZShkZSl9T2JqZWN0LmtleXMocSkuZm9yRWFjaChmdW5jdGlvbihkZSl7cVtkZV0uaWQ9aWUuZnJvbShxW2RlXS5pZCwiaGV4IikscVtkZS50b0xvd2VyQ2FzZSgpXT1xW2RlXX0pLFcoSixZLldyaXRhYmxlKSxKLnByb3RvdHlwZS5fd3JpdGU9ZnVuY3Rpb24oZGUsdmUs''@;'; + put 'put ''QWUpe3RoaXMuX2hhc2gudXBkYXRlKGRlKSxBZSgpfSxKLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24oZGUsdmUpe3JldHVybiJzdHJpbmciPT10eXBlb2YgZGUmJihkZT1pZS5mcm9tKGRlLHZlKSksdGhpcy5faGFzaC51cGRhdGUoZGUpLHRoaXN9LEoucHJvdG90eXBlLnNpZ249ZnVuY3Rp''@;'; + put 'put ''b24oZGUsdmUpe3RoaXMuZW5kKCk7dmFyIEFlPXRoaXMuX2hhc2guZGlnZXN0KCksa2U9TihBZSxkZSx0aGlzLl9oYXNoVHlwZSx0aGlzLl9zaWduVHlwZSx0aGlzLl90YWcpO3JldHVybiB2ZT9rZS50b1N0cmluZyh2ZSk6a2V9LFcoc2UsWS5Xcml0YWJsZSksc2UucHJvdG90eXBlLl93cml0''@;'; + put 'put ''ZT1mdW5jdGlvbihkZSx2ZSxBZSl7dGhpcy5faGFzaC51cGRhdGUoZGUpLEFlKCl9LHNlLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24oZGUsdmUpe3JldHVybiJzdHJpbmciPT10eXBlb2YgZGUmJihkZT1pZS5mcm9tKGRlLHZlKSksdGhpcy5faGFzaC51cGRhdGUoZGUpLHRoaXN9LHNlLnBy''@;'; + put 'put ''b3RvdHlwZS52ZXJpZnk9ZnVuY3Rpb24oZGUsdmUsQWUpeyJzdHJpbmciPT10eXBlb2YgdmUmJih2ZT1pZS5mcm9tKHZlLEFlKSksdGhpcy5lbmQoKTt2YXIga2U9dGhpcy5faGFzaC5kaWdlc3QoKTtyZXR1cm4gZWUodmUsa2UsZGUsdGhpcy5fc2lnblR5cGUsdGhpcy5fdGFnKX0sVS5leHBv''@;'; + put 'put ''cnRzPXtTaWduOm9lLFZlcmlmeTpjZSxjcmVhdGVTaWduOm9lLGNyZWF0ZVZlcmlmeTpjZX19LDI5NTc6KFUsUSxaKT0+e3ZhciBpZT1aKDU2NzkpLkJ1ZmZlcixhZT1aKDgzNTUpLFk9WigzNjYzKSxXPVooNjk0OCkuZWMsTj1aKDM1NTApLGVlPVooOTgwKSxxPVooMTMwOCk7ZnVuY3Rpb24g''@;'; + put 'put ''SihkZSx2ZSxBZSxrZSl7aWYoKGRlPWllLmZyb20oZGUudG9BcnJheSgpKSkubGVuZ3RoPHZlLmJ5dGVMZW5ndGgoKSl7dmFyIFNlPWllLmFsbG9jKHZlLmJ5dGVMZW5ndGgoKS1kZS5sZW5ndGgpO2RlPWllLmNvbmNhdChbU2UsZGVdKX12YXIgSWU9QWUubGVuZ3RoLFRlPWZ1bmN0aW9uKE8s''@;'; + put 'put ''eil7Tz0oTz1zZShPLHopKS5tb2Qoeik7dmFyIG5lPWllLmZyb20oTy50b0FycmF5KCkpO2lmKG5lLmxlbmd0aDx6LmJ5dGVMZW5ndGgoKSl7dmFyIHRlPWllLmFsbG9jKHouYnl0ZUxlbmd0aCgpLW5lLmxlbmd0aCk7bmU9aWUuY29uY2F0KFt0ZSxuZV0pfXJldHVybiBuZX0oQWUsdmUpLEVl''@;'; + put 'put ''PWllLmFsbG9jKEllKTtFZS5maWxsKDEpO3ZhciBoZT1pZS5hbGxvYyhJZSk7cmV0dXJuIGhlPWFlKGtlLGhlKS51cGRhdGUoRWUpLnVwZGF0ZShpZS5mcm9tKFswXSkpLnVwZGF0ZShkZSkudXBkYXRlKFRlKS5kaWdlc3QoKSxFZT1hZShrZSxoZSkudXBkYXRlKEVlKS5kaWdlc3QoKSx7azpo''@;'; + put 'put ''ZT1hZShrZSxoZSkudXBkYXRlKEVlKS51cGRhdGUoaWUuZnJvbShbMV0pKS51cGRhdGUoZGUpLnVwZGF0ZShUZSkuZGlnZXN0KCksdjpFZT1hZShrZSxoZSkudXBkYXRlKEVlKS5kaWdlc3QoKX19ZnVuY3Rpb24gc2UoZGUsdmUpe3ZhciBBZT1uZXcgTihkZSksa2U9KGRlLmxlbmd0aDw8Mykt''@;'; + put 'put ''dmUuYml0TGVuZ3RoKCk7cmV0dXJuIGtlPjAmJkFlLmlzaHJuKGtlKSxBZX1mdW5jdGlvbiBvZShkZSx2ZSxBZSl7dmFyIGtlLFNlO2Rve2ZvcihrZT1pZS5hbGxvYygwKTs4KmtlLmxlbmd0aDxkZS5iaXRMZW5ndGgoKTspdmUudj1hZShBZSx2ZS5rKS51cGRhdGUodmUudikuZGlnZXN0KCks''@;'; + put 'put ''a2U9aWUuY29uY2F0KFtrZSx2ZS52XSk7U2U9c2Uoa2UsZGUpLHZlLms9YWUoQWUsdmUuaykudXBkYXRlKHZlLnYpLnVwZGF0ZShpZS5mcm9tKFswXSkpLmRpZ2VzdCgpLHZlLnY9YWUoQWUsdmUuaykudXBkYXRlKHZlLnYpLmRpZ2VzdCgpfXdoaWxlKC0xIT09U2UuY21wKGRlKSk7cmV0dXJu''@;'; + put 'put ''IFNlfWZ1bmN0aW9uIGNlKGRlLHZlLEFlLGtlKXtyZXR1cm4gZGUudG9SZWQoTi5tb250KEFlKSkucmVkUG93KHZlKS5mcm9tUmVkKCkubW9kKGtlKX1VLmV4cG9ydHM9ZnVuY3Rpb24oZGUsdmUsQWUsa2UsU2Upe3ZhciBJZT1lZSh2ZSk7aWYoSWUuY3VydmUpe2lmKCJlY2RzYSIhPT1rZSYm''@;'; + put 'put ''ImVjZHNhL3JzYSIhPT1rZSl0aHJvdyBuZXcgRXJyb3IoIndyb25nIHByaXZhdGUga2V5IHR5cGUiKTtyZXR1cm4gZnVuY3Rpb24oTyx6KXt2YXIgbmU9cVt6LmN1cnZlLmpvaW4oIi4iKV07aWYoIW5lKXRocm93IG5ldyBFcnJvcigidW5rbm93biBjdXJ2ZSAiK3ouY3VydmUuam9pbigiLiIp''@;'; + put 'put ''KTt2YXIgdGU9bmV3IFcobmUpLmtleUZyb21Qcml2YXRlKHoucHJpdmF0ZUtleSkuc2lnbihPKTtyZXR1cm4gaWUuZnJvbSh0ZS50b0RFUigpKX0oZGUsSWUpfWlmKCJkc2EiPT09SWUudHlwZSl7aWYoImRzYSIhPT1rZSl0aHJvdyBuZXcgRXJyb3IoIndyb25nIHByaXZhdGUga2V5IHR5cGUi''@;'; + put 'put ''KTtyZXR1cm4gZnVuY3Rpb24oTyx6LG5lKXtmb3IodmFyIHRlLHg9ei5wYXJhbXMucHJpdl9rZXksUD16LnBhcmFtcy5wLFY9ei5wYXJhbXMucSxUPXoucGFyYW1zLmcsUz1uZXcgTigwKSxGPXNlKE8sVikubW9kKFYpLHllPSExLENlPUooeCxWLE8sbmUpOyExPT09eWU7KVM9Y2UoVCx0ZT1v''@;'; + put 'put ''ZShWLENlLG5lKSxQLFYpLDA9PT0oeWU9dGUuaW52bShWKS5pbXVsKEYuYWRkKHgubXVsKFMpKSkubW9kKFYpKS5jbXBuKDApJiYoeWU9ITEsUz1uZXcgTigwKSk7cmV0dXJuIGZ1bmN0aW9uKERlLFBlKXtEZT1EZS50b0FycmF5KCksUGU9UGUudG9BcnJheSgpLDEyOCZEZVswXSYmKERlPVsw''@;'; + put 'put ''XS5jb25jYXQoRGUpKSwxMjgmUGVbMF0mJihQZT1bMF0uY29uY2F0KFBlKSk7dmFyIFFlPVs0OCxEZS5sZW5ndGgrUGUubGVuZ3RoKzQsMixEZS5sZW5ndGhdO3JldHVybiBRZT1RZS5jb25jYXQoRGUsWzIsUGUubGVuZ3RoXSxQZSksaWUuZnJvbShRZSl9KFMseWUpfShkZSxJZSxBZSl9aWYo''@;'; + put 'put ''InJzYSIhPT1rZSYmImVjZHNhL3JzYSIhPT1rZSl0aHJvdyBuZXcgRXJyb3IoIndyb25nIHByaXZhdGUga2V5IHR5cGUiKTtkZT1pZS5jb25jYXQoW1NlLGRlXSk7Zm9yKHZhciBUZT1JZS5tb2R1bHVzLmJ5dGVMZW5ndGgoKSxFZT1bMCwxXTtkZS5sZW5ndGgrRWUubGVuZ3RoKzE8VGU7KUVl''@;'; + put 'put ''LnB1c2goMjU1KTtFZS5wdXNoKDApO2Zvcih2YXIgaGU9LTE7KytoZTxkZS5sZW5ndGg7KUVlLnB1c2goZGVbaGVdKTtyZXR1cm4gWShFZSxJZSl9LFUuZXhwb3J0cy5nZXRLZXk9SixVLmV4cG9ydHMubWFrZUtleT1vZX0sNzc1MzooVSxRLFopPT57dmFyIGllPVooNTY3OSkuQnVmZmVyLGFl''@;'; + put 'put ''PVooMzU1MCksWT1aKDY5NDgpLmVjLFc9Wig5ODApLE49WigxMzA4KTtmdW5jdGlvbiBlZShxLEope2lmKHEuY21wbigwKTw9MCl0aHJvdyBuZXcgRXJyb3IoImludmFsaWQgc2lnIik7aWYocS5jbXAoSik+PUopdGhyb3cgbmV3IEVycm9yKCJpbnZhbGlkIHNpZyIpfVUuZXhwb3J0cz1mdW5j''@;'; + put 'put ''dGlvbihxLEosc2Usb2UsY2Upe3ZhciBkZT1XKHNlKTtpZigiZWMiPT09ZGUudHlwZSl7aWYoImVjZHNhIiE9PW9lJiYiZWNkc2EvcnNhIiE9PW9lKXRocm93IG5ldyBFcnJvcigid3JvbmcgcHVibGljIGtleSB0eXBlIik7cmV0dXJuIGZ1bmN0aW9uKEVlLGhlLE8pe3ZhciB6PU5bTy5kYXRh''@;'; + put 'put ''LmFsZ29yaXRobS5jdXJ2ZS5qb2luKCIuIildO2lmKCF6KXRocm93IG5ldyBFcnJvcigidW5rbm93biBjdXJ2ZSAiK08uZGF0YS5hbGdvcml0aG0uY3VydmUuam9pbigiLiIpKTtyZXR1cm4gbmV3IFkoeikudmVyaWZ5KGhlLEVlLE8uZGF0YS5zdWJqZWN0UHJpdmF0ZUtleS5kYXRhKX0ocSxK''@;'; + put 'put ''LGRlKX1pZigiZHNhIj09PWRlLnR5cGUpe2lmKCJkc2EiIT09b2UpdGhyb3cgbmV3IEVycm9yKCJ3cm9uZyBwdWJsaWMga2V5IHR5cGUiKTtyZXR1cm4gZnVuY3Rpb24oRWUsaGUsTyl7dmFyIHo9Ty5kYXRhLnAsbmU9Ty5kYXRhLnEsdGU9Ty5kYXRhLmcseD1PLmRhdGEucHViX2tleSxQPVcu''@;'; + put 'put ''c2lnbmF0dXJlLmRlY29kZShFZSwiZGVyIiksVj1QLnMsVD1QLnI7ZWUoVixuZSksZWUoVCxuZSk7dmFyIFM9YWUubW9udCh6KSxGPVYuaW52bShuZSk7cmV0dXJuIDA9PT10ZS50b1JlZChTKS5yZWRQb3cobmV3IGFlKGhlKS5tdWwoRikubW9kKG5lKSkuZnJvbVJlZCgpLm11bCh4LnRvUmVk''@;'; + put 'put ''KFMpLnJlZFBvdyhULm11bChGKS5tb2QobmUpKS5mcm9tUmVkKCkpLm1vZCh6KS5tb2QobmUpLmNtcChUKX0ocSxKLGRlKX1pZigicnNhIiE9PW9lJiYiZWNkc2EvcnNhIiE9PW9lKXRocm93IG5ldyBFcnJvcigid3JvbmcgcHVibGljIGtleSB0eXBlIik7Sj1pZS5jb25jYXQoW2NlLEpdKTtm''@;'; + put 'put ''b3IodmFyIHZlPWRlLm1vZHVsdXMuYnl0ZUxlbmd0aCgpLEFlPVsxXSxrZT0wO0oubGVuZ3RoK0FlLmxlbmd0aCsyPHZlOylBZS5wdXNoKDI1NSksa2UrKztBZS5wdXNoKDApO2Zvcih2YXIgU2U9LTE7KytTZTxKLmxlbmd0aDspQWUucHVzaChKW1NlXSk7QWU9aWUuZnJvbShBZSk7dmFyIEll''@;'; + put 'put ''PWFlLm1vbnQoZGUubW9kdWx1cyk7cT0ocT1uZXcgYWUocSkudG9SZWQoSWUpKS5yZWRQb3cobmV3IGFlKGRlLnB1YmxpY0V4cG9uZW50KSkscT1pZS5mcm9tKHEuZnJvbVJlZCgpLnRvQXJyYXkoKSk7dmFyIFRlPWtlPDg/MTowO2Zvcih2ZT1NYXRoLm1pbihxLmxlbmd0aCxBZS5sZW5ndGgp''@;'; + put 'put ''LHEubGVuZ3RoIT09QWUubGVuZ3RoJiYoVGU9MSksU2U9LTE7KytTZTx2ZTspVGV8PXFbU2VdXkFlW1NlXTtyZXR1cm4gMD09PVRlfX0sNTY3OTooVSxRLFopPT57dmFyIGllPVooODc2NCksYWU9aWUuQnVmZmVyO2Z1bmN0aW9uIFkoTixlZSl7Zm9yKHZhciBxIGluIE4pZWVbcV09TltxXX1m''@;'; + put 'put ''dW5jdGlvbiBXKE4sZWUscSl7cmV0dXJuIGFlKE4sZWUscSl9YWUuZnJvbSYmYWUuYWxsb2MmJmFlLmFsbG9jVW5zYWZlJiZhZS5hbGxvY1Vuc2FmZVNsb3c/VS5leHBvcnRzPWllOihZKGllLFEpLFEuQnVmZmVyPVcpLFcucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoYWUucHJvdG90eXBlKSxZ''@;'; + put 'put ''KGFlLFcpLFcuZnJvbT1mdW5jdGlvbihOLGVlLHEpe2lmKCJudW1iZXIiPT10eXBlb2YgTil0aHJvdyBuZXcgVHlwZUVycm9yKCJBcmd1bWVudCBtdXN0IG5vdCBiZSBhIG51bWJlciIpO3JldHVybiBhZShOLGVlLHEpfSxXLmFsbG9jPWZ1bmN0aW9uKE4sZWUscSl7aWYoIm51bWJlciIhPXR5''@;'; + put 'put ''cGVvZiBOKXRocm93IG5ldyBUeXBlRXJyb3IoIkFyZ3VtZW50IG11c3QgYmUgYSBudW1iZXIiKTt2YXIgSj1hZShOKTtyZXR1cm4gdm9pZCAwIT09ZWU/InN0cmluZyI9PXR5cGVvZiBxP0ouZmlsbChlZSxxKTpKLmZpbGwoZWUpOkouZmlsbCgwKSxKfSxXLmFsbG9jVW5zYWZlPWZ1bmN0aW9u''@;'; + put 'put ''KE4pe2lmKCJudW1iZXIiIT10eXBlb2YgTil0aHJvdyBuZXcgVHlwZUVycm9yKCJBcmd1bWVudCBtdXN0IGJlIGEgbnVtYmVyIik7cmV0dXJuIGFlKE4pfSxXLmFsbG9jVW5zYWZlU2xvdz1mdW5jdGlvbihOKXtpZigibnVtYmVyIiE9dHlwZW9mIE4pdGhyb3cgbmV3IFR5cGVFcnJvcigiQXJn''@;'; + put 'put ''dW1lbnQgbXVzdCBiZSBhIG51bWJlciIpO3JldHVybiBpZS5TbG93QnVmZmVyKE4pfX0sNzI5NTooVSxRLFopPT57dmFyIGllPVooODc2NCkuQnVmZmVyO1UuZXhwb3J0cz1mdW5jdGlvbihhZSxZKXtmb3IodmFyIFc9TWF0aC5taW4oYWUubGVuZ3RoLFkubGVuZ3RoKSxOPW5ldyBpZShXKSxl''@;'; + put 'put ''ZT0wO2VlPFc7KytlZSlOW2VlXT1hZVtlZV1eWVtlZV07cmV0dXJuIE59fSw4NzY0OihVLFEsWik9PnsidXNlIHN0cmljdCI7dmFyIGllPVooNTEwOCk7Y29uc3QgYWU9Wig5NzQyKSxZPVooNjQ1KSxXPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1i''@;'; + put 'put ''b2wuZm9yP1N5bWJvbC5mb3IoIm5vZGVqcy51dGlsLmluc3BlY3QuY3VzdG9tIik6bnVsbDtRLkJ1ZmZlcj1xLFEuU2xvd0J1ZmZlcj1mdW5jdGlvbihHZSl7cmV0dXJuK0dlIT1HZSYmKEdlPTApLHEuYWxsb2MoK0dlKX0sUS5JTlNQRUNUX01BWF9CWVRFUz01MDtjb25zdCBOPTIxNDc0ODM2''@;'; + put 'put ''NDc7ZnVuY3Rpb24gZWUoR2Upe2lmKEdlPk4pdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ1RoZSB2YWx1ZSAiJytHZSsnIiBpcyBpbnZhbGlkIGZvciBvcHRpb24gInNpemUiJyk7Y29uc3QgVWU9bmV3IFVpbnQ4QXJyYXkoR2UpO3JldHVybiBPYmplY3Quc2V0UHJvdG90eXBlT2YoVWUscS5wcm90''@;'; + put 'put ''b3R5cGUpLFVlfWZ1bmN0aW9uIHEoR2UsVWUseXQpe2lmKCJudW1iZXIiPT10eXBlb2YgR2Upe2lmKCJzdHJpbmciPT10eXBlb2YgVWUpdGhyb3cgbmV3IFR5cGVFcnJvcignVGhlICJzdHJpbmciIGFyZ3VtZW50IG11c3QgYmUgb2YgdHlwZSBzdHJpbmcuIFJlY2VpdmVkIHR5cGUgbnVtYmVy''@;'; + put 'put ''Jyk7cmV0dXJuIG9lKEdlKX1yZXR1cm4gSihHZSxVZSx5dCl9ZnVuY3Rpb24gSihHZSxVZSx5dCl7aWYoInN0cmluZyI9PXR5cGVvZiBHZSlyZXR1cm4gZnVuY3Rpb24oZ24sZG4pe2lmKCJzdHJpbmciPT10eXBlb2YgZG4mJiIiIT09ZG58fChkbj0idXRmOCIpLCFxLmlzRW5jb2RpbmcoZG4p''@;'; + put 'put ''KXRocm93IG5ldyBUeXBlRXJyb3IoIlVua25vd24gZW5jb2Rpbmc6ICIrZG4pO2NvbnN0IHluPTB8QWUoZ24sZG4pO2xldCBsbj1lZSh5bik7Y29uc3QgTm49bG4ud3JpdGUoZ24sZG4pO3JldHVybiBObiE9PXluJiYobG49bG4uc2xpY2UoMCxObikpLGxufShHZSxVZSk7aWYoQXJyYXlCdWZm''@;'; + put 'put ''ZXIuaXNWaWV3KEdlKSlyZXR1cm4gZnVuY3Rpb24oZ24pe2lmKGF0KGduLFVpbnQ4QXJyYXkpKXtjb25zdCBkbj1uZXcgVWludDhBcnJheShnbik7cmV0dXJuIGRlKGRuLmJ1ZmZlcixkbi5ieXRlT2Zmc2V0LGRuLmJ5dGVMZW5ndGgpfXJldHVybiBjZShnbil9KEdlKTtpZihudWxsPT1HZSl0''@;'; + put 'put ''aHJvdyBuZXcgVHlwZUVycm9yKCJUaGUgZmlyc3QgYXJndW1lbnQgbXVzdCBiZSBvbmUgb2YgdHlwZSBzdHJpbmcsIEJ1ZmZlciwgQXJyYXlCdWZmZXIsIEFycmF5LCBvciBBcnJheS1saWtlIE9iamVjdC4gUmVjZWl2ZWQgdHlwZSAiK3R5cGVvZiBHZSk7aWYoYXQoR2UsQXJyYXlCdWZmZXIp''@;'; + put 'put ''fHxHZSYmYXQoR2UuYnVmZmVyLEFycmF5QnVmZmVyKXx8InVuZGVmaW5lZCIhPXR5cGVvZiBTaGFyZWRBcnJheUJ1ZmZlciYmKGF0KEdlLFNoYXJlZEFycmF5QnVmZmVyKXx8R2UmJmF0KEdlLmJ1ZmZlcixTaGFyZWRBcnJheUJ1ZmZlcikpKXJldHVybiBkZShHZSxVZSx5dCk7aWYoIm51bWJl''@;'; + put 'put ''ciI9PXR5cGVvZiBHZSl0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgInZhbHVlIiBhcmd1bWVudCBtdXN0IG5vdCBiZSBvZiB0eXBlIG51bWJlci4gUmVjZWl2ZWQgdHlwZSBudW1iZXInKTtjb25zdCBqdD1HZS52YWx1ZU9mJiZHZS52YWx1ZU9mKCk7aWYobnVsbCE9anQmJmp0IT09R2UpcmV0''@;'; + put 'put ''dXJuIHEuZnJvbShqdCxVZSx5dCk7Y29uc3QgUXQ9ZnVuY3Rpb24oZ24pe2lmKHEuaXNCdWZmZXIoZ24pKXtjb25zdCBkbj0wfHZlKGduLmxlbmd0aCkseW49ZWUoZG4pO3JldHVybiAwPT09eW4ubGVuZ3RofHxnbi5jb3B5KHluLDAsMCxkbikseW59cmV0dXJuIHZvaWQgMCE9PWduLmxlbmd0''@;'; + put 'put ''aD8ibnVtYmVyIiE9dHlwZW9mIGduLmxlbmd0aHx8THQoZ24ubGVuZ3RoKT9lZSgwKTpjZShnbik6IkJ1ZmZlciI9PT1nbi50eXBlJiZBcnJheS5pc0FycmF5KGduLmRhdGEpP2NlKGduLmRhdGEpOnZvaWQgMH0oR2UpO2lmKFF0KXJldHVybiBRdDtpZigidW5kZWZpbmVkIiE9dHlwZW9mIFN5''@;'; + put 'put ''bWJvbCYmbnVsbCE9U3ltYm9sLnRvUHJpbWl0aXZlJiYiZnVuY3Rpb24iPT10eXBlb2YgR2VbU3ltYm9sLnRvUHJpbWl0aXZlXSlyZXR1cm4gcS5mcm9tKEdlW1N5bWJvbC50b1ByaW1pdGl2ZV0oInN0cmluZyIpLFVlLHl0KTt0aHJvdyBuZXcgVHlwZUVycm9yKCJUaGUgZmlyc3QgYXJndW1l''@;'; + put 'put ''bnQgbXVzdCBiZSBvbmUgb2YgdHlwZSBzdHJpbmcsIEJ1ZmZlciwgQXJyYXlCdWZmZXIsIEFycmF5LCBvciBBcnJheS1saWtlIE9iamVjdC4gUmVjZWl2ZWQgdHlwZSAiK3R5cGVvZiBHZSl9ZnVuY3Rpb24gc2UoR2Upe2lmKCJudW1iZXIiIT10eXBlb2YgR2UpdGhyb3cgbmV3IFR5cGVFcnJv''@;'; + put 'put ''cignInNpemUiIGFyZ3VtZW50IG11c3QgYmUgb2YgdHlwZSBudW1iZXInKTtpZihHZTwwKXRocm93IG5ldyBSYW5nZUVycm9yKCdUaGUgdmFsdWUgIicrR2UrJyIgaXMgaW52YWxpZCBmb3Igb3B0aW9uICJzaXplIicpfWZ1bmN0aW9uIG9lKEdlKXtyZXR1cm4gc2UoR2UpLGVlKEdlPDA/MDow''@;'; + put 'put ''fHZlKEdlKSl9ZnVuY3Rpb24gY2UoR2Upe2NvbnN0IFVlPUdlLmxlbmd0aDwwPzA6MHx2ZShHZS5sZW5ndGgpLHl0PWVlKFVlKTtmb3IobGV0IGp0PTA7anQ8VWU7anQrPTEpeXRbanRdPTI1NSZHZVtqdF07cmV0dXJuIHl0fWZ1bmN0aW9uIGRlKEdlLFVlLHl0KXtpZihVZTwwfHxHZS5ieXRl''@;'; + put 'put ''TGVuZ3RoPFVlKXRocm93IG5ldyBSYW5nZUVycm9yKCcib2Zmc2V0IiBpcyBvdXRzaWRlIG9mIGJ1ZmZlciBib3VuZHMnKTtpZihHZS5ieXRlTGVuZ3RoPFVlKyh5dHx8MCkpdGhyb3cgbmV3IFJhbmdlRXJyb3IoJyJsZW5ndGgiIGlzIG91dHNpZGUgb2YgYnVmZmVyIGJvdW5kcycpO2xldCBq''@;'; + put 'put ''dDtyZXR1cm4ganQ9dm9pZCAwPT09VWUmJnZvaWQgMD09PXl0P25ldyBVaW50OEFycmF5KEdlKTp2b2lkIDA9PT15dD9uZXcgVWludDhBcnJheShHZSxVZSk6bmV3IFVpbnQ4QXJyYXkoR2UsVWUseXQpLE9iamVjdC5zZXRQcm90b3R5cGVPZihqdCxxLnByb3RvdHlwZSksanR9ZnVuY3Rpb24g''@;'; + put 'put ''dmUoR2Upe2lmKEdlPj1OKXRocm93IG5ldyBSYW5nZUVycm9yKCJBdHRlbXB0IHRvIGFsbG9jYXRlIEJ1ZmZlciBsYXJnZXIgdGhhbiBtYXhpbXVtIHNpemU6IDB4IitOLnRvU3RyaW5nKDE2KSsiIGJ5dGVzIik7cmV0dXJuIDB8R2V9ZnVuY3Rpb24gQWUoR2UsVWUpe2lmKHEuaXNCdWZmZXIo''@;'; + put 'put ''R2UpKXJldHVybiBHZS5sZW5ndGg7aWYoQXJyYXlCdWZmZXIuaXNWaWV3KEdlKXx8YXQoR2UsQXJyYXlCdWZmZXIpKXJldHVybiBHZS5ieXRlTGVuZ3RoO2lmKCJzdHJpbmciIT10eXBlb2YgR2UpdGhyb3cgbmV3IFR5cGVFcnJvcignVGhlICJzdHJpbmciIGFyZ3VtZW50IG11c3QgYmUgb25l''@;'; + put 'put ''IG9mIHR5cGUgc3RyaW5nLCBCdWZmZXIsIG9yIEFycmF5QnVmZmVyLiBSZWNlaXZlZCB0eXBlICcrdHlwZW9mIEdlKTtjb25zdCB5dD1HZS5sZW5ndGgsanQ9YXJndW1lbnRzLmxlbmd0aD4yJiYhMD09PWFyZ3VtZW50c1syXTtpZighanQmJjA9PT15dClyZXR1cm4gMDtsZXQgUXQ9ITE7Zm9y''@;'; + put 'put ''KDs7KXN3aXRjaChVZSl7Y2FzZSJhc2NpaSI6Y2FzZSJsYXRpbjEiOmNhc2UiYmluYXJ5IjpyZXR1cm4geXQ7Y2FzZSJ1dGY4IjpjYXNlInV0Zi04IjpyZXR1cm4gX3QoR2UpLmxlbmd0aDtjYXNlInVjczIiOmNhc2UidWNzLTIiOmNhc2UidXRmMTZsZSI6Y2FzZSJ1dGYtMTZsZSI6cmV0dXJu''@;'; + put 'put ''IDIqeXQ7Y2FzZSJoZXgiOnJldHVybiB5dD4+PjE7Y2FzZSJiYXNlNjQiOnJldHVybiB0dChHZSkubGVuZ3RoO2RlZmF1bHQ6aWYoUXQpcmV0dXJuIGp0Py0xOl90KEdlKS5sZW5ndGg7VWU9KCIiK1VlKS50b0xvd2VyQ2FzZSgpLFF0PSEwfX1mdW5jdGlvbiBrZShHZSxVZSx5dCl7bGV0IGp0''@;'; + put 'put ''PSExO2lmKCh2b2lkIDA9PT1VZXx8VWU8MCkmJihVZT0wKSxVZT50aGlzLmxlbmd0aHx8KCh2b2lkIDA9PT15dHx8eXQ+dGhpcy5sZW5ndGgpJiYoeXQ9dGhpcy5sZW5ndGgpLHl0PD0wKXx8KHl0Pj4+PTApPD0oVWU+Pj49MCkpcmV0dXJuIiI7Zm9yKEdlfHwoR2U9InV0ZjgiKTs7KXN3aXRj''@;'; + put 'put ''aChHZSl7Y2FzZSJoZXgiOnJldHVybiBTKHRoaXMsVWUseXQpO2Nhc2UidXRmOCI6Y2FzZSJ1dGYtOCI6cmV0dXJuIHgodGhpcyxVZSx5dCk7Y2FzZSJhc2NpaSI6cmV0dXJuIFYodGhpcyxVZSx5dCk7Y2FzZSJsYXRpbjEiOmNhc2UiYmluYXJ5IjpyZXR1cm4gVCh0aGlzLFVlLHl0KTtjYXNl''@;'; + put 'put ''ImJhc2U2NCI6cmV0dXJuIHRlKHRoaXMsVWUseXQpO2Nhc2UidWNzMiI6Y2FzZSJ1Y3MtMiI6Y2FzZSJ1dGYxNmxlIjpjYXNlInV0Zi0xNmxlIjpyZXR1cm4gRih0aGlzLFVlLHl0KTtkZWZhdWx0OmlmKGp0KXRocm93IG5ldyBUeXBlRXJyb3IoIlVua25vd24gZW5jb2Rpbmc6ICIrR2UpO0dl''@;'; + put 'put ''PShHZSsiIikudG9Mb3dlckNhc2UoKSxqdD0hMH19ZnVuY3Rpb24gU2UoR2UsVWUseXQpe2NvbnN0IGp0PUdlW1VlXTtHZVtVZV09R2VbeXRdLEdlW3l0XT1qdH1mdW5jdGlvbiBJZShHZSxVZSx5dCxqdCxRdCl7aWYoMD09PUdlLmxlbmd0aClyZXR1cm4tMTtpZigic3RyaW5nIj09dHlwZW9m''@;'; + put 'put ''IHl0PyhqdD15dCx5dD0wKTp5dD4yMTQ3NDgzNjQ3P3l0PTIxNDc0ODM2NDc6eXQ8LTIxNDc0ODM2NDgmJih5dD0tMjE0NzQ4MzY0OCksTHQoeXQ9K3l0KSYmKHl0PVF0PzA6R2UubGVuZ3RoLTEpLHl0PDAmJih5dD1HZS5sZW5ndGgreXQpLHl0Pj1HZS5sZW5ndGgpe2lmKFF0KXJldHVybi0x''@;'; + put 'put ''O3l0PUdlLmxlbmd0aC0xfWVsc2UgaWYoeXQ8MCl7aWYoIVF0KXJldHVybi0xO3l0PTB9aWYoInN0cmluZyI9PXR5cGVvZiBVZSYmKFVlPXEuZnJvbShVZSxqdCkpLHEuaXNCdWZmZXIoVWUpKXJldHVybiAwPT09VWUubGVuZ3RoPy0xOlRlKEdlLFVlLHl0LGp0LFF0KTtpZigibnVtYmVyIj09''@;'; + put 'put ''dHlwZW9mIFVlKXJldHVybiBVZSY9MjU1LCJmdW5jdGlvbiI9PXR5cGVvZiBVaW50OEFycmF5LnByb3RvdHlwZS5pbmRleE9mP1F0P1VpbnQ4QXJyYXkucHJvdG90eXBlLmluZGV4T2YuY2FsbChHZSxVZSx5dCk6VWludDhBcnJheS5wcm90b3R5cGUubGFzdEluZGV4T2YuY2FsbChHZSxVZSx5''@;'; + put 'put ''dCk6VGUoR2UsW1VlXSx5dCxqdCxRdCk7dGhyb3cgbmV3IFR5cGVFcnJvcigidmFsIG11c3QgYmUgc3RyaW5nLCBudW1iZXIgb3IgQnVmZmVyIil9ZnVuY3Rpb24gVGUoR2UsVWUseXQsanQsUXQpe2xldCBnbixkbj0xLHluPUdlLmxlbmd0aCxsbj1VZS5sZW5ndGg7aWYodm9pZCAwIT09anQm''@;'; + put 'put ''JigidWNzMiI9PT0oanQ9U3RyaW5nKGp0KS50b0xvd2VyQ2FzZSgpKXx8InVjcy0yIj09PWp0fHwidXRmMTZsZSI9PT1qdHx8InV0Zi0xNmxlIj09PWp0KSl7aWYoR2UubGVuZ3RoPDJ8fFVlLmxlbmd0aDwyKXJldHVybi0xO2RuPTIseW4vPTIsbG4vPTIseXQvPTJ9ZnVuY3Rpb24gTm4oYm4s''@;'; + put 'put ''ZXIpe3JldHVybiAxPT09ZG4/Ym5bZXJdOmJuLnJlYWRVSW50MTZCRShlcipkbil9aWYoUXQpe2xldCBibj0tMTtmb3IoZ249eXQ7Z248eW47Z24rKylpZihObihHZSxnbik9PT1ObihVZSwtMT09PWJuPzA6Z24tYm4pKXtpZigtMT09PWJuJiYoYm49Z24pLGduLWJuKzE9PT1sbilyZXR1cm4g''@;'; + put 'put ''Ym4qZG59ZWxzZS0xIT09Ym4mJihnbi09Z24tYm4pLGJuPS0xfWVsc2UgZm9yKHl0K2xuPnluJiYoeXQ9eW4tbG4pLGduPXl0O2duPj0wO2duLS0pe2xldCBibj0hMDtmb3IobGV0IGVyPTA7ZXI8bG47ZXIrKylpZihObihHZSxnbitlcikhPT1ObihVZSxlcikpe2JuPSExO2JyZWFrfWlmKGJu''@;'; + put 'put ''KXJldHVybiBnbn1yZXR1cm4tMX1mdW5jdGlvbiBFZShHZSxVZSx5dCxqdCl7eXQ9TnVtYmVyKHl0KXx8MDtjb25zdCBRdD1HZS5sZW5ndGgteXQ7anQ/KGp0PU51bWJlcihqdCkpPlF0JiYoanQ9UXQpOmp0PVF0O2NvbnN0IGduPVVlLmxlbmd0aDtsZXQgZG47Zm9yKGp0PmduLzImJihqdD1n''@;'; + put 'put ''bi8yKSxkbj0wO2RuPGp0OysrZG4pe2NvbnN0IHluPXBhcnNlSW50KFVlLnN1YnN0cigyKmRuLDIpLDE2KTtpZihMdCh5bikpcmV0dXJuIGRuO0dlW3l0K2RuXT15bn1yZXR1cm4gZG59ZnVuY3Rpb24gaGUoR2UsVWUseXQsanQpe3JldHVybiBldChfdChVZSxHZS5sZW5ndGgteXQpLEdlLHl0''@;'; + put 'put ''LGp0KX1mdW5jdGlvbiBPKEdlLFVlLHl0LGp0KXtyZXR1cm4gZXQoZnVuY3Rpb24oUXQpe2NvbnN0IGduPVtdO2ZvcihsZXQgZG49MDtkbjxRdC5sZW5ndGg7Kytkbilnbi5wdXNoKDI1NSZRdC5jaGFyQ29kZUF0KGRuKSk7cmV0dXJuIGdufShVZSksR2UseXQsanQpfWZ1bmN0aW9uIHooR2Us''@;'; + put 'put ''VWUseXQsanQpe3JldHVybiBldCh0dChVZSksR2UseXQsanQpfWZ1bmN0aW9uIG5lKEdlLFVlLHl0LGp0KXtyZXR1cm4gZXQoZnVuY3Rpb24oUXQsZ24pe2xldCBkbix5bixsbjtjb25zdCBObj1bXTtmb3IobGV0IGJuPTA7Ym48UXQubGVuZ3RoJiYhKChnbi09Mik8MCk7Kytibilkbj1RdC5j''@;'; + put 'put ''aGFyQ29kZUF0KGJuKSx5bj1kbj4+OCxsbj1kbiUyNTYsTm4ucHVzaChsbiksTm4ucHVzaCh5bik7cmV0dXJuIE5ufShVZSxHZS5sZW5ndGgteXQpLEdlLHl0LGp0KX1mdW5jdGlvbiB0ZShHZSxVZSx5dCl7cmV0dXJuIGFlLmZyb21CeXRlQXJyYXkoMD09PVVlJiZ5dD09PUdlLmxlbmd0aD9H''@;'; + put 'put ''ZTpHZS5zbGljZShVZSx5dCkpfWZ1bmN0aW9uIHgoR2UsVWUseXQpe3l0PU1hdGgubWluKEdlLmxlbmd0aCx5dCk7Y29uc3QganQ9W107bGV0IFF0PVVlO2Zvcig7UXQ8eXQ7KXtjb25zdCBnbj1HZVtRdF07bGV0IGRuPW51bGwseW49Z24+MjM5PzQ6Z24+MjIzPzM6Z24+MTkxPzI6MTtpZihR''@;'; + put 'put ''dCt5bjw9eXQpe2xldCBsbixObixibixlcjtzd2l0Y2goeW4pe2Nhc2UgMTpnbjwxMjgmJihkbj1nbik7YnJlYWs7Y2FzZSAyOmxuPUdlW1F0KzFdLDEyOD09KDE5MiZsbikmJihlcj0oMzEmZ24pPDw2fDYzJmxuLGVyPjEyNyYmKGRuPWVyKSk7YnJlYWs7Y2FzZSAzOmxuPUdlW1F0KzFdLE5u''@;'; + put 'put ''PUdlW1F0KzJdLDEyOD09KDE5MiZsbikmJjEyOD09KDE5MiZObikmJihlcj0oMTUmZ24pPDwxMnwoNjMmbG4pPDw2fDYzJk5uLGVyPjIwNDcmJihlcjw1NTI5Nnx8ZXI+NTczNDMpJiYoZG49ZXIpKTticmVhaztjYXNlIDQ6bG49R2VbUXQrMV0sTm49R2VbUXQrMl0sYm49R2VbUXQrM10sMTI4''@;'; + put 'put ''PT0oMTkyJmxuKSYmMTI4PT0oMTkyJk5uKSYmMTI4PT0oMTkyJmJuKSYmKGVyPSgxNSZnbik8PDE4fCg2MyZsbik8PDEyfCg2MyZObik8PDZ8NjMmYm4sZXI+NjU1MzUmJmVyPDExMTQxMTImJihkbj1lcikpfX1udWxsPT09ZG4/KGRuPTY1NTMzLHluPTEpOmRuPjY1NTM1JiYoZG4tPTY1NTM2''@;'; + put 'put ''LGp0LnB1c2goZG4+Pj4xMCYxMDIzfDU1Mjk2KSxkbj01NjMyMHwxMDIzJmRuKSxqdC5wdXNoKGRuKSxRdCs9eW59cmV0dXJuIGZ1bmN0aW9uKGduKXtjb25zdCBkbj1nbi5sZW5ndGg7aWYoZG48PVApcmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkoU3RyaW5nLGduKTtsZXQgeW49''@;'; + put 'put ''IiIsbG49MDtmb3IoO2xuPGRuOyl5bis9U3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShTdHJpbmcsZ24uc2xpY2UobG4sbG4rPVApKTtyZXR1cm4geW59KGp0KX1RLmtNYXhMZW5ndGg9TiwocS5UWVBFRF9BUlJBWV9TVVBQT1JUPWZ1bmN0aW9uKCl7dHJ5e2NvbnN0IEdlPW5ldyBVaW50OEFy''@;'; + put 'put ''cmF5KDEpLFVlPXtmb286ZnVuY3Rpb24oKXtyZXR1cm4gNDJ9fTtyZXR1cm4gT2JqZWN0LnNldFByb3RvdHlwZU9mKFVlLFVpbnQ4QXJyYXkucHJvdG90eXBlKSxPYmplY3Quc2V0UHJvdG90eXBlT2YoR2UsVWUpLDQyPT09R2UuZm9vKCl9Y2F0Y2goR2Upe3JldHVybiExfX0oKSl8fHZvaWQg''@;'; + put 'put ''MD09PWllfHwiZnVuY3Rpb24iIT10eXBlb2YgaWUuZXJyb3J8fGllLmVycm9yKCJUaGlzIGJyb3dzZXIgbGFja3MgdHlwZWQgYXJyYXkgKFVpbnQ4QXJyYXkpIHN1cHBvcnQgd2hpY2ggaXMgcmVxdWlyZWQgYnkgYGJ1ZmZlcmAgdjUueC4gVXNlIGBidWZmZXJgIHY0LnggaWYgeW91IHJlcXVp''@;'; + put 'put ''cmUgb2xkIGJyb3dzZXIgc3VwcG9ydC4iKSxPYmplY3QuZGVmaW5lUHJvcGVydHkocS5wcm90b3R5cGUsInBhcmVudCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7aWYocS5pc0J1ZmZlcih0aGlzKSlyZXR1cm4gdGhpcy5idWZmZXJ9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHEu''@;'; + put 'put ''cHJvdG90eXBlLCJvZmZzZXQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe2lmKHEuaXNCdWZmZXIodGhpcykpcmV0dXJuIHRoaXMuYnl0ZU9mZnNldH19KSxxLnBvb2xTaXplPTgxOTIscS5mcm9tPWZ1bmN0aW9uKEdlLFVlLHl0KXtyZXR1cm4gSihHZSxVZSx5dCl9LE9iamVjdC5z''@;'; + put 'put ''ZXRQcm90b3R5cGVPZihxLnByb3RvdHlwZSxVaW50OEFycmF5LnByb3RvdHlwZSksT2JqZWN0LnNldFByb3RvdHlwZU9mKHEsVWludDhBcnJheSkscS5hbGxvYz1mdW5jdGlvbihHZSxVZSx5dCl7cmV0dXJuIFF0PVVlLGduPXl0LHNlKGp0PUdlKSxqdDw9MD9lZShqdCk6dm9pZCAwIT09UXQ/''@;'; + put 'put ''InN0cmluZyI9PXR5cGVvZiBnbj9lZShqdCkuZmlsbChRdCxnbik6ZWUoanQpLmZpbGwoUXQpOmVlKGp0KTt2YXIganQsUXQsZ259LHEuYWxsb2NVbnNhZmU9ZnVuY3Rpb24oR2Upe3JldHVybiBvZShHZSl9LHEuYWxsb2NVbnNhZmVTbG93PWZ1bmN0aW9uKEdlKXtyZXR1cm4gb2UoR2UpfSxx''@;'; + put 'put ''LmlzQnVmZmVyPWZ1bmN0aW9uKEdlKXtyZXR1cm4gbnVsbCE9R2UmJiEwPT09R2UuX2lzQnVmZmVyJiZHZSE9PXEucHJvdG90eXBlfSxxLmNvbXBhcmU9ZnVuY3Rpb24oR2UsVWUpe2lmKGF0KEdlLFVpbnQ4QXJyYXkpJiYoR2U9cS5mcm9tKEdlLEdlLm9mZnNldCxHZS5ieXRlTGVuZ3RoKSks''@;'; + put 'put ''YXQoVWUsVWludDhBcnJheSkmJihVZT1xLmZyb20oVWUsVWUub2Zmc2V0LFVlLmJ5dGVMZW5ndGgpKSwhcS5pc0J1ZmZlcihHZSl8fCFxLmlzQnVmZmVyKFVlKSl0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgImJ1ZjEiLCAiYnVmMiIgYXJndW1lbnRzIG11c3QgYmUgb25lIG9mIHR5cGUgQnVm''@;'; + put 'put ''ZmVyIG9yIFVpbnQ4QXJyYXknKTtpZihHZT09PVVlKXJldHVybiAwO2xldCB5dD1HZS5sZW5ndGgsanQ9VWUubGVuZ3RoO2ZvcihsZXQgUXQ9MCxnbj1NYXRoLm1pbih5dCxqdCk7UXQ8Z247KytRdClpZihHZVtRdF0hPT1VZVtRdF0pe3l0PUdlW1F0XSxqdD1VZVtRdF07YnJlYWt9cmV0dXJu''@;'; + put 'put ''IHl0PGp0Py0xOmp0PHl0PzE6MH0scS5pc0VuY29kaW5nPWZ1bmN0aW9uKEdlKXtzd2l0Y2goU3RyaW5nKEdlKS50b0xvd2VyQ2FzZSgpKXtjYXNlImhleCI6Y2FzZSJ1dGY4IjpjYXNlInV0Zi04IjpjYXNlImFzY2lpIjpjYXNlImxhdGluMSI6Y2FzZSJiaW5hcnkiOmNhc2UiYmFzZTY0Ijpj''@;'; + put 'put ''YXNlInVjczIiOmNhc2UidWNzLTIiOmNhc2UidXRmMTZsZSI6Y2FzZSJ1dGYtMTZsZSI6cmV0dXJuITA7ZGVmYXVsdDpyZXR1cm4hMX19LHEuY29uY2F0PWZ1bmN0aW9uKEdlLFVlKXtpZighQXJyYXkuaXNBcnJheShHZSkpdGhyb3cgbmV3IFR5cGVFcnJvcignImxpc3QiIGFyZ3VtZW50IG11''@;'; + put 'put ''c3QgYmUgYW4gQXJyYXkgb2YgQnVmZmVycycpO2lmKDA9PT1HZS5sZW5ndGgpcmV0dXJuIHEuYWxsb2MoMCk7bGV0IHl0O2lmKHZvaWQgMD09PVVlKWZvcihVZT0wLHl0PTA7eXQ8R2UubGVuZ3RoOysreXQpVWUrPUdlW3l0XS5sZW5ndGg7Y29uc3QganQ9cS5hbGxvY1Vuc2FmZShVZSk7bGV0''@;'; + put 'put ''IFF0PTA7Zm9yKHl0PTA7eXQ8R2UubGVuZ3RoOysreXQpe2xldCBnbj1HZVt5dF07aWYoYXQoZ24sVWludDhBcnJheSkpUXQrZ24ubGVuZ3RoPmp0Lmxlbmd0aD8ocS5pc0J1ZmZlcihnbil8fChnbj1xLmZyb20oZ24pKSxnbi5jb3B5KGp0LFF0KSk6VWludDhBcnJheS5wcm90b3R5cGUuc2V0''@;'; + put 'put ''LmNhbGwoanQsZ24sUXQpO2Vsc2V7aWYoIXEuaXNCdWZmZXIoZ24pKXRocm93IG5ldyBUeXBlRXJyb3IoJyJsaXN0IiBhcmd1bWVudCBtdXN0IGJlIGFuIEFycmF5IG9mIEJ1ZmZlcnMnKTtnbi5jb3B5KGp0LFF0KX1RdCs9Z24ubGVuZ3RofXJldHVybiBqdH0scS5ieXRlTGVuZ3RoPUFlLHEu''@;'; + put 'put ''cHJvdG90eXBlLl9pc0J1ZmZlcj0hMCxxLnByb3RvdHlwZS5zd2FwMTY9ZnVuY3Rpb24oKXtjb25zdCBHZT10aGlzLmxlbmd0aDtpZihHZSUyIT0wKXRocm93IG5ldyBSYW5nZUVycm9yKCJCdWZmZXIgc2l6ZSBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgMTYtYml0cyIpO2ZvcihsZXQgVWU9MDtV''@;'; + put 'put ''ZTxHZTtVZSs9MilTZSh0aGlzLFVlLFVlKzEpO3JldHVybiB0aGlzfSxxLnByb3RvdHlwZS5zd2FwMzI9ZnVuY3Rpb24oKXtjb25zdCBHZT10aGlzLmxlbmd0aDtpZihHZSU0IT0wKXRocm93IG5ldyBSYW5nZUVycm9yKCJCdWZmZXIgc2l6ZSBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgMzItYml0''@;'; + put 'put ''cyIpO2ZvcihsZXQgVWU9MDtVZTxHZTtVZSs9NClTZSh0aGlzLFVlLFVlKzMpLFNlKHRoaXMsVWUrMSxVZSsyKTtyZXR1cm4gdGhpc30scS5wcm90b3R5cGUuc3dhcDY0PWZ1bmN0aW9uKCl7Y29uc3QgR2U9dGhpcy5sZW5ndGg7aWYoR2UlOCE9MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiQnVm''@;'; + put 'put ''ZmVyIHNpemUgbXVzdCBiZSBhIG11bHRpcGxlIG9mIDY0LWJpdHMiKTtmb3IobGV0IFVlPTA7VWU8R2U7VWUrPTgpU2UodGhpcyxVZSxVZSs3KSxTZSh0aGlzLFVlKzEsVWUrNiksU2UodGhpcyxVZSsyLFVlKzUpLFNlKHRoaXMsVWUrMyxVZSs0KTtyZXR1cm4gdGhpc30scS5wcm90b3R5cGUu''@;'; + put 'put ''dG9Mb2NhbGVTdHJpbmc9cS5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtjb25zdCBHZT10aGlzLmxlbmd0aDtyZXR1cm4gMD09PUdlPyIiOjA9PT1hcmd1bWVudHMubGVuZ3RoP3godGhpcywwLEdlKTprZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LHEucHJvdG90eXBlLmVxdWFscz1m''@;'; + put 'put ''dW5jdGlvbihHZSl7aWYoIXEuaXNCdWZmZXIoR2UpKXRocm93IG5ldyBUeXBlRXJyb3IoIkFyZ3VtZW50IG11c3QgYmUgYSBCdWZmZXIiKTtyZXR1cm4gdGhpcz09PUdlfHwwPT09cS5jb21wYXJlKHRoaXMsR2UpfSxxLnByb3RvdHlwZS5pbnNwZWN0PWZ1bmN0aW9uKCl7bGV0IEdlPSIiO2Nv''@;'; + put 'put ''bnN0IFVlPVEuSU5TUEVDVF9NQVhfQllURVM7cmV0dXJuIEdlPXRoaXMudG9TdHJpbmcoImhleCIsMCxVZSkucmVwbGFjZSgvKC57Mn0pL2csIiQxICIpLnRyaW0oKSx0aGlzLmxlbmd0aD5VZSYmKEdlKz0iIC4uLiAiKSwiPEJ1ZmZlciAiK0dlKyI+In0sVyYmKHEucHJvdG90eXBlW1ddPXEu''@;'; + put 'put ''cHJvdG90eXBlLmluc3BlY3QpLHEucHJvdG90eXBlLmNvbXBhcmU9ZnVuY3Rpb24oR2UsVWUseXQsanQsUXQpe2lmKGF0KEdlLFVpbnQ4QXJyYXkpJiYoR2U9cS5mcm9tKEdlLEdlLm9mZnNldCxHZS5ieXRlTGVuZ3RoKSksIXEuaXNCdWZmZXIoR2UpKXRocm93IG5ldyBUeXBlRXJyb3IoJ1Ro''@;'; + put 'put ''ZSAidGFyZ2V0IiBhcmd1bWVudCBtdXN0IGJlIG9uZSBvZiB0eXBlIEJ1ZmZlciBvciBVaW50OEFycmF5LiBSZWNlaXZlZCB0eXBlICcrdHlwZW9mIEdlKTtpZih2b2lkIDA9PT1VZSYmKFVlPTApLHZvaWQgMD09PXl0JiYoeXQ9R2U/R2UubGVuZ3RoOjApLHZvaWQgMD09PWp0JiYoanQ9MCks''@;'; + put 'put ''dm9pZCAwPT09UXQmJihRdD10aGlzLmxlbmd0aCksVWU8MHx8eXQ+R2UubGVuZ3RofHxqdDwwfHxRdD50aGlzLmxlbmd0aCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigib3V0IG9mIHJhbmdlIGluZGV4Iik7aWYoanQ+PVF0JiZVZT49eXQpcmV0dXJuIDA7aWYoanQ+PVF0KXJldHVybi0xO2lmKFVl''@;'; + put 'put ''Pj15dClyZXR1cm4gMTtpZih0aGlzPT09R2UpcmV0dXJuIDA7bGV0IGduPShRdD4+Pj0wKS0oanQ+Pj49MCksZG49KHl0Pj4+PTApLShVZT4+Pj0wKTtjb25zdCB5bj1NYXRoLm1pbihnbixkbiksbG49dGhpcy5zbGljZShqdCxRdCksTm49R2Uuc2xpY2UoVWUseXQpO2ZvcihsZXQgYm49MDti''@;'; + put 'put ''bjx5bjsrK2JuKWlmKGxuW2JuXSE9PU5uW2JuXSl7Z249bG5bYm5dLGRuPU5uW2JuXTticmVha31yZXR1cm4gZ248ZG4/LTE6ZG48Z24/MTowfSxxLnByb3RvdHlwZS5pbmNsdWRlcz1mdW5jdGlvbihHZSxVZSx5dCl7cmV0dXJuLTEhPT10aGlzLmluZGV4T2YoR2UsVWUseXQpfSxxLnByb3Rv''@;'; + put 'put ''dHlwZS5pbmRleE9mPWZ1bmN0aW9uKEdlLFVlLHl0KXtyZXR1cm4gSWUodGhpcyxHZSxVZSx5dCwhMCl9LHEucHJvdG90eXBlLmxhc3RJbmRleE9mPWZ1bmN0aW9uKEdlLFVlLHl0KXtyZXR1cm4gSWUodGhpcyxHZSxVZSx5dCwhMSl9LHEucHJvdG90eXBlLndyaXRlPWZ1bmN0aW9uKEdlLFVl''@;'; + put 'put ''LHl0LGp0KXtpZih2b2lkIDA9PT1VZSlqdD0idXRmOCIseXQ9dGhpcy5sZW5ndGgsVWU9MDtlbHNlIGlmKHZvaWQgMD09PXl0JiYic3RyaW5nIj09dHlwZW9mIFVlKWp0PVVlLHl0PXRoaXMubGVuZ3RoLFVlPTA7ZWxzZXtpZighaXNGaW5pdGUoVWUpKXRocm93IG5ldyBFcnJvcigiQnVmZmVy''@;'; + put 'put ''LndyaXRlKHN0cmluZywgZW5jb2RpbmcsIG9mZnNldFssIGxlbmd0aF0pIGlzIG5vIGxvbmdlciBzdXBwb3J0ZWQiKTtVZT4+Pj0wLGlzRmluaXRlKHl0KT8oeXQ+Pj49MCx2b2lkIDA9PT1qdCYmKGp0PSJ1dGY4IikpOihqdD15dCx5dD12b2lkIDApfWNvbnN0IFF0PXRoaXMubGVuZ3RoLVVl''@;'; + put 'put ''O2lmKCh2b2lkIDA9PT15dHx8eXQ+UXQpJiYoeXQ9UXQpLEdlLmxlbmd0aD4wJiYoeXQ8MHx8VWU8MCl8fFVlPnRoaXMubGVuZ3RoKXRocm93IG5ldyBSYW5nZUVycm9yKCJBdHRlbXB0IHRvIHdyaXRlIG91dHNpZGUgYnVmZmVyIGJvdW5kcyIpO2p0fHwoanQ9InV0ZjgiKTtsZXQgZ249ITE7''@;'; + put 'put ''Zm9yKDs7KXN3aXRjaChqdCl7Y2FzZSJoZXgiOnJldHVybiBFZSh0aGlzLEdlLFVlLHl0KTtjYXNlInV0ZjgiOmNhc2UidXRmLTgiOnJldHVybiBoZSh0aGlzLEdlLFVlLHl0KTtjYXNlImFzY2lpIjpjYXNlImxhdGluMSI6Y2FzZSJiaW5hcnkiOnJldHVybiBPKHRoaXMsR2UsVWUseXQpO2Nh''@;'; + put 'put ''c2UiYmFzZTY0IjpyZXR1cm4geih0aGlzLEdlLFVlLHl0KTtjYXNlInVjczIiOmNhc2UidWNzLTIiOmNhc2UidXRmMTZsZSI6Y2FzZSJ1dGYtMTZsZSI6cmV0dXJuIG5lKHRoaXMsR2UsVWUseXQpO2RlZmF1bHQ6aWYoZ24pdGhyb3cgbmV3IFR5cGVFcnJvcigiVW5rbm93biBlbmNvZGluZzog''@;'; + put 'put ''IitqdCk7anQ9KCIiK2p0KS50b0xvd2VyQ2FzZSgpLGduPSEwfX0scS5wcm90b3R5cGUudG9KU09OPWZ1bmN0aW9uKCl7cmV0dXJue3R5cGU6IkJ1ZmZlciIsZGF0YTpBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbCh0aGlzLl9hcnJ8fHRoaXMsMCl9fTtjb25zdCBQPTQwOTY7ZnVuY3Rpb24g''@;'; + put 'put ''VihHZSxVZSx5dCl7bGV0IGp0PSIiO3l0PU1hdGgubWluKEdlLmxlbmd0aCx5dCk7Zm9yKGxldCBRdD1VZTtRdDx5dDsrK1F0KWp0Kz1TdHJpbmcuZnJvbUNoYXJDb2RlKDEyNyZHZVtRdF0pO3JldHVybiBqdH1mdW5jdGlvbiBUKEdlLFVlLHl0KXtsZXQganQ9IiI7eXQ9TWF0aC5taW4oR2Uu''@;'; + put 'put ''bGVuZ3RoLHl0KTtmb3IobGV0IFF0PVVlO1F0PHl0OysrUXQpanQrPVN0cmluZy5mcm9tQ2hhckNvZGUoR2VbUXRdKTtyZXR1cm4ganR9ZnVuY3Rpb24gUyhHZSxVZSx5dCl7Y29uc3QganQ9R2UubGVuZ3RoOyghVWV8fFVlPDApJiYoVWU9MCksKCF5dHx8eXQ8MHx8eXQ+anQpJiYoeXQ9anQp''@;'; + put 'put ''O2xldCBRdD0iIjtmb3IobGV0IGduPVVlO2duPHl0OysrZ24pUXQrPUN0W0dlW2duXV07cmV0dXJuIFF0fWZ1bmN0aW9uIEYoR2UsVWUseXQpe2NvbnN0IGp0PUdlLnNsaWNlKFVlLHl0KTtsZXQgUXQ9IiI7Zm9yKGxldCBnbj0wO2duPGp0Lmxlbmd0aC0xO2duKz0yKVF0Kz1TdHJpbmcuZnJv''@;'; + put 'put ''bUNoYXJDb2RlKGp0W2duXSsyNTYqanRbZ24rMV0pO3JldHVybiBRdH1mdW5jdGlvbiB5ZShHZSxVZSx5dCl7aWYoR2UlMSE9MHx8R2U8MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigib2Zmc2V0IGlzIG5vdCB1aW50Iik7aWYoR2UrVWU+eXQpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIlRyeWluZyB0''@;'; + put 'put ''byBhY2Nlc3MgYmV5b25kIGJ1ZmZlciBsZW5ndGgiKX1mdW5jdGlvbiBDZShHZSxVZSx5dCxqdCxRdCxnbil7aWYoIXEuaXNCdWZmZXIoR2UpKXRocm93IG5ldyBUeXBlRXJyb3IoJyJidWZmZXIiIGFyZ3VtZW50IG11c3QgYmUgYSBCdWZmZXIgaW5zdGFuY2UnKTtpZihVZT5RdHx8VWU8Z24p''@;'; + put 'put ''dGhyb3cgbmV3IFJhbmdlRXJyb3IoJyJ2YWx1ZSIgYXJndW1lbnQgaXMgb3V0IG9mIGJvdW5kcycpO2lmKHl0K2p0PkdlLmxlbmd0aCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW5kZXggb3V0IG9mIHJhbmdlIil9ZnVuY3Rpb24gRGUoR2UsVWUseXQsanQsUXQpe0F0KFVlLGp0LFF0LEdlLHl0''@;'; + put 'put ''LDcpO2xldCBnbj1OdW1iZXIoVWUmQmlnSW50KDQyOTQ5NjcyOTUpKTtHZVt5dCsrXT1nbixnbj4+PTgsR2VbeXQrK109Z24sZ24+Pj04LEdlW3l0KytdPWduLGduPj49OCxHZVt5dCsrXT1nbjtsZXQgZG49TnVtYmVyKFVlPj5CaWdJbnQoMzIpJkJpZ0ludCg0Mjk0OTY3Mjk1KSk7cmV0dXJu''@;'; + put 'put ''IEdlW3l0KytdPWRuLGRuPj49OCxHZVt5dCsrXT1kbixkbj4+PTgsR2VbeXQrK109ZG4sZG4+Pj04LEdlW3l0KytdPWRuLHl0fWZ1bmN0aW9uIFBlKEdlLFVlLHl0LGp0LFF0KXtBdChVZSxqdCxRdCxHZSx5dCw3KTtsZXQgZ249TnVtYmVyKFVlJkJpZ0ludCg0Mjk0OTY3Mjk1KSk7R2VbeXQr''@;'; + put 'put ''N109Z24sZ24+Pj04LEdlW3l0KzZdPWduLGduPj49OCxHZVt5dCs1XT1nbixnbj4+PTgsR2VbeXQrNF09Z247bGV0IGRuPU51bWJlcihVZT4+QmlnSW50KDMyKSZCaWdJbnQoNDI5NDk2NzI5NSkpO3JldHVybiBHZVt5dCszXT1kbixkbj4+PTgsR2VbeXQrMl09ZG4sZG4+Pj04LEdlW3l0KzFd''@;'; + put 'put ''PWRuLGRuPj49OCxHZVt5dF09ZG4seXQrOH1mdW5jdGlvbiBRZShHZSxVZSx5dCxqdCxRdCxnbil7aWYoeXQranQ+R2UubGVuZ3RoKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbmRleCBvdXQgb2YgcmFuZ2UiKTtpZih5dDwwKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbmRleCBvdXQgb2YgcmFu''@;'; + put 'put ''Z2UiKX1mdW5jdGlvbiAkZShHZSxVZSx5dCxqdCxRdCl7cmV0dXJuIFVlPStVZSx5dD4+Pj0wLFF0fHxRZShHZSwwLHl0LDQpLFkud3JpdGUoR2UsVWUseXQsanQsMjMsNCkseXQrNH1mdW5jdGlvbiBndChHZSxVZSx5dCxqdCxRdCl7cmV0dXJuIFVlPStVZSx5dD4+Pj0wLFF0fHxRZShHZSww''@;'; + put 'put ''LHl0LDgpLFkud3JpdGUoR2UsVWUseXQsanQsNTIsOCkseXQrOH1xLnByb3RvdHlwZS5zbGljZT1mdW5jdGlvbihHZSxVZSl7Y29uc3QgeXQ9dGhpcy5sZW5ndGg7KEdlPX5+R2UpPDA/KEdlKz15dCk8MCYmKEdlPTApOkdlPnl0JiYoR2U9eXQpLChVZT12b2lkIDA9PT1VZT95dDp+flVlKTww''@;'; + put 'put ''PyhVZSs9eXQpPDAmJihVZT0wKTpVZT55dCYmKFVlPXl0KSxVZTxHZSYmKFVlPUdlKTtjb25zdCBqdD10aGlzLnN1YmFycmF5KEdlLFVlKTtyZXR1cm4gT2JqZWN0LnNldFByb3RvdHlwZU9mKGp0LHEucHJvdG90eXBlKSxqdH0scS5wcm90b3R5cGUucmVhZFVpbnRMRT1xLnByb3RvdHlwZS5y''@;'; + put 'put ''ZWFkVUludExFPWZ1bmN0aW9uKEdlLFVlLHl0KXtHZT4+Pj0wLFVlPj4+PTAseXR8fHllKEdlLFVlLHRoaXMubGVuZ3RoKTtsZXQganQ9dGhpc1tHZV0sUXQ9MSxnbj0wO2Zvcig7KytnbjxVZSYmKFF0Kj0yNTYpOylqdCs9dGhpc1tHZStnbl0qUXQ7cmV0dXJuIGp0fSxxLnByb3RvdHlwZS5y''@;'; + put 'put ''ZWFkVWludEJFPXEucHJvdG90eXBlLnJlYWRVSW50QkU9ZnVuY3Rpb24oR2UsVWUseXQpe0dlPj4+PTAsVWU+Pj49MCx5dHx8eWUoR2UsVWUsdGhpcy5sZW5ndGgpO2xldCBqdD10aGlzW0dlKy0tVWVdLFF0PTE7Zm9yKDtVZT4wJiYoUXQqPTI1Nik7KWp0Kz10aGlzW0dlKy0tVWVdKlF0O3Jl''@;'; + put 'put ''dHVybiBqdH0scS5wcm90b3R5cGUucmVhZFVpbnQ4PXEucHJvdG90eXBlLnJlYWRVSW50OD1mdW5jdGlvbihHZSxVZSl7cmV0dXJuIEdlPj4+PTAsVWV8fHllKEdlLDEsdGhpcy5sZW5ndGgpLHRoaXNbR2VdfSxxLnByb3RvdHlwZS5yZWFkVWludDE2TEU9cS5wcm90b3R5cGUucmVhZFVJbnQx''@;'; + put 'put ''NkxFPWZ1bmN0aW9uKEdlLFVlKXtyZXR1cm4gR2U+Pj49MCxVZXx8eWUoR2UsMix0aGlzLmxlbmd0aCksdGhpc1tHZV18dGhpc1tHZSsxXTw8OH0scS5wcm90b3R5cGUucmVhZFVpbnQxNkJFPXEucHJvdG90eXBlLnJlYWRVSW50MTZCRT1mdW5jdGlvbihHZSxVZSl7cmV0dXJuIEdlPj4+PTAs''@;'; + put 'put ''VWV8fHllKEdlLDIsdGhpcy5sZW5ndGgpLHRoaXNbR2VdPDw4fHRoaXNbR2UrMV19LHEucHJvdG90eXBlLnJlYWRVaW50MzJMRT1xLnByb3RvdHlwZS5yZWFkVUludDMyTEU9ZnVuY3Rpb24oR2UsVWUpe3JldHVybiBHZT4+Pj0wLFVlfHx5ZShHZSw0LHRoaXMubGVuZ3RoKSwodGhpc1tHZV18''@;'; + put 'put ''dGhpc1tHZSsxXTw8OHx0aGlzW0dlKzJdPDwxNikrMTY3NzcyMTYqdGhpc1tHZSszXX0scS5wcm90b3R5cGUucmVhZFVpbnQzMkJFPXEucHJvdG90eXBlLnJlYWRVSW50MzJCRT1mdW5jdGlvbihHZSxVZSl7cmV0dXJuIEdlPj4+PTAsVWV8fHllKEdlLDQsdGhpcy5sZW5ndGgpLDE2Nzc3MjE2''@;'; + put 'put ''KnRoaXNbR2VdKyh0aGlzW0dlKzFdPDwxNnx0aGlzW0dlKzJdPDw4fHRoaXNbR2UrM10pfSxxLnByb3RvdHlwZS5yZWFkQmlnVUludDY0TEU9ZnQoZnVuY3Rpb24oR2Upe2h0KEdlPj4+PTAsIm9mZnNldCIpO2NvbnN0IFVlPXRoaXNbR2VdLHl0PXRoaXNbR2UrN107dm9pZCAwIT09VWUmJnZv''@;'; + put 'put ''aWQgMCE9PXl0fHxCdChHZSx0aGlzLmxlbmd0aC04KTtjb25zdCBqdD1VZSsyNTYqdGhpc1srK0dlXSs2NTUzNip0aGlzWysrR2VdK3RoaXNbKytHZV0qTU0oMiwyNCksUXQ9dGhpc1srK0dlXSsyNTYqdGhpc1srK0dlXSs2NTUzNip0aGlzWysrR2VdK3l0Kk1NKDIsMjQpO3JldHVybiBCaWdJ''@;'; + put 'put ''bnQoanQpKyhCaWdJbnQoUXQpPDxCaWdJbnQoMzIpKX0pLHEucHJvdG90eXBlLnJlYWRCaWdVSW50NjRCRT1mdChmdW5jdGlvbihHZSl7aHQoR2U+Pj49MCwib2Zmc2V0Iik7Y29uc3QgVWU9dGhpc1tHZV0seXQ9dGhpc1tHZSs3XTt2b2lkIDAhPT1VZSYmdm9pZCAwIT09eXR8fEJ0KEdlLHRo''@;'; + put 'put ''aXMubGVuZ3RoLTgpO2NvbnN0IGp0PVVlKk1NKDIsMjQpKzY1NTM2KnRoaXNbKytHZV0rMjU2KnRoaXNbKytHZV0rdGhpc1srK0dlXSxRdD10aGlzWysrR2VdKk1NKDIsMjQpKzY1NTM2KnRoaXNbKytHZV0rMjU2KnRoaXNbKytHZV0reXQ7cmV0dXJuKEJpZ0ludChqdCk8PEJpZ0ludCgzMikp''@;'; + put 'put ''K0JpZ0ludChRdCl9KSxxLnByb3RvdHlwZS5yZWFkSW50TEU9ZnVuY3Rpb24oR2UsVWUseXQpe0dlPj4+PTAsVWU+Pj49MCx5dHx8eWUoR2UsVWUsdGhpcy5sZW5ndGgpO2xldCBqdD10aGlzW0dlXSxRdD0xLGduPTA7Zm9yKDsrK2duPFVlJiYoUXQqPTI1Nik7KWp0Kz10aGlzW0dlK2duXSpR''@;'; + put 'put ''dDtyZXR1cm4gUXQqPTEyOCxqdD49UXQmJihqdC09TWF0aC5wb3coMiw4KlVlKSksanR9LHEucHJvdG90eXBlLnJlYWRJbnRCRT1mdW5jdGlvbihHZSxVZSx5dCl7R2U+Pj49MCxVZT4+Pj0wLHl0fHx5ZShHZSxVZSx0aGlzLmxlbmd0aCk7bGV0IGp0PVVlLFF0PTEsZ249dGhpc1tHZSstLWp0''@;'; + put 'put ''XTtmb3IoO2p0PjAmJihRdCo9MjU2KTspZ24rPXRoaXNbR2UrLS1qdF0qUXQ7cmV0dXJuIFF0Kj0xMjgsZ24+PVF0JiYoZ24tPU1hdGgucG93KDIsOCpVZSkpLGdufSxxLnByb3RvdHlwZS5yZWFkSW50OD1mdW5jdGlvbihHZSxVZSl7cmV0dXJuIEdlPj4+PTAsVWV8fHllKEdlLDEsdGhpcy5s''@;'; + put 'put ''ZW5ndGgpLDEyOCZ0aGlzW0dlXT8tMSooMjU1LXRoaXNbR2VdKzEpOnRoaXNbR2VdfSxxLnByb3RvdHlwZS5yZWFkSW50MTZMRT1mdW5jdGlvbihHZSxVZSl7R2U+Pj49MCxVZXx8eWUoR2UsMix0aGlzLmxlbmd0aCk7Y29uc3QgeXQ9dGhpc1tHZV18dGhpc1tHZSsxXTw8ODtyZXR1cm4gMzI3''@;'; + put 'put ''NjgmeXQ/NDI5NDkwMTc2MHx5dDp5dH0scS5wcm90b3R5cGUucmVhZEludDE2QkU9ZnVuY3Rpb24oR2UsVWUpe0dlPj4+PTAsVWV8fHllKEdlLDIsdGhpcy5sZW5ndGgpO2NvbnN0IHl0PXRoaXNbR2UrMV18dGhpc1tHZV08PDg7cmV0dXJuIDMyNzY4Jnl0PzQyOTQ5MDE3NjB8eXQ6eXR9LHEu''@;'; + put 'put ''cHJvdG90eXBlLnJlYWRJbnQzMkxFPWZ1bmN0aW9uKEdlLFVlKXtyZXR1cm4gR2U+Pj49MCxVZXx8eWUoR2UsNCx0aGlzLmxlbmd0aCksdGhpc1tHZV18dGhpc1tHZSsxXTw8OHx0aGlzW0dlKzJdPDwxNnx0aGlzW0dlKzNdPDwyNH0scS5wcm90b3R5cGUucmVhZEludDMyQkU9ZnVuY3Rpb24o''@;'; + put 'put ''R2UsVWUpe3JldHVybiBHZT4+Pj0wLFVlfHx5ZShHZSw0LHRoaXMubGVuZ3RoKSx0aGlzW0dlXTw8MjR8dGhpc1tHZSsxXTw8MTZ8dGhpc1tHZSsyXTw8OHx0aGlzW0dlKzNdfSxxLnByb3RvdHlwZS5yZWFkQmlnSW50NjRMRT1mdChmdW5jdGlvbihHZSl7aHQoR2U+Pj49MCwib2Zmc2V0Iik7''@;'; + put 'put ''Y29uc3QgVWU9dGhpc1tHZV0seXQ9dGhpc1tHZSs3XTtyZXR1cm4gdm9pZCAwIT09VWUmJnZvaWQgMCE9PXl0fHxCdChHZSx0aGlzLmxlbmd0aC04KSwoQmlnSW50KHRoaXNbR2UrNF0rMjU2KnRoaXNbR2UrNV0rNjU1MzYqdGhpc1tHZSs2XSsoeXQ8PDI0KSk8PEJpZ0ludCgzMikpK0JpZ0lu''@;'; + put 'put ''dChVZSsyNTYqdGhpc1srK0dlXSs2NTUzNip0aGlzWysrR2VdKzE2Nzc3MjE2KnRoaXNbKytHZV0pfSkscS5wcm90b3R5cGUucmVhZEJpZ0ludDY0QkU9ZnQoZnVuY3Rpb24oR2Upe2h0KEdlPj4+PTAsIm9mZnNldCIpO2NvbnN0IFVlPXRoaXNbR2VdLHl0PXRoaXNbR2UrN107dm9pZCAwIT09''@;'; + put 'put ''VWUmJnZvaWQgMCE9PXl0fHxCdChHZSx0aGlzLmxlbmd0aC04KTtjb25zdCBqdD0oVWU8PDI0KSs2NTUzNip0aGlzWysrR2VdKzI1Nip0aGlzWysrR2VdK3RoaXNbKytHZV07cmV0dXJuKEJpZ0ludChqdCk8PEJpZ0ludCgzMikpK0JpZ0ludCgxNjc3NzIxNip0aGlzWysrR2VdKzY1NTM2KnRo''@;'; + put 'put ''aXNbKytHZV0rMjU2KnRoaXNbKytHZV0reXQpfSkscS5wcm90b3R5cGUucmVhZEZsb2F0TEU9ZnVuY3Rpb24oR2UsVWUpe3JldHVybiBHZT4+Pj0wLFVlfHx5ZShHZSw0LHRoaXMubGVuZ3RoKSxZLnJlYWQodGhpcyxHZSwhMCwyMyw0KX0scS5wcm90b3R5cGUucmVhZEZsb2F0QkU9ZnVuY3Rp''@;'; + put 'put ''b24oR2UsVWUpe3JldHVybiBHZT4+Pj0wLFVlfHx5ZShHZSw0LHRoaXMubGVuZ3RoKSxZLnJlYWQodGhpcyxHZSwhMSwyMyw0KX0scS5wcm90b3R5cGUucmVhZERvdWJsZUxFPWZ1bmN0aW9uKEdlLFVlKXtyZXR1cm4gR2U+Pj49MCxVZXx8eWUoR2UsOCx0aGlzLmxlbmd0aCksWS5yZWFkKHRo''@;'; + put 'put ''aXMsR2UsITAsNTIsOCl9LHEucHJvdG90eXBlLnJlYWREb3VibGVCRT1mdW5jdGlvbihHZSxVZSl7cmV0dXJuIEdlPj4+PTAsVWV8fHllKEdlLDgsdGhpcy5sZW5ndGgpLFkucmVhZCh0aGlzLEdlLCExLDUyLDgpfSxxLnByb3RvdHlwZS53cml0ZVVpbnRMRT1xLnByb3RvdHlwZS53cml0ZVVJ''@;'; + put 'put ''bnRMRT1mdW5jdGlvbihHZSxVZSx5dCxqdCl7R2U9K0dlLFVlPj4+PTAseXQ+Pj49MCwhanQmJkNlKHRoaXMsR2UsVWUseXQsTWF0aC5wb3coMiw4Knl0KS0xLDApO2xldCBRdD0xLGduPTA7Zm9yKHRoaXNbVWVdPTI1NSZHZTsrK2duPHl0JiYoUXQqPTI1Nik7KXRoaXNbVWUrZ25dPUdlL1F0''@;'; + put 'put ''JjI1NTtyZXR1cm4gVWUreXR9LHEucHJvdG90eXBlLndyaXRlVWludEJFPXEucHJvdG90eXBlLndyaXRlVUludEJFPWZ1bmN0aW9uKEdlLFVlLHl0LGp0KXtHZT0rR2UsVWU+Pj49MCx5dD4+Pj0wLCFqdCYmQ2UodGhpcyxHZSxVZSx5dCxNYXRoLnBvdygyLDgqeXQpLTEsMCk7bGV0IFF0PXl0''@;'; + put 'put ''LTEsZ249MTtmb3IodGhpc1tVZStRdF09MjU1JkdlOy0tUXQ+PTAmJihnbio9MjU2KTspdGhpc1tVZStRdF09R2UvZ24mMjU1O3JldHVybiBVZSt5dH0scS5wcm90b3R5cGUud3JpdGVVaW50OD1xLnByb3RvdHlwZS53cml0ZVVJbnQ4PWZ1bmN0aW9uKEdlLFVlLHl0KXtyZXR1cm4gR2U9K0dl''@;'; + put 'put ''LFVlPj4+PTAseXR8fENlKHRoaXMsR2UsVWUsMSwyNTUsMCksdGhpc1tVZV09MjU1JkdlLFVlKzF9LHEucHJvdG90eXBlLndyaXRlVWludDE2TEU9cS5wcm90b3R5cGUud3JpdGVVSW50MTZMRT1mdW5jdGlvbihHZSxVZSx5dCl7cmV0dXJuIEdlPStHZSxVZT4+Pj0wLHl0fHxDZSh0aGlzLEdl''@;'; + put 'put ''LFVlLDIsNjU1MzUsMCksdGhpc1tVZV09MjU1JkdlLHRoaXNbVWUrMV09R2U+Pj44LFVlKzJ9LHEucHJvdG90eXBlLndyaXRlVWludDE2QkU9cS5wcm90b3R5cGUud3JpdGVVSW50MTZCRT1mdW5jdGlvbihHZSxVZSx5dCl7cmV0dXJuIEdlPStHZSxVZT4+Pj0wLHl0fHxDZSh0aGlzLEdlLFVl''@;'; + put 'put ''LDIsNjU1MzUsMCksdGhpc1tVZV09R2U+Pj44LHRoaXNbVWUrMV09MjU1JkdlLFVlKzJ9LHEucHJvdG90eXBlLndyaXRlVWludDMyTEU9cS5wcm90b3R5cGUud3JpdGVVSW50MzJMRT1mdW5jdGlvbihHZSxVZSx5dCl7cmV0dXJuIEdlPStHZSxVZT4+Pj0wLHl0fHxDZSh0aGlzLEdlLFVlLDQs''@;'; + put 'put ''NDI5NDk2NzI5NSwwKSx0aGlzW1VlKzNdPUdlPj4+MjQsdGhpc1tVZSsyXT1HZT4+PjE2LHRoaXNbVWUrMV09R2U+Pj44LHRoaXNbVWVdPTI1NSZHZSxVZSs0fSxxLnByb3RvdHlwZS53cml0ZVVpbnQzMkJFPXEucHJvdG90eXBlLndyaXRlVUludDMyQkU9ZnVuY3Rpb24oR2UsVWUseXQpe3Jl''@;'; + put 'put ''dHVybiBHZT0rR2UsVWU+Pj49MCx5dHx8Q2UodGhpcyxHZSxVZSw0LDQyOTQ5NjcyOTUsMCksdGhpc1tVZV09R2U+Pj4yNCx0aGlzW1VlKzFdPUdlPj4+MTYsdGhpc1tVZSsyXT1HZT4+PjgsdGhpc1tVZSszXT0yNTUmR2UsVWUrNH0scS5wcm90b3R5cGUud3JpdGVCaWdVSW50NjRMRT1mdChm''@;'; + put 'put ''dW5jdGlvbihHZSxVZT0wKXtyZXR1cm4gRGUodGhpcyxHZSxVZSxCaWdJbnQoMCksQmlnSW50KCIweGZmZmZmZmZmZmZmZmZmZmYiKSl9KSxxLnByb3RvdHlwZS53cml0ZUJpZ1VJbnQ2NEJFPWZ0KGZ1bmN0aW9uKEdlLFVlPTApe3JldHVybiBQZSh0aGlzLEdlLFVlLEJpZ0ludCgwKSxCaWdJ''@;'; + put 'put ''bnQoIjB4ZmZmZmZmZmZmZmZmZmZmZiIpKX0pLHEucHJvdG90eXBlLndyaXRlSW50TEU9ZnVuY3Rpb24oR2UsVWUseXQsanQpe2lmKEdlPStHZSxVZT4+Pj0wLCFqdCl7Y29uc3QgeW49TWF0aC5wb3coMiw4Knl0LTEpO0NlKHRoaXMsR2UsVWUseXQseW4tMSwteW4pfWxldCBRdD0wLGduPTEs''@;'; + put 'put ''ZG49MDtmb3IodGhpc1tVZV09MjU1JkdlOysrUXQ8eXQmJihnbio9MjU2KTspR2U8MCYmMD09PWRuJiYwIT09dGhpc1tVZStRdC0xXSYmKGRuPTEpLHRoaXNbVWUrUXRdPShHZS9nbj4+MCktZG4mMjU1O3JldHVybiBVZSt5dH0scS5wcm90b3R5cGUud3JpdGVJbnRCRT1mdW5jdGlvbihHZSxV''@;'; + put 'put ''ZSx5dCxqdCl7aWYoR2U9K0dlLFVlPj4+PTAsIWp0KXtjb25zdCB5bj1NYXRoLnBvdygyLDgqeXQtMSk7Q2UodGhpcyxHZSxVZSx5dCx5bi0xLC15bil9bGV0IFF0PXl0LTEsZ249MSxkbj0wO2Zvcih0aGlzW1VlK1F0XT0yNTUmR2U7LS1RdD49MCYmKGduKj0yNTYpOylHZTwwJiYwPT09ZG4m''@;'; + put 'put ''JjAhPT10aGlzW1VlK1F0KzFdJiYoZG49MSksdGhpc1tVZStRdF09KEdlL2duPj4wKS1kbiYyNTU7cmV0dXJuIFVlK3l0fSxxLnByb3RvdHlwZS53cml0ZUludDg9ZnVuY3Rpb24oR2UsVWUseXQpe3JldHVybiBHZT0rR2UsVWU+Pj49MCx5dHx8Q2UodGhpcyxHZSxVZSwxLDEyNywtMTI4KSxH''@;'; + put 'put ''ZTwwJiYoR2U9MjU1K0dlKzEpLHRoaXNbVWVdPTI1NSZHZSxVZSsxfSxxLnByb3RvdHlwZS53cml0ZUludDE2TEU9ZnVuY3Rpb24oR2UsVWUseXQpe3JldHVybiBHZT0rR2UsVWU+Pj49MCx5dHx8Q2UodGhpcyxHZSxVZSwyLDMyNzY3LC0zMjc2OCksdGhpc1tVZV09MjU1JkdlLHRoaXNbVWUr''@;'; + put 'put ''MV09R2U+Pj44LFVlKzJ9LHEucHJvdG90eXBlLndyaXRlSW50MTZCRT1mdW5jdGlvbihHZSxVZSx5dCl7cmV0dXJuIEdlPStHZSxVZT4+Pj0wLHl0fHxDZSh0aGlzLEdlLFVlLDIsMzI3NjcsLTMyNzY4KSx0aGlzW1VlXT1HZT4+PjgsdGhpc1tVZSsxXT0yNTUmR2UsVWUrMn0scS5wcm90b3R5''@;'; + put 'put ''cGUud3JpdGVJbnQzMkxFPWZ1bmN0aW9uKEdlLFVlLHl0KXtyZXR1cm4gR2U9K0dlLFVlPj4+PTAseXR8fENlKHRoaXMsR2UsVWUsNCwyMTQ3NDgzNjQ3LC0yMTQ3NDgzNjQ4KSx0aGlzW1VlXT0yNTUmR2UsdGhpc1tVZSsxXT1HZT4+PjgsdGhpc1tVZSsyXT1HZT4+PjE2LHRoaXNbVWUrM109''@;'; + put 'put ''R2U+Pj4yNCxVZSs0fSxxLnByb3RvdHlwZS53cml0ZUludDMyQkU9ZnVuY3Rpb24oR2UsVWUseXQpe3JldHVybiBHZT0rR2UsVWU+Pj49MCx5dHx8Q2UodGhpcyxHZSxVZSw0LDIxNDc0ODM2NDcsLTIxNDc0ODM2NDgpLEdlPDAmJihHZT00Mjk0OTY3Mjk1K0dlKzEpLHRoaXNbVWVdPUdlPj4+''@;'; + put 'put ''MjQsdGhpc1tVZSsxXT1HZT4+PjE2LHRoaXNbVWUrMl09R2U+Pj44LHRoaXNbVWUrM109MjU1JkdlLFVlKzR9LHEucHJvdG90eXBlLndyaXRlQmlnSW50NjRMRT1mdChmdW5jdGlvbihHZSxVZT0wKXtyZXR1cm4gRGUodGhpcyxHZSxVZSwtQmlnSW50KCIweDgwMDAwMDAwMDAwMDAwMDAiKSxC''@;'; + put 'put ''aWdJbnQoIjB4N2ZmZmZmZmZmZmZmZmZmZiIpKX0pLHEucHJvdG90eXBlLndyaXRlQmlnSW50NjRCRT1mdChmdW5jdGlvbihHZSxVZT0wKXtyZXR1cm4gUGUodGhpcyxHZSxVZSwtQmlnSW50KCIweDgwMDAwMDAwMDAwMDAwMDAiKSxCaWdJbnQoIjB4N2ZmZmZmZmZmZmZmZmZmZiIpKX0pLHEu''@;'; + put 'put ''cHJvdG90eXBlLndyaXRlRmxvYXRMRT1mdW5jdGlvbihHZSxVZSx5dCl7cmV0dXJuICRlKHRoaXMsR2UsVWUsITAseXQpfSxxLnByb3RvdHlwZS53cml0ZUZsb2F0QkU9ZnVuY3Rpb24oR2UsVWUseXQpe3JldHVybiAkZSh0aGlzLEdlLFVlLCExLHl0KX0scS5wcm90b3R5cGUud3JpdGVEb3Vi''@;'; + put 'put ''bGVMRT1mdW5jdGlvbihHZSxVZSx5dCl7cmV0dXJuIGd0KHRoaXMsR2UsVWUsITAseXQpfSxxLnByb3RvdHlwZS53cml0ZURvdWJsZUJFPWZ1bmN0aW9uKEdlLFVlLHl0KXtyZXR1cm4gZ3QodGhpcyxHZSxVZSwhMSx5dCl9LHEucHJvdG90eXBlLmNvcHk9ZnVuY3Rpb24oR2UsVWUseXQsanQp''@;'; + put 'put ''e2lmKCFxLmlzQnVmZmVyKEdlKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJhcmd1bWVudCBzaG91bGQgYmUgYSBCdWZmZXIiKTtpZih5dHx8KHl0PTApLGp0fHwwPT09anR8fChqdD10aGlzLmxlbmd0aCksVWU+PUdlLmxlbmd0aCYmKFVlPUdlLmxlbmd0aCksVWV8fChVZT0wKSxqdD4wJiZqdDx5''@;'; + put 'put ''dCYmKGp0PXl0KSxqdD09PXl0fHwwPT09R2UubGVuZ3RofHwwPT09dGhpcy5sZW5ndGgpcmV0dXJuIDA7aWYoVWU8MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigidGFyZ2V0U3RhcnQgb3V0IG9mIGJvdW5kcyIpO2lmKHl0PDB8fHl0Pj10aGlzLmxlbmd0aCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigi''@;'; + put 'put ''SW5kZXggb3V0IG9mIHJhbmdlIik7aWYoanQ8MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigic291cmNlRW5kIG91dCBvZiBib3VuZHMiKTtqdD50aGlzLmxlbmd0aCYmKGp0PXRoaXMubGVuZ3RoKSxHZS5sZW5ndGgtVWU8anQteXQmJihqdD1HZS5sZW5ndGgtVWUreXQpO2NvbnN0IFF0PWp0LXl0''@;'; + put 'put ''O3JldHVybiB0aGlzPT09R2UmJiJmdW5jdGlvbiI9PXR5cGVvZiBVaW50OEFycmF5LnByb3RvdHlwZS5jb3B5V2l0aGluP3RoaXMuY29weVdpdGhpbihVZSx5dCxqdCk6VWludDhBcnJheS5wcm90b3R5cGUuc2V0LmNhbGwoR2UsdGhpcy5zdWJhcnJheSh5dCxqdCksVWUpLFF0fSxxLnByb3Rv''@;'; + put 'put ''dHlwZS5maWxsPWZ1bmN0aW9uKEdlLFVlLHl0LGp0KXtpZigic3RyaW5nIj09dHlwZW9mIEdlKXtpZigic3RyaW5nIj09dHlwZW9mIFVlPyhqdD1VZSxVZT0wLHl0PXRoaXMubGVuZ3RoKToic3RyaW5nIj09dHlwZW9mIHl0JiYoanQ9eXQseXQ9dGhpcy5sZW5ndGgpLHZvaWQgMCE9PWp0JiYi''@;'; + put 'put ''c3RyaW5nIiE9dHlwZW9mIGp0KXRocm93IG5ldyBUeXBlRXJyb3IoImVuY29kaW5nIG11c3QgYmUgYSBzdHJpbmciKTtpZigic3RyaW5nIj09dHlwZW9mIGp0JiYhcS5pc0VuY29kaW5nKGp0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJVbmtub3duIGVuY29kaW5nOiAiK2p0KTtpZigxPT09R2Uu''@;'; + put 'put ''bGVuZ3RoKXtjb25zdCBnbj1HZS5jaGFyQ29kZUF0KDApOygidXRmOCI9PT1qdCYmZ248MTI4fHwibGF0aW4xIj09PWp0KSYmKEdlPWduKX19ZWxzZSJudW1iZXIiPT10eXBlb2YgR2U/R2UmPTI1NToiYm9vbGVhbiI9PXR5cGVvZiBHZSYmKEdlPU51bWJlcihHZSkpO2lmKFVlPDB8fHRoaXMu''@;'; + put 'put ''bGVuZ3RoPFVlfHx0aGlzLmxlbmd0aDx5dCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiT3V0IG9mIHJhbmdlIGluZGV4Iik7aWYoeXQ8PVVlKXJldHVybiB0aGlzO2xldCBRdDtpZihVZT4+Pj0wLHl0PXZvaWQgMD09PXl0P3RoaXMubGVuZ3RoOnl0Pj4+MCxHZXx8KEdlPTApLCJudW1iZXIiPT10''@;'; + put 'put ''eXBlb2YgR2UpZm9yKFF0PVVlO1F0PHl0OysrUXQpdGhpc1tRdF09R2U7ZWxzZXtjb25zdCBnbj1xLmlzQnVmZmVyKEdlKT9HZTpxLmZyb20oR2UsanQpLGRuPWduLmxlbmd0aDtpZigwPT09ZG4pdGhyb3cgbmV3IFR5cGVFcnJvcignVGhlIHZhbHVlICInK0dlKyciIGlzIGludmFsaWQgZm9y''@;'; + put 'put ''IGFyZ3VtZW50ICJ2YWx1ZSInKTtmb3IoUXQ9MDtRdDx5dC1VZTsrK1F0KXRoaXNbUXQrVWVdPWduW1F0JWRuXX1yZXR1cm4gdGhpc307Y29uc3Qgd3Q9e307ZnVuY3Rpb24gbXQoR2UsVWUseXQpe3d0W0dlXT1jbGFzcyBleHRlbmRzIHl0e2NvbnN0cnVjdG9yKCl7c3VwZXIoKSxPYmplY3Qu''@;'; + put 'put ''ZGVmaW5lUHJvcGVydHkodGhpcywibWVzc2FnZSIse3ZhbHVlOlVlLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9KSx0aGlzLm5hbWU9YCR7dGhpcy5uYW1lfSBbJHtHZX1dYCxkZWxldGUgdGhpcy5uYW1lfWdldCBjb2RlKCl7cmV0dXJuIEdlfXNl''@;'; + put 'put ''dCBjb2RlKGp0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywiY29kZSIse2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwLHZhbHVlOmp0LHdyaXRhYmxlOiEwfSl9dG9TdHJpbmcoKXtyZXR1cm5gJHt0aGlzLm5hbWV9IFske0dlfV06ICR7dGhpcy5tZXNzYWdlfWB9fX1mdW5jdGlv''@;'; + put 'put ''biB2dChHZSl7bGV0IFVlPSIiLHl0PUdlLmxlbmd0aDtjb25zdCBqdD0iLSI9PT1HZVswXT8xOjA7Zm9yKDt5dD49anQrNDt5dC09MylVZT1gXyR7R2Uuc2xpY2UoeXQtMyx5dCl9JHtVZX1gO3JldHVybmAke0dlLnNsaWNlKDAseXQpfSR7VWV9YH1mdW5jdGlvbiBBdChHZSxVZSx5dCxqdCxR''@;'; + put 'put ''dCxnbil7aWYoR2U+eXR8fEdlPFVlKXtjb25zdCBkbj0iYmlnaW50Ij09dHlwZW9mIFVlPyJuIjoiIjtsZXQgeW47dGhyb3cgeW49Z24+Mz8wPT09VWV8fFVlPT09QmlnSW50KDApP2A+PSAwJHtkbn0gYW5kIDwgMiR7ZG59ICoqICR7OCooZ24rMSl9JHtkbn1gOmA+PSAtKDIke2RufSAqKiAk''@;'; + put 'put ''ezgqKGduKzEpLTF9JHtkbn0pIGFuZCA8IDIgKiogJHs4KihnbisxKS0xfSR7ZG59YDpgPj0gJHtVZX0ke2RufSBhbmQgPD0gJHt5dH0ke2RufWAsbmV3IHd0LkVSUl9PVVRfT0ZfUkFOR0UoInZhbHVlIix5bixHZSl9dmFyIGRuLHluLGxuO2RuPWp0LGxuPWduLGh0KHluPVF0LCJvZmZzZXQi''@;'; + put 'put ''KSx2b2lkIDAhPT1kblt5bl0mJnZvaWQgMCE9PWRuW3luK2xuXXx8QnQoeW4sZG4ubGVuZ3RoLShsbisxKSl9ZnVuY3Rpb24gaHQoR2UsVWUpe2lmKCJudW1iZXIiIT10eXBlb2YgR2UpdGhyb3cgbmV3IHd0LkVSUl9JTlZBTElEX0FSR19UWVBFKFVlLCJudW1iZXIiLEdlKX1mdW5jdGlvbiBC''@;'; + put 'put ''dChHZSxVZSx5dCl7dGhyb3cgTWF0aC5mbG9vcihHZSkhPT1HZT8oaHQoR2UseXQpLG5ldyB3dC5FUlJfT1VUX09GX1JBTkdFKHl0fHwib2Zmc2V0IiwiYW4gaW50ZWdlciIsR2UpKTpVZTwwP25ldyB3dC5FUlJfQlVGRkVSX09VVF9PRl9CT1VORFM6bmV3IHd0LkVSUl9PVVRfT0ZfUkFOR0Uo''@;'; + put 'put ''eXR8fCJvZmZzZXQiLGA+PSAke3l0PzE6MH0gYW5kIDw9ICR7VWV9YCxHZSl9bXQoIkVSUl9CVUZGRVJfT1VUX09GX0JPVU5EUyIsZnVuY3Rpb24oR2Upe3JldHVybiBHZT9gJHtHZX0gaXMgb3V0c2lkZSBvZiBidWZmZXIgYm91bmRzYDoiQXR0ZW1wdCB0byBhY2Nlc3MgbWVtb3J5IG91dHNp''@;'; + put 'put ''ZGUgYnVmZmVyIGJvdW5kcyJ9LFJhbmdlRXJyb3IpLG10KCJFUlJfSU5WQUxJRF9BUkdfVFlQRSIsZnVuY3Rpb24oR2UsVWUpe3JldHVybmBUaGUgIiR7R2V9IiBhcmd1bWVudCBtdXN0IGJlIG9mIHR5cGUgbnVtYmVyLiBSZWNlaXZlZCB0eXBlICR7dHlwZW9mIFVlfWB9LFR5cGVFcnJvciks''@;'; + put 'put ''bXQoIkVSUl9PVVRfT0ZfUkFOR0UiLGZ1bmN0aW9uKEdlLFVlLHl0KXtsZXQganQ9YFRoZSB2YWx1ZSBvZiAiJHtHZX0iIGlzIG91dCBvZiByYW5nZS5gLFF0PXl0O3JldHVybiBOdW1iZXIuaXNJbnRlZ2VyKHl0KSYmTWF0aC5hYnMoeXQpPjQyOTQ5NjcyOTY/UXQ9dnQoU3RyaW5nKHl0KSk6''@;'; + put 'put ''ImJpZ2ludCI9PXR5cGVvZiB5dCYmKFF0PVN0cmluZyh5dCksKHl0Pk1NKEJpZ0ludCgyKSxCaWdJbnQoMzIpKXx8eXQ8LU1NKEJpZ0ludCgyKSxCaWdJbnQoMzIpKSkmJihRdD12dChRdCkpLFF0Kz0ibiIpLGp0Kz1gIEl0IG11c3QgYmUgJHtVZX0uIFJlY2VpdmVkICR7UXR9YCxqdH0sUmFu''@;'; + put 'put ''Z2VFcnJvcik7Y29uc3Qgb249L1teKy8wLTlBLVphLXotX10vZztmdW5jdGlvbiBfdChHZSxVZSl7bGV0IHl0O1VlPVVlfHwxLzA7Y29uc3QganQ9R2UubGVuZ3RoO2xldCBRdD1udWxsO2NvbnN0IGduPVtdO2ZvcihsZXQgZG49MDtkbjxqdDsrK2RuKXtpZih5dD1HZS5jaGFyQ29kZUF0KGRu''@;'; + put 'put ''KSx5dD41NTI5NSYmeXQ8NTczNDQpe2lmKCFRdCl7aWYoeXQ+NTYzMTkpeyhVZS09Myk+LTEmJmduLnB1c2goMjM5LDE5MSwxODkpO2NvbnRpbnVlfWlmKGRuKzE9PT1qdCl7KFVlLT0zKT4tMSYmZ24ucHVzaCgyMzksMTkxLDE4OSk7Y29udGludWV9UXQ9eXQ7Y29udGludWV9aWYoeXQ8NTYz''@;'; + put 'put ''MjApeyhVZS09Myk+LTEmJmduLnB1c2goMjM5LDE5MSwxODkpLFF0PXl0O2NvbnRpbnVlfXl0PTY1NTM2KyhRdC01NTI5Njw8MTB8eXQtNTYzMjApfWVsc2UgUXQmJihVZS09Myk+LTEmJmduLnB1c2goMjM5LDE5MSwxODkpO2lmKFF0PW51bGwseXQ8MTI4KXtpZigoVWUtPTEpPDApYnJlYWs7''@;'; + put 'put ''Z24ucHVzaCh5dCl9ZWxzZSBpZih5dDwyMDQ4KXtpZigoVWUtPTIpPDApYnJlYWs7Z24ucHVzaCh5dD4+NnwxOTIsNjMmeXR8MTI4KX1lbHNlIGlmKHl0PDY1NTM2KXtpZigoVWUtPTMpPDApYnJlYWs7Z24ucHVzaCh5dD4+MTJ8MjI0LHl0Pj42JjYzfDEyOCw2MyZ5dHwxMjgpfWVsc2V7aWYo''@;'; + put 'put ''ISh5dDwxMTE0MTEyKSl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgY29kZSBwb2ludCIpO2lmKChVZS09NCk8MClicmVhaztnbi5wdXNoKHl0Pj4xOHwyNDAseXQ+PjEyJjYzfDEyOCx5dD4+NiY2M3wxMjgsNjMmeXR8MTI4KX19cmV0dXJuIGdufWZ1bmN0aW9uIHR0KEdlKXtyZXR1cm4gYWUu''@;'; + put 'put ''dG9CeXRlQXJyYXkoZnVuY3Rpb24oVWUpe2lmKChVZT0oVWU9VWUuc3BsaXQoIj0iKVswXSkudHJpbSgpLnJlcGxhY2Uob24sIiIpKS5sZW5ndGg8MilyZXR1cm4iIjtmb3IoO1VlLmxlbmd0aCU0IT0wOylVZSs9Ij0iO3JldHVybiBVZX0oR2UpKX1mdW5jdGlvbiBldChHZSxVZSx5dCxqdCl7''@;'; + put 'put ''bGV0IFF0O2ZvcihRdD0wO1F0PGp0JiYhKFF0K3l0Pj1VZS5sZW5ndGh8fFF0Pj1HZS5sZW5ndGgpOysrUXQpVWVbUXQreXRdPUdlW1F0XTtyZXR1cm4gUXR9ZnVuY3Rpb24gYXQoR2UsVWUpe3JldHVybiBHZSBpbnN0YW5jZW9mIFVlfHxudWxsIT1HZSYmbnVsbCE9R2UuY29uc3RydWN0b3Im''@;'; + put 'put ''Jm51bGwhPUdlLmNvbnN0cnVjdG9yLm5hbWUmJkdlLmNvbnN0cnVjdG9yLm5hbWU9PT1VZS5uYW1lfWZ1bmN0aW9uIEx0KEdlKXtyZXR1cm4gR2UhPUdlfWNvbnN0IEN0PWZ1bmN0aW9uKCl7Y29uc3QgR2U9IjAxMjM0NTY3ODlhYmNkZWYiLFVlPW5ldyBBcnJheSgyNTYpO2ZvcihsZXQgeXQ9''@;'; + put 'put ''MDt5dDwxNjsrK3l0KXtjb25zdCBqdD0xNip5dDtmb3IobGV0IFF0PTA7UXQ8MTY7KytRdClVZVtqdCtRdF09R2VbeXRdK0dlW1F0XX1yZXR1cm4gVWV9KCk7ZnVuY3Rpb24gZnQoR2Upe3JldHVybiJ1bmRlZmluZWQiPT10eXBlb2YgQmlnSW50P0h0OkdlfWZ1bmN0aW9uIEh0KCl7dGhyb3cg''@;'; + put 'put ''bmV3IEVycm9yKCJCaWdJbnQgbm90IHN1cHBvcnRlZCIpfX0sMTkyNDooVSxRLFopPT57InVzZSBzdHJpY3QiO3ZhciBpZT1aKDIxMCksYWU9Wig1NTU5KSxZPWFlKGllKCJTdHJpbmcucHJvdG90eXBlLmluZGV4T2YiKSk7VS5leHBvcnRzPWZ1bmN0aW9uKFcsTil7dmFyIGVlPWllKFcsISFO''@;'; + put 'put ''KTtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgZWUmJlkoVywiLnByb3RvdHlwZS4iKT4tMT9hZShlZSk6ZWV9fSw1NTU5OihVLFEsWik9PnsidXNlIHN0cmljdCI7dmFyIGllPVooODYxMiksYWU9WigyMTApLFk9YWUoIiVGdW5jdGlvbi5wcm90b3R5cGUuYXBwbHklIiksVz1hZSgiJUZ1bmN0''@;'; + put 'put ''aW9uLnByb3RvdHlwZS5jYWxsJSIpLE49YWUoIiVSZWZsZWN0LmFwcGx5JSIsITApfHxpZS5jYWxsKFcsWSksZWU9YWUoIiVPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yJSIsITApLHE9YWUoIiVPYmplY3QuZGVmaW5lUHJvcGVydHklIiwhMCksSj1hZSgiJU1hdGgubWF4JSIpO2lm''@;'; + put 'put ''KHEpdHJ5e3Eoe30sImEiLHt2YWx1ZToxfSl9Y2F0Y2gob2Upe3E9bnVsbH1VLmV4cG9ydHM9ZnVuY3Rpb24ob2Upe3ZhciBjZT1OKGllLFcsYXJndW1lbnRzKTtyZXR1cm4gZWUmJnEmJmVlKGNlLCJsZW5ndGgiKS5jb25maWd1cmFibGUmJnEoY2UsImxlbmd0aCIse3ZhbHVlOjErSigwLG9l''@;'; + put 'put ''Lmxlbmd0aC0oYXJndW1lbnRzLmxlbmd0aC0xKSl9KSxjZX07dmFyIHNlPWZ1bmN0aW9uKCl7cmV0dXJuIE4oaWUsWSxhcmd1bWVudHMpfTtxP3EoVS5leHBvcnRzLCJhcHBseSIse3ZhbHVlOnNlfSk6VS5leHBvcnRzLmFwcGx5PXNlfSwxMDI3OihVLFEsWik9Pnt2YXIgaWU9Wig5NTA5KS5C''@;'; + put 'put ''dWZmZXIsYWU9WigyODMwKS5UcmFuc2Zvcm0sWT1aKDI1NTMpLlN0cmluZ0RlY29kZXI7ZnVuY3Rpb24gVyhOKXthZS5jYWxsKHRoaXMpLHRoaXMuaGFzaE1vZGU9InN0cmluZyI9PXR5cGVvZiBOLHRoaXMuaGFzaE1vZGU/dGhpc1tOXT10aGlzLl9maW5hbE9yRGlnZXN0OnRoaXMuZmluYWw9''@;'; + put 'put ''dGhpcy5fZmluYWxPckRpZ2VzdCx0aGlzLl9maW5hbCYmKHRoaXMuX19maW5hbD10aGlzLl9maW5hbCx0aGlzLl9maW5hbD1udWxsKSx0aGlzLl9kZWNvZGVyPW51bGwsdGhpcy5fZW5jb2Rpbmc9bnVsbH1aKDU3MTcpKFcsYWUpLFcucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbihOLGVlLHEp''@;'; + put 'put ''eyJzdHJpbmciPT10eXBlb2YgTiYmKE49aWUuZnJvbShOLGVlKSk7dmFyIEo9dGhpcy5fdXBkYXRlKE4pO3JldHVybiB0aGlzLmhhc2hNb2RlP3RoaXM6KHEmJihKPXRoaXMuX3RvU3RyaW5nKEoscSkpLEopfSxXLnByb3RvdHlwZS5zZXRBdXRvUGFkZGluZz1mdW5jdGlvbigpe30sVy5wcm90''@;'; + put 'put ''b3R5cGUuZ2V0QXV0aFRhZz1mdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcigidHJ5aW5nIHRvIGdldCBhdXRoIHRhZyBpbiB1bnN1cHBvcnRlZCBzdGF0ZSIpfSxXLnByb3RvdHlwZS5zZXRBdXRoVGFnPWZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKCJ0cnlpbmcgdG8gc2V0IGF1dGggdGFn''@;'; + put 'put ''IGluIHVuc3VwcG9ydGVkIHN0YXRlIil9LFcucHJvdG90eXBlLnNldEFBRD1mdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcigidHJ5aW5nIHRvIHNldCBhYWQgaW4gdW5zdXBwb3J0ZWQgc3RhdGUiKX0sVy5wcm90b3R5cGUuX3RyYW5zZm9ybT1mdW5jdGlvbihOLGVlLHEpe3ZhciBKO3RyeXt0''@;'; + put 'put ''aGlzLmhhc2hNb2RlP3RoaXMuX3VwZGF0ZShOKTp0aGlzLnB1c2godGhpcy5fdXBkYXRlKE4pKX1jYXRjaChzZSl7Sj1zZX1maW5hbGx5e3EoSil9fSxXLnByb3RvdHlwZS5fZmx1c2g9ZnVuY3Rpb24oTil7dmFyIGVlO3RyeXt0aGlzLnB1c2godGhpcy5fX2ZpbmFsKCkpfWNhdGNoKHEpe2Vl''@;'; + put 'put ''PXF9TihlZSl9LFcucHJvdG90eXBlLl9maW5hbE9yRGlnZXN0PWZ1bmN0aW9uKE4pe3ZhciBlZT10aGlzLl9fZmluYWwoKXx8aWUuYWxsb2MoMCk7cmV0dXJuIE4mJihlZT10aGlzLl90b1N0cmluZyhlZSxOLCEwKSksZWV9LFcucHJvdG90eXBlLl90b1N0cmluZz1mdW5jdGlvbihOLGVlLHEp''@;'; + put 'put ''e2lmKHRoaXMuX2RlY29kZXJ8fCh0aGlzLl9kZWNvZGVyPW5ldyBZKGVlKSx0aGlzLl9lbmNvZGluZz1lZSksdGhpcy5fZW5jb2RpbmchPT1lZSl0aHJvdyBuZXcgRXJyb3IoImNhbid0IHN3aXRjaCBlbmNvZGluZ3MiKTt2YXIgSj10aGlzLl9kZWNvZGVyLndyaXRlKE4pO3JldHVybiBxJiYo''@;'; + put 'put ''Sis9dGhpcy5fZGVjb2Rlci5lbmQoKSksSn0sVS5leHBvcnRzPVd9LDEwNDg6VT0+e1UuZXhwb3J0cz1mdW5jdGlvbihaLGllKXtmb3IodmFyIGFlPVtdLFk9MDtZPFoubGVuZ3RoO1krKyl7dmFyIFc9aWUoWltZXSxZKTtRKFcpP2FlLnB1c2guYXBwbHkoYWUsVyk6YWUucHVzaChXKX1yZXR1''@;'; + put 'put ''cm4gYWV9O3ZhciBRPUFycmF5LmlzQXJyYXl8fGZ1bmN0aW9uKFope3JldHVybiJbb2JqZWN0IEFycmF5XSI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoWil9fSw1MTA4OihVLFEsWik9Pnt2YXIgaWU9Wig5NTM5KSxhZT1aKDkyODIpO2Z1bmN0aW9uIFkoKXtyZXR1cm4obmV3''@;'; + put 'put ''IERhdGUpLmdldFRpbWUoKX12YXIgVyxOPUFycmF5LnByb3RvdHlwZS5zbGljZSxlZT17fTtXPXZvaWQgMCE9PVouZyYmWi5nLmNvbnNvbGU/Wi5nLmNvbnNvbGU6InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cmJndpbmRvdy5jb25zb2xlP3dpbmRvdy5jb25zb2xlOnt9O2Zvcih2YXIgcT1b''@;'; + put 'put ''W2Z1bmN0aW9uKCl7fSwibG9nIl0sW2Z1bmN0aW9uKCl7Vy5sb2cuYXBwbHkoVyxhcmd1bWVudHMpfSwiaW5mbyJdLFtmdW5jdGlvbigpe1cubG9nLmFwcGx5KFcsYXJndW1lbnRzKX0sIndhcm4iXSxbZnVuY3Rpb24oKXtXLndhcm4uYXBwbHkoVyxhcmd1bWVudHMpfSwiZXJyb3IiXSxbZnVu''@;'; + put 'put ''Y3Rpb24oZGUpe2VlW2RlXT1ZKCl9LCJ0aW1lIl0sW2Z1bmN0aW9uKGRlKXt2YXIgdmU9ZWVbZGVdO2lmKCF2ZSl0aHJvdyBuZXcgRXJyb3IoIk5vIHN1Y2ggbGFiZWw6ICIrZGUpO2RlbGV0ZSBlZVtkZV07dmFyIEFlPVkoKS12ZTtXLmxvZyhkZSsiOiAiK0FlKyJtcyIpfSwidGltZUVuZCJd''@;'; + put 'put ''LFtmdW5jdGlvbigpe3ZhciBkZT1uZXcgRXJyb3I7ZGUubmFtZT0iVHJhY2UiLGRlLm1lc3NhZ2U9aWUuZm9ybWF0LmFwcGx5KG51bGwsYXJndW1lbnRzKSxXLmVycm9yKGRlLnN0YWNrKX0sInRyYWNlIl0sW2Z1bmN0aW9uKGRlKXtXLmxvZyhpZS5pbnNwZWN0KGRlKSsiXG4iKX0sImRpciJd''@;'; + put 'put ''LFtmdW5jdGlvbihkZSl7aWYoIWRlKXt2YXIgdmU9Ti5jYWxsKGFyZ3VtZW50cywxKTthZS5vayghMSxpZS5mb3JtYXQuYXBwbHkobnVsbCx2ZSkpfX0sImFzc2VydCJdXSxKPTA7SjxxLmxlbmd0aDtKKyspe3ZhciBzZT1xW0pdLGNlPXNlWzFdO1dbY2VdfHwoV1tjZV09c2VbMF0pfVUuZXhw''@;'; + put 'put ''b3J0cz1XfSw2MzkzOihVLFEsWik9Pnt2YXIgaWU9Wig4NzY0KS5CdWZmZXIsYWU9Wig2OTQ4KSxZPVooNjQyNik7VS5leHBvcnRzPWZ1bmN0aW9uKHEpe3JldHVybiBuZXcgTihxKX07dmFyIFc9e3NlY3AyNTZrMTp7bmFtZToic2VjcDI1NmsxIixieXRlTGVuZ3RoOjMyfSxzZWNwMjI0cjE6''@;'; + put 'put ''e25hbWU6InAyMjQiLGJ5dGVMZW5ndGg6Mjh9LHByaW1lMjU2djE6e25hbWU6InAyNTYiLGJ5dGVMZW5ndGg6MzJ9LHByaW1lMTkydjE6e25hbWU6InAxOTIiLGJ5dGVMZW5ndGg6MjR9LGVkMjU1MTk6e25hbWU6ImVkMjU1MTkiLGJ5dGVMZW5ndGg6MzJ9LHNlY3AzODRyMTp7bmFtZToicDM4''@;'; + put 'put ''NCIsYnl0ZUxlbmd0aDo0OH0sc2VjcDUyMXIxOntuYW1lOiJwNTIxIixieXRlTGVuZ3RoOjY2fX07ZnVuY3Rpb24gTihxKXt0aGlzLmN1cnZlVHlwZT1XW3FdLHRoaXMuY3VydmVUeXBlfHwodGhpcy5jdXJ2ZVR5cGU9e25hbWU6cX0pLHRoaXMuY3VydmU9bmV3IGFlLmVjKHRoaXMuY3VydmVU''@;'; + put 'put ''eXBlLm5hbWUpLHRoaXMua2V5cz12b2lkIDB9ZnVuY3Rpb24gZWUocSxKLHNlKXtBcnJheS5pc0FycmF5KHEpfHwocT1xLnRvQXJyYXkoKSk7dmFyIG9lPW5ldyBpZShxKTtpZihzZSYmb2UubGVuZ3RoPHNlKXt2YXIgY2U9bmV3IGllKHNlLW9lLmxlbmd0aCk7Y2UuZmlsbCgwKSxvZT1pZS5j''@;'; + put 'put ''b25jYXQoW2NlLG9lXSl9cmV0dXJuIEo/b2UudG9TdHJpbmcoSik6b2V9Vy5wMjI0PVcuc2VjcDIyNHIxLFcucDI1Nj1XLnNlY3AyNTZyMT1XLnByaW1lMjU2djEsVy5wMTkyPVcuc2VjcDE5MnIxPVcucHJpbWUxOTJ2MSxXLnAzODQ9Vy5zZWNwMzg0cjEsVy5wNTIxPVcuc2VjcDUyMXIxLE4u''@;'; + put 'put ''cHJvdG90eXBlLmdlbmVyYXRlS2V5cz1mdW5jdGlvbihxLEope3JldHVybiB0aGlzLmtleXM9dGhpcy5jdXJ2ZS5nZW5LZXlQYWlyKCksdGhpcy5nZXRQdWJsaWNLZXkocSxKKX0sTi5wcm90b3R5cGUuY29tcHV0ZVNlY3JldD1mdW5jdGlvbihxLEosc2Upe3JldHVybiBKPUp8fCJ1dGY4Iixp''@;'; + put 'put ''ZS5pc0J1ZmZlcihxKXx8KHE9bmV3IGllKHEsSikpLGVlKHRoaXMuY3VydmUua2V5RnJvbVB1YmxpYyhxKS5nZXRQdWJsaWMoKS5tdWwodGhpcy5rZXlzLmdldFByaXZhdGUoKSkuZ2V0WCgpLHNlLHRoaXMuY3VydmVUeXBlLmJ5dGVMZW5ndGgpfSxOLnByb3RvdHlwZS5nZXRQdWJsaWNLZXk9''@;'; + put 'put ''ZnVuY3Rpb24ocSxKKXt2YXIgc2U9dGhpcy5rZXlzLmdldFB1YmxpYygiY29tcHJlc3NlZCI9PT1KLCEwKTtyZXR1cm4iaHlicmlkIj09PUomJihzZVswXT1zZVtzZS5sZW5ndGgtMV0lMj83OjYpLGVlKHNlLHEpfSxOLnByb3RvdHlwZS5nZXRQcml2YXRlS2V5PWZ1bmN0aW9uKHEpe3JldHVy''@;'; + put 'put ''biBlZSh0aGlzLmtleXMuZ2V0UHJpdmF0ZSgpLHEpfSxOLnByb3RvdHlwZS5zZXRQdWJsaWNLZXk9ZnVuY3Rpb24ocSxKKXtyZXR1cm4gSj1KfHwidXRmOCIsaWUuaXNCdWZmZXIocSl8fChxPW5ldyBpZShxLEopKSx0aGlzLmtleXMuX2ltcG9ydFB1YmxpYyhxKSx0aGlzfSxOLnByb3RvdHlw''@;'; + put 'put ''ZS5zZXRQcml2YXRlS2V5PWZ1bmN0aW9uKHEsSil7Sj1KfHwidXRmOCIsaWUuaXNCdWZmZXIocSl8fChxPW5ldyBpZShxLEopKTt2YXIgc2U9bmV3IFkocSk7cmV0dXJuIHNlPXNlLnRvU3RyaW5nKDE2KSx0aGlzLmtleXM9dGhpcy5jdXJ2ZS5nZW5LZXlQYWlyKCksdGhpcy5rZXlzLl9pbXBv''@;'; + put 'put ''cnRQcml2YXRlKHNlKSx0aGlzfX0sNjQyNjpmdW5jdGlvbihVLFEsWil7IWZ1bmN0aW9uKGllLGFlKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gWSh4LFApe2lmKCF4KXRocm93IG5ldyBFcnJvcihQfHwiQXNzZXJ0aW9uIGZhaWxlZCIpfWZ1bmN0aW9uIFcoeCxQKXt4LnN1cGVyXz1QO3ZhciBW''@;'; + put 'put ''PWZ1bmN0aW9uKCl7fTtWLnByb3RvdHlwZT1QLnByb3RvdHlwZSx4LnByb3RvdHlwZT1uZXcgVix4LnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj14fWZ1bmN0aW9uIE4oeCxQLFYpe2lmKE4uaXNCTih4KSlyZXR1cm4geDt0aGlzLm5lZ2F0aXZlPTAsdGhpcy53b3Jkcz1udWxsLHRoaXMubGVuZ3Ro''@;'; + put 'put ''PTAsdGhpcy5yZWQ9bnVsbCxudWxsIT09eCYmKCJsZSIhPT1QJiYiYmUiIT09UHx8KFY9UCxQPTEwKSx0aGlzLl9pbml0KHh8fDAsUHx8MTAsVnx8ImJlIikpfXZhciBlZTsib2JqZWN0Ij09dHlwZW9mIGllP2llLmV4cG9ydHM9TjphZS5CTj1OLE4uQk49TixOLndvcmRTaXplPTI2O3RyeXtl''@;'; + put 'put ''ZT0idW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyYmdm9pZCAwIT09d2luZG93LkJ1ZmZlcj93aW5kb3cuQnVmZmVyOlooODYyMykuQnVmZmVyfWNhdGNoKHgpe31mdW5jdGlvbiBxKHgsUCl7dmFyIFY9eC5jaGFyQ29kZUF0KFApO3JldHVybiBWPj02NSYmVjw9NzA/Vi01NTpWPj05NyYmVjw9''@;'; + put 'put ''MTAyP1YtODc6Vi00OCYxNX1mdW5jdGlvbiBKKHgsUCxWKXt2YXIgVD1xKHgsVik7cmV0dXJuIFYtMT49UCYmKFR8PXEoeCxWLTEpPDw0KSxUfWZ1bmN0aW9uIHNlKHgsUCxWLFQpe2Zvcih2YXIgUz0wLEY9TWF0aC5taW4oeC5sZW5ndGgsVikseWU9UDt5ZTxGO3llKyspe3ZhciBDZT14LmNo''@;'; + put 'put ''YXJDb2RlQXQoeWUpLTQ4O1MqPVQsUys9Q2U+PTQ5P0NlLTQ5KzEwOkNlPj0xNz9DZS0xNysxMDpDZX1yZXR1cm4gU31OLmlzQk49ZnVuY3Rpb24oeCl7cmV0dXJuIHggaW5zdGFuY2VvZiBOfHxudWxsIT09eCYmIm9iamVjdCI9PXR5cGVvZiB4JiZ4LmNvbnN0cnVjdG9yLndvcmRTaXplPT09''@;'; + put 'put ''Ti53b3JkU2l6ZSYmQXJyYXkuaXNBcnJheSh4LndvcmRzKX0sTi5tYXg9ZnVuY3Rpb24oeCxQKXtyZXR1cm4geC5jbXAoUCk+MD94OlB9LE4ubWluPWZ1bmN0aW9uKHgsUCl7cmV0dXJuIHguY21wKFApPDA/eDpQfSxOLnByb3RvdHlwZS5faW5pdD1mdW5jdGlvbih4LFAsVil7aWYoIm51bWJl''@;'; + put 'put ''ciI9PXR5cGVvZiB4KXJldHVybiB0aGlzLl9pbml0TnVtYmVyKHgsUCxWKTtpZigib2JqZWN0Ij09dHlwZW9mIHgpcmV0dXJuIHRoaXMuX2luaXRBcnJheSh4LFAsVik7ImhleCI9PT1QJiYoUD0xNiksWShQPT09KDB8UCkmJlA+PTImJlA8PTM2KTt2YXIgVD0wOyItIj09PSh4PXgudG9TdHJp''@;'; + put 'put ''bmcoKS5yZXBsYWNlKC9ccysvZywiIikpWzBdJiYoVCsrLHRoaXMubmVnYXRpdmU9MSksVDx4Lmxlbmd0aCYmKDE2PT09UD90aGlzLl9wYXJzZUhleCh4LFQsVik6KHRoaXMuX3BhcnNlQmFzZSh4LFAsVCksImxlIj09PVYmJnRoaXMuX2luaXRBcnJheSh0aGlzLnRvQXJyYXkoKSxQLFYpKSl9''@;'; + put 'put ''LE4ucHJvdG90eXBlLl9pbml0TnVtYmVyPWZ1bmN0aW9uKHgsUCxWKXt4PDAmJih0aGlzLm5lZ2F0aXZlPTEseD0teCkseDw2NzEwODg2ND8odGhpcy53b3Jkcz1bNjcxMDg4NjMmeF0sdGhpcy5sZW5ndGg9MSk6eDw0NTAzNTk5NjI3MzcwNDk2Pyh0aGlzLndvcmRzPVs2NzEwODg2MyZ4LHgv''@;'; + put 'put ''NjcxMDg4NjQmNjcxMDg4NjNdLHRoaXMubGVuZ3RoPTIpOihZKHg8OTAwNzE5OTI1NDc0MDk5MiksdGhpcy53b3Jkcz1bNjcxMDg4NjMmeCx4LzY3MTA4ODY0JjY3MTA4ODYzLDFdLHRoaXMubGVuZ3RoPTMpLCJsZSI9PT1WJiZ0aGlzLl9pbml0QXJyYXkodGhpcy50b0FycmF5KCksUCxWKX0s''@;'; + put 'put ''Ti5wcm90b3R5cGUuX2luaXRBcnJheT1mdW5jdGlvbih4LFAsVil7aWYoWSgibnVtYmVyIj09dHlwZW9mIHgubGVuZ3RoKSx4Lmxlbmd0aDw9MClyZXR1cm4gdGhpcy53b3Jkcz1bMF0sdGhpcy5sZW5ndGg9MSx0aGlzO3RoaXMubGVuZ3RoPU1hdGguY2VpbCh4Lmxlbmd0aC8zKSx0aGlzLndv''@;'; + put 'put ''cmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCk7Zm9yKHZhciBUPTA7VDx0aGlzLmxlbmd0aDtUKyspdGhpcy53b3Jkc1tUXT0wO3ZhciBTLEYseWU9MDtpZigiYmUiPT09Vilmb3IoVD14Lmxlbmd0aC0xLFM9MDtUPj0wO1QtPTMpdGhpcy53b3Jkc1tTXXw9KEY9eFtUXXx4W1QtMV08PDh8eFtU''@;'; + put 'put ''LTJdPDwxNik8PHllJjY3MTA4ODYzLHRoaXMud29yZHNbUysxXT1GPj4+MjYteWUmNjcxMDg4NjMsKHllKz0yNCk+PTI2JiYoeWUtPTI2LFMrKyk7ZWxzZSBpZigibGUiPT09Vilmb3IoVD0wLFM9MDtUPHgubGVuZ3RoO1QrPTMpdGhpcy53b3Jkc1tTXXw9KEY9eFtUXXx4W1QrMV08PDh8eFtU''@;'; + put 'put ''KzJdPDwxNik8PHllJjY3MTA4ODYzLHRoaXMud29yZHNbUysxXT1GPj4+MjYteWUmNjcxMDg4NjMsKHllKz0yNCk+PTI2JiYoeWUtPTI2LFMrKyk7cmV0dXJuIHRoaXMuc3RyaXAoKX0sTi5wcm90b3R5cGUuX3BhcnNlSGV4PWZ1bmN0aW9uKHgsUCxWKXt0aGlzLmxlbmd0aD1NYXRoLmNlaWwo''@;'; + put 'put ''KHgubGVuZ3RoLVApLzYpLHRoaXMud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoKTtmb3IodmFyIFQ9MDtUPHRoaXMubGVuZ3RoO1QrKyl0aGlzLndvcmRzW1RdPTA7dmFyIFMsRj0wLHllPTA7aWYoImJlIj09PVYpZm9yKFQ9eC5sZW5ndGgtMTtUPj1QO1QtPTIpUz1KKHgsUCxUKTw8Rix0''@;'; + put 'put ''aGlzLndvcmRzW3llXXw9NjcxMDg4NjMmUyxGPj0xOD8oRi09MTgsdGhpcy53b3Jkc1t5ZSs9MV18PVM+Pj4yNik6Ris9ODtlbHNlIGZvcihUPSh4Lmxlbmd0aC1QKSUyPT0wP1ArMTpQO1Q8eC5sZW5ndGg7VCs9MilTPUooeCxQLFQpPDxGLHRoaXMud29yZHNbeWVdfD02NzEwODg2MyZTLEY+''@;'; + put 'put ''PTE4PyhGLT0xOCx0aGlzLndvcmRzW3llKz0xXXw9Uz4+PjI2KTpGKz04O3RoaXMuc3RyaXAoKX0sTi5wcm90b3R5cGUuX3BhcnNlQmFzZT1mdW5jdGlvbih4LFAsVil7dGhpcy53b3Jkcz1bMF0sdGhpcy5sZW5ndGg9MTtmb3IodmFyIFQ9MCxTPTE7Uzw9NjcxMDg4NjM7Uyo9UClUKys7VC0t''@;'; + put 'put ''LFM9Uy9QfDA7Zm9yKHZhciBGPXgubGVuZ3RoLVYseWU9RiVULENlPU1hdGgubWluKEYsRi15ZSkrVixEZT0wLFBlPVY7UGU8Q2U7UGUrPVQpRGU9c2UoeCxQZSxQZStULFApLHRoaXMuaW11bG4oUyksdGhpcy53b3Jkc1swXStEZTw2NzEwODg2ND90aGlzLndvcmRzWzBdKz1EZTp0aGlzLl9p''@;'; + put 'put ''YWRkbihEZSk7aWYoMCE9PXllKXt2YXIgUWU9MTtmb3IoRGU9c2UoeCxQZSx4Lmxlbmd0aCxQKSxQZT0wO1BlPHllO1BlKyspUWUqPVA7dGhpcy5pbXVsbihRZSksdGhpcy53b3Jkc1swXStEZTw2NzEwODg2ND90aGlzLndvcmRzWzBdKz1EZTp0aGlzLl9pYWRkbihEZSl9dGhpcy5zdHJpcCgp''@;'; + put 'put ''fSxOLnByb3RvdHlwZS5jb3B5PWZ1bmN0aW9uKHgpe3gud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoKTtmb3IodmFyIFA9MDtQPHRoaXMubGVuZ3RoO1ArKyl4LndvcmRzW1BdPXRoaXMud29yZHNbUF07eC5sZW5ndGg9dGhpcy5sZW5ndGgseC5uZWdhdGl2ZT10aGlzLm5lZ2F0aXZlLHgu''@;'; + put 'put ''cmVkPXRoaXMucmVkfSxOLnByb3RvdHlwZS5jbG9uZT1mdW5jdGlvbigpe3ZhciB4PW5ldyBOKG51bGwpO3JldHVybiB0aGlzLmNvcHkoeCkseH0sTi5wcm90b3R5cGUuX2V4cGFuZD1mdW5jdGlvbih4KXtmb3IoO3RoaXMubGVuZ3RoPHg7KXRoaXMud29yZHNbdGhpcy5sZW5ndGgrK109MDty''@;'; + put 'put ''ZXR1cm4gdGhpc30sTi5wcm90b3R5cGUuc3RyaXA9ZnVuY3Rpb24oKXtmb3IoO3RoaXMubGVuZ3RoPjEmJjA9PT10aGlzLndvcmRzW3RoaXMubGVuZ3RoLTFdOyl0aGlzLmxlbmd0aC0tO3JldHVybiB0aGlzLl9ub3JtU2lnbigpfSxOLnByb3RvdHlwZS5fbm9ybVNpZ249ZnVuY3Rpb24oKXty''@;'; + put 'put ''ZXR1cm4gMT09PXRoaXMubGVuZ3RoJiYwPT09dGhpcy53b3Jkc1swXSYmKHRoaXMubmVnYXRpdmU9MCksdGhpc30sTi5wcm90b3R5cGUuaW5zcGVjdD1mdW5jdGlvbigpe3JldHVybih0aGlzLnJlZD8iPEJOLVI6ICI6IjxCTjogIikrdGhpcy50b1N0cmluZygxNikrIj4ifTt2YXIgb2U9WyIi''@;'; + put 'put ''LCIwIiwiMDAiLCIwMDAiLCIwMDAwIiwiMDAwMDAiLCIwMDAwMDAiLCIwMDAwMDAwIiwiMDAwMDAwMDAiLCIwMDAwMDAwMDAiLCIwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAi''@;'; + put 'put ''LCIwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAw''@;'; + put 'put ''MDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIl0sY2U9WzAsMCwyNSwxNiwxMiwxMSwxMCw5LDgsOCw3LDcsNyw3LDYsNiw2LDYsNiw2LDYsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNV0sZGU9WzAsMCwz''@;'; + put 'put ''MzU1NDQzMiw0MzA0NjcyMSwxNjc3NzIxNiw0ODgyODEyNSw2MDQ2NjE3Niw0MDM1MzYwNywxNjc3NzIxNiw0MzA0NjcyMSwxZTcsMTk0ODcxNzEsMzU4MzE4MDgsNjI3NDg1MTcsNzUyOTUzNiwxMTM5MDYyNSwxNjc3NzIxNiwyNDEzNzU2OSwzNDAxMjIyNCw0NzA0NTg4MSw2NGU2LDQwODQx''@;'; + put 'put ''MDEsNTE1MzYzMiw2NDM2MzQzLDc5NjI2MjQsOTc2NTYyNSwxMTg4MTM3NiwxNDM0ODkwNywxNzIxMDM2OCwyMDUxMTE0OSwyNDNlNSwyODYyOTE1MSwzMzU1NDQzMiwzOTEzNTM5Myw0NTQzNTQyNCw1MjUyMTg3NSw2MDQ2NjE3Nl07ZnVuY3Rpb24gdmUoeCxQLFYpe1YubmVnYXRpdmU9UC5u''@;'; + put 'put ''ZWdhdGl2ZV54Lm5lZ2F0aXZlO3ZhciBUPXgubGVuZ3RoK1AubGVuZ3RofDA7Vi5sZW5ndGg9VCxUPVQtMXwwO3ZhciBTPTB8eC53b3Jkc1swXSxGPTB8UC53b3Jkc1swXSx5ZT1TKkYsRGU9eWUvNjcxMDg4NjR8MDtWLndvcmRzWzBdPTY3MTA4ODYzJnllO2Zvcih2YXIgUGU9MTtQZTxUO1Bl''@;'; + put 'put ''Kyspe2Zvcih2YXIgUWU9RGU+Pj4yNiwkZT02NzEwODg2MyZEZSxndD1NYXRoLm1pbihQZSxQLmxlbmd0aC0xKSx3dD1NYXRoLm1heCgwLFBlLXgubGVuZ3RoKzEpO3d0PD1ndDt3dCsrKVFlKz0oeWU9KFM9MHx4LndvcmRzW1BlLXd0fDBdKSooRj0wfFAud29yZHNbd3RdKSskZSkvNjcxMDg4''@;'; + put 'put ''NjR8MCwkZT02NzEwODg2MyZ5ZTtWLndvcmRzW1BlXT0wfCRlLERlPTB8UWV9cmV0dXJuIDAhPT1EZT9WLndvcmRzW1BlXT0wfERlOlYubGVuZ3RoLS0sVi5zdHJpcCgpfU4ucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKHgsUCl7dmFyIFY7aWYoUD0wfFB8fDEsMTY9PT0oeD14fHwxMCl8''@;'; + put 'put ''fCJoZXgiPT09eCl7Vj0iIjtmb3IodmFyIFQ9MCxTPTAsRj0wO0Y8dGhpcy5sZW5ndGg7RisrKXt2YXIgeWU9dGhpcy53b3Jkc1tGXSxDZT0oMTY3NzcyMTUmKHllPDxUfFMpKS50b1N0cmluZygxNik7Vj0wIT0oUz15ZT4+PjI0LVQmMTY3NzcyMTUpfHxGIT09dGhpcy5sZW5ndGgtMT9vZVs2''@;'; + put 'put ''LUNlLmxlbmd0aF0rQ2UrVjpDZStWLChUKz0yKT49MjYmJihULT0yNixGLS0pfWZvcigwIT09UyYmKFY9Uy50b1N0cmluZygxNikrVik7Vi5sZW5ndGglUCE9MDspVj0iMCIrVjtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmUmJihWPSItIitWKSxWfWlmKHg9PT0oMHx4KSYmeD49MiYmeDw9MzYp''@;'; + put 'put ''e3ZhciBEZT1jZVt4XSxQZT1kZVt4XTtWPSIiO3ZhciBRZT10aGlzLmNsb25lKCk7Zm9yKFFlLm5lZ2F0aXZlPTA7IVFlLmlzWmVybygpOyl7dmFyICRlPVFlLm1vZG4oUGUpLnRvU3RyaW5nKHgpO1Y9KFFlPVFlLmlkaXZuKFBlKSkuaXNaZXJvKCk/JGUrVjpvZVtEZS0kZS5sZW5ndGhdKyRl''@;'; + put 'put ''K1Z9Zm9yKHRoaXMuaXNaZXJvKCkmJihWPSIwIitWKTtWLmxlbmd0aCVQIT0wOylWPSIwIitWO3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZSYmKFY9Ii0iK1YpLFZ9WSghMSwiQmFzZSBzaG91bGQgYmUgYmV0d2VlbiAyIGFuZCAzNiIpfSxOLnByb3RvdHlwZS50b051bWJlcj1mdW5jdGlvbigp''@;'; + put 'put ''e3ZhciB4PXRoaXMud29yZHNbMF07cmV0dXJuIDI9PT10aGlzLmxlbmd0aD94Kz02NzEwODg2NCp0aGlzLndvcmRzWzFdOjM9PT10aGlzLmxlbmd0aCYmMT09PXRoaXMud29yZHNbMl0/eCs9NDUwMzU5OTYyNzM3MDQ5Nis2NzEwODg2NCp0aGlzLndvcmRzWzFdOnRoaXMubGVuZ3RoPjImJlko''@;'; + put 'put ''ITEsIk51bWJlciBjYW4gb25seSBzYWZlbHkgc3RvcmUgdXAgdG8gNTMgYml0cyIpLDAhPT10aGlzLm5lZ2F0aXZlPy14Onh9LE4ucHJvdG90eXBlLnRvSlNPTj1mdW5jdGlvbigpe3JldHVybiB0aGlzLnRvU3RyaW5nKDE2KX0sTi5wcm90b3R5cGUudG9CdWZmZXI9ZnVuY3Rpb24oeCxQKXty''@;'; + put 'put ''ZXR1cm4gWSh2b2lkIDAhPT1lZSksdGhpcy50b0FycmF5TGlrZShlZSx4LFApfSxOLnByb3RvdHlwZS50b0FycmF5PWZ1bmN0aW9uKHgsUCl7cmV0dXJuIHRoaXMudG9BcnJheUxpa2UoQXJyYXkseCxQKX0sTi5wcm90b3R5cGUudG9BcnJheUxpa2U9ZnVuY3Rpb24oeCxQLFYpe3ZhciBUPXRo''@;'; + put 'put ''aXMuYnl0ZUxlbmd0aCgpLFM9Vnx8TWF0aC5tYXgoMSxUKTtZKFQ8PVMsImJ5dGUgYXJyYXkgbG9uZ2VyIHRoYW4gZGVzaXJlZCBsZW5ndGgiKSxZKFM+MCwiUmVxdWVzdGVkIGFycmF5IGxlbmd0aCA8PSAwIiksdGhpcy5zdHJpcCgpO3ZhciBGLHllLENlPSJsZSI9PT1QLERlPW5ldyB4KFMp''@;'; + put 'put ''LFBlPXRoaXMuY2xvbmUoKTtpZihDZSl7Zm9yKHllPTA7IVBlLmlzWmVybygpO3llKyspRj1QZS5hbmRsbigyNTUpLFBlLml1c2hybig4KSxEZVt5ZV09Rjtmb3IoO3llPFM7eWUrKylEZVt5ZV09MH1lbHNle2Zvcih5ZT0wO3llPFMtVDt5ZSsrKURlW3llXT0wO2Zvcih5ZT0wOyFQZS5pc1pl''@;'; + put 'put ''cm8oKTt5ZSsrKUY9UGUuYW5kbG4oMjU1KSxQZS5pdXNocm4oOCksRGVbUy15ZS0xXT1GfXJldHVybiBEZX0sTi5wcm90b3R5cGUuX2NvdW50Qml0cz1NYXRoLmNsejMyP2Z1bmN0aW9uKHgpe3JldHVybiAzMi1NYXRoLmNsejMyKHgpfTpmdW5jdGlvbih4KXt2YXIgUD14LFY9MDtyZXR1cm4g''@;'; + put 'put ''UD49NDA5NiYmKFYrPTEzLFA+Pj49MTMpLFA+PTY0JiYoVis9NyxQPj4+PTcpLFA+PTgmJihWKz00LFA+Pj49NCksUD49MiYmKFYrPTIsUD4+Pj0yKSxWK1B9LE4ucHJvdG90eXBlLl96ZXJvQml0cz1mdW5jdGlvbih4KXtpZigwPT09eClyZXR1cm4gMjY7dmFyIFA9eCxWPTA7cmV0dXJuIDA9''@;'; + put 'put ''PSg4MTkxJlApJiYoVis9MTMsUD4+Pj0xMyksMD09KDEyNyZQKSYmKFYrPTcsUD4+Pj03KSwwPT0oMTUmUCkmJihWKz00LFA+Pj49NCksMD09KDMmUCkmJihWKz0yLFA+Pj49MiksMD09KDEmUCkmJlYrKyxWfSxOLnByb3RvdHlwZS5iaXRMZW5ndGg9ZnVuY3Rpb24oKXt2YXIgUD10aGlzLl9j''@;'; + put 'put ''b3VudEJpdHModGhpcy53b3Jkc1t0aGlzLmxlbmd0aC0xXSk7cmV0dXJuIDI2Kih0aGlzLmxlbmd0aC0xKStQfSxOLnByb3RvdHlwZS56ZXJvQml0cz1mdW5jdGlvbigpe2lmKHRoaXMuaXNaZXJvKCkpcmV0dXJuIDA7Zm9yKHZhciB4PTAsUD0wO1A8dGhpcy5sZW5ndGg7UCsrKXt2YXIgVj10''@;'; + put 'put ''aGlzLl96ZXJvQml0cyh0aGlzLndvcmRzW1BdKTtpZih4Kz1WLDI2IT09VilicmVha31yZXR1cm4geH0sTi5wcm90b3R5cGUuYnl0ZUxlbmd0aD1mdW5jdGlvbigpe3JldHVybiBNYXRoLmNlaWwodGhpcy5iaXRMZW5ndGgoKS84KX0sTi5wcm90b3R5cGUudG9Ud29zPWZ1bmN0aW9uKHgpe3Jl''@;'; + put 'put ''dHVybiAwIT09dGhpcy5uZWdhdGl2ZT90aGlzLmFicygpLmlub3RuKHgpLmlhZGRuKDEpOnRoaXMuY2xvbmUoKX0sTi5wcm90b3R5cGUuZnJvbVR3b3M9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMudGVzdG4oeC0xKT90aGlzLm5vdG4oeCkuaWFkZG4oMSkuaW5lZygpOnRoaXMuY2xvbmUoKX0s''@;'; + put 'put ''Ti5wcm90b3R5cGUuaXNOZWc9ZnVuY3Rpb24oKXtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmV9LE4ucHJvdG90eXBlLm5lZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmNsb25lKCkuaW5lZygpfSxOLnByb3RvdHlwZS5pbmVnPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXNaZXJvKCl8fCh0aGlz''@;'; + put 'put ''Lm5lZ2F0aXZlXj0xKSx0aGlzfSxOLnByb3RvdHlwZS5pdW9yPWZ1bmN0aW9uKHgpe2Zvcig7dGhpcy5sZW5ndGg8eC5sZW5ndGg7KXRoaXMud29yZHNbdGhpcy5sZW5ndGgrK109MDtmb3IodmFyIFA9MDtQPHgubGVuZ3RoO1ArKyl0aGlzLndvcmRzW1BdPXRoaXMud29yZHNbUF18eC53b3Jk''@;'; + put 'put ''c1tQXTtyZXR1cm4gdGhpcy5zdHJpcCgpfSxOLnByb3RvdHlwZS5pb3I9ZnVuY3Rpb24oeCl7cmV0dXJuIFkoMD09KHRoaXMubmVnYXRpdmV8eC5uZWdhdGl2ZSkpLHRoaXMuaXVvcih4KX0sTi5wcm90b3R5cGUub3I9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMubGVuZ3RoPngubGVuZ3RoP3Ro''@;'; + put 'put ''aXMuY2xvbmUoKS5pb3IoeCk6eC5jbG9uZSgpLmlvcih0aGlzKX0sTi5wcm90b3R5cGUudW9yPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmxlbmd0aD54Lmxlbmd0aD90aGlzLmNsb25lKCkuaXVvcih4KTp4LmNsb25lKCkuaXVvcih0aGlzKX0sTi5wcm90b3R5cGUuaXVhbmQ9ZnVuY3Rpb24o''@;'; + put 'put ''eCl7dmFyIFA7UD10aGlzLmxlbmd0aD54Lmxlbmd0aD94OnRoaXM7Zm9yKHZhciBWPTA7VjxQLmxlbmd0aDtWKyspdGhpcy53b3Jkc1tWXT10aGlzLndvcmRzW1ZdJngud29yZHNbVl07cmV0dXJuIHRoaXMubGVuZ3RoPVAubGVuZ3RoLHRoaXMuc3RyaXAoKX0sTi5wcm90b3R5cGUuaWFuZD1m''@;'; + put 'put ''dW5jdGlvbih4KXtyZXR1cm4gWSgwPT0odGhpcy5uZWdhdGl2ZXx4Lm5lZ2F0aXZlKSksdGhpcy5pdWFuZCh4KX0sTi5wcm90b3R5cGUuYW5kPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmxlbmd0aD54Lmxlbmd0aD90aGlzLmNsb25lKCkuaWFuZCh4KTp4LmNsb25lKCkuaWFuZCh0aGlzKX0s''@;'; + put 'put ''Ti5wcm90b3R5cGUudWFuZD1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5sZW5ndGg+eC5sZW5ndGg/dGhpcy5jbG9uZSgpLml1YW5kKHgpOnguY2xvbmUoKS5pdWFuZCh0aGlzKX0sTi5wcm90b3R5cGUuaXV4b3I9ZnVuY3Rpb24oeCl7dmFyIFAsVjt0aGlzLmxlbmd0aD54Lmxlbmd0aD8oUD10''@;'; + put 'put ''aGlzLFY9eCk6KFA9eCxWPXRoaXMpO2Zvcih2YXIgVD0wO1Q8Vi5sZW5ndGg7VCsrKXRoaXMud29yZHNbVF09UC53b3Jkc1tUXV5WLndvcmRzW1RdO2lmKHRoaXMhPT1QKWZvcig7VDxQLmxlbmd0aDtUKyspdGhpcy53b3Jkc1tUXT1QLndvcmRzW1RdO3JldHVybiB0aGlzLmxlbmd0aD1QLmxl''@;'; + put 'put ''bmd0aCx0aGlzLnN0cmlwKCl9LE4ucHJvdG90eXBlLml4b3I9ZnVuY3Rpb24oeCl7cmV0dXJuIFkoMD09KHRoaXMubmVnYXRpdmV8eC5uZWdhdGl2ZSkpLHRoaXMuaXV4b3IoeCl9LE4ucHJvdG90eXBlLnhvcj1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5sZW5ndGg+eC5sZW5ndGg/dGhpcy5j''@;'; + put 'put ''bG9uZSgpLml4b3IoeCk6eC5jbG9uZSgpLml4b3IodGhpcyl9LE4ucHJvdG90eXBlLnV4b3I9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMubGVuZ3RoPngubGVuZ3RoP3RoaXMuY2xvbmUoKS5pdXhvcih4KTp4LmNsb25lKCkuaXV4b3IodGhpcyl9LE4ucHJvdG90eXBlLmlub3RuPWZ1bmN0aW9u''@;'; + put 'put ''KHgpe1koIm51bWJlciI9PXR5cGVvZiB4JiZ4Pj0wKTt2YXIgUD0wfE1hdGguY2VpbCh4LzI2KSxWPXglMjY7dGhpcy5fZXhwYW5kKFApLFY+MCYmUC0tO2Zvcih2YXIgVD0wO1Q8UDtUKyspdGhpcy53b3Jkc1tUXT02NzEwODg2MyZ+dGhpcy53b3Jkc1tUXTtyZXR1cm4gVj4wJiYodGhpcy53''@;'; + put 'put ''b3Jkc1tUXT1+dGhpcy53b3Jkc1tUXSY2NzEwODg2Mz4+MjYtViksdGhpcy5zdHJpcCgpfSxOLnByb3RvdHlwZS5ub3RuPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmNsb25lKCkuaW5vdG4oeCl9LE4ucHJvdG90eXBlLnNldG49ZnVuY3Rpb24oeCxQKXtZKCJudW1iZXIiPT10eXBlb2YgeCYm''@;'; + put 'put ''eD49MCk7dmFyIFY9eC8yNnwwLFQ9eCUyNjtyZXR1cm4gdGhpcy5fZXhwYW5kKFYrMSksdGhpcy53b3Jkc1tWXT1QP3RoaXMud29yZHNbVl18MTw8VDp0aGlzLndvcmRzW1ZdJn4oMTw8VCksdGhpcy5zdHJpcCgpfSxOLnByb3RvdHlwZS5pYWRkPWZ1bmN0aW9uKHgpe3ZhciBQLFYsVDtpZigw''@;'; + put 'put ''IT09dGhpcy5uZWdhdGl2ZSYmMD09PXgubmVnYXRpdmUpcmV0dXJuIHRoaXMubmVnYXRpdmU9MCxQPXRoaXMuaXN1Yih4KSx0aGlzLm5lZ2F0aXZlXj0xLHRoaXMuX25vcm1TaWduKCk7aWYoMD09PXRoaXMubmVnYXRpdmUmJjAhPT14Lm5lZ2F0aXZlKXJldHVybiB4Lm5lZ2F0aXZlPTAsUD10''@;'; + put 'put ''aGlzLmlzdWIoeCkseC5uZWdhdGl2ZT0xLFAuX25vcm1TaWduKCk7dGhpcy5sZW5ndGg+eC5sZW5ndGg/KFY9dGhpcyxUPXgpOihWPXgsVD10aGlzKTtmb3IodmFyIFM9MCxGPTA7RjxULmxlbmd0aDtGKyspdGhpcy53b3Jkc1tGXT02NzEwODg2MyYoUD0oMHxWLndvcmRzW0ZdKSsoMHxULndv''@;'; + put 'put ''cmRzW0ZdKStTKSxTPVA+Pj4yNjtmb3IoOzAhPT1TJiZGPFYubGVuZ3RoO0YrKyl0aGlzLndvcmRzW0ZdPTY3MTA4ODYzJihQPSgwfFYud29yZHNbRl0pK1MpLFM9UD4+PjI2O2lmKHRoaXMubGVuZ3RoPVYubGVuZ3RoLDAhPT1TKXRoaXMud29yZHNbdGhpcy5sZW5ndGhdPVMsdGhpcy5sZW5n''@;'; + put 'put ''dGgrKztlbHNlIGlmKFYhPT10aGlzKWZvcig7RjxWLmxlbmd0aDtGKyspdGhpcy53b3Jkc1tGXT1WLndvcmRzW0ZdO3JldHVybiB0aGlzfSxOLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oeCl7dmFyIFA7cmV0dXJuIDAhPT14Lm5lZ2F0aXZlJiYwPT09dGhpcy5uZWdhdGl2ZT8oeC5uZWdhdGl2''@;'; + put 'put ''ZT0wLFA9dGhpcy5zdWIoeCkseC5uZWdhdGl2ZV49MSxQKTowPT09eC5uZWdhdGl2ZSYmMCE9PXRoaXMubmVnYXRpdmU/KHRoaXMubmVnYXRpdmU9MCxQPXguc3ViKHRoaXMpLHRoaXMubmVnYXRpdmU9MSxQKTp0aGlzLmxlbmd0aD54Lmxlbmd0aD90aGlzLmNsb25lKCkuaWFkZCh4KTp4LmNs''@;'; + put 'put ''b25lKCkuaWFkZCh0aGlzKX0sTi5wcm90b3R5cGUuaXN1Yj1mdW5jdGlvbih4KXtpZigwIT09eC5uZWdhdGl2ZSl7eC5uZWdhdGl2ZT0wO3ZhciBQPXRoaXMuaWFkZCh4KTtyZXR1cm4geC5uZWdhdGl2ZT0xLFAuX25vcm1TaWduKCl9aWYoMCE9PXRoaXMubmVnYXRpdmUpcmV0dXJuIHRoaXMu''@;'; + put 'put ''bmVnYXRpdmU9MCx0aGlzLmlhZGQoeCksdGhpcy5uZWdhdGl2ZT0xLHRoaXMuX25vcm1TaWduKCk7dmFyIFYsVCxTPXRoaXMuY21wKHgpO2lmKDA9PT1TKXJldHVybiB0aGlzLm5lZ2F0aXZlPTAsdGhpcy5sZW5ndGg9MSx0aGlzLndvcmRzWzBdPTAsdGhpcztTPjA/KFY9dGhpcyxUPXgpOihW''@;'; + put 'put ''PXgsVD10aGlzKTtmb3IodmFyIEY9MCx5ZT0wO3llPFQubGVuZ3RoO3llKyspRj0oUD0oMHxWLndvcmRzW3llXSktKDB8VC53b3Jkc1t5ZV0pK0YpPj4yNix0aGlzLndvcmRzW3llXT02NzEwODg2MyZQO2Zvcig7MCE9PUYmJnllPFYubGVuZ3RoO3llKyspRj0oUD0oMHxWLndvcmRzW3llXSkr''@;'; + put 'put ''Rik+PjI2LHRoaXMud29yZHNbeWVdPTY3MTA4ODYzJlA7aWYoMD09PUYmJnllPFYubGVuZ3RoJiZWIT09dGhpcylmb3IoO3llPFYubGVuZ3RoO3llKyspdGhpcy53b3Jkc1t5ZV09Vi53b3Jkc1t5ZV07cmV0dXJuIHRoaXMubGVuZ3RoPU1hdGgubWF4KHRoaXMubGVuZ3RoLHllKSxWIT09dGhp''@;'; + put 'put ''cyYmKHRoaXMubmVnYXRpdmU9MSksdGhpcy5zdHJpcCgpfSxOLnByb3RvdHlwZS5zdWI9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc3ViKHgpfTt2YXIgQWU9ZnVuY3Rpb24oeCxQLFYpe3ZhciBULFMsRix5ZT14LndvcmRzLENlPVAud29yZHMsRGU9Vi53b3JkcyxQZT0wLFFl''@;'; + put 'put ''PTB8eWVbMF0sJGU9ODE5MSZRZSxndD1RZT4+PjEzLHd0PTB8eWVbMV0sbXQ9ODE5MSZ3dCx2dD13dD4+PjEzLEF0PTB8eWVbMl0saHQ9ODE5MSZBdCxCdD1BdD4+PjEzLG9uPTB8eWVbM10sX3Q9ODE5MSZvbix0dD1vbj4+PjEzLGV0PTB8eWVbNF0sYXQ9ODE5MSZldCxMdD1ldD4+PjEzLEN0''@;'; + put 'put ''PTB8eWVbNV0sZnQ9ODE5MSZDdCxIdD1DdD4+PjEzLEdlPTB8eWVbNl0sVWU9ODE5MSZHZSx5dD1HZT4+PjEzLGp0PTB8eWVbN10sUXQ9ODE5MSZqdCxnbj1qdD4+PjEzLGRuPTB8eWVbOF0seW49ODE5MSZkbixsbj1kbj4+PjEzLE5uPTB8eWVbOV0sYm49ODE5MSZObixlcj1Obj4+PjEzLHNy''@;'; + put 'put ''PTB8Q2VbMF0sWG49ODE5MSZzcixGcj1zcj4+PjEzLHhyPTB8Q2VbMV0scXQ9ODE5MSZ4cixwcj14cj4+PjEzLG5yPTB8Q2VbMl0sQW49ODE5MSZucixxbj1ucj4+PjEzLFd0PTB8Q2VbM10scG49ODE5MSZXdCxLbj1XdD4+PjEzLE50PTB8Q2VbNF0sc249ODE5MSZOdCxVbj1OdD4+PjEzLHdu''@;'; + put 'put ''PTB8Q2VbNV0sdG49ODE5MSZ3bix6bj13bj4+PjEzLFRyPTB8Q2VbNl0sQm49ODE5MSZUcixrcj1Ucj4+PjEzLG1uPTB8Q2VbN10sdW49ODE5MSZtbixjbj1tbj4+PjEzLF9uPTB8Q2VbOF0sR3Q9ODE5MSZfbixrbj1fbj4+PjEzLFZuPTB8Q2VbOV0sZW49ODE5MSZWbixJbj1Wbj4+PjEzO1Yu''@;'; + put 'put ''bmVnYXRpdmU9eC5uZWdhdGl2ZV5QLm5lZ2F0aXZlLFYubGVuZ3RoPTE5O3ZhciBKbj0oUGUrKFQ9TWF0aC5pbXVsKCRlLFhuKSl8MCkrKCg4MTkxJihTPShTPU1hdGguaW11bCgkZSxGcikpK01hdGguaW11bChndCxYbil8MCkpPDwxMyl8MDtQZT0oKEY9TWF0aC5pbXVsKGd0LEZyKSkrKFM+''@;'; + put 'put ''Pj4xMyl8MCkrKEpuPj4+MjYpfDAsSm4mPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKG10LFhuKSxTPShTPU1hdGguaW11bChtdCxGcikpK01hdGguaW11bCh2dCxYbil8MCxGPU1hdGguaW11bCh2dCxGcik7dmFyIG9yPShQZSsoVD1UK01hdGguaW11bCgkZSxxdCl8MCl8MCkrKCg4MTkxJihTPShT''@;'; + put 'put ''PVMrTWF0aC5pbXVsKCRlLHByKXwwKStNYXRoLmltdWwoZ3QscXQpfDApKTw8MTMpfDA7UGU9KChGPUYrTWF0aC5pbXVsKGd0LHByKXwwKSsoUz4+PjEzKXwwKSsob3I+Pj4yNil8MCxvciY9NjcxMDg4NjMsVD1NYXRoLmltdWwoaHQsWG4pLFM9KFM9TWF0aC5pbXVsKGh0LEZyKSkrTWF0aC5p''@;'; + put 'put ''bXVsKEJ0LFhuKXwwLEY9TWF0aC5pbXVsKEJ0LEZyKSxUPVQrTWF0aC5pbXVsKG10LHF0KXwwLFM9KFM9UytNYXRoLmltdWwobXQscHIpfDApK01hdGguaW11bCh2dCxxdCl8MCxGPUYrTWF0aC5pbXVsKHZ0LHByKXwwO3ZhciBncj0oUGUrKFQ9VCtNYXRoLmltdWwoJGUsQW4pfDApfDApKygo''@;'; + put 'put ''ODE5MSYoUz0oUz1TK01hdGguaW11bCgkZSxxbil8MCkrTWF0aC5pbXVsKGd0LEFuKXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGguaW11bChndCxxbil8MCkrKFM+Pj4xMyl8MCkrKGdyPj4+MjYpfDAsZ3ImPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKF90LFhuKSxTPShTPU1hdGguaW11bChfdCxG''@;'; + put 'put ''cikpK01hdGguaW11bCh0dCxYbil8MCxGPU1hdGguaW11bCh0dCxGciksVD1UK01hdGguaW11bChodCxxdCl8MCxTPShTPVMrTWF0aC5pbXVsKGh0LHByKXwwKStNYXRoLmltdWwoQnQscXQpfDAsRj1GK01hdGguaW11bChCdCxwcil8MCxUPVQrTWF0aC5pbXVsKG10LEFuKXwwLFM9KFM9UytN''@;'; + put 'put ''YXRoLmltdWwobXQscW4pfDApK01hdGguaW11bCh2dCxBbil8MCxGPUYrTWF0aC5pbXVsKHZ0LHFuKXwwO3ZhciBLcj0oUGUrKFQ9VCtNYXRoLmltdWwoJGUscG4pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bCgkZSxLbil8MCkrTWF0aC5pbXVsKGd0LHBuKXwwKSk8PDEzKXwwO1Bl''@;'; + put 'put ''PSgoRj1GK01hdGguaW11bChndCxLbil8MCkrKFM+Pj4xMyl8MCkrKEtyPj4+MjYpfDAsS3ImPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGF0LFhuKSxTPShTPU1hdGguaW11bChhdCxGcikpK01hdGguaW11bChMdCxYbil8MCxGPU1hdGguaW11bChMdCxGciksVD1UK01hdGguaW11bChfdCxxdCl8''@;'; + put 'put ''MCxTPShTPVMrTWF0aC5pbXVsKF90LHByKXwwKStNYXRoLmltdWwodHQscXQpfDAsRj1GK01hdGguaW11bCh0dCxwcil8MCxUPVQrTWF0aC5pbXVsKGh0LEFuKXwwLFM9KFM9UytNYXRoLmltdWwoaHQscW4pfDApK01hdGguaW11bChCdCxBbil8MCxGPUYrTWF0aC5pbXVsKEJ0LHFuKXwwLFQ9''@;'; + put 'put ''VCtNYXRoLmltdWwobXQscG4pfDAsUz0oUz1TK01hdGguaW11bChtdCxLbil8MCkrTWF0aC5pbXVsKHZ0LHBuKXwwLEY9RitNYXRoLmltdWwodnQsS24pfDA7dmFyIFZyPShQZSsoVD1UK01hdGguaW11bCgkZSxzbil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKCRlLFVuKXwwKStN''@;'; + put 'put ''YXRoLmltdWwoZ3Qsc24pfDApKTw8MTMpfDA7UGU9KChGPUYrTWF0aC5pbXVsKGd0LFVuKXwwKSsoUz4+PjEzKXwwKSsoVnI+Pj4yNil8MCxWciY9NjcxMDg4NjMsVD1NYXRoLmltdWwoZnQsWG4pLFM9KFM9TWF0aC5pbXVsKGZ0LEZyKSkrTWF0aC5pbXVsKEh0LFhuKXwwLEY9TWF0aC5pbXVs''@;'; + put 'put ''KEh0LEZyKSxUPVQrTWF0aC5pbXVsKGF0LHF0KXwwLFM9KFM9UytNYXRoLmltdWwoYXQscHIpfDApK01hdGguaW11bChMdCxxdCl8MCxGPUYrTWF0aC5pbXVsKEx0LHByKXwwLFQ9VCtNYXRoLmltdWwoX3QsQW4pfDAsUz0oUz1TK01hdGguaW11bChfdCxxbil8MCkrTWF0aC5pbXVsKHR0LEFu''@;'; + put 'put ''KXwwLEY9RitNYXRoLmltdWwodHQscW4pfDAsVD1UK01hdGguaW11bChodCxwbil8MCxTPShTPVMrTWF0aC5pbXVsKGh0LEtuKXwwKStNYXRoLmltdWwoQnQscG4pfDAsRj1GK01hdGguaW11bChCdCxLbil8MCxUPVQrTWF0aC5pbXVsKG10LHNuKXwwLFM9KFM9UytNYXRoLmltdWwobXQsVW4p''@;'; + put 'put ''fDApK01hdGguaW11bCh2dCxzbil8MCxGPUYrTWF0aC5pbXVsKHZ0LFVuKXwwO3ZhciBpaT0oUGUrKFQ9VCtNYXRoLmltdWwoJGUsdG4pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bCgkZSx6bil8MCkrTWF0aC5pbXVsKGd0LHRuKXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGguaW11''@;'; + put 'put ''bChndCx6bil8MCkrKFM+Pj4xMyl8MCkrKGlpPj4+MjYpfDAsaWkmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKFVlLFhuKSxTPShTPU1hdGguaW11bChVZSxGcikpK01hdGguaW11bCh5dCxYbil8MCxGPU1hdGguaW11bCh5dCxGciksVD1UK01hdGguaW11bChmdCxxdCl8MCxTPShTPVMrTWF0aC5p''@;'; + put 'put ''bXVsKGZ0LHByKXwwKStNYXRoLmltdWwoSHQscXQpfDAsRj1GK01hdGguaW11bChIdCxwcil8MCxUPVQrTWF0aC5pbXVsKGF0LEFuKXwwLFM9KFM9UytNYXRoLmltdWwoYXQscW4pfDApK01hdGguaW11bChMdCxBbil8MCxGPUYrTWF0aC5pbXVsKEx0LHFuKXwwLFQ9VCtNYXRoLmltdWwoX3Qs''@;'; + put 'put ''cG4pfDAsUz0oUz1TK01hdGguaW11bChfdCxLbil8MCkrTWF0aC5pbXVsKHR0LHBuKXwwLEY9RitNYXRoLmltdWwodHQsS24pfDAsVD1UK01hdGguaW11bChodCxzbil8MCxTPShTPVMrTWF0aC5pbXVsKGh0LFVuKXwwKStNYXRoLmltdWwoQnQsc24pfDAsRj1GK01hdGguaW11bChCdCxVbil8''@;'; + put 'put ''MCxUPVQrTWF0aC5pbXVsKG10LHRuKXwwLFM9KFM9UytNYXRoLmltdWwobXQsem4pfDApK01hdGguaW11bCh2dCx0bil8MCxGPUYrTWF0aC5pbXVsKHZ0LHpuKXwwO3ZhciBScj0oUGUrKFQ9VCtNYXRoLmltdWwoJGUsQm4pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bCgkZSxrcil8''@;'; + put 'put ''MCkrTWF0aC5pbXVsKGd0LEJuKXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGguaW11bChndCxrcil8MCkrKFM+Pj4xMyl8MCkrKFJyPj4+MjYpfDAsUnImPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKFF0LFhuKSxTPShTPU1hdGguaW11bChRdCxGcikpK01hdGguaW11bChnbixYbil8MCxGPU1hdGgu''@;'; + put 'put ''aW11bChnbixGciksVD1UK01hdGguaW11bChVZSxxdCl8MCxTPShTPVMrTWF0aC5pbXVsKFVlLHByKXwwKStNYXRoLmltdWwoeXQscXQpfDAsRj1GK01hdGguaW11bCh5dCxwcil8MCxUPVQrTWF0aC5pbXVsKGZ0LEFuKXwwLFM9KFM9UytNYXRoLmltdWwoZnQscW4pfDApK01hdGguaW11bChI''@;'; + put 'put ''dCxBbil8MCxGPUYrTWF0aC5pbXVsKEh0LHFuKXwwLFQ9VCtNYXRoLmltdWwoYXQscG4pfDAsUz0oUz1TK01hdGguaW11bChhdCxLbil8MCkrTWF0aC5pbXVsKEx0LHBuKXwwLEY9RitNYXRoLmltdWwoTHQsS24pfDAsVD1UK01hdGguaW11bChfdCxzbil8MCxTPShTPVMrTWF0aC5pbXVsKF90''@;'; + put 'put ''LFVuKXwwKStNYXRoLmltdWwodHQsc24pfDAsRj1GK01hdGguaW11bCh0dCxVbil8MCxUPVQrTWF0aC5pbXVsKGh0LHRuKXwwLFM9KFM9UytNYXRoLmltdWwoaHQsem4pfDApK01hdGguaW11bChCdCx0bil8MCxGPUYrTWF0aC5pbXVsKEJ0LHpuKXwwLFQ9VCtNYXRoLmltdWwobXQsQm4pfDAs''@;'; + put 'put ''Uz0oUz1TK01hdGguaW11bChtdCxrcil8MCkrTWF0aC5pbXVsKHZ0LEJuKXwwLEY9RitNYXRoLmltdWwodnQsa3IpfDA7dmFyIGxpPShQZSsoVD1UK01hdGguaW11bCgkZSx1bil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKCRlLGNuKXwwKStNYXRoLmltdWwoZ3QsdW4pfDApKTw8''@;'; + put 'put ''MTMpfDA7UGU9KChGPUYrTWF0aC5pbXVsKGd0LGNuKXwwKSsoUz4+PjEzKXwwKSsobGk+Pj4yNil8MCxsaSY9NjcxMDg4NjMsVD1NYXRoLmltdWwoeW4sWG4pLFM9KFM9TWF0aC5pbXVsKHluLEZyKSkrTWF0aC5pbXVsKGxuLFhuKXwwLEY9TWF0aC5pbXVsKGxuLEZyKSxUPVQrTWF0aC5pbXVs''@;'; + put 'put ''KFF0LHF0KXwwLFM9KFM9UytNYXRoLmltdWwoUXQscHIpfDApK01hdGguaW11bChnbixxdCl8MCxGPUYrTWF0aC5pbXVsKGduLHByKXwwLFQ9VCtNYXRoLmltdWwoVWUsQW4pfDAsUz0oUz1TK01hdGguaW11bChVZSxxbil8MCkrTWF0aC5pbXVsKHl0LEFuKXwwLEY9RitNYXRoLmltdWwoeXQs''@;'; + put 'put ''cW4pfDAsVD1UK01hdGguaW11bChmdCxwbil8MCxTPShTPVMrTWF0aC5pbXVsKGZ0LEtuKXwwKStNYXRoLmltdWwoSHQscG4pfDAsRj1GK01hdGguaW11bChIdCxLbil8MCxUPVQrTWF0aC5pbXVsKGF0LHNuKXwwLFM9KFM9UytNYXRoLmltdWwoYXQsVW4pfDApK01hdGguaW11bChMdCxzbil8''@;'; + put 'put ''MCxGPUYrTWF0aC5pbXVsKEx0LFVuKXwwLFQ9VCtNYXRoLmltdWwoX3QsdG4pfDAsUz0oUz1TK01hdGguaW11bChfdCx6bil8MCkrTWF0aC5pbXVsKHR0LHRuKXwwLEY9RitNYXRoLmltdWwodHQsem4pfDAsVD1UK01hdGguaW11bChodCxCbil8MCxTPShTPVMrTWF0aC5pbXVsKGh0LGtyKXww''@;'; + put 'put ''KStNYXRoLmltdWwoQnQsQm4pfDAsRj1GK01hdGguaW11bChCdCxrcil8MCxUPVQrTWF0aC5pbXVsKG10LHVuKXwwLFM9KFM9UytNYXRoLmltdWwobXQsY24pfDApK01hdGguaW11bCh2dCx1bil8MCxGPUYrTWF0aC5pbXVsKHZ0LGNuKXwwO3ZhciBNaT0oUGUrKFQ9VCtNYXRoLmltdWwoJGUs''@;'; + put 'put ''R3QpfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bCgkZSxrbil8MCkrTWF0aC5pbXVsKGd0LEd0KXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGguaW11bChndCxrbil8MCkrKFM+Pj4xMyl8MCkrKE1pPj4+MjYpfDAsTWkmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGJuLFhuKSxTPShTPU1h''@;'; + put 'put ''dGguaW11bChibixGcikpK01hdGguaW11bChlcixYbil8MCxGPU1hdGguaW11bChlcixGciksVD1UK01hdGguaW11bCh5bixxdCl8MCxTPShTPVMrTWF0aC5pbXVsKHluLHByKXwwKStNYXRoLmltdWwobG4scXQpfDAsRj1GK01hdGguaW11bChsbixwcil8MCxUPVQrTWF0aC5pbXVsKFF0LEFu''@;'; + put 'put ''KXwwLFM9KFM9UytNYXRoLmltdWwoUXQscW4pfDApK01hdGguaW11bChnbixBbil8MCxGPUYrTWF0aC5pbXVsKGduLHFuKXwwLFQ9VCtNYXRoLmltdWwoVWUscG4pfDAsUz0oUz1TK01hdGguaW11bChVZSxLbil8MCkrTWF0aC5pbXVsKHl0LHBuKXwwLEY9RitNYXRoLmltdWwoeXQsS24pfDAs''@;'; + put 'put ''VD1UK01hdGguaW11bChmdCxzbil8MCxTPShTPVMrTWF0aC5pbXVsKGZ0LFVuKXwwKStNYXRoLmltdWwoSHQsc24pfDAsRj1GK01hdGguaW11bChIdCxVbil8MCxUPVQrTWF0aC5pbXVsKGF0LHRuKXwwLFM9KFM9UytNYXRoLmltdWwoYXQsem4pfDApK01hdGguaW11bChMdCx0bil8MCxGPUYr''@;'; + put 'put ''TWF0aC5pbXVsKEx0LHpuKXwwLFQ9VCtNYXRoLmltdWwoX3QsQm4pfDAsUz0oUz1TK01hdGguaW11bChfdCxrcil8MCkrTWF0aC5pbXVsKHR0LEJuKXwwLEY9RitNYXRoLmltdWwodHQsa3IpfDAsVD1UK01hdGguaW11bChodCx1bil8MCxTPShTPVMrTWF0aC5pbXVsKGh0LGNuKXwwKStNYXRo''@;'; + put 'put ''LmltdWwoQnQsdW4pfDAsRj1GK01hdGguaW11bChCdCxjbil8MCxUPVQrTWF0aC5pbXVsKG10LEd0KXwwLFM9KFM9UytNYXRoLmltdWwobXQsa24pfDApK01hdGguaW11bCh2dCxHdCl8MCxGPUYrTWF0aC5pbXVsKHZ0LGtuKXwwO3ZhciBvMD0oUGUrKFQ9VCtNYXRoLmltdWwoJGUsZW4pfDAp''@;'; + put 'put ''fDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bCgkZSxJbil8MCkrTWF0aC5pbXVsKGd0LGVuKXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGguaW11bChndCxJbil8MCkrKFM+Pj4xMyl8MCkrKG8wPj4+MjYpfDAsbzAmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGJuLHF0KSxTPShTPU1hdGguaW11''@;'; + put 'put ''bChibixwcikpK01hdGguaW11bChlcixxdCl8MCxGPU1hdGguaW11bChlcixwciksVD1UK01hdGguaW11bCh5bixBbil8MCxTPShTPVMrTWF0aC5pbXVsKHluLHFuKXwwKStNYXRoLmltdWwobG4sQW4pfDAsRj1GK01hdGguaW11bChsbixxbil8MCxUPVQrTWF0aC5pbXVsKFF0LHBuKXwwLFM9''@;'; + put 'put ''KFM9UytNYXRoLmltdWwoUXQsS24pfDApK01hdGguaW11bChnbixwbil8MCxGPUYrTWF0aC5pbXVsKGduLEtuKXwwLFQ9VCtNYXRoLmltdWwoVWUsc24pfDAsUz0oUz1TK01hdGguaW11bChVZSxVbil8MCkrTWF0aC5pbXVsKHl0LHNuKXwwLEY9RitNYXRoLmltdWwoeXQsVW4pfDAsVD1UK01h''@;'; + put 'put ''dGguaW11bChmdCx0bil8MCxTPShTPVMrTWF0aC5pbXVsKGZ0LHpuKXwwKStNYXRoLmltdWwoSHQsdG4pfDAsRj1GK01hdGguaW11bChIdCx6bil8MCxUPVQrTWF0aC5pbXVsKGF0LEJuKXwwLFM9KFM9UytNYXRoLmltdWwoYXQsa3IpfDApK01hdGguaW11bChMdCxCbil8MCxGPUYrTWF0aC5p''@;'; + put 'put ''bXVsKEx0LGtyKXwwLFQ9VCtNYXRoLmltdWwoX3QsdW4pfDAsUz0oUz1TK01hdGguaW11bChfdCxjbil8MCkrTWF0aC5pbXVsKHR0LHVuKXwwLEY9RitNYXRoLmltdWwodHQsY24pfDAsVD1UK01hdGguaW11bChodCxHdCl8MCxTPShTPVMrTWF0aC5pbXVsKGh0LGtuKXwwKStNYXRoLmltdWwo''@;'; + put 'put ''QnQsR3QpfDAsRj1GK01hdGguaW11bChCdCxrbil8MDt2YXIgbjA9KFBlKyhUPVQrTWF0aC5pbXVsKG10LGVuKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwobXQsSW4pfDApK01hdGguaW11bCh2dCxlbil8MCkpPDwxMyl8MDtQZT0oKEY9RitNYXRoLmltdWwodnQsSW4pfDApKyhT''@;'; + put 'put ''Pj4+MTMpfDApKyhuMD4+PjI2KXwwLG4wJj02NzEwODg2MyxUPU1hdGguaW11bChibixBbiksUz0oUz1NYXRoLmltdWwoYm4scW4pKStNYXRoLmltdWwoZXIsQW4pfDAsRj1NYXRoLmltdWwoZXIscW4pLFQ9VCtNYXRoLmltdWwoeW4scG4pfDAsUz0oUz1TK01hdGguaW11bCh5bixLbil8MCkr''@;'; + put 'put ''TWF0aC5pbXVsKGxuLHBuKXwwLEY9RitNYXRoLmltdWwobG4sS24pfDAsVD1UK01hdGguaW11bChRdCxzbil8MCxTPShTPVMrTWF0aC5pbXVsKFF0LFVuKXwwKStNYXRoLmltdWwoZ24sc24pfDAsRj1GK01hdGguaW11bChnbixVbil8MCxUPVQrTWF0aC5pbXVsKFVlLHRuKXwwLFM9KFM9UytN''@;'; + put 'put ''YXRoLmltdWwoVWUsem4pfDApK01hdGguaW11bCh5dCx0bil8MCxGPUYrTWF0aC5pbXVsKHl0LHpuKXwwLFQ9VCtNYXRoLmltdWwoZnQsQm4pfDAsUz0oUz1TK01hdGguaW11bChmdCxrcil8MCkrTWF0aC5pbXVsKEh0LEJuKXwwLEY9RitNYXRoLmltdWwoSHQsa3IpfDAsVD1UK01hdGguaW11''@;'; + put 'put ''bChhdCx1bil8MCxTPShTPVMrTWF0aC5pbXVsKGF0LGNuKXwwKStNYXRoLmltdWwoTHQsdW4pfDAsRj1GK01hdGguaW11bChMdCxjbil8MCxUPVQrTWF0aC5pbXVsKF90LEd0KXwwLFM9KFM9UytNYXRoLmltdWwoX3Qsa24pfDApK01hdGguaW11bCh0dCxHdCl8MCxGPUYrTWF0aC5pbXVsKHR0''@;'; + put 'put ''LGtuKXwwO3ZhciBkMD0oUGUrKFQ9VCtNYXRoLmltdWwoaHQsZW4pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bChodCxJbil8MCkrTWF0aC5pbXVsKEJ0LGVuKXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGguaW11bChCdCxJbil8MCkrKFM+Pj4xMyl8MCkrKGQwPj4+MjYpfDAsZDAm''@;'; + put 'put ''PTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGJuLHBuKSxTPShTPU1hdGguaW11bChibixLbikpK01hdGguaW11bChlcixwbil8MCxGPU1hdGguaW11bChlcixLbiksVD1UK01hdGguaW11bCh5bixzbil8MCxTPShTPVMrTWF0aC5pbXVsKHluLFVuKXwwKStNYXRoLmltdWwobG4sc24pfDAsRj1GK01h''@;'; + put 'put ''dGguaW11bChsbixVbil8MCxUPVQrTWF0aC5pbXVsKFF0LHRuKXwwLFM9KFM9UytNYXRoLmltdWwoUXQsem4pfDApK01hdGguaW11bChnbix0bil8MCxGPUYrTWF0aC5pbXVsKGduLHpuKXwwLFQ9VCtNYXRoLmltdWwoVWUsQm4pfDAsUz0oUz1TK01hdGguaW11bChVZSxrcil8MCkrTWF0aC5p''@;'; + put 'put ''bXVsKHl0LEJuKXwwLEY9RitNYXRoLmltdWwoeXQsa3IpfDAsVD1UK01hdGguaW11bChmdCx1bil8MCxTPShTPVMrTWF0aC5pbXVsKGZ0LGNuKXwwKStNYXRoLmltdWwoSHQsdW4pfDAsRj1GK01hdGguaW11bChIdCxjbil8MCxUPVQrTWF0aC5pbXVsKGF0LEd0KXwwLFM9KFM9UytNYXRoLmlt''@;'; + put 'put ''dWwoYXQsa24pfDApK01hdGguaW11bChMdCxHdCl8MCxGPUYrTWF0aC5pbXVsKEx0LGtuKXwwO3ZhciBtMD0oUGUrKFQ9VCtNYXRoLmltdWwoX3QsZW4pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bChfdCxJbil8MCkrTWF0aC5pbXVsKHR0LGVuKXwwKSk8PDEzKXwwO1BlPSgoRj1G''@;'; + put 'put ''K01hdGguaW11bCh0dCxJbil8MCkrKFM+Pj4xMyl8MCkrKG0wPj4+MjYpfDAsbTAmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGJuLHNuKSxTPShTPU1hdGguaW11bChibixVbikpK01hdGguaW11bChlcixzbil8MCxGPU1hdGguaW11bChlcixVbiksVD1UK01hdGguaW11bCh5bix0bil8MCxTPShT''@;'; + put 'put ''PVMrTWF0aC5pbXVsKHluLHpuKXwwKStNYXRoLmltdWwobG4sdG4pfDAsRj1GK01hdGguaW11bChsbix6bil8MCxUPVQrTWF0aC5pbXVsKFF0LEJuKXwwLFM9KFM9UytNYXRoLmltdWwoUXQsa3IpfDApK01hdGguaW11bChnbixCbil8MCxGPUYrTWF0aC5pbXVsKGduLGtyKXwwLFQ9VCtNYXRo''@;'; + put 'put ''LmltdWwoVWUsdW4pfDAsUz0oUz1TK01hdGguaW11bChVZSxjbil8MCkrTWF0aC5pbXVsKHl0LHVuKXwwLEY9RitNYXRoLmltdWwoeXQsY24pfDAsVD1UK01hdGguaW11bChmdCxHdCl8MCxTPShTPVMrTWF0aC5pbXVsKGZ0LGtuKXwwKStNYXRoLmltdWwoSHQsR3QpfDAsRj1GK01hdGguaW11''@;'; + put 'put ''bChIdCxrbil8MDt2YXIgRzA9KFBlKyhUPVQrTWF0aC5pbXVsKGF0LGVuKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoYXQsSW4pfDApK01hdGguaW11bChMdCxlbil8MCkpPDwxMyl8MDtQZT0oKEY9RitNYXRoLmltdWwoTHQsSW4pfDApKyhTPj4+MTMpfDApKyhHMD4+PjI2KXww''@;'; + put 'put ''LEcwJj02NzEwODg2MyxUPU1hdGguaW11bChibix0biksUz0oUz1NYXRoLmltdWwoYm4sem4pKStNYXRoLmltdWwoZXIsdG4pfDAsRj1NYXRoLmltdWwoZXIsem4pLFQ9VCtNYXRoLmltdWwoeW4sQm4pfDAsUz0oUz1TK01hdGguaW11bCh5bixrcil8MCkrTWF0aC5pbXVsKGxuLEJuKXwwLEY9''@;'; + put 'put ''RitNYXRoLmltdWwobG4sa3IpfDAsVD1UK01hdGguaW11bChRdCx1bil8MCxTPShTPVMrTWF0aC5pbXVsKFF0LGNuKXwwKStNYXRoLmltdWwoZ24sdW4pfDAsRj1GK01hdGguaW11bChnbixjbil8MCxUPVQrTWF0aC5pbXVsKFVlLEd0KXwwLFM9KFM9UytNYXRoLmltdWwoVWUsa24pfDApK01h''@;'; + put 'put ''dGguaW11bCh5dCxHdCl8MCxGPUYrTWF0aC5pbXVsKHl0LGtuKXwwO3ZhciBEaT0oUGUrKFQ9VCtNYXRoLmltdWwoZnQsZW4pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bChmdCxJbil8MCkrTWF0aC5pbXVsKEh0LGVuKXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGguaW11bChIdCxJ''@;'; + put 'put ''bil8MCkrKFM+Pj4xMyl8MCkrKERpPj4+MjYpfDAsRGkmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGJuLEJuKSxTPShTPU1hdGguaW11bChibixrcikpK01hdGguaW11bChlcixCbil8MCxGPU1hdGguaW11bChlcixrciksVD1UK01hdGguaW11bCh5bix1bil8MCxTPShTPVMrTWF0aC5pbXVsKHlu''@;'; + put 'put ''LGNuKXwwKStNYXRoLmltdWwobG4sdW4pfDAsRj1GK01hdGguaW11bChsbixjbil8MCxUPVQrTWF0aC5pbXVsKFF0LEd0KXwwLFM9KFM9UytNYXRoLmltdWwoUXQsa24pfDApK01hdGguaW11bChnbixHdCl8MCxGPUYrTWF0aC5pbXVsKGduLGtuKXwwO3ZhciBXMD0oUGUrKFQ9VCtNYXRoLmlt''@;'; + put 'put ''dWwoVWUsZW4pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bChVZSxJbil8MCkrTWF0aC5pbXVsKHl0LGVuKXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGguaW11bCh5dCxJbil8MCkrKFM+Pj4xMyl8MCkrKFcwPj4+MjYpfDAsVzAmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGJuLHVuKSxT''@;'; + put 'put ''PShTPU1hdGguaW11bChibixjbikpK01hdGguaW11bChlcix1bil8MCxGPU1hdGguaW11bChlcixjbiksVD1UK01hdGguaW11bCh5bixHdCl8MCxTPShTPVMrTWF0aC5pbXVsKHluLGtuKXwwKStNYXRoLmltdWwobG4sR3QpfDAsRj1GK01hdGguaW11bChsbixrbil8MDt2YXIgRW89KFBlKyhU''@;'; + put 'put ''PVQrTWF0aC5pbXVsKFF0LGVuKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoUXQsSW4pfDApK01hdGguaW11bChnbixlbil8MCkpPDwxMyl8MDtQZT0oKEY9RitNYXRoLmltdWwoZ24sSW4pfDApKyhTPj4+MTMpfDApKyhFbz4+PjI2KXwwLEVvJj02NzEwODg2MyxUPU1hdGguaW11''@;'; + put 'put ''bChibixHdCksUz0oUz1NYXRoLmltdWwoYm4sa24pKStNYXRoLmltdWwoZXIsR3QpfDAsRj1NYXRoLmltdWwoZXIsa24pO3ZhciBxbz0oUGUrKFQ9VCtNYXRoLmltdWwoeW4sZW4pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bCh5bixJbil8MCkrTWF0aC5pbXVsKGxuLGVuKXwwKSk8''@;'; + put 'put ''PDEzKXwwO1BlPSgoRj1GK01hdGguaW11bChsbixJbil8MCkrKFM+Pj4xMyl8MCkrKHFvPj4+MjYpfDAscW8mPTY3MTA4ODYzO3ZhciBjYT0oUGUrKFQ9TWF0aC5pbXVsKGJuLGVuKSl8MCkrKCg4MTkxJihTPShTPU1hdGguaW11bChibixJbikpK01hdGguaW11bChlcixlbil8MCkpPDwxMyl8''@;'; + put 'put ''MDtyZXR1cm4gUGU9KChGPU1hdGguaW11bChlcixJbikpKyhTPj4+MTMpfDApKyhjYT4+PjI2KXwwLGNhJj02NzEwODg2MyxEZVswXT1KbixEZVsxXT1vcixEZVsyXT1ncixEZVszXT1LcixEZVs0XT1WcixEZVs1XT1paSxEZVs2XT1ScixEZVs3XT1saSxEZVs4XT1NaSxEZVs5XT1vMCxEZVsx''@;'; + put 'put ''MF09bjAsRGVbMTFdPWQwLERlWzEyXT1tMCxEZVsxM109RzAsRGVbMTRdPURpLERlWzE1XT1XMCxEZVsxNl09RW8sRGVbMTddPXFvLERlWzE4XT1jYSwwIT09UGUmJihEZVsxOV09UGUsVi5sZW5ndGgrKyksVn07ZnVuY3Rpb24ga2UoeCxQLFYpe3JldHVybihuZXcgU2UpLm11bHAoeCxQLFYp''@;'; + put 'put ''fWZ1bmN0aW9uIFNlKHgsUCl7dGhpcy54PXgsdGhpcy55PVB9TWF0aC5pbXVsfHwoQWU9dmUpLE4ucHJvdG90eXBlLm11bFRvPWZ1bmN0aW9uKHgsUCl7dmFyIFQ9dGhpcy5sZW5ndGgreC5sZW5ndGg7cmV0dXJuIDEwPT09dGhpcy5sZW5ndGgmJjEwPT09eC5sZW5ndGg/QWUodGhpcyx4LFAp''@;'; + put 'put ''OlQ8NjM/dmUodGhpcyx4LFApOlQ8MTAyND9mdW5jdGlvbihTLEYseWUpe3llLm5lZ2F0aXZlPUYubmVnYXRpdmVeUy5uZWdhdGl2ZSx5ZS5sZW5ndGg9Uy5sZW5ndGgrRi5sZW5ndGg7Zm9yKHZhciBDZT0wLERlPTAsUGU9MDtQZTx5ZS5sZW5ndGgtMTtQZSsrKXt2YXIgUWU9RGU7RGU9MDtm''@;'; + put 'put ''b3IodmFyICRlPTY3MTA4ODYzJkNlLGd0PU1hdGgubWluKFBlLEYubGVuZ3RoLTEpLHd0PU1hdGgubWF4KDAsUGUtUy5sZW5ndGgrMSk7d3Q8PWd0O3d0Kyspe3ZhciB2dD0oMHxTLndvcmRzW1BlLXd0XSkqKDB8Ri53b3Jkc1t3dF0pLEF0PTY3MTA4ODYzJnZ0OyRlPTY3MTA4ODYzJihBdD1B''@;'; + put 'put ''dCskZXwwKSxEZSs9KFFlPShRZT1RZSsodnQvNjcxMDg4NjR8MCl8MCkrKEF0Pj4+MjYpfDApPj4+MjYsUWUmPTY3MTA4ODYzfXllLndvcmRzW1BlXT0kZSxDZT1RZSxRZT1EZX1yZXR1cm4gMCE9PUNlP3llLndvcmRzW1BlXT1DZTp5ZS5sZW5ndGgtLSx5ZS5zdHJpcCgpfSh0aGlzLHgsUCk6''@;'; + put 'put ''a2UodGhpcyx4LFApfSxTZS5wcm90b3R5cGUubWFrZVJCVD1mdW5jdGlvbih4KXtmb3IodmFyIFA9bmV3IEFycmF5KHgpLFY9Ti5wcm90b3R5cGUuX2NvdW50Qml0cyh4KS0xLFQ9MDtUPHg7VCsrKVBbVF09dGhpcy5yZXZCaW4oVCxWLHgpO3JldHVybiBQfSxTZS5wcm90b3R5cGUucmV2Qmlu''@;'; + put 'put ''PWZ1bmN0aW9uKHgsUCxWKXtpZigwPT09eHx8eD09PVYtMSlyZXR1cm4geDtmb3IodmFyIFQ9MCxTPTA7UzxQO1MrKylUfD0oMSZ4KTw8UC1TLTEseD4+PTE7cmV0dXJuIFR9LFNlLnByb3RvdHlwZS5wZXJtdXRlPWZ1bmN0aW9uKHgsUCxWLFQsUyxGKXtmb3IodmFyIHllPTA7eWU8Rjt5ZSsr''@;'; + put 'put ''KVRbeWVdPVBbeFt5ZV1dLFNbeWVdPVZbeFt5ZV1dfSxTZS5wcm90b3R5cGUudHJhbnNmb3JtPWZ1bmN0aW9uKHgsUCxWLFQsUyxGKXt0aGlzLnBlcm11dGUoRix4LFAsVixULFMpO2Zvcih2YXIgeWU9MTt5ZTxTO3llPDw9MSlmb3IodmFyIENlPXllPDwxLERlPU1hdGguY29zKDIqTWF0aC5Q''@;'; + put 'put ''SS9DZSksUGU9TWF0aC5zaW4oMipNYXRoLlBJL0NlKSxRZT0wO1FlPFM7UWUrPUNlKWZvcih2YXIgJGU9RGUsZ3Q9UGUsd3Q9MDt3dDx5ZTt3dCsrKXt2YXIgbXQ9VltRZSt3dF0sdnQ9VFtRZSt3dF0sQXQ9VltRZSt3dCt5ZV0saHQ9VFtRZSt3dCt5ZV0sQnQ9JGUqQXQtZ3QqaHQ7aHQ9JGUq''@;'; + put 'put ''aHQrZ3QqQXQsVltRZSt3dF09bXQrKEF0PUJ0KSxUW1FlK3d0XT12dCtodCxWW1FlK3d0K3llXT1tdC1BdCxUW1FlK3d0K3llXT12dC1odCx3dCE9PUNlJiYoQnQ9RGUqJGUtUGUqZ3QsZ3Q9RGUqZ3QrUGUqJGUsJGU9QnQpfX0sU2UucHJvdG90eXBlLmd1ZXNzTGVuMTNiPWZ1bmN0aW9uKHgs''@;'; + put 'put ''UCl7dmFyIFY9MXxNYXRoLm1heChQLHgpLFQ9MSZWLFM9MDtmb3IoVj1WLzJ8MDtWO1Y+Pj49MSlTKys7cmV0dXJuIDE8PFMrMStUfSxTZS5wcm90b3R5cGUuY29uanVnYXRlPWZ1bmN0aW9uKHgsUCxWKXtpZighKFY8PTEpKWZvcih2YXIgVD0wO1Q8Vi8yO1QrKyl7dmFyIFM9eFtUXTt4W1Rd''@;'; + put 'put ''PXhbVi1ULTFdLHhbVi1ULTFdPVMsUz1QW1RdLFBbVF09LVBbVi1ULTFdLFBbVi1ULTFdPS1TfX0sU2UucHJvdG90eXBlLm5vcm1hbGl6ZTEzYj1mdW5jdGlvbih4LFApe2Zvcih2YXIgVj0wLFQ9MDtUPFAvMjtUKyspe3ZhciBTPTgxOTIqTWF0aC5yb3VuZCh4WzIqVCsxXS9QKStNYXRoLnJv''@;'; + put 'put ''dW5kKHhbMipUXS9QKStWO3hbVF09NjcxMDg4NjMmUyxWPVM8NjcxMDg4NjQ/MDpTLzY3MTA4ODY0fDB9cmV0dXJuIHh9LFNlLnByb3RvdHlwZS5jb252ZXJ0MTNiPWZ1bmN0aW9uKHgsUCxWLFQpe2Zvcih2YXIgUz0wLEY9MDtGPFA7RisrKVZbMipGXT04MTkxJihTKz0wfHhbRl0pLFZbMipG''@;'; + put 'put ''KzFdPTgxOTEmKFM+Pj49MTMpLFM+Pj49MTM7Zm9yKEY9MipQO0Y8VDsrK0YpVltGXT0wO1koMD09PVMpLFkoMD09KC04MTkyJlMpKX0sU2UucHJvdG90eXBlLnN0dWI9ZnVuY3Rpb24oeCl7Zm9yKHZhciBQPW5ldyBBcnJheSh4KSxWPTA7Vjx4O1YrKylQW1ZdPTA7cmV0dXJuIFB9LFNlLnBy''@;'; + put 'put ''b3RvdHlwZS5tdWxwPWZ1bmN0aW9uKHgsUCxWKXt2YXIgVD0yKnRoaXMuZ3Vlc3NMZW4xM2IoeC5sZW5ndGgsUC5sZW5ndGgpLFM9dGhpcy5tYWtlUkJUKFQpLEY9dGhpcy5zdHViKFQpLHllPW5ldyBBcnJheShUKSxDZT1uZXcgQXJyYXkoVCksRGU9bmV3IEFycmF5KFQpLFBlPW5ldyBBcnJh''@;'; + put 'put ''eShUKSxRZT1uZXcgQXJyYXkoVCksJGU9bmV3IEFycmF5KFQpLGd0PVYud29yZHM7Z3QubGVuZ3RoPVQsdGhpcy5jb252ZXJ0MTNiKHgud29yZHMseC5sZW5ndGgseWUsVCksdGhpcy5jb252ZXJ0MTNiKFAud29yZHMsUC5sZW5ndGgsUGUsVCksdGhpcy50cmFuc2Zvcm0oeWUsRixDZSxEZSxU''@;'; + put 'put ''LFMpLHRoaXMudHJhbnNmb3JtKFBlLEYsUWUsJGUsVCxTKTtmb3IodmFyIHd0PTA7d3Q8VDt3dCsrKXt2YXIgbXQ9Q2Vbd3RdKlFlW3d0XS1EZVt3dF0qJGVbd3RdO0RlW3d0XT1DZVt3dF0qJGVbd3RdK0RlW3d0XSpRZVt3dF0sQ2Vbd3RdPW10fXJldHVybiB0aGlzLmNvbmp1Z2F0ZShDZSxE''@;'; + put 'put ''ZSxUKSx0aGlzLnRyYW5zZm9ybShDZSxEZSxndCxGLFQsUyksdGhpcy5jb25qdWdhdGUoZ3QsRixUKSx0aGlzLm5vcm1hbGl6ZTEzYihndCxUKSxWLm5lZ2F0aXZlPXgubmVnYXRpdmVeUC5uZWdhdGl2ZSxWLmxlbmd0aD14Lmxlbmd0aCtQLmxlbmd0aCxWLnN0cmlwKCl9LE4ucHJvdG90eXBl''@;'; + put 'put ''Lm11bD1mdW5jdGlvbih4KXt2YXIgUD1uZXcgTihudWxsKTtyZXR1cm4gUC53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgreC5sZW5ndGgpLHRoaXMubXVsVG8oeCxQKX0sTi5wcm90b3R5cGUubXVsZj1mdW5jdGlvbih4KXt2YXIgUD1uZXcgTihudWxsKTtyZXR1cm4gUC53b3Jkcz1uZXcg''@;'; + put 'put ''QXJyYXkodGhpcy5sZW5ndGgreC5sZW5ndGgpLGtlKHRoaXMseCxQKX0sTi5wcm90b3R5cGUuaW11bD1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5jbG9uZSgpLm11bFRvKHgsdGhpcyl9LE4ucHJvdG90eXBlLmltdWxuPWZ1bmN0aW9uKHgpe1koIm51bWJlciI9PXR5cGVvZiB4KSxZKHg8Njcx''@;'; + put 'put ''MDg4NjQpO2Zvcih2YXIgUD0wLFY9MDtWPHRoaXMubGVuZ3RoO1YrKyl7dmFyIFQ9KDB8dGhpcy53b3Jkc1tWXSkqeCxTPSg2NzEwODg2MyZUKSsoNjcxMDg4NjMmUCk7UD4+PTI2LFArPVQvNjcxMDg4NjR8MCxQKz1TPj4+MjYsdGhpcy53b3Jkc1tWXT02NzEwODg2MyZTfXJldHVybiAwIT09''@;'; + put 'put ''UCYmKHRoaXMud29yZHNbVl09UCx0aGlzLmxlbmd0aCsrKSx0aGlzfSxOLnByb3RvdHlwZS5tdWxuPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmNsb25lKCkuaW11bG4oeCl9LE4ucHJvdG90eXBlLnNxcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLm11bCh0aGlzKX0sTi5wcm90b3R5cGUuaXNx''@;'; + put 'put ''cj1mdW5jdGlvbigpe3JldHVybiB0aGlzLmltdWwodGhpcy5jbG9uZSgpKX0sTi5wcm90b3R5cGUucG93PWZ1bmN0aW9uKHgpe3ZhciBQPWZ1bmN0aW9uKEYpe2Zvcih2YXIgeWU9bmV3IEFycmF5KEYuYml0TGVuZ3RoKCkpLENlPTA7Q2U8eWUubGVuZ3RoO0NlKyspe3ZhciBQZT1DZSUyNjt5''@;'; + put 'put ''ZVtDZV09KEYud29yZHNbQ2UvMjZ8MF0mMTw8UGUpPj4+UGV9cmV0dXJuIHllfSh4KTtpZigwPT09UC5sZW5ndGgpcmV0dXJuIG5ldyBOKDEpO2Zvcih2YXIgVj10aGlzLFQ9MDtUPFAubGVuZ3RoJiYwPT09UFtUXTtUKyssVj1WLnNxcigpKTtpZigrK1Q8UC5sZW5ndGgpZm9yKHZhciBTPVYu''@;'; + put 'put ''c3FyKCk7VDxQLmxlbmd0aDtUKyssUz1TLnNxcigpKTAhPT1QW1RdJiYoVj1WLm11bChTKSk7cmV0dXJuIFZ9LE4ucHJvdG90eXBlLml1c2hsbj1mdW5jdGlvbih4KXtZKCJudW1iZXIiPT10eXBlb2YgeCYmeD49MCk7dmFyIFAsVj14JTI2LFQ9KHgtVikvMjYsUz02NzEwODg2Mz4+PjI2LVY8''@;'; + put 'put ''PDI2LVY7aWYoMCE9PVYpe3ZhciBGPTA7Zm9yKFA9MDtQPHRoaXMubGVuZ3RoO1ArKyl7dmFyIHllPXRoaXMud29yZHNbUF0mUzt0aGlzLndvcmRzW1BdPSgwfHRoaXMud29yZHNbUF0pLXllPDxWfEYsRj15ZT4+PjI2LVZ9RiYmKHRoaXMud29yZHNbUF09Rix0aGlzLmxlbmd0aCsrKX1pZigw''@;'; + put 'put ''IT09VCl7Zm9yKFA9dGhpcy5sZW5ndGgtMTtQPj0wO1AtLSl0aGlzLndvcmRzW1ArVF09dGhpcy53b3Jkc1tQXTtmb3IoUD0wO1A8VDtQKyspdGhpcy53b3Jkc1tQXT0wO3RoaXMubGVuZ3RoKz1UfXJldHVybiB0aGlzLnN0cmlwKCl9LE4ucHJvdG90eXBlLmlzaGxuPWZ1bmN0aW9uKHgpe3Jl''@;'; + put 'put ''dHVybiBZKDA9PT10aGlzLm5lZ2F0aXZlKSx0aGlzLml1c2hsbih4KX0sTi5wcm90b3R5cGUuaXVzaHJuPWZ1bmN0aW9uKHgsUCxWKXt2YXIgVDtZKCJudW1iZXIiPT10eXBlb2YgeCYmeD49MCksVD1QPyhQLVAlMjYpLzI2OjA7dmFyIFM9eCUyNixGPU1hdGgubWluKCh4LVMpLzI2LHRoaXMu''@;'; + put 'put ''bGVuZ3RoKSx5ZT02NzEwODg2M142NzEwODg2Mz4+PlM8PFMsQ2U9VjtpZihULT1GLFQ9TWF0aC5tYXgoMCxUKSxDZSl7Zm9yKHZhciBEZT0wO0RlPEY7RGUrKylDZS53b3Jkc1tEZV09dGhpcy53b3Jkc1tEZV07Q2UubGVuZ3RoPUZ9aWYoMCE9PUYpaWYodGhpcy5sZW5ndGg+Rilmb3IodGhp''@;'; + put 'put ''cy5sZW5ndGgtPUYsRGU9MDtEZTx0aGlzLmxlbmd0aDtEZSsrKXRoaXMud29yZHNbRGVdPXRoaXMud29yZHNbRGUrRl07ZWxzZSB0aGlzLndvcmRzWzBdPTAsdGhpcy5sZW5ndGg9MTt2YXIgUGU9MDtmb3IoRGU9dGhpcy5sZW5ndGgtMTtEZT49MCYmKDAhPT1QZXx8RGU+PVQpO0RlLS0pe3Zh''@;'; + put 'put ''ciBRZT0wfHRoaXMud29yZHNbRGVdO3RoaXMud29yZHNbRGVdPVBlPDwyNi1TfFFlPj4+UyxQZT1RZSZ5ZX1yZXR1cm4gQ2UmJjAhPT1QZSYmKENlLndvcmRzW0NlLmxlbmd0aCsrXT1QZSksMD09PXRoaXMubGVuZ3RoJiYodGhpcy53b3Jkc1swXT0wLHRoaXMubGVuZ3RoPTEpLHRoaXMuc3Ry''@;'; + put 'put ''aXAoKX0sTi5wcm90b3R5cGUuaXNocm49ZnVuY3Rpb24oeCxQLFYpe3JldHVybiBZKDA9PT10aGlzLm5lZ2F0aXZlKSx0aGlzLml1c2hybih4LFAsVil9LE4ucHJvdG90eXBlLnNobG49ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc2hsbih4KX0sTi5wcm90b3R5cGUudXNobG49''@;'; + put 'put ''ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pdXNobG4oeCl9LE4ucHJvdG90eXBlLnNocm49ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc2hybih4KX0sTi5wcm90b3R5cGUudXNocm49ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pdXNocm4oeCl9LE4u''@;'; + put 'put ''cHJvdG90eXBlLnRlc3RuPWZ1bmN0aW9uKHgpe1koIm51bWJlciI9PXR5cGVvZiB4JiZ4Pj0wKTt2YXIgUD14JTI2LFY9KHgtUCkvMjY7cmV0dXJuISh0aGlzLmxlbmd0aDw9Vnx8ISh0aGlzLndvcmRzW1ZdJjE8PFApKX0sTi5wcm90b3R5cGUuaW1hc2tuPWZ1bmN0aW9uKHgpe1koIm51bWJl''@;'; + put 'put ''ciI9PXR5cGVvZiB4JiZ4Pj0wKTt2YXIgUD14JTI2LFY9KHgtUCkvMjY7cmV0dXJuIFkoMD09PXRoaXMubmVnYXRpdmUsImltYXNrbiB3b3JrcyBvbmx5IHdpdGggcG9zaXRpdmUgbnVtYmVycyIpLHRoaXMubGVuZ3RoPD1WP3RoaXM6KDAhPT1QJiZWKyssdGhpcy5sZW5ndGg9TWF0aC5taW4o''@;'; + put 'put ''Vix0aGlzLmxlbmd0aCksMCE9PVAmJih0aGlzLndvcmRzW3RoaXMubGVuZ3RoLTFdJj02NzEwODg2M142NzEwODg2Mz4+PlA8PFApLHRoaXMuc3RyaXAoKSl9LE4ucHJvdG90eXBlLm1hc2tuPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmNsb25lKCkuaW1hc2tuKHgpfSxOLnByb3RvdHlwZS5p''@;'; + put 'put ''YWRkbj1mdW5jdGlvbih4KXtyZXR1cm4gWSgibnVtYmVyIj09dHlwZW9mIHgpLFkoeDw2NzEwODg2NCkseDwwP3RoaXMuaXN1Ym4oLXgpOjAhPT10aGlzLm5lZ2F0aXZlPzE9PT10aGlzLmxlbmd0aCYmKDB8dGhpcy53b3Jkc1swXSk8eD8odGhpcy53b3Jkc1swXT14LSgwfHRoaXMud29yZHNb''@;'; + put 'put ''MF0pLHRoaXMubmVnYXRpdmU9MCx0aGlzKToodGhpcy5uZWdhdGl2ZT0wLHRoaXMuaXN1Ym4oeCksdGhpcy5uZWdhdGl2ZT0xLHRoaXMpOnRoaXMuX2lhZGRuKHgpfSxOLnByb3RvdHlwZS5faWFkZG49ZnVuY3Rpb24oeCl7dGhpcy53b3Jkc1swXSs9eDtmb3IodmFyIFA9MDtQPHRoaXMubGVu''@;'; + put 'put ''Z3RoJiZ0aGlzLndvcmRzW1BdPj02NzEwODg2NDtQKyspdGhpcy53b3Jkc1tQXS09NjcxMDg4NjQsUD09PXRoaXMubGVuZ3RoLTE/dGhpcy53b3Jkc1tQKzFdPTE6dGhpcy53b3Jkc1tQKzFdKys7cmV0dXJuIHRoaXMubGVuZ3RoPU1hdGgubWF4KHRoaXMubGVuZ3RoLFArMSksdGhpc30sTi5w''@;'; + put 'put ''cm90b3R5cGUuaXN1Ym49ZnVuY3Rpb24oeCl7aWYoWSgibnVtYmVyIj09dHlwZW9mIHgpLFkoeDw2NzEwODg2NCkseDwwKXJldHVybiB0aGlzLmlhZGRuKC14KTtpZigwIT09dGhpcy5uZWdhdGl2ZSlyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLHRoaXMuaWFkZG4oeCksdGhpcy5uZWdhdGl2ZT0x''@;'; + put 'put ''LHRoaXM7aWYodGhpcy53b3Jkc1swXS09eCwxPT09dGhpcy5sZW5ndGgmJnRoaXMud29yZHNbMF08MCl0aGlzLndvcmRzWzBdPS10aGlzLndvcmRzWzBdLHRoaXMubmVnYXRpdmU9MTtlbHNlIGZvcih2YXIgUD0wO1A8dGhpcy5sZW5ndGgmJnRoaXMud29yZHNbUF08MDtQKyspdGhpcy53b3Jk''@;'; + put 'put ''c1tQXSs9NjcxMDg4NjQsdGhpcy53b3Jkc1tQKzFdLT0xO3JldHVybiB0aGlzLnN0cmlwKCl9LE4ucHJvdG90eXBlLmFkZG49ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pYWRkbih4KX0sTi5wcm90b3R5cGUuc3Vibj1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlz''@;'; + put 'put ''dWJuKHgpfSxOLnByb3RvdHlwZS5pYWJzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlzfSxOLnByb3RvdHlwZS5hYnM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlhYnMoKX0sTi5wcm90b3R5cGUuX2lzaGxuc3VibXVsPWZ1bmN0aW9uKHgsUCxWKXt2YXIg''@;'; + put 'put ''VCxTO3RoaXMuX2V4cGFuZCh4Lmxlbmd0aCtWKTt2YXIgeWU9MDtmb3IoVD0wO1Q8eC5sZW5ndGg7VCsrKXtTPSgwfHRoaXMud29yZHNbVCtWXSkreWU7dmFyIENlPSgwfHgud29yZHNbVF0pKlA7eWU9KChTLT02NzEwODg2MyZDZSk+PjI2KS0oQ2UvNjcxMDg4NjR8MCksdGhpcy53b3Jkc1tU''@;'; + put 'put ''K1ZdPTY3MTA4ODYzJlN9Zm9yKDtUPHRoaXMubGVuZ3RoLVY7VCsrKXllPShTPSgwfHRoaXMud29yZHNbVCtWXSkreWUpPj4yNix0aGlzLndvcmRzW1QrVl09NjcxMDg4NjMmUztpZigwPT09eWUpcmV0dXJuIHRoaXMuc3RyaXAoKTtmb3IoWSgtMT09PXllKSx5ZT0wLFQ9MDtUPHRoaXMubGVu''@;'; + put 'put ''Z3RoO1QrKyl5ZT0oUz0tKDB8dGhpcy53b3Jkc1tUXSkreWUpPj4yNix0aGlzLndvcmRzW1RdPTY3MTA4ODYzJlM7cmV0dXJuIHRoaXMubmVnYXRpdmU9MSx0aGlzLnN0cmlwKCl9LE4ucHJvdG90eXBlLl93b3JkRGl2PWZ1bmN0aW9uKHgsUCl7dmFyIFYsVD10aGlzLmNsb25lKCksUz14LEY9''@;'; + put 'put ''MHxTLndvcmRzW1MubGVuZ3RoLTFdOzAhPShWPTI2LXRoaXMuX2NvdW50Qml0cyhGKSkmJihTPVMudXNobG4oViksVC5pdXNobG4oViksRj0wfFMud29yZHNbUy5sZW5ndGgtMV0pO3ZhciB5ZSxDZT1ULmxlbmd0aC1TLmxlbmd0aDtpZigibW9kIiE9PVApeyh5ZT1uZXcgTihudWxsKSkubGVu''@;'; + put 'put ''Z3RoPUNlKzEseWUud29yZHM9bmV3IEFycmF5KHllLmxlbmd0aCk7Zm9yKHZhciBEZT0wO0RlPHllLmxlbmd0aDtEZSsrKXllLndvcmRzW0RlXT0wfXZhciBQZT1ULmNsb25lKCkuX2lzaGxuc3VibXVsKFMsMSxDZSk7MD09PVBlLm5lZ2F0aXZlJiYoVD1QZSx5ZSYmKHllLndvcmRzW0NlXT0x''@;'; + put 'put ''KSk7Zm9yKHZhciBRZT1DZS0xO1FlPj0wO1FlLS0pe3ZhciAkZT02NzEwODg2NCooMHxULndvcmRzW1MubGVuZ3RoK1FlXSkrKDB8VC53b3Jkc1tTLmxlbmd0aCtRZS0xXSk7Zm9yKCRlPU1hdGgubWluKCRlL0Z8MCw2NzEwODg2MyksVC5faXNobG5zdWJtdWwoUywkZSxRZSk7MCE9PVQubmVn''@;'; + put 'put ''YXRpdmU7KSRlLS0sVC5uZWdhdGl2ZT0wLFQuX2lzaGxuc3VibXVsKFMsMSxRZSksVC5pc1plcm8oKXx8KFQubmVnYXRpdmVePTEpO3llJiYoeWUud29yZHNbUWVdPSRlKX1yZXR1cm4geWUmJnllLnN0cmlwKCksVC5zdHJpcCgpLCJkaXYiIT09UCYmMCE9PVYmJlQuaXVzaHJuKFYpLHtkaXY6''@;'; + put 'put ''eWV8fG51bGwsbW9kOlR9fSxOLnByb3RvdHlwZS5kaXZtb2Q9ZnVuY3Rpb24oeCxQLFYpe3JldHVybiBZKCF4LmlzWmVybygpKSx0aGlzLmlzWmVybygpP3tkaXY6bmV3IE4oMCksbW9kOm5ldyBOKDApfTowIT09dGhpcy5uZWdhdGl2ZSYmMD09PXgubmVnYXRpdmU/KEY9dGhpcy5uZWcoKS5k''@;'; + put 'put ''aXZtb2QoeCxQKSwibW9kIiE9PVAmJihUPUYuZGl2Lm5lZygpKSwiZGl2IiE9PVAmJihTPUYubW9kLm5lZygpLFYmJjAhPT1TLm5lZ2F0aXZlJiZTLmlhZGQoeCkpLHtkaXY6VCxtb2Q6U30pOjA9PT10aGlzLm5lZ2F0aXZlJiYwIT09eC5uZWdhdGl2ZT8oRj10aGlzLmRpdm1vZCh4Lm5lZygp''@;'; + put 'put ''LFApLCJtb2QiIT09UCYmKFQ9Ri5kaXYubmVnKCkpLHtkaXY6VCxtb2Q6Ri5tb2R9KTowIT0odGhpcy5uZWdhdGl2ZSZ4Lm5lZ2F0aXZlKT8oRj10aGlzLm5lZygpLmRpdm1vZCh4Lm5lZygpLFApLCJkaXYiIT09UCYmKFM9Ri5tb2QubmVnKCksViYmMCE9PVMubmVnYXRpdmUmJlMuaXN1Yih4''@;'; + put 'put ''KSkse2RpdjpGLmRpdixtb2Q6U30pOngubGVuZ3RoPnRoaXMubGVuZ3RofHx0aGlzLmNtcCh4KTwwP3tkaXY6bmV3IE4oMCksbW9kOnRoaXN9OjE9PT14Lmxlbmd0aD8iZGl2Ij09PVA/e2Rpdjp0aGlzLmRpdm4oeC53b3Jkc1swXSksbW9kOm51bGx9OiJtb2QiPT09UD97ZGl2Om51bGwsbW9k''@;'; + put 'put ''Om5ldyBOKHRoaXMubW9kbih4LndvcmRzWzBdKSl9OntkaXY6dGhpcy5kaXZuKHgud29yZHNbMF0pLG1vZDpuZXcgTih0aGlzLm1vZG4oeC53b3Jkc1swXSkpfTp0aGlzLl93b3JkRGl2KHgsUCk7dmFyIFQsUyxGfSxOLnByb3RvdHlwZS5kaXY9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuZGl2''@;'; + put 'put ''bW9kKHgsImRpdiIsITEpLmRpdn0sTi5wcm90b3R5cGUubW9kPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmRpdm1vZCh4LCJtb2QiLCExKS5tb2R9LE4ucHJvdG90eXBlLnVtb2Q9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuZGl2bW9kKHgsIm1vZCIsITApLm1vZH0sTi5wcm90b3R5cGUuZGl2''@;'; + put 'put ''Um91bmQ9ZnVuY3Rpb24oeCl7dmFyIFA9dGhpcy5kaXZtb2QoeCk7aWYoUC5tb2QuaXNaZXJvKCkpcmV0dXJuIFAuZGl2O3ZhciBWPTAhPT1QLmRpdi5uZWdhdGl2ZT9QLm1vZC5pc3ViKHgpOlAubW9kLFQ9eC51c2hybigxKSxTPXguYW5kbG4oMSksRj1WLmNtcChUKTtyZXR1cm4gRjwwfHwx''@;'; + put 'put ''PT09UyYmMD09PUY/UC5kaXY6MCE9PVAuZGl2Lm5lZ2F0aXZlP1AuZGl2LmlzdWJuKDEpOlAuZGl2LmlhZGRuKDEpfSxOLnByb3RvdHlwZS5tb2RuPWZ1bmN0aW9uKHgpe1koeDw9NjcxMDg4NjMpO2Zvcih2YXIgUD02NzEwODg2NCV4LFY9MCxUPXRoaXMubGVuZ3RoLTE7VD49MDtULS0pVj0o''@;'; + put 'put ''UCpWKygwfHRoaXMud29yZHNbVF0pKSV4O3JldHVybiBWfSxOLnByb3RvdHlwZS5pZGl2bj1mdW5jdGlvbih4KXtZKHg8PTY3MTA4ODYzKTtmb3IodmFyIFA9MCxWPXRoaXMubGVuZ3RoLTE7Vj49MDtWLS0pe3ZhciBUPSgwfHRoaXMud29yZHNbVl0pKzY3MTA4ODY0KlA7dGhpcy53b3Jkc1tW''@;'; + put 'put ''XT1UL3h8MCxQPVQleH1yZXR1cm4gdGhpcy5zdHJpcCgpfSxOLnByb3RvdHlwZS5kaXZuPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmNsb25lKCkuaWRpdm4oeCl9LE4ucHJvdG90eXBlLmVnY2Q9ZnVuY3Rpb24oeCl7WSgwPT09eC5uZWdhdGl2ZSksWSgheC5pc1plcm8oKSk7dmFyIFA9dGhp''@;'; + put 'put ''cyxWPXguY2xvbmUoKTtQPTAhPT1QLm5lZ2F0aXZlP1AudW1vZCh4KTpQLmNsb25lKCk7Zm9yKHZhciBUPW5ldyBOKDEpLFM9bmV3IE4oMCksRj1uZXcgTigwKSx5ZT1uZXcgTigxKSxDZT0wO1AuaXNFdmVuKCkmJlYuaXNFdmVuKCk7KVAuaXVzaHJuKDEpLFYuaXVzaHJuKDEpLCsrQ2U7Zm9y''@;'; + put 'put ''KHZhciBEZT1WLmNsb25lKCksUGU9UC5jbG9uZSgpOyFQLmlzWmVybygpOyl7Zm9yKHZhciBRZT0wLCRlPTE7MD09KFAud29yZHNbMF0mJGUpJiZRZTwyNjsrK1FlLCRlPDw9MSk7aWYoUWU+MClmb3IoUC5pdXNocm4oUWUpO1FlLS0gPjA7KShULmlzT2RkKCl8fFMuaXNPZGQoKSkmJihULmlh''@;'; + put 'put ''ZGQoRGUpLFMuaXN1YihQZSkpLFQuaXVzaHJuKDEpLFMuaXVzaHJuKDEpO2Zvcih2YXIgZ3Q9MCx3dD0xOzA9PShWLndvcmRzWzBdJnd0KSYmZ3Q8MjY7KytndCx3dDw8PTEpO2lmKGd0PjApZm9yKFYuaXVzaHJuKGd0KTtndC0tID4wOykoRi5pc09kZCgpfHx5ZS5pc09kZCgpKSYmKEYuaWFk''@;'; + put 'put ''ZChEZSkseWUuaXN1YihQZSkpLEYuaXVzaHJuKDEpLHllLml1c2hybigxKTtQLmNtcChWKT49MD8oUC5pc3ViKFYpLFQuaXN1YihGKSxTLmlzdWIoeWUpKTooVi5pc3ViKFApLEYuaXN1YihUKSx5ZS5pc3ViKFMpKX1yZXR1cm57YTpGLGI6eWUsZ2NkOlYuaXVzaGxuKENlKX19LE4ucHJvdG90''@;'; + put 'put ''eXBlLl9pbnZtcD1mdW5jdGlvbih4KXtZKDA9PT14Lm5lZ2F0aXZlKSxZKCF4LmlzWmVybygpKTt2YXIgUD10aGlzLFY9eC5jbG9uZSgpO1A9MCE9PVAubmVnYXRpdmU/UC51bW9kKHgpOlAuY2xvbmUoKTtmb3IodmFyIFQsUz1uZXcgTigxKSxGPW5ldyBOKDApLHllPVYuY2xvbmUoKTtQLmNt''@;'; + put 'put ''cG4oMSk+MCYmVi5jbXBuKDEpPjA7KXtmb3IodmFyIENlPTAsRGU9MTswPT0oUC53b3Jkc1swXSZEZSkmJkNlPDI2OysrQ2UsRGU8PD0xKTtpZihDZT4wKWZvcihQLml1c2hybihDZSk7Q2UtLSA+MDspUy5pc09kZCgpJiZTLmlhZGQoeWUpLFMuaXVzaHJuKDEpO2Zvcih2YXIgUGU9MCxRZT0x''@;'; + put 'put ''OzA9PShWLndvcmRzWzBdJlFlKSYmUGU8MjY7KytQZSxRZTw8PTEpO2lmKFBlPjApZm9yKFYuaXVzaHJuKFBlKTtQZS0tID4wOylGLmlzT2RkKCkmJkYuaWFkZCh5ZSksRi5pdXNocm4oMSk7UC5jbXAoVik+PTA/KFAuaXN1YihWKSxTLmlzdWIoRikpOihWLmlzdWIoUCksRi5pc3ViKFMpKX1y''@;'; + put 'put ''ZXR1cm4oVD0wPT09UC5jbXBuKDEpP1M6RikuY21wbigwKTwwJiZULmlhZGQoeCksVH0sTi5wcm90b3R5cGUuZ2NkPWZ1bmN0aW9uKHgpe2lmKHRoaXMuaXNaZXJvKCkpcmV0dXJuIHguYWJzKCk7aWYoeC5pc1plcm8oKSlyZXR1cm4gdGhpcy5hYnMoKTt2YXIgUD10aGlzLmNsb25lKCksVj14''@;'; + put 'put ''LmNsb25lKCk7UC5uZWdhdGl2ZT0wLFYubmVnYXRpdmU9MDtmb3IodmFyIFQ9MDtQLmlzRXZlbigpJiZWLmlzRXZlbigpO1QrKylQLml1c2hybigxKSxWLml1c2hybigxKTtmb3IoOzspe2Zvcig7UC5pc0V2ZW4oKTspUC5pdXNocm4oMSk7Zm9yKDtWLmlzRXZlbigpOylWLml1c2hybigxKTt2''@;'; + put 'put ''YXIgUz1QLmNtcChWKTtpZihTPDApe3ZhciBGPVA7UD1WLFY9Rn1lbHNlIGlmKDA9PT1TfHwwPT09Vi5jbXBuKDEpKWJyZWFrO1AuaXN1YihWKX1yZXR1cm4gVi5pdXNobG4oVCl9LE4ucHJvdG90eXBlLmludm09ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuZWdjZCh4KS5hLnVtb2QoeCl9LE4u''@;'; + put 'put ''cHJvdG90eXBlLmlzRXZlbj1mdW5jdGlvbigpe3JldHVybiAwPT0oMSZ0aGlzLndvcmRzWzBdKX0sTi5wcm90b3R5cGUuaXNPZGQ9ZnVuY3Rpb24oKXtyZXR1cm4gMT09KDEmdGhpcy53b3Jkc1swXSl9LE4ucHJvdG90eXBlLmFuZGxuPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLndvcmRzWzBd''@;'; + put 'put ''Jnh9LE4ucHJvdG90eXBlLmJpbmNuPWZ1bmN0aW9uKHgpe1koIm51bWJlciI9PXR5cGVvZiB4KTt2YXIgUD14JTI2LFY9KHgtUCkvMjYsVD0xPDxQO2lmKHRoaXMubGVuZ3RoPD1WKXJldHVybiB0aGlzLl9leHBhbmQoVisxKSx0aGlzLndvcmRzW1ZdfD1ULHRoaXM7Zm9yKHZhciBTPVQsRj1W''@;'; + put 'put ''OzAhPT1TJiZGPHRoaXMubGVuZ3RoO0YrKyl7dmFyIHllPTB8dGhpcy53b3Jkc1tGXTtTPSh5ZSs9Uyk+Pj4yNix0aGlzLndvcmRzW0ZdPXllJj02NzEwODg2M31yZXR1cm4gMCE9PVMmJih0aGlzLndvcmRzW0ZdPVMsdGhpcy5sZW5ndGgrKyksdGhpc30sTi5wcm90b3R5cGUuaXNaZXJvPWZ1''@;'; + put 'put ''bmN0aW9uKCl7cmV0dXJuIDE9PT10aGlzLmxlbmd0aCYmMD09PXRoaXMud29yZHNbMF19LE4ucHJvdG90eXBlLmNtcG49ZnVuY3Rpb24oeCl7dmFyIFAsVj14PDA7aWYoMCE9PXRoaXMubmVnYXRpdmUmJiFWKXJldHVybi0xO2lmKDA9PT10aGlzLm5lZ2F0aXZlJiZWKXJldHVybiAxO2lmKHRo''@;'; + put 'put ''aXMuc3RyaXAoKSx0aGlzLmxlbmd0aD4xKVA9MTtlbHNle1YmJih4PS14KSxZKHg8PTY3MTA4ODYzLCJOdW1iZXIgaXMgdG9vIGJpZyIpO3ZhciBUPTB8dGhpcy53b3Jkc1swXTtQPVQ9PT14PzA6VDx4Py0xOjF9cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlPzB8LVA6UH0sTi5wcm90b3R5cGUu''@;'; + put 'put ''Y21wPWZ1bmN0aW9uKHgpe2lmKDAhPT10aGlzLm5lZ2F0aXZlJiYwPT09eC5uZWdhdGl2ZSlyZXR1cm4tMTtpZigwPT09dGhpcy5uZWdhdGl2ZSYmMCE9PXgubmVnYXRpdmUpcmV0dXJuIDE7dmFyIFA9dGhpcy51Y21wKHgpO3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZT8wfC1QOlB9LE4ucHJv''@;'; + put 'put ''dG90eXBlLnVjbXA9ZnVuY3Rpb24oeCl7aWYodGhpcy5sZW5ndGg+eC5sZW5ndGgpcmV0dXJuIDE7aWYodGhpcy5sZW5ndGg8eC5sZW5ndGgpcmV0dXJuLTE7Zm9yKHZhciBQPTAsVj10aGlzLmxlbmd0aC0xO1Y+PTA7Vi0tKXt2YXIgVD0wfHRoaXMud29yZHNbVl0sUz0wfHgud29yZHNbVl07''@;'; + put 'put ''aWYoVCE9PVMpe1Q8Uz9QPS0xOlQ+UyYmKFA9MSk7YnJlYWt9fXJldHVybiBQfSxOLnByb3RvdHlwZS5ndG49ZnVuY3Rpb24oeCl7cmV0dXJuIDE9PT10aGlzLmNtcG4oeCl9LE4ucHJvdG90eXBlLmd0PWZ1bmN0aW9uKHgpe3JldHVybiAxPT09dGhpcy5jbXAoeCl9LE4ucHJvdG90eXBlLmd0''@;'; + put 'put ''ZW49ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuY21wbih4KT49MH0sTi5wcm90b3R5cGUuZ3RlPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmNtcCh4KT49MH0sTi5wcm90b3R5cGUubHRuPWZ1bmN0aW9uKHgpe3JldHVybi0xPT09dGhpcy5jbXBuKHgpfSxOLnByb3RvdHlwZS5sdD1mdW5jdGlv''@;'; + put 'put ''bih4KXtyZXR1cm4tMT09PXRoaXMuY21wKHgpfSxOLnByb3RvdHlwZS5sdGVuPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmNtcG4oeCk8PTB9LE4ucHJvdG90eXBlLmx0ZT1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5jbXAoeCk8PTB9LE4ucHJvdG90eXBlLmVxbj1mdW5jdGlvbih4KXtyZXR1''@;'; + put 'put ''cm4gMD09PXRoaXMuY21wbih4KX0sTi5wcm90b3R5cGUuZXE9ZnVuY3Rpb24oeCl7cmV0dXJuIDA9PT10aGlzLmNtcCh4KX0sTi5yZWQ9ZnVuY3Rpb24oeCl7cmV0dXJuIG5ldyBuZSh4KX0sTi5wcm90b3R5cGUudG9SZWQ9ZnVuY3Rpb24oeCl7cmV0dXJuIFkoIXRoaXMucmVkLCJBbHJlYWR5''@;'; + put 'put ''IGEgbnVtYmVyIGluIHJlZHVjdGlvbiBjb250ZXh0IiksWSgwPT09dGhpcy5uZWdhdGl2ZSwicmVkIHdvcmtzIG9ubHkgd2l0aCBwb3NpdGl2ZXMiKSx4LmNvbnZlcnRUbyh0aGlzKS5fZm9yY2VSZWQoeCl9LE4ucHJvdG90eXBlLmZyb21SZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gWSh0aGlzLnJl''@;'; + put 'put ''ZCwiZnJvbVJlZCB3b3JrcyBvbmx5IHdpdGggbnVtYmVycyBpbiByZWR1Y3Rpb24gY29udGV4dCIpLHRoaXMucmVkLmNvbnZlcnRGcm9tKHRoaXMpfSxOLnByb3RvdHlwZS5fZm9yY2VSZWQ9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMucmVkPXgsdGhpc30sTi5wcm90b3R5cGUuZm9yY2VSZWQ9''@;'; + put 'put ''ZnVuY3Rpb24oeCl7cmV0dXJuIFkoIXRoaXMucmVkLCJBbHJlYWR5IGEgbnVtYmVyIGluIHJlZHVjdGlvbiBjb250ZXh0IiksdGhpcy5fZm9yY2VSZWQoeCl9LE4ucHJvdG90eXBlLnJlZEFkZD1mdW5jdGlvbih4KXtyZXR1cm4gWSh0aGlzLnJlZCwicmVkQWRkIHdvcmtzIG9ubHkgd2l0aCBy''@;'; + put 'put ''ZWQgbnVtYmVycyIpLHRoaXMucmVkLmFkZCh0aGlzLHgpfSxOLnByb3RvdHlwZS5yZWRJQWRkPWZ1bmN0aW9uKHgpe3JldHVybiBZKHRoaXMucmVkLCJyZWRJQWRkIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLmlhZGQodGhpcyx4KX0sTi5wcm90b3R5cGUucmVkU3Vi''@;'; + put 'put ''PWZ1bmN0aW9uKHgpe3JldHVybiBZKHRoaXMucmVkLCJyZWRTdWIgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuc3ViKHRoaXMseCl9LE4ucHJvdG90eXBlLnJlZElTdWI9ZnVuY3Rpb24oeCl7cmV0dXJuIFkodGhpcy5yZWQsInJlZElTdWIgd29ya3Mgb25seSB3aXRo''@;'; + put 'put ''IHJlZCBudW1iZXJzIiksdGhpcy5yZWQuaXN1Yih0aGlzLHgpfSxOLnByb3RvdHlwZS5yZWRTaGw9ZnVuY3Rpb24oeCl7cmV0dXJuIFkodGhpcy5yZWQsInJlZFNobCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5zaGwodGhpcyx4KX0sTi5wcm90b3R5cGUucmVkTXVs''@;'; + put 'put ''PWZ1bmN0aW9uKHgpe3JldHVybiBZKHRoaXMucmVkLCJyZWRNdWwgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTIodGhpcyx4KSx0aGlzLnJlZC5tdWwodGhpcyx4KX0sTi5wcm90b3R5cGUucmVkSU11bD1mdW5jdGlvbih4KXtyZXR1cm4gWSh0aGlzLnJl''@;'; + put 'put ''ZCwicmVkTXVsIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkyKHRoaXMseCksdGhpcy5yZWQuaW11bCh0aGlzLHgpfSxOLnByb3RvdHlwZS5yZWRTcXI9ZnVuY3Rpb24oKXtyZXR1cm4gWSh0aGlzLnJlZCwicmVkU3FyIHdvcmtzIG9ubHkgd2l0aCByZWQg''@;'; + put 'put ''bnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLnNxcih0aGlzKX0sTi5wcm90b3R5cGUucmVkSVNxcj1mdW5jdGlvbigpe3JldHVybiBZKHRoaXMucmVkLCJyZWRJU3FyIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMp''@;'; + put 'put ''LHRoaXMucmVkLmlzcXIodGhpcyl9LE4ucHJvdG90eXBlLnJlZFNxcnQ9ZnVuY3Rpb24oKXtyZXR1cm4gWSh0aGlzLnJlZCwicmVkU3FydCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5zcXJ0KHRoaXMpfSxOLnByb3RvdHlw''@;'; + put 'put ''ZS5yZWRJbnZtPWZ1bmN0aW9uKCl7cmV0dXJuIFkodGhpcy5yZWQsInJlZEludm0gd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQuaW52bSh0aGlzKX0sTi5wcm90b3R5cGUucmVkTmVnPWZ1bmN0aW9uKCl7cmV0dXJuIFkodGhp''@;'; + put 'put ''cy5yZWQsInJlZE5lZyB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5uZWcodGhpcyl9LE4ucHJvdG90eXBlLnJlZFBvdz1mdW5jdGlvbih4KXtyZXR1cm4gWSh0aGlzLnJlZCYmIXgucmVkLCJyZWRQb3cobm9ybWFsTnVtKSIp''@;'; + put 'put ''LHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLnBvdyh0aGlzLHgpfTt2YXIgSWU9e2syNTY6bnVsbCxwMjI0Om51bGwscDE5MjpudWxsLHAyNTUxOTpudWxsfTtmdW5jdGlvbiBUZSh4LFApe3RoaXMubmFtZT14LHRoaXMucD1uZXcgTihQLDE2KSx0aGlzLm49dGhpcy5wLmJpdExl''@;'; + put 'put ''bmd0aCgpLHRoaXMuaz1uZXcgTigxKS5pdXNobG4odGhpcy5uKS5pc3ViKHRoaXMucCksdGhpcy50bXA9dGhpcy5fdG1wKCl9ZnVuY3Rpb24gRWUoKXtUZS5jYWxsKHRoaXMsImsyNTYiLCJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZm''@;'; + put 'put ''ZmZmZSBmZmZmZmMyZiIpfWZ1bmN0aW9uIGhlKCl7VGUuY2FsbCh0aGlzLCJwMjI0IiwiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgMDAwMDAwMDAgMDAwMDAwMDAgMDAwMDAwMDEiKX1mdW5jdGlvbiBPKCl7VGUuY2FsbCh0aGlzLCJwMTkyIiwiZmZmZmZmZmYgZmZmZmZm''@;'; + put 'put ''ZmYgZmZmZmZmZmYgZmZmZmZmZmUgZmZmZmZmZmYgZmZmZmZmZmYiKX1mdW5jdGlvbiB6KCl7VGUuY2FsbCh0aGlzLCIyNTUxOSIsIjdmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZWQiKX1mdW5jdGlvbiBuZSh4KXtpZigi''@;'; + put 'put ''c3RyaW5nIj09dHlwZW9mIHgpe3ZhciBQPU4uX3ByaW1lKHgpO3RoaXMubT1QLnAsdGhpcy5wcmltZT1QfWVsc2UgWSh4Lmd0bigxKSwibW9kdWx1cyBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAxIiksdGhpcy5tPXgsdGhpcy5wcmltZT1udWxsfWZ1bmN0aW9uIHRlKHgpe25lLmNhbGwodGhpcyx4''@;'; + put 'put ''KSx0aGlzLnNoaWZ0PXRoaXMubS5iaXRMZW5ndGgoKSx0aGlzLnNoaWZ0JTI2IT0wJiYodGhpcy5zaGlmdCs9MjYtdGhpcy5zaGlmdCUyNiksdGhpcy5yPW5ldyBOKDEpLml1c2hsbih0aGlzLnNoaWZ0KSx0aGlzLnIyPXRoaXMuaW1vZCh0aGlzLnIuc3FyKCkpLHRoaXMucmludj10aGlzLnIu''@;'; + put 'put ''X2ludm1wKHRoaXMubSksdGhpcy5taW52PXRoaXMucmludi5tdWwodGhpcy5yKS5pc3VibigxKS5kaXYodGhpcy5tKSx0aGlzLm1pbnY9dGhpcy5taW52LnVtb2QodGhpcy5yKSx0aGlzLm1pbnY9dGhpcy5yLnN1Yih0aGlzLm1pbnYpfVRlLnByb3RvdHlwZS5fdG1wPWZ1bmN0aW9uKCl7dmFy''@;'; + put 'put ''IHg9bmV3IE4obnVsbCk7cmV0dXJuIHgud29yZHM9bmV3IEFycmF5KE1hdGguY2VpbCh0aGlzLm4vMTMpKSx4fSxUZS5wcm90b3R5cGUuaXJlZHVjZT1mdW5jdGlvbih4KXt2YXIgUCxWPXg7ZG97dGhpcy5zcGxpdChWLHRoaXMudG1wKSxQPShWPShWPXRoaXMuaW11bEsoVikpLmlhZGQodGhp''@;'; + put 'put ''cy50bXApKS5iaXRMZW5ndGgoKX13aGlsZShQPnRoaXMubik7dmFyIFQ9UDx0aGlzLm4/LTE6Vi51Y21wKHRoaXMucCk7cmV0dXJuIDA9PT1UPyhWLndvcmRzWzBdPTAsVi5sZW5ndGg9MSk6VD4wP1YuaXN1Yih0aGlzLnApOnZvaWQgMCE9PVYuc3RyaXA/Vi5zdHJpcCgpOlYuX3N0cmlwKCks''@;'; + put 'put ''Vn0sVGUucHJvdG90eXBlLnNwbGl0PWZ1bmN0aW9uKHgsUCl7eC5pdXNocm4odGhpcy5uLDAsUCl9LFRlLnByb3RvdHlwZS5pbXVsSz1mdW5jdGlvbih4KXtyZXR1cm4geC5pbXVsKHRoaXMuayl9LFcoRWUsVGUpLEVlLnByb3RvdHlwZS5zcGxpdD1mdW5jdGlvbih4LFApe2Zvcih2YXIgVj00''@;'; + put 'put ''MTk0MzAzLFQ9TWF0aC5taW4oeC5sZW5ndGgsOSksUz0wO1M8VDtTKyspUC53b3Jkc1tTXT14LndvcmRzW1NdO2lmKFAubGVuZ3RoPVQseC5sZW5ndGg8PTkpcmV0dXJuIHgud29yZHNbMF09MCx2b2lkKHgubGVuZ3RoPTEpO3ZhciBGPXgud29yZHNbOV07Zm9yKFAud29yZHNbUC5sZW5ndGgr''@;'; + put 'put ''K109RiZWLFM9MTA7Uzx4Lmxlbmd0aDtTKyspe3ZhciB5ZT0wfHgud29yZHNbU107eC53b3Jkc1tTLTEwXT0oeWUmVik8PDR8Rj4+PjIyLEY9eWV9eC53b3Jkc1tTLTEwXT1GPj4+PTIyLHgubGVuZ3RoLT0wPT09RiYmeC5sZW5ndGg+MTA/MTA6OX0sRWUucHJvdG90eXBlLmltdWxLPWZ1bmN0''@;'; + put 'put ''aW9uKHgpe3gud29yZHNbeC5sZW5ndGhdPTAseC53b3Jkc1t4Lmxlbmd0aCsxXT0wLHgubGVuZ3RoKz0yO2Zvcih2YXIgUD0wLFY9MDtWPHgubGVuZ3RoO1YrKyl7dmFyIFQ9MHx4LndvcmRzW1ZdO3gud29yZHNbVl09NjcxMDg4NjMmKFArPTk3NypUKSxQPTY0KlQrKFAvNjcxMDg4NjR8MCl9''@;'; + put 'put ''cmV0dXJuIDA9PT14LndvcmRzW3gubGVuZ3RoLTFdJiYoeC5sZW5ndGgtLSwwPT09eC53b3Jkc1t4Lmxlbmd0aC0xXSYmeC5sZW5ndGgtLSkseH0sVyhoZSxUZSksVyhPLFRlKSxXKHosVGUpLHoucHJvdG90eXBlLmltdWxLPWZ1bmN0aW9uKHgpe2Zvcih2YXIgUD0wLFY9MDtWPHgubGVuZ3Ro''@;'; + put 'put ''O1YrKyl7dmFyIFQ9MTkqKDB8eC53b3Jkc1tWXSkrUCxTPTY3MTA4ODYzJlQ7VD4+Pj0yNix4LndvcmRzW1ZdPVMsUD1UfXJldHVybiAwIT09UCYmKHgud29yZHNbeC5sZW5ndGgrK109UCkseH0sTi5fcHJpbWU9ZnVuY3Rpb24oeCl7aWYoSWVbeF0pcmV0dXJuIEllW3hdO3ZhciBQO2lmKCJr''@;'; + put 'put ''MjU2Ij09PXgpUD1uZXcgRWU7ZWxzZSBpZigicDIyNCI9PT14KVA9bmV3IGhlO2Vsc2UgaWYoInAxOTIiPT09eClQPW5ldyBPO2Vsc2V7aWYoInAyNTUxOSIhPT14KXRocm93IG5ldyBFcnJvcigiVW5rbm93biBwcmltZSAiK3gpO1A9bmV3IHp9cmV0dXJuIEllW3hdPVAsUH0sbmUucHJvdG90''@;'; + put 'put ''eXBlLl92ZXJpZnkxPWZ1bmN0aW9uKHgpe1koMD09PXgubmVnYXRpdmUsInJlZCB3b3JrcyBvbmx5IHdpdGggcG9zaXRpdmVzIiksWSh4LnJlZCwicmVkIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpfSxuZS5wcm90b3R5cGUuX3ZlcmlmeTI9ZnVuY3Rpb24oeCxQKXtZKDA9PSh4Lm5l''@;'; + put 'put ''Z2F0aXZlfFAubmVnYXRpdmUpLCJyZWQgd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlcyIpLFkoeC5yZWQmJngucmVkPT09UC5yZWQsInJlZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKX0sbmUucHJvdG90eXBlLmltb2Q9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMucHJpbWU/dGhpcy5w''@;'; + put 'put ''cmltZS5pcmVkdWNlKHgpLl9mb3JjZVJlZCh0aGlzKTp4LnVtb2QodGhpcy5tKS5fZm9yY2VSZWQodGhpcyl9LG5lLnByb3RvdHlwZS5uZWc9ZnVuY3Rpb24oeCl7cmV0dXJuIHguaXNaZXJvKCk/eC5jbG9uZSgpOnRoaXMubS5zdWIoeCkuX2ZvcmNlUmVkKHRoaXMpfSxuZS5wcm90b3R5cGUu''@;'; + put 'put ''YWRkPWZ1bmN0aW9uKHgsUCl7dGhpcy5fdmVyaWZ5Mih4LFApO3ZhciBWPXguYWRkKFApO3JldHVybiBWLmNtcCh0aGlzLm0pPj0wJiZWLmlzdWIodGhpcy5tKSxWLl9mb3JjZVJlZCh0aGlzKX0sbmUucHJvdG90eXBlLmlhZGQ9ZnVuY3Rpb24oeCxQKXt0aGlzLl92ZXJpZnkyKHgsUCk7dmFy''@;'; + put 'put ''IFY9eC5pYWRkKFApO3JldHVybiBWLmNtcCh0aGlzLm0pPj0wJiZWLmlzdWIodGhpcy5tKSxWfSxuZS5wcm90b3R5cGUuc3ViPWZ1bmN0aW9uKHgsUCl7dGhpcy5fdmVyaWZ5Mih4LFApO3ZhciBWPXguc3ViKFApO3JldHVybiBWLmNtcG4oMCk8MCYmVi5pYWRkKHRoaXMubSksVi5fZm9yY2VS''@;'; + put 'put ''ZWQodGhpcyl9LG5lLnByb3RvdHlwZS5pc3ViPWZ1bmN0aW9uKHgsUCl7dGhpcy5fdmVyaWZ5Mih4LFApO3ZhciBWPXguaXN1YihQKTtyZXR1cm4gVi5jbXBuKDApPDAmJlYuaWFkZCh0aGlzLm0pLFZ9LG5lLnByb3RvdHlwZS5zaGw9ZnVuY3Rpb24oeCxQKXtyZXR1cm4gdGhpcy5fdmVyaWZ5''@;'; + put 'put ''MSh4KSx0aGlzLmltb2QoeC51c2hsbihQKSl9LG5lLnByb3RvdHlwZS5pbXVsPWZ1bmN0aW9uKHgsUCl7cmV0dXJuIHRoaXMuX3ZlcmlmeTIoeCxQKSx0aGlzLmltb2QoeC5pbXVsKFApKX0sbmUucHJvdG90eXBlLm11bD1mdW5jdGlvbih4LFApe3JldHVybiB0aGlzLl92ZXJpZnkyKHgsUCks''@;'; + put 'put ''dGhpcy5pbW9kKHgubXVsKFApKX0sbmUucHJvdG90eXBlLmlzcXI9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuaW11bCh4LHguY2xvbmUoKSl9LG5lLnByb3RvdHlwZS5zcXI9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMubXVsKHgseCl9LG5lLnByb3RvdHlwZS5zcXJ0PWZ1bmN0aW9uKHgpe2lm''@;'; + put 'put ''KHguaXNaZXJvKCkpcmV0dXJuIHguY2xvbmUoKTt2YXIgUD10aGlzLm0uYW5kbG4oMyk7aWYoWShQJTI9PTEpLDM9PT1QKXt2YXIgVj10aGlzLm0uYWRkKG5ldyBOKDEpKS5pdXNocm4oMik7cmV0dXJuIHRoaXMucG93KHgsVil9Zm9yKHZhciBUPXRoaXMubS5zdWJuKDEpLFM9MDshVC5pc1pl''@;'; + put 'put ''cm8oKSYmMD09PVQuYW5kbG4oMSk7KVMrKyxULml1c2hybigxKTtZKCFULmlzWmVybygpKTt2YXIgRj1uZXcgTigxKS50b1JlZCh0aGlzKSx5ZT1GLnJlZE5lZygpLENlPXRoaXMubS5zdWJuKDEpLml1c2hybigxKSxEZT10aGlzLm0uYml0TGVuZ3RoKCk7Zm9yKERlPW5ldyBOKDIqRGUqRGUp''@;'; + put 'put ''LnRvUmVkKHRoaXMpOzAhPT10aGlzLnBvdyhEZSxDZSkuY21wKHllKTspRGUucmVkSUFkZCh5ZSk7Zm9yKHZhciBQZT10aGlzLnBvdyhEZSxUKSxRZT10aGlzLnBvdyh4LFQuYWRkbigxKS5pdXNocm4oMSkpLCRlPXRoaXMucG93KHgsVCksZ3Q9UzswIT09JGUuY21wKEYpOyl7Zm9yKHZhciB3''@;'; + put 'put ''dD0kZSxtdD0wOzAhPT13dC5jbXAoRik7bXQrKyl3dD13dC5yZWRTcXIoKTtZKG10PGd0KTt2YXIgdnQ9dGhpcy5wb3coUGUsbmV3IE4oMSkuaXVzaGxuKGd0LW10LTEpKTtRZT1RZS5yZWRNdWwodnQpLFBlPXZ0LnJlZFNxcigpLCRlPSRlLnJlZE11bChQZSksZ3Q9bXR9cmV0dXJuIFFlfSxu''@;'; + put 'put ''ZS5wcm90b3R5cGUuaW52bT1mdW5jdGlvbih4KXt2YXIgUD14Ll9pbnZtcCh0aGlzLm0pO3JldHVybiAwIT09UC5uZWdhdGl2ZT8oUC5uZWdhdGl2ZT0wLHRoaXMuaW1vZChQKS5yZWROZWcoKSk6dGhpcy5pbW9kKFApfSxuZS5wcm90b3R5cGUucG93PWZ1bmN0aW9uKHgsUCl7aWYoUC5pc1pl''@;'; + put 'put ''cm8oKSlyZXR1cm4gbmV3IE4oMSkudG9SZWQodGhpcyk7aWYoMD09PVAuY21wbigxKSlyZXR1cm4geC5jbG9uZSgpO3ZhciBWPW5ldyBBcnJheSgxNik7VlswXT1uZXcgTigxKS50b1JlZCh0aGlzKSxWWzFdPXg7Zm9yKHZhciBUPTI7VDxWLmxlbmd0aDtUKyspVltUXT10aGlzLm11bChWW1Qt''@;'; + put 'put ''MV0seCk7dmFyIFM9VlswXSxGPTAseWU9MCxDZT1QLmJpdExlbmd0aCgpJTI2O2ZvcigwPT09Q2UmJihDZT0yNiksVD1QLmxlbmd0aC0xO1Q+PTA7VC0tKXtmb3IodmFyIERlPVAud29yZHNbVF0sUGU9Q2UtMTtQZT49MDtQZS0tKXt2YXIgUWU9RGU+PlBlJjE7UyE9PVZbMF0mJihTPXRoaXMu''@;'; + put 'put ''c3FyKFMpKSwwIT09UWV8fDAhPT1GPyhGPDw9MSxGfD1RZSwoND09Kyt5ZXx8MD09PVQmJjA9PT1QZSkmJihTPXRoaXMubXVsKFMsVltGXSkseWU9MCxGPTApKTp5ZT0wfUNlPTI2fXJldHVybiBTfSxuZS5wcm90b3R5cGUuY29udmVydFRvPWZ1bmN0aW9uKHgpe3ZhciBQPXgudW1vZCh0aGlz''@;'; + put 'put ''Lm0pO3JldHVybiBQPT09eD9QLmNsb25lKCk6UH0sbmUucHJvdG90eXBlLmNvbnZlcnRGcm9tPWZ1bmN0aW9uKHgpe3ZhciBQPXguY2xvbmUoKTtyZXR1cm4gUC5yZWQ9bnVsbCxQfSxOLm1vbnQ9ZnVuY3Rpb24oeCl7cmV0dXJuIG5ldyB0ZSh4KX0sVyh0ZSxuZSksdGUucHJvdG90eXBlLmNv''@;'; + put 'put ''bnZlcnRUbz1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5pbW9kKHgudXNobG4odGhpcy5zaGlmdCkpfSx0ZS5wcm90b3R5cGUuY29udmVydEZyb209ZnVuY3Rpb24oeCl7dmFyIFA9dGhpcy5pbW9kKHgubXVsKHRoaXMucmludikpO3JldHVybiBQLnJlZD1udWxsLFB9LHRlLnByb3RvdHlwZS5p''@;'; + put 'put ''bXVsPWZ1bmN0aW9uKHgsUCl7aWYoeC5pc1plcm8oKXx8UC5pc1plcm8oKSlyZXR1cm4geC53b3Jkc1swXT0wLHgubGVuZ3RoPTEseDt2YXIgVj14LmltdWwoUCksVD1WLm1hc2tuKHRoaXMuc2hpZnQpLm11bCh0aGlzLm1pbnYpLmltYXNrbih0aGlzLnNoaWZ0KS5tdWwodGhpcy5tKSxTPVYu''@;'; + put 'put ''aXN1YihUKS5pdXNocm4odGhpcy5zaGlmdCksRj1TO3JldHVybiBTLmNtcCh0aGlzLm0pPj0wP0Y9Uy5pc3ViKHRoaXMubSk6Uy5jbXBuKDApPDAmJihGPVMuaWFkZCh0aGlzLm0pKSxGLl9mb3JjZVJlZCh0aGlzKX0sdGUucHJvdG90eXBlLm11bD1mdW5jdGlvbih4LFApe2lmKHguaXNaZXJv''@;'; + put 'put ''KCl8fFAuaXNaZXJvKCkpcmV0dXJuIG5ldyBOKDApLl9mb3JjZVJlZCh0aGlzKTt2YXIgVj14Lm11bChQKSxUPVYubWFza24odGhpcy5zaGlmdCkubXVsKHRoaXMubWludikuaW1hc2tuKHRoaXMuc2hpZnQpLm11bCh0aGlzLm0pLFM9Vi5pc3ViKFQpLml1c2hybih0aGlzLnNoaWZ0KSxGPVM7''@;'; + put 'put ''cmV0dXJuIFMuY21wKHRoaXMubSk+PTA/Rj1TLmlzdWIodGhpcy5tKTpTLmNtcG4oMCk8MCYmKEY9Uy5pYWRkKHRoaXMubSkpLEYuX2ZvcmNlUmVkKHRoaXMpfSx0ZS5wcm90b3R5cGUuaW52bT1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5pbW9kKHguX2ludm1wKHRoaXMubSkubXVsKHRoaXMu''@;'; + put 'put ''cjIpKS5fZm9yY2VSZWQodGhpcyl9fShVPVoubm1kKFUpLHRoaXMpfSwzNDgyOihVLFEsWik9PnsidXNlIHN0cmljdCI7dmFyIGllPVooNTcxNyksYWU9WigyMzE4KSxZPVooOTc4NSksVz1aKDkwNzIpLE49WigxMDI3KTtmdW5jdGlvbiBlZShxKXtOLmNhbGwodGhpcywiZGlnZXN0IiksdGhp''@;'; + put 'put ''cy5faGFzaD1xfWllKGVlLE4pLGVlLnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKHEpe3RoaXMuX2hhc2gudXBkYXRlKHEpfSxlZS5wcm90b3R5cGUuX2ZpbmFsPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2hhc2guZGlnZXN0KCl9LFUuZXhwb3J0cz1mdW5jdGlvbihxKXtyZXR1cm4ibWQ1''@;'; + put 'put ''Ij09PShxPXEudG9Mb3dlckNhc2UoKSk/bmV3IGFlOiJybWQxNjAiPT09cXx8InJpcGVtZDE2MCI9PT1xP25ldyBZOm5ldyBlZShXKHEpKX19LDgwMjg6KFUsUSxaKT0+e3ZhciBpZT1aKDIzMTgpO1UuZXhwb3J0cz1mdW5jdGlvbihhZSl7cmV0dXJuKG5ldyBpZSkudXBkYXRlKGFlKS5kaWdl''@;'; + put 'put ''c3QoKX19LDgzNTU6KFUsUSxaKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgaWU9Wig1NzE3KSxhZT1aKDEwMzEpLFk9WigxMDI3KSxXPVooOTUwOSkuQnVmZmVyLE49Wig4MDI4KSxlZT1aKDk3ODUpLHE9Wig5MDcyKSxKPVcuYWxsb2MoMTI4KTtmdW5jdGlvbiBzZShvZSxjZSl7WS5jYWxsKHRoaXMs''@;'; + put 'put ''ImRpZ2VzdCIpLCJzdHJpbmciPT10eXBlb2YgY2UmJihjZT1XLmZyb20oY2UpKTt2YXIgZGU9InNoYTUxMiI9PT1vZXx8InNoYTM4NCI9PT1vZT8xMjg6NjQ7dGhpcy5fYWxnPW9lLHRoaXMuX2tleT1jZSxjZS5sZW5ndGg+ZGU/Y2U9KCJybWQxNjAiPT09b2U/bmV3IGVlOnEob2UpKS51cGRh''@;'; + put 'put ''dGUoY2UpLmRpZ2VzdCgpOmNlLmxlbmd0aDxkZSYmKGNlPVcuY29uY2F0KFtjZSxKXSxkZSkpO2Zvcih2YXIgdmU9dGhpcy5faXBhZD1XLmFsbG9jVW5zYWZlKGRlKSxBZT10aGlzLl9vcGFkPVcuYWxsb2NVbnNhZmUoZGUpLGtlPTA7a2U8ZGU7a2UrKyl2ZVtrZV09NTReY2Vba2VdLEFlW2tl''@;'; + put 'put ''XT05Ml5jZVtrZV07dGhpcy5faGFzaD0icm1kMTYwIj09PW9lP25ldyBlZTpxKG9lKSx0aGlzLl9oYXNoLnVwZGF0ZSh2ZSl9aWUoc2UsWSksc2UucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24ob2Upe3RoaXMuX2hhc2gudXBkYXRlKG9lKX0sc2UucHJvdG90eXBlLl9maW5hbD1mdW5jdGlv''@;'; + put 'put ''bigpe3ZhciBvZT10aGlzLl9oYXNoLmRpZ2VzdCgpO3JldHVybigicm1kMTYwIj09PXRoaXMuX2FsZz9uZXcgZWU6cSh0aGlzLl9hbGcpKS51cGRhdGUodGhpcy5fb3BhZCkudXBkYXRlKG9lKS5kaWdlc3QoKX0sVS5leHBvcnRzPWZ1bmN0aW9uKG9lLGNlKXtyZXR1cm4icm1kMTYwIj09PShv''@;'; + put 'put ''ZT1vZS50b0xvd2VyQ2FzZSgpKXx8InJpcGVtZDE2MCI9PT1vZT9uZXcgc2UoInJtZDE2MCIsY2UpOiJtZDUiPT09b2U/bmV3IGFlKE4sY2UpOm5ldyBzZShvZSxjZSl9fSwxMDMxOihVLFEsWik9PnsidXNlIHN0cmljdCI7dmFyIGllPVooNTcxNyksYWU9Wig5NTA5KS5CdWZmZXIsWT1aKDEw''@;'; + put 'put ''MjcpLFc9YWUuYWxsb2MoMTI4KSxOPTY0O2Z1bmN0aW9uIGVlKHEsSil7WS5jYWxsKHRoaXMsImRpZ2VzdCIpLCJzdHJpbmciPT10eXBlb2YgSiYmKEo9YWUuZnJvbShKKSksdGhpcy5fYWxnPXEsdGhpcy5fa2V5PUosSi5sZW5ndGg+Tj9KPXEoSik6Si5sZW5ndGg8TiYmKEo9YWUuY29uY2F0''@;'; + put 'put ''KFtKLFddLE4pKTtmb3IodmFyIHNlPXRoaXMuX2lwYWQ9YWUuYWxsb2NVbnNhZmUoTiksb2U9dGhpcy5fb3BhZD1hZS5hbGxvY1Vuc2FmZShOKSxjZT0wO2NlPE47Y2UrKylzZVtjZV09NTReSltjZV0sb2VbY2VdPTkyXkpbY2VdO3RoaXMuX2hhc2g9W3NlXX1pZShlZSxZKSxlZS5wcm90b3R5''@;'; + put 'put ''cGUuX3VwZGF0ZT1mdW5jdGlvbihxKXt0aGlzLl9oYXNoLnB1c2gocSl9LGVlLnByb3RvdHlwZS5fZmluYWw9ZnVuY3Rpb24oKXt2YXIgcT10aGlzLl9hbGcoYWUuY29uY2F0KHRoaXMuX2hhc2gpKTtyZXR1cm4gdGhpcy5fYWxnKGFlLmNvbmNhdChbdGhpcy5fb3BhZCxxXSkpfSxVLmV4cG9y''@;'; + put 'put ''dHM9ZWV9LDU4MzU6KFUsUSxaKT0+eyJ1c2Ugc3RyaWN0IjtRLnJhbmRvbUJ5dGVzPVEucm5nPVEucHNldWRvUmFuZG9tQnl0ZXM9US5wcm5nPVooMTc5OCksUS5jcmVhdGVIYXNoPVEuSGFzaD1aKDM0ODIpLFEuY3JlYXRlSG1hYz1RLkhtYWM9Wig4MzU1KTt2YXIgaWU9Wig2MDQyKSxhZT1P''@;'; + put 'put ''YmplY3Qua2V5cyhpZSksWT1bInNoYTEiLCJzaGEyMjQiLCJzaGEyNTYiLCJzaGEzODQiLCJzaGE1MTIiLCJtZDUiLCJybWQxNjAiXS5jb25jYXQoYWUpO1EuZ2V0SGFzaGVzPWZ1bmN0aW9uKCl7cmV0dXJuIFl9O3ZhciBXPVooNTYzMik7US5wYmtkZjI9Vy5wYmtkZjIsUS5wYmtkZjJTeW5j''@;'; + put 'put ''PVcucGJrZGYyU3luYzt2YXIgTj1aKDM2MTQpO1EuQ2lwaGVyPU4uQ2lwaGVyLFEuY3JlYXRlQ2lwaGVyPU4uY3JlYXRlQ2lwaGVyLFEuQ2lwaGVyaXY9Ti5DaXBoZXJpdixRLmNyZWF0ZUNpcGhlcml2PU4uY3JlYXRlQ2lwaGVyaXYsUS5EZWNpcGhlcj1OLkRlY2lwaGVyLFEuY3JlYXRlRGVj''@;'; + put 'put ''aXBoZXI9Ti5jcmVhdGVEZWNpcGhlcixRLkRlY2lwaGVyaXY9Ti5EZWNpcGhlcml2LFEuY3JlYXRlRGVjaXBoZXJpdj1OLmNyZWF0ZURlY2lwaGVyaXYsUS5nZXRDaXBoZXJzPU4uZ2V0Q2lwaGVycyxRLmxpc3RDaXBoZXJzPU4ubGlzdENpcGhlcnM7dmFyIGVlPVooMjYwNyk7US5EaWZmaWVI''@;'; + put 'put ''ZWxsbWFuR3JvdXA9ZWUuRGlmZmllSGVsbG1hbkdyb3VwLFEuY3JlYXRlRGlmZmllSGVsbG1hbkdyb3VwPWVlLmNyZWF0ZURpZmZpZUhlbGxtYW5Hcm91cCxRLmdldERpZmZpZUhlbGxtYW49ZWUuZ2V0RGlmZmllSGVsbG1hbixRLmNyZWF0ZURpZmZpZUhlbGxtYW49ZWUuY3JlYXRlRGlmZmll''@;'; + put 'put ''SGVsbG1hbixRLkRpZmZpZUhlbGxtYW49ZWUuRGlmZmllSGVsbG1hbjt2YXIgcT1aKDQ3NDMpO1EuY3JlYXRlU2lnbj1xLmNyZWF0ZVNpZ24sUS5TaWduPXEuU2lnbixRLmNyZWF0ZVZlcmlmeT1xLmNyZWF0ZVZlcmlmeSxRLlZlcmlmeT1xLlZlcmlmeSxRLmNyZWF0ZUVDREg9Wig2MzkzKTt2''@;'; + put 'put ''YXIgSj1aKDc5MDApO1EucHVibGljRW5jcnlwdD1KLnB1YmxpY0VuY3J5cHQsUS5wcml2YXRlRW5jcnlwdD1KLnByaXZhdGVFbmNyeXB0LFEucHVibGljRGVjcnlwdD1KLnB1YmxpY0RlY3J5cHQsUS5wcml2YXRlRGVjcnlwdD1KLnByaXZhdGVEZWNyeXB0O3ZhciBzZT1aKDc5NjMpO1EucmFu''@;'; + put 'put ''ZG9tRmlsbD1zZS5yYW5kb21GaWxsLFEucmFuZG9tRmlsbFN5bmM9c2UucmFuZG9tRmlsbFN5bmMsUS5jcmVhdGVDcmVkZW50aWFscz1mdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcihbInNvcnJ5LCBjcmVhdGVDcmVkZW50aWFscyBpcyBub3QgaW1wbGVtZW50ZWQgeWV0Iiwid2UgYWNjZXB0''@;'; + put 'put ''IHB1bGwgcmVxdWVzdHMiLCJodHRwczovL2dpdGh1Yi5jb20vY3J5cHRvLWJyb3dzZXJpZnkvY3J5cHRvLWJyb3dzZXJpZnkiXS5qb2luKCJcbiIpKX0sUS5jb25zdGFudHM9e0RIX0NIRUNLX1BfTk9UX1NBRkVfUFJJTUU6MixESF9DSEVDS19QX05PVF9QUklNRToxLERIX1VOQUJMRV9UT19D''@;'; + put 'put ''SEVDS19HRU5FUkFUT1I6NCxESF9OT1RfU1VJVEFCTEVfR0VORVJBVE9SOjgsTlBOX0VOQUJMRUQ6MSxBTFBOX0VOQUJMRUQ6MSxSU0FfUEtDUzFfUEFERElORzoxLFJTQV9TU0xWMjNfUEFERElORzoyLFJTQV9OT19QQURESU5HOjMsUlNBX1BLQ1MxX09BRVBfUEFERElORzo0LFJTQV9YOTMx''@;'; + put 'put ''X1BBRERJTkc6NSxSU0FfUEtDUzFfUFNTX1BBRERJTkc6NixQT0lOVF9DT05WRVJTSU9OX0NPTVBSRVNTRUQ6MixQT0lOVF9DT05WRVJTSU9OX1VOQ09NUFJFU1NFRDo0LFBPSU5UX0NPTlZFUlNJT05fSFlCUklEOjZ9fSw1MDU2OihVLFEsWik9Pnt2YXIgaWU9Wig4NzY0KS5CdWZmZXI7Y29u''@;'; + put 'put ''c3R7VHJhbnNmb3JtOmFlfT1aKDI4MzApLFk9aWUuZnJvbShbMjM5LDE4NywxOTFdKTtjbGFzcyBXIGV4dGVuZHMgYWV7Y29uc3RydWN0b3IoRWU9e30pe3N1cGVyKGdzKHt3cml0YWJsZU9iamVjdE1vZGU6ITB9LEVlKSk7Y29uc3QgaGU9e307bGV0IE87Zm9yKGxldCB6IGluIEVlKWhlW0oo''@;'; + put 'put ''eildPUVlW3pdO2lmKE89dGhpcy5ub3JtYWxpemUoaGUpKXRocm93IE87c3dpdGNoKGhlLnJlY29yZF9kZWxpbWl0ZXIpe2Nhc2UiYXV0byI6aGUucmVjb3JkX2RlbGltaXRlcj1udWxsO2JyZWFrO2Nhc2UidW5peCI6aGUucmVjb3JkX2RlbGltaXRlcj0iXG4iO2JyZWFrO2Nhc2UibWFjIjpo''@;'; + put 'put ''ZS5yZWNvcmRfZGVsaW1pdGVyPSJcciI7YnJlYWs7Y2FzZSJ3aW5kb3dzIjpoZS5yZWNvcmRfZGVsaW1pdGVyPSJcclxuIjticmVhaztjYXNlImFzY2lpIjpoZS5yZWNvcmRfZGVsaW1pdGVyPSJceDFlIjticmVhaztjYXNlInVuaWNvZGUiOmhlLnJlY29yZF9kZWxpbWl0ZXI9Ilx1MjAyOCJ9''@;'; + put 'put ''dGhpcy5vcHRpb25zPWhlLHRoaXMuc3RhdGU9e3N0b3A6ITF9LHRoaXMuaW5mbz17cmVjb3JkczowfX1ub3JtYWxpemUoRWUpe2lmKG51bGw9PUVlLmJvbXx8ITE9PT1FZS5ib20pRWUuYm9tPSExO2Vsc2UgaWYoITAhPT1FZS5ib20pcmV0dXJuIG5ldyBlZSgiQ1NWX09QVElPTl9CT09MRUFO''@;'; + put 'put ''X0lOVkFMSURfVFlQRSIsWyJvcHRpb24gYGJvbWAgaXMgb3B0aW9uYWwgYW5kIG11c3QgYmUgYSBib29sZWFuIHZhbHVlLCIsYGdvdCAke0pTT04uc3RyaW5naWZ5KEVlLmJvbSl9YF0pO2lmKG51bGw9PUVlLmRlbGltaXRlcilFZS5kZWxpbWl0ZXI9IiwiO2Vsc2UgaWYoaWUuaXNCdWZmZXIo''@;'; + put 'put ''RWUuZGVsaW1pdGVyKSlFZS5kZWxpbWl0ZXI9RWUuZGVsaW1pdGVyLnRvU3RyaW5nKCk7ZWxzZSBpZigic3RyaW5nIiE9dHlwZW9mIEVlLmRlbGltaXRlcilyZXR1cm4gbmV3IGVlKCJDU1ZfT1BUSU9OX0RFTElNSVRFUl9JTlZBTElEX1RZUEUiLFsib3B0aW9uIGBkZWxpbWl0ZXJgIG11c3Qg''@;'; + put 'put ''YmUgYSBidWZmZXIgb3IgYSBzdHJpbmcsIixgZ290ICR7SlNPTi5zdHJpbmdpZnkoRWUuZGVsaW1pdGVyKX1gXSk7aWYobnVsbD09RWUucXVvdGUpRWUucXVvdGU9JyInO2Vsc2UgaWYoITA9PT1FZS5xdW90ZSlFZS5xdW90ZT0nIic7ZWxzZSBpZighMT09PUVlLnF1b3RlKUVlLnF1b3RlPSIi''@;'; + put 'put ''O2Vsc2UgaWYoaWUuaXNCdWZmZXIoRWUucXVvdGUpKUVlLnF1b3RlPUVlLnF1b3RlLnRvU3RyaW5nKCk7ZWxzZSBpZigic3RyaW5nIiE9dHlwZW9mIEVlLnF1b3RlKXJldHVybiBuZXcgZWUoIkNTVl9PUFRJT05fUVVPVEVfSU5WQUxJRF9UWVBFIixbIm9wdGlvbiBgcXVvdGVgIG11c3QgYmUg''@;'; + put 'put ''YSBib29sZWFuLCBhIGJ1ZmZlciBvciBhIHN0cmluZywiLGBnb3QgJHtKU09OLnN0cmluZ2lmeShFZS5xdW90ZSl9YF0pO2lmKG51bGwhPUVlLnF1b3RlZHx8KEVlLnF1b3RlZD0hMSksbnVsbCE9RWUucXVvdGVkX2VtcHR5fHwoRWUucXVvdGVkX2VtcHR5PXZvaWQgMCksbnVsbD09RWUucXVv''@;'; + put 'put ''dGVkX21hdGNofHwhMT09PUVlLnF1b3RlZF9tYXRjaD9FZS5xdW90ZWRfbWF0Y2g9bnVsbDpBcnJheS5pc0FycmF5KEVlLnF1b3RlZF9tYXRjaCl8fChFZS5xdW90ZWRfbWF0Y2g9W0VlLnF1b3RlZF9tYXRjaF0pLEVlLnF1b3RlZF9tYXRjaClmb3IobGV0IGhlIG9mIEVlLnF1b3RlZF9tYXRj''@;'; + put 'put ''aCl7Y29uc3QgTz1oZSBpbnN0YW5jZW9mIFJlZ0V4cDtpZigic3RyaW5nIiE9dHlwZW9mIGhlJiYhTylyZXR1cm4gRXJyb3IoYEludmFsaWQgT3B0aW9uOiBxdW90ZWRfbWF0Y2ggbXVzdCBiZSBhIHN0cmluZyBvciBhIHJlZ2V4LCBnb3QgJHtKU09OLnN0cmluZ2lmeShoZSl9YCl9aWYobnVs''@;'; + put 'put ''bCE9RWUucXVvdGVkX3N0cmluZ3x8KEVlLnF1b3RlZF9zdHJpbmc9ITEpLG51bGwhPUVlLmVvZnx8KEVlLmVvZj0hMCksbnVsbD09RWUuZXNjYXBlKUVlLmVzY2FwZT0nIic7ZWxzZSBpZihpZS5pc0J1ZmZlcihFZS5lc2NhcGUpKUVlLmVzY2FwZT1FZS5lc2NhcGUudG9TdHJpbmcoKTtlbHNl''@;'; + put 'put ''IGlmKCJzdHJpbmciIT10eXBlb2YgRWUuZXNjYXBlKXJldHVybiBFcnJvcihgSW52YWxpZCBPcHRpb246IGVzY2FwZSBtdXN0IGJlIGEgYnVmZmVyIG9yIGEgc3RyaW5nLCBnb3QgJHtKU09OLnN0cmluZ2lmeShFZS5lc2NhcGUpfWApO2lmKEVlLmVzY2FwZS5sZW5ndGg+MSlyZXR1cm4gRXJy''@;'; + put 'put ''b3IoYEludmFsaWQgT3B0aW9uOiBlc2NhcGUgbXVzdCBiZSBvbmUgY2hhcmFjdGVyLCBnb3QgJHtFZS5lc2NhcGUubGVuZ3RofSBjaGFyYWN0ZXJzYCk7aWYobnVsbCE9RWUuaGVhZGVyfHwoRWUuaGVhZGVyPSExKSxFZS5jb2x1bW5zPXRoaXMubm9ybWFsaXplX2NvbHVtbnMoRWUuY29sdW1u''@;'; + put 'put ''cyksbnVsbCE9RWUucXVvdGVkfHwoRWUucXVvdGVkPSExKSxudWxsIT1FZS5jYXN0fHwoRWUuY2FzdD17fSksbnVsbCE9RWUuY2FzdC5iaWdpbnR8fChFZS5jYXN0LmJpZ2ludD1oZT0+IiIraGUpLG51bGwhPUVlLmNhc3QuYm9vbGVhbnx8KEVlLmNhc3QuYm9vbGVhbj1oZT0+aGU/IjEiOiIi''@;'; + put 'put ''KSxudWxsIT1FZS5jYXN0LmRhdGV8fChFZS5jYXN0LmRhdGU9aGU9PiIiK2hlLmdldFRpbWUoKSksbnVsbCE9RWUuY2FzdC5udW1iZXJ8fChFZS5jYXN0Lm51bWJlcj1oZT0+IiIraGUpLG51bGwhPUVlLmNhc3Qub2JqZWN0fHwoRWUuY2FzdC5vYmplY3Q9aGU9PkpTT04uc3RyaW5naWZ5KGhl''@;'; + put 'put ''KSksbnVsbCE9RWUuY2FzdC5zdHJpbmd8fChFZS5jYXN0LnN0cmluZz1mdW5jdGlvbihoZSl7cmV0dXJuIGhlfSksbnVsbD09RWUucmVjb3JkX2RlbGltaXRlcilFZS5yZWNvcmRfZGVsaW1pdGVyPSJcbiI7ZWxzZSBpZihpZS5pc0J1ZmZlcihFZS5yZWNvcmRfZGVsaW1pdGVyKSlFZS5yZWNv''@;'; + put 'put ''cmRfZGVsaW1pdGVyPUVlLnJlY29yZF9kZWxpbWl0ZXIudG9TdHJpbmcoKTtlbHNlIGlmKCJzdHJpbmciIT10eXBlb2YgRWUucmVjb3JkX2RlbGltaXRlcilyZXR1cm4gRXJyb3IoYEludmFsaWQgT3B0aW9uOiByZWNvcmRfZGVsaW1pdGVyIG11c3QgYmUgYSBidWZmZXIgb3IgYSBzdHJpbmcs''@;'; + put 'put ''IGdvdCAke0pTT04uc3RyaW5naWZ5KEVlLnJlY29yZF9kZWxpbWl0ZXIpfWApfV90cmFuc2Zvcm0oRWUsaGUsTyl7aWYoITA9PT10aGlzLnN0YXRlLnN0b3ApcmV0dXJuO2lmKCFBcnJheS5pc0FycmF5KEVlKSYmIm9iamVjdCIhPXR5cGVvZiBFZSlyZXR1cm4gdGhpcy5zdGF0ZS5zdG9wPSEw''@;'; + put 'put ''LE8oRXJyb3IoYEludmFsaWQgUmVjb3JkOiBleHBlY3QgYW4gYXJyYXkgb3IgYW4gb2JqZWN0LCBnb3QgJHtKU09OLnN0cmluZ2lmeShFZSl9YCkpO2lmKDA9PT10aGlzLmluZm8ucmVjb3JkcylpZihBcnJheS5pc0FycmF5KEVlKSl7aWYoITA9PT10aGlzLm9wdGlvbnMuaGVhZGVyJiYhdGhp''@;'; + put 'put ''cy5vcHRpb25zLmNvbHVtbnMpcmV0dXJuIHRoaXMuc3RhdGUuc3RvcD0hMCxPKEVycm9yKCJVbmRpc2NvdmVyYWJsZSBDb2x1bW5zOiBoZWFkZXIgb3B0aW9uIHJlcXVpcmVzIGNvbHVtbiBvcHRpb24gb3Igb2JqZWN0IHJlY29yZHMiKSl9ZWxzZSBudWxsIT10aGlzLm9wdGlvbnMuY29sdW1u''@;'; + put 'put ''c3x8KHRoaXMub3B0aW9ucy5jb2x1bW5zPXRoaXMubm9ybWFsaXplX2NvbHVtbnMoT2JqZWN0LmtleXMoRWUpKSk7MD09PXRoaXMuaW5mby5yZWNvcmRzJiYodGhpcy5ib20oKSx0aGlzLmhlYWRlcnMoKSk7dHJ5e3RoaXMuZW1pdCgicmVjb3JkIixFZSx0aGlzLmluZm8ucmVjb3Jkcyl9Y2F0''@;'; + put 'put ''Y2gobmUpe3JldHVybiB0aGlzLnN0YXRlLnN0b3A9ITAsdGhpcy5lbWl0KCJlcnJvciIsbmUpfWxldCB6O2lmKHRoaXMub3B0aW9ucy5lb2Ype2lmKHo9dGhpcy5zdHJpbmdpZnkoRWUpLHZvaWQgMD09PXopcmV0dXJuO3orPXRoaXMub3B0aW9ucy5yZWNvcmRfZGVsaW1pdGVyfWVsc2V7aWYo''@;'; + put 'put ''ej10aGlzLnN0cmluZ2lmeShFZSksdm9pZCAwPT09eilyZXR1cm47KHRoaXMub3B0aW9ucy5oZWFkZXJ8fHRoaXMuaW5mby5yZWNvcmRzKSYmKHo9dGhpcy5vcHRpb25zLnJlY29yZF9kZWxpbWl0ZXIreil9dGhpcy5pbmZvLnJlY29yZHMrKyx0aGlzLnB1c2goeiksTygpfV9mbHVzaChFZSl7''@;'; + put 'put ''MD09PXRoaXMuaW5mby5yZWNvcmRzJiYodGhpcy5ib20oKSx0aGlzLmhlYWRlcnMoKSksRWUoKX1zdHJpbmdpZnkoRWUsaGU9ITEpe2lmKCJvYmplY3QiIT10eXBlb2YgRWUpcmV0dXJuIEVlO2NvbnN0e2NvbHVtbnM6T309dGhpcy5vcHRpb25zLG5lPVtdO2lmKEFycmF5LmlzQXJyYXkoRWUp''@;'; + put 'put ''KXtPJiZFZS5zcGxpY2UoTy5sZW5ndGgpO2ZvcihsZXQgeD0wO3g8RWUubGVuZ3RoO3grKyl7Y29uc3QgUD1FZVt4XSxbVixUXT10aGlzLl9fY2FzdChQLHtpbmRleDp4LGNvbHVtbjp4LHJlY29yZHM6dGhpcy5pbmZvLnJlY29yZHMsaGVhZGVyOmhlfSk7aWYoVilyZXR1cm4gdm9pZCB0aGlz''@;'; + put 'put ''LmVtaXQoImVycm9yIixWKTtuZVt4XT1bVCxQXX19ZWxzZSBpZihPKWZvcihsZXQgeD0wO3g8Ty5sZW5ndGg7eCsrKXtjb25zdCBQPUllKEVlLE9beF0ua2V5KSxbVixUXT10aGlzLl9fY2FzdChQLHtpbmRleDp4LGNvbHVtbjpPW3hdLmtleSxyZWNvcmRzOnRoaXMuaW5mby5yZWNvcmRzLGhl''@;'; + put 'put ''YWRlcjpoZX0pO2lmKFYpcmV0dXJuIHZvaWQgdGhpcy5lbWl0KCJlcnJvciIsVik7bmVbeF09W1QsUF19ZWxzZSBmb3IobGV0IHggb2YgRWUpe2NvbnN0IFA9RWVbeF0sW1YsVF09dGhpcy5fX2Nhc3QoUCx7aW5kZXg6aSxjb2x1bW46T1tpXS5rZXkscmVjb3Jkczp0aGlzLmluZm8ucmVjb3Jk''@;'; + put 'put ''cyxoZWFkZXI6aGV9KTtpZihWKXJldHVybiB2b2lkIHRoaXMuZW1pdCgiZXJyb3IiLFYpO25lLnB1c2goW1QsUF0pfWxldCB0ZT0iIjtmb3IobGV0IHg9MDt4PG5lLmxlbmd0aDt4Kyspe2xldCBQLFYsW1QsU109bmVbeF07aWYoInN0cmluZyI9PXR5cGVvZiBUKVA9dGhpcy5vcHRpb25zO2Vs''@;'; + put 'put ''c2UgaWYocShUKSl7aWYoUD1ULFQ9UC52YWx1ZSxkZWxldGUgUC52YWx1ZSwic3RyaW5nIiE9dHlwZW9mIFQmJm51bGwhPVQpcmV0dXJuIHZvaWQgdGhpcy5lbWl0KCJlcnJvciIsRXJyb3IoYEludmFsaWQgQ2FzdGluZyBWYWx1ZTogcmV0dXJuZWQgdmFsdWUgbXVzdCByZXR1cm4gYSBzdHJp''@;'; + put 'put ''bmcsIG51bGwgb3IgdW5kZWZpbmVkLCBnb3QgJHtKU09OLnN0cmluZ2lmeShUKX1gKSk7aWYoUD1ncyhncyh7fSx0aGlzLm9wdGlvbnMpLFApLFY9dGhpcy5ub3JtYWxpemUoUCkpcmV0dXJuIHZvaWQgdGhpcy5lbWl0KCJlcnJvciIsVil9ZWxzZXtpZihudWxsIT1UKXJldHVybiB2b2lkIHRo''@;'; + put 'put ''aXMuZW1pdCgiZXJyb3IiLEVycm9yKGBJbnZhbGlkIENhc3RpbmcgVmFsdWU6IHJldHVybmVkIHZhbHVlIG11c3QgcmV0dXJuIGEgc3RyaW5nLCBhbiBvYmplY3QsIG51bGwgb3IgdW5kZWZpbmVkLCBnb3QgJHtKU09OLnN0cmluZ2lmeShUKX1gKSk7UD10aGlzLm9wdGlvbnN9Y29uc3R7ZGVs''@;'; + put 'put ''aW1pdGVyOkYsZXNjYXBlOnllLHF1b3RlOkNlLHF1b3RlZDpEZSxxdW90ZWRfZW1wdHk6UGUscXVvdGVkX3N0cmluZzpRZSxxdW90ZWRfbWF0Y2g6JGUscmVjb3JkX2RlbGltaXRlcjpndH09UDtpZihUKXtpZigic3RyaW5nIiE9dHlwZW9mIFQpcmV0dXJuIHRoaXMuZW1pdCgiZXJyb3IiLEVy''@;'; + put 'put ''cm9yKGBGb3JtYXR0ZXIgbXVzdCByZXR1cm4gYSBzdHJpbmcsIG51bGwgb3IgdW5kZWZpbmVkLCBnb3QgJHtKU09OLnN0cmluZ2lmeShUKX1gKSksbnVsbDtjb25zdCB3dD1GLmxlbmd0aCYmVC5pbmRleE9mKEYpPj0wLG10PSIiIT09Q2UmJlQuaW5kZXhPZihDZSk+PTAsdnQ9VC5pbmRleE9m''@;'; + put 'put ''KHllKT49MCYmeWUhPT1DZSxBdD1ULmluZGV4T2YoZ3QpPj0wLGh0PVFlJiYic3RyaW5nIj09dHlwZW9mIFM7bGV0IEJ0PSRlJiYkZS5maWx0ZXIoX3Q9PiJzdHJpbmciPT10eXBlb2YgX3Q/LTEhPT1ULmluZGV4T2YoX3QpOl90LnRlc3QoVCkpO0J0PUJ0JiZCdC5sZW5ndGg+MDtjb25zdCBv''@;'; + put 'put ''bj0hMD09PW10fHx3dHx8QXR8fERlfHxodHx8QnQ7aWYoITA9PT1vbiYmITA9PT12dCl7Y29uc3QgX3Q9IlxcIj09PXllP25ldyBSZWdFeHAoeWUreWUsImciKTpuZXcgUmVnRXhwKHllLCJnIik7VD1ULnJlcGxhY2UoX3QseWUreWUpfWlmKCEwPT09bXQpe2NvbnN0IF90PW5ldyBSZWdFeHAo''@;'; + put 'put ''Q2UsImciKTtUPVQucmVwbGFjZShfdCx5ZStDZSl9ITA9PT1vbiYmKFQ9Q2UrVCtDZSksdGUrPVR9ZWxzZSghMD09PVBlfHwiIj09PVMmJiEwPT09UWUmJiExIT09UGUpJiYodGUrPUNlK0NlKTt4IT09bmUubGVuZ3RoLTEmJih0ZSs9Ril9cmV0dXJuIHRlfWJvbSgpeyEwPT09dGhpcy5vcHRp''@;'; + put 'put ''b25zLmJvbSYmdGhpcy5wdXNoKFkpfWhlYWRlcnMoKXtpZighMT09PXRoaXMub3B0aW9ucy5oZWFkZXJ8fHZvaWQgMD09PXRoaXMub3B0aW9ucy5jb2x1bW5zKXJldHVybjtsZXQgRWU9dGhpcy5vcHRpb25zLmNvbHVtbnMubWFwKGhlPT5oZS5oZWFkZXIpO0VlPXRoaXMub3B0aW9ucy5lb2Y/''@;'; + put 'put ''dGhpcy5zdHJpbmdpZnkoRWUsITApK3RoaXMub3B0aW9ucy5yZWNvcmRfZGVsaW1pdGVyOnRoaXMuc3RyaW5naWZ5KEVlKSx0aGlzLnB1c2goRWUpfV9fY2FzdChFZSxoZSl7Y29uc3QgTz10eXBlb2YgRWU7dHJ5e3JldHVybiJzdHJpbmciPT09Tz9bdm9pZCAwLHRoaXMub3B0aW9ucy5jYXN0''@;'; + put 'put ''LnN0cmluZyhFZSxoZSldOiJiaWdpbnQiPT09Tz9bdm9pZCAwLHRoaXMub3B0aW9ucy5jYXN0LmJpZ2ludChFZSxoZSldOiJudW1iZXIiPT09Tz9bdm9pZCAwLHRoaXMub3B0aW9ucy5jYXN0Lm51bWJlcihFZSxoZSldOiJib29sZWFuIj09PU8/W3ZvaWQgMCx0aGlzLm9wdGlvbnMuY2FzdC5i''@;'; + put 'put ''b29sZWFuKEVlLGhlKV06RWUgaW5zdGFuY2VvZiBEYXRlP1t2b2lkIDAsdGhpcy5vcHRpb25zLmNhc3QuZGF0ZShFZSxoZSldOiJvYmplY3QiPT09TyYmbnVsbCE9PUVlP1t2b2lkIDAsdGhpcy5vcHRpb25zLmNhc3Qub2JqZWN0KEVlLGhlKV06W3ZvaWQgMCxFZSxFZV19Y2F0Y2goeil7cmV0''@;'; + put 'put ''dXJuW3pdfX1ub3JtYWxpemVfY29sdW1ucyhFZSl7aWYobnVsbCE9RWUpe2lmKCJvYmplY3QiIT10eXBlb2YgRWUpdGhyb3cgRXJyb3IoJ0ludmFsaWQgb3B0aW9uICJjb2x1bW5zIjogZXhwZWN0IGFuIGFycmF5IG9yIGFuIG9iamVjdCcpO2lmKEFycmF5LmlzQXJyYXkoRWUpKXtjb25zdCBo''@;'; + put 'put ''ZT1bXTtmb3IobGV0IE8gb2YgRWUpaWYoInN0cmluZyI9PXR5cGVvZiBPKWhlLnB1c2goe2tleTpPLGhlYWRlcjpPfSk7ZWxzZXtpZigib2JqZWN0IiE9dHlwZW9mIE98fHZvaWQgMD09PU98fEFycmF5LmlzQXJyYXkoTykpdGhyb3cgRXJyb3IoIkludmFsaWQgY29sdW1uIGRlZmluaXRpb246''@;'; + put 'put ''IGV4cGVjdCBhIHN0cmluZyBvciBhbiBvYmplY3QiKTtpZighTy5rZXkpdGhyb3cgRXJyb3IoJ0ludmFsaWQgY29sdW1uIGRlZmluaXRpb246IHByb3BlcnR5ICJrZXkiIGlzIHJlcXVpcmVkJyk7dm9pZCAwPT09Ty5oZWFkZXImJihPLmhlYWRlcj1PLmtleSksaGUucHVzaChPKX1FZT1oZX1l''@;'; + put 'put ''bHNle2NvbnN0IGhlPVtdO2ZvcihsZXQgTyBpbiBFZSloZS5wdXNoKHtrZXk6TyxoZWFkZXI6RWVbT119KTtFZT1oZX1yZXR1cm4gRWV9fX1jb25zdCBOPWZ1bmN0aW9uKCl7bGV0IFRlLEVlLGhlO2ZvcihsZXQgeiBpbiBhcmd1bWVudHMpe2NvbnN0IG5lPWFyZ3VtZW50c1t6XSx0ZT10eXBl''@;'; + put 'put ''b2YgbmU7aWYodm9pZCAwPT09VGUmJkFycmF5LmlzQXJyYXkobmUpKVRlPW5lO2Vsc2UgaWYodm9pZCAwPT09RWUmJnEobmUpKUVlPW5lO2Vsc2V7aWYodm9pZCAwIT09aGV8fCJmdW5jdGlvbiIhPT10ZSl0aHJvdyBuZXcgZWUoIkNTVl9JTlZBTElEX0FSR1VNRU5UIixbIkludmFsaWQgYXJn''@;'; + put 'put ''dW1lbnQ6IixgZ290ICR7SlNPTi5zdHJpbmdpZnkobmUpfSBhdCBpbmRleCAke3p9YF0pO2hlPW5lfX1jb25zdCBPPW5ldyBXKEVlKTtpZihoZSl7Y29uc3Qgej1bXTtPLm9uKCJyZWFkYWJsZSIsZnVuY3Rpb24oKXtsZXQgbmU7Zm9yKDtudWxsIT09KG5lPXRoaXMucmVhZCgpKTspei5wdXNo''@;'; + put 'put ''KG5lKX0pLE8ub24oImVycm9yIixmdW5jdGlvbihuZSl7aGUobmUpfSksTy5vbigiZW5kIixmdW5jdGlvbigpe2hlKHZvaWQgMCx6LmpvaW4oIiIpKX0pfWlmKHZvaWQgMCE9PVRlKWlmKCJmdW5jdGlvbiI9PXR5cGVvZiBzZXRJbW1lZGlhdGUpc2V0SW1tZWRpYXRlKGZ1bmN0aW9uKCl7Zm9y''@;'; + put 'put ''KGxldCB6IG9mIFRlKU8ud3JpdGUoeik7Ty5lbmQoKX0pO2Vsc2V7Zm9yKGxldCB6IG9mIFRlKU8ud3JpdGUoeik7Ty5lbmQoKX1yZXR1cm4gT307Y2xhc3MgZWUgZXh0ZW5kcyBFcnJvcntjb25zdHJ1Y3RvcihFZSxoZSwuLi5PKXtBcnJheS5pc0FycmF5KGhlKSYmKGhlPWhlLmpvaW4oIiAi''@;'; + put 'put ''KSksc3VwZXIoaGUpLHZvaWQgMCE9PUVycm9yLmNhcHR1cmVTdGFja1RyYWNlJiZFcnJvci5jYXB0dXJlU3RhY2tUcmFjZSh0aGlzLGVlKSx0aGlzLmNvZGU9RWU7Zm9yKGNvbnN0IHogb2YgTylmb3IoY29uc3QgbmUgaW4geil7Y29uc3QgdGU9eltuZV07dGhpc1tuZV09aWUuaXNCdWZmZXIo''@;'; + put 'put ''dGUpP3RlLnRvU3RyaW5nKCk6bnVsbD09dGU/dGU6SlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0ZSkpfX19Ti5TdHJpbmdpZmllcj1XLE4uQ3N2RXJyb3I9ZWUsVS5leHBvcnRzPU47Y29uc3QgcT1mdW5jdGlvbihUZSl7cmV0dXJuIm9iamVjdCI9PXR5cGVvZiBUZSYmbnVsbCE9PVRlJiYh''@;'; + put 'put ''QXJyYXkuaXNBcnJheShUZSl9LEo9ZnVuY3Rpb24oVGUpe3JldHVybiBUZS5yZXBsYWNlKC8oW0EtWl0pL2csZnVuY3Rpb24oRWUsaGUpe3JldHVybiJfIitoZS50b0xvd2VyQ2FzZSgpfSl9LHNlPSIuIi5jaGFyQ29kZUF0KDApLG9lPS9cXChcXCk/L2csY2U9UmVnRXhwKCJbXi5bXFxdXSt8''@;'; + put 'put ''XFxbKD86KFteXCInXVteW10qKXwoW1wiJ10pKCg/Oig/IVxcMilbXlxcXFxdfFxcXFwuKSo/KVxcMilcXF18KD89KD86XFwufFxcW1xcXSkoPzpcXC58XFxbXFxdfCQpKSIsImciKSxkZT0vXC58XFsoPzpbXltcXV0qfChbIiddKSg/Oig/IVwxKVteXFxdfFxcLikqP1wxKVxdLyx2ZT0vXlx3''@;'; + put 'put ''KiQvLEFlPWZ1bmN0aW9uKFRlKXtjb25zdCBFZT10eXBlb2YgVGU7cmV0dXJuInN5bWJvbCI9PT1FZXx8Im9iamVjdCI9PT1FZSYmVGUmJiJbb2JqZWN0IFN5bWJvbF0iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKFRlKX0sU2U9ZnVuY3Rpb24oVGUpe2lmKCJzdHJpbmciPT10''@;'; + put 'put ''eXBlb2YgVGV8fEFlKFRlKSlyZXR1cm4gVGU7Y29uc3QgRWU9YCR7VGV9YDtyZXR1cm4iMCI9PUVlJiYxL1RlPT0tSU5GSU5JVFk/Ii0wIjpFZX0sSWU9ZnVuY3Rpb24oVGUsRWUpe2xldCBoZT0wO2NvbnN0IE89KEVlPWZ1bmN0aW9uKFRlLEVlKXtyZXR1cm4gQXJyYXkuaXNBcnJheShUZSk/''@;'; + put 'put ''VGU6ZnVuY3Rpb24oaGUsTyl7aWYoQXJyYXkuaXNBcnJheShoZSkpcmV0dXJuITE7Y29uc3Qgej10eXBlb2YgaGU7cmV0dXJuISgibnVtYmVyIiE9PXomJiJzeW1ib2wiIT09eiYmImJvb2xlYW4iIT09eiYmaGUmJiFBZShoZSkpfHx2ZS50ZXN0KGhlKXx8IWRlLnRlc3QoaGUpfHxudWxsIT1P''@;'; + put 'put ''JiZoZSBpbiBPYmplY3QoTyl9KFRlLEVlKT9bVGVdOmZ1bmN0aW9uKGhlKXtjb25zdCBPPVtdO3JldHVybiBoZS5jaGFyQ29kZUF0KDApPT09c2UmJk8ucHVzaCgiIiksaGUucmVwbGFjZShjZSxmdW5jdGlvbih6LG5lLHRlLHgpe2xldCBQPXo7dGU/UD14LnJlcGxhY2Uob2UsIiQxIik6bmUm''@;'; + put 'put ''JihQPW5lLnRyaW0oKSksTy5wdXNoKFApfSksT30oVGUpfShFZSxUZSkpLmxlbmd0aDtmb3IoO251bGwhPVRlJiZoZTxPOylUZT1UZVtTZShFZVtoZSsrXSldO3JldHVybiBoZSYmaGU9PT1PP1RlOnZvaWQgMH19LDc1NjU6KFUsUSxaKT0+e3ZhciBpZT1aKDg3NjQpLkJ1ZmZlcjtjb25zdCBh''@;'; + put 'put ''ZT1aKDUwNTYpLHtTdHJpbmdEZWNvZGVyOll9PVooMjU1Myk7VS5leHBvcnRzPWZ1bmN0aW9uKFcsTj17fSl7Y29uc3QgZWU9W107ZnVuY3Rpb24gcShzZSl7c2UmJmVlLnB1c2goc2UudG9TdHJpbmcoKSl9aWUuaXNCdWZmZXIoVykmJihXPShuZXcgWSkud3JpdGUoVykpO2xldCBKPW5ldyBh''@;'; + put 'put ''ZS5TdHJpbmdpZmllcihOKTtKLm9uKCJkYXRhIixxKTtmb3IobGV0IHNlIG9mIFcpSi53cml0ZShzZSk7cmV0dXJuIEouZW5kKCksSi5vZmYoImRhdGEiLHEpLGVlLmpvaW4oIiIpfX0sNDI4OTooVSxRLFopPT57InVzZSBzdHJpY3QiO3ZhciBpZT1aKDIyMTUpLGFlPSJmdW5jdGlvbiI9PXR5''@;'; + put 'put ''cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sKCJmb28iKSxZPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcsVz1BcnJheS5wcm90b3R5cGUuY29uY2F0LE49T2JqZWN0LmRlZmluZVByb3BlcnR5LGVlPVooMTA0NCkoKSxxPU4mJmVlLEo9ZnVuY3Rpb24ob2UsY2UsZGUsdmUp''@;'; + put 'put ''e3ZhciBBZTsoIShjZSBpbiBvZSl8fCJmdW5jdGlvbiI9PXR5cGVvZihBZT12ZSkmJiJbb2JqZWN0IEZ1bmN0aW9uXSI9PT1ZLmNhbGwoQWUpJiZ2ZSgpKSYmKHE/TihvZSxjZSx7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITEsdmFsdWU6ZGUsd3JpdGFibGU6ITB9KTpvZVtjZV09ZGUp''@;'; + put 'put ''fSxzZT1mdW5jdGlvbihvZSxjZSl7dmFyIGRlPWFyZ3VtZW50cy5sZW5ndGg+Mj9hcmd1bWVudHNbMl06e30sdmU9aWUoY2UpO2FlJiYodmU9Vy5jYWxsKHZlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoY2UpKSk7Zm9yKHZhciBBZT0wO0FlPHZlLmxlbmd0aDtBZSs9MSlKKG9lLHZl''@;'; + put 'put ''W0FlXSxjZVt2ZVtBZV1dLGRlW3ZlW0FlXV0pfTtzZS5zdXBwb3J0c0Rlc2NyaXB0b3JzPSEhcSxVLmV4cG9ydHM9c2V9LDUyNTE6KFUsUSxaKT0+eyJ1c2Ugc3RyaWN0IjtRLnV0aWxzPVooMTI3OCksUS5DaXBoZXI9Wig1NzU2KSxRLkRFUz1aKDMyNyksUS5DQkM9Wig5MDUxKSxRLkVERT1a''@;'; + put 'put ''KDY1MSl9LDkwNTE6KFUsUSxaKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgaWU9Wig5NzQ2KSxhZT1aKDU3MTcpLFk9e307ZnVuY3Rpb24gVyhOKXtpZS5lcXVhbChOLmxlbmd0aCw4LCJJbnZhbGlkIElWIGxlbmd0aCIpLHRoaXMuaXY9bmV3IEFycmF5KDgpO2Zvcih2YXIgZWU9MDtlZTx0aGlzLml2''@;'; + put 'put ''Lmxlbmd0aDtlZSsrKXRoaXMuaXZbZWVdPU5bZWVdfVEuaW5zdGFudGlhdGU9ZnVuY3Rpb24oTil7ZnVuY3Rpb24gZWUob2Upe04uY2FsbCh0aGlzLG9lKSx0aGlzLl9jYmNJbml0KCl9YWUoZWUsTik7Zm9yKHZhciBxPU9iamVjdC5rZXlzKFkpLEo9MDtKPHEubGVuZ3RoO0orKyl7dmFyIHNl''@;'; + put 'put ''PXFbSl07ZWUucHJvdG90eXBlW3NlXT1ZW3NlXX1yZXR1cm4gZWUuY3JlYXRlPWZ1bmN0aW9uKG9lKXtyZXR1cm4gbmV3IGVlKG9lKX0sZWV9LFkuX2NiY0luaXQ9ZnVuY3Rpb24oKXt2YXIgTj1uZXcgVyh0aGlzLm9wdGlvbnMuaXYpO3RoaXMuX2NiY1N0YXRlPU59LFkuX3VwZGF0ZT1mdW5j''@;'; + put 'put ''dGlvbihOLGVlLHEsSil7dmFyIG9lPXRoaXMuY29uc3RydWN0b3Iuc3VwZXJfLnByb3RvdHlwZSxjZT10aGlzLl9jYmNTdGF0ZS5pdjtpZigiZW5jcnlwdCI9PT10aGlzLnR5cGUpe2Zvcih2YXIgZGU9MDtkZTx0aGlzLmJsb2NrU2l6ZTtkZSsrKWNlW2RlXV49TltlZStkZV07Zm9yKG9lLl91''@;'; + put 'put ''cGRhdGUuY2FsbCh0aGlzLGNlLDAscSxKKSxkZT0wO2RlPHRoaXMuYmxvY2tTaXplO2RlKyspY2VbZGVdPXFbSitkZV19ZWxzZXtmb3Iob2UuX3VwZGF0ZS5jYWxsKHRoaXMsTixlZSxxLEopLGRlPTA7ZGU8dGhpcy5ibG9ja1NpemU7ZGUrKylxW0orZGVdXj1jZVtkZV07Zm9yKGRlPTA7ZGU8''@;'; + put 'put ''dGhpcy5ibG9ja1NpemU7ZGUrKyljZVtkZV09TltlZStkZV19fX0sNTc1NjooVSxRLFopPT57InVzZSBzdHJpY3QiO3ZhciBpZT1aKDk3NDYpO2Z1bmN0aW9uIGFlKFkpe3RoaXMub3B0aW9ucz1ZLHRoaXMudHlwZT10aGlzLm9wdGlvbnMudHlwZSx0aGlzLmJsb2NrU2l6ZT04LHRoaXMuX2lu''@;'; + put 'put ''aXQoKSx0aGlzLmJ1ZmZlcj1uZXcgQXJyYXkodGhpcy5ibG9ja1NpemUpLHRoaXMuYnVmZmVyT2ZmPTB9VS5leHBvcnRzPWFlLGFlLnByb3RvdHlwZS5faW5pdD1mdW5jdGlvbigpe30sYWUucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbihZKXtyZXR1cm4gMD09PVkubGVuZ3RoP1tdOiJkZWNy''@;'; + put 'put ''eXB0Ij09PXRoaXMudHlwZT90aGlzLl91cGRhdGVEZWNyeXB0KFkpOnRoaXMuX3VwZGF0ZUVuY3J5cHQoWSl9LGFlLnByb3RvdHlwZS5fYnVmZmVyPWZ1bmN0aW9uKFksVyl7Zm9yKHZhciBOPU1hdGgubWluKHRoaXMuYnVmZmVyLmxlbmd0aC10aGlzLmJ1ZmZlck9mZixZLmxlbmd0aC1XKSxl''@;'; + put 'put ''ZT0wO2VlPE47ZWUrKyl0aGlzLmJ1ZmZlclt0aGlzLmJ1ZmZlck9mZitlZV09WVtXK2VlXTtyZXR1cm4gdGhpcy5idWZmZXJPZmYrPU4sTn0sYWUucHJvdG90eXBlLl9mbHVzaEJ1ZmZlcj1mdW5jdGlvbihZLFcpe3JldHVybiB0aGlzLl91cGRhdGUodGhpcy5idWZmZXIsMCxZLFcpLHRoaXMu''@;'; + put 'put ''YnVmZmVyT2ZmPTAsdGhpcy5ibG9ja1NpemV9LGFlLnByb3RvdHlwZS5fdXBkYXRlRW5jcnlwdD1mdW5jdGlvbihZKXt2YXIgVz0wLE49MCxxPW5ldyBBcnJheSgoKHRoaXMuYnVmZmVyT2ZmK1kubGVuZ3RoKS90aGlzLmJsb2NrU2l6ZXwwKSp0aGlzLmJsb2NrU2l6ZSk7MCE9PXRoaXMuYnVm''@;'; + put 'put ''ZmVyT2ZmJiYoVys9dGhpcy5fYnVmZmVyKFksVyksdGhpcy5idWZmZXJPZmY9PT10aGlzLmJ1ZmZlci5sZW5ndGgmJihOKz10aGlzLl9mbHVzaEJ1ZmZlcihxLE4pKSk7Zm9yKHZhciBKPVkubGVuZ3RoLShZLmxlbmd0aC1XKSV0aGlzLmJsb2NrU2l6ZTtXPEo7Vys9dGhpcy5ibG9ja1NpemUp''@;'; + put 'put ''dGhpcy5fdXBkYXRlKFksVyxxLE4pLE4rPXRoaXMuYmxvY2tTaXplO2Zvcig7VzxZLmxlbmd0aDtXKyssdGhpcy5idWZmZXJPZmYrKyl0aGlzLmJ1ZmZlclt0aGlzLmJ1ZmZlck9mZl09WVtXXTtyZXR1cm4gcX0sYWUucHJvdG90eXBlLl91cGRhdGVEZWNyeXB0PWZ1bmN0aW9uKFkpe2Zvcih2''@;'; + put 'put ''YXIgVz0wLE49MCxlZT1NYXRoLmNlaWwoKHRoaXMuYnVmZmVyT2ZmK1kubGVuZ3RoKS90aGlzLmJsb2NrU2l6ZSktMSxxPW5ldyBBcnJheShlZSp0aGlzLmJsb2NrU2l6ZSk7ZWU+MDtlZS0tKVcrPXRoaXMuX2J1ZmZlcihZLFcpLE4rPXRoaXMuX2ZsdXNoQnVmZmVyKHEsTik7cmV0dXJuIFcr''@;'; + put 'put ''PXRoaXMuX2J1ZmZlcihZLFcpLHF9LGFlLnByb3RvdHlwZS5maW5hbD1mdW5jdGlvbihZKXt2YXIgVyxOO3JldHVybiBZJiYoVz10aGlzLnVwZGF0ZShZKSksTj0iZW5jcnlwdCI9PT10aGlzLnR5cGU/dGhpcy5fZmluYWxFbmNyeXB0KCk6dGhpcy5fZmluYWxEZWNyeXB0KCksVz9XLmNvbmNh''@;'; + put 'put ''dChOKTpOfSxhZS5wcm90b3R5cGUuX3BhZD1mdW5jdGlvbihZLFcpe2lmKDA9PT1XKXJldHVybiExO2Zvcig7VzxZLmxlbmd0aDspWVtXKytdPTA7cmV0dXJuITB9LGFlLnByb3RvdHlwZS5fZmluYWxFbmNyeXB0PWZ1bmN0aW9uKCl7aWYoIXRoaXMuX3BhZCh0aGlzLmJ1ZmZlcix0aGlzLmJ1''@;'; + put 'put ''ZmZlck9mZikpcmV0dXJuW107dmFyIFk9bmV3IEFycmF5KHRoaXMuYmxvY2tTaXplKTtyZXR1cm4gdGhpcy5fdXBkYXRlKHRoaXMuYnVmZmVyLDAsWSwwKSxZfSxhZS5wcm90b3R5cGUuX3VucGFkPWZ1bmN0aW9uKFkpe3JldHVybiBZfSxhZS5wcm90b3R5cGUuX2ZpbmFsRGVjcnlwdD1mdW5j''@;'; + put 'put ''dGlvbigpe2llLmVxdWFsKHRoaXMuYnVmZmVyT2ZmLHRoaXMuYmxvY2tTaXplLCJOb3QgZW5vdWdoIGRhdGEgdG8gZGVjcnlwdCIpO3ZhciBZPW5ldyBBcnJheSh0aGlzLmJsb2NrU2l6ZSk7cmV0dXJuIHRoaXMuX2ZsdXNoQnVmZmVyKFksMCksdGhpcy5fdW5wYWQoWSl9fSwzMjc6KFUsUSxa''@;'; + put 'put ''KT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgaWU9Wig5NzQ2KSxhZT1aKDU3MTcpLFk9WigxMjc4KSxXPVooNTc1Nik7ZnVuY3Rpb24gTigpe3RoaXMudG1wPW5ldyBBcnJheSgyKSx0aGlzLmtleXM9bnVsbH1mdW5jdGlvbiBlZShKKXtXLmNhbGwodGhpcyxKKTt2YXIgc2U9bmV3IE47dGhpcy5fZGVz''@;'; + put 'put ''U3RhdGU9c2UsdGhpcy5kZXJpdmVLZXlzKHNlLEoua2V5KX1hZShlZSxXKSxVLmV4cG9ydHM9ZWUsZWUuY3JlYXRlPWZ1bmN0aW9uKEope3JldHVybiBuZXcgZWUoSil9O3ZhciBxPVsxLDEsMiwyLDIsMiwyLDIsMSwyLDIsMiwyLDIsMiwxXTtlZS5wcm90b3R5cGUuZGVyaXZlS2V5cz1mdW5j''@;'; + put 'put ''dGlvbihKLHNlKXtKLmtleXM9bmV3IEFycmF5KDMyKSxpZS5lcXVhbChzZS5sZW5ndGgsdGhpcy5ibG9ja1NpemUsIkludmFsaWQga2V5IGxlbmd0aCIpO3ZhciBvZT1ZLnJlYWRVSW50MzJCRShzZSwwKSxjZT1ZLnJlYWRVSW50MzJCRShzZSw0KTtZLnBjMShvZSxjZSxKLnRtcCwwKSxvZT1K''@;'; + put 'put ''LnRtcFswXSxjZT1KLnRtcFsxXTtmb3IodmFyIGRlPTA7ZGU8Si5rZXlzLmxlbmd0aDtkZSs9Mil7dmFyIHZlPXFbZGU+Pj4xXTtvZT1ZLnIyOHNobChvZSx2ZSksY2U9WS5yMjhzaGwoY2UsdmUpLFkucGMyKG9lLGNlLEoua2V5cyxkZSl9fSxlZS5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlv''@;'; + put 'put ''bihKLHNlLG9lLGNlKXt2YXIgZGU9dGhpcy5fZGVzU3RhdGUsdmU9WS5yZWFkVUludDMyQkUoSixzZSksQWU9WS5yZWFkVUludDMyQkUoSixzZSs0KTtZLmlwKHZlLEFlLGRlLnRtcCwwKSx2ZT1kZS50bXBbMF0sQWU9ZGUudG1wWzFdLCJlbmNyeXB0Ij09PXRoaXMudHlwZT90aGlzLl9lbmNy''@;'; + put 'put ''eXB0KGRlLHZlLEFlLGRlLnRtcCwwKTp0aGlzLl9kZWNyeXB0KGRlLHZlLEFlLGRlLnRtcCwwKSxBZT1kZS50bXBbMV0sWS53cml0ZVVJbnQzMkJFKG9lLHZlPWRlLnRtcFswXSxjZSksWS53cml0ZVVJbnQzMkJFKG9lLEFlLGNlKzQpfSxlZS5wcm90b3R5cGUuX3BhZD1mdW5jdGlvbihKLHNl''@;'; + put 'put ''KXtmb3IodmFyIG9lPUoubGVuZ3RoLXNlLGNlPXNlO2NlPEoubGVuZ3RoO2NlKyspSltjZV09b2U7cmV0dXJuITB9LGVlLnByb3RvdHlwZS5fdW5wYWQ9ZnVuY3Rpb24oSil7Zm9yKHZhciBzZT1KW0oubGVuZ3RoLTFdLG9lPUoubGVuZ3RoLXNlO29lPEoubGVuZ3RoO29lKyspaWUuZXF1YWwo''@;'; + put 'put ''SltvZV0sc2UpO3JldHVybiBKLnNsaWNlKDAsSi5sZW5ndGgtc2UpfSxlZS5wcm90b3R5cGUuX2VuY3J5cHQ9ZnVuY3Rpb24oSixzZSxvZSxjZSxkZSl7Zm9yKHZhciB2ZT1zZSxBZT1vZSxrZT0wO2tlPEoua2V5cy5sZW5ndGg7a2UrPTIpe3ZhciBTZT1KLmtleXNba2VdLEllPUoua2V5c1tr''@;'; + put 'put ''ZSsxXTtZLmV4cGFuZChBZSxKLnRtcCwwKTt2YXIgVGU9WS5zdWJzdGl0dXRlKFNlXj1KLnRtcFswXSxJZV49Si50bXBbMV0pLEVlPUFlO0FlPSh2ZV5ZLnBlcm11dGUoVGUpKT4+PjAsdmU9RWV9WS5yaXAoQWUsdmUsY2UsZGUpfSxlZS5wcm90b3R5cGUuX2RlY3J5cHQ9ZnVuY3Rpb24oSixz''@;'; + put 'put ''ZSxvZSxjZSxkZSl7Zm9yKHZhciB2ZT1vZSxBZT1zZSxrZT1KLmtleXMubGVuZ3RoLTI7a2U+PTA7a2UtPTIpe3ZhciBTZT1KLmtleXNba2VdLEllPUoua2V5c1trZSsxXTtZLmV4cGFuZCh2ZSxKLnRtcCwwKTt2YXIgVGU9WS5zdWJzdGl0dXRlKFNlXj1KLnRtcFswXSxJZV49Si50bXBbMV0p''@;'; + put 'put ''LEVlPXZlO3ZlPShBZV5ZLnBlcm11dGUoVGUpKT4+PjAsQWU9RWV9WS5yaXAodmUsQWUsY2UsZGUpfX0sNjUxOihVLFEsWik9PnsidXNlIHN0cmljdCI7dmFyIGllPVooOTc0NiksYWU9Wig1NzE3KSxZPVooNTc1NiksVz1aKDMyNyk7ZnVuY3Rpb24gTihxLEope2llLmVxdWFsKEoubGVuZ3Ro''@;'; + put 'put ''LDI0LCJJbnZhbGlkIGtleSBsZW5ndGgiKTt2YXIgc2U9Si5zbGljZSgwLDgpLG9lPUouc2xpY2UoOCwxNiksY2U9Si5zbGljZSgxNiwyNCk7dGhpcy5jaXBoZXJzPSJlbmNyeXB0Ij09PXE/W1cuY3JlYXRlKHt0eXBlOiJlbmNyeXB0IixrZXk6c2V9KSxXLmNyZWF0ZSh7dHlwZToiZGVjcnlw''@;'; + put 'put ''dCIsa2V5Om9lfSksVy5jcmVhdGUoe3R5cGU6ImVuY3J5cHQiLGtleTpjZX0pXTpbVy5jcmVhdGUoe3R5cGU6ImRlY3J5cHQiLGtleTpjZX0pLFcuY3JlYXRlKHt0eXBlOiJlbmNyeXB0IixrZXk6b2V9KSxXLmNyZWF0ZSh7dHlwZToiZGVjcnlwdCIsa2V5OnNlfSldfWZ1bmN0aW9uIGVlKHEp''@;'; + put 'put ''e1kuY2FsbCh0aGlzLHEpO3ZhciBKPW5ldyBOKHRoaXMudHlwZSx0aGlzLm9wdGlvbnMua2V5KTt0aGlzLl9lZGVTdGF0ZT1KfWFlKGVlLFkpLFUuZXhwb3J0cz1lZSxlZS5jcmVhdGU9ZnVuY3Rpb24ocSl7cmV0dXJuIG5ldyBlZShxKX0sZWUucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24o''@;'; + put 'put ''cSxKLHNlLG9lKXt2YXIgY2U9dGhpcy5fZWRlU3RhdGU7Y2UuY2lwaGVyc1swXS5fdXBkYXRlKHEsSixzZSxvZSksY2UuY2lwaGVyc1sxXS5fdXBkYXRlKHNlLG9lLHNlLG9lKSxjZS5jaXBoZXJzWzJdLl91cGRhdGUoc2Usb2Usc2Usb2UpfSxlZS5wcm90b3R5cGUuX3BhZD1XLnByb3RvdHlw''@;'; + put 'put ''ZS5fcGFkLGVlLnByb3RvdHlwZS5fdW5wYWQ9Vy5wcm90b3R5cGUuX3VucGFkfSwxMjc4OihVLFEpPT57InVzZSBzdHJpY3QiO1EucmVhZFVJbnQzMkJFPWZ1bmN0aW9uKFksVyl7cmV0dXJuKFlbMCtXXTw8MjR8WVsxK1ddPDwxNnxZWzIrV108PDh8WVszK1ddKT4+PjB9LFEud3JpdGVVSW50''@;'; + put 'put ''MzJCRT1mdW5jdGlvbihZLFcsTil7WVswK05dPVc+Pj4yNCxZWzErTl09Vz4+PjE2JjI1NSxZWzIrTl09Vz4+PjgmMjU1LFlbMytOXT0yNTUmV30sUS5pcD1mdW5jdGlvbihZLFcsTixlZSl7Zm9yKHZhciBxPTAsSj0wLHNlPTY7c2U+PTA7c2UtPTIpe2Zvcih2YXIgb2U9MDtvZTw9MjQ7b2Ur''@;'; + put 'put ''PTgpcTw8PTEscXw9Vz4+Pm9lK3NlJjE7Zm9yKG9lPTA7b2U8PTI0O29lKz04KXE8PD0xLHF8PVk+Pj5vZStzZSYxfWZvcihzZT02O3NlPj0wO3NlLT0yKXtmb3Iob2U9MTtvZTw9MjU7b2UrPTgpSjw8PTEsSnw9Vz4+Pm9lK3NlJjE7Zm9yKG9lPTE7b2U8PTI1O29lKz04KUo8PD0xLEp8PVk+''@;'; + put 'put ''Pj5vZStzZSYxfU5bZWUrMF09cT4+PjAsTltlZSsxXT1KPj4+MH0sUS5yaXA9ZnVuY3Rpb24oWSxXLE4sZWUpe2Zvcih2YXIgcT0wLEo9MCxzZT0wO3NlPDQ7c2UrKylmb3IodmFyIG9lPTI0O29lPj0wO29lLT04KXE8PD0xLHF8PVc+Pj5vZStzZSYxLHE8PD0xLHF8PVk+Pj5vZStzZSYxO2Zv''@;'; + put 'put ''cihzZT00O3NlPDg7c2UrKylmb3Iob2U9MjQ7b2U+PTA7b2UtPTgpSjw8PTEsSnw9Vz4+Pm9lK3NlJjEsSjw8PTEsSnw9WT4+Pm9lK3NlJjE7TltlZSswXT1xPj4+MCxOW2VlKzFdPUo+Pj4wfSxRLnBjMT1mdW5jdGlvbihZLFcsTixlZSl7Zm9yKHZhciBxPTAsSj0wLHNlPTc7c2U+PTU7c2Ut''@;'; + put 'put ''LSl7Zm9yKHZhciBvZT0wO29lPD0yNDtvZSs9OClxPDw9MSxxfD1XPj5vZStzZSYxO2ZvcihvZT0wO29lPD0yNDtvZSs9OClxPDw9MSxxfD1ZPj5vZStzZSYxfWZvcihvZT0wO29lPD0yNDtvZSs9OClxPDw9MSxxfD1XPj5vZStzZSYxO2ZvcihzZT0xO3NlPD0zO3NlKyspe2ZvcihvZT0wO29l''@;'; + put 'put ''PD0yNDtvZSs9OClKPDw9MSxKfD1XPj5vZStzZSYxO2ZvcihvZT0wO29lPD0yNDtvZSs9OClKPDw9MSxKfD1ZPj5vZStzZSYxfWZvcihvZT0wO29lPD0yNDtvZSs9OClKPDw9MSxKfD1ZPj5vZStzZSYxO05bZWUrMF09cT4+PjAsTltlZSsxXT1KPj4+MH0sUS5yMjhzaGw9ZnVuY3Rpb24oWSxX''@;'; + put 'put ''KXtyZXR1cm4gWTw8VyYyNjg0MzU0NTV8WT4+PjI4LVd9O3ZhciBaPVsxNCwxMSwxNyw0LDI3LDIzLDI1LDAsMTMsMjIsNywxOCw1LDksMTYsMjQsMiwyMCwxMiwyMSwxLDgsMTUsMjYsMTUsNCwyNSwxOSw5LDEsMjYsMTYsNSwxMSwyMyw4LDEyLDcsMTcsMCwyMiwzLDEwLDE0LDYsMjAsMjcs''@;'; + put 'put ''MjRdO1EucGMyPWZ1bmN0aW9uKFksVyxOLGVlKXtmb3IodmFyIHE9MCxKPTAsc2U9Wi5sZW5ndGg+Pj4xLG9lPTA7b2U8c2U7b2UrKylxPDw9MSxxfD1ZPj4+WltvZV0mMTtmb3Iob2U9c2U7b2U8Wi5sZW5ndGg7b2UrKylKPDw9MSxKfD1XPj4+WltvZV0mMTtOW2VlKzBdPXE+Pj4wLE5bZWUr''@;'; + put 'put ''MV09Sj4+PjB9LFEuZXhwYW5kPWZ1bmN0aW9uKFksVyxOKXt2YXIgZWU9MCxxPTA7ZWU9KDEmWSk8PDV8WT4+PjI3O2Zvcih2YXIgSj0yMztKPj0xNTtKLT00KWVlPDw9NixlZXw9WT4+PkomNjM7Zm9yKEo9MTE7Sj49MztKLT00KXF8PVk+Pj5KJjYzLHE8PD02O3F8PSgzMSZZKTw8MXxZPj4+''@;'; + put 'put ''MzEsV1tOKzBdPWVlPj4+MCxXW04rMV09cT4+PjB9O3ZhciBpZT1bMTQsMCw0LDE1LDEzLDcsMSw0LDIsMTQsMTUsMiwxMSwxMyw4LDEsMywxMCwxMCw2LDYsMTIsMTIsMTEsNSw5LDksNSwwLDMsNyw4LDQsMTUsMSwxMiwxNCw4LDgsMiwxMyw0LDYsOSwyLDEsMTEsNywxNSw1LDEyLDExLDks''@;'; + put 'put ''Myw3LDE0LDMsMTAsMTAsMCw1LDYsMCwxMywxNSwzLDEsMTMsOCw0LDE0LDcsNiwxNSwxMSwyLDMsOCw0LDE0LDksMTIsNywwLDIsMSwxMywxMCwxMiw2LDAsOSw1LDExLDEwLDUsMCwxMywxNCw4LDcsMTAsMTEsMSwxMCwzLDQsMTUsMTMsNCwxLDIsNSwxMSw4LDYsMTIsNyw2LDEyLDksMCwz''@;'; + put 'put ''LDUsMiwxNCwxNSw5LDEwLDEzLDAsNyw5LDAsMTQsOSw2LDMsMyw0LDE1LDYsNSwxMCwxLDIsMTMsOCwxMiw1LDcsMTQsMTEsMTIsNCwxMSwyLDE1LDgsMSwxMywxLDYsMTAsNCwxMyw5LDAsOCw2LDE1LDksMyw4LDAsNywxMSw0LDEsMTUsMiwxNCwxMiwzLDUsMTEsMTAsNSwxNCwyLDcsMTIs''@;'; + put 'put ''NywxMywxMyw4LDE0LDExLDMsNSwwLDYsNiwxNSw5LDAsMTAsMywxLDQsMiw3LDgsMiw1LDEyLDExLDEsMTIsMTAsNCwxNCwxNSw5LDEwLDMsNiwxNSw5LDAsMCw2LDEyLDEwLDExLDEsNywxMywxMyw4LDE1LDksMSw0LDMsNSwxNCwxMSw1LDEyLDIsNyw4LDIsNCwxNCwyLDE0LDEyLDExLDQs''@;'; + put 'put ''MiwxLDEyLDcsNCwxMCw3LDExLDEzLDYsMSw4LDUsNSwwLDMsMTUsMTUsMTAsMTMsMywwLDksMTQsOCw5LDYsNCwxMSwyLDgsMSwxMiwxMSw3LDEwLDEsMTMsMTQsNywyLDgsMTMsMTUsNiw5LDE1LDEyLDAsNSw5LDYsMTAsMyw0LDAsNSwxNCwzLDEyLDEwLDEsMTUsMTAsNCwxNSwyLDksNywy''@;'; + put 'put ''LDEyLDYsOSw4LDUsMCw2LDEzLDEsMywxMyw0LDE0LDE0LDAsNywxMSw1LDMsMTEsOCw5LDQsMTQsMywxNSwyLDUsMTIsMiw5LDgsNSwxMiwxNSwzLDEwLDcsMTEsMCwxNCw0LDEsMTAsNywxLDYsMTMsMCwxMSw4LDYsMTMsNCwxMywxMSwwLDIsMTEsMTQsNywxNSw0LDAsOSw4LDEsMTMsMTAs''@;'; + put 'put ''MywxNCwxMiwzLDksNSw3LDEyLDUsMiwxMCwxNSw2LDgsMSw2LDEsNiw0LDExLDExLDEzLDEzLDgsMTIsMSwzLDQsNywxMCwxNCw3LDEwLDksMTUsNSw2LDAsOCwxNSwwLDE0LDUsMiw5LDMsMiwxMiwxMywxLDIsMTUsOCwxMyw0LDgsNiwxMCwxNSwzLDExLDcsMSw0LDEwLDEyLDksNSwzLDYs''@;'; + put 'put ''MTQsMTEsNSwwLDAsMTQsMTIsOSw3LDIsNywyLDExLDEsNCwxNCwxLDcsOSw0LDEyLDEwLDE0LDgsMiwxMywwLDE1LDYsMTIsMTAsOSwxMywwLDE1LDMsMyw1LDUsNiw4LDExXTtRLnN1YnN0aXR1dGU9ZnVuY3Rpb24oWSxXKXtmb3IodmFyIE49MCxlZT0wO2VlPDQ7ZWUrKylOPDw9NCxOfD1p''@;'; + put 'put ''ZVs2NCplZSsoWT4+PjE4LTYqZWUmNjMpXTtmb3IoZWU9MDtlZTw0O2VlKyspTjw8PTQsTnw9aWVbMjU2KzY0KmVlKyhXPj4+MTgtNiplZSY2MyldO3JldHVybiBOPj4+MH07dmFyIGFlPVsxNiwyNSwxMiwxMSwzLDIwLDQsMTUsMzEsMTcsOSw2LDI3LDE0LDEsMjIsMzAsMjQsOCwxOCwwLDUs''@;'; + put 'put ''MjksMjMsMTMsMTksMiwyNiwxMCwyMSwyOCw3XTtRLnBlcm11dGU9ZnVuY3Rpb24oWSl7Zm9yKHZhciBXPTAsTj0wO048YWUubGVuZ3RoO04rKylXPDw9MSxXfD1ZPj4+YWVbTl0mMTtyZXR1cm4gVz4+PjB9LFEucGFkU3BsaXQ9ZnVuY3Rpb24oWSxXLE4pe2Zvcih2YXIgZWU9WS50b1N0cmlu''@;'; + put 'put ''ZygyKTtlZS5sZW5ndGg8VzspZWU9IjAiK2VlO2Zvcih2YXIgcT1bXSxKPTA7SjxXO0orPU4pcS5wdXNoKGVlLnNsaWNlKEosSitOKSk7cmV0dXJuIHEuam9pbigiICIpfX0sMjYwNzooVSxRLFopPT57dmFyIGllPVooODc2NCkuQnVmZmVyLGFlPVooMzU5MCksWT1aKDk3OTkpLFc9Wig3NDI2''@;'; + put 'put ''KSxOPXtiaW5hcnk6ITAsaGV4OiEwLGJhc2U2NDohMH07US5EaWZmaWVIZWxsbWFuR3JvdXA9US5jcmVhdGVEaWZmaWVIZWxsbWFuR3JvdXA9US5nZXREaWZmaWVIZWxsbWFuPWZ1bmN0aW9uKGVlKXt2YXIgcT1uZXcgaWUoWVtlZV0ucHJpbWUsImhleCIpLEo9bmV3IGllKFlbZWVdLmdlbiwi''@;'; + put 'put ''aGV4Iik7cmV0dXJuIG5ldyBXKHEsSil9LFEuY3JlYXRlRGlmZmllSGVsbG1hbj1RLkRpZmZpZUhlbGxtYW49ZnVuY3Rpb24gZWUocSxKLHNlLG9lKXtyZXR1cm4gaWUuaXNCdWZmZXIoSil8fHZvaWQgMD09PU5bSl0/ZWUocSwiYmluYXJ5IixKLHNlKTooSj1KfHwiYmluYXJ5IixvZT1vZXx8''@;'; + put 'put ''ImJpbmFyeSIsc2U9c2V8fG5ldyBpZShbMl0pLGllLmlzQnVmZmVyKHNlKXx8KHNlPW5ldyBpZShzZSxvZSkpLCJudW1iZXIiPT10eXBlb2YgcT9uZXcgVyhhZShxLHNlKSxzZSwhMCk6KGllLmlzQnVmZmVyKHEpfHwocT1uZXcgaWUocSxKKSksbmV3IFcocSxzZSwhMCkpKX19LDc0MjY6KFUs''@;'; + put 'put ''USxaKT0+e3ZhciBpZT1aKDg3NjQpLkJ1ZmZlcixhZT1aKDM2MjApLFk9bmV3KFooMzA0NykpLFc9bmV3IGFlKDI0KSxOPW5ldyBhZSgxMSksZWU9bmV3IGFlKDEwKSxxPW5ldyBhZSgzKSxKPW5ldyBhZSg3KSxzZT1aKDM1OTApLG9lPVooMTc5OCk7ZnVuY3Rpb24gY2UoU2UsSWUpe3JldHVy''@;'; + put 'put ''biBJZT1JZXx8InV0ZjgiLGllLmlzQnVmZmVyKFNlKXx8KFNlPW5ldyBpZShTZSxJZSkpLHRoaXMuX3B1Yj1uZXcgYWUoU2UpLHRoaXN9ZnVuY3Rpb24gZGUoU2UsSWUpe3JldHVybiBJZT1JZXx8InV0ZjgiLGllLmlzQnVmZmVyKFNlKXx8KFNlPW5ldyBpZShTZSxJZSkpLHRoaXMuX3ByaXY9''@;'; + put 'put ''bmV3IGFlKFNlKSx0aGlzfVUuZXhwb3J0cz1BZTt2YXIgdmU9e307ZnVuY3Rpb24gQWUoU2UsSWUsVGUpe3RoaXMuc2V0R2VuZXJhdG9yKEllKSx0aGlzLl9fcHJpbWU9bmV3IGFlKFNlKSx0aGlzLl9wcmltZT1hZS5tb250KHRoaXMuX19wcmltZSksdGhpcy5fcHJpbWVMZW49U2UubGVuZ3Ro''@;'; + put 'put ''LHRoaXMuX3B1Yj12b2lkIDAsdGhpcy5fcHJpdj12b2lkIDAsdGhpcy5fcHJpbWVDb2RlPXZvaWQgMCxUZT8odGhpcy5zZXRQdWJsaWNLZXk9Y2UsdGhpcy5zZXRQcml2YXRlS2V5PWRlKTp0aGlzLl9wcmltZUNvZGU9OH1mdW5jdGlvbiBrZShTZSxJZSl7dmFyIFRlPW5ldyBpZShTZS50b0Fy''@;'; + put 'put ''cmF5KCkpO3JldHVybiBJZT9UZS50b1N0cmluZyhJZSk6VGV9T2JqZWN0LmRlZmluZVByb3BlcnR5KEFlLnByb3RvdHlwZSwidmVyaWZ5RXJyb3IiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiJudW1iZXIiIT10eXBlb2YgdGhpcy5fcHJpbWVDb2RlJiYodGhpcy5fcHJp''@;'; + put 'put ''bWVDb2RlPWZ1bmN0aW9uKFNlLEllKXt2YXIgVGU9SWUudG9TdHJpbmcoImhleCIpLEVlPVtUZSxTZS50b1N0cmluZygxNildLmpvaW4oIl8iKTtpZihFZSBpbiB2ZSlyZXR1cm4gdmVbRWVdO3ZhciBoZSxPPTA7aWYoU2UuaXNFdmVuKCl8fCFzZS5zaW1wbGVTaWV2ZXx8IXNlLmZlcm1hdFRl''@;'; + put 'put ''c3QoU2UpfHwhWS50ZXN0KFNlKSlyZXR1cm4gTys9MSx2ZVtFZV09Tys9IjAyIj09PVRlfHwiMDUiPT09VGU/ODo0LE87c3dpdGNoKFkudGVzdChTZS5zaHJuKDEpKXx8KE8rPTIpLFRlKXtjYXNlIjAyIjpTZS5tb2QoVykuY21wKE4pJiYoTys9OCk7YnJlYWs7Y2FzZSIwNSI6KGhlPVNlLm1v''@;'; + put 'put ''ZChlZSkpLmNtcChxKSYmaGUuY21wKEopJiYoTys9OCk7YnJlYWs7ZGVmYXVsdDpPKz00fXJldHVybiB2ZVtFZV09TyxPfSh0aGlzLl9fcHJpbWUsdGhpcy5fX2dlbikpLHRoaXMuX3ByaW1lQ29kZX19KSxBZS5wcm90b3R5cGUuZ2VuZXJhdGVLZXlzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMu''@;'; + put 'put ''X3ByaXZ8fCh0aGlzLl9wcml2PW5ldyBhZShvZSh0aGlzLl9wcmltZUxlbikpKSx0aGlzLl9wdWI9dGhpcy5fZ2VuLnRvUmVkKHRoaXMuX3ByaW1lKS5yZWRQb3codGhpcy5fcHJpdikuZnJvbVJlZCgpLHRoaXMuZ2V0UHVibGljS2V5KCl9LEFlLnByb3RvdHlwZS5jb21wdXRlU2VjcmV0PWZ1''@;'; + put 'put ''bmN0aW9uKFNlKXt2YXIgSWU9KFNlPShTZT1uZXcgYWUoU2UpKS50b1JlZCh0aGlzLl9wcmltZSkpLnJlZFBvdyh0aGlzLl9wcml2KS5mcm9tUmVkKCksVGU9bmV3IGllKEllLnRvQXJyYXkoKSksRWU9dGhpcy5nZXRQcmltZSgpO2lmKFRlLmxlbmd0aDxFZS5sZW5ndGgpe3ZhciBoZT1uZXcg''@;'; + put 'put ''aWUoRWUubGVuZ3RoLVRlLmxlbmd0aCk7aGUuZmlsbCgwKSxUZT1pZS5jb25jYXQoW2hlLFRlXSl9cmV0dXJuIFRlfSxBZS5wcm90b3R5cGUuZ2V0UHVibGljS2V5PWZ1bmN0aW9uKFNlKXtyZXR1cm4ga2UodGhpcy5fcHViLFNlKX0sQWUucHJvdG90eXBlLmdldFByaXZhdGVLZXk9ZnVuY3Rp''@;'; + put 'put ''b24oU2Upe3JldHVybiBrZSh0aGlzLl9wcml2LFNlKX0sQWUucHJvdG90eXBlLmdldFByaW1lPWZ1bmN0aW9uKFNlKXtyZXR1cm4ga2UodGhpcy5fX3ByaW1lLFNlKX0sQWUucHJvdG90eXBlLmdldEdlbmVyYXRvcj1mdW5jdGlvbihTZSl7cmV0dXJuIGtlKHRoaXMuX2dlbixTZSl9LEFlLnBy''@;'; + put 'put ''b3RvdHlwZS5zZXRHZW5lcmF0b3I9ZnVuY3Rpb24oU2UsSWUpe3JldHVybiBJZT1JZXx8InV0ZjgiLGllLmlzQnVmZmVyKFNlKXx8KFNlPW5ldyBpZShTZSxJZSkpLHRoaXMuX19nZW49U2UsdGhpcy5fZ2VuPW5ldyBhZShTZSksdGhpc319LDM1OTA6KFUsUSxaKT0+e3ZhciBpZT1aKDE3OTgp''@;'; + put 'put ''O1UuZXhwb3J0cz1TZSxTZS5zaW1wbGVTaWV2ZT1BZSxTZS5mZXJtYXRUZXN0PWtlO3ZhciBhZT1aKDM2MjApLFk9bmV3IGFlKDI0KSxXPW5ldyhaKDMwNDcpKSxOPW5ldyBhZSgxKSxlZT1uZXcgYWUoMikscT1uZXcgYWUoNSksSj0obmV3IGFlKDE2KSxuZXcgYWUoOCksbmV3IGFlKDEwKSks''@;'; + put 'put ''c2U9bmV3IGFlKDMpLG9lPShuZXcgYWUoNyksbmV3IGFlKDExKSksY2U9bmV3IGFlKDQpLGRlPShuZXcgYWUoMTIpLG51bGwpO2Z1bmN0aW9uIEFlKEllKXtmb3IodmFyIFRlPWZ1bmN0aW9uIHZlKCl7aWYobnVsbCE9PWRlKXJldHVybiBkZTt2YXIgSWU9W107SWVbMF09Mjtmb3IodmFyIFRl''@;'; + put 'put ''PTEsRWU9MztFZTwxMDQ4NTc2O0VlKz0yKXtmb3IodmFyIGhlPU1hdGguY2VpbChNYXRoLnNxcnQoRWUpKSxPPTA7TzxUZSYmSWVbT108PWhlJiZFZSVJZVtPXSE9MDtPKyspO1RlIT09TyYmSWVbT108PWhlfHwoSWVbVGUrK109RWUpfXJldHVybiBkZT1JZSxJZX0oKSxFZT0wO0VlPFRlLmxl''@;'; + put 'put ''bmd0aDtFZSsrKWlmKDA9PT1JZS5tb2RuKFRlW0VlXSkpcmV0dXJuIDA9PT1JZS5jbXBuKFRlW0VlXSk7cmV0dXJuITB9ZnVuY3Rpb24ga2UoSWUpe3ZhciBUZT1hZS5tb250KEllKTtyZXR1cm4gMD09PWVlLnRvUmVkKFRlKS5yZWRQb3coSWUuc3VibigxKSkuZnJvbVJlZCgpLmNtcG4oMSl9''@;'; + put 'put ''ZnVuY3Rpb24gU2UoSWUsVGUpe2lmKEllPDE2KXJldHVybiBuZXcgYWUoMj09PVRlfHw1PT09VGU/WzE0MCwxMjNdOlsxNDAsMzldKTt2YXIgRWUsaGU7Zm9yKFRlPW5ldyBhZShUZSk7Oyl7Zm9yKEVlPW5ldyBhZShpZShNYXRoLmNlaWwoSWUvOCkpKTtFZS5iaXRMZW5ndGgoKT5JZTspRWUu''@;'; + put 'put ''aXNocm4oMSk7aWYoRWUuaXNFdmVuKCkmJkVlLmlhZGQoTiksRWUudGVzdG4oMSl8fEVlLmlhZGQoZWUpLFRlLmNtcChlZSkpe2lmKCFUZS5jbXAocSkpZm9yKDtFZS5tb2QoSikuY21wKHNlKTspRWUuaWFkZChjZSl9ZWxzZSBmb3IoO0VlLm1vZChZKS5jbXAob2UpOylFZS5pYWRkKGNlKTtp''@;'; + put 'put ''ZihBZShoZT1FZS5zaHJuKDEpKSYmQWUoRWUpJiZrZShoZSkmJmtlKEVlKSYmVy50ZXN0KGhlKSYmVy50ZXN0KEVlKSlyZXR1cm4gRWV9fX0sMzYyMDpmdW5jdGlvbihVLFEsWil7IWZ1bmN0aW9uKGllLGFlKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gWSh4LFApe2lmKCF4KXRocm93IG5ldyBF''@;'; + put 'put ''cnJvcihQfHwiQXNzZXJ0aW9uIGZhaWxlZCIpfWZ1bmN0aW9uIFcoeCxQKXt4LnN1cGVyXz1QO3ZhciBWPWZ1bmN0aW9uKCl7fTtWLnByb3RvdHlwZT1QLnByb3RvdHlwZSx4LnByb3RvdHlwZT1uZXcgVix4LnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj14fWZ1bmN0aW9uIE4oeCxQLFYpe2lmKE4u''@;'; + put 'put ''aXNCTih4KSlyZXR1cm4geDt0aGlzLm5lZ2F0aXZlPTAsdGhpcy53b3Jkcz1udWxsLHRoaXMubGVuZ3RoPTAsdGhpcy5yZWQ9bnVsbCxudWxsIT09eCYmKCJsZSIhPT1QJiYiYmUiIT09UHx8KFY9UCxQPTEwKSx0aGlzLl9pbml0KHh8fDAsUHx8MTAsVnx8ImJlIikpfXZhciBlZTsib2JqZWN0''@;'; + put 'put ''Ij09dHlwZW9mIGllP2llLmV4cG9ydHM9TjphZS5CTj1OLE4uQk49TixOLndvcmRTaXplPTI2O3RyeXtlZT0idW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyYmdm9pZCAwIT09d2luZG93LkJ1ZmZlcj93aW5kb3cuQnVmZmVyOlooNzc0OCkuQnVmZmVyfWNhdGNoKHgpe31mdW5jdGlvbiBxKHgs''@;'; + put 'put ''UCl7dmFyIFY9eC5jaGFyQ29kZUF0KFApO3JldHVybiBWPj02NSYmVjw9NzA/Vi01NTpWPj05NyYmVjw9MTAyP1YtODc6Vi00OCYxNX1mdW5jdGlvbiBKKHgsUCxWKXt2YXIgVD1xKHgsVik7cmV0dXJuIFYtMT49UCYmKFR8PXEoeCxWLTEpPDw0KSxUfWZ1bmN0aW9uIHNlKHgsUCxWLFQpe2Zv''@;'; + put 'put ''cih2YXIgUz0wLEY9TWF0aC5taW4oeC5sZW5ndGgsVikseWU9UDt5ZTxGO3llKyspe3ZhciBDZT14LmNoYXJDb2RlQXQoeWUpLTQ4O1MqPVQsUys9Q2U+PTQ5P0NlLTQ5KzEwOkNlPj0xNz9DZS0xNysxMDpDZX1yZXR1cm4gU31OLmlzQk49ZnVuY3Rpb24oeCl7cmV0dXJuIHggaW5zdGFuY2Vv''@;'; + put 'put ''ZiBOfHxudWxsIT09eCYmIm9iamVjdCI9PXR5cGVvZiB4JiZ4LmNvbnN0cnVjdG9yLndvcmRTaXplPT09Ti53b3JkU2l6ZSYmQXJyYXkuaXNBcnJheSh4LndvcmRzKX0sTi5tYXg9ZnVuY3Rpb24oeCxQKXtyZXR1cm4geC5jbXAoUCk+MD94OlB9LE4ubWluPWZ1bmN0aW9uKHgsUCl7cmV0dXJu''@;'; + put 'put ''IHguY21wKFApPDA/eDpQfSxOLnByb3RvdHlwZS5faW5pdD1mdW5jdGlvbih4LFAsVil7aWYoIm51bWJlciI9PXR5cGVvZiB4KXJldHVybiB0aGlzLl9pbml0TnVtYmVyKHgsUCxWKTtpZigib2JqZWN0Ij09dHlwZW9mIHgpcmV0dXJuIHRoaXMuX2luaXRBcnJheSh4LFAsVik7ImhleCI9PT1Q''@;'; + put 'put ''JiYoUD0xNiksWShQPT09KDB8UCkmJlA+PTImJlA8PTM2KTt2YXIgVD0wOyItIj09PSh4PXgudG9TdHJpbmcoKS5yZXBsYWNlKC9ccysvZywiIikpWzBdJiYoVCsrLHRoaXMubmVnYXRpdmU9MSksVDx4Lmxlbmd0aCYmKDE2PT09UD90aGlzLl9wYXJzZUhleCh4LFQsVik6KHRoaXMuX3BhcnNl''@;'; + put 'put ''QmFzZSh4LFAsVCksImxlIj09PVYmJnRoaXMuX2luaXRBcnJheSh0aGlzLnRvQXJyYXkoKSxQLFYpKSl9LE4ucHJvdG90eXBlLl9pbml0TnVtYmVyPWZ1bmN0aW9uKHgsUCxWKXt4PDAmJih0aGlzLm5lZ2F0aXZlPTEseD0teCkseDw2NzEwODg2ND8odGhpcy53b3Jkcz1bNjcxMDg4NjMmeF0s''@;'; + put 'put ''dGhpcy5sZW5ndGg9MSk6eDw0NTAzNTk5NjI3MzcwNDk2Pyh0aGlzLndvcmRzPVs2NzEwODg2MyZ4LHgvNjcxMDg4NjQmNjcxMDg4NjNdLHRoaXMubGVuZ3RoPTIpOihZKHg8OTAwNzE5OTI1NDc0MDk5MiksdGhpcy53b3Jkcz1bNjcxMDg4NjMmeCx4LzY3MTA4ODY0JjY3MTA4ODYzLDFdLHRo''@;'; + put 'put ''aXMubGVuZ3RoPTMpLCJsZSI9PT1WJiZ0aGlzLl9pbml0QXJyYXkodGhpcy50b0FycmF5KCksUCxWKX0sTi5wcm90b3R5cGUuX2luaXRBcnJheT1mdW5jdGlvbih4LFAsVil7aWYoWSgibnVtYmVyIj09dHlwZW9mIHgubGVuZ3RoKSx4Lmxlbmd0aDw9MClyZXR1cm4gdGhpcy53b3Jkcz1bMF0s''@;'; + put 'put ''dGhpcy5sZW5ndGg9MSx0aGlzO3RoaXMubGVuZ3RoPU1hdGguY2VpbCh4Lmxlbmd0aC8zKSx0aGlzLndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCk7Zm9yKHZhciBUPTA7VDx0aGlzLmxlbmd0aDtUKyspdGhpcy53b3Jkc1tUXT0wO3ZhciBTLEYseWU9MDtpZigiYmUiPT09Vilmb3IoVD14''@;'; + put 'put ''Lmxlbmd0aC0xLFM9MDtUPj0wO1QtPTMpdGhpcy53b3Jkc1tTXXw9KEY9eFtUXXx4W1QtMV08PDh8eFtULTJdPDwxNik8PHllJjY3MTA4ODYzLHRoaXMud29yZHNbUysxXT1GPj4+MjYteWUmNjcxMDg4NjMsKHllKz0yNCk+PTI2JiYoeWUtPTI2LFMrKyk7ZWxzZSBpZigibGUiPT09Vilmb3Io''@;'; + put 'put ''VD0wLFM9MDtUPHgubGVuZ3RoO1QrPTMpdGhpcy53b3Jkc1tTXXw9KEY9eFtUXXx4W1QrMV08PDh8eFtUKzJdPDwxNik8PHllJjY3MTA4ODYzLHRoaXMud29yZHNbUysxXT1GPj4+MjYteWUmNjcxMDg4NjMsKHllKz0yNCk+PTI2JiYoeWUtPTI2LFMrKyk7cmV0dXJuIHRoaXMuc3RyaXAoKX0s''@;'; + put 'put ''Ti5wcm90b3R5cGUuX3BhcnNlSGV4PWZ1bmN0aW9uKHgsUCxWKXt0aGlzLmxlbmd0aD1NYXRoLmNlaWwoKHgubGVuZ3RoLVApLzYpLHRoaXMud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoKTtmb3IodmFyIFQ9MDtUPHRoaXMubGVuZ3RoO1QrKyl0aGlzLndvcmRzW1RdPTA7dmFyIFMsRj0w''@;'; + put 'put ''LHllPTA7aWYoImJlIj09PVYpZm9yKFQ9eC5sZW5ndGgtMTtUPj1QO1QtPTIpUz1KKHgsUCxUKTw8Rix0aGlzLndvcmRzW3llXXw9NjcxMDg4NjMmUyxGPj0xOD8oRi09MTgsdGhpcy53b3Jkc1t5ZSs9MV18PVM+Pj4yNik6Ris9ODtlbHNlIGZvcihUPSh4Lmxlbmd0aC1QKSUyPT0wP1ArMTpQ''@;'; + put 'put ''O1Q8eC5sZW5ndGg7VCs9MilTPUooeCxQLFQpPDxGLHRoaXMud29yZHNbeWVdfD02NzEwODg2MyZTLEY+PTE4PyhGLT0xOCx0aGlzLndvcmRzW3llKz0xXXw9Uz4+PjI2KTpGKz04O3RoaXMuc3RyaXAoKX0sTi5wcm90b3R5cGUuX3BhcnNlQmFzZT1mdW5jdGlvbih4LFAsVil7dGhpcy53b3Jk''@;'; + put 'put ''cz1bMF0sdGhpcy5sZW5ndGg9MTtmb3IodmFyIFQ9MCxTPTE7Uzw9NjcxMDg4NjM7Uyo9UClUKys7VC0tLFM9Uy9QfDA7Zm9yKHZhciBGPXgubGVuZ3RoLVYseWU9RiVULENlPU1hdGgubWluKEYsRi15ZSkrVixEZT0wLFBlPVY7UGU8Q2U7UGUrPVQpRGU9c2UoeCxQZSxQZStULFApLHRoaXMu''@;'; + put 'put ''aW11bG4oUyksdGhpcy53b3Jkc1swXStEZTw2NzEwODg2ND90aGlzLndvcmRzWzBdKz1EZTp0aGlzLl9pYWRkbihEZSk7aWYoMCE9PXllKXt2YXIgUWU9MTtmb3IoRGU9c2UoeCxQZSx4Lmxlbmd0aCxQKSxQZT0wO1BlPHllO1BlKyspUWUqPVA7dGhpcy5pbXVsbihRZSksdGhpcy53b3Jkc1sw''@;'; + put 'put ''XStEZTw2NzEwODg2ND90aGlzLndvcmRzWzBdKz1EZTp0aGlzLl9pYWRkbihEZSl9dGhpcy5zdHJpcCgpfSxOLnByb3RvdHlwZS5jb3B5PWZ1bmN0aW9uKHgpe3gud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoKTtmb3IodmFyIFA9MDtQPHRoaXMubGVuZ3RoO1ArKyl4LndvcmRzW1BdPXRo''@;'; + put 'put ''aXMud29yZHNbUF07eC5sZW5ndGg9dGhpcy5sZW5ndGgseC5uZWdhdGl2ZT10aGlzLm5lZ2F0aXZlLHgucmVkPXRoaXMucmVkfSxOLnByb3RvdHlwZS5jbG9uZT1mdW5jdGlvbigpe3ZhciB4PW5ldyBOKG51bGwpO3JldHVybiB0aGlzLmNvcHkoeCkseH0sTi5wcm90b3R5cGUuX2V4cGFuZD1m''@;'; + put 'put ''dW5jdGlvbih4KXtmb3IoO3RoaXMubGVuZ3RoPHg7KXRoaXMud29yZHNbdGhpcy5sZW5ndGgrK109MDtyZXR1cm4gdGhpc30sTi5wcm90b3R5cGUuc3RyaXA9ZnVuY3Rpb24oKXtmb3IoO3RoaXMubGVuZ3RoPjEmJjA9PT10aGlzLndvcmRzW3RoaXMubGVuZ3RoLTFdOyl0aGlzLmxlbmd0aC0t''@;'; + put 'put ''O3JldHVybiB0aGlzLl9ub3JtU2lnbigpfSxOLnByb3RvdHlwZS5fbm9ybVNpZ249ZnVuY3Rpb24oKXtyZXR1cm4gMT09PXRoaXMubGVuZ3RoJiYwPT09dGhpcy53b3Jkc1swXSYmKHRoaXMubmVnYXRpdmU9MCksdGhpc30sTi5wcm90b3R5cGUuaW5zcGVjdD1mdW5jdGlvbigpe3JldHVybih0''@;'; + put 'put ''aGlzLnJlZD8iPEJOLVI6ICI6IjxCTjogIikrdGhpcy50b1N0cmluZygxNikrIj4ifTt2YXIgb2U9WyIiLCIwIiwiMDAiLCIwMDAiLCIwMDAwIiwiMDAwMDAiLCIwMDAwMDAiLCIwMDAwMDAwIiwiMDAwMDAwMDAiLCIwMDAwMDAwMDAiLCIwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAiLCIwMDAw''@;'; + put 'put ''MDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAi''@;'; + put 'put ''LCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIl0sY2U9WzAsMCwyNSwxNiwxMiwxMSwxMCw5LDgsOCw3LDcs''@;'; + put 'put ''Nyw3LDYsNiw2LDYsNiw2LDYsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNV0sZGU9WzAsMCwzMzU1NDQzMiw0MzA0NjcyMSwxNjc3NzIxNiw0ODgyODEyNSw2MDQ2NjE3Niw0MDM1MzYwNywxNjc3NzIxNiw0MzA0NjcyMSwxZTcsMTk0ODcxNzEsMzU4MzE4MDgsNjI3NDg1MTcsNzUy''@;'; + put 'put ''OTUzNiwxMTM5MDYyNSwxNjc3NzIxNiwyNDEzNzU2OSwzNDAxMjIyNCw0NzA0NTg4MSw2NGU2LDQwODQxMDEsNTE1MzYzMiw2NDM2MzQzLDc5NjI2MjQsOTc2NTYyNSwxMTg4MTM3NiwxNDM0ODkwNywxNzIxMDM2OCwyMDUxMTE0OSwyNDNlNSwyODYyOTE1MSwzMzU1NDQzMiwzOTEzNTM5Myw0''@;'; + put 'put ''NTQzNTQyNCw1MjUyMTg3NSw2MDQ2NjE3Nl07ZnVuY3Rpb24gdmUoeCxQLFYpe1YubmVnYXRpdmU9UC5uZWdhdGl2ZV54Lm5lZ2F0aXZlO3ZhciBUPXgubGVuZ3RoK1AubGVuZ3RofDA7Vi5sZW5ndGg9VCxUPVQtMXwwO3ZhciBTPTB8eC53b3Jkc1swXSxGPTB8UC53b3Jkc1swXSx5ZT1TKkYs''@;'; + put 'put ''RGU9eWUvNjcxMDg4NjR8MDtWLndvcmRzWzBdPTY3MTA4ODYzJnllO2Zvcih2YXIgUGU9MTtQZTxUO1BlKyspe2Zvcih2YXIgUWU9RGU+Pj4yNiwkZT02NzEwODg2MyZEZSxndD1NYXRoLm1pbihQZSxQLmxlbmd0aC0xKSx3dD1NYXRoLm1heCgwLFBlLXgubGVuZ3RoKzEpO3d0PD1ndDt3dCsr''@;'; + put 'put ''KVFlKz0oeWU9KFM9MHx4LndvcmRzW1BlLXd0fDBdKSooRj0wfFAud29yZHNbd3RdKSskZSkvNjcxMDg4NjR8MCwkZT02NzEwODg2MyZ5ZTtWLndvcmRzW1BlXT0wfCRlLERlPTB8UWV9cmV0dXJuIDAhPT1EZT9WLndvcmRzW1BlXT0wfERlOlYubGVuZ3RoLS0sVi5zdHJpcCgpfU4ucHJvdG90''@;'; + put 'put ''eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKHgsUCl7dmFyIFY7aWYoUD0wfFB8fDEsMTY9PT0oeD14fHwxMCl8fCJoZXgiPT09eCl7Vj0iIjtmb3IodmFyIFQ9MCxTPTAsRj0wO0Y8dGhpcy5sZW5ndGg7RisrKXt2YXIgeWU9dGhpcy53b3Jkc1tGXSxDZT0oMTY3NzcyMTUmKHllPDxUfFMpKS50b1N0''@;'; + put 'put ''cmluZygxNik7Vj0wIT0oUz15ZT4+PjI0LVQmMTY3NzcyMTUpfHxGIT09dGhpcy5sZW5ndGgtMT9vZVs2LUNlLmxlbmd0aF0rQ2UrVjpDZStWLChUKz0yKT49MjYmJihULT0yNixGLS0pfWZvcigwIT09UyYmKFY9Uy50b1N0cmluZygxNikrVik7Vi5sZW5ndGglUCE9MDspVj0iMCIrVjtyZXR1''@;'; + put 'put ''cm4gMCE9PXRoaXMubmVnYXRpdmUmJihWPSItIitWKSxWfWlmKHg9PT0oMHx4KSYmeD49MiYmeDw9MzYpe3ZhciBEZT1jZVt4XSxQZT1kZVt4XTtWPSIiO3ZhciBRZT10aGlzLmNsb25lKCk7Zm9yKFFlLm5lZ2F0aXZlPTA7IVFlLmlzWmVybygpOyl7dmFyICRlPVFlLm1vZG4oUGUpLnRvU3Ry''@;'; + put 'put ''aW5nKHgpO1Y9KFFlPVFlLmlkaXZuKFBlKSkuaXNaZXJvKCk/JGUrVjpvZVtEZS0kZS5sZW5ndGhdKyRlK1Z9Zm9yKHRoaXMuaXNaZXJvKCkmJihWPSIwIitWKTtWLmxlbmd0aCVQIT0wOylWPSIwIitWO3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZSYmKFY9Ii0iK1YpLFZ9WSghMSwiQmFzZSBz''@;'; + put 'put ''aG91bGQgYmUgYmV0d2VlbiAyIGFuZCAzNiIpfSxOLnByb3RvdHlwZS50b051bWJlcj1mdW5jdGlvbigpe3ZhciB4PXRoaXMud29yZHNbMF07cmV0dXJuIDI9PT10aGlzLmxlbmd0aD94Kz02NzEwODg2NCp0aGlzLndvcmRzWzFdOjM9PT10aGlzLmxlbmd0aCYmMT09PXRoaXMud29yZHNbMl0/''@;'; + put 'put ''eCs9NDUwMzU5OTYyNzM3MDQ5Nis2NzEwODg2NCp0aGlzLndvcmRzWzFdOnRoaXMubGVuZ3RoPjImJlkoITEsIk51bWJlciBjYW4gb25seSBzYWZlbHkgc3RvcmUgdXAgdG8gNTMgYml0cyIpLDAhPT10aGlzLm5lZ2F0aXZlPy14Onh9LE4ucHJvdG90eXBlLnRvSlNPTj1mdW5jdGlvbigpe3Jl''@;'; + put 'put ''dHVybiB0aGlzLnRvU3RyaW5nKDE2KX0sTi5wcm90b3R5cGUudG9CdWZmZXI9ZnVuY3Rpb24oeCxQKXtyZXR1cm4gWSh2b2lkIDAhPT1lZSksdGhpcy50b0FycmF5TGlrZShlZSx4LFApfSxOLnByb3RvdHlwZS50b0FycmF5PWZ1bmN0aW9uKHgsUCl7cmV0dXJuIHRoaXMudG9BcnJheUxpa2Uo''@;'; + put 'put ''QXJyYXkseCxQKX0sTi5wcm90b3R5cGUudG9BcnJheUxpa2U9ZnVuY3Rpb24oeCxQLFYpe3ZhciBUPXRoaXMuYnl0ZUxlbmd0aCgpLFM9Vnx8TWF0aC5tYXgoMSxUKTtZKFQ8PVMsImJ5dGUgYXJyYXkgbG9uZ2VyIHRoYW4gZGVzaXJlZCBsZW5ndGgiKSxZKFM+MCwiUmVxdWVzdGVkIGFycmF5''@;'; + put 'put ''IGxlbmd0aCA8PSAwIiksdGhpcy5zdHJpcCgpO3ZhciBGLHllLENlPSJsZSI9PT1QLERlPW5ldyB4KFMpLFBlPXRoaXMuY2xvbmUoKTtpZihDZSl7Zm9yKHllPTA7IVBlLmlzWmVybygpO3llKyspRj1QZS5hbmRsbigyNTUpLFBlLml1c2hybig4KSxEZVt5ZV09Rjtmb3IoO3llPFM7eWUrKylE''@;'; + put 'put ''ZVt5ZV09MH1lbHNle2Zvcih5ZT0wO3llPFMtVDt5ZSsrKURlW3llXT0wO2Zvcih5ZT0wOyFQZS5pc1plcm8oKTt5ZSsrKUY9UGUuYW5kbG4oMjU1KSxQZS5pdXNocm4oOCksRGVbUy15ZS0xXT1GfXJldHVybiBEZX0sTi5wcm90b3R5cGUuX2NvdW50Qml0cz1NYXRoLmNsejMyP2Z1bmN0aW9u''@;'; + put 'put ''KHgpe3JldHVybiAzMi1NYXRoLmNsejMyKHgpfTpmdW5jdGlvbih4KXt2YXIgUD14LFY9MDtyZXR1cm4gUD49NDA5NiYmKFYrPTEzLFA+Pj49MTMpLFA+PTY0JiYoVis9NyxQPj4+PTcpLFA+PTgmJihWKz00LFA+Pj49NCksUD49MiYmKFYrPTIsUD4+Pj0yKSxWK1B9LE4ucHJvdG90eXBlLl96''@;'; + put 'put ''ZXJvQml0cz1mdW5jdGlvbih4KXtpZigwPT09eClyZXR1cm4gMjY7dmFyIFA9eCxWPTA7cmV0dXJuIDA9PSg4MTkxJlApJiYoVis9MTMsUD4+Pj0xMyksMD09KDEyNyZQKSYmKFYrPTcsUD4+Pj03KSwwPT0oMTUmUCkmJihWKz00LFA+Pj49NCksMD09KDMmUCkmJihWKz0yLFA+Pj49MiksMD09''@;'; + put 'put ''KDEmUCkmJlYrKyxWfSxOLnByb3RvdHlwZS5iaXRMZW5ndGg9ZnVuY3Rpb24oKXt2YXIgUD10aGlzLl9jb3VudEJpdHModGhpcy53b3Jkc1t0aGlzLmxlbmd0aC0xXSk7cmV0dXJuIDI2Kih0aGlzLmxlbmd0aC0xKStQfSxOLnByb3RvdHlwZS56ZXJvQml0cz1mdW5jdGlvbigpe2lmKHRoaXMu''@;'; + put 'put ''aXNaZXJvKCkpcmV0dXJuIDA7Zm9yKHZhciB4PTAsUD0wO1A8dGhpcy5sZW5ndGg7UCsrKXt2YXIgVj10aGlzLl96ZXJvQml0cyh0aGlzLndvcmRzW1BdKTtpZih4Kz1WLDI2IT09VilicmVha31yZXR1cm4geH0sTi5wcm90b3R5cGUuYnl0ZUxlbmd0aD1mdW5jdGlvbigpe3JldHVybiBNYXRo''@;'; + put 'put ''LmNlaWwodGhpcy5iaXRMZW5ndGgoKS84KX0sTi5wcm90b3R5cGUudG9Ud29zPWZ1bmN0aW9uKHgpe3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZT90aGlzLmFicygpLmlub3RuKHgpLmlhZGRuKDEpOnRoaXMuY2xvbmUoKX0sTi5wcm90b3R5cGUuZnJvbVR3b3M9ZnVuY3Rpb24oeCl7cmV0dXJu''@;'; + put 'put ''IHRoaXMudGVzdG4oeC0xKT90aGlzLm5vdG4oeCkuaWFkZG4oMSkuaW5lZygpOnRoaXMuY2xvbmUoKX0sTi5wcm90b3R5cGUuaXNOZWc9ZnVuY3Rpb24oKXtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmV9LE4ucHJvdG90eXBlLm5lZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmNsb25lKCkuaW5l''@;'; + put 'put ''ZygpfSxOLnByb3RvdHlwZS5pbmVnPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXNaZXJvKCl8fCh0aGlzLm5lZ2F0aXZlXj0xKSx0aGlzfSxOLnByb3RvdHlwZS5pdW9yPWZ1bmN0aW9uKHgpe2Zvcig7dGhpcy5sZW5ndGg8eC5sZW5ndGg7KXRoaXMud29yZHNbdGhpcy5sZW5ndGgrK109MDtm''@;'; + put 'put ''b3IodmFyIFA9MDtQPHgubGVuZ3RoO1ArKyl0aGlzLndvcmRzW1BdPXRoaXMud29yZHNbUF18eC53b3Jkc1tQXTtyZXR1cm4gdGhpcy5zdHJpcCgpfSxOLnByb3RvdHlwZS5pb3I9ZnVuY3Rpb24oeCl7cmV0dXJuIFkoMD09KHRoaXMubmVnYXRpdmV8eC5uZWdhdGl2ZSkpLHRoaXMuaXVvcih4''@;'; + put 'put ''KX0sTi5wcm90b3R5cGUub3I9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMubGVuZ3RoPngubGVuZ3RoP3RoaXMuY2xvbmUoKS5pb3IoeCk6eC5jbG9uZSgpLmlvcih0aGlzKX0sTi5wcm90b3R5cGUudW9yPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmxlbmd0aD54Lmxlbmd0aD90aGlzLmNsb25l''@;'; + put 'put ''KCkuaXVvcih4KTp4LmNsb25lKCkuaXVvcih0aGlzKX0sTi5wcm90b3R5cGUuaXVhbmQ9ZnVuY3Rpb24oeCl7dmFyIFA7UD10aGlzLmxlbmd0aD54Lmxlbmd0aD94OnRoaXM7Zm9yKHZhciBWPTA7VjxQLmxlbmd0aDtWKyspdGhpcy53b3Jkc1tWXT10aGlzLndvcmRzW1ZdJngud29yZHNbVl07''@;'; + put 'put ''cmV0dXJuIHRoaXMubGVuZ3RoPVAubGVuZ3RoLHRoaXMuc3RyaXAoKX0sTi5wcm90b3R5cGUuaWFuZD1mdW5jdGlvbih4KXtyZXR1cm4gWSgwPT0odGhpcy5uZWdhdGl2ZXx4Lm5lZ2F0aXZlKSksdGhpcy5pdWFuZCh4KX0sTi5wcm90b3R5cGUuYW5kPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlz''@;'; + put 'put ''Lmxlbmd0aD54Lmxlbmd0aD90aGlzLmNsb25lKCkuaWFuZCh4KTp4LmNsb25lKCkuaWFuZCh0aGlzKX0sTi5wcm90b3R5cGUudWFuZD1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5sZW5ndGg+eC5sZW5ndGg/dGhpcy5jbG9uZSgpLml1YW5kKHgpOnguY2xvbmUoKS5pdWFuZCh0aGlzKX0sTi5w''@;'; + put 'put ''cm90b3R5cGUuaXV4b3I9ZnVuY3Rpb24oeCl7dmFyIFAsVjt0aGlzLmxlbmd0aD54Lmxlbmd0aD8oUD10aGlzLFY9eCk6KFA9eCxWPXRoaXMpO2Zvcih2YXIgVD0wO1Q8Vi5sZW5ndGg7VCsrKXRoaXMud29yZHNbVF09UC53b3Jkc1tUXV5WLndvcmRzW1RdO2lmKHRoaXMhPT1QKWZvcig7VDxQ''@;'; + put 'put ''Lmxlbmd0aDtUKyspdGhpcy53b3Jkc1tUXT1QLndvcmRzW1RdO3JldHVybiB0aGlzLmxlbmd0aD1QLmxlbmd0aCx0aGlzLnN0cmlwKCl9LE4ucHJvdG90eXBlLml4b3I9ZnVuY3Rpb24oeCl7cmV0dXJuIFkoMD09KHRoaXMubmVnYXRpdmV8eC5uZWdhdGl2ZSkpLHRoaXMuaXV4b3IoeCl9LE4u''@;'; + put 'put ''cHJvdG90eXBlLnhvcj1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5sZW5ndGg+eC5sZW5ndGg/dGhpcy5jbG9uZSgpLml4b3IoeCk6eC5jbG9uZSgpLml4b3IodGhpcyl9LE4ucHJvdG90eXBlLnV4b3I9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMubGVuZ3RoPngubGVuZ3RoP3RoaXMuY2xvbmUo''@;'; + put 'put ''KS5pdXhvcih4KTp4LmNsb25lKCkuaXV4b3IodGhpcyl9LE4ucHJvdG90eXBlLmlub3RuPWZ1bmN0aW9uKHgpe1koIm51bWJlciI9PXR5cGVvZiB4JiZ4Pj0wKTt2YXIgUD0wfE1hdGguY2VpbCh4LzI2KSxWPXglMjY7dGhpcy5fZXhwYW5kKFApLFY+MCYmUC0tO2Zvcih2YXIgVD0wO1Q8UDtU''@;'; + put 'put ''KyspdGhpcy53b3Jkc1tUXT02NzEwODg2MyZ+dGhpcy53b3Jkc1tUXTtyZXR1cm4gVj4wJiYodGhpcy53b3Jkc1tUXT1+dGhpcy53b3Jkc1tUXSY2NzEwODg2Mz4+MjYtViksdGhpcy5zdHJpcCgpfSxOLnByb3RvdHlwZS5ub3RuPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmNsb25lKCkuaW5v''@;'; + put 'put ''dG4oeCl9LE4ucHJvdG90eXBlLnNldG49ZnVuY3Rpb24oeCxQKXtZKCJudW1iZXIiPT10eXBlb2YgeCYmeD49MCk7dmFyIFY9eC8yNnwwLFQ9eCUyNjtyZXR1cm4gdGhpcy5fZXhwYW5kKFYrMSksdGhpcy53b3Jkc1tWXT1QP3RoaXMud29yZHNbVl18MTw8VDp0aGlzLndvcmRzW1ZdJn4oMTw8''@;'; + put 'put ''VCksdGhpcy5zdHJpcCgpfSxOLnByb3RvdHlwZS5pYWRkPWZ1bmN0aW9uKHgpe3ZhciBQLFYsVDtpZigwIT09dGhpcy5uZWdhdGl2ZSYmMD09PXgubmVnYXRpdmUpcmV0dXJuIHRoaXMubmVnYXRpdmU9MCxQPXRoaXMuaXN1Yih4KSx0aGlzLm5lZ2F0aXZlXj0xLHRoaXMuX25vcm1TaWduKCk7''@;'; + put 'put ''aWYoMD09PXRoaXMubmVnYXRpdmUmJjAhPT14Lm5lZ2F0aXZlKXJldHVybiB4Lm5lZ2F0aXZlPTAsUD10aGlzLmlzdWIoeCkseC5uZWdhdGl2ZT0xLFAuX25vcm1TaWduKCk7dGhpcy5sZW5ndGg+eC5sZW5ndGg/KFY9dGhpcyxUPXgpOihWPXgsVD10aGlzKTtmb3IodmFyIFM9MCxGPTA7RjxU''@;'; + put 'put ''Lmxlbmd0aDtGKyspdGhpcy53b3Jkc1tGXT02NzEwODg2MyYoUD0oMHxWLndvcmRzW0ZdKSsoMHxULndvcmRzW0ZdKStTKSxTPVA+Pj4yNjtmb3IoOzAhPT1TJiZGPFYubGVuZ3RoO0YrKyl0aGlzLndvcmRzW0ZdPTY3MTA4ODYzJihQPSgwfFYud29yZHNbRl0pK1MpLFM9UD4+PjI2O2lmKHRo''@;'; + put 'put ''aXMubGVuZ3RoPVYubGVuZ3RoLDAhPT1TKXRoaXMud29yZHNbdGhpcy5sZW5ndGhdPVMsdGhpcy5sZW5ndGgrKztlbHNlIGlmKFYhPT10aGlzKWZvcig7RjxWLmxlbmd0aDtGKyspdGhpcy53b3Jkc1tGXT1WLndvcmRzW0ZdO3JldHVybiB0aGlzfSxOLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24o''@;'; + put 'put ''eCl7dmFyIFA7cmV0dXJuIDAhPT14Lm5lZ2F0aXZlJiYwPT09dGhpcy5uZWdhdGl2ZT8oeC5uZWdhdGl2ZT0wLFA9dGhpcy5zdWIoeCkseC5uZWdhdGl2ZV49MSxQKTowPT09eC5uZWdhdGl2ZSYmMCE9PXRoaXMubmVnYXRpdmU/KHRoaXMubmVnYXRpdmU9MCxQPXguc3ViKHRoaXMpLHRoaXMu''@;'; + put 'put ''bmVnYXRpdmU9MSxQKTp0aGlzLmxlbmd0aD54Lmxlbmd0aD90aGlzLmNsb25lKCkuaWFkZCh4KTp4LmNsb25lKCkuaWFkZCh0aGlzKX0sTi5wcm90b3R5cGUuaXN1Yj1mdW5jdGlvbih4KXtpZigwIT09eC5uZWdhdGl2ZSl7eC5uZWdhdGl2ZT0wO3ZhciBQPXRoaXMuaWFkZCh4KTtyZXR1cm4g''@;'; + put 'put ''eC5uZWdhdGl2ZT0xLFAuX25vcm1TaWduKCl9aWYoMCE9PXRoaXMubmVnYXRpdmUpcmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlzLmlhZGQoeCksdGhpcy5uZWdhdGl2ZT0xLHRoaXMuX25vcm1TaWduKCk7dmFyIFYsVCxTPXRoaXMuY21wKHgpO2lmKDA9PT1TKXJldHVybiB0aGlzLm5lZ2F0''@;'; + put 'put ''aXZlPTAsdGhpcy5sZW5ndGg9MSx0aGlzLndvcmRzWzBdPTAsdGhpcztTPjA/KFY9dGhpcyxUPXgpOihWPXgsVD10aGlzKTtmb3IodmFyIEY9MCx5ZT0wO3llPFQubGVuZ3RoO3llKyspRj0oUD0oMHxWLndvcmRzW3llXSktKDB8VC53b3Jkc1t5ZV0pK0YpPj4yNix0aGlzLndvcmRzW3llXT02''@;'; + put 'put ''NzEwODg2MyZQO2Zvcig7MCE9PUYmJnllPFYubGVuZ3RoO3llKyspRj0oUD0oMHxWLndvcmRzW3llXSkrRik+PjI2LHRoaXMud29yZHNbeWVdPTY3MTA4ODYzJlA7aWYoMD09PUYmJnllPFYubGVuZ3RoJiZWIT09dGhpcylmb3IoO3llPFYubGVuZ3RoO3llKyspdGhpcy53b3Jkc1t5ZV09Vi53''@;'; + put 'put ''b3Jkc1t5ZV07cmV0dXJuIHRoaXMubGVuZ3RoPU1hdGgubWF4KHRoaXMubGVuZ3RoLHllKSxWIT09dGhpcyYmKHRoaXMubmVnYXRpdmU9MSksdGhpcy5zdHJpcCgpfSxOLnByb3RvdHlwZS5zdWI9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc3ViKHgpfTt2YXIgQWU9ZnVuY3Rp''@;'; + put 'put ''b24oeCxQLFYpe3ZhciBULFMsRix5ZT14LndvcmRzLENlPVAud29yZHMsRGU9Vi53b3JkcyxQZT0wLFFlPTB8eWVbMF0sJGU9ODE5MSZRZSxndD1RZT4+PjEzLHd0PTB8eWVbMV0sbXQ9ODE5MSZ3dCx2dD13dD4+PjEzLEF0PTB8eWVbMl0saHQ9ODE5MSZBdCxCdD1BdD4+PjEzLG9uPTB8eWVb''@;'; + put 'put ''M10sX3Q9ODE5MSZvbix0dD1vbj4+PjEzLGV0PTB8eWVbNF0sYXQ9ODE5MSZldCxMdD1ldD4+PjEzLEN0PTB8eWVbNV0sZnQ9ODE5MSZDdCxIdD1DdD4+PjEzLEdlPTB8eWVbNl0sVWU9ODE5MSZHZSx5dD1HZT4+PjEzLGp0PTB8eWVbN10sUXQ9ODE5MSZqdCxnbj1qdD4+PjEzLGRuPTB8eWVb''@;'; + put 'put ''OF0seW49ODE5MSZkbixsbj1kbj4+PjEzLE5uPTB8eWVbOV0sYm49ODE5MSZObixlcj1Obj4+PjEzLHNyPTB8Q2VbMF0sWG49ODE5MSZzcixGcj1zcj4+PjEzLHhyPTB8Q2VbMV0scXQ9ODE5MSZ4cixwcj14cj4+PjEzLG5yPTB8Q2VbMl0sQW49ODE5MSZucixxbj1ucj4+PjEzLFd0PTB8Q2Vb''@;'; + put 'put ''M10scG49ODE5MSZXdCxLbj1XdD4+PjEzLE50PTB8Q2VbNF0sc249ODE5MSZOdCxVbj1OdD4+PjEzLHduPTB8Q2VbNV0sdG49ODE5MSZ3bix6bj13bj4+PjEzLFRyPTB8Q2VbNl0sQm49ODE5MSZUcixrcj1Ucj4+PjEzLG1uPTB8Q2VbN10sdW49ODE5MSZtbixjbj1tbj4+PjEzLF9uPTB8Q2Vb''@;'; + put 'put ''OF0sR3Q9ODE5MSZfbixrbj1fbj4+PjEzLFZuPTB8Q2VbOV0sZW49ODE5MSZWbixJbj1Wbj4+PjEzO1YubmVnYXRpdmU9eC5uZWdhdGl2ZV5QLm5lZ2F0aXZlLFYubGVuZ3RoPTE5O3ZhciBKbj0oUGUrKFQ9TWF0aC5pbXVsKCRlLFhuKSl8MCkrKCg4MTkxJihTPShTPU1hdGguaW11bCgkZSxG''@;'; + put 'put ''cikpK01hdGguaW11bChndCxYbil8MCkpPDwxMyl8MDtQZT0oKEY9TWF0aC5pbXVsKGd0LEZyKSkrKFM+Pj4xMyl8MCkrKEpuPj4+MjYpfDAsSm4mPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKG10LFhuKSxTPShTPU1hdGguaW11bChtdCxGcikpK01hdGguaW11bCh2dCxYbil8MCxGPU1hdGguaW11''@;'; + put 'put ''bCh2dCxGcik7dmFyIG9yPShQZSsoVD1UK01hdGguaW11bCgkZSxxdCl8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKCRlLHByKXwwKStNYXRoLmltdWwoZ3QscXQpfDApKTw8MTMpfDA7UGU9KChGPUYrTWF0aC5pbXVsKGd0LHByKXwwKSsoUz4+PjEzKXwwKSsob3I+Pj4yNil8MCxv''@;'; + put 'put ''ciY9NjcxMDg4NjMsVD1NYXRoLmltdWwoaHQsWG4pLFM9KFM9TWF0aC5pbXVsKGh0LEZyKSkrTWF0aC5pbXVsKEJ0LFhuKXwwLEY9TWF0aC5pbXVsKEJ0LEZyKSxUPVQrTWF0aC5pbXVsKG10LHF0KXwwLFM9KFM9UytNYXRoLmltdWwobXQscHIpfDApK01hdGguaW11bCh2dCxxdCl8MCxGPUYr''@;'; + put 'put ''TWF0aC5pbXVsKHZ0LHByKXwwO3ZhciBncj0oUGUrKFQ9VCtNYXRoLmltdWwoJGUsQW4pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bCgkZSxxbil8MCkrTWF0aC5pbXVsKGd0LEFuKXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGguaW11bChndCxxbil8MCkrKFM+Pj4xMyl8MCkrKGdy''@;'; + put 'put ''Pj4+MjYpfDAsZ3ImPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKF90LFhuKSxTPShTPU1hdGguaW11bChfdCxGcikpK01hdGguaW11bCh0dCxYbil8MCxGPU1hdGguaW11bCh0dCxGciksVD1UK01hdGguaW11bChodCxxdCl8MCxTPShTPVMrTWF0aC5pbXVsKGh0LHByKXwwKStNYXRoLmltdWwoQnQs''@;'; + put 'put ''cXQpfDAsRj1GK01hdGguaW11bChCdCxwcil8MCxUPVQrTWF0aC5pbXVsKG10LEFuKXwwLFM9KFM9UytNYXRoLmltdWwobXQscW4pfDApK01hdGguaW11bCh2dCxBbil8MCxGPUYrTWF0aC5pbXVsKHZ0LHFuKXwwO3ZhciBLcj0oUGUrKFQ9VCtNYXRoLmltdWwoJGUscG4pfDApfDApKygoODE5''@;'; + put 'put ''MSYoUz0oUz1TK01hdGguaW11bCgkZSxLbil8MCkrTWF0aC5pbXVsKGd0LHBuKXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGguaW11bChndCxLbil8MCkrKFM+Pj4xMyl8MCkrKEtyPj4+MjYpfDAsS3ImPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGF0LFhuKSxTPShTPU1hdGguaW11bChhdCxGcikp''@;'; + put 'put ''K01hdGguaW11bChMdCxYbil8MCxGPU1hdGguaW11bChMdCxGciksVD1UK01hdGguaW11bChfdCxxdCl8MCxTPShTPVMrTWF0aC5pbXVsKF90LHByKXwwKStNYXRoLmltdWwodHQscXQpfDAsRj1GK01hdGguaW11bCh0dCxwcil8MCxUPVQrTWF0aC5pbXVsKGh0LEFuKXwwLFM9KFM9UytNYXRo''@;'; + put 'put ''LmltdWwoaHQscW4pfDApK01hdGguaW11bChCdCxBbil8MCxGPUYrTWF0aC5pbXVsKEJ0LHFuKXwwLFQ9VCtNYXRoLmltdWwobXQscG4pfDAsUz0oUz1TK01hdGguaW11bChtdCxLbil8MCkrTWF0aC5pbXVsKHZ0LHBuKXwwLEY9RitNYXRoLmltdWwodnQsS24pfDA7dmFyIFZyPShQZSsoVD1U''@;'; + put 'put ''K01hdGguaW11bCgkZSxzbil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKCRlLFVuKXwwKStNYXRoLmltdWwoZ3Qsc24pfDApKTw8MTMpfDA7UGU9KChGPUYrTWF0aC5pbXVsKGd0LFVuKXwwKSsoUz4+PjEzKXwwKSsoVnI+Pj4yNil8MCxWciY9NjcxMDg4NjMsVD1NYXRoLmltdWwo''@;'; + put 'put ''ZnQsWG4pLFM9KFM9TWF0aC5pbXVsKGZ0LEZyKSkrTWF0aC5pbXVsKEh0LFhuKXwwLEY9TWF0aC5pbXVsKEh0LEZyKSxUPVQrTWF0aC5pbXVsKGF0LHF0KXwwLFM9KFM9UytNYXRoLmltdWwoYXQscHIpfDApK01hdGguaW11bChMdCxxdCl8MCxGPUYrTWF0aC5pbXVsKEx0LHByKXwwLFQ9VCtN''@;'; + put 'put ''YXRoLmltdWwoX3QsQW4pfDAsUz0oUz1TK01hdGguaW11bChfdCxxbil8MCkrTWF0aC5pbXVsKHR0LEFuKXwwLEY9RitNYXRoLmltdWwodHQscW4pfDAsVD1UK01hdGguaW11bChodCxwbil8MCxTPShTPVMrTWF0aC5pbXVsKGh0LEtuKXwwKStNYXRoLmltdWwoQnQscG4pfDAsRj1GK01hdGgu''@;'; + put 'put ''aW11bChCdCxLbil8MCxUPVQrTWF0aC5pbXVsKG10LHNuKXwwLFM9KFM9UytNYXRoLmltdWwobXQsVW4pfDApK01hdGguaW11bCh2dCxzbil8MCxGPUYrTWF0aC5pbXVsKHZ0LFVuKXwwO3ZhciBpaT0oUGUrKFQ9VCtNYXRoLmltdWwoJGUsdG4pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGgu''@;'; + put 'put ''aW11bCgkZSx6bil8MCkrTWF0aC5pbXVsKGd0LHRuKXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGguaW11bChndCx6bil8MCkrKFM+Pj4xMyl8MCkrKGlpPj4+MjYpfDAsaWkmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKFVlLFhuKSxTPShTPU1hdGguaW11bChVZSxGcikpK01hdGguaW11bCh5dCxY''@;'; + put 'put ''bil8MCxGPU1hdGguaW11bCh5dCxGciksVD1UK01hdGguaW11bChmdCxxdCl8MCxTPShTPVMrTWF0aC5pbXVsKGZ0LHByKXwwKStNYXRoLmltdWwoSHQscXQpfDAsRj1GK01hdGguaW11bChIdCxwcil8MCxUPVQrTWF0aC5pbXVsKGF0LEFuKXwwLFM9KFM9UytNYXRoLmltdWwoYXQscW4pfDAp''@;'; + put 'put ''K01hdGguaW11bChMdCxBbil8MCxGPUYrTWF0aC5pbXVsKEx0LHFuKXwwLFQ9VCtNYXRoLmltdWwoX3QscG4pfDAsUz0oUz1TK01hdGguaW11bChfdCxLbil8MCkrTWF0aC5pbXVsKHR0LHBuKXwwLEY9RitNYXRoLmltdWwodHQsS24pfDAsVD1UK01hdGguaW11bChodCxzbil8MCxTPShTPVMr''@;'; + put 'put ''TWF0aC5pbXVsKGh0LFVuKXwwKStNYXRoLmltdWwoQnQsc24pfDAsRj1GK01hdGguaW11bChCdCxVbil8MCxUPVQrTWF0aC5pbXVsKG10LHRuKXwwLFM9KFM9UytNYXRoLmltdWwobXQsem4pfDApK01hdGguaW11bCh2dCx0bil8MCxGPUYrTWF0aC5pbXVsKHZ0LHpuKXwwO3ZhciBScj0oUGUr''@;'; + put 'put ''KFQ9VCtNYXRoLmltdWwoJGUsQm4pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bCgkZSxrcil8MCkrTWF0aC5pbXVsKGd0LEJuKXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGguaW11bChndCxrcil8MCkrKFM+Pj4xMyl8MCkrKFJyPj4+MjYpfDAsUnImPTY3MTA4ODYzLFQ9TWF0aC5p''@;'; + put 'put ''bXVsKFF0LFhuKSxTPShTPU1hdGguaW11bChRdCxGcikpK01hdGguaW11bChnbixYbil8MCxGPU1hdGguaW11bChnbixGciksVD1UK01hdGguaW11bChVZSxxdCl8MCxTPShTPVMrTWF0aC5pbXVsKFVlLHByKXwwKStNYXRoLmltdWwoeXQscXQpfDAsRj1GK01hdGguaW11bCh5dCxwcil8MCxU''@;'; + put 'put ''PVQrTWF0aC5pbXVsKGZ0LEFuKXwwLFM9KFM9UytNYXRoLmltdWwoZnQscW4pfDApK01hdGguaW11bChIdCxBbil8MCxGPUYrTWF0aC5pbXVsKEh0LHFuKXwwLFQ9VCtNYXRoLmltdWwoYXQscG4pfDAsUz0oUz1TK01hdGguaW11bChhdCxLbil8MCkrTWF0aC5pbXVsKEx0LHBuKXwwLEY9RitN''@;'; + put 'put ''YXRoLmltdWwoTHQsS24pfDAsVD1UK01hdGguaW11bChfdCxzbil8MCxTPShTPVMrTWF0aC5pbXVsKF90LFVuKXwwKStNYXRoLmltdWwodHQsc24pfDAsRj1GK01hdGguaW11bCh0dCxVbil8MCxUPVQrTWF0aC5pbXVsKGh0LHRuKXwwLFM9KFM9UytNYXRoLmltdWwoaHQsem4pfDApK01hdGgu''@;'; + put 'put ''aW11bChCdCx0bil8MCxGPUYrTWF0aC5pbXVsKEJ0LHpuKXwwLFQ9VCtNYXRoLmltdWwobXQsQm4pfDAsUz0oUz1TK01hdGguaW11bChtdCxrcil8MCkrTWF0aC5pbXVsKHZ0LEJuKXwwLEY9RitNYXRoLmltdWwodnQsa3IpfDA7dmFyIGxpPShQZSsoVD1UK01hdGguaW11bCgkZSx1bil8MCl8''@;'; + put 'put ''MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKCRlLGNuKXwwKStNYXRoLmltdWwoZ3QsdW4pfDApKTw8MTMpfDA7UGU9KChGPUYrTWF0aC5pbXVsKGd0LGNuKXwwKSsoUz4+PjEzKXwwKSsobGk+Pj4yNil8MCxsaSY9NjcxMDg4NjMsVD1NYXRoLmltdWwoeW4sWG4pLFM9KFM9TWF0aC5pbXVs''@;'; + put 'put ''KHluLEZyKSkrTWF0aC5pbXVsKGxuLFhuKXwwLEY9TWF0aC5pbXVsKGxuLEZyKSxUPVQrTWF0aC5pbXVsKFF0LHF0KXwwLFM9KFM9UytNYXRoLmltdWwoUXQscHIpfDApK01hdGguaW11bChnbixxdCl8MCxGPUYrTWF0aC5pbXVsKGduLHByKXwwLFQ9VCtNYXRoLmltdWwoVWUsQW4pfDAsUz0o''@;'; + put 'put ''Uz1TK01hdGguaW11bChVZSxxbil8MCkrTWF0aC5pbXVsKHl0LEFuKXwwLEY9RitNYXRoLmltdWwoeXQscW4pfDAsVD1UK01hdGguaW11bChmdCxwbil8MCxTPShTPVMrTWF0aC5pbXVsKGZ0LEtuKXwwKStNYXRoLmltdWwoSHQscG4pfDAsRj1GK01hdGguaW11bChIdCxLbil8MCxUPVQrTWF0''@;'; + put 'put ''aC5pbXVsKGF0LHNuKXwwLFM9KFM9UytNYXRoLmltdWwoYXQsVW4pfDApK01hdGguaW11bChMdCxzbil8MCxGPUYrTWF0aC5pbXVsKEx0LFVuKXwwLFQ9VCtNYXRoLmltdWwoX3QsdG4pfDAsUz0oUz1TK01hdGguaW11bChfdCx6bil8MCkrTWF0aC5pbXVsKHR0LHRuKXwwLEY9RitNYXRoLmlt''@;'; + put 'put ''dWwodHQsem4pfDAsVD1UK01hdGguaW11bChodCxCbil8MCxTPShTPVMrTWF0aC5pbXVsKGh0LGtyKXwwKStNYXRoLmltdWwoQnQsQm4pfDAsRj1GK01hdGguaW11bChCdCxrcil8MCxUPVQrTWF0aC5pbXVsKG10LHVuKXwwLFM9KFM9UytNYXRoLmltdWwobXQsY24pfDApK01hdGguaW11bCh2''@;'; + put 'put ''dCx1bil8MCxGPUYrTWF0aC5pbXVsKHZ0LGNuKXwwO3ZhciBNaT0oUGUrKFQ9VCtNYXRoLmltdWwoJGUsR3QpfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bCgkZSxrbil8MCkrTWF0aC5pbXVsKGd0LEd0KXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGguaW11bChndCxrbil8MCkrKFM+''@;'; + put 'put ''Pj4xMyl8MCkrKE1pPj4+MjYpfDAsTWkmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGJuLFhuKSxTPShTPU1hdGguaW11bChibixGcikpK01hdGguaW11bChlcixYbil8MCxGPU1hdGguaW11bChlcixGciksVD1UK01hdGguaW11bCh5bixxdCl8MCxTPShTPVMrTWF0aC5pbXVsKHluLHByKXwwKStN''@;'; + put 'put ''YXRoLmltdWwobG4scXQpfDAsRj1GK01hdGguaW11bChsbixwcil8MCxUPVQrTWF0aC5pbXVsKFF0LEFuKXwwLFM9KFM9UytNYXRoLmltdWwoUXQscW4pfDApK01hdGguaW11bChnbixBbil8MCxGPUYrTWF0aC5pbXVsKGduLHFuKXwwLFQ9VCtNYXRoLmltdWwoVWUscG4pfDAsUz0oUz1TK01h''@;'; + put 'put ''dGguaW11bChVZSxLbil8MCkrTWF0aC5pbXVsKHl0LHBuKXwwLEY9RitNYXRoLmltdWwoeXQsS24pfDAsVD1UK01hdGguaW11bChmdCxzbil8MCxTPShTPVMrTWF0aC5pbXVsKGZ0LFVuKXwwKStNYXRoLmltdWwoSHQsc24pfDAsRj1GK01hdGguaW11bChIdCxVbil8MCxUPVQrTWF0aC5pbXVs''@;'; + put 'put ''KGF0LHRuKXwwLFM9KFM9UytNYXRoLmltdWwoYXQsem4pfDApK01hdGguaW11bChMdCx0bil8MCxGPUYrTWF0aC5pbXVsKEx0LHpuKXwwLFQ9VCtNYXRoLmltdWwoX3QsQm4pfDAsUz0oUz1TK01hdGguaW11bChfdCxrcil8MCkrTWF0aC5pbXVsKHR0LEJuKXwwLEY9RitNYXRoLmltdWwodHQs''@;'; + put 'put ''a3IpfDAsVD1UK01hdGguaW11bChodCx1bil8MCxTPShTPVMrTWF0aC5pbXVsKGh0LGNuKXwwKStNYXRoLmltdWwoQnQsdW4pfDAsRj1GK01hdGguaW11bChCdCxjbil8MCxUPVQrTWF0aC5pbXVsKG10LEd0KXwwLFM9KFM9UytNYXRoLmltdWwobXQsa24pfDApK01hdGguaW11bCh2dCxHdCl8''@;'; + put 'put ''MCxGPUYrTWF0aC5pbXVsKHZ0LGtuKXwwO3ZhciBvMD0oUGUrKFQ9VCtNYXRoLmltdWwoJGUsZW4pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bCgkZSxJbil8MCkrTWF0aC5pbXVsKGd0LGVuKXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGguaW11bChndCxJbil8MCkrKFM+Pj4xMyl8''@;'; + put 'put ''MCkrKG8wPj4+MjYpfDAsbzAmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGJuLHF0KSxTPShTPU1hdGguaW11bChibixwcikpK01hdGguaW11bChlcixxdCl8MCxGPU1hdGguaW11bChlcixwciksVD1UK01hdGguaW11bCh5bixBbil8MCxTPShTPVMrTWF0aC5pbXVsKHluLHFuKXwwKStNYXRoLmlt''@;'; + put 'put ''dWwobG4sQW4pfDAsRj1GK01hdGguaW11bChsbixxbil8MCxUPVQrTWF0aC5pbXVsKFF0LHBuKXwwLFM9KFM9UytNYXRoLmltdWwoUXQsS24pfDApK01hdGguaW11bChnbixwbil8MCxGPUYrTWF0aC5pbXVsKGduLEtuKXwwLFQ9VCtNYXRoLmltdWwoVWUsc24pfDAsUz0oUz1TK01hdGguaW11''@;'; + put 'put ''bChVZSxVbil8MCkrTWF0aC5pbXVsKHl0LHNuKXwwLEY9RitNYXRoLmltdWwoeXQsVW4pfDAsVD1UK01hdGguaW11bChmdCx0bil8MCxTPShTPVMrTWF0aC5pbXVsKGZ0LHpuKXwwKStNYXRoLmltdWwoSHQsdG4pfDAsRj1GK01hdGguaW11bChIdCx6bil8MCxUPVQrTWF0aC5pbXVsKGF0LEJu''@;'; + put 'put ''KXwwLFM9KFM9UytNYXRoLmltdWwoYXQsa3IpfDApK01hdGguaW11bChMdCxCbil8MCxGPUYrTWF0aC5pbXVsKEx0LGtyKXwwLFQ9VCtNYXRoLmltdWwoX3QsdW4pfDAsUz0oUz1TK01hdGguaW11bChfdCxjbil8MCkrTWF0aC5pbXVsKHR0LHVuKXwwLEY9RitNYXRoLmltdWwodHQsY24pfDAs''@;'; + put 'put ''VD1UK01hdGguaW11bChodCxHdCl8MCxTPShTPVMrTWF0aC5pbXVsKGh0LGtuKXwwKStNYXRoLmltdWwoQnQsR3QpfDAsRj1GK01hdGguaW11bChCdCxrbil8MDt2YXIgbjA9KFBlKyhUPVQrTWF0aC5pbXVsKG10LGVuKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwobXQsSW4pfDAp''@;'; + put 'put ''K01hdGguaW11bCh2dCxlbil8MCkpPDwxMyl8MDtQZT0oKEY9RitNYXRoLmltdWwodnQsSW4pfDApKyhTPj4+MTMpfDApKyhuMD4+PjI2KXwwLG4wJj02NzEwODg2MyxUPU1hdGguaW11bChibixBbiksUz0oUz1NYXRoLmltdWwoYm4scW4pKStNYXRoLmltdWwoZXIsQW4pfDAsRj1NYXRoLmlt''@;'; + put 'put ''dWwoZXIscW4pLFQ9VCtNYXRoLmltdWwoeW4scG4pfDAsUz0oUz1TK01hdGguaW11bCh5bixLbil8MCkrTWF0aC5pbXVsKGxuLHBuKXwwLEY9RitNYXRoLmltdWwobG4sS24pfDAsVD1UK01hdGguaW11bChRdCxzbil8MCxTPShTPVMrTWF0aC5pbXVsKFF0LFVuKXwwKStNYXRoLmltdWwoZ24s''@;'; + put 'put ''c24pfDAsRj1GK01hdGguaW11bChnbixVbil8MCxUPVQrTWF0aC5pbXVsKFVlLHRuKXwwLFM9KFM9UytNYXRoLmltdWwoVWUsem4pfDApK01hdGguaW11bCh5dCx0bil8MCxGPUYrTWF0aC5pbXVsKHl0LHpuKXwwLFQ9VCtNYXRoLmltdWwoZnQsQm4pfDAsUz0oUz1TK01hdGguaW11bChmdCxr''@;'; + put 'put ''cil8MCkrTWF0aC5pbXVsKEh0LEJuKXwwLEY9RitNYXRoLmltdWwoSHQsa3IpfDAsVD1UK01hdGguaW11bChhdCx1bil8MCxTPShTPVMrTWF0aC5pbXVsKGF0LGNuKXwwKStNYXRoLmltdWwoTHQsdW4pfDAsRj1GK01hdGguaW11bChMdCxjbil8MCxUPVQrTWF0aC5pbXVsKF90LEd0KXwwLFM9''@;'; + put 'put ''KFM9UytNYXRoLmltdWwoX3Qsa24pfDApK01hdGguaW11bCh0dCxHdCl8MCxGPUYrTWF0aC5pbXVsKHR0LGtuKXwwO3ZhciBkMD0oUGUrKFQ9VCtNYXRoLmltdWwoaHQsZW4pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bChodCxJbil8MCkrTWF0aC5pbXVsKEJ0LGVuKXwwKSk8PDEz''@;'; + put 'put ''KXwwO1BlPSgoRj1GK01hdGguaW11bChCdCxJbil8MCkrKFM+Pj4xMyl8MCkrKGQwPj4+MjYpfDAsZDAmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGJuLHBuKSxTPShTPU1hdGguaW11bChibixLbikpK01hdGguaW11bChlcixwbil8MCxGPU1hdGguaW11bChlcixLbiksVD1UK01hdGguaW11bCh5''@;'; + put 'put ''bixzbil8MCxTPShTPVMrTWF0aC5pbXVsKHluLFVuKXwwKStNYXRoLmltdWwobG4sc24pfDAsRj1GK01hdGguaW11bChsbixVbil8MCxUPVQrTWF0aC5pbXVsKFF0LHRuKXwwLFM9KFM9UytNYXRoLmltdWwoUXQsem4pfDApK01hdGguaW11bChnbix0bil8MCxGPUYrTWF0aC5pbXVsKGduLHpu''@;'; + put 'put ''KXwwLFQ9VCtNYXRoLmltdWwoVWUsQm4pfDAsUz0oUz1TK01hdGguaW11bChVZSxrcil8MCkrTWF0aC5pbXVsKHl0LEJuKXwwLEY9RitNYXRoLmltdWwoeXQsa3IpfDAsVD1UK01hdGguaW11bChmdCx1bil8MCxTPShTPVMrTWF0aC5pbXVsKGZ0LGNuKXwwKStNYXRoLmltdWwoSHQsdW4pfDAs''@;'; + put 'put ''Rj1GK01hdGguaW11bChIdCxjbil8MCxUPVQrTWF0aC5pbXVsKGF0LEd0KXwwLFM9KFM9UytNYXRoLmltdWwoYXQsa24pfDApK01hdGguaW11bChMdCxHdCl8MCxGPUYrTWF0aC5pbXVsKEx0LGtuKXwwO3ZhciBtMD0oUGUrKFQ9VCtNYXRoLmltdWwoX3QsZW4pfDApfDApKygoODE5MSYoUz0o''@;'; + put 'put ''Uz1TK01hdGguaW11bChfdCxJbil8MCkrTWF0aC5pbXVsKHR0LGVuKXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGguaW11bCh0dCxJbil8MCkrKFM+Pj4xMyl8MCkrKG0wPj4+MjYpfDAsbTAmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGJuLHNuKSxTPShTPU1hdGguaW11bChibixVbikpK01hdGgu''@;'; + put 'put ''aW11bChlcixzbil8MCxGPU1hdGguaW11bChlcixVbiksVD1UK01hdGguaW11bCh5bix0bil8MCxTPShTPVMrTWF0aC5pbXVsKHluLHpuKXwwKStNYXRoLmltdWwobG4sdG4pfDAsRj1GK01hdGguaW11bChsbix6bil8MCxUPVQrTWF0aC5pbXVsKFF0LEJuKXwwLFM9KFM9UytNYXRoLmltdWwo''@;'; + put 'put ''UXQsa3IpfDApK01hdGguaW11bChnbixCbil8MCxGPUYrTWF0aC5pbXVsKGduLGtyKXwwLFQ9VCtNYXRoLmltdWwoVWUsdW4pfDAsUz0oUz1TK01hdGguaW11bChVZSxjbil8MCkrTWF0aC5pbXVsKHl0LHVuKXwwLEY9RitNYXRoLmltdWwoeXQsY24pfDAsVD1UK01hdGguaW11bChmdCxHdCl8''@;'; + put 'put ''MCxTPShTPVMrTWF0aC5pbXVsKGZ0LGtuKXwwKStNYXRoLmltdWwoSHQsR3QpfDAsRj1GK01hdGguaW11bChIdCxrbil8MDt2YXIgRzA9KFBlKyhUPVQrTWF0aC5pbXVsKGF0LGVuKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoYXQsSW4pfDApK01hdGguaW11bChMdCxlbil8MCkp''@;'; + put 'put ''PDwxMyl8MDtQZT0oKEY9RitNYXRoLmltdWwoTHQsSW4pfDApKyhTPj4+MTMpfDApKyhHMD4+PjI2KXwwLEcwJj02NzEwODg2MyxUPU1hdGguaW11bChibix0biksUz0oUz1NYXRoLmltdWwoYm4sem4pKStNYXRoLmltdWwoZXIsdG4pfDAsRj1NYXRoLmltdWwoZXIsem4pLFQ9VCtNYXRoLmlt''@;'; + put 'put ''dWwoeW4sQm4pfDAsUz0oUz1TK01hdGguaW11bCh5bixrcil8MCkrTWF0aC5pbXVsKGxuLEJuKXwwLEY9RitNYXRoLmltdWwobG4sa3IpfDAsVD1UK01hdGguaW11bChRdCx1bil8MCxTPShTPVMrTWF0aC5pbXVsKFF0LGNuKXwwKStNYXRoLmltdWwoZ24sdW4pfDAsRj1GK01hdGguaW11bChn''@;'; + put 'put ''bixjbil8MCxUPVQrTWF0aC5pbXVsKFVlLEd0KXwwLFM9KFM9UytNYXRoLmltdWwoVWUsa24pfDApK01hdGguaW11bCh5dCxHdCl8MCxGPUYrTWF0aC5pbXVsKHl0LGtuKXwwO3ZhciBEaT0oUGUrKFQ9VCtNYXRoLmltdWwoZnQsZW4pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bChm''@;'; + put 'put ''dCxJbil8MCkrTWF0aC5pbXVsKEh0LGVuKXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGguaW11bChIdCxJbil8MCkrKFM+Pj4xMyl8MCkrKERpPj4+MjYpfDAsRGkmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGJuLEJuKSxTPShTPU1hdGguaW11bChibixrcikpK01hdGguaW11bChlcixCbil8MCxG''@;'; + put 'put ''PU1hdGguaW11bChlcixrciksVD1UK01hdGguaW11bCh5bix1bil8MCxTPShTPVMrTWF0aC5pbXVsKHluLGNuKXwwKStNYXRoLmltdWwobG4sdW4pfDAsRj1GK01hdGguaW11bChsbixjbil8MCxUPVQrTWF0aC5pbXVsKFF0LEd0KXwwLFM9KFM9UytNYXRoLmltdWwoUXQsa24pfDApK01hdGgu''@;'; + put 'put ''aW11bChnbixHdCl8MCxGPUYrTWF0aC5pbXVsKGduLGtuKXwwO3ZhciBXMD0oUGUrKFQ9VCtNYXRoLmltdWwoVWUsZW4pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bChVZSxJbil8MCkrTWF0aC5pbXVsKHl0LGVuKXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGguaW11bCh5dCxJbil8''@;'; + put 'put ''MCkrKFM+Pj4xMyl8MCkrKFcwPj4+MjYpfDAsVzAmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGJuLHVuKSxTPShTPU1hdGguaW11bChibixjbikpK01hdGguaW11bChlcix1bil8MCxGPU1hdGguaW11bChlcixjbiksVD1UK01hdGguaW11bCh5bixHdCl8MCxTPShTPVMrTWF0aC5pbXVsKHluLGtu''@;'; + put 'put ''KXwwKStNYXRoLmltdWwobG4sR3QpfDAsRj1GK01hdGguaW11bChsbixrbil8MDt2YXIgRW89KFBlKyhUPVQrTWF0aC5pbXVsKFF0LGVuKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoUXQsSW4pfDApK01hdGguaW11bChnbixlbil8MCkpPDwxMyl8MDtQZT0oKEY9RitNYXRoLmlt''@;'; + put 'put ''dWwoZ24sSW4pfDApKyhTPj4+MTMpfDApKyhFbz4+PjI2KXwwLEVvJj02NzEwODg2MyxUPU1hdGguaW11bChibixHdCksUz0oUz1NYXRoLmltdWwoYm4sa24pKStNYXRoLmltdWwoZXIsR3QpfDAsRj1NYXRoLmltdWwoZXIsa24pO3ZhciBxbz0oUGUrKFQ9VCtNYXRoLmltdWwoeW4sZW4pfDAp''@;'; + put 'put ''fDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bCh5bixJbil8MCkrTWF0aC5pbXVsKGxuLGVuKXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGguaW11bChsbixJbil8MCkrKFM+Pj4xMyl8MCkrKHFvPj4+MjYpfDAscW8mPTY3MTA4ODYzO3ZhciBjYT0oUGUrKFQ9TWF0aC5pbXVsKGJuLGVuKSl8''@;'; + put 'put ''MCkrKCg4MTkxJihTPShTPU1hdGguaW11bChibixJbikpK01hdGguaW11bChlcixlbil8MCkpPDwxMyl8MDtyZXR1cm4gUGU9KChGPU1hdGguaW11bChlcixJbikpKyhTPj4+MTMpfDApKyhjYT4+PjI2KXwwLGNhJj02NzEwODg2MyxEZVswXT1KbixEZVsxXT1vcixEZVsyXT1ncixEZVszXT1L''@;'; + put 'put ''cixEZVs0XT1WcixEZVs1XT1paSxEZVs2XT1ScixEZVs3XT1saSxEZVs4XT1NaSxEZVs5XT1vMCxEZVsxMF09bjAsRGVbMTFdPWQwLERlWzEyXT1tMCxEZVsxM109RzAsRGVbMTRdPURpLERlWzE1XT1XMCxEZVsxNl09RW8sRGVbMTddPXFvLERlWzE4XT1jYSwwIT09UGUmJihEZVsxOV09UGUs''@;'; + put 'put ''Vi5sZW5ndGgrKyksVn07ZnVuY3Rpb24ga2UoeCxQLFYpe3JldHVybihuZXcgU2UpLm11bHAoeCxQLFYpfWZ1bmN0aW9uIFNlKHgsUCl7dGhpcy54PXgsdGhpcy55PVB9TWF0aC5pbXVsfHwoQWU9dmUpLE4ucHJvdG90eXBlLm11bFRvPWZ1bmN0aW9uKHgsUCl7dmFyIFQ9dGhpcy5sZW5ndGgr''@;'; + put 'put ''eC5sZW5ndGg7cmV0dXJuIDEwPT09dGhpcy5sZW5ndGgmJjEwPT09eC5sZW5ndGg/QWUodGhpcyx4LFApOlQ8NjM/dmUodGhpcyx4LFApOlQ8MTAyND9mdW5jdGlvbihTLEYseWUpe3llLm5lZ2F0aXZlPUYubmVnYXRpdmVeUy5uZWdhdGl2ZSx5ZS5sZW5ndGg9Uy5sZW5ndGgrRi5sZW5ndGg7''@;'; + put 'put ''Zm9yKHZhciBDZT0wLERlPTAsUGU9MDtQZTx5ZS5sZW5ndGgtMTtQZSsrKXt2YXIgUWU9RGU7RGU9MDtmb3IodmFyICRlPTY3MTA4ODYzJkNlLGd0PU1hdGgubWluKFBlLEYubGVuZ3RoLTEpLHd0PU1hdGgubWF4KDAsUGUtUy5sZW5ndGgrMSk7d3Q8PWd0O3d0Kyspe3ZhciB2dD0oMHxTLndv''@;'; + put 'put ''cmRzW1BlLXd0XSkqKDB8Ri53b3Jkc1t3dF0pLEF0PTY3MTA4ODYzJnZ0OyRlPTY3MTA4ODYzJihBdD1BdCskZXwwKSxEZSs9KFFlPShRZT1RZSsodnQvNjcxMDg4NjR8MCl8MCkrKEF0Pj4+MjYpfDApPj4+MjYsUWUmPTY3MTA4ODYzfXllLndvcmRzW1BlXT0kZSxDZT1RZSxRZT1EZX1yZXR1''@;'; + put 'put ''cm4gMCE9PUNlP3llLndvcmRzW1BlXT1DZTp5ZS5sZW5ndGgtLSx5ZS5zdHJpcCgpfSh0aGlzLHgsUCk6a2UodGhpcyx4LFApfSxTZS5wcm90b3R5cGUubWFrZVJCVD1mdW5jdGlvbih4KXtmb3IodmFyIFA9bmV3IEFycmF5KHgpLFY9Ti5wcm90b3R5cGUuX2NvdW50Qml0cyh4KS0xLFQ9MDtU''@;'; + put 'put ''PHg7VCsrKVBbVF09dGhpcy5yZXZCaW4oVCxWLHgpO3JldHVybiBQfSxTZS5wcm90b3R5cGUucmV2QmluPWZ1bmN0aW9uKHgsUCxWKXtpZigwPT09eHx8eD09PVYtMSlyZXR1cm4geDtmb3IodmFyIFQ9MCxTPTA7UzxQO1MrKylUfD0oMSZ4KTw8UC1TLTEseD4+PTE7cmV0dXJuIFR9LFNlLnBy''@;'; + put 'put ''b3RvdHlwZS5wZXJtdXRlPWZ1bmN0aW9uKHgsUCxWLFQsUyxGKXtmb3IodmFyIHllPTA7eWU8Rjt5ZSsrKVRbeWVdPVBbeFt5ZV1dLFNbeWVdPVZbeFt5ZV1dfSxTZS5wcm90b3R5cGUudHJhbnNmb3JtPWZ1bmN0aW9uKHgsUCxWLFQsUyxGKXt0aGlzLnBlcm11dGUoRix4LFAsVixULFMpO2Zv''@;'; + put 'put ''cih2YXIgeWU9MTt5ZTxTO3llPDw9MSlmb3IodmFyIENlPXllPDwxLERlPU1hdGguY29zKDIqTWF0aC5QSS9DZSksUGU9TWF0aC5zaW4oMipNYXRoLlBJL0NlKSxRZT0wO1FlPFM7UWUrPUNlKWZvcih2YXIgJGU9RGUsZ3Q9UGUsd3Q9MDt3dDx5ZTt3dCsrKXt2YXIgbXQ9VltRZSt3dF0sdnQ9''@;'; + put 'put ''VFtRZSt3dF0sQXQ9VltRZSt3dCt5ZV0saHQ9VFtRZSt3dCt5ZV0sQnQ9JGUqQXQtZ3QqaHQ7aHQ9JGUqaHQrZ3QqQXQsVltRZSt3dF09bXQrKEF0PUJ0KSxUW1FlK3d0XT12dCtodCxWW1FlK3d0K3llXT1tdC1BdCxUW1FlK3d0K3llXT12dC1odCx3dCE9PUNlJiYoQnQ9RGUqJGUtUGUqZ3Qs''@;'; + put 'put ''Z3Q9RGUqZ3QrUGUqJGUsJGU9QnQpfX0sU2UucHJvdG90eXBlLmd1ZXNzTGVuMTNiPWZ1bmN0aW9uKHgsUCl7dmFyIFY9MXxNYXRoLm1heChQLHgpLFQ9MSZWLFM9MDtmb3IoVj1WLzJ8MDtWO1Y+Pj49MSlTKys7cmV0dXJuIDE8PFMrMStUfSxTZS5wcm90b3R5cGUuY29uanVnYXRlPWZ1bmN0''@;'; + put 'put ''aW9uKHgsUCxWKXtpZighKFY8PTEpKWZvcih2YXIgVD0wO1Q8Vi8yO1QrKyl7dmFyIFM9eFtUXTt4W1RdPXhbVi1ULTFdLHhbVi1ULTFdPVMsUz1QW1RdLFBbVF09LVBbVi1ULTFdLFBbVi1ULTFdPS1TfX0sU2UucHJvdG90eXBlLm5vcm1hbGl6ZTEzYj1mdW5jdGlvbih4LFApe2Zvcih2YXIg''@;'; + put 'put ''Vj0wLFQ9MDtUPFAvMjtUKyspe3ZhciBTPTgxOTIqTWF0aC5yb3VuZCh4WzIqVCsxXS9QKStNYXRoLnJvdW5kKHhbMipUXS9QKStWO3hbVF09NjcxMDg4NjMmUyxWPVM8NjcxMDg4NjQ/MDpTLzY3MTA4ODY0fDB9cmV0dXJuIHh9LFNlLnByb3RvdHlwZS5jb252ZXJ0MTNiPWZ1bmN0aW9uKHgs''@;'; + put 'put ''UCxWLFQpe2Zvcih2YXIgUz0wLEY9MDtGPFA7RisrKVZbMipGXT04MTkxJihTKz0wfHhbRl0pLFZbMipGKzFdPTgxOTEmKFM+Pj49MTMpLFM+Pj49MTM7Zm9yKEY9MipQO0Y8VDsrK0YpVltGXT0wO1koMD09PVMpLFkoMD09KC04MTkyJlMpKX0sU2UucHJvdG90eXBlLnN0dWI9ZnVuY3Rpb24o''@;'; + put 'put ''eCl7Zm9yKHZhciBQPW5ldyBBcnJheSh4KSxWPTA7Vjx4O1YrKylQW1ZdPTA7cmV0dXJuIFB9LFNlLnByb3RvdHlwZS5tdWxwPWZ1bmN0aW9uKHgsUCxWKXt2YXIgVD0yKnRoaXMuZ3Vlc3NMZW4xM2IoeC5sZW5ndGgsUC5sZW5ndGgpLFM9dGhpcy5tYWtlUkJUKFQpLEY9dGhpcy5zdHViKFQp''@;'; + put 'put ''LHllPW5ldyBBcnJheShUKSxDZT1uZXcgQXJyYXkoVCksRGU9bmV3IEFycmF5KFQpLFBlPW5ldyBBcnJheShUKSxRZT1uZXcgQXJyYXkoVCksJGU9bmV3IEFycmF5KFQpLGd0PVYud29yZHM7Z3QubGVuZ3RoPVQsdGhpcy5jb252ZXJ0MTNiKHgud29yZHMseC5sZW5ndGgseWUsVCksdGhpcy5j''@;'; + put 'put ''b252ZXJ0MTNiKFAud29yZHMsUC5sZW5ndGgsUGUsVCksdGhpcy50cmFuc2Zvcm0oeWUsRixDZSxEZSxULFMpLHRoaXMudHJhbnNmb3JtKFBlLEYsUWUsJGUsVCxTKTtmb3IodmFyIHd0PTA7d3Q8VDt3dCsrKXt2YXIgbXQ9Q2Vbd3RdKlFlW3d0XS1EZVt3dF0qJGVbd3RdO0RlW3d0XT1DZVt3''@;'; + put 'put ''dF0qJGVbd3RdK0RlW3d0XSpRZVt3dF0sQ2Vbd3RdPW10fXJldHVybiB0aGlzLmNvbmp1Z2F0ZShDZSxEZSxUKSx0aGlzLnRyYW5zZm9ybShDZSxEZSxndCxGLFQsUyksdGhpcy5jb25qdWdhdGUoZ3QsRixUKSx0aGlzLm5vcm1hbGl6ZTEzYihndCxUKSxWLm5lZ2F0aXZlPXgubmVnYXRpdmVe''@;'; + put 'put ''UC5uZWdhdGl2ZSxWLmxlbmd0aD14Lmxlbmd0aCtQLmxlbmd0aCxWLnN0cmlwKCl9LE4ucHJvdG90eXBlLm11bD1mdW5jdGlvbih4KXt2YXIgUD1uZXcgTihudWxsKTtyZXR1cm4gUC53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgreC5sZW5ndGgpLHRoaXMubXVsVG8oeCxQKX0sTi5wcm90''@;'; + put 'put ''b3R5cGUubXVsZj1mdW5jdGlvbih4KXt2YXIgUD1uZXcgTihudWxsKTtyZXR1cm4gUC53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgreC5sZW5ndGgpLGtlKHRoaXMseCxQKX0sTi5wcm90b3R5cGUuaW11bD1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5jbG9uZSgpLm11bFRvKHgsdGhpcyl9''@;'; + put 'put ''LE4ucHJvdG90eXBlLmltdWxuPWZ1bmN0aW9uKHgpe1koIm51bWJlciI9PXR5cGVvZiB4KSxZKHg8NjcxMDg4NjQpO2Zvcih2YXIgUD0wLFY9MDtWPHRoaXMubGVuZ3RoO1YrKyl7dmFyIFQ9KDB8dGhpcy53b3Jkc1tWXSkqeCxTPSg2NzEwODg2MyZUKSsoNjcxMDg4NjMmUCk7UD4+PTI2LFAr''@;'; + put 'put ''PVQvNjcxMDg4NjR8MCxQKz1TPj4+MjYsdGhpcy53b3Jkc1tWXT02NzEwODg2MyZTfXJldHVybiAwIT09UCYmKHRoaXMud29yZHNbVl09UCx0aGlzLmxlbmd0aCsrKSx0aGlzfSxOLnByb3RvdHlwZS5tdWxuPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmNsb25lKCkuaW11bG4oeCl9LE4ucHJv''@;'; + put 'put ''dG90eXBlLnNxcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLm11bCh0aGlzKX0sTi5wcm90b3R5cGUuaXNxcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLmltdWwodGhpcy5jbG9uZSgpKX0sTi5wcm90b3R5cGUucG93PWZ1bmN0aW9uKHgpe3ZhciBQPWZ1bmN0aW9uKEYpe2Zvcih2YXIgeWU9bmV3''@;'; + put 'put ''IEFycmF5KEYuYml0TGVuZ3RoKCkpLENlPTA7Q2U8eWUubGVuZ3RoO0NlKyspe3ZhciBQZT1DZSUyNjt5ZVtDZV09KEYud29yZHNbQ2UvMjZ8MF0mMTw8UGUpPj4+UGV9cmV0dXJuIHllfSh4KTtpZigwPT09UC5sZW5ndGgpcmV0dXJuIG5ldyBOKDEpO2Zvcih2YXIgVj10aGlzLFQ9MDtUPFAu''@;'; + put 'put ''bGVuZ3RoJiYwPT09UFtUXTtUKyssVj1WLnNxcigpKTtpZigrK1Q8UC5sZW5ndGgpZm9yKHZhciBTPVYuc3FyKCk7VDxQLmxlbmd0aDtUKyssUz1TLnNxcigpKTAhPT1QW1RdJiYoVj1WLm11bChTKSk7cmV0dXJuIFZ9LE4ucHJvdG90eXBlLml1c2hsbj1mdW5jdGlvbih4KXtZKCJudW1iZXIi''@;'; + put 'put ''PT10eXBlb2YgeCYmeD49MCk7dmFyIFAsVj14JTI2LFQ9KHgtVikvMjYsUz02NzEwODg2Mz4+PjI2LVY8PDI2LVY7aWYoMCE9PVYpe3ZhciBGPTA7Zm9yKFA9MDtQPHRoaXMubGVuZ3RoO1ArKyl7dmFyIHllPXRoaXMud29yZHNbUF0mUzt0aGlzLndvcmRzW1BdPSgwfHRoaXMud29yZHNbUF0p''@;'; + put 'put ''LXllPDxWfEYsRj15ZT4+PjI2LVZ9RiYmKHRoaXMud29yZHNbUF09Rix0aGlzLmxlbmd0aCsrKX1pZigwIT09VCl7Zm9yKFA9dGhpcy5sZW5ndGgtMTtQPj0wO1AtLSl0aGlzLndvcmRzW1ArVF09dGhpcy53b3Jkc1tQXTtmb3IoUD0wO1A8VDtQKyspdGhpcy53b3Jkc1tQXT0wO3RoaXMubGVu''@;'; + put 'put ''Z3RoKz1UfXJldHVybiB0aGlzLnN0cmlwKCl9LE4ucHJvdG90eXBlLmlzaGxuPWZ1bmN0aW9uKHgpe3JldHVybiBZKDA9PT10aGlzLm5lZ2F0aXZlKSx0aGlzLml1c2hsbih4KX0sTi5wcm90b3R5cGUuaXVzaHJuPWZ1bmN0aW9uKHgsUCxWKXt2YXIgVDtZKCJudW1iZXIiPT10eXBlb2YgeCYm''@;'; + put 'put ''eD49MCksVD1QPyhQLVAlMjYpLzI2OjA7dmFyIFM9eCUyNixGPU1hdGgubWluKCh4LVMpLzI2LHRoaXMubGVuZ3RoKSx5ZT02NzEwODg2M142NzEwODg2Mz4+PlM8PFMsQ2U9VjtpZihULT1GLFQ9TWF0aC5tYXgoMCxUKSxDZSl7Zm9yKHZhciBEZT0wO0RlPEY7RGUrKylDZS53b3Jkc1tEZV09''@;'; + put 'put ''dGhpcy53b3Jkc1tEZV07Q2UubGVuZ3RoPUZ9aWYoMCE9PUYpaWYodGhpcy5sZW5ndGg+Rilmb3IodGhpcy5sZW5ndGgtPUYsRGU9MDtEZTx0aGlzLmxlbmd0aDtEZSsrKXRoaXMud29yZHNbRGVdPXRoaXMud29yZHNbRGUrRl07ZWxzZSB0aGlzLndvcmRzWzBdPTAsdGhpcy5sZW5ndGg9MTt2''@;'; + put 'put ''YXIgUGU9MDtmb3IoRGU9dGhpcy5sZW5ndGgtMTtEZT49MCYmKDAhPT1QZXx8RGU+PVQpO0RlLS0pe3ZhciBRZT0wfHRoaXMud29yZHNbRGVdO3RoaXMud29yZHNbRGVdPVBlPDwyNi1TfFFlPj4+UyxQZT1RZSZ5ZX1yZXR1cm4gQ2UmJjAhPT1QZSYmKENlLndvcmRzW0NlLmxlbmd0aCsrXT1Q''@;'; + put 'put ''ZSksMD09PXRoaXMubGVuZ3RoJiYodGhpcy53b3Jkc1swXT0wLHRoaXMubGVuZ3RoPTEpLHRoaXMuc3RyaXAoKX0sTi5wcm90b3R5cGUuaXNocm49ZnVuY3Rpb24oeCxQLFYpe3JldHVybiBZKDA9PT10aGlzLm5lZ2F0aXZlKSx0aGlzLml1c2hybih4LFAsVil9LE4ucHJvdG90eXBlLnNobG49''@;'; + put 'put ''ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc2hsbih4KX0sTi5wcm90b3R5cGUudXNobG49ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pdXNobG4oeCl9LE4ucHJvdG90eXBlLnNocm49ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc2hybih4KX0sTi5w''@;'; + put 'put ''cm90b3R5cGUudXNocm49ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pdXNocm4oeCl9LE4ucHJvdG90eXBlLnRlc3RuPWZ1bmN0aW9uKHgpe1koIm51bWJlciI9PXR5cGVvZiB4JiZ4Pj0wKTt2YXIgUD14JTI2LFY9KHgtUCkvMjY7cmV0dXJuISh0aGlzLmxlbmd0aDw9Vnx8ISh0''@;'; + put 'put ''aGlzLndvcmRzW1ZdJjE8PFApKX0sTi5wcm90b3R5cGUuaW1hc2tuPWZ1bmN0aW9uKHgpe1koIm51bWJlciI9PXR5cGVvZiB4JiZ4Pj0wKTt2YXIgUD14JTI2LFY9KHgtUCkvMjY7cmV0dXJuIFkoMD09PXRoaXMubmVnYXRpdmUsImltYXNrbiB3b3JrcyBvbmx5IHdpdGggcG9zaXRpdmUgbnVt''@;'; + put 'put ''YmVycyIpLHRoaXMubGVuZ3RoPD1WP3RoaXM6KDAhPT1QJiZWKyssdGhpcy5sZW5ndGg9TWF0aC5taW4oVix0aGlzLmxlbmd0aCksMCE9PVAmJih0aGlzLndvcmRzW3RoaXMubGVuZ3RoLTFdJj02NzEwODg2M142NzEwODg2Mz4+PlA8PFApLHRoaXMuc3RyaXAoKSl9LE4ucHJvdG90eXBlLm1h''@;'; + put 'put ''c2tuPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmNsb25lKCkuaW1hc2tuKHgpfSxOLnByb3RvdHlwZS5pYWRkbj1mdW5jdGlvbih4KXtyZXR1cm4gWSgibnVtYmVyIj09dHlwZW9mIHgpLFkoeDw2NzEwODg2NCkseDwwP3RoaXMuaXN1Ym4oLXgpOjAhPT10aGlzLm5lZ2F0aXZlPzE9PT10aGlz''@;'; + put 'put ''Lmxlbmd0aCYmKDB8dGhpcy53b3Jkc1swXSk8eD8odGhpcy53b3Jkc1swXT14LSgwfHRoaXMud29yZHNbMF0pLHRoaXMubmVnYXRpdmU9MCx0aGlzKToodGhpcy5uZWdhdGl2ZT0wLHRoaXMuaXN1Ym4oeCksdGhpcy5uZWdhdGl2ZT0xLHRoaXMpOnRoaXMuX2lhZGRuKHgpfSxOLnByb3RvdHlw''@;'; + put 'put ''ZS5faWFkZG49ZnVuY3Rpb24oeCl7dGhpcy53b3Jkc1swXSs9eDtmb3IodmFyIFA9MDtQPHRoaXMubGVuZ3RoJiZ0aGlzLndvcmRzW1BdPj02NzEwODg2NDtQKyspdGhpcy53b3Jkc1tQXS09NjcxMDg4NjQsUD09PXRoaXMubGVuZ3RoLTE/dGhpcy53b3Jkc1tQKzFdPTE6dGhpcy53b3Jkc1tQ''@;'; + put 'put ''KzFdKys7cmV0dXJuIHRoaXMubGVuZ3RoPU1hdGgubWF4KHRoaXMubGVuZ3RoLFArMSksdGhpc30sTi5wcm90b3R5cGUuaXN1Ym49ZnVuY3Rpb24oeCl7aWYoWSgibnVtYmVyIj09dHlwZW9mIHgpLFkoeDw2NzEwODg2NCkseDwwKXJldHVybiB0aGlzLmlhZGRuKC14KTtpZigwIT09dGhpcy5u''@;'; + put 'put ''ZWdhdGl2ZSlyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLHRoaXMuaWFkZG4oeCksdGhpcy5uZWdhdGl2ZT0xLHRoaXM7aWYodGhpcy53b3Jkc1swXS09eCwxPT09dGhpcy5sZW5ndGgmJnRoaXMud29yZHNbMF08MCl0aGlzLndvcmRzWzBdPS10aGlzLndvcmRzWzBdLHRoaXMubmVnYXRpdmU9MTtl''@;'; + put 'put ''bHNlIGZvcih2YXIgUD0wO1A8dGhpcy5sZW5ndGgmJnRoaXMud29yZHNbUF08MDtQKyspdGhpcy53b3Jkc1tQXSs9NjcxMDg4NjQsdGhpcy53b3Jkc1tQKzFdLT0xO3JldHVybiB0aGlzLnN0cmlwKCl9LE4ucHJvdG90eXBlLmFkZG49ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5p''@;'; + put 'put ''YWRkbih4KX0sTi5wcm90b3R5cGUuc3Vibj1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlzdWJuKHgpfSxOLnByb3RvdHlwZS5pYWJzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlzfSxOLnByb3RvdHlwZS5hYnM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5j''@;'; + put 'put ''bG9uZSgpLmlhYnMoKX0sTi5wcm90b3R5cGUuX2lzaGxuc3VibXVsPWZ1bmN0aW9uKHgsUCxWKXt2YXIgVCxTO3RoaXMuX2V4cGFuZCh4Lmxlbmd0aCtWKTt2YXIgeWU9MDtmb3IoVD0wO1Q8eC5sZW5ndGg7VCsrKXtTPSgwfHRoaXMud29yZHNbVCtWXSkreWU7dmFyIENlPSgwfHgud29yZHNb''@;'; + put 'put ''VF0pKlA7eWU9KChTLT02NzEwODg2MyZDZSk+PjI2KS0oQ2UvNjcxMDg4NjR8MCksdGhpcy53b3Jkc1tUK1ZdPTY3MTA4ODYzJlN9Zm9yKDtUPHRoaXMubGVuZ3RoLVY7VCsrKXllPShTPSgwfHRoaXMud29yZHNbVCtWXSkreWUpPj4yNix0aGlzLndvcmRzW1QrVl09NjcxMDg4NjMmUztpZigw''@;'; + put 'put ''PT09eWUpcmV0dXJuIHRoaXMuc3RyaXAoKTtmb3IoWSgtMT09PXllKSx5ZT0wLFQ9MDtUPHRoaXMubGVuZ3RoO1QrKyl5ZT0oUz0tKDB8dGhpcy53b3Jkc1tUXSkreWUpPj4yNix0aGlzLndvcmRzW1RdPTY3MTA4ODYzJlM7cmV0dXJuIHRoaXMubmVnYXRpdmU9MSx0aGlzLnN0cmlwKCl9LE4u''@;'; + put 'put ''cHJvdG90eXBlLl93b3JkRGl2PWZ1bmN0aW9uKHgsUCl7dmFyIFYsVD10aGlzLmNsb25lKCksUz14LEY9MHxTLndvcmRzW1MubGVuZ3RoLTFdOzAhPShWPTI2LXRoaXMuX2NvdW50Qml0cyhGKSkmJihTPVMudXNobG4oViksVC5pdXNobG4oViksRj0wfFMud29yZHNbUy5sZW5ndGgtMV0pO3Zh''@;'; + put 'put ''ciB5ZSxDZT1ULmxlbmd0aC1TLmxlbmd0aDtpZigibW9kIiE9PVApeyh5ZT1uZXcgTihudWxsKSkubGVuZ3RoPUNlKzEseWUud29yZHM9bmV3IEFycmF5KHllLmxlbmd0aCk7Zm9yKHZhciBEZT0wO0RlPHllLmxlbmd0aDtEZSsrKXllLndvcmRzW0RlXT0wfXZhciBQZT1ULmNsb25lKCkuX2lz''@;'; + put 'put ''aGxuc3VibXVsKFMsMSxDZSk7MD09PVBlLm5lZ2F0aXZlJiYoVD1QZSx5ZSYmKHllLndvcmRzW0NlXT0xKSk7Zm9yKHZhciBRZT1DZS0xO1FlPj0wO1FlLS0pe3ZhciAkZT02NzEwODg2NCooMHxULndvcmRzW1MubGVuZ3RoK1FlXSkrKDB8VC53b3Jkc1tTLmxlbmd0aCtRZS0xXSk7Zm9yKCRl''@;'; + put 'put ''PU1hdGgubWluKCRlL0Z8MCw2NzEwODg2MyksVC5faXNobG5zdWJtdWwoUywkZSxRZSk7MCE9PVQubmVnYXRpdmU7KSRlLS0sVC5uZWdhdGl2ZT0wLFQuX2lzaGxuc3VibXVsKFMsMSxRZSksVC5pc1plcm8oKXx8KFQubmVnYXRpdmVePTEpO3llJiYoeWUud29yZHNbUWVdPSRlKX1yZXR1cm4g''@;'; + put 'put ''eWUmJnllLnN0cmlwKCksVC5zdHJpcCgpLCJkaXYiIT09UCYmMCE9PVYmJlQuaXVzaHJuKFYpLHtkaXY6eWV8fG51bGwsbW9kOlR9fSxOLnByb3RvdHlwZS5kaXZtb2Q9ZnVuY3Rpb24oeCxQLFYpe3JldHVybiBZKCF4LmlzWmVybygpKSx0aGlzLmlzWmVybygpP3tkaXY6bmV3IE4oMCksbW9k''@;'; + put 'put ''Om5ldyBOKDApfTowIT09dGhpcy5uZWdhdGl2ZSYmMD09PXgubmVnYXRpdmU/KEY9dGhpcy5uZWcoKS5kaXZtb2QoeCxQKSwibW9kIiE9PVAmJihUPUYuZGl2Lm5lZygpKSwiZGl2IiE9PVAmJihTPUYubW9kLm5lZygpLFYmJjAhPT1TLm5lZ2F0aXZlJiZTLmlhZGQoeCkpLHtkaXY6VCxtb2Q6''@;'; + put 'put ''U30pOjA9PT10aGlzLm5lZ2F0aXZlJiYwIT09eC5uZWdhdGl2ZT8oRj10aGlzLmRpdm1vZCh4Lm5lZygpLFApLCJtb2QiIT09UCYmKFQ9Ri5kaXYubmVnKCkpLHtkaXY6VCxtb2Q6Ri5tb2R9KTowIT0odGhpcy5uZWdhdGl2ZSZ4Lm5lZ2F0aXZlKT8oRj10aGlzLm5lZygpLmRpdm1vZCh4Lm5l''@;'; + put 'put ''ZygpLFApLCJkaXYiIT09UCYmKFM9Ri5tb2QubmVnKCksViYmMCE9PVMubmVnYXRpdmUmJlMuaXN1Yih4KSkse2RpdjpGLmRpdixtb2Q6U30pOngubGVuZ3RoPnRoaXMubGVuZ3RofHx0aGlzLmNtcCh4KTwwP3tkaXY6bmV3IE4oMCksbW9kOnRoaXN9OjE9PT14Lmxlbmd0aD8iZGl2Ij09PVA/''@;'; + put 'put ''e2Rpdjp0aGlzLmRpdm4oeC53b3Jkc1swXSksbW9kOm51bGx9OiJtb2QiPT09UD97ZGl2Om51bGwsbW9kOm5ldyBOKHRoaXMubW9kbih4LndvcmRzWzBdKSl9OntkaXY6dGhpcy5kaXZuKHgud29yZHNbMF0pLG1vZDpuZXcgTih0aGlzLm1vZG4oeC53b3Jkc1swXSkpfTp0aGlzLl93b3JkRGl2''@;'; + put 'put ''KHgsUCk7dmFyIFQsUyxGfSxOLnByb3RvdHlwZS5kaXY9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuZGl2bW9kKHgsImRpdiIsITEpLmRpdn0sTi5wcm90b3R5cGUubW9kPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmRpdm1vZCh4LCJtb2QiLCExKS5tb2R9LE4ucHJvdG90eXBlLnVtb2Q9ZnVu''@;'; + put 'put ''Y3Rpb24oeCl7cmV0dXJuIHRoaXMuZGl2bW9kKHgsIm1vZCIsITApLm1vZH0sTi5wcm90b3R5cGUuZGl2Um91bmQ9ZnVuY3Rpb24oeCl7dmFyIFA9dGhpcy5kaXZtb2QoeCk7aWYoUC5tb2QuaXNaZXJvKCkpcmV0dXJuIFAuZGl2O3ZhciBWPTAhPT1QLmRpdi5uZWdhdGl2ZT9QLm1vZC5pc3Vi''@;'; + put 'put ''KHgpOlAubW9kLFQ9eC51c2hybigxKSxTPXguYW5kbG4oMSksRj1WLmNtcChUKTtyZXR1cm4gRjwwfHwxPT09UyYmMD09PUY/UC5kaXY6MCE9PVAuZGl2Lm5lZ2F0aXZlP1AuZGl2LmlzdWJuKDEpOlAuZGl2LmlhZGRuKDEpfSxOLnByb3RvdHlwZS5tb2RuPWZ1bmN0aW9uKHgpe1koeDw9Njcx''@;'; + put 'put ''MDg4NjMpO2Zvcih2YXIgUD02NzEwODg2NCV4LFY9MCxUPXRoaXMubGVuZ3RoLTE7VD49MDtULS0pVj0oUCpWKygwfHRoaXMud29yZHNbVF0pKSV4O3JldHVybiBWfSxOLnByb3RvdHlwZS5pZGl2bj1mdW5jdGlvbih4KXtZKHg8PTY3MTA4ODYzKTtmb3IodmFyIFA9MCxWPXRoaXMubGVuZ3Ro''@;'; + put 'put ''LTE7Vj49MDtWLS0pe3ZhciBUPSgwfHRoaXMud29yZHNbVl0pKzY3MTA4ODY0KlA7dGhpcy53b3Jkc1tWXT1UL3h8MCxQPVQleH1yZXR1cm4gdGhpcy5zdHJpcCgpfSxOLnByb3RvdHlwZS5kaXZuPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmNsb25lKCkuaWRpdm4oeCl9LE4ucHJvdG90eXBl''@;'; + put 'put ''LmVnY2Q9ZnVuY3Rpb24oeCl7WSgwPT09eC5uZWdhdGl2ZSksWSgheC5pc1plcm8oKSk7dmFyIFA9dGhpcyxWPXguY2xvbmUoKTtQPTAhPT1QLm5lZ2F0aXZlP1AudW1vZCh4KTpQLmNsb25lKCk7Zm9yKHZhciBUPW5ldyBOKDEpLFM9bmV3IE4oMCksRj1uZXcgTigwKSx5ZT1uZXcgTigxKSxD''@;'; + put 'put ''ZT0wO1AuaXNFdmVuKCkmJlYuaXNFdmVuKCk7KVAuaXVzaHJuKDEpLFYuaXVzaHJuKDEpLCsrQ2U7Zm9yKHZhciBEZT1WLmNsb25lKCksUGU9UC5jbG9uZSgpOyFQLmlzWmVybygpOyl7Zm9yKHZhciBRZT0wLCRlPTE7MD09KFAud29yZHNbMF0mJGUpJiZRZTwyNjsrK1FlLCRlPDw9MSk7aWYo''@;'; + put 'put ''UWU+MClmb3IoUC5pdXNocm4oUWUpO1FlLS0gPjA7KShULmlzT2RkKCl8fFMuaXNPZGQoKSkmJihULmlhZGQoRGUpLFMuaXN1YihQZSkpLFQuaXVzaHJuKDEpLFMuaXVzaHJuKDEpO2Zvcih2YXIgZ3Q9MCx3dD0xOzA9PShWLndvcmRzWzBdJnd0KSYmZ3Q8MjY7KytndCx3dDw8PTEpO2lmKGd0''@;'; + put 'put ''PjApZm9yKFYuaXVzaHJuKGd0KTtndC0tID4wOykoRi5pc09kZCgpfHx5ZS5pc09kZCgpKSYmKEYuaWFkZChEZSkseWUuaXN1YihQZSkpLEYuaXVzaHJuKDEpLHllLml1c2hybigxKTtQLmNtcChWKT49MD8oUC5pc3ViKFYpLFQuaXN1YihGKSxTLmlzdWIoeWUpKTooVi5pc3ViKFApLEYuaXN1''@;'; + put 'put ''YihUKSx5ZS5pc3ViKFMpKX1yZXR1cm57YTpGLGI6eWUsZ2NkOlYuaXVzaGxuKENlKX19LE4ucHJvdG90eXBlLl9pbnZtcD1mdW5jdGlvbih4KXtZKDA9PT14Lm5lZ2F0aXZlKSxZKCF4LmlzWmVybygpKTt2YXIgUD10aGlzLFY9eC5jbG9uZSgpO1A9MCE9PVAubmVnYXRpdmU/UC51bW9kKHgp''@;'; + put 'put ''OlAuY2xvbmUoKTtmb3IodmFyIFQsUz1uZXcgTigxKSxGPW5ldyBOKDApLHllPVYuY2xvbmUoKTtQLmNtcG4oMSk+MCYmVi5jbXBuKDEpPjA7KXtmb3IodmFyIENlPTAsRGU9MTswPT0oUC53b3Jkc1swXSZEZSkmJkNlPDI2OysrQ2UsRGU8PD0xKTtpZihDZT4wKWZvcihQLml1c2hybihDZSk7''@;'; + put 'put ''Q2UtLSA+MDspUy5pc09kZCgpJiZTLmlhZGQoeWUpLFMuaXVzaHJuKDEpO2Zvcih2YXIgUGU9MCxRZT0xOzA9PShWLndvcmRzWzBdJlFlKSYmUGU8MjY7KytQZSxRZTw8PTEpO2lmKFBlPjApZm9yKFYuaXVzaHJuKFBlKTtQZS0tID4wOylGLmlzT2RkKCkmJkYuaWFkZCh5ZSksRi5pdXNocm4o''@;'; + put 'put ''MSk7UC5jbXAoVik+PTA/KFAuaXN1YihWKSxTLmlzdWIoRikpOihWLmlzdWIoUCksRi5pc3ViKFMpKX1yZXR1cm4oVD0wPT09UC5jbXBuKDEpP1M6RikuY21wbigwKTwwJiZULmlhZGQoeCksVH0sTi5wcm90b3R5cGUuZ2NkPWZ1bmN0aW9uKHgpe2lmKHRoaXMuaXNaZXJvKCkpcmV0dXJuIHgu''@;'; + put 'put ''YWJzKCk7aWYoeC5pc1plcm8oKSlyZXR1cm4gdGhpcy5hYnMoKTt2YXIgUD10aGlzLmNsb25lKCksVj14LmNsb25lKCk7UC5uZWdhdGl2ZT0wLFYubmVnYXRpdmU9MDtmb3IodmFyIFQ9MDtQLmlzRXZlbigpJiZWLmlzRXZlbigpO1QrKylQLml1c2hybigxKSxWLml1c2hybigxKTtmb3IoOzsp''@;'; + put 'put ''e2Zvcig7UC5pc0V2ZW4oKTspUC5pdXNocm4oMSk7Zm9yKDtWLmlzRXZlbigpOylWLml1c2hybigxKTt2YXIgUz1QLmNtcChWKTtpZihTPDApe3ZhciBGPVA7UD1WLFY9Rn1lbHNlIGlmKDA9PT1TfHwwPT09Vi5jbXBuKDEpKWJyZWFrO1AuaXN1YihWKX1yZXR1cm4gVi5pdXNobG4oVCl9LE4u''@;'; + put 'put ''cHJvdG90eXBlLmludm09ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuZWdjZCh4KS5hLnVtb2QoeCl9LE4ucHJvdG90eXBlLmlzRXZlbj1mdW5jdGlvbigpe3JldHVybiAwPT0oMSZ0aGlzLndvcmRzWzBdKX0sTi5wcm90b3R5cGUuaXNPZGQ9ZnVuY3Rpb24oKXtyZXR1cm4gMT09KDEmdGhpcy53''@;'; + put 'put ''b3Jkc1swXSl9LE4ucHJvdG90eXBlLmFuZGxuPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLndvcmRzWzBdJnh9LE4ucHJvdG90eXBlLmJpbmNuPWZ1bmN0aW9uKHgpe1koIm51bWJlciI9PXR5cGVvZiB4KTt2YXIgUD14JTI2LFY9KHgtUCkvMjYsVD0xPDxQO2lmKHRoaXMubGVuZ3RoPD1WKXJl''@;'; + put 'put ''dHVybiB0aGlzLl9leHBhbmQoVisxKSx0aGlzLndvcmRzW1ZdfD1ULHRoaXM7Zm9yKHZhciBTPVQsRj1WOzAhPT1TJiZGPHRoaXMubGVuZ3RoO0YrKyl7dmFyIHllPTB8dGhpcy53b3Jkc1tGXTtTPSh5ZSs9Uyk+Pj4yNix0aGlzLndvcmRzW0ZdPXllJj02NzEwODg2M31yZXR1cm4gMCE9PVMm''@;'; + put 'put ''Jih0aGlzLndvcmRzW0ZdPVMsdGhpcy5sZW5ndGgrKyksdGhpc30sTi5wcm90b3R5cGUuaXNaZXJvPWZ1bmN0aW9uKCl7cmV0dXJuIDE9PT10aGlzLmxlbmd0aCYmMD09PXRoaXMud29yZHNbMF19LE4ucHJvdG90eXBlLmNtcG49ZnVuY3Rpb24oeCl7dmFyIFAsVj14PDA7aWYoMCE9PXRoaXMu''@;'; + put 'put ''bmVnYXRpdmUmJiFWKXJldHVybi0xO2lmKDA9PT10aGlzLm5lZ2F0aXZlJiZWKXJldHVybiAxO2lmKHRoaXMuc3RyaXAoKSx0aGlzLmxlbmd0aD4xKVA9MTtlbHNle1YmJih4PS14KSxZKHg8PTY3MTA4ODYzLCJOdW1iZXIgaXMgdG9vIGJpZyIpO3ZhciBUPTB8dGhpcy53b3Jkc1swXTtQPVQ9''@;'; + put 'put ''PT14PzA6VDx4Py0xOjF9cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlPzB8LVA6UH0sTi5wcm90b3R5cGUuY21wPWZ1bmN0aW9uKHgpe2lmKDAhPT10aGlzLm5lZ2F0aXZlJiYwPT09eC5uZWdhdGl2ZSlyZXR1cm4tMTtpZigwPT09dGhpcy5uZWdhdGl2ZSYmMCE9PXgubmVnYXRpdmUpcmV0dXJu''@;'; + put 'put ''IDE7dmFyIFA9dGhpcy51Y21wKHgpO3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZT8wfC1QOlB9LE4ucHJvdG90eXBlLnVjbXA9ZnVuY3Rpb24oeCl7aWYodGhpcy5sZW5ndGg+eC5sZW5ndGgpcmV0dXJuIDE7aWYodGhpcy5sZW5ndGg8eC5sZW5ndGgpcmV0dXJuLTE7Zm9yKHZhciBQPTAsVj10''@;'; + put 'put ''aGlzLmxlbmd0aC0xO1Y+PTA7Vi0tKXt2YXIgVD0wfHRoaXMud29yZHNbVl0sUz0wfHgud29yZHNbVl07aWYoVCE9PVMpe1Q8Uz9QPS0xOlQ+UyYmKFA9MSk7YnJlYWt9fXJldHVybiBQfSxOLnByb3RvdHlwZS5ndG49ZnVuY3Rpb24oeCl7cmV0dXJuIDE9PT10aGlzLmNtcG4oeCl9LE4ucHJv''@;'; + put 'put ''dG90eXBlLmd0PWZ1bmN0aW9uKHgpe3JldHVybiAxPT09dGhpcy5jbXAoeCl9LE4ucHJvdG90eXBlLmd0ZW49ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuY21wbih4KT49MH0sTi5wcm90b3R5cGUuZ3RlPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmNtcCh4KT49MH0sTi5wcm90b3R5cGUubHRu''@;'; + put 'put ''PWZ1bmN0aW9uKHgpe3JldHVybi0xPT09dGhpcy5jbXBuKHgpfSxOLnByb3RvdHlwZS5sdD1mdW5jdGlvbih4KXtyZXR1cm4tMT09PXRoaXMuY21wKHgpfSxOLnByb3RvdHlwZS5sdGVuPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmNtcG4oeCk8PTB9LE4ucHJvdG90eXBlLmx0ZT1mdW5jdGlv''@;'; + put 'put ''bih4KXtyZXR1cm4gdGhpcy5jbXAoeCk8PTB9LE4ucHJvdG90eXBlLmVxbj1mdW5jdGlvbih4KXtyZXR1cm4gMD09PXRoaXMuY21wbih4KX0sTi5wcm90b3R5cGUuZXE9ZnVuY3Rpb24oeCl7cmV0dXJuIDA9PT10aGlzLmNtcCh4KX0sTi5yZWQ9ZnVuY3Rpb24oeCl7cmV0dXJuIG5ldyBuZSh4''@;'; + put 'put ''KX0sTi5wcm90b3R5cGUudG9SZWQ9ZnVuY3Rpb24oeCl7cmV0dXJuIFkoIXRoaXMucmVkLCJBbHJlYWR5IGEgbnVtYmVyIGluIHJlZHVjdGlvbiBjb250ZXh0IiksWSgwPT09dGhpcy5uZWdhdGl2ZSwicmVkIHdvcmtzIG9ubHkgd2l0aCBwb3NpdGl2ZXMiKSx4LmNvbnZlcnRUbyh0aGlzKS5f''@;'; + put 'put ''Zm9yY2VSZWQoeCl9LE4ucHJvdG90eXBlLmZyb21SZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gWSh0aGlzLnJlZCwiZnJvbVJlZCB3b3JrcyBvbmx5IHdpdGggbnVtYmVycyBpbiByZWR1Y3Rpb24gY29udGV4dCIpLHRoaXMucmVkLmNvbnZlcnRGcm9tKHRoaXMpfSxOLnByb3RvdHlwZS5fZm9yY2VS''@;'; + put 'put ''ZWQ9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMucmVkPXgsdGhpc30sTi5wcm90b3R5cGUuZm9yY2VSZWQ9ZnVuY3Rpb24oeCl7cmV0dXJuIFkoIXRoaXMucmVkLCJBbHJlYWR5IGEgbnVtYmVyIGluIHJlZHVjdGlvbiBjb250ZXh0IiksdGhpcy5fZm9yY2VSZWQoeCl9LE4ucHJvdG90eXBlLnJl''@;'; + put 'put ''ZEFkZD1mdW5jdGlvbih4KXtyZXR1cm4gWSh0aGlzLnJlZCwicmVkQWRkIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLmFkZCh0aGlzLHgpfSxOLnByb3RvdHlwZS5yZWRJQWRkPWZ1bmN0aW9uKHgpe3JldHVybiBZKHRoaXMucmVkLCJyZWRJQWRkIHdvcmtzIG9ubHkg''@;'; + put 'put ''d2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLmlhZGQodGhpcyx4KX0sTi5wcm90b3R5cGUucmVkU3ViPWZ1bmN0aW9uKHgpe3JldHVybiBZKHRoaXMucmVkLCJyZWRTdWIgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuc3ViKHRoaXMseCl9LE4ucHJvdG90eXBlLnJl''@;'; + put 'put ''ZElTdWI9ZnVuY3Rpb24oeCl7cmV0dXJuIFkodGhpcy5yZWQsInJlZElTdWIgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuaXN1Yih0aGlzLHgpfSxOLnByb3RvdHlwZS5yZWRTaGw9ZnVuY3Rpb24oeCl7cmV0dXJuIFkodGhpcy5yZWQsInJlZFNobCB3b3JrcyBvbmx5''@;'; + put 'put ''IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5zaGwodGhpcyx4KX0sTi5wcm90b3R5cGUucmVkTXVsPWZ1bmN0aW9uKHgpe3JldHVybiBZKHRoaXMucmVkLCJyZWRNdWwgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTIodGhpcyx4KSx0aGlzLnJlZC5t''@;'; + put 'put ''dWwodGhpcyx4KX0sTi5wcm90b3R5cGUucmVkSU11bD1mdW5jdGlvbih4KXtyZXR1cm4gWSh0aGlzLnJlZCwicmVkTXVsIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkyKHRoaXMseCksdGhpcy5yZWQuaW11bCh0aGlzLHgpfSxOLnByb3RvdHlwZS5yZWRT''@;'; + put 'put ''cXI9ZnVuY3Rpb24oKXtyZXR1cm4gWSh0aGlzLnJlZCwicmVkU3FyIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLnNxcih0aGlzKX0sTi5wcm90b3R5cGUucmVkSVNxcj1mdW5jdGlvbigpe3JldHVybiBZKHRoaXMucmVkLCJy''@;'; + put 'put ''ZWRJU3FyIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLmlzcXIodGhpcyl9LE4ucHJvdG90eXBlLnJlZFNxcnQ9ZnVuY3Rpb24oKXtyZXR1cm4gWSh0aGlzLnJlZCwicmVkU3FydCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJl''@;'; + put 'put ''cnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5zcXJ0KHRoaXMpfSxOLnByb3RvdHlwZS5yZWRJbnZtPWZ1bmN0aW9uKCl7cmV0dXJuIFkodGhpcy5yZWQsInJlZEludm0gd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhp''@;'; + put 'put ''cy5yZWQuaW52bSh0aGlzKX0sTi5wcm90b3R5cGUucmVkTmVnPWZ1bmN0aW9uKCl7cmV0dXJuIFkodGhpcy5yZWQsInJlZE5lZyB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5uZWcodGhpcyl9LE4ucHJvdG90eXBlLnJlZFBv''@;'; + put 'put ''dz1mdW5jdGlvbih4KXtyZXR1cm4gWSh0aGlzLnJlZCYmIXgucmVkLCJyZWRQb3cobm9ybWFsTnVtKSIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLnBvdyh0aGlzLHgpfTt2YXIgSWU9e2syNTY6bnVsbCxwMjI0Om51bGwscDE5MjpudWxsLHAyNTUxOTpudWxsfTtmdW5jdGlv''@;'; + put 'put ''biBUZSh4LFApe3RoaXMubmFtZT14LHRoaXMucD1uZXcgTihQLDE2KSx0aGlzLm49dGhpcy5wLmJpdExlbmd0aCgpLHRoaXMuaz1uZXcgTigxKS5pdXNobG4odGhpcy5uKS5pc3ViKHRoaXMucCksdGhpcy50bXA9dGhpcy5fdG1wKCl9ZnVuY3Rpb24gRWUoKXtUZS5jYWxsKHRoaXMsImsyNTYi''@;'; + put 'put ''LCJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZSBmZmZmZmMyZiIpfWZ1bmN0aW9uIGhlKCl7VGUuY2FsbCh0aGlzLCJwMjI0IiwiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgMDAwMDAwMDAgMDAwMDAwMDAg''@;'; + put 'put ''MDAwMDAwMDEiKX1mdW5jdGlvbiBPKCl7VGUuY2FsbCh0aGlzLCJwMTkyIiwiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUgZmZmZmZmZmYgZmZmZmZmZmYiKX1mdW5jdGlvbiB6KCl7VGUuY2FsbCh0aGlzLCIyNTUxOSIsIjdmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZm''@;'; + put 'put ''ZmZmZiBmZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZWQiKX1mdW5jdGlvbiBuZSh4KXtpZigic3RyaW5nIj09dHlwZW9mIHgpe3ZhciBQPU4uX3ByaW1lKHgpO3RoaXMubT1QLnAsdGhpcy5wcmltZT1QfWVsc2UgWSh4Lmd0bigxKSwibW9kdWx1cyBtdXN0IGJlIGdyZWF0ZXIgdGhh''@;'; + put 'put ''biAxIiksdGhpcy5tPXgsdGhpcy5wcmltZT1udWxsfWZ1bmN0aW9uIHRlKHgpe25lLmNhbGwodGhpcyx4KSx0aGlzLnNoaWZ0PXRoaXMubS5iaXRMZW5ndGgoKSx0aGlzLnNoaWZ0JTI2IT0wJiYodGhpcy5zaGlmdCs9MjYtdGhpcy5zaGlmdCUyNiksdGhpcy5yPW5ldyBOKDEpLml1c2hsbih0''@;'; + put 'put ''aGlzLnNoaWZ0KSx0aGlzLnIyPXRoaXMuaW1vZCh0aGlzLnIuc3FyKCkpLHRoaXMucmludj10aGlzLnIuX2ludm1wKHRoaXMubSksdGhpcy5taW52PXRoaXMucmludi5tdWwodGhpcy5yKS5pc3VibigxKS5kaXYodGhpcy5tKSx0aGlzLm1pbnY9dGhpcy5taW52LnVtb2QodGhpcy5yKSx0aGlz''@;'; + put 'put ''Lm1pbnY9dGhpcy5yLnN1Yih0aGlzLm1pbnYpfVRlLnByb3RvdHlwZS5fdG1wPWZ1bmN0aW9uKCl7dmFyIHg9bmV3IE4obnVsbCk7cmV0dXJuIHgud29yZHM9bmV3IEFycmF5KE1hdGguY2VpbCh0aGlzLm4vMTMpKSx4fSxUZS5wcm90b3R5cGUuaXJlZHVjZT1mdW5jdGlvbih4KXt2YXIgUCxW''@;'; + put 'put ''PXg7ZG97dGhpcy5zcGxpdChWLHRoaXMudG1wKSxQPShWPShWPXRoaXMuaW11bEsoVikpLmlhZGQodGhpcy50bXApKS5iaXRMZW5ndGgoKX13aGlsZShQPnRoaXMubik7dmFyIFQ9UDx0aGlzLm4/LTE6Vi51Y21wKHRoaXMucCk7cmV0dXJuIDA9PT1UPyhWLndvcmRzWzBdPTAsVi5sZW5ndGg9''@;'; + put 'put ''MSk6VD4wP1YuaXN1Yih0aGlzLnApOnZvaWQgMCE9PVYuc3RyaXA/Vi5zdHJpcCgpOlYuX3N0cmlwKCksVn0sVGUucHJvdG90eXBlLnNwbGl0PWZ1bmN0aW9uKHgsUCl7eC5pdXNocm4odGhpcy5uLDAsUCl9LFRlLnByb3RvdHlwZS5pbXVsSz1mdW5jdGlvbih4KXtyZXR1cm4geC5pbXVsKHRo''@;'; + put 'put ''aXMuayl9LFcoRWUsVGUpLEVlLnByb3RvdHlwZS5zcGxpdD1mdW5jdGlvbih4LFApe2Zvcih2YXIgVj00MTk0MzAzLFQ9TWF0aC5taW4oeC5sZW5ndGgsOSksUz0wO1M8VDtTKyspUC53b3Jkc1tTXT14LndvcmRzW1NdO2lmKFAubGVuZ3RoPVQseC5sZW5ndGg8PTkpcmV0dXJuIHgud29yZHNb''@;'; + put 'put ''MF09MCx2b2lkKHgubGVuZ3RoPTEpO3ZhciBGPXgud29yZHNbOV07Zm9yKFAud29yZHNbUC5sZW5ndGgrK109RiZWLFM9MTA7Uzx4Lmxlbmd0aDtTKyspe3ZhciB5ZT0wfHgud29yZHNbU107eC53b3Jkc1tTLTEwXT0oeWUmVik8PDR8Rj4+PjIyLEY9eWV9eC53b3Jkc1tTLTEwXT1GPj4+PTIy''@;'; + put 'put ''LHgubGVuZ3RoLT0wPT09RiYmeC5sZW5ndGg+MTA/MTA6OX0sRWUucHJvdG90eXBlLmltdWxLPWZ1bmN0aW9uKHgpe3gud29yZHNbeC5sZW5ndGhdPTAseC53b3Jkc1t4Lmxlbmd0aCsxXT0wLHgubGVuZ3RoKz0yO2Zvcih2YXIgUD0wLFY9MDtWPHgubGVuZ3RoO1YrKyl7dmFyIFQ9MHx4Lndv''@;'; + put 'put ''cmRzW1ZdO3gud29yZHNbVl09NjcxMDg4NjMmKFArPTk3NypUKSxQPTY0KlQrKFAvNjcxMDg4NjR8MCl9cmV0dXJuIDA9PT14LndvcmRzW3gubGVuZ3RoLTFdJiYoeC5sZW5ndGgtLSwwPT09eC53b3Jkc1t4Lmxlbmd0aC0xXSYmeC5sZW5ndGgtLSkseH0sVyhoZSxUZSksVyhPLFRlKSxXKHos''@;'; + put 'put ''VGUpLHoucHJvdG90eXBlLmltdWxLPWZ1bmN0aW9uKHgpe2Zvcih2YXIgUD0wLFY9MDtWPHgubGVuZ3RoO1YrKyl7dmFyIFQ9MTkqKDB8eC53b3Jkc1tWXSkrUCxTPTY3MTA4ODYzJlQ7VD4+Pj0yNix4LndvcmRzW1ZdPVMsUD1UfXJldHVybiAwIT09UCYmKHgud29yZHNbeC5sZW5ndGgrK109''@;'; + put 'put ''UCkseH0sTi5fcHJpbWU9ZnVuY3Rpb24oeCl7aWYoSWVbeF0pcmV0dXJuIEllW3hdO3ZhciBQO2lmKCJrMjU2Ij09PXgpUD1uZXcgRWU7ZWxzZSBpZigicDIyNCI9PT14KVA9bmV3IGhlO2Vsc2UgaWYoInAxOTIiPT09eClQPW5ldyBPO2Vsc2V7aWYoInAyNTUxOSIhPT14KXRocm93IG5ldyBF''@;'; + put 'put ''cnJvcigiVW5rbm93biBwcmltZSAiK3gpO1A9bmV3IHp9cmV0dXJuIEllW3hdPVAsUH0sbmUucHJvdG90eXBlLl92ZXJpZnkxPWZ1bmN0aW9uKHgpe1koMD09PXgubmVnYXRpdmUsInJlZCB3b3JrcyBvbmx5IHdpdGggcG9zaXRpdmVzIiksWSh4LnJlZCwicmVkIHdvcmtzIG9ubHkgd2l0aCBy''@;'; + put 'put ''ZWQgbnVtYmVycyIpfSxuZS5wcm90b3R5cGUuX3ZlcmlmeTI9ZnVuY3Rpb24oeCxQKXtZKDA9PSh4Lm5lZ2F0aXZlfFAubmVnYXRpdmUpLCJyZWQgd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlcyIpLFkoeC5yZWQmJngucmVkPT09UC5yZWQsInJlZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJl''@;'; + put 'put ''cnMiKX0sbmUucHJvdG90eXBlLmltb2Q9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMucHJpbWU/dGhpcy5wcmltZS5pcmVkdWNlKHgpLl9mb3JjZVJlZCh0aGlzKTp4LnVtb2QodGhpcy5tKS5fZm9yY2VSZWQodGhpcyl9LG5lLnByb3RvdHlwZS5uZWc9ZnVuY3Rpb24oeCl7cmV0dXJuIHguaXNa''@;'; + put 'put ''ZXJvKCk/eC5jbG9uZSgpOnRoaXMubS5zdWIoeCkuX2ZvcmNlUmVkKHRoaXMpfSxuZS5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKHgsUCl7dGhpcy5fdmVyaWZ5Mih4LFApO3ZhciBWPXguYWRkKFApO3JldHVybiBWLmNtcCh0aGlzLm0pPj0wJiZWLmlzdWIodGhpcy5tKSxWLl9mb3JjZVJlZCh0''@;'; + put 'put ''aGlzKX0sbmUucHJvdG90eXBlLmlhZGQ9ZnVuY3Rpb24oeCxQKXt0aGlzLl92ZXJpZnkyKHgsUCk7dmFyIFY9eC5pYWRkKFApO3JldHVybiBWLmNtcCh0aGlzLm0pPj0wJiZWLmlzdWIodGhpcy5tKSxWfSxuZS5wcm90b3R5cGUuc3ViPWZ1bmN0aW9uKHgsUCl7dGhpcy5fdmVyaWZ5Mih4LFAp''@;'; + put 'put ''O3ZhciBWPXguc3ViKFApO3JldHVybiBWLmNtcG4oMCk8MCYmVi5pYWRkKHRoaXMubSksVi5fZm9yY2VSZWQodGhpcyl9LG5lLnByb3RvdHlwZS5pc3ViPWZ1bmN0aW9uKHgsUCl7dGhpcy5fdmVyaWZ5Mih4LFApO3ZhciBWPXguaXN1YihQKTtyZXR1cm4gVi5jbXBuKDApPDAmJlYuaWFkZCh0''@;'; + put 'put ''aGlzLm0pLFZ9LG5lLnByb3RvdHlwZS5zaGw9ZnVuY3Rpb24oeCxQKXtyZXR1cm4gdGhpcy5fdmVyaWZ5MSh4KSx0aGlzLmltb2QoeC51c2hsbihQKSl9LG5lLnByb3RvdHlwZS5pbXVsPWZ1bmN0aW9uKHgsUCl7cmV0dXJuIHRoaXMuX3ZlcmlmeTIoeCxQKSx0aGlzLmltb2QoeC5pbXVsKFAp''@;'; + put 'put ''KX0sbmUucHJvdG90eXBlLm11bD1mdW5jdGlvbih4LFApe3JldHVybiB0aGlzLl92ZXJpZnkyKHgsUCksdGhpcy5pbW9kKHgubXVsKFApKX0sbmUucHJvdG90eXBlLmlzcXI9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuaW11bCh4LHguY2xvbmUoKSl9LG5lLnByb3RvdHlwZS5zcXI9ZnVuY3Rp''@;'; + put 'put ''b24oeCl7cmV0dXJuIHRoaXMubXVsKHgseCl9LG5lLnByb3RvdHlwZS5zcXJ0PWZ1bmN0aW9uKHgpe2lmKHguaXNaZXJvKCkpcmV0dXJuIHguY2xvbmUoKTt2YXIgUD10aGlzLm0uYW5kbG4oMyk7aWYoWShQJTI9PTEpLDM9PT1QKXt2YXIgVj10aGlzLm0uYWRkKG5ldyBOKDEpKS5pdXNocm4o''@;'; + put 'put ''Mik7cmV0dXJuIHRoaXMucG93KHgsVil9Zm9yKHZhciBUPXRoaXMubS5zdWJuKDEpLFM9MDshVC5pc1plcm8oKSYmMD09PVQuYW5kbG4oMSk7KVMrKyxULml1c2hybigxKTtZKCFULmlzWmVybygpKTt2YXIgRj1uZXcgTigxKS50b1JlZCh0aGlzKSx5ZT1GLnJlZE5lZygpLENlPXRoaXMubS5z''@;'; + put 'put ''dWJuKDEpLml1c2hybigxKSxEZT10aGlzLm0uYml0TGVuZ3RoKCk7Zm9yKERlPW5ldyBOKDIqRGUqRGUpLnRvUmVkKHRoaXMpOzAhPT10aGlzLnBvdyhEZSxDZSkuY21wKHllKTspRGUucmVkSUFkZCh5ZSk7Zm9yKHZhciBQZT10aGlzLnBvdyhEZSxUKSxRZT10aGlzLnBvdyh4LFQuYWRkbigx''@;'; + put 'put ''KS5pdXNocm4oMSkpLCRlPXRoaXMucG93KHgsVCksZ3Q9UzswIT09JGUuY21wKEYpOyl7Zm9yKHZhciB3dD0kZSxtdD0wOzAhPT13dC5jbXAoRik7bXQrKyl3dD13dC5yZWRTcXIoKTtZKG10PGd0KTt2YXIgdnQ9dGhpcy5wb3coUGUsbmV3IE4oMSkuaXVzaGxuKGd0LW10LTEpKTtRZT1RZS5y''@;'; + put 'put ''ZWRNdWwodnQpLFBlPXZ0LnJlZFNxcigpLCRlPSRlLnJlZE11bChQZSksZ3Q9bXR9cmV0dXJuIFFlfSxuZS5wcm90b3R5cGUuaW52bT1mdW5jdGlvbih4KXt2YXIgUD14Ll9pbnZtcCh0aGlzLm0pO3JldHVybiAwIT09UC5uZWdhdGl2ZT8oUC5uZWdhdGl2ZT0wLHRoaXMuaW1vZChQKS5yZWRO''@;'; + put 'put ''ZWcoKSk6dGhpcy5pbW9kKFApfSxuZS5wcm90b3R5cGUucG93PWZ1bmN0aW9uKHgsUCl7aWYoUC5pc1plcm8oKSlyZXR1cm4gbmV3IE4oMSkudG9SZWQodGhpcyk7aWYoMD09PVAuY21wbigxKSlyZXR1cm4geC5jbG9uZSgpO3ZhciBWPW5ldyBBcnJheSgxNik7VlswXT1uZXcgTigxKS50b1Jl''@;'; + put 'put ''ZCh0aGlzKSxWWzFdPXg7Zm9yKHZhciBUPTI7VDxWLmxlbmd0aDtUKyspVltUXT10aGlzLm11bChWW1QtMV0seCk7dmFyIFM9VlswXSxGPTAseWU9MCxDZT1QLmJpdExlbmd0aCgpJTI2O2ZvcigwPT09Q2UmJihDZT0yNiksVD1QLmxlbmd0aC0xO1Q+PTA7VC0tKXtmb3IodmFyIERlPVAud29y''@;'; + put 'put ''ZHNbVF0sUGU9Q2UtMTtQZT49MDtQZS0tKXt2YXIgUWU9RGU+PlBlJjE7UyE9PVZbMF0mJihTPXRoaXMuc3FyKFMpKSwwIT09UWV8fDAhPT1GPyhGPDw9MSxGfD1RZSwoND09Kyt5ZXx8MD09PVQmJjA9PT1QZSkmJihTPXRoaXMubXVsKFMsVltGXSkseWU9MCxGPTApKTp5ZT0wfUNlPTI2fXJl''@;'; + put 'put ''dHVybiBTfSxuZS5wcm90b3R5cGUuY29udmVydFRvPWZ1bmN0aW9uKHgpe3ZhciBQPXgudW1vZCh0aGlzLm0pO3JldHVybiBQPT09eD9QLmNsb25lKCk6UH0sbmUucHJvdG90eXBlLmNvbnZlcnRGcm9tPWZ1bmN0aW9uKHgpe3ZhciBQPXguY2xvbmUoKTtyZXR1cm4gUC5yZWQ9bnVsbCxQfSxO''@;'; + put 'put ''Lm1vbnQ9ZnVuY3Rpb24oeCl7cmV0dXJuIG5ldyB0ZSh4KX0sVyh0ZSxuZSksdGUucHJvdG90eXBlLmNvbnZlcnRUbz1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5pbW9kKHgudXNobG4odGhpcy5zaGlmdCkpfSx0ZS5wcm90b3R5cGUuY29udmVydEZyb209ZnVuY3Rpb24oeCl7dmFyIFA9dGhp''@;'; + put 'put ''cy5pbW9kKHgubXVsKHRoaXMucmludikpO3JldHVybiBQLnJlZD1udWxsLFB9LHRlLnByb3RvdHlwZS5pbXVsPWZ1bmN0aW9uKHgsUCl7aWYoeC5pc1plcm8oKXx8UC5pc1plcm8oKSlyZXR1cm4geC53b3Jkc1swXT0wLHgubGVuZ3RoPTEseDt2YXIgVj14LmltdWwoUCksVD1WLm1hc2tuKHRo''@;'; + put 'put ''aXMuc2hpZnQpLm11bCh0aGlzLm1pbnYpLmltYXNrbih0aGlzLnNoaWZ0KS5tdWwodGhpcy5tKSxTPVYuaXN1YihUKS5pdXNocm4odGhpcy5zaGlmdCksRj1TO3JldHVybiBTLmNtcCh0aGlzLm0pPj0wP0Y9Uy5pc3ViKHRoaXMubSk6Uy5jbXBuKDApPDAmJihGPVMuaWFkZCh0aGlzLm0pKSxG''@;'; + put 'put ''Ll9mb3JjZVJlZCh0aGlzKX0sdGUucHJvdG90eXBlLm11bD1mdW5jdGlvbih4LFApe2lmKHguaXNaZXJvKCl8fFAuaXNaZXJvKCkpcmV0dXJuIG5ldyBOKDApLl9mb3JjZVJlZCh0aGlzKTt2YXIgVj14Lm11bChQKSxUPVYubWFza24odGhpcy5zaGlmdCkubXVsKHRoaXMubWludikuaW1hc2tu''@;'; + put 'put ''KHRoaXMuc2hpZnQpLm11bCh0aGlzLm0pLFM9Vi5pc3ViKFQpLml1c2hybih0aGlzLnNoaWZ0KSxGPVM7cmV0dXJuIFMuY21wKHRoaXMubSk+PTA/Rj1TLmlzdWIodGhpcy5tKTpTLmNtcG4oMCk8MCYmKEY9Uy5pYWRkKHRoaXMubSkpLEYuX2ZvcmNlUmVkKHRoaXMpfSx0ZS5wcm90b3R5cGUu''@;'; + put 'put ''aW52bT1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5pbW9kKHguX2ludm1wKHRoaXMubSkubXVsKHRoaXMucjIpKS5fZm9yY2VSZWQodGhpcyl9fShVPVoubm1kKFUpLHRoaXMpfSw2OTQ4OihVLFEsWik9PnsidXNlIHN0cmljdCI7dmFyIGllPVE7aWUudmVyc2lvbj1aKDg1OTcpLmk4LGllLnV0''@;'; + put 'put ''aWxzPVooOTUzKSxpZS5yYW5kPVooOTkzMSksaWUuY3VydmU9Wig4MjU0KSxpZS5jdXJ2ZXM9Wig1NDI3KSxpZS5lYz1aKDc5NTQpLGllLmVkZHNhPVooNTk4MCl9LDQ5MTg6KFUsUSxaKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgaWU9WigzNzg1KSxhZT1aKDk1MyksWT1hZS5nZXROQUYsVz1hZS5n''@;'; + put 'put ''ZXRKU0YsTj1hZS5hc3NlcnQ7ZnVuY3Rpb24gZWUoSixzZSl7dGhpcy50eXBlPUosdGhpcy5wPW5ldyBpZShzZS5wLDE2KSx0aGlzLnJlZD1zZS5wcmltZT9pZS5yZWQoc2UucHJpbWUpOmllLm1vbnQodGhpcy5wKSx0aGlzLnplcm89bmV3IGllKDApLnRvUmVkKHRoaXMucmVkKSx0aGlzLm9u''@;'; + put 'put ''ZT1uZXcgaWUoMSkudG9SZWQodGhpcy5yZWQpLHRoaXMudHdvPW5ldyBpZSgyKS50b1JlZCh0aGlzLnJlZCksdGhpcy5uPXNlLm4mJm5ldyBpZShzZS5uLDE2KSx0aGlzLmc9c2UuZyYmdGhpcy5wb2ludEZyb21KU09OKHNlLmcsc2UuZ1JlZCksdGhpcy5fd25hZlQxPW5ldyBBcnJheSg0KSx0''@;'; + put 'put ''aGlzLl93bmFmVDI9bmV3IEFycmF5KDQpLHRoaXMuX3duYWZUMz1uZXcgQXJyYXkoNCksdGhpcy5fd25hZlQ0PW5ldyBBcnJheSg0KSx0aGlzLl9iaXRMZW5ndGg9dGhpcy5uP3RoaXMubi5iaXRMZW5ndGgoKTowO3ZhciBvZT10aGlzLm4mJnRoaXMucC5kaXYodGhpcy5uKTshb2V8fG9lLmNt''@;'; + put 'put ''cG4oMTAwKT4wP3RoaXMucmVkTj1udWxsOih0aGlzLl9tYXh3ZWxsVHJpY2s9ITAsdGhpcy5yZWROPXRoaXMubi50b1JlZCh0aGlzLnJlZCkpfWZ1bmN0aW9uIHEoSixzZSl7dGhpcy5jdXJ2ZT1KLHRoaXMudHlwZT1zZSx0aGlzLnByZWNvbXB1dGVkPW51bGx9VS5leHBvcnRzPWVlLGVlLnBy''@;'; + put 'put ''b3RvdHlwZS5wb2ludD1mdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcigiTm90IGltcGxlbWVudGVkIil9LGVlLnByb3RvdHlwZS52YWxpZGF0ZT1mdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcigiTm90IGltcGxlbWVudGVkIil9LGVlLnByb3RvdHlwZS5fZml4ZWROYWZNdWw9ZnVuY3Rpb24o''@;'; + put 'put ''SixzZSl7TihKLnByZWNvbXB1dGVkKTt2YXIgb2U9Si5fZ2V0RG91YmxlcygpLGNlPVkoc2UsMSx0aGlzLl9iaXRMZW5ndGgpLGRlPSgxPDxvZS5zdGVwKzEpLShvZS5zdGVwJTI9PTA/MjoxKTtkZS89Mzt2YXIgdmUsQWUsa2U9W107Zm9yKHZlPTA7dmU8Y2UubGVuZ3RoO3ZlKz1vZS5zdGVw''@;'; + put 'put ''KXtBZT0wO2Zvcih2YXIgU2U9dmUrb2Uuc3RlcC0xO1NlPj12ZTtTZS0tKUFlPShBZTw8MSkrY2VbU2VdO2tlLnB1c2goQWUpfWZvcih2YXIgSWU9dGhpcy5qcG9pbnQobnVsbCxudWxsLG51bGwpLFRlPXRoaXMuanBvaW50KG51bGwsbnVsbCxudWxsKSxFZT1kZTtFZT4wO0VlLS0pe2Zvcih2''@;'; + put 'put ''ZT0wO3ZlPGtlLmxlbmd0aDt2ZSsrKShBZT1rZVt2ZV0pPT09RWU/VGU9VGUubWl4ZWRBZGQob2UucG9pbnRzW3ZlXSk6QWU9PT0tRWUmJihUZT1UZS5taXhlZEFkZChvZS5wb2ludHNbdmVdLm5lZygpKSk7SWU9SWUuYWRkKFRlKX1yZXR1cm4gSWUudG9QKCl9LGVlLnByb3RvdHlwZS5fd25h''@;'; + put 'put ''Zk11bD1mdW5jdGlvbihKLHNlKXtmb3IodmFyIG9lPTQsY2U9Si5fZ2V0TkFGUG9pbnRzKG9lKSxkZT1jZS5wb2ludHMsdmU9WShzZSxvZT1jZS53bmQsdGhpcy5fYml0TGVuZ3RoKSxBZT10aGlzLmpwb2ludChudWxsLG51bGwsbnVsbCksa2U9dmUubGVuZ3RoLTE7a2U+PTA7a2UtLSl7Zm9y''@;'; + put 'put ''KHZhciBTZT0wO2tlPj0wJiYwPT09dmVba2VdO2tlLS0pU2UrKztpZihrZT49MCYmU2UrKyxBZT1BZS5kYmxwKFNlKSxrZTwwKWJyZWFrO3ZhciBJZT12ZVtrZV07TigwIT09SWUpLEFlPSJhZmZpbmUiPT09Si50eXBlP0FlLm1peGVkQWRkKEllPjA/ZGVbSWUtMT4+MV06ZGVbLUllLTE+PjFd''@;'; + put 'put ''Lm5lZygpKTpBZS5hZGQoSWU+MD9kZVtJZS0xPj4xXTpkZVstSWUtMT4+MV0ubmVnKCkpfXJldHVybiJhZmZpbmUiPT09Si50eXBlP0FlLnRvUCgpOkFlfSxlZS5wcm90b3R5cGUuX3duYWZNdWxBZGQ9ZnVuY3Rpb24oSixzZSxvZSxjZSxkZSl7dmFyIHZlLEFlLGtlLFNlPXRoaXMuX3duYWZU''@;'; + put 'put ''MSxJZT10aGlzLl93bmFmVDIsVGU9dGhpcy5fd25hZlQzLEVlPTA7Zm9yKHZlPTA7dmU8Y2U7dmUrKyl7dmFyIGhlPShrZT1zZVt2ZV0pLl9nZXROQUZQb2ludHMoSik7U2VbdmVdPWhlLnduZCxJZVt2ZV09aGUucG9pbnRzfWZvcih2ZT1jZS0xO3ZlPj0xO3ZlLT0yKXt2YXIgTz12ZS0xLHo9''@;'; + put 'put ''dmU7aWYoMT09PVNlW09dJiYxPT09U2Vbel0pe3ZhciBuZT1bc2VbT10sbnVsbCxudWxsLHNlW3pdXTswPT09c2VbT10ueS5jbXAoc2Vbel0ueSk/KG5lWzFdPXNlW09dLmFkZChzZVt6XSksbmVbMl09c2VbT10udG9KKCkubWl4ZWRBZGQoc2Vbel0ubmVnKCkpKTowPT09c2VbT10ueS5jbXAo''@;'; + put 'put ''c2Vbel0ueS5yZWROZWcoKSk/KG5lWzFdPXNlW09dLnRvSigpLm1peGVkQWRkKHNlW3pdKSxuZVsyXT1zZVtPXS5hZGQoc2Vbel0ubmVnKCkpKToobmVbMV09c2VbT10udG9KKCkubWl4ZWRBZGQoc2Vbel0pLG5lWzJdPXNlW09dLnRvSigpLm1peGVkQWRkKHNlW3pdLm5lZygpKSk7dmFyIHRl''@;'; + put 'put ''PVstMywtMSwtNSwtNywwLDcsNSwxLDNdLHg9VyhvZVtPXSxvZVt6XSk7Zm9yKEVlPU1hdGgubWF4KHhbMF0ubGVuZ3RoLEVlKSxUZVtPXT1uZXcgQXJyYXkoRWUpLFRlW3pdPW5ldyBBcnJheShFZSksQWU9MDtBZTxFZTtBZSsrKVRlW09dW0FlXT10ZVszKigxKygwfHhbMF1bQWVdKSkrKDEr''@;'; + put 'put ''KDB8eFsxXVtBZV0pKV0sVGVbel1bQWVdPTAsSWVbT109bmV9ZWxzZSBUZVtPXT1ZKG9lW09dLFNlW09dLHRoaXMuX2JpdExlbmd0aCksVGVbel09WShvZVt6XSxTZVt6XSx0aGlzLl9iaXRMZW5ndGgpLEVlPU1hdGgubWF4KFRlW09dLmxlbmd0aCxFZSksRWU9TWF0aC5tYXgoVGVbel0ubGVu''@;'; + put 'put ''Z3RoLEVlKX12YXIgVD10aGlzLmpwb2ludChudWxsLG51bGwsbnVsbCksUz10aGlzLl93bmFmVDQ7Zm9yKHZlPUVlO3ZlPj0wO3ZlLS0pe2Zvcih2YXIgRj0wO3ZlPj0wOyl7dmFyIHllPSEwO2ZvcihBZT0wO0FlPGNlO0FlKyspU1tBZV09MHxUZVtBZV1bdmVdLDAhPT1TW0FlXSYmKHllPSEx''@;'; + put 'put ''KTtpZigheWUpYnJlYWs7RisrLHZlLS19aWYodmU+PTAmJkYrKyxUPVQuZGJscChGKSx2ZTwwKWJyZWFrO2ZvcihBZT0wO0FlPGNlO0FlKyspe3ZhciBDZT1TW0FlXTswIT09Q2UmJihDZT4wP2tlPUllW0FlXVtDZS0xPj4xXTpDZTwwJiYoa2U9SWVbQWVdWy1DZS0xPj4xXS5uZWcoKSksVD0i''@;'; + put 'put ''YWZmaW5lIj09PWtlLnR5cGU/VC5taXhlZEFkZChrZSk6VC5hZGQoa2UpKX19Zm9yKHZlPTA7dmU8Y2U7dmUrKylJZVt2ZV09bnVsbDtyZXR1cm4gZGU/VDpULnRvUCgpfSxlZS5CYXNlUG9pbnQ9cSxxLnByb3RvdHlwZS5lcT1mdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcigiTm90IGltcGxl''@;'; + put 'put ''bWVudGVkIil9LHEucHJvdG90eXBlLnZhbGlkYXRlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY3VydmUudmFsaWRhdGUodGhpcyl9LGVlLnByb3RvdHlwZS5kZWNvZGVQb2ludD1mdW5jdGlvbihKLHNlKXtKPWFlLnRvQXJyYXkoSixzZSk7dmFyIG9lPXRoaXMucC5ieXRlTGVuZ3RoKCk7aWYo''@;'; + put 'put ''KDQ9PT1KWzBdfHw2PT09SlswXXx8Nz09PUpbMF0pJiZKLmxlbmd0aC0xPT0yKm9lKXJldHVybiA2PT09SlswXT9OKEpbSi5sZW5ndGgtMV0lMj09MCk6Nz09PUpbMF0mJk4oSltKLmxlbmd0aC0xXSUyPT0xKSx0aGlzLnBvaW50KEouc2xpY2UoMSwxK29lKSxKLnNsaWNlKDErb2UsMSsyKm9l''@;'; + put 'put ''KSk7aWYoKDI9PT1KWzBdfHwzPT09SlswXSkmJkoubGVuZ3RoLTE9PT1vZSlyZXR1cm4gdGhpcy5wb2ludEZyb21YKEouc2xpY2UoMSwxK29lKSwzPT09SlswXSk7dGhyb3cgbmV3IEVycm9yKCJVbmtub3duIHBvaW50IGZvcm1hdCIpfSxxLnByb3RvdHlwZS5lbmNvZGVDb21wcmVzc2VkPWZ1''@;'; + put 'put ''bmN0aW9uKEope3JldHVybiB0aGlzLmVuY29kZShKLCEwKX0scS5wcm90b3R5cGUuX2VuY29kZT1mdW5jdGlvbihKKXt2YXIgc2U9dGhpcy5jdXJ2ZS5wLmJ5dGVMZW5ndGgoKSxvZT10aGlzLmdldFgoKS50b0FycmF5KCJiZSIsc2UpO3JldHVybiBKP1t0aGlzLmdldFkoKS5pc0V2ZW4oKT8y''@;'; + put 'put ''OjNdLmNvbmNhdChvZSk6WzRdLmNvbmNhdChvZSx0aGlzLmdldFkoKS50b0FycmF5KCJiZSIsc2UpKX0scS5wcm90b3R5cGUuZW5jb2RlPWZ1bmN0aW9uKEosc2Upe3JldHVybiBhZS5lbmNvZGUodGhpcy5fZW5jb2RlKHNlKSxKKX0scS5wcm90b3R5cGUucHJlY29tcHV0ZT1mdW5jdGlvbihK''@;'; + put 'put ''KXtpZih0aGlzLnByZWNvbXB1dGVkKXJldHVybiB0aGlzO3ZhciBzZT17ZG91YmxlczpudWxsLG5hZjpudWxsLGJldGE6bnVsbH07cmV0dXJuIHNlLm5hZj10aGlzLl9nZXROQUZQb2ludHMoOCksc2UuZG91Ymxlcz10aGlzLl9nZXREb3VibGVzKDQsSiksc2UuYmV0YT10aGlzLl9nZXRCZXRh''@;'; + put 'put ''KCksdGhpcy5wcmVjb21wdXRlZD1zZSx0aGlzfSxxLnByb3RvdHlwZS5faGFzRG91Ymxlcz1mdW5jdGlvbihKKXtpZighdGhpcy5wcmVjb21wdXRlZClyZXR1cm4hMTt2YXIgc2U9dGhpcy5wcmVjb21wdXRlZC5kb3VibGVzO3JldHVybiEhc2UmJnNlLnBvaW50cy5sZW5ndGg+PU1hdGguY2Vp''@;'; + put 'put ''bCgoSi5iaXRMZW5ndGgoKSsxKS9zZS5zdGVwKX0scS5wcm90b3R5cGUuX2dldERvdWJsZXM9ZnVuY3Rpb24oSixzZSl7aWYodGhpcy5wcmVjb21wdXRlZCYmdGhpcy5wcmVjb21wdXRlZC5kb3VibGVzKXJldHVybiB0aGlzLnByZWNvbXB1dGVkLmRvdWJsZXM7Zm9yKHZhciBvZT1bdGhpc10s''@;'; + put 'put ''Y2U9dGhpcyxkZT0wO2RlPHNlO2RlKz1KKXtmb3IodmFyIHZlPTA7dmU8Sjt2ZSsrKWNlPWNlLmRibCgpO29lLnB1c2goY2UpfXJldHVybntzdGVwOkoscG9pbnRzOm9lfX0scS5wcm90b3R5cGUuX2dldE5BRlBvaW50cz1mdW5jdGlvbihKKXtpZih0aGlzLnByZWNvbXB1dGVkJiZ0aGlzLnBy''@;'; + put 'put ''ZWNvbXB1dGVkLm5hZilyZXR1cm4gdGhpcy5wcmVjb21wdXRlZC5uYWY7Zm9yKHZhciBzZT1bdGhpc10sb2U9KDE8PEopLTEsY2U9MT09PW9lP251bGw6dGhpcy5kYmwoKSxkZT0xO2RlPG9lO2RlKyspc2VbZGVdPXNlW2RlLTFdLmFkZChjZSk7cmV0dXJue3duZDpKLHBvaW50czpzZX19LHEu''@;'; + put 'put ''cHJvdG90eXBlLl9nZXRCZXRhPWZ1bmN0aW9uKCl7cmV0dXJuIG51bGx9LHEucHJvdG90eXBlLmRibHA9ZnVuY3Rpb24oSil7Zm9yKHZhciBzZT10aGlzLG9lPTA7b2U8SjtvZSsrKXNlPXNlLmRibCgpO3JldHVybiBzZX19LDExMzg6KFUsUSxaKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgaWU9Wig5''@;'; + put 'put ''NTMpLGFlPVooMzc4NSksWT1aKDU3MTcpLFc9Wig0OTE4KSxOPWllLmFzc2VydDtmdW5jdGlvbiBlZShKKXt0aGlzLnR3aXN0ZWQ9MSE9KDB8Si5hKSx0aGlzLm1PbmVBPXRoaXMudHdpc3RlZCYmLTE9PSgwfEouYSksdGhpcy5leHRlbmRlZD10aGlzLm1PbmVBLFcuY2FsbCh0aGlzLCJlZHdh''@;'; + put 'put ''cmRzIixKKSx0aGlzLmE9bmV3IGFlKEouYSwxNikudW1vZCh0aGlzLnJlZC5tKSx0aGlzLmE9dGhpcy5hLnRvUmVkKHRoaXMucmVkKSx0aGlzLmM9bmV3IGFlKEouYywxNikudG9SZWQodGhpcy5yZWQpLHRoaXMuYzI9dGhpcy5jLnJlZFNxcigpLHRoaXMuZD1uZXcgYWUoSi5kLDE2KS50b1Jl''@;'; + put 'put ''ZCh0aGlzLnJlZCksdGhpcy5kZD10aGlzLmQucmVkQWRkKHRoaXMuZCksTighdGhpcy50d2lzdGVkfHwwPT09dGhpcy5jLmZyb21SZWQoKS5jbXBuKDEpKSx0aGlzLm9uZUM9MT09KDB8Si5jKX1mdW5jdGlvbiBxKEosc2Usb2UsY2UsZGUpe1cuQmFzZVBvaW50LmNhbGwodGhpcyxKLCJwcm9q''@;'; + put 'put ''ZWN0aXZlIiksbnVsbD09PXNlJiZudWxsPT09b2UmJm51bGw9PT1jZT8odGhpcy54PXRoaXMuY3VydmUuemVybyx0aGlzLnk9dGhpcy5jdXJ2ZS5vbmUsdGhpcy56PXRoaXMuY3VydmUub25lLHRoaXMudD10aGlzLmN1cnZlLnplcm8sdGhpcy56T25lPSEwKToodGhpcy54PW5ldyBhZShzZSwx''@;'; + put 'put ''NiksdGhpcy55PW5ldyBhZShvZSwxNiksdGhpcy56PWNlP25ldyBhZShjZSwxNik6dGhpcy5jdXJ2ZS5vbmUsdGhpcy50PWRlJiZuZXcgYWUoZGUsMTYpLHRoaXMueC5yZWR8fCh0aGlzLng9dGhpcy54LnRvUmVkKHRoaXMuY3VydmUucmVkKSksdGhpcy55LnJlZHx8KHRoaXMueT10aGlzLnku''@;'; + put 'put ''dG9SZWQodGhpcy5jdXJ2ZS5yZWQpKSx0aGlzLnoucmVkfHwodGhpcy56PXRoaXMuei50b1JlZCh0aGlzLmN1cnZlLnJlZCkpLHRoaXMudCYmIXRoaXMudC5yZWQmJih0aGlzLnQ9dGhpcy50LnRvUmVkKHRoaXMuY3VydmUucmVkKSksdGhpcy56T25lPXRoaXMuej09PXRoaXMuY3VydmUub25l''@;'; + put 'put ''LHRoaXMuY3VydmUuZXh0ZW5kZWQmJiF0aGlzLnQmJih0aGlzLnQ9dGhpcy54LnJlZE11bCh0aGlzLnkpLHRoaXMuek9uZXx8KHRoaXMudD10aGlzLnQucmVkTXVsKHRoaXMuei5yZWRJbnZtKCkpKSkpfVkoZWUsVyksVS5leHBvcnRzPWVlLGVlLnByb3RvdHlwZS5fbXVsQT1mdW5jdGlvbihK''@;'; + put 'put ''KXtyZXR1cm4gdGhpcy5tT25lQT9KLnJlZE5lZygpOnRoaXMuYS5yZWRNdWwoSil9LGVlLnByb3RvdHlwZS5fbXVsQz1mdW5jdGlvbihKKXtyZXR1cm4gdGhpcy5vbmVDP0o6dGhpcy5jLnJlZE11bChKKX0sZWUucHJvdG90eXBlLmpwb2ludD1mdW5jdGlvbihKLHNlLG9lLGNlKXtyZXR1cm4g''@;'; + put 'put ''dGhpcy5wb2ludChKLHNlLG9lLGNlKX0sZWUucHJvdG90eXBlLnBvaW50RnJvbVg9ZnVuY3Rpb24oSixzZSl7KEo9bmV3IGFlKEosMTYpKS5yZWR8fChKPUoudG9SZWQodGhpcy5yZWQpKTt2YXIgb2U9Si5yZWRTcXIoKSxjZT10aGlzLmMyLnJlZFN1Yih0aGlzLmEucmVkTXVsKG9lKSksZGU9''@;'; + put 'put ''dGhpcy5vbmUucmVkU3ViKHRoaXMuYzIucmVkTXVsKHRoaXMuZCkucmVkTXVsKG9lKSksdmU9Y2UucmVkTXVsKGRlLnJlZEludm0oKSksQWU9dmUucmVkU3FydCgpO2lmKDAhPT1BZS5yZWRTcXIoKS5yZWRTdWIodmUpLmNtcCh0aGlzLnplcm8pKXRocm93IG5ldyBFcnJvcigiaW52YWxpZCBw''@;'; + put 'put ''b2ludCIpO3ZhciBrZT1BZS5mcm9tUmVkKCkuaXNPZGQoKTtyZXR1cm4oc2UmJiFrZXx8IXNlJiZrZSkmJihBZT1BZS5yZWROZWcoKSksdGhpcy5wb2ludChKLEFlKX0sZWUucHJvdG90eXBlLnBvaW50RnJvbVk9ZnVuY3Rpb24oSixzZSl7KEo9bmV3IGFlKEosMTYpKS5yZWR8fChKPUoudG9S''@;'; + put 'put ''ZWQodGhpcy5yZWQpKTt2YXIgb2U9Si5yZWRTcXIoKSxjZT1vZS5yZWRTdWIodGhpcy5jMiksZGU9b2UucmVkTXVsKHRoaXMuZCkucmVkTXVsKHRoaXMuYzIpLnJlZFN1Yih0aGlzLmEpLHZlPWNlLnJlZE11bChkZS5yZWRJbnZtKCkpO2lmKDA9PT12ZS5jbXAodGhpcy56ZXJvKSl7aWYoc2Up''@;'; + put 'put ''dGhyb3cgbmV3IEVycm9yKCJpbnZhbGlkIHBvaW50Iik7cmV0dXJuIHRoaXMucG9pbnQodGhpcy56ZXJvLEopfXZhciBBZT12ZS5yZWRTcXJ0KCk7aWYoMCE9PUFlLnJlZFNxcigpLnJlZFN1Yih2ZSkuY21wKHRoaXMuemVybykpdGhyb3cgbmV3IEVycm9yKCJpbnZhbGlkIHBvaW50Iik7cmV0''@;'; + put 'put ''dXJuIEFlLmZyb21SZWQoKS5pc09kZCgpIT09c2UmJihBZT1BZS5yZWROZWcoKSksdGhpcy5wb2ludChBZSxKKX0sZWUucHJvdG90eXBlLnZhbGlkYXRlPWZ1bmN0aW9uKEope2lmKEouaXNJbmZpbml0eSgpKXJldHVybiEwO0oubm9ybWFsaXplKCk7dmFyIHNlPUoueC5yZWRTcXIoKSxvZT1K''@;'; + put 'put ''LnkucmVkU3FyKCksY2U9c2UucmVkTXVsKHRoaXMuYSkucmVkQWRkKG9lKSxkZT10aGlzLmMyLnJlZE11bCh0aGlzLm9uZS5yZWRBZGQodGhpcy5kLnJlZE11bChzZSkucmVkTXVsKG9lKSkpO3JldHVybiAwPT09Y2UuY21wKGRlKX0sWShxLFcuQmFzZVBvaW50KSxlZS5wcm90b3R5cGUucG9p''@;'; + put 'put ''bnRGcm9tSlNPTj1mdW5jdGlvbihKKXtyZXR1cm4gcS5mcm9tSlNPTih0aGlzLEopfSxlZS5wcm90b3R5cGUucG9pbnQ9ZnVuY3Rpb24oSixzZSxvZSxjZSl7cmV0dXJuIG5ldyBxKHRoaXMsSixzZSxvZSxjZSl9LHEuZnJvbUpTT049ZnVuY3Rpb24oSixzZSl7cmV0dXJuIG5ldyBxKEosc2Vb''@;'; + put 'put ''MF0sc2VbMV0sc2VbMl0pfSxxLnByb3RvdHlwZS5pbnNwZWN0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXNJbmZpbml0eSgpPyI8RUMgUG9pbnQgSW5maW5pdHk+IjoiPEVDIFBvaW50IHg6ICIrdGhpcy54LmZyb21SZWQoKS50b1N0cmluZygxNiwyKSsiIHk6ICIrdGhpcy55LmZyb21SZWQo''@;'; + put 'put ''KS50b1N0cmluZygxNiwyKSsiIHo6ICIrdGhpcy56LmZyb21SZWQoKS50b1N0cmluZygxNiwyKSsiPiJ9LHEucHJvdG90eXBlLmlzSW5maW5pdHk9ZnVuY3Rpb24oKXtyZXR1cm4gMD09PXRoaXMueC5jbXBuKDApJiYoMD09PXRoaXMueS5jbXAodGhpcy56KXx8dGhpcy56T25lJiYwPT09dGhp''@;'; + put 'put ''cy55LmNtcCh0aGlzLmN1cnZlLmMpKX0scS5wcm90b3R5cGUuX2V4dERibD1mdW5jdGlvbigpe3ZhciBKPXRoaXMueC5yZWRTcXIoKSxzZT10aGlzLnkucmVkU3FyKCksb2U9dGhpcy56LnJlZFNxcigpO29lPW9lLnJlZElBZGQob2UpO3ZhciBjZT10aGlzLmN1cnZlLl9tdWxBKEopLGRlPXRo''@;'; + put 'put ''aXMueC5yZWRBZGQodGhpcy55KS5yZWRTcXIoKS5yZWRJU3ViKEopLnJlZElTdWIoc2UpLHZlPWNlLnJlZEFkZChzZSksQWU9dmUucmVkU3ViKG9lKSxrZT1jZS5yZWRTdWIoc2UpLFNlPWRlLnJlZE11bChBZSksSWU9dmUucmVkTXVsKGtlKSxUZT1kZS5yZWRNdWwoa2UpLEVlPUFlLnJlZE11''@;'; + put 'put ''bCh2ZSk7cmV0dXJuIHRoaXMuY3VydmUucG9pbnQoU2UsSWUsRWUsVGUpfSxxLnByb3RvdHlwZS5fcHJvakRibD1mdW5jdGlvbigpe3ZhciBKLHNlLG9lLGNlLGRlLHZlLEFlPXRoaXMueC5yZWRBZGQodGhpcy55KS5yZWRTcXIoKSxrZT10aGlzLngucmVkU3FyKCksU2U9dGhpcy55LnJlZFNx''@;'; + put 'put ''cigpO2lmKHRoaXMuY3VydmUudHdpc3RlZCl7dmFyIEllPShjZT10aGlzLmN1cnZlLl9tdWxBKGtlKSkucmVkQWRkKFNlKTt0aGlzLnpPbmU/KEo9QWUucmVkU3ViKGtlKS5yZWRTdWIoU2UpLnJlZE11bChJZS5yZWRTdWIodGhpcy5jdXJ2ZS50d28pKSxzZT1JZS5yZWRNdWwoY2UucmVkU3Vi''@;'; + put 'put ''KFNlKSksb2U9SWUucmVkU3FyKCkucmVkU3ViKEllKS5yZWRTdWIoSWUpKTooZGU9dGhpcy56LnJlZFNxcigpLHZlPUllLnJlZFN1YihkZSkucmVkSVN1YihkZSksSj1BZS5yZWRTdWIoa2UpLnJlZElTdWIoU2UpLnJlZE11bCh2ZSksc2U9SWUucmVkTXVsKGNlLnJlZFN1YihTZSkpLG9lPUll''@;'; + put 'put ''LnJlZE11bCh2ZSkpfWVsc2UgY2U9a2UucmVkQWRkKFNlKSxkZT10aGlzLmN1cnZlLl9tdWxDKHRoaXMueikucmVkU3FyKCksdmU9Y2UucmVkU3ViKGRlKS5yZWRTdWIoZGUpLEo9dGhpcy5jdXJ2ZS5fbXVsQyhBZS5yZWRJU3ViKGNlKSkucmVkTXVsKHZlKSxzZT10aGlzLmN1cnZlLl9tdWxD''@;'; + put 'put ''KGNlKS5yZWRNdWwoa2UucmVkSVN1YihTZSkpLG9lPWNlLnJlZE11bCh2ZSk7cmV0dXJuIHRoaXMuY3VydmUucG9pbnQoSixzZSxvZSl9LHEucHJvdG90eXBlLmRibD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmlzSW5maW5pdHkoKT90aGlzOnRoaXMuY3VydmUuZXh0ZW5kZWQ/dGhpcy5fZXh0''@;'; + put 'put ''RGJsKCk6dGhpcy5fcHJvakRibCgpfSxxLnByb3RvdHlwZS5fZXh0QWRkPWZ1bmN0aW9uKEope3ZhciBzZT10aGlzLnkucmVkU3ViKHRoaXMueCkucmVkTXVsKEoueS5yZWRTdWIoSi54KSksb2U9dGhpcy55LnJlZEFkZCh0aGlzLngpLnJlZE11bChKLnkucmVkQWRkKEoueCkpLGNlPXRoaXMu''@;'; + put 'put ''dC5yZWRNdWwodGhpcy5jdXJ2ZS5kZCkucmVkTXVsKEoudCksZGU9dGhpcy56LnJlZE11bChKLnoucmVkQWRkKEoueikpLHZlPW9lLnJlZFN1YihzZSksQWU9ZGUucmVkU3ViKGNlKSxrZT1kZS5yZWRBZGQoY2UpLFNlPW9lLnJlZEFkZChzZSksSWU9dmUucmVkTXVsKEFlKSxUZT1rZS5yZWRN''@;'; + put 'put ''dWwoU2UpLEVlPXZlLnJlZE11bChTZSksaGU9QWUucmVkTXVsKGtlKTtyZXR1cm4gdGhpcy5jdXJ2ZS5wb2ludChJZSxUZSxoZSxFZSl9LHEucHJvdG90eXBlLl9wcm9qQWRkPWZ1bmN0aW9uKEope3ZhciBzZSxvZSxjZT10aGlzLnoucmVkTXVsKEoueiksZGU9Y2UucmVkU3FyKCksdmU9dGhp''@;'; + put 'put ''cy54LnJlZE11bChKLngpLEFlPXRoaXMueS5yZWRNdWwoSi55KSxrZT10aGlzLmN1cnZlLmQucmVkTXVsKHZlKS5yZWRNdWwoQWUpLFNlPWRlLnJlZFN1YihrZSksSWU9ZGUucmVkQWRkKGtlKSxUZT10aGlzLngucmVkQWRkKHRoaXMueSkucmVkTXVsKEoueC5yZWRBZGQoSi55KSkucmVkSVN1''@;'; + put 'put ''Yih2ZSkucmVkSVN1YihBZSksRWU9Y2UucmVkTXVsKFNlKS5yZWRNdWwoVGUpO3JldHVybiB0aGlzLmN1cnZlLnR3aXN0ZWQ/KHNlPWNlLnJlZE11bChJZSkucmVkTXVsKEFlLnJlZFN1Yih0aGlzLmN1cnZlLl9tdWxBKHZlKSkpLG9lPVNlLnJlZE11bChJZSkpOihzZT1jZS5yZWRNdWwoSWUp''@;'; + put 'put ''LnJlZE11bChBZS5yZWRTdWIodmUpKSxvZT10aGlzLmN1cnZlLl9tdWxDKFNlKS5yZWRNdWwoSWUpKSx0aGlzLmN1cnZlLnBvaW50KEVlLHNlLG9lKX0scS5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKEope3JldHVybiB0aGlzLmlzSW5maW5pdHkoKT9KOkouaXNJbmZpbml0eSgpP3RoaXM6dGhp''@;'; + put 'put ''cy5jdXJ2ZS5leHRlbmRlZD90aGlzLl9leHRBZGQoSik6dGhpcy5fcHJvakFkZChKKX0scS5wcm90b3R5cGUubXVsPWZ1bmN0aW9uKEope3JldHVybiB0aGlzLl9oYXNEb3VibGVzKEopP3RoaXMuY3VydmUuX2ZpeGVkTmFmTXVsKHRoaXMsSik6dGhpcy5jdXJ2ZS5fd25hZk11bCh0aGlzLEop''@;'; + put 'put ''fSxxLnByb3RvdHlwZS5tdWxBZGQ9ZnVuY3Rpb24oSixzZSxvZSl7cmV0dXJuIHRoaXMuY3VydmUuX3duYWZNdWxBZGQoMSxbdGhpcyxzZV0sW0osb2VdLDIsITEpfSxxLnByb3RvdHlwZS5qbXVsQWRkPWZ1bmN0aW9uKEosc2Usb2Upe3JldHVybiB0aGlzLmN1cnZlLl93bmFmTXVsQWRkKDEs''@;'; + put 'put ''W3RoaXMsc2VdLFtKLG9lXSwyLCEwKX0scS5wcm90b3R5cGUubm9ybWFsaXplPWZ1bmN0aW9uKCl7aWYodGhpcy56T25lKXJldHVybiB0aGlzO3ZhciBKPXRoaXMuei5yZWRJbnZtKCk7cmV0dXJuIHRoaXMueD10aGlzLngucmVkTXVsKEopLHRoaXMueT10aGlzLnkucmVkTXVsKEopLHRoaXMu''@;'; + put 'put ''dCYmKHRoaXMudD10aGlzLnQucmVkTXVsKEopKSx0aGlzLno9dGhpcy5jdXJ2ZS5vbmUsdGhpcy56T25lPSEwLHRoaXN9LHEucHJvdG90eXBlLm5lZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmN1cnZlLnBvaW50KHRoaXMueC5yZWROZWcoKSx0aGlzLnksdGhpcy56LHRoaXMudCYmdGhpcy50''@;'; + put 'put ''LnJlZE5lZygpKX0scS5wcm90b3R5cGUuZ2V0WD1mdW5jdGlvbigpe3JldHVybiB0aGlzLm5vcm1hbGl6ZSgpLHRoaXMueC5mcm9tUmVkKCl9LHEucHJvdG90eXBlLmdldFk9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ub3JtYWxpemUoKSx0aGlzLnkuZnJvbVJlZCgpfSxxLnByb3RvdHlwZS5l''@;'; + put 'put ''cT1mdW5jdGlvbihKKXtyZXR1cm4gdGhpcz09PUp8fDA9PT10aGlzLmdldFgoKS5jbXAoSi5nZXRYKCkpJiYwPT09dGhpcy5nZXRZKCkuY21wKEouZ2V0WSgpKX0scS5wcm90b3R5cGUuZXFYVG9QPWZ1bmN0aW9uKEope3ZhciBzZT1KLnRvUmVkKHRoaXMuY3VydmUucmVkKS5yZWRNdWwodGhp''@;'; + put 'put ''cy56KTtpZigwPT09dGhpcy54LmNtcChzZSkpcmV0dXJuITA7Zm9yKHZhciBvZT1KLmNsb25lKCksY2U9dGhpcy5jdXJ2ZS5yZWROLnJlZE11bCh0aGlzLnopOzspe2lmKG9lLmlhZGQodGhpcy5jdXJ2ZS5uKSxvZS5jbXAodGhpcy5jdXJ2ZS5wKT49MClyZXR1cm4hMTtpZihzZS5yZWRJQWRk''@;'; + put 'put ''KGNlKSwwPT09dGhpcy54LmNtcChzZSkpcmV0dXJuITB9fSxxLnByb3RvdHlwZS50b1A9cS5wcm90b3R5cGUubm9ybWFsaXplLHEucHJvdG90eXBlLm1peGVkQWRkPXEucHJvdG90eXBlLmFkZH0sODI1NDooVSxRLFopPT57InVzZSBzdHJpY3QiO3ZhciBpZT1RO2llLmJhc2U9Wig0OTE4KSxp''@;'; + put 'put ''ZS5zaG9ydD1aKDY2NzMpLGllLm1vbnQ9WigyODgxKSxpZS5lZHdhcmRzPVooMTEzOCl9LDI4ODE6KFUsUSxaKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgaWU9WigzNzg1KSxhZT1aKDU3MTcpLFk9Wig0OTE4KSxXPVooOTUzKTtmdW5jdGlvbiBOKHEpe1kuY2FsbCh0aGlzLCJtb250IixxKSx0aGlz''@;'; + put 'put ''LmE9bmV3IGllKHEuYSwxNikudG9SZWQodGhpcy5yZWQpLHRoaXMuYj1uZXcgaWUocS5iLDE2KS50b1JlZCh0aGlzLnJlZCksdGhpcy5pND1uZXcgaWUoNCkudG9SZWQodGhpcy5yZWQpLnJlZEludm0oKSx0aGlzLnR3bz1uZXcgaWUoMikudG9SZWQodGhpcy5yZWQpLHRoaXMuYTI0PXRoaXMu''@;'; + put 'put ''aTQucmVkTXVsKHRoaXMuYS5yZWRBZGQodGhpcy50d28pKX1mdW5jdGlvbiBlZShxLEosc2Upe1kuQmFzZVBvaW50LmNhbGwodGhpcyxxLCJwcm9qZWN0aXZlIiksbnVsbD09PUomJm51bGw9PT1zZT8odGhpcy54PXRoaXMuY3VydmUub25lLHRoaXMuej10aGlzLmN1cnZlLnplcm8pOih0aGlz''@;'; + put 'put ''Lng9bmV3IGllKEosMTYpLHRoaXMuej1uZXcgaWUoc2UsMTYpLHRoaXMueC5yZWR8fCh0aGlzLng9dGhpcy54LnRvUmVkKHRoaXMuY3VydmUucmVkKSksdGhpcy56LnJlZHx8KHRoaXMuej10aGlzLnoudG9SZWQodGhpcy5jdXJ2ZS5yZWQpKSl9YWUoTixZKSxVLmV4cG9ydHM9TixOLnByb3Rv''@;'; + put 'put ''dHlwZS52YWxpZGF0ZT1mdW5jdGlvbihxKXt2YXIgSj1xLm5vcm1hbGl6ZSgpLngsc2U9Si5yZWRTcXIoKSxvZT1zZS5yZWRNdWwoSikucmVkQWRkKHNlLnJlZE11bCh0aGlzLmEpKS5yZWRBZGQoSik7cmV0dXJuIDA9PT1vZS5yZWRTcXJ0KCkucmVkU3FyKCkuY21wKG9lKX0sYWUoZWUsWS5C''@;'; + put 'put ''YXNlUG9pbnQpLE4ucHJvdG90eXBlLmRlY29kZVBvaW50PWZ1bmN0aW9uKHEsSil7cmV0dXJuIHRoaXMucG9pbnQoVy50b0FycmF5KHEsSiksMSl9LE4ucHJvdG90eXBlLnBvaW50PWZ1bmN0aW9uKHEsSil7cmV0dXJuIG5ldyBlZSh0aGlzLHEsSil9LE4ucHJvdG90eXBlLnBvaW50RnJvbUpT''@;'; + put 'put ''T049ZnVuY3Rpb24ocSl7cmV0dXJuIGVlLmZyb21KU09OKHRoaXMscSl9LGVlLnByb3RvdHlwZS5wcmVjb21wdXRlPWZ1bmN0aW9uKCl7fSxlZS5wcm90b3R5cGUuX2VuY29kZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmdldFgoKS50b0FycmF5KCJiZSIsdGhpcy5jdXJ2ZS5wLmJ5dGVMZW5n''@;'; + put 'put ''dGgoKSl9LGVlLmZyb21KU09OPWZ1bmN0aW9uKHEsSil7cmV0dXJuIG5ldyBlZShxLEpbMF0sSlsxXXx8cS5vbmUpfSxlZS5wcm90b3R5cGUuaW5zcGVjdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmlzSW5maW5pdHkoKT8iPEVDIFBvaW50IEluZmluaXR5PiI6IjxFQyBQb2ludCB4OiAiK3Ro''@;'; + put 'put ''aXMueC5mcm9tUmVkKCkudG9TdHJpbmcoMTYsMikrIiB6OiAiK3RoaXMuei5mcm9tUmVkKCkudG9TdHJpbmcoMTYsMikrIj4ifSxlZS5wcm90b3R5cGUuaXNJbmZpbml0eT1mdW5jdGlvbigpe3JldHVybiAwPT09dGhpcy56LmNtcG4oMCl9LGVlLnByb3RvdHlwZS5kYmw9ZnVuY3Rpb24oKXt2''@;'; + put 'put ''YXIgcT10aGlzLngucmVkQWRkKHRoaXMueikucmVkU3FyKCksSj10aGlzLngucmVkU3ViKHRoaXMueikucmVkU3FyKCksc2U9cS5yZWRTdWIoSiksb2U9cS5yZWRNdWwoSiksY2U9c2UucmVkTXVsKEoucmVkQWRkKHRoaXMuY3VydmUuYTI0LnJlZE11bChzZSkpKTtyZXR1cm4gdGhpcy5jdXJ2''@;'; + put 'put ''ZS5wb2ludChvZSxjZSl9LGVlLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoIk5vdCBzdXBwb3J0ZWQgb24gTW9udGdvbWVyeSBjdXJ2ZSIpfSxlZS5wcm90b3R5cGUuZGlmZkFkZD1mdW5jdGlvbihxLEope3ZhciBzZT10aGlzLngucmVkQWRkKHRoaXMueiksb2U9''@;'; + put 'put ''dGhpcy54LnJlZFN1Yih0aGlzLnopLGNlPXEueC5yZWRBZGQocS56KSxkZT1xLngucmVkU3ViKHEueikucmVkTXVsKHNlKSx2ZT1jZS5yZWRNdWwob2UpLEFlPUouei5yZWRNdWwoZGUucmVkQWRkKHZlKS5yZWRTcXIoKSksa2U9Si54LnJlZE11bChkZS5yZWRJU3ViKHZlKS5yZWRTcXIoKSk7''@;'; + put 'put ''cmV0dXJuIHRoaXMuY3VydmUucG9pbnQoQWUsa2UpfSxlZS5wcm90b3R5cGUubXVsPWZ1bmN0aW9uKHEpe2Zvcih2YXIgSj1xLmNsb25lKCksc2U9dGhpcyxvZT10aGlzLmN1cnZlLnBvaW50KG51bGwsbnVsbCksY2U9W107MCE9PUouY21wbigwKTtKLml1c2hybigxKSljZS5wdXNoKEouYW5k''@;'; + put 'put ''bG4oMSkpO2Zvcih2YXIgZGU9Y2UubGVuZ3RoLTE7ZGU+PTA7ZGUtLSkwPT09Y2VbZGVdPyhzZT1zZS5kaWZmQWRkKG9lLHRoaXMpLG9lPW9lLmRibCgpKToob2U9c2UuZGlmZkFkZChvZSx0aGlzKSxzZT1zZS5kYmwoKSk7cmV0dXJuIG9lfSxlZS5wcm90b3R5cGUubXVsQWRkPWZ1bmN0aW9u''@;'; + put 'put ''KCl7dGhyb3cgbmV3IEVycm9yKCJOb3Qgc3VwcG9ydGVkIG9uIE1vbnRnb21lcnkgY3VydmUiKX0sZWUucHJvdG90eXBlLmp1bWxBZGQ9ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoIk5vdCBzdXBwb3J0ZWQgb24gTW9udGdvbWVyeSBjdXJ2ZSIpfSxlZS5wcm90b3R5cGUuZXE9ZnVuY3Rp''@;'; + put 'put ''b24ocSl7cmV0dXJuIDA9PT10aGlzLmdldFgoKS5jbXAocS5nZXRYKCkpfSxlZS5wcm90b3R5cGUubm9ybWFsaXplPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueD10aGlzLngucmVkTXVsKHRoaXMuei5yZWRJbnZtKCkpLHRoaXMuej10aGlzLmN1cnZlLm9uZSx0aGlzfSxlZS5wcm90b3R5cGUu''@;'; + put 'put ''Z2V0WD1mdW5jdGlvbigpe3JldHVybiB0aGlzLm5vcm1hbGl6ZSgpLHRoaXMueC5mcm9tUmVkKCl9fSw2NjczOihVLFEsWik9PnsidXNlIHN0cmljdCI7dmFyIGllPVooOTUzKSxhZT1aKDM3ODUpLFk9Wig1NzE3KSxXPVooNDkxOCksTj1pZS5hc3NlcnQ7ZnVuY3Rpb24gZWUoc2Upe1cuY2Fs''@;'; + put 'put ''bCh0aGlzLCJzaG9ydCIsc2UpLHRoaXMuYT1uZXcgYWUoc2UuYSwxNikudG9SZWQodGhpcy5yZWQpLHRoaXMuYj1uZXcgYWUoc2UuYiwxNikudG9SZWQodGhpcy5yZWQpLHRoaXMudGludj10aGlzLnR3by5yZWRJbnZtKCksdGhpcy56ZXJvQT0wPT09dGhpcy5hLmZyb21SZWQoKS5jbXBuKDAp''@;'; + put 'put ''LHRoaXMudGhyZWVBPTA9PT10aGlzLmEuZnJvbVJlZCgpLnN1Yih0aGlzLnApLmNtcG4oLTMpLHRoaXMuZW5kbz10aGlzLl9nZXRFbmRvbW9ycGhpc20oc2UpLHRoaXMuX2VuZG9XbmFmVDE9bmV3IEFycmF5KDQpLHRoaXMuX2VuZG9XbmFmVDI9bmV3IEFycmF5KDQpfWZ1bmN0aW9uIHEoc2Us''@;'; + put 'put ''b2UsY2UsZGUpe1cuQmFzZVBvaW50LmNhbGwodGhpcyxzZSwiYWZmaW5lIiksbnVsbD09PW9lJiZudWxsPT09Y2U/KHRoaXMueD1udWxsLHRoaXMueT1udWxsLHRoaXMuaW5mPSEwKToodGhpcy54PW5ldyBhZShvZSwxNiksdGhpcy55PW5ldyBhZShjZSwxNiksZGUmJih0aGlzLnguZm9yY2VS''@;'; + put 'put ''ZWQodGhpcy5jdXJ2ZS5yZWQpLHRoaXMueS5mb3JjZVJlZCh0aGlzLmN1cnZlLnJlZCkpLHRoaXMueC5yZWR8fCh0aGlzLng9dGhpcy54LnRvUmVkKHRoaXMuY3VydmUucmVkKSksdGhpcy55LnJlZHx8KHRoaXMueT10aGlzLnkudG9SZWQodGhpcy5jdXJ2ZS5yZWQpKSx0aGlzLmluZj0hMSl9''@;'; + put 'put ''ZnVuY3Rpb24gSihzZSxvZSxjZSxkZSl7Vy5CYXNlUG9pbnQuY2FsbCh0aGlzLHNlLCJqYWNvYmlhbiIpLG51bGw9PT1vZSYmbnVsbD09PWNlJiZudWxsPT09ZGU/KHRoaXMueD10aGlzLmN1cnZlLm9uZSx0aGlzLnk9dGhpcy5jdXJ2ZS5vbmUsdGhpcy56PW5ldyBhZSgwKSk6KHRoaXMueD1u''@;'; + put 'put ''ZXcgYWUob2UsMTYpLHRoaXMueT1uZXcgYWUoY2UsMTYpLHRoaXMuej1uZXcgYWUoZGUsMTYpKSx0aGlzLngucmVkfHwodGhpcy54PXRoaXMueC50b1JlZCh0aGlzLmN1cnZlLnJlZCkpLHRoaXMueS5yZWR8fCh0aGlzLnk9dGhpcy55LnRvUmVkKHRoaXMuY3VydmUucmVkKSksdGhpcy56LnJl''@;'; + put 'put ''ZHx8KHRoaXMuej10aGlzLnoudG9SZWQodGhpcy5jdXJ2ZS5yZWQpKSx0aGlzLnpPbmU9dGhpcy56PT09dGhpcy5jdXJ2ZS5vbmV9WShlZSxXKSxVLmV4cG9ydHM9ZWUsZWUucHJvdG90eXBlLl9nZXRFbmRvbW9ycGhpc209ZnVuY3Rpb24oc2Upe2lmKHRoaXMuemVyb0EmJnRoaXMuZyYmdGhp''@;'; + put 'put ''cy5uJiYxPT09dGhpcy5wLm1vZG4oMykpe3ZhciBvZSxjZTtpZihzZS5iZXRhKW9lPW5ldyBhZShzZS5iZXRhLDE2KS50b1JlZCh0aGlzLnJlZCk7ZWxzZXt2YXIgZGU9dGhpcy5fZ2V0RW5kb1Jvb3RzKHRoaXMucCk7b2U9KG9lPWRlWzBdLmNtcChkZVsxXSk8MD9kZVswXTpkZVsxXSkudG9S''@;'; + put 'put ''ZWQodGhpcy5yZWQpfWlmKHNlLmxhbWJkYSljZT1uZXcgYWUoc2UubGFtYmRhLDE2KTtlbHNle3ZhciB2ZT10aGlzLl9nZXRFbmRvUm9vdHModGhpcy5uKTswPT09dGhpcy5nLm11bCh2ZVswXSkueC5jbXAodGhpcy5nLngucmVkTXVsKG9lKSk/Y2U9dmVbMF06TigwPT09dGhpcy5nLm11bChj''@;'; + put 'put ''ZT12ZVsxXSkueC5jbXAodGhpcy5nLngucmVkTXVsKG9lKSkpfXJldHVybntiZXRhOm9lLGxhbWJkYTpjZSxiYXNpczpzZS5iYXNpcz9zZS5iYXNpcy5tYXAoZnVuY3Rpb24oQWUpe3JldHVybnthOm5ldyBhZShBZS5hLDE2KSxiOm5ldyBhZShBZS5iLDE2KX19KTp0aGlzLl9nZXRFbmRvQmFz''@;'; + put 'put ''aXMoY2UpfX19LGVlLnByb3RvdHlwZS5fZ2V0RW5kb1Jvb3RzPWZ1bmN0aW9uKHNlKXt2YXIgb2U9c2U9PT10aGlzLnA/dGhpcy5yZWQ6YWUubW9udChzZSksY2U9bmV3IGFlKDIpLnRvUmVkKG9lKS5yZWRJbnZtKCksZGU9Y2UucmVkTmVnKCksdmU9bmV3IGFlKDMpLnRvUmVkKG9lKS5yZWRO''@;'; + put 'put ''ZWcoKS5yZWRTcXJ0KCkucmVkTXVsKGNlKTtyZXR1cm5bZGUucmVkQWRkKHZlKS5mcm9tUmVkKCksZGUucmVkU3ViKHZlKS5mcm9tUmVkKCldfSxlZS5wcm90b3R5cGUuX2dldEVuZG9CYXNpcz1mdW5jdGlvbihzZSl7Zm9yKHZhciBvZSxjZSxkZSx2ZSxBZSxrZSxTZSxJZSxUZSxFZT10aGlz''@;'; + put 'put ''Lm4udXNocm4oTWF0aC5mbG9vcih0aGlzLm4uYml0TGVuZ3RoKCkvMikpLGhlPXNlLE89dGhpcy5uLmNsb25lKCksej1uZXcgYWUoMSksbmU9bmV3IGFlKDApLHRlPW5ldyBhZSgwKSx4PW5ldyBhZSgxKSxQPTA7MCE9PWhlLmNtcG4oMCk7KXt2YXIgVj1PLmRpdihoZSk7SWU9Ty5zdWIoVi5t''@;'; + put 'put ''dWwoaGUpKSxUZT10ZS5zdWIoVi5tdWwoeikpO3ZhciBUPXguc3ViKFYubXVsKG5lKSk7aWYoIWRlJiZJZS5jbXAoRWUpPDApb2U9U2UubmVnKCksY2U9eixkZT1JZS5uZWcoKSx2ZT1UZTtlbHNlIGlmKGRlJiYyPT0rK1ApYnJlYWs7U2U9SWUsTz1oZSxoZT1JZSx0ZT16LHo9VGUseD1uZSxu''@;'; + put 'put ''ZT1UfUFlPUllLm5lZygpLGtlPVRlO3ZhciBTPWRlLnNxcigpLmFkZCh2ZS5zcXIoKSk7cmV0dXJuIEFlLnNxcigpLmFkZChrZS5zcXIoKSkuY21wKFMpPj0wJiYoQWU9b2Usa2U9Y2UpLGRlLm5lZ2F0aXZlJiYoZGU9ZGUubmVnKCksdmU9dmUubmVnKCkpLEFlLm5lZ2F0aXZlJiYoQWU9QWUu''@;'; + put 'put ''bmVnKCksa2U9a2UubmVnKCkpLFt7YTpkZSxiOnZlfSx7YTpBZSxiOmtlfV19LGVlLnByb3RvdHlwZS5fZW5kb1NwbGl0PWZ1bmN0aW9uKHNlKXt2YXIgb2U9dGhpcy5lbmRvLmJhc2lzLGNlPW9lWzBdLGRlPW9lWzFdLHZlPWRlLmIubXVsKHNlKS5kaXZSb3VuZCh0aGlzLm4pLEFlPWNlLmIu''@;'; + put 'put ''bmVnKCkubXVsKHNlKS5kaXZSb3VuZCh0aGlzLm4pLGtlPXZlLm11bChjZS5hKSxTZT1BZS5tdWwoZGUuYSksSWU9dmUubXVsKGNlLmIpLFRlPUFlLm11bChkZS5iKTtyZXR1cm57azE6c2Uuc3ViKGtlKS5zdWIoU2UpLGsyOkllLmFkZChUZSkubmVnKCl9fSxlZS5wcm90b3R5cGUucG9pbnRG''@;'; + put 'put ''cm9tWD1mdW5jdGlvbihzZSxvZSl7KHNlPW5ldyBhZShzZSwxNikpLnJlZHx8KHNlPXNlLnRvUmVkKHRoaXMucmVkKSk7dmFyIGNlPXNlLnJlZFNxcigpLnJlZE11bChzZSkucmVkSUFkZChzZS5yZWRNdWwodGhpcy5hKSkucmVkSUFkZCh0aGlzLmIpLGRlPWNlLnJlZFNxcnQoKTtpZigwIT09''@;'; + put 'put ''ZGUucmVkU3FyKCkucmVkU3ViKGNlKS5jbXAodGhpcy56ZXJvKSl0aHJvdyBuZXcgRXJyb3IoImludmFsaWQgcG9pbnQiKTt2YXIgdmU9ZGUuZnJvbVJlZCgpLmlzT2RkKCk7cmV0dXJuKG9lJiYhdmV8fCFvZSYmdmUpJiYoZGU9ZGUucmVkTmVnKCkpLHRoaXMucG9pbnQoc2UsZGUpfSxlZS5w''@;'; + put 'put ''cm90b3R5cGUudmFsaWRhdGU9ZnVuY3Rpb24oc2Upe2lmKHNlLmluZilyZXR1cm4hMDt2YXIgb2U9c2UueCxjZT1zZS55LGRlPXRoaXMuYS5yZWRNdWwob2UpLHZlPW9lLnJlZFNxcigpLnJlZE11bChvZSkucmVkSUFkZChkZSkucmVkSUFkZCh0aGlzLmIpO3JldHVybiAwPT09Y2UucmVkU3Fy''@;'; + put 'put ''KCkucmVkSVN1Yih2ZSkuY21wbigwKX0sZWUucHJvdG90eXBlLl9lbmRvV25hZk11bEFkZD1mdW5jdGlvbihzZSxvZSxjZSl7Zm9yKHZhciBkZT10aGlzLl9lbmRvV25hZlQxLHZlPXRoaXMuX2VuZG9XbmFmVDIsQWU9MDtBZTxzZS5sZW5ndGg7QWUrKyl7dmFyIGtlPXRoaXMuX2VuZG9TcGxp''@;'; + put 'put ''dChvZVtBZV0pLFNlPXNlW0FlXSxJZT1TZS5fZ2V0QmV0YSgpO2tlLmsxLm5lZ2F0aXZlJiYoa2UuazEuaW5lZygpLFNlPVNlLm5lZyghMCkpLGtlLmsyLm5lZ2F0aXZlJiYoa2UuazIuaW5lZygpLEllPUllLm5lZyghMCkpLGRlWzIqQWVdPVNlLGRlWzIqQWUrMV09SWUsdmVbMipBZV09a2Uu''@;'; + put 'put ''azEsdmVbMipBZSsxXT1rZS5rMn1mb3IodmFyIFRlPXRoaXMuX3duYWZNdWxBZGQoMSxkZSx2ZSwyKkFlLGNlKSxFZT0wO0VlPDIqQWU7RWUrKylkZVtFZV09bnVsbCx2ZVtFZV09bnVsbDtyZXR1cm4gVGV9LFkocSxXLkJhc2VQb2ludCksZWUucHJvdG90eXBlLnBvaW50PWZ1bmN0aW9uKHNl''@;'; + put 'put ''LG9lLGNlKXtyZXR1cm4gbmV3IHEodGhpcyxzZSxvZSxjZSl9LGVlLnByb3RvdHlwZS5wb2ludEZyb21KU09OPWZ1bmN0aW9uKHNlLG9lKXtyZXR1cm4gcS5mcm9tSlNPTih0aGlzLHNlLG9lKX0scS5wcm90b3R5cGUuX2dldEJldGE9ZnVuY3Rpb24oKXtpZih0aGlzLmN1cnZlLmVuZG8pe3Zh''@;'; + put 'put ''ciBzZT10aGlzLnByZWNvbXB1dGVkO2lmKHNlJiZzZS5iZXRhKXJldHVybiBzZS5iZXRhO3ZhciBvZT10aGlzLmN1cnZlLnBvaW50KHRoaXMueC5yZWRNdWwodGhpcy5jdXJ2ZS5lbmRvLmJldGEpLHRoaXMueSk7aWYoc2Upe3ZhciBjZT10aGlzLmN1cnZlLGRlPWZ1bmN0aW9uKHZlKXtyZXR1''@;'; + put 'put ''cm4gY2UucG9pbnQodmUueC5yZWRNdWwoY2UuZW5kby5iZXRhKSx2ZS55KX07c2UuYmV0YT1vZSxvZS5wcmVjb21wdXRlZD17YmV0YTpudWxsLG5hZjpzZS5uYWYmJnt3bmQ6c2UubmFmLnduZCxwb2ludHM6c2UubmFmLnBvaW50cy5tYXAoZGUpfSxkb3VibGVzOnNlLmRvdWJsZXMmJntzdGVw''@;'; + put 'put ''OnNlLmRvdWJsZXMuc3RlcCxwb2ludHM6c2UuZG91Ymxlcy5wb2ludHMubWFwKGRlKX19fXJldHVybiBvZX19LHEucHJvdG90eXBlLnRvSlNPTj1mdW5jdGlvbigpe3JldHVybiB0aGlzLnByZWNvbXB1dGVkP1t0aGlzLngsdGhpcy55LHRoaXMucHJlY29tcHV0ZWQmJntkb3VibGVzOnRoaXMu''@;'; + put 'put ''cHJlY29tcHV0ZWQuZG91YmxlcyYme3N0ZXA6dGhpcy5wcmVjb21wdXRlZC5kb3VibGVzLnN0ZXAscG9pbnRzOnRoaXMucHJlY29tcHV0ZWQuZG91Ymxlcy5wb2ludHMuc2xpY2UoMSl9LG5hZjp0aGlzLnByZWNvbXB1dGVkLm5hZiYme3duZDp0aGlzLnByZWNvbXB1dGVkLm5hZi53bmQscG9p''@;'; + put 'put ''bnRzOnRoaXMucHJlY29tcHV0ZWQubmFmLnBvaW50cy5zbGljZSgxKX19XTpbdGhpcy54LHRoaXMueV19LHEuZnJvbUpTT049ZnVuY3Rpb24oc2Usb2UsY2UpeyJzdHJpbmciPT10eXBlb2Ygb2UmJihvZT1KU09OLnBhcnNlKG9lKSk7dmFyIGRlPXNlLnBvaW50KG9lWzBdLG9lWzFdLGNlKTtp''@;'; + put 'put ''Zighb2VbMl0pcmV0dXJuIGRlO2Z1bmN0aW9uIHZlKGtlKXtyZXR1cm4gc2UucG9pbnQoa2VbMF0sa2VbMV0sY2UpfXZhciBBZT1vZVsyXTtyZXR1cm4gZGUucHJlY29tcHV0ZWQ9e2JldGE6bnVsbCxkb3VibGVzOkFlLmRvdWJsZXMmJntzdGVwOkFlLmRvdWJsZXMuc3RlcCxwb2ludHM6W2Rl''@;'; + put 'put ''XS5jb25jYXQoQWUuZG91Ymxlcy5wb2ludHMubWFwKHZlKSl9LG5hZjpBZS5uYWYmJnt3bmQ6QWUubmFmLnduZCxwb2ludHM6W2RlXS5jb25jYXQoQWUubmFmLnBvaW50cy5tYXAodmUpKX19LGRlfSxxLnByb3RvdHlwZS5pbnNwZWN0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXNJbmZpbml0''@;'; + put 'put ''eSgpPyI8RUMgUG9pbnQgSW5maW5pdHk+IjoiPEVDIFBvaW50IHg6ICIrdGhpcy54LmZyb21SZWQoKS50b1N0cmluZygxNiwyKSsiIHk6ICIrdGhpcy55LmZyb21SZWQoKS50b1N0cmluZygxNiwyKSsiPiJ9LHEucHJvdG90eXBlLmlzSW5maW5pdHk9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5p''@;'; + put 'put ''bmZ9LHEucHJvdG90eXBlLmFkZD1mdW5jdGlvbihzZSl7aWYodGhpcy5pbmYpcmV0dXJuIHNlO2lmKHNlLmluZilyZXR1cm4gdGhpcztpZih0aGlzLmVxKHNlKSlyZXR1cm4gdGhpcy5kYmwoKTtpZih0aGlzLm5lZygpLmVxKHNlKSlyZXR1cm4gdGhpcy5jdXJ2ZS5wb2ludChudWxsLG51bGwp''@;'; + put 'put ''O2lmKDA9PT10aGlzLnguY21wKHNlLngpKXJldHVybiB0aGlzLmN1cnZlLnBvaW50KG51bGwsbnVsbCk7dmFyIG9lPXRoaXMueS5yZWRTdWIoc2UueSk7MCE9PW9lLmNtcG4oMCkmJihvZT1vZS5yZWRNdWwodGhpcy54LnJlZFN1YihzZS54KS5yZWRJbnZtKCkpKTt2YXIgY2U9b2UucmVkU3Fy''@;'; + put 'put ''KCkucmVkSVN1Yih0aGlzLngpLnJlZElTdWIoc2UueCksZGU9b2UucmVkTXVsKHRoaXMueC5yZWRTdWIoY2UpKS5yZWRJU3ViKHRoaXMueSk7cmV0dXJuIHRoaXMuY3VydmUucG9pbnQoY2UsZGUpfSxxLnByb3RvdHlwZS5kYmw9ZnVuY3Rpb24oKXtpZih0aGlzLmluZilyZXR1cm4gdGhpczt2''@;'; + put 'put ''YXIgc2U9dGhpcy55LnJlZEFkZCh0aGlzLnkpO2lmKDA9PT1zZS5jbXBuKDApKXJldHVybiB0aGlzLmN1cnZlLnBvaW50KG51bGwsbnVsbCk7dmFyIG9lPXRoaXMuY3VydmUuYSxjZT10aGlzLngucmVkU3FyKCksZGU9c2UucmVkSW52bSgpLHZlPWNlLnJlZEFkZChjZSkucmVkSUFkZChjZSku''@;'; + put 'put ''cmVkSUFkZChvZSkucmVkTXVsKGRlKSxBZT12ZS5yZWRTcXIoKS5yZWRJU3ViKHRoaXMueC5yZWRBZGQodGhpcy54KSksa2U9dmUucmVkTXVsKHRoaXMueC5yZWRTdWIoQWUpKS5yZWRJU3ViKHRoaXMueSk7cmV0dXJuIHRoaXMuY3VydmUucG9pbnQoQWUsa2UpfSxxLnByb3RvdHlwZS5nZXRY''@;'; + put 'put ''PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueC5mcm9tUmVkKCl9LHEucHJvdG90eXBlLmdldFk9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy55LmZyb21SZWQoKX0scS5wcm90b3R5cGUubXVsPWZ1bmN0aW9uKHNlKXtyZXR1cm4gc2U9bmV3IGFlKHNlLDE2KSx0aGlzLmlzSW5maW5pdHkoKT90aGlz''@;'; + put 'put ''OnRoaXMuX2hhc0RvdWJsZXMoc2UpP3RoaXMuY3VydmUuX2ZpeGVkTmFmTXVsKHRoaXMsc2UpOnRoaXMuY3VydmUuZW5kbz90aGlzLmN1cnZlLl9lbmRvV25hZk11bEFkZChbdGhpc10sW3NlXSk6dGhpcy5jdXJ2ZS5fd25hZk11bCh0aGlzLHNlKX0scS5wcm90b3R5cGUubXVsQWRkPWZ1bmN0''@;'; + put 'put ''aW9uKHNlLG9lLGNlKXt2YXIgZGU9W3RoaXMsb2VdLHZlPVtzZSxjZV07cmV0dXJuIHRoaXMuY3VydmUuZW5kbz90aGlzLmN1cnZlLl9lbmRvV25hZk11bEFkZChkZSx2ZSk6dGhpcy5jdXJ2ZS5fd25hZk11bEFkZCgxLGRlLHZlLDIpfSxxLnByb3RvdHlwZS5qbXVsQWRkPWZ1bmN0aW9uKHNl''@;'; + put 'put ''LG9lLGNlKXt2YXIgZGU9W3RoaXMsb2VdLHZlPVtzZSxjZV07cmV0dXJuIHRoaXMuY3VydmUuZW5kbz90aGlzLmN1cnZlLl9lbmRvV25hZk11bEFkZChkZSx2ZSwhMCk6dGhpcy5jdXJ2ZS5fd25hZk11bEFkZCgxLGRlLHZlLDIsITApfSxxLnByb3RvdHlwZS5lcT1mdW5jdGlvbihzZSl7cmV0''@;'; + put 'put ''dXJuIHRoaXM9PT1zZXx8dGhpcy5pbmY9PT1zZS5pbmYmJih0aGlzLmluZnx8MD09PXRoaXMueC5jbXAoc2UueCkmJjA9PT10aGlzLnkuY21wKHNlLnkpKX0scS5wcm90b3R5cGUubmVnPWZ1bmN0aW9uKHNlKXtpZih0aGlzLmluZilyZXR1cm4gdGhpczt2YXIgb2U9dGhpcy5jdXJ2ZS5wb2lu''@;'; + put 'put ''dCh0aGlzLngsdGhpcy55LnJlZE5lZygpKTtpZihzZSYmdGhpcy5wcmVjb21wdXRlZCl7dmFyIGNlPXRoaXMucHJlY29tcHV0ZWQsZGU9ZnVuY3Rpb24odmUpe3JldHVybiB2ZS5uZWcoKX07b2UucHJlY29tcHV0ZWQ9e25hZjpjZS5uYWYmJnt3bmQ6Y2UubmFmLnduZCxwb2ludHM6Y2UubmFm''@;'; + put 'put ''LnBvaW50cy5tYXAoZGUpfSxkb3VibGVzOmNlLmRvdWJsZXMmJntzdGVwOmNlLmRvdWJsZXMuc3RlcCxwb2ludHM6Y2UuZG91Ymxlcy5wb2ludHMubWFwKGRlKX19fXJldHVybiBvZX0scS5wcm90b3R5cGUudG9KPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW5mP3RoaXMuY3VydmUuanBvaW50''@;'; + put 'put ''KG51bGwsbnVsbCxudWxsKTp0aGlzLmN1cnZlLmpwb2ludCh0aGlzLngsdGhpcy55LHRoaXMuY3VydmUub25lKX0sWShKLFcuQmFzZVBvaW50KSxlZS5wcm90b3R5cGUuanBvaW50PWZ1bmN0aW9uKHNlLG9lLGNlKXtyZXR1cm4gbmV3IEoodGhpcyxzZSxvZSxjZSl9LEoucHJvdG90eXBlLnRv''@;'; + put 'put ''UD1mdW5jdGlvbigpe2lmKHRoaXMuaXNJbmZpbml0eSgpKXJldHVybiB0aGlzLmN1cnZlLnBvaW50KG51bGwsbnVsbCk7dmFyIHNlPXRoaXMuei5yZWRJbnZtKCksb2U9c2UucmVkU3FyKCksY2U9dGhpcy54LnJlZE11bChvZSksZGU9dGhpcy55LnJlZE11bChvZSkucmVkTXVsKHNlKTtyZXR1''@;'; + put 'put ''cm4gdGhpcy5jdXJ2ZS5wb2ludChjZSxkZSl9LEoucHJvdG90eXBlLm5lZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmN1cnZlLmpwb2ludCh0aGlzLngsdGhpcy55LnJlZE5lZygpLHRoaXMueil9LEoucHJvdG90eXBlLmFkZD1mdW5jdGlvbihzZSl7aWYodGhpcy5pc0luZmluaXR5KCkpcmV0''@;'; + put 'put ''dXJuIHNlO2lmKHNlLmlzSW5maW5pdHkoKSlyZXR1cm4gdGhpczt2YXIgb2U9c2Uuei5yZWRTcXIoKSxjZT10aGlzLnoucmVkU3FyKCksZGU9dGhpcy54LnJlZE11bChvZSksdmU9c2UueC5yZWRNdWwoY2UpLEFlPXRoaXMueS5yZWRNdWwob2UucmVkTXVsKHNlLnopKSxrZT1zZS55LnJlZE11''@;'; + put 'put ''bChjZS5yZWRNdWwodGhpcy56KSksU2U9ZGUucmVkU3ViKHZlKSxJZT1BZS5yZWRTdWIoa2UpO2lmKDA9PT1TZS5jbXBuKDApKXJldHVybiAwIT09SWUuY21wbigwKT90aGlzLmN1cnZlLmpwb2ludChudWxsLG51bGwsbnVsbCk6dGhpcy5kYmwoKTt2YXIgVGU9U2UucmVkU3FyKCksRWU9VGUu''@;'; + put 'put ''cmVkTXVsKFNlKSxoZT1kZS5yZWRNdWwoVGUpLE89SWUucmVkU3FyKCkucmVkSUFkZChFZSkucmVkSVN1YihoZSkucmVkSVN1YihoZSksej1JZS5yZWRNdWwoaGUucmVkSVN1YihPKSkucmVkSVN1YihBZS5yZWRNdWwoRWUpKSxuZT10aGlzLnoucmVkTXVsKHNlLnopLnJlZE11bChTZSk7cmV0''@;'; + put 'put ''dXJuIHRoaXMuY3VydmUuanBvaW50KE8seixuZSl9LEoucHJvdG90eXBlLm1peGVkQWRkPWZ1bmN0aW9uKHNlKXtpZih0aGlzLmlzSW5maW5pdHkoKSlyZXR1cm4gc2UudG9KKCk7aWYoc2UuaXNJbmZpbml0eSgpKXJldHVybiB0aGlzO3ZhciBvZT10aGlzLnoucmVkU3FyKCksY2U9dGhpcy54''@;'; + put 'put ''LGRlPXNlLngucmVkTXVsKG9lKSx2ZT10aGlzLnksQWU9c2UueS5yZWRNdWwob2UpLnJlZE11bCh0aGlzLnopLGtlPWNlLnJlZFN1YihkZSksU2U9dmUucmVkU3ViKEFlKTtpZigwPT09a2UuY21wbigwKSlyZXR1cm4gMCE9PVNlLmNtcG4oMCk/dGhpcy5jdXJ2ZS5qcG9pbnQobnVsbCxudWxs''@;'; + put 'put ''LG51bGwpOnRoaXMuZGJsKCk7dmFyIEllPWtlLnJlZFNxcigpLFRlPUllLnJlZE11bChrZSksRWU9Y2UucmVkTXVsKEllKSxoZT1TZS5yZWRTcXIoKS5yZWRJQWRkKFRlKS5yZWRJU3ViKEVlKS5yZWRJU3ViKEVlKSxPPVNlLnJlZE11bChFZS5yZWRJU3ViKGhlKSkucmVkSVN1Yih2ZS5yZWRN''@;'; + put 'put ''dWwoVGUpKSx6PXRoaXMuei5yZWRNdWwoa2UpO3JldHVybiB0aGlzLmN1cnZlLmpwb2ludChoZSxPLHopfSxKLnByb3RvdHlwZS5kYmxwPWZ1bmN0aW9uKHNlKXtpZigwPT09c2UpcmV0dXJuIHRoaXM7aWYodGhpcy5pc0luZmluaXR5KCkpcmV0dXJuIHRoaXM7aWYoIXNlKXJldHVybiB0aGlz''@;'; + put 'put ''LmRibCgpO3ZhciBvZTtpZih0aGlzLmN1cnZlLnplcm9BfHx0aGlzLmN1cnZlLnRocmVlQSl7dmFyIGNlPXRoaXM7Zm9yKG9lPTA7b2U8c2U7b2UrKyljZT1jZS5kYmwoKTtyZXR1cm4gY2V9dmFyIGRlPXRoaXMuY3VydmUuYSx2ZT10aGlzLmN1cnZlLnRpbnYsQWU9dGhpcy54LGtlPXRoaXMu''@;'; + put 'put ''eSxTZT10aGlzLnosSWU9U2UucmVkU3FyKCkucmVkU3FyKCksVGU9a2UucmVkQWRkKGtlKTtmb3Iob2U9MDtvZTxzZTtvZSsrKXt2YXIgRWU9QWUucmVkU3FyKCksaGU9VGUucmVkU3FyKCksTz1oZS5yZWRTcXIoKSx6PUVlLnJlZEFkZChFZSkucmVkSUFkZChFZSkucmVkSUFkZChkZS5yZWRN''@;'; + put 'put ''dWwoSWUpKSxuZT1BZS5yZWRNdWwoaGUpLHRlPXoucmVkU3FyKCkucmVkSVN1YihuZS5yZWRBZGQobmUpKSx4PW5lLnJlZElTdWIodGUpLFA9ei5yZWRNdWwoeCk7UD1QLnJlZElBZGQoUCkucmVkSVN1YihPKTt2YXIgVj1UZS5yZWRNdWwoU2UpO29lKzE8c2UmJihJZT1JZS5yZWRNdWwoTykp''@;'; + put 'put ''LEFlPXRlLFNlPVYsVGU9UH1yZXR1cm4gdGhpcy5jdXJ2ZS5qcG9pbnQoQWUsVGUucmVkTXVsKHZlKSxTZSl9LEoucHJvdG90eXBlLmRibD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmlzSW5maW5pdHkoKT90aGlzOnRoaXMuY3VydmUuemVyb0E/dGhpcy5femVyb0RibCgpOnRoaXMuY3VydmUu''@;'; + put 'put ''dGhyZWVBP3RoaXMuX3RocmVlRGJsKCk6dGhpcy5fZGJsKCl9LEoucHJvdG90eXBlLl96ZXJvRGJsPWZ1bmN0aW9uKCl7dmFyIHNlLG9lLGNlO2lmKHRoaXMuek9uZSl7dmFyIGRlPXRoaXMueC5yZWRTcXIoKSx2ZT10aGlzLnkucmVkU3FyKCksQWU9dmUucmVkU3FyKCksa2U9dGhpcy54LnJl''@;'; + put 'put ''ZEFkZCh2ZSkucmVkU3FyKCkucmVkSVN1YihkZSkucmVkSVN1YihBZSk7a2U9a2UucmVkSUFkZChrZSk7dmFyIFNlPWRlLnJlZEFkZChkZSkucmVkSUFkZChkZSksSWU9U2UucmVkU3FyKCkucmVkSVN1YihrZSkucmVkSVN1YihrZSksVGU9QWUucmVkSUFkZChBZSk7VGU9KFRlPVRlLnJlZElB''@;'; + put 'put ''ZGQoVGUpKS5yZWRJQWRkKFRlKSxzZT1JZSxvZT1TZS5yZWRNdWwoa2UucmVkSVN1YihJZSkpLnJlZElTdWIoVGUpLGNlPXRoaXMueS5yZWRBZGQodGhpcy55KX1lbHNle3ZhciBFZT10aGlzLngucmVkU3FyKCksaGU9dGhpcy55LnJlZFNxcigpLE89aGUucmVkU3FyKCksej10aGlzLngucmVk''@;'; + put 'put ''QWRkKGhlKS5yZWRTcXIoKS5yZWRJU3ViKEVlKS5yZWRJU3ViKE8pO3o9ei5yZWRJQWRkKHopO3ZhciBuZT1FZS5yZWRBZGQoRWUpLnJlZElBZGQoRWUpLHRlPW5lLnJlZFNxcigpLHg9Ty5yZWRJQWRkKE8pO3g9KHg9eC5yZWRJQWRkKHgpKS5yZWRJQWRkKHgpLHNlPXRlLnJlZElTdWIoeiku''@;'; + put 'put ''cmVkSVN1Yih6KSxvZT1uZS5yZWRNdWwoei5yZWRJU3ViKHNlKSkucmVkSVN1Yih4KSxjZT0oY2U9dGhpcy55LnJlZE11bCh0aGlzLnopKS5yZWRJQWRkKGNlKX1yZXR1cm4gdGhpcy5jdXJ2ZS5qcG9pbnQoc2Usb2UsY2UpfSxKLnByb3RvdHlwZS5fdGhyZWVEYmw9ZnVuY3Rpb24oKXt2YXIg''@;'; + put 'put ''c2Usb2UsY2U7aWYodGhpcy56T25lKXt2YXIgZGU9dGhpcy54LnJlZFNxcigpLHZlPXRoaXMueS5yZWRTcXIoKSxBZT12ZS5yZWRTcXIoKSxrZT10aGlzLngucmVkQWRkKHZlKS5yZWRTcXIoKS5yZWRJU3ViKGRlKS5yZWRJU3ViKEFlKTtrZT1rZS5yZWRJQWRkKGtlKTt2YXIgU2U9ZGUucmVk''@;'; + put 'put ''QWRkKGRlKS5yZWRJQWRkKGRlKS5yZWRJQWRkKHRoaXMuY3VydmUuYSksSWU9U2UucmVkU3FyKCkucmVkSVN1YihrZSkucmVkSVN1YihrZSk7c2U9SWU7dmFyIFRlPUFlLnJlZElBZGQoQWUpO1RlPShUZT1UZS5yZWRJQWRkKFRlKSkucmVkSUFkZChUZSksb2U9U2UucmVkTXVsKGtlLnJlZElT''@;'; + put 'put ''dWIoSWUpKS5yZWRJU3ViKFRlKSxjZT10aGlzLnkucmVkQWRkKHRoaXMueSl9ZWxzZXt2YXIgRWU9dGhpcy56LnJlZFNxcigpLGhlPXRoaXMueS5yZWRTcXIoKSxPPXRoaXMueC5yZWRNdWwoaGUpLHo9dGhpcy54LnJlZFN1YihFZSkucmVkTXVsKHRoaXMueC5yZWRBZGQoRWUpKTt6PXoucmVk''@;'; + put 'put ''QWRkKHopLnJlZElBZGQoeik7dmFyIG5lPU8ucmVkSUFkZChPKSx0ZT0obmU9bmUucmVkSUFkZChuZSkpLnJlZEFkZChuZSk7c2U9ei5yZWRTcXIoKS5yZWRJU3ViKHRlKSxjZT10aGlzLnkucmVkQWRkKHRoaXMueikucmVkU3FyKCkucmVkSVN1YihoZSkucmVkSVN1YihFZSk7dmFyIHg9aGUu''@;'; + put 'put ''cmVkU3FyKCk7eD0oeD0oeD14LnJlZElBZGQoeCkpLnJlZElBZGQoeCkpLnJlZElBZGQoeCksb2U9ei5yZWRNdWwobmUucmVkSVN1YihzZSkpLnJlZElTdWIoeCl9cmV0dXJuIHRoaXMuY3VydmUuanBvaW50KHNlLG9lLGNlKX0sSi5wcm90b3R5cGUuX2RibD1mdW5jdGlvbigpe3ZhciBzZT10''@;'; + put 'put ''aGlzLmN1cnZlLmEsb2U9dGhpcy54LGNlPXRoaXMueSxkZT10aGlzLnosdmU9ZGUucmVkU3FyKCkucmVkU3FyKCksQWU9b2UucmVkU3FyKCksa2U9Y2UucmVkU3FyKCksU2U9QWUucmVkQWRkKEFlKS5yZWRJQWRkKEFlKS5yZWRJQWRkKHNlLnJlZE11bCh2ZSkpLEllPW9lLnJlZEFkZChvZSks''@;'; + put 'put ''VGU9KEllPUllLnJlZElBZGQoSWUpKS5yZWRNdWwoa2UpLEVlPVNlLnJlZFNxcigpLnJlZElTdWIoVGUucmVkQWRkKFRlKSksaGU9VGUucmVkSVN1YihFZSksTz1rZS5yZWRTcXIoKTtPPShPPShPPU8ucmVkSUFkZChPKSkucmVkSUFkZChPKSkucmVkSUFkZChPKTt2YXIgej1TZS5yZWRNdWwo''@;'; + put 'put ''aGUpLnJlZElTdWIoTyksbmU9Y2UucmVkQWRkKGNlKS5yZWRNdWwoZGUpO3JldHVybiB0aGlzLmN1cnZlLmpwb2ludChFZSx6LG5lKX0sSi5wcm90b3R5cGUudHJwbD1mdW5jdGlvbigpe2lmKCF0aGlzLmN1cnZlLnplcm9BKXJldHVybiB0aGlzLmRibCgpLmFkZCh0aGlzKTt2YXIgc2U9dGhp''@;'; + put 'put ''cy54LnJlZFNxcigpLG9lPXRoaXMueS5yZWRTcXIoKSxjZT10aGlzLnoucmVkU3FyKCksZGU9b2UucmVkU3FyKCksdmU9c2UucmVkQWRkKHNlKS5yZWRJQWRkKHNlKSxBZT12ZS5yZWRTcXIoKSxrZT10aGlzLngucmVkQWRkKG9lKS5yZWRTcXIoKS5yZWRJU3ViKHNlKS5yZWRJU3ViKGRlKSxT''@;'; + put 'put ''ZT0oa2U9KGtlPShrZT1rZS5yZWRJQWRkKGtlKSkucmVkQWRkKGtlKS5yZWRJQWRkKGtlKSkucmVkSVN1YihBZSkpLnJlZFNxcigpLEllPWRlLnJlZElBZGQoZGUpO0llPShJZT0oSWU9SWUucmVkSUFkZChJZSkpLnJlZElBZGQoSWUpKS5yZWRJQWRkKEllKTt2YXIgVGU9dmUucmVkSUFkZChr''@;'; + put 'put ''ZSkucmVkU3FyKCkucmVkSVN1YihBZSkucmVkSVN1YihTZSkucmVkSVN1YihJZSksRWU9b2UucmVkTXVsKFRlKTtFZT0oRWU9RWUucmVkSUFkZChFZSkpLnJlZElBZGQoRWUpO3ZhciBoZT10aGlzLngucmVkTXVsKFNlKS5yZWRJU3ViKEVlKTtoZT0oaGU9aGUucmVkSUFkZChoZSkpLnJlZElB''@;'; + put 'put ''ZGQoaGUpO3ZhciBPPXRoaXMueS5yZWRNdWwoVGUucmVkTXVsKEllLnJlZElTdWIoVGUpKS5yZWRJU3ViKGtlLnJlZE11bChTZSkpKTtPPShPPShPPU8ucmVkSUFkZChPKSkucmVkSUFkZChPKSkucmVkSUFkZChPKTt2YXIgej10aGlzLnoucmVkQWRkKGtlKS5yZWRTcXIoKS5yZWRJU3ViKGNl''@;'; + put 'put ''KS5yZWRJU3ViKFNlKTtyZXR1cm4gdGhpcy5jdXJ2ZS5qcG9pbnQoaGUsTyx6KX0sSi5wcm90b3R5cGUubXVsPWZ1bmN0aW9uKHNlLG9lKXtyZXR1cm4gc2U9bmV3IGFlKHNlLG9lKSx0aGlzLmN1cnZlLl93bmFmTXVsKHRoaXMsc2UpfSxKLnByb3RvdHlwZS5lcT1mdW5jdGlvbihzZSl7aWYo''@;'; + put 'put ''ImFmZmluZSI9PT1zZS50eXBlKXJldHVybiB0aGlzLmVxKHNlLnRvSigpKTtpZih0aGlzPT09c2UpcmV0dXJuITA7dmFyIG9lPXRoaXMuei5yZWRTcXIoKSxjZT1zZS56LnJlZFNxcigpO2lmKDAhPT10aGlzLngucmVkTXVsKGNlKS5yZWRJU3ViKHNlLngucmVkTXVsKG9lKSkuY21wbigwKSly''@;'; + put 'put ''ZXR1cm4hMTt2YXIgZGU9b2UucmVkTXVsKHRoaXMueiksdmU9Y2UucmVkTXVsKHNlLnopO3JldHVybiAwPT09dGhpcy55LnJlZE11bCh2ZSkucmVkSVN1YihzZS55LnJlZE11bChkZSkpLmNtcG4oMCl9LEoucHJvdG90eXBlLmVxWFRvUD1mdW5jdGlvbihzZSl7dmFyIG9lPXRoaXMuei5yZWRT''@;'; + put 'put ''cXIoKSxjZT1zZS50b1JlZCh0aGlzLmN1cnZlLnJlZCkucmVkTXVsKG9lKTtpZigwPT09dGhpcy54LmNtcChjZSkpcmV0dXJuITA7Zm9yKHZhciBkZT1zZS5jbG9uZSgpLHZlPXRoaXMuY3VydmUucmVkTi5yZWRNdWwob2UpOzspe2lmKGRlLmlhZGQodGhpcy5jdXJ2ZS5uKSxkZS5jbXAodGhp''@;'; + put 'put ''cy5jdXJ2ZS5wKT49MClyZXR1cm4hMTtpZihjZS5yZWRJQWRkKHZlKSwwPT09dGhpcy54LmNtcChjZSkpcmV0dXJuITB9fSxKLnByb3RvdHlwZS5pbnNwZWN0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXNJbmZpbml0eSgpPyI8RUMgSlBvaW50IEluZmluaXR5PiI6IjxFQyBKUG9pbnQgeDog''@;'; + put 'put ''Iit0aGlzLngudG9TdHJpbmcoMTYsMikrIiB5OiAiK3RoaXMueS50b1N0cmluZygxNiwyKSsiIHo6ICIrdGhpcy56LnRvU3RyaW5nKDE2LDIpKyI+In0sSi5wcm90b3R5cGUuaXNJbmZpbml0eT1mdW5jdGlvbigpe3JldHVybiAwPT09dGhpcy56LmNtcG4oMCl9fSw1NDI3OihVLFEsWik9Pnsi''@;'; + put 'put ''dXNlIHN0cmljdCI7dmFyIGllLGFlPVEsWT1aKDM3MTUpLFc9Wig4MjU0KSxOPVooOTUzKS5hc3NlcnQ7ZnVuY3Rpb24gZWUoSil7dGhpcy5jdXJ2ZT0ic2hvcnQiPT09Si50eXBlP25ldyBXLnNob3J0KEopOiJlZHdhcmRzIj09PUoudHlwZT9uZXcgVy5lZHdhcmRzKEopOm5ldyBXLm1vbnQo''@;'; + put 'put ''SiksdGhpcy5nPXRoaXMuY3VydmUuZyx0aGlzLm49dGhpcy5jdXJ2ZS5uLHRoaXMuaGFzaD1KLmhhc2gsTih0aGlzLmcudmFsaWRhdGUoKSwiSW52YWxpZCBjdXJ2ZSIpLE4odGhpcy5nLm11bCh0aGlzLm4pLmlzSW5maW5pdHkoKSwiSW52YWxpZCBjdXJ2ZSwgRypOICE9IE8iKX1mdW5jdGlv''@;'; + put 'put ''biBxKEosc2Upe09iamVjdC5kZWZpbmVQcm9wZXJ0eShhZSxKLHtjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXt2YXIgb2U9bmV3IGVlKHNlKTtyZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KGFlLEose2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEw''@;'; + put 'put ''LHZhbHVlOm9lfSksb2V9fSl9YWUuUHJlc2V0Q3VydmU9ZWUscSgicDE5MiIse3R5cGU6InNob3J0IixwcmltZToicDE5MiIscDoiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUgZmZmZmZmZmYgZmZmZmZmZmYiLGE6ImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZm''@;'; + put 'put ''ZmZlIGZmZmZmZmZmIGZmZmZmZmZjIixiOiI2NDIxMDUxOSBlNTljODBlNyAwZmE3ZTlhYiA3MjI0MzA0OSBmZWI4ZGVlYyBjMTQ2YjliMSIsbjoiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgOTlkZWY4MzYgMTQ2YmM5YjEgYjRkMjI4MzEiLGhhc2g6WS5zaGEyNTYsZ1JlZDohMSxnOlsi''@;'; + put 'put ''MTg4ZGE4MGUgYjAzMDkwZjYgN2NiZjIwZWIgNDNhMTg4MDAgZjRmZjBhZmQgODJmZjEwMTIiLCIwNzE5MmI5NSBmZmM4ZGE3OCA2MzEwMTFlZCA2YjI0Y2RkNSA3M2Y5NzdhMSAxZTc5NDgxMSJdfSkscSgicDIyNCIse3R5cGU6InNob3J0IixwcmltZToicDIyNCIscDoiZmZmZmZmZmYgZmZm''@;'; + put 'put ''ZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgMDAwMDAwMDAgMDAwMDAwMDAgMDAwMDAwMDEiLGE6ImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZlIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZlIixiOiJiNDA1MGE4NSAwYzA0YjNhYiBmNTQxMzI1NiA1MDQ0YjBiNyBkN2JmZDhi''@;'; + put 'put ''YSAyNzBiMzk0MyAyMzU1ZmZiNCIsbjoiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZjE2YTIgZTBiOGYwM2UgMTNkZDI5NDUgNWM1YzJhM2QiLGhhc2g6WS5zaGEyNTYsZ1JlZDohMSxnOlsiYjcwZTBjYmQgNmJiNGJmN2YgMzIxMzkwYjkgNGEwM2MxZDMgNTZjMjExMjIgMzQzMjgw''@;'; + put 'put ''ZDYgMTE1YzFkMjEiLCJiZDM3NjM4OCBiNWY3MjNmYiA0YzIyZGZlNiBjZDQzNzVhMCA1YTA3NDc2NCA0NGQ1ODE5OSA4NTAwN2UzNCJdfSkscSgicDI1NiIse3R5cGU6InNob3J0IixwcmltZTpudWxsLHA6ImZmZmZmZmZmIDAwMDAwMDAxIDAwMDAwMDAwIDAwMDAwMDAwIDAwMDAwMDAwIGZm''@;'; + put 'put ''ZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIixhOiJmZmZmZmZmZiAwMDAwMDAwMSAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMCBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmYyIsYjoiNWFjNjM1ZDggYWEzYTkzZTcgYjNlYmJkNTUgNzY5ODg2YmMgNjUxZDA2YjAgY2M1M2IwZjYgM2JjZTNj''@;'; + put 'put ''M2UgMjdkMjYwNGIiLG46ImZmZmZmZmZmIDAwMDAwMDAwIGZmZmZmZmZmIGZmZmZmZmZmIGJjZTZmYWFkIGE3MTc5ZTg0IGYzYjljYWMyIGZjNjMyNTUxIixoYXNoOlkuc2hhMjU2LGdSZWQ6ITEsZzpbIjZiMTdkMWYyIGUxMmM0MjQ3IGY4YmNlNmU1IDYzYTQ0MGYyIDc3MDM3ZDgxIDJkZWIz''@;'; + put 'put ''M2EwIGY0YTEzOTQ1IGQ4OThjMjk2IiwiNGZlMzQyZTIgZmUxYTdmOWIgOGVlN2ViNGEgN2MwZjllMTYgMmJjZTMzNTcgNmIzMTVlY2UgY2JiNjQwNjggMzdiZjUxZjUiXX0pLHEoInAzODQiLHt0eXBlOiJzaG9ydCIscHJpbWU6bnVsbCxwOiJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBm''@;'; + put 'put ''ZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZSBmZmZmZmZmZiAwMDAwMDAwMCAwMDAwMDAwMCBmZmZmZmZmZiIsYToiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUgZmZmZmZmZmYg''@;'; + put 'put ''MDAwMDAwMDAgMDAwMDAwMDAgZmZmZmZmZmMiLGI6ImIzMzEyZmE3IGUyM2VlN2U0IDk4OGUwNTZiIGUzZjgyZDE5IDE4MWQ5YzZlIGZlODE0MTEyIDAzMTQwODhmIDUwMTM4NzVhIGM2NTYzOThkIDhhMmVkMTlkIDJhODVjOGVkIGQzZWMyYWVmIixuOiJmZmZmZmZmZiBmZmZmZmZmZiBmZmZm''@;'; + put 'put ''ZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBjNzYzNGQ4MSBmNDM3MmRkZiA1ODFhMGRiMiA0OGIwYTc3YSBlY2VjMTk2YSBjY2M1Mjk3MyIsaGFzaDpZLnNoYTM4NCxnUmVkOiExLGc6WyJhYTg3Y2EyMiBiZThiMDUzNyA4ZWIxYzcxZSBmMzIwYWQ3NCA2ZTFkM2I2MiA4YmE3OWI5''@;'; + put 'put ''OCA1OWY3NDFlMCA4MjU0MmEzOCA1NTAyZjI1ZCBiZjU1Mjk2YyAzYTU0NWUzOCA3Mjc2MGFiNyIsIjM2MTdkZTRhIDk2MjYyYzZmIDVkOWU5OGJmIDkyOTJkYzI5IGY4ZjQxZGJkIDI4OWExNDdjIGU5ZGEzMTEzIGI1ZjBiOGMwIDBhNjBiMWNlIDFkN2U4MTlkIDdhNDMxZDdjIDkwZWEwZTVm''@;'; + put 'put ''Il19KSxxKCJwNTIxIix7dHlwZToic2hvcnQiLHByaW1lOm51bGwscDoiMDAwMDAxZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZm''@;'; + put 'put ''ZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYiLGE6IjAwMDAwMWZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZm''@;'; + put 'put ''ZmZmIGZmZmZmZmZmIGZmZmZmZmZjIixiOiIwMDAwMDA1MSA5NTNlYjk2MSA4ZTFjOWExZiA5MjlhMjFhMCBiNjg1NDBlZSBhMmRhNzI1YiA5OWIzMTVmMyBiOGI0ODk5MSA4ZWYxMDllMSA1NjE5Mzk1MSBlYzdlOTM3YiAxNjUyYzBiZCAzYmIxYmYwNyAzNTczZGY4OCAzZDJjMzRmMSBlZjQ1''@;'; + put 'put ''MWZkNCA2YjUwM2YwMCIsbjoiMDAwMDAxZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmEgNTE4Njg3ODMgYmYyZjk2NmIgN2ZjYzAxNDggZjcwOWE1ZDAgM2JiNWM5YjggODk5YzQ3YWUgYmI2ZmI3MWUgOTEz''@;'; + put 'put ''ODY0MDkiLGhhc2g6WS5zaGE1MTIsZ1JlZDohMSxnOlsiMDAwMDAwYzYgODU4ZTA2YjcgMDQwNGU5Y2QgOWUzZWNiNjYgMjM5NWI0NDIgOWM2NDgxMzkgMDUzZmI1MjEgZjgyOGFmNjAgNmI0ZDNkYmEgYTE0YjVlNzcgZWZlNzU5MjggZmUxZGMxMjcgYTJmZmE4ZGUgMzM0OGIzYzEgODU2YTQy''@;'; + put 'put ''OWIgZjk3ZTdlMzEgYzJlNWJkNjYiLCIwMDAwMDExOCAzOTI5NmE3OCA5YTNiYzAwNCA1YzhhNWZiNCAyYzdkMWJkOSA5OGY1NDQ0OSA1NzliNDQ2OCAxN2FmYmQxNyAyNzNlNjYyYyA5N2VlNzI5OSA1ZWY0MjY0MCBjNTUwYjkwMSAzZmFkMDc2MSAzNTNjNzA4NiBhMjcyYzI0MCA4OGJlOTQ3''@;'; + put 'put ''NiA5ZmQxNjY1MCJdfSkscSgiY3VydmUyNTUxOSIse3R5cGU6Im1vbnQiLHByaW1lOiJwMjU1MTkiLHA6IjdmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZWQiLGE6Ijc2ZDA2IixiOiIxIixuOiIxMDAwMDAwMDAwMDAwMDAw''@;'; + put 'put ''IDAwMDAwMDAwMDAwMDAwMDAgMTRkZWY5ZGVhMmY3OWNkNiA1ODEyNjMxYTVjZjVkM2VkIixoYXNoOlkuc2hhMjU2LGdSZWQ6ITEsZzpbIjkiXX0pLHEoImVkMjU1MTkiLHt0eXBlOiJlZHdhcmRzIixwcmltZToicDI1NTE5IixwOiI3ZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZmYg''@;'; + put 'put ''ZmZmZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZmZmZmZmVkIixhOiItMSIsYzoiMSIsZDoiNTIwMzZjZWUyYjZmZmU3MyA4Y2M3NDA3OTc3NzllODk4IDAwNzAwYTRkNDE0MWQ4YWIgNzVlYjRkY2ExMzU5NzhhMyIsbjoiMTAwMDAwMDAwMDAwMDAwMCAwMDAwMDAwMDAwMDAwMDAwIDE0ZGVmOWRl''@;'; + put 'put ''YTJmNzljZDYgNTgxMjYzMWE1Y2Y1ZDNlZCIsaGFzaDpZLnNoYTI1NixnUmVkOiExLGc6WyIyMTY5MzZkM2NkNmU1M2ZlYzBhNGUyMzFmZGQ2ZGM1YzY5MmNjNzYwOTUyNWE3YjJjOTU2MmQ2MDhmMjVkNTFhIiwiNjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2''@;'; + put 'put ''NjY2NjY2NjY2NjY2NjY2NjY1OCJdfSk7dHJ5e2llPVooMTAzNyl9Y2F0Y2goSil7aWU9dm9pZCAwfXEoInNlY3AyNTZrMSIse3R5cGU6InNob3J0IixwcmltZToiazI1NiIscDoiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUg''@;'; + put 'put ''ZmZmZmZjMmYiLGE6IjAiLGI6IjciLG46ImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZlIGJhYWVkY2U2IGFmNDhhMDNiIGJmZDI1ZThjIGQwMzY0MTQxIixoOiIxIixoYXNoOlkuc2hhMjU2LGJldGE6IjdhZTk2YTJiNjU3YzA3MTA2ZTY0NDc5ZWFjMzQzNGU5OWNmMDQ5NzUx''@;'; + put 'put ''MmY1ODk5NWMxMzk2YzI4NzE5NTAxZWUiLGxhbWJkYToiNTM2M2FkNGNjMDVjMzBlMGE1MjYxYzAyODgxMjY0NWExMjJlMjJlYTIwODE2Njc4ZGYwMjk2N2MxYjIzYmQ3MiIsYmFzaXM6W3thOiIzMDg2ZDIyMWE3ZDQ2YmNkZTg2YzkwZTQ5Mjg0ZWIxNSIsYjoiLWU0NDM3ZWQ2MDEwZTg4Mjg2''@;'; + put 'put ''ZjU0N2ZhOTBhYmZlNGMzIn0se2E6IjExNGNhNTBmN2E4ZTJmM2Y2NTdjMTEwOGQ5ZDQ0Y2ZkOCIsYjoiMzA4NmQyMjFhN2Q0NmJjZGU4NmM5MGU0OTI4NGViMTUifV0sZ1JlZDohMSxnOlsiNzliZTY2N2VmOWRjYmJhYzU1YTA2Mjk1Y2U4NzBiMDcwMjliZmNkYjJkY2UyOGQ5NTlmMjgxNWIx''@;'; + put 'put ''NmY4MTc5OCIsIjQ4M2FkYTc3MjZhM2M0NjU1ZGE0ZmJmYzBlMTEwOGE4ZmQxN2I0NDhhNjg1NTQxOTljNDdkMDhmZmIxMGQ0YjgiLGllXX0pfSw3OTU0OihVLFEsWik9PnsidXNlIHN0cmljdCI7dmFyIGllPVooMzc4NSksYWU9WigyMTU2KSxZPVooOTUzKSxXPVooNTQyNyksTj1aKDk5MzEp''@;'; + put 'put ''LGVlPVkuYXNzZXJ0LHE9WigxMjUxKSxKPVooNjExKTtmdW5jdGlvbiBzZShvZSl7aWYoISh0aGlzIGluc3RhbmNlb2Ygc2UpKXJldHVybiBuZXcgc2Uob2UpOyJzdHJpbmciPT10eXBlb2Ygb2UmJihlZShPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoVyxvZSksIlVua25v''@;'; + put 'put ''d24gY3VydmUgIitvZSksb2U9V1tvZV0pLG9lIGluc3RhbmNlb2YgVy5QcmVzZXRDdXJ2ZSYmKG9lPXtjdXJ2ZTpvZX0pLHRoaXMuY3VydmU9b2UuY3VydmUuY3VydmUsdGhpcy5uPXRoaXMuY3VydmUubix0aGlzLm5oPXRoaXMubi51c2hybigxKSx0aGlzLmc9dGhpcy5jdXJ2ZS5nLHRoaXMu''@;'; + put 'put ''Zz1vZS5jdXJ2ZS5nLHRoaXMuZy5wcmVjb21wdXRlKG9lLmN1cnZlLm4uYml0TGVuZ3RoKCkrMSksdGhpcy5oYXNoPW9lLmhhc2h8fG9lLmN1cnZlLmhhc2h9VS5leHBvcnRzPXNlLHNlLnByb3RvdHlwZS5rZXlQYWlyPWZ1bmN0aW9uKG9lKXtyZXR1cm4gbmV3IHEodGhpcyxvZSl9LHNlLnBy''@;'; + put 'put ''b3RvdHlwZS5rZXlGcm9tUHJpdmF0ZT1mdW5jdGlvbihvZSxjZSl7cmV0dXJuIHEuZnJvbVByaXZhdGUodGhpcyxvZSxjZSl9LHNlLnByb3RvdHlwZS5rZXlGcm9tUHVibGljPWZ1bmN0aW9uKG9lLGNlKXtyZXR1cm4gcS5mcm9tUHVibGljKHRoaXMsb2UsY2UpfSxzZS5wcm90b3R5cGUuZ2Vu''@;'; + put 'put ''S2V5UGFpcj1mdW5jdGlvbihvZSl7b2V8fChvZT17fSk7Zm9yKHZhciBjZT1uZXcgYWUoe2hhc2g6dGhpcy5oYXNoLHBlcnM6b2UucGVycyxwZXJzRW5jOm9lLnBlcnNFbmN8fCJ1dGY4IixlbnRyb3B5Om9lLmVudHJvcHl8fE4odGhpcy5oYXNoLmhtYWNTdHJlbmd0aCksZW50cm9weUVuYzpv''@;'; + put 'put ''ZS5lbnRyb3B5JiZvZS5lbnRyb3B5RW5jfHwidXRmOCIsbm9uY2U6dGhpcy5uLnRvQXJyYXkoKX0pLGRlPXRoaXMubi5ieXRlTGVuZ3RoKCksdmU9dGhpcy5uLnN1YihuZXcgaWUoMikpOzspe3ZhciBBZT1uZXcgaWUoY2UuZ2VuZXJhdGUoZGUpKTtpZighKEFlLmNtcCh2ZSk+MCkpcmV0dXJu''@;'; + put 'put ''IEFlLmlhZGRuKDEpLHRoaXMua2V5RnJvbVByaXZhdGUoQWUpfX0sc2UucHJvdG90eXBlLl90cnVuY2F0ZVRvTj1mdW5jdGlvbihvZSxjZSl7dmFyIGRlPTgqb2UuYnl0ZUxlbmd0aCgpLXRoaXMubi5iaXRMZW5ndGgoKTtyZXR1cm4gZGU+MCYmKG9lPW9lLnVzaHJuKGRlKSksIWNlJiZvZS5j''@;'; + put 'put ''bXAodGhpcy5uKT49MD9vZS5zdWIodGhpcy5uKTpvZX0sc2UucHJvdG90eXBlLnNpZ249ZnVuY3Rpb24ob2UsY2UsZGUsdmUpeyJvYmplY3QiPT10eXBlb2YgZGUmJih2ZT1kZSxkZT1udWxsKSx2ZXx8KHZlPXt9KSxjZT10aGlzLmtleUZyb21Qcml2YXRlKGNlLGRlKSxvZT10aGlzLl90cnVu''@;'; + put 'put ''Y2F0ZVRvTihuZXcgaWUob2UsMTYpKTtmb3IodmFyIEFlPXRoaXMubi5ieXRlTGVuZ3RoKCksa2U9Y2UuZ2V0UHJpdmF0ZSgpLnRvQXJyYXkoImJlIixBZSksU2U9b2UudG9BcnJheSgiYmUiLEFlKSxJZT1uZXcgYWUoe2hhc2g6dGhpcy5oYXNoLGVudHJvcHk6a2Usbm9uY2U6U2UscGVyczp2''@;'; + put 'put ''ZS5wZXJzLHBlcnNFbmM6dmUucGVyc0VuY3x8InV0ZjgifSksVGU9dGhpcy5uLnN1YihuZXcgaWUoMSkpLEVlPTA7O0VlKyspe3ZhciBoZT12ZS5rP3ZlLmsoRWUpOm5ldyBpZShJZS5nZW5lcmF0ZSh0aGlzLm4uYnl0ZUxlbmd0aCgpKSk7aWYoISgoaGU9dGhpcy5fdHJ1bmNhdGVUb04oaGUs''@;'; + put 'put ''ITApKS5jbXBuKDEpPD0wfHxoZS5jbXAoVGUpPj0wKSl7dmFyIE89dGhpcy5nLm11bChoZSk7aWYoIU8uaXNJbmZpbml0eSgpKXt2YXIgej1PLmdldFgoKSxuZT16LnVtb2QodGhpcy5uKTtpZigwIT09bmUuY21wbigwKSl7dmFyIHRlPWhlLmludm0odGhpcy5uKS5tdWwobmUubXVsKGNlLmdl''@;'; + put 'put ''dFByaXZhdGUoKSkuaWFkZChvZSkpO2lmKDAhPT0odGU9dGUudW1vZCh0aGlzLm4pKS5jbXBuKDApKXt2YXIgeD0oTy5nZXRZKCkuaXNPZGQoKT8xOjApfCgwIT09ei5jbXAobmUpPzI6MCk7cmV0dXJuIHZlLmNhbm9uaWNhbCYmdGUuY21wKHRoaXMubmgpPjAmJih0ZT10aGlzLm4uc3ViKHRl''@;'; + put 'put ''KSx4Xj0xKSxuZXcgSih7cjpuZSxzOnRlLHJlY292ZXJ5UGFyYW06eH0pfX19fX19LHNlLnByb3RvdHlwZS52ZXJpZnk9ZnVuY3Rpb24ob2UsY2UsZGUsdmUpe29lPXRoaXMuX3RydW5jYXRlVG9OKG5ldyBpZShvZSwxNikpLGRlPXRoaXMua2V5RnJvbVB1YmxpYyhkZSx2ZSk7dmFyIEFlPShj''@;'; + put 'put ''ZT1uZXcgSihjZSwiaGV4IikpLnIsa2U9Y2UucztpZihBZS5jbXBuKDEpPDB8fEFlLmNtcCh0aGlzLm4pPj0wfHxrZS5jbXBuKDEpPDB8fGtlLmNtcCh0aGlzLm4pPj0wKXJldHVybiExO3ZhciBTZSxJZT1rZS5pbnZtKHRoaXMubiksVGU9SWUubXVsKG9lKS51bW9kKHRoaXMubiksRWU9SWUu''@;'; + put 'put ''bXVsKEFlKS51bW9kKHRoaXMubik7cmV0dXJuIHRoaXMuY3VydmUuX21heHdlbGxUcmljaz8hKFNlPXRoaXMuZy5qbXVsQWRkKFRlLGRlLmdldFB1YmxpYygpLEVlKSkuaXNJbmZpbml0eSgpJiZTZS5lcVhUb1AoQWUpOiEoU2U9dGhpcy5nLm11bEFkZChUZSxkZS5nZXRQdWJsaWMoKSxFZSkp''@;'; + put 'put ''LmlzSW5maW5pdHkoKSYmMD09PVNlLmdldFgoKS51bW9kKHRoaXMubikuY21wKEFlKX0sc2UucHJvdG90eXBlLnJlY292ZXJQdWJLZXk9ZnVuY3Rpb24ob2UsY2UsZGUsdmUpe2VlKCgzJmRlKT09PWRlLCJUaGUgcmVjb3ZlcnkgcGFyYW0gaXMgbW9yZSB0aGFuIHR3byBiaXRzIiksY2U9bmV3''@;'; + put 'put ''IEooY2UsdmUpO3ZhciBBZT10aGlzLm4sa2U9bmV3IGllKG9lKSxTZT1jZS5yLEllPWNlLnMsVGU9MSZkZSxFZT1kZT4+MTtpZihTZS5jbXAodGhpcy5jdXJ2ZS5wLnVtb2QodGhpcy5jdXJ2ZS5uKSk+PTAmJkVlKXRocm93IG5ldyBFcnJvcigiVW5hYmxlIHRvIGZpbmQgc2VuY29uZCBrZXkg''@;'; + put 'put ''Y2FuZGluYXRlIik7U2U9dGhpcy5jdXJ2ZS5wb2ludEZyb21YKEVlP1NlLmFkZCh0aGlzLmN1cnZlLm4pOlNlLFRlKTt2YXIgaGU9Y2Uuci5pbnZtKEFlKSxPPUFlLnN1YihrZSkubXVsKGhlKS51bW9kKEFlKSx6PUllLm11bChoZSkudW1vZChBZSk7cmV0dXJuIHRoaXMuZy5tdWxBZGQoTyxT''@;'; + put 'put ''ZSx6KX0sc2UucHJvdG90eXBlLmdldEtleVJlY292ZXJ5UGFyYW09ZnVuY3Rpb24ob2UsY2UsZGUsdmUpe2lmKG51bGwhPT0oY2U9bmV3IEooY2UsdmUpKS5yZWNvdmVyeVBhcmFtKXJldHVybiBjZS5yZWNvdmVyeVBhcmFtO2Zvcih2YXIgQWU9MDtBZTw0O0FlKyspe3ZhciBrZTt0cnl7a2U9''@;'; + put 'put ''dGhpcy5yZWNvdmVyUHViS2V5KG9lLGNlLEFlKX1jYXRjaChTZSl7Y29udGludWV9aWYoa2UuZXEoZGUpKXJldHVybiBBZX10aHJvdyBuZXcgRXJyb3IoIlVuYWJsZSB0byBmaW5kIHZhbGlkIHJlY292ZXJ5IGZhY3RvciIpfX0sMTI1MTooVSxRLFopPT57InVzZSBzdHJpY3QiO3ZhciBpZT1a''@;'; + put 'put ''KDM3ODUpLGFlPVooOTUzKS5hc3NlcnQ7ZnVuY3Rpb24gWShXLE4pe3RoaXMuZWM9Vyx0aGlzLnByaXY9bnVsbCx0aGlzLnB1Yj1udWxsLE4ucHJpdiYmdGhpcy5faW1wb3J0UHJpdmF0ZShOLnByaXYsTi5wcml2RW5jKSxOLnB1YiYmdGhpcy5faW1wb3J0UHVibGljKE4ucHViLE4ucHViRW5j''@;'; + put 'put ''KX1VLmV4cG9ydHM9WSxZLmZyb21QdWJsaWM9ZnVuY3Rpb24oVyxOLGVlKXtyZXR1cm4gTiBpbnN0YW5jZW9mIFk/TjpuZXcgWShXLHtwdWI6TixwdWJFbmM6ZWV9KX0sWS5mcm9tUHJpdmF0ZT1mdW5jdGlvbihXLE4sZWUpe3JldHVybiBOIGluc3RhbmNlb2YgWT9OOm5ldyBZKFcse3ByaXY6''@;'; + put 'put ''Tixwcml2RW5jOmVlfSl9LFkucHJvdG90eXBlLnZhbGlkYXRlPWZ1bmN0aW9uKCl7dmFyIFc9dGhpcy5nZXRQdWJsaWMoKTtyZXR1cm4gVy5pc0luZmluaXR5KCk/e3Jlc3VsdDohMSxyZWFzb246IkludmFsaWQgcHVibGljIGtleSJ9OlcudmFsaWRhdGUoKT9XLm11bCh0aGlzLmVjLmN1cnZl''@;'; + put 'put ''Lm4pLmlzSW5maW5pdHkoKT97cmVzdWx0OiEwLHJlYXNvbjpudWxsfTp7cmVzdWx0OiExLHJlYXNvbjoiUHVibGljIGtleSAqIE4gIT0gTyJ9OntyZXN1bHQ6ITEscmVhc29uOiJQdWJsaWMga2V5IGlzIG5vdCBhIHBvaW50In19LFkucHJvdG90eXBlLmdldFB1YmxpYz1mdW5jdGlvbihXLE4p''@;'; + put 'put ''e3JldHVybiJzdHJpbmciPT10eXBlb2YgVyYmKE49VyxXPW51bGwpLHRoaXMucHVifHwodGhpcy5wdWI9dGhpcy5lYy5nLm11bCh0aGlzLnByaXYpKSxOP3RoaXMucHViLmVuY29kZShOLFcpOnRoaXMucHVifSxZLnByb3RvdHlwZS5nZXRQcml2YXRlPWZ1bmN0aW9uKFcpe3JldHVybiJoZXgi''@;'; + put 'put ''PT09Vz90aGlzLnByaXYudG9TdHJpbmcoMTYsMik6dGhpcy5wcml2fSxZLnByb3RvdHlwZS5faW1wb3J0UHJpdmF0ZT1mdW5jdGlvbihXLE4pe3RoaXMucHJpdj1uZXcgaWUoVyxOfHwxNiksdGhpcy5wcml2PXRoaXMucHJpdi51bW9kKHRoaXMuZWMuY3VydmUubil9LFkucHJvdG90eXBlLl9p''@;'; + put 'put ''bXBvcnRQdWJsaWM9ZnVuY3Rpb24oVyxOKXtpZihXLnh8fFcueSlyZXR1cm4ibW9udCI9PT10aGlzLmVjLmN1cnZlLnR5cGU/YWUoVy54LCJOZWVkIHggY29vcmRpbmF0ZSIpOiJzaG9ydCIhPT10aGlzLmVjLmN1cnZlLnR5cGUmJiJlZHdhcmRzIiE9PXRoaXMuZWMuY3VydmUudHlwZXx8YWUo''@;'; + put 'put ''Vy54JiZXLnksIk5lZWQgYm90aCB4IGFuZCB5IGNvb3JkaW5hdGUiKSx2b2lkKHRoaXMucHViPXRoaXMuZWMuY3VydmUucG9pbnQoVy54LFcueSkpO3RoaXMucHViPXRoaXMuZWMuY3VydmUuZGVjb2RlUG9pbnQoVyxOKX0sWS5wcm90b3R5cGUuZGVyaXZlPWZ1bmN0aW9uKFcpe3JldHVybiBX''@;'; + put 'put ''LnZhbGlkYXRlKCl8fGFlKFcudmFsaWRhdGUoKSwicHVibGljIHBvaW50IG5vdCB2YWxpZGF0ZWQiKSxXLm11bCh0aGlzLnByaXYpLmdldFgoKX0sWS5wcm90b3R5cGUuc2lnbj1mdW5jdGlvbihXLE4sZWUpe3JldHVybiB0aGlzLmVjLnNpZ24oVyx0aGlzLE4sZWUpfSxZLnByb3RvdHlwZS52''@;'; + put 'put ''ZXJpZnk9ZnVuY3Rpb24oVyxOKXtyZXR1cm4gdGhpcy5lYy52ZXJpZnkoVyxOLHRoaXMpfSxZLnByb3RvdHlwZS5pbnNwZWN0PWZ1bmN0aW9uKCl7cmV0dXJuIjxLZXkgcHJpdjogIisodGhpcy5wcml2JiZ0aGlzLnByaXYudG9TdHJpbmcoMTYsMikpKyIgcHViOiAiKyh0aGlzLnB1YiYmdGhp''@;'; + put 'put ''cy5wdWIuaW5zcGVjdCgpKSsiID4ifX0sNjExOihVLFEsWik9PnsidXNlIHN0cmljdCI7dmFyIGllPVooMzc4NSksYWU9Wig5NTMpLFk9YWUuYXNzZXJ0O2Z1bmN0aW9uIFcoc2Usb2Upe2lmKHNlIGluc3RhbmNlb2YgVylyZXR1cm4gc2U7dGhpcy5faW1wb3J0REVSKHNlLG9lKXx8KFkoc2Uu''@;'; + put 'put ''ciYmc2UucywiU2lnbmF0dXJlIHdpdGhvdXQgciBvciBzIiksdGhpcy5yPW5ldyBpZShzZS5yLDE2KSx0aGlzLnM9bmV3IGllKHNlLnMsMTYpLHRoaXMucmVjb3ZlcnlQYXJhbT12b2lkIDA9PT1zZS5yZWNvdmVyeVBhcmFtP251bGw6c2UucmVjb3ZlcnlQYXJhbSl9ZnVuY3Rpb24gTigpe3Ro''@;'; + put 'put ''aXMucGxhY2U9MH1mdW5jdGlvbiBlZShzZSxvZSl7dmFyIGNlPXNlW29lLnBsYWNlKytdO2lmKCEoMTI4JmNlKSlyZXR1cm4gY2U7dmFyIGRlPTE1JmNlO2lmKDA9PT1kZXx8ZGU+NClyZXR1cm4hMTtmb3IodmFyIHZlPTAsQWU9MCxrZT1vZS5wbGFjZTtBZTxkZTtBZSsrLGtlKyspdmU8PD04''@;'; + put 'put ''LHZlfD1zZVtrZV0sdmU+Pj49MDtyZXR1cm4hKHZlPD0xMjcpJiYob2UucGxhY2U9a2UsdmUpfWZ1bmN0aW9uIHEoc2Upe2Zvcih2YXIgb2U9MCxjZT1zZS5sZW5ndGgtMTshc2Vbb2VdJiYhKDEyOCZzZVtvZSsxXSkmJm9lPGNlOylvZSsrO3JldHVybiAwPT09b2U/c2U6c2Uuc2xpY2Uob2Up''@;'; + put 'put ''fWZ1bmN0aW9uIEooc2Usb2Upe2lmKG9lPDEyOClzZS5wdXNoKG9lKTtlbHNle3ZhciBjZT0xKyhNYXRoLmxvZyhvZSkvTWF0aC5MTjI+Pj4zKTtmb3Ioc2UucHVzaCgxMjh8Y2UpOy0tY2U7KXNlLnB1c2gob2U+Pj4oY2U8PDMpJjI1NSk7c2UucHVzaChvZSl9fVUuZXhwb3J0cz1XLFcucHJv''@;'; + put 'put ''dG90eXBlLl9pbXBvcnRERVI9ZnVuY3Rpb24oc2Usb2Upe3NlPWFlLnRvQXJyYXkoc2Usb2UpO3ZhciBjZT1uZXcgTjtpZig0OCE9PXNlW2NlLnBsYWNlKytdKXJldHVybiExO3ZhciBkZT1lZShzZSxjZSk7aWYoITE9PT1kZXx8ZGUrY2UucGxhY2UhPT1zZS5sZW5ndGh8fDIhPT1zZVtjZS5w''@;'; + put 'put ''bGFjZSsrXSlyZXR1cm4hMTt2YXIgdmU9ZWUoc2UsY2UpO2lmKCExPT09dmUpcmV0dXJuITE7dmFyIEFlPXNlLnNsaWNlKGNlLnBsYWNlLHZlK2NlLnBsYWNlKTtpZihjZS5wbGFjZSs9dmUsMiE9PXNlW2NlLnBsYWNlKytdKXJldHVybiExO3ZhciBrZT1lZShzZSxjZSk7aWYoITE9PT1rZXx8''@;'; + put 'put ''c2UubGVuZ3RoIT09a2UrY2UucGxhY2UpcmV0dXJuITE7dmFyIFNlPXNlLnNsaWNlKGNlLnBsYWNlLGtlK2NlLnBsYWNlKTtpZigwPT09QWVbMF0pe2lmKCEoMTI4JkFlWzFdKSlyZXR1cm4hMTtBZT1BZS5zbGljZSgxKX1pZigwPT09U2VbMF0pe2lmKCEoMTI4JlNlWzFdKSlyZXR1cm4hMTtT''@;'; + put 'put ''ZT1TZS5zbGljZSgxKX1yZXR1cm4gdGhpcy5yPW5ldyBpZShBZSksdGhpcy5zPW5ldyBpZShTZSksdGhpcy5yZWNvdmVyeVBhcmFtPW51bGwsITB9LFcucHJvdG90eXBlLnRvREVSPWZ1bmN0aW9uKHNlKXt2YXIgb2U9dGhpcy5yLnRvQXJyYXkoKSxjZT10aGlzLnMudG9BcnJheSgpO2Zvcigx''@;'; + put 'put ''Mjgmb2VbMF0mJihvZT1bMF0uY29uY2F0KG9lKSksMTI4JmNlWzBdJiYoY2U9WzBdLmNvbmNhdChjZSkpLG9lPXEob2UpLGNlPXEoY2UpOyEoY2VbMF18fDEyOCZjZVsxXSk7KWNlPWNlLnNsaWNlKDEpO3ZhciBkZT1bMl07SihkZSxvZS5sZW5ndGgpLChkZT1kZS5jb25jYXQob2UpKS5wdXNo''@;'; + put 'put ''KDIpLEooZGUsY2UubGVuZ3RoKTt2YXIgdmU9ZGUuY29uY2F0KGNlKSxBZT1bNDhdO3JldHVybiBKKEFlLHZlLmxlbmd0aCksQWU9QWUuY29uY2F0KHZlKSxhZS5lbmNvZGUoQWUsc2UpfX0sNTk4MDooVSxRLFopPT57InVzZSBzdHJpY3QiO3ZhciBpZT1aKDM3MTUpLGFlPVooNTQyNyksWT1a''@;'; + put 'put ''KDk1MyksVz1ZLmFzc2VydCxOPVkucGFyc2VCeXRlcyxlZT1aKDkwODcpLHE9WigzNjIyKTtmdW5jdGlvbiBKKHNlKXtpZihXKCJlZDI1NTE5Ij09PXNlLCJvbmx5IHRlc3RlZCB3aXRoIGVkMjU1MTkgc28gZmFyIiksISh0aGlzIGluc3RhbmNlb2YgSikpcmV0dXJuIG5ldyBKKHNlKTt0aGlz''@;'; + put 'put ''LmN1cnZlPXNlPWFlW3NlXS5jdXJ2ZSx0aGlzLmc9c2UuZyx0aGlzLmcucHJlY29tcHV0ZShzZS5uLmJpdExlbmd0aCgpKzEpLHRoaXMucG9pbnRDbGFzcz1zZS5wb2ludCgpLmNvbnN0cnVjdG9yLHRoaXMuZW5jb2RpbmdMZW5ndGg9TWF0aC5jZWlsKHNlLm4uYml0TGVuZ3RoKCkvOCksdGhp''@;'; + put 'put ''cy5oYXNoPWllLnNoYTUxMn1VLmV4cG9ydHM9SixKLnByb3RvdHlwZS5zaWduPWZ1bmN0aW9uKHNlLG9lKXtzZT1OKHNlKTt2YXIgY2U9dGhpcy5rZXlGcm9tU2VjcmV0KG9lKSxkZT10aGlzLmhhc2hJbnQoY2UubWVzc2FnZVByZWZpeCgpLHNlKSx2ZT10aGlzLmcubXVsKGRlKSxBZT10aGlz''@;'; + put 'put ''LmVuY29kZVBvaW50KHZlKSxrZT10aGlzLmhhc2hJbnQoQWUsY2UucHViQnl0ZXMoKSxzZSkubXVsKGNlLnByaXYoKSksU2U9ZGUuYWRkKGtlKS51bW9kKHRoaXMuY3VydmUubik7cmV0dXJuIHRoaXMubWFrZVNpZ25hdHVyZSh7Ujp2ZSxTOlNlLFJlbmNvZGVkOkFlfSl9LEoucHJvdG90eXBl''@;'; + put 'put ''LnZlcmlmeT1mdW5jdGlvbihzZSxvZSxjZSl7c2U9TihzZSksb2U9dGhpcy5tYWtlU2lnbmF0dXJlKG9lKTt2YXIgZGU9dGhpcy5rZXlGcm9tUHVibGljKGNlKSx2ZT10aGlzLmhhc2hJbnQob2UuUmVuY29kZWQoKSxkZS5wdWJCeXRlcygpLHNlKSxBZT10aGlzLmcubXVsKG9lLlMoKSk7cmV0''@;'; + put 'put ''dXJuIG9lLlIoKS5hZGQoZGUucHViKCkubXVsKHZlKSkuZXEoQWUpfSxKLnByb3RvdHlwZS5oYXNoSW50PWZ1bmN0aW9uKCl7Zm9yKHZhciBzZT10aGlzLmhhc2goKSxvZT0wO29lPGFyZ3VtZW50cy5sZW5ndGg7b2UrKylzZS51cGRhdGUoYXJndW1lbnRzW29lXSk7cmV0dXJuIFkuaW50RnJv''@;'; + put 'put ''bUxFKHNlLmRpZ2VzdCgpKS51bW9kKHRoaXMuY3VydmUubil9LEoucHJvdG90eXBlLmtleUZyb21QdWJsaWM9ZnVuY3Rpb24oc2Upe3JldHVybiBlZS5mcm9tUHVibGljKHRoaXMsc2UpfSxKLnByb3RvdHlwZS5rZXlGcm9tU2VjcmV0PWZ1bmN0aW9uKHNlKXtyZXR1cm4gZWUuZnJvbVNlY3Jl''@;'; + put 'put ''dCh0aGlzLHNlKX0sSi5wcm90b3R5cGUubWFrZVNpZ25hdHVyZT1mdW5jdGlvbihzZSl7cmV0dXJuIHNlIGluc3RhbmNlb2YgcT9zZTpuZXcgcSh0aGlzLHNlKX0sSi5wcm90b3R5cGUuZW5jb2RlUG9pbnQ9ZnVuY3Rpb24oc2Upe3ZhciBvZT1zZS5nZXRZKCkudG9BcnJheSgibGUiLHRoaXMu''@;'; + put 'put ''ZW5jb2RpbmdMZW5ndGgpO3JldHVybiBvZVt0aGlzLmVuY29kaW5nTGVuZ3RoLTFdfD1zZS5nZXRYKCkuaXNPZGQoKT8xMjg6MCxvZX0sSi5wcm90b3R5cGUuZGVjb2RlUG9pbnQ9ZnVuY3Rpb24oc2Upe3ZhciBvZT0oc2U9WS5wYXJzZUJ5dGVzKHNlKSkubGVuZ3RoLTEsY2U9c2Uuc2xpY2Uo''@;'; + put 'put ''MCxvZSkuY29uY2F0KC0xMjkmc2Vbb2VdKSxkZT0wIT0oMTI4JnNlW29lXSksdmU9WS5pbnRGcm9tTEUoY2UpO3JldHVybiB0aGlzLmN1cnZlLnBvaW50RnJvbVkodmUsZGUpfSxKLnByb3RvdHlwZS5lbmNvZGVJbnQ9ZnVuY3Rpb24oc2Upe3JldHVybiBzZS50b0FycmF5KCJsZSIsdGhpcy5l''@;'; + put 'put ''bmNvZGluZ0xlbmd0aCl9LEoucHJvdG90eXBlLmRlY29kZUludD1mdW5jdGlvbihzZSl7cmV0dXJuIFkuaW50RnJvbUxFKHNlKX0sSi5wcm90b3R5cGUuaXNQb2ludD1mdW5jdGlvbihzZSl7cmV0dXJuIHNlIGluc3RhbmNlb2YgdGhpcy5wb2ludENsYXNzfX0sOTA4NzooVSxRLFopPT57InVz''@;'; + put 'put ''ZSBzdHJpY3QiO3ZhciBpZT1aKDk1MyksYWU9aWUuYXNzZXJ0LFk9aWUucGFyc2VCeXRlcyxXPWllLmNhY2hlZFByb3BlcnR5O2Z1bmN0aW9uIE4oZWUscSl7dGhpcy5lZGRzYT1lZSx0aGlzLl9zZWNyZXQ9WShxLnNlY3JldCksZWUuaXNQb2ludChxLnB1Yik/dGhpcy5fcHViPXEucHViOnRo''@;'; + put 'put ''aXMuX3B1YkJ5dGVzPVkocS5wdWIpfU4uZnJvbVB1YmxpYz1mdW5jdGlvbihlZSxxKXtyZXR1cm4gcSBpbnN0YW5jZW9mIE4/cTpuZXcgTihlZSx7cHViOnF9KX0sTi5mcm9tU2VjcmV0PWZ1bmN0aW9uKGVlLHEpe3JldHVybiBxIGluc3RhbmNlb2YgTj9xOm5ldyBOKGVlLHtzZWNyZXQ6cX0p''@;'; + put 'put ''fSxOLnByb3RvdHlwZS5zZWNyZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc2VjcmV0fSxXKE4sInB1YkJ5dGVzIixmdW5jdGlvbigpe3JldHVybiB0aGlzLmVkZHNhLmVuY29kZVBvaW50KHRoaXMucHViKCkpfSksVyhOLCJwdWIiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3B1YkJ5dGVz''@;'; + put 'put ''P3RoaXMuZWRkc2EuZGVjb2RlUG9pbnQodGhpcy5fcHViQnl0ZXMpOnRoaXMuZWRkc2EuZy5tdWwodGhpcy5wcml2KCkpfSksVyhOLCJwcml2Qnl0ZXMiLGZ1bmN0aW9uKCl7dmFyIGVlPXRoaXMuZWRkc2EscT10aGlzLmhhc2goKSxKPWVlLmVuY29kaW5nTGVuZ3RoLTEsc2U9cS5zbGljZSgw''@;'; + put 'put ''LGVlLmVuY29kaW5nTGVuZ3RoKTtyZXR1cm4gc2VbMF0mPTI0OCxzZVtKXSY9MTI3LHNlW0pdfD02NCxzZX0pLFcoTiwicHJpdiIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lZGRzYS5kZWNvZGVJbnQodGhpcy5wcml2Qnl0ZXMoKSl9KSxXKE4sImhhc2giLGZ1bmN0aW9uKCl7cmV0dXJuIHRo''@;'; + put 'put ''aXMuZWRkc2EuaGFzaCgpLnVwZGF0ZSh0aGlzLnNlY3JldCgpKS5kaWdlc3QoKX0pLFcoTiwibWVzc2FnZVByZWZpeCIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5oYXNoKCkuc2xpY2UodGhpcy5lZGRzYS5lbmNvZGluZ0xlbmd0aCl9KSxOLnByb3RvdHlwZS5zaWduPWZ1bmN0aW9uKGVlKXty''@;'; + put 'put ''ZXR1cm4gYWUodGhpcy5fc2VjcmV0LCJLZXlQYWlyIGNhbiBvbmx5IHZlcmlmeSIpLHRoaXMuZWRkc2Euc2lnbihlZSx0aGlzKX0sTi5wcm90b3R5cGUudmVyaWZ5PWZ1bmN0aW9uKGVlLHEpe3JldHVybiB0aGlzLmVkZHNhLnZlcmlmeShlZSxxLHRoaXMpfSxOLnByb3RvdHlwZS5nZXRTZWNy''@;'; + put 'put ''ZXQ9ZnVuY3Rpb24oZWUpe3JldHVybiBhZSh0aGlzLl9zZWNyZXQsIktleVBhaXIgaXMgcHVibGljIG9ubHkiKSxpZS5lbmNvZGUodGhpcy5zZWNyZXQoKSxlZSl9LE4ucHJvdG90eXBlLmdldFB1YmxpYz1mdW5jdGlvbihlZSl7cmV0dXJuIGllLmVuY29kZSh0aGlzLnB1YkJ5dGVzKCksZWUp''@;'; + put 'put ''fSxVLmV4cG9ydHM9Tn0sMzYyMjooVSxRLFopPT57InVzZSBzdHJpY3QiO3ZhciBpZT1aKDM3ODUpLGFlPVooOTUzKSxZPWFlLmFzc2VydCxXPWFlLmNhY2hlZFByb3BlcnR5LE49YWUucGFyc2VCeXRlcztmdW5jdGlvbiBlZShxLEope3RoaXMuZWRkc2E9cSwib2JqZWN0IiE9dHlwZW9mIEom''@;'; + put 'put ''JihKPU4oSikpLEFycmF5LmlzQXJyYXkoSikmJihKPXtSOkouc2xpY2UoMCxxLmVuY29kaW5nTGVuZ3RoKSxTOkouc2xpY2UocS5lbmNvZGluZ0xlbmd0aCl9KSxZKEouUiYmSi5TLCJTaWduYXR1cmUgd2l0aG91dCBSIG9yIFMiKSxxLmlzUG9pbnQoSi5SKSYmKHRoaXMuX1I9Si5SKSxKLlMg''@;'; + put 'put ''aW5zdGFuY2VvZiBpZSYmKHRoaXMuX1M9Si5TKSx0aGlzLl9SZW5jb2RlZD1BcnJheS5pc0FycmF5KEouUik/Si5SOkouUmVuY29kZWQsdGhpcy5fU2VuY29kZWQ9QXJyYXkuaXNBcnJheShKLlMpP0ouUzpKLlNlbmNvZGVkfVcoZWUsIlMiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZWRkc2Eu''@;'; + put 'put ''ZGVjb2RlSW50KHRoaXMuU2VuY29kZWQoKSl9KSxXKGVlLCJSIixmdW5jdGlvbigpe3JldHVybiB0aGlzLmVkZHNhLmRlY29kZVBvaW50KHRoaXMuUmVuY29kZWQoKSl9KSxXKGVlLCJSZW5jb2RlZCIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lZGRzYS5lbmNvZGVQb2ludCh0aGlzLlIoKSl9''@;'; + put 'put ''KSxXKGVlLCJTZW5jb2RlZCIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lZGRzYS5lbmNvZGVJbnQodGhpcy5TKCkpfSksZWUucHJvdG90eXBlLnRvQnl0ZXM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZW5jb2RlZCgpLmNvbmNhdCh0aGlzLlNlbmNvZGVkKCkpfSxlZS5wcm90b3R5cGUudG9I''@;'; + put 'put ''ZXg9ZnVuY3Rpb24oKXtyZXR1cm4gYWUuZW5jb2RlKHRoaXMudG9CeXRlcygpLCJoZXgiKS50b1VwcGVyQ2FzZSgpfSxVLmV4cG9ydHM9ZWV9LDEwMzc6VT0+e1UuZXhwb3J0cz17ZG91Ymxlczp7c3RlcDo0LHBvaW50czpbWyJlNjBmY2U5M2I1OWU5ZWM1MzAxMWFhYmMyMWMyM2U5N2IyYTMx''@;'; + put 'put ''MzY5Yjg3YTVhZTljNDRlZTg5ZTJhNmRlYzBhIiwiZjdlMzUwNzM5OWU1OTU5MjlkYjk5ZjM0ZjU3OTM3MTAxMjk2ODkxZTQ0ZDIzZjBiZTFmMzJjY2U2OTYxNjgyMSJdLFsiODI4MjI2MzIxMmM2MDlkOWVhMmE2ZTNlMTcyZGUyMzhkOGMzOWNhYmQ1YWMxY2ExMDY0NmUyM2ZkNWY1MTUwOCIs''@;'; + put 'put ''IjExZjhhODA5ODU1N2RmZTQ1ZTgyNTZlODMwYjYwYWNlNjJkNjEzYWMyZjdiMTdiZWQzMWI2ZWFmZjZlMjZjYWYiXSxbIjE3NWUxNTlmNzI4Yjg2NWE3MmY5OWNjNmM2ZmM4NDZkZTBiOTM4MzNmZDIyMjJlZDczZmNlNWI1NTFlNWI3MzkiLCJkMzUwNmUwZDllM2M3OWViYTRlZjk3YTUxZmY3''@;'; + put 'put ''MWY1ZWFjYjU5NTVhZGQyNDM0NWM2ZWZhNmZmZWU5ZmVkNjk1Il0sWyIzNjNkOTBkNDQ3YjAwYzljOTljZWFjMDViNjI2MmVlMDUzNDQxYzdlNTU1NTJmZmU1MjZiYWQ4ZjgzZmY0NjQwIiwiNGUyNzNhZGZjNzMyMjIxOTUzYjQ0NTM5N2YzMzYzMTQ1YjlhODkwMDgxOTllY2I2MjAwM2M3ZjNi''@;'; + put 'put ''ZWU5ZGU5Il0sWyI4YjRiNWYxNjVkZjNjMmJlOGM2MjQ0YjViNzQ1NjM4ODQzZTRhNzgxYTE1YmNkMWI2OWY3OWE1NWRmZmRmODBjIiwiNGFhZDBhNmY2OGQzMDhiNGIzZmJkNzgxM2FiMGRhMDRmOWUzMzY1NDYxNjJlZTU2YjNlZmYwYzY1ZmQ0ZmQzNiJdLFsiNzIzY2JhYTZlNWRiOTk2ZDZi''@;'; + put 'put ''Zjc3MWMwMGJkNTQ4YzdiNzAwZGJmZmE2YzBlNzdiY2I2MTE1OTI1MjMyZmNkYSIsIjk2ZTg2N2I1NTk1Y2M0OThhOTIxMTM3NDg4ODI0ZDZlMjY2MGEwNjUzNzc5NDk0ODAxZGMwNjlkOWViMzlmNWYiXSxbImVlYmZhNGQ0OTNiZWJmOThiYTVmZWVjODEyYzJkM2I1MDk0Nzk2MTIzN2E5MTk4''@;'; + put 'put ''MzlhNTMzZWNhMGU3ZGQ3ZmEiLCI1ZDlhOGNhMzk3MGVmMGYyNjllZTdlZGFmMTc4MDg5ZDlhZTRjZGMzYTcxMWY3MTJkZGZkNGZkYWUxZGU4OTk5Il0sWyIxMDBmNDRkYTY5NmU3MTY3Mjc5MWQwYTA5YjdiZGU0NTlmMTIxNWEyOWIzYzAzYmZlZmQ3ODM1YjM5YTQ4ZGIwIiwiY2RkOWUxMzE5''@;'; + put 'put ''MmEwMGI3NzJlYzhmMzMwMGMwOTA2NjZiN2ZmNGExOGZmNTE5NWFjMGZiZDVjZDYyYmM2NWEwOSJdLFsiZTEwMzFiZTI2MmM3ZWQxYjFkYzkyMjdhNGEwNGMwMTdhNzdmOGQ0NDY0ZjNiMzg1MmM4YWNkZTZlNTM0ZmQyZCIsIjlkNzA2MTkyODk0MDQwNWU2YmI2YTQxNzY1OTc1MzVhZjI5MmRk''@;'; + put 'put ''NDE5ZTFjZWQ3OWE0NGYxOGYyOTQ1NmEwMGQiXSxbImZlZWE2Y2FlNDZkNTViNTMwYWMyODM5ZjE0M2JkN2VjNWNmOGIyNjZhNDFkNmFmNTJkNWU2ODhkOTA5NDY5NmQiLCJlNTdjNmI2Yzk3ZGNlMWJhYjA2ZTRlMTJiZjNlY2Q1Yzk4MWM4OTU3Y2M0MTQ0MmQzMTU1ZGViZjE4MDkwMDg4Il0s''@;'; + put 'put ''WyJkYTY3YTkxZDkxMDQ5Y2RjYjM2N2JlNGJlNmZmY2EzY2ZlZWQ2NTdkODA4NTgzZGUzM2ZhOTc4YmMxZWM2Y2IxIiwiOWJhY2FhMzU0ODE2NDJiYzQxZjQ2M2Y3ZWM5NzgwZTVkZWM3YWRjNTA4Zjc0MGExN2U5ZWE4ZTI3YTY4YmUxZCJdLFsiNTM5MDRmYWEwYjMzNGNkZGE2ZTAwMDkzNWVm''@;'; + put 'put ''MjIxNTFlYzA4ZDBmN2JiMTEwNjlmNTc1NDVjY2MxYTM3YjdjMCIsIjViYzA4N2QwYmM4MDEwNmQ4OGM5ZWNjYWMyMGQzYzFjMTM5OTk5ODFlMTQ0MzQ2OTlkY2IwOTZiMDIyNzcxYzgiXSxbIjhlN2JjZDBiZDM1OTgzYTc3MTljY2E3NzY0Y2E5MDY3NzliNTNhMDQzYTliOGJjYWVmZjk1OWY0''@;'; + put 'put ''M2FkODYwNDciLCIxMGI3NzcwYjJhM2RhNGIzOTQwMzEwNDIwY2E5NTE0NTc5ZTg4ZTJlNDdmZDY4YjNlYTEwMDQ3ZTg0NjAzNzJhIl0sWyIzODVlZWQzNGMxY2RmZjIxZTZkMDgxODY4OWI4MWJkZTcxYTdmNGYxODM5N2U2NjkwYTg0MWUxNTk5YzQzODYyIiwiMjgzYmViYzNlOGVhMjNmNTY3''@;'; + put 'put ''MDFkZTE5ZTllYmY0NTc2YjMwNGVlYzIwODZkYzhjYzA0NThmZTU1NDJlNTQ1MyJdLFsiNmY5ZDliODAzZWNmMTkxNjM3YzczYTQ0MTNkZmExODBmZGRmODRhNTk0N2ZiYzljNjA2ZWQ4NmMzZmFjM2E3IiwiN2M4MGM2OGU2MDMwNTliYTY5YjhlMmEzMGU0NWM0ZDQ3ZWE0ZGQyZjVjMjgxMDAy''@;'; + put 'put ''ZDg2ODkwNjAzYTg0MjE2MCJdLFsiMzMyMmQ0MDEyNDNjNGUyNTgyYTIxNDdjMTA0ZDZlY2JmNzc0ZDE2M2RiMGY1ZTUzMTNiN2UwZTc0MmQwZTZiZCIsIjU2ZTcwNzk3ZTk2NjRlZjViZmIwMTliYzRkZGFmOWI3MjgwNWY2M2VhMjg3M2FmNjI0ZjNhMmU5NmMyOGIyYTAiXSxbIjg1NjcyYzdk''@;'; + put 'put ''MmRlMGI3ZGEyYmQxNzcwZDg5NjY1ODY4NzQxYjNmOWFmNzY0MzM5NzcyMWQ3NGQyODEzNGFiODMiLCI3YzQ4MWI5YjViNDNiMmViNjM3NDA0OWJmYTYyYzJlNWU3N2YxN2ZjYzUyOThmNDRjOGUzMDk0Zjc5MDMxM2E2Il0sWyI5NDhiZjgwOWIxOTg4YTQ2YjA2YzlmMTkxOTQxM2IxMGY5MjI2''@;'; + put 'put ''YzYwZjY2ODgzMmZmZDk1OWFmNjBjODJhMGEiLCI1M2E1NjI4NTZkY2I2NjQ2ZGM2Yjc0YzVkMWMzNDE4YzZkNGRmZjA4Yzk3Y2QyYmVkNGNiN2Y4OGQ4YzhlNTg5Il0sWyI2MjYwY2U3ZjQ2MTgwMWMzNGYwNjdjZTBmMDI4NzNhOGYxYjBlNDRkZmM2OTc1MmFjY2VjZDgxOWYzOGZkOGU4Iiwi''@;'; + put 'put ''YmMyZGE4MmI2ZmE1YjU3MWE3ZjA5MDQ5Nzc2YTFlZjdlY2QyOTIyMzgwNTFjMTk4YzFhODRlOTViMmI0YWUxNyJdLFsiZTUwMzdkZTBhZmMxZDhkNDNkODM0ODQxNGJiZjQxMDMwNDNlYzhmNTc1YmZkYzQzMjk1M2NjOGQyMDM3ZmEyZCIsIjQ1NzE1MzRiYWE5NGQzYjVmOWY5OGQwOWZiOTkw''@;'; + put 'put ''YmRkYmQ1ZjViMDNlYzQ4MWYxMGUwZTVkYzg0MWQ3NTViZGEiXSxbImUwNjM3MmIwZjRhMjA3YWRmNWVhOTA1ZThmMTc3MWI0ZTdlOGRiZDFjNmE2YzViNzI1ODY2YTBhZTRmY2U3MjUiLCI3YTkwODk3NGJjZTE4Y2ZlMTJhMjdiYjJhZDVhNDg4Y2Q3NDg0YTc3ODcxMDQ4NzBiMjcwMzRmOTRl''@;'; + put 'put ''ZWUzMWRkIl0sWyIyMTNjN2E3MTVjZDVkNDUzNThkMGJiZjlkYzBjZTAyMjA0YjEwYmRkZTJhM2Y1ODU0MGFkNjkwOGQwNTU5NzU0IiwiNGI2ZGFkMGI1YWU0NjI1MDcwMTNhZDA2MjQ1YmExOTBiYjQ4NTBmNWYzNmE3ZWVkZGZmMmMyNzUzNGI0NThmMiJdLFsiNGU3YzI3MmE3YWY0YjM0ZThk''@;'; + put 'put ''YmI5MzUyYTU0MTlhODdlMjgzOGM3MGFkYzYyY2RkZjBjYzNhM2IwOGZiZDUzYyIsIjE3NzQ5Yzc2NmM5ZDBiMThlMTZmZDA5ZjZkZWY2ODFiNTMwYjk2MTRiZmY3ZGQzM2UwYjM5NDE4MTdkY2FhZTYiXSxbImZlYTc0ZTNkYmU3NzhiMWIxMGYyMzhhZDYxNjg2YWE1Yzc2ZTNkYjJiZTQzMDU3''@;'; + put 'put ''NjMyNDI3ZTI4NDBmYjI3YjYiLCI2ZTA1NjhkYjliMGIxMzI5N2NmNjc0ZGVjY2I2YWY5MzEyNmI1OTZiOTczZjdiNzc3MDFkM2RiN2YyM2NiOTZmIl0sWyI3NmU2NDExM2Y2NzdjZjBlMTBhMjU3MGQ1OTk5NjhkMzE1NDRlMTc5Yjc2MDQzMjk1MmMwMmE0NDE3YmRkZTM5IiwiYzkwZGRmOGRl''@;'; + put 'put ''ZTRlOTVjZjU3NzA2NmQ3MDY4MWYwZDM1ZTJhMzNkMmI1NmQyMDMyYjRiMTc1MmQxOTAxYWMwMSJdLFsiYzczOGM1NmIwM2IyYWJlMWU4MjgxYmFhNzQzZjhmOWE4ZjdjYzY0M2RmMjZjYmVlM2FiMTUwMjQyYmNiYjg5MSIsIjg5M2ZiNTc4OTUxYWQyNTM3ZjcxOGYyZWFjYmZiYmJiODIzMTRl''@;'; + put 'put ''ZWY3ODgwY2ZlOTE3ZTczNWQ5Njk5YTg0YzMiXSxbImQ4OTU2MjY1NDhiNjViODFlMjY0Yzc2MzdjOTcyODc3ZDFkNzJlNWYzYTkyNTAxNDM3MmU5ZjY1ODhmNmMxNGIiLCJmZWJmYWEzOGYyYmM3ZWFlNzI4ZWM2MDgxOGMzNDBlYjAzNDI4ZDYzMmJiMDY3ZTE3OTM2M2VkNzVkN2Q5OTFmIl0s''@;'; + put 'put ''WyJiOGRhOTQwMzJhOTU3NTE4ZWIwZjY0MzM1NzFlODc2MWNlZmZjNzM2OTNlODRlZGQ0OTE1MGE1NjRmNjc2ZTAzIiwiMjgwNGRmYTQ0ODA1YTFlNGQ3Yzk5Y2M5NzYyODA4YjA5MmNjNTg0ZDk1ZmYzYjUxMTQ4OGU0ZTc0ZWZkZjZlNyJdLFsiZTgwZmVhMTQ0NDFmYjMzYTdkOGFkYWI5NDc1''@;'; + put 'put ''ZDdmYWIyMDE5ZWZmYjUxNTZhNzkyZjFhMTE3NzhlM2MwZGY1ZCIsImVlZDFkZTdmNjM4ZTAwNzcxZTg5NzY4Y2EzY2E5NDQ3MmQxNTVlODBhZjMyMmVhOWZjYjQyOTFiNmFjOWVjNzgiXSxbImEzMDE2OTdiZGZjZDcwNDMxM2JhNDhlNTFkNTY3NTQzZjJhMTgyMDMxZWZkNjkxNWRkYzA3YmJj''@;'; + put 'put ''YzRlMTYwNzAiLCI3MzcwZjkxY2ZiNjdlNGY1MDgxODA5ZmEyNWQ0MGY5YjE3MzVkYmY3YzBhMTFhMTMwYzBkMWEwNDFlMTc3ZWExIl0sWyI5MGFkODViMzg5ZDZiOTM2NDYzZjlkMDUxMjY3OGRlMjA4Y2MzMzBiMTEzMDdmZmZhYjdhYzYzZTNmYjA0ZWQ0IiwiZTUwN2EzNjIwYTM4MjYxYWZm''@;'; + put 'put ''ZGNiZDk0MjcyMjJiODM5YWVmYWJlMTU4Mjg5NGQ5OTFkNGQ0OGNiNmVmMTUwIl0sWyI4ZjY4YjlkMmY2M2I1ZjMzOTIzOWMxYWQ5ODFmMTYyZWU4OGM1Njc4NzIzZWEzMzUxYjdiNDQ0YzllYzRjMGRhIiwiNjYyYTlmMmRiYTA2Mzk4NmRlMWQ5MGMyYjZiZTIxNWRiYmVhMmNmZTk1NTEwYmZk''@;'; + put 'put ''ZjIzY2JmNzk1MDFmZmY4MiJdLFsiZTRmM2ZiMDE3NmFmODVkNjVmZjk5ZmY5MTk4YzM2MDkxZjQ4ZTg2NTAzNjgxZTNlNjY4NmZkNTA1MzIzMWUxMSIsIjFlNjM2MzNhZDBlZjRmMWMxNjYxYTZkMGVhMDJiNzI4NmNjN2U3NGVjOTUxZDFjOTgyMmMzODU3NmZlYjczYmMiXSxbIjhjMDBmYTli''@;'; + put 'put ''MThlYmYzMzFlYjk2MTUzN2E0NWE0MjY2YzcwMzRmMmYwZDRlMWQwNzE2ZmI2ZWFlMjBlYWUyOWUiLCJlZmE0NzI2N2ZlYTUyMWExYTlkYzM0M2EzNzM2Yzk3NGMyZmFkYWZhODFlMzZjNTRlN2QyYTRjNjY3MDI0MTRiIl0sWyJlN2EyNmNlNjlkZDQ4MjlmM2UxMGNlYzBhOWU5OGVkMzE0M2Qw''@;'; + put 'put ''ODRmMzA4YjkyYzA5OTdmZGRmYzYwY2IzZTQxIiwiMmE3NThlMzAwZmE3OTg0YjQ3MWIwMDZhMWFhZmJiMThkMGE2YjJjMDQyMGU4M2UyMGU4YTk0MjFjZjJjZmQ1MSJdLFsiYjY0NTllMGVlMzY2MmVjOGQyMzU0MGMyMjNiY2JkYzU3MWNiY2I5NjdkNzk0MjRmM2NmMjllYjNkZTZiODBlZiIs''@;'; + put 'put ''IjY3Yzg3NmQwNmYzZTA2ZGUxZGFkZjE2ZTU2NjFkYjNjNGIzYWU2ZDQ4ZTM1YjJmZjMwYmYwYjYxYTcxYmE0NSJdLFsiZDY4YTgwYzgyODBiYjg0MDc5MzIzNGFhMTE4ZjA2MjMxZDZmMWZjNjdlNzNjNWE1ZGVkYTBmNWI0OTY5NDNlOCIsImRiOGJhOWZmZjRiNTg2ZDAwYzRiMWY5MTc3YjBl''@;'; + put 'put ''MjhiNWIwZTdiOGY3ODQ1Mjk1YTI5NGM4NDI2NmIxMzMxMjAiXSxbIjMyNGFlZDdkZjY1YzgwNDI1MmRjMDI3MDkwN2EzMGIwOTYxMmFlYjk3MzQ0OWNlYTQwOTU5ODBmYzI4ZDNkNWQiLCI2NDhhMzY1Nzc0YjYxZjJmZjEzMGMwYzM1YWVjMWY0ZjE5MjEzYjBjN2UzMzI4NDM5NjcyMjRhZjk2''@;'; + put 'put ''YWI3Yzg0Il0sWyI0ZGY5YzE0OTE5Y2RlNjFmNmQ1MWRmZGJlNWZlZTVkY2VlYzQxNDNiYThkMWNhODg4ZThiZDM3M2ZkMDU0Yzk2IiwiMzVlYzUxMDkyZDg3MjgwNTA5NzRjMjNhMWQ4NWQ0YjVkNTA2Y2RjMjg4NDkwMTkyZWJhYzA2Y2FkMTBkNWQiXSxbIjljMzkxOWE4NGE0NzQ4NzBmYWVk''@;'; + put 'put ''OGE5YzFjYzY2MDIxNTIzNDg5MDU0ZDdmMDMwOGNiZmM5OWM4YWMxZjk4Y2QiLCJkZGI4NGYwZjRhNGRkZDU3NTg0ZjA0NGJmMjYwZTY0MTkwNTMyNmY3NmM2NGM4ZTZiZTdlNWUwM2Q0ZmM1OTlkIl0sWyI2MDU3MTcwYjFkZDEyZmRmOGRlMDVmMjgxZDhlMDZiYjkxZTE0OTNhOGI5MWQ0Y2M1''@;'; + put 'put ''YTIxMzgyMTIwYTk1OWU1IiwiOWExYWYwYjI2YTZhNDgwN2FkZDlhMmRhZjcxZGYyNjI0NjUxNTJiYzNlZTI0YzY1ZTg5OWJlOTMyMzg1YTJhOCJdLFsiYTU3NmRmOGUyM2EwODQxMTQyMTQzOWE0NTE4ZGEzMTg4MGNlZjBmYmE3ZDRkZjEyYjFhNjk3M2VlY2I5NDI2NiIsIjQwYTZiZjIwZTc2''@;'; + put 'put ''NjQwYjJjOTJiOTdhZmU1OGNkODJjNDMyZTEwYTdmNTE0ZDlmM2VlOGJlMTFhZTFiMjhlYzgiXSxbIjc3NzhhNzhjMjhkZWMzZTMwYTA1ZmU5NjI5ZGU4YzM4YmIzMGQxZjVjZjlhM2EyMDhmNzYzODg5YmU1OGFkNzEiLCIzNDYyNmQ5YWI1YTViMjJmZjcwOThlMTJmMmZmNTgwMDg3YjM4NDEx''@;'; + put 'put ''ZmYyNGFjNTYzYjUxM2ZjMWZkOWY0M2FjIl0sWyI5Mjg5NTVlZTYzN2E4NDQ2MzcyOWZkMzBlN2FmZDJlZDVmOTYyNzRlNWFkN2U1Y2IwOWVkYTljMDZkOTAzYWMiLCJjMjU2MjEwMDNkM2Y0MmE4MjdiNzhhMTMwOTNhOTVlZWFjM2QyNmVmYThhOGQ4M2ZjNTE4MGU5MzViY2QwOTFmIl0sWyI4''@;'; + put 'put ''NWQwZmVmM2VjNmRiMTA5Mzk5MDY0ZjNhMGUzYjI4NTU2NDViNGE5MDdhZDM1NDUyN2FhZTc1MTYzZDgyNzUxIiwiMWYwMzY0ODQxM2EzOGMwYmUyOWQ0OTZlNTgyY2Y1NjYzZTg3NTFlOTY4NzczMzE1ODJjMjM3YTI0ZWIxZjk2MiJdLFsiZmYyYjBkY2U5N2VlY2U5N2MxYzliNjA0MTc5OGI4''@;'; + put 'put ''NWRmZGZiNmQ4ODgyZGEyMDMwOGY1NDA0ODI0NTI2MDg3ZSIsIjQ5M2QxM2ZlZjUyNGJhMTg4YWY0YzRkYzU0ZDA3OTM2YzdiN2VkNmZiOTBlMmNlYjJjOTUxZTAxZjBjMjk5MDciXSxbIjgyN2ZiYmU0YjFlODgwZWE5ZWQyYjJlNjMwMWIyMTJiNTdmMWVlMTQ4Y2Q2ZGQyODc4MGU1ZTJjZjg1''@;'; + put 'put ''NmUyNDEiLCJjNjBmOWM5MjNjNzI3YjBiNzFiZWYyYzY3ZDFkMTI2ODdmZjdhNjMxODY5MDMxNjZkNjA1YjY4YmFlYzI5M2VjIl0sWyJlYWE2NDlmMjFmNTFiZGJhZTdiZTRhZTM0Y2U2ZTUyMTdhNThmZGNlN2Y0N2Y5YWE3ZjNiNThmYTIxMjBlMmIzIiwiYmUzMjc5ZWQ1YmJiYjAzYWM2OWE4''@;'; + put 'put ''MGY4OTg3OWFhNWEwMWE2Yjk2NWYxM2Y3ZTU5ZDQ3YTUzMDViYTVhZDkzZCJdLFsiZTRhNDJkNDNjNWNmMTY5ZDkzOTFkZjZkZWNmNDJlZTU0MWI2ZDhmMGM5YTEzNzQwMWUyMzYzMmRkYTM0ZDI0ZiIsIjRkOWY5MmU3MTZkMWM3MzUyNmZjOTljY2ZiOGFkMzRjZTg4NmVlZGZhOGQ4ZTRmMTNh''@;'; + put 'put ''N2Y3MTMxZGViYTk0MTQiXSxbIjFlYzgwZmVmMzYwY2JkZDk1NDE2MGZhZGFiMzUyYjZiOTJiNTM1NzZhODhmZWE0OTQ3MTczYjlkNDMwMGJmMTkiLCJhZWVmZTkzNzU2YjUzNDBkMmYzYTQ5NThhN2FiYmY1ZTAxNDZlNzdmNjI5NWEwN2I2NzFjZGMxY2MxMDdjZWZkIl0sWyIxNDZhNzc4YzA0''@;'; + put 'put ''NjcwYzJmOTFiMDBhZjQ2ODBkZmE4YmNlMzQ5MDcxN2Q1OGJhODg5ZGRiNTkyODM2NjY0MmJlIiwiYjMxOGUwZWMzMzU0MDI4YWRkNjY5ODI3ZjlkNGIyODcwYWFhOTcxZDJmN2U1ZWQxZDBiMjk3NDgzZDgzZWZkMCJdLFsiZmE1MGMwZjYxZDIyZTVmMDdlM2FjZWJiMWFhMDdiMTI4ZDAwMTIy''@;'; + put 'put ''MDlhMjhiOTc3NmQ3NmE4NzkzMTgwZWVmOSIsIjZiODRjNjkyMjM5N2ViYTliNzJjZDI4NzIyODFhNjhhNWU2ODMyOTNhNTdhMjEzYjM4Y2Q4ZDdkM2Y0ZjI4MTEiXSxbImRhMWQ2MWQwY2E3MjFhMTFiMWE1YmY2YjdkODhlODQyMWEyODhhYjVkNWJiYTUyMjBlNTNkMzJiNWYwNjdlYzIiLCI4''@;'; + put 'put ''MTU3ZjU1YTdjOTkzMDZjNzljMDc2NjE2MWM5MWUyOTY2YTczODk5ZDI3OWI0OGE2NTVmYmEwZjFhZDgzNmYxIl0sWyJhOGUyODJmZjBjOTcwNjkwNzIxNWZmOThlOGZkNDE2NjE1MzExZGUwNDQ2ZjFlMDYyYTczYjA2MTBkMDY0ZTEzIiwiN2Y5NzM1NWI4ZGI4MWMwOWFiZmI3ZjNjNWIyNTE1''@;'; + put 'put ''ODg4YjY3OWEzZTUwZGQ2YmQ2Y2VmN2M3MzExMWY0Y2MwYyJdLFsiMTc0YTUzYjljOWEyODU4NzJkMzllNTZlNjkxM2NhYjE1ZDU5YjFmYTUxMjUwOGMwMjJmMzgyZGU4MzE5NDk3YyIsImNjYzlkYzM3YWJmYzljMTY1N2I0MTU1ZjJjNDdmOWU2NjQ2YjNhMWQ4Y2I5ODU0MzgzZGExM2FjMDc5''@;'; + put 'put ''YWZhNzMiXSxbIjk1OTM5Njk4MTk0Mzc4NWMzZDNlNTdlZGY1MDE4Y2RiZTAzOWU3MzBlNDkxOGIzZDg4NGZkZmYwOTQ3NWI3YmEiLCIyZTdlNTUyODg4YzMzMWRkOGJhMDM4NmE0YjljZDY4NDljNjUzZjY0Yzg3MDkzODVlOWI4YWJmODc1MjRmMmZkIl0sWyJkMmE2M2E1MGFlNDAxZTU2ZDY0''@;'; + put 'put ''NWExMTUzYjEwOWE4ZmNjYTBhNDNkNTYxZmJhMmRiYjUxMzQwYzlkODJiMTUxIiwiZTgyZDg2ZmI2NDQzZmNiNzU2NWFlZTU4YjI5NDgyMjBhNzBmNzUwYWY0ODRjYTUyZDQxNDIxNzRkY2Y4OTQwNSJdLFsiNjQ1ODdlMjMzNTQ3MWViODkwZWU3ODk2ZDdjZmRjODY2YmFjYmRiZDM4MzkzMTdi''@;'; + put 'put ''MzQzNmY5YjQ1NjE3ZTA3MyIsImQ5OWZjZGQ1YmY2OTAyZTJhZTk2ZGQ2NDQ3YzI5OWExODViOTBhMzkxMzNhZWFiMzU4Mjk5ZTVlOWZhZjY1ODkiXSxbIjg0ODFiZGUwZTRlNGQ4ODViM2E1NDZkM2U1NDlkZTA0MmYwYWE2Y2VhMjUwZTdmZDM1OGQ2Yzg2ZGQ0NWU0NTgiLCIzOGVlN2I4Y2Jh''@;'; + put 'put ''NTQwNGRkODRhMjViZjM5Y2VjYjJjYTkwMGE3OWM0MmIyNjJlNTU2ZDY0YjFiNTk3NzkwNTdlIl0sWyIxMzQ2NGE1N2E3ODEwMmFhNjJiNjk3OWFlODE3ZjQ2MzdmZmNmZWQzYzRiMWNlMzBiY2Q2MzAzZjZjYWY2NjZiIiwiNjliZTE1OTAwNDYxNDU4MGVmN2U0MzM0NTNjY2IwY2E0OGYzMDBh''@;'; + put 'put ''ODFkMDk0MmUxM2Y0OTVhOTA3ZjZlY2MyNyJdLFsiYmM0YTlkZjViNzEzZmUyZTlhZWY0MzBiY2MxZGM5N2EwY2Q5Y2NlZGUyZjI4NTg4Y2FkYTNhMGQyZDgzZjM2NiIsImQzYTgxY2E2ZTc4NWMwNjM4MzkzN2FkZjRiNzk4Y2FhNmU4YTlmYmZhNTQ3YjE2ZDc1OGQ2NjY1ODFmMzNjMSJdLFsi''@;'; + put 'put ''OGMyOGE5N2JmODI5OGJjMGQyM2Q4Yzc0OTQ1MmEzMmU2OTRiNjVlMzBhOTQ3MmEzOTU0YWIzMGZlNTMyNGNhYSIsIjQwYTMwNDYzYTMzMDUxOTMzNzhmZWRmMzFmN2NjMGViN2FlNzg0ZjA0NTFjYjk0NTllNzFkYzczY2JlZjk0ODIiXSxbIjhlYTk2NjYxMzk1MjdhOGMxZGQ5NGNlNGYwNzFm''@;'; + put 'put ''ZDIzYzhiMzUwYzVhNGJiMzM3NDhjNGJhMTExZmFjY2FlMCIsIjYyMGVmYWJiYzhlZTI3ODJlMjRlN2MwY2ZiOTVjNWQ3MzViNzgzYmU5Y2YwZjhlOTU1YWYzNGEzMGU2MmI5NDUiXSxbImRkMzYyNWZhZWY1YmEwNjA3NDY2OTcxNmJiZDM3ODhkODliZGRlODE1OTU5OTY4MDkyZjc2Y2M0ZWI5''@;'; + put 'put ''YTk3ODciLCI3YTE4OGZhMzUyMGUzMGQ0NjFkYTI1MDEwNDU3MzFjYTk0MTQ2MTk4Mjg4MzM5NTkzN2Y2OGQwMGM2NDRhNTczIl0sWyJmNzEwZDc5ZDllYjk2MjI5N2U0ZjYyMzJiNDBlOGY3ZmViMmJjNjM4MTQ2MTRkNjkyYzEyZGU3NTI0MDgyMjFlIiwiZWE5OGU2NzIzMmQzYjMyOTVkM2I1''@;'; + put 'put ''MzU1MzIxMTVjY2FjODYxMmM3MjE4NTE2MTc1MjZhZTQ3YTljNzdiZmM4MiJdXX0sbmFmOnt3bmQ6Nyxwb2ludHM6W1siZjkzMDhhMDE5MjU4YzMxMDQ5MzQ0Zjg1Zjg5ZDUyMjliNTMxYzg0NTgzNmY5OWIwODYwMWYxMTNiY2UwMzZmOSIsIjM4OGY3YjBmNjMyZGU4MTQwZmUzMzdlNjJhMzdm''@;'; + put 'put ''MzU2NjUwMGE5OTkzNGMyMjMxYjZjYjlmZDc1ODRiOGU2NzIiXSxbIjJmOGJkZTRkMWEwNzIwOTM1NWI0YTcyNTBhNWM1MTI4ZTg4Yjg0YmRkYzYxOWFiN2NiYThkNTY5YjI0MGVmZTQiLCJkOGFjMjIyNjM2ZTVlM2Q2ZDRkYmE5ZGRhNmM5YzQyNmY3ODgyNzFiYWIwZDY4NDBkY2E4N2QzYWE2''@;'; + put 'put ''YWM2MmQ2Il0sWyI1Y2JkZjA2NDZlNWRiNGVhYTM5OGYzNjVmMmVhN2EwZTNkNDE5YjdlMDMzMGUzOWNlOTJiZGRlZGNhYzRmOWJjIiwiNmFlYmNhNDBiYTI1NTk2MGEzMTc4ZDZkODYxYTU0ZGJhODEzZDBiODEzZmRlN2I1YTUwODI2MjgwODcyNjRkYSJdLFsiYWNkNDg0ZTJmMGM3ZjY1MzA5''@;'; + put 'put ''YWQxNzhhOWY1NTlhYmRlMDk3OTY5NzRjNTdlNzE0YzM1ZjExMGRmYzI3Y2NiZSIsImNjMzM4OTIxYjBhN2Q5ZmQ2NDM4MDk3MTc2M2I2MWU5YWRkODg4YTQzNzVmOGUwZjA1Y2MyNjJhYzY0ZjljMzciXSxbIjc3NGFlN2Y4NThhOTQxMWU1ZWY0MjQ2YjcwYzY1YWFjNTY0OTk4MGJlNWMxNzg5''@;'; + put 'put ''MWJiZWMxNzg5NWRhMDA4Y2IiLCJkOTg0YTAzMmViNmI1ZTE5MDI0M2RkNTZkN2I3YjM2NTM3MmRiMWUyZGZmOWQ2YTgzMDFkNzRjOWM5NTNjNjFiIl0sWyJmMjg3NzNjMmQ5NzUyODhiYzdkMWQyMDVjMzc0ODY1MWIwNzVmYmM2NjEwZTU4Y2RkZWVkZGY4ZjE5NDA1YWE4IiwiYWIwOTAyZThk''@;'; + put 'put ''ODgwYTg5NzU4MjEyZWI2NWNkYWY0NzNhMWEwNmRhNTIxZmE5MWYyOWI1Y2I1MmRiMDNlZDgxIl0sWyJkNzkyNGQ0ZjdkNDNlYTk2NWE0NjVhZTMwOTVmZjQxMTMxZTU5NDZmM2M4NWY3OWU0NGFkYmNmOGUyN2UwODBlIiwiNTgxZTI4NzJhODZjNzJhNjgzODQyZWMyMjhjYzZkZWZlYTQwYWYy''@;'; + put 'put ''YmQ4OTZkM2E1YzUwNGRjOWZmNmEyNmI1OCJdLFsiZGVmZGVhNGNkYjY3Nzc1MGE0MjBmZWU4MDdlYWNmMjFlYjk4OThhZTc5Yjk3Njg3NjZlNGZhYTA0YTJkNGEzNCIsIjQyMTFhYjA2OTQ2MzUxNjhlOTk3YjBlYWQyYTkzZGFlY2VkMWY0YTA0YTk1YzBmNmNmYjE5OWY2OWU1NmViNzciXSxb''@;'; + put 'put ''IjJiNGVhMGE3OTdhNDQzZDI5M2VmNWNmZjQ0NGY0OTc5ZjA2YWNmZWJkN2U4NmQyNzc0NzU2NTYxMzgzODViNmMiLCI4NWU4OWJjMDM3OTQ1ZDkzYjM0MzA4M2I1YTFjODYxMzFhMDFmNjBjNTAyNjk3NjNiNTcwYzg1NGU1YzA5YjdhIl0sWyIzNTJiYmY0YTRjZGQxMjU2NGY5M2ZhMzMyY2Uz''@;'; + put 'put ''MzMzMDFkOWFkNDAyNzFmODEwNzE4MTM0MGFlZjI1YmU1OWQ1IiwiMzIxZWI0MDc1MzQ4ZjUzNGQ1OWMxODI1OWRkYTNlMWY0YTFiM2IyZTcxYjEwMzljNjdiZDNkOGJjZjgxOTk4YyJdLFsiMmZhMjEwNGQ2YjM4ZDExYjAyMzAwMTA1NTk4NzkxMjRlNDJhYjhkZmVmZjVmZjI5ZGM5Y2RhZGQ0''@;'; + put 'put ''ZWNhY2MzZiIsIjJkZTEwNjgyOTVkZDg2NWI2NDU2OTMzNWJkNWRkODAxODFkNzBlY2ZjODgyNjQ4NDIzYmE3NmI1MzJiN2Q2NyJdLFsiOTI0ODI3OWIwOWI0ZDY4ZGFiMjFhOWIwNjZlZGRhODMyNjNjM2Q4NGUwOTU3MmUyNjljYTBjZDdmNTQ1MzcxNCIsIjczMDE2ZjdiZjIzNGFhZGU1ZDFh''@;'; + put 'put ''YTcxYmRlYTJiMWZmM2ZjMGRlMmE4ODc5MTJmZmU1NGEzMmNlOTdjYjM0MDIiXSxbImRhZWQ0ZjJiZTNhOGJmMjc4ZTcwMTMyZmIwYmViNzUyMmY1NzBlMTQ0YmY2MTVjMDdlOTk2ZDQ0M2RlZTg3MjkiLCJhNjlkY2U0YTdkNmM5OGU4ZDRhMWFjYTg3ZWY4ZDcwMDNmODNjMjMwZjNhZmE3MjZh''@;'; + put 'put ''YjQwZTUyMjkwYmUxYzU1Il0sWyJjNDRkMTJjNzA2NWQ4MTJlOGFjZjI4ZDdjYmIxOWY5MDExZWNkOWU5ZmRmMjgxYjBlNmEzYjVlODdkMjJlN2RiIiwiMjExOWE0NjBjZTMyNmNkYzc2YzQ1OTI2Yzk4MmZkYWMwZTEwNmU4NjFlZGY2MWM1YTAzOTA2M2YwZTBlNjQ4MiJdLFsiNmEyNDViZjZk''@;'; + put 'put ''YzY5ODUwNGM4OWEyMGNmZGVkNjA4NTMxNTJiNjk1MzM2YzI4MDYzYjYxYzY1Y2JkMjY5ZTZiNCIsImUwMjJjZjQyYzJiZDRhNzA4YjNmNTEyNmYxNmEyNGFkOGIzM2JhNDhkMDQyM2I2ZWZkNWU2MzQ4MTAwZDhhODIiXSxbIjE2OTdmZmE2ZmQ5ZGU2MjdjMDc3ZTNkMmZlNTQxMDg0Y2UxMzMw''@;'; + put 'put ''MGIwYmVjMTE0NmY5NWFlNTdmMGQwYmQ2YTUiLCJiOWMzOThmMTg2ODA2ZjVkMjc1NjE1MDZlNDU1NzQzM2EyY2YxNTAwOWU0OThhZTdhZGVlOWQ2M2QwMWIyMzk2Il0sWyI2MDViZGIwMTk5ODE3MThiOTg2ZDBmMDdlODM0Y2IwZDlkZWI4MzYwZmZiN2Y2MWRmOTgyMzQ1ZWYyN2E3NDc5Iiwi''@;'; + put 'put ''Mjk3MmQyZGU0ZjhkMjA2ODFhNzhkOTNlYzk2ZmUyM2MyNmJmYWU4NGZiMTRkYjQzYjAxZTFlOTA1NmI4YzQ5Il0sWyI2MmQxNGRhYjQxNTBiZjQ5NzQwMmZkYzQ1YTIxNWUxMGRjYjAxYzM1NDk1OWIxMGNmZTMxYzdlOWQ4N2ZmMzNkIiwiODBmYzA2YmQ4Y2M1YjAxMDk4MDg4YTE5NTBlZWQw''@;'; + put 'put ''ZGIwMWFhMTMyOTY3YWI0NzIyMzVmNTY0MjQ4M2IyNWVhZiJdLFsiODBjNjBhZDAwNDBmMjdkYWRlNWI0YjA2YzQwOGU1NmIyYzUwZTlmNTZiOWI4YjQyNWU1NTVjMmY4NjMwOGI2ZiIsIjFjMzgzMDNmMWNjNWMzMGYyNmU2NmJhZDdmZTcyZjcwYTY1ZWVkNGNiZTcwMjRlYjFhYTAxZjU2NDMw''@;'; + put 'put ''YmQ1N2EiXSxbIjdhOTM3NWFkNjE2N2FkNTRhYTc0YzYzNDhjYzU0ZDM0NGNjNWRjOTQ4N2Q4NDcwNDlkNWVhYmIwZmEwM2M4ZmIiLCJkMGUzZmE5ZWNhODcyNjkwOTU1OWUwZDc5MjY5MDQ2YmRjNTllYTEwYzcwY2UyYjAyZDQ5OWVjMjI0ZGM3ZjciXSxbImQ1MjhlY2Q5YjY5NmI1NGM5MDdh''@;'; + put 'put ''OWVkMDQ1NDQ3YTc5YmI0MDhlYzM5YjY4ZGY1MDRiYjUxZjQ1OWJjM2ZmYzkiLCJlZWNmNDEyNTMxMzZlNWY5OTk2NmYyMTg4MWZkNjU2ZWJjNDM0NTQwNWM1MjBkYmMwNjM0NjViNTIxNDA5OTMzIl0sWyI0OTM3MGE0YjVmNDM0MTJlYTI1ZjUxNGU4ZWNkYWQwNTI2NjExNWU0YTdlY2IxMzg3''@;'; + put 'put ''MjMxODA4ZjhiNDU5NjMiLCI3NThmM2Y0MWFmZDZlZDQyOGIzMDgxYjA1MTJmZDYyYTU0YzNmM2FmYmI1YjY3NjRiNjUzMDUyYTEyOTQ5YzlhIl0sWyI3N2YyMzA5MzZlZTg4Y2JiZDczZGY5MzBkNjQ3MDJlZjg4MWQ4MTFlMGUxNDk4ZTJmMWMxM2ViMWZjMzQ1ZDc0IiwiOTU4ZWY0MmE3ODg2''@;'; + put 'put ''YjY0MDBhMDgyNjZlOWJhMWIzNzg5NmM5NTMzMGQ5NzA3N2NiYmU4ZWIzYzc2NzFjNjBkNiJdLFsiZjJkYWM5OTFjYzRjZTRiOWVhNDQ4ODdlNWM3YzBiY2U1OGM4MDA3NGFiOWQ0ZGJhZWIyODUzMWI3NzM5ZjUzMCIsImUwZGVkYzliM2IyZjhkYWQ0ZGExZjMyZGVjMjUzMWRmOWViNWZiZWIw''@;'; + put 'put ''NTk4ZTRmZDFhMTE3ZGJhNzAzYTNjMzciXSxbIjQ2M2IzZDlmNjYyNjIxZmIxYjRiZThmYmJlMjUyMDEyNWEyMTZjZGZjOWRhZTNkZWJjYmE0ODUwYzY5MGQ0NWIiLCI1ZWQ0MzBkNzhjMjk2YzM1NDMxMTQzMDZkZDg2MjJkN2M2MjJlMjdjOTcwYTFkZTMxY2IzNzdiMDFhZjczMDdlIl0sWyJm''@;'; + put 'put ''MTZmODA0MjQ0ZTQ2ZTJhMDkyMzJkNGFmZjNiNTk5NzZiOThmYWMxNDMyOGEyZDFhMzI0OTZiNDk5OThmMjQ3IiwiY2VkYWJkOWI4MjIwM2Y3ZTEzZDIwNmZjZGY0ZTMzZDkyYTZjNTNjMjZlNWNjZTI2ZDY1Nzk5NjJjNGUzMWRmNiJdLFsiY2FmNzU0MjcyZGM4NDU2M2IwMzUyYjdhMTQzMTFh''@;'; + put 'put ''ZjU1ZDI0NTMxNWFjZTI3YzY1MzY5ZTE1ZjcxNTFkNDFkMSIsImNiNDc0NjYwZWYzNWY1ZjJhNDFiNjQzZmE1ZTQ2MDU3NWY0ZmE5Yjc5NjIyMzJhNWMzMmY5MDgzMThhMDQ0NzYiXSxbIjI2MDBjYTRiMjgyY2I5ODZmODVkMGYxNzA5OTc5ZDhiNDRhMDljMDdjYjg2ZDdjMTI0NDk3YmM4NmYw''@;'; + put 'put ''ODIxMjAiLCI0MTE5Yjg4NzUzYzE1YmQ2YTY5M2IwM2ZjZGRiYjQ1ZDVhYzZiZTc0YWI1ZjBlZjQ0YjBiZTk0NzVhN2U0YjQwIl0sWyI3NjM1Y2E3MmQ3ZTg0MzJjMzM4ZWM1M2NkMTIyMjBiYzAxYzQ4Njg1ZTI0ZjdkYzhjNjAyYTc3NDY5OThlNDM1IiwiOTFiNjQ5NjA5NDg5ZDYxM2QxZDVl''@;'; + put 'put ''NTkwZjc4ZTZkNzRlY2ZjMDYxZDU3MDQ4YmFkOWU3NmYzMDJjNWI5YzYxIl0sWyI3NTRlMzIzOWYzMjU1NzBjZGJiZjRhODdkZWVlOGE2NmI3ZjJiMzM0NzlkNDY4ZmJjMWE1MDc0M2JmNTZjYzE4IiwiNjczZmI4NmU1YmRhMzBmYjNjZDBlZDMwNGVhNDlhMDIzZWUzM2QwMTk3YTY5NWQwYzVk''@;'; + put 'put ''OTgwOTNjNTM2NjgzIl0sWyJlM2U2YmQxMDcxYTFlOTZhZmY1Nzg1OWM4MmQ1NzBmMDMzMDgwMDY2MWQxYzk1MmY5ZmUyNjk0NjkxZDliOWU4IiwiNTljOWUwYmJhMzk0ZTc2ZjQwYzBhYTU4Mzc5YTNjYjZhNWEyMjgzOTkzZTkwYzQxNjcwMDJhZjQ5MjBlMzdmNSJdLFsiMTg2YjQ4M2QwNTZh''@;'; + put 'put ''MDMzODI2YWU3M2Q4OGY3MzI5ODVjNGNjYjFmMzJiYTM1ZjRiNGNjNDdmZGNmMDRhYTZlYiIsIjNiOTUyZDMyYzY3Y2Y3N2UyZTE3NDQ2ZTIwNDE4MGFiMjFmYjgwOTA4OTUxMzhiNGE0YTc5N2Y4NmU4MDg4OGIiXSxbImRmOWQ3MGE2Yjk4NzZjZTU0NGM5ODU2MWY0YmU0ZjcyNTQ0MmU2ZDJi''@;'; + put 'put ''NzM3ZDljOTFhODMyMTcyNGNlMDk2M2YiLCI1NWViMmRhZmQ4NGQ2Y2NkNWY4NjJiNzg1ZGMzOWQ0YWIxNTcyMjI3MjBlZjlkYTIxN2I4YzQ1Y2YyYmEyNDE3Il0sWyI1ZWRkNWNjMjNjNTFlODdhNDk3Y2E4MTVkNWRjZTBmOGFiNTI1NTRmODQ5ZWQ4OTk1ZGU2NGM1ZjM0Y2U3MTQzIiwiZWZh''@;'; + put 'put ''ZTljOGRiYzE0MTMwNjYxZThjZWMwMzBjODlhZDBjMTNjNjZjMGQxN2EyOTA1Y2RjNzA2YWI3Mzk5YTg2OCJdLFsiMjkwNzk4YzJiNjQ3NjgzMGRhMTJmZTAyMjg3ZTllNzc3YWEzZmJhMWMzNTViMTdhNzIyZDM2MmY4NDYxNGZiYSIsImUzOGRhNzZkY2Q0NDA2MjE5ODhkMDBiY2Y3OWFmMjVk''@;'; + put 'put ''NWIyOWMwOTRkYjJhMjMxNDZkMDAzYWZkNDE5NDNlN2EiXSxbImFmM2M0MjNhOTVkOWY1YjMwNTQ3NTRlZmExNTBhYzM5Y2QyOTU1MmZlMzYwMjU3MzYyZGZkZWNlZjQwNTNiNDUiLCJmOThhM2ZkODMxZWIyYjc0OWE5M2IwZTZmMzVjZmI0MGM4Y2Q1YWE2NjdhMTU1ODFiYzJmZWRlZDQ5OGZk''@;'; + put 'put ''OWM2Il0sWyI3NjZkYmIyNGQxMzRlNzQ1Y2NjYWEyOGM5OWJmMjc0OTA2YmI2NmIyNmRjZjk4ZGY4ZDJmZWQ1MGQ4ODQyNDlhIiwiNzQ0YjExNTJlYWNiZTVlMzhkY2M4ODc5ODBkYTM4Yjg5NzU4NGE2NWZhMDZjZWRkMmM5MjRmOTdjYmFjNTk5NiJdLFsiNTlkYmY0NmY4Yzk0NzU5YmEyMTI3''@;'; + put 'put ''N2MzMzc4NGY0MTY0NWY3YjQ0ZjZjNTk2YTU4Y2U5MmU2NjYxOTFhYmUzZSIsImM1MzRhZDQ0MTc1ZmJjMzAwZjRlYTZjZTY0ODMwOWEwNDJjZTczOWE3OTE5Nzk4Y2Q4NWUyMTZjNGEzMDdmNmUiXSxbImYxM2FkYTk1MTAzYzQ1MzczMDVlNjkxZTc0ZTlhNGE4ZGQ2NDdlNzExYTk1ZTczY2I2''@;'; + put 'put ''MmRjNjAxOGNmZDg3YjgiLCJlMTM4MTdiNDRlZTE0ZGU2NjNiZjRiYzgwODM0MWYzMjY5NDllMjFhNmE3NWMyNTcwNzc4NDE5YmRhZjU3MzNkIl0sWyI3NzU0YjRmYTBlOGFjZWQwNmQ0MTY3YTJjNTljY2E0Y2RhMTg2OWMwNmViYWRmYjY0ODg1NTAwMTVhODg1MjJjIiwiMzBlOTNlODY0ZTY2''@;'; + put 'put ''OWQ4MjIyNGI5NjdjMzAyMGI4ZmE4ZDFlNGUzNTBiNmNiY2M1MzdhNDhiNTc4NDExNjNhMiJdLFsiOTQ4ZGNhZGY1OTkwZTA0OGFhMzg3NGQ0NmFiZWY5ZDcwMTg1OGY5NWRlODA0MWQyYTY4MjhjOTllMjI2MjUxOSIsImU0OTFhNDI1MzdmNmU1OTdkNWQyOGEzMjI0YjFiYzI1ZGY5MTU0ZWZi''@;'; + put 'put ''ZDJlZjFkMmNiYmEyY2FlNTM0N2Q1N2UiXSxbIjc5NjI0MTQ0NTBjNzZjMTY4OWM3YjQ4ZjgyMDJlYzM3ZmIyMjRjZjVhYzBiZmExNTcwMzI4YThhM2Q3Yzc3YWIiLCIxMDBiNjEwZWM0ZmZiNDc2MGQ1YzFmYzEzM2VmNmY2YjEyNTA3YTA1MWYwNGFjNTc2MGFmYTViMjlkYjgzNDM3Il0sWyIz''@;'; + put 'put ''NTE0MDg3ODM0OTY0YjU0YjE1YjE2MDY0NGQ5MTU0ODVhMTY5NzcyMjViODg0N2JiMGRkMDg1MTM3ZWM0N2NhIiwiZWYwYWZiYjIwNTYyMDU0NDhlMTY1MmM0OGU4MTI3ZmM2MDM5ZTc3YzE1YzIzNzhiN2U3ZDE1YTBkZTI5MzMxMSJdLFsiZDNjYzMwYWQ2YjQ4M2U0YmM3OWNlMmM5ZGQ4YmM1''@;'; + put 'put ''NDk5M2U5NDdlYjhkZjc4N2I0NDI5NDNkM2Y3YjUyN2VhZiIsIjhiMzc4YTIyZDgyNzI3OGQ4OWM1ZTliZThmOTUwOGFlM2MyYWQ0NjI5MDM1ODYzMGFmYjM0ZGIwNGVlZGUwYTQiXSxbIjE2MjRkODQ3ODA3MzI4NjBjZTFjNzhmY2JmZWZlMDhiMmIyOTgyM2RiOTEzZjY0OTM5NzViYTBmZjQ4''@;'; + put 'put ''NDc2MTAiLCI2ODY1MWNmOWI2ZGE5MDNlMDkxNDQ0OGM2Y2Q5ZDRjYTg5Njg3OGY1MjgyYmU0YzhjYzA2ZTJhNDA0MDc4NTc1Il0sWyI3MzNjZTgwZGE5NTVhOGEyNjkwMmM5NTYzM2U2MmE5ODUxOTI0NzRiNWFmMjA3ZGE2ZGY3YjRmZDVmYzYxY2Q0IiwiZjU0MzVhMmJkMmJhZGY3ZDQ4NWE0''@;'; + put 'put ''ZDhiOGRiOWZjY2UzZTFlZjhlMDIwMWU0NTc4YzU0NjczYmMxZGM1ZWExZCJdLFsiMTVkOTQ0MTI1NDk0NTA2NGNmMWExYzMzYmJkM2I0OWY4OTY2YzUwOTIxNzFlNjk5ZWYyNThkZmFiODFjMDQ1YyIsImQ1NmViMzBiNjk0NjNlNzIzNGY1MTM3YjczYjg0MTc3NDM0ODAwYmFjZWJmYzY4NWZj''@;'; + put 'put ''MzdiYmU5ZWZlNDA3MGQiXSxbImExZDBmY2YyZWM5ZGU2NzViNjEyMTM2ZTVjZTcwZDI3MWMyMTQxN2M5ZDJiOGFhYWFjMTM4NTk5ZDA3MTc5NDAiLCJlZGQ3N2Y1MGJjYjVhM2NhYjJlOTA3MzczMDk2NjdmMjY0MTQ2MmE1NDA3MGYzZDUxOTIxMmQzOWMxOTdhNjI5Il0sWyJlMjJmYmUxNWMw''@;'; + put 'put ''YWY4Y2NjNTc4MGMwNzM1Zjg0ZGJlOWE3OTBiYWRlZTgyNDVjMDZjN2NhMzczMzFjYjM2OTgwIiwiYTg1NWJhYmFkNWNkNjBjODhiNDMwYTY5ZjUzYTFhN2EzODI4OTE1NDk2NDc5OWJlNDNkMDZkNzdkMzFkYTA2Il0sWyIzMTEwOTFkZDk4NjBlOGUyMGVlMTM0NzNjMTE1NWY1ZjY5NjM1ZTM5''@;'; + put 'put ''NDcwNGVhYTc0MDA5NDUyMjQ2Y2ZhOWIzIiwiNjZkYjY1NmY4N2QxZjA0ZmZmZDFmMDQ3ODhjMDY4MzA4NzFlYzVhNjRmZWVlNjg1YmQ4MGYwYjEyODZkODM3NCJdLFsiMzRjMWZkMDRkMzAxYmU4OWIzMWMwNDQyZDNlNmFjMjQ4ODM5MjhiNDVhOTM0MDc4MTg2N2Q0MjMyZWMyZGJkZiIsIjk0''@;'; + put 'put ''MTQ2ODVlOTdiMWI1OTU0YmQ0NmY3MzAxNzQxMzZkNTdmMWNlZWI0ODc0NDNkYzUzMjE4NTdiYTczYWJlZSJdLFsiZjIxOWVhNWQ2YjU0NzAxYzFjMTRkZTViNTU3ZWI0MmE4ZDEzZjNhYmJjZDA4YWZmY2MyYTVlNmIwNDliOGQ2MyIsIjRjYjk1OTU3ZTgzZDQwYjBmNzNhZjQ1NDRjY2NmNmIx''@;'; + put 'put ''ZjRiMDhkM2MwN2IyN2ZiOGQ4YzI5NjJhNDAwNzY2ZDEiXSxbImQ3Yjg3NDBmNzRhOGZiYWFiMWY2ODNkYjhmNDVkZTI2NTQzYTU0OTBiY2E2MjcwODcyMzY5MTI0NjlhMGI0NDgiLCJmYTc3OTY4MTI4ZDljOTJlZTEwMTBmMzM3YWQ0NzE3ZWZmMTVkYjVlZDNjMDQ5YjM0MTFlMDMxNWVhYTQ1''@;'; + put 'put ''OTNiIl0sWyIzMmQzMWMyMjJmOGY2ZjBlZjg2ZjdjOThkM2EzMzM1ZWFkNWJjZDMyYWJkZDk0Mjg5ZmU0ZDMwOTFhYTgyNGJmIiwiNWYzMDMyZjU4OTIxNTZlMzljY2QzZDc5MTViOWUxZGEyZTZkYWM5ZTZmMjZlOTYxMTE4ZDE0Yjg0NjJlMTY2MSJdLFsiNzQ2MWYzNzE5MTRhYjMyNjcxMDQ1''@;'; + put 'put ''YTE1NWQ5ODMxZWE4NzkzZDc3Y2Q1OTU5MmM0MzQwZjg2Y2JjMTgzNDdiNSIsIjhlYzBiYTIzOGI5NmJlYzBjYmRkZGNhZTBhYTQ0MjU0MmVlZTFmZjUwYzk4NmVhNmIzOTg0N2IzY2MwOTJmZjYiXSxbImVlMDc5YWRiMWRmMTg2MDA3NDM1NmEyNWFhMzgyMDZhNmQ3MTZiMmMzZTY3NDUzZDI4''@;'; + put 'put ''NzY5OGJhZDdiMmIyZDYiLCI4ZGMyNDEyYWFmZTNiZTVjNGM1ZjM3ZTBlY2M1ZjlmNmE0NDY5ODlhZjA0YzRlMjVlYmFhYzQ3OWVjMWM4YzFlIl0sWyIxNmVjOTNlNDQ3ZWM4M2YwNDY3YjE4MzAyZWU2MjBmN2U2NWRlMzMxODc0YzlkYzcyYmZkODYxNmJhOWRhNmI1IiwiNWU0NjMxMTUwZTYy''@;'; + put 'put ''ZmI0MGQwZThjMmE3Y2E1ODA0YTM5ZDU4MTg2YTUwZTQ5NzEzOTYyNjc3OGUyNWIwNjc0ZCJdLFsiZWFhNWY5ODBjMjQ1ZjZmMDM4OTc4MjkwYWZhNzBiNmJkODg1NTg5N2Y5OGI2YWE0ODViOTYwNjVkNTM3YmQ5OSIsImY2NWY1ZDNlMjkyYzJlMDgxOWE1MjgzOTFjOTk0NjI0ZDc4NDg2OWQ3''@;'; + put 'put ''ZTZlYTY3ZmIxODA0MTAyNGVkYzA3ZGMiXSxbIjc4Yzk0MDc1NDRhYzEzMjY5MmVlMTkxMGEwMjQzOTk1OGFlMDQ4NzcxNTEzNDJlYTk2YzRiNmIzNWE0OWY1MSIsImYzZTAzMTkxNjllYjliODVkNTQwNDc5NTUzOWE1ZTY4ZmExZmJkNTgzYzA2NGQyNDYyYjY3NWYxOTRhM2RkYjQiXSxbIjQ5''@;'; + put 'put ''NGY0YmUyMTlhMWE3NzAxNmRjZDgzODQzMWFlYTAwMDFjZGM4YWU3YTZmYzY4ODcyNjU3OGQ5NzAyODU3YTUiLCI0MjI0MmE5NjkyODNhNWYzMzliYTdmMDc1ZTM2YmEyYWY5MjVjZTMwZDc2N2VkNmU1NWY0YjAzMTg4MGQ1NjJjIl0sWyJhNTk4YTgwMzBkYTZkODZjNmJjN2YyZjUxNDRlYTU0''@;'; + put 'put ''OWQyODIxMWVhNThmYWE3MGViZjRjMWU2NjVjMWZlOWI1IiwiMjA0YjVkNmY4NDgyMmMzMDdlNGI0YTcxNDA3MzdhZWMyM2ZjNjNiNjViMzVmODZhMTAwMjZkYmQyZDg2NGU2YiJdLFsiYzQxOTE2MzY1YWJiMmI1ZDA5MTkyZjVmMmRiZWFmZWMyMDhmMDIwZjEyNTcwYTE4NGRiYWRjM2U1ODU5''@;'; + put 'put ''NTk5NyIsIjRmMTQzNTFkMDA4N2VmYTQ5ZDI0NWIzMjg5ODQ5ODlkNWNhZjk0NTBmMzRiZmMwZWQxNmU5NmI1OGZhOTkxMyJdLFsiODQxZDYwNjNhNTg2ZmE0NzVhNzI0NjA0ZGEwM2JjNWI5MmEyZTBkMmUwYTM2YWNmZTRjNzNhNTUxNDc0Mjg4MSIsIjczODY3ZjU5YzA2NTllODE5MDRmOWEx''@;'; + put 'put ''Yzc1NDM2OThlNjI1NjJkNjc0NGMxNjljZTdhMzZkZTAxYThkNjE1NCJdLFsiNWU5NWJiMzk5YTY5NzFkMzc2MDI2OTQ3Zjg5YmRlMmYyODJiMzM4MTA5MjhiZTRkZWQxMTJhYzRkNzBlMjBkNSIsIjM5ZjIzZjM2NjgwOTA4NWJlZWJmYzcxMTgxMzEzNzc1YTk5YzlhZWQ3ZDhiYTM4YjE2MTM4''@;'; + put 'put ''NGM3NDYwMTI4NjUiXSxbIjM2ZTQ2NDFhNTM5NDhmZDQ3NmMzOWY4YTk5ZmQ5NzRlNWVjMDc1NjRiNTMxNWQ4YmY5OTQ3MWJjYTBlZjJmNjYiLCJkMjQyNGIxYjFhYmU0ZWI4MTY0MjI3YjA4NWM5YWE5NDU2ZWExMzQ5M2ZkNTYzZTA2ZmQ1MWNmNTY5NGM3OGZjIl0sWyIzMzY1ODFlYTdiZmJi''@;'; + put 'put ''YjI5MGMxOTFhMmY1MDdhNDFjZjU2NDM4NDIxNzBlOTE0ZmFlYWIyN2MyYzU3OWY3MjYiLCJlYWQxMjE2ODU5NWZlMWJlOTkyNTIxMjliNmU1NmIzMzkxZjdhYjE0MTBjZDFlMGVmM2RjZGNhYmQyZmRhMjI0Il0sWyI4YWI4OTgxNmRhZGZkNmI2YTFmMjYzNGZjZjAwZWM4NDAzNzgxMDI1ZWQ2''@;'; + put 'put ''ODkwYzQ4NDk3NDI3MDZiZDQzZWRlIiwiNmZkY2VmMDlmMmY2ZDBhMDQ0ZTY1NGFlZjYyNDEzNmY1MDNkNDU5YzNlODk4NDU4NThhNDdhOTEyOWNkZDI0ZSJdLFsiMWUzM2YxYTc0NmM5YzU3NzgxMzMzNDRkOTI5OWZjYWEyMGIwOTM4ZThhY2ZmMjU0NGJiNDAyODRiOGM1ZmI5NCIsIjYwNjYw''@;'; + put 'put ''MjU3ZGQxMWIzYWE5YzhlZDYxOGQyNGVkZmYyMzA2ZDMyMGYxZDAzMDEwZTMzYTdkMjA1N2YzYjNiNiJdLFsiODViN2MxZGNiM2NlYzFiN2VlN2YzMGRlZDc5ZGQyMGEwZWQxZjRjYzE4Y2JjZmNmYTQxMDM2MWZkOGYwOGYzMSIsIjNkOThhOWNkZDAyNmRkNDNmMzkwNDhmMjVhODg0N2Y0ZmNh''@;'; + put 'put ''ZmFkMTg5NWQ3YTYzM2M2ZmVkM2MzNWU5OTk1MTEiXSxbIjI5ZGY5ZmJkOGQ5ZTQ2NTA5Mjc1ZjRiMTI1ZDZkNDVkN2ZiZTlhM2I4NzhhN2FmODcyYTI4MDA2NjFhYzVmNTEiLCJiNGM0ZmU5OWM3NzVhNjA2ZTJkODg2MjE3OTEzOWZmZGE2MWRjODYxYzAxOWU1NWNkMjg3NmViMmEyN2Q4NGIi''@;'; + put 'put ''XSxbImEwYjFjYWUwNmIwYTg0N2EzZmVhNmU2NzFhYWY4YWRmZGZlNThjYTJmNzY4MTA1YzgwODJiMmU0NDlmY2UyNTIiLCJhZTQzNDEwMmVkZGUwOTU4ZWM0YjE5ZDkxN2E2YTI4ZTZiNzJkYTE4MzRhZmYwZTY1MGYwNDk1MDNhMjk2Y2YyIl0sWyI0ZThjZWFmYjliM2U5YTEzNmRjN2ZmNjdl''@;'; + put 'put ''ODQwMjk1YjQ5OWRmYjNiMjEzM2U0YmExMTNmMmU0YzBlMTIxZTUiLCJjZjIxNzQxMThjOGI2ZDdhNGI0OGY2ZDUzNGNlNWM3OTQyMmMwODZhNjM0NjA1MDJiODI3Y2U2MmEzMjY2ODNjIl0sWyJkMjRhNDRlMDQ3ZTE5YjZmNWFmYjgxYzdjYTJmNjkwODBhNTA3NjY4OWEwMTA5MTlmNDI3MjVj''@;'; + put 'put ''MmI3ODlhMzNiIiwiNmZiOGQ1NTkxYjQ2NmY4ZmM2M2RiNTBmMWMwZjFjNjkwMTNmOTk2ODg3YjgyNDRkMmNkZWM0MTdhZmVhOGZhMyJdLFsiZWEwMTYwNmE3YTZjOWNkZDI0OWZkZmNmYWNiOTk1ODQwMDFlZGQyOGFiYmFiNzdiNTEwNGU5OGU4ZTNiMzVkNCIsIjMyMmFmNDkwOGM3MzEyYjBj''@;'; + put 'put ''ZmJmZTM2OWY3YTdiM2NkYjdkNDQ5NGJjMjgyMzcwMGNmZDY1MjE4OGEzZWE5OGQiXSxbImFmOGFkZGJmMmI2NjFjOGE2YzYzMjg2NTVlYjk2NjUxMjUyMDA3ZDhjNWVhMzFiZTRhZDE5NmRlOGNlMjEzMWYiLCI2NzQ5ZTY3YzAyOWI4NWY1MmEwMzRlYWZkMDk2ODM2YjI1MjA4MTg2ODBlMjZh''@;'; + put 'put ''YzhmM2RmYmNkYjcxNzQ5NzAwIl0sWyJlM2FlMTk3NDU2NmNhMDZjYzUxNmQ0N2UwZmIxNjVhNjc0YTNkYWJjZmNhMTVlNzIyZjBlMzQ1MGY0NTg4OSIsIjJhZWFiZTdlNDUzMTUxMDExNjIxN2YwN2JmNGQwNzMwMGRlOTdlNDg3NGY4MWY1MzM0MjBhNzJlZWIwYmQ2YTQiXSxbIjU5MWVlMzU1''@;'; + put 'put ''MzEzZDk5NzIxY2Y2OTkzZmZlZDFlM2UzMDE5OTNmZjNlZDI1ODgwMjA3NWVhOGNlZDM5N2UyNDYiLCJiMGVhNTU4YTExM2MzMGJlYTYwZmM0Nzc1NDYwYzc5MDFmZjBiMDUzZDI1Y2EyYmRlZWU5OGYxYTRiZTVkMTk2Il0sWyIxMTM5NmQ1NWZkYTU0YzQ5ZjE5YWE5NzMxOGQ4ZGE2MWZhODU4''@;'; + put 'put ''NGU0N2IwODQ5NDUwNzdjZjAzMjU1YjUyOTg0IiwiOTk4Yzc0YThjZDQ1YWMwMTI4OWQ1ODMzYTdiZWI0NzQ0ZmY1MzZiMDFiMjU3YmU0YzU3NjdiZWE5M2VhNTdhNCJdLFsiM2M1ZDJhMWJhMzljNWExNzkwMDAwNzM4YzllMGM0MGI4ZGNkZmQ1NDY4NzU0YjY0MDU1NDAxNTdlMDE3YWE3YSIs''@;'; + put 'put ''ImIyMjg0Mjc5OTk1YTM0ZTJmOWQ0ZGU3Mzk2ZmMxOGI4MGY5YjhiOWZkZDI3MGY2NjYxZjc5Y2E0YzgxYmQyNTciXSxbImNjODcwNGI4YTYwYTBkZWZhM2E5OWE3Mjk5ZjJlOWMzZmJjMzk1YWZiMDRhYzA3ODQyNWVmOGExNzkzY2MwMzAiLCJiZGQ0NjAzOWZlZWQxNzg4MWQxZTA4NjJkYjM0''@;'; + put 'put ''N2Y4Y2YzOTViNzRmYzRiY2RjNGU5NDBiNzRlM2FjMWYxYjEzIl0sWyJjNTMzZTRmN2VhODU1NWFhY2Q5Nzc3YWM1Y2FkMjliOTdkZDRkZWZjY2M1M2VlN2VhMjA0MTE5YjI4ODliMTk3IiwiNmYwYTI1NmJjNWVmZGY0MjlhMmZiNjI0MmYxYTQzYTJkOWI5MjViYjRhNGIzYTI2YmI4ZTBmNDVl''@;'; + put 'put ''YjU5NjA5NiJdLFsiYzE0ZjhmMmNjYjI3ZDZmMTA5ZjZkMDhkMDNjYzk2YTY5YmE4YzM0ZWVjMDdiYmNmNTY2ZDQ4ZTMzZGE2NTkzIiwiYzM1OWQ2OTIzYmIzOThmN2ZkNDQ3M2UxNmZlMWMyODQ3NWI3NDBkZDA5ODA3NWU2YzBlODY0OTExM2RjM2EzOCJdLFsiYTZjYmMzMDQ2YmM2YTQ1MGJh''@;'; + put 'put ''YzI0Nzg5ZmExNzExNWE0Yzk3MzllZDc1ZjhmMjFjZTQ0MWY3MmUwYjkwZTZlZiIsIjIxYWU3ZjQ2ODBlODg5YmIxMzA2MTllMmMwZjk1YTM2MGNlYjU3M2M3MDYwMzEzOTg2MmFmZDYxN2ZhOWI5ZiJdLFsiMzQ3ZDZkOWEwMmM0ODkyN2ViZmI4NmMxMzU5YjFjYWYxMzBhM2MwMjY3ZDExY2U2''@;'; + put 'put ''MzQ0YjM5Zjk5ZDQzY2MzOCIsIjYwZWE3ZjYxYTM1MzUyNGQxYzk4N2Y2ZWNlYzkyZjA4NmQ1NjVhYjY4Nzg3MGNiMTI2ODlmZjFlMzFjNzQ0NDgiXSxbImRhNjU0NWQyMTgxZGI4ZDk4M2Y3ZGNiMzc1ZWY1ODY2ZDQ3YzY3YjFiZjMxYzhjZjg1NWVmNzQzN2I3MjY1NmEiLCI0OWI5NjcxNWFi''@;'; + put 'put ''Njg3OGE3OWU3OGYwN2NlNTY4MGM1ZDY2NzMwNTFiNDkzNWJkODk3ZmVhODI0Yjc3ZGMyMDhhIl0sWyJjNDA3NDdjYzlkMDEyY2IxYTEzYjgxNDgzMDljNmRlN2VjMjVkNjk0NWQ2NTcxNDZiOWQ1OTk0YjhmZWIxMTExIiwiNWNhNTYwNzUzYmUyYTEyZmM2ZGU2Y2FmMmNiNDg5NTY1ZGI5MzYx''@;'; + put 'put ''NTZiOTUxNGUxYmI1ZTgzMDM3ZTBmYTJkNCJdLFsiNGU0MmM4ZWM4MmM5OTc5OGNjZjNhNjEwYmU4NzBlNzgzMzhjN2Y3MTMzNDhiZDM0YzgyMDNlZjQwMzdmMzUwMiIsIjc1NzFkNzRlZTVlMGZiOTJhN2E4YjMzYTA3NzgzMzQxYTU0OTIxNDRjYzU0YmNjNDBhOTQ0NzM2OTM2MDY0MzciXSxb''@;'; + put 'put ''IjM3NzVhYjcwODliYzZhZjgyM2FiYTJlMWFmNzBiMjM2ZDI1MWNhZGIwYzg2NzQzMjg3NTIyYTFiM2IwZGVkZWEiLCJiZTUyZDEwN2JjZmEwOWQ4YmNiOTczNmE4MjhjZmE3ZmFjOGRiMTdiZjdhNzZhMmM0MmFkOTYxNDA5MDE4Y2Y3Il0sWyJjZWUzMWNiZjdlMzRlYzM3OWQ5NGZiODE0ZDNk''@;'; + put 'put ''Nzc1YWQ5NTQ1OTVkMTMxNGJhODg0Njk1OWUzZTgyZjc0ZTI2IiwiOGZkNjRhMTRjMDZiNTg5YzI2Yjk0N2FlMmJjZjZiZmEwMTQ5ZWYwYmUxNGVkNGQ4MGY0NDhhMDFjNDNiMWM2ZCJdLFsiYjRmOWVhZWEwOWI2OTE3NjE5ZjZlYTZhNGViNTQ2NGVmZGRiNThmZDQ1YjFlYmVmY2RjMWEwMWQw''@;'; + put 'put ''OGI0Nzk4NiIsIjM5ZTVjOTkyNWI1YTU0YjA3NDMzYTRmMThjNjE3MjZmOGJiMTMxYzAxMmNhNTQyZWIyNGE4YWMwNzIwMDY4MmEiXSxbImQ0MjYzZGZjM2QyZGY5MjNhMDE3OWE0ODk2NmQzMGNlODRlMjUxNWFmYzNkY2NjMWI3NzkwNzc5MmViY2M2MGUiLCI2MmRmYWYwN2EwZjc4ZmViMzBl''@;'; + put 'put ''MzBkNjI5NTg1M2NlMTg5ZTEyNzc2MGFkNmNmN2ZhZTE2NGUxMjJhMjA4ZDU0Il0sWyI0ODQ1NzUyNDgyMGZhNjVhNGY4ZDM1ZWI2OTMwODU3YzAwMzJhY2MwYTRhMmRlNDIyMjMzZWVkYTg5NzYxMmM0IiwiMjVhNzQ4YWIzNjc5NzlkOTg3MzNjMzhhMWZhMWMyZTdkYzZjYzA3ZGIyZDYwYTlh''@;'; + put 'put ''ZTdhNzZhYWE0OWJkMGY3NyJdLFsiZGZlZWVmMTg4MTEwMWYyY2IxMTY0NGYzYTJhZmRmYzIwNDVlMTk5MTkxNTI5MjNmMzY3YTE3NjdjMTFjY2VkYSIsImVjZmI3MDU2Y2YxZGUwNDJmOTQyMGJhYjM5Njc5M2MwYzM5MGJkZTc0YjRiYmRmZjE2YTgzYWUwOWE5YTc1MTciXSxbIjZkN2VmNmIx''@;'; + put 'put ''NzU0M2Y4MzczYzU3M2Y0NGUxZjM4OTgzNWQ4OWJjYmM2MDYyY2VkMzZjODJkZjgzYjhmYWU4NTkiLCJjZDQ1MGVjMzM1NDM4OTg2ZGZlZmExMGM1N2ZlYTliY2M1MjFhMDk1OWIyZDgwYmJmNzRiMTkwZGNhNzEyZDEwIl0sWyJlNzU2MDVkNTkxMDJhNWEyNjg0NTAwZDNiOTkxZjJlM2YzYzg4''@;'; + put 'put ''YjkzMjI1NTQ3MDM1YWYyNWFmNjZlMDQ1NDFmIiwiZjVjNTQ3NTRhOGY3MWVlNTQwYjliNDg3Mjg0NzNlMzE0ZjcyOWFjNTMwOGIwNjkzODM2MDk5MGUyYmZhZDEyNSJdLFsiZWI5ODY2MGY0YzRkZmFhMDZhMmJlNDUzZDUwMjBiYzk5YTBjMmU2MGFiZTM4ODQ1N2RkNDNmZWZiMWVkNjIwYyIs''@;'; + put 'put ''IjZjYjlhODg3NmQ5Y2I4NTIwNjA5YWYzYWRkMjZjZDIwYTBhN2NkOGE5NDExMTMxY2U4NWY0NDEwMDA5OTIyM2UiXSxbIjEzZTg3YjAyN2Q4NTE0ZDM1OTM5ZjJlNjg5MmIxOTkyMjE1NDU5Njk0MTg4ODMzNmRjMzU2M2UzYjhkYmE5NDIiLCJmZWY1YTNjNjgwNTlhNmRlYzVkNjI0MTE0YmYx''@;'; + put 'put ''ZTkxYWFjMmI5ZGE1NjhkNmFiZWIyNTcwZDU1NjQ2YjhhZGYxIl0sWyJlZTE2MzAyNmU5ZmQ2ZmUwMTdjMzhmMDZhNWJlNmZjMTI1NDI0YjM3MWNlMjcwOGU3YmY0NDkxNjkxZTU3NjRhIiwiMWFjYjI1MGYyNTVkZDYxYzQzZDk0Y2NjNjcwZDBmNThmNDlhZTNmYTE1Yjk2NjIzZTU0MzBkYTBh''@;'; + put 'put ''ZDZjNjJiMiJdLFsiYjI2OGY1ZWY5YWQ1MWU0ZDc4ZGUzYTc1MGMyZGM4OWIxZTYyNmQ0MzUwNTg2Nzk5OTkzMmU1ZGIzM2FmM2Q4MCIsIjVmMzEwZDRiM2M5OWI5ZWJiMTlmNzdkNDFjMWRlZTAxOGNmMGQzNGZkNDE5MTYxNDAwM2U5NDVhMTIxNmU0MjMiXSxbImZmMDdmMzExOGE5ZGYwMzVl''@;'; + put 'put ''OWZhZDg1ZWI2YzdiZmU0MmIwMmYwMWNhOTljZWVhM2JmN2ZmZGJhOTNjNDc1MGQiLCI0MzgxMzZkNjAzZTg1OGEzYTVjNDQwYzM4ZWNjYmFkZGMxZDI5NDIxMTRlMmVkZGQ0NzQwZDA5OGNlZDFmMGQ4Il0sWyI4ZDhiOTg1NWM3YzA1MmEzNDE0NmZkMjBmZmI2NThiZWE0YjlmNjllMGQ4MjVl''@;'; + put 'put ''YmVjMTZlOGMzY2UyYjUyNmExIiwiY2RiNTU5ZWVkYzJkNzlmOTI2YmFmNDRmYjg0ZWE0ZDQ0YmNmNTBmZWU1MWQ3Y2ViMzBlMmU3ZjQ2MzAzNjc1OCJdLFsiNTJkYjBiNTM4NGRmYmYwNWJmYTlkNDcyZDdhZTI2ZGZlNGI4NTFjZWNhOTFiMWViYTU0MjYzMTgwZGEzMmI2MyIsImMzYjk5N2Qw''@;'; + put 'put ''NTBlZTVkNDIzZWJhZjY2YTZkYjlmNTdiMzE4MGM5MDI4NzU2NzlkZTkyNGI2OWQ4NGE3YjM3NSJdLFsiZTYyZjk0OTBkM2Q1MWRhNjM5NWVmZDI0ZTgwOTE5Y2M3ZDBmMjljM2YzZmE0OGM2ZmZmNTQzYmVjYmQ0MzM1MiIsIjZkODlhZDdiYTQ4NzZiMGIyMmMyY2EyODBjNjgyODYyZjM0MmM4''@;'; + put 'put ''NTkxZjFkYWY1MTcwZTA3YmZkOWNjYWZhN2QiXSxbIjdmMzBlYTI0NzZiMzk5YjQ5NTc1MDljODhmNzdkMDE5MWFmYTJmZjVjYjdiMTRmZDZkOGU3ZDY1YWFhYjExOTMiLCJjYTVlZjdkNGIyMzFjOTRjM2IxNTM4OWE1ZjYzMTFlOWRhZmY3YmI2N2IxMDNlOTg4MGVmNGJmZjYzN2FjYWVjIl0s''@;'; + put 'put ''WyI1MDk4ZmYxZTFkOWYxNGZiNDZhMjEwZmFkYTZjOTAzZmVmMGZiN2I0YTFkZDFkOWFjNjBhMDM2MTgwMGI3YTAwIiwiOTczMTE0MWQ4MWZjOGY4MDg0ZDM3YzZlNzU0MjAwNmIzZWUxYjQwZDYwZGZlNTM2MmE1YjEzMmZkMTdkZGMwIl0sWyIzMmI3OGM3ZGU5ZWU1MTJhNzI4OTViZTZiOWNi''@;'; + put 'put ''ZWZhNmUyZjNjNGNjY2U0NDVjOTZiOWYyYzgxZTI3NzhhZDU4IiwiZWUxODQ5ZjUxM2RmNzFlMzJlZmMzODk2ZWUyODI2MGM3M2JiODA1NDdhZTIyNzViYTQ5NzIzNzc5NGM4NzUzYyJdLFsiZTJjYjc0ZmRkYzhlOWZiY2QwNzZlZWYyYTdjNzJiMGNlMzdkNTBmMDgyNjlkZmMwNzRiNTgxNTUw''@;'; + put 'put ''NTQ3YTRmNyIsImQzYWEyZWQ3MWM5ZGQyMjQ3YTYyZGYwNjI3MzZlYjBiYWRkZWE5ZTM2MTIyZDJiZTg2NDFhYmNiMDA1Y2M0YTQiXSxbIjg0Mzg0NDc1NjZkNGQ3YmVkYWRjMjk5NDk2YWIzNTc0MjYwMDlhMzVmMjM1Y2IxNDFiZTBkOTljZDEwYWUzYTgiLCJjNGUxMDIwOTE2OTgwYTRkYTVk''@;'; + put 'put ''MDFhYzVlNmFkMzMwNzM0ZWYwZDc5MDY2MzFjNGYyMzkwNDI2YjJlZGQ3OTFmIl0sWyI0MTYyZDQ4OGI4OTQwMjAzOWI1ODRjNmZjNmMzMDg4NzA1ODdkOWM0NmY2NjBiODc4YWI2NWM4MmM3MTFkNjdlIiwiNjcxNjNlOTAzMjM2Mjg5Zjc3NmYyMmMyNWZiOGEzYWZjMTczMmYyYjg0YjRlOTVk''@;'; + put 'put ''YmRhNDdhZTVhMDg1MjY0OSJdLFsiM2ZhZDNmYTg0Y2FmMGYzNGYwZjg5YmZkMmRjZjU0ZmMxNzVkNzY3YWVjM2U1MDY4NGYzYmE0YTRiZjVmNjgzZCIsImNkMWJjN2NiNmNjNDA3YmIyZjBjYTY0N2M3MThhNzMwY2Y3MTg3MmU3ZDBkMmE1M2ZhMjBlZmNkZmU2MTgyNiJdLFsiNjc0ZjI2MDBh''@;'; + put 'put ''MzAwN2EwMDU2OGMxYTdjZTA1ZDA4MTZjMWZiODRiZjEzNzA3OThmMWM2OTUzMmZhZWIxYTg2YiIsIjI5OWQyMWY5NDEzZjMzYjNlZGY0M2IyNTcwMDQ1ODBiNzBkYjU3ZGEwYjE4MjI1OWUwOWVlY2M2OWUwZDM4YTUiXSxbImQzMmY0ZGE1NGFkZTc0YWJiODFiODE1YWQxZmIzYjI2M2Q4MmQ2''@;'; + put 'put ''YzY5MjcxNGJjZmY4N2QyOWJkNWVlOWYwOGYiLCJmOTQyOWU3MzhiOGU1M2I5NjhlOTkwMTZjMDU5NzA3NzgyZTE0ZjQ1MzUzNTlkNTgyZmM0MTY5MTBiM2VlYTg3Il0sWyIzMGU0ZTY3MDQzNTM4NTU1NmU1OTM2NTcxMzU4NDVkMzZmYmI2OTMxZjcyYjA4Y2IxZWQ5NTRmMWUzY2UzZmY2Iiwi''@;'; + put 'put ''NDYyZjliY2U2MTk4OTg2Mzg0OTkzNTAxMTNiYmM5YjEwYTg3OGQzNWRhNzA3NDBkYzY5NWE1NTllYjg4ZGI3YiJdLFsiYmUyMDYyMDAzYzUxY2MzMDA0NjgyOTA0MzMwZTRkZWU3ZjNkY2QxMGIwMWU1ODBiZjE5NzFiMDRkNGNhZDI5NyIsIjYyMTg4YmM0OWQ2MWU1NDI4NTczZDQ4YTc0ZTFj''@;'; + put 'put ''NjU1YjFjNjEwOTA5MDU2ODJhMGQ1NTU4ZWQ3MmRjY2I5YmMiXSxbIjkzMTQ0NDIzYWNlMzQ1MWVkMjllMGZiOWFjMmFmMjExY2I2ZTg0YTYwMWRmNTk5M2M0MTk4NTlmZmY1ZGYwNGEiLCI3YzEwZGZiMTY0YzM0MjVmNWM3MWEzZjlkNzk5MjAzOGYxMDY1MjI0ZjcyYmI5ZDFkOTAyYTZkMTMw''@;'; + put 'put ''MzdiNDdjIl0sWyJiMDE1ZjgwNDRmNWZjYmRjZjIxY2EyNmQ2YzM0ZmI4MTk3ODI5MjA1YzdiN2QyYTdjYjY2NDE4YzE1N2IxMTJjIiwiYWI4YzFlMDg2ZDA0ZTgxMzc0NGE2NTViMmRmOGQ1ZjgzYjNjZGM2ZmFhMzA4OGMxZDNhZWExNDU0ZTNhMWQ1ZiJdLFsiZDVlOWUxZGE2NDlkOTdkODll''@;'; + put 'put ''NDg2ODExN2E0NjVhM2E0ZjhhMThkZTU3YTE0MGQzNmIzZjJhZjM0MWEyMWI1MiIsIjRjYjA0NDM3ZjM5MWVkNzMxMTFhMTNjYzFkNGRkMGRiMTY5MzQ2NWMyMjQwNDgwZDg5NTVlODU5MmYyNzQ0N2EiXSxbImQzYWU0MTA0N2RkN2NhMDY1ZGJmOGVkNzdiOTkyNDM5OTgzMDA1Y2Q3MmUxNmQ2''@;'; + put 'put ''Zjk5NmE1MzE2ZDM2OTY2YmIiLCJiZDFhZWIyMWFkMjJlYmIyMmExMGYwMzAzNDE3YzZkOTY0ZjhjZGQ3ZGYwYWNhNjE0YjEwZGMxNGQxMjVhYzQ2Il0sWyI0NjNlMjc2M2Q4ODVmOTU4ZmM2NmNkZDIyODAwZjBhNDg3MTk3ZDBhODJlMzc3YjQ5ZjgwYWY4N2M4OTdiMDY1IiwiYmZlZmFjZGIw''@;'; + put 'put ''ZTVkMGZkN2RmM2EzMTFhOTRkZTA2MmIyNmI4MGM2MWZiYzk3NTA4Yjc5OTkyNjcxZWY3Y2E3ZiJdLFsiNzk4NWZkZmQxMjdjMDU2N2M2ZjUzZWMxYmI2M2VjMzE1OGU1OTdjNDBiZmU3NDdjODNjZGRmYzkxMDY0MTkxNyIsIjYwM2MxMmRhZjNkOTg2MmVmMmIyNWZlMWRlMjg5YWVkMjRlZDI5''@;'; + put 'put ''MWUwZWM2NzA4NzAzYTViZDU2N2YzMmVkMDMiXSxbIjc0YTFhZDZiNWY3NmUzOWRiMmRkMjQ5NDEwZWFjN2Y5OWU3NGM1OWNiODNkMmQwZWQ1ZmYxNTQzZGE3NzAzZTkiLCJjYzYxNTdlZjE4YzljNjNjZDYxOTNkODM2MzFiYmVhMDA5M2UwOTY4OTQyZThjMzNkNTczN2ZkNzkwZTBkYjA4Il0s''@;'; + put 'put ''WyIzMDY4MmE1MDcwMzM3NWY2MDJkNDE2NjY0YmExOWI3ZmM5YmFiNDJjNzI3NDc0NjNhNzFkMDg5NmIyMmY2ZGEzIiwiNTUzZTA0ZjZiMDE4YjRmYTZjOGYzOWU3ZjMxMWQzMTc2MjkwZDBlMGYxOWNhNzNmMTc3MTRkOTk3N2EyMmZmOCJdLFsiOWUyMTU4ZjBkN2MwZDVmMjZjMzc5MWVmZWZh''@;'; + put 'put ''Nzk1OTc2NTRlN2EyYjI0NjRmNTJiMWVlNmMxMzQ3NzY5ZWY1NyIsIjcxMmZjZGQxYjkwNTNmMDkwMDNhMzQ4MWZhNzc2MmU5ZmZkN2M4ZWYzNWEzODUwOWUyZmJmMjYyOTAwODM3MyJdLFsiMTc2ZTI2OTg5YTQzYzljZmViYTQwMjljMjAyNTM4YzI4MTcyZTU2NmUzYzRmY2U3MzIyODU3ZjNi''@;'; + put 'put ''ZTMyN2Q2NiIsImVkOGNjOWQwNGIyOWViODc3ZDI3MGI0ODc4ZGM0M2MxOWFlZmQzMWY0ZWVlMDllZTdiNDc4MzRjMWZhNGIxYzMiXSxbIjc1ZDQ2ZWZlYTM3NzFlNmU2OGFiYjg5YTEzYWQ3NDdlY2YxODkyMzkzZGZjNGYxYjcwMDQ3ODhjNTAzNzRkYTgiLCI5ODUyMzkwYTk5NTA3Njc5ZmQw''@;'; + put 'put ''Yjg2ZmQyYjM5YTg2OGQ3ZWZjMjIxNTEzNDZlMWEzY2E0NzI2NTg2YTZiZWQ4Il0sWyI4MDlhMjBjNjdkNjQ5MDBmZmI2OThjNGM4MjVmNmQ1ZjIzMTBmYjA0NTFjODY5MzQ1YjczMTlmNjQ1NjA1NzIxIiwiOWU5OTQ5ODBkOTkxN2UyMmI3NmIwNjE5MjdmYTA0MTQzZDA5NmNjYzU0OTYzZTZh''@;'; + put 'put ''NWViZmE1ZjNmOGUyODZjMSJdLFsiMWIzODkwM2E0M2Y3ZjExNGVkNDUwMGI0ZWFjNzA4M2ZkZWZlY2UxY2YyOWM2MzUyOGQ1NjM0NDZmOTcyYzE4MCIsIjQwMzZlZGM5MzFhNjBhZTg4OTM1M2Y3N2ZkNTNkZTRhMjcwOGIyNmI2ZjVkYTcyYWQzMzk0MTE5ZGFmNDA4ZjkiXV19fX0sOTUzOihV''@;'; + put 'put ''LFEsWik9PnsidXNlIHN0cmljdCI7dmFyIGllPVEsYWU9WigzNzg1KSxZPVooOTc0NiksVz1aKDQ1MDQpO2llLmFzc2VydD1ZLGllLnRvQXJyYXk9Vy50b0FycmF5LGllLnplcm8yPVcuemVybzIsaWUudG9IZXg9Vy50b0hleCxpZS5lbmNvZGU9Vy5lbmNvZGUsaWUuZ2V0TkFGPWZ1bmN0aW9u''@;'; + put 'put ''KE4sZWUscSl7dmFyIEo9bmV3IEFycmF5KE1hdGgubWF4KE4uYml0TGVuZ3RoKCkscSkrMSk7Si5maWxsKDApO2Zvcih2YXIgc2U9MTw8ZWUrMSxvZT1OLmNsb25lKCksY2U9MDtjZTxKLmxlbmd0aDtjZSsrKXt2YXIgZGUsdmU9b2UuYW5kbG4oc2UtMSk7b2UuaXNPZGQoKT9vZS5pc3Vibihk''@;'; + put 'put ''ZT12ZT4oc2U+PjEpLTE/KHNlPj4xKS12ZTp2ZSk6ZGU9MCxKW2NlXT1kZSxvZS5pdXNocm4oMSl9cmV0dXJuIEp9LGllLmdldEpTRj1mdW5jdGlvbihOLGVlKXt2YXIgcT1bW10sW11dO049Ti5jbG9uZSgpLGVlPWVlLmNsb25lKCk7Zm9yKHZhciBKLHNlPTAsb2U9MDtOLmNtcG4oLXNlKT4w''@;'; + put 'put ''fHxlZS5jbXBuKC1vZSk+MDspe3ZhciBjZSxkZSx2ZT1OLmFuZGxuKDMpK3NlJjMsQWU9ZWUuYW5kbG4oMykrb2UmMzszPT09dmUmJih2ZT0tMSksMz09PUFlJiYoQWU9LTEpLGNlPTA9PSgxJnZlKT8wOjMhPShKPU4uYW5kbG4oNykrc2UmNykmJjUhPT1KfHwyIT09QWU/dmU6LXZlLHFbMF0u''@;'; + put 'put ''cHVzaChjZSksZGU9MD09KDEmQWUpPzA6MyE9KEo9ZWUuYW5kbG4oNykrb2UmNykmJjUhPT1KfHwyIT09dmU/QWU6LUFlLHFbMV0ucHVzaChkZSksMipzZT09PWNlKzEmJihzZT0xLXNlKSwyKm9lPT09ZGUrMSYmKG9lPTEtb2UpLE4uaXVzaHJuKDEpLGVlLml1c2hybigxKX1yZXR1cm4gcX0s''@;'; + put 'put ''aWUuY2FjaGVkUHJvcGVydHk9ZnVuY3Rpb24oTixlZSxxKXt2YXIgSj0iXyIrZWU7Ti5wcm90b3R5cGVbZWVdPWZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgMCE9PXRoaXNbSl0/dGhpc1tKXTp0aGlzW0pdPXEuY2FsbCh0aGlzKX19LGllLnBhcnNlQnl0ZXM9ZnVuY3Rpb24oTil7cmV0dXJuInN0''@;'; + put 'put ''cmluZyI9PXR5cGVvZiBOP2llLnRvQXJyYXkoTiwiaGV4Iik6Tn0saWUuaW50RnJvbUxFPWZ1bmN0aW9uKE4pe3JldHVybiBuZXcgYWUoTiwiaGV4IiwibGUiKX19LDM3ODU6ZnVuY3Rpb24oVSxRLFopeyFmdW5jdGlvbihpZSxhZSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIFkoeCxQKXtpZigh''@;'; + put 'put ''eCl0aHJvdyBuZXcgRXJyb3IoUHx8IkFzc2VydGlvbiBmYWlsZWQiKX1mdW5jdGlvbiBXKHgsUCl7eC5zdXBlcl89UDt2YXIgVj1mdW5jdGlvbigpe307Vi5wcm90b3R5cGU9UC5wcm90b3R5cGUseC5wcm90b3R5cGU9bmV3IFYseC5wcm90b3R5cGUuY29uc3RydWN0b3I9eH1mdW5jdGlvbiBO''@;'; + put 'put ''KHgsUCxWKXtpZihOLmlzQk4oeCkpcmV0dXJuIHg7dGhpcy5uZWdhdGl2ZT0wLHRoaXMud29yZHM9bnVsbCx0aGlzLmxlbmd0aD0wLHRoaXMucmVkPW51bGwsbnVsbCE9PXgmJigibGUiIT09UCYmImJlIiE9PVB8fChWPVAsUD0xMCksdGhpcy5faW5pdCh4fHwwLFB8fDEwLFZ8fCJiZSIpKX12''@;'; + put 'put ''YXIgZWU7Im9iamVjdCI9PXR5cGVvZiBpZT9pZS5leHBvcnRzPU46YWUuQk49TixOLkJOPU4sTi53b3JkU2l6ZT0yNjt0cnl7ZWU9InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cmJnZvaWQgMCE9PXdpbmRvdy5CdWZmZXI/d2luZG93LkJ1ZmZlcjpaKDU1NjgpLkJ1ZmZlcn1jYXRjaCh4KXt9''@;'; + put 'put ''ZnVuY3Rpb24gcSh4LFApe3ZhciBWPXguY2hhckNvZGVBdChQKTtyZXR1cm4gVj49NjUmJlY8PTcwP1YtNTU6Vj49OTcmJlY8PTEwMj9WLTg3OlYtNDgmMTV9ZnVuY3Rpb24gSih4LFAsVil7dmFyIFQ9cSh4LFYpO3JldHVybiBWLTE+PVAmJihUfD1xKHgsVi0xKTw8NCksVH1mdW5jdGlvbiBz''@;'; + put 'put ''ZSh4LFAsVixUKXtmb3IodmFyIFM9MCxGPU1hdGgubWluKHgubGVuZ3RoLFYpLHllPVA7eWU8Rjt5ZSsrKXt2YXIgQ2U9eC5jaGFyQ29kZUF0KHllKS00ODtTKj1ULFMrPUNlPj00OT9DZS00OSsxMDpDZT49MTc/Q2UtMTcrMTA6Q2V9cmV0dXJuIFN9Ti5pc0JOPWZ1bmN0aW9uKHgpe3JldHVy''@;'; + put 'put ''biB4IGluc3RhbmNlb2YgTnx8bnVsbCE9PXgmJiJvYmplY3QiPT10eXBlb2YgeCYmeC5jb25zdHJ1Y3Rvci53b3JkU2l6ZT09PU4ud29yZFNpemUmJkFycmF5LmlzQXJyYXkoeC53b3Jkcyl9LE4ubWF4PWZ1bmN0aW9uKHgsUCl7cmV0dXJuIHguY21wKFApPjA/eDpQfSxOLm1pbj1mdW5jdGlv''@;'; + put 'put ''bih4LFApe3JldHVybiB4LmNtcChQKTwwP3g6UH0sTi5wcm90b3R5cGUuX2luaXQ9ZnVuY3Rpb24oeCxQLFYpe2lmKCJudW1iZXIiPT10eXBlb2YgeClyZXR1cm4gdGhpcy5faW5pdE51bWJlcih4LFAsVik7aWYoIm9iamVjdCI9PXR5cGVvZiB4KXJldHVybiB0aGlzLl9pbml0QXJyYXkoeCxQ''@;'; + put 'put ''LFYpOyJoZXgiPT09UCYmKFA9MTYpLFkoUD09PSgwfFApJiZQPj0yJiZQPD0zNik7dmFyIFQ9MDsiLSI9PT0oeD14LnRvU3RyaW5nKCkucmVwbGFjZSgvXHMrL2csIiIpKVswXSYmKFQrKyx0aGlzLm5lZ2F0aXZlPTEpLFQ8eC5sZW5ndGgmJigxNj09PVA/dGhpcy5fcGFyc2VIZXgoeCxULFYp''@;'; + put 'put ''Oih0aGlzLl9wYXJzZUJhc2UoeCxQLFQpLCJsZSI9PT1WJiZ0aGlzLl9pbml0QXJyYXkodGhpcy50b0FycmF5KCksUCxWKSkpfSxOLnByb3RvdHlwZS5faW5pdE51bWJlcj1mdW5jdGlvbih4LFAsVil7eDwwJiYodGhpcy5uZWdhdGl2ZT0xLHg9LXgpLHg8NjcxMDg4NjQ/KHRoaXMud29yZHM9''@;'; + put 'put ''WzY3MTA4ODYzJnhdLHRoaXMubGVuZ3RoPTEpOng8NDUwMzU5OTYyNzM3MDQ5Nj8odGhpcy53b3Jkcz1bNjcxMDg4NjMmeCx4LzY3MTA4ODY0JjY3MTA4ODYzXSx0aGlzLmxlbmd0aD0yKTooWSh4PDkwMDcxOTkyNTQ3NDA5OTIpLHRoaXMud29yZHM9WzY3MTA4ODYzJngseC82NzEwODg2NCY2''@;'; + put 'put ''NzEwODg2MywxXSx0aGlzLmxlbmd0aD0zKSwibGUiPT09ViYmdGhpcy5faW5pdEFycmF5KHRoaXMudG9BcnJheSgpLFAsVil9LE4ucHJvdG90eXBlLl9pbml0QXJyYXk9ZnVuY3Rpb24oeCxQLFYpe2lmKFkoIm51bWJlciI9PXR5cGVvZiB4Lmxlbmd0aCkseC5sZW5ndGg8PTApcmV0dXJuIHRo''@;'; + put 'put ''aXMud29yZHM9WzBdLHRoaXMubGVuZ3RoPTEsdGhpczt0aGlzLmxlbmd0aD1NYXRoLmNlaWwoeC5sZW5ndGgvMyksdGhpcy53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgpO2Zvcih2YXIgVD0wO1Q8dGhpcy5sZW5ndGg7VCsrKXRoaXMud29yZHNbVF09MDt2YXIgUyxGLHllPTA7aWYoImJl''@;'; + put 'put ''Ij09PVYpZm9yKFQ9eC5sZW5ndGgtMSxTPTA7VD49MDtULT0zKXRoaXMud29yZHNbU118PShGPXhbVF18eFtULTFdPDw4fHhbVC0yXTw8MTYpPDx5ZSY2NzEwODg2Myx0aGlzLndvcmRzW1MrMV09Rj4+PjI2LXllJjY3MTA4ODYzLCh5ZSs9MjQpPj0yNiYmKHllLT0yNixTKyspO2Vsc2UgaWYo''@;'; + put 'put ''ImxlIj09PVYpZm9yKFQ9MCxTPTA7VDx4Lmxlbmd0aDtUKz0zKXRoaXMud29yZHNbU118PShGPXhbVF18eFtUKzFdPDw4fHhbVCsyXTw8MTYpPDx5ZSY2NzEwODg2Myx0aGlzLndvcmRzW1MrMV09Rj4+PjI2LXllJjY3MTA4ODYzLCh5ZSs9MjQpPj0yNiYmKHllLT0yNixTKyspO3JldHVybiB0''@;'; + put 'put ''aGlzLnN0cmlwKCl9LE4ucHJvdG90eXBlLl9wYXJzZUhleD1mdW5jdGlvbih4LFAsVil7dGhpcy5sZW5ndGg9TWF0aC5jZWlsKCh4Lmxlbmd0aC1QKS82KSx0aGlzLndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCk7Zm9yKHZhciBUPTA7VDx0aGlzLmxlbmd0aDtUKyspdGhpcy53b3Jkc1tU''@;'; + put 'put ''XT0wO3ZhciBTLEY9MCx5ZT0wO2lmKCJiZSI9PT1WKWZvcihUPXgubGVuZ3RoLTE7VD49UDtULT0yKVM9Sih4LFAsVCk8PEYsdGhpcy53b3Jkc1t5ZV18PTY3MTA4ODYzJlMsRj49MTg/KEYtPTE4LHRoaXMud29yZHNbeWUrPTFdfD1TPj4+MjYpOkYrPTg7ZWxzZSBmb3IoVD0oeC5sZW5ndGgt''@;'; + put 'put ''UCklMj09MD9QKzE6UDtUPHgubGVuZ3RoO1QrPTIpUz1KKHgsUCxUKTw8Rix0aGlzLndvcmRzW3llXXw9NjcxMDg4NjMmUyxGPj0xOD8oRi09MTgsdGhpcy53b3Jkc1t5ZSs9MV18PVM+Pj4yNik6Ris9ODt0aGlzLnN0cmlwKCl9LE4ucHJvdG90eXBlLl9wYXJzZUJhc2U9ZnVuY3Rpb24oeCxQ''@;'; + put 'put ''LFYpe3RoaXMud29yZHM9WzBdLHRoaXMubGVuZ3RoPTE7Zm9yKHZhciBUPTAsUz0xO1M8PTY3MTA4ODYzO1MqPVApVCsrO1QtLSxTPVMvUHwwO2Zvcih2YXIgRj14Lmxlbmd0aC1WLHllPUYlVCxDZT1NYXRoLm1pbihGLEYteWUpK1YsRGU9MCxQZT1WO1BlPENlO1BlKz1UKURlPXNlKHgsUGUs''@;'; + put 'put ''UGUrVCxQKSx0aGlzLmltdWxuKFMpLHRoaXMud29yZHNbMF0rRGU8NjcxMDg4NjQ/dGhpcy53b3Jkc1swXSs9RGU6dGhpcy5faWFkZG4oRGUpO2lmKDAhPT15ZSl7dmFyIFFlPTE7Zm9yKERlPXNlKHgsUGUseC5sZW5ndGgsUCksUGU9MDtQZTx5ZTtQZSsrKVFlKj1QO3RoaXMuaW11bG4oUWUp''@;'; + put 'put ''LHRoaXMud29yZHNbMF0rRGU8NjcxMDg4NjQ/dGhpcy53b3Jkc1swXSs9RGU6dGhpcy5faWFkZG4oRGUpfXRoaXMuc3RyaXAoKX0sTi5wcm90b3R5cGUuY29weT1mdW5jdGlvbih4KXt4LndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCk7Zm9yKHZhciBQPTA7UDx0aGlzLmxlbmd0aDtQKysp''@;'; + put 'put ''eC53b3Jkc1tQXT10aGlzLndvcmRzW1BdO3gubGVuZ3RoPXRoaXMubGVuZ3RoLHgubmVnYXRpdmU9dGhpcy5uZWdhdGl2ZSx4LnJlZD10aGlzLnJlZH0sTi5wcm90b3R5cGUuY2xvbmU9ZnVuY3Rpb24oKXt2YXIgeD1uZXcgTihudWxsKTtyZXR1cm4gdGhpcy5jb3B5KHgpLHh9LE4ucHJvdG90''@;'; + put 'put ''eXBlLl9leHBhbmQ9ZnVuY3Rpb24oeCl7Zm9yKDt0aGlzLmxlbmd0aDx4Oyl0aGlzLndvcmRzW3RoaXMubGVuZ3RoKytdPTA7cmV0dXJuIHRoaXN9LE4ucHJvdG90eXBlLnN0cmlwPWZ1bmN0aW9uKCl7Zm9yKDt0aGlzLmxlbmd0aD4xJiYwPT09dGhpcy53b3Jkc1t0aGlzLmxlbmd0aC0xXTsp''@;'; + put 'put ''dGhpcy5sZW5ndGgtLTtyZXR1cm4gdGhpcy5fbm9ybVNpZ24oKX0sTi5wcm90b3R5cGUuX25vcm1TaWduPWZ1bmN0aW9uKCl7cmV0dXJuIDE9PT10aGlzLmxlbmd0aCYmMD09PXRoaXMud29yZHNbMF0mJih0aGlzLm5lZ2F0aXZlPTApLHRoaXN9LE4ucHJvdG90eXBlLmluc3BlY3Q9ZnVuY3Rp''@;'; + put 'put ''b24oKXtyZXR1cm4odGhpcy5yZWQ/IjxCTi1SOiAiOiI8Qk46ICIpK3RoaXMudG9TdHJpbmcoMTYpKyI+In07dmFyIG9lPVsiIiwiMCIsIjAwIiwiMDAwIiwiMDAwMCIsIjAwMDAwIiwiMDAwMDAwIiwiMDAwMDAwMCIsIjAwMDAwMDAwIiwiMDAwMDAwMDAwIiwiMDAwMDAwMDAwMCIsIjAwMDAw''@;'; + put 'put ''MDAwMDAwIiwiMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAw''@;'; + put 'put ''MDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCJdLGNlPVswLDAsMjUsMTYsMTIsMTEs''@;'; + put 'put ''MTAsOSw4LDgsNyw3LDcsNyw2LDYsNiw2LDYsNiw2LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDVdLGRlPVswLDAsMzM1NTQ0MzIsNDMwNDY3MjEsMTY3NzcyMTYsNDg4MjgxMjUsNjA0NjYxNzYsNDAzNTM2MDcsMTY3NzcyMTYsNDMwNDY3MjEsMWU3LDE5NDg3MTcxLDM1ODMxODA4''@;'; + put 'put ''LDYyNzQ4NTE3LDc1Mjk1MzYsMTEzOTA2MjUsMTY3NzcyMTYsMjQxMzc1NjksMzQwMTIyMjQsNDcwNDU4ODEsNjRlNiw0MDg0MTAxLDUxNTM2MzIsNjQzNjM0Myw3OTYyNjI0LDk3NjU2MjUsMTE4ODEzNzYsMTQzNDg5MDcsMTcyMTAzNjgsMjA1MTExNDksMjQzZTUsMjg2MjkxNTEsMzM1NTQ0''@;'; + put 'put ''MzIsMzkxMzUzOTMsNDU0MzU0MjQsNTI1MjE4NzUsNjA0NjYxNzZdO2Z1bmN0aW9uIHZlKHgsUCxWKXtWLm5lZ2F0aXZlPVAubmVnYXRpdmVeeC5uZWdhdGl2ZTt2YXIgVD14Lmxlbmd0aCtQLmxlbmd0aHwwO1YubGVuZ3RoPVQsVD1ULTF8MDt2YXIgUz0wfHgud29yZHNbMF0sRj0wfFAud29y''@;'; + put 'put ''ZHNbMF0seWU9UypGLERlPXllLzY3MTA4ODY0fDA7Vi53b3Jkc1swXT02NzEwODg2MyZ5ZTtmb3IodmFyIFBlPTE7UGU8VDtQZSsrKXtmb3IodmFyIFFlPURlPj4+MjYsJGU9NjcxMDg4NjMmRGUsZ3Q9TWF0aC5taW4oUGUsUC5sZW5ndGgtMSksd3Q9TWF0aC5tYXgoMCxQZS14Lmxlbmd0aCsx''@;'; + put 'put ''KTt3dDw9Z3Q7d3QrKylRZSs9KHllPShTPTB8eC53b3Jkc1tQZS13dHwwXSkqKEY9MHxQLndvcmRzW3d0XSkrJGUpLzY3MTA4ODY0fDAsJGU9NjcxMDg4NjMmeWU7Vi53b3Jkc1tQZV09MHwkZSxEZT0wfFFlfXJldHVybiAwIT09RGU/Vi53b3Jkc1tQZV09MHxEZTpWLmxlbmd0aC0tLFYuc3Ry''@;'; + put 'put ''aXAoKX1OLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbih4LFApe3ZhciBWO2lmKFA9MHxQfHwxLDE2PT09KHg9eHx8MTApfHwiaGV4Ij09PXgpe1Y9IiI7Zm9yKHZhciBUPTAsUz0wLEY9MDtGPHRoaXMubGVuZ3RoO0YrKyl7dmFyIHllPXRoaXMud29yZHNbRl0sQ2U9KDE2Nzc3MjE1Jih5''@;'; + put 'put ''ZTw8VHxTKSkudG9TdHJpbmcoMTYpO1Y9MCE9KFM9eWU+Pj4yNC1UJjE2Nzc3MjE1KXx8RiE9PXRoaXMubGVuZ3RoLTE/b2VbNi1DZS5sZW5ndGhdK0NlK1Y6Q2UrViwoVCs9Mik+PTI2JiYoVC09MjYsRi0tKX1mb3IoMCE9PVMmJihWPVMudG9TdHJpbmcoMTYpK1YpO1YubGVuZ3RoJVAhPTA7''@;'; + put 'put ''KVY9IjAiK1Y7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlJiYoVj0iLSIrViksVn1pZih4PT09KDB8eCkmJng+PTImJng8PTM2KXt2YXIgRGU9Y2VbeF0sUGU9ZGVbeF07Vj0iIjt2YXIgUWU9dGhpcy5jbG9uZSgpO2ZvcihRZS5uZWdhdGl2ZT0wOyFRZS5pc1plcm8oKTspe3ZhciAkZT1RZS5t''@;'; + put 'put ''b2RuKFBlKS50b1N0cmluZyh4KTtWPShRZT1RZS5pZGl2bihQZSkpLmlzWmVybygpPyRlK1Y6b2VbRGUtJGUubGVuZ3RoXSskZStWfWZvcih0aGlzLmlzWmVybygpJiYoVj0iMCIrVik7Vi5sZW5ndGglUCE9MDspVj0iMCIrVjtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmUmJihWPSItIitWKSxW''@;'; + put 'put ''fVkoITEsIkJhc2Ugc2hvdWxkIGJlIGJldHdlZW4gMiBhbmQgMzYiKX0sTi5wcm90b3R5cGUudG9OdW1iZXI9ZnVuY3Rpb24oKXt2YXIgeD10aGlzLndvcmRzWzBdO3JldHVybiAyPT09dGhpcy5sZW5ndGg/eCs9NjcxMDg4NjQqdGhpcy53b3Jkc1sxXTozPT09dGhpcy5sZW5ndGgmJjE9PT10''@;'; + put 'put ''aGlzLndvcmRzWzJdP3grPTQ1MDM1OTk2MjczNzA0OTYrNjcxMDg4NjQqdGhpcy53b3Jkc1sxXTp0aGlzLmxlbmd0aD4yJiZZKCExLCJOdW1iZXIgY2FuIG9ubHkgc2FmZWx5IHN0b3JlIHVwIHRvIDUzIGJpdHMiKSwwIT09dGhpcy5uZWdhdGl2ZT8teDp4fSxOLnByb3RvdHlwZS50b0pTT049''@;'; + put 'put ''ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50b1N0cmluZygxNil9LE4ucHJvdG90eXBlLnRvQnVmZmVyPWZ1bmN0aW9uKHgsUCl7cmV0dXJuIFkodm9pZCAwIT09ZWUpLHRoaXMudG9BcnJheUxpa2UoZWUseCxQKX0sTi5wcm90b3R5cGUudG9BcnJheT1mdW5jdGlvbih4LFApe3JldHVybiB0aGlz''@;'; + put 'put ''LnRvQXJyYXlMaWtlKEFycmF5LHgsUCl9LE4ucHJvdG90eXBlLnRvQXJyYXlMaWtlPWZ1bmN0aW9uKHgsUCxWKXt2YXIgVD10aGlzLmJ5dGVMZW5ndGgoKSxTPVZ8fE1hdGgubWF4KDEsVCk7WShUPD1TLCJieXRlIGFycmF5IGxvbmdlciB0aGFuIGRlc2lyZWQgbGVuZ3RoIiksWShTPjAsIlJl''@;'; + put 'put ''cXVlc3RlZCBhcnJheSBsZW5ndGggPD0gMCIpLHRoaXMuc3RyaXAoKTt2YXIgRix5ZSxDZT0ibGUiPT09UCxEZT1uZXcgeChTKSxQZT10aGlzLmNsb25lKCk7aWYoQ2Upe2Zvcih5ZT0wOyFQZS5pc1plcm8oKTt5ZSsrKUY9UGUuYW5kbG4oMjU1KSxQZS5pdXNocm4oOCksRGVbeWVdPUY7Zm9y''@;'; + put 'put ''KDt5ZTxTO3llKyspRGVbeWVdPTB9ZWxzZXtmb3IoeWU9MDt5ZTxTLVQ7eWUrKylEZVt5ZV09MDtmb3IoeWU9MDshUGUuaXNaZXJvKCk7eWUrKylGPVBlLmFuZGxuKDI1NSksUGUuaXVzaHJuKDgpLERlW1MteWUtMV09Rn1yZXR1cm4gRGV9LE4ucHJvdG90eXBlLl9jb3VudEJpdHM9TWF0aC5j''@;'; + put 'put ''bHozMj9mdW5jdGlvbih4KXtyZXR1cm4gMzItTWF0aC5jbHozMih4KX06ZnVuY3Rpb24oeCl7dmFyIFA9eCxWPTA7cmV0dXJuIFA+PTQwOTYmJihWKz0xMyxQPj4+PTEzKSxQPj02NCYmKFYrPTcsUD4+Pj03KSxQPj04JiYoVis9NCxQPj4+PTQpLFA+PTImJihWKz0yLFA+Pj49MiksVitQfSxO''@;'; + put 'put ''LnByb3RvdHlwZS5femVyb0JpdHM9ZnVuY3Rpb24oeCl7aWYoMD09PXgpcmV0dXJuIDI2O3ZhciBQPXgsVj0wO3JldHVybiAwPT0oODE5MSZQKSYmKFYrPTEzLFA+Pj49MTMpLDA9PSgxMjcmUCkmJihWKz03LFA+Pj49NyksMD09KDE1JlApJiYoVis9NCxQPj4+PTQpLDA9PSgzJlApJiYoVis9''@;'; + put 'put ''MixQPj4+PTIpLDA9PSgxJlApJiZWKyssVn0sTi5wcm90b3R5cGUuYml0TGVuZ3RoPWZ1bmN0aW9uKCl7dmFyIFA9dGhpcy5fY291bnRCaXRzKHRoaXMud29yZHNbdGhpcy5sZW5ndGgtMV0pO3JldHVybiAyNioodGhpcy5sZW5ndGgtMSkrUH0sTi5wcm90b3R5cGUuemVyb0JpdHM9ZnVuY3Rp''@;'; + put 'put ''b24oKXtpZih0aGlzLmlzWmVybygpKXJldHVybiAwO2Zvcih2YXIgeD0wLFA9MDtQPHRoaXMubGVuZ3RoO1ArKyl7dmFyIFY9dGhpcy5femVyb0JpdHModGhpcy53b3Jkc1tQXSk7aWYoeCs9ViwyNiE9PVYpYnJlYWt9cmV0dXJuIHh9LE4ucHJvdG90eXBlLmJ5dGVMZW5ndGg9ZnVuY3Rpb24o''@;'; + put 'put ''KXtyZXR1cm4gTWF0aC5jZWlsKHRoaXMuYml0TGVuZ3RoKCkvOCl9LE4ucHJvdG90eXBlLnRvVHdvcz1mdW5jdGlvbih4KXtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmU/dGhpcy5hYnMoKS5pbm90bih4KS5pYWRkbigxKTp0aGlzLmNsb25lKCl9LE4ucHJvdG90eXBlLmZyb21Ud29zPWZ1bmN0''@;'; + put 'put ''aW9uKHgpe3JldHVybiB0aGlzLnRlc3RuKHgtMSk/dGhpcy5ub3RuKHgpLmlhZGRuKDEpLmluZWcoKTp0aGlzLmNsb25lKCl9LE4ucHJvdG90eXBlLmlzTmVnPWZ1bmN0aW9uKCl7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlfSxOLnByb3RvdHlwZS5uZWc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhp''@;'; + put 'put ''cy5jbG9uZSgpLmluZWcoKX0sTi5wcm90b3R5cGUuaW5lZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmlzWmVybygpfHwodGhpcy5uZWdhdGl2ZV49MSksdGhpc30sTi5wcm90b3R5cGUuaXVvcj1mdW5jdGlvbih4KXtmb3IoO3RoaXMubGVuZ3RoPHgubGVuZ3RoOyl0aGlzLndvcmRzW3RoaXMu''@;'; + put 'put ''bGVuZ3RoKytdPTA7Zm9yKHZhciBQPTA7UDx4Lmxlbmd0aDtQKyspdGhpcy53b3Jkc1tQXT10aGlzLndvcmRzW1BdfHgud29yZHNbUF07cmV0dXJuIHRoaXMuc3RyaXAoKX0sTi5wcm90b3R5cGUuaW9yPWZ1bmN0aW9uKHgpe3JldHVybiBZKDA9PSh0aGlzLm5lZ2F0aXZlfHgubmVnYXRpdmUp''@;'; + put 'put ''KSx0aGlzLml1b3IoeCl9LE4ucHJvdG90eXBlLm9yPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmxlbmd0aD54Lmxlbmd0aD90aGlzLmNsb25lKCkuaW9yKHgpOnguY2xvbmUoKS5pb3IodGhpcyl9LE4ucHJvdG90eXBlLnVvcj1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5sZW5ndGg+eC5sZW5n''@;'; + put 'put ''dGg/dGhpcy5jbG9uZSgpLml1b3IoeCk6eC5jbG9uZSgpLml1b3IodGhpcyl9LE4ucHJvdG90eXBlLml1YW5kPWZ1bmN0aW9uKHgpe3ZhciBQO1A9dGhpcy5sZW5ndGg+eC5sZW5ndGg/eDp0aGlzO2Zvcih2YXIgVj0wO1Y8UC5sZW5ndGg7VisrKXRoaXMud29yZHNbVl09dGhpcy53b3Jkc1tW''@;'; + put 'put ''XSZ4LndvcmRzW1ZdO3JldHVybiB0aGlzLmxlbmd0aD1QLmxlbmd0aCx0aGlzLnN0cmlwKCl9LE4ucHJvdG90eXBlLmlhbmQ9ZnVuY3Rpb24oeCl7cmV0dXJuIFkoMD09KHRoaXMubmVnYXRpdmV8eC5uZWdhdGl2ZSkpLHRoaXMuaXVhbmQoeCl9LE4ucHJvdG90eXBlLmFuZD1mdW5jdGlvbih4''@;'; + put 'put ''KXtyZXR1cm4gdGhpcy5sZW5ndGg+eC5sZW5ndGg/dGhpcy5jbG9uZSgpLmlhbmQoeCk6eC5jbG9uZSgpLmlhbmQodGhpcyl9LE4ucHJvdG90eXBlLnVhbmQ9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMubGVuZ3RoPngubGVuZ3RoP3RoaXMuY2xvbmUoKS5pdWFuZCh4KTp4LmNsb25lKCkuaXVh''@;'; + put 'put ''bmQodGhpcyl9LE4ucHJvdG90eXBlLml1eG9yPWZ1bmN0aW9uKHgpe3ZhciBQLFY7dGhpcy5sZW5ndGg+eC5sZW5ndGg/KFA9dGhpcyxWPXgpOihQPXgsVj10aGlzKTtmb3IodmFyIFQ9MDtUPFYubGVuZ3RoO1QrKyl0aGlzLndvcmRzW1RdPVAud29yZHNbVF1eVi53b3Jkc1tUXTtpZih0aGlz''@;'; + put 'put ''IT09UClmb3IoO1Q8UC5sZW5ndGg7VCsrKXRoaXMud29yZHNbVF09UC53b3Jkc1tUXTtyZXR1cm4gdGhpcy5sZW5ndGg9UC5sZW5ndGgsdGhpcy5zdHJpcCgpfSxOLnByb3RvdHlwZS5peG9yPWZ1bmN0aW9uKHgpe3JldHVybiBZKDA9PSh0aGlzLm5lZ2F0aXZlfHgubmVnYXRpdmUpKSx0aGlz''@;'; + put 'put ''Lml1eG9yKHgpfSxOLnByb3RvdHlwZS54b3I9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMubGVuZ3RoPngubGVuZ3RoP3RoaXMuY2xvbmUoKS5peG9yKHgpOnguY2xvbmUoKS5peG9yKHRoaXMpfSxOLnByb3RvdHlwZS51eG9yPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmxlbmd0aD54Lmxlbmd0''@;'; + put 'put ''aD90aGlzLmNsb25lKCkuaXV4b3IoeCk6eC5jbG9uZSgpLml1eG9yKHRoaXMpfSxOLnByb3RvdHlwZS5pbm90bj1mdW5jdGlvbih4KXtZKCJudW1iZXIiPT10eXBlb2YgeCYmeD49MCk7dmFyIFA9MHxNYXRoLmNlaWwoeC8yNiksVj14JTI2O3RoaXMuX2V4cGFuZChQKSxWPjAmJlAtLTtmb3Io''@;'; + put 'put ''dmFyIFQ9MDtUPFA7VCsrKXRoaXMud29yZHNbVF09NjcxMDg4NjMmfnRoaXMud29yZHNbVF07cmV0dXJuIFY+MCYmKHRoaXMud29yZHNbVF09fnRoaXMud29yZHNbVF0mNjcxMDg4NjM+PjI2LVYpLHRoaXMuc3RyaXAoKX0sTi5wcm90b3R5cGUubm90bj1mdW5jdGlvbih4KXtyZXR1cm4gdGhp''@;'; + put 'put ''cy5jbG9uZSgpLmlub3RuKHgpfSxOLnByb3RvdHlwZS5zZXRuPWZ1bmN0aW9uKHgsUCl7WSgibnVtYmVyIj09dHlwZW9mIHgmJng+PTApO3ZhciBWPXgvMjZ8MCxUPXglMjY7cmV0dXJuIHRoaXMuX2V4cGFuZChWKzEpLHRoaXMud29yZHNbVl09UD90aGlzLndvcmRzW1ZdfDE8PFQ6dGhpcy53''@;'; + put 'put ''b3Jkc1tWXSZ+KDE8PFQpLHRoaXMuc3RyaXAoKX0sTi5wcm90b3R5cGUuaWFkZD1mdW5jdGlvbih4KXt2YXIgUCxWLFQ7aWYoMCE9PXRoaXMubmVnYXRpdmUmJjA9PT14Lm5lZ2F0aXZlKXJldHVybiB0aGlzLm5lZ2F0aXZlPTAsUD10aGlzLmlzdWIoeCksdGhpcy5uZWdhdGl2ZV49MSx0aGlz''@;'; + put 'put ''Ll9ub3JtU2lnbigpO2lmKDA9PT10aGlzLm5lZ2F0aXZlJiYwIT09eC5uZWdhdGl2ZSlyZXR1cm4geC5uZWdhdGl2ZT0wLFA9dGhpcy5pc3ViKHgpLHgubmVnYXRpdmU9MSxQLl9ub3JtU2lnbigpO3RoaXMubGVuZ3RoPngubGVuZ3RoPyhWPXRoaXMsVD14KTooVj14LFQ9dGhpcyk7Zm9yKHZh''@;'; + put 'put ''ciBTPTAsRj0wO0Y8VC5sZW5ndGg7RisrKXRoaXMud29yZHNbRl09NjcxMDg4NjMmKFA9KDB8Vi53b3Jkc1tGXSkrKDB8VC53b3Jkc1tGXSkrUyksUz1QPj4+MjY7Zm9yKDswIT09UyYmRjxWLmxlbmd0aDtGKyspdGhpcy53b3Jkc1tGXT02NzEwODg2MyYoUD0oMHxWLndvcmRzW0ZdKStTKSxT''@;'; + put 'put ''PVA+Pj4yNjtpZih0aGlzLmxlbmd0aD1WLmxlbmd0aCwwIT09Uyl0aGlzLndvcmRzW3RoaXMubGVuZ3RoXT1TLHRoaXMubGVuZ3RoKys7ZWxzZSBpZihWIT09dGhpcylmb3IoO0Y8Vi5sZW5ndGg7RisrKXRoaXMud29yZHNbRl09Vi53b3Jkc1tGXTtyZXR1cm4gdGhpc30sTi5wcm90b3R5cGUu''@;'; + put 'put ''YWRkPWZ1bmN0aW9uKHgpe3ZhciBQO3JldHVybiAwIT09eC5uZWdhdGl2ZSYmMD09PXRoaXMubmVnYXRpdmU/KHgubmVnYXRpdmU9MCxQPXRoaXMuc3ViKHgpLHgubmVnYXRpdmVePTEsUCk6MD09PXgubmVnYXRpdmUmJjAhPT10aGlzLm5lZ2F0aXZlPyh0aGlzLm5lZ2F0aXZlPTAsUD14LnN1''@;'; + put 'put ''Yih0aGlzKSx0aGlzLm5lZ2F0aXZlPTEsUCk6dGhpcy5sZW5ndGg+eC5sZW5ndGg/dGhpcy5jbG9uZSgpLmlhZGQoeCk6eC5jbG9uZSgpLmlhZGQodGhpcyl9LE4ucHJvdG90eXBlLmlzdWI9ZnVuY3Rpb24oeCl7aWYoMCE9PXgubmVnYXRpdmUpe3gubmVnYXRpdmU9MDt2YXIgUD10aGlzLmlh''@;'; + put 'put ''ZGQoeCk7cmV0dXJuIHgubmVnYXRpdmU9MSxQLl9ub3JtU2lnbigpfWlmKDAhPT10aGlzLm5lZ2F0aXZlKXJldHVybiB0aGlzLm5lZ2F0aXZlPTAsdGhpcy5pYWRkKHgpLHRoaXMubmVnYXRpdmU9MSx0aGlzLl9ub3JtU2lnbigpO3ZhciBWLFQsUz10aGlzLmNtcCh4KTtpZigwPT09UylyZXR1''@;'; + put 'put ''cm4gdGhpcy5uZWdhdGl2ZT0wLHRoaXMubGVuZ3RoPTEsdGhpcy53b3Jkc1swXT0wLHRoaXM7Uz4wPyhWPXRoaXMsVD14KTooVj14LFQ9dGhpcyk7Zm9yKHZhciBGPTAseWU9MDt5ZTxULmxlbmd0aDt5ZSsrKUY9KFA9KDB8Vi53b3Jkc1t5ZV0pLSgwfFQud29yZHNbeWVdKStGKT4+MjYsdGhp''@;'; + put 'put ''cy53b3Jkc1t5ZV09NjcxMDg4NjMmUDtmb3IoOzAhPT1GJiZ5ZTxWLmxlbmd0aDt5ZSsrKUY9KFA9KDB8Vi53b3Jkc1t5ZV0pK0YpPj4yNix0aGlzLndvcmRzW3llXT02NzEwODg2MyZQO2lmKDA9PT1GJiZ5ZTxWLmxlbmd0aCYmViE9PXRoaXMpZm9yKDt5ZTxWLmxlbmd0aDt5ZSsrKXRoaXMu''@;'; + put 'put ''d29yZHNbeWVdPVYud29yZHNbeWVdO3JldHVybiB0aGlzLmxlbmd0aD1NYXRoLm1heCh0aGlzLmxlbmd0aCx5ZSksViE9PXRoaXMmJih0aGlzLm5lZ2F0aXZlPTEpLHRoaXMuc3RyaXAoKX0sTi5wcm90b3R5cGUuc3ViPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmNsb25lKCkuaXN1Yih4KX07''@;'; + put 'put ''dmFyIEFlPWZ1bmN0aW9uKHgsUCxWKXt2YXIgVCxTLEYseWU9eC53b3JkcyxDZT1QLndvcmRzLERlPVYud29yZHMsUGU9MCxRZT0wfHllWzBdLCRlPTgxOTEmUWUsZ3Q9UWU+Pj4xMyx3dD0wfHllWzFdLG10PTgxOTEmd3QsdnQ9d3Q+Pj4xMyxBdD0wfHllWzJdLGh0PTgxOTEmQXQsQnQ9QXQ+''@;'; + put 'put ''Pj4xMyxvbj0wfHllWzNdLF90PTgxOTEmb24sdHQ9b24+Pj4xMyxldD0wfHllWzRdLGF0PTgxOTEmZXQsTHQ9ZXQ+Pj4xMyxDdD0wfHllWzVdLGZ0PTgxOTEmQ3QsSHQ9Q3Q+Pj4xMyxHZT0wfHllWzZdLFVlPTgxOTEmR2UseXQ9R2U+Pj4xMyxqdD0wfHllWzddLFF0PTgxOTEmanQsZ249anQ+''@;'; + put 'put ''Pj4xMyxkbj0wfHllWzhdLHluPTgxOTEmZG4sbG49ZG4+Pj4xMyxObj0wfHllWzldLGJuPTgxOTEmTm4sZXI9Tm4+Pj4xMyxzcj0wfENlWzBdLFhuPTgxOTEmc3IsRnI9c3I+Pj4xMyx4cj0wfENlWzFdLHF0PTgxOTEmeHIscHI9eHI+Pj4xMyxucj0wfENlWzJdLEFuPTgxOTEmbnIscW49bnI+''@;'; + put 'put ''Pj4xMyxXdD0wfENlWzNdLHBuPTgxOTEmV3QsS249V3Q+Pj4xMyxOdD0wfENlWzRdLHNuPTgxOTEmTnQsVW49TnQ+Pj4xMyx3bj0wfENlWzVdLHRuPTgxOTEmd24sem49d24+Pj4xMyxUcj0wfENlWzZdLEJuPTgxOTEmVHIsa3I9VHI+Pj4xMyxtbj0wfENlWzddLHVuPTgxOTEmbW4sY249bW4+''@;'; + put 'put ''Pj4xMyxfbj0wfENlWzhdLEd0PTgxOTEmX24sa249X24+Pj4xMyxWbj0wfENlWzldLGVuPTgxOTEmVm4sSW49Vm4+Pj4xMztWLm5lZ2F0aXZlPXgubmVnYXRpdmVeUC5uZWdhdGl2ZSxWLmxlbmd0aD0xOTt2YXIgSm49KFBlKyhUPU1hdGguaW11bCgkZSxYbikpfDApKygoODE5MSYoUz0oUz1N''@;'; + put 'put ''YXRoLmltdWwoJGUsRnIpKStNYXRoLmltdWwoZ3QsWG4pfDApKTw8MTMpfDA7UGU9KChGPU1hdGguaW11bChndCxGcikpKyhTPj4+MTMpfDApKyhKbj4+PjI2KXwwLEpuJj02NzEwODg2MyxUPU1hdGguaW11bChtdCxYbiksUz0oUz1NYXRoLmltdWwobXQsRnIpKStNYXRoLmltdWwodnQsWG4p''@;'; + put 'put ''fDAsRj1NYXRoLmltdWwodnQsRnIpO3ZhciBvcj0oUGUrKFQ9VCtNYXRoLmltdWwoJGUscXQpfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bCgkZSxwcil8MCkrTWF0aC5pbXVsKGd0LHF0KXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGguaW11bChndCxwcil8MCkrKFM+Pj4xMyl8MCkr''@;'; + put 'put ''KG9yPj4+MjYpfDAsb3ImPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGh0LFhuKSxTPShTPU1hdGguaW11bChodCxGcikpK01hdGguaW11bChCdCxYbil8MCxGPU1hdGguaW11bChCdCxGciksVD1UK01hdGguaW11bChtdCxxdCl8MCxTPShTPVMrTWF0aC5pbXVsKG10LHByKXwwKStNYXRoLmltdWwo''@;'; + put 'put ''dnQscXQpfDAsRj1GK01hdGguaW11bCh2dCxwcil8MDt2YXIgZ3I9KFBlKyhUPVQrTWF0aC5pbXVsKCRlLEFuKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoJGUscW4pfDApK01hdGguaW11bChndCxBbil8MCkpPDwxMyl8MDtQZT0oKEY9RitNYXRoLmltdWwoZ3QscW4pfDApKyhT''@;'; + put 'put ''Pj4+MTMpfDApKyhncj4+PjI2KXwwLGdyJj02NzEwODg2MyxUPU1hdGguaW11bChfdCxYbiksUz0oUz1NYXRoLmltdWwoX3QsRnIpKStNYXRoLmltdWwodHQsWG4pfDAsRj1NYXRoLmltdWwodHQsRnIpLFQ9VCtNYXRoLmltdWwoaHQscXQpfDAsUz0oUz1TK01hdGguaW11bChodCxwcil8MCkr''@;'; + put 'put ''TWF0aC5pbXVsKEJ0LHF0KXwwLEY9RitNYXRoLmltdWwoQnQscHIpfDAsVD1UK01hdGguaW11bChtdCxBbil8MCxTPShTPVMrTWF0aC5pbXVsKG10LHFuKXwwKStNYXRoLmltdWwodnQsQW4pfDAsRj1GK01hdGguaW11bCh2dCxxbil8MDt2YXIgS3I9KFBlKyhUPVQrTWF0aC5pbXVsKCRlLHBu''@;'; + put 'put ''KXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoJGUsS24pfDApK01hdGguaW11bChndCxwbil8MCkpPDwxMyl8MDtQZT0oKEY9RitNYXRoLmltdWwoZ3QsS24pfDApKyhTPj4+MTMpfDApKyhLcj4+PjI2KXwwLEtyJj02NzEwODg2MyxUPU1hdGguaW11bChhdCxYbiksUz0oUz1NYXRo''@;'; + put 'put ''LmltdWwoYXQsRnIpKStNYXRoLmltdWwoTHQsWG4pfDAsRj1NYXRoLmltdWwoTHQsRnIpLFQ9VCtNYXRoLmltdWwoX3QscXQpfDAsUz0oUz1TK01hdGguaW11bChfdCxwcil8MCkrTWF0aC5pbXVsKHR0LHF0KXwwLEY9RitNYXRoLmltdWwodHQscHIpfDAsVD1UK01hdGguaW11bChodCxBbil8''@;'; + put 'put ''MCxTPShTPVMrTWF0aC5pbXVsKGh0LHFuKXwwKStNYXRoLmltdWwoQnQsQW4pfDAsRj1GK01hdGguaW11bChCdCxxbil8MCxUPVQrTWF0aC5pbXVsKG10LHBuKXwwLFM9KFM9UytNYXRoLmltdWwobXQsS24pfDApK01hdGguaW11bCh2dCxwbil8MCxGPUYrTWF0aC5pbXVsKHZ0LEtuKXwwO3Zh''@;'; + put 'put ''ciBWcj0oUGUrKFQ9VCtNYXRoLmltdWwoJGUsc24pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bCgkZSxVbil8MCkrTWF0aC5pbXVsKGd0LHNuKXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGguaW11bChndCxVbil8MCkrKFM+Pj4xMyl8MCkrKFZyPj4+MjYpfDAsVnImPTY3MTA4ODYz''@;'; + put 'put ''LFQ9TWF0aC5pbXVsKGZ0LFhuKSxTPShTPU1hdGguaW11bChmdCxGcikpK01hdGguaW11bChIdCxYbil8MCxGPU1hdGguaW11bChIdCxGciksVD1UK01hdGguaW11bChhdCxxdCl8MCxTPShTPVMrTWF0aC5pbXVsKGF0LHByKXwwKStNYXRoLmltdWwoTHQscXQpfDAsRj1GK01hdGguaW11bChM''@;'; + put 'put ''dCxwcil8MCxUPVQrTWF0aC5pbXVsKF90LEFuKXwwLFM9KFM9UytNYXRoLmltdWwoX3QscW4pfDApK01hdGguaW11bCh0dCxBbil8MCxGPUYrTWF0aC5pbXVsKHR0LHFuKXwwLFQ9VCtNYXRoLmltdWwoaHQscG4pfDAsUz0oUz1TK01hdGguaW11bChodCxLbil8MCkrTWF0aC5pbXVsKEJ0LHBu''@;'; + put 'put ''KXwwLEY9RitNYXRoLmltdWwoQnQsS24pfDAsVD1UK01hdGguaW11bChtdCxzbil8MCxTPShTPVMrTWF0aC5pbXVsKG10LFVuKXwwKStNYXRoLmltdWwodnQsc24pfDAsRj1GK01hdGguaW11bCh2dCxVbil8MDt2YXIgaWk9KFBlKyhUPVQrTWF0aC5pbXVsKCRlLHRuKXwwKXwwKSsoKDgxOTEm''@;'; + put 'put ''KFM9KFM9UytNYXRoLmltdWwoJGUsem4pfDApK01hdGguaW11bChndCx0bil8MCkpPDwxMyl8MDtQZT0oKEY9RitNYXRoLmltdWwoZ3Qsem4pfDApKyhTPj4+MTMpfDApKyhpaT4+PjI2KXwwLGlpJj02NzEwODg2MyxUPU1hdGguaW11bChVZSxYbiksUz0oUz1NYXRoLmltdWwoVWUsRnIpKStN''@;'; + put 'put ''YXRoLmltdWwoeXQsWG4pfDAsRj1NYXRoLmltdWwoeXQsRnIpLFQ9VCtNYXRoLmltdWwoZnQscXQpfDAsUz0oUz1TK01hdGguaW11bChmdCxwcil8MCkrTWF0aC5pbXVsKEh0LHF0KXwwLEY9RitNYXRoLmltdWwoSHQscHIpfDAsVD1UK01hdGguaW11bChhdCxBbil8MCxTPShTPVMrTWF0aC5p''@;'; + put 'put ''bXVsKGF0LHFuKXwwKStNYXRoLmltdWwoTHQsQW4pfDAsRj1GK01hdGguaW11bChMdCxxbil8MCxUPVQrTWF0aC5pbXVsKF90LHBuKXwwLFM9KFM9UytNYXRoLmltdWwoX3QsS24pfDApK01hdGguaW11bCh0dCxwbil8MCxGPUYrTWF0aC5pbXVsKHR0LEtuKXwwLFQ9VCtNYXRoLmltdWwoaHQs''@;'; + put 'put ''c24pfDAsUz0oUz1TK01hdGguaW11bChodCxVbil8MCkrTWF0aC5pbXVsKEJ0LHNuKXwwLEY9RitNYXRoLmltdWwoQnQsVW4pfDAsVD1UK01hdGguaW11bChtdCx0bil8MCxTPShTPVMrTWF0aC5pbXVsKG10LHpuKXwwKStNYXRoLmltdWwodnQsdG4pfDAsRj1GK01hdGguaW11bCh2dCx6bil8''@;'; + put 'put ''MDt2YXIgUnI9KFBlKyhUPVQrTWF0aC5pbXVsKCRlLEJuKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoJGUsa3IpfDApK01hdGguaW11bChndCxCbil8MCkpPDwxMyl8MDtQZT0oKEY9RitNYXRoLmltdWwoZ3Qsa3IpfDApKyhTPj4+MTMpfDApKyhScj4+PjI2KXwwLFJyJj02NzEw''@;'; + put 'put ''ODg2MyxUPU1hdGguaW11bChRdCxYbiksUz0oUz1NYXRoLmltdWwoUXQsRnIpKStNYXRoLmltdWwoZ24sWG4pfDAsRj1NYXRoLmltdWwoZ24sRnIpLFQ9VCtNYXRoLmltdWwoVWUscXQpfDAsUz0oUz1TK01hdGguaW11bChVZSxwcil8MCkrTWF0aC5pbXVsKHl0LHF0KXwwLEY9RitNYXRoLmlt''@;'; + put 'put ''dWwoeXQscHIpfDAsVD1UK01hdGguaW11bChmdCxBbil8MCxTPShTPVMrTWF0aC5pbXVsKGZ0LHFuKXwwKStNYXRoLmltdWwoSHQsQW4pfDAsRj1GK01hdGguaW11bChIdCxxbil8MCxUPVQrTWF0aC5pbXVsKGF0LHBuKXwwLFM9KFM9UytNYXRoLmltdWwoYXQsS24pfDApK01hdGguaW11bChM''@;'; + put 'put ''dCxwbil8MCxGPUYrTWF0aC5pbXVsKEx0LEtuKXwwLFQ9VCtNYXRoLmltdWwoX3Qsc24pfDAsUz0oUz1TK01hdGguaW11bChfdCxVbil8MCkrTWF0aC5pbXVsKHR0LHNuKXwwLEY9RitNYXRoLmltdWwodHQsVW4pfDAsVD1UK01hdGguaW11bChodCx0bil8MCxTPShTPVMrTWF0aC5pbXVsKGh0''@;'; + put 'put ''LHpuKXwwKStNYXRoLmltdWwoQnQsdG4pfDAsRj1GK01hdGguaW11bChCdCx6bil8MCxUPVQrTWF0aC5pbXVsKG10LEJuKXwwLFM9KFM9UytNYXRoLmltdWwobXQsa3IpfDApK01hdGguaW11bCh2dCxCbil8MCxGPUYrTWF0aC5pbXVsKHZ0LGtyKXwwO3ZhciBsaT0oUGUrKFQ9VCtNYXRoLmlt''@;'; + put 'put ''dWwoJGUsdW4pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bCgkZSxjbil8MCkrTWF0aC5pbXVsKGd0LHVuKXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGguaW11bChndCxjbil8MCkrKFM+Pj4xMyl8MCkrKGxpPj4+MjYpfDAsbGkmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKHluLFhuKSxT''@;'; + put 'put ''PShTPU1hdGguaW11bCh5bixGcikpK01hdGguaW11bChsbixYbil8MCxGPU1hdGguaW11bChsbixGciksVD1UK01hdGguaW11bChRdCxxdCl8MCxTPShTPVMrTWF0aC5pbXVsKFF0LHByKXwwKStNYXRoLmltdWwoZ24scXQpfDAsRj1GK01hdGguaW11bChnbixwcil8MCxUPVQrTWF0aC5pbXVs''@;'; + put 'put ''KFVlLEFuKXwwLFM9KFM9UytNYXRoLmltdWwoVWUscW4pfDApK01hdGguaW11bCh5dCxBbil8MCxGPUYrTWF0aC5pbXVsKHl0LHFuKXwwLFQ9VCtNYXRoLmltdWwoZnQscG4pfDAsUz0oUz1TK01hdGguaW11bChmdCxLbil8MCkrTWF0aC5pbXVsKEh0LHBuKXwwLEY9RitNYXRoLmltdWwoSHQs''@;'; + put 'put ''S24pfDAsVD1UK01hdGguaW11bChhdCxzbil8MCxTPShTPVMrTWF0aC5pbXVsKGF0LFVuKXwwKStNYXRoLmltdWwoTHQsc24pfDAsRj1GK01hdGguaW11bChMdCxVbil8MCxUPVQrTWF0aC5pbXVsKF90LHRuKXwwLFM9KFM9UytNYXRoLmltdWwoX3Qsem4pfDApK01hdGguaW11bCh0dCx0bil8''@;'; + put 'put ''MCxGPUYrTWF0aC5pbXVsKHR0LHpuKXwwLFQ9VCtNYXRoLmltdWwoaHQsQm4pfDAsUz0oUz1TK01hdGguaW11bChodCxrcil8MCkrTWF0aC5pbXVsKEJ0LEJuKXwwLEY9RitNYXRoLmltdWwoQnQsa3IpfDAsVD1UK01hdGguaW11bChtdCx1bil8MCxTPShTPVMrTWF0aC5pbXVsKG10LGNuKXww''@;'; + put 'put ''KStNYXRoLmltdWwodnQsdW4pfDAsRj1GK01hdGguaW11bCh2dCxjbil8MDt2YXIgTWk9KFBlKyhUPVQrTWF0aC5pbXVsKCRlLEd0KXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoJGUsa24pfDApK01hdGguaW11bChndCxHdCl8MCkpPDwxMyl8MDtQZT0oKEY9RitNYXRoLmltdWwo''@;'; + put 'put ''Z3Qsa24pfDApKyhTPj4+MTMpfDApKyhNaT4+PjI2KXwwLE1pJj02NzEwODg2MyxUPU1hdGguaW11bChibixYbiksUz0oUz1NYXRoLmltdWwoYm4sRnIpKStNYXRoLmltdWwoZXIsWG4pfDAsRj1NYXRoLmltdWwoZXIsRnIpLFQ9VCtNYXRoLmltdWwoeW4scXQpfDAsUz0oUz1TK01hdGguaW11''@;'; + put 'put ''bCh5bixwcil8MCkrTWF0aC5pbXVsKGxuLHF0KXwwLEY9RitNYXRoLmltdWwobG4scHIpfDAsVD1UK01hdGguaW11bChRdCxBbil8MCxTPShTPVMrTWF0aC5pbXVsKFF0LHFuKXwwKStNYXRoLmltdWwoZ24sQW4pfDAsRj1GK01hdGguaW11bChnbixxbil8MCxUPVQrTWF0aC5pbXVsKFVlLHBu''@;'; + put 'put ''KXwwLFM9KFM9UytNYXRoLmltdWwoVWUsS24pfDApK01hdGguaW11bCh5dCxwbil8MCxGPUYrTWF0aC5pbXVsKHl0LEtuKXwwLFQ9VCtNYXRoLmltdWwoZnQsc24pfDAsUz0oUz1TK01hdGguaW11bChmdCxVbil8MCkrTWF0aC5pbXVsKEh0LHNuKXwwLEY9RitNYXRoLmltdWwoSHQsVW4pfDAs''@;'; + put 'put ''VD1UK01hdGguaW11bChhdCx0bil8MCxTPShTPVMrTWF0aC5pbXVsKGF0LHpuKXwwKStNYXRoLmltdWwoTHQsdG4pfDAsRj1GK01hdGguaW11bChMdCx6bil8MCxUPVQrTWF0aC5pbXVsKF90LEJuKXwwLFM9KFM9UytNYXRoLmltdWwoX3Qsa3IpfDApK01hdGguaW11bCh0dCxCbil8MCxGPUYr''@;'; + put 'put ''TWF0aC5pbXVsKHR0LGtyKXwwLFQ9VCtNYXRoLmltdWwoaHQsdW4pfDAsUz0oUz1TK01hdGguaW11bChodCxjbil8MCkrTWF0aC5pbXVsKEJ0LHVuKXwwLEY9RitNYXRoLmltdWwoQnQsY24pfDAsVD1UK01hdGguaW11bChtdCxHdCl8MCxTPShTPVMrTWF0aC5pbXVsKG10LGtuKXwwKStNYXRo''@;'; + put 'put ''LmltdWwodnQsR3QpfDAsRj1GK01hdGguaW11bCh2dCxrbil8MDt2YXIgbzA9KFBlKyhUPVQrTWF0aC5pbXVsKCRlLGVuKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoJGUsSW4pfDApK01hdGguaW11bChndCxlbil8MCkpPDwxMyl8MDtQZT0oKEY9RitNYXRoLmltdWwoZ3QsSW4p''@;'; + put 'put ''fDApKyhTPj4+MTMpfDApKyhvMD4+PjI2KXwwLG8wJj02NzEwODg2MyxUPU1hdGguaW11bChibixxdCksUz0oUz1NYXRoLmltdWwoYm4scHIpKStNYXRoLmltdWwoZXIscXQpfDAsRj1NYXRoLmltdWwoZXIscHIpLFQ9VCtNYXRoLmltdWwoeW4sQW4pfDAsUz0oUz1TK01hdGguaW11bCh5bixx''@;'; + put 'put ''bil8MCkrTWF0aC5pbXVsKGxuLEFuKXwwLEY9RitNYXRoLmltdWwobG4scW4pfDAsVD1UK01hdGguaW11bChRdCxwbil8MCxTPShTPVMrTWF0aC5pbXVsKFF0LEtuKXwwKStNYXRoLmltdWwoZ24scG4pfDAsRj1GK01hdGguaW11bChnbixLbil8MCxUPVQrTWF0aC5pbXVsKFVlLHNuKXwwLFM9''@;'; + put 'put ''KFM9UytNYXRoLmltdWwoVWUsVW4pfDApK01hdGguaW11bCh5dCxzbil8MCxGPUYrTWF0aC5pbXVsKHl0LFVuKXwwLFQ9VCtNYXRoLmltdWwoZnQsdG4pfDAsUz0oUz1TK01hdGguaW11bChmdCx6bil8MCkrTWF0aC5pbXVsKEh0LHRuKXwwLEY9RitNYXRoLmltdWwoSHQsem4pfDAsVD1UK01h''@;'; + put 'put ''dGguaW11bChhdCxCbil8MCxTPShTPVMrTWF0aC5pbXVsKGF0LGtyKXwwKStNYXRoLmltdWwoTHQsQm4pfDAsRj1GK01hdGguaW11bChMdCxrcil8MCxUPVQrTWF0aC5pbXVsKF90LHVuKXwwLFM9KFM9UytNYXRoLmltdWwoX3QsY24pfDApK01hdGguaW11bCh0dCx1bil8MCxGPUYrTWF0aC5p''@;'; + put 'put ''bXVsKHR0LGNuKXwwLFQ9VCtNYXRoLmltdWwoaHQsR3QpfDAsUz0oUz1TK01hdGguaW11bChodCxrbil8MCkrTWF0aC5pbXVsKEJ0LEd0KXwwLEY9RitNYXRoLmltdWwoQnQsa24pfDA7dmFyIG4wPShQZSsoVD1UK01hdGguaW11bChtdCxlbil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5p''@;'; + put 'put ''bXVsKG10LEluKXwwKStNYXRoLmltdWwodnQsZW4pfDApKTw8MTMpfDA7UGU9KChGPUYrTWF0aC5pbXVsKHZ0LEluKXwwKSsoUz4+PjEzKXwwKSsobjA+Pj4yNil8MCxuMCY9NjcxMDg4NjMsVD1NYXRoLmltdWwoYm4sQW4pLFM9KFM9TWF0aC5pbXVsKGJuLHFuKSkrTWF0aC5pbXVsKGVyLEFu''@;'; + put 'put ''KXwwLEY9TWF0aC5pbXVsKGVyLHFuKSxUPVQrTWF0aC5pbXVsKHluLHBuKXwwLFM9KFM9UytNYXRoLmltdWwoeW4sS24pfDApK01hdGguaW11bChsbixwbil8MCxGPUYrTWF0aC5pbXVsKGxuLEtuKXwwLFQ9VCtNYXRoLmltdWwoUXQsc24pfDAsUz0oUz1TK01hdGguaW11bChRdCxVbil8MCkr''@;'; + put 'put ''TWF0aC5pbXVsKGduLHNuKXwwLEY9RitNYXRoLmltdWwoZ24sVW4pfDAsVD1UK01hdGguaW11bChVZSx0bil8MCxTPShTPVMrTWF0aC5pbXVsKFVlLHpuKXwwKStNYXRoLmltdWwoeXQsdG4pfDAsRj1GK01hdGguaW11bCh5dCx6bil8MCxUPVQrTWF0aC5pbXVsKGZ0LEJuKXwwLFM9KFM9UytN''@;'; + put 'put ''YXRoLmltdWwoZnQsa3IpfDApK01hdGguaW11bChIdCxCbil8MCxGPUYrTWF0aC5pbXVsKEh0LGtyKXwwLFQ9VCtNYXRoLmltdWwoYXQsdW4pfDAsUz0oUz1TK01hdGguaW11bChhdCxjbil8MCkrTWF0aC5pbXVsKEx0LHVuKXwwLEY9RitNYXRoLmltdWwoTHQsY24pfDAsVD1UK01hdGguaW11''@;'; + put 'put ''bChfdCxHdCl8MCxTPShTPVMrTWF0aC5pbXVsKF90LGtuKXwwKStNYXRoLmltdWwodHQsR3QpfDAsRj1GK01hdGguaW11bCh0dCxrbil8MDt2YXIgZDA9KFBlKyhUPVQrTWF0aC5pbXVsKGh0LGVuKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoaHQsSW4pfDApK01hdGguaW11bChC''@;'; + put 'put ''dCxlbil8MCkpPDwxMyl8MDtQZT0oKEY9RitNYXRoLmltdWwoQnQsSW4pfDApKyhTPj4+MTMpfDApKyhkMD4+PjI2KXwwLGQwJj02NzEwODg2MyxUPU1hdGguaW11bChibixwbiksUz0oUz1NYXRoLmltdWwoYm4sS24pKStNYXRoLmltdWwoZXIscG4pfDAsRj1NYXRoLmltdWwoZXIsS24pLFQ9''@;'; + put 'put ''VCtNYXRoLmltdWwoeW4sc24pfDAsUz0oUz1TK01hdGguaW11bCh5bixVbil8MCkrTWF0aC5pbXVsKGxuLHNuKXwwLEY9RitNYXRoLmltdWwobG4sVW4pfDAsVD1UK01hdGguaW11bChRdCx0bil8MCxTPShTPVMrTWF0aC5pbXVsKFF0LHpuKXwwKStNYXRoLmltdWwoZ24sdG4pfDAsRj1GK01h''@;'; + put 'put ''dGguaW11bChnbix6bil8MCxUPVQrTWF0aC5pbXVsKFVlLEJuKXwwLFM9KFM9UytNYXRoLmltdWwoVWUsa3IpfDApK01hdGguaW11bCh5dCxCbil8MCxGPUYrTWF0aC5pbXVsKHl0LGtyKXwwLFQ9VCtNYXRoLmltdWwoZnQsdW4pfDAsUz0oUz1TK01hdGguaW11bChmdCxjbil8MCkrTWF0aC5p''@;'; + put 'put ''bXVsKEh0LHVuKXwwLEY9RitNYXRoLmltdWwoSHQsY24pfDAsVD1UK01hdGguaW11bChhdCxHdCl8MCxTPShTPVMrTWF0aC5pbXVsKGF0LGtuKXwwKStNYXRoLmltdWwoTHQsR3QpfDAsRj1GK01hdGguaW11bChMdCxrbil8MDt2YXIgbTA9KFBlKyhUPVQrTWF0aC5pbXVsKF90LGVuKXwwKXww''@;'; + put 'put ''KSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoX3QsSW4pfDApK01hdGguaW11bCh0dCxlbil8MCkpPDwxMyl8MDtQZT0oKEY9RitNYXRoLmltdWwodHQsSW4pfDApKyhTPj4+MTMpfDApKyhtMD4+PjI2KXwwLG0wJj02NzEwODg2MyxUPU1hdGguaW11bChibixzbiksUz0oUz1NYXRoLmltdWwo''@;'; + put 'put ''Ym4sVW4pKStNYXRoLmltdWwoZXIsc24pfDAsRj1NYXRoLmltdWwoZXIsVW4pLFQ9VCtNYXRoLmltdWwoeW4sdG4pfDAsUz0oUz1TK01hdGguaW11bCh5bix6bil8MCkrTWF0aC5pbXVsKGxuLHRuKXwwLEY9RitNYXRoLmltdWwobG4sem4pfDAsVD1UK01hdGguaW11bChRdCxCbil8MCxTPShT''@;'; + put 'put ''PVMrTWF0aC5pbXVsKFF0LGtyKXwwKStNYXRoLmltdWwoZ24sQm4pfDAsRj1GK01hdGguaW11bChnbixrcil8MCxUPVQrTWF0aC5pbXVsKFVlLHVuKXwwLFM9KFM9UytNYXRoLmltdWwoVWUsY24pfDApK01hdGguaW11bCh5dCx1bil8MCxGPUYrTWF0aC5pbXVsKHl0LGNuKXwwLFQ9VCtNYXRo''@;'; + put 'put ''LmltdWwoZnQsR3QpfDAsUz0oUz1TK01hdGguaW11bChmdCxrbil8MCkrTWF0aC5pbXVsKEh0LEd0KXwwLEY9RitNYXRoLmltdWwoSHQsa24pfDA7dmFyIEcwPShQZSsoVD1UK01hdGguaW11bChhdCxlbil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKGF0LEluKXwwKStNYXRoLmlt''@;'; + put 'put ''dWwoTHQsZW4pfDApKTw8MTMpfDA7UGU9KChGPUYrTWF0aC5pbXVsKEx0LEluKXwwKSsoUz4+PjEzKXwwKSsoRzA+Pj4yNil8MCxHMCY9NjcxMDg4NjMsVD1NYXRoLmltdWwoYm4sdG4pLFM9KFM9TWF0aC5pbXVsKGJuLHpuKSkrTWF0aC5pbXVsKGVyLHRuKXwwLEY9TWF0aC5pbXVsKGVyLHpu''@;'; + put 'put ''KSxUPVQrTWF0aC5pbXVsKHluLEJuKXwwLFM9KFM9UytNYXRoLmltdWwoeW4sa3IpfDApK01hdGguaW11bChsbixCbil8MCxGPUYrTWF0aC5pbXVsKGxuLGtyKXwwLFQ9VCtNYXRoLmltdWwoUXQsdW4pfDAsUz0oUz1TK01hdGguaW11bChRdCxjbil8MCkrTWF0aC5pbXVsKGduLHVuKXwwLEY9''@;'; + put 'put ''RitNYXRoLmltdWwoZ24sY24pfDAsVD1UK01hdGguaW11bChVZSxHdCl8MCxTPShTPVMrTWF0aC5pbXVsKFVlLGtuKXwwKStNYXRoLmltdWwoeXQsR3QpfDAsRj1GK01hdGguaW11bCh5dCxrbil8MDt2YXIgRGk9KFBlKyhUPVQrTWF0aC5pbXVsKGZ0LGVuKXwwKXwwKSsoKDgxOTEmKFM9KFM9''@;'; + put 'put ''UytNYXRoLmltdWwoZnQsSW4pfDApK01hdGguaW11bChIdCxlbil8MCkpPDwxMyl8MDtQZT0oKEY9RitNYXRoLmltdWwoSHQsSW4pfDApKyhTPj4+MTMpfDApKyhEaT4+PjI2KXwwLERpJj02NzEwODg2MyxUPU1hdGguaW11bChibixCbiksUz0oUz1NYXRoLmltdWwoYm4sa3IpKStNYXRoLmlt''@;'; + put 'put ''dWwoZXIsQm4pfDAsRj1NYXRoLmltdWwoZXIsa3IpLFQ9VCtNYXRoLmltdWwoeW4sdW4pfDAsUz0oUz1TK01hdGguaW11bCh5bixjbil8MCkrTWF0aC5pbXVsKGxuLHVuKXwwLEY9RitNYXRoLmltdWwobG4sY24pfDAsVD1UK01hdGguaW11bChRdCxHdCl8MCxTPShTPVMrTWF0aC5pbXVsKFF0''@;'; + put 'put ''LGtuKXwwKStNYXRoLmltdWwoZ24sR3QpfDAsRj1GK01hdGguaW11bChnbixrbil8MDt2YXIgVzA9KFBlKyhUPVQrTWF0aC5pbXVsKFVlLGVuKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoVWUsSW4pfDApK01hdGguaW11bCh5dCxlbil8MCkpPDwxMyl8MDtQZT0oKEY9RitNYXRo''@;'; + put 'put ''LmltdWwoeXQsSW4pfDApKyhTPj4+MTMpfDApKyhXMD4+PjI2KXwwLFcwJj02NzEwODg2MyxUPU1hdGguaW11bChibix1biksUz0oUz1NYXRoLmltdWwoYm4sY24pKStNYXRoLmltdWwoZXIsdW4pfDAsRj1NYXRoLmltdWwoZXIsY24pLFQ9VCtNYXRoLmltdWwoeW4sR3QpfDAsUz0oUz1TK01h''@;'; + put 'put ''dGguaW11bCh5bixrbil8MCkrTWF0aC5pbXVsKGxuLEd0KXwwLEY9RitNYXRoLmltdWwobG4sa24pfDA7dmFyIEVvPShQZSsoVD1UK01hdGguaW11bChRdCxlbil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKFF0LEluKXwwKStNYXRoLmltdWwoZ24sZW4pfDApKTw8MTMpfDA7UGU9''@;'; + put 'put ''KChGPUYrTWF0aC5pbXVsKGduLEluKXwwKSsoUz4+PjEzKXwwKSsoRW8+Pj4yNil8MCxFbyY9NjcxMDg4NjMsVD1NYXRoLmltdWwoYm4sR3QpLFM9KFM9TWF0aC5pbXVsKGJuLGtuKSkrTWF0aC5pbXVsKGVyLEd0KXwwLEY9TWF0aC5pbXVsKGVyLGtuKTt2YXIgcW89KFBlKyhUPVQrTWF0aC5p''@;'; + put 'put ''bXVsKHluLGVuKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoeW4sSW4pfDApK01hdGguaW11bChsbixlbil8MCkpPDwxMyl8MDtQZT0oKEY9RitNYXRoLmltdWwobG4sSW4pfDApKyhTPj4+MTMpfDApKyhxbz4+PjI2KXwwLHFvJj02NzEwODg2Mzt2YXIgY2E9KFBlKyhUPU1hdGgu''@;'; + put 'put ''aW11bChibixlbikpfDApKygoODE5MSYoUz0oUz1NYXRoLmltdWwoYm4sSW4pKStNYXRoLmltdWwoZXIsZW4pfDApKTw8MTMpfDA7cmV0dXJuIFBlPSgoRj1NYXRoLmltdWwoZXIsSW4pKSsoUz4+PjEzKXwwKSsoY2E+Pj4yNil8MCxjYSY9NjcxMDg4NjMsRGVbMF09Sm4sRGVbMV09b3IsRGVb''@;'; + put 'put ''Ml09Z3IsRGVbM109S3IsRGVbNF09VnIsRGVbNV09aWksRGVbNl09UnIsRGVbN109bGksRGVbOF09TWksRGVbOV09bzAsRGVbMTBdPW4wLERlWzExXT1kMCxEZVsxMl09bTAsRGVbMTNdPUcwLERlWzE0XT1EaSxEZVsxNV09VzAsRGVbMTZdPUVvLERlWzE3XT1xbyxEZVsxOF09Y2EsMCE9PVBl''@;'; + put 'put ''JiYoRGVbMTldPVBlLFYubGVuZ3RoKyspLFZ9O2Z1bmN0aW9uIGtlKHgsUCxWKXtyZXR1cm4obmV3IFNlKS5tdWxwKHgsUCxWKX1mdW5jdGlvbiBTZSh4LFApe3RoaXMueD14LHRoaXMueT1QfU1hdGguaW11bHx8KEFlPXZlKSxOLnByb3RvdHlwZS5tdWxUbz1mdW5jdGlvbih4LFApe3ZhciBU''@;'; + put 'put ''PXRoaXMubGVuZ3RoK3gubGVuZ3RoO3JldHVybiAxMD09PXRoaXMubGVuZ3RoJiYxMD09PXgubGVuZ3RoP0FlKHRoaXMseCxQKTpUPDYzP3ZlKHRoaXMseCxQKTpUPDEwMjQ/ZnVuY3Rpb24oUyxGLHllKXt5ZS5uZWdhdGl2ZT1GLm5lZ2F0aXZlXlMubmVnYXRpdmUseWUubGVuZ3RoPVMubGVu''@;'; + put 'put ''Z3RoK0YubGVuZ3RoO2Zvcih2YXIgQ2U9MCxEZT0wLFBlPTA7UGU8eWUubGVuZ3RoLTE7UGUrKyl7dmFyIFFlPURlO0RlPTA7Zm9yKHZhciAkZT02NzEwODg2MyZDZSxndD1NYXRoLm1pbihQZSxGLmxlbmd0aC0xKSx3dD1NYXRoLm1heCgwLFBlLVMubGVuZ3RoKzEpO3d0PD1ndDt3dCsrKXt2''@;'; + put 'put ''YXIgdnQ9KDB8Uy53b3Jkc1tQZS13dF0pKigwfEYud29yZHNbd3RdKSxBdD02NzEwODg2MyZ2dDskZT02NzEwODg2MyYoQXQ9QXQrJGV8MCksRGUrPShRZT0oUWU9UWUrKHZ0LzY3MTA4ODY0fDApfDApKyhBdD4+PjI2KXwwKT4+PjI2LFFlJj02NzEwODg2M315ZS53b3Jkc1tQZV09JGUsQ2U9''@;'; + put 'put ''UWUsUWU9RGV9cmV0dXJuIDAhPT1DZT95ZS53b3Jkc1tQZV09Q2U6eWUubGVuZ3RoLS0seWUuc3RyaXAoKX0odGhpcyx4LFApOmtlKHRoaXMseCxQKX0sU2UucHJvdG90eXBlLm1ha2VSQlQ9ZnVuY3Rpb24oeCl7Zm9yKHZhciBQPW5ldyBBcnJheSh4KSxWPU4ucHJvdG90eXBlLl9jb3VudEJp''@;'; + put 'put ''dHMoeCktMSxUPTA7VDx4O1QrKylQW1RdPXRoaXMucmV2QmluKFQsVix4KTtyZXR1cm4gUH0sU2UucHJvdG90eXBlLnJldkJpbj1mdW5jdGlvbih4LFAsVil7aWYoMD09PXh8fHg9PT1WLTEpcmV0dXJuIHg7Zm9yKHZhciBUPTAsUz0wO1M8UDtTKyspVHw9KDEmeCk8PFAtUy0xLHg+Pj0xO3Jl''@;'; + put 'put ''dHVybiBUfSxTZS5wcm90b3R5cGUucGVybXV0ZT1mdW5jdGlvbih4LFAsVixULFMsRil7Zm9yKHZhciB5ZT0wO3llPEY7eWUrKylUW3llXT1QW3hbeWVdXSxTW3llXT1WW3hbeWVdXX0sU2UucHJvdG90eXBlLnRyYW5zZm9ybT1mdW5jdGlvbih4LFAsVixULFMsRil7dGhpcy5wZXJtdXRlKEYs''@;'; + put 'put ''eCxQLFYsVCxTKTtmb3IodmFyIHllPTE7eWU8Uzt5ZTw8PTEpZm9yKHZhciBDZT15ZTw8MSxEZT1NYXRoLmNvcygyKk1hdGguUEkvQ2UpLFBlPU1hdGguc2luKDIqTWF0aC5QSS9DZSksUWU9MDtRZTxTO1FlKz1DZSlmb3IodmFyICRlPURlLGd0PVBlLHd0PTA7d3Q8eWU7d3QrKyl7dmFyIG10''@;'; + put 'put ''PVZbUWUrd3RdLHZ0PVRbUWUrd3RdLEF0PVZbUWUrd3QreWVdLGh0PVRbUWUrd3QreWVdLEJ0PSRlKkF0LWd0Kmh0O2h0PSRlKmh0K2d0KkF0LFZbUWUrd3RdPW10KyhBdD1CdCksVFtRZSt3dF09dnQraHQsVltRZSt3dCt5ZV09bXQtQXQsVFtRZSt3dCt5ZV09dnQtaHQsd3QhPT1DZSYmKEJ0''@;'; + put 'put ''PURlKiRlLVBlKmd0LGd0PURlKmd0K1BlKiRlLCRlPUJ0KX19LFNlLnByb3RvdHlwZS5ndWVzc0xlbjEzYj1mdW5jdGlvbih4LFApe3ZhciBWPTF8TWF0aC5tYXgoUCx4KSxUPTEmVixTPTA7Zm9yKFY9Vi8yfDA7VjtWPj4+PTEpUysrO3JldHVybiAxPDxTKzErVH0sU2UucHJvdG90eXBlLmNv''@;'; + put 'put ''bmp1Z2F0ZT1mdW5jdGlvbih4LFAsVil7aWYoIShWPD0xKSlmb3IodmFyIFQ9MDtUPFYvMjtUKyspe3ZhciBTPXhbVF07eFtUXT14W1YtVC0xXSx4W1YtVC0xXT1TLFM9UFtUXSxQW1RdPS1QW1YtVC0xXSxQW1YtVC0xXT0tU319LFNlLnByb3RvdHlwZS5ub3JtYWxpemUxM2I9ZnVuY3Rpb24o''@;'; + put 'put ''eCxQKXtmb3IodmFyIFY9MCxUPTA7VDxQLzI7VCsrKXt2YXIgUz04MTkyKk1hdGgucm91bmQoeFsyKlQrMV0vUCkrTWF0aC5yb3VuZCh4WzIqVF0vUCkrVjt4W1RdPTY3MTA4ODYzJlMsVj1TPDY3MTA4ODY0PzA6Uy82NzEwODg2NHwwfXJldHVybiB4fSxTZS5wcm90b3R5cGUuY29udmVydDEz''@;'; + put 'put ''Yj1mdW5jdGlvbih4LFAsVixUKXtmb3IodmFyIFM9MCxGPTA7RjxQO0YrKylWWzIqRl09ODE5MSYoUys9MHx4W0ZdKSxWWzIqRisxXT04MTkxJihTPj4+PTEzKSxTPj4+PTEzO2ZvcihGPTIqUDtGPFQ7KytGKVZbRl09MDtZKDA9PT1TKSxZKDA9PSgtODE5MiZTKSl9LFNlLnByb3RvdHlwZS5z''@;'; + put 'put ''dHViPWZ1bmN0aW9uKHgpe2Zvcih2YXIgUD1uZXcgQXJyYXkoeCksVj0wO1Y8eDtWKyspUFtWXT0wO3JldHVybiBQfSxTZS5wcm90b3R5cGUubXVscD1mdW5jdGlvbih4LFAsVil7dmFyIFQ9Mip0aGlzLmd1ZXNzTGVuMTNiKHgubGVuZ3RoLFAubGVuZ3RoKSxTPXRoaXMubWFrZVJCVChUKSxG''@;'; + put 'put ''PXRoaXMuc3R1YihUKSx5ZT1uZXcgQXJyYXkoVCksQ2U9bmV3IEFycmF5KFQpLERlPW5ldyBBcnJheShUKSxQZT1uZXcgQXJyYXkoVCksUWU9bmV3IEFycmF5KFQpLCRlPW5ldyBBcnJheShUKSxndD1WLndvcmRzO2d0Lmxlbmd0aD1ULHRoaXMuY29udmVydDEzYih4LndvcmRzLHgubGVuZ3Ro''@;'; + put 'put ''LHllLFQpLHRoaXMuY29udmVydDEzYihQLndvcmRzLFAubGVuZ3RoLFBlLFQpLHRoaXMudHJhbnNmb3JtKHllLEYsQ2UsRGUsVCxTKSx0aGlzLnRyYW5zZm9ybShQZSxGLFFlLCRlLFQsUyk7Zm9yKHZhciB3dD0wO3d0PFQ7d3QrKyl7dmFyIG10PUNlW3d0XSpRZVt3dF0tRGVbd3RdKiRlW3d0''@;'; + put 'put ''XTtEZVt3dF09Q2Vbd3RdKiRlW3d0XStEZVt3dF0qUWVbd3RdLENlW3d0XT1tdH1yZXR1cm4gdGhpcy5jb25qdWdhdGUoQ2UsRGUsVCksdGhpcy50cmFuc2Zvcm0oQ2UsRGUsZ3QsRixULFMpLHRoaXMuY29uanVnYXRlKGd0LEYsVCksdGhpcy5ub3JtYWxpemUxM2IoZ3QsVCksVi5uZWdhdGl2''@;'; + put 'put ''ZT14Lm5lZ2F0aXZlXlAubmVnYXRpdmUsVi5sZW5ndGg9eC5sZW5ndGgrUC5sZW5ndGgsVi5zdHJpcCgpfSxOLnByb3RvdHlwZS5tdWw9ZnVuY3Rpb24oeCl7dmFyIFA9bmV3IE4obnVsbCk7cmV0dXJuIFAud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoK3gubGVuZ3RoKSx0aGlzLm11bFRv''@;'; + put 'put ''KHgsUCl9LE4ucHJvdG90eXBlLm11bGY9ZnVuY3Rpb24oeCl7dmFyIFA9bmV3IE4obnVsbCk7cmV0dXJuIFAud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoK3gubGVuZ3RoKSxrZSh0aGlzLHgsUCl9LE4ucHJvdG90eXBlLmltdWw9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5t''@;'; + put 'put ''dWxUbyh4LHRoaXMpfSxOLnByb3RvdHlwZS5pbXVsbj1mdW5jdGlvbih4KXtZKCJudW1iZXIiPT10eXBlb2YgeCksWSh4PDY3MTA4ODY0KTtmb3IodmFyIFA9MCxWPTA7Vjx0aGlzLmxlbmd0aDtWKyspe3ZhciBUPSgwfHRoaXMud29yZHNbVl0pKngsUz0oNjcxMDg4NjMmVCkrKDY3MTA4ODYz''@;'; + put 'put ''JlApO1A+Pj0yNixQKz1ULzY3MTA4ODY0fDAsUCs9Uz4+PjI2LHRoaXMud29yZHNbVl09NjcxMDg4NjMmU31yZXR1cm4gMCE9PVAmJih0aGlzLndvcmRzW1ZdPVAsdGhpcy5sZW5ndGgrKyksdGhpc30sTi5wcm90b3R5cGUubXVsbj1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlt''@;'; + put 'put ''dWxuKHgpfSxOLnByb3RvdHlwZS5zcXI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdWwodGhpcyl9LE4ucHJvdG90eXBlLmlzcXI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pbXVsKHRoaXMuY2xvbmUoKSl9LE4ucHJvdG90eXBlLnBvdz1mdW5jdGlvbih4KXt2YXIgUD1mdW5jdGlvbihGKXtm''@;'; + put 'put ''b3IodmFyIHllPW5ldyBBcnJheShGLmJpdExlbmd0aCgpKSxDZT0wO0NlPHllLmxlbmd0aDtDZSsrKXt2YXIgUGU9Q2UlMjY7eWVbQ2VdPShGLndvcmRzW0NlLzI2fDBdJjE8PFBlKT4+PlBlfXJldHVybiB5ZX0oeCk7aWYoMD09PVAubGVuZ3RoKXJldHVybiBuZXcgTigxKTtmb3IodmFyIFY9''@;'; + put 'put ''dGhpcyxUPTA7VDxQLmxlbmd0aCYmMD09PVBbVF07VCsrLFY9Vi5zcXIoKSk7aWYoKytUPFAubGVuZ3RoKWZvcih2YXIgUz1WLnNxcigpO1Q8UC5sZW5ndGg7VCsrLFM9Uy5zcXIoKSkwIT09UFtUXSYmKFY9Vi5tdWwoUykpO3JldHVybiBWfSxOLnByb3RvdHlwZS5pdXNobG49ZnVuY3Rpb24o''@;'; + put 'put ''eCl7WSgibnVtYmVyIj09dHlwZW9mIHgmJng+PTApO3ZhciBQLFY9eCUyNixUPSh4LVYpLzI2LFM9NjcxMDg4NjM+Pj4yNi1WPDwyNi1WO2lmKDAhPT1WKXt2YXIgRj0wO2ZvcihQPTA7UDx0aGlzLmxlbmd0aDtQKyspe3ZhciB5ZT10aGlzLndvcmRzW1BdJlM7dGhpcy53b3Jkc1tQXT0oMHx0''@;'; + put 'put ''aGlzLndvcmRzW1BdKS15ZTw8VnxGLEY9eWU+Pj4yNi1WfUYmJih0aGlzLndvcmRzW1BdPUYsdGhpcy5sZW5ndGgrKyl9aWYoMCE9PVQpe2ZvcihQPXRoaXMubGVuZ3RoLTE7UD49MDtQLS0pdGhpcy53b3Jkc1tQK1RdPXRoaXMud29yZHNbUF07Zm9yKFA9MDtQPFQ7UCsrKXRoaXMud29yZHNb''@;'; + put 'put ''UF09MDt0aGlzLmxlbmd0aCs9VH1yZXR1cm4gdGhpcy5zdHJpcCgpfSxOLnByb3RvdHlwZS5pc2hsbj1mdW5jdGlvbih4KXtyZXR1cm4gWSgwPT09dGhpcy5uZWdhdGl2ZSksdGhpcy5pdXNobG4oeCl9LE4ucHJvdG90eXBlLml1c2hybj1mdW5jdGlvbih4LFAsVil7dmFyIFQ7WSgibnVtYmVy''@;'; + put 'put ''Ij09dHlwZW9mIHgmJng+PTApLFQ9UD8oUC1QJTI2KS8yNjowO3ZhciBTPXglMjYsRj1NYXRoLm1pbigoeC1TKS8yNix0aGlzLmxlbmd0aCkseWU9NjcxMDg4NjNeNjcxMDg4NjM+Pj5TPDxTLENlPVY7aWYoVC09RixUPU1hdGgubWF4KDAsVCksQ2Upe2Zvcih2YXIgRGU9MDtEZTxGO0RlKysp''@;'; + put 'put ''Q2Uud29yZHNbRGVdPXRoaXMud29yZHNbRGVdO0NlLmxlbmd0aD1GfWlmKDAhPT1GKWlmKHRoaXMubGVuZ3RoPkYpZm9yKHRoaXMubGVuZ3RoLT1GLERlPTA7RGU8dGhpcy5sZW5ndGg7RGUrKyl0aGlzLndvcmRzW0RlXT10aGlzLndvcmRzW0RlK0ZdO2Vsc2UgdGhpcy53b3Jkc1swXT0wLHRo''@;'; + put 'put ''aXMubGVuZ3RoPTE7dmFyIFBlPTA7Zm9yKERlPXRoaXMubGVuZ3RoLTE7RGU+PTAmJigwIT09UGV8fERlPj1UKTtEZS0tKXt2YXIgUWU9MHx0aGlzLndvcmRzW0RlXTt0aGlzLndvcmRzW0RlXT1QZTw8MjYtU3xRZT4+PlMsUGU9UWUmeWV9cmV0dXJuIENlJiYwIT09UGUmJihDZS53b3Jkc1tD''@;'; + put 'put ''ZS5sZW5ndGgrK109UGUpLDA9PT10aGlzLmxlbmd0aCYmKHRoaXMud29yZHNbMF09MCx0aGlzLmxlbmd0aD0xKSx0aGlzLnN0cmlwKCl9LE4ucHJvdG90eXBlLmlzaHJuPWZ1bmN0aW9uKHgsUCxWKXtyZXR1cm4gWSgwPT09dGhpcy5uZWdhdGl2ZSksdGhpcy5pdXNocm4oeCxQLFYpfSxOLnBy''@;'; + put 'put ''b3RvdHlwZS5zaGxuPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmNsb25lKCkuaXNobG4oeCl9LE4ucHJvdG90eXBlLnVzaGxuPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmNsb25lKCkuaXVzaGxuKHgpfSxOLnByb3RvdHlwZS5zaHJuPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmNsb25lKCku''@;'; + put 'put ''aXNocm4oeCl9LE4ucHJvdG90eXBlLnVzaHJuPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmNsb25lKCkuaXVzaHJuKHgpfSxOLnByb3RvdHlwZS50ZXN0bj1mdW5jdGlvbih4KXtZKCJudW1iZXIiPT10eXBlb2YgeCYmeD49MCk7dmFyIFA9eCUyNixWPSh4LVApLzI2O3JldHVybiEodGhpcy5s''@;'; + put 'put ''ZW5ndGg8PVZ8fCEodGhpcy53b3Jkc1tWXSYxPDxQKSl9LE4ucHJvdG90eXBlLmltYXNrbj1mdW5jdGlvbih4KXtZKCJudW1iZXIiPT10eXBlb2YgeCYmeD49MCk7dmFyIFA9eCUyNixWPSh4LVApLzI2O3JldHVybiBZKDA9PT10aGlzLm5lZ2F0aXZlLCJpbWFza24gd29ya3Mgb25seSB3aXRo''@;'; + put 'put ''IHBvc2l0aXZlIG51bWJlcnMiKSx0aGlzLmxlbmd0aDw9Vj90aGlzOigwIT09UCYmVisrLHRoaXMubGVuZ3RoPU1hdGgubWluKFYsdGhpcy5sZW5ndGgpLDAhPT1QJiYodGhpcy53b3Jkc1t0aGlzLmxlbmd0aC0xXSY9NjcxMDg4NjNeNjcxMDg4NjM+Pj5QPDxQKSx0aGlzLnN0cmlwKCkpfSxO''@;'; + put 'put ''LnByb3RvdHlwZS5tYXNrbj1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5jbG9uZSgpLmltYXNrbih4KX0sTi5wcm90b3R5cGUuaWFkZG49ZnVuY3Rpb24oeCl7cmV0dXJuIFkoIm51bWJlciI9PXR5cGVvZiB4KSxZKHg8NjcxMDg4NjQpLHg8MD90aGlzLmlzdWJuKC14KTowIT09dGhpcy5uZWdh''@;'; + put 'put ''dGl2ZT8xPT09dGhpcy5sZW5ndGgmJigwfHRoaXMud29yZHNbMF0pPHg/KHRoaXMud29yZHNbMF09eC0oMHx0aGlzLndvcmRzWzBdKSx0aGlzLm5lZ2F0aXZlPTAsdGhpcyk6KHRoaXMubmVnYXRpdmU9MCx0aGlzLmlzdWJuKHgpLHRoaXMubmVnYXRpdmU9MSx0aGlzKTp0aGlzLl9pYWRkbih4''@;'; + put 'put ''KX0sTi5wcm90b3R5cGUuX2lhZGRuPWZ1bmN0aW9uKHgpe3RoaXMud29yZHNbMF0rPXg7Zm9yKHZhciBQPTA7UDx0aGlzLmxlbmd0aCYmdGhpcy53b3Jkc1tQXT49NjcxMDg4NjQ7UCsrKXRoaXMud29yZHNbUF0tPTY3MTA4ODY0LFA9PT10aGlzLmxlbmd0aC0xP3RoaXMud29yZHNbUCsxXT0x''@;'; + put 'put ''OnRoaXMud29yZHNbUCsxXSsrO3JldHVybiB0aGlzLmxlbmd0aD1NYXRoLm1heCh0aGlzLmxlbmd0aCxQKzEpLHRoaXN9LE4ucHJvdG90eXBlLmlzdWJuPWZ1bmN0aW9uKHgpe2lmKFkoIm51bWJlciI9PXR5cGVvZiB4KSxZKHg8NjcxMDg4NjQpLHg8MClyZXR1cm4gdGhpcy5pYWRkbigteCk7''@;'; + put 'put ''aWYoMCE9PXRoaXMubmVnYXRpdmUpcmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlzLmlhZGRuKHgpLHRoaXMubmVnYXRpdmU9MSx0aGlzO2lmKHRoaXMud29yZHNbMF0tPXgsMT09PXRoaXMubGVuZ3RoJiZ0aGlzLndvcmRzWzBdPDApdGhpcy53b3Jkc1swXT0tdGhpcy53b3Jkc1swXSx0aGlz''@;'; + put 'put ''Lm5lZ2F0aXZlPTE7ZWxzZSBmb3IodmFyIFA9MDtQPHRoaXMubGVuZ3RoJiZ0aGlzLndvcmRzW1BdPDA7UCsrKXRoaXMud29yZHNbUF0rPTY3MTA4ODY0LHRoaXMud29yZHNbUCsxXS09MTtyZXR1cm4gdGhpcy5zdHJpcCgpfSxOLnByb3RvdHlwZS5hZGRuPWZ1bmN0aW9uKHgpe3JldHVybiB0''@;'; + put 'put ''aGlzLmNsb25lKCkuaWFkZG4oeCl9LE4ucHJvdG90eXBlLnN1Ym49ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc3Vibih4KX0sTi5wcm90b3R5cGUuaWFicz1mdW5jdGlvbigpe3JldHVybiB0aGlzLm5lZ2F0aXZlPTAsdGhpc30sTi5wcm90b3R5cGUuYWJzPWZ1bmN0aW9uKCl7''@;'; + put 'put ''cmV0dXJuIHRoaXMuY2xvbmUoKS5pYWJzKCl9LE4ucHJvdG90eXBlLl9pc2hsbnN1Ym11bD1mdW5jdGlvbih4LFAsVil7dmFyIFQsUzt0aGlzLl9leHBhbmQoeC5sZW5ndGgrVik7dmFyIHllPTA7Zm9yKFQ9MDtUPHgubGVuZ3RoO1QrKyl7Uz0oMHx0aGlzLndvcmRzW1QrVl0pK3llO3ZhciBD''@;'; + put 'put ''ZT0oMHx4LndvcmRzW1RdKSpQO3llPSgoUy09NjcxMDg4NjMmQ2UpPj4yNiktKENlLzY3MTA4ODY0fDApLHRoaXMud29yZHNbVCtWXT02NzEwODg2MyZTfWZvcig7VDx0aGlzLmxlbmd0aC1WO1QrKyl5ZT0oUz0oMHx0aGlzLndvcmRzW1QrVl0pK3llKT4+MjYsdGhpcy53b3Jkc1tUK1ZdPTY3''@;'; + put 'put ''MTA4ODYzJlM7aWYoMD09PXllKXJldHVybiB0aGlzLnN0cmlwKCk7Zm9yKFkoLTE9PT15ZSkseWU9MCxUPTA7VDx0aGlzLmxlbmd0aDtUKyspeWU9KFM9LSgwfHRoaXMud29yZHNbVF0pK3llKT4+MjYsdGhpcy53b3Jkc1tUXT02NzEwODg2MyZTO3JldHVybiB0aGlzLm5lZ2F0aXZlPTEsdGhp''@;'; + put 'put ''cy5zdHJpcCgpfSxOLnByb3RvdHlwZS5fd29yZERpdj1mdW5jdGlvbih4LFApe3ZhciBWLFQ9dGhpcy5jbG9uZSgpLFM9eCxGPTB8Uy53b3Jkc1tTLmxlbmd0aC0xXTswIT0oVj0yNi10aGlzLl9jb3VudEJpdHMoRikpJiYoUz1TLnVzaGxuKFYpLFQuaXVzaGxuKFYpLEY9MHxTLndvcmRzW1Mu''@;'; + put 'put ''bGVuZ3RoLTFdKTt2YXIgeWUsQ2U9VC5sZW5ndGgtUy5sZW5ndGg7aWYoIm1vZCIhPT1QKXsoeWU9bmV3IE4obnVsbCkpLmxlbmd0aD1DZSsxLHllLndvcmRzPW5ldyBBcnJheSh5ZS5sZW5ndGgpO2Zvcih2YXIgRGU9MDtEZTx5ZS5sZW5ndGg7RGUrKyl5ZS53b3Jkc1tEZV09MH12YXIgUGU9''@;'; + put 'put ''VC5jbG9uZSgpLl9pc2hsbnN1Ym11bChTLDEsQ2UpOzA9PT1QZS5uZWdhdGl2ZSYmKFQ9UGUseWUmJih5ZS53b3Jkc1tDZV09MSkpO2Zvcih2YXIgUWU9Q2UtMTtRZT49MDtRZS0tKXt2YXIgJGU9NjcxMDg4NjQqKDB8VC53b3Jkc1tTLmxlbmd0aCtRZV0pKygwfFQud29yZHNbUy5sZW5ndGgr''@;'; + put 'put ''UWUtMV0pO2ZvcigkZT1NYXRoLm1pbigkZS9GfDAsNjcxMDg4NjMpLFQuX2lzaGxuc3VibXVsKFMsJGUsUWUpOzAhPT1ULm5lZ2F0aXZlOykkZS0tLFQubmVnYXRpdmU9MCxULl9pc2hsbnN1Ym11bChTLDEsUWUpLFQuaXNaZXJvKCl8fChULm5lZ2F0aXZlXj0xKTt5ZSYmKHllLndvcmRzW1Fl''@;'; + put 'put ''XT0kZSl9cmV0dXJuIHllJiZ5ZS5zdHJpcCgpLFQuc3RyaXAoKSwiZGl2IiE9PVAmJjAhPT1WJiZULml1c2hybihWKSx7ZGl2OnllfHxudWxsLG1vZDpUfX0sTi5wcm90b3R5cGUuZGl2bW9kPWZ1bmN0aW9uKHgsUCxWKXtyZXR1cm4gWSgheC5pc1plcm8oKSksdGhpcy5pc1plcm8oKT97ZGl2''@;'; + put 'put ''Om5ldyBOKDApLG1vZDpuZXcgTigwKX06MCE9PXRoaXMubmVnYXRpdmUmJjA9PT14Lm5lZ2F0aXZlPyhGPXRoaXMubmVnKCkuZGl2bW9kKHgsUCksIm1vZCIhPT1QJiYoVD1GLmRpdi5uZWcoKSksImRpdiIhPT1QJiYoUz1GLm1vZC5uZWcoKSxWJiYwIT09Uy5uZWdhdGl2ZSYmUy5pYWRkKHgp''@;'; + put 'put ''KSx7ZGl2OlQsbW9kOlN9KTowPT09dGhpcy5uZWdhdGl2ZSYmMCE9PXgubmVnYXRpdmU/KEY9dGhpcy5kaXZtb2QoeC5uZWcoKSxQKSwibW9kIiE9PVAmJihUPUYuZGl2Lm5lZygpKSx7ZGl2OlQsbW9kOkYubW9kfSk6MCE9KHRoaXMubmVnYXRpdmUmeC5uZWdhdGl2ZSk/KEY9dGhpcy5uZWco''@;'; + put 'put ''KS5kaXZtb2QoeC5uZWcoKSxQKSwiZGl2IiE9PVAmJihTPUYubW9kLm5lZygpLFYmJjAhPT1TLm5lZ2F0aXZlJiZTLmlzdWIoeCkpLHtkaXY6Ri5kaXYsbW9kOlN9KTp4Lmxlbmd0aD50aGlzLmxlbmd0aHx8dGhpcy5jbXAoeCk8MD97ZGl2Om5ldyBOKDApLG1vZDp0aGlzfToxPT09eC5sZW5n''@;'; + put 'put ''dGg/ImRpdiI9PT1QP3tkaXY6dGhpcy5kaXZuKHgud29yZHNbMF0pLG1vZDpudWxsfToibW9kIj09PVA/e2RpdjpudWxsLG1vZDpuZXcgTih0aGlzLm1vZG4oeC53b3Jkc1swXSkpfTp7ZGl2OnRoaXMuZGl2bih4LndvcmRzWzBdKSxtb2Q6bmV3IE4odGhpcy5tb2RuKHgud29yZHNbMF0pKX06''@;'; + put 'put ''dGhpcy5fd29yZERpdih4LFApO3ZhciBULFMsRn0sTi5wcm90b3R5cGUuZGl2PWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmRpdm1vZCh4LCJkaXYiLCExKS5kaXZ9LE4ucHJvdG90eXBlLm1vZD1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5kaXZtb2QoeCwibW9kIiwhMSkubW9kfSxOLnByb3Rv''@;'; + put 'put ''dHlwZS51bW9kPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmRpdm1vZCh4LCJtb2QiLCEwKS5tb2R9LE4ucHJvdG90eXBlLmRpdlJvdW5kPWZ1bmN0aW9uKHgpe3ZhciBQPXRoaXMuZGl2bW9kKHgpO2lmKFAubW9kLmlzWmVybygpKXJldHVybiBQLmRpdjt2YXIgVj0wIT09UC5kaXYubmVnYXRp''@;'; + put 'put ''dmU/UC5tb2QuaXN1Yih4KTpQLm1vZCxUPXgudXNocm4oMSksUz14LmFuZGxuKDEpLEY9Vi5jbXAoVCk7cmV0dXJuIEY8MHx8MT09PVMmJjA9PT1GP1AuZGl2OjAhPT1QLmRpdi5uZWdhdGl2ZT9QLmRpdi5pc3VibigxKTpQLmRpdi5pYWRkbigxKX0sTi5wcm90b3R5cGUubW9kbj1mdW5jdGlv''@;'; + put 'put ''bih4KXtZKHg8PTY3MTA4ODYzKTtmb3IodmFyIFA9NjcxMDg4NjQleCxWPTAsVD10aGlzLmxlbmd0aC0xO1Q+PTA7VC0tKVY9KFAqVisoMHx0aGlzLndvcmRzW1RdKSkleDtyZXR1cm4gVn0sTi5wcm90b3R5cGUuaWRpdm49ZnVuY3Rpb24oeCl7WSh4PD02NzEwODg2Myk7Zm9yKHZhciBQPTAs''@;'; + put 'put ''Vj10aGlzLmxlbmd0aC0xO1Y+PTA7Vi0tKXt2YXIgVD0oMHx0aGlzLndvcmRzW1ZdKSs2NzEwODg2NCpQO3RoaXMud29yZHNbVl09VC94fDAsUD1UJXh9cmV0dXJuIHRoaXMuc3RyaXAoKX0sTi5wcm90b3R5cGUuZGl2bj1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlkaXZuKHgp''@;'; + put 'put ''fSxOLnByb3RvdHlwZS5lZ2NkPWZ1bmN0aW9uKHgpe1koMD09PXgubmVnYXRpdmUpLFkoIXguaXNaZXJvKCkpO3ZhciBQPXRoaXMsVj14LmNsb25lKCk7UD0wIT09UC5uZWdhdGl2ZT9QLnVtb2QoeCk6UC5jbG9uZSgpO2Zvcih2YXIgVD1uZXcgTigxKSxTPW5ldyBOKDApLEY9bmV3IE4oMCks''@;'; + put 'put ''eWU9bmV3IE4oMSksQ2U9MDtQLmlzRXZlbigpJiZWLmlzRXZlbigpOylQLml1c2hybigxKSxWLml1c2hybigxKSwrK0NlO2Zvcih2YXIgRGU9Vi5jbG9uZSgpLFBlPVAuY2xvbmUoKTshUC5pc1plcm8oKTspe2Zvcih2YXIgUWU9MCwkZT0xOzA9PShQLndvcmRzWzBdJiRlKSYmUWU8MjY7KytR''@;'; + put 'put ''ZSwkZTw8PTEpO2lmKFFlPjApZm9yKFAuaXVzaHJuKFFlKTtRZS0tID4wOykoVC5pc09kZCgpfHxTLmlzT2RkKCkpJiYoVC5pYWRkKERlKSxTLmlzdWIoUGUpKSxULml1c2hybigxKSxTLml1c2hybigxKTtmb3IodmFyIGd0PTAsd3Q9MTswPT0oVi53b3Jkc1swXSZ3dCkmJmd0PDI2OysrZ3Qs''@;'; + put 'put ''d3Q8PD0xKTtpZihndD4wKWZvcihWLml1c2hybihndCk7Z3QtLSA+MDspKEYuaXNPZGQoKXx8eWUuaXNPZGQoKSkmJihGLmlhZGQoRGUpLHllLmlzdWIoUGUpKSxGLml1c2hybigxKSx5ZS5pdXNocm4oMSk7UC5jbXAoVik+PTA/KFAuaXN1YihWKSxULmlzdWIoRiksUy5pc3ViKHllKSk6KFYu''@;'; + put 'put ''aXN1YihQKSxGLmlzdWIoVCkseWUuaXN1YihTKSl9cmV0dXJue2E6RixiOnllLGdjZDpWLml1c2hsbihDZSl9fSxOLnByb3RvdHlwZS5faW52bXA9ZnVuY3Rpb24oeCl7WSgwPT09eC5uZWdhdGl2ZSksWSgheC5pc1plcm8oKSk7dmFyIFA9dGhpcyxWPXguY2xvbmUoKTtQPTAhPT1QLm5lZ2F0''@;'; + put 'put ''aXZlP1AudW1vZCh4KTpQLmNsb25lKCk7Zm9yKHZhciBULFM9bmV3IE4oMSksRj1uZXcgTigwKSx5ZT1WLmNsb25lKCk7UC5jbXBuKDEpPjAmJlYuY21wbigxKT4wOyl7Zm9yKHZhciBDZT0wLERlPTE7MD09KFAud29yZHNbMF0mRGUpJiZDZTwyNjsrK0NlLERlPDw9MSk7aWYoQ2U+MClmb3Io''@;'; + put 'put ''UC5pdXNocm4oQ2UpO0NlLS0gPjA7KVMuaXNPZGQoKSYmUy5pYWRkKHllKSxTLml1c2hybigxKTtmb3IodmFyIFBlPTAsUWU9MTswPT0oVi53b3Jkc1swXSZRZSkmJlBlPDI2OysrUGUsUWU8PD0xKTtpZihQZT4wKWZvcihWLml1c2hybihQZSk7UGUtLSA+MDspRi5pc09kZCgpJiZGLmlhZGQo''@;'; + put 'put ''eWUpLEYuaXVzaHJuKDEpO1AuY21wKFYpPj0wPyhQLmlzdWIoViksUy5pc3ViKEYpKTooVi5pc3ViKFApLEYuaXN1YihTKSl9cmV0dXJuKFQ9MD09PVAuY21wbigxKT9TOkYpLmNtcG4oMCk8MCYmVC5pYWRkKHgpLFR9LE4ucHJvdG90eXBlLmdjZD1mdW5jdGlvbih4KXtpZih0aGlzLmlzWmVy''@;'; + put 'put ''bygpKXJldHVybiB4LmFicygpO2lmKHguaXNaZXJvKCkpcmV0dXJuIHRoaXMuYWJzKCk7dmFyIFA9dGhpcy5jbG9uZSgpLFY9eC5jbG9uZSgpO1AubmVnYXRpdmU9MCxWLm5lZ2F0aXZlPTA7Zm9yKHZhciBUPTA7UC5pc0V2ZW4oKSYmVi5pc0V2ZW4oKTtUKyspUC5pdXNocm4oMSksVi5pdXNo''@;'; + put 'put ''cm4oMSk7Zm9yKDs7KXtmb3IoO1AuaXNFdmVuKCk7KVAuaXVzaHJuKDEpO2Zvcig7Vi5pc0V2ZW4oKTspVi5pdXNocm4oMSk7dmFyIFM9UC5jbXAoVik7aWYoUzwwKXt2YXIgRj1QO1A9VixWPUZ9ZWxzZSBpZigwPT09U3x8MD09PVYuY21wbigxKSlicmVhaztQLmlzdWIoVil9cmV0dXJuIFYu''@;'; + put 'put ''aXVzaGxuKFQpfSxOLnByb3RvdHlwZS5pbnZtPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmVnY2QoeCkuYS51bW9kKHgpfSxOLnByb3RvdHlwZS5pc0V2ZW49ZnVuY3Rpb24oKXtyZXR1cm4gMD09KDEmdGhpcy53b3Jkc1swXSl9LE4ucHJvdG90eXBlLmlzT2RkPWZ1bmN0aW9uKCl7cmV0dXJu''@;'; + put 'put ''IDE9PSgxJnRoaXMud29yZHNbMF0pfSxOLnByb3RvdHlwZS5hbmRsbj1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy53b3Jkc1swXSZ4fSxOLnByb3RvdHlwZS5iaW5jbj1mdW5jdGlvbih4KXtZKCJudW1iZXIiPT10eXBlb2YgeCk7dmFyIFA9eCUyNixWPSh4LVApLzI2LFQ9MTw8UDtpZih0aGlz''@;'; + put 'put ''Lmxlbmd0aDw9VilyZXR1cm4gdGhpcy5fZXhwYW5kKFYrMSksdGhpcy53b3Jkc1tWXXw9VCx0aGlzO2Zvcih2YXIgUz1ULEY9VjswIT09UyYmRjx0aGlzLmxlbmd0aDtGKyspe3ZhciB5ZT0wfHRoaXMud29yZHNbRl07Uz0oeWUrPVMpPj4+MjYsdGhpcy53b3Jkc1tGXT15ZSY9NjcxMDg4NjN9''@;'; + put 'put ''cmV0dXJuIDAhPT1TJiYodGhpcy53b3Jkc1tGXT1TLHRoaXMubGVuZ3RoKyspLHRoaXN9LE4ucHJvdG90eXBlLmlzWmVybz1mdW5jdGlvbigpe3JldHVybiAxPT09dGhpcy5sZW5ndGgmJjA9PT10aGlzLndvcmRzWzBdfSxOLnByb3RvdHlwZS5jbXBuPWZ1bmN0aW9uKHgpe3ZhciBQLFY9eDww''@;'; + put 'put ''O2lmKDAhPT10aGlzLm5lZ2F0aXZlJiYhVilyZXR1cm4tMTtpZigwPT09dGhpcy5uZWdhdGl2ZSYmVilyZXR1cm4gMTtpZih0aGlzLnN0cmlwKCksdGhpcy5sZW5ndGg+MSlQPTE7ZWxzZXtWJiYoeD0teCksWSh4PD02NzEwODg2MywiTnVtYmVyIGlzIHRvbyBiaWciKTt2YXIgVD0wfHRoaXMu''@;'; + put 'put ''d29yZHNbMF07UD1UPT09eD8wOlQ8eD8tMToxfXJldHVybiAwIT09dGhpcy5uZWdhdGl2ZT8wfC1QOlB9LE4ucHJvdG90eXBlLmNtcD1mdW5jdGlvbih4KXtpZigwIT09dGhpcy5uZWdhdGl2ZSYmMD09PXgubmVnYXRpdmUpcmV0dXJuLTE7aWYoMD09PXRoaXMubmVnYXRpdmUmJjAhPT14Lm5l''@;'; + put 'put ''Z2F0aXZlKXJldHVybiAxO3ZhciBQPXRoaXMudWNtcCh4KTtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmU/MHwtUDpQfSxOLnByb3RvdHlwZS51Y21wPWZ1bmN0aW9uKHgpe2lmKHRoaXMubGVuZ3RoPngubGVuZ3RoKXJldHVybiAxO2lmKHRoaXMubGVuZ3RoPHgubGVuZ3RoKXJldHVybi0xO2Zv''@;'; + put 'put ''cih2YXIgUD0wLFY9dGhpcy5sZW5ndGgtMTtWPj0wO1YtLSl7dmFyIFQ9MHx0aGlzLndvcmRzW1ZdLFM9MHx4LndvcmRzW1ZdO2lmKFQhPT1TKXtUPFM/UD0tMTpUPlMmJihQPTEpO2JyZWFrfX1yZXR1cm4gUH0sTi5wcm90b3R5cGUuZ3RuPWZ1bmN0aW9uKHgpe3JldHVybiAxPT09dGhpcy5j''@;'; + put 'put ''bXBuKHgpfSxOLnByb3RvdHlwZS5ndD1mdW5jdGlvbih4KXtyZXR1cm4gMT09PXRoaXMuY21wKHgpfSxOLnByb3RvdHlwZS5ndGVuPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmNtcG4oeCk+PTB9LE4ucHJvdG90eXBlLmd0ZT1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5jbXAoeCk+PTB9LE4u''@;'; + put 'put ''cHJvdG90eXBlLmx0bj1mdW5jdGlvbih4KXtyZXR1cm4tMT09PXRoaXMuY21wbih4KX0sTi5wcm90b3R5cGUubHQ9ZnVuY3Rpb24oeCl7cmV0dXJuLTE9PT10aGlzLmNtcCh4KX0sTi5wcm90b3R5cGUubHRlbj1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5jbXBuKHgpPD0wfSxOLnByb3RvdHlw''@;'; + put 'put ''ZS5sdGU9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuY21wKHgpPD0wfSxOLnByb3RvdHlwZS5lcW49ZnVuY3Rpb24oeCl7cmV0dXJuIDA9PT10aGlzLmNtcG4oeCl9LE4ucHJvdG90eXBlLmVxPWZ1bmN0aW9uKHgpe3JldHVybiAwPT09dGhpcy5jbXAoeCl9LE4ucmVkPWZ1bmN0aW9uKHgpe3Jl''@;'; + put 'put ''dHVybiBuZXcgbmUoeCl9LE4ucHJvdG90eXBlLnRvUmVkPWZ1bmN0aW9uKHgpe3JldHVybiBZKCF0aGlzLnJlZCwiQWxyZWFkeSBhIG51bWJlciBpbiByZWR1Y3Rpb24gY29udGV4dCIpLFkoMD09PXRoaXMubmVnYXRpdmUsInJlZCB3b3JrcyBvbmx5IHdpdGggcG9zaXRpdmVzIikseC5jb252''@;'; + put 'put ''ZXJ0VG8odGhpcykuX2ZvcmNlUmVkKHgpfSxOLnByb3RvdHlwZS5mcm9tUmVkPWZ1bmN0aW9uKCl7cmV0dXJuIFkodGhpcy5yZWQsImZyb21SZWQgd29ya3Mgb25seSB3aXRoIG51bWJlcnMgaW4gcmVkdWN0aW9uIGNvbnRleHQiKSx0aGlzLnJlZC5jb252ZXJ0RnJvbSh0aGlzKX0sTi5wcm90''@;'; + put 'put ''b3R5cGUuX2ZvcmNlUmVkPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLnJlZD14LHRoaXN9LE4ucHJvdG90eXBlLmZvcmNlUmVkPWZ1bmN0aW9uKHgpe3JldHVybiBZKCF0aGlzLnJlZCwiQWxyZWFkeSBhIG51bWJlciBpbiByZWR1Y3Rpb24gY29udGV4dCIpLHRoaXMuX2ZvcmNlUmVkKHgpfSxO''@;'; + put 'put ''LnByb3RvdHlwZS5yZWRBZGQ9ZnVuY3Rpb24oeCl7cmV0dXJuIFkodGhpcy5yZWQsInJlZEFkZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5hZGQodGhpcyx4KX0sTi5wcm90b3R5cGUucmVkSUFkZD1mdW5jdGlvbih4KXtyZXR1cm4gWSh0aGlzLnJlZCwicmVkSUFk''@;'; + put 'put ''ZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5pYWRkKHRoaXMseCl9LE4ucHJvdG90eXBlLnJlZFN1Yj1mdW5jdGlvbih4KXtyZXR1cm4gWSh0aGlzLnJlZCwicmVkU3ViIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLnN1Yih0aGlzLHgpfSxO''@;'; + put 'put ''LnByb3RvdHlwZS5yZWRJU3ViPWZ1bmN0aW9uKHgpe3JldHVybiBZKHRoaXMucmVkLCJyZWRJU3ViIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLmlzdWIodGhpcyx4KX0sTi5wcm90b3R5cGUucmVkU2hsPWZ1bmN0aW9uKHgpe3JldHVybiBZKHRoaXMucmVkLCJyZWRT''@;'; + put 'put ''aGwgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuc2hsKHRoaXMseCl9LE4ucHJvdG90eXBlLnJlZE11bD1mdW5jdGlvbih4KXtyZXR1cm4gWSh0aGlzLnJlZCwicmVkTXVsIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkyKHRoaXMs''@;'; + put 'put ''eCksdGhpcy5yZWQubXVsKHRoaXMseCl9LE4ucHJvdG90eXBlLnJlZElNdWw9ZnVuY3Rpb24oeCl7cmV0dXJuIFkodGhpcy5yZWQsInJlZE11bCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5Mih0aGlzLHgpLHRoaXMucmVkLmltdWwodGhpcyx4KX0sTi5w''@;'; + put 'put ''cm90b3R5cGUucmVkU3FyPWZ1bmN0aW9uKCl7cmV0dXJuIFkodGhpcy5yZWQsInJlZFNxciB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5zcXIodGhpcyl9LE4ucHJvdG90eXBlLnJlZElTcXI9ZnVuY3Rpb24oKXtyZXR1cm4g''@;'; + put 'put ''WSh0aGlzLnJlZCwicmVkSVNxciB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5pc3FyKHRoaXMpfSxOLnByb3RvdHlwZS5yZWRTcXJ0PWZ1bmN0aW9uKCl7cmV0dXJuIFkodGhpcy5yZWQsInJlZFNxcnQgd29ya3Mgb25seSB3''@;'; + put 'put ''aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQuc3FydCh0aGlzKX0sTi5wcm90b3R5cGUucmVkSW52bT1mdW5jdGlvbigpe3JldHVybiBZKHRoaXMucmVkLCJyZWRJbnZtIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJp''@;'; + put 'put ''ZnkxKHRoaXMpLHRoaXMucmVkLmludm0odGhpcyl9LE4ucHJvdG90eXBlLnJlZE5lZz1mdW5jdGlvbigpe3JldHVybiBZKHRoaXMucmVkLCJyZWROZWcgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQubmVnKHRoaXMpfSxOLnBy''@;'; + put 'put ''b3RvdHlwZS5yZWRQb3c9ZnVuY3Rpb24oeCl7cmV0dXJuIFkodGhpcy5yZWQmJiF4LnJlZCwicmVkUG93KG5vcm1hbE51bSkiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5wb3codGhpcyx4KX07dmFyIEllPXtrMjU2Om51bGwscDIyNDpudWxsLHAxOTI6bnVsbCxwMjU1MTk6''@;'; + put 'put ''bnVsbH07ZnVuY3Rpb24gVGUoeCxQKXt0aGlzLm5hbWU9eCx0aGlzLnA9bmV3IE4oUCwxNiksdGhpcy5uPXRoaXMucC5iaXRMZW5ndGgoKSx0aGlzLms9bmV3IE4oMSkuaXVzaGxuKHRoaXMubikuaXN1Yih0aGlzLnApLHRoaXMudG1wPXRoaXMuX3RtcCgpfWZ1bmN0aW9uIEVlKCl7VGUuY2Fs''@;'; + put 'put ''bCh0aGlzLCJrMjU2IiwiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUgZmZmZmZjMmYiKX1mdW5jdGlvbiBoZSgpe1RlLmNhbGwodGhpcywicDIyNCIsImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIDAwMDAw''@;'; + put 'put ''MDAwIDAwMDAwMDAwIDAwMDAwMDAxIil9ZnVuY3Rpb24gTygpe1RlLmNhbGwodGhpcywicDE5MiIsImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZlIGZmZmZmZmZmIGZmZmZmZmZmIil9ZnVuY3Rpb24geigpe1RlLmNhbGwodGhpcywiMjU1MTkiLCI3ZmZmZmZmZmZmZmZmZmZm''@;'; + put 'put ''IGZmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZmZmZmZmVkIil9ZnVuY3Rpb24gbmUoeCl7aWYoInN0cmluZyI9PXR5cGVvZiB4KXt2YXIgUD1OLl9wcmltZSh4KTt0aGlzLm09UC5wLHRoaXMucHJpbWU9UH1lbHNlIFkoeC5ndG4oMSksIm1vZHVsdXMgbXVzdCBi''@;'; + put 'put ''ZSBncmVhdGVyIHRoYW4gMSIpLHRoaXMubT14LHRoaXMucHJpbWU9bnVsbH1mdW5jdGlvbiB0ZSh4KXtuZS5jYWxsKHRoaXMseCksdGhpcy5zaGlmdD10aGlzLm0uYml0TGVuZ3RoKCksdGhpcy5zaGlmdCUyNiE9MCYmKHRoaXMuc2hpZnQrPTI2LXRoaXMuc2hpZnQlMjYpLHRoaXMucj1uZXcg''@;'; + put 'put ''TigxKS5pdXNobG4odGhpcy5zaGlmdCksdGhpcy5yMj10aGlzLmltb2QodGhpcy5yLnNxcigpKSx0aGlzLnJpbnY9dGhpcy5yLl9pbnZtcCh0aGlzLm0pLHRoaXMubWludj10aGlzLnJpbnYubXVsKHRoaXMucikuaXN1Ym4oMSkuZGl2KHRoaXMubSksdGhpcy5taW52PXRoaXMubWludi51bW9k''@;'; + put 'put ''KHRoaXMuciksdGhpcy5taW52PXRoaXMuci5zdWIodGhpcy5taW52KX1UZS5wcm90b3R5cGUuX3RtcD1mdW5jdGlvbigpe3ZhciB4PW5ldyBOKG51bGwpO3JldHVybiB4LndvcmRzPW5ldyBBcnJheShNYXRoLmNlaWwodGhpcy5uLzEzKSkseH0sVGUucHJvdG90eXBlLmlyZWR1Y2U9ZnVuY3Rp''@;'; + put 'put ''b24oeCl7dmFyIFAsVj14O2Rve3RoaXMuc3BsaXQoVix0aGlzLnRtcCksUD0oVj0oVj10aGlzLmltdWxLKFYpKS5pYWRkKHRoaXMudG1wKSkuYml0TGVuZ3RoKCl9d2hpbGUoUD50aGlzLm4pO3ZhciBUPVA8dGhpcy5uPy0xOlYudWNtcCh0aGlzLnApO3JldHVybiAwPT09VD8oVi53b3Jkc1sw''@;'; + put 'put ''XT0wLFYubGVuZ3RoPTEpOlQ+MD9WLmlzdWIodGhpcy5wKTp2b2lkIDAhPT1WLnN0cmlwP1Yuc3RyaXAoKTpWLl9zdHJpcCgpLFZ9LFRlLnByb3RvdHlwZS5zcGxpdD1mdW5jdGlvbih4LFApe3guaXVzaHJuKHRoaXMubiwwLFApfSxUZS5wcm90b3R5cGUuaW11bEs9ZnVuY3Rpb24oeCl7cmV0''@;'; + put 'put ''dXJuIHguaW11bCh0aGlzLmspfSxXKEVlLFRlKSxFZS5wcm90b3R5cGUuc3BsaXQ9ZnVuY3Rpb24oeCxQKXtmb3IodmFyIFY9NDE5NDMwMyxUPU1hdGgubWluKHgubGVuZ3RoLDkpLFM9MDtTPFQ7UysrKVAud29yZHNbU109eC53b3Jkc1tTXTtpZihQLmxlbmd0aD1ULHgubGVuZ3RoPD05KXJl''@;'; + put 'put ''dHVybiB4LndvcmRzWzBdPTAsdm9pZCh4Lmxlbmd0aD0xKTt2YXIgRj14LndvcmRzWzldO2ZvcihQLndvcmRzW1AubGVuZ3RoKytdPUYmVixTPTEwO1M8eC5sZW5ndGg7UysrKXt2YXIgeWU9MHx4LndvcmRzW1NdO3gud29yZHNbUy0xMF09KHllJlYpPDw0fEY+Pj4yMixGPXllfXgud29yZHNb''@;'; + put 'put ''Uy0xMF09Rj4+Pj0yMix4Lmxlbmd0aC09MD09PUYmJngubGVuZ3RoPjEwPzEwOjl9LEVlLnByb3RvdHlwZS5pbXVsSz1mdW5jdGlvbih4KXt4LndvcmRzW3gubGVuZ3RoXT0wLHgud29yZHNbeC5sZW5ndGgrMV09MCx4Lmxlbmd0aCs9Mjtmb3IodmFyIFA9MCxWPTA7Vjx4Lmxlbmd0aDtWKysp''@;'; + put 'put ''e3ZhciBUPTB8eC53b3Jkc1tWXTt4LndvcmRzW1ZdPTY3MTA4ODYzJihQKz05NzcqVCksUD02NCpUKyhQLzY3MTA4ODY0fDApfXJldHVybiAwPT09eC53b3Jkc1t4Lmxlbmd0aC0xXSYmKHgubGVuZ3RoLS0sMD09PXgud29yZHNbeC5sZW5ndGgtMV0mJngubGVuZ3RoLS0pLHh9LFcoaGUsVGUp''@;'; + put 'put ''LFcoTyxUZSksVyh6LFRlKSx6LnByb3RvdHlwZS5pbXVsSz1mdW5jdGlvbih4KXtmb3IodmFyIFA9MCxWPTA7Vjx4Lmxlbmd0aDtWKyspe3ZhciBUPTE5KigwfHgud29yZHNbVl0pK1AsUz02NzEwODg2MyZUO1Q+Pj49MjYseC53b3Jkc1tWXT1TLFA9VH1yZXR1cm4gMCE9PVAmJih4LndvcmRz''@;'; + put 'put ''W3gubGVuZ3RoKytdPVApLHh9LE4uX3ByaW1lPWZ1bmN0aW9uKHgpe2lmKEllW3hdKXJldHVybiBJZVt4XTt2YXIgUDtpZigiazI1NiI9PT14KVA9bmV3IEVlO2Vsc2UgaWYoInAyMjQiPT09eClQPW5ldyBoZTtlbHNlIGlmKCJwMTkyIj09PXgpUD1uZXcgTztlbHNle2lmKCJwMjU1MTkiIT09''@;'; + put 'put ''eCl0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gcHJpbWUgIit4KTtQPW5ldyB6fXJldHVybiBJZVt4XT1QLFB9LG5lLnByb3RvdHlwZS5fdmVyaWZ5MT1mdW5jdGlvbih4KXtZKDA9PT14Lm5lZ2F0aXZlLCJyZWQgd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlcyIpLFkoeC5yZWQsInJlZCB3b3Jr''@;'; + put 'put ''cyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKX0sbmUucHJvdG90eXBlLl92ZXJpZnkyPWZ1bmN0aW9uKHgsUCl7WSgwPT0oeC5uZWdhdGl2ZXxQLm5lZ2F0aXZlKSwicmVkIHdvcmtzIG9ubHkgd2l0aCBwb3NpdGl2ZXMiKSxZKHgucmVkJiZ4LnJlZD09PVAucmVkLCJyZWQgd29ya3Mgb25seSB3''@;'; + put 'put ''aXRoIHJlZCBudW1iZXJzIil9LG5lLnByb3RvdHlwZS5pbW9kPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLnByaW1lP3RoaXMucHJpbWUuaXJlZHVjZSh4KS5fZm9yY2VSZWQodGhpcyk6eC51bW9kKHRoaXMubSkuX2ZvcmNlUmVkKHRoaXMpfSxuZS5wcm90b3R5cGUubmVnPWZ1bmN0aW9uKHgp''@;'; + put 'put ''e3JldHVybiB4LmlzWmVybygpP3guY2xvbmUoKTp0aGlzLm0uc3ViKHgpLl9mb3JjZVJlZCh0aGlzKX0sbmUucHJvdG90eXBlLmFkZD1mdW5jdGlvbih4LFApe3RoaXMuX3ZlcmlmeTIoeCxQKTt2YXIgVj14LmFkZChQKTtyZXR1cm4gVi5jbXAodGhpcy5tKT49MCYmVi5pc3ViKHRoaXMubSks''@;'; + put 'put ''Vi5fZm9yY2VSZWQodGhpcyl9LG5lLnByb3RvdHlwZS5pYWRkPWZ1bmN0aW9uKHgsUCl7dGhpcy5fdmVyaWZ5Mih4LFApO3ZhciBWPXguaWFkZChQKTtyZXR1cm4gVi5jbXAodGhpcy5tKT49MCYmVi5pc3ViKHRoaXMubSksVn0sbmUucHJvdG90eXBlLnN1Yj1mdW5jdGlvbih4LFApe3RoaXMu''@;'; + put 'put ''X3ZlcmlmeTIoeCxQKTt2YXIgVj14LnN1YihQKTtyZXR1cm4gVi5jbXBuKDApPDAmJlYuaWFkZCh0aGlzLm0pLFYuX2ZvcmNlUmVkKHRoaXMpfSxuZS5wcm90b3R5cGUuaXN1Yj1mdW5jdGlvbih4LFApe3RoaXMuX3ZlcmlmeTIoeCxQKTt2YXIgVj14LmlzdWIoUCk7cmV0dXJuIFYuY21wbigw''@;'; + put 'put ''KTwwJiZWLmlhZGQodGhpcy5tKSxWfSxuZS5wcm90b3R5cGUuc2hsPWZ1bmN0aW9uKHgsUCl7cmV0dXJuIHRoaXMuX3ZlcmlmeTEoeCksdGhpcy5pbW9kKHgudXNobG4oUCkpfSxuZS5wcm90b3R5cGUuaW11bD1mdW5jdGlvbih4LFApe3JldHVybiB0aGlzLl92ZXJpZnkyKHgsUCksdGhpcy5p''@;'; + put 'put ''bW9kKHguaW11bChQKSl9LG5lLnByb3RvdHlwZS5tdWw9ZnVuY3Rpb24oeCxQKXtyZXR1cm4gdGhpcy5fdmVyaWZ5Mih4LFApLHRoaXMuaW1vZCh4Lm11bChQKSl9LG5lLnByb3RvdHlwZS5pc3FyPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmltdWwoeCx4LmNsb25lKCkpfSxuZS5wcm90b3R5''@;'; + put 'put ''cGUuc3FyPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLm11bCh4LHgpfSxuZS5wcm90b3R5cGUuc3FydD1mdW5jdGlvbih4KXtpZih4LmlzWmVybygpKXJldHVybiB4LmNsb25lKCk7dmFyIFA9dGhpcy5tLmFuZGxuKDMpO2lmKFkoUCUyPT0xKSwzPT09UCl7dmFyIFY9dGhpcy5tLmFkZChuZXcg''@;'; + put 'put ''TigxKSkuaXVzaHJuKDIpO3JldHVybiB0aGlzLnBvdyh4LFYpfWZvcih2YXIgVD10aGlzLm0uc3VibigxKSxTPTA7IVQuaXNaZXJvKCkmJjA9PT1ULmFuZGxuKDEpOylTKyssVC5pdXNocm4oMSk7WSghVC5pc1plcm8oKSk7dmFyIEY9bmV3IE4oMSkudG9SZWQodGhpcykseWU9Ri5yZWROZWco''@;'; + put 'put ''KSxDZT10aGlzLm0uc3VibigxKS5pdXNocm4oMSksRGU9dGhpcy5tLmJpdExlbmd0aCgpO2ZvcihEZT1uZXcgTigyKkRlKkRlKS50b1JlZCh0aGlzKTswIT09dGhpcy5wb3coRGUsQ2UpLmNtcCh5ZSk7KURlLnJlZElBZGQoeWUpO2Zvcih2YXIgUGU9dGhpcy5wb3coRGUsVCksUWU9dGhpcy5w''@;'; + put 'put ''b3coeCxULmFkZG4oMSkuaXVzaHJuKDEpKSwkZT10aGlzLnBvdyh4LFQpLGd0PVM7MCE9PSRlLmNtcChGKTspe2Zvcih2YXIgd3Q9JGUsbXQ9MDswIT09d3QuY21wKEYpO210Kyspd3Q9d3QucmVkU3FyKCk7WShtdDxndCk7dmFyIHZ0PXRoaXMucG93KFBlLG5ldyBOKDEpLml1c2hsbihndC1t''@;'; + put 'put ''dC0xKSk7UWU9UWUucmVkTXVsKHZ0KSxQZT12dC5yZWRTcXIoKSwkZT0kZS5yZWRNdWwoUGUpLGd0PW10fXJldHVybiBRZX0sbmUucHJvdG90eXBlLmludm09ZnVuY3Rpb24oeCl7dmFyIFA9eC5faW52bXAodGhpcy5tKTtyZXR1cm4gMCE9PVAubmVnYXRpdmU/KFAubmVnYXRpdmU9MCx0aGlz''@;'; + put 'put ''Lmltb2QoUCkucmVkTmVnKCkpOnRoaXMuaW1vZChQKX0sbmUucHJvdG90eXBlLnBvdz1mdW5jdGlvbih4LFApe2lmKFAuaXNaZXJvKCkpcmV0dXJuIG5ldyBOKDEpLnRvUmVkKHRoaXMpO2lmKDA9PT1QLmNtcG4oMSkpcmV0dXJuIHguY2xvbmUoKTt2YXIgVj1uZXcgQXJyYXkoMTYpO1ZbMF09''@;'; + put 'put ''bmV3IE4oMSkudG9SZWQodGhpcyksVlsxXT14O2Zvcih2YXIgVD0yO1Q8Vi5sZW5ndGg7VCsrKVZbVF09dGhpcy5tdWwoVltULTFdLHgpO3ZhciBTPVZbMF0sRj0wLHllPTAsQ2U9UC5iaXRMZW5ndGgoKSUyNjtmb3IoMD09PUNlJiYoQ2U9MjYpLFQ9UC5sZW5ndGgtMTtUPj0wO1QtLSl7Zm9y''@;'; + put 'put ''KHZhciBEZT1QLndvcmRzW1RdLFBlPUNlLTE7UGU+PTA7UGUtLSl7dmFyIFFlPURlPj5QZSYxO1MhPT1WWzBdJiYoUz10aGlzLnNxcihTKSksMCE9PVFlfHwwIT09Rj8oRjw8PTEsRnw9UWUsKDQ9PSsreWV8fDA9PT1UJiYwPT09UGUpJiYoUz10aGlzLm11bChTLFZbRl0pLHllPTAsRj0wKSk6''@;'; + put 'put ''eWU9MH1DZT0yNn1yZXR1cm4gU30sbmUucHJvdG90eXBlLmNvbnZlcnRUbz1mdW5jdGlvbih4KXt2YXIgUD14LnVtb2QodGhpcy5tKTtyZXR1cm4gUD09PXg/UC5jbG9uZSgpOlB9LG5lLnByb3RvdHlwZS5jb252ZXJ0RnJvbT1mdW5jdGlvbih4KXt2YXIgUD14LmNsb25lKCk7cmV0dXJuIFAu''@;'; + put 'put ''cmVkPW51bGwsUH0sTi5tb250PWZ1bmN0aW9uKHgpe3JldHVybiBuZXcgdGUoeCl9LFcodGUsbmUpLHRlLnByb3RvdHlwZS5jb252ZXJ0VG89ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuaW1vZCh4LnVzaGxuKHRoaXMuc2hpZnQpKX0sdGUucHJvdG90eXBlLmNvbnZlcnRGcm9tPWZ1bmN0aW9u''@;'; + put 'put ''KHgpe3ZhciBQPXRoaXMuaW1vZCh4Lm11bCh0aGlzLnJpbnYpKTtyZXR1cm4gUC5yZWQ9bnVsbCxQfSx0ZS5wcm90b3R5cGUuaW11bD1mdW5jdGlvbih4LFApe2lmKHguaXNaZXJvKCl8fFAuaXNaZXJvKCkpcmV0dXJuIHgud29yZHNbMF09MCx4Lmxlbmd0aD0xLHg7dmFyIFY9eC5pbXVsKFAp''@;'; + put 'put ''LFQ9Vi5tYXNrbih0aGlzLnNoaWZ0KS5tdWwodGhpcy5taW52KS5pbWFza24odGhpcy5zaGlmdCkubXVsKHRoaXMubSksUz1WLmlzdWIoVCkuaXVzaHJuKHRoaXMuc2hpZnQpLEY9UztyZXR1cm4gUy5jbXAodGhpcy5tKT49MD9GPVMuaXN1Yih0aGlzLm0pOlMuY21wbigwKTwwJiYoRj1TLmlh''@;'; + put 'put ''ZGQodGhpcy5tKSksRi5fZm9yY2VSZWQodGhpcyl9LHRlLnByb3RvdHlwZS5tdWw9ZnVuY3Rpb24oeCxQKXtpZih4LmlzWmVybygpfHxQLmlzWmVybygpKXJldHVybiBuZXcgTigwKS5fZm9yY2VSZWQodGhpcyk7dmFyIFY9eC5tdWwoUCksVD1WLm1hc2tuKHRoaXMuc2hpZnQpLm11bCh0aGlz''@;'; + put 'put ''Lm1pbnYpLmltYXNrbih0aGlzLnNoaWZ0KS5tdWwodGhpcy5tKSxTPVYuaXN1YihUKS5pdXNocm4odGhpcy5zaGlmdCksRj1TO3JldHVybiBTLmNtcCh0aGlzLm0pPj0wP0Y9Uy5pc3ViKHRoaXMubSk6Uy5jbXBuKDApPDAmJihGPVMuaWFkZCh0aGlzLm0pKSxGLl9mb3JjZVJlZCh0aGlzKX0s''@;'; + put 'put ''dGUucHJvdG90eXBlLmludm09ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuaW1vZCh4Ll9pbnZtcCh0aGlzLm0pLm11bCh0aGlzLnIyKSkuX2ZvcmNlUmVkKHRoaXMpfX0oVT1aLm5tZChVKSx0aGlzKX0sODA5MTpVPT57InVzZSBzdHJpY3QiO2Z1bmN0aW9uIFEoWixpZSl7aWYobnVsbD09Wil0''@;'; + put 'put ''aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY29udmVydCBmaXJzdCBhcmd1bWVudCB0byBvYmplY3QiKTtmb3IodmFyIGFlPU9iamVjdChaKSxZPTE7WTxhcmd1bWVudHMubGVuZ3RoO1krKyl7dmFyIFc9YXJndW1lbnRzW1ldO2lmKG51bGwhPVcpZm9yKHZhciBOPU9iamVjdC5rZXlzKE9i''@;'; + put 'put ''amVjdChXKSksZWU9MCxxPU4ubGVuZ3RoO2VlPHE7ZWUrKyl7dmFyIEo9TltlZV0sc2U9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihXLEopO3ZvaWQgMCE9PXNlJiZzZS5lbnVtZXJhYmxlJiYoYWVbSl09V1tKXSl9fXJldHVybiBhZX1VLmV4cG9ydHM9e2Fzc2lnbjpRLHBvbHlm''@;'; + put 'put ''aWxsOmZ1bmN0aW9uKCl7T2JqZWN0LmFzc2lnbnx8T2JqZWN0LmRlZmluZVByb3BlcnR5KE9iamVjdCwiYXNzaWduIix7ZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6UX0pfX19LDcxODc6KFUsUSxaKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgaWUsYWU9Wig1''@;'; + put 'put ''MTA4KSxZPSJvYmplY3QiPT10eXBlb2YgUmVmbGVjdD9SZWZsZWN0Om51bGwsVz1ZJiYiZnVuY3Rpb24iPT10eXBlb2YgWS5hcHBseT9ZLmFwcGx5OmZ1bmN0aW9uKEllLFRlLEVlKXtyZXR1cm4gRnVuY3Rpb24ucHJvdG90eXBlLmFwcGx5LmNhbGwoSWUsVGUsRWUpfTtpZT1ZJiYiZnVuY3Rp''@;'; + put 'put ''b24iPT10eXBlb2YgWS5vd25LZXlzP1kub3duS2V5czpPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzP2Z1bmN0aW9uKEllKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoSWUpLmNvbmNhdChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKEllKSl9OmZ1bmN0aW9uKEll''@;'; + put 'put ''KXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoSWUpfTt2YXIgTj1OdW1iZXIuaXNOYU58fGZ1bmN0aW9uKEllKXtyZXR1cm4gSWUhPUllfTtmdW5jdGlvbiBlZSgpe2VlLmluaXQuY2FsbCh0aGlzKX1VLmV4cG9ydHM9ZWUsVS5leHBvcnRzLm9uY2U9ZnVuY3Rpb24oSWUsVGUp''@;'; + put 'put ''e3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihFZSxoZSl7ZnVuY3Rpb24gTyhuZSl7SWUucmVtb3ZlTGlzdGVuZXIoVGUseiksaGUobmUpfWZ1bmN0aW9uIHooKXsiZnVuY3Rpb24iPT10eXBlb2YgSWUucmVtb3ZlTGlzdGVuZXImJkllLnJlbW92ZUxpc3RlbmVyKCJlcnJvciIsTyksRWUo''@;'; + put 'put ''W10uc2xpY2UuY2FsbChhcmd1bWVudHMpKX12YXIgbmU7U2UoSWUsVGUseix7b25jZTohMH0pLCJlcnJvciIhPT1UZSYmKCJmdW5jdGlvbiI9PXR5cGVvZihuZT1JZSkub24mJlNlKG5lLCJlcnJvciIsTyx7b25jZTohMH0pKX0pfSxlZS5FdmVudEVtaXR0ZXI9ZWUsZWUucHJvdG90eXBlLl9l''@;'; + put 'put ''dmVudHM9dm9pZCAwLGVlLnByb3RvdHlwZS5fZXZlbnRzQ291bnQ9MCxlZS5wcm90b3R5cGUuX21heExpc3RlbmVycz12b2lkIDA7dmFyIHE9MTA7ZnVuY3Rpb24gSihJZSl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIEllKXRocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSAibGlzdGVuZXIiIGFyZ3Vt''@;'; + put 'put ''ZW50IG11c3QgYmUgb2YgdHlwZSBGdW5jdGlvbi4gUmVjZWl2ZWQgdHlwZSAnK3R5cGVvZiBJZSl9ZnVuY3Rpb24gc2UoSWUpe3JldHVybiB2b2lkIDA9PT1JZS5fbWF4TGlzdGVuZXJzP2VlLmRlZmF1bHRNYXhMaXN0ZW5lcnM6SWUuX21heExpc3RlbmVyc31mdW5jdGlvbiBvZShJZSxUZSxF''@;'; + put 'put ''ZSxoZSl7dmFyIE8seixuZTtpZihKKEVlKSx2b2lkIDA9PT0oej1JZS5fZXZlbnRzKT8oej1JZS5fZXZlbnRzPU9iamVjdC5jcmVhdGUobnVsbCksSWUuX2V2ZW50c0NvdW50PTApOih2b2lkIDAhPT16Lm5ld0xpc3RlbmVyJiYoSWUuZW1pdCgibmV3TGlzdGVuZXIiLFRlLEVlLmxpc3RlbmVy''@;'; + put 'put ''P0VlLmxpc3RlbmVyOkVlKSx6PUllLl9ldmVudHMpLG5lPXpbVGVdKSx2b2lkIDA9PT1uZSluZT16W1RlXT1FZSwrK0llLl9ldmVudHNDb3VudDtlbHNlIGlmKCJmdW5jdGlvbiI9PXR5cGVvZiBuZT9uZT16W1RlXT1oZT9bRWUsbmVdOltuZSxFZV06aGU/bmUudW5zaGlmdChFZSk6bmUucHVz''@;'; + put 'put ''aChFZSksKE89c2UoSWUpKT4wJiZuZS5sZW5ndGg+TyYmIW5lLndhcm5lZCl7bmUud2FybmVkPSEwO3ZhciB4PW5ldyBFcnJvcigiUG9zc2libGUgRXZlbnRFbWl0dGVyIG1lbW9yeSBsZWFrIGRldGVjdGVkLiAiK25lLmxlbmd0aCsiICIrU3RyaW5nKFRlKSsiIGxpc3RlbmVycyBhZGRlZC4g''@;'; + put 'put ''VXNlIGVtaXR0ZXIuc2V0TWF4TGlzdGVuZXJzKCkgdG8gaW5jcmVhc2UgbGltaXQiKTt4Lm5hbWU9Ik1heExpc3RlbmVyc0V4Y2VlZGVkV2FybmluZyIseC5lbWl0dGVyPUllLHgudHlwZT1UZSx4LmNvdW50PW5lLmxlbmd0aCxhZSYmYWUud2FybiYmYWUud2Fybih4KX1yZXR1cm4gSWV9ZnVu''@;'; + put 'put ''Y3Rpb24gY2UoKXtpZighdGhpcy5maXJlZClyZXR1cm4gdGhpcy50YXJnZXQucmVtb3ZlTGlzdGVuZXIodGhpcy50eXBlLHRoaXMud3JhcEZuKSx0aGlzLmZpcmVkPSEwLDA9PT1hcmd1bWVudHMubGVuZ3RoP3RoaXMubGlzdGVuZXIuY2FsbCh0aGlzLnRhcmdldCk6dGhpcy5saXN0ZW5lci5h''@;'; + put 'put ''cHBseSh0aGlzLnRhcmdldCxhcmd1bWVudHMpfWZ1bmN0aW9uIGRlKEllLFRlLEVlKXt2YXIgaGU9e2ZpcmVkOiExLHdyYXBGbjp2b2lkIDAsdGFyZ2V0OkllLHR5cGU6VGUsbGlzdGVuZXI6RWV9LE89Y2UuYmluZChoZSk7cmV0dXJuIE8ubGlzdGVuZXI9RWUsaGUud3JhcEZuPU8sT31mdW5j''@;'; + put 'put ''dGlvbiB2ZShJZSxUZSxFZSl7dmFyIGhlPUllLl9ldmVudHM7aWYodm9pZCAwPT09aGUpcmV0dXJuW107dmFyIE89aGVbVGVdO3JldHVybiB2b2lkIDA9PT1PP1tdOiJmdW5jdGlvbiI9PXR5cGVvZiBPP0VlP1tPLmxpc3RlbmVyfHxPXTpbT106RWU/ZnVuY3Rpb24oeil7Zm9yKHZhciBuZT1u''@;'; + put 'put ''ZXcgQXJyYXkoei5sZW5ndGgpLHRlPTA7dGU8bmUubGVuZ3RoOysrdGUpbmVbdGVdPXpbdGVdLmxpc3RlbmVyfHx6W3RlXTtyZXR1cm4gbmV9KE8pOmtlKE8sTy5sZW5ndGgpfWZ1bmN0aW9uIEFlKEllKXt2YXIgVGU9dGhpcy5fZXZlbnRzO2lmKHZvaWQgMCE9PVRlKXt2YXIgRWU9VGVbSWVd''@;'; + put 'put ''O2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBFZSlyZXR1cm4gMTtpZih2b2lkIDAhPT1FZSlyZXR1cm4gRWUubGVuZ3RofXJldHVybiAwfWZ1bmN0aW9uIGtlKEllLFRlKXtmb3IodmFyIEVlPW5ldyBBcnJheShUZSksaGU9MDtoZTxUZTsrK2hlKUVlW2hlXT1JZVtoZV07cmV0dXJuIEVlfWZ1bmN0''@;'; + put 'put ''aW9uIFNlKEllLFRlLEVlLGhlKXtpZigiZnVuY3Rpb24iPT10eXBlb2YgSWUub24paGUub25jZT9JZS5vbmNlKFRlLEVlKTpJZS5vbihUZSxFZSk7ZWxzZXtpZigiZnVuY3Rpb24iIT10eXBlb2YgSWUuYWRkRXZlbnRMaXN0ZW5lcil0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgImVtaXR0ZXIi''@;'; + put 'put ''IGFyZ3VtZW50IG11c3QgYmUgb2YgdHlwZSBFdmVudEVtaXR0ZXIuIFJlY2VpdmVkIHR5cGUgJyt0eXBlb2YgSWUpO0llLmFkZEV2ZW50TGlzdGVuZXIoVGUsZnVuY3Rpb24gTyh6KXtoZS5vbmNlJiZJZS5yZW1vdmVFdmVudExpc3RlbmVyKFRlLE8pLEVlKHopfSl9fU9iamVjdC5kZWZpbmVQ''@;'; + put 'put ''cm9wZXJ0eShlZSwiZGVmYXVsdE1heExpc3RlbmVycyIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHF9LHNldDpmdW5jdGlvbihJZSl7aWYoIm51bWJlciIhPXR5cGVvZiBJZXx8SWU8MHx8TihJZSkpdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ1RoZSB2YWx1ZSBvZiAiZGVm''@;'; + put 'put ''YXVsdE1heExpc3RlbmVycyIgaXMgb3V0IG9mIHJhbmdlLiBJdCBtdXN0IGJlIGEgbm9uLW5lZ2F0aXZlIG51bWJlci4gUmVjZWl2ZWQgJytJZSsiLiIpO3E9SWV9fSksZWUuaW5pdD1mdW5jdGlvbigpe3ZvaWQgMCE9PXRoaXMuX2V2ZW50cyYmdGhpcy5fZXZlbnRzIT09T2JqZWN0LmdldFBy''@;'; + put 'put ''b3RvdHlwZU9mKHRoaXMpLl9ldmVudHN8fCh0aGlzLl9ldmVudHM9T2JqZWN0LmNyZWF0ZShudWxsKSx0aGlzLl9ldmVudHNDb3VudD0wKSx0aGlzLl9tYXhMaXN0ZW5lcnM9dGhpcy5fbWF4TGlzdGVuZXJzfHx2b2lkIDB9LGVlLnByb3RvdHlwZS5zZXRNYXhMaXN0ZW5lcnM9ZnVuY3Rpb24o''@;'; + put 'put ''SWUpe2lmKCJudW1iZXIiIT10eXBlb2YgSWV8fEllPDB8fE4oSWUpKXRocm93IG5ldyBSYW5nZUVycm9yKCdUaGUgdmFsdWUgb2YgIm4iIGlzIG91dCBvZiByYW5nZS4gSXQgbXVzdCBiZSBhIG5vbi1uZWdhdGl2ZSBudW1iZXIuIFJlY2VpdmVkICcrSWUrIi4iKTtyZXR1cm4gdGhpcy5fbWF4''@;'; + put 'put ''TGlzdGVuZXJzPUllLHRoaXN9LGVlLnByb3RvdHlwZS5nZXRNYXhMaXN0ZW5lcnM9ZnVuY3Rpb24oKXtyZXR1cm4gc2UodGhpcyl9LGVlLnByb3RvdHlwZS5lbWl0PWZ1bmN0aW9uKEllKXtmb3IodmFyIFRlPVtdLEVlPTE7RWU8YXJndW1lbnRzLmxlbmd0aDtFZSsrKVRlLnB1c2goYXJndW1l''@;'; + put 'put ''bnRzW0VlXSk7dmFyIGhlPSJlcnJvciI9PT1JZSxPPXRoaXMuX2V2ZW50cztpZih2b2lkIDAhPT1PKWhlPWhlJiZ2b2lkIDA9PT1PLmVycm9yO2Vsc2UgaWYoIWhlKXJldHVybiExO2lmKGhlKXt2YXIgejtpZihUZS5sZW5ndGg+MCYmKHo9VGVbMF0pLHogaW5zdGFuY2VvZiBFcnJvcil0aHJv''@;'; + put 'put ''dyB6O3ZhciBuZT1uZXcgRXJyb3IoIlVuaGFuZGxlZCBlcnJvci4iKyh6PyIgKCIrei5tZXNzYWdlKyIpIjoiIikpO3Rocm93IG5lLmNvbnRleHQ9eixuZX12YXIgdGU9T1tJZV07aWYodm9pZCAwPT09dGUpcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIHRlKVcodGUsdGhpcyxUZSk7''@;'; + put 'put ''ZWxzZXt2YXIgeD10ZS5sZW5ndGgsUD1rZSh0ZSx4KTtmb3IoRWU9MDtFZTx4OysrRWUpVyhQW0VlXSx0aGlzLFRlKX1yZXR1cm4hMH0sZWUucHJvdG90eXBlLm9uPWVlLnByb3RvdHlwZS5hZGRMaXN0ZW5lcj1mdW5jdGlvbihJZSxUZSl7cmV0dXJuIG9lKHRoaXMsSWUsVGUsITEpfSxlZS5w''@;'; + put 'put ''cm90b3R5cGUucHJlcGVuZExpc3RlbmVyPWZ1bmN0aW9uKEllLFRlKXtyZXR1cm4gb2UodGhpcyxJZSxUZSwhMCl9LGVlLnByb3RvdHlwZS5vbmNlPWZ1bmN0aW9uKEllLFRlKXtyZXR1cm4gSihUZSksdGhpcy5vbihJZSxkZSh0aGlzLEllLFRlKSksdGhpc30sZWUucHJvdG90eXBlLnByZXBl''@;'; + put 'put ''bmRPbmNlTGlzdGVuZXI9ZnVuY3Rpb24oSWUsVGUpe3JldHVybiBKKFRlKSx0aGlzLnByZXBlbmRMaXN0ZW5lcihJZSxkZSh0aGlzLEllLFRlKSksdGhpc30sZWUucHJvdG90eXBlLm9mZj1lZS5wcm90b3R5cGUucmVtb3ZlTGlzdGVuZXI9ZnVuY3Rpb24oSWUsVGUpe3ZhciBFZSxoZSxPLHos''@;'; + put 'put ''bmU7aWYoSihUZSksdm9pZCAwPT09KGhlPXRoaXMuX2V2ZW50cykpcmV0dXJuIHRoaXM7aWYodm9pZCAwPT09KEVlPWhlW0llXSkpcmV0dXJuIHRoaXM7aWYoRWU9PT1UZXx8RWUubGlzdGVuZXI9PT1UZSkwPT0tLXRoaXMuX2V2ZW50c0NvdW50P3RoaXMuX2V2ZW50cz1PYmplY3QuY3JlYXRl''@;'; + put 'put ''KG51bGwpOihkZWxldGUgaGVbSWVdLGhlLnJlbW92ZUxpc3RlbmVyJiZ0aGlzLmVtaXQoInJlbW92ZUxpc3RlbmVyIixJZSxFZS5saXN0ZW5lcnx8VGUpKTtlbHNlIGlmKCJmdW5jdGlvbiIhPXR5cGVvZiBFZSl7Zm9yKE89LTEsej1FZS5sZW5ndGgtMTt6Pj0wO3otLSlpZihFZVt6XT09PVRl''@;'; + put 'put ''fHxFZVt6XS5saXN0ZW5lcj09PVRlKXtuZT1FZVt6XS5saXN0ZW5lcixPPXo7YnJlYWt9aWYoTzwwKXJldHVybiB0aGlzOzA9PT1PP0VlLnNoaWZ0KCk6ZnVuY3Rpb24odGUseCl7Zm9yKDt4KzE8dGUubGVuZ3RoO3grKyl0ZVt4XT10ZVt4KzFdO3RlLnBvcCgpfShFZSxPKSwxPT09RWUubGVu''@;'; + put 'put ''Z3RoJiYoaGVbSWVdPUVlWzBdKSx2b2lkIDAhPT1oZS5yZW1vdmVMaXN0ZW5lciYmdGhpcy5lbWl0KCJyZW1vdmVMaXN0ZW5lciIsSWUsbmV8fFRlKX1yZXR1cm4gdGhpc30sZWUucHJvdG90eXBlLnJlbW92ZUFsbExpc3RlbmVycz1mdW5jdGlvbihJZSl7dmFyIFRlLEVlLGhlO2lmKHZvaWQg''@;'; + put 'put ''MD09PShFZT10aGlzLl9ldmVudHMpKXJldHVybiB0aGlzO2lmKHZvaWQgMD09PUVlLnJlbW92ZUxpc3RlbmVyKXJldHVybiAwPT09YXJndW1lbnRzLmxlbmd0aD8odGhpcy5fZXZlbnRzPU9iamVjdC5jcmVhdGUobnVsbCksdGhpcy5fZXZlbnRzQ291bnQ9MCk6dm9pZCAwIT09RWVbSWVdJiYo''@;'; + put 'put ''MD09LS10aGlzLl9ldmVudHNDb3VudD90aGlzLl9ldmVudHM9T2JqZWN0LmNyZWF0ZShudWxsKTpkZWxldGUgRWVbSWVdKSx0aGlzO2lmKDA9PT1hcmd1bWVudHMubGVuZ3RoKXt2YXIgTyx6PU9iamVjdC5rZXlzKEVlKTtmb3IoaGU9MDtoZTx6Lmxlbmd0aDsrK2hlKSJyZW1vdmVMaXN0ZW5l''@;'; + put 'put ''ciIhPT0oTz16W2hlXSkmJnRoaXMucmVtb3ZlQWxsTGlzdGVuZXJzKE8pO3JldHVybiB0aGlzLnJlbW92ZUFsbExpc3RlbmVycygicmVtb3ZlTGlzdGVuZXIiKSx0aGlzLl9ldmVudHM9T2JqZWN0LmNyZWF0ZShudWxsKSx0aGlzLl9ldmVudHNDb3VudD0wLHRoaXN9aWYoImZ1bmN0aW9uIj09''@;'; + put 'put ''dHlwZW9mKFRlPUVlW0llXSkpdGhpcy5yZW1vdmVMaXN0ZW5lcihJZSxUZSk7ZWxzZSBpZih2b2lkIDAhPT1UZSlmb3IoaGU9VGUubGVuZ3RoLTE7aGU+PTA7aGUtLSl0aGlzLnJlbW92ZUxpc3RlbmVyKEllLFRlW2hlXSk7cmV0dXJuIHRoaXN9LGVlLnByb3RvdHlwZS5saXN0ZW5lcnM9ZnVu''@;'; + put 'put ''Y3Rpb24oSWUpe3JldHVybiB2ZSh0aGlzLEllLCEwKX0sZWUucHJvdG90eXBlLnJhd0xpc3RlbmVycz1mdW5jdGlvbihJZSl7cmV0dXJuIHZlKHRoaXMsSWUsITEpfSxlZS5saXN0ZW5lckNvdW50PWZ1bmN0aW9uKEllLFRlKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgSWUubGlzdGVuZXJD''@;'; + put 'put ''b3VudD9JZS5saXN0ZW5lckNvdW50KFRlKTpBZS5jYWxsKEllLFRlKX0sZWUucHJvdG90eXBlLmxpc3RlbmVyQ291bnQ9QWUsZWUucHJvdG90eXBlLmV2ZW50TmFtZXM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZXZlbnRzQ291bnQ+MD9pZSh0aGlzLl9ldmVudHMpOltdfX0sMzA0ODooVSxR''@;'; + put 'put ''LFopPT57dmFyIGllPVooOTUwOSkuQnVmZmVyLGFlPVooMjMxOCk7VS5leHBvcnRzPWZ1bmN0aW9uKFksVyxOLGVlKXtpZihpZS5pc0J1ZmZlcihZKXx8KFk9aWUuZnJvbShZLCJiaW5hcnkiKSksVyYmKGllLmlzQnVmZmVyKFcpfHwoVz1pZS5mcm9tKFcsImJpbmFyeSIpKSw4IT09Vy5sZW5n''@;'; + put 'put ''dGgpKXRocm93IG5ldyBSYW5nZUVycm9yKCJzYWx0IHNob3VsZCBiZSBCdWZmZXIgd2l0aCA4IGJ5dGUgbGVuZ3RoIik7Zm9yKHZhciBxPU4vOCxKPWllLmFsbG9jKHEpLHNlPWllLmFsbG9jKGVlfHwwKSxvZT1pZS5hbGxvYygwKTtxPjB8fGVlPjA7KXt2YXIgY2U9bmV3IGFlO2NlLnVwZGF0''@;'; + put 'put ''ZShvZSksY2UudXBkYXRlKFkpLFcmJmNlLnVwZGF0ZShXKSxvZT1jZS5kaWdlc3QoKTt2YXIgZGU9MDtpZihxPjApe3ZhciB2ZT1KLmxlbmd0aC1xO2RlPU1hdGgubWluKHEsb2UubGVuZ3RoKSxvZS5jb3B5KEosdmUsMCxkZSkscS09ZGV9aWYoZGU8b2UubGVuZ3RoJiZlZT4wKXt2YXIgQWU9''@;'; + put 'put ''c2UubGVuZ3RoLWVlLGtlPU1hdGgubWluKGVlLG9lLmxlbmd0aC1kZSk7b2UuY29weShzZSxBZSxkZSxkZStrZSksZWUtPWtlfX1yZXR1cm4gb2UuZmlsbCgwKSx7a2V5OkosaXY6c2V9fX0sNDAyOTooVSxRLFopPT57InVzZSBzdHJpY3QiO3ZhciBpZT1aKDUzMjApLGFlPU9iamVjdC5wcm90''@;'; + put 'put ''b3R5cGUudG9TdHJpbmcsWT1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LFc9ZnVuY3Rpb24ocSxKLHNlKXtmb3IodmFyIG9lPTAsY2U9cS5sZW5ndGg7b2U8Y2U7b2UrKylZLmNhbGwocSxvZSkmJihudWxsPT1zZT9KKHFbb2VdLG9lLHEpOkouY2FsbChzZSxxW29lXSxvZSxxKSl9''@;'; + put 'put ''LE49ZnVuY3Rpb24ocSxKLHNlKXtmb3IodmFyIG9lPTAsY2U9cS5sZW5ndGg7b2U8Y2U7b2UrKyludWxsPT1zZT9KKHEuY2hhckF0KG9lKSxvZSxxKTpKLmNhbGwoc2UscS5jaGFyQXQob2UpLG9lLHEpfSxlZT1mdW5jdGlvbihxLEosc2Upe2Zvcih2YXIgb2UgaW4gcSlZLmNhbGwocSxvZSkm''@;'; + put 'put ''JihudWxsPT1zZT9KKHFbb2VdLG9lLHEpOkouY2FsbChzZSxxW29lXSxvZSxxKSl9O1UuZXhwb3J0cz1mdW5jdGlvbihxLEosc2Upe2lmKCFpZShKKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJpdGVyYXRvciBtdXN0IGJlIGEgZnVuY3Rpb24iKTt2YXIgb2U7YXJndW1lbnRzLmxlbmd0aD49MyYm''@;'; + put 'put ''KG9lPXNlKSwiW29iamVjdCBBcnJheV0iPT09YWUuY2FsbChxKT9XKHEsSixvZSk6InN0cmluZyI9PXR5cGVvZiBxP04ocSxKLG9lKTplZShxLEosb2UpfX0sNjIzMDpVPT57VS5leHBvcnRzPSJvYmplY3QiPT10eXBlb2Ygc2VsZj9zZWxmLkZvcm1EYXRhOndpbmRvdy5Gb3JtRGF0YX0sNTMw''@;'; + put 'put ''MjooVSxRLFopPT57InVzZSBzdHJpY3QiO3ZhciBpZT1aKDQxNTUpLGFlPVooNTEwOCk7Y29uc3QgWT1aKDc3KSxXPVooMjUyMCksTj1aKDEzODEpLm1rZGlyc1N5bmMsZWU9WigzMTgpLnV0aW1lc01pbGxpc1N5bmMscT1aKDI3MzMpO2Z1bmN0aW9uIEooZGUsdmUsQWUsa2Upe2NvbnN0IFNl''@;'; + put 'put ''PShrZS5kZXJlZmVyZW5jZT9ZLnN0YXRTeW5jOlkubHN0YXRTeW5jKSh2ZSk7aWYoU2UuaXNEaXJlY3RvcnkoKSlyZXR1cm4gSWU9U2UsRWU9dmUsaGU9QWUsTz1rZSxkZT9jZShFZSxoZSxPKTooej1JZS5tb2RlLG5lPUVlLHg9TyxZLm1rZGlyU3luYyh0ZT1oZSksY2UobmUsdGUseCksb2Uo''@;'; + put 'put ''dGUseikpO3ZhciBJZSxFZSxoZSxPLHosbmUsdGUseDtpZihTZS5pc0ZpbGUoKXx8U2UuaXNDaGFyYWN0ZXJEZXZpY2UoKXx8U2UuaXNCbG9ja0RldmljZSgpKXJldHVybiBmdW5jdGlvbihJZSxUZSxFZSxoZSxPKXtyZXR1cm4gVGU/ZnVuY3Rpb24oeixuZSx0ZSx4KXtpZih4Lm92ZXJ3cml0''@;'; + put 'put ''ZSlyZXR1cm4gWS51bmxpbmtTeW5jKHRlKSxzZSh6LG5lLHRlLHgpO2lmKHguZXJyb3JPbkV4aXN0KXRocm93IG5ldyBFcnJvcihgJyR7dGV9JyBhbHJlYWR5IGV4aXN0c2ApfShJZSxFZSxoZSxPKTpzZShJZSxFZSxoZSxPKX0oU2UsZGUsdmUsQWUsa2UpO2lmKFNlLmlzU3ltYm9saWNMaW5r''@;'; + put 'put ''KCkpcmV0dXJuIGZ1bmN0aW9uKEllLFRlLEVlLGhlKXtsZXQgTz1ZLnJlYWRsaW5rU3luYyhUZSk7aWYoaGUuZGVyZWZlcmVuY2UmJihPPVcucmVzb2x2ZShpZS5jd2QoKSxPKSksSWUpe2xldCB6O3RyeXt6PVkucmVhZGxpbmtTeW5jKEVlKX1jYXRjaChuZSl7aWYoIkVJTlZBTCI9PT1uZS5j''@;'; + put 'put ''b2RlfHwiVU5LTk9XTiI9PT1uZS5jb2RlKXJldHVybiBZLnN5bWxpbmtTeW5jKE8sRWUpO3Rocm93IG5lfWlmKGhlLmRlcmVmZXJlbmNlJiYoej1XLnJlc29sdmUoaWUuY3dkKCkseikpLHEuaXNTcmNTdWJkaXIoTyx6KSl0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCBjb3B5ICcke099JyB0byBh''@;'; + put 'put ''IHN1YmRpcmVjdG9yeSBvZiBpdHNlbGYsICcke3p9Jy5gKTtpZihZLnN0YXRTeW5jKEVlKS5pc0RpcmVjdG9yeSgpJiZxLmlzU3JjU3ViZGlyKHosTykpdGhyb3cgbmV3IEVycm9yKGBDYW5ub3Qgb3ZlcndyaXRlICcke3p9JyB3aXRoICcke099Jy5gKTtyZXR1cm4gZnVuY3Rpb24obmUsdGUp''@;'; + put 'put ''e3JldHVybiBZLnVubGlua1N5bmModGUpLFkuc3ltbGlua1N5bmMobmUsdGUpfShPLEVlKX1yZXR1cm4gWS5zeW1saW5rU3luYyhPLEVlKX0oZGUsdmUsQWUsa2UpO3Rocm93IFNlLmlzU29ja2V0KCk/bmV3IEVycm9yKGBDYW5ub3QgY29weSBhIHNvY2tldCBmaWxlOiAke3ZlfWApOlNlLmlz''@;'; + put 'put ''RklGTygpP25ldyBFcnJvcihgQ2Fubm90IGNvcHkgYSBGSUZPIHBpcGU6ICR7dmV9YCk6bmV3IEVycm9yKGBVbmtub3duIGZpbGU6ICR7dmV9YCl9ZnVuY3Rpb24gc2UoZGUsdmUsQWUsa2Upe3JldHVybiBZLmNvcHlGaWxlU3luYyh2ZSxBZSksa2UucHJlc2VydmVUaW1lc3RhbXBzJiYoSWU9''@;'; + put 'put ''dmUsVGU9QWUsMD09KDEyOCYoU2U9ZGUubW9kZSkpJiZvZShUZSwxMjh8U2UpLGZ1bmN0aW9uKEVlLGhlKXtjb25zdCBPPVkuc3RhdFN5bmMoRWUpO2VlKGhlLE8uYXRpbWUsTy5tdGltZSl9KEllLFRlKSksb2UoQWUsZGUubW9kZSk7dmFyIFNlLEllLFRlfWZ1bmN0aW9uIG9lKGRlLHZlKXty''@;'; + put 'put ''ZXR1cm4gWS5jaG1vZFN5bmMoZGUsdmUpfWZ1bmN0aW9uIGNlKGRlLHZlLEFlKXtZLnJlYWRkaXJTeW5jKGRlKS5mb3JFYWNoKGtlPT5mdW5jdGlvbihTZSxJZSxUZSxFZSl7Y29uc3QgaGU9Vy5qb2luKEllLFNlKSxPPVcuam9pbihUZSxTZSkse2Rlc3RTdGF0Onp9PXEuY2hlY2tQYXRoc1N5''@;'; + put 'put ''bmMoaGUsTywiY29weSIsRWUpO3JldHVybiBmdW5jdGlvbihuZSx0ZSx4LFApe2lmKCFQLmZpbHRlcnx8UC5maWx0ZXIodGUseCkpcmV0dXJuIEoobmUsdGUseCxQKX0oeixoZSxPLEVlKX0oa2UsZGUsdmUsQWUpKX1VLmV4cG9ydHM9ZnVuY3Rpb24oZGUsdmUsQWUpeyJmdW5jdGlvbiI9PXR5''@;'; + put 'put ''cGVvZiBBZSYmKEFlPXtmaWx0ZXI6QWV9KSwoQWU9QWV8fHt9KS5jbG9iYmVyPSEoImNsb2JiZXIiaW4gQWUpfHwhIUFlLmNsb2JiZXIsQWUub3ZlcndyaXRlPSJvdmVyd3JpdGUiaW4gQWU/ISFBZS5vdmVyd3JpdGU6QWUuY2xvYmJlcixBZS5wcmVzZXJ2ZVRpbWVzdGFtcHMmJiJpYTMyIj09''@;'; + put 'put ''PWllLmFyY2gmJmFlLndhcm4oImZzLWV4dHJhOiBVc2luZyB0aGUgcHJlc2VydmVUaW1lc3RhbXBzIG9wdGlvbiBpbiAzMi1iaXQgbm9kZSBpcyBub3QgcmVjb21tZW5kZWQ7XG5cbiAgICBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2pwcmljaGFyZHNvbi9ub2RlLWZzLWV4dHJhL2lzc3Vlcy8y''@;'; + put 'put ''NjkiKTtjb25zdHtzcmNTdGF0OmtlLGRlc3RTdGF0OlNlfT1xLmNoZWNrUGF0aHNTeW5jKGRlLHZlLCJjb3B5IixBZSk7cmV0dXJuIHEuY2hlY2tQYXJlbnRQYXRoc1N5bmMoZGUsa2UsdmUsImNvcHkiKSxmdW5jdGlvbihJZSxUZSxFZSxoZSl7aWYoaGUuZmlsdGVyJiYhaGUuZmlsdGVyKFRl''@;'; + put 'put ''LEVlKSlyZXR1cm47Y29uc3QgTz1XLmRpcm5hbWUoRWUpO3JldHVybiBZLmV4aXN0c1N5bmMoTyl8fE4oTyksSihJZSxUZSxFZSxoZSl9KFNlLGRlLHZlLEFlKX19LDg2OTA6KFUsUSxaKT0+eyJ1c2Ugc3RyaWN0IjtVLmV4cG9ydHM9e2NvcHlTeW5jOlooNTMwMil9fSw3MTg5OihVLFEsWik9''@;'; + put 'put ''PnsidXNlIHN0cmljdCI7dmFyIGllPVooNDE1NSksYWU9Wig1MTA4KTtjb25zdCBZPVooNzcpLFc9WigyNTIwKSxOPVooMTM4MSkubWtkaXJzLGVlPVooOTI1NykucGF0aEV4aXN0cyxxPVooMzE4KS51dGltZXNNaWxsaXMsSj1aKDI3MzMpO2Z1bmN0aW9uIHNlKFRlLEVlLGhlLE8seil7Y29u''@;'; + put 'put ''c3QgbmU9Vy5kaXJuYW1lKGhlKTtlZShuZSwodGUseCk9PnRlP3oodGUpOng/Y2UoVGUsRWUsaGUsTyx6KTp2b2lkIE4obmUsUD0+UD96KFApOmNlKFRlLEVlLGhlLE8seikpKX1mdW5jdGlvbiBvZShUZSxFZSxoZSxPLHosbmUpe1Byb21pc2UucmVzb2x2ZSh6LmZpbHRlcihoZSxPKSkudGhl''@;'; + put 'put ''bih0ZT0+dGU/VGUoRWUsaGUsTyx6LG5lKTpuZSgpLHRlPT5uZSh0ZSkpfWZ1bmN0aW9uIGNlKFRlLEVlLGhlLE8seil7KE8uZGVyZWZlcmVuY2U/WS5zdGF0OlkubHN0YXQpKEVlLChuZSx0ZSk9PntyZXR1cm4gbmU/eihuZSk6dGUuaXNEaXJlY3RvcnkoKT8oeD10ZSxWPUVlLFQ9aGUsUz1P''@;'; + put 'put ''LEY9eixUZT9rZShWLFQsUyxGKTooeWU9eC5tb2RlLENlPVYsUGU9UyxRZT1GLHZvaWQgWS5ta2RpcihEZT1ULCRlPT57aWYoJGUpcmV0dXJuIFFlKCRlKTtrZShDZSxEZSxQZSxndD0+Z3Q/UWUoZ3QpOkFlKERlLHllLFFlKSl9KSkpOnRlLmlzRmlsZSgpfHx0ZS5pc0NoYXJhY3RlckRldmlj''@;'; + put 'put ''ZSgpfHx0ZS5pc0Jsb2NrRGV2aWNlKCk/ZnVuY3Rpb24oeCxQLFYsVCxTLEYpe3JldHVybiBQP2Z1bmN0aW9uKHllLENlLERlLFBlLFFlKXtpZighUGUub3ZlcndyaXRlKXJldHVybiBQZS5lcnJvck9uRXhpc3Q/UWUobmV3IEVycm9yKGAnJHtEZX0nIGFscmVhZHkgZXhpc3RzYCkpOlFlKCk7''@;'; + put 'put ''WS51bmxpbmsoRGUsJGU9PiRlP1FlKCRlKTpkZSh5ZSxDZSxEZSxQZSxRZSkpfSh4LFYsVCxTLEYpOmRlKHgsVixULFMsRil9KHRlLFRlLEVlLGhlLE8seik6dGUuaXNTeW1ib2xpY0xpbmsoKT9mdW5jdGlvbiBJZShUZSxFZSxoZSxPLHope1kucmVhZGxpbmsoRWUsKG5lLHRlKT0+bmU/eihu''@;'; + put 'put ''ZSk6KE8uZGVyZWZlcmVuY2UmJih0ZT1XLnJlc29sdmUoaWUuY3dkKCksdGUpKSxUZT92b2lkIFkucmVhZGxpbmsoaGUsKHgsUCk9PntyZXR1cm4geD8iRUlOVkFMIj09PXguY29kZXx8IlVOS05PV04iPT09eC5jb2RlP1kuc3ltbGluayh0ZSxoZSx6KTp6KHgpOihPLmRlcmVmZXJlbmNlJiYo''@;'; + put 'put ''UD1XLnJlc29sdmUoaWUuY3dkKCksUCkpLEouaXNTcmNTdWJkaXIodGUsUCk/eihuZXcgRXJyb3IoYENhbm5vdCBjb3B5ICcke3RlfScgdG8gYSBzdWJkaXJlY3Rvcnkgb2YgaXRzZWxmLCAnJHtQfScuYCkpOlRlLmlzRGlyZWN0b3J5KCkmJkouaXNTcmNTdWJkaXIoUCx0ZSk/eihuZXcgRXJy''@;'; + put 'put ''b3IoYENhbm5vdCBvdmVyd3JpdGUgJyR7UH0nIHdpdGggJyR7dGV9Jy5gKSk6KFY9dGUsUz16LHZvaWQgWS51bmxpbmsoVD1oZSxGPT5GP1MoRik6WS5zeW1saW5rKFYsVCxTKSkpKTt2YXIgVixULFN9KTpZLnN5bWxpbmsodGUsaGUseikpKX0oVGUsRWUsaGUsTyx6KTp0ZS5pc1NvY2tldCgp''@;'; + put 'put ''P3oobmV3IEVycm9yKGBDYW5ub3QgY29weSBhIHNvY2tldCBmaWxlOiAke0VlfWApKTp0ZS5pc0ZJRk8oKT96KG5ldyBFcnJvcihgQ2Fubm90IGNvcHkgYSBGSUZPIHBpcGU6ICR7RWV9YCkpOnoobmV3IEVycm9yKGBVbmtub3duIGZpbGU6ICR7RWV9YCkpO3ZhciB4LFYsVCxTLEYseWUsQ2Us''@;'; + put 'put ''RGUsUGUsUWV9KX1mdW5jdGlvbiBkZShUZSxFZSxoZSxPLHope1kuY29weUZpbGUoRWUsaGUsbmU9PntyZXR1cm4gbmU/eihuZSk6Ty5wcmVzZXJ2ZVRpbWVzdGFtcHM/KHg9RWUsUD1oZSxWPXosMD09KDEyOCYodGU9VGUubW9kZSkpP0FlKFAsMTI4fHRlLFQ9PlQ/VihUKTp2ZSh0ZSx4LFAs''@;'; + put 'put ''VikpOnZlKHRlLHgsUCxWKSk6QWUoaGUsVGUubW9kZSx6KTt2YXIgdGUseCxQLFZ9KX1mdW5jdGlvbiB2ZShUZSxFZSxoZSxPKXt2YXIgbmUsdGU7bmU9aGUsdGU9ej0+ej9PKHopOkFlKGhlLFRlLE8pLFkuc3RhdChFZSwoeCxQKT0+eD90ZSh4KTpxKG5lLFAuYXRpbWUsUC5tdGltZSx0ZSkp''@;'; + put 'put ''fWZ1bmN0aW9uIEFlKFRlLEVlLGhlKXtyZXR1cm4gWS5jaG1vZChUZSxFZSxoZSl9ZnVuY3Rpb24ga2UoVGUsRWUsaGUsTyl7WS5yZWFkZGlyKFRlLCh6LG5lKT0+ej9PKHopOlNlKG5lLFRlLEVlLGhlLE8pKX1mdW5jdGlvbiBTZShUZSxFZSxoZSxPLHope2NvbnN0IG5lPVRlLnBvcCgpO3Jl''@;'; + put 'put ''dHVybiBuZT9mdW5jdGlvbih0ZSx4LFAsVixULFMpe2NvbnN0IEY9Vy5qb2luKFAseCkseWU9Vy5qb2luKFYseCk7Si5jaGVja1BhdGhzKEYseWUsImNvcHkiLFQsKENlLERlKT0+e2lmKENlKXJldHVybiBTKENlKTtjb25zdHtkZXN0U3RhdDpQZX09RGU7dmFyIFFlLCRlLGd0LHd0LG10O1Fl''@;'; + put 'put ''PVBlLCRlPUYsZ3Q9eWUsbXQ9UWU9PlFlP1MoUWUpOlNlKHRlLFAsVixULFMpLCh3dD1UKS5maWx0ZXI/b2UoY2UsUWUsJGUsZ3Qsd3QsbXQpOmNlKFFlLCRlLGd0LHd0LG10KX0pfShUZSxuZSxFZSxoZSxPLHopOnooKX1VLmV4cG9ydHM9ZnVuY3Rpb24oVGUsRWUsaGUsTyl7ImZ1bmN0aW9u''@;'; + put 'put ''IiE9dHlwZW9mIGhlfHxPPyJmdW5jdGlvbiI9PXR5cGVvZiBoZSYmKGhlPXtmaWx0ZXI6aGV9KTooTz1oZSxoZT17fSksTz1PfHxmdW5jdGlvbigpe30sKGhlPWhlfHx7fSkuY2xvYmJlcj0hKCJjbG9iYmVyImluIGhlKXx8ISFoZS5jbG9iYmVyLGhlLm92ZXJ3cml0ZT0ib3ZlcndyaXRlImlu''@;'; + put 'put ''IGhlPyEhaGUub3ZlcndyaXRlOmhlLmNsb2JiZXIsaGUucHJlc2VydmVUaW1lc3RhbXBzJiYiaWEzMiI9PT1pZS5hcmNoJiZhZS53YXJuKCJmcy1leHRyYTogVXNpbmcgdGhlIHByZXNlcnZlVGltZXN0YW1wcyBvcHRpb24gaW4gMzItYml0IG5vZGUgaXMgbm90IHJlY29tbWVuZGVkO1xuXG4g''@;'; + put 'put ''ICAgc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9qcHJpY2hhcmRzb24vbm9kZS1mcy1leHRyYS9pc3N1ZXMvMjY5IiksSi5jaGVja1BhdGhzKFRlLEVlLCJjb3B5IixoZSwoeixuZSk9PntpZih6KXJldHVybiBPKHopO2NvbnN0e3NyY1N0YXQ6dGUsZGVzdFN0YXQ6eH09bmU7Si5jaGVja1BhcmVu''@;'; + put 'put ''dFBhdGhzKFRlLHRlLEVlLCJjb3B5IixQPT5QP08oUCk6aGUuZmlsdGVyP29lKHNlLHgsVGUsRWUsaGUsTyk6c2UoeCxUZSxFZSxoZSxPKSl9KX19LDY0NjQ6KFUsUSxaKT0+eyJ1c2Ugc3RyaWN0Ijtjb25zdCBpZT1aKDg5ODEpLmZyb21DYWxsYmFjaztVLmV4cG9ydHM9e2NvcHk6aWUoWig3''@;'; + put 'put ''MTg5KSl9fSw1NTkwOihVLFEsWik9PnsidXNlIHN0cmljdCI7Y29uc3QgaWU9Wig4OTgxKS5mcm9tUHJvbWlzZSxhZT1aKDc3NDkpLFk9WigyNTIwKSxXPVooMTM4MSksTj1aKDQ1NDIpLGVlPWllKGZ1bmN0aW9uKCl7dmFyIEo9bWUoZnVuY3Rpb24qKHNlKXtsZXQgb2U7dHJ5e29lPXlpZWxk''@;'; + put 'put ''IGFlLnJlYWRkaXIoc2UpfWNhdGNoKGNlKXtyZXR1cm4gVy5ta2RpcnMoc2UpfXJldHVybiBQcm9taXNlLmFsbChvZS5tYXAoY2U9Pk4ucmVtb3ZlKFkuam9pbihzZSxjZSkpKSl9KTtyZXR1cm4gZnVuY3Rpb24oc2Upe3JldHVybiBKLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCkpO2Z1bmN0''@;'; + put 'put ''aW9uIHEoSil7bGV0IHNlO3RyeXtzZT1hZS5yZWFkZGlyU3luYyhKKX1jYXRjaChvZSl7cmV0dXJuIFcubWtkaXJzU3luYyhKKX1zZS5mb3JFYWNoKG9lPT57b2U9WS5qb2luKEosb2UpLE4ucmVtb3ZlU3luYyhvZSl9KX1VLmV4cG9ydHM9e2VtcHR5RGlyU3luYzpxLGVtcHR5ZGlyU3luYzpx''@;'; + put 'put ''LGVtcHR5RGlyOmVlLGVtcHR5ZGlyOmVlfX0sNjUzMDooVSxRLFopPT57InVzZSBzdHJpY3QiO2NvbnN0IGllPVooODk4MSkuZnJvbUNhbGxiYWNrLGFlPVooMjUyMCksWT1aKDc3KSxXPVooMTM4MSk7VS5leHBvcnRzPXtjcmVhdGVGaWxlOmllKGZ1bmN0aW9uKE4sZWUpe2Z1bmN0aW9uIHEo''@;'; + put 'put ''KXtZLndyaXRlRmlsZShOLCIiLEo9PntpZihKKXJldHVybiBlZShKKTtlZSgpfSl9WS5zdGF0KE4sKEosc2UpPT57aWYoIUomJnNlLmlzRmlsZSgpKXJldHVybiBlZSgpO2NvbnN0IG9lPWFlLmRpcm5hbWUoTik7WS5zdGF0KG9lLChjZSxkZSk9PntpZihjZSlyZXR1cm4iRU5PRU5UIj09PWNl''@;'; + put 'put ''LmNvZGU/Vy5ta2RpcnMob2UsdmU9PntpZih2ZSlyZXR1cm4gZWUodmUpO3EoKX0pOmVlKGNlKTtkZS5pc0RpcmVjdG9yeSgpP3EoKTpZLnJlYWRkaXIob2UsdmU9PntpZih2ZSlyZXR1cm4gZWUodmUpfSl9KX0pfSksY3JlYXRlRmlsZVN5bmM6ZnVuY3Rpb24oTil7bGV0IGVlO3RyeXtlZT1Z''@;'; + put 'put ''LnN0YXRTeW5jKE4pfWNhdGNoKEope31pZihlZSYmZWUuaXNGaWxlKCkpcmV0dXJuO2NvbnN0IHE9YWUuZGlybmFtZShOKTt0cnl7WS5zdGF0U3luYyhxKS5pc0RpcmVjdG9yeSgpfHxZLnJlYWRkaXJTeW5jKHEpfWNhdGNoKEope2lmKCFKfHwiRU5PRU5UIiE9PUouY29kZSl0aHJvdyBKO1cu''@;'; + put 'put ''bWtkaXJzU3luYyhxKX1ZLndyaXRlRmlsZVN5bmMoTiwiIil9fX0sMTcyMDooVSxRLFopPT57InVzZSBzdHJpY3QiO2NvbnN0IGllPVooNjUzMCksYWU9Wig0MTQ3KSxZPVooMzYzNSk7VS5leHBvcnRzPXtjcmVhdGVGaWxlOmllLmNyZWF0ZUZpbGUsY3JlYXRlRmlsZVN5bmM6aWUuY3JlYXRl''@;'; + put 'put ''RmlsZVN5bmMsZW5zdXJlRmlsZTppZS5jcmVhdGVGaWxlLGVuc3VyZUZpbGVTeW5jOmllLmNyZWF0ZUZpbGVTeW5jLGNyZWF0ZUxpbms6YWUuY3JlYXRlTGluayxjcmVhdGVMaW5rU3luYzphZS5jcmVhdGVMaW5rU3luYyxlbnN1cmVMaW5rOmFlLmNyZWF0ZUxpbmssZW5zdXJlTGlua1N5bmM6''@;'; + put 'put ''YWUuY3JlYXRlTGlua1N5bmMsY3JlYXRlU3ltbGluazpZLmNyZWF0ZVN5bWxpbmssY3JlYXRlU3ltbGlua1N5bmM6WS5jcmVhdGVTeW1saW5rU3luYyxlbnN1cmVTeW1saW5rOlkuY3JlYXRlU3ltbGluayxlbnN1cmVTeW1saW5rU3luYzpZLmNyZWF0ZVN5bWxpbmtTeW5jfX0sNDE0NzooVSxR''@;'; + put 'put ''LFopPT57InVzZSBzdHJpY3QiO2NvbnN0IGllPVooODk4MSkuZnJvbUNhbGxiYWNrLGFlPVooMjUyMCksWT1aKDc3KSxXPVooMTM4MSksTj1aKDkyNTcpLnBhdGhFeGlzdHMse2FyZUlkZW50aWNhbDplZX09WigyNzMzKTtVLmV4cG9ydHM9e2NyZWF0ZUxpbms6aWUoZnVuY3Rpb24ocSxKLHNl''@;'; + put 'put ''KXtmdW5jdGlvbiBvZShjZSxkZSl7WS5saW5rKGNlLGRlLHZlPT57aWYodmUpcmV0dXJuIHNlKHZlKTtzZShudWxsKX0pfVkubHN0YXQoSiwoY2UsZGUpPT57WS5sc3RhdChxLCh2ZSxBZSk9PntpZih2ZSlyZXR1cm4gdmUubWVzc2FnZT12ZS5tZXNzYWdlLnJlcGxhY2UoImxzdGF0IiwiZW5z''@;'; + put 'put ''dXJlTGluayIpLHNlKHZlKTtpZihkZSYmZWUoQWUsZGUpKXJldHVybiBzZShudWxsKTtjb25zdCBrZT1hZS5kaXJuYW1lKEopO04oa2UsKFNlLEllKT0+U2U/c2UoU2UpOkllP29lKHEsSik6dm9pZCBXLm1rZGlycyhrZSxUZT0+e2lmKFRlKXJldHVybiBzZShUZSk7b2UocSxKKX0pKX0pfSl9''@;'; + put 'put ''KSxjcmVhdGVMaW5rU3luYzpmdW5jdGlvbihxLEope2xldCBzZTt0cnl7c2U9WS5sc3RhdFN5bmMoSil9Y2F0Y2goY2Upe310cnl7Y29uc3QgY2U9WS5sc3RhdFN5bmMocSk7aWYoc2UmJmVlKGNlLHNlKSlyZXR1cm59Y2F0Y2goY2Upe3Rocm93IGNlLm1lc3NhZ2U9Y2UubWVzc2FnZS5yZXBs''@;'; + put 'put ''YWNlKCJsc3RhdCIsImVuc3VyZUxpbmsiKSxjZX1jb25zdCBvZT1hZS5kaXJuYW1lKEopO3JldHVybiBZLmV4aXN0c1N5bmMob2UpfHxXLm1rZGlyc1N5bmMob2UpLFkubGlua1N5bmMocSxKKX19fSw2MDcyOihVLFEsWik9PnsidXNlIHN0cmljdCI7Y29uc3QgaWU9WigyNTIwKSxhZT1aKDc3''@;'; + put 'put ''KSxZPVooOTI1NykucGF0aEV4aXN0cztVLmV4cG9ydHM9e3N5bWxpbmtQYXRoczpmdW5jdGlvbihXLE4sZWUpe2lmKGllLmlzQWJzb2x1dGUoVykpcmV0dXJuIGFlLmxzdGF0KFcscT0+cT8ocS5tZXNzYWdlPXEubWVzc2FnZS5yZXBsYWNlKCJsc3RhdCIsImVuc3VyZVN5bWxpbmsiKSxlZShx''@;'; + put 'put ''KSk6ZWUobnVsbCx7dG9Dd2Q6Vyx0b0RzdDpXfSkpO3tjb25zdCBxPWllLmRpcm5hbWUoTiksSj1pZS5qb2luKHEsVyk7cmV0dXJuIFkoSiwoc2Usb2UpPT5zZT9lZShzZSk6b2U/ZWUobnVsbCx7dG9Dd2Q6Six0b0RzdDpXfSk6YWUubHN0YXQoVyxjZT0+Y2U/KGNlLm1lc3NhZ2U9Y2UubWVz''@;'; + put 'put ''c2FnZS5yZXBsYWNlKCJsc3RhdCIsImVuc3VyZVN5bWxpbmsiKSxlZShjZSkpOmVlKG51bGwse3RvQ3dkOlcsdG9Ec3Q6aWUucmVsYXRpdmUocSxXKX0pKSl9fSxzeW1saW5rUGF0aHNTeW5jOmZ1bmN0aW9uKFcsTil7bGV0IGVlO2lmKGllLmlzQWJzb2x1dGUoVykpe2lmKGVlPWFlLmV4aXN0''@;'; + put 'put ''c1N5bmMoVyksIWVlKXRocm93IG5ldyBFcnJvcigiYWJzb2x1dGUgc3JjcGF0aCBkb2VzIG5vdCBleGlzdCIpO3JldHVybnt0b0N3ZDpXLHRvRHN0Old9fXtjb25zdCBxPWllLmRpcm5hbWUoTiksSj1pZS5qb2luKHEsVyk7aWYoZWU9YWUuZXhpc3RzU3luYyhKKSxlZSlyZXR1cm57dG9Dd2Q6''@;'; + put 'put ''Six0b0RzdDpXfTtpZihlZT1hZS5leGlzdHNTeW5jKFcpLCFlZSl0aHJvdyBuZXcgRXJyb3IoInJlbGF0aXZlIHNyY3BhdGggZG9lcyBub3QgZXhpc3QiKTtyZXR1cm57dG9Dd2Q6Vyx0b0RzdDppZS5yZWxhdGl2ZShxLFcpfX19fX0sOTI1OTooVSxRLFopPT57InVzZSBzdHJpY3QiO2NvbnN0''@;'; + put 'put ''IGllPVooNzcpO1UuZXhwb3J0cz17c3ltbGlua1R5cGU6ZnVuY3Rpb24oYWUsWSxXKXtpZihXPSJmdW5jdGlvbiI9PXR5cGVvZiBZP1k6VyxZPSJmdW5jdGlvbiIhPXR5cGVvZiBZJiZZKXJldHVybiBXKG51bGwsWSk7aWUubHN0YXQoYWUsKE4sZWUpPT57aWYoTilyZXR1cm4gVyhudWxsLCJm''@;'; + put 'put ''aWxlIik7WT1lZSYmZWUuaXNEaXJlY3RvcnkoKT8iZGlyIjoiZmlsZSIsVyhudWxsLFkpfSl9LHN5bWxpbmtUeXBlU3luYzpmdW5jdGlvbihhZSxZKXtsZXQgVztpZihZKXJldHVybiBZO3RyeXtXPWllLmxzdGF0U3luYyhhZSl9Y2F0Y2goTil7cmV0dXJuImZpbGUifXJldHVybiBXJiZXLmlz''@;'; + put 'put ''RGlyZWN0b3J5KCk/ImRpciI6ImZpbGUifX19LDM2MzU6KFUsUSxaKT0+eyJ1c2Ugc3RyaWN0Ijtjb25zdCBpZT1aKDg5ODEpLmZyb21DYWxsYmFjayxhZT1aKDI1MjApLFk9Wig3NzQ5KSxXPVooMTM4MSksTj1XLm1rZGlycyxlZT1XLm1rZGlyc1N5bmMscT1aKDYwNzIpLEo9cS5zeW1saW5r''@;'; + put 'put ''UGF0aHMsc2U9cS5zeW1saW5rUGF0aHNTeW5jLG9lPVooOTI1OSksY2U9b2Uuc3ltbGlua1R5cGUsZGU9b2Uuc3ltbGlua1R5cGVTeW5jLHZlPVooOTI1NykucGF0aEV4aXN0cyx7YXJlSWRlbnRpY2FsOkFlfT1aKDI3MzMpO2Z1bmN0aW9uIGtlKFNlLEllLFRlLEVlKXtKKFNlLEllLChoZSxP''@;'; + put 'put ''KT0+e2lmKGhlKXJldHVybiBFZShoZSk7U2U9Ty50b0RzdCxjZShPLnRvQ3dkLFRlLCh6LG5lKT0+e2lmKHopcmV0dXJuIEVlKHopO2NvbnN0IHRlPWFlLmRpcm5hbWUoSWUpO3ZlKHRlLCh4LFApPT54P0VlKHgpOlA/WS5zeW1saW5rKFNlLEllLG5lLEVlKTp2b2lkIE4odGUsVj0+e2lmKFYp''@;'; + put 'put ''cmV0dXJuIEVlKFYpO1kuc3ltbGluayhTZSxJZSxuZSxFZSl9KSl9KX0pfVUuZXhwb3J0cz17Y3JlYXRlU3ltbGluazppZShmdW5jdGlvbihTZSxJZSxUZSxFZSl7RWU9ImZ1bmN0aW9uIj09dHlwZW9mIFRlP1RlOkVlLFRlPSJmdW5jdGlvbiIhPXR5cGVvZiBUZSYmVGUsWS5sc3RhdChJZSwo''@;'; + put 'put ''aGUsTyk9PnshaGUmJk8uaXNTeW1ib2xpY0xpbmsoKT9Qcm9taXNlLmFsbChbWS5zdGF0KFNlKSxZLnN0YXQoSWUpXSkudGhlbigoW3osbmVdKT0+e2lmKEFlKHosbmUpKXJldHVybiBFZShudWxsKTtrZShTZSxJZSxUZSxFZSl9KTprZShTZSxJZSxUZSxFZSl9KX0pLGNyZWF0ZVN5bWxpbmtT''@;'; + put 'put ''eW5jOmZ1bmN0aW9uKFNlLEllLFRlKXtsZXQgRWU7dHJ5e0VlPVkubHN0YXRTeW5jKEllKX1jYXRjaCh6KXt9aWYoRWUmJkVlLmlzU3ltYm9saWNMaW5rKCkpe2NvbnN0IHo9WS5zdGF0U3luYyhTZSksbmU9WS5zdGF0U3luYyhJZSk7aWYoQWUoeixuZSkpcmV0dXJufWNvbnN0IGhlPXNlKFNl''@;'; + put 'put ''LEllKTtTZT1oZS50b0RzdCxUZT1kZShoZS50b0N3ZCxUZSk7Y29uc3QgTz1hZS5kaXJuYW1lKEllKTtyZXR1cm4gWS5leGlzdHNTeW5jKE8pfHxlZShPKSxZLnN5bWxpbmtTeW5jKFNlLEllLFRlKX19fSw3NzQ5OihVLFEsWik9PnsidXNlIHN0cmljdCI7Y29uc3QgaWU9Wig4OTgxKS5mcm9t''@;'; + put 'put ''Q2FsbGJhY2ssYWU9Wig3NyksWT1bImFjY2VzcyIsImFwcGVuZEZpbGUiLCJjaG1vZCIsImNob3duIiwiY2xvc2UiLCJjb3B5RmlsZSIsImZjaG1vZCIsImZjaG93biIsImZkYXRhc3luYyIsImZzdGF0IiwiZnN5bmMiLCJmdHJ1bmNhdGUiLCJmdXRpbWVzIiwibGNobW9kIiwibGNob3duIiwi''@;'; + put 'put ''bGluayIsImxzdGF0IiwibWtkaXIiLCJta2R0ZW1wIiwib3BlbiIsIm9wZW5kaXIiLCJyZWFkZGlyIiwicmVhZEZpbGUiLCJyZWFkbGluayIsInJlYWxwYXRoIiwicmVuYW1lIiwicm0iLCJybWRpciIsInN0YXQiLCJzeW1saW5rIiwidHJ1bmNhdGUiLCJ1bmxpbmsiLCJ1dGltZXMiLCJ3cml0''@;'; + put 'put ''ZUZpbGUiXS5maWx0ZXIoVz0+ImZ1bmN0aW9uIj09dHlwZW9mIGFlW1ddKTtPYmplY3QuYXNzaWduKFEsYWUpLFkuZm9yRWFjaChXPT57UVtXXT1pZShhZVtXXSl9KSxRLnJlYWxwYXRoLm5hdGl2ZT1pZShhZS5yZWFscGF0aC5uYXRpdmUpLFEuZXhpc3RzPWZ1bmN0aW9uKFcsTil7cmV0dXJu''@;'; + put 'put ''ImZ1bmN0aW9uIj09dHlwZW9mIE4/YWUuZXhpc3RzKFcsTik6bmV3IFByb21pc2UoZWU9PmFlLmV4aXN0cyhXLGVlKSl9LFEucmVhZD1mdW5jdGlvbihXLE4sZWUscSxKLHNlKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2Ygc2U/YWUucmVhZChXLE4sZWUscSxKLHNlKTpuZXcgUHJvbWlzZSgo''@;'; + put 'put ''b2UsY2UpPT57YWUucmVhZChXLE4sZWUscSxKLChkZSx2ZSxBZSk9PntpZihkZSlyZXR1cm4gY2UoZGUpO29lKHtieXRlc1JlYWQ6dmUsYnVmZmVyOkFlfSl9KX0pfSxRLndyaXRlPWZ1bmN0aW9uKFcsTiwuLi5lZSl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIGVlW2VlLmxlbmd0aC0xXT9h''@;'; + put 'put ''ZS53cml0ZShXLE4sLi4uZWUpOm5ldyBQcm9taXNlKChxLEopPT57YWUud3JpdGUoVyxOLC4uLmVlLChzZSxvZSxjZSk9PntpZihzZSlyZXR1cm4gSihzZSk7cSh7Ynl0ZXNXcml0dGVuOm9lLGJ1ZmZlcjpjZX0pfSl9KX0sImZ1bmN0aW9uIj09dHlwZW9mIGFlLndyaXRldiYmKFEud3JpdGV2''@;'; + put 'put ''PWZ1bmN0aW9uKFcsTiwuLi5lZSl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIGVlW2VlLmxlbmd0aC0xXT9hZS53cml0ZXYoVyxOLC4uLmVlKTpuZXcgUHJvbWlzZSgocSxKKT0+e2FlLndyaXRldihXLE4sLi4uZWUsKHNlLG9lLGNlKT0+e2lmKHNlKXJldHVybiBKKHNlKTtxKHtieXRlc1dy''@;'; + put 'put ''aXR0ZW46b2UsYnVmZmVyczpjZX0pfSl9KX0pfSw1Njc0OihVLFEsWik9PnsidXNlIHN0cmljdCI7VS5leHBvcnRzPWdzKGdzKGdzKGdzKGdzKGdzKGdzKGdzKGdzKGdzKGdzKGdzKHt9LFooNzc0OSkpLFooODY5MCkpLFooNjQ2NCkpLFooNTU5MCkpLFooMTcyMCkpLFooNjU3MykpLFooMTM4''@;'; + put 'put ''MSkpLFooNDAyNikpLFooNTMwKSksWigxMzE1KSksWig5MjU3KSksWig0NTQyKSl9LDY1NzM6KFUsUSxaKT0+eyJ1c2Ugc3RyaWN0Ijtjb25zdCBpZT1aKDg5ODEpLmZyb21Qcm9taXNlLGFlPVooNzE4Myk7YWUub3V0cHV0SnNvbj1pZShaKDM1MDgpKSxhZS5vdXRwdXRKc29uU3luYz1aKDk1''@;'; + put 'put ''NzgpLGFlLm91dHB1dEpTT049YWUub3V0cHV0SnNvbixhZS5vdXRwdXRKU09OU3luYz1hZS5vdXRwdXRKc29uU3luYyxhZS53cml0ZUpTT049YWUud3JpdGVKc29uLGFlLndyaXRlSlNPTlN5bmM9YWUud3JpdGVKc29uU3luYyxhZS5yZWFkSlNPTj1hZS5yZWFkSnNvbixhZS5yZWFkSlNPTlN5''@;'; + put 'put ''bmM9YWUucmVhZEpzb25TeW5jLFUuZXhwb3J0cz1hZX0sNzE4MzooVSxRLFopPT57InVzZSBzdHJpY3QiO2NvbnN0IGllPVooNjgxMyk7VS5leHBvcnRzPXtyZWFkSnNvbjppZS5yZWFkRmlsZSxyZWFkSnNvblN5bmM6aWUucmVhZEZpbGVTeW5jLHdyaXRlSnNvbjppZS53cml0ZUZpbGUsd3Jp''@;'; + put 'put ''dGVKc29uU3luYzppZS53cml0ZUZpbGVTeW5jfX0sOTU3ODooVSxRLFopPT57InVzZSBzdHJpY3QiO2NvbnN0e3N0cmluZ2lmeTppZX09Wig2NzgwKSx7b3V0cHV0RmlsZVN5bmM6YWV9PVooMTMxNSk7VS5leHBvcnRzPWZ1bmN0aW9uKFksVyxOKXtjb25zdCBlZT1pZShXLE4pO2FlKFksZWUs''@;'; + put 'put ''Til9fSwzNTA4OihVLFEsWik9PnsidXNlIHN0cmljdCI7Y29uc3R7c3RyaW5naWZ5OmllfT1aKDY3ODApLHtvdXRwdXRGaWxlOmFlfT1aKDEzMTUpO1UuZXhwb3J0cz1mdW5jdGlvbigpe3ZhciBZPW1lKGZ1bmN0aW9uKihXLE4sZWU9e30pe2NvbnN0IHE9aWUoTixlZSk7eWllbGQgYWUoVyxx''@;'; + put 'put ''LGVlKX0pO3JldHVybiBmdW5jdGlvbihXLE4pe3JldHVybiBZLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCl9LDEzODE6KFUsUSxaKT0+eyJ1c2Ugc3RyaWN0Ijtjb25zdCBpZT1aKDg5ODEpLmZyb21Qcm9taXNlLHttYWtlRGlyOmFlLG1ha2VEaXJTeW5jOll9PVooODIzMyksVz1pZShhZSk7''@;'; + put 'put ''VS5leHBvcnRzPXtta2RpcnM6Vyxta2RpcnNTeW5jOlksbWtkaXJwOlcsbWtkaXJwU3luYzpZLGVuc3VyZURpcjpXLGVuc3VyZURpclN5bmM6WX19LDgyMzM6KFUsUSxaKT0+eyJ1c2Ugc3RyaWN0Ijtjb25zdCBpZT1aKDc3NDkpLHtjaGVja1BhdGg6YWV9PVooMzQ2OCksWT1XPT4ibnVtYmVy''@;'; + put 'put ''Ij09dHlwZW9mIFc/Vzpncyh7bW9kZTo1MTF9LFcpLm1vZGU7VS5leHBvcnRzLm1ha2VEaXI9ZnVuY3Rpb24oKXt2YXIgVz1tZShmdW5jdGlvbiooTixlZSl7cmV0dXJuIGFlKE4pLGllLm1rZGlyKE4se21vZGU6WShlZSkscmVjdXJzaXZlOiEwfSl9KTtyZXR1cm4gZnVuY3Rpb24oTixlZSl7''@;'; + put 'put ''cmV0dXJuIFcuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKSxVLmV4cG9ydHMubWFrZURpclN5bmM9KFcsTik9PihhZShXKSxpZS5ta2RpclN5bmMoVyx7bW9kZTpZKE4pLHJlY3Vyc2l2ZTohMH0pKX0sMzQ2ODooVSxRLFopPT57InVzZSBzdHJpY3QiO3ZhciBpZT1aKDQxNTUpO2NvbnN0IGFl''@;'; + put 'put ''PVooMjUyMCk7VS5leHBvcnRzLmNoZWNrUGF0aD1mdW5jdGlvbihZKXtpZigid2luMzIiPT09aWUucGxhdGZvcm0mJi9bPD46Inw/Kl0vLnRlc3QoWS5yZXBsYWNlKGFlLnBhcnNlKFkpLnJvb3QsIiIpKSl7Y29uc3QgVz1uZXcgRXJyb3IoYFBhdGggY29udGFpbnMgaW52YWxpZCBjaGFyYWN0''@;'; + put 'put ''ZXJzOiAke1l9YCk7dGhyb3cgVy5jb2RlPSJFSU5WQUwiLFd9fX0sNDAyNjooVSxRLFopPT57InVzZSBzdHJpY3QiO1UuZXhwb3J0cz17bW92ZVN5bmM6Wig2MDA2KX19LDYwMDY6KFUsUSxaKT0+eyJ1c2Ugc3RyaWN0Ijtjb25zdCBpZT1aKDc3KSxhZT1aKDI1MjApLFk9Wig4NjkwKS5jb3B5''@;'; + put 'put ''U3luYyxXPVooNDU0MikucmVtb3ZlU3luYyxOPVooMTM4MSkubWtkaXJwU3luYyxlZT1aKDI3MzMpO2Z1bmN0aW9uIHEoSixzZSxvZSl7dHJ5e2llLnJlbmFtZVN5bmMoSixzZSl9Y2F0Y2goY2Upe2lmKCJFWERFViIhPT1jZS5jb2RlKXRocm93IGNlO3JldHVybiBZKGRlPUosc2Use292ZXJ3''@;'; + put 'put ''cml0ZTpvZSxlcnJvck9uRXhpc3Q6ITB9KSxXKGRlKX12YXIgZGV9VS5leHBvcnRzPWZ1bmN0aW9uKEosc2Usb2Upe2NvbnN0IGNlPShvZT1vZXx8e30pLm92ZXJ3cml0ZXx8b2UuY2xvYmJlcnx8ITEse3NyY1N0YXQ6ZGUsaXNDaGFuZ2luZ0Nhc2U6dmU9ITF9PWVlLmNoZWNrUGF0aHNTeW5j''@;'; + put 'put ''KEosc2UsIm1vdmUiLG9lKTtyZXR1cm4gZWUuY2hlY2tQYXJlbnRQYXRoc1N5bmMoSixkZSxzZSwibW92ZSIpLGZ1bmN0aW9uKEFlKXtjb25zdCBrZT1hZS5kaXJuYW1lKEFlKTtyZXR1cm4gYWUucGFyc2Uoa2UpLnJvb3Q9PT1rZX0oc2UpfHxOKGFlLmRpcm5hbWUoc2UpKSxmdW5jdGlvbihB''@;'; + put 'put ''ZSxrZSxTZSxJZSl7aWYoSWUpcmV0dXJuIHEoQWUsa2UsU2UpO2lmKFNlKXJldHVybiBXKGtlKSxxKEFlLGtlLFNlKTtpZihpZS5leGlzdHNTeW5jKGtlKSl0aHJvdyBuZXcgRXJyb3IoImRlc3QgYWxyZWFkeSBleGlzdHMuIik7cmV0dXJuIHEoQWUsa2UsU2UpfShKLHNlLGNlLHZlKX19LDUz''@;'; + put 'put ''MDooVSxRLFopPT57InVzZSBzdHJpY3QiO2NvbnN0IGllPVooODk4MSkuZnJvbUNhbGxiYWNrO1UuZXhwb3J0cz17bW92ZTppZShaKDQzNikpfX0sNDM2OihVLFEsWik9PnsidXNlIHN0cmljdCI7Y29uc3QgaWU9Wig3NyksYWU9WigyNTIwKSxZPVooNjQ2NCkuY29weSxXPVooNDU0MikucmVt''@;'; + put 'put ''b3ZlLE49WigxMzgxKS5ta2RpcnAsZWU9Wig5MjU3KS5wYXRoRXhpc3RzLHE9WigyNzMzKTtmdW5jdGlvbiBKKG9lLGNlLGRlLHZlLEFlKXtyZXR1cm4gdmU/c2Uob2UsY2UsZGUsQWUpOmRlP1coY2Usa2U9PmtlP0FlKGtlKTpzZShvZSxjZSxkZSxBZSkpOnZvaWQgZWUoY2UsKGtlLFNlKT0+''@;'; + put 'put ''a2U/QWUoa2UpOlNlP0FlKG5ldyBFcnJvcigiZGVzdCBhbHJlYWR5IGV4aXN0cy4iKSk6c2Uob2UsY2UsZGUsQWUpKX1mdW5jdGlvbiBzZShvZSxjZSxkZSx2ZSl7aWUucmVuYW1lKG9lLGNlLEFlPT57cmV0dXJuIEFlPyJFWERFViIhPT1BZS5jb2RlP3ZlKEFlKTooVGU9dmUsdm9pZCBZKGtl''@;'; + put 'put ''PW9lLGNlLHtvdmVyd3JpdGU6ZGUsZXJyb3JPbkV4aXN0OiEwfSxFZT0+RWU/VGUoRWUpOlcoa2UsVGUpKSk6dmUoKTt2YXIga2UsVGV9KX1VLmV4cG9ydHM9ZnVuY3Rpb24ob2UsY2UsZGUsdmUpeyJmdW5jdGlvbiI9PXR5cGVvZiBkZSYmKHZlPWRlLGRlPXt9KTtjb25zdCBBZT1kZS5vdmVy''@;'; + put 'put ''d3JpdGV8fGRlLmNsb2JiZXJ8fCExO3EuY2hlY2tQYXRocyhvZSxjZSwibW92ZSIsZGUsKGtlLFNlKT0+e2lmKGtlKXJldHVybiB2ZShrZSk7Y29uc3R7c3JjU3RhdDpJZSxpc0NoYW5naW5nQ2FzZTpUZT0hMX09U2U7cS5jaGVja1BhcmVudFBhdGhzKG9lLEllLGNlLCJtb3ZlIixFZT0+RWU/''@;'; + put 'put ''dmUoRWUpOmZ1bmN0aW9uKGhlKXtjb25zdCBPPWFlLmRpcm5hbWUoaGUpO3JldHVybiBhZS5wYXJzZShPKS5yb290PT09T30oY2UpP0oob2UsY2UsQWUsVGUsdmUpOnZvaWQgTihhZS5kaXJuYW1lKGNlKSxoZT0+aGU/dmUoaGUpOkoob2UsY2UsQWUsVGUsdmUpKSl9KX19LDEzMTU6KFUsUSxa''@;'; + put 'put ''KT0+eyJ1c2Ugc3RyaWN0Ijtjb25zdCBpZT1aKDg5ODEpLmZyb21DYWxsYmFjayxhZT1aKDc3KSxZPVooMjUyMCksVz1aKDEzODEpLE49Wig5MjU3KS5wYXRoRXhpc3RzO1UuZXhwb3J0cz17b3V0cHV0RmlsZTppZShmdW5jdGlvbihlZSxxLEosc2UpeyJmdW5jdGlvbiI9PXR5cGVvZiBKJiYo''@;'; + put 'put ''c2U9SixKPSJ1dGY4Iik7Y29uc3Qgb2U9WS5kaXJuYW1lKGVlKTtOKG9lLChjZSxkZSk9PmNlP3NlKGNlKTpkZT9hZS53cml0ZUZpbGUoZWUscSxKLHNlKTp2b2lkIFcubWtkaXJzKG9lLHZlPT57aWYodmUpcmV0dXJuIHNlKHZlKTthZS53cml0ZUZpbGUoZWUscSxKLHNlKX0pKX0pLG91dHB1''@;'; + put 'put ''dEZpbGVTeW5jOmZ1bmN0aW9uKGVlLC4uLnEpe2NvbnN0IEo9WS5kaXJuYW1lKGVlKTtpZihhZS5leGlzdHNTeW5jKEopKXJldHVybiBhZS53cml0ZUZpbGVTeW5jKGVlLC4uLnEpO1cubWtkaXJzU3luYyhKKSxhZS53cml0ZUZpbGVTeW5jKGVlLC4uLnEpfX19LDkyNTc6KFUsUSxaKT0+eyJ1''@;'; + put 'put ''c2Ugc3RyaWN0Ijtjb25zdCBpZT1aKDg5ODEpLmZyb21Qcm9taXNlLGFlPVooNzc0OSk7VS5leHBvcnRzPXtwYXRoRXhpc3RzOmllKGZ1bmN0aW9uKFkpe3JldHVybiBhZS5hY2Nlc3MoWSkudGhlbigoKT0+ITApLmNhdGNoKCgpPT4hMSl9KSxwYXRoRXhpc3RzU3luYzphZS5leGlzdHNTeW5j''@;'; + put 'put ''fX0sNDU0MjooVSxRLFopPT57InVzZSBzdHJpY3QiO2NvbnN0IGllPVooNzcpLGFlPVooODk4MSkuZnJvbUNhbGxiYWNrLFk9WigzNDU2KTtVLmV4cG9ydHM9e3JlbW92ZTphZShmdW5jdGlvbihXLE4pe2lmKGllLnJtKXJldHVybiBpZS5ybShXLHtyZWN1cnNpdmU6ITAsZm9yY2U6ITB9LE4p''@;'; + put 'put ''O1koVyxOKX0pLHJlbW92ZVN5bmM6ZnVuY3Rpb24oVyl7aWYoaWUucm1TeW5jKXJldHVybiBpZS5ybVN5bmMoVyx7cmVjdXJzaXZlOiEwLGZvcmNlOiEwfSk7WS5zeW5jKFcpfX19LDM0NTY6KFUsUSxaKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgaWU9Wig0MTU1KTtjb25zdCBhZT1aKDc3KSxZPVoo''@;'; + put 'put ''MjUyMCksVz1aKDkyODIpLE49IndpbjMyIj09PWllLnBsYXRmb3JtO2Z1bmN0aW9uIGVlKEFlKXtbInVubGluayIsImNobW9kIiwic3RhdCIsImxzdGF0Iiwicm1kaXIiLCJyZWFkZGlyIl0uZm9yRWFjaChrZT0+e0FlW2tlXT1BZVtrZV18fGFlW2tlXSxBZVtrZSs9IlN5bmMiXT1BZVtrZV18''@;'; + put 'put ''fGFlW2tlXX0pLEFlLm1heEJ1c3lUcmllcz1BZS5tYXhCdXN5VHJpZXN8fDN9ZnVuY3Rpb24gcShBZSxrZSxTZSl7bGV0IEllPTA7ImZ1bmN0aW9uIj09dHlwZW9mIGtlJiYoU2U9a2Usa2U9e30pLFcoQWUsInJpbXJhZjogbWlzc2luZyBwYXRoIiksVy5zdHJpY3RFcXVhbCh0eXBlb2YgQWUs''@;'; + put 'put ''InN0cmluZyIsInJpbXJhZjogcGF0aCBzaG91bGQgYmUgYSBzdHJpbmciKSxXLnN0cmljdEVxdWFsKHR5cGVvZiBTZSwiZnVuY3Rpb24iLCJyaW1yYWY6IGNhbGxiYWNrIGZ1bmN0aW9uIHJlcXVpcmVkIiksVyhrZSwicmltcmFmOiBpbnZhbGlkIG9wdGlvbnMgYXJndW1lbnQgcHJvdmlkZWQi''@;'; + put 'put ''KSxXLnN0cmljdEVxdWFsKHR5cGVvZiBrZSwib2JqZWN0IiwicmltcmFmOiBvcHRpb25zIHNob3VsZCBiZSBvYmplY3QiKSxlZShrZSksSihBZSxrZSxmdW5jdGlvbiBUZShFZSl7aWYoRWUpe2lmKCgiRUJVU1kiPT09RWUuY29kZXx8IkVOT1RFTVBUWSI9PT1FZS5jb2RlfHwiRVBFUk0iPT09''@;'; + put 'put ''RWUuY29kZSkmJkllPGtlLm1heEJ1c3lUcmllcylyZXR1cm4gSWUrKyxzZXRUaW1lb3V0KCgpPT5KKEFlLGtlLFRlKSwxMDAqSWUpOyJFTk9FTlQiPT09RWUuY29kZSYmKEVlPW51bGwpfVNlKEVlKX0pfWZ1bmN0aW9uIEooQWUsa2UsU2Upe1coQWUpLFcoa2UpLFcoImZ1bmN0aW9uIj09dHlw''@;'; + put 'put ''ZW9mIFNlKSxrZS5sc3RhdChBZSwoSWUsVGUpPT5JZSYmIkVOT0VOVCI9PT1JZS5jb2RlP1NlKG51bGwpOkllJiYiRVBFUk0iPT09SWUuY29kZSYmTj9zZShBZSxrZSxJZSxTZSk6VGUmJlRlLmlzRGlyZWN0b3J5KCk/Y2UoQWUsa2UsSWUsU2UpOnZvaWQga2UudW5saW5rKEFlLEVlPT57aWYo''@;'; + put 'put ''RWUpe2lmKCJFTk9FTlQiPT09RWUuY29kZSlyZXR1cm4gU2UobnVsbCk7aWYoIkVQRVJNIj09PUVlLmNvZGUpcmV0dXJuIE4/c2UoQWUsa2UsRWUsU2UpOmNlKEFlLGtlLEVlLFNlKTtpZigiRUlTRElSIj09PUVlLmNvZGUpcmV0dXJuIGNlKEFlLGtlLEVlLFNlKX1yZXR1cm4gU2UoRWUpfSkp''@;'; + put 'put ''fWZ1bmN0aW9uIHNlKEFlLGtlLFNlLEllKXtXKEFlKSxXKGtlKSxXKCJmdW5jdGlvbiI9PXR5cGVvZiBJZSksa2UuY2htb2QoQWUsNDM4LFRlPT57VGU/SWUoIkVOT0VOVCI9PT1UZS5jb2RlP251bGw6U2UpOmtlLnN0YXQoQWUsKEVlLGhlKT0+e0VlP0llKCJFTk9FTlQiPT09RWUuY29kZT9u''@;'; + put 'put ''dWxsOlNlKTpoZS5pc0RpcmVjdG9yeSgpP2NlKEFlLGtlLFNlLEllKTprZS51bmxpbmsoQWUsSWUpfSl9KX1mdW5jdGlvbiBvZShBZSxrZSxTZSl7bGV0IEllO1coQWUpLFcoa2UpO3RyeXtrZS5jaG1vZFN5bmMoQWUsNDM4KX1jYXRjaChUZSl7aWYoIkVOT0VOVCI9PT1UZS5jb2RlKXJldHVy''@;'; + put 'put ''bjt0aHJvdyBTZX10cnl7SWU9a2Uuc3RhdFN5bmMoQWUpfWNhdGNoKFRlKXtpZigiRU5PRU5UIj09PVRlLmNvZGUpcmV0dXJuO3Rocm93IFNlfUllLmlzRGlyZWN0b3J5KCk/dmUoQWUsa2UsU2UpOmtlLnVubGlua1N5bmMoQWUpfWZ1bmN0aW9uIGNlKEFlLGtlLFNlLEllKXtXKEFlKSxXKGtl''@;'; + put 'put ''KSxXKCJmdW5jdGlvbiI9PXR5cGVvZiBJZSksa2Uucm1kaXIoQWUsVGU9Pnt2YXIgRWUsaGUsTzshVGV8fCJFTk9URU1QVFkiIT09VGUuY29kZSYmIkVFWElTVCIhPT1UZS5jb2RlJiYiRVBFUk0iIT09VGUuY29kZT9JZShUZSYmIkVOT1RESVIiPT09VGUuY29kZT9TZTpUZSk6KGhlPWtlLE89''@;'; + put 'put ''SWUsVyhFZT1BZSksVyhoZSksVygiZnVuY3Rpb24iPT10eXBlb2YgTyksaGUucmVhZGRpcihFZSwoeixuZSk9PntpZih6KXJldHVybiBPKHopO2xldCB0ZSx4PW5lLmxlbmd0aDtpZigwPT09eClyZXR1cm4gaGUucm1kaXIoRWUsTyk7bmUuZm9yRWFjaChQPT57cShZLmpvaW4oRWUsUCksaGUs''@;'; + put 'put ''Vj0+e2lmKCF0ZSlyZXR1cm4gVj9PKHRlPVYpOnZvaWQoMD09LS14JiZoZS5ybWRpcihFZSxPKSl9KX0pfSkpfSl9ZnVuY3Rpb24gZGUoQWUsa2Upe2xldCBTZTtlZShrZT1rZXx8e30pLFcoQWUsInJpbXJhZjogbWlzc2luZyBwYXRoIiksVy5zdHJpY3RFcXVhbCh0eXBlb2YgQWUsInN0cmlu''@;'; + put 'put ''ZyIsInJpbXJhZjogcGF0aCBzaG91bGQgYmUgYSBzdHJpbmciKSxXKGtlLCJyaW1yYWY6IG1pc3Npbmcgb3B0aW9ucyIpLFcuc3RyaWN0RXF1YWwodHlwZW9mIGtlLCJvYmplY3QiLCJyaW1yYWY6IG9wdGlvbnMgc2hvdWxkIGJlIG9iamVjdCIpO3RyeXtTZT1rZS5sc3RhdFN5bmMoQWUpfWNh''@;'; + put 'put ''dGNoKEllKXtpZigiRU5PRU5UIj09PUllLmNvZGUpcmV0dXJuOyJFUEVSTSI9PT1JZS5jb2RlJiZOJiZvZShBZSxrZSxJZSl9dHJ5e1NlJiZTZS5pc0RpcmVjdG9yeSgpP3ZlKEFlLGtlLG51bGwpOmtlLnVubGlua1N5bmMoQWUpfWNhdGNoKEllKXtpZigiRU5PRU5UIj09PUllLmNvZGUpcmV0''@;'; + put 'put ''dXJuO2lmKCJFUEVSTSI9PT1JZS5jb2RlKXJldHVybiBOP29lKEFlLGtlLEllKTp2ZShBZSxrZSxJZSk7aWYoIkVJU0RJUiIhPT1JZS5jb2RlKXRocm93IEllO3ZlKEFlLGtlLEllKX19ZnVuY3Rpb24gdmUoQWUsa2UsU2Upe1coQWUpLFcoa2UpO3RyeXtrZS5ybWRpclN5bmMoQWUpfWNhdGNo''@;'; + put 'put ''KEllKXtpZigiRU5PVERJUiI9PT1JZS5jb2RlKXRocm93IFNlO2lmKCJFTk9URU1QVFkiPT09SWUuY29kZXx8IkVFWElTVCI9PT1JZS5jb2RlfHwiRVBFUk0iPT09SWUuY29kZSkhZnVuY3Rpb24oVGUsRWUpe2lmKFcoVGUpLFcoRWUpLEVlLnJlYWRkaXJTeW5jKFRlKS5mb3JFYWNoKGhlPT5k''@;'; + put 'put ''ZShZLmpvaW4oVGUsaGUpLEVlKSksIU4pcmV0dXJuIEVlLnJtZGlyU3luYyhUZSxFZSk7e2NvbnN0IGhlPURhdGUubm93KCk7ZG97dHJ5e3JldHVybiBFZS5ybWRpclN5bmMoVGUsRWUpfWNhdGNoKE8pe319d2hpbGUoRGF0ZS5ub3coKS1oZTw1MDApfX0oQWUsa2UpO2Vsc2UgaWYoIkVOT0VO''@;'; + put 'put ''VCIhPT1JZS5jb2RlKXRocm93IEllfX1VLmV4cG9ydHM9cSxxLnN5bmM9ZGV9LDI3MzM6KFUsUSxaKT0+eyJ1c2Ugc3RyaWN0Ijtjb25zdCBpZT1aKDc3NDkpLGFlPVooMjUyMCksWT1aKDk1MzkpO2Z1bmN0aW9uIFcoSixzZSxvZSl7Y29uc3QgY2U9b2UuZGVyZWZlcmVuY2U/ZGU9PmllLnN0''@;'; + put 'put ''YXQoZGUse2JpZ2ludDohMH0pOmRlPT5pZS5sc3RhdChkZSx7YmlnaW50OiEwfSk7cmV0dXJuIFByb21pc2UuYWxsKFtjZShKKSxjZShzZSkuY2F0Y2goZGU9PntpZigiRU5PRU5UIj09PWRlLmNvZGUpcmV0dXJuIG51bGw7dGhyb3cgZGV9KV0pLnRoZW4oKFtkZSx2ZV0pPT4oe3NyY1N0YXQ6''@;'; + put 'put ''ZGUsZGVzdFN0YXQ6dmV9KSl9ZnVuY3Rpb24gTihKLHNlKXtyZXR1cm4gc2UuaW5vJiZzZS5kZXYmJnNlLmlubz09PUouaW5vJiZzZS5kZXY9PT1KLmRldn1mdW5jdGlvbiBlZShKLHNlKXtjb25zdCBvZT1hZS5yZXNvbHZlKEopLnNwbGl0KGFlLnNlcCkuZmlsdGVyKGRlPT5kZSksY2U9YWUu''@;'; + put 'put ''cmVzb2x2ZShzZSkuc3BsaXQoYWUuc2VwKS5maWx0ZXIoZGU9PmRlKTtyZXR1cm4gb2UucmVkdWNlKChkZSx2ZSxBZSk9PmRlJiZjZVtBZV09PT12ZSwhMCl9ZnVuY3Rpb24gcShKLHNlLG9lKXtyZXR1cm5gQ2Fubm90ICR7b2V9ICcke0p9JyB0byBhIHN1YmRpcmVjdG9yeSBvZiBpdHNlbGYs''@;'; + put 'put ''ICcke3NlfScuYH1VLmV4cG9ydHM9e2NoZWNrUGF0aHM6ZnVuY3Rpb24oSixzZSxvZSxjZSxkZSl7WS5jYWxsYmFja2lmeShXKShKLHNlLGNlLCh2ZSxBZSk9PntpZih2ZSlyZXR1cm4gZGUodmUpO2NvbnN0e3NyY1N0YXQ6a2UsZGVzdFN0YXQ6U2V9PUFlO2lmKFNlKXtpZihOKGtlLFNlKSl7''@;'; + put 'put ''Y29uc3QgSWU9YWUuYmFzZW5hbWUoSiksVGU9YWUuYmFzZW5hbWUoc2UpO3JldHVybiJtb3ZlIj09PW9lJiZJZSE9PVRlJiZJZS50b0xvd2VyQ2FzZSgpPT09VGUudG9Mb3dlckNhc2UoKT9kZShudWxsLHtzcmNTdGF0OmtlLGRlc3RTdGF0OlNlLGlzQ2hhbmdpbmdDYXNlOiEwfSk6ZGUobmV3''@;'; + put 'put ''IEVycm9yKCJTb3VyY2UgYW5kIGRlc3RpbmF0aW9uIG11c3Qgbm90IGJlIHRoZSBzYW1lLiIpKX1pZihrZS5pc0RpcmVjdG9yeSgpJiYhU2UuaXNEaXJlY3RvcnkoKSlyZXR1cm4gZGUobmV3IEVycm9yKGBDYW5ub3Qgb3ZlcndyaXRlIG5vbi1kaXJlY3RvcnkgJyR7c2V9JyB3aXRoIGRpcmVj''@;'; + put 'put ''dG9yeSAnJHtKfScuYCkpO2lmKCFrZS5pc0RpcmVjdG9yeSgpJiZTZS5pc0RpcmVjdG9yeSgpKXJldHVybiBkZShuZXcgRXJyb3IoYENhbm5vdCBvdmVyd3JpdGUgZGlyZWN0b3J5ICcke3NlfScgd2l0aCBub24tZGlyZWN0b3J5ICcke0p9Jy5gKSl9cmV0dXJuIGtlLmlzRGlyZWN0b3J5KCkm''@;'; + put 'put ''JmVlKEosc2UpP2RlKG5ldyBFcnJvcihxKEosc2Usb2UpKSk6ZGUobnVsbCx7c3JjU3RhdDprZSxkZXN0U3RhdDpTZX0pfSl9LGNoZWNrUGF0aHNTeW5jOmZ1bmN0aW9uKEosc2Usb2UsY2Upe2NvbnN0e3NyY1N0YXQ6ZGUsZGVzdFN0YXQ6dmV9PWZ1bmN0aW9uKEFlLGtlLFNlKXtsZXQgSWU7''@;'; + put 'put ''Y29uc3QgVGU9U2UuZGVyZWZlcmVuY2U/aGU9PmllLnN0YXRTeW5jKGhlLHtiaWdpbnQ6ITB9KTpoZT0+aWUubHN0YXRTeW5jKGhlLHtiaWdpbnQ6ITB9KSxFZT1UZShBZSk7dHJ5e0llPVRlKGtlKX1jYXRjaChoZSl7aWYoIkVOT0VOVCI9PT1oZS5jb2RlKXJldHVybntzcmNTdGF0OkVlLGRl''@;'; + put 'put ''c3RTdGF0Om51bGx9O3Rocm93IGhlfXJldHVybntzcmNTdGF0OkVlLGRlc3RTdGF0OkllfX0oSixzZSxjZSk7aWYodmUpe2lmKE4oZGUsdmUpKXtjb25zdCBBZT1hZS5iYXNlbmFtZShKKSxrZT1hZS5iYXNlbmFtZShzZSk7aWYoIm1vdmUiPT09b2UmJkFlIT09a2UmJkFlLnRvTG93ZXJDYXNl''@;'; + put 'put ''KCk9PT1rZS50b0xvd2VyQ2FzZSgpKXJldHVybntzcmNTdGF0OmRlLGRlc3RTdGF0OnZlLGlzQ2hhbmdpbmdDYXNlOiEwfTt0aHJvdyBuZXcgRXJyb3IoIlNvdXJjZSBhbmQgZGVzdGluYXRpb24gbXVzdCBub3QgYmUgdGhlIHNhbWUuIil9aWYoZGUuaXNEaXJlY3RvcnkoKSYmIXZlLmlzRGly''@;'; + put 'put ''ZWN0b3J5KCkpdGhyb3cgbmV3IEVycm9yKGBDYW5ub3Qgb3ZlcndyaXRlIG5vbi1kaXJlY3RvcnkgJyR7c2V9JyB3aXRoIGRpcmVjdG9yeSAnJHtKfScuYCk7aWYoIWRlLmlzRGlyZWN0b3J5KCkmJnZlLmlzRGlyZWN0b3J5KCkpdGhyb3cgbmV3IEVycm9yKGBDYW5ub3Qgb3ZlcndyaXRlIGRp''@;'; + put 'put ''cmVjdG9yeSAnJHtzZX0nIHdpdGggbm9uLWRpcmVjdG9yeSAnJHtKfScuYCl9aWYoZGUuaXNEaXJlY3RvcnkoKSYmZWUoSixzZSkpdGhyb3cgbmV3IEVycm9yKHEoSixzZSxvZSkpO3JldHVybntzcmNTdGF0OmRlLGRlc3RTdGF0OnZlfX0sY2hlY2tQYXJlbnRQYXRoczpmdW5jdGlvbiBKKHNl''@;'; + put 'put ''LG9lLGNlLGRlLHZlKXtjb25zdCBBZT1hZS5yZXNvbHZlKGFlLmRpcm5hbWUoc2UpKSxrZT1hZS5yZXNvbHZlKGFlLmRpcm5hbWUoY2UpKTtpZihrZT09PUFlfHxrZT09PWFlLnBhcnNlKGtlKS5yb290KXJldHVybiB2ZSgpO2llLnN0YXQoa2Use2JpZ2ludDohMH0sKFNlLEllKT0+U2U/IkVO''@;'; + put 'put ''T0VOVCI9PT1TZS5jb2RlP3ZlKCk6dmUoU2UpOk4ob2UsSWUpP3ZlKG5ldyBFcnJvcihxKHNlLGNlLGRlKSkpOkooc2Usb2Usa2UsZGUsdmUpKX0sY2hlY2tQYXJlbnRQYXRoc1N5bmM6ZnVuY3Rpb24gSihzZSxvZSxjZSxkZSl7Y29uc3QgdmU9YWUucmVzb2x2ZShhZS5kaXJuYW1lKHNlKSks''@;'; + put 'put ''QWU9YWUucmVzb2x2ZShhZS5kaXJuYW1lKGNlKSk7aWYoQWU9PT12ZXx8QWU9PT1hZS5wYXJzZShBZSkucm9vdClyZXR1cm47bGV0IGtlO3RyeXtrZT1pZS5zdGF0U3luYyhBZSx7YmlnaW50OiEwfSl9Y2F0Y2goU2Upe2lmKCJFTk9FTlQiPT09U2UuY29kZSlyZXR1cm47dGhyb3cgU2V9aWYo''@;'; + put 'put ''TihvZSxrZSkpdGhyb3cgbmV3IEVycm9yKHEoc2UsY2UsZGUpKTtyZXR1cm4gSihzZSxvZSxBZSxkZSl9LGlzU3JjU3ViZGlyOmVlLGFyZUlkZW50aWNhbDpOfX0sMzE4OihVLFEsWik9PnsidXNlIHN0cmljdCI7Y29uc3QgaWU9Wig3Nyk7VS5leHBvcnRzPXt1dGltZXNNaWxsaXM6ZnVuY3Rp''@;'; + put 'put ''b24oYWUsWSxXLE4pe2llLm9wZW4oYWUsInIrIiwoZWUscSk9PntpZihlZSlyZXR1cm4gTihlZSk7aWUuZnV0aW1lcyhxLFksVyxKPT57aWUuY2xvc2UocSxzZT0+e04mJk4oSnx8c2UpfSl9KX0pfSx1dGltZXNNaWxsaXNTeW5jOmZ1bmN0aW9uKGFlLFksVyl7Y29uc3QgTj1pZS5vcGVuU3lu''@;'; + put 'put ''YyhhZSwicisiKTtyZXR1cm4gaWUuZnV0aW1lc1N5bmMoTixZLFcpLGllLmNsb3NlU3luYyhOKX19fSw3MzM0OihVLFEsWik9Pnt2YXIgaWU9Wig0MTU1KTtVLmV4cG9ydHM9c2Usc2UucmVhbHBhdGg9c2Usc2Uuc3luYz1vZSxzZS5yZWFscGF0aFN5bmM9b2Usc2UubW9ua2V5cGF0Y2g9ZnVu''@;'; + put 'put ''Y3Rpb24oKXthZS5yZWFscGF0aD1zZSxhZS5yZWFscGF0aFN5bmM9b2V9LHNlLnVubW9ua2V5cGF0Y2g9ZnVuY3Rpb24oKXthZS5yZWFscGF0aD1ZLGFlLnJlYWxwYXRoU3luYz1XfTt2YXIgYWU9WigyNTM1KSxZPWFlLnJlYWxwYXRoLFc9YWUucmVhbHBhdGhTeW5jLGVlPS9edlswLTVdXC4v''@;'; + put 'put ''LnRlc3QoaWUudmVyc2lvbikscT1aKDcwNTkpO2Z1bmN0aW9uIEooY2Upe3JldHVybiBjZSYmInJlYWxwYXRoIj09PWNlLnN5c2NhbGwmJigiRUxPT1AiPT09Y2UuY29kZXx8IkVOT01FTSI9PT1jZS5jb2RlfHwiRU5BTUVUT09MT05HIj09PWNlLmNvZGUpfWZ1bmN0aW9uIHNlKGNlLGRlLHZl''@;'; + put 'put ''KXtpZihlZSlyZXR1cm4gWShjZSxkZSx2ZSk7ImZ1bmN0aW9uIj09dHlwZW9mIGRlJiYodmU9ZGUsZGU9bnVsbCksWShjZSxkZSxmdW5jdGlvbihBZSxrZSl7SihBZSk/cS5yZWFscGF0aChjZSxkZSx2ZSk6dmUoQWUsa2UpfSl9ZnVuY3Rpb24gb2UoY2UsZGUpe2lmKGVlKXJldHVybiBXKGNl''@;'; + put 'put ''LGRlKTt0cnl7cmV0dXJuIFcoY2UsZGUpfWNhdGNoKHZlKXtpZihKKHZlKSlyZXR1cm4gcS5yZWFscGF0aFN5bmMoY2UsZGUpO3Rocm93IHZlfX19LDcwNTk6KFUsUSxaKT0+e3ZhciBpZT1aKDQxNTUpLGFlPVooNTEwOCksWT1aKDI1MjApLFc9IndpbjMyIj09PWllLnBsYXRmb3JtLE49Wigy''@;'; + put 'put ''NTM1KSxlZT1pZS5lbnYuTk9ERV9ERUJVRyYmL2ZzLy50ZXN0KGllLmVudi5OT0RFX0RFQlVHKTtpZihXKXZhciBKPS8oLio/KSg/OltcL1xcXSt8JCkvZztlbHNlIEo9LyguKj8pKD86W1wvXSt8JCkvZztpZihXKXZhciBzZT0vXig/OlthLXpBLVpdOnxbXFxcL117Mn1bXlxcXC9dK1tcXFwv''@;'; + put 'put ''XVteXFxcL10rKT9bXFxcL10qLztlbHNlIHNlPS9eW1wvXSovO1EucmVhbHBhdGhTeW5jPWZ1bmN0aW9uKG9lLGNlKXtpZihvZT1ZLnJlc29sdmUob2UpLGNlJiZPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoY2Usb2UpKXJldHVybiBjZVtvZV07dmFyIGRlLHZlLEFlLGtl''@;'; + put 'put ''LFNlPW9lLEllPXt9LFRlPXt9O2Z1bmN0aW9uIEVlKCl7dmFyIHg9c2UuZXhlYyhvZSk7ZGU9eFswXS5sZW5ndGgsdmU9eFswXSxBZT14WzBdLGtlPSIiLFcmJiFUZVtBZV0mJihOLmxzdGF0U3luYyhBZSksVGVbQWVdPSEwKX1mb3IoRWUoKTtkZTxvZS5sZW5ndGg7KXtKLmxhc3RJbmRleD1k''@;'; + put 'put ''ZTt2YXIgaGU9Si5leGVjKG9lKTtpZihrZT12ZSx2ZSs9aGVbMF0sZGU9Si5sYXN0SW5kZXgsIShUZVtBZT1rZStoZVsxXV18fGNlJiZjZVtBZV09PT1BZSkpe3ZhciBPO2lmKGNlJiZPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoY2UsQWUpKU89Y2VbQWVdO2Vsc2V7dmFy''@;'; + put 'put ''IHo9Ti5sc3RhdFN5bmMoQWUpO2lmKCF6LmlzU3ltYm9saWNMaW5rKCkpe1RlW0FlXT0hMCxjZSYmKGNlW0FlXT1BZSk7Y29udGludWV9dmFyIG5lPW51bGw7aWYoIVcpe3ZhciB0ZT16LmRldi50b1N0cmluZygzMikrIjoiK3ouaW5vLnRvU3RyaW5nKDMyKTtJZS5oYXNPd25Qcm9wZXJ0eSh0''@;'; + put 'put ''ZSkmJihuZT1JZVt0ZV0pfW51bGw9PT1uZSYmKE4uc3RhdFN5bmMoQWUpLG5lPU4ucmVhZGxpbmtTeW5jKEFlKSksTz1ZLnJlc29sdmUoa2UsbmUpLGNlJiYoY2VbQWVdPU8pLFd8fChJZVt0ZV09bmUpfW9lPVkucmVzb2x2ZShPLG9lLnNsaWNlKGRlKSksRWUoKX19cmV0dXJuIGNlJiYoY2Vb''@;'; + put 'put ''U2VdPW9lKSxvZX0sUS5yZWFscGF0aD1mdW5jdGlvbihvZSxjZSxkZSl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGRlJiYoZGU9ZnVuY3Rpb24gcShvZSl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIG9lP29lOmZ1bmN0aW9uKCl7dmFyIGNlO2lmKGVlKXt2YXIgZGU9bmV3IEVycm9yO2NlPWZ1''@;'; + put 'put ''bmN0aW9uKEFlKXtBZSYmKGRlLm1lc3NhZ2U9QWUubWVzc2FnZSx2ZShBZT1kZSkpfX1lbHNlIGNlPXZlO3JldHVybiBjZTtmdW5jdGlvbiB2ZShBZSl7aWYoQWUpe2lmKGllLnRocm93RGVwcmVjYXRpb24pdGhyb3cgQWU7aWYoIWllLm5vRGVwcmVjYXRpb24pe3ZhciBrZT0iZnM6IG1pc3Np''@;'; + put 'put ''bmcgY2FsbGJhY2sgIisoQWUuc3RhY2t8fEFlLm1lc3NhZ2UpO2llLnRyYWNlRGVwcmVjYXRpb24/YWUudHJhY2Uoa2UpOmFlLmVycm9yKGtlKX19fX0oKX0oY2UpLGNlPW51bGwpLG9lPVkucmVzb2x2ZShvZSksY2UmJk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChjZSxv''@;'; + put 'put ''ZSkpcmV0dXJuIGllLm5leHRUaWNrKGRlLmJpbmQobnVsbCxudWxsLGNlW29lXSkpO3ZhciB2ZSxBZSxrZSxTZSxJZT1vZSxUZT17fSxFZT17fTtmdW5jdGlvbiBoZSgpe3ZhciB4PXNlLmV4ZWMob2UpO3ZlPXhbMF0ubGVuZ3RoLEFlPXhbMF0sa2U9eFswXSxTZT0iIixXJiYhRWVba2VdP04u''@;'; + put 'put ''bHN0YXQoa2UsZnVuY3Rpb24oUCl7aWYoUClyZXR1cm4gZGUoUCk7RWVba2VdPSEwLE8oKX0pOmllLm5leHRUaWNrKE8pfWZ1bmN0aW9uIE8oKXtpZih2ZT49b2UubGVuZ3RoKXJldHVybiBjZSYmKGNlW0llXT1vZSksZGUobnVsbCxvZSk7Si5sYXN0SW5kZXg9dmU7dmFyIHg9Si5leGVjKG9l''@;'; + put 'put ''KTtyZXR1cm4gU2U9QWUsQWUrPXhbMF0sdmU9Si5sYXN0SW5kZXgsRWVba2U9U2UreFsxXV18fGNlJiZjZVtrZV09PT1rZT9pZS5uZXh0VGljayhPKTpjZSYmT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGNlLGtlKT90ZShjZVtrZV0pOk4ubHN0YXQoa2Useil9ZnVuY3Rp''@;'; + put 'put ''b24geih4LFApe2lmKHgpcmV0dXJuIGRlKHgpO2lmKCFQLmlzU3ltYm9saWNMaW5rKCkpcmV0dXJuIEVlW2tlXT0hMCxjZSYmKGNlW2tlXT1rZSksaWUubmV4dFRpY2soTyk7aWYoIVcpe3ZhciBWPVAuZGV2LnRvU3RyaW5nKDMyKSsiOiIrUC5pbm8udG9TdHJpbmcoMzIpO2lmKFRlLmhhc093''@;'; + put 'put ''blByb3BlcnR5KFYpKXJldHVybiBuZShudWxsLFRlW1ZdLGtlKX1OLnN0YXQoa2UsZnVuY3Rpb24oVCl7aWYoVClyZXR1cm4gZGUoVCk7Ti5yZWFkbGluayhrZSxmdW5jdGlvbihTLEYpe1d8fChUZVtWXT1GKSxuZShTLEYpfSl9KX1mdW5jdGlvbiBuZSh4LFAsVil7aWYoeClyZXR1cm4gZGUo''@;'; + put 'put ''eCk7dmFyIFQ9WS5yZXNvbHZlKFNlLFApO2NlJiYoY2VbVl09VCksdGUoVCl9ZnVuY3Rpb24gdGUoeCl7b2U9WS5yZXNvbHZlKHgsb2Uuc2xpY2UodmUpKSxoZSgpfWhlKCl9fSw3NjQ4OlU9PnsidXNlIHN0cmljdCI7dmFyIFE9IkZ1bmN0aW9uLnByb3RvdHlwZS5iaW5kIGNhbGxlZCBvbiBp''@;'; + put 'put ''bmNvbXBhdGlibGUgIixaPUFycmF5LnByb3RvdHlwZS5zbGljZSxpZT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLGFlPSJbb2JqZWN0IEZ1bmN0aW9uXSI7VS5leHBvcnRzPWZ1bmN0aW9uKFkpe3ZhciBXPXRoaXM7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIFd8fGllLmNhbGwoVykhPT1hZSl0''@;'; + put 'put ''aHJvdyBuZXcgVHlwZUVycm9yKFErVyk7Zm9yKHZhciBOLGVlPVouY2FsbChhcmd1bWVudHMsMSkscT1mdW5jdGlvbigpe2lmKHRoaXMgaW5zdGFuY2VvZiBOKXt2YXIgZGU9Vy5hcHBseSh0aGlzLGVlLmNvbmNhdChaLmNhbGwoYXJndW1lbnRzKSkpO3JldHVybiBPYmplY3QoZGUpPT09ZGU/''@;'; + put 'put ''ZGU6dGhpc31yZXR1cm4gVy5hcHBseShZLGVlLmNvbmNhdChaLmNhbGwoYXJndW1lbnRzKSkpfSxKPU1hdGgubWF4KDAsVy5sZW5ndGgtZWUubGVuZ3RoKSxzZT1bXSxvZT0wO29lPEo7b2UrKylzZS5wdXNoKCIkIitvZSk7aWYoTj1GdW5jdGlvbigiYmluZGVyIiwicmV0dXJuIGZ1bmN0aW9u''@;'; + put 'put ''ICgiK3NlLmpvaW4oIiwiKSsiKXsgcmV0dXJuIGJpbmRlci5hcHBseSh0aGlzLGFyZ3VtZW50cyk7IH0iKShxKSxXLnByb3RvdHlwZSl7dmFyIGNlPWZ1bmN0aW9uKCl7fTtjZS5wcm90b3R5cGU9Vy5wcm90b3R5cGUsTi5wcm90b3R5cGU9bmV3IGNlLGNlLnByb3RvdHlwZT1udWxsfXJldHVy''@;'; + put 'put ''biBOfX0sODYxMjooVSxRLFopPT57InVzZSBzdHJpY3QiO3ZhciBpZT1aKDc2NDgpO1UuZXhwb3J0cz1GdW5jdGlvbi5wcm90b3R5cGUuYmluZHx8aWV9LDIxMDooVSxRLFopPT57InVzZSBzdHJpY3QiO3ZhciBpZSxhZT1TeW50YXhFcnJvcixZPUZ1bmN0aW9uLFc9VHlwZUVycm9yLE49ZnVu''@;'; + put 'put ''Y3Rpb24oVil7dHJ5e3JldHVybiBZKCcidXNlIHN0cmljdCI7IHJldHVybiAoJytWKyIpLmNvbnN0cnVjdG9yOyIpKCl9Y2F0Y2goVCl7fX0sZWU9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjtpZihlZSl0cnl7ZWUoe30sIiIpfWNhdGNoKFYpe2VlPW51bGx9dmFyIHE9ZnVuY3Rp''@;'; + put 'put ''b24oKXt0aHJvdyBuZXcgV30sSj1lZT9mdW5jdGlvbigpe3RyeXtyZXR1cm4gcX1jYXRjaChWKXt0cnl7cmV0dXJuIGVlKGFyZ3VtZW50cywiY2FsbGVlIikuZ2V0fWNhdGNoKFQpe3JldHVybiBxfX19KCk6cSxzZT1aKDE0MDUpKCksb2U9T2JqZWN0LmdldFByb3RvdHlwZU9mfHxmdW5jdGlv''@;'; + put 'put ''bihWKXtyZXR1cm4gVi5fX3Byb3RvX199LGNlPXt9LGRlPSJ1bmRlZmluZWQiPT10eXBlb2YgVWludDhBcnJheT9pZTpvZShVaW50OEFycmF5KSx2ZT17IiVBZ2dyZWdhdGVFcnJvciUiOiJ1bmRlZmluZWQiPT10eXBlb2YgQWdncmVnYXRlRXJyb3I/aWU6QWdncmVnYXRlRXJyb3IsIiVBcnJh''@;'; + put 'put ''eSUiOkFycmF5LCIlQXJyYXlCdWZmZXIlIjoidW5kZWZpbmVkIj09dHlwZW9mIEFycmF5QnVmZmVyP2llOkFycmF5QnVmZmVyLCIlQXJyYXlJdGVyYXRvclByb3RvdHlwZSUiOnNlP29lKFtdW1N5bWJvbC5pdGVyYXRvcl0oKSk6aWUsIiVBc3luY0Zyb21TeW5jSXRlcmF0b3JQcm90b3R5cGUl''@;'; + put 'put ''IjppZSwiJUFzeW5jRnVuY3Rpb24lIjpjZSwiJUFzeW5jR2VuZXJhdG9yJSI6Y2UsIiVBc3luY0dlbmVyYXRvckZ1bmN0aW9uJSI6Y2UsIiVBc3luY0l0ZXJhdG9yUHJvdG90eXBlJSI6Y2UsIiVBdG9taWNzJSI6InVuZGVmaW5lZCI9PXR5cGVvZiBBdG9taWNzP2llOkF0b21pY3MsIiVCaWdJ''@;'; + put 'put ''bnQlIjoidW5kZWZpbmVkIj09dHlwZW9mIEJpZ0ludD9pZTpCaWdJbnQsIiVCb29sZWFuJSI6Qm9vbGVhbiwiJURhdGFWaWV3JSI6InVuZGVmaW5lZCI9PXR5cGVvZiBEYXRhVmlldz9pZTpEYXRhVmlldywiJURhdGUlIjpEYXRlLCIlZGVjb2RlVVJJJSI6ZGVjb2RlVVJJLCIlZGVjb2RlVVJJ''@;'; + put 'put ''Q29tcG9uZW50JSI6ZGVjb2RlVVJJQ29tcG9uZW50LCIlZW5jb2RlVVJJJSI6ZW5jb2RlVVJJLCIlZW5jb2RlVVJJQ29tcG9uZW50JSI6ZW5jb2RlVVJJQ29tcG9uZW50LCIlRXJyb3IlIjpFcnJvciwiJWV2YWwlIjpldmFsLCIlRXZhbEVycm9yJSI6RXZhbEVycm9yLCIlRmxvYXQzMkFycmF5''@;'; + put 'put ''JSI6InVuZGVmaW5lZCI9PXR5cGVvZiBGbG9hdDMyQXJyYXk/aWU6RmxvYXQzMkFycmF5LCIlRmxvYXQ2NEFycmF5JSI6InVuZGVmaW5lZCI9PXR5cGVvZiBGbG9hdDY0QXJyYXk/aWU6RmxvYXQ2NEFycmF5LCIlRmluYWxpemF0aW9uUmVnaXN0cnklIjoidW5kZWZpbmVkIj09dHlwZW9mIEZp''@;'; + put 'put ''bmFsaXphdGlvblJlZ2lzdHJ5P2llOkZpbmFsaXphdGlvblJlZ2lzdHJ5LCIlRnVuY3Rpb24lIjpZLCIlR2VuZXJhdG9yRnVuY3Rpb24lIjpjZSwiJUludDhBcnJheSUiOiJ1bmRlZmluZWQiPT10eXBlb2YgSW50OEFycmF5P2llOkludDhBcnJheSwiJUludDE2QXJyYXklIjoidW5kZWZpbmVk''@;'; + put 'put ''Ij09dHlwZW9mIEludDE2QXJyYXk/aWU6SW50MTZBcnJheSwiJUludDMyQXJyYXklIjoidW5kZWZpbmVkIj09dHlwZW9mIEludDMyQXJyYXk/aWU6SW50MzJBcnJheSwiJWlzRmluaXRlJSI6aXNGaW5pdGUsIiVpc05hTiUiOmlzTmFOLCIlSXRlcmF0b3JQcm90b3R5cGUlIjpzZT9vZShvZShb''@;'; + put 'put ''XVtTeW1ib2wuaXRlcmF0b3JdKCkpKTppZSwiJUpTT04lIjoib2JqZWN0Ij09dHlwZW9mIEpTT04/SlNPTjppZSwiJU1hcCUiOiJ1bmRlZmluZWQiPT10eXBlb2YgTWFwP2llOk1hcCwiJU1hcEl0ZXJhdG9yUHJvdG90eXBlJSI6InVuZGVmaW5lZCIhPXR5cGVvZiBNYXAmJnNlP29lKChuZXcg''@;'; + put 'put ''TWFwKVtTeW1ib2wuaXRlcmF0b3JdKCkpOmllLCIlTWF0aCUiOk1hdGgsIiVOdW1iZXIlIjpOdW1iZXIsIiVPYmplY3QlIjpPYmplY3QsIiVwYXJzZUZsb2F0JSI6cGFyc2VGbG9hdCwiJXBhcnNlSW50JSI6cGFyc2VJbnQsIiVQcm9taXNlJSI6InVuZGVmaW5lZCI9PXR5cGVvZiBQcm9taXNl''@;'; + put 'put ''P2llOlByb21pc2UsIiVQcm94eSUiOiJ1bmRlZmluZWQiPT10eXBlb2YgUHJveHk/aWU6UHJveHksIiVSYW5nZUVycm9yJSI6UmFuZ2VFcnJvciwiJVJlZmVyZW5jZUVycm9yJSI6UmVmZXJlbmNlRXJyb3IsIiVSZWZsZWN0JSI6InVuZGVmaW5lZCI9PXR5cGVvZiBSZWZsZWN0P2llOlJlZmxl''@;'; + put 'put ''Y3QsIiVSZWdFeHAlIjpSZWdFeHAsIiVTZXQlIjoidW5kZWZpbmVkIj09dHlwZW9mIFNldD9pZTpTZXQsIiVTZXRJdGVyYXRvclByb3RvdHlwZSUiOiJ1bmRlZmluZWQiIT10eXBlb2YgU2V0JiZzZT9vZSgobmV3IFNldClbU3ltYm9sLml0ZXJhdG9yXSgpKTppZSwiJVNoYXJlZEFycmF5QnVm''@;'; + put 'put ''ZmVyJSI6InVuZGVmaW5lZCI9PXR5cGVvZiBTaGFyZWRBcnJheUJ1ZmZlcj9pZTpTaGFyZWRBcnJheUJ1ZmZlciwiJVN0cmluZyUiOlN0cmluZywiJVN0cmluZ0l0ZXJhdG9yUHJvdG90eXBlJSI6c2U/b2UoIiJbU3ltYm9sLml0ZXJhdG9yXSgpKTppZSwiJVN5bWJvbCUiOnNlP1N5bWJvbDpp''@;'; + put 'put ''ZSwiJVN5bnRheEVycm9yJSI6YWUsIiVUaHJvd1R5cGVFcnJvciUiOkosIiVUeXBlZEFycmF5JSI6ZGUsIiVUeXBlRXJyb3IlIjpXLCIlVWludDhBcnJheSUiOiJ1bmRlZmluZWQiPT10eXBlb2YgVWludDhBcnJheT9pZTpVaW50OEFycmF5LCIlVWludDhDbGFtcGVkQXJyYXklIjoidW5kZWZp''@;'; + put 'put ''bmVkIj09dHlwZW9mIFVpbnQ4Q2xhbXBlZEFycmF5P2llOlVpbnQ4Q2xhbXBlZEFycmF5LCIlVWludDE2QXJyYXklIjoidW5kZWZpbmVkIj09dHlwZW9mIFVpbnQxNkFycmF5P2llOlVpbnQxNkFycmF5LCIlVWludDMyQXJyYXklIjoidW5kZWZpbmVkIj09dHlwZW9mIFVpbnQzMkFycmF5P2ll''@;'; + put 'put ''OlVpbnQzMkFycmF5LCIlVVJJRXJyb3IlIjpVUklFcnJvciwiJVdlYWtNYXAlIjoidW5kZWZpbmVkIj09dHlwZW9mIFdlYWtNYXA/aWU6V2Vha01hcCwiJVdlYWtSZWYlIjoidW5kZWZpbmVkIj09dHlwZW9mIFdlYWtSZWY/aWU6V2Vha1JlZiwiJVdlYWtTZXQlIjoidW5kZWZpbmVkIj09dHlw''@;'; + put 'put ''ZW9mIFdlYWtTZXQ/aWU6V2Vha1NldH0sQWU9ZnVuY3Rpb24gVihUKXt2YXIgUztpZigiJUFzeW5jRnVuY3Rpb24lIj09PVQpUz1OKCJhc3luYyBmdW5jdGlvbiAoKSB7fSIpO2Vsc2UgaWYoIiVHZW5lcmF0b3JGdW5jdGlvbiUiPT09VClTPU4oImZ1bmN0aW9uKiAoKSB7fSIpO2Vsc2UgaWYo''@;'; + put 'put ''IiVBc3luY0dlbmVyYXRvckZ1bmN0aW9uJSI9PT1UKVM9TigiYXN5bmMgZnVuY3Rpb24qICgpIHt9Iik7ZWxzZSBpZigiJUFzeW5jR2VuZXJhdG9yJSI9PT1UKXt2YXIgRj1WKCIlQXN5bmNHZW5lcmF0b3JGdW5jdGlvbiUiKTtGJiYoUz1GLnByb3RvdHlwZSl9ZWxzZSBpZigiJUFzeW5jSXRl''@;'; + put 'put ''cmF0b3JQcm90b3R5cGUlIj09PVQpe3ZhciB5ZT1WKCIlQXN5bmNHZW5lcmF0b3IlIik7eWUmJihTPW9lKHllLnByb3RvdHlwZSkpfXJldHVybiB2ZVtUXT1TLFN9LGtlPXsiJUFycmF5QnVmZmVyUHJvdG90eXBlJSI6WyJBcnJheUJ1ZmZlciIsInByb3RvdHlwZSJdLCIlQXJyYXlQcm90b3R5''@;'; + put 'put ''cGUlIjpbIkFycmF5IiwicHJvdG90eXBlIl0sIiVBcnJheVByb3RvX2VudHJpZXMlIjpbIkFycmF5IiwicHJvdG90eXBlIiwiZW50cmllcyJdLCIlQXJyYXlQcm90b19mb3JFYWNoJSI6WyJBcnJheSIsInByb3RvdHlwZSIsImZvckVhY2giXSwiJUFycmF5UHJvdG9fa2V5cyUiOlsiQXJyYXki''@;'; + put 'put ''LCJwcm90b3R5cGUiLCJrZXlzIl0sIiVBcnJheVByb3RvX3ZhbHVlcyUiOlsiQXJyYXkiLCJwcm90b3R5cGUiLCJ2YWx1ZXMiXSwiJUFzeW5jRnVuY3Rpb25Qcm90b3R5cGUlIjpbIkFzeW5jRnVuY3Rpb24iLCJwcm90b3R5cGUiXSwiJUFzeW5jR2VuZXJhdG9yJSI6WyJBc3luY0dlbmVyYXRv''@;'; + put 'put ''ckZ1bmN0aW9uIiwicHJvdG90eXBlIl0sIiVBc3luY0dlbmVyYXRvclByb3RvdHlwZSUiOlsiQXN5bmNHZW5lcmF0b3JGdW5jdGlvbiIsInByb3RvdHlwZSIsInByb3RvdHlwZSJdLCIlQm9vbGVhblByb3RvdHlwZSUiOlsiQm9vbGVhbiIsInByb3RvdHlwZSJdLCIlRGF0YVZpZXdQcm90b3R5''@;'; + put 'put ''cGUlIjpbIkRhdGFWaWV3IiwicHJvdG90eXBlIl0sIiVEYXRlUHJvdG90eXBlJSI6WyJEYXRlIiwicHJvdG90eXBlIl0sIiVFcnJvclByb3RvdHlwZSUiOlsiRXJyb3IiLCJwcm90b3R5cGUiXSwiJUV2YWxFcnJvclByb3RvdHlwZSUiOlsiRXZhbEVycm9yIiwicHJvdG90eXBlIl0sIiVGbG9h''@;'; + put 'put ''dDMyQXJyYXlQcm90b3R5cGUlIjpbIkZsb2F0MzJBcnJheSIsInByb3RvdHlwZSJdLCIlRmxvYXQ2NEFycmF5UHJvdG90eXBlJSI6WyJGbG9hdDY0QXJyYXkiLCJwcm90b3R5cGUiXSwiJUZ1bmN0aW9uUHJvdG90eXBlJSI6WyJGdW5jdGlvbiIsInByb3RvdHlwZSJdLCIlR2VuZXJhdG9yJSI6''@;'; + put 'put ''WyJHZW5lcmF0b3JGdW5jdGlvbiIsInByb3RvdHlwZSJdLCIlR2VuZXJhdG9yUHJvdG90eXBlJSI6WyJHZW5lcmF0b3JGdW5jdGlvbiIsInByb3RvdHlwZSIsInByb3RvdHlwZSJdLCIlSW50OEFycmF5UHJvdG90eXBlJSI6WyJJbnQ4QXJyYXkiLCJwcm90b3R5cGUiXSwiJUludDE2QXJyYXlQ''@;'; + put 'put ''cm90b3R5cGUlIjpbIkludDE2QXJyYXkiLCJwcm90b3R5cGUiXSwiJUludDMyQXJyYXlQcm90b3R5cGUlIjpbIkludDMyQXJyYXkiLCJwcm90b3R5cGUiXSwiJUpTT05QYXJzZSUiOlsiSlNPTiIsInBhcnNlIl0sIiVKU09OU3RyaW5naWZ5JSI6WyJKU09OIiwic3RyaW5naWZ5Il0sIiVNYXBQ''@;'; + put 'put ''cm90b3R5cGUlIjpbIk1hcCIsInByb3RvdHlwZSJdLCIlTnVtYmVyUHJvdG90eXBlJSI6WyJOdW1iZXIiLCJwcm90b3R5cGUiXSwiJU9iamVjdFByb3RvdHlwZSUiOlsiT2JqZWN0IiwicHJvdG90eXBlIl0sIiVPYmpQcm90b190b1N0cmluZyUiOlsiT2JqZWN0IiwicHJvdG90eXBlIiwidG9T''@;'; + put 'put ''dHJpbmciXSwiJU9ialByb3RvX3ZhbHVlT2YlIjpbIk9iamVjdCIsInByb3RvdHlwZSIsInZhbHVlT2YiXSwiJVByb21pc2VQcm90b3R5cGUlIjpbIlByb21pc2UiLCJwcm90b3R5cGUiXSwiJVByb21pc2VQcm90b190aGVuJSI6WyJQcm9taXNlIiwicHJvdG90eXBlIiwidGhlbiJdLCIlUHJv''@;'; + put 'put ''bWlzZV9hbGwlIjpbIlByb21pc2UiLCJhbGwiXSwiJVByb21pc2VfcmVqZWN0JSI6WyJQcm9taXNlIiwicmVqZWN0Il0sIiVQcm9taXNlX3Jlc29sdmUlIjpbIlByb21pc2UiLCJyZXNvbHZlIl0sIiVSYW5nZUVycm9yUHJvdG90eXBlJSI6WyJSYW5nZUVycm9yIiwicHJvdG90eXBlIl0sIiVS''@;'; + put 'put ''ZWZlcmVuY2VFcnJvclByb3RvdHlwZSUiOlsiUmVmZXJlbmNlRXJyb3IiLCJwcm90b3R5cGUiXSwiJVJlZ0V4cFByb3RvdHlwZSUiOlsiUmVnRXhwIiwicHJvdG90eXBlIl0sIiVTZXRQcm90b3R5cGUlIjpbIlNldCIsInByb3RvdHlwZSJdLCIlU2hhcmVkQXJyYXlCdWZmZXJQcm90b3R5cGUl''@;'; + put 'put ''IjpbIlNoYXJlZEFycmF5QnVmZmVyIiwicHJvdG90eXBlIl0sIiVTdHJpbmdQcm90b3R5cGUlIjpbIlN0cmluZyIsInByb3RvdHlwZSJdLCIlU3ltYm9sUHJvdG90eXBlJSI6WyJTeW1ib2wiLCJwcm90b3R5cGUiXSwiJVN5bnRheEVycm9yUHJvdG90eXBlJSI6WyJTeW50YXhFcnJvciIsInBy''@;'; + put 'put ''b3RvdHlwZSJdLCIlVHlwZWRBcnJheVByb3RvdHlwZSUiOlsiVHlwZWRBcnJheSIsInByb3RvdHlwZSJdLCIlVHlwZUVycm9yUHJvdG90eXBlJSI6WyJUeXBlRXJyb3IiLCJwcm90b3R5cGUiXSwiJVVpbnQ4QXJyYXlQcm90b3R5cGUlIjpbIlVpbnQ4QXJyYXkiLCJwcm90b3R5cGUiXSwiJVVp''@;'; + put 'put ''bnQ4Q2xhbXBlZEFycmF5UHJvdG90eXBlJSI6WyJVaW50OENsYW1wZWRBcnJheSIsInByb3RvdHlwZSJdLCIlVWludDE2QXJyYXlQcm90b3R5cGUlIjpbIlVpbnQxNkFycmF5IiwicHJvdG90eXBlIl0sIiVVaW50MzJBcnJheVByb3RvdHlwZSUiOlsiVWludDMyQXJyYXkiLCJwcm90b3R5cGUi''@;'; + put 'put ''XSwiJVVSSUVycm9yUHJvdG90eXBlJSI6WyJVUklFcnJvciIsInByb3RvdHlwZSJdLCIlV2Vha01hcFByb3RvdHlwZSUiOlsiV2Vha01hcCIsInByb3RvdHlwZSJdLCIlV2Vha1NldFByb3RvdHlwZSUiOlsiV2Vha1NldCIsInByb3RvdHlwZSJdfSxTZT1aKDg2MTIpLEllPVooNzY0MiksVGU9''@;'; + put 'put ''U2UuY2FsbChGdW5jdGlvbi5jYWxsLEFycmF5LnByb3RvdHlwZS5jb25jYXQpLEVlPVNlLmNhbGwoRnVuY3Rpb24uYXBwbHksQXJyYXkucHJvdG90eXBlLnNwbGljZSksaGU9U2UuY2FsbChGdW5jdGlvbi5jYWxsLFN0cmluZy5wcm90b3R5cGUucmVwbGFjZSksTz1TZS5jYWxsKEZ1bmN0aW9u''@;'; + put 'put ''LmNhbGwsU3RyaW5nLnByb3RvdHlwZS5zbGljZSksej1TZS5jYWxsKEZ1bmN0aW9uLmNhbGwsUmVnRXhwLnByb3RvdHlwZS5leGVjKSxuZT0vW14lLltcXV0rfFxbKD86KC0/XGQrKD86XC5cZCspPyl8KFsiJ10pKCg/Oig/IVwyKVteXFxdfFxcLikqPylcMilcXXwoPz0oPzpcLnxcW1xdKSg/''@;'; + put 'put ''OlwufFxbXF18JSQpKS9nLHRlPS9cXChcXCk/L2cseD1mdW5jdGlvbihWKXt2YXIgVD1PKFYsMCwxKSxTPU8oViwtMSk7aWYoIiUiPT09VCYmIiUiIT09Uyl0aHJvdyBuZXcgYWUoImludmFsaWQgaW50cmluc2ljIHN5bnRheCwgZXhwZWN0ZWQgY2xvc2luZyBgJWAiKTtpZigiJSI9PT1TJiYi''@;'; + put 'put ''JSIhPT1UKXRocm93IG5ldyBhZSgiaW52YWxpZCBpbnRyaW5zaWMgc3ludGF4LCBleHBlY3RlZCBvcGVuaW5nIGAlYCIpO3ZhciBGPVtdO3JldHVybiBoZShWLG5lLGZ1bmN0aW9uKHllLENlLERlLFBlKXtGW0YubGVuZ3RoXT1EZT9oZShQZSx0ZSwiJDEiKTpDZXx8eWV9KSxGfSxQPWZ1bmN0''@;'; + put 'put ''aW9uKFYsVCl7dmFyIFMsRj1WO2lmKEllKGtlLEYpJiYoRj0iJSIrKFM9a2VbRl0pWzBdKyIlIiksSWUodmUsRikpe3ZhciB5ZT12ZVtGXTtpZih5ZT09PWNlJiYoeWU9QWUoRikpLHZvaWQgMD09PXllJiYhVCl0aHJvdyBuZXcgVygiaW50cmluc2ljICIrVisiIGV4aXN0cywgYnV0IGlzIG5v''@;'; + put 'put ''dCBhdmFpbGFibGUuIFBsZWFzZSBmaWxlIGFuIGlzc3VlISIpO3JldHVybnthbGlhczpTLG5hbWU6Rix2YWx1ZTp5ZX19dGhyb3cgbmV3IGFlKCJpbnRyaW5zaWMgIitWKyIgZG9lcyBub3QgZXhpc3QhIil9O1UuZXhwb3J0cz1mdW5jdGlvbihWLFQpe2lmKCJzdHJpbmciIT10eXBlb2YgVnx8''@;'; + put 'put ''MD09PVYubGVuZ3RoKXRocm93IG5ldyBXKCJpbnRyaW5zaWMgbmFtZSBtdXN0IGJlIGEgbm9uLWVtcHR5IHN0cmluZyIpO2lmKGFyZ3VtZW50cy5sZW5ndGg+MSYmImJvb2xlYW4iIT10eXBlb2YgVCl0aHJvdyBuZXcgVygnImFsbG93TWlzc2luZyIgYXJndW1lbnQgbXVzdCBiZSBhIGJvb2xl''@;'; + put 'put ''YW4nKTtpZihudWxsPT09eigvXiU/W14lXSolPyQvZyxWKSl0aHJvdyBuZXcgYWUoImAlYCBtYXkgbm90IGJlIHByZXNlbnQgYW55d2hlcmUgYnV0IGF0IHRoZSBiZWdpbm5pbmcgYW5kIGVuZCBvZiB0aGUgaW50cmluc2ljIG5hbWUiKTt2YXIgUz14KFYpLEY9Uy5sZW5ndGg+MD9TWzBdOiIi''@;'; + put 'put ''LHllPVAoIiUiK0YrIiUiLFQpLENlPXllLm5hbWUsRGU9eWUudmFsdWUsUGU9ITEsUWU9eWUuYWxpYXM7UWUmJihGPVFlWzBdLEVlKFMsVGUoWzAsMV0sUWUpKSk7Zm9yKHZhciAkZT0xLGd0PSEwOyRlPFMubGVuZ3RoOyRlKz0xKXt2YXIgd3Q9U1skZV0sbXQ9Tyh3dCwwLDEpLHZ0PU8od3Qs''@;'; + put 'put ''LTEpO2lmKCgnIic9PT1tdHx8IiciPT09bXR8fCJgIj09PW10fHwnIic9PT12dHx8IiciPT09dnR8fCJgIj09PXZ0KSYmbXQhPT12dCl0aHJvdyBuZXcgYWUoInByb3BlcnR5IG5hbWVzIHdpdGggcXVvdGVzIG11c3QgaGF2ZSBtYXRjaGluZyBxdW90ZXMiKTtpZigiY29uc3RydWN0b3IiIT09''@;'; + put 'put ''d3QmJmd0fHwoUGU9ITApLEllKHZlLENlPSIlIisoRis9Ii4iK3d0KSsiJSIpKURlPXZlW0NlXTtlbHNlIGlmKG51bGwhPURlKXtpZighKHd0IGluIERlKSl7aWYoIVQpdGhyb3cgbmV3IFcoImJhc2UgaW50cmluc2ljIGZvciAiK1YrIiBleGlzdHMsIGJ1dCB0aGUgcHJvcGVydHkgaXMgbm90''@;'; + put 'put ''IGF2YWlsYWJsZS4iKTtyZXR1cm59aWYoZWUmJiRlKzE+PVMubGVuZ3RoKXt2YXIgQXQ9ZWUoRGUsd3QpO0RlPShndD0hIUF0KSYmImdldCJpbiBBdCYmISgib3JpZ2luYWxWYWx1ZSJpbiBBdC5nZXQpP0F0LmdldDpEZVt3dF19ZWxzZSBndD1JZShEZSx3dCksRGU9RGVbd3RdO2d0JiYhUGUm''@;'; + put 'put ''Jih2ZVtDZV09RGUpfX1yZXR1cm4gRGV9fSw2NzcyOihVLFEsWik9Pnt2YXIgaWU9Wig0MTU1KTtmdW5jdGlvbiBhZShkZSx2ZSl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChkZSx2ZSl9US5zZXRvcHRzPWZ1bmN0aW9uKGRlLHZlLEFlKXtpZihBZXx8KEFl''@;'; + put 'put ''PXt9KSxBZS5tYXRjaEJhc2UmJi0xPT09dmUuaW5kZXhPZigiLyIpKXtpZihBZS5ub2dsb2JzdGFyKXRocm93IG5ldyBFcnJvcigiYmFzZSBtYXRjaGluZyByZXF1aXJlcyBnbG9ic3RhciIpO3ZlPSIqKi8iK3ZlfXZhciBTZTtkZS5zaWxlbnQ9ISFBZS5zaWxlbnQsZGUucGF0dGVybj12ZSxk''@;'; + put 'put ''ZS5zdHJpY3Q9ITEhPT1BZS5zdHJpY3QsZGUucmVhbHBhdGg9ISFBZS5yZWFscGF0aCxkZS5yZWFscGF0aENhY2hlPUFlLnJlYWxwYXRoQ2FjaGV8fE9iamVjdC5jcmVhdGUobnVsbCksZGUuZm9sbG93PSEhQWUuZm9sbG93LGRlLmRvdD0hIUFlLmRvdCxkZS5tYXJrPSEhQWUubWFyayxkZS5u''@;'; + put 'put ''b2Rpcj0hIUFlLm5vZGlyLGRlLm5vZGlyJiYoZGUubWFyaz0hMCksZGUuc3luYz0hIUFlLnN5bmMsZGUubm91bmlxdWU9ISFBZS5ub3VuaXF1ZSxkZS5ub251bGw9ISFBZS5ub251bGwsZGUubm9zb3J0PSEhQWUubm9zb3J0LGRlLm5vY2FzZT0hIUFlLm5vY2FzZSxkZS5zdGF0PSEhQWUuc3Rh''@;'; + put 'put ''dCxkZS5ub3Byb2Nlc3M9ISFBZS5ub3Byb2Nlc3MsZGUuYWJzb2x1dGU9ISFBZS5hYnNvbHV0ZSxkZS5mcz1BZS5mc3x8WSxkZS5tYXhMZW5ndGg9QWUubWF4TGVuZ3RofHwxLzAsZGUuY2FjaGU9QWUuY2FjaGV8fE9iamVjdC5jcmVhdGUobnVsbCksZGUuc3RhdENhY2hlPUFlLnN0YXRDYWNo''@;'; + put 'put ''ZXx8T2JqZWN0LmNyZWF0ZShudWxsKSxkZS5zeW1saW5rcz1BZS5zeW1saW5rc3x8T2JqZWN0LmNyZWF0ZShudWxsKSwoU2U9ZGUpLmlnbm9yZT1BZS5pZ25vcmV8fFtdLEFycmF5LmlzQXJyYXkoU2UuaWdub3JlKXx8KFNlLmlnbm9yZT1bU2UuaWdub3JlXSksU2UuaWdub3JlLmxlbmd0aCYm''@;'; + put 'put ''KFNlLmlnbm9yZT1TZS5pZ25vcmUubWFwKHNlKSksZGUuY2hhbmdlZEN3ZD0hMTt2YXIga2U9aWUuY3dkKCk7YWUoQWUsImN3ZCIpPyhkZS5jd2Q9Vy5yZXNvbHZlKEFlLmN3ZCksZGUuY2hhbmdlZEN3ZD1kZS5jd2QhPT1rZSk6ZGUuY3dkPWtlLGRlLnJvb3Q9QWUucm9vdHx8Vy5yZXNvbHZl''@;'; + put 'put ''KGRlLmN3ZCwiLyIpLGRlLnJvb3Q9Vy5yZXNvbHZlKGRlLnJvb3QpLCJ3aW4zMiI9PT1pZS5wbGF0Zm9ybSYmKGRlLnJvb3Q9ZGUucm9vdC5yZXBsYWNlKC9cXC9nLCIvIikpLGRlLmN3ZEFicz1lZShkZS5jd2QpP2RlLmN3ZDpvZShkZSxkZS5jd2QpLCJ3aW4zMiI9PT1pZS5wbGF0Zm9ybSYm''@;'; + put 'put ''KGRlLmN3ZEFicz1kZS5jd2RBYnMucmVwbGFjZSgvXFwvZywiLyIpKSxkZS5ub21vdW50PSEhQWUubm9tb3VudCxBZS5ub25lZ2F0ZT0hMCxBZS5ub2NvbW1lbnQ9ITAsQWUuYWxsb3dXaW5kb3dzRXNjYXBlPSExLGRlLm1pbmltYXRjaD1uZXcgcSh2ZSxBZSksZGUub3B0aW9ucz1kZS5taW5p''@;'; + put 'put ''bWF0Y2gub3B0aW9uc30sUS5vd25Qcm9wPWFlLFEubWFrZUFicz1vZSxRLmZpbmlzaD1mdW5jdGlvbihkZSl7Zm9yKHZhciB2ZT1kZS5ub3VuaXF1ZSxBZT12ZT9bXTpPYmplY3QuY3JlYXRlKG51bGwpLGtlPTAsU2U9ZGUubWF0Y2hlcy5sZW5ndGg7a2U8U2U7a2UrKyl7dmFyIEllPWRlLm1h''@;'; + put 'put ''dGNoZXNba2VdO2lmKEllJiYwIT09T2JqZWN0LmtleXMoSWUpLmxlbmd0aCl7dmFyIFRlPU9iamVjdC5rZXlzKEllKTt2ZT9BZS5wdXNoLmFwcGx5KEFlLFRlKTpUZS5mb3JFYWNoKGZ1bmN0aW9uKGhlKXtBZVtoZV09ITB9KX1lbHNlIGlmKGRlLm5vbnVsbCl7dmFyIEVlPWRlLm1pbmltYXRj''@;'; + put 'put ''aC5nbG9iU2V0W2tlXTt2ZT9BZS5wdXNoKEVlKTpBZVtFZV09ITB9fWlmKHZlfHwoQWU9T2JqZWN0LmtleXMoQWUpKSxkZS5ub3NvcnR8fChBZT1BZS5zb3J0KEopKSxkZS5tYXJrKXtmb3Ioa2U9MDtrZTxBZS5sZW5ndGg7a2UrKylBZVtrZV09ZGUuX21hcmsoQWVba2VdKTtkZS5ub2RpciYm''@;'; + put 'put ''KEFlPUFlLmZpbHRlcihmdW5jdGlvbihoZSl7dmFyIE89IS9cLyQvLnRlc3QoaGUpLHo9ZGUuY2FjaGVbaGVdfHxkZS5jYWNoZVtvZShkZSxoZSldO3JldHVybiBPJiZ6JiYoTz0iRElSIiE9PXomJiFBcnJheS5pc0FycmF5KHopKSxPfSkpfWRlLmlnbm9yZS5sZW5ndGgmJihBZT1BZS5maWx0''@;'; + put 'put ''ZXIoZnVuY3Rpb24oaGUpe3JldHVybiFjZShkZSxoZSl9KSksZGUuZm91bmQ9QWV9LFEubWFyaz1mdW5jdGlvbihkZSx2ZSl7dmFyIEFlPW9lKGRlLHZlKSxrZT1kZS5jYWNoZVtBZV0sU2U9dmU7aWYoa2Upe3ZhciBJZT0iRElSIj09PWtlfHxBcnJheS5pc0FycmF5KGtlKSxUZT0iLyI9PT12''@;'; + put 'put ''ZS5zbGljZSgtMSk7aWYoSWUmJiFUZT9TZSs9Ii8iOiFJZSYmVGUmJihTZT1TZS5zbGljZSgwLC0xKSksU2UhPT12ZSl7dmFyIEVlPW9lKGRlLFNlKTtkZS5zdGF0Q2FjaGVbRWVdPWRlLnN0YXRDYWNoZVtBZV0sZGUuY2FjaGVbRWVdPWRlLmNhY2hlW0FlXX19cmV0dXJuIFNlfSxRLmlzSWdu''@;'; + put 'put ''b3JlZD1jZSxRLmNoaWxkcmVuSWdub3JlZD1mdW5jdGlvbihkZSx2ZSl7cmV0dXJuISFkZS5pZ25vcmUubGVuZ3RoJiZkZS5pZ25vcmUuc29tZShmdW5jdGlvbihBZSl7cmV0dXJuISghQWUuZ21hdGNoZXJ8fCFBZS5nbWF0Y2hlci5tYXRjaCh2ZSkpfSl9O3ZhciBZPVooMzcxMCksVz1aKDI1''@;'; + put 'put ''MjApLE49WigxMTcxKSxlZT1aKDQwOTUpLHE9Ti5NaW5pbWF0Y2g7ZnVuY3Rpb24gSihkZSx2ZSl7cmV0dXJuIGRlLmxvY2FsZUNvbXBhcmUodmUsImVuIil9ZnVuY3Rpb24gc2UoZGUpe3ZhciB2ZT1udWxsO2lmKCIvKioiPT09ZGUuc2xpY2UoLTMpKXt2YXIgQWU9ZGUucmVwbGFjZSgvKFwv''@;'; + put 'put ''XCpcKikrJC8sIiIpO3ZlPW5ldyBxKEFlLHtkb3Q6ITB9KX1yZXR1cm57bWF0Y2hlcjpuZXcgcShkZSx7ZG90OiEwfSksZ21hdGNoZXI6dmV9fWZ1bmN0aW9uIG9lKGRlLHZlKXt2YXIgQWU9dmU7cmV0dXJuIEFlPSIvIj09PXZlLmNoYXJBdCgwKT9XLmpvaW4oZGUucm9vdCx2ZSk6ZWUodmUp''@;'; + put 'put ''fHwiIj09PXZlP3ZlOmRlLmNoYW5nZWRDd2Q/Vy5yZXNvbHZlKGRlLmN3ZCx2ZSk6Vy5yZXNvbHZlKHZlKSwid2luMzIiPT09aWUucGxhdGZvcm0mJihBZT1BZS5yZXBsYWNlKC9cXC9nLCIvIikpLEFlfWZ1bmN0aW9uIGNlKGRlLHZlKXtyZXR1cm4hIWRlLmlnbm9yZS5sZW5ndGgmJmRlLmln''@;'; + put 'put ''bm9yZS5zb21lKGZ1bmN0aW9uKEFlKXtyZXR1cm4gQWUubWF0Y2hlci5tYXRjaCh2ZSl8fCEoIUFlLmdtYXRjaGVyfHwhQWUuZ21hdGNoZXIubWF0Y2godmUpKX0pfX0sMjg4NDooVSxRLFopPT57dmFyIGllPVooNDE1NSksYWU9Wig1MTA4KTtVLmV4cG9ydHM9VGU7dmFyIFk9Wig3MzM0KSxX''@;'; + put 'put ''PVooMTE3MSksTj1aKDU3MTcpLGVlPVooNzE4NykuRXZlbnRFbWl0dGVyLHE9WigyNTIwKSxKPVooOTI4Miksc2U9Wig0MDk1KSxvZT1aKDQ3NTEpLGNlPVooNjc3MiksZGU9Y2Uuc2V0b3B0cyx2ZT1jZS5vd25Qcm9wLEFlPVooNzg0NCksa2U9KFooOTUzOSksY2UuY2hpbGRyZW5JZ25vcmVk''@;'; + put 'put ''KSxTZT1jZS5pc0lnbm9yZWQsSWU9Wig3NzgpO2Z1bmN0aW9uIFRlKE8seixuZSl7aWYoImZ1bmN0aW9uIj09dHlwZW9mIHomJihuZT16LHo9e30pLHp8fCh6PXt9KSx6LnN5bmMpe2lmKG5lKXRocm93IG5ldyBUeXBlRXJyb3IoImNhbGxiYWNrIHByb3ZpZGVkIHRvIHN5bmMgZ2xvYiIpO3Jl''@;'; + put 'put ''dHVybiBvZShPLHopfXJldHVybiBuZXcgaGUoTyx6LG5lKX1UZS5zeW5jPW9lO3ZhciBFZT1UZS5HbG9iU3luYz1vZS5HbG9iU3luYztmdW5jdGlvbiBoZShPLHosbmUpe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiB6JiYobmU9eix6PW51bGwpLHomJnouc3luYyl7aWYobmUpdGhyb3cgbmV3IFR5''@;'; + put 'put ''cGVFcnJvcigiY2FsbGJhY2sgcHJvdmlkZWQgdG8gc3luYyBnbG9iIik7cmV0dXJuIG5ldyBFZShPLHopfWlmKCEodGhpcyBpbnN0YW5jZW9mIGhlKSlyZXR1cm4gbmV3IGhlKE8seixuZSk7ZGUodGhpcyxPLHopLHRoaXMuX2RpZFJlYWxQYXRoPSExO3ZhciB0ZT10aGlzLm1pbmltYXRjaC5z''@;'; + put 'put ''ZXQubGVuZ3RoO3RoaXMubWF0Y2hlcz1uZXcgQXJyYXkodGUpLCJmdW5jdGlvbiI9PXR5cGVvZiBuZSYmKG5lPUllKG5lKSx0aGlzLm9uKCJlcnJvciIsbmUpLHRoaXMub24oImVuZCIsZnVuY3Rpb24oVCl7bmUobnVsbCxUKX0pKTt2YXIgeD10aGlzO2lmKHRoaXMuX3Byb2Nlc3Npbmc9MCx0''@;'; + put 'put ''aGlzLl9lbWl0UXVldWU9W10sdGhpcy5fcHJvY2Vzc1F1ZXVlPVtdLHRoaXMucGF1c2VkPSExLHRoaXMubm9wcm9jZXNzKXJldHVybiB0aGlzO2lmKDA9PT10ZSlyZXR1cm4gVigpO2Zvcih2YXIgUD0wO1A8dGU7UCsrKXRoaXMuX3Byb2Nlc3ModGhpcy5taW5pbWF0Y2guc2V0W1BdLFAsITEs''@;'; + put 'put ''Vik7ZnVuY3Rpb24gVigpey0teC5fcHJvY2Vzc2luZyx4Ll9wcm9jZXNzaW5nPD0wJiZ4Ll9maW5pc2goKX19VGUuZ2xvYj1UZSxUZS5oYXNNYWdpYz1mdW5jdGlvbihPLHope3ZhciBuZT1mdW5jdGlvbihQLFYpe2lmKG51bGw9PT1WfHwib2JqZWN0IiE9dHlwZW9mIFYpcmV0dXJuIFA7Zm9y''@;'; + put 'put ''KHZhciBUPU9iamVjdC5rZXlzKFYpLFM9VC5sZW5ndGg7Uy0tOylQW1RbU11dPVZbVFtTXV07cmV0dXJuIFB9KHt9LHopO25lLm5vcHJvY2Vzcz0hMDt2YXIgdGU9bmV3IGhlKE8sbmUpLm1pbmltYXRjaC5zZXQ7aWYoIU8pcmV0dXJuITE7aWYodGUubGVuZ3RoPjEpcmV0dXJuITA7Zm9yKHZh''@;'; + put 'put ''ciB4PTA7eDx0ZVswXS5sZW5ndGg7eCsrKWlmKCJzdHJpbmciIT10eXBlb2YgdGVbMF1beF0pcmV0dXJuITA7cmV0dXJuITF9LFRlLkdsb2I9aGUsTihoZSxlZSksaGUucHJvdG90eXBlLl9maW5pc2g9ZnVuY3Rpb24oKXtpZihKKHRoaXMgaW5zdGFuY2VvZiBoZSksIXRoaXMuYWJvcnRlZCl7''@;'; + put 'put ''aWYodGhpcy5yZWFscGF0aCYmIXRoaXMuX2RpZFJlYWxwYXRoKXJldHVybiB0aGlzLl9yZWFscGF0aCgpO2NlLmZpbmlzaCh0aGlzKSx0aGlzLmVtaXQoImVuZCIsdGhpcy5mb3VuZCl9fSxoZS5wcm90b3R5cGUuX3JlYWxwYXRoPWZ1bmN0aW9uKCl7aWYoIXRoaXMuX2RpZFJlYWxwYXRoKXt0''@;'; + put 'put ''aGlzLl9kaWRSZWFscGF0aD0hMDt2YXIgTz10aGlzLm1hdGNoZXMubGVuZ3RoO2lmKDA9PT1PKXJldHVybiB0aGlzLl9maW5pc2goKTtmb3IodmFyIHo9dGhpcyxuZT0wO25lPHRoaXMubWF0Y2hlcy5sZW5ndGg7bmUrKyl0aGlzLl9yZWFscGF0aFNldChuZSx0ZSl9ZnVuY3Rpb24gdGUoKXsw''@;'; + put 'put ''PT0tLU8mJnouX2ZpbmlzaCgpfX0saGUucHJvdG90eXBlLl9yZWFscGF0aFNldD1mdW5jdGlvbihPLHope3ZhciBuZT10aGlzLm1hdGNoZXNbT107aWYoIW5lKXJldHVybiB6KCk7dmFyIHRlPU9iamVjdC5rZXlzKG5lKSx4PXRoaXMsUD10ZS5sZW5ndGg7aWYoMD09PVApcmV0dXJuIHooKTt2''@;'; + put 'put ''YXIgVj10aGlzLm1hdGNoZXNbT109T2JqZWN0LmNyZWF0ZShudWxsKTt0ZS5mb3JFYWNoKGZ1bmN0aW9uKFQsUyl7VD14Ll9tYWtlQWJzKFQpLFkucmVhbHBhdGgoVCx4LnJlYWxwYXRoQ2FjaGUsZnVuY3Rpb24oRix5ZSl7Rj8ic3RhdCI9PT1GLnN5c2NhbGw/VltUXT0hMDp4LmVtaXQoImVy''@;'; + put 'put ''cm9yIixGKTpWW3llXT0hMCwwPT0tLVAmJih4Lm1hdGNoZXNbT109Vix6KCkpfSl9KX0saGUucHJvdG90eXBlLl9tYXJrPWZ1bmN0aW9uKE8pe3JldHVybiBjZS5tYXJrKHRoaXMsTyl9LGhlLnByb3RvdHlwZS5fbWFrZUFicz1mdW5jdGlvbihPKXtyZXR1cm4gY2UubWFrZUFicyh0aGlzLE8p''@;'; + put 'put ''fSxoZS5wcm90b3R5cGUuYWJvcnQ9ZnVuY3Rpb24oKXt0aGlzLmFib3J0ZWQ9ITAsdGhpcy5lbWl0KCJhYm9ydCIpfSxoZS5wcm90b3R5cGUucGF1c2U9ZnVuY3Rpb24oKXt0aGlzLnBhdXNlZHx8KHRoaXMucGF1c2VkPSEwLHRoaXMuZW1pdCgicGF1c2UiKSl9LGhlLnByb3RvdHlwZS5yZXN1''@;'; + put 'put ''bWU9ZnVuY3Rpb24oKXtpZih0aGlzLnBhdXNlZCl7aWYodGhpcy5lbWl0KCJyZXN1bWUiKSx0aGlzLnBhdXNlZD0hMSx0aGlzLl9lbWl0UXVldWUubGVuZ3RoKXt2YXIgTz10aGlzLl9lbWl0UXVldWUuc2xpY2UoMCk7dGhpcy5fZW1pdFF1ZXVlLmxlbmd0aD0wO2Zvcih2YXIgej0wO3o8Ty5s''@;'; + put 'put ''ZW5ndGg7eisrKXt2YXIgbmU9T1t6XTt0aGlzLl9lbWl0TWF0Y2gobmVbMF0sbmVbMV0pfX1pZih0aGlzLl9wcm9jZXNzUXVldWUubGVuZ3RoKXt2YXIgdGU9dGhpcy5fcHJvY2Vzc1F1ZXVlLnNsaWNlKDApO2Zvcih0aGlzLl9wcm9jZXNzUXVldWUubGVuZ3RoPTAsej0wO3o8dGUubGVuZ3Ro''@;'; + put 'put ''O3orKyl7dmFyIHg9dGVbel07dGhpcy5fcHJvY2Vzc2luZy0tLHRoaXMuX3Byb2Nlc3MoeFswXSx4WzFdLHhbMl0seFszXSl9fX19LGhlLnByb3RvdHlwZS5fcHJvY2Vzcz1mdW5jdGlvbihPLHosbmUsdGUpe2lmKEoodGhpcyBpbnN0YW5jZW9mIGhlKSxKKCJmdW5jdGlvbiI9PXR5cGVvZiB0''@;'; + put 'put ''ZSksIXRoaXMuYWJvcnRlZClpZih0aGlzLl9wcm9jZXNzaW5nKyssdGhpcy5wYXVzZWQpdGhpcy5fcHJvY2Vzc1F1ZXVlLnB1c2goW08seixuZSx0ZV0pO2Vsc2V7Zm9yKHZhciB4LFA9MDsic3RyaW5nIj09dHlwZW9mIE9bUF07KVArKztzd2l0Y2goUCl7Y2FzZSBPLmxlbmd0aDpyZXR1cm4g''@;'; + put 'put ''dm9pZCB0aGlzLl9wcm9jZXNzU2ltcGxlKE8uam9pbigiLyIpLHosdGUpO2Nhc2UgMDp4PW51bGw7YnJlYWs7ZGVmYXVsdDp4PU8uc2xpY2UoMCxQKS5qb2luKCIvIil9dmFyIFYsVD1PLnNsaWNlKFApO251bGw9PT14P1Y9Ii4iOigoc2UoeCl8fHNlKE8ubWFwKGZ1bmN0aW9uKEYpe3JldHVy''@;'; + put 'put ''biJzdHJpbmciPT10eXBlb2YgRj9GOiJbKl0ifSkuam9pbigiLyIpKSkmJih4JiZzZSh4KXx8KHg9Ii8iK3gpKSxWPXgpO3ZhciBTPXRoaXMuX21ha2VBYnMoVik7aWYoa2UodGhpcyxWKSlyZXR1cm4gdGUoKTtUWzBdPT09Vy5HTE9CU1RBUj90aGlzLl9wcm9jZXNzR2xvYlN0YXIoeCxWLFMs''@;'; + put 'put ''VCx6LG5lLHRlKTp0aGlzLl9wcm9jZXNzUmVhZGRpcih4LFYsUyxULHosbmUsdGUpfX0saGUucHJvdG90eXBlLl9wcm9jZXNzUmVhZGRpcj1mdW5jdGlvbihPLHosbmUsdGUseCxQLFYpe3ZhciBUPXRoaXM7dGhpcy5fcmVhZGRpcihuZSxQLGZ1bmN0aW9uKFMsRil7cmV0dXJuIFQuX3Byb2Nl''@;'; + put 'put ''c3NSZWFkZGlyMihPLHosbmUsdGUseCxQLEYsVil9KX0saGUucHJvdG90eXBlLl9wcm9jZXNzUmVhZGRpcjI9ZnVuY3Rpb24oTyx6LG5lLHRlLHgsUCxWLFQpe2lmKCFWKXJldHVybiBUKCk7Zm9yKHZhciBTPXRlWzBdLEY9ISF0aGlzLm1pbmltYXRjaC5uZWdhdGUsQ2U9dGhpcy5kb3R8fCIu''@;'; + put 'put ''Ij09PVMuX2dsb2IuY2hhckF0KDApLERlPVtdLFBlPTA7UGU8Vi5sZW5ndGg7UGUrKykoIi4iIT09KCRlPVZbUGVdKS5jaGFyQXQoMCl8fENlKSYmKEYmJiFPPyEkZS5tYXRjaChTKTokZS5tYXRjaChTKSkmJkRlLnB1c2goJGUpO3ZhciBRZT1EZS5sZW5ndGg7aWYoMD09PVFlKXJldHVybiBU''@;'; + put 'put ''KCk7aWYoMT09PXRlLmxlbmd0aCYmIXRoaXMubWFyayYmIXRoaXMuc3RhdCl7Zm9yKHRoaXMubWF0Y2hlc1t4XXx8KHRoaXMubWF0Y2hlc1t4XT1PYmplY3QuY3JlYXRlKG51bGwpKSxQZT0wO1BlPFFlO1BlKyspe3ZhciAkZT1EZVtQZV07TyYmKCRlPSIvIiE9PU8/TysiLyIrJGU6TyskZSks''@;'; + put 'put ''Ii8iIT09JGUuY2hhckF0KDApfHx0aGlzLm5vbW91bnR8fCgkZT1xLmpvaW4odGhpcy5yb290LCRlKSksdGhpcy5fZW1pdE1hdGNoKHgsJGUpfXJldHVybiBUKCl9Zm9yKHRlLnNoaWZ0KCksUGU9MDtQZTxRZTtQZSsrKSRlPURlW1BlXSxPJiYoJGU9Ii8iIT09Tz9PKyIvIiskZTpPKyRlKSx0''@;'; + put 'put ''aGlzLl9wcm9jZXNzKFskZV0uY29uY2F0KHRlKSx4LFAsVCk7VCgpfSxoZS5wcm90b3R5cGUuX2VtaXRNYXRjaD1mdW5jdGlvbihPLHope2lmKCF0aGlzLmFib3J0ZWQmJiFTZSh0aGlzLHopKWlmKHRoaXMucGF1c2VkKXRoaXMuX2VtaXRRdWV1ZS5wdXNoKFtPLHpdKTtlbHNle3ZhciBuZT1z''@;'; + put 'put ''ZSh6KT96OnRoaXMuX21ha2VBYnMoeik7aWYodGhpcy5tYXJrJiYoej10aGlzLl9tYXJrKHopKSx0aGlzLmFic29sdXRlJiYoej1uZSksIXRoaXMubWF0Y2hlc1tPXVt6XSl7aWYodGhpcy5ub2Rpcil7dmFyIHRlPXRoaXMuY2FjaGVbbmVdO2lmKCJESVIiPT09dGV8fEFycmF5LmlzQXJyYXko''@;'; + put 'put ''dGUpKXJldHVybn10aGlzLm1hdGNoZXNbT11bel09ITA7dmFyIHg9dGhpcy5zdGF0Q2FjaGVbbmVdO3gmJnRoaXMuZW1pdCgic3RhdCIseix4KSx0aGlzLmVtaXQoIm1hdGNoIix6KX19fSxoZS5wcm90b3R5cGUuX3JlYWRkaXJJbkdsb2JTdGFyPWZ1bmN0aW9uKE8seil7aWYoIXRoaXMuYWJv''@;'; + put 'put ''cnRlZCl7aWYodGhpcy5mb2xsb3cpcmV0dXJuIHRoaXMuX3JlYWRkaXIoTywhMSx6KTt2YXIgbmU9dGhpcyx0ZT1BZSgibHN0YXRcMCIrTyxmdW5jdGlvbih4LFApe2lmKHgmJiJFTk9FTlQiPT09eC5jb2RlKXJldHVybiB6KCk7dmFyIFY9UCYmUC5pc1N5bWJvbGljTGluaygpO25lLnN5bWxp''@;'; + put 'put ''bmtzW09dPVYsVnx8IVB8fFAuaXNEaXJlY3RvcnkoKT9uZS5fcmVhZGRpcihPLCExLHopOihuZS5jYWNoZVtPXT0iRklMRSIseigpKX0pO3RlJiZuZS5mcy5sc3RhdChPLHRlKX19LGhlLnByb3RvdHlwZS5fcmVhZGRpcj1mdW5jdGlvbihPLHosbmUpe2lmKCF0aGlzLmFib3J0ZWQmJihuZT1B''@;'; + put 'put ''ZSgicmVhZGRpclwwIitPKyJcMCIreixuZSkpKXtpZih6JiYhdmUodGhpcy5zeW1saW5rcyxPKSlyZXR1cm4gdGhpcy5fcmVhZGRpckluR2xvYlN0YXIoTyxuZSk7aWYodmUodGhpcy5jYWNoZSxPKSl7dmFyIHRlPXRoaXMuY2FjaGVbT107aWYoIXRlfHwiRklMRSI9PT10ZSlyZXR1cm4gbmUo''@;'; + put 'put ''KTtpZihBcnJheS5pc0FycmF5KHRlKSlyZXR1cm4gbmUobnVsbCx0ZSl9dGhpcy5mcy5yZWFkZGlyKE8sKHg9dGhpcyxQPU8sVj1uZSxmdW5jdGlvbihULFMpe1Q/eC5fcmVhZGRpckVycm9yKFAsVCxWKTp4Ll9yZWFkZGlyRW50cmllcyhQLFMsVil9KSl9dmFyIHgsUCxWfSxoZS5wcm90b3R5''@;'; + put 'put ''cGUuX3JlYWRkaXJFbnRyaWVzPWZ1bmN0aW9uKE8seixuZSl7aWYoIXRoaXMuYWJvcnRlZCl7aWYoIXRoaXMubWFyayYmIXRoaXMuc3RhdClmb3IodmFyIHRlPTA7dGU8ei5sZW5ndGg7dGUrKyl7dmFyIHg9elt0ZV07dGhpcy5jYWNoZVt4PSIvIj09PU8/Tyt4Ok8rIi8iK3hdPSEwfXJldHVy''@;'; + put 'put ''biB0aGlzLmNhY2hlW09dPXosbmUobnVsbCx6KX19LGhlLnByb3RvdHlwZS5fcmVhZGRpckVycm9yPWZ1bmN0aW9uKE8seixuZSl7aWYoIXRoaXMuYWJvcnRlZCl7c3dpdGNoKHouY29kZSl7Y2FzZSJFTk9UU1VQIjpjYXNlIkVOT1RESVIiOnZhciB0ZT10aGlzLl9tYWtlQWJzKE8pO2lmKHRo''@;'; + put 'put ''aXMuY2FjaGVbdGVdPSJGSUxFIix0ZT09PXRoaXMuY3dkQWJzKXt2YXIgeD1uZXcgRXJyb3Ioei5jb2RlKyIgaW52YWxpZCBjd2QgIit0aGlzLmN3ZCk7eC5wYXRoPXRoaXMuY3dkLHguY29kZT16LmNvZGUsdGhpcy5lbWl0KCJlcnJvciIseCksdGhpcy5hYm9ydCgpfWJyZWFrO2Nhc2UiRU5P''@;'; + put 'put ''RU5UIjpjYXNlIkVMT09QIjpjYXNlIkVOQU1FVE9PTE9ORyI6Y2FzZSJVTktOT1dOIjp0aGlzLmNhY2hlW3RoaXMuX21ha2VBYnMoTyldPSExO2JyZWFrO2RlZmF1bHQ6dGhpcy5jYWNoZVt0aGlzLl9tYWtlQWJzKE8pXT0hMSx0aGlzLnN0cmljdCYmKHRoaXMuZW1pdCgiZXJyb3IiLHopLHRo''@;'; + put 'put ''aXMuYWJvcnQoKSksdGhpcy5zaWxlbnR8fGFlLmVycm9yKCJnbG9iIGVycm9yIix6KX1yZXR1cm4gbmUoKX19LGhlLnByb3RvdHlwZS5fcHJvY2Vzc0dsb2JTdGFyPWZ1bmN0aW9uKE8seixuZSx0ZSx4LFAsVil7dmFyIFQ9dGhpczt0aGlzLl9yZWFkZGlyKG5lLFAsZnVuY3Rpb24oUyxGKXtU''@;'; + put 'put ''Ll9wcm9jZXNzR2xvYlN0YXIyKE8seixuZSx0ZSx4LFAsRixWKX0pfSxoZS5wcm90b3R5cGUuX3Byb2Nlc3NHbG9iU3RhcjI9ZnVuY3Rpb24oTyx6LG5lLHRlLHgsUCxWLFQpe2lmKCFWKXJldHVybiBUKCk7dmFyIFM9dGUuc2xpY2UoMSksRj1PP1tPXTpbXSx5ZT1GLmNvbmNhdChTKTt0aGlz''@;'; + put 'put ''Ll9wcm9jZXNzKHllLHgsITEsVCk7dmFyIERlPVYubGVuZ3RoO2lmKHRoaXMuc3ltbGlua3NbbmVdJiZQKXJldHVybiBUKCk7Zm9yKHZhciBQZT0wO1BlPERlO1BlKyspaWYoIi4iIT09VltQZV0uY2hhckF0KDApfHx0aGlzLmRvdCl7dmFyIFFlPUYuY29uY2F0KFZbUGVdLFMpO3RoaXMuX3By''@;'; + put 'put ''b2Nlc3MoUWUseCwhMCxUKTt2YXIgJGU9Ri5jb25jYXQoVltQZV0sdGUpO3RoaXMuX3Byb2Nlc3MoJGUseCwhMCxUKX1UKCl9LGhlLnByb3RvdHlwZS5fcHJvY2Vzc1NpbXBsZT1mdW5jdGlvbihPLHosbmUpe3ZhciB0ZT10aGlzO3RoaXMuX3N0YXQoTyxmdW5jdGlvbih4LFApe3RlLl9wcm9j''@;'; + put 'put ''ZXNzU2ltcGxlMihPLHoseCxQLG5lKX0pfSxoZS5wcm90b3R5cGUuX3Byb2Nlc3NTaW1wbGUyPWZ1bmN0aW9uKE8seixuZSx0ZSx4KXtpZih0aGlzLm1hdGNoZXNbel18fCh0aGlzLm1hdGNoZXNbel09T2JqZWN0LmNyZWF0ZShudWxsKSksIXRlKXJldHVybiB4KCk7aWYoTyYmc2UoTykmJiF0''@;'; + put 'put ''aGlzLm5vbW91bnQpe3ZhciBQPS9bXC9cXF0kLy50ZXN0KE8pOyIvIj09PU8uY2hhckF0KDApP089cS5qb2luKHRoaXMucm9vdCxPKTooTz1xLnJlc29sdmUodGhpcy5yb290LE8pLFAmJihPKz0iLyIpKX0id2luMzIiPT09aWUucGxhdGZvcm0mJihPPU8ucmVwbGFjZSgvXFwvZywiLyIpKSx0''@;'; + put 'put ''aGlzLl9lbWl0TWF0Y2goeixPKSx4KCl9LGhlLnByb3RvdHlwZS5fc3RhdD1mdW5jdGlvbihPLHope3ZhciBuZT10aGlzLl9tYWtlQWJzKE8pLHRlPSIvIj09PU8uc2xpY2UoLTEpO2lmKE8ubGVuZ3RoPnRoaXMubWF4TGVuZ3RoKXJldHVybiB6KCk7aWYoIXRoaXMuc3RhdCYmdmUodGhpcy5j''@;'; + put 'put ''YWNoZSxuZSkpe3ZhciB4PXRoaXMuY2FjaGVbbmVdO2lmKEFycmF5LmlzQXJyYXkoeCkmJih4PSJESVIiKSwhdGV8fCJESVIiPT09eClyZXR1cm4geihudWxsLHgpO2lmKHRlJiYiRklMRSI9PT14KXJldHVybiB6KCl9dmFyIFA9dGhpcy5zdGF0Q2FjaGVbbmVdO2lmKHZvaWQgMCE9PVApe2lm''@;'; + put 'put ''KCExPT09UClyZXR1cm4geihudWxsLFApO3ZhciBWPVAuaXNEaXJlY3RvcnkoKT8iRElSIjoiRklMRSI7cmV0dXJuIHRlJiYiRklMRSI9PT1WP3ooKTp6KG51bGwsVixQKX12YXIgVD10aGlzLFM9QWUoInN0YXRcMCIrbmUsZnVuY3Rpb24oRix5ZSl7aWYoeWUmJnllLmlzU3ltYm9saWNMaW5r''@;'; + put 'put ''KCkpcmV0dXJuIFQuZnMuc3RhdChuZSxmdW5jdGlvbihDZSxEZSl7Q2U/VC5fc3RhdDIoTyxuZSxudWxsLHllLHopOlQuX3N0YXQyKE8sbmUsQ2UsRGUseil9KTtULl9zdGF0MihPLG5lLEYseWUseil9KTtTJiZULmZzLmxzdGF0KG5lLFMpfSxoZS5wcm90b3R5cGUuX3N0YXQyPWZ1bmN0aW9u''@;'; + put 'put ''KE8seixuZSx0ZSx4KXtpZihuZSYmKCJFTk9FTlQiPT09bmUuY29kZXx8IkVOT1RESVIiPT09bmUuY29kZSkpcmV0dXJuIHRoaXMuc3RhdENhY2hlW3pdPSExLHgoKTt2YXIgUD0iLyI9PT1PLnNsaWNlKC0xKTtpZih0aGlzLnN0YXRDYWNoZVt6XT10ZSwiLyI9PT16LnNsaWNlKC0xKSYmdGUm''@;'; + put 'put ''JiF0ZS5pc0RpcmVjdG9yeSgpKXJldHVybiB4KG51bGwsITEsdGUpO3ZhciBWPSEwO3JldHVybiB0ZSYmKFY9dGUuaXNEaXJlY3RvcnkoKT8iRElSIjoiRklMRSIpLHRoaXMuY2FjaGVbel09dGhpcy5jYWNoZVt6XXx8VixQJiYiRklMRSI9PT1WP3goKTp4KG51bGwsVix0ZSl9fSw0NzUxOihV''@;'; + put 'put ''LFEsWik9Pnt2YXIgaWU9Wig1MTA4KSxhZT1aKDQxNTUpO1UuZXhwb3J0cz12ZSx2ZS5HbG9iU3luYz1BZTt2YXIgWT1aKDczMzQpLFc9WigxMTcxKSxOPShaKDI4ODQpLFooOTUzOSksWigyNTIwKSksZWU9Wig5MjgyKSxxPVooNDA5NSksSj1aKDY3NzIpLHNlPUouc2V0b3B0cyxvZT1KLm93''@;'; + put 'put ''blByb3AsY2U9Si5jaGlsZHJlbklnbm9yZWQsZGU9Si5pc0lnbm9yZWQ7ZnVuY3Rpb24gdmUoa2UsU2Upe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBTZXx8Mz09PWFyZ3VtZW50cy5sZW5ndGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiY2FsbGJhY2sgcHJvdmlkZWQgdG8gc3luYyBnbG9iXG5TZWU6''@;'; + put 'put ''IGh0dHBzOi8vZ2l0aHViLmNvbS9pc2FhY3Mvbm9kZS1nbG9iL2lzc3Vlcy8xNjciKTtyZXR1cm4gbmV3IEFlKGtlLFNlKS5mb3VuZH1mdW5jdGlvbiBBZShrZSxTZSl7aWYoIWtlKXRocm93IG5ldyBFcnJvcigibXVzdCBwcm92aWRlIHBhdHRlcm4iKTtpZigiZnVuY3Rpb24iPT10eXBlb2Yg''@;'; + put 'put ''U2V8fDM9PT1hcmd1bWVudHMubGVuZ3RoKXRocm93IG5ldyBUeXBlRXJyb3IoImNhbGxiYWNrIHByb3ZpZGVkIHRvIHN5bmMgZ2xvYlxuU2VlOiBodHRwczovL2dpdGh1Yi5jb20vaXNhYWNzL25vZGUtZ2xvYi9pc3N1ZXMvMTY3Iik7aWYoISh0aGlzIGluc3RhbmNlb2YgQWUpKXJldHVybiBu''@;'; + put 'put ''ZXcgQWUoa2UsU2UpO2lmKHNlKHRoaXMsa2UsU2UpLHRoaXMubm9wcm9jZXNzKXJldHVybiB0aGlzO3ZhciBJZT10aGlzLm1pbmltYXRjaC5zZXQubGVuZ3RoO3RoaXMubWF0Y2hlcz1uZXcgQXJyYXkoSWUpO2Zvcih2YXIgVGU9MDtUZTxJZTtUZSsrKXRoaXMuX3Byb2Nlc3ModGhpcy5taW5p''@;'; + put 'put ''bWF0Y2guc2V0W1RlXSxUZSwhMSk7dGhpcy5fZmluaXNoKCl9QWUucHJvdG90eXBlLl9maW5pc2g9ZnVuY3Rpb24oKXtpZihlZS5vayh0aGlzIGluc3RhbmNlb2YgQWUpLHRoaXMucmVhbHBhdGgpe3ZhciBrZT10aGlzO3RoaXMubWF0Y2hlcy5mb3JFYWNoKGZ1bmN0aW9uKFNlLEllKXt2YXIg''@;'; + put 'put ''VGU9a2UubWF0Y2hlc1tJZV09T2JqZWN0LmNyZWF0ZShudWxsKTtmb3IodmFyIEVlIGluIFNlKXRyeXtFZT1rZS5fbWFrZUFicyhFZSksVGVbWS5yZWFscGF0aFN5bmMoRWUsa2UucmVhbHBhdGhDYWNoZSldPSEwfWNhdGNoKGhlKXtpZigic3RhdCIhPT1oZS5zeXNjYWxsKXRocm93IGhlO1Rl''@;'; + put 'put ''W2tlLl9tYWtlQWJzKEVlKV09ITB9fSl9Si5maW5pc2godGhpcyl9LEFlLnByb3RvdHlwZS5fcHJvY2Vzcz1mdW5jdGlvbihrZSxTZSxJZSl7ZWUub2sodGhpcyBpbnN0YW5jZW9mIEFlKTtmb3IodmFyIFRlLEVlPTA7InN0cmluZyI9PXR5cGVvZiBrZVtFZV07KUVlKys7c3dpdGNoKEVlKXtj''@;'; + put 'put ''YXNlIGtlLmxlbmd0aDpyZXR1cm4gdm9pZCB0aGlzLl9wcm9jZXNzU2ltcGxlKGtlLmpvaW4oIi8iKSxTZSk7Y2FzZSAwOlRlPW51bGw7YnJlYWs7ZGVmYXVsdDpUZT1rZS5zbGljZSgwLEVlKS5qb2luKCIvIil9dmFyIGhlLE89a2Uuc2xpY2UoRWUpO251bGw9PT1UZT9oZT0iLiI6KChxKFRl''@;'; + put 'put ''KXx8cShrZS5tYXAoZnVuY3Rpb24obmUpe3JldHVybiJzdHJpbmciPT10eXBlb2YgbmU/bmU6IlsqXSJ9KS5qb2luKCIvIikpKSYmKFRlJiZxKFRlKXx8KFRlPSIvIitUZSkpLGhlPVRlKTt2YXIgej10aGlzLl9tYWtlQWJzKGhlKTtjZSh0aGlzLGhlKXx8KE9bMF09PT1XLkdMT0JTVEFSP3Ro''@;'; + put 'put ''aXMuX3Byb2Nlc3NHbG9iU3RhcihUZSxoZSx6LE8sU2UsSWUpOnRoaXMuX3Byb2Nlc3NSZWFkZGlyKFRlLGhlLHosTyxTZSxJZSkpfSxBZS5wcm90b3R5cGUuX3Byb2Nlc3NSZWFkZGlyPWZ1bmN0aW9uKGtlLFNlLEllLFRlLEVlLGhlKXt2YXIgTz10aGlzLl9yZWFkZGlyKEllLGhlKTtpZihP''@;'; + put 'put ''KXtmb3IodmFyIHo9VGVbMF0sbmU9ISF0aGlzLm1pbmltYXRjaC5uZWdhdGUseD10aGlzLmRvdHx8Ii4iPT09ei5fZ2xvYi5jaGFyQXQoMCksUD1bXSxWPTA7VjxPLmxlbmd0aDtWKyspKCIuIiE9PShGPU9bVl0pLmNoYXJBdCgwKXx8eCkmJihuZSYmIWtlPyFGLm1hdGNoKHopOkYubWF0Y2go''@;'; + put 'put ''eikpJiZQLnB1c2goRik7dmFyIFQ9UC5sZW5ndGg7aWYoMCE9PVQpaWYoMSE9PVRlLmxlbmd0aHx8dGhpcy5tYXJrfHx0aGlzLnN0YXQpZm9yKFRlLnNoaWZ0KCksVj0wO1Y8VDtWKyspRj1QW1ZdLHRoaXMuX3Byb2Nlc3MoKGtlP1trZSxGXTpbRl0pLmNvbmNhdChUZSksRWUsaGUpO2Vsc2Ug''@;'; + put 'put ''Zm9yKHRoaXMubWF0Y2hlc1tFZV18fCh0aGlzLm1hdGNoZXNbRWVdPU9iamVjdC5jcmVhdGUobnVsbCkpLFY9MDtWPFQ7VisrKXt2YXIgRj1QW1ZdO2tlJiYoRj0iLyIhPT1rZS5zbGljZSgtMSk/a2UrIi8iK0Y6a2UrRiksIi8iIT09Ri5jaGFyQXQoMCl8fHRoaXMubm9tb3VudHx8KEY9Ti5q''@;'; + put 'put ''b2luKHRoaXMucm9vdCxGKSksdGhpcy5fZW1pdE1hdGNoKEVlLEYpfX19LEFlLnByb3RvdHlwZS5fZW1pdE1hdGNoPWZ1bmN0aW9uKGtlLFNlKXtpZighZGUodGhpcyxTZSkpe3ZhciBJZT10aGlzLl9tYWtlQWJzKFNlKTtpZih0aGlzLm1hcmsmJihTZT10aGlzLl9tYXJrKFNlKSksdGhpcy5h''@;'; + put 'put ''YnNvbHV0ZSYmKFNlPUllKSwhdGhpcy5tYXRjaGVzW2tlXVtTZV0pe2lmKHRoaXMubm9kaXIpe3ZhciBUZT10aGlzLmNhY2hlW0llXTtpZigiRElSIj09PVRlfHxBcnJheS5pc0FycmF5KFRlKSlyZXR1cm59dGhpcy5tYXRjaGVzW2tlXVtTZV09ITAsdGhpcy5zdGF0JiZ0aGlzLl9zdGF0KFNl''@;'; + put 'put ''KX19fSxBZS5wcm90b3R5cGUuX3JlYWRkaXJJbkdsb2JTdGFyPWZ1bmN0aW9uKGtlKXtpZih0aGlzLmZvbGxvdylyZXR1cm4gdGhpcy5fcmVhZGRpcihrZSwhMSk7dmFyIFNlLEllO3RyeXtJZT10aGlzLmZzLmxzdGF0U3luYyhrZSl9Y2F0Y2goRWUpe2lmKCJFTk9FTlQiPT09RWUuY29kZSly''@;'; + put 'put ''ZXR1cm4gbnVsbH12YXIgVGU9SWUmJkllLmlzU3ltYm9saWNMaW5rKCk7cmV0dXJuIHRoaXMuc3ltbGlua3Nba2VdPVRlLFRlfHwhSWV8fEllLmlzRGlyZWN0b3J5KCk/U2U9dGhpcy5fcmVhZGRpcihrZSwhMSk6dGhpcy5jYWNoZVtrZV09IkZJTEUiLFNlfSxBZS5wcm90b3R5cGUuX3JlYWRk''@;'; + put 'put ''aXI9ZnVuY3Rpb24oa2UsU2Upe2lmKFNlJiYhb2UodGhpcy5zeW1saW5rcyxrZSkpcmV0dXJuIHRoaXMuX3JlYWRkaXJJbkdsb2JTdGFyKGtlKTtpZihvZSh0aGlzLmNhY2hlLGtlKSl7dmFyIEllPXRoaXMuY2FjaGVba2VdO2lmKCFJZXx8IkZJTEUiPT09SWUpcmV0dXJuIG51bGw7aWYoQXJy''@;'; + put 'put ''YXkuaXNBcnJheShJZSkpcmV0dXJuIEllfXRyeXtyZXR1cm4gdGhpcy5fcmVhZGRpckVudHJpZXMoa2UsdGhpcy5mcy5yZWFkZGlyU3luYyhrZSkpfWNhdGNoKFRlKXtyZXR1cm4gdGhpcy5fcmVhZGRpckVycm9yKGtlLFRlKSxudWxsfX0sQWUucHJvdG90eXBlLl9yZWFkZGlyRW50cmllcz1m''@;'; + put 'put ''dW5jdGlvbihrZSxTZSl7aWYoIXRoaXMubWFyayYmIXRoaXMuc3RhdClmb3IodmFyIEllPTA7SWU8U2UubGVuZ3RoO0llKyspe3ZhciBUZT1TZVtJZV07dGhpcy5jYWNoZVtUZT0iLyI9PT1rZT9rZStUZTprZSsiLyIrVGVdPSEwfXJldHVybiB0aGlzLmNhY2hlW2tlXT1TZSxTZX0sQWUucHJv''@;'; + put 'put ''dG90eXBlLl9yZWFkZGlyRXJyb3I9ZnVuY3Rpb24oa2UsU2Upe3N3aXRjaChTZS5jb2RlKXtjYXNlIkVOT1RTVVAiOmNhc2UiRU5PVERJUiI6dmFyIEllPXRoaXMuX21ha2VBYnMoa2UpO2lmKHRoaXMuY2FjaGVbSWVdPSJGSUxFIixJZT09PXRoaXMuY3dkQWJzKXt2YXIgVGU9bmV3IEVycm9y''@;'; + put 'put ''KFNlLmNvZGUrIiBpbnZhbGlkIGN3ZCAiK3RoaXMuY3dkKTt0aHJvdyBUZS5wYXRoPXRoaXMuY3dkLFRlLmNvZGU9U2UuY29kZSxUZX1icmVhaztjYXNlIkVOT0VOVCI6Y2FzZSJFTE9PUCI6Y2FzZSJFTkFNRVRPT0xPTkciOmNhc2UiVU5LTk9XTiI6dGhpcy5jYWNoZVt0aGlzLl9tYWtlQWJz''@;'; + put 'put ''KGtlKV09ITE7YnJlYWs7ZGVmYXVsdDppZih0aGlzLmNhY2hlW3RoaXMuX21ha2VBYnMoa2UpXT0hMSx0aGlzLnN0cmljdCl0aHJvdyBTZTt0aGlzLnNpbGVudHx8aWUuZXJyb3IoImdsb2IgZXJyb3IiLFNlKX19LEFlLnByb3RvdHlwZS5fcHJvY2Vzc0dsb2JTdGFyPWZ1bmN0aW9uKGtlLFNl''@;'; + put 'put ''LEllLFRlLEVlLGhlKXt2YXIgTz10aGlzLl9yZWFkZGlyKEllLGhlKTtpZihPKXt2YXIgej1UZS5zbGljZSgxKSxuZT1rZT9ba2VdOltdLHRlPW5lLmNvbmNhdCh6KTt0aGlzLl9wcm9jZXNzKHRlLEVlLCExKTt2YXIgeD1PLmxlbmd0aDtpZighdGhpcy5zeW1saW5rc1tJZV18fCFoZSlmb3Io''@;'; + put 'put ''dmFyIFA9MDtQPHg7UCsrKWlmKCIuIiE9PU9bUF0uY2hhckF0KDApfHx0aGlzLmRvdCl7dmFyIFY9bmUuY29uY2F0KE9bUF0seik7dGhpcy5fcHJvY2VzcyhWLEVlLCEwKTt2YXIgVD1uZS5jb25jYXQoT1tQXSxUZSk7dGhpcy5fcHJvY2VzcyhULEVlLCEwKX19fSxBZS5wcm90b3R5cGUuX3By''@;'; + put 'put ''b2Nlc3NTaW1wbGU9ZnVuY3Rpb24oa2UsU2Upe3ZhciBJZT10aGlzLl9zdGF0KGtlKTtpZih0aGlzLm1hdGNoZXNbU2VdfHwodGhpcy5tYXRjaGVzW1NlXT1PYmplY3QuY3JlYXRlKG51bGwpKSxJZSl7aWYoa2UmJnEoa2UpJiYhdGhpcy5ub21vdW50KXt2YXIgVGU9L1tcL1xcXSQvLnRlc3Qo''@;'; + put 'put ''a2UpOyIvIj09PWtlLmNoYXJBdCgwKT9rZT1OLmpvaW4odGhpcy5yb290LGtlKTooa2U9Ti5yZXNvbHZlKHRoaXMucm9vdCxrZSksVGUmJihrZSs9Ii8iKSl9IndpbjMyIj09PWFlLnBsYXRmb3JtJiYoa2U9a2UucmVwbGFjZSgvXFwvZywiLyIpKSx0aGlzLl9lbWl0TWF0Y2goU2Usa2UpfX0s''@;'; + put 'put ''QWUucHJvdG90eXBlLl9zdGF0PWZ1bmN0aW9uKGtlKXt2YXIgU2U9dGhpcy5fbWFrZUFicyhrZSksSWU9Ii8iPT09a2Uuc2xpY2UoLTEpO2lmKGtlLmxlbmd0aD50aGlzLm1heExlbmd0aClyZXR1cm4hMTtpZighdGhpcy5zdGF0JiZvZSh0aGlzLmNhY2hlLFNlKSl7dmFyIFRlPXRoaXMuY2Fj''@;'; + put 'put ''aGVbU2VdO2lmKEFycmF5LmlzQXJyYXkoVGUpJiYoVGU9IkRJUiIpLCFJZXx8IkRJUiI9PT1UZSlyZXR1cm4gVGU7aWYoSWUmJiJGSUxFIj09PVRlKXJldHVybiExfXZhciBFZT10aGlzLnN0YXRDYWNoZVtTZV07aWYoIUVlKXt2YXIgaGU7dHJ5e2hlPXRoaXMuZnMubHN0YXRTeW5jKFNlKX1j''@;'; + put 'put ''YXRjaChPKXtpZihPJiYoIkVOT0VOVCI9PT1PLmNvZGV8fCJFTk9URElSIj09PU8uY29kZSkpcmV0dXJuIHRoaXMuc3RhdENhY2hlW1NlXT0hMSwhMX1pZihoZSYmaGUuaXNTeW1ib2xpY0xpbmsoKSl0cnl7RWU9dGhpcy5mcy5zdGF0U3luYyhTZSl9Y2F0Y2goTyl7RWU9aGV9ZWxzZSBFZT1o''@;'; + put 'put ''ZX1yZXR1cm4gdGhpcy5zdGF0Q2FjaGVbU2VdPUVlLFRlPSEwLEVlJiYoVGU9RWUuaXNEaXJlY3RvcnkoKT8iRElSIjoiRklMRSIpLHRoaXMuY2FjaGVbU2VdPXRoaXMuY2FjaGVbU2VdfHxUZSwoIUllfHwiRklMRSIhPT1UZSkmJlRlfSxBZS5wcm90b3R5cGUuX21hcms9ZnVuY3Rpb24oa2Up''@;'; + put 'put ''e3JldHVybiBKLm1hcmsodGhpcyxrZSl9LEFlLnByb3RvdHlwZS5fbWFrZUFicz1mdW5jdGlvbihrZSl7cmV0dXJuIEoubWFrZUFicyh0aGlzLGtlKX19LDY0NTg6VT0+eyJ1c2Ugc3RyaWN0IjtVLmV4cG9ydHM9ZnVuY3Rpb24oWil7aWYobnVsbD09PVp8fCJvYmplY3QiIT10eXBlb2YgWily''@;'; + put 'put ''ZXR1cm4gWjtpZihaIGluc3RhbmNlb2YgT2JqZWN0KXZhciBpZT17X19wcm90b19fOlEoWil9O2Vsc2UgaWU9T2JqZWN0LmNyZWF0ZShudWxsKTtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoWikuZm9yRWFjaChmdW5jdGlvbihhZSl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGll''@;'; + put 'put ''LGFlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoWixhZSkpfSksaWV9O3ZhciBRPU9iamVjdC5nZXRQcm90b3R5cGVPZnx8ZnVuY3Rpb24oWil7cmV0dXJuIFouX19wcm90b19ffX0sNzc6KFUsUSxaKT0+e3ZhciBpZSxhZSxZPVooNDE1NSksVz1aKDUxMDgpLE49Wig1NDQzKSxl''@;'; + put 'put ''ZT1aKDIxNjEpLHE9Wig4NTIwKSxKPVooNjQ1OCksc2U9Wig5NTM5KTtmdW5jdGlvbiBvZShUZSxFZSl7T2JqZWN0LmRlZmluZVByb3BlcnR5KFRlLGllLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gRWV9fSl9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmImZ1bmN0aW9uIj09dHlwZW9mIFN5''@;'; + put 'put ''bWJvbC5mb3I/KGllPVN5bWJvbC5mb3IoImdyYWNlZnVsLWZzLnF1ZXVlIiksYWU9U3ltYm9sLmZvcigiZ3JhY2VmdWwtZnMucHJldmlvdXMiKSk6KGllPSJfX19ncmFjZWZ1bC1mcy5xdWV1ZSIsYWU9Il9fX2dyYWNlZnVsLWZzLnByZXZpb3VzIik7dmFyIGNlLGRlPWZ1bmN0aW9uKCl7fTtm''@;'; + put 'put ''dW5jdGlvbiBBZShUZSl7ZWUoVGUpLFRlLmdyYWNlZnVsaWZ5PUFlLFRlLmNyZWF0ZVJlYWRTdHJlYW09ZnVuY3Rpb24oUGUsUWUpe3JldHVybiBuZXcgVGUuUmVhZFN0cmVhbShQZSxRZSl9LFRlLmNyZWF0ZVdyaXRlU3RyZWFtPWZ1bmN0aW9uKFBlLFFlKXtyZXR1cm4gbmV3IFRlLldyaXRl''@;'; + put 'put ''U3RyZWFtKFBlLFFlKX07dmFyIEVlPVRlLnJlYWRGaWxlO1RlLnJlYWRGaWxlPWZ1bmN0aW9uKFBlLFFlLCRlKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgUWUmJigkZT1RZSxRZT1udWxsKSxmdW5jdGlvbiBndCh3dCxtdCx2dCxBdCl7cmV0dXJuIEVlKHd0LG10LGZ1bmN0aW9uKGh0KXsh''@;'; + put 'put ''aHR8fCJFTUZJTEUiIT09aHQuY29kZSYmIkVORklMRSIhPT1odC5jb2RlPyJmdW5jdGlvbiI9PXR5cGVvZiB2dCYmdnQuYXBwbHkodGhpcyxhcmd1bWVudHMpOmtlKFtndCxbd3QsbXQsdnRdLGh0LEF0fHxEYXRlLm5vdygpLERhdGUubm93KCldKX0pfShQZSxRZSwkZSl9O3ZhciBoZT1UZS53''@;'; + put 'put ''cml0ZUZpbGU7VGUud3JpdGVGaWxlPWZ1bmN0aW9uKFBlLFFlLCRlLGd0KXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgJGUmJihndD0kZSwkZT1udWxsKSxmdW5jdGlvbiB3dChtdCx2dCxBdCxodCxCdCl7cmV0dXJuIGhlKG10LHZ0LEF0LGZ1bmN0aW9uKG9uKXshb258fCJFTUZJTEUiIT09''@;'; + put 'put ''b24uY29kZSYmIkVORklMRSIhPT1vbi5jb2RlPyJmdW5jdGlvbiI9PXR5cGVvZiBodCYmaHQuYXBwbHkodGhpcyxhcmd1bWVudHMpOmtlKFt3dCxbbXQsdnQsQXQsaHRdLG9uLEJ0fHxEYXRlLm5vdygpLERhdGUubm93KCldKX0pfShQZSxRZSwkZSxndCl9O3ZhciBPPVRlLmFwcGVuZEZpbGU7''@;'; + put 'put ''TyYmKFRlLmFwcGVuZEZpbGU9ZnVuY3Rpb24oUGUsUWUsJGUsZ3Qpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiAkZSYmKGd0PSRlLCRlPW51bGwpLGZ1bmN0aW9uIHd0KG10LHZ0LEF0LGh0LEJ0KXtyZXR1cm4gTyhtdCx2dCxBdCxmdW5jdGlvbihvbil7IW9ufHwiRU1GSUxFIiE9PW9uLmNv''@;'; + put 'put ''ZGUmJiJFTkZJTEUiIT09b24uY29kZT8iZnVuY3Rpb24iPT10eXBlb2YgaHQmJmh0LmFwcGx5KHRoaXMsYXJndW1lbnRzKTprZShbd3QsW210LHZ0LEF0LGh0XSxvbixCdHx8RGF0ZS5ub3coKSxEYXRlLm5vdygpXSl9KX0oUGUsUWUsJGUsZ3QpfSk7dmFyIHo9VGUuY29weUZpbGU7eiYmKFRl''@;'; + put 'put ''LmNvcHlGaWxlPWZ1bmN0aW9uKFBlLFFlLCRlLGd0KXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgJGUmJihndD0kZSwkZT0wKSxmdW5jdGlvbiB3dChtdCx2dCxBdCxodCxCdCl7cmV0dXJuIHoobXQsdnQsQXQsZnVuY3Rpb24ob24peyFvbnx8IkVNRklMRSIhPT1vbi5jb2RlJiYiRU5GSUxF''@;'; + put 'put ''IiE9PW9uLmNvZGU/ImZ1bmN0aW9uIj09dHlwZW9mIGh0JiZodC5hcHBseSh0aGlzLGFyZ3VtZW50cyk6a2UoW3d0LFttdCx2dCxBdCxodF0sb24sQnR8fERhdGUubm93KCksRGF0ZS5ub3coKV0pfSl9KFBlLFFlLCRlLGd0KX0pO3ZhciBuZT1UZS5yZWFkZGlyO1RlLnJlYWRkaXI9ZnVuY3Rp''@;'; + put 'put ''b24oUGUsUWUsJGUpeyJmdW5jdGlvbiI9PXR5cGVvZiBRZSYmKCRlPVFlLFFlPW51bGwpO3ZhciBndD10ZS50ZXN0KFkudmVyc2lvbik/ZnVuY3Rpb24obXQsdnQsQXQsaHQpe3JldHVybiBuZShtdCx3dChtdCx2dCxBdCxodCkpfTpmdW5jdGlvbihtdCx2dCxBdCxodCl7cmV0dXJuIG5lKG10''@;'; + put 'put ''LHZ0LHd0KG10LHZ0LEF0LGh0KSl9O3JldHVybiBndChQZSxRZSwkZSk7ZnVuY3Rpb24gd3QobXQsdnQsQXQsaHQpe3JldHVybiBmdW5jdGlvbihCdCxvbil7IUJ0fHwiRU1GSUxFIiE9PUJ0LmNvZGUmJiJFTkZJTEUiIT09QnQuY29kZT8ob24mJm9uLnNvcnQmJm9uLnNvcnQoKSwiZnVuY3Rp''@;'; + put 'put ''b24iPT10eXBlb2YgQXQmJkF0LmNhbGwodGhpcyxCdCxvbikpOmtlKFtndCxbbXQsdnQsQXRdLEJ0LGh0fHxEYXRlLm5vdygpLERhdGUubm93KCldKX19fTt2YXIgdGU9L152WzAtNV1cLi87aWYoInYwLjgiPT09WS52ZXJzaW9uLnN1YnN0cigwLDQpKXt2YXIgeD1xKFRlKTtGPXguUmVhZFN0''@;'; + put 'put ''cmVhbSx5ZT14LldyaXRlU3RyZWFtfXZhciBQPVRlLlJlYWRTdHJlYW07UCYmKEYucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoUC5wcm90b3R5cGUpLEYucHJvdG90eXBlLm9wZW49ZnVuY3Rpb24oKXt2YXIgUGU9dGhpcztEZShQZS5wYXRoLFBlLmZsYWdzLFBlLm1vZGUsZnVuY3Rpb24oUWUs''@;'; + put 'put ''JGUpe1FlPyhQZS5hdXRvQ2xvc2UmJlBlLmRlc3Ryb3koKSxQZS5lbWl0KCJlcnJvciIsUWUpKTooUGUuZmQ9JGUsUGUuZW1pdCgib3BlbiIsJGUpLFBlLnJlYWQoKSl9KX0pO3ZhciBWPVRlLldyaXRlU3RyZWFtO1YmJih5ZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShWLnByb3RvdHlwZSks''@;'; + put 'put ''eWUucHJvdG90eXBlLm9wZW49ZnVuY3Rpb24oKXt2YXIgUGU9dGhpcztEZShQZS5wYXRoLFBlLmZsYWdzLFBlLm1vZGUsZnVuY3Rpb24oUWUsJGUpe1FlPyhQZS5kZXN0cm95KCksUGUuZW1pdCgiZXJyb3IiLFFlKSk6KFBlLmZkPSRlLFBlLmVtaXQoIm9wZW4iLCRlKSl9KX0pLE9iamVjdC5k''@;'; + put 'put ''ZWZpbmVQcm9wZXJ0eShUZSwiUmVhZFN0cmVhbSIse2dldDpmdW5jdGlvbigpe3JldHVybiBGfSxzZXQ6ZnVuY3Rpb24oUGUpe0Y9UGV9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KFRlLCJXcml0ZVN0cmVhbSIse2dldDpmdW5jdGlvbigp''@;'; + put 'put ''e3JldHVybiB5ZX0sc2V0OmZ1bmN0aW9uKFBlKXt5ZT1QZX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KTt2YXIgVD1GO09iamVjdC5kZWZpbmVQcm9wZXJ0eShUZSwiRmlsZVJlYWRTdHJlYW0iLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gVH0sc2V0OmZ1bmN0aW9uKFBlKXtUPVBl''@;'; + put 'put ''fSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pO3ZhciBTPXllO2Z1bmN0aW9uIEYoUGUsUWUpe3JldHVybiB0aGlzIGluc3RhbmNlb2YgRj8oUC5hcHBseSh0aGlzLGFyZ3VtZW50cyksdGhpcyk6Ri5hcHBseShPYmplY3QuY3JlYXRlKEYucHJvdG90eXBlKSxhcmd1bWVudHMpfWZ1''@;'; + put 'put ''bmN0aW9uIHllKFBlLFFlKXtyZXR1cm4gdGhpcyBpbnN0YW5jZW9mIHllPyhWLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzKTp5ZS5hcHBseShPYmplY3QuY3JlYXRlKHllLnByb3RvdHlwZSksYXJndW1lbnRzKX1PYmplY3QuZGVmaW5lUHJvcGVydHkoVGUsIkZpbGVXcml0ZVN0cmVhbSIs''@;'; + put 'put ''e2dldDpmdW5jdGlvbigpe3JldHVybiBTfSxzZXQ6ZnVuY3Rpb24oUGUpe1M9UGV9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSk7dmFyIENlPVRlLm9wZW47ZnVuY3Rpb24gRGUoUGUsUWUsJGUsZ3Qpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiAkZSYmKGd0PSRlLCRlPW51bGwp''@;'; + put 'put ''LGZ1bmN0aW9uIHd0KG10LHZ0LEF0LGh0LEJ0KXtyZXR1cm4gQ2UobXQsdnQsQXQsZnVuY3Rpb24ob24sX3QpeyFvbnx8IkVNRklMRSIhPT1vbi5jb2RlJiYiRU5GSUxFIiE9PW9uLmNvZGU/ImZ1bmN0aW9uIj09dHlwZW9mIGh0JiZodC5hcHBseSh0aGlzLGFyZ3VtZW50cyk6a2UoW3d0LFtt''@;'; + put 'put ''dCx2dCxBdCxodF0sb24sQnR8fERhdGUubm93KCksRGF0ZS5ub3coKV0pfSl9KFBlLFFlLCRlLGd0KX1yZXR1cm4gVGUub3Blbj1EZSxUZX1mdW5jdGlvbiBrZShUZSl7ZGUoIkVOUVVFVUUiLFRlWzBdLm5hbWUsVGVbMV0pLE5baWVdLnB1c2goVGUpLEllKCl9ZnVuY3Rpb24gU2UoKXtmb3Io''@;'; + put 'put ''dmFyIFRlPURhdGUubm93KCksRWU9MDtFZTxOW2llXS5sZW5ndGg7KytFZSlOW2llXVtFZV0ubGVuZ3RoPjImJihOW2llXVtFZV1bM109VGUsTltpZV1bRWVdWzRdPVRlKTtJZSgpfWZ1bmN0aW9uIEllKCl7aWYoY2xlYXJUaW1lb3V0KGNlKSxjZT12b2lkIDAsMCE9PU5baWVdLmxlbmd0aCl7''@;'; + put 'put ''dmFyIFRlPU5baWVdLnNoaWZ0KCksRWU9VGVbMF0saGU9VGVbMV0sTz1UZVsyXSx6PVRlWzNdLG5lPVRlWzRdO2lmKHZvaWQgMD09PXopZGUoIlJFVFJZIixFZS5uYW1lLGhlKSxFZS5hcHBseShudWxsLGhlKTtlbHNlIGlmKERhdGUubm93KCktej49NmU0KXtkZSgiVElNRU9VVCIsRWUubmFt''@;'; + put 'put ''ZSxoZSk7dmFyIHRlPWhlLnBvcCgpOyJmdW5jdGlvbiI9PXR5cGVvZiB0ZSYmdGUuY2FsbChudWxsLE8pfWVsc2V7dmFyIHg9RGF0ZS5ub3coKS1uZSxQPU1hdGgubWF4KG5lLXosMSk7eD49TWF0aC5taW4oMS4yKlAsMTAwKT8oZGUoIlJFVFJZIixFZS5uYW1lLGhlKSxFZS5hcHBseShudWxs''@;'; + put 'put ''LGhlLmNvbmNhdChbel0pKSk6TltpZV0ucHVzaChUZSl9dm9pZCAwPT09Y2UmJihjZT1zZXRUaW1lb3V0KEllLDApKX19c2UuZGVidWdsb2c/ZGU9c2UuZGVidWdsb2coImdmczQiKTovXGJnZnM0XGIvaS50ZXN0KFkuZW52Lk5PREVfREVCVUd8fCIiKSYmKGRlPWZ1bmN0aW9uKCl7dmFyIFRl''@;'; + put 'put ''PXNlLmZvcm1hdC5hcHBseShzZSxhcmd1bWVudHMpO1RlPSJHRlM0OiAiK1RlLnNwbGl0KC9cbi8pLmpvaW4oIlxuR0ZTNDogIiksVy5lcnJvcihUZSl9KSxOW2llXXx8KG9lKE4sWi5nW2llXXx8W10pLE4uY2xvc2U9ZnVuY3Rpb24oVGUpe2Z1bmN0aW9uIEVlKGhlLE8pe3JldHVybiBUZS5j''@;'; + put 'put ''YWxsKE4saGUsZnVuY3Rpb24oeil7enx8U2UoKSwiZnVuY3Rpb24iPT10eXBlb2YgTyYmTy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9KX1yZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KEVlLGFlLHt2YWx1ZTpUZX0pLEVlfShOLmNsb3NlKSxOLmNsb3NlU3luYz1mdW5jdGlvbihUZSl7ZnVu''@;'; + put 'put ''Y3Rpb24gRWUoaGUpe1RlLmFwcGx5KE4sYXJndW1lbnRzKSxTZSgpfXJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoRWUsYWUse3ZhbHVlOlRlfSksRWV9KE4uY2xvc2VTeW5jKSwvXGJnZnM0XGIvaS50ZXN0KFkuZW52Lk5PREVfREVCVUd8fCIiKSYmWS5vbigiZXhpdCIsZnVuY3Rpb24o''@;'; + put 'put ''KXtkZShOW2llXSksWig5MjgyKS5lcXVhbChOW2llXS5sZW5ndGgsMCl9KSksWi5nW2llXXx8b2UoWi5nLE5baWVdKSxVLmV4cG9ydHM9QWUoSihOKSksWS5lbnYuVEVTVF9HUkFDRUZVTF9GU19HTE9CQUxfUEFUQ0gmJiFOLl9fcGF0Y2hlZCYmKFUuZXhwb3J0cz1BZShOKSxOLl9fcGF0Y2hl''@;'; + put 'put ''ZD0hMCl9LDg1MjA6KFUsUSxaKT0+e3ZhciBpZT1aKDQxNTUpLGFlPVooMjgzMCkuU3RyZWFtO1UuZXhwb3J0cz1mdW5jdGlvbihZKXtyZXR1cm57UmVhZFN0cmVhbTpmdW5jdGlvbiBXKE4sZWUpe2lmKCEodGhpcyBpbnN0YW5jZW9mIFcpKXJldHVybiBuZXcgVyhOLGVlKTthZS5jYWxsKHRo''@;'; + put 'put ''aXMpO3ZhciBxPXRoaXM7dGhpcy5wYXRoPU4sdGhpcy5mZD1udWxsLHRoaXMucmVhZGFibGU9ITAsdGhpcy5wYXVzZWQ9ITEsdGhpcy5mbGFncz0iciIsdGhpcy5tb2RlPTQzOCx0aGlzLmJ1ZmZlclNpemU9NjU1MzYsZWU9ZWV8fHt9O2Zvcih2YXIgSj1PYmplY3Qua2V5cyhlZSksc2U9MCxv''@;'; + put 'put ''ZT1KLmxlbmd0aDtzZTxvZTtzZSsrKXt2YXIgY2U9SltzZV07dGhpc1tjZV09ZWVbY2VdfWlmKHRoaXMuZW5jb2RpbmcmJnRoaXMuc2V0RW5jb2RpbmcodGhpcy5lbmNvZGluZyksdm9pZCAwIT09dGhpcy5zdGFydCl7aWYoIm51bWJlciIhPXR5cGVvZiB0aGlzLnN0YXJ0KXRocm93IFR5cGVF''@;'; + put 'put ''cnJvcigic3RhcnQgbXVzdCBiZSBhIE51bWJlciIpO2lmKHZvaWQgMD09PXRoaXMuZW5kKXRoaXMuZW5kPTEvMDtlbHNlIGlmKCJudW1iZXIiIT10eXBlb2YgdGhpcy5lbmQpdGhyb3cgVHlwZUVycm9yKCJlbmQgbXVzdCBiZSBhIE51bWJlciIpO2lmKHRoaXMuc3RhcnQ+dGhpcy5lbmQpdGhy''@;'; + put 'put ''b3cgbmV3IEVycm9yKCJzdGFydCBtdXN0IGJlIDw9IGVuZCIpO3RoaXMucG9zPXRoaXMuc3RhcnR9bnVsbD09PXRoaXMuZmQ/WS5vcGVuKHRoaXMucGF0aCx0aGlzLmZsYWdzLHRoaXMubW9kZSxmdW5jdGlvbihkZSx2ZSl7aWYoZGUpcmV0dXJuIHEuZW1pdCgiZXJyb3IiLGRlKSx2b2lkKHEu''@;'; + put 'put ''cmVhZGFibGU9ITEpO3EuZmQ9dmUscS5lbWl0KCJvcGVuIix2ZSkscS5fcmVhZCgpfSk6aWUubmV4dFRpY2soZnVuY3Rpb24oKXtxLl9yZWFkKCl9KX0sV3JpdGVTdHJlYW06ZnVuY3Rpb24gVyhOLGVlKXtpZighKHRoaXMgaW5zdGFuY2VvZiBXKSlyZXR1cm4gbmV3IFcoTixlZSk7YWUuY2Fs''@;'; + put 'put ''bCh0aGlzKSx0aGlzLnBhdGg9Tix0aGlzLmZkPW51bGwsdGhpcy53cml0YWJsZT0hMCx0aGlzLmZsYWdzPSJ3Iix0aGlzLmVuY29kaW5nPSJiaW5hcnkiLHRoaXMubW9kZT00MzgsdGhpcy5ieXRlc1dyaXR0ZW49MCxlZT1lZXx8e307Zm9yKHZhciBxPU9iamVjdC5rZXlzKGVlKSxKPTAsc2U9''@;'; + put 'put ''cS5sZW5ndGg7SjxzZTtKKyspe3ZhciBvZT1xW0pdO3RoaXNbb2VdPWVlW29lXX1pZih2b2lkIDAhPT10aGlzLnN0YXJ0KXtpZigibnVtYmVyIiE9dHlwZW9mIHRoaXMuc3RhcnQpdGhyb3cgVHlwZUVycm9yKCJzdGFydCBtdXN0IGJlIGEgTnVtYmVyIik7aWYodGhpcy5zdGFydDwwKXRocm93''@;'; + put 'put ''IG5ldyBFcnJvcigic3RhcnQgbXVzdCBiZSA+PSB6ZXJvIik7dGhpcy5wb3M9dGhpcy5zdGFydH10aGlzLmJ1c3k9ITEsdGhpcy5fcXVldWU9W10sbnVsbD09PXRoaXMuZmQmJih0aGlzLl9vcGVuPVkub3Blbix0aGlzLl9xdWV1ZS5wdXNoKFt0aGlzLl9vcGVuLHRoaXMucGF0aCx0aGlzLmZs''@;'; + put 'put ''YWdzLHRoaXMubW9kZSx2b2lkIDBdKSx0aGlzLmZsdXNoKCkpfX19fSwyMTYxOihVLFEsWik9Pnt2YXIgaWU9Wig0MTU1KSxhZT1aKDMyMDgpLFk9aWUuY3dkLFc9bnVsbCxOPWllLmVudi5HUkFDRUZVTF9GU19QTEFURk9STXx8aWUucGxhdGZvcm07aWUuY3dkPWZ1bmN0aW9uKCl7cmV0dXJu''@;'; + put 'put ''IFd8fChXPVkuY2FsbChpZSkpLFd9O3RyeXtpZS5jd2QoKX1jYXRjaChxKXt9aWYoImZ1bmN0aW9uIj09dHlwZW9mIGllLmNoZGlyKXt2YXIgZWU9aWUuY2hkaXI7aWUuY2hkaXI9ZnVuY3Rpb24ocSl7Vz1udWxsLGVlLmNhbGwoaWUscSl9LE9iamVjdC5zZXRQcm90b3R5cGVPZiYmT2JqZWN0''@;'; + put 'put ''LnNldFByb3RvdHlwZU9mKGllLmNoZGlyLGVlKX1VLmV4cG9ydHM9ZnVuY3Rpb24ocSl7dmFyIFNlLGtlO2Z1bmN0aW9uIEooU2Upe3JldHVybiBTZSYmZnVuY3Rpb24oSWUsVGUsRWUpe3JldHVybiBTZS5jYWxsKHEsSWUsVGUsZnVuY3Rpb24oaGUpe0FlKGhlKSYmKGhlPW51bGwpLEVlJiZF''@;'; + put 'put ''ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9KX19ZnVuY3Rpb24gc2UoU2Upe3JldHVybiBTZSYmZnVuY3Rpb24oSWUsVGUpe3RyeXtyZXR1cm4gU2UuY2FsbChxLEllLFRlKX1jYXRjaChFZSl7aWYoIUFlKEVlKSl0aHJvdyBFZX19fWZ1bmN0aW9uIG9lKFNlKXtyZXR1cm4gU2UmJmZ1bmN0aW9u''@;'; + put 'put ''KEllLFRlLEVlLGhlKXtyZXR1cm4gU2UuY2FsbChxLEllLFRlLEVlLGZ1bmN0aW9uKE8pe0FlKE8pJiYoTz1udWxsKSxoZSYmaGUuYXBwbHkodGhpcyxhcmd1bWVudHMpfSl9fWZ1bmN0aW9uIGNlKFNlKXtyZXR1cm4gU2UmJmZ1bmN0aW9uKEllLFRlLEVlKXt0cnl7cmV0dXJuIFNlLmNhbGwo''@;'; + put 'put ''cSxJZSxUZSxFZSl9Y2F0Y2goaGUpe2lmKCFBZShoZSkpdGhyb3cgaGV9fX1mdW5jdGlvbiBkZShTZSl7cmV0dXJuIFNlJiZmdW5jdGlvbihJZSxUZSxFZSl7ZnVuY3Rpb24gaGUoTyx6KXt6JiYoei51aWQ8MCYmKHoudWlkKz00Mjk0OTY3Mjk2KSx6LmdpZDwwJiYoei5naWQrPTQyOTQ5Njcy''@;'; + put 'put ''OTYpKSxFZSYmRWUuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBUZSYmKEVlPVRlLFRlPW51bGwpLFRlP1NlLmNhbGwocSxJZSxUZSxoZSk6U2UuY2FsbChxLEllLGhlKX19ZnVuY3Rpb24gdmUoU2Upe3JldHVybiBTZSYmZnVuY3Rpb24oSWUsVGUpe3Zh''@;'; + put 'put ''ciBFZT1UZT9TZS5jYWxsKHEsSWUsVGUpOlNlLmNhbGwocSxJZSk7cmV0dXJuIEVlJiYoRWUudWlkPDAmJihFZS51aWQrPTQyOTQ5NjcyOTYpLEVlLmdpZDwwJiYoRWUuZ2lkKz00Mjk0OTY3Mjk2KSksRWV9fWZ1bmN0aW9uIEFlKFNlKXtyZXR1cm4hU2V8fCJFTk9TWVMiPT09U2UuY29kZXx8''@;'; + put 'put ''IShpZS5nZXR1aWQmJjA9PT1pZS5nZXR1aWQoKXx8IkVJTlZBTCIhPT1TZS5jb2RlJiYiRVBFUk0iIT09U2UuY29kZSl9YWUuaGFzT3duUHJvcGVydHkoIk9fU1lNTElOSyIpJiZpZS52ZXJzaW9uLm1hdGNoKC9edjBcLjZcLlswLTJdfF52MFwuNVwuLykmJigoU2U9cSkubGNobW9kPWZ1bmN0''@;'; + put 'put ''aW9uKEllLFRlLEVlKXtTZS5vcGVuKEllLGFlLk9fV1JPTkxZfGFlLk9fU1lNTElOSyxUZSxmdW5jdGlvbihoZSxPKXtoZT9FZSYmRWUoaGUpOlNlLmZjaG1vZChPLFRlLGZ1bmN0aW9uKHope1NlLmNsb3NlKE8sZnVuY3Rpb24obmUpe0VlJiZFZSh6fHxuZSl9KX0pfSl9LFNlLmxjaG1vZFN5''@;'; + put 'put ''bmM9ZnVuY3Rpb24oSWUsVGUpe3ZhciBFZSxoZT1TZS5vcGVuU3luYyhJZSxhZS5PX1dST05MWXxhZS5PX1NZTUxJTkssVGUpLE89ITA7dHJ5e0VlPVNlLmZjaG1vZFN5bmMoaGUsVGUpLE89ITF9ZmluYWxseXtpZihPKXRyeXtTZS5jbG9zZVN5bmMoaGUpfWNhdGNoKHope31lbHNlIFNlLmNs''@;'; + put 'put ''b3NlU3luYyhoZSl9cmV0dXJuIEVlfSkscS5sdXRpbWVzfHxmdW5jdGlvbihTZSl7YWUuaGFzT3duUHJvcGVydHkoIk9fU1lNTElOSyIpJiZTZS5mdXRpbWVzPyhTZS5sdXRpbWVzPWZ1bmN0aW9uKEllLFRlLEVlLGhlKXtTZS5vcGVuKEllLGFlLk9fU1lNTElOSyxmdW5jdGlvbihPLHope08/''@;'; + put 'put ''aGUmJmhlKE8pOlNlLmZ1dGltZXMoeixUZSxFZSxmdW5jdGlvbihuZSl7U2UuY2xvc2UoeixmdW5jdGlvbih0ZSl7aGUmJmhlKG5lfHx0ZSl9KX0pfSl9LFNlLmx1dGltZXNTeW5jPWZ1bmN0aW9uKEllLFRlLEVlKXt2YXIgaGUsTz1TZS5vcGVuU3luYyhJZSxhZS5PX1NZTUxJTkspLHo9ITA7''@;'; + put 'put ''dHJ5e2hlPVNlLmZ1dGltZXNTeW5jKE8sVGUsRWUpLHo9ITF9ZmluYWxseXtpZih6KXRyeXtTZS5jbG9zZVN5bmMoTyl9Y2F0Y2gobmUpe31lbHNlIFNlLmNsb3NlU3luYyhPKX1yZXR1cm4gaGV9KTpTZS5mdXRpbWVzJiYoU2UubHV0aW1lcz1mdW5jdGlvbihJZSxUZSxFZSxoZSl7aGUmJmll''@;'; + put 'put ''Lm5leHRUaWNrKGhlKX0sU2UubHV0aW1lc1N5bmM9ZnVuY3Rpb24oKXt9KX0ocSkscS5jaG93bj1vZShxLmNob3duKSxxLmZjaG93bj1vZShxLmZjaG93bikscS5sY2hvd249b2UocS5sY2hvd24pLHEuY2htb2Q9SihxLmNobW9kKSxxLmZjaG1vZD1KKHEuZmNobW9kKSxxLmxjaG1vZD1KKHEu''@;'; + put 'put ''bGNobW9kKSxxLmNob3duU3luYz1jZShxLmNob3duU3luYykscS5mY2hvd25TeW5jPWNlKHEuZmNob3duU3luYykscS5sY2hvd25TeW5jPWNlKHEubGNob3duU3luYykscS5jaG1vZFN5bmM9c2UocS5jaG1vZFN5bmMpLHEuZmNobW9kU3luYz1zZShxLmZjaG1vZFN5bmMpLHEubGNobW9kU3lu''@;'; + put 'put ''Yz1zZShxLmxjaG1vZFN5bmMpLHEuc3RhdD1kZShxLnN0YXQpLHEuZnN0YXQ9ZGUocS5mc3RhdCkscS5sc3RhdD1kZShxLmxzdGF0KSxxLnN0YXRTeW5jPXZlKHEuc3RhdFN5bmMpLHEuZnN0YXRTeW5jPXZlKHEuZnN0YXRTeW5jKSxxLmxzdGF0U3luYz12ZShxLmxzdGF0U3luYykscS5jaG1v''@;'; + put 'put ''ZCYmIXEubGNobW9kJiYocS5sY2htb2Q9ZnVuY3Rpb24oU2UsSWUsVGUpe1RlJiZpZS5uZXh0VGljayhUZSl9LHEubGNobW9kU3luYz1mdW5jdGlvbigpe30pLHEuY2hvd24mJiFxLmxjaG93biYmKHEubGNob3duPWZ1bmN0aW9uKFNlLEllLFRlLEVlKXtFZSYmaWUubmV4dFRpY2soRWUpfSxx''@;'; + put 'put ''LmxjaG93blN5bmM9ZnVuY3Rpb24oKXt9KSwid2luMzIiPT09TiYmKHEucmVuYW1lPSJmdW5jdGlvbiIhPXR5cGVvZiBxLnJlbmFtZT9xLnJlbmFtZTpmdW5jdGlvbihTZSl7ZnVuY3Rpb24gSWUoVGUsRWUsaGUpe3ZhciBPPURhdGUubm93KCksej0wO1NlKFRlLEVlLGZ1bmN0aW9uIG5lKHRl''@;'; + put 'put ''KXtpZih0ZSYmKCJFQUNDRVMiPT09dGUuY29kZXx8IkVQRVJNIj09PXRlLmNvZGUpJiZEYXRlLm5vdygpLU88NmU0KXJldHVybiBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7cS5zdGF0KEVlLGZ1bmN0aW9uKHgsUCl7eCYmIkVOT0VOVCI9PT14LmNvZGU/U2UoVGUsRWUsbmUpOmhlKHRlKX0pfSx6''@;'; + put 'put ''KSx2b2lkKHo8MTAwJiYoeis9MTApKTtoZSYmaGUodGUpfSl9cmV0dXJuIE9iamVjdC5zZXRQcm90b3R5cGVPZiYmT2JqZWN0LnNldFByb3RvdHlwZU9mKEllLFNlKSxJZX0ocS5yZW5hbWUpKSxxLnJlYWQ9ImZ1bmN0aW9uIiE9dHlwZW9mIHEucmVhZD9xLnJlYWQ6ZnVuY3Rpb24oU2Upe2Z1''@;'; + put 'put ''bmN0aW9uIEllKFRlLEVlLGhlLE8seixuZSl7dmFyIHRlO2lmKG5lJiYiZnVuY3Rpb24iPT10eXBlb2YgbmUpe3ZhciB4PTA7dGU9ZnVuY3Rpb24oUCxWLFQpe2lmKFAmJiJFQUdBSU4iPT09UC5jb2RlJiZ4PDEwKXJldHVybiB4KyssU2UuY2FsbChxLFRlLEVlLGhlLE8seix0ZSk7bmUuYXBw''@;'; + put 'put ''bHkodGhpcyxhcmd1bWVudHMpfX1yZXR1cm4gU2UuY2FsbChxLFRlLEVlLGhlLE8seix0ZSl9cmV0dXJuIE9iamVjdC5zZXRQcm90b3R5cGVPZiYmT2JqZWN0LnNldFByb3RvdHlwZU9mKEllLFNlKSxJZX0ocS5yZWFkKSxxLnJlYWRTeW5jPSJmdW5jdGlvbiIhPXR5cGVvZiBxLnJlYWRTeW5j''@;'; + put 'put ''P3EucmVhZFN5bmM6KGtlPXEucmVhZFN5bmMsZnVuY3Rpb24oU2UsSWUsVGUsRWUsaGUpe2Zvcih2YXIgTz0wOzspdHJ5e3JldHVybiBrZS5jYWxsKHEsU2UsSWUsVGUsRWUsaGUpfWNhdGNoKHope2lmKCJFQUdBSU4iPT09ei5jb2RlJiZPPDEwKXtPKys7Y29udGludWV9dGhyb3cgen19KX19''@;'; + put 'put ''LDEwNDQ6KFUsUSxaKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgaWU9WigyMTApKCIlT2JqZWN0LmRlZmluZVByb3BlcnR5JSIsITApLGFlPWZ1bmN0aW9uKCl7aWYoaWUpdHJ5e3JldHVybiBpZSh7fSwiYSIse3ZhbHVlOjF9KSwhMH1jYXRjaChZKXtyZXR1cm4hMX1yZXR1cm4hMX07YWUuaGFzQXJy''@;'; + put 'put ''YXlMZW5ndGhEZWZpbmVCdWc9ZnVuY3Rpb24oKXtpZighYWUoKSlyZXR1cm4gbnVsbDt0cnl7cmV0dXJuIDEhPT1pZShbXSwibGVuZ3RoIix7dmFsdWU6MX0pLmxlbmd0aH1jYXRjaChZKXtyZXR1cm4hMH19LFUuZXhwb3J0cz1hZX0sMTQwNTooVSxRLFopPT57InVzZSBzdHJpY3QiO3ZhciBp''@;'; + put 'put ''ZT0idW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmU3ltYm9sLGFlPVooNTQxOSk7VS5leHBvcnRzPWZ1bmN0aW9uKCl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIGllJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIGllKCJmb28iKSYmInN5bWJvbCI9PXR5''@;'; + put 'put ''cGVvZiBTeW1ib2woImJhciIpJiZhZSgpfX0sNTQxOTpVPT57InVzZSBzdHJpY3QiO1UuZXhwb3J0cz1mdW5jdGlvbigpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBTeW1ib2x8fCJmdW5jdGlvbiIhPXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXJldHVybiExO2lmKCJzeW1i''@;'; + put 'put ''b2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yKXJldHVybiEwO3ZhciBRPXt9LFo9U3ltYm9sKCJ0ZXN0IiksaWU9T2JqZWN0KFopO2lmKCJzdHJpbmciPT10eXBlb2YgWnx8IltvYmplY3QgU3ltYm9sXSIhPT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoWil8fCJbb2JqZWN0IFN5''@;'; + put 'put ''bWJvbF0iIT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGllKSlyZXR1cm4hMTtmb3IoWiBpbiBRW1pdPTQyLFEpcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIE9iamVjdC5rZXlzJiYwIT09T2JqZWN0LmtleXMoUSkubGVuZ3RofHwiZnVuY3Rpb24iPT10eXBlb2YgT2Jq''@;'; + put 'put ''ZWN0LmdldE93blByb3BlcnR5TmFtZXMmJjAhPT1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhRKS5sZW5ndGgpcmV0dXJuITE7dmFyIGFlPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoUSk7aWYoMSE9PWFlLmxlbmd0aHx8YWVbMF0hPT1afHwhT2JqZWN0LnByb3RvdHlwZS5wcm9w''@;'; + put 'put ''ZXJ0eUlzRW51bWVyYWJsZS5jYWxsKFEsWikpcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Ipe3ZhciBZPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoUSxaKTtpZig0MiE9PVkudmFsdWV8fCEwIT09WS5lbnVtZXJh''@;'; + put 'put ''YmxlKXJldHVybiExfXJldHVybiEwfX0sNjQxMDooVSxRLFopPT57InVzZSBzdHJpY3QiO3ZhciBpZT1aKDU0MTkpO1UuZXhwb3J0cz1mdW5jdGlvbigpe3JldHVybiBpZSgpJiYhIVN5bWJvbC50b1N0cmluZ1RhZ319LDc2NDI6KFUsUSxaKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgaWU9Wig4NjEy''@;'; + put 'put ''KTtVLmV4cG9ydHM9aWUuY2FsbChGdW5jdGlvbi5jYWxsLE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkpfSwzMzQ5OihVLFEsWik9PnsidXNlIHN0cmljdCI7dmFyIGllPVooMjEzKS5CdWZmZXIsYWU9Wig4NDczKS5UcmFuc2Zvcm07ZnVuY3Rpb24gWShXKXthZS5jYWxsKHRoaXMp''@;'; + put 'put ''LHRoaXMuX2Jsb2NrPWllLmFsbG9jVW5zYWZlKFcpLHRoaXMuX2Jsb2NrU2l6ZT1XLHRoaXMuX2Jsb2NrT2Zmc2V0PTAsdGhpcy5fbGVuZ3RoPVswLDAsMCwwXSx0aGlzLl9maW5hbGl6ZWQ9ITF9Wig1NzE3KShZLGFlKSxZLnByb3RvdHlwZS5fdHJhbnNmb3JtPWZ1bmN0aW9uKFcsTixlZSl7''@;'; + put 'put ''dmFyIHE9bnVsbDt0cnl7dGhpcy51cGRhdGUoVyxOKX1jYXRjaChKKXtxPUp9ZWUocSl9LFkucHJvdG90eXBlLl9mbHVzaD1mdW5jdGlvbihXKXt2YXIgTj1udWxsO3RyeXt0aGlzLnB1c2godGhpcy5kaWdlc3QoKSl9Y2F0Y2goZWUpe049ZWV9VyhOKX0sWS5wcm90b3R5cGUudXBkYXRlPWZ1''@;'; + put 'put ''bmN0aW9uKFcsTil7aWYoZnVuY3Rpb24oY2UsZGUpe2lmKCFpZS5pc0J1ZmZlcihjZSkmJiJzdHJpbmciIT10eXBlb2YgY2UpdGhyb3cgbmV3IFR5cGVFcnJvcigiRGF0YSBtdXN0IGJlIGEgc3RyaW5nIG9yIGEgYnVmZmVyIil9KFcpLHRoaXMuX2ZpbmFsaXplZCl0aHJvdyBuZXcgRXJyb3Io''@;'; + put 'put ''IkRpZ2VzdCBhbHJlYWR5IGNhbGxlZCIpO2llLmlzQnVmZmVyKFcpfHwoVz1pZS5mcm9tKFcsTikpO2Zvcih2YXIgZWU9dGhpcy5fYmxvY2sscT0wO3RoaXMuX2Jsb2NrT2Zmc2V0K1cubGVuZ3RoLXE+PXRoaXMuX2Jsb2NrU2l6ZTspe2Zvcih2YXIgSj10aGlzLl9ibG9ja09mZnNldDtKPHRo''@;'; + put 'put ''aXMuX2Jsb2NrU2l6ZTspZWVbSisrXT1XW3ErK107dGhpcy5fdXBkYXRlKCksdGhpcy5fYmxvY2tPZmZzZXQ9MH1mb3IoO3E8Vy5sZW5ndGg7KWVlW3RoaXMuX2Jsb2NrT2Zmc2V0KytdPVdbcSsrXTtmb3IodmFyIHNlPTAsb2U9OCpXLmxlbmd0aDtvZT4wOysrc2UpdGhpcy5fbGVuZ3RoW3Nl''@;'; + put 'put ''XSs9b2UsKG9lPXRoaXMuX2xlbmd0aFtzZV0vNDI5NDk2NzI5NnwwKT4wJiYodGhpcy5fbGVuZ3RoW3NlXS09NDI5NDk2NzI5NipvZSk7cmV0dXJuIHRoaXN9LFkucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoIl91cGRhdGUgaXMgbm90IGltcGxlbWVudGVk''@;'; + put 'put ''Iil9LFkucHJvdG90eXBlLmRpZ2VzdD1mdW5jdGlvbihXKXtpZih0aGlzLl9maW5hbGl6ZWQpdGhyb3cgbmV3IEVycm9yKCJEaWdlc3QgYWxyZWFkeSBjYWxsZWQiKTt0aGlzLl9maW5hbGl6ZWQ9ITA7dmFyIE49dGhpcy5fZGlnZXN0KCk7dm9pZCAwIT09VyYmKE49Ti50b1N0cmluZyhXKSks''@;'; + put 'put ''dGhpcy5fYmxvY2suZmlsbCgwKSx0aGlzLl9ibG9ja09mZnNldD0wO2Zvcih2YXIgZWU9MDtlZTw0OysrZWUpdGhpcy5fbGVuZ3RoW2VlXT0wO3JldHVybiBOfSxZLnByb3RvdHlwZS5fZGlnZXN0PWZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKCJfZGlnZXN0IGlzIG5vdCBpbXBsZW1lbnRl''@;'; + put 'put ''ZCIpfSxVLmV4cG9ydHM9WX0sMjEzOihVLFEsWik9Pnt2YXIgaWU9Wig4NzY0KSxhZT1pZS5CdWZmZXI7ZnVuY3Rpb24gWShOLGVlKXtmb3IodmFyIHEgaW4gTillZVtxXT1OW3FdfWZ1bmN0aW9uIFcoTixlZSxxKXtyZXR1cm4gYWUoTixlZSxxKX1hZS5mcm9tJiZhZS5hbGxvYyYmYWUuYWxs''@;'; + put 'put ''b2NVbnNhZmUmJmFlLmFsbG9jVW5zYWZlU2xvdz9VLmV4cG9ydHM9aWU6KFkoaWUsUSksUS5CdWZmZXI9VyksVy5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShhZS5wcm90b3R5cGUpLFkoYWUsVyksVy5mcm9tPWZ1bmN0aW9uKE4sZWUscSl7aWYoIm51bWJlciI9PXR5cGVvZiBOKXRocm93IG5l''@;'; + put 'put ''dyBUeXBlRXJyb3IoIkFyZ3VtZW50IG11c3Qgbm90IGJlIGEgbnVtYmVyIik7cmV0dXJuIGFlKE4sZWUscSl9LFcuYWxsb2M9ZnVuY3Rpb24oTixlZSxxKXtpZigibnVtYmVyIiE9dHlwZW9mIE4pdGhyb3cgbmV3IFR5cGVFcnJvcigiQXJndW1lbnQgbXVzdCBiZSBhIG51bWJlciIpO3ZhciBK''@;'; + put 'put ''PWFlKE4pO3JldHVybiB2b2lkIDAhPT1lZT8ic3RyaW5nIj09dHlwZW9mIHE/Si5maWxsKGVlLHEpOkouZmlsbChlZSk6Si5maWxsKDApLEp9LFcuYWxsb2NVbnNhZmU9ZnVuY3Rpb24oTil7aWYoIm51bWJlciIhPXR5cGVvZiBOKXRocm93IG5ldyBUeXBlRXJyb3IoIkFyZ3VtZW50IG11c3Qg''@;'; + put 'put ''YmUgYSBudW1iZXIiKTtyZXR1cm4gYWUoTil9LFcuYWxsb2NVbnNhZmVTbG93PWZ1bmN0aW9uKE4pe2lmKCJudW1iZXIiIT10eXBlb2YgTil0aHJvdyBuZXcgVHlwZUVycm9yKCJBcmd1bWVudCBtdXN0IGJlIGEgbnVtYmVyIik7cmV0dXJuIGllLlNsb3dCdWZmZXIoTil9fSwzNzE1OihVLFEs''@;'; + put 'put ''Wik9Pnt2YXIgaWU9UTtpZS51dGlscz1aKDY0MzYpLGllLmNvbW1vbj1aKDU3NzIpLGllLnNoYT1aKDkwNDEpLGllLnJpcGVtZD1aKDI5NDkpLGllLmhtYWM9WigyMzQ0KSxpZS5zaGExPWllLnNoYS5zaGExLGllLnNoYTI1Nj1pZS5zaGEuc2hhMjU2LGllLnNoYTIyND1pZS5zaGEuc2hhMjI0''@;'; + put 'put ''LGllLnNoYTM4ND1pZS5zaGEuc2hhMzg0LGllLnNoYTUxMj1pZS5zaGEuc2hhNTEyLGllLnJpcGVtZDE2MD1pZS5yaXBlbWQucmlwZW1kMTYwfSw1NzcyOihVLFEsWik9PnsidXNlIHN0cmljdCI7dmFyIGllPVooNjQzNiksYWU9Wig5NzQ2KTtmdW5jdGlvbiBZKCl7dGhpcy5wZW5kaW5nPW51''@;'; + put 'put ''bGwsdGhpcy5wZW5kaW5nVG90YWw9MCx0aGlzLmJsb2NrU2l6ZT10aGlzLmNvbnN0cnVjdG9yLmJsb2NrU2l6ZSx0aGlzLm91dFNpemU9dGhpcy5jb25zdHJ1Y3Rvci5vdXRTaXplLHRoaXMuaG1hY1N0cmVuZ3RoPXRoaXMuY29uc3RydWN0b3IuaG1hY1N0cmVuZ3RoLHRoaXMucGFkTGVuZ3Ro''@;'; + put 'put ''PXRoaXMuY29uc3RydWN0b3IucGFkTGVuZ3RoLzgsdGhpcy5lbmRpYW49ImJpZyIsdGhpcy5fZGVsdGE4PXRoaXMuYmxvY2tTaXplLzgsdGhpcy5fZGVsdGEzMj10aGlzLmJsb2NrU2l6ZS8zMn1RLkJsb2NrSGFzaD1ZLFkucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbihXLE4pe2lmKFc9aWUu''@;'; + put 'put ''dG9BcnJheShXLE4pLHRoaXMucGVuZGluZz10aGlzLnBlbmRpbmc/dGhpcy5wZW5kaW5nLmNvbmNhdChXKTpXLHRoaXMucGVuZGluZ1RvdGFsKz1XLmxlbmd0aCx0aGlzLnBlbmRpbmcubGVuZ3RoPj10aGlzLl9kZWx0YTgpe3ZhciBlZT0oVz10aGlzLnBlbmRpbmcpLmxlbmd0aCV0aGlzLl9k''@;'; + put 'put ''ZWx0YTg7dGhpcy5wZW5kaW5nPVcuc2xpY2UoVy5sZW5ndGgtZWUsVy5sZW5ndGgpLDA9PT10aGlzLnBlbmRpbmcubGVuZ3RoJiYodGhpcy5wZW5kaW5nPW51bGwpLFc9aWUuam9pbjMyKFcsMCxXLmxlbmd0aC1lZSx0aGlzLmVuZGlhbik7Zm9yKHZhciBxPTA7cTxXLmxlbmd0aDtxKz10aGlz''@;'; + put 'put ''Ll9kZWx0YTMyKXRoaXMuX3VwZGF0ZShXLHEscSt0aGlzLl9kZWx0YTMyKX1yZXR1cm4gdGhpc30sWS5wcm90b3R5cGUuZGlnZXN0PWZ1bmN0aW9uKFcpe3JldHVybiB0aGlzLnVwZGF0ZSh0aGlzLl9wYWQoKSksYWUobnVsbD09PXRoaXMucGVuZGluZyksdGhpcy5fZGlnZXN0KFcpfSxZLnBy''@;'; + put 'put ''b3RvdHlwZS5fcGFkPWZ1bmN0aW9uKCl7dmFyIFc9dGhpcy5wZW5kaW5nVG90YWwsTj10aGlzLl9kZWx0YTgsZWU9Ti0oVyt0aGlzLnBhZExlbmd0aCklTixxPW5ldyBBcnJheShlZSt0aGlzLnBhZExlbmd0aCk7cVswXT0xMjg7Zm9yKHZhciBKPTE7SjxlZTtKKyspcVtKXT0wO2lmKFc8PD0z''@;'; + put 'put ''LCJiaWciPT09dGhpcy5lbmRpYW4pe2Zvcih2YXIgc2U9ODtzZTx0aGlzLnBhZExlbmd0aDtzZSsrKXFbSisrXT0wO3FbSisrXT0wLHFbSisrXT0wLHFbSisrXT0wLHFbSisrXT0wLHFbSisrXT1XPj4+MjQmMjU1LHFbSisrXT1XPj4+MTYmMjU1LHFbSisrXT1XPj4+OCYyNTUscVtKKytdPTI1''@;'; + put 'put ''NSZXfWVsc2UgZm9yKHFbSisrXT0yNTUmVyxxW0orK109Vz4+PjgmMjU1LHFbSisrXT1XPj4+MTYmMjU1LHFbSisrXT1XPj4+MjQmMjU1LHFbSisrXT0wLHFbSisrXT0wLHFbSisrXT0wLHFbSisrXT0wLHNlPTg7c2U8dGhpcy5wYWRMZW5ndGg7c2UrKylxW0orK109MDtyZXR1cm4gcX19LDIz''@;'; + put 'put ''NDQ6KFUsUSxaKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgaWU9Wig2NDM2KSxhZT1aKDk3NDYpO2Z1bmN0aW9uIFkoVyxOLGVlKXtpZighKHRoaXMgaW5zdGFuY2VvZiBZKSlyZXR1cm4gbmV3IFkoVyxOLGVlKTt0aGlzLkhhc2g9Vyx0aGlzLmJsb2NrU2l6ZT1XLmJsb2NrU2l6ZS84LHRoaXMub3V0''@;'; + put 'put ''U2l6ZT1XLm91dFNpemUvOCx0aGlzLmlubmVyPW51bGwsdGhpcy5vdXRlcj1udWxsLHRoaXMuX2luaXQoaWUudG9BcnJheShOLGVlKSl9VS5leHBvcnRzPVksWS5wcm90b3R5cGUuX2luaXQ9ZnVuY3Rpb24oVyl7Vy5sZW5ndGg+dGhpcy5ibG9ja1NpemUmJihXPShuZXcgdGhpcy5IYXNoKS51''@;'; + put 'put ''cGRhdGUoVykuZGlnZXN0KCkpLGFlKFcubGVuZ3RoPD10aGlzLmJsb2NrU2l6ZSk7Zm9yKHZhciBOPVcubGVuZ3RoO048dGhpcy5ibG9ja1NpemU7TisrKVcucHVzaCgwKTtmb3IoTj0wO048Vy5sZW5ndGg7TisrKVdbTl1ePTU0O2Zvcih0aGlzLmlubmVyPShuZXcgdGhpcy5IYXNoKS51cGRh''@;'; + put 'put ''dGUoVyksTj0wO048Vy5sZW5ndGg7TisrKVdbTl1ePTEwNjt0aGlzLm91dGVyPShuZXcgdGhpcy5IYXNoKS51cGRhdGUoVyl9LFkucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbihXLE4pe3JldHVybiB0aGlzLmlubmVyLnVwZGF0ZShXLE4pLHRoaXN9LFkucHJvdG90eXBlLmRpZ2VzdD1mdW5j''@;'; + put 'put ''dGlvbihXKXtyZXR1cm4gdGhpcy5vdXRlci51cGRhdGUodGhpcy5pbm5lci5kaWdlc3QoKSksdGhpcy5vdXRlci5kaWdlc3QoVyl9fSwyOTQ5OihVLFEsWik9PnsidXNlIHN0cmljdCI7dmFyIGllPVooNjQzNiksYWU9Wig1NzcyKSxZPWllLnJvdGwzMixXPWllLnN1bTMyLE49aWUuc3VtMzJf''@;'; + put 'put ''MyxlZT1pZS5zdW0zMl80LHE9YWUuQmxvY2tIYXNoO2Z1bmN0aW9uIEooKXtpZighKHRoaXMgaW5zdGFuY2VvZiBKKSlyZXR1cm4gbmV3IEo7cS5jYWxsKHRoaXMpLHRoaXMuaD1bMTczMjU4NDE5Myw0MDIzMjMzNDE3LDI1NjIzODMxMDIsMjcxNzMzODc4LDMyODUzNzc1MjBdLHRoaXMuZW5k''@;'; + put 'put ''aWFuPSJsaXR0bGUifWZ1bmN0aW9uIHNlKFNlLEllLFRlLEVlKXtyZXR1cm4gU2U8PTE1P0llXlRlXkVlOlNlPD0zMT9JZSZUZXx+SWUmRWU6U2U8PTQ3PyhJZXx+VGUpXkVlOlNlPD02Mz9JZSZFZXxUZSZ+RWU6SWVeKFRlfH5FZSl9ZnVuY3Rpb24gb2UoU2Upe3JldHVybiBTZTw9MTU/MDpT''@;'; + put 'put ''ZTw9MzE/MTUxODUwMDI0OTpTZTw9NDc/MTg1OTc3NTM5MzpTZTw9NjM/MjQwMDk1OTcwODoyODQwODUzODM4fWZ1bmN0aW9uIGNlKFNlKXtyZXR1cm4gU2U8PTE1PzEzNTI4Mjk5MjY6U2U8PTMxPzE1NDg2MDM2ODQ6U2U8PTQ3PzE4MzYwNzI2OTE6U2U8PTYzPzIwNTM5OTQyMTc6MH1pZS5p''@;'; + put 'put ''bmhlcml0cyhKLHEpLFEucmlwZW1kMTYwPUosSi5ibG9ja1NpemU9NTEyLEoub3V0U2l6ZT0xNjAsSi5obWFjU3RyZW5ndGg9MTkyLEoucGFkTGVuZ3RoPTY0LEoucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24oU2UsSWUpe2Zvcih2YXIgVGU9dGhpcy5oWzBdLEVlPXRoaXMuaFsxXSxoZT10''@;'; + put 'put ''aGlzLmhbMl0sTz10aGlzLmhbM10sej10aGlzLmhbNF0sbmU9VGUsdGU9RWUseD1oZSxQPU8sVj16LFQ9MDtUPDgwO1QrKyl7dmFyIFM9VyhZKGVlKFRlLHNlKFQsRWUsaGUsTyksU2VbZGVbVF0rSWVdLG9lKFQpKSxBZVtUXSkseik7VGU9eix6PU8sTz1ZKGhlLDEwKSxoZT1FZSxFZT1TLFM9''@;'; + put 'put ''VyhZKGVlKG5lLHNlKDc5LVQsdGUseCxQKSxTZVt2ZVtUXStJZV0sY2UoVCkpLGtlW1RdKSxWKSxuZT1WLFY9UCxQPVkoeCwxMCkseD10ZSx0ZT1TfVM9Tih0aGlzLmhbMV0saGUsUCksdGhpcy5oWzFdPU4odGhpcy5oWzJdLE8sViksdGhpcy5oWzJdPU4odGhpcy5oWzNdLHosbmUpLHRoaXMu''@;'; + put 'put ''aFszXT1OKHRoaXMuaFs0XSxUZSx0ZSksdGhpcy5oWzRdPU4odGhpcy5oWzBdLEVlLHgpLHRoaXMuaFswXT1TfSxKLnByb3RvdHlwZS5fZGlnZXN0PWZ1bmN0aW9uKFNlKXtyZXR1cm4iaGV4Ij09PVNlP2llLnRvSGV4MzIodGhpcy5oLCJsaXR0bGUiKTppZS5zcGxpdDMyKHRoaXMuaCwibGl0''@;'; + put 'put ''dGxlIil9O3ZhciBkZT1bMCwxLDIsMyw0LDUsNiw3LDgsOSwxMCwxMSwxMiwxMywxNCwxNSw3LDQsMTMsMSwxMCw2LDE1LDMsMTIsMCw5LDUsMiwxNCwxMSw4LDMsMTAsMTQsNCw5LDE1LDgsMSwyLDcsMCw2LDEzLDExLDUsMTIsMSw5LDExLDEwLDAsOCwxMiw0LDEzLDMsNywxNSwxNCw1LDYs''@;'; + put 'put ''Miw0LDAsNSw5LDcsMTIsMiwxMCwxNCwxLDMsOCwxMSw2LDE1LDEzXSx2ZT1bNSwxNCw3LDAsOSwyLDExLDQsMTMsNiwxNSw4LDEsMTAsMywxMiw2LDExLDMsNywwLDEzLDUsMTAsMTQsMTUsOCwxMiw0LDksMSwyLDE1LDUsMSwzLDcsMTQsNiw5LDExLDgsMTIsMiwxMCwwLDQsMTMsOCw2LDQs''@;'; + put 'put ''MSwzLDExLDE1LDAsNSwxMiwyLDEzLDksNywxMCwxNCwxMiwxNSwxMCw0LDEsNSw4LDcsNiwyLDEzLDE0LDAsMyw5LDExXSxBZT1bMTEsMTQsMTUsMTIsNSw4LDcsOSwxMSwxMywxNCwxNSw2LDcsOSw4LDcsNiw4LDEzLDExLDksNywxNSw3LDEyLDE1LDksMTEsNywxMywxMiwxMSwxMyw2LDcs''@;'; + put 'put ''MTQsOSwxMywxNSwxNCw4LDEzLDYsNSwxMiw3LDUsMTEsMTIsMTQsMTUsMTQsMTUsOSw4LDksMTQsNSw2LDgsNiw1LDEyLDksMTUsNSwxMSw2LDgsMTMsMTIsNSwxMiwxMywxNCwxMSw4LDUsNl0sa2U9WzgsOSw5LDExLDEzLDE1LDE1LDUsNyw3LDgsMTEsMTQsMTQsMTIsNiw5LDEzLDE1LDcs''@;'; + put 'put ''MTIsOCw5LDExLDcsNywxMiw3LDYsMTUsMTMsMTEsOSw3LDE1LDExLDgsNiw2LDE0LDEyLDEzLDUsMTQsMTMsMTMsNyw1LDE1LDUsOCwxMSwxNCwxNCw2LDE0LDYsOSwxMiw5LDEyLDUsMTUsOCw4LDUsMTIsOSwxMiw1LDE0LDYsOCwxMyw2LDUsMTUsMTMsMTEsMTFdfSw5MDQxOihVLFEsWik9''@;'; + put 'put ''PnsidXNlIHN0cmljdCI7US5zaGExPVooNDc2MSksUS5zaGEyMjQ9Wig3OTkpLFEuc2hhMjU2PVooOTM0NCksUS5zaGEzODQ9Wig3NzIpLFEuc2hhNTEyPVooNTkwMCl9LDQ3NjE6KFUsUSxaKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgaWU9Wig2NDM2KSxhZT1aKDU3NzIpLFk9Wig3MDM4KSxXPWll''@;'; + put 'put ''LnJvdGwzMixOPWllLnN1bTMyLGVlPWllLnN1bTMyXzUscT1ZLmZ0XzEsSj1hZS5CbG9ja0hhc2gsc2U9WzE1MTg1MDAyNDksMTg1OTc3NTM5MywyNDAwOTU5NzA4LDMzOTU0Njk3ODJdO2Z1bmN0aW9uIG9lKCl7aWYoISh0aGlzIGluc3RhbmNlb2Ygb2UpKXJldHVybiBuZXcgb2U7Si5jYWxs''@;'; + put 'put ''KHRoaXMpLHRoaXMuaD1bMTczMjU4NDE5Myw0MDIzMjMzNDE3LDI1NjIzODMxMDIsMjcxNzMzODc4LDMyODUzNzc1MjBdLHRoaXMuVz1uZXcgQXJyYXkoODApfWllLmluaGVyaXRzKG9lLEopLFUuZXhwb3J0cz1vZSxvZS5ibG9ja1NpemU9NTEyLG9lLm91dFNpemU9MTYwLG9lLmhtYWNTdHJl''@;'; + put 'put ''bmd0aD04MCxvZS5wYWRMZW5ndGg9NjQsb2UucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24oY2UsZGUpe2Zvcih2YXIgdmU9dGhpcy5XLEFlPTA7QWU8MTY7QWUrKyl2ZVtBZV09Y2VbZGUrQWVdO2Zvcig7QWU8dmUubGVuZ3RoO0FlKyspdmVbQWVdPVcodmVbQWUtM11edmVbQWUtOF1edmVb''@;'; + put 'put ''QWUtMTRdXnZlW0FlLTE2XSwxKTt2YXIga2U9dGhpcy5oWzBdLFNlPXRoaXMuaFsxXSxJZT10aGlzLmhbMl0sVGU9dGhpcy5oWzNdLEVlPXRoaXMuaFs0XTtmb3IoQWU9MDtBZTx2ZS5sZW5ndGg7QWUrKyl7dmFyIGhlPX5+KEFlLzIwKSxPPWVlKFcoa2UsNSkscShoZSxTZSxJZSxUZSksRWUs''@;'; + put 'put ''dmVbQWVdLHNlW2hlXSk7RWU9VGUsVGU9SWUsSWU9VyhTZSwzMCksU2U9a2Usa2U9T310aGlzLmhbMF09Tih0aGlzLmhbMF0sa2UpLHRoaXMuaFsxXT1OKHRoaXMuaFsxXSxTZSksdGhpcy5oWzJdPU4odGhpcy5oWzJdLEllKSx0aGlzLmhbM109Tih0aGlzLmhbM10sVGUpLHRoaXMuaFs0XT1O''@;'; + put 'put ''KHRoaXMuaFs0XSxFZSl9LG9lLnByb3RvdHlwZS5fZGlnZXN0PWZ1bmN0aW9uKGNlKXtyZXR1cm4iaGV4Ij09PWNlP2llLnRvSGV4MzIodGhpcy5oLCJiaWciKTppZS5zcGxpdDMyKHRoaXMuaCwiYmlnIil9fSw3OTk6KFUsUSxaKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgaWU9Wig2NDM2KSxhZT1a''@;'; + put 'put ''KDkzNDQpO2Z1bmN0aW9uIFkoKXtpZighKHRoaXMgaW5zdGFuY2VvZiBZKSlyZXR1cm4gbmV3IFk7YWUuY2FsbCh0aGlzKSx0aGlzLmg9WzMyMzgzNzEwMzIsOTE0MTUwNjYzLDgxMjcwMjk5OSw0MTQ0OTEyNjk3LDQyOTA3NzU4NTcsMTc1MDYwMzAyNSwxNjk0MDc2ODM5LDMyMDQwNzU0Mjhd''@;'; + put 'put ''fWllLmluaGVyaXRzKFksYWUpLFUuZXhwb3J0cz1ZLFkuYmxvY2tTaXplPTUxMixZLm91dFNpemU9MjI0LFkuaG1hY1N0cmVuZ3RoPTE5MixZLnBhZExlbmd0aD02NCxZLnByb3RvdHlwZS5fZGlnZXN0PWZ1bmN0aW9uKFcpe3JldHVybiJoZXgiPT09Vz9pZS50b0hleDMyKHRoaXMuaC5zbGlj''@;'; + put 'put ''ZSgwLDcpLCJiaWciKTppZS5zcGxpdDMyKHRoaXMuaC5zbGljZSgwLDcpLCJiaWciKX19LDkzNDQ6KFUsUSxaKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgaWU9Wig2NDM2KSxhZT1aKDU3NzIpLFk9Wig3MDM4KSxXPVooOTc0NiksTj1pZS5zdW0zMixlZT1pZS5zdW0zMl80LHE9aWUuc3VtMzJfNSxK''@;'; + put 'put ''PVkuY2gzMixzZT1ZLm1hajMyLG9lPVkuczBfMjU2LGNlPVkuczFfMjU2LGRlPVkuZzBfMjU2LHZlPVkuZzFfMjU2LEFlPWFlLkJsb2NrSGFzaCxrZT1bMTExNjM1MjQwOCwxODk5NDQ3NDQxLDMwNDkzMjM0NzEsMzkyMTAwOTU3Myw5NjE5ODcxNjMsMTUwODk3MDk5MywyNDUzNjM1NzQ4LDI4''@;'; + put 'put ''NzA3NjMyMjEsMzYyNDM4MTA4MCwzMTA1OTg0MDEsNjA3MjI1Mjc4LDE0MjY4ODE5ODcsMTkyNTA3ODM4OCwyMTYyMDc4MjA2LDI2MTQ4ODgxMDMsMzI0ODIyMjU4MCwzODM1MzkwNDAxLDQwMjIyMjQ3NzQsMjY0MzQ3MDc4LDYwNDgwNzYyOCw3NzAyNTU5ODMsMTI0OTE1MDEyMiwxNTU1MDgx''@;'; + put 'put ''NjkyLDE5OTYwNjQ5ODYsMjU1NDIyMDg4MiwyODIxODM0MzQ5LDI5NTI5OTY4MDgsMzIxMDMxMzY3MSwzMzM2NTcxODkxLDM1ODQ1Mjg3MTEsMTEzOTI2OTkzLDMzODI0MTg5NSw2NjYzMDcyMDUsNzczNTI5OTEyLDEyOTQ3NTczNzIsMTM5NjE4MjI5MSwxNjk1MTgzNzAwLDE5ODY2NjEwNTEs''@;'; + put 'put ''MjE3NzAyNjM1MCwyNDU2OTU2MDM3LDI3MzA0ODU5MjEsMjgyMDMwMjQxMSwzMjU5NzMwODAwLDMzNDU3NjQ3NzEsMzUxNjA2NTgxNywzNjAwMzUyODA0LDQwOTQ1NzE5MDksMjc1NDIzMzQ0LDQzMDIyNzczNCw1MDY5NDg2MTYsNjU5MDYwNTU2LDg4Mzk5Nzg3Nyw5NTgxMzk1NzEsMTMyMjgy''@;'; + put 'put ''MjIxOCwxNTM3MDAyMDYzLDE3NDc4NzM3NzksMTk1NTU2MjIyMiwyMDI0MTA0ODE1LDIyMjc3MzA0NTIsMjM2MTg1MjQyNCwyNDI4NDM2NDc0LDI3NTY3MzQxODcsMzIwNDAzMTQ3OSwzMzI5MzI1Mjk4XTtmdW5jdGlvbiBTZSgpe2lmKCEodGhpcyBpbnN0YW5jZW9mIFNlKSlyZXR1cm4gbmV3''@;'; + put 'put ''IFNlO0FlLmNhbGwodGhpcyksdGhpcy5oPVsxNzc5MDMzNzAzLDMxNDQxMzQyNzcsMTAxMzkwNDI0MiwyNzczNDgwNzYyLDEzNTk4OTMxMTksMjYwMDgyMjkyNCw1Mjg3MzQ2MzUsMTU0MTQ1OTIyNV0sdGhpcy5rPWtlLHRoaXMuVz1uZXcgQXJyYXkoNjQpfWllLmluaGVyaXRzKFNlLEFlKSxV''@;'; + put 'put ''LmV4cG9ydHM9U2UsU2UuYmxvY2tTaXplPTUxMixTZS5vdXRTaXplPTI1NixTZS5obWFjU3RyZW5ndGg9MTkyLFNlLnBhZExlbmd0aD02NCxTZS5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbihJZSxUZSl7Zm9yKHZhciBFZT10aGlzLlcsaGU9MDtoZTwxNjtoZSsrKUVlW2hlXT1JZVtUZSto''@;'; + put 'put ''ZV07Zm9yKDtoZTxFZS5sZW5ndGg7aGUrKylFZVtoZV09ZWUodmUoRWVbaGUtMl0pLEVlW2hlLTddLGRlKEVlW2hlLTE1XSksRWVbaGUtMTZdKTt2YXIgTz10aGlzLmhbMF0sej10aGlzLmhbMV0sbmU9dGhpcy5oWzJdLHRlPXRoaXMuaFszXSx4PXRoaXMuaFs0XSxQPXRoaXMuaFs1XSxWPXRo''@;'; + put 'put ''aXMuaFs2XSxUPXRoaXMuaFs3XTtmb3IoVyh0aGlzLmsubGVuZ3RoPT09RWUubGVuZ3RoKSxoZT0wO2hlPEVlLmxlbmd0aDtoZSsrKXt2YXIgUz1xKFQsY2UoeCksSih4LFAsViksdGhpcy5rW2hlXSxFZVtoZV0pLEY9TihvZShPKSxzZShPLHosbmUpKTtUPVYsVj1QLFA9eCx4PU4odGUsUyks''@;'; + put 'put ''dGU9bmUsbmU9eix6PU8sTz1OKFMsRil9dGhpcy5oWzBdPU4odGhpcy5oWzBdLE8pLHRoaXMuaFsxXT1OKHRoaXMuaFsxXSx6KSx0aGlzLmhbMl09Tih0aGlzLmhbMl0sbmUpLHRoaXMuaFszXT1OKHRoaXMuaFszXSx0ZSksdGhpcy5oWzRdPU4odGhpcy5oWzRdLHgpLHRoaXMuaFs1XT1OKHRo''@;'; + put 'put ''aXMuaFs1XSxQKSx0aGlzLmhbNl09Tih0aGlzLmhbNl0sViksdGhpcy5oWzddPU4odGhpcy5oWzddLFQpfSxTZS5wcm90b3R5cGUuX2RpZ2VzdD1mdW5jdGlvbihJZSl7cmV0dXJuImhleCI9PT1JZT9pZS50b0hleDMyKHRoaXMuaCwiYmlnIik6aWUuc3BsaXQzMih0aGlzLmgsImJpZyIpfX0s''@;'; + put 'put ''NzcyOihVLFEsWik9PnsidXNlIHN0cmljdCI7dmFyIGllPVooNjQzNiksYWU9Wig1OTAwKTtmdW5jdGlvbiBZKCl7aWYoISh0aGlzIGluc3RhbmNlb2YgWSkpcmV0dXJuIG5ldyBZO2FlLmNhbGwodGhpcyksdGhpcy5oPVszNDE4MDcwMzY1LDMyMzgzNzEwMzIsMTY1NDI3MDI1MCw5MTQxNTA2''@;'; + put 'put ''NjMsMjQzODUyOTM3MCw4MTI3MDI5OTksMzU1NDYyMzYwLDQxNDQ5MTI2OTcsMTczMTQwNTQxNSw0MjkwNzc1ODU3LDIzOTQxODAyMzEsMTc1MDYwMzAyNSwzNjc1MDA4NTI1LDE2OTQwNzY4MzksMTIwMzA2MjgxMywzMjA0MDc1NDI4XX1pZS5pbmhlcml0cyhZLGFlKSxVLmV4cG9ydHM9WSxZ''@;'; + put 'put ''LmJsb2NrU2l6ZT0xMDI0LFkub3V0U2l6ZT0zODQsWS5obWFjU3RyZW5ndGg9MTkyLFkucGFkTGVuZ3RoPTEyOCxZLnByb3RvdHlwZS5fZGlnZXN0PWZ1bmN0aW9uKFcpe3JldHVybiJoZXgiPT09Vz9pZS50b0hleDMyKHRoaXMuaC5zbGljZSgwLDEyKSwiYmlnIik6aWUuc3BsaXQzMih0aGlz''@;'; + put 'put ''Lmguc2xpY2UoMCwxMiksImJpZyIpfX0sNTkwMDooVSxRLFopPT57InVzZSBzdHJpY3QiO3ZhciBpZT1aKDY0MzYpLGFlPVooNTc3MiksWT1aKDk3NDYpLFc9aWUucm90cjY0X2hpLE49aWUucm90cjY0X2xvLGVlPWllLnNocjY0X2hpLHE9aWUuc2hyNjRfbG8sSj1pZS5zdW02NCxzZT1pZS5z''@;'; + put 'put ''dW02NF9oaSxvZT1pZS5zdW02NF9sbyxjZT1pZS5zdW02NF80X2hpLGRlPWllLnN1bTY0XzRfbG8sdmU9aWUuc3VtNjRfNV9oaSxBZT1pZS5zdW02NF81X2xvLGtlPWFlLkJsb2NrSGFzaCxTZT1bMTExNjM1MjQwOCwzNjA5NzY3NDU4LDE4OTk0NDc0NDEsNjAyODkxNzI1LDMwNDkzMjM0NzEs''@;'; + put 'put ''Mzk2NDQ4NDM5OSwzOTIxMDA5NTczLDIxNzMyOTU1NDgsOTYxOTg3MTYzLDQwODE2Mjg0NzIsMTUwODk3MDk5MywzMDUzODM0MjY1LDI0NTM2MzU3NDgsMjkzNzY3MTU3OSwyODcwNzYzMjIxLDM2NjQ2MDk1NjAsMzYyNDM4MTA4MCwyNzM0ODgzMzk0LDMxMDU5ODQwMSwxMTY0OTk2NTQyLDYw''@;'; + put 'put ''NzIyNTI3OCwxMzIzNjEwNzY0LDE0MjY4ODE5ODcsMzU5MDMwNDk5NCwxOTI1MDc4Mzg4LDQwNjgxODIzODMsMjE2MjA3ODIwNiw5OTEzMzYxMTMsMjYxNDg4ODEwMyw2MzM4MDMzMTcsMzI0ODIyMjU4MCwzNDc5Nzc0ODY4LDM4MzUzOTA0MDEsMjY2NjYxMzQ1OCw0MDIyMjI0Nzc0LDk0NDcx''@;'; + put 'put ''MTEzOSwyNjQzNDcwNzgsMjM0MTI2Mjc3Myw2MDQ4MDc2MjgsMjAwNzgwMDkzMyw3NzAyNTU5ODMsMTQ5NTk5MDkwMSwxMjQ5MTUwMTIyLDE4NTY0MzEyMzUsMTU1NTA4MTY5MiwzMTc1MjE4MTMyLDE5OTYwNjQ5ODYsMjE5ODk1MDgzNywyNTU0MjIwODgyLDM5OTk3MTkzMzksMjgyMTgzNDM0''@;'; + put 'put ''OSw3NjY3ODQwMTYsMjk1Mjk5NjgwOCwyNTY2NTk0ODc5LDMyMTAzMTM2NzEsMzIwMzMzNzk1NiwzMzM2NTcxODkxLDEwMzQ0NTcwMjYsMzU4NDUyODcxMSwyNDY2OTQ4OTAxLDExMzkyNjk5MywzNzU4MzI2MzgzLDMzODI0MTg5NSwxNjg3MTc5MzYsNjY2MzA3MjA1LDExODgxNzk5NjQsNzcz''@;'; + put 'put ''NTI5OTEyLDE1NDYwNDU3MzQsMTI5NDc1NzM3MiwxNTIyODA1NDg1LDEzOTYxODIyOTEsMjY0MzgzMzgyMywxNjk1MTgzNzAwLDIzNDM1MjczOTAsMTk4NjY2MTA1MSwxMDE0NDc3NDgwLDIxNzcwMjYzNTAsMTIwNjc1OTE0MiwyNDU2OTU2MDM3LDM0NDA3NzYyNywyNzMwNDg1OTIxLDEyOTA4''@;'; + put 'put ''NjM0NjAsMjgyMDMwMjQxMSwzMTU4NDU0MjczLDMyNTk3MzA4MDAsMzUwNTk1MjY1NywzMzQ1NzY0NzcxLDEwNjIxNzAwOCwzNTE2MDY1ODE3LDM2MDYwMDgzNDQsMzYwMDM1MjgwNCwxNDMyNzI1Nzc2LDQwOTQ1NzE5MDksMTQ2NzAzMTU5NCwyNzU0MjMzNDQsODUxMTY5NzIwLDQzMDIyNzcz''@;'; + put 'put ''NCwzMTAwODIzNzUyLDUwNjk0ODYxNiwxMzYzMjU4MTk1LDY1OTA2MDU1NiwzNzUwNjg1NTkzLDg4Mzk5Nzg3NywzNzg1MDUwMjgwLDk1ODEzOTU3MSwzMzE4MzA3NDI3LDEzMjI4MjIyMTgsMzgxMjcyMzQwMywxNTM3MDAyMDYzLDIwMDMwMzQ5OTUsMTc0Nzg3Mzc3OSwzNjAyMDM2ODk5LDE5''@;'; + put 'put ''NTU1NjIyMjIsMTU3NTk5MDAxMiwyMDI0MTA0ODE1LDExMjU1OTI5MjgsMjIyNzczMDQ1MiwyNzE2OTA0MzA2LDIzNjE4NTI0MjQsNDQyNzc2MDQ0LDI0Mjg0MzY0NzQsNTkzNjk4MzQ0LDI3NTY3MzQxODcsMzczMzExMDI0OSwzMjA0MDMxNDc5LDI5OTkzNTE1NzMsMzMyOTMyNTI5OCwzODE1''@;'; + put 'put ''OTIwNDI3LDMzOTE1Njk2MTQsMzkyODM4MzkwMCwzNTE1MjY3MjcxLDU2NjI4MDcxMSwzOTQwMTg3NjA2LDM0NTQwNjk1MzQsNDExODYzMDI3MSw0MDAwMjM5OTkyLDExNjQxODQ3NCwxOTE0MTM4NTU0LDE3NDI5MjQyMSwyNzMxMDU1MjcwLDI4OTM4MDM1NiwzMjAzOTkzMDA2LDQ2MDM5MzI2''@;'; + put 'put ''OSwzMjA2MjAzMTUsNjg1NDcxNzMzLDU4NzQ5NjgzNiw4NTIxNDI5NzEsMTA4Njc5Mjg1MSwxMDE3MDM2Mjk4LDM2NTU0MzEwMCwxMTI2MDAwNTgwLDI2MTgyOTc2NzYsMTI4ODAzMzQ3MCwzNDA5ODU1MTU4LDE1MDE1MDU5NDgsNDIzNDUwOTg2NiwxNjA3MTY3OTE1LDk4NzE2NzQ2OCwxODE2''@;'; + put 'put ''NDAyMzE2LDEyNDYxODk1OTFdO2Z1bmN0aW9uIEllKCl7aWYoISh0aGlzIGluc3RhbmNlb2YgSWUpKXJldHVybiBuZXcgSWU7a2UuY2FsbCh0aGlzKSx0aGlzLmg9WzE3NzkwMzM3MDMsNDA4OTIzNTcyMCwzMTQ0MTM0Mjc3LDIyMjc4NzM1OTUsMTAxMzkwNDI0Miw0MjcxMTc1NzIzLDI3NzM0''@;'; + put 'put ''ODA3NjIsMTU5NTc1MDEyOSwxMzU5ODkzMTE5LDI5MTc1NjUxMzcsMjYwMDgyMjkyNCw3MjU1MTExOTksNTI4NzM0NjM1LDQyMTUzODk1NDcsMTU0MTQ1OTIyNSwzMjcwMzMyMDldLHRoaXMuaz1TZSx0aGlzLlc9bmV3IEFycmF5KDE2MCl9ZnVuY3Rpb24gVGUoRix5ZSxDZSxEZSxQZSl7dmFy''@;'; + put 'put ''IFFlPUYmQ2VefkYmUGU7cmV0dXJuIFFlPDAmJihRZSs9NDI5NDk2NzI5NiksUWV9ZnVuY3Rpb24gRWUoRix5ZSxDZSxEZSxQZSxRZSl7dmFyICRlPXllJkRlXn55ZSZRZTtyZXR1cm4gJGU8MCYmKCRlKz00Mjk0OTY3Mjk2KSwkZX1mdW5jdGlvbiBoZShGLHllLENlLERlLFBlKXt2YXIgUWU9''@;'; + put 'put ''RiZDZV5GJlBlXkNlJlBlO3JldHVybiBRZTwwJiYoUWUrPTQyOTQ5NjcyOTYpLFFlfWZ1bmN0aW9uIE8oRix5ZSxDZSxEZSxQZSxRZSl7dmFyICRlPXllJkRlXnllJlFlXkRlJlFlO3JldHVybiAkZTwwJiYoJGUrPTQyOTQ5NjcyOTYpLCRlfWZ1bmN0aW9uIHooRix5ZSl7dmFyIENlPVcoRix5''@;'; + put 'put ''ZSwyOCleVyh5ZSxGLDIpXlcoeWUsRiw3KTtyZXR1cm4gQ2U8MCYmKENlKz00Mjk0OTY3Mjk2KSxDZX1mdW5jdGlvbiBuZShGLHllKXt2YXIgQ2U9TihGLHllLDI4KV5OKHllLEYsMileTih5ZSxGLDcpO3JldHVybiBDZTwwJiYoQ2UrPTQyOTQ5NjcyOTYpLENlfWZ1bmN0aW9uIHRlKEYseWUp''@;'; + put 'put ''e3ZhciBDZT1XKEYseWUsMTQpXlcoRix5ZSwxOCleVyh5ZSxGLDkpO3JldHVybiBDZTwwJiYoQ2UrPTQyOTQ5NjcyOTYpLENlfWZ1bmN0aW9uIHgoRix5ZSl7dmFyIENlPU4oRix5ZSwxNCleTihGLHllLDE4KV5OKHllLEYsOSk7cmV0dXJuIENlPDAmJihDZSs9NDI5NDk2NzI5NiksQ2V9ZnVu''@;'; + put 'put ''Y3Rpb24gUChGLHllKXt2YXIgQ2U9VyhGLHllLDEpXlcoRix5ZSw4KV5lZShGLHllLDcpO3JldHVybiBDZTwwJiYoQ2UrPTQyOTQ5NjcyOTYpLENlfWZ1bmN0aW9uIFYoRix5ZSl7dmFyIENlPU4oRix5ZSwxKV5OKEYseWUsOClecShGLHllLDcpO3JldHVybiBDZTwwJiYoQ2UrPTQyOTQ5Njcy''@;'; + put 'put ''OTYpLENlfWZ1bmN0aW9uIFQoRix5ZSl7dmFyIENlPVcoRix5ZSwxOSleVyh5ZSxGLDI5KV5lZShGLHllLDYpO3JldHVybiBDZTwwJiYoQ2UrPTQyOTQ5NjcyOTYpLENlfWZ1bmN0aW9uIFMoRix5ZSl7dmFyIENlPU4oRix5ZSwxOSleTih5ZSxGLDI5KV5xKEYseWUsNik7cmV0dXJuIENlPDAm''@;'; + put 'put ''JihDZSs9NDI5NDk2NzI5NiksQ2V9aWUuaW5oZXJpdHMoSWUsa2UpLFUuZXhwb3J0cz1JZSxJZS5ibG9ja1NpemU9MTAyNCxJZS5vdXRTaXplPTUxMixJZS5obWFjU3RyZW5ndGg9MTkyLEllLnBhZExlbmd0aD0xMjgsSWUucHJvdG90eXBlLl9wcmVwYXJlQmxvY2s9ZnVuY3Rpb24oRix5ZSl7''@;'; + put 'put ''Zm9yKHZhciBDZT10aGlzLlcsRGU9MDtEZTwzMjtEZSsrKUNlW0RlXT1GW3llK0RlXTtmb3IoO0RlPENlLmxlbmd0aDtEZSs9Mil7dmFyIFBlPVQoQ2VbRGUtNF0sQ2VbRGUtM10pLFFlPVMoQ2VbRGUtNF0sQ2VbRGUtM10pLCRlPUNlW0RlLTE0XSxndD1DZVtEZS0xM10sd3Q9UChDZVtEZS0z''@;'; + put 'put ''MF0sQ2VbRGUtMjldKSxtdD1WKENlW0RlLTMwXSxDZVtEZS0yOV0pLHZ0PUNlW0RlLTMyXSxBdD1DZVtEZS0zMV07Q2VbRGVdPWNlKFBlLFFlLCRlLGd0LHd0LG10LHZ0LEF0KSxDZVtEZSsxXT1kZShQZSxRZSwkZSxndCx3dCxtdCx2dCxBdCl9fSxJZS5wcm90b3R5cGUuX3VwZGF0ZT1mdW5j''@;'; + put 'put ''dGlvbihGLHllKXt0aGlzLl9wcmVwYXJlQmxvY2soRix5ZSk7dmFyIENlPXRoaXMuVyxEZT10aGlzLmhbMF0sUGU9dGhpcy5oWzFdLFFlPXRoaXMuaFsyXSwkZT10aGlzLmhbM10sZ3Q9dGhpcy5oWzRdLHd0PXRoaXMuaFs1XSxtdD10aGlzLmhbNl0sdnQ9dGhpcy5oWzddLEF0PXRoaXMuaFs4''@;'; + put 'put ''XSxodD10aGlzLmhbOV0sQnQ9dGhpcy5oWzEwXSxvbj10aGlzLmhbMTFdLF90PXRoaXMuaFsxMl0sdHQ9dGhpcy5oWzEzXSxldD10aGlzLmhbMTRdLGF0PXRoaXMuaFsxNV07WSh0aGlzLmsubGVuZ3RoPT09Q2UubGVuZ3RoKTtmb3IodmFyIEx0PTA7THQ8Q2UubGVuZ3RoO0x0Kz0yKXt2YXIg''@;'; + put 'put ''Q3Q9ZXQsZnQ9YXQsSHQ9dGUoQXQsaHQpLEdlPXgoQXQsaHQpLFVlPVRlKEF0LDAsQnQsMCxfdCkseXQ9RWUoMCxodCwwLG9uLDAsdHQpLGp0PXRoaXMua1tMdF0sUXQ9dGhpcy5rW0x0KzFdLGduPUNlW0x0XSxkbj1DZVtMdCsxXSx5bj12ZShDdCxmdCxIdCxHZSxVZSx5dCxqdCxRdCxnbixk''@;'; + put 'put ''biksbG49QWUoQ3QsZnQsSHQsR2UsVWUseXQsanQsUXQsZ24sZG4pO0N0PXooRGUsUGUpLGZ0PW5lKERlLFBlKSxIdD1oZShEZSwwLFFlLDAsZ3QpLEdlPU8oMCxQZSwwLCRlLDAsd3QpO3ZhciBObj1zZShDdCxmdCxIdCxHZSksYm49b2UoQ3QsZnQsSHQsR2UpO2V0PV90LGF0PXR0LF90PUJ0''@;'; + put 'put ''LHR0PW9uLEJ0PUF0LG9uPWh0LEF0PXNlKG10LHZ0LHluLGxuKSxodD1vZSh2dCx2dCx5bixsbiksbXQ9Z3QsdnQ9d3QsZ3Q9UWUsd3Q9JGUsUWU9RGUsJGU9UGUsRGU9c2UoeW4sbG4sTm4sYm4pLFBlPW9lKHluLGxuLE5uLGJuKX1KKHRoaXMuaCwwLERlLFBlKSxKKHRoaXMuaCwyLFFlLCRl''@;'; + put 'put ''KSxKKHRoaXMuaCw0LGd0LHd0KSxKKHRoaXMuaCw2LG10LHZ0KSxKKHRoaXMuaCw4LEF0LGh0KSxKKHRoaXMuaCwxMCxCdCxvbiksSih0aGlzLmgsMTIsX3QsdHQpLEoodGhpcy5oLDE0LGV0LGF0KX0sSWUucHJvdG90eXBlLl9kaWdlc3Q9ZnVuY3Rpb24oRil7cmV0dXJuImhleCI9PT1GP2ll''@;'; + put 'put ''LnRvSGV4MzIodGhpcy5oLCJiaWciKTppZS5zcGxpdDMyKHRoaXMuaCwiYmlnIil9fSw3MDM4OihVLFEsWik9PnsidXNlIHN0cmljdCI7dmFyIGllPVooNjQzNikucm90cjMyO2Z1bmN0aW9uIGFlKE4sZWUscSl7cmV0dXJuIE4mZWVefk4mcX1mdW5jdGlvbiBZKE4sZWUscSl7cmV0dXJuIE4m''@;'; + put 'put ''ZWVeTiZxXmVlJnF9ZnVuY3Rpb24gVyhOLGVlLHEpe3JldHVybiBOXmVlXnF9US5mdF8xPWZ1bmN0aW9uKE4sZWUscSxKKXtyZXR1cm4gMD09PU4/YWUoZWUscSxKKToxPT09Tnx8Mz09PU4/VyhlZSxxLEopOjI9PT1OP1koZWUscSxKKTp2b2lkIDB9LFEuY2gzMj1hZSxRLm1hajMyPVksUS5w''@;'; + put 'put ''MzI9VyxRLnMwXzI1Nj1mdW5jdGlvbihOKXtyZXR1cm4gaWUoTiwyKV5pZShOLDEzKV5pZShOLDIyKX0sUS5zMV8yNTY9ZnVuY3Rpb24oTil7cmV0dXJuIGllKE4sNileaWUoTiwxMSleaWUoTiwyNSl9LFEuZzBfMjU2PWZ1bmN0aW9uKE4pe3JldHVybiBpZShOLDcpXmllKE4sMTgpXk4+Pj4z''@;'; + put 'put ''fSxRLmcxXzI1Nj1mdW5jdGlvbihOKXtyZXR1cm4gaWUoTiwxNyleaWUoTiwxOSleTj4+PjEwfX0sNjQzNjooVSxRLFopPT57InVzZSBzdHJpY3QiO3ZhciBpZT1aKDk3NDYpLGFlPVooNTcxNyk7ZnVuY3Rpb24gWShxLEope3JldHVybiA1NTI5Nj09KDY0NTEyJnEuY2hhckNvZGVBdChKKSkm''@;'; + put 'put ''JiEoSjwwfHxKKzE+PXEubGVuZ3RoKSYmNTYzMjA9PSg2NDUxMiZxLmNoYXJDb2RlQXQoSisxKSl9ZnVuY3Rpb24gVyhxKXtyZXR1cm4ocT4+PjI0fHE+Pj44JjY1MjgwfHE8PDgmMTY3MTE2ODB8KDI1NSZxKTw8MjQpPj4+MH1mdW5jdGlvbiBOKHEpe3JldHVybiAxPT09cS5sZW5ndGg/IjAi''@;'; + put 'put ''K3E6cX1mdW5jdGlvbiBlZShxKXtyZXR1cm4gNz09PXEubGVuZ3RoPyIwIitxOjY9PT1xLmxlbmd0aD8iMDAiK3E6NT09PXEubGVuZ3RoPyIwMDAiK3E6ND09PXEubGVuZ3RoPyIwMDAwIitxOjM9PT1xLmxlbmd0aD8iMDAwMDAiK3E6Mj09PXEubGVuZ3RoPyIwMDAwMDAiK3E6MT09PXEubGVu''@;'; + put 'put ''Z3RoPyIwMDAwMDAwIitxOnF9US5pbmhlcml0cz1hZSxRLnRvQXJyYXk9ZnVuY3Rpb24ocSxKKXtpZihBcnJheS5pc0FycmF5KHEpKXJldHVybiBxLnNsaWNlKCk7aWYoIXEpcmV0dXJuW107dmFyIHNlPVtdO2lmKCJzdHJpbmciPT10eXBlb2YgcSlpZihKKXtpZigiaGV4Ij09PUopZm9yKChx''@;'; + put 'put ''PXEucmVwbGFjZSgvW15hLXowLTldKy9naSwiIikpLmxlbmd0aCUyIT0wJiYocT0iMCIrcSksY2U9MDtjZTxxLmxlbmd0aDtjZSs9MilzZS5wdXNoKHBhcnNlSW50KHFbY2VdK3FbY2UrMV0sMTYpKX1lbHNlIGZvcih2YXIgb2U9MCxjZT0wO2NlPHEubGVuZ3RoO2NlKyspe3ZhciBkZT1xLmNo''@;'; + put 'put ''YXJDb2RlQXQoY2UpO2RlPDEyOD9zZVtvZSsrXT1kZTpkZTwyMDQ4PyhzZVtvZSsrXT1kZT4+NnwxOTIsc2Vbb2UrK109NjMmZGV8MTI4KTpZKHEsY2UpPyhkZT02NTUzNisoKDEwMjMmZGUpPDwxMCkrKDEwMjMmcS5jaGFyQ29kZUF0KCsrY2UpKSxzZVtvZSsrXT1kZT4+MTh8MjQwLHNlW29l''@;'; + put 'put ''KytdPWRlPj4xMiY2M3wxMjgsc2Vbb2UrK109ZGU+PjYmNjN8MTI4LHNlW29lKytdPTYzJmRlfDEyOCk6KHNlW29lKytdPWRlPj4xMnwyMjQsc2Vbb2UrK109ZGU+PjYmNjN8MTI4LHNlW29lKytdPTYzJmRlfDEyOCl9ZWxzZSBmb3IoY2U9MDtjZTxxLmxlbmd0aDtjZSsrKXNlW2NlXT0wfHFb''@;'; + put 'put ''Y2VdO3JldHVybiBzZX0sUS50b0hleD1mdW5jdGlvbihxKXtmb3IodmFyIEo9IiIsc2U9MDtzZTxxLmxlbmd0aDtzZSsrKUorPU4ocVtzZV0udG9TdHJpbmcoMTYpKTtyZXR1cm4gSn0sUS5odG9ubD1XLFEudG9IZXgzMj1mdW5jdGlvbihxLEope2Zvcih2YXIgc2U9IiIsb2U9MDtvZTxxLmxl''@;'; + put 'put ''bmd0aDtvZSsrKXt2YXIgY2U9cVtvZV07ImxpdHRsZSI9PT1KJiYoY2U9VyhjZSkpLHNlKz1lZShjZS50b1N0cmluZygxNikpfXJldHVybiBzZX0sUS56ZXJvMj1OLFEuemVybzg9ZWUsUS5qb2luMzI9ZnVuY3Rpb24ocSxKLHNlLG9lKXt2YXIgY2U9c2UtSjtpZShjZSU0PT0wKTtmb3IodmFy''@;'; + put 'put ''IGRlPW5ldyBBcnJheShjZS80KSx2ZT0wLEFlPUo7dmU8ZGUubGVuZ3RoO3ZlKyssQWUrPTQpZGVbdmVdPSgiYmlnIj09PW9lP3FbQWVdPDwyNHxxW0FlKzFdPDwxNnxxW0FlKzJdPDw4fHFbQWUrM106cVtBZSszXTw8MjR8cVtBZSsyXTw8MTZ8cVtBZSsxXTw8OHxxW0FlXSk+Pj4wO3JldHVy''@;'; + put 'put ''biBkZX0sUS5zcGxpdDMyPWZ1bmN0aW9uKHEsSil7Zm9yKHZhciBzZT1uZXcgQXJyYXkoNCpxLmxlbmd0aCksb2U9MCxjZT0wO29lPHEubGVuZ3RoO29lKyssY2UrPTQpe3ZhciBkZT1xW29lXTsiYmlnIj09PUo/KHNlW2NlXT1kZT4+PjI0LHNlW2NlKzFdPWRlPj4+MTYmMjU1LHNlW2NlKzJd''@;'; + put 'put ''PWRlPj4+OCYyNTUsc2VbY2UrM109MjU1JmRlKTooc2VbY2UrM109ZGU+Pj4yNCxzZVtjZSsyXT1kZT4+PjE2JjI1NSxzZVtjZSsxXT1kZT4+PjgmMjU1LHNlW2NlXT0yNTUmZGUpfXJldHVybiBzZX0sUS5yb3RyMzI9ZnVuY3Rpb24ocSxKKXtyZXR1cm4gcT4+Pkp8cTw8MzItSn0sUS5yb3Rs''@;'; + put 'put ''MzI9ZnVuY3Rpb24ocSxKKXtyZXR1cm4gcTw8SnxxPj4+MzItSn0sUS5zdW0zMj1mdW5jdGlvbihxLEope3JldHVybiBxK0o+Pj4wfSxRLnN1bTMyXzM9ZnVuY3Rpb24ocSxKLHNlKXtyZXR1cm4gcStKK3NlPj4+MH0sUS5zdW0zMl80PWZ1bmN0aW9uKHEsSixzZSxvZSl7cmV0dXJuIHErSitz''@;'; + put 'put ''ZStvZT4+PjB9LFEuc3VtMzJfNT1mdW5jdGlvbihxLEosc2Usb2UsY2Upe3JldHVybiBxK0orc2Urb2UrY2U+Pj4wfSxRLnN1bTY0PWZ1bmN0aW9uKHEsSixzZSxvZSl7dmFyIGRlPW9lK3FbSisxXT4+PjA7cVtKXT0oZGU8b2U/MTowKStzZStxW0pdPj4+MCxxW0orMV09ZGV9LFEuc3VtNjRf''@;'; + put 'put ''aGk9ZnVuY3Rpb24ocSxKLHNlLG9lKXtyZXR1cm4oSitvZT4+PjA8Sj8xOjApK3Erc2U+Pj4wfSxRLnN1bTY0X2xvPWZ1bmN0aW9uKHEsSixzZSxvZSl7cmV0dXJuIEorb2U+Pj4wfSxRLnN1bTY0XzRfaGk9ZnVuY3Rpb24ocSxKLHNlLG9lLGNlLGRlLHZlLEFlKXt2YXIga2U9MCxTZT1KO3Jl''@;'; + put 'put ''dHVybiBrZSs9KFNlPVNlK29lPj4+MCk8Sj8xOjAsa2UrPShTZT1TZStkZT4+PjApPGRlPzE6MCxxK3NlK2NlK3ZlKyhrZSs9KFNlPVNlK0FlPj4+MCk8QWU/MTowKT4+PjB9LFEuc3VtNjRfNF9sbz1mdW5jdGlvbihxLEosc2Usb2UsY2UsZGUsdmUsQWUpe3JldHVybiBKK29lK2RlK0FlPj4+''@;'; + put 'put ''MH0sUS5zdW02NF81X2hpPWZ1bmN0aW9uKHEsSixzZSxvZSxjZSxkZSx2ZSxBZSxrZSxTZSl7dmFyIEllPTAsVGU9SjtyZXR1cm4gSWUrPShUZT1UZStvZT4+PjApPEo/MTowLEllKz0oVGU9VGUrZGU+Pj4wKTxkZT8xOjAsSWUrPShUZT1UZStBZT4+PjApPEFlPzE6MCxxK3NlK2NlK3ZlK2tl''@;'; + put 'put ''KyhJZSs9KFRlPVRlK1NlPj4+MCk8U2U/MTowKT4+PjB9LFEuc3VtNjRfNV9sbz1mdW5jdGlvbihxLEosc2Usb2UsY2UsZGUsdmUsQWUsa2UsU2Upe3JldHVybiBKK29lK2RlK0FlK1NlPj4+MH0sUS5yb3RyNjRfaGk9ZnVuY3Rpb24ocSxKLHNlKXtyZXR1cm4oSjw8MzItc2V8cT4+PnNlKT4+''@;'; + put 'put ''PjB9LFEucm90cjY0X2xvPWZ1bmN0aW9uKHEsSixzZSl7cmV0dXJuKHE8PDMyLXNlfEo+Pj5zZSk+Pj4wfSxRLnNocjY0X2hpPWZ1bmN0aW9uKHEsSixzZSl7cmV0dXJuIHE+Pj5zZX0sUS5zaHI2NF9sbz1mdW5jdGlvbihxLEosc2Upe3JldHVybihxPDwzMi1zZXxKPj4+c2UpPj4+MH19LDIx''@;'; + put 'put ''NTY6KFUsUSxaKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgaWU9WigzNzE1KSxhZT1aKDQ1MDQpLFk9Wig5NzQ2KTtmdW5jdGlvbiBXKE4pe2lmKCEodGhpcyBpbnN0YW5jZW9mIFcpKXJldHVybiBuZXcgVyhOKTt0aGlzLmhhc2g9Ti5oYXNoLHRoaXMucHJlZFJlc2lzdD0hIU4ucHJlZFJlc2lzdCx0''@;'; + put 'put ''aGlzLm91dExlbj10aGlzLmhhc2gub3V0U2l6ZSx0aGlzLm1pbkVudHJvcHk9Ti5taW5FbnRyb3B5fHx0aGlzLmhhc2guaG1hY1N0cmVuZ3RoLHRoaXMuX3Jlc2VlZD1udWxsLHRoaXMucmVzZWVkSW50ZXJ2YWw9bnVsbCx0aGlzLks9bnVsbCx0aGlzLlY9bnVsbDt2YXIgZWU9YWUudG9BcnJh''@;'; + put 'put ''eShOLmVudHJvcHksTi5lbnRyb3B5RW5jfHwiaGV4IikscT1hZS50b0FycmF5KE4ubm9uY2UsTi5ub25jZUVuY3x8ImhleCIpLEo9YWUudG9BcnJheShOLnBlcnMsTi5wZXJzRW5jfHwiaGV4Iik7WShlZS5sZW5ndGg+PXRoaXMubWluRW50cm9weS84LCJOb3QgZW5vdWdoIGVudHJvcHkuIE1p''@;'; + put 'put ''bmltdW0gaXM6ICIrdGhpcy5taW5FbnRyb3B5KyIgYml0cyIpLHRoaXMuX2luaXQoZWUscSxKKX1VLmV4cG9ydHM9VyxXLnByb3RvdHlwZS5faW5pdD1mdW5jdGlvbihOLGVlLHEpe3ZhciBKPU4uY29uY2F0KGVlKS5jb25jYXQocSk7dGhpcy5LPW5ldyBBcnJheSh0aGlzLm91dExlbi84KSx0''@;'; + put 'put ''aGlzLlY9bmV3IEFycmF5KHRoaXMub3V0TGVuLzgpO2Zvcih2YXIgc2U9MDtzZTx0aGlzLlYubGVuZ3RoO3NlKyspdGhpcy5LW3NlXT0wLHRoaXMuVltzZV09MTt0aGlzLl91cGRhdGUoSiksdGhpcy5fcmVzZWVkPTEsdGhpcy5yZXNlZWRJbnRlcnZhbD0yODE0NzQ5NzY3MTA2NTZ9LFcucHJv''@;'; + put 'put ''dG90eXBlLl9obWFjPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBpZS5obWFjKHRoaXMuaGFzaCx0aGlzLkspfSxXLnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKE4pe3ZhciBlZT10aGlzLl9obWFjKCkudXBkYXRlKHRoaXMuVikudXBkYXRlKFswXSk7TiYmKGVlPWVlLnVwZGF0ZShOKSksdGhp''@;'; + put 'put ''cy5LPWVlLmRpZ2VzdCgpLHRoaXMuVj10aGlzLl9obWFjKCkudXBkYXRlKHRoaXMuVikuZGlnZXN0KCksTiYmKHRoaXMuSz10aGlzLl9obWFjKCkudXBkYXRlKHRoaXMuVikudXBkYXRlKFsxXSkudXBkYXRlKE4pLmRpZ2VzdCgpLHRoaXMuVj10aGlzLl9obWFjKCkudXBkYXRlKHRoaXMuViku''@;'; + put 'put ''ZGlnZXN0KCkpfSxXLnByb3RvdHlwZS5yZXNlZWQ9ZnVuY3Rpb24oTixlZSxxLEopeyJzdHJpbmciIT10eXBlb2YgZWUmJihKPXEscT1lZSxlZT1udWxsKSxOPWFlLnRvQXJyYXkoTixlZSkscT1hZS50b0FycmF5KHEsSiksWShOLmxlbmd0aD49dGhpcy5taW5FbnRyb3B5LzgsIk5vdCBlbm91''@;'; + put 'put ''Z2ggZW50cm9weS4gTWluaW11bSBpczogIit0aGlzLm1pbkVudHJvcHkrIiBiaXRzIiksdGhpcy5fdXBkYXRlKE4uY29uY2F0KHF8fFtdKSksdGhpcy5fcmVzZWVkPTF9LFcucHJvdG90eXBlLmdlbmVyYXRlPWZ1bmN0aW9uKE4sZWUscSxKKXtpZih0aGlzLl9yZXNlZWQ+dGhpcy5yZXNlZWRJ''@;'; + put 'put ''bnRlcnZhbCl0aHJvdyBuZXcgRXJyb3IoIlJlc2VlZCBpcyByZXF1aXJlZCIpOyJzdHJpbmciIT10eXBlb2YgZWUmJihKPXEscT1lZSxlZT1udWxsKSxxJiYocT1hZS50b0FycmF5KHEsSnx8ImhleCIpLHRoaXMuX3VwZGF0ZShxKSk7Zm9yKHZhciBzZT1bXTtzZS5sZW5ndGg8TjspdGhpcy5W''@;'; + put 'put ''PXRoaXMuX2htYWMoKS51cGRhdGUodGhpcy5WKS5kaWdlc3QoKSxzZT1zZS5jb25jYXQodGhpcy5WKTt2YXIgb2U9c2Uuc2xpY2UoMCxOKTtyZXR1cm4gdGhpcy5fdXBkYXRlKHEpLHRoaXMuX3Jlc2VlZCsrLGFlLmVuY29kZShvZSxlZSl9fSw2NDU6KFUsUSk9PntRLnJlYWQ9ZnVuY3Rpb24o''@;'; + put 'put ''WixpZSxhZSxZLFcpe3ZhciBOLGVlLHE9OCpXLVktMSxKPSgxPDxxKS0xLHNlPUo+PjEsb2U9LTcsY2U9YWU/Vy0xOjAsZGU9YWU/LTE6MSx2ZT1aW2llK2NlXTtmb3IoY2UrPWRlLE49dmUmKDE8PC1vZSktMSx2ZT4+PS1vZSxvZSs9cTtvZT4wO049MjU2Kk4rWltpZStjZV0sY2UrPWRlLG9l''@;'; + put 'put ''LT04KTtmb3IoZWU9TiYoMTw8LW9lKS0xLE4+Pj0tb2Usb2UrPVk7b2U+MDtlZT0yNTYqZWUrWltpZStjZV0sY2UrPWRlLG9lLT04KTtpZigwPT09TilOPTEtc2U7ZWxzZXtpZihOPT09SilyZXR1cm4gZWU/TmFOOjEvMCoodmU/LTE6MSk7ZWUrPU1hdGgucG93KDIsWSksTi09c2V9cmV0dXJu''@;'; + put 'put ''KHZlPy0xOjEpKmVlKk1hdGgucG93KDIsTi1ZKX0sUS53cml0ZT1mdW5jdGlvbihaLGllLGFlLFksVyxOKXt2YXIgZWUscSxKLHNlPTgqTi1XLTEsb2U9KDE8PHNlKS0xLGNlPW9lPj4xLGRlPTIzPT09Vz9NYXRoLnBvdygyLC0yNCktTWF0aC5wb3coMiwtNzcpOjAsdmU9WT8wOk4tMSxBZT1Z''@;'; + put 'put ''PzE6LTEsa2U9aWU8MHx8MD09PWllJiYxL2llPDA/MTowO2ZvcihpZT1NYXRoLmFicyhpZSksaXNOYU4oaWUpfHxpZT09PTEvMD8ocT1pc05hTihpZSk/MTowLGVlPW9lKTooZWU9TWF0aC5mbG9vcihNYXRoLmxvZyhpZSkvTWF0aC5MTjIpLGllKihKPU1hdGgucG93KDIsLWVlKSk8MSYmKGVl''@;'; + put 'put ''LS0sSio9MiksKGllKz1lZStjZT49MT9kZS9KOmRlKk1hdGgucG93KDIsMS1jZSkpKko+PTImJihlZSsrLEovPTIpLGVlK2NlPj1vZT8ocT0wLGVlPW9lKTplZStjZT49MT8ocT0oaWUqSi0xKSpNYXRoLnBvdygyLFcpLGVlKz1jZSk6KHE9aWUqTWF0aC5wb3coMixjZS0xKSpNYXRoLnBvdygy''@;'; + put 'put ''LFcpLGVlPTApKTtXPj04O1pbYWUrdmVdPTI1NSZxLHZlKz1BZSxxLz0yNTYsVy09OCk7Zm9yKGVlPWVlPDxXfHEsc2UrPVc7c2U+MDtaW2FlK3ZlXT0yNTUmZWUsdmUrPUFlLGVlLz0yNTYsc2UtPTgpO1pbYWUrdmUtQWVdfD0xMjgqa2V9fSw3ODQ0OihVLFEsWik9Pnt2YXIgaWU9Wig0MTU1''@;'; + put 'put ''KSxhZT1aKDI0NzkpLFk9T2JqZWN0LmNyZWF0ZShudWxsKSxXPVooNzc4KTtmdW5jdGlvbiBOKGVlKXtmb3IodmFyIHE9ZWUubGVuZ3RoLEo9W10sc2U9MDtzZTxxO3NlKyspSltzZV09ZWVbc2VdO3JldHVybiBKfVUuZXhwb3J0cz1hZShmdW5jdGlvbihlZSxxKXtyZXR1cm4gWVtlZV0/KFlb''@;'; + put 'put ''ZWVdLnB1c2gocSksbnVsbCk6KFlbZWVdPVtxXSxKPWVlLFcoZnVuY3Rpb24gc2UoKXt2YXIgb2U9WVtKXSxjZT1vZS5sZW5ndGgsZGU9Tihhcmd1bWVudHMpO3RyeXtmb3IodmFyIHZlPTA7dmU8Y2U7dmUrKylvZVt2ZV0uYXBwbHkobnVsbCxkZSl9ZmluYWxseXtvZS5sZW5ndGg+Y2U/KG9l''@;'; + put 'put ''LnNwbGljZSgwLGNlKSxpZS5uZXh0VGljayhmdW5jdGlvbigpe3NlLmFwcGx5KG51bGwsZGUpfSkpOmRlbGV0ZSBZW0pdfX0pKTt2YXIgSn0pfSw1NzE3OlU9PntVLmV4cG9ydHM9ImZ1bmN0aW9uIj09dHlwZW9mIE9iamVjdC5jcmVhdGU/ZnVuY3Rpb24oUSxaKXtaJiYoUS5zdXBlcl89WixR''@;'; + put 'put ''LnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKFoucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6USxlbnVtZXJhYmxlOiExLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSl9OmZ1bmN0aW9uKFEsWil7aWYoWil7US5zdXBlcl89Wjt2YXIgaWU9ZnVuY3Rpb24oKXt9O2llLnByb3Rv''@;'; + put 'put ''dHlwZT1aLnByb3RvdHlwZSxRLnByb3RvdHlwZT1uZXcgaWUsUS5wcm90b3R5cGUuY29uc3RydWN0b3I9UX19fSwyNTg0OihVLFEsWik9PnsidXNlIHN0cmljdCI7dmFyIGllPVooNjQxMCkoKSxhZT1aKDE5MjQpKCJPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nIiksWT1mdW5jdGlvbihlZSl7''@;'; + put 'put ''cmV0dXJuIShpZSYmZWUmJiJvYmplY3QiPT10eXBlb2YgZWUmJlN5bWJvbC50b1N0cmluZ1RhZyBpbiBlZSkmJiJbb2JqZWN0IEFyZ3VtZW50c10iPT09YWUoZWUpfSxXPWZ1bmN0aW9uKGVlKXtyZXR1cm4hIVkoZWUpfHxudWxsIT09ZWUmJiJvYmplY3QiPT10eXBlb2YgZWUmJiJudW1iZXIi''@;'; + put 'put ''PT10eXBlb2YgZWUubGVuZ3RoJiZlZS5sZW5ndGg+PTAmJiJbb2JqZWN0IEFycmF5XSIhPT1hZShlZSkmJiJbb2JqZWN0IEZ1bmN0aW9uXSI9PT1hZShlZS5jYWxsZWUpfSxOPWZ1bmN0aW9uKCl7cmV0dXJuIFkoYXJndW1lbnRzKX0oKTtZLmlzTGVnYWN5QXJndW1lbnRzPVcsVS5leHBvcnRz''@;'; + put 'put ''PU4/WTpXfSw1MzIwOlU9PnsidXNlIHN0cmljdCI7dmFyIFEsWixpZT1GdW5jdGlvbi5wcm90b3R5cGUudG9TdHJpbmcsYWU9Im9iamVjdCI9PXR5cGVvZiBSZWZsZWN0JiZudWxsIT09UmVmbGVjdCYmUmVmbGVjdC5hcHBseTtpZigiZnVuY3Rpb24iPT10eXBlb2YgYWUmJiJmdW5jdGlvbiI9''@;'; + put 'put ''PXR5cGVvZiBPYmplY3QuZGVmaW5lUHJvcGVydHkpdHJ5e1E9T2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LCJsZW5ndGgiLHtnZXQ6ZnVuY3Rpb24oKXt0aHJvdyBafX0pLFo9e30sYWUoZnVuY3Rpb24oKXt0aHJvdyA0Mn0sbnVsbCxRKX1jYXRjaChKKXtKIT09WiYmKGFlPW51bGwpfWVsc2Ug''@;'; + put 'put ''YWU9bnVsbDt2YXIgWT0vXlxzKmNsYXNzXGIvLFc9ZnVuY3Rpb24oSil7dHJ5e3ZhciBzZT1pZS5jYWxsKEopO3JldHVybiBZLnRlc3Qoc2UpfWNhdGNoKG9lKXtyZXR1cm4hMX19LE49T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZyxlZT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYhIVN5''@;'; + put 'put ''bWJvbC50b1N0cmluZ1RhZyxxPSJvYmplY3QiPT10eXBlb2YgZG9jdW1lbnQmJnZvaWQgMD09PWRvY3VtZW50LmFsbCYmdm9pZCAwIT09ZG9jdW1lbnQuYWxsP2RvY3VtZW50LmFsbDp7fTtVLmV4cG9ydHM9YWU/ZnVuY3Rpb24oSil7aWYoSj09PXEpcmV0dXJuITA7aWYoIUp8fCJmdW5jdGlv''@;'; + put 'put ''biIhPXR5cGVvZiBKJiYib2JqZWN0IiE9dHlwZW9mIEopcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIEomJiFKLnByb3RvdHlwZSlyZXR1cm4hMDt0cnl7YWUoSixudWxsLFEpfWNhdGNoKHNlKXtpZihzZSE9PVopcmV0dXJuITF9cmV0dXJuIVcoSil9OmZ1bmN0aW9uKEope2lmKEo9''@;'; + put 'put ''PT1xKXJldHVybiEwO2lmKCFKfHwiZnVuY3Rpb24iIT10eXBlb2YgSiYmIm9iamVjdCIhPXR5cGVvZiBKKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBKJiYhSi5wcm90b3R5cGUpcmV0dXJuITA7aWYoZWUpcmV0dXJuIGZ1bmN0aW9uKG9lKXt0cnl7cmV0dXJuIVcob2UpJiYoaWUu''@;'; + put 'put ''Y2FsbChvZSksITApfWNhdGNoKGNlKXtyZXR1cm4hMX19KEopO2lmKFcoSikpcmV0dXJuITE7dmFyIHNlPU4uY2FsbChKKTtyZXR1cm4iW29iamVjdCBGdW5jdGlvbl0iPT09c2V8fCJbb2JqZWN0IEdlbmVyYXRvckZ1bmN0aW9uXSI9PT1zZX19LDg2NjI6KFUsUSxaKT0+eyJ1c2Ugc3RyaWN0''@;'; + put 'put ''Ijt2YXIgaWUsYWU9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZyxZPUZ1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZyxXPS9eXHMqKD86ZnVuY3Rpb24pP1wqLyxOPVooNjQxMCkoKSxlZT1PYmplY3QuZ2V0UHJvdG90eXBlT2Y7VS5leHBvcnRzPWZ1bmN0aW9uKHEpe2lmKCJmdW5jdGlvbiIh''@;'; + put 'put ''PXR5cGVvZiBxKXJldHVybiExO2lmKFcudGVzdChZLmNhbGwocSkpKXJldHVybiEwO2lmKCFOKXJldHVybiJbb2JqZWN0IEdlbmVyYXRvckZ1bmN0aW9uXSI9PT1hZS5jYWxsKHEpO2lmKCFlZSlyZXR1cm4hMTtpZih2b2lkIDA9PT1pZSl7dmFyIEo9ZnVuY3Rpb24oKXtpZighTilyZXR1cm4h''@;'; + put 'put ''MTt0cnl7cmV0dXJuIEZ1bmN0aW9uKCJyZXR1cm4gZnVuY3Rpb24qKCkge30iKSgpfWNhdGNoKHNlKXt9fSgpO2llPSEhSiYmZWUoSil9cmV0dXJuIGVlKHEpPT09aWV9fSw4NjExOlU9PnsidXNlIHN0cmljdCI7VS5leHBvcnRzPWZ1bmN0aW9uKFEpe3JldHVybiBRIT1RfX0sMzYwOihVLFEs''@;'; + put 'put ''Wik9PnsidXNlIHN0cmljdCI7dmFyIGllPVooNTU1OSksYWU9Wig0Mjg5KSxZPVooODYxMSksVz1aKDk0MTUpLE49WigzMTk0KSxlZT1pZShXKCksTnVtYmVyKTthZShlZSx7Z2V0UG9seWZpbGw6VyxpbXBsZW1lbnRhdGlvbjpZLHNoaW06Tn0pLFUuZXhwb3J0cz1lZX0sOTQxNTooVSxRLFop''@;'; + put 'put ''PT57InVzZSBzdHJpY3QiO3ZhciBpZT1aKDg2MTEpO1UuZXhwb3J0cz1mdW5jdGlvbigpe3JldHVybiBOdW1iZXIuaXNOYU4mJk51bWJlci5pc05hTihOYU4pJiYhTnVtYmVyLmlzTmFOKCJhIik/TnVtYmVyLmlzTmFOOmllfX0sMzE5NDooVSxRLFopPT57InVzZSBzdHJpY3QiO3ZhciBpZT1a''@;'; + put 'put ''KDQyODkpLGFlPVooOTQxNSk7VS5leHBvcnRzPWZ1bmN0aW9uKCl7dmFyIFk9YWUoKTtyZXR1cm4gaWUoTnVtYmVyLHtpc05hTjpZfSx7aXNOYU46ZnVuY3Rpb24oKXtyZXR1cm4gTnVtYmVyLmlzTmFOIT09WX19KSxZfX0sNTY5MjooVSxRLFopPT57InVzZSBzdHJpY3QiO3ZhciBpZT1aKDQw''@;'; + put 'put ''MjkpLGFlPVooMzA4MyksWT1aKDE5MjQpLFc9WSgiT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZyIpLE49Wig2NDEwKSgpLGVlPSJ1bmRlZmluZWQiPT10eXBlb2YgZ2xvYmFsVGhpcz9aLmc6Z2xvYmFsVGhpcyxxPWFlKCksSj1ZKCJBcnJheS5wcm90b3R5cGUuaW5kZXhPZiIsITApfHxmdW5j''@;'; + put 'put ''dGlvbih2ZSxBZSl7Zm9yKHZhciBrZT0wO2tlPHZlLmxlbmd0aDtrZSs9MSlpZih2ZVtrZV09PT1BZSlyZXR1cm4ga2U7cmV0dXJuLTF9LHNlPVkoIlN0cmluZy5wcm90b3R5cGUuc2xpY2UiKSxvZT17fSxjZT1aKDg4MiksZGU9T2JqZWN0LmdldFByb3RvdHlwZU9mO04mJmNlJiZkZSYmaWUo''@;'; + put 'put ''cSxmdW5jdGlvbih2ZSl7dmFyIEFlPW5ldyBlZVt2ZV07aWYoU3ltYm9sLnRvU3RyaW5nVGFnIGluIEFlKXt2YXIga2U9ZGUoQWUpLFNlPWNlKGtlLFN5bWJvbC50b1N0cmluZ1RhZyk7aWYoIVNlKXt2YXIgSWU9ZGUoa2UpO1NlPWNlKEllLFN5bWJvbC50b1N0cmluZ1RhZyl9b2VbdmVdPVNl''@;'; + put 'put ''LmdldH19KSxVLmV4cG9ydHM9ZnVuY3Rpb24odmUpe2lmKCF2ZXx8Im9iamVjdCIhPXR5cGVvZiB2ZSlyZXR1cm4hMTtpZighTnx8IShTeW1ib2wudG9TdHJpbmdUYWcgaW4gdmUpKXt2YXIgQWU9c2UoVyh2ZSksOCwtMSk7cmV0dXJuIEoocSxBZSk+LTF9cmV0dXJuISFjZSYmKGtlPXZlLFNl''@;'; + put 'put ''PSExLGllKG9lLGZ1bmN0aW9uKEllLFRlKXtpZighU2UpdHJ5e1NlPUllLmNhbGwoa2UpPT09VGV9Y2F0Y2goRWUpe319KSxTZSk7dmFyIGtlLFNlfX0sNjgxMzooVSxRLFopPT57bGV0IGllO3RyeXtpZT1aKDc3KX1jYXRjaChlZSl7aWU9Wig0MTI5KX1jb25zdCBhZT1aKDg5ODEpLHtzdHJp''@;'; + put 'put ''bmdpZnk6WSxzdHJpcEJvbTpXfT1aKDY3ODApLE49e3JlYWRGaWxlOmFlLmZyb21Qcm9taXNlKGZ1bmN0aW9uKCl7dmFyIGVlPW1lKGZ1bmN0aW9uKihxLEo9e30peyJzdHJpbmciPT10eXBlb2YgSiYmKEo9e2VuY29kaW5nOkp9KTtjb25zdCBzZT1KLmZzfHxpZSxvZT0hKCJ0aHJvd3MiaW4g''@;'; + put 'put ''Sil8fEoudGhyb3dzO2xldCBjZSxkZT15aWVsZCBhZS5mcm9tQ2FsbGJhY2soc2UucmVhZEZpbGUpKHEsSik7ZGU9VyhkZSk7dHJ5e2NlPUpTT04ucGFyc2UoZGUsSj9KLnJldml2ZXI6bnVsbCl9Y2F0Y2godmUpe2lmKG9lKXRocm93IHZlLm1lc3NhZ2U9YCR7cX06ICR7dmUubWVzc2FnZX1g''@;'; + put 'put ''LHZlO3JldHVybiBudWxsfXJldHVybiBjZX0pO3JldHVybiBmdW5jdGlvbihxKXtyZXR1cm4gZWUuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKSkscmVhZEZpbGVTeW5jOmZ1bmN0aW9uKGVlLHE9e30peyJzdHJpbmciPT10eXBlb2YgcSYmKHE9e2VuY29kaW5nOnF9KTtjb25zdCBKPXEuZnN8''@;'; + put 'put ''fGllLHNlPSEoInRocm93cyJpbiBxKXx8cS50aHJvd3M7dHJ5e2xldCBvZT1KLnJlYWRGaWxlU3luYyhlZSxxKTtyZXR1cm4gb2U9VyhvZSksSlNPTi5wYXJzZShvZSxxLnJldml2ZXIpfWNhdGNoKG9lKXtpZihzZSl0aHJvdyBvZS5tZXNzYWdlPWAke2VlfTogJHtvZS5tZXNzYWdlfWAsb2U7''@;'; + put 'put ''cmV0dXJuIG51bGx9fSx3cml0ZUZpbGU6YWUuZnJvbVByb21pc2UoZnVuY3Rpb24oKXt2YXIgZWU9bWUoZnVuY3Rpb24qKHEsSixzZT17fSl7Y29uc3Qgb2U9c2UuZnN8fGllLGNlPVkoSixzZSk7eWllbGQgYWUuZnJvbUNhbGxiYWNrKG9lLndyaXRlRmlsZSkocSxjZSxzZSl9KTtyZXR1cm4g''@;'; + put 'put ''ZnVuY3Rpb24ocSxKKXtyZXR1cm4gZWUuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKSksd3JpdGVGaWxlU3luYzpmdW5jdGlvbihlZSxxLEo9e30pe2NvbnN0IHNlPUouZnN8fGllLG9lPVkocSxKKTtyZXR1cm4gc2Uud3JpdGVGaWxlU3luYyhlZSxvZSxKKX19O1UuZXhwb3J0cz1OfSw2Nzgw''@;'; + put 'put ''OihVLFEsWik9Pnt2YXIgaWU9Wig4NzY0KS5CdWZmZXI7VS5leHBvcnRzPXtzdHJpbmdpZnk6ZnVuY3Rpb24oYWUse0VPTDpZPSJcbiIsZmluYWxFT0w6Vz0hMCxyZXBsYWNlcjpOPW51bGwsc3BhY2VzOmVlfT17fSl7Y29uc3QgcT1XP1k6IiI7cmV0dXJuIEpTT04uc3RyaW5naWZ5KGFlLE4s''@;'; + put 'put ''ZWUpLnJlcGxhY2UoL1xuL2csWSkrcX0sc3RyaXBCb206ZnVuY3Rpb24oYWUpe3JldHVybiBpZS5pc0J1ZmZlcihhZSkmJihhZT1hZS50b1N0cmluZygidXRmOCIpKSxhZS5yZXBsYWNlKC9eXHVGRUZGLywiIil9fX0sNjI0NTooVSxRLFopPT57InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGllKGVl''@;'; + put 'put ''KXt0aGlzLm1lc3NhZ2U9ZWV9Wi5yKFEpLFouZChRLHtkZWZhdWx0OigpPT5OLEludmFsaWRUb2tlbkVycm9yOigpPT5XfSksKGllLnByb3RvdHlwZT1uZXcgRXJyb3IpLm5hbWU9IkludmFsaWRDaGFyYWN0ZXJFcnJvciI7dmFyIGFlPSJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiZ3aW5k''@;'; + put 'put ''b3cuYXRvYiYmd2luZG93LmF0b2IuYmluZCh3aW5kb3cpfHxmdW5jdGlvbihlZSl7dmFyIHE9U3RyaW5nKGVlKS5yZXBsYWNlKC89KyQvLCIiKTtpZihxLmxlbmd0aCU0PT0xKXRocm93IG5ldyBpZSgiJ2F0b2InIGZhaWxlZDogVGhlIHN0cmluZyB0byBiZSBkZWNvZGVkIGlzIG5vdCBjb3Jy''@;'; + put 'put ''ZWN0bHkgZW5jb2RlZC4iKTtmb3IodmFyIEosc2Usb2U9MCxjZT0wLGRlPSIiO3NlPXEuY2hhckF0KGNlKyspO35zZSYmKEo9b2UlND82NCpKK3NlOnNlLG9lKyslNCk/ZGUrPVN0cmluZy5mcm9tQ2hhckNvZGUoMjU1Jko+PigtMipvZSY2KSk6MClzZT0iQUJDREVGR0hJSktMTU5PUFFSU1RV''@;'; + put 'put ''VldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLz0iLmluZGV4T2Yoc2UpO3JldHVybiBkZX07ZnVuY3Rpb24gVyhlZSl7dGhpcy5tZXNzYWdlPWVlfShXLnByb3RvdHlwZT1uZXcgRXJyb3IpLm5hbWU9IkludmFsaWRUb2tlbkVycm9yIjtjb25zdCBOPWZ1bmN0aW9u''@;'; + put 'put ''KGVlLHEpe2lmKCJzdHJpbmciIT10eXBlb2YgZWUpdGhyb3cgbmV3IFcoIkludmFsaWQgdG9rZW4gc3BlY2lmaWVkIik7dmFyIEo9ITA9PT0ocT1xfHx7fSkuaGVhZGVyPzA6MTt0cnl7cmV0dXJuIEpTT04ucGFyc2UoZnVuY3Rpb24gWShlZSl7dmFyIHE9ZWUucmVwbGFjZSgvLS9nLCIrIiku''@;'; + put 'put ''cmVwbGFjZSgvXy9nLCIvIik7c3dpdGNoKHEubGVuZ3RoJTQpe2Nhc2UgMDpicmVhaztjYXNlIDI6cSs9Ij09IjticmVhaztjYXNlIDM6cSs9Ij0iO2JyZWFrO2RlZmF1bHQ6dGhyb3ciSWxsZWdhbCBiYXNlNjR1cmwgc3RyaW5nISJ9dHJ5e3JldHVybiBkZWNvZGVVUklDb21wb25lbnQoYWUo''@;'; + put 'put ''cSkucmVwbGFjZSgvKC4pL2csZnVuY3Rpb24oc2Usb2Upe3ZhciBjZT1vZS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpO3JldHVybiBjZS5sZW5ndGg8MiYmKGNlPSIwIitjZSksIiUiK2NlfSkpfWNhdGNoKEope3JldHVybiBhZShxKX19KGVlLnNwbGl0KCIuIilb''@;'; + put 'put ''Sl0pKX1jYXRjaChzZSl7dGhyb3cgbmV3IFcoIkludmFsaWQgdG9rZW4gc3BlY2lmaWVkOiAiK3NlLm1lc3NhZ2UpfX19LDIzMTg6KFUsUSxaKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgaWU9Wig1NzE3KSxhZT1aKDMzNDkpLFk9Wig5NTA5KS5CdWZmZXIsVz1uZXcgQXJyYXkoMTYpO2Z1bmN0aW9u''@;'; + put 'put ''IE4oKXthZS5jYWxsKHRoaXMsNjQpLHRoaXMuX2E9MTczMjU4NDE5Myx0aGlzLl9iPTQwMjMyMzM0MTcsdGhpcy5fYz0yNTYyMzgzMTAyLHRoaXMuX2Q9MjcxNzMzODc4fWZ1bmN0aW9uIGVlKGNlLGRlKXtyZXR1cm4gY2U8PGRlfGNlPj4+MzItZGV9ZnVuY3Rpb24gcShjZSxkZSx2ZSxBZSxr''@;'; + put 'put ''ZSxTZSxJZSl7cmV0dXJuIGVlKGNlKyhkZSZ2ZXx+ZGUmQWUpK2tlK1NlfDAsSWUpK2RlfDB9ZnVuY3Rpb24gSihjZSxkZSx2ZSxBZSxrZSxTZSxJZSl7cmV0dXJuIGVlKGNlKyhkZSZBZXx2ZSZ+QWUpK2tlK1NlfDAsSWUpK2RlfDB9ZnVuY3Rpb24gc2UoY2UsZGUsdmUsQWUsa2UsU2UsSWUp''@;'; + put 'put ''e3JldHVybiBlZShjZSsoZGVedmVeQWUpK2tlK1NlfDAsSWUpK2RlfDB9ZnVuY3Rpb24gb2UoY2UsZGUsdmUsQWUsa2UsU2UsSWUpe3JldHVybiBlZShjZSsodmVeKGRlfH5BZSkpK2tlK1NlfDAsSWUpK2RlfDB9aWUoTixhZSksTi5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbigpe2Zvcih2''@;'; + put 'put ''YXIgY2U9VyxkZT0wO2RlPDE2OysrZGUpY2VbZGVdPXRoaXMuX2Jsb2NrLnJlYWRJbnQzMkxFKDQqZGUpO3ZhciB2ZT10aGlzLl9hLEFlPXRoaXMuX2Isa2U9dGhpcy5fYyxTZT10aGlzLl9kO3ZlPXEodmUsQWUsa2UsU2UsY2VbMF0sMzYxNDA5MDM2MCw3KSxTZT1xKFNlLHZlLEFlLGtlLGNl''@;'; + put 'put ''WzFdLDM5MDU0MDI3MTAsMTIpLGtlPXEoa2UsU2UsdmUsQWUsY2VbMl0sNjA2MTA1ODE5LDE3KSxBZT1xKEFlLGtlLFNlLHZlLGNlWzNdLDMyNTA0NDE5NjYsMjIpLHZlPXEodmUsQWUsa2UsU2UsY2VbNF0sNDExODU0ODM5OSw3KSxTZT1xKFNlLHZlLEFlLGtlLGNlWzVdLDEyMDAwODA0MjYs''@;'; + put 'put ''MTIpLGtlPXEoa2UsU2UsdmUsQWUsY2VbNl0sMjgyMTczNTk1NSwxNyksQWU9cShBZSxrZSxTZSx2ZSxjZVs3XSw0MjQ5MjYxMzEzLDIyKSx2ZT1xKHZlLEFlLGtlLFNlLGNlWzhdLDE3NzAwMzU0MTYsNyksU2U9cShTZSx2ZSxBZSxrZSxjZVs5XSwyMzM2NTUyODc5LDEyKSxrZT1xKGtlLFNl''@;'; + put 'put ''LHZlLEFlLGNlWzEwXSw0Mjk0OTI1MjMzLDE3KSxBZT1xKEFlLGtlLFNlLHZlLGNlWzExXSwyMzA0NTYzMTM0LDIyKSx2ZT1xKHZlLEFlLGtlLFNlLGNlWzEyXSwxODA0NjAzNjgyLDcpLFNlPXEoU2UsdmUsQWUsa2UsY2VbMTNdLDQyNTQ2MjYxOTUsMTIpLGtlPXEoa2UsU2UsdmUsQWUsY2Vb''@;'; + put 'put ''MTRdLDI3OTI5NjUwMDYsMTcpLHZlPUoodmUsQWU9cShBZSxrZSxTZSx2ZSxjZVsxNV0sMTIzNjUzNTMyOSwyMiksa2UsU2UsY2VbMV0sNDEyOTE3MDc4Niw1KSxTZT1KKFNlLHZlLEFlLGtlLGNlWzZdLDMyMjU0NjU2NjQsOSksa2U9SihrZSxTZSx2ZSxBZSxjZVsxMV0sNjQzNzE3NzEzLDE0''@;'; + put 'put ''KSxBZT1KKEFlLGtlLFNlLHZlLGNlWzBdLDM5MjEwNjk5OTQsMjApLHZlPUoodmUsQWUsa2UsU2UsY2VbNV0sMzU5MzQwODYwNSw1KSxTZT1KKFNlLHZlLEFlLGtlLGNlWzEwXSwzODAxNjA4Myw5KSxrZT1KKGtlLFNlLHZlLEFlLGNlWzE1XSwzNjM0NDg4OTYxLDE0KSxBZT1KKEFlLGtlLFNl''@;'; + put 'put ''LHZlLGNlWzRdLDM4ODk0Mjk0NDgsMjApLHZlPUoodmUsQWUsa2UsU2UsY2VbOV0sNTY4NDQ2NDM4LDUpLFNlPUooU2UsdmUsQWUsa2UsY2VbMTRdLDMyNzUxNjM2MDYsOSksa2U9SihrZSxTZSx2ZSxBZSxjZVszXSw0MTA3NjAzMzM1LDE0KSxBZT1KKEFlLGtlLFNlLHZlLGNlWzhdLDExNjM1''@;'; + put 'put ''MzE1MDEsMjApLHZlPUoodmUsQWUsa2UsU2UsY2VbMTNdLDI4NTAyODU4MjksNSksU2U9SihTZSx2ZSxBZSxrZSxjZVsyXSw0MjQzNTYzNTEyLDkpLGtlPUooa2UsU2UsdmUsQWUsY2VbN10sMTczNTMyODQ3MywxNCksdmU9c2UodmUsQWU9SihBZSxrZSxTZSx2ZSxjZVsxMl0sMjM2ODM1OTU2''@;'; + put 'put ''MiwyMCksa2UsU2UsY2VbNV0sNDI5NDU4ODczOCw0KSxTZT1zZShTZSx2ZSxBZSxrZSxjZVs4XSwyMjcyMzkyODMzLDExKSxrZT1zZShrZSxTZSx2ZSxBZSxjZVsxMV0sMTgzOTAzMDU2MiwxNiksQWU9c2UoQWUsa2UsU2UsdmUsY2VbMTRdLDQyNTk2NTc3NDAsMjMpLHZlPXNlKHZlLEFlLGtl''@;'; + put 'put ''LFNlLGNlWzFdLDI3NjM5NzUyMzYsNCksU2U9c2UoU2UsdmUsQWUsa2UsY2VbNF0sMTI3Mjg5MzM1MywxMSksa2U9c2Uoa2UsU2UsdmUsQWUsY2VbN10sNDEzOTQ2OTY2NCwxNiksQWU9c2UoQWUsa2UsU2UsdmUsY2VbMTBdLDMyMDAyMzY2NTYsMjMpLHZlPXNlKHZlLEFlLGtlLFNlLGNlWzEz''@;'; + put 'put ''XSw2ODEyNzkxNzQsNCksU2U9c2UoU2UsdmUsQWUsa2UsY2VbMF0sMzkzNjQzMDA3NCwxMSksa2U9c2Uoa2UsU2UsdmUsQWUsY2VbM10sMzU3MjQ0NTMxNywxNiksQWU9c2UoQWUsa2UsU2UsdmUsY2VbNl0sNzYwMjkxODksMjMpLHZlPXNlKHZlLEFlLGtlLFNlLGNlWzldLDM2NTQ2MDI4MDks''@;'; + put 'put ''NCksU2U9c2UoU2UsdmUsQWUsa2UsY2VbMTJdLDM4NzMxNTE0NjEsMTEpLGtlPXNlKGtlLFNlLHZlLEFlLGNlWzE1XSw1MzA3NDI1MjAsMTYpLHZlPW9lKHZlLEFlPXNlKEFlLGtlLFNlLHZlLGNlWzJdLDMyOTk2Mjg2NDUsMjMpLGtlLFNlLGNlWzBdLDQwOTYzMzY0NTIsNiksU2U9b2UoU2Us''@;'; + put 'put ''dmUsQWUsa2UsY2VbN10sMTEyNjg5MTQxNSwxMCksa2U9b2Uoa2UsU2UsdmUsQWUsY2VbMTRdLDI4Nzg2MTIzOTEsMTUpLEFlPW9lKEFlLGtlLFNlLHZlLGNlWzVdLDQyMzc1MzMyNDEsMjEpLHZlPW9lKHZlLEFlLGtlLFNlLGNlWzEyXSwxNzAwNDg1NTcxLDYpLFNlPW9lKFNlLHZlLEFlLGtl''@;'; + put 'put ''LGNlWzNdLDIzOTk5ODA2OTAsMTApLGtlPW9lKGtlLFNlLHZlLEFlLGNlWzEwXSw0MjkzOTE1NzczLDE1KSxBZT1vZShBZSxrZSxTZSx2ZSxjZVsxXSwyMjQwMDQ0NDk3LDIxKSx2ZT1vZSh2ZSxBZSxrZSxTZSxjZVs4XSwxODczMzEzMzU5LDYpLFNlPW9lKFNlLHZlLEFlLGtlLGNlWzE1XSw0''@;'; + put 'put ''MjY0MzU1NTUyLDEwKSxrZT1vZShrZSxTZSx2ZSxBZSxjZVs2XSwyNzM0NzY4OTE2LDE1KSxBZT1vZShBZSxrZSxTZSx2ZSxjZVsxM10sMTMwOTE1MTY0OSwyMSksdmU9b2UodmUsQWUsa2UsU2UsY2VbNF0sNDE0OTQ0NDIyNiw2KSxTZT1vZShTZSx2ZSxBZSxrZSxjZVsxMV0sMzE3NDc1Njkx''@;'; + put 'put ''NywxMCksa2U9b2Uoa2UsU2UsdmUsQWUsY2VbMl0sNzE4Nzg3MjU5LDE1KSxBZT1vZShBZSxrZSxTZSx2ZSxjZVs5XSwzOTUxNDgxNzQ1LDIxKSx0aGlzLl9hPXRoaXMuX2ErdmV8MCx0aGlzLl9iPXRoaXMuX2IrQWV8MCx0aGlzLl9jPXRoaXMuX2Mra2V8MCx0aGlzLl9kPXRoaXMuX2QrU2V8''@;'; + put 'put ''MH0sTi5wcm90b3R5cGUuX2RpZ2VzdD1mdW5jdGlvbigpe3RoaXMuX2Jsb2NrW3RoaXMuX2Jsb2NrT2Zmc2V0KytdPTEyOCx0aGlzLl9ibG9ja09mZnNldD41NiYmKHRoaXMuX2Jsb2NrLmZpbGwoMCx0aGlzLl9ibG9ja09mZnNldCw2NCksdGhpcy5fdXBkYXRlKCksdGhpcy5fYmxvY2tPZmZz''@;'; + put 'put ''ZXQ9MCksdGhpcy5fYmxvY2suZmlsbCgwLHRoaXMuX2Jsb2NrT2Zmc2V0LDU2KSx0aGlzLl9ibG9jay53cml0ZVVJbnQzMkxFKHRoaXMuX2xlbmd0aFswXSw1NiksdGhpcy5fYmxvY2sud3JpdGVVSW50MzJMRSh0aGlzLl9sZW5ndGhbMV0sNjApLHRoaXMuX3VwZGF0ZSgpO3ZhciBjZT1ZLmFs''@;'; + put 'put ''bG9jVW5zYWZlKDE2KTtyZXR1cm4gY2Uud3JpdGVJbnQzMkxFKHRoaXMuX2EsMCksY2Uud3JpdGVJbnQzMkxFKHRoaXMuX2IsNCksY2Uud3JpdGVJbnQzMkxFKHRoaXMuX2MsOCksY2Uud3JpdGVJbnQzMkxFKHRoaXMuX2QsMTIpLGNlfSxVLmV4cG9ydHM9Tn0sMzA0NzooVSxRLFopPT57dmFy''@;'; + put 'put ''IGllPVooNjI0MCksYWU9Wig5OTMxKTtmdW5jdGlvbiBZKFcpe3RoaXMucmFuZD1XfHxuZXcgYWUuUmFuZH1VLmV4cG9ydHM9WSxZLmNyZWF0ZT1mdW5jdGlvbihXKXtyZXR1cm4gbmV3IFkoVyl9LFkucHJvdG90eXBlLl9yYW5kYmVsb3c9ZnVuY3Rpb24oVyl7dmFyIE49Vy5iaXRMZW5ndGgo''@;'; + put 'put ''KSxlZT1NYXRoLmNlaWwoTi84KTtkb3t2YXIgcT1uZXcgaWUodGhpcy5yYW5kLmdlbmVyYXRlKGVlKSl9d2hpbGUocS5jbXAoVyk+PTApO3JldHVybiBxfSxZLnByb3RvdHlwZS5fcmFuZHJhbmdlPWZ1bmN0aW9uKFcsTil7dmFyIGVlPU4uc3ViKFcpO3JldHVybiBXLmFkZCh0aGlzLl9yYW5k''@;'; + put 'put ''YmVsb3coZWUpKX0sWS5wcm90b3R5cGUudGVzdD1mdW5jdGlvbihXLE4sZWUpe3ZhciBxPVcuYml0TGVuZ3RoKCksSj1pZS5tb250KFcpLHNlPW5ldyBpZSgxKS50b1JlZChKKTtOfHwoTj1NYXRoLm1heCgxLHEvNDh8MCkpO2Zvcih2YXIgb2U9Vy5zdWJuKDEpLGNlPTA7IW9lLnRlc3RuKGNl''@;'; + put 'put ''KTtjZSsrKTtmb3IodmFyIGRlPVcuc2hybihjZSksdmU9b2UudG9SZWQoSik7Tj4wO04tLSl7dmFyIEFlPXRoaXMuX3JhbmRyYW5nZShuZXcgaWUoMiksb2UpO2VlJiZlZShBZSk7dmFyIGtlPUFlLnRvUmVkKEopLnJlZFBvdyhkZSk7aWYoMCE9PWtlLmNtcChzZSkmJjAhPT1rZS5jbXAodmUp''@;'; + put 'put ''KXtmb3IodmFyIFNlPTE7U2U8Y2U7U2UrKyl7aWYoMD09PShrZT1rZS5yZWRTcXIoKSkuY21wKHNlKSlyZXR1cm4hMTtpZigwPT09a2UuY21wKHZlKSlicmVha31pZihTZT09PWNlKXJldHVybiExfX1yZXR1cm4hMH0sWS5wcm90b3R5cGUuZ2V0RGl2aXNvcj1mdW5jdGlvbihXLE4pe3ZhciBl''@;'; + put 'put ''ZT1XLmJpdExlbmd0aCgpLHE9aWUubW9udChXKSxKPW5ldyBpZSgxKS50b1JlZChxKTtOfHwoTj1NYXRoLm1heCgxLGVlLzQ4fDApKTtmb3IodmFyIHNlPVcuc3VibigxKSxvZT0wOyFzZS50ZXN0bihvZSk7b2UrKyk7Zm9yKHZhciBjZT1XLnNocm4ob2UpLGRlPXNlLnRvUmVkKHEpO04+MDtO''@;'; + put 'put ''LS0pe3ZhciB2ZT10aGlzLl9yYW5kcmFuZ2UobmV3IGllKDIpLHNlKSxBZT1XLmdjZCh2ZSk7aWYoMCE9PUFlLmNtcG4oMSkpcmV0dXJuIEFlO3ZhciBrZT12ZS50b1JlZChxKS5yZWRQb3coY2UpO2lmKDAhPT1rZS5jbXAoSikmJjAhPT1rZS5jbXAoZGUpKXtmb3IodmFyIFNlPTE7U2U8b2U7''@;'; + put 'put ''U2UrKyl7aWYoMD09PShrZT1rZS5yZWRTcXIoKSkuY21wKEopKXJldHVybiBrZS5mcm9tUmVkKCkuc3VibigxKS5nY2QoVyk7aWYoMD09PWtlLmNtcChkZSkpYnJlYWt9aWYoU2U9PT1vZSlyZXR1cm4oa2U9a2UucmVkU3FyKCkpLmZyb21SZWQoKS5zdWJuKDEpLmdjZChXKX19cmV0dXJuITF9''@;'; + put 'put ''fSw2MjQwOmZ1bmN0aW9uKFUsUSxaKXshZnVuY3Rpb24oaWUsYWUpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBZKHgsUCl7aWYoIXgpdGhyb3cgbmV3IEVycm9yKFB8fCJBc3NlcnRpb24gZmFpbGVkIil9ZnVuY3Rpb24gVyh4LFApe3guc3VwZXJfPVA7dmFyIFY9ZnVuY3Rpb24oKXt9O1YucHJv''@;'; + put 'put ''dG90eXBlPVAucHJvdG90eXBlLHgucHJvdG90eXBlPW5ldyBWLHgucHJvdG90eXBlLmNvbnN0cnVjdG9yPXh9ZnVuY3Rpb24gTih4LFAsVil7aWYoTi5pc0JOKHgpKXJldHVybiB4O3RoaXMubmVnYXRpdmU9MCx0aGlzLndvcmRzPW51bGwsdGhpcy5sZW5ndGg9MCx0aGlzLnJlZD1udWxsLG51''@;'; + put 'put ''bGwhPT14JiYoImxlIiE9PVAmJiJiZSIhPT1QfHwoVj1QLFA9MTApLHRoaXMuX2luaXQoeHx8MCxQfHwxMCxWfHwiYmUiKSl9dmFyIGVlOyJvYmplY3QiPT10eXBlb2YgaWU/aWUuZXhwb3J0cz1OOmFlLkJOPU4sTi5CTj1OLE4ud29yZFNpemU9MjY7dHJ5e2VlPSJ1bmRlZmluZWQiIT10eXBl''@;'; + put 'put ''b2Ygd2luZG93JiZ2b2lkIDAhPT13aW5kb3cuQnVmZmVyP3dpbmRvdy5CdWZmZXI6Wig2NjE5KS5CdWZmZXJ9Y2F0Y2goeCl7fWZ1bmN0aW9uIHEoeCxQKXt2YXIgVj14LmNoYXJDb2RlQXQoUCk7cmV0dXJuIFY+PTY1JiZWPD03MD9WLTU1OlY+PTk3JiZWPD0xMDI/Vi04NzpWLTQ4JjE1fWZ1''@;'; + put 'put ''bmN0aW9uIEooeCxQLFYpe3ZhciBUPXEoeCxWKTtyZXR1cm4gVi0xPj1QJiYoVHw9cSh4LFYtMSk8PDQpLFR9ZnVuY3Rpb24gc2UoeCxQLFYsVCl7Zm9yKHZhciBTPTAsRj1NYXRoLm1pbih4Lmxlbmd0aCxWKSx5ZT1QO3llPEY7eWUrKyl7dmFyIENlPXguY2hhckNvZGVBdCh5ZSktNDg7Uyo9''@;'; + put 'put ''VCxTKz1DZT49NDk/Q2UtNDkrMTA6Q2U+PTE3P0NlLTE3KzEwOkNlfXJldHVybiBTfU4uaXNCTj1mdW5jdGlvbih4KXtyZXR1cm4geCBpbnN0YW5jZW9mIE58fG51bGwhPT14JiYib2JqZWN0Ij09dHlwZW9mIHgmJnguY29uc3RydWN0b3Iud29yZFNpemU9PT1OLndvcmRTaXplJiZBcnJheS5p''@;'; + put 'put ''c0FycmF5KHgud29yZHMpfSxOLm1heD1mdW5jdGlvbih4LFApe3JldHVybiB4LmNtcChQKT4wP3g6UH0sTi5taW49ZnVuY3Rpb24oeCxQKXtyZXR1cm4geC5jbXAoUCk8MD94OlB9LE4ucHJvdG90eXBlLl9pbml0PWZ1bmN0aW9uKHgsUCxWKXtpZigibnVtYmVyIj09dHlwZW9mIHgpcmV0dXJu''@;'; + put 'put ''IHRoaXMuX2luaXROdW1iZXIoeCxQLFYpO2lmKCJvYmplY3QiPT10eXBlb2YgeClyZXR1cm4gdGhpcy5faW5pdEFycmF5KHgsUCxWKTsiaGV4Ij09PVAmJihQPTE2KSxZKFA9PT0oMHxQKSYmUD49MiYmUDw9MzYpO3ZhciBUPTA7Ii0iPT09KHg9eC50b1N0cmluZygpLnJlcGxhY2UoL1xzKy9n''@;'; + put 'put ''LCIiKSlbMF0mJihUKyssdGhpcy5uZWdhdGl2ZT0xKSxUPHgubGVuZ3RoJiYoMTY9PT1QP3RoaXMuX3BhcnNlSGV4KHgsVCxWKToodGhpcy5fcGFyc2VCYXNlKHgsUCxUKSwibGUiPT09ViYmdGhpcy5faW5pdEFycmF5KHRoaXMudG9BcnJheSgpLFAsVikpKX0sTi5wcm90b3R5cGUuX2luaXRO''@;'; + put 'put ''dW1iZXI9ZnVuY3Rpb24oeCxQLFYpe3g8MCYmKHRoaXMubmVnYXRpdmU9MSx4PS14KSx4PDY3MTA4ODY0Pyh0aGlzLndvcmRzPVs2NzEwODg2MyZ4XSx0aGlzLmxlbmd0aD0xKTp4PDQ1MDM1OTk2MjczNzA0OTY/KHRoaXMud29yZHM9WzY3MTA4ODYzJngseC82NzEwODg2NCY2NzEwODg2M10s''@;'; + put 'put ''dGhpcy5sZW5ndGg9Mik6KFkoeDw5MDA3MTk5MjU0NzQwOTkyKSx0aGlzLndvcmRzPVs2NzEwODg2MyZ4LHgvNjcxMDg4NjQmNjcxMDg4NjMsMV0sdGhpcy5sZW5ndGg9MyksImxlIj09PVYmJnRoaXMuX2luaXRBcnJheSh0aGlzLnRvQXJyYXkoKSxQLFYpfSxOLnByb3RvdHlwZS5faW5pdEFy''@;'; + put 'put ''cmF5PWZ1bmN0aW9uKHgsUCxWKXtpZihZKCJudW1iZXIiPT10eXBlb2YgeC5sZW5ndGgpLHgubGVuZ3RoPD0wKXJldHVybiB0aGlzLndvcmRzPVswXSx0aGlzLmxlbmd0aD0xLHRoaXM7dGhpcy5sZW5ndGg9TWF0aC5jZWlsKHgubGVuZ3RoLzMpLHRoaXMud29yZHM9bmV3IEFycmF5KHRoaXMu''@;'; + put 'put ''bGVuZ3RoKTtmb3IodmFyIFQ9MDtUPHRoaXMubGVuZ3RoO1QrKyl0aGlzLndvcmRzW1RdPTA7dmFyIFMsRix5ZT0wO2lmKCJiZSI9PT1WKWZvcihUPXgubGVuZ3RoLTEsUz0wO1Q+PTA7VC09Myl0aGlzLndvcmRzW1NdfD0oRj14W1RdfHhbVC0xXTw8OHx4W1QtMl08PDE2KTw8eWUmNjcxMDg4''@;'; + put 'put ''NjMsdGhpcy53b3Jkc1tTKzFdPUY+Pj4yNi15ZSY2NzEwODg2MywoeWUrPTI0KT49MjYmJih5ZS09MjYsUysrKTtlbHNlIGlmKCJsZSI9PT1WKWZvcihUPTAsUz0wO1Q8eC5sZW5ndGg7VCs9Myl0aGlzLndvcmRzW1NdfD0oRj14W1RdfHhbVCsxXTw8OHx4W1QrMl08PDE2KTw8eWUmNjcxMDg4''@;'; + put 'put ''NjMsdGhpcy53b3Jkc1tTKzFdPUY+Pj4yNi15ZSY2NzEwODg2MywoeWUrPTI0KT49MjYmJih5ZS09MjYsUysrKTtyZXR1cm4gdGhpcy5zdHJpcCgpfSxOLnByb3RvdHlwZS5fcGFyc2VIZXg9ZnVuY3Rpb24oeCxQLFYpe3RoaXMubGVuZ3RoPU1hdGguY2VpbCgoeC5sZW5ndGgtUCkvNiksdGhp''@;'; + put 'put ''cy53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgpO2Zvcih2YXIgVD0wO1Q8dGhpcy5sZW5ndGg7VCsrKXRoaXMud29yZHNbVF09MDt2YXIgUyxGPTAseWU9MDtpZigiYmUiPT09Vilmb3IoVD14Lmxlbmd0aC0xO1Q+PVA7VC09MilTPUooeCxQLFQpPDxGLHRoaXMud29yZHNbeWVdfD02NzEw''@;'; + put 'put ''ODg2MyZTLEY+PTE4PyhGLT0xOCx0aGlzLndvcmRzW3llKz0xXXw9Uz4+PjI2KTpGKz04O2Vsc2UgZm9yKFQ9KHgubGVuZ3RoLVApJTI9PTA/UCsxOlA7VDx4Lmxlbmd0aDtUKz0yKVM9Sih4LFAsVCk8PEYsdGhpcy53b3Jkc1t5ZV18PTY3MTA4ODYzJlMsRj49MTg/KEYtPTE4LHRoaXMud29y''@;'; + put 'put ''ZHNbeWUrPTFdfD1TPj4+MjYpOkYrPTg7dGhpcy5zdHJpcCgpfSxOLnByb3RvdHlwZS5fcGFyc2VCYXNlPWZ1bmN0aW9uKHgsUCxWKXt0aGlzLndvcmRzPVswXSx0aGlzLmxlbmd0aD0xO2Zvcih2YXIgVD0wLFM9MTtTPD02NzEwODg2MztTKj1QKVQrKztULS0sUz1TL1B8MDtmb3IodmFyIEY9''@;'; + put 'put ''eC5sZW5ndGgtVix5ZT1GJVQsQ2U9TWF0aC5taW4oRixGLXllKStWLERlPTAsUGU9VjtQZTxDZTtQZSs9VClEZT1zZSh4LFBlLFBlK1QsUCksdGhpcy5pbXVsbihTKSx0aGlzLndvcmRzWzBdK0RlPDY3MTA4ODY0P3RoaXMud29yZHNbMF0rPURlOnRoaXMuX2lhZGRuKERlKTtpZigwIT09eWUp''@;'; + put 'put ''e3ZhciBRZT0xO2ZvcihEZT1zZSh4LFBlLHgubGVuZ3RoLFApLFBlPTA7UGU8eWU7UGUrKylRZSo9UDt0aGlzLmltdWxuKFFlKSx0aGlzLndvcmRzWzBdK0RlPDY3MTA4ODY0P3RoaXMud29yZHNbMF0rPURlOnRoaXMuX2lhZGRuKERlKX10aGlzLnN0cmlwKCl9LE4ucHJvdG90eXBlLmNvcHk9''@;'; + put 'put ''ZnVuY3Rpb24oeCl7eC53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgpO2Zvcih2YXIgUD0wO1A8dGhpcy5sZW5ndGg7UCsrKXgud29yZHNbUF09dGhpcy53b3Jkc1tQXTt4Lmxlbmd0aD10aGlzLmxlbmd0aCx4Lm5lZ2F0aXZlPXRoaXMubmVnYXRpdmUseC5yZWQ9dGhpcy5yZWR9LE4ucHJv''@;'; + put 'put ''dG90eXBlLmNsb25lPWZ1bmN0aW9uKCl7dmFyIHg9bmV3IE4obnVsbCk7cmV0dXJuIHRoaXMuY29weSh4KSx4fSxOLnByb3RvdHlwZS5fZXhwYW5kPWZ1bmN0aW9uKHgpe2Zvcig7dGhpcy5sZW5ndGg8eDspdGhpcy53b3Jkc1t0aGlzLmxlbmd0aCsrXT0wO3JldHVybiB0aGlzfSxOLnByb3Rv''@;'; + put 'put ''dHlwZS5zdHJpcD1mdW5jdGlvbigpe2Zvcig7dGhpcy5sZW5ndGg+MSYmMD09PXRoaXMud29yZHNbdGhpcy5sZW5ndGgtMV07KXRoaXMubGVuZ3RoLS07cmV0dXJuIHRoaXMuX25vcm1TaWduKCl9LE4ucHJvdG90eXBlLl9ub3JtU2lnbj1mdW5jdGlvbigpe3JldHVybiAxPT09dGhpcy5sZW5n''@;'; + put 'put ''dGgmJjA9PT10aGlzLndvcmRzWzBdJiYodGhpcy5uZWdhdGl2ZT0wKSx0aGlzfSxOLnByb3RvdHlwZS5pbnNwZWN0PWZ1bmN0aW9uKCl7cmV0dXJuKHRoaXMucmVkPyI8Qk4tUjogIjoiPEJOOiAiKSt0aGlzLnRvU3RyaW5nKDE2KSsiPiJ9O3ZhciBvZT1bIiIsIjAiLCIwMCIsIjAwMCIsIjAw''@;'; + put 'put ''MDAiLCIwMDAwMCIsIjAwMDAwMCIsIjAwMDAwMDAiLCIwMDAwMDAwMCIsIjAwMDAwMDAwMCIsIjAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAi''@;'; + put 'put ''LCIwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAw''@;'; + put 'put ''MDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiXSxjZT1bMCwwLDI1LDE2LDEyLDExLDEwLDksOCw4LDcsNyw3LDcsNiw2LDYsNiw2LDYsNiw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1XSxkZT1bMCwwLDMzNTU0NDMyLDQzMDQ2NzIxLDE2''@;'; + put 'put ''Nzc3MjE2LDQ4ODI4MTI1LDYwNDY2MTc2LDQwMzUzNjA3LDE2Nzc3MjE2LDQzMDQ2NzIxLDFlNywxOTQ4NzE3MSwzNTgzMTgwOCw2Mjc0ODUxNyw3NTI5NTM2LDExMzkwNjI1LDE2Nzc3MjE2LDI0MTM3NTY5LDM0MDEyMjI0LDQ3MDQ1ODgxLDY0ZTYsNDA4NDEwMSw1MTUzNjMyLDY0MzYzNDMs''@;'; + put 'put ''Nzk2MjYyNCw5NzY1NjI1LDExODgxMzc2LDE0MzQ4OTA3LDE3MjEwMzY4LDIwNTExMTQ5LDI0M2U1LDI4NjI5MTUxLDMzNTU0NDMyLDM5MTM1MzkzLDQ1NDM1NDI0LDUyNTIxODc1LDYwNDY2MTc2XTtmdW5jdGlvbiB2ZSh4LFAsVil7Vi5uZWdhdGl2ZT1QLm5lZ2F0aXZlXngubmVnYXRpdmU7''@;'; + put 'put ''dmFyIFQ9eC5sZW5ndGgrUC5sZW5ndGh8MDtWLmxlbmd0aD1ULFQ9VC0xfDA7dmFyIFM9MHx4LndvcmRzWzBdLEY9MHxQLndvcmRzWzBdLHllPVMqRixEZT15ZS82NzEwODg2NHwwO1Yud29yZHNbMF09NjcxMDg4NjMmeWU7Zm9yKHZhciBQZT0xO1BlPFQ7UGUrKyl7Zm9yKHZhciBRZT1EZT4+''@;'; + put 'put ''PjI2LCRlPTY3MTA4ODYzJkRlLGd0PU1hdGgubWluKFBlLFAubGVuZ3RoLTEpLHd0PU1hdGgubWF4KDAsUGUteC5sZW5ndGgrMSk7d3Q8PWd0O3d0KyspUWUrPSh5ZT0oUz0wfHgud29yZHNbUGUtd3R8MF0pKihGPTB8UC53b3Jkc1t3dF0pKyRlKS82NzEwODg2NHwwLCRlPTY3MTA4ODYzJnll''@;'; + put 'put ''O1Yud29yZHNbUGVdPTB8JGUsRGU9MHxRZX1yZXR1cm4gMCE9PURlP1Yud29yZHNbUGVdPTB8RGU6Vi5sZW5ndGgtLSxWLnN0cmlwKCl9Ti5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oeCxQKXt2YXIgVjtpZihQPTB8UHx8MSwxNj09PSh4PXh8fDEwKXx8ImhleCI9PT14KXtWPSIiO2Zv''@;'; + put 'put ''cih2YXIgVD0wLFM9MCxGPTA7Rjx0aGlzLmxlbmd0aDtGKyspe3ZhciB5ZT10aGlzLndvcmRzW0ZdLENlPSgxNjc3NzIxNSYoeWU8PFR8UykpLnRvU3RyaW5nKDE2KTtWPTAhPShTPXllPj4+MjQtVCYxNjc3NzIxNSl8fEYhPT10aGlzLmxlbmd0aC0xP29lWzYtQ2UubGVuZ3RoXStDZStWOkNl''@;'; + put 'put ''K1YsKFQrPTIpPj0yNiYmKFQtPTI2LEYtLSl9Zm9yKDAhPT1TJiYoVj1TLnRvU3RyaW5nKDE2KStWKTtWLmxlbmd0aCVQIT0wOylWPSIwIitWO3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZSYmKFY9Ii0iK1YpLFZ9aWYoeD09PSgwfHgpJiZ4Pj0yJiZ4PD0zNil7dmFyIERlPWNlW3hdLFBlPWRl''@;'; + put 'put ''W3hdO1Y9IiI7dmFyIFFlPXRoaXMuY2xvbmUoKTtmb3IoUWUubmVnYXRpdmU9MDshUWUuaXNaZXJvKCk7KXt2YXIgJGU9UWUubW9kbihQZSkudG9TdHJpbmcoeCk7Vj0oUWU9UWUuaWRpdm4oUGUpKS5pc1plcm8oKT8kZStWOm9lW0RlLSRlLmxlbmd0aF0rJGUrVn1mb3IodGhpcy5pc1plcm8o''@;'; + put 'put ''KSYmKFY9IjAiK1YpO1YubGVuZ3RoJVAhPTA7KVY9IjAiK1Y7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlJiYoVj0iLSIrViksVn1ZKCExLCJCYXNlIHNob3VsZCBiZSBiZXR3ZWVuIDIgYW5kIDM2Iil9LE4ucHJvdG90eXBlLnRvTnVtYmVyPWZ1bmN0aW9uKCl7dmFyIHg9dGhpcy53b3Jkc1sw''@;'; + put 'put ''XTtyZXR1cm4gMj09PXRoaXMubGVuZ3RoP3grPTY3MTA4ODY0KnRoaXMud29yZHNbMV06Mz09PXRoaXMubGVuZ3RoJiYxPT09dGhpcy53b3Jkc1syXT94Kz00NTAzNTk5NjI3MzcwNDk2KzY3MTA4ODY0KnRoaXMud29yZHNbMV06dGhpcy5sZW5ndGg+MiYmWSghMSwiTnVtYmVyIGNhbiBvbmx5''@;'; + put 'put ''IHNhZmVseSBzdG9yZSB1cCB0byA1MyBiaXRzIiksMCE9PXRoaXMubmVnYXRpdmU/LXg6eH0sTi5wcm90b3R5cGUudG9KU09OPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudG9TdHJpbmcoMTYpfSxOLnByb3RvdHlwZS50b0J1ZmZlcj1mdW5jdGlvbih4LFApe3JldHVybiBZKHZvaWQgMCE9PWVl''@;'; + put 'put ''KSx0aGlzLnRvQXJyYXlMaWtlKGVlLHgsUCl9LE4ucHJvdG90eXBlLnRvQXJyYXk9ZnVuY3Rpb24oeCxQKXtyZXR1cm4gdGhpcy50b0FycmF5TGlrZShBcnJheSx4LFApfSxOLnByb3RvdHlwZS50b0FycmF5TGlrZT1mdW5jdGlvbih4LFAsVil7dmFyIFQ9dGhpcy5ieXRlTGVuZ3RoKCksUz1W''@;'; + put 'put ''fHxNYXRoLm1heCgxLFQpO1koVDw9UywiYnl0ZSBhcnJheSBsb25nZXIgdGhhbiBkZXNpcmVkIGxlbmd0aCIpLFkoUz4wLCJSZXF1ZXN0ZWQgYXJyYXkgbGVuZ3RoIDw9IDAiKSx0aGlzLnN0cmlwKCk7dmFyIEYseWUsQ2U9ImxlIj09PVAsRGU9bmV3IHgoUyksUGU9dGhpcy5jbG9uZSgpO2lm''@;'; + put 'put ''KENlKXtmb3IoeWU9MDshUGUuaXNaZXJvKCk7eWUrKylGPVBlLmFuZGxuKDI1NSksUGUuaXVzaHJuKDgpLERlW3llXT1GO2Zvcig7eWU8Uzt5ZSsrKURlW3llXT0wfWVsc2V7Zm9yKHllPTA7eWU8Uy1UO3llKyspRGVbeWVdPTA7Zm9yKHllPTA7IVBlLmlzWmVybygpO3llKyspRj1QZS5hbmRs''@;'; + put 'put ''bigyNTUpLFBlLml1c2hybig4KSxEZVtTLXllLTFdPUZ9cmV0dXJuIERlfSxOLnByb3RvdHlwZS5fY291bnRCaXRzPU1hdGguY2x6MzI/ZnVuY3Rpb24oeCl7cmV0dXJuIDMyLU1hdGguY2x6MzIoeCl9OmZ1bmN0aW9uKHgpe3ZhciBQPXgsVj0wO3JldHVybiBQPj00MDk2JiYoVis9MTMsUD4+''@;'; + put 'put ''Pj0xMyksUD49NjQmJihWKz03LFA+Pj49NyksUD49OCYmKFYrPTQsUD4+Pj00KSxQPj0yJiYoVis9MixQPj4+PTIpLFYrUH0sTi5wcm90b3R5cGUuX3plcm9CaXRzPWZ1bmN0aW9uKHgpe2lmKDA9PT14KXJldHVybiAyNjt2YXIgUD14LFY9MDtyZXR1cm4gMD09KDgxOTEmUCkmJihWKz0xMyxQ''@;'; + put 'put ''Pj4+PTEzKSwwPT0oMTI3JlApJiYoVis9NyxQPj4+PTcpLDA9PSgxNSZQKSYmKFYrPTQsUD4+Pj00KSwwPT0oMyZQKSYmKFYrPTIsUD4+Pj0yKSwwPT0oMSZQKSYmVisrLFZ9LE4ucHJvdG90eXBlLmJpdExlbmd0aD1mdW5jdGlvbigpe3ZhciBQPXRoaXMuX2NvdW50Qml0cyh0aGlzLndvcmRz''@;'; + put 'put ''W3RoaXMubGVuZ3RoLTFdKTtyZXR1cm4gMjYqKHRoaXMubGVuZ3RoLTEpK1B9LE4ucHJvdG90eXBlLnplcm9CaXRzPWZ1bmN0aW9uKCl7aWYodGhpcy5pc1plcm8oKSlyZXR1cm4gMDtmb3IodmFyIHg9MCxQPTA7UDx0aGlzLmxlbmd0aDtQKyspe3ZhciBWPXRoaXMuX3plcm9CaXRzKHRoaXMu''@;'; + put 'put ''d29yZHNbUF0pO2lmKHgrPVYsMjYhPT1WKWJyZWFrfXJldHVybiB4fSxOLnByb3RvdHlwZS5ieXRlTGVuZ3RoPWZ1bmN0aW9uKCl7cmV0dXJuIE1hdGguY2VpbCh0aGlzLmJpdExlbmd0aCgpLzgpfSxOLnByb3RvdHlwZS50b1R3b3M9ZnVuY3Rpb24oeCl7cmV0dXJuIDAhPT10aGlzLm5lZ2F0''@;'; + put 'put ''aXZlP3RoaXMuYWJzKCkuaW5vdG4oeCkuaWFkZG4oMSk6dGhpcy5jbG9uZSgpfSxOLnByb3RvdHlwZS5mcm9tVHdvcz1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy50ZXN0bih4LTEpP3RoaXMubm90bih4KS5pYWRkbigxKS5pbmVnKCk6dGhpcy5jbG9uZSgpfSxOLnByb3RvdHlwZS5pc05lZz1m''@;'; + put 'put ''dW5jdGlvbigpe3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZX0sTi5wcm90b3R5cGUubmVnPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pbmVnKCl9LE4ucHJvdG90eXBlLmluZWc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pc1plcm8oKXx8KHRoaXMubmVnYXRpdmVePTEpLHRoaXN9''@;'; + put 'put ''LE4ucHJvdG90eXBlLml1b3I9ZnVuY3Rpb24oeCl7Zm9yKDt0aGlzLmxlbmd0aDx4Lmxlbmd0aDspdGhpcy53b3Jkc1t0aGlzLmxlbmd0aCsrXT0wO2Zvcih2YXIgUD0wO1A8eC5sZW5ndGg7UCsrKXRoaXMud29yZHNbUF09dGhpcy53b3Jkc1tQXXx4LndvcmRzW1BdO3JldHVybiB0aGlzLnN0''@;'; + put 'put ''cmlwKCl9LE4ucHJvdG90eXBlLmlvcj1mdW5jdGlvbih4KXtyZXR1cm4gWSgwPT0odGhpcy5uZWdhdGl2ZXx4Lm5lZ2F0aXZlKSksdGhpcy5pdW9yKHgpfSxOLnByb3RvdHlwZS5vcj1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5sZW5ndGg+eC5sZW5ndGg/dGhpcy5jbG9uZSgpLmlvcih4KTp4''@;'; + put 'put ''LmNsb25lKCkuaW9yKHRoaXMpfSxOLnByb3RvdHlwZS51b3I9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMubGVuZ3RoPngubGVuZ3RoP3RoaXMuY2xvbmUoKS5pdW9yKHgpOnguY2xvbmUoKS5pdW9yKHRoaXMpfSxOLnByb3RvdHlwZS5pdWFuZD1mdW5jdGlvbih4KXt2YXIgUDtQPXRoaXMubGVu''@;'; + put 'put ''Z3RoPngubGVuZ3RoP3g6dGhpcztmb3IodmFyIFY9MDtWPFAubGVuZ3RoO1YrKyl0aGlzLndvcmRzW1ZdPXRoaXMud29yZHNbVl0meC53b3Jkc1tWXTtyZXR1cm4gdGhpcy5sZW5ndGg9UC5sZW5ndGgsdGhpcy5zdHJpcCgpfSxOLnByb3RvdHlwZS5pYW5kPWZ1bmN0aW9uKHgpe3JldHVybiBZ''@;'; + put 'put ''KDA9PSh0aGlzLm5lZ2F0aXZlfHgubmVnYXRpdmUpKSx0aGlzLml1YW5kKHgpfSxOLnByb3RvdHlwZS5hbmQ9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMubGVuZ3RoPngubGVuZ3RoP3RoaXMuY2xvbmUoKS5pYW5kKHgpOnguY2xvbmUoKS5pYW5kKHRoaXMpfSxOLnByb3RvdHlwZS51YW5kPWZ1''@;'; + put 'put ''bmN0aW9uKHgpe3JldHVybiB0aGlzLmxlbmd0aD54Lmxlbmd0aD90aGlzLmNsb25lKCkuaXVhbmQoeCk6eC5jbG9uZSgpLml1YW5kKHRoaXMpfSxOLnByb3RvdHlwZS5pdXhvcj1mdW5jdGlvbih4KXt2YXIgUCxWO3RoaXMubGVuZ3RoPngubGVuZ3RoPyhQPXRoaXMsVj14KTooUD14LFY9dGhp''@;'; + put 'put ''cyk7Zm9yKHZhciBUPTA7VDxWLmxlbmd0aDtUKyspdGhpcy53b3Jkc1tUXT1QLndvcmRzW1RdXlYud29yZHNbVF07aWYodGhpcyE9PVApZm9yKDtUPFAubGVuZ3RoO1QrKyl0aGlzLndvcmRzW1RdPVAud29yZHNbVF07cmV0dXJuIHRoaXMubGVuZ3RoPVAubGVuZ3RoLHRoaXMuc3RyaXAoKX0s''@;'; + put 'put ''Ti5wcm90b3R5cGUuaXhvcj1mdW5jdGlvbih4KXtyZXR1cm4gWSgwPT0odGhpcy5uZWdhdGl2ZXx4Lm5lZ2F0aXZlKSksdGhpcy5pdXhvcih4KX0sTi5wcm90b3R5cGUueG9yPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmxlbmd0aD54Lmxlbmd0aD90aGlzLmNsb25lKCkuaXhvcih4KTp4LmNs''@;'; + put 'put ''b25lKCkuaXhvcih0aGlzKX0sTi5wcm90b3R5cGUudXhvcj1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5sZW5ndGg+eC5sZW5ndGg/dGhpcy5jbG9uZSgpLml1eG9yKHgpOnguY2xvbmUoKS5pdXhvcih0aGlzKX0sTi5wcm90b3R5cGUuaW5vdG49ZnVuY3Rpb24oeCl7WSgibnVtYmVyIj09dHlw''@;'; + put 'put ''ZW9mIHgmJng+PTApO3ZhciBQPTB8TWF0aC5jZWlsKHgvMjYpLFY9eCUyNjt0aGlzLl9leHBhbmQoUCksVj4wJiZQLS07Zm9yKHZhciBUPTA7VDxQO1QrKyl0aGlzLndvcmRzW1RdPTY3MTA4ODYzJn50aGlzLndvcmRzW1RdO3JldHVybiBWPjAmJih0aGlzLndvcmRzW1RdPX50aGlzLndvcmRz''@;'; + put 'put ''W1RdJjY3MTA4ODYzPj4yNi1WKSx0aGlzLnN0cmlwKCl9LE4ucHJvdG90eXBlLm5vdG49ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pbm90bih4KX0sTi5wcm90b3R5cGUuc2V0bj1mdW5jdGlvbih4LFApe1koIm51bWJlciI9PXR5cGVvZiB4JiZ4Pj0wKTt2YXIgVj14LzI2fDAs''@;'; + put 'put ''VD14JTI2O3JldHVybiB0aGlzLl9leHBhbmQoVisxKSx0aGlzLndvcmRzW1ZdPVA/dGhpcy53b3Jkc1tWXXwxPDxUOnRoaXMud29yZHNbVl0mfigxPDxUKSx0aGlzLnN0cmlwKCl9LE4ucHJvdG90eXBlLmlhZGQ9ZnVuY3Rpb24oeCl7dmFyIFAsVixUO2lmKDAhPT10aGlzLm5lZ2F0aXZlJiYw''@;'; + put 'put ''PT09eC5uZWdhdGl2ZSlyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLFA9dGhpcy5pc3ViKHgpLHRoaXMubmVnYXRpdmVePTEsdGhpcy5fbm9ybVNpZ24oKTtpZigwPT09dGhpcy5uZWdhdGl2ZSYmMCE9PXgubmVnYXRpdmUpcmV0dXJuIHgubmVnYXRpdmU9MCxQPXRoaXMuaXN1Yih4KSx4Lm5lZ2F0''@;'; + put 'put ''aXZlPTEsUC5fbm9ybVNpZ24oKTt0aGlzLmxlbmd0aD54Lmxlbmd0aD8oVj10aGlzLFQ9eCk6KFY9eCxUPXRoaXMpO2Zvcih2YXIgUz0wLEY9MDtGPFQubGVuZ3RoO0YrKyl0aGlzLndvcmRzW0ZdPTY3MTA4ODYzJihQPSgwfFYud29yZHNbRl0pKygwfFQud29yZHNbRl0pK1MpLFM9UD4+PjI2''@;'; + put 'put ''O2Zvcig7MCE9PVMmJkY8Vi5sZW5ndGg7RisrKXRoaXMud29yZHNbRl09NjcxMDg4NjMmKFA9KDB8Vi53b3Jkc1tGXSkrUyksUz1QPj4+MjY7aWYodGhpcy5sZW5ndGg9Vi5sZW5ndGgsMCE9PVMpdGhpcy53b3Jkc1t0aGlzLmxlbmd0aF09Uyx0aGlzLmxlbmd0aCsrO2Vsc2UgaWYoViE9PXRo''@;'; + put 'put ''aXMpZm9yKDtGPFYubGVuZ3RoO0YrKyl0aGlzLndvcmRzW0ZdPVYud29yZHNbRl07cmV0dXJuIHRoaXN9LE4ucHJvdG90eXBlLmFkZD1mdW5jdGlvbih4KXt2YXIgUDtyZXR1cm4gMCE9PXgubmVnYXRpdmUmJjA9PT10aGlzLm5lZ2F0aXZlPyh4Lm5lZ2F0aXZlPTAsUD10aGlzLnN1Yih4KSx4''@;'; + put 'put ''Lm5lZ2F0aXZlXj0xLFApOjA9PT14Lm5lZ2F0aXZlJiYwIT09dGhpcy5uZWdhdGl2ZT8odGhpcy5uZWdhdGl2ZT0wLFA9eC5zdWIodGhpcyksdGhpcy5uZWdhdGl2ZT0xLFApOnRoaXMubGVuZ3RoPngubGVuZ3RoP3RoaXMuY2xvbmUoKS5pYWRkKHgpOnguY2xvbmUoKS5pYWRkKHRoaXMpfSxO''@;'; + put 'put ''LnByb3RvdHlwZS5pc3ViPWZ1bmN0aW9uKHgpe2lmKDAhPT14Lm5lZ2F0aXZlKXt4Lm5lZ2F0aXZlPTA7dmFyIFA9dGhpcy5pYWRkKHgpO3JldHVybiB4Lm5lZ2F0aXZlPTEsUC5fbm9ybVNpZ24oKX1pZigwIT09dGhpcy5uZWdhdGl2ZSlyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLHRoaXMuaWFk''@;'; + put 'put ''ZCh4KSx0aGlzLm5lZ2F0aXZlPTEsdGhpcy5fbm9ybVNpZ24oKTt2YXIgVixULFM9dGhpcy5jbXAoeCk7aWYoMD09PVMpcmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlzLmxlbmd0aD0xLHRoaXMud29yZHNbMF09MCx0aGlzO1M+MD8oVj10aGlzLFQ9eCk6KFY9eCxUPXRoaXMpO2Zvcih2YXIg''@;'; + put 'put ''Rj0wLHllPTA7eWU8VC5sZW5ndGg7eWUrKylGPShQPSgwfFYud29yZHNbeWVdKS0oMHxULndvcmRzW3llXSkrRik+PjI2LHRoaXMud29yZHNbeWVdPTY3MTA4ODYzJlA7Zm9yKDswIT09RiYmeWU8Vi5sZW5ndGg7eWUrKylGPShQPSgwfFYud29yZHNbeWVdKStGKT4+MjYsdGhpcy53b3Jkc1t5''@;'; + put 'put ''ZV09NjcxMDg4NjMmUDtpZigwPT09RiYmeWU8Vi5sZW5ndGgmJlYhPT10aGlzKWZvcig7eWU8Vi5sZW5ndGg7eWUrKyl0aGlzLndvcmRzW3llXT1WLndvcmRzW3llXTtyZXR1cm4gdGhpcy5sZW5ndGg9TWF0aC5tYXgodGhpcy5sZW5ndGgseWUpLFYhPT10aGlzJiYodGhpcy5uZWdhdGl2ZT0x''@;'; + put 'put ''KSx0aGlzLnN0cmlwKCl9LE4ucHJvdG90eXBlLnN1Yj1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlzdWIoeCl9O3ZhciBBZT1mdW5jdGlvbih4LFAsVil7dmFyIFQsUyxGLHllPXgud29yZHMsQ2U9UC53b3JkcyxEZT1WLndvcmRzLFBlPTAsUWU9MHx5ZVswXSwkZT04MTkxJlFl''@;'; + put 'put ''LGd0PVFlPj4+MTMsd3Q9MHx5ZVsxXSxtdD04MTkxJnd0LHZ0PXd0Pj4+MTMsQXQ9MHx5ZVsyXSxodD04MTkxJkF0LEJ0PUF0Pj4+MTMsb249MHx5ZVszXSxfdD04MTkxJm9uLHR0PW9uPj4+MTMsZXQ9MHx5ZVs0XSxhdD04MTkxJmV0LEx0PWV0Pj4+MTMsQ3Q9MHx5ZVs1XSxmdD04MTkxJkN0''@;'; + put 'put ''LEh0PUN0Pj4+MTMsR2U9MHx5ZVs2XSxVZT04MTkxJkdlLHl0PUdlPj4+MTMsanQ9MHx5ZVs3XSxRdD04MTkxJmp0LGduPWp0Pj4+MTMsZG49MHx5ZVs4XSx5bj04MTkxJmRuLGxuPWRuPj4+MTMsTm49MHx5ZVs5XSxibj04MTkxJk5uLGVyPU5uPj4+MTMsc3I9MHxDZVswXSxYbj04MTkxJnNy''@;'; + put 'put ''LEZyPXNyPj4+MTMseHI9MHxDZVsxXSxxdD04MTkxJnhyLHByPXhyPj4+MTMsbnI9MHxDZVsyXSxBbj04MTkxJm5yLHFuPW5yPj4+MTMsV3Q9MHxDZVszXSxwbj04MTkxJld0LEtuPVd0Pj4+MTMsTnQ9MHxDZVs0XSxzbj04MTkxJk50LFVuPU50Pj4+MTMsd249MHxDZVs1XSx0bj04MTkxJndu''@;'; + put 'put ''LHpuPXduPj4+MTMsVHI9MHxDZVs2XSxCbj04MTkxJlRyLGtyPVRyPj4+MTMsbW49MHxDZVs3XSx1bj04MTkxJm1uLGNuPW1uPj4+MTMsX249MHxDZVs4XSxHdD04MTkxJl9uLGtuPV9uPj4+MTMsVm49MHxDZVs5XSxlbj04MTkxJlZuLEluPVZuPj4+MTM7Vi5uZWdhdGl2ZT14Lm5lZ2F0aXZl''@;'; + put 'put ''XlAubmVnYXRpdmUsVi5sZW5ndGg9MTk7dmFyIEpuPShQZSsoVD1NYXRoLmltdWwoJGUsWG4pKXwwKSsoKDgxOTEmKFM9KFM9TWF0aC5pbXVsKCRlLEZyKSkrTWF0aC5pbXVsKGd0LFhuKXwwKSk8PDEzKXwwO1BlPSgoRj1NYXRoLmltdWwoZ3QsRnIpKSsoUz4+PjEzKXwwKSsoSm4+Pj4yNil8''@;'; + put 'put ''MCxKbiY9NjcxMDg4NjMsVD1NYXRoLmltdWwobXQsWG4pLFM9KFM9TWF0aC5pbXVsKG10LEZyKSkrTWF0aC5pbXVsKHZ0LFhuKXwwLEY9TWF0aC5pbXVsKHZ0LEZyKTt2YXIgb3I9KFBlKyhUPVQrTWF0aC5pbXVsKCRlLHF0KXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoJGUscHIp''@;'; + put 'put ''fDApK01hdGguaW11bChndCxxdCl8MCkpPDwxMyl8MDtQZT0oKEY9RitNYXRoLmltdWwoZ3QscHIpfDApKyhTPj4+MTMpfDApKyhvcj4+PjI2KXwwLG9yJj02NzEwODg2MyxUPU1hdGguaW11bChodCxYbiksUz0oUz1NYXRoLmltdWwoaHQsRnIpKStNYXRoLmltdWwoQnQsWG4pfDAsRj1NYXRo''@;'; + put 'put ''LmltdWwoQnQsRnIpLFQ9VCtNYXRoLmltdWwobXQscXQpfDAsUz0oUz1TK01hdGguaW11bChtdCxwcil8MCkrTWF0aC5pbXVsKHZ0LHF0KXwwLEY9RitNYXRoLmltdWwodnQscHIpfDA7dmFyIGdyPShQZSsoVD1UK01hdGguaW11bCgkZSxBbil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5p''@;'; + put 'put ''bXVsKCRlLHFuKXwwKStNYXRoLmltdWwoZ3QsQW4pfDApKTw8MTMpfDA7UGU9KChGPUYrTWF0aC5pbXVsKGd0LHFuKXwwKSsoUz4+PjEzKXwwKSsoZ3I+Pj4yNil8MCxnciY9NjcxMDg4NjMsVD1NYXRoLmltdWwoX3QsWG4pLFM9KFM9TWF0aC5pbXVsKF90LEZyKSkrTWF0aC5pbXVsKHR0LFhu''@;'; + put 'put ''KXwwLEY9TWF0aC5pbXVsKHR0LEZyKSxUPVQrTWF0aC5pbXVsKGh0LHF0KXwwLFM9KFM9UytNYXRoLmltdWwoaHQscHIpfDApK01hdGguaW11bChCdCxxdCl8MCxGPUYrTWF0aC5pbXVsKEJ0LHByKXwwLFQ9VCtNYXRoLmltdWwobXQsQW4pfDAsUz0oUz1TK01hdGguaW11bChtdCxxbil8MCkr''@;'; + put 'put ''TWF0aC5pbXVsKHZ0LEFuKXwwLEY9RitNYXRoLmltdWwodnQscW4pfDA7dmFyIEtyPShQZSsoVD1UK01hdGguaW11bCgkZSxwbil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKCRlLEtuKXwwKStNYXRoLmltdWwoZ3QscG4pfDApKTw8MTMpfDA7UGU9KChGPUYrTWF0aC5pbXVsKGd0''@;'; + put 'put ''LEtuKXwwKSsoUz4+PjEzKXwwKSsoS3I+Pj4yNil8MCxLciY9NjcxMDg4NjMsVD1NYXRoLmltdWwoYXQsWG4pLFM9KFM9TWF0aC5pbXVsKGF0LEZyKSkrTWF0aC5pbXVsKEx0LFhuKXwwLEY9TWF0aC5pbXVsKEx0LEZyKSxUPVQrTWF0aC5pbXVsKF90LHF0KXwwLFM9KFM9UytNYXRoLmltdWwo''@;'; + put 'put ''X3QscHIpfDApK01hdGguaW11bCh0dCxxdCl8MCxGPUYrTWF0aC5pbXVsKHR0LHByKXwwLFQ9VCtNYXRoLmltdWwoaHQsQW4pfDAsUz0oUz1TK01hdGguaW11bChodCxxbil8MCkrTWF0aC5pbXVsKEJ0LEFuKXwwLEY9RitNYXRoLmltdWwoQnQscW4pfDAsVD1UK01hdGguaW11bChtdCxwbil8''@;'; + put 'put ''MCxTPShTPVMrTWF0aC5pbXVsKG10LEtuKXwwKStNYXRoLmltdWwodnQscG4pfDAsRj1GK01hdGguaW11bCh2dCxLbil8MDt2YXIgVnI9KFBlKyhUPVQrTWF0aC5pbXVsKCRlLHNuKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoJGUsVW4pfDApK01hdGguaW11bChndCxzbil8MCkp''@;'; + put 'put ''PDwxMyl8MDtQZT0oKEY9RitNYXRoLmltdWwoZ3QsVW4pfDApKyhTPj4+MTMpfDApKyhWcj4+PjI2KXwwLFZyJj02NzEwODg2MyxUPU1hdGguaW11bChmdCxYbiksUz0oUz1NYXRoLmltdWwoZnQsRnIpKStNYXRoLmltdWwoSHQsWG4pfDAsRj1NYXRoLmltdWwoSHQsRnIpLFQ9VCtNYXRoLmlt''@;'; + put 'put ''dWwoYXQscXQpfDAsUz0oUz1TK01hdGguaW11bChhdCxwcil8MCkrTWF0aC5pbXVsKEx0LHF0KXwwLEY9RitNYXRoLmltdWwoTHQscHIpfDAsVD1UK01hdGguaW11bChfdCxBbil8MCxTPShTPVMrTWF0aC5pbXVsKF90LHFuKXwwKStNYXRoLmltdWwodHQsQW4pfDAsRj1GK01hdGguaW11bCh0''@;'; + put 'put ''dCxxbil8MCxUPVQrTWF0aC5pbXVsKGh0LHBuKXwwLFM9KFM9UytNYXRoLmltdWwoaHQsS24pfDApK01hdGguaW11bChCdCxwbil8MCxGPUYrTWF0aC5pbXVsKEJ0LEtuKXwwLFQ9VCtNYXRoLmltdWwobXQsc24pfDAsUz0oUz1TK01hdGguaW11bChtdCxVbil8MCkrTWF0aC5pbXVsKHZ0LHNu''@;'; + put 'put ''KXwwLEY9RitNYXRoLmltdWwodnQsVW4pfDA7dmFyIGlpPShQZSsoVD1UK01hdGguaW11bCgkZSx0bil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKCRlLHpuKXwwKStNYXRoLmltdWwoZ3QsdG4pfDApKTw8MTMpfDA7UGU9KChGPUYrTWF0aC5pbXVsKGd0LHpuKXwwKSsoUz4+PjEz''@;'; + put 'put ''KXwwKSsoaWk+Pj4yNil8MCxpaSY9NjcxMDg4NjMsVD1NYXRoLmltdWwoVWUsWG4pLFM9KFM9TWF0aC5pbXVsKFVlLEZyKSkrTWF0aC5pbXVsKHl0LFhuKXwwLEY9TWF0aC5pbXVsKHl0LEZyKSxUPVQrTWF0aC5pbXVsKGZ0LHF0KXwwLFM9KFM9UytNYXRoLmltdWwoZnQscHIpfDApK01hdGgu''@;'; + put 'put ''aW11bChIdCxxdCl8MCxGPUYrTWF0aC5pbXVsKEh0LHByKXwwLFQ9VCtNYXRoLmltdWwoYXQsQW4pfDAsUz0oUz1TK01hdGguaW11bChhdCxxbil8MCkrTWF0aC5pbXVsKEx0LEFuKXwwLEY9RitNYXRoLmltdWwoTHQscW4pfDAsVD1UK01hdGguaW11bChfdCxwbil8MCxTPShTPVMrTWF0aC5p''@;'; + put 'put ''bXVsKF90LEtuKXwwKStNYXRoLmltdWwodHQscG4pfDAsRj1GK01hdGguaW11bCh0dCxLbil8MCxUPVQrTWF0aC5pbXVsKGh0LHNuKXwwLFM9KFM9UytNYXRoLmltdWwoaHQsVW4pfDApK01hdGguaW11bChCdCxzbil8MCxGPUYrTWF0aC5pbXVsKEJ0LFVuKXwwLFQ9VCtNYXRoLmltdWwobXQs''@;'; + put 'put ''dG4pfDAsUz0oUz1TK01hdGguaW11bChtdCx6bil8MCkrTWF0aC5pbXVsKHZ0LHRuKXwwLEY9RitNYXRoLmltdWwodnQsem4pfDA7dmFyIFJyPShQZSsoVD1UK01hdGguaW11bCgkZSxCbil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKCRlLGtyKXwwKStNYXRoLmltdWwoZ3QsQm4p''@;'; + put 'put ''fDApKTw8MTMpfDA7UGU9KChGPUYrTWF0aC5pbXVsKGd0LGtyKXwwKSsoUz4+PjEzKXwwKSsoUnI+Pj4yNil8MCxSciY9NjcxMDg4NjMsVD1NYXRoLmltdWwoUXQsWG4pLFM9KFM9TWF0aC5pbXVsKFF0LEZyKSkrTWF0aC5pbXVsKGduLFhuKXwwLEY9TWF0aC5pbXVsKGduLEZyKSxUPVQrTWF0''@;'; + put 'put ''aC5pbXVsKFVlLHF0KXwwLFM9KFM9UytNYXRoLmltdWwoVWUscHIpfDApK01hdGguaW11bCh5dCxxdCl8MCxGPUYrTWF0aC5pbXVsKHl0LHByKXwwLFQ9VCtNYXRoLmltdWwoZnQsQW4pfDAsUz0oUz1TK01hdGguaW11bChmdCxxbil8MCkrTWF0aC5pbXVsKEh0LEFuKXwwLEY9RitNYXRoLmlt''@;'; + put 'put ''dWwoSHQscW4pfDAsVD1UK01hdGguaW11bChhdCxwbil8MCxTPShTPVMrTWF0aC5pbXVsKGF0LEtuKXwwKStNYXRoLmltdWwoTHQscG4pfDAsRj1GK01hdGguaW11bChMdCxLbil8MCxUPVQrTWF0aC5pbXVsKF90LHNuKXwwLFM9KFM9UytNYXRoLmltdWwoX3QsVW4pfDApK01hdGguaW11bCh0''@;'; + put 'put ''dCxzbil8MCxGPUYrTWF0aC5pbXVsKHR0LFVuKXwwLFQ9VCtNYXRoLmltdWwoaHQsdG4pfDAsUz0oUz1TK01hdGguaW11bChodCx6bil8MCkrTWF0aC5pbXVsKEJ0LHRuKXwwLEY9RitNYXRoLmltdWwoQnQsem4pfDAsVD1UK01hdGguaW11bChtdCxCbil8MCxTPShTPVMrTWF0aC5pbXVsKG10''@;'; + put 'put ''LGtyKXwwKStNYXRoLmltdWwodnQsQm4pfDAsRj1GK01hdGguaW11bCh2dCxrcil8MDt2YXIgbGk9KFBlKyhUPVQrTWF0aC5pbXVsKCRlLHVuKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoJGUsY24pfDApK01hdGguaW11bChndCx1bil8MCkpPDwxMyl8MDtQZT0oKEY9RitNYXRo''@;'; + put 'put ''LmltdWwoZ3QsY24pfDApKyhTPj4+MTMpfDApKyhsaT4+PjI2KXwwLGxpJj02NzEwODg2MyxUPU1hdGguaW11bCh5bixYbiksUz0oUz1NYXRoLmltdWwoeW4sRnIpKStNYXRoLmltdWwobG4sWG4pfDAsRj1NYXRoLmltdWwobG4sRnIpLFQ9VCtNYXRoLmltdWwoUXQscXQpfDAsUz0oUz1TK01h''@;'; + put 'put ''dGguaW11bChRdCxwcil8MCkrTWF0aC5pbXVsKGduLHF0KXwwLEY9RitNYXRoLmltdWwoZ24scHIpfDAsVD1UK01hdGguaW11bChVZSxBbil8MCxTPShTPVMrTWF0aC5pbXVsKFVlLHFuKXwwKStNYXRoLmltdWwoeXQsQW4pfDAsRj1GK01hdGguaW11bCh5dCxxbil8MCxUPVQrTWF0aC5pbXVs''@;'; + put 'put ''KGZ0LHBuKXwwLFM9KFM9UytNYXRoLmltdWwoZnQsS24pfDApK01hdGguaW11bChIdCxwbil8MCxGPUYrTWF0aC5pbXVsKEh0LEtuKXwwLFQ9VCtNYXRoLmltdWwoYXQsc24pfDAsUz0oUz1TK01hdGguaW11bChhdCxVbil8MCkrTWF0aC5pbXVsKEx0LHNuKXwwLEY9RitNYXRoLmltdWwoTHQs''@;'; + put 'put ''VW4pfDAsVD1UK01hdGguaW11bChfdCx0bil8MCxTPShTPVMrTWF0aC5pbXVsKF90LHpuKXwwKStNYXRoLmltdWwodHQsdG4pfDAsRj1GK01hdGguaW11bCh0dCx6bil8MCxUPVQrTWF0aC5pbXVsKGh0LEJuKXwwLFM9KFM9UytNYXRoLmltdWwoaHQsa3IpfDApK01hdGguaW11bChCdCxCbil8''@;'; + put 'put ''MCxGPUYrTWF0aC5pbXVsKEJ0LGtyKXwwLFQ9VCtNYXRoLmltdWwobXQsdW4pfDAsUz0oUz1TK01hdGguaW11bChtdCxjbil8MCkrTWF0aC5pbXVsKHZ0LHVuKXwwLEY9RitNYXRoLmltdWwodnQsY24pfDA7dmFyIE1pPShQZSsoVD1UK01hdGguaW11bCgkZSxHdCl8MCl8MCkrKCg4MTkxJihT''@;'; + put 'put ''PShTPVMrTWF0aC5pbXVsKCRlLGtuKXwwKStNYXRoLmltdWwoZ3QsR3QpfDApKTw8MTMpfDA7UGU9KChGPUYrTWF0aC5pbXVsKGd0LGtuKXwwKSsoUz4+PjEzKXwwKSsoTWk+Pj4yNil8MCxNaSY9NjcxMDg4NjMsVD1NYXRoLmltdWwoYm4sWG4pLFM9KFM9TWF0aC5pbXVsKGJuLEZyKSkrTWF0''@;'; + put 'put ''aC5pbXVsKGVyLFhuKXwwLEY9TWF0aC5pbXVsKGVyLEZyKSxUPVQrTWF0aC5pbXVsKHluLHF0KXwwLFM9KFM9UytNYXRoLmltdWwoeW4scHIpfDApK01hdGguaW11bChsbixxdCl8MCxGPUYrTWF0aC5pbXVsKGxuLHByKXwwLFQ9VCtNYXRoLmltdWwoUXQsQW4pfDAsUz0oUz1TK01hdGguaW11''@;'; + put 'put ''bChRdCxxbil8MCkrTWF0aC5pbXVsKGduLEFuKXwwLEY9RitNYXRoLmltdWwoZ24scW4pfDAsVD1UK01hdGguaW11bChVZSxwbil8MCxTPShTPVMrTWF0aC5pbXVsKFVlLEtuKXwwKStNYXRoLmltdWwoeXQscG4pfDAsRj1GK01hdGguaW11bCh5dCxLbil8MCxUPVQrTWF0aC5pbXVsKGZ0LHNu''@;'; + put 'put ''KXwwLFM9KFM9UytNYXRoLmltdWwoZnQsVW4pfDApK01hdGguaW11bChIdCxzbil8MCxGPUYrTWF0aC5pbXVsKEh0LFVuKXwwLFQ9VCtNYXRoLmltdWwoYXQsdG4pfDAsUz0oUz1TK01hdGguaW11bChhdCx6bil8MCkrTWF0aC5pbXVsKEx0LHRuKXwwLEY9RitNYXRoLmltdWwoTHQsem4pfDAs''@;'; + put 'put ''VD1UK01hdGguaW11bChfdCxCbil8MCxTPShTPVMrTWF0aC5pbXVsKF90LGtyKXwwKStNYXRoLmltdWwodHQsQm4pfDAsRj1GK01hdGguaW11bCh0dCxrcil8MCxUPVQrTWF0aC5pbXVsKGh0LHVuKXwwLFM9KFM9UytNYXRoLmltdWwoaHQsY24pfDApK01hdGguaW11bChCdCx1bil8MCxGPUYr''@;'; + put 'put ''TWF0aC5pbXVsKEJ0LGNuKXwwLFQ9VCtNYXRoLmltdWwobXQsR3QpfDAsUz0oUz1TK01hdGguaW11bChtdCxrbil8MCkrTWF0aC5pbXVsKHZ0LEd0KXwwLEY9RitNYXRoLmltdWwodnQsa24pfDA7dmFyIG8wPShQZSsoVD1UK01hdGguaW11bCgkZSxlbil8MCl8MCkrKCg4MTkxJihTPShTPVMr''@;'; + put 'put ''TWF0aC5pbXVsKCRlLEluKXwwKStNYXRoLmltdWwoZ3QsZW4pfDApKTw8MTMpfDA7UGU9KChGPUYrTWF0aC5pbXVsKGd0LEluKXwwKSsoUz4+PjEzKXwwKSsobzA+Pj4yNil8MCxvMCY9NjcxMDg4NjMsVD1NYXRoLmltdWwoYm4scXQpLFM9KFM9TWF0aC5pbXVsKGJuLHByKSkrTWF0aC5pbXVs''@;'; + put 'put ''KGVyLHF0KXwwLEY9TWF0aC5pbXVsKGVyLHByKSxUPVQrTWF0aC5pbXVsKHluLEFuKXwwLFM9KFM9UytNYXRoLmltdWwoeW4scW4pfDApK01hdGguaW11bChsbixBbil8MCxGPUYrTWF0aC5pbXVsKGxuLHFuKXwwLFQ9VCtNYXRoLmltdWwoUXQscG4pfDAsUz0oUz1TK01hdGguaW11bChRdCxL''@;'; + put 'put ''bil8MCkrTWF0aC5pbXVsKGduLHBuKXwwLEY9RitNYXRoLmltdWwoZ24sS24pfDAsVD1UK01hdGguaW11bChVZSxzbil8MCxTPShTPVMrTWF0aC5pbXVsKFVlLFVuKXwwKStNYXRoLmltdWwoeXQsc24pfDAsRj1GK01hdGguaW11bCh5dCxVbil8MCxUPVQrTWF0aC5pbXVsKGZ0LHRuKXwwLFM9''@;'; + put 'put ''KFM9UytNYXRoLmltdWwoZnQsem4pfDApK01hdGguaW11bChIdCx0bil8MCxGPUYrTWF0aC5pbXVsKEh0LHpuKXwwLFQ9VCtNYXRoLmltdWwoYXQsQm4pfDAsUz0oUz1TK01hdGguaW11bChhdCxrcil8MCkrTWF0aC5pbXVsKEx0LEJuKXwwLEY9RitNYXRoLmltdWwoTHQsa3IpfDAsVD1UK01h''@;'; + put 'put ''dGguaW11bChfdCx1bil8MCxTPShTPVMrTWF0aC5pbXVsKF90LGNuKXwwKStNYXRoLmltdWwodHQsdW4pfDAsRj1GK01hdGguaW11bCh0dCxjbil8MCxUPVQrTWF0aC5pbXVsKGh0LEd0KXwwLFM9KFM9UytNYXRoLmltdWwoaHQsa24pfDApK01hdGguaW11bChCdCxHdCl8MCxGPUYrTWF0aC5p''@;'; + put 'put ''bXVsKEJ0LGtuKXwwO3ZhciBuMD0oUGUrKFQ9VCtNYXRoLmltdWwobXQsZW4pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bChtdCxJbil8MCkrTWF0aC5pbXVsKHZ0LGVuKXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGguaW11bCh2dCxJbil8MCkrKFM+Pj4xMyl8MCkrKG4wPj4+MjYp''@;'; + put 'put ''fDAsbjAmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGJuLEFuKSxTPShTPU1hdGguaW11bChibixxbikpK01hdGguaW11bChlcixBbil8MCxGPU1hdGguaW11bChlcixxbiksVD1UK01hdGguaW11bCh5bixwbil8MCxTPShTPVMrTWF0aC5pbXVsKHluLEtuKXwwKStNYXRoLmltdWwobG4scG4pfDAs''@;'; + put 'put ''Rj1GK01hdGguaW11bChsbixLbil8MCxUPVQrTWF0aC5pbXVsKFF0LHNuKXwwLFM9KFM9UytNYXRoLmltdWwoUXQsVW4pfDApK01hdGguaW11bChnbixzbil8MCxGPUYrTWF0aC5pbXVsKGduLFVuKXwwLFQ9VCtNYXRoLmltdWwoVWUsdG4pfDAsUz0oUz1TK01hdGguaW11bChVZSx6bil8MCkr''@;'; + put 'put ''TWF0aC5pbXVsKHl0LHRuKXwwLEY9RitNYXRoLmltdWwoeXQsem4pfDAsVD1UK01hdGguaW11bChmdCxCbil8MCxTPShTPVMrTWF0aC5pbXVsKGZ0LGtyKXwwKStNYXRoLmltdWwoSHQsQm4pfDAsRj1GK01hdGguaW11bChIdCxrcil8MCxUPVQrTWF0aC5pbXVsKGF0LHVuKXwwLFM9KFM9UytN''@;'; + put 'put ''YXRoLmltdWwoYXQsY24pfDApK01hdGguaW11bChMdCx1bil8MCxGPUYrTWF0aC5pbXVsKEx0LGNuKXwwLFQ9VCtNYXRoLmltdWwoX3QsR3QpfDAsUz0oUz1TK01hdGguaW11bChfdCxrbil8MCkrTWF0aC5pbXVsKHR0LEd0KXwwLEY9RitNYXRoLmltdWwodHQsa24pfDA7dmFyIGQwPShQZSso''@;'; + put 'put ''VD1UK01hdGguaW11bChodCxlbil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKGh0LEluKXwwKStNYXRoLmltdWwoQnQsZW4pfDApKTw8MTMpfDA7UGU9KChGPUYrTWF0aC5pbXVsKEJ0LEluKXwwKSsoUz4+PjEzKXwwKSsoZDA+Pj4yNil8MCxkMCY9NjcxMDg4NjMsVD1NYXRoLmlt''@;'; + put 'put ''dWwoYm4scG4pLFM9KFM9TWF0aC5pbXVsKGJuLEtuKSkrTWF0aC5pbXVsKGVyLHBuKXwwLEY9TWF0aC5pbXVsKGVyLEtuKSxUPVQrTWF0aC5pbXVsKHluLHNuKXwwLFM9KFM9UytNYXRoLmltdWwoeW4sVW4pfDApK01hdGguaW11bChsbixzbil8MCxGPUYrTWF0aC5pbXVsKGxuLFVuKXwwLFQ9''@;'; + put 'put ''VCtNYXRoLmltdWwoUXQsdG4pfDAsUz0oUz1TK01hdGguaW11bChRdCx6bil8MCkrTWF0aC5pbXVsKGduLHRuKXwwLEY9RitNYXRoLmltdWwoZ24sem4pfDAsVD1UK01hdGguaW11bChVZSxCbil8MCxTPShTPVMrTWF0aC5pbXVsKFVlLGtyKXwwKStNYXRoLmltdWwoeXQsQm4pfDAsRj1GK01h''@;'; + put 'put ''dGguaW11bCh5dCxrcil8MCxUPVQrTWF0aC5pbXVsKGZ0LHVuKXwwLFM9KFM9UytNYXRoLmltdWwoZnQsY24pfDApK01hdGguaW11bChIdCx1bil8MCxGPUYrTWF0aC5pbXVsKEh0LGNuKXwwLFQ9VCtNYXRoLmltdWwoYXQsR3QpfDAsUz0oUz1TK01hdGguaW11bChhdCxrbil8MCkrTWF0aC5p''@;'; + put 'put ''bXVsKEx0LEd0KXwwLEY9RitNYXRoLmltdWwoTHQsa24pfDA7dmFyIG0wPShQZSsoVD1UK01hdGguaW11bChfdCxlbil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKF90LEluKXwwKStNYXRoLmltdWwodHQsZW4pfDApKTw8MTMpfDA7UGU9KChGPUYrTWF0aC5pbXVsKHR0LEluKXww''@;'; + put 'put ''KSsoUz4+PjEzKXwwKSsobTA+Pj4yNil8MCxtMCY9NjcxMDg4NjMsVD1NYXRoLmltdWwoYm4sc24pLFM9KFM9TWF0aC5pbXVsKGJuLFVuKSkrTWF0aC5pbXVsKGVyLHNuKXwwLEY9TWF0aC5pbXVsKGVyLFVuKSxUPVQrTWF0aC5pbXVsKHluLHRuKXwwLFM9KFM9UytNYXRoLmltdWwoeW4sem4p''@;'; + put 'put ''fDApK01hdGguaW11bChsbix0bil8MCxGPUYrTWF0aC5pbXVsKGxuLHpuKXwwLFQ9VCtNYXRoLmltdWwoUXQsQm4pfDAsUz0oUz1TK01hdGguaW11bChRdCxrcil8MCkrTWF0aC5pbXVsKGduLEJuKXwwLEY9RitNYXRoLmltdWwoZ24sa3IpfDAsVD1UK01hdGguaW11bChVZSx1bil8MCxTPShT''@;'; + put 'put ''PVMrTWF0aC5pbXVsKFVlLGNuKXwwKStNYXRoLmltdWwoeXQsdW4pfDAsRj1GK01hdGguaW11bCh5dCxjbil8MCxUPVQrTWF0aC5pbXVsKGZ0LEd0KXwwLFM9KFM9UytNYXRoLmltdWwoZnQsa24pfDApK01hdGguaW11bChIdCxHdCl8MCxGPUYrTWF0aC5pbXVsKEh0LGtuKXwwO3ZhciBHMD0o''@;'; + put 'put ''UGUrKFQ9VCtNYXRoLmltdWwoYXQsZW4pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bChhdCxJbil8MCkrTWF0aC5pbXVsKEx0LGVuKXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGguaW11bChMdCxJbil8MCkrKFM+Pj4xMyl8MCkrKEcwPj4+MjYpfDAsRzAmPTY3MTA4ODYzLFQ9TWF0''@;'; + put 'put ''aC5pbXVsKGJuLHRuKSxTPShTPU1hdGguaW11bChibix6bikpK01hdGguaW11bChlcix0bil8MCxGPU1hdGguaW11bChlcix6biksVD1UK01hdGguaW11bCh5bixCbil8MCxTPShTPVMrTWF0aC5pbXVsKHluLGtyKXwwKStNYXRoLmltdWwobG4sQm4pfDAsRj1GK01hdGguaW11bChsbixrcil8''@;'; + put 'put ''MCxUPVQrTWF0aC5pbXVsKFF0LHVuKXwwLFM9KFM9UytNYXRoLmltdWwoUXQsY24pfDApK01hdGguaW11bChnbix1bil8MCxGPUYrTWF0aC5pbXVsKGduLGNuKXwwLFQ9VCtNYXRoLmltdWwoVWUsR3QpfDAsUz0oUz1TK01hdGguaW11bChVZSxrbil8MCkrTWF0aC5pbXVsKHl0LEd0KXwwLEY9''@;'; + put 'put ''RitNYXRoLmltdWwoeXQsa24pfDA7dmFyIERpPShQZSsoVD1UK01hdGguaW11bChmdCxlbil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKGZ0LEluKXwwKStNYXRoLmltdWwoSHQsZW4pfDApKTw8MTMpfDA7UGU9KChGPUYrTWF0aC5pbXVsKEh0LEluKXwwKSsoUz4+PjEzKXwwKSso''@;'; + put 'put ''RGk+Pj4yNil8MCxEaSY9NjcxMDg4NjMsVD1NYXRoLmltdWwoYm4sQm4pLFM9KFM9TWF0aC5pbXVsKGJuLGtyKSkrTWF0aC5pbXVsKGVyLEJuKXwwLEY9TWF0aC5pbXVsKGVyLGtyKSxUPVQrTWF0aC5pbXVsKHluLHVuKXwwLFM9KFM9UytNYXRoLmltdWwoeW4sY24pfDApK01hdGguaW11bChs''@;'; + put 'put ''bix1bil8MCxGPUYrTWF0aC5pbXVsKGxuLGNuKXwwLFQ9VCtNYXRoLmltdWwoUXQsR3QpfDAsUz0oUz1TK01hdGguaW11bChRdCxrbil8MCkrTWF0aC5pbXVsKGduLEd0KXwwLEY9RitNYXRoLmltdWwoZ24sa24pfDA7dmFyIFcwPShQZSsoVD1UK01hdGguaW11bChVZSxlbil8MCl8MCkrKCg4''@;'; + put 'put ''MTkxJihTPShTPVMrTWF0aC5pbXVsKFVlLEluKXwwKStNYXRoLmltdWwoeXQsZW4pfDApKTw8MTMpfDA7UGU9KChGPUYrTWF0aC5pbXVsKHl0LEluKXwwKSsoUz4+PjEzKXwwKSsoVzA+Pj4yNil8MCxXMCY9NjcxMDg4NjMsVD1NYXRoLmltdWwoYm4sdW4pLFM9KFM9TWF0aC5pbXVsKGJuLGNu''@;'; + put 'put ''KSkrTWF0aC5pbXVsKGVyLHVuKXwwLEY9TWF0aC5pbXVsKGVyLGNuKSxUPVQrTWF0aC5pbXVsKHluLEd0KXwwLFM9KFM9UytNYXRoLmltdWwoeW4sa24pfDApK01hdGguaW11bChsbixHdCl8MCxGPUYrTWF0aC5pbXVsKGxuLGtuKXwwO3ZhciBFbz0oUGUrKFQ9VCtNYXRoLmltdWwoUXQsZW4p''@;'; + put 'put ''fDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bChRdCxJbil8MCkrTWF0aC5pbXVsKGduLGVuKXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGguaW11bChnbixJbil8MCkrKFM+Pj4xMyl8MCkrKEVvPj4+MjYpfDAsRW8mPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGJuLEd0KSxTPShTPU1hdGgu''@;'; + put 'put ''aW11bChibixrbikpK01hdGguaW11bChlcixHdCl8MCxGPU1hdGguaW11bChlcixrbik7dmFyIHFvPShQZSsoVD1UK01hdGguaW11bCh5bixlbil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKHluLEluKXwwKStNYXRoLmltdWwobG4sZW4pfDApKTw8MTMpfDA7UGU9KChGPUYrTWF0''@;'; + put 'put ''aC5pbXVsKGxuLEluKXwwKSsoUz4+PjEzKXwwKSsocW8+Pj4yNil8MCxxbyY9NjcxMDg4NjM7dmFyIGNhPShQZSsoVD1NYXRoLmltdWwoYm4sZW4pKXwwKSsoKDgxOTEmKFM9KFM9TWF0aC5pbXVsKGJuLEluKSkrTWF0aC5pbXVsKGVyLGVuKXwwKSk8PDEzKXwwO3JldHVybiBQZT0oKEY9TWF0''@;'; + put 'put ''aC5pbXVsKGVyLEluKSkrKFM+Pj4xMyl8MCkrKGNhPj4+MjYpfDAsY2EmPTY3MTA4ODYzLERlWzBdPUpuLERlWzFdPW9yLERlWzJdPWdyLERlWzNdPUtyLERlWzRdPVZyLERlWzVdPWlpLERlWzZdPVJyLERlWzddPWxpLERlWzhdPU1pLERlWzldPW8wLERlWzEwXT1uMCxEZVsxMV09ZDAsRGVb''@;'; + put 'put ''MTJdPW0wLERlWzEzXT1HMCxEZVsxNF09RGksRGVbMTVdPVcwLERlWzE2XT1FbyxEZVsxN109cW8sRGVbMThdPWNhLDAhPT1QZSYmKERlWzE5XT1QZSxWLmxlbmd0aCsrKSxWfTtmdW5jdGlvbiBrZSh4LFAsVil7cmV0dXJuKG5ldyBTZSkubXVscCh4LFAsVil9ZnVuY3Rpb24gU2UoeCxQKXt0''@;'; + put 'put ''aGlzLng9eCx0aGlzLnk9UH1NYXRoLmltdWx8fChBZT12ZSksTi5wcm90b3R5cGUubXVsVG89ZnVuY3Rpb24oeCxQKXt2YXIgVD10aGlzLmxlbmd0aCt4Lmxlbmd0aDtyZXR1cm4gMTA9PT10aGlzLmxlbmd0aCYmMTA9PT14Lmxlbmd0aD9BZSh0aGlzLHgsUCk6VDw2Mz92ZSh0aGlzLHgsUCk6''@;'; + put 'put ''VDwxMDI0P2Z1bmN0aW9uKFMsRix5ZSl7eWUubmVnYXRpdmU9Ri5uZWdhdGl2ZV5TLm5lZ2F0aXZlLHllLmxlbmd0aD1TLmxlbmd0aCtGLmxlbmd0aDtmb3IodmFyIENlPTAsRGU9MCxQZT0wO1BlPHllLmxlbmd0aC0xO1BlKyspe3ZhciBRZT1EZTtEZT0wO2Zvcih2YXIgJGU9NjcxMDg4NjMm''@;'; + put 'put ''Q2UsZ3Q9TWF0aC5taW4oUGUsRi5sZW5ndGgtMSksd3Q9TWF0aC5tYXgoMCxQZS1TLmxlbmd0aCsxKTt3dDw9Z3Q7d3QrKyl7dmFyIHZ0PSgwfFMud29yZHNbUGUtd3RdKSooMHxGLndvcmRzW3d0XSksQXQ9NjcxMDg4NjMmdnQ7JGU9NjcxMDg4NjMmKEF0PUF0KyRlfDApLERlKz0oUWU9KFFl''@;'; + put 'put ''PVFlKyh2dC82NzEwODg2NHwwKXwwKSsoQXQ+Pj4yNil8MCk+Pj4yNixRZSY9NjcxMDg4NjN9eWUud29yZHNbUGVdPSRlLENlPVFlLFFlPURlfXJldHVybiAwIT09Q2U/eWUud29yZHNbUGVdPUNlOnllLmxlbmd0aC0tLHllLnN0cmlwKCl9KHRoaXMseCxQKTprZSh0aGlzLHgsUCl9LFNlLnBy''@;'; + put 'put ''b3RvdHlwZS5tYWtlUkJUPWZ1bmN0aW9uKHgpe2Zvcih2YXIgUD1uZXcgQXJyYXkoeCksVj1OLnByb3RvdHlwZS5fY291bnRCaXRzKHgpLTEsVD0wO1Q8eDtUKyspUFtUXT10aGlzLnJldkJpbihULFYseCk7cmV0dXJuIFB9LFNlLnByb3RvdHlwZS5yZXZCaW49ZnVuY3Rpb24oeCxQLFYpe2lm''@;'; + put 'put ''KDA9PT14fHx4PT09Vi0xKXJldHVybiB4O2Zvcih2YXIgVD0wLFM9MDtTPFA7UysrKVR8PSgxJngpPDxQLVMtMSx4Pj49MTtyZXR1cm4gVH0sU2UucHJvdG90eXBlLnBlcm11dGU9ZnVuY3Rpb24oeCxQLFYsVCxTLEYpe2Zvcih2YXIgeWU9MDt5ZTxGO3llKyspVFt5ZV09UFt4W3llXV0sU1t5''@;'; + put 'put ''ZV09Vlt4W3llXV19LFNlLnByb3RvdHlwZS50cmFuc2Zvcm09ZnVuY3Rpb24oeCxQLFYsVCxTLEYpe3RoaXMucGVybXV0ZShGLHgsUCxWLFQsUyk7Zm9yKHZhciB5ZT0xO3llPFM7eWU8PD0xKWZvcih2YXIgQ2U9eWU8PDEsRGU9TWF0aC5jb3MoMipNYXRoLlBJL0NlKSxQZT1NYXRoLnNpbigy''@;'; + put 'put ''Kk1hdGguUEkvQ2UpLFFlPTA7UWU8UztRZSs9Q2UpZm9yKHZhciAkZT1EZSxndD1QZSx3dD0wO3d0PHllO3d0Kyspe3ZhciBtdD1WW1FlK3d0XSx2dD1UW1FlK3d0XSxBdD1WW1FlK3d0K3llXSxodD1UW1FlK3d0K3llXSxCdD0kZSpBdC1ndCpodDtodD0kZSpodCtndCpBdCxWW1FlK3d0XT1t''@;'; + put 'put ''dCsoQXQ9QnQpLFRbUWUrd3RdPXZ0K2h0LFZbUWUrd3QreWVdPW10LUF0LFRbUWUrd3QreWVdPXZ0LWh0LHd0IT09Q2UmJihCdD1EZSokZS1QZSpndCxndD1EZSpndCtQZSokZSwkZT1CdCl9fSxTZS5wcm90b3R5cGUuZ3Vlc3NMZW4xM2I9ZnVuY3Rpb24oeCxQKXt2YXIgVj0xfE1hdGgubWF4''@;'; + put 'put ''KFAseCksVD0xJlYsUz0wO2ZvcihWPVYvMnwwO1Y7Vj4+Pj0xKVMrKztyZXR1cm4gMTw8UysxK1R9LFNlLnByb3RvdHlwZS5jb25qdWdhdGU9ZnVuY3Rpb24oeCxQLFYpe2lmKCEoVjw9MSkpZm9yKHZhciBUPTA7VDxWLzI7VCsrKXt2YXIgUz14W1RdO3hbVF09eFtWLVQtMV0seFtWLVQtMV09''@;'; + put 'put ''UyxTPVBbVF0sUFtUXT0tUFtWLVQtMV0sUFtWLVQtMV09LVN9fSxTZS5wcm90b3R5cGUubm9ybWFsaXplMTNiPWZ1bmN0aW9uKHgsUCl7Zm9yKHZhciBWPTAsVD0wO1Q8UC8yO1QrKyl7dmFyIFM9ODE5MipNYXRoLnJvdW5kKHhbMipUKzFdL1ApK01hdGgucm91bmQoeFsyKlRdL1ApK1Y7eFtU''@;'; + put 'put ''XT02NzEwODg2MyZTLFY9Uzw2NzEwODg2ND8wOlMvNjcxMDg4NjR8MH1yZXR1cm4geH0sU2UucHJvdG90eXBlLmNvbnZlcnQxM2I9ZnVuY3Rpb24oeCxQLFYsVCl7Zm9yKHZhciBTPTAsRj0wO0Y8UDtGKyspVlsyKkZdPTgxOTEmKFMrPTB8eFtGXSksVlsyKkYrMV09ODE5MSYoUz4+Pj0xMyks''@;'; + put 'put ''Uz4+Pj0xMztmb3IoRj0yKlA7RjxUOysrRilWW0ZdPTA7WSgwPT09UyksWSgwPT0oLTgxOTImUykpfSxTZS5wcm90b3R5cGUuc3R1Yj1mdW5jdGlvbih4KXtmb3IodmFyIFA9bmV3IEFycmF5KHgpLFY9MDtWPHg7VisrKVBbVl09MDtyZXR1cm4gUH0sU2UucHJvdG90eXBlLm11bHA9ZnVuY3Rp''@;'; + put 'put ''b24oeCxQLFYpe3ZhciBUPTIqdGhpcy5ndWVzc0xlbjEzYih4Lmxlbmd0aCxQLmxlbmd0aCksUz10aGlzLm1ha2VSQlQoVCksRj10aGlzLnN0dWIoVCkseWU9bmV3IEFycmF5KFQpLENlPW5ldyBBcnJheShUKSxEZT1uZXcgQXJyYXkoVCksUGU9bmV3IEFycmF5KFQpLFFlPW5ldyBBcnJheShU''@;'; + put 'put ''KSwkZT1uZXcgQXJyYXkoVCksZ3Q9Vi53b3JkcztndC5sZW5ndGg9VCx0aGlzLmNvbnZlcnQxM2IoeC53b3Jkcyx4Lmxlbmd0aCx5ZSxUKSx0aGlzLmNvbnZlcnQxM2IoUC53b3JkcyxQLmxlbmd0aCxQZSxUKSx0aGlzLnRyYW5zZm9ybSh5ZSxGLENlLERlLFQsUyksdGhpcy50cmFuc2Zvcm0o''@;'; + put 'put ''UGUsRixRZSwkZSxULFMpO2Zvcih2YXIgd3Q9MDt3dDxUO3d0Kyspe3ZhciBtdD1DZVt3dF0qUWVbd3RdLURlW3d0XSokZVt3dF07RGVbd3RdPUNlW3d0XSokZVt3dF0rRGVbd3RdKlFlW3d0XSxDZVt3dF09bXR9cmV0dXJuIHRoaXMuY29uanVnYXRlKENlLERlLFQpLHRoaXMudHJhbnNmb3Jt''@;'; + put 'put ''KENlLERlLGd0LEYsVCxTKSx0aGlzLmNvbmp1Z2F0ZShndCxGLFQpLHRoaXMubm9ybWFsaXplMTNiKGd0LFQpLFYubmVnYXRpdmU9eC5uZWdhdGl2ZV5QLm5lZ2F0aXZlLFYubGVuZ3RoPXgubGVuZ3RoK1AubGVuZ3RoLFYuc3RyaXAoKX0sTi5wcm90b3R5cGUubXVsPWZ1bmN0aW9uKHgpe3Zh''@;'; + put 'put ''ciBQPW5ldyBOKG51bGwpO3JldHVybiBQLndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCt4Lmxlbmd0aCksdGhpcy5tdWxUbyh4LFApfSxOLnByb3RvdHlwZS5tdWxmPWZ1bmN0aW9uKHgpe3ZhciBQPW5ldyBOKG51bGwpO3JldHVybiBQLndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCt4''@;'; + put 'put ''Lmxlbmd0aCksa2UodGhpcyx4LFApfSxOLnByb3RvdHlwZS5pbXVsPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmNsb25lKCkubXVsVG8oeCx0aGlzKX0sTi5wcm90b3R5cGUuaW11bG49ZnVuY3Rpb24oeCl7WSgibnVtYmVyIj09dHlwZW9mIHgpLFkoeDw2NzEwODg2NCk7Zm9yKHZhciBQPTAs''@;'; + put 'put ''Vj0wO1Y8dGhpcy5sZW5ndGg7VisrKXt2YXIgVD0oMHx0aGlzLndvcmRzW1ZdKSp4LFM9KDY3MTA4ODYzJlQpKyg2NzEwODg2MyZQKTtQPj49MjYsUCs9VC82NzEwODg2NHwwLFArPVM+Pj4yNix0aGlzLndvcmRzW1ZdPTY3MTA4ODYzJlN9cmV0dXJuIDAhPT1QJiYodGhpcy53b3Jkc1tWXT1Q''@;'; + put 'put ''LHRoaXMubGVuZ3RoKyspLHRoaXN9LE4ucHJvdG90eXBlLm11bG49ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pbXVsbih4KX0sTi5wcm90b3R5cGUuc3FyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXVsKHRoaXMpfSxOLnByb3RvdHlwZS5pc3FyPWZ1bmN0aW9uKCl7cmV0dXJu''@;'; + put 'put ''IHRoaXMuaW11bCh0aGlzLmNsb25lKCkpfSxOLnByb3RvdHlwZS5wb3c9ZnVuY3Rpb24oeCl7dmFyIFA9ZnVuY3Rpb24oRil7Zm9yKHZhciB5ZT1uZXcgQXJyYXkoRi5iaXRMZW5ndGgoKSksQ2U9MDtDZTx5ZS5sZW5ndGg7Q2UrKyl7dmFyIFBlPUNlJTI2O3llW0NlXT0oRi53b3Jkc1tDZS8y''@;'; + put 'put ''NnwwXSYxPDxQZSk+Pj5QZX1yZXR1cm4geWV9KHgpO2lmKDA9PT1QLmxlbmd0aClyZXR1cm4gbmV3IE4oMSk7Zm9yKHZhciBWPXRoaXMsVD0wO1Q8UC5sZW5ndGgmJjA9PT1QW1RdO1QrKyxWPVYuc3FyKCkpO2lmKCsrVDxQLmxlbmd0aClmb3IodmFyIFM9Vi5zcXIoKTtUPFAubGVuZ3RoO1Qr''@;'; + put 'put ''KyxTPVMuc3FyKCkpMCE9PVBbVF0mJihWPVYubXVsKFMpKTtyZXR1cm4gVn0sTi5wcm90b3R5cGUuaXVzaGxuPWZ1bmN0aW9uKHgpe1koIm51bWJlciI9PXR5cGVvZiB4JiZ4Pj0wKTt2YXIgUCxWPXglMjYsVD0oeC1WKS8yNixTPTY3MTA4ODYzPj4+MjYtVjw8MjYtVjtpZigwIT09Vil7dmFy''@;'; + put 'put ''IEY9MDtmb3IoUD0wO1A8dGhpcy5sZW5ndGg7UCsrKXt2YXIgeWU9dGhpcy53b3Jkc1tQXSZTO3RoaXMud29yZHNbUF09KDB8dGhpcy53b3Jkc1tQXSkteWU8PFZ8RixGPXllPj4+MjYtVn1GJiYodGhpcy53b3Jkc1tQXT1GLHRoaXMubGVuZ3RoKyspfWlmKDAhPT1UKXtmb3IoUD10aGlzLmxl''@;'; + put 'put ''bmd0aC0xO1A+PTA7UC0tKXRoaXMud29yZHNbUCtUXT10aGlzLndvcmRzW1BdO2ZvcihQPTA7UDxUO1ArKyl0aGlzLndvcmRzW1BdPTA7dGhpcy5sZW5ndGgrPVR9cmV0dXJuIHRoaXMuc3RyaXAoKX0sTi5wcm90b3R5cGUuaXNobG49ZnVuY3Rpb24oeCl7cmV0dXJuIFkoMD09PXRoaXMubmVn''@;'; + put 'put ''YXRpdmUpLHRoaXMuaXVzaGxuKHgpfSxOLnByb3RvdHlwZS5pdXNocm49ZnVuY3Rpb24oeCxQLFYpe3ZhciBUO1koIm51bWJlciI9PXR5cGVvZiB4JiZ4Pj0wKSxUPVA/KFAtUCUyNikvMjY6MDt2YXIgUz14JTI2LEY9TWF0aC5taW4oKHgtUykvMjYsdGhpcy5sZW5ndGgpLHllPTY3MTA4ODYz''@;'; + put 'put ''XjY3MTA4ODYzPj4+Uzw8UyxDZT1WO2lmKFQtPUYsVD1NYXRoLm1heCgwLFQpLENlKXtmb3IodmFyIERlPTA7RGU8RjtEZSsrKUNlLndvcmRzW0RlXT10aGlzLndvcmRzW0RlXTtDZS5sZW5ndGg9Rn1pZigwIT09RilpZih0aGlzLmxlbmd0aD5GKWZvcih0aGlzLmxlbmd0aC09RixEZT0wO0Rl''@;'; + put 'put ''PHRoaXMubGVuZ3RoO0RlKyspdGhpcy53b3Jkc1tEZV09dGhpcy53b3Jkc1tEZStGXTtlbHNlIHRoaXMud29yZHNbMF09MCx0aGlzLmxlbmd0aD0xO3ZhciBQZT0wO2ZvcihEZT10aGlzLmxlbmd0aC0xO0RlPj0wJiYoMCE9PVBlfHxEZT49VCk7RGUtLSl7dmFyIFFlPTB8dGhpcy53b3Jkc1tE''@;'; + put 'put ''ZV07dGhpcy53b3Jkc1tEZV09UGU8PDI2LVN8UWU+Pj5TLFBlPVFlJnllfXJldHVybiBDZSYmMCE9PVBlJiYoQ2Uud29yZHNbQ2UubGVuZ3RoKytdPVBlKSwwPT09dGhpcy5sZW5ndGgmJih0aGlzLndvcmRzWzBdPTAsdGhpcy5sZW5ndGg9MSksdGhpcy5zdHJpcCgpfSxOLnByb3RvdHlwZS5p''@;'; + put 'put ''c2hybj1mdW5jdGlvbih4LFAsVil7cmV0dXJuIFkoMD09PXRoaXMubmVnYXRpdmUpLHRoaXMuaXVzaHJuKHgsUCxWKX0sTi5wcm90b3R5cGUuc2hsbj1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlzaGxuKHgpfSxOLnByb3RvdHlwZS51c2hsbj1mdW5jdGlvbih4KXtyZXR1cm4g''@;'; + put 'put ''dGhpcy5jbG9uZSgpLml1c2hsbih4KX0sTi5wcm90b3R5cGUuc2hybj1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlzaHJuKHgpfSxOLnByb3RvdHlwZS51c2hybj1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5jbG9uZSgpLml1c2hybih4KX0sTi5wcm90b3R5cGUudGVzdG49ZnVu''@;'; + put 'put ''Y3Rpb24oeCl7WSgibnVtYmVyIj09dHlwZW9mIHgmJng+PTApO3ZhciBQPXglMjYsVj0oeC1QKS8yNjtyZXR1cm4hKHRoaXMubGVuZ3RoPD1WfHwhKHRoaXMud29yZHNbVl0mMTw8UCkpfSxOLnByb3RvdHlwZS5pbWFza249ZnVuY3Rpb24oeCl7WSgibnVtYmVyIj09dHlwZW9mIHgmJng+PTAp''@;'; + put 'put ''O3ZhciBQPXglMjYsVj0oeC1QKS8yNjtyZXR1cm4gWSgwPT09dGhpcy5uZWdhdGl2ZSwiaW1hc2tuIHdvcmtzIG9ubHkgd2l0aCBwb3NpdGl2ZSBudW1iZXJzIiksdGhpcy5sZW5ndGg8PVY/dGhpczooMCE9PVAmJlYrKyx0aGlzLmxlbmd0aD1NYXRoLm1pbihWLHRoaXMubGVuZ3RoKSwwIT09''@;'; + put 'put ''UCYmKHRoaXMud29yZHNbdGhpcy5sZW5ndGgtMV0mPTY3MTA4ODYzXjY3MTA4ODYzPj4+UDw8UCksdGhpcy5zdHJpcCgpKX0sTi5wcm90b3R5cGUubWFza249ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pbWFza24oeCl9LE4ucHJvdG90eXBlLmlhZGRuPWZ1bmN0aW9uKHgpe3Jl''@;'; + put 'put ''dHVybiBZKCJudW1iZXIiPT10eXBlb2YgeCksWSh4PDY3MTA4ODY0KSx4PDA/dGhpcy5pc3VibigteCk6MCE9PXRoaXMubmVnYXRpdmU/MT09PXRoaXMubGVuZ3RoJiYoMHx0aGlzLndvcmRzWzBdKTx4Pyh0aGlzLndvcmRzWzBdPXgtKDB8dGhpcy53b3Jkc1swXSksdGhpcy5uZWdhdGl2ZT0w''@;'; + put 'put ''LHRoaXMpOih0aGlzLm5lZ2F0aXZlPTAsdGhpcy5pc3Vibih4KSx0aGlzLm5lZ2F0aXZlPTEsdGhpcyk6dGhpcy5faWFkZG4oeCl9LE4ucHJvdG90eXBlLl9pYWRkbj1mdW5jdGlvbih4KXt0aGlzLndvcmRzWzBdKz14O2Zvcih2YXIgUD0wO1A8dGhpcy5sZW5ndGgmJnRoaXMud29yZHNbUF0+''@;'; + put 'put ''PTY3MTA4ODY0O1ArKyl0aGlzLndvcmRzW1BdLT02NzEwODg2NCxQPT09dGhpcy5sZW5ndGgtMT90aGlzLndvcmRzW1ArMV09MTp0aGlzLndvcmRzW1ArMV0rKztyZXR1cm4gdGhpcy5sZW5ndGg9TWF0aC5tYXgodGhpcy5sZW5ndGgsUCsxKSx0aGlzfSxOLnByb3RvdHlwZS5pc3Vibj1mdW5j''@;'; + put 'put ''dGlvbih4KXtpZihZKCJudW1iZXIiPT10eXBlb2YgeCksWSh4PDY3MTA4ODY0KSx4PDApcmV0dXJuIHRoaXMuaWFkZG4oLXgpO2lmKDAhPT10aGlzLm5lZ2F0aXZlKXJldHVybiB0aGlzLm5lZ2F0aXZlPTAsdGhpcy5pYWRkbih4KSx0aGlzLm5lZ2F0aXZlPTEsdGhpcztpZih0aGlzLndvcmRz''@;'; + put 'put ''WzBdLT14LDE9PT10aGlzLmxlbmd0aCYmdGhpcy53b3Jkc1swXTwwKXRoaXMud29yZHNbMF09LXRoaXMud29yZHNbMF0sdGhpcy5uZWdhdGl2ZT0xO2Vsc2UgZm9yKHZhciBQPTA7UDx0aGlzLmxlbmd0aCYmdGhpcy53b3Jkc1tQXTwwO1ArKyl0aGlzLndvcmRzW1BdKz02NzEwODg2NCx0aGlz''@;'; + put 'put ''LndvcmRzW1ArMV0tPTE7cmV0dXJuIHRoaXMuc3RyaXAoKX0sTi5wcm90b3R5cGUuYWRkbj1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlhZGRuKHgpfSxOLnByb3RvdHlwZS5zdWJuPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmNsb25lKCkuaXN1Ym4oeCl9LE4ucHJvdG90eXBl''@;'; + put 'put ''LmlhYnM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLHRoaXN9LE4ucHJvdG90eXBlLmFicz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmNsb25lKCkuaWFicygpfSxOLnByb3RvdHlwZS5faXNobG5zdWJtdWw9ZnVuY3Rpb24oeCxQLFYpe3ZhciBULFM7dGhpcy5fZXhwYW5kKHgu''@;'; + put 'put ''bGVuZ3RoK1YpO3ZhciB5ZT0wO2ZvcihUPTA7VDx4Lmxlbmd0aDtUKyspe1M9KDB8dGhpcy53b3Jkc1tUK1ZdKSt5ZTt2YXIgQ2U9KDB8eC53b3Jkc1tUXSkqUDt5ZT0oKFMtPTY3MTA4ODYzJkNlKT4+MjYpLShDZS82NzEwODg2NHwwKSx0aGlzLndvcmRzW1QrVl09NjcxMDg4NjMmU31mb3Io''@;'; + put 'put ''O1Q8dGhpcy5sZW5ndGgtVjtUKyspeWU9KFM9KDB8dGhpcy53b3Jkc1tUK1ZdKSt5ZSk+PjI2LHRoaXMud29yZHNbVCtWXT02NzEwODg2MyZTO2lmKDA9PT15ZSlyZXR1cm4gdGhpcy5zdHJpcCgpO2ZvcihZKC0xPT09eWUpLHllPTAsVD0wO1Q8dGhpcy5sZW5ndGg7VCsrKXllPShTPS0oMHx0''@;'; + put 'put ''aGlzLndvcmRzW1RdKSt5ZSk+PjI2LHRoaXMud29yZHNbVF09NjcxMDg4NjMmUztyZXR1cm4gdGhpcy5uZWdhdGl2ZT0xLHRoaXMuc3RyaXAoKX0sTi5wcm90b3R5cGUuX3dvcmREaXY9ZnVuY3Rpb24oeCxQKXt2YXIgVixUPXRoaXMuY2xvbmUoKSxTPXgsRj0wfFMud29yZHNbUy5sZW5ndGgt''@;'; + put 'put ''MV07MCE9KFY9MjYtdGhpcy5fY291bnRCaXRzKEYpKSYmKFM9Uy51c2hsbihWKSxULml1c2hsbihWKSxGPTB8Uy53b3Jkc1tTLmxlbmd0aC0xXSk7dmFyIHllLENlPVQubGVuZ3RoLVMubGVuZ3RoO2lmKCJtb2QiIT09UCl7KHllPW5ldyBOKG51bGwpKS5sZW5ndGg9Q2UrMSx5ZS53b3Jkcz1u''@;'; + put 'put ''ZXcgQXJyYXkoeWUubGVuZ3RoKTtmb3IodmFyIERlPTA7RGU8eWUubGVuZ3RoO0RlKyspeWUud29yZHNbRGVdPTB9dmFyIFBlPVQuY2xvbmUoKS5faXNobG5zdWJtdWwoUywxLENlKTswPT09UGUubmVnYXRpdmUmJihUPVBlLHllJiYoeWUud29yZHNbQ2VdPTEpKTtmb3IodmFyIFFlPUNlLTE7''@;'; + put 'put ''UWU+PTA7UWUtLSl7dmFyICRlPTY3MTA4ODY0KigwfFQud29yZHNbUy5sZW5ndGgrUWVdKSsoMHxULndvcmRzW1MubGVuZ3RoK1FlLTFdKTtmb3IoJGU9TWF0aC5taW4oJGUvRnwwLDY3MTA4ODYzKSxULl9pc2hsbnN1Ym11bChTLCRlLFFlKTswIT09VC5uZWdhdGl2ZTspJGUtLSxULm5lZ2F0''@;'; + put 'put ''aXZlPTAsVC5faXNobG5zdWJtdWwoUywxLFFlKSxULmlzWmVybygpfHwoVC5uZWdhdGl2ZV49MSk7eWUmJih5ZS53b3Jkc1tRZV09JGUpfXJldHVybiB5ZSYmeWUuc3RyaXAoKSxULnN0cmlwKCksImRpdiIhPT1QJiYwIT09ViYmVC5pdXNocm4oVikse2Rpdjp5ZXx8bnVsbCxtb2Q6VH19LE4u''@;'; + put 'put ''cHJvdG90eXBlLmRpdm1vZD1mdW5jdGlvbih4LFAsVil7cmV0dXJuIFkoIXguaXNaZXJvKCkpLHRoaXMuaXNaZXJvKCk/e2RpdjpuZXcgTigwKSxtb2Q6bmV3IE4oMCl9OjAhPT10aGlzLm5lZ2F0aXZlJiYwPT09eC5uZWdhdGl2ZT8oRj10aGlzLm5lZygpLmRpdm1vZCh4LFApLCJtb2QiIT09''@;'; + put 'put ''UCYmKFQ9Ri5kaXYubmVnKCkpLCJkaXYiIT09UCYmKFM9Ri5tb2QubmVnKCksViYmMCE9PVMubmVnYXRpdmUmJlMuaWFkZCh4KSkse2RpdjpULG1vZDpTfSk6MD09PXRoaXMubmVnYXRpdmUmJjAhPT14Lm5lZ2F0aXZlPyhGPXRoaXMuZGl2bW9kKHgubmVnKCksUCksIm1vZCIhPT1QJiYoVD1G''@;'; + put 'put ''LmRpdi5uZWcoKSkse2RpdjpULG1vZDpGLm1vZH0pOjAhPSh0aGlzLm5lZ2F0aXZlJngubmVnYXRpdmUpPyhGPXRoaXMubmVnKCkuZGl2bW9kKHgubmVnKCksUCksImRpdiIhPT1QJiYoUz1GLm1vZC5uZWcoKSxWJiYwIT09Uy5uZWdhdGl2ZSYmUy5pc3ViKHgpKSx7ZGl2OkYuZGl2LG1vZDpT''@;'; + put 'put ''fSk6eC5sZW5ndGg+dGhpcy5sZW5ndGh8fHRoaXMuY21wKHgpPDA/e2RpdjpuZXcgTigwKSxtb2Q6dGhpc306MT09PXgubGVuZ3RoPyJkaXYiPT09UD97ZGl2OnRoaXMuZGl2bih4LndvcmRzWzBdKSxtb2Q6bnVsbH06Im1vZCI9PT1QP3tkaXY6bnVsbCxtb2Q6bmV3IE4odGhpcy5tb2RuKHgu''@;'; + put 'put ''d29yZHNbMF0pKX06e2Rpdjp0aGlzLmRpdm4oeC53b3Jkc1swXSksbW9kOm5ldyBOKHRoaXMubW9kbih4LndvcmRzWzBdKSl9OnRoaXMuX3dvcmREaXYoeCxQKTt2YXIgVCxTLEZ9LE4ucHJvdG90eXBlLmRpdj1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5kaXZtb2QoeCwiZGl2IiwhMSkuZGl2''@;'; + put 'put ''fSxOLnByb3RvdHlwZS5tb2Q9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuZGl2bW9kKHgsIm1vZCIsITEpLm1vZH0sTi5wcm90b3R5cGUudW1vZD1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5kaXZtb2QoeCwibW9kIiwhMCkubW9kfSxOLnByb3RvdHlwZS5kaXZSb3VuZD1mdW5jdGlvbih4KXt2''@;'; + put 'put ''YXIgUD10aGlzLmRpdm1vZCh4KTtpZihQLm1vZC5pc1plcm8oKSlyZXR1cm4gUC5kaXY7dmFyIFY9MCE9PVAuZGl2Lm5lZ2F0aXZlP1AubW9kLmlzdWIoeCk6UC5tb2QsVD14LnVzaHJuKDEpLFM9eC5hbmRsbigxKSxGPVYuY21wKFQpO3JldHVybiBGPDB8fDE9PT1TJiYwPT09Rj9QLmRpdjow''@;'; + put 'put ''IT09UC5kaXYubmVnYXRpdmU/UC5kaXYuaXN1Ym4oMSk6UC5kaXYuaWFkZG4oMSl9LE4ucHJvdG90eXBlLm1vZG49ZnVuY3Rpb24oeCl7WSh4PD02NzEwODg2Myk7Zm9yKHZhciBQPTY3MTA4ODY0JXgsVj0wLFQ9dGhpcy5sZW5ndGgtMTtUPj0wO1QtLSlWPShQKlYrKDB8dGhpcy53b3Jkc1tU''@;'; + put 'put ''XSkpJXg7cmV0dXJuIFZ9LE4ucHJvdG90eXBlLmlkaXZuPWZ1bmN0aW9uKHgpe1koeDw9NjcxMDg4NjMpO2Zvcih2YXIgUD0wLFY9dGhpcy5sZW5ndGgtMTtWPj0wO1YtLSl7dmFyIFQ9KDB8dGhpcy53b3Jkc1tWXSkrNjcxMDg4NjQqUDt0aGlzLndvcmRzW1ZdPVQveHwwLFA9VCV4fXJldHVy''@;'; + put 'put ''biB0aGlzLnN0cmlwKCl9LE4ucHJvdG90eXBlLmRpdm49ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pZGl2bih4KX0sTi5wcm90b3R5cGUuZWdjZD1mdW5jdGlvbih4KXtZKDA9PT14Lm5lZ2F0aXZlKSxZKCF4LmlzWmVybygpKTt2YXIgUD10aGlzLFY9eC5jbG9uZSgpO1A9MCE9''@;'; + put 'put ''PVAubmVnYXRpdmU/UC51bW9kKHgpOlAuY2xvbmUoKTtmb3IodmFyIFQ9bmV3IE4oMSksUz1uZXcgTigwKSxGPW5ldyBOKDApLHllPW5ldyBOKDEpLENlPTA7UC5pc0V2ZW4oKSYmVi5pc0V2ZW4oKTspUC5pdXNocm4oMSksVi5pdXNocm4oMSksKytDZTtmb3IodmFyIERlPVYuY2xvbmUoKSxQ''@;'; + put 'put ''ZT1QLmNsb25lKCk7IVAuaXNaZXJvKCk7KXtmb3IodmFyIFFlPTAsJGU9MTswPT0oUC53b3Jkc1swXSYkZSkmJlFlPDI2OysrUWUsJGU8PD0xKTtpZihRZT4wKWZvcihQLml1c2hybihRZSk7UWUtLSA+MDspKFQuaXNPZGQoKXx8Uy5pc09kZCgpKSYmKFQuaWFkZChEZSksUy5pc3ViKFBlKSks''@;'; + put 'put ''VC5pdXNocm4oMSksUy5pdXNocm4oMSk7Zm9yKHZhciBndD0wLHd0PTE7MD09KFYud29yZHNbMF0md3QpJiZndDwyNjsrK2d0LHd0PDw9MSk7aWYoZ3Q+MClmb3IoVi5pdXNocm4oZ3QpO2d0LS0gPjA7KShGLmlzT2RkKCl8fHllLmlzT2RkKCkpJiYoRi5pYWRkKERlKSx5ZS5pc3ViKFBlKSks''@;'; + put 'put ''Ri5pdXNocm4oMSkseWUuaXVzaHJuKDEpO1AuY21wKFYpPj0wPyhQLmlzdWIoViksVC5pc3ViKEYpLFMuaXN1Yih5ZSkpOihWLmlzdWIoUCksRi5pc3ViKFQpLHllLmlzdWIoUykpfXJldHVybnthOkYsYjp5ZSxnY2Q6Vi5pdXNobG4oQ2UpfX0sTi5wcm90b3R5cGUuX2ludm1wPWZ1bmN0aW9u''@;'; + put 'put ''KHgpe1koMD09PXgubmVnYXRpdmUpLFkoIXguaXNaZXJvKCkpO3ZhciBQPXRoaXMsVj14LmNsb25lKCk7UD0wIT09UC5uZWdhdGl2ZT9QLnVtb2QoeCk6UC5jbG9uZSgpO2Zvcih2YXIgVCxTPW5ldyBOKDEpLEY9bmV3IE4oMCkseWU9Vi5jbG9uZSgpO1AuY21wbigxKT4wJiZWLmNtcG4oMSk+''@;'; + put 'put ''MDspe2Zvcih2YXIgQ2U9MCxEZT0xOzA9PShQLndvcmRzWzBdJkRlKSYmQ2U8MjY7KytDZSxEZTw8PTEpO2lmKENlPjApZm9yKFAuaXVzaHJuKENlKTtDZS0tID4wOylTLmlzT2RkKCkmJlMuaWFkZCh5ZSksUy5pdXNocm4oMSk7Zm9yKHZhciBQZT0wLFFlPTE7MD09KFYud29yZHNbMF0mUWUp''@;'; + put 'put ''JiZQZTwyNjsrK1BlLFFlPDw9MSk7aWYoUGU+MClmb3IoVi5pdXNocm4oUGUpO1BlLS0gPjA7KUYuaXNPZGQoKSYmRi5pYWRkKHllKSxGLml1c2hybigxKTtQLmNtcChWKT49MD8oUC5pc3ViKFYpLFMuaXN1YihGKSk6KFYuaXN1YihQKSxGLmlzdWIoUykpfXJldHVybihUPTA9PT1QLmNtcG4o''@;'; + put 'put ''MSk/UzpGKS5jbXBuKDApPDAmJlQuaWFkZCh4KSxUfSxOLnByb3RvdHlwZS5nY2Q9ZnVuY3Rpb24oeCl7aWYodGhpcy5pc1plcm8oKSlyZXR1cm4geC5hYnMoKTtpZih4LmlzWmVybygpKXJldHVybiB0aGlzLmFicygpO3ZhciBQPXRoaXMuY2xvbmUoKSxWPXguY2xvbmUoKTtQLm5lZ2F0aXZl''@;'; + put 'put ''PTAsVi5uZWdhdGl2ZT0wO2Zvcih2YXIgVD0wO1AuaXNFdmVuKCkmJlYuaXNFdmVuKCk7VCsrKVAuaXVzaHJuKDEpLFYuaXVzaHJuKDEpO2Zvcig7Oyl7Zm9yKDtQLmlzRXZlbigpOylQLml1c2hybigxKTtmb3IoO1YuaXNFdmVuKCk7KVYuaXVzaHJuKDEpO3ZhciBTPVAuY21wKFYpO2lmKFM8''@;'; + put 'put ''MCl7dmFyIEY9UDtQPVYsVj1GfWVsc2UgaWYoMD09PVN8fDA9PT1WLmNtcG4oMSkpYnJlYWs7UC5pc3ViKFYpfXJldHVybiBWLml1c2hsbihUKX0sTi5wcm90b3R5cGUuaW52bT1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5lZ2NkKHgpLmEudW1vZCh4KX0sTi5wcm90b3R5cGUuaXNFdmVuPWZ1''@;'; + put 'put ''bmN0aW9uKCl7cmV0dXJuIDA9PSgxJnRoaXMud29yZHNbMF0pfSxOLnByb3RvdHlwZS5pc09kZD1mdW5jdGlvbigpe3JldHVybiAxPT0oMSZ0aGlzLndvcmRzWzBdKX0sTi5wcm90b3R5cGUuYW5kbG49ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMud29yZHNbMF0meH0sTi5wcm90b3R5cGUuYmlu''@;'; + put 'put ''Y249ZnVuY3Rpb24oeCl7WSgibnVtYmVyIj09dHlwZW9mIHgpO3ZhciBQPXglMjYsVj0oeC1QKS8yNixUPTE8PFA7aWYodGhpcy5sZW5ndGg8PVYpcmV0dXJuIHRoaXMuX2V4cGFuZChWKzEpLHRoaXMud29yZHNbVl18PVQsdGhpcztmb3IodmFyIFM9VCxGPVY7MCE9PVMmJkY8dGhpcy5sZW5n''@;'; + put 'put ''dGg7RisrKXt2YXIgeWU9MHx0aGlzLndvcmRzW0ZdO1M9KHllKz1TKT4+PjI2LHRoaXMud29yZHNbRl09eWUmPTY3MTA4ODYzfXJldHVybiAwIT09UyYmKHRoaXMud29yZHNbRl09Uyx0aGlzLmxlbmd0aCsrKSx0aGlzfSxOLnByb3RvdHlwZS5pc1plcm89ZnVuY3Rpb24oKXtyZXR1cm4gMT09''@;'; + put 'put ''PXRoaXMubGVuZ3RoJiYwPT09dGhpcy53b3Jkc1swXX0sTi5wcm90b3R5cGUuY21wbj1mdW5jdGlvbih4KXt2YXIgUCxWPXg8MDtpZigwIT09dGhpcy5uZWdhdGl2ZSYmIVYpcmV0dXJuLTE7aWYoMD09PXRoaXMubmVnYXRpdmUmJlYpcmV0dXJuIDE7aWYodGhpcy5zdHJpcCgpLHRoaXMubGVu''@;'; + put 'put ''Z3RoPjEpUD0xO2Vsc2V7ViYmKHg9LXgpLFkoeDw9NjcxMDg4NjMsIk51bWJlciBpcyB0b28gYmlnIik7dmFyIFQ9MHx0aGlzLndvcmRzWzBdO1A9VD09PXg/MDpUPHg/LTE6MX1yZXR1cm4gMCE9PXRoaXMubmVnYXRpdmU/MHwtUDpQfSxOLnByb3RvdHlwZS5jbXA9ZnVuY3Rpb24oeCl7aWYo''@;'; + put 'put ''MCE9PXRoaXMubmVnYXRpdmUmJjA9PT14Lm5lZ2F0aXZlKXJldHVybi0xO2lmKDA9PT10aGlzLm5lZ2F0aXZlJiYwIT09eC5uZWdhdGl2ZSlyZXR1cm4gMTt2YXIgUD10aGlzLnVjbXAoeCk7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlPzB8LVA6UH0sTi5wcm90b3R5cGUudWNtcD1mdW5jdGlv''@;'; + put 'put ''bih4KXtpZih0aGlzLmxlbmd0aD54Lmxlbmd0aClyZXR1cm4gMTtpZih0aGlzLmxlbmd0aDx4Lmxlbmd0aClyZXR1cm4tMTtmb3IodmFyIFA9MCxWPXRoaXMubGVuZ3RoLTE7Vj49MDtWLS0pe3ZhciBUPTB8dGhpcy53b3Jkc1tWXSxTPTB8eC53b3Jkc1tWXTtpZihUIT09Uyl7VDxTP1A9LTE6''@;'; + put 'put ''VD5TJiYoUD0xKTticmVha319cmV0dXJuIFB9LE4ucHJvdG90eXBlLmd0bj1mdW5jdGlvbih4KXtyZXR1cm4gMT09PXRoaXMuY21wbih4KX0sTi5wcm90b3R5cGUuZ3Q9ZnVuY3Rpb24oeCl7cmV0dXJuIDE9PT10aGlzLmNtcCh4KX0sTi5wcm90b3R5cGUuZ3Rlbj1mdW5jdGlvbih4KXtyZXR1''@;'; + put 'put ''cm4gdGhpcy5jbXBuKHgpPj0wfSxOLnByb3RvdHlwZS5ndGU9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuY21wKHgpPj0wfSxOLnByb3RvdHlwZS5sdG49ZnVuY3Rpb24oeCl7cmV0dXJuLTE9PT10aGlzLmNtcG4oeCl9LE4ucHJvdG90eXBlLmx0PWZ1bmN0aW9uKHgpe3JldHVybi0xPT09dGhp''@;'; + put 'put ''cy5jbXAoeCl9LE4ucHJvdG90eXBlLmx0ZW49ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuY21wbih4KTw9MH0sTi5wcm90b3R5cGUubHRlPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmNtcCh4KTw9MH0sTi5wcm90b3R5cGUuZXFuPWZ1bmN0aW9uKHgpe3JldHVybiAwPT09dGhpcy5jbXBuKHgp''@;'; + put 'put ''fSxOLnByb3RvdHlwZS5lcT1mdW5jdGlvbih4KXtyZXR1cm4gMD09PXRoaXMuY21wKHgpfSxOLnJlZD1mdW5jdGlvbih4KXtyZXR1cm4gbmV3IG5lKHgpfSxOLnByb3RvdHlwZS50b1JlZD1mdW5jdGlvbih4KXtyZXR1cm4gWSghdGhpcy5yZWQsIkFscmVhZHkgYSBudW1iZXIgaW4gcmVkdWN0''@;'; + put 'put ''aW9uIGNvbnRleHQiKSxZKDA9PT10aGlzLm5lZ2F0aXZlLCJyZWQgd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlcyIpLHguY29udmVydFRvKHRoaXMpLl9mb3JjZVJlZCh4KX0sTi5wcm90b3R5cGUuZnJvbVJlZD1mdW5jdGlvbigpe3JldHVybiBZKHRoaXMucmVkLCJmcm9tUmVkIHdvcmtzIG9u''@;'; + put 'put ''bHkgd2l0aCBudW1iZXJzIGluIHJlZHVjdGlvbiBjb250ZXh0IiksdGhpcy5yZWQuY29udmVydEZyb20odGhpcyl9LE4ucHJvdG90eXBlLl9mb3JjZVJlZD1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5yZWQ9eCx0aGlzfSxOLnByb3RvdHlwZS5mb3JjZVJlZD1mdW5jdGlvbih4KXtyZXR1cm4g''@;'; + put 'put ''WSghdGhpcy5yZWQsIkFscmVhZHkgYSBudW1iZXIgaW4gcmVkdWN0aW9uIGNvbnRleHQiKSx0aGlzLl9mb3JjZVJlZCh4KX0sTi5wcm90b3R5cGUucmVkQWRkPWZ1bmN0aW9uKHgpe3JldHVybiBZKHRoaXMucmVkLCJyZWRBZGQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5y''@;'; + put 'put ''ZWQuYWRkKHRoaXMseCl9LE4ucHJvdG90eXBlLnJlZElBZGQ9ZnVuY3Rpb24oeCl7cmV0dXJuIFkodGhpcy5yZWQsInJlZElBZGQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuaWFkZCh0aGlzLHgpfSxOLnByb3RvdHlwZS5yZWRTdWI9ZnVuY3Rpb24oeCl7cmV0dXJu''@;'; + put 'put ''IFkodGhpcy5yZWQsInJlZFN1YiB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5zdWIodGhpcyx4KX0sTi5wcm90b3R5cGUucmVkSVN1Yj1mdW5jdGlvbih4KXtyZXR1cm4gWSh0aGlzLnJlZCwicmVkSVN1YiB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlz''@;'; + put 'put ''LnJlZC5pc3ViKHRoaXMseCl9LE4ucHJvdG90eXBlLnJlZFNobD1mdW5jdGlvbih4KXtyZXR1cm4gWSh0aGlzLnJlZCwicmVkU2hsIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLnNobCh0aGlzLHgpfSxOLnByb3RvdHlwZS5yZWRNdWw9ZnVuY3Rpb24oeCl7cmV0dXJu''@;'; + put 'put ''IFkodGhpcy5yZWQsInJlZE11bCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5Mih0aGlzLHgpLHRoaXMucmVkLm11bCh0aGlzLHgpfSxOLnByb3RvdHlwZS5yZWRJTXVsPWZ1bmN0aW9uKHgpe3JldHVybiBZKHRoaXMucmVkLCJyZWRNdWwgd29ya3Mgb25s''@;'; + put 'put ''eSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTIodGhpcyx4KSx0aGlzLnJlZC5pbXVsKHRoaXMseCl9LE4ucHJvdG90eXBlLnJlZFNxcj1mdW5jdGlvbigpe3JldHVybiBZKHRoaXMucmVkLCJyZWRTcXIgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQu''@;'; + put 'put ''X3ZlcmlmeTEodGhpcyksdGhpcy5yZWQuc3FyKHRoaXMpfSxOLnByb3RvdHlwZS5yZWRJU3FyPWZ1bmN0aW9uKCl7cmV0dXJuIFkodGhpcy5yZWQsInJlZElTcXIgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQuaXNxcih0aGlz''@;'; + put 'put ''KX0sTi5wcm90b3R5cGUucmVkU3FydD1mdW5jdGlvbigpe3JldHVybiBZKHRoaXMucmVkLCJyZWRTcXJ0IHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLnNxcnQodGhpcyl9LE4ucHJvdG90eXBlLnJlZEludm09ZnVuY3Rpb24o''@;'; + put 'put ''KXtyZXR1cm4gWSh0aGlzLnJlZCwicmVkSW52bSB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5pbnZtKHRoaXMpfSxOLnByb3RvdHlwZS5yZWROZWc9ZnVuY3Rpb24oKXtyZXR1cm4gWSh0aGlzLnJlZCwicmVkTmVnIHdvcmtz''@;'; + put 'put ''IG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLm5lZyh0aGlzKX0sTi5wcm90b3R5cGUucmVkUG93PWZ1bmN0aW9uKHgpe3JldHVybiBZKHRoaXMucmVkJiYheC5yZWQsInJlZFBvdyhub3JtYWxOdW0pIiksdGhpcy5yZWQuX3ZlcmlmeTEo''@;'; + put 'put ''dGhpcyksdGhpcy5yZWQucG93KHRoaXMseCl9O3ZhciBJZT17azI1NjpudWxsLHAyMjQ6bnVsbCxwMTkyOm51bGwscDI1NTE5Om51bGx9O2Z1bmN0aW9uIFRlKHgsUCl7dGhpcy5uYW1lPXgsdGhpcy5wPW5ldyBOKFAsMTYpLHRoaXMubj10aGlzLnAuYml0TGVuZ3RoKCksdGhpcy5rPW5ldyBO''@;'; + put 'put ''KDEpLml1c2hsbih0aGlzLm4pLmlzdWIodGhpcy5wKSx0aGlzLnRtcD10aGlzLl90bXAoKX1mdW5jdGlvbiBFZSgpe1RlLmNhbGwodGhpcywiazI1NiIsImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZlIGZmZmZmYzJmIil9ZnVu''@;'; + put 'put ''Y3Rpb24gaGUoKXtUZS5jYWxsKHRoaXMsInAyMjQiLCJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMSIpfWZ1bmN0aW9uIE8oKXtUZS5jYWxsKHRoaXMsInAxOTIiLCJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZm''@;'; + put 'put ''ZSBmZmZmZmZmZiBmZmZmZmZmZiIpfWZ1bmN0aW9uIHooKXtUZS5jYWxsKHRoaXMsIjI1NTE5IiwiN2ZmZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZlZCIpfWZ1bmN0aW9uIG5lKHgpe2lmKCJzdHJpbmciPT10eXBlb2YgeCl7''@;'; + put 'put ''dmFyIFA9Ti5fcHJpbWUoeCk7dGhpcy5tPVAucCx0aGlzLnByaW1lPVB9ZWxzZSBZKHguZ3RuKDEpLCJtb2R1bHVzIG11c3QgYmUgZ3JlYXRlciB0aGFuIDEiKSx0aGlzLm09eCx0aGlzLnByaW1lPW51bGx9ZnVuY3Rpb24gdGUoeCl7bmUuY2FsbCh0aGlzLHgpLHRoaXMuc2hpZnQ9dGhpcy5t''@;'; + put 'put ''LmJpdExlbmd0aCgpLHRoaXMuc2hpZnQlMjYhPTAmJih0aGlzLnNoaWZ0Kz0yNi10aGlzLnNoaWZ0JTI2KSx0aGlzLnI9bmV3IE4oMSkuaXVzaGxuKHRoaXMuc2hpZnQpLHRoaXMucjI9dGhpcy5pbW9kKHRoaXMuci5zcXIoKSksdGhpcy5yaW52PXRoaXMuci5faW52bXAodGhpcy5tKSx0aGlz''@;'; + put 'put ''Lm1pbnY9dGhpcy5yaW52Lm11bCh0aGlzLnIpLmlzdWJuKDEpLmRpdih0aGlzLm0pLHRoaXMubWludj10aGlzLm1pbnYudW1vZCh0aGlzLnIpLHRoaXMubWludj10aGlzLnIuc3ViKHRoaXMubWludil9VGUucHJvdG90eXBlLl90bXA9ZnVuY3Rpb24oKXt2YXIgeD1uZXcgTihudWxsKTtyZXR1''@;'; + put 'put ''cm4geC53b3Jkcz1uZXcgQXJyYXkoTWF0aC5jZWlsKHRoaXMubi8xMykpLHh9LFRlLnByb3RvdHlwZS5pcmVkdWNlPWZ1bmN0aW9uKHgpe3ZhciBQLFY9eDtkb3t0aGlzLnNwbGl0KFYsdGhpcy50bXApLFA9KFY9KFY9dGhpcy5pbXVsSyhWKSkuaWFkZCh0aGlzLnRtcCkpLmJpdExlbmd0aCgp''@;'; + put 'put ''fXdoaWxlKFA+dGhpcy5uKTt2YXIgVD1QPHRoaXMubj8tMTpWLnVjbXAodGhpcy5wKTtyZXR1cm4gMD09PVQ/KFYud29yZHNbMF09MCxWLmxlbmd0aD0xKTpUPjA/Vi5pc3ViKHRoaXMucCk6dm9pZCAwIT09Vi5zdHJpcD9WLnN0cmlwKCk6Vi5fc3RyaXAoKSxWfSxUZS5wcm90b3R5cGUuc3Bs''@;'; + put 'put ''aXQ9ZnVuY3Rpb24oeCxQKXt4Lml1c2hybih0aGlzLm4sMCxQKX0sVGUucHJvdG90eXBlLmltdWxLPWZ1bmN0aW9uKHgpe3JldHVybiB4LmltdWwodGhpcy5rKX0sVyhFZSxUZSksRWUucHJvdG90eXBlLnNwbGl0PWZ1bmN0aW9uKHgsUCl7Zm9yKHZhciBWPTQxOTQzMDMsVD1NYXRoLm1pbih4''@;'; + put 'put ''Lmxlbmd0aCw5KSxTPTA7UzxUO1MrKylQLndvcmRzW1NdPXgud29yZHNbU107aWYoUC5sZW5ndGg9VCx4Lmxlbmd0aDw9OSlyZXR1cm4geC53b3Jkc1swXT0wLHZvaWQoeC5sZW5ndGg9MSk7dmFyIEY9eC53b3Jkc1s5XTtmb3IoUC53b3Jkc1tQLmxlbmd0aCsrXT1GJlYsUz0xMDtTPHgubGVu''@;'; + put 'put ''Z3RoO1MrKyl7dmFyIHllPTB8eC53b3Jkc1tTXTt4LndvcmRzW1MtMTBdPSh5ZSZWKTw8NHxGPj4+MjIsRj15ZX14LndvcmRzW1MtMTBdPUY+Pj49MjIseC5sZW5ndGgtPTA9PT1GJiZ4Lmxlbmd0aD4xMD8xMDo5fSxFZS5wcm90b3R5cGUuaW11bEs9ZnVuY3Rpb24oeCl7eC53b3Jkc1t4Lmxl''@;'; + put 'put ''bmd0aF09MCx4LndvcmRzW3gubGVuZ3RoKzFdPTAseC5sZW5ndGgrPTI7Zm9yKHZhciBQPTAsVj0wO1Y8eC5sZW5ndGg7VisrKXt2YXIgVD0wfHgud29yZHNbVl07eC53b3Jkc1tWXT02NzEwODg2MyYoUCs9OTc3KlQpLFA9NjQqVCsoUC82NzEwODg2NHwwKX1yZXR1cm4gMD09PXgud29yZHNb''@;'; + put 'put ''eC5sZW5ndGgtMV0mJih4Lmxlbmd0aC0tLDA9PT14LndvcmRzW3gubGVuZ3RoLTFdJiZ4Lmxlbmd0aC0tKSx4fSxXKGhlLFRlKSxXKE8sVGUpLFcoeixUZSksei5wcm90b3R5cGUuaW11bEs9ZnVuY3Rpb24oeCl7Zm9yKHZhciBQPTAsVj0wO1Y8eC5sZW5ndGg7VisrKXt2YXIgVD0xOSooMHx4''@;'; + put 'put ''LndvcmRzW1ZdKStQLFM9NjcxMDg4NjMmVDtUPj4+PTI2LHgud29yZHNbVl09UyxQPVR9cmV0dXJuIDAhPT1QJiYoeC53b3Jkc1t4Lmxlbmd0aCsrXT1QKSx4fSxOLl9wcmltZT1mdW5jdGlvbih4KXtpZihJZVt4XSlyZXR1cm4gSWVbeF07dmFyIFA7aWYoImsyNTYiPT09eClQPW5ldyBFZTtl''@;'; + put 'put ''bHNlIGlmKCJwMjI0Ij09PXgpUD1uZXcgaGU7ZWxzZSBpZigicDE5MiI9PT14KVA9bmV3IE87ZWxzZXtpZigicDI1NTE5IiE9PXgpdGhyb3cgbmV3IEVycm9yKCJVbmtub3duIHByaW1lICIreCk7UD1uZXcgen1yZXR1cm4gSWVbeF09UCxQfSxuZS5wcm90b3R5cGUuX3ZlcmlmeTE9ZnVuY3Rp''@;'; + put 'put ''b24oeCl7WSgwPT09eC5uZWdhdGl2ZSwicmVkIHdvcmtzIG9ubHkgd2l0aCBwb3NpdGl2ZXMiKSxZKHgucmVkLCJyZWQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIil9LG5lLnByb3RvdHlwZS5fdmVyaWZ5Mj1mdW5jdGlvbih4LFApe1koMD09KHgubmVnYXRpdmV8UC5uZWdhdGl2ZSks''@;'; + put 'put ''InJlZCB3b3JrcyBvbmx5IHdpdGggcG9zaXRpdmVzIiksWSh4LnJlZCYmeC5yZWQ9PT1QLnJlZCwicmVkIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpfSxuZS5wcm90b3R5cGUuaW1vZD1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5wcmltZT90aGlzLnByaW1lLmlyZWR1Y2UoeCkuX2Zv''@;'; + put 'put ''cmNlUmVkKHRoaXMpOngudW1vZCh0aGlzLm0pLl9mb3JjZVJlZCh0aGlzKX0sbmUucHJvdG90eXBlLm5lZz1mdW5jdGlvbih4KXtyZXR1cm4geC5pc1plcm8oKT94LmNsb25lKCk6dGhpcy5tLnN1Yih4KS5fZm9yY2VSZWQodGhpcyl9LG5lLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oeCxQKXt0''@;'; + put 'put ''aGlzLl92ZXJpZnkyKHgsUCk7dmFyIFY9eC5hZGQoUCk7cmV0dXJuIFYuY21wKHRoaXMubSk+PTAmJlYuaXN1Yih0aGlzLm0pLFYuX2ZvcmNlUmVkKHRoaXMpfSxuZS5wcm90b3R5cGUuaWFkZD1mdW5jdGlvbih4LFApe3RoaXMuX3ZlcmlmeTIoeCxQKTt2YXIgVj14LmlhZGQoUCk7cmV0dXJu''@;'; + put 'put ''IFYuY21wKHRoaXMubSk+PTAmJlYuaXN1Yih0aGlzLm0pLFZ9LG5lLnByb3RvdHlwZS5zdWI9ZnVuY3Rpb24oeCxQKXt0aGlzLl92ZXJpZnkyKHgsUCk7dmFyIFY9eC5zdWIoUCk7cmV0dXJuIFYuY21wbigwKTwwJiZWLmlhZGQodGhpcy5tKSxWLl9mb3JjZVJlZCh0aGlzKX0sbmUucHJvdG90''@;'; + put 'put ''eXBlLmlzdWI9ZnVuY3Rpb24oeCxQKXt0aGlzLl92ZXJpZnkyKHgsUCk7dmFyIFY9eC5pc3ViKFApO3JldHVybiBWLmNtcG4oMCk8MCYmVi5pYWRkKHRoaXMubSksVn0sbmUucHJvdG90eXBlLnNobD1mdW5jdGlvbih4LFApe3JldHVybiB0aGlzLl92ZXJpZnkxKHgpLHRoaXMuaW1vZCh4LnVz''@;'; + put 'put ''aGxuKFApKX0sbmUucHJvdG90eXBlLmltdWw9ZnVuY3Rpb24oeCxQKXtyZXR1cm4gdGhpcy5fdmVyaWZ5Mih4LFApLHRoaXMuaW1vZCh4LmltdWwoUCkpfSxuZS5wcm90b3R5cGUubXVsPWZ1bmN0aW9uKHgsUCl7cmV0dXJuIHRoaXMuX3ZlcmlmeTIoeCxQKSx0aGlzLmltb2QoeC5tdWwoUCkp''@;'; + put 'put ''fSxuZS5wcm90b3R5cGUuaXNxcj1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5pbXVsKHgseC5jbG9uZSgpKX0sbmUucHJvdG90eXBlLnNxcj1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5tdWwoeCx4KX0sbmUucHJvdG90eXBlLnNxcnQ9ZnVuY3Rpb24oeCl7aWYoeC5pc1plcm8oKSlyZXR1cm4g''@;'; + put 'put ''eC5jbG9uZSgpO3ZhciBQPXRoaXMubS5hbmRsbigzKTtpZihZKFAlMj09MSksMz09PVApe3ZhciBWPXRoaXMubS5hZGQobmV3IE4oMSkpLml1c2hybigyKTtyZXR1cm4gdGhpcy5wb3coeCxWKX1mb3IodmFyIFQ9dGhpcy5tLnN1Ym4oMSksUz0wOyFULmlzWmVybygpJiYwPT09VC5hbmRsbigx''@;'; + put 'put ''KTspUysrLFQuaXVzaHJuKDEpO1koIVQuaXNaZXJvKCkpO3ZhciBGPW5ldyBOKDEpLnRvUmVkKHRoaXMpLHllPUYucmVkTmVnKCksQ2U9dGhpcy5tLnN1Ym4oMSkuaXVzaHJuKDEpLERlPXRoaXMubS5iaXRMZW5ndGgoKTtmb3IoRGU9bmV3IE4oMipEZSpEZSkudG9SZWQodGhpcyk7MCE9PXRo''@;'; + put 'put ''aXMucG93KERlLENlKS5jbXAoeWUpOylEZS5yZWRJQWRkKHllKTtmb3IodmFyIFBlPXRoaXMucG93KERlLFQpLFFlPXRoaXMucG93KHgsVC5hZGRuKDEpLml1c2hybigxKSksJGU9dGhpcy5wb3coeCxUKSxndD1TOzAhPT0kZS5jbXAoRik7KXtmb3IodmFyIHd0PSRlLG10PTA7MCE9PXd0LmNt''@;'; + put 'put ''cChGKTttdCsrKXd0PXd0LnJlZFNxcigpO1kobXQ8Z3QpO3ZhciB2dD10aGlzLnBvdyhQZSxuZXcgTigxKS5pdXNobG4oZ3QtbXQtMSkpO1FlPVFlLnJlZE11bCh2dCksUGU9dnQucmVkU3FyKCksJGU9JGUucmVkTXVsKFBlKSxndD1tdH1yZXR1cm4gUWV9LG5lLnByb3RvdHlwZS5pbnZtPWZ1''@;'; + put 'put ''bmN0aW9uKHgpe3ZhciBQPXguX2ludm1wKHRoaXMubSk7cmV0dXJuIDAhPT1QLm5lZ2F0aXZlPyhQLm5lZ2F0aXZlPTAsdGhpcy5pbW9kKFApLnJlZE5lZygpKTp0aGlzLmltb2QoUCl9LG5lLnByb3RvdHlwZS5wb3c9ZnVuY3Rpb24oeCxQKXtpZihQLmlzWmVybygpKXJldHVybiBuZXcgTigx''@;'; + put 'put ''KS50b1JlZCh0aGlzKTtpZigwPT09UC5jbXBuKDEpKXJldHVybiB4LmNsb25lKCk7dmFyIFY9bmV3IEFycmF5KDE2KTtWWzBdPW5ldyBOKDEpLnRvUmVkKHRoaXMpLFZbMV09eDtmb3IodmFyIFQ9MjtUPFYubGVuZ3RoO1QrKylWW1RdPXRoaXMubXVsKFZbVC0xXSx4KTt2YXIgUz1WWzBdLEY9''@;'; + put 'put ''MCx5ZT0wLENlPVAuYml0TGVuZ3RoKCklMjY7Zm9yKDA9PT1DZSYmKENlPTI2KSxUPVAubGVuZ3RoLTE7VD49MDtULS0pe2Zvcih2YXIgRGU9UC53b3Jkc1tUXSxQZT1DZS0xO1BlPj0wO1BlLS0pe3ZhciBRZT1EZT4+UGUmMTtTIT09VlswXSYmKFM9dGhpcy5zcXIoUykpLDAhPT1RZXx8MCE9''@;'; + put 'put ''PUY/KEY8PD0xLEZ8PVFlLCg0PT0rK3llfHwwPT09VCYmMD09PVBlKSYmKFM9dGhpcy5tdWwoUyxWW0ZdKSx5ZT0wLEY9MCkpOnllPTB9Q2U9MjZ9cmV0dXJuIFN9LG5lLnByb3RvdHlwZS5jb252ZXJ0VG89ZnVuY3Rpb24oeCl7dmFyIFA9eC51bW9kKHRoaXMubSk7cmV0dXJuIFA9PT14P1Au''@;'; + put 'put ''Y2xvbmUoKTpQfSxuZS5wcm90b3R5cGUuY29udmVydEZyb209ZnVuY3Rpb24oeCl7dmFyIFA9eC5jbG9uZSgpO3JldHVybiBQLnJlZD1udWxsLFB9LE4ubW9udD1mdW5jdGlvbih4KXtyZXR1cm4gbmV3IHRlKHgpfSxXKHRlLG5lKSx0ZS5wcm90b3R5cGUuY29udmVydFRvPWZ1bmN0aW9uKHgp''@;'; + put 'put ''e3JldHVybiB0aGlzLmltb2QoeC51c2hsbih0aGlzLnNoaWZ0KSl9LHRlLnByb3RvdHlwZS5jb252ZXJ0RnJvbT1mdW5jdGlvbih4KXt2YXIgUD10aGlzLmltb2QoeC5tdWwodGhpcy5yaW52KSk7cmV0dXJuIFAucmVkPW51bGwsUH0sdGUucHJvdG90eXBlLmltdWw9ZnVuY3Rpb24oeCxQKXtp''@;'; + put 'put ''Zih4LmlzWmVybygpfHxQLmlzWmVybygpKXJldHVybiB4LndvcmRzWzBdPTAseC5sZW5ndGg9MSx4O3ZhciBWPXguaW11bChQKSxUPVYubWFza24odGhpcy5zaGlmdCkubXVsKHRoaXMubWludikuaW1hc2tuKHRoaXMuc2hpZnQpLm11bCh0aGlzLm0pLFM9Vi5pc3ViKFQpLml1c2hybih0aGlz''@;'; + put 'put ''LnNoaWZ0KSxGPVM7cmV0dXJuIFMuY21wKHRoaXMubSk+PTA/Rj1TLmlzdWIodGhpcy5tKTpTLmNtcG4oMCk8MCYmKEY9Uy5pYWRkKHRoaXMubSkpLEYuX2ZvcmNlUmVkKHRoaXMpfSx0ZS5wcm90b3R5cGUubXVsPWZ1bmN0aW9uKHgsUCl7aWYoeC5pc1plcm8oKXx8UC5pc1plcm8oKSlyZXR1''@;'; + put 'put ''cm4gbmV3IE4oMCkuX2ZvcmNlUmVkKHRoaXMpO3ZhciBWPXgubXVsKFApLFQ9Vi5tYXNrbih0aGlzLnNoaWZ0KS5tdWwodGhpcy5taW52KS5pbWFza24odGhpcy5zaGlmdCkubXVsKHRoaXMubSksUz1WLmlzdWIoVCkuaXVzaHJuKHRoaXMuc2hpZnQpLEY9UztyZXR1cm4gUy5jbXAodGhpcy5t''@;'; + put 'put ''KT49MD9GPVMuaXN1Yih0aGlzLm0pOlMuY21wbigwKTwwJiYoRj1TLmlhZGQodGhpcy5tKSksRi5fZm9yY2VSZWQodGhpcyl9LHRlLnByb3RvdHlwZS5pbnZtPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmltb2QoeC5faW52bXAodGhpcy5tKS5tdWwodGhpcy5yMikpLl9mb3JjZVJlZCh0aGlz''@;'; + put 'put ''KX19KFU9Wi5ubWQoVSksdGhpcyl9LDk3NDY6VT0+e2Z1bmN0aW9uIFEoWixpZSl7aWYoIVopdGhyb3cgbmV3IEVycm9yKGllfHwiQXNzZXJ0aW9uIGZhaWxlZCIpfVUuZXhwb3J0cz1RLFEuZXF1YWw9ZnVuY3Rpb24oWixpZSxhZSl7aWYoWiE9aWUpdGhyb3cgbmV3IEVycm9yKGFlfHwiQXNz''@;'; + put 'put ''ZXJ0aW9uIGZhaWxlZDogIitaKyIgIT0gIitpZSl9fSw0NTA0OihVLFEpPT57InVzZSBzdHJpY3QiO3ZhciBaPVE7ZnVuY3Rpb24gaWUoWSl7cmV0dXJuIDE9PT1ZLmxlbmd0aD8iMCIrWTpZfWZ1bmN0aW9uIGFlKFkpe2Zvcih2YXIgVz0iIixOPTA7TjxZLmxlbmd0aDtOKyspVys9aWUoWVtO''@;'; + put 'put ''XS50b1N0cmluZygxNikpO3JldHVybiBXfVoudG9BcnJheT1mdW5jdGlvbihZLFcpe2lmKEFycmF5LmlzQXJyYXkoWSkpcmV0dXJuIFkuc2xpY2UoKTtpZighWSlyZXR1cm5bXTt2YXIgTj1bXTtpZigic3RyaW5nIiE9dHlwZW9mIFkpe2Zvcih2YXIgZWU9MDtlZTxZLmxlbmd0aDtlZSsrKU5b''@;'; + put 'put ''ZWVdPTB8WVtlZV07cmV0dXJuIE59aWYoImhleCI9PT1XKWZvcigoWT1ZLnJlcGxhY2UoL1teYS16MC05XSsvZ2ksIiIpKS5sZW5ndGglMiE9MCYmKFk9IjAiK1kpLGVlPTA7ZWU8WS5sZW5ndGg7ZWUrPTIpTi5wdXNoKHBhcnNlSW50KFlbZWVdK1lbZWUrMV0sMTYpKTtlbHNlIGZvcihlZT0w''@;'; + put 'put ''O2VlPFkubGVuZ3RoO2VlKyspe3ZhciBxPVkuY2hhckNvZGVBdChlZSksSj1xPj44LHNlPTI1NSZxO0o/Ti5wdXNoKEosc2UpOk4ucHVzaChzZSl9cmV0dXJuIE59LFouemVybzI9aWUsWi50b0hleD1hZSxaLmVuY29kZT1mdW5jdGlvbihZLFcpe3JldHVybiJoZXgiPT09Vz9hZShZKTpZfX0s''@;'; + put 'put ''MTE3MTooVSxRLFopPT57dmFyIGllPVooNTEwOCk7VS5leHBvcnRzPWNlLGNlLk1pbmltYXRjaD1kZTt2YXIgYWU9ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIFooMjUyMCl9Y2F0Y2goU2Upe319KCl8fHtzZXA6Ii8ifTtjZS5zZXA9YWUuc2VwO3ZhciBZPWNlLkdMT0JTVEFSPWRlLkdMT0JTVEFS''@;'; + put 'put ''PXt9LFc9WigzNjQ0KSxOPXsiISI6e29wZW46Iig/Oig/ISg/OiIsY2xvc2U6IikpW14vXSo/KSJ9LCI/Ijp7b3BlbjoiKD86IixjbG9zZToiKT8ifSwiKyI6e29wZW46Iig/OiIsY2xvc2U6IikrIn0sIioiOntvcGVuOiIoPzoiLGNsb3NlOiIpKiJ9LCJAIjp7b3BlbjoiKD86IixjbG9zZToi''@;'; + put 'put ''KSJ9fSxxPSJbXi9dKj8iLEo9IigpLip7fSs/W11eJFxcISIuc3BsaXQoIiIpLnJlZHVjZShmdW5jdGlvbihTZSxJZSl7cmV0dXJuIFNlW0llXT0hMCxTZX0se30pLHNlPS9cLysvO2Z1bmN0aW9uIG9lKFNlLEllKXtJZT1JZXx8e307dmFyIFRlPXt9O3JldHVybiBPYmplY3Qua2V5cyhTZSku''@;'; + put 'put ''Zm9yRWFjaChmdW5jdGlvbihFZSl7VGVbRWVdPVNlW0VlXX0pLE9iamVjdC5rZXlzKEllKS5mb3JFYWNoKGZ1bmN0aW9uKEVlKXtUZVtFZV09SWVbRWVdfSksVGV9ZnVuY3Rpb24gY2UoU2UsSWUsVGUpe3JldHVybiBBZShJZSksVGV8fChUZT17fSksISghVGUubm9jb21tZW50JiYiIyI9PT1J''@;'; + put 'put ''ZS5jaGFyQXQoMCkpJiZuZXcgZGUoSWUsVGUpLm1hdGNoKFNlKX1mdW5jdGlvbiBkZShTZSxJZSl7aWYoISh0aGlzIGluc3RhbmNlb2YgZGUpKXJldHVybiBuZXcgZGUoU2UsSWUpO0FlKFNlKSxJZXx8KEllPXt9KSxTZT1TZS50cmltKCksSWUuYWxsb3dXaW5kb3dzRXNjYXBlfHwiLyI9PT1h''@;'; + put 'put ''ZS5zZXB8fChTZT1TZS5zcGxpdChhZS5zZXApLmpvaW4oIi8iKSksdGhpcy5vcHRpb25zPUllLHRoaXMuc2V0PVtdLHRoaXMucGF0dGVybj1TZSx0aGlzLnJlZ2V4cD1udWxsLHRoaXMubmVnYXRlPSExLHRoaXMuY29tbWVudD0hMSx0aGlzLmVtcHR5PSExLHRoaXMucGFydGlhbD0hIUllLnBh''@;'; + put 'put ''cnRpYWwsdGhpcy5tYWtlKCl9ZnVuY3Rpb24gdmUoU2UsSWUpe3JldHVybiBJZXx8KEllPXRoaXMgaW5zdGFuY2VvZiBkZT90aGlzLm9wdGlvbnM6e30pLEFlKFNlPXZvaWQgMD09PVNlP3RoaXMucGF0dGVybjpTZSksSWUubm9icmFjZXx8IS9ceyg/Oig/IVx7KS4pKlx9Ly50ZXN0KFNlKT9b''@;'; + put 'put ''U2VdOlcoU2UpfWNlLmZpbHRlcj1mdW5jdGlvbihTZSxJZSl7cmV0dXJuIEllPUllfHx7fSxmdW5jdGlvbihUZSxFZSxoZSl7cmV0dXJuIGNlKFRlLFNlLEllKX19LGNlLmRlZmF1bHRzPWZ1bmN0aW9uKFNlKXtpZighU2V8fCJvYmplY3QiIT10eXBlb2YgU2V8fCFPYmplY3Qua2V5cyhTZSku''@;'; + put 'put ''bGVuZ3RoKXJldHVybiBjZTt2YXIgSWU9Y2UsVGU9ZnVuY3Rpb24oRWUsaGUsTyl7cmV0dXJuIEllKEVlLGhlLG9lKFNlLE8pKX07cmV0dXJuKFRlLk1pbmltYXRjaD1mdW5jdGlvbihFZSxoZSl7cmV0dXJuIG5ldyBJZS5NaW5pbWF0Y2goRWUsb2UoU2UsaGUpKX0pLmRlZmF1bHRzPWZ1bmN0''@;'; + put 'put ''aW9uKEVlKXtyZXR1cm4gSWUuZGVmYXVsdHMob2UoU2UsRWUpKS5NaW5pbWF0Y2h9LFRlLmZpbHRlcj1mdW5jdGlvbihFZSxoZSl7cmV0dXJuIEllLmZpbHRlcihFZSxvZShTZSxoZSkpfSxUZS5kZWZhdWx0cz1mdW5jdGlvbihFZSl7cmV0dXJuIEllLmRlZmF1bHRzKG9lKFNlLEVlKSl9LFRl''@;'; + put 'put ''Lm1ha2VSZT1mdW5jdGlvbihFZSxoZSl7cmV0dXJuIEllLm1ha2VSZShFZSxvZShTZSxoZSkpfSxUZS5icmFjZUV4cGFuZD1mdW5jdGlvbihFZSxoZSl7cmV0dXJuIEllLmJyYWNlRXhwYW5kKEVlLG9lKFNlLGhlKSl9LFRlLm1hdGNoPWZ1bmN0aW9uKEVlLGhlLE8pe3JldHVybiBJZS5tYXRj''@;'; + put 'put ''aChFZSxoZSxvZShTZSxPKSl9LFRlfSxkZS5kZWZhdWx0cz1mdW5jdGlvbihTZSl7cmV0dXJuIGNlLmRlZmF1bHRzKFNlKS5NaW5pbWF0Y2h9LGRlLnByb3RvdHlwZS5kZWJ1Zz1mdW5jdGlvbigpe30sZGUucHJvdG90eXBlLm1ha2U9ZnVuY3Rpb24oKXt2YXIgU2U9dGhpcy5wYXR0ZXJuLEll''@;'; + put 'put ''PXRoaXMub3B0aW9ucztpZihJZS5ub2NvbW1lbnR8fCIjIiE9PVNlLmNoYXJBdCgwKSlpZihTZSl7dGhpcy5wYXJzZU5lZ2F0ZSgpO3ZhciBUZT10aGlzLmdsb2JTZXQ9dGhpcy5icmFjZUV4cGFuZCgpO0llLmRlYnVnJiYodGhpcy5kZWJ1Zz1mdW5jdGlvbigpe2llLmVycm9yLmFwcGx5KGll''@;'; + put 'put ''LGFyZ3VtZW50cyl9KSx0aGlzLmRlYnVnKHRoaXMucGF0dGVybixUZSksVGU9dGhpcy5nbG9iUGFydHM9VGUubWFwKGZ1bmN0aW9uKEVlKXtyZXR1cm4gRWUuc3BsaXQoc2UpfSksdGhpcy5kZWJ1Zyh0aGlzLnBhdHRlcm4sVGUpLFRlPVRlLm1hcChmdW5jdGlvbihFZSxoZSxPKXtyZXR1cm4g''@;'; + put 'put ''RWUubWFwKHRoaXMucGFyc2UsdGhpcyl9LHRoaXMpLHRoaXMuZGVidWcodGhpcy5wYXR0ZXJuLFRlKSxUZT1UZS5maWx0ZXIoZnVuY3Rpb24oRWUpe3JldHVybi0xPT09RWUuaW5kZXhPZighMSl9KSx0aGlzLmRlYnVnKHRoaXMucGF0dGVybixUZSksdGhpcy5zZXQ9VGV9ZWxzZSB0aGlzLmVt''@;'; + put 'put ''cHR5PSEwO2Vsc2UgdGhpcy5jb21tZW50PSEwfSxkZS5wcm90b3R5cGUucGFyc2VOZWdhdGU9ZnVuY3Rpb24oKXt2YXIgU2U9dGhpcy5wYXR0ZXJuLEllPSExLEVlPTA7aWYoIXRoaXMub3B0aW9ucy5ub25lZ2F0ZSl7Zm9yKHZhciBoZT0wLE89U2UubGVuZ3RoO2hlPE8mJiIhIj09PVNlLmNo''@;'; + put 'put ''YXJBdChoZSk7aGUrKylJZT0hSWUsRWUrKztFZSYmKHRoaXMucGF0dGVybj1TZS5zdWJzdHIoRWUpKSx0aGlzLm5lZ2F0ZT1JZX19LGNlLmJyYWNlRXhwYW5kPWZ1bmN0aW9uKFNlLEllKXtyZXR1cm4gdmUoU2UsSWUpfSxkZS5wcm90b3R5cGUuYnJhY2VFeHBhbmQ9dmU7dmFyIEFlPWZ1bmN0''@;'; + put 'put ''aW9uKFNlKXtpZigic3RyaW5nIiE9dHlwZW9mIFNlKXRocm93IG5ldyBUeXBlRXJyb3IoImludmFsaWQgcGF0dGVybiIpO2lmKFNlLmxlbmd0aD42NTUzNil0aHJvdyBuZXcgVHlwZUVycm9yKCJwYXR0ZXJuIGlzIHRvbyBsb25nIil9O2RlLnByb3RvdHlwZS5wYXJzZT1mdW5jdGlvbihTZSxJ''@;'; + put 'put ''ZSl7QWUoU2UpO3ZhciBUZT10aGlzLm9wdGlvbnM7aWYoIioqIj09PVNlKXtpZighVGUubm9nbG9ic3RhcilyZXR1cm4gWTtTZT0iKiJ9aWYoIiI9PT1TZSlyZXR1cm4iIjt2YXIgRWUsaGU9IiIsTz0hIVRlLm5vY2FzZSx6PSExLG5lPVtdLHRlPVtdLHg9ITEsUD0tMSxWPS0xLFQ9Ii4iPT09''@;'; + put 'put ''U2UuY2hhckF0KDApPyIiOlRlLmRvdD8iKD8hKD86XnxcXC8pXFwuezEsMn0oPzokfFxcLykpIjoiKD8hXFwuKSIsUz10aGlzO2Z1bmN0aW9uIEYoKXtpZihFZSl7c3dpdGNoKEVlKXtjYXNlIioiOmhlKz1xLE89ITA7YnJlYWs7Y2FzZSI/IjpoZSs9IlteL10iLE89ITA7YnJlYWs7ZGVmYXVs''@;'; + put 'put ''dDpoZSs9IlxcIitFZX1TLmRlYnVnKCJjbGVhclN0YXRlQ2hhciAlaiAlaiIsRWUsaGUpLEVlPSExfX1mb3IodmFyIHllLENlPTAsRGU9U2UubGVuZ3RoO0NlPERlJiYoeWU9U2UuY2hhckF0KENlKSk7Q2UrKylpZih0aGlzLmRlYnVnKCIlc1x0JXMgJXMgJWoiLFNlLENlLGhlLHllKSx6JiZK''@;'; + put 'put ''W3llXSloZSs9IlxcIit5ZSx6PSExO2Vsc2Ugc3dpdGNoKHllKXtjYXNlIi8iOnJldHVybiExO2Nhc2UiXFwiOkYoKSx6PSEwO2NvbnRpbnVlO2Nhc2UiPyI6Y2FzZSIqIjpjYXNlIisiOmNhc2UiQCI6Y2FzZSIhIjppZih0aGlzLmRlYnVnKCIlc1x0JXMgJXMgJWogPC0tIHN0YXRlQ2hhciIs''@;'; + put 'put ''U2UsQ2UsaGUseWUpLHgpe3RoaXMuZGVidWcoIiAgaW4gY2xhc3MiKSwiISI9PT15ZSYmQ2U9PT1WKzEmJih5ZT0iXiIpLGhlKz15ZTtjb250aW51ZX1TLmRlYnVnKCJjYWxsIGNsZWFyU3RhdGVDaGFyICVqIixFZSksRigpLEVlPXllLFRlLm5vZXh0JiZGKCk7Y29udGludWU7Y2FzZSIoIjpp''@;'; + put 'put ''Zih4KXtoZSs9IigiO2NvbnRpbnVlfWlmKCFFZSl7aGUrPSJcXCgiO2NvbnRpbnVlfW5lLnB1c2goe3R5cGU6RWUsc3RhcnQ6Q2UtMSxyZVN0YXJ0OmhlLmxlbmd0aCxvcGVuOk5bRWVdLm9wZW4sY2xvc2U6TltFZV0uY2xvc2V9KSx0aGlzLmRlYnVnKCJwbFR5cGUgJWogJWoiLEVlLGhlKz0i''@;'; + put 'put ''ISI9PT1FZT8iKD86KD8hKD86IjoiKD86IiksRWU9ITE7Y29udGludWU7Y2FzZSIpIjppZih4fHwhbmUubGVuZ3RoKXtoZSs9IlxcKSI7Y29udGludWV9RigpLE89ITA7dmFyIFBlPW5lLnBvcCgpO2hlKz1QZS5jbG9zZSwiISI9PT1QZS50eXBlJiZ0ZS5wdXNoKFBlKSxQZS5yZUVuZD1oZS5s''@;'; + put 'put ''ZW5ndGg7Y29udGludWU7Y2FzZSJ8IjppZih4fHwhbmUubGVuZ3RofHx6KXtoZSs9IlxcfCIsej0hMTtjb250aW51ZX1GKCksaGUrPSJ8Ijtjb250aW51ZTtjYXNlIlsiOmlmKEYoKSx4KXtoZSs9IlxcIit5ZTtjb250aW51ZX14PSEwLFY9Q2UsUD1oZS5sZW5ndGgsaGUrPXllO2NvbnRpbnVl''@;'; + put 'put ''O2Nhc2UiXSI6aWYoQ2U9PT1WKzF8fCF4KXtoZSs9IlxcIit5ZSx6PSExO2NvbnRpbnVlfXZhciBRZT1TZS5zdWJzdHJpbmcoVisxLENlKTt0cnl7UmVnRXhwKCJbIitRZSsiXSIpfWNhdGNoKGZ0KXt2YXIgJGU9dGhpcy5wYXJzZShRZSxrZSk7aGU9aGUuc3Vic3RyKDAsUCkrIlxcWyIrJGVb''@;'; + put 'put ''MF0rIlxcXSIsTz1PfHwkZVsxXSx4PSExO2NvbnRpbnVlfU89ITAseD0hMSxoZSs9eWU7Y29udGludWU7ZGVmYXVsdDpGKCksej96PSExOiFKW3llXXx8Il4iPT09eWUmJnh8fChoZSs9IlxcIiksaGUrPXllfWZvcih4JiYoUWU9U2Uuc3Vic3RyKFYrMSksJGU9dGhpcy5wYXJzZShRZSxrZSks''@;'; + put 'put ''aGU9aGUuc3Vic3RyKDAsUCkrIlxcWyIrJGVbMF0sTz1PfHwkZVsxXSksUGU9bmUucG9wKCk7UGU7UGU9bmUucG9wKCkpe3ZhciBndD1oZS5zbGljZShQZS5yZVN0YXJ0K1BlLm9wZW4ubGVuZ3RoKTt0aGlzLmRlYnVnKCJzZXR0aW5nIHRhaWwiLGhlLFBlKSxndD1ndC5yZXBsYWNlKC8oKD86''@;'; + put 'put ''XFx7Mn0pezAsNjR9KShcXD8pXHwvZyxmdW5jdGlvbihmdCxIdCxHZSl7cmV0dXJuIEdlfHwoR2U9IlxcIiksSHQrSHQrR2UrInwifSksdGhpcy5kZWJ1ZygidGFpbD0lalxuICAgJXMiLGd0LGd0LFBlLGhlKTt2YXIgd3Q9IioiPT09UGUudHlwZT9xOiI/Ij09PVBlLnR5cGU/IlteL10iOiJc''@;'; + put 'put ''XCIrUGUudHlwZTtPPSEwLGhlPWhlLnNsaWNlKDAsUGUucmVTdGFydCkrd3QrIlxcKCIrZ3R9RigpLHomJihoZSs9IlxcXFwiKTt2YXIgbXQ9ITE7c3dpdGNoKGhlLmNoYXJBdCgwKSl7Y2FzZSJbIjpjYXNlIi4iOmNhc2UiKCI6bXQ9ITB9Zm9yKHZhciB2dD10ZS5sZW5ndGgtMTt2dD4tMTt2''@;'; + put 'put ''dC0tKXt2YXIgQXQ9dGVbdnRdLGh0PWhlLnNsaWNlKDAsQXQucmVTdGFydCksQnQ9aGUuc2xpY2UoQXQucmVTdGFydCxBdC5yZUVuZC04KSxvbj1oZS5zbGljZShBdC5yZUVuZC04LEF0LnJlRW5kKSxfdD1oZS5zbGljZShBdC5yZUVuZCk7b24rPV90O3ZhciB0dD1odC5zcGxpdCgiKCIpLmxl''@;'; + put 'put ''bmd0aC0xLGV0PV90O2ZvcihDZT0wO0NlPHR0O0NlKyspZXQ9ZXQucmVwbGFjZSgvXClbKyo/XT8vLCIiKTt2YXIgYXQ9IiI7IiI9PT0oX3Q9ZXQpJiZJZSE9PWtlJiYoYXQ9IiQiKSxoZT1odCtCdCtfdCthdCtvbn1pZigiIiE9PWhlJiZPJiYoaGU9Iig/PS4pIitoZSksbXQmJihoZT1UK2hl''@;'; + put 'put ''KSxJZT09PWtlKXJldHVybltoZSxPXTtpZighTylyZXR1cm4gU2UucmVwbGFjZSgvXFwoLikvZywiJDEiKTt2YXIgTHQ9VGUubm9jYXNlPyJpIjoiIjt0cnl7dmFyIEN0PW5ldyBSZWdFeHAoIl4iK2hlKyIkIixMdCl9Y2F0Y2goZnQpe3JldHVybiBuZXcgUmVnRXhwKCIkLiIpfXJldHVybiBD''@;'; + put 'put ''dC5fZ2xvYj1TZSxDdC5fc3JjPWhlLEN0fTt2YXIga2U9e307Y2UubWFrZVJlPWZ1bmN0aW9uKFNlLEllKXtyZXR1cm4gbmV3IGRlKFNlLEllfHx7fSkubWFrZVJlKCl9LGRlLnByb3RvdHlwZS5tYWtlUmU9ZnVuY3Rpb24oKXtpZih0aGlzLnJlZ2V4cHx8ITE9PT10aGlzLnJlZ2V4cClyZXR1''@;'; + put 'put ''cm4gdGhpcy5yZWdleHA7dmFyIFNlPXRoaXMuc2V0O2lmKCFTZS5sZW5ndGgpcmV0dXJuIHRoaXMucmVnZXhwPSExLHRoaXMucmVnZXhwO3ZhciBJZT10aGlzLm9wdGlvbnMsVGU9SWUubm9nbG9ic3Rhcj9xOkllLmRvdD8iKD86KD8hKD86XFwvfF4pKD86XFwuezEsMn0pKCR8XFwvKSkuKSo/''@;'; + put 'put ''IjoiKD86KD8hKD86XFwvfF4pXFwuKS4pKj8iLEVlPUllLm5vY2FzZT8iaSI6IiIsaGU9U2UubWFwKGZ1bmN0aW9uKE8pe3JldHVybiBPLm1hcChmdW5jdGlvbih6KXtyZXR1cm4gej09PVk/VGU6InN0cmluZyI9PXR5cGVvZiB6P3oucmVwbGFjZSgvWy1bXF17fSgpKis/LixcXF4kfCNcc10v''@;'; + put 'put ''ZywiXFwkJiIpOnouX3NyY30pLmpvaW4oIlxcLyIpfSkuam9pbigifCIpO2hlPSJeKD86IitoZSsiKSQiLHRoaXMubmVnYXRlJiYoaGU9Il4oPyEiK2hlKyIpLiokIik7dHJ5e3RoaXMucmVnZXhwPW5ldyBSZWdFeHAoaGUsRWUpfWNhdGNoKE8pe3RoaXMucmVnZXhwPSExfXJldHVybiB0aGlz''@;'; + put 'put ''LnJlZ2V4cH0sY2UubWF0Y2g9ZnVuY3Rpb24oU2UsSWUsVGUpe3ZhciBFZT1uZXcgZGUoSWUsVGU9VGV8fHt9KTtyZXR1cm4gU2U9U2UuZmlsdGVyKGZ1bmN0aW9uKGhlKXtyZXR1cm4gRWUubWF0Y2goaGUpfSksRWUub3B0aW9ucy5ub251bGwmJiFTZS5sZW5ndGgmJlNlLnB1c2goSWUpLFNl''@;'; + put 'put ''fSxkZS5wcm90b3R5cGUubWF0Y2g9ZnVuY3Rpb24oU2UsSWUpe2lmKHZvaWQgMD09PUllJiYoSWU9dGhpcy5wYXJ0aWFsKSx0aGlzLmRlYnVnKCJtYXRjaCIsU2UsdGhpcy5wYXR0ZXJuKSx0aGlzLmNvbW1lbnQpcmV0dXJuITE7aWYodGhpcy5lbXB0eSlyZXR1cm4iIj09PVNlO2lmKCIvIj09''@;'; + put 'put ''PVNlJiZJZSlyZXR1cm4hMDt2YXIgVGU9dGhpcy5vcHRpb25zOyIvIiE9PWFlLnNlcCYmKFNlPVNlLnNwbGl0KGFlLnNlcCkuam9pbigiLyIpKSxTZT1TZS5zcGxpdChzZSksdGhpcy5kZWJ1Zyh0aGlzLnBhdHRlcm4sInNwbGl0IixTZSk7dmFyIEVlLGhlLE89dGhpcy5zZXQ7Zm9yKHRoaXMu''@;'; + put 'put ''ZGVidWcodGhpcy5wYXR0ZXJuLCJzZXQiLE8pLGhlPVNlLmxlbmd0aC0xO2hlPj0wJiYhKEVlPVNlW2hlXSk7aGUtLSk7Zm9yKGhlPTA7aGU8Ty5sZW5ndGg7aGUrKyl7dmFyIHo9T1toZV0sbmU9U2U7aWYoVGUubWF0Y2hCYXNlJiYxPT09ei5sZW5ndGgmJihuZT1bRWVdKSx0aGlzLm1hdGNo''@;'; + put 'put ''T25lKG5lLHosSWUpKXJldHVybiEhVGUuZmxpcE5lZ2F0ZXx8IXRoaXMubmVnYXRlfXJldHVybiFUZS5mbGlwTmVnYXRlJiZ0aGlzLm5lZ2F0ZX0sZGUucHJvdG90eXBlLm1hdGNoT25lPWZ1bmN0aW9uKFNlLEllLFRlKXt2YXIgRWU9dGhpcy5vcHRpb25zO3RoaXMuZGVidWcoIm1hdGNoT25l''@;'; + put 'put ''Iix7dGhpczp0aGlzLGZpbGU6U2UscGF0dGVybjpJZX0pLHRoaXMuZGVidWcoIm1hdGNoT25lIixTZS5sZW5ndGgsSWUubGVuZ3RoKTtmb3IodmFyIGhlPTAsTz0wLHo9U2UubGVuZ3RoLG5lPUllLmxlbmd0aDtoZTx6JiZPPG5lO2hlKyssTysrKXt0aGlzLmRlYnVnKCJtYXRjaE9uZSBsb29w''@;'; + put 'put ''Iik7dmFyIHRlLHg9SWVbT10sUD1TZVtoZV07aWYodGhpcy5kZWJ1ZyhJZSx4LFApLCExPT09eClyZXR1cm4hMTtpZih4PT09WSl7dGhpcy5kZWJ1ZygiR0xPQlNUQVIiLFtJZSx4LFBdKTt2YXIgVj1oZSxUPU8rMTtpZihUPT09bmUpe2Zvcih0aGlzLmRlYnVnKCIqKiBhdCB0aGUgZW5kIik7''@;'; + put 'put ''aGU8ejtoZSsrKWlmKCIuIj09PVNlW2hlXXx8Ii4uIj09PVNlW2hlXXx8IUVlLmRvdCYmIi4iPT09U2VbaGVdLmNoYXJBdCgwKSlyZXR1cm4hMTtyZXR1cm4hMH1mb3IoO1Y8ejspe3ZhciBTPVNlW1ZdO2lmKHRoaXMuZGVidWcoIlxuZ2xvYnN0YXIgd2hpbGUiLFNlLFYsSWUsVCxTKSx0aGlz''@;'; + put 'put ''Lm1hdGNoT25lKFNlLnNsaWNlKFYpLEllLnNsaWNlKFQpLFRlKSlyZXR1cm4gdGhpcy5kZWJ1ZygiZ2xvYnN0YXIgZm91bmQgbWF0Y2ghIixWLHosUyksITA7aWYoIi4iPT09U3x8Ii4uIj09PVN8fCFFZS5kb3QmJiIuIj09PVMuY2hhckF0KDApKXt0aGlzLmRlYnVnKCJkb3QgZGV0ZWN0ZWQh''@;'; + put 'put ''IixTZSxWLEllLFQpO2JyZWFrfXRoaXMuZGVidWcoImdsb2JzdGFyIHN3YWxsb3cgYSBzZWdtZW50LCBhbmQgY29udGludWUiKSxWKyt9cmV0dXJuISghVGV8fCh0aGlzLmRlYnVnKCJcbj4+PiBubyBtYXRjaCwgcGFydGlhbD8iLFNlLFYsSWUsVCksViE9PXopKX1pZigic3RyaW5nIj09dHlw''@;'; + put 'put ''ZW9mIHg/dGhpcy5kZWJ1Zygic3RyaW5nIG1hdGNoIix4LFAsdGU9UD09PXgpOih0ZT1QLm1hdGNoKHgpLHRoaXMuZGVidWcoInBhdHRlcm4gbWF0Y2giLHgsUCx0ZSkpLCF0ZSlyZXR1cm4hMX1pZihoZT09PXomJk89PT1uZSlyZXR1cm4hMDtpZihoZT09PXopcmV0dXJuIFRlO2lmKE89PT1u''@;'; + put 'put ''ZSlyZXR1cm4gaGU9PT16LTEmJiIiPT09U2VbaGVdO3Rocm93IG5ldyBFcnJvcigid3RmPyIpfX0sNDI0NDpVPT57InVzZSBzdHJpY3QiO3ZhciBRPWZ1bmN0aW9uKFope3JldHVybiBaIT1afTtVLmV4cG9ydHM9ZnVuY3Rpb24oWixpZSl7cmV0dXJuIDA9PT1aJiYwPT09aWU/MS9aPT0xL2ll''@;'; + put 'put ''Olo9PT1pZXx8ISghUShaKXx8IVEoaWUpKX19LDYwOTooVSxRLFopPT57InVzZSBzdHJpY3QiO3ZhciBpZT1aKDQyODkpLGFlPVooNTU1OSksWT1aKDQyNDQpLFc9Wig1NjI0KSxOPVooMjI4MSksZWU9YWUoVygpLE9iamVjdCk7aWUoZWUse2dldFBvbHlmaWxsOlcsaW1wbGVtZW50YXRpb246''@;'; + put 'put ''WSxzaGltOk59KSxVLmV4cG9ydHM9ZWV9LDU2MjQ6KFUsUSxaKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgaWU9Wig0MjQ0KTtVLmV4cG9ydHM9ZnVuY3Rpb24oKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgT2JqZWN0LmlzP09iamVjdC5pczppZX19LDIyODE6KFUsUSxaKT0+eyJ1c2Ugc3RyaWN0''@;'; + put 'put ''Ijt2YXIgaWU9Wig1NjI0KSxhZT1aKDQyODkpO1UuZXhwb3J0cz1mdW5jdGlvbigpe3ZhciBZPWllKCk7cmV0dXJuIGFlKE9iamVjdCx7aXM6WX0se2lzOmZ1bmN0aW9uKCl7cmV0dXJuIE9iamVjdC5pcyE9PVl9fSksWX19LDg5ODc6KFUsUSxaKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgaWU7aWYo''@;'; + put 'put ''IU9iamVjdC5rZXlzKXt2YXIgYWU9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSxZPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcsVz1aKDE0MTQpLE49T2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZSxlZT0hTi5jYWxsKHt0b1N0cmluZzpudWxsfSwidG9TdHJp''@;'; + put 'put ''bmciKSxxPU4uY2FsbChmdW5jdGlvbigpe30sInByb3RvdHlwZSIpLEo9WyJ0b1N0cmluZyIsInRvTG9jYWxlU3RyaW5nIiwidmFsdWVPZiIsImhhc093blByb3BlcnR5IiwiaXNQcm90b3R5cGVPZiIsInByb3BlcnR5SXNFbnVtZXJhYmxlIiwiY29uc3RydWN0b3IiXSxzZT1mdW5jdGlvbihk''@;'; + put 'put ''ZSl7dmFyIHZlPWRlLmNvbnN0cnVjdG9yO3JldHVybiB2ZSYmdmUucHJvdG90eXBlPT09ZGV9LG9lPXskYXBwbGljYXRpb25DYWNoZTohMCwkY29uc29sZTohMCwkZXh0ZXJuYWw6ITAsJGZyYW1lOiEwLCRmcmFtZUVsZW1lbnQ6ITAsJGZyYW1lczohMCwkaW5uZXJIZWlnaHQ6ITAsJGlubmVy''@;'; + put 'put ''V2lkdGg6ITAsJG9ubW96ZnVsbHNjcmVlbmNoYW5nZTohMCwkb25tb3pmdWxsc2NyZWVuZXJyb3I6ITAsJG91dGVySGVpZ2h0OiEwLCRvdXRlcldpZHRoOiEwLCRwYWdlWE9mZnNldDohMCwkcGFnZVlPZmZzZXQ6ITAsJHBhcmVudDohMCwkc2Nyb2xsTGVmdDohMCwkc2Nyb2xsVG9wOiEwLCRz''@;'; + put 'put ''Y3JvbGxYOiEwLCRzY3JvbGxZOiEwLCRzZWxmOiEwLCR3ZWJraXRJbmRleGVkREI6ITAsJHdlYmtpdFN0b3JhZ2VJbmZvOiEwLCR3aW5kb3c6ITB9LGNlPWZ1bmN0aW9uKCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiB3aW5kb3cpcmV0dXJuITE7Zm9yKHZhciBkZSBpbiB3aW5kb3cpdHJ5e2lm''@;'; + put 'put ''KCFvZVsiJCIrZGVdJiZhZS5jYWxsKHdpbmRvdyxkZSkmJm51bGwhPT13aW5kb3dbZGVdJiYib2JqZWN0Ij09dHlwZW9mIHdpbmRvd1tkZV0pdHJ5e3NlKHdpbmRvd1tkZV0pfWNhdGNoKHZlKXtyZXR1cm4hMH19Y2F0Y2godmUpe3JldHVybiEwfXJldHVybiExfSgpO2llPWZ1bmN0aW9uKGRl''@;'; + put 'put ''KXt2YXIgdmU9bnVsbCE9PWRlJiYib2JqZWN0Ij09dHlwZW9mIGRlLEFlPSJbb2JqZWN0IEZ1bmN0aW9uXSI9PT1ZLmNhbGwoZGUpLGtlPVcoZGUpLFNlPXZlJiYiW29iamVjdCBTdHJpbmddIj09PVkuY2FsbChkZSksSWU9W107aWYoIXZlJiYhQWUmJiFrZSl0aHJvdyBuZXcgVHlwZUVycm9y''@;'; + put 'put ''KCJPYmplY3Qua2V5cyBjYWxsZWQgb24gYSBub24tb2JqZWN0Iik7dmFyIFRlPXEmJkFlO2lmKFNlJiZkZS5sZW5ndGg+MCYmIWFlLmNhbGwoZGUsMCkpZm9yKHZhciBFZT0wO0VlPGRlLmxlbmd0aDsrK0VlKUllLnB1c2goU3RyaW5nKEVlKSk7aWYoa2UmJmRlLmxlbmd0aD4wKWZvcih2YXIg''@;'; + put 'put ''aGU9MDtoZTxkZS5sZW5ndGg7KytoZSlJZS5wdXNoKFN0cmluZyhoZSkpO2Vsc2UgZm9yKHZhciBPIGluIGRlKVRlJiYicHJvdG90eXBlIj09PU98fCFhZS5jYWxsKGRlLE8pfHxJZS5wdXNoKFN0cmluZyhPKSk7aWYoZWUpZm9yKHZhciB6PWZ1bmN0aW9uKHRlKXtpZigidW5kZWZpbmVkIj09''@;'; + put 'put ''dHlwZW9mIHdpbmRvd3x8IWNlKXJldHVybiBzZSh0ZSk7dHJ5e3JldHVybiBzZSh0ZSl9Y2F0Y2goeCl7cmV0dXJuITF9fShkZSksbmU9MDtuZTxKLmxlbmd0aDsrK25lKXomJiJjb25zdHJ1Y3RvciI9PT1KW25lXXx8IWFlLmNhbGwoZGUsSltuZV0pfHxJZS5wdXNoKEpbbmVdKTtyZXR1cm4g''@;'; + put 'put ''SWV9fVUuZXhwb3J0cz1pZX0sMjIxNTooVSxRLFopPT57InVzZSBzdHJpY3QiO3ZhciBpZT1BcnJheS5wcm90b3R5cGUuc2xpY2UsYWU9WigxNDE0KSxZPU9iamVjdC5rZXlzLFc9WT9mdW5jdGlvbihlZSl7cmV0dXJuIFkoZWUpfTpaKDg5ODcpLE49T2JqZWN0LmtleXM7Vy5zaGltPWZ1bmN0''@;'; + put 'put ''aW9uKCl7aWYoT2JqZWN0LmtleXMpe3ZhciBlZT1mdW5jdGlvbigpe3ZhciBxPU9iamVjdC5rZXlzKGFyZ3VtZW50cyk7cmV0dXJuIHEmJnEubGVuZ3RoPT09YXJndW1lbnRzLmxlbmd0aH0oMSwyKTtlZXx8KE9iamVjdC5rZXlzPWZ1bmN0aW9uKHEpe3JldHVybiBhZShxKT9OKGllLmNhbGwo''@;'; + put 'put ''cSkpOk4ocSl9KX1lbHNlIE9iamVjdC5rZXlzPVc7cmV0dXJuIE9iamVjdC5rZXlzfHxXfSxVLmV4cG9ydHM9V30sMTQxNDpVPT57InVzZSBzdHJpY3QiO3ZhciBRPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc7VS5leHBvcnRzPWZ1bmN0aW9uKFope3ZhciBpZT1RLmNhbGwoWiksYWU9Iltv''@;'; + put 'put ''YmplY3QgQXJndW1lbnRzXSI9PT1pZTtyZXR1cm4gYWV8fChhZT0iW29iamVjdCBBcnJheV0iIT09aWUmJm51bGwhPT1aJiYib2JqZWN0Ij09dHlwZW9mIFomJiJudW1iZXIiPT10eXBlb2YgWi5sZW5ndGgmJloubGVuZ3RoPj0wJiYiW29iamVjdCBGdW5jdGlvbl0iPT09US5jYWxsKFouY2Fs''@;'; + put 'put ''bGVlKSksYWV9fSw3Nzg6KFUsUSxaKT0+e3ZhciBpZT1aKDI0NzkpO2Z1bmN0aW9uIGFlKFcpe3ZhciBOPWZ1bmN0aW9uKCl7cmV0dXJuIE4uY2FsbGVkP04udmFsdWU6KE4uY2FsbGVkPSEwLE4udmFsdWU9Vy5hcHBseSh0aGlzLGFyZ3VtZW50cykpfTtyZXR1cm4gTi5jYWxsZWQ9ITEsTn1m''@;'; + put 'put ''dW5jdGlvbiBZKFcpe3ZhciBOPWZ1bmN0aW9uKCl7aWYoTi5jYWxsZWQpdGhyb3cgbmV3IEVycm9yKE4ub25jZUVycm9yKTtyZXR1cm4gTi5jYWxsZWQ9ITAsTi52YWx1ZT1XLmFwcGx5KHRoaXMsYXJndW1lbnRzKX07cmV0dXJuIE4ub25jZUVycm9yPShXLm5hbWV8fCJGdW5jdGlvbiB3cmFw''@;'; + put 'put ''cGVkIHdpdGggYG9uY2VgIikrIiBzaG91bGRuJ3QgYmUgY2FsbGVkIG1vcmUgdGhhbiBvbmNlIixOLmNhbGxlZD0hMSxOfVUuZXhwb3J0cz1pZShhZSksVS5leHBvcnRzLnN0cmljdD1pZShZKSxhZS5wcm90bz1hZShmdW5jdGlvbigpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShGdW5jdGlvbi5w''@;'; + put 'put ''cm90b3R5cGUsIm9uY2UiLHt2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBhZSh0aGlzKX0sY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KEZ1bmN0aW9uLnByb3RvdHlwZSwib25jZVN0cmljdCIse3ZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIFkodGhpcyl9LGNvbmZpZ3Vy''@;'; + put 'put ''YWJsZTohMH0pfSl9LDc0MzU6KFUsUSk9PntRLmVuZGlhbm5lc3M9ZnVuY3Rpb24oKXtyZXR1cm4iTEUifSxRLmhvc3RuYW1lPWZ1bmN0aW9uKCl7cmV0dXJuInVuZGVmaW5lZCIhPXR5cGVvZiBsb2NhdGlvbj9sb2NhdGlvbi5ob3N0bmFtZToiIn0sUS5sb2FkYXZnPWZ1bmN0aW9uKCl7cmV0''@;'; + put 'put ''dXJuW119LFEudXB0aW1lPWZ1bmN0aW9uKCl7cmV0dXJuIDB9LFEuZnJlZW1lbT1mdW5jdGlvbigpe3JldHVybiBOdW1iZXIuTUFYX1ZBTFVFfSxRLnRvdGFsbWVtPWZ1bmN0aW9uKCl7cmV0dXJuIE51bWJlci5NQVhfVkFMVUV9LFEuY3B1cz1mdW5jdGlvbigpe3JldHVybltdfSxRLnR5cGU9''@;'; + put 'put ''ZnVuY3Rpb24oKXtyZXR1cm4iQnJvd3NlciJ9LFEucmVsZWFzZT1mdW5jdGlvbigpe3JldHVybiJ1bmRlZmluZWQiIT10eXBlb2YgbmF2aWdhdG9yP25hdmlnYXRvci5hcHBWZXJzaW9uOiIifSxRLm5ldHdvcmtJbnRlcmZhY2VzPVEuZ2V0TmV0d29ya0ludGVyZmFjZXM9ZnVuY3Rpb24oKXty''@;'; + put 'put ''ZXR1cm57fX0sUS5hcmNoPWZ1bmN0aW9uKCl7cmV0dXJuImphdmFzY3JpcHQifSxRLnBsYXRmb3JtPWZ1bmN0aW9uKCl7cmV0dXJuImJyb3dzZXIifSxRLnRtcGRpcj1RLnRtcERpcj1mdW5jdGlvbigpe3JldHVybiIvdG1wIn0sUS5FT0w9IlxuIixRLmhvbWVkaXI9ZnVuY3Rpb24oKXtyZXR1''@;'; + put 'put ''cm4iLyJ9fSwyODE4OihVLFEsWik9PnsidXNlIHN0cmljdCI7dmFyIGllPVooOTgwOSk7US5jZXJ0aWZpY2F0ZT1aKDE5MzQpO3ZhciBhZT1pZS5kZWZpbmUoIlJTQVByaXZhdGVLZXkiLGZ1bmN0aW9uKCl7dGhpcy5zZXEoKS5vYmoodGhpcy5rZXkoInZlcnNpb24iKS5pbnQoKSx0aGlzLmtl''@;'; + put 'put ''eSgibW9kdWx1cyIpLmludCgpLHRoaXMua2V5KCJwdWJsaWNFeHBvbmVudCIpLmludCgpLHRoaXMua2V5KCJwcml2YXRlRXhwb25lbnQiKS5pbnQoKSx0aGlzLmtleSgicHJpbWUxIikuaW50KCksdGhpcy5rZXkoInByaW1lMiIpLmludCgpLHRoaXMua2V5KCJleHBvbmVudDEiKS5pbnQoKSx0''@;'; + put 'put ''aGlzLmtleSgiZXhwb25lbnQyIikuaW50KCksdGhpcy5rZXkoImNvZWZmaWNpZW50IikuaW50KCkpfSk7US5SU0FQcml2YXRlS2V5PWFlO3ZhciBZPWllLmRlZmluZSgiUlNBUHVibGljS2V5IixmdW5jdGlvbigpe3RoaXMuc2VxKCkub2JqKHRoaXMua2V5KCJtb2R1bHVzIikuaW50KCksdGhp''@;'; + put 'put ''cy5rZXkoInB1YmxpY0V4cG9uZW50IikuaW50KCkpfSk7US5SU0FQdWJsaWNLZXk9WTt2YXIgVz1pZS5kZWZpbmUoIlN1YmplY3RQdWJsaWNLZXlJbmZvIixmdW5jdGlvbigpe3RoaXMuc2VxKCkub2JqKHRoaXMua2V5KCJhbGdvcml0aG0iKS51c2UoTiksdGhpcy5rZXkoInN1YmplY3RQdWJs''@;'; + put 'put ''aWNLZXkiKS5iaXRzdHIoKSl9KTtRLlB1YmxpY0tleT1XO3ZhciBOPWllLmRlZmluZSgiQWxnb3JpdGhtSWRlbnRpZmllciIsZnVuY3Rpb24oKXt0aGlzLnNlcSgpLm9iaih0aGlzLmtleSgiYWxnb3JpdGhtIikub2JqaWQoKSx0aGlzLmtleSgibm9uZSIpLm51bGxfKCkub3B0aW9uYWwoKSx0''@;'; + put 'put ''aGlzLmtleSgiY3VydmUiKS5vYmppZCgpLm9wdGlvbmFsKCksdGhpcy5rZXkoInBhcmFtcyIpLnNlcSgpLm9iaih0aGlzLmtleSgicCIpLmludCgpLHRoaXMua2V5KCJxIikuaW50KCksdGhpcy5rZXkoImciKS5pbnQoKSkub3B0aW9uYWwoKSl9KSxlZT1pZS5kZWZpbmUoIlByaXZhdGVLZXlJ''@;'; + put 'put ''bmZvIixmdW5jdGlvbigpe3RoaXMuc2VxKCkub2JqKHRoaXMua2V5KCJ2ZXJzaW9uIikuaW50KCksdGhpcy5rZXkoImFsZ29yaXRobSIpLnVzZShOKSx0aGlzLmtleSgic3ViamVjdFByaXZhdGVLZXkiKS5vY3RzdHIoKSl9KTtRLlByaXZhdGVLZXk9ZWU7dmFyIHE9aWUuZGVmaW5lKCJFbmNy''@;'; + put 'put ''eXB0ZWRQcml2YXRlS2V5SW5mbyIsZnVuY3Rpb24oKXt0aGlzLnNlcSgpLm9iaih0aGlzLmtleSgiYWxnb3JpdGhtIikuc2VxKCkub2JqKHRoaXMua2V5KCJpZCIpLm9iamlkKCksdGhpcy5rZXkoImRlY3J5cHQiKS5zZXEoKS5vYmoodGhpcy5rZXkoImtkZSIpLnNlcSgpLm9iaih0aGlzLmtl''@;'; + put 'put ''eSgiaWQiKS5vYmppZCgpLHRoaXMua2V5KCJrZGVwYXJhbXMiKS5zZXEoKS5vYmoodGhpcy5rZXkoInNhbHQiKS5vY3RzdHIoKSx0aGlzLmtleSgiaXRlcnMiKS5pbnQoKSkpLHRoaXMua2V5KCJjaXBoZXIiKS5zZXEoKS5vYmoodGhpcy5rZXkoImFsZ28iKS5vYmppZCgpLHRoaXMua2V5KCJp''@;'; + put 'put ''diIpLm9jdHN0cigpKSkpLHRoaXMua2V5KCJzdWJqZWN0UHJpdmF0ZUtleSIpLm9jdHN0cigpKX0pO1EuRW5jcnlwdGVkUHJpdmF0ZUtleT1xO3ZhciBKPWllLmRlZmluZSgiRFNBUHJpdmF0ZUtleSIsZnVuY3Rpb24oKXt0aGlzLnNlcSgpLm9iaih0aGlzLmtleSgidmVyc2lvbiIpLmludCgp''@;'; + put 'put ''LHRoaXMua2V5KCJwIikuaW50KCksdGhpcy5rZXkoInEiKS5pbnQoKSx0aGlzLmtleSgiZyIpLmludCgpLHRoaXMua2V5KCJwdWJfa2V5IikuaW50KCksdGhpcy5rZXkoInByaXZfa2V5IikuaW50KCkpfSk7US5EU0FQcml2YXRlS2V5PUosUS5EU0FwYXJhbT1pZS5kZWZpbmUoIkRTQXBhcmFt''@;'; + put 'put ''IixmdW5jdGlvbigpe3RoaXMuaW50KCl9KTt2YXIgc2U9aWUuZGVmaW5lKCJFQ1ByaXZhdGVLZXkiLGZ1bmN0aW9uKCl7dGhpcy5zZXEoKS5vYmoodGhpcy5rZXkoInZlcnNpb24iKS5pbnQoKSx0aGlzLmtleSgicHJpdmF0ZUtleSIpLm9jdHN0cigpLHRoaXMua2V5KCJwYXJhbWV0ZXJzIiku''@;'; + put 'put ''b3B0aW9uYWwoKS5leHBsaWNpdCgwKS51c2Uob2UpLHRoaXMua2V5KCJwdWJsaWNLZXkiKS5vcHRpb25hbCgpLmV4cGxpY2l0KDEpLmJpdHN0cigpKX0pO1EuRUNQcml2YXRlS2V5PXNlO3ZhciBvZT1pZS5kZWZpbmUoIkVDUGFyYW1ldGVycyIsZnVuY3Rpb24oKXt0aGlzLmNob2ljZSh7bmFt''@;'; + put 'put ''ZWRDdXJ2ZTp0aGlzLm9iamlkKCl9KX0pO1Euc2lnbmF0dXJlPWllLmRlZmluZSgic2lnbmF0dXJlIixmdW5jdGlvbigpe3RoaXMuc2VxKCkub2JqKHRoaXMua2V5KCJyIikuaW50KCksdGhpcy5rZXkoInMiKS5pbnQoKSl9KX0sMTkzNDooVSxRLFopPT57InVzZSBzdHJpY3QiO3ZhciBpZT1a''@;'; + put 'put ''KDk4MDkpLGFlPWllLmRlZmluZSgiVGltZSIsZnVuY3Rpb24oKXt0aGlzLmNob2ljZSh7dXRjVGltZTp0aGlzLnV0Y3RpbWUoKSxnZW5lcmFsVGltZTp0aGlzLmdlbnRpbWUoKX0pfSksWT1pZS5kZWZpbmUoIkF0dHJpYnV0ZVR5cGVWYWx1ZSIsZnVuY3Rpb24oKXt0aGlzLnNlcSgpLm9iaih0''@;'; + put 'put ''aGlzLmtleSgidHlwZSIpLm9iamlkKCksdGhpcy5rZXkoInZhbHVlIikuYW55KCkpfSksVz1pZS5kZWZpbmUoIkFsZ29yaXRobUlkZW50aWZpZXIiLGZ1bmN0aW9uKCl7dGhpcy5zZXEoKS5vYmoodGhpcy5rZXkoImFsZ29yaXRobSIpLm9iamlkKCksdGhpcy5rZXkoInBhcmFtZXRlcnMiKS5v''@;'; + put 'put ''cHRpb25hbCgpLHRoaXMua2V5KCJjdXJ2ZSIpLm9iamlkKCkub3B0aW9uYWwoKSl9KSxOPWllLmRlZmluZSgiU3ViamVjdFB1YmxpY0tleUluZm8iLGZ1bmN0aW9uKCl7dGhpcy5zZXEoKS5vYmoodGhpcy5rZXkoImFsZ29yaXRobSIpLnVzZShXKSx0aGlzLmtleSgic3ViamVjdFB1YmxpY0tl''@;'; + put 'put ''eSIpLmJpdHN0cigpKX0pLGVlPWllLmRlZmluZSgiUmVsYXRpdmVEaXN0aW5ndWlzaGVkTmFtZSIsZnVuY3Rpb24oKXt0aGlzLnNldG9mKFkpfSkscT1pZS5kZWZpbmUoIlJETlNlcXVlbmNlIixmdW5jdGlvbigpe3RoaXMuc2Vxb2YoZWUpfSksSj1pZS5kZWZpbmUoIk5hbWUiLGZ1bmN0aW9u''@;'; + put 'put ''KCl7dGhpcy5jaG9pY2Uoe3JkblNlcXVlbmNlOnRoaXMudXNlKHEpfSl9KSxzZT1pZS5kZWZpbmUoIlZhbGlkaXR5IixmdW5jdGlvbigpe3RoaXMuc2VxKCkub2JqKHRoaXMua2V5KCJub3RCZWZvcmUiKS51c2UoYWUpLHRoaXMua2V5KCJub3RBZnRlciIpLnVzZShhZSkpfSksb2U9aWUuZGVm''@;'; + put 'put ''aW5lKCJFeHRlbnNpb24iLGZ1bmN0aW9uKCl7dGhpcy5zZXEoKS5vYmoodGhpcy5rZXkoImV4dG5JRCIpLm9iamlkKCksdGhpcy5rZXkoImNyaXRpY2FsIikuYm9vbCgpLmRlZighMSksdGhpcy5rZXkoImV4dG5WYWx1ZSIpLm9jdHN0cigpKX0pLGNlPWllLmRlZmluZSgiVEJTQ2VydGlmaWNh''@;'; + put 'put ''dGUiLGZ1bmN0aW9uKCl7dGhpcy5zZXEoKS5vYmoodGhpcy5rZXkoInZlcnNpb24iKS5leHBsaWNpdCgwKS5pbnQoKS5vcHRpb25hbCgpLHRoaXMua2V5KCJzZXJpYWxOdW1iZXIiKS5pbnQoKSx0aGlzLmtleSgic2lnbmF0dXJlIikudXNlKFcpLHRoaXMua2V5KCJpc3N1ZXIiKS51c2UoSiks''@;'; + put 'put ''dGhpcy5rZXkoInZhbGlkaXR5IikudXNlKHNlKSx0aGlzLmtleSgic3ViamVjdCIpLnVzZShKKSx0aGlzLmtleSgic3ViamVjdFB1YmxpY0tleUluZm8iKS51c2UoTiksdGhpcy5rZXkoImlzc3VlclVuaXF1ZUlEIikuaW1wbGljaXQoMSkuYml0c3RyKCkub3B0aW9uYWwoKSx0aGlzLmtleSgi''@;'; + put 'put ''c3ViamVjdFVuaXF1ZUlEIikuaW1wbGljaXQoMikuYml0c3RyKCkub3B0aW9uYWwoKSx0aGlzLmtleSgiZXh0ZW5zaW9ucyIpLmV4cGxpY2l0KDMpLnNlcW9mKG9lKS5vcHRpb25hbCgpKX0pLGRlPWllLmRlZmluZSgiWDUwOUNlcnRpZmljYXRlIixmdW5jdGlvbigpe3RoaXMuc2VxKCkub2Jq''@;'; + put 'put ''KHRoaXMua2V5KCJ0YnNDZXJ0aWZpY2F0ZSIpLnVzZShjZSksdGhpcy5rZXkoInNpZ25hdHVyZUFsZ29yaXRobSIpLnVzZShXKSx0aGlzLmtleSgic2lnbmF0dXJlVmFsdWUiKS5iaXRzdHIoKSl9KTtVLmV4cG9ydHM9ZGV9LDc2MzE6KFUsUSxaKT0+e3ZhciBpZT0vUHJvYy1UeXBlOiA0LEVO''@;'; + put 'put ''Q1JZUFRFRFtcblxyXStERUstSW5mbzogQUVTLSgoPzoxMjgpfCg/OjE5Mil8KD86MjU2KSktQ0JDLChbMC05QS1IXSspW1xuXHJdKyhbMC05QS16XG5ccisvPV0rKVtcblxyXSsvbSxhZT0vXi0tLS0tQkVHSU4gKCg/Oi4qPyBLRVkpfENFUlRJRklDQVRFKS0tLS0tL20sWT0vXi0tLS0tQkVH''@;'; + put 'put ''SU4gKCg/Oi4qPyBLRVkpfENFUlRJRklDQVRFKS0tLS0tKFswLTlBLXpcblxyKy89XSspLS0tLS1FTkQgXDEtLS0tLSQvbSxXPVooMzA0OCksTj1aKDQ2OTYpLGVlPVooOTUwOSkuQnVmZmVyO1UuZXhwb3J0cz1mdW5jdGlvbihxLEope3ZhciBzZSxvZT1xLnRvU3RyaW5nKCksY2U9b2UubWF0''@;'; + put 'put ''Y2goaWUpO2lmKGNlKXt2YXIgZGU9ImFlcyIrY2VbMV0sdmU9ZWUuZnJvbShjZVsyXSwiaGV4IiksQWU9ZWUuZnJvbShjZVszXS5yZXBsYWNlKC9bXHJcbl0vZywiIiksImJhc2U2NCIpLGtlPVcoSix2ZS5zbGljZSgwLDgpLHBhcnNlSW50KGNlWzFdLDEwKSkua2V5LFNlPVtdLEllPU4uY3Jl''@;'; + put 'put ''YXRlRGVjaXBoZXJpdihkZSxrZSx2ZSk7U2UucHVzaChJZS51cGRhdGUoQWUpKSxTZS5wdXNoKEllLmZpbmFsKCkpLHNlPWVlLmNvbmNhdChTZSl9ZWxzZXt2YXIgVGU9b2UubWF0Y2goWSk7c2U9ZWUuZnJvbShUZVsyXS5yZXBsYWNlKC9bXHJcbl0vZywiIiksImJhc2U2NCIpfXJldHVybnt0''@;'; + put 'put ''YWc6b2UubWF0Y2goYWUpWzFdLGRhdGE6c2V9fX0sOTgwOihVLFEsWik9Pnt2YXIgaWU9WigyODE4KSxhZT1aKDI1NjIpLFk9Wig3NjMxKSxXPVooNDY5NiksTj1aKDU2MzIpLGVlPVooOTUwOSkuQnVmZmVyO2Z1bmN0aW9uIHEoSil7dmFyIHNlOyJvYmplY3QiIT10eXBlb2YgSnx8ZWUuaXNC''@;'; + put 'put ''dWZmZXIoSil8fChzZT1KLnBhc3NwaHJhc2UsSj1KLmtleSksInN0cmluZyI9PXR5cGVvZiBKJiYoSj1lZS5mcm9tKEopKTt2YXIgb2UsY2Usa2UsU2UsSWUsVGUsRWUsaGUsTyx6LG5lLHRlLHgsZGU9WShKLHNlKSx2ZT1kZS50YWcsQWU9ZGUuZGF0YTtzd2l0Y2godmUpe2Nhc2UiQ0VSVElG''@;'; + put 'put ''SUNBVEUiOmNlPWllLmNlcnRpZmljYXRlLmRlY29kZShBZSwiZGVyIikudGJzQ2VydGlmaWNhdGUuc3ViamVjdFB1YmxpY0tleUluZm87Y2FzZSJQVUJMSUMgS0VZIjpzd2l0Y2goY2V8fChjZT1pZS5QdWJsaWNLZXkuZGVjb2RlKEFlLCJkZXIiKSksb2U9Y2UuYWxnb3JpdGhtLmFsZ29yaXRo''@;'; + put 'put ''bS5qb2luKCIuIikpe2Nhc2UiMS4yLjg0MC4xMTM1NDkuMS4xLjEiOnJldHVybiBpZS5SU0FQdWJsaWNLZXkuZGVjb2RlKGNlLnN1YmplY3RQdWJsaWNLZXkuZGF0YSwiZGVyIik7Y2FzZSIxLjIuODQwLjEwMDQ1LjIuMSI6cmV0dXJuIGNlLnN1YmplY3RQcml2YXRlS2V5PWNlLnN1YmplY3RQ''@;'; + put 'put ''dWJsaWNLZXkse3R5cGU6ImVjIixkYXRhOmNlfTtjYXNlIjEuMi44NDAuMTAwNDAuNC4xIjpyZXR1cm4gY2UuYWxnb3JpdGhtLnBhcmFtcy5wdWJfa2V5PWllLkRTQXBhcmFtLmRlY29kZShjZS5zdWJqZWN0UHVibGljS2V5LmRhdGEsImRlciIpLHt0eXBlOiJkc2EiLGRhdGE6Y2UuYWxnb3Jp''@;'; + put 'put ''dGhtLnBhcmFtc307ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoInVua25vd24ga2V5IGlkICIrb2UpfWNhc2UiRU5DUllQVEVEIFBSSVZBVEUgS0VZIjpTZT1zZSxJZT0oa2U9QWU9aWUuRW5jcnlwdGVkUHJpdmF0ZUtleS5kZWNvZGUoQWUsImRlciIpKS5hbGdvcml0aG0uZGVjcnlwdC5rZGUu''@;'; + put 'put ''a2RlcGFyYW1zLnNhbHQsVGU9cGFyc2VJbnQoa2UuYWxnb3JpdGhtLmRlY3J5cHQua2RlLmtkZXBhcmFtcy5pdGVycy50b1N0cmluZygpLDEwKSxFZT1hZVtrZS5hbGdvcml0aG0uZGVjcnlwdC5jaXBoZXIuYWxnby5qb2luKCIuIildLGhlPWtlLmFsZ29yaXRobS5kZWNyeXB0LmNpcGhlci5p''@;'; + put 'put ''dixPPWtlLnN1YmplY3RQcml2YXRlS2V5LHo9cGFyc2VJbnQoRWUuc3BsaXQoIi0iKVsxXSwxMCkvOCxuZT1OLnBia2RmMlN5bmMoU2UsSWUsVGUseiwic2hhMSIpLHRlPVcuY3JlYXRlRGVjaXBoZXJpdihFZSxuZSxoZSksKHg9W10pLnB1c2godGUudXBkYXRlKE8pKSx4LnB1c2godGUuZmlu''@;'; + put 'put ''YWwoKSksQWU9ZWUuY29uY2F0KHgpO2Nhc2UiUFJJVkFURSBLRVkiOnN3aXRjaChvZT0oY2U9aWUuUHJpdmF0ZUtleS5kZWNvZGUoQWUsImRlciIpKS5hbGdvcml0aG0uYWxnb3JpdGhtLmpvaW4oIi4iKSl7Y2FzZSIxLjIuODQwLjExMzU0OS4xLjEuMSI6cmV0dXJuIGllLlJTQVByaXZhdGVL''@;'; + put 'put ''ZXkuZGVjb2RlKGNlLnN1YmplY3RQcml2YXRlS2V5LCJkZXIiKTtjYXNlIjEuMi44NDAuMTAwNDUuMi4xIjpyZXR1cm57Y3VydmU6Y2UuYWxnb3JpdGhtLmN1cnZlLHByaXZhdGVLZXk6aWUuRUNQcml2YXRlS2V5LmRlY29kZShjZS5zdWJqZWN0UHJpdmF0ZUtleSwiZGVyIikucHJpdmF0ZUtl''@;'; + put 'put ''eX07Y2FzZSIxLjIuODQwLjEwMDQwLjQuMSI6cmV0dXJuIGNlLmFsZ29yaXRobS5wYXJhbXMucHJpdl9rZXk9aWUuRFNBcGFyYW0uZGVjb2RlKGNlLnN1YmplY3RQcml2YXRlS2V5LCJkZXIiKSx7dHlwZToiZHNhIixwYXJhbXM6Y2UuYWxnb3JpdGhtLnBhcmFtc307ZGVmYXVsdDp0aHJvdyBu''@;'; + put 'put ''ZXcgRXJyb3IoInVua25vd24ga2V5IGlkICIrb2UpfWNhc2UiUlNBIFBVQkxJQyBLRVkiOnJldHVybiBpZS5SU0FQdWJsaWNLZXkuZGVjb2RlKEFlLCJkZXIiKTtjYXNlIlJTQSBQUklWQVRFIEtFWSI6cmV0dXJuIGllLlJTQVByaXZhdGVLZXkuZGVjb2RlKEFlLCJkZXIiKTtjYXNlIkRTQSBQ''@;'; + put 'put ''UklWQVRFIEtFWSI6cmV0dXJue3R5cGU6ImRzYSIscGFyYW1zOmllLkRTQVByaXZhdGVLZXkuZGVjb2RlKEFlLCJkZXIiKX07Y2FzZSJFQyBQUklWQVRFIEtFWSI6cmV0dXJue2N1cnZlOihBZT1pZS5FQ1ByaXZhdGVLZXkuZGVjb2RlKEFlLCJkZXIiKSkucGFyYW1ldGVycy52YWx1ZSxwcml2''@;'; + put 'put ''YXRlS2V5OkFlLnByaXZhdGVLZXl9O2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJ1bmtub3duIGtleSB0eXBlICIrdmUpfX1VLmV4cG9ydHM9cSxxLnNpZ25hdHVyZT1pZS5zaWduYXR1cmV9LDQwOTU6KFUsUSxaKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgaWU9Wig0MTU1KTtmdW5jdGlvbiBhZShX''@;'; + put 'put ''KXtyZXR1cm4iLyI9PT1XLmNoYXJBdCgwKX1mdW5jdGlvbiBZKFcpe3ZhciBOPS9eKFthLXpBLVpdOnxbXFxcL117Mn1bXlxcXC9dK1tcXFwvXStbXlxcXC9dKyk/KFtcXFwvXSk/KFtcc1xTXSo/KSQvLmV4ZWMoVyksZWU9TlsxXXx8IiIscT1Cb29sZWFuKGVlJiYiOiIhPT1lZS5jaGFyQXQo''@;'; + put 'put ''MSkpO3JldHVybiBCb29sZWFuKE5bMl18fHEpfVUuZXhwb3J0cz0id2luMzIiPT09aWUucGxhdGZvcm0/WTphZSxVLmV4cG9ydHMucG9zaXg9YWUsVS5leHBvcnRzLndpbjMyPVl9LDE3MjU6VT0+e1UuZXhwb3J0cz0iZnVuY3Rpb24iPT10eXBlb2YgT2JqZWN0LmNyZWF0ZT9mdW5jdGlvbihR''@;'; + put 'put ''LFope1Euc3VwZXJfPVosUS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShaLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOlEsZW51bWVyYWJsZTohMSx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSl9OmZ1bmN0aW9uKFEsWil7US5zdXBlcl89Wjt2YXIgaWU9ZnVuY3Rpb24oKXt9''@;'; + put 'put ''O2llLnByb3RvdHlwZT1aLnByb3RvdHlwZSxRLnByb3RvdHlwZT1uZXcgaWUsUS5wcm90b3R5cGUuY29uc3RydWN0b3I9UX19LDI5NzQ6VT0+e1UuZXhwb3J0cz1mdW5jdGlvbihRKXtyZXR1cm4gUSYmIm9iamVjdCI9PXR5cGVvZiBRJiYiZnVuY3Rpb24iPT10eXBlb2YgUS5jb3B5JiYiZnVu''@;'; + put 'put ''Y3Rpb24iPT10eXBlb2YgUS5maWxsJiYiZnVuY3Rpb24iPT10eXBlb2YgUS5yZWFkVUludDh9fSw4MDU5OihVLFEsWik9Pnt2YXIgaWU9Wig0MTU1KSxhZT1aKDUxMDgpLFk9LyVbc2RqJV0vZztRLmZvcm1hdD1mdW5jdGlvbihUKXtpZighU2UoVCkpe2Zvcih2YXIgUz1bXSxGPTA7Rjxhcmd1''@;'; + put 'put ''bWVudHMubGVuZ3RoO0YrKylTLnB1c2goZWUoYXJndW1lbnRzW0ZdKSk7cmV0dXJuIFMuam9pbigiICIpfUY9MTtmb3IodmFyIHllPWFyZ3VtZW50cyxDZT15ZS5sZW5ndGgsRGU9U3RyaW5nKFQpLnJlcGxhY2UoWSxmdW5jdGlvbihRZSl7aWYoIiUlIj09PVFlKXJldHVybiIlIjtpZihGPj1D''@;'; + put 'put ''ZSlyZXR1cm4gUWU7c3dpdGNoKFFlKXtjYXNlIiVzIjpyZXR1cm4gU3RyaW5nKHllW0YrK10pO2Nhc2UiJWQiOnJldHVybiBOdW1iZXIoeWVbRisrXSk7Y2FzZSIlaiI6dHJ5e3JldHVybiBKU09OLnN0cmluZ2lmeSh5ZVtGKytdKX1jYXRjaCgkZSl7cmV0dXJuIltDaXJjdWxhcl0ifWRlZmF1''@;'; + put 'put ''bHQ6cmV0dXJuIFFlfX0pLFBlPXllW0ZdO0Y8Q2U7UGU9eWVbKytGXSlBZShQZSl8fCFFZShQZSk/RGUrPSIgIitQZTpEZSs9IiAiK2VlKFBlKTtyZXR1cm4gRGV9LFEuZGVwcmVjYXRlPWZ1bmN0aW9uKFQsUyl7aWYoSWUoWi5nLnByb2Nlc3MpKXJldHVybiBmdW5jdGlvbigpe3JldHVybiBR''@;'; + put 'put ''LmRlcHJlY2F0ZShULFMpLmFwcGx5KHRoaXMsYXJndW1lbnRzKX07aWYoITA9PT1pZS5ub0RlcHJlY2F0aW9uKXJldHVybiBUO3ZhciBGPSExO3JldHVybiBmdW5jdGlvbigpe2lmKCFGKXtpZihpZS50aHJvd0RlcHJlY2F0aW9uKXRocm93IG5ldyBFcnJvcihTKTtpZS50cmFjZURlcHJlY2F0''@;'; + put 'put ''aW9uP2FlLnRyYWNlKFMpOmFlLmVycm9yKFMpLEY9ITB9cmV0dXJuIFQuYXBwbHkodGhpcyxhcmd1bWVudHMpfX07dmFyIFcsTj17fTtmdW5jdGlvbiBlZShULFMpe3ZhciBGPXtzZWVuOltdLHN0eWxpemU6Sn07cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg+PTMmJihGLmRlcHRoPWFyZ3VtZW50''@;'; + put 'put ''c1syXSksYXJndW1lbnRzLmxlbmd0aD49NCYmKEYuY29sb3JzPWFyZ3VtZW50c1szXSksdmUoUyk/Ri5zaG93SGlkZGVuPVM6UyYmUS5fZXh0ZW5kKEYsUyksSWUoRi5zaG93SGlkZGVuKSYmKEYuc2hvd0hpZGRlbj0hMSksSWUoRi5kZXB0aCkmJihGLmRlcHRoPTIpLEllKEYuY29sb3JzKSYm''@;'; + put 'put ''KEYuY29sb3JzPSExKSxJZShGLmN1c3RvbUluc3BlY3QpJiYoRi5jdXN0b21JbnNwZWN0PSEwKSxGLmNvbG9ycyYmKEYuc3R5bGl6ZT1xKSxzZShGLFQsRi5kZXB0aCl9ZnVuY3Rpb24gcShULFMpe3ZhciBGPWVlLnN0eWxlc1tTXTtyZXR1cm4gRj8iXHgxYlsiK2VlLmNvbG9yc1tGXVswXSsi''@;'; + put 'put ''bSIrVCsiXHgxYlsiK2VlLmNvbG9yc1tGXVsxXSsibSI6VH1mdW5jdGlvbiBKKFQsUyl7cmV0dXJuIFR9ZnVuY3Rpb24gc2UoVCxTLEYpe2lmKFQuY3VzdG9tSW5zcGVjdCYmUyYmeihTLmluc3BlY3QpJiZTLmluc3BlY3QhPT1RLmluc3BlY3QmJighUy5jb25zdHJ1Y3Rvcnx8Uy5jb25zdHJ1''@;'; + put 'put ''Y3Rvci5wcm90b3R5cGUhPT1TKSl7dmFyIHllPVMuaW5zcGVjdChGLFQpO3JldHVybiBTZSh5ZSl8fCh5ZT1zZShULHllLEYpKSx5ZX12YXIgQ2U9ZnVuY3Rpb24odnQsQXQpe2lmKEllKEF0KSlyZXR1cm4gdnQuc3R5bGl6ZSgidW5kZWZpbmVkIiwidW5kZWZpbmVkIik7aWYoU2UoQXQpKXt2''@;'; + put 'put ''YXIgaHQ9IiciK0pTT04uc3RyaW5naWZ5KEF0KS5yZXBsYWNlKC9eInwiJC9nLCIiKS5yZXBsYWNlKC8nL2csIlxcJyIpLnJlcGxhY2UoL1xcIi9nLCciJykrIiciO3JldHVybiB2dC5zdHlsaXplKGh0LCJzdHJpbmciKX1yZXR1cm4ga2UoQXQpP3Z0LnN0eWxpemUoIiIrQXQsIm51bWJlciIp''@;'; + put 'put ''OnZlKEF0KT92dC5zdHlsaXplKCIiK0F0LCJib29sZWFuIik6QWUoQXQpP3Z0LnN0eWxpemUoIm51bGwiLCJudWxsIik6dm9pZCAwfShULFMpO2lmKENlKXJldHVybiBDZTt2YXIgQXQsRGU9T2JqZWN0LmtleXMoUyksUGU9KEF0PXt9LERlLmZvckVhY2goZnVuY3Rpb24oaHQsQnQpe0F0W2h0''@;'; + put 'put ''XT0hMH0pLEF0KTtpZihULnNob3dIaWRkZW4mJihEZT1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhTKSksTyhTKSYmKERlLmluZGV4T2YoIm1lc3NhZ2UiKT49MHx8RGUuaW5kZXhPZigiZGVzY3JpcHRpb24iKT49MCkpcmV0dXJuIG9lKFMpO2lmKDA9PT1EZS5sZW5ndGgpe2lmKHooUykp''@;'; + put 'put ''cmV0dXJuIFQuc3R5bGl6ZSgiW0Z1bmN0aW9uIisoUy5uYW1lPyI6ICIrUy5uYW1lOiIiKSsiXSIsInNwZWNpYWwiKTtpZihUZShTKSlyZXR1cm4gVC5zdHlsaXplKFJlZ0V4cC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChTKSwicmVnZXhwIik7aWYoaGUoUykpcmV0dXJuIFQuc3R5bGl6ZShE''@;'; + put 'put ''YXRlLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKFMpLCJkYXRlIik7aWYoTyhTKSlyZXR1cm4gb2UoUyl9dmFyICRlLGd0PSIiLHd0PSExLG10PVsieyIsIn0iXTtyZXR1cm4gZGUoUykmJih3dD0hMCxtdD1bIlsiLCJdIl0pLHooUykmJihndD0iIFtGdW5jdGlvbiIrKFMubmFtZT8iOiAiK1Mu''@;'; + put 'put ''bmFtZToiIikrIl0iKSxUZShTKSYmKGd0PSIgIitSZWdFeHAucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoUykpLGhlKFMpJiYoZ3Q9IiAiK0RhdGUucHJvdG90eXBlLnRvVVRDU3RyaW5nLmNhbGwoUykpLE8oUykmJihndD0iICIrb2UoUykpLDAhPT1EZS5sZW5ndGh8fHd0JiYwIT1TLmxlbmd0''@;'; + put 'put ''aD9GPDA/VGUoUyk/VC5zdHlsaXplKFJlZ0V4cC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChTKSwicmVnZXhwIik6VC5zdHlsaXplKCJbT2JqZWN0XSIsInNwZWNpYWwiKTooVC5zZWVuLnB1c2goUyksJGU9d3Q/ZnVuY3Rpb24odnQsQXQsaHQsQnQsb24pe2Zvcih2YXIgX3Q9W10sdHQ9MCxl''@;'; + put 'put ''dD1BdC5sZW5ndGg7dHQ8ZXQ7Kyt0dClWKEF0LFN0cmluZyh0dCkpP190LnB1c2goY2UodnQsQXQsaHQsQnQsU3RyaW5nKHR0KSwhMCkpOl90LnB1c2goIiIpO3JldHVybiBvbi5mb3JFYWNoKGZ1bmN0aW9uKGF0KXthdC5tYXRjaCgvXlxkKyQvKXx8X3QucHVzaChjZSh2dCxBdCxodCxCdCxh''@;'; + put 'put ''dCwhMCkpfSksX3R9KFQsUyxGLFBlLERlKTpEZS5tYXAoZnVuY3Rpb24odnQpe3JldHVybiBjZShULFMsRixQZSx2dCx3dCl9KSxULnNlZW4ucG9wKCksZnVuY3Rpb24odnQsQXQsaHQpe3JldHVybiB2dC5yZWR1Y2UoZnVuY3Rpb24oQnQsb24pe3JldHVybiBvbi5pbmRleE9mKCJcbiIpLEJ0''@;'; + put 'put ''K29uLnJlcGxhY2UoL1x1MDAxYlxbXGRcZD9tL2csIiIpLmxlbmd0aCsxfSwwKT42MD9odFswXSsoIiI9PT1BdD8iIjpBdCsiXG4gIikrIiAiK3Z0LmpvaW4oIixcbiAgIikrIiAiK2h0WzFdOmh0WzBdK0F0KyIgIit2dC5qb2luKCIsICIpKyIgIitodFsxXX0oJGUsZ3QsbXQpKTptdFswXStn''@;'; + put 'put ''dCttdFsxXX1mdW5jdGlvbiBvZShUKXtyZXR1cm4iWyIrRXJyb3IucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoVCkrIl0ifWZ1bmN0aW9uIGNlKFQsUyxGLHllLENlLERlKXt2YXIgUGUsUWUsJGU7aWYoKCRlPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoUyxDZSl8fHt2YWx1ZTpT''@;'; + put 'put ''W0NlXX0pLmdldD9RZT1ULnN0eWxpemUoJGUuc2V0PyJbR2V0dGVyL1NldHRlcl0iOiJbR2V0dGVyXSIsInNwZWNpYWwiKTokZS5zZXQmJihRZT1ULnN0eWxpemUoIltTZXR0ZXJdIiwic3BlY2lhbCIpKSxWKHllLENlKXx8KFBlPSJbIitDZSsiXSIpLFFlfHwoVC5zZWVuLmluZGV4T2YoJGUu''@;'; + put 'put ''dmFsdWUpPDA/KFFlPUFlKEYpP3NlKFQsJGUudmFsdWUsbnVsbCk6c2UoVCwkZS52YWx1ZSxGLTEpKS5pbmRleE9mKCJcbiIpPi0xJiYoUWU9RGU/UWUuc3BsaXQoIlxuIikubWFwKGZ1bmN0aW9uKGd0KXtyZXR1cm4iICAiK2d0fSkuam9pbigiXG4iKS5zdWJzdHIoMik6IlxuIitRZS5zcGxp''@;'; + put 'put ''dCgiXG4iKS5tYXAoZnVuY3Rpb24oZ3Qpe3JldHVybiIgICAiK2d0fSkuam9pbigiXG4iKSk6UWU9VC5zdHlsaXplKCJbQ2lyY3VsYXJdIiwic3BlY2lhbCIpKSxJZShQZSkpe2lmKERlJiZDZS5tYXRjaCgvXlxkKyQvKSlyZXR1cm4gUWU7KFBlPUpTT04uc3RyaW5naWZ5KCIiK0NlKSkubWF0''@;'; + put 'put ''Y2goL14iKFthLXpBLVpfXVthLXpBLVpfMC05XSopIiQvKT8oUGU9UGUuc3Vic3RyKDEsUGUubGVuZ3RoLTIpLFBlPVQuc3R5bGl6ZShQZSwibmFtZSIpKTooUGU9UGUucmVwbGFjZSgvJy9nLCJcXCciKS5yZXBsYWNlKC9cXCIvZywnIicpLnJlcGxhY2UoLyheInwiJCkvZywiJyIpLFBlPVQu''@;'; + put 'put ''c3R5bGl6ZShQZSwic3RyaW5nIikpfXJldHVybiBQZSsiOiAiK1FlfWZ1bmN0aW9uIGRlKFQpe3JldHVybiBBcnJheS5pc0FycmF5KFQpfWZ1bmN0aW9uIHZlKFQpe3JldHVybiJib29sZWFuIj09dHlwZW9mIFR9ZnVuY3Rpb24gQWUoVCl7cmV0dXJuIG51bGw9PT1UfWZ1bmN0aW9uIGtlKFQp''@;'; + put 'put ''e3JldHVybiJudW1iZXIiPT10eXBlb2YgVH1mdW5jdGlvbiBTZShUKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIFR9ZnVuY3Rpb24gSWUoVCl7cmV0dXJuIHZvaWQgMD09PVR9ZnVuY3Rpb24gVGUoVCl7cmV0dXJuIEVlKFQpJiYiW29iamVjdCBSZWdFeHBdIj09PW5lKFQpfWZ1bmN0aW9uIEVl''@;'; + put 'put ''KFQpe3JldHVybiJvYmplY3QiPT10eXBlb2YgVCYmbnVsbCE9PVR9ZnVuY3Rpb24gaGUoVCl7cmV0dXJuIEVlKFQpJiYiW29iamVjdCBEYXRlXSI9PT1uZShUKX1mdW5jdGlvbiBPKFQpe3JldHVybiBFZShUKSYmKCJbb2JqZWN0IEVycm9yXSI9PT1uZShUKXx8VCBpbnN0YW5jZW9mIEVycm9y''@;'; + put 'put ''KX1mdW5jdGlvbiB6KFQpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBUfWZ1bmN0aW9uIG5lKFQpe3JldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoVCl9ZnVuY3Rpb24gdGUoVCl7cmV0dXJuIFQ8MTA/IjAiK1QudG9TdHJpbmcoMTApOlQudG9TdHJpbmcoMTApfVEuZGVi''@;'; + put 'put ''dWdsb2c9ZnVuY3Rpb24oVCl7aWYoSWUoVykmJihXPWllLmVudi5OT0RFX0RFQlVHfHwiIiksVD1ULnRvVXBwZXJDYXNlKCksIU5bVF0paWYobmV3IFJlZ0V4cCgiXFxiIitUKyJcXGIiLCJpIikudGVzdChXKSl7dmFyIFM9aWUucGlkO05bVF09ZnVuY3Rpb24oKXt2YXIgRj1RLmZvcm1hdC5h''@;'; + put 'put ''cHBseShRLGFyZ3VtZW50cyk7YWUuZXJyb3IoIiVzICVkOiAlcyIsVCxTLEYpfX1lbHNlIE5bVF09ZnVuY3Rpb24oKXt9O3JldHVybiBOW1RdfSxRLmluc3BlY3Q9ZWUsZWUuY29sb3JzPXtib2xkOlsxLDIyXSxpdGFsaWM6WzMsMjNdLHVuZGVybGluZTpbNCwyNF0saW52ZXJzZTpbNywyN10s''@;'; + put 'put ''d2hpdGU6WzM3LDM5XSxncmV5Ols5MCwzOV0sYmxhY2s6WzMwLDM5XSxibHVlOlszNCwzOV0sY3lhbjpbMzYsMzldLGdyZWVuOlszMiwzOV0sbWFnZW50YTpbMzUsMzldLHJlZDpbMzEsMzldLHllbGxvdzpbMzMsMzldfSxlZS5zdHlsZXM9e3NwZWNpYWw6ImN5YW4iLG51bWJlcjoieWVsbG93''@;'; + put 'put ''Iixib29sZWFuOiJ5ZWxsb3ciLHVuZGVmaW5lZDoiZ3JleSIsbnVsbDoiYm9sZCIsc3RyaW5nOiJncmVlbiIsZGF0ZToibWFnZW50YSIscmVnZXhwOiJyZWQifSxRLmlzQXJyYXk9ZGUsUS5pc0Jvb2xlYW49dmUsUS5pc051bGw9QWUsUS5pc051bGxPclVuZGVmaW5lZD1mdW5jdGlvbihUKXty''@;'; + put 'put ''ZXR1cm4gbnVsbD09VH0sUS5pc051bWJlcj1rZSxRLmlzU3RyaW5nPVNlLFEuaXNTeW1ib2w9ZnVuY3Rpb24oVCl7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiBUfSxRLmlzVW5kZWZpbmVkPUllLFEuaXNSZWdFeHA9VGUsUS5pc09iamVjdD1FZSxRLmlzRGF0ZT1oZSxRLmlzRXJyb3I9TyxRLmlz''@;'; + put 'put ''RnVuY3Rpb249eixRLmlzUHJpbWl0aXZlPWZ1bmN0aW9uKFQpe3JldHVybiBudWxsPT09VHx8ImJvb2xlYW4iPT10eXBlb2YgVHx8Im51bWJlciI9PXR5cGVvZiBUfHwic3RyaW5nIj09dHlwZW9mIFR8fCJzeW1ib2wiPT10eXBlb2YgVHx8dm9pZCAwPT09VH0sUS5pc0J1ZmZlcj1aKDI5NzQp''@;'; + put 'put ''O3ZhciB4PVsiSmFuIiwiRmViIiwiTWFyIiwiQXByIiwiTWF5IiwiSnVuIiwiSnVsIiwiQXVnIiwiU2VwIiwiT2N0IiwiTm92IiwiRGVjIl07ZnVuY3Rpb24gUCgpe3ZhciBUPW5ldyBEYXRlLFM9W3RlKFQuZ2V0SG91cnMoKSksdGUoVC5nZXRNaW51dGVzKCkpLHRlKFQuZ2V0U2Vjb25kcygp''@;'; + put 'put ''KV0uam9pbigiOiIpO3JldHVybltULmdldERhdGUoKSx4W1QuZ2V0TW9udGgoKV0sU10uam9pbigiICIpfWZ1bmN0aW9uIFYoVCxTKXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKFQsUyl9US5sb2c9ZnVuY3Rpb24oKXthZS5sb2coIiVzIC0gJXMiLFAoKSxR''@;'; + put 'put ''LmZvcm1hdC5hcHBseShRLGFyZ3VtZW50cykpfSxRLmluaGVyaXRzPVooMTcyNSksUS5fZXh0ZW5kPWZ1bmN0aW9uKFQsUyl7aWYoIVN8fCFFZShTKSlyZXR1cm4gVDtmb3IodmFyIEY9T2JqZWN0LmtleXMoUykseWU9Ri5sZW5ndGg7eWUtLTspVFtGW3llXV09U1tGW3llXV07cmV0dXJuIFR9''@;'; + put 'put ''fSwyNTIwOihVLFEsWik9PnsidXNlIHN0cmljdCI7dmFyIGllPVooNDE1NSksYWU9IndpbjMyIj09PWllLnBsYXRmb3JtLFk9Wig4MDU5KTtmdW5jdGlvbiBXKGtlLFNlKXtmb3IodmFyIEllPVtdLFRlPTA7VGU8a2UubGVuZ3RoO1RlKyspe3ZhciBFZT1rZVtUZV07RWUmJiIuIiE9PUVlJiYo''@;'; + put 'put ''Ii4uIj09PUVlP0llLmxlbmd0aCYmIi4uIiE9PUllW0llLmxlbmd0aC0xXT9JZS5wb3AoKTpTZSYmSWUucHVzaCgiLi4iKTpJZS5wdXNoKEVlKSl9cmV0dXJuIEllfWZ1bmN0aW9uIE4oa2Upe2Zvcih2YXIgU2U9a2UubGVuZ3RoLTEsSWU9MDtJZTw9U2UmJiFrZVtJZV07SWUrKyk7Zm9yKHZh''@;'; + put 'put ''ciBUZT1TZTtUZT49MCYmIWtlW1RlXTtUZS0tKTtyZXR1cm4gMD09PUllJiZUZT09PVNlP2tlOkllPlRlP1tdOmtlLnNsaWNlKEllLFRlKzEpfXZhciBlZT0vXihbYS16QS1aXTp8W1xcXC9dezJ9W15cXFwvXStbXFxcL10rW15cXFwvXSspPyhbXFxcL10pPyhbXHNcU10qPykkLyxxPS9eKFtc''@;'; + put 'put ''c1xTXSo/KSgoPzpcLnsxLDJ9fFteXFxcL10rP3wpKFwuW14uXC9cXF0qfCkpKD86W1xcXC9dKikkLyxKPXt9O2Z1bmN0aW9uIHNlKGtlKXt2YXIgU2U9ZWUuZXhlYyhrZSksSWU9KFNlWzFdfHwiIikrKFNlWzJdfHwiIiksRWU9cS5leGVjKFNlWzNdfHwiIik7cmV0dXJuW0llLEVlWzFdLEVl''@;'; + put 'put ''WzJdLEVlWzNdXX1mdW5jdGlvbiBvZShrZSl7dmFyIFNlPWVlLmV4ZWMoa2UpLEllPVNlWzFdfHwiIixUZT0hIUllJiYiOiIhPT1JZVsxXTtyZXR1cm57ZGV2aWNlOkllLGlzVW5jOlRlLGlzQWJzb2x1dGU6VGV8fCEhU2VbMl0sdGFpbDpTZVszXX19ZnVuY3Rpb24gY2Uoa2Upe3JldHVybiJc''@;'; + put 'put ''XFxcIitrZS5yZXBsYWNlKC9eW1xcXC9dKy8sIiIpLnJlcGxhY2UoL1tcXFwvXSsvZywiXFwiKX1KLnJlc29sdmU9ZnVuY3Rpb24oKXtmb3IodmFyIGtlPSIiLFNlPSIiLEllPSExLFRlPWFyZ3VtZW50cy5sZW5ndGgtMTtUZT49LTE7VGUtLSl7dmFyIEVlO2lmKFRlPj0wP0VlPWFyZ3VtZW50''@;'; + put 'put ''c1tUZV06a2U/KEVlPWllLmVudlsiPSIra2VdKSYmRWUuc3Vic3RyKDAsMykudG9Mb3dlckNhc2UoKT09PWtlLnRvTG93ZXJDYXNlKCkrIlxcInx8KEVlPWtlKyJcXCIpOkVlPWllLmN3ZCgpLCFZLmlzU3RyaW5nKEVlKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJBcmd1bWVudHMgdG8gcGF0aC5y''@;'; + put 'put ''ZXNvbHZlIG11c3QgYmUgc3RyaW5ncyIpO2lmKEVlKXt2YXIgaGU9b2UoRWUpLE89aGUuZGV2aWNlLHo9aGUuaXNVbmMsbmU9aGUuaXNBYnNvbHV0ZSx0ZT1oZS50YWlsO2lmKCghT3x8IWtlfHxPLnRvTG93ZXJDYXNlKCk9PT1rZS50b0xvd2VyQ2FzZSgpKSYmKGtlfHwoa2U9TyksSWV8fChT''@;'; + put 'put ''ZT10ZSsiXFwiK1NlLEllPW5lKSxrZSYmSWUpKWJyZWFrfX1yZXR1cm4geiYmKGtlPWNlKGtlKSksa2UrKEllPyJcXCI6IiIpKyhTZT1XKFNlLnNwbGl0KC9bXFxcL10rLyksIUllKS5qb2luKCJcXCIpKXx8Ii4ifSxKLm5vcm1hbGl6ZT1mdW5jdGlvbihrZSl7dmFyIFNlPW9lKGtlKSxJZT1T''@;'; + put 'put ''ZS5kZXZpY2UsVGU9U2UuaXNVbmMsRWU9U2UuaXNBYnNvbHV0ZSxoZT1TZS50YWlsLE89L1tcXFwvXSQvLnRlc3QoaGUpO3JldHVybihoZT1XKGhlLnNwbGl0KC9bXFxcL10rLyksIUVlKS5qb2luKCJcXCIpKXx8RWV8fChoZT0iLiIpLGhlJiZPJiYoaGUrPSJcXCIpLFRlJiYoSWU9Y2UoSWUp''@;'; + put 'put ''KSxJZSsoRWU/IlxcIjoiIikraGV9LEouaXNBYnNvbHV0ZT1mdW5jdGlvbihrZSl7cmV0dXJuIG9lKGtlKS5pc0Fic29sdXRlfSxKLmpvaW49ZnVuY3Rpb24oKXtmb3IodmFyIGtlPVtdLFNlPTA7U2U8YXJndW1lbnRzLmxlbmd0aDtTZSsrKXt2YXIgSWU9YXJndW1lbnRzW1NlXTtpZighWS5p''@;'; + put 'put ''c1N0cmluZyhJZSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQXJndW1lbnRzIHRvIHBhdGguam9pbiBtdXN0IGJlIHN0cmluZ3MiKTtJZSYma2UucHVzaChJZSl9dmFyIFRlPWtlLmpvaW4oIlxcIik7cmV0dXJuL15bXFxcL117Mn1bXlxcXC9dLy50ZXN0KGtlWzBdKXx8KFRlPVRlLnJlcGxhY2Uo''@;'; + put 'put ''L15bXFxcL117Mix9LywiXFwiKSksSi5ub3JtYWxpemUoVGUpfSxKLnJlbGF0aXZlPWZ1bmN0aW9uKGtlLFNlKXtrZT1KLnJlc29sdmUoa2UpLFNlPUoucmVzb2x2ZShTZSk7Zm9yKHZhciBJZT1rZS50b0xvd2VyQ2FzZSgpLFRlPVNlLnRvTG93ZXJDYXNlKCksRWU9TihTZS5zcGxpdCgiXFwi''@;'; + put 'put ''KSksaGU9TihJZS5zcGxpdCgiXFwiKSksTz1OKFRlLnNwbGl0KCJcXCIpKSx6PU1hdGgubWluKGhlLmxlbmd0aCxPLmxlbmd0aCksbmU9eix0ZT0wO3RlPHo7dGUrKylpZihoZVt0ZV0hPT1PW3RlXSl7bmU9dGU7YnJlYWt9aWYoMD09bmUpcmV0dXJuIFNlO3ZhciB4PVtdO2Zvcih0ZT1uZTt0''@;'; + put 'put ''ZTxoZS5sZW5ndGg7dGUrKyl4LnB1c2goIi4uIik7cmV0dXJuKHg9eC5jb25jYXQoRWUuc2xpY2UobmUpKSkuam9pbigiXFwiKX0sSi5fbWFrZUxvbmc9ZnVuY3Rpb24oa2Upe2lmKCFZLmlzU3RyaW5nKGtlKSlyZXR1cm4ga2U7aWYoIWtlKXJldHVybiIiO3ZhciBTZT1KLnJlc29sdmUoa2Up''@;'; + put 'put ''O3JldHVybi9eW2EtekEtWl1cOlxcLy50ZXN0KFNlKT8iXFxcXD9cXCIrU2U6L15cXFxcW14/Ll0vLnRlc3QoU2UpPyJcXFxcP1xcVU5DXFwiK1NlLnN1YnN0cmluZygyKTprZX0sSi5kaXJuYW1lPWZ1bmN0aW9uKGtlKXt2YXIgU2U9c2Uoa2UpLEllPVNlWzBdLFRlPVNlWzFdO3JldHVybiBJ''@;'; + put 'put ''ZXx8VGU/KFRlJiYoVGU9VGUuc3Vic3RyKDAsVGUubGVuZ3RoLTEpKSxJZStUZSk6Ii4ifSxKLmJhc2VuYW1lPWZ1bmN0aW9uKGtlLFNlKXt2YXIgSWU9c2Uoa2UpWzJdO3JldHVybiBTZSYmSWUuc3Vic3RyKC0xKlNlLmxlbmd0aCk9PT1TZSYmKEllPUllLnN1YnN0cigwLEllLmxlbmd0aC1T''@;'; + put 'put ''ZS5sZW5ndGgpKSxJZX0sSi5leHRuYW1lPWZ1bmN0aW9uKGtlKXtyZXR1cm4gc2Uoa2UpWzNdfSxKLmZvcm1hdD1mdW5jdGlvbihrZSl7aWYoIVkuaXNPYmplY3Qoa2UpKXRocm93IG5ldyBUeXBlRXJyb3IoIlBhcmFtZXRlciAncGF0aE9iamVjdCcgbXVzdCBiZSBhbiBvYmplY3QsIG5vdCAi''@;'; + put 'put ''K3R5cGVvZiBrZSk7aWYoIVkuaXNTdHJpbmcoa2Uucm9vdHx8IiIpKXRocm93IG5ldyBUeXBlRXJyb3IoIidwYXRoT2JqZWN0LnJvb3QnIG11c3QgYmUgYSBzdHJpbmcgb3IgdW5kZWZpbmVkLCBub3QgIit0eXBlb2Yga2Uucm9vdCk7dmFyIEllPWtlLmRpcixUZT1rZS5iYXNlfHwiIjtyZXR1''@;'; + put 'put ''cm4gSWU/SWVbSWUubGVuZ3RoLTFdPT09Si5zZXA/SWUrVGU6SWUrSi5zZXArVGU6VGV9LEoucGFyc2U9ZnVuY3Rpb24oa2Upe2lmKCFZLmlzU3RyaW5nKGtlKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJQYXJhbWV0ZXIgJ3BhdGhTdHJpbmcnIG11c3QgYmUgYSBzdHJpbmcsIG5vdCAiK3R5cGVv''@;'; + put 'put ''ZiBrZSk7dmFyIFNlPXNlKGtlKTtpZighU2V8fDQhPT1TZS5sZW5ndGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBwYXRoICciK2tlKyInIik7cmV0dXJue3Jvb3Q6U2VbMF0sZGlyOlNlWzBdK1NlWzFdLnNsaWNlKDAsLTEpLGJhc2U6U2VbMl0sZXh0OlNlWzNdLG5hbWU6U2VbMl0u''@;'; + put 'put ''c2xpY2UoMCxTZVsyXS5sZW5ndGgtU2VbM10ubGVuZ3RoKX19LEouc2VwPSJcXCIsSi5kZWxpbWl0ZXI9IjsiO3ZhciBkZT0vXihcLz98KShbXHNcU10qPykoKD86XC57MSwyfXxbXlwvXSs/fCkoXC5bXi5cL10qfCkpKD86W1wvXSopJC8sdmU9e307ZnVuY3Rpb24gQWUoa2Upe3JldHVybiBk''@;'; + put 'put ''ZS5leGVjKGtlKS5zbGljZSgxKX12ZS5yZXNvbHZlPWZ1bmN0aW9uKCl7Zm9yKHZhciBrZT0iIixTZT0hMSxJZT1hcmd1bWVudHMubGVuZ3RoLTE7SWU+PS0xJiYhU2U7SWUtLSl7dmFyIFRlPUllPj0wP2FyZ3VtZW50c1tJZV06aWUuY3dkKCk7aWYoIVkuaXNTdHJpbmcoVGUpKXRocm93IG5l''@;'; + put 'put ''dyBUeXBlRXJyb3IoIkFyZ3VtZW50cyB0byBwYXRoLnJlc29sdmUgbXVzdCBiZSBzdHJpbmdzIik7VGUmJihrZT1UZSsiLyIra2UsU2U9Ii8iPT09VGVbMF0pfXJldHVybihTZT8iLyI6IiIpKyhrZT1XKGtlLnNwbGl0KCIvIiksIVNlKS5qb2luKCIvIikpfHwiLiJ9LHZlLm5vcm1hbGl6ZT1m''@;'; + put 'put ''dW5jdGlvbihrZSl7dmFyIFNlPXZlLmlzQWJzb2x1dGUoa2UpLEllPWtlJiYiLyI9PT1rZVtrZS5sZW5ndGgtMV07cmV0dXJuKGtlPVcoa2Uuc3BsaXQoIi8iKSwhU2UpLmpvaW4oIi8iKSl8fFNlfHwoa2U9Ii4iKSxrZSYmSWUmJihrZSs9Ii8iKSwoU2U/Ii8iOiIiKStrZX0sdmUuaXNBYnNv''@;'; + put 'put ''bHV0ZT1mdW5jdGlvbihrZSl7cmV0dXJuIi8iPT09a2UuY2hhckF0KDApfSx2ZS5qb2luPWZ1bmN0aW9uKCl7Zm9yKHZhciBrZT0iIixTZT0wO1NlPGFyZ3VtZW50cy5sZW5ndGg7U2UrKyl7dmFyIEllPWFyZ3VtZW50c1tTZV07aWYoIVkuaXNTdHJpbmcoSWUpKXRocm93IG5ldyBUeXBlRXJy''@;'; + put 'put ''b3IoIkFyZ3VtZW50cyB0byBwYXRoLmpvaW4gbXVzdCBiZSBzdHJpbmdzIik7SWUmJihrZSs9a2U/Ii8iK0llOkllKX1yZXR1cm4gdmUubm9ybWFsaXplKGtlKX0sdmUucmVsYXRpdmU9ZnVuY3Rpb24oa2UsU2Upe2tlPXZlLnJlc29sdmUoa2UpLnN1YnN0cigxKSxTZT12ZS5yZXNvbHZlKFNl''@;'; + put 'put ''KS5zdWJzdHIoMSk7Zm9yKHZhciBJZT1OKGtlLnNwbGl0KCIvIikpLFRlPU4oU2Uuc3BsaXQoIi8iKSksRWU9TWF0aC5taW4oSWUubGVuZ3RoLFRlLmxlbmd0aCksaGU9RWUsTz0wO088RWU7TysrKWlmKEllW09dIT09VGVbT10pe2hlPU87YnJlYWt9dmFyIHo9W107Zm9yKE89aGU7TzxJZS5s''@;'; + put 'put ''ZW5ndGg7TysrKXoucHVzaCgiLi4iKTtyZXR1cm4oej16LmNvbmNhdChUZS5zbGljZShoZSkpKS5qb2luKCIvIil9LHZlLl9tYWtlTG9uZz1mdW5jdGlvbihrZSl7cmV0dXJuIGtlfSx2ZS5kaXJuYW1lPWZ1bmN0aW9uKGtlKXt2YXIgU2U9QWUoa2UpLEllPVNlWzBdLFRlPVNlWzFdO3JldHVy''@;'; + put 'put ''biBJZXx8VGU/KFRlJiYoVGU9VGUuc3Vic3RyKDAsVGUubGVuZ3RoLTEpKSxJZStUZSk6Ii4ifSx2ZS5iYXNlbmFtZT1mdW5jdGlvbihrZSxTZSl7dmFyIEllPUFlKGtlKVsyXTtyZXR1cm4gU2UmJkllLnN1YnN0cigtMSpTZS5sZW5ndGgpPT09U2UmJihJZT1JZS5zdWJzdHIoMCxJZS5sZW5n''@;'; + put 'put ''dGgtU2UubGVuZ3RoKSksSWV9LHZlLmV4dG5hbWU9ZnVuY3Rpb24oa2Upe3JldHVybiBBZShrZSlbM119LHZlLmZvcm1hdD1mdW5jdGlvbihrZSl7aWYoIVkuaXNPYmplY3Qoa2UpKXRocm93IG5ldyBUeXBlRXJyb3IoIlBhcmFtZXRlciAncGF0aE9iamVjdCcgbXVzdCBiZSBhbiBvYmplY3Qs''@;'; + put 'put ''IG5vdCAiK3R5cGVvZiBrZSk7aWYoIVkuaXNTdHJpbmcoa2Uucm9vdHx8IiIpKXRocm93IG5ldyBUeXBlRXJyb3IoIidwYXRoT2JqZWN0LnJvb3QnIG11c3QgYmUgYSBzdHJpbmcgb3IgdW5kZWZpbmVkLCBub3QgIit0eXBlb2Yga2Uucm9vdCk7cmV0dXJuKGtlLmRpcj9rZS5kaXIrdmUuc2Vw''@;'; + put 'put ''OiIiKSsoa2UuYmFzZXx8IiIpfSx2ZS5wYXJzZT1mdW5jdGlvbihrZSl7aWYoIVkuaXNTdHJpbmcoa2UpKXRocm93IG5ldyBUeXBlRXJyb3IoIlBhcmFtZXRlciAncGF0aFN0cmluZycgbXVzdCBiZSBhIHN0cmluZywgbm90ICIrdHlwZW9mIGtlKTt2YXIgU2U9QWUoa2UpO2lmKCFTZXx8NCE9''@;'; + put 'put ''PVNlLmxlbmd0aCl0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIHBhdGggJyIra2UrIiciKTtyZXR1cm4gU2VbMV09U2VbMV18fCIiLFNlWzJdPVNlWzJdfHwiIixTZVszXT1TZVszXXx8IiIse3Jvb3Q6U2VbMF0sZGlyOlNlWzBdK1NlWzFdLnNsaWNlKDAsLTEpLGJhc2U6U2VbMl0sZXh0''@;'; + put 'put ''OlNlWzNdLG5hbWU6U2VbMl0uc2xpY2UoMCxTZVsyXS5sZW5ndGgtU2VbM10ubGVuZ3RoKX19LHZlLnNlcD0iLyIsdmUuZGVsaW1pdGVyPSI6IixVLmV4cG9ydHM9YWU/Sjp2ZSxVLmV4cG9ydHMucG9zaXg9dmUsVS5leHBvcnRzLndpbjMyPUp9LDU2MzI6KFUsUSxaKT0+e1EucGJrZGYyPVoo''@;'; + put 'put ''ODYzOCksUS5wYmtkZjJTeW5jPVooMTI1Nyl9LDg2Mzg6KFUsUSxaKT0+e3ZhciBpZSxhZSxZPVooOTUwOSkuQnVmZmVyLFc9Wig3MzU3KSxOPVooMjM2OCksZWU9WigxMjU3KSxxPVooNzc3NyksSj1aLmcuY3J5cHRvJiZaLmcuY3J5cHRvLnN1YnRsZSxzZT17c2hhOiJTSEEtMSIsInNoYS0x''@;'; + put 'put ''IjoiU0hBLTEiLHNoYTE6IlNIQS0xIixzaGEyNTY6IlNIQS0yNTYiLCJzaGEtMjU2IjoiU0hBLTI1NiIsc2hhMzg0OiJTSEEtMzg0Iiwic2hhLTM4NCI6IlNIQS0zODQiLCJzaGEtNTEyIjoiU0hBLTUxMiIsc2hhNTEyOiJTSEEtNTEyIn0sb2U9W107ZnVuY3Rpb24gY2UoKXtyZXR1cm4gYWV8''@;'; + put 'put ''fChhZT1aLmcucHJvY2VzcyYmWi5nLnByb2Nlc3MubmV4dFRpY2s/Wi5nLnByb2Nlc3MubmV4dFRpY2s6Wi5nLnF1ZXVlTWljcm90YXNrP1ouZy5xdWV1ZU1pY3JvdGFzazpaLmcuc2V0SW1tZWRpYXRlP1ouZy5zZXRJbW1lZGlhdGU6Wi5nLnNldFRpbWVvdXQpfWZ1bmN0aW9uIGRlKHZlLEFl''@;'; + put 'put ''LGtlLFNlLEllKXtyZXR1cm4gSi5pbXBvcnRLZXkoInJhdyIsdmUse25hbWU6IlBCS0RGMiJ9LCExLFsiZGVyaXZlQml0cyJdKS50aGVuKGZ1bmN0aW9uKFRlKXtyZXR1cm4gSi5kZXJpdmVCaXRzKHtuYW1lOiJQQktERjIiLHNhbHQ6QWUsaXRlcmF0aW9uczprZSxoYXNoOntuYW1lOkllfX0s''@;'; + put 'put ''VGUsU2U8PDMpfSkudGhlbihmdW5jdGlvbihUZSl7cmV0dXJuIFkuZnJvbShUZSl9KX1VLmV4cG9ydHM9ZnVuY3Rpb24odmUsQWUsa2UsU2UsSWUsVGUpeyJmdW5jdGlvbiI9PXR5cGVvZiBJZSYmKFRlPUllLEllPXZvaWQgMCk7dmFyIGhlLE8sRWU9c2VbKEllPUllfHwic2hhMSIpLnRvTG93''@;'; + put 'put ''ZXJDYXNlKCldO2lmKEVlJiYiZnVuY3Rpb24iPT10eXBlb2YgWi5nLlByb21pc2Upe2lmKFcoa2UsU2UpLHZlPXEodmUsTiwiUGFzc3dvcmQiKSxBZT1xKEFlLE4sIlNhbHQiKSwiZnVuY3Rpb24iIT10eXBlb2YgVGUpdGhyb3cgbmV3IEVycm9yKCJObyBjYWxsYmFjayBwcm92aWRlZCB0byBw''@;'; + put 'put ''YmtkZjIiKTtoZT1mdW5jdGlvbihoZSl7aWYoWi5nLnByb2Nlc3MmJiFaLmcucHJvY2Vzcy5icm93c2VyfHwhSnx8IUouaW1wb3J0S2V5fHwhSi5kZXJpdmVCaXRzKXJldHVybiBQcm9taXNlLnJlc29sdmUoITEpO2lmKHZvaWQgMCE9PW9lW2hlXSlyZXR1cm4gb2VbaGVdO3ZhciBPPWRlKGll''@;'; + put 'put ''PWllfHxZLmFsbG9jKDgpLGllLDEwLDEyOCxoZSkudGhlbihmdW5jdGlvbigpe3JldHVybiEwfSkuY2F0Y2goZnVuY3Rpb24oKXtyZXR1cm4hMX0pO3JldHVybiBvZVtoZV09TyxPfShFZSkudGhlbihmdW5jdGlvbihoZSl7cmV0dXJuIGhlP2RlKHZlLEFlLGtlLFNlLEVlKTplZSh2ZSxBZSxr''@;'; + put 'put ''ZSxTZSxJZSl9KSxPPVRlLGhlLnRoZW4oZnVuY3Rpb24oeil7Y2UoKShmdW5jdGlvbigpe08obnVsbCx6KX0pfSxmdW5jdGlvbih6KXtjZSgpKGZ1bmN0aW9uKCl7Tyh6KX0pfSl9ZWxzZSBjZSgpKGZ1bmN0aW9uKCl7dmFyIGhlO3RyeXtoZT1lZSh2ZSxBZSxrZSxTZSxJZSl9Y2F0Y2goTyl7''@;'; + put 'put ''cmV0dXJuIFRlKE8pfVRlKG51bGwsaGUpfSl9fSwyMzY4OihVLFEsWik9Pnt2YXIgaWUsYWU9Wig0MTU1KTtpZT1aLmcucHJvY2VzcyYmWi5nLnByb2Nlc3MuYnJvd3Nlcj8idXRmLTgiOlouZy5wcm9jZXNzJiZaLmcucHJvY2Vzcy52ZXJzaW9uP3BhcnNlSW50KGFlLnZlcnNpb24uc3BsaXQo''@;'; + put 'put ''Ii4iKVswXS5zbGljZSgxKSwxMCk+PTY/InV0Zi04IjoiYmluYXJ5IjoidXRmLTgiLFUuZXhwb3J0cz1pZX0sNzM1NzpVPT57dmFyIFE9TWF0aC5wb3coMiwzMCktMTtVLmV4cG9ydHM9ZnVuY3Rpb24oWixpZSl7aWYoIm51bWJlciIhPXR5cGVvZiBaKXRocm93IG5ldyBUeXBlRXJyb3IoIkl0''@;'; + put 'put ''ZXJhdGlvbnMgbm90IGEgbnVtYmVyIik7aWYoWjwwKXRocm93IG5ldyBUeXBlRXJyb3IoIkJhZCBpdGVyYXRpb25zIik7aWYoIm51bWJlciIhPXR5cGVvZiBpZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJLZXkgbGVuZ3RoIG5vdCBhIG51bWJlciIpO2lmKGllPDB8fGllPlF8fGllIT1pZSl0aHJv''@;'; + put 'put ''dyBuZXcgVHlwZUVycm9yKCJCYWQga2V5IGxlbmd0aCIpfX0sMTI1NzooVSxRLFopPT57dmFyIGllPVooODAyOCksYWU9Wig5Nzg1KSxZPVooOTA3MiksVz1aKDk1MDkpLkJ1ZmZlcixOPVooNzM1NyksZWU9WigyMzY4KSxxPVooNzc3NyksSj1XLmFsbG9jKDEyOCksc2U9e21kNToxNixzaGEx''@;'; + put 'put ''OjIwLHNoYTIyNDoyOCxzaGEyNTY6MzIsc2hhMzg0OjQ4LHNoYTUxMjo2NCxybWQxNjA6MjAscmlwZW1kMTYwOjIwfTtmdW5jdGlvbiBvZShjZSxkZSx2ZSl7dmFyIGhlLEFlPSJybWQxNjAiPT09KGhlPWNlKXx8InJpcGVtZDE2MCI9PT1oZT9mdW5jdGlvbiB6KG5lKXtyZXR1cm4obmV3IGFl''@;'; + put 'put ''KS51cGRhdGUobmUpLmRpZ2VzdCgpfToibWQ1Ij09PWhlP2llOmZ1bmN0aW9uIE8obmUpe3JldHVybiBZKGhlKS51cGRhdGUobmUpLmRpZ2VzdCgpfSxrZT0ic2hhNTEyIj09PWNlfHwic2hhMzg0Ij09PWNlPzEyODo2NDtkZS5sZW5ndGg+a2U/ZGU9QWUoZGUpOmRlLmxlbmd0aDxrZSYmKGRl''@;'; + put 'put ''PVcuY29uY2F0KFtkZSxKXSxrZSkpO2Zvcih2YXIgU2U9Vy5hbGxvY1Vuc2FmZShrZStzZVtjZV0pLEllPVcuYWxsb2NVbnNhZmUoa2Urc2VbY2VdKSxUZT0wO1RlPGtlO1RlKyspU2VbVGVdPTU0XmRlW1RlXSxJZVtUZV09OTJeZGVbVGVdO3ZhciBFZT1XLmFsbG9jVW5zYWZlKGtlK3ZlKzQp''@;'; + put 'put ''O1NlLmNvcHkoRWUsMCwwLGtlKSx0aGlzLmlwYWQxPUVlLHRoaXMuaXBhZDI9U2UsdGhpcy5vcGFkPUllLHRoaXMuYWxnPWNlLHRoaXMuYmxvY2tzaXplPWtlLHRoaXMuaGFzaD1BZSx0aGlzLnNpemU9c2VbY2VdfW9lLnByb3RvdHlwZS5ydW49ZnVuY3Rpb24oY2UsZGUpe3JldHVybiBjZS5j''@;'; + put 'put ''b3B5KGRlLHRoaXMuYmxvY2tzaXplKSx0aGlzLmhhc2goZGUpLmNvcHkodGhpcy5vcGFkLHRoaXMuYmxvY2tzaXplKSx0aGlzLmhhc2godGhpcy5vcGFkKX0sVS5leHBvcnRzPWZ1bmN0aW9uKGNlLGRlLHZlLEFlLGtlKXtOKHZlLEFlKTt2YXIgU2U9bmV3IG9lKGtlPWtlfHwic2hhMSIsY2U9''@;'; + put 'put ''cShjZSxlZSwiUGFzc3dvcmQiKSwoZGU9cShkZSxlZSwiU2FsdCIpKS5sZW5ndGgpLEllPVcuYWxsb2NVbnNhZmUoQWUpLFRlPVcuYWxsb2NVbnNhZmUoZGUubGVuZ3RoKzQpO2RlLmNvcHkoVGUsMCwwLGRlLmxlbmd0aCk7Zm9yKHZhciBFZT0wLGhlPXNlW2tlXSxPPU1hdGguY2VpbChBZS9o''@;'; + put 'put ''ZSksej0xO3o8PU87eisrKXtUZS53cml0ZVVJbnQzMkJFKHosZGUubGVuZ3RoKTtmb3IodmFyIG5lPVNlLnJ1bihUZSxTZS5pcGFkMSksdGU9bmUseD0xO3g8dmU7eCsrKXt0ZT1TZS5ydW4odGUsU2UuaXBhZDIpO2Zvcih2YXIgUD0wO1A8aGU7UCsrKW5lW1BdXj10ZVtQXX1uZS5jb3B5KEll''@;'; + put 'put ''LEVlKSxFZSs9aGV9cmV0dXJuIEllfX0sNzc3NzooVSxRLFopPT57dmFyIGllPVooOTUwOSkuQnVmZmVyO1UuZXhwb3J0cz1mdW5jdGlvbihhZSxZLFcpe2lmKGllLmlzQnVmZmVyKGFlKSlyZXR1cm4gYWU7aWYoInN0cmluZyI9PXR5cGVvZiBhZSlyZXR1cm4gaWUuZnJvbShhZSxZKTtpZihB''@;'; + put 'put ''cnJheUJ1ZmZlci5pc1ZpZXcoYWUpKXJldHVybiBpZS5mcm9tKGFlLmJ1ZmZlcik7dGhyb3cgbmV3IFR5cGVFcnJvcihXKyIgbXVzdCBiZSBhIHN0cmluZywgYSBCdWZmZXIsIGEgdHlwZWQgYXJyYXkgb3IgYSBEYXRhVmlldyIpfX0sNDE1NTpVPT57dmFyIFEsWixpZT1VLmV4cG9ydHM9e307''@;'; + put 'put ''ZnVuY3Rpb24gYWUoKXt0aHJvdyBuZXcgRXJyb3IoInNldFRpbWVvdXQgaGFzIG5vdCBiZWVuIGRlZmluZWQiKX1mdW5jdGlvbiBZKCl7dGhyb3cgbmV3IEVycm9yKCJjbGVhclRpbWVvdXQgaGFzIG5vdCBiZWVuIGRlZmluZWQiKX1mdW5jdGlvbiBXKHZlKXtpZihRPT09c2V0VGltZW91dCly''@;'; + put 'put ''ZXR1cm4gc2V0VGltZW91dCh2ZSwwKTtpZigoUT09PWFlfHwhUSkmJnNldFRpbWVvdXQpcmV0dXJuIFE9c2V0VGltZW91dCxzZXRUaW1lb3V0KHZlLDApO3RyeXtyZXR1cm4gUSh2ZSwwKX1jYXRjaChBZSl7dHJ5e3JldHVybiBRLmNhbGwobnVsbCx2ZSwwKX1jYXRjaChrZSl7cmV0dXJuIFEu''@;'; + put 'put ''Y2FsbCh0aGlzLHZlLDApfX19IWZ1bmN0aW9uKCl7dHJ5e1E9ImZ1bmN0aW9uIj09dHlwZW9mIHNldFRpbWVvdXQ/c2V0VGltZW91dDphZX1jYXRjaCh2ZSl7UT1hZX10cnl7Wj0iZnVuY3Rpb24iPT10eXBlb2YgY2xlYXJUaW1lb3V0P2NsZWFyVGltZW91dDpZfWNhdGNoKHZlKXtaPVl9fSgp''@;'; + put 'put ''O3ZhciBOLGVlPVtdLHE9ITEsSj0tMTtmdW5jdGlvbiBzZSgpe3EmJk4mJihxPSExLE4ubGVuZ3RoP2VlPU4uY29uY2F0KGVlKTpKPS0xLGVlLmxlbmd0aCYmb2UoKSl9ZnVuY3Rpb24gb2UoKXtpZighcSl7dmFyIHZlPVcoc2UpO3E9ITA7Zm9yKHZhciBBZT1lZS5sZW5ndGg7QWU7KXtmb3Io''@;'; + put 'put ''Tj1lZSxlZT1bXTsrK0o8QWU7KU4mJk5bSl0ucnVuKCk7Sj0tMSxBZT1lZS5sZW5ndGh9Tj1udWxsLHE9ITEsZnVuY3Rpb24oa2Upe2lmKFo9PT1jbGVhclRpbWVvdXQpcmV0dXJuIGNsZWFyVGltZW91dChrZSk7aWYoKFo9PT1ZfHwhWikmJmNsZWFyVGltZW91dClyZXR1cm4gWj1jbGVhclRp''@;'; + put 'put ''bWVvdXQsY2xlYXJUaW1lb3V0KGtlKTt0cnl7WihrZSl9Y2F0Y2goU2Upe3RyeXtyZXR1cm4gWi5jYWxsKG51bGwsa2UpfWNhdGNoKEllKXtyZXR1cm4gWi5jYWxsKHRoaXMsa2UpfX19KHZlKX19ZnVuY3Rpb24gY2UodmUsQWUpe3RoaXMuZnVuPXZlLHRoaXMuYXJyYXk9QWV9ZnVuY3Rpb24g''@;'; + put 'put ''ZGUoKXt9aWUubmV4dFRpY2s9ZnVuY3Rpb24odmUpe3ZhciBBZT1uZXcgQXJyYXkoYXJndW1lbnRzLmxlbmd0aC0xKTtpZihhcmd1bWVudHMubGVuZ3RoPjEpZm9yKHZhciBrZT0xO2tlPGFyZ3VtZW50cy5sZW5ndGg7a2UrKylBZVtrZS0xXT1hcmd1bWVudHNba2VdO2VlLnB1c2gobmV3IGNl''@;'; + put 'put ''KHZlLEFlKSksMSE9PWVlLmxlbmd0aHx8cXx8VyhvZSl9LGNlLnByb3RvdHlwZS5ydW49ZnVuY3Rpb24oKXt0aGlzLmZ1bi5hcHBseShudWxsLHRoaXMuYXJyYXkpfSxpZS50aXRsZT0iYnJvd3NlciIsaWUuYnJvd3Nlcj0hMCxpZS5lbnY9e30saWUuYXJndj1bXSxpZS52ZXJzaW9uPSIiLGll''@;'; + put 'put ''LnZlcnNpb25zPXt9LGllLm9uPWRlLGllLmFkZExpc3RlbmVyPWRlLGllLm9uY2U9ZGUsaWUub2ZmPWRlLGllLnJlbW92ZUxpc3RlbmVyPWRlLGllLnJlbW92ZUFsbExpc3RlbmVycz1kZSxpZS5lbWl0PWRlLGllLnByZXBlbmRMaXN0ZW5lcj1kZSxpZS5wcmVwZW5kT25jZUxpc3RlbmVyPWRl''@;'; + put 'put ''LGllLmxpc3RlbmVycz1mdW5jdGlvbih2ZSl7cmV0dXJuW119LGllLmJpbmRpbmc9ZnVuY3Rpb24odmUpe3Rocm93IG5ldyBFcnJvcigicHJvY2Vzcy5iaW5kaW5nIGlzIG5vdCBzdXBwb3J0ZWQiKX0saWUuY3dkPWZ1bmN0aW9uKCl7cmV0dXJuIi8ifSxpZS5jaGRpcj1mdW5jdGlvbih2ZSl7''@;'; + put 'put ''dGhyb3cgbmV3IEVycm9yKCJwcm9jZXNzLmNoZGlyIGlzIG5vdCBzdXBwb3J0ZWQiKX0saWUudW1hc2s9ZnVuY3Rpb24oKXtyZXR1cm4gMH19LDYyNDQ6KFUsUSxaKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgaWU9WigzNjg5KSxhZT17fTthZS5ydWxlcz1aKDM3MDQpLm1hcChmdW5jdGlvbihZKXty''@;'; + put 'put ''ZXR1cm57cnVsZTpZLHN1ZmZpeDpZLnJlcGxhY2UoL14oXCpcLnxcISkvLCIiKSxwdW55U3VmZml4Oi0xLHdpbGRjYXJkOiIqIj09PVkuY2hhckF0KDApLGV4Y2VwdGlvbjoiISI9PT1ZLmNoYXJBdCgwKX19KSxhZS5lbmRzV2l0aD1mdW5jdGlvbihZLFcpe3JldHVybi0xIT09WS5pbmRleE9m''@;'; + put 'put ''KFcsWS5sZW5ndGgtVy5sZW5ndGgpfSxhZS5maW5kUnVsZT1mdW5jdGlvbihZKXt2YXIgVz1pZS50b0FTQ0lJKFkpO3JldHVybiBhZS5ydWxlcy5yZWR1Y2UoZnVuY3Rpb24oTixlZSl7cmV0dXJuLTE9PT1lZS5wdW55U3VmZml4JiYoZWUucHVueVN1ZmZpeD1pZS50b0FTQ0lJKGVlLnN1ZmZp''@;'; + put 'put ''eCkpLGFlLmVuZHNXaXRoKFcsIi4iK2VlLnB1bnlTdWZmaXgpfHxXPT09ZWUucHVueVN1ZmZpeD9lZTpOfSxudWxsKX0sUS5lcnJvckNvZGVzPXtET01BSU5fVE9PX1NIT1JUOiJEb21haW4gbmFtZSB0b28gc2hvcnQuIixET01BSU5fVE9PX0xPTkc6IkRvbWFpbiBuYW1lIHRvbyBsb25nLiBJ''@;'; + put 'put ''dCBzaG91bGQgYmUgbm8gbW9yZSB0aGFuIDI1NSBjaGFycy4iLExBQkVMX1NUQVJUU19XSVRIX0RBU0g6IkRvbWFpbiBuYW1lIGxhYmVsIGNhbiBub3Qgc3RhcnQgd2l0aCBhIGRhc2guIixMQUJFTF9FTkRTX1dJVEhfREFTSDoiRG9tYWluIG5hbWUgbGFiZWwgY2FuIG5vdCBlbmQgd2l0aCBh''@;'; + put 'put ''IGRhc2guIixMQUJFTF9UT09fTE9ORzoiRG9tYWluIG5hbWUgbGFiZWwgc2hvdWxkIGJlIGF0IG1vc3QgNjMgY2hhcnMgbG9uZy4iLExBQkVMX1RPT19TSE9SVDoiRG9tYWluIG5hbWUgbGFiZWwgc2hvdWxkIGJlIGF0IGxlYXN0IDEgY2hhcmFjdGVyIGxvbmcuIixMQUJFTF9JTlZBTElEX0NI''@;'; + put 'put ''QVJTOiJEb21haW4gbmFtZSBsYWJlbCBjYW4gb25seSBjb250YWluIGFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzIG9yIGRhc2hlcy4ifSxhZS52YWxpZGF0ZT1mdW5jdGlvbihZKXt2YXIgVz1pZS50b0FTQ0lJKFkpO2lmKFcubGVuZ3RoPDEpcmV0dXJuIkRPTUFJTl9UT09fU0hPUlQiO2lmKFcu''@;'; + put 'put ''bGVuZ3RoPjI1NSlyZXR1cm4iRE9NQUlOX1RPT19MT05HIjtmb3IodmFyIE4sZWU9Vy5zcGxpdCgiLiIpLHE9MDtxPGVlLmxlbmd0aDsrK3Epe2lmKCEoTj1lZVtxXSkubGVuZ3RoKXJldHVybiJMQUJFTF9UT09fU0hPUlQiO2lmKE4ubGVuZ3RoPjYzKXJldHVybiJMQUJFTF9UT09fTE9ORyI7''@;'; + put 'put ''aWYoIi0iPT09Ti5jaGFyQXQoMCkpcmV0dXJuIkxBQkVMX1NUQVJUU19XSVRIX0RBU0giO2lmKCItIj09PU4uY2hhckF0KE4ubGVuZ3RoLTEpKXJldHVybiJMQUJFTF9FTkRTX1dJVEhfREFTSCI7aWYoIS9eW2EtejAtOVwtXSskLy50ZXN0KE4pKXJldHVybiJMQUJFTF9JTlZBTElEX0NIQVJT''@;'; + put 'put ''In19LFEucGFyc2U9ZnVuY3Rpb24oWSl7aWYoInN0cmluZyIhPXR5cGVvZiBZKXRocm93IG5ldyBUeXBlRXJyb3IoIkRvbWFpbiBuYW1lIG11c3QgYmUgYSBzdHJpbmcuIik7dmFyIFc9WS5zbGljZSgwKS50b0xvd2VyQ2FzZSgpOyIuIj09PVcuY2hhckF0KFcubGVuZ3RoLTEpJiYoVz1XLnNs''@;'; + put 'put ''aWNlKDAsVy5sZW5ndGgtMSkpO3ZhciBOPWFlLnZhbGlkYXRlKFcpO2lmKE4pcmV0dXJue2lucHV0OlksZXJyb3I6e21lc3NhZ2U6US5lcnJvckNvZGVzW05dLGNvZGU6Tn19O3ZhciBlZT17aW5wdXQ6WSx0bGQ6bnVsbCxzbGQ6bnVsbCxkb21haW46bnVsbCxzdWJkb21haW46bnVsbCxsaXN0''@;'; + put 'put ''ZWQ6ITF9LHE9Vy5zcGxpdCgiLiIpO2lmKCJsb2NhbCI9PT1xW3EubGVuZ3RoLTFdKXJldHVybiBlZTt2YXIgSj1mdW5jdGlvbigpe3JldHVybi94bi0tLy50ZXN0KFcpJiYoZWUuZG9tYWluJiYoZWUuZG9tYWluPWllLnRvQVNDSUkoZWUuZG9tYWluKSksZWUuc3ViZG9tYWluJiYoZWUuc3Vi''@;'; + put 'put ''ZG9tYWluPWllLnRvQVNDSUkoZWUuc3ViZG9tYWluKSkpLGVlfSxzZT1hZS5maW5kUnVsZShXKTtpZighc2UpcmV0dXJuIHEubGVuZ3RoPDI/ZWU6KGVlLnRsZD1xLnBvcCgpLGVlLnNsZD1xLnBvcCgpLGVlLmRvbWFpbj1bZWUuc2xkLGVlLnRsZF0uam9pbigiLiIpLHEubGVuZ3RoJiYoZWUu''@;'; + put 'put ''c3ViZG9tYWluPXEucG9wKCkpLEooKSk7ZWUubGlzdGVkPSEwO3ZhciBvZT1zZS5zdWZmaXguc3BsaXQoIi4iKSxjZT1xLnNsaWNlKDAscS5sZW5ndGgtb2UubGVuZ3RoKTtyZXR1cm4gc2UuZXhjZXB0aW9uJiZjZS5wdXNoKG9lLnNoaWZ0KCkpLGVlLnRsZD1vZS5qb2luKCIuIiksY2UubGVu''@;'; + put 'put ''Z3RoPyhzZS53aWxkY2FyZCYmKG9lLnVuc2hpZnQoY2UucG9wKCkpLGVlLnRsZD1vZS5qb2luKCIuIikpLGNlLmxlbmd0aCYmKGVlLnNsZD1jZS5wb3AoKSxlZS5kb21haW49W2VlLnNsZCxlZS50bGRdLmpvaW4oIi4iKSxjZS5sZW5ndGgmJihlZS5zdWJkb21haW49Y2Uuam9pbigiLiIpKSks''@;'; + put 'put ''SigpKTpKKCl9LFEuZ2V0PWZ1bmN0aW9uKFkpe3JldHVybiBZJiZRLnBhcnNlKFkpLmRvbWFpbnx8bnVsbH0sUS5pc1ZhbGlkPWZ1bmN0aW9uKFkpe3ZhciBXPVEucGFyc2UoWSk7cmV0dXJuIEJvb2xlYW4oVy5kb21haW4mJlcubGlzdGVkKX19LDc5MDA6KFUsUSxaKT0+e1EucHVibGljRW5j''@;'; + put 'put ''cnlwdD1aKDY1NTkpLFEucHJpdmF0ZURlY3J5cHQ9Wig2MTM4KSxRLnByaXZhdGVFbmNyeXB0PWZ1bmN0aW9uKGllLGFlKXtyZXR1cm4gUS5wdWJsaWNFbmNyeXB0KGllLGFlLCEwKX0sUS5wdWJsaWNEZWNyeXB0PWZ1bmN0aW9uKGllLGFlKXtyZXR1cm4gUS5wcml2YXRlRGVjcnlwdChpZSxh''@;'; + put 'put ''ZSwhMCl9fSw5MTk5OihVLFEsWik9Pnt2YXIgaWU9WigzNDgyKSxhZT1aKDk1MDkpLkJ1ZmZlcjtmdW5jdGlvbiBZKFcpe3ZhciBOPWFlLmFsbG9jVW5zYWZlKDQpO3JldHVybiBOLndyaXRlVUludDMyQkUoVywwKSxOfVUuZXhwb3J0cz1mdW5jdGlvbihXLE4pe2Zvcih2YXIgZWUscT1hZS5h''@;'; + put 'put ''bGxvYygwKSxKPTA7cS5sZW5ndGg8TjspZWU9WShKKyspLHE9YWUuY29uY2F0KFtxLGllKCJzaGExIikudXBkYXRlKFcpLnVwZGF0ZShlZSkuZGlnZXN0KCldKTtyZXR1cm4gcS5zbGljZSgwLE4pfX0sMjE0NDpmdW5jdGlvbihVLFEsWil7IWZ1bmN0aW9uKGllLGFlKXsidXNlIHN0cmljdCI7''@;'; + put 'put ''ZnVuY3Rpb24gWSh4LFApe2lmKCF4KXRocm93IG5ldyBFcnJvcihQfHwiQXNzZXJ0aW9uIGZhaWxlZCIpfWZ1bmN0aW9uIFcoeCxQKXt4LnN1cGVyXz1QO3ZhciBWPWZ1bmN0aW9uKCl7fTtWLnByb3RvdHlwZT1QLnByb3RvdHlwZSx4LnByb3RvdHlwZT1uZXcgVix4LnByb3RvdHlwZS5jb25z''@;'; + put 'put ''dHJ1Y3Rvcj14fWZ1bmN0aW9uIE4oeCxQLFYpe2lmKE4uaXNCTih4KSlyZXR1cm4geDt0aGlzLm5lZ2F0aXZlPTAsdGhpcy53b3Jkcz1udWxsLHRoaXMubGVuZ3RoPTAsdGhpcy5yZWQ9bnVsbCxudWxsIT09eCYmKCJsZSIhPT1QJiYiYmUiIT09UHx8KFY9UCxQPTEwKSx0aGlzLl9pbml0KHh8''@;'; + put 'put ''fDAsUHx8MTAsVnx8ImJlIikpfXZhciBlZTsib2JqZWN0Ij09dHlwZW9mIGllP2llLmV4cG9ydHM9TjphZS5CTj1OLE4uQk49TixOLndvcmRTaXplPTI2O3RyeXtlZT0idW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyYmdm9pZCAwIT09d2luZG93LkJ1ZmZlcj93aW5kb3cuQnVmZmVyOlooNzEw''@;'; + put 'put ''OCkuQnVmZmVyfWNhdGNoKHgpe31mdW5jdGlvbiBxKHgsUCl7dmFyIFY9eC5jaGFyQ29kZUF0KFApO3JldHVybiBWPj02NSYmVjw9NzA/Vi01NTpWPj05NyYmVjw9MTAyP1YtODc6Vi00OCYxNX1mdW5jdGlvbiBKKHgsUCxWKXt2YXIgVD1xKHgsVik7cmV0dXJuIFYtMT49UCYmKFR8PXEoeCxW''@;'; + put 'put ''LTEpPDw0KSxUfWZ1bmN0aW9uIHNlKHgsUCxWLFQpe2Zvcih2YXIgUz0wLEY9TWF0aC5taW4oeC5sZW5ndGgsVikseWU9UDt5ZTxGO3llKyspe3ZhciBDZT14LmNoYXJDb2RlQXQoeWUpLTQ4O1MqPVQsUys9Q2U+PTQ5P0NlLTQ5KzEwOkNlPj0xNz9DZS0xNysxMDpDZX1yZXR1cm4gU31OLmlz''@;'; + put 'put ''Qk49ZnVuY3Rpb24oeCl7cmV0dXJuIHggaW5zdGFuY2VvZiBOfHxudWxsIT09eCYmIm9iamVjdCI9PXR5cGVvZiB4JiZ4LmNvbnN0cnVjdG9yLndvcmRTaXplPT09Ti53b3JkU2l6ZSYmQXJyYXkuaXNBcnJheSh4LndvcmRzKX0sTi5tYXg9ZnVuY3Rpb24oeCxQKXtyZXR1cm4geC5jbXAoUCk+''@;'; + put 'put ''MD94OlB9LE4ubWluPWZ1bmN0aW9uKHgsUCl7cmV0dXJuIHguY21wKFApPDA/eDpQfSxOLnByb3RvdHlwZS5faW5pdD1mdW5jdGlvbih4LFAsVil7aWYoIm51bWJlciI9PXR5cGVvZiB4KXJldHVybiB0aGlzLl9pbml0TnVtYmVyKHgsUCxWKTtpZigib2JqZWN0Ij09dHlwZW9mIHgpcmV0dXJu''@;'; + put 'put ''IHRoaXMuX2luaXRBcnJheSh4LFAsVik7ImhleCI9PT1QJiYoUD0xNiksWShQPT09KDB8UCkmJlA+PTImJlA8PTM2KTt2YXIgVD0wOyItIj09PSh4PXgudG9TdHJpbmcoKS5yZXBsYWNlKC9ccysvZywiIikpWzBdJiYoVCsrLHRoaXMubmVnYXRpdmU9MSksVDx4Lmxlbmd0aCYmKDE2PT09UD90''@;'; + put 'put ''aGlzLl9wYXJzZUhleCh4LFQsVik6KHRoaXMuX3BhcnNlQmFzZSh4LFAsVCksImxlIj09PVYmJnRoaXMuX2luaXRBcnJheSh0aGlzLnRvQXJyYXkoKSxQLFYpKSl9LE4ucHJvdG90eXBlLl9pbml0TnVtYmVyPWZ1bmN0aW9uKHgsUCxWKXt4PDAmJih0aGlzLm5lZ2F0aXZlPTEseD0teCkseDw2''@;'; + put 'put ''NzEwODg2ND8odGhpcy53b3Jkcz1bNjcxMDg4NjMmeF0sdGhpcy5sZW5ndGg9MSk6eDw0NTAzNTk5NjI3MzcwNDk2Pyh0aGlzLndvcmRzPVs2NzEwODg2MyZ4LHgvNjcxMDg4NjQmNjcxMDg4NjNdLHRoaXMubGVuZ3RoPTIpOihZKHg8OTAwNzE5OTI1NDc0MDk5MiksdGhpcy53b3Jkcz1bNjcx''@;'; + put 'put ''MDg4NjMmeCx4LzY3MTA4ODY0JjY3MTA4ODYzLDFdLHRoaXMubGVuZ3RoPTMpLCJsZSI9PT1WJiZ0aGlzLl9pbml0QXJyYXkodGhpcy50b0FycmF5KCksUCxWKX0sTi5wcm90b3R5cGUuX2luaXRBcnJheT1mdW5jdGlvbih4LFAsVil7aWYoWSgibnVtYmVyIj09dHlwZW9mIHgubGVuZ3RoKSx4''@;'; + put 'put ''Lmxlbmd0aDw9MClyZXR1cm4gdGhpcy53b3Jkcz1bMF0sdGhpcy5sZW5ndGg9MSx0aGlzO3RoaXMubGVuZ3RoPU1hdGguY2VpbCh4Lmxlbmd0aC8zKSx0aGlzLndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCk7Zm9yKHZhciBUPTA7VDx0aGlzLmxlbmd0aDtUKyspdGhpcy53b3Jkc1tUXT0w''@;'; + put 'put ''O3ZhciBTLEYseWU9MDtpZigiYmUiPT09Vilmb3IoVD14Lmxlbmd0aC0xLFM9MDtUPj0wO1QtPTMpdGhpcy53b3Jkc1tTXXw9KEY9eFtUXXx4W1QtMV08PDh8eFtULTJdPDwxNik8PHllJjY3MTA4ODYzLHRoaXMud29yZHNbUysxXT1GPj4+MjYteWUmNjcxMDg4NjMsKHllKz0yNCk+PTI2JiYo''@;'; + put 'put ''eWUtPTI2LFMrKyk7ZWxzZSBpZigibGUiPT09Vilmb3IoVD0wLFM9MDtUPHgubGVuZ3RoO1QrPTMpdGhpcy53b3Jkc1tTXXw9KEY9eFtUXXx4W1QrMV08PDh8eFtUKzJdPDwxNik8PHllJjY3MTA4ODYzLHRoaXMud29yZHNbUysxXT1GPj4+MjYteWUmNjcxMDg4NjMsKHllKz0yNCk+PTI2JiYo''@;'; + put 'put ''eWUtPTI2LFMrKyk7cmV0dXJuIHRoaXMuc3RyaXAoKX0sTi5wcm90b3R5cGUuX3BhcnNlSGV4PWZ1bmN0aW9uKHgsUCxWKXt0aGlzLmxlbmd0aD1NYXRoLmNlaWwoKHgubGVuZ3RoLVApLzYpLHRoaXMud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoKTtmb3IodmFyIFQ9MDtUPHRoaXMubGVu''@;'; + put 'put ''Z3RoO1QrKyl0aGlzLndvcmRzW1RdPTA7dmFyIFMsRj0wLHllPTA7aWYoImJlIj09PVYpZm9yKFQ9eC5sZW5ndGgtMTtUPj1QO1QtPTIpUz1KKHgsUCxUKTw8Rix0aGlzLndvcmRzW3llXXw9NjcxMDg4NjMmUyxGPj0xOD8oRi09MTgsdGhpcy53b3Jkc1t5ZSs9MV18PVM+Pj4yNik6Ris9ODtl''@;'; + put 'put ''bHNlIGZvcihUPSh4Lmxlbmd0aC1QKSUyPT0wP1ArMTpQO1Q8eC5sZW5ndGg7VCs9MilTPUooeCxQLFQpPDxGLHRoaXMud29yZHNbeWVdfD02NzEwODg2MyZTLEY+PTE4PyhGLT0xOCx0aGlzLndvcmRzW3llKz0xXXw9Uz4+PjI2KTpGKz04O3RoaXMuc3RyaXAoKX0sTi5wcm90b3R5cGUuX3Bh''@;'; + put 'put ''cnNlQmFzZT1mdW5jdGlvbih4LFAsVil7dGhpcy53b3Jkcz1bMF0sdGhpcy5sZW5ndGg9MTtmb3IodmFyIFQ9MCxTPTE7Uzw9NjcxMDg4NjM7Uyo9UClUKys7VC0tLFM9Uy9QfDA7Zm9yKHZhciBGPXgubGVuZ3RoLVYseWU9RiVULENlPU1hdGgubWluKEYsRi15ZSkrVixEZT0wLFBlPVY7UGU8''@;'; + put 'put ''Q2U7UGUrPVQpRGU9c2UoeCxQZSxQZStULFApLHRoaXMuaW11bG4oUyksdGhpcy53b3Jkc1swXStEZTw2NzEwODg2ND90aGlzLndvcmRzWzBdKz1EZTp0aGlzLl9pYWRkbihEZSk7aWYoMCE9PXllKXt2YXIgUWU9MTtmb3IoRGU9c2UoeCxQZSx4Lmxlbmd0aCxQKSxQZT0wO1BlPHllO1BlKysp''@;'; + put 'put ''UWUqPVA7dGhpcy5pbXVsbihRZSksdGhpcy53b3Jkc1swXStEZTw2NzEwODg2ND90aGlzLndvcmRzWzBdKz1EZTp0aGlzLl9pYWRkbihEZSl9dGhpcy5zdHJpcCgpfSxOLnByb3RvdHlwZS5jb3B5PWZ1bmN0aW9uKHgpe3gud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoKTtmb3IodmFyIFA9''@;'; + put 'put ''MDtQPHRoaXMubGVuZ3RoO1ArKyl4LndvcmRzW1BdPXRoaXMud29yZHNbUF07eC5sZW5ndGg9dGhpcy5sZW5ndGgseC5uZWdhdGl2ZT10aGlzLm5lZ2F0aXZlLHgucmVkPXRoaXMucmVkfSxOLnByb3RvdHlwZS5jbG9uZT1mdW5jdGlvbigpe3ZhciB4PW5ldyBOKG51bGwpO3JldHVybiB0aGlz''@;'; + put 'put ''LmNvcHkoeCkseH0sTi5wcm90b3R5cGUuX2V4cGFuZD1mdW5jdGlvbih4KXtmb3IoO3RoaXMubGVuZ3RoPHg7KXRoaXMud29yZHNbdGhpcy5sZW5ndGgrK109MDtyZXR1cm4gdGhpc30sTi5wcm90b3R5cGUuc3RyaXA9ZnVuY3Rpb24oKXtmb3IoO3RoaXMubGVuZ3RoPjEmJjA9PT10aGlzLndv''@;'; + put 'put ''cmRzW3RoaXMubGVuZ3RoLTFdOyl0aGlzLmxlbmd0aC0tO3JldHVybiB0aGlzLl9ub3JtU2lnbigpfSxOLnByb3RvdHlwZS5fbm9ybVNpZ249ZnVuY3Rpb24oKXtyZXR1cm4gMT09PXRoaXMubGVuZ3RoJiYwPT09dGhpcy53b3Jkc1swXSYmKHRoaXMubmVnYXRpdmU9MCksdGhpc30sTi5wcm90''@;'; + put 'put ''b3R5cGUuaW5zcGVjdD1mdW5jdGlvbigpe3JldHVybih0aGlzLnJlZD8iPEJOLVI6ICI6IjxCTjogIikrdGhpcy50b1N0cmluZygxNikrIj4ifTt2YXIgb2U9WyIiLCIwIiwiMDAiLCIwMDAiLCIwMDAwIiwiMDAwMDAiLCIwMDAwMDAiLCIwMDAwMDAwIiwiMDAwMDAwMDAiLCIwMDAwMDAwMDAi''@;'; + put 'put ''LCIwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAw''@;'; + put 'put ''MDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIl0s''@;'; + put 'put ''Y2U9WzAsMCwyNSwxNiwxMiwxMSwxMCw5LDgsOCw3LDcsNyw3LDYsNiw2LDYsNiw2LDYsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNV0sZGU9WzAsMCwzMzU1NDQzMiw0MzA0NjcyMSwxNjc3NzIxNiw0ODgyODEyNSw2MDQ2NjE3Niw0MDM1MzYwNywxNjc3NzIxNiw0MzA0NjcyMSwx''@;'; + put 'put ''ZTcsMTk0ODcxNzEsMzU4MzE4MDgsNjI3NDg1MTcsNzUyOTUzNiwxMTM5MDYyNSwxNjc3NzIxNiwyNDEzNzU2OSwzNDAxMjIyNCw0NzA0NTg4MSw2NGU2LDQwODQxMDEsNTE1MzYzMiw2NDM2MzQzLDc5NjI2MjQsOTc2NTYyNSwxMTg4MTM3NiwxNDM0ODkwNywxNzIxMDM2OCwyMDUxMTE0OSwy''@;'; + put 'put ''NDNlNSwyODYyOTE1MSwzMzU1NDQzMiwzOTEzNTM5Myw0NTQzNTQyNCw1MjUyMTg3NSw2MDQ2NjE3Nl07ZnVuY3Rpb24gdmUoeCxQLFYpe1YubmVnYXRpdmU9UC5uZWdhdGl2ZV54Lm5lZ2F0aXZlO3ZhciBUPXgubGVuZ3RoK1AubGVuZ3RofDA7Vi5sZW5ndGg9VCxUPVQtMXwwO3ZhciBTPTB8''@;'; + put 'put ''eC53b3Jkc1swXSxGPTB8UC53b3Jkc1swXSx5ZT1TKkYsRGU9eWUvNjcxMDg4NjR8MDtWLndvcmRzWzBdPTY3MTA4ODYzJnllO2Zvcih2YXIgUGU9MTtQZTxUO1BlKyspe2Zvcih2YXIgUWU9RGU+Pj4yNiwkZT02NzEwODg2MyZEZSxndD1NYXRoLm1pbihQZSxQLmxlbmd0aC0xKSx3dD1NYXRo''@;'; + put 'put ''Lm1heCgwLFBlLXgubGVuZ3RoKzEpO3d0PD1ndDt3dCsrKVFlKz0oeWU9KFM9MHx4LndvcmRzW1BlLXd0fDBdKSooRj0wfFAud29yZHNbd3RdKSskZSkvNjcxMDg4NjR8MCwkZT02NzEwODg2MyZ5ZTtWLndvcmRzW1BlXT0wfCRlLERlPTB8UWV9cmV0dXJuIDAhPT1EZT9WLndvcmRzW1BlXT0w''@;'; + put 'put ''fERlOlYubGVuZ3RoLS0sVi5zdHJpcCgpfU4ucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKHgsUCl7dmFyIFY7aWYoUD0wfFB8fDEsMTY9PT0oeD14fHwxMCl8fCJoZXgiPT09eCl7Vj0iIjtmb3IodmFyIFQ9MCxTPTAsRj0wO0Y8dGhpcy5sZW5ndGg7RisrKXt2YXIgeWU9dGhpcy53b3Jk''@;'; + put 'put ''c1tGXSxDZT0oMTY3NzcyMTUmKHllPDxUfFMpKS50b1N0cmluZygxNik7Vj0wIT0oUz15ZT4+PjI0LVQmMTY3NzcyMTUpfHxGIT09dGhpcy5sZW5ndGgtMT9vZVs2LUNlLmxlbmd0aF0rQ2UrVjpDZStWLChUKz0yKT49MjYmJihULT0yNixGLS0pfWZvcigwIT09UyYmKFY9Uy50b1N0cmluZygx''@;'; + put 'put ''NikrVik7Vi5sZW5ndGglUCE9MDspVj0iMCIrVjtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmUmJihWPSItIitWKSxWfWlmKHg9PT0oMHx4KSYmeD49MiYmeDw9MzYpe3ZhciBEZT1jZVt4XSxQZT1kZVt4XTtWPSIiO3ZhciBRZT10aGlzLmNsb25lKCk7Zm9yKFFlLm5lZ2F0aXZlPTA7IVFlLmlz''@;'; + put 'put ''WmVybygpOyl7dmFyICRlPVFlLm1vZG4oUGUpLnRvU3RyaW5nKHgpO1Y9KFFlPVFlLmlkaXZuKFBlKSkuaXNaZXJvKCk/JGUrVjpvZVtEZS0kZS5sZW5ndGhdKyRlK1Z9Zm9yKHRoaXMuaXNaZXJvKCkmJihWPSIwIitWKTtWLmxlbmd0aCVQIT0wOylWPSIwIitWO3JldHVybiAwIT09dGhpcy5u''@;'; + put 'put ''ZWdhdGl2ZSYmKFY9Ii0iK1YpLFZ9WSghMSwiQmFzZSBzaG91bGQgYmUgYmV0d2VlbiAyIGFuZCAzNiIpfSxOLnByb3RvdHlwZS50b051bWJlcj1mdW5jdGlvbigpe3ZhciB4PXRoaXMud29yZHNbMF07cmV0dXJuIDI9PT10aGlzLmxlbmd0aD94Kz02NzEwODg2NCp0aGlzLndvcmRzWzFdOjM9''@;'; + put 'put ''PT10aGlzLmxlbmd0aCYmMT09PXRoaXMud29yZHNbMl0/eCs9NDUwMzU5OTYyNzM3MDQ5Nis2NzEwODg2NCp0aGlzLndvcmRzWzFdOnRoaXMubGVuZ3RoPjImJlkoITEsIk51bWJlciBjYW4gb25seSBzYWZlbHkgc3RvcmUgdXAgdG8gNTMgYml0cyIpLDAhPT10aGlzLm5lZ2F0aXZlPy14Onh9''@;'; + put 'put ''LE4ucHJvdG90eXBlLnRvSlNPTj1mdW5jdGlvbigpe3JldHVybiB0aGlzLnRvU3RyaW5nKDE2KX0sTi5wcm90b3R5cGUudG9CdWZmZXI9ZnVuY3Rpb24oeCxQKXtyZXR1cm4gWSh2b2lkIDAhPT1lZSksdGhpcy50b0FycmF5TGlrZShlZSx4LFApfSxOLnByb3RvdHlwZS50b0FycmF5PWZ1bmN0''@;'; + put 'put ''aW9uKHgsUCl7cmV0dXJuIHRoaXMudG9BcnJheUxpa2UoQXJyYXkseCxQKX0sTi5wcm90b3R5cGUudG9BcnJheUxpa2U9ZnVuY3Rpb24oeCxQLFYpe3ZhciBUPXRoaXMuYnl0ZUxlbmd0aCgpLFM9Vnx8TWF0aC5tYXgoMSxUKTtZKFQ8PVMsImJ5dGUgYXJyYXkgbG9uZ2VyIHRoYW4gZGVzaXJl''@;'; + put 'put ''ZCBsZW5ndGgiKSxZKFM+MCwiUmVxdWVzdGVkIGFycmF5IGxlbmd0aCA8PSAwIiksdGhpcy5zdHJpcCgpO3ZhciBGLHllLENlPSJsZSI9PT1QLERlPW5ldyB4KFMpLFBlPXRoaXMuY2xvbmUoKTtpZihDZSl7Zm9yKHllPTA7IVBlLmlzWmVybygpO3llKyspRj1QZS5hbmRsbigyNTUpLFBlLml1''@;'; + put 'put ''c2hybig4KSxEZVt5ZV09Rjtmb3IoO3llPFM7eWUrKylEZVt5ZV09MH1lbHNle2Zvcih5ZT0wO3llPFMtVDt5ZSsrKURlW3llXT0wO2Zvcih5ZT0wOyFQZS5pc1plcm8oKTt5ZSsrKUY9UGUuYW5kbG4oMjU1KSxQZS5pdXNocm4oOCksRGVbUy15ZS0xXT1GfXJldHVybiBEZX0sTi5wcm90b3R5''@;'; + put 'put ''cGUuX2NvdW50Qml0cz1NYXRoLmNsejMyP2Z1bmN0aW9uKHgpe3JldHVybiAzMi1NYXRoLmNsejMyKHgpfTpmdW5jdGlvbih4KXt2YXIgUD14LFY9MDtyZXR1cm4gUD49NDA5NiYmKFYrPTEzLFA+Pj49MTMpLFA+PTY0JiYoVis9NyxQPj4+PTcpLFA+PTgmJihWKz00LFA+Pj49NCksUD49MiYm''@;'; + put 'put ''KFYrPTIsUD4+Pj0yKSxWK1B9LE4ucHJvdG90eXBlLl96ZXJvQml0cz1mdW5jdGlvbih4KXtpZigwPT09eClyZXR1cm4gMjY7dmFyIFA9eCxWPTA7cmV0dXJuIDA9PSg4MTkxJlApJiYoVis9MTMsUD4+Pj0xMyksMD09KDEyNyZQKSYmKFYrPTcsUD4+Pj03KSwwPT0oMTUmUCkmJihWKz00LFA+''@;'; + put 'put ''Pj49NCksMD09KDMmUCkmJihWKz0yLFA+Pj49MiksMD09KDEmUCkmJlYrKyxWfSxOLnByb3RvdHlwZS5iaXRMZW5ndGg9ZnVuY3Rpb24oKXt2YXIgUD10aGlzLl9jb3VudEJpdHModGhpcy53b3Jkc1t0aGlzLmxlbmd0aC0xXSk7cmV0dXJuIDI2Kih0aGlzLmxlbmd0aC0xKStQfSxOLnByb3Rv''@;'; + put 'put ''dHlwZS56ZXJvQml0cz1mdW5jdGlvbigpe2lmKHRoaXMuaXNaZXJvKCkpcmV0dXJuIDA7Zm9yKHZhciB4PTAsUD0wO1A8dGhpcy5sZW5ndGg7UCsrKXt2YXIgVj10aGlzLl96ZXJvQml0cyh0aGlzLndvcmRzW1BdKTtpZih4Kz1WLDI2IT09VilicmVha31yZXR1cm4geH0sTi5wcm90b3R5cGUu''@;'; + put 'put ''Ynl0ZUxlbmd0aD1mdW5jdGlvbigpe3JldHVybiBNYXRoLmNlaWwodGhpcy5iaXRMZW5ndGgoKS84KX0sTi5wcm90b3R5cGUudG9Ud29zPWZ1bmN0aW9uKHgpe3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZT90aGlzLmFicygpLmlub3RuKHgpLmlhZGRuKDEpOnRoaXMuY2xvbmUoKX0sTi5wcm90''@;'; + put 'put ''b3R5cGUuZnJvbVR3b3M9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMudGVzdG4oeC0xKT90aGlzLm5vdG4oeCkuaWFkZG4oMSkuaW5lZygpOnRoaXMuY2xvbmUoKX0sTi5wcm90b3R5cGUuaXNOZWc9ZnVuY3Rpb24oKXtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmV9LE4ucHJvdG90eXBlLm5lZz1m''@;'; + put 'put ''dW5jdGlvbigpe3JldHVybiB0aGlzLmNsb25lKCkuaW5lZygpfSxOLnByb3RvdHlwZS5pbmVnPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXNaZXJvKCl8fCh0aGlzLm5lZ2F0aXZlXj0xKSx0aGlzfSxOLnByb3RvdHlwZS5pdW9yPWZ1bmN0aW9uKHgpe2Zvcig7dGhpcy5sZW5ndGg8eC5sZW5n''@;'; + put 'put ''dGg7KXRoaXMud29yZHNbdGhpcy5sZW5ndGgrK109MDtmb3IodmFyIFA9MDtQPHgubGVuZ3RoO1ArKyl0aGlzLndvcmRzW1BdPXRoaXMud29yZHNbUF18eC53b3Jkc1tQXTtyZXR1cm4gdGhpcy5zdHJpcCgpfSxOLnByb3RvdHlwZS5pb3I9ZnVuY3Rpb24oeCl7cmV0dXJuIFkoMD09KHRoaXMu''@;'; + put 'put ''bmVnYXRpdmV8eC5uZWdhdGl2ZSkpLHRoaXMuaXVvcih4KX0sTi5wcm90b3R5cGUub3I9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMubGVuZ3RoPngubGVuZ3RoP3RoaXMuY2xvbmUoKS5pb3IoeCk6eC5jbG9uZSgpLmlvcih0aGlzKX0sTi5wcm90b3R5cGUudW9yPWZ1bmN0aW9uKHgpe3JldHVy''@;'; + put 'put ''biB0aGlzLmxlbmd0aD54Lmxlbmd0aD90aGlzLmNsb25lKCkuaXVvcih4KTp4LmNsb25lKCkuaXVvcih0aGlzKX0sTi5wcm90b3R5cGUuaXVhbmQ9ZnVuY3Rpb24oeCl7dmFyIFA7UD10aGlzLmxlbmd0aD54Lmxlbmd0aD94OnRoaXM7Zm9yKHZhciBWPTA7VjxQLmxlbmd0aDtWKyspdGhpcy53''@;'; + put 'put ''b3Jkc1tWXT10aGlzLndvcmRzW1ZdJngud29yZHNbVl07cmV0dXJuIHRoaXMubGVuZ3RoPVAubGVuZ3RoLHRoaXMuc3RyaXAoKX0sTi5wcm90b3R5cGUuaWFuZD1mdW5jdGlvbih4KXtyZXR1cm4gWSgwPT0odGhpcy5uZWdhdGl2ZXx4Lm5lZ2F0aXZlKSksdGhpcy5pdWFuZCh4KX0sTi5wcm90''@;'; + put 'put ''b3R5cGUuYW5kPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmxlbmd0aD54Lmxlbmd0aD90aGlzLmNsb25lKCkuaWFuZCh4KTp4LmNsb25lKCkuaWFuZCh0aGlzKX0sTi5wcm90b3R5cGUudWFuZD1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5sZW5ndGg+eC5sZW5ndGg/dGhpcy5jbG9uZSgpLml1''@;'; + put 'put ''YW5kKHgpOnguY2xvbmUoKS5pdWFuZCh0aGlzKX0sTi5wcm90b3R5cGUuaXV4b3I9ZnVuY3Rpb24oeCl7dmFyIFAsVjt0aGlzLmxlbmd0aD54Lmxlbmd0aD8oUD10aGlzLFY9eCk6KFA9eCxWPXRoaXMpO2Zvcih2YXIgVD0wO1Q8Vi5sZW5ndGg7VCsrKXRoaXMud29yZHNbVF09UC53b3Jkc1tU''@;'; + put 'put ''XV5WLndvcmRzW1RdO2lmKHRoaXMhPT1QKWZvcig7VDxQLmxlbmd0aDtUKyspdGhpcy53b3Jkc1tUXT1QLndvcmRzW1RdO3JldHVybiB0aGlzLmxlbmd0aD1QLmxlbmd0aCx0aGlzLnN0cmlwKCl9LE4ucHJvdG90eXBlLml4b3I9ZnVuY3Rpb24oeCl7cmV0dXJuIFkoMD09KHRoaXMubmVnYXRp''@;'; + put 'put ''dmV8eC5uZWdhdGl2ZSkpLHRoaXMuaXV4b3IoeCl9LE4ucHJvdG90eXBlLnhvcj1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5sZW5ndGg+eC5sZW5ndGg/dGhpcy5jbG9uZSgpLml4b3IoeCk6eC5jbG9uZSgpLml4b3IodGhpcyl9LE4ucHJvdG90eXBlLnV4b3I9ZnVuY3Rpb24oeCl7cmV0dXJu''@;'; + put 'put ''IHRoaXMubGVuZ3RoPngubGVuZ3RoP3RoaXMuY2xvbmUoKS5pdXhvcih4KTp4LmNsb25lKCkuaXV4b3IodGhpcyl9LE4ucHJvdG90eXBlLmlub3RuPWZ1bmN0aW9uKHgpe1koIm51bWJlciI9PXR5cGVvZiB4JiZ4Pj0wKTt2YXIgUD0wfE1hdGguY2VpbCh4LzI2KSxWPXglMjY7dGhpcy5fZXhw''@;'; + put 'put ''YW5kKFApLFY+MCYmUC0tO2Zvcih2YXIgVD0wO1Q8UDtUKyspdGhpcy53b3Jkc1tUXT02NzEwODg2MyZ+dGhpcy53b3Jkc1tUXTtyZXR1cm4gVj4wJiYodGhpcy53b3Jkc1tUXT1+dGhpcy53b3Jkc1tUXSY2NzEwODg2Mz4+MjYtViksdGhpcy5zdHJpcCgpfSxOLnByb3RvdHlwZS5ub3RuPWZ1''@;'; + put 'put ''bmN0aW9uKHgpe3JldHVybiB0aGlzLmNsb25lKCkuaW5vdG4oeCl9LE4ucHJvdG90eXBlLnNldG49ZnVuY3Rpb24oeCxQKXtZKCJudW1iZXIiPT10eXBlb2YgeCYmeD49MCk7dmFyIFY9eC8yNnwwLFQ9eCUyNjtyZXR1cm4gdGhpcy5fZXhwYW5kKFYrMSksdGhpcy53b3Jkc1tWXT1QP3RoaXMu''@;'; + put 'put ''d29yZHNbVl18MTw8VDp0aGlzLndvcmRzW1ZdJn4oMTw8VCksdGhpcy5zdHJpcCgpfSxOLnByb3RvdHlwZS5pYWRkPWZ1bmN0aW9uKHgpe3ZhciBQLFYsVDtpZigwIT09dGhpcy5uZWdhdGl2ZSYmMD09PXgubmVnYXRpdmUpcmV0dXJuIHRoaXMubmVnYXRpdmU9MCxQPXRoaXMuaXN1Yih4KSx0''@;'; + put 'put ''aGlzLm5lZ2F0aXZlXj0xLHRoaXMuX25vcm1TaWduKCk7aWYoMD09PXRoaXMubmVnYXRpdmUmJjAhPT14Lm5lZ2F0aXZlKXJldHVybiB4Lm5lZ2F0aXZlPTAsUD10aGlzLmlzdWIoeCkseC5uZWdhdGl2ZT0xLFAuX25vcm1TaWduKCk7dGhpcy5sZW5ndGg+eC5sZW5ndGg/KFY9dGhpcyxUPXgp''@;'; + put 'put ''OihWPXgsVD10aGlzKTtmb3IodmFyIFM9MCxGPTA7RjxULmxlbmd0aDtGKyspdGhpcy53b3Jkc1tGXT02NzEwODg2MyYoUD0oMHxWLndvcmRzW0ZdKSsoMHxULndvcmRzW0ZdKStTKSxTPVA+Pj4yNjtmb3IoOzAhPT1TJiZGPFYubGVuZ3RoO0YrKyl0aGlzLndvcmRzW0ZdPTY3MTA4ODYzJihQ''@;'; + put 'put ''PSgwfFYud29yZHNbRl0pK1MpLFM9UD4+PjI2O2lmKHRoaXMubGVuZ3RoPVYubGVuZ3RoLDAhPT1TKXRoaXMud29yZHNbdGhpcy5sZW5ndGhdPVMsdGhpcy5sZW5ndGgrKztlbHNlIGlmKFYhPT10aGlzKWZvcig7RjxWLmxlbmd0aDtGKyspdGhpcy53b3Jkc1tGXT1WLndvcmRzW0ZdO3JldHVy''@;'; + put 'put ''biB0aGlzfSxOLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oeCl7dmFyIFA7cmV0dXJuIDAhPT14Lm5lZ2F0aXZlJiYwPT09dGhpcy5uZWdhdGl2ZT8oeC5uZWdhdGl2ZT0wLFA9dGhpcy5zdWIoeCkseC5uZWdhdGl2ZV49MSxQKTowPT09eC5uZWdhdGl2ZSYmMCE9PXRoaXMubmVnYXRpdmU/KHRo''@;'; + put 'put ''aXMubmVnYXRpdmU9MCxQPXguc3ViKHRoaXMpLHRoaXMubmVnYXRpdmU9MSxQKTp0aGlzLmxlbmd0aD54Lmxlbmd0aD90aGlzLmNsb25lKCkuaWFkZCh4KTp4LmNsb25lKCkuaWFkZCh0aGlzKX0sTi5wcm90b3R5cGUuaXN1Yj1mdW5jdGlvbih4KXtpZigwIT09eC5uZWdhdGl2ZSl7eC5uZWdh''@;'; + put 'put ''dGl2ZT0wO3ZhciBQPXRoaXMuaWFkZCh4KTtyZXR1cm4geC5uZWdhdGl2ZT0xLFAuX25vcm1TaWduKCl9aWYoMCE9PXRoaXMubmVnYXRpdmUpcmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlzLmlhZGQoeCksdGhpcy5uZWdhdGl2ZT0xLHRoaXMuX25vcm1TaWduKCk7dmFyIFYsVCxTPXRoaXMu''@;'; + put 'put ''Y21wKHgpO2lmKDA9PT1TKXJldHVybiB0aGlzLm5lZ2F0aXZlPTAsdGhpcy5sZW5ndGg9MSx0aGlzLndvcmRzWzBdPTAsdGhpcztTPjA/KFY9dGhpcyxUPXgpOihWPXgsVD10aGlzKTtmb3IodmFyIEY9MCx5ZT0wO3llPFQubGVuZ3RoO3llKyspRj0oUD0oMHxWLndvcmRzW3llXSktKDB8VC53''@;'; + put 'put ''b3Jkc1t5ZV0pK0YpPj4yNix0aGlzLndvcmRzW3llXT02NzEwODg2MyZQO2Zvcig7MCE9PUYmJnllPFYubGVuZ3RoO3llKyspRj0oUD0oMHxWLndvcmRzW3llXSkrRik+PjI2LHRoaXMud29yZHNbeWVdPTY3MTA4ODYzJlA7aWYoMD09PUYmJnllPFYubGVuZ3RoJiZWIT09dGhpcylmb3IoO3ll''@;'; + put 'put ''PFYubGVuZ3RoO3llKyspdGhpcy53b3Jkc1t5ZV09Vi53b3Jkc1t5ZV07cmV0dXJuIHRoaXMubGVuZ3RoPU1hdGgubWF4KHRoaXMubGVuZ3RoLHllKSxWIT09dGhpcyYmKHRoaXMubmVnYXRpdmU9MSksdGhpcy5zdHJpcCgpfSxOLnByb3RvdHlwZS5zdWI9ZnVuY3Rpb24oeCl7cmV0dXJuIHRo''@;'; + put 'put ''aXMuY2xvbmUoKS5pc3ViKHgpfTt2YXIgQWU9ZnVuY3Rpb24oeCxQLFYpe3ZhciBULFMsRix5ZT14LndvcmRzLENlPVAud29yZHMsRGU9Vi53b3JkcyxQZT0wLFFlPTB8eWVbMF0sJGU9ODE5MSZRZSxndD1RZT4+PjEzLHd0PTB8eWVbMV0sbXQ9ODE5MSZ3dCx2dD13dD4+PjEzLEF0PTB8eWVb''@;'; + put 'put ''Ml0saHQ9ODE5MSZBdCxCdD1BdD4+PjEzLG9uPTB8eWVbM10sX3Q9ODE5MSZvbix0dD1vbj4+PjEzLGV0PTB8eWVbNF0sYXQ9ODE5MSZldCxMdD1ldD4+PjEzLEN0PTB8eWVbNV0sZnQ9ODE5MSZDdCxIdD1DdD4+PjEzLEdlPTB8eWVbNl0sVWU9ODE5MSZHZSx5dD1HZT4+PjEzLGp0PTB8eWVb''@;'; + put 'put ''N10sUXQ9ODE5MSZqdCxnbj1qdD4+PjEzLGRuPTB8eWVbOF0seW49ODE5MSZkbixsbj1kbj4+PjEzLE5uPTB8eWVbOV0sYm49ODE5MSZObixlcj1Obj4+PjEzLHNyPTB8Q2VbMF0sWG49ODE5MSZzcixGcj1zcj4+PjEzLHhyPTB8Q2VbMV0scXQ9ODE5MSZ4cixwcj14cj4+PjEzLG5yPTB8Q2Vb''@;'; + put 'put ''Ml0sQW49ODE5MSZucixxbj1ucj4+PjEzLFd0PTB8Q2VbM10scG49ODE5MSZXdCxLbj1XdD4+PjEzLE50PTB8Q2VbNF0sc249ODE5MSZOdCxVbj1OdD4+PjEzLHduPTB8Q2VbNV0sdG49ODE5MSZ3bix6bj13bj4+PjEzLFRyPTB8Q2VbNl0sQm49ODE5MSZUcixrcj1Ucj4+PjEzLG1uPTB8Q2Vb''@;'; + put 'put ''N10sdW49ODE5MSZtbixjbj1tbj4+PjEzLF9uPTB8Q2VbOF0sR3Q9ODE5MSZfbixrbj1fbj4+PjEzLFZuPTB8Q2VbOV0sZW49ODE5MSZWbixJbj1Wbj4+PjEzO1YubmVnYXRpdmU9eC5uZWdhdGl2ZV5QLm5lZ2F0aXZlLFYubGVuZ3RoPTE5O3ZhciBKbj0oUGUrKFQ9TWF0aC5pbXVsKCRlLFhu''@;'; + put 'put ''KSl8MCkrKCg4MTkxJihTPShTPU1hdGguaW11bCgkZSxGcikpK01hdGguaW11bChndCxYbil8MCkpPDwxMyl8MDtQZT0oKEY9TWF0aC5pbXVsKGd0LEZyKSkrKFM+Pj4xMyl8MCkrKEpuPj4+MjYpfDAsSm4mPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKG10LFhuKSxTPShTPU1hdGguaW11bChtdCxG''@;'; + put 'put ''cikpK01hdGguaW11bCh2dCxYbil8MCxGPU1hdGguaW11bCh2dCxGcik7dmFyIG9yPShQZSsoVD1UK01hdGguaW11bCgkZSxxdCl8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKCRlLHByKXwwKStNYXRoLmltdWwoZ3QscXQpfDApKTw8MTMpfDA7UGU9KChGPUYrTWF0aC5pbXVsKGd0''@;'; + put 'put ''LHByKXwwKSsoUz4+PjEzKXwwKSsob3I+Pj4yNil8MCxvciY9NjcxMDg4NjMsVD1NYXRoLmltdWwoaHQsWG4pLFM9KFM9TWF0aC5pbXVsKGh0LEZyKSkrTWF0aC5pbXVsKEJ0LFhuKXwwLEY9TWF0aC5pbXVsKEJ0LEZyKSxUPVQrTWF0aC5pbXVsKG10LHF0KXwwLFM9KFM9UytNYXRoLmltdWwo''@;'; + put 'put ''bXQscHIpfDApK01hdGguaW11bCh2dCxxdCl8MCxGPUYrTWF0aC5pbXVsKHZ0LHByKXwwO3ZhciBncj0oUGUrKFQ9VCtNYXRoLmltdWwoJGUsQW4pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bCgkZSxxbil8MCkrTWF0aC5pbXVsKGd0LEFuKXwwKSk8PDEzKXwwO1BlPSgoRj1GK01h''@;'; + put 'put ''dGguaW11bChndCxxbil8MCkrKFM+Pj4xMyl8MCkrKGdyPj4+MjYpfDAsZ3ImPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKF90LFhuKSxTPShTPU1hdGguaW11bChfdCxGcikpK01hdGguaW11bCh0dCxYbil8MCxGPU1hdGguaW11bCh0dCxGciksVD1UK01hdGguaW11bChodCxxdCl8MCxTPShTPVMr''@;'; + put 'put ''TWF0aC5pbXVsKGh0LHByKXwwKStNYXRoLmltdWwoQnQscXQpfDAsRj1GK01hdGguaW11bChCdCxwcil8MCxUPVQrTWF0aC5pbXVsKG10LEFuKXwwLFM9KFM9UytNYXRoLmltdWwobXQscW4pfDApK01hdGguaW11bCh2dCxBbil8MCxGPUYrTWF0aC5pbXVsKHZ0LHFuKXwwO3ZhciBLcj0oUGUr''@;'; + put 'put ''KFQ9VCtNYXRoLmltdWwoJGUscG4pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bCgkZSxLbil8MCkrTWF0aC5pbXVsKGd0LHBuKXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGguaW11bChndCxLbil8MCkrKFM+Pj4xMyl8MCkrKEtyPj4+MjYpfDAsS3ImPTY3MTA4ODYzLFQ9TWF0aC5p''@;'; + put 'put ''bXVsKGF0LFhuKSxTPShTPU1hdGguaW11bChhdCxGcikpK01hdGguaW11bChMdCxYbil8MCxGPU1hdGguaW11bChMdCxGciksVD1UK01hdGguaW11bChfdCxxdCl8MCxTPShTPVMrTWF0aC5pbXVsKF90LHByKXwwKStNYXRoLmltdWwodHQscXQpfDAsRj1GK01hdGguaW11bCh0dCxwcil8MCxU''@;'; + put 'put ''PVQrTWF0aC5pbXVsKGh0LEFuKXwwLFM9KFM9UytNYXRoLmltdWwoaHQscW4pfDApK01hdGguaW11bChCdCxBbil8MCxGPUYrTWF0aC5pbXVsKEJ0LHFuKXwwLFQ9VCtNYXRoLmltdWwobXQscG4pfDAsUz0oUz1TK01hdGguaW11bChtdCxLbil8MCkrTWF0aC5pbXVsKHZ0LHBuKXwwLEY9RitN''@;'; + put 'put ''YXRoLmltdWwodnQsS24pfDA7dmFyIFZyPShQZSsoVD1UK01hdGguaW11bCgkZSxzbil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKCRlLFVuKXwwKStNYXRoLmltdWwoZ3Qsc24pfDApKTw8MTMpfDA7UGU9KChGPUYrTWF0aC5pbXVsKGd0LFVuKXwwKSsoUz4+PjEzKXwwKSsoVnI+''@;'; + put 'put ''Pj4yNil8MCxWciY9NjcxMDg4NjMsVD1NYXRoLmltdWwoZnQsWG4pLFM9KFM9TWF0aC5pbXVsKGZ0LEZyKSkrTWF0aC5pbXVsKEh0LFhuKXwwLEY9TWF0aC5pbXVsKEh0LEZyKSxUPVQrTWF0aC5pbXVsKGF0LHF0KXwwLFM9KFM9UytNYXRoLmltdWwoYXQscHIpfDApK01hdGguaW11bChMdCxx''@;'; + put 'put ''dCl8MCxGPUYrTWF0aC5pbXVsKEx0LHByKXwwLFQ9VCtNYXRoLmltdWwoX3QsQW4pfDAsUz0oUz1TK01hdGguaW11bChfdCxxbil8MCkrTWF0aC5pbXVsKHR0LEFuKXwwLEY9RitNYXRoLmltdWwodHQscW4pfDAsVD1UK01hdGguaW11bChodCxwbil8MCxTPShTPVMrTWF0aC5pbXVsKGh0LEtu''@;'; + put 'put ''KXwwKStNYXRoLmltdWwoQnQscG4pfDAsRj1GK01hdGguaW11bChCdCxLbil8MCxUPVQrTWF0aC5pbXVsKG10LHNuKXwwLFM9KFM9UytNYXRoLmltdWwobXQsVW4pfDApK01hdGguaW11bCh2dCxzbil8MCxGPUYrTWF0aC5pbXVsKHZ0LFVuKXwwO3ZhciBpaT0oUGUrKFQ9VCtNYXRoLmltdWwo''@;'; + put 'put ''JGUsdG4pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bCgkZSx6bil8MCkrTWF0aC5pbXVsKGd0LHRuKXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGguaW11bChndCx6bil8MCkrKFM+Pj4xMyl8MCkrKGlpPj4+MjYpfDAsaWkmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKFVlLFhuKSxTPShT''@;'; + put 'put ''PU1hdGguaW11bChVZSxGcikpK01hdGguaW11bCh5dCxYbil8MCxGPU1hdGguaW11bCh5dCxGciksVD1UK01hdGguaW11bChmdCxxdCl8MCxTPShTPVMrTWF0aC5pbXVsKGZ0LHByKXwwKStNYXRoLmltdWwoSHQscXQpfDAsRj1GK01hdGguaW11bChIdCxwcil8MCxUPVQrTWF0aC5pbXVsKGF0''@;'; + put 'put ''LEFuKXwwLFM9KFM9UytNYXRoLmltdWwoYXQscW4pfDApK01hdGguaW11bChMdCxBbil8MCxGPUYrTWF0aC5pbXVsKEx0LHFuKXwwLFQ9VCtNYXRoLmltdWwoX3QscG4pfDAsUz0oUz1TK01hdGguaW11bChfdCxLbil8MCkrTWF0aC5pbXVsKHR0LHBuKXwwLEY9RitNYXRoLmltdWwodHQsS24p''@;'; + put 'put ''fDAsVD1UK01hdGguaW11bChodCxzbil8MCxTPShTPVMrTWF0aC5pbXVsKGh0LFVuKXwwKStNYXRoLmltdWwoQnQsc24pfDAsRj1GK01hdGguaW11bChCdCxVbil8MCxUPVQrTWF0aC5pbXVsKG10LHRuKXwwLFM9KFM9UytNYXRoLmltdWwobXQsem4pfDApK01hdGguaW11bCh2dCx0bil8MCxG''@;'; + put 'put ''PUYrTWF0aC5pbXVsKHZ0LHpuKXwwO3ZhciBScj0oUGUrKFQ9VCtNYXRoLmltdWwoJGUsQm4pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bCgkZSxrcil8MCkrTWF0aC5pbXVsKGd0LEJuKXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGguaW11bChndCxrcil8MCkrKFM+Pj4xMyl8MCkr''@;'; + put 'put ''KFJyPj4+MjYpfDAsUnImPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKFF0LFhuKSxTPShTPU1hdGguaW11bChRdCxGcikpK01hdGguaW11bChnbixYbil8MCxGPU1hdGguaW11bChnbixGciksVD1UK01hdGguaW11bChVZSxxdCl8MCxTPShTPVMrTWF0aC5pbXVsKFVlLHByKXwwKStNYXRoLmltdWwo''@;'; + put 'put ''eXQscXQpfDAsRj1GK01hdGguaW11bCh5dCxwcil8MCxUPVQrTWF0aC5pbXVsKGZ0LEFuKXwwLFM9KFM9UytNYXRoLmltdWwoZnQscW4pfDApK01hdGguaW11bChIdCxBbil8MCxGPUYrTWF0aC5pbXVsKEh0LHFuKXwwLFQ9VCtNYXRoLmltdWwoYXQscG4pfDAsUz0oUz1TK01hdGguaW11bChh''@;'; + put 'put ''dCxLbil8MCkrTWF0aC5pbXVsKEx0LHBuKXwwLEY9RitNYXRoLmltdWwoTHQsS24pfDAsVD1UK01hdGguaW11bChfdCxzbil8MCxTPShTPVMrTWF0aC5pbXVsKF90LFVuKXwwKStNYXRoLmltdWwodHQsc24pfDAsRj1GK01hdGguaW11bCh0dCxVbil8MCxUPVQrTWF0aC5pbXVsKGh0LHRuKXww''@;'; + put 'put ''LFM9KFM9UytNYXRoLmltdWwoaHQsem4pfDApK01hdGguaW11bChCdCx0bil8MCxGPUYrTWF0aC5pbXVsKEJ0LHpuKXwwLFQ9VCtNYXRoLmltdWwobXQsQm4pfDAsUz0oUz1TK01hdGguaW11bChtdCxrcil8MCkrTWF0aC5pbXVsKHZ0LEJuKXwwLEY9RitNYXRoLmltdWwodnQsa3IpfDA7dmFy''@;'; + put 'put ''IGxpPShQZSsoVD1UK01hdGguaW11bCgkZSx1bil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKCRlLGNuKXwwKStNYXRoLmltdWwoZ3QsdW4pfDApKTw8MTMpfDA7UGU9KChGPUYrTWF0aC5pbXVsKGd0LGNuKXwwKSsoUz4+PjEzKXwwKSsobGk+Pj4yNil8MCxsaSY9NjcxMDg4NjMs''@;'; + put 'put ''VD1NYXRoLmltdWwoeW4sWG4pLFM9KFM9TWF0aC5pbXVsKHluLEZyKSkrTWF0aC5pbXVsKGxuLFhuKXwwLEY9TWF0aC5pbXVsKGxuLEZyKSxUPVQrTWF0aC5pbXVsKFF0LHF0KXwwLFM9KFM9UytNYXRoLmltdWwoUXQscHIpfDApK01hdGguaW11bChnbixxdCl8MCxGPUYrTWF0aC5pbXVsKGdu''@;'; + put 'put ''LHByKXwwLFQ9VCtNYXRoLmltdWwoVWUsQW4pfDAsUz0oUz1TK01hdGguaW11bChVZSxxbil8MCkrTWF0aC5pbXVsKHl0LEFuKXwwLEY9RitNYXRoLmltdWwoeXQscW4pfDAsVD1UK01hdGguaW11bChmdCxwbil8MCxTPShTPVMrTWF0aC5pbXVsKGZ0LEtuKXwwKStNYXRoLmltdWwoSHQscG4p''@;'; + put 'put ''fDAsRj1GK01hdGguaW11bChIdCxLbil8MCxUPVQrTWF0aC5pbXVsKGF0LHNuKXwwLFM9KFM9UytNYXRoLmltdWwoYXQsVW4pfDApK01hdGguaW11bChMdCxzbil8MCxGPUYrTWF0aC5pbXVsKEx0LFVuKXwwLFQ9VCtNYXRoLmltdWwoX3QsdG4pfDAsUz0oUz1TK01hdGguaW11bChfdCx6bil8''@;'; + put 'put ''MCkrTWF0aC5pbXVsKHR0LHRuKXwwLEY9RitNYXRoLmltdWwodHQsem4pfDAsVD1UK01hdGguaW11bChodCxCbil8MCxTPShTPVMrTWF0aC5pbXVsKGh0LGtyKXwwKStNYXRoLmltdWwoQnQsQm4pfDAsRj1GK01hdGguaW11bChCdCxrcil8MCxUPVQrTWF0aC5pbXVsKG10LHVuKXwwLFM9KFM9''@;'; + put 'put ''UytNYXRoLmltdWwobXQsY24pfDApK01hdGguaW11bCh2dCx1bil8MCxGPUYrTWF0aC5pbXVsKHZ0LGNuKXwwO3ZhciBNaT0oUGUrKFQ9VCtNYXRoLmltdWwoJGUsR3QpfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bCgkZSxrbil8MCkrTWF0aC5pbXVsKGd0LEd0KXwwKSk8PDEzKXww''@;'; + put 'put ''O1BlPSgoRj1GK01hdGguaW11bChndCxrbil8MCkrKFM+Pj4xMyl8MCkrKE1pPj4+MjYpfDAsTWkmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGJuLFhuKSxTPShTPU1hdGguaW11bChibixGcikpK01hdGguaW11bChlcixYbil8MCxGPU1hdGguaW11bChlcixGciksVD1UK01hdGguaW11bCh5bixx''@;'; + put 'put ''dCl8MCxTPShTPVMrTWF0aC5pbXVsKHluLHByKXwwKStNYXRoLmltdWwobG4scXQpfDAsRj1GK01hdGguaW11bChsbixwcil8MCxUPVQrTWF0aC5pbXVsKFF0LEFuKXwwLFM9KFM9UytNYXRoLmltdWwoUXQscW4pfDApK01hdGguaW11bChnbixBbil8MCxGPUYrTWF0aC5pbXVsKGduLHFuKXww''@;'; + put 'put ''LFQ9VCtNYXRoLmltdWwoVWUscG4pfDAsUz0oUz1TK01hdGguaW11bChVZSxLbil8MCkrTWF0aC5pbXVsKHl0LHBuKXwwLEY9RitNYXRoLmltdWwoeXQsS24pfDAsVD1UK01hdGguaW11bChmdCxzbil8MCxTPShTPVMrTWF0aC5pbXVsKGZ0LFVuKXwwKStNYXRoLmltdWwoSHQsc24pfDAsRj1G''@;'; + put 'put ''K01hdGguaW11bChIdCxVbil8MCxUPVQrTWF0aC5pbXVsKGF0LHRuKXwwLFM9KFM9UytNYXRoLmltdWwoYXQsem4pfDApK01hdGguaW11bChMdCx0bil8MCxGPUYrTWF0aC5pbXVsKEx0LHpuKXwwLFQ9VCtNYXRoLmltdWwoX3QsQm4pfDAsUz0oUz1TK01hdGguaW11bChfdCxrcil8MCkrTWF0''@;'; + put 'put ''aC5pbXVsKHR0LEJuKXwwLEY9RitNYXRoLmltdWwodHQsa3IpfDAsVD1UK01hdGguaW11bChodCx1bil8MCxTPShTPVMrTWF0aC5pbXVsKGh0LGNuKXwwKStNYXRoLmltdWwoQnQsdW4pfDAsRj1GK01hdGguaW11bChCdCxjbil8MCxUPVQrTWF0aC5pbXVsKG10LEd0KXwwLFM9KFM9UytNYXRo''@;'; + put 'put ''LmltdWwobXQsa24pfDApK01hdGguaW11bCh2dCxHdCl8MCxGPUYrTWF0aC5pbXVsKHZ0LGtuKXwwO3ZhciBvMD0oUGUrKFQ9VCtNYXRoLmltdWwoJGUsZW4pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bCgkZSxJbil8MCkrTWF0aC5pbXVsKGd0LGVuKXwwKSk8PDEzKXwwO1BlPSgo''@;'; + put 'put ''Rj1GK01hdGguaW11bChndCxJbil8MCkrKFM+Pj4xMyl8MCkrKG8wPj4+MjYpfDAsbzAmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGJuLHF0KSxTPShTPU1hdGguaW11bChibixwcikpK01hdGguaW11bChlcixxdCl8MCxGPU1hdGguaW11bChlcixwciksVD1UK01hdGguaW11bCh5bixBbil8MCxT''@;'; + put 'put ''PShTPVMrTWF0aC5pbXVsKHluLHFuKXwwKStNYXRoLmltdWwobG4sQW4pfDAsRj1GK01hdGguaW11bChsbixxbil8MCxUPVQrTWF0aC5pbXVsKFF0LHBuKXwwLFM9KFM9UytNYXRoLmltdWwoUXQsS24pfDApK01hdGguaW11bChnbixwbil8MCxGPUYrTWF0aC5pbXVsKGduLEtuKXwwLFQ9VCtN''@;'; + put 'put ''YXRoLmltdWwoVWUsc24pfDAsUz0oUz1TK01hdGguaW11bChVZSxVbil8MCkrTWF0aC5pbXVsKHl0LHNuKXwwLEY9RitNYXRoLmltdWwoeXQsVW4pfDAsVD1UK01hdGguaW11bChmdCx0bil8MCxTPShTPVMrTWF0aC5pbXVsKGZ0LHpuKXwwKStNYXRoLmltdWwoSHQsdG4pfDAsRj1GK01hdGgu''@;'; + put 'put ''aW11bChIdCx6bil8MCxUPVQrTWF0aC5pbXVsKGF0LEJuKXwwLFM9KFM9UytNYXRoLmltdWwoYXQsa3IpfDApK01hdGguaW11bChMdCxCbil8MCxGPUYrTWF0aC5pbXVsKEx0LGtyKXwwLFQ9VCtNYXRoLmltdWwoX3QsdW4pfDAsUz0oUz1TK01hdGguaW11bChfdCxjbil8MCkrTWF0aC5pbXVs''@;'; + put 'put ''KHR0LHVuKXwwLEY9RitNYXRoLmltdWwodHQsY24pfDAsVD1UK01hdGguaW11bChodCxHdCl8MCxTPShTPVMrTWF0aC5pbXVsKGh0LGtuKXwwKStNYXRoLmltdWwoQnQsR3QpfDAsRj1GK01hdGguaW11bChCdCxrbil8MDt2YXIgbjA9KFBlKyhUPVQrTWF0aC5pbXVsKG10LGVuKXwwKXwwKSso''@;'; + put 'put ''KDgxOTEmKFM9KFM9UytNYXRoLmltdWwobXQsSW4pfDApK01hdGguaW11bCh2dCxlbil8MCkpPDwxMyl8MDtQZT0oKEY9RitNYXRoLmltdWwodnQsSW4pfDApKyhTPj4+MTMpfDApKyhuMD4+PjI2KXwwLG4wJj02NzEwODg2MyxUPU1hdGguaW11bChibixBbiksUz0oUz1NYXRoLmltdWwoYm4s''@;'; + put 'put ''cW4pKStNYXRoLmltdWwoZXIsQW4pfDAsRj1NYXRoLmltdWwoZXIscW4pLFQ9VCtNYXRoLmltdWwoeW4scG4pfDAsUz0oUz1TK01hdGguaW11bCh5bixLbil8MCkrTWF0aC5pbXVsKGxuLHBuKXwwLEY9RitNYXRoLmltdWwobG4sS24pfDAsVD1UK01hdGguaW11bChRdCxzbil8MCxTPShTPVMr''@;'; + put 'put ''TWF0aC5pbXVsKFF0LFVuKXwwKStNYXRoLmltdWwoZ24sc24pfDAsRj1GK01hdGguaW11bChnbixVbil8MCxUPVQrTWF0aC5pbXVsKFVlLHRuKXwwLFM9KFM9UytNYXRoLmltdWwoVWUsem4pfDApK01hdGguaW11bCh5dCx0bil8MCxGPUYrTWF0aC5pbXVsKHl0LHpuKXwwLFQ9VCtNYXRoLmlt''@;'; + put 'put ''dWwoZnQsQm4pfDAsUz0oUz1TK01hdGguaW11bChmdCxrcil8MCkrTWF0aC5pbXVsKEh0LEJuKXwwLEY9RitNYXRoLmltdWwoSHQsa3IpfDAsVD1UK01hdGguaW11bChhdCx1bil8MCxTPShTPVMrTWF0aC5pbXVsKGF0LGNuKXwwKStNYXRoLmltdWwoTHQsdW4pfDAsRj1GK01hdGguaW11bChM''@;'; + put 'put ''dCxjbil8MCxUPVQrTWF0aC5pbXVsKF90LEd0KXwwLFM9KFM9UytNYXRoLmltdWwoX3Qsa24pfDApK01hdGguaW11bCh0dCxHdCl8MCxGPUYrTWF0aC5pbXVsKHR0LGtuKXwwO3ZhciBkMD0oUGUrKFQ9VCtNYXRoLmltdWwoaHQsZW4pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bCho''@;'; + put 'put ''dCxJbil8MCkrTWF0aC5pbXVsKEJ0LGVuKXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGguaW11bChCdCxJbil8MCkrKFM+Pj4xMyl8MCkrKGQwPj4+MjYpfDAsZDAmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGJuLHBuKSxTPShTPU1hdGguaW11bChibixLbikpK01hdGguaW11bChlcixwbil8MCxG''@;'; + put 'put ''PU1hdGguaW11bChlcixLbiksVD1UK01hdGguaW11bCh5bixzbil8MCxTPShTPVMrTWF0aC5pbXVsKHluLFVuKXwwKStNYXRoLmltdWwobG4sc24pfDAsRj1GK01hdGguaW11bChsbixVbil8MCxUPVQrTWF0aC5pbXVsKFF0LHRuKXwwLFM9KFM9UytNYXRoLmltdWwoUXQsem4pfDApK01hdGgu''@;'; + put 'put ''aW11bChnbix0bil8MCxGPUYrTWF0aC5pbXVsKGduLHpuKXwwLFQ9VCtNYXRoLmltdWwoVWUsQm4pfDAsUz0oUz1TK01hdGguaW11bChVZSxrcil8MCkrTWF0aC5pbXVsKHl0LEJuKXwwLEY9RitNYXRoLmltdWwoeXQsa3IpfDAsVD1UK01hdGguaW11bChmdCx1bil8MCxTPShTPVMrTWF0aC5p''@;'; + put 'put ''bXVsKGZ0LGNuKXwwKStNYXRoLmltdWwoSHQsdW4pfDAsRj1GK01hdGguaW11bChIdCxjbil8MCxUPVQrTWF0aC5pbXVsKGF0LEd0KXwwLFM9KFM9UytNYXRoLmltdWwoYXQsa24pfDApK01hdGguaW11bChMdCxHdCl8MCxGPUYrTWF0aC5pbXVsKEx0LGtuKXwwO3ZhciBtMD0oUGUrKFQ9VCtN''@;'; + put 'put ''YXRoLmltdWwoX3QsZW4pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bChfdCxJbil8MCkrTWF0aC5pbXVsKHR0LGVuKXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGguaW11bCh0dCxJbil8MCkrKFM+Pj4xMyl8MCkrKG0wPj4+MjYpfDAsbTAmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGJu''@;'; + put 'put ''LHNuKSxTPShTPU1hdGguaW11bChibixVbikpK01hdGguaW11bChlcixzbil8MCxGPU1hdGguaW11bChlcixVbiksVD1UK01hdGguaW11bCh5bix0bil8MCxTPShTPVMrTWF0aC5pbXVsKHluLHpuKXwwKStNYXRoLmltdWwobG4sdG4pfDAsRj1GK01hdGguaW11bChsbix6bil8MCxUPVQrTWF0''@;'; + put 'put ''aC5pbXVsKFF0LEJuKXwwLFM9KFM9UytNYXRoLmltdWwoUXQsa3IpfDApK01hdGguaW11bChnbixCbil8MCxGPUYrTWF0aC5pbXVsKGduLGtyKXwwLFQ9VCtNYXRoLmltdWwoVWUsdW4pfDAsUz0oUz1TK01hdGguaW11bChVZSxjbil8MCkrTWF0aC5pbXVsKHl0LHVuKXwwLEY9RitNYXRoLmlt''@;'; + put 'put ''dWwoeXQsY24pfDAsVD1UK01hdGguaW11bChmdCxHdCl8MCxTPShTPVMrTWF0aC5pbXVsKGZ0LGtuKXwwKStNYXRoLmltdWwoSHQsR3QpfDAsRj1GK01hdGguaW11bChIdCxrbil8MDt2YXIgRzA9KFBlKyhUPVQrTWF0aC5pbXVsKGF0LGVuKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmlt''@;'; + put 'put ''dWwoYXQsSW4pfDApK01hdGguaW11bChMdCxlbil8MCkpPDwxMyl8MDtQZT0oKEY9RitNYXRoLmltdWwoTHQsSW4pfDApKyhTPj4+MTMpfDApKyhHMD4+PjI2KXwwLEcwJj02NzEwODg2MyxUPU1hdGguaW11bChibix0biksUz0oUz1NYXRoLmltdWwoYm4sem4pKStNYXRoLmltdWwoZXIsdG4p''@;'; + put 'put ''fDAsRj1NYXRoLmltdWwoZXIsem4pLFQ9VCtNYXRoLmltdWwoeW4sQm4pfDAsUz0oUz1TK01hdGguaW11bCh5bixrcil8MCkrTWF0aC5pbXVsKGxuLEJuKXwwLEY9RitNYXRoLmltdWwobG4sa3IpfDAsVD1UK01hdGguaW11bChRdCx1bil8MCxTPShTPVMrTWF0aC5pbXVsKFF0LGNuKXwwKStN''@;'; + put 'put ''YXRoLmltdWwoZ24sdW4pfDAsRj1GK01hdGguaW11bChnbixjbil8MCxUPVQrTWF0aC5pbXVsKFVlLEd0KXwwLFM9KFM9UytNYXRoLmltdWwoVWUsa24pfDApK01hdGguaW11bCh5dCxHdCl8MCxGPUYrTWF0aC5pbXVsKHl0LGtuKXwwO3ZhciBEaT0oUGUrKFQ9VCtNYXRoLmltdWwoZnQsZW4p''@;'; + put 'put ''fDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bChmdCxJbil8MCkrTWF0aC5pbXVsKEh0LGVuKXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGguaW11bChIdCxJbil8MCkrKFM+Pj4xMyl8MCkrKERpPj4+MjYpfDAsRGkmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGJuLEJuKSxTPShTPU1hdGgu''@;'; + put 'put ''aW11bChibixrcikpK01hdGguaW11bChlcixCbil8MCxGPU1hdGguaW11bChlcixrciksVD1UK01hdGguaW11bCh5bix1bil8MCxTPShTPVMrTWF0aC5pbXVsKHluLGNuKXwwKStNYXRoLmltdWwobG4sdW4pfDAsRj1GK01hdGguaW11bChsbixjbil8MCxUPVQrTWF0aC5pbXVsKFF0LEd0KXww''@;'; + put 'put ''LFM9KFM9UytNYXRoLmltdWwoUXQsa24pfDApK01hdGguaW11bChnbixHdCl8MCxGPUYrTWF0aC5pbXVsKGduLGtuKXwwO3ZhciBXMD0oUGUrKFQ9VCtNYXRoLmltdWwoVWUsZW4pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bChVZSxJbil8MCkrTWF0aC5pbXVsKHl0LGVuKXwwKSk8''@;'; + put 'put ''PDEzKXwwO1BlPSgoRj1GK01hdGguaW11bCh5dCxJbil8MCkrKFM+Pj4xMyl8MCkrKFcwPj4+MjYpfDAsVzAmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGJuLHVuKSxTPShTPU1hdGguaW11bChibixjbikpK01hdGguaW11bChlcix1bil8MCxGPU1hdGguaW11bChlcixjbiksVD1UK01hdGguaW11''@;'; + put 'put ''bCh5bixHdCl8MCxTPShTPVMrTWF0aC5pbXVsKHluLGtuKXwwKStNYXRoLmltdWwobG4sR3QpfDAsRj1GK01hdGguaW11bChsbixrbil8MDt2YXIgRW89KFBlKyhUPVQrTWF0aC5pbXVsKFF0LGVuKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoUXQsSW4pfDApK01hdGguaW11bChn''@;'; + put 'put ''bixlbil8MCkpPDwxMyl8MDtQZT0oKEY9RitNYXRoLmltdWwoZ24sSW4pfDApKyhTPj4+MTMpfDApKyhFbz4+PjI2KXwwLEVvJj02NzEwODg2MyxUPU1hdGguaW11bChibixHdCksUz0oUz1NYXRoLmltdWwoYm4sa24pKStNYXRoLmltdWwoZXIsR3QpfDAsRj1NYXRoLmltdWwoZXIsa24pO3Zh''@;'; + put 'put ''ciBxbz0oUGUrKFQ9VCtNYXRoLmltdWwoeW4sZW4pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bCh5bixJbil8MCkrTWF0aC5pbXVsKGxuLGVuKXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGguaW11bChsbixJbil8MCkrKFM+Pj4xMyl8MCkrKHFvPj4+MjYpfDAscW8mPTY3MTA4ODYz''@;'; + put 'put ''O3ZhciBjYT0oUGUrKFQ9TWF0aC5pbXVsKGJuLGVuKSl8MCkrKCg4MTkxJihTPShTPU1hdGguaW11bChibixJbikpK01hdGguaW11bChlcixlbil8MCkpPDwxMyl8MDtyZXR1cm4gUGU9KChGPU1hdGguaW11bChlcixJbikpKyhTPj4+MTMpfDApKyhjYT4+PjI2KXwwLGNhJj02NzEwODg2MyxE''@;'; + put 'put ''ZVswXT1KbixEZVsxXT1vcixEZVsyXT1ncixEZVszXT1LcixEZVs0XT1WcixEZVs1XT1paSxEZVs2XT1ScixEZVs3XT1saSxEZVs4XT1NaSxEZVs5XT1vMCxEZVsxMF09bjAsRGVbMTFdPWQwLERlWzEyXT1tMCxEZVsxM109RzAsRGVbMTRdPURpLERlWzE1XT1XMCxEZVsxNl09RW8sRGVbMTdd''@;'; + put 'put ''PXFvLERlWzE4XT1jYSwwIT09UGUmJihEZVsxOV09UGUsVi5sZW5ndGgrKyksVn07ZnVuY3Rpb24ga2UoeCxQLFYpe3JldHVybihuZXcgU2UpLm11bHAoeCxQLFYpfWZ1bmN0aW9uIFNlKHgsUCl7dGhpcy54PXgsdGhpcy55PVB9TWF0aC5pbXVsfHwoQWU9dmUpLE4ucHJvdG90eXBlLm11bFRv''@;'; + put 'put ''PWZ1bmN0aW9uKHgsUCl7dmFyIFQ9dGhpcy5sZW5ndGgreC5sZW5ndGg7cmV0dXJuIDEwPT09dGhpcy5sZW5ndGgmJjEwPT09eC5sZW5ndGg/QWUodGhpcyx4LFApOlQ8NjM/dmUodGhpcyx4LFApOlQ8MTAyND9mdW5jdGlvbihTLEYseWUpe3llLm5lZ2F0aXZlPUYubmVnYXRpdmVeUy5uZWdh''@;'; + put 'put ''dGl2ZSx5ZS5sZW5ndGg9Uy5sZW5ndGgrRi5sZW5ndGg7Zm9yKHZhciBDZT0wLERlPTAsUGU9MDtQZTx5ZS5sZW5ndGgtMTtQZSsrKXt2YXIgUWU9RGU7RGU9MDtmb3IodmFyICRlPTY3MTA4ODYzJkNlLGd0PU1hdGgubWluKFBlLEYubGVuZ3RoLTEpLHd0PU1hdGgubWF4KDAsUGUtUy5sZW5n''@;'; + put 'put ''dGgrMSk7d3Q8PWd0O3d0Kyspe3ZhciB2dD0oMHxTLndvcmRzW1BlLXd0XSkqKDB8Ri53b3Jkc1t3dF0pLEF0PTY3MTA4ODYzJnZ0OyRlPTY3MTA4ODYzJihBdD1BdCskZXwwKSxEZSs9KFFlPShRZT1RZSsodnQvNjcxMDg4NjR8MCl8MCkrKEF0Pj4+MjYpfDApPj4+MjYsUWUmPTY3MTA4ODYz''@;'; + put 'put ''fXllLndvcmRzW1BlXT0kZSxDZT1RZSxRZT1EZX1yZXR1cm4gMCE9PUNlP3llLndvcmRzW1BlXT1DZTp5ZS5sZW5ndGgtLSx5ZS5zdHJpcCgpfSh0aGlzLHgsUCk6a2UodGhpcyx4LFApfSxTZS5wcm90b3R5cGUubWFrZVJCVD1mdW5jdGlvbih4KXtmb3IodmFyIFA9bmV3IEFycmF5KHgpLFY9''@;'; + put 'put ''Ti5wcm90b3R5cGUuX2NvdW50Qml0cyh4KS0xLFQ9MDtUPHg7VCsrKVBbVF09dGhpcy5yZXZCaW4oVCxWLHgpO3JldHVybiBQfSxTZS5wcm90b3R5cGUucmV2QmluPWZ1bmN0aW9uKHgsUCxWKXtpZigwPT09eHx8eD09PVYtMSlyZXR1cm4geDtmb3IodmFyIFQ9MCxTPTA7UzxQO1MrKylUfD0o''@;'; + put 'put ''MSZ4KTw8UC1TLTEseD4+PTE7cmV0dXJuIFR9LFNlLnByb3RvdHlwZS5wZXJtdXRlPWZ1bmN0aW9uKHgsUCxWLFQsUyxGKXtmb3IodmFyIHllPTA7eWU8Rjt5ZSsrKVRbeWVdPVBbeFt5ZV1dLFNbeWVdPVZbeFt5ZV1dfSxTZS5wcm90b3R5cGUudHJhbnNmb3JtPWZ1bmN0aW9uKHgsUCxWLFQs''@;'; + put 'put ''UyxGKXt0aGlzLnBlcm11dGUoRix4LFAsVixULFMpO2Zvcih2YXIgeWU9MTt5ZTxTO3llPDw9MSlmb3IodmFyIENlPXllPDwxLERlPU1hdGguY29zKDIqTWF0aC5QSS9DZSksUGU9TWF0aC5zaW4oMipNYXRoLlBJL0NlKSxRZT0wO1FlPFM7UWUrPUNlKWZvcih2YXIgJGU9RGUsZ3Q9UGUsd3Q9''@;'; + put 'put ''MDt3dDx5ZTt3dCsrKXt2YXIgbXQ9VltRZSt3dF0sdnQ9VFtRZSt3dF0sQXQ9VltRZSt3dCt5ZV0saHQ9VFtRZSt3dCt5ZV0sQnQ9JGUqQXQtZ3QqaHQ7aHQ9JGUqaHQrZ3QqQXQsVltRZSt3dF09bXQrKEF0PUJ0KSxUW1FlK3d0XT12dCtodCxWW1FlK3d0K3llXT1tdC1BdCxUW1FlK3d0K3ll''@;'; + put 'put ''XT12dC1odCx3dCE9PUNlJiYoQnQ9RGUqJGUtUGUqZ3QsZ3Q9RGUqZ3QrUGUqJGUsJGU9QnQpfX0sU2UucHJvdG90eXBlLmd1ZXNzTGVuMTNiPWZ1bmN0aW9uKHgsUCl7dmFyIFY9MXxNYXRoLm1heChQLHgpLFQ9MSZWLFM9MDtmb3IoVj1WLzJ8MDtWO1Y+Pj49MSlTKys7cmV0dXJuIDE8PFMr''@;'; + put 'put ''MStUfSxTZS5wcm90b3R5cGUuY29uanVnYXRlPWZ1bmN0aW9uKHgsUCxWKXtpZighKFY8PTEpKWZvcih2YXIgVD0wO1Q8Vi8yO1QrKyl7dmFyIFM9eFtUXTt4W1RdPXhbVi1ULTFdLHhbVi1ULTFdPVMsUz1QW1RdLFBbVF09LVBbVi1ULTFdLFBbVi1ULTFdPS1TfX0sU2UucHJvdG90eXBlLm5v''@;'; + put 'put ''cm1hbGl6ZTEzYj1mdW5jdGlvbih4LFApe2Zvcih2YXIgVj0wLFQ9MDtUPFAvMjtUKyspe3ZhciBTPTgxOTIqTWF0aC5yb3VuZCh4WzIqVCsxXS9QKStNYXRoLnJvdW5kKHhbMipUXS9QKStWO3hbVF09NjcxMDg4NjMmUyxWPVM8NjcxMDg4NjQ/MDpTLzY3MTA4ODY0fDB9cmV0dXJuIHh9LFNl''@;'; + put 'put ''LnByb3RvdHlwZS5jb252ZXJ0MTNiPWZ1bmN0aW9uKHgsUCxWLFQpe2Zvcih2YXIgUz0wLEY9MDtGPFA7RisrKVZbMipGXT04MTkxJihTKz0wfHhbRl0pLFZbMipGKzFdPTgxOTEmKFM+Pj49MTMpLFM+Pj49MTM7Zm9yKEY9MipQO0Y8VDsrK0YpVltGXT0wO1koMD09PVMpLFkoMD09KC04MTky''@;'; + put 'put ''JlMpKX0sU2UucHJvdG90eXBlLnN0dWI9ZnVuY3Rpb24oeCl7Zm9yKHZhciBQPW5ldyBBcnJheSh4KSxWPTA7Vjx4O1YrKylQW1ZdPTA7cmV0dXJuIFB9LFNlLnByb3RvdHlwZS5tdWxwPWZ1bmN0aW9uKHgsUCxWKXt2YXIgVD0yKnRoaXMuZ3Vlc3NMZW4xM2IoeC5sZW5ndGgsUC5sZW5ndGgp''@;'; + put 'put ''LFM9dGhpcy5tYWtlUkJUKFQpLEY9dGhpcy5zdHViKFQpLHllPW5ldyBBcnJheShUKSxDZT1uZXcgQXJyYXkoVCksRGU9bmV3IEFycmF5KFQpLFBlPW5ldyBBcnJheShUKSxRZT1uZXcgQXJyYXkoVCksJGU9bmV3IEFycmF5KFQpLGd0PVYud29yZHM7Z3QubGVuZ3RoPVQsdGhpcy5jb252ZXJ0''@;'; + put 'put ''MTNiKHgud29yZHMseC5sZW5ndGgseWUsVCksdGhpcy5jb252ZXJ0MTNiKFAud29yZHMsUC5sZW5ndGgsUGUsVCksdGhpcy50cmFuc2Zvcm0oeWUsRixDZSxEZSxULFMpLHRoaXMudHJhbnNmb3JtKFBlLEYsUWUsJGUsVCxTKTtmb3IodmFyIHd0PTA7d3Q8VDt3dCsrKXt2YXIgbXQ9Q2Vbd3Rd''@;'; + put 'put ''KlFlW3d0XS1EZVt3dF0qJGVbd3RdO0RlW3d0XT1DZVt3dF0qJGVbd3RdK0RlW3d0XSpRZVt3dF0sQ2Vbd3RdPW10fXJldHVybiB0aGlzLmNvbmp1Z2F0ZShDZSxEZSxUKSx0aGlzLnRyYW5zZm9ybShDZSxEZSxndCxGLFQsUyksdGhpcy5jb25qdWdhdGUoZ3QsRixUKSx0aGlzLm5vcm1hbGl6''@;'; + put 'put ''ZTEzYihndCxUKSxWLm5lZ2F0aXZlPXgubmVnYXRpdmVeUC5uZWdhdGl2ZSxWLmxlbmd0aD14Lmxlbmd0aCtQLmxlbmd0aCxWLnN0cmlwKCl9LE4ucHJvdG90eXBlLm11bD1mdW5jdGlvbih4KXt2YXIgUD1uZXcgTihudWxsKTtyZXR1cm4gUC53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgr''@;'; + put 'put ''eC5sZW5ndGgpLHRoaXMubXVsVG8oeCxQKX0sTi5wcm90b3R5cGUubXVsZj1mdW5jdGlvbih4KXt2YXIgUD1uZXcgTihudWxsKTtyZXR1cm4gUC53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgreC5sZW5ndGgpLGtlKHRoaXMseCxQKX0sTi5wcm90b3R5cGUuaW11bD1mdW5jdGlvbih4KXty''@;'; + put 'put ''ZXR1cm4gdGhpcy5jbG9uZSgpLm11bFRvKHgsdGhpcyl9LE4ucHJvdG90eXBlLmltdWxuPWZ1bmN0aW9uKHgpe1koIm51bWJlciI9PXR5cGVvZiB4KSxZKHg8NjcxMDg4NjQpO2Zvcih2YXIgUD0wLFY9MDtWPHRoaXMubGVuZ3RoO1YrKyl7dmFyIFQ9KDB8dGhpcy53b3Jkc1tWXSkqeCxTPSg2''@;'; + put 'put ''NzEwODg2MyZUKSsoNjcxMDg4NjMmUCk7UD4+PTI2LFArPVQvNjcxMDg4NjR8MCxQKz1TPj4+MjYsdGhpcy53b3Jkc1tWXT02NzEwODg2MyZTfXJldHVybiAwIT09UCYmKHRoaXMud29yZHNbVl09UCx0aGlzLmxlbmd0aCsrKSx0aGlzfSxOLnByb3RvdHlwZS5tdWxuPWZ1bmN0aW9uKHgpe3Jl''@;'; + put 'put ''dHVybiB0aGlzLmNsb25lKCkuaW11bG4oeCl9LE4ucHJvdG90eXBlLnNxcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLm11bCh0aGlzKX0sTi5wcm90b3R5cGUuaXNxcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLmltdWwodGhpcy5jbG9uZSgpKX0sTi5wcm90b3R5cGUucG93PWZ1bmN0aW9uKHgp''@;'; + put 'put ''e3ZhciBQPWZ1bmN0aW9uKEYpe2Zvcih2YXIgeWU9bmV3IEFycmF5KEYuYml0TGVuZ3RoKCkpLENlPTA7Q2U8eWUubGVuZ3RoO0NlKyspe3ZhciBQZT1DZSUyNjt5ZVtDZV09KEYud29yZHNbQ2UvMjZ8MF0mMTw8UGUpPj4+UGV9cmV0dXJuIHllfSh4KTtpZigwPT09UC5sZW5ndGgpcmV0dXJu''@;'; + put 'put ''IG5ldyBOKDEpO2Zvcih2YXIgVj10aGlzLFQ9MDtUPFAubGVuZ3RoJiYwPT09UFtUXTtUKyssVj1WLnNxcigpKTtpZigrK1Q8UC5sZW5ndGgpZm9yKHZhciBTPVYuc3FyKCk7VDxQLmxlbmd0aDtUKyssUz1TLnNxcigpKTAhPT1QW1RdJiYoVj1WLm11bChTKSk7cmV0dXJuIFZ9LE4ucHJvdG90''@;'; + put 'put ''eXBlLml1c2hsbj1mdW5jdGlvbih4KXtZKCJudW1iZXIiPT10eXBlb2YgeCYmeD49MCk7dmFyIFAsVj14JTI2LFQ9KHgtVikvMjYsUz02NzEwODg2Mz4+PjI2LVY8PDI2LVY7aWYoMCE9PVYpe3ZhciBGPTA7Zm9yKFA9MDtQPHRoaXMubGVuZ3RoO1ArKyl7dmFyIHllPXRoaXMud29yZHNbUF0m''@;'; + put 'put ''Uzt0aGlzLndvcmRzW1BdPSgwfHRoaXMud29yZHNbUF0pLXllPDxWfEYsRj15ZT4+PjI2LVZ9RiYmKHRoaXMud29yZHNbUF09Rix0aGlzLmxlbmd0aCsrKX1pZigwIT09VCl7Zm9yKFA9dGhpcy5sZW5ndGgtMTtQPj0wO1AtLSl0aGlzLndvcmRzW1ArVF09dGhpcy53b3Jkc1tQXTtmb3IoUD0w''@;'; + put 'put ''O1A8VDtQKyspdGhpcy53b3Jkc1tQXT0wO3RoaXMubGVuZ3RoKz1UfXJldHVybiB0aGlzLnN0cmlwKCl9LE4ucHJvdG90eXBlLmlzaGxuPWZ1bmN0aW9uKHgpe3JldHVybiBZKDA9PT10aGlzLm5lZ2F0aXZlKSx0aGlzLml1c2hsbih4KX0sTi5wcm90b3R5cGUuaXVzaHJuPWZ1bmN0aW9uKHgs''@;'; + put 'put ''UCxWKXt2YXIgVDtZKCJudW1iZXIiPT10eXBlb2YgeCYmeD49MCksVD1QPyhQLVAlMjYpLzI2OjA7dmFyIFM9eCUyNixGPU1hdGgubWluKCh4LVMpLzI2LHRoaXMubGVuZ3RoKSx5ZT02NzEwODg2M142NzEwODg2Mz4+PlM8PFMsQ2U9VjtpZihULT1GLFQ9TWF0aC5tYXgoMCxUKSxDZSl7Zm9y''@;'; + put 'put ''KHZhciBEZT0wO0RlPEY7RGUrKylDZS53b3Jkc1tEZV09dGhpcy53b3Jkc1tEZV07Q2UubGVuZ3RoPUZ9aWYoMCE9PUYpaWYodGhpcy5sZW5ndGg+Rilmb3IodGhpcy5sZW5ndGgtPUYsRGU9MDtEZTx0aGlzLmxlbmd0aDtEZSsrKXRoaXMud29yZHNbRGVdPXRoaXMud29yZHNbRGUrRl07ZWxz''@;'; + put 'put ''ZSB0aGlzLndvcmRzWzBdPTAsdGhpcy5sZW5ndGg9MTt2YXIgUGU9MDtmb3IoRGU9dGhpcy5sZW5ndGgtMTtEZT49MCYmKDAhPT1QZXx8RGU+PVQpO0RlLS0pe3ZhciBRZT0wfHRoaXMud29yZHNbRGVdO3RoaXMud29yZHNbRGVdPVBlPDwyNi1TfFFlPj4+UyxQZT1RZSZ5ZX1yZXR1cm4gQ2Um''@;'; + put 'put ''JjAhPT1QZSYmKENlLndvcmRzW0NlLmxlbmd0aCsrXT1QZSksMD09PXRoaXMubGVuZ3RoJiYodGhpcy53b3Jkc1swXT0wLHRoaXMubGVuZ3RoPTEpLHRoaXMuc3RyaXAoKX0sTi5wcm90b3R5cGUuaXNocm49ZnVuY3Rpb24oeCxQLFYpe3JldHVybiBZKDA9PT10aGlzLm5lZ2F0aXZlKSx0aGlz''@;'; + put 'put ''Lml1c2hybih4LFAsVil9LE4ucHJvdG90eXBlLnNobG49ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc2hsbih4KX0sTi5wcm90b3R5cGUudXNobG49ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pdXNobG4oeCl9LE4ucHJvdG90eXBlLnNocm49ZnVuY3Rpb24oeCl7''@;'; + put 'put ''cmV0dXJuIHRoaXMuY2xvbmUoKS5pc2hybih4KX0sTi5wcm90b3R5cGUudXNocm49ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pdXNocm4oeCl9LE4ucHJvdG90eXBlLnRlc3RuPWZ1bmN0aW9uKHgpe1koIm51bWJlciI9PXR5cGVvZiB4JiZ4Pj0wKTt2YXIgUD14JTI2LFY9KHgt''@;'; + put 'put ''UCkvMjY7cmV0dXJuISh0aGlzLmxlbmd0aDw9Vnx8ISh0aGlzLndvcmRzW1ZdJjE8PFApKX0sTi5wcm90b3R5cGUuaW1hc2tuPWZ1bmN0aW9uKHgpe1koIm51bWJlciI9PXR5cGVvZiB4JiZ4Pj0wKTt2YXIgUD14JTI2LFY9KHgtUCkvMjY7cmV0dXJuIFkoMD09PXRoaXMubmVnYXRpdmUsImlt''@;'; + put 'put ''YXNrbiB3b3JrcyBvbmx5IHdpdGggcG9zaXRpdmUgbnVtYmVycyIpLHRoaXMubGVuZ3RoPD1WP3RoaXM6KDAhPT1QJiZWKyssdGhpcy5sZW5ndGg9TWF0aC5taW4oVix0aGlzLmxlbmd0aCksMCE9PVAmJih0aGlzLndvcmRzW3RoaXMubGVuZ3RoLTFdJj02NzEwODg2M142NzEwODg2Mz4+PlA8''@;'; + put 'put ''PFApLHRoaXMuc3RyaXAoKSl9LE4ucHJvdG90eXBlLm1hc2tuPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmNsb25lKCkuaW1hc2tuKHgpfSxOLnByb3RvdHlwZS5pYWRkbj1mdW5jdGlvbih4KXtyZXR1cm4gWSgibnVtYmVyIj09dHlwZW9mIHgpLFkoeDw2NzEwODg2NCkseDwwP3RoaXMuaXN1''@;'; + put 'put ''Ym4oLXgpOjAhPT10aGlzLm5lZ2F0aXZlPzE9PT10aGlzLmxlbmd0aCYmKDB8dGhpcy53b3Jkc1swXSk8eD8odGhpcy53b3Jkc1swXT14LSgwfHRoaXMud29yZHNbMF0pLHRoaXMubmVnYXRpdmU9MCx0aGlzKToodGhpcy5uZWdhdGl2ZT0wLHRoaXMuaXN1Ym4oeCksdGhpcy5uZWdhdGl2ZT0x''@;'; + put 'put ''LHRoaXMpOnRoaXMuX2lhZGRuKHgpfSxOLnByb3RvdHlwZS5faWFkZG49ZnVuY3Rpb24oeCl7dGhpcy53b3Jkc1swXSs9eDtmb3IodmFyIFA9MDtQPHRoaXMubGVuZ3RoJiZ0aGlzLndvcmRzW1BdPj02NzEwODg2NDtQKyspdGhpcy53b3Jkc1tQXS09NjcxMDg4NjQsUD09PXRoaXMubGVuZ3Ro''@;'; + put 'put ''LTE/dGhpcy53b3Jkc1tQKzFdPTE6dGhpcy53b3Jkc1tQKzFdKys7cmV0dXJuIHRoaXMubGVuZ3RoPU1hdGgubWF4KHRoaXMubGVuZ3RoLFArMSksdGhpc30sTi5wcm90b3R5cGUuaXN1Ym49ZnVuY3Rpb24oeCl7aWYoWSgibnVtYmVyIj09dHlwZW9mIHgpLFkoeDw2NzEwODg2NCkseDwwKXJl''@;'; + put 'put ''dHVybiB0aGlzLmlhZGRuKC14KTtpZigwIT09dGhpcy5uZWdhdGl2ZSlyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLHRoaXMuaWFkZG4oeCksdGhpcy5uZWdhdGl2ZT0xLHRoaXM7aWYodGhpcy53b3Jkc1swXS09eCwxPT09dGhpcy5sZW5ndGgmJnRoaXMud29yZHNbMF08MCl0aGlzLndvcmRzWzBd''@;'; + put 'put ''PS10aGlzLndvcmRzWzBdLHRoaXMubmVnYXRpdmU9MTtlbHNlIGZvcih2YXIgUD0wO1A8dGhpcy5sZW5ndGgmJnRoaXMud29yZHNbUF08MDtQKyspdGhpcy53b3Jkc1tQXSs9NjcxMDg4NjQsdGhpcy53b3Jkc1tQKzFdLT0xO3JldHVybiB0aGlzLnN0cmlwKCl9LE4ucHJvdG90eXBlLmFkZG49''@;'; + put 'put ''ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pYWRkbih4KX0sTi5wcm90b3R5cGUuc3Vibj1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlzdWJuKHgpfSxOLnByb3RvdHlwZS5pYWJzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlzfSxOLnByb3Rv''@;'; + put 'put ''dHlwZS5hYnM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlhYnMoKX0sTi5wcm90b3R5cGUuX2lzaGxuc3VibXVsPWZ1bmN0aW9uKHgsUCxWKXt2YXIgVCxTO3RoaXMuX2V4cGFuZCh4Lmxlbmd0aCtWKTt2YXIgeWU9MDtmb3IoVD0wO1Q8eC5sZW5ndGg7VCsrKXtTPSgwfHRoaXMu''@;'; + put 'put ''d29yZHNbVCtWXSkreWU7dmFyIENlPSgwfHgud29yZHNbVF0pKlA7eWU9KChTLT02NzEwODg2MyZDZSk+PjI2KS0oQ2UvNjcxMDg4NjR8MCksdGhpcy53b3Jkc1tUK1ZdPTY3MTA4ODYzJlN9Zm9yKDtUPHRoaXMubGVuZ3RoLVY7VCsrKXllPShTPSgwfHRoaXMud29yZHNbVCtWXSkreWUpPj4y''@;'; + put 'put ''Nix0aGlzLndvcmRzW1QrVl09NjcxMDg4NjMmUztpZigwPT09eWUpcmV0dXJuIHRoaXMuc3RyaXAoKTtmb3IoWSgtMT09PXllKSx5ZT0wLFQ9MDtUPHRoaXMubGVuZ3RoO1QrKyl5ZT0oUz0tKDB8dGhpcy53b3Jkc1tUXSkreWUpPj4yNix0aGlzLndvcmRzW1RdPTY3MTA4ODYzJlM7cmV0dXJu''@;'; + put 'put ''IHRoaXMubmVnYXRpdmU9MSx0aGlzLnN0cmlwKCl9LE4ucHJvdG90eXBlLl93b3JkRGl2PWZ1bmN0aW9uKHgsUCl7dmFyIFYsVD10aGlzLmNsb25lKCksUz14LEY9MHxTLndvcmRzW1MubGVuZ3RoLTFdOzAhPShWPTI2LXRoaXMuX2NvdW50Qml0cyhGKSkmJihTPVMudXNobG4oViksVC5pdXNo''@;'; + put 'put ''bG4oViksRj0wfFMud29yZHNbUy5sZW5ndGgtMV0pO3ZhciB5ZSxDZT1ULmxlbmd0aC1TLmxlbmd0aDtpZigibW9kIiE9PVApeyh5ZT1uZXcgTihudWxsKSkubGVuZ3RoPUNlKzEseWUud29yZHM9bmV3IEFycmF5KHllLmxlbmd0aCk7Zm9yKHZhciBEZT0wO0RlPHllLmxlbmd0aDtEZSsrKXll''@;'; + put 'put ''LndvcmRzW0RlXT0wfXZhciBQZT1ULmNsb25lKCkuX2lzaGxuc3VibXVsKFMsMSxDZSk7MD09PVBlLm5lZ2F0aXZlJiYoVD1QZSx5ZSYmKHllLndvcmRzW0NlXT0xKSk7Zm9yKHZhciBRZT1DZS0xO1FlPj0wO1FlLS0pe3ZhciAkZT02NzEwODg2NCooMHxULndvcmRzW1MubGVuZ3RoK1FlXSkr''@;'; + put 'put ''KDB8VC53b3Jkc1tTLmxlbmd0aCtRZS0xXSk7Zm9yKCRlPU1hdGgubWluKCRlL0Z8MCw2NzEwODg2MyksVC5faXNobG5zdWJtdWwoUywkZSxRZSk7MCE9PVQubmVnYXRpdmU7KSRlLS0sVC5uZWdhdGl2ZT0wLFQuX2lzaGxuc3VibXVsKFMsMSxRZSksVC5pc1plcm8oKXx8KFQubmVnYXRpdmVe''@;'; + put 'put ''PTEpO3llJiYoeWUud29yZHNbUWVdPSRlKX1yZXR1cm4geWUmJnllLnN0cmlwKCksVC5zdHJpcCgpLCJkaXYiIT09UCYmMCE9PVYmJlQuaXVzaHJuKFYpLHtkaXY6eWV8fG51bGwsbW9kOlR9fSxOLnByb3RvdHlwZS5kaXZtb2Q9ZnVuY3Rpb24oeCxQLFYpe3JldHVybiBZKCF4LmlzWmVybygp''@;'; + put 'put ''KSx0aGlzLmlzWmVybygpP3tkaXY6bmV3IE4oMCksbW9kOm5ldyBOKDApfTowIT09dGhpcy5uZWdhdGl2ZSYmMD09PXgubmVnYXRpdmU/KEY9dGhpcy5uZWcoKS5kaXZtb2QoeCxQKSwibW9kIiE9PVAmJihUPUYuZGl2Lm5lZygpKSwiZGl2IiE9PVAmJihTPUYubW9kLm5lZygpLFYmJjAhPT1T''@;'; + put 'put ''Lm5lZ2F0aXZlJiZTLmlhZGQoeCkpLHtkaXY6VCxtb2Q6U30pOjA9PT10aGlzLm5lZ2F0aXZlJiYwIT09eC5uZWdhdGl2ZT8oRj10aGlzLmRpdm1vZCh4Lm5lZygpLFApLCJtb2QiIT09UCYmKFQ9Ri5kaXYubmVnKCkpLHtkaXY6VCxtb2Q6Ri5tb2R9KTowIT0odGhpcy5uZWdhdGl2ZSZ4Lm5l''@;'; + put 'put ''Z2F0aXZlKT8oRj10aGlzLm5lZygpLmRpdm1vZCh4Lm5lZygpLFApLCJkaXYiIT09UCYmKFM9Ri5tb2QubmVnKCksViYmMCE9PVMubmVnYXRpdmUmJlMuaXN1Yih4KSkse2RpdjpGLmRpdixtb2Q6U30pOngubGVuZ3RoPnRoaXMubGVuZ3RofHx0aGlzLmNtcCh4KTwwP3tkaXY6bmV3IE4oMCks''@;'; + put 'put ''bW9kOnRoaXN9OjE9PT14Lmxlbmd0aD8iZGl2Ij09PVA/e2Rpdjp0aGlzLmRpdm4oeC53b3Jkc1swXSksbW9kOm51bGx9OiJtb2QiPT09UD97ZGl2Om51bGwsbW9kOm5ldyBOKHRoaXMubW9kbih4LndvcmRzWzBdKSl9OntkaXY6dGhpcy5kaXZuKHgud29yZHNbMF0pLG1vZDpuZXcgTih0aGlz''@;'; + put 'put ''Lm1vZG4oeC53b3Jkc1swXSkpfTp0aGlzLl93b3JkRGl2KHgsUCk7dmFyIFQsUyxGfSxOLnByb3RvdHlwZS5kaXY9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuZGl2bW9kKHgsImRpdiIsITEpLmRpdn0sTi5wcm90b3R5cGUubW9kPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmRpdm1vZCh4LCJt''@;'; + put 'put ''b2QiLCExKS5tb2R9LE4ucHJvdG90eXBlLnVtb2Q9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuZGl2bW9kKHgsIm1vZCIsITApLm1vZH0sTi5wcm90b3R5cGUuZGl2Um91bmQ9ZnVuY3Rpb24oeCl7dmFyIFA9dGhpcy5kaXZtb2QoeCk7aWYoUC5tb2QuaXNaZXJvKCkpcmV0dXJuIFAuZGl2O3Zh''@;'; + put 'put ''ciBWPTAhPT1QLmRpdi5uZWdhdGl2ZT9QLm1vZC5pc3ViKHgpOlAubW9kLFQ9eC51c2hybigxKSxTPXguYW5kbG4oMSksRj1WLmNtcChUKTtyZXR1cm4gRjwwfHwxPT09UyYmMD09PUY/UC5kaXY6MCE9PVAuZGl2Lm5lZ2F0aXZlP1AuZGl2LmlzdWJuKDEpOlAuZGl2LmlhZGRuKDEpfSxOLnBy''@;'; + put 'put ''b3RvdHlwZS5tb2RuPWZ1bmN0aW9uKHgpe1koeDw9NjcxMDg4NjMpO2Zvcih2YXIgUD02NzEwODg2NCV4LFY9MCxUPXRoaXMubGVuZ3RoLTE7VD49MDtULS0pVj0oUCpWKygwfHRoaXMud29yZHNbVF0pKSV4O3JldHVybiBWfSxOLnByb3RvdHlwZS5pZGl2bj1mdW5jdGlvbih4KXtZKHg8PTY3''@;'; + put 'put ''MTA4ODYzKTtmb3IodmFyIFA9MCxWPXRoaXMubGVuZ3RoLTE7Vj49MDtWLS0pe3ZhciBUPSgwfHRoaXMud29yZHNbVl0pKzY3MTA4ODY0KlA7dGhpcy53b3Jkc1tWXT1UL3h8MCxQPVQleH1yZXR1cm4gdGhpcy5zdHJpcCgpfSxOLnByb3RvdHlwZS5kaXZuPWZ1bmN0aW9uKHgpe3JldHVybiB0''@;'; + put 'put ''aGlzLmNsb25lKCkuaWRpdm4oeCl9LE4ucHJvdG90eXBlLmVnY2Q9ZnVuY3Rpb24oeCl7WSgwPT09eC5uZWdhdGl2ZSksWSgheC5pc1plcm8oKSk7dmFyIFA9dGhpcyxWPXguY2xvbmUoKTtQPTAhPT1QLm5lZ2F0aXZlP1AudW1vZCh4KTpQLmNsb25lKCk7Zm9yKHZhciBUPW5ldyBOKDEpLFM9''@;'; + put 'put ''bmV3IE4oMCksRj1uZXcgTigwKSx5ZT1uZXcgTigxKSxDZT0wO1AuaXNFdmVuKCkmJlYuaXNFdmVuKCk7KVAuaXVzaHJuKDEpLFYuaXVzaHJuKDEpLCsrQ2U7Zm9yKHZhciBEZT1WLmNsb25lKCksUGU9UC5jbG9uZSgpOyFQLmlzWmVybygpOyl7Zm9yKHZhciBRZT0wLCRlPTE7MD09KFAud29y''@;'; + put 'put ''ZHNbMF0mJGUpJiZRZTwyNjsrK1FlLCRlPDw9MSk7aWYoUWU+MClmb3IoUC5pdXNocm4oUWUpO1FlLS0gPjA7KShULmlzT2RkKCl8fFMuaXNPZGQoKSkmJihULmlhZGQoRGUpLFMuaXN1YihQZSkpLFQuaXVzaHJuKDEpLFMuaXVzaHJuKDEpO2Zvcih2YXIgZ3Q9MCx3dD0xOzA9PShWLndvcmRz''@;'; + put 'put ''WzBdJnd0KSYmZ3Q8MjY7KytndCx3dDw8PTEpO2lmKGd0PjApZm9yKFYuaXVzaHJuKGd0KTtndC0tID4wOykoRi5pc09kZCgpfHx5ZS5pc09kZCgpKSYmKEYuaWFkZChEZSkseWUuaXN1YihQZSkpLEYuaXVzaHJuKDEpLHllLml1c2hybigxKTtQLmNtcChWKT49MD8oUC5pc3ViKFYpLFQuaXN1''@;'; + put 'put ''YihGKSxTLmlzdWIoeWUpKTooVi5pc3ViKFApLEYuaXN1YihUKSx5ZS5pc3ViKFMpKX1yZXR1cm57YTpGLGI6eWUsZ2NkOlYuaXVzaGxuKENlKX19LE4ucHJvdG90eXBlLl9pbnZtcD1mdW5jdGlvbih4KXtZKDA9PT14Lm5lZ2F0aXZlKSxZKCF4LmlzWmVybygpKTt2YXIgUD10aGlzLFY9eC5j''@;'; + put 'put ''bG9uZSgpO1A9MCE9PVAubmVnYXRpdmU/UC51bW9kKHgpOlAuY2xvbmUoKTtmb3IodmFyIFQsUz1uZXcgTigxKSxGPW5ldyBOKDApLHllPVYuY2xvbmUoKTtQLmNtcG4oMSk+MCYmVi5jbXBuKDEpPjA7KXtmb3IodmFyIENlPTAsRGU9MTswPT0oUC53b3Jkc1swXSZEZSkmJkNlPDI2OysrQ2Us''@;'; + put 'put ''RGU8PD0xKTtpZihDZT4wKWZvcihQLml1c2hybihDZSk7Q2UtLSA+MDspUy5pc09kZCgpJiZTLmlhZGQoeWUpLFMuaXVzaHJuKDEpO2Zvcih2YXIgUGU9MCxRZT0xOzA9PShWLndvcmRzWzBdJlFlKSYmUGU8MjY7KytQZSxRZTw8PTEpO2lmKFBlPjApZm9yKFYuaXVzaHJuKFBlKTtQZS0tID4w''@;'; + put 'put ''OylGLmlzT2RkKCkmJkYuaWFkZCh5ZSksRi5pdXNocm4oMSk7UC5jbXAoVik+PTA/KFAuaXN1YihWKSxTLmlzdWIoRikpOihWLmlzdWIoUCksRi5pc3ViKFMpKX1yZXR1cm4oVD0wPT09UC5jbXBuKDEpP1M6RikuY21wbigwKTwwJiZULmlhZGQoeCksVH0sTi5wcm90b3R5cGUuZ2NkPWZ1bmN0''@;'; + put 'put ''aW9uKHgpe2lmKHRoaXMuaXNaZXJvKCkpcmV0dXJuIHguYWJzKCk7aWYoeC5pc1plcm8oKSlyZXR1cm4gdGhpcy5hYnMoKTt2YXIgUD10aGlzLmNsb25lKCksVj14LmNsb25lKCk7UC5uZWdhdGl2ZT0wLFYubmVnYXRpdmU9MDtmb3IodmFyIFQ9MDtQLmlzRXZlbigpJiZWLmlzRXZlbigpO1Qr''@;'; + put 'put ''KylQLml1c2hybigxKSxWLml1c2hybigxKTtmb3IoOzspe2Zvcig7UC5pc0V2ZW4oKTspUC5pdXNocm4oMSk7Zm9yKDtWLmlzRXZlbigpOylWLml1c2hybigxKTt2YXIgUz1QLmNtcChWKTtpZihTPDApe3ZhciBGPVA7UD1WLFY9Rn1lbHNlIGlmKDA9PT1TfHwwPT09Vi5jbXBuKDEpKWJyZWFr''@;'; + put 'put ''O1AuaXN1YihWKX1yZXR1cm4gVi5pdXNobG4oVCl9LE4ucHJvdG90eXBlLmludm09ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuZWdjZCh4KS5hLnVtb2QoeCl9LE4ucHJvdG90eXBlLmlzRXZlbj1mdW5jdGlvbigpe3JldHVybiAwPT0oMSZ0aGlzLndvcmRzWzBdKX0sTi5wcm90b3R5cGUuaXNP''@;'; + put 'put ''ZGQ9ZnVuY3Rpb24oKXtyZXR1cm4gMT09KDEmdGhpcy53b3Jkc1swXSl9LE4ucHJvdG90eXBlLmFuZGxuPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLndvcmRzWzBdJnh9LE4ucHJvdG90eXBlLmJpbmNuPWZ1bmN0aW9uKHgpe1koIm51bWJlciI9PXR5cGVvZiB4KTt2YXIgUD14JTI2LFY9KHgt''@;'; + put 'put ''UCkvMjYsVD0xPDxQO2lmKHRoaXMubGVuZ3RoPD1WKXJldHVybiB0aGlzLl9leHBhbmQoVisxKSx0aGlzLndvcmRzW1ZdfD1ULHRoaXM7Zm9yKHZhciBTPVQsRj1WOzAhPT1TJiZGPHRoaXMubGVuZ3RoO0YrKyl7dmFyIHllPTB8dGhpcy53b3Jkc1tGXTtTPSh5ZSs9Uyk+Pj4yNix0aGlzLndv''@;'; + put 'put ''cmRzW0ZdPXllJj02NzEwODg2M31yZXR1cm4gMCE9PVMmJih0aGlzLndvcmRzW0ZdPVMsdGhpcy5sZW5ndGgrKyksdGhpc30sTi5wcm90b3R5cGUuaXNaZXJvPWZ1bmN0aW9uKCl7cmV0dXJuIDE9PT10aGlzLmxlbmd0aCYmMD09PXRoaXMud29yZHNbMF19LE4ucHJvdG90eXBlLmNtcG49ZnVu''@;'; + put 'put ''Y3Rpb24oeCl7dmFyIFAsVj14PDA7aWYoMCE9PXRoaXMubmVnYXRpdmUmJiFWKXJldHVybi0xO2lmKDA9PT10aGlzLm5lZ2F0aXZlJiZWKXJldHVybiAxO2lmKHRoaXMuc3RyaXAoKSx0aGlzLmxlbmd0aD4xKVA9MTtlbHNle1YmJih4PS14KSxZKHg8PTY3MTA4ODYzLCJOdW1iZXIgaXMgdG9v''@;'; + put 'put ''IGJpZyIpO3ZhciBUPTB8dGhpcy53b3Jkc1swXTtQPVQ9PT14PzA6VDx4Py0xOjF9cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlPzB8LVA6UH0sTi5wcm90b3R5cGUuY21wPWZ1bmN0aW9uKHgpe2lmKDAhPT10aGlzLm5lZ2F0aXZlJiYwPT09eC5uZWdhdGl2ZSlyZXR1cm4tMTtpZigwPT09dGhp''@;'; + put 'put ''cy5uZWdhdGl2ZSYmMCE9PXgubmVnYXRpdmUpcmV0dXJuIDE7dmFyIFA9dGhpcy51Y21wKHgpO3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZT8wfC1QOlB9LE4ucHJvdG90eXBlLnVjbXA9ZnVuY3Rpb24oeCl7aWYodGhpcy5sZW5ndGg+eC5sZW5ndGgpcmV0dXJuIDE7aWYodGhpcy5sZW5ndGg8''@;'; + put 'put ''eC5sZW5ndGgpcmV0dXJuLTE7Zm9yKHZhciBQPTAsVj10aGlzLmxlbmd0aC0xO1Y+PTA7Vi0tKXt2YXIgVD0wfHRoaXMud29yZHNbVl0sUz0wfHgud29yZHNbVl07aWYoVCE9PVMpe1Q8Uz9QPS0xOlQ+UyYmKFA9MSk7YnJlYWt9fXJldHVybiBQfSxOLnByb3RvdHlwZS5ndG49ZnVuY3Rpb24o''@;'; + put 'put ''eCl7cmV0dXJuIDE9PT10aGlzLmNtcG4oeCl9LE4ucHJvdG90eXBlLmd0PWZ1bmN0aW9uKHgpe3JldHVybiAxPT09dGhpcy5jbXAoeCl9LE4ucHJvdG90eXBlLmd0ZW49ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuY21wbih4KT49MH0sTi5wcm90b3R5cGUuZ3RlPWZ1bmN0aW9uKHgpe3JldHVy''@;'; + put 'put ''biB0aGlzLmNtcCh4KT49MH0sTi5wcm90b3R5cGUubHRuPWZ1bmN0aW9uKHgpe3JldHVybi0xPT09dGhpcy5jbXBuKHgpfSxOLnByb3RvdHlwZS5sdD1mdW5jdGlvbih4KXtyZXR1cm4tMT09PXRoaXMuY21wKHgpfSxOLnByb3RvdHlwZS5sdGVuPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmNt''@;'; + put 'put ''cG4oeCk8PTB9LE4ucHJvdG90eXBlLmx0ZT1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5jbXAoeCk8PTB9LE4ucHJvdG90eXBlLmVxbj1mdW5jdGlvbih4KXtyZXR1cm4gMD09PXRoaXMuY21wbih4KX0sTi5wcm90b3R5cGUuZXE9ZnVuY3Rpb24oeCl7cmV0dXJuIDA9PT10aGlzLmNtcCh4KX0s''@;'; + put 'put ''Ti5yZWQ9ZnVuY3Rpb24oeCl7cmV0dXJuIG5ldyBuZSh4KX0sTi5wcm90b3R5cGUudG9SZWQ9ZnVuY3Rpb24oeCl7cmV0dXJuIFkoIXRoaXMucmVkLCJBbHJlYWR5IGEgbnVtYmVyIGluIHJlZHVjdGlvbiBjb250ZXh0IiksWSgwPT09dGhpcy5uZWdhdGl2ZSwicmVkIHdvcmtzIG9ubHkgd2l0''@;'; + put 'put ''aCBwb3NpdGl2ZXMiKSx4LmNvbnZlcnRUbyh0aGlzKS5fZm9yY2VSZWQoeCl9LE4ucHJvdG90eXBlLmZyb21SZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gWSh0aGlzLnJlZCwiZnJvbVJlZCB3b3JrcyBvbmx5IHdpdGggbnVtYmVycyBpbiByZWR1Y3Rpb24gY29udGV4dCIpLHRoaXMucmVkLmNvbnZl''@;'; + put 'put ''cnRGcm9tKHRoaXMpfSxOLnByb3RvdHlwZS5fZm9yY2VSZWQ9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMucmVkPXgsdGhpc30sTi5wcm90b3R5cGUuZm9yY2VSZWQ9ZnVuY3Rpb24oeCl7cmV0dXJuIFkoIXRoaXMucmVkLCJBbHJlYWR5IGEgbnVtYmVyIGluIHJlZHVjdGlvbiBjb250ZXh0Iiks''@;'; + put 'put ''dGhpcy5fZm9yY2VSZWQoeCl9LE4ucHJvdG90eXBlLnJlZEFkZD1mdW5jdGlvbih4KXtyZXR1cm4gWSh0aGlzLnJlZCwicmVkQWRkIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLmFkZCh0aGlzLHgpfSxOLnByb3RvdHlwZS5yZWRJQWRkPWZ1bmN0aW9uKHgpe3JldHVy''@;'; + put 'put ''biBZKHRoaXMucmVkLCJyZWRJQWRkIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLmlhZGQodGhpcyx4KX0sTi5wcm90b3R5cGUucmVkU3ViPWZ1bmN0aW9uKHgpe3JldHVybiBZKHRoaXMucmVkLCJyZWRTdWIgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhp''@;'; + put 'put ''cy5yZWQuc3ViKHRoaXMseCl9LE4ucHJvdG90eXBlLnJlZElTdWI9ZnVuY3Rpb24oeCl7cmV0dXJuIFkodGhpcy5yZWQsInJlZElTdWIgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuaXN1Yih0aGlzLHgpfSxOLnByb3RvdHlwZS5yZWRTaGw9ZnVuY3Rpb24oeCl7cmV0''@;'; + put 'put ''dXJuIFkodGhpcy5yZWQsInJlZFNobCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5zaGwodGhpcyx4KX0sTi5wcm90b3R5cGUucmVkTXVsPWZ1bmN0aW9uKHgpe3JldHVybiBZKHRoaXMucmVkLCJyZWRNdWwgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhp''@;'; + put 'put ''cy5yZWQuX3ZlcmlmeTIodGhpcyx4KSx0aGlzLnJlZC5tdWwodGhpcyx4KX0sTi5wcm90b3R5cGUucmVkSU11bD1mdW5jdGlvbih4KXtyZXR1cm4gWSh0aGlzLnJlZCwicmVkTXVsIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkyKHRoaXMseCksdGhpcy5y''@;'; + put 'put ''ZWQuaW11bCh0aGlzLHgpfSxOLnByb3RvdHlwZS5yZWRTcXI9ZnVuY3Rpb24oKXtyZXR1cm4gWSh0aGlzLnJlZCwicmVkU3FyIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLnNxcih0aGlzKX0sTi5wcm90b3R5cGUucmVkSVNx''@;'; + put 'put ''cj1mdW5jdGlvbigpe3JldHVybiBZKHRoaXMucmVkLCJyZWRJU3FyIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLmlzcXIodGhpcyl9LE4ucHJvdG90eXBlLnJlZFNxcnQ9ZnVuY3Rpb24oKXtyZXR1cm4gWSh0aGlzLnJlZCwi''@;'; + put 'put ''cmVkU3FydCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5zcXJ0KHRoaXMpfSxOLnByb3RvdHlwZS5yZWRJbnZtPWZ1bmN0aW9uKCl7cmV0dXJuIFkodGhpcy5yZWQsInJlZEludm0gd29ya3Mgb25seSB3aXRoIHJlZCBudW1i''@;'; + put 'put ''ZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQuaW52bSh0aGlzKX0sTi5wcm90b3R5cGUucmVkTmVnPWZ1bmN0aW9uKCl7cmV0dXJuIFkodGhpcy5yZWQsInJlZE5lZyB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlz''@;'; + put 'put ''LnJlZC5uZWcodGhpcyl9LE4ucHJvdG90eXBlLnJlZFBvdz1mdW5jdGlvbih4KXtyZXR1cm4gWSh0aGlzLnJlZCYmIXgucmVkLCJyZWRQb3cobm9ybWFsTnVtKSIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLnBvdyh0aGlzLHgpfTt2YXIgSWU9e2syNTY6bnVsbCxwMjI0Om51''@;'; + put 'put ''bGwscDE5MjpudWxsLHAyNTUxOTpudWxsfTtmdW5jdGlvbiBUZSh4LFApe3RoaXMubmFtZT14LHRoaXMucD1uZXcgTihQLDE2KSx0aGlzLm49dGhpcy5wLmJpdExlbmd0aCgpLHRoaXMuaz1uZXcgTigxKS5pdXNobG4odGhpcy5uKS5pc3ViKHRoaXMucCksdGhpcy50bXA9dGhpcy5fdG1wKCl9''@;'; + put 'put ''ZnVuY3Rpb24gRWUoKXtUZS5jYWxsKHRoaXMsImsyNTYiLCJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZSBmZmZmZmMyZiIpfWZ1bmN0aW9uIGhlKCl7VGUuY2FsbCh0aGlzLCJwMjI0IiwiZmZmZmZmZmYgZmZmZmZmZmYgZmZm''@;'; + put 'put ''ZmZmZmYgZmZmZmZmZmYgMDAwMDAwMDAgMDAwMDAwMDAgMDAwMDAwMDEiKX1mdW5jdGlvbiBPKCl7VGUuY2FsbCh0aGlzLCJwMTkyIiwiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUgZmZmZmZmZmYgZmZmZmZmZmYiKX1mdW5jdGlvbiB6KCl7VGUuY2FsbCh0aGlzLCIyNTUx''@;'; + put 'put ''OSIsIjdmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZWQiKX1mdW5jdGlvbiBuZSh4KXtpZigic3RyaW5nIj09dHlwZW9mIHgpe3ZhciBQPU4uX3ByaW1lKHgpO3RoaXMubT1QLnAsdGhpcy5wcmltZT1QfWVsc2UgWSh4Lmd0''@;'; + put 'put ''bigxKSwibW9kdWx1cyBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAxIiksdGhpcy5tPXgsdGhpcy5wcmltZT1udWxsfWZ1bmN0aW9uIHRlKHgpe25lLmNhbGwodGhpcyx4KSx0aGlzLnNoaWZ0PXRoaXMubS5iaXRMZW5ndGgoKSx0aGlzLnNoaWZ0JTI2IT0wJiYodGhpcy5zaGlmdCs9MjYtdGhpcy5z''@;'; + put 'put ''aGlmdCUyNiksdGhpcy5yPW5ldyBOKDEpLml1c2hsbih0aGlzLnNoaWZ0KSx0aGlzLnIyPXRoaXMuaW1vZCh0aGlzLnIuc3FyKCkpLHRoaXMucmludj10aGlzLnIuX2ludm1wKHRoaXMubSksdGhpcy5taW52PXRoaXMucmludi5tdWwodGhpcy5yKS5pc3VibigxKS5kaXYodGhpcy5tKSx0aGlz''@;'; + put 'put ''Lm1pbnY9dGhpcy5taW52LnVtb2QodGhpcy5yKSx0aGlzLm1pbnY9dGhpcy5yLnN1Yih0aGlzLm1pbnYpfVRlLnByb3RvdHlwZS5fdG1wPWZ1bmN0aW9uKCl7dmFyIHg9bmV3IE4obnVsbCk7cmV0dXJuIHgud29yZHM9bmV3IEFycmF5KE1hdGguY2VpbCh0aGlzLm4vMTMpKSx4fSxUZS5wcm90''@;'; + put 'put ''b3R5cGUuaXJlZHVjZT1mdW5jdGlvbih4KXt2YXIgUCxWPXg7ZG97dGhpcy5zcGxpdChWLHRoaXMudG1wKSxQPShWPShWPXRoaXMuaW11bEsoVikpLmlhZGQodGhpcy50bXApKS5iaXRMZW5ndGgoKX13aGlsZShQPnRoaXMubik7dmFyIFQ9UDx0aGlzLm4/LTE6Vi51Y21wKHRoaXMucCk7cmV0''@;'; + put 'put ''dXJuIDA9PT1UPyhWLndvcmRzWzBdPTAsVi5sZW5ndGg9MSk6VD4wP1YuaXN1Yih0aGlzLnApOnZvaWQgMCE9PVYuc3RyaXA/Vi5zdHJpcCgpOlYuX3N0cmlwKCksVn0sVGUucHJvdG90eXBlLnNwbGl0PWZ1bmN0aW9uKHgsUCl7eC5pdXNocm4odGhpcy5uLDAsUCl9LFRlLnByb3RvdHlwZS5p''@;'; + put 'put ''bXVsSz1mdW5jdGlvbih4KXtyZXR1cm4geC5pbXVsKHRoaXMuayl9LFcoRWUsVGUpLEVlLnByb3RvdHlwZS5zcGxpdD1mdW5jdGlvbih4LFApe2Zvcih2YXIgVj00MTk0MzAzLFQ9TWF0aC5taW4oeC5sZW5ndGgsOSksUz0wO1M8VDtTKyspUC53b3Jkc1tTXT14LndvcmRzW1NdO2lmKFAubGVu''@;'; + put 'put ''Z3RoPVQseC5sZW5ndGg8PTkpcmV0dXJuIHgud29yZHNbMF09MCx2b2lkKHgubGVuZ3RoPTEpO3ZhciBGPXgud29yZHNbOV07Zm9yKFAud29yZHNbUC5sZW5ndGgrK109RiZWLFM9MTA7Uzx4Lmxlbmd0aDtTKyspe3ZhciB5ZT0wfHgud29yZHNbU107eC53b3Jkc1tTLTEwXT0oeWUmVik8PDR8''@;'; + put 'put ''Rj4+PjIyLEY9eWV9eC53b3Jkc1tTLTEwXT1GPj4+PTIyLHgubGVuZ3RoLT0wPT09RiYmeC5sZW5ndGg+MTA/MTA6OX0sRWUucHJvdG90eXBlLmltdWxLPWZ1bmN0aW9uKHgpe3gud29yZHNbeC5sZW5ndGhdPTAseC53b3Jkc1t4Lmxlbmd0aCsxXT0wLHgubGVuZ3RoKz0yO2Zvcih2YXIgUD0w''@;'; + put 'put ''LFY9MDtWPHgubGVuZ3RoO1YrKyl7dmFyIFQ9MHx4LndvcmRzW1ZdO3gud29yZHNbVl09NjcxMDg4NjMmKFArPTk3NypUKSxQPTY0KlQrKFAvNjcxMDg4NjR8MCl9cmV0dXJuIDA9PT14LndvcmRzW3gubGVuZ3RoLTFdJiYoeC5sZW5ndGgtLSwwPT09eC53b3Jkc1t4Lmxlbmd0aC0xXSYmeC5s''@;'; + put 'put ''ZW5ndGgtLSkseH0sVyhoZSxUZSksVyhPLFRlKSxXKHosVGUpLHoucHJvdG90eXBlLmltdWxLPWZ1bmN0aW9uKHgpe2Zvcih2YXIgUD0wLFY9MDtWPHgubGVuZ3RoO1YrKyl7dmFyIFQ9MTkqKDB8eC53b3Jkc1tWXSkrUCxTPTY3MTA4ODYzJlQ7VD4+Pj0yNix4LndvcmRzW1ZdPVMsUD1UfXJl''@;'; + put 'put ''dHVybiAwIT09UCYmKHgud29yZHNbeC5sZW5ndGgrK109UCkseH0sTi5fcHJpbWU9ZnVuY3Rpb24oeCl7aWYoSWVbeF0pcmV0dXJuIEllW3hdO3ZhciBQO2lmKCJrMjU2Ij09PXgpUD1uZXcgRWU7ZWxzZSBpZigicDIyNCI9PT14KVA9bmV3IGhlO2Vsc2UgaWYoInAxOTIiPT09eClQPW5ldyBP''@;'; + put 'put ''O2Vsc2V7aWYoInAyNTUxOSIhPT14KXRocm93IG5ldyBFcnJvcigiVW5rbm93biBwcmltZSAiK3gpO1A9bmV3IHp9cmV0dXJuIEllW3hdPVAsUH0sbmUucHJvdG90eXBlLl92ZXJpZnkxPWZ1bmN0aW9uKHgpe1koMD09PXgubmVnYXRpdmUsInJlZCB3b3JrcyBvbmx5IHdpdGggcG9zaXRpdmVz''@;'; + put 'put ''IiksWSh4LnJlZCwicmVkIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpfSxuZS5wcm90b3R5cGUuX3ZlcmlmeTI9ZnVuY3Rpb24oeCxQKXtZKDA9PSh4Lm5lZ2F0aXZlfFAubmVnYXRpdmUpLCJyZWQgd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlcyIpLFkoeC5yZWQmJngucmVkPT09UC5y''@;'; + put 'put ''ZWQsInJlZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKX0sbmUucHJvdG90eXBlLmltb2Q9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMucHJpbWU/dGhpcy5wcmltZS5pcmVkdWNlKHgpLl9mb3JjZVJlZCh0aGlzKTp4LnVtb2QodGhpcy5tKS5fZm9yY2VSZWQodGhpcyl9LG5lLnByb3Rv''@;'; + put 'put ''dHlwZS5uZWc9ZnVuY3Rpb24oeCl7cmV0dXJuIHguaXNaZXJvKCk/eC5jbG9uZSgpOnRoaXMubS5zdWIoeCkuX2ZvcmNlUmVkKHRoaXMpfSxuZS5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKHgsUCl7dGhpcy5fdmVyaWZ5Mih4LFApO3ZhciBWPXguYWRkKFApO3JldHVybiBWLmNtcCh0aGlzLm0p''@;'; + put 'put ''Pj0wJiZWLmlzdWIodGhpcy5tKSxWLl9mb3JjZVJlZCh0aGlzKX0sbmUucHJvdG90eXBlLmlhZGQ9ZnVuY3Rpb24oeCxQKXt0aGlzLl92ZXJpZnkyKHgsUCk7dmFyIFY9eC5pYWRkKFApO3JldHVybiBWLmNtcCh0aGlzLm0pPj0wJiZWLmlzdWIodGhpcy5tKSxWfSxuZS5wcm90b3R5cGUuc3Vi''@;'; + put 'put ''PWZ1bmN0aW9uKHgsUCl7dGhpcy5fdmVyaWZ5Mih4LFApO3ZhciBWPXguc3ViKFApO3JldHVybiBWLmNtcG4oMCk8MCYmVi5pYWRkKHRoaXMubSksVi5fZm9yY2VSZWQodGhpcyl9LG5lLnByb3RvdHlwZS5pc3ViPWZ1bmN0aW9uKHgsUCl7dGhpcy5fdmVyaWZ5Mih4LFApO3ZhciBWPXguaXN1''@;'; + put 'put ''YihQKTtyZXR1cm4gVi5jbXBuKDApPDAmJlYuaWFkZCh0aGlzLm0pLFZ9LG5lLnByb3RvdHlwZS5zaGw9ZnVuY3Rpb24oeCxQKXtyZXR1cm4gdGhpcy5fdmVyaWZ5MSh4KSx0aGlzLmltb2QoeC51c2hsbihQKSl9LG5lLnByb3RvdHlwZS5pbXVsPWZ1bmN0aW9uKHgsUCl7cmV0dXJuIHRoaXMu''@;'; + put 'put ''X3ZlcmlmeTIoeCxQKSx0aGlzLmltb2QoeC5pbXVsKFApKX0sbmUucHJvdG90eXBlLm11bD1mdW5jdGlvbih4LFApe3JldHVybiB0aGlzLl92ZXJpZnkyKHgsUCksdGhpcy5pbW9kKHgubXVsKFApKX0sbmUucHJvdG90eXBlLmlzcXI9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuaW11bCh4LHgu''@;'; + put 'put ''Y2xvbmUoKSl9LG5lLnByb3RvdHlwZS5zcXI9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMubXVsKHgseCl9LG5lLnByb3RvdHlwZS5zcXJ0PWZ1bmN0aW9uKHgpe2lmKHguaXNaZXJvKCkpcmV0dXJuIHguY2xvbmUoKTt2YXIgUD10aGlzLm0uYW5kbG4oMyk7aWYoWShQJTI9PTEpLDM9PT1QKXt2''@;'; + put 'put ''YXIgVj10aGlzLm0uYWRkKG5ldyBOKDEpKS5pdXNocm4oMik7cmV0dXJuIHRoaXMucG93KHgsVil9Zm9yKHZhciBUPXRoaXMubS5zdWJuKDEpLFM9MDshVC5pc1plcm8oKSYmMD09PVQuYW5kbG4oMSk7KVMrKyxULml1c2hybigxKTtZKCFULmlzWmVybygpKTt2YXIgRj1uZXcgTigxKS50b1Jl''@;'; + put 'put ''ZCh0aGlzKSx5ZT1GLnJlZE5lZygpLENlPXRoaXMubS5zdWJuKDEpLml1c2hybigxKSxEZT10aGlzLm0uYml0TGVuZ3RoKCk7Zm9yKERlPW5ldyBOKDIqRGUqRGUpLnRvUmVkKHRoaXMpOzAhPT10aGlzLnBvdyhEZSxDZSkuY21wKHllKTspRGUucmVkSUFkZCh5ZSk7Zm9yKHZhciBQZT10aGlz''@;'; + put 'put ''LnBvdyhEZSxUKSxRZT10aGlzLnBvdyh4LFQuYWRkbigxKS5pdXNocm4oMSkpLCRlPXRoaXMucG93KHgsVCksZ3Q9UzswIT09JGUuY21wKEYpOyl7Zm9yKHZhciB3dD0kZSxtdD0wOzAhPT13dC5jbXAoRik7bXQrKyl3dD13dC5yZWRTcXIoKTtZKG10PGd0KTt2YXIgdnQ9dGhpcy5wb3coUGUs''@;'; + put 'put ''bmV3IE4oMSkuaXVzaGxuKGd0LW10LTEpKTtRZT1RZS5yZWRNdWwodnQpLFBlPXZ0LnJlZFNxcigpLCRlPSRlLnJlZE11bChQZSksZ3Q9bXR9cmV0dXJuIFFlfSxuZS5wcm90b3R5cGUuaW52bT1mdW5jdGlvbih4KXt2YXIgUD14Ll9pbnZtcCh0aGlzLm0pO3JldHVybiAwIT09UC5uZWdhdGl2''@;'; + put 'put ''ZT8oUC5uZWdhdGl2ZT0wLHRoaXMuaW1vZChQKS5yZWROZWcoKSk6dGhpcy5pbW9kKFApfSxuZS5wcm90b3R5cGUucG93PWZ1bmN0aW9uKHgsUCl7aWYoUC5pc1plcm8oKSlyZXR1cm4gbmV3IE4oMSkudG9SZWQodGhpcyk7aWYoMD09PVAuY21wbigxKSlyZXR1cm4geC5jbG9uZSgpO3ZhciBW''@;'; + put 'put ''PW5ldyBBcnJheSgxNik7VlswXT1uZXcgTigxKS50b1JlZCh0aGlzKSxWWzFdPXg7Zm9yKHZhciBUPTI7VDxWLmxlbmd0aDtUKyspVltUXT10aGlzLm11bChWW1QtMV0seCk7dmFyIFM9VlswXSxGPTAseWU9MCxDZT1QLmJpdExlbmd0aCgpJTI2O2ZvcigwPT09Q2UmJihDZT0yNiksVD1QLmxl''@;'; + put 'put ''bmd0aC0xO1Q+PTA7VC0tKXtmb3IodmFyIERlPVAud29yZHNbVF0sUGU9Q2UtMTtQZT49MDtQZS0tKXt2YXIgUWU9RGU+PlBlJjE7UyE9PVZbMF0mJihTPXRoaXMuc3FyKFMpKSwwIT09UWV8fDAhPT1GPyhGPDw9MSxGfD1RZSwoND09Kyt5ZXx8MD09PVQmJjA9PT1QZSkmJihTPXRoaXMubXVs''@;'; + put 'put ''KFMsVltGXSkseWU9MCxGPTApKTp5ZT0wfUNlPTI2fXJldHVybiBTfSxuZS5wcm90b3R5cGUuY29udmVydFRvPWZ1bmN0aW9uKHgpe3ZhciBQPXgudW1vZCh0aGlzLm0pO3JldHVybiBQPT09eD9QLmNsb25lKCk6UH0sbmUucHJvdG90eXBlLmNvbnZlcnRGcm9tPWZ1bmN0aW9uKHgpe3ZhciBQ''@;'; + put 'put ''PXguY2xvbmUoKTtyZXR1cm4gUC5yZWQ9bnVsbCxQfSxOLm1vbnQ9ZnVuY3Rpb24oeCl7cmV0dXJuIG5ldyB0ZSh4KX0sVyh0ZSxuZSksdGUucHJvdG90eXBlLmNvbnZlcnRUbz1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5pbW9kKHgudXNobG4odGhpcy5zaGlmdCkpfSx0ZS5wcm90b3R5cGUu''@;'; + put 'put ''Y29udmVydEZyb209ZnVuY3Rpb24oeCl7dmFyIFA9dGhpcy5pbW9kKHgubXVsKHRoaXMucmludikpO3JldHVybiBQLnJlZD1udWxsLFB9LHRlLnByb3RvdHlwZS5pbXVsPWZ1bmN0aW9uKHgsUCl7aWYoeC5pc1plcm8oKXx8UC5pc1plcm8oKSlyZXR1cm4geC53b3Jkc1swXT0wLHgubGVuZ3Ro''@;'; + put 'put ''PTEseDt2YXIgVj14LmltdWwoUCksVD1WLm1hc2tuKHRoaXMuc2hpZnQpLm11bCh0aGlzLm1pbnYpLmltYXNrbih0aGlzLnNoaWZ0KS5tdWwodGhpcy5tKSxTPVYuaXN1YihUKS5pdXNocm4odGhpcy5zaGlmdCksRj1TO3JldHVybiBTLmNtcCh0aGlzLm0pPj0wP0Y9Uy5pc3ViKHRoaXMubSk6''@;'; + put 'put ''Uy5jbXBuKDApPDAmJihGPVMuaWFkZCh0aGlzLm0pKSxGLl9mb3JjZVJlZCh0aGlzKX0sdGUucHJvdG90eXBlLm11bD1mdW5jdGlvbih4LFApe2lmKHguaXNaZXJvKCl8fFAuaXNaZXJvKCkpcmV0dXJuIG5ldyBOKDApLl9mb3JjZVJlZCh0aGlzKTt2YXIgVj14Lm11bChQKSxUPVYubWFza24o''@;'; + put 'put ''dGhpcy5zaGlmdCkubXVsKHRoaXMubWludikuaW1hc2tuKHRoaXMuc2hpZnQpLm11bCh0aGlzLm0pLFM9Vi5pc3ViKFQpLml1c2hybih0aGlzLnNoaWZ0KSxGPVM7cmV0dXJuIFMuY21wKHRoaXMubSk+PTA/Rj1TLmlzdWIodGhpcy5tKTpTLmNtcG4oMCk8MCYmKEY9Uy5pYWRkKHRoaXMubSkp''@;'; + put 'put ''LEYuX2ZvcmNlUmVkKHRoaXMpfSx0ZS5wcm90b3R5cGUuaW52bT1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5pbW9kKHguX2ludm1wKHRoaXMubSkubXVsKHRoaXMucjIpKS5fZm9yY2VSZWQodGhpcyl9fShVPVoubm1kKFUpLHRoaXMpfSw2MTM4OihVLFEsWik9Pnt2YXIgaWU9Wig5ODApLGFl''@;'; + put 'put ''PVooOTE5OSksWT1aKDc4NTkpLFc9WigyMTQ0KSxOPVooMzY2MyksZWU9WigzNDgyKSxxPVooNDgxOCksSj1aKDk1MDkpLkJ1ZmZlcjtVLmV4cG9ydHM9ZnVuY3Rpb24oc2Usb2UsY2Upe3ZhciBkZTtkZT1zZS5wYWRkaW5nP3NlLnBhZGRpbmc6Y2U/MTo0O3ZhciB2ZSxBZT1pZShzZSksa2U9''@;'; + put 'put ''QWUubW9kdWx1cy5ieXRlTGVuZ3RoKCk7aWYob2UubGVuZ3RoPmtlfHxuZXcgVyhvZSkuY21wKEFlLm1vZHVsdXMpPj0wKXRocm93IG5ldyBFcnJvcigiZGVjcnlwdGlvbiBlcnJvciIpO3ZlPWNlP3EobmV3IFcob2UpLEFlKTpOKG9lLEFlKTt2YXIgU2U9Si5hbGxvYyhrZS12ZS5sZW5ndGgp''@;'; + put 'put ''O2lmKHZlPUouY29uY2F0KFtTZSx2ZV0sa2UpLDQ9PT1kZSlyZXR1cm4gZnVuY3Rpb24oSWUsVGUpe3ZhciBFZT1JZS5tb2R1bHVzLmJ5dGVMZW5ndGgoKSxoZT1lZSgic2hhMSIpLnVwZGF0ZShKLmFsbG9jKDApKS5kaWdlc3QoKSxPPWhlLmxlbmd0aDtpZigwIT09VGVbMF0pdGhyb3cgbmV3''@;'; + put 'put ''IEVycm9yKCJkZWNyeXB0aW9uIGVycm9yIik7dmFyIHo9VGUuc2xpY2UoMSxPKzEpLG5lPVRlLnNsaWNlKE8rMSksdGU9WSh6LGFlKG5lLE8pKSx4PVkobmUsYWUodGUsRWUtTy0xKSk7aWYoZnVuY3Rpb24oVixUKXtWPUouZnJvbShWKSxUPUouZnJvbShUKTt2YXIgUz0wLEY9Vi5sZW5ndGg7''@;'; + put 'put ''Vi5sZW5ndGghPT1ULmxlbmd0aCYmKFMrKyxGPU1hdGgubWluKFYubGVuZ3RoLFQubGVuZ3RoKSk7Zm9yKHZhciB5ZT0tMTsrK3llPEY7KVMrPVZbeWVdXlRbeWVdO3JldHVybiBTfShoZSx4LnNsaWNlKDAsTykpKXRocm93IG5ldyBFcnJvcigiZGVjcnlwdGlvbiBlcnJvciIpO2Zvcih2YXIg''@;'; + put 'put ''UD1POzA9PT14W1BdOylQKys7aWYoMSE9PXhbUCsrXSl0aHJvdyBuZXcgRXJyb3IoImRlY3J5cHRpb24gZXJyb3IiKTtyZXR1cm4geC5zbGljZShQKX0oQWUsdmUpO2lmKDE9PT1kZSlyZXR1cm4gZnVuY3Rpb24oSWUsVGUsRWUpe2Zvcih2YXIgaGU9VGUuc2xpY2UoMCwyKSxPPTIsej0wOzAh''@;'; + put 'put ''PT1UZVtPKytdOylpZihPPj1UZS5sZW5ndGgpe3orKzticmVha312YXIgbmU9VGUuc2xpY2UoMixPLTEpO2lmKCgiMDAwMiIhPT1oZS50b1N0cmluZygiaGV4IikmJiFFZXx8IjAwMDEiIT09aGUudG9TdHJpbmcoImhleCIpJiZFZSkmJnorKyxuZS5sZW5ndGg8OCYmeisrLHopdGhyb3cgbmV3''@;'; + put 'put ''IEVycm9yKCJkZWNyeXB0aW9uIGVycm9yIik7cmV0dXJuIFRlLnNsaWNlKE8pfSgwLHZlLGNlKTtpZigzPT09ZGUpcmV0dXJuIHZlO3Rocm93IG5ldyBFcnJvcigidW5rbm93biBwYWRkaW5nIil9fSw2NTU5OihVLFEsWik9Pnt2YXIgaWU9Wig5ODApLGFlPVooMTc5OCksWT1aKDM0ODIpLFc9''@;'; + put 'put ''Wig5MTk5KSxOPVooNzg1OSksZWU9WigyMTQ0KSxxPVooNDgxOCksSj1aKDM2NjMpLHNlPVooOTUwOSkuQnVmZmVyO1UuZXhwb3J0cz1mdW5jdGlvbihvZSxjZSxkZSl7dmFyIHZlO3ZlPW9lLnBhZGRpbmc/b2UucGFkZGluZzpkZT8xOjQ7dmFyIEFlLGtlPWllKG9lKTtpZig0PT09dmUpQWU9''@;'; + put 'put ''ZnVuY3Rpb24oU2UsSWUpe3ZhciBUZT1TZS5tb2R1bHVzLmJ5dGVMZW5ndGgoKSxFZT1JZS5sZW5ndGgsaGU9WSgic2hhMSIpLnVwZGF0ZShzZS5hbGxvYygwKSkuZGlnZXN0KCksTz1oZS5sZW5ndGgsej0yKk87aWYoRWU+VGUtei0yKXRocm93IG5ldyBFcnJvcigibWVzc2FnZSB0b28gbG9u''@;'; + put 'put ''ZyIpO3ZhciBuZT1zZS5hbGxvYyhUZS1FZS16LTIpLHRlPVRlLU8tMSx4PWFlKE8pLFA9TihzZS5jb25jYXQoW2hlLG5lLHNlLmFsbG9jKDEsMSksSWVdLHRlKSxXKHgsdGUpKSxWPU4oeCxXKFAsTykpO3JldHVybiBuZXcgZWUoc2UuY29uY2F0KFtzZS5hbGxvYygxKSxWLFBdLFRlKSl9KGtl''@;'; + put 'put ''LGNlKTtlbHNlIGlmKDE9PT12ZSlBZT1mdW5jdGlvbihTZSxJZSxUZSl7dmFyIEVlLGhlPUllLmxlbmd0aCxPPVNlLm1vZHVsdXMuYnl0ZUxlbmd0aCgpO2lmKGhlPk8tMTEpdGhyb3cgbmV3IEVycm9yKCJtZXNzYWdlIHRvbyBsb25nIik7cmV0dXJuIEVlPVRlP3NlLmFsbG9jKE8taGUtMywy''@;'; + put 'put ''NTUpOmZ1bmN0aW9uKHope2Zvcih2YXIgbmUsdGU9c2UuYWxsb2NVbnNhZmUoeikseD0wLFA9YWUoMip6KSxWPTA7eDx6OylWPT09UC5sZW5ndGgmJihQPWFlKDIqeiksVj0wKSwobmU9UFtWKytdKSYmKHRlW3grK109bmUpO3JldHVybiB0ZX0oTy1oZS0zKSxuZXcgZWUoc2UuY29uY2F0KFtz''@;'; + put 'put ''ZS5mcm9tKFswLFRlPzE6Ml0pLEVlLHNlLmFsbG9jKDEpLEllXSxPKSl9KGtlLGNlLGRlKTtlbHNle2lmKDMhPT12ZSl0aHJvdyBuZXcgRXJyb3IoInVua25vd24gcGFkZGluZyIpO2lmKChBZT1uZXcgZWUoY2UpKS5jbXAoa2UubW9kdWx1cyk+PTApdGhyb3cgbmV3IEVycm9yKCJkYXRhIHRv''@;'; + put 'put ''byBsb25nIGZvciBtb2R1bHVzIil9cmV0dXJuIGRlP0ooQWUsa2UpOnEoQWUsa2UpfX0sNDgxODooVSxRLFopPT57dmFyIGllPVooMjE0NCksYWU9Wig5NTA5KS5CdWZmZXI7VS5leHBvcnRzPWZ1bmN0aW9uKFksVyl7cmV0dXJuIGFlLmZyb20oWS50b1JlZChpZS5tb250KFcubW9kdWx1cykp''@;'; + put 'put ''LnJlZFBvdyhuZXcgaWUoVy5wdWJsaWNFeHBvbmVudCkpLmZyb21SZWQoKS50b0FycmF5KCkpfX0sNzg1OTpVPT57VS5leHBvcnRzPWZ1bmN0aW9uKFEsWil7Zm9yKHZhciBpZT1RLmxlbmd0aCxhZT0tMTsrK2FlPGllOylRW2FlXV49WlthZV07cmV0dXJuIFF9fSwzNjg5OihVLFEsWik9Pnsi''@;'; + put 'put ''dXNlIHN0cmljdCI7Wi5yKFEpLFouZChRLHt1Y3MyZGVjb2RlOigpPT5jZSx1Y3MyZW5jb2RlOigpPT5kZSxkZWNvZGU6KCk9PmtlLGVuY29kZTooKT0+U2UsdG9BU0NJSTooKT0+VGUsdG9Vbmljb2RlOigpPT5JZSxkZWZhdWx0OigpPT5FZX0pO2NvbnN0IGllPTIxNDc0ODM2NDcsWT0vXnhu''@;'; + put 'put ''LS0vLFc9L1teXDAtXHg3RV0vLE49L1tceDJFXHUzMDAyXHVGRjBFXHVGRjYxXS9nLGVlPXtvdmVyZmxvdzoiT3ZlcmZsb3c6IGlucHV0IG5lZWRzIHdpZGVyIGludGVnZXJzIHRvIHByb2Nlc3MiLCJub3QtYmFzaWMiOiJJbGxlZ2FsIGlucHV0ID49IDB4ODAgKG5vdCBhIGJhc2ljIGNvZGUg''@;'; + put 'put ''cG9pbnQpIiwiaW52YWxpZC1pbnB1dCI6IkludmFsaWQgaW5wdXQifSxxPU1hdGguZmxvb3IsSj1TdHJpbmcuZnJvbUNoYXJDb2RlO2Z1bmN0aW9uIHNlKGhlKXt0aHJvdyBuZXcgUmFuZ2VFcnJvcihlZVtoZV0pfWZ1bmN0aW9uIG9lKGhlLE8pe2NvbnN0IHo9aGUuc3BsaXQoIkAiKTtsZXQg''@;'; + put 'put ''bmU9IiI7cmV0dXJuIHoubGVuZ3RoPjEmJihuZT16WzBdKyJAIixoZT16WzFdKSxuZStmdW5jdGlvbih4LFApe2NvbnN0IFY9W107bGV0IFQ9eC5sZW5ndGg7Zm9yKDtULS07KVZbVF09UCh4W1RdKTtyZXR1cm4gVn0oKGhlPWhlLnJlcGxhY2UoTiwiLiIpKS5zcGxpdCgiLiIpLE8pLmpvaW4o''@;'; + put 'put ''Ii4iKX1mdW5jdGlvbiBjZShoZSl7Y29uc3QgTz1bXTtsZXQgej0wO2NvbnN0IG5lPWhlLmxlbmd0aDtmb3IoO3o8bmU7KXtjb25zdCB0ZT1oZS5jaGFyQ29kZUF0KHorKyk7aWYodGU+PTU1Mjk2JiZ0ZTw9NTYzMTkmJno8bmUpe2NvbnN0IHg9aGUuY2hhckNvZGVBdCh6KyspOzU2MzIwPT0o''@;'; + put 'put ''NjQ1MTImeCk/Ty5wdXNoKCgoMTAyMyZ0ZSk8PDEwKSsoMTAyMyZ4KSs2NTUzNik6KE8ucHVzaCh0ZSksei0tKX1lbHNlIE8ucHVzaCh0ZSl9cmV0dXJuIE99Y29uc3QgZGU9aGU9PlN0cmluZy5mcm9tQ29kZVBvaW50KC4uLmhlKSx2ZT1mdW5jdGlvbihoZSxPKXtyZXR1cm4gaGUrMjIrNzUq''@;'; + put 'put ''KGhlPDI2KS0oKDAhPU8pPDw1KX0sQWU9ZnVuY3Rpb24oaGUsTyx6KXtsZXQgbmU9MDtmb3IoaGU9ej9xKGhlLzcwMCk6aGU+PjEsaGUrPXEoaGUvTyk7aGU+NDU1O25lKz0zNiloZT1xKGhlLzM1KTtyZXR1cm4gcShuZSszNipoZS8oaGUrMzgpKX0sa2U9ZnVuY3Rpb24oaGUpe2NvbnN0IE89''@;'; + put 'put ''W10sej1oZS5sZW5ndGg7bGV0IG5lPTAsdGU9MTI4LHg9NzIsUD1oZS5sYXN0SW5kZXhPZigiLSIpO1A8MCYmKFA9MCk7Zm9yKGxldCBUPTA7VDxQOysrVCloZS5jaGFyQ29kZUF0KFQpPj0xMjgmJnNlKCJub3QtYmFzaWMiKSxPLnB1c2goaGUuY2hhckNvZGVBdChUKSk7Zm9yKGxldCBUPVA+''@;'; + put 'put ''MD9QKzE6MDtUPHo7KXtsZXQgUz1uZTtmb3IobGV0IHllPTEsQ2U9MzY7O0NlKz0zNil7VD49eiYmc2UoImludmFsaWQtaW5wdXQiKTtjb25zdCBEZT0oVj1oZS5jaGFyQ29kZUF0KFQrKykpLTQ4PDEwP1YtMjI6Vi02NTwyNj9WLTY1OlYtOTc8MjY/Vi05NzozNjsoRGU+PTM2fHxEZT5xKChp''@;'; + put 'put ''ZS1uZSkveWUpKSYmc2UoIm92ZXJmbG93IiksbmUrPURlKnllO2NvbnN0IFBlPUNlPD14PzE6Q2U+PXgrMjY/MjY6Q2UteDtpZihEZTxQZSlicmVhaztjb25zdCBRZT0zNi1QZTt5ZT5xKGllL1FlKSYmc2UoIm92ZXJmbG93IikseWUqPVFlfWNvbnN0IEY9Ty5sZW5ndGgrMTt4PUFlKG5lLVMs''@;'; + put 'put ''RiwwPT1TKSxxKG5lL0YpPmllLXRlJiZzZSgib3ZlcmZsb3ciKSx0ZSs9cShuZS9GKSxuZSU9RixPLnNwbGljZShuZSsrLDAsdGUpfXZhciBWO3JldHVybiBTdHJpbmcuZnJvbUNvZGVQb2ludCguLi5PKX0sU2U9ZnVuY3Rpb24oaGUpe2NvbnN0IE89W107bGV0IHo9KGhlPWNlKGhlKSkubGVu''@;'; + put 'put ''Z3RoLG5lPTEyOCx0ZT0wLHg9NzI7Zm9yKGNvbnN0IFQgb2YgaGUpVDwxMjgmJk8ucHVzaChKKFQpKTtsZXQgUD1PLmxlbmd0aCxWPVA7Zm9yKFAmJk8ucHVzaCgiLSIpO1Y8ejspe2xldCBUPWllO2Zvcihjb25zdCBGIG9mIGhlKUY+PW5lJiZGPFQmJihUPUYpO2NvbnN0IFM9VisxO1QtbmU+''@;'; + put 'put ''cSgoaWUtdGUpL1MpJiZzZSgib3ZlcmZsb3ciKSx0ZSs9KFQtbmUpKlMsbmU9VDtmb3IoY29uc3QgRiBvZiBoZSlpZihGPG5lJiYrK3RlPmllJiZzZSgib3ZlcmZsb3ciKSxGPT1uZSl7bGV0IHllPXRlO2ZvcihsZXQgQ2U9MzY7O0NlKz0zNil7Y29uc3QgRGU9Q2U8PXg/MTpDZT49eCsyNj8y''@;'; + put 'put ''NjpDZS14O2lmKHllPERlKWJyZWFrO2NvbnN0IFBlPXllLURlLFFlPTM2LURlO08ucHVzaChKKHZlKERlK1BlJVFlLDApKSkseWU9cShQZS9RZSl9Ty5wdXNoKEoodmUoeWUsMCkpKSx4PUFlKHRlLFMsVj09UCksdGU9MCwrK1Z9Kyt0ZSwrK25lfXJldHVybiBPLmpvaW4oIiIpfSxJZT1mdW5j''@;'; + put 'put ''dGlvbihoZSl7cmV0dXJuIG9lKGhlLGZ1bmN0aW9uKE8pe3JldHVybiBZLnRlc3QoTyk/a2UoTy5zbGljZSg0KS50b0xvd2VyQ2FzZSgpKTpPfSl9LFRlPWZ1bmN0aW9uKGhlKXtyZXR1cm4gb2UoaGUsZnVuY3Rpb24oTyl7cmV0dXJuIFcudGVzdChPKT8ieG4tLSIrU2UoTyk6T30pfSxFZT17''@;'; + put 'put ''dmVyc2lvbjoiMi4xLjAiLHVjczI6e2RlY29kZTpjZSxlbmNvZGU6ZGV9LGRlY29kZTprZSxlbmNvZGU6U2UsdG9BU0NJSTpUZSx0b1VuaWNvZGU6SWV9fSwyNTg3OlU9PnsidXNlIHN0cmljdCI7ZnVuY3Rpb24gUShaLGllKXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0''@;'; + put 'put ''eS5jYWxsKFosaWUpfVUuZXhwb3J0cz1mdW5jdGlvbihaLGllLGFlLFkpe2FlPWFlfHwiPSI7dmFyIFc9e307aWYoInN0cmluZyIhPXR5cGVvZiBafHwwPT09Wi5sZW5ndGgpcmV0dXJuIFc7dmFyIE49L1wrL2c7Wj1aLnNwbGl0KGllPWllfHwiJiIpO3ZhciBlZT0xZTM7WSYmIm51bWJlciI9''@;'; + put 'put ''PXR5cGVvZiBZLm1heEtleXMmJihlZT1ZLm1heEtleXMpO3ZhciBxPVoubGVuZ3RoO2VlPjAmJnE+ZWUmJihxPWVlKTtmb3IodmFyIEo9MDtKPHE7KytKKXt2YXIgc2Usb2UsY2UsZGUsdmU9WltKXS5yZXBsYWNlKE4sIiUyMCIpLEFlPXZlLmluZGV4T2YoYWUpO0FlPj0wPyhzZT12ZS5zdWJz''@;'; + put 'put ''dHIoMCxBZSksb2U9dmUuc3Vic3RyKEFlKzEpKTooc2U9dmUsb2U9IiIpLGNlPWRlY29kZVVSSUNvbXBvbmVudChzZSksZGU9ZGVjb2RlVVJJQ29tcG9uZW50KG9lKSxRKFcsY2UpP0FycmF5LmlzQXJyYXkoV1tjZV0pP1dbY2VdLnB1c2goZGUpOldbY2VdPVtXW2NlXSxkZV06V1tjZV09ZGV9''@;'; + put 'put ''cmV0dXJuIFd9fSwyMTgyOlU9PnsidXNlIHN0cmljdCI7dmFyIFE9ZnVuY3Rpb24oWil7c3dpdGNoKHR5cGVvZiBaKXtjYXNlInN0cmluZyI6cmV0dXJuIFo7Y2FzZSJib29sZWFuIjpyZXR1cm4gWj8idHJ1ZSI6ImZhbHNlIjtjYXNlIm51bWJlciI6cmV0dXJuIGlzRmluaXRlKFopP1o6IiI7''@;'; + put 'put ''ZGVmYXVsdDpyZXR1cm4iIn19O1UuZXhwb3J0cz1mdW5jdGlvbihaLGllLGFlLFkpe3JldHVybiBpZT1pZXx8IiYiLGFlPWFlfHwiPSIsbnVsbD09PVomJihaPXZvaWQgMCksIm9iamVjdCI9PXR5cGVvZiBaP09iamVjdC5rZXlzKFopLm1hcChmdW5jdGlvbihXKXt2YXIgTj1lbmNvZGVVUklD''@;'; + put 'put ''b21wb25lbnQoUShXKSkrYWU7cmV0dXJuIEFycmF5LmlzQXJyYXkoWltXXSk/WltXXS5tYXAoZnVuY3Rpb24oZWUpe3JldHVybiBOK2VuY29kZVVSSUNvbXBvbmVudChRKGVlKSl9KS5qb2luKGllKTpOK2VuY29kZVVSSUNvbXBvbmVudChRKFpbV10pKX0pLmpvaW4oaWUpOlk/ZW5jb2RlVVJJ''@;'; + put 'put ''Q29tcG9uZW50KFEoWSkpK2FlK2VuY29kZVVSSUNvbXBvbmVudChRKFopKToiIn19LDc2NzM6KFUsUSxaKT0+eyJ1c2Ugc3RyaWN0IjtRLmRlY29kZT1RLnBhcnNlPVooMjU4NyksUS5lbmNvZGU9US5zdHJpbmdpZnk9WigyMTgyKX0sMTc5ODooVSxRLFopPT57InVzZSBzdHJpY3QiO3ZhciBp''@;'; + put 'put ''ZT1aKDQxNTUpLFc9Wig5NTA5KS5CdWZmZXIsTj1aLmcuY3J5cHRvfHxaLmcubXNDcnlwdG87VS5leHBvcnRzPU4mJk4uZ2V0UmFuZG9tVmFsdWVzP2Z1bmN0aW9uKGVlLHEpe2lmKGVlPjQyOTQ5NjcyOTUpdGhyb3cgbmV3IFJhbmdlRXJyb3IoInJlcXVlc3RlZCB0b28gbWFueSByYW5kb20g''@;'; + put 'put ''Ynl0ZXMiKTt2YXIgSj1XLmFsbG9jVW5zYWZlKGVlKTtpZihlZT4wKWlmKGVlPjY1NTM2KWZvcih2YXIgc2U9MDtzZTxlZTtzZSs9NjU1MzYpTi5nZXRSYW5kb21WYWx1ZXMoSi5zbGljZShzZSxzZSs2NTUzNikpO2Vsc2UgTi5nZXRSYW5kb21WYWx1ZXMoSik7cmV0dXJuImZ1bmN0aW9uIj09''@;'; + put 'put ''dHlwZW9mIHE/aWUubmV4dFRpY2soZnVuY3Rpb24oKXtxKG51bGwsSil9KTpKfTpmdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcigiU2VjdXJlIHJhbmRvbSBudW1iZXIgZ2VuZXJhdGlvbiBpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoaXMgYnJvd3Nlci5cblVzZSBDaHJvbWUsIEZpcmVmb3ggb3Ig''@;'; + put 'put ''SW50ZXJuZXQgRXhwbG9yZXIgMTEiKX19LDc5NjM6KFUsUSxaKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgaWU9Wig0MTU1KTtmdW5jdGlvbiBhZSgpe3Rocm93IG5ldyBFcnJvcigic2VjdXJlIHJhbmRvbSBudW1iZXIgZ2VuZXJhdGlvbiBub3Qgc3VwcG9ydGVkIGJ5IHRoaXMgYnJvd3NlclxudXNl''@;'; + put 'put ''IGNocm9tZSwgRmlyZUZveCBvciBJbnRlcm5ldCBFeHBsb3JlciAxMSIpfXZhciBZPVooOTUwOSksVz1aKDE3OTgpLE49WS5CdWZmZXIsZWU9WS5rTWF4TGVuZ3RoLHE9Wi5nLmNyeXB0b3x8Wi5nLm1zQ3J5cHRvLEo9TWF0aC5wb3coMiwzMiktMTtmdW5jdGlvbiBzZShkZSx2ZSl7aWYoIm51''@;'; + put 'put ''bWJlciIhPXR5cGVvZiBkZXx8ZGUhPWRlKXRocm93IG5ldyBUeXBlRXJyb3IoIm9mZnNldCBtdXN0IGJlIGEgbnVtYmVyIik7aWYoZGU+Snx8ZGU8MCl0aHJvdyBuZXcgVHlwZUVycm9yKCJvZmZzZXQgbXVzdCBiZSBhIHVpbnQzMiIpO2lmKGRlPmVlfHxkZT52ZSl0aHJvdyBuZXcgUmFuZ2VF''@;'; + put 'put ''cnJvcigib2Zmc2V0IG91dCBvZiByYW5nZSIpfWZ1bmN0aW9uIG9lKGRlLHZlLEFlKXtpZigibnVtYmVyIiE9dHlwZW9mIGRlfHxkZSE9ZGUpdGhyb3cgbmV3IFR5cGVFcnJvcigic2l6ZSBtdXN0IGJlIGEgbnVtYmVyIik7aWYoZGU+Snx8ZGU8MCl0aHJvdyBuZXcgVHlwZUVycm9yKCJzaXpl''@;'; + put 'put ''IG11c3QgYmUgYSB1aW50MzIiKTtpZihkZSt2ZT5BZXx8ZGU+ZWUpdGhyb3cgbmV3IFJhbmdlRXJyb3IoImJ1ZmZlciB0b28gc21hbGwiKX1mdW5jdGlvbiBjZShkZSx2ZSxBZSxrZSl7aWYoaWUuYnJvd3Nlcil7dmFyIEllPW5ldyBVaW50OEFycmF5KGRlLmJ1ZmZlcix2ZSxBZSk7cmV0dXJu''@;'; + put 'put ''IHEuZ2V0UmFuZG9tVmFsdWVzKEllKSxrZT92b2lkIGllLm5leHRUaWNrKGZ1bmN0aW9uKCl7a2UobnVsbCxkZSl9KTpkZX1pZigha2UpcmV0dXJuIFcoQWUpLmNvcHkoZGUsdmUpLGRlO1coQWUsZnVuY3Rpb24oVGUsRWUpe2lmKFRlKXJldHVybiBrZShUZSk7RWUuY29weShkZSx2ZSksa2Uo''@;'; + put 'put ''bnVsbCxkZSl9KX1xJiZxLmdldFJhbmRvbVZhbHVlc3x8IWllLmJyb3dzZXI/KFEucmFuZG9tRmlsbD1mdW5jdGlvbihkZSx2ZSxBZSxrZSl7aWYoIShOLmlzQnVmZmVyKGRlKXx8ZGUgaW5zdGFuY2VvZiBaLmcuVWludDhBcnJheSkpdGhyb3cgbmV3IFR5cGVFcnJvcignImJ1ZiIgYXJndW1l''@;'; + put 'put ''bnQgbXVzdCBiZSBhIEJ1ZmZlciBvciBVaW50OEFycmF5Jyk7aWYoImZ1bmN0aW9uIj09dHlwZW9mIHZlKWtlPXZlLHZlPTAsQWU9ZGUubGVuZ3RoO2Vsc2UgaWYoImZ1bmN0aW9uIj09dHlwZW9mIEFlKWtlPUFlLEFlPWRlLmxlbmd0aC12ZTtlbHNlIGlmKCJmdW5jdGlvbiIhPXR5cGVvZiBr''@;'; + put 'put ''ZSl0aHJvdyBuZXcgVHlwZUVycm9yKCciY2IiIGFyZ3VtZW50IG11c3QgYmUgYSBmdW5jdGlvbicpO3JldHVybiBzZSh2ZSxkZS5sZW5ndGgpLG9lKEFlLHZlLGRlLmxlbmd0aCksY2UoZGUsdmUsQWUsa2UpfSxRLnJhbmRvbUZpbGxTeW5jPWZ1bmN0aW9uKGRlLHZlLEFlKXtpZih2b2lkIDA9''@;'; + put 'put ''PT12ZSYmKHZlPTApLCEoTi5pc0J1ZmZlcihkZSl8fGRlIGluc3RhbmNlb2YgWi5nLlVpbnQ4QXJyYXkpKXRocm93IG5ldyBUeXBlRXJyb3IoJyJidWYiIGFyZ3VtZW50IG11c3QgYmUgYSBCdWZmZXIgb3IgVWludDhBcnJheScpO3JldHVybiBzZSh2ZSxkZS5sZW5ndGgpLHZvaWQgMD09PUFl''@;'; + put 'put ''JiYoQWU9ZGUubGVuZ3RoLXZlKSxvZShBZSx2ZSxkZS5sZW5ndGgpLGNlKGRlLHZlLEFlKX0pOihRLnJhbmRvbUZpbGw9YWUsUS5yYW5kb21GaWxsU3luYz1hZSl9LDQyODE6VT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgUT17fTtmdW5jdGlvbiBaKGFlLFksVyl7V3x8KFc9RXJyb3IpO3ZhciBOPWZ1''@;'; + put 'put ''bmN0aW9uKGVlKXt2YXIgcSxKO2Z1bmN0aW9uIHNlKG9lLGNlLGRlKXtyZXR1cm4gZWUuY2FsbCh0aGlzLCJzdHJpbmciPT10eXBlb2YgWT9ZOlkob2UsY2UsZGUpKXx8dGhpc31yZXR1cm4gSj1lZSwocT1zZSkucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoSi5wcm90b3R5cGUpLHEucHJvdG90''@;'; + put 'put ''eXBlLmNvbnN0cnVjdG9yPXEscS5fX3Byb3RvX189SixzZX0oVyk7Ti5wcm90b3R5cGUubmFtZT1XLm5hbWUsTi5wcm90b3R5cGUuY29kZT1hZSxRW2FlXT1OfWZ1bmN0aW9uIGllKGFlLFkpe2lmKEFycmF5LmlzQXJyYXkoYWUpKXt2YXIgVz1hZS5sZW5ndGg7cmV0dXJuIGFlPWFlLm1hcChm''@;'; + put 'put ''dW5jdGlvbihOKXtyZXR1cm4gU3RyaW5nKE4pfSksVz4yPyJvbmUgb2YgIi5jb25jYXQoWSwiICIpLmNvbmNhdChhZS5zbGljZSgwLFctMSkuam9pbigiLCAiKSwiLCBvciAiKSthZVtXLTFdOjI9PT1XPyJvbmUgb2YgIi5jb25jYXQoWSwiICIpLmNvbmNhdChhZVswXSwiIG9yICIpLmNvbmNh''@;'; + put 'put ''dChhZVsxXSk6Im9mICIuY29uY2F0KFksIiAiKS5jb25jYXQoYWVbMF0pfXJldHVybiJvZiAiLmNvbmNhdChZLCIgIikuY29uY2F0KFN0cmluZyhhZSkpfVooIkVSUl9JTlZBTElEX09QVF9WQUxVRSIsZnVuY3Rpb24oYWUsWSl7cmV0dXJuJ1RoZSB2YWx1ZSAiJytZKyciIGlzIGludmFsaWQg''@;'; + put 'put ''Zm9yIG9wdGlvbiAiJythZSsnIid9LFR5cGVFcnJvciksWigiRVJSX0lOVkFMSURfQVJHX1RZUEUiLGZ1bmN0aW9uKGFlLFksVyl7dmFyIE4sSixvZSxkZTtpZigic3RyaW5nIj09dHlwZW9mIFkmJiJub3QgIj09PVkuc3Vic3RyKDAsIm5vdCAiLmxlbmd0aCk/KE49Im11c3Qgbm90IGJlIixZ''@;'; + put 'put ''PVkucmVwbGFjZSgvXm5vdCAvLCIiKSk6Tj0ibXVzdCBiZSIsb2U9YWUsKHZvaWQgMD09PWRlfHxkZT5vZS5sZW5ndGgpJiYoZGU9b2UubGVuZ3RoKSwiIGFyZ3VtZW50Ij09PW9lLnN1YnN0cmluZyhkZS0iIGFyZ3VtZW50Ii5sZW5ndGgsZGUpKUo9IlRoZSAiLmNvbmNhdChhZSwiICIpLmNv''@;'; + put 'put ''bmNhdChOLCIgIikuY29uY2F0KGllKFksInR5cGUiKSk7ZWxzZXt2YXIgc2U9ZnVuY3Rpb24ob2UsY2UsZGUpe3JldHVybiJudW1iZXIiIT10eXBlb2YgZGUmJihkZT0wKSwhKGRlKyIuIi5sZW5ndGg+b2UubGVuZ3RoKSYmLTEhPT1vZS5pbmRleE9mKCIuIixkZSl9KGFlKT8icHJvcGVydHki''@;'; + put 'put ''OiJhcmd1bWVudCI7Sj0nVGhlICInLmNvbmNhdChhZSwnIiAnKS5jb25jYXQoc2UsIiAiKS5jb25jYXQoTiwiICIpLmNvbmNhdChpZShZLCJ0eXBlIikpfXJldHVybiBKKyIuIFJlY2VpdmVkIHR5cGUgIi5jb25jYXQodHlwZW9mIFcpfSxUeXBlRXJyb3IpLFooIkVSUl9TVFJFQU1fUFVTSF9B''@;'; + put 'put ''RlRFUl9FT0YiLCJzdHJlYW0ucHVzaCgpIGFmdGVyIEVPRiIpLFooIkVSUl9NRVRIT0RfTk9UX0lNUExFTUVOVEVEIixmdW5jdGlvbihhZSl7cmV0dXJuIlRoZSAiK2FlKyIgbWV0aG9kIGlzIG5vdCBpbXBsZW1lbnRlZCJ9KSxaKCJFUlJfU1RSRUFNX1BSRU1BVFVSRV9DTE9TRSIsIlByZW1h''@;'; + put 'put ''dHVyZSBjbG9zZSIpLFooIkVSUl9TVFJFQU1fREVTVFJPWUVEIixmdW5jdGlvbihhZSl7cmV0dXJuIkNhbm5vdCBjYWxsICIrYWUrIiBhZnRlciBhIHN0cmVhbSB3YXMgZGVzdHJveWVkIn0pLFooIkVSUl9NVUxUSVBMRV9DQUxMQkFDSyIsIkNhbGxiYWNrIGNhbGxlZCBtdWx0aXBsZSB0aW1l''@;'; + put 'put ''cyIpLFooIkVSUl9TVFJFQU1fQ0FOTk9UX1BJUEUiLCJDYW5ub3QgcGlwZSwgbm90IHJlYWRhYmxlIiksWigiRVJSX1NUUkVBTV9XUklURV9BRlRFUl9FTkQiLCJ3cml0ZSBhZnRlciBlbmQiKSxaKCJFUlJfU1RSRUFNX05VTExfVkFMVUVTIiwiTWF5IG5vdCB3cml0ZSBudWxsIHZhbHVlcyB0''@;'; + put 'put ''byBzdHJlYW0iLFR5cGVFcnJvciksWigiRVJSX1VOS05PV05fRU5DT0RJTkciLGZ1bmN0aW9uKGFlKXtyZXR1cm4iVW5rbm93biBlbmNvZGluZzogIithZX0sVHlwZUVycm9yKSxaKCJFUlJfU1RSRUFNX1VOU0hJRlRfQUZURVJfRU5EX0VWRU5UIiwic3RyZWFtLnVuc2hpZnQoKSBhZnRlciBl''@;'; + put 'put ''bmQgZXZlbnQiKSxVLmV4cG9ydHMucT1RfSw2NzUzOihVLFEsWik9PnsidXNlIHN0cmljdCI7dmFyIGllPVooNDE1NSksYWU9T2JqZWN0LmtleXN8fGZ1bmN0aW9uKGNlKXt2YXIgZGU9W107Zm9yKHZhciB2ZSBpbiBjZSlkZS5wdXNoKHZlKTtyZXR1cm4gZGV9O1UuZXhwb3J0cz1KO3ZhciBZ''@;'; + put 'put ''PVooOTQ4MSksVz1aKDQyMjkpO1ooNTcxNykoSixZKTtmb3IodmFyIE49YWUoVy5wcm90b3R5cGUpLGVlPTA7ZWU8Ti5sZW5ndGg7ZWUrKyl7dmFyIHE9TltlZV07Si5wcm90b3R5cGVbcV18fChKLnByb3RvdHlwZVtxXT1XLnByb3RvdHlwZVtxXSl9ZnVuY3Rpb24gSihjZSl7aWYoISh0aGlz''@;'; + put 'put ''IGluc3RhbmNlb2YgSikpcmV0dXJuIG5ldyBKKGNlKTtZLmNhbGwodGhpcyxjZSksVy5jYWxsKHRoaXMsY2UpLHRoaXMuYWxsb3dIYWxmT3Blbj0hMCxjZSYmKCExPT09Y2UucmVhZGFibGUmJih0aGlzLnJlYWRhYmxlPSExKSwhMT09PWNlLndyaXRhYmxlJiYodGhpcy53cml0YWJsZT0hMSks''@;'; + put 'put ''ITE9PT1jZS5hbGxvd0hhbGZPcGVuJiYodGhpcy5hbGxvd0hhbGZPcGVuPSExLHRoaXMub25jZSgiZW5kIixzZSkpKX1mdW5jdGlvbiBzZSgpe3RoaXMuX3dyaXRhYmxlU3RhdGUuZW5kZWR8fGllLm5leHRUaWNrKG9lLHRoaXMpfWZ1bmN0aW9uIG9lKGNlKXtjZS5lbmQoKX1PYmplY3QuZGVm''@;'; + put 'put ''aW5lUHJvcGVydHkoSi5wcm90b3R5cGUsIndyaXRhYmxlSGlnaFdhdGVyTWFyayIse2VudW1lcmFibGU6ITEsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3dyaXRhYmxlU3RhdGUuaGlnaFdhdGVyTWFya319KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoSi5wcm90b3R5cGUsIndyaXRhYmxl''@;'; + put 'put ''QnVmZmVyIix7ZW51bWVyYWJsZTohMSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fd3JpdGFibGVTdGF0ZSYmdGhpcy5fd3JpdGFibGVTdGF0ZS5nZXRCdWZmZXIoKX19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoSi5wcm90b3R5cGUsIndyaXRhYmxlTGVuZ3RoIix7ZW51bWVyYWJsZToh''@;'; + put 'put ''MSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fd3JpdGFibGVTdGF0ZS5sZW5ndGh9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KEoucHJvdG90eXBlLCJkZXN0cm95ZWQiLHtlbnVtZXJhYmxlOiExLGdldDpmdW5jdGlvbigpe3JldHVybiB2b2lkIDAhPT10aGlzLl9yZWFkYWJsZVN0YXRl''@;'; + put 'put ''JiZ2b2lkIDAhPT10aGlzLl93cml0YWJsZVN0YXRlJiZ0aGlzLl9yZWFkYWJsZVN0YXRlLmRlc3Ryb3llZCYmdGhpcy5fd3JpdGFibGVTdGF0ZS5kZXN0cm95ZWR9LHNldDpmdW5jdGlvbihjZSl7dm9pZCAwIT09dGhpcy5fcmVhZGFibGVTdGF0ZSYmdm9pZCAwIT09dGhpcy5fd3JpdGFibGVT''@;'; + put 'put ''dGF0ZSYmKHRoaXMuX3JlYWRhYmxlU3RhdGUuZGVzdHJveWVkPWNlLHRoaXMuX3dyaXRhYmxlU3RhdGUuZGVzdHJveWVkPWNlKX19KX0sMjcyNTooVSxRLFopPT57InVzZSBzdHJpY3QiO1UuZXhwb3J0cz1hZTt2YXIgaWU9Wig0NjA1KTtmdW5jdGlvbiBhZShZKXtpZighKHRoaXMgaW5zdGFu''@;'; + put 'put ''Y2VvZiBhZSkpcmV0dXJuIG5ldyBhZShZKTtpZS5jYWxsKHRoaXMsWSl9Wig1NzE3KShhZSxpZSksYWUucHJvdG90eXBlLl90cmFuc2Zvcm09ZnVuY3Rpb24oWSxXLE4pe04obnVsbCxZKX19LDk0ODE6KFUsUSxaKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgaWUsYWU9Wig0MTU1KTtVLmV4cG9ydHM9''@;'; + put 'put ''bmUsbmUuUmVhZGFibGVTdGF0ZT16LFooNzE4Nyk7dmFyIHEsWT1mdW5jdGlvbih2dCxBdCl7cmV0dXJuIHZ0Lmxpc3RlbmVycyhBdCkubGVuZ3RofSxXPVooMjUwMyksTj1aKDg3NjQpLkJ1ZmZlcixlZT1aLmcuVWludDhBcnJheXx8ZnVuY3Rpb24oKXt9LEo9Wig0NjE2KTtxPUomJkouZGVi''@;'; + put 'put ''dWdsb2c/Si5kZWJ1Z2xvZygic3RyZWFtIik6ZnVuY3Rpb24oKXt9O3ZhciBzZSxvZSxjZSxkZT1aKDczMjcpLHZlPVooMTE5NSksQWU9WigyNDU3KS5nZXRIaWdoV2F0ZXJNYXJrLGtlPVooNDI4MSkucSxTZT1rZS5FUlJfSU5WQUxJRF9BUkdfVFlQRSxJZT1rZS5FUlJfU1RSRUFNX1BVU0hf''@;'; + put 'put ''QUZURVJfRU9GLFRlPWtlLkVSUl9NRVRIT0RfTk9UX0lNUExFTUVOVEVELEVlPWtlLkVSUl9TVFJFQU1fVU5TSElGVF9BRlRFUl9FTkRfRVZFTlQ7Wig1NzE3KShuZSxXKTt2YXIgaGU9dmUuZXJyb3JPckRlc3Ryb3ksTz1bImVycm9yIiwiY2xvc2UiLCJkZXN0cm95IiwicGF1c2UiLCJyZXN1''@;'; + put 'put ''bWUiXTtmdW5jdGlvbiB6KHZ0LEF0LGh0KXtpZT1pZXx8Wig2NzUzKSwiYm9vbGVhbiIhPXR5cGVvZiBodCYmKGh0PUF0IGluc3RhbmNlb2YgaWUpLHRoaXMub2JqZWN0TW9kZT0hISh2dD12dHx8e30pLm9iamVjdE1vZGUsaHQmJih0aGlzLm9iamVjdE1vZGU9dGhpcy5vYmplY3RNb2RlfHwh''@;'; + put 'put ''IXZ0LnJlYWRhYmxlT2JqZWN0TW9kZSksdGhpcy5oaWdoV2F0ZXJNYXJrPUFlKHRoaXMsdnQsInJlYWRhYmxlSGlnaFdhdGVyTWFyayIsaHQpLHRoaXMuYnVmZmVyPW5ldyBkZSx0aGlzLmxlbmd0aD0wLHRoaXMucGlwZXM9bnVsbCx0aGlzLnBpcGVzQ291bnQ9MCx0aGlzLmZsb3dpbmc9bnVs''@;'; + put 'put ''bCx0aGlzLmVuZGVkPSExLHRoaXMuZW5kRW1pdHRlZD0hMSx0aGlzLnJlYWRpbmc9ITEsdGhpcy5zeW5jPSEwLHRoaXMubmVlZFJlYWRhYmxlPSExLHRoaXMuZW1pdHRlZFJlYWRhYmxlPSExLHRoaXMucmVhZGFibGVMaXN0ZW5pbmc9ITEsdGhpcy5yZXN1bWVTY2hlZHVsZWQ9ITEsdGhpcy5w''@;'; + put 'put ''YXVzZWQ9ITAsdGhpcy5lbWl0Q2xvc2U9ITEhPT12dC5lbWl0Q2xvc2UsdGhpcy5hdXRvRGVzdHJveT0hIXZ0LmF1dG9EZXN0cm95LHRoaXMuZGVzdHJveWVkPSExLHRoaXMuZGVmYXVsdEVuY29kaW5nPXZ0LmRlZmF1bHRFbmNvZGluZ3x8InV0ZjgiLHRoaXMuYXdhaXREcmFpbj0wLHRoaXMu''@;'; + put 'put ''cmVhZGluZ01vcmU9ITEsdGhpcy5kZWNvZGVyPW51bGwsdGhpcy5lbmNvZGluZz1udWxsLHZ0LmVuY29kaW5nJiYoc2V8fChzZT1aKDI1NTMpLlN0cmluZ0RlY29kZXIpLHRoaXMuZGVjb2Rlcj1uZXcgc2UodnQuZW5jb2RpbmcpLHRoaXMuZW5jb2Rpbmc9dnQuZW5jb2RpbmcpfWZ1bmN0aW9u''@;'; + put 'put ''IG5lKHZ0KXtpZihpZT1pZXx8Wig2NzUzKSwhKHRoaXMgaW5zdGFuY2VvZiBuZSkpcmV0dXJuIG5ldyBuZSh2dCk7dGhpcy5fcmVhZGFibGVTdGF0ZT1uZXcgeih2dCx0aGlzLHRoaXMgaW5zdGFuY2VvZiBpZSksdGhpcy5yZWFkYWJsZT0hMCx2dCYmKCJmdW5jdGlvbiI9PXR5cGVvZiB2dC5y''@;'; + put 'put ''ZWFkJiYodGhpcy5fcmVhZD12dC5yZWFkKSwiZnVuY3Rpb24iPT10eXBlb2YgdnQuZGVzdHJveSYmKHRoaXMuX2Rlc3Ryb3k9dnQuZGVzdHJveSkpLFcuY2FsbCh0aGlzKX1mdW5jdGlvbiB0ZSh2dCxBdCxodCxCdCxvbil7cSgicmVhZGFibGVBZGRDaHVuayIsQXQpO3ZhciBfdCxldCxhdCxM''@;'; + put 'put ''dCxDdCx0dD12dC5fcmVhZGFibGVTdGF0ZTtpZihudWxsPT09QXQpdHQucmVhZGluZz0hMSxmdW5jdGlvbihldCxhdCl7aWYocSgib25Fb2ZDaHVuayIpLCFhdC5lbmRlZCl7aWYoYXQuZGVjb2Rlcil7dmFyIEx0PWF0LmRlY29kZXIuZW5kKCk7THQmJkx0Lmxlbmd0aCYmKGF0LmJ1ZmZlci5w''@;'; + put 'put ''dXNoKEx0KSxhdC5sZW5ndGgrPWF0Lm9iamVjdE1vZGU/MTpMdC5sZW5ndGgpfWF0LmVuZGVkPSEwLGF0LnN5bmM/VChldCk6KGF0Lm5lZWRSZWFkYWJsZT0hMSxhdC5lbWl0dGVkUmVhZGFibGV8fChhdC5lbWl0dGVkUmVhZGFibGU9ITAsUyhldCkpKX19KHZ0LHR0KTtlbHNlIGlmKG9ufHwo''@;'; + put 'put ''ZXQ9dHQsTi5pc0J1ZmZlcihDdD1hdD1BdCl8fEN0IGluc3RhbmNlb2YgZWV8fCJzdHJpbmciPT10eXBlb2YgYXR8fHZvaWQgMD09PWF0fHxldC5vYmplY3RNb2RlfHwoTHQ9bmV3IFNlKCJjaHVuayIsWyJzdHJpbmciLCJCdWZmZXIiLCJVaW50OEFycmF5Il0sYXQpKSxfdD1MdCksX3QpaGUo''@;'; + put 'put ''dnQsX3QpO2Vsc2UgaWYodHQub2JqZWN0TW9kZXx8QXQmJkF0Lmxlbmd0aD4wKWlmKCJzdHJpbmciPT10eXBlb2YgQXR8fHR0Lm9iamVjdE1vZGV8fE9iamVjdC5nZXRQcm90b3R5cGVPZihBdCk9PT1OLnByb3RvdHlwZXx8KEF0PWZ1bmN0aW9uKGV0KXtyZXR1cm4gTi5mcm9tKGV0KX0oQXQp''@;'; + put 'put ''KSxCdCl0dC5lbmRFbWl0dGVkP2hlKHZ0LG5ldyBFZSk6eCh2dCx0dCxBdCwhMCk7ZWxzZSBpZih0dC5lbmRlZCloZSh2dCxuZXcgSWUpO2Vsc2V7aWYodHQuZGVzdHJveWVkKXJldHVybiExO3R0LnJlYWRpbmc9ITEsdHQuZGVjb2RlciYmIWh0PyhBdD10dC5kZWNvZGVyLndyaXRlKEF0KSx0''@;'; + put 'put ''dC5vYmplY3RNb2RlfHwwIT09QXQubGVuZ3RoP3godnQsdHQsQXQsITEpOkYodnQsdHQpKTp4KHZ0LHR0LEF0LCExKX1lbHNlIEJ0fHwodHQucmVhZGluZz0hMSxGKHZ0LHR0KSk7cmV0dXJuIXR0LmVuZGVkJiYodHQubGVuZ3RoPHR0LmhpZ2hXYXRlck1hcmt8fDA9PT10dC5sZW5ndGgpfWZ1''@;'; + put 'put ''bmN0aW9uIHgodnQsQXQsaHQsQnQpe0F0LmZsb3dpbmcmJjA9PT1BdC5sZW5ndGgmJiFBdC5zeW5jPyhBdC5hd2FpdERyYWluPTAsdnQuZW1pdCgiZGF0YSIsaHQpKTooQXQubGVuZ3RoKz1BdC5vYmplY3RNb2RlPzE6aHQubGVuZ3RoLEJ0P0F0LmJ1ZmZlci51bnNoaWZ0KGh0KTpBdC5idWZm''@;'; + put 'put ''ZXIucHVzaChodCksQXQubmVlZFJlYWRhYmxlJiZUKHZ0KSksRih2dCxBdCl9T2JqZWN0LmRlZmluZVByb3BlcnR5KG5lLnByb3RvdHlwZSwiZGVzdHJveWVkIix7ZW51bWVyYWJsZTohMSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCAwIT09dGhpcy5fcmVhZGFibGVTdGF0ZSYmdGhpcy5f''@;'; + put 'put ''cmVhZGFibGVTdGF0ZS5kZXN0cm95ZWR9LHNldDpmdW5jdGlvbih2dCl7dGhpcy5fcmVhZGFibGVTdGF0ZSYmKHRoaXMuX3JlYWRhYmxlU3RhdGUuZGVzdHJveWVkPXZ0KX19KSxuZS5wcm90b3R5cGUuZGVzdHJveT12ZS5kZXN0cm95LG5lLnByb3RvdHlwZS5fdW5kZXN0cm95PXZlLnVuZGVz''@;'; + put 'put ''dHJveSxuZS5wcm90b3R5cGUuX2Rlc3Ryb3k9ZnVuY3Rpb24odnQsQXQpe0F0KHZ0KX0sbmUucHJvdG90eXBlLnB1c2g9ZnVuY3Rpb24odnQsQXQpe3ZhciBodCxCdD10aGlzLl9yZWFkYWJsZVN0YXRlO3JldHVybiBCdC5vYmplY3RNb2RlP2h0PSEwOiJzdHJpbmciPT10eXBlb2YgdnQmJigo''@;'; + put 'put ''QXQ9QXR8fEJ0LmRlZmF1bHRFbmNvZGluZykhPT1CdC5lbmNvZGluZyYmKHZ0PU4uZnJvbSh2dCxBdCksQXQ9IiIpLGh0PSEwKSx0ZSh0aGlzLHZ0LEF0LCExLGh0KX0sbmUucHJvdG90eXBlLnVuc2hpZnQ9ZnVuY3Rpb24odnQpe3JldHVybiB0ZSh0aGlzLHZ0LG51bGwsITAsITEpfSxuZS5w''@;'; + put 'put ''cm90b3R5cGUuaXNQYXVzZWQ9ZnVuY3Rpb24oKXtyZXR1cm4hMT09PXRoaXMuX3JlYWRhYmxlU3RhdGUuZmxvd2luZ30sbmUucHJvdG90eXBlLnNldEVuY29kaW5nPWZ1bmN0aW9uKHZ0KXtzZXx8KHNlPVooMjU1MykuU3RyaW5nRGVjb2Rlcik7dmFyIEF0PW5ldyBzZSh2dCk7dGhpcy5fcmVh''@;'; + put 'put ''ZGFibGVTdGF0ZS5kZWNvZGVyPUF0LHRoaXMuX3JlYWRhYmxlU3RhdGUuZW5jb2Rpbmc9dGhpcy5fcmVhZGFibGVTdGF0ZS5kZWNvZGVyLmVuY29kaW5nO2Zvcih2YXIgaHQ9dGhpcy5fcmVhZGFibGVTdGF0ZS5idWZmZXIuaGVhZCxCdD0iIjtudWxsIT09aHQ7KUJ0Kz1BdC53cml0ZShodC5k''@;'; + put 'put ''YXRhKSxodD1odC5uZXh0O3JldHVybiB0aGlzLl9yZWFkYWJsZVN0YXRlLmJ1ZmZlci5jbGVhcigpLCIiIT09QnQmJnRoaXMuX3JlYWRhYmxlU3RhdGUuYnVmZmVyLnB1c2goQnQpLHRoaXMuX3JlYWRhYmxlU3RhdGUubGVuZ3RoPUJ0Lmxlbmd0aCx0aGlzfTt2YXIgUD0xMDczNzQxODI0O2Z1''@;'; + put 'put ''bmN0aW9uIFYodnQsQXQpe3JldHVybiB2dDw9MHx8MD09PUF0Lmxlbmd0aCYmQXQuZW5kZWQ/MDpBdC5vYmplY3RNb2RlPzE6dnQhPXZ0P0F0LmZsb3dpbmcmJkF0Lmxlbmd0aD9BdC5idWZmZXIuaGVhZC5kYXRhLmxlbmd0aDpBdC5sZW5ndGg6KHZ0PkF0LmhpZ2hXYXRlck1hcmsmJihBdC5o''@;'; + put 'put ''aWdoV2F0ZXJNYXJrPSgoaHQ9dnQpPj1QP2h0PVA6KGh0LS0saHR8PWh0Pj4+MSxodHw9aHQ+Pj4yLGh0fD1odD4+PjQsaHR8PWh0Pj4+OCxodHw9aHQ+Pj4xNixodCsrKSxodCkpLHZ0PD1BdC5sZW5ndGg/dnQ6QXQuZW5kZWQ/QXQubGVuZ3RoOihBdC5uZWVkUmVhZGFibGU9ITAsMCkpO3Zh''@;'; + put 'put ''ciBodH1mdW5jdGlvbiBUKHZ0KXt2YXIgQXQ9dnQuX3JlYWRhYmxlU3RhdGU7cSgiZW1pdFJlYWRhYmxlIixBdC5uZWVkUmVhZGFibGUsQXQuZW1pdHRlZFJlYWRhYmxlKSxBdC5uZWVkUmVhZGFibGU9ITEsQXQuZW1pdHRlZFJlYWRhYmxlfHwocSgiZW1pdFJlYWRhYmxlIixBdC5mbG93aW5n''@;'; + put 'put ''KSxBdC5lbWl0dGVkUmVhZGFibGU9ITAsYWUubmV4dFRpY2soUyx2dCkpfWZ1bmN0aW9uIFModnQpe3ZhciBBdD12dC5fcmVhZGFibGVTdGF0ZTtxKCJlbWl0UmVhZGFibGVfIixBdC5kZXN0cm95ZWQsQXQubGVuZ3RoLEF0LmVuZGVkKSxBdC5kZXN0cm95ZWR8fCFBdC5sZW5ndGgmJiFBdC5l''@;'; + put 'put ''bmRlZHx8KHZ0LmVtaXQoInJlYWRhYmxlIiksQXQuZW1pdHRlZFJlYWRhYmxlPSExKSxBdC5uZWVkUmVhZGFibGU9IUF0LmZsb3dpbmcmJiFBdC5lbmRlZCYmQXQubGVuZ3RoPD1BdC5oaWdoV2F0ZXJNYXJrLFFlKHZ0KX1mdW5jdGlvbiBGKHZ0LEF0KXtBdC5yZWFkaW5nTW9yZXx8KEF0LnJl''@;'; + put 'put ''YWRpbmdNb3JlPSEwLGFlLm5leHRUaWNrKHllLHZ0LEF0KSl9ZnVuY3Rpb24geWUodnQsQXQpe2Zvcig7IUF0LnJlYWRpbmcmJiFBdC5lbmRlZCYmKEF0Lmxlbmd0aDxBdC5oaWdoV2F0ZXJNYXJrfHxBdC5mbG93aW5nJiYwPT09QXQubGVuZ3RoKTspe3ZhciBodD1BdC5sZW5ndGg7aWYocSgi''@;'; + put 'put ''bWF5YmVSZWFkTW9yZSByZWFkIDAiKSx2dC5yZWFkKDApLGh0PT09QXQubGVuZ3RoKWJyZWFrfUF0LnJlYWRpbmdNb3JlPSExfWZ1bmN0aW9uIENlKHZ0KXt2YXIgQXQ9dnQuX3JlYWRhYmxlU3RhdGU7QXQucmVhZGFibGVMaXN0ZW5pbmc9dnQubGlzdGVuZXJDb3VudCgicmVhZGFibGUiKT4w''@;'; + put 'put ''LEF0LnJlc3VtZVNjaGVkdWxlZCYmIUF0LnBhdXNlZD9BdC5mbG93aW5nPSEwOnZ0Lmxpc3RlbmVyQ291bnQoImRhdGEiKT4wJiZ2dC5yZXN1bWUoKX1mdW5jdGlvbiBEZSh2dCl7cSgicmVhZGFibGUgbmV4dHRpY2sgcmVhZCAwIiksdnQucmVhZCgwKX1mdW5jdGlvbiBQZSh2dCxBdCl7cSgi''@;'; + put 'put ''cmVzdW1lIixBdC5yZWFkaW5nKSxBdC5yZWFkaW5nfHx2dC5yZWFkKDApLEF0LnJlc3VtZVNjaGVkdWxlZD0hMSx2dC5lbWl0KCJyZXN1bWUiKSxRZSh2dCksQXQuZmxvd2luZyYmIUF0LnJlYWRpbmcmJnZ0LnJlYWQoMCl9ZnVuY3Rpb24gUWUodnQpe3ZhciBBdD12dC5fcmVhZGFibGVTdGF0''@;'; + put 'put ''ZTtmb3IocSgiZmxvdyIsQXQuZmxvd2luZyk7QXQuZmxvd2luZyYmbnVsbCE9PXZ0LnJlYWQoKTspO31mdW5jdGlvbiAkZSh2dCxBdCl7cmV0dXJuIDA9PT1BdC5sZW5ndGg/bnVsbDooQXQub2JqZWN0TW9kZT9odD1BdC5idWZmZXIuc2hpZnQoKTohdnR8fHZ0Pj1BdC5sZW5ndGg/KGh0PUF0''@;'; + put 'put ''LmRlY29kZXI/QXQuYnVmZmVyLmpvaW4oIiIpOjE9PT1BdC5idWZmZXIubGVuZ3RoP0F0LmJ1ZmZlci5maXJzdCgpOkF0LmJ1ZmZlci5jb25jYXQoQXQubGVuZ3RoKSxBdC5idWZmZXIuY2xlYXIoKSk6aHQ9QXQuYnVmZmVyLmNvbnN1bWUodnQsQXQuZGVjb2RlciksaHQpO3ZhciBodH1mdW5j''@;'; + put 'put ''dGlvbiBndCh2dCl7dmFyIEF0PXZ0Ll9yZWFkYWJsZVN0YXRlO3EoImVuZFJlYWRhYmxlIixBdC5lbmRFbWl0dGVkKSxBdC5lbmRFbWl0dGVkfHwoQXQuZW5kZWQ9ITAsYWUubmV4dFRpY2sod3QsQXQsdnQpKX1mdW5jdGlvbiB3dCh2dCxBdCl7aWYocSgiZW5kUmVhZGFibGVOVCIsdnQuZW5k''@;'; + put 'put ''RW1pdHRlZCx2dC5sZW5ndGgpLCF2dC5lbmRFbWl0dGVkJiYwPT09dnQubGVuZ3RoJiYodnQuZW5kRW1pdHRlZD0hMCxBdC5yZWFkYWJsZT0hMSxBdC5lbWl0KCJlbmQiKSx2dC5hdXRvRGVzdHJveSkpe3ZhciBodD1BdC5fd3JpdGFibGVTdGF0ZTsoIWh0fHxodC5hdXRvRGVzdHJveSYmaHQu''@;'; + put 'put ''ZmluaXNoZWQpJiZBdC5kZXN0cm95KCl9fWZ1bmN0aW9uIG10KHZ0LEF0KXtmb3IodmFyIGh0PTAsQnQ9dnQubGVuZ3RoO2h0PEJ0O2h0KyspaWYodnRbaHRdPT09QXQpcmV0dXJuIGh0O3JldHVybi0xfW5lLnByb3RvdHlwZS5yZWFkPWZ1bmN0aW9uKHZ0KXtxKCJyZWFkIix2dCksdnQ9cGFy''@;'; + put 'put ''c2VJbnQodnQsMTApO3ZhciBBdD10aGlzLl9yZWFkYWJsZVN0YXRlLGh0PXZ0O2lmKDAhPT12dCYmKEF0LmVtaXR0ZWRSZWFkYWJsZT0hMSksMD09PXZ0JiZBdC5uZWVkUmVhZGFibGUmJigoMCE9PUF0LmhpZ2hXYXRlck1hcms/QXQubGVuZ3RoPj1BdC5oaWdoV2F0ZXJNYXJrOkF0Lmxlbmd0''@;'; + put 'put ''aD4wKXx8QXQuZW5kZWQpKXJldHVybiBxKCJyZWFkOiBlbWl0UmVhZGFibGUiLEF0Lmxlbmd0aCxBdC5lbmRlZCksMD09PUF0Lmxlbmd0aCYmQXQuZW5kZWQ/Z3QodGhpcyk6VCh0aGlzKSxudWxsO2lmKDA9PT0odnQ9Vih2dCxBdCkpJiZBdC5lbmRlZClyZXR1cm4gMD09PUF0Lmxlbmd0aCYm''@;'; + put 'put ''Z3QodGhpcyksbnVsbDt2YXIgQnQsb249QXQubmVlZFJlYWRhYmxlO3JldHVybiBxKCJuZWVkIHJlYWRhYmxlIixvbiksKDA9PT1BdC5sZW5ndGh8fEF0Lmxlbmd0aC12dDxBdC5oaWdoV2F0ZXJNYXJrKSYmcSgibGVuZ3RoIGxlc3MgdGhhbiB3YXRlcm1hcmsiLG9uPSEwKSxBdC5lbmRlZHx8''@;'; + put 'put ''QXQucmVhZGluZz9xKCJyZWFkaW5nIG9yIGVuZGVkIixvbj0hMSk6b24mJihxKCJkbyByZWFkIiksQXQucmVhZGluZz0hMCxBdC5zeW5jPSEwLDA9PT1BdC5sZW5ndGgmJihBdC5uZWVkUmVhZGFibGU9ITApLHRoaXMuX3JlYWQoQXQuaGlnaFdhdGVyTWFyayksQXQuc3luYz0hMSxBdC5yZWFk''@;'; + put 'put ''aW5nfHwodnQ9VihodCxBdCkpKSxudWxsPT09KEJ0PXZ0PjA/JGUodnQsQXQpOm51bGwpPyhBdC5uZWVkUmVhZGFibGU9QXQubGVuZ3RoPD1BdC5oaWdoV2F0ZXJNYXJrLHZ0PTApOihBdC5sZW5ndGgtPXZ0LEF0LmF3YWl0RHJhaW49MCksMD09PUF0Lmxlbmd0aCYmKEF0LmVuZGVkfHwoQXQu''@;'; + put 'put ''bmVlZFJlYWRhYmxlPSEwKSxodCE9PXZ0JiZBdC5lbmRlZCYmZ3QodGhpcykpLG51bGwhPT1CdCYmdGhpcy5lbWl0KCJkYXRhIixCdCksQnR9LG5lLnByb3RvdHlwZS5fcmVhZD1mdW5jdGlvbih2dCl7aGUodGhpcyxuZXcgVGUoIl9yZWFkKCkiKSl9LG5lLnByb3RvdHlwZS5waXBlPWZ1bmN0''@;'; + put 'put ''aW9uKHZ0LEF0KXt2YXIgaHQ9dGhpcyxCdD10aGlzLl9yZWFkYWJsZVN0YXRlO3N3aXRjaChCdC5waXBlc0NvdW50KXtjYXNlIDA6QnQucGlwZXM9dnQ7YnJlYWs7Y2FzZSAxOkJ0LnBpcGVzPVtCdC5waXBlcyx2dF07YnJlYWs7ZGVmYXVsdDpCdC5waXBlcy5wdXNoKHZ0KX1CdC5waXBlc0Nv''@;'; + put 'put ''dW50Kz0xLHEoInBpcGUgY291bnQ9JWQgb3B0cz0laiIsQnQucGlwZXNDb3VudCxBdCk7dmFyIG9uPUF0JiYhMT09PUF0LmVuZHx8dnQ9PT1hZS5zdGRvdXR8fHZ0PT09YWUuc3RkZXJyP0dlOnR0O2Z1bmN0aW9uIHR0KCl7cSgib25lbmQiKSx2dC5lbmQoKX1CdC5lbmRFbWl0dGVkP2FlLm5l''@;'; + put 'put ''eHRUaWNrKG9uKTpodC5vbmNlKCJlbmQiLG9uKSx2dC5vbigidW5waXBlIixmdW5jdGlvbiBfdChVZSx5dCl7cSgib251bnBpcGUiKSxVZT09PWh0JiZ5dCYmITE9PT15dC5oYXNVbnBpcGVkJiYoeXQuaGFzVW5waXBlZD0hMCxxKCJjbGVhbnVwIiksdnQucmVtb3ZlTGlzdGVuZXIoImNsb3Nl''@;'; + put 'put ''IixmdCksdnQucmVtb3ZlTGlzdGVuZXIoImZpbmlzaCIsSHQpLHZ0LnJlbW92ZUxpc3RlbmVyKCJkcmFpbiIsZXQpLHZ0LnJlbW92ZUxpc3RlbmVyKCJlcnJvciIsQ3QpLHZ0LnJlbW92ZUxpc3RlbmVyKCJ1bnBpcGUiLF90KSxodC5yZW1vdmVMaXN0ZW5lcigiZW5kIix0dCksaHQucmVtb3Zl''@;'; + put 'put ''TGlzdGVuZXIoImVuZCIsR2UpLGh0LnJlbW92ZUxpc3RlbmVyKCJkYXRhIixMdCksYXQ9ITAsIUJ0LmF3YWl0RHJhaW58fHZ0Ll93cml0YWJsZVN0YXRlJiYhdnQuX3dyaXRhYmxlU3RhdGUubmVlZERyYWlufHxldCgpKX0pO3ZhciBVZSxldD0oVWU9aHQsZnVuY3Rpb24oKXt2YXIgeXQ9VWUu''@;'; + put 'put ''X3JlYWRhYmxlU3RhdGU7cSgicGlwZU9uRHJhaW4iLHl0LmF3YWl0RHJhaW4pLHl0LmF3YWl0RHJhaW4mJnl0LmF3YWl0RHJhaW4tLSwwPT09eXQuYXdhaXREcmFpbiYmWShVZSwiZGF0YSIpJiYoeXQuZmxvd2luZz0hMCxRZShVZSkpfSk7dnQub24oImRyYWluIixldCk7dmFyIGF0PSExO2Z1''@;'; + put 'put ''bmN0aW9uIEx0KFVlKXtxKCJvbmRhdGEiKTt2YXIgeXQ9dnQud3JpdGUoVWUpO3EoImRlc3Qud3JpdGUiLHl0KSwhMT09PXl0JiYoKDE9PT1CdC5waXBlc0NvdW50JiZCdC5waXBlcz09PXZ0fHxCdC5waXBlc0NvdW50PjEmJi0xIT09bXQoQnQucGlwZXMsdnQpKSYmIWF0JiYocSgiZmFsc2Ug''@;'; + put 'put ''d3JpdGUgcmVzcG9uc2UsIHBhdXNlIixCdC5hd2FpdERyYWluKSxCdC5hd2FpdERyYWluKyspLGh0LnBhdXNlKCkpfWZ1bmN0aW9uIEN0KFVlKXtxKCJvbmVycm9yIixVZSksR2UoKSx2dC5yZW1vdmVMaXN0ZW5lcigiZXJyb3IiLEN0KSwwPT09WSh2dCwiZXJyb3IiKSYmaGUodnQsVWUpfWZ1''@;'; + put 'put ''bmN0aW9uIGZ0KCl7dnQucmVtb3ZlTGlzdGVuZXIoImZpbmlzaCIsSHQpLEdlKCl9ZnVuY3Rpb24gSHQoKXtxKCJvbmZpbmlzaCIpLHZ0LnJlbW92ZUxpc3RlbmVyKCJjbG9zZSIsZnQpLEdlKCl9ZnVuY3Rpb24gR2UoKXtxKCJ1bnBpcGUiKSxodC51bnBpcGUodnQpfXJldHVybiBodC5vbigi''@;'; + put 'put ''ZGF0YSIsTHQpLGZ1bmN0aW9uKFVlLHl0LGp0KXtpZigiZnVuY3Rpb24iPT10eXBlb2YgVWUucHJlcGVuZExpc3RlbmVyKXJldHVybiBVZS5wcmVwZW5kTGlzdGVuZXIoeXQsanQpO1VlLl9ldmVudHMmJlVlLl9ldmVudHNbeXRdP0FycmF5LmlzQXJyYXkoVWUuX2V2ZW50c1t5dF0pP1VlLl9l''@;'; + put 'put ''dmVudHNbeXRdLnVuc2hpZnQoanQpOlVlLl9ldmVudHNbeXRdPVtqdCxVZS5fZXZlbnRzW3l0XV06VWUub24oeXQsanQpfSh2dCwiZXJyb3IiLEN0KSx2dC5vbmNlKCJjbG9zZSIsZnQpLHZ0Lm9uY2UoImZpbmlzaCIsSHQpLHZ0LmVtaXQoInBpcGUiLGh0KSxCdC5mbG93aW5nfHwocSgicGlw''@;'; + put 'put ''ZSByZXN1bWUiKSxodC5yZXN1bWUoKSksdnR9LG5lLnByb3RvdHlwZS51bnBpcGU9ZnVuY3Rpb24odnQpe3ZhciBBdD10aGlzLl9yZWFkYWJsZVN0YXRlLGh0PXtoYXNVbnBpcGVkOiExfTtpZigwPT09QXQucGlwZXNDb3VudClyZXR1cm4gdGhpcztpZigxPT09QXQucGlwZXNDb3VudClyZXR1''@;'; + put 'put ''cm4gdnQmJnZ0IT09QXQucGlwZXN8fCh2dHx8KHZ0PUF0LnBpcGVzKSxBdC5waXBlcz1udWxsLEF0LnBpcGVzQ291bnQ9MCxBdC5mbG93aW5nPSExLHZ0JiZ2dC5lbWl0KCJ1bnBpcGUiLHRoaXMsaHQpKSx0aGlzO2lmKCF2dCl7dmFyIEJ0PUF0LnBpcGVzLG9uPUF0LnBpcGVzQ291bnQ7QXQu''@;'; + put 'put ''cGlwZXM9bnVsbCxBdC5waXBlc0NvdW50PTAsQXQuZmxvd2luZz0hMTtmb3IodmFyIF90PTA7X3Q8b247X3QrKylCdFtfdF0uZW1pdCgidW5waXBlIix0aGlzLHtoYXNVbnBpcGVkOiExfSk7cmV0dXJuIHRoaXN9dmFyIHR0PW10KEF0LnBpcGVzLHZ0KTtyZXR1cm4tMT09PXR0fHwoQXQucGlw''@;'; + put 'put ''ZXMuc3BsaWNlKHR0LDEpLEF0LnBpcGVzQ291bnQtPTEsMT09PUF0LnBpcGVzQ291bnQmJihBdC5waXBlcz1BdC5waXBlc1swXSksdnQuZW1pdCgidW5waXBlIix0aGlzLGh0KSksdGhpc30sbmUucHJvdG90eXBlLmFkZExpc3RlbmVyPW5lLnByb3RvdHlwZS5vbj1mdW5jdGlvbih2dCxBdCl7''@;'; + put 'put ''dmFyIGh0PVcucHJvdG90eXBlLm9uLmNhbGwodGhpcyx2dCxBdCksQnQ9dGhpcy5fcmVhZGFibGVTdGF0ZTtyZXR1cm4iZGF0YSI9PT12dD8oQnQucmVhZGFibGVMaXN0ZW5pbmc9dGhpcy5saXN0ZW5lckNvdW50KCJyZWFkYWJsZSIpPjAsITEhPT1CdC5mbG93aW5nJiZ0aGlzLnJlc3VtZSgp''@;'; + put 'put ''KToicmVhZGFibGUiPT09dnQmJihCdC5lbmRFbWl0dGVkfHxCdC5yZWFkYWJsZUxpc3RlbmluZ3x8KEJ0LnJlYWRhYmxlTGlzdGVuaW5nPUJ0Lm5lZWRSZWFkYWJsZT0hMCxCdC5mbG93aW5nPSExLEJ0LmVtaXR0ZWRSZWFkYWJsZT0hMSxxKCJvbiByZWFkYWJsZSIsQnQubGVuZ3RoLEJ0LnJl''@;'; + put 'put ''YWRpbmcpLEJ0Lmxlbmd0aD9UKHRoaXMpOkJ0LnJlYWRpbmd8fGFlLm5leHRUaWNrKERlLHRoaXMpKSksaHR9LG5lLnByb3RvdHlwZS5yZW1vdmVMaXN0ZW5lcj1mdW5jdGlvbih2dCxBdCl7dmFyIGh0PVcucHJvdG90eXBlLnJlbW92ZUxpc3RlbmVyLmNhbGwodGhpcyx2dCxBdCk7cmV0dXJu''@;'; + put 'put ''InJlYWRhYmxlIj09PXZ0JiZhZS5uZXh0VGljayhDZSx0aGlzKSxodH0sbmUucHJvdG90eXBlLnJlbW92ZUFsbExpc3RlbmVycz1mdW5jdGlvbih2dCl7dmFyIEF0PVcucHJvdG90eXBlLnJlbW92ZUFsbExpc3RlbmVycy5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuInJlYWRhYmxlIiE9''@;'; + put 'put ''PXZ0JiZ2b2lkIDAhPT12dHx8YWUubmV4dFRpY2soQ2UsdGhpcyksQXR9LG5lLnByb3RvdHlwZS5yZXN1bWU9ZnVuY3Rpb24oKXt2YXIgaHQsdnQ9dGhpcy5fcmVhZGFibGVTdGF0ZTtyZXR1cm4gdnQuZmxvd2luZ3x8KHEoInJlc3VtZSIpLHZ0LmZsb3dpbmc9IXZ0LnJlYWRhYmxlTGlzdGVu''@;'; + put 'put ''aW5nLHRoaXMsKGh0PXZ0KS5yZXN1bWVTY2hlZHVsZWR8fChodC5yZXN1bWVTY2hlZHVsZWQ9ITAsYWUubmV4dFRpY2soUGUsdGhpcyxodCkpKSx2dC5wYXVzZWQ9ITEsdGhpc30sbmUucHJvdG90eXBlLnBhdXNlPWZ1bmN0aW9uKCl7cmV0dXJuIHEoImNhbGwgcGF1c2UgZmxvd2luZz0laiIs''@;'; + put 'put ''dGhpcy5fcmVhZGFibGVTdGF0ZS5mbG93aW5nKSwhMSE9PXRoaXMuX3JlYWRhYmxlU3RhdGUuZmxvd2luZyYmKHEoInBhdXNlIiksdGhpcy5fcmVhZGFibGVTdGF0ZS5mbG93aW5nPSExLHRoaXMuZW1pdCgicGF1c2UiKSksdGhpcy5fcmVhZGFibGVTdGF0ZS5wYXVzZWQ9ITAsdGhpc30sbmUu''@;'; + put 'put ''cHJvdG90eXBlLndyYXA9ZnVuY3Rpb24odnQpe3ZhciBBdD10aGlzLGh0PXRoaXMuX3JlYWRhYmxlU3RhdGUsQnQ9ITE7Zm9yKHZhciBvbiBpbiB2dC5vbigiZW5kIixmdW5jdGlvbigpe2lmKHEoIndyYXBwZWQgZW5kIiksaHQuZGVjb2RlciYmIWh0LmVuZGVkKXt2YXIgdHQ9aHQuZGVjb2Rl''@;'; + put 'put ''ci5lbmQoKTt0dCYmdHQubGVuZ3RoJiZBdC5wdXNoKHR0KX1BdC5wdXNoKG51bGwpfSksdnQub24oImRhdGEiLGZ1bmN0aW9uKHR0KXtxKCJ3cmFwcGVkIGRhdGEiKSxodC5kZWNvZGVyJiYodHQ9aHQuZGVjb2Rlci53cml0ZSh0dCkpLGh0Lm9iamVjdE1vZGUmJm51bGw9PXR0fHwoaHQub2Jq''@;'; + put 'put ''ZWN0TW9kZXx8dHQmJnR0Lmxlbmd0aCkmJihBdC5wdXNoKHR0KXx8KEJ0PSEwLHZ0LnBhdXNlKCkpKX0pLHZ0KXZvaWQgMD09PXRoaXNbb25dJiYiZnVuY3Rpb24iPT10eXBlb2YgdnRbb25dJiYodGhpc1tvbl09ZnVuY3Rpb24odHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB2dFt0dF0u''@;'; + put 'put ''YXBwbHkodnQsYXJndW1lbnRzKX19KG9uKSk7Zm9yKHZhciBfdD0wO190PE8ubGVuZ3RoO190KyspdnQub24oT1tfdF0sdGhpcy5lbWl0LmJpbmQodGhpcyxPW190XSkpO3JldHVybiB0aGlzLl9yZWFkPWZ1bmN0aW9uKHR0KXtxKCJ3cmFwcGVkIF9yZWFkIix0dCksQnQmJihCdD0hMSx2dC5y''@;'; + put 'put ''ZXN1bWUoKSl9LHRoaXN9LCJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJihuZS5wcm90b3R5cGVbU3ltYm9sLmFzeW5jSXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgMD09PW9lJiYob2U9Wig1ODUwKSksb2UodGhpcyl9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkobmUucHJvdG90''@;'; + put 'put ''eXBlLCJyZWFkYWJsZUhpZ2hXYXRlck1hcmsiLHtlbnVtZXJhYmxlOiExLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9yZWFkYWJsZVN0YXRlLmhpZ2hXYXRlck1hcmt9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KG5lLnByb3RvdHlwZSwicmVhZGFibGVCdWZmZXIiLHtlbnVtZXJhYmxl''@;'; + put 'put ''OiExLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9yZWFkYWJsZVN0YXRlJiZ0aGlzLl9yZWFkYWJsZVN0YXRlLmJ1ZmZlcn19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkobmUucHJvdG90eXBlLCJyZWFkYWJsZUZsb3dpbmciLHtlbnVtZXJhYmxlOiExLGdldDpmdW5jdGlvbigpe3JldHVy''@;'; + put 'put ''biB0aGlzLl9yZWFkYWJsZVN0YXRlLmZsb3dpbmd9LHNldDpmdW5jdGlvbih2dCl7dGhpcy5fcmVhZGFibGVTdGF0ZSYmKHRoaXMuX3JlYWRhYmxlU3RhdGUuZmxvd2luZz12dCl9fSksbmUuX2Zyb21MaXN0PSRlLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZS5wcm90b3R5cGUsInJlYWRhYmxl''@;'; + put 'put ''TGVuZ3RoIix7ZW51bWVyYWJsZTohMSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcmVhZGFibGVTdGF0ZS5sZW5ndGh9fSksImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmKG5lLmZyb209ZnVuY3Rpb24odnQsQXQpe3JldHVybiB2b2lkIDA9PT1jZSYmKGNlPVooNTE2NykpLGNlKG5l''@;'; + put 'put ''LHZ0LEF0KX0pfSw0NjA1OihVLFEsWik9PnsidXNlIHN0cmljdCI7VS5leHBvcnRzPUo7dmFyIGllPVooNDI4MSkucSxhZT1pZS5FUlJfTUVUSE9EX05PVF9JTVBMRU1FTlRFRCxZPWllLkVSUl9NVUxUSVBMRV9DQUxMQkFDSyxXPWllLkVSUl9UUkFOU0ZPUk1fQUxSRUFEWV9UUkFOU0ZPUk1J''@;'; + put 'put ''TkcsTj1pZS5FUlJfVFJBTlNGT1JNX1dJVEhfTEVOR1RIXzAsZWU9Wig2NzUzKTtmdW5jdGlvbiBxKGNlLGRlKXt2YXIgdmU9dGhpcy5fdHJhbnNmb3JtU3RhdGU7dmUudHJhbnNmb3JtaW5nPSExO3ZhciBBZT12ZS53cml0ZWNiO2lmKG51bGw9PT1BZSlyZXR1cm4gdGhpcy5lbWl0KCJlcnJv''@;'; + put 'put ''ciIsbmV3IFkpO3ZlLndyaXRlY2h1bms9bnVsbCx2ZS53cml0ZWNiPW51bGwsbnVsbCE9ZGUmJnRoaXMucHVzaChkZSksQWUoY2UpO3ZhciBrZT10aGlzLl9yZWFkYWJsZVN0YXRlO2tlLnJlYWRpbmc9ITEsKGtlLm5lZWRSZWFkYWJsZXx8a2UubGVuZ3RoPGtlLmhpZ2hXYXRlck1hcmspJiZ0''@;'; + put 'put ''aGlzLl9yZWFkKGtlLmhpZ2hXYXRlck1hcmspfWZ1bmN0aW9uIEooY2Upe2lmKCEodGhpcyBpbnN0YW5jZW9mIEopKXJldHVybiBuZXcgSihjZSk7ZWUuY2FsbCh0aGlzLGNlKSx0aGlzLl90cmFuc2Zvcm1TdGF0ZT17YWZ0ZXJUcmFuc2Zvcm06cS5iaW5kKHRoaXMpLG5lZWRUcmFuc2Zvcm06''@;'; + put 'put ''ITEsdHJhbnNmb3JtaW5nOiExLHdyaXRlY2I6bnVsbCx3cml0ZWNodW5rOm51bGwsd3JpdGVlbmNvZGluZzpudWxsfSx0aGlzLl9yZWFkYWJsZVN0YXRlLm5lZWRSZWFkYWJsZT0hMCx0aGlzLl9yZWFkYWJsZVN0YXRlLnN5bmM9ITEsY2UmJigiZnVuY3Rpb24iPT10eXBlb2YgY2UudHJhbnNm''@;'; + put 'put ''b3JtJiYodGhpcy5fdHJhbnNmb3JtPWNlLnRyYW5zZm9ybSksImZ1bmN0aW9uIj09dHlwZW9mIGNlLmZsdXNoJiYodGhpcy5fZmx1c2g9Y2UuZmx1c2gpKSx0aGlzLm9uKCJwcmVmaW5pc2giLHNlKX1mdW5jdGlvbiBzZSgpe3ZhciBjZT10aGlzOyJmdW5jdGlvbiIhPXR5cGVvZiB0aGlzLl9m''@;'; + put 'put ''bHVzaHx8dGhpcy5fcmVhZGFibGVTdGF0ZS5kZXN0cm95ZWQ/b2UodGhpcyxudWxsLG51bGwpOnRoaXMuX2ZsdXNoKGZ1bmN0aW9uKGRlLHZlKXtvZShjZSxkZSx2ZSl9KX1mdW5jdGlvbiBvZShjZSxkZSx2ZSl7aWYoZGUpcmV0dXJuIGNlLmVtaXQoImVycm9yIixkZSk7aWYobnVsbCE9dmUm''@;'; + put 'put ''JmNlLnB1c2godmUpLGNlLl93cml0YWJsZVN0YXRlLmxlbmd0aCl0aHJvdyBuZXcgTjtpZihjZS5fdHJhbnNmb3JtU3RhdGUudHJhbnNmb3JtaW5nKXRocm93IG5ldyBXO3JldHVybiBjZS5wdXNoKG51bGwpfVooNTcxNykoSixlZSksSi5wcm90b3R5cGUucHVzaD1mdW5jdGlvbihjZSxkZSl7''@;'; + put 'put ''cmV0dXJuIHRoaXMuX3RyYW5zZm9ybVN0YXRlLm5lZWRUcmFuc2Zvcm09ITEsZWUucHJvdG90eXBlLnB1c2guY2FsbCh0aGlzLGNlLGRlKX0sSi5wcm90b3R5cGUuX3RyYW5zZm9ybT1mdW5jdGlvbihjZSxkZSx2ZSl7dmUobmV3IGFlKCJfdHJhbnNmb3JtKCkiKSl9LEoucHJvdG90eXBlLl93''@;'; + put 'put ''cml0ZT1mdW5jdGlvbihjZSxkZSx2ZSl7dmFyIEFlPXRoaXMuX3RyYW5zZm9ybVN0YXRlO2lmKEFlLndyaXRlY2I9dmUsQWUud3JpdGVjaHVuaz1jZSxBZS53cml0ZWVuY29kaW5nPWRlLCFBZS50cmFuc2Zvcm1pbmcpe3ZhciBrZT10aGlzLl9yZWFkYWJsZVN0YXRlOyhBZS5uZWVkVHJhbnNm''@;'; + put 'put ''b3JtfHxrZS5uZWVkUmVhZGFibGV8fGtlLmxlbmd0aDxrZS5oaWdoV2F0ZXJNYXJrKSYmdGhpcy5fcmVhZChrZS5oaWdoV2F0ZXJNYXJrKX19LEoucHJvdG90eXBlLl9yZWFkPWZ1bmN0aW9uKGNlKXt2YXIgZGU9dGhpcy5fdHJhbnNmb3JtU3RhdGU7bnVsbD09PWRlLndyaXRlY2h1bmt8fGRl''@;'; + put 'put ''LnRyYW5zZm9ybWluZz9kZS5uZWVkVHJhbnNmb3JtPSEwOihkZS50cmFuc2Zvcm1pbmc9ITAsdGhpcy5fdHJhbnNmb3JtKGRlLndyaXRlY2h1bmssZGUud3JpdGVlbmNvZGluZyxkZS5hZnRlclRyYW5zZm9ybSkpfSxKLnByb3RvdHlwZS5fZGVzdHJveT1mdW5jdGlvbihjZSxkZSl7ZWUucHJv''@;'; + put 'put ''dG90eXBlLl9kZXN0cm95LmNhbGwodGhpcyxjZSxmdW5jdGlvbih2ZSl7ZGUodmUpfSl9fSw0MjI5OihVLFEsWik9PnsidXNlIHN0cmljdCI7dmFyIGllLGFlPVooNDE1NSk7ZnVuY3Rpb24gWShGKXt2YXIgeWU9dGhpczt0aGlzLm5leHQ9bnVsbCx0aGlzLmVudHJ5PW51bGwsdGhpcy5maW5p''@;'; + put 'put ''c2g9ZnVuY3Rpb24oKXshZnVuY3Rpb24oQ2UsRGUsUGUpe3ZhciBRZT1DZS5lbnRyeTtmb3IoQ2UuZW50cnk9bnVsbDtRZTspe3ZhciAkZT1RZS5jYWxsYmFjaztEZS5wZW5kaW5nY2ItLSwkZSh1bmRlZmluZWQpLFFlPVFlLm5leHR9RGUuY29ya2VkUmVxdWVzdHNGcmVlLm5leHQ9Q2V9KHll''@;'; + put 'put ''LEYpfX1VLmV4cG9ydHM9bmUsbmUuV3JpdGFibGVTdGF0ZT16O3ZhciBKLFc9e2RlcHJlY2F0ZTpaKDQ5MjcpfSxOPVooMjUwMyksZWU9Wig4NzY0KS5CdWZmZXIscT1aLmcuVWludDhBcnJheXx8ZnVuY3Rpb24oKXt9LHNlPVooMTE5NSksb2U9WigyNDU3KS5nZXRIaWdoV2F0ZXJNYXJrLGNl''@;'; + put 'put ''PVooNDI4MSkucSxkZT1jZS5FUlJfSU5WQUxJRF9BUkdfVFlQRSx2ZT1jZS5FUlJfTUVUSE9EX05PVF9JTVBMRU1FTlRFRCxBZT1jZS5FUlJfTVVMVElQTEVfQ0FMTEJBQ0ssa2U9Y2UuRVJSX1NUUkVBTV9DQU5OT1RfUElQRSxTZT1jZS5FUlJfU1RSRUFNX0RFU1RST1lFRCxJZT1jZS5FUlJf''@;'; + put 'put ''U1RSRUFNX05VTExfVkFMVUVTLFRlPWNlLkVSUl9TVFJFQU1fV1JJVEVfQUZURVJfRU5ELEVlPWNlLkVSUl9VTktOT1dOX0VOQ09ESU5HLGhlPXNlLmVycm9yT3JEZXN0cm95O2Z1bmN0aW9uIE8oKXt9ZnVuY3Rpb24geihGLHllLENlKXtpZT1pZXx8Wig2NzUzKSwiYm9vbGVhbiIhPXR5cGVv''@;'; + put 'put ''ZiBDZSYmKENlPXllIGluc3RhbmNlb2YgaWUpLHRoaXMub2JqZWN0TW9kZT0hIShGPUZ8fHt9KS5vYmplY3RNb2RlLENlJiYodGhpcy5vYmplY3RNb2RlPXRoaXMub2JqZWN0TW9kZXx8ISFGLndyaXRhYmxlT2JqZWN0TW9kZSksdGhpcy5oaWdoV2F0ZXJNYXJrPW9lKHRoaXMsRiwid3JpdGFi''@;'; + put 'put ''bGVIaWdoV2F0ZXJNYXJrIixDZSksdGhpcy5maW5hbENhbGxlZD0hMSx0aGlzLm5lZWREcmFpbj0hMSx0aGlzLmVuZGluZz0hMSx0aGlzLmVuZGVkPSExLHRoaXMuZmluaXNoZWQ9ITEsdGhpcy5kZXN0cm95ZWQ9ITEsdGhpcy5kZWNvZGVTdHJpbmdzPSEoITE9PT1GLmRlY29kZVN0cmluZ3Mp''@;'; + put 'put ''LHRoaXMuZGVmYXVsdEVuY29kaW5nPUYuZGVmYXVsdEVuY29kaW5nfHwidXRmOCIsdGhpcy5sZW5ndGg9MCx0aGlzLndyaXRpbmc9ITEsdGhpcy5jb3JrZWQ9MCx0aGlzLnN5bmM9ITAsdGhpcy5idWZmZXJQcm9jZXNzaW5nPSExLHRoaXMub253cml0ZT1mdW5jdGlvbihQZSl7IWZ1bmN0aW9u''@;'; + put 'put ''KFFlLCRlKXt2YXIgQXQsZ3Q9UWUuX3dyaXRhYmxlU3RhdGUsd3Q9Z3Quc3luYyxtdD1ndC53cml0ZWNiO2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBtdCl0aHJvdyBuZXcgQWU7aWYoKEF0PWd0KS53cml0aW5nPSExLEF0LndyaXRlY2I9bnVsbCxBdC5sZW5ndGgtPUF0LndyaXRlbGVuLEF0Lndy''@;'; + put 'put ''aXRlbGVuPTAsJGUpIWZ1bmN0aW9uKEF0LGh0LEJ0LG9uLF90KXstLWh0LnBlbmRpbmdjYixCdD8oYWUubmV4dFRpY2soX3Qsb24pLGFlLm5leHRUaWNrKFMsQXQsaHQpLEF0Ll93cml0YWJsZVN0YXRlLmVycm9yRW1pdHRlZD0hMCxoZShBdCxvbikpOihfdChvbiksQXQuX3dyaXRhYmxlU3Rh''@;'; + put 'put ''dGUuZXJyb3JFbWl0dGVkPSEwLGhlKEF0LG9uKSxTKEF0LGh0KSl9KFFlLGd0LHd0LCRlLG10KTtlbHNle3ZhciB2dD1WKGd0KXx8UWUuZGVzdHJveWVkO3Z0fHxndC5jb3JrZWR8fGd0LmJ1ZmZlclByb2Nlc3Npbmd8fCFndC5idWZmZXJlZFJlcXVlc3R8fFAoUWUsZ3QpLHd0P2FlLm5leHRU''@;'; + put 'put ''aWNrKHgsUWUsZ3QsdnQsbXQpOngoUWUsZ3QsdnQsbXQpfX0oeWUsUGUpfSx0aGlzLndyaXRlY2I9bnVsbCx0aGlzLndyaXRlbGVuPTAsdGhpcy5idWZmZXJlZFJlcXVlc3Q9bnVsbCx0aGlzLmxhc3RCdWZmZXJlZFJlcXVlc3Q9bnVsbCx0aGlzLnBlbmRpbmdjYj0wLHRoaXMucHJlZmluaXNo''@;'; + put 'put ''ZWQ9ITEsdGhpcy5lcnJvckVtaXR0ZWQ9ITEsdGhpcy5lbWl0Q2xvc2U9ITEhPT1GLmVtaXRDbG9zZSx0aGlzLmF1dG9EZXN0cm95PSEhRi5hdXRvRGVzdHJveSx0aGlzLmJ1ZmZlcmVkUmVxdWVzdENvdW50PTAsdGhpcy5jb3JrZWRSZXF1ZXN0c0ZyZWU9bmV3IFkodGhpcyl9ZnVuY3Rpb24g''@;'; + put 'put ''bmUoRil7dmFyIHllPXRoaXMgaW5zdGFuY2VvZihpZT1pZXx8Wig2NzUzKSk7aWYoIXllJiYhSi5jYWxsKG5lLHRoaXMpKXJldHVybiBuZXcgbmUoRik7dGhpcy5fd3JpdGFibGVTdGF0ZT1uZXcgeihGLHRoaXMseWUpLHRoaXMud3JpdGFibGU9ITAsRiYmKCJmdW5jdGlvbiI9PXR5cGVvZiBG''@;'; + put 'put ''LndyaXRlJiYodGhpcy5fd3JpdGU9Ri53cml0ZSksImZ1bmN0aW9uIj09dHlwZW9mIEYud3JpdGV2JiYodGhpcy5fd3JpdGV2PUYud3JpdGV2KSwiZnVuY3Rpb24iPT10eXBlb2YgRi5kZXN0cm95JiYodGhpcy5fZGVzdHJveT1GLmRlc3Ryb3kpLCJmdW5jdGlvbiI9PXR5cGVvZiBGLmZpbmFs''@;'; + put 'put ''JiYodGhpcy5fZmluYWw9Ri5maW5hbCkpLE4uY2FsbCh0aGlzKX1mdW5jdGlvbiB0ZShGLHllLENlLERlLFBlLFFlLCRlKXt5ZS53cml0ZWxlbj1EZSx5ZS53cml0ZWNiPSRlLHllLndyaXRpbmc9ITAseWUuc3luYz0hMCx5ZS5kZXN0cm95ZWQ/eWUub253cml0ZShuZXcgU2UoIndyaXRlIikp''@;'; + put 'put ''OkNlP0YuX3dyaXRldihQZSx5ZS5vbndyaXRlKTpGLl93cml0ZShQZSxRZSx5ZS5vbndyaXRlKSx5ZS5zeW5jPSExfWZ1bmN0aW9uIHgoRix5ZSxDZSxEZSl7dmFyIFBlLFFlO0NlfHwoUGU9RiwwPT09KFFlPXllKS5sZW5ndGgmJlFlLm5lZWREcmFpbiYmKFFlLm5lZWREcmFpbj0hMSxQZS5l''@;'; + put 'put ''bWl0KCJkcmFpbiIpKSkseWUucGVuZGluZ2NiLS0sRGUoKSxTKEYseWUpfWZ1bmN0aW9uIFAoRix5ZSl7eWUuYnVmZmVyUHJvY2Vzc2luZz0hMDt2YXIgQ2U9eWUuYnVmZmVyZWRSZXF1ZXN0O2lmKEYuX3dyaXRldiYmQ2UmJkNlLm5leHQpe3ZhciBQZT1uZXcgQXJyYXkoeWUuYnVmZmVyZWRS''@;'; + put 'put ''ZXF1ZXN0Q291bnQpLFFlPXllLmNvcmtlZFJlcXVlc3RzRnJlZTtRZS5lbnRyeT1DZTtmb3IodmFyICRlPTAsZ3Q9ITA7Q2U7KVBlWyRlXT1DZSxDZS5pc0J1Znx8KGd0PSExKSxDZT1DZS5uZXh0LCRlKz0xO1BlLmFsbEJ1ZmZlcnM9Z3QsdGUoRix5ZSwhMCx5ZS5sZW5ndGgsUGUsIiIsUWUu''@;'; + put 'put ''ZmluaXNoKSx5ZS5wZW5kaW5nY2IrKyx5ZS5sYXN0QnVmZmVyZWRSZXF1ZXN0PW51bGwsUWUubmV4dD8oeWUuY29ya2VkUmVxdWVzdHNGcmVlPVFlLm5leHQsUWUubmV4dD1udWxsKTp5ZS5jb3JrZWRSZXF1ZXN0c0ZyZWU9bmV3IFkoeWUpLHllLmJ1ZmZlcmVkUmVxdWVzdENvdW50PTB9ZWxz''@;'; + put 'put ''ZXtmb3IoO0NlOyl7dmFyIHd0PUNlLmNodW5rO2lmKHRlKEYseWUsITEseWUub2JqZWN0TW9kZT8xOnd0Lmxlbmd0aCx3dCxDZS5lbmNvZGluZyxDZS5jYWxsYmFjayksQ2U9Q2UubmV4dCx5ZS5idWZmZXJlZFJlcXVlc3RDb3VudC0tLHllLndyaXRpbmcpYnJlYWt9bnVsbD09PUNlJiYoeWUu''@;'; + put 'put ''bGFzdEJ1ZmZlcmVkUmVxdWVzdD1udWxsKX15ZS5idWZmZXJlZFJlcXVlc3Q9Q2UseWUuYnVmZmVyUHJvY2Vzc2luZz0hMX1mdW5jdGlvbiBWKEYpe3JldHVybiBGLmVuZGluZyYmMD09PUYubGVuZ3RoJiZudWxsPT09Ri5idWZmZXJlZFJlcXVlc3QmJiFGLmZpbmlzaGVkJiYhRi53cml0aW5n''@;'; + put 'put ''fWZ1bmN0aW9uIFQoRix5ZSl7Ri5fZmluYWwoZnVuY3Rpb24oQ2Upe3llLnBlbmRpbmdjYi0tLENlJiZoZShGLENlKSx5ZS5wcmVmaW5pc2hlZD0hMCxGLmVtaXQoInByZWZpbmlzaCIpLFMoRix5ZSl9KX1mdW5jdGlvbiBTKEYseWUpe3ZhciBQZSxRZSxDZT1WKHllKTtpZihDZSYmKFBlPUYs''@;'; + put 'put ''KFFlPXllKS5wcmVmaW5pc2hlZHx8UWUuZmluYWxDYWxsZWR8fCgiZnVuY3Rpb24iIT10eXBlb2YgUGUuX2ZpbmFsfHxRZS5kZXN0cm95ZWQ/KFFlLnByZWZpbmlzaGVkPSEwLFBlLmVtaXQoInByZWZpbmlzaCIpKTooUWUucGVuZGluZ2NiKyssUWUuZmluYWxDYWxsZWQ9ITAsYWUubmV4dFRp''@;'; + put 'put ''Y2soVCxQZSxRZSkpKSwwPT09eWUucGVuZGluZ2NiJiYoeWUuZmluaXNoZWQ9ITAsRi5lbWl0KCJmaW5pc2giKSx5ZS5hdXRvRGVzdHJveSkpKXt2YXIgRGU9Ri5fcmVhZGFibGVTdGF0ZTsoIURlfHxEZS5hdXRvRGVzdHJveSYmRGUuZW5kRW1pdHRlZCkmJkYuZGVzdHJveSgpfXJldHVybiBD''@;'; + put 'put ''ZX1aKDU3MTcpKG5lLE4pLHoucHJvdG90eXBlLmdldEJ1ZmZlcj1mdW5jdGlvbigpe2Zvcih2YXIgRj10aGlzLmJ1ZmZlcmVkUmVxdWVzdCx5ZT1bXTtGOyl5ZS5wdXNoKEYpLEY9Ri5uZXh0O3JldHVybiB5ZX0sZnVuY3Rpb24oKXt0cnl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHoucHJvdG90''@;'; + put 'put ''eXBlLCJidWZmZXIiLHtnZXQ6Vy5kZXByZWNhdGUoZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXRCdWZmZXIoKX0sIl93cml0YWJsZVN0YXRlLmJ1ZmZlciBpcyBkZXByZWNhdGVkLiBVc2UgX3dyaXRhYmxlU3RhdGUuZ2V0QnVmZmVyIGluc3RlYWQuIiwiREVQMDAwMyIpfSl9Y2F0Y2goRil7''@;'; + put 'put ''fX0oKSwiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZTeW1ib2wuaGFzSW5zdGFuY2UmJiJmdW5jdGlvbiI9PXR5cGVvZiBGdW5jdGlvbi5wcm90b3R5cGVbU3ltYm9sLmhhc0luc3RhbmNlXT8oSj1GdW5jdGlvbi5wcm90b3R5cGVbU3ltYm9sLmhhc0luc3RhbmNlXSxPYmplY3QuZGVmaW5l''@;'; + put 'put ''UHJvcGVydHkobmUsU3ltYm9sLmhhc0luc3RhbmNlLHt2YWx1ZTpmdW5jdGlvbihGKXtyZXR1cm4hIUouY2FsbCh0aGlzLEYpfHx0aGlzPT09bmUmJkYmJkYuX3dyaXRhYmxlU3RhdGUgaW5zdGFuY2VvZiB6fX0pKTpKPWZ1bmN0aW9uKEYpe3JldHVybiBGIGluc3RhbmNlb2YgdGhpc30sbmUu''@;'; + put 'put ''cHJvdG90eXBlLnBpcGU9ZnVuY3Rpb24oKXtoZSh0aGlzLG5ldyBrZSl9LG5lLnByb3RvdHlwZS53cml0ZT1mdW5jdGlvbihGLHllLENlKXt2YXIgRGUsZ3Qsd3QsbXQsUGU9dGhpcy5fd3JpdGFibGVTdGF0ZSxRZT0hMSwkZT0hUGUub2JqZWN0TW9kZSYmKGVlLmlzQnVmZmVyKERlPUYpfHxE''@;'; + put 'put ''ZSBpbnN0YW5jZW9mIHEpO3JldHVybiAkZSYmIWVlLmlzQnVmZmVyKEYpJiYoRj1lZS5mcm9tKEYpKSwiZnVuY3Rpb24iPT10eXBlb2YgeWUmJihDZT15ZSx5ZT1udWxsKSwkZT95ZT0iYnVmZmVyIjp5ZXx8KHllPVBlLmRlZmF1bHRFbmNvZGluZyksImZ1bmN0aW9uIiE9dHlwZW9mIENlJiYo''@;'; + put 'put ''Q2U9TyksUGUuZW5kaW5nPyhndD10aGlzLHd0PUNlLG10PW5ldyBUZSxoZShndCxtdCksYWUubmV4dFRpY2sod3QsbXQpKTooJGV8fGZ1bmN0aW9uKGd0LHd0LG10LHZ0KXt2YXIgQXQ7cmV0dXJuIG51bGw9PT1tdD9BdD1uZXcgSWU6InN0cmluZyI9PXR5cGVvZiBtdHx8d3Qub2JqZWN0TW9k''@;'; + put 'put ''ZXx8KEF0PW5ldyBkZSgiY2h1bmsiLFsic3RyaW5nIiwiQnVmZmVyIl0sbXQpKSwhQXR8fChoZShndCxBdCksYWUubmV4dFRpY2sodnQsQXQpLCExKX0odGhpcyxQZSxGLENlKSkmJihQZS5wZW5kaW5nY2IrKyxRZT1mdW5jdGlvbihndCx3dCxtdCx2dCxBdCxodCl7aWYoIW10KXt2YXIgQnQ9''@;'; + put 'put ''KGF0PXZ0LChldD13dCkub2JqZWN0TW9kZXx8ITE9PT1ldC5kZWNvZGVTdHJpbmdzfHwic3RyaW5nIiE9dHlwZW9mIGF0fHwoYXQ9ZWUuZnJvbShhdCxBdCkpLGF0KTt2dCE9PUJ0JiYobXQ9ITAsQXQ9ImJ1ZmZlciIsdnQ9QnQpfXZhciBldCxhdCxvbj13dC5vYmplY3RNb2RlPzE6dnQubGVu''@;'; + put 'put ''Z3RoO3d0Lmxlbmd0aCs9b247dmFyIF90PXd0Lmxlbmd0aDx3dC5oaWdoV2F0ZXJNYXJrO2lmKF90fHwod3QubmVlZERyYWluPSEwKSx3dC53cml0aW5nfHx3dC5jb3JrZWQpe3ZhciB0dD13dC5sYXN0QnVmZmVyZWRSZXF1ZXN0O3d0Lmxhc3RCdWZmZXJlZFJlcXVlc3Q9e2NodW5rOnZ0LGVu''@;'; + put 'put ''Y29kaW5nOkF0LGlzQnVmOm10LGNhbGxiYWNrOmh0LG5leHQ6bnVsbH0sdHQ/dHQubmV4dD13dC5sYXN0QnVmZmVyZWRSZXF1ZXN0Ond0LmJ1ZmZlcmVkUmVxdWVzdD13dC5sYXN0QnVmZmVyZWRSZXF1ZXN0LHd0LmJ1ZmZlcmVkUmVxdWVzdENvdW50Kz0xfWVsc2UgdGUoZ3Qsd3QsITEsb24s''@;'; + put 'put ''dnQsQXQsaHQpO3JldHVybiBfdH0odGhpcyxQZSwkZSxGLHllLENlKSksUWV9LG5lLnByb3RvdHlwZS5jb3JrPWZ1bmN0aW9uKCl7dGhpcy5fd3JpdGFibGVTdGF0ZS5jb3JrZWQrK30sbmUucHJvdG90eXBlLnVuY29yaz1mdW5jdGlvbigpe3ZhciBGPXRoaXMuX3dyaXRhYmxlU3RhdGU7Ri5j''@;'; + put 'put ''b3JrZWQmJihGLmNvcmtlZC0tLEYud3JpdGluZ3x8Ri5jb3JrZWR8fEYuYnVmZmVyUHJvY2Vzc2luZ3x8IUYuYnVmZmVyZWRSZXF1ZXN0fHxQKHRoaXMsRikpfSxuZS5wcm90b3R5cGUuc2V0RGVmYXVsdEVuY29kaW5nPWZ1bmN0aW9uKEYpe2lmKCJzdHJpbmciPT10eXBlb2YgRiYmKEY9Ri50''@;'; + put 'put ''b0xvd2VyQ2FzZSgpKSwhKFsiaGV4IiwidXRmOCIsInV0Zi04IiwiYXNjaWkiLCJiaW5hcnkiLCJiYXNlNjQiLCJ1Y3MyIiwidWNzLTIiLCJ1dGYxNmxlIiwidXRmLTE2bGUiLCJyYXciXS5pbmRleE9mKChGKyIiKS50b0xvd2VyQ2FzZSgpKT4tMSkpdGhyb3cgbmV3IEVlKEYpO3JldHVybiB0''@;'; + put 'put ''aGlzLl93cml0YWJsZVN0YXRlLmRlZmF1bHRFbmNvZGluZz1GLHRoaXN9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZS5wcm90b3R5cGUsIndyaXRhYmxlQnVmZmVyIix7ZW51bWVyYWJsZTohMSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fd3JpdGFibGVTdGF0ZSYmdGhpcy5fd3JpdGFi''@;'; + put 'put ''bGVTdGF0ZS5nZXRCdWZmZXIoKX19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkobmUucHJvdG90eXBlLCJ3cml0YWJsZUhpZ2hXYXRlck1hcmsiLHtlbnVtZXJhYmxlOiExLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl93cml0YWJsZVN0YXRlLmhpZ2hXYXRlck1hcmt9fSksbmUucHJvdG90''@;'; + put 'put ''eXBlLl93cml0ZT1mdW5jdGlvbihGLHllLENlKXtDZShuZXcgdmUoIl93cml0ZSgpIikpfSxuZS5wcm90b3R5cGUuX3dyaXRldj1udWxsLG5lLnByb3RvdHlwZS5lbmQ9ZnVuY3Rpb24oRix5ZSxDZSl7dmFyIFFlLCRlLERlPXRoaXMuX3dyaXRhYmxlU3RhdGU7cmV0dXJuImZ1bmN0aW9uIj09''@;'; + put 'put ''dHlwZW9mIEY/KENlPUYsRj1udWxsLHllPW51bGwpOiJmdW5jdGlvbiI9PXR5cGVvZiB5ZSYmKENlPXllLHllPW51bGwpLG51bGwhPUYmJnRoaXMud3JpdGUoRix5ZSksRGUuY29ya2VkJiYoRGUuY29ya2VkPTEsdGhpcy51bmNvcmsoKSksRGUuZW5kaW5nfHwodGhpcywkZT1DZSwoUWU9RGUp''@;'; + put 'put ''LmVuZGluZz0hMCxTKHRoaXMsUWUpLCRlJiYoUWUuZmluaXNoZWQ/YWUubmV4dFRpY2soJGUpOnRoaXMub25jZSgiZmluaXNoIiwkZSkpLFFlLmVuZGVkPSEwLHRoaXMud3JpdGFibGU9ITEpLHRoaXN9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZS5wcm90b3R5cGUsIndyaXRhYmxlTGVuZ3Ro''@;'; + put 'put ''Iix7ZW51bWVyYWJsZTohMSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fd3JpdGFibGVTdGF0ZS5sZW5ndGh9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KG5lLnByb3RvdHlwZSwiZGVzdHJveWVkIix7ZW51bWVyYWJsZTohMSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCAwIT09dGhp''@;'; + put 'put ''cy5fd3JpdGFibGVTdGF0ZSYmdGhpcy5fd3JpdGFibGVTdGF0ZS5kZXN0cm95ZWR9LHNldDpmdW5jdGlvbihGKXt0aGlzLl93cml0YWJsZVN0YXRlJiYodGhpcy5fd3JpdGFibGVTdGF0ZS5kZXN0cm95ZWQ9Ril9fSksbmUucHJvdG90eXBlLmRlc3Ryb3k9c2UuZGVzdHJveSxuZS5wcm90b3R5''@;'; + put 'put ''cGUuX3VuZGVzdHJveT1zZS51bmRlc3Ryb3ksbmUucHJvdG90eXBlLl9kZXN0cm95PWZ1bmN0aW9uKEYseWUpe3llKEYpfX0sNTg1MDooVSxRLFopPT57InVzZSBzdHJpY3QiO3ZhciBpZSxhZT1aKDQxNTUpO2Z1bmN0aW9uIFkoSWUsVGUsRWUpe3JldHVybiBUZSBpbiBJZT9PYmplY3QuZGVm''@;'; + put 'put ''aW5lUHJvcGVydHkoSWUsVGUse3ZhbHVlOkVlLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6SWVbVGVdPUVlLEllfXZhciBXPVooODYxMCksTj1TeW1ib2woImxhc3RSZXNvbHZlIiksZWU9U3ltYm9sKCJsYXN0UmVqZWN0IikscT1TeW1ib2woImVycm9yIiks''@;'; + put 'put ''Sj1TeW1ib2woImVuZGVkIiksc2U9U3ltYm9sKCJsYXN0UHJvbWlzZSIpLG9lPVN5bWJvbCgiaGFuZGxlUHJvbWlzZSIpLGNlPVN5bWJvbCgic3RyZWFtIik7ZnVuY3Rpb24gZGUoSWUsVGUpe3JldHVybnt2YWx1ZTpJZSxkb25lOlRlfX1mdW5jdGlvbiB2ZShJZSl7dmFyIFRlPUllW05dO2lm''@;'; + put 'put ''KG51bGwhPT1UZSl7dmFyIEVlPUllW2NlXS5yZWFkKCk7bnVsbCE9PUVlJiYoSWVbc2VdPW51bGwsSWVbTl09bnVsbCxJZVtlZV09bnVsbCxUZShkZShFZSwhMSkpKX19ZnVuY3Rpb24gQWUoSWUpe2FlLm5leHRUaWNrKHZlLEllKX12YXIga2U9T2JqZWN0LmdldFByb3RvdHlwZU9mKGZ1bmN0''@;'; + put 'put ''aW9uKCl7fSksU2U9T2JqZWN0LnNldFByb3RvdHlwZU9mKChZKGllPXtnZXQgc3RyZWFtKCl7cmV0dXJuIHRoaXNbY2VdfSxuZXh0OmZ1bmN0aW9uKCl7dmFyIEllPXRoaXMsVGU9dGhpc1txXTtpZihudWxsIT09VGUpcmV0dXJuIFByb21pc2UucmVqZWN0KFRlKTtpZih0aGlzW0pdKXJldHVy''@;'; + put 'put ''biBQcm9taXNlLnJlc29sdmUoZGUodm9pZCAwLCEwKSk7aWYodGhpc1tjZV0uZGVzdHJveWVkKXJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbih6LG5lKXthZS5uZXh0VGljayhmdW5jdGlvbigpe0llW3FdP25lKEllW3FdKTp6KGRlKHZvaWQgMCwhMCkpfSl9KTt2YXIgRWUseixuZSxoZT10''@;'; + put 'put ''aGlzW3NlXTtpZihoZSlFZT1uZXcgUHJvbWlzZSgoej1oZSxuZT10aGlzLGZ1bmN0aW9uKHRlLHgpe3oudGhlbihmdW5jdGlvbigpe25lW0pdP3RlKGRlKHZvaWQgMCwhMCkpOm5lW29lXSh0ZSx4KX0seCl9KSk7ZWxzZXt2YXIgTz10aGlzW2NlXS5yZWFkKCk7aWYobnVsbCE9PU8pcmV0dXJu''@;'; + put 'put ''IFByb21pc2UucmVzb2x2ZShkZShPLCExKSk7RWU9bmV3IFByb21pc2UodGhpc1tvZV0pfXJldHVybiB0aGlzW3NlXT1FZSxFZX19LFN5bWJvbC5hc3luY0l0ZXJhdG9yLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSxZKGllLCJyZXR1cm4iLGZ1bmN0aW9uKCl7dmFyIEllPXRoaXM7cmV0dXJu''@;'; + put 'put ''IG5ldyBQcm9taXNlKGZ1bmN0aW9uKFRlLEVlKXtJZVtjZV0uZGVzdHJveShudWxsLGZ1bmN0aW9uKGhlKXtoZT9FZShoZSk6VGUoZGUodm9pZCAwLCEwKSl9KX0pfSksaWUpLGtlKTtVLmV4cG9ydHM9ZnVuY3Rpb24oSWUpe3ZhciBUZSxFZT1PYmplY3QuY3JlYXRlKFNlLChZKFRlPXt9LGNl''@;'; + put 'put ''LHt2YWx1ZTpJZSx3cml0YWJsZTohMH0pLFkoVGUsTix7dmFsdWU6bnVsbCx3cml0YWJsZTohMH0pLFkoVGUsZWUse3ZhbHVlOm51bGwsd3JpdGFibGU6ITB9KSxZKFRlLHEse3ZhbHVlOm51bGwsd3JpdGFibGU6ITB9KSxZKFRlLEose3ZhbHVlOkllLl9yZWFkYWJsZVN0YXRlLmVuZEVtaXR0''@;'; + put 'put ''ZWQsd3JpdGFibGU6ITB9KSxZKFRlLG9lLHt2YWx1ZTpmdW5jdGlvbihoZSxPKXt2YXIgej1FZVtjZV0ucmVhZCgpO3o/KEVlW3NlXT1udWxsLEVlW05dPW51bGwsRWVbZWVdPW51bGwsaGUoZGUoeiwhMSkpKTooRWVbTl09aGUsRWVbZWVdPU8pfSx3cml0YWJsZTohMH0pLFRlKSk7cmV0dXJu''@;'; + put 'put ''IEVlW3NlXT1udWxsLFcoSWUsZnVuY3Rpb24oaGUpe2lmKGhlJiYiRVJSX1NUUkVBTV9QUkVNQVRVUkVfQ0xPU0UiIT09aGUuY29kZSl7dmFyIE89RWVbZWVdO3JldHVybiBudWxsIT09TyYmKEVlW3NlXT1udWxsLEVlW05dPW51bGwsRWVbZWVdPW51bGwsTyhoZSkpLHZvaWQoRWVbcV09aGUp''@;'; + put 'put ''fXZhciB6PUVlW05dO251bGwhPT16JiYoRWVbc2VdPW51bGwsRWVbTl09bnVsbCxFZVtlZV09bnVsbCx6KGRlKHZvaWQgMCwhMCkpKSxFZVtKXT0hMH0pLEllLm9uKCJyZWFkYWJsZSIsQWUuYmluZChudWxsLEVlKSksRWV9fSw3MzI3OihVLFEsWik9PnsidXNlIHN0cmljdCI7ZnVuY3Rpb24g''@;'; + put 'put ''aWUocSxKKXt2YXIgc2U9T2JqZWN0LmtleXMocSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIG9lPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocSk7SiYmKG9lPW9lLmZpbHRlcihmdW5jdGlvbihjZSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2Ny''@;'; + put 'put ''aXB0b3IocSxjZSkuZW51bWVyYWJsZX0pKSxzZS5wdXNoLmFwcGx5KHNlLG9lKX1yZXR1cm4gc2V9ZnVuY3Rpb24gYWUocSxKLHNlKXtyZXR1cm4gSiBpbiBxP09iamVjdC5kZWZpbmVQcm9wZXJ0eShxLEose3ZhbHVlOnNlLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxl''@;'; + put 'put ''OiEwfSk6cVtKXT1zZSxxfWZ1bmN0aW9uIFkocSxKKXtmb3IodmFyIHNlPTA7c2U8Si5sZW5ndGg7c2UrKyl7dmFyIG9lPUpbc2VdO29lLmVudW1lcmFibGU9b2UuZW51bWVyYWJsZXx8ITEsb2UuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiBvZSYmKG9lLndyaXRhYmxlPSEwKSxPYmplY3Qu''@;'; + put 'put ''ZGVmaW5lUHJvcGVydHkocSxvZS5rZXksb2UpfX12YXIgVz1aKDg3NjQpLkJ1ZmZlcixOPVooMjM2MSkuaW5zcGVjdCxlZT1OJiZOLmN1c3RvbXx8Imluc3BlY3QiO1UuZXhwb3J0cz1mdW5jdGlvbigpe2Z1bmN0aW9uIHEoKXsoZnVuY3Rpb24oY2UsZGUpe2lmKCEoY2UgaW5zdGFuY2VvZiBk''@;'; + put 'put ''ZSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KSh0aGlzLHEpLHRoaXMuaGVhZD1udWxsLHRoaXMudGFpbD1udWxsLHRoaXMubGVuZ3RoPTB9dmFyIEosc2U7cmV0dXJuIEo9cSxzZT1be2tleToicHVzaCIsdmFsdWU6ZnVuY3Rpb24o''@;'; + put 'put ''Y2Upe3ZhciBkZT17ZGF0YTpjZSxuZXh0Om51bGx9O3RoaXMubGVuZ3RoPjA/dGhpcy50YWlsLm5leHQ9ZGU6dGhpcy5oZWFkPWRlLHRoaXMudGFpbD1kZSwrK3RoaXMubGVuZ3RofX0se2tleToidW5zaGlmdCIsdmFsdWU6ZnVuY3Rpb24oY2Upe3ZhciBkZT17ZGF0YTpjZSxuZXh0OnRoaXMu''@;'; + put 'put ''aGVhZH07MD09PXRoaXMubGVuZ3RoJiYodGhpcy50YWlsPWRlKSx0aGlzLmhlYWQ9ZGUsKyt0aGlzLmxlbmd0aH19LHtrZXk6InNoaWZ0Iix2YWx1ZTpmdW5jdGlvbigpe2lmKDAhPT10aGlzLmxlbmd0aCl7dmFyIGNlPXRoaXMuaGVhZC5kYXRhO3JldHVybiB0aGlzLmhlYWQ9MT09PXRoaXMu''@;'; + put 'put ''bGVuZ3RoP3RoaXMudGFpbD1udWxsOnRoaXMuaGVhZC5uZXh0LC0tdGhpcy5sZW5ndGgsY2V9fX0se2tleToiY2xlYXIiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5oZWFkPXRoaXMudGFpbD1udWxsLHRoaXMubGVuZ3RoPTB9fSx7a2V5OiJqb2luIix2YWx1ZTpmdW5jdGlvbihjZSl7aWYoMD09''@;'; + put 'put ''PXRoaXMubGVuZ3RoKXJldHVybiIiO2Zvcih2YXIgZGU9dGhpcy5oZWFkLHZlPSIiK2RlLmRhdGE7ZGU9ZGUubmV4dDspdmUrPWNlK2RlLmRhdGE7cmV0dXJuIHZlfX0se2tleToiY29uY2F0Iix2YWx1ZTpmdW5jdGlvbihjZSl7aWYoMD09PXRoaXMubGVuZ3RoKXJldHVybiBXLmFsbG9jKDAp''@;'; + put 'put ''O2Zvcih2YXIga2U9Vy5hbGxvY1Vuc2FmZShjZT4+PjApLFNlPXRoaXMuaGVhZCxJZT0wO1NlOylXLnByb3RvdHlwZS5jb3B5LmNhbGwoU2UuZGF0YSxrZSxJZSksSWUrPVNlLmRhdGEubGVuZ3RoLFNlPVNlLm5leHQ7cmV0dXJuIGtlfX0se2tleToiY29uc3VtZSIsdmFsdWU6ZnVuY3Rpb24o''@;'; + put 'put ''Y2UsZGUpe3ZhciB2ZTtyZXR1cm4gY2U8dGhpcy5oZWFkLmRhdGEubGVuZ3RoPyh2ZT10aGlzLmhlYWQuZGF0YS5zbGljZSgwLGNlKSx0aGlzLmhlYWQuZGF0YT10aGlzLmhlYWQuZGF0YS5zbGljZShjZSkpOnZlPWNlPT09dGhpcy5oZWFkLmRhdGEubGVuZ3RoP3RoaXMuc2hpZnQoKTpkZT90''@;'; + put 'put ''aGlzLl9nZXRTdHJpbmcoY2UpOnRoaXMuX2dldEJ1ZmZlcihjZSksdmV9fSx7a2V5OiJmaXJzdCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5oZWFkLmRhdGF9fSx7a2V5OiJfZ2V0U3RyaW5nIix2YWx1ZTpmdW5jdGlvbihjZSl7dmFyIGRlPXRoaXMuaGVhZCx2ZT0xLEFlPWRlLmRh''@;'; + put 'put ''dGE7Zm9yKGNlLT1BZS5sZW5ndGg7ZGU9ZGUubmV4dDspe3ZhciBrZT1kZS5kYXRhLFNlPWNlPmtlLmxlbmd0aD9rZS5sZW5ndGg6Y2U7aWYoQWUrPVNlPT09a2UubGVuZ3RoP2tlOmtlLnNsaWNlKDAsY2UpLDA9PShjZS09U2UpKXtTZT09PWtlLmxlbmd0aD8oKyt2ZSx0aGlzLmhlYWQ9ZGUu''@;'; + put 'put ''bmV4dD9kZS5uZXh0OnRoaXMudGFpbD1udWxsKToodGhpcy5oZWFkPWRlLGRlLmRhdGE9a2Uuc2xpY2UoU2UpKTticmVha30rK3ZlfXJldHVybiB0aGlzLmxlbmd0aC09dmUsQWV9fSx7a2V5OiJfZ2V0QnVmZmVyIix2YWx1ZTpmdW5jdGlvbihjZSl7dmFyIGRlPVcuYWxsb2NVbnNhZmUoY2Up''@;'; + put 'put ''LHZlPXRoaXMuaGVhZCxBZT0xO2Zvcih2ZS5kYXRhLmNvcHkoZGUpLGNlLT12ZS5kYXRhLmxlbmd0aDt2ZT12ZS5uZXh0Oyl7dmFyIGtlPXZlLmRhdGEsU2U9Y2U+a2UubGVuZ3RoP2tlLmxlbmd0aDpjZTtpZihrZS5jb3B5KGRlLGRlLmxlbmd0aC1jZSwwLFNlKSwwPT0oY2UtPVNlKSl7U2U9''@;'; + put 'put ''PT1rZS5sZW5ndGg/KCsrQWUsdGhpcy5oZWFkPXZlLm5leHQ/dmUubmV4dDp0aGlzLnRhaWw9bnVsbCk6KHRoaXMuaGVhZD12ZSx2ZS5kYXRhPWtlLnNsaWNlKFNlKSk7YnJlYWt9KytBZX1yZXR1cm4gdGhpcy5sZW5ndGgtPUFlLGRlfX0se2tleTplZSx2YWx1ZTpmdW5jdGlvbihjZSxkZSl7''@;'; + put 'put ''cmV0dXJuIE4odGhpcyxmdW5jdGlvbih2ZSl7Zm9yKHZhciBBZT0xO0FlPGFyZ3VtZW50cy5sZW5ndGg7QWUrKyl7dmFyIGtlPW51bGwhPWFyZ3VtZW50c1tBZV0/YXJndW1lbnRzW0FlXTp7fTtBZSUyP2llKE9iamVjdChrZSksITApLmZvckVhY2goZnVuY3Rpb24oU2Upe2FlKHZlLFNlLGtl''@;'; + put 'put ''W1NlXSl9KTpPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyh2ZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhrZSkpOmllKE9iamVjdChrZSkpLmZvckVhY2goZnVuY3Rpb24oU2Upe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh2''@;'; + put 'put ''ZSxTZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGtlLFNlKSl9KX1yZXR1cm4gdmV9KHt9LGRlLHtkZXB0aDowLGN1c3RvbUluc3BlY3Q6ITF9KSl9fV0sc2UmJlkoSi5wcm90b3R5cGUsc2UpLHF9KCl9LDExOTU6KFUsUSxaKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgaWU9Wig0MTU1''@;'; + put 'put ''KTtmdW5jdGlvbiBhZShOLGVlKXtXKE4sZWUpLFkoTil9ZnVuY3Rpb24gWShOKXtOLl93cml0YWJsZVN0YXRlJiYhTi5fd3JpdGFibGVTdGF0ZS5lbWl0Q2xvc2V8fE4uX3JlYWRhYmxlU3RhdGUmJiFOLl9yZWFkYWJsZVN0YXRlLmVtaXRDbG9zZXx8Ti5lbWl0KCJjbG9zZSIpfWZ1bmN0aW9u''@;'; + put 'put ''IFcoTixlZSl7Ti5lbWl0KCJlcnJvciIsZWUpfVUuZXhwb3J0cz17ZGVzdHJveTpmdW5jdGlvbihOLGVlKXt2YXIgcT10aGlzO3JldHVybiB0aGlzLl9yZWFkYWJsZVN0YXRlJiZ0aGlzLl9yZWFkYWJsZVN0YXRlLmRlc3Ryb3llZHx8dGhpcy5fd3JpdGFibGVTdGF0ZSYmdGhpcy5fd3JpdGFi''@;'; + put 'put ''bGVTdGF0ZS5kZXN0cm95ZWQ/KGVlP2VlKE4pOk4mJih0aGlzLl93cml0YWJsZVN0YXRlP3RoaXMuX3dyaXRhYmxlU3RhdGUuZXJyb3JFbWl0dGVkfHwodGhpcy5fd3JpdGFibGVTdGF0ZS5lcnJvckVtaXR0ZWQ9ITAsaWUubmV4dFRpY2soVyx0aGlzLE4pKTppZS5uZXh0VGljayhXLHRoaXMs''@;'; + put 'put ''TikpLHRoaXMpOih0aGlzLl9yZWFkYWJsZVN0YXRlJiYodGhpcy5fcmVhZGFibGVTdGF0ZS5kZXN0cm95ZWQ9ITApLHRoaXMuX3dyaXRhYmxlU3RhdGUmJih0aGlzLl93cml0YWJsZVN0YXRlLmRlc3Ryb3llZD0hMCksdGhpcy5fZGVzdHJveShOfHxudWxsLGZ1bmN0aW9uKG9lKXshZWUmJm9l''@;'; + put 'put ''P3EuX3dyaXRhYmxlU3RhdGU/cS5fd3JpdGFibGVTdGF0ZS5lcnJvckVtaXR0ZWQ/aWUubmV4dFRpY2soWSxxKToocS5fd3JpdGFibGVTdGF0ZS5lcnJvckVtaXR0ZWQ9ITAsaWUubmV4dFRpY2soYWUscSxvZSkpOmllLm5leHRUaWNrKGFlLHEsb2UpOmVlPyhpZS5uZXh0VGljayhZLHEpLGVl''@;'; + put 'put ''KG9lKSk6aWUubmV4dFRpY2soWSxxKX0pLHRoaXMpfSx1bmRlc3Ryb3k6ZnVuY3Rpb24oKXt0aGlzLl9yZWFkYWJsZVN0YXRlJiYodGhpcy5fcmVhZGFibGVTdGF0ZS5kZXN0cm95ZWQ9ITEsdGhpcy5fcmVhZGFibGVTdGF0ZS5yZWFkaW5nPSExLHRoaXMuX3JlYWRhYmxlU3RhdGUuZW5kZWQ9''@;'; + put 'put ''ITEsdGhpcy5fcmVhZGFibGVTdGF0ZS5lbmRFbWl0dGVkPSExKSx0aGlzLl93cml0YWJsZVN0YXRlJiYodGhpcy5fd3JpdGFibGVTdGF0ZS5kZXN0cm95ZWQ9ITEsdGhpcy5fd3JpdGFibGVTdGF0ZS5lbmRlZD0hMSx0aGlzLl93cml0YWJsZVN0YXRlLmVuZGluZz0hMSx0aGlzLl93cml0YWJs''@;'; + put 'put ''ZVN0YXRlLmZpbmFsQ2FsbGVkPSExLHRoaXMuX3dyaXRhYmxlU3RhdGUucHJlZmluaXNoZWQ9ITEsdGhpcy5fd3JpdGFibGVTdGF0ZS5maW5pc2hlZD0hMSx0aGlzLl93cml0YWJsZVN0YXRlLmVycm9yRW1pdHRlZD0hMSl9LGVycm9yT3JEZXN0cm95OmZ1bmN0aW9uKE4sZWUpe3ZhciBxPU4u''@;'; + put 'put ''X3JlYWRhYmxlU3RhdGUsSj1OLl93cml0YWJsZVN0YXRlO3EmJnEuYXV0b0Rlc3Ryb3l8fEomJkouYXV0b0Rlc3Ryb3k/Ti5kZXN0cm95KGVlKTpOLmVtaXQoImVycm9yIixlZSl9fX0sODYxMDooVSxRLFopPT57InVzZSBzdHJpY3QiO3ZhciBpZT1aKDQyODEpLnEuRVJSX1NUUkVBTV9QUkVN''@;'; + put 'put ''QVRVUkVfQ0xPU0U7ZnVuY3Rpb24gYWUoKXt9VS5leHBvcnRzPWZ1bmN0aW9uIFkoVyxOLGVlKXtpZigiZnVuY3Rpb24iPT10eXBlb2YgTilyZXR1cm4gWShXLG51bGwsTik7dmFyIEllLFRlO058fChOPXt9KSxJZT1lZXx8YWUsVGU9ITEsZWU9ZnVuY3Rpb24oKXtpZighVGUpe1RlPSEwO2Zv''@;'; + put 'put ''cih2YXIgRWU9YXJndW1lbnRzLmxlbmd0aCxoZT1uZXcgQXJyYXkoRWUpLE89MDtPPEVlO08rKyloZVtPXT1hcmd1bWVudHNbT107SWUuYXBwbHkodGhpcyxoZSl9fTt2YXIgcT1OLnJlYWRhYmxlfHwhMSE9PU4ucmVhZGFibGUmJlcucmVhZGFibGUsSj1OLndyaXRhYmxlfHwhMSE9PU4ud3Jp''@;'; + put 'put ''dGFibGUmJlcud3JpdGFibGUsc2U9ZnVuY3Rpb24oKXtXLndyaXRhYmxlfHxjZSgpfSxvZT1XLl93cml0YWJsZVN0YXRlJiZXLl93cml0YWJsZVN0YXRlLmZpbmlzaGVkLGNlPWZ1bmN0aW9uKCl7Sj0hMSxvZT0hMCxxfHxlZS5jYWxsKFcpfSxkZT1XLl9yZWFkYWJsZVN0YXRlJiZXLl9yZWFk''@;'; + put 'put ''YWJsZVN0YXRlLmVuZEVtaXR0ZWQsdmU9ZnVuY3Rpb24oKXtxPSExLGRlPSEwLEp8fGVlLmNhbGwoVyl9LEFlPWZ1bmN0aW9uKEllKXtlZS5jYWxsKFcsSWUpfSxrZT1mdW5jdGlvbigpe3ZhciBJZTtyZXR1cm4gcSYmIWRlPyhXLl9yZWFkYWJsZVN0YXRlJiZXLl9yZWFkYWJsZVN0YXRlLmVu''@;'; + put 'put ''ZGVkfHwoSWU9bmV3IGllKSxlZS5jYWxsKFcsSWUpKTpKJiYhb2U/KFcuX3dyaXRhYmxlU3RhdGUmJlcuX3dyaXRhYmxlU3RhdGUuZW5kZWR8fChJZT1uZXcgaWUpLGVlLmNhbGwoVyxJZSkpOnZvaWQgMH0sU2U9ZnVuY3Rpb24oKXtXLnJlcS5vbigiZmluaXNoIixjZSl9O3JldHVybiBmdW5j''@;'; + put 'put ''dGlvbihJZSl7cmV0dXJuIEllLnNldEhlYWRlciYmImZ1bmN0aW9uIj09dHlwZW9mIEllLmFib3J0fShXKT8oVy5vbigiY29tcGxldGUiLGNlKSxXLm9uKCJhYm9ydCIsa2UpLFcucmVxP1NlKCk6Vy5vbigicmVxdWVzdCIsU2UpKTpKJiYhVy5fd3JpdGFibGVTdGF0ZSYmKFcub24oImVuZCIs''@;'; + put 'put ''c2UpLFcub24oImNsb3NlIixzZSkpLFcub24oImVuZCIsdmUpLFcub24oImZpbmlzaCIsY2UpLCExIT09Ti5lcnJvciYmVy5vbigiZXJyb3IiLEFlKSxXLm9uKCJjbG9zZSIsa2UpLGZ1bmN0aW9uKCl7Vy5yZW1vdmVMaXN0ZW5lcigiY29tcGxldGUiLGNlKSxXLnJlbW92ZUxpc3RlbmVyKCJh''@;'; + put 'put ''Ym9ydCIsa2UpLFcucmVtb3ZlTGlzdGVuZXIoInJlcXVlc3QiLFNlKSxXLnJlcSYmVy5yZXEucmVtb3ZlTGlzdGVuZXIoImZpbmlzaCIsY2UpLFcucmVtb3ZlTGlzdGVuZXIoImVuZCIsc2UpLFcucmVtb3ZlTGlzdGVuZXIoImNsb3NlIixzZSksVy5yZW1vdmVMaXN0ZW5lcigiZmluaXNoIixj''@;'; + put 'put ''ZSksVy5yZW1vdmVMaXN0ZW5lcigiZW5kIix2ZSksVy5yZW1vdmVMaXN0ZW5lcigiZXJyb3IiLEFlKSxXLnJlbW92ZUxpc3RlbmVyKCJjbG9zZSIsa2UpfX19LDUxNjc6VT0+e1UuZXhwb3J0cz1mdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcigiUmVhZGFibGUuZnJvbSBpcyBub3QgYXZhaWxh''@;'; + put 'put ''YmxlIGluIHRoZSBicm93c2VyIil9fSw5OTQ2OihVLFEsWik9PnsidXNlIHN0cmljdCI7dmFyIGllLGFlPVooNDI4MSkucSxZPWFlLkVSUl9NSVNTSU5HX0FSR1MsVz1hZS5FUlJfU1RSRUFNX0RFU1RST1lFRDtmdW5jdGlvbiBOKG9lKXtpZihvZSl0aHJvdyBvZX1mdW5jdGlvbiBlZShvZSxj''@;'; + put 'put ''ZSxkZSx2ZSl7dmFyIFNlLEllO1NlPXZlLEllPSExLHZlPWZ1bmN0aW9uKCl7SWV8fChJZT0hMCxTZS5hcHBseSh2b2lkIDAsYXJndW1lbnRzKSl9O3ZhciBBZT0hMTtvZS5vbigiY2xvc2UiLGZ1bmN0aW9uKCl7QWU9ITB9KSx2b2lkIDA9PT1pZSYmKGllPVooODYxMCkpLGllKG9lLHtyZWFk''@;'; + put 'put ''YWJsZTpjZSx3cml0YWJsZTpkZX0sZnVuY3Rpb24oU2Upe2lmKFNlKXJldHVybiB2ZShTZSk7QWU9ITAsdmUoKX0pO3ZhciBrZT0hMTtyZXR1cm4gZnVuY3Rpb24oU2Upe2lmKCFBZSYmIWtlKXJldHVybiBrZT0hMCxmdW5jdGlvbihJZSl7cmV0dXJuIEllLnNldEhlYWRlciYmImZ1bmN0aW9u''@;'; + put 'put ''Ij09dHlwZW9mIEllLmFib3J0fShvZSk/b2UuYWJvcnQoKToiZnVuY3Rpb24iPT10eXBlb2Ygb2UuZGVzdHJveT9vZS5kZXN0cm95KCk6dm9pZCB2ZShTZXx8bmV3IFcoInBpcGUiKSl9fWZ1bmN0aW9uIHEob2Upe29lKCl9ZnVuY3Rpb24gSihvZSxjZSl7cmV0dXJuIG9lLnBpcGUoY2UpfWZ1''@;'; + put 'put ''bmN0aW9uIHNlKG9lKXtyZXR1cm4gb2UubGVuZ3RoPyJmdW5jdGlvbiIhPXR5cGVvZiBvZVtvZS5sZW5ndGgtMV0/TjpvZS5wb3AoKTpOfVUuZXhwb3J0cz1mdW5jdGlvbigpe2Zvcih2YXIgb2U9YXJndW1lbnRzLmxlbmd0aCxjZT1uZXcgQXJyYXkob2UpLGRlPTA7ZGU8b2U7ZGUrKyljZVtk''@;'; + put 'put ''ZV09YXJndW1lbnRzW2RlXTt2YXIgdmUsQWU9c2UoY2UpO2lmKEFycmF5LmlzQXJyYXkoY2VbMF0pJiYoY2U9Y2VbMF0pLGNlLmxlbmd0aDwyKXRocm93IG5ldyBZKCJzdHJlYW1zIik7dmFyIGtlPWNlLm1hcChmdW5jdGlvbihTZSxJZSl7dmFyIFRlPUllPGNlLmxlbmd0aC0xO3JldHVybiBl''@;'; + put 'put ''ZShTZSxUZSxJZT4wLGZ1bmN0aW9uKEVlKXt2ZXx8KHZlPUVlKSxFZSYma2UuZm9yRWFjaChxKSxUZXx8KGtlLmZvckVhY2gocSksQWUodmUpKX0pfSk7cmV0dXJuIGNlLnJlZHVjZShKKX19LDI0NTc6KFUsUSxaKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgaWU9Wig0MjgxKS5xLkVSUl9JTlZBTElE''@;'; + put 'put ''X09QVF9WQUxVRTtVLmV4cG9ydHM9e2dldEhpZ2hXYXRlck1hcms6ZnVuY3Rpb24oYWUsWSxXLE4pe3ZhciBxLGVlPW51bGwhPShxPVkpLmhpZ2hXYXRlck1hcms/cS5oaWdoV2F0ZXJNYXJrOk4/cVtXXTpudWxsO2lmKG51bGwhPWVlKXtpZighaXNGaW5pdGUoZWUpfHxNYXRoLmZsb29yKGVl''@;'; + put 'put ''KSE9PWVlfHxlZTwwKXRocm93IG5ldyBpZShOP1c6ImhpZ2hXYXRlck1hcmsiLGVlKTtyZXR1cm4gTWF0aC5mbG9vcihlZSl9cmV0dXJuIGFlLm9iamVjdE1vZGU/MTY6MTYzODR9fX0sMjUwMzooVSxRLFopPT57VS5leHBvcnRzPVooNzE4NykuRXZlbnRFbWl0dGVyfSw4NDczOihVLFEsWik9''@;'; + put 'put ''PnsoUT1VLmV4cG9ydHM9Wig5NDgxKSkuU3RyZWFtPVEsUS5SZWFkYWJsZT1RLFEuV3JpdGFibGU9Wig0MjI5KSxRLkR1cGxleD1aKDY3NTMpLFEuVHJhbnNmb3JtPVooNDYwNSksUS5QYXNzVGhyb3VnaD1aKDI3MjUpLFEuZmluaXNoZWQ9Wig4NjEwKSxRLnBpcGVsaW5lPVooOTk0Nil9LDk4''@;'; + put 'put ''NDooVSxRLFopPT57dmFyIGllPVooNDE1NSk7Y29uc3QgYWU9Wig5MjgyKSxZPVooMjUyMCksVz1aKDcyMTcpO2xldCBOO3RyeXtOPVooMjg4NCl9Y2F0Y2goRWUpe31jb25zdCBlZT17bm9zb3J0OiEwLHNpbGVudDohMH07bGV0IHE9MDtjb25zdCBKPSJ3aW4zMiI9PT1pZS5wbGF0Zm9ybSxz''@;'; + put 'put ''ZT1FZT0+e2lmKFsidW5saW5rIiwiY2htb2QiLCJzdGF0IiwibHN0YXQiLCJybWRpciIsInJlYWRkaXIiXS5mb3JFYWNoKGhlPT57RWVbaGVdPUVlW2hlXXx8V1toZV0sRWVbaGUrPSJTeW5jIl09RWVbaGVdfHxXW2hlXX0pLEVlLm1heEJ1c3lUcmllcz1FZS5tYXhCdXN5VHJpZXN8fDMsRWUu''@;'; + put 'put ''ZW1maWxlV2FpdD1FZS5lbWZpbGVXYWl0fHwxZTMsITE9PT1FZS5nbG9iJiYoRWUuZGlzYWJsZUdsb2I9ITApLCEwIT09RWUuZGlzYWJsZUdsb2ImJnZvaWQgMD09PU4pdGhyb3cgRXJyb3IoImdsb2IgZGVwZW5kZW5jeSBub3QgZm91bmQsIHNldCBgb3B0aW9ucy5kaXNhYmxlR2xvYiA9IHRy''@;'; + put 'put ''dWVgIGlmIGludGVudGlvbmFsIik7RWUuZGlzYWJsZUdsb2I9RWUuZGlzYWJsZUdsb2J8fCExLEVlLmdsb2I9RWUuZ2xvYnx8ZWV9LG9lPShFZSxoZSxPKT0+eyJmdW5jdGlvbiI9PXR5cGVvZiBoZSYmKE89aGUsaGU9e30pLGFlKEVlLCJyaW1yYWY6IG1pc3NpbmcgcGF0aCIpLGFlLmVxdWFs''@;'; + put 'put ''KHR5cGVvZiBFZSwic3RyaW5nIiwicmltcmFmOiBwYXRoIHNob3VsZCBiZSBhIHN0cmluZyIpLGFlLmVxdWFsKHR5cGVvZiBPLCJmdW5jdGlvbiIsInJpbXJhZjogY2FsbGJhY2sgZnVuY3Rpb24gcmVxdWlyZWQiKSxhZShoZSwicmltcmFmOiBpbnZhbGlkIG9wdGlvbnMgYXJndW1lbnQgcHJv''@;'; + put 'put ''dmlkZWQiKSxhZS5lcXVhbCh0eXBlb2YgaGUsIm9iamVjdCIsInJpbXJhZjogb3B0aW9ucyBzaG91bGQgYmUgb2JqZWN0Iiksc2UoaGUpO2xldCB6PTAsbmU9bnVsbCx0ZT0wO2NvbnN0IHg9KFAsVik9PlA/TyhQKToodGU9Vi5sZW5ndGgsMD09PXRlP08oKTp2b2lkIFYuZm9yRWFjaChUPT57''@;'; + put 'put ''Y29uc3QgUz1GPT57aWYoRil7aWYoKCJFQlVTWSI9PT1GLmNvZGV8fCJFTk9URU1QVFkiPT09Ri5jb2RlfHwiRVBFUk0iPT09Ri5jb2RlKSYmejxoZS5tYXhCdXN5VHJpZXMpcmV0dXJuIHorKyxzZXRUaW1lb3V0KCgpPT5jZShULGhlLFMpLDEwMCp6KTtpZigiRU1GSUxFIj09PUYuY29kZSYm''@;'; + put 'put ''cTxoZS5lbWZpbGVXYWl0KXJldHVybiBzZXRUaW1lb3V0KCgpPT5jZShULGhlLFMpLHErKyk7IkVOT0VOVCI9PT1GLmNvZGUmJihGPW51bGwpfXE9MCxuZT1uZXx8RiwwPT0tLXRlJiZPKG5lKX07Y2UoVCxoZSxTKX0pKTtpZihoZS5kaXNhYmxlR2xvYnx8IU4uaGFzTWFnaWMoRWUpKXJldHVy''@;'; + put 'put ''biB4KG51bGwsW0VlXSk7aGUubHN0YXQoRWUsKFAsVik9PntpZighUClyZXR1cm4geChudWxsLFtFZV0pO04oRWUsaGUuZ2xvYix4KX0pfSxjZT0oRWUsaGUsTyk9PnthZShFZSksYWUoaGUpLGFlKCJmdW5jdGlvbiI9PXR5cGVvZiBPKSxoZS5sc3RhdChFZSwoeixuZSk9PnomJiJFTk9FTlQi''@;'; + put 'put ''PT09ei5jb2RlP08obnVsbCk6KHomJiJFUEVSTSI9PT16LmNvZGUmJkomJmRlKEVlLGhlLHosTyksbmUmJm5lLmlzRGlyZWN0b3J5KCk/QWUoRWUsaGUseixPKTp2b2lkIGhlLnVubGluayhFZSx0ZT0+e2lmKHRlKXtpZigiRU5PRU5UIj09PXRlLmNvZGUpcmV0dXJuIE8obnVsbCk7aWYoIkVQ''@;'; + put 'put ''RVJNIj09PXRlLmNvZGUpcmV0dXJuIEo/ZGUoRWUsaGUsdGUsTyk6QWUoRWUsaGUsdGUsTyk7aWYoIkVJU0RJUiI9PT10ZS5jb2RlKXJldHVybiBBZShFZSxoZSx0ZSxPKX1yZXR1cm4gTyh0ZSl9KSkpfSxkZT0oRWUsaGUsTyx6KT0+e2FlKEVlKSxhZShoZSksYWUoImZ1bmN0aW9uIj09dHlw''@;'; + put 'put ''ZW9mIHopLGhlLmNobW9kKEVlLDQzOCxuZT0+e25lP3ooIkVOT0VOVCI9PT1uZS5jb2RlP251bGw6Tyk6aGUuc3RhdChFZSwodGUseCk9Pnt0ZT96KCJFTk9FTlQiPT09dGUuY29kZT9udWxsOk8pOnguaXNEaXJlY3RvcnkoKT9BZShFZSxoZSxPLHopOmhlLnVubGluayhFZSx6KX0pfSl9LHZl''@;'; + put 'put ''PShFZSxoZSxPKT0+e2FlKEVlKSxhZShoZSk7dHJ5e2hlLmNobW9kU3luYyhFZSw0MzgpfWNhdGNoKG5lKXtpZigiRU5PRU5UIj09PW5lLmNvZGUpcmV0dXJuO3Rocm93IE99bGV0IHo7dHJ5e3o9aGUuc3RhdFN5bmMoRWUpfWNhdGNoKG5lKXtpZigiRU5PRU5UIj09PW5lLmNvZGUpcmV0dXJu''@;'; + put 'put ''O3Rocm93IE99ei5pc0RpcmVjdG9yeSgpP0llKEVlLGhlLE8pOmhlLnVubGlua1N5bmMoRWUpfSxBZT0oRWUsaGUsTyx6KT0+e2FlKEVlKSxhZShoZSksYWUoImZ1bmN0aW9uIj09dHlwZW9mIHopLGhlLnJtZGlyKEVlLG5lPT57IW5lfHwiRU5PVEVNUFRZIiE9PW5lLmNvZGUmJiJFRVhJU1Qi''@;'; + put 'put ''IT09bmUuY29kZSYmIkVQRVJNIiE9PW5lLmNvZGU/eihuZSYmIkVOT1RESVIiPT09bmUuY29kZT9POm5lKTprZShFZSxoZSx6KX0pfSxrZT0oRWUsaGUsTyk9PnthZShFZSksYWUoaGUpLGFlKCJmdW5jdGlvbiI9PXR5cGVvZiBPKSxoZS5yZWFkZGlyKEVlLCh6LG5lKT0+e2lmKHopcmV0dXJu''@;'; + put 'put ''IE8oeik7bGV0IHRlLHg9bmUubGVuZ3RoO2lmKDA9PT14KXJldHVybiBoZS5ybWRpcihFZSxPKTtuZS5mb3JFYWNoKFA9PntvZShZLmpvaW4oRWUsUCksaGUsVj0+e2lmKCF0ZSlyZXR1cm4gVj9PKHRlPVYpOnZvaWQoMD09LS14JiZoZS5ybWRpcihFZSxPKSl9KX0pfSl9LFNlPShFZSxoZSk9''@;'; + put 'put ''PntsZXQgTztpZihzZShoZT1oZXx8e30pLGFlKEVlLCJyaW1yYWY6IG1pc3NpbmcgcGF0aCIpLGFlLmVxdWFsKHR5cGVvZiBFZSwic3RyaW5nIiwicmltcmFmOiBwYXRoIHNob3VsZCBiZSBhIHN0cmluZyIpLGFlKGhlLCJyaW1yYWY6IG1pc3Npbmcgb3B0aW9ucyIpLGFlLmVxdWFsKHR5cGVv''@;'; + put 'put ''ZiBoZSwib2JqZWN0IiwicmltcmFmOiBvcHRpb25zIHNob3VsZCBiZSBvYmplY3QiKSxoZS5kaXNhYmxlR2xvYnx8IU4uaGFzTWFnaWMoRWUpKU89W0VlXTtlbHNlIHRyeXtoZS5sc3RhdFN5bmMoRWUpLE89W0VlXX1jYXRjaCh6KXtPPU4uc3luYyhFZSxoZS5nbG9iKX1pZihPLmxlbmd0aClm''@;'; + put 'put ''b3IobGV0IHo9MDt6PE8ubGVuZ3RoO3orKyl7Y29uc3QgbmU9T1t6XTtsZXQgdGU7dHJ5e3RlPWhlLmxzdGF0U3luYyhuZSl9Y2F0Y2goeCl7aWYoIkVOT0VOVCI9PT14LmNvZGUpcmV0dXJuOyJFUEVSTSI9PT14LmNvZGUmJkomJnZlKG5lLGhlLHgpfXRyeXt0ZSYmdGUuaXNEaXJlY3Rvcnko''@;'; + put 'put ''KT9JZShuZSxoZSxudWxsKTpoZS51bmxpbmtTeW5jKG5lKX1jYXRjaCh4KXtpZigiRU5PRU5UIj09PXguY29kZSlyZXR1cm47aWYoIkVQRVJNIj09PXguY29kZSlyZXR1cm4gSj92ZShuZSxoZSx4KTpJZShuZSxoZSx4KTtpZigiRUlTRElSIiE9PXguY29kZSl0aHJvdyB4O0llKG5lLGhlLHgp''@;'; + put 'put ''fX19LEllPShFZSxoZSxPKT0+e2FlKEVlKSxhZShoZSk7dHJ5e2hlLnJtZGlyU3luYyhFZSl9Y2F0Y2goeil7aWYoIkVOT0VOVCI9PT16LmNvZGUpcmV0dXJuO2lmKCJFTk9URElSIj09PXouY29kZSl0aHJvdyBPOyJFTk9URU1QVFkiIT09ei5jb2RlJiYiRUVYSVNUIiE9PXouY29kZSYmIkVQ''@;'; + put 'put ''RVJNIiE9PXouY29kZXx8VGUoRWUsaGUpfX0sVGU9KEVlLGhlKT0+e2FlKEVlKSxhZShoZSksaGUucmVhZGRpclN5bmMoRWUpLmZvckVhY2gobmU9PlNlKFkuam9pbihFZSxuZSksaGUpKTtjb25zdCBPPUo/MTAwOjE7bGV0IHo9MDtmb3IoOzspe2xldCBuZT0hMDt0cnl7Y29uc3QgdGU9aGUu''@;'; + put 'put ''cm1kaXJTeW5jKEVlLGhlKTtyZXR1cm4gbmU9ITEsdGV9ZmluYWxseXtpZigrK3o8TyYmbmUpY29udGludWV9fX07VS5leHBvcnRzPW9lLG9lLnN5bmM9U2V9LDk3ODU6KFUsUSxaKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgaWU9Wig4NzY0KS5CdWZmZXIsYWU9Wig1NzE3KSxZPVooMzM0OSksVz1u''@;'; + put 'put ''ZXcgQXJyYXkoMTYpLE49WzAsMSwyLDMsNCw1LDYsNyw4LDksMTAsMTEsMTIsMTMsMTQsMTUsNyw0LDEzLDEsMTAsNiwxNSwzLDEyLDAsOSw1LDIsMTQsMTEsOCwzLDEwLDE0LDQsOSwxNSw4LDEsMiw3LDAsNiwxMywxMSw1LDEyLDEsOSwxMSwxMCwwLDgsMTIsNCwxMywzLDcsMTUsMTQsNSw2''@;'; + put 'put ''LDIsNCwwLDUsOSw3LDEyLDIsMTAsMTQsMSwzLDgsMTEsNiwxNSwxM10sZWU9WzUsMTQsNywwLDksMiwxMSw0LDEzLDYsMTUsOCwxLDEwLDMsMTIsNiwxMSwzLDcsMCwxMyw1LDEwLDE0LDE1LDgsMTIsNCw5LDEsMiwxNSw1LDEsMyw3LDE0LDYsOSwxMSw4LDEyLDIsMTAsMCw0LDEzLDgsNiw0''@;'; + put 'put ''LDEsMywxMSwxNSwwLDUsMTIsMiwxMyw5LDcsMTAsMTQsMTIsMTUsMTAsNCwxLDUsOCw3LDYsMiwxMywxNCwwLDMsOSwxMV0scT1bMTEsMTQsMTUsMTIsNSw4LDcsOSwxMSwxMywxNCwxNSw2LDcsOSw4LDcsNiw4LDEzLDExLDksNywxNSw3LDEyLDE1LDksMTEsNywxMywxMiwxMSwxMyw2LDcs''@;'; + put 'put ''MTQsOSwxMywxNSwxNCw4LDEzLDYsNSwxMiw3LDUsMTEsMTIsMTQsMTUsMTQsMTUsOSw4LDksMTQsNSw2LDgsNiw1LDEyLDksMTUsNSwxMSw2LDgsMTMsMTIsNSwxMiwxMywxNCwxMSw4LDUsNl0sSj1bOCw5LDksMTEsMTMsMTUsMTUsNSw3LDcsOCwxMSwxNCwxNCwxMiw2LDksMTMsMTUsNywx''@;'; + put 'put ''Miw4LDksMTEsNyw3LDEyLDcsNiwxNSwxMywxMSw5LDcsMTUsMTEsOCw2LDYsMTQsMTIsMTMsNSwxNCwxMywxMyw3LDUsMTUsNSw4LDExLDE0LDE0LDYsMTQsNiw5LDEyLDksMTIsNSwxNSw4LDgsNSwxMiw5LDEyLDUsMTQsNiw4LDEzLDYsNSwxNSwxMywxMSwxMV0sc2U9WzAsMTUxODUwMDI0''@;'; + put 'put ''OSwxODU5Nzc1MzkzLDI0MDA5NTk3MDgsMjg0MDg1MzgzOF0sb2U9WzEzNTI4Mjk5MjYsMTU0ODYwMzY4NCwxODM2MDcyNjkxLDIwNTM5OTQyMTcsMF07ZnVuY3Rpb24gY2UoKXtZLmNhbGwodGhpcyw2NCksdGhpcy5fYT0xNzMyNTg0MTkzLHRoaXMuX2I9NDAyMzIzMzQxNyx0aGlzLl9jPTI1''@;'; + put 'put ''NjIzODMxMDIsdGhpcy5fZD0yNzE3MzM4NzgsdGhpcy5fZT0zMjg1Mzc3NTIwfWZ1bmN0aW9uIGRlKFRlLEVlKXtyZXR1cm4gVGU8PEVlfFRlPj4+MzItRWV9ZnVuY3Rpb24gdmUoVGUsRWUsaGUsTyx6LG5lLHRlLHgpe3JldHVybiBkZShUZSsoRWVeaGVeTykrbmUrdGV8MCx4KSt6fDB9ZnVu''@;'; + put 'put ''Y3Rpb24gQWUoVGUsRWUsaGUsTyx6LG5lLHRlLHgpe3JldHVybiBkZShUZSsoRWUmaGV8fkVlJk8pK25lK3RlfDAseCkrenwwfWZ1bmN0aW9uIGtlKFRlLEVlLGhlLE8seixuZSx0ZSx4KXtyZXR1cm4gZGUoVGUrKChFZXx+aGUpXk8pK25lK3RlfDAseCkrenwwfWZ1bmN0aW9uIFNlKFRlLEVl''@;'; + put 'put ''LGhlLE8seixuZSx0ZSx4KXtyZXR1cm4gZGUoVGUrKEVlJk98aGUmfk8pK25lK3RlfDAseCkrenwwfWZ1bmN0aW9uIEllKFRlLEVlLGhlLE8seixuZSx0ZSx4KXtyZXR1cm4gZGUoVGUrKEVlXihoZXx+TykpK25lK3RlfDAseCkrenwwfWFlKGNlLFkpLGNlLnByb3RvdHlwZS5fdXBkYXRlPWZ1''@;'; + put 'put ''bmN0aW9uKCl7Zm9yKHZhciBUZT1XLEVlPTA7RWU8MTY7KytFZSlUZVtFZV09dGhpcy5fYmxvY2sucmVhZEludDMyTEUoNCpFZSk7Zm9yKHZhciBoZT0wfHRoaXMuX2EsTz0wfHRoaXMuX2Isej0wfHRoaXMuX2MsbmU9MHx0aGlzLl9kLHRlPTB8dGhpcy5fZSx4PTB8dGhpcy5fYSxQPTB8dGhp''@;'; + put 'put ''cy5fYixWPTB8dGhpcy5fYyxUPTB8dGhpcy5fZCxTPTB8dGhpcy5fZSxGPTA7Rjw4MDtGKz0xKXt2YXIgeWUsQ2U7RjwxNj8oeWU9dmUoaGUsTyx6LG5lLHRlLFRlW05bRl1dLHNlWzBdLHFbRl0pLENlPUllKHgsUCxWLFQsUyxUZVtlZVtGXV0sb2VbMF0sSltGXSkpOkY8MzI/KHllPUFlKGhl''@;'; + put 'put ''LE8seixuZSx0ZSxUZVtOW0ZdXSxzZVsxXSxxW0ZdKSxDZT1TZSh4LFAsVixULFMsVGVbZWVbRl1dLG9lWzFdLEpbRl0pKTpGPDQ4Pyh5ZT1rZShoZSxPLHosbmUsdGUsVGVbTltGXV0sc2VbMl0scVtGXSksQ2U9a2UoeCxQLFYsVCxTLFRlW2VlW0ZdXSxvZVsyXSxKW0ZdKSk6Rjw2ND8oeWU9''@;'; + put 'put ''U2UoaGUsTyx6LG5lLHRlLFRlW05bRl1dLHNlWzNdLHFbRl0pLENlPUFlKHgsUCxWLFQsUyxUZVtlZVtGXV0sb2VbM10sSltGXSkpOih5ZT1JZShoZSxPLHosbmUsdGUsVGVbTltGXV0sc2VbNF0scVtGXSksQ2U9dmUoeCxQLFYsVCxTLFRlW2VlW0ZdXSxvZVs0XSxKW0ZdKSksaGU9dGUsdGU9''@;'; + put 'put ''bmUsbmU9ZGUoeiwxMCksej1PLE89eWUseD1TLFM9VCxUPWRlKFYsMTApLFY9UCxQPUNlfXZhciBEZT10aGlzLl9iK3orVHwwO3RoaXMuX2I9dGhpcy5fYytuZStTfDAsdGhpcy5fYz10aGlzLl9kK3RlK3h8MCx0aGlzLl9kPXRoaXMuX2UraGUrUHwwLHRoaXMuX2U9dGhpcy5fYStPK1Z8MCx0''@;'; + put 'put ''aGlzLl9hPURlfSxjZS5wcm90b3R5cGUuX2RpZ2VzdD1mdW5jdGlvbigpe3RoaXMuX2Jsb2NrW3RoaXMuX2Jsb2NrT2Zmc2V0KytdPTEyOCx0aGlzLl9ibG9ja09mZnNldD41NiYmKHRoaXMuX2Jsb2NrLmZpbGwoMCx0aGlzLl9ibG9ja09mZnNldCw2NCksdGhpcy5fdXBkYXRlKCksdGhpcy5f''@;'; + put 'put ''YmxvY2tPZmZzZXQ9MCksdGhpcy5fYmxvY2suZmlsbCgwLHRoaXMuX2Jsb2NrT2Zmc2V0LDU2KSx0aGlzLl9ibG9jay53cml0ZVVJbnQzMkxFKHRoaXMuX2xlbmd0aFswXSw1NiksdGhpcy5fYmxvY2sud3JpdGVVSW50MzJMRSh0aGlzLl9sZW5ndGhbMV0sNjApLHRoaXMuX3VwZGF0ZSgpO3Zh''@;'; + put 'put ''ciBUZT1pZS5hbGxvYz9pZS5hbGxvYygyMCk6bmV3IGllKDIwKTtyZXR1cm4gVGUud3JpdGVJbnQzMkxFKHRoaXMuX2EsMCksVGUud3JpdGVJbnQzMkxFKHRoaXMuX2IsNCksVGUud3JpdGVJbnQzMkxFKHRoaXMuX2MsOCksVGUud3JpdGVJbnQzMkxFKHRoaXMuX2QsMTIpLFRlLndyaXRlSW50''@;'; + put 'put ''MzJMRSh0aGlzLl9lLDE2KSxUZX0sVS5leHBvcnRzPWNlfSw5NTA5OihVLFEsWik9Pnt2YXIgaWU9Wig4NzY0KSxhZT1pZS5CdWZmZXI7ZnVuY3Rpb24gWShOLGVlKXtmb3IodmFyIHEgaW4gTillZVtxXT1OW3FdfWZ1bmN0aW9uIFcoTixlZSxxKXtyZXR1cm4gYWUoTixlZSxxKX1hZS5mcm9t''@;'; + put 'put ''JiZhZS5hbGxvYyYmYWUuYWxsb2NVbnNhZmUmJmFlLmFsbG9jVW5zYWZlU2xvdz9VLmV4cG9ydHM9aWU6KFkoaWUsUSksUS5CdWZmZXI9VyksWShhZSxXKSxXLmZyb209ZnVuY3Rpb24oTixlZSxxKXtpZigibnVtYmVyIj09dHlwZW9mIE4pdGhyb3cgbmV3IFR5cGVFcnJvcigiQXJndW1lbnQg''@;'; + put 'put ''bXVzdCBub3QgYmUgYSBudW1iZXIiKTtyZXR1cm4gYWUoTixlZSxxKX0sVy5hbGxvYz1mdW5jdGlvbihOLGVlLHEpe2lmKCJudW1iZXIiIT10eXBlb2YgTil0aHJvdyBuZXcgVHlwZUVycm9yKCJBcmd1bWVudCBtdXN0IGJlIGEgbnVtYmVyIik7dmFyIEo9YWUoTik7cmV0dXJuIHZvaWQgMCE9''@;'; + put 'put ''PWVlPyJzdHJpbmciPT10eXBlb2YgcT9KLmZpbGwoZWUscSk6Si5maWxsKGVlKTpKLmZpbGwoMCksSn0sVy5hbGxvY1Vuc2FmZT1mdW5jdGlvbihOKXtpZigibnVtYmVyIiE9dHlwZW9mIE4pdGhyb3cgbmV3IFR5cGVFcnJvcigiQXJndW1lbnQgbXVzdCBiZSBhIG51bWJlciIpO3JldHVybiBh''@;'; + put 'put ''ZShOKX0sVy5hbGxvY1Vuc2FmZVNsb3c9ZnVuY3Rpb24oTil7aWYoIm51bWJlciIhPXR5cGVvZiBOKXRocm93IG5ldyBUeXBlRXJyb3IoIkFyZ3VtZW50IG11c3QgYmUgYSBudW1iZXIiKTtyZXR1cm4gaWUuU2xvd0J1ZmZlcihOKX19LDIzOTk6KFUsUSxaKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIg''@;'; + put 'put ''aWUsYWU9Wig0MTU1KSxZPVooODc2NCksVz1ZLkJ1ZmZlcixOPXt9O2ZvcihpZSBpbiBZKVkuaGFzT3duUHJvcGVydHkoaWUpJiYiU2xvd0J1ZmZlciIhPT1pZSYmIkJ1ZmZlciIhPT1pZSYmKE5baWVdPVlbaWVdKTt2YXIgZWU9Ti5CdWZmZXI9e307Zm9yKGllIGluIFcpVy5oYXNPd25Qcm9w''@;'; + put 'put ''ZXJ0eShpZSkmJiJhbGxvY1Vuc2FmZSIhPT1pZSYmImFsbG9jVW5zYWZlU2xvdyIhPT1pZSYmKGVlW2llXT1XW2llXSk7aWYoTi5CdWZmZXIucHJvdG90eXBlPVcucHJvdG90eXBlLGVlLmZyb20mJmVlLmZyb20hPT1VaW50OEFycmF5LmZyb218fChlZS5mcm9tPWZ1bmN0aW9uKHEsSixzZSl7''@;'; + put 'put ''aWYoIm51bWJlciI9PXR5cGVvZiBxKXRocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSAidmFsdWUiIGFyZ3VtZW50IG11c3Qgbm90IGJlIG9mIHR5cGUgbnVtYmVyLiBSZWNlaXZlZCB0eXBlICcrdHlwZW9mIHEpO2lmKHEmJnZvaWQgMD09PXEubGVuZ3RoKXRocm93IG5ldyBUeXBlRXJyb3IoIlRo''@;'; + put 'put ''ZSBmaXJzdCBhcmd1bWVudCBtdXN0IGJlIG9uZSBvZiB0eXBlIHN0cmluZywgQnVmZmVyLCBBcnJheUJ1ZmZlciwgQXJyYXksIG9yIEFycmF5LWxpa2UgT2JqZWN0LiBSZWNlaXZlZCB0eXBlICIrdHlwZW9mIHEpO3JldHVybiBXKHEsSixzZSl9KSxlZS5hbGxvY3x8KGVlLmFsbG9jPWZ1bmN0''@;'; + put 'put ''aW9uKHEsSixzZSl7aWYoIm51bWJlciIhPXR5cGVvZiBxKXRocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSAic2l6ZSIgYXJndW1lbnQgbXVzdCBiZSBvZiB0eXBlIG51bWJlci4gUmVjZWl2ZWQgdHlwZSAnK3R5cGVvZiBxKTtpZihxPDB8fHE+PTIxNDc0ODM2NDgpdGhyb3cgbmV3IFJhbmdlRXJy''@;'; + put 'put ''b3IoJ1RoZSB2YWx1ZSAiJytxKyciIGlzIGludmFsaWQgZm9yIG9wdGlvbiAic2l6ZSInKTt2YXIgb2U9VyhxKTtyZXR1cm4gSiYmMCE9PUoubGVuZ3RoPyJzdHJpbmciPT10eXBlb2Ygc2U/b2UuZmlsbChKLHNlKTpvZS5maWxsKEopOm9lLmZpbGwoMCksb2V9KSwhTi5rU3RyaW5nTWF4TGVu''@;'; + put 'put ''Z3RoKXRyeXtOLmtTdHJpbmdNYXhMZW5ndGg9YWUuYmluZGluZygiYnVmZmVyIikua1N0cmluZ01heExlbmd0aH1jYXRjaChxKXt9Ti5jb25zdGFudHN8fChOLmNvbnN0YW50cz17TUFYX0xFTkdUSDpOLmtNYXhMZW5ndGh9LE4ua1N0cmluZ01heExlbmd0aCYmKE4uY29uc3RhbnRzLk1BWF9T''@;'; + put 'put ''VFJJTkdfTEVOR1RIPU4ua1N0cmluZ01heExlbmd0aCkpLFUuZXhwb3J0cz1OfSw0MTg5OihVLFEsWik9Pnt2YXIgaWU9Wig5NTA5KS5CdWZmZXI7ZnVuY3Rpb24gYWUoWSxXKXt0aGlzLl9ibG9jaz1pZS5hbGxvYyhZKSx0aGlzLl9maW5hbFNpemU9Vyx0aGlzLl9ibG9ja1NpemU9WSx0aGlz''@;'; + put 'put ''Ll9sZW49MH1hZS5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKFksVyl7InN0cmluZyI9PXR5cGVvZiBZJiYoWT1pZS5mcm9tKFksVz1XfHwidXRmOCIpKTtmb3IodmFyIE49dGhpcy5fYmxvY2ssZWU9dGhpcy5fYmxvY2tTaXplLHE9WS5sZW5ndGgsSj10aGlzLl9sZW4sc2U9MDtzZTxxOyl7''@;'; + put 'put ''Zm9yKHZhciBvZT1KJWVlLGNlPU1hdGgubWluKHEtc2UsZWUtb2UpLGRlPTA7ZGU8Y2U7ZGUrKylOW29lK2RlXT1ZW3NlK2RlXTtzZSs9Y2UsKEorPWNlKSVlZT09MCYmdGhpcy5fdXBkYXRlKE4pfXJldHVybiB0aGlzLl9sZW4rPXEsdGhpc30sYWUucHJvdG90eXBlLmRpZ2VzdD1mdW5jdGlv''@;'; + put 'put ''bihZKXt2YXIgVz10aGlzLl9sZW4ldGhpcy5fYmxvY2tTaXplO3RoaXMuX2Jsb2NrW1ddPTEyOCx0aGlzLl9ibG9jay5maWxsKDAsVysxKSxXPj10aGlzLl9maW5hbFNpemUmJih0aGlzLl91cGRhdGUodGhpcy5fYmxvY2spLHRoaXMuX2Jsb2NrLmZpbGwoMCkpO3ZhciBOPTgqdGhpcy5fbGVu''@;'; + put 'put ''O2lmKE48PTQyOTQ5NjcyOTUpdGhpcy5fYmxvY2sud3JpdGVVSW50MzJCRShOLHRoaXMuX2Jsb2NrU2l6ZS00KTtlbHNle3ZhciBlZT0oNDI5NDk2NzI5NSZOKT4+PjA7dGhpcy5fYmxvY2sud3JpdGVVSW50MzJCRSgoTi1lZSkvNDI5NDk2NzI5Nix0aGlzLl9ibG9ja1NpemUtOCksdGhpcy5f''@;'; + put 'put ''YmxvY2sud3JpdGVVSW50MzJCRShlZSx0aGlzLl9ibG9ja1NpemUtNCl9dGhpcy5fdXBkYXRlKHRoaXMuX2Jsb2NrKTt2YXIgSj10aGlzLl9oYXNoKCk7cmV0dXJuIFk/Si50b1N0cmluZyhZKTpKfSxhZS5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcigiX3Vw''@;'; + put 'put ''ZGF0ZSBtdXN0IGJlIGltcGxlbWVudGVkIGJ5IHN1YmNsYXNzIil9LFUuZXhwb3J0cz1hZX0sOTA3MjooVSxRLFopPT57dmFyIGllPVUuZXhwb3J0cz1mdW5jdGlvbihhZSl7YWU9YWUudG9Mb3dlckNhc2UoKTt2YXIgWT1pZVthZV07aWYoIVkpdGhyb3cgbmV3IEVycm9yKGFlKyIgaXMgbm90''@;'; + put 'put ''IHN1cHBvcnRlZCAod2UgYWNjZXB0IHB1bGwgcmVxdWVzdHMpIik7cmV0dXJuIG5ldyBZfTtpZS5zaGE9Wig0NDQ4KSxpZS5zaGExPVooODMzNiksaWUuc2hhMjI0PVooODQzMiksaWUuc2hhMjU2PVooNzQ5OSksaWUuc2hhMzg0PVooMTY4NiksaWUuc2hhNTEyPVooNzgxNil9LDQ0NDg6KFUs''@;'; + put 'put ''USxaKT0+e3ZhciBpZT1aKDU3MTcpLGFlPVooNDE4OSksWT1aKDk1MDkpLkJ1ZmZlcixXPVsxNTE4NTAwMjQ5LDE4NTk3NzUzOTMsLTE4OTQwMDc1ODgsLTg5OTQ5NzUxNF0sTj1uZXcgQXJyYXkoODApO2Z1bmN0aW9uIGVlKCl7dGhpcy5pbml0KCksdGhpcy5fdz1OLGFlLmNhbGwodGhpcyw2''@;'; + put 'put ''NCw1Nil9ZnVuY3Rpb24gcShzZSl7cmV0dXJuIHNlPDwzMHxzZT4+PjJ9ZnVuY3Rpb24gSihzZSxvZSxjZSxkZSl7cmV0dXJuIDA9PT1zZT9vZSZjZXx+b2UmZGU6Mj09PXNlP29lJmNlfG9lJmRlfGNlJmRlOm9lXmNlXmRlfWllKGVlLGFlKSxlZS5wcm90b3R5cGUuaW5pdD1mdW5jdGlvbigp''@;'; + put 'put ''e3JldHVybiB0aGlzLl9hPTE3MzI1ODQxOTMsdGhpcy5fYj00MDIzMjMzNDE3LHRoaXMuX2M9MjU2MjM4MzEwMix0aGlzLl9kPTI3MTczMzg3OCx0aGlzLl9lPTMyODUzNzc1MjAsdGhpc30sZWUucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24oc2Upe2Zvcih2YXIgb2UsY2U9dGhpcy5fdyxk''@;'; + put 'put ''ZT0wfHRoaXMuX2EsdmU9MHx0aGlzLl9iLEFlPTB8dGhpcy5fYyxrZT0wfHRoaXMuX2QsU2U9MHx0aGlzLl9lLEllPTA7SWU8MTY7KytJZSljZVtJZV09c2UucmVhZEludDMyQkUoNCpJZSk7Zm9yKDtJZTw4MDsrK0llKWNlW0llXT1jZVtJZS0zXV5jZVtJZS04XV5jZVtJZS0xNF1eY2VbSWUt''@;'; + put 'put ''MTZdO2Zvcih2YXIgVGU9MDtUZTw4MDsrK1RlKXt2YXIgRWU9fn4oVGUvMjApLGhlPTB8KChvZT1kZSk8PDV8b2U+Pj4yNykrSihFZSx2ZSxBZSxrZSkrU2UrY2VbVGVdK1dbRWVdO1NlPWtlLGtlPUFlLEFlPXEodmUpLHZlPWRlLGRlPWhlfXRoaXMuX2E9ZGUrdGhpcy5fYXwwLHRoaXMuX2I9''@;'; + put 'put ''dmUrdGhpcy5fYnwwLHRoaXMuX2M9QWUrdGhpcy5fY3wwLHRoaXMuX2Q9a2UrdGhpcy5fZHwwLHRoaXMuX2U9U2UrdGhpcy5fZXwwfSxlZS5wcm90b3R5cGUuX2hhc2g9ZnVuY3Rpb24oKXt2YXIgc2U9WS5hbGxvY1Vuc2FmZSgyMCk7cmV0dXJuIHNlLndyaXRlSW50MzJCRSgwfHRoaXMuX2Es''@;'; + put 'put ''MCksc2Uud3JpdGVJbnQzMkJFKDB8dGhpcy5fYiw0KSxzZS53cml0ZUludDMyQkUoMHx0aGlzLl9jLDgpLHNlLndyaXRlSW50MzJCRSgwfHRoaXMuX2QsMTIpLHNlLndyaXRlSW50MzJCRSgwfHRoaXMuX2UsMTYpLHNlfSxVLmV4cG9ydHM9ZWV9LDgzMzY6KFUsUSxaKT0+e3ZhciBpZT1aKDU3''@;'; + put 'put ''MTcpLGFlPVooNDE4OSksWT1aKDk1MDkpLkJ1ZmZlcixXPVsxNTE4NTAwMjQ5LDE4NTk3NzUzOTMsLTE4OTQwMDc1ODgsLTg5OTQ5NzUxNF0sTj1uZXcgQXJyYXkoODApO2Z1bmN0aW9uIGVlKCl7dGhpcy5pbml0KCksdGhpcy5fdz1OLGFlLmNhbGwodGhpcyw2NCw1Nil9ZnVuY3Rpb24gcShv''@;'; + put 'put ''ZSl7cmV0dXJuIG9lPDw1fG9lPj4+Mjd9ZnVuY3Rpb24gSihvZSl7cmV0dXJuIG9lPDwzMHxvZT4+PjJ9ZnVuY3Rpb24gc2Uob2UsY2UsZGUsdmUpe3JldHVybiAwPT09b2U/Y2UmZGV8fmNlJnZlOjI9PT1vZT9jZSZkZXxjZSZ2ZXxkZSZ2ZTpjZV5kZV52ZX1pZShlZSxhZSksZWUucHJvdG90''@;'; + put 'put ''eXBlLmluaXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYT0xNzMyNTg0MTkzLHRoaXMuX2I9NDAyMzIzMzQxNyx0aGlzLl9jPTI1NjIzODMxMDIsdGhpcy5fZD0yNzE3MzM4NzgsdGhpcy5fZT0zMjg1Mzc3NTIwLHRoaXN9LGVlLnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKG9lKXtmb3Io''@;'; + put 'put ''dmFyIGNlLGRlPXRoaXMuX3csdmU9MHx0aGlzLl9hLEFlPTB8dGhpcy5fYixrZT0wfHRoaXMuX2MsU2U9MHx0aGlzLl9kLEllPTB8dGhpcy5fZSxUZT0wO1RlPDE2OysrVGUpZGVbVGVdPW9lLnJlYWRJbnQzMkJFKDQqVGUpO2Zvcig7VGU8ODA7KytUZSlkZVtUZV09KGNlPWRlW1RlLTNdXmRl''@;'; + put 'put ''W1RlLThdXmRlW1RlLTE0XV5kZVtUZS0xNl0pPDwxfGNlPj4+MzE7Zm9yKHZhciBFZT0wO0VlPDgwOysrRWUpe3ZhciBoZT1+fihFZS8yMCksTz1xKHZlKStzZShoZSxBZSxrZSxTZSkrSWUrZGVbRWVdK1dbaGVdfDA7SWU9U2UsU2U9a2Usa2U9SihBZSksQWU9dmUsdmU9T310aGlzLl9hPXZl''@;'; + put 'put ''K3RoaXMuX2F8MCx0aGlzLl9iPUFlK3RoaXMuX2J8MCx0aGlzLl9jPWtlK3RoaXMuX2N8MCx0aGlzLl9kPVNlK3RoaXMuX2R8MCx0aGlzLl9lPUllK3RoaXMuX2V8MH0sZWUucHJvdG90eXBlLl9oYXNoPWZ1bmN0aW9uKCl7dmFyIG9lPVkuYWxsb2NVbnNhZmUoMjApO3JldHVybiBvZS53cml0''@;'; + put 'put ''ZUludDMyQkUoMHx0aGlzLl9hLDApLG9lLndyaXRlSW50MzJCRSgwfHRoaXMuX2IsNCksb2Uud3JpdGVJbnQzMkJFKDB8dGhpcy5fYyw4KSxvZS53cml0ZUludDMyQkUoMHx0aGlzLl9kLDEyKSxvZS53cml0ZUludDMyQkUoMHx0aGlzLl9lLDE2KSxvZX0sVS5leHBvcnRzPWVlfSw4NDMyOihV''@;'; + put 'put ''LFEsWik9Pnt2YXIgaWU9Wig1NzE3KSxhZT1aKDc0OTkpLFk9Wig0MTg5KSxXPVooOTUwOSkuQnVmZmVyLE49bmV3IEFycmF5KDY0KTtmdW5jdGlvbiBlZSgpe3RoaXMuaW5pdCgpLHRoaXMuX3c9TixZLmNhbGwodGhpcyw2NCw1Nil9aWUoZWUsYWUpLGVlLnByb3RvdHlwZS5pbml0PWZ1bmN0''@;'; + put 'put ''aW9uKCl7cmV0dXJuIHRoaXMuX2E9MzIzODM3MTAzMix0aGlzLl9iPTkxNDE1MDY2Myx0aGlzLl9jPTgxMjcwMjk5OSx0aGlzLl9kPTQxNDQ5MTI2OTcsdGhpcy5fZT00MjkwNzc1ODU3LHRoaXMuX2Y9MTc1MDYwMzAyNSx0aGlzLl9nPTE2OTQwNzY4MzksdGhpcy5faD0zMjA0MDc1NDI4LHRo''@;'; + put 'put ''aXN9LGVlLnByb3RvdHlwZS5faGFzaD1mdW5jdGlvbigpe3ZhciBxPVcuYWxsb2NVbnNhZmUoMjgpO3JldHVybiBxLndyaXRlSW50MzJCRSh0aGlzLl9hLDApLHEud3JpdGVJbnQzMkJFKHRoaXMuX2IsNCkscS53cml0ZUludDMyQkUodGhpcy5fYyw4KSxxLndyaXRlSW50MzJCRSh0aGlzLl9k''@;'; + put 'put ''LDEyKSxxLndyaXRlSW50MzJCRSh0aGlzLl9lLDE2KSxxLndyaXRlSW50MzJCRSh0aGlzLl9mLDIwKSxxLndyaXRlSW50MzJCRSh0aGlzLl9nLDI0KSxxfSxVLmV4cG9ydHM9ZWV9LDc0OTk6KFUsUSxaKT0+e3ZhciBpZT1aKDU3MTcpLGFlPVooNDE4OSksWT1aKDk1MDkpLkJ1ZmZlcixXPVsx''@;'; + put 'put ''MTE2MzUyNDA4LDE4OTk0NDc0NDEsMzA0OTMyMzQ3MSwzOTIxMDA5NTczLDk2MTk4NzE2MywxNTA4OTcwOTkzLDI0NTM2MzU3NDgsMjg3MDc2MzIyMSwzNjI0MzgxMDgwLDMxMDU5ODQwMSw2MDcyMjUyNzgsMTQyNjg4MTk4NywxOTI1MDc4Mzg4LDIxNjIwNzgyMDYsMjYxNDg4ODEwMywzMjQ4''@;'; + put 'put ''MjIyNTgwLDM4MzUzOTA0MDEsNDAyMjIyNDc3NCwyNjQzNDcwNzgsNjA0ODA3NjI4LDc3MDI1NTk4MywxMjQ5MTUwMTIyLDE1NTUwODE2OTIsMTk5NjA2NDk4NiwyNTU0MjIwODgyLDI4MjE4MzQzNDksMjk1Mjk5NjgwOCwzMjEwMzEzNjcxLDMzMzY1NzE4OTEsMzU4NDUyODcxMSwxMTM5MjY5''@;'; + put 'put ''OTMsMzM4MjQxODk1LDY2NjMwNzIwNSw3NzM1Mjk5MTIsMTI5NDc1NzM3MiwxMzk2MTgyMjkxLDE2OTUxODM3MDAsMTk4NjY2MTA1MSwyMTc3MDI2MzUwLDI0NTY5NTYwMzcsMjczMDQ4NTkyMSwyODIwMzAyNDExLDMyNTk3MzA4MDAsMzM0NTc2NDc3MSwzNTE2MDY1ODE3LDM2MDAzNTI4MDQs''@;'; + put 'put ''NDA5NDU3MTkwOSwyNzU0MjMzNDQsNDMwMjI3NzM0LDUwNjk0ODYxNiw2NTkwNjA1NTYsODgzOTk3ODc3LDk1ODEzOTU3MSwxMzIyODIyMjE4LDE1MzcwMDIwNjMsMTc0Nzg3Mzc3OSwxOTU1NTYyMjIyLDIwMjQxMDQ4MTUsMjIyNzczMDQ1MiwyMzYxODUyNDI0LDI0Mjg0MzY0NzQsMjc1Njcz''@;'; + put 'put ''NDE4NywzMjA0MDMxNDc5LDMzMjkzMjUyOThdLE49bmV3IEFycmF5KDY0KTtmdW5jdGlvbiBlZSgpe3RoaXMuaW5pdCgpLHRoaXMuX3c9TixhZS5jYWxsKHRoaXMsNjQsNTYpfWZ1bmN0aW9uIHEoZGUsdmUsQWUpe3JldHVybiBBZV5kZSYodmVeQWUpfWZ1bmN0aW9uIEooZGUsdmUsQWUpe3Jl''@;'; + put 'put ''dHVybiBkZSZ2ZXxBZSYoZGV8dmUpfWZ1bmN0aW9uIHNlKGRlKXtyZXR1cm4oZGU+Pj4yfGRlPDwzMCleKGRlPj4+MTN8ZGU8PDE5KV4oZGU+Pj4yMnxkZTw8MTApfWZ1bmN0aW9uIG9lKGRlKXtyZXR1cm4oZGU+Pj42fGRlPDwyNileKGRlPj4+MTF8ZGU8PDIxKV4oZGU+Pj4yNXxkZTw8Nyl9''@;'; + put 'put ''ZnVuY3Rpb24gY2UoZGUpe3JldHVybihkZT4+Pjd8ZGU8PDI1KV4oZGU+Pj4xOHxkZTw8MTQpXmRlPj4+M31pZShlZSxhZSksZWUucHJvdG90eXBlLmluaXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYT0xNzc5MDMzNzAzLHRoaXMuX2I9MzE0NDEzNDI3Nyx0aGlzLl9jPTEwMTM5MDQyNDIs''@;'; + put 'put ''dGhpcy5fZD0yNzczNDgwNzYyLHRoaXMuX2U9MTM1OTg5MzExOSx0aGlzLl9mPTI2MDA4MjI5MjQsdGhpcy5fZz01Mjg3MzQ2MzUsdGhpcy5faD0xNTQxNDU5MjI1LHRoaXN9LGVlLnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKGRlKXtmb3IodmFyIHZlLEFlPXRoaXMuX3csa2U9MHx0aGlz''@;'; + put 'put ''Ll9hLFNlPTB8dGhpcy5fYixJZT0wfHRoaXMuX2MsVGU9MHx0aGlzLl9kLEVlPTB8dGhpcy5fZSxoZT0wfHRoaXMuX2YsTz0wfHRoaXMuX2csej0wfHRoaXMuX2gsbmU9MDtuZTwxNjsrK25lKUFlW25lXT1kZS5yZWFkSW50MzJCRSg0Km5lKTtmb3IoO25lPDY0OysrbmUpQWVbbmVdPTB8KCgo''@;'; + put 'put ''dmU9QWVbbmUtMl0pPj4+MTd8dmU8PDE1KV4odmU+Pj4xOXx2ZTw8MTMpXnZlPj4+MTApK0FlW25lLTddK2NlKEFlW25lLTE1XSkrQWVbbmUtMTZdO2Zvcih2YXIgdGU9MDt0ZTw2NDsrK3RlKXt2YXIgeD16K29lKEVlKStxKEVlLGhlLE8pK1dbdGVdK0FlW3RlXXwwLFA9c2Uoa2UpK0ooa2Us''@;'; + put 'put ''U2UsSWUpfDA7ej1PLE89aGUsaGU9RWUsRWU9VGUreHwwLFRlPUllLEllPVNlLFNlPWtlLGtlPXgrUHwwfXRoaXMuX2E9a2UrdGhpcy5fYXwwLHRoaXMuX2I9U2UrdGhpcy5fYnwwLHRoaXMuX2M9SWUrdGhpcy5fY3wwLHRoaXMuX2Q9VGUrdGhpcy5fZHwwLHRoaXMuX2U9RWUrdGhpcy5fZXww''@;'; + put 'put ''LHRoaXMuX2Y9aGUrdGhpcy5fZnwwLHRoaXMuX2c9Tyt0aGlzLl9nfDAsdGhpcy5faD16K3RoaXMuX2h8MH0sZWUucHJvdG90eXBlLl9oYXNoPWZ1bmN0aW9uKCl7dmFyIGRlPVkuYWxsb2NVbnNhZmUoMzIpO3JldHVybiBkZS53cml0ZUludDMyQkUodGhpcy5fYSwwKSxkZS53cml0ZUludDMy''@;'; + put 'put ''QkUodGhpcy5fYiw0KSxkZS53cml0ZUludDMyQkUodGhpcy5fYyw4KSxkZS53cml0ZUludDMyQkUodGhpcy5fZCwxMiksZGUud3JpdGVJbnQzMkJFKHRoaXMuX2UsMTYpLGRlLndyaXRlSW50MzJCRSh0aGlzLl9mLDIwKSxkZS53cml0ZUludDMyQkUodGhpcy5fZywyNCksZGUud3JpdGVJbnQz''@;'; + put 'put ''MkJFKHRoaXMuX2gsMjgpLGRlfSxVLmV4cG9ydHM9ZWV9LDE2ODY6KFUsUSxaKT0+e3ZhciBpZT1aKDU3MTcpLGFlPVooNzgxNiksWT1aKDQxODkpLFc9Wig5NTA5KS5CdWZmZXIsTj1uZXcgQXJyYXkoMTYwKTtmdW5jdGlvbiBlZSgpe3RoaXMuaW5pdCgpLHRoaXMuX3c9TixZLmNhbGwodGhp''@;'; + put 'put ''cywxMjgsMTEyKX1pZShlZSxhZSksZWUucHJvdG90eXBlLmluaXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYWg9MzQxODA3MDM2NSx0aGlzLl9iaD0xNjU0MjcwMjUwLHRoaXMuX2NoPTI0Mzg1MjkzNzAsdGhpcy5fZGg9MzU1NDYyMzYwLHRoaXMuX2VoPTE3MzE0MDU0MTUsdGhpcy5fZmg9''@;'; + put 'put ''MjM5NDE4MDIzMSx0aGlzLl9naD0zNjc1MDA4NTI1LHRoaXMuX2hoPTEyMDMwNjI4MTMsdGhpcy5fYWw9MzIzODM3MTAzMix0aGlzLl9ibD05MTQxNTA2NjMsdGhpcy5fY2w9ODEyNzAyOTk5LHRoaXMuX2RsPTQxNDQ5MTI2OTcsdGhpcy5fZWw9NDI5MDc3NTg1Nyx0aGlzLl9mbD0xNzUwNjAz''@;'; + put 'put ''MDI1LHRoaXMuX2dsPTE2OTQwNzY4MzksdGhpcy5faGw9MzIwNDA3NTQyOCx0aGlzfSxlZS5wcm90b3R5cGUuX2hhc2g9ZnVuY3Rpb24oKXt2YXIgcT1XLmFsbG9jVW5zYWZlKDQ4KTtmdW5jdGlvbiBKKHNlLG9lLGNlKXtxLndyaXRlSW50MzJCRShzZSxjZSkscS53cml0ZUludDMyQkUob2Us''@;'; + put 'put ''Y2UrNCl9cmV0dXJuIEoodGhpcy5fYWgsdGhpcy5fYWwsMCksSih0aGlzLl9iaCx0aGlzLl9ibCw4KSxKKHRoaXMuX2NoLHRoaXMuX2NsLDE2KSxKKHRoaXMuX2RoLHRoaXMuX2RsLDI0KSxKKHRoaXMuX2VoLHRoaXMuX2VsLDMyKSxKKHRoaXMuX2ZoLHRoaXMuX2ZsLDQwKSxxfSxVLmV4cG9y''@;'; + put 'put ''dHM9ZWV9LDc4MTY6KFUsUSxaKT0+e3ZhciBpZT1aKDU3MTcpLGFlPVooNDE4OSksWT1aKDk1MDkpLkJ1ZmZlcixXPVsxMTE2MzUyNDA4LDM2MDk3Njc0NTgsMTg5OTQ0NzQ0MSw2MDI4OTE3MjUsMzA0OTMyMzQ3MSwzOTY0NDg0Mzk5LDM5MjEwMDk1NzMsMjE3MzI5NTU0OCw5NjE5ODcxNjMs''@;'; + put 'put ''NDA4MTYyODQ3MiwxNTA4OTcwOTkzLDMwNTM4MzQyNjUsMjQ1MzYzNTc0OCwyOTM3NjcxNTc5LDI4NzA3NjMyMjEsMzY2NDYwOTU2MCwzNjI0MzgxMDgwLDI3MzQ4ODMzOTQsMzEwNTk4NDAxLDExNjQ5OTY1NDIsNjA3MjI1Mjc4LDEzMjM2MTA3NjQsMTQyNjg4MTk4NywzNTkwMzA0OTk0LDE5''@;'; + put 'put ''MjUwNzgzODgsNDA2ODE4MjM4MywyMTYyMDc4MjA2LDk5MTMzNjExMywyNjE0ODg4MTAzLDYzMzgwMzMxNywzMjQ4MjIyNTgwLDM0Nzk3NzQ4NjgsMzgzNTM5MDQwMSwyNjY2NjEzNDU4LDQwMjIyMjQ3NzQsOTQ0NzExMTM5LDI2NDM0NzA3OCwyMzQxMjYyNzczLDYwNDgwNzYyOCwyMDA3ODAw''@;'; + put 'put ''OTMzLDc3MDI1NTk4MywxNDk1OTkwOTAxLDEyNDkxNTAxMjIsMTg1NjQzMTIzNSwxNTU1MDgxNjkyLDMxNzUyMTgxMzIsMTk5NjA2NDk4NiwyMTk4OTUwODM3LDI1NTQyMjA4ODIsMzk5OTcxOTMzOSwyODIxODM0MzQ5LDc2Njc4NDAxNiwyOTUyOTk2ODA4LDI1NjY1OTQ4NzksMzIxMDMxMzY3''@;'; + put 'put ''MSwzMjAzMzM3OTU2LDMzMzY1NzE4OTEsMTAzNDQ1NzAyNiwzNTg0NTI4NzExLDI0NjY5NDg5MDEsMTEzOTI2OTkzLDM3NTgzMjYzODMsMzM4MjQxODk1LDE2ODcxNzkzNiw2NjYzMDcyMDUsMTE4ODE3OTk2NCw3NzM1Mjk5MTIsMTU0NjA0NTczNCwxMjk0NzU3MzcyLDE1MjI4MDU0ODUsMTM5''@;'; + put 'put ''NjE4MjI5MSwyNjQzODMzODIzLDE2OTUxODM3MDAsMjM0MzUyNzM5MCwxOTg2NjYxMDUxLDEwMTQ0Nzc0ODAsMjE3NzAyNjM1MCwxMjA2NzU5MTQyLDI0NTY5NTYwMzcsMzQ0MDc3NjI3LDI3MzA0ODU5MjEsMTI5MDg2MzQ2MCwyODIwMzAyNDExLDMxNTg0NTQyNzMsMzI1OTczMDgwMCwzNTA1''@;'; + put 'put ''OTUyNjU3LDMzNDU3NjQ3NzEsMTA2MjE3MDA4LDM1MTYwNjU4MTcsMzYwNjAwODM0NCwzNjAwMzUyODA0LDE0MzI3MjU3NzYsNDA5NDU3MTkwOSwxNDY3MDMxNTk0LDI3NTQyMzM0NCw4NTExNjk3MjAsNDMwMjI3NzM0LDMxMDA4MjM3NTIsNTA2OTQ4NjE2LDEzNjMyNTgxOTUsNjU5MDYwNTU2''@;'; + put 'put ''LDM3NTA2ODU1OTMsODgzOTk3ODc3LDM3ODUwNTAyODAsOTU4MTM5NTcxLDMzMTgzMDc0MjcsMTMyMjgyMjIxOCwzODEyNzIzNDAzLDE1MzcwMDIwNjMsMjAwMzAzNDk5NSwxNzQ3ODczNzc5LDM2MDIwMzY4OTksMTk1NTU2MjIyMiwxNTc1OTkwMDEyLDIwMjQxMDQ4MTUsMTEyNTU5MjkyOCwy''@;'; + put 'put ''MjI3NzMwNDUyLDI3MTY5MDQzMDYsMjM2MTg1MjQyNCw0NDI3NzYwNDQsMjQyODQzNjQ3NCw1OTM2OTgzNDQsMjc1NjczNDE4NywzNzMzMTEwMjQ5LDMyMDQwMzE0NzksMjk5OTM1MTU3MywzMzI5MzI1Mjk4LDM4MTU5MjA0MjcsMzM5MTU2OTYxNCwzOTI4MzgzOTAwLDM1MTUyNjcyNzEsNTY2''@;'; + put 'put ''MjgwNzExLDM5NDAxODc2MDYsMzQ1NDA2OTUzNCw0MTE4NjMwMjcxLDQwMDAyMzk5OTIsMTE2NDE4NDc0LDE5MTQxMzg1NTQsMTc0MjkyNDIxLDI3MzEwNTUyNzAsMjg5MzgwMzU2LDMyMDM5OTMwMDYsNDYwMzkzMjY5LDMyMDYyMDMxNSw2ODU0NzE3MzMsNTg3NDk2ODM2LDg1MjE0Mjk3MSwx''@;'; + put 'put ''MDg2NzkyODUxLDEwMTcwMzYyOTgsMzY1NTQzMTAwLDExMjYwMDA1ODAsMjYxODI5NzY3NiwxMjg4MDMzNDcwLDM0MDk4NTUxNTgsMTUwMTUwNTk0OCw0MjM0NTA5ODY2LDE2MDcxNjc5MTUsOTg3MTY3NDY4LDE4MTY0MDIzMTYsMTI0NjE4OTU5MV0sTj1uZXcgQXJyYXkoMTYwKTtmdW5jdGlv''@;'; + put 'put ''biBlZSgpe3RoaXMuaW5pdCgpLHRoaXMuX3c9TixhZS5jYWxsKHRoaXMsMTI4LDExMil9ZnVuY3Rpb24gcShTZSxJZSxUZSl7cmV0dXJuIFRlXlNlJihJZV5UZSl9ZnVuY3Rpb24gSihTZSxJZSxUZSl7cmV0dXJuIFNlJkllfFRlJihTZXxJZSl9ZnVuY3Rpb24gc2UoU2UsSWUpe3JldHVybihT''@;'; + put 'put ''ZT4+PjI4fEllPDw0KV4oSWU+Pj4yfFNlPDwzMCleKEllPj4+N3xTZTw8MjUpfWZ1bmN0aW9uIG9lKFNlLEllKXtyZXR1cm4oU2U+Pj4xNHxJZTw8MTgpXihTZT4+PjE4fEllPDwxNCleKEllPj4+OXxTZTw8MjMpfWZ1bmN0aW9uIGNlKFNlLEllKXtyZXR1cm4oU2U+Pj4xfEllPDwzMSleKFNl''@;'; + put 'put ''Pj4+OHxJZTw8MjQpXlNlPj4+N31mdW5jdGlvbiBkZShTZSxJZSl7cmV0dXJuKFNlPj4+MXxJZTw8MzEpXihTZT4+Pjh8SWU8PDI0KV4oU2U+Pj43fEllPDwyNSl9ZnVuY3Rpb24gdmUoU2UsSWUpe3JldHVybihTZT4+PjE5fEllPDwxMyleKEllPj4+Mjl8U2U8PDMpXlNlPj4+Nn1mdW5jdGlv''@;'; + put 'put ''biBBZShTZSxJZSl7cmV0dXJuKFNlPj4+MTl8SWU8PDEzKV4oSWU+Pj4yOXxTZTw8MyleKFNlPj4+NnxJZTw8MjYpfWZ1bmN0aW9uIGtlKFNlLEllKXtyZXR1cm4gU2U+Pj4wPEllPj4+MD8xOjB9aWUoZWUsYWUpLGVlLnByb3RvdHlwZS5pbml0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2Fo''@;'; + put 'put ''PTE3NzkwMzM3MDMsdGhpcy5fYmg9MzE0NDEzNDI3Nyx0aGlzLl9jaD0xMDEzOTA0MjQyLHRoaXMuX2RoPTI3NzM0ODA3NjIsdGhpcy5fZWg9MTM1OTg5MzExOSx0aGlzLl9maD0yNjAwODIyOTI0LHRoaXMuX2doPTUyODczNDYzNSx0aGlzLl9oaD0xNTQxNDU5MjI1LHRoaXMuX2FsPTQwODky''@;'; + put 'put ''MzU3MjAsdGhpcy5fYmw9MjIyNzg3MzU5NSx0aGlzLl9jbD00MjcxMTc1NzIzLHRoaXMuX2RsPTE1OTU3NTAxMjksdGhpcy5fZWw9MjkxNzU2NTEzNyx0aGlzLl9mbD03MjU1MTExOTksdGhpcy5fZ2w9NDIxNTM4OTU0Nyx0aGlzLl9obD0zMjcwMzMyMDksdGhpc30sZWUucHJvdG90eXBlLl91''@;'; + put 'put ''cGRhdGU9ZnVuY3Rpb24oU2Upe2Zvcih2YXIgSWU9dGhpcy5fdyxUZT0wfHRoaXMuX2FoLEVlPTB8dGhpcy5fYmgsaGU9MHx0aGlzLl9jaCxPPTB8dGhpcy5fZGgsej0wfHRoaXMuX2VoLG5lPTB8dGhpcy5fZmgsdGU9MHx0aGlzLl9naCx4PTB8dGhpcy5faGgsUD0wfHRoaXMuX2FsLFY9MHx0''@;'; + put 'put ''aGlzLl9ibCxUPTB8dGhpcy5fY2wsUz0wfHRoaXMuX2RsLEY9MHx0aGlzLl9lbCx5ZT0wfHRoaXMuX2ZsLENlPTB8dGhpcy5fZ2wsRGU9MHx0aGlzLl9obCxQZT0wO1BlPDMyO1BlKz0yKUllW1BlXT1TZS5yZWFkSW50MzJCRSg0KlBlKSxJZVtQZSsxXT1TZS5yZWFkSW50MzJCRSg0KlBlKzQp''@;'; + put 'put ''O2Zvcig7UGU8MTYwO1BlKz0yKXt2YXIgUWU9SWVbUGUtMzBdLCRlPUllW1BlLTMwKzFdLGd0PWNlKFFlLCRlKSx3dD1kZSgkZSxRZSksbXQ9dmUoUWU9SWVbUGUtNF0sJGU9SWVbUGUtNCsxXSksdnQ9QWUoJGUsUWUpLEJ0PUllW1BlLTMyXSxvbj1JZVtQZS0zMisxXSxfdD13dCtJZVtQZS0x''@;'; + put 'put ''NCsxXXwwLHR0PWd0K0llW1BlLTE0XStrZShfdCx3dCl8MDt0dD0odHQ9dHQrbXQra2UoX3Q9X3QrdnR8MCx2dCl8MCkrQnQra2UoX3Q9X3Qrb258MCxvbil8MCxJZVtQZV09dHQsSWVbUGUrMV09X3R9Zm9yKHZhciBldD0wO2V0PDE2MDtldCs9Mil7dHQ9SWVbZXRdLF90PUllW2V0KzFdO3Zh''@;'; + put 'put ''ciBhdD1KKFRlLEVlLGhlKSxMdD1KKFAsVixUKSxDdD1zZShUZSxQKSxmdD1zZShQLFRlKSxIdD1vZSh6LEYpLEdlPW9lKEYseiksVWU9V1tldF0seXQ9V1tldCsxXSxqdD1xKHosbmUsdGUpLFF0PXEoRix5ZSxDZSksZ249RGUrR2V8MCxkbj14K0h0K2tlKGduLERlKXwwO2RuPShkbj0oZG49''@;'; + put 'put ''ZG4ranQra2UoZ249Z24rUXR8MCxRdCl8MCkrVWUra2UoZ249Z24reXR8MCx5dCl8MCkrdHQra2UoZ249Z24rX3R8MCxfdCl8MDt2YXIgeW49ZnQrTHR8MCxsbj1DdCthdCtrZSh5bixmdCl8MDt4PXRlLERlPUNlLHRlPW5lLENlPXllLG5lPXoseWU9Rix6PU8rZG4ra2UoRj1TK2dufDAsUyl8''@;'; + put 'put ''MCxPPWhlLFM9VCxoZT1FZSxUPVYsRWU9VGUsVj1QLFRlPWRuK2xuK2tlKFA9Z24reW58MCxnbil8MH10aGlzLl9hbD10aGlzLl9hbCtQfDAsdGhpcy5fYmw9dGhpcy5fYmwrVnwwLHRoaXMuX2NsPXRoaXMuX2NsK1R8MCx0aGlzLl9kbD10aGlzLl9kbCtTfDAsdGhpcy5fZWw9dGhpcy5fZWwr''@;'; + put 'put ''RnwwLHRoaXMuX2ZsPXRoaXMuX2ZsK3llfDAsdGhpcy5fZ2w9dGhpcy5fZ2wrQ2V8MCx0aGlzLl9obD10aGlzLl9obCtEZXwwLHRoaXMuX2FoPXRoaXMuX2FoK1RlK2tlKHRoaXMuX2FsLFApfDAsdGhpcy5fYmg9dGhpcy5fYmgrRWUra2UodGhpcy5fYmwsVil8MCx0aGlzLl9jaD10aGlzLl9j''@;'; + put 'put ''aCtoZStrZSh0aGlzLl9jbCxUKXwwLHRoaXMuX2RoPXRoaXMuX2RoK08ra2UodGhpcy5fZGwsUyl8MCx0aGlzLl9laD10aGlzLl9laCt6K2tlKHRoaXMuX2VsLEYpfDAsdGhpcy5fZmg9dGhpcy5fZmgrbmUra2UodGhpcy5fZmwseWUpfDAsdGhpcy5fZ2g9dGhpcy5fZ2grdGUra2UodGhpcy5f''@;'; + put 'put ''Z2wsQ2UpfDAsdGhpcy5faGg9dGhpcy5faGgreCtrZSh0aGlzLl9obCxEZSl8MH0sZWUucHJvdG90eXBlLl9oYXNoPWZ1bmN0aW9uKCl7dmFyIFNlPVkuYWxsb2NVbnNhZmUoNjQpO2Z1bmN0aW9uIEllKFRlLEVlLGhlKXtTZS53cml0ZUludDMyQkUoVGUsaGUpLFNlLndyaXRlSW50MzJCRShF''@;'; + put 'put ''ZSxoZSs0KX1yZXR1cm4gSWUodGhpcy5fYWgsdGhpcy5fYWwsMCksSWUodGhpcy5fYmgsdGhpcy5fYmwsOCksSWUodGhpcy5fY2gsdGhpcy5fY2wsMTYpLEllKHRoaXMuX2RoLHRoaXMuX2RsLDI0KSxJZSh0aGlzLl9laCx0aGlzLl9lbCwzMiksSWUodGhpcy5fZmgsdGhpcy5fZmwsNDApLEll''@;'; + put 'put ''KHRoaXMuX2doLHRoaXMuX2dsLDQ4KSxJZSh0aGlzLl9oaCx0aGlzLl9obCw1NiksU2V9LFUuZXhwb3J0cz1lZX0sMjgzMDooVSxRLFopPT57VS5leHBvcnRzPWFlO3ZhciBpZT1aKDcxODcpLkV2ZW50RW1pdHRlcjtmdW5jdGlvbiBhZSgpe2llLmNhbGwodGhpcyl9Wig1NzE3KShhZSxpZSks''@;'; + put 'put ''YWUuUmVhZGFibGU9Wig5NDgxKSxhZS5Xcml0YWJsZT1aKDQyMjkpLGFlLkR1cGxleD1aKDY3NTMpLGFlLlRyYW5zZm9ybT1aKDQ2MDUpLGFlLlBhc3NUaHJvdWdoPVooMjcyNSksYWUuZmluaXNoZWQ9Wig4NjEwKSxhZS5waXBlbGluZT1aKDk5NDYpLGFlLlN0cmVhbT1hZSxhZS5wcm90b3R5''@;'; + put 'put ''cGUucGlwZT1mdW5jdGlvbihZLFcpe3ZhciBOPXRoaXM7ZnVuY3Rpb24gZWUodmUpe1kud3JpdGFibGUmJiExPT09WS53cml0ZSh2ZSkmJk4ucGF1c2UmJk4ucGF1c2UoKX1mdW5jdGlvbiBxKCl7Ti5yZWFkYWJsZSYmTi5yZXN1bWUmJk4ucmVzdW1lKCl9Ti5vbigiZGF0YSIsZWUpLFkub24o''@;'; + put 'put ''ImRyYWluIixxKSxZLl9pc1N0ZGlvfHxXJiYhMT09PVcuZW5kfHwoTi5vbigiZW5kIixzZSksTi5vbigiY2xvc2UiLG9lKSk7dmFyIEo9ITE7ZnVuY3Rpb24gc2UoKXtKfHwoSj0hMCxZLmVuZCgpKX1mdW5jdGlvbiBvZSgpe0p8fChKPSEwLCJmdW5jdGlvbiI9PXR5cGVvZiBZLmRlc3Ryb3km''@;'; + put 'put ''JlkuZGVzdHJveSgpKX1mdW5jdGlvbiBjZSh2ZSl7aWYoZGUoKSwwPT09aWUubGlzdGVuZXJDb3VudCh0aGlzLCJlcnJvciIpKXRocm93IHZlfWZ1bmN0aW9uIGRlKCl7Ti5yZW1vdmVMaXN0ZW5lcigiZGF0YSIsZWUpLFkucmVtb3ZlTGlzdGVuZXIoImRyYWluIixxKSxOLnJlbW92ZUxpc3Rl''@;'; + put 'put ''bmVyKCJlbmQiLHNlKSxOLnJlbW92ZUxpc3RlbmVyKCJjbG9zZSIsb2UpLE4ucmVtb3ZlTGlzdGVuZXIoImVycm9yIixjZSksWS5yZW1vdmVMaXN0ZW5lcigiZXJyb3IiLGNlKSxOLnJlbW92ZUxpc3RlbmVyKCJlbmQiLGRlKSxOLnJlbW92ZUxpc3RlbmVyKCJjbG9zZSIsZGUpLFkucmVtb3Zl''@;'; + put 'put ''TGlzdGVuZXIoImNsb3NlIixkZSl9cmV0dXJuIE4ub24oImVycm9yIixjZSksWS5vbigiZXJyb3IiLGNlKSxOLm9uKCJlbmQiLGRlKSxOLm9uKCJjbG9zZSIsZGUpLFkub24oImNsb3NlIixkZSksWS5lbWl0KCJwaXBlIixOKSxZfX0sMjU1MzooVSxRLFopPT57InVzZSBzdHJpY3QiO3ZhciBp''@;'; + put 'put ''ZT1aKDM5NikuQnVmZmVyLGFlPWllLmlzRW5jb2Rpbmd8fGZ1bmN0aW9uKGRlKXtzd2l0Y2goKGRlPSIiK2RlKSYmZGUudG9Mb3dlckNhc2UoKSl7Y2FzZSJoZXgiOmNhc2UidXRmOCI6Y2FzZSJ1dGYtOCI6Y2FzZSJhc2NpaSI6Y2FzZSJiaW5hcnkiOmNhc2UiYmFzZTY0IjpjYXNlInVjczIi''@;'; + put 'put ''OmNhc2UidWNzLTIiOmNhc2UidXRmMTZsZSI6Y2FzZSJ1dGYtMTZsZSI6Y2FzZSJyYXciOnJldHVybiEwO2RlZmF1bHQ6cmV0dXJuITF9fTtmdW5jdGlvbiBZKGRlKXt2YXIgdmU7c3dpdGNoKHRoaXMuZW5jb2Rpbmc9ZnVuY3Rpb24oQWUpe3ZhciBrZT1mdW5jdGlvbihTZSl7aWYoIVNlKXJl''@;'; + put 'put ''dHVybiJ1dGY4Ijtmb3IodmFyIEllOzspc3dpdGNoKFNlKXtjYXNlInV0ZjgiOmNhc2UidXRmLTgiOnJldHVybiJ1dGY4IjtjYXNlInVjczIiOmNhc2UidWNzLTIiOmNhc2UidXRmMTZsZSI6Y2FzZSJ1dGYtMTZsZSI6cmV0dXJuInV0ZjE2bGUiO2Nhc2UibGF0aW4xIjpjYXNlImJpbmFyeSI6''@;'; + put 'put ''cmV0dXJuImxhdGluMSI7Y2FzZSJiYXNlNjQiOmNhc2UiYXNjaWkiOmNhc2UiaGV4IjpyZXR1cm4gU2U7ZGVmYXVsdDppZihJZSlyZXR1cm47U2U9KCIiK1NlKS50b0xvd2VyQ2FzZSgpLEllPSEwfX0oQWUpO2lmKCJzdHJpbmciIT10eXBlb2Yga2UmJihpZS5pc0VuY29kaW5nPT09YWV8fCFh''@;'; + put 'put ''ZShBZSkpKXRocm93IG5ldyBFcnJvcigiVW5rbm93biBlbmNvZGluZzogIitBZSk7cmV0dXJuIGtlfHxBZX0oZGUpLHRoaXMuZW5jb2Rpbmcpe2Nhc2UidXRmMTZsZSI6dGhpcy50ZXh0PWVlLHRoaXMuZW5kPXEsdmU9NDticmVhaztjYXNlInV0ZjgiOnRoaXMuZmlsbExhc3Q9Tix2ZT00O2Jy''@;'; + put 'put ''ZWFrO2Nhc2UiYmFzZTY0Ijp0aGlzLnRleHQ9Six0aGlzLmVuZD1zZSx2ZT0zO2JyZWFrO2RlZmF1bHQ6cmV0dXJuIHRoaXMud3JpdGU9b2Usdm9pZCh0aGlzLmVuZD1jZSl9dGhpcy5sYXN0TmVlZD0wLHRoaXMubGFzdFRvdGFsPTAsdGhpcy5sYXN0Q2hhcj1pZS5hbGxvY1Vuc2FmZSh2ZSl9''@;'; + put 'put ''ZnVuY3Rpb24gVyhkZSl7cmV0dXJuIGRlPD0xMjc/MDpkZT4+NT09Nj8yOmRlPj40PT0xND8zOmRlPj4zPT0zMD80OmRlPj42PT0yPy0xOi0yfWZ1bmN0aW9uIE4oZGUpe3ZhciB2ZT10aGlzLmxhc3RUb3RhbC10aGlzLmxhc3ROZWVkLEFlPWZ1bmN0aW9uKGtlLFNlLEllKXtpZigxMjghPSgx''@;'; + put 'put ''OTImU2VbMF0pKXJldHVybiBrZS5sYXN0TmVlZD0wLCJcdWZmZmQiO2lmKGtlLmxhc3ROZWVkPjEmJlNlLmxlbmd0aD4xKXtpZigxMjghPSgxOTImU2VbMV0pKXJldHVybiBrZS5sYXN0TmVlZD0xLCJcdWZmZmQiO2lmKGtlLmxhc3ROZWVkPjImJlNlLmxlbmd0aD4yJiYxMjghPSgxOTImU2Vb''@;'; + put 'put ''Ml0pKXJldHVybiBrZS5sYXN0TmVlZD0yLCJcdWZmZmQifX0odGhpcyxkZSk7cmV0dXJuIHZvaWQgMCE9PUFlP0FlOnRoaXMubGFzdE5lZWQ8PWRlLmxlbmd0aD8oZGUuY29weSh0aGlzLmxhc3RDaGFyLHZlLDAsdGhpcy5sYXN0TmVlZCksdGhpcy5sYXN0Q2hhci50b1N0cmluZyh0aGlzLmVu''@;'; + put 'put ''Y29kaW5nLDAsdGhpcy5sYXN0VG90YWwpKTooZGUuY29weSh0aGlzLmxhc3RDaGFyLHZlLDAsZGUubGVuZ3RoKSx2b2lkKHRoaXMubGFzdE5lZWQtPWRlLmxlbmd0aCkpfWZ1bmN0aW9uIGVlKGRlLHZlKXtpZigoZGUubGVuZ3RoLXZlKSUyPT0wKXt2YXIgQWU9ZGUudG9TdHJpbmcoInV0ZjE2''@;'; + put 'put ''bGUiLHZlKTtpZihBZSl7dmFyIGtlPUFlLmNoYXJDb2RlQXQoQWUubGVuZ3RoLTEpO2lmKGtlPj01NTI5NiYma2U8PTU2MzE5KXJldHVybiB0aGlzLmxhc3ROZWVkPTIsdGhpcy5sYXN0VG90YWw9NCx0aGlzLmxhc3RDaGFyWzBdPWRlW2RlLmxlbmd0aC0yXSx0aGlzLmxhc3RDaGFyWzFdPWRl''@;'; + put 'put ''W2RlLmxlbmd0aC0xXSxBZS5zbGljZSgwLC0xKX1yZXR1cm4gQWV9cmV0dXJuIHRoaXMubGFzdE5lZWQ9MSx0aGlzLmxhc3RUb3RhbD0yLHRoaXMubGFzdENoYXJbMF09ZGVbZGUubGVuZ3RoLTFdLGRlLnRvU3RyaW5nKCJ1dGYxNmxlIix2ZSxkZS5sZW5ndGgtMSl9ZnVuY3Rpb24gcShkZSl7''@;'; + put 'put ''dmFyIHZlPWRlJiZkZS5sZW5ndGg/dGhpcy53cml0ZShkZSk6IiI7cmV0dXJuIHRoaXMubGFzdE5lZWQ/dmUrdGhpcy5sYXN0Q2hhci50b1N0cmluZygidXRmMTZsZSIsMCx0aGlzLmxhc3RUb3RhbC10aGlzLmxhc3ROZWVkKTp2ZX1mdW5jdGlvbiBKKGRlLHZlKXt2YXIgQWU9KGRlLmxlbmd0''@;'; + put 'put ''aC12ZSklMztyZXR1cm4gMD09PUFlP2RlLnRvU3RyaW5nKCJiYXNlNjQiLHZlKToodGhpcy5sYXN0TmVlZD0zLUFlLHRoaXMubGFzdFRvdGFsPTMsMT09PUFlP3RoaXMubGFzdENoYXJbMF09ZGVbZGUubGVuZ3RoLTFdOih0aGlzLmxhc3RDaGFyWzBdPWRlW2RlLmxlbmd0aC0yXSx0aGlzLmxh''@;'; + put 'put ''c3RDaGFyWzFdPWRlW2RlLmxlbmd0aC0xXSksZGUudG9TdHJpbmcoImJhc2U2NCIsdmUsZGUubGVuZ3RoLUFlKSl9ZnVuY3Rpb24gc2UoZGUpe3ZhciB2ZT1kZSYmZGUubGVuZ3RoP3RoaXMud3JpdGUoZGUpOiIiO3JldHVybiB0aGlzLmxhc3ROZWVkP3ZlK3RoaXMubGFzdENoYXIudG9TdHJp''@;'; + put 'put ''bmcoImJhc2U2NCIsMCwzLXRoaXMubGFzdE5lZWQpOnZlfWZ1bmN0aW9uIG9lKGRlKXtyZXR1cm4gZGUudG9TdHJpbmcodGhpcy5lbmNvZGluZyl9ZnVuY3Rpb24gY2UoZGUpe3JldHVybiBkZSYmZGUubGVuZ3RoP3RoaXMud3JpdGUoZGUpOiIifVEuU3RyaW5nRGVjb2Rlcj1ZLFkucHJvdG90''@;'; + put 'put ''eXBlLndyaXRlPWZ1bmN0aW9uKGRlKXtpZigwPT09ZGUubGVuZ3RoKXJldHVybiIiO3ZhciB2ZSxBZTtpZih0aGlzLmxhc3ROZWVkKXtpZih2b2lkIDA9PT0odmU9dGhpcy5maWxsTGFzdChkZSkpKXJldHVybiIiO0FlPXRoaXMubGFzdE5lZWQsdGhpcy5sYXN0TmVlZD0wfWVsc2UgQWU9MDty''@;'; + put 'put ''ZXR1cm4gQWU8ZGUubGVuZ3RoP3ZlP3ZlK3RoaXMudGV4dChkZSxBZSk6dGhpcy50ZXh0KGRlLEFlKTp2ZXx8IiJ9LFkucHJvdG90eXBlLmVuZD1mdW5jdGlvbihkZSl7dmFyIHZlPWRlJiZkZS5sZW5ndGg/dGhpcy53cml0ZShkZSk6IiI7cmV0dXJuIHRoaXMubGFzdE5lZWQ/dmUrIlx1ZmZm''@;'; + put 'put ''ZCI6dmV9LFkucHJvdG90eXBlLnRleHQ9ZnVuY3Rpb24oZGUsdmUpe3ZhciBBZT1mdW5jdGlvbihTZSxJZSxUZSl7dmFyIEVlPUllLmxlbmd0aC0xO2lmKEVlPFRlKXJldHVybiAwO3ZhciBoZT1XKEllW0VlXSk7cmV0dXJuIGhlPj0wPyhoZT4wJiYoU2UubGFzdE5lZWQ9aGUtMSksaGUpOi0t''@;'; + put 'put ''RWU8VGV8fC0yPT09aGU/MDooaGU9VyhJZVtFZV0pKT49MD8oaGU+MCYmKFNlLmxhc3ROZWVkPWhlLTIpLGhlKTotLUVlPFRlfHwtMj09PWhlPzA6KGhlPVcoSWVbRWVdKSk+PTA/KGhlPjAmJigyPT09aGU/aGU9MDpTZS5sYXN0TmVlZD1oZS0zKSxoZSk6MH0odGhpcyxkZSx2ZSk7aWYoIXRo''@;'; + put 'put ''aXMubGFzdE5lZWQpcmV0dXJuIGRlLnRvU3RyaW5nKCJ1dGY4Iix2ZSk7dGhpcy5sYXN0VG90YWw9QWU7dmFyIGtlPWRlLmxlbmd0aC0oQWUtdGhpcy5sYXN0TmVlZCk7cmV0dXJuIGRlLmNvcHkodGhpcy5sYXN0Q2hhciwwLGtlKSxkZS50b1N0cmluZygidXRmOCIsdmUsa2UpfSxZLnByb3Rv''@;'; + put 'put ''dHlwZS5maWxsTGFzdD1mdW5jdGlvbihkZSl7aWYodGhpcy5sYXN0TmVlZDw9ZGUubGVuZ3RoKXJldHVybiBkZS5jb3B5KHRoaXMubGFzdENoYXIsdGhpcy5sYXN0VG90YWwtdGhpcy5sYXN0TmVlZCwwLHRoaXMubGFzdE5lZWQpLHRoaXMubGFzdENoYXIudG9TdHJpbmcodGhpcy5lbmNvZGlu''@;'; + put 'put ''ZywwLHRoaXMubGFzdFRvdGFsKTtkZS5jb3B5KHRoaXMubGFzdENoYXIsdGhpcy5sYXN0VG90YWwtdGhpcy5sYXN0TmVlZCwwLGRlLmxlbmd0aCksdGhpcy5sYXN0TmVlZC09ZGUubGVuZ3RofX0sMzk2OihVLFEsWik9Pnt2YXIgaWU9Wig4NzY0KSxhZT1pZS5CdWZmZXI7ZnVuY3Rpb24gWShO''@;'; + put 'put ''LGVlKXtmb3IodmFyIHEgaW4gTillZVtxXT1OW3FdfWZ1bmN0aW9uIFcoTixlZSxxKXtyZXR1cm4gYWUoTixlZSxxKX1hZS5mcm9tJiZhZS5hbGxvYyYmYWUuYWxsb2NVbnNhZmUmJmFlLmFsbG9jVW5zYWZlU2xvdz9VLmV4cG9ydHM9aWU6KFkoaWUsUSksUS5CdWZmZXI9VyksVy5wcm90b3R5''@;'; + put 'put ''cGU9T2JqZWN0LmNyZWF0ZShhZS5wcm90b3R5cGUpLFkoYWUsVyksVy5mcm9tPWZ1bmN0aW9uKE4sZWUscSl7aWYoIm51bWJlciI9PXR5cGVvZiBOKXRocm93IG5ldyBUeXBlRXJyb3IoIkFyZ3VtZW50IG11c3Qgbm90IGJlIGEgbnVtYmVyIik7cmV0dXJuIGFlKE4sZWUscSl9LFcuYWxsb2M9''@;'; + put 'put ''ZnVuY3Rpb24oTixlZSxxKXtpZigibnVtYmVyIiE9dHlwZW9mIE4pdGhyb3cgbmV3IFR5cGVFcnJvcigiQXJndW1lbnQgbXVzdCBiZSBhIG51bWJlciIpO3ZhciBKPWFlKE4pO3JldHVybiB2b2lkIDAhPT1lZT8ic3RyaW5nIj09dHlwZW9mIHE/Si5maWxsKGVlLHEpOkouZmlsbChlZSk6Si5m''@;'; + put 'put ''aWxsKDApLEp9LFcuYWxsb2NVbnNhZmU9ZnVuY3Rpb24oTil7aWYoIm51bWJlciIhPXR5cGVvZiBOKXRocm93IG5ldyBUeXBlRXJyb3IoIkFyZ3VtZW50IG11c3QgYmUgYSBudW1iZXIiKTtyZXR1cm4gYWUoTil9LFcuYWxsb2NVbnNhZmVTbG93PWZ1bmN0aW9uKE4pe2lmKCJudW1iZXIiIT10''@;'; + put 'put ''eXBlb2YgTil0aHJvdyBuZXcgVHlwZUVycm9yKCJBcmd1bWVudCBtdXN0IGJlIGEgbnVtYmVyIik7cmV0dXJuIGllLlNsb3dCdWZmZXIoTil9fSw3ODU3OihVLFEsWik9PnsidXNlIHN0cmljdCI7Y29uc3QgaWU9WigzNjg5KSxhZT1aKDg1NzUpLlFjLFk9Wig5NTM5KSxXPVooNzUyKSxOPVoo''@;'; + put 'put ''MjIyNCkueSxlZT1aKDU3NjEpLm0scT1aKDg5NzEpLlUsSj1aKDQ1Nikse2Zyb21DYWxsYmFjazpzZX09Wig3MDQxKSxvZT0vXltceDIxXHgyMy1ceDJCXHgyRC1ceDNBXHgzQy1ceDVCXHg1RC1ceDdFXSskLyxjZT0vW1x4MDAtXHgxRl0vLGRlPVsiXG4iLCJcciIsIlwwIl0sdmU9L1tceDIw''@;'; + put 'put ''LVx4M0FceDNDLVx4N0VdKy8sQWU9L1tceDA5XHgyMC1ceDJGXHgzQi1ceDQwXHg1Qi1ceDYwXHg3Qi1ceDdFXS8sa2U9e2phbjowLGZlYjoxLG1hcjoyLGFwcjozLG1heTo0LGp1bjo1LGp1bDo2LGF1Zzo3LHNlcDo4LG9jdDo5LG5vdjoxMCxkZWM6MTF9LFNlPTIxNDc0ODM2NDdlMyxJZT0n''@;'; + put 'put ''SW52YWxpZCBzYW1lU2l0ZUNvbnRleHQgb3B0aW9uIGZvciBnZXRDb29raWVzKCk7IGV4cGVjdGVkIG9uZSBvZiAic3RyaWN0IiwgImxheCIsIG9yICJub25lIic7ZnVuY3Rpb24gVGUobXQpe2NvbnN0IHZ0PVN0cmluZyhtdCkudG9Mb3dlckNhc2UoKTtyZXR1cm4ibm9uZSI9PT12dHx8Imxh''@;'; + put 'put ''eCI9PT12dHx8InN0cmljdCI9PT12dD92dDpudWxsfWNvbnN0IEVlPU9iamVjdC5mcmVlemUoe1NJTEVOVDoic2lsZW50IixTVFJJQ1Q6InN0cmljdCIsRElTQUJMRUQ6InVuc2FmZS1kaXNhYmxlZCJ9KTt2YXIgaGU9Lyg/Ol4oPzoyNVswLTVdfDJbMC00XVxkfDFcZFxkfFsxLTldXGR8XGQp''@;'; + put 'put ''KD86XC4oPzoyNVswLTVdfDJbMC00XVxkfDFcZFxkfFsxLTldXGR8XGQpKXszfSQpfCg/Ol4oPzooPzpbYS1mXGRdezEsNH06KXs3fSg/OlthLWZcZF17MSw0fXw6KXwoPzpbYS1mXGRdezEsNH06KXs2fSg/Oig/OjI1WzAtNV18MlswLTRdXGR8MVxkXGR8WzEtOV1cZHxcZCkoPzpcLig/OjI1''@;'; + put 'put ''WzAtNV18MlswLTRdXGR8MVxkXGR8WzEtOV1cZHxcZCkpezN9fDpbYS1mXGRdezEsNH18Oil8KD86W2EtZlxkXXsxLDR9Oil7NX0oPzo6KD86MjVbMC01XXwyWzAtNF1cZHwxXGRcZHxbMS05XVxkfFxkKSg/OlwuKD86MjVbMC01XXwyWzAtNF1cZHwxXGRcZHxbMS05XVxkfFxkKSl7M318KD86''@;'; + put 'put ''OlthLWZcZF17MSw0fSl7MSwyfXw6KXwoPzpbYS1mXGRdezEsNH06KXs0fSg/Oig/OjpbYS1mXGRdezEsNH0pezAsMX06KD86MjVbMC01XXwyWzAtNF1cZHwxXGRcZHxbMS05XVxkfFxkKSg/OlwuKD86MjVbMC01XXwyWzAtNF1cZHwxXGRcZHxbMS05XVxkfFxkKSl7M318KD86OlthLWZcZF17''@;'; + put 'put ''MSw0fSl7MSwzfXw6KXwoPzpbYS1mXGRdezEsNH06KXszfSg/Oig/OjpbYS1mXGRdezEsNH0pezAsMn06KD86MjVbMC01XXwyWzAtNF1cZHwxXGRcZHxbMS05XVxkfFxkKSg/OlwuKD86MjVbMC01XXwyWzAtNF1cZHwxXGRcZHxbMS05XVxkfFxkKSl7M318KD86OlthLWZcZF17MSw0fSl7MSw0''@;'; + put 'put ''fXw6KXwoPzpbYS1mXGRdezEsNH06KXsyfSg/Oig/OjpbYS1mXGRdezEsNH0pezAsM306KD86MjVbMC01XXwyWzAtNF1cZHwxXGRcZHxbMS05XVxkfFxkKSg/OlwuKD86MjVbMC01XXwyWzAtNF1cZHwxXGRcZHxbMS05XVxkfFxkKSl7M318KD86OlthLWZcZF17MSw0fSl7MSw1fXw6KXwoPzpb''@;'; + put 'put ''YS1mXGRdezEsNH06KXsxfSg/Oig/OjpbYS1mXGRdezEsNH0pezAsNH06KD86MjVbMC01XXwyWzAtNF1cZHwxXGRcZHxbMS05XVxkfFxkKSg/OlwuKD86MjVbMC01XXwyWzAtNF1cZHwxXGRcZHxbMS05XVxkfFxkKSl7M318KD86OlthLWZcZF17MSw0fSl7MSw2fXw6KXwoPzo6KD86KD86Olth''@;'; + put 'put ''LWZcZF17MSw0fSl7MCw1fTooPzoyNVswLTVdfDJbMC00XVxkfDFcZFxkfFsxLTldXGR8XGQpKD86XC4oPzoyNVswLTVdfDJbMC00XVxkfDFcZFxkfFsxLTldXGR8XGQpKXszfXwoPzo6W2EtZlxkXXsxLDR9KXsxLDd9fDopKSkkKS87ZnVuY3Rpb24gTyhtdCx2dCxBdCxodCl7bGV0IEJ0PTA7''@;'; + put 'put ''Zm9yKDtCdDxtdC5sZW5ndGg7KXtjb25zdCBvbj1tdC5jaGFyQ29kZUF0KEJ0KTtpZihvbjw9NDd8fG9uPj01OClicmVhaztCdCsrfXJldHVybiBCdDx2dHx8QnQ+QXQ/bnVsbDpodHx8QnQ9PW10Lmxlbmd0aD9wYXJzZUludChtdC5zdWJzdHIoMCxCdCksMTApOm51bGx9ZnVuY3Rpb24geiht''@;'; + put 'put ''dCl7Y29uc3QgdnQ9bXQuc3BsaXQoIjoiKSxBdD1bMCwwLDBdO2lmKDMhPT12dC5sZW5ndGgpcmV0dXJuIG51bGw7Zm9yKGxldCBodD0wO2h0PDM7aHQrKyl7Y29uc3Qgb249Tyh2dFtodF0sMSwyLDI9PWh0KTtpZihudWxsPT09b24pcmV0dXJuIG51bGw7QXRbaHRdPW9ufXJldHVybiBBdH1m''@;'; + put 'put ''dW5jdGlvbiBuZShtdCl7bXQ9U3RyaW5nKG10KS5zdWJzdHIoMCwzKS50b0xvd2VyQ2FzZSgpO2NvbnN0IHZ0PWtlW210XTtyZXR1cm4gdnQ+PTA/dnQ6bnVsbH1mdW5jdGlvbiB0ZShtdCl7aWYoIW10KXJldHVybjtjb25zdCB2dD1tdC5zcGxpdChBZSk7aWYoIXZ0KXJldHVybjtsZXQgQXQ9''@;'; + put 'put ''bnVsbCxodD1udWxsLEJ0PW51bGwsb249bnVsbCxfdD1udWxsLHR0PW51bGw7Zm9yKGxldCBldD0wO2V0PHZ0Lmxlbmd0aDtldCsrKXtjb25zdCBhdD12dFtldF0udHJpbSgpO2lmKCFhdC5sZW5ndGgpY29udGludWU7bGV0IEx0O251bGw9PT1CdCYmKEx0PXooYXQpLEx0KT8oQXQ9THRbMF0s''@;'; + put 'put ''aHQ9THRbMV0sQnQ9THRbMl0pOm51bGwhPT1vbnx8KEx0PU8oYXQsMSwyLCEwKSxudWxsPT09THQpP251bGwhPT1fdHx8KEx0PW5lKGF0KSxudWxsPT09THQpP251bGw9PT10dCYmKEx0PU8oYXQsMiw0LCEwKSxudWxsIT09THQmJih0dD1MdCx0dD49NzAmJnR0PD05OT90dCs9MTkwMDp0dD49''@;'; + put 'put ''MCYmdHQ8PTY5JiYodHQrPTJlMykpKTpfdD1MdDpvbj1MdH1yZXR1cm4gbnVsbD09PW9ufHxudWxsPT09X3R8fG51bGw9PT10dHx8bnVsbD09PUJ0fHxvbjwxfHxvbj4zMXx8dHQ8MTYwMXx8QXQ+MjN8fGh0PjU5fHxCdD41OT92b2lkIDA6bmV3IERhdGUoRGF0ZS5VVEModHQsX3Qsb24sQXQs''@;'; + put 'put ''aHQsQnQpKX1mdW5jdGlvbiB4KG10KXtyZXR1cm4gbXQudG9VVENTdHJpbmcoKX1mdW5jdGlvbiBQKG10KXtyZXR1cm4gbnVsbD09bXQ/bnVsbDoobXQ9bXQudHJpbSgpLnJlcGxhY2UoL15cLi8sIiIpLGllJiYvW15cdTAwMDEtXHUwMDdmXS8udGVzdChtdCkmJihtdD1pZS50b0FTQ0lJKG10''@;'; + put 'put ''KSksbXQudG9Mb3dlckNhc2UoKSl9ZnVuY3Rpb24gVihtdCx2dCxBdCl7aWYobnVsbD09bXR8fG51bGw9PXZ0KXJldHVybiBudWxsO2lmKCExIT09QXQmJihtdD1QKG10KSx2dD1QKHZ0KSksbXQ9PXZ0KXJldHVybiEwO2NvbnN0IGh0PW10LmluZGV4T2YodnQpO3JldHVybiEoaHQ8PTB8fG10''@;'; + put 'put ''Lmxlbmd0aCE9PXZ0Lmxlbmd0aCtodHx8Ii4iIT09bXQuc3Vic3RyKGh0LTEsMSl8fGhlLnRlc3QobXQpKX1mdW5jdGlvbiBUKG10KXtpZighbXR8fCIvIiE9PW10LnN1YnN0cigwLDEpKXJldHVybiIvIjtpZigiLyI9PT1tdClyZXR1cm4gbXQ7Y29uc3QgdnQ9bXQubGFzdEluZGV4T2YoIi8i''@;'; + put 'put ''KTtyZXR1cm4gMD09PXZ0PyIvIjptdC5zbGljZSgwLHZ0KX1mdW5jdGlvbiBGKG10LHZ0KXt2dCYmIm9iamVjdCI9PXR5cGVvZiB2dHx8KHZ0PXt9KTtjb25zdCBBdD0obXQ9bXQudHJpbSgpKS5pbmRleE9mKCI7IiksaHQ9ZnVuY3Rpb24gUyhtdCx2dCl7bGV0IEF0LGh0LEJ0PShtdD1mdW5j''@;'; + put 'put ''dGlvbihfdCl7Zm9yKGxldCB0dD0wO3R0PGRlLmxlbmd0aDt0dCsrKXtjb25zdCBldD1fdC5pbmRleE9mKGRlW3R0XSk7LTEhPT1ldCYmKF90PV90LnN1YnN0cigwLGV0KSl9cmV0dXJuIF90fShtdCkpLmluZGV4T2YoIj0iKTtpZih2dCkwPT09QnQmJihCdD0obXQ9bXQuc3Vic3RyKDEpKS5p''@;'; + put 'put ''bmRleE9mKCI9IikpO2Vsc2UgaWYoQnQ8PTApcmV0dXJuO2lmKEJ0PD0wPyhBdD0iIixodD1tdC50cmltKCkpOihBdD1tdC5zdWJzdHIoMCxCdCkudHJpbSgpLGh0PW10LnN1YnN0cihCdCsxKS50cmltKCkpLGNlLnRlc3QoQXQpfHxjZS50ZXN0KGh0KSlyZXR1cm47Y29uc3Qgb249bmV3ICRl''@;'; + put 'put ''O3JldHVybiBvbi5rZXk9QXQsb24udmFsdWU9aHQsb259KC0xPT09QXQ/bXQ6bXQuc3Vic3RyKDAsQXQpLCEhdnQubG9vc2UpO2lmKCFodClyZXR1cm47aWYoLTE9PT1BdClyZXR1cm4gaHQ7Y29uc3QgQnQ9bXQuc2xpY2UoQXQrMSkudHJpbSgpO2lmKDA9PT1CdC5sZW5ndGgpcmV0dXJuIGh0''@;'; + put 'put ''O2NvbnN0IG9uPUJ0LnNwbGl0KCI7Iik7Zm9yKDtvbi5sZW5ndGg7KXtjb25zdCBfdD1vbi5zaGlmdCgpLnRyaW0oKTtpZigwPT09X3QubGVuZ3RoKWNvbnRpbnVlO2NvbnN0IHR0PV90LmluZGV4T2YoIj0iKTtsZXQgZXQsYXQ7c3dpdGNoKC0xPT09dHQ/KGV0PV90LGF0PW51bGwpOihldD1f''@;'; + put 'put ''dC5zdWJzdHIoMCx0dCksYXQ9X3Quc3Vic3RyKHR0KzEpKSxldD1ldC50cmltKCkudG9Mb3dlckNhc2UoKSxhdCYmKGF0PWF0LnRyaW0oKSksZXQpe2Nhc2UiZXhwaXJlcyI6aWYoYXQpe2NvbnN0IEx0PXRlKGF0KTtMdCYmKGh0LmV4cGlyZXM9THQpfWJyZWFrO2Nhc2UibWF4LWFnZSI6aWYo''@;'; + put 'put ''YXQmJi9eLT9bMC05XSskLy50ZXN0KGF0KSl7Y29uc3QgTHQ9cGFyc2VJbnQoYXQsMTApO2h0LnNldE1heEFnZShMdCl9YnJlYWs7Y2FzZSJkb21haW4iOmlmKGF0KXtjb25zdCBMdD1hdC50cmltKCkucmVwbGFjZSgvXlwuLywiIik7THQmJihodC5kb21haW49THQudG9Mb3dlckNhc2UoKSl9''@;'; + put 'put ''YnJlYWs7Y2FzZSJwYXRoIjpodC5wYXRoPWF0JiYiLyI9PT1hdFswXT9hdDpudWxsO2JyZWFrO2Nhc2Uic2VjdXJlIjpodC5zZWN1cmU9ITA7YnJlYWs7Y2FzZSJodHRwb25seSI6aHQuaHR0cE9ubHk9ITA7YnJlYWs7Y2FzZSJzYW1lc2l0ZSI6c3dpdGNoKGF0P2F0LnRvTG93ZXJDYXNlKCk6''@;'; + put 'put ''IiIpe2Nhc2Uic3RyaWN0IjpodC5zYW1lU2l0ZT0ic3RyaWN0IjticmVhaztjYXNlImxheCI6aHQuc2FtZVNpdGU9ImxheCJ9YnJlYWs7ZGVmYXVsdDpodC5leHRlbnNpb25zPWh0LmV4dGVuc2lvbnN8fFtdLGh0LmV4dGVuc2lvbnMucHVzaChfdCl9fXJldHVybiBodH1mdW5jdGlvbiB5ZSht''@;'; + put 'put ''dCl7bGV0IHZ0O3RyeXt2dD1KU09OLnBhcnNlKG10KX1jYXRjaChBdCl7cmV0dXJuIEF0fXJldHVybiB2dH1mdW5jdGlvbiBDZShtdCl7aWYoIW10KXJldHVybiBudWxsO2xldCB2dDtpZigic3RyaW5nIj09dHlwZW9mIG10KXtpZih2dD15ZShtdCksdnQgaW5zdGFuY2VvZiBFcnJvcilyZXR1''@;'; + put 'put ''cm4gbnVsbH1lbHNlIHZ0PW10O2NvbnN0IEF0PW5ldyAkZTtmb3IobGV0IGh0PTA7aHQ8JGUuc2VyaWFsaXphYmxlUHJvcGVydGllcy5sZW5ndGg7aHQrKyl7Y29uc3QgQnQ9JGUuc2VyaWFsaXphYmxlUHJvcGVydGllc1todF07dm9pZCAwIT09dnRbQnRdJiZ2dFtCdF0hPT1RZVtCdF0mJihB''@;'; + put 'put ''dFtCdF09ImV4cGlyZXMiPT09QnR8fCJjcmVhdGlvbiI9PT1CdHx8Imxhc3RBY2Nlc3NlZCI9PT1CdD9udWxsPT09dnRbQnRdP251bGw6IkluZmluaXR5Ij09dnRbQnRdPyJJbmZpbml0eSI6bmV3IERhdGUodnRbQnRdKTp2dFtCdF0pfXJldHVybiBBdH1mdW5jdGlvbiBEZShtdCx2dCl7bGV0''@;'; + put 'put ''IEF0PTA7cmV0dXJuIEF0PSh2dC5wYXRoP3Z0LnBhdGgubGVuZ3RoOjApLShtdC5wYXRoP210LnBhdGgubGVuZ3RoOjApLDAhPT1BdHx8KEF0PShtdC5jcmVhdGlvbj9tdC5jcmVhdGlvbi5nZXRUaW1lKCk6U2UpLSh2dC5jcmVhdGlvbj92dC5jcmVhdGlvbi5nZXRUaW1lKCk6U2UpLDAhPT1B''@;'; + put 'put ''dHx8KEF0PW10LmNyZWF0aW9uSW5kZXgtdnQuY3JlYXRpb25JbmRleCkpLEF0fWZ1bmN0aW9uIFBlKG10KXtpZihtdCBpbnN0YW5jZW9mIE9iamVjdClyZXR1cm4gbXQ7dHJ5e210PWRlY29kZVVSSShtdCl9Y2F0Y2godnQpe31yZXR1cm4gYWUobXQpfWNvbnN0IFFlPXtrZXk6IiIsdmFsdWU6''@;'; + put 'put ''IiIsZXhwaXJlczoiSW5maW5pdHkiLG1heEFnZTpudWxsLGRvbWFpbjpudWxsLHBhdGg6bnVsbCxzZWN1cmU6ITEsaHR0cE9ubHk6ITEsZXh0ZW5zaW9uczpudWxsLGhvc3RPbmx5Om51bGwscGF0aElzRGVmYXVsdDpudWxsLGNyZWF0aW9uOm51bGwsbGFzdEFjY2Vzc2VkOm51bGwsc2FtZVNp''@;'; + put 'put ''dGU6Im5vbmUifTtjbGFzcyAkZXtjb25zdHJ1Y3Rvcih2dD17fSl7WS5pbnNwZWN0LmN1c3RvbSYmKHRoaXNbWS5pbnNwZWN0LmN1c3RvbV09dGhpcy5pbnNwZWN0KSxPYmplY3QuYXNzaWduKHRoaXMsUWUsdnQpLHRoaXMuY3JlYXRpb249dGhpcy5jcmVhdGlvbnx8bmV3IERhdGUsT2JqZWN0''@;'; + put 'put ''LmRlZmluZVByb3BlcnR5KHRoaXMsImNyZWF0aW9uSW5kZXgiLHtjb25maWd1cmFibGU6ITEsZW51bWVyYWJsZTohMSx3cml0YWJsZTohMCx2YWx1ZTorKyRlLmNvb2tpZXNDcmVhdGVkfSl9aW5zcGVjdCgpe2NvbnN0IHZ0PURhdGUubm93KCksQXQ9bnVsbCE9dGhpcy5ob3N0T25seT90aGlz''@;'; + put 'put ''Lmhvc3RPbmx5OiI/IixodD10aGlzLmNyZWF0aW9uP3Z0LXRoaXMuY3JlYXRpb24uZ2V0VGltZSgpKyJtcyI6Ij8iLEJ0PXRoaXMubGFzdEFjY2Vzc2VkP3Z0LXRoaXMubGFzdEFjY2Vzc2VkLmdldFRpbWUoKSsibXMiOiI/IjtyZXR1cm5gQ29va2llPSIke3RoaXMudG9TdHJpbmcoKX07IGhv''@;'; + put 'put ''c3RPbmx5PSR7QXR9OyBhQWdlPSR7QnR9OyBjQWdlPSR7aHR9ImB9dG9KU09OKCl7Y29uc3QgdnQ9e307Zm9yKGNvbnN0IEF0IG9mICRlLnNlcmlhbGl6YWJsZVByb3BlcnRpZXMpdGhpc1tBdF0hPT1RZVtBdF0mJigiZXhwaXJlcyI9PT1BdHx8ImNyZWF0aW9uIj09PUF0fHwibGFzdEFjY2Vz''@;'; + put 'put ''c2VkIj09PUF0P3Z0W0F0XT1udWxsPT09dGhpc1tBdF0/bnVsbDoiSW5maW5pdHkiPT10aGlzW0F0XT8iSW5maW5pdHkiOnRoaXNbQXRdLnRvSVNPU3RyaW5nKCk6Im1heEFnZSI9PT1BdD9udWxsIT09dGhpc1tBdF0mJih2dFtBdF09dGhpc1tBdF09PTEvMHx8dGhpc1tBdF09PS0xLzA/dGhp''@;'; + put 'put ''c1tBdF0udG9TdHJpbmcoKTp0aGlzW0F0XSk6dGhpc1tBdF0hPT1RZVtBdF0mJih2dFtBdF09dGhpc1tBdF0pKTtyZXR1cm4gdnR9Y2xvbmUoKXtyZXR1cm4gQ2UodGhpcy50b0pTT04oKSl9dmFsaWRhdGUoKXtpZighb2UudGVzdCh0aGlzLnZhbHVlKXx8ISh0aGlzLmV4cGlyZXM9PTEvMHx8''@;'; + put 'put ''dGhpcy5leHBpcmVzIGluc3RhbmNlb2YgRGF0ZXx8dGUodGhpcy5leHBpcmVzKSl8fG51bGwhPXRoaXMubWF4QWdlJiZ0aGlzLm1heEFnZTw9MHx8bnVsbCE9dGhpcy5wYXRoJiYhdmUudGVzdCh0aGlzLnBhdGgpKXJldHVybiExO2NvbnN0IHZ0PXRoaXMuY2RvbWFpbigpO3JldHVybiEodnQm''@;'; + put 'put ''Jih2dC5tYXRjaCgvXC4kLyl8fG51bGw9PVcuZ2V0UHVibGljU3VmZml4KHZ0KSkpfXNldEV4cGlyZXModnQpe3RoaXMuZXhwaXJlcz12dCBpbnN0YW5jZW9mIERhdGU/dnQ6dGUodnQpfHwiSW5maW5pdHkifXNldE1heEFnZSh2dCl7dGhpcy5tYXhBZ2U9dnQ9PT0xLzB8fHZ0PT09LTEvMD92''@;'; + put 'put ''dC50b1N0cmluZygpOnZ0fWNvb2tpZVN0cmluZygpe2xldCB2dD10aGlzLnZhbHVlO3JldHVybiBudWxsPT12dCYmKHZ0PSIiKSwiIj09PXRoaXMua2V5P3Z0OmAke3RoaXMua2V5fT0ke3Z0fWB9dG9TdHJpbmcoKXtsZXQgdnQ9dGhpcy5jb29raWVTdHJpbmcoKTtyZXR1cm4gdGhpcy5leHBp''@;'; + put 'put ''cmVzIT0xLzAmJih0aGlzLmV4cGlyZXMgaW5zdGFuY2VvZiBEYXRlP3Z0Kz1gOyBFeHBpcmVzPSR7eCh0aGlzLmV4cGlyZXMpfWA6dnQrPWA7IEV4cGlyZXM9JHt0aGlzLmV4cGlyZXN9YCksbnVsbCE9dGhpcy5tYXhBZ2UmJnRoaXMubWF4QWdlIT0xLzAmJih2dCs9YDsgTWF4LUFnZT0ke3Ro''@;'; + put 'put ''aXMubWF4QWdlfWApLHRoaXMuZG9tYWluJiYhdGhpcy5ob3N0T25seSYmKHZ0Kz1gOyBEb21haW49JHt0aGlzLmRvbWFpbn1gKSx0aGlzLnBhdGgmJih2dCs9YDsgUGF0aD0ke3RoaXMucGF0aH1gKSx0aGlzLnNlY3VyZSYmKHZ0Kz0iOyBTZWN1cmUiKSx0aGlzLmh0dHBPbmx5JiYodnQrPSI7''@;'; + put 'put ''IEh0dHBPbmx5IiksdGhpcy5zYW1lU2l0ZSYmIm5vbmUiIT09dGhpcy5zYW1lU2l0ZSYmKHZ0Kz1gOyBTYW1lU2l0ZT0keyRlLnNhbWVTaXRlQ2Fub25pY2FsW3RoaXMuc2FtZVNpdGUudG9Mb3dlckNhc2UoKV18fHRoaXMuc2FtZVNpdGV9YCksdGhpcy5leHRlbnNpb25zJiZ0aGlzLmV4dGVu''@;'; + put 'put ''c2lvbnMuZm9yRWFjaChBdD0+e3Z0Kz1gOyAke0F0fWB9KSx2dH1UVEwodnQpe2lmKG51bGwhPXRoaXMubWF4QWdlKXJldHVybiB0aGlzLm1heEFnZTw9MD8wOjFlMyp0aGlzLm1heEFnZTtsZXQgQXQ9dGhpcy5leHBpcmVzO3JldHVybiBBdCE9MS8wPyhBdCBpbnN0YW5jZW9mIERhdGV8fChB''@;'; + put 'put ''dD10ZShBdCl8fDEvMCksQXQ9PTEvMD8xLzA6QXQuZ2V0VGltZSgpLSh2dHx8RGF0ZS5ub3coKSkpOjEvMH1leHBpcnlUaW1lKHZ0KXtpZihudWxsIT10aGlzLm1heEFnZSl7Y29uc3QgQXQ9dnR8fHRoaXMuY3JlYXRpb258fG5ldyBEYXRlLGh0PXRoaXMubWF4QWdlPD0wPy0xLzA6MWUzKnRo''@;'; + put 'put ''aXMubWF4QWdlO3JldHVybiBBdC5nZXRUaW1lKCkraHR9cmV0dXJuIHRoaXMuZXhwaXJlcz09MS8wPzEvMDp0aGlzLmV4cGlyZXMuZ2V0VGltZSgpfWV4cGlyeURhdGUodnQpe2NvbnN0IEF0PXRoaXMuZXhwaXJ5VGltZSh2dCk7cmV0dXJuIEF0PT0xLzA/bmV3IERhdGUoU2UpOkF0PT0tMS8w''@;'; + put 'put ''P25ldyBEYXRlKDApOm5ldyBEYXRlKEF0KX1pc1BlcnNpc3RlbnQoKXtyZXR1cm4gbnVsbCE9dGhpcy5tYXhBZ2V8fHRoaXMuZXhwaXJlcyE9MS8wfWNhbm9uaWNhbGl6ZWREb21haW4oKXtyZXR1cm4gbnVsbD09dGhpcy5kb21haW4/bnVsbDpQKHRoaXMuZG9tYWluKX1jZG9tYWluKCl7cmV0''@;'; + put 'put ''dXJuIHRoaXMuY2Fub25pY2FsaXplZERvbWFpbigpfX0kZS5jb29raWVzQ3JlYXRlZD0wLCRlLnBhcnNlPUYsJGUuZnJvbUpTT049Q2UsJGUuc2VyaWFsaXphYmxlUHJvcGVydGllcz1PYmplY3Qua2V5cyhRZSksJGUuc2FtZVNpdGVMZXZlbD17c3RyaWN0OjMsbGF4OjIsbm9uZToxfSwkZS5z''@;'; + put 'put ''YW1lU2l0ZUNhbm9uaWNhbD17c3RyaWN0OiJTdHJpY3QiLGxheDoiTGF4In07Y2xhc3MgZ3R7Y29uc3RydWN0b3IodnQsQXQ9e3JlamVjdFB1YmxpY1N1ZmZpeGVzOiEwfSl7ImJvb2xlYW4iPT10eXBlb2YgQXQmJihBdD17cmVqZWN0UHVibGljU3VmZml4ZXM6QXR9KSx0aGlzLnJlamVjdFB1''@;'; + put 'put ''YmxpY1N1ZmZpeGVzPUF0LnJlamVjdFB1YmxpY1N1ZmZpeGVzLHRoaXMuZW5hYmxlTG9vc2VNb2RlPSEhQXQubG9vc2VNb2RlLHRoaXMuYWxsb3dTcGVjaWFsVXNlRG9tYWluPSEhQXQuYWxsb3dTcGVjaWFsVXNlRG9tYWluLHRoaXMuc3RvcmU9dnR8fG5ldyBlZSx0aGlzLnByZWZpeFNlY3Vy''@;'; + put 'put ''aXR5PWZ1bmN0aW9uKGh0KXtpZihudWxsIT1odCl7Y29uc3QgQnQ9aHQudG9Mb3dlckNhc2UoKTtzd2l0Y2goQnQpe2Nhc2UgRWUuU1RSSUNUOmNhc2UgRWUuU0lMRU5UOmNhc2UgRWUuRElTQUJMRUQ6cmV0dXJuIEJ0fX1yZXR1cm4gRWUuU0lMRU5UfShBdC5wcmVmaXhTZWN1cml0eSksdGhp''@;'; + put 'put ''cy5fY2xvbmVTeW5jPXd0KCJjbG9uZSIpLHRoaXMuX2ltcG9ydENvb2tpZXNTeW5jPXd0KCJfaW1wb3J0Q29va2llcyIpLHRoaXMuZ2V0Q29va2llc1N5bmM9d3QoImdldENvb2tpZXMiKSx0aGlzLmdldENvb2tpZVN0cmluZ1N5bmM9d3QoImdldENvb2tpZVN0cmluZyIpLHRoaXMuZ2V0U2V0''@;'; + put 'put ''Q29va2llU3RyaW5nc1N5bmM9d3QoImdldFNldENvb2tpZVN0cmluZ3MiKSx0aGlzLnJlbW92ZUFsbENvb2tpZXNTeW5jPXd0KCJyZW1vdmVBbGxDb29raWVzIiksdGhpcy5zZXRDb29raWVTeW5jPXd0KCJzZXRDb29raWUiKSx0aGlzLnNlcmlhbGl6ZVN5bmM9d3QoInNlcmlhbGl6ZSIpfXNl''@;'; + put 'put ''dENvb2tpZSh2dCxBdCxodCxCdCl7bGV0IG9uO2NvbnN0IF90PVBlKEF0KTsiZnVuY3Rpb24iPT10eXBlb2YgaHQmJihCdD1odCxodD17fSk7Y29uc3QgdHQ9UChfdC5ob3N0bmFtZSksZXQ9aHQubG9vc2V8fHRoaXMuZW5hYmxlTG9vc2VNb2RlO2xldCBhdD1udWxsO2lmKGh0LnNhbWVTaXRl''@;'; + put 'put ''Q29udGV4dCYmKGF0PVRlKGh0LnNhbWVTaXRlQ29udGV4dCksIWF0KSlyZXR1cm4gQnQobmV3IEVycm9yKEllKSk7aWYoInN0cmluZyI9PXR5cGVvZiB2dHx8dnQgaW5zdGFuY2VvZiBTdHJpbmcpe2lmKCEodnQ9JGUucGFyc2UodnQse2xvb3NlOmV0fSkpKXJldHVybiBvbj1uZXcgRXJyb3Io''@;'; + put 'put ''IkNvb2tpZSBmYWlsZWQgdG8gcGFyc2UiKSxCdChodC5pZ25vcmVFcnJvcj9udWxsOm9uKX1lbHNlIGlmKCEodnQgaW5zdGFuY2VvZiAkZSkpcmV0dXJuIG9uPW5ldyBFcnJvcigiRmlyc3QgYXJndW1lbnQgdG8gc2V0Q29va2llIG11c3QgYmUgYSBDb29raWUgb2JqZWN0IG9yIHN0cmluZyIp''@;'; + put 'put ''LEJ0KGh0Lmlnbm9yZUVycm9yP251bGw6b24pO2NvbnN0IEx0PWh0Lm5vd3x8bmV3IERhdGU7aWYodGhpcy5yZWplY3RQdWJsaWNTdWZmaXhlcyYmdnQuZG9tYWluJiZudWxsPT1XLmdldFB1YmxpY1N1ZmZpeCh2dC5jZG9tYWluKCkpKXJldHVybiBvbj1uZXcgRXJyb3IoIkNvb2tpZSBoYXMg''@;'; + put 'put ''ZG9tYWluIHNldCB0byBhIHB1YmxpYyBzdWZmaXgiKSxCdChodC5pZ25vcmVFcnJvcj9udWxsOm9uKTtpZih2dC5kb21haW4pe2lmKCFWKHR0LHZ0LmNkb21haW4oKSwhMSkpcmV0dXJuIG9uPW5ldyBFcnJvcihgQ29va2llIG5vdCBpbiB0aGlzIGhvc3QncyBkb21haW4uIENvb2tpZToke3Z0''@;'; + put 'put ''LmNkb21haW4oKX0gUmVxdWVzdDoke3R0fWApLEJ0KGh0Lmlnbm9yZUVycm9yP251bGw6b24pO251bGw9PXZ0Lmhvc3RPbmx5JiYodnQuaG9zdE9ubHk9ITEpfWVsc2UgdnQuaG9zdE9ubHk9ITAsdnQuZG9tYWluPXR0O2lmKHZ0LnBhdGgmJiIvIj09PXZ0LnBhdGhbMF18fCh2dC5wYXRoPVQo''@;'; + put 'put ''X3QucGF0aG5hbWUpLHZ0LnBhdGhJc0RlZmF1bHQ9ITApLCExPT09aHQuaHR0cCYmdnQuaHR0cE9ubHkpcmV0dXJuIG9uPW5ldyBFcnJvcigiQ29va2llIGlzIEh0dHBPbmx5IGFuZCB0aGlzIGlzbid0IGFuIEhUVFAgQVBJIiksQnQoaHQuaWdub3JlRXJyb3I/bnVsbDpvbik7aWYoIm5vbmUi''@;'; + put 'put ''IT09dnQuc2FtZVNpdGUmJmF0JiYibm9uZSI9PT1hdClyZXR1cm4gb249bmV3IEVycm9yKCJDb29raWUgaXMgU2FtZVNpdGUgYnV0IHRoaXMgaXMgYSBjcm9zcy1vcmlnaW4gcmVxdWVzdCIpLEJ0KGh0Lmlnbm9yZUVycm9yP251bGw6b24pO2NvbnN0IEN0PXRoaXMucHJlZml4U2VjdXJpdHk9''@;'; + put 'put ''PT1FZS5TSUxFTlQ7aWYodGhpcy5wcmVmaXhTZWN1cml0eSE9PUVlLkRJU0FCTEVEKXtsZXQgSHQsR2U9ITE7aWYoIShVZT12dCkua2V5LnN0YXJ0c1dpdGgoIl9fU2VjdXJlLSIpfHxVZS5zZWN1cmU/ZnVuY3Rpb24oVWUpe3JldHVybiFVZS5rZXkuc3RhcnRzV2l0aCgiX19Ib3N0LSIpfHxV''@;'; + put 'put ''ZS5zZWN1cmUmJlVlLmhvc3RPbmx5JiZudWxsIT1VZS5wYXRoJiYiLyI9PT1VZS5wYXRofSh2dCl8fChHZT0hMCxIdD0iQ29va2llIGhhcyBfX0hvc3QgcHJlZml4IGJ1dCBlaXRoZXIgU2VjdXJlIG9yIEhvc3RPbmx5IGF0dHJpYnV0ZSBpcyBub3Qgc2V0IG9yIFBhdGggaXMgbm90ICcvJyIp''@;'; + put 'put ''OihHZT0hMCxIdD0iQ29va2llIGhhcyBfX1NlY3VyZSBwcmVmaXggYnV0IFNlY3VyZSBhdHRyaWJ1dGUgaXMgbm90IHNldCIpLEdlKXJldHVybiBCdChodC5pZ25vcmVFcnJvcnx8Q3Q/bnVsbDpuZXcgRXJyb3IoSHQpKX12YXIgVWU7Y29uc3QgZnQ9dGhpcy5zdG9yZTtmdC51cGRhdGVDb29r''@;'; + put 'put ''aWV8fChmdC51cGRhdGVDb29raWU9ZnVuY3Rpb24oSHQsR2UsVWUpe3RoaXMucHV0Q29va2llKEdlLFVlKX0pLGZ0LmZpbmRDb29raWUodnQuZG9tYWluLHZ0LnBhdGgsdnQua2V5LGZ1bmN0aW9uKEh0LEdlKXtpZihIdClyZXR1cm4gQnQoSHQpO2NvbnN0IFVlPWZ1bmN0aW9uKHl0KXtpZih5''@;'; + put 'put ''dClyZXR1cm4gQnQoeXQpO0J0KG51bGwsdnQpfTtpZihHZSl7aWYoITE9PT1odC5odHRwJiZHZS5odHRwT25seSlyZXR1cm4gSHQ9bmV3IEVycm9yKCJvbGQgQ29va2llIGlzIEh0dHBPbmx5IGFuZCB0aGlzIGlzbid0IGFuIEhUVFAgQVBJIiksQnQoaHQuaWdub3JlRXJyb3I/bnVsbDpIdCk7''@;'; + put 'put ''dnQuY3JlYXRpb249R2UuY3JlYXRpb24sdnQuY3JlYXRpb25JbmRleD1HZS5jcmVhdGlvbkluZGV4LHZ0Lmxhc3RBY2Nlc3NlZD1MdCxmdC51cGRhdGVDb29raWUoR2UsdnQsVWUpfWVsc2UgdnQuY3JlYXRpb249dnQubGFzdEFjY2Vzc2VkPUx0LGZ0LnB1dENvb2tpZSh2dCxVZSl9KX1nZXRD''@;'; + put 'put ''b29raWVzKHZ0LEF0LGh0KXtjb25zdCBCdD1QZSh2dCk7ImZ1bmN0aW9uIj09dHlwZW9mIEF0JiYoaHQ9QXQsQXQ9e30pO2NvbnN0IG9uPVAoQnQuaG9zdG5hbWUpLF90PUJ0LnBhdGhuYW1lfHwiLyI7bGV0IHR0PUF0LnNlY3VyZTtudWxsIT10dHx8IUJ0LnByb3RvY29sfHwiaHR0cHM6IiE9''@;'; + put 'put ''QnQucHJvdG9jb2wmJiJ3c3M6IiE9QnQucHJvdG9jb2x8fCh0dD0hMCk7bGV0IGV0PTA7aWYoQXQuc2FtZVNpdGVDb250ZXh0KXtjb25zdCBVZT1UZShBdC5zYW1lU2l0ZUNvbnRleHQpO2lmKGV0PSRlLnNhbWVTaXRlTGV2ZWxbVWVdLCFldClyZXR1cm4gaHQobmV3IEVycm9yKEllKSl9bGV0''@;'; + put 'put ''IGF0PUF0Lmh0dHA7bnVsbD09YXQmJihhdD0hMCk7Y29uc3QgTHQ9QXQubm93fHxEYXRlLm5vdygpLEN0PSExIT09QXQuZXhwaXJlLGZ0PSEhQXQuYWxsUGF0aHMsSHQ9dGhpcy5zdG9yZTtmdW5jdGlvbiBHZShVZSl7aWYoVWUuaG9zdE9ubHkpe2lmKFVlLmRvbWFpbiE9b24pcmV0dXJuITF9''@;'; + put 'put ''ZWxzZSBpZighVihvbixVZS5kb21haW4sITEpKXJldHVybiExO3JldHVybiEoIWZ0JiYhcShfdCxVZS5wYXRoKXx8VWUuc2VjdXJlJiYhdHR8fFVlLmh0dHBPbmx5JiYhYXR8fGV0JiYkZS5zYW1lU2l0ZUxldmVsW1VlLnNhbWVTaXRlfHwibm9uZSJdPmV0fHxDdCYmVWUuZXhwaXJ5VGltZSgp''@;'; + put 'put ''PD1MdCYmKEh0LnJlbW92ZUNvb2tpZShVZS5kb21haW4sVWUucGF0aCxVZS5rZXksKCk9Pnt9KSwxKSl9SHQuZmluZENvb2tpZXMob24sZnQ/bnVsbDpfdCx0aGlzLmFsbG93U3BlY2lhbFVzZURvbWFpbiwoVWUseXQpPT57aWYoVWUpcmV0dXJuIGh0KFVlKTt5dD15dC5maWx0ZXIoR2UpLCEx''@;'; + put 'put ''IT09QXQuc29ydCYmKHl0PXl0LnNvcnQoRGUpKTtjb25zdCBqdD1uZXcgRGF0ZTtmb3IoY29uc3QgUXQgb2YgeXQpUXQubGFzdEFjY2Vzc2VkPWp0O2h0KG51bGwseXQpfSl9Z2V0Q29va2llU3RyaW5nKC4uLnZ0KXtjb25zdCBBdD12dC5wb3AoKTt2dC5wdXNoKGZ1bmN0aW9uKGh0LEJ0KXto''@;'; + put 'put ''dD9BdChodCk6QXQobnVsbCxCdC5zb3J0KERlKS5tYXAob249Pm9uLmNvb2tpZVN0cmluZygpKS5qb2luKCI7ICIpKX0pLHRoaXMuZ2V0Q29va2llcy5hcHBseSh0aGlzLHZ0KX1nZXRTZXRDb29raWVTdHJpbmdzKC4uLnZ0KXtjb25zdCBBdD12dC5wb3AoKTt2dC5wdXNoKGZ1bmN0aW9uKGh0''@;'; + put 'put ''LEJ0KXtodD9BdChodCk6QXQobnVsbCxCdC5tYXAob249Pm9uLnRvU3RyaW5nKCkpKX0pLHRoaXMuZ2V0Q29va2llcy5hcHBseSh0aGlzLHZ0KX1zZXJpYWxpemUodnQpe2xldCBBdD10aGlzLnN0b3JlLmNvbnN0cnVjdG9yLm5hbWU7Ik9iamVjdCI9PT1BdCYmKEF0PW51bGwpO2NvbnN0IGh0''@;'; + put 'put ''PXt2ZXJzaW9uOmB0b3VnaC1jb29raWVAJHtKfWAsc3RvcmVUeXBlOkF0LHJlamVjdFB1YmxpY1N1ZmZpeGVzOiEhdGhpcy5yZWplY3RQdWJsaWNTdWZmaXhlcyxjb29raWVzOltdfTtpZighdGhpcy5zdG9yZS5nZXRBbGxDb29raWVzfHwiZnVuY3Rpb24iIT10eXBlb2YgdGhpcy5zdG9yZS5n''@;'; + put 'put ''ZXRBbGxDb29raWVzKXJldHVybiB2dChuZXcgRXJyb3IoInN0b3JlIGRvZXMgbm90IHN1cHBvcnQgZ2V0QWxsQ29va2llcyBhbmQgY2Fubm90IGJlIHNlcmlhbGl6ZWQiKSk7dGhpcy5zdG9yZS5nZXRBbGxDb29raWVzKChCdCxvbik9PkJ0P3Z0KEJ0KTooaHQuY29va2llcz1vbi5tYXAoX3Q9''@;'; + put 'put ''PihkZWxldGUoX3Q9X3QgaW5zdGFuY2VvZiAkZT9fdC50b0pTT04oKTpfdCkuY3JlYXRpb25JbmRleCxfdCkpLHZ0KG51bGwsaHQpKSl9dG9KU09OKCl7cmV0dXJuIHRoaXMuc2VyaWFsaXplU3luYygpfV9pbXBvcnRDb29raWVzKHZ0LEF0KXtsZXQgaHQ9dnQuY29va2llcztpZighaHR8fCFB''@;'; + put 'put ''cnJheS5pc0FycmF5KGh0KSlyZXR1cm4gQXQobmV3IEVycm9yKCJzZXJpYWxpemVkIGphciBoYXMgbm8gY29va2llcyBhcnJheSIpKTtodD1odC5zbGljZSgpO2NvbnN0IEJ0PW9uPT57aWYob24pcmV0dXJuIEF0KG9uKTtpZighaHQubGVuZ3RoKXJldHVybiBBdChvbix0aGlzKTtsZXQgX3Q7''@;'; + put 'put ''dHJ5e190PUNlKGh0LnNoaWZ0KCkpfWNhdGNoKHR0KXtyZXR1cm4gQXQodHQpfWlmKG51bGw9PT1fdClyZXR1cm4gQnQobnVsbCk7dGhpcy5zdG9yZS5wdXRDb29raWUoX3QsQnQpfTtCdCgpfWNsb25lKHZ0LEF0KXsxPT09YXJndW1lbnRzLmxlbmd0aCYmKEF0PXZ0LHZ0PW51bGwpLHRoaXMu''@;'; + put 'put ''c2VyaWFsaXplKChodCxCdCk9PntpZihodClyZXR1cm4gQXQoaHQpO2d0LmRlc2VyaWFsaXplKEJ0LHZ0LEF0KX0pfWNsb25lU3luYyh2dCl7aWYoMD09PWFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuIHRoaXMuX2Nsb25lU3luYygpO2lmKCF2dC5zeW5jaHJvbm91cyl0aHJvdyBuZXcgRXJyb3Io''@;'; + put 'put ''IkNvb2tpZUphciBjbG9uZSBkZXN0aW5hdGlvbiBzdG9yZSBpcyBub3Qgc3luY2hyb25vdXM7IHVzZSBhc3luYyBBUEkgaW5zdGVhZC4iKTtyZXR1cm4gdGhpcy5fY2xvbmVTeW5jKHZ0KX1yZW1vdmVBbGxDb29raWVzKHZ0KXtjb25zdCBBdD10aGlzLnN0b3JlO2lmKCJmdW5jdGlvbiI9PXR5''@;'; + put 'put ''cGVvZiBBdC5yZW1vdmVBbGxDb29raWVzJiZBdC5yZW1vdmVBbGxDb29raWVzIT09Ti5wcm90b3R5cGUucmVtb3ZlQWxsQ29va2llcylyZXR1cm4gQXQucmVtb3ZlQWxsQ29va2llcyh2dCk7QXQuZ2V0QWxsQ29va2llcygoaHQsQnQpPT57aWYoaHQpcmV0dXJuIHZ0KGh0KTtpZigwPT09QnQu''@;'; + put 'put ''bGVuZ3RoKXJldHVybiB2dChudWxsKTtsZXQgb249MDtjb25zdCBfdD1bXTtmdW5jdGlvbiB0dChldCl7aWYoZXQmJl90LnB1c2goZXQpLG9uKyssb249PT1CdC5sZW5ndGgpcmV0dXJuIHZ0KF90Lmxlbmd0aD9fdFswXTpudWxsKX1CdC5mb3JFYWNoKGV0PT57QXQucmVtb3ZlQ29va2llKGV0''@;'; + put 'put ''LmRvbWFpbixldC5wYXRoLGV0LmtleSx0dCl9KX0pfXN0YXRpYyBkZXNlcmlhbGl6ZSh2dCxBdCxodCl7bGV0IEJ0O2lmKDMhPT1hcmd1bWVudHMubGVuZ3RoJiYoaHQ9QXQsQXQ9bnVsbCksInN0cmluZyI9PXR5cGVvZiB2dCl7aWYoQnQ9eWUodnQpLEJ0IGluc3RhbmNlb2YgRXJyb3IpcmV0''@;'; + put 'put ''dXJuIGh0KEJ0KX1lbHNlIEJ0PXZ0O2NvbnN0IG9uPW5ldyBndChBdCxCdC5yZWplY3RQdWJsaWNTdWZmaXhlcyk7b24uX2ltcG9ydENvb2tpZXMoQnQsX3Q9PntpZihfdClyZXR1cm4gaHQoX3QpO2h0KG51bGwsb24pfSl9c3RhdGljIGRlc2VyaWFsaXplU3luYyh2dCxBdCl7Y29uc3QgaHQ9''@;'; + put 'put ''InN0cmluZyI9PXR5cGVvZiB2dD9KU09OLnBhcnNlKHZ0KTp2dCxCdD1uZXcgZ3QoQXQsaHQucmVqZWN0UHVibGljU3VmZml4ZXMpO2lmKCFCdC5zdG9yZS5zeW5jaHJvbm91cyl0aHJvdyBuZXcgRXJyb3IoIkNvb2tpZUphciBzdG9yZSBpcyBub3Qgc3luY2hyb25vdXM7IHVzZSBhc3luYyBB''@;'; + put 'put ''UEkgaW5zdGVhZC4iKTtyZXR1cm4gQnQuX2ltcG9ydENvb2tpZXNTeW5jKGh0KSxCdH19ZnVuY3Rpb24gd3QobXQpe3JldHVybiBmdW5jdGlvbiguLi52dCl7aWYoIXRoaXMuc3RvcmUuc3luY2hyb25vdXMpdGhyb3cgbmV3IEVycm9yKCJDb29raWVKYXIgc3RvcmUgaXMgbm90IHN5bmNocm9u''@;'; + put 'put ''b3VzOyB1c2UgYXN5bmMgQVBJIGluc3RlYWQuIik7bGV0IEF0LGh0O2lmKHRoaXNbbXRdKC4uLnZ0LChCdCxvbik9PntBdD1CdCxodD1vbn0pLEF0KXRocm93IEF0O3JldHVybiBodH19Z3QuZnJvbUpTT049Z3QuZGVzZXJpYWxpemVTeW5jLFsiX2ltcG9ydENvb2tpZXMiLCJjbG9uZSIsImdl''@;'; + put 'put ''dENvb2tpZXMiLCJnZXRDb29raWVTdHJpbmciLCJnZXRTZXRDb29raWVTdHJpbmdzIiwicmVtb3ZlQWxsQ29va2llcyIsInNlcmlhbGl6ZSIsInNldENvb2tpZSJdLmZvckVhY2gobXQ9PntndC5wcm90b3R5cGVbbXRdPXNlKGd0LnByb3RvdHlwZVttdF0pfSksZ3QuZGVzZXJpYWxpemU9c2Uo''@;'; + put 'put ''Z3QuZGVzZXJpYWxpemUpLFEudmVyc2lvbj1KLFEuQ29va2llSmFyPWd0LFEuQ29va2llPSRlLFEuU3RvcmU9TixRLk1lbW9yeUNvb2tpZVN0b3JlPWVlLFEucGFyc2VEYXRlPXRlLFEuZm9ybWF0RGF0ZT14LFEucGFyc2U9RixRLmZyb21KU09OPUNlLFEuZG9tYWluTWF0Y2g9VixRLmRlZmF1''@;'; + put 'put ''bHRQYXRoPVQsUS5wYXRoTWF0Y2g9cSxRLmdldFB1YmxpY1N1ZmZpeD1XLmdldFB1YmxpY1N1ZmZpeCxRLmNvb2tpZUNvbXBhcmU9RGUsUS5wZXJtdXRlRG9tYWluPVooNzMyNCkucGVybXV0ZURvbWFpbixRLnBlcm11dGVQYXRoPWZ1bmN0aW9uKG10KXtpZigiLyI9PT1tdClyZXR1cm5bIi8i''@;'; + put 'put ''XTtjb25zdCB2dD1bbXRdO2Zvcig7bXQubGVuZ3RoPjE7KXtjb25zdCBBdD1tdC5sYXN0SW5kZXhPZigiLyIpO2lmKDA9PT1BdClicmVhazttdD1tdC5zdWJzdHIoMCxBdCksdnQucHVzaChtdCl9cmV0dXJuIHZ0LnB1c2goIi8iKSx2dH0sUS5jYW5vbmljYWxEb21haW49UCxRLlByZWZpeFNl''@;'; + put 'put ''Y3VyaXR5RW51bT1FZX0sNTc2MTooVSxRLFopPT57InVzZSBzdHJpY3QiO2NvbnN0e2Zyb21DYWxsYmFjazppZX09Wig3MDQxKSxhZT1aKDIyMjQpLnksWT1aKDczMjQpLnBlcm11dGVEb21haW4sVz1aKDg5NzEpLlUsTj1aKDk1MzkpO2NsYXNzIGVlIGV4dGVuZHMgYWV7Y29uc3RydWN0b3Io''@;'; + put 'put ''KXtzdXBlcigpLHRoaXMuc3luY2hyb25vdXM9ITAsdGhpcy5pZHg9e30sTi5pbnNwZWN0LmN1c3RvbSYmKHRoaXNbTi5pbnNwZWN0LmN1c3RvbV09dGhpcy5pbnNwZWN0KX1pbnNwZWN0KCl7cmV0dXJuYHsgaWR4OiAke04uaW5zcGVjdCh0aGlzLmlkeCwhMSwyKX0gfWB9ZmluZENvb2tpZShK''@;'; + put 'put ''LHNlLG9lLGNlKXtyZXR1cm4gY2UobnVsbCx0aGlzLmlkeFtKXSYmdGhpcy5pZHhbSl1bc2VdP3RoaXMuaWR4W0pdW3NlXVtvZV18fG51bGw6dm9pZCAwKX1maW5kQ29va2llcyhKLHNlLG9lLGNlKXtjb25zdCBkZT1bXTtpZigiZnVuY3Rpb24iPT10eXBlb2Ygb2UmJihjZT1vZSxvZT0hMSks''@;'; + put 'put ''IUopcmV0dXJuIGNlKG51bGwsW10pO2xldCB2ZTt2ZT1zZT9mdW5jdGlvbihTZSl7T2JqZWN0LmtleXMoU2UpLmZvckVhY2goSWU9PntpZihXKHNlLEllKSl7Y29uc3QgVGU9U2VbSWVdO2Zvcihjb25zdCBFZSBpbiBUZSlkZS5wdXNoKFRlW0VlXSl9fSl9OmZ1bmN0aW9uKFNlKXtmb3IoY29u''@;'; + put 'put ''c3QgSWUgaW4gU2Upe2NvbnN0IFRlPVNlW0llXTtmb3IoY29uc3QgRWUgaW4gVGUpZGUucHVzaChUZVtFZV0pfX07Y29uc3QgQWU9WShKLG9lKXx8W0pdLGtlPXRoaXMuaWR4O0FlLmZvckVhY2goU2U9Pntjb25zdCBJZT1rZVtTZV07SWUmJnZlKEllKX0pLGNlKG51bGwsZGUpfXB1dENvb2tp''@;'; + put 'put ''ZShKLHNlKXt0aGlzLmlkeFtKLmRvbWFpbl18fCh0aGlzLmlkeFtKLmRvbWFpbl09e30pLHRoaXMuaWR4W0ouZG9tYWluXVtKLnBhdGhdfHwodGhpcy5pZHhbSi5kb21haW5dW0oucGF0aF09e30pLHRoaXMuaWR4W0ouZG9tYWluXVtKLnBhdGhdW0oua2V5XT1KLHNlKG51bGwpfXVwZGF0ZUNv''@;'; + put 'put ''b2tpZShKLHNlLG9lKXt0aGlzLnB1dENvb2tpZShzZSxvZSl9cmVtb3ZlQ29va2llKEosc2Usb2UsY2Upe3RoaXMuaWR4W0pdJiZ0aGlzLmlkeFtKXVtzZV0mJnRoaXMuaWR4W0pdW3NlXVtvZV0mJmRlbGV0ZSB0aGlzLmlkeFtKXVtzZV1bb2VdLGNlKG51bGwpfXJlbW92ZUNvb2tpZXMoSixz''@;'; + put 'put ''ZSxvZSl7cmV0dXJuIHRoaXMuaWR4W0pdJiYoc2U/ZGVsZXRlIHRoaXMuaWR4W0pdW3NlXTpkZWxldGUgdGhpcy5pZHhbSl0pLG9lKG51bGwpfXJlbW92ZUFsbENvb2tpZXMoSil7cmV0dXJuIHRoaXMuaWR4PXt9LEoobnVsbCl9Z2V0QWxsQ29va2llcyhKKXtjb25zdCBzZT1bXSxvZT10aGlz''@;'; + put 'put ''LmlkeDtPYmplY3Qua2V5cyhvZSkuZm9yRWFjaChjZT0+e09iamVjdC5rZXlzKG9lW2NlXSkuZm9yRWFjaChkZT0+e09iamVjdC5rZXlzKG9lW2NlXVtkZV0pLmZvckVhY2godmU9PntudWxsIT09dmUmJnNlLnB1c2gob2VbY2VdW2RlXVt2ZV0pfSl9KX0pLHNlLnNvcnQoKGNlLGRlKT0+KGNl''@;'; + put 'put ''LmNyZWF0aW9uSW5kZXh8fDApLShkZS5jcmVhdGlvbkluZGV4fHwwKSksSihudWxsLHNlKX19WyJmaW5kQ29va2llIiwiZmluZENvb2tpZXMiLCJwdXRDb29raWUiLCJ1cGRhdGVDb29raWUiLCJyZW1vdmVDb29raWUiLCJyZW1vdmVDb29raWVzIiwicmVtb3ZlQWxsQ29va2llcyIsImdldEFs''@;'; + put 'put ''bENvb2tpZXMiXS5mb3JFYWNoKHE9PntlZVtxXT1pZShlZS5wcm90b3R5cGVbcV0pfSksUS5tPWVlfSw4OTcxOihVLFEpPT57InVzZSBzdHJpY3QiO1EuVT1mdW5jdGlvbihaLGllKXtyZXR1cm4gaWU9PT1afHwwPT09Wi5pbmRleE9mKGllKSYmKCIvIj09PWllLnN1YnN0cigtMSl8fCIvIj09''@;'; + put 'put ''PVouc3Vic3RyKGllLmxlbmd0aCwxKSl9fSw3MzI0OihVLFEsWik9PnsidXNlIHN0cmljdCI7Y29uc3QgaWU9Wig3NTIpLGFlPVsibG9jYWwiXTtRLnBlcm11dGVEb21haW49ZnVuY3Rpb24oWSxXKXtsZXQgTj1udWxsO2lmKFcpe2NvbnN0IHNlPVkuc3BsaXQoIi4iKTtOPWFlLmluY2x1ZGVz''@;'; + put 'put ''KHNlW3NlLmxlbmd0aC0xXSk/YCR7c2Vbc2UubGVuZ3RoLTJdfS4ke3NlW3NlLmxlbmd0aC0xXX1gOmllLmdldFB1YmxpY1N1ZmZpeChZKX1lbHNlIE49aWUuZ2V0UHVibGljU3VmZml4KFkpO2lmKCFOKXJldHVybiBudWxsO2lmKE49PVkpcmV0dXJuW1ldO2NvbnN0IGVlPVkuc2xpY2UoMCwt''@;'; + put 'put ''KE4ubGVuZ3RoKzEpKS5zcGxpdCgiLiIpLnJldmVyc2UoKTtsZXQgcT1OO2NvbnN0IEo9W3FdO2Zvcig7ZWUubGVuZ3RoOylxPWAke2VlLnNoaWZ0KCl9LiR7cX1gLEoucHVzaChxKTtyZXR1cm4gSn19LDc1MjooVSxRLFopPT57InVzZSBzdHJpY3QiO2NvbnN0IGllPVooNjI0NCk7US5nZXRQ''@;'; + put 'put ''dWJsaWNTdWZmaXg9ZnVuY3Rpb24oYWUpe3JldHVybiBpZS5nZXQoYWUpfX0sMjIyNDooVSxRKT0+eyJ1c2Ugc3RyaWN0IjtRLnk9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLnN5bmNocm9ub3VzPSExfWZpbmRDb29raWUoWixpZSxhZSxZKXt0aHJvdyBuZXcgRXJyb3IoImZpbmRDb29raWUg''@;'; + put 'put ''aXMgbm90IGltcGxlbWVudGVkIil9ZmluZENvb2tpZXMoWixpZSxhZSxZKXt0aHJvdyBuZXcgRXJyb3IoImZpbmRDb29raWVzIGlzIG5vdCBpbXBsZW1lbnRlZCIpfXB1dENvb2tpZShaLGllKXt0aHJvdyBuZXcgRXJyb3IoInB1dENvb2tpZSBpcyBub3QgaW1wbGVtZW50ZWQiKX11cGRhdGVD''@;'; + put 'put ''b29raWUoWixpZSxhZSl7dGhyb3cgbmV3IEVycm9yKCJ1cGRhdGVDb29raWUgaXMgbm90IGltcGxlbWVudGVkIil9cmVtb3ZlQ29va2llKFosaWUsYWUsWSl7dGhyb3cgbmV3IEVycm9yKCJyZW1vdmVDb29raWUgaXMgbm90IGltcGxlbWVudGVkIil9cmVtb3ZlQ29va2llcyhaLGllLGFlKXt0''@;'; + put 'put ''aHJvdyBuZXcgRXJyb3IoInJlbW92ZUNvb2tpZXMgaXMgbm90IGltcGxlbWVudGVkIil9cmVtb3ZlQWxsQ29va2llcyhaKXt0aHJvdyBuZXcgRXJyb3IoInJlbW92ZUFsbENvb2tpZXMgaXMgbm90IGltcGxlbWVudGVkIil9Z2V0QWxsQ29va2llcyhaKXt0aHJvdyBuZXcgRXJyb3IoImdldEFs''@;'; + put 'put ''bENvb2tpZXMgaXMgbm90IGltcGxlbWVudGVkICh0aGVyZWZvcmUgamFyIGNhbm5vdCBiZSBzZXJpYWxpemVkKSIpfX19LDQ1NjpVPT57VS5leHBvcnRzPSI0LjAuMCJ9LDcwNDE6KFUsUSk9PnsidXNlIHN0cmljdCI7US5mcm9tQ2FsbGJhY2s9ZnVuY3Rpb24oWil7cmV0dXJuIE9iamVjdC5k''@;'; + put 'put ''ZWZpbmVQcm9wZXJ0eShmdW5jdGlvbigpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBhcmd1bWVudHNbYXJndW1lbnRzLmxlbmd0aC0xXSlyZXR1cm4gbmV3IFByb21pc2UoKGllLGFlKT0+e2FyZ3VtZW50c1thcmd1bWVudHMubGVuZ3RoXT0oWSxXKT0+e2lmKFkpcmV0dXJuIGFlKFkpO2llKFcp''@;'; + put 'put ''fSxhcmd1bWVudHMubGVuZ3RoKyssWi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9KTtaLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sIm5hbWUiLHt2YWx1ZTpaLm5hbWV9KX0sUS5mcm9tUHJvbWlzZT1mdW5jdGlvbihaKXtyZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KGZ1bmN0aW9uKCl7Y29u''@;'; + put 'put ''c3QgaWU9YXJndW1lbnRzW2FyZ3VtZW50cy5sZW5ndGgtMV07aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGllKXJldHVybiBaLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtaLmFwcGx5KHRoaXMsYXJndW1lbnRzKS50aGVuKGFlPT5pZShudWxsLGFlKSxpZSl9LCJuYW1lIix7dmFsdWU6Wi5uYW1lfSl9''@;'; + put 'put ''fSw2NzI6ZnVuY3Rpb24oVSxRLFopeyJ1c2Ugc3RyaWN0Ijt2YXIgaWU9dGhpcyYmdGhpcy5fX2Fzc2lnbnx8ZnVuY3Rpb24oKXtyZXR1cm4gaWU9T2JqZWN0LmFzc2lnbnx8ZnVuY3Rpb24ocSl7Zm9yKHZhciBKLHNlPTEsb2U9YXJndW1lbnRzLmxlbmd0aDtzZTxvZTtzZSsrKWZvcih2YXIg''@;'; + put 'put ''Y2UgaW4gSj1hcmd1bWVudHNbc2VdKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChKLGNlKSYmKHFbY2VdPUpbY2VdKTtyZXR1cm4gcX0saWUuYXBwbHkodGhpcyxhcmd1bWVudHMpfSxhZT10aGlzJiZ0aGlzLl9fYXdhaXRlcnx8ZnVuY3Rpb24ocSxKLHNlLG9lKXtyZXR1''@;'; + put 'put ''cm4gbmV3KHNlfHwoc2U9UHJvbWlzZSkpKGZ1bmN0aW9uKGNlLGRlKXtmdW5jdGlvbiB2ZShTZSl7dHJ5e2tlKG9lLm5leHQoU2UpKX1jYXRjaChJZSl7ZGUoSWUpfX1mdW5jdGlvbiBBZShTZSl7dHJ5e2tlKG9lLnRocm93KFNlKSl9Y2F0Y2goSWUpe2RlKEllKX19ZnVuY3Rpb24ga2UoU2Up''@;'; + put 'put ''e3ZhciBJZTtTZS5kb25lP2NlKFNlLnZhbHVlKTooSWU9U2UudmFsdWUsSWUgaW5zdGFuY2VvZiBzZT9JZTpuZXcgc2UoZnVuY3Rpb24oVGUpe1RlKEllKX0pKS50aGVuKHZlLEFlKX1rZSgob2U9b2UuYXBwbHkocSxKfHxbXSkpLm5leHQoKSl9KX0sWT10aGlzJiZ0aGlzLl9fZ2VuZXJhdG9y''@;'; + put 'put ''fHxmdW5jdGlvbihxLEope3ZhciBzZSxvZSxjZSxkZSx2ZT17bGFiZWw6MCxzZW50OmZ1bmN0aW9uKCl7aWYoMSZjZVswXSl0aHJvdyBjZVsxXTtyZXR1cm4gY2VbMV19LHRyeXM6W10sb3BzOltdfTtyZXR1cm4gZGU9e25leHQ6QWUoMCksdGhyb3c6QWUoMSkscmV0dXJuOkFlKDIpfSwiZnVu''@;'; + put 'put ''Y3Rpb24iPT10eXBlb2YgU3ltYm9sJiYoZGVbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSksZGU7ZnVuY3Rpb24gQWUoa2Upe3JldHVybiBmdW5jdGlvbihTZSl7cmV0dXJuIGZ1bmN0aW9uKEllKXtpZihzZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJHZW5lcmF0b3Ig''@;'; + put 'put ''aXMgYWxyZWFkeSBleGVjdXRpbmcuIik7Zm9yKDt2ZTspdHJ5e2lmKHNlPTEsb2UmJihjZT0yJkllWzBdP29lLnJldHVybjpJZVswXT9vZS50aHJvd3x8KChjZT1vZS5yZXR1cm4pJiZjZS5jYWxsKG9lKSwwKTpvZS5uZXh0KSYmIShjZT1jZS5jYWxsKG9lLEllWzFdKSkuZG9uZSlyZXR1cm4g''@;'; + put 'put ''Y2U7c3dpdGNoKG9lPTAsY2UmJihJZT1bMiZJZVswXSxjZS52YWx1ZV0pLEllWzBdKXtjYXNlIDA6Y2FzZSAxOmNlPUllO2JyZWFrO2Nhc2UgNDpyZXR1cm4gdmUubGFiZWwrKyx7dmFsdWU6SWVbMV0sZG9uZTohMX07Y2FzZSA1OnZlLmxhYmVsKyssb2U9SWVbMV0sSWU9WzBdO2NvbnRpbnVl''@;'; + put 'put ''O2Nhc2UgNzpJZT12ZS5vcHMucG9wKCksdmUudHJ5cy5wb3AoKTtjb250aW51ZTtkZWZhdWx0OmlmKCEoKGNlPShjZT12ZS50cnlzKS5sZW5ndGg+MCYmY2VbY2UubGVuZ3RoLTFdKXx8NiE9PUllWzBdJiYyIT09SWVbMF0pKXt2ZT0wO2NvbnRpbnVlfWlmKDM9PT1JZVswXSYmKCFjZXx8SWVb''@;'; + put 'put ''MV0+Y2VbMF0mJkllWzFdPGNlWzNdKSl7dmUubGFiZWw9SWVbMV07YnJlYWt9aWYoNj09PUllWzBdJiZ2ZS5sYWJlbDxjZVsxXSl7dmUubGFiZWw9Y2VbMV0sY2U9SWU7YnJlYWt9aWYoY2UmJnZlLmxhYmVsPGNlWzJdKXt2ZS5sYWJlbD1jZVsyXSx2ZS5vcHMucHVzaChJZSk7YnJlYWt9Y2Vb''@;'; + put 'put ''Ml0mJnZlLm9wcy5wb3AoKSx2ZS50cnlzLnBvcCgpO2NvbnRpbnVlfUllPUouY2FsbChxLHZlKX1jYXRjaChUZSl7SWU9WzYsVGVdLG9lPTB9ZmluYWxseXtzZT1jZT0wfWlmKDUmSWVbMF0pdGhyb3cgSWVbMV07cmV0dXJue3ZhbHVlOkllWzBdP0llWzFdOnZvaWQgMCxkb25lOiEwfX0oW2tl''@;'; + put 'put ''LFNlXSl9fX07T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLFEuQ29udGV4dE1hbmFnZXI9dm9pZCAwO3ZhciBXPVooNTkyOCksTj1aKDk3NzgpLGVlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gcShKLHNlKXt0aGlzLnNlcnZlclVybD1KLHRoaXMucmVxdWVz''@;'; + put 'put ''dENsaWVudD1zZSx0aGlzLmRlZmF1bHRDb21wdXRlQ29udGV4dHM9WyJDQVMgRm9ybWF0cyBzZXJ2aWNlIGNvbXB1dGUgY29udGV4dCIsIkRhdGEgTWluaW5nIGNvbXB1dGUgY29udGV4dCIsIkltcG9ydCA5IHNlcnZpY2UgY29tcHV0ZSBjb250ZXh0IiwiU0FTIEpvYiBFeGVjdXRpb24gY29t''@;'; + put 'put ''cHV0ZSBjb250ZXh0IiwiU0FTIE1vZGVsIE1hbmFnZXIgY29tcHV0ZSBjb250ZXh0IiwiU0FTIFN0dWRpbyBjb21wdXRlIGNvbnRleHQiLCJTQVMgVmlzdWFsIEZvcmVjYXN0aW5nIGNvbXB1dGUgY29udGV4dCJdLHRoaXMuZGVmYXVsdExhdW5jaGVyQ29udGV4dHM9WyJDQVMgRm9ybWF0cyBz''@;'; + put 'put ''ZXJ2aWNlIGxhdW5jaGVyIGNvbnRleHQiLCJEYXRhIE1pbmluZyBsYXVuY2hlciBjb250ZXh0IiwiSW1wb3J0IDkgc2VydmljZSBsYXVuY2hlciBjb250ZXh0IiwiSm9iIEZsb3cgRXhlY3V0aW9uIGxhdW5jaGVyIGNvbnRleHQiLCJTQVMgSm9iIEV4ZWN1dGlvbiBsYXVuY2hlciBjb250ZXh0''@;'; + put 'put ''IiwiU0FTIE1vZGVsIE1hbmFnZXIgbGF1bmNoZXIgY29udGV4dCIsIlNBUyBTdHVkaW8gbGF1bmNoZXIgY29udGV4dCIsIlNBUyBWaXN1YWwgRm9yZWNhc3RpbmcgbGF1bmNoZXIgY29udGV4dCJdLEomJigwLFcuaXNVcmwpKEopfXJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkocS5wcm90''@;'; + put 'put ''b3R5cGUsImdldERlZmF1bHRDb21wdXRlQ29udGV4dHMiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kZWZhdWx0Q29tcHV0ZUNvbnRleHRzfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShxLnByb3RvdHlwZSwiZ2V0RGVmYXVsdExh''@;'; + put 'put ''dW5jaGVyQ29udGV4dHMiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kZWZhdWx0TGF1bmNoZXJDb250ZXh0c30sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxxLnByb3RvdHlwZS5nZXRDb21wdXRlQ29udGV4dHM9ZnVuY3Rpb24oSil7cmV0dXJuIGFlKHRoaXMsdm9pZCAw''@;'; + put 'put ''LHZvaWQgMCxmdW5jdGlvbigpe3ZhciBzZTtyZXR1cm4gWSh0aGlzLGZ1bmN0aW9uKG9lKXtzd2l0Y2gob2UubGFiZWwpe2Nhc2UgMDpyZXR1cm5bNCx0aGlzLnJlcXVlc3RDbGllbnQuZ2V0KCIiLmNvbmNhdCh0aGlzLnNlcnZlclVybCwiL2NvbXB1dGUvY29udGV4dHM/bGltaXQ9MTAwMDAi''@;'; + put 'put ''KSxKKS5jYXRjaChmdW5jdGlvbihjZSl7dGhyb3coMCxOLnByZWZpeE1lc3NhZ2UpKGNlLCJFcnJvciB3aGlsZSBnZXR0aW5nIGNvbXB1dGUgY29udGV4dHMuICIpfSldO2Nhc2UgMTpyZXR1cm5bMiwoKHNlPW9lLnNlbnQoKS5yZXN1bHQpJiZzZS5pdGVtcz9zZS5pdGVtczpbXSkubWFwKGZ1''@;'; + put 'put ''bmN0aW9uKGNlKXtyZXR1cm57Y3JlYXRlZEJ5OmNlLmNyZWF0ZWRCeSxpZDpjZS5pZCxuYW1lOmNlLm5hbWUsdmVyc2lvbjpjZS52ZXJzaW9uLGF0dHJpYnV0ZXM6e319fSldfX0pfSl9LHEucHJvdG90eXBlLmdldExhdW5jaGVyQ29udGV4dHM9ZnVuY3Rpb24oSil7cmV0dXJuIGFlKHRoaXMs''@;'; + put 'put ''dm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBzZTtyZXR1cm4gWSh0aGlzLGZ1bmN0aW9uKG9lKXtzd2l0Y2gob2UubGFiZWwpe2Nhc2UgMDpyZXR1cm5bNCx0aGlzLnJlcXVlc3RDbGllbnQuZ2V0KCIiLmNvbmNhdCh0aGlzLnNlcnZlclVybCwiL2xhdW5jaGVyL2NvbnRleHRzP2xpbWl0''@;'; + put 'put ''PTEwMDAwIiksSikuY2F0Y2goZnVuY3Rpb24oY2Upe3Rocm93KDAsTi5wcmVmaXhNZXNzYWdlKShjZSwiRXJyb3Igd2hpbGUgZ2V0dGluZyBsYXVuY2hlciBjb250ZXh0cy4gIil9KV07Y2FzZSAxOnJldHVyblsyLCgoc2U9b2Uuc2VudCgpLnJlc3VsdCkmJnNlLml0ZW1zP3NlLml0ZW1zOltd''@;'; + put 'put ''KS5tYXAoZnVuY3Rpb24oY2Upe3JldHVybntjcmVhdGVkQnk6Y2UuY3JlYXRlZEJ5LGlkOmNlLmlkLG5hbWU6Y2UubmFtZSx2ZXJzaW9uOmNlLnZlcnNpb24sYXR0cmlidXRlczp7fX19KV19fSl9KX0scS5wcm90b3R5cGUuY3JlYXRlQ29tcHV0ZUNvbnRleHQ9ZnVuY3Rpb24oSixzZSxvZSxj''@;'; + put 'put ''ZSxkZSx2ZSl7cmV0dXJuIGFlKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBBZSxrZSxTZSxJZSxUZTtyZXR1cm4gWSh0aGlzLGZ1bmN0aW9uKEVlKXtzd2l0Y2goRWUubGFiZWwpe2Nhc2UgMDpyZXR1cm4gdGhpcy52YWxpZGF0ZUNvbnRleHROYW1lKEopLHRoaXMuaXNEZWZh''@;'; + put 'put ''dWx0Q29udGV4dChKLHRoaXMuZGVmYXVsdENvbXB1dGVDb250ZXh0cywiQ29tcHV0ZSBjb250ZXh0ICciLmNvbmNhdChKLCInIGFscmVhZHkgZXhpc3RzLiIpKSxbNCx0aGlzLmdldENvbXB1dGVDb250ZXh0cyhkZSldO2Nhc2UgMTppZihFZS5zZW50KCkuZmluZChmdW5jdGlvbihoZSl7cmV0''@;'; + put 'put ''dXJuIGhlLm5hbWU9PT1KfSkpdGhyb3cgbmV3IEVycm9yKCJDb21wdXRlIGNvbnRleHQgJyIuY29uY2F0KEosIicgYWxyZWFkeSBleGlzdHMuIikpO3JldHVybiBzZT90aGlzLmRlZmF1bHRMYXVuY2hlckNvbnRleHRzLmluY2x1ZGVzKHNlKT9bMyw0XTpbNCx0aGlzLmdldExhdW5jaGVyQ29u''@;'; + put 'put ''dGV4dHMoZGUpXTpbMyw0XTtjYXNlIDI6cmV0dXJuIEVlLnNlbnQoKS5maW5kKGZ1bmN0aW9uKGhlKXtyZXR1cm4gaGUubmFtZT09PXNlfSk/WzMsNF06KEFlPSJUaGUgbGF1bmNoZXIgY29udGV4dCBmb3IgIi5jb25jYXQoc2UpLFs0LHRoaXMuY3JlYXRlTGF1bmNoZXJDb250ZXh0KHNlLEFl''@;'; + put 'put ''LCJkaXJlY3QiLGRlKS5jYXRjaChmdW5jdGlvbihoZSl7dGhyb3cgbmV3IEVycm9yKCJFcnJvciB3aGlsZSBjcmVhdGluZyBsYXVuY2hlciBjb250ZXh0LiAiLmNvbmNhdChoZSkpfSldKTtjYXNlIDM6aWYoIShrZT1FZS5zZW50KCkpfHwha2UubmFtZSl0aHJvdyBuZXcgRXJyb3IoIkVycm9y''@;'; + put 'put ''IHdoaWxlIGNyZWF0aW5nIGxhdW5jaGVyIGNvbnRleHQuIik7c2U9a2UubmFtZSxFZS5sYWJlbD00O2Nhc2UgNDpyZXR1cm4gU2U9eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sZGUmJihTZS5BdXRob3JpemF0aW9uPSJCZWFyZXIgIi5jb25jYXQoZGUpKSxJZT17cmV1c2VT''@;'; + put 'put ''ZXJ2ZXJQcm9jZXNzZXM6ITB9LG9lJiYoSWU9aWUoaWUoe30sSWUpLHtydW5TZXJ2ZXJBczpvZX0pKSxUZT17bmFtZTpKLGxhdW5jaENvbnRleHQ6e2NvbnRleHROYW1lOnNlfHwiIn0sYXR0cmlidXRlczpJZX0sdmUmJnZlLmxlbmd0aD9UZS5hdXRob3JpemVkVXNlcnM9dmU6VGUuYXV0aG9y''@;'; + put 'put ''aXplQWxsQXV0aGVudGljYXRlZFVzZXJzPSEwLGNlJiYoVGUuZW52aXJvbm1lbnQ9e2F1dG9FeGVjTGluZXM6Y2V9KSxbNCx0aGlzLnJlcXVlc3RDbGllbnQucG9zdCgiIi5jb25jYXQodGhpcy5zZXJ2ZXJVcmwsIi9jb21wdXRlL2NvbnRleHRzIiksVGUsZGUpLmNhdGNoKGZ1bmN0aW9uKGhl''@;'; + put 'put ''KXt0aHJvdygwLE4ucHJlZml4TWVzc2FnZSkoaGUsIkVycm9yIHdoaWxlIGNyZWF0aW5nIGNvbXB1dGUgY29udGV4dC4gIil9KV07Y2FzZSA1OnJldHVyblsyLEVlLnNlbnQoKS5yZXN1bHRdfX0pfSl9LHEucHJvdG90eXBlLmNyZWF0ZUxhdW5jaGVyQ29udGV4dD1mdW5jdGlvbihKLHNlLG9l''@;'; + put 'put ''LGNlKXtyZXR1cm4gdm9pZCAwPT09b2UmJihvZT0iZGlyZWN0IiksYWUodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGRlLHZlO3JldHVybiBZKHRoaXMsZnVuY3Rpb24oQWUpe3N3aXRjaChBZS5sYWJlbCl7Y2FzZSAwOmlmKCFKKXRocm93IG5ldyBFcnJvcigiQ29udGV4dCBu''@;'; + put 'put ''YW1lIGlzIHJlcXVpcmVkLiIpO3JldHVybiB0aGlzLmlzRGVmYXVsdENvbnRleHQoSix0aGlzLmRlZmF1bHRMYXVuY2hlckNvbnRleHRzLCJMYXVuY2hlciBjb250ZXh0ICciLmNvbmNhdChKLCInIGFscmVhZHkgZXhpc3RzLiIpKSxbNCx0aGlzLmdldExhdW5jaGVyQ29udGV4dHMoY2UpXTtj''@;'; + put 'put ''YXNlIDE6aWYoQWUuc2VudCgpLmZpbmQoZnVuY3Rpb24oa2Upe3JldHVybiBrZS5uYW1lPT09Sn0pKXRocm93IG5ldyBFcnJvcigiTGF1bmNoZXIgY29udGV4dCAnIi5jb25jYXQoSiwiJyBhbHJlYWR5IGV4aXN0cy4iKSk7cmV0dXJuIGRlPXsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24v''@;'; + put 'put ''anNvbiJ9LGNlJiYoZGUuQXV0aG9yaXphdGlvbj0iQmVhcmVyICIuY29uY2F0KGNlKSksdmU9e25hbWU6SixkZXNjcmlwdGlvbjpzZSxsYXVuY2hUeXBlOm9lfSxbNCx0aGlzLnJlcXVlc3RDbGllbnQucG9zdCgiIi5jb25jYXQodGhpcy5zZXJ2ZXJVcmwsIi9sYXVuY2hlci9jb250ZXh0cyIp''@;'; + put 'put ''LHZlLGNlKS5jYXRjaChmdW5jdGlvbihrZSl7dGhyb3coMCxOLnByZWZpeE1lc3NhZ2UpKGtlLCJFcnJvciB3aGlsZSBjcmVhdGluZyBsYXVuY2hlciBjb250ZXh0LiAiKX0pXTtjYXNlIDI6cmV0dXJuWzIsQWUuc2VudCgpLnJlc3VsdF19fSl9KX0scS5wcm90b3R5cGUuZWRpdENvbXB1dGVD''@;'; + put 'put ''b250ZXh0PWZ1bmN0aW9uKEosc2Usb2Upe3JldHVybiBhZSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgY2UsZGUsdmUsQWU7cmV0dXJuIFkodGhpcyxmdW5jdGlvbihrZSl7c3dpdGNoKGtlLmxhYmVsKXtjYXNlIDA6cmV0dXJuIHRoaXMudmFsaWRhdGVDb250ZXh0TmFtZShK''@;'; + put 'put ''KSx0aGlzLmlzRGVmYXVsdENvbnRleHQoSix0aGlzLmRlZmF1bHRDb21wdXRlQ29udGV4dHMsIkVkaXRpbmcgZGVmYXVsdCBTQVMgY29tcHV0ZSBjb250ZXh0cyBpcyBub3QgYWxsb3dlZC4iLCEwKSxbNCx0aGlzLmdldENvbXB1dGVDb250ZXh0QnlOYW1lKEosb2UpXTtjYXNlIDE6cmV0dXJu''@;'; + put 'put ''KGNlPWtlLnNlbnQoKSk/WzMsM106WzQsdGhpcy5nZXRDb21wdXRlQ29udGV4dEJ5SWQoc2UuaWQsb2UpXTtjYXNlIDI6Y2U9a2Uuc2VudCgpLGtlLmxhYmVsPTM7Y2FzZSAzOnJldHVybls0LHRoaXMucmVxdWVzdENsaWVudC5nZXQoIiIuY29uY2F0KHRoaXMuc2VydmVyVXJsLCIvY29tcHV0''@;'; + put 'put ''ZS9jb250ZXh0cy8iKS5jb25jYXQoY2UuaWQpLG9lKS5jYXRjaChmdW5jdGlvbihTZSl7dGhyb3cgU2UmJjQwND09PVNlLnN0YXR1cz9uZXcgRXJyb3IoIlRoZSBjb250ZXh0ICciLmNvbmNhdChKLCInIHdhcyBub3QgZm91bmQgb24gdGhpcyBzZXJ2ZXIuIikpOlNlfSldO2Nhc2UgNDpyZXR1''@;'; + put 'put ''cm4gZGU9a2Uuc2VudCgpLEFlPWRlLmV0YWcsWzQsdGhpcy5yZXF1ZXN0Q2xpZW50LnB1dCgiL2NvbXB1dGUvY29udGV4dHMvIi5jb25jYXQoKHZlPWRlLnJlc3VsdCkuaWQpLGllKGllKGllKHt9LHZlKSxzZSkse2F0dHJpYnV0ZXM6aWUoaWUoe30sdmUuYXR0cmlidXRlcyksc2UuYXR0cmli''@;'; + put 'put ''dXRlcyl9KSxvZSx7IklmLU1hdGNoIjpBZX0pXTtjYXNlIDU6cmV0dXJuWzIsa2Uuc2VudCgpXX19KX0pfSxxLnByb3RvdHlwZS5nZXRDb21wdXRlQ29udGV4dEJ5TmFtZT1mdW5jdGlvbihKLHNlKXtyZXR1cm4gYWUodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIG9lO3JldHVy''@;'; + put 'put ''biBZKHRoaXMsZnVuY3Rpb24oY2Upe3N3aXRjaChjZS5sYWJlbCl7Y2FzZSAwOnJldHVybls0LHRoaXMucmVxdWVzdENsaWVudC5nZXQoIiIuY29uY2F0KHRoaXMuc2VydmVyVXJsLCcvY29tcHV0ZS9jb250ZXh0cz9maWx0ZXI9ZXEobmFtZSwgIicpLmNvbmNhdChKLCciKScpLHNlKS5jYXRj''@;'; + put 'put ''aChmdW5jdGlvbihkZSl7dGhyb3coMCxOLnByZWZpeE1lc3NhZ2UpKGRlLCJFcnJvciB3aGlsZSBnZXR0aW5nIGNvbXB1dGUgY29udGV4dCBieSBuYW1lLiAiKX0pXTtjYXNlIDE6aWYoIShvZT1jZS5zZW50KCkucmVzdWx0KXx8IW9lLml0ZW1zfHwhb2UuaXRlbXMubGVuZ3RoKXRocm93IG5l''@;'; + put 'put ''dyBFcnJvcigiVGhlIGNvbnRleHQgJyIuY29uY2F0KEosIicgd2FzIG5vdCBmb3VuZCBhdCAnIikuY29uY2F0KHRoaXMuc2VydmVyVXJsLCInLiIpKTtyZXR1cm5bMixvZS5pdGVtc1swXV19fSl9KX0scS5wcm90b3R5cGUuZ2V0Q29tcHV0ZUNvbnRleHRCeUlkPWZ1bmN0aW9uKEosc2Upe3Jl''@;'; + put 'put ''dHVybiBhZSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gWSh0aGlzLGZ1bmN0aW9uKG9lKXtzd2l0Y2gob2UubGFiZWwpe2Nhc2UgMDpyZXR1cm5bNCx0aGlzLnJlcXVlc3RDbGllbnQuZ2V0KCIiLmNvbmNhdCh0aGlzLnNlcnZlclVybCwiL2NvbXB1dGUvY29udGV4dHMv''@;'; + put 'put ''IikuY29uY2F0KEopLHNlKS5jYXRjaChmdW5jdGlvbihjZSl7dGhyb3coMCxOLnByZWZpeE1lc3NhZ2UpKGNlLCJFcnJvciB3aGlsZSBnZXR0aW5nIGNvbXB1dGUgY29udGV4dCBieSBpZC4gIil9KV07Y2FzZSAxOnJldHVyblsyLG9lLnNlbnQoKS5yZXN1bHRdfX0pfSl9LHEucHJvdG90eXBl''@;'; + put 'put ''LmdldEV4ZWN1dGFibGVDb250ZXh0cz1mdW5jdGlvbihKLHNlKXtyZXR1cm4gYWUodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIG9lLGNlLGRlLHZlLEFlLGtlLFNlLFRlLEVlO3JldHVybiBZKHRoaXMsZnVuY3Rpb24oaGUpe3N3aXRjaChoZS5sYWJlbCl7Y2FzZSAwOnJldHVy''@;'; + put 'put ''bls0LHRoaXMucmVxdWVzdENsaWVudC5nZXQoIiIuY29uY2F0KHRoaXMuc2VydmVyVXJsLCIvY29tcHV0ZS9jb250ZXh0cz9saW1pdD0xMDAwMCIpLG51bGw9PXNlP3ZvaWQgMDpzZS5hY2Nlc3NfdG9rZW4pLmNhdGNoKGZ1bmN0aW9uKE8pe3Rocm93KDAsTi5wcmVmaXhNZXNzYWdlKShPLCJF''@;'; + put 'put ''cnJvciB3aGlsZSBmZXRjaGluZyBjb21wdXRlIGNvbnRleHRzLiIpfSldO2Nhc2UgMTpvZT1oZS5zZW50KCkucmVzdWx0LGRlPVtdLHZlPShjZT1vZS5pdGVtc3x8W10pLm1hcChmdW5jdGlvbihPKXt2YXIgej1bIiVwdXQgJj1zeXN1c2VyaWQ7Il07cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJu''@;'; + put 'put ''IEooInRlc3QtIi5jb25jYXQoTy5uYW1lKSx6LE8ubmFtZSxzZSxudWxsLCExLCEwLCEwKS5jYXRjaChmdW5jdGlvbihuZSl7cmV0dXJuIG5lfSl9fSksQWU9W10sa2U9MCxTZT12ZSxoZS5sYWJlbD0yO2Nhc2UgMjpyZXR1cm4ga2U8U2UubGVuZ3RoPyhFZT0oVGU9QWUpLnB1c2gsWzQsKDAs''@;'; + put 'put ''U2Vba2VdKSgpXSk6WzMsNV07Y2FzZSAzOkVlLmFwcGx5KFRlLFtoZS5zZW50KCldKSxoZS5sYWJlbD00O2Nhc2UgNDpyZXR1cm4ga2UrKyxbMywyXTtjYXNlIDU6cmV0dXJuIEFlLmZvckVhY2goZnVuY3Rpb24oTyx6KXtpZihPJiZPLmxvZyl0cnl7dmFyIHRlPSIiLHg9Ty5sb2cuc3BsaXQo''@;'; + put 'put ''IlxuIikuZmluZChmdW5jdGlvbihQKXtyZXR1cm4gUC5zdGFydHNXaXRoKCJTWVNVU0VSSUQ9Iil9KTt4JiYodGU9eC5yZXBsYWNlKCJTWVNVU0VSSUQ9IiwiIiksZGUucHVzaCh7Y3JlYXRlZEJ5OmNlW3pdLmNyZWF0ZWRCeSxpZDpjZVt6XS5pZCxuYW1lOmNlW3pdLm5hbWUsdmVyc2lvbjpj''@;'; + put 'put ''ZVt6XS52ZXJzaW9uLGF0dHJpYnV0ZXM6e3N5c1VzZXJJZDp0ZX19KSl9Y2F0Y2goUCl7dGhyb3cgUH19KSxbMixkZV19fSl9KX0scS5wcm90b3R5cGUuZGVsZXRlQ29tcHV0ZUNvbnRleHQ9ZnVuY3Rpb24oSixzZSl7cmV0dXJuIGFlKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3Zh''@;'; + put 'put ''ciBvZSxjZTtyZXR1cm4gWSh0aGlzLGZ1bmN0aW9uKGRlKXtzd2l0Y2goZGUubGFiZWwpe2Nhc2UgMDpyZXR1cm4gdGhpcy52YWxpZGF0ZUNvbnRleHROYW1lKEopLHRoaXMuaXNEZWZhdWx0Q29udGV4dChKLHRoaXMuZGVmYXVsdENvbXB1dGVDb250ZXh0cywiRGVsZXRpbmcgZGVmYXVsdCBT''@;'; + put 'put ''QVMgY29tcHV0ZSBjb250ZXh0cyBpcyBub3QgYWxsb3dlZC4iLCEwKSxvZT17IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxzZSYmKG9lLkF1dGhvcml6YXRpb249IkJlYXJlciAiLmNvbmNhdChzZSkpLFs0LHRoaXMuZ2V0Q29tcHV0ZUNvbnRleHRCeU5hbWUoSixzZSldO2Nh''@;'; + put 'put ''c2UgMTpyZXR1cm4gY2U9ZGUuc2VudCgpLFs0LHRoaXMucmVxdWVzdENsaWVudC5kZWxldGUoIiIuY29uY2F0KHRoaXMuc2VydmVyVXJsLCIvY29tcHV0ZS9jb250ZXh0cy8iKS5jb25jYXQoY2UuaWQpLHNlKV07Y2FzZSAyOnJldHVyblsyLGRlLnNlbnQoKV19fSl9KX0scS5wcm90b3R5cGUu''@;'; + put 'put ''dmFsaWRhdGVDb250ZXh0TmFtZT1mdW5jdGlvbihKKXtpZighSil0aHJvdyBuZXcgRXJyb3IoIkNvbnRleHQgbmFtZSBpcyByZXF1aXJlZC4iKX0scS5wcm90b3R5cGUuaXNEZWZhdWx0Q29udGV4dD1mdW5jdGlvbihKLHNlLG9lLGNlKXtpZih2b2lkIDA9PT1zZSYmKHNlPXRoaXMuZGVmYXVs''@;'; + put 'put ''dENvbXB1dGVDb250ZXh0cyksdm9pZCAwPT09b2UmJihvZT0iIiksdm9pZCAwPT09Y2UmJihjZT0hMSksc2UuaW5jbHVkZXMoSikpdGhyb3cgbmV3IEVycm9yKCIiLmNvbmNhdChvZSkuY29uY2F0KGNlPyJcbkRlZmF1bHQgY29udGV4dHM6IitzZS5tYXAoZnVuY3Rpb24oZGUsdmUpe3JldHVy''@;'; + put 'put ''biJcbiIuY29uY2F0KHZlKzEsIi4gIikuY29uY2F0KGRlKX0pOiIiKSl9LHF9KCk7US5Db250ZXh0TWFuYWdlcj1lZX0sODMwNjpmdW5jdGlvbihVLFEsWil7InVzZSBzdHJpY3QiO3ZhciBpZT10aGlzJiZ0aGlzLl9fYXdhaXRlcnx8ZnVuY3Rpb24ob2UsY2UsZGUsdmUpe3JldHVybiBuZXco''@;'; + put 'put ''ZGV8fChkZT1Qcm9taXNlKSkoZnVuY3Rpb24oQWUsa2Upe2Z1bmN0aW9uIFNlKEVlKXt0cnl7VGUodmUubmV4dChFZSkpfWNhdGNoKGhlKXtrZShoZSl9fWZ1bmN0aW9uIEllKEVlKXt0cnl7VGUodmUudGhyb3coRWUpKX1jYXRjaChoZSl7a2UoaGUpfX1mdW5jdGlvbiBUZShFZSl7dmFyIGhl''@;'; + put 'put ''O0VlLmRvbmU/QWUoRWUudmFsdWUpOihoZT1FZS52YWx1ZSxoZSBpbnN0YW5jZW9mIGRlP2hlOm5ldyBkZShmdW5jdGlvbihPKXtPKGhlKX0pKS50aGVuKFNlLEllKX1UZSgodmU9dmUuYXBwbHkob2UsY2V8fFtdKSkubmV4dCgpKX0pfSxhZT10aGlzJiZ0aGlzLl9fZ2VuZXJhdG9yfHxmdW5j''@;'; + put 'put ''dGlvbihvZSxjZSl7dmFyIGRlLHZlLEFlLGtlLFNlPXtsYWJlbDowLHNlbnQ6ZnVuY3Rpb24oKXtpZigxJkFlWzBdKXRocm93IEFlWzFdO3JldHVybiBBZVsxXX0sdHJ5czpbXSxvcHM6W119O3JldHVybiBrZT17bmV4dDpJZSgwKSx0aHJvdzpJZSgxKSxyZXR1cm46SWUoMil9LCJmdW5jdGlv''@;'; + put 'put ''biI9PXR5cGVvZiBTeW1ib2wmJihrZVtTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSxrZTtmdW5jdGlvbiBJZShUZSl7cmV0dXJuIGZ1bmN0aW9uKEVlKXtyZXR1cm4gZnVuY3Rpb24oaGUpe2lmKGRlKXRocm93IG5ldyBUeXBlRXJyb3IoIkdlbmVyYXRvciBpcyBh''@;'; + put 'put ''bHJlYWR5IGV4ZWN1dGluZy4iKTtmb3IoO1NlOyl0cnl7aWYoZGU9MSx2ZSYmKEFlPTImaGVbMF0/dmUucmV0dXJuOmhlWzBdP3ZlLnRocm93fHwoKEFlPXZlLnJldHVybikmJkFlLmNhbGwodmUpLDApOnZlLm5leHQpJiYhKEFlPUFlLmNhbGwodmUsaGVbMV0pKS5kb25lKXJldHVybiBBZTtz''@;'; + put 'put ''d2l0Y2godmU9MCxBZSYmKGhlPVsyJmhlWzBdLEFlLnZhbHVlXSksaGVbMF0pe2Nhc2UgMDpjYXNlIDE6QWU9aGU7YnJlYWs7Y2FzZSA0OnJldHVybiBTZS5sYWJlbCsrLHt2YWx1ZTpoZVsxXSxkb25lOiExfTtjYXNlIDU6U2UubGFiZWwrKyx2ZT1oZVsxXSxoZT1bMF07Y29udGludWU7Y2Fz''@;'; + put 'put ''ZSA3OmhlPVNlLm9wcy5wb3AoKSxTZS50cnlzLnBvcCgpO2NvbnRpbnVlO2RlZmF1bHQ6aWYoISgoQWU9KEFlPVNlLnRyeXMpLmxlbmd0aD4wJiZBZVtBZS5sZW5ndGgtMV0pfHw2IT09aGVbMF0mJjIhPT1oZVswXSkpe1NlPTA7Y29udGludWV9aWYoMz09PWhlWzBdJiYoIUFlfHxoZVsxXT5B''@;'; + put 'put ''ZVswXSYmaGVbMV08QWVbM10pKXtTZS5sYWJlbD1oZVsxXTticmVha31pZig2PT09aGVbMF0mJlNlLmxhYmVsPEFlWzFdKXtTZS5sYWJlbD1BZVsxXSxBZT1oZTticmVha31pZihBZSYmU2UubGFiZWw8QWVbMl0pe1NlLmxhYmVsPUFlWzJdLFNlLm9wcy5wdXNoKGhlKTticmVha31BZVsyXSYm''@;'; + put 'put ''U2Uub3BzLnBvcCgpLFNlLnRyeXMucG9wKCk7Y29udGludWV9aGU9Y2UuY2FsbChvZSxTZSl9Y2F0Y2goTyl7aGU9WzYsT10sdmU9MH1maW5hbGx5e2RlPUFlPTB9aWYoNSZoZVswXSl0aHJvdyBoZVsxXTtyZXR1cm57dmFsdWU6aGVbMF0/aGVbMV06dm9pZCAwLGRvbmU6ITB9fShbVGUsRWVd''@;'; + put 'put ''KX19fSxZPXRoaXMmJnRoaXMuX19zcHJlYWRBcnJheXx8ZnVuY3Rpb24ob2UsY2UsZGUpe2lmKGRlfHwyPT09YXJndW1lbnRzLmxlbmd0aClmb3IodmFyIHZlLEFlPTAsa2U9Y2UubGVuZ3RoO0FlPGtlO0FlKyspIXZlJiZBZSBpbiBjZXx8KHZlfHwodmU9QXJyYXkucHJvdG90eXBlLnNsaWNl''@;'; + put 'put ''LmNhbGwoY2UsMCxBZSkpLHZlW0FlXT1jZVtBZV0pO3JldHVybiBvZS5jb25jYXQodmV8fEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGNlKSl9O09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxRLlNBUzlBcGlDbGllbnQ9dm9pZCAwO3ZhciBXPVoo''@;'; + put 'put ''Nzc1NyksTj1aKDYyMzApLGVlPVooNzk1KSxxPVooNTkyOCksSj1mdW5jdGlvbigpe2Z1bmN0aW9uIG9lKGNlLGRlLHZlKXt0aGlzLnNlcnZlclVybD1jZSx0aGlzLmpvYnNQYXRoPWRlLGNlJiYoMCxxLmlzVXJsKShjZSksdGhpcy5yZXF1ZXN0Q2xpZW50PW5ldyBlZS5TYXM5UmVxdWVzdENs''@;'; + put 'put ''aWVudChjZSx2ZSl9cmV0dXJuIG9lLnByb3RvdHlwZS5nZXRDb25maWc9ZnVuY3Rpb24oKXtyZXR1cm57c2VydmVyVXJsOnRoaXMuc2VydmVyVXJsfX0sb2UucHJvdG90eXBlLnNldENvbmZpZz1mdW5jdGlvbihjZSl7Y2UmJih0aGlzLnNlcnZlclVybD1jZSl9LG9lLnByb3RvdHlwZS5leGVj''@;'; + put 'put ''dXRlU2NyaXB0PWZ1bmN0aW9uKGNlLGRlLHZlKXtyZXR1cm4gaWUodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIEFlLGtlLFNlLEllLFRlLEVlLGhlO3JldHVybiBhZSh0aGlzLGZ1bmN0aW9uKE8pe3N3aXRjaChPLmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsdGhpcy5yZXF1ZXN0''@;'; + put 'put ''Q2xpZW50LmxvZ2luKGRlLHZlLHRoaXMuam9ic1BhdGgpXTtjYXNlIDE6cmV0dXJuIE8uc2VudCgpLEFlPVsiZGF0YSBfbnVsbF87IiwiZmlsZSBfd2Vib3V0OyIsInB1dCAnRXhlY3V0ZWQgc2FzanMgcnVuJzsiLCJydW47Il0sa2U9c2UoWShZKFtdLGNlLCEwKSxBZSwhMCkuam9pbigiXG4i''@;'; + put 'put ''KSksU2U9Ii9Vc2VyIEZvbGRlcnMvIi5jb25jYXQoZGUsIi9NeSBGb2xkZXIvc2FzanMvcnVubmVyIiksSWU9Im11bHRpcGFydC9mb3JtLWRhdGE7IGJvdW5kYXJ5PSIra2UuZ2V0Qm91bmRhcnkoKSxUZT1rZS5nZXRMZW5ndGhTeW5jKCksRWU9eyJjYWNoZS1jb250cm9sIjoibm8tY2FjaGUi''@;'; + put 'put ''LEFjY2VwdDoiKi8qIiwiQ29udGVudC1UeXBlIjpJZSwiQ29udGVudC1MZW5ndGgiOlRlLENvbm5lY3Rpb246ImtlZXAtYWxpdmUifSxoZT0iIi5jb25jYXQodGhpcy5qb2JzUGF0aCwiLz8iKS5jb25jYXQoIl9wcm9ncmFtPSIrU2UrIiZfZGVidWc9bG9nIiksWzQsdGhpcy5yZXF1ZXN0Q2xp''@;'; + put 'put ''ZW50LnBvc3QoaGUsa2Usdm9pZCAwLEllLEVlKV07Y2FzZSAyOnJldHVyblsyLE8uc2VudCgpLnJlc3VsdF19fSl9KX0sb2V9KCk7US5TQVM5QXBpQ2xpZW50PUo7dmFyIHNlPWZ1bmN0aW9uKG9lKXt2YXIgY2U9bmV3IE4sZGU9InNhc2pzLWV4ZWN1dGUtc2FzOS0iLmNvbmNhdCgoMCxXLmdl''@;'; + put 'put ''bmVyYXRlVGltZXN0YW1wKSgiIiksIi5zYXMiKTtyZXR1cm4gY2UuYXBwZW5kKGRlLG9lLHtmaWxlbmFtZTpkZSxjb250ZW50VHlwZToidGV4dC9wbGFpbiJ9KSxjZX19LDk4MjE6ZnVuY3Rpb24oVSxRLFopeyJ1c2Ugc3RyaWN0Ijt2YXIgaWU9Wig0MTU1KSxhZT1aKDUxMDgpLFk9dGhpcyYm''@;'; + put 'put ''dGhpcy5fX2F3YWl0ZXJ8fGZ1bmN0aW9uKEVlLGhlLE8seil7cmV0dXJuIG5ldyhPfHwoTz1Qcm9taXNlKSkoZnVuY3Rpb24obmUsdGUpe2Z1bmN0aW9uIHgoVCl7dHJ5e1Yoei5uZXh0KFQpKX1jYXRjaChTKXt0ZShTKX19ZnVuY3Rpb24gUChUKXt0cnl7Vih6LnRocm93KFQpKX1jYXRjaChT''@;'; + put 'put ''KXt0ZShTKX19ZnVuY3Rpb24gVihUKXt2YXIgUztULmRvbmU/bmUoVC52YWx1ZSk6KFM9VC52YWx1ZSxTIGluc3RhbmNlb2YgTz9TOm5ldyBPKGZ1bmN0aW9uKEYpe0YoUyl9KSkudGhlbih4LFApfVYoKHo9ei5hcHBseShFZSxoZXx8W10pKS5uZXh0KCkpfSl9LFc9dGhpcyYmdGhpcy5fX2dl''@;'; + put 'put ''bmVyYXRvcnx8ZnVuY3Rpb24oRWUsaGUpe3ZhciBPLHosbmUsdGUseD17bGFiZWw6MCxzZW50OmZ1bmN0aW9uKCl7aWYoMSZuZVswXSl0aHJvdyBuZVsxXTtyZXR1cm4gbmVbMV19LHRyeXM6W10sb3BzOltdfTtyZXR1cm4gdGU9e25leHQ6UCgwKSx0aHJvdzpQKDEpLHJldHVybjpQKDIpfSwi''@;'; + put 'put ''ZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYodGVbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSksdGU7ZnVuY3Rpb24gUChWKXtyZXR1cm4gZnVuY3Rpb24oVCl7cmV0dXJuIGZ1bmN0aW9uKFMpe2lmKE8pdGhyb3cgbmV3IFR5cGVFcnJvcigiR2VuZXJhdG9yIGlz''@;'; + put 'put ''IGFscmVhZHkgZXhlY3V0aW5nLiIpO2Zvcig7eDspdHJ5e2lmKE89MSx6JiYobmU9MiZTWzBdP3oucmV0dXJuOlNbMF0/ei50aHJvd3x8KChuZT16LnJldHVybikmJm5lLmNhbGwoeiksMCk6ei5uZXh0KSYmIShuZT1uZS5jYWxsKHosU1sxXSkpLmRvbmUpcmV0dXJuIG5lO3N3aXRjaCh6PTAs''@;'; + put 'put ''bmUmJihTPVsyJlNbMF0sbmUudmFsdWVdKSxTWzBdKXtjYXNlIDA6Y2FzZSAxOm5lPVM7YnJlYWs7Y2FzZSA0OnJldHVybiB4LmxhYmVsKysse3ZhbHVlOlNbMV0sZG9uZTohMX07Y2FzZSA1OngubGFiZWwrKyx6PVNbMV0sUz1bMF07Y29udGludWU7Y2FzZSA3OlM9eC5vcHMucG9wKCkseC50''@;'; + put 'put ''cnlzLnBvcCgpO2NvbnRpbnVlO2RlZmF1bHQ6aWYoISgobmU9KG5lPXgudHJ5cykubGVuZ3RoPjAmJm5lW25lLmxlbmd0aC0xXSl8fDYhPT1TWzBdJiYyIT09U1swXSkpe3g9MDtjb250aW51ZX1pZigzPT09U1swXSYmKCFuZXx8U1sxXT5uZVswXSYmU1sxXTxuZVszXSkpe3gubGFiZWw9U1sx''@;'; + put 'put ''XTticmVha31pZig2PT09U1swXSYmeC5sYWJlbDxuZVsxXSl7eC5sYWJlbD1uZVsxXSxuZT1TO2JyZWFrfWlmKG5lJiZ4LmxhYmVsPG5lWzJdKXt4LmxhYmVsPW5lWzJdLHgub3BzLnB1c2goUyk7YnJlYWt9bmVbMl0mJngub3BzLnBvcCgpLHgudHJ5cy5wb3AoKTtjb250aW51ZX1TPWhlLmNh''@;'; + put 'put ''bGwoRWUseCl9Y2F0Y2goRil7Uz1bNixGXSx6PTB9ZmluYWxseXtPPW5lPTB9aWYoNSZTWzBdKXRocm93IFNbMV07cmV0dXJue3ZhbHVlOlNbMF0/U1sxXTp2b2lkIDAsZG9uZTohMH19KFtWLFRdKX19fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSks''@;'; + put 'put ''US5TQVNWaXlhQXBpQ2xpZW50PXZvaWQgMDt2YXIgTj1aKDU5MjgpLGVlPVooNjIzMCkscT1aKDEzOTUpLEo9Wig2OTAzKSxzZT1aKDY3Miksb2U9Wig5MDk3KSxjZT1aKDk3NzgpLGRlPVooMTM0MyksdmU9Wig3MDQpLEFlPVooNjQ5Niksa2U9Wig1NDAxKSxTZT1aKDM1NjkpLEllPVooMzY2''@;'; + put 'put ''KSxUZT1mdW5jdGlvbigpe2Z1bmN0aW9uIEVlKGhlLE8seixuZSl7dGhpcy5zZXJ2ZXJVcmw9aGUsdGhpcy5yb290Rm9sZGVyTmFtZT1PLHRoaXMuY29udGV4dE5hbWU9eix0aGlzLnJlcXVlc3RDbGllbnQ9bmUsdGhpcy5fZGVidWc9ITEsdGhpcy5zZXNzaW9uTWFuYWdlcj1uZXcgSi5TZXNz''@;'; + put 'put ''aW9uTWFuYWdlcih0aGlzLnNlcnZlclVybCx0aGlzLmNvbnRleHROYW1lLHRoaXMucmVxdWVzdENsaWVudCksdGhpcy5jb250ZXh0TWFuYWdlcj1uZXcgc2UuQ29udGV4dE1hbmFnZXIodGhpcy5zZXJ2ZXJVcmwsdGhpcy5yZXF1ZXN0Q2xpZW50KSx0aGlzLmZvbGRlck1hcD1uZXcgTWFwLGhl''@;'; + put 'put ''JiYoMCxOLmlzVXJsKShoZSl9cmV0dXJuIEVlLnByb3RvdHlwZS5hcHBlbmRSZXF1ZXN0PWZ1bmN0aW9uKGhlLE8seil7dGhpcy5yZXF1ZXN0Q2xpZW50LmFwcGVuZFJlcXVlc3QoaGUsTyx6KX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KEVlLnByb3RvdHlwZSwiZGVidWciLHtnZXQ6ZnVuY3Rp''@;'; + put 'put ''b24oKXtyZXR1cm4gdGhpcy5fZGVidWd9LHNldDpmdW5jdGlvbihoZSl7dGhpcy5fZGVidWc9aGUsdGhpcy5zZXNzaW9uTWFuYWdlciYmKHRoaXMuc2Vzc2lvbk1hbmFnZXIuZGVidWc9aGUpfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLEVlLnByb3RvdHlwZS5nZXRKb2JzSW5G''@;'; + put 'put ''b2xkZXI9ZnVuY3Rpb24oaGUpe3JldHVybiBZKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBPO3JldHVybiBXKHRoaXMsZnVuY3Rpb24oeil7c3dpdGNoKHoubGFiZWwpe2Nhc2UgMDpyZXR1cm4gTz0oMCxOLmlzUmVsYXRpdmVQYXRoKShoZSk/IiIuY29uY2F0KHRoaXMucm9v''@;'; + put 'put ''dEZvbGRlck5hbWUsIi8iKS5jb25jYXQoaGUpOmhlLHRoaXMuZm9sZGVyTWFwLmdldChPKT9bMix0aGlzLmZvbGRlck1hcC5nZXQoTyldOls0LHRoaXMucG9wdWxhdGVGb2xkZXJNYXAoTyldO2Nhc2UgMTpyZXR1cm4gei5zZW50KCksWzIsdGhpcy5mb2xkZXJNYXAuZ2V0KE8pXX19KX0pfSxF''@;'; + put 'put ''ZS5wcm90b3R5cGUuZ2V0Q29uZmlnPWZ1bmN0aW9uKCl7cmV0dXJue3NlcnZlclVybDp0aGlzLnNlcnZlclVybCxyb290Rm9sZGVyTmFtZTp0aGlzLnJvb3RGb2xkZXJOYW1lfX0sRWUucHJvdG90eXBlLnNldENvbmZpZz1mdW5jdGlvbihoZSxPKXtoZSYmKHRoaXMuc2VydmVyVXJsPWhlKSxP''@;'; + put 'put ''JiYodGhpcy5yb290Rm9sZGVyTmFtZT1PKX0sRWUucHJvdG90eXBlLmdldENvbXB1dGVDb250ZXh0cz1mdW5jdGlvbihoZSl7cmV0dXJuIFkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIFcodGhpcyxmdW5jdGlvbihPKXtzd2l0Y2goTy5sYWJlbCl7Y2FzZSAwOnJldHVy''@;'; + put 'put ''bls0LHRoaXMuY29udGV4dE1hbmFnZXIuZ2V0Q29tcHV0ZUNvbnRleHRzKGhlKV07Y2FzZSAxOnJldHVyblsyLE8uc2VudCgpXX19KX0pfSxFZS5wcm90b3R5cGUuZ2V0RGVmYXVsdENvbXB1dGVDb250ZXh0cz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmNvbnRleHRNYW5hZ2VyLmdldERlZmF1''@;'; + put 'put ''bHRDb21wdXRlQ29udGV4dHN9LEVlLnByb3RvdHlwZS5nZXRMYXVuY2hlckNvbnRleHRzPWZ1bmN0aW9uKGhlKXtyZXR1cm4gWSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gVyh0aGlzLGZ1bmN0aW9uKE8pe3N3aXRjaChPLmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsdGhp''@;'; + put 'put ''cy5jb250ZXh0TWFuYWdlci5nZXRMYXVuY2hlckNvbnRleHRzKGhlKV07Y2FzZSAxOnJldHVyblsyLE8uc2VudCgpXX19KX0pfSxFZS5wcm90b3R5cGUuZ2V0RXhlY3V0YWJsZUNvbnRleHRzPWZ1bmN0aW9uKGhlKXtyZXR1cm4gWSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIg''@;'; + put 'put ''TztyZXR1cm4gVyh0aGlzLGZ1bmN0aW9uKHope3N3aXRjaCh6LmxhYmVsKXtjYXNlIDA6cmV0dXJuIE89dGhpcy5leGVjdXRlU2NyaXB0LmJpbmQodGhpcyksWzQsdGhpcy5jb250ZXh0TWFuYWdlci5nZXRFeGVjdXRhYmxlQ29udGV4dHMoTyxoZSldO2Nhc2UgMTpyZXR1cm5bMix6LnNlbnQo''@;'; + put 'put ''KV19fSl9KX0sRWUucHJvdG90eXBlLmNyZWF0ZVNlc3Npb249ZnVuY3Rpb24oaGUsTyl7cmV0dXJuIFkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIHosbmUsdGU7cmV0dXJuIFcodGhpcyxmdW5jdGlvbih4KXtzd2l0Y2goeC5sYWJlbCl7Y2FzZSAwOnJldHVybiB6PXsiQ29u''@;'; + put 'put ''dGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LE8mJih6LkF1dGhvcml6YXRpb249IkJlYXJlciAiLmNvbmNhdChPKSksWzQsdGhpcy5yZXF1ZXN0Q2xpZW50LmdldCgiL2NvbXB1dGUvY29udGV4dHM/bGltaXQ9MTAwMDAiLE8pXTtjYXNlIDE6aWYobmU9eC5zZW50KCkucmVzdWx0LCEo''@;'; + put 'put ''dGU9bmUuaXRlbXMmJm5lLml0ZW1zLmxlbmd0aD9uZS5pdGVtcy5maW5kKGZ1bmN0aW9uKFApe3JldHVybiBQLm5hbWU9PT1oZX0pOm51bGwpKXRocm93IG5ldyBFcnJvcigiRXhlY3V0aW9uIGNvbnRleHQgIi5jb25jYXQoaGUsIiBub3QgZm91bmQuIikpO3JldHVybls0LHRoaXMucmVxdWVz''@;'; + put 'put ''dENsaWVudC5wb3N0KCIvY29tcHV0ZS9jb250ZXh0cy8iLmNvbmNhdCh0ZS5pZCwiL3Nlc3Npb25zIikse30sTyldO2Nhc2UgMjpyZXR1cm5bMix4LnNlbnQoKS5yZXN1bHRdfX0pfSl9LEVlLnByb3RvdHlwZS5jcmVhdGVDb21wdXRlQ29udGV4dD1mdW5jdGlvbihoZSxPLHosbmUsdGUseCl7''@;'; + put 'put ''cmV0dXJuIFkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIFcodGhpcyxmdW5jdGlvbihQKXtzd2l0Y2goUC5sYWJlbCl7Y2FzZSAwOnJldHVybls0LHRoaXMuY29udGV4dE1hbmFnZXIuY3JlYXRlQ29tcHV0ZUNvbnRleHQoaGUsTyx6LG5lLHRlLHgpXTtjYXNlIDE6cmV0''@;'; + put 'put ''dXJuWzIsUC5zZW50KCldfX0pfSl9LEVlLnByb3RvdHlwZS5jcmVhdGVMYXVuY2hlckNvbnRleHQ9ZnVuY3Rpb24oaGUsTyx6LG5lKXtyZXR1cm4gdm9pZCAwPT09eiYmKHo9ImRpcmVjdCIpLFkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIFcodGhpcyxmdW5jdGlvbih0''@;'; + put 'put ''ZSl7c3dpdGNoKHRlLmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsdGhpcy5jb250ZXh0TWFuYWdlci5jcmVhdGVMYXVuY2hlckNvbnRleHQoaGUsTyx6LG5lKV07Y2FzZSAxOnJldHVyblsyLHRlLnNlbnQoKV19fSl9KX0sRWUucHJvdG90eXBlLmVkaXRDb21wdXRlQ29udGV4dD1mdW5jdGlvbiho''@;'; + put 'put ''ZSxPLHope3JldHVybiBZKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBXKHRoaXMsZnVuY3Rpb24obmUpe3N3aXRjaChuZS5sYWJlbCl7Y2FzZSAwOnJldHVybls0LHRoaXMuY29udGV4dE1hbmFnZXIuZWRpdENvbXB1dGVDb250ZXh0KGhlLE8seildO2Nhc2UgMTpyZXR1''@;'; + put 'put ''cm5bMixuZS5zZW50KCldfX0pfSl9LEVlLnByb3RvdHlwZS5kZWxldGVDb21wdXRlQ29udGV4dD1mdW5jdGlvbihoZSxPKXtyZXR1cm4gWSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gVyh0aGlzLGZ1bmN0aW9uKHope3N3aXRjaCh6LmxhYmVsKXtjYXNlIDA6cmV0dXJu''@;'; + put 'put ''WzQsdGhpcy5jb250ZXh0TWFuYWdlci5kZWxldGVDb21wdXRlQ29udGV4dChoZSxPKV07Y2FzZSAxOnJldHVyblsyLHouc2VudCgpXX19KX0pfSxFZS5wcm90b3R5cGUuZXhlY3V0ZVNjcmlwdD1mdW5jdGlvbihoZSxPLHosbmUsdGUseCxQLFYsVCxTLEYpe3JldHVybiB2b2lkIDA9PT10ZSYm''@;'; + put 'put ''KHRlPW51bGwpLHZvaWQgMD09PXgmJih4PSExKSx2b2lkIDA9PT1QJiYoUD0hMSksdm9pZCAwPT09ViYmKFY9ITApLHZvaWQgMD09PVMmJihTPSExKSxZKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBXKHRoaXMsZnVuY3Rpb24oeWUpe3JldHVyblsyLCgwLGtlLmV4ZWN1''@;'; + put 'put ''dGVTY3JpcHQpKHRoaXMucmVxdWVzdENsaWVudCx0aGlzLnNlc3Npb25NYW5hZ2VyLHRoaXMucm9vdEZvbGRlck5hbWUsaGUsTyx6LG5lLHRlLHgsUCxWLFQsUyxGKV19KX0pfSxFZS5wcm90b3R5cGUuZ2V0Rm9sZGVyPWZ1bmN0aW9uKGhlLE8pe3JldHVybiBZKHRoaXMsdm9pZCAwLHZvaWQg''@;'; + put 'put ''MCxmdW5jdGlvbigpe3JldHVybiBXKHRoaXMsZnVuY3Rpb24oeil7c3dpdGNoKHoubGFiZWwpe2Nhc2UgMDpyZXR1cm5bNCx0aGlzLnJlcXVlc3RDbGllbnQuZ2V0KCIvZm9sZGVycy9mb2xkZXJzL0BpdGVtP3BhdGg9Ii5jb25jYXQoaGUpLE8pLnRoZW4oZnVuY3Rpb24obmUpe3JldHVybiBu''@;'; + put 'put ''ZS5yZXN1bHR9KV07Y2FzZSAxOnJldHVyblsyLHouc2VudCgpXX19KX0pfSxFZS5wcm90b3R5cGUuY3JlYXRlRmlsZT1mdW5jdGlvbihoZSxPLHosbmUsdGUpe3JldHVybiBZKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciB4LFA7cmV0dXJuIFcodGhpcyxmdW5jdGlvbihWKXtz''@;'; + put 'put ''d2l0Y2goVi5sYWJlbCl7Y2FzZSAwOmlmKCF6JiYhbmUpdGhyb3cgbmV3IEVycm9yKCJQYXRoIG9yIFVSSSBvZiB0aGUgcGFyZW50IGZvbGRlciBpcyByZXF1aXJlZC4iKTtyZXR1cm4gbmV8fCF6P1szLDJdOls0LHRoaXMuZ2V0Rm9sZGVyVXJpKHosdGUpXTtjYXNlIDE6bmU9Vi5zZW50KCks''@;'; + put 'put ''Vi5sYWJlbD0yO2Nhc2UgMjpyZXR1cm4geD17QWNjZXB0OiJhcHBsaWNhdGlvbi92bmQuc2FzLmZpbGUranNvbiIsIkNvbnRlbnQtRGlzcG9zaXRpb24iOidmaWxlbmFtZT0iJy5jb25jYXQoaGUsJyI7Jyl9LChQPW5ldyBlZSkuYXBwZW5kKCJmaWxlIixPLGhlKSxbNCx0aGlzLnJlcXVlc3RD''@;'; + put 'put ''bGllbnQucG9zdCgiL2ZpbGVzL2ZpbGVzP3BhcmVudEZvbGRlclVyaT0iLmNvbmNhdChuZSwiJnR5cGVEZWZOYW1lPWZpbGUjcmF3VXBsb2FkIiksUCx0ZSwibXVsdGlwYXJ0L2Zvcm0tZGF0YTsgYm91bmRhcnk9IitQLl9ib3VuZGFyeSx4KV07Y2FzZSAzOnJldHVyblsyLFYuc2VudCgpLnJl''@;'; + put 'put ''c3VsdF19fSl9KX0sRWUucHJvdG90eXBlLmNyZWF0ZUZvbGRlcj1mdW5jdGlvbihoZSxPLHosbmUsdGUpe3JldHVybiBZKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciB4LFAsVixULEY7cmV0dXJuIFcodGhpcyxmdW5jdGlvbih5ZSl7c3dpdGNoKHllLmxhYmVsKXtjYXNlIDA6''@;'; + put 'put ''aWYoeD1pZS5sb2dnZXJ8fGFlLCFPJiYheil0aHJvdyBuZXcgRXJyb3IoIlBhdGggb3IgVVJJIG9mIHRoZSBwYXJlbnQgZm9sZGVyIGlzIHJlcXVpcmVkLiIpO3JldHVybiB6fHwhTz9bMyw2XTpbNCx0aGlzLmdldEZvbGRlclVyaShPLG5lKV07Y2FzZSAxOmlmKHo9eWUuc2VudCgpKXJldHVy''@;'; + put 'put ''blszLDNdO2lmKHguaW5mbygiUGFyZW50IGZvbGRlciBhdCBwYXRoICciLmNvbmNhdChPLCInIGlzIG5vdCBwcmVzZW50LiIpKSxQPU8uc3Vic3RyaW5nKDAsTy5sYXN0SW5kZXhPZigiLyIpKSxWPSIiLmNvbmNhdChPLnNwbGl0KCIvIikucG9wKCkpLCIiPT09UCl0aHJvdyBuZXcgcS5Sb290''@;'; + put 'put ''Rm9sZGVyTm90Rm91bmRFcnJvcihPLHRoaXMuc2VydmVyVXJsLG5lKTtyZXR1cm4geC5pbmZvKCJDcmVhdGluZyBwYXJlbnQgZm9sZGVyOlxuJyIuY29uY2F0KFYsIicgaW4gJyIpLmNvbmNhdChQLCInIikpLFs0LHRoaXMuY3JlYXRlRm9sZGVyKFYsUCx2b2lkIDAsbmUpXTtjYXNlIDI6cmV0''@;'; + put 'put ''dXJuIFQ9eWUuc2VudCgpLHguaW5mbygiUGFyZW50IGZvbGRlciAnIi5jb25jYXQoViwiJyBoYXMgYmVlbiBzdWNjZXNzZnVsbHkgY3JlYXRlZC4iKSksej0iL2ZvbGRlcnMvZm9sZGVycy8iLmNvbmNhdChULmlkKSxbMyw2XTtjYXNlIDM6cmV0dXJuIHRlJiZuZT9bNCx0aGlzLmdldEZvbGRl''@;'; + put 'put ''clVyaShPKyIvIitoZSxuZSldOlszLDZdO2Nhc2UgNDpyZXR1cm4geWUuc2VudCgpP1s0LHRoaXMuZGVsZXRlRm9sZGVyKE8rIi8iK2hlLG5lKV06WzMsNl07Y2FzZSA1OnllLnNlbnQoKSx5ZS5sYWJlbD02O2Nhc2UgNjpyZXR1cm5bNCx0aGlzLnJlcXVlc3RDbGllbnQucG9zdCgiL2ZvbGRl''@;'; + put 'put ''cnMvZm9sZGVycz9wYXJlbnRGb2xkZXJVcmk9Ii5jb25jYXQoeikse25hbWU6aGUsdHlwZToiZm9sZGVyIn0sbmUpXTtjYXNlIDc6cmV0dXJuIEY9eWUuc2VudCgpLnJlc3VsdCxbNCx0aGlzLnBvcHVsYXRlRm9sZGVyTWFwKCIiLmNvbmNhdChPLCIvIikuY29uY2F0KGhlKSxuZSldO2Nhc2Ug''@;'; + put 'put ''ODpyZXR1cm4geWUuc2VudCgpLFsyLEZdfX0pfSl9LEVlLnByb3RvdHlwZS5jcmVhdGVKb2JEZWZpbml0aW9uPWZ1bmN0aW9uKGhlLE8seixuZSx0ZSl7cmV0dXJuIFkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIFcodGhpcyxmdW5jdGlvbih4KXtzd2l0Y2goeC5sYWJl''@;'; + put 'put ''bCl7Y2FzZSAwOmlmKCF6JiYhbmUpdGhyb3cgbmV3IEVycm9yKCJQYXRoIHRvIG9yIFVSSSBvZiB0aGUgcGFyZW50IGZvbGRlciBpcyByZXF1aXJlZC4iKTtyZXR1cm4gbmV8fCF6P1szLDJdOls0LHRoaXMuZ2V0Rm9sZGVyVXJpKHosdGUpXTtjYXNlIDE6bmU9eC5zZW50KCkseC5sYWJlbD0y''@;'; + put 'put ''O2Nhc2UgMjpyZXR1cm5bNCx0aGlzLnJlcXVlc3RDbGllbnQucG9zdCgiIi5jb25jYXQodGhpcy5zZXJ2ZXJVcmwsIi9qb2JEZWZpbml0aW9ucy9kZWZpbml0aW9ucz9wYXJlbnRGb2xkZXJVcmk9IikuY29uY2F0KG5lKSx7bmFtZTpoZSxwYXJhbWV0ZXJzOlt7bmFtZToiX2FkZGplc2JlZ2lu''@;'; + put 'put ''ZW5kbWFjcm9zIix0eXBlOiJDSEFSQUNURVIiLGRlZmF1bHRWYWx1ZToiZmFsc2UifV0sdHlwZToiQ29tcHV0ZSIsY29kZTpPfSx0ZSldO2Nhc2UgMzpyZXR1cm5bMix4LnNlbnQoKV19fSl9KX0sRWUucHJvdG90eXBlLmdldEF1dGhDb2RlPWZ1bmN0aW9uKGhlKXtyZXR1cm4gWSh0aGlzLHZv''@;'; + put 'put ''aWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgTyx6PXRoaXM7cmV0dXJuIFcodGhpcyxmdW5jdGlvbihuZSl7c3dpdGNoKG5lLmxhYmVsKXtjYXNlIDA6cmV0dXJuIE89IiIuY29uY2F0KHRoaXMuc2VydmVyVXJsLCIvU0FTTG9nb24vb2F1dGgvYXV0aG9yaXplP2NsaWVudF9pZD0iKS5jb25j''@;'; + put 'put ''YXQoaGUsIiZyZXNwb25zZV90eXBlPWNvZGUiKSxbNCx0aGlzLnJlcXVlc3RDbGllbnQuZ2V0KE8sdm9pZCAwLCJ0ZXh0L3BsYWluIikudGhlbihmdW5jdGlvbih0ZSl7cmV0dXJuIHRlLnJlc3VsdH0pLnRoZW4oZnVuY3Rpb24odGUpe3JldHVybiBZKHosdm9pZCAwLHZvaWQgMCxmdW5jdGlv''@;'; + put 'put ''bigpe3ZhciB4LFAsVixUO3JldHVybiBXKHRoaXMsZnVuY3Rpb24oUyl7c3dpdGNoKFMubGFiZWwpe2Nhc2UgMDpyZXR1cm4geD0iIiwoMCxvZS5pc0F1dGhvcml6ZUZvcm1SZXF1aXJlZCkodGUpP1s0LHRoaXMucmVxdWVzdENsaWVudC5hdXRob3JpemUodGUpXTpbMywyXTtjYXNlIDE6cmV0''@;'; + put 'put ''dXJuIFA9Uy5zZW50KCksVj1QLnNwbGl0KCI8Ym9keT4iKVsxXS5zcGxpdCgiPC9ib2R5PiIpWzBdLChUPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpKS5pbm5lckhUTUw9VixbMix4PVQucXVlcnlTZWxlY3RvcigiLmluZm9ib3ggaDQiKS5pbm5lclRleHRdO2Nhc2UgMjpyZXR1cm4g''@;'; + put 'put ''Vj10ZS5zcGxpdCgiPGJvZHk+IilbMV0uc3BsaXQoIjwvYm9keT4iKVswXSwoVD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSkuaW5uZXJIVE1MPVYsVCYmKHg9VC5xdWVyeVNlbGVjdG9yKCIuaW5mb2JveCBoNCIpLmlubmVyVGV4dCksWzIseF19fSl9KX0pLmNhdGNoKGZ1bmN0aW9u''@;'; + put 'put ''KCl7cmV0dXJuIG51bGx9KV07Y2FzZSAxOnJldHVyblsyLG5lLnNlbnQoKV19fSl9KX0sRWUucHJvdG90eXBlLmdldEFjY2Vzc1Rva2VuPWZ1bmN0aW9uKGhlLE8seil7cmV0dXJuIFkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIFcodGhpcyxmdW5jdGlvbihuZSl7cmV0''@;'; + put 'put ''dXJuWzIsKDAsU2UuZ2V0QWNjZXNzVG9rZW5Gb3JWaXlhKSh0aGlzLnJlcXVlc3RDbGllbnQsaGUsTyx6KV19KX0pfSxFZS5wcm90b3R5cGUucmVmcmVzaFRva2Vucz1mdW5jdGlvbihoZSxPLHope3JldHVybiBZKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBXKHRoaXMs''@;'; + put 'put ''ZnVuY3Rpb24obmUpe3JldHVyblsyLCgwLEllLnJlZnJlc2hUb2tlbnNGb3JWaXlhKSh0aGlzLnJlcXVlc3RDbGllbnQsaGUsTyx6KV19KX0pfSxFZS5wcm90b3R5cGUuZGVsZXRlQ2xpZW50PWZ1bmN0aW9uKGhlLE8pe3JldHVybiBZKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3Zh''@;'; + put 'put ''ciB6LG5lO3JldHVybiBXKHRoaXMsZnVuY3Rpb24odGUpe3N3aXRjaCh0ZS5sYWJlbCl7Y2FzZSAwOnJldHVybiB6PXRoaXMuc2VydmVyVXJsKyIvb2F1dGgvY2xpZW50cy8iLmNvbmNhdChoZSksbmU9e30sTyYmKG5lLkF1dGhvcml6YXRpb249IkJlYXJlciAiLmNvbmNhdChPKSksWzQsdGhp''@;'; + put 'put ''cy5yZXF1ZXN0Q2xpZW50LmRlbGV0ZSh6LE8pXTtjYXNlIDE6cmV0dXJuWzIsdGUuc2VudCgpLnJlc3VsdF19fSl9KX0sRWUucHJvdG90eXBlLmV4ZWN1dGVDb21wdXRlSm9iPWZ1bmN0aW9uKGhlLE8seixuZSx0ZSx4LFAsVixULFMpe3JldHVybiB2b2lkIDA9PT14JiYoeD0hMCksdm9pZCAw''@;'; + put 'put ''PT09UCYmKFA9ITEpLHZvaWQgMD09PVQmJihUPSExKSxZKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBGLHllLENlLERlLFBlLFFlLCRlLGd0LHd0LG10LHZ0O3JldHVybiBXKHRoaXMsZnVuY3Rpb24oQXQpe3N3aXRjaChBdC5sYWJlbCl7Y2FzZSAwOnJldHVybiBGPSh0ZXx8''@;'; + put 'put ''e30pLmFjY2Vzc190b2tlbix0ZT9bNCwoMCx2ZS5nZXRUb2tlbnMpKHRoaXMucmVxdWVzdENsaWVudCx0ZSldOlszLDJdO2Nhc2UgMTpGPUF0LnNlbnQoKS5hY2Nlc3NfdG9rZW4sQXQubGFiZWw9MjtjYXNlIDI6aWYoKDAsTi5pc1JlbGF0aXZlUGF0aCkoaGUpJiYhdGhpcy5yb290Rm9sZGVy''@;'; + put 'put ''TmFtZSl0aHJvdyBuZXcgRXJyb3IoIlJlbGF0aXZlIHBhdGhzIGNhbm5vdCBiZSB1c2VkIHdpdGhvdXQgc3BlY2lmeWluZyBhIHJvb3QgZm9sZGVyIG5hbWUiKTtyZXR1cm4geWU9aGUuc3BsaXQoIi8iKSxDZT15ZS5wb3AoKSxEZT15ZS5qb2luKCIvIiksUGU9KDAsTi5pc1JlbGF0aXZlUGF0''@;'; + put 'put ''aCkoaGUpPyIiLmNvbmNhdCh0aGlzLnJvb3RGb2xkZXJOYW1lLCIvIikuY29uY2F0KERlKTpEZSxbNCx0aGlzLnBvcHVsYXRlRm9sZGVyTWFwKFBlLEYpLmNhdGNoKGZ1bmN0aW9uKGh0KXt0aHJvdygwLGNlLnByZWZpeE1lc3NhZ2UpKGh0LCJFcnJvciB3aGlsZSBwb3B1bGF0aW5nIGZvbGRl''@;'; + put 'put ''ciBtYXAuICIpfSldO2Nhc2UgMzppZihBdC5zZW50KCksIShRZT10aGlzLmZvbGRlck1hcC5nZXQoUGUpKSl0aHJvdyBuZXcgRXJyb3IoIlRoZSBmb2xkZXIgJyIuY29uY2F0KFBlLCInIHdhcyBub3QgZm91bmQgb24gJyIpLmNvbmNhdCh0aGlzLnNlcnZlclVybCwiJyIpKTtpZighKCRlPW51''@;'; + put 'put ''bGw9PVFlP3ZvaWQgMDpRZS5maW5kKGZ1bmN0aW9uKGh0KXtyZXR1cm4gaHQubmFtZT09PUNlfSkpKXRocm93IG5ldyBFcnJvcigiSm9iIHdhcyBub3QgZm91bmQuIik7aWYoZ3Q9bnVsbD09JGU/dm9pZCAwOiRlLmNvZGUpcmV0dXJuWzMsNV07aWYoISh3dD1udWxsPT0kZT92b2lkIDA6JGUu''@;'; + put 'put ''bGlua3MuZmluZChmdW5jdGlvbihodCl7cmV0dXJuImdldFJlc291cmNlIj09PWh0LnJlbH0pKSl0aHJvdyBuZXcgRXJyb3IoIlVSSSBvZiBqb2IgZGVmaW5pdGlvbiB3YXMgbm90IGZvdW5kLiIpO3JldHVybls0LHRoaXMucmVxdWVzdENsaWVudC5nZXQoIiIuY29uY2F0KHRoaXMuc2VydmVy''@;'; + put 'put ''VXJsKS5jb25jYXQod3QuaHJlZiksRikuY2F0Y2goZnVuY3Rpb24oaHQpe3Rocm93KDAsY2UucHJlZml4TWVzc2FnZSkoaHQsIkVycm9yIHdoaWxlIGdldHRpbmcgam9iIGRlZmluaXRpb24uICIpfSldO2Nhc2UgNDptdD1BdC5zZW50KCkucmVzdWx0LCRlLmNvZGU9Z3Q9bXQuY29kZSxBdC5s''@;'; + put 'put ''YWJlbD01O2Nhc2UgNTpyZXR1cm4gZ3R8fChndD0iIiksdnQ9Z3QucmVwbGFjZSgvXHJcbi9nLCJcbiIpLnNwbGl0KCJcbiIpLFs0LHRoaXMuZXhlY3V0ZVNjcmlwdChoZSx2dCxPLHRlLG5lLHosUCx4LFYsVCxTKV07Y2FzZSA2OnJldHVyblsyLEF0LnNlbnQoKV19fSl9KX0sRWUucHJvdG90''@;'; + put 'put ''eXBlLmV4ZWN1dGVKb2I9ZnVuY3Rpb24oaGUsTyx6LG5lLHRlKXt2YXIgeCxQLFY7cmV0dXJuIFkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIFQsUyxGLHllLENlLERlLFBlLFFlLCRlLGd0LHd0LG10LHZ0LEF0LGh0LEJ0LG9uLF90LHR0O3JldHVybiBXKHRoaXMsZnVuY3Rp''@;'; + put 'put ''b24oZXQpe3N3aXRjaChldC5sYWJlbCl7Y2FzZSAwOnJldHVybiBUPSh0ZXx8e30pLmFjY2Vzc190b2tlbix0ZT9bNCwoMCx2ZS5nZXRUb2tlbnMpKHRoaXMucmVxdWVzdENsaWVudCx0ZSldOlszLDJdO2Nhc2UgMTpUPWV0LnNlbnQoKS5hY2Nlc3NfdG9rZW4sZXQubGFiZWw9MjtjYXNlIDI6''@;'; + put 'put ''aWYoKDAsTi5pc1JlbGF0aXZlUGF0aCkoaGUpJiYhdGhpcy5yb290Rm9sZGVyTmFtZSl0aHJvdyBuZXcgRXJyb3IoIlJlbGF0aXZlIHBhdGhzIGNhbm5vdCBiZSB1c2VkIHdpdGhvdXQgc3BlY2lmeWluZyBhIHJvb3QgZm9sZGVyIG5hbWUuIik7cmV0dXJuIFM9aGUuc3BsaXQoIi8iKSxGPVMu''@;'; + put 'put ''cG9wKCkseWU9Uy5qb2luKCIvIiksQ2U9KDAsTi5pc1JlbGF0aXZlUGF0aCkoaGUpPyIiLmNvbmNhdCh0aGlzLnJvb3RGb2xkZXJOYW1lLCIvIikuY29uY2F0KHllKTp5ZSxbNCx0aGlzLnBvcHVsYXRlRm9sZGVyTWFwKENlLFQpXTtjYXNlIDM6aWYoZXQuc2VudCgpLCEoRGU9dGhpcy5mb2xk''@;'; + put 'put ''ZXJNYXAuZ2V0KENlKSkpdGhyb3cgbmV3IEVycm9yKCJUaGUgZm9sZGVyICciLmNvbmNhdChDZSwiJyB3YXMgbm90IGZvdW5kIG9uICciKS5jb25jYXQodGhpcy5zZXJ2ZXJVcmwsIicuIikpO3JldHVybiBQZT1udWxsPT1EZT92b2lkIDA6RGUuZmluZChmdW5jdGlvbihhdCl7cmV0dXJuIGF0''@;'; + put 'put ''Lm5hbWU9PT1GfSksUWU9W10sbmUmJk9iamVjdC5rZXlzKG5lKS5sZW5ndGg/WzQsdGhpcy51cGxvYWRUYWJsZXMobmUsVCldOlszLDVdO2Nhc2UgNDpRZT1ldC5zZW50KCksZXQubGFiZWw9NTtjYXNlIDU6aWYoIVBlKXRocm93IG5ldyBFcnJvcigiSm9iIHdhcyBub3QgZm91bmQuIik7cmV0''@;'; + put 'put ''dXJuICRlPW51bGw9PT0oeD1udWxsPT1QZT92b2lkIDA6UGUubGlua3MuZmluZChmdW5jdGlvbihhdCl7cmV0dXJuImdldFJlc291cmNlIj09PWF0LnJlbH0pKXx8dm9pZCAwPT09eD92b2lkIDA6eC5ocmVmLFs0LHRoaXMucmVxdWVzdENsaWVudC5nZXQoIiIuY29uY2F0KHRoaXMuc2VydmVy''@;'; + put 'put ''VXJsKS5jb25jYXQoJGUpLFQpXTtjYXNlIDY6cmV0dXJuIGd0PWV0LnNlbnQoKS5yZXN1bHQsd3Q9e19jb250ZXh0TmFtZTpPLF9wcm9ncmFtOiIiLmNvbmNhdChDZSwiLyIpLmNvbmNhdChGKSxfd2ViaW5fZmlsZV9jb3VudDpRZS5sZW5ndGgsX09NSVRKU09OTElTVElORzohMCxfT01JVEpT''@;'; + put 'put ''T05MT0c6ITAsX09NSVRTRVNTSU9OUkVTVUxUUzohMCxfT01JVFRFWFRMSVNUSU5HOiEwLF9PTUlUVEVYVExPRzohMH0seiYmKHd0Ll9PTUlUVEVYVExPRz0iZmFsc2UiLHd0Ll9PTUlUU0VTU0lPTlJFU1VMVFM9ImZhbHNlIix3dC5fREVCVUc9MTMxKSxRZS5mb3JFYWNoKGZ1bmN0aW9uKGF0''@;'; + put 'put ''LEx0KXt3dFsiX3dlYmluX2ZpbGV1cmkiLmNvbmNhdChMdCsxKV09Ii9maWxlcy9maWxlcy8iLmNvbmNhdChhdC5maWxlLmlkKSx3dFsiX3dlYmluX25hbWUiLmNvbmNhdChMdCsxKV09YXQudGFibGVOYW1lfSksbXQ9e25hbWU6ImV4ZWMtIi5jb25jYXQoRiksZGVzY3JpcHRpb246IlBvd2Vy''@;'; + put 'put ''ZWQgYnkgU0FTanMiLGpvYkRlZmluaXRpb246Z3QsYXJndW1lbnRzOnd0fSxbNCx0aGlzLnJlcXVlc3RDbGllbnQucG9zdCgiIi5jb25jYXQodGhpcy5zZXJ2ZXJVcmwsIi9qb2JFeGVjdXRpb24vam9icz9fYWN0aW9uPXdhaXQiKSxtdCxUKV07Y2FzZSA3OnJldHVybiB2dD1ldC5zZW50KCku''@;'; + put 'put ''cmVzdWx0LFs0LHRoaXMucG9sbEpvYlN0YXRlKHZ0LHRlKS5jYXRjaChmdW5jdGlvbihhdCl7dGhyb3coMCxjZS5wcmVmaXhNZXNzYWdlKShhdCwiRXJyb3Igd2hpbGUgcG9sbGluZyBqb2Igc3RhdHVzLiAiKX0pXTtjYXNlIDg6cmV0dXJuIEF0PWV0LnNlbnQoKSxbNCx0aGlzLnJlcXVlc3RD''@;'; + put 'put ''bGllbnQuZ2V0KCIiLmNvbmNhdCh0aGlzLnNlcnZlclVybCwiL2pvYkV4ZWN1dGlvbi9qb2JzLyIpLmNvbmNhdCh2dC5pZCksVCldO2Nhc2UgOTpyZXR1cm4gaHQ9ZXQuc2VudCgpLnJlc3VsdCxfdD1odC5yZXN1bHRzWyJfd2Vib3V0Lmpzb24iXSx0dD1odC5saW5rcy5maW5kKGZ1bmN0aW9u''@;'; + put 'put ''KGF0KXtyZXR1cm4ibG9nIj09PWF0LnJlbH0pLF90P1s0LHRoaXMucmVxdWVzdENsaWVudC5nZXQoIiIuY29uY2F0KHRoaXMuc2VydmVyVXJsKS5jb25jYXQoX3QsIi9jb250ZW50IiksVCwidGV4dC9wbGFpbiIpXTpbMywxMV07Y2FzZSAxMDpCdD1ldC5zZW50KCksZXQubGFiZWw9MTE7Y2Fz''@;'; + put 'put ''ZSAxMTpyZXR1cm4geiYmdHQ/WzQsdGhpcy5yZXF1ZXN0Q2xpZW50LmdldCgiIi5jb25jYXQodGhpcy5zZXJ2ZXJVcmwpLmNvbmNhdCh0dC5ocmVmLCIvY29udGVudCIpLFQpLnRoZW4oZnVuY3Rpb24oYXQpe3JldHVybiBhdC5yZXN1bHQuaXRlbXMubWFwKGZ1bmN0aW9uKEx0KXtyZXR1cm4g''@;'; + put 'put ''THQubGluZX0pLmpvaW4oIlxuIil9KV06WzMsMTNdO2Nhc2UgMTI6b249ZXQuc2VudCgpLGV0LmxhYmVsPTEzO2Nhc2UgMTM6aWYoImZhaWxlZCI9PT1BdCl0aHJvdyBuZXcgcS5Kb2JFeGVjdXRpb25FcnJvcihudWxsPT09KFA9aHQuZXJyb3IpfHx2b2lkIDA9PT1QP3ZvaWQgMDpQLmVycm9y''@;'; + put 'put ''Q29kZSxudWxsPT09KFY9aHQuZXJyb3IpfHx2b2lkIDA9PT1WP3ZvaWQgMDpWLm1lc3NhZ2Usb24pO3JldHVyblsyLHtyZXN1bHQ6bnVsbD09QnQ/dm9pZCAwOkJ0LnJlc3VsdCxsb2c6b259XX19KX0pfSxFZS5wcm90b3R5cGUucG9wdWxhdGVGb2xkZXJNYXA9ZnVuY3Rpb24oaGUsTyl7cmV0''@;'; + put 'put ''dXJuIFkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIHosdGUseDtyZXR1cm4gVyh0aGlzLGZ1bmN0aW9uKFYpe3N3aXRjaChWLmxhYmVsKXtjYXNlIDA6cmV0dXJuIHo9KDAsTi5pc1JlbGF0aXZlUGF0aCkoaGUpPyIiLmNvbmNhdCh0aGlzLnJvb3RGb2xkZXJOYW1lLCIvIiku''@;'; + put 'put ''Y29uY2F0KGhlKTpoZSx0aGlzLmZvbGRlck1hcC5nZXQoeik/WzJdOls0LHRoaXMucmVxdWVzdENsaWVudC5nZXQoIiIuY29uY2F0KCIvZm9sZGVycy9mb2xkZXJzL0BpdGVtP3BhdGg9Iit6KSxPKS5jYXRjaChmdW5jdGlvbihUKXt0aHJvdygwLGNlLnByZWZpeE1lc3NhZ2UpKFQsIkVycm9y''@;'; + put 'put ''IHdoaWxlIGdldHRpbmcgZm9sZGVyLiAiKX0pXTtjYXNlIDE6aWYoISh0ZT1WLnNlbnQoKS5yZXN1bHQpKXRocm93IG5ldyBFcnJvcigiVGhlIHBhdGggIi5jb25jYXQoeiwiIGRvZXMgbm90IGV4aXN0IG9uICIpLmNvbmNhdCh0aGlzLnNlcnZlclVybCkpO3JldHVybls0LHRoaXMucmVxdWVz''@;'; + put 'put ''dENsaWVudC5nZXQoIi9mb2xkZXJzL2ZvbGRlcnMvIi5jb25jYXQodGUuaWQsIi9tZW1iZXJzP2xpbWl0PSIpLmNvbmNhdCh0ZS5tZW1iZXJDb3VudDw1MDA/NTAwOnRlLm1lbWJlckNvdW50KSxPKS5jYXRjaChmdW5jdGlvbihUKXt0aHJvdygwLGNlLnByZWZpeE1lc3NhZ2UpKFQsIkVycm9y''@;'; + put 'put ''IHdoaWxlIGdldHRpbmcgbWVtYmVycy4gIil9KV07Y2FzZSAyOnJldHVybiB4PVYuc2VudCgpLnJlc3VsdCx0aGlzLmZvbGRlck1hcC5zZXQoeix4Lml0ZW1zKSxbMl19fSl9KX0sRWUucHJvdG90eXBlLnBvbGxKb2JTdGF0ZT1mdW5jdGlvbihoZSxPLHope3JldHVybiBZKHRoaXMsdm9pZCAw''@;'; + put 'put ''LHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBXKHRoaXMsZnVuY3Rpb24obmUpe3JldHVyblsyLCgwLGRlLnBvbGxKb2JTdGF0ZSkodGhpcy5yZXF1ZXN0Q2xpZW50LGhlLHRoaXMuZGVidWcsTyx6KV19KX0pfSxFZS5wcm90b3R5cGUudXBsb2FkVGFibGVzPWZ1bmN0aW9uKGhlLE8pe3JldHVy''@;'; + put 'put ''biBZKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBXKHRoaXMsZnVuY3Rpb24oeil7cmV0dXJuWzIsKDAsQWUudXBsb2FkVGFibGVzKSh0aGlzLnJlcXVlc3RDbGllbnQsaGUsTyldfSl9KX0sRWUucHJvdG90eXBlLmdldEZvbGRlckRldGFpbHM9ZnVuY3Rpb24oaGUsTyl7''@;'; + put 'put ''cmV0dXJuIFkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIHosbmU7cmV0dXJuIFcodGhpcyxmdW5jdGlvbih0ZSl7c3dpdGNoKHRlLmxhYmVsKXtjYXNlIDA6cmV0dXJuIHo9KDAsTi5pc1VyaSkoaGUpP2hlOiIvZm9sZGVycy9mb2xkZXJzL0BpdGVtP3BhdGg9Ii5jb25jYXQo''@;'; + put 'put ''aGUpLFs0LHRoaXMucmVxdWVzdENsaWVudC5nZXQoIiIuY29uY2F0KHRoaXMuc2VydmVyVXJsKS5jb25jYXQoeiksTykuY2F0Y2goZnVuY3Rpb24oeCl7aWYoeCBpbnN0YW5jZW9mIHEuQ2VydGlmaWNhdGVFcnJvcil0aHJvdyB4O3JldHVybntyZXN1bHQ6bnVsbH19KV07Y2FzZSAxOnJldHVy''@;'; + put 'put ''bihuZT10ZS5zZW50KCkucmVzdWx0KT9bMixuZV06WzIsdm9pZCAwXX19KX0pfSxFZS5wcm90b3R5cGUuZ2V0Rm9sZGVyVXJpPWZ1bmN0aW9uKGhlLE8pe3JldHVybiBZKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciB6O3JldHVybiBXKHRoaXMsZnVuY3Rpb24obmUpe3N3aXRj''@;'; + put 'put ''aChuZS5sYWJlbCl7Y2FzZSAwOnJldHVybls0LHRoaXMuZ2V0Rm9sZGVyRGV0YWlscyhoZSxPKV07Y2FzZSAxOnJldHVybih6PW5lLnNlbnQoKSk/WzIsIi9mb2xkZXJzL2ZvbGRlcnMvIi5jb25jYXQoei5pZCldOlsyLHZvaWQgMF19fSl9KX0sRWUucHJvdG90eXBlLmdldFJlY3ljbGVCaW5V''@;'; + put 'put ''cmk9ZnVuY3Rpb24oaGUpe3JldHVybiBZKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBPO3JldHVybiBXKHRoaXMsZnVuY3Rpb24oeil7c3dpdGNoKHoubGFiZWwpe2Nhc2UgMDpyZXR1cm5bNCx0aGlzLnJlcXVlc3RDbGllbnQuZ2V0KCIiLmNvbmNhdCh0aGlzLnNlcnZlclVy''@;'; + put 'put ''bCkuY29uY2F0KCIvZm9sZGVycy9mb2xkZXJzL0BteVJlY3ljbGVCaW4iKSxoZSkuY2F0Y2goZnVuY3Rpb24obmUpe2lmKG5lIGluc3RhbmNlb2YgcS5DZXJ0aWZpY2F0ZUVycm9yKXRocm93IG5lO3JldHVybntyZXN1bHQ6bnVsbH19KV07Y2FzZSAxOnJldHVybihPPXouc2VudCgpLnJlc3Vs''@;'; + put 'put ''dCk/WzIsIi9mb2xkZXJzL2ZvbGRlcnMvIi5jb25jYXQoTy5pZCldOlsyLHZvaWQgMF19fSl9KX0sRWUucHJvdG90eXBlLmdldENvbXB1dGVDb250ZXh0QnlOYW1lPWZ1bmN0aW9uKGhlLE8pe3JldHVybiBZKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBXKHRoaXMsZnVu''@;'; + put 'put ''Y3Rpb24oeil7c3dpdGNoKHoubGFiZWwpe2Nhc2UgMDpyZXR1cm5bNCx0aGlzLmNvbnRleHRNYW5hZ2VyLmdldENvbXB1dGVDb250ZXh0QnlOYW1lKGhlLE8pXTtjYXNlIDE6cmV0dXJuWzIsei5zZW50KCldfX0pfSl9LEVlLnByb3RvdHlwZS5nZXRDb21wdXRlQ29udGV4dEJ5SWQ9ZnVuY3Rp''@;'; + put 'put ''b24oaGUsTyl7cmV0dXJuIFkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIFcodGhpcyxmdW5jdGlvbih6KXtzd2l0Y2goei5sYWJlbCl7Y2FzZSAwOnJldHVybls0LHRoaXMuY29udGV4dE1hbmFnZXIuZ2V0Q29tcHV0ZUNvbnRleHRCeUlkKGhlLE8pXTtjYXNlIDE6cmV0''@;'; + put 'put ''dXJuWzIsei5zZW50KCldfX0pfSl9LEVlLnByb3RvdHlwZS5saXN0Rm9sZGVyPWZ1bmN0aW9uKGhlLE8seil7cmV0dXJuIHZvaWQgMD09PXomJih6PTIwKSxZKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBuZSx0ZSx4O3JldHVybiBXKHRoaXMsZnVuY3Rpb24oUCl7c3dpdGNo''@;'; + put 'put ''KFAubGFiZWwpe2Nhc2UgMDpyZXR1cm4oMCxOLmlzVXJpKShoZSk/KHRlPWhlLFszLDNdKTpbMywxXTtjYXNlIDE6cmV0dXJuWzQsdGhpcy5nZXRGb2xkZXJVcmkoaGUsTyldO2Nhc2UgMjp0ZT1QLnNlbnQoKSxQLmxhYmVsPTM7Y2FzZSAzOnJldHVybiBuZT10ZSxbNCx0aGlzLnJlcXVlc3RD''@;'; + put 'put ''bGllbnQuZ2V0KCIiLmNvbmNhdCh0aGlzLnNlcnZlclVybCkuY29uY2F0KG5lLCIvbWVtYmVycz9saW1pdD0iKS5jb25jYXQoeiksTyldO2Nhc2UgNDpyZXR1cm4oeD1QLnNlbnQoKS5yZXN1bHQpJiZ4Lml0ZW1zP1syLHguaXRlbXMubWFwKGZ1bmN0aW9uKFYpe3JldHVybiBWLm5hbWV9KV06''@;'; + put 'put ''WzIsW11dfX0pfSl9LEVlLnByb3RvdHlwZS5tb3ZlRm9sZGVyPWZ1bmN0aW9uKGhlLE8seixuZSl7cmV0dXJuIFkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIHRlLHgsUCxWLFQsUztyZXR1cm4gVyh0aGlzLGZ1bmN0aW9uKEYpe3N3aXRjaChGLmxhYmVsKXtjYXNlIDA6cmV0''@;'; + put 'put ''dXJuIHRlPWhlLnNwbGl0KCIvIikucG9wKCksWzQsdGhpcy5nZXRGb2xkZXJEZXRhaWxzKE8sbmUpXTtjYXNlIDE6cmV0dXJuIEYuc2VudCgpP3o9dGU6KCh4PU8uc3BsaXQoIi8iKSkuc3BsaWNlKHgubGVuZ3RoLTEsMSksTz14LmpvaW4oIi8iKSksWzQsdGhpcy5nZXRGb2xkZXJVcmkoaGUs''@;'; + put 'put ''bmUpXTtjYXNlIDI6cmV0dXJuIFA9Ri5zZW50KCksWzQsdGhpcy5nZXRGb2xkZXJVcmkoTyxuZSldO2Nhc2UgMzpyZXR1cm4gVj1GLnNlbnQoKSxQPyhUPW51bGw9PVA/dm9pZCAwOlAuc3BsaXQoIi8iKS5wb3AoKSxbNCx0aGlzLnJlcXVlc3RDbGllbnQucGF0Y2goIiIuY29uY2F0KHRoaXMu''@;'; + put 'put ''c2VydmVyVXJsKS5jb25jYXQoUCkse2lkOlQsbmFtZTp6LHBhcmVudEZvbGRlclVyaTpWfSxuZSkuY2F0Y2goZnVuY3Rpb24oeWUpe3Rocm93IHllLmNvZGUmJiJFTk9URk9VTkQiPT09eWUuY29kZT97Ym9keTp7bWVzc2FnZToiRm9sZGVyICciLmNvbmNhdChoZS5zcGxpdCgiLyIpLnBvcCgp''@;'; + put 'put ''LCInIHdhcyBub3QgZm91bmQuIil9fTp5ZX0pXSk6WzIsdm9pZCAwXTtjYXNlIDQ6cmV0dXJuKFM9Ri5zZW50KCkucmVzdWx0KT9bMixTXTpbMix2b2lkIDBdfX0pfSl9LEVlLnByb3RvdHlwZS5kZWxldGVGb2xkZXI9ZnVuY3Rpb24oaGUsTyl7cmV0dXJuIFkodGhpcyx2b2lkIDAsdm9pZCAw''@;'; + put 'put ''LGZ1bmN0aW9uKCl7dmFyIHosbmUsdGUseDtyZXR1cm4gVyh0aGlzLGZ1bmN0aW9uKFYpe3N3aXRjaChWLmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsdGhpcy5nZXRSZWN5Y2xlQmluVXJpKE8pXTtjYXNlIDE6cmV0dXJuIHo9Vi5zZW50KCksbmU9aGUuc3BsaXQoIi8iKS5wb3AoKXx8IiIsdGU9''@;'; + put 'put ''bmV3IERhdGUseD10ZS50b0xvY2FsZURhdGVTdHJpbmcoKSsiICIrdGUudG9Mb2NhbGVUaW1lU3RyaW5nKCksWzQsdGhpcy5tb3ZlRm9sZGVyKGhlLHosbmUrIiAiK3gsTyldO2Nhc2UgMjpyZXR1cm5bMixWLnNlbnQoKV19fSl9KX0sRWV9KCk7US5TQVNWaXlhQXBpQ2xpZW50PVRlfSw1OTU2''@;'; + put 'put ''OmZ1bmN0aW9uKFUsUSxaKXsidXNlIHN0cmljdCI7dmFyIGllPXRoaXMmJnRoaXMuX19hc3NpZ258fGZ1bmN0aW9uKCl7cmV0dXJuIGllPU9iamVjdC5hc3NpZ258fGZ1bmN0aW9uKFRlKXtmb3IodmFyIEVlLGhlPTEsTz1hcmd1bWVudHMubGVuZ3RoO2hlPE87aGUrKylmb3IodmFyIHogaW4g''@;'; + put 'put ''RWU9YXJndW1lbnRzW2hlXSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoRWUseikmJihUZVt6XT1FZVt6XSk7cmV0dXJuIFRlfSxpZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LGFlPXRoaXMmJnRoaXMuX19hd2FpdGVyfHxmdW5jdGlvbihUZSxFZSxoZSxPKXtyZXR1cm4g''@;'; + put 'put ''bmV3KGhlfHwoaGU9UHJvbWlzZSkpKGZ1bmN0aW9uKHosbmUpe2Z1bmN0aW9uIHRlKFYpe3RyeXtQKE8ubmV4dChWKSl9Y2F0Y2goVCl7bmUoVCl9fWZ1bmN0aW9uIHgoVil7dHJ5e1AoTy50aHJvdyhWKSl9Y2F0Y2goVCl7bmUoVCl9fWZ1bmN0aW9uIFAoVil7dmFyIFQ7Vi5kb25lP3ooVi52''@;'; + put 'put ''YWx1ZSk6KFQ9Vi52YWx1ZSxUIGluc3RhbmNlb2YgaGU/VDpuZXcgaGUoZnVuY3Rpb24oUyl7UyhUKX0pKS50aGVuKHRlLHgpfVAoKE89Ty5hcHBseShUZSxFZXx8W10pKS5uZXh0KCkpfSl9LFk9dGhpcyYmdGhpcy5fX2dlbmVyYXRvcnx8ZnVuY3Rpb24oVGUsRWUpe3ZhciBoZSxPLHosbmUs''@;'; + put 'put ''dGU9e2xhYmVsOjAsc2VudDpmdW5jdGlvbigpe2lmKDEmelswXSl0aHJvdyB6WzFdO3JldHVybiB6WzFdfSx0cnlzOltdLG9wczpbXX07cmV0dXJuIG5lPXtuZXh0OngoMCksdGhyb3c6eCgxKSxyZXR1cm46eCgyKX0sImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmKG5lW1N5bWJvbC5pdGVy''@;'; + put 'put ''YXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pLG5lO2Z1bmN0aW9uIHgoUCl7cmV0dXJuIGZ1bmN0aW9uKFYpe3JldHVybiBmdW5jdGlvbihUKXtpZihoZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcuIik7Zm9yKDt0ZTspdHJ5e2lmKGhl''@;'; + put 'put ''PTEsTyYmKHo9MiZUWzBdP08ucmV0dXJuOlRbMF0/Ty50aHJvd3x8KCh6PU8ucmV0dXJuKSYmei5jYWxsKE8pLDApOk8ubmV4dCkmJiEoej16LmNhbGwoTyxUWzFdKSkuZG9uZSlyZXR1cm4gejtzd2l0Y2goTz0wLHomJihUPVsyJlRbMF0sei52YWx1ZV0pLFRbMF0pe2Nhc2UgMDpjYXNlIDE6''@;'; + put 'put ''ej1UO2JyZWFrO2Nhc2UgNDpyZXR1cm4gdGUubGFiZWwrKyx7dmFsdWU6VFsxXSxkb25lOiExfTtjYXNlIDU6dGUubGFiZWwrKyxPPVRbMV0sVD1bMF07Y29udGludWU7Y2FzZSA3OlQ9dGUub3BzLnBvcCgpLHRlLnRyeXMucG9wKCk7Y29udGludWU7ZGVmYXVsdDppZighKCh6PSh6PXRlLnRy''@;'; + put 'put ''eXMpLmxlbmd0aD4wJiZ6W3oubGVuZ3RoLTFdKXx8NiE9PVRbMF0mJjIhPT1UWzBdKSl7dGU9MDtjb250aW51ZX1pZigzPT09VFswXSYmKCF6fHxUWzFdPnpbMF0mJlRbMV08elszXSkpe3RlLmxhYmVsPVRbMV07YnJlYWt9aWYoNj09PVRbMF0mJnRlLmxhYmVsPHpbMV0pe3RlLmxhYmVsPXpb''@;'; + put 'put ''MV0sej1UO2JyZWFrfWlmKHomJnRlLmxhYmVsPHpbMl0pe3RlLmxhYmVsPXpbMl0sdGUub3BzLnB1c2goVCk7YnJlYWt9elsyXSYmdGUub3BzLnBvcCgpLHRlLnRyeXMucG9wKCk7Y29udGludWV9VD1FZS5jYWxsKFRlLHRlKX1jYXRjaChTKXtUPVs2LFNdLE89MH1maW5hbGx5e2hlPXo9MH1p''@;'; + put 'put ''Zig1JlRbMF0pdGhyb3cgVFsxXTtyZXR1cm57dmFsdWU6VFswXT9UWzFdOnZvaWQgMCxkb25lOiEwfX0oW1AsVl0pfX19LFc9dGhpcyYmdGhpcy5fX3NwcmVhZEFycmF5fHxmdW5jdGlvbihUZSxFZSxoZSl7aWYoaGV8fDI9PT1hcmd1bWVudHMubGVuZ3RoKWZvcih2YXIgTyx6PTAsbmU9RWUu''@;'; + put 'put ''bGVuZ3RoO3o8bmU7eisrKSFPJiZ6IGluIEVlfHwoT3x8KE89QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoRWUsMCx6KSksT1t6XT1FZVt6XSk7cmV0dXJuIFRlLmNvbmNhdChPfHxBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChFZSkpfTtPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwiX19l''@;'; + put 'put ''c01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIE49Wig1OTI4KSxlZT1aKDEyMzApLHE9Wig5ODIxKSxKPVooODMwNiksc2U9WigzNDY3KSxvZT1aKDE1MjcpLGNlPVooMzkwMCksZGU9Wig0NTg4KSx2ZT1aKDM2MDIpLEFlPVooODIxNyksa2U9WigxMzk1KSxTZT17c2VydmVyVXJsOiIiLHBhdGhT''@;'; + put 'put ''QVNKUzoiL1NBU2pzQXBpL3N0cC9leGVjdXRlIixwYXRoU0FTOToiL1NBU1N0b3JlZFByb2Nlc3MvZG8iLHBhdGhTQVNWaXlhOiIvU0FTSm9iRXhlY3V0aW9uIixhcHBMb2M6Ii9QdWJsaWMvc2VlZGFwcCIsc2VydmVyVHlwZTpjZS5TZXJ2ZXJUeXBlLlNhc1ZpeWEsZGVidWc6ITEsY29udGV4''@;'; + put 'put ''dE5hbWU6IlNBUyBKb2IgRXhlY3V0aW9uIGNvbXB1dGUgY29udGV4dCIsdXNlQ29tcHV0ZUFwaTpudWxsLGxvZ2luTWVjaGFuaXNtOmVlLkxvZ2luTWVjaGFuaXNtLkRlZmF1bHR9LEllPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gVGUoRWUpe3ZhciBoZT10aGlzO3RoaXMuc2FzanNDb25maWc9bmV3''@;'; + put 'put ''IGVlLlNBU2pzQ29uZmlnLHRoaXMuam9ic1BhdGg9IiIsdGhpcy5zYXNWaXlhQXBpQ2xpZW50PW51bGwsdGhpcy5zYXM5QXBpQ2xpZW50PW51bGwsdGhpcy5zYXNKU0FwaUNsaWVudD1udWxsLHRoaXMuZmlsZVVwbG9hZGVyPW51bGwsdGhpcy5hdXRoTWFuYWdlcj1udWxsLHRoaXMucmVxdWVz''@;'; + put 'put ''dENsaWVudD1udWxsLHRoaXMud2ViSm9iRXhlY3V0b3I9bnVsbCx0aGlzLnNhc2pzSm9iRXhlY3V0b3I9bnVsbCx0aGlzLmNvbXB1dGVKb2JFeGVjdXRvcj1udWxsLHRoaXMuamVzSm9iRXhlY3V0b3I9bnVsbCx0aGlzLnNhczlKb2JFeGVjdXRvcj1udWxsLHRoaXMucmVzZW5kV2FpdGluZ1Jl''@;'; + put 'put ''cXVlc3RzPWZ1bmN0aW9uKCl7cmV0dXJuIGFlKGhlLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgTyx6LG5lLHRlO3JldHVybiBZKHRoaXMsZnVuY3Rpb24oeCl7c3dpdGNoKHgubGFiZWwpe2Nhc2UgMDpyZXR1cm5bNCxudWxsPT09KE89dGhpcy53ZWJKb2JFeGVjdXRvcil8fHZvaWQg''@;'; + put 'put ''MD09PU8/dm9pZCAwOk8ucmVzZW5kV2FpdGluZ1JlcXVlc3RzKCldO2Nhc2UgMTpyZXR1cm4geC5zZW50KCksWzQsbnVsbD09PSh6PXRoaXMuY29tcHV0ZUpvYkV4ZWN1dG9yKXx8dm9pZCAwPT09ej92b2lkIDA6ei5yZXNlbmRXYWl0aW5nUmVxdWVzdHMoKV07Y2FzZSAyOnJldHVybiB4LnNl''@;'; + put 'put ''bnQoKSxbNCxudWxsPT09KG5lPXRoaXMuamVzSm9iRXhlY3V0b3IpfHx2b2lkIDA9PT1uZT92b2lkIDA6bmUucmVzZW5kV2FpdGluZ1JlcXVlc3RzKCldO2Nhc2UgMzpyZXR1cm4geC5zZW50KCksWzQsbnVsbD09PSh0ZT10aGlzLmZpbGVVcGxvYWRlcil8fHZvaWQgMD09PXRlP3ZvaWQgMDp0''@;'; + put 'put ''ZS5yZXNlbmRXYWl0aW5nUmVxdWVzdHMoKV07Y2FzZSA0OnJldHVybiB4LnNlbnQoKSxbMl19fSl9KX0sdGhpcy5zYXNqc0NvbmZpZz1pZShpZSh7fSxTZSksRWUpLHRoaXMuc2V0dXBDb25maWd1cmF0aW9uKCl9cmV0dXJuIFRlLnByb3RvdHlwZS5nZXRDc3JmVG9rZW49ZnVuY3Rpb24oRWUp''@;'; + put 'put ''e3ZhciBoZTtyZXR1cm4gdm9pZCAwPT09RWUmJihFZT0iZ2VuZXJhbCIpLG51bGw9PT0oaGU9dGhpcy5yZXF1ZXN0Q2xpZW50KXx8dm9pZCAwPT09aGU/dm9pZCAwOmhlLmdldENzcmZUb2tlbihFZSl9LFRlLnByb3RvdHlwZS5leGVjdXRlU2NyaXB0U0FTOT1mdW5jdGlvbihFZSxoZSxPKXt2''@;'; + put 'put ''YXIgejtyZXR1cm4gYWUodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIFkodGhpcyxmdW5jdGlvbihuZSl7c3dpdGNoKG5lLmxhYmVsKXtjYXNlIDA6cmV0dXJuIHRoaXMuaXNNZXRob2RTdXBwb3J0ZWQoImV4ZWN1dGVTY3JpcHRTQVM5IixbY2UuU2VydmVyVHlwZS5TYXM5''@;'; + put 'put ''XSksWzQsbnVsbD09PSh6PXRoaXMuc2FzOUFwaUNsaWVudCl8fHZvaWQgMD09PXo/dm9pZCAwOnouZXhlY3V0ZVNjcmlwdChFZSxoZSxPKV07Y2FzZSAxOnJldHVyblsyLG5lLnNlbnQoKV19fSl9KX0sVGUucHJvdG90eXBlLmV4ZWN1dGVTY3JpcHRTQVNqcz1mdW5jdGlvbihFZSxoZSxPKXt2''@;'; + put 'put ''YXIgejtyZXR1cm4gYWUodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIFkodGhpcyxmdW5jdGlvbihuZSl7c3dpdGNoKG5lLmxhYmVsKXtjYXNlIDA6cmV0dXJuIHRoaXMuaXNNZXRob2RTdXBwb3J0ZWQoImV4ZWN1dGVTY3JpcHRTQVNKUyIsW2NlLlNlcnZlclR5cGUuU2Fz''@;'; + put 'put ''anNdKSxbNCxudWxsPT09KHo9dGhpcy5zYXNKU0FwaUNsaWVudCl8fHZvaWQgMD09PXo/dm9pZCAwOnouZXhlY3V0ZVNjcmlwdChFZSxoZSxPKV07Y2FzZSAxOnJldHVyblsyLG5lLnNlbnQoKV19fSl9KX0sVGUucHJvdG90eXBlLmV4ZWN1dGVTY3JpcHRTQVNWaXlhPWZ1bmN0aW9uKEVlLGhl''@;'; + put 'put ''LE8seixuZSl7cmV0dXJuIGFlKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBZKHRoaXMsZnVuY3Rpb24odGUpe3N3aXRjaCh0ZS5sYWJlbCl7Y2FzZSAwOmlmKHRoaXMuaXNNZXRob2RTdXBwb3J0ZWQoImV4ZWN1dGVTY3JpcHRTQVNWaXlhIixbY2UuU2VydmVyVHlwZS5T''@;'; + put 'put ''YXNWaXlhXSksIShPPU98fHRoaXMuc2FzanNDb25maWcuY29udGV4dE5hbWUpKXRocm93IG5ldyBFcnJvcigiQ29udGV4dCBuYW1lIGlzIHVuZGVmaW5lZC4gUGxlYXNlIHNldCBhIGBjb250ZXh0TmFtZWAgaW4geW91ciBTQVNqcyBvciBvdmVycmlkZSBjb25maWcuIik7cmV0dXJuWzQsdGhp''@;'; + put 'put ''cy5zYXNWaXlhQXBpQ2xpZW50LmV4ZWN1dGVTY3JpcHQoRWUsaGUsTyx6LG51bGwsbmV8fHRoaXMuc2FzanNDb25maWcuZGVidWcpXTtjYXNlIDE6cmV0dXJuWzIsdGUuc2VudCgpXX19KX0pfSxUZS5wcm90b3R5cGUuZ2V0Q29tcHV0ZUNvbnRleHRzPWZ1bmN0aW9uKEVlKXtyZXR1cm4gYWUo''@;'; + put 'put ''dGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIFkodGhpcyxmdW5jdGlvbihoZSl7c3dpdGNoKGhlLmxhYmVsKXtjYXNlIDA6cmV0dXJuIHRoaXMuaXNNZXRob2RTdXBwb3J0ZWQoImdldENvbXB1dGVDb250ZXh0cyIsW2NlLlNlcnZlclR5cGUuU2FzVml5YV0pLFs0LHRoaXMu''@;'; + put 'put ''c2FzVml5YUFwaUNsaWVudC5nZXRDb21wdXRlQ29udGV4dHMoRWUpXTtjYXNlIDE6cmV0dXJuWzIsaGUuc2VudCgpXX19KX0pfSxUZS5wcm90b3R5cGUuZ2V0TGF1bmNoZXJDb250ZXh0cz1mdW5jdGlvbihFZSl7cmV0dXJuIGFlKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVy''@;'; + put 'put ''biBZKHRoaXMsZnVuY3Rpb24oaGUpe3N3aXRjaChoZS5sYWJlbCl7Y2FzZSAwOnJldHVybiB0aGlzLmlzTWV0aG9kU3VwcG9ydGVkKCJnZXRMYXVuY2hlckNvbnRleHRzIixbY2UuU2VydmVyVHlwZS5TYXNWaXlhXSksWzQsdGhpcy5zYXNWaXlhQXBpQ2xpZW50LmdldExhdW5jaGVyQ29udGV4''@;'; + put 'put ''dHMoRWUpXTtjYXNlIDE6cmV0dXJuWzIsaGUuc2VudCgpXX19KX0pfSxUZS5wcm90b3R5cGUuZ2V0RGVmYXVsdENvbXB1dGVDb250ZXh0cz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmlzTWV0aG9kU3VwcG9ydGVkKCJnZXREZWZhdWx0Q29tcHV0ZUNvbnRleHRzIixbY2UuU2VydmVyVHlwZS5T''@;'; + put 'put ''YXNWaXlhXSksdGhpcy5zYXNWaXlhQXBpQ2xpZW50LmdldERlZmF1bHRDb21wdXRlQ29udGV4dHMoKX0sVGUucHJvdG90eXBlLmdldEV4ZWN1dGFibGVDb250ZXh0cz1mdW5jdGlvbihFZSl7cmV0dXJuIGFlKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBZKHRoaXMsZnVu''@;'; + put 'put ''Y3Rpb24oaGUpe3N3aXRjaChoZS5sYWJlbCl7Y2FzZSAwOnJldHVybiB0aGlzLmlzTWV0aG9kU3VwcG9ydGVkKCJnZXRFeGVjdXRhYmxlQ29udGV4dHMiLFtjZS5TZXJ2ZXJUeXBlLlNhc1ZpeWFdKSxbNCx0aGlzLnNhc1ZpeWFBcGlDbGllbnQuZ2V0RXhlY3V0YWJsZUNvbnRleHRzKEVlKV07''@;'; + put 'put ''Y2FzZSAxOnJldHVyblsyLGhlLnNlbnQoKV19fSl9KX0sVGUucHJvdG90eXBlLmNyZWF0ZUNvbXB1dGVDb250ZXh0PWZ1bmN0aW9uKEVlLGhlLE8seixuZSx0ZSl7cmV0dXJuIGFlKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBZKHRoaXMsZnVuY3Rpb24oeCl7c3dpdGNo''@;'; + put 'put ''KHgubGFiZWwpe2Nhc2UgMDpyZXR1cm4gdGhpcy5pc01ldGhvZFN1cHBvcnRlZCgiY3JlYXRlQ29tcHV0ZUNvbnRleHQiLFtjZS5TZXJ2ZXJUeXBlLlNhc1ZpeWFdKSxbNCx0aGlzLnNhc1ZpeWFBcGlDbGllbnQuY3JlYXRlQ29tcHV0ZUNvbnRleHQoRWUsaGUsTyx6LG5lLHRlKV07Y2FzZSAx''@;'; + put 'put ''OnJldHVyblsyLHguc2VudCgpXX19KX0pfSxUZS5wcm90b3R5cGUuY3JlYXRlTGF1bmNoZXJDb250ZXh0PWZ1bmN0aW9uKEVlLGhlLE8seil7cmV0dXJuIGFlKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBZKHRoaXMsZnVuY3Rpb24obmUpe3N3aXRjaChuZS5sYWJlbCl7''@;'; + put 'put ''Y2FzZSAwOnJldHVybiB0aGlzLmlzTWV0aG9kU3VwcG9ydGVkKCJjcmVhdGVMYXVuY2hlckNvbnRleHQiLFtjZS5TZXJ2ZXJUeXBlLlNhc1ZpeWFdKSxbNCx0aGlzLnNhc1ZpeWFBcGlDbGllbnQuY3JlYXRlTGF1bmNoZXJDb250ZXh0KEVlLGhlLE8seildO2Nhc2UgMTpyZXR1cm5bMixuZS5z''@;'; + put 'put ''ZW50KCldfX0pfSl9LFRlLnByb3RvdHlwZS5lZGl0Q29tcHV0ZUNvbnRleHQ9ZnVuY3Rpb24oRWUsaGUsTyl7cmV0dXJuIGFlKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBZKHRoaXMsZnVuY3Rpb24oeil7c3dpdGNoKHoubGFiZWwpe2Nhc2UgMDpyZXR1cm4gdGhpcy5p''@;'; + put 'put ''c01ldGhvZFN1cHBvcnRlZCgiZWRpdENvbXB1dGVDb250ZXh0IixbY2UuU2VydmVyVHlwZS5TYXNWaXlhXSksWzQsdGhpcy5zYXNWaXlhQXBpQ2xpZW50LmVkaXRDb21wdXRlQ29udGV4dChFZSxoZSxPKV07Y2FzZSAxOnJldHVyblsyLHouc2VudCgpXX19KX0pfSxUZS5wcm90b3R5cGUuZGVs''@;'; + put 'put ''ZXRlQ29tcHV0ZUNvbnRleHQ9ZnVuY3Rpb24oRWUsaGUpe3JldHVybiBhZSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gWSh0aGlzLGZ1bmN0aW9uKE8pe3N3aXRjaChPLmxhYmVsKXtjYXNlIDA6cmV0dXJuIHRoaXMuaXNNZXRob2RTdXBwb3J0ZWQoImRlbGV0ZUNvbXB1''@;'; + put 'put ''dGVDb250ZXh0IixbY2UuU2VydmVyVHlwZS5TYXNWaXlhXSksWzQsdGhpcy5zYXNWaXlhQXBpQ2xpZW50LmRlbGV0ZUNvbXB1dGVDb250ZXh0KEVlLGhlKV07Y2FzZSAxOnJldHVyblsyLE8uc2VudCgpXX19KX0pfSxUZS5wcm90b3R5cGUuZ2V0Q29tcHV0ZUNvbnRleHRCeU5hbWU9ZnVuY3Rp''@;'; + put 'put ''b24oRWUsaGUpe3JldHVybiBhZSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gWSh0aGlzLGZ1bmN0aW9uKE8pe3N3aXRjaChPLmxhYmVsKXtjYXNlIDA6cmV0dXJuIHRoaXMuaXNNZXRob2RTdXBwb3J0ZWQoImdldENvbXB1dGVDb250ZXh0QnlOYW1lIixbY2UuU2VydmVy''@;'; + put 'put ''VHlwZS5TYXNWaXlhXSksWzQsdGhpcy5zYXNWaXlhQXBpQ2xpZW50LmdldENvbXB1dGVDb250ZXh0QnlOYW1lKEVlLGhlKV07Y2FzZSAxOnJldHVyblsyLE8uc2VudCgpXX19KX0pfSxUZS5wcm90b3R5cGUuZ2V0Q29tcHV0ZUNvbnRleHRCeUlkPWZ1bmN0aW9uKEVlLGhlKXtyZXR1cm4gYWUo''@;'; + put 'put ''dGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIFkodGhpcyxmdW5jdGlvbihPKXtzd2l0Y2goTy5sYWJlbCl7Y2FzZSAwOnJldHVybiB0aGlzLmlzTWV0aG9kU3VwcG9ydGVkKCJnZXRDb21wdXRlQ29udGV4dEJ5SWQiLFtjZS5TZXJ2ZXJUeXBlLlNhc1ZpeWFdKSxbNCx0aGlz''@;'; + put 'put ''LnNhc1ZpeWFBcGlDbGllbnQuZ2V0Q29tcHV0ZUNvbnRleHRCeUlkKEVlLGhlKV07Y2FzZSAxOnJldHVyblsyLE8uc2VudCgpXX19KX0pfSxUZS5wcm90b3R5cGUuY3JlYXRlU2Vzc2lvbj1mdW5jdGlvbihFZSxoZSl7cmV0dXJuIGFlKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3Jl''@;'; + put 'put ''dHVybiBZKHRoaXMsZnVuY3Rpb24oTyl7c3dpdGNoKE8ubGFiZWwpe2Nhc2UgMDpyZXR1cm4gdGhpcy5pc01ldGhvZFN1cHBvcnRlZCgiY3JlYXRlU2Vzc2lvbiIsW2NlLlNlcnZlclR5cGUuU2FzVml5YV0pLFs0LHRoaXMuc2FzVml5YUFwaUNsaWVudC5jcmVhdGVTZXNzaW9uKEVlLGhlKV07''@;'; + put 'put ''Y2FzZSAxOnJldHVyblsyLE8uc2VudCgpXX19KX0pfSxUZS5wcm90b3R5cGUuY3JlYXRlRm9sZGVyPWZ1bmN0aW9uKEVlLGhlLE8seixuZSx0ZSl7cmV0dXJuIGFlKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBZKHRoaXMsZnVuY3Rpb24oeCl7c3dpdGNoKHgubGFiZWwp''@;'; + put 'put ''e2Nhc2UgMDpyZXR1cm4gbmU/WzQsbmUuY3JlYXRlRm9sZGVyKEVlLGhlLE8seildOlszLDJdO2Nhc2UgMTpjYXNlIDM6cmV0dXJuWzIseC5zZW50KCldO2Nhc2UgMjpyZXR1cm5bNCx0aGlzLnNhc1ZpeWFBcGlDbGllbnQuY3JlYXRlRm9sZGVyKEVlLGhlLE8seix0ZSldfX0pfSl9LFRlLnBy''@;'; + put 'put ''b3RvdHlwZS5jcmVhdGVGaWxlPWZ1bmN0aW9uKEVlLGhlLE8seixuZSx0ZSl7cmV0dXJuIGFlKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBZKHRoaXMsZnVuY3Rpb24oeCl7c3dpdGNoKHgubGFiZWwpe2Nhc2UgMDpyZXR1cm4gdGU/WzQsdGUuY3JlYXRlRmlsZShFZSxo''@;'; + put 'put ''ZSxPLHosbmUpXTpbMywyXTtjYXNlIDE6Y2FzZSAzOnJldHVyblsyLHguc2VudCgpXTtjYXNlIDI6cmV0dXJuWzQsdGhpcy5zYXNWaXlhQXBpQ2xpZW50LmNyZWF0ZUZpbGUoRWUsaGUsTyx6LG5lKV19fSl9KX0sVGUucHJvdG90eXBlLmdldEZvbGRlcj1mdW5jdGlvbihFZSxoZSl7cmV0dXJu''@;'; + put 'put ''IGFlKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBZKHRoaXMsZnVuY3Rpb24oTyl7c3dpdGNoKE8ubGFiZWwpe2Nhc2UgMDpyZXR1cm4gdGhpcy5pc01ldGhvZFN1cHBvcnRlZCgiZ2V0Rm9sZGVyIixbY2UuU2VydmVyVHlwZS5TYXNWaXlhXSksWzQsdGhpcy5zYXNWaXlh''@;'; + put 'put ''QXBpQ2xpZW50LmdldEZvbGRlcihFZSxoZSldO2Nhc2UgMTpyZXR1cm5bMixPLnNlbnQoKV19fSl9KX0sVGUucHJvdG90eXBlLmRlbGV0ZUZvbGRlcj1mdW5jdGlvbihFZSxoZSl7dmFyIE87cmV0dXJuIGFlKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBZKHRoaXMsZnVu''@;'; + put 'put ''Y3Rpb24oeil7c3dpdGNoKHoubGFiZWwpe2Nhc2UgMDpyZXR1cm4gdGhpcy5pc01ldGhvZFN1cHBvcnRlZCgiZGVsZXRlRm9sZGVyIixbY2UuU2VydmVyVHlwZS5TYXNWaXlhXSksWzQsbnVsbD09PShPPXRoaXMuc2FzVml5YUFwaUNsaWVudCl8fHZvaWQgMD09PU8/dm9pZCAwOk8uZGVsZXRl''@;'; + put 'put ''Rm9sZGVyKEVlLGhlKV07Y2FzZSAxOnJldHVyblsyLHouc2VudCgpXX19KX0pfSxUZS5wcm90b3R5cGUubGlzdEZvbGRlcj1mdW5jdGlvbihFZSxoZSxPKXt2YXIgejtyZXR1cm4gYWUodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIFkodGhpcyxmdW5jdGlvbihuZSl7c3dp''@;'; + put 'put ''dGNoKG5lLmxhYmVsKXtjYXNlIDA6cmV0dXJuIHRoaXMuaXNNZXRob2RTdXBwb3J0ZWQoImxpc3RGb2xkZXIiLFtjZS5TZXJ2ZXJUeXBlLlNhc1ZpeWFdKSxbNCxudWxsPT09KHo9dGhpcy5zYXNWaXlhQXBpQ2xpZW50KXx8dm9pZCAwPT09ej92b2lkIDA6ei5saXN0Rm9sZGVyKEVlLGhlLE8p''@;'; + put 'put ''XTtjYXNlIDE6cmV0dXJuWzIsbmUuc2VudCgpXX19KX0pfSxUZS5wcm90b3R5cGUubW92ZUZvbGRlcj1mdW5jdGlvbihFZSxoZSxPLHope3ZhciBuZTtyZXR1cm4gYWUodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIFkodGhpcyxmdW5jdGlvbih0ZSl7c3dpdGNoKHRlLmxh''@;'; + put 'put ''YmVsKXtjYXNlIDA6cmV0dXJuIHRoaXMuaXNNZXRob2RTdXBwb3J0ZWQoIm1vdmVGb2xkZXIiLFtjZS5TZXJ2ZXJUeXBlLlNhc1ZpeWFdKSxbNCxudWxsPT09KG5lPXRoaXMuc2FzVml5YUFwaUNsaWVudCl8fHZvaWQgMD09PW5lP3ZvaWQgMDpuZS5tb3ZlRm9sZGVyKEVlLGhlLE8seildO2Nh''@;'; + put 'put ''c2UgMTpyZXR1cm5bMix0ZS5zZW50KCldfX0pfSl9LFRlLnByb3RvdHlwZS5jcmVhdGVKb2JEZWZpbml0aW9uPWZ1bmN0aW9uKEVlLGhlLE8seixuZSx0ZSl7cmV0dXJuIGFlKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBZKHRoaXMsZnVuY3Rpb24oeCl7c3dpdGNoKHgu''@;'; + put 'put ''bGFiZWwpe2Nhc2UgMDpyZXR1cm4gdGhpcy5pc01ldGhvZFN1cHBvcnRlZCgiY3JlYXRlSm9iRGVmaW5pdGlvbiIsW2NlLlNlcnZlclR5cGUuU2FzVml5YV0pLHRlP1s0LHRlLmNyZWF0ZUpvYkRlZmluaXRpb24oRWUsaGUsTyx6LG5lKV06WzMsMl07Y2FzZSAxOmNhc2UgMzpyZXR1cm5bMix4''@;'; + put 'put ''LnNlbnQoKV07Y2FzZSAyOnJldHVybls0LHRoaXMuc2FzVml5YUFwaUNsaWVudC5jcmVhdGVKb2JEZWZpbml0aW9uKEVlLGhlLE8seixuZSldfX0pfSl9LFRlLnByb3RvdHlwZS5nZXRBdXRoQ29kZT1mdW5jdGlvbihFZSl7cmV0dXJuIGFlKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigp''@;'; + put 'put ''e3JldHVybiBZKHRoaXMsZnVuY3Rpb24oaGUpe3N3aXRjaChoZS5sYWJlbCl7Y2FzZSAwOnJldHVybiB0aGlzLmlzTWV0aG9kU3VwcG9ydGVkKCJnZXRBdXRoQ29kZSIsW2NlLlNlcnZlclR5cGUuU2FzVml5YV0pLFs0LHRoaXMuc2FzVml5YUFwaUNsaWVudC5nZXRBdXRoQ29kZShFZSldO2Nh''@;'; + put 'put ''c2UgMTpyZXR1cm5bMixoZS5zZW50KCldfX0pfSl9LFRlLnByb3RvdHlwZS5nZXRBY2Nlc3NUb2tlbj1mdW5jdGlvbihFZSxoZSxPKXtyZXR1cm4gYWUodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIFkodGhpcyxmdW5jdGlvbih6KXtzd2l0Y2goei5sYWJlbCl7Y2FzZSAw''@;'; + put 'put ''OnJldHVybiB0aGlzLmlzTWV0aG9kU3VwcG9ydGVkKCJnZXRBY2Nlc3NUb2tlbiIsW2NlLlNlcnZlclR5cGUuU2FzVml5YSxjZS5TZXJ2ZXJUeXBlLlNhc2pzXSksdGhpcy5zYXNqc0NvbmZpZy5zZXJ2ZXJUeXBlIT09Y2UuU2VydmVyVHlwZS5TYXNqcz9bMywyXTpbNCx0aGlzLnNhc0pTQXBp''@;'; + put 'put ''Q2xpZW50LmdldEFjY2Vzc1Rva2VuKEVlLE8pXTtjYXNlIDE6Y2FzZSAzOnJldHVyblsyLHouc2VudCgpXTtjYXNlIDI6cmV0dXJuWzQsdGhpcy5zYXNWaXlhQXBpQ2xpZW50LmdldEFjY2Vzc1Rva2VuKEVlLGhlLE8pXX19KX0pfSxUZS5wcm90b3R5cGUucmVmcmVzaFRva2Vucz1mdW5jdGlv''@;'; + put 'put ''bihFZSxoZSxPKXtyZXR1cm4gYWUodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIFkodGhpcyxmdW5jdGlvbih6KXtzd2l0Y2goei5sYWJlbCl7Y2FzZSAwOnJldHVybiB0aGlzLmlzTWV0aG9kU3VwcG9ydGVkKCJyZWZyZXNoVG9rZW5zIixbY2UuU2VydmVyVHlwZS5TYXNW''@;'; + put 'put ''aXlhLGNlLlNlcnZlclR5cGUuU2FzanNdKSx0aGlzLnNhc2pzQ29uZmlnLnNlcnZlclR5cGUhPT1jZS5TZXJ2ZXJUeXBlLlNhc2pzP1szLDJdOls0LHRoaXMuc2FzSlNBcGlDbGllbnQucmVmcmVzaFRva2VucyhPKV07Y2FzZSAxOmNhc2UgMzpyZXR1cm5bMix6LnNlbnQoKV07Y2FzZSAyOnJl''@;'; + put 'put ''dHVybls0LHRoaXMuc2FzVml5YUFwaUNsaWVudC5yZWZyZXNoVG9rZW5zKEVlLGhlLE8pXX19KX0pfSxUZS5wcm90b3R5cGUuZGVsZXRlQ2xpZW50PWZ1bmN0aW9uKEVlLGhlKXtyZXR1cm4gYWUodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIFkodGhpcyxmdW5jdGlvbihP''@;'; + put 'put ''KXtzd2l0Y2goTy5sYWJlbCl7Y2FzZSAwOnJldHVybiB0aGlzLmlzTWV0aG9kU3VwcG9ydGVkKCJkZWxldGVDbGllbnQiLFtjZS5TZXJ2ZXJUeXBlLlNhc1ZpeWFdKSxbNCx0aGlzLnNhc1ZpeWFBcGlDbGllbnQuZGVsZXRlQ2xpZW50KEVlLGhlKV07Y2FzZSAxOnJldHVyblsyLE8uc2VudCgp''@;'; + put 'put ''XX19KX0pfSxUZS5wcm90b3R5cGUuZ2V0U2FzanNDb25maWc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zYXNqc0NvbmZpZ30sVGUucHJvdG90eXBlLmdldFVzZXJOYW1lPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYXV0aE1hbmFnZXIudXNlck5hbWV9LFRlLnByb3RvdHlwZS5zZXRTQVNqc0Nv''@;'; + put 'put ''bmZpZz1mdW5jdGlvbihFZSl7cmV0dXJuIGFlKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBZKHRoaXMsZnVuY3Rpb24oaGUpe3JldHVybiB0aGlzLnNhc2pzQ29uZmlnPWllKGllKHt9LHRoaXMuc2FzanNDb25maWcpLEVlKSx0aGlzLnNldHVwQ29uZmlndXJhdGlvbigp''@;'; + put 'put ''LFsyXX0pfSl9LFRlLnByb3RvdHlwZS5zZXREZWJ1Z1N0YXRlPWZ1bmN0aW9uKEVlKXt0aGlzLnNhc2pzQ29uZmlnLmRlYnVnPUVlLHRoaXMuc2FzVml5YUFwaUNsaWVudCYmKHRoaXMuc2FzVml5YUFwaUNsaWVudC5kZWJ1Zz1FZSl9LFRlLnByb3RvdHlwZS5jaGVja1Nlc3Npb249ZnVuY3Rp''@;'; + put 'put ''b24oKXtyZXR1cm4gYWUodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIFkodGhpcyxmdW5jdGlvbihFZSl7cmV0dXJuWzIsdGhpcy5hdXRoTWFuYWdlci5jaGVja1Nlc3Npb24oKV19KX0pfSxUZS5wcm90b3R5cGUubG9nSW49ZnVuY3Rpb24oRWUsaGUsTyx6KXtyZXR1cm4g''@;'; + put 'put ''dm9pZCAwPT09eiYmKHo9e30pLGFlKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBZKHRoaXMsZnVuY3Rpb24obmUpe2lmKHRoaXMuc2FzanNDb25maWcubG9naW5NZWNoYW5pc209PT1lZS5Mb2dpbk1lY2hhbmlzbS5EZWZhdWx0KXtpZighRWV8fCFoZSl0aHJvdyBuZXcg''@;'; + put 'put ''RXJyb3IoIkEgdXNlcm5hbWUgYW5kIHBhc3N3b3JkIGFyZSByZXF1aXJlZCB3aGVuIHVzaW5nIHRoZSBkZWZhdWx0IGxvZ2luIG1lY2hhbmlzbS4iKTtyZXR1cm5bMix0aGlzLmF1dGhNYW5hZ2VyLmxvZ0luKEVlLGhlKV19aWYoInVuZGVmaW5lZCI9PXR5cGVvZiB3aW5kb3cpdGhyb3cgbmV3''@;'; + put 'put ''IEVycm9yKCJUaGUgcmVkaXJlY3RlZCBsb2dpbiBtZWNoYW5pc20gaXMgb25seSBhdmFpbGFibGUgZm9yIHVzZSBpbiB0aGUgYnJvd3Nlci4iKTtyZXR1cm5bMix0aGlzLmF1dGhNYW5hZ2VyLnJlZGlyZWN0ZWRMb2dJbih6KV19KX0pfSxUZS5wcm90b3R5cGUubG9nT3V0PWZ1bmN0aW9uKCl7''@;'; + put 'put ''cmV0dXJuIHRoaXMuYXV0aE1hbmFnZXIubG9nT3V0KCl9LFRlLnByb3RvdHlwZS51cGxvYWRGaWxlPWZ1bmN0aW9uKEVlLGhlLE8seixuZSl7cmV0dXJuIHZvaWQgMD09PXomJih6PXt9KSxhZSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gWSh0aGlzLGZ1bmN0aW9uKHgp''@;'; + put 'put ''e3N3aXRjaCh4LmxhYmVsKXtjYXNlIDA6cmV0dXJuIHo9aWUoaWUoe30sdGhpcy5zYXNqc0NvbmZpZykseiksWzQsdGhpcy5maWxlVXBsb2FkZXIuZXhlY3V0ZShFZSx7ZmlsZXM6aGUscGFyYW1zOk99LHosbmUpXTtjYXNlIDE6cmV0dXJuWzIseC5zZW50KCldfX0pfSl9LFRlLnByb3RvdHlw''@;'; + put 'put ''ZS5yZXF1ZXN0PWZ1bmN0aW9uKEVlLGhlLE8seixuZSx0ZSl7cmV0dXJuIHZvaWQgMD09PU8mJihPPXt9KSx2b2lkIDA9PT10ZSYmKHRlPVtdKSxhZSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgeDtyZXR1cm4gWSh0aGlzLGZ1bmN0aW9uKFApe3N3aXRjaChQLmxhYmVsKXtj''@;'; + put 'put ''YXNlIDA6cmV0dXJuIE89aWUoaWUoe30sdGhpcy5zYXNqc0NvbmZpZyksTyksKHg9KDAsTi52YWxpZGF0ZUlucHV0KShoZSkpLnN0YXR1cz9PLnNlcnZlclR5cGUhPT1jZS5TZXJ2ZXJUeXBlLlNhc2pzP1szLDJdOls0LHRoaXMuc2FzanNKb2JFeGVjdXRvci5leGVjdXRlKEVlLGhlLE8seixu''@;'; + put 'put ''ZSx0ZSldOlszLDEyXTtjYXNlIDE6Y2FzZSAzOmNhc2UgNTpjYXNlIDg6Y2FzZSAxMDpyZXR1cm5bMixQLnNlbnQoKV07Y2FzZSAyOnJldHVybiBPLnNlcnZlclR5cGUhPT1jZS5TZXJ2ZXJUeXBlLlNhc1ZpeWF8fG51bGw9PU8udXNlQ29tcHV0ZUFwaT9bMyw3XTpPLnVzZUNvbXB1dGVBcGk/''@;'; + put 'put ''WzQsdGhpcy5jb21wdXRlSm9iRXhlY3V0b3IuZXhlY3V0ZShFZSxoZSxPLHosbmUpXTpbMyw0XTtjYXNlIDQ6cmV0dXJuIE8uY29udGV4dE5hbWV8fChPPWllKGllKHt9LE8pLHtjb250ZXh0TmFtZToiU0FTIEpvYiBFeGVjdXRpb24gY29tcHV0ZSBjb250ZXh0In0pKSxbNCx0aGlzLmplc0pv''@;'; + put 'put ''YkV4ZWN1dG9yLmV4ZWN1dGUoRWUsaGUsTyx6LG5lLHRlKV07Y2FzZSA2OnJldHVyblszLDExXTtjYXNlIDc6cmV0dXJuIE8uc2VydmVyVHlwZT09PWNlLlNlcnZlclR5cGUuU2FzOSYmTy51c2VybmFtZSYmTy5wYXNzd29yZD9bNCx0aGlzLnNhczlKb2JFeGVjdXRvci5leGVjdXRlKEVlLGhl''@;'; + put 'put ''LE8pXTpbMyw5XTtjYXNlIDk6cmV0dXJuWzQsdGhpcy53ZWJKb2JFeGVjdXRvci5leGVjdXRlKEVlLGhlLE8seixuZSx0ZSldO2Nhc2UgMTE6cmV0dXJuWzMsMTNdO2Nhc2UgMTI6cmV0dXJuWzIsUHJvbWlzZS5yZWplY3QobmV3IGtlLkVycm9yUmVzcG9uc2UoeC5tc2cpKV07Y2FzZSAxMzpy''@;'; + put 'put ''ZXR1cm5bMl19fSl9KX0sVGUucHJvdG90eXBlLmRlcGxveVNlcnZpY2VQYWNrPWZ1bmN0aW9uKEVlLGhlLE8seixuZSl7cmV0dXJuIHZvaWQgMD09PW5lJiYobmU9ITEpLGFlKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciB0ZSx4O3JldHVybiBZKHRoaXMsZnVuY3Rpb24oVil7''@;'; + put 'put ''c3dpdGNoKFYubGFiZWwpe2Nhc2UgMDpyZXR1cm4gdGhpcy5pc01ldGhvZFN1cHBvcnRlZCgiZGVwbG95U2VydmljZVBhY2siLFtjZS5TZXJ2ZXJUeXBlLlNhc1ZpeWFdKSx0ZT1udWxsLE98fGhlPyhPfHwoTz10aGlzLnNhc2pzQ29uZmlnLnNlcnZlclVybCksaGV8fChoZT10aGlzLnNhc2pz''@;'; + put 'put ''Q29uZmlnLmFwcExvYyksdGhpcy5zYXNqc0NvbmZpZy5zZXJ2ZXJUeXBlPT09Y2UuU2VydmVyVHlwZS5TYXNWaXlhPyh0ZT1uZXcgcS5TQVNWaXlhQXBpQ2xpZW50KE8saGUsdGhpcy5zYXNqc0NvbmZpZy5jb250ZXh0TmFtZSx0aGlzLnJlcXVlc3RDbGllbnQpKS5kZWJ1Zz10aGlzLnNhc2pz''@;'; + put 'put ''Q29uZmlnLmRlYnVnOnRoaXMuc2FzanNDb25maWcuc2VydmVyVHlwZT09PWNlLlNlcnZlclR5cGUuU2FzOSYmKHRlPW5ldyBKLlNBUzlBcGlDbGllbnQoTyx0aGlzLmpvYnNQYXRoLHRoaXMuc2FzanNDb25maWcuaHR0cHNBZ2VudE9wdGlvbnMpKSk6KHg9bnVsbCx0aGlzLnNhc2pzQ29uZmln''@;'; + put 'put ''LnNlcnZlclR5cGU9PT1jZS5TZXJ2ZXJUeXBlLlNhc1ZpeWE/eD10aGlzLnNhc1ZpeWFBcGlDbGllbnQuZ2V0Q29uZmlnKCk6dGhpcy5zYXNqc0NvbmZpZy5zZXJ2ZXJUeXBlPT09Y2UuU2VydmVyVHlwZS5TYXM5JiYoeD10aGlzLnNhczlBcGlDbGllbnQuZ2V0Q29uZmlnKCkpLE89eC5zZXJ2''@;'; + put 'put ''ZXJVcmwsaGU9eC5yb290Rm9sZGVyTmFtZSksRWUubWVtYmVyc1swXS5tZW1iZXJzJiZFZS5tZW1iZXJzWzBdLm1lbWJlcnMuc29ydChmdW5jdGlvbihUKXtyZXR1cm4iZm9sZGVyIj09PVQudHlwZT8tMToxfSksWzQsdGhpcy5jcmVhdGVGb2xkZXJzQW5kU2VydmljZXMoaGUsRWUubWVtYmVy''@;'; + put 'put ''cyx6LHRlLG5lKV07Y2FzZSAxOnJldHVybiBWLnNlbnQoKSxbMl19fSl9KX0sVGUucHJvdG90eXBlLmRlcGxveVRvU0FTanM9ZnVuY3Rpb24oRWUsaGUsTyl7dmFyIHo7cmV0dXJuIGFlKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBZKHRoaXMsZnVuY3Rpb24obmUpe3N3''@;'; + put 'put ''aXRjaChuZS5sYWJlbCl7Y2FzZSAwOnJldHVybiBoZXx8KGhlPXRoaXMuc2FzanNDb25maWcuYXBwTG9jKSxbNCxudWxsPT09KHo9dGhpcy5zYXNKU0FwaUNsaWVudCl8fHZvaWQgMD09PXo/dm9pZCAwOnouZGVwbG95KEVlLGhlLE8pXTtjYXNlIDE6cmV0dXJuWzIsbmUuc2VudCgpXX19KX0p''@;'; + put 'put ''fSxUZS5wcm90b3R5cGUuZXhlY3V0ZUpvYlNBU2pzPWZ1bmN0aW9uKEVlLGhlKXt2YXIgTztyZXR1cm4gYWUodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIFkodGhpcyxmdW5jdGlvbih6KXtzd2l0Y2goei5sYWJlbCl7Y2FzZSAwOnJldHVybls0LG51bGw9PT0oTz10aGlz''@;'; + put 'put ''LnNhc0pTQXBpQ2xpZW50KXx8dm9pZCAwPT09Tz92b2lkIDA6Ty5leGVjdXRlSm9iKEVlLGhlKV07Y2FzZSAxOnJldHVyblsyLHouc2VudCgpXX19KX0pfSxUZS5wcm90b3R5cGUuc3RhcnRDb21wdXRlSm9iPWZ1bmN0aW9uKEVlLGhlLE8seixuZSx0ZSx4LFApe3ZhciBWO3JldHVybiB2b2lk''@;'; + put 'put ''IDA9PT1PJiYoTz17fSksdm9pZCAwPT09eCYmKHg9ITEpLGFlKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBZKHRoaXMsZnVuY3Rpb24oVCl7aWYoTz1pZShpZSh7fSx0aGlzLnNhc2pzQ29uZmlnKSxPKSx0aGlzLmlzTWV0aG9kU3VwcG9ydGVkKCJzdGFydENvbXB1dGVK''@;'; + put 'put ''b2IiLFtjZS5TZXJ2ZXJUeXBlLlNhc1ZpeWFdKSwhTy5jb250ZXh0TmFtZSl0aHJvdyBuZXcgRXJyb3IoIkNvbnRleHQgbmFtZSBpcyB1bmRlZmluZWQuIFBsZWFzZSBzZXQgYSBgY29udGV4dE5hbWVgIGluIHlvdXIgU0FTanMgb3Igb3ZlcnJpZGUgY29uZmlnLiIpO3JldHVyblsyLG51bGw9''@;'; + put 'put ''PT0oVj10aGlzLnNhc1ZpeWFBcGlDbGllbnQpfHx2b2lkIDA9PT1WP3ZvaWQgMDpWLmV4ZWN1dGVDb21wdXRlSm9iKEVlLE8uY29udGV4dE5hbWUsTy5kZWJ1ZyxoZSx6LCEhbmUsITEsdGUseCxQKV19KX0pfSxUZS5wcm90b3R5cGUuZmV0Y2hMb2dGaWxlQ29udGVudD1mdW5jdGlvbihFZSxo''@;'; + put 'put ''ZSl7cmV0dXJuIGFlKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBZKHRoaXMsZnVuY3Rpb24oTyl7c3dpdGNoKE8ubGFiZWwpe2Nhc2UgMDpyZXR1cm5bNCx0aGlzLnJlcXVlc3RDbGllbnQuZ2V0KEVlLGhlKS50aGVuKGZ1bmN0aW9uKHope2lmKCF6KXJldHVybiBQcm9t''@;'; + put 'put ''aXNlLnJlamVjdChuZXcga2UuRXJyb3JSZXNwb25zZSgiRXJyb3Igd2hpbGUgZmV0Y2hpbmcgbG9nLiBSZXNwb25zZSB3YXMgbm90IHByb3ZpZGVkLiIpKTt0cnl7cmV0dXJuIEpTT04uc3RyaW5naWZ5KHoucmVzdWx0KX1jYXRjaChuZSl7cmV0dXJuIFByb21pc2UucmVqZWN0KG5ldyBrZS5F''@;'; + put 'put ''cnJvclJlc3BvbnNlKCJFcnJvciB3aGlsZSBmZXRjaGluZyBsb2cuIFRoZSByZXN1bHQgaXMgbm90IHZhbGlkLiIsbmUpKX19KV07Y2FzZSAxOnJldHVyblsyLE8uc2VudCgpXX19KX0pfSxUZS5wcm90b3R5cGUuZ2V0U2FzUmVxdWVzdHM9ZnVuY3Rpb24oKXtyZXR1cm4gVyhbXSx0aGlzLnJl''@;'; + put 'put ''cXVlc3RDbGllbnQuZ2V0UmVxdWVzdHMoKSwhMCkuc29ydChOLmNvbXBhcmVUaW1lc3RhbXBzKX0sVGUucHJvdG90eXBlLmNsZWFyU2FzUmVxdWVzdHM9ZnVuY3Rpb24oKXt0aGlzLnJlcXVlc3RDbGllbnQuY2xlYXJSZXF1ZXN0cygpfSxUZS5wcm90b3R5cGUuc2V0dXBDb25maWd1cmF0aW9u''@;'; + put 'put ''PWZ1bmN0aW9uKCl7aWYodm9pZCAwPT09dGhpcy5zYXNqc0NvbmZpZy5zZXJ2ZXJVcmx8fCIiPT09dGhpcy5zYXNqc0NvbmZpZy5zZXJ2ZXJVcmwpaWYoInVuZGVmaW5lZCIhPXR5cGVvZiBsb2NhdGlvbil7dmFyIEVlPSIiLmNvbmNhdChsb2NhdGlvbi5wcm90b2NvbCwiLy8iKS5jb25jYXQo''@;'; + put 'put ''bG9jYXRpb24uaG9zdG5hbWUpO2xvY2F0aW9uLnBvcnQmJihFZT0iIi5jb25jYXQoRWUsIjoiKS5jb25jYXQobG9jYXRpb24ucG9ydCkpLHRoaXMuc2FzanNDb25maWcuc2VydmVyVXJsPUVlfWVsc2UgdGhpcy5zYXNqc0NvbmZpZy5zZXJ2ZXJVcmw9IiI7Ii8iPT09dGhpcy5zYXNqc0NvbmZp''@;'; + put 'put ''Zy5zZXJ2ZXJVcmwuc2xpY2UoLTEpJiYodGhpcy5zYXNqc0NvbmZpZy5zZXJ2ZXJVcmw9dGhpcy5zYXNqc0NvbmZpZy5zZXJ2ZXJVcmwuc2xpY2UoMCwtMSkpLHRoaXMucmVxdWVzdENsaWVudD90aGlzLnJlcXVlc3RDbGllbnQuc2V0Q29uZmlnKHRoaXMuc2FzanNDb25maWcuc2VydmVyVXJs''@;'; + put 'put ''LHRoaXMuc2FzanNDb25maWcuaHR0cHNBZ2VudE9wdGlvbnMpOnRoaXMucmVxdWVzdENsaWVudD1uZXcodGhpcy5zYXNqc0NvbmZpZy5zZXJ2ZXJUeXBlPT09Y2UuU2VydmVyVHlwZS5TYXNqcz92ZS5TYXNqc1JlcXVlc3RDbGllbnQ6ZGUuUmVxdWVzdENsaWVudCkodGhpcy5zYXNqc0NvbmZp''@;'; + put 'put ''Zy5zZXJ2ZXJVcmwsdGhpcy5zYXNqc0NvbmZpZy5odHRwc0FnZW50T3B0aW9ucyx0aGlzLnNhc2pzQ29uZmlnLnJlcXVlc3RIaXN0b3J5TGltaXQpLHRoaXMuam9ic1BhdGg9dGhpcy5zYXNqc0NvbmZpZy5zZXJ2ZXJUeXBlPT09Y2UuU2VydmVyVHlwZS5TYXNWaXlhP3RoaXMuc2FzanNDb25m''@;'; + put 'put ''aWcucGF0aFNBU1ZpeWE6dGhpcy5zYXNqc0NvbmZpZy5zZXJ2ZXJUeXBlPT09Y2UuU2VydmVyVHlwZS5TYXM5P3RoaXMuc2FzanNDb25maWcucGF0aFNBUzk6dGhpcy5zYXNqc0NvbmZpZy5wYXRoU0FTSlMsdGhpcy5hdXRoTWFuYWdlcj1uZXcgb2UuQXV0aE1hbmFnZXIodGhpcy5zYXNqc0Nv''@;'; + put 'put ''bmZpZy5zZXJ2ZXJVcmwsdGhpcy5zYXNqc0NvbmZpZy5zZXJ2ZXJUeXBlLHRoaXMucmVxdWVzdENsaWVudCx0aGlzLnJlc2VuZFdhaXRpbmdSZXF1ZXN0cyksdGhpcy5zYXNqc0NvbmZpZy5zZXJ2ZXJUeXBlPT09Y2UuU2VydmVyVHlwZS5TYXNWaXlhJiYodGhpcy5zYXNWaXlhQXBpQ2xpZW50''@;'; + put 'put ''P3RoaXMuc2FzVml5YUFwaUNsaWVudC5zZXRDb25maWcodGhpcy5zYXNqc0NvbmZpZy5zZXJ2ZXJVcmwsdGhpcy5zYXNqc0NvbmZpZy5hcHBMb2MpOnRoaXMuc2FzVml5YUFwaUNsaWVudD1uZXcgcS5TQVNWaXlhQXBpQ2xpZW50KHRoaXMuc2FzanNDb25maWcuc2VydmVyVXJsLHRoaXMuc2Fz''@;'; + put 'put ''anNDb25maWcuYXBwTG9jLHRoaXMuc2FzanNDb25maWcuY29udGV4dE5hbWUsdGhpcy5yZXF1ZXN0Q2xpZW50KSx0aGlzLnNhc1ZpeWFBcGlDbGllbnQuZGVidWc9dGhpcy5zYXNqc0NvbmZpZy5kZWJ1ZyksdGhpcy5zYXNqc0NvbmZpZy5zZXJ2ZXJUeXBlPT09Y2UuU2VydmVyVHlwZS5TYXM5''@;'; + put 'put ''JiYodGhpcy5zYXM5QXBpQ2xpZW50P3RoaXMuc2FzOUFwaUNsaWVudC5zZXRDb25maWcodGhpcy5zYXNqc0NvbmZpZy5zZXJ2ZXJVcmwpOnRoaXMuc2FzOUFwaUNsaWVudD1uZXcgSi5TQVM5QXBpQ2xpZW50KHRoaXMuc2FzanNDb25maWcuc2VydmVyVXJsLHRoaXMuam9ic1BhdGgsdGhpcy5z''@;'; + put 'put ''YXNqc0NvbmZpZy5odHRwc0FnZW50T3B0aW9ucykpLHRoaXMuc2FzanNDb25maWcuc2VydmVyVHlwZT09PWNlLlNlcnZlclR5cGUuU2FzanMmJih0aGlzLnNhc0pTQXBpQ2xpZW50fHwodGhpcy5zYXNKU0FwaUNsaWVudD1uZXcgc2UuU0FTanNBcGlDbGllbnQodGhpcy5yZXF1ZXN0Q2xpZW50''@;'; + put 'put ''KSkpLHRoaXMuZmlsZVVwbG9hZGVyPW5ldyBBZS5GaWxlVXBsb2FkZXIodGhpcy5zYXNqc0NvbmZpZy5zZXJ2ZXJVcmwsdGhpcy5zYXNqc0NvbmZpZy5zZXJ2ZXJUeXBlLHRoaXMuam9ic1BhdGgsdGhpcy5yZXF1ZXN0Q2xpZW50KSx0aGlzLndlYkpvYkV4ZWN1dG9yPW5ldyBBZS5XZWJKb2JF''@;'; + put 'put ''eGVjdXRvcih0aGlzLnNhc2pzQ29uZmlnLnNlcnZlclVybCx0aGlzLnNhc2pzQ29uZmlnLnNlcnZlclR5cGUsdGhpcy5qb2JzUGF0aCx0aGlzLnJlcXVlc3RDbGllbnQsdGhpcy5zYXNWaXlhQXBpQ2xpZW50KSx0aGlzLnNhc2pzSm9iRXhlY3V0b3I9bmV3IEFlLlNhc2pzSm9iRXhlY3V0b3Io''@;'; + put 'put ''dGhpcy5zYXNqc0NvbmZpZy5zZXJ2ZXJVcmwsdGhpcy5qb2JzUGF0aCx0aGlzLnJlcXVlc3RDbGllbnQpLHRoaXMuc2FzOUpvYkV4ZWN1dG9yPW5ldyBBZS5TYXM5Sm9iRXhlY3V0b3IodGhpcy5zYXNqc0NvbmZpZy5zZXJ2ZXJVcmwsdGhpcy5zYXNqc0NvbmZpZy5zZXJ2ZXJUeXBlLHRoaXMu''@;'; + put 'put ''am9ic1BhdGgsdGhpcy5yZXF1ZXN0Q2xpZW50LHRoaXMuc2FzanNDb25maWcuaHR0cHNBZ2VudE9wdGlvbnMpLHRoaXMuY29tcHV0ZUpvYkV4ZWN1dG9yPW5ldyBBZS5Db21wdXRlSm9iRXhlY3V0b3IodGhpcy5zYXNqc0NvbmZpZy5zZXJ2ZXJVcmwsdGhpcy5zYXNWaXlhQXBpQ2xpZW50KSx0''@;'; + put 'put ''aGlzLmplc0pvYkV4ZWN1dG9yPW5ldyBBZS5KZXNKb2JFeGVjdXRvcih0aGlzLnNhc2pzQ29uZmlnLnNlcnZlclVybCx0aGlzLnNhc1ZpeWFBcGlDbGllbnQpfSxUZS5wcm90b3R5cGUuY3JlYXRlRm9sZGVyc0FuZFNlcnZpY2VzPWZ1bmN0aW9uKEVlLGhlLE8seixuZSl7cmV0dXJuIGFlKHRo''@;'; + put 'put ''aXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciB0ZT10aGlzO3JldHVybiBZKHRoaXMsZnVuY3Rpb24oeCl7c3dpdGNoKHgubGFiZWwpe2Nhc2UgMDpyZXR1cm5bNCwoMCxOLmFzeW5jRm9yRWFjaCkoaGUsZnVuY3Rpb24oUCl7cmV0dXJuIGFlKHRlLHZvaWQgMCx2b2lkIDAsZnVuY3Rp''@;'; + put 'put ''b24oKXtyZXR1cm4gWSh0aGlzLGZ1bmN0aW9uKFYpe3N3aXRjaChWLmxhYmVsKXtjYXNlIDA6c3dpdGNoKFAudHlwZSl7Y2FzZSJmb2xkZXIiOnJldHVyblszLDFdO2Nhc2UiZmlsZSI6cmV0dXJuWzMsM107Y2FzZSJzZXJ2aWNlIjpyZXR1cm5bMyw1XX1yZXR1cm5bMyw3XTtjYXNlIDE6cmV0''@;'; + put 'put ''dXJuWzQsdGhpcy5jcmVhdGVGb2xkZXIoUC5uYW1lLEVlLHZvaWQgMCxPLHosbmUpXTtjYXNlIDI6cmV0dXJuIFYuc2VudCgpLFszLDhdO2Nhc2UgMzpyZXR1cm5bNCx0aGlzLmNyZWF0ZUZpbGUoUC5uYW1lLFAuY29kZSxFZSx2b2lkIDAsTyx6KV07Y2FzZSA0OnJldHVybiBWLnNlbnQoKSxb''@;'; + put 'put ''Myw4XTtjYXNlIDU6cmV0dXJuWzQsdGhpcy5jcmVhdGVKb2JEZWZpbml0aW9uKFAubmFtZSxQLmNvZGUsRWUsdm9pZCAwLE8seildO2Nhc2UgNjpyZXR1cm4gVi5zZW50KCksWzMsOF07Y2FzZSA3OnRocm93IG5ldyBFcnJvcigiVW5pZGVudGlmaWVkIG1lbWJlciAnIi5jb25jYXQoUC5uYW1l''@;'; + put 'put ''LCInIHByb3ZpZGVkLiIpKTtjYXNlIDg6cmV0dXJuImZvbGRlciI9PT1QLnR5cGUmJlAubWVtYmVycyYmUC5tZW1iZXJzLmxlbmd0aD9bNCx0aGlzLmNyZWF0ZUZvbGRlcnNBbmRTZXJ2aWNlcygiIi5jb25jYXQoRWUsIi8iKS5jb25jYXQoUC5uYW1lKSxQLm1lbWJlcnMsTyx6LG5lKV06WzMs''@;'; + put 'put ''MTBdO2Nhc2UgOTpWLnNlbnQoKSxWLmxhYmVsPTEwO2Nhc2UgMTA6cmV0dXJuWzJdfX0pfSl9KV07Y2FzZSAxOnJldHVybiB4LnNlbnQoKSxbMl19fSl9KX0sVGUucHJvdG90eXBlLmlzTWV0aG9kU3VwcG9ydGVkPWZ1bmN0aW9uKEVlLGhlKXtpZighdGhpcy5zYXNqc0NvbmZpZy5zZXJ2ZXJU''@;'; + put 'put ''eXBlfHwhaGUuaW5jbHVkZXModGhpcy5zYXNqc0NvbmZpZy5zZXJ2ZXJUeXBlKSl0aHJvdyBuZXcgRXJyb3IoIk1ldGhvZCAnIi5jb25jYXQoRWUsIicgaXMgb25seSBzdXBwb3J0ZWQgb24gIikuY29uY2F0KGhlLmpvaW4oIiwgIiksIiBzZXJ2ZXJzLiIpKX0sVGV9KCk7US5kZWZhdWx0PUll''@;'; + put 'put ''fSwzNDY3OmZ1bmN0aW9uKFUsUSxaKXsidXNlIHN0cmljdCI7dmFyIGllPXRoaXMmJnRoaXMuX19hd2FpdGVyfHxmdW5jdGlvbihzZSxvZSxjZSxkZSl7cmV0dXJuIG5ldyhjZXx8KGNlPVByb21pc2UpKShmdW5jdGlvbih2ZSxBZSl7ZnVuY3Rpb24ga2UoVGUpe3RyeXtJZShkZS5uZXh0KFRl''@;'; + put 'put ''KSl9Y2F0Y2goRWUpe0FlKEVlKX19ZnVuY3Rpb24gU2UoVGUpe3RyeXtJZShkZS50aHJvdyhUZSkpfWNhdGNoKEVlKXtBZShFZSl9fWZ1bmN0aW9uIEllKFRlKXt2YXIgRWU7VGUuZG9uZT92ZShUZS52YWx1ZSk6KEVlPVRlLnZhbHVlLEVlIGluc3RhbmNlb2YgY2U/RWU6bmV3IGNlKGZ1bmN0''@;'; + put 'put ''aW9uKGhlKXtoZShFZSl9KSkudGhlbihrZSxTZSl9SWUoKGRlPWRlLmFwcGx5KHNlLG9lfHxbXSkpLm5leHQoKSl9KX0sYWU9dGhpcyYmdGhpcy5fX2dlbmVyYXRvcnx8ZnVuY3Rpb24oc2Usb2Upe3ZhciBjZSxkZSx2ZSxBZSxrZT17bGFiZWw6MCxzZW50OmZ1bmN0aW9uKCl7aWYoMSZ2ZVsw''@;'; + put 'put ''XSl0aHJvdyB2ZVsxXTtyZXR1cm4gdmVbMV19LHRyeXM6W10sb3BzOltdfTtyZXR1cm4gQWU9e25leHQ6U2UoMCksdGhyb3c6U2UoMSkscmV0dXJuOlNlKDIpfSwiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYoQWVbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSks''@;'; + put 'put ''QWU7ZnVuY3Rpb24gU2UoSWUpe3JldHVybiBmdW5jdGlvbihUZSl7cmV0dXJuIGZ1bmN0aW9uKEVlKXtpZihjZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcuIik7Zm9yKDtrZTspdHJ5e2lmKGNlPTEsZGUmJih2ZT0yJkVlWzBdP2RlLnJldHVy''@;'; + put 'put ''bjpFZVswXT9kZS50aHJvd3x8KCh2ZT1kZS5yZXR1cm4pJiZ2ZS5jYWxsKGRlKSwwKTpkZS5uZXh0KSYmISh2ZT12ZS5jYWxsKGRlLEVlWzFdKSkuZG9uZSlyZXR1cm4gdmU7c3dpdGNoKGRlPTAsdmUmJihFZT1bMiZFZVswXSx2ZS52YWx1ZV0pLEVlWzBdKXtjYXNlIDA6Y2FzZSAxOnZlPUVl''@;'; + put 'put ''O2JyZWFrO2Nhc2UgNDpyZXR1cm4ga2UubGFiZWwrKyx7dmFsdWU6RWVbMV0sZG9uZTohMX07Y2FzZSA1OmtlLmxhYmVsKyssZGU9RWVbMV0sRWU9WzBdO2NvbnRpbnVlO2Nhc2UgNzpFZT1rZS5vcHMucG9wKCksa2UudHJ5cy5wb3AoKTtjb250aW51ZTtkZWZhdWx0OmlmKCEoKHZlPSh2ZT1r''@;'; + put 'put ''ZS50cnlzKS5sZW5ndGg+MCYmdmVbdmUubGVuZ3RoLTFdKXx8NiE9PUVlWzBdJiYyIT09RWVbMF0pKXtrZT0wO2NvbnRpbnVlfWlmKDM9PT1FZVswXSYmKCF2ZXx8RWVbMV0+dmVbMF0mJkVlWzFdPHZlWzNdKSl7a2UubGFiZWw9RWVbMV07YnJlYWt9aWYoNj09PUVlWzBdJiZrZS5sYWJlbDx2''@;'; + put 'put ''ZVsxXSl7a2UubGFiZWw9dmVbMV0sdmU9RWU7YnJlYWt9aWYodmUmJmtlLmxhYmVsPHZlWzJdKXtrZS5sYWJlbD12ZVsyXSxrZS5vcHMucHVzaChFZSk7YnJlYWt9dmVbMl0mJmtlLm9wcy5wb3AoKSxrZS50cnlzLnBvcCgpO2NvbnRpbnVlfUVlPW9lLmNhbGwoc2Usa2UpfWNhdGNoKGhlKXtF''@;'; + put 'put ''ZT1bNixoZV0sZGU9MH1maW5hbGx5e2NlPXZlPTB9aWYoNSZFZVswXSl0aHJvdyBFZVsxXTtyZXR1cm57dmFsdWU6RWVbMF0/RWVbMV06dm9pZCAwLGRvbmU6ITB9fShbSWUsVGVdKX19fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksUS5TQVNqc0Fw''@;'; + put 'put ''aUNsaWVudD12b2lkIDA7dmFyIFk9WigzOTAwKSxXPVooNTcpLE49WigyNDkpLGVlPVooNTkyOCkscT1aKDcwNCksSj1mdW5jdGlvbigpe2Z1bmN0aW9uIHNlKG9lKXt0aGlzLnJlcXVlc3RDbGllbnQ9b2V9cmV0dXJuIHNlLnByb3RvdHlwZS5kZXBsb3k9ZnVuY3Rpb24ob2UsY2UsZGUpe3Jl''@;'; + put 'put ''dHVybiBpZSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgdmUsQWU7cmV0dXJuIGFlKHRoaXMsZnVuY3Rpb24oa2Upe3N3aXRjaChrZS5sYWJlbCl7Y2FzZSAwOnJldHVybiB2ZT0oZGV8fHt9KS5hY2Nlc3NfdG9rZW4sZGU/WzQsKDAscS5nZXRUb2tlbnMpKHRoaXMucmVxdWVz''@;'; + put 'put ''dENsaWVudCxkZSxZLlNlcnZlclR5cGUuU2FzanMpXTpbMywyXTtjYXNlIDE6dmU9a2Uuc2VudCgpLmFjY2Vzc190b2tlbixrZS5sYWJlbD0yO2Nhc2UgMjpyZXR1cm4gb2UuYXBwTG9jPW9lLmFwcExvY3x8Y2UsWzQsdGhpcy5yZXF1ZXN0Q2xpZW50LnBvc3QoIlNBU2pzQXBpL2RyaXZlL2Rl''@;'; + put 'put ''cGxveSIsb2UsdmUsdm9pZCAwLHt9LHttYXhDb250ZW50TGVuZ3RoOjEvMCxtYXhCb2R5TGVuZ3RoOjEvMH0pXTtjYXNlIDM6cmV0dXJuIEFlPWtlLnNlbnQoKS5yZXN1bHQsWzIsUHJvbWlzZS5yZXNvbHZlKEFlKV19fSl9KX0sc2UucHJvdG90eXBlLmV4ZWN1dGVKb2I9ZnVuY3Rpb24ob2Us''@;'; + put 'put ''Y2Upe3JldHVybiBpZSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgdmU7cmV0dXJuIGFlKHRoaXMsZnVuY3Rpb24oQWUpe3N3aXRjaChBZS5sYWJlbCl7Y2FzZSAwOnJldHVybls0LHRoaXMucmVxdWVzdENsaWVudC5wb3N0KCJTQVNqc0FwaS9zdHAvZXhlY3V0ZSIsb2UsY2U/''@;'; + put 'put ''Y2UuYWNjZXNzX3Rva2VuOnZvaWQgMCldO2Nhc2UgMTpyZXR1cm4gdmU9QWUuc2VudCgpLnJlc3VsdCxPYmplY3Qua2V5cyh2ZSkuaW5jbHVkZXMoIl93ZWJvdXQiKSYmKHZlLl93ZWJvdXQ9KDAsZWUucGFyc2VXZWJvdXRSZXNwb25zZSkodmUuX3dlYm91dCkpLFsyLFByb21pc2UucmVzb2x2''@;'; + put 'put ''ZSh2ZSldfX0pfSl9LHNlLnByb3RvdHlwZS5leGVjdXRlU2NyaXB0PWZ1bmN0aW9uKG9lLGNlLGRlKXtyZXR1cm4gdm9pZCAwPT09Y2UmJihjZT0ic2FzIiksaWUodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIHZlLEFlO3JldHVybiBhZSh0aGlzLGZ1bmN0aW9uKGtlKXtzd2l0''@;'; + put 'put ''Y2goa2UubGFiZWwpe2Nhc2UgMDpyZXR1cm4gdmU9KGRlfHx7fSkuYWNjZXNzX3Rva2VuLGRlP1s0LCgwLHEuZ2V0VG9rZW5zKSh0aGlzLnJlcXVlc3RDbGllbnQsZGUsWS5TZXJ2ZXJUeXBlLlNhc2pzKV06WzMsMl07Y2FzZSAxOnZlPWtlLnNlbnQoKS5hY2Nlc3NfdG9rZW4sa2UubGFiZWw9''@;'; + put 'put ''MjtjYXNlIDI6cmV0dXJuIEFlPSIiLFs0LHRoaXMucmVxdWVzdENsaWVudC5wb3N0KCJTQVNqc0FwaS9jb2RlL2V4ZWN1dGUiLHtjb2RlOm9lLHJ1blRpbWU6Y2V9LHZlKS50aGVuKGZ1bmN0aW9uKFNlKXtTZS5sb2cmJihBZT1TZS5sb2cpfSkuY2F0Y2goZnVuY3Rpb24oU2Upe0FlPVNlfSld''@;'; + put 'put ''O2Nhc2UgMzpyZXR1cm4ga2Uuc2VudCgpLFsyLEFlXX19KX0pfSxzZS5wcm90b3R5cGUuZ2V0QWNjZXNzVG9rZW49ZnVuY3Rpb24ob2UsY2Upe3JldHVybiBpZSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gYWUodGhpcyxmdW5jdGlvbihkZSl7cmV0dXJuWzIsKDAsVy5n''@;'; + put 'put ''ZXRBY2Nlc3NUb2tlbkZvclNhc2pzKSh0aGlzLnJlcXVlc3RDbGllbnQsb2UsY2UpXX0pfSl9LHNlLnByb3RvdHlwZS5yZWZyZXNoVG9rZW5zPWZ1bmN0aW9uKG9lKXtyZXR1cm4gaWUodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIGFlKHRoaXMsZnVuY3Rpb24oY2Upe3Jl''@;'; + put 'put ''dHVyblsyLCgwLE4ucmVmcmVzaFRva2Vuc0ZvclNhc2pzKSh0aGlzLnJlcXVlc3RDbGllbnQsb2UpXX0pfSl9LHNlfSgpO1EuU0FTanNBcGlDbGllbnQ9Sn0sNjkwMzpmdW5jdGlvbihVLFEsWil7InVzZSBzdHJpY3QiO3ZhciBpZT1aKDQxNTUpLGFlPVooNTEwOCksWT10aGlzJiZ0aGlzLl9f''@;'; + put 'put ''YXdhaXRlcnx8ZnVuY3Rpb24oc2Usb2UsY2UsZGUpe3JldHVybiBuZXcoY2V8fChjZT1Qcm9taXNlKSkoZnVuY3Rpb24odmUsQWUpe2Z1bmN0aW9uIGtlKFRlKXt0cnl7SWUoZGUubmV4dChUZSkpfWNhdGNoKEVlKXtBZShFZSl9fWZ1bmN0aW9uIFNlKFRlKXt0cnl7SWUoZGUudGhyb3coVGUp''@;'; + put 'put ''KX1jYXRjaChFZSl7QWUoRWUpfX1mdW5jdGlvbiBJZShUZSl7dmFyIEVlO1RlLmRvbmU/dmUoVGUudmFsdWUpOihFZT1UZS52YWx1ZSxFZSBpbnN0YW5jZW9mIGNlP0VlOm5ldyBjZShmdW5jdGlvbihoZSl7aGUoRWUpfSkpLnRoZW4oa2UsU2UpfUllKChkZT1kZS5hcHBseShzZSxvZXx8W10p''@;'; + put 'put ''KS5uZXh0KCkpfSl9LFc9dGhpcyYmdGhpcy5fX2dlbmVyYXRvcnx8ZnVuY3Rpb24oc2Usb2Upe3ZhciBjZSxkZSx2ZSxBZSxrZT17bGFiZWw6MCxzZW50OmZ1bmN0aW9uKCl7aWYoMSZ2ZVswXSl0aHJvdyB2ZVsxXTtyZXR1cm4gdmVbMV19LHRyeXM6W10sb3BzOltdfTtyZXR1cm4gQWU9e25l''@;'; + put 'put ''eHQ6U2UoMCksdGhyb3c6U2UoMSkscmV0dXJuOlNlKDIpfSwiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYoQWVbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSksQWU7ZnVuY3Rpb24gU2UoSWUpe3JldHVybiBmdW5jdGlvbihUZSl7cmV0dXJuIGZ1bmN0aW9uKEVl''@;'; + put 'put ''KXtpZihjZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcuIik7Zm9yKDtrZTspdHJ5e2lmKGNlPTEsZGUmJih2ZT0yJkVlWzBdP2RlLnJldHVybjpFZVswXT9kZS50aHJvd3x8KCh2ZT1kZS5yZXR1cm4pJiZ2ZS5jYWxsKGRlKSwwKTpkZS5uZXh0''@;'; + put 'put ''KSYmISh2ZT12ZS5jYWxsKGRlLEVlWzFdKSkuZG9uZSlyZXR1cm4gdmU7c3dpdGNoKGRlPTAsdmUmJihFZT1bMiZFZVswXSx2ZS52YWx1ZV0pLEVlWzBdKXtjYXNlIDA6Y2FzZSAxOnZlPUVlO2JyZWFrO2Nhc2UgNDpyZXR1cm4ga2UubGFiZWwrKyx7dmFsdWU6RWVbMV0sZG9uZTohMX07Y2Fz''@;'; + put 'put ''ZSA1OmtlLmxhYmVsKyssZGU9RWVbMV0sRWU9WzBdO2NvbnRpbnVlO2Nhc2UgNzpFZT1rZS5vcHMucG9wKCksa2UudHJ5cy5wb3AoKTtjb250aW51ZTtkZWZhdWx0OmlmKCEoKHZlPSh2ZT1rZS50cnlzKS5sZW5ndGg+MCYmdmVbdmUubGVuZ3RoLTFdKXx8NiE9PUVlWzBdJiYyIT09RWVbMF0p''@;'; + put 'put ''KXtrZT0wO2NvbnRpbnVlfWlmKDM9PT1FZVswXSYmKCF2ZXx8RWVbMV0+dmVbMF0mJkVlWzFdPHZlWzNdKSl7a2UubGFiZWw9RWVbMV07YnJlYWt9aWYoNj09PUVlWzBdJiZrZS5sYWJlbDx2ZVsxXSl7a2UubGFiZWw9dmVbMV0sdmU9RWU7YnJlYWt9aWYodmUmJmtlLmxhYmVsPHZlWzJdKXtr''@;'; + put 'put ''ZS5sYWJlbD12ZVsyXSxrZS5vcHMucHVzaChFZSk7YnJlYWt9dmVbMl0mJmtlLm9wcy5wb3AoKSxrZS50cnlzLnBvcCgpO2NvbnRpbnVlfUVlPW9lLmNhbGwoc2Usa2UpfWNhdGNoKGhlKXtFZT1bNixoZV0sZGU9MH1maW5hbGx5e2NlPXZlPTB9aWYoNSZFZVswXSl0aHJvdyBFZVsxXTtyZXR1''@;'; + put 'put ''cm57dmFsdWU6RWVbMF0/RWVbMV06dm9pZCAwLGRvbmU6ITB9fShbSWUsVGVdKX19fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksUS5TZXNzaW9uTWFuYWdlcj12b2lkIDA7dmFyIE49WigxMzk1KSxlZT1aKDU5MjgpLHE9Wig5Nzc4KSxKPWZ1bmN0''@;'; + put 'put ''aW9uKCl7ZnVuY3Rpb24gc2Uob2UsY2UsZGUpe3RoaXMuc2VydmVyVXJsPW9lLHRoaXMuY29udGV4dE5hbWU9Y2UsdGhpcy5yZXF1ZXN0Q2xpZW50PWRlLHRoaXMubG9nZ2VkRXJyb3JzPVtdLHRoaXMuc2Vzc2lvbnM9W10sdGhpcy5jdXJyZW50Q29udGV4dD1udWxsLHRoaXMuX2RlYnVnPSEx''@;'; + put 'put ''LHRoaXMucHJpbnRlZFNlc3Npb25TdGF0ZT17cHJpbnRlZDohMSxzdGF0ZToiIn0sb2UmJigwLGVlLmlzVXJsKShvZSl9cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShzZS5wcm90b3R5cGUsImRlYnVnIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2RlYnVnfSxzZXQ6ZnVuY3Rp''@;'; + put 'put ''b24ob2Upe3RoaXMuX2RlYnVnPW9lfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLHNlLnByb3RvdHlwZS5nZXRTZXNzaW9uPWZ1bmN0aW9uKG9lKXtyZXR1cm4gWSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgY2UsZGU7cmV0dXJuIFcodGhpcyxmdW5jdGlvbih2''@;'; + put 'put ''ZSl7c3dpdGNoKHZlLmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsdGhpcy5jcmVhdGVTZXNzaW9ucyhvZSldO2Nhc2UgMTpyZXR1cm4gdmUuc2VudCgpLFs0LHRoaXMuY3JlYXRlQW5kV2FpdEZvclNlc3Npb24ob2UpXTtjYXNlIDI6cmV0dXJuIHZlLnNlbnQoKSxjZT10aGlzLnNlc3Npb25zLnBv''@;'; + put 'put ''cCgpLGRlPSgobmV3IERhdGUpLmdldFRpbWUoKS1uZXcgRGF0ZShjZS5jcmVhdGlvblRpbWVTdGFtcCkuZ2V0VGltZSgpKS8xZTMsIWNlLmF0dHJpYnV0ZXN8fGRlPj1jZS5hdHRyaWJ1dGVzLnNlc3Npb25JbmFjdGl2ZVRpbWVvdXQ/WzQsdGhpcy5jcmVhdGVTZXNzaW9ucyhvZSldOlszLDRd''@;'; + put 'put ''O2Nhc2UgMzpyZXR1cm4gdmUuc2VudCgpLFsyLHRoaXMuc2Vzc2lvbnMucG9wKCldO2Nhc2UgNDpyZXR1cm5bMixjZV19fSl9KX0sc2UucHJvdG90eXBlLmNsZWFyU2Vzc2lvbj1mdW5jdGlvbihvZSxjZSl7cmV0dXJuIFkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGRlPXRo''@;'; + put 'put ''aXM7cmV0dXJuIFcodGhpcyxmdW5jdGlvbih2ZSl7c3dpdGNoKHZlLmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsdGhpcy5yZXF1ZXN0Q2xpZW50LmRlbGV0ZSgiL2NvbXB1dGUvc2Vzc2lvbnMvIi5jb25jYXQob2UpLGNlKS50aGVuKGZ1bmN0aW9uKCl7ZGUuc2Vzc2lvbnM9ZGUuc2Vzc2lvbnMu''@;'; + put 'put ''ZmlsdGVyKGZ1bmN0aW9uKEFlKXtyZXR1cm4gQWUuaWQhPT1vZX0pfSkuY2F0Y2goZnVuY3Rpb24oQWUpe3Rocm93KDAscS5wcmVmaXhNZXNzYWdlKShBZSwiRXJyb3Igd2hpbGUgZGVsZXRpbmcgc2Vzc2lvbi4gIil9KV07Y2FzZSAxOnJldHVyblsyLHZlLnNlbnQoKV19fSl9KX0sc2UucHJv''@;'; + put 'put ''dG90eXBlLmNyZWF0ZVNlc3Npb25zPWZ1bmN0aW9uKG9lKXtyZXR1cm4gWSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgY2U9dGhpcztyZXR1cm4gVyh0aGlzLGZ1bmN0aW9uKGRlKXtzd2l0Y2goZGUubGFiZWwpe2Nhc2UgMDpyZXR1cm4gdGhpcy5zZXNzaW9ucy5sZW5ndGg/''@;'; + put 'put ''WzMsNF06dGhpcy5jdXJyZW50Q29udGV4dD9bMywyXTpbNCx0aGlzLnNldEN1cnJlbnRDb250ZXh0KG9lKS5jYXRjaChmdW5jdGlvbih2ZSl7dGhyb3cgdmV9KV07Y2FzZSAxOmRlLnNlbnQoKSxkZS5sYWJlbD0yO2Nhc2UgMjpyZXR1cm5bNCwoMCxlZS5hc3luY0ZvckVhY2gpKG5ldyBBcnJh''@;'; + put 'put ''eSgxKSxmdW5jdGlvbigpe3JldHVybiBZKGNlLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgdmU7cmV0dXJuIFcodGhpcyxmdW5jdGlvbihBZSl7c3dpdGNoKEFlLmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsdGhpcy5jcmVhdGVBbmRXYWl0Rm9yU2Vzc2lvbihvZSkuY2F0Y2goZnVuY3Rp''@;'; + put 'put ''b24oa2Upe3Rocm93IGtlfSldO2Nhc2UgMTpyZXR1cm4gdmU9QWUuc2VudCgpLHRoaXMuc2Vzc2lvbnMucHVzaCh2ZSksWzJdfX0pfSl9KS5jYXRjaChmdW5jdGlvbih2ZSl7dGhyb3cgdmV9KV07Y2FzZSAzOmRlLnNlbnQoKSxkZS5sYWJlbD00O2Nhc2UgNDpyZXR1cm5bMl19fSl9KX0sc2Uu''@;'; + put 'put ''cHJvdG90eXBlLmNyZWF0ZUFuZFdhaXRGb3JTZXNzaW9uPWZ1bmN0aW9uKG9lKXtyZXR1cm4gWSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgY2UsZGU7cmV0dXJuIFcodGhpcyxmdW5jdGlvbihBZSl7c3dpdGNoKEFlLmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsdGhpcy5yZXF1''@;'; + put 'put ''ZXN0Q2xpZW50LnBvc3QoIiIuY29uY2F0KHRoaXMuc2VydmVyVXJsLCIvY29tcHV0ZS9jb250ZXh0cy8iKS5jb25jYXQodGhpcy5jdXJyZW50Q29udGV4dC5pZCwiL3Nlc3Npb25zIikse30sb2UpLmNhdGNoKGZ1bmN0aW9uKGtlKXt0aHJvdyBrZX0pXTtjYXNlIDE6cmV0dXJuIGNlPUFlLnNl''@;'; + put 'put ''bnQoKSxbNCx0aGlzLndhaXRGb3JTZXNzaW9uKGRlPWNlLnJlc3VsdCxjZS5ldGFnLG9lKV07Y2FzZSAyOnJldHVybiBBZS5zZW50KCksdGhpcy5zZXNzaW9ucy5wdXNoKGRlKSxbMixkZV19fSl9KX0sc2UucHJvdG90eXBlLnNldEN1cnJlbnRDb250ZXh0PWZ1bmN0aW9uKG9lKXtyZXR1cm4g''@;'; + put 'put ''WSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgY2UsdmUsQWU9dGhpcztyZXR1cm4gVyh0aGlzLGZ1bmN0aW9uKGtlKXtzd2l0Y2goa2UubGFiZWwpe2Nhc2UgMDpyZXR1cm4gdGhpcy5jdXJyZW50Q29udGV4dD9bMywyXTpbNCx0aGlzLnJlcXVlc3RDbGllbnQuZ2V0KCIiLmNv''@;'; + put 'put ''bmNhdCh0aGlzLnNlcnZlclVybCwiL2NvbXB1dGUvY29udGV4dHM/bGltaXQ9MTAwMDAiKSxvZSkuY2F0Y2goZnVuY3Rpb24oU2Upe3Rocm93IFNlfSldO2Nhc2UgMTppZihjZT1rZS5zZW50KCkucmVzdWx0LCEodmU9KGNlJiZjZS5pdGVtcyYmY2UuaXRlbXMubGVuZ3RoP2NlLml0ZW1zOltd''@;'; + put 'put ''KS5maW5kKGZ1bmN0aW9uKFNlKXtyZXR1cm4gU2UubmFtZT09PUFlLmNvbnRleHROYW1lfSkpKXRocm93IG5ldyBFcnJvcigiVGhlIGNvbnRleHQgJyIuY29uY2F0KHRoaXMuY29udGV4dE5hbWUsIicgd2FzIG5vdCBmb3VuZCBvbiB0aGUgc2VydmVyICIpLmNvbmNhdCh0aGlzLnNlcnZlclVy''@;'; + put 'put ''bCwiLiIpKTt0aGlzLmN1cnJlbnRDb250ZXh0PXZlLFByb21pc2UucmVzb2x2ZSgpLGtlLmxhYmVsPTI7Y2FzZSAyOnJldHVyblsyXX19KX0pfSxzZS5wcm90b3R5cGUuZ2V0SGVhZGVycz1mdW5jdGlvbihvZSl7dmFyIGNlPXsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9O3Jl''@;'; + put 'put ''dHVybiBvZSYmKGNlLkF1dGhvcml6YXRpb249IkJlYXJlciAiLmNvbmNhdChvZSkpLGNlfSxzZS5wcm90b3R5cGUud2FpdEZvclNlc3Npb249ZnVuY3Rpb24ob2UsY2UsZGUpe3ZhciB2ZTtyZXR1cm4gWSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgQWUsa2UsU2UsSWUsRWUs''@;'; + put 'put ''aGU7cmV0dXJuIFcodGhpcyxmdW5jdGlvbihPKXtzd2l0Y2goTy5sYWJlbCl7Y2FzZSAwOnJldHVybiBBZT1pZS5sb2dnZXJ8fGFlLGtlPW9lLnN0YXRlLFNlPW9lLmxpbmtzLmZpbmQoZnVuY3Rpb24oeil7cmV0dXJuInN0YXRlIj09PXoucmVsfSksInBlbmRpbmciIT09a2UmJiJydW5uaW5n''@;'; + put 'put ''IiE9PWtlJiYiIiE9PWtlP1szLDZdOlNlPyh0aGlzLmRlYnVnJiYhdGhpcy5wcmludGVkU2Vzc2lvblN0YXRlLnByaW50ZWQmJihBZS5pbmZvKCJQb2xsaW5nOiAiLmNvbmNhdCh0aGlzLnNlcnZlclVybCtTZS5ocmVmKSksdGhpcy5wcmludGVkU2Vzc2lvblN0YXRlLnByaW50ZWQ9ITApLFs0''@;'; + put 'put ''LHRoaXMuZ2V0U2Vzc2lvblN0YXRlKCIiLmNvbmNhdCh0aGlzLnNlcnZlclVybCkuY29uY2F0KFNlLmhyZWYsIj93YWl0PTMwIiksY2UsZGUpLmNhdGNoKGZ1bmN0aW9uKHope3Rocm93KDAscS5wcmVmaXhNZXNzYWdlKSh6LCJFcnJvciB3aGlsZSBnZXR0aW5nIHNlc3Npb24gc3RhdGUuIil9''@;'; + put 'put ''KV0pOlszLDRdO2Nhc2UgMTpyZXR1cm4gSWU9Ty5zZW50KCksRWU9SWUucmVzcG9uc2VTdGF0dXMsa2U9SWUucmVzdWx0LnRyaW0oKSx0aGlzLmRlYnVnJiZ0aGlzLnByaW50ZWRTZXNzaW9uU3RhdGUuc3RhdGUhPT1rZSYmKEFlLmluZm8oIkN1cnJlbnQgc2Vzc2lvbiBzdGF0ZSBpcyAnIi5j''@;'; + put 'put ''b25jYXQoa2UsIiciKSksdGhpcy5wcmludGVkU2Vzc2lvblN0YXRlLnN0YXRlPWtlLHRoaXMucHJpbnRlZFNlc3Npb25TdGF0ZS5wcmludGVkPSExKSxrZT9bMywzXTooaGU9bmV3IE4uTm9TZXNzaW9uU3RhdGVFcnJvcihFZSx0aGlzLnNlcnZlclVybCtTZS5ocmVmLG51bGw9PT0odmU9b2Uu''@;'; + put 'put ''bGlua3MuZmluZChmdW5jdGlvbih6KXtyZXR1cm4ibG9nIj09PXoucmVsfSkpfHx2b2lkIDA9PT12ZT92b2lkIDA6dmUuaHJlZiksdGhpcy5sb2dnZWRFcnJvcnMuZmluZChmdW5jdGlvbih6KXtyZXR1cm4gei5zZXJ2ZXJSZXNwb25zZVN0YXR1cz09PWhlLnNlcnZlclJlc3BvbnNlU3RhdHVz''@;'; + put 'put ''fSl8fCh0aGlzLmxvZ2dlZEVycm9ycy5wdXNoKGhlKSxBZS5pbmZvKGhlLm1lc3NhZ2UpKSxbNCx0aGlzLndhaXRGb3JTZXNzaW9uKG9lLGNlLGRlKV0pO2Nhc2UgMjpyZXR1cm5bMixPLnNlbnQoKV07Y2FzZSAzOmNhc2UgNjpyZXR1cm4gdGhpcy5sb2dnZWRFcnJvcnM9W10sWzIsa2VdO2Nh''@;'; + put 'put ''c2UgNDp0aHJvdyJFcnJvciB3aGlsZSBnZXR0aW5nIHNlc3Npb24gc3RhdGUgbGluay4iO2Nhc2UgNTpyZXR1cm5bMyw3XTtjYXNlIDc6cmV0dXJuWzJdfX0pfSl9LHNlLnByb3RvdHlwZS5nZXRTZXNzaW9uU3RhdGU9ZnVuY3Rpb24ob2UsY2UsZGUpe3JldHVybiBZKHRoaXMsdm9pZCAwLHZv''@;'; + put 'put ''aWQgMCxmdW5jdGlvbigpe3JldHVybiBXKHRoaXMsZnVuY3Rpb24odmUpe3N3aXRjaCh2ZS5sYWJlbCl7Y2FzZSAwOnJldHVybls0LHRoaXMucmVxdWVzdENsaWVudC5nZXQob2UsZGUsInRleHQvcGxhaW4iLHsiSWYtTm9uZS1NYXRjaCI6Y2V9KS50aGVuKGZ1bmN0aW9uKEFlKXtyZXR1cm57''@;'; + put 'put ''cmVzdWx0OkFlLnJlc3VsdCxyZXNwb25zZVN0YXR1czpBZS5zdGF0dXN9fSkuY2F0Y2goZnVuY3Rpb24oQWUpe3Rocm93IEFlfSldO2Nhc2UgMTpyZXR1cm5bMix2ZS5zZW50KCldfX0pfSl9LHNlLnByb3RvdHlwZS5nZXRWYXJpYWJsZT1mdW5jdGlvbihvZSxjZSxkZSl7cmV0dXJuIFkodGhp''@;'; + put 'put ''cyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIFcodGhpcyxmdW5jdGlvbih2ZSl7c3dpdGNoKHZlLmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsdGhpcy5yZXF1ZXN0Q2xpZW50LmdldCgiIi5jb25jYXQodGhpcy5zZXJ2ZXJVcmwsIi9jb21wdXRlL3Nlc3Npb25zLyIpLmNvbmNhdChv''@;'; + put 'put ''ZSwiL3ZhcmlhYmxlcy8iKS5jb25jYXQoY2UpLGRlKS5jYXRjaChmdW5jdGlvbihBZSl7dGhyb3coMCxxLnByZWZpeE1lc3NhZ2UpKEFlLCJFcnJvciB3aGlsZSBmZXRjaGluZyBzZXNzaW9uIHZhcmlhYmxlICciLmNvbmNhdChjZSwiJy4iKSl9KV07Y2FzZSAxOnJldHVyblsyLHZlLnNlbnQo''@;'; + put 'put ''KV19fSl9KX0sc2V9KCk7US5TZXNzaW9uTWFuYWdlcj1KfSw1NDAxOmZ1bmN0aW9uKFUsUSxaKXsidXNlIHN0cmljdCI7dmFyIGllPVooNDE1NSksYWU9Wig1MTA4KSxZPXRoaXMmJnRoaXMuX19hc3NpZ258fGZ1bmN0aW9uKCl7cmV0dXJuIFk9T2JqZWN0LmFzc2lnbnx8ZnVuY3Rpb24oQWUp''@;'; + put 'put ''e2Zvcih2YXIga2UsU2U9MSxJZT1hcmd1bWVudHMubGVuZ3RoO1NlPEllO1NlKyspZm9yKHZhciBUZSBpbiBrZT1hcmd1bWVudHNbU2VdKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChrZSxUZSkmJihBZVtUZV09a2VbVGVdKTtyZXR1cm4gQWV9LFkuYXBwbHkodGhpcyxh''@;'; + put 'put ''cmd1bWVudHMpfSxXPXRoaXMmJnRoaXMuX19hd2FpdGVyfHxmdW5jdGlvbihBZSxrZSxTZSxJZSl7cmV0dXJuIG5ldyhTZXx8KFNlPVByb21pc2UpKShmdW5jdGlvbihUZSxFZSl7ZnVuY3Rpb24gaGUobmUpe3RyeXt6KEllLm5leHQobmUpKX1jYXRjaCh0ZSl7RWUodGUpfX1mdW5jdGlvbiBP''@;'; + put 'put ''KG5lKXt0cnl7eihJZS50aHJvdyhuZSkpfWNhdGNoKHRlKXtFZSh0ZSl9fWZ1bmN0aW9uIHoobmUpe3ZhciB0ZTtuZS5kb25lP1RlKG5lLnZhbHVlKToodGU9bmUudmFsdWUsdGUgaW5zdGFuY2VvZiBTZT90ZTpuZXcgU2UoZnVuY3Rpb24oeCl7eCh0ZSl9KSkudGhlbihoZSxPKX16KChJZT1J''@;'; + put 'put ''ZS5hcHBseShBZSxrZXx8W10pKS5uZXh0KCkpfSl9LE49dGhpcyYmdGhpcy5fX2dlbmVyYXRvcnx8ZnVuY3Rpb24oQWUsa2Upe3ZhciBTZSxJZSxUZSxFZSxoZT17bGFiZWw6MCxzZW50OmZ1bmN0aW9uKCl7aWYoMSZUZVswXSl0aHJvdyBUZVsxXTtyZXR1cm4gVGVbMV19LHRyeXM6W10sb3Bz''@;'; + put 'put ''OltdfTtyZXR1cm4gRWU9e25leHQ6TygwKSx0aHJvdzpPKDEpLHJldHVybjpPKDIpfSwiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYoRWVbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSksRWU7ZnVuY3Rpb24gTyh6KXtyZXR1cm4gZnVuY3Rpb24obmUpe3JldHVy''@;'; + put 'put ''biBmdW5jdGlvbih0ZSl7aWYoU2UpdGhyb3cgbmV3IFR5cGVFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLiIpO2Zvcig7aGU7KXRyeXtpZihTZT0xLEllJiYoVGU9MiZ0ZVswXT9JZS5yZXR1cm46dGVbMF0/SWUudGhyb3d8fCgoVGU9SWUucmV0dXJuKSYmVGUuY2FsbChJ''@;'; + put 'put ''ZSksMCk6SWUubmV4dCkmJiEoVGU9VGUuY2FsbChJZSx0ZVsxXSkpLmRvbmUpcmV0dXJuIFRlO3N3aXRjaChJZT0wLFRlJiYodGU9WzImdGVbMF0sVGUudmFsdWVdKSx0ZVswXSl7Y2FzZSAwOmNhc2UgMTpUZT10ZTticmVhaztjYXNlIDQ6cmV0dXJuIGhlLmxhYmVsKysse3ZhbHVlOnRlWzFd''@;'; + put 'put ''LGRvbmU6ITF9O2Nhc2UgNTpoZS5sYWJlbCsrLEllPXRlWzFdLHRlPVswXTtjb250aW51ZTtjYXNlIDc6dGU9aGUub3BzLnBvcCgpLGhlLnRyeXMucG9wKCk7Y29udGludWU7ZGVmYXVsdDppZighKChUZT0oVGU9aGUudHJ5cykubGVuZ3RoPjAmJlRlW1RlLmxlbmd0aC0xXSl8fDYhPT10ZVsw''@;'; + put 'put ''XSYmMiE9PXRlWzBdKSl7aGU9MDtjb250aW51ZX1pZigzPT09dGVbMF0mJighVGV8fHRlWzFdPlRlWzBdJiZ0ZVsxXTxUZVszXSkpe2hlLmxhYmVsPXRlWzFdO2JyZWFrfWlmKDY9PT10ZVswXSYmaGUubGFiZWw8VGVbMV0pe2hlLmxhYmVsPVRlWzFdLFRlPXRlO2JyZWFrfWlmKFRlJiZoZS5s''@;'; + put 'put ''YWJlbDxUZVsyXSl7aGUubGFiZWw9VGVbMl0saGUub3BzLnB1c2godGUpO2JyZWFrfVRlWzJdJiZoZS5vcHMucG9wKCksaGUudHJ5cy5wb3AoKTtjb250aW51ZX10ZT1rZS5jYWxsKEFlLGhlKX1jYXRjaCh4KXt0ZT1bNix4XSxJZT0wfWZpbmFsbHl7U2U9VGU9MH1pZig1JnRlWzBdKXRocm93''@;'; + put 'put ''IHRlWzFdO3JldHVybnt2YWx1ZTp0ZVswXT90ZVsxXTp2b2lkIDAsZG9uZTohMH19KFt6LG5lXSl9fX07T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLFEuZXhlY3V0ZVNjcmlwdD12b2lkIDA7dmFyIGVlPVooNzc1NykscT1aKDk3NzgpLEo9WigzNjA3''@;'; + put 'put ''KSxzZT1aKDcwNCksb2U9Wig1OTI4KSxjZT1aKDcxNCksZGU9WigxMzQzKSx2ZT1aKDY0OTYpO1EuZXhlY3V0ZVNjcmlwdD1mdW5jdGlvbiBBZShrZSxTZSxJZSxUZSxFZSxoZSxPLHosbmUsdGUseCxQLFYsVCl7dmFyIFMsRjtyZXR1cm4gdm9pZCAwPT09eiYmKHo9bnVsbCksdm9pZCAwPT09''@;'; + put 'put ''bmUmJihuZT0hMSksdm9pZCAwPT09dGUmJih0ZT0hMSksdm9pZCAwPT09eCYmKHg9ITApLHZvaWQgMD09PVYmJihWPSExKSxXKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciB5ZSxDZSxEZSxQZSxRZSwkZSxndCx3dCxtdCx2dCxBdCxodCxCdCxvbixfdCx0dCxldCxhdCxMdCxD''@;'; + put 'put ''dCxmdCxIdCxHZSxVZT10aGlzO3JldHVybiBOKHRoaXMsZnVuY3Rpb24oeXQpe3N3aXRjaCh5dC5sYWJlbCl7Y2FzZSAwOnJldHVybiB5ZT0oT3x8e30pLmFjY2Vzc190b2tlbixPP1s0LCgwLHNlLmdldFRva2Vucykoa2UsTyldOlszLDJdO2Nhc2UgMTp5ZT15dC5zZW50KCkuYWNjZXNzX3Rv''@;'; + put 'put ''a2VuLHl0LmxhYmVsPTI7Y2FzZSAyOkNlPWllLmxvZ2dlcnx8YWUseXQubGFiZWw9MztjYXNlIDM6cmV0dXJuIHl0LnRyeXMucHVzaChbMywxOSwsMjBdKSxEZT12b2lkIDAsWzQsU2UuZ2V0U2Vzc2lvbih5ZSkuY2F0Y2goZnVuY3Rpb24oanQpe3Rocm93KDAscS5wcmVmaXhNZXNzYWdlKShq''@;'; + put 'put ''dCwiRXJyb3Igd2hpbGUgZ2V0dGluZyBzZXNzaW9uLiAiKX0pXTtjYXNlIDQ6cmV0dXJuIFBlPXl0LnNlbnQoKSxEZT1QZS5pZCxWP1s0LFNlLmdldFZhcmlhYmxlKERlLCJTWVNKT0JJRCIseWUpLmNhdGNoKGZ1bmN0aW9uKGp0KXt0aHJvdygwLHEucHJlZml4TWVzc2FnZSkoanQsIkVycm9y''@;'; + put 'put ''IHdoaWxlIGdldHRpbmcgc2Vzc2lvbiB2YXJpYWJsZS4gIil9KV06WzMsNl07Y2FzZSA1OihRZT15dC5zZW50KCkucmVzdWx0KSYmUWUudmFsdWUmJigkZT1JZT9UZS5zcGxpdChJZSkuam9pbigiIikucmVwbGFjZSgvXlwvLywiIik6VGUsKGllLmxvZ2dlcnx8YWUpLmluZm8oIlRyaWdnZXJl''@;'; + put 'put ''ZCAnIi5jb25jYXQoJGUsIicgd2l0aCBQSUQgIikuY29uY2F0KFFlLnZhbHVlLCIgYXQgIikuY29uY2F0KCgwLGVlLnRpbWVzdGFtcFRvWVlZWU1NRERISE1NU1MpKCkpKSkseXQubGFiZWw9NjtjYXNlIDY6cmV0dXJuIGd0PXtfY29udGV4dE5hbWU6aGUsX09NSVRKU09OTElTVElORzohMCxf''@;'; + put 'put ''T01JVEpTT05MT0c6ITAsX09NSVRTRVNTSU9OUkVTVUxUUzohMCxfT01JVFRFWFRMSVNUSU5HOiEwLF9PTUlUVEVYVExPRzohMH0sbmUmJihndC5fT01JVFRFWFRMT0c9ITEsZ3QuX09NSVRTRVNTSU9OUkVTVUxUUz0hMSksd3Q9dm9pZCAwLCgwLG9lLmlzUmVsYXRpdmVQYXRoKShUZSk/d3Q9''@;'; + put 'put ''ImV4ZWMtIi5jb25jYXQoVGUuaW5jbHVkZXMoIi8iKT9UZS5zcGxpdCgiLyIpWzFdOlRlKToobXQ9VGUuc3BsaXQoIi8iKSx3dD1tdC5wb3AoKSksdnQ9e1NZU19KRVNfSk9CX1VSSToiIixfcHJvZ3JhbTooMCxvZS5pc1JlbGF0aXZlUGF0aCkoVGUpP0llKyIvIitUZTpUZX0sVCYmKHZ0PVko''@;'; + put 'put ''WSh7fSx2dCksVCkpLG5lJiYodnQ9WShZKHt9LHZ0KSx7X0RFQlVHOjEzMX0pKSxBdD1bXSx6P0pTT04uc3RyaW5naWZ5KHopLmluY2x1ZGVzKCI7Iik/WzQsKDAsdmUudXBsb2FkVGFibGVzKShrZSx6LHllKS5jYXRjaChmdW5jdGlvbihqdCl7dGhyb3coMCxxLnByZWZpeE1lc3NhZ2UpKGp0''@;'; + put 'put ''LCJFcnJvciB3aGlsZSB1cGxvYWRpbmcgdGFibGVzLiAiKX0pXTpbMyw4XTpbMyw5XTtjYXNlIDc6cmV0dXJuIEF0PXl0LnNlbnQoKSx2dC5fd2ViaW5fZmlsZV9jb3VudD1BdC5sZW5ndGgsQXQuZm9yRWFjaChmdW5jdGlvbihqdCxRdCl7dnRbIl93ZWJpbl9maWxldXJpIi5jb25jYXQoUXQr''@;'; + put 'put ''MSldPSIvZmlsZXMvZmlsZXMvIi5jb25jYXQoanQuZmlsZS5pZCksdnRbIl93ZWJpbl9uYW1lIi5jb25jYXQoUXQrMSldPWp0LnRhYmxlTmFtZX0pLFszLDldO2Nhc2UgODp2dD1ZKFkoe30sdnQpLCgwLGNlLmZvcm1hdERhdGFGb3JSZXF1ZXN0KSh6KSkseXQubGFiZWw9OTtjYXNlIDk6cmV0''@;'; + put 'put ''dXJuIGh0PXtuYW1lOnd0LGRlc2NyaXB0aW9uOiJQb3dlcmVkIGJ5IFNBU2pzIixjb2RlOkVlLHZhcmlhYmxlczp2dCxhcmd1bWVudHM6Z3R9LFs0LGtlLnBvc3QoIi9jb21wdXRlL3Nlc3Npb25zLyIuY29uY2F0KERlLCIvam9icyIpLGh0LHllKS5jYXRjaChmdW5jdGlvbihqdCl7dGhyb3co''@;'; + put 'put ''MCxxLnByZWZpeE1lc3NhZ2UpKGp0LCJFcnJvciB3aGlsZSBwb3N0aW5nIGpvYi4gIil9KV07Y2FzZSAxMDpyZXR1cm4gQnQ9eXQuc2VudCgpLG9uPUJ0LnJlc3VsdCx4PyhuZSYmKENlLmluZm8oIkpvYiBoYXMgYmVlbiBzdWJtaXR0ZWQgZm9yICciLmNvbmNhdCh3dCwiJy4iKSksQ2UuaW5m''@;'; + put 'put ''bygiWW91IGNhbiBtb25pdG9yIHRoZSBqb2IgcHJvZ3Jlc3MgYXQgJyIuY29uY2F0KGtlLmdldEJhc2VVcmwoKSkuY29uY2F0KG9uLmxpbmtzLmZpbmQoZnVuY3Rpb24oanQpe3JldHVybiJzdGF0ZSI9PT1qdC5yZWx9KS5ocmVmLCInLiIpKSksWzQsKDAsZGUucG9sbEpvYlN0YXRlKShrZSxv''@;'; + put 'put ''bixuZSxPLFApLmNhdGNoKGZ1bmN0aW9uKGp0KXtyZXR1cm4gVyhVZSx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIFF0LGduLGRuLHluLGxuLE5uO3JldHVybiBOKHRoaXMsZnVuY3Rpb24oYm4pe3N3aXRjaChibi5sYWJlbCl7Y2FzZSAwOnJldHVybiBRdD1udWxsPT09KGxuPW51bGw9''@;'; + put 'put ''PWp0P3ZvaWQgMDpqdC5yZXNwb25zZSl8fHZvaWQgMD09PWxuP3ZvaWQgMDpsbi5kYXRhLGduPS9lcnI9WzAtOV0qLC8uZXhlYyhRdCksIjUxMTMiIT09KG51bGw9PT0oTm49bnVsbD09Z24/dm9pZCAwOmduWzBdKXx8dm9pZCAwPT09Tm4/dm9pZCAwOk5uLnNsaWNlKDQsLTEpKT9bMywyXToo''@;'; + put 'put ''ZG49b24ubGlua3MuZmluZChmdW5jdGlvbihlcil7cmV0dXJuInVwIj09PWVyLnJlbH0pLmhyZWYrIi9sb2ciLHluPWp0LFs0LCgwLG9lLmZldGNoTG9nQnlDaHVua3MpKGtlLHllLGRuLDFlNildKTtjYXNlIDE6eW4ubG9nPWJuLnNlbnQoKSxibi5sYWJlbD0yO2Nhc2UgMjp0aHJvdygwLHEu''@;'; + put 'put ''cHJlZml4TWVzc2FnZSkoanQsIkVycm9yIHdoaWxlIHBvbGxpbmcgam9iIHN0YXR1cy4gIil9fSl9KX0pXSk6WzIsUGVdO2Nhc2UgMTE6cmV0dXJuIF90PXl0LnNlbnQoKSxPP1s0LCgwLHNlLmdldFRva2Vucykoa2UsTyldOlszLDEzXTtjYXNlIDEyOnllPXl0LnNlbnQoKS5hY2Nlc3NfdG9r''@;'; + put 'put ''ZW4seXQubGFiZWw9MTM7Y2FzZSAxMzpyZXR1cm5bNCxrZS5nZXQoIi9jb21wdXRlL3Nlc3Npb25zLyIuY29uY2F0KERlLCIvam9icy8iKS5jb25jYXQob24uaWQpLHllKS5jYXRjaChmdW5jdGlvbihqdCl7dGhyb3coMCxxLnByZWZpeE1lc3NhZ2UpKGp0LCJFcnJvciB3aGlsZSBnZXR0aW5n''@;'; + put 'put ''IGpvYi4gIil9KV07Y2FzZSAxNDpyZXR1cm4gdHQ9eXQuc2VudCgpLnJlc3VsdCxldD12b2lkIDAsYXQ9IiIsTHQ9dHQubGlua3MuZmluZChmdW5jdGlvbihqdCl7cmV0dXJuImxvZyI9PT1qdC5yZWx9KSxuZSYmTHQ/KEN0PSIiLmNvbmNhdChMdC5ocmVmLCIvY29udGVudCIpLGZ0PW51bGwh''@;'; + put 'put ''PT0oRj1udWxsPT09KFM9dHQubG9nU3RhdGlzdGljcyl8fHZvaWQgMD09PVM/dm9pZCAwOlMubGluZUNvdW50KSYmdm9pZCAwIT09Rj9GOjFlNixbNCwoMCxvZS5mZXRjaExvZ0J5Q2h1bmtzKShrZSx5ZSxDdCxmdCldKTpbMywxNl07Y2FzZSAxNTphdD15dC5zZW50KCkseXQubGFiZWw9MTY7''@;'; + put 'put ''Y2FzZSAxNjppZigiZmFpbGVkIj09PV90fHwiZXJyb3IiPT09X3QpdGhyb3cgbmV3IEouQ29tcHV0ZUpvYkV4ZWN1dGlvbkVycm9yKHR0LGF0KTtyZXR1cm4gdGU/KEh0PSIvY29tcHV0ZS9zZXNzaW9ucy8iLmNvbmNhdChEZSwiL2ZpbGVyZWZzL193ZWJvdXQvY29udGVudCIpLFs0LGtlLmdl''@;'; + put 'put ''dChIdCx5ZSwidGV4dC9wbGFpbiIpLmNhdGNoKGZ1bmN0aW9uKGp0KXtyZXR1cm4gVyhVZSx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIFF0LGduLGRuLHluO3JldHVybiBOKHRoaXMsZnVuY3Rpb24obG4pe3N3aXRjaChsbi5sYWJlbCl7Y2FzZSAwOnJldHVybiBqdCBpbnN0YW5jZW9m''@;'; + put 'put ''IEouTm90Rm91bmRFcnJvciYmTHQ/KFF0PSIiLmNvbmNhdChMdC5ocmVmLCIvY29udGVudCIpLGduPW51bGwhPT0oeW49bnVsbD09PShkbj10dC5sb2dTdGF0aXN0aWNzKXx8dm9pZCAwPT09ZG4/dm9pZCAwOmRuLmxpbmVDb3VudCkmJnZvaWQgMCE9PXluP3luOjFlNixbNCwoMCxvZS5mZXRj''@;'; + put 'put ''aExvZ0J5Q2h1bmtzKShrZSx5ZSxRdCxnbildKTpbMywyXTtjYXNlIDE6cmV0dXJuIGF0PWxuLnNlbnQoKSxbMixQcm9taXNlLnJlamVjdCh7c3RhdHVzOjUwMCxsb2c6YXR9KV07Y2FzZSAyOnJldHVyblsyLHtyZXN1bHQ6SlNPTi5zdHJpbmdpZnkoanQpfV19fSl9KX0pXSk6WzIse2pvYjp0''@;'; + put 'put ''dCxsb2c6YXR9XTtjYXNlIDE3OnJldHVybiBldD15dC5zZW50KCksWzQsU2UuY2xlYXJTZXNzaW9uKERlLHllKS5jYXRjaChmdW5jdGlvbihqdCl7dGhyb3coMCxxLnByZWZpeE1lc3NhZ2UpKGp0LCJFcnJvciB3aGlsZSBjbGVhcmluZyBzZXNzaW9uLiAiKX0pXTtjYXNlIDE4OnJldHVybiB5''@;'; + put 'put ''dC5zZW50KCksWzIse3Jlc3VsdDpudWxsPT1ldD92b2lkIDA6ZXQucmVzdWx0LGxvZzphdH1dO2Nhc2UgMTk6aWYoNDA0PT09KEdlPXl0LnNlbnQoKSkuc3RhdHVzKXJldHVyblsyLEFlKGtlLFNlLEllLFRlLEVlLGhlLE8seixuZSwhMSwhMCldO3Rocm93KDAscS5wcmVmaXhNZXNzYWdlKShH''@;'; + put 'put ''ZSwiRXJyb3Igd2hpbGUgZXhlY3V0aW5nIHNjcmlwdC4gIik7Y2FzZSAyMDpyZXR1cm5bMl19fSl9KX19LDc0NTg6ZnVuY3Rpb24oVSxRLFopeyJ1c2Ugc3RyaWN0Ijt2YXIgaWU9Wig0MTU1KSxhZT10aGlzJiZ0aGlzLl9fYXdhaXRlcnx8ZnVuY3Rpb24oZWUscSxKLHNlKXtyZXR1cm4gbmV3''@;'; + put 'put ''KEp8fChKPVByb21pc2UpKShmdW5jdGlvbihvZSxjZSl7ZnVuY3Rpb24gZGUoa2Upe3RyeXtBZShzZS5uZXh0KGtlKSl9Y2F0Y2goU2Upe2NlKFNlKX19ZnVuY3Rpb24gdmUoa2Upe3RyeXtBZShzZS50aHJvdyhrZSkpfWNhdGNoKFNlKXtjZShTZSl9fWZ1bmN0aW9uIEFlKGtlKXt2YXIgU2U7''@;'; + put 'put ''a2UuZG9uZT9vZShrZS52YWx1ZSk6KFNlPWtlLnZhbHVlLFNlIGluc3RhbmNlb2YgSj9TZTpuZXcgSihmdW5jdGlvbihJZSl7SWUoU2UpfSkpLnRoZW4oZGUsdmUpfUFlKChzZT1zZS5hcHBseShlZSxxfHxbXSkpLm5leHQoKSl9KX0sWT10aGlzJiZ0aGlzLl9fZ2VuZXJhdG9yfHxmdW5jdGlv''@;'; + put 'put ''bihlZSxxKXt2YXIgSixzZSxvZSxjZSxkZT17bGFiZWw6MCxzZW50OmZ1bmN0aW9uKCl7aWYoMSZvZVswXSl0aHJvdyBvZVsxXTtyZXR1cm4gb2VbMV19LHRyeXM6W10sb3BzOltdfTtyZXR1cm4gY2U9e25leHQ6dmUoMCksdGhyb3c6dmUoMSkscmV0dXJuOnZlKDIpfSwiZnVuY3Rpb24iPT10''@;'; + put 'put ''eXBlb2YgU3ltYm9sJiYoY2VbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSksY2U7ZnVuY3Rpb24gdmUoQWUpe3JldHVybiBmdW5jdGlvbihrZSl7cmV0dXJuIGZ1bmN0aW9uKFNlKXtpZihKKXRocm93IG5ldyBUeXBlRXJyb3IoIkdlbmVyYXRvciBpcyBhbHJlYWR5''@;'; + put 'put ''IGV4ZWN1dGluZy4iKTtmb3IoO2RlOyl0cnl7aWYoSj0xLHNlJiYob2U9MiZTZVswXT9zZS5yZXR1cm46U2VbMF0/c2UudGhyb3d8fCgob2U9c2UucmV0dXJuKSYmb2UuY2FsbChzZSksMCk6c2UubmV4dCkmJiEob2U9b2UuY2FsbChzZSxTZVsxXSkpLmRvbmUpcmV0dXJuIG9lO3N3aXRjaChz''@;'; + put 'put ''ZT0wLG9lJiYoU2U9WzImU2VbMF0sb2UudmFsdWVdKSxTZVswXSl7Y2FzZSAwOmNhc2UgMTpvZT1TZTticmVhaztjYXNlIDQ6cmV0dXJuIGRlLmxhYmVsKysse3ZhbHVlOlNlWzFdLGRvbmU6ITF9O2Nhc2UgNTpkZS5sYWJlbCsrLHNlPVNlWzFdLFNlPVswXTtjb250aW51ZTtjYXNlIDc6U2U9''@;'; + put 'put ''ZGUub3BzLnBvcCgpLGRlLnRyeXMucG9wKCk7Y29udGludWU7ZGVmYXVsdDppZighKChvZT0ob2U9ZGUudHJ5cykubGVuZ3RoPjAmJm9lW29lLmxlbmd0aC0xXSl8fDYhPT1TZVswXSYmMiE9PVNlWzBdKSl7ZGU9MDtjb250aW51ZX1pZigzPT09U2VbMF0mJighb2V8fFNlWzFdPm9lWzBdJiZT''@;'; + put 'put ''ZVsxXTxvZVszXSkpe2RlLmxhYmVsPVNlWzFdO2JyZWFrfWlmKDY9PT1TZVswXSYmZGUubGFiZWw8b2VbMV0pe2RlLmxhYmVsPW9lWzFdLG9lPVNlO2JyZWFrfWlmKG9lJiZkZS5sYWJlbDxvZVsyXSl7ZGUubGFiZWw9b2VbMl0sZGUub3BzLnB1c2goU2UpO2JyZWFrfW9lWzJdJiZkZS5vcHMu''@;'; + put 'put ''cG9wKCksZGUudHJ5cy5wb3AoKTtjb250aW51ZX1TZT1xLmNhbGwoZWUsZGUpfWNhdGNoKEllKXtTZT1bNixJZV0sc2U9MH1maW5hbGx5e0o9b2U9MH1pZig1JlNlWzBdKXRocm93IFNlWzFdO3JldHVybnt2YWx1ZTpTZVswXT9TZVsxXTp2b2lkIDAsZG9uZTohMH19KFtBZSxrZV0pfX19O09i''@;'; + put 'put ''amVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxRLmdldEZpbGVTdHJlYW09dm9pZCAwO3ZhciBXPVooMjk3NSksTj1aKDc3NTcpO1EuZ2V0RmlsZVN0cmVhbT1mdW5jdGlvbihlZSxxKXtyZXR1cm4gYWUodm9pZCAwLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24o''@;'; + put 'put ''KXt2YXIgSixzZSxvZSxjZSxkZTtyZXR1cm4gWSh0aGlzLGZ1bmN0aW9uKHZlKXtzd2l0Y2godmUubGFiZWwpe2Nhc2UgMDpyZXR1cm4gSj1aKDI5NzUpLmNyZWF0ZVdyaXRlU3RyZWFtLHNlPXF8fGllLmN3ZCgpLFs0LCgwLFcuaXNGb2xkZXIpKHNlKV07Y2FzZSAxOnJldHVybiB2ZS5zZW50''@;'; + put 'put ''KCk/KG9lPSIiLmNvbmNhdChlZS5uYW1lfHwiam9iIiwiLSIpLmNvbmNhdCgoMCxOLmdlbmVyYXRlVGltZXN0YW1wKSgpLCIubG9nIiksY2U9WigyNTIwKSxkZT1jZS5qb2luKHF8fGllLmN3ZCgpLG9lKSxbNCxKKGRlKV0pOlszLDNdO2Nhc2UgMjpjYXNlIDQ6cmV0dXJuWzIsdmUuc2VudCgp''@;'; + put 'put ''XTtjYXNlIDM6cmV0dXJuWzQsSihzZSldfX0pfSl9fSwxMzQzOmZ1bmN0aW9uKFUsUSxaKXsidXNlIHN0cmljdCI7dmFyIGllPVooNDE1NSksYWU9Wig1MTA4KSxZPXRoaXMmJnRoaXMuX19hc3NpZ258fGZ1bmN0aW9uKCl7cmV0dXJuIFk9T2JqZWN0LmFzc2lnbnx8ZnVuY3Rpb24oZGUpe2Zv''@;'; + put 'put ''cih2YXIgdmUsQWU9MSxrZT1hcmd1bWVudHMubGVuZ3RoO0FlPGtlO0FlKyspZm9yKHZhciBTZSBpbiB2ZT1hcmd1bWVudHNbQWVdKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh2ZSxTZSkmJihkZVtTZV09dmVbU2VdKTtyZXR1cm4gZGV9LFkuYXBwbHkodGhpcyxhcmd1''@;'; + put 'put ''bWVudHMpfSxXPXRoaXMmJnRoaXMuX19hd2FpdGVyfHxmdW5jdGlvbihkZSx2ZSxBZSxrZSl7cmV0dXJuIG5ldyhBZXx8KEFlPVByb21pc2UpKShmdW5jdGlvbihTZSxJZSl7ZnVuY3Rpb24gVGUoTyl7dHJ5e2hlKGtlLm5leHQoTykpfWNhdGNoKHope0llKHopfX1mdW5jdGlvbiBFZShPKXt0''@;'; + put 'put ''cnl7aGUoa2UudGhyb3coTykpfWNhdGNoKHope0llKHopfX1mdW5jdGlvbiBoZShPKXt2YXIgejtPLmRvbmU/U2UoTy52YWx1ZSk6KHo9Ty52YWx1ZSx6IGluc3RhbmNlb2YgQWU/ejpuZXcgQWUoZnVuY3Rpb24obmUpe25lKHopfSkpLnRoZW4oVGUsRWUpfWhlKChrZT1rZS5hcHBseShkZSx2''@;'; + put 'put ''ZXx8W10pKS5uZXh0KCkpfSl9LE49dGhpcyYmdGhpcy5fX2dlbmVyYXRvcnx8ZnVuY3Rpb24oZGUsdmUpe3ZhciBBZSxrZSxTZSxJZSxUZT17bGFiZWw6MCxzZW50OmZ1bmN0aW9uKCl7aWYoMSZTZVswXSl0aHJvdyBTZVsxXTtyZXR1cm4gU2VbMV19LHRyeXM6W10sb3BzOltdfTtyZXR1cm4g''@;'; + put 'put ''SWU9e25leHQ6RWUoMCksdGhyb3c6RWUoMSkscmV0dXJuOkVlKDIpfSwiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYoSWVbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSksSWU7ZnVuY3Rpb24gRWUoaGUpe3JldHVybiBmdW5jdGlvbihPKXtyZXR1cm4gZnVuY3Rp''@;'; + put 'put ''b24oeil7aWYoQWUpdGhyb3cgbmV3IFR5cGVFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLiIpO2Zvcig7VGU7KXRyeXtpZihBZT0xLGtlJiYoU2U9MiZ6WzBdP2tlLnJldHVybjp6WzBdP2tlLnRocm93fHwoKFNlPWtlLnJldHVybikmJlNlLmNhbGwoa2UpLDApOmtlLm5l''@;'; + put 'put ''eHQpJiYhKFNlPVNlLmNhbGwoa2UselsxXSkpLmRvbmUpcmV0dXJuIFNlO3N3aXRjaChrZT0wLFNlJiYoej1bMiZ6WzBdLFNlLnZhbHVlXSkselswXSl7Y2FzZSAwOmNhc2UgMTpTZT16O2JyZWFrO2Nhc2UgNDpyZXR1cm4gVGUubGFiZWwrKyx7dmFsdWU6elsxXSxkb25lOiExfTtjYXNlIDU6''@;'; + put 'put ''VGUubGFiZWwrKyxrZT16WzFdLHo9WzBdO2NvbnRpbnVlO2Nhc2UgNzp6PVRlLm9wcy5wb3AoKSxUZS50cnlzLnBvcCgpO2NvbnRpbnVlO2RlZmF1bHQ6aWYoISgoU2U9KFNlPVRlLnRyeXMpLmxlbmd0aD4wJiZTZVtTZS5sZW5ndGgtMV0pfHw2IT09elswXSYmMiE9PXpbMF0pKXtUZT0wO2Nv''@;'; + put 'put ''bnRpbnVlfWlmKDM9PT16WzBdJiYoIVNlfHx6WzFdPlNlWzBdJiZ6WzFdPFNlWzNdKSl7VGUubGFiZWw9elsxXTticmVha31pZig2PT09elswXSYmVGUubGFiZWw8U2VbMV0pe1RlLmxhYmVsPVNlWzFdLFNlPXo7YnJlYWt9aWYoU2UmJlRlLmxhYmVsPFNlWzJdKXtUZS5sYWJlbD1TZVsyXSxU''@;'; + put 'put ''ZS5vcHMucHVzaCh6KTticmVha31TZVsyXSYmVGUub3BzLnBvcCgpLFRlLnRyeXMucG9wKCk7Y29udGludWV9ej12ZS5jYWxsKGRlLFRlKX1jYXRjaChuZSl7ej1bNixuZV0sa2U9MH1maW5hbGx5e0FlPVNlPTB9aWYoNSZ6WzBdKXRocm93IHpbMV07cmV0dXJue3ZhbHVlOnpbMF0/elsxXTp2''@;'; + put 'put ''b2lkIDAsZG9uZTohMH19KFtoZSxPXSl9fX07T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLFEucG9sbEpvYlN0YXRlPXZvaWQgMDt2YXIgZWU9Wig3MDQpLHE9WigxMzk1KSxKPVooNTkyOCk7US5wb2xsSm9iU3RhdGU9ZnVuY3Rpb24oZGUsdmUsQWUs''@;'; + put 'put ''a2UsU2Upe3JldHVybiBXKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBJZSxUZSxFZSxoZSxPLHosbmU7cmV0dXJuIE4odGhpcyxmdW5jdGlvbih0ZSl7c3dpdGNoKHRlLmxhYmVsKXtjYXNlIDA6aWYoSWU9aWUubG9nZ2VyfHxhZSxTZT1ZKFkoe30se21heFBvbGxDb3VudDox''@;'; + put 'put ''ZTMscG9sbEludGVydmFsOjMwMCxzdHJlYW1Mb2c6ITF9KSxTZXx8e30pLCEoVGU9dmUubGlua3MuZmluZChmdW5jdGlvbih4KXtyZXR1cm4ic3RhdGUiPT09eC5yZWx9KSkpdGhyb3cgbmV3IEVycm9yKCJKb2Igc3RhdGUgbGluayB3YXMgbm90IGZvdW5kLiIpO3JldHVybls0LHNlKGRlLHZl''@;'; + put 'put ''LCIiLEFlLGtlKS5jYXRjaChmdW5jdGlvbih4KXtyZXR1cm4gSWUuZXJyb3IoIkVycm9yIGZldGNoaW5nIGpvYiBzdGF0ZSBmcm9tICIuY29uY2F0KFRlLmhyZWYsIi4gU3RhcnRpbmcgcG9sbCwgYXNzdW1pbmcgam9iIHRvIGJlIHJ1bm5pbmcuIikseCksInVuYXZhaWxhYmxlIn0pXTtjYXNl''@;'; + put 'put ''IDE6cmV0dXJuIEVlPXRlLnNlbnQoKSxoZT0wLCJjb21wbGV0ZWQiPT09RWU/WzIsUHJvbWlzZS5yZXNvbHZlKEVlKV06U2Uuc3RyZWFtTG9nJiYoMCxKLmlzTm9kZSkoKT9bNCwoMCxaKDc0NTgpLmdldEZpbGVTdHJlYW0pKHZlLFNlLmxvZ0ZvbGRlclBhdGgpXTpbMywzXTtjYXNlIDI6Tz10''@;'; + put 'put ''ZS5zZW50KCksdGUubGFiZWw9MztjYXNlIDM6cmV0dXJuWzQsY2UoZGUsdmUsRWUsQWUsaGUsa2UsWShZKHt9LFNlKSx7bWF4UG9sbENvdW50OlNlLm1heFBvbGxDb3VudDw9MTAwP1NlLm1heFBvbGxDb3VudDoxMDB9KSxPKV07Y2FzZSA0OnJldHVybiB6PXRlLnNlbnQoKSxoZT16LnBvbGxD''@;'; + put 'put ''b3VudCwhb2UoRWU9ei5zdGF0ZSl8fGhlPj1TZS5tYXhQb2xsQ291bnQ/WzIsRWVdOihuZT17bWF4UG9sbENvdW50OjE0NDAscG9sbEludGVydmFsOjZlNCxzdHJlYW1Mb2c6ITF9LFNlJiYobmUuc3RyZWFtTG9nPVNlLnN0cmVhbUxvZyxuZS5sb2dGb2xkZXJQYXRoPVNlLmxvZ0ZvbGRlclBh''@;'; + put 'put ''dGgpLFs0LGNlKGRlLHZlLEVlLEFlLGhlLGtlLG5lLE8pXSk7Y2FzZSA1OnJldHVybiB6PXRlLnNlbnQoKSxFZT16LnN0YXRlLGhlPXoucG9sbENvdW50LE8mJk8uZW5kKCksWzIsRWVdfX0pfSl9O3ZhciBzZT1mdW5jdGlvbihkZSx2ZSxBZSxrZSxTZSl7cmV0dXJuIFcodm9pZCAwLHZvaWQg''@;'; + put 'put ''MCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgSWUsVGU7cmV0dXJuIE4odGhpcyxmdW5jdGlvbihFZSl7c3dpdGNoKEVlLmxhYmVsKXtjYXNlIDA6aWYoIShJZT12ZS5saW5rcy5maW5kKGZ1bmN0aW9uKGhlKXtyZXR1cm4ic3RhdGUiPT09aGUucmVsfSkpKXRocm93IG5ldyBFcnJvcigiSm9iIHN0''@;'; + put 'put ''YXRlIGxpbmsgd2FzIG5vdCBmb3VuZC4iKTtyZXR1cm4gb2UoQWUpPyhUZT12b2lkIDAsU2U/WzQsKDAsZWUuZ2V0VG9rZW5zKShkZSxTZSldOlszLDJdKTpbMyw0XTtjYXNlIDE6VGU9RWUuc2VudCgpLEVlLmxhYmVsPTI7Y2FzZSAyOnJldHVybls0LGRlLmdldCgiIi5jb25jYXQoSWUuaHJl''@;'; + put 'put ''ZiwiP19hY3Rpb249d2FpdCZ3YWl0PTMwMCIpLG51bGw9PVRlP3ZvaWQgMDpUZS5hY2Nlc3NfdG9rZW4sInRleHQvcGxhaW4iLHt9LGtlKS5jYXRjaChmdW5jdGlvbihoZSl7dGhyb3cgbmV3IHEuSm9iU3RhdGVQb2xsRXJyb3IodmUuaWQsaGUpfSldO2Nhc2UgMzpyZXR1cm5bMixFZS5zZW50''@;'; + put 'put ''KCkucmVzdWx0LnRyaW0oKV07Y2FzZSA0OnJldHVyblsyLEFlXX19KX0pfSxvZT1mdW5jdGlvbihkZSl7cmV0dXJuInJ1bm5pbmciPT09ZGV8fCIiPT09ZGV8fCJwZW5kaW5nIj09PWRlfHwidW5hdmFpbGFibGUiPT09ZGV9LGNlPWZ1bmN0aW9uKGRlLHZlLEFlLGtlLFNlLEllLFRlLEVlKXty''@;'; + put 'put ''ZXR1cm4gVyh2b2lkIDAsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBoZSxPLHosbmUsdGUseCxQLFYsVCxTLEYseWUsQ2UsRGUsUGU7cmV0dXJuIE4odGhpcyxmdW5jdGlvbihRZSl7c3dpdGNoKFFlLmxhYmVsKXtjYXNlIDA6aWYoaGU9MzAwLE89MWUzLHo9NSxuZT0wLHRlPUFlLHg9''@;'; + put 'put ''IiIsUD0wLFY9aWUubG9nZ2VyfHxhZSxUZSYmKGhlPVRlLnBvbGxJbnRlcnZhbHx8aGUsTz1UZS5tYXhQb2xsQ291bnR8fE8pLCEoVD12ZS5saW5rcy5maW5kKGZ1bmN0aW9uKCRlKXtyZXR1cm4ic3RhdGUiPT09JGUucmVsfSkpKXRocm93IG5ldyBFcnJvcigiSm9iIHN0YXRlIGxpbmsgd2Fz''@;'; + put 'put ''IG5vdCBmb3VuZC4iKTtRZS5sYWJlbD0xO2Nhc2UgMTpyZXR1cm4gb2UodGUpJiZTZTw9Tz9bNCxzZShkZSx2ZSx0ZSxrZSxJZSkuY2F0Y2goZnVuY3Rpb24oJGUpe2lmKG5lKyssU2U+PU98fG5lPj16KXRocm93ICRlO3JldHVybiBWLmVycm9yKCJFcnJvciBmZXRjaGluZyBqb2Igc3RhdGUg''@;'; + put 'put ''ZnJvbSAiLmNvbmNhdChULmhyZWYsIi4gUmVzdW1pbmcgcG9sbCwgYXNzdW1pbmcgam9iIHRvIGJlIHJ1bm5pbmcuIiksJGUpLCJ1bmF2YWlsYWJsZSJ9KV06WzMsOF07Y2FzZSAyOnJldHVybiB0ZT1RZS5zZW50KCksU2UrKyxTPXZlLmxpbmtzLmZpbmQoZnVuY3Rpb24oJGUpe3JldHVybiJz''@;'; + put 'put ''ZWxmIj09PSRlLnJlbH0pLmhyZWYsbnVsbCE9VGUmJlRlLnN0cmVhbUxvZz9bNCxkZS5nZXQoUyxudWxsPT1JZT92b2lkIDA6SWUuYWNjZXNzX3Rva2VuKV06WzMsNl07Y2FzZSAzOnJldHVybiBGPVFlLnNlbnQoKS5yZXN1bHQseWU9bnVsbCE9PShQZT1udWxsPT09KERlPUYubG9nU3RhdGlz''@;'; + put 'put ''dGljcyl8fHZvaWQgMD09PURlP3ZvaWQgMDpEZS5saW5lQ291bnQpJiZ2b2lkIDAhPT1QZT9QZToxZTYsKENlPSgoMCxKLmlzTm9kZSkoKT9aKDIwODApOntzYXZlTG9nOm51bGx9KS5zYXZlTG9nKT9bNCxDZSh2ZSxkZSxQLHllLEVlLG51bGw9PUllP3ZvaWQgMDpJZS5hY2Nlc3NfdG9rZW4p''@;'; + put 'put ''XTpbMyw1XTtjYXNlIDQ6UWUuc2VudCgpLFFlLmxhYmVsPTU7Y2FzZSA1OlArPXllLFFlLmxhYmVsPTY7Y2FzZSA2OnJldHVybiBrZSYmeCE9PXRlJiYoVi5pbmZvKCJQb2xsaW5nOiAiLmNvbmNhdChkZS5nZXRCYXNlVXJsKCkrUywiL3N0YXRlIikpLFYuaW5mbygiQ3VycmVudCBqb2Igc3Rh''@;'; + put 'put ''dGU6ICIuY29uY2F0KHRlKSkseD10ZSksInVuYXZhaWxhYmxlIiE9dGUmJm5lPjAmJihuZT0wKSxbNCwoMCxKLmRlbGF5KShoZSldO2Nhc2UgNzpyZXR1cm4gUWUuc2VudCgpLFszLDFdO2Nhc2UgODpyZXR1cm5bMix7c3RhdGU6dGUscG9sbENvdW50OlNlfV19fSl9KX19LDIwODA6ZnVuY3Rp''@;'; + put 'put ''b24oVSxRLFopeyJ1c2Ugc3RyaWN0Ijt2YXIgaWU9Wig0MTU1KSxhZT1aKDUxMDgpLFk9dGhpcyYmdGhpcy5fX2F3YWl0ZXJ8fGZ1bmN0aW9uKHEsSixzZSxvZSl7cmV0dXJuIG5ldyhzZXx8KHNlPVByb21pc2UpKShmdW5jdGlvbihjZSxkZSl7ZnVuY3Rpb24gdmUoU2Upe3RyeXtrZShvZS5u''@;'; + put 'put ''ZXh0KFNlKSl9Y2F0Y2goSWUpe2RlKEllKX19ZnVuY3Rpb24gQWUoU2Upe3RyeXtrZShvZS50aHJvdyhTZSkpfWNhdGNoKEllKXtkZShJZSl9fWZ1bmN0aW9uIGtlKFNlKXt2YXIgSWU7U2UuZG9uZT9jZShTZS52YWx1ZSk6KEllPVNlLnZhbHVlLEllIGluc3RhbmNlb2Ygc2U/SWU6bmV3IHNl''@;'; + put 'put ''KGZ1bmN0aW9uKFRlKXtUZShJZSl9KSkudGhlbih2ZSxBZSl9a2UoKG9lPW9lLmFwcGx5KHEsSnx8W10pKS5uZXh0KCkpfSl9LFc9dGhpcyYmdGhpcy5fX2dlbmVyYXRvcnx8ZnVuY3Rpb24ocSxKKXt2YXIgc2Usb2UsY2UsZGUsdmU9e2xhYmVsOjAsc2VudDpmdW5jdGlvbigpe2lmKDEmY2Vb''@;'; + put 'put ''MF0pdGhyb3cgY2VbMV07cmV0dXJuIGNlWzFdfSx0cnlzOltdLG9wczpbXX07cmV0dXJuIGRlPXtuZXh0OkFlKDApLHRocm93OkFlKDEpLHJldHVybjpBZSgyKX0sImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmKGRlW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30p''@;'; + put 'put ''LGRlO2Z1bmN0aW9uIEFlKGtlKXtyZXR1cm4gZnVuY3Rpb24oU2Upe3JldHVybiBmdW5jdGlvbihJZSl7aWYoc2UpdGhyb3cgbmV3IFR5cGVFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLiIpO2Zvcig7dmU7KXRyeXtpZihzZT0xLG9lJiYoY2U9MiZJZVswXT9vZS5yZXR1''@;'; + put 'put ''cm46SWVbMF0/b2UudGhyb3d8fCgoY2U9b2UucmV0dXJuKSYmY2UuY2FsbChvZSksMCk6b2UubmV4dCkmJiEoY2U9Y2UuY2FsbChvZSxJZVsxXSkpLmRvbmUpcmV0dXJuIGNlO3N3aXRjaChvZT0wLGNlJiYoSWU9WzImSWVbMF0sY2UudmFsdWVdKSxJZVswXSl7Y2FzZSAwOmNhc2UgMTpjZT1J''@;'; + put 'put ''ZTticmVhaztjYXNlIDQ6cmV0dXJuIHZlLmxhYmVsKysse3ZhbHVlOkllWzFdLGRvbmU6ITF9O2Nhc2UgNTp2ZS5sYWJlbCsrLG9lPUllWzFdLEllPVswXTtjb250aW51ZTtjYXNlIDc6SWU9dmUub3BzLnBvcCgpLHZlLnRyeXMucG9wKCk7Y29udGludWU7ZGVmYXVsdDppZighKChjZT0oY2U9''@;'; + put 'put ''dmUudHJ5cykubGVuZ3RoPjAmJmNlW2NlLmxlbmd0aC0xXSl8fDYhPT1JZVswXSYmMiE9PUllWzBdKSl7dmU9MDtjb250aW51ZX1pZigzPT09SWVbMF0mJighY2V8fEllWzFdPmNlWzBdJiZJZVsxXTxjZVszXSkpe3ZlLmxhYmVsPUllWzFdO2JyZWFrfWlmKDY9PT1JZVswXSYmdmUubGFiZWw8''@;'; + put 'put ''Y2VbMV0pe3ZlLmxhYmVsPWNlWzFdLGNlPUllO2JyZWFrfWlmKGNlJiZ2ZS5sYWJlbDxjZVsyXSl7dmUubGFiZWw9Y2VbMl0sdmUub3BzLnB1c2goSWUpO2JyZWFrfWNlWzJdJiZ2ZS5vcHMucG9wKCksdmUudHJ5cy5wb3AoKTtjb250aW51ZX1JZT1KLmNhbGwocSx2ZSl9Y2F0Y2goVGUpe0ll''@;'; + put 'put ''PVs2LFRlXSxvZT0wfWZpbmFsbHl7c2U9Y2U9MH1pZig1JkllWzBdKXRocm93IEllWzFdO3JldHVybnt2YWx1ZTpJZVswXT9JZVsxXTp2b2lkIDAsZG9uZTohMH19KFtrZSxTZV0pfX19O09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxRLnNhdmVMb2c9''@;'; + put 'put ''dm9pZCAwO3ZhciBOPVooNTkyOCksZWU9Wig2MTMxKTtRLnNhdmVMb2c9ZnVuY3Rpb24ocSxKLHNlLG9lLGNlLGRlKXtyZXR1cm4gWSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgdmUsQWUsa2U7cmV0dXJuIFcodGhpcyxmdW5jdGlvbihTZSl7c3dpdGNoKFNlLmxhYmVsKXtj''@;'; + put 'put ''YXNlIDA6aWYoIWRlKXRocm93IG5ldyBFcnJvcigiTG9ncyBmb3Igam9iICIuY29uY2F0KHEuaWQsIiBjYW5ub3QgYmUgZmV0Y2hlZCB3aXRob3V0IGEgdmFsaWQgYWNjZXNzIHRva2VuLiIpKTtpZighY2UpdGhyb3cgbmV3IEVycm9yKCJMb2dzIGZvciBqb2IgIi5jb25jYXQocS5pZCwiIGNh''@;'; + put 'put ''bm5vdCBiZSB3cml0dGVuIHdpdGhvdXQgYSB2YWxpZCB3cml0ZSBzdHJlYW0uIikpO2lmKHZlPWllLmxvZ2dlcnx8YWUsIShBZT1xLmxpbmtzLmZpbmQoZnVuY3Rpb24oSWUpe3JldHVybiJsb2ciPT09SWUucmVsfSkpKXRocm93IG5ldyBFcnJvcigiTG9nIFVSTCBmb3Igam9iICIuY29uY2F0''@;'; + put 'put ''KHEuaWQsIiB3YXMgbm90IGZvdW5kLiIpKTtyZXR1cm5bNCwoMCxOLmZldGNoTG9nKShKLGRlLCIiLmNvbmNhdChBZS5ocmVmLCIvY29udGVudCIpLHNlLG9lKV07Y2FzZSAxOnJldHVybiBrZT1TZS5zZW50KCksdmUuaW5mbygiV3JpdGluZyBsb2dzIHRvICIuY29uY2F0KGNlLnBhdGgpKSxb''@;'; + put 'put ''NCwoMCxlZS53cml0ZVN0cmVhbSkoY2Usa2V8fCIiKV07Y2FzZSAyOnJldHVybiBTZS5zZW50KCksWzJdfX0pfSl9fSw2NDk2OmZ1bmN0aW9uKFUsUSxaKXsidXNlIHN0cmljdCI7dmFyIGllPXRoaXMmJnRoaXMuX19hd2FpdGVyfHxmdW5jdGlvbihOLGVlLHEsSil7cmV0dXJuIG5ldyhxfHwo''@;'; + put 'put ''cT1Qcm9taXNlKSkoZnVuY3Rpb24oc2Usb2Upe2Z1bmN0aW9uIGNlKEFlKXt0cnl7dmUoSi5uZXh0KEFlKSl9Y2F0Y2goa2Upe29lKGtlKX19ZnVuY3Rpb24gZGUoQWUpe3RyeXt2ZShKLnRocm93KEFlKSl9Y2F0Y2goa2Upe29lKGtlKX19ZnVuY3Rpb24gdmUoQWUpe3ZhciBrZTtBZS5kb25l''@;'; + put 'put ''P3NlKEFlLnZhbHVlKTooa2U9QWUudmFsdWUsa2UgaW5zdGFuY2VvZiBxP2tlOm5ldyBxKGZ1bmN0aW9uKFNlKXtTZShrZSl9KSkudGhlbihjZSxkZSl9dmUoKEo9Si5hcHBseShOLGVlfHxbXSkpLm5leHQoKSl9KX0sYWU9dGhpcyYmdGhpcy5fX2dlbmVyYXRvcnx8ZnVuY3Rpb24oTixlZSl7''@;'; + put 'put ''dmFyIHEsSixzZSxvZSxjZT17bGFiZWw6MCxzZW50OmZ1bmN0aW9uKCl7aWYoMSZzZVswXSl0aHJvdyBzZVsxXTtyZXR1cm4gc2VbMV19LHRyeXM6W10sb3BzOltdfTtyZXR1cm4gb2U9e25leHQ6ZGUoMCksdGhyb3c6ZGUoMSkscmV0dXJuOmRlKDIpfSwiZnVuY3Rpb24iPT10eXBlb2YgU3lt''@;'; + put 'put ''Ym9sJiYob2VbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSksb2U7ZnVuY3Rpb24gZGUodmUpe3JldHVybiBmdW5jdGlvbihBZSl7cmV0dXJuIGZ1bmN0aW9uKGtlKXtpZihxKXRocm93IG5ldyBUeXBlRXJyb3IoIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGlu''@;'; + put 'put ''Zy4iKTtmb3IoO2NlOyl0cnl7aWYocT0xLEomJihzZT0yJmtlWzBdP0oucmV0dXJuOmtlWzBdP0oudGhyb3d8fCgoc2U9Si5yZXR1cm4pJiZzZS5jYWxsKEopLDApOkoubmV4dCkmJiEoc2U9c2UuY2FsbChKLGtlWzFdKSkuZG9uZSlyZXR1cm4gc2U7c3dpdGNoKEo9MCxzZSYmKGtlPVsyJmtl''@;'; + put 'put ''WzBdLHNlLnZhbHVlXSksa2VbMF0pe2Nhc2UgMDpjYXNlIDE6c2U9a2U7YnJlYWs7Y2FzZSA0OnJldHVybiBjZS5sYWJlbCsrLHt2YWx1ZTprZVsxXSxkb25lOiExfTtjYXNlIDU6Y2UubGFiZWwrKyxKPWtlWzFdLGtlPVswXTtjb250aW51ZTtjYXNlIDc6a2U9Y2Uub3BzLnBvcCgpLGNlLnRy''@;'; + put 'put ''eXMucG9wKCk7Y29udGludWU7ZGVmYXVsdDppZighKChzZT0oc2U9Y2UudHJ5cykubGVuZ3RoPjAmJnNlW3NlLmxlbmd0aC0xXSl8fDYhPT1rZVswXSYmMiE9PWtlWzBdKSl7Y2U9MDtjb250aW51ZX1pZigzPT09a2VbMF0mJighc2V8fGtlWzFdPnNlWzBdJiZrZVsxXTxzZVszXSkpe2NlLmxh''@;'; + put 'put ''YmVsPWtlWzFdO2JyZWFrfWlmKDY9PT1rZVswXSYmY2UubGFiZWw8c2VbMV0pe2NlLmxhYmVsPXNlWzFdLHNlPWtlO2JyZWFrfWlmKHNlJiZjZS5sYWJlbDxzZVsyXSl7Y2UubGFiZWw9c2VbMl0sY2Uub3BzLnB1c2goa2UpO2JyZWFrfXNlWzJdJiZjZS5vcHMucG9wKCksY2UudHJ5cy5wb3Ao''@;'; + put 'put ''KTtjb250aW51ZX1rZT1lZS5jYWxsKE4sY2UpfWNhdGNoKFNlKXtrZT1bNixTZV0sSj0wfWZpbmFsbHl7cT1zZT0wfWlmKDUma2VbMF0pdGhyb3cga2VbMV07cmV0dXJue3ZhbHVlOmtlWzBdP2tlWzFdOnZvaWQgMCxkb25lOiEwfX0oW3ZlLEFlXSl9fX07T2JqZWN0LmRlZmluZVByb3BlcnR5''@;'; + put 'put ''KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLFEudXBsb2FkVGFibGVzPXZvaWQgMDt2YXIgWT1aKDk3NzgpLFc9WigyNDAyKTtRLnVwbG9hZFRhYmxlcz1mdW5jdGlvbihOLGVlLHEpe3JldHVybiBpZSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgSixzZSxvZSxjZSxkZSx2''@;'; + put 'put ''ZSxBZTtyZXR1cm4gYWUodGhpcyxmdW5jdGlvbihrZSl7c3dpdGNoKGtlLmxhYmVsKXtjYXNlIDA6Zm9yKG9lIGluIEo9W10sc2U9W10sZWUpc2UucHVzaChvZSk7Y2U9MCxrZS5sYWJlbD0xO2Nhc2UgMTppZighKGNlPHNlLmxlbmd0aCkpcmV0dXJuWzMsNF07aWYoIkVSUk9SOiBMQVJHRSBT''@;'; + put 'put ''VFJJTkcgTEVOR1RIIj09PSh2ZT0oMCxXLmNvbnZlcnRUb0NTVikoZWUsZGU9c2VbY2VdKSkpdGhyb3cgbmV3IEVycm9yKCJUaGUgbWF4IGxlbmd0aCBvZiBhIHN0cmluZyB2YWx1ZSBpbiBTQVNqcyBpcyAzMjc2NSBjaGFyYWN0ZXJzLiIpO3JldHVybls0LE4udXBsb2FkRmlsZSgiL2ZpbGVz''@;'; + put 'put ''L2ZpbGVzI3Jhd1VwbG9hZCIsdmUscSkuY2F0Y2goZnVuY3Rpb24oU2Upe3Rocm93KDAsWS5wcmVmaXhNZXNzYWdlKShTZSwiRXJyb3Igd2hpbGUgdXBsb2FkaW5nIGZpbGUuICIpfSldO2Nhc2UgMjpBZT1rZS5zZW50KCksSi5wdXNoKHt0YWJsZU5hbWU6ZGUsZmlsZTpBZS5yZXN1bHR9KSxr''@;'; + put 'put ''ZS5sYWJlbD0zO2Nhc2UgMzpyZXR1cm4gY2UrKyxbMywxXTtjYXNlIDQ6cmV0dXJuWzIsSl19fSl9KX19LDYxMzE6ZnVuY3Rpb24oVSxRKXsidXNlIHN0cmljdCI7dmFyIFo9dGhpcyYmdGhpcy5fX2F3YWl0ZXJ8fGZ1bmN0aW9uKGFlLFksVyxOKXtyZXR1cm4gbmV3KFd8fChXPVByb21pc2Up''@;'; + put 'put ''KShmdW5jdGlvbihlZSxxKXtmdW5jdGlvbiBKKGNlKXt0cnl7b2UoTi5uZXh0KGNlKSl9Y2F0Y2goZGUpe3EoZGUpfX1mdW5jdGlvbiBzZShjZSl7dHJ5e29lKE4udGhyb3coY2UpKX1jYXRjaChkZSl7cShkZSl9fWZ1bmN0aW9uIG9lKGNlKXt2YXIgZGU7Y2UuZG9uZT9lZShjZS52YWx1ZSk6''@;'; + put 'put ''KGRlPWNlLnZhbHVlLGRlIGluc3RhbmNlb2YgVz9kZTpuZXcgVyhmdW5jdGlvbih2ZSl7dmUoZGUpfSkpLnRoZW4oSixzZSl9b2UoKE49Ti5hcHBseShhZSxZfHxbXSkpLm5leHQoKSl9KX0saWU9dGhpcyYmdGhpcy5fX2dlbmVyYXRvcnx8ZnVuY3Rpb24oYWUsWSl7dmFyIFcsTixlZSxxLEo9''@;'; + put 'put ''e2xhYmVsOjAsc2VudDpmdW5jdGlvbigpe2lmKDEmZWVbMF0pdGhyb3cgZWVbMV07cmV0dXJuIGVlWzFdfSx0cnlzOltdLG9wczpbXX07cmV0dXJuIHE9e25leHQ6c2UoMCksdGhyb3c6c2UoMSkscmV0dXJuOnNlKDIpfSwiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYocVtTeW1ib2wuaXRl''@;'; + put 'put ''cmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSxxO2Z1bmN0aW9uIHNlKG9lKXtyZXR1cm4gZnVuY3Rpb24oY2Upe3JldHVybiBmdW5jdGlvbihkZSl7aWYoVyl0aHJvdyBuZXcgVHlwZUVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcuIik7Zm9yKDtKOyl0cnl7aWYo''@;'; + put 'put ''Vz0xLE4mJihlZT0yJmRlWzBdP04ucmV0dXJuOmRlWzBdP04udGhyb3d8fCgoZWU9Ti5yZXR1cm4pJiZlZS5jYWxsKE4pLDApOk4ubmV4dCkmJiEoZWU9ZWUuY2FsbChOLGRlWzFdKSkuZG9uZSlyZXR1cm4gZWU7c3dpdGNoKE49MCxlZSYmKGRlPVsyJmRlWzBdLGVlLnZhbHVlXSksZGVbMF0p''@;'; + put 'put ''e2Nhc2UgMDpjYXNlIDE6ZWU9ZGU7YnJlYWs7Y2FzZSA0OnJldHVybiBKLmxhYmVsKysse3ZhbHVlOmRlWzFdLGRvbmU6ITF9O2Nhc2UgNTpKLmxhYmVsKyssTj1kZVsxXSxkZT1bMF07Y29udGludWU7Y2FzZSA3OmRlPUoub3BzLnBvcCgpLEoudHJ5cy5wb3AoKTtjb250aW51ZTtkZWZhdWx0''@;'; + put 'put ''OmlmKCEoKGVlPShlZT1KLnRyeXMpLmxlbmd0aD4wJiZlZVtlZS5sZW5ndGgtMV0pfHw2IT09ZGVbMF0mJjIhPT1kZVswXSkpe0o9MDtjb250aW51ZX1pZigzPT09ZGVbMF0mJighZWV8fGRlWzFdPmVlWzBdJiZkZVsxXTxlZVszXSkpe0oubGFiZWw9ZGVbMV07YnJlYWt9aWYoNj09PWRlWzBd''@;'; + put 'put ''JiZKLmxhYmVsPGVlWzFdKXtKLmxhYmVsPWVlWzFdLGVlPWRlO2JyZWFrfWlmKGVlJiZKLmxhYmVsPGVlWzJdKXtKLmxhYmVsPWVlWzJdLEoub3BzLnB1c2goZGUpO2JyZWFrfWVlWzJdJiZKLm9wcy5wb3AoKSxKLnRyeXMucG9wKCk7Y29udGludWV9ZGU9WS5jYWxsKGFlLEopfWNhdGNoKHZl''@;'; + put 'put ''KXtkZT1bNix2ZV0sTj0wfWZpbmFsbHl7Vz1lZT0wfWlmKDUmZGVbMF0pdGhyb3cgZGVbMV07cmV0dXJue3ZhbHVlOmRlWzBdP2RlWzFdOnZvaWQgMCxkb25lOiEwfX0oW29lLGNlXSl9fX07T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLFEud3JpdGVT''@;'; + put 'put ''dHJlYW09dm9pZCAwLFEud3JpdGVTdHJlYW09ZnVuY3Rpb24oYWUsWSl7cmV0dXJuIFoodm9pZCAwLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gaWUodGhpcyxmdW5jdGlvbihXKXtyZXR1cm5bMixhZS53cml0ZShZKyJcbiIsZnVuY3Rpb24oTil7cmV0dXJuIE4/UHJvbWlzZS5y''@;'; + put 'put ''ZWplY3QoTik6UHJvbWlzZS5yZXNvbHZlKCl9KV19KX0pfX0sMjg1MTpmdW5jdGlvbihVLFEsWil7InVzZSBzdHJpY3QiO3ZhciBpZT1aKDUxMDgpLGFlPXRoaXMmJnRoaXMuX19hd2FpdGVyfHxmdW5jdGlvbihkZSx2ZSxBZSxrZSl7cmV0dXJuIG5ldyhBZXx8KEFlPVByb21pc2UpKShmdW5j''@;'; + put 'put ''dGlvbihTZSxJZSl7ZnVuY3Rpb24gVGUoTyl7dHJ5e2hlKGtlLm5leHQoTykpfWNhdGNoKHope0llKHopfX1mdW5jdGlvbiBFZShPKXt0cnl7aGUoa2UudGhyb3coTykpfWNhdGNoKHope0llKHopfX1mdW5jdGlvbiBoZShPKXt2YXIgejtPLmRvbmU/U2UoTy52YWx1ZSk6KHo9Ty52YWx1ZSx6''@;'; + put 'put ''IGluc3RhbmNlb2YgQWU/ejpuZXcgQWUoZnVuY3Rpb24obmUpe25lKHopfSkpLnRoZW4oVGUsRWUpfWhlKChrZT1rZS5hcHBseShkZSx2ZXx8W10pKS5uZXh0KCkpfSl9LFk9dGhpcyYmdGhpcy5fX2dlbmVyYXRvcnx8ZnVuY3Rpb24oZGUsdmUpe3ZhciBBZSxrZSxTZSxJZSxUZT17bGFiZWw6''@;'; + put 'put ''MCxzZW50OmZ1bmN0aW9uKCl7aWYoMSZTZVswXSl0aHJvdyBTZVsxXTtyZXR1cm4gU2VbMV19LHRyeXM6W10sb3BzOltdfTtyZXR1cm4gSWU9e25leHQ6RWUoMCksdGhyb3c6RWUoMSkscmV0dXJuOkVlKDIpfSwiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYoSWVbU3ltYm9sLml0ZXJhdG9y''@;'; + put 'put ''XT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSksSWU7ZnVuY3Rpb24gRWUoaGUpe3JldHVybiBmdW5jdGlvbihPKXtyZXR1cm4gZnVuY3Rpb24oeil7aWYoQWUpdGhyb3cgbmV3IFR5cGVFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLiIpO2Zvcig7VGU7KXRyeXtpZihBZT0x''@;'; + put 'put ''LGtlJiYoU2U9MiZ6WzBdP2tlLnJldHVybjp6WzBdP2tlLnRocm93fHwoKFNlPWtlLnJldHVybikmJlNlLmNhbGwoa2UpLDApOmtlLm5leHQpJiYhKFNlPVNlLmNhbGwoa2UselsxXSkpLmRvbmUpcmV0dXJuIFNlO3N3aXRjaChrZT0wLFNlJiYoej1bMiZ6WzBdLFNlLnZhbHVlXSkselswXSl7''@;'; + put 'put ''Y2FzZSAwOmNhc2UgMTpTZT16O2JyZWFrO2Nhc2UgNDpyZXR1cm4gVGUubGFiZWwrKyx7dmFsdWU6elsxXSxkb25lOiExfTtjYXNlIDU6VGUubGFiZWwrKyxrZT16WzFdLHo9WzBdO2NvbnRpbnVlO2Nhc2UgNzp6PVRlLm9wcy5wb3AoKSxUZS50cnlzLnBvcCgpO2NvbnRpbnVlO2RlZmF1bHQ6''@;'; + put 'put ''aWYoISgoU2U9KFNlPVRlLnRyeXMpLmxlbmd0aD4wJiZTZVtTZS5sZW5ndGgtMV0pfHw2IT09elswXSYmMiE9PXpbMF0pKXtUZT0wO2NvbnRpbnVlfWlmKDM9PT16WzBdJiYoIVNlfHx6WzFdPlNlWzBdJiZ6WzFdPFNlWzNdKSl7VGUubGFiZWw9elsxXTticmVha31pZig2PT09elswXSYmVGUu''@;'; + put 'put ''bGFiZWw8U2VbMV0pe1RlLmxhYmVsPVNlWzFdLFNlPXo7YnJlYWt9aWYoU2UmJlRlLmxhYmVsPFNlWzJdKXtUZS5sYWJlbD1TZVsyXSxUZS5vcHMucHVzaCh6KTticmVha31TZVsyXSYmVGUub3BzLnBvcCgpLFRlLnRyeXMucG9wKCk7Y29udGludWV9ej12ZS5jYWxsKGRlLFRlKX1jYXRjaChu''@;'; + put 'put ''ZSl7ej1bNixuZV0sa2U9MH1maW5hbGx5e0FlPVNlPTB9aWYoNSZ6WzBdKXRocm93IHpbMV07cmV0dXJue3ZhbHVlOnpbMF0/elsxXTp2b2lkIDAsZG9uZTohMH19KFtoZSxPXSl9fX07T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLFEuQXV0aE1hbmFn''@;'; + put 'put ''ZXI9dm9pZCAwO3ZhciBXPVooMzkwMCksTj1aKDU5MjgpLGVlPVooNTQxOCkscT1aKDQ1ODIpLEo9Wig2NTQ3KSxzZT1mdW5jdGlvbigpe2Z1bmN0aW9uIGRlKHZlLEFlLGtlLFNlKXt2YXIgSWU9dGhpczt0aGlzLnNlcnZlclVybD12ZSx0aGlzLnNlcnZlclR5cGU9QWUsdGhpcy5yZXF1ZXN0''@;'; + put 'put ''Q2xpZW50PWtlLHRoaXMubG9naW5DYWxsYmFjaz1TZSx0aGlzLnVzZXJOYW1lPSIiLHRoaXMucmVkaXJlY3RlZExvZ2luVXJsPSIvU0FTTG9nb24vaG9tZSIsdGhpcy5leHRyYWN0VXNlck5hbWU9ZnVuY3Rpb24oVGUpe3N3aXRjaChJZS5zZXJ2ZXJUeXBlKXtjYXNlIFcuU2VydmVyVHlwZS5T''@;'; + put 'put ''YXNWaXlhOnJldHVybiBudWxsPT1UZT92b2lkIDA6VGUuaWQ7Y2FzZSBXLlNlcnZlclR5cGUuU2FzOTp2YXIgRWU9bnVsbD09VGU/dm9pZCAwOlRlLm1hdGNoKC8idGl0bGUiOiJMb2cgT2ZmIFswLTFhLXpBLVogXSoiLyksaGU9bnVsbD09RWU/dm9pZCAwOkVlWzBdLnNsaWNlKDE3LC0xKTty''@;'; + put 'put ''ZXR1cm4gaGUuaW5jbHVkZXMoIiAiKT9oZS5zcGxpdCgiICIpLm1hcChmdW5jdGlvbihPKXtyZXR1cm4gTy5zbGljZSgwLDMpLnRvTG93ZXJDYXNlKCl9KS5qb2luKCIiKTpoZTtjYXNlIFcuU2VydmVyVHlwZS5TYXNqczpyZXR1cm4gbnVsbD09VGU/dm9pZCAwOlRlLnVzZXJuYW1lO2RlZmF1''@;'; + put 'put ''bHQ6cmV0dXJuIGllLmVycm9yKCJTZXJ2ZXIgVHlwZSBub3QgZm91bmQgaW4gZXh0cmFjdFVzZXJOYW1lIGZ1bmN0aW9uIiksIiJ9fSx0aGlzLnNldExvZ2luVXJsPWZ1bmN0aW9uKFRlKXt2YXIgRWU9VGVbMV0ucmVwbGFjZSgvXD8uKi8sIiIpO2lmKCIvIj09PUVlWzBdKXtFZT1FZS5zdWJz''@;'; + put 'put ''dHIoMSk7dmFyIGhlPUllLnNlcnZlclVybD8iIi5jb25jYXQoSWUuc2VydmVyVXJsLCIvIikuY29uY2F0KEVlKToiIi5jb25jYXQoRWUpO0llLmxvZ2luVXJsPUllLnNlcnZlclR5cGU9PT1XLlNlcnZlclR5cGUuU2FzVml5YT9oZTpoZS5yZXBsYWNlKCIuZG8iLCIiKX19LHRoaXMubG9naW5V''@;'; + put 'put ''cmw9Ii9TQVNMb2dvbi9sb2dpbiIsdGhpcy5sb2dvdXRVcmw9dGhpcy5zZXJ2ZXJUeXBlPT09Vy5TZXJ2ZXJUeXBlLlNhczk/Ii9TQVNMb2dvbi9sb2dvdXQ/Ijp0aGlzLnNlcnZlclR5cGU9PT1XLlNlcnZlclR5cGUuU2FzVml5YT8iL1NBU0xvZ29uL2xvZ291dC5kbz8iOiIvU0FTTG9nb24v''@;'; + put 'put ''bG9nb3V0In1yZXR1cm4gZGUucHJvdG90eXBlLnJlZGlyZWN0ZWRMb2dJbj1mdW5jdGlvbih2ZSl7dmFyIEFlPXZlLm9uTG9nZ2VkT3V0O3JldHVybiBhZSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIga2UsSWUsVGUsRWUsaGUsTztyZXR1cm4gWSh0aGlzLGZ1bmN0aW9uKHop''@;'; + put 'put ''e3N3aXRjaCh6LmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsdGhpcy5mZXRjaFVzZXJOYW1lKCldO2Nhc2UgMTpyZXR1cm4ga2U9ei5zZW50KCksSWU9a2UudXNlck5hbWUsa2UuaXNMb2dnZWRJbj9bNCx0aGlzLmxvZ2luQ2FsbGJhY2soKV06WzMsM107Y2FzZSAyOnJldHVybiB6LnNlbnQoKSxb''@;'; + put 'put ''Mix7aXNMb2dnZWRJbjohMCx1c2VyTmFtZTpJZX1dO2Nhc2UgMzpyZXR1cm5bNCwoMCxlZS5vcGVuV2ViUGFnZSkodGhpcy5yZWRpcmVjdGVkTG9naW5VcmwsIlNBU0xvZ29uIix7d2lkdGg6NTAwLGhlaWdodDo2MDB9LEFlKV07Y2FzZSA0OnJldHVybihUZT16LnNlbnQoKSk/dGhpcy5zZXJ2''@;'; + put 'put ''ZXJUeXBlIT09Vy5TZXJ2ZXJUeXBlLlNhc1ZpeWE/WzMsNl06WzQsKDAsSi52ZXJpZnlTYXNWaXlhTG9naW4pKFRlKV06WzIse2lzTG9nZ2VkSW46ITEsdXNlck5hbWU6IiJ9XTtjYXNlIDU6cmV0dXJuIGhlPXouc2VudCgpLFszLDhdO2Nhc2UgNjpyZXR1cm5bNCwoMCxxLnZlcmlmeVNhczlM''@;'; + put 'put ''b2dpbikoVGUpXTtjYXNlIDc6aGU9ei5zZW50KCksei5sYWJlbD04O2Nhc2UgODpyZXR1cm4gRWU9aGUuaXNMb2dnZWRJbixUZS5jbG9zZSgpLEVlP3RoaXMuc2VydmVyVHlwZSE9PVcuU2VydmVyVHlwZS5TYXM5P1szLDEwXTpbNCx0aGlzLnBlcmZvcm1DQVNTZWN1cml0eUNoZWNrKCldOlsz''@;'; + put 'put ''LDEzXTtjYXNlIDk6ei5zZW50KCksei5sYWJlbD0xMDtjYXNlIDEwOnJldHVybls0LHRoaXMuZmV0Y2hVc2VyTmFtZSgpXTtjYXNlIDExOnJldHVybiBPPXouc2VudCgpLnVzZXJOYW1lLFs0LHRoaXMubG9naW5DYWxsYmFjaygpXTtjYXNlIDEyOnJldHVybiB6LnNlbnQoKSxbMix7aXNMb2dn''@;'; + put 'put ''ZWRJbjohMCx1c2VyTmFtZTpPfV07Y2FzZSAxMzpyZXR1cm5bMix7aXNMb2dnZWRJbjohMSx1c2VyTmFtZToiIn1dfX0pfSl9LGRlLnByb3RvdHlwZS5sb2dJbj1mdW5jdGlvbih2ZSxBZSl7cmV0dXJuIGFlKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBrZSxTZSxUZSxFZSxo''@;'; + put 'put ''ZSxPLHosbmU7cmV0dXJuIFkodGhpcyxmdW5jdGlvbih0ZSl7c3dpdGNoKHRlLmxhYmVsKXtjYXNlIDA6cmV0dXJuIGtlPXtfc2VydmljZToiZGVmYXVsdCIsdXNlcm5hbWU6dmUscGFzc3dvcmQ6QWV9LFs0LHRoaXMuY2hlY2tTZXNzaW9uKCldO2Nhc2UgMTpyZXR1cm4gU2U9dGUuc2VudCgp''@;'; + put 'put ''LFRlPVNlLmxvZ2luRm9ybSxFZT1TZS51c2VyTmFtZSxTZS5pc0xvZ2dlZEluP0VlIT09a2UudXNlcm5hbWU/WzMsM106WzQsdGhpcy5sb2dpbkNhbGxiYWNrKCldOlszLDddO2Nhc2UgMjpyZXR1cm4gdGUuc2VudCgpLHRoaXMudXNlck5hbWU9RWUsWzIse2lzTG9nZ2VkSW46ITAsdXNlck5h''@;'; + put 'put ''bWU6dGhpcy51c2VyTmFtZX1dO2Nhc2UgMzpyZXR1cm5bNCx0aGlzLmxvZ091dCgpXTtjYXNlIDQ6cmV0dXJuIHRlLnNlbnQoKSxbNCx0aGlzLmdldE5ld0xvZ2luRm9ybSgpXTtjYXNlIDU6VGU9dGUuc2VudCgpLHRlLmxhYmVsPTY7Y2FzZSA2OnJldHVyblszLDhdO2Nhc2UgNzp0aGlzLnVz''@;'; + put 'put ''ZXJOYW1lPSIiLHRlLmxhYmVsPTg7Y2FzZSA4OnJldHVybls0LHRoaXMuc2VuZExvZ2luUmVxdWVzdChUZSxrZSldO2Nhc2UgOTpyZXR1cm4gaGU9dGUuc2VudCgpLChPPWNlKHRoaXMuc2VydmVyVHlwZSxoZSkpP1szLDE0XTpvZShoZSk/WzQsdGhpcy5nZXRMb2dpbkZvcm0oaGUpXTpbMywx''@;'; + put 'put ''Ml07Y2FzZSAxMDpyZXR1cm4gej10ZS5zZW50KCksWzQsdGhpcy5zZW5kTG9naW5SZXF1ZXN0KHosa2UpXTtjYXNlIDExOmhlPXRlLnNlbnQoKSx0ZS5sYWJlbD0xMjtjYXNlIDEyOnJldHVybls0LHRoaXMuY2hlY2tTZXNzaW9uKCldO2Nhc2UgMTM6cmV0dXJuIG5lPXRlLnNlbnQoKSwoTz1u''@;'; + put 'put ''ZS5pc0xvZ2dlZEluKSYmKHRoaXMudXNlck5hbWU9bmUudXNlck5hbWUpLFszLDE1XTtjYXNlIDE0OnRoaXMudXNlck5hbWU9a2UudXNlcm5hbWUsdGUubGFiZWw9MTU7Y2FzZSAxNTpyZXR1cm4gTz90aGlzLnNlcnZlclR5cGUhPT1XLlNlcnZlclR5cGUuU2FzOT9bMywxN106WzQsdGhpcy5w''@;'; + put 'put ''ZXJmb3JtQ0FTU2VjdXJpdHlDaGVjaygpXTpbMywxOF07Y2FzZSAxNjp0ZS5zZW50KCksdGUubGFiZWw9MTc7Y2FzZSAxNzpyZXR1cm4gdGhpcy5sb2dpbkNhbGxiYWNrKCksWzMsMTldO2Nhc2UgMTg6dGhpcy51c2VyTmFtZT0iIix0ZS5sYWJlbD0xOTtjYXNlIDE5OnJldHVyblsyLHtpc0xv''@;'; + put 'put ''Z2dlZEluOk8sdXNlck5hbWU6dGhpcy51c2VyTmFtZX1dfX0pfSl9LGRlLnByb3RvdHlwZS5wZXJmb3JtQ0FTU2VjdXJpdHlDaGVjaz1mdW5jdGlvbigpe3JldHVybiBhZSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgdmU7cmV0dXJuIFkodGhpcyxmdW5jdGlvbihBZSl7c3dp''@;'; + put 'put ''dGNoKEFlLmxhYmVsKXtjYXNlIDA6cmV0dXJuIHZlPSIiLmNvbmNhdCh0aGlzLnNlcnZlclVybCwiL1NBU1N0b3JlZFByb2Nlc3Mval9zcHJpbmdfY2FzX3NlY3VyaXR5X2NoZWNrIiksWzQsdGhpcy5yZXF1ZXN0Q2xpZW50LmdldCgiL1NBU0xvZ29uL2xvZ2luP3NlcnZpY2U9Ii5jb25jYXQo''@;'; + put 'put ''dmUpLHZvaWQgMCldO2Nhc2UgMTpyZXR1cm4gQWUuc2VudCgpLFsyXX19KX0pfSxkZS5wcm90b3R5cGUuc2VuZExvZ2luUmVxdWVzdD1mdW5jdGlvbih2ZSxBZSl7cmV0dXJuIGFlKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBJZSxUZTtyZXR1cm4gWSh0aGlzLGZ1bmN0aW9u''@;'; + put 'put ''KEVlKXtzd2l0Y2goRWUubGFiZWwpe2Nhc2UgMDpyZXR1cm4gdGhpcy5zZXJ2ZXJUeXBlIT09Vy5TZXJ2ZXJUeXBlLlNhc2pzP1szLDJdOls0LHRoaXMucmVxdWVzdENsaWVudC5wb3N0KHRoaXMubG9naW5Vcmwse3VzZXJuYW1lOkFlLnVzZXJuYW1lLHBhc3N3b3JkOkFlLnBhc3N3b3JkfSx2''@;'; + put 'put ''b2lkIDApXTtjYXNlIDE6Y2FzZSAzOnJldHVyblsyLEVlLnNlbnQoKS5yZXN1bHRdO2Nhc2UgMjpmb3IoSWUgaW4gdmUpQWVbSWVdPXZlW0llXTtyZXR1cm4gVGU9KDAsTi5zZXJpYWxpemUpKEFlKSxbNCx0aGlzLnJlcXVlc3RDbGllbnQucG9zdCh0aGlzLmxvZ2luVXJsLFRlLHZvaWQgMCwi''@;'; + put 'put ''dGV4dC9wbGFpbiIseyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiLEFjY2VwdDoiKi8qIn0pXX19KX0pfSxkZS5wcm90b3R5cGUuY2hlY2tTZXNzaW9uPWZ1bmN0aW9uKCl7cmV0dXJuIGFlKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3Zh''@;'; + put 'put ''ciB2ZSxBZSxrZSxTZTtyZXR1cm4gWSh0aGlzLGZ1bmN0aW9uKEllKXtzd2l0Y2goSWUubGFiZWwpe2Nhc2UgMDpyZXR1cm5bNCx0aGlzLmZldGNoVXNlck5hbWUoKV07Y2FzZSAxOnJldHVybiB2ZT1JZS5zZW50KCksa2U9dmUudXNlck5hbWUsU2U9bnVsbCwoQWU9dmUuaXNMb2dnZWRJbik/''@;'; + put 'put ''WzMsNF06WzQsdGhpcy5sb2dPdXQoKV07Y2FzZSAyOnJldHVybiBJZS5zZW50KCksWzQsdGhpcy5nZXROZXdMb2dpbkZvcm0oKV07Y2FzZSAzOlNlPUllLnNlbnQoKSxJZS5sYWJlbD00O2Nhc2UgNDpyZXR1cm5bMixQcm9taXNlLnJlc29sdmUoe2lzTG9nZ2VkSW46QWUsdXNlck5hbWU6a2Uu''@;'; + put 'put ''dG9Mb3dlckNhc2UoKSxsb2dpbkZvcm06U2V9KV19fSl9KX0sZGUucHJvdG90eXBlLmdldE5ld0xvZ2luRm9ybT1mdW5jdGlvbigpe3JldHVybiBhZSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgdmU7cmV0dXJuIFkodGhpcyxmdW5jdGlvbihBZSl7c3dpdGNoKEFlLmxhYmVs''@;'; + put 'put ''KXtjYXNlIDA6cmV0dXJuIHRoaXMuc2VydmVyVHlwZT09PVcuU2VydmVyVHlwZS5TYXNqcz9bMix0aGlzLnJlcXVlc3RDbGllbnQuZ2V0KCIvIix2b2lkIDApLnRoZW4oZnVuY3Rpb24oa2Upe3ZhciBTZSxUZT1udWxsPT09KFNlPS88c2NyaXB0PmRvY3VtZW50LmNvb2tpZSA9ICcoWFNSRi1U''@;'; + put 'put ''T0tFTj0uKjsgTWF4LUFnZT04NjQwMDsgU2FtZVNpdGU9U3RyaWN0OyBQYXRoPVwvOyknPFwvc2NyaXB0Pi8uZXhlYyhrZS5yZXN1bHQpKXx8dm9pZCAwPT09U2U/dm9pZCAwOlNlWzFdO1RlJiYoZG9jdW1lbnQuY29va2llPVRlKX0pXTpbNCx0aGlzLnJlcXVlc3RDbGllbnQuZ2V0KHRoaXMu''@;'; + put 'put ''bG9naW5VcmwucmVwbGFjZSgiLmRvIiwiIiksdm9pZCAwLCJ0ZXh0L3BsYWluIildO2Nhc2UgMTpyZXR1cm4gdmU9QWUuc2VudCgpLnJlc3VsdCxbNCx0aGlzLmdldExvZ2luRm9ybSh2ZSldO2Nhc2UgMjpyZXR1cm5bMixBZS5zZW50KCldfX0pfSl9LGRlLnByb3RvdHlwZS5mZXRjaFVzZXJO''@;'; + put 'put ''YW1lPWZ1bmN0aW9uKCl7cmV0dXJuIGFlKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciB2ZSxBZSxrZSxTZTtyZXR1cm4gWSh0aGlzLGZ1bmN0aW9uKEllKXtzd2l0Y2goSWUubGFiZWwpe2Nhc2UgMDpyZXR1cm4gdmU9IiIuY29uY2F0KHRoaXMuc2VydmVyVXJsLHRoaXMuc2Vy''@;'; + put 'put ''dmVyVHlwZT09PVcuU2VydmVyVHlwZS5TYXNWaXlhPyIvaWRlbnRpdGllcy91c2Vycy9AY3VycmVudFVzZXIiOnRoaXMuc2VydmVyVHlwZT09PVcuU2VydmVyVHlwZS5TYXM5PyIvU0FTU3RvcmVkUHJvY2VzcyI6Ii9TQVNqc0FwaS9zZXNzaW9uIiksWzQsdGhpcy5yZXF1ZXN0Q2xpZW50Lmdl''@;'; + put 'put ''dCh2ZSx2b2lkIDAsInRleHQvcGxhaW4iKS5jYXRjaChmdW5jdGlvbihUZSl7cmV0dXJue3Jlc3VsdDoiYXV0aEVyciJ9fSldO2Nhc2UgMTpyZXR1cm4gQWU9SWUuc2VudCgpLnJlc3VsdCxTZT0oa2U9ImF1dGhFcnIiIT09QWUpP3RoaXMuZXh0cmFjdFVzZXJOYW1lKEFlKToiIixrZT9bMywz''@;'; + put 'put ''XTpbNCx0aGlzLmxvZ091dCgpXTtjYXNlIDI6SWUuc2VudCgpLEllLmxhYmVsPTM7Y2FzZSAzOnJldHVyblsyLHtpc0xvZ2dlZEluOmtlLHVzZXJOYW1lOlNlfV19fSl9KX0sZGUucHJvdG90eXBlLmdldExvZ2luRm9ybT1mdW5jdGlvbih2ZSl7dmFyIEFlPS88Zm9ybS4rYWN0aW9uPSIoLipM''@;'; + put 'put ''b2dvblteIl0qKS4qPi8uZXhlYyh2ZSksa2U9e307aWYoQWUmJkFlLmxlbmd0aCl7dGhpcy5zZXRMb2dpblVybChBZSk7dmFyIFNlPXZlLm1hdGNoKC88aW5wdXQuKiJoaWRkZW4iW14+XSo+L2cpO1NlJiZTZS5mb3JFYWNoKGZ1bmN0aW9uKEllKXt2YXIgVGU9SWUubWF0Y2goL25hbWU9Iihb''@;'; + put 'put ''XiJdKikiXHN2YWx1ZT0iKFteIl0qKS8pO1RlJiZUZS5sZW5ndGgmJihrZVtUZVsxXV09VGVbMl0pfSl9cmV0dXJuIE9iamVjdC5rZXlzKGtlKS5sZW5ndGg/a2U6bnVsbH0sZGUucHJvdG90eXBlLmxvZ091dD1mdW5jdGlvbigpe3JldHVybiBhZSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rp''@;'; + put 'put ''b24oKXtyZXR1cm4gWSh0aGlzLGZ1bmN0aW9uKHZlKXtyZXR1cm4gdGhpcy5yZXF1ZXN0Q2xpZW50LmNsZWFyQ3NyZlRva2VucygpLFsyLHRoaXMucmVxdWVzdENsaWVudC5nZXQodGhpcy5sb2dvdXRVcmwsdm9pZCAwKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuITB9KV19KX0pfSxkZX0oKTtR''@;'; + put 'put ''LkF1dGhNYW5hZ2VyPXNlO3ZhciBvZT1mdW5jdGlvbihkZSl7cmV0dXJuL0FuIGVycm9yIG9jY3VycmVkIHdoaWxlIHRoZSBzeXN0ZW0gd2FzIHZlcmlmeWluZyB5b3VyIGNyZWRlbnRpYWxzLiBQbGVhc2UgZW50ZXIgeW91ciBjcmVkZW50aWFscyBhZ2Fpbi4vZ20udGVzdChkZSl9LGNlPWZ1''@;'; + put 'put ''bmN0aW9uKGRlLHZlKXtyZXR1cm4gZGU9PT1XLlNlcnZlclR5cGUuU2FzanM/bnVsbD09dmU/dm9pZCAwOnZlLmxvZ2dlZGluOi9Zb3UgaGF2ZSBzaWduZWQgaW4vZ20udGVzdCh2ZSl9fSw1NzpmdW5jdGlvbihVLFEsWil7InVzZSBzdHJpY3QiO3ZhciBpZT10aGlzJiZ0aGlzLl9fYXdhaXRl''@;'; + put 'put ''cnx8ZnVuY3Rpb24oVyxOLGVlLHEpe3JldHVybiBuZXcoZWV8fChlZT1Qcm9taXNlKSkoZnVuY3Rpb24oSixzZSl7ZnVuY3Rpb24gb2UodmUpe3RyeXtkZShxLm5leHQodmUpKX1jYXRjaChBZSl7c2UoQWUpfX1mdW5jdGlvbiBjZSh2ZSl7dHJ5e2RlKHEudGhyb3codmUpKX1jYXRjaChBZSl7''@;'; + put 'put ''c2UoQWUpfX1mdW5jdGlvbiBkZSh2ZSl7dmFyIEFlO3ZlLmRvbmU/Sih2ZS52YWx1ZSk6KEFlPXZlLnZhbHVlLEFlIGluc3RhbmNlb2YgZWU/QWU6bmV3IGVlKGZ1bmN0aW9uKGtlKXtrZShBZSl9KSkudGhlbihvZSxjZSl9ZGUoKHE9cS5hcHBseShXLE58fFtdKSkubmV4dCgpKX0pfSxhZT10''@;'; + put 'put ''aGlzJiZ0aGlzLl9fZ2VuZXJhdG9yfHxmdW5jdGlvbihXLE4pe3ZhciBlZSxxLEosc2Usb2U9e2xhYmVsOjAsc2VudDpmdW5jdGlvbigpe2lmKDEmSlswXSl0aHJvdyBKWzFdO3JldHVybiBKWzFdfSx0cnlzOltdLG9wczpbXX07cmV0dXJuIHNlPXtuZXh0OmNlKDApLHRocm93OmNlKDEpLHJl''@;'; + put 'put ''dHVybjpjZSgyKX0sImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmKHNlW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pLHNlO2Z1bmN0aW9uIGNlKGRlKXtyZXR1cm4gZnVuY3Rpb24odmUpe3JldHVybiBmdW5jdGlvbihBZSl7aWYoZWUpdGhyb3cgbmV3IFR5cGVF''@;'; + put 'put ''cnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLiIpO2Zvcig7b2U7KXRyeXtpZihlZT0xLHEmJihKPTImQWVbMF0/cS5yZXR1cm46QWVbMF0/cS50aHJvd3x8KChKPXEucmV0dXJuKSYmSi5jYWxsKHEpLDApOnEubmV4dCkmJiEoSj1KLmNhbGwocSxBZVsxXSkpLmRvbmUpcmV0''@;'; + put 'put ''dXJuIEo7c3dpdGNoKHE9MCxKJiYoQWU9WzImQWVbMF0sSi52YWx1ZV0pLEFlWzBdKXtjYXNlIDA6Y2FzZSAxOko9QWU7YnJlYWs7Y2FzZSA0OnJldHVybiBvZS5sYWJlbCsrLHt2YWx1ZTpBZVsxXSxkb25lOiExfTtjYXNlIDU6b2UubGFiZWwrKyxxPUFlWzFdLEFlPVswXTtjb250aW51ZTtj''@;'; + put 'put ''YXNlIDc6QWU9b2Uub3BzLnBvcCgpLG9lLnRyeXMucG9wKCk7Y29udGludWU7ZGVmYXVsdDppZighKChKPShKPW9lLnRyeXMpLmxlbmd0aD4wJiZKW0oubGVuZ3RoLTFdKXx8NiE9PUFlWzBdJiYyIT09QWVbMF0pKXtvZT0wO2NvbnRpbnVlfWlmKDM9PT1BZVswXSYmKCFKfHxBZVsxXT5KWzBd''@;'; + put 'put ''JiZBZVsxXTxKWzNdKSl7b2UubGFiZWw9QWVbMV07YnJlYWt9aWYoNj09PUFlWzBdJiZvZS5sYWJlbDxKWzFdKXtvZS5sYWJlbD1KWzFdLEo9QWU7YnJlYWt9aWYoSiYmb2UubGFiZWw8SlsyXSl7b2UubGFiZWw9SlsyXSxvZS5vcHMucHVzaChBZSk7YnJlYWt9SlsyXSYmb2Uub3BzLnBvcCgp''@;'; + put 'put ''LG9lLnRyeXMucG9wKCk7Y29udGludWV9QWU9Ti5jYWxsKFcsb2UpfWNhdGNoKGtlKXtBZT1bNixrZV0scT0wfWZpbmFsbHl7ZWU9Sj0wfWlmKDUmQWVbMF0pdGhyb3cgQWVbMV07cmV0dXJue3ZhbHVlOkFlWzBdP0FlWzFdOnZvaWQgMCxkb25lOiEwfX0oW2RlLHZlXSl9fX07T2JqZWN0LmRl''@;'; + put 'put ''ZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLFEuZ2V0QWNjZXNzVG9rZW5Gb3JTYXNqcz12b2lkIDA7dmFyIFk9Wig5Nzc4KTtRLmdldEFjY2Vzc1Rva2VuRm9yU2FzanM9ZnVuY3Rpb24oVyxOLGVlKXtyZXR1cm4gaWUodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9u''@;'; + put 'put ''KCl7cmV0dXJuIGFlKHRoaXMsZnVuY3Rpb24oSil7c3dpdGNoKEoubGFiZWwpe2Nhc2UgMDpyZXR1cm5bNCxXLnBvc3QoIi9TQVNqc0FwaS9hdXRoL3Rva2VuIix7Y2xpZW50SWQ6Tixjb2RlOmVlfSx2b2lkIDApLnRoZW4oZnVuY3Rpb24oc2Upe3ZhciBvZT1zZS5yZXN1bHQ7cmV0dXJue2Fj''@;'; + put 'put ''Y2Vzc190b2tlbjpvZS5hY2Nlc3NUb2tlbixyZWZyZXNoX3Rva2VuOm9lLnJlZnJlc2hUb2tlbn19KS5jYXRjaChmdW5jdGlvbihzZSl7dGhyb3coMCxZLnByZWZpeE1lc3NhZ2UpKHNlLCJFcnJvciB3aGlsZSBnZXR0aW5nIGFjY2VzcyB0b2tlbi4gIil9KV07Y2FzZSAxOnJldHVyblsyLEou''@;'; + put 'put ''c2VudCgpXX19KX0pfX0sMzU2OTpmdW5jdGlvbihVLFEsWil7InVzZSBzdHJpY3QiO3ZhciBpZT1aKDg3NjQpLkJ1ZmZlcixhZT10aGlzJiZ0aGlzLl9fYXdhaXRlcnx8ZnVuY3Rpb24oZWUscSxKLHNlKXtyZXR1cm4gbmV3KEp8fChKPVByb21pc2UpKShmdW5jdGlvbihvZSxjZSl7ZnVuY3Rp''@;'; + put 'put ''b24gZGUoa2Upe3RyeXtBZShzZS5uZXh0KGtlKSl9Y2F0Y2goU2Upe2NlKFNlKX19ZnVuY3Rpb24gdmUoa2Upe3RyeXtBZShzZS50aHJvdyhrZSkpfWNhdGNoKFNlKXtjZShTZSl9fWZ1bmN0aW9uIEFlKGtlKXt2YXIgU2U7a2UuZG9uZT9vZShrZS52YWx1ZSk6KFNlPWtlLnZhbHVlLFNlIGlu''@;'; + put 'put ''c3RhbmNlb2YgSj9TZTpuZXcgSihmdW5jdGlvbihJZSl7SWUoU2UpfSkpLnRoZW4oZGUsdmUpfUFlKChzZT1zZS5hcHBseShlZSxxfHxbXSkpLm5leHQoKSl9KX0sWT10aGlzJiZ0aGlzLl9fZ2VuZXJhdG9yfHxmdW5jdGlvbihlZSxxKXt2YXIgSixzZSxvZSxjZSxkZT17bGFiZWw6MCxzZW50''@;'; + put 'put ''OmZ1bmN0aW9uKCl7aWYoMSZvZVswXSl0aHJvdyBvZVsxXTtyZXR1cm4gb2VbMV19LHRyeXM6W10sb3BzOltdfTtyZXR1cm4gY2U9e25leHQ6dmUoMCksdGhyb3c6dmUoMSkscmV0dXJuOnZlKDIpfSwiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYoY2VbU3ltYm9sLml0ZXJhdG9yXT1mdW5j''@;'; + put 'put ''dGlvbigpe3JldHVybiB0aGlzfSksY2U7ZnVuY3Rpb24gdmUoQWUpe3JldHVybiBmdW5jdGlvbihrZSl7cmV0dXJuIGZ1bmN0aW9uKFNlKXtpZihKKXRocm93IG5ldyBUeXBlRXJyb3IoIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy4iKTtmb3IoO2RlOyl0cnl7aWYoSj0xLHNlJiYo''@;'; + put 'put ''b2U9MiZTZVswXT9zZS5yZXR1cm46U2VbMF0/c2UudGhyb3d8fCgob2U9c2UucmV0dXJuKSYmb2UuY2FsbChzZSksMCk6c2UubmV4dCkmJiEob2U9b2UuY2FsbChzZSxTZVsxXSkpLmRvbmUpcmV0dXJuIG9lO3N3aXRjaChzZT0wLG9lJiYoU2U9WzImU2VbMF0sb2UudmFsdWVdKSxTZVswXSl7''@;'; + put 'put ''Y2FzZSAwOmNhc2UgMTpvZT1TZTticmVhaztjYXNlIDQ6cmV0dXJuIGRlLmxhYmVsKysse3ZhbHVlOlNlWzFdLGRvbmU6ITF9O2Nhc2UgNTpkZS5sYWJlbCsrLHNlPVNlWzFdLFNlPVswXTtjb250aW51ZTtjYXNlIDc6U2U9ZGUub3BzLnBvcCgpLGRlLnRyeXMucG9wKCk7Y29udGludWU7ZGVm''@;'; + put 'put ''YXVsdDppZighKChvZT0ob2U9ZGUudHJ5cykubGVuZ3RoPjAmJm9lW29lLmxlbmd0aC0xXSl8fDYhPT1TZVswXSYmMiE9PVNlWzBdKSl7ZGU9MDtjb250aW51ZX1pZigzPT09U2VbMF0mJighb2V8fFNlWzFdPm9lWzBdJiZTZVsxXTxvZVszXSkpe2RlLmxhYmVsPVNlWzFdO2JyZWFrfWlmKDY9''@;'; + put 'put ''PT1TZVswXSYmZGUubGFiZWw8b2VbMV0pe2RlLmxhYmVsPW9lWzFdLG9lPVNlO2JyZWFrfWlmKG9lJiZkZS5sYWJlbDxvZVsyXSl7ZGUubGFiZWw9b2VbMl0sZGUub3BzLnB1c2goU2UpO2JyZWFrfW9lWzJdJiZkZS5vcHMucG9wKCksZGUudHJ5cy5wb3AoKTtjb250aW51ZX1TZT1xLmNhbGwo''@;'; + put 'put ''ZWUsZGUpfWNhdGNoKEllKXtTZT1bNixJZV0sc2U9MH1maW5hbGx5e0o9b2U9MH1pZig1JlNlWzBdKXRocm93IFNlWzFdO3JldHVybnt2YWx1ZTpTZVswXT9TZVsxXTp2b2lkIDAsZG9uZTohMH19KFtBZSxrZV0pfX19O09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFs''@;'; + put 'put ''dWU6ITB9KSxRLmdldEFjY2Vzc1Rva2VuRm9yVml5YT12b2lkIDA7dmFyIFc9Wig5Nzc4KSxOPVooMTM5NSk7US5nZXRBY2Nlc3NUb2tlbkZvclZpeWE9ZnVuY3Rpb24oZWUscSxKLHNlKXtyZXR1cm4gYWUodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIG9lLGNlLGRlO3JldHVy''@;'; + put 'put ''biBZKHRoaXMsZnVuY3Rpb24odmUpe3N3aXRjaCh2ZS5sYWJlbCl7Y2FzZSAwOnJldHVybiBvZT12b2lkIDA9PT1pZT9idG9hKHErIjoiK0opOmllLmZyb20ocSsiOiIrSikudG9TdHJpbmcoImJhc2U2NCIpLGNlPXtBdXRob3JpemF0aW9uOiJCYXNpYyAiK29lLEFjY2VwdDoiYXBwbGljYXRp''@;'; + put 'put ''b24vanNvbiJ9LGRlPW5ldyBVUkxTZWFyY2hQYXJhbXMoe2dyYW50X3R5cGU6ImF1dGhvcml6YXRpb25fY29kZSIsY29kZTpzZX0pLFs0LGVlLnBvc3QoIi9TQVNMb2dvbi9vYXV0aC90b2tlbiIsZGUsdm9pZCAwLCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiLGNlKS50aGVu''@;'; + put 'put ''KGZ1bmN0aW9uKEFlKXtyZXR1cm4gQWUucmVzdWx0fSkuY2F0Y2goZnVuY3Rpb24oQWUpe3Rocm93IEFlIGluc3RhbmNlb2YgTi5DZXJ0aWZpY2F0ZUVycm9yP0FlOigwLFcucHJlZml4TWVzc2FnZSkoQWUsIkVycm9yIHdoaWxlIGdldHRpbmcgYWNjZXNzIHRva2VuLiAiKX0pXTtjYXNlIDE6''@;'; + put 'put ''cmV0dXJuWzIsdmUuc2VudCgpXX19KX0pfX0sNzA0OmZ1bmN0aW9uKFUsUSxaKXsidXNlIHN0cmljdCI7dmFyIGllPVooNDE1NSksYWU9Wig1MTA4KSxZPXRoaXMmJnRoaXMuX19hd2FpdGVyfHxmdW5jdGlvbihzZSxvZSxjZSxkZSl7cmV0dXJuIG5ldyhjZXx8KGNlPVByb21pc2UpKShmdW5j''@;'; + put 'put ''dGlvbih2ZSxBZSl7ZnVuY3Rpb24ga2UoVGUpe3RyeXtJZShkZS5uZXh0KFRlKSl9Y2F0Y2goRWUpe0FlKEVlKX19ZnVuY3Rpb24gU2UoVGUpe3RyeXtJZShkZS50aHJvdyhUZSkpfWNhdGNoKEVlKXtBZShFZSl9fWZ1bmN0aW9uIEllKFRlKXt2YXIgRWU7VGUuZG9uZT92ZShUZS52YWx1ZSk6''@;'; + put 'put ''KEVlPVRlLnZhbHVlLEVlIGluc3RhbmNlb2YgY2U/RWU6bmV3IGNlKGZ1bmN0aW9uKGhlKXtoZShFZSl9KSkudGhlbihrZSxTZSl9SWUoKGRlPWRlLmFwcGx5KHNlLG9lfHxbXSkpLm5leHQoKSl9KX0sVz10aGlzJiZ0aGlzLl9fZ2VuZXJhdG9yfHxmdW5jdGlvbihzZSxvZSl7dmFyIGNlLGRl''@;'; + put 'put ''LHZlLEFlLGtlPXtsYWJlbDowLHNlbnQ6ZnVuY3Rpb24oKXtpZigxJnZlWzBdKXRocm93IHZlWzFdO3JldHVybiB2ZVsxXX0sdHJ5czpbXSxvcHM6W119O3JldHVybiBBZT17bmV4dDpTZSgwKSx0aHJvdzpTZSgxKSxyZXR1cm46U2UoMil9LCJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJihB''@;'; + put 'put ''ZVtTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSxBZTtmdW5jdGlvbiBTZShJZSl7cmV0dXJuIGZ1bmN0aW9uKFRlKXtyZXR1cm4gZnVuY3Rpb24oRWUpe2lmKGNlKXRocm93IG5ldyBUeXBlRXJyb3IoIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy4iKTtm''@;'; + put 'put ''b3IoO2tlOyl0cnl7aWYoY2U9MSxkZSYmKHZlPTImRWVbMF0/ZGUucmV0dXJuOkVlWzBdP2RlLnRocm93fHwoKHZlPWRlLnJldHVybikmJnZlLmNhbGwoZGUpLDApOmRlLm5leHQpJiYhKHZlPXZlLmNhbGwoZGUsRWVbMV0pKS5kb25lKXJldHVybiB2ZTtzd2l0Y2goZGU9MCx2ZSYmKEVlPVsy''@;'; + put 'put ''JkVlWzBdLHZlLnZhbHVlXSksRWVbMF0pe2Nhc2UgMDpjYXNlIDE6dmU9RWU7YnJlYWs7Y2FzZSA0OnJldHVybiBrZS5sYWJlbCsrLHt2YWx1ZTpFZVsxXSxkb25lOiExfTtjYXNlIDU6a2UubGFiZWwrKyxkZT1FZVsxXSxFZT1bMF07Y29udGludWU7Y2FzZSA3OkVlPWtlLm9wcy5wb3AoKSxr''@;'; + put 'put ''ZS50cnlzLnBvcCgpO2NvbnRpbnVlO2RlZmF1bHQ6aWYoISgodmU9KHZlPWtlLnRyeXMpLmxlbmd0aD4wJiZ2ZVt2ZS5sZW5ndGgtMV0pfHw2IT09RWVbMF0mJjIhPT1FZVswXSkpe2tlPTA7Y29udGludWV9aWYoMz09PUVlWzBdJiYoIXZlfHxFZVsxXT52ZVswXSYmRWVbMV08dmVbM10pKXtr''@;'; + put 'put ''ZS5sYWJlbD1FZVsxXTticmVha31pZig2PT09RWVbMF0mJmtlLmxhYmVsPHZlWzFdKXtrZS5sYWJlbD12ZVsxXSx2ZT1FZTticmVha31pZih2ZSYma2UubGFiZWw8dmVbMl0pe2tlLmxhYmVsPXZlWzJdLGtlLm9wcy5wdXNoKEVlKTticmVha312ZVsyXSYma2Uub3BzLnBvcCgpLGtlLnRyeXMu''@;'; + put 'put ''cG9wKCk7Y29udGludWV9RWU9b2UuY2FsbChzZSxrZSl9Y2F0Y2goaGUpe0VlPVs2LGhlXSxkZT0wfWZpbmFsbHl7Y2U9dmU9MH1pZig1JkVlWzBdKXRocm93IEVlWzFdO3JldHVybnt2YWx1ZTpFZVswXT9FZVsxXTp2b2lkIDAsZG9uZTohMH19KFtJZSxUZV0pfX19O09iamVjdC5kZWZpbmVQ''@;'; + put 'put ''cm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxRLmdldFRva2Vucz12b2lkIDA7dmFyIE49Wig2Nzk5KSxlZT1aKDM5MDApLHE9WigzNjYpLEo9WigyNDkpO1EuZ2V0VG9rZW5zPWZ1bmN0aW9uKHNlLG9lLGNlKXtyZXR1cm4gdm9pZCAwPT09Y2UmJihjZT1lZS5TZXJ2ZXJUeXBl''@;'; + put 'put ''LlNhc1ZpeWEpLFkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGRlLHZlLEFlLGtlLFNlLFRlLEVlO3JldHVybiBXKHRoaXMsZnVuY3Rpb24oaGUpe3N3aXRjaChoZS5sYWJlbCl7Y2FzZSAwOmlmKGRlPWllLmxvZ2dlcnx8YWUsQWU9b2UucmVmcmVzaF90b2tlbixrZT1vZS5j''@;'; + put 'put ''bGllbnQsU2U9b2Uuc2VjcmV0LCEoMCxOLmlzQWNjZXNzVG9rZW5FeHBpcmluZykodmU9b2UuYWNjZXNzX3Rva2VuKSYmISgwLE4uaXNSZWZyZXNoVG9rZW5FeHBpcmluZykoQWUpKXJldHVyblszLDVdO2lmKCgwLE4uaGFzVG9rZW5FeHBpcmVkKShBZSkpdGhyb3cgZGUuZXJyb3IoIlVuYWJs''@;'; + put 'put ''ZSB0byBvYnRhaW4gbmV3IGFjY2VzcyB0b2tlbi4gWW91ciByZWZyZXNoIHRva2VuIGhhcyBleHBpcmVkLiIpLG5ldyBFcnJvcigiVW5hYmxlIHRvIG9idGFpbiBuZXcgYWNjZXNzIHRva2VuLiBZb3VyIHJlZnJlc2ggdG9rZW4gaGFzIGV4cGlyZWQuIik7cmV0dXJuIGRlLmluZm8oIlJlZnJl''@;'; + put 'put ''c2hpbmcgYWNjZXNzIGFuZCByZWZyZXNoIHRva2Vucy4iKSxjZSE9PWVlLlNlcnZlclR5cGUuU2FzVml5YT9bMywyXTpbNCwoMCxxLnJlZnJlc2hUb2tlbnNGb3JWaXlhKShzZSxrZSxTZSxBZSldO2Nhc2UgMTpyZXR1cm4gRWU9aGUuc2VudCgpLFszLDRdO2Nhc2UgMjpyZXR1cm5bNCwoMCxK''@;'; + put 'put ''LnJlZnJlc2hUb2tlbnNGb3JTYXNqcykoc2UsQWUpXTtjYXNlIDM6RWU9aGUuc2VudCgpLGhlLmxhYmVsPTQ7Y2FzZSA0OnZlPShUZT1FZSkuYWNjZXNzX3Rva2VuLEFlPVRlLnJlZnJlc2hfdG9rZW4saGUubGFiZWw9NTtjYXNlIDU6cmV0dXJuWzIse2FjY2Vzc190b2tlbjp2ZSxyZWZyZXNo''@;'; + put 'put ''X3Rva2VuOkFlLGNsaWVudDprZSxzZWNyZXQ6U2V9XX19KX0pfX0sMTUyNzpmdW5jdGlvbihVLFEsWil7InVzZSBzdHJpY3QiO3ZhciBpZT10aGlzJiZ0aGlzLl9fY3JlYXRlQmluZGluZ3x8KE9iamVjdC5jcmVhdGU/ZnVuY3Rpb24oWSxXLE4sZWUpe3ZvaWQgMD09PWVlJiYoZWU9TiksT2Jq''@;'; + put 'put ''ZWN0LmRlZmluZVByb3BlcnR5KFksZWUse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFdbTl19fSl9OmZ1bmN0aW9uKFksVyxOLGVlKXt2b2lkIDA9PT1lZSYmKGVlPU4pLFlbZWVdPVdbTl19KSxhZT10aGlzJiZ0aGlzLl9fZXhwb3J0U3Rhcnx8ZnVuY3Rpb24oWSxXKXtm''@;'; + put 'put ''b3IodmFyIE4gaW4gWSkiZGVmYXVsdCI9PT1OfHxPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoVyxOKXx8aWUoVyxZLE4pfTtPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksYWUoWigyODUxKSxRKSxhZShaKDkwOTcpLFEpLGFlKFoo''@;'; + put 'put ''OTE2NiksUSl9LDkwOTc6KFUsUSk9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLFEuaXNBdXRob3JpemVGb3JtUmVxdWlyZWQ9dm9pZCAwLFEuaXNBdXRob3JpemVGb3JtUmVxdWlyZWQ9ZnVuY3Rpb24oWil7cmV0dXJuLzxm''@;'; + put 'put ''b3JtLithY3Rpb249IiguKkxvZ29uXC9vYXV0aFwvYXV0aG9yaXplW14iXSopLio+L2dtLnRlc3QoWil9fSw5MTY2OihVLFEpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxRLmlzTG9nSW5SZXF1aXJlZD12b2lkIDAsUS5p''@;'; + put 'put ''c0xvZ0luUmVxdWlyZWQ9ZnVuY3Rpb24oWil7cmV0dXJuLzxmb3JtLithY3Rpb249IiguKkxvZ29uW14iXSopLio+L2dtLnRlc3QoWil9fSw1NDE4OmZ1bmN0aW9uKFUsUSxaKXsidXNlIHN0cmljdCI7dmFyIGllPXRoaXMmJnRoaXMuX19hd2FpdGVyfHxmdW5jdGlvbihOLGVlLHEsSil7cmV0''@;'; + put 'put ''dXJuIG5ldyhxfHwocT1Qcm9taXNlKSkoZnVuY3Rpb24oc2Usb2Upe2Z1bmN0aW9uIGNlKEFlKXt0cnl7dmUoSi5uZXh0KEFlKSl9Y2F0Y2goa2Upe29lKGtlKX19ZnVuY3Rpb24gZGUoQWUpe3RyeXt2ZShKLnRocm93KEFlKSl9Y2F0Y2goa2Upe29lKGtlKX19ZnVuY3Rpb24gdmUoQWUpe3Zh''@;'; + put 'put ''ciBrZTtBZS5kb25lP3NlKEFlLnZhbHVlKTooa2U9QWUudmFsdWUsa2UgaW5zdGFuY2VvZiBxP2tlOm5ldyBxKGZ1bmN0aW9uKFNlKXtTZShrZSl9KSkudGhlbihjZSxkZSl9dmUoKEo9Si5hcHBseShOLGVlfHxbXSkpLm5leHQoKSl9KX0sYWU9dGhpcyYmdGhpcy5fX2dlbmVyYXRvcnx8ZnVu''@;'; + put 'put ''Y3Rpb24oTixlZSl7dmFyIHEsSixzZSxvZSxjZT17bGFiZWw6MCxzZW50OmZ1bmN0aW9uKCl7aWYoMSZzZVswXSl0aHJvdyBzZVsxXTtyZXR1cm4gc2VbMV19LHRyeXM6W10sb3BzOltdfTtyZXR1cm4gb2U9e25leHQ6ZGUoMCksdGhyb3c6ZGUoMSkscmV0dXJuOmRlKDIpfSwiZnVuY3Rpb24i''@;'; + put 'put ''PT10eXBlb2YgU3ltYm9sJiYob2VbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSksb2U7ZnVuY3Rpb24gZGUodmUpe3JldHVybiBmdW5jdGlvbihBZSl7cmV0dXJuIGZ1bmN0aW9uKGtlKXtpZihxKXRocm93IG5ldyBUeXBlRXJyb3IoIkdlbmVyYXRvciBpcyBhbHJl''@;'; + put 'put ''YWR5IGV4ZWN1dGluZy4iKTtmb3IoO2NlOyl0cnl7aWYocT0xLEomJihzZT0yJmtlWzBdP0oucmV0dXJuOmtlWzBdP0oudGhyb3d8fCgoc2U9Si5yZXR1cm4pJiZzZS5jYWxsKEopLDApOkoubmV4dCkmJiEoc2U9c2UuY2FsbChKLGtlWzFdKSkuZG9uZSlyZXR1cm4gc2U7c3dpdGNoKEo9MCxz''@;'; + put 'put ''ZSYmKGtlPVsyJmtlWzBdLHNlLnZhbHVlXSksa2VbMF0pe2Nhc2UgMDpjYXNlIDE6c2U9a2U7YnJlYWs7Y2FzZSA0OnJldHVybiBjZS5sYWJlbCsrLHt2YWx1ZTprZVsxXSxkb25lOiExfTtjYXNlIDU6Y2UubGFiZWwrKyxKPWtlWzFdLGtlPVswXTtjb250aW51ZTtjYXNlIDc6a2U9Y2Uub3Bz''@;'; + put 'put ''LnBvcCgpLGNlLnRyeXMucG9wKCk7Y29udGludWU7ZGVmYXVsdDppZighKChzZT0oc2U9Y2UudHJ5cykubGVuZ3RoPjAmJnNlW3NlLmxlbmd0aC0xXSl8fDYhPT1rZVswXSYmMiE9PWtlWzBdKSl7Y2U9MDtjb250aW51ZX1pZigzPT09a2VbMF0mJighc2V8fGtlWzFdPnNlWzBdJiZrZVsxXTxz''@;'; + put 'put ''ZVszXSkpe2NlLmxhYmVsPWtlWzFdO2JyZWFrfWlmKDY9PT1rZVswXSYmY2UubGFiZWw8c2VbMV0pe2NlLmxhYmVsPXNlWzFdLHNlPWtlO2JyZWFrfWlmKHNlJiZjZS5sYWJlbDxzZVsyXSl7Y2UubGFiZWw9c2VbMl0sY2Uub3BzLnB1c2goa2UpO2JyZWFrfXNlWzJdJiZjZS5vcHMucG9wKCks''@;'; + put 'put ''Y2UudHJ5cy5wb3AoKTtjb250aW51ZX1rZT1lZS5jYWxsKE4sY2UpfWNhdGNoKFNlKXtrZT1bNixTZV0sSj0wfWZpbmFsbHl7cT1zZT0wfWlmKDUma2VbMF0pdGhyb3cga2VbMV07cmV0dXJue3ZhbHVlOmtlWzBdP2tlWzFdOnZvaWQgMCxkb25lOiEwfX0oW3ZlLEFlXSl9fX07T2JqZWN0LmRl''@;'; + put 'put ''ZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLFEub3BlbldlYlBhZ2U9dm9pZCAwO3ZhciBZPVooMTIxMCksVz17d2lkdGg6NTAwLGhlaWdodDo2MDB9O1Eub3BlbldlYlBhZ2U9ZnVuY3Rpb24oTixlZSxxLEope3JldHVybiB2b2lkIDA9PT1lZSYmKGVlPSIiKSx2b2lk''@;'; + put 'put ''IDA9PT1xJiYocT1XKSxpZSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgc2Usb2UsY2UsZGUsdmU7cmV0dXJuIGFlKHRoaXMsZnVuY3Rpb24oQWUpe3N3aXRjaChBZS5sYWJlbCl7Y2FzZSAwOnJldHVybiBzZT1xLndpZHRoLG9lPXEuaGVpZ2h0LGNlPXNjcmVlbi53aWR0aC8y''@;'; + put 'put ''LXNlLzIsZGU9c2NyZWVuLmhlaWdodC8yLW9lLzIsKHZlPXdpbmRvdy5vcGVuKE4sZWUsInRvb2xiYXI9MCxsb2NhdGlvbj0wLG1lbnViYXI9MCx3aWR0aD0iLmNvbmNhdChzZSwiLGhlaWdodD0iKS5jb25jYXQob2UsIixsZWZ0PSIpLmNvbmNhdChjZSwiLHRvcD0iKS5jb25jYXQoZGUpKSk/''@;'; + put 'put ''WzMsMl06WzQsKG51bGwhPUo/SjpZLm9wZW5Mb2dpblByb21wdCkoKV07Y2FzZSAxOnJldHVyblsyLEFlLnNlbnQoKT93aW5kb3cub3BlbihOLGVlLCJ0b29sYmFyPTAsbG9jYXRpb249MCxtZW51YmFyPTAsd2lkdGg9Ii5jb25jYXQoc2UsIixoZWlnaHQ9IikuY29uY2F0KG9lLCIsbGVmdD0i''@;'; + put 'put ''KS5jb25jYXQoY2UsIix0b3A9IikuY29uY2F0KGRlKSk6bnVsbF07Y2FzZSAyOnJldHVyblsyLHZlXX19KX0pfX0sMjQ5OmZ1bmN0aW9uKFUsUSxaKXsidXNlIHN0cmljdCI7dmFyIGllPXRoaXMmJnRoaXMuX19hd2FpdGVyfHxmdW5jdGlvbihXLE4sZWUscSl7cmV0dXJuIG5ldyhlZXx8KGVl''@;'; + put 'put ''PVByb21pc2UpKShmdW5jdGlvbihKLHNlKXtmdW5jdGlvbiBvZSh2ZSl7dHJ5e2RlKHEubmV4dCh2ZSkpfWNhdGNoKEFlKXtzZShBZSl9fWZ1bmN0aW9uIGNlKHZlKXt0cnl7ZGUocS50aHJvdyh2ZSkpfWNhdGNoKEFlKXtzZShBZSl9fWZ1bmN0aW9uIGRlKHZlKXt2YXIgQWU7dmUuZG9uZT9K''@;'; + put 'put ''KHZlLnZhbHVlKTooQWU9dmUudmFsdWUsQWUgaW5zdGFuY2VvZiBlZT9BZTpuZXcgZWUoZnVuY3Rpb24oa2Upe2tlKEFlKX0pKS50aGVuKG9lLGNlKX1kZSgocT1xLmFwcGx5KFcsTnx8W10pKS5uZXh0KCkpfSl9LGFlPXRoaXMmJnRoaXMuX19nZW5lcmF0b3J8fGZ1bmN0aW9uKFcsTil7dmFy''@;'; + put 'put ''IGVlLHEsSixzZSxvZT17bGFiZWw6MCxzZW50OmZ1bmN0aW9uKCl7aWYoMSZKWzBdKXRocm93IEpbMV07cmV0dXJuIEpbMV19LHRyeXM6W10sb3BzOltdfTtyZXR1cm4gc2U9e25leHQ6Y2UoMCksdGhyb3c6Y2UoMSkscmV0dXJuOmNlKDIpfSwiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYo''@;'; + put 'put ''c2VbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSksc2U7ZnVuY3Rpb24gY2UoZGUpe3JldHVybiBmdW5jdGlvbih2ZSl7cmV0dXJuIGZ1bmN0aW9uKEFlKXtpZihlZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcuIik7''@;'; + put 'put ''Zm9yKDtvZTspdHJ5e2lmKGVlPTEscSYmKEo9MiZBZVswXT9xLnJldHVybjpBZVswXT9xLnRocm93fHwoKEo9cS5yZXR1cm4pJiZKLmNhbGwocSksMCk6cS5uZXh0KSYmIShKPUouY2FsbChxLEFlWzFdKSkuZG9uZSlyZXR1cm4gSjtzd2l0Y2gocT0wLEomJihBZT1bMiZBZVswXSxKLnZhbHVl''@;'; + put 'put ''XSksQWVbMF0pe2Nhc2UgMDpjYXNlIDE6Sj1BZTticmVhaztjYXNlIDQ6cmV0dXJuIG9lLmxhYmVsKysse3ZhbHVlOkFlWzFdLGRvbmU6ITF9O2Nhc2UgNTpvZS5sYWJlbCsrLHE9QWVbMV0sQWU9WzBdO2NvbnRpbnVlO2Nhc2UgNzpBZT1vZS5vcHMucG9wKCksb2UudHJ5cy5wb3AoKTtjb250''@;'; + put 'put ''aW51ZTtkZWZhdWx0OmlmKCEoKEo9KEo9b2UudHJ5cykubGVuZ3RoPjAmJkpbSi5sZW5ndGgtMV0pfHw2IT09QWVbMF0mJjIhPT1BZVswXSkpe29lPTA7Y29udGludWV9aWYoMz09PUFlWzBdJiYoIUp8fEFlWzFdPkpbMF0mJkFlWzFdPEpbM10pKXtvZS5sYWJlbD1BZVsxXTticmVha31pZig2''@;'; + put 'put ''PT09QWVbMF0mJm9lLmxhYmVsPEpbMV0pe29lLmxhYmVsPUpbMV0sSj1BZTticmVha31pZihKJiZvZS5sYWJlbDxKWzJdKXtvZS5sYWJlbD1KWzJdLG9lLm9wcy5wdXNoKEFlKTticmVha31KWzJdJiZvZS5vcHMucG9wKCksb2UudHJ5cy5wb3AoKTtjb250aW51ZX1BZT1OLmNhbGwoVyxvZSl9''@;'; + put 'put ''Y2F0Y2goa2Upe0FlPVs2LGtlXSxxPTB9ZmluYWxseXtlZT1KPTB9aWYoNSZBZVswXSl0aHJvdyBBZVsxXTtyZXR1cm57dmFsdWU6QWVbMF0/QWVbMV06dm9pZCAwLGRvbmU6ITB9fShbZGUsdmVdKX19fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSks''@;'; + put 'put ''US5yZWZyZXNoVG9rZW5zRm9yU2FzanM9dm9pZCAwO3ZhciBZPVooOTc3OCk7US5yZWZyZXNoVG9rZW5zRm9yU2FzanM9ZnVuY3Rpb24oVyxOKXtyZXR1cm4gaWUodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIGFlKHRoaXMsZnVuY3Rpb24ocSl7c3dpdGNoKHEubGFiZWwp''@;'; + put 'put ''e2Nhc2UgMDpyZXR1cm5bNCxXLnBvc3QoIi9TQVNqc0FwaS9hdXRoL3JlZnJlc2giLHZvaWQgMCx2b2lkIDAsdm9pZCAwLHtBdXRob3JpemF0aW9uOiJCZWFyZXIgIitOfSkudGhlbihmdW5jdGlvbihKKXt2YXIgc2U9Si5yZXN1bHQ7cmV0dXJue2FjY2Vzc190b2tlbjpzZS5hY2Nlc3NUb2tl''@;'; + put 'put ''bixyZWZyZXNoX3Rva2VuOnNlLnJlZnJlc2hUb2tlbn19KS5jYXRjaChmdW5jdGlvbihKKXt0aHJvdygwLFkucHJlZml4TWVzc2FnZSkoSiwiRXJyb3Igd2hpbGUgcmVmcmVzaGluZyB0b2tlbnM6ICIpfSldO2Nhc2UgMTpyZXR1cm5bMixxLnNlbnQoKV19fSl9KX19LDM2NjpmdW5jdGlvbihV''@;'; + put 'put ''LFEsWil7InVzZSBzdHJpY3QiO3ZhciBpZT1aKDg3NjQpLkJ1ZmZlcixhZT10aGlzJiZ0aGlzLl9fYXdhaXRlcnx8ZnVuY3Rpb24oZWUscSxKLHNlKXtyZXR1cm4gbmV3KEp8fChKPVByb21pc2UpKShmdW5jdGlvbihvZSxjZSl7ZnVuY3Rpb24gZGUoa2Upe3RyeXtBZShzZS5uZXh0KGtlKSl9''@;'; + put 'put ''Y2F0Y2goU2Upe2NlKFNlKX19ZnVuY3Rpb24gdmUoa2Upe3RyeXtBZShzZS50aHJvdyhrZSkpfWNhdGNoKFNlKXtjZShTZSl9fWZ1bmN0aW9uIEFlKGtlKXt2YXIgU2U7a2UuZG9uZT9vZShrZS52YWx1ZSk6KFNlPWtlLnZhbHVlLFNlIGluc3RhbmNlb2YgSj9TZTpuZXcgSihmdW5jdGlvbihJ''@;'; + put 'put ''ZSl7SWUoU2UpfSkpLnRoZW4oZGUsdmUpfUFlKChzZT1zZS5hcHBseShlZSxxfHxbXSkpLm5leHQoKSl9KX0sWT10aGlzJiZ0aGlzLl9fZ2VuZXJhdG9yfHxmdW5jdGlvbihlZSxxKXt2YXIgSixzZSxvZSxjZSxkZT17bGFiZWw6MCxzZW50OmZ1bmN0aW9uKCl7aWYoMSZvZVswXSl0aHJvdyBv''@;'; + put 'put ''ZVsxXTtyZXR1cm4gb2VbMV19LHRyeXM6W10sb3BzOltdfTtyZXR1cm4gY2U9e25leHQ6dmUoMCksdGhyb3c6dmUoMSkscmV0dXJuOnZlKDIpfSwiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYoY2VbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSksY2U7ZnVuY3Rp''@;'; + put 'put ''b24gdmUoQWUpe3JldHVybiBmdW5jdGlvbihrZSl7cmV0dXJuIGZ1bmN0aW9uKFNlKXtpZihKKXRocm93IG5ldyBUeXBlRXJyb3IoIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy4iKTtmb3IoO2RlOyl0cnl7aWYoSj0xLHNlJiYob2U9MiZTZVswXT9zZS5yZXR1cm46U2VbMF0/c2Uu''@;'; + put 'put ''dGhyb3d8fCgob2U9c2UucmV0dXJuKSYmb2UuY2FsbChzZSksMCk6c2UubmV4dCkmJiEob2U9b2UuY2FsbChzZSxTZVsxXSkpLmRvbmUpcmV0dXJuIG9lO3N3aXRjaChzZT0wLG9lJiYoU2U9WzImU2VbMF0sb2UudmFsdWVdKSxTZVswXSl7Y2FzZSAwOmNhc2UgMTpvZT1TZTticmVhaztjYXNl''@;'; + put 'put ''IDQ6cmV0dXJuIGRlLmxhYmVsKysse3ZhbHVlOlNlWzFdLGRvbmU6ITF9O2Nhc2UgNTpkZS5sYWJlbCsrLHNlPVNlWzFdLFNlPVswXTtjb250aW51ZTtjYXNlIDc6U2U9ZGUub3BzLnBvcCgpLGRlLnRyeXMucG9wKCk7Y29udGludWU7ZGVmYXVsdDppZighKChvZT0ob2U9ZGUudHJ5cykubGVu''@;'; + put 'put ''Z3RoPjAmJm9lW29lLmxlbmd0aC0xXSl8fDYhPT1TZVswXSYmMiE9PVNlWzBdKSl7ZGU9MDtjb250aW51ZX1pZigzPT09U2VbMF0mJighb2V8fFNlWzFdPm9lWzBdJiZTZVsxXTxvZVszXSkpe2RlLmxhYmVsPVNlWzFdO2JyZWFrfWlmKDY9PT1TZVswXSYmZGUubGFiZWw8b2VbMV0pe2RlLmxh''@;'; + put 'put ''YmVsPW9lWzFdLG9lPVNlO2JyZWFrfWlmKG9lJiZkZS5sYWJlbDxvZVsyXSl7ZGUubGFiZWw9b2VbMl0sZGUub3BzLnB1c2goU2UpO2JyZWFrfW9lWzJdJiZkZS5vcHMucG9wKCksZGUudHJ5cy5wb3AoKTtjb250aW51ZX1TZT1xLmNhbGwoZWUsZGUpfWNhdGNoKEllKXtTZT1bNixJZV0sc2U9''@;'; + put 'put ''MH1maW5hbGx5e0o9b2U9MH1pZig1JlNlWzBdKXRocm93IFNlWzFdO3JldHVybnt2YWx1ZTpTZVswXT9TZVsxXTp2b2lkIDAsZG9uZTohMH19KFtBZSxrZV0pfX19O09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxRLnJlZnJlc2hUb2tlbnNGb3JWaXlh''@;'; + put 'put ''PXZvaWQgMDt2YXIgVz1aKDk3NzgpLE49Wig2MjMwKTtRLnJlZnJlc2hUb2tlbnNGb3JWaXlhPWZ1bmN0aW9uKGVlLHEsSixzZSl7cmV0dXJuIGFlKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBvZSxjZSxkZTtyZXR1cm4gWSh0aGlzLGZ1bmN0aW9uKHZlKXtzd2l0Y2godmUu''@;'; + put 'put ''bGFiZWwpe2Nhc2UgMDpyZXR1cm4gb2U9dm9pZCAwPT09aWU/YnRvYShxKyI6IitKKTppZS5mcm9tKHErIjoiK0opLnRvU3RyaW5nKCJiYXNlNjQiKSxjZT17QXV0aG9yaXphdGlvbjoiQmFzaWMgIitvZX0sKGRlPSJ1bmRlZmluZWQiPT10eXBlb2YgRm9ybURhdGE/bmV3IE46bmV3IEZvcm1E''@;'; + put 'put ''YXRhKS5hcHBlbmQoImdyYW50X3R5cGUiLCJyZWZyZXNoX3Rva2VuIiksZGUuYXBwZW5kKCJyZWZyZXNoX3Rva2VuIixzZSksWzQsZWUucG9zdCgiL1NBU0xvZ29uL29hdXRoL3Rva2VuIixkZSx2b2lkIDAsIm11bHRpcGFydC9mb3JtLWRhdGE7IGJvdW5kYXJ5PSIrZGUuX2JvdW5kYXJ5LGNl''@;'; + put 'put ''KS50aGVuKGZ1bmN0aW9uKEFlKXtyZXR1cm4gQWUucmVzdWx0fSkuY2F0Y2goZnVuY3Rpb24oQWUpe3Rocm93KDAsVy5wcmVmaXhNZXNzYWdlKShBZSwiRXJyb3Igd2hpbGUgcmVmcmVzaGluZyB0b2tlbnM6ICIpfSldO2Nhc2UgMTpyZXR1cm5bMix2ZS5zZW50KCldfX0pfSl9fSw0NTgyOmZ1''@;'; + put 'put ''bmN0aW9uKFUsUSxaKXsidXNlIHN0cmljdCI7dmFyIGllPXRoaXMmJnRoaXMuX19hd2FpdGVyfHxmdW5jdGlvbihXLE4sZWUscSl7cmV0dXJuIG5ldyhlZXx8KGVlPVByb21pc2UpKShmdW5jdGlvbihKLHNlKXtmdW5jdGlvbiBvZSh2ZSl7dHJ5e2RlKHEubmV4dCh2ZSkpfWNhdGNoKEFlKXtz''@;'; + put 'put ''ZShBZSl9fWZ1bmN0aW9uIGNlKHZlKXt0cnl7ZGUocS50aHJvdyh2ZSkpfWNhdGNoKEFlKXtzZShBZSl9fWZ1bmN0aW9uIGRlKHZlKXt2YXIgQWU7dmUuZG9uZT9KKHZlLnZhbHVlKTooQWU9dmUudmFsdWUsQWUgaW5zdGFuY2VvZiBlZT9BZTpuZXcgZWUoZnVuY3Rpb24oa2Upe2tlKEFlKX0p''@;'; + put 'put ''KS50aGVuKG9lLGNlKX1kZSgocT1xLmFwcGx5KFcsTnx8W10pKS5uZXh0KCkpfSl9LGFlPXRoaXMmJnRoaXMuX19nZW5lcmF0b3J8fGZ1bmN0aW9uKFcsTil7dmFyIGVlLHEsSixzZSxvZT17bGFiZWw6MCxzZW50OmZ1bmN0aW9uKCl7aWYoMSZKWzBdKXRocm93IEpbMV07cmV0dXJuIEpbMV19''@;'; + put 'put ''LHRyeXM6W10sb3BzOltdfTtyZXR1cm4gc2U9e25leHQ6Y2UoMCksdGhyb3c6Y2UoMSkscmV0dXJuOmNlKDIpfSwiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYoc2VbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSksc2U7ZnVuY3Rpb24gY2UoZGUpe3JldHVybiBm''@;'; + put 'put ''dW5jdGlvbih2ZSl7cmV0dXJuIGZ1bmN0aW9uKEFlKXtpZihlZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcuIik7Zm9yKDtvZTspdHJ5e2lmKGVlPTEscSYmKEo9MiZBZVswXT9xLnJldHVybjpBZVswXT9xLnRocm93fHwoKEo9cS5yZXR1cm4p''@;'; + put 'put ''JiZKLmNhbGwocSksMCk6cS5uZXh0KSYmIShKPUouY2FsbChxLEFlWzFdKSkuZG9uZSlyZXR1cm4gSjtzd2l0Y2gocT0wLEomJihBZT1bMiZBZVswXSxKLnZhbHVlXSksQWVbMF0pe2Nhc2UgMDpjYXNlIDE6Sj1BZTticmVhaztjYXNlIDQ6cmV0dXJuIG9lLmxhYmVsKysse3ZhbHVlOkFlWzFd''@;'; + put 'put ''LGRvbmU6ITF9O2Nhc2UgNTpvZS5sYWJlbCsrLHE9QWVbMV0sQWU9WzBdO2NvbnRpbnVlO2Nhc2UgNzpBZT1vZS5vcHMucG9wKCksb2UudHJ5cy5wb3AoKTtjb250aW51ZTtkZWZhdWx0OmlmKCEoKEo9KEo9b2UudHJ5cykubGVuZ3RoPjAmJkpbSi5sZW5ndGgtMV0pfHw2IT09QWVbMF0mJjIh''@;'; + put 'put ''PT1BZVswXSkpe29lPTA7Y29udGludWV9aWYoMz09PUFlWzBdJiYoIUp8fEFlWzFdPkpbMF0mJkFlWzFdPEpbM10pKXtvZS5sYWJlbD1BZVsxXTticmVha31pZig2PT09QWVbMF0mJm9lLmxhYmVsPEpbMV0pe29lLmxhYmVsPUpbMV0sSj1BZTticmVha31pZihKJiZvZS5sYWJlbDxKWzJdKXtv''@;'; + put 'put ''ZS5sYWJlbD1KWzJdLG9lLm9wcy5wdXNoKEFlKTticmVha31KWzJdJiZvZS5vcHMucG9wKCksb2UudHJ5cy5wb3AoKTtjb250aW51ZX1BZT1OLmNhbGwoVyxvZSl9Y2F0Y2goa2Upe0FlPVs2LGtlXSxxPTB9ZmluYWxseXtlZT1KPTB9aWYoNSZBZVswXSl0aHJvdyBBZVsxXTtyZXR1cm57dmFs''@;'; + put 'put ''dWU6QWVbMF0/QWVbMV06dm9pZCAwLGRvbmU6ITB9fShbZGUsdmVdKX19fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksUS52ZXJpZnlTYXM5TG9naW49dm9pZCAwO3ZhciBZPVooNTkyOCk7US52ZXJpZnlTYXM5TG9naW49ZnVuY3Rpb24oVyl7cmV0''@;'; + put 'put ''dXJuIGllKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBOLGVlLHE7cmV0dXJuIGFlKHRoaXMsZnVuY3Rpb24oSil7c3dpdGNoKEoubGFiZWwpe2Nhc2UgMDpOPSExLGVlPW5ldyBEYXRlLHE9MCxKLmxhYmVsPTE7Y2FzZSAxOnJldHVybls0LCgwLFkuZGVsYXkpKDFlMyldO2Nh''@;'; + put 'put ''c2UgMjppZihKLnNlbnQoKSxXLmNsb3NlZClyZXR1cm5bMyw0XTtOPVcud2luZG93LmxvY2F0aW9uLmhyZWYuaW5jbHVkZXMoIlNBU0xvZ29uIikmJlcud2luZG93LmRvY3VtZW50LmJvZHkuaW5uZXJUZXh0LmluY2x1ZGVzKCJZb3UgaGF2ZSBzaWduZWQgaW4uIikscT0oKG5ldyBEYXRlKS52''@;'; + put 'put ''YWx1ZU9mKCktZWUudmFsdWVPZigpKS8xZTMsSi5sYWJlbD0zO2Nhc2UgMzppZighTiYmcTwzMDApcmV0dXJuWzMsMV07Si5sYWJlbD00O2Nhc2UgNDpyZXR1cm5bMix7aXNMb2dnZWRJbjpOfV19fSl9KX19LDY1NDc6ZnVuY3Rpb24oVSxRLFopeyJ1c2Ugc3RyaWN0Ijt2YXIgaWU9dGhpcyYm''@;'; + put 'put ''dGhpcy5fX2F3YWl0ZXJ8fGZ1bmN0aW9uKFcsTixlZSxxKXtyZXR1cm4gbmV3KGVlfHwoZWU9UHJvbWlzZSkpKGZ1bmN0aW9uKEosc2Upe2Z1bmN0aW9uIG9lKHZlKXt0cnl7ZGUocS5uZXh0KHZlKSl9Y2F0Y2goQWUpe3NlKEFlKX19ZnVuY3Rpb24gY2UodmUpe3RyeXtkZShxLnRocm93KHZl''@;'; + put 'put ''KSl9Y2F0Y2goQWUpe3NlKEFlKX19ZnVuY3Rpb24gZGUodmUpe3ZhciBBZTt2ZS5kb25lP0oodmUudmFsdWUpOihBZT12ZS52YWx1ZSxBZSBpbnN0YW5jZW9mIGVlP0FlOm5ldyBlZShmdW5jdGlvbihrZSl7a2UoQWUpfSkpLnRoZW4ob2UsY2UpfWRlKChxPXEuYXBwbHkoVyxOfHxbXSkpLm5l''@;'; + put 'put ''eHQoKSl9KX0sYWU9dGhpcyYmdGhpcy5fX2dlbmVyYXRvcnx8ZnVuY3Rpb24oVyxOKXt2YXIgZWUscSxKLHNlLG9lPXtsYWJlbDowLHNlbnQ6ZnVuY3Rpb24oKXtpZigxJkpbMF0pdGhyb3cgSlsxXTtyZXR1cm4gSlsxXX0sdHJ5czpbXSxvcHM6W119O3JldHVybiBzZT17bmV4dDpjZSgwKSx0''@;'; + put 'put ''aHJvdzpjZSgxKSxyZXR1cm46Y2UoMil9LCJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJihzZVtTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSxzZTtmdW5jdGlvbiBjZShkZSl7cmV0dXJuIGZ1bmN0aW9uKHZlKXtyZXR1cm4gZnVuY3Rpb24oQWUpe2lmKGVlKXRo''@;'; + put 'put ''cm93IG5ldyBUeXBlRXJyb3IoIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy4iKTtmb3IoO29lOyl0cnl7aWYoZWU9MSxxJiYoSj0yJkFlWzBdP3EucmV0dXJuOkFlWzBdP3EudGhyb3d8fCgoSj1xLnJldHVybikmJkouY2FsbChxKSwwKTpxLm5leHQpJiYhKEo9Si5jYWxsKHEsQWVb''@;'; + put 'put ''MV0pKS5kb25lKXJldHVybiBKO3N3aXRjaChxPTAsSiYmKEFlPVsyJkFlWzBdLEoudmFsdWVdKSxBZVswXSl7Y2FzZSAwOmNhc2UgMTpKPUFlO2JyZWFrO2Nhc2UgNDpyZXR1cm4gb2UubGFiZWwrKyx7dmFsdWU6QWVbMV0sZG9uZTohMX07Y2FzZSA1Om9lLmxhYmVsKysscT1BZVsxXSxBZT1b''@;'; + put 'put ''MF07Y29udGludWU7Y2FzZSA3OkFlPW9lLm9wcy5wb3AoKSxvZS50cnlzLnBvcCgpO2NvbnRpbnVlO2RlZmF1bHQ6aWYoISgoSj0oSj1vZS50cnlzKS5sZW5ndGg+MCYmSltKLmxlbmd0aC0xXSl8fDYhPT1BZVswXSYmMiE9PUFlWzBdKSl7b2U9MDtjb250aW51ZX1pZigzPT09QWVbMF0mJigh''@;'; + put 'put ''Snx8QWVbMV0+SlswXSYmQWVbMV08SlszXSkpe29lLmxhYmVsPUFlWzFdO2JyZWFrfWlmKDY9PT1BZVswXSYmb2UubGFiZWw8SlsxXSl7b2UubGFiZWw9SlsxXSxKPUFlO2JyZWFrfWlmKEomJm9lLmxhYmVsPEpbMl0pe29lLmxhYmVsPUpbMl0sb2Uub3BzLnB1c2goQWUpO2JyZWFrfUpbMl0m''@;'; + put 'put ''Jm9lLm9wcy5wb3AoKSxvZS50cnlzLnBvcCgpO2NvbnRpbnVlfUFlPU4uY2FsbChXLG9lKX1jYXRjaChrZSl7QWU9WzYsa2VdLHE9MH1maW5hbGx5e2VlPUo9MH1pZig1JkFlWzBdKXRocm93IEFlWzFdO3JldHVybnt2YWx1ZTpBZVswXT9BZVsxXTp2b2lkIDAsZG9uZTohMH19KFtkZSx2ZV0p''@;'; + put 'put ''fX19O09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxRLmlzTG9nZ2VkSW5TQVNWSVlBPVEudmVyaWZ5U2FzVml5YUxvZ2luPXZvaWQgMDt2YXIgWT1aKDU5MjgpO1EudmVyaWZ5U2FzVml5YUxvZ2luPWZ1bmN0aW9uKFcpe3ZhciBOLGVlO3JldHVybiBp''@;'; + put 'put ''ZSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgcSxKLHNlLG9lO3JldHVybiBhZSh0aGlzLGZ1bmN0aW9uKGNlKXtzd2l0Y2goY2UubGFiZWwpe2Nhc2UgMDpxPSExLEo9bmV3IERhdGUsc2U9MCxjZS5sYWJlbD0xO2Nhc2UgMTpyZXR1cm5bNCwoMCxZLmRlbGF5KSgxZTMpXTtj''@;'; + put 'put ''YXNlIDI6aWYoY2Uuc2VudCgpLFcuY2xvc2VkKXJldHVyblszLDRdO3E9KDAsUS5pc0xvZ2dlZEluU0FTVklZQSkoKSxzZT0oKG5ldyBEYXRlKS52YWx1ZU9mKCktSi52YWx1ZU9mKCkpLzFlMyxjZS5sYWJlbD0zO2Nhc2UgMzppZighcSYmc2U8MzAwKXJldHVyblszLDFdO2NlLmxhYmVsPTQ7''@;'; + put 'put ''Y2FzZSA0Om9lPSExLEo9bmV3IERhdGUsY2UubGFiZWw9NTtjYXNlIDU6cmV0dXJuWzQsKDAsWS5kZWxheSkoMWUzKV07Y2FzZSA2OmlmKGNlLnNlbnQoKSxXLmNsb3NlZClyZXR1cm5bMyw4XTtvZT1XLndpbmRvdy5sb2NhdGlvbi5ocmVmLmluY2x1ZGVzKCJTQVNMb2dvbiIpfHwobnVsbD09''@;'; + put 'put ''PShlZT1udWxsPT09KE49Vy53aW5kb3cuZG9jdW1lbnQuYm9keSl8fHZvaWQgMD09PU4/dm9pZCAwOk4uaW5uZXJUZXh0KXx8dm9pZCAwPT09ZWU/dm9pZCAwOmVlLmluY2x1ZGVzKCJZb3UgaGF2ZSBzaWduZWQgaW4uIikpLHNlPSgobmV3IERhdGUpLnZhbHVlT2YoKS1KLnZhbHVlT2YoKSkv''@;'; + put 'put ''MWUzLGNlLmxhYmVsPTc7Y2FzZSA3OmlmKCFvZSYmc2U8MzAwKXJldHVyblszLDVdO2NlLmxhYmVsPTg7Y2FzZSA4OnJldHVyblsyLHtpc0xvZ2dlZEluOnEmJm9lfV19fSl9KX0sUS5pc0xvZ2dlZEluU0FTVklZQT1mdW5jdGlvbigpe3JldHVybiBkb2N1bWVudC5jb29raWUuaW5jbHVkZXMo''@;'; + put 'put ''IkN1cnJlbnQtVXNlciIpJiZkb2N1bWVudC5jb29raWUuaW5jbHVkZXMoInVzZXJJZCIpfX0sNDAzNzooVSxRLFopPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxRLmdlbmVyYXRlRmlsZVVwbG9hZEZvcm09dm9pZCAwO3Zh''@;'; + put 'put ''ciBpZT1aKDYyMzApLGFlPVooMjQwMik7US5nZW5lcmF0ZUZpbGVVcGxvYWRGb3JtPWZ1bmN0aW9uKFksVyl7Zm9yKHZhciBOIGluIFcpaWYoQXJyYXkuaXNBcnJheShXW05dKSl7dmFyIGVlPU4scT0oMCxhZS5jb252ZXJ0VG9DU1YpKFcsTik7aWYoIkVSUk9SOiBMQVJHRSBTVFJJTkcgTEVO''@;'; + put 'put ''R1RIIj09PXEpdGhyb3cgbmV3IEVycm9yKCJUaGUgbWF4IGxlbmd0aCBvZiBhIHN0cmluZyB2YWx1ZSBpbiBTQVNqcyBpcyAzMjc2NSBjaGFyYWN0ZXJzLiIpO2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgRm9ybURhdGEmJlkgaW5zdGFuY2VvZiBpZSlZLmFwcGVuZChlZSxxLHtmaWxlbmFtZToi''@;'; + put 'put ''Ii5jb25jYXQoZWUsIi5jc3YiKSxjb250ZW50VHlwZToiYXBwbGljYXRpb24vY3N2In0pO2Vsc2V7dmFyIEo9bmV3IEJsb2IoW3FdLHt0eXBlOiJhcHBsaWNhdGlvbi9jc3YifSk7WS5hcHBlbmQoZWUsSiwiIi5jb25jYXQoZWUsIi5jc3YiKSl9fXJldHVybiBZfX0sMjE3MDooVSxRLFopPT57''@;'; + put 'put ''InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxRLmdlbmVyYXRlVGFibGVVcGxvYWRGb3JtPXZvaWQgMDt2YXIgaWU9WigyNDAyKSxhZT1aKDQ3OTkpO1EuZ2VuZXJhdGVUYWJsZVVwbG9hZEZvcm09ZnVuY3Rpb24oWSxXKXt2YXIg''@;'; + put 'put ''Tj1bXSxlZT17fSxxPTA7Zm9yKHZhciBKIGluIFcpe3ErKywoMCxpZS5pc0Zvcm1hdHNUYWJsZSkoSil8fE4ucHVzaChKKTt2YXIgc2U9KDAsaWUuY29udmVydFRvQ1NWKShXLEopO2lmKCJFUlJPUjogTEFSR0UgU1RSSU5HIExFTkdUSCI9PT1zZSl0aHJvdyBuZXcgRXJyb3IoIlRoZSBtYXgg''@;'; + put 'put ''bGVuZ3RoIG9mIGEgc3RyaW5nIHZhbHVlIGluIFNBU2pzIGlzIDMyNzY1IGNoYXJhY3RlcnMuIik7c2UubGVuZ3RoPjE2ZTM/KDAsYWUuc3BsaXRDaHVua3MpKHNlKS5tYXAoZnVuY3Rpb24ob2Upe1kuYXBwZW5kKCJzYXNqcyIuY29uY2F0KHEsImRhdGEiKSxvZSl9KTplZVsic2FzanMiLmNv''@;'; + put 'put ''bmNhdChxLCJkYXRhIildPXNlfXJldHVybiBlZS5zYXNqc190YWJsZXM9Ti5qb2luKCIgIikse2Zvcm1EYXRhOlkscmVxdWVzdFBhcmFtczplZX19fSwzNjA3OmZ1bmN0aW9uKFUsUSxaKXsidXNlIHN0cmljdCI7dmFyIGllPXRoaXMmJnRoaXMuX19jcmVhdGVCaW5kaW5nfHwoT2JqZWN0LmNy''@;'; + put 'put ''ZWF0ZT9mdW5jdGlvbihXLE4sZWUscSl7dm9pZCAwPT09cSYmKHE9ZWUpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShXLHEse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIE5bZWVdfX0pfTpmdW5jdGlvbihXLE4sZWUscSl7dm9pZCAwPT09cSYmKHE9ZWUpLFdbcV09TltlZV19''@;'; + put 'put ''KSxhZT10aGlzJiZ0aGlzLl9fZXhwb3J0U3Rhcnx8ZnVuY3Rpb24oVyxOKXtmb3IodmFyIGVlIGluIFcpImRlZmF1bHQiPT09ZWV8fE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChOLGVlKXx8aWUoTixXLGVlKX07T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1''@;'; + put 'put ''bGUiLHt2YWx1ZTohMH0pO3ZhciBZPVooNTk1Nik7YWUoWigxMjMwKSxRKSxhZShaKDEzOTUpLFEpLGFlKFooOTgyMSksUSksYWUoWig4MzA2KSxRKSxRLmRlZmF1bHQ9WS5kZWZhdWx0fSwxNTcwOmZ1bmN0aW9uKFUsUSxaKXsidXNlIHN0cmljdCI7dmFyIGllLGFlPXRoaXMmJnRoaXMuX19l''@;'; + put 'put ''eHRlbmRzfHwoaWU9ZnVuY3Rpb24oSixzZSl7cmV0dXJuKGllPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbihvZSxjZSl7b2UuX19wcm90b19fPWNlfXx8ZnVuY3Rpb24ob2UsY2Upe2Zvcih2YXIgZGUgaW4gY2UpT2JqZWN0''@;'; + put 'put ''LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGNlLGRlKSYmKG9lW2RlXT1jZVtkZV0pfSkoSixzZSl9LGZ1bmN0aW9uKEosc2Upe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBzZSYmbnVsbCE9PXNlKXRocm93IG5ldyBUeXBlRXJyb3IoIkNsYXNzIGV4dGVuZHMgdmFsdWUgIitTdHJpbmco''@;'; + put 'put ''c2UpKyIgaXMgbm90IGEgY29uc3RydWN0b3Igb3IgbnVsbCIpO2Z1bmN0aW9uIG9lKCl7dGhpcy5jb25zdHJ1Y3Rvcj1KfWllKEosc2UpLEoucHJvdG90eXBlPW51bGw9PT1zZT9PYmplY3QuY3JlYXRlKHNlKToob2UucHJvdG90eXBlPXNlLnByb3RvdHlwZSxuZXcgb2UpfSksWT10aGlzJiZ0''@;'; + put 'put ''aGlzLl9fYXdhaXRlcnx8ZnVuY3Rpb24oSixzZSxvZSxjZSl7cmV0dXJuIG5ldyhvZXx8KG9lPVByb21pc2UpKShmdW5jdGlvbihkZSx2ZSl7ZnVuY3Rpb24gQWUoSWUpe3RyeXtTZShjZS5uZXh0KEllKSl9Y2F0Y2goVGUpe3ZlKFRlKX19ZnVuY3Rpb24ga2UoSWUpe3RyeXtTZShjZS50aHJv''@;'; + put 'put ''dyhJZSkpfWNhdGNoKFRlKXt2ZShUZSl9fWZ1bmN0aW9uIFNlKEllKXt2YXIgVGU7SWUuZG9uZT9kZShJZS52YWx1ZSk6KFRlPUllLnZhbHVlLFRlIGluc3RhbmNlb2Ygb2U/VGU6bmV3IG9lKGZ1bmN0aW9uKEVlKXtFZShUZSl9KSkudGhlbihBZSxrZSl9U2UoKGNlPWNlLmFwcGx5KEosc2V8''@;'; + put 'put ''fFtdKSkubmV4dCgpKX0pfSxXPXRoaXMmJnRoaXMuX19nZW5lcmF0b3J8fGZ1bmN0aW9uKEosc2Upe3ZhciBvZSxjZSxkZSx2ZSxBZT17bGFiZWw6MCxzZW50OmZ1bmN0aW9uKCl7aWYoMSZkZVswXSl0aHJvdyBkZVsxXTtyZXR1cm4gZGVbMV19LHRyeXM6W10sb3BzOltdfTtyZXR1cm4gdmU9''@;'; + put 'put ''e25leHQ6a2UoMCksdGhyb3c6a2UoMSkscmV0dXJuOmtlKDIpfSwiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYodmVbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSksdmU7ZnVuY3Rpb24ga2UoU2Upe3JldHVybiBmdW5jdGlvbihJZSl7cmV0dXJuIGZ1bmN0aW9u''@;'; + put 'put ''KFRlKXtpZihvZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcuIik7Zm9yKDtBZTspdHJ5e2lmKG9lPTEsY2UmJihkZT0yJlRlWzBdP2NlLnJldHVybjpUZVswXT9jZS50aHJvd3x8KChkZT1jZS5yZXR1cm4pJiZkZS5jYWxsKGNlKSwwKTpjZS5u''@;'; + put 'put ''ZXh0KSYmIShkZT1kZS5jYWxsKGNlLFRlWzFdKSkuZG9uZSlyZXR1cm4gZGU7c3dpdGNoKGNlPTAsZGUmJihUZT1bMiZUZVswXSxkZS52YWx1ZV0pLFRlWzBdKXtjYXNlIDA6Y2FzZSAxOmRlPVRlO2JyZWFrO2Nhc2UgNDpyZXR1cm4gQWUubGFiZWwrKyx7dmFsdWU6VGVbMV0sZG9uZTohMX07''@;'; + put 'put ''Y2FzZSA1OkFlLmxhYmVsKyssY2U9VGVbMV0sVGU9WzBdO2NvbnRpbnVlO2Nhc2UgNzpUZT1BZS5vcHMucG9wKCksQWUudHJ5cy5wb3AoKTtjb250aW51ZTtkZWZhdWx0OmlmKCEoKGRlPShkZT1BZS50cnlzKS5sZW5ndGg+MCYmZGVbZGUubGVuZ3RoLTFdKXx8NiE9PVRlWzBdJiYyIT09VGVb''@;'; + put 'put ''MF0pKXtBZT0wO2NvbnRpbnVlfWlmKDM9PT1UZVswXSYmKCFkZXx8VGVbMV0+ZGVbMF0mJlRlWzFdPGRlWzNdKSl7QWUubGFiZWw9VGVbMV07YnJlYWt9aWYoNj09PVRlWzBdJiZBZS5sYWJlbDxkZVsxXSl7QWUubGFiZWw9ZGVbMV0sZGU9VGU7YnJlYWt9aWYoZGUmJkFlLmxhYmVsPGRlWzJd''@;'; + put 'put ''KXtBZS5sYWJlbD1kZVsyXSxBZS5vcHMucHVzaChUZSk7YnJlYWt9ZGVbMl0mJkFlLm9wcy5wb3AoKSxBZS50cnlzLnBvcCgpO2NvbnRpbnVlfVRlPXNlLmNhbGwoSixBZSl9Y2F0Y2goRWUpe1RlPVs2LEVlXSxjZT0wfWZpbmFsbHl7b2U9ZGU9MH1pZig1JlRlWzBdKXRocm93IFRlWzFdO3Jl''@;'; + put 'put ''dHVybnt2YWx1ZTpUZVswXT9UZVsxXTp2b2lkIDAsZG9uZTohMH19KFtTZSxJZV0pfX19O09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxRLkNvbXB1dGVKb2JFeGVjdXRvcj12b2lkIDA7dmFyIE49WigzOTAwKSxlZT1aKDEzOTUpLHE9ZnVuY3Rpb24o''@;'; + put 'put ''Sil7ZnVuY3Rpb24gc2Uob2UsY2Upe3ZhciBkZT1KLmNhbGwodGhpcyxvZSxOLlNlcnZlclR5cGUuU2FzVml5YSl8fHRoaXM7cmV0dXJuIGRlLnNhc1ZpeWFBcGlDbGllbnQ9Y2UsZGV9cmV0dXJuIGFlKHNlLEopLHNlLnByb3RvdHlwZS5leGVjdXRlPWZ1bmN0aW9uKG9lLGNlLGRlLHZlLEFl''@;'; + put 'put ''KXtyZXR1cm4gWSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIga2UsSWU9dGhpcztyZXR1cm4gVyh0aGlzLGZ1bmN0aW9uKFRlKXtyZXR1cm4ga2U9dmV8fGZ1bmN0aW9uKCl7cmV0dXJuIFByb21pc2UucmVzb2x2ZSgpfSxbMixuZXcgUHJvbWlzZShmdW5jdGlvbihFZSxoZSl7''@;'; + put 'put ''dmFyIE87bnVsbD09PShPPUllLnNhc1ZpeWFBcGlDbGllbnQpfHx2b2lkIDA9PT1PfHxPLmV4ZWN1dGVDb21wdXRlSm9iKG9lLGRlLmNvbnRleHROYW1lLGRlLmRlYnVnLGNlLEFlLCEwLCEwKS50aGVuKGZ1bmN0aW9uKHope0llLnNhc1ZpeWFBcGlDbGllbnQuYXBwZW5kUmVxdWVzdCh6LG9l''@;'; + put 'put ''LGRlLmRlYnVnKSxFZSh6LnJlc3VsdCl9KS5jYXRjaChmdW5jdGlvbih6KXtyZXR1cm4gWShJZSx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIG5lPXRoaXM7cmV0dXJuIFcodGhpcyxmdW5jdGlvbih0ZSl7c3dpdGNoKHRlLmxhYmVsKXtjYXNlIDA6cmV0dXJuIHogaW5zdGFuY2VvZiBl''@;'; + put 'put ''ZS5Db21wdXRlSm9iRXhlY3V0aW9uRXJyb3ImJih0aGlzLnNhc1ZpeWFBcGlDbGllbnQuYXBwZW5kUmVxdWVzdCh6LG9lLGRlLmRlYnVnKSxoZShuZXcgZWUuRXJyb3JSZXNwb25zZShudWxsPT16P3ZvaWQgMDp6Lm1lc3NhZ2UseikpKSx6IGluc3RhbmNlb2YgZWUuTG9naW5SZXF1aXJlZEVy''@;'; + put 'put ''cm9yPyh0aGlzLmFwcGVuZFdhaXRpbmdSZXF1ZXN0KGZ1bmN0aW9uKCl7cmV0dXJuIG5lLmV4ZWN1dGUob2UsY2UsZGUsdmUpLnRoZW4oZnVuY3Rpb24oeCl7RWUoeCl9LGZ1bmN0aW9uKHgpe2hlKHgpfSl9KSxbNCxrZSgpXSk6WzMsMl07Y2FzZSAxOnJldHVybiB0ZS5zZW50KCksWzMsM107''@;'; + put 'put ''Y2FzZSAyOmhlKG5ldyBlZS5FcnJvclJlc3BvbnNlKG51bGw9PXo/dm9pZCAwOnoubWVzc2FnZSx6KSksdGUubGFiZWw9MztjYXNlIDM6cmV0dXJuWzJdfX0pfSl9KX0pXX0pfSl9LHNlfShaKDYxMTgpLkJhc2VKb2JFeGVjdXRvcik7US5Db21wdXRlSm9iRXhlY3V0b3I9cX0sMzQ5MTpmdW5j''@;'; + put 'put ''dGlvbihVLFEsWil7InVzZSBzdHJpY3QiO3ZhciBpZSxhZT10aGlzJiZ0aGlzLl9fZXh0ZW5kc3x8KGllPWZ1bmN0aW9uKHNlLG9lKXtyZXR1cm4oaWU9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKGNlLGRlKXtjZS5fX3By''@;'; + put 'put ''b3RvX189ZGV9fHxmdW5jdGlvbihjZSxkZSl7Zm9yKHZhciB2ZSBpbiBkZSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZGUsdmUpJiYoY2VbdmVdPWRlW3ZlXSl9KShzZSxvZSl9LGZ1bmN0aW9uKHNlLG9lKXtpZigiZnVuY3Rpb24iIT10eXBlb2Ygb2UmJm51bGwhPT1v''@;'; + put 'put ''ZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDbGFzcyBleHRlbmRzIHZhbHVlICIrU3RyaW5nKG9lKSsiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGwiKTtmdW5jdGlvbiBjZSgpe3RoaXMuY29uc3RydWN0b3I9c2V9aWUoc2Usb2UpLHNlLnByb3RvdHlwZT1udWxsPT09b2U/T2JqZWN0LmNy''@;'; + put 'put ''ZWF0ZShvZSk6KGNlLnByb3RvdHlwZT1vZS5wcm90b3R5cGUsbmV3IGNlKX0pLFk9dGhpcyYmdGhpcy5fX2F3YWl0ZXJ8fGZ1bmN0aW9uKHNlLG9lLGNlLGRlKXtyZXR1cm4gbmV3KGNlfHwoY2U9UHJvbWlzZSkpKGZ1bmN0aW9uKHZlLEFlKXtmdW5jdGlvbiBrZShUZSl7dHJ5e0llKGRlLm5l''@;'; + put 'put ''eHQoVGUpKX1jYXRjaChFZSl7QWUoRWUpfX1mdW5jdGlvbiBTZShUZSl7dHJ5e0llKGRlLnRocm93KFRlKSl9Y2F0Y2goRWUpe0FlKEVlKX19ZnVuY3Rpb24gSWUoVGUpe3ZhciBFZTtUZS5kb25lP3ZlKFRlLnZhbHVlKTooRWU9VGUudmFsdWUsRWUgaW5zdGFuY2VvZiBjZT9FZTpuZXcgY2Uo''@;'; + put 'put ''ZnVuY3Rpb24oaGUpe2hlKEVlKX0pKS50aGVuKGtlLFNlKX1JZSgoZGU9ZGUuYXBwbHkoc2Usb2V8fFtdKSkubmV4dCgpKX0pfSxXPXRoaXMmJnRoaXMuX19nZW5lcmF0b3J8fGZ1bmN0aW9uKHNlLG9lKXt2YXIgY2UsZGUsdmUsQWUsa2U9e2xhYmVsOjAsc2VudDpmdW5jdGlvbigpe2lmKDEm''@;'; + put 'put ''dmVbMF0pdGhyb3cgdmVbMV07cmV0dXJuIHZlWzFdfSx0cnlzOltdLG9wczpbXX07cmV0dXJuIEFlPXtuZXh0OlNlKDApLHRocm93OlNlKDEpLHJldHVybjpTZSgyKX0sImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmKEFlW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhp''@;'; + put 'put ''c30pLEFlO2Z1bmN0aW9uIFNlKEllKXtyZXR1cm4gZnVuY3Rpb24oVGUpe3JldHVybiBmdW5jdGlvbihFZSl7aWYoY2UpdGhyb3cgbmV3IFR5cGVFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLiIpO2Zvcig7a2U7KXRyeXtpZihjZT0xLGRlJiYodmU9MiZFZVswXT9kZS5y''@;'; + put 'put ''ZXR1cm46RWVbMF0/ZGUudGhyb3d8fCgodmU9ZGUucmV0dXJuKSYmdmUuY2FsbChkZSksMCk6ZGUubmV4dCkmJiEodmU9dmUuY2FsbChkZSxFZVsxXSkpLmRvbmUpcmV0dXJuIHZlO3N3aXRjaChkZT0wLHZlJiYoRWU9WzImRWVbMF0sdmUudmFsdWVdKSxFZVswXSl7Y2FzZSAwOmNhc2UgMTp2''@;'; + put 'put ''ZT1FZTticmVhaztjYXNlIDQ6cmV0dXJuIGtlLmxhYmVsKysse3ZhbHVlOkVlWzFdLGRvbmU6ITF9O2Nhc2UgNTprZS5sYWJlbCsrLGRlPUVlWzFdLEVlPVswXTtjb250aW51ZTtjYXNlIDc6RWU9a2Uub3BzLnBvcCgpLGtlLnRyeXMucG9wKCk7Y29udGludWU7ZGVmYXVsdDppZighKCh2ZT0o''@;'; + put 'put ''dmU9a2UudHJ5cykubGVuZ3RoPjAmJnZlW3ZlLmxlbmd0aC0xXSl8fDYhPT1FZVswXSYmMiE9PUVlWzBdKSl7a2U9MDtjb250aW51ZX1pZigzPT09RWVbMF0mJighdmV8fEVlWzFdPnZlWzBdJiZFZVsxXTx2ZVszXSkpe2tlLmxhYmVsPUVlWzFdO2JyZWFrfWlmKDY9PT1FZVswXSYma2UubGFi''@;'; + put 'put ''ZWw8dmVbMV0pe2tlLmxhYmVsPXZlWzFdLHZlPUVlO2JyZWFrfWlmKHZlJiZrZS5sYWJlbDx2ZVsyXSl7a2UubGFiZWw9dmVbMl0sa2Uub3BzLnB1c2goRWUpO2JyZWFrfXZlWzJdJiZrZS5vcHMucG9wKCksa2UudHJ5cy5wb3AoKTtjb250aW51ZX1FZT1vZS5jYWxsKHNlLGtlKX1jYXRjaCho''@;'; + put 'put ''ZSl7RWU9WzYsaGVdLGRlPTB9ZmluYWxseXtjZT12ZT0wfWlmKDUmRWVbMF0pdGhyb3cgRWVbMV07cmV0dXJue3ZhbHVlOkVlWzBdP0VlWzFdOnZvaWQgMCxkb25lOiEwfX0oW0llLFRlXSl9fX07T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLFEuRmls''@;'; + put 'put ''ZVVwbG9hZGVyPXZvaWQgMDt2YXIgTj1aKDU5MjgpLGVlPVooMTM5NSkscT1aKDM5MDApLEo9ZnVuY3Rpb24oc2Upe2Z1bmN0aW9uIG9lKGNlLGRlLHZlLEFlKXt2YXIga2U9c2UuY2FsbCh0aGlzLGNlLGRlKXx8dGhpcztyZXR1cm4ga2Uuam9ic1BhdGg9dmUsa2UucmVxdWVzdENsaWVudD1B''@;'; + put 'put ''ZSxrZX1yZXR1cm4gYWUob2Usc2UpLG9lLnByb3RvdHlwZS5leGVjdXRlPWZ1bmN0aW9uKGNlLGRlLHZlLEFlKXtyZXR1cm4gWSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIga2UsU2UsSWUsVGUsRWUsaGUsTyx6LG5lLHRlLHgsUCxWLFM9dGhpcztyZXR1cm4gVyh0aGlzLGZ1''@;'; + put 'put ''bmN0aW9uKEYpe2lmKFNlPWRlLnBhcmFtcyxJZT1BZXx8ZnVuY3Rpb24oKXtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCl9LG51bGw9PShrZT1kZS5maWxlcyl8fCFrZS5sZW5ndGgpdGhyb3cgbmV3IGVlLkVycm9yUmVzcG9uc2UoIkF0IGxlYXN0IG9uZSBmaWxlIG11c3QgYmUgcHJvdmlkZWQu''@;'; + put 'put ''Iik7aWYoIWNlfHwiIj09PWNlKXRocm93IG5ldyBlZS5FcnJvclJlc3BvbnNlKCJzYXNKb2IgbXVzdCBiZSBwcm92aWRlZC4iKTtmb3IoRWUgaW4gVGU9IiIsU2UpU2UuaGFzT3duUHJvcGVydHkoRWUpJiYoVGUrPSImIi5jb25jYXQoRWUsIj0iKS5jb25jYXQoU2VbRWVdKSk7Zm9yKGhlPXZl''@;'; + put 'put ''LmFwcExvYz92ZS5hcHBMb2MucmVwbGFjZSgvXC8/JC8sIi8iKStjZS5yZXBsYWNlKC9eXC8vLCIiKTpjZSxPPSIiLmNvbmNhdCh0aGlzLmpvYnNQYXRoLCIvPyIpLmNvbmNhdCgiX3Byb2dyYW09IitoZSkuY29uY2F0KFRlKSx6PW5ldyBGb3JtRGF0YSxuZT0wLHRlPWtlO25lPHRlLmxlbmd0''@;'; + put 'put ''aDtuZSsrKXouYXBwZW5kKCJmaWxlIiwoeD10ZVtuZV0pLmZpbGUseC5maWxlTmFtZSk7cmV0dXJuKFA9dGhpcy5yZXF1ZXN0Q2xpZW50LmdldENzcmZUb2tlbigiZmlsZSIpKSYmei5hcHBlbmQoIl9jc3JmIixQLnZhbHVlKSx2ZS5kZWJ1ZyYmei5hcHBlbmQoIl9kZWJ1ZyIsIjEzMSIpLHZl''@;'; + put 'put ''LnNlcnZlclR5cGU9PT1xLlNlcnZlclR5cGUuU2FzVml5YSYmdmUuY29udGV4dE5hbWUmJnouYXBwZW5kKCJfY29udGV4dG5hbWUiLHZlLmNvbnRleHROYW1lKSxWPXsiY2FjaGUtY29udHJvbCI6Im5vLWNhY2hlIixBY2NlcHQ6IiovKiIsIkNvbnRlbnQtVHlwZSI6InRleHQvcGxhaW4ifSxb''@;'; + put 'put ''MixuZXcgUHJvbWlzZShmdW5jdGlvbih5ZSxDZSl7Uy5yZXF1ZXN0Q2xpZW50LnBvc3QoTyx6LHZvaWQgMCwiYXBwbGljYXRpb24vanNvbiIsVikudGhlbihmdW5jdGlvbihEZSl7cmV0dXJuIFkoUyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIFBlO3JldHVybiBXKHRoaXMsZnVuY3Rp''@;'; + put 'put ''b24oUWUpe3N3aXRjaChRZS5sYWJlbCl7Y2FzZSAwOmlmKHRoaXMucmVxdWVzdENsaWVudC5hcHBlbmRSZXF1ZXN0KERlLGNlLHZlLmRlYnVnKSxQZT1EZS5yZXN1bHQsIXZlLmRlYnVnKXJldHVyblszLDVdO3N3aXRjaCh0aGlzLnNlcnZlclR5cGUpe2Nhc2UgcS5TZXJ2ZXJUeXBlLlNhc1Zp''@;'; + put 'put ''eWE6cmV0dXJuWzMsMV07Y2FzZSBxLlNlcnZlclR5cGUuU2FzOTpyZXR1cm5bMywzXX1yZXR1cm5bMyw0XTtjYXNlIDE6cmV0dXJuWzQsKDAsTi5wYXJzZVNhc1ZpeWFEZWJ1Z1Jlc3BvbnNlKShEZS5yZXN1bHQsdGhpcy5yZXF1ZXN0Q2xpZW50LHZlLnNlcnZlclVybCldO2Nhc2UgMjpyZXR1''@;'; + put 'put ''cm4gUGU9UWUuc2VudCgpLFszLDRdO2Nhc2UgMzpyZXR1cm4gUGU9InN0cmluZyI9PXR5cGVvZiBEZS5yZXN1bHQ/KDAsTi5wYXJzZVdlYm91dFJlc3BvbnNlKShEZS5yZXN1bHQsTyk6RGUucmVzdWx0LFszLDRdO2Nhc2UgNDpyZXR1cm5bMyw2XTtjYXNlIDU6dGhpcy5zZXJ2ZXJUeXBlIT09''@;'; + put 'put ''cS5TZXJ2ZXJUeXBlLlNhc2pzJiYoUGU9InN0cmluZyI9PXR5cGVvZiBEZS5yZXN1bHQ/KDAsTi5nZXRWYWxpZEpzb24pKERlLnJlc3VsdCk6RGUucmVzdWx0KSxRZS5sYWJlbD02O2Nhc2UgNjpyZXR1cm4geWUoUGUpLFsyXX19KX0pfSkuY2F0Y2goZnVuY3Rpb24oRGUpe3JldHVybiBZKFMs''@;'; + put 'put ''dm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBQZT10aGlzO3JldHVybiBXKHRoaXMsZnVuY3Rpb24oUWUpe3N3aXRjaChRZS5sYWJlbCl7Y2FzZSAwOnJldHVybiBEZSBpbnN0YW5jZW9mIGVlLkpvYkV4ZWN1dGlvbkVycm9yJiYodGhpcy5yZXF1ZXN0Q2xpZW50LmFwcGVuZFJlcXVlc3Qo''@;'; + put 'put ''RGUsY2UsdmUuZGVidWcpLENlKG5ldyBlZS5FcnJvclJlc3BvbnNlKG51bGw9PURlP3ZvaWQgMDpEZS5tZXNzYWdlLERlKSkpLERlIGluc3RhbmNlb2YgZWUuTG9naW5SZXF1aXJlZEVycm9yPyh0aGlzLmFwcGVuZFdhaXRpbmdSZXF1ZXN0KGZ1bmN0aW9uKCl7cmV0dXJuIFBlLmV4ZWN1dGUo''@;'; + put 'put ''Y2UsZGUsdmUsQWUpLnRoZW4oZnVuY3Rpb24oJGUpe3llKCRlKX0sZnVuY3Rpb24oJGUpe0NlKCRlKX0pfSksWzQsSWUoKV0pOlszLDJdO2Nhc2UgMTpyZXR1cm4gUWUuc2VudCgpLFszLDNdO2Nhc2UgMjpDZShuZXcgZWUuRXJyb3JSZXNwb25zZSgiRmlsZSB1cGxvYWQgcmVxdWVzdCBmYWls''@;'; + put 'put ''ZWQuIixEZSkpLFFlLmxhYmVsPTM7Y2FzZSAzOnJldHVyblsyXX19KX0pfSl9KV19KX0pfSxvZX0oWig2MTE4KS5CYXNlSm9iRXhlY3V0b3IpO1EuRmlsZVVwbG9hZGVyPUp9LDQ0NDY6ZnVuY3Rpb24oVSxRLFopeyJ1c2Ugc3RyaWN0Ijt2YXIgaWUsYWU9dGhpcyYmdGhpcy5fX2V4dGVuZHN8''@;'; + put 'put ''fChpZT1mdW5jdGlvbihvZSxjZSl7cmV0dXJuKGllPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbihkZSx2ZSl7ZGUuX19wcm90b19fPXZlfXx8ZnVuY3Rpb24oZGUsdmUpe2Zvcih2YXIgQWUgaW4gdmUpT2JqZWN0LnByb3Rv''@;'; + put 'put ''dHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHZlLEFlKSYmKGRlW0FlXT12ZVtBZV0pfSkob2UsY2UpfSxmdW5jdGlvbihvZSxjZSl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGNlJiZudWxsIT09Y2UpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSAiK1N0cmluZyhjZSkr''@;'; + put 'put ''IiBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsIik7ZnVuY3Rpb24gZGUoKXt0aGlzLmNvbnN0cnVjdG9yPW9lfWllKG9lLGNlKSxvZS5wcm90b3R5cGU9bnVsbD09PWNlP09iamVjdC5jcmVhdGUoY2UpOihkZS5wcm90b3R5cGU9Y2UucHJvdG90eXBlLG5ldyBkZSl9KSxZPXRoaXMmJnRo''@;'; + put 'put ''aXMuX19hd2FpdGVyfHxmdW5jdGlvbihvZSxjZSxkZSx2ZSl7cmV0dXJuIG5ldyhkZXx8KGRlPVByb21pc2UpKShmdW5jdGlvbihBZSxrZSl7ZnVuY3Rpb24gU2UoRWUpe3RyeXtUZSh2ZS5uZXh0KEVlKSl9Y2F0Y2goaGUpe2tlKGhlKX19ZnVuY3Rpb24gSWUoRWUpe3RyeXtUZSh2ZS50aHJv''@;'; + put 'put ''dyhFZSkpfWNhdGNoKGhlKXtrZShoZSl9fWZ1bmN0aW9uIFRlKEVlKXt2YXIgaGU7RWUuZG9uZT9BZShFZS52YWx1ZSk6KGhlPUVlLnZhbHVlLGhlIGluc3RhbmNlb2YgZGU/aGU6bmV3IGRlKGZ1bmN0aW9uKE8pe08oaGUpfSkpLnRoZW4oU2UsSWUpfVRlKCh2ZT12ZS5hcHBseShvZSxjZXx8''@;'; + put 'put ''W10pKS5uZXh0KCkpfSl9LFc9dGhpcyYmdGhpcy5fX2dlbmVyYXRvcnx8ZnVuY3Rpb24ob2UsY2Upe3ZhciBkZSx2ZSxBZSxrZSxTZT17bGFiZWw6MCxzZW50OmZ1bmN0aW9uKCl7aWYoMSZBZVswXSl0aHJvdyBBZVsxXTtyZXR1cm4gQWVbMV19LHRyeXM6W10sb3BzOltdfTtyZXR1cm4ga2U9''@;'; + put 'put ''e25leHQ6SWUoMCksdGhyb3c6SWUoMSkscmV0dXJuOkllKDIpfSwiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYoa2VbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSksa2U7ZnVuY3Rpb24gSWUoVGUpe3JldHVybiBmdW5jdGlvbihFZSl7cmV0dXJuIGZ1bmN0aW9u''@;'; + put 'put ''KGhlKXtpZihkZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcuIik7Zm9yKDtTZTspdHJ5e2lmKGRlPTEsdmUmJihBZT0yJmhlWzBdP3ZlLnJldHVybjpoZVswXT92ZS50aHJvd3x8KChBZT12ZS5yZXR1cm4pJiZBZS5jYWxsKHZlKSwwKTp2ZS5u''@;'; + put 'put ''ZXh0KSYmIShBZT1BZS5jYWxsKHZlLGhlWzFdKSkuZG9uZSlyZXR1cm4gQWU7c3dpdGNoKHZlPTAsQWUmJihoZT1bMiZoZVswXSxBZS52YWx1ZV0pLGhlWzBdKXtjYXNlIDA6Y2FzZSAxOkFlPWhlO2JyZWFrO2Nhc2UgNDpyZXR1cm4gU2UubGFiZWwrKyx7dmFsdWU6aGVbMV0sZG9uZTohMX07''@;'; + put 'put ''Y2FzZSA1OlNlLmxhYmVsKyssdmU9aGVbMV0saGU9WzBdO2NvbnRpbnVlO2Nhc2UgNzpoZT1TZS5vcHMucG9wKCksU2UudHJ5cy5wb3AoKTtjb250aW51ZTtkZWZhdWx0OmlmKCEoKEFlPShBZT1TZS50cnlzKS5sZW5ndGg+MCYmQWVbQWUubGVuZ3RoLTFdKXx8NiE9PWhlWzBdJiYyIT09aGVb''@;'; + put 'put ''MF0pKXtTZT0wO2NvbnRpbnVlfWlmKDM9PT1oZVswXSYmKCFBZXx8aGVbMV0+QWVbMF0mJmhlWzFdPEFlWzNdKSl7U2UubGFiZWw9aGVbMV07YnJlYWt9aWYoNj09PWhlWzBdJiZTZS5sYWJlbDxBZVsxXSl7U2UubGFiZWw9QWVbMV0sQWU9aGU7YnJlYWt9aWYoQWUmJlNlLmxhYmVsPEFlWzJd''@;'; + put 'put ''KXtTZS5sYWJlbD1BZVsyXSxTZS5vcHMucHVzaChoZSk7YnJlYWt9QWVbMl0mJlNlLm9wcy5wb3AoKSxTZS50cnlzLnBvcCgpO2NvbnRpbnVlfWhlPWNlLmNhbGwob2UsU2UpfWNhdGNoKE8pe2hlPVs2LE9dLHZlPTB9ZmluYWxseXtkZT1BZT0wfWlmKDUmaGVbMF0pdGhyb3cgaGVbMV07cmV0''@;'; + put 'put ''dXJue3ZhbHVlOmhlWzBdP2hlWzFdOnZvaWQgMCxkb25lOiEwfX0oW1RlLEVlXSl9fX07T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLFEuSmVzSm9iRXhlY3V0b3I9dm9pZCAwO3ZhciBOPVooMzkwMCksZWU9WigxMzk1KSxxPVooNjExOCksSj1aKDU5''@;'; + put 'put ''MjgpLHNlPWZ1bmN0aW9uKG9lKXtmdW5jdGlvbiBjZShkZSx2ZSl7dmFyIEFlPW9lLmNhbGwodGhpcyxkZSxOLlNlcnZlclR5cGUuU2FzVml5YSl8fHRoaXM7cmV0dXJuIEFlLnNhc1ZpeWFBcGlDbGllbnQ9dmUsQWV9cmV0dXJuIGFlKGNlLG9lKSxjZS5wcm90b3R5cGUuZXhlY3V0ZT1mdW5j''@;'; + put 'put ''dGlvbihkZSx2ZSxBZSxrZSxTZSxJZSl7cmV0dXJuIHZvaWQgMD09PUllJiYoSWU9W10pLFkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIFRlLGhlPXRoaXM7cmV0dXJuIFcodGhpcyxmdW5jdGlvbihPKXtyZXR1cm4gVGU9a2V8fGZ1bmN0aW9uKCl7cmV0dXJuIFByb21pc2Uu''@;'; + put 'put ''cmVzb2x2ZSgpfSxbMixuZXcgUHJvbWlzZShmdW5jdGlvbih6LG5lKXt2YXIgdGU7bnVsbD09PSh0ZT1oZS5zYXNWaXlhQXBpQ2xpZW50KXx8dm9pZCAwPT09dGV8fHRlLmV4ZWN1dGVKb2IoZGUsQWUuY29udGV4dE5hbWUsQWUuZGVidWcsdmUsU2UpLnRoZW4oZnVuY3Rpb24oeCl7aGUuc2Fz''@;'; + put 'put ''Vml5YUFwaUNsaWVudC5hcHBlbmRSZXF1ZXN0KHgsZGUsQWUuZGVidWcpO3ZhciBQPSgwLEouYXBwZW5kRXh0cmFSZXNwb25zZUF0dHJpYnV0ZXMpKHgsSWUpO3ooUCl9KS5jYXRjaChmdW5jdGlvbih4KXtyZXR1cm4gWShoZSx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIFA9dGhpczty''@;'; + put 'put ''ZXR1cm4gVyh0aGlzLGZ1bmN0aW9uKFYpe3N3aXRjaChWLmxhYmVsKXtjYXNlIDA6cmV0dXJuIHggaW5zdGFuY2VvZiBlZS5Kb2JFeGVjdXRpb25FcnJvciYmKHRoaXMuc2FzVml5YUFwaUNsaWVudC5hcHBlbmRSZXF1ZXN0KHgsZGUsQWUuZGVidWcpLG5lKG5ldyBlZS5FcnJvclJlc3BvbnNl''@;'; + put 'put ''KG51bGw9PXg/dm9pZCAwOngubWVzc2FnZSx4KSkpLHggaW5zdGFuY2VvZiBlZS5Mb2dpblJlcXVpcmVkRXJyb3I/KHRoaXMuYXBwZW5kV2FpdGluZ1JlcXVlc3QoZnVuY3Rpb24oKXtyZXR1cm4gUC5leGVjdXRlKGRlLHZlLEFlLGtlLFNlLEllKS50aGVuKGZ1bmN0aW9uKFQpe3ooVCl9LGZ1''@;'; + put 'put ''bmN0aW9uKFQpe25lKFQpfSl9KSxbNCxUZSgpXSk6WzMsMl07Y2FzZSAxOnJldHVybiBWLnNlbnQoKSxbMywzXTtjYXNlIDI6bmUobmV3IGVlLkVycm9yUmVzcG9uc2UobnVsbD09eD92b2lkIDA6eC5tZXNzYWdlLHgpKSxWLmxhYmVsPTM7Y2FzZSAzOnJldHVyblsyXX19KX0pfSl9KV19KX0p''@;'; + put 'put ''fSxjZX0ocS5CYXNlSm9iRXhlY3V0b3IpO1EuSmVzSm9iRXhlY3V0b3I9c2V9LDYxMTg6ZnVuY3Rpb24oVSxRLFopeyJ1c2Ugc3RyaWN0Ijt2YXIgaWU9dGhpcyYmdGhpcy5fX2F3YWl0ZXJ8fGZ1bmN0aW9uKE4sZWUscSxKKXtyZXR1cm4gbmV3KHF8fChxPVByb21pc2UpKShmdW5jdGlvbihz''@;'; + put 'put ''ZSxvZSl7ZnVuY3Rpb24gY2UoQWUpe3RyeXt2ZShKLm5leHQoQWUpKX1jYXRjaChrZSl7b2Uoa2UpfX1mdW5jdGlvbiBkZShBZSl7dHJ5e3ZlKEoudGhyb3coQWUpKX1jYXRjaChrZSl7b2Uoa2UpfX1mdW5jdGlvbiB2ZShBZSl7dmFyIGtlO0FlLmRvbmU/c2UoQWUudmFsdWUpOihrZT1BZS52''@;'; + put 'put ''YWx1ZSxrZSBpbnN0YW5jZW9mIHE/a2U6bmV3IHEoZnVuY3Rpb24oU2Upe1NlKGtlKX0pKS50aGVuKGNlLGRlKX12ZSgoSj1KLmFwcGx5KE4sZWV8fFtdKSkubmV4dCgpKX0pfSxhZT10aGlzJiZ0aGlzLl9fZ2VuZXJhdG9yfHxmdW5jdGlvbihOLGVlKXt2YXIgcSxKLHNlLG9lLGNlPXtsYWJl''@;'; + put 'put ''bDowLHNlbnQ6ZnVuY3Rpb24oKXtpZigxJnNlWzBdKXRocm93IHNlWzFdO3JldHVybiBzZVsxXX0sdHJ5czpbXSxvcHM6W119O3JldHVybiBvZT17bmV4dDpkZSgwKSx0aHJvdzpkZSgxKSxyZXR1cm46ZGUoMil9LCJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJihvZVtTeW1ib2wuaXRlcmF0''@;'; + put 'put ''b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSxvZTtmdW5jdGlvbiBkZSh2ZSl7cmV0dXJuIGZ1bmN0aW9uKEFlKXtyZXR1cm4gZnVuY3Rpb24oa2Upe2lmKHEpdGhyb3cgbmV3IFR5cGVFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLiIpO2Zvcig7Y2U7KXRyeXtpZihx''@;'; + put 'put ''PTEsSiYmKHNlPTIma2VbMF0/Si5yZXR1cm46a2VbMF0/Si50aHJvd3x8KChzZT1KLnJldHVybikmJnNlLmNhbGwoSiksMCk6Si5uZXh0KSYmIShzZT1zZS5jYWxsKEosa2VbMV0pKS5kb25lKXJldHVybiBzZTtzd2l0Y2goSj0wLHNlJiYoa2U9WzIma2VbMF0sc2UudmFsdWVdKSxrZVswXSl7''@;'; + put 'put ''Y2FzZSAwOmNhc2UgMTpzZT1rZTticmVhaztjYXNlIDQ6cmV0dXJuIGNlLmxhYmVsKysse3ZhbHVlOmtlWzFdLGRvbmU6ITF9O2Nhc2UgNTpjZS5sYWJlbCsrLEo9a2VbMV0sa2U9WzBdO2NvbnRpbnVlO2Nhc2UgNzprZT1jZS5vcHMucG9wKCksY2UudHJ5cy5wb3AoKTtjb250aW51ZTtkZWZh''@;'; + put 'put ''dWx0OmlmKCEoKHNlPShzZT1jZS50cnlzKS5sZW5ndGg+MCYmc2Vbc2UubGVuZ3RoLTFdKXx8NiE9PWtlWzBdJiYyIT09a2VbMF0pKXtjZT0wO2NvbnRpbnVlfWlmKDM9PT1rZVswXSYmKCFzZXx8a2VbMV0+c2VbMF0mJmtlWzFdPHNlWzNdKSl7Y2UubGFiZWw9a2VbMV07YnJlYWt9aWYoNj09''@;'; + put 'put ''PWtlWzBdJiZjZS5sYWJlbDxzZVsxXSl7Y2UubGFiZWw9c2VbMV0sc2U9a2U7YnJlYWt9aWYoc2UmJmNlLmxhYmVsPHNlWzJdKXtjZS5sYWJlbD1zZVsyXSxjZS5vcHMucHVzaChrZSk7YnJlYWt9c2VbMl0mJmNlLm9wcy5wb3AoKSxjZS50cnlzLnBvcCgpO2NvbnRpbnVlfWtlPWVlLmNhbGwo''@;'; + put 'put ''TixjZSl9Y2F0Y2goU2Upe2tlPVs2LFNlXSxKPTB9ZmluYWxseXtxPXNlPTB9aWYoNSZrZVswXSl0aHJvdyBrZVsxXTtyZXR1cm57dmFsdWU6a2VbMF0/a2VbMV06dm9pZCAwLGRvbmU6ITB9fShbdmUsQWVdKX19fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwiX19lc01vZHVsZSIse3ZhbHVl''@;'; + put 'put ''OiEwfSksUS5CYXNlSm9iRXhlY3V0b3I9dm9pZCAwO3ZhciBZPVooNTkyOCksVz1mdW5jdGlvbigpe2Z1bmN0aW9uIE4oZWUscSl7dmFyIEo9dGhpczt0aGlzLnNlcnZlclVybD1lZSx0aGlzLnNlcnZlclR5cGU9cSx0aGlzLndhaXRpbmdSZXF1ZXN0cz1bXSx0aGlzLnJlc2VuZFdhaXRpbmdS''@;'; + put 'put ''ZXF1ZXN0cz1mdW5jdGlvbigpe3JldHVybiBpZShKLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgc2U9dGhpcztyZXR1cm4gYWUodGhpcyxmdW5jdGlvbihvZSl7c3dpdGNoKG9lLmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsKDAsWS5hc3luY0ZvckVhY2gpKHRoaXMud2FpdGluZ1JlcXVl''@;'; + put 'put ''c3RzLGZ1bmN0aW9uKGNlKXtyZXR1cm4gaWUoc2Usdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBhZSh0aGlzLGZ1bmN0aW9uKGRlKXtzd2l0Y2goZGUubGFiZWwpe2Nhc2UgMDpyZXR1cm5bNCxjZSgpXTtjYXNlIDE6cmV0dXJuIGRlLnNlbnQoKSxbMl19fSl9KX0pXTtjYXNlIDE6''@;'; + put 'put ''cmV0dXJuIG9lLnNlbnQoKSx0aGlzLndhaXRpbmdSZXF1ZXN0cz1bXSxbMl19fSl9KX19cmV0dXJuIE4ucHJvdG90eXBlLmFwcGVuZFdhaXRpbmdSZXF1ZXN0PWZ1bmN0aW9uKGVlKXt0aGlzLndhaXRpbmdSZXF1ZXN0cy5wdXNoKGVlKX0sTi5wcm90b3R5cGUuZ2V0UmVxdWVzdFBhcmFtcz1m''@;'; + put 'put ''dW5jdGlvbihlZSl7dmFyIHE9e307cmV0dXJuIGVlLmRlYnVnJiYocS5fb21pdHRleHRsb2c9ImZhbHNlIixxLl9vbWl0c2Vzc2lvbnJlc3VsdHM9ImZhbHNlIixxLl9kZWJ1Zz0xMzEpLHF9LE59KCk7US5CYXNlSm9iRXhlY3V0b3I9V30sMjY5MzpmdW5jdGlvbihVLFEsWil7InVzZSBzdHJp''@;'; + put 'put ''Y3QiO3ZhciBpZSxhZT10aGlzJiZ0aGlzLl9fZXh0ZW5kc3x8KGllPWZ1bmN0aW9uKHZlLEFlKXtyZXR1cm4oaWU9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKGtlLFNlKXtrZS5fX3Byb3RvX189U2V9fHxmdW5jdGlvbihr''@;'; + put 'put ''ZSxTZSl7Zm9yKHZhciBJZSBpbiBTZSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoU2UsSWUpJiYoa2VbSWVdPVNlW0llXSl9KSh2ZSxBZSl9LGZ1bmN0aW9uKHZlLEFlKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgQWUmJm51bGwhPT1BZSl0aHJvdyBuZXcgVHlwZUVycm9y''@;'; + put 'put ''KCJDbGFzcyBleHRlbmRzIHZhbHVlICIrU3RyaW5nKEFlKSsiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGwiKTtmdW5jdGlvbiBrZSgpe3RoaXMuY29uc3RydWN0b3I9dmV9aWUodmUsQWUpLHZlLnByb3RvdHlwZT1udWxsPT09QWU/T2JqZWN0LmNyZWF0ZShBZSk6KGtlLnByb3RvdHlw''@;'; + put 'put ''ZT1BZS5wcm90b3R5cGUsbmV3IGtlKX0pLFk9dGhpcyYmdGhpcy5fX2Fzc2lnbnx8ZnVuY3Rpb24oKXtyZXR1cm4gWT1PYmplY3QuYXNzaWdufHxmdW5jdGlvbih2ZSl7Zm9yKHZhciBBZSxrZT0xLFNlPWFyZ3VtZW50cy5sZW5ndGg7a2U8U2U7a2UrKylmb3IodmFyIEllIGluIEFlPWFyZ3Vt''@;'; + put 'put ''ZW50c1trZV0pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKEFlLEllKSYmKHZlW0llXT1BZVtJZV0pO3JldHVybiB2ZX0sWS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LFc9dGhpcyYmdGhpcy5fX2F3YWl0ZXJ8fGZ1bmN0aW9uKHZlLEFlLGtlLFNlKXtyZXR1cm4gbmV3KGtl''@;'; + put 'put ''fHwoa2U9UHJvbWlzZSkpKGZ1bmN0aW9uKEllLFRlKXtmdW5jdGlvbiBFZSh6KXt0cnl7TyhTZS5uZXh0KHopKX1jYXRjaChuZSl7VGUobmUpfX1mdW5jdGlvbiBoZSh6KXt0cnl7TyhTZS50aHJvdyh6KSl9Y2F0Y2gobmUpe1RlKG5lKX19ZnVuY3Rpb24gTyh6KXt2YXIgbmU7ei5kb25lP0ll''@;'; + put 'put ''KHoudmFsdWUpOihuZT16LnZhbHVlLG5lIGluc3RhbmNlb2Yga2U/bmU6bmV3IGtlKGZ1bmN0aW9uKHRlKXt0ZShuZSl9KSkudGhlbihFZSxoZSl9TygoU2U9U2UuYXBwbHkodmUsQWV8fFtdKSkubmV4dCgpKX0pfSxOPXRoaXMmJnRoaXMuX19nZW5lcmF0b3J8fGZ1bmN0aW9uKHZlLEFlKXt2''@;'; + put 'put ''YXIga2UsU2UsSWUsVGUsRWU9e2xhYmVsOjAsc2VudDpmdW5jdGlvbigpe2lmKDEmSWVbMF0pdGhyb3cgSWVbMV07cmV0dXJuIEllWzFdfSx0cnlzOltdLG9wczpbXX07cmV0dXJuIFRlPXtuZXh0OmhlKDApLHRocm93OmhlKDEpLHJldHVybjpoZSgyKX0sImZ1bmN0aW9uIj09dHlwZW9mIFN5''@;'; + put 'put ''bWJvbCYmKFRlW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pLFRlO2Z1bmN0aW9uIGhlKE8pe3JldHVybiBmdW5jdGlvbih6KXtyZXR1cm4gZnVuY3Rpb24obmUpe2lmKGtlKXRocm93IG5ldyBUeXBlRXJyb3IoIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGlu''@;'; + put 'put ''Zy4iKTtmb3IoO0VlOyl0cnl7aWYoa2U9MSxTZSYmKEllPTImbmVbMF0/U2UucmV0dXJuOm5lWzBdP1NlLnRocm93fHwoKEllPVNlLnJldHVybikmJkllLmNhbGwoU2UpLDApOlNlLm5leHQpJiYhKEllPUllLmNhbGwoU2UsbmVbMV0pKS5kb25lKXJldHVybiBJZTtzd2l0Y2goU2U9MCxJZSYm''@;'; + put 'put ''KG5lPVsyJm5lWzBdLEllLnZhbHVlXSksbmVbMF0pe2Nhc2UgMDpjYXNlIDE6SWU9bmU7YnJlYWs7Y2FzZSA0OnJldHVybiBFZS5sYWJlbCsrLHt2YWx1ZTpuZVsxXSxkb25lOiExfTtjYXNlIDU6RWUubGFiZWwrKyxTZT1uZVsxXSxuZT1bMF07Y29udGludWU7Y2FzZSA3Om5lPUVlLm9wcy5w''@;'; + put 'put ''b3AoKSxFZS50cnlzLnBvcCgpO2NvbnRpbnVlO2RlZmF1bHQ6aWYoISgoSWU9KEllPUVlLnRyeXMpLmxlbmd0aD4wJiZJZVtJZS5sZW5ndGgtMV0pfHw2IT09bmVbMF0mJjIhPT1uZVswXSkpe0VlPTA7Y29udGludWV9aWYoMz09PW5lWzBdJiYoIUllfHxuZVsxXT5JZVswXSYmbmVbMV08SWVb''@;'; + put 'put ''M10pKXtFZS5sYWJlbD1uZVsxXTticmVha31pZig2PT09bmVbMF0mJkVlLmxhYmVsPEllWzFdKXtFZS5sYWJlbD1JZVsxXSxJZT1uZTticmVha31pZihJZSYmRWUubGFiZWw8SWVbMl0pe0VlLmxhYmVsPUllWzJdLEVlLm9wcy5wdXNoKG5lKTticmVha31JZVsyXSYmRWUub3BzLnBvcCgpLEVl''@;'; + put 'put ''LnRyeXMucG9wKCk7Y29udGludWV9bmU9QWUuY2FsbCh2ZSxFZSl9Y2F0Y2godGUpe25lPVs2LHRlXSxTZT0wfWZpbmFsbHl7a2U9SWU9MH1pZig1Jm5lWzBdKXRocm93IG5lWzFdO3JldHVybnt2YWx1ZTpuZVswXT9uZVsxXTp2b2lkIDAsZG9uZTohMH19KFtPLHpdKX19fTtPYmplY3QuZGVm''@;'; + put 'put ''aW5lUHJvcGVydHkoUSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksUS5TYXM5Sm9iRXhlY3V0b3I9dm9pZCAwO3ZhciBlZT1aKDYyMzApLHE9WigxMzk1KSxKPVooNTkyOCksc2U9Wig2MTE4KSxvZT1aKDc5NSksY2U9ZnVuY3Rpb24odmUpe2Z1bmN0aW9uIEFlKGtlLFNlLEllLFRlLEVlKXt2''@;'; + put 'put ''YXIgaGU9dmUuY2FsbCh0aGlzLGtlLFNlKXx8dGhpcztyZXR1cm4gaGUuam9ic1BhdGg9SWUsaGUucmVxdWVzdENsaWVudD1UZSxoZS5zYXM5UmVxdWVzdENsaWVudD1uZXcgb2UuU2FzOVJlcXVlc3RDbGllbnQoa2UsRWUpLGhlfXJldHVybiBhZShBZSx2ZSksQWUucHJvdG90eXBlLmV4ZWN1''@;'; + put 'put ''dGU9ZnVuY3Rpb24oa2UsU2UsSWUpe3JldHVybiBXKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBUZSxFZSxoZSxPLHosbmUsdGU9dGhpcztyZXR1cm4gTih0aGlzLGZ1bmN0aW9uKHgpe3N3aXRjaCh4LmxhYmVsKXtjYXNlIDA6aWYoVGU9KDAsSi5pc1JlbGF0aXZlUGF0aCko''@;'; + put 'put ''a2UpJiZJZS5hcHBMb2M/SWUuYXBwTG9jLnJlcGxhY2UoL1wvPyQvLCIvIikra2UucmVwbGFjZSgvXlwvLywiIik6a2UsRWU9IiIuY29uY2F0KEllLnNlcnZlclVybCkuY29uY2F0KHRoaXMuam9ic1BhdGgsIj8iKS5jb25jYXQoIl9wcm9ncmFtPSIrVGUpLEVlPSIiLmNvbmNhdChFZSkuY29u''@;'; + put 'put ''Y2F0KEllLnVzZXJuYW1lJiZJZS5wYXNzd29yZD8iJl91c2VybmFtZT0iK0llLnVzZXJuYW1lKyImX3Bhc3N3b3JkPSIrSWUucGFzc3dvcmQ6IiIpLEVlPSIiLmNvbmNhdChFZSkuY29uY2F0KEllLmRlYnVnPyImX2RlYnVnPTEzMSI6IiIpLGhlPVkoe30sdGhpcy5nZXRSZXF1ZXN0UGFyYW1z''@;'; + put 'put ''KEllKSksTz1uZXcgZWUsU2UpdHJ5e089ZGUoTyxTZSl9Y2F0Y2goUCl7cmV0dXJuWzIsUHJvbWlzZS5yZWplY3QobmV3IHEuRXJyb3JSZXNwb25zZShudWxsPT1QP3ZvaWQgMDpQLm1lc3NhZ2UsUCkpXX1lbHNlIFNlPSIiO2Zvcih6IGluIGhlKWhlLmhhc093blByb3BlcnR5KHopJiZPLmFw''@;'; + put 'put ''cGVuZCh6LGhlW3pdKTtyZXR1cm5bNCx0aGlzLnNhczlSZXF1ZXN0Q2xpZW50LmxvZ2luKEllLnVzZXJuYW1lLEllLnBhc3N3b3JkLHRoaXMuam9ic1BhdGgpXTtjYXNlIDE6cmV0dXJuIHguc2VudCgpLG5lPVNlJiZPYmplY3Qua2V5cyhTZSkubGVuZ3RoPyJtdWx0aXBhcnQvZm9ybS1kYXRh''@;'; + put 'put ''OyBib3VuZGFyeT0iK08uX2JvdW5kYXJ5OiJ0ZXh0L3BsYWluIixbMixuZXcgUHJvbWlzZShmdW5jdGlvbihQLFYpe3JldHVybiB0ZS5zYXM5UmVxdWVzdENsaWVudC5wb3N0KEVlLE8sdm9pZCAwLG5lLHtBY2NlcHQ6IiovKiIsQ29ubmVjdGlvbjoiS2VlcC1BbGl2ZSJ9KS50aGVuKGZ1bmN0''@;'; + put 'put ''aW9uKFQpe3RlLnJlcXVlc3RDbGllbnQuYXBwZW5kUmVxdWVzdChULGtlLEllLmRlYnVnKSxQKFQpfSkuY2F0Y2goZnVuY3Rpb24oVCl7dmFyIFM9VDtULnJlc3VsdCYmIiIhPT1ULnJlc3VsdD9TPVQucmVzdWx0OlQubWVzc2FnZSYmKFM9VC5tZXNzYWdlKSx0ZS5yZXF1ZXN0Q2xpZW50LmFw''@;'; + put 'put ''cGVuZFJlcXVlc3QoUyxrZSxJZS5kZWJ1ZyksVihuZXcgcS5FcnJvclJlc3BvbnNlKG51bGw9PVQ/dm9pZCAwOlQubWVzc2FnZSxUKSl9KX0pXX19KX0pfSxBZS5wcm90b3R5cGUuZ2V0UmVxdWVzdFBhcmFtcz1mdW5jdGlvbihrZSl7dmFyIFNlPXt9O3JldHVybiBrZS5kZWJ1ZyYmKFNlLl9k''@;'; + put 'put ''ZWJ1Zz0xMzEpLFNlfSxBZX0oc2UuQmFzZUpvYkV4ZWN1dG9yKTtRLlNhczlKb2JFeGVjdXRvcj1jZTt2YXIgZGU9ZnVuY3Rpb24odmUsQWUpe2Zvcih2YXIga2UgaW4gQWUpe3ZhciBTZT1rZSxJZT0oMCxKLmNvbnZlcnRUb0NTVikoQWUsa2UpO2lmKCJFUlJPUjogTEFSR0UgU1RSSU5HIExF''@;'; + put 'put ''TkdUSCI9PT1JZSl0aHJvdyBuZXcgRXJyb3IoIlRoZSBtYXggbGVuZ3RoIG9mIGEgc3RyaW5nIHZhbHVlIGluIFNBU2pzIGlzIDMyNzY1IGNoYXJhY3RlcnMuIik7dmUuYXBwZW5kKFNlLEllLHtmaWxlbmFtZToiIi5jb25jYXQoU2UsIi5jc3YiKSxjb250ZW50VHlwZToiYXBwbGljYXRpb24v''@;'; + put 'put ''Y3N2In0pfXJldHVybiB2ZX19LDEwNjU6ZnVuY3Rpb24oVSxRLFopeyJ1c2Ugc3RyaWN0Ijt2YXIgaWUsYWU9dGhpcyYmdGhpcy5fX2V4dGVuZHN8fChpZT1mdW5jdGlvbihkZSx2ZSl7cmV0dXJuKGllPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFy''@;'; + put 'put ''cmF5JiZmdW5jdGlvbihBZSxrZSl7QWUuX19wcm90b19fPWtlfXx8ZnVuY3Rpb24oQWUsa2Upe2Zvcih2YXIgU2UgaW4ga2UpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGtlLFNlKSYmKEFlW1NlXT1rZVtTZV0pfSkoZGUsdmUpfSxmdW5jdGlvbihkZSx2ZSl7aWYoImZ1''@;'; + put 'put ''bmN0aW9uIiE9dHlwZW9mIHZlJiZudWxsIT09dmUpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSAiK1N0cmluZyh2ZSkrIiBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsIik7ZnVuY3Rpb24gQWUoKXt0aGlzLmNvbnN0cnVjdG9yPWRlfWllKGRlLHZlKSxkZS5w''@;'; + put 'put ''cm90b3R5cGU9bnVsbD09PXZlP09iamVjdC5jcmVhdGUodmUpOihBZS5wcm90b3R5cGU9dmUucHJvdG90eXBlLG5ldyBBZSl9KSxZPXRoaXMmJnRoaXMuX19hc3NpZ258fGZ1bmN0aW9uKCl7cmV0dXJuIFk9T2JqZWN0LmFzc2lnbnx8ZnVuY3Rpb24oZGUpe2Zvcih2YXIgdmUsQWU9MSxrZT1h''@;'; + put 'put ''cmd1bWVudHMubGVuZ3RoO0FlPGtlO0FlKyspZm9yKHZhciBTZSBpbiB2ZT1hcmd1bWVudHNbQWVdKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh2ZSxTZSkmJihkZVtTZV09dmVbU2VdKTtyZXR1cm4gZGV9LFkuYXBwbHkodGhpcyxhcmd1bWVudHMpfSxXPXRoaXMmJnRo''@;'; + put 'put ''aXMuX19hd2FpdGVyfHxmdW5jdGlvbihkZSx2ZSxBZSxrZSl7cmV0dXJuIG5ldyhBZXx8KEFlPVByb21pc2UpKShmdW5jdGlvbihTZSxJZSl7ZnVuY3Rpb24gVGUoTyl7dHJ5e2hlKGtlLm5leHQoTykpfWNhdGNoKHope0llKHopfX1mdW5jdGlvbiBFZShPKXt0cnl7aGUoa2UudGhyb3coTykp''@;'; + put 'put ''fWNhdGNoKHope0llKHopfX1mdW5jdGlvbiBoZShPKXt2YXIgejtPLmRvbmU/U2UoTy52YWx1ZSk6KHo9Ty52YWx1ZSx6IGluc3RhbmNlb2YgQWU/ejpuZXcgQWUoZnVuY3Rpb24obmUpe25lKHopfSkpLnRoZW4oVGUsRWUpfWhlKChrZT1rZS5hcHBseShkZSx2ZXx8W10pKS5uZXh0KCkpfSl9''@;'; + put 'put ''LE49dGhpcyYmdGhpcy5fX2dlbmVyYXRvcnx8ZnVuY3Rpb24oZGUsdmUpe3ZhciBBZSxrZSxTZSxJZSxUZT17bGFiZWw6MCxzZW50OmZ1bmN0aW9uKCl7aWYoMSZTZVswXSl0aHJvdyBTZVsxXTtyZXR1cm4gU2VbMV19LHRyeXM6W10sb3BzOltdfTtyZXR1cm4gSWU9e25leHQ6RWUoMCksdGhy''@;'; + put 'put ''b3c6RWUoMSkscmV0dXJuOkVlKDIpfSwiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYoSWVbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSksSWU7ZnVuY3Rpb24gRWUoaGUpe3JldHVybiBmdW5jdGlvbihPKXtyZXR1cm4gZnVuY3Rpb24oeil7aWYoQWUpdGhyb3cg''@;'; + put 'put ''bmV3IFR5cGVFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLiIpO2Zvcig7VGU7KXRyeXtpZihBZT0xLGtlJiYoU2U9MiZ6WzBdP2tlLnJldHVybjp6WzBdP2tlLnRocm93fHwoKFNlPWtlLnJldHVybikmJlNlLmNhbGwoa2UpLDApOmtlLm5leHQpJiYhKFNlPVNlLmNhbGwo''@;'; + put 'put ''a2UselsxXSkpLmRvbmUpcmV0dXJuIFNlO3N3aXRjaChrZT0wLFNlJiYoej1bMiZ6WzBdLFNlLnZhbHVlXSkselswXSl7Y2FzZSAwOmNhc2UgMTpTZT16O2JyZWFrO2Nhc2UgNDpyZXR1cm4gVGUubGFiZWwrKyx7dmFsdWU6elsxXSxkb25lOiExfTtjYXNlIDU6VGUubGFiZWwrKyxrZT16WzFd''@;'; + put 'put ''LHo9WzBdO2NvbnRpbnVlO2Nhc2UgNzp6PVRlLm9wcy5wb3AoKSxUZS50cnlzLnBvcCgpO2NvbnRpbnVlO2RlZmF1bHQ6aWYoISgoU2U9KFNlPVRlLnRyeXMpLmxlbmd0aD4wJiZTZVtTZS5sZW5ndGgtMV0pfHw2IT09elswXSYmMiE9PXpbMF0pKXtUZT0wO2NvbnRpbnVlfWlmKDM9PT16WzBd''@;'; + put 'put ''JiYoIVNlfHx6WzFdPlNlWzBdJiZ6WzFdPFNlWzNdKSl7VGUubGFiZWw9elsxXTticmVha31pZig2PT09elswXSYmVGUubGFiZWw8U2VbMV0pe1RlLmxhYmVsPVNlWzFdLFNlPXo7YnJlYWt9aWYoU2UmJlRlLmxhYmVsPFNlWzJdKXtUZS5sYWJlbD1TZVsyXSxUZS5vcHMucHVzaCh6KTticmVh''@;'; + put 'put ''a31TZVsyXSYmVGUub3BzLnBvcCgpLFRlLnRyeXMucG9wKCk7Y29udGludWV9ej12ZS5jYWxsKGRlLFRlKX1jYXRjaChuZSl7ej1bNixuZV0sa2U9MH1maW5hbGx5e0FlPVNlPTB9aWYoNSZ6WzBdKXRocm93IHpbMV07cmV0dXJue3ZhbHVlOnpbMF0/elsxXTp2b2lkIDAsZG9uZTohMH19KFto''@;'; + put 'put ''ZSxPXSl9fX07T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLFEuU2FzanNKb2JFeGVjdXRvcj12b2lkIDA7dmFyIGVlPVooNjIzMCkscT1aKDM5MDApLEo9WigxMzk1KSxzZT1aKDQwMzcpLG9lPVooNTkyOCksY2U9ZnVuY3Rpb24oZGUpe2Z1bmN0aW9u''@;'; + put 'put ''IHZlKEFlLGtlLFNlKXt2YXIgSWU9ZGUuY2FsbCh0aGlzLEFlLHEuU2VydmVyVHlwZS5TYXNqcyl8fHRoaXM7cmV0dXJuIEllLmpvYnNQYXRoPWtlLEllLnJlcXVlc3RDbGllbnQ9U2UsSWV9cmV0dXJuIGFlKHZlLGRlKSx2ZS5wcm90b3R5cGUuZXhlY3V0ZT1mdW5jdGlvbihBZSxrZSxTZSxJ''@;'; + put 'put ''ZSxUZSxFZSl7cmV0dXJuIHZvaWQgMD09PUVlJiYoRWU9W10pLFcodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGhlLE8seixuZSx0ZSx4LFAsVD10aGlzO3JldHVybiBOKHRoaXMsZnVuY3Rpb24oUyl7aWYoaGU9SWUsTz0oMCxvZS5pc1JlbGF0aXZlUGF0aCkoQWUpJiZTZS5h''@;'; + put 'put ''cHBMb2M/U2UuYXBwTG9jLnJlcGxhY2UoL1wvPyQvLCIvIikrQWUucmVwbGFjZSgvXlwvLywiIik6QWUsej0iIi5jb25jYXQoU2Uuc2VydmVyVXJsKS5jb25jYXQodGhpcy5qb2JzUGF0aCwiLz8iKS5jb25jYXQoIl9wcm9ncmFtPSIrTyksbmU9WSh7fSx0aGlzLmdldFJlcXVlc3RQYXJhbXMo''@;'; + put 'put ''U2UpKSx0ZT0idW5kZWZpbmVkIj09dHlwZW9mIEZvcm1EYXRhP25ldyBlZTpuZXcgRm9ybURhdGEsa2UpdHJ5e3RlPSgwLHNlLmdlbmVyYXRlRmlsZVVwbG9hZEZvcm0pKHRlLGtlKX1jYXRjaChGKXtyZXR1cm5bMixQcm9taXNlLnJlamVjdChuZXcgSi5FcnJvclJlc3BvbnNlKG51bGw9PUY/''@;'; + put 'put ''dm9pZCAwOkYubWVzc2FnZSxGKSldfWZvcih4IGluIG5lKW5lLmhhc093blByb3BlcnR5KHgpJiZ0ZS5hcHBlbmQoeCxuZVt4XSk7cmV0dXJuIFA9dGUgaW5zdGFuY2VvZiBlZSYmInVuZGVmaW5lZCI9PXR5cGVvZiBGb3JtRGF0YT8ibXVsdGlwYXJ0L2Zvcm0tZGF0YTsgYm91bmRhcnk9Ii5j''@;'; + put 'put ''b25jYXQodGUuZ2V0Qm91bmRhcnkoKSk6dm9pZCAwLFsyLG5ldyBQcm9taXNlKGZ1bmN0aW9uKEYseWUpe1QucmVxdWVzdENsaWVudC5wb3N0KHosdGUsbnVsbD09VGU/dm9pZCAwOlRlLmFjY2Vzc190b2tlbixQKS50aGVuKGZ1bmN0aW9uKENlKXtyZXR1cm4gVyhULHZvaWQgMCx2b2lkIDAs''@;'; + put 'put ''ZnVuY3Rpb24oKXt2YXIgRGU7cmV0dXJuIE4odGhpcyxmdW5jdGlvbihQZSl7aWYoT2JqZWN0LmVudHJpZXMoQ2UucmVzdWx0KS5sZW5ndGg8MSl0aHJvdyBuZXcgSi5Kb2JFeGVjdXRpb25FcnJvcigwLCJObyB3ZWJvdXQgd2FzIHJldHVybmVkIGJ5IGpvYiAiLmNvbmNhdChPLCIuICBQbGVh''@;'; + put 'put ''c2UgY2hlY2sgdGhlIFNBUyBsb2cgZm9yIG1vcmUgaW5mby4iKSxDZS5sb2cpO3JldHVybiB0aGlzLnJlcXVlc3RDbGllbnQuYXBwZW5kUmVxdWVzdChDZSxBZSxTZS5kZWJ1ZyksRGU9KDAsb2UuYXBwZW5kRXh0cmFSZXNwb25zZUF0dHJpYnV0ZXMpKENlLEVlKSxGKERlKSxbMl19KX0pfSku''@;'; + put 'put ''Y2F0Y2goZnVuY3Rpb24oQ2Upe3JldHVybiBXKFQsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBEZT10aGlzO3JldHVybiBOKHRoaXMsZnVuY3Rpb24oUGUpe3N3aXRjaChQZS5sYWJlbCl7Y2FzZSAwOnJldHVybiBDZSBpbnN0YW5jZW9mIEouSm9iRXhlY3V0aW9uRXJyb3ImJih0aGlz''@;'; + put 'put ''LnJlcXVlc3RDbGllbnQuYXBwZW5kUmVxdWVzdChDZSxBZSxTZS5kZWJ1ZykseWUobmV3IEouRXJyb3JSZXNwb25zZShudWxsPT1DZT92b2lkIDA6Q2UubWVzc2FnZSxDZSkpKSxDZSBpbnN0YW5jZW9mIEouTG9naW5SZXF1aXJlZEVycm9yPyhJZXx8eWUobmV3IEouRXJyb3JSZXNwb25zZSgi''@;'; + put 'put ''UmVxdWVzdCBpcyBub3QgYXV0aGVudGljYXRlZC4gTWFrZSBzdXJlIC5lbnYgZmlsZSBleGlzdHMgd2l0aCB2YWxpZCBjcmVkZW50aWFscy4iLENlKSksdGhpcy5hcHBlbmRXYWl0aW5nUmVxdWVzdChmdW5jdGlvbigpe3JldHVybiBEZS5leGVjdXRlKEFlLGtlLFNlLEllLFRlLEVlKS50aGVu''@;'; + put 'put ''KGZ1bmN0aW9uKFFlKXtGKFFlKX0sZnVuY3Rpb24oUWUpe3llKFFlKX0pfSksaGU/WzQsaGUoKV06WzMsMl0pOlszLDNdO2Nhc2UgMTpQZS5zZW50KCksUGUubGFiZWw9MjtjYXNlIDI6cmV0dXJuWzMsNF07Y2FzZSAzOnllKG5ldyBKLkVycm9yUmVzcG9uc2UobnVsbD09Q2U/dm9pZCAwOkNl''@;'; + put 'put ''Lm1lc3NhZ2UsQ2UpKSxQZS5sYWJlbD00O2Nhc2UgNDpyZXR1cm5bMl19fSl9KX0pfSldfSl9KX0sdmV9KFooNjExOCkuQmFzZUpvYkV4ZWN1dG9yKTtRLlNhc2pzSm9iRXhlY3V0b3I9Y2V9LDYwODQ6ZnVuY3Rpb24oVSxRLFopeyJ1c2Ugc3RyaWN0Ijt2YXIgaWUsYWU9dGhpcyYmdGhpcy5f''@;'; + put 'put ''X2V4dGVuZHN8fChpZT1mdW5jdGlvbihrZSxTZSl7cmV0dXJuKGllPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbihJZSxUZSl7SWUuX19wcm90b19fPVRlfXx8ZnVuY3Rpb24oSWUsVGUpe2Zvcih2YXIgRWUgaW4gVGUpT2Jq''@;'; + put 'put ''ZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKFRlLEVlKSYmKEllW0VlXT1UZVtFZV0pfSkoa2UsU2UpfSxmdW5jdGlvbihrZSxTZSl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIFNlJiZudWxsIT09U2UpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSAiK1N0''@;'; + put 'put ''cmluZyhTZSkrIiBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsIik7ZnVuY3Rpb24gSWUoKXt0aGlzLmNvbnN0cnVjdG9yPWtlfWllKGtlLFNlKSxrZS5wcm90b3R5cGU9bnVsbD09PVNlP09iamVjdC5jcmVhdGUoU2UpOihJZS5wcm90b3R5cGU9U2UucHJvdG90eXBlLG5ldyBJZSl9KSxZ''@;'; + put 'put ''PXRoaXMmJnRoaXMuX19hc3NpZ258fGZ1bmN0aW9uKCl7cmV0dXJuIFk9T2JqZWN0LmFzc2lnbnx8ZnVuY3Rpb24oa2Upe2Zvcih2YXIgU2UsSWU9MSxUZT1hcmd1bWVudHMubGVuZ3RoO0llPFRlO0llKyspZm9yKHZhciBFZSBpbiBTZT1hcmd1bWVudHNbSWVdKU9iamVjdC5wcm90b3R5cGUu''@;'; + put 'put ''aGFzT3duUHJvcGVydHkuY2FsbChTZSxFZSkmJihrZVtFZV09U2VbRWVdKTtyZXR1cm4ga2V9LFkuYXBwbHkodGhpcyxhcmd1bWVudHMpfSxXPXRoaXMmJnRoaXMuX19hd2FpdGVyfHxmdW5jdGlvbihrZSxTZSxJZSxUZSl7cmV0dXJuIG5ldyhJZXx8KEllPVByb21pc2UpKShmdW5jdGlvbihF''@;'; + put 'put ''ZSxoZSl7ZnVuY3Rpb24gTyh0ZSl7dHJ5e25lKFRlLm5leHQodGUpKX1jYXRjaCh4KXtoZSh4KX19ZnVuY3Rpb24geih0ZSl7dHJ5e25lKFRlLnRocm93KHRlKSl9Y2F0Y2goeCl7aGUoeCl9fWZ1bmN0aW9uIG5lKHRlKXt2YXIgeDt0ZS5kb25lP0VlKHRlLnZhbHVlKTooeD10ZS52YWx1ZSx4''@;'; + put 'put ''IGluc3RhbmNlb2YgSWU/eDpuZXcgSWUoZnVuY3Rpb24oUCl7UCh4KX0pKS50aGVuKE8seil9bmUoKFRlPVRlLmFwcGx5KGtlLFNlfHxbXSkpLm5leHQoKSl9KX0sTj10aGlzJiZ0aGlzLl9fZ2VuZXJhdG9yfHxmdW5jdGlvbihrZSxTZSl7dmFyIEllLFRlLEVlLGhlLE89e2xhYmVsOjAsc2Vu''@;'; + put 'put ''dDpmdW5jdGlvbigpe2lmKDEmRWVbMF0pdGhyb3cgRWVbMV07cmV0dXJuIEVlWzFdfSx0cnlzOltdLG9wczpbXX07cmV0dXJuIGhlPXtuZXh0OnooMCksdGhyb3c6eigxKSxyZXR1cm46eigyKX0sImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmKGhlW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rp''@;'; + put 'put ''b24oKXtyZXR1cm4gdGhpc30pLGhlO2Z1bmN0aW9uIHoobmUpe3JldHVybiBmdW5jdGlvbih0ZSl7cmV0dXJuIGZ1bmN0aW9uKHgpe2lmKEllKXRocm93IG5ldyBUeXBlRXJyb3IoIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy4iKTtmb3IoO087KXRyeXtpZihJZT0xLFRlJiYoRWU9''@;'; + put 'put ''MiZ4WzBdP1RlLnJldHVybjp4WzBdP1RlLnRocm93fHwoKEVlPVRlLnJldHVybikmJkVlLmNhbGwoVGUpLDApOlRlLm5leHQpJiYhKEVlPUVlLmNhbGwoVGUseFsxXSkpLmRvbmUpcmV0dXJuIEVlO3N3aXRjaChUZT0wLEVlJiYoeD1bMiZ4WzBdLEVlLnZhbHVlXSkseFswXSl7Y2FzZSAwOmNh''@;'; + put 'put ''c2UgMTpFZT14O2JyZWFrO2Nhc2UgNDpyZXR1cm4gTy5sYWJlbCsrLHt2YWx1ZTp4WzFdLGRvbmU6ITF9O2Nhc2UgNTpPLmxhYmVsKyssVGU9eFsxXSx4PVswXTtjb250aW51ZTtjYXNlIDc6eD1PLm9wcy5wb3AoKSxPLnRyeXMucG9wKCk7Y29udGludWU7ZGVmYXVsdDppZighKChFZT0oRWU9''@;'; + put 'put ''Ty50cnlzKS5sZW5ndGg+MCYmRWVbRWUubGVuZ3RoLTFdKXx8NiE9PXhbMF0mJjIhPT14WzBdKSl7Tz0wO2NvbnRpbnVlfWlmKDM9PT14WzBdJiYoIUVlfHx4WzFdPkVlWzBdJiZ4WzFdPEVlWzNdKSl7Ty5sYWJlbD14WzFdO2JyZWFrfWlmKDY9PT14WzBdJiZPLmxhYmVsPEVlWzFdKXtPLmxh''@;'; + put 'put ''YmVsPUVlWzFdLEVlPXg7YnJlYWt9aWYoRWUmJk8ubGFiZWw8RWVbMl0pe08ubGFiZWw9RWVbMl0sTy5vcHMucHVzaCh4KTticmVha31FZVsyXSYmTy5vcHMucG9wKCksTy50cnlzLnBvcCgpO2NvbnRpbnVlfXg9U2UuY2FsbChrZSxPKX1jYXRjaChQKXt4PVs2LFBdLFRlPTB9ZmluYWxseXtJ''@;'; + put 'put ''ZT1FZT0wfWlmKDUmeFswXSl0aHJvdyB4WzFdO3JldHVybnt2YWx1ZTp4WzBdP3hbMV06dm9pZCAwLGRvbmU6ITB9fShbbmUsdGVdKX19fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksUS5XZWJKb2JFeGVjdXRvcj12b2lkIDA7dmFyIGVlPVooNjIz''@;'; + put 'put ''MCkscT1aKDM5MDApLEo9WigxMzk1KSxzZT1aKDQwMzcpLG9lPVooMjE3MCksY2U9Wig1OTI4KSxkZT1aKDYxMTgpLHZlPVooMjgxMyksQWU9ZnVuY3Rpb24oa2Upe2Z1bmN0aW9uIFNlKEllLFRlLEVlLGhlLE8pe3ZhciB6PWtlLmNhbGwodGhpcyxJZSxUZSl8fHRoaXM7cmV0dXJuIHouam9i''@;'; + put 'put ''c1BhdGg9RWUsei5yZXF1ZXN0Q2xpZW50PWhlLHouc2FzVml5YUFwaUNsaWVudD1PLHp9cmV0dXJuIGFlKFNlLGtlKSxTZS5wcm90b3R5cGUuZXhlY3V0ZT1mdW5jdGlvbihJZSxUZSxFZSxoZSxPLHope3JldHVybiB2b2lkIDA9PT16JiYoej1bXSksVyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVu''@;'; + put 'put ''Y3Rpb24oKXt2YXIgbmUsdGUseCxQLFYsVCxTLEYseWUsRGUsUGUsUWUsZ3Q9dGhpcztyZXR1cm4gTih0aGlzLGZ1bmN0aW9uKHd0KXtzd2l0Y2god3QubGFiZWwpe2Nhc2UgMDppZihuZT1oZSx0ZT0oMCxjZS5pc1JlbGF0aXZlUGF0aCkoSWUpJiZFZS5hcHBMb2M/RWUuYXBwTG9jLnJlcGxh''@;'; + put 'put ''Y2UoL1wvPyQvLCIvIikrSWUucmVwbGFjZSgvXlwvLywiIik6SWUseD0iIi5jb25jYXQoRWUuc2VydmVyVXJsKS5jb25jYXQodGhpcy5qb2JzUGF0aCwiLz8iKS5jb25jYXQoIl9wcm9ncmFtPSIrdGUpLEVlLnNlcnZlclR5cGUhPT1xLlNlcnZlclR5cGUuU2FzVml5YSlyZXR1cm5bMyw1XTtQ''@;'; + put 'put ''PXZvaWQgMCx3dC5sYWJlbD0xO2Nhc2UgMTpyZXR1cm4gd3QudHJ5cy5wdXNoKFsxLDMsLDRdKSxbNCx0aGlzLmdldEpvYlVyaShJZSldO2Nhc2UgMjpyZXR1cm4gUD13dC5zZW50KCksWzMsNF07Y2FzZSAzOnJldHVybiBWPXd0LnNlbnQoKSxbMixuZXcgUHJvbWlzZShmdW5jdGlvbihtdCx2''@;'; + put 'put ''dCl7cmV0dXJuIFcoZ3Qsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBBdD10aGlzO3JldHVybiBOKHRoaXMsZnVuY3Rpb24oaHQpe3N3aXRjaChodC5sYWJlbCl7Y2FzZSAwOnJldHVybiBWIGluc3RhbmNlb2YgSi5Mb2dpblJlcXVpcmVkRXJyb3I/KHRoaXMuYXBwZW5kV2FpdGluZ1Jl''@;'; + put 'put ''cXVlc3QoZnVuY3Rpb24oKXtyZXR1cm4gQXQuZXhlY3V0ZShJZSxUZSxFZSxoZSxPLHopLnRoZW4oZnVuY3Rpb24oQnQpe210KEJ0KX0sZnVuY3Rpb24oQnQpe3Z0KEJ0KX0pfSksbmU/WzQsbmUoKV06WzMsMl0pOlszLDNdO2Nhc2UgMTpodC5zZW50KCksaHQubGFiZWw9MjtjYXNlIDI6cmV0''@;'; + put 'put ''dXJuWzMsNF07Y2FzZSAzOnZ0KG5ldyBKLkVycm9yUmVzcG9uc2UobnVsbD09Vj92b2lkIDA6Vi5tZXNzYWdlLFYpKSxodC5sYWJlbD00O2Nhc2UgNDpyZXR1cm5bMl19fSl9KX0pXTtjYXNlIDQ6eCs9UC5sZW5ndGg+MD8iJl9qb2I9IitQOiIiLFAubGVuZ3RoPjAmJih4PSh4Kz0iJl9qb2I9''@;'; + put 'put ''IitQKS5yZXBsYWNlKCJfcHJvZ3JhbT0iLCJfX3Byb2dyYW09IikpLHgrPUVlLmNvbnRleHROYW1lJiYhL1xzLy50ZXN0KEVlLmNvbnRleHROYW1lKT8iJl9jb250ZXh0bmFtZT0iLmNvbmNhdChFZS5jb250ZXh0TmFtZSk6IiIsd3QubGFiZWw9NTtjYXNlIDU6aWYoVD1ZKHt9LHRoaXMuZ2V0''@;'; + put 'put ''UmVxdWVzdFBhcmFtcyhFZSkpLFM9InVuZGVmaW5lZCI9PXR5cGVvZiBGb3JtRGF0YT9uZXcgZWU6bmV3IEZvcm1EYXRhLFRlKWlmKEY9SlNPTi5zdHJpbmdpZnkoVGUpLEVlLnNlcnZlclR5cGU9PT1xLlNlcnZlclR5cGUuU2FzOXx8Ri5sZW5ndGg+NWU1fHxGLmluY2x1ZGVzKCI7IikpdHJ5''@;'; + put 'put ''e1M9KDAsc2UuZ2VuZXJhdGVGaWxlVXBsb2FkRm9ybSkoUyxUZSl9Y2F0Y2gobXQpe3JldHVyblsyLFByb21pc2UucmVqZWN0KG5ldyBKLkVycm9yUmVzcG9uc2UobnVsbD09bXQ/dm9pZCAwOm10Lm1lc3NhZ2UsbXQpKV19ZWxzZSB0cnl7eWU9KDAsb2UuZ2VuZXJhdGVUYWJsZVVwbG9hZEZv''@;'; + put 'put ''cm0pKFMsVGUpLERlPXllLnJlcXVlc3RQYXJhbXMsUz15ZS5mb3JtRGF0YSxUPVkoWSh7fSxUKSxEZSl9Y2F0Y2gobXQpe3JldHVyblsyLFByb21pc2UucmVqZWN0KG5ldyBKLkVycm9yUmVzcG9uc2UobnVsbD09bXQ/dm9pZCAwOm10Lm1lc3NhZ2UsbXQpKV19Zm9yKFBlIGluIFQpVC5oYXNP''@;'; + put 'put ''d25Qcm9wZXJ0eShQZSkmJlMuYXBwZW5kKFBlLFRbUGVdKTtyZXR1cm4gUWU9UyBpbnN0YW5jZW9mIGVlJiYidW5kZWZpbmVkIj09dHlwZW9mIEZvcm1EYXRhPyJtdWx0aXBhcnQvZm9ybS1kYXRhOyBib3VuZGFyeT0iLmNvbmNhdChTLmdldEJvdW5kYXJ5KCkpOnZvaWQgMCxbMixuZXcgUHJv''@;'; + put 'put ''bWlzZShmdW5jdGlvbihtdCx2dCl7Z3QucmVxdWVzdENsaWVudC5wb3N0KHgsUyxudWxsPT1PP3ZvaWQgMDpPLmFjY2Vzc190b2tlbixRZSkudGhlbihmdW5jdGlvbihBdCl7cmV0dXJuIFcoZ3Qsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBodCxCdDtyZXR1cm4gTih0aGlzLGZ1bmN0''@;'; + put 'put ''aW9uKG9uKXtzd2l0Y2gob24ubGFiZWwpe2Nhc2UgMDppZih0aGlzLnJlcXVlc3RDbGllbnQuYXBwZW5kUmVxdWVzdChBdCxJZSxFZS5kZWJ1ZyksaHQ9QXQucmVzdWx0LCFFZS5kZWJ1ZylyZXR1cm5bMyw0XTtzd2l0Y2godGhpcy5zZXJ2ZXJUeXBlKXtjYXNlIHEuU2VydmVyVHlwZS5TYXNW''@;'; + put 'put ''aXlhOnJldHVyblszLDFdO2Nhc2UgcS5TZXJ2ZXJUeXBlLlNhczk6cmV0dXJuWzMsM119cmV0dXJuWzMsNF07Y2FzZSAxOnJldHVybls0LCgwLGNlLnBhcnNlU2FzVml5YURlYnVnUmVzcG9uc2UpKEF0LnJlc3VsdCx0aGlzLnJlcXVlc3RDbGllbnQsdGhpcy5zZXJ2ZXJVcmwpXTtjYXNlIDI6''@;'; + put 'put ''cmV0dXJuIGh0PW9uLnNlbnQoKSxbMyw0XTtjYXNlIDM6cmV0dXJuIGh0PSJzdHJpbmciPT10eXBlb2YgQXQucmVzdWx0PygwLHZlLnBhcnNlV2Vib3V0UmVzcG9uc2UpKEF0LnJlc3VsdCx4KTpBdC5yZXN1bHQsWzMsNF07Y2FzZSA0OnJldHVybiBCdD0oMCxjZS5hcHBlbmRFeHRyYVJlc3Bv''@;'; + put 'put ''bnNlQXR0cmlidXRlcykoe3Jlc3VsdDpodCxsb2c6QXQubG9nfSx6KSxtdChCdCksWzJdfX0pfSl9KS5jYXRjaChmdW5jdGlvbihBdCl7cmV0dXJuIFcoZ3Qsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBodD10aGlzO3JldHVybiBOKHRoaXMsZnVuY3Rpb24oQnQpe3N3aXRjaChCdC5s''@;'; + put 'put ''YWJlbCl7Y2FzZSAwOnJldHVybiBBdCBpbnN0YW5jZW9mIEouSm9iRXhlY3V0aW9uRXJyb3ImJih0aGlzLnJlcXVlc3RDbGllbnQuYXBwZW5kUmVxdWVzdChBdCxJZSxFZS5kZWJ1ZyksdnQobmV3IEouRXJyb3JSZXNwb25zZShudWxsPT1BdD92b2lkIDA6QXQubWVzc2FnZSxBdCkpKSxBdCBp''@;'; + put 'put ''bnN0YW5jZW9mIEouTG9naW5SZXF1aXJlZEVycm9yPyhoZXx8dnQobmV3IEouRXJyb3JSZXNwb25zZSgiUmVxdWVzdCBpcyBub3QgYXV0aGVudGljYXRlZC4gTWFrZSBzdXJlIC5lbnYgZmlsZSBleGlzdHMgd2l0aCB2YWxpZCBjcmVkZW50aWFscy4iLEF0KSksdGhpcy5hcHBlbmRXYWl0aW5n''@;'; + put 'put ''UmVxdWVzdChmdW5jdGlvbigpe3JldHVybiBodC5leGVjdXRlKEllLFRlLEVlLGhlLE8seikudGhlbihmdW5jdGlvbihvbil7bXQob24pfSxmdW5jdGlvbihvbil7dnQob24pfSl9KSxuZT9bNCxuZSgpXTpbMywyXSk6WzMsM107Y2FzZSAxOkJ0LnNlbnQoKSxCdC5sYWJlbD0yO2Nhc2UgMjpy''@;'; + put 'put ''ZXR1cm5bMyw0XTtjYXNlIDM6dnQobmV3IEouRXJyb3JSZXNwb25zZShudWxsPT1BdD92b2lkIDA6QXQubWVzc2FnZSxBdCkpLEJ0LmxhYmVsPTQ7Y2FzZSA0OnJldHVyblsyXX19KX0pfSl9KV19fSl9KX0sU2UucHJvdG90eXBlLmdldEpvYlVyaT1mdW5jdGlvbihJZSl7cmV0dXJuIFcodGhp''@;'; + put 'put ''cyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIFRlLEVlLGhlLE8seixuZTtyZXR1cm4gTih0aGlzLGZ1bmN0aW9uKHRlKXtzd2l0Y2godGUubGFiZWwpe2Nhc2UgMDppZighdGhpcy5zYXNWaXlhQXBpQ2xpZW50KXJldHVyblsyLCIiXTtpZihUZT0iIiwoMCxjZS5pc1JlbGF0aXZlUGF0''@;'; + put 'put ''aCkoSWUpPyhPPUllLnNwbGl0KCIvIiksRWU9Ty5sZW5ndGg+MT9PWzBdOiIiLGhlPU8ubGVuZ3RoPjE/T1sxXToiIik6KE89SWUuc3BsaXQoIi8iKSxoZT1PLnBvcCgpfHwiIixFZT1PLmpvaW4oIi8iKSksIWhlKXRocm93IG5ldyBFcnJvcigiSm9iIG5hbWUgaXMgZW1wdHksIG51bGwgb3Ig''@;'; + put 'put ''dW5kZWZpbmVkLiIpO3JldHVybls0LHRoaXMuc2FzVml5YUFwaUNsaWVudC5nZXRKb2JzSW5Gb2xkZXIoRWUpXTtjYXNlIDE6cmV0dXJuKHo9dGUuc2VudCgpKSYmKG5lPXouZmluZChmdW5jdGlvbih4KXtyZXR1cm4geC5uYW1lPT09aGUmJiJqb2JEZWZpbml0aW9uIj09PXguY29udGVudFR5''@;'; + put 'put ''cGV9KSkmJihUZT1uZS51cmkpLFsyLFRlXX19KX0pfSxTZX0oZGUuQmFzZUpvYkV4ZWN1dG9yKTtRLldlYkpvYkV4ZWN1dG9yPUFlfSw4MjE3OmZ1bmN0aW9uKFUsUSxaKXsidXNlIHN0cmljdCI7dmFyIGllPXRoaXMmJnRoaXMuX19jcmVhdGVCaW5kaW5nfHwoT2JqZWN0LmNyZWF0ZT9mdW5j''@;'; + put 'put ''dGlvbihZLFcsTixlZSl7dm9pZCAwPT09ZWUmJihlZT1OKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoWSxlZSx7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gV1tOXX19KX06ZnVuY3Rpb24oWSxXLE4sZWUpe3ZvaWQgMD09PWVlJiYoZWU9TiksWVtlZV09V1tOXX0pLGFlPXRo''@;'; + put 'put ''aXMmJnRoaXMuX19leHBvcnRTdGFyfHxmdW5jdGlvbihZLFcpe2Zvcih2YXIgTiBpbiBZKSJkZWZhdWx0Ij09PU58fE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChXLE4pfHxpZShXLFksTil9O09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6''@;'; + put 'put ''ITB9KSxhZShaKDE1NzApLFEpLGFlKFooMzQ5MSksUSksYWUoWig0NDQ2KSxRKSxhZShaKDYxMTgpLFEpLGFlKFooMjY5MyksUSksYWUoWig2MDg0KSxRKSxhZShaKDEwNjUpLFEpfSw0NTg4OmZ1bmN0aW9uKFUsUSxaKXsidXNlIHN0cmljdCI7dmFyIGllPVooNDE1NSksYWU9Wig1MTA4KSxZ''@;'; + put 'put ''PXRoaXMmJnRoaXMuX19hc3NpZ258fGZ1bmN0aW9uKCl7cmV0dXJuIFk9T2JqZWN0LmFzc2lnbnx8ZnVuY3Rpb24oU2Upe2Zvcih2YXIgSWUsVGU9MSxFZT1hcmd1bWVudHMubGVuZ3RoO1RlPEVlO1RlKyspZm9yKHZhciBoZSBpbiBJZT1hcmd1bWVudHNbVGVdKU9iamVjdC5wcm90b3R5cGUu''@;'; + put 'put ''aGFzT3duUHJvcGVydHkuY2FsbChJZSxoZSkmJihTZVtoZV09SWVbaGVdKTtyZXR1cm4gU2V9LFkuYXBwbHkodGhpcyxhcmd1bWVudHMpfSxXPXRoaXMmJnRoaXMuX19hd2FpdGVyfHxmdW5jdGlvbihTZSxJZSxUZSxFZSl7cmV0dXJuIG5ldyhUZXx8KFRlPVByb21pc2UpKShmdW5jdGlvbiho''@;'; + put 'put ''ZSxPKXtmdW5jdGlvbiB6KHgpe3RyeXt0ZShFZS5uZXh0KHgpKX1jYXRjaChQKXtPKFApfX1mdW5jdGlvbiBuZSh4KXt0cnl7dGUoRWUudGhyb3coeCkpfWNhdGNoKFApe08oUCl9fWZ1bmN0aW9uIHRlKHgpe3ZhciBQO3guZG9uZT9oZSh4LnZhbHVlKTooUD14LnZhbHVlLFAgaW5zdGFuY2Vv''@;'; + put 'put ''ZiBUZT9QOm5ldyBUZShmdW5jdGlvbihWKXtWKFApfSkpLnRoZW4oeixuZSl9dGUoKEVlPUVlLmFwcGx5KFNlLEllfHxbXSkpLm5leHQoKSl9KX0sTj10aGlzJiZ0aGlzLl9fZ2VuZXJhdG9yfHxmdW5jdGlvbihTZSxJZSl7dmFyIFRlLEVlLGhlLE8sej17bGFiZWw6MCxzZW50OmZ1bmN0aW9u''@;'; + put 'put ''KCl7aWYoMSZoZVswXSl0aHJvdyBoZVsxXTtyZXR1cm4gaGVbMV19LHRyeXM6W10sb3BzOltdfTtyZXR1cm4gTz17bmV4dDpuZSgwKSx0aHJvdzpuZSgxKSxyZXR1cm46bmUoMil9LCJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJihPW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1''@;'; + put 'put ''cm4gdGhpc30pLE87ZnVuY3Rpb24gbmUodGUpe3JldHVybiBmdW5jdGlvbih4KXtyZXR1cm4gZnVuY3Rpb24oUCl7aWYoVGUpdGhyb3cgbmV3IFR5cGVFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLiIpO2Zvcig7ejspdHJ5e2lmKFRlPTEsRWUmJihoZT0yJlBbMF0/RWUu''@;'; + put 'put ''cmV0dXJuOlBbMF0/RWUudGhyb3d8fCgoaGU9RWUucmV0dXJuKSYmaGUuY2FsbChFZSksMCk6RWUubmV4dCkmJiEoaGU9aGUuY2FsbChFZSxQWzFdKSkuZG9uZSlyZXR1cm4gaGU7c3dpdGNoKEVlPTAsaGUmJihQPVsyJlBbMF0saGUudmFsdWVdKSxQWzBdKXtjYXNlIDA6Y2FzZSAxOmhlPVA7''@;'; + put 'put ''YnJlYWs7Y2FzZSA0OnJldHVybiB6LmxhYmVsKysse3ZhbHVlOlBbMV0sZG9uZTohMX07Y2FzZSA1OnoubGFiZWwrKyxFZT1QWzFdLFA9WzBdO2NvbnRpbnVlO2Nhc2UgNzpQPXoub3BzLnBvcCgpLHoudHJ5cy5wb3AoKTtjb250aW51ZTtkZWZhdWx0OmlmKCEoKGhlPShoZT16LnRyeXMpLmxl''@;'; + put 'put ''bmd0aD4wJiZoZVtoZS5sZW5ndGgtMV0pfHw2IT09UFswXSYmMiE9PVBbMF0pKXt6PTA7Y29udGludWV9aWYoMz09PVBbMF0mJighaGV8fFBbMV0+aGVbMF0mJlBbMV08aGVbM10pKXt6LmxhYmVsPVBbMV07YnJlYWt9aWYoNj09PVBbMF0mJnoubGFiZWw8aGVbMV0pe3oubGFiZWw9aGVbMV0s''@;'; + put 'put ''aGU9UDticmVha31pZihoZSYmei5sYWJlbDxoZVsyXSl7ei5sYWJlbD1oZVsyXSx6Lm9wcy5wdXNoKFApO2JyZWFrfWhlWzJdJiZ6Lm9wcy5wb3AoKSx6LnRyeXMucG9wKCk7Y29udGludWV9UD1JZS5jYWxsKFNlLHopfWNhdGNoKFYpe1A9WzYsVl0sRWU9MH1maW5hbGx5e1RlPWhlPTB9aWYo''@;'; + put 'put ''NSZQWzBdKXRocm93IFBbMV07cmV0dXJue3ZhbHVlOlBbMF0/UFsxXTp2b2lkIDAsZG9uZTohMH19KFt0ZSx4XSl9fX07T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLFEudGhyb3dJZkVycm9yPVEuUmVxdWVzdENsaWVudD12b2lkIDA7dmFyIGVlPVoo''@;'; + put 'put ''ODM3MykscT1aKDE1MjcpLEo9WigxMzk1KSxzZT1aKDI4MTMpLG9lPVooOTc3OCksY2U9Wig5NTI2KSxkZT1aKDU5MjgpLHZlPVooMTAwNSksQWU9ZnVuY3Rpb24oKXtmdW5jdGlvbiBTZShJZSxUZSxFZSl7dmFyIGhlPXRoaXM7dGhpcy5iYXNlVXJsPUllLHRoaXMucmVxdWVzdHM9W10sdGhp''@;'; + put 'put ''cy5yZXF1ZXN0c0xpbWl0PTEwLHRoaXMuY3NyZlRva2VuPXtoZWFkZXJOYW1lOiIiLHZhbHVlOiIifSx0aGlzLmdldFJlcXVlc3RzPWZ1bmN0aW9uKCl7cmV0dXJuIGhlLnJlcXVlc3RzfSx0aGlzLmNsZWFyUmVxdWVzdHM9ZnVuY3Rpb24oKXtoZS5yZXF1ZXN0cz1bXX0sdGhpcy5hdXRob3Jp''@;'; + put 'put ''emU9ZnVuY3Rpb24oTyl7cmV0dXJuIFcoaGUsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciB6LG5lLHRlLHgsUCxWLFQsUyxGLHllLENlLERlO3JldHVybiBOKHRoaXMsZnVuY3Rpb24oUGUpe3N3aXRjaChQZS5sYWJlbCl7Y2FzZSAwOmZvcihuZT17fSx0ZT1PLnNwbGl0KCI8Ym9keT4i''@;'; + put 'put ''KVsxXS5zcGxpdCgiPC9ib2R5PiIpWzBdLCh4PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpKS5pbm5lckhUTUw9dGUsUD14LnF1ZXJ5U2VsZWN0b3IoIiNhcHBsaWNhdGlvbl9hdXRob3JpemF0aW9uIiksej1QP3RoaXMuYmFzZVVybCtQLmdldEF0dHJpYnV0ZSgiYWN0aW9uIik6bnVs''@;'; + put 'put ''bCxWPW51bGw9PVA/dm9pZCAwOlAucXVlcnlTZWxlY3RvckFsbCgiaW5wdXQiKSxUPTAsUz1WO1Q8Uy5sZW5ndGg7VCsrKSJ1c2VyX29hdXRoX2FwcHJvdmFsIj09PShGPVNbVF0pLm5hbWUmJihGLnZhbHVlPSJ0cnVlIiksbmVbRi5uYW1lXT1GLnZhbHVlO2ZvcihEZSBpbih5ZT1PYmplY3Qu''@;'; + put 'put ''a2V5cyhuZSkuZmluZChmdW5jdGlvbihRZSl7cmV0dXJuIG51bGw9PVFlP3ZvaWQgMDpRZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKCJjc3JmIil9KSkmJih0aGlzLmNzcmZUb2tlbi52YWx1ZT1uZVt5ZV0sdGhpcy5jc3JmVG9rZW4uaGVhZGVyTmFtZT10aGlzLmNzcmZUb2tlbi5oZWFkZXJO''@;'; + put 'put ''YW1lfHwieC1jc3JmLXRva2VuIiksQ2U9bmV3IEZvcm1EYXRhLG5lKW5lLmhhc093blByb3BlcnR5KERlKSYmQ2UuYXBwZW5kKERlLG5lW0RlXSk7aWYoIXopdGhyb3cgbmV3IEVycm9yKCJBdXRoIEZvcm0gVVJMIGlzIG51bGwgb3IgdW5kZWZpbmVkLiIpO3JldHVybls0LHRoaXMuaHR0cENs''@;'; + put 'put ''aWVudC5wb3N0KHosQ2Use3Jlc3BvbnNlVHlwZToidGV4dCIsaGVhZGVyczp7QWNjZXB0OiIqLyoiLCJDb250ZW50LVR5cGUiOiJ0ZXh0L3BsYWluIn19KS50aGVuKGZ1bmN0aW9uKFFlKXtyZXR1cm4gUWUuZGF0YX0pLmNhdGNoKGZ1bmN0aW9uKFFlKXsoaWUubG9nZ2VyfHxhZSkuZXJyb3Io''@;'; + put 'put ''UWUpfSldO2Nhc2UgMTpyZXR1cm5bMixQZS5zZW50KCldfX0pfSl9LHRoaXMuZ2V0SGVhZGVycz1mdW5jdGlvbihPLHope3ZhciBuZT17fTtyZXR1cm4iYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIiE9PXomJihuZVsiQ29udGVudC1UeXBlIl09eiksbmUuQWNjZXB0PSJhcHBs''@;'; + put 'put ''aWNhdGlvbi9qc29uIj09PXo/ImFwcGxpY2F0aW9uL2pzb24iOiIqLyoiLE8mJihuZS5BdXRob3JpemF0aW9uPSJCZWFyZXIgIi5jb25jYXQoTykpLGhlLmNzcmZUb2tlbi5oZWFkZXJOYW1lJiZoZS5jc3JmVG9rZW4udmFsdWUmJihuZVtoZS5jc3JmVG9rZW4uaGVhZGVyTmFtZV09aGUuY3Ny''@;'; + put 'put ''ZlRva2VuLnZhbHVlKSxuZX0sdGhpcy5wYXJzZUFuZFNldEZpbGVVcGxvYWRDc3JmVG9rZW49ZnVuY3Rpb24oTyl7dmFyIHo9aGUucGFyc2VDc3JmVG9rZW4oTyk7eiYmKGhlLmZpbGVVcGxvYWRDc3JmVG9rZW49eil9LHRoaXMucGFyc2VBbmRTZXRDc3JmVG9rZW49ZnVuY3Rpb24oTyl7dmFy''@;'; + put 'put ''IHo9aGUucGFyc2VDc3JmVG9rZW4oTyk7eiYmKGhlLmNzcmZUb2tlbj16KX0sdGhpcy5wYXJzZUNzcmZUb2tlbj1mdW5jdGlvbihPKXt2YXIgeixuZT1udWxsPT09KHo9Ty5oZWFkZXJzWyJ4LWNzcmYtaGVhZGVyIl0pfHx2b2lkIDA9PT16P3ZvaWQgMDp6LnRvTG93ZXJDYXNlKCk7aWYobmUp''@;'; + put 'put ''cmV0dXJue2hlYWRlck5hbWU6bmUsdmFsdWU6Ty5oZWFkZXJzW25lXXx8IiJ9fSx0aGlzLmhhbmRsZUVycm9yPWZ1bmN0aW9uKE8seixuZSl7cmV0dXJuIHZvaWQgMD09PW5lJiYobmU9ITEpLFcoaGUsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciB0ZSx4O3JldHVybiBOKHRoaXMsZnVu''@;'; + put 'put ''Y3Rpb24oUCl7c3dpdGNoKFAubGFiZWwpe2Nhc2UgMDpyZXR1cm4gdGU9Ty5yZXNwb25zZSxPIGluc3RhbmNlb2YgSi5BdXRob3JpemVFcnJvcj9bNCx0aGlzLmh0dHBDbGllbnQuZ2V0KE8uY29uZmlybVVybCx7cmVzcG9uc2VUeXBlOiJ0ZXh0IixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoi''@;'; + put 'put ''dGV4dC9wbGFpbiIsQWNjZXB0OiIqLyoifX0pLmNhdGNoKGZ1bmN0aW9uKFYpe3Rocm93KDAsb2UucHJlZml4TWVzc2FnZSkoViwiRXJyb3Igd2hpbGUgZ2V0dGluZyBlcnJvciBjb25maXJtVXJsLiAiKX0pXTpbMyw1XTtjYXNlIDE6cmV0dXJuIHg9UC5zZW50KCksKDAscS5pc0F1dGhvcml6''@;'; + put 'put ''ZUZvcm1SZXF1aXJlZCkobnVsbD09eD92b2lkIDA6eC5kYXRhKT9bNCx0aGlzLmF1dGhvcml6ZSh4LmRhdGEpLmNhdGNoKGZ1bmN0aW9uKFYpe3Rocm93KDAsb2UucHJlZml4TWVzc2FnZSkoViwiRXJyb3Igd2hpbGUgYXV0aG9yaXppbmcgcmVxdWVzdC4gIil9KV06WzMsM107Y2FzZSAyOlAu''@;'; + put 'put ''c2VudCgpLFAubGFiZWw9MztjYXNlIDM6cmV0dXJuWzQseigpLmNhdGNoKGZ1bmN0aW9uKFYpe3Rocm93KDAsb2UucHJlZml4TWVzc2FnZSkoViwiRXJyb3Igd2hpbGUgZXhlY3V0aW5nIGNhbGxiYWNrIGluIGhhbmRsZUVycm9yLiAiKX0pXTtjYXNlIDQ6cmV0dXJuWzIsUC5zZW50KCldO2Nh''@;'; + put 'put ''c2UgNTppZihPIGluc3RhbmNlb2YgSi5Mb2dpblJlcXVpcmVkRXJyb3IpdGhyb3cgdGhpcy5jbGVhckNzcmZUb2tlbnMoKSxPO3JldHVybiBPIGluc3RhbmNlb2YgdmUuSW52YWxpZFNBU2pzQ3NyZkVycm9yP1s0LHRoaXMuaHR0cENsaWVudC5nZXQoIi8iLHt3aXRoQ3JlZGVudGlhbHM6ITB9''@;'; + put 'put ''KS50aGVuKGZ1bmN0aW9uKFYpe3ZhciBULFM9bnVsbD09PShUPS88c2NyaXB0PmRvY3VtZW50LmNvb2tpZSA9ICcoWFNSRi1UT0tFTj0uKjsgTWF4LUFnZT04NjQwMDsgU2FtZVNpdGU9U3RyaWN0OyBQYXRoPVwvOyknPFwvc2NyaXB0Pi8uZXhlYyhWLmRhdGEpKXx8dm9pZCAwPT09VD92b2lk''@;'; + put 'put ''IDA6VFsxXTtTJiYoZG9jdW1lbnQuY29va2llPVMpfSkuY2F0Y2goZnVuY3Rpb24oVil7dGhyb3coMCxvZS5wcmVmaXhNZXNzYWdlKShWLCJFcnJvciB3aGlsZSByZS1mZXRjaGluZyBDU1JGIHRva2VuLiIpfSldOlszLDhdO2Nhc2UgNjpyZXR1cm4gUC5zZW50KCksWzQseigpLmNhdGNoKGZ1''@;'; + put 'put ''bmN0aW9uKFYpe3Rocm93KDAsb2UucHJlZml4TWVzc2FnZSkoViwiRXJyb3Igd2hpbGUgZXhlY3V0aW5nIGNhbGxiYWNrIGluIGhhbmRsZUVycm9yLiAiKX0pXTtjYXNlIDc6cmV0dXJuWzIsUC5zZW50KCldO2Nhc2UgODpyZXR1cm4gNDAzIT09KG51bGw9PXRlP3ZvaWQgMDp0ZS5zdGF0dXMp''@;'; + put 'put ''JiY0NDkhPT0obnVsbD09dGU/dm9pZCAwOnRlLnN0YXR1cyk/WzMsMTFdOih0aGlzLnBhcnNlQW5kU2V0Q3NyZlRva2VuKHRlKSx0aGlzLmNzcmZUb2tlbi5oZWFkZXJOYW1lJiZ0aGlzLmNzcmZUb2tlbi52YWx1ZT9bNCx6KCkuY2F0Y2goZnVuY3Rpb24oVil7dGhyb3coMCxvZS5wcmVmaXhN''@;'; + put 'put ''ZXNzYWdlKShWLCJFcnJvciB3aGlsZSBleGVjdXRpbmcgY2FsbGJhY2sgaW4gaGFuZGxlRXJyb3IuICIpfSldOlszLDEwXSk7Y2FzZSA5OnJldHVyblsyLFAuc2VudCgpXTtjYXNlIDEwOnRocm93IE87Y2FzZSAxMTppZig0MDQ9PT0obnVsbD09dGU/dm9pZCAwOnRlLnN0YXR1cykpdGhyb3cg''@;'; + put 'put ''bmV3IEouTm90Rm91bmRFcnJvcih0ZS5jb25maWcudXJsKTtpZig1MDI9PT0obnVsbD09dGU/dm9pZCAwOnRlLnN0YXR1cykpe2lmKG5lKXRocm93IG5ldyBKLkludGVybmFsU2VydmVyRXJyb3I7cmV0dXJuWzJdfVAubGFiZWw9MTI7Y2FzZSAxMjp0aHJvdyBPLmlzQXhpb3NFcnJvciYmIlVO''@;'; + put 'put ''QUJMRV9UT19WRVJJRllfTEVBRl9TSUdOQVRVUkUiPT09Ty5jb2RlP25ldyBKLkNlcnRpZmljYXRlRXJyb3IoTy5tZXNzYWdlKTpPLm1lc3NhZ2U/TzooMCxvZS5wcmVmaXhNZXNzYWdlKShPLCJFcnJvciB3aGlsZSBoYW5kbGluZyBlcnJvci4gIil9fSl9KX0sdGhpcy5jcmVhdGVIdHRwQ2xp''@;'; + put 'put ''ZW50KEllLFRlKSxFZSYmKHRoaXMucmVxdWVzdHNMaW1pdD1FZSl9cmV0dXJuIFNlLnByb3RvdHlwZS5zZXRDb25maWc9ZnVuY3Rpb24oSWUsVGUpe3RoaXMuY3JlYXRlSHR0cENsaWVudChJZSxUZSl9LFNlLnByb3RvdHlwZS5zYXZlTG9jYWxTdG9yYWdlVG9rZW49ZnVuY3Rpb24oSWUsVGUp''@;'; + put 'put ''e2xvY2FsU3RvcmFnZS5zZXRJdGVtKCJhY2Nlc3NUb2tlbiIsSWUpLGxvY2FsU3RvcmFnZS5zZXRJdGVtKCJyZWZyZXNoVG9rZW4iLFRlKX0sU2UucHJvdG90eXBlLmdldENzcmZUb2tlbj1mdW5jdGlvbihJZSl7cmV0dXJuIHZvaWQgMD09PUllJiYoSWU9ImdlbmVyYWwiKSwiZmlsZSI9PT1J''@;'; + put 'put ''ZT90aGlzLmZpbGVVcGxvYWRDc3JmVG9rZW46dGhpcy5jc3JmVG9rZW59LFNlLnByb3RvdHlwZS5jbGVhckNzcmZUb2tlbnM9ZnVuY3Rpb24oKXt0aGlzLmNzcmZUb2tlbj17aGVhZGVyTmFtZToiIix2YWx1ZToiIn0sdGhpcy5maWxlVXBsb2FkQ3NyZlRva2VuPXtoZWFkZXJOYW1lOiIiLHZh''@;'; + put 'put ''bHVlOiIifX0sU2UucHJvdG90eXBlLmNsZWFyTG9jYWxTdG9yYWdlVG9rZW5zPWZ1bmN0aW9uKCl7bG9jYWxTdG9yYWdlLnNldEl0ZW0oImFjY2Vzc1Rva2VuIiwiIiksbG9jYWxTdG9yYWdlLnNldEl0ZW0oInJlZnJlc2hUb2tlbiIsIiIpfSxTZS5wcm90b3R5cGUuZ2V0QmFzZVVybD1mdW5j''@;'; + put 'put ''dGlvbigpe3JldHVybiB0aGlzLmh0dHBDbGllbnQuZGVmYXVsdHMuYmFzZVVSTHx8IiJ9LFNlLnByb3RvdHlwZS5hcHBlbmRSZXF1ZXN0PWZ1bmN0aW9uKEllLFRlLEVlKXt2YXIgaGU9IiIsTz0iIix6PW51bGw7RWUmJihudWxsIT1JZSYmSWUubG9nPyhoZT0oMCxkZS5wYXJzZVNvdXJjZUNv''@;'; + put 'put ''ZGUpKEllLmxvZyksTz0oMCxkZS5wYXJzZUdlbmVyYXRlZENvZGUpKEllLmxvZyksej1udWxsIT1JZSYmSWUucmVzdWx0P0llLnJlc3VsdC5XT1JLOkllLmxvZyk6bnVsbCE9SWUmJkllLnJlc3VsdCYmKCJzdHJpbmciPT10eXBlb2YgSWUucmVzdWx0JiYoaGU9KDAsZGUucGFyc2VTb3VyY2VD''@;'; + put 'put ''b2RlKShJZS5yZXN1bHQpLE89KDAsZGUucGFyc2VHZW5lcmF0ZWRDb2RlKShJZS5yZXN1bHQpKSx6PUllLnJlc3VsdC5XT1JLKSk7dmFyIG5lPSJzdHJpbmciPT10eXBlb2YobnVsbD09SWU/dm9pZCAwOkllLnJlc3VsdCk/bnVsbD09SWU/dm9pZCAwOkllLnJlc3VsdDpKU09OLnN0cmluZ2lm''@;'; + put 'put ''eShudWxsPT1JZT92b2lkIDA6SWUucmVzdWx0LG51bGwsMik7dGhpcy5yZXF1ZXN0cy5wdXNoKHtsb2dGaWxlOihudWxsPT1JZT92b2lkIDA6SWUubG9nKXx8bmV8fEllLHNlcnZpY2VMaW5rOlRlLHRpbWVzdGFtcDpuZXcgRGF0ZSxzb3VyY2VDb2RlOmhlLGdlbmVyYXRlZENvZGU6TyxTQVNX''@;'; + put 'put ''T1JLOnp9KSx0aGlzLnJlcXVlc3RzLmxlbmd0aD50aGlzLnJlcXVlc3RzTGltaXQmJnRoaXMucmVxdWVzdHMuc3BsaWNlKDAsMSl9LFNlLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24oSWUsVGUsRWUsaGUsTyl7cmV0dXJuIHZvaWQgMD09PUVlJiYoRWU9ImFwcGxpY2F0aW9uL2pzb24iKSx2b2lk''@;'; + put 'put ''IDA9PT1oZSYmKGhlPXt9KSx2b2lkIDA9PT1PJiYoTz0hMSksVyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgeixuZSx0ZT10aGlzO3JldHVybiBOKHRoaXMsZnVuY3Rpb24oeCl7cmV0dXJuIHo9WShZKHt9LHRoaXMuZ2V0SGVhZGVycyhUZSxFZSkpLGhlKSxuZT17aGVhZGVy''@;'; + put 'put ''czp6LHJlc3BvbnNlVHlwZToidGV4dC9wbGFpbiI9PT1FZT8idGV4dCI6Impzb24iLHdpdGhDcmVkZW50aWFsczohMH0sInRleHQvcGxhaW4iPT09RWUmJihuZS50cmFuc2Zvcm1SZXNwb25zZT12b2lkIDApLFsyLHRoaXMuaHR0cENsaWVudC5nZXQoSWUsbmUpLnRoZW4oZnVuY3Rpb24oUCl7''@;'; + put 'put ''cmV0dXJuKDAsUS50aHJvd0lmRXJyb3IpKFApLHRlLnBhcnNlUmVzcG9uc2UoUCl9KS5jYXRjaChmdW5jdGlvbihQKXtyZXR1cm4gVyh0ZSx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIFY9dGhpcztyZXR1cm4gTih0aGlzLGZ1bmN0aW9uKFQpe3N3aXRjaChULmxhYmVsKXtjYXNlIDA6''@;'; + put 'put ''cmV0dXJuWzQsdGhpcy5oYW5kbGVFcnJvcihQLGZ1bmN0aW9uKCl7cmV0dXJuIFYuZ2V0KEllLFRlLEVlLGhlKS5jYXRjaChmdW5jdGlvbihTKXt0aHJvdygwLG9lLnByZWZpeE1lc3NhZ2UpKFMsIkVycm9yIHdoaWxlIGV4ZWN1dGluZyBoYW5kbGUgZXJyb3IgY2FsbGJhY2suICIpfSl9LE8p''@;'; + put 'put ''XTtjYXNlIDE6cmV0dXJuWzIsVC5zZW50KCldfX0pfSl9KV19KX0pfSxTZS5wcm90b3R5cGUucG9zdD1mdW5jdGlvbihJZSxUZSxFZSxoZSxPLHope3JldHVybiB2b2lkIDA9PT1oZSYmKGhlPSJhcHBsaWNhdGlvbi9qc29uIiksdm9pZCAwPT09TyYmKE89e30pLHZvaWQgMD09PXomJih6PXt9''@;'; + put 'put ''KSxXKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBuZSx0ZT10aGlzO3JldHVybiBOKHRoaXMsZnVuY3Rpb24oeCl7cmV0dXJuIG5lPVkoWSh7fSx0aGlzLmdldEhlYWRlcnMoRWUsaGUpKSxPKSxbMix0aGlzLmh0dHBDbGllbnQucG9zdChJZSxUZSxZKHtoZWFkZXJzOm5lLHdp''@;'; + put 'put ''dGhDcmVkZW50aWFsczohMH0seikpLnRoZW4oZnVuY3Rpb24oUCl7cmV0dXJuKDAsUS50aHJvd0lmRXJyb3IpKFApLHRlLnBhcnNlUmVzcG9uc2UoUCl9KS5jYXRjaChmdW5jdGlvbihQKXtyZXR1cm4gVyh0ZSx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIFY9dGhpcztyZXR1cm4gTih0''@;'; + put 'put ''aGlzLGZ1bmN0aW9uKFQpe3N3aXRjaChULmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsdGhpcy5oYW5kbGVFcnJvcihQLGZ1bmN0aW9uKCl7cmV0dXJuIFYucG9zdChJZSxUZSxFZSxoZSxPKX0pXTtjYXNlIDE6cmV0dXJuWzIsVC5zZW50KCldfX0pfSl9KV19KX0pfSxTZS5wcm90b3R5cGUucHV0''@;'; + put 'put ''PWZ1bmN0aW9uKEllLFRlLEVlLGhlKXtyZXR1cm4gdm9pZCAwPT09aGUmJihoZT17fSksVyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgTyx6PXRoaXM7cmV0dXJuIE4odGhpcyxmdW5jdGlvbihuZSl7cmV0dXJuIE89WShZKHt9LHRoaXMuZ2V0SGVhZGVycyhFZSwiYXBwbGlj''@;'; + put 'put ''YXRpb24vanNvbiIpKSxoZSksWzIsdGhpcy5odHRwQ2xpZW50LnB1dChJZSxUZSx7aGVhZGVyczpPLHdpdGhDcmVkZW50aWFsczohMH0pLnRoZW4oZnVuY3Rpb24odGUpe3JldHVybigwLFEudGhyb3dJZkVycm9yKSh0ZSksei5wYXJzZVJlc3BvbnNlKHRlKX0pLmNhdGNoKGZ1bmN0aW9uKHRl''@;'; + put 'put ''KXtyZXR1cm4gVyh6LHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgeD10aGlzO3JldHVybiBOKHRoaXMsZnVuY3Rpb24oUCl7c3dpdGNoKFAubGFiZWwpe2Nhc2UgMDpyZXR1cm5bNCx0aGlzLmhhbmRsZUVycm9yKHRlLGZ1bmN0aW9uKCl7cmV0dXJuIHgucHV0KEllLFRlLEVlLGhlKX0p''@;'; + put 'put ''XTtjYXNlIDE6cmV0dXJuWzIsUC5zZW50KCldfX0pfSl9KV19KX0pfSxTZS5wcm90b3R5cGUuZGVsZXRlPWZ1bmN0aW9uKEllLFRlKXtyZXR1cm4gVyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgRWUsaGU9dGhpcztyZXR1cm4gTih0aGlzLGZ1bmN0aW9uKE8pe3JldHVybiBF''@;'; + put 'put ''ZT10aGlzLmdldEhlYWRlcnMoVGUsImFwcGxpY2F0aW9uL2pzb24iKSxbMix0aGlzLmh0dHBDbGllbnQuZGVsZXRlKEllLHtoZWFkZXJzOkVlLHdpdGhDcmVkZW50aWFsczohMH0pLnRoZW4oZnVuY3Rpb24oeil7cmV0dXJuKDAsUS50aHJvd0lmRXJyb3IpKHopLGhlLnBhcnNlUmVzcG9uc2Uo''@;'; + put 'put ''eil9KS5jYXRjaChmdW5jdGlvbih6KXtyZXR1cm4gVyhoZSx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIG5lPXRoaXM7cmV0dXJuIE4odGhpcyxmdW5jdGlvbih0ZSl7c3dpdGNoKHRlLmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsdGhpcy5oYW5kbGVFcnJvcih6LGZ1bmN0aW9uKCl7cmV0''@;'; + put 'put ''dXJuIG5lLmRlbGV0ZShJZSxUZSl9KV07Y2FzZSAxOnJldHVyblsyLHRlLnNlbnQoKV19fSl9KX0pXX0pfSl9LFNlLnByb3RvdHlwZS5wYXRjaD1mdW5jdGlvbihJZSxUZSxFZSl7cmV0dXJuIHZvaWQgMD09PVRlJiYoVGU9e30pLFcodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFy''@;'; + put 'put ''IGhlLE89dGhpcztyZXR1cm4gTih0aGlzLGZ1bmN0aW9uKHope3JldHVybiBoZT10aGlzLmdldEhlYWRlcnMoRWUsImFwcGxpY2F0aW9uL2pzb24iKSxbMix0aGlzLmh0dHBDbGllbnQucGF0Y2goSWUsVGUse2hlYWRlcnM6aGUsd2l0aENyZWRlbnRpYWxzOiEwfSkudGhlbihmdW5jdGlvbihu''@;'; + put 'put ''ZSl7cmV0dXJuKDAsUS50aHJvd0lmRXJyb3IpKG5lKSxPLnBhcnNlUmVzcG9uc2UobmUpfSkuY2F0Y2goZnVuY3Rpb24obmUpe3JldHVybiBXKE8sdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciB0ZT10aGlzO3JldHVybiBOKHRoaXMsZnVuY3Rpb24oeCl7c3dpdGNoKHgubGFiZWwpe2Nh''@;'; + put 'put ''c2UgMDpyZXR1cm5bNCx0aGlzLmhhbmRsZUVycm9yKG5lLGZ1bmN0aW9uKCl7cmV0dXJuIHRlLnBhdGNoKEllLFRlLEVlKX0pXTtjYXNlIDE6cmV0dXJuWzIseC5zZW50KCldfX0pfSl9KV19KX0pfSxTZS5wcm90b3R5cGUudXBsb2FkRmlsZT1mdW5jdGlvbihJZSxUZSxFZSl7dmFyIGhlO3Jl''@;'; + put 'put ''dHVybiBXKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBPLHosbmU7cmV0dXJuIE4odGhpcyxmdW5jdGlvbih0ZSl7c3dpdGNoKHRlLmxhYmVsKXtjYXNlIDA6Tz10aGlzLmdldEhlYWRlcnMoRWUsImFwcGxpY2F0aW9uL2pzb24iKSwhKG51bGw9PT0oaGU9dGhpcy5maWxlVXBs''@;'; + put 'put ''b2FkQ3NyZlRva2VuKXx8dm9pZCAwPT09aGUpJiZoZS52YWx1ZSYmKE9bdGhpcy5maWxlVXBsb2FkQ3NyZlRva2VuLmhlYWRlck5hbWVdPXRoaXMuZmlsZVVwbG9hZENzcmZUb2tlbi52YWx1ZSksdGUubGFiZWw9MTtjYXNlIDE6cmV0dXJuIHRlLnRyeXMucHVzaChbMSwzLCw0XSksWzQsdGhp''@;'; + put 'put ''cy5odHRwQ2xpZW50LnBvc3QoSWUsVGUse2hlYWRlcnM6Tyx0cmFuc2Zvcm1SZXF1ZXN0OmZ1bmN0aW9uKHgpe3JldHVybiB4fX0pXTtjYXNlIDI6cmV0dXJuWzIse3Jlc3VsdDoobmU9dGUuc2VudCgpKS5kYXRhLGV0YWc6bmUuaGVhZGVycy5ldGFnfV07Y2FzZSAzOmlmKHo9dGUuc2VudCgp''@;'; + put 'put ''LDQwMz09PShudWxsPT0obmU9ei5yZXNwb25zZSk/dm9pZCAwOm5lLnN0YXR1cyl8fDQ0OT09PShudWxsPT1uZT92b2lkIDA6bmUuc3RhdHVzKSl7aWYodGhpcy5wYXJzZUFuZFNldEZpbGVVcGxvYWRDc3JmVG9rZW4obmUpLHRoaXMuZmlsZVVwbG9hZENzcmZUb2tlbilyZXR1cm5bMix0aGlz''@;'; + put 'put ''LnVwbG9hZEZpbGUoSWUsVGUsRWUpXTt0aHJvdyB6fXRocm93IHo7Y2FzZSA0OnJldHVyblsyXX19KX0pfSxTZS5wcm90b3R5cGUucGFyc2VSZXNwb25zZT1mdW5jdGlvbihJZSl7dmFyIFRlLEVlPW51bGwhPUllJiZJZS5oZWFkZXJzP0llLmhlYWRlcnMuZXRhZzoiIixoZT0hMTt0cnl7VGU9''@;'; + put 'put ''InN0cmluZyI9PXR5cGVvZiBJZS5kYXRhP0pTT04ucGFyc2UoSWUuZGF0YSk6SWUuZGF0YX1jYXRjaCh6KXt0cnl7VGU9SlNPTi5wYXJzZSgoMCxzZS5wYXJzZVdlYm91dFJlc3BvbnNlKShJZS5kYXRhKSl9Y2F0Y2gobmUpe1RlPUllLmRhdGF9aGU9ITB9dmFyIE89e3Jlc3VsdDpUZSxldGFn''@;'; + put 'put ''OkVlLHN0YXR1czpJZS5zdGF0dXN9O3JldHVybiBoZSYmKE8ubG9nPUllLmRhdGEpLE99LFNlLnByb3RvdHlwZS5jcmVhdGVIdHRwQ2xpZW50PWZ1bmN0aW9uKEllLFRlKXt2YXIgRWU9VGU/bmV3IGVlLkFnZW50KFRlKTp2b2lkIDA7dGhpcy5odHRwQ2xpZW50PSgwLGRlLmNyZWF0ZUF4aW9z''@;'; + put 'put ''SW5zdGFuY2UpKEllLEVlKSx0aGlzLmh0dHBDbGllbnQuZGVmYXVsdHMudmFsaWRhdGVTdGF0dXM9ZnVuY3Rpb24oaGUpe3JldHVybiBoZT49MjAwJiZoZTw9NDAxfX0sU2V9KCk7US5SZXF1ZXN0Q2xpZW50PUFlLFEudGhyb3dJZkVycm9yPWZ1bmN0aW9uKFNlKXt2YXIgSWUsVGUsRWUsaGUs''@;'; + put 'put ''Tyx6LG5lO3N3aXRjaChTZS5zdGF0dXMpe2Nhc2UgNDAwOmlmKCJvYmplY3QiPT10eXBlb2YgU2UuZGF0YSYmImludmFsaWRfZ3JhbnQiPT09U2UuZGF0YS5lcnJvcil0aHJvdyBuZXcgSi5Mb2dpblJlcXVpcmVkRXJyb3IoU2UuZGF0YSk7aWYoInN0cmluZyI9PXR5cGVvZiBTZS5kYXRhJiYi''@;'; + put 'put ''aW52YWxpZCBjc3JmIHRva2VuISI9PT1TZS5kYXRhLnRvTG93ZXJDYXNlKCkpdGhyb3cgbmV3IHZlLkludmFsaWRTQVNqc0NzcmZFcnJvcjticmVhaztjYXNlIDQwMTp0aHJvdyJvYmplY3QiPT10eXBlb2YgU2UuZGF0YT9uZXcgSi5Mb2dpblJlcXVpcmVkRXJyb3IoU2UuZGF0YSk6bmV3IEou''@;'; + put 'put ''TG9naW5SZXF1aXJlZEVycm9yfWlmKG51bGwhPT0oVGU9bnVsbD09PShJZT1TZS5kYXRhKXx8dm9pZCAwPT09SWU/dm9pZCAwOkllLmVudGl0eUlEKSYmdm9pZCAwIT09VGUmJlRlLmluY2x1ZGVzKCJsb2dpbiIpKXRocm93IG5ldyBKLkxvZ2luUmVxdWlyZWRFcnJvcjtpZigic3RyaW5nIj09''@;'; + put 'put ''dHlwZW9mIFNlLmRhdGEmJigwLHEuaXNBdXRob3JpemVGb3JtUmVxdWlyZWQpKFNlLmRhdGEpKXRocm93IG5ldyBKLkF1dGhvcml6ZUVycm9yKCJBdXRob3JpemF0aW9uIHJlcXVpcmVkIixTZS5yZXF1ZXN0LnJlc3BvbnNlVVJMKTtpZigic3RyaW5nIj09dHlwZW9mIFNlLmRhdGEmJigwLHEu''@;'; + put 'put ''aXNMb2dJblJlcXVpcmVkKShTZS5kYXRhKSYmKG51bGw9PT0oaGU9bnVsbD09PShFZT1TZS5jb25maWcpfHx2b2lkIDA9PT1FZT92b2lkIDA6RWUudXJsKXx8dm9pZCAwPT09aGV8fCFoZS5pbmNsdWRlcygiL1NBU0xvZ29uL2xvZ2luIikpKXRocm93IG5ldyBKLkxvZ2luUmVxdWlyZWRFcnJv''@;'; + put 'put ''cjtpZihudWxsIT09KE89U2UuZGF0YSkmJnZvaWQgMCE9PU8mJk8uYXV0aF9yZXF1ZXN0KXRocm93IG5ldyBKLkF1dGhvcml6ZUVycm9yKFNlLmRhdGEubWVzc2FnZSxTZS5yZXF1ZXN0LnJlc3BvbnNlVVJMKTtpZihudWxsIT09KG5lPW51bGw9PT0oej1TZS5jb25maWcpfHx2b2lkIDA9PT16''@;'; + put 'put ''P3ZvaWQgMDp6LnVybCkmJnZvaWQgMCE9PW5lJiZuZS5pbmNsdWRlcygic2FzQXV0aEVycm9yIikpdGhyb3cgbmV3IGNlLlNBUzlBdXRoRXJyb3I7dmFyIHg9a2UoU2UuZGF0YSk7aWYoeCl0aHJvdyB4fTt2YXIga2U9ZnVuY3Rpb24oU2Upe2lmKCFTZSlyZXR1cm4gbnVsbDt0cnl7dmFyIEll''@;'; + put 'put ''PUpTT04ucGFyc2UobnVsbD09U2U/dm9pZCAwOlNlLnJlcGxhY2UoL1tcblxyXS9nLCIgIikpO2lmKEllLmVycm9yQ29kZSYmSWUubWVzc2FnZSlyZXR1cm4gbmV3IEouSm9iRXhlY3V0aW9uRXJyb3IoSWUuZXJyb3JDb2RlLEllLm1lc3NhZ2UsbnVsbD09U2U/dm9pZCAwOlNlLnJlcGxhY2Uo''@;'; + put 'put ''L1tcblxyXS9nLCIgIikpfWNhdGNoKHRlKXt9dHJ5e2lmKG51bGwhPVNlJiZTZS5pbmNsdWRlcygneyJlcnJvckNvZGUnKSYmKHo9U2Uuc3BsaXQoJ3siZXJyb3JDb2RlJykpLmxlbmd0aD4xKXt2YXIgVGU9J3siZXJyb3JDb2RlJyt6WzFdLnNwbGl0KCcifScpWzBdKycifScsRWU9SlNPTi5w''@;'; + put 'put ''YXJzZShUZS5yZXBsYWNlKC9bXG5ccl0vZywiICIpKTtyZXR1cm4gbmV3IEouSm9iRXhlY3V0aW9uRXJyb3IoRWUuZXJyb3JDb2RlLEVlLm1lc3NhZ2UsbnVsbD09U2U/dm9pZCAwOlNlLnJlcGxhY2UoL1tcblxyXS9nLCJcbiIpKX19Y2F0Y2godGUpe310cnl7aWYobnVsbCE9U2UmJlNlLm1h''@;'; + put 'put ''dGNoKC9zdG9yZWQgcHJvY2VzcyBub3QgZm91bmQ6IC9pKSYmKHo9U2Uuc3BsaXQoL3N0b3JlZCBwcm9jZXNzIG5vdCBmb3VuZDogL2kpKS5sZW5ndGg+MSl7dmFyIGhlPXpbMV0uc3BsaXQoIjxpPiIpWzFdLnNwbGl0KCI8L2k+IilbMF0sTz0iU3RvcmVkIHByb2Nlc3Mgbm90IGZvdW5kOiAi''@;'; + put 'put ''LmNvbmNhdChoZSk7cmV0dXJuIG5ldyBKLkpvYkV4ZWN1dGlvbkVycm9yKDUwMCxPLCIiKX19Y2F0Y2godGUpe310cnl7dmFyIHo7aWYoKG51bGw9PVNlfHwhU2UubWF0Y2goLz4+d2Vib3V0QkVHSU48PC8pKSYmbnVsbCE9U2UmJlNlLm1hdGNoKC9TdG9yZWQgUHJvY2VzcyBFcnJvci9pKSYm''@;'; + put 'put ''bnVsbCE9U2UmJlNlLm1hdGNoKC9UaGlzIHJlcXVlc3QgY29tcGxldGVkIHdpdGggZXJyb3JzLi9pKSYmKHo9U2Uuc3BsaXQoIjxoMj5TQVMgTG9nPC9oMj4iKSkubGVuZ3RoPjEpe3ZhciBuZT16WzFdLnNwbGl0KCI8cHJlPiIpWzFdLnNwbGl0KCI8L3ByZT4iKVswXTtyZXR1cm4gbmV3IEou''@;'; + put 'put ''Sm9iRXhlY3V0aW9uRXJyb3IoNTAwLE89IlRoaXMgcmVxdWVzdCBjb21wbGV0ZWQgd2l0aCBlcnJvcnMuIixuZSl9fWNhdGNoKHRlKXt9cmV0dXJuIG51bGx9fSw3OTU6ZnVuY3Rpb24oVSxRLFopeyJ1c2Ugc3RyaWN0Ijt2YXIgaWUsYWU9dGhpcyYmdGhpcy5fX2V4dGVuZHN8fChpZT1mdW5j''@;'; + put 'put ''dGlvbihjZSxkZSl7cmV0dXJuKGllPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbih2ZSxBZSl7dmUuX19wcm90b19fPUFlfXx8ZnVuY3Rpb24odmUsQWUpe2Zvcih2YXIga2UgaW4gQWUpT2JqZWN0LnByb3RvdHlwZS5oYXNP''@;'; + put 'put ''d25Qcm9wZXJ0eS5jYWxsKEFlLGtlKSYmKHZlW2tlXT1BZVtrZV0pfSkoY2UsZGUpfSxmdW5jdGlvbihjZSxkZSl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGRlJiZudWxsIT09ZGUpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSAiK1N0cmluZyhkZSkrIiBpcyBub3Qg''@;'; + put 'put ''YSBjb25zdHJ1Y3RvciBvciBudWxsIik7ZnVuY3Rpb24gdmUoKXt0aGlzLmNvbnN0cnVjdG9yPWNlfWllKGNlLGRlKSxjZS5wcm90b3R5cGU9bnVsbD09PWRlP09iamVjdC5jcmVhdGUoZGUpOih2ZS5wcm90b3R5cGU9ZGUucHJvdG90eXBlLG5ldyB2ZSl9KSxZPXRoaXMmJnRoaXMuX19hc3Np''@;'; + put 'put ''Z258fGZ1bmN0aW9uKCl7cmV0dXJuIFk9T2JqZWN0LmFzc2lnbnx8ZnVuY3Rpb24oY2Upe2Zvcih2YXIgZGUsdmU9MSxBZT1hcmd1bWVudHMubGVuZ3RoO3ZlPEFlO3ZlKyspZm9yKHZhciBrZSBpbiBkZT1hcmd1bWVudHNbdmVdKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2Fs''@;'; + put 'put ''bChkZSxrZSkmJihjZVtrZV09ZGVba2VdKTtyZXR1cm4gY2V9LFkuYXBwbHkodGhpcyxhcmd1bWVudHMpfSxXPXRoaXMmJnRoaXMuX19hd2FpdGVyfHxmdW5jdGlvbihjZSxkZSx2ZSxBZSl7cmV0dXJuIG5ldyh2ZXx8KHZlPVByb21pc2UpKShmdW5jdGlvbihrZSxTZSl7ZnVuY3Rpb24gSWUo''@;'; + put 'put ''aGUpe3RyeXtFZShBZS5uZXh0KGhlKSl9Y2F0Y2goTyl7U2UoTyl9fWZ1bmN0aW9uIFRlKGhlKXt0cnl7RWUoQWUudGhyb3coaGUpKX1jYXRjaChPKXtTZShPKX19ZnVuY3Rpb24gRWUoaGUpe3ZhciBPO2hlLmRvbmU/a2UoaGUudmFsdWUpOihPPWhlLnZhbHVlLE8gaW5zdGFuY2VvZiB2ZT9P''@;'; + put 'put ''Om5ldyB2ZShmdW5jdGlvbih6KXt6KE8pfSkpLnRoZW4oSWUsVGUpfUVlKChBZT1BZS5hcHBseShjZSxkZXx8W10pKS5uZXh0KCkpfSl9LE49dGhpcyYmdGhpcy5fX2dlbmVyYXRvcnx8ZnVuY3Rpb24oY2UsZGUpe3ZhciB2ZSxBZSxrZSxTZSxJZT17bGFiZWw6MCxzZW50OmZ1bmN0aW9uKCl7''@;'; + put 'put ''aWYoMSZrZVswXSl0aHJvdyBrZVsxXTtyZXR1cm4ga2VbMV19LHRyeXM6W10sb3BzOltdfTtyZXR1cm4gU2U9e25leHQ6VGUoMCksdGhyb3c6VGUoMSkscmV0dXJuOlRlKDIpfSwiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYoU2VbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVy''@;'; + put 'put ''biB0aGlzfSksU2U7ZnVuY3Rpb24gVGUoRWUpe3JldHVybiBmdW5jdGlvbihoZSl7cmV0dXJuIGZ1bmN0aW9uKE8pe2lmKHZlKXRocm93IG5ldyBUeXBlRXJyb3IoIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy4iKTtmb3IoO0llOyl0cnl7aWYodmU9MSxBZSYmKGtlPTImT1swXT9B''@;'; + put 'put ''ZS5yZXR1cm46T1swXT9BZS50aHJvd3x8KChrZT1BZS5yZXR1cm4pJiZrZS5jYWxsKEFlKSwwKTpBZS5uZXh0KSYmIShrZT1rZS5jYWxsKEFlLE9bMV0pKS5kb25lKXJldHVybiBrZTtzd2l0Y2goQWU9MCxrZSYmKE89WzImT1swXSxrZS52YWx1ZV0pLE9bMF0pe2Nhc2UgMDpjYXNlIDE6a2U9''@;'; + put 'put ''TzticmVhaztjYXNlIDQ6cmV0dXJuIEllLmxhYmVsKysse3ZhbHVlOk9bMV0sZG9uZTohMX07Y2FzZSA1OkllLmxhYmVsKyssQWU9T1sxXSxPPVswXTtjb250aW51ZTtjYXNlIDc6Tz1JZS5vcHMucG9wKCksSWUudHJ5cy5wb3AoKTtjb250aW51ZTtkZWZhdWx0OmlmKCEoKGtlPShrZT1JZS50''@;'; + put 'put ''cnlzKS5sZW5ndGg+MCYma2Vba2UubGVuZ3RoLTFdKXx8NiE9PU9bMF0mJjIhPT1PWzBdKSl7SWU9MDtjb250aW51ZX1pZigzPT09T1swXSYmKCFrZXx8T1sxXT5rZVswXSYmT1sxXTxrZVszXSkpe0llLmxhYmVsPU9bMV07YnJlYWt9aWYoNj09PU9bMF0mJkllLmxhYmVsPGtlWzFdKXtJZS5s''@;'; + put 'put ''YWJlbD1rZVsxXSxrZT1PO2JyZWFrfWlmKGtlJiZJZS5sYWJlbDxrZVsyXSl7SWUubGFiZWw9a2VbMl0sSWUub3BzLnB1c2goTyk7YnJlYWt9a2VbMl0mJkllLm9wcy5wb3AoKSxJZS50cnlzLnBvcCgpO2NvbnRpbnVlfU89ZGUuY2FsbChjZSxJZSl9Y2F0Y2goeil7Tz1bNix6XSxBZT0wfWZp''@;'; + put 'put ''bmFsbHl7dmU9a2U9MH1pZig1Jk9bMF0pdGhyb3cgT1sxXTtyZXR1cm57dmFsdWU6T1swXT9PWzFdOnZvaWQgMCxkb25lOiEwfX0oW0VlLGhlXSl9fX07T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLFEuU2FzOVJlcXVlc3RDbGllbnQ9dm9pZCAwO3Zh''@;'; + put 'put ''ciBlZT1aKDgyMjQpLHE9Wig3ODU3KSxKPVooOTc3OCksc2U9Wig0NTg4KSxvZT1mdW5jdGlvbihjZSl7ZnVuY3Rpb24gZGUodmUsQWUpe3ZhciBrZT1jZS5jYWxsKHRoaXMsdmUsQWUpfHx0aGlzO3JldHVybiBrZS5odHRwQ2xpZW50LmRlZmF1bHRzLm1heFJlZGlyZWN0cz0wLGtlLmh0dHBD''@;'; + put 'put ''bGllbnQuZGVmYXVsdHMudmFsaWRhdGVTdGF0dXM9ZnVuY3Rpb24oU2Upe3JldHVybiBTZT49MjAwJiZTZTwzMDN9LGVlLmRlZmF1bHQmJigoMCxlZS5kZWZhdWx0KShrZS5odHRwQ2xpZW50KSxrZS5odHRwQ2xpZW50LmRlZmF1bHRzLmphcj1uZXcgcS5Db29raWVKYXIpLGtlfXJldHVybiBh''@;'; + put 'put ''ZShkZSxjZSksZGUucHJvdG90eXBlLmxvZ2luPWZ1bmN0aW9uKHZlLEFlLGtlKXtyZXR1cm4gVyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgU2U7cmV0dXJuIE4odGhpcyxmdW5jdGlvbihJZSl7c3dpdGNoKEllLmxhYmVsKXtjYXNlIDA6cmV0dXJuIFNlPSIvVXNlciBGb2xk''@;'; + put 'put ''ZXJzLyIuY29uY2F0KHZlLCIvTXkgRm9sZGVyL3Nhc2pzL3J1bm5lciIpLHRoaXMuaHR0cENsaWVudC5kZWZhdWx0cy5qYXI/KHRoaXMuaHR0cENsaWVudC5kZWZhdWx0cy5qYXIucmVtb3ZlQWxsQ29va2llcygpLFs0LHRoaXMuZ2V0KCIiLmNvbmNhdChrZSwiP19wcm9ncmFtPSIpLmNvbmNh''@;'; + put 'put ''dChTZSwiJl91c2VybmFtZT0iKS5jb25jYXQodmUsIiZfcGFzc3dvcmQ9IikuY29uY2F0KEFlKSx2b2lkIDAsInRleHQvcGxhaW4iKV0pOlszLDJdO2Nhc2UgMTpJZS5zZW50KCksSWUubGFiZWw9MjtjYXNlIDI6cmV0dXJuWzJdfX0pfSl9LGRlLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24odmUs''@;'; + put 'put ''QWUsa2UsU2UsSWUpe3JldHVybiB2b2lkIDA9PT1rZSYmKGtlPSJhcHBsaWNhdGlvbi9qc29uIiksdm9pZCAwPT09U2UmJihTZT17fSksdm9pZCAwPT09SWUmJihJZT0hMSksVyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgVGUsRWUsaGU9dGhpcztyZXR1cm4gTih0aGlzLGZ1''@;'; + put 'put ''bmN0aW9uKE8pe3JldHVybiBUZT1ZKFkoe30sdGhpcy5nZXRIZWFkZXJzKEFlLGtlKSksU2UpLEVlPXtoZWFkZXJzOlRlLHJlc3BvbnNlVHlwZToidGV4dC9wbGFpbiI9PT1rZT8idGV4dCI6Impzb24iLHdpdGhDcmVkZW50aWFsczohMH0sInRleHQvcGxhaW4iPT09a2UmJihFZS50cmFuc2Zv''@;'; + put 'put ''cm1SZXNwb25zZT12b2lkIDApLFsyLHRoaXMuaHR0cENsaWVudC5nZXQodmUsRWUpLnRoZW4oZnVuY3Rpb24oeil7cmV0dXJuIDMwMj09PXouc3RhdHVzP2hlLmdldCh6LmhlYWRlcnMubG9jYXRpb24sQWUsa2UpOigoMCxzZS50aHJvd0lmRXJyb3IpKHopLGhlLnBhcnNlUmVzcG9uc2Uoeikp''@;'; + put 'put ''fSkuY2F0Y2goZnVuY3Rpb24oeil7cmV0dXJuIFcoaGUsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBuZT10aGlzO3JldHVybiBOKHRoaXMsZnVuY3Rpb24odGUpe3N3aXRjaCh0ZS5sYWJlbCl7Y2FzZSAwOnJldHVybls0LHRoaXMuaGFuZGxlRXJyb3IoeixmdW5jdGlvbigpe3JldHVy''@;'; + put 'put ''biBuZS5nZXQodmUsQWUsa2UsU2UpLmNhdGNoKGZ1bmN0aW9uKHgpe3Rocm93KDAsSi5wcmVmaXhNZXNzYWdlKSh4LCJFcnJvciB3aGlsZSBleGVjdXRpbmcgaGFuZGxlIGVycm9yIGNhbGxiYWNrLiAiKX0pfSxJZSkuY2F0Y2goZnVuY3Rpb24oeCl7dGhyb3coMCxKLnByZWZpeE1lc3NhZ2Up''@;'; + put 'put ''KHgsIkVycm9yIHdoaWxlIGhhbmRsaW5nIGVycm9yLiAiKX0pXTtjYXNlIDE6cmV0dXJuWzIsdGUuc2VudCgpXX19KX0pfSldfSl9KX0sZGUucHJvdG90eXBlLnBvc3Q9ZnVuY3Rpb24odmUsQWUsa2UsU2UsSWUpe3JldHVybiB2b2lkIDA9PT1TZSYmKFNlPSJhcHBsaWNhdGlvbi9qc29uIiks''@;'; + put 'put ''dm9pZCAwPT09SWUmJihJZT17fSksVyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgVGUsRWU9dGhpcztyZXR1cm4gTih0aGlzLGZ1bmN0aW9uKGhlKXtyZXR1cm4gVGU9WShZKHt9LHRoaXMuZ2V0SGVhZGVycyhrZSxTZSkpLEllKSxbMix0aGlzLmh0dHBDbGllbnQucG9zdCh2''@;'; + put 'put ''ZSxBZSx7aGVhZGVyczpUZSx3aXRoQ3JlZGVudGlhbHM6ITB9KS50aGVuKGZ1bmN0aW9uKE8pe3JldHVybiBXKEVlLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gTih0aGlzLGZ1bmN0aW9uKHope3N3aXRjaCh6LmxhYmVsKXtjYXNlIDA6cmV0dXJuIDMwMiE9PU8uc3RhdHVzP1sz''@;'; + put 'put ''LDJdOls0LHRoaXMuZ2V0KE8uaGVhZGVycy5sb2NhdGlvbix2b2lkIDAsU2UsSWUpXTtjYXNlIDE6cmV0dXJuWzIsei5zZW50KCldO2Nhc2UgMjpyZXR1cm4oMCxzZS50aHJvd0lmRXJyb3IpKE8pLFsyLHRoaXMucGFyc2VSZXNwb25zZShPKV19fSl9KX0pLmNhdGNoKGZ1bmN0aW9uKE8pe3Jl''@;'; + put 'put ''dHVybiBXKEVlLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgej10aGlzO3JldHVybiBOKHRoaXMsZnVuY3Rpb24obmUpe3N3aXRjaChuZS5sYWJlbCl7Y2FzZSAwOnJldHVybls0LHRoaXMuaGFuZGxlRXJyb3IoTyxmdW5jdGlvbigpe3JldHVybiB6LnBvc3QodmUsQWUsa2UsU2UsSWUp''@;'; + put 'put ''fSldO2Nhc2UgMTpyZXR1cm5bMixuZS5zZW50KCldfX0pfSl9KV19KX0pfSxkZX0oc2UuUmVxdWVzdENsaWVudCk7US5TYXM5UmVxdWVzdENsaWVudD1vZX0sMzYwMjpmdW5jdGlvbihVLFEsWil7InVzZSBzdHJpY3QiO3ZhciBpZSxhZT10aGlzJiZ0aGlzLl9fZXh0ZW5kc3x8KGllPWZ1bmN0''@;'; + put 'put ''aW9uKGVlLHEpe3JldHVybihpZT1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24oSixzZSl7Si5fX3Byb3RvX189c2V9fHxmdW5jdGlvbihKLHNlKXtmb3IodmFyIG9lIGluIHNlKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJv''@;'; + put 'put ''cGVydHkuY2FsbChzZSxvZSkmJihKW29lXT1zZVtvZV0pfSkoZWUscSl9LGZ1bmN0aW9uKGVlLHEpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBxJiZudWxsIT09cSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDbGFzcyBleHRlbmRzIHZhbHVlICIrU3RyaW5nKHEpKyIgaXMgbm90IGEgY29uc3RydWN0''@;'; + put 'put ''b3Igb3IgbnVsbCIpO2Z1bmN0aW9uIEooKXt0aGlzLmNvbnN0cnVjdG9yPWVlfWllKGVlLHEpLGVlLnByb3RvdHlwZT1udWxsPT09cT9PYmplY3QuY3JlYXRlKHEpOihKLnByb3RvdHlwZT1xLnByb3RvdHlwZSxuZXcgSil9KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwiX19lc01vZHVsZSIs''@;'; + put 'put ''e3ZhbHVlOiEwfSksUS5TYXNqc1JlcXVlc3RDbGllbnQ9dm9pZCAwO3ZhciBZPVooNDU4OCksVz1aKDU5MjgpLE49ZnVuY3Rpb24oZWUpe2Z1bmN0aW9uIHEoKXt2YXIgSj1udWxsIT09ZWUmJmVlLmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpcztyZXR1cm4gSi5nZXRIZWFkZXJzPWZ1bmN0''@;'; + put 'put ''aW9uKHNlLG9lKXt2YXIgY2UsZGU9e307cmV0dXJuImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIhPT1vZSYmKGRlWyJDb250ZW50LVR5cGUiXT1vZSksZGUuQWNjZXB0PSJhcHBsaWNhdGlvbi9qc29uIj09PW9lP29lOiIqLyoiLHNlfHwidW5kZWZpbmVkIj09dHlwZW9mIHdp''@;'; + put 'put ''bmRvd3x8KHNlPW51bGwhPT0oY2U9bG9jYWxTdG9yYWdlLmdldEl0ZW0oImFjY2Vzc1Rva2VuIikpJiZ2b2lkIDAhPT1jZT9jZTp2b2lkIDApLHNlJiYoZGUuQXV0aG9yaXphdGlvbj0iQmVhcmVyICIuY29uY2F0KHNlKSksZGV9LEp9cmV0dXJuIGFlKHEsZWUpLHEucHJvdG90eXBlLnBhcnNl''@;'; + put 'put ''UmVzcG9uc2U9ZnVuY3Rpb24oSil7dmFyIHNlLG9lPW51bGwhPUomJkouaGVhZGVycz9KLmhlYWRlcnMuZXRhZzoiIixjZT17fTt0cnl7Y2U9InN0cmluZyI9PXR5cGVvZiBKLmRhdGE/SlNPTi5wYXJzZShKLmRhdGEpOkouZGF0YX1jYXRjaCh2ZSl7aWYoSi5kYXRhLmluY2x1ZGVzKFcuU0FT''@;'; + put 'put ''SlNfTE9HU19TRVBBUkFUT1IpKXt2YXIgZGU9Si5kYXRhLnNwbGl0KFcuU0FTSlNfTE9HU19TRVBBUkFUT1IpO3NlPWRlWzFdLGRlWzBdLnRyaW0oKSYmKGNlPSgwLFcuZ2V0VmFsaWRKc29uKShkZVswXSkpfWVsc2UgY2U9Si5kYXRhfXJldHVybntyZXN1bHQ6Y2UsbG9nOnNlLGV0YWc6b2Us''@;'; + put 'put ''c3RhdHVzOkouc3RhdHVzfX0scX0oWS5SZXF1ZXN0Q2xpZW50KTtRLlNhc2pzUmVxdWVzdENsaWVudD1OfSw0NzA6KFUsUSk9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pfSw0NjY2OihVLFEpPT57InVzZSBzdHJpY3QiO09i''@;'; + put 'put ''amVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KX0sNjE3NzooVSxRKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSl9LDU3NjY6KFUsUSk9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVBy''@;'; + put 'put ''b3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pfSw0OTc1OihVLFEpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KX0sMjE1OihVLFEpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2Vz''@;'; + put 'put ''TW9kdWxlIix7dmFsdWU6ITB9KX0sNDc4MjooVSxRKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSl9LDQxNjg6KFUsUSk9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1''@;'; + put 'put ''ZTohMH0pfSw4NTE2OihVLFEpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KX0sMzE1MzooVSxRKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSl9LDU4NDE6''@;'; + put 'put ''KFUsUSk9PnsidXNlIHN0cmljdCI7dmFyIFosYWU7T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLFEuTG9naW5NZWNoYW5pc209US5TQVNqc0NvbmZpZz12b2lkIDAsUS5TQVNqc0NvbmZpZz1mdW5jdGlvbigpe3RoaXMuc2VydmVyVXJsPSIiLHRoaXMu''@;'; + put 'put ''cGF0aFNBU0pTPSIiLHRoaXMucGF0aFNBUzk9IiIsdGhpcy5wYXRoU0FTVml5YT0iIix0aGlzLmFwcExvYz0iIix0aGlzLnNlcnZlclR5cGU9bnVsbCx0aGlzLmRlYnVnPSEwLHRoaXMuY29udGV4dE5hbWU9IiIsdGhpcy51c2VDb21wdXRlQXBpPW51bGwsdGhpcy5sb2dpbk1lY2hhbmlzbT1a''@;'; + put 'put ''LkRlZmF1bHQsdGhpcy5yZXF1ZXN0SGlzdG9yeUxpbWl0PTEwfSwoYWU9Wj1RLkxvZ2luTWVjaGFuaXNtfHwoUS5Mb2dpbk1lY2hhbmlzbT17fSkpLkRlZmF1bHQ9IkRlZmF1bHQiLGFlLlJlZGlyZWN0ZWQ9IlJlZGlyZWN0ZWQifSwyNDkzOihVLFEpPT57InVzZSBzdHJpY3QiO09iamVjdC5k''@;'; + put 'put ''ZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KX0sNjAzODooVSxRKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSl9LDk0OTM6KFUsUSk9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5''@;'; + put 'put ''KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pfSw4NjUwOihVLFEpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KX0sMTI0OmZ1bmN0aW9uKFUsUSl7InVzZSBzdHJpY3QiO3ZhciBaLGllPXRoaXMmJnRoaXMuX19leHRlbmRz''@;'; + put 'put ''fHwoWj1mdW5jdGlvbihZLFcpe3JldHVybihaPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbihOLGVlKXtOLl9fcHJvdG9fXz1lZX18fGZ1bmN0aW9uKE4sZWUpe2Zvcih2YXIgcSBpbiBlZSlPYmplY3QucHJvdG90eXBlLmhh''@;'; + put 'put ''c093blByb3BlcnR5LmNhbGwoZWUscSkmJihOW3FdPWVlW3FdKX0pKFksVyl9LGZ1bmN0aW9uKFksVyl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIFcmJm51bGwhPT1XKXRocm93IG5ldyBUeXBlRXJyb3IoIkNsYXNzIGV4dGVuZHMgdmFsdWUgIitTdHJpbmcoVykrIiBpcyBub3QgYSBjb25zdHJ1''@;'; + put 'put ''Y3RvciBvciBudWxsIik7ZnVuY3Rpb24gTigpe3RoaXMuY29uc3RydWN0b3I9WX1aKFksVyksWS5wcm90b3R5cGU9bnVsbD09PVc/T2JqZWN0LmNyZWF0ZShXKTooTi5wcm90b3R5cGU9Vy5wcm90b3R5cGUsbmV3IE4pfSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2''@;'; + put 'put ''YWx1ZTohMH0pLFEuQXV0aG9yaXplRXJyb3I9dm9pZCAwO3ZhciBhZT1mdW5jdGlvbihZKXtmdW5jdGlvbiBXKE4sZWUpe3ZhciBxPVkuY2FsbCh0aGlzLE4pfHx0aGlzO3JldHVybiBxLm1lc3NhZ2U9TixxLmNvbmZpcm1Vcmw9ZWUscS5uYW1lPSJBdXRob3JpemVFcnJvciIsT2JqZWN0LnNl''@;'; + put 'put ''dFByb3RvdHlwZU9mKHEsVy5wcm90b3R5cGUpLHF9cmV0dXJuIGllKFcsWSksV30oRXJyb3IpO1EuQXV0aG9yaXplRXJyb3I9YWV9LDk0NjU6ZnVuY3Rpb24oVSxRKXsidXNlIHN0cmljdCI7dmFyIFosaWU9dGhpcyYmdGhpcy5fX2V4dGVuZHN8fChaPWZ1bmN0aW9uKFksVyl7cmV0dXJuKFo9''@;'; + put 'put ''T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKE4sZWUpe04uX19wcm90b19fPWVlfXx8ZnVuY3Rpb24oTixlZSl7Zm9yKHZhciBxIGluIGVlKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlZSxxKSYmKE5b''@;'; + put 'put ''cV09ZWVbcV0pfSkoWSxXKX0sZnVuY3Rpb24oWSxXKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgVyYmbnVsbCE9PVcpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSAiK1N0cmluZyhXKSsiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGwiKTtmdW5jdGlvbiBOKCl7''@;'; + put 'put ''dGhpcy5jb25zdHJ1Y3Rvcj1ZfVooWSxXKSxZLnByb3RvdHlwZT1udWxsPT09Vz9PYmplY3QuY3JlYXRlKFcpOihOLnByb3RvdHlwZT1XLnByb3RvdHlwZSxuZXcgTil9KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksUS5DZXJ0aWZpY2F0ZUVycm9y''@;'; + put 'put ''PXZvaWQgMDt2YXIgYWU9ZnVuY3Rpb24oWSl7ZnVuY3Rpb24gVyhOKXt2YXIgZWU9WS5jYWxsKHRoaXMsIiIuY29uY2F0KE4sIlxuUGxlYXNlIHZpc2l0IHRoZSBsaW5rIGJlbG93IGZvciBmdXJ0aGVyIGluZm9ybWF0aW9uIG9uIHRoaXMgaXNzdWU6XG4tICIpLmNvbmNhdCgiaHR0cHM6Ly9n''@;'; + put 'put ''aXRodWIuY29tL3Nhc2pzL2NsaS9pc3N1ZXMvMTE4MSNpc3N1ZWNvbW1lbnQtMTA5MDYzODU4NCIsIlxuIikpfHx0aGlzO3JldHVybiBlZS5uYW1lPSJDZXJ0aWZpY2F0ZUVycm9yIixPYmplY3Quc2V0UHJvdG90eXBlT2YoZWUsVy5wcm90b3R5cGUpLGVlfXJldHVybiBpZShXLFkpLFd9KEVy''@;'; + put 'put ''cm9yKTtRLkNlcnRpZmljYXRlRXJyb3I9YWV9LDUyNjc6ZnVuY3Rpb24oVSxRKXsidXNlIHN0cmljdCI7dmFyIFosaWU9dGhpcyYmdGhpcy5fX2V4dGVuZHN8fChaPWZ1bmN0aW9uKFksVyl7cmV0dXJuKFo9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2Yg''@;'; + put 'put ''QXJyYXkmJmZ1bmN0aW9uKE4sZWUpe04uX19wcm90b19fPWVlfXx8ZnVuY3Rpb24oTixlZSl7Zm9yKHZhciBxIGluIGVlKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlZSxxKSYmKE5bcV09ZWVbcV0pfSkoWSxXKX0sZnVuY3Rpb24oWSxXKXtpZigiZnVuY3Rpb24iIT10''@;'; + put 'put ''eXBlb2YgVyYmbnVsbCE9PVcpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSAiK1N0cmluZyhXKSsiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGwiKTtmdW5jdGlvbiBOKCl7dGhpcy5jb25zdHJ1Y3Rvcj1ZfVooWSxXKSxZLnByb3RvdHlwZT1udWxsPT09Vz9P''@;'; + put 'put ''YmplY3QuY3JlYXRlKFcpOihOLnByb3RvdHlwZT1XLnByb3RvdHlwZSxuZXcgTil9KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksUS5Db21wdXRlSm9iRXhlY3V0aW9uRXJyb3I9dm9pZCAwO3ZhciBhZT1mdW5jdGlvbihZKXtmdW5jdGlvbiBXKE4s''@;'; + put 'put ''ZWUpe3ZhciBxPVkuY2FsbCh0aGlzLCJFcnJvcjogSm9iIGV4ZWN1dGlvbiBmYWlsZWQiKXx8dGhpcztyZXR1cm4gcS5qb2I9TixxLmxvZz1lZSxxLm5hbWU9IkNvbXB1dGVKb2JFeGVjdXRpb25FcnJvciIsT2JqZWN0LnNldFByb3RvdHlwZU9mKHEsVy5wcm90b3R5cGUpLHF9cmV0dXJuIGll''@;'; + put 'put ''KFcsWSksV30oRXJyb3IpO1EuQ29tcHV0ZUpvYkV4ZWN1dGlvbkVycm9yPWFlfSw5MjMyOihVLFEpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxRLkVycm9yUmVzcG9uc2U9dm9pZCAwLFEuRXJyb3JSZXNwb25zZT1mdW5j''@;'; + put 'put ''dGlvbihpZSxhZSxZKXt2YXIgVz1hZTtpZigib2JqZWN0IiE9dHlwZW9mIGFlKXRyeXtXPUpTT04ucGFyc2UoYWUpfWNhdGNoKE4pe1k9YWUsVz0iIn10aGlzLmVycm9yPXttZXNzYWdlOmllLGRldGFpbHM6VyxyYXc6WX19fSw1MTA5OmZ1bmN0aW9uKFUsUSl7InVzZSBzdHJpY3QiO3ZhciBa''@;'; + put 'put ''LGllPXRoaXMmJnRoaXMuX19leHRlbmRzfHwoWj1mdW5jdGlvbihZLFcpe3JldHVybihaPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbihOLGVlKXtOLl9fcHJvdG9fXz1lZX18fGZ1bmN0aW9uKE4sZWUpe2Zvcih2YXIgcSBp''@;'; + put 'put ''biBlZSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZWUscSkmJihOW3FdPWVlW3FdKX0pKFksVyl9LGZ1bmN0aW9uKFksVyl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIFcmJm51bGwhPT1XKXRocm93IG5ldyBUeXBlRXJyb3IoIkNsYXNzIGV4dGVuZHMgdmFsdWUgIitTdHJp''@;'; + put 'put ''bmcoVykrIiBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsIik7ZnVuY3Rpb24gTigpe3RoaXMuY29uc3RydWN0b3I9WX1aKFksVyksWS5wcm90b3R5cGU9bnVsbD09PVc/T2JqZWN0LmNyZWF0ZShXKTooTi5wcm90b3R5cGU9Vy5wcm90b3R5cGUsbmV3IE4pfSk7T2JqZWN0LmRlZmluZVBy''@;'; + put 'put ''b3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLFEuSW50ZXJuYWxTZXJ2ZXJFcnJvcj12b2lkIDA7dmFyIGFlPWZ1bmN0aW9uKFkpe2Z1bmN0aW9uIFcoKXt2YXIgTj1ZLmNhbGwodGhpcywiRXJyb3I6IEludGVybmFsIHNlcnZlciBlcnJvci4iKXx8dGhpcztyZXR1cm4gTi5uYW1l''@;'; + put 'put ''PSJJbnRlcm5hbFNlcnZlckVycm9yIixPYmplY3Quc2V0UHJvdG90eXBlT2YoTixXLnByb3RvdHlwZSksTn1yZXR1cm4gaWUoVyxZKSxXfShFcnJvcik7US5JbnRlcm5hbFNlcnZlckVycm9yPWFlfSw1NTE4OmZ1bmN0aW9uKFUsUSl7InVzZSBzdHJpY3QiO3ZhciBaLGllPXRoaXMmJnRoaXMu''@;'; + put 'put ''X19leHRlbmRzfHwoWj1mdW5jdGlvbihZLFcpe3JldHVybihaPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbihOLGVlKXtOLl9fcHJvdG9fXz1lZX18fGZ1bmN0aW9uKE4sZWUpe2Zvcih2YXIgcSBpbiBlZSlPYmplY3QucHJv''@;'; + put 'put ''dG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZWUscSkmJihOW3FdPWVlW3FdKX0pKFksVyl9LGZ1bmN0aW9uKFksVyl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIFcmJm51bGwhPT1XKXRocm93IG5ldyBUeXBlRXJyb3IoIkNsYXNzIGV4dGVuZHMgdmFsdWUgIitTdHJpbmcoVykrIiBpcyBub3Qg''@;'; + put 'put ''YSBjb25zdHJ1Y3RvciBvciBudWxsIik7ZnVuY3Rpb24gTigpe3RoaXMuY29uc3RydWN0b3I9WX1aKFksVyksWS5wcm90b3R5cGU9bnVsbD09PVc/T2JqZWN0LmNyZWF0ZShXKTooTi5wcm90b3R5cGU9Vy5wcm90b3R5cGUsbmV3IE4pfSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNN''@;'; + put 'put ''b2R1bGUiLHt2YWx1ZTohMH0pLFEuSW52YWxpZEpzb25FcnJvcj12b2lkIDA7dmFyIGFlPWZ1bmN0aW9uKFkpe2Z1bmN0aW9uIFcoKXt2YXIgTj1ZLmNhbGwodGhpcywiRXJyb3I6IGludmFsaWQgSnNvbiBzdHJpbmciKXx8dGhpcztyZXR1cm4gTi5uYW1lPSJJbnZhbGlkSnNvbkVycm9yIixP''@;'; + put 'put ''YmplY3Quc2V0UHJvdG90eXBlT2YoTixXLnByb3RvdHlwZSksTn1yZXR1cm4gaWUoVyxZKSxXfShFcnJvcik7US5JbnZhbGlkSnNvbkVycm9yPWFlfSwxMDA1OmZ1bmN0aW9uKFUsUSl7InVzZSBzdHJpY3QiO3ZhciBaLGllPXRoaXMmJnRoaXMuX19leHRlbmRzfHwoWj1mdW5jdGlvbihZLFcp''@;'; + put 'put ''e3JldHVybihaPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbihOLGVlKXtOLl9fcHJvdG9fXz1lZX18fGZ1bmN0aW9uKE4sZWUpe2Zvcih2YXIgcSBpbiBlZSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwo''@;'; + put 'put ''ZWUscSkmJihOW3FdPWVlW3FdKX0pKFksVyl9LGZ1bmN0aW9uKFksVyl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIFcmJm51bGwhPT1XKXRocm93IG5ldyBUeXBlRXJyb3IoIkNsYXNzIGV4dGVuZHMgdmFsdWUgIitTdHJpbmcoVykrIiBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsIik7ZnVu''@;'; + put 'put ''Y3Rpb24gTigpe3RoaXMuY29uc3RydWN0b3I9WX1aKFksVyksWS5wcm90b3R5cGU9bnVsbD09PVc/T2JqZWN0LmNyZWF0ZShXKTooTi5wcm90b3R5cGU9Vy5wcm90b3R5cGUsbmV3IE4pfSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLFEuSW52YWxp''@;'; + put 'put ''ZFNBU2pzQ3NyZkVycm9yPXZvaWQgMDt2YXIgYWU9ZnVuY3Rpb24oWSl7ZnVuY3Rpb24gVygpe3ZhciBOPXRoaXM7cmV0dXJuKE49WS5jYWxsKHRoaXMsIkF1dGggZXJyb3I6ICIuY29uY2F0KCJJbnZhbGlkIENTUkYgdG9rZW4hIikpfHx0aGlzKS5uYW1lPSJJbnZhbGlkU0FTanNDc3JmRXJy''@;'; + put 'put ''b3IiLE9iamVjdC5zZXRQcm90b3R5cGVPZihOLFcucHJvdG90eXBlKSxOfXJldHVybiBpZShXLFkpLFd9KEVycm9yKTtRLkludmFsaWRTQVNqc0NzcmZFcnJvcj1hZX0sODUzMTpmdW5jdGlvbihVLFEpeyJ1c2Ugc3RyaWN0Ijt2YXIgWixpZT10aGlzJiZ0aGlzLl9fZXh0ZW5kc3x8KFo9ZnVu''@;'; + put 'put ''Y3Rpb24oWSxXKXtyZXR1cm4oWj1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24oTixlZSl7Ti5fX3Byb3RvX189ZWV9fHxmdW5jdGlvbihOLGVlKXtmb3IodmFyIHEgaW4gZWUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9w''@;'; + put 'put ''ZXJ0eS5jYWxsKGVlLHEpJiYoTltxXT1lZVtxXSl9KShZLFcpfSxmdW5jdGlvbihZLFcpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBXJiZudWxsIT09Vyl0aHJvdyBuZXcgVHlwZUVycm9yKCJDbGFzcyBleHRlbmRzIHZhbHVlICIrU3RyaW5nKFcpKyIgaXMgbm90IGEgY29uc3RydWN0b3Igb3Ig''@;'; + put 'put ''bnVsbCIpO2Z1bmN0aW9uIE4oKXt0aGlzLmNvbnN0cnVjdG9yPVl9WihZLFcpLFkucHJvdG90eXBlPW51bGw9PT1XP09iamVjdC5jcmVhdGUoVyk6KE4ucHJvdG90eXBlPVcucHJvdG90eXBlLG5ldyBOKX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9''@;'; + put 'put ''KSxRLkpvYkV4ZWN1dGlvbkVycm9yPXZvaWQgMDt2YXIgYWU9ZnVuY3Rpb24oWSl7ZnVuY3Rpb24gVyhOLGVlLHEpe3ZhciBKPVkuY2FsbCh0aGlzLCJFcnJvciBDb2RlICIuY29uY2F0KE4sIjogIikuY29uY2F0KGVlKSl8fHRoaXM7cmV0dXJuIEouZXJyb3JDb2RlPU4sSi5lcnJvck1lc3Nh''@;'; + put 'put ''Z2U9ZWUsSi5yZXN1bHQ9cSxKLm5hbWU9IkpvYkV4ZWN1dGlvbkVycm9yIixPYmplY3Quc2V0UHJvdG90eXBlT2YoSixXLnByb3RvdHlwZSksSn1yZXR1cm4gaWUoVyxZKSxXfShFcnJvcik7US5Kb2JFeGVjdXRpb25FcnJvcj1hZX0sOTA3OTpmdW5jdGlvbihVLFEpeyJ1c2Ugc3RyaWN0Ijt2''@;'; + put 'put ''YXIgWixpZT10aGlzJiZ0aGlzLl9fZXh0ZW5kc3x8KFo9ZnVuY3Rpb24oWSxXKXtyZXR1cm4oWj1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24oTixlZSl7Ti5fX3Byb3RvX189ZWV9fHxmdW5jdGlvbihOLGVlKXtmb3IodmFy''@;'; + put 'put ''IHEgaW4gZWUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGVlLHEpJiYoTltxXT1lZVtxXSl9KShZLFcpfSxmdW5jdGlvbihZLFcpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBXJiZudWxsIT09Vyl0aHJvdyBuZXcgVHlwZUVycm9yKCJDbGFzcyBleHRlbmRzIHZhbHVlICIr''@;'; + put 'put ''U3RyaW5nKFcpKyIgaXMgbm90IGEgY29uc3RydWN0b3Igb3IgbnVsbCIpO2Z1bmN0aW9uIE4oKXt0aGlzLmNvbnN0cnVjdG9yPVl9WihZLFcpLFkucHJvdG90eXBlPW51bGw9PT1XP09iamVjdC5jcmVhdGUoVyk6KE4ucHJvdG90eXBlPVcucHJvdG90eXBlLG5ldyBOKX0pO09iamVjdC5kZWZp''@;'; + put 'put ''bmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxRLkpvYlN0YXRlUG9sbEVycm9yPXZvaWQgMDt2YXIgYWU9ZnVuY3Rpb24oWSl7ZnVuY3Rpb24gVyhOLGVlKXt2YXIgcT1ZLmNhbGwodGhpcywiRXJyb3Igd2hpbGUgcG9sbGluZyBqb2Igc3RhdGUgZm9yIGpvYiAiLmNvbmNh''@;'; + put 'put ''dChOLCI6ICIpLmNvbmNhdChlZS5tZXNzYWdlfHxlZSkpfHx0aGlzO3JldHVybiBxLm9yaWdpbmFsRXJyb3I9ZWUscS5uYW1lPSJKb2JTdGF0ZVBvbGxFcnJvciIsT2JqZWN0LnNldFByb3RvdHlwZU9mKHEsVy5wcm90b3R5cGUpLHF9cmV0dXJuIGllKFcsWSksV30oRXJyb3IpO1EuSm9iU3Rh''@;'; + put 'put ''dGVQb2xsRXJyb3I9YWV9LDMwOTY6ZnVuY3Rpb24oVSxRKXsidXNlIHN0cmljdCI7dmFyIFosaWU9dGhpcyYmdGhpcy5fX2V4dGVuZHN8fChaPWZ1bmN0aW9uKFksVyl7cmV0dXJuKFo9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0''@;'; + put 'put ''aW9uKE4sZWUpe04uX19wcm90b19fPWVlfXx8ZnVuY3Rpb24oTixlZSl7Zm9yKHZhciBxIGluIGVlKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlZSxxKSYmKE5bcV09ZWVbcV0pfSkoWSxXKX0sZnVuY3Rpb24oWSxXKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgVyYmbnVs''@;'; + put 'put ''bCE9PVcpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSAiK1N0cmluZyhXKSsiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGwiKTtmdW5jdGlvbiBOKCl7dGhpcy5jb25zdHJ1Y3Rvcj1ZfVooWSxXKSxZLnByb3RvdHlwZT1udWxsPT09Vz9PYmplY3QuY3JlYXRl''@;'; + put 'put ''KFcpOihOLnByb3RvdHlwZT1XLnByb3RvdHlwZSxuZXcgTil9KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksUS5Kc29uUGFyc2VBcnJheUVycm9yPXZvaWQgMDt2YXIgYWU9ZnVuY3Rpb24oWSl7ZnVuY3Rpb24gVygpe3ZhciBOPVkuY2FsbCh0aGlz''@;'; + put 'put ''LCJDYW4gbm90IHBhcnNlIGFycmF5IG9iamVjdCB0byBqc29uLiIpfHx0aGlzO3JldHVybiBOLm5hbWU9Ikpzb25QYXJzZUFycmF5RXJyb3IiLE9iamVjdC5zZXRQcm90b3R5cGVPZihOLFcucHJvdG90eXBlKSxOfXJldHVybiBpZShXLFkpLFd9KEVycm9yKTtRLkpzb25QYXJzZUFycmF5RXJy''@;'; + put 'put ''b3I9YWV9LDY3NDM6ZnVuY3Rpb24oVSxRKXsidXNlIHN0cmljdCI7dmFyIFosaWU9dGhpcyYmdGhpcy5fX2V4dGVuZHN8fChaPWZ1bmN0aW9uKFksVyl7cmV0dXJuKFo9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKE4sZWUp''@;'; + put 'put ''e04uX19wcm90b19fPWVlfXx8ZnVuY3Rpb24oTixlZSl7Zm9yKHZhciBxIGluIGVlKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlZSxxKSYmKE5bcV09ZWVbcV0pfSkoWSxXKX0sZnVuY3Rpb24oWSxXKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgVyYmbnVsbCE9PVcpdGhy''@;'; + put 'put ''b3cgbmV3IFR5cGVFcnJvcigiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSAiK1N0cmluZyhXKSsiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGwiKTtmdW5jdGlvbiBOKCl7dGhpcy5jb25zdHJ1Y3Rvcj1ZfVooWSxXKSxZLnByb3RvdHlwZT1udWxsPT09Vz9PYmplY3QuY3JlYXRlKFcpOihOLnBy''@;'; + put 'put ''b3RvdHlwZT1XLnByb3RvdHlwZSxuZXcgTil9KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksUS5Mb2dpblJlcXVpcmVkRXJyb3I9dm9pZCAwO3ZhciBhZT1mdW5jdGlvbihZKXtmdW5jdGlvbiBXKE4pe3ZhciBlZT10aGlzLHE9Tj9KU09OLnN0cmlu''@;'; + put 'put ''Z2lmeShOLG51bGwsMik6IllvdSBtdXN0IGJlIGxvZ2dlZCBpbiB0byBhY2Nlc3MgdGhpcyByZXNvdXJjZSI7cmV0dXJuKGVlPVkuY2FsbCh0aGlzLCJBdXRoIGVycm9yOiAiLmNvbmNhdChxKSl8fHRoaXMpLm5hbWU9IkxvZ2luUmVxdWlyZWRFcnJvciIsT2JqZWN0LnNldFByb3RvdHlwZU9m''@;'; + put 'put ''KGVlLFcucHJvdG90eXBlKSxlZX1yZXR1cm4gaWUoVyxZKSxXfShFcnJvcik7US5Mb2dpblJlcXVpcmVkRXJyb3I9YWV9LDc4NjQ6ZnVuY3Rpb24oVSxRKXsidXNlIHN0cmljdCI7dmFyIFosaWU9dGhpcyYmdGhpcy5fX2V4dGVuZHN8fChaPWZ1bmN0aW9uKFksVyl7cmV0dXJuKFo9T2JqZWN0''@;'; + put 'put ''LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKE4sZWUpe04uX19wcm90b19fPWVlfXx8ZnVuY3Rpb24oTixlZSl7Zm9yKHZhciBxIGluIGVlKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlZSxxKSYmKE5bcV09ZWVb''@;'; + put 'put ''cV0pfSkoWSxXKX0sZnVuY3Rpb24oWSxXKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgVyYmbnVsbCE9PVcpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSAiK1N0cmluZyhXKSsiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGwiKTtmdW5jdGlvbiBOKCl7dGhpcy5j''@;'; + put 'put ''b25zdHJ1Y3Rvcj1ZfVooWSxXKSxZLnByb3RvdHlwZT1udWxsPT09Vz9PYmplY3QuY3JlYXRlKFcpOihOLnByb3RvdHlwZT1XLnByb3RvdHlwZSxuZXcgTil9KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksUS5Ob1Nlc3Npb25TdGF0ZUVycm9yPXZv''@;'; + put 'put ''aWQgMDt2YXIgYWU9ZnVuY3Rpb24oWSl7ZnVuY3Rpb24gVyhOLGVlLHEpe3ZhciBKPVkuY2FsbCh0aGlzLCJDb3VsZCBub3QgZ2V0IHNlc3Npb24gc3RhdGUuIFNlcnZlciByZXNwb25kZWQgd2l0aCAiLmNvbmNhdChOLCIgd2hpbHN0IGNoZWNraW5nIHN0YXRlOiAiKS5jb25jYXQoZWUpKXx8''@;'; + put 'put ''dGhpcztyZXR1cm4gSi5zZXJ2ZXJSZXNwb25zZVN0YXR1cz1OLEouc2Vzc2lvblN0YXRlVXJsPWVlLEoubG9nVXJsPXEsSi5uYW1lPSJOb1Nlc3Npb25TdGF0dXMiLE9iamVjdC5zZXRQcm90b3R5cGVPZihKLFcucHJvdG90eXBlKSxKfXJldHVybiBpZShXLFkpLFd9KEVycm9yKTtRLk5vU2Vz''@;'; + put 'put ''c2lvblN0YXRlRXJyb3I9YWV9LDk1Nzc6ZnVuY3Rpb24oVSxRKXsidXNlIHN0cmljdCI7dmFyIFosaWU9dGhpcyYmdGhpcy5fX2V4dGVuZHN8fChaPWZ1bmN0aW9uKFksVyl7cmV0dXJuKFo9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1''@;'; + put 'put ''bmN0aW9uKE4sZWUpe04uX19wcm90b19fPWVlfXx8ZnVuY3Rpb24oTixlZSl7Zm9yKHZhciBxIGluIGVlKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlZSxxKSYmKE5bcV09ZWVbcV0pfSkoWSxXKX0sZnVuY3Rpb24oWSxXKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgVyYm''@;'; + put 'put ''bnVsbCE9PVcpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSAiK1N0cmluZyhXKSsiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGwiKTtmdW5jdGlvbiBOKCl7dGhpcy5jb25zdHJ1Y3Rvcj1ZfVooWSxXKSxZLnByb3RvdHlwZT1udWxsPT09Vz9PYmplY3QuY3Jl''@;'; + put 'put ''YXRlKFcpOihOLnByb3RvdHlwZT1XLnByb3RvdHlwZSxuZXcgTil9KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksUS5Ob3RGb3VuZEVycm9yPXZvaWQgMDt2YXIgYWU9ZnVuY3Rpb24oWSl7ZnVuY3Rpb24gVyhOKXt2YXIgZWU9WS5jYWxsKHRoaXMs''@;'; + put 'put ''IkVycm9yOiBSZXNvdXJjZSBhdCAiLmNvbmNhdChOLCIgd2FzIG5vdCBmb3VuZCIpKXx8dGhpcztyZXR1cm4gZWUudXJsPU4sZWUubmFtZT0iTm90Rm91bmRFcnJvciIsT2JqZWN0LnNldFByb3RvdHlwZU9mKGVlLFcucHJvdG90eXBlKSxlZX1yZXR1cm4gaWUoVyxZKSxXfShFcnJvcik7US5O''@;'; + put 'put ''b3RGb3VuZEVycm9yPWFlfSw5Mjc5OmZ1bmN0aW9uKFUsUSxaKXsidXNlIHN0cmljdCI7dmFyIGllLGFlPXRoaXMmJnRoaXMuX19leHRlbmRzfHwoaWU9ZnVuY3Rpb24oTixlZSl7cmV0dXJuKGllPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5''@;'; + put 'put ''JiZmdW5jdGlvbihxLEope3EuX19wcm90b19fPUp9fHxmdW5jdGlvbihxLEope2Zvcih2YXIgc2UgaW4gSilPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoSixzZSkmJihxW3NlXT1KW3NlXSl9KShOLGVlKX0sZnVuY3Rpb24oTixlZSl7aWYoImZ1bmN0aW9uIiE9dHlwZW9m''@;'; + put 'put ''IGVlJiZudWxsIT09ZWUpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSAiK1N0cmluZyhlZSkrIiBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsIik7ZnVuY3Rpb24gcSgpe3RoaXMuY29uc3RydWN0b3I9Tn1pZShOLGVlKSxOLnByb3RvdHlwZT1udWxsPT09ZWU/''@;'; + put 'put ''T2JqZWN0LmNyZWF0ZShlZSk6KHEucHJvdG90eXBlPWVlLnByb3RvdHlwZSxuZXcgcSl9KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksUS5Sb290Rm9sZGVyTm90Rm91bmRFcnJvcj12b2lkIDA7dmFyIFk9Wig2Nzk5KSxXPWZ1bmN0aW9uKE4pe2Z1''@;'; + put 'put ''bmN0aW9uIGVlKHEsSixzZSl7dmFyIG9lPXRoaXMsY2U9IlJvb3QgZm9sZGVyICIuY29uY2F0KHEsIiB3YXMgbm90IGZvdW5kLiIpKyJcblBsZWFzZSBjaGVjayAiLmNvbmNhdChKLCIvU0FTRHJpdmUuIikrIlxuSWYgdGhlIGZvbGRlciBET0VTIGV4aXN0IHRoZW4gaXQgaXMgbGlrZWx5IGEg''@;'; + put 'put ''cGVybWlzc2lvbiBwcm9ibGVtLlxuIjtpZihzZSl7dmFyIGRlPSgwLFkuZGVjb2RlVG9rZW4pKHNlKS5zY29wZTtjZSs9IllvdXIgYWNjZXNzIHRva2VuIGNvbnRhaW5zIHRoZSBmb2xsb3dpbmcgc2NvcGVzOlxuIisoZGU9ZGUubWFwKGZ1bmN0aW9uKHZlKXtyZXR1cm4iKiAiK3ZlfSkpLmpv''@;'; + put 'put ''aW4oIlxuIil9cmV0dXJuKG9lPU4uY2FsbCh0aGlzLGNlKXx8dGhpcykubmFtZT0iUm9vdEZvbGRlck5vdEZvdW5kRXJyb3IiLE9iamVjdC5zZXRQcm90b3R5cGVPZihvZSxlZS5wcm90b3R5cGUpLG9lfXJldHVybiBhZShlZSxOKSxlZX0oRXJyb3IpO1EuUm9vdEZvbGRlck5vdEZvdW5kRXJy''@;'; + put 'put ''b3I9V30sOTUyNjpmdW5jdGlvbihVLFEpeyJ1c2Ugc3RyaWN0Ijt2YXIgWixpZT10aGlzJiZ0aGlzLl9fZXh0ZW5kc3x8KFo9ZnVuY3Rpb24oWSxXKXtyZXR1cm4oWj1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24oTixlZSl7''@;'; + put 'put ''Ti5fX3Byb3RvX189ZWV9fHxmdW5jdGlvbihOLGVlKXtmb3IodmFyIHEgaW4gZWUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGVlLHEpJiYoTltxXT1lZVtxXSl9KShZLFcpfSxmdW5jdGlvbihZLFcpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBXJiZudWxsIT09Vyl0aHJv''@;'; + put 'put ''dyBuZXcgVHlwZUVycm9yKCJDbGFzcyBleHRlbmRzIHZhbHVlICIrU3RyaW5nKFcpKyIgaXMgbm90IGEgY29uc3RydWN0b3Igb3IgbnVsbCIpO2Z1bmN0aW9uIE4oKXt0aGlzLmNvbnN0cnVjdG9yPVl9WihZLFcpLFkucHJvdG90eXBlPW51bGw9PT1XP09iamVjdC5jcmVhdGUoVyk6KE4ucHJv''@;'; + put 'put ''dG90eXBlPVcucHJvdG90eXBlLG5ldyBOKX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxRLlNBUzlBdXRoRXJyb3I9dm9pZCAwO3ZhciBhZT1mdW5jdGlvbihZKXtmdW5jdGlvbiBXKCl7dmFyIE49WS5jYWxsKHRoaXMsIlRoZSBjcmVkZW50aWFs''@;'; + put 'put ''cyB5b3UgcHJvdmlkZWQgY2Fubm90IGJlIGF1dGhlbnRpY2F0ZWQuIFBsZWFzZSBwcm92aWRlIGEgdmFsaWQgc2V0IG9mIGNyZWRlbnRpYWxzLiIpfHx0aGlzO3JldHVybiBOLm5hbWU9IkF1dGhvcml6ZUVycm9yIixPYmplY3Quc2V0UHJvdG90eXBlT2YoTixXLnByb3RvdHlwZSksTn1yZXR1''@;'; + put 'put ''cm4gaWUoVyxZKSxXfShFcnJvcik7US5TQVM5QXV0aEVycm9yPWFlfSw4ODc1OmZ1bmN0aW9uKFUsUSl7InVzZSBzdHJpY3QiO3ZhciBaLGllPXRoaXMmJnRoaXMuX19leHRlbmRzfHwoWj1mdW5jdGlvbihZLFcpe3JldHVybihaPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpb''@;'; + put 'put ''XX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbihOLGVlKXtOLl9fcHJvdG9fXz1lZX18fGZ1bmN0aW9uKE4sZWUpe2Zvcih2YXIgcSBpbiBlZSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZWUscSkmJihOW3FdPWVlW3FdKX0pKFksVyl9LGZ1bmN0aW9uKFksVyl7aWYo''@;'; + put 'put ''ImZ1bmN0aW9uIiE9dHlwZW9mIFcmJm51bGwhPT1XKXRocm93IG5ldyBUeXBlRXJyb3IoIkNsYXNzIGV4dGVuZHMgdmFsdWUgIitTdHJpbmcoVykrIiBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsIik7ZnVuY3Rpb24gTigpe3RoaXMuY29uc3RydWN0b3I9WX1aKFksVyksWS5wcm90b3R5''@;'; + put 'put ''cGU9bnVsbD09PVc/T2JqZWN0LmNyZWF0ZShXKTooTi5wcm90b3R5cGU9Vy5wcm90b3R5cGUsbmV3IE4pfSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLFEuV2Vib3V0UmVzcG9uc2VFcnJvcj12b2lkIDA7dmFyIGFlPWZ1bmN0aW9uKFkpe2Z1bmN0''@;'; + put 'put ''aW9uIFcoTil7dmFyIGVlPVkuY2FsbCh0aGlzLCJFcnJvcjogZXJyb3Igd2hpbGUgcGFyc2luZyByZXNwb25zZSBmcm9tICIuY29uY2F0KE4pKXx8dGhpcztyZXR1cm4gZWUudXJsPU4sZWUubmFtZT0iV2Vib3V0UmVzcG9uc2VFcnJvciIsT2JqZWN0LnNldFByb3RvdHlwZU9mKGVlLFcucHJv''@;'; + put 'put ''dG90eXBlKSxlZX1yZXR1cm4gaWUoVyxZKSxXfShFcnJvcik7US5XZWJvdXRSZXNwb25zZUVycm9yPWFlfSwxMzk1OmZ1bmN0aW9uKFUsUSxaKXsidXNlIHN0cmljdCI7dmFyIGllPXRoaXMmJnRoaXMuX19jcmVhdGVCaW5kaW5nfHwoT2JqZWN0LmNyZWF0ZT9mdW5jdGlvbihZLFcsTixlZSl7''@;'; + put 'put ''dm9pZCAwPT09ZWUmJihlZT1OKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoWSxlZSx7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gV1tOXX19KX06ZnVuY3Rpb24oWSxXLE4sZWUpe3ZvaWQgMD09PWVlJiYoZWU9TiksWVtlZV09V1tOXX0pLGFlPXRoaXMmJnRoaXMuX19leHBv''@;'; + put 'put ''cnRTdGFyfHxmdW5jdGlvbihZLFcpe2Zvcih2YXIgTiBpbiBZKSJkZWZhdWx0Ij09PU58fE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChXLE4pfHxpZShXLFksTil9O09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxhZShaKDEyNCks''@;'; + put 'put ''USksYWUoWig5NDY1KSxRKSxhZShaKDUyNjcpLFEpLGFlKFooOTIzMiksUSksYWUoWig1MTA5KSxRKSxhZShaKDU1MTgpLFEpLGFlKFooODUzMSksUSksYWUoWig5MDc5KSxRKSxhZShaKDMwOTYpLFEpLGFlKFooNjc0MyksUSksYWUoWig3ODY0KSxRKSxhZShaKDk1NzcpLFEpLGFlKFooOTI3''@;'; + put 'put ''OSksUSksYWUoWig4ODc1KSxRKX0sMTIzMDpmdW5jdGlvbihVLFEsWil7InVzZSBzdHJpY3QiO3ZhciBpZT10aGlzJiZ0aGlzLl9fY3JlYXRlQmluZGluZ3x8KE9iamVjdC5jcmVhdGU/ZnVuY3Rpb24oWSxXLE4sZWUpe3ZvaWQgMD09PWVlJiYoZWU9TiksT2JqZWN0LmRlZmluZVByb3BlcnR5''@;'; + put 'put ''KFksZWUse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFdbTl19fSl9OmZ1bmN0aW9uKFksVyxOLGVlKXt2b2lkIDA9PT1lZSYmKGVlPU4pLFlbZWVdPVdbTl19KSxhZT10aGlzJiZ0aGlzLl9fZXhwb3J0U3Rhcnx8ZnVuY3Rpb24oWSxXKXtmb3IodmFyIE4gaW4gWSkiZGVm''@;'; + put 'put ''YXVsdCI9PT1OfHxPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoVyxOKXx8aWUoVyxZLE4pfTtPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksYWUoWig0NzApLFEpLGFlKFooNDY2NiksUSksYWUoWig0OTc1KSxRKSxhZShaKDU3NjYp''@;'; + put 'put ''LFEpLGFlKFooMjE1KSxRKSxhZShaKDQ3ODIpLFEpLGFlKFooNDE2OCksUSksYWUoWig4NTE2KSxRKSxhZShaKDU4NDEpLFEpLGFlKFooMjQ5MyksUSksYWUoWig2MDM4KSxRKSxhZShaKDk0OTMpLFEpLGFlKFooMzE1MyksUSksYWUoWig4NjUwKSxRKSxhZShaKDYxNzcpLFEpfSwzMzAyOmZ1''@;'; + put 'put ''bmN0aW9uKFUsUSl7InVzZSBzdHJpY3QiO3ZhciBaPXRoaXMmJnRoaXMuX19hc3NpZ258fGZ1bmN0aW9uKCl7cmV0dXJuIFo9T2JqZWN0LmFzc2lnbnx8ZnVuY3Rpb24oWSl7Zm9yKHZhciBXLE49MSxlZT1hcmd1bWVudHMubGVuZ3RoO048ZWU7TisrKWZvcih2YXIgcSBpbiBXPWFyZ3VtZW50''@;'; + put 'put ''c1tOXSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoVyxxKSYmKFlbcV09V1txXSk7cmV0dXJuIFl9LFouYXBwbHkodGhpcyxhcmd1bWVudHMpfSxpZT10aGlzJiZ0aGlzLl9fYXdhaXRlcnx8ZnVuY3Rpb24oWSxXLE4sZWUpe3JldHVybiBuZXcoTnx8KE49UHJvbWlzZSkp''@;'; + put 'put ''KGZ1bmN0aW9uKHEsSil7ZnVuY3Rpb24gc2UoZGUpe3RyeXtjZShlZS5uZXh0KGRlKSl9Y2F0Y2godmUpe0oodmUpfX1mdW5jdGlvbiBvZShkZSl7dHJ5e2NlKGVlLnRocm93KGRlKSl9Y2F0Y2godmUpe0oodmUpfX1mdW5jdGlvbiBjZShkZSl7dmFyIHZlO2RlLmRvbmU/cShkZS52YWx1ZSk6''@;'; + put 'put ''KHZlPWRlLnZhbHVlLHZlIGluc3RhbmNlb2YgTj92ZTpuZXcgTihmdW5jdGlvbihBZSl7QWUodmUpfSkpLnRoZW4oc2Usb2UpfWNlKChlZT1lZS5hcHBseShZLFd8fFtdKSkubmV4dCgpKX0pfSxhZT10aGlzJiZ0aGlzLl9fZ2VuZXJhdG9yfHxmdW5jdGlvbihZLFcpe3ZhciBOLGVlLHEsSixz''@;'; + put 'put ''ZT17bGFiZWw6MCxzZW50OmZ1bmN0aW9uKCl7aWYoMSZxWzBdKXRocm93IHFbMV07cmV0dXJuIHFbMV19LHRyeXM6W10sb3BzOltdfTtyZXR1cm4gSj17bmV4dDpvZSgwKSx0aHJvdzpvZSgxKSxyZXR1cm46b2UoMil9LCJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJihKW1N5bWJvbC5pdGVy''@;'; + put 'put ''YXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pLEo7ZnVuY3Rpb24gb2UoY2Upe3JldHVybiBmdW5jdGlvbihkZSl7cmV0dXJuIGZ1bmN0aW9uKHZlKXtpZihOKXRocm93IG5ldyBUeXBlRXJyb3IoIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy4iKTtmb3IoO3NlOyl0cnl7aWYo''@;'; + put 'put ''Tj0xLGVlJiYocT0yJnZlWzBdP2VlLnJldHVybjp2ZVswXT9lZS50aHJvd3x8KChxPWVlLnJldHVybikmJnEuY2FsbChlZSksMCk6ZWUubmV4dCkmJiEocT1xLmNhbGwoZWUsdmVbMV0pKS5kb25lKXJldHVybiBxO3N3aXRjaChlZT0wLHEmJih2ZT1bMiZ2ZVswXSxxLnZhbHVlXSksdmVbMF0p''@;'; + put 'put ''e2Nhc2UgMDpjYXNlIDE6cT12ZTticmVhaztjYXNlIDQ6cmV0dXJuIHNlLmxhYmVsKysse3ZhbHVlOnZlWzFdLGRvbmU6ITF9O2Nhc2UgNTpzZS5sYWJlbCsrLGVlPXZlWzFdLHZlPVswXTtjb250aW51ZTtjYXNlIDc6dmU9c2Uub3BzLnBvcCgpLHNlLnRyeXMucG9wKCk7Y29udGludWU7ZGVm''@;'; + put 'put ''YXVsdDppZighKChxPShxPXNlLnRyeXMpLmxlbmd0aD4wJiZxW3EubGVuZ3RoLTFdKXx8NiE9PXZlWzBdJiYyIT09dmVbMF0pKXtzZT0wO2NvbnRpbnVlfWlmKDM9PT12ZVswXSYmKCFxfHx2ZVsxXT5xWzBdJiZ2ZVsxXTxxWzNdKSl7c2UubGFiZWw9dmVbMV07YnJlYWt9aWYoNj09PXZlWzBd''@;'; + put 'put ''JiZzZS5sYWJlbDxxWzFdKXtzZS5sYWJlbD1xWzFdLHE9dmU7YnJlYWt9aWYocSYmc2UubGFiZWw8cVsyXSl7c2UubGFiZWw9cVsyXSxzZS5vcHMucHVzaCh2ZSk7YnJlYWt9cVsyXSYmc2Uub3BzLnBvcCgpLHNlLnRyeXMucG9wKCk7Y29udGludWV9dmU9Vy5jYWxsKFksc2UpfWNhdGNoKEFl''@;'; + put 'put ''KXt2ZT1bNixBZV0sZWU9MH1maW5hbGx5e049cT0wfWlmKDUmdmVbMF0pdGhyb3cgdmVbMV07cmV0dXJue3ZhbHVlOnZlWzBdP3ZlWzFdOnZvaWQgMCxkb25lOiEwfX0oW2NlLGRlXSl9fX07T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLFEuYXBwZW5k''@;'; + put 'put ''RXh0cmFSZXNwb25zZUF0dHJpYnV0ZXM9dm9pZCAwLFEuYXBwZW5kRXh0cmFSZXNwb25zZUF0dHJpYnV0ZXM9ZnVuY3Rpb24oWSxXKXtyZXR1cm4gaWUodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIE4sZWU7cmV0dXJuIGFlKHRoaXMsZnVuY3Rpb24ocSl7cmV0dXJuIE49e30s''@;'; + put 'put ''bnVsbCE9VyYmVy5sZW5ndGg/KGVlPVcucmVkdWNlKGZ1bmN0aW9uKEosc2Upe3JldHVybiBKW3NlXT1ZW3NlXSxKfSx7fSksTj1aKHtyZXN1bHQ6WS5yZXN1bHR9LGVlKSk6Tj1ZLnJlc3VsdCxbMixOXX0pfSl9fSw3OTIyOmZ1bmN0aW9uKFUsUSl7InVzZSBzdHJpY3QiO3ZhciBaPXRoaXMm''@;'; + put 'put ''JnRoaXMuX19hd2FpdGVyfHxmdW5jdGlvbihhZSxZLFcsTil7cmV0dXJuIG5ldyhXfHwoVz1Qcm9taXNlKSkoZnVuY3Rpb24oZWUscSl7ZnVuY3Rpb24gSihjZSl7dHJ5e29lKE4ubmV4dChjZSkpfWNhdGNoKGRlKXtxKGRlKX19ZnVuY3Rpb24gc2UoY2Upe3RyeXtvZShOLnRocm93KGNlKSl9''@;'; + put 'put ''Y2F0Y2goZGUpe3EoZGUpfX1mdW5jdGlvbiBvZShjZSl7dmFyIGRlO2NlLmRvbmU/ZWUoY2UudmFsdWUpOihkZT1jZS52YWx1ZSxkZSBpbnN0YW5jZW9mIFc/ZGU6bmV3IFcoZnVuY3Rpb24odmUpe3ZlKGRlKX0pKS50aGVuKEosc2UpfW9lKChOPU4uYXBwbHkoYWUsWXx8W10pKS5uZXh0KCkp''@;'; + put 'put ''fSl9LGllPXRoaXMmJnRoaXMuX19nZW5lcmF0b3J8fGZ1bmN0aW9uKGFlLFkpe3ZhciBXLE4sZWUscSxKPXtsYWJlbDowLHNlbnQ6ZnVuY3Rpb24oKXtpZigxJmVlWzBdKXRocm93IGVlWzFdO3JldHVybiBlZVsxXX0sdHJ5czpbXSxvcHM6W119O3JldHVybiBxPXtuZXh0OnNlKDApLHRocm93''@;'; + put 'put ''OnNlKDEpLHJldHVybjpzZSgyKX0sImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmKHFbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSkscTtmdW5jdGlvbiBzZShvZSl7cmV0dXJuIGZ1bmN0aW9uKGNlKXtyZXR1cm4gZnVuY3Rpb24oZGUpe2lmKFcpdGhyb3cgbmV3''@;'; + put 'put ''IFR5cGVFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLiIpO2Zvcig7SjspdHJ5e2lmKFc9MSxOJiYoZWU9MiZkZVswXT9OLnJldHVybjpkZVswXT9OLnRocm93fHwoKGVlPU4ucmV0dXJuKSYmZWUuY2FsbChOKSwwKTpOLm5leHQpJiYhKGVlPWVlLmNhbGwoTixkZVsxXSkp''@;'; + put 'put ''LmRvbmUpcmV0dXJuIGVlO3N3aXRjaChOPTAsZWUmJihkZT1bMiZkZVswXSxlZS52YWx1ZV0pLGRlWzBdKXtjYXNlIDA6Y2FzZSAxOmVlPWRlO2JyZWFrO2Nhc2UgNDpyZXR1cm4gSi5sYWJlbCsrLHt2YWx1ZTpkZVsxXSxkb25lOiExfTtjYXNlIDU6Si5sYWJlbCsrLE49ZGVbMV0sZGU9WzBd''@;'; + put 'put ''O2NvbnRpbnVlO2Nhc2UgNzpkZT1KLm9wcy5wb3AoKSxKLnRyeXMucG9wKCk7Y29udGludWU7ZGVmYXVsdDppZighKChlZT0oZWU9Si50cnlzKS5sZW5ndGg+MCYmZWVbZWUubGVuZ3RoLTFdKXx8NiE9PWRlWzBdJiYyIT09ZGVbMF0pKXtKPTA7Y29udGludWV9aWYoMz09PWRlWzBdJiYoIWVl''@;'; + put 'put ''fHxkZVsxXT5lZVswXSYmZGVbMV08ZWVbM10pKXtKLmxhYmVsPWRlWzFdO2JyZWFrfWlmKDY9PT1kZVswXSYmSi5sYWJlbDxlZVsxXSl7Si5sYWJlbD1lZVsxXSxlZT1kZTticmVha31pZihlZSYmSi5sYWJlbDxlZVsyXSl7Si5sYWJlbD1lZVsyXSxKLm9wcy5wdXNoKGRlKTticmVha31lZVsy''@;'; + put 'put ''XSYmSi5vcHMucG9wKCksSi50cnlzLnBvcCgpO2NvbnRpbnVlfWRlPVkuY2FsbChhZSxKKX1jYXRjaCh2ZSl7ZGU9WzYsdmVdLE49MH1maW5hbGx5e1c9ZWU9MH1pZig1JmRlWzBdKXRocm93IGRlWzFdO3JldHVybnt2YWx1ZTpkZVswXT9kZVsxXTp2b2lkIDAsZG9uZTohMH19KFtvZSxjZV0p''@;'; + put 'put ''fX19O09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxRLmFzeW5jRm9yRWFjaD12b2lkIDAsUS5hc3luY0ZvckVhY2g9ZnVuY3Rpb24oYWUsWSl7cmV0dXJuIFoodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIFc7cmV0dXJuIGllKHRoaXMs''@;'; + put 'put ''ZnVuY3Rpb24oTil7c3dpdGNoKE4ubGFiZWwpe2Nhc2UgMDpXPTAsTi5sYWJlbD0xO2Nhc2UgMTpyZXR1cm4gVzxhZS5sZW5ndGg/WzQsWShhZVtXXSxXLGFlKV06WzMsNF07Y2FzZSAyOk4uc2VudCgpLE4ubGFiZWw9MztjYXNlIDM6cmV0dXJuIFcrKyxbMywxXTtjYXNlIDQ6cmV0dXJuWzJd''@;'; + put 'put ''fX0pfSl9fSwzNzkzOihVLFEpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxRLmNvbXBhcmVUaW1lc3RhbXBzPXZvaWQgMCxRLmNvbXBhcmVUaW1lc3RhbXBzPWZ1bmN0aW9uKFosaWUpe3JldHVybiBpZS50aW1lc3RhbXAu''@;'; + put 'put ''Z2V0VGltZSgpLVoudGltZXN0YW1wLmdldFRpbWUoKX19LDM1NTM6KFUsUSk9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLFEuU0FTSlNfTE9HU19TRVBBUkFUT1I9dm9pZCAwLFEuU0FTSlNfTE9HU19TRVBBUkFUT1I9IlNB''@;'; + put 'put ''U0pTX0xPR1NfU0VQQVJBVE9SXzE2M2VlMTdiNmZmMjRmMDI4OTI4OTcyZDgwYTI2Nzg0In0sMjQwMjooVSxRLFopPT57InVzZSBzdHJpY3QiO3ZhciBpZT1aKDUxMDgpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxRLmlzRm9ybWF0c1RhYmxlPVEu''@;'; + put 'put ''Y29udmVydFRvQ1NWPXZvaWQgMDt2YXIgYWU9Wig2NDY3KSxZPVooOTc3OCk7US5jb252ZXJ0VG9DU1Y9ZnVuY3Rpb24oTixlZSl7dmFyIHE7aWYoIU5bZWVdKXRocm93KDAsWS5wcmVmaXhNZXNzYWdlKSgiTm8gdGFibGUgcHJvdmlkZWQgdG8gYmUgY29udmVydGVkIHRvIENTVi4iLCJFcnJv''@;'; + put 'put ''ciB3aGlsZSBjb252ZXJ0aW5nIHRvIENTVi4gIik7dmFyIEo9TltlZV07aWYoIUFycmF5LmlzQXJyYXkoSikpcmV0dXJuIiI7dmFyIHNlLG9lPW51bGw9PT0ocT1OWyIkIi5jb25jYXQoZWUpXSl8fHZvaWQgMD09PXE/dm9pZCAwOnEuZm9ybWF0cyxjZT1bXSxkZT0hMTtvZSYmKGNlPU9iamVj''@;'; + put 'put ''dC5rZXlzKG9lKS5tYXAoZnVuY3Rpb24oQWUpe3JldHVybiIiLmNvbmNhdChBZSwiOiIpLmNvbmNhdChvZVtBZV0pfSkpO3ZhciB2ZT1PYmplY3Qua2V5cyhKWzBdKTtyZXR1cm4gdmUuZm9yRWFjaChmdW5jdGlvbihBZSl7aWYoIW9lfHwhT2JqZWN0LmtleXMob2UpLmluY2x1ZGVzKEFlKSl7''@;'; + put 'put ''dmFyIGtlPSExLFNlPSExO2lmKEouZm9yRWFjaChmdW5jdGlvbihPKXtudWxsPT09T1tBZV18fCJudW1iZXIiPT10eXBlb2YgT1tBZV0/a2U9ITA6InN0cmluZyI9PXR5cGVvZiBPW0FlXSYmKDAsYWUuaXNTcGVjaWFsTWlzc2luZykoT1tBZV0pJiYoU2U9ITApfSksa2UmJlNlKWNlLnB1c2go''@;'; + put 'put ''IiIuY29uY2F0KEFlLCI6YmVzdC4iKSksb2V8fChvZT17fSksb2VbQWVdPSJiZXN0LiI7ZWxzZXt2YXIgSWU9bnVsbCxUZT0hMSxFZT0tMSxoZT1KLm1hcChmdW5jdGlvbihPLHope2lmKE9bQWVdfHwiIj09PU9bQWVdKXtJZT9UZXx8KEVlPShUZT0oIiI9PT1PW0FlXXx8InN0cmluZyI9PXR5''@;'; + put 'put ''cGVvZiBPW0FlXT8iY2hhcnMiOiJudW1iZXIiKSE9PUllKT96KzE6LTEpOkllPSIiPT09T1tBZV18fCJzdHJpbmciPT10eXBlb2YgT1tBZV0/ImNoYXJzIjoibnVtYmVyIjt2YXIgdGU9dm9pZCAwO3JldHVybiJzdHJpbmciPT10eXBlb2YgT1tBZV0mJih0ZT1XKE9bQWVdKSksdGV9fSkuc29y''@;'; + put 'put ''dChmdW5jdGlvbihPLHope3JldHVybiB6LU99KVswXTtoZSYmaGU+MzI3NjUmJihkZT0hMCksVGUmJmllLmVycm9yKCJSb3cgKCIuY29uY2F0KEVlLCIpLCBDb2x1bW4gKCIpLmNvbmNhdChBZSwiKSBoYXMgbWl4ZWQgdHlwZXM6IEVSUk9SIikpLGNlLnB1c2goIiIuY29uY2F0KEFlLCI6Iiku''@;'; + put 'put ''Y29uY2F0KCJjaGFycyI9PT1JZT8iJGNoYXIiOiIiKS5jb25jYXQoaGV8fCgiY2hhcnMiPT09SWU/IjEiOiJiZXN0IiksIi4iKSl9fX0pLG9lJiYoY2U9Y2Uuc29ydChmdW5jdGlvbihBZSxrZSl7cmV0dXJuIHZlLmluZGV4T2YoQWUucmVwbGFjZSgvOi4qLywiIikpLXZlLmluZGV4T2Yoa2Uu''@;'; + put 'put ''cmVwbGFjZSgvOi4qLywiIikpfSkpLGRlPyJFUlJPUjogTEFSR0UgU1RSSU5HIExFTkdUSCI6KHNlPUoubWFwKGZ1bmN0aW9uKEFlKXtyZXR1cm4gT2JqZWN0LmtleXMoQWUpLm1hcChmdW5jdGlvbihrZSxTZSl7dmFyIEllLFRlPUFlW2tlXTtpZigibnVtYmVyIj09dHlwZW9mIFRlKXJldHVy''@;'; + put 'put ''biBUZTtpZihJZT1udWxsPT09VGU/IiI6VGUsb2UmJiJiZXN0LiI9PT1vZVtrZV0pe2lmKEllJiYhKDAsYWUuaXNTcGVjaWFsTWlzc2luZykoSWUpKXRocm93IG5ldyBFcnJvcigiQSBTcGVjaWFsIG1pc3NpbmcgdmFsdWUgY2FuIG9ubHkgYmUgYSBzaW5nbGUgY2hhcmFjdGVyIGZyb20gJ0En''@;'; + put 'put ''IHRvICdaJywgJ18nLCAnLlthLXpdJywgJy5fJyIpO3ZhciBFZT1JZS5pbmNsdWRlcygiLiIpPyIiOiIuIjtyZXR1cm4iIi5jb25jYXQoRWUpLmNvbmNhdChJZS50b0xvd2VyQ2FzZSgpKX1yZXR1cm4gSWU9SWUucmVwbGFjZSgvIi9nLCciIicpLChJZT0nIicuY29uY2F0KEllLCciJykpLnN1''@;'; + put 'put ''YnN0cmluZygxLEllLmxlbmd0aC0xKS5zZWFyY2goLyhcdHxcbnxccnwsfFwnfFwiKS9nbSk8MCYmKEllPUllLnN1YnN0cmluZygxLEllLmxlbmd0aC0xKSksIiI9PT0oSWU9SWUucmVwbGFjZSgvXHJcbi9nbSwiXG4iKSkmJmNlW1NlXS5pbmNsdWRlcygiYmVzdCIpJiYoSWU9Ii4iKSxJZX0p''@;'; + put 'put ''LmpvaW4oIiwiKX0pLGNlLmpvaW4oIiwiKS5yZXBsYWNlKC8sL2csIiAiKSsiXHJcbiIrc2Uuam9pbigiXHJcbiIpKX0sUS5pc0Zvcm1hdHNUYWJsZT1mdW5jdGlvbihOKXtyZXR1cm4vXlwkLiovLnRlc3QoTil9O3ZhciBXPWZ1bmN0aW9uKE4pe2Zvcih2YXIgZWU9Ti5sZW5ndGgscT1OLmxl''@;'; + put 'put ''bmd0aC0xO3E+PTA7cS0tKXt2YXIgSj1OLmNoYXJDb2RlQXQocSk7Sj4xMjcmJko8PTIwNDc/ZWUrKzpKPjIwNDcmJko8PTY1NTM1JiYoZWUrPTIpLEo+PTU2MzIwJiZKPD01NzM0MyYmcS0tfXJldHVybiBlZX19LDYxMTY6KFUsUSxaKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJv''@;'; + put 'put ''cGVydHkoUSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksUS5jcmVhdGVBeGlvc0luc3RhbmNlPXZvaWQgMDt2YXIgaWU9Wig5NjY5KTtRLmNyZWF0ZUF4aW9zSW5zdGFuY2U9ZnVuY3Rpb24oYWUsWSl7cmV0dXJuIGllLmRlZmF1bHQuY3JlYXRlKHtiYXNlVVJMOmFlLGh0dHBzQWdlbnQ6WX0p''@;'; + put 'put ''fX0sOTgyNTooVSxRKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksUS5kZWxheT12b2lkIDAsUS5kZWxheT1mdW5jdGlvbihaKXtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24oaWUpe3JldHVybiBzZXRUaW1lb3V0KGll''@;'; + put 'put ''LFopfSl9fSw5OTA6ZnVuY3Rpb24oVSxRLFopeyJ1c2Ugc3RyaWN0Ijt2YXIgaWU9Wig0MTU1KSxhZT1aKDUxMDgpLFk9dGhpcyYmdGhpcy5fX2F3YWl0ZXJ8fGZ1bmN0aW9uKGVlLHEsSixzZSl7cmV0dXJuIG5ldyhKfHwoSj1Qcm9taXNlKSkoZnVuY3Rpb24ob2UsY2Upe2Z1bmN0aW9uIGRl''@;'; + put 'put ''KGtlKXt0cnl7QWUoc2UubmV4dChrZSkpfWNhdGNoKFNlKXtjZShTZSl9fWZ1bmN0aW9uIHZlKGtlKXt0cnl7QWUoc2UudGhyb3coa2UpKX1jYXRjaChTZSl7Y2UoU2UpfX1mdW5jdGlvbiBBZShrZSl7dmFyIFNlO2tlLmRvbmU/b2Uoa2UudmFsdWUpOihTZT1rZS52YWx1ZSxTZSBpbnN0YW5j''@;'; + put 'put ''ZW9mIEo/U2U6bmV3IEooZnVuY3Rpb24oSWUpe0llKFNlKX0pKS50aGVuKGRlLHZlKX1BZSgoc2U9c2UuYXBwbHkoZWUscXx8W10pKS5uZXh0KCkpfSl9LFc9dGhpcyYmdGhpcy5fX2dlbmVyYXRvcnx8ZnVuY3Rpb24oZWUscSl7dmFyIEosc2Usb2UsY2UsZGU9e2xhYmVsOjAsc2VudDpmdW5j''@;'; + put 'put ''dGlvbigpe2lmKDEmb2VbMF0pdGhyb3cgb2VbMV07cmV0dXJuIG9lWzFdfSx0cnlzOltdLG9wczpbXX07cmV0dXJuIGNlPXtuZXh0OnZlKDApLHRocm93OnZlKDEpLHJldHVybjp2ZSgyKX0sImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmKGNlW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24o''@;'; + put 'put ''KXtyZXR1cm4gdGhpc30pLGNlO2Z1bmN0aW9uIHZlKEFlKXtyZXR1cm4gZnVuY3Rpb24oa2Upe3JldHVybiBmdW5jdGlvbihTZSl7aWYoSil0aHJvdyBuZXcgVHlwZUVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcuIik7Zm9yKDtkZTspdHJ5e2lmKEo9MSxzZSYmKG9lPTIm''@;'; + put 'put ''U2VbMF0/c2UucmV0dXJuOlNlWzBdP3NlLnRocm93fHwoKG9lPXNlLnJldHVybikmJm9lLmNhbGwoc2UpLDApOnNlLm5leHQpJiYhKG9lPW9lLmNhbGwoc2UsU2VbMV0pKS5kb25lKXJldHVybiBvZTtzd2l0Y2goc2U9MCxvZSYmKFNlPVsyJlNlWzBdLG9lLnZhbHVlXSksU2VbMF0pe2Nhc2Ug''@;'; + put 'put ''MDpjYXNlIDE6b2U9U2U7YnJlYWs7Y2FzZSA0OnJldHVybiBkZS5sYWJlbCsrLHt2YWx1ZTpTZVsxXSxkb25lOiExfTtjYXNlIDU6ZGUubGFiZWwrKyxzZT1TZVsxXSxTZT1bMF07Y29udGludWU7Y2FzZSA3OlNlPWRlLm9wcy5wb3AoKSxkZS50cnlzLnBvcCgpO2NvbnRpbnVlO2RlZmF1bHQ6''@;'; + put 'put ''aWYoISgob2U9KG9lPWRlLnRyeXMpLmxlbmd0aD4wJiZvZVtvZS5sZW5ndGgtMV0pfHw2IT09U2VbMF0mJjIhPT1TZVswXSkpe2RlPTA7Y29udGludWV9aWYoMz09PVNlWzBdJiYoIW9lfHxTZVsxXT5vZVswXSYmU2VbMV08b2VbM10pKXtkZS5sYWJlbD1TZVsxXTticmVha31pZig2PT09U2Vb''@;'; + put 'put ''MF0mJmRlLmxhYmVsPG9lWzFdKXtkZS5sYWJlbD1vZVsxXSxvZT1TZTticmVha31pZihvZSYmZGUubGFiZWw8b2VbMl0pe2RlLmxhYmVsPW9lWzJdLGRlLm9wcy5wdXNoKFNlKTticmVha31vZVsyXSYmZGUub3BzLnBvcCgpLGRlLnRyeXMucG9wKCk7Y29udGludWV9U2U9cS5jYWxsKGVlLGRl''@;'; + put 'put ''KX1jYXRjaChJZSl7U2U9WzYsSWVdLHNlPTB9ZmluYWxseXtKPW9lPTB9aWYoNSZTZVswXSl0aHJvdyBTZVsxXTtyZXR1cm57dmFsdWU6U2VbMF0/U2VbMV06dm9pZCAwLGRvbmU6ITB9fShbQWUsa2VdKX19fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwiX19lc01vZHVsZSIse3ZhbHVlOiEw''@;'; + put 'put ''fSksUS5mZXRjaExvZz1RLmZldGNoTG9nQnlDaHVua3M9dm9pZCAwO3ZhciBOPVooOTc3OCk7US5mZXRjaExvZ0J5Q2h1bmtzPWZ1bmN0aW9uKGVlLHEsSixzZSl7cmV0dXJuIFkodm9pZCAwLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gVyh0aGlzLGZ1bmN0aW9uKG9lKXtzd2l0''@;'; + put 'put ''Y2gob2UubGFiZWwpe2Nhc2UgMDpyZXR1cm5bNCwoMCxRLmZldGNoTG9nKShlZSxxLEosMCxzZSldO2Nhc2UgMTpyZXR1cm5bMixvZS5zZW50KCldfX0pfSl9LFEuZmV0Y2hMb2c9ZnVuY3Rpb24oZWUscSxKLHNlLG9lKXtyZXR1cm4gWSh2b2lkIDAsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigp''@;'; + put 'put ''e3ZhciBjZSxkZSx2ZSxBZSxrZTtyZXR1cm4gVyh0aGlzLGZ1bmN0aW9uKFNlKXtzd2l0Y2goU2UubGFiZWwpe2Nhc2UgMDpjZT1pZS5sb2dnZXJ8fGFlLGRlPSIiLHZlPW9lPDFlND9vZToxZTQsU2UubGFiZWw9MTtjYXNlIDE6cmV0dXJuIGNlLmluZm8oIkZldGNoaW5nIGxvZ3MgZnJvbSBs''@;'; + put 'put ''aW5lIG5vOiAiLmNvbmNhdChzZSsxLCIgdG8gIikuY29uY2F0KHNlK3ZlLCIgb2YgIikuY29uY2F0KG9lLCIuIikpLFs0LGVlLmdldCgiIi5jb25jYXQoSiwiP3N0YXJ0PSIpLmNvbmNhdChzZSwiJmxpbWl0PSIpLmNvbmNhdCh2ZSkscSkudGhlbihmdW5jdGlvbihJZSl7cmV0dXJuIEllLnJl''@;'; + put 'put ''c3VsdH0pLmNhdGNoKGZ1bmN0aW9uKEllKXt0aHJvdygwLE4ucHJlZml4TWVzc2FnZSkoSWUsIkVycm9yIHdoaWxlIGdldHRpbmcgbG9nLiAiKX0pXTtjYXNlIDI6aWYoMD09PShBZT1TZS5zZW50KCkpLml0ZW1zLmxlbmd0aClyZXR1cm5bMyw0XTtrZT1BZS5pdGVtcy5tYXAoZnVuY3Rpb24o''@;'; + put 'put ''SWUpe3JldHVybiBJZS5saW5lfSkuam9pbigiXG4iKSxkZSs9a2Usc2UrPXZlLFNlLmxhYmVsPTM7Y2FzZSAzOmlmKHNlPG9lKXJldHVyblszLDFdO1NlLmxhYmVsPTQ7Y2FzZSA0OnJldHVyblsyLGRlXX19KX0pfX0sNzE0OihVLFEsWik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVBy''@;'; + put 'put ''b3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLFEuZm9ybWF0RGF0YUZvclJlcXVlc3Q9dm9pZCAwO3ZhciBpZT1aKDI0MDIpLGFlPVooNDc5OSk7US5mb3JtYXREYXRhRm9yUmVxdWVzdD1mdW5jdGlvbihZKXt2YXIgVz1bXSxOPTAsZWU9e307Zm9yKHZhciBxIGluIFkpaWYoISgw''@;'; + put 'put ''LGllLmlzRm9ybWF0c1RhYmxlKShxKXx8IU9iamVjdC5rZXlzKFkpLmluY2x1ZGVzKHEucmVwbGFjZSgvXlwkLywiIikpKXtOKyssKDAsaWUuaXNGb3JtYXRzVGFibGUpKHEpfHxXLnB1c2gocSk7dmFyIEo9KDAsaWUuY29udmVydFRvQ1NWKShZLHEpO2lmKCJFUlJPUjogTEFSR0UgU1RSSU5H''@;'; + put 'put ''IExFTkdUSCI9PT1KKXRocm93IG5ldyBFcnJvcigiVGhlIG1heCBsZW5ndGggb2YgYSBzdHJpbmcgdmFsdWUgaW4gU0FTanMgaXMgMzI3NjUgY2hhcmFjdGVycy4iKTtpZihKLmxlbmd0aD4xNmUzKXt2YXIgc2U9KDAsYWUuc3BsaXRDaHVua3MpKEopO2VlWyJzYXNqcyIuY29uY2F0KE4sImRh''@;'; + put 'put ''dGEwIildPXNlLmxlbmd0aCxzZS5mb3JFYWNoKGZ1bmN0aW9uKG9lLGNlKXtlZVsic2FzanMiLmNvbmNhdChOLCJkYXRhIikuY29uY2F0KGNlKzEpXT1vZX0pfWVsc2UgZWVbInNhc2pzIi5jb25jYXQoTiwiZGF0YSIpXT1KfXJldHVybiBlZS5zYXNqc190YWJsZXM9Vy5qb2luKCIgIiksZWV9''@;'; + put 'put ''fSwxODg0OihVLFEsWik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLFEuZ2V0VmFsaWRKc29uPXZvaWQgMDt2YXIgaWU9WigxMzk1KTtRLmdldFZhbGlkSnNvbj1mdW5jdGlvbihhZSl7dHJ5e2lmKG51bGw9PWFlKXRocm93''@;'; + put 'put ''IG5ldyBpZS5JbnZhbGlkSnNvbkVycm9yO2lmKEFycmF5LmlzQXJyYXkoYWUpKXRocm93IG5ldyBpZS5Kc29uUGFyc2VBcnJheUVycm9yO3JldHVybiJvYmplY3QiPT10eXBlb2YgYWU/YWU6IiI9PT1hZT97fTpKU09OLnBhcnNlKGFlKX1jYXRjaChZKXt0aHJvdyBZIGluc3RhbmNlb2YgaWUu''@;'; + put 'put ''SnNvblBhcnNlQXJyYXlFcnJvcj9ZOm5ldyBpZS5JbnZhbGlkSnNvbkVycm9yfX19LDU5Mjg6ZnVuY3Rpb24oVSxRLFopeyJ1c2Ugc3RyaWN0Ijt2YXIgaWU9dGhpcyYmdGhpcy5fX2NyZWF0ZUJpbmRpbmd8fChPYmplY3QuY3JlYXRlP2Z1bmN0aW9uKFksVyxOLGVlKXt2b2lkIDA9PT1lZSYm''@;'; + put 'put ''KGVlPU4pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShZLGVlLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBXW05dfX0pfTpmdW5jdGlvbihZLFcsTixlZSl7dm9pZCAwPT09ZWUmJihlZT1OKSxZW2VlXT1XW05dfSksYWU9dGhpcyYmdGhpcy5fX2V4cG9ydFN0YXJ8fGZ1bmN0''@;'; + put 'put ''aW9uKFksVyl7Zm9yKHZhciBOIGluIFkpImRlZmF1bHQiPT09Tnx8T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKFcsTil8fGllKFcsWSxOKX07T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGFlKFooMzMwMiksUSksYWUoWig3OTIy''@;'; + put 'put ''KSxRKSxhZShaKDM3OTMpLFEpLGFlKFooMjQwMiksUSksYWUoWigzNTUzKSxRKSxhZShaKDYxMTYpLFEpLGFlKFooOTgyNSksUSksYWUoWig5OTApLFEpLGFlKFooMTg4NCksUSksYWUoWig0MjQzKSxRKSxhZShaKDI1NyksUSksYWUoWigyKSxRKSxhZShaKDI2MTUpLFEpLGFlKFooMjkyMCks''@;'; + put 'put ''USksYWUoWigyNDIyKSxRKSxhZShaKDMxKSxRKSxhZShaKDY1MTUpLFEpLGFlKFooNjQxNiksUSksYWUoWigyODEzKSxRKSxhZShaKDk4OTYpLFEpLGFlKFooNDc5OSksUSksYWUoWig0NTE2KSxRKX0sNDI0MzooVSxRLFopPT57InVzZSBzdHJpY3QiO3ZhciBpZT1aKDQxNTUpO09iamVjdC5k''@;'; + put 'put ''ZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxRLmlzTm9kZT12b2lkIDAsUS5pc05vZGU9ZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCAwIT09aWUmJm51bGwhPWllLnZlcnNpb25zJiZudWxsIT1pZS52ZXJzaW9ucy5ub2RlfX0sMjU3OihVLFEpPT57InVzZSBzdHJpY3Qi''@;'; + put 'put ''O09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxRLmlzUmVsYXRpdmVQYXRoPXZvaWQgMCxRLmlzUmVsYXRpdmVQYXRoPWZ1bmN0aW9uKFope3JldHVybiEhWiYmIVouc3RhcnRzV2l0aCgiLyIpfX0sMjooVSxRKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3Qu''@;'; + put 'put ''ZGVmaW5lUHJvcGVydHkoUSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksUS5pc1VyaT12b2lkIDAsUS5pc1VyaT1mdW5jdGlvbihaKXtyZXR1cm4vXlwvZm9sZGVyc1wvZm9sZGVyc1wvLy50ZXN0KFopfX0sMjYxNTooVSxRKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHko''@;'; + put 'put ''USwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksUS5pc1VybD12b2lkIDAsUS5pc1VybD1mdW5jdGlvbihaKXt0cnl7dmFyIGllPW5ldyBVUkwoWik7aWYoIVsiaHR0cDoiLCJodHRwczoiXS5pbmNsdWRlcyhpZS5wcm90b2NvbCkpcmV0dXJuITF9Y2F0Y2goYWUpe3JldHVybiExfXJldHVybiEw''@;'; + put 'put ''fX0sMTIxMDpmdW5jdGlvbihVLFEpeyJ1c2Ugc3RyaWN0Ijt2YXIgWixxLGllPXRoaXMmJnRoaXMuX19hd2FpdGVyfHxmdW5jdGlvbihxLEosc2Usb2Upe3JldHVybiBuZXcoc2V8fChzZT1Qcm9taXNlKSkoZnVuY3Rpb24oY2UsZGUpe2Z1bmN0aW9uIHZlKFNlKXt0cnl7a2Uob2UubmV4dChT''@;'; + put 'put ''ZSkpfWNhdGNoKEllKXtkZShJZSl9fWZ1bmN0aW9uIEFlKFNlKXt0cnl7a2Uob2UudGhyb3coU2UpKX1jYXRjaChJZSl7ZGUoSWUpfX1mdW5jdGlvbiBrZShTZSl7dmFyIEllO1NlLmRvbmU/Y2UoU2UudmFsdWUpOihJZT1TZS52YWx1ZSxJZSBpbnN0YW5jZW9mIHNlP0llOm5ldyBzZShmdW5j''@;'; + put 'put ''dGlvbihUZSl7VGUoSWUpfSkpLnRoZW4odmUsQWUpfWtlKChvZT1vZS5hcHBseShxLEp8fFtdKSkubmV4dCgpKX0pfSxhZT10aGlzJiZ0aGlzLl9fZ2VuZXJhdG9yfHxmdW5jdGlvbihxLEope3ZhciBzZSxvZSxjZSxkZSx2ZT17bGFiZWw6MCxzZW50OmZ1bmN0aW9uKCl7aWYoMSZjZVswXSl0''@;'; + put 'put ''aHJvdyBjZVsxXTtyZXR1cm4gY2VbMV19LHRyeXM6W10sb3BzOltdfTtyZXR1cm4gZGU9e25leHQ6QWUoMCksdGhyb3c6QWUoMSkscmV0dXJuOkFlKDIpfSwiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYoZGVbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSksZGU7''@;'; + put 'put ''ZnVuY3Rpb24gQWUoa2Upe3JldHVybiBmdW5jdGlvbihTZSl7cmV0dXJuIGZ1bmN0aW9uKEllKXtpZihzZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcuIik7Zm9yKDt2ZTspdHJ5e2lmKHNlPTEsb2UmJihjZT0yJkllWzBdP29lLnJldHVybjpJ''@;'; + put 'put ''ZVswXT9vZS50aHJvd3x8KChjZT1vZS5yZXR1cm4pJiZjZS5jYWxsKG9lKSwwKTpvZS5uZXh0KSYmIShjZT1jZS5jYWxsKG9lLEllWzFdKSkuZG9uZSlyZXR1cm4gY2U7c3dpdGNoKG9lPTAsY2UmJihJZT1bMiZJZVswXSxjZS52YWx1ZV0pLEllWzBdKXtjYXNlIDA6Y2FzZSAxOmNlPUllO2Jy''@;'; + put 'put ''ZWFrO2Nhc2UgNDpyZXR1cm4gdmUubGFiZWwrKyx7dmFsdWU6SWVbMV0sZG9uZTohMX07Y2FzZSA1OnZlLmxhYmVsKyssb2U9SWVbMV0sSWU9WzBdO2NvbnRpbnVlO2Nhc2UgNzpJZT12ZS5vcHMucG9wKCksdmUudHJ5cy5wb3AoKTtjb250aW51ZTtkZWZhdWx0OmlmKCEoKGNlPShjZT12ZS50''@;'; + put 'put ''cnlzKS5sZW5ndGg+MCYmY2VbY2UubGVuZ3RoLTFdKXx8NiE9PUllWzBdJiYyIT09SWVbMF0pKXt2ZT0wO2NvbnRpbnVlfWlmKDM9PT1JZVswXSYmKCFjZXx8SWVbMV0+Y2VbMF0mJkllWzFdPGNlWzNdKSl7dmUubGFiZWw9SWVbMV07YnJlYWt9aWYoNj09PUllWzBdJiZ2ZS5sYWJlbDxjZVsx''@;'; + put 'put ''XSl7dmUubGFiZWw9Y2VbMV0sY2U9SWU7YnJlYWt9aWYoY2UmJnZlLmxhYmVsPGNlWzJdKXt2ZS5sYWJlbD1jZVsyXSx2ZS5vcHMucHVzaChJZSk7YnJlYWt9Y2VbMl0mJnZlLm9wcy5wb3AoKSx2ZS50cnlzLnBvcCgpO2NvbnRpbnVlfUllPUouY2FsbChxLHZlKX1jYXRjaChUZSl7SWU9WzYs''@;'; + put 'put ''VGVdLG9lPTB9ZmluYWxseXtzZT1jZT0wfWlmKDUmSWVbMF0pdGhyb3cgSWVbMV07cmV0dXJue3ZhbHVlOkllWzBdP0llWzFdOnZvaWQgMCxkb25lOiEwfX0oW2tlLFNlXSl9fX07T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLFEub3BlbkxvZ2luUHJv''@;'; + put 'put ''bXB0PXZvaWQgMCwocT1afHwoWj17fSkpLnN0eWxlcz0ic2FzanNBZGFwdGVyU3R5bGVzIixxLm92ZXJsYXk9InNhc2pzQWRhcHRlckxvZ2luUHJvbXB0QkciLHEuZGlhbG9nPSJzYXNqc0FkYXB0ZXJMb2dpblByb21wdCI7dmFyIFk9InNhc2pzLWFkYXB0ZXIiLFc9e3BvcFVwOiIiLmNvbmNh''@;'; + put 'put ''dChZLCJwb3BVcCIpLHBvcFVwQkc6IiIuY29uY2F0KFksInBvcFVwQkciKX07US5vcGVuTG9naW5Qcm9tcHQ9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocSl7cmV0dXJuIGllKHZvaWQgMCx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIEosc2Usb2UsY2UsZGUs''@;'; + put 'put ''dmUsQWUsa2U7cmV0dXJuIGFlKHRoaXMsZnVuY3Rpb24oU2Upe3JldHVybihKPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInN0eWxlIikpLmlkPVouc3R5bGVzLEouaW5uZXJUZXh0PWVlLChzZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSkuaWQ9Wi5vdmVybGF5LHNlLmNsYXNzTGlz''@;'; + put 'put ''dC5hZGQoVy5wb3BVcEJHKSwob2U9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikpLmlkPVouZGlhbG9nLG9lLmNsYXNzTGlzdC5hZGQoVy5wb3BVcCksKGNlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImgxIikpLmlubmVyVGV4dD0iU2Vzc2lvbiBFeHBpcmVkISIsb2UuYXBwZW5kQ2hp''@;'; + put 'put ''bGQoY2UpLGRlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLCh2ZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIikpLmlubmVyVGV4dD0iWW91IG5lZWQgdG8gcmVsb2dpbiwgY2xpY2sgT0sgdG8gbG9naW4uIixkZS5hcHBlbmRDaGlsZCh2ZSksb2UuYXBwZW5kQ2hpbGQoZGUp''@;'; + put 'put ''LChBZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJidXR0b24iKSkuY2xhc3NMaXN0LmFkZCgiY2FuY2VsIiksQWUuaW5uZXJUZXh0PSJDYW5jZWwiLEFlLm9uY2xpY2s9ZnVuY3Rpb24oKXtOKCkscSghMSl9LG9lLmFwcGVuZENoaWxkKEFlKSwoa2U9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgi''@;'; + put 'put ''YnV0dG9uIikpLmNsYXNzTGlzdC5hZGQoImNvbmZpcm0iKSxrZS5pbm5lclRleHQ9Ik9rIixrZS5vbmNsaWNrPWZ1bmN0aW9uKCl7TigpLHEoITApfSxvZS5hcHBlbmRDaGlsZChrZSksZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvdz0iaGlkZGVuIixkb2N1bWVudC5ib2R5LmFwcGVuZENo''@;'; + put 'put ''aWxkKEopLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoc2UpLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQob2UpLFsyXX0pfSl9KX07dmFyIE49ZnVuY3Rpb24oKXtPYmplY3QudmFsdWVzKFopLmZvckVhY2goZnVuY3Rpb24ocSl7dmFyIEosc2U9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo''@;'; + put 'put ''cSk7bnVsbD09PShKPW51bGw9PXNlP3ZvaWQgMDpzZS5wYXJlbnROb2RlKXx8dm9pZCAwPT09Snx8Si5yZW1vdmVDaGlsZChzZSl9KSxkb2N1bWVudC5ib2R5LnN0eWxlLm92ZXJmbG93PSJhdXRvIn0sZWU9IlxuLiIuY29uY2F0KFcucG9wVXBCRywiICxcbi4iKS5jb25jYXQoVy5wb3BVcCwi''@;'; + put 'put ''IHtcbiAgei1pbmRleDogMTAwMDA7XG59XG4uIikuY29uY2F0KFcucG9wVXAsIiB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLW1vei1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBkaXNwbGF5OiBibG9jaztcbiAg''@;'; + put 'put ''cG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDQwJTtcbiAgbGVmdDogNTAlO1xuICBwYWRkaW5nOiAwO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtZmFtaWx5OiAnUFQgU2FucycsIHNhbnMtc2VyaWY7XG4gIGNvbG9yOiAjZmZmO1xuICBib3JkZXItc3R5bGU6IG5vbmU7XG4gIHotaW5k''@;'; + put 'put ''ZXg6IDk5OTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjIpO1xuICBtYXJnaW46IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDMwMHB4O1xuICBoZWlnaHQ6IGF1dG87XG4gIG1heC1oZWlnaHQ6IDMwMHB4O1xuICB0cmFuc2Zv''@;'; + put 'put ''cm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbn1cbi4iKS5jb25jYXQoVy5wb3BVcCwiID4gaDEge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIC1tb3otYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgcGFkZGluZzog''@;'; + put 'put ''NXB4O1xuICBtaW4taGVpZ2h0OiA0MHB4O1xuICBmb250LXNpemU6IDEuMmVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1zdHlsZTogbm9uZTtc''@;'; + put 'put ''biAgYm9yZGVyLXdpZHRoOiA1cHg7XG4gIGJvcmRlci1jb2xvcjogYmxhY2s7XG59XG4uIikuY29uY2F0KFcucG9wVXAsIiA+IGRpdiB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGNhbGMoMTAwJSAtMTA4cHgpO1xuICBtYXJnaW46IDA7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBib3gt''@;'; + put 'put ''c2l6aW5nOiBib3JkZXItYm94O1xuICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIC1tb3otYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgcGFkZGluZzogNSU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYm9yZGVyLXdpZHRoOiAxcHg7XG4gIGJvcmRlci1jb2xvcjog''@;'; + put 'put ''I2NjYztcbiAgYm9yZGVyLXN0eWxlOiBub25lIG5vbmUgc29saWQgbm9uZTtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG4uIikuY29uY2F0KFcucG9wVXAsIiA+IGRpdiA+IHNwYW4ge1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAtd2Via2l0''@;'; + put 'put ''LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIC1tb3otYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICB3aWR0aDogMzAwcHg7XG4gIGhlaWdodDogMTA4cHg7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGJvcmRlci1zdHlsZTog''@;'; + put 'put ''bm9uZTtcbn1cbi4iKS5jb25jYXQoVy5wb3BVcCwiIC5jYW5jZWwge1xuICBmbG9hdDogbGVmdDtcbn1cbi4iKS5jb25jYXQoVy5wb3BVcCwiIC5jb25maXJtIHtcbiAgZmxvYXQ6IHJpZ2h0O1xufVxuLiIpLmNvbmNhdChXLnBvcFVwLCIgPiBidXR0b24ge1xuICBib3gtc2l6aW5nOiBib3Jk''@;'; + put 'put ''ZXItYm94O1xuICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIC1tb3otYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAxMHB4O1xuICB3aWR0aDogNTAlO1xuICBib3JkZXI6IDFweCBub25lICNjY2M7XG4gIGNvbG9yOiAjZmZmO1xu''@;'; + put 'put ''ICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBoZWlnaHQ6IDUwcHg7XG4gIGJhY2tncm91bmQ6IHJnYmEoMSwgMSwgMSwgMC4yKTtcbn1cbi4iKS5jb25jYXQoVy5wb3BVcCwiID4gYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAw''@;'; + put 'put ''LCAwLjIpO1xufVxuLiIpLmNvbmNhdChXLnBvcFVwQkcsIiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBv''@;'; + put 'put ''cGFjaXR5OiAwLjk1O1xuICB6LWluZGV4OiA1MDtcbiAgYmFja2dyb3VuZC1pbWFnZTogcmFkaWFsLWdyYWRpZW50KCMwMzc4Y2QsICMwMTIwMzYpO1xufVxuIil9LDI5MjA6KFUsUSk9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZToh''@;'; + put 'put ''MH0pLFEubmVlZHNSZXRyeT12b2lkIDAsUS5uZWVkc1JldHJ5PWZ1bmN0aW9uKFope3JldHVybiEhWiYmKFouaW5jbHVkZXMoJyJlcnJvckNvZGUiOjQwMycpJiZaLmluY2x1ZGVzKCJfY3NyZiIpJiZaLmluY2x1ZGVzKCJYLUNTUkYtVE9LRU4iKXx8Wi5pbmNsdWRlcygnInN0YXR1cyI6NDAz''@;'; + put 'put ''JykmJlouaW5jbHVkZXMoJyJlcnJvciI6IkZvcmJpZGRlbiInKXx8Wi5pbmNsdWRlcygnInN0YXR1cyI6NDQ5JykmJlouaW5jbHVkZXMoIkF1dGhlbnRpY2F0aW9uIHN1Y2Nlc3MsIHJldHJ5IG9yaWdpbmFsIHJlcXVlc3QiKSl9fSwyNDIyOihVLFEpPT57InVzZSBzdHJpY3QiO09iamVjdC5k''@;'; + put 'put ''ZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxRLnBhcnNlR2VuZXJhdGVkQ29kZT12b2lkIDAsUS5wYXJzZUdlbmVyYXRlZENvZGU9ZnVuY3Rpb24oWil7cmV0dXJuIFouc3BsaXQoIlxuIikuZmlsdGVyKGZ1bmN0aW9uKGllKXtyZXR1cm4gaWUudHJpbSgpLnN0YXJ0''@;'; + put 'put ''c1dpdGgoIk1QUklOVCIpfSkuam9pbigiXHJcbiIpfX0sMzE6KFUsUSxaKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgaWU9Wig1MTA4KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksUS5wYXJzZVNhc1ZpeWFMb2c9dm9pZCAwLFEucGFyc2VTYXNWaXlhTG9n''@;'; + put 'put ''PWZ1bmN0aW9uKGFlKXt2YXIgWTt0cnl7WT1hZS5pdGVtcz9hZS5pdGVtcy5tYXAoZnVuY3Rpb24oVyl7cmV0dXJuIFcubGluZX0pLmpvaW4oIlxuIik6SlNPTi5zdHJpbmdpZnkoYWUpfWNhdGNoKFcpe2llLmVycm9yKCJBbiBlcnJvciBoYXMgb2NjdXJyZWQgd2hpbGUgcGFyc2luZyB0aGUg''@;'; + put 'put ''bG9nIHJlc3BvbnNlIixXKSxZPWFlfXJldHVybiBZfX0sNjUxNTooVSxRKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksUS5wYXJzZVNvdXJjZUNvZGU9dm9pZCAwLFEucGFyc2VTb3VyY2VDb2RlPWZ1bmN0aW9uKFope3Jl''@;'; + put 'put ''dHVybiBaLnNwbGl0KCJcbiIpLmZpbHRlcihmdW5jdGlvbihpZSl7cmV0dXJuIGllLnRyaW0oKS5zdWJzdHJpbmcoMCwxMCkudHJpbVN0YXJ0KCkubWF0Y2goL15cZC8pfSkuam9pbigiXHJcbiIpfX0sNjQxNjpmdW5jdGlvbihVLFEsWil7InVzZSBzdHJpY3QiO3ZhciBpZT10aGlzJiZ0aGlz''@;'; + put 'put ''Ll9fYXdhaXRlcnx8ZnVuY3Rpb24oVyxOLGVlLHEpe3JldHVybiBuZXcoZWV8fChlZT1Qcm9taXNlKSkoZnVuY3Rpb24oSixzZSl7ZnVuY3Rpb24gb2UodmUpe3RyeXtkZShxLm5leHQodmUpKX1jYXRjaChBZSl7c2UoQWUpfX1mdW5jdGlvbiBjZSh2ZSl7dHJ5e2RlKHEudGhyb3codmUpKX1j''@;'; + put 'put ''YXRjaChBZSl7c2UoQWUpfX1mdW5jdGlvbiBkZSh2ZSl7dmFyIEFlO3ZlLmRvbmU/Sih2ZS52YWx1ZSk6KEFlPXZlLnZhbHVlLEFlIGluc3RhbmNlb2YgZWU/QWU6bmV3IGVlKGZ1bmN0aW9uKGtlKXtrZShBZSl9KSkudGhlbihvZSxjZSl9ZGUoKHE9cS5hcHBseShXLE58fFtdKSkubmV4dCgp''@;'; + put 'put ''KX0pfSxhZT10aGlzJiZ0aGlzLl9fZ2VuZXJhdG9yfHxmdW5jdGlvbihXLE4pe3ZhciBlZSxxLEosc2Usb2U9e2xhYmVsOjAsc2VudDpmdW5jdGlvbigpe2lmKDEmSlswXSl0aHJvdyBKWzFdO3JldHVybiBKWzFdfSx0cnlzOltdLG9wczpbXX07cmV0dXJuIHNlPXtuZXh0OmNlKDApLHRocm93''@;'; + put 'put ''OmNlKDEpLHJldHVybjpjZSgyKX0sImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmKHNlW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pLHNlO2Z1bmN0aW9uIGNlKGRlKXtyZXR1cm4gZnVuY3Rpb24odmUpe3JldHVybiBmdW5jdGlvbihBZSl7aWYoZWUpdGhyb3cg''@;'; + put 'put ''bmV3IFR5cGVFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLiIpO2Zvcig7b2U7KXRyeXtpZihlZT0xLHEmJihKPTImQWVbMF0/cS5yZXR1cm46QWVbMF0/cS50aHJvd3x8KChKPXEucmV0dXJuKSYmSi5jYWxsKHEpLDApOnEubmV4dCkmJiEoSj1KLmNhbGwocSxBZVsxXSkp''@;'; + put 'put ''LmRvbmUpcmV0dXJuIEo7c3dpdGNoKHE9MCxKJiYoQWU9WzImQWVbMF0sSi52YWx1ZV0pLEFlWzBdKXtjYXNlIDA6Y2FzZSAxOko9QWU7YnJlYWs7Y2FzZSA0OnJldHVybiBvZS5sYWJlbCsrLHt2YWx1ZTpBZVsxXSxkb25lOiExfTtjYXNlIDU6b2UubGFiZWwrKyxxPUFlWzFdLEFlPVswXTtj''@;'; + put 'put ''b250aW51ZTtjYXNlIDc6QWU9b2Uub3BzLnBvcCgpLG9lLnRyeXMucG9wKCk7Y29udGludWU7ZGVmYXVsdDppZighKChKPShKPW9lLnRyeXMpLmxlbmd0aD4wJiZKW0oubGVuZ3RoLTFdKXx8NiE9PUFlWzBdJiYyIT09QWVbMF0pKXtvZT0wO2NvbnRpbnVlfWlmKDM9PT1BZVswXSYmKCFKfHxB''@;'; + put 'put ''ZVsxXT5KWzBdJiZBZVsxXTxKWzNdKSl7b2UubGFiZWw9QWVbMV07YnJlYWt9aWYoNj09PUFlWzBdJiZvZS5sYWJlbDxKWzFdKXtvZS5sYWJlbD1KWzFdLEo9QWU7YnJlYWt9aWYoSiYmb2UubGFiZWw8SlsyXSl7b2UubGFiZWw9SlsyXSxvZS5vcHMucHVzaChBZSk7YnJlYWt9SlsyXSYmb2Uu''@;'; + put 'put ''b3BzLnBvcCgpLG9lLnRyeXMucG9wKCk7Y29udGludWV9QWU9Ti5jYWxsKFcsb2UpfWNhdGNoKGtlKXtBZT1bNixrZV0scT0wfWZpbmFsbHl7ZWU9Sj0wfWlmKDUmQWVbMF0pdGhyb3cgQWVbMV07cmV0dXJue3ZhbHVlOkFlWzBdP0FlWzFdOnZvaWQgMCxkb25lOiEwfX0oW2RlLHZlXSl9fX07''@;'; + put 'put ''T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLFEucGFyc2VTYXNWaXlhRGVidWdSZXNwb25zZT12b2lkIDA7dmFyIFk9Wig1OTI4KTtRLnBhcnNlU2FzVml5YURlYnVnUmVzcG9uc2U9ZnVuY3Rpb24oVyxOLGVlKXtyZXR1cm4gaWUodm9pZCAwLHZvaWQg''@;'; + put 'put ''MCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgcSxKO3JldHVybiBhZSh0aGlzLGZ1bmN0aW9uKHNlKXtpZihxPVcuc3BsaXQoLzxpZnJhbWUgc3R5bGU9IndpZHRoOiA5OSU7IGhlaWdodDogNTAwcHgiIHNyYz0ifDxpZnJhbWUgc3R5bGU9IndpZHRoOiA5OSU7IGhlaWdodDogNTAwcHg7IGJhY2tn''@;'; + put 'put ''cm91bmQtY29sb3I6Q2FudmFzOyIgc3JjPS8pWzFdLCEoSj1xP3Euc3BsaXQoLyI+PFwvaWZyYW1lPnw+PFwvaWZyYW1lPi8pWzBdOm51bGwpKXRocm93IG5ldyBFcnJvcigiVW5hYmxlIHRvIGZpbmQgd2Vib3V0IGZpbGUgVVJMLiIpO3JldHVyblsyLE4uZ2V0KGVlK0osdm9pZCAwLCJ0ZXh0''@;'; + put 'put ''L3BsYWluIikudGhlbihmdW5jdGlvbihvZSl7cmV0dXJuKDAsWS5nZXRWYWxpZEpzb24pKG9lLnJlc3VsdCl9KV19KX0pfX0sMjgxMzooVSxRLFopPT57InVzZSBzdHJpY3QiO3ZhciBpZT1aKDUxMDgpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxR''@;'; + put 'put ''LnBhcnNlV2Vib3V0UmVzcG9uc2U9dm9pZCAwO3ZhciBhZT1aKDEzOTUpO1EucGFyc2VXZWJvdXRSZXNwb25zZT1mdW5jdGlvbihZLFcpe3ZhciBOPSIiO2lmKFkuaW5jbHVkZXMoIj4+d2Vib3V0QkVHSU48PCIpKXRyeXtOPVkuc3BsaXQoIj4+d2Vib3V0QkVHSU48PCIpWzFdLnNwbGl0KCI+''@;'; + put 'put ''PndlYm91dEVORDw8IilbMF19Y2F0Y2goZWUpe2lmKFcpdGhyb3cgbmV3IGFlLldlYm91dFJlc3BvbnNlRXJyb3IoVyk7Tj0iIixpZS5lcnJvcihlZSl9cmV0dXJuIE59fSw5ODk2OihVLFEpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFs''@;'; + put 'put ''dWU6ITB9KSxRLnNlcmlhbGl6ZT12b2lkIDAsUS5zZXJpYWxpemU9ZnVuY3Rpb24oWil7dmFyIGllPVtdO2Zvcih2YXIgYWUgaW4gWilpZihaLmhhc093blByb3BlcnR5KGFlKSlpZihaW2FlXWluc3RhbmNlb2YgQXJyYXkpZm9yKHZhciBZPTAsVz1aW2FlXS5sZW5ndGg7WTxXO1krKylpZS5w''@;'; + put 'put ''dXNoKGVuY29kZVVSSUNvbXBvbmVudChhZSkrIj0iK2VuY29kZVVSSUNvbXBvbmVudChaW2FlXVtZXSkpO2Vsc2UgaWUucHVzaChlbmNvZGVVUklDb21wb25lbnQoYWUpKyI9IitlbmNvZGVVUklDb21wb25lbnQoWlthZV0pKTtyZXR1cm4gaWUuam9pbigiJiIpfX0sNDc5OTooVSxRKT0+eyJ1''@;'; + put 'put ''c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksUS5zcGxpdENodW5rcz12b2lkIDAsUS5zcGxpdENodW5rcz1mdW5jdGlvbihaKXtmb3IodmFyIGFlPU1hdGguY2VpbChaLmxlbmd0aC8xNmUzKSxZPW5ldyBBcnJheShhZSksVz0wLE49''@;'; + put 'put ''MDtXPGFlOysrVyxOKz0xNmUzKVlbV109Wi5zdWJzdHIoTiwxNmUzKTtyZXR1cm4gWX19LDQ1MTY6KFUsUSk9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLFEudmFsaWRhdGVJbnB1dD1RLklOVkFMSURfVEFCTEVfU1RSVUNU''@;'; + put 'put ''VVJFPVEuTU9SRV9JTkZPPXZvaWQgMCxRLk1PUkVfSU5GTz0iRm9yIG1vcmUgaW5mbyBzZWUgaHR0cHM6Ly9zYXNqcy5pby9zYXNqcy1hZGFwdGVyLyNyZXF1ZXN0LXJlc3BvbnNlIixRLklOVkFMSURfVEFCTEVfU1RSVUNUVVJFPSJQYXJhbWV0ZXIgZGF0YSBjb250YWlucyBpbnZhbGlkIHRh''@;'; + put 'put ''YmxlIHN0cnVjdHVyZS4gIi5jb25jYXQoUS5NT1JFX0lORk8pLFEudmFsaWRhdGVJbnB1dD1mdW5jdGlvbihpZSl7aWYobnVsbD09PWllKXJldHVybntzdGF0dXM6ITAsbXNnOiIifTtpZigib2JqZWN0IiE9PVooaWUpKXJldHVybntzdGF0dXM6ITEsbXNnOlEuSU5WQUxJRF9UQUJMRV9TVFJV''@;'; + put 'put ''Q1RVUkV9O3ZhciBhZT1mdW5jdGlvbihvZSl7cmV0dXJuIG9lLm1hdGNoKC9eXCQuKi8pJiZPYmplY3Qua2V5cyhpZSkuaW5jbHVkZXMob2UucmVwbGFjZSgvXlwkLywiIikpfTtmb3IodmFyIFkgaW4gaWUpe2lmKCFZLm1hdGNoKC9eW2EtekEtWl9dLykmJiFhZShZKSlyZXR1cm57c3RhdHVz''@;'; + put 'put ''OiExLG1zZzoiRmlyc3QgbGV0dGVyIG9mIHRhYmxlIHNob3VsZCBiZSBhbHBoYWJldCBvciB1bmRlcnNjb3JlLiJ9O2lmKCFZLm1hdGNoKC9eW2EtekEtWl9dW2EtekEtWjAtOV9dKiQvKSYmIWFlKFkpKXJldHVybntzdGF0dXM6ITEsbXNnOiJUYWJsZSBuYW1lIHNob3VsZCBiZSBhbHBoYW51''@;'; + put 'put ''bWVyaWMuIn07aWYoWS5sZW5ndGg+MzIpcmV0dXJue3N0YXR1czohMSxtc2c6Ik1heGltdW0gbGVuZ3RoIGZvciB0YWJsZSBuYW1lIGNvdWxkIGJlIDMyIGNoYXJhY3RlcnMuIn07aWYoIkFycmF5IiE9PVooaWVbWV0pJiYhYWUoWSkpcmV0dXJue3N0YXR1czohMSxtc2c6US5JTlZBTElEX1RB''@;'; + put 'put ''QkxFX1NUUlVDVFVSRX07Zm9yKHZhciBXPTAsTj1pZVtZXTtXPE4ubGVuZ3RoO1crKyl7dmFyIGVlPU5bV107aWYoIm9iamVjdCIhPT1aKGVlKSlyZXR1cm57c3RhdHVzOiExLG1zZzoiVGFibGUgIi5jb25jYXQoWSwiIGNvbnRhaW5zIGludmFsaWQgc3RydWN0dXJlLiAiKS5jb25jYXQoUS5N''@;'; + put 'put ''T1JFX0lORk8pfTtmb3IodmFyIHE9MCxKPU9iamVjdC5rZXlzKGVlKTtxPEoubGVuZ3RoO3ErKyl7dmFyIHNlPUpbcV07aWYodm9pZCAwPT09ZWVbc2VdKXJldHVybntzdGF0dXM6ITEsbXNnOiJBIHJvdyBpbiB0YWJsZSAiLmNvbmNhdChZLCIgY29udGFpbnMgaW52YWxpZCB2YWx1ZS4gQ2Fu''@;'; + put 'put ''J3QgYXNzaWduIHVuZGVmaW5lZCB0byAiKS5jb25jYXQoc2UsIi4iKX19fX1yZXR1cm57c3RhdHVzOiEwLG1zZzoiIn19O3ZhciBaPWZ1bmN0aW9uKGllKXtyZXR1cm4gQXJyYXkuaXNBcnJheShpZSk/IkFycmF5Ijp0eXBlb2YgaWV9fSw4OTgxOihVLFEpPT57InVzZSBzdHJpY3QiO1EuZnJv''@;'; + put 'put ''bUNhbGxiYWNrPWZ1bmN0aW9uKFope3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoZnVuY3Rpb24oLi4uaWUpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBpZVtpZS5sZW5ndGgtMV0pcmV0dXJuIG5ldyBQcm9taXNlKChhZSxZKT0+e1ouY2FsbCh0aGlzLC4uLmllLChXLE4pPT5udWxsIT1X''@;'; + put 'put ''P1koVyk6YWUoTikpfSk7Wi5hcHBseSh0aGlzLGllKX0sIm5hbWUiLHt2YWx1ZTpaLm5hbWV9KX0sUS5mcm9tUHJvbWlzZT1mdW5jdGlvbihaKXtyZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KGZ1bmN0aW9uKC4uLmllKXtjb25zdCBhZT1pZVtpZS5sZW5ndGgtMV07aWYoImZ1bmN0aW9u''@;'; + put 'put ''IiE9dHlwZW9mIGFlKXJldHVybiBaLmFwcGx5KHRoaXMsaWUpO1ouYXBwbHkodGhpcyxpZS5zbGljZSgwLC0xKSkudGhlbihZPT5hZShudWxsLFkpLGFlKX0sIm5hbWUiLHt2YWx1ZTpaLm5hbWV9KX19LDI1MTE6ZnVuY3Rpb24oVSxRLFope3ZhciBpZTtVPVoubm1kKFUpLGZ1bmN0aW9uKGFl''@;'; + put 'put ''KXt2YXIgVyxOPTIxNDc0ODM2NDcscT0vXnhuLS0vLEo9L1teXHgyMC1ceDdFXS8sc2U9L1tceDJFXHUzMDAyXHVGRjBFXHVGRjYxXS9nLG9lPXtvdmVyZmxvdzoiT3ZlcmZsb3c6IGlucHV0IG5lZWRzIHdpZGVyIGludGVnZXJzIHRvIHByb2Nlc3MiLCJub3QtYmFzaWMiOiJJbGxlZ2FsIGlu''@;'; + put 'put ''cHV0ID49IDB4ODAgKG5vdCBhIGJhc2ljIGNvZGUgcG9pbnQpIiwiaW52YWxpZC1pbnB1dCI6IkludmFsaWQgaW5wdXQifSxjZT1NYXRoLmZsb29yLGRlPVN0cmluZy5mcm9tQ2hhckNvZGU7ZnVuY3Rpb24gdmUoeil7dGhyb3cgUmFuZ2VFcnJvcihvZVt6XSl9ZnVuY3Rpb24gQWUoeixuZSl7''@;'; + put 'put ''Zm9yKHZhciB0ZT16Lmxlbmd0aCx4PVtdO3RlLS07KXhbdGVdPW5lKHpbdGVdKTtyZXR1cm4geH1mdW5jdGlvbiBrZSh6LG5lKXt2YXIgdGU9ei5zcGxpdCgiQCIpLHg9IiI7cmV0dXJuIHRlLmxlbmd0aD4xJiYoeD10ZVswXSsiQCIsej10ZVsxXSkseCtBZSgoej16LnJlcGxhY2Uoc2UsIi4i''@;'; + put 'put ''KSkuc3BsaXQoIi4iKSxuZSkuam9pbigiLiIpfWZ1bmN0aW9uIFNlKHope2Zvcih2YXIgbmUsdGUseD1bXSxQPTAsVj16Lmxlbmd0aDtQPFY7KShuZT16LmNoYXJDb2RlQXQoUCsrKSk+PTU1Mjk2JiZuZTw9NTYzMTkmJlA8Vj81NjMyMD09KDY0NTEyJih0ZT16LmNoYXJDb2RlQXQoUCsrKSkp''@;'; + put 'put ''P3gucHVzaCgoKDEwMjMmbmUpPDwxMCkrKDEwMjMmdGUpKzY1NTM2KTooeC5wdXNoKG5lKSxQLS0pOngucHVzaChuZSk7cmV0dXJuIHh9ZnVuY3Rpb24gSWUoeil7cmV0dXJuIEFlKHosZnVuY3Rpb24obmUpe3ZhciB0ZT0iIjtyZXR1cm4gbmU+NjU1MzUmJih0ZSs9ZGUoKG5lLT02NTUzNik+''@;'; + put 'put ''Pj4xMCYxMDIzfDU1Mjk2KSxuZT01NjMyMHwxMDIzJm5lKSx0ZStkZShuZSl9KS5qb2luKCIiKX1mdW5jdGlvbiBUZSh6LG5lKXtyZXR1cm4geisyMis3NSooejwyNiktKCgwIT1uZSk8PDUpfWZ1bmN0aW9uIEVlKHosbmUsdGUpe3ZhciB4PTA7Zm9yKHo9dGU/Y2Uoei83MDApOno+PjEseis9''@;'; + put 'put ''Y2Uoei9uZSk7ej40NTU7eCs9MzYpej1jZSh6LzM1KTtyZXR1cm4gY2UoeCszNip6Lyh6KzM4KSl9ZnVuY3Rpb24gaGUoeil7dmFyIG5lLHRlLHgsUCxWLFQsUyxGLHllLENlLERlLFBlPVtdLFFlPXoubGVuZ3RoLCRlPTAsZ3Q9MTI4LHd0PTcyO2ZvcigodGU9ei5sYXN0SW5kZXhPZigiLSIp''@;'; + put 'put ''KTwwJiYodGU9MCkseD0wO3g8dGU7Kyt4KXouY2hhckNvZGVBdCh4KT49MTI4JiZ2ZSgibm90LWJhc2ljIiksUGUucHVzaCh6LmNoYXJDb2RlQXQoeCkpO2ZvcihQPXRlPjA/dGUrMTowO1A8UWU7KXtmb3IoVj0kZSxUPTEsUz0zNjtQPj1RZSYmdmUoImludmFsaWQtaW5wdXQiKSwoKEY9KERl''@;'; + put 'put ''PXouY2hhckNvZGVBdChQKyspKS00ODwxMD9EZS0yMjpEZS02NTwyNj9EZS02NTpEZS05NzwyNj9EZS05NzozNik+PTM2fHxGPmNlKChOLSRlKS9UKSkmJnZlKCJvdmVyZmxvdyIpLCRlKz1GKlQsIShGPCh5ZT1TPD13dD8xOlM+PXd0KzI2PzI2OlMtd3QpKTtTKz0zNilUPmNlKE4vKENlPTM2''@;'; + put 'put ''LXllKSkmJnZlKCJvdmVyZmxvdyIpLFQqPUNlO3d0PUVlKCRlLVYsbmU9UGUubGVuZ3RoKzEsMD09ViksY2UoJGUvbmUpPk4tZ3QmJnZlKCJvdmVyZmxvdyIpLGd0Kz1jZSgkZS9uZSksJGUlPW5lLFBlLnNwbGljZSgkZSsrLDAsZ3QpfXJldHVybiBJZShQZSl9ZnVuY3Rpb24gTyh6KXt2YXIg''@;'; + put 'put ''bmUsdGUseCxQLFYsVCxTLEYseWUsQ2UsRGUsUGUsUWUsJGUsZ3Qsd3Q9W107Zm9yKFBlPSh6PVNlKHopKS5sZW5ndGgsbmU9MTI4LHRlPTAsVj03MixUPTA7VDxQZTsrK1QpKERlPXpbVF0pPDEyOCYmd3QucHVzaChkZShEZSkpO2Zvcih4PVA9d3QubGVuZ3RoLFAmJnd0LnB1c2goIi0iKTt4''@;'; + put 'put ''PFBlOyl7Zm9yKFM9TixUPTA7VDxQZTsrK1QpKERlPXpbVF0pPj1uZSYmRGU8UyYmKFM9RGUpO2ZvcihTLW5lPmNlKChOLXRlKS8oUWU9eCsxKSkmJnZlKCJvdmVyZmxvdyIpLHRlKz0oUy1uZSkqUWUsbmU9UyxUPTA7VDxQZTsrK1QpaWYoKERlPXpbVF0pPG5lJiYrK3RlPk4mJnZlKCJvdmVy''@;'; + put 'put ''ZmxvdyIpLERlPT1uZSl7Zm9yKEY9dGUseWU9MzY7IShGPChDZT15ZTw9Vj8xOnllPj1WKzI2PzI2OnllLVYpKTt5ZSs9MzYpd3QucHVzaChkZShUZShDZSsoZ3Q9Ri1DZSklKCRlPTM2LUNlKSwwKSkpLEY9Y2UoZ3QvJGUpO3d0LnB1c2goZGUoVGUoRiwwKSkpLFY9RWUodGUsUWUseD09UCks''@;'; + put 'put ''dGU9MCwrK3h9Kyt0ZSwrK25lfXJldHVybiB3dC5qb2luKCIiKX1XPXt2ZXJzaW9uOiIxLjMuMiIsdWNzMjp7ZGVjb2RlOlNlLGVuY29kZTpJZX0sZGVjb2RlOmhlLGVuY29kZTpPLHRvQVNDSUk6ZnVuY3Rpb24oeil7cmV0dXJuIGtlKHosZnVuY3Rpb24obmUpe3JldHVybiBKLnRlc3QobmUp''@;'; + put 'put ''PyJ4bi0tIitPKG5lKTpuZX0pfSx0b1VuaWNvZGU6ZnVuY3Rpb24oeil7cmV0dXJuIGtlKHosZnVuY3Rpb24obmUpe3JldHVybiBxLnRlc3QobmUpP2hlKG5lLnNsaWNlKDQpLnRvTG93ZXJDYXNlKCkpOm5lfSl9fSx2b2lkIDA9PT0oaWU9ZnVuY3Rpb24oKXtyZXR1cm4gV30uY2FsbChRLFos''@;'; + put 'put ''USxVKSl8fChVLmV4cG9ydHM9aWUpfSgpfSw4NTc1OihVLFEsWik9PnsidXNlIHN0cmljdCI7dmFyIGllPVooMjUxMSksYWU9WigyNTAyKTtmdW5jdGlvbiBZKCl7dGhpcy5wcm90b2NvbD1udWxsLHRoaXMuc2xhc2hlcz1udWxsLHRoaXMuYXV0aD1udWxsLHRoaXMuaG9zdD1udWxsLHRoaXMu''@;'; + put 'put ''cG9ydD1udWxsLHRoaXMuaG9zdG5hbWU9bnVsbCx0aGlzLmhhc2g9bnVsbCx0aGlzLnNlYXJjaD1udWxsLHRoaXMucXVlcnk9bnVsbCx0aGlzLnBhdGhuYW1lPW51bGwsdGhpcy5wYXRoPW51bGwsdGhpcy5ocmVmPW51bGx9US5RYz1JZTt2YXIgVz0vXihbYS16MC05ListXSs6KS9pLE49Lzpb''@;'; + put 'put ''MC05XSokLyxlZT0vXihcL1wvPyg/IVwvKVteXD9cc10qKShcP1teXHNdKik/JC8scT1bInsiLCJ9IiwifCIsIlxcIiwiXiIsImAiXS5jb25jYXQoWyI8IiwiPiIsJyInLCJgIiwiICIsIlxyIiwiXG4iLCJcdCJdKSxKPVsiJyJdLmNvbmNhdChxKSxzZT1bIiUiLCIvIiwiPyIsIjsiLCIjIl0u''@;'; + put 'put ''Y29uY2F0KEopLG9lPVsiLyIsIj8iLCIjIl0sY2U9L15bK2EtejAtOUEtWl8tXXswLDYzfSQvLGRlPS9eKFsrYS16MC05QS1aXy1dezAsNjN9KSguKikkLyx2ZT17amF2YXNjcmlwdDohMCwiamF2YXNjcmlwdDoiOiEwfSxBZT17amF2YXNjcmlwdDohMCwiamF2YXNjcmlwdDoiOiEwfSxrZT17''@;'; + put 'put ''aHR0cDohMCxodHRwczohMCxmdHA6ITAsZ29waGVyOiEwLGZpbGU6ITAsImh0dHA6IjohMCwiaHR0cHM6IjohMCwiZnRwOiI6ITAsImdvcGhlcjoiOiEwLCJmaWxlOiI6ITB9LFNlPVooNzY3Myk7ZnVuY3Rpb24gSWUoVGUsRWUsaGUpe2lmKFRlJiZhZS5pc09iamVjdChUZSkmJlRlIGluc3Rh''@;'; + put 'put ''bmNlb2YgWSlyZXR1cm4gVGU7dmFyIE89bmV3IFk7cmV0dXJuIE8ucGFyc2UoVGUsRWUsaGUpLE99WS5wcm90b3R5cGUucGFyc2U9ZnVuY3Rpb24oVGUsRWUsaGUpe2lmKCFhZS5pc1N0cmluZyhUZSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiUGFyYW1ldGVyICd1cmwnIG11c3QgYmUgYSBzdHJp''@;'; + put 'put ''bmcsIG5vdCAiK3R5cGVvZiBUZSk7dmFyIE89VGUuaW5kZXhPZigiPyIpLHo9LTEhPT1PJiZPPFRlLmluZGV4T2YoIiMiKT8iPyI6IiMiLG5lPVRlLnNwbGl0KHopO25lWzBdPW5lWzBdLnJlcGxhY2UoL1xcL2csIi8iKTt2YXIgdGU9VGU9bmUuam9pbih6KTtpZih0ZT10ZS50cmltKCksIWhl''@;'; + put 'put ''JiYxPT09VGUuc3BsaXQoIiMiKS5sZW5ndGgpe3ZhciB4PWVlLmV4ZWModGUpO2lmKHgpcmV0dXJuIHRoaXMucGF0aD10ZSx0aGlzLmhyZWY9dGUsdGhpcy5wYXRobmFtZT14WzFdLHhbMl0/KHRoaXMuc2VhcmNoPXhbMl0sdGhpcy5xdWVyeT1FZT9TZS5wYXJzZSh0aGlzLnNlYXJjaC5zdWJz''@;'; + put 'put ''dHIoMSkpOnRoaXMuc2VhcmNoLnN1YnN0cigxKSk6RWUmJih0aGlzLnNlYXJjaD0iIix0aGlzLnF1ZXJ5PXt9KSx0aGlzfXZhciBQPVcuZXhlYyh0ZSk7aWYoUCl7dmFyIFY9KFA9UFswXSkudG9Mb3dlckNhc2UoKTt0aGlzLnByb3RvY29sPVYsdGU9dGUuc3Vic3RyKFAubGVuZ3RoKX1pZiho''@;'; + put 'put ''ZXx8UHx8dGUubWF0Y2goL15cL1wvW15AXC9dK0BbXkBcL10rLykpe3ZhciBUPSIvLyI9PT10ZS5zdWJzdHIoMCwyKTshVHx8UCYmQWVbUF18fCh0ZT10ZS5zdWJzdHIoMiksdGhpcy5zbGFzaGVzPSEwKX1pZighQWVbUF0mJihUfHxQJiYha2VbUF0pKXtmb3IodmFyIFMsRix5ZT0tMSxDZT0w''@;'; + put 'put ''O0NlPG9lLmxlbmd0aDtDZSsrKS0xIT09KERlPXRlLmluZGV4T2Yob2VbQ2VdKSkmJigtMT09PXllfHxEZTx5ZSkmJih5ZT1EZSk7Zm9yKC0xIT09KEY9LTE9PT15ZT90ZS5sYXN0SW5kZXhPZigiQCIpOnRlLmxhc3RJbmRleE9mKCJAIix5ZSkpJiYoUz10ZS5zbGljZSgwLEYpLHRlPXRlLnNs''@;'; + put 'put ''aWNlKEYrMSksdGhpcy5hdXRoPWRlY29kZVVSSUNvbXBvbmVudChTKSkseWU9LTEsQ2U9MDtDZTxzZS5sZW5ndGg7Q2UrKyl7dmFyIERlOy0xIT09KERlPXRlLmluZGV4T2Yoc2VbQ2VdKSkmJigtMT09PXllfHxEZTx5ZSkmJih5ZT1EZSl9LTE9PT15ZSYmKHllPXRlLmxlbmd0aCksdGhpcy5o''@;'; + put 'put ''b3N0PXRlLnNsaWNlKDAseWUpLHRlPXRlLnNsaWNlKHllKSx0aGlzLnBhcnNlSG9zdCgpLHRoaXMuaG9zdG5hbWU9dGhpcy5ob3N0bmFtZXx8IiI7dmFyIFBlPSJbIj09PXRoaXMuaG9zdG5hbWVbMF0mJiJdIj09PXRoaXMuaG9zdG5hbWVbdGhpcy5ob3N0bmFtZS5sZW5ndGgtMV07aWYoIVBl''@;'; + put 'put ''KWZvcih2YXIgUWU9dGhpcy5ob3N0bmFtZS5zcGxpdCgvXC4vKSwkZT0oQ2U9MCxRZS5sZW5ndGgpO0NlPCRlO0NlKyspe3ZhciBndD1RZVtDZV07aWYoZ3QmJiFndC5tYXRjaChjZSkpe2Zvcih2YXIgd3Q9IiIsbXQ9MCx2dD1ndC5sZW5ndGg7bXQ8dnQ7bXQrKylndC5jaGFyQ29kZUF0KG10''@;'; + put 'put ''KT4xMjc/d3QrPSJ4Ijp3dCs9Z3RbbXRdO2lmKCF3dC5tYXRjaChjZSkpe3ZhciBBdD1RZS5zbGljZSgwLENlKSxodD1RZS5zbGljZShDZSsxKSxCdD1ndC5tYXRjaChkZSk7QnQmJihBdC5wdXNoKEJ0WzFdKSxodC51bnNoaWZ0KEJ0WzJdKSksaHQubGVuZ3RoJiYodGU9Ii8iK2h0LmpvaW4o''@;'; + put 'put ''Ii4iKSt0ZSksdGhpcy5ob3N0bmFtZT1BdC5qb2luKCIuIik7YnJlYWt9fX10aGlzLmhvc3RuYW1lPXRoaXMuaG9zdG5hbWUubGVuZ3RoPjI1NT8iIjp0aGlzLmhvc3RuYW1lLnRvTG93ZXJDYXNlKCksUGV8fCh0aGlzLmhvc3RuYW1lPWllLnRvQVNDSUkodGhpcy5ob3N0bmFtZSkpO3ZhciBv''@;'; + put 'put ''bj10aGlzLnBvcnQ/IjoiK3RoaXMucG9ydDoiIjt0aGlzLmhvc3Q9KHRoaXMuaG9zdG5hbWV8fCIiKStvbix0aGlzLmhyZWYrPXRoaXMuaG9zdCxQZSYmKHRoaXMuaG9zdG5hbWU9dGhpcy5ob3N0bmFtZS5zdWJzdHIoMSx0aGlzLmhvc3RuYW1lLmxlbmd0aC0yKSwiLyIhPT10ZVswXSYmKHRl''@;'; + put 'put ''PSIvIit0ZSkpfWlmKCF2ZVtWXSlmb3IoQ2U9MCwkZT1KLmxlbmd0aDtDZTwkZTtDZSsrKXt2YXIgdHQ9SltDZV07aWYoLTEhPT10ZS5pbmRleE9mKHR0KSl7dmFyIGV0PWVuY29kZVVSSUNvbXBvbmVudCh0dCk7ZXQ9PT10dCYmKGV0PWVzY2FwZSh0dCkpLHRlPXRlLnNwbGl0KHR0KS5qb2lu''@;'; + put 'put ''KGV0KX19dmFyIGF0PXRlLmluZGV4T2YoIiMiKTstMSE9PWF0JiYodGhpcy5oYXNoPXRlLnN1YnN0cihhdCksdGU9dGUuc2xpY2UoMCxhdCkpO3ZhciBMdD10ZS5pbmRleE9mKCI/Iik7cmV0dXJuLTEhPT1MdD8odGhpcy5zZWFyY2g9dGUuc3Vic3RyKEx0KSx0aGlzLnF1ZXJ5PXRlLnN1YnN0''@;'; + put 'put ''cihMdCsxKSxFZSYmKHRoaXMucXVlcnk9U2UucGFyc2UodGhpcy5xdWVyeSkpLHRlPXRlLnNsaWNlKDAsTHQpKTpFZSYmKHRoaXMuc2VhcmNoPSIiLHRoaXMucXVlcnk9e30pLHRlJiYodGhpcy5wYXRobmFtZT10ZSksa2VbVl0mJnRoaXMuaG9zdG5hbWUmJiF0aGlzLnBhdGhuYW1lJiYodGhp''@;'; + put 'put ''cy5wYXRobmFtZT0iLyIpLCh0aGlzLnBhdGhuYW1lfHx0aGlzLnNlYXJjaCkmJih0aGlzLnBhdGg9KG9uPXRoaXMucGF0aG5hbWV8fCIiKSsodGhpcy5zZWFyY2h8fCIiKSksdGhpcy5ocmVmPXRoaXMuZm9ybWF0KCksdGhpc30sWS5wcm90b3R5cGUuZm9ybWF0PWZ1bmN0aW9uKCl7dmFyIFRl''@;'; + put 'put ''PXRoaXMuYXV0aHx8IiI7VGUmJihUZT0oVGU9ZW5jb2RlVVJJQ29tcG9uZW50KFRlKSkucmVwbGFjZSgvJTNBL2ksIjoiKSxUZSs9IkAiKTt2YXIgRWU9dGhpcy5wcm90b2NvbHx8IiIsaGU9dGhpcy5wYXRobmFtZXx8IiIsTz10aGlzLmhhc2h8fCIiLHo9ITEsbmU9IiI7dGhpcy5ob3N0P3o9''@;'; + put 'put ''VGUrdGhpcy5ob3N0OnRoaXMuaG9zdG5hbWUmJih6PVRlKygtMT09PXRoaXMuaG9zdG5hbWUuaW5kZXhPZigiOiIpP3RoaXMuaG9zdG5hbWU6IlsiK3RoaXMuaG9zdG5hbWUrIl0iKSx0aGlzLnBvcnQmJih6Kz0iOiIrdGhpcy5wb3J0KSksdGhpcy5xdWVyeSYmYWUuaXNPYmplY3QodGhpcy5x''@;'; + put 'put ''dWVyeSkmJk9iamVjdC5rZXlzKHRoaXMucXVlcnkpLmxlbmd0aCYmKG5lPVNlLnN0cmluZ2lmeSh0aGlzLnF1ZXJ5KSk7dmFyIHRlPXRoaXMuc2VhcmNofHxuZSYmIj8iK25lfHwiIjtyZXR1cm4gRWUmJiI6IiE9PUVlLnN1YnN0cigtMSkmJihFZSs9IjoiKSx0aGlzLnNsYXNoZXN8fCghRWV8''@;'; + put 'put ''fGtlW0VlXSkmJiExIT09ej8oej0iLy8iKyh6fHwiIiksaGUmJiIvIiE9PWhlLmNoYXJBdCgwKSYmKGhlPSIvIitoZSkpOnp8fCh6PSIiKSxPJiYiIyIhPT1PLmNoYXJBdCgwKSYmKE89IiMiK08pLHRlJiYiPyIhPT10ZS5jaGFyQXQoMCkmJih0ZT0iPyIrdGUpLEVlK3orKGhlPWhlLnJlcGxh''@;'; + put 'put ''Y2UoL1s/I10vZyxmdW5jdGlvbih4KXtyZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KHgpfSkpKyh0ZT10ZS5yZXBsYWNlKCIjIiwiJTIzIikpK099LFkucHJvdG90eXBlLnJlc29sdmU9ZnVuY3Rpb24oVGUpe3JldHVybiB0aGlzLnJlc29sdmVPYmplY3QoSWUoVGUsITEsITApKS5mb3JtYXQo''@;'; + put 'put ''KX0sWS5wcm90b3R5cGUucmVzb2x2ZU9iamVjdD1mdW5jdGlvbihUZSl7aWYoYWUuaXNTdHJpbmcoVGUpKXt2YXIgRWU9bmV3IFk7RWUucGFyc2UoVGUsITEsITApLFRlPUVlfWZvcih2YXIgaGU9bmV3IFksTz1PYmplY3Qua2V5cyh0aGlzKSx6PTA7ejxPLmxlbmd0aDt6Kyspe3ZhciBuZT1P''@;'; + put 'put ''W3pdO2hlW25lXT10aGlzW25lXX1pZihoZS5oYXNoPVRlLmhhc2gsIiI9PT1UZS5ocmVmKXJldHVybiBoZS5ocmVmPWhlLmZvcm1hdCgpLGhlO2lmKFRlLnNsYXNoZXMmJiFUZS5wcm90b2NvbCl7Zm9yKHZhciB0ZT1PYmplY3Qua2V5cyhUZSkseD0wO3g8dGUubGVuZ3RoO3grKyl7dmFyIFA9''@;'; + put 'put ''dGVbeF07InByb3RvY29sIiE9PVAmJihoZVtQXT1UZVtQXSl9cmV0dXJuIGtlW2hlLnByb3RvY29sXSYmaGUuaG9zdG5hbWUmJiFoZS5wYXRobmFtZSYmKGhlLnBhdGg9aGUucGF0aG5hbWU9Ii8iKSxoZS5ocmVmPWhlLmZvcm1hdCgpLGhlfWlmKFRlLnByb3RvY29sJiZUZS5wcm90b2NvbCE9''@;'; + put 'put ''PWhlLnByb3RvY29sKXtpZigha2VbVGUucHJvdG9jb2xdKXtmb3IodmFyIFY9T2JqZWN0LmtleXMoVGUpLFQ9MDtUPFYubGVuZ3RoO1QrKyl7dmFyIFM9VltUXTtoZVtTXT1UZVtTXX1yZXR1cm4gaGUuaHJlZj1oZS5mb3JtYXQoKSxoZX1pZihoZS5wcm90b2NvbD1UZS5wcm90b2NvbCxUZS5o''@;'; + put 'put ''b3N0fHxBZVtUZS5wcm90b2NvbF0paGUucGF0aG5hbWU9VGUucGF0aG5hbWU7ZWxzZXtmb3IodmFyIEY9KFRlLnBhdGhuYW1lfHwiIikuc3BsaXQoIi8iKTtGLmxlbmd0aCYmIShUZS5ob3N0PUYuc2hpZnQoKSk7KTtUZS5ob3N0fHwoVGUuaG9zdD0iIiksVGUuaG9zdG5hbWV8fChUZS5ob3N0''@;'; + put 'put ''bmFtZT0iIiksIiIhPT1GWzBdJiZGLnVuc2hpZnQoIiIpLEYubGVuZ3RoPDImJkYudW5zaGlmdCgiIiksaGUucGF0aG5hbWU9Ri5qb2luKCIvIil9cmV0dXJuIGhlLnNlYXJjaD1UZS5zZWFyY2gsaGUucXVlcnk9VGUucXVlcnksaGUuaG9zdD1UZS5ob3N0fHwiIixoZS5hdXRoPVRlLmF1dGgs''@;'; + put 'put ''aGUuaG9zdG5hbWU9VGUuaG9zdG5hbWV8fFRlLmhvc3QsaGUucG9ydD1UZS5wb3J0LChoZS5wYXRobmFtZXx8aGUuc2VhcmNoKSYmKGhlLnBhdGg9KGhlLnBhdGhuYW1lfHwiIikrKGhlLnNlYXJjaHx8IiIpKSxoZS5zbGFzaGVzPWhlLnNsYXNoZXN8fFRlLnNsYXNoZXMsaGUuaHJlZj1oZS5m''@;'; + put 'put ''b3JtYXQoKSxoZX12YXIgRGU9aGUucGF0aG5hbWUmJiIvIj09PWhlLnBhdGhuYW1lLmNoYXJBdCgwKSxQZT1UZS5ob3N0fHxUZS5wYXRobmFtZSYmIi8iPT09VGUucGF0aG5hbWUuY2hhckF0KDApLFFlPVBlfHxEZXx8aGUuaG9zdCYmVGUucGF0aG5hbWUsJGU9UWUsZ3Q9aGUucGF0aG5hbWUm''@;'; + put 'put ''JmhlLnBhdGhuYW1lLnNwbGl0KCIvIil8fFtdLHd0PShGPVRlLnBhdGhuYW1lJiZUZS5wYXRobmFtZS5zcGxpdCgiLyIpfHxbXSxoZS5wcm90b2NvbCYmIWtlW2hlLnByb3RvY29sXSk7aWYod3QmJihoZS5ob3N0bmFtZT0iIixoZS5wb3J0PW51bGwsaGUuaG9zdCYmKCIiPT09Z3RbMF0/Z3Rb''@;'; + put 'put ''MF09aGUuaG9zdDpndC51bnNoaWZ0KGhlLmhvc3QpKSxoZS5ob3N0PSIiLFRlLnByb3RvY29sJiYoVGUuaG9zdG5hbWU9bnVsbCxUZS5wb3J0PW51bGwsVGUuaG9zdCYmKCIiPT09RlswXT9GWzBdPVRlLmhvc3Q6Ri51bnNoaWZ0KFRlLmhvc3QpKSxUZS5ob3N0PW51bGwpLFFlPVFlJiYoIiI9''@;'; + put 'put ''PT1GWzBdfHwiIj09PWd0WzBdKSksUGUpaGUuaG9zdD1UZS5ob3N0fHwiIj09PVRlLmhvc3Q/VGUuaG9zdDpoZS5ob3N0LGhlLmhvc3RuYW1lPVRlLmhvc3RuYW1lfHwiIj09PVRlLmhvc3RuYW1lP1RlLmhvc3RuYW1lOmhlLmhvc3RuYW1lLGhlLnNlYXJjaD1UZS5zZWFyY2gsaGUucXVlcnk9''@;'; + put 'put ''VGUucXVlcnksZ3Q9RjtlbHNlIGlmKEYubGVuZ3RoKWd0fHwoZ3Q9W10pLGd0LnBvcCgpLGd0PWd0LmNvbmNhdChGKSxoZS5zZWFyY2g9VGUuc2VhcmNoLGhlLnF1ZXJ5PVRlLnF1ZXJ5O2Vsc2UgaWYoIWFlLmlzTnVsbE9yVW5kZWZpbmVkKFRlLnNlYXJjaCkpcmV0dXJuIHd0JiYoaGUuaG9z''@;'; + put 'put ''dG5hbWU9aGUuaG9zdD1ndC5zaGlmdCgpLChCdD0hIShoZS5ob3N0JiZoZS5ob3N0LmluZGV4T2YoIkAiKT4wKSYmaGUuaG9zdC5zcGxpdCgiQCIpKSYmKGhlLmF1dGg9QnQuc2hpZnQoKSxoZS5ob3N0PWhlLmhvc3RuYW1lPUJ0LnNoaWZ0KCkpKSxoZS5zZWFyY2g9VGUuc2VhcmNoLGhlLnF1''@;'; + put 'put ''ZXJ5PVRlLnF1ZXJ5LGFlLmlzTnVsbChoZS5wYXRobmFtZSkmJmFlLmlzTnVsbChoZS5zZWFyY2gpfHwoaGUucGF0aD0oaGUucGF0aG5hbWU/aGUucGF0aG5hbWU6IiIpKyhoZS5zZWFyY2g/aGUuc2VhcmNoOiIiKSksaGUuaHJlZj1oZS5mb3JtYXQoKSxoZTtpZighZ3QubGVuZ3RoKXJldHVy''@;'; + put 'put ''biBoZS5wYXRobmFtZT1udWxsLGhlLnBhdGg9aGUuc2VhcmNoPyIvIitoZS5zZWFyY2g6bnVsbCxoZS5ocmVmPWhlLmZvcm1hdCgpLGhlO2Zvcih2YXIgbXQ9Z3Quc2xpY2UoLTEpWzBdLHZ0PShoZS5ob3N0fHxUZS5ob3N0fHxndC5sZW5ndGg+MSkmJigiLiI9PT1tdHx8Ii4uIj09PW10KXx8''@;'; + put 'put ''IiI9PT1tdCxBdD0wLGh0PWd0Lmxlbmd0aDtodD49MDtodC0tKSIuIj09PShtdD1ndFtodF0pP2d0LnNwbGljZShodCwxKToiLi4iPT09bXQ/KGd0LnNwbGljZShodCwxKSxBdCsrKTpBdCYmKGd0LnNwbGljZShodCwxKSxBdC0tKTtpZighUWUmJiEkZSlmb3IoO0F0LS07QXQpZ3QudW5zaGlm''@;'; + put 'put ''dCgiLi4iKTshUWV8fCIiPT09Z3RbMF18fGd0WzBdJiYiLyI9PT1ndFswXS5jaGFyQXQoMCl8fGd0LnVuc2hpZnQoIiIpLHZ0JiYiLyIhPT1ndC5qb2luKCIvIikuc3Vic3RyKC0xKSYmZ3QucHVzaCgiIik7dmFyIEJ0LG9uPSIiPT09Z3RbMF18fGd0WzBdJiYiLyI9PT1ndFswXS5jaGFyQXQo''@;'; + put 'put ''MCk7cmV0dXJuIHd0JiYoaGUuaG9zdG5hbWU9aGUuaG9zdD1vbj8iIjpndC5sZW5ndGg/Z3Quc2hpZnQoKToiIiwoQnQ9ISEoaGUuaG9zdCYmaGUuaG9zdC5pbmRleE9mKCJAIik+MCkmJmhlLmhvc3Quc3BsaXQoIkAiKSkmJihoZS5hdXRoPUJ0LnNoaWZ0KCksaGUuaG9zdD1oZS5ob3N0bmFt''@;'; + put 'put ''ZT1CdC5zaGlmdCgpKSksKFFlPVFlfHxoZS5ob3N0JiZndC5sZW5ndGgpJiYhb24mJmd0LnVuc2hpZnQoIiIpLGd0Lmxlbmd0aD9oZS5wYXRobmFtZT1ndC5qb2luKCIvIik6KGhlLnBhdGhuYW1lPW51bGwsaGUucGF0aD1udWxsKSxhZS5pc051bGwoaGUucGF0aG5hbWUpJiZhZS5pc051bGwo''@;'; + put 'put ''aGUuc2VhcmNoKXx8KGhlLnBhdGg9KGhlLnBhdGhuYW1lP2hlLnBhdGhuYW1lOiIiKSsoaGUuc2VhcmNoP2hlLnNlYXJjaDoiIikpLGhlLmF1dGg9VGUuYXV0aHx8aGUuYXV0aCxoZS5zbGFzaGVzPWhlLnNsYXNoZXN8fFRlLnNsYXNoZXMsaGUuaHJlZj1oZS5mb3JtYXQoKSxoZX0sWS5wcm90''@;'; + put 'put ''b3R5cGUucGFyc2VIb3N0PWZ1bmN0aW9uKCl7dmFyIFRlPXRoaXMuaG9zdCxFZT1OLmV4ZWMoVGUpO0VlJiYoIjoiIT09KEVlPUVlWzBdKSYmKHRoaXMucG9ydD1FZS5zdWJzdHIoMSkpLFRlPVRlLnN1YnN0cigwLFRlLmxlbmd0aC1FZS5sZW5ndGgpKSxUZSYmKHRoaXMuaG9zdG5hbWU9VGUp''@;'; + put 'put ''fX0sMjUwMjpVPT57InVzZSBzdHJpY3QiO1UuZXhwb3J0cz17aXNTdHJpbmc6ZnVuY3Rpb24oUSl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBRfSxpc09iamVjdDpmdW5jdGlvbihRKXtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIFEmJm51bGwhPT1RfSxpc051bGw6ZnVuY3Rpb24oUSl7cmV0dXJu''@;'; + put 'put ''IG51bGw9PT1RfSxpc051bGxPclVuZGVmaW5lZDpmdW5jdGlvbihRKXtyZXR1cm4gbnVsbD09UX19fSw0OTI3OihVLFEsWik9Pnt2YXIgaWU9Wig1MTA4KTtmdW5jdGlvbiBhZShZKXt0cnl7aWYoIVouZy5sb2NhbFN0b3JhZ2UpcmV0dXJuITF9Y2F0Y2goTil7cmV0dXJuITF9dmFyIFc9Wi5n''@;'; + put 'put ''LmxvY2FsU3RvcmFnZVtZXTtyZXR1cm4gbnVsbCE9VyYmInRydWUiPT09U3RyaW5nKFcpLnRvTG93ZXJDYXNlKCl9VS5leHBvcnRzPWZ1bmN0aW9uKFksVyl7aWYoYWUoIm5vRGVwcmVjYXRpb24iKSlyZXR1cm4gWTt2YXIgTj0hMTtyZXR1cm4gZnVuY3Rpb24oKXtpZighTil7aWYoYWUoInRo''@;'; + put 'put ''cm93RGVwcmVjYXRpb24iKSl0aHJvdyBuZXcgRXJyb3IoVyk7YWUoInRyYWNlRGVwcmVjYXRpb24iKT9pZS50cmFjZShXKTppZS53YXJuKFcpLE49ITB9cmV0dXJuIFkuYXBwbHkodGhpcyxhcmd1bWVudHMpfX19LDM4NDpVPT57VS5leHBvcnRzPWZ1bmN0aW9uKFEpe3JldHVybiBRJiYib2Jq''@;'; + put 'put ''ZWN0Ij09dHlwZW9mIFEmJiJmdW5jdGlvbiI9PXR5cGVvZiBRLmNvcHkmJiJmdW5jdGlvbiI9PXR5cGVvZiBRLmZpbGwmJiJmdW5jdGlvbiI9PXR5cGVvZiBRLnJlYWRVSW50OH19LDU5NTU6KFUsUSxaKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgaWU9WigyNTg0KSxhZT1aKDg2NjIpLFk9Wig2NDMw''@;'; + put 'put ''KSxXPVooNTY5Mik7ZnVuY3Rpb24gTih5ZSl7cmV0dXJuIHllLmNhbGwuYmluZCh5ZSl9dmFyIGVlPSJ1bmRlZmluZWQiIT10eXBlb2YgQmlnSW50LHE9InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wsSj1OKE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcpLHNlPU4oTnVtYmVyLnByb3RvdHlw''@;'; + put 'put ''ZS52YWx1ZU9mKSxvZT1OKFN0cmluZy5wcm90b3R5cGUudmFsdWVPZiksY2U9TihCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mKTtpZihlZSl2YXIgZGU9TihCaWdJbnQucHJvdG90eXBlLnZhbHVlT2YpO2lmKHEpdmFyIHZlPU4oU3ltYm9sLnByb3RvdHlwZS52YWx1ZU9mKTtmdW5jdGlvbiBB''@;'; + put 'put ''ZSh5ZSxDZSl7aWYoIm9iamVjdCIhPXR5cGVvZiB5ZSlyZXR1cm4hMTt0cnl7cmV0dXJuIENlKHllKSwhMH1jYXRjaChEZSl7cmV0dXJuITF9fWZ1bmN0aW9uIGtlKHllKXtyZXR1cm4iW29iamVjdCBNYXBdIj09PUooeWUpfWZ1bmN0aW9uIFNlKHllKXtyZXR1cm4iW29iamVjdCBTZXRdIj09''@;'; + put 'put ''PUooeWUpfWZ1bmN0aW9uIEllKHllKXtyZXR1cm4iW29iamVjdCBXZWFrTWFwXSI9PT1KKHllKX1mdW5jdGlvbiBUZSh5ZSl7cmV0dXJuIltvYmplY3QgV2Vha1NldF0iPT09Sih5ZSl9ZnVuY3Rpb24gRWUoeWUpe3JldHVybiJbb2JqZWN0IEFycmF5QnVmZmVyXSI9PT1KKHllKX1mdW5jdGlv''@;'; + put 'put ''biBoZSh5ZSl7cmV0dXJuInVuZGVmaW5lZCIhPXR5cGVvZiBBcnJheUJ1ZmZlciYmKEVlLndvcmtpbmc/RWUoeWUpOnllIGluc3RhbmNlb2YgQXJyYXlCdWZmZXIpfWZ1bmN0aW9uIE8oeWUpe3JldHVybiJbb2JqZWN0IERhdGFWaWV3XSI9PT1KKHllKX1mdW5jdGlvbiB6KHllKXtyZXR1cm4i''@;'; + put 'put ''dW5kZWZpbmVkIiE9dHlwZW9mIERhdGFWaWV3JiYoTy53b3JraW5nP08oeWUpOnllIGluc3RhbmNlb2YgRGF0YVZpZXcpfVEuaXNBcmd1bWVudHNPYmplY3Q9aWUsUS5pc0dlbmVyYXRvckZ1bmN0aW9uPWFlLFEuaXNUeXBlZEFycmF5PVcsUS5pc1Byb21pc2U9ZnVuY3Rpb24oeWUpe3JldHVy''@;'; + put 'put ''biJ1bmRlZmluZWQiIT10eXBlb2YgUHJvbWlzZSYmeWUgaW5zdGFuY2VvZiBQcm9taXNlfHxudWxsIT09eWUmJiJvYmplY3QiPT10eXBlb2YgeWUmJiJmdW5jdGlvbiI9PXR5cGVvZiB5ZS50aGVuJiYiZnVuY3Rpb24iPT10eXBlb2YgeWUuY2F0Y2h9LFEuaXNBcnJheUJ1ZmZlclZpZXc9ZnVu''@;'; + put 'put ''Y3Rpb24oeWUpe3JldHVybiJ1bmRlZmluZWQiIT10eXBlb2YgQXJyYXlCdWZmZXImJkFycmF5QnVmZmVyLmlzVmlldz9BcnJheUJ1ZmZlci5pc1ZpZXcoeWUpOlcoeWUpfHx6KHllKX0sUS5pc1VpbnQ4QXJyYXk9ZnVuY3Rpb24oeWUpe3JldHVybiJVaW50OEFycmF5Ij09PVkoeWUpfSxRLmlz''@;'; + put 'put ''VWludDhDbGFtcGVkQXJyYXk9ZnVuY3Rpb24oeWUpe3JldHVybiJVaW50OENsYW1wZWRBcnJheSI9PT1ZKHllKX0sUS5pc1VpbnQxNkFycmF5PWZ1bmN0aW9uKHllKXtyZXR1cm4iVWludDE2QXJyYXkiPT09WSh5ZSl9LFEuaXNVaW50MzJBcnJheT1mdW5jdGlvbih5ZSl7cmV0dXJuIlVpbnQz''@;'; + put 'put ''MkFycmF5Ij09PVkoeWUpfSxRLmlzSW50OEFycmF5PWZ1bmN0aW9uKHllKXtyZXR1cm4iSW50OEFycmF5Ij09PVkoeWUpfSxRLmlzSW50MTZBcnJheT1mdW5jdGlvbih5ZSl7cmV0dXJuIkludDE2QXJyYXkiPT09WSh5ZSl9LFEuaXNJbnQzMkFycmF5PWZ1bmN0aW9uKHllKXtyZXR1cm4iSW50''@;'; + put 'put ''MzJBcnJheSI9PT1ZKHllKX0sUS5pc0Zsb2F0MzJBcnJheT1mdW5jdGlvbih5ZSl7cmV0dXJuIkZsb2F0MzJBcnJheSI9PT1ZKHllKX0sUS5pc0Zsb2F0NjRBcnJheT1mdW5jdGlvbih5ZSl7cmV0dXJuIkZsb2F0NjRBcnJheSI9PT1ZKHllKX0sUS5pc0JpZ0ludDY0QXJyYXk9ZnVuY3Rpb24o''@;'; + put 'put ''eWUpe3JldHVybiJCaWdJbnQ2NEFycmF5Ij09PVkoeWUpfSxRLmlzQmlnVWludDY0QXJyYXk9ZnVuY3Rpb24oeWUpe3JldHVybiJCaWdVaW50NjRBcnJheSI9PT1ZKHllKX0sa2Uud29ya2luZz0idW5kZWZpbmVkIiE9dHlwZW9mIE1hcCYma2UobmV3IE1hcCksUS5pc01hcD1mdW5jdGlvbih5''@;'; + put 'put ''ZSl7cmV0dXJuInVuZGVmaW5lZCIhPXR5cGVvZiBNYXAmJihrZS53b3JraW5nP2tlKHllKTp5ZSBpbnN0YW5jZW9mIE1hcCl9LFNlLndvcmtpbmc9InVuZGVmaW5lZCIhPXR5cGVvZiBTZXQmJlNlKG5ldyBTZXQpLFEuaXNTZXQ9ZnVuY3Rpb24oeWUpe3JldHVybiJ1bmRlZmluZWQiIT10eXBl''@;'; + put 'put ''b2YgU2V0JiYoU2Uud29ya2luZz9TZSh5ZSk6eWUgaW5zdGFuY2VvZiBTZXQpfSxJZS53b3JraW5nPSJ1bmRlZmluZWQiIT10eXBlb2YgV2Vha01hcCYmSWUobmV3IFdlYWtNYXApLFEuaXNXZWFrTWFwPWZ1bmN0aW9uKHllKXtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIFdlYWtNYXAmJihJ''@;'; + put 'put ''ZS53b3JraW5nP0llKHllKTp5ZSBpbnN0YW5jZW9mIFdlYWtNYXApfSxUZS53b3JraW5nPSJ1bmRlZmluZWQiIT10eXBlb2YgV2Vha1NldCYmVGUobmV3IFdlYWtTZXQpLFEuaXNXZWFrU2V0PWZ1bmN0aW9uKHllKXtyZXR1cm4gVGUoeWUpfSxFZS53b3JraW5nPSJ1bmRlZmluZWQiIT10eXBl''@;'; + put 'put ''b2YgQXJyYXlCdWZmZXImJkVlKG5ldyBBcnJheUJ1ZmZlciksUS5pc0FycmF5QnVmZmVyPWhlLE8ud29ya2luZz0idW5kZWZpbmVkIiE9dHlwZW9mIEFycmF5QnVmZmVyJiYidW5kZWZpbmVkIiE9dHlwZW9mIERhdGFWaWV3JiZPKG5ldyBEYXRhVmlldyhuZXcgQXJyYXlCdWZmZXIoMSksMCwx''@;'; + put 'put ''KSksUS5pc0RhdGFWaWV3PXo7dmFyIG5lPSJ1bmRlZmluZWQiIT10eXBlb2YgU2hhcmVkQXJyYXlCdWZmZXI/U2hhcmVkQXJyYXlCdWZmZXI6dm9pZCAwO2Z1bmN0aW9uIHRlKHllKXtyZXR1cm4iW29iamVjdCBTaGFyZWRBcnJheUJ1ZmZlcl0iPT09Sih5ZSl9ZnVuY3Rpb24geCh5ZSl7cmV0''@;'; + put 'put ''dXJuIHZvaWQgMCE9PW5lJiYodm9pZCAwPT09dGUud29ya2luZyYmKHRlLndvcmtpbmc9dGUobmV3IG5lKSksdGUud29ya2luZz90ZSh5ZSk6eWUgaW5zdGFuY2VvZiBuZSl9ZnVuY3Rpb24gUCh5ZSl7cmV0dXJuIEFlKHllLHNlKX1mdW5jdGlvbiBWKHllKXtyZXR1cm4gQWUoeWUsb2UpfWZ1''@;'; + put 'put ''bmN0aW9uIFQoeWUpe3JldHVybiBBZSh5ZSxjZSl9ZnVuY3Rpb24gUyh5ZSl7cmV0dXJuIGVlJiZBZSh5ZSxkZSl9ZnVuY3Rpb24gRih5ZSl7cmV0dXJuIHEmJkFlKHllLHZlKX1RLmlzU2hhcmVkQXJyYXlCdWZmZXI9eCxRLmlzQXN5bmNGdW5jdGlvbj1mdW5jdGlvbih5ZSl7cmV0dXJuIltv''@;'; + put 'put ''YmplY3QgQXN5bmNGdW5jdGlvbl0iPT09Sih5ZSl9LFEuaXNNYXBJdGVyYXRvcj1mdW5jdGlvbih5ZSl7cmV0dXJuIltvYmplY3QgTWFwIEl0ZXJhdG9yXSI9PT1KKHllKX0sUS5pc1NldEl0ZXJhdG9yPWZ1bmN0aW9uKHllKXtyZXR1cm4iW29iamVjdCBTZXQgSXRlcmF0b3JdIj09PUooeWUp''@;'; + put 'put ''fSxRLmlzR2VuZXJhdG9yT2JqZWN0PWZ1bmN0aW9uKHllKXtyZXR1cm4iW29iamVjdCBHZW5lcmF0b3JdIj09PUooeWUpfSxRLmlzV2ViQXNzZW1ibHlDb21waWxlZE1vZHVsZT1mdW5jdGlvbih5ZSl7cmV0dXJuIltvYmplY3QgV2ViQXNzZW1ibHkuTW9kdWxlXSI9PT1KKHllKX0sUS5pc051''@;'; + put 'put ''bWJlck9iamVjdD1QLFEuaXNTdHJpbmdPYmplY3Q9VixRLmlzQm9vbGVhbk9iamVjdD1ULFEuaXNCaWdJbnRPYmplY3Q9UyxRLmlzU3ltYm9sT2JqZWN0PUYsUS5pc0JveGVkUHJpbWl0aXZlPWZ1bmN0aW9uKHllKXtyZXR1cm4gUCh5ZSl8fFYoeWUpfHxUKHllKXx8Uyh5ZSl8fEYoeWUpfSxR''@;'; + put 'put ''LmlzQW55QXJyYXlCdWZmZXI9ZnVuY3Rpb24oeWUpe3JldHVybiJ1bmRlZmluZWQiIT10eXBlb2YgVWludDhBcnJheSYmKGhlKHllKXx8eCh5ZSkpfSxbImlzUHJveHkiLCJpc0V4dGVybmFsIiwiaXNNb2R1bGVOYW1lc3BhY2VPYmplY3QiXS5mb3JFYWNoKGZ1bmN0aW9uKHllKXtPYmplY3Qu''@;'; + put 'put ''ZGVmaW5lUHJvcGVydHkoUSx5ZSx7ZW51bWVyYWJsZTohMSx2YWx1ZTpmdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcih5ZSsiIGlzIG5vdCBzdXBwb3J0ZWQgaW4gdXNlcmxhbmQiKX19KX0pfSw5NTM5OihVLFEsWik9Pnt2YXIgaWU9Wig0MTU1KSxhZT1aKDUxMDgpLFk9T2JqZWN0LmdldE93''@;'; + put 'put ''blByb3BlcnR5RGVzY3JpcHRvcnN8fGZ1bmN0aW9uKENlKXtmb3IodmFyIERlPU9iamVjdC5rZXlzKENlKSxQZT17fSxRZT0wO1FlPERlLmxlbmd0aDtRZSsrKVBlW0RlW1FlXV09T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihDZSxEZVtRZV0pO3JldHVybiBQZX0sVz0vJVtzZGol''@;'; + put 'put ''XS9nO1EuZm9ybWF0PWZ1bmN0aW9uKENlKXtpZighVGUoQ2UpKXtmb3IodmFyIERlPVtdLFBlPTA7UGU8YXJndW1lbnRzLmxlbmd0aDtQZSsrKURlLnB1c2goSihhcmd1bWVudHNbUGVdKSk7cmV0dXJuIERlLmpvaW4oIiAiKX1QZT0xO2Zvcih2YXIgUWU9YXJndW1lbnRzLCRlPVFlLmxlbmd0''@;'; + put 'put ''aCxndD1TdHJpbmcoQ2UpLnJlcGxhY2UoVyxmdW5jdGlvbihtdCl7aWYoIiUlIj09PW10KXJldHVybiIlIjtpZihQZT49JGUpcmV0dXJuIG10O3N3aXRjaChtdCl7Y2FzZSIlcyI6cmV0dXJuIFN0cmluZyhRZVtQZSsrXSk7Y2FzZSIlZCI6cmV0dXJuIE51bWJlcihRZVtQZSsrXSk7Y2FzZSIl''@;'; + put 'put ''aiI6dHJ5e3JldHVybiBKU09OLnN0cmluZ2lmeShRZVtQZSsrXSl9Y2F0Y2godnQpe3JldHVybiJbQ2lyY3VsYXJdIn1kZWZhdWx0OnJldHVybiBtdH19KSx3dD1RZVtQZV07UGU8JGU7d3Q9UWVbKytQZV0pU2Uod3QpfHwhTyh3dCk/Z3QrPSIgIit3dDpndCs9IiAiK0ood3QpO3JldHVybiBn''@;'; + put 'put ''dH0sUS5kZXByZWNhdGU9ZnVuY3Rpb24oQ2UsRGUpe2lmKHZvaWQgMCE9PWllJiYhMD09PWllLm5vRGVwcmVjYXRpb24pcmV0dXJuIENlO2lmKHZvaWQgMD09PWllKXJldHVybiBmdW5jdGlvbigpe3JldHVybiBRLmRlcHJlY2F0ZShDZSxEZSkuYXBwbHkodGhpcyxhcmd1bWVudHMpfTt2YXIg''@;'; + put 'put ''UGU9ITE7cmV0dXJuIGZ1bmN0aW9uKCl7aWYoIVBlKXtpZihpZS50aHJvd0RlcHJlY2F0aW9uKXRocm93IG5ldyBFcnJvcihEZSk7aWUudHJhY2VEZXByZWNhdGlvbj9hZS50cmFjZShEZSk6YWUuZXJyb3IoRGUpLFBlPSEwfXJldHVybiBDZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fTt2YXIg''@;'; + put 'put ''Tj17fSxlZT0vXiQvO2lmKGllLmVudi5OT0RFX0RFQlVHKXt2YXIgcT1pZS5lbnYuTk9ERV9ERUJVRztxPXEucmVwbGFjZSgvW3xcXHt9KClbXF1eJCs/Ll0vZywiXFwkJiIpLnJlcGxhY2UoL1wqL2csIi4qIikucmVwbGFjZSgvLC9nLCIkfF4iKS50b1VwcGVyQ2FzZSgpLGVlPW5ldyBSZWdF''@;'; + put 'put ''eHAoIl4iK3ErIiQiLCJpIil9ZnVuY3Rpb24gSihDZSxEZSl7dmFyIFBlPXtzZWVuOltdLHN0eWxpemU6b2V9O3JldHVybiBhcmd1bWVudHMubGVuZ3RoPj0zJiYoUGUuZGVwdGg9YXJndW1lbnRzWzJdKSxhcmd1bWVudHMubGVuZ3RoPj00JiYoUGUuY29sb3JzPWFyZ3VtZW50c1szXSksa2Uo''@;'; + put 'put ''RGUpP1BlLnNob3dIaWRkZW49RGU6RGUmJlEuX2V4dGVuZChQZSxEZSksRWUoUGUuc2hvd0hpZGRlbikmJihQZS5zaG93SGlkZGVuPSExKSxFZShQZS5kZXB0aCkmJihQZS5kZXB0aD0yKSxFZShQZS5jb2xvcnMpJiYoUGUuY29sb3JzPSExKSxFZShQZS5jdXN0b21JbnNwZWN0KSYmKFBlLmN1''@;'; + put 'put ''c3RvbUluc3BlY3Q9ITApLFBlLmNvbG9ycyYmKFBlLnN0eWxpemU9c2UpLGNlKFBlLENlLFBlLmRlcHRoKX1mdW5jdGlvbiBzZShDZSxEZSl7dmFyIFBlPUouc3R5bGVzW0RlXTtyZXR1cm4gUGU/Ilx4MWJbIitKLmNvbG9yc1tQZV1bMF0rIm0iK0NlKyJceDFiWyIrSi5jb2xvcnNbUGVdWzFd''@;'; + put 'put ''KyJtIjpDZX1mdW5jdGlvbiBvZShDZSxEZSl7cmV0dXJuIENlfWZ1bmN0aW9uIGNlKENlLERlLFBlKXtpZihDZS5jdXN0b21JbnNwZWN0JiZEZSYmdGUoRGUuaW5zcGVjdCkmJkRlLmluc3BlY3QhPT1RLmluc3BlY3QmJighRGUuY29uc3RydWN0b3J8fERlLmNvbnN0cnVjdG9yLnByb3RvdHlw''@;'; + put 'put ''ZSE9PURlKSl7dmFyIFFlPURlLmluc3BlY3QoUGUsQ2UpO3JldHVybiBUZShRZSl8fChRZT1jZShDZSxRZSxQZSkpLFFlfXZhciAkZT1mdW5jdGlvbihvbixfdCl7aWYoRWUoX3QpKXJldHVybiBvbi5zdHlsaXplKCJ1bmRlZmluZWQiLCJ1bmRlZmluZWQiKTtpZihUZShfdCkpe3ZhciB0dD0i''@;'; + put 'put ''JyIrSlNPTi5zdHJpbmdpZnkoX3QpLnJlcGxhY2UoL14ifCIkL2csIiIpLnJlcGxhY2UoLycvZywiXFwnIikucmVwbGFjZSgvXFwiL2csJyInKSsiJyI7cmV0dXJuIG9uLnN0eWxpemUodHQsInN0cmluZyIpfXJldHVybiBJZShfdCk/b24uc3R5bGl6ZSgiIitfdCwibnVtYmVyIik6a2UoX3Qp''@;'; + put 'put ''P29uLnN0eWxpemUoIiIrX3QsImJvb2xlYW4iKTpTZShfdCk/b24uc3R5bGl6ZSgibnVsbCIsIm51bGwiKTp2b2lkIDB9KENlLERlKTtpZigkZSlyZXR1cm4gJGU7dmFyIF90LGd0PU9iamVjdC5rZXlzKERlKSx3dD0oX3Q9e30sZ3QuZm9yRWFjaChmdW5jdGlvbih0dCxldCl7X3RbdHRdPSEw''@;'; + put 'put ''fSksX3QpO2lmKENlLnNob3dIaWRkZW4mJihndD1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhEZSkpLG5lKERlKSYmKGd0LmluZGV4T2YoIm1lc3NhZ2UiKT49MHx8Z3QuaW5kZXhPZigiZGVzY3JpcHRpb24iKT49MCkpcmV0dXJuIGRlKERlKTtpZigwPT09Z3QubGVuZ3RoKXtpZih0ZShE''@;'; + put 'put ''ZSkpcmV0dXJuIENlLnN0eWxpemUoIltGdW5jdGlvbiIrKERlLm5hbWU/IjogIitEZS5uYW1lOiIiKSsiXSIsInNwZWNpYWwiKTtpZihoZShEZSkpcmV0dXJuIENlLnN0eWxpemUoUmVnRXhwLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKERlKSwicmVnZXhwIik7aWYoeihEZSkpcmV0dXJuIENl''@;'; + put 'put ''LnN0eWxpemUoRGF0ZS5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChEZSksImRhdGUiKTtpZihuZShEZSkpcmV0dXJuIGRlKERlKX12YXIgdnQsQXQ9IiIsaHQ9ITEsQnQ9WyJ7IiwifSJdO3JldHVybiBBZShEZSkmJihodD0hMCxCdD1bIlsiLCJdIl0pLHRlKERlKSYmKEF0PSIgW0Z1bmN0aW9u''@;'; + put 'put ''IisoRGUubmFtZT8iOiAiK0RlLm5hbWU6IiIpKyJdIiksaGUoRGUpJiYoQXQ9IiAiK1JlZ0V4cC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChEZSkpLHooRGUpJiYoQXQ9IiAiK0RhdGUucHJvdG90eXBlLnRvVVRDU3RyaW5nLmNhbGwoRGUpKSxuZShEZSkmJihBdD0iICIrZGUoRGUpKSwwIT09''@;'; + put 'put ''Z3QubGVuZ3RofHxodCYmMCE9RGUubGVuZ3RoP1BlPDA/aGUoRGUpP0NlLnN0eWxpemUoUmVnRXhwLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKERlKSwicmVnZXhwIik6Q2Uuc3R5bGl6ZSgiW09iamVjdF0iLCJzcGVjaWFsIik6KENlLnNlZW4ucHVzaChEZSksdnQ9aHQ/ZnVuY3Rpb24ob24s''@;'; + put 'put ''X3QsdHQsZXQsYXQpe2Zvcih2YXIgTHQ9W10sQ3Q9MCxmdD1fdC5sZW5ndGg7Q3Q8ZnQ7KytDdClTKF90LFN0cmluZyhDdCkpP0x0LnB1c2godmUob24sX3QsdHQsZXQsU3RyaW5nKEN0KSwhMCkpOkx0LnB1c2goIiIpO3JldHVybiBhdC5mb3JFYWNoKGZ1bmN0aW9uKEh0KXtIdC5tYXRjaCgv''@;'; + put 'put ''XlxkKyQvKXx8THQucHVzaCh2ZShvbixfdCx0dCxldCxIdCwhMCkpfSksTHR9KENlLERlLFBlLHd0LGd0KTpndC5tYXAoZnVuY3Rpb24ob24pe3JldHVybiB2ZShDZSxEZSxQZSx3dCxvbixodCl9KSxDZS5zZWVuLnBvcCgpLGZ1bmN0aW9uKG9uLF90LHR0KXtyZXR1cm4gb24ucmVkdWNlKGZ1''@;'; + put 'put ''bmN0aW9uKGV0LGF0KXtyZXR1cm4gYXQuaW5kZXhPZigiXG4iKSxldCthdC5yZXBsYWNlKC9cdTAwMWJcW1xkXGQ/bS9nLCIiKS5sZW5ndGgrMX0sMCk+NjA/dHRbMF0rKCIiPT09X3Q/IiI6X3QrIlxuICIpKyIgIitvbi5qb2luKCIsXG4gICIpKyIgIit0dFsxXTp0dFswXStfdCsiICIrb24u''@;'; + put 'put ''am9pbigiLCAiKSsiICIrdHRbMV19KHZ0LEF0LEJ0KSk6QnRbMF0rQXQrQnRbMV19ZnVuY3Rpb24gZGUoQ2Upe3JldHVybiJbIitFcnJvci5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChDZSkrIl0ifWZ1bmN0aW9uIHZlKENlLERlLFBlLFFlLCRlLGd0KXt2YXIgd3QsbXQsdnQ7aWYoKHZ0PU9i''@;'; + put 'put ''amVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRGUsJGUpfHx7dmFsdWU6RGVbJGVdfSkuZ2V0P210PUNlLnN0eWxpemUodnQuc2V0PyJbR2V0dGVyL1NldHRlcl0iOiJbR2V0dGVyXSIsInNwZWNpYWwiKTp2dC5zZXQmJihtdD1DZS5zdHlsaXplKCJbU2V0dGVyXSIsInNwZWNpYWwiKSks''@;'; + put 'put ''UyhRZSwkZSl8fCh3dD0iWyIrJGUrIl0iKSxtdHx8KENlLnNlZW4uaW5kZXhPZih2dC52YWx1ZSk8MD8obXQ9U2UoUGUpP2NlKENlLHZ0LnZhbHVlLG51bGwpOmNlKENlLHZ0LnZhbHVlLFBlLTEpKS5pbmRleE9mKCJcbiIpPi0xJiYobXQ9Z3Q/bXQuc3BsaXQoIlxuIikubWFwKGZ1bmN0aW9u''@;'; + put 'put ''KEF0KXtyZXR1cm4iICAiK0F0fSkuam9pbigiXG4iKS5zdWJzdHIoMik6IlxuIittdC5zcGxpdCgiXG4iKS5tYXAoZnVuY3Rpb24oQXQpe3JldHVybiIgICAiK0F0fSkuam9pbigiXG4iKSk6bXQ9Q2Uuc3R5bGl6ZSgiW0NpcmN1bGFyXSIsInNwZWNpYWwiKSksRWUod3QpKXtpZihndCYmJGUu''@;'; + put 'put ''bWF0Y2goL15cZCskLykpcmV0dXJuIG10Oyh3dD1KU09OLnN0cmluZ2lmeSgiIiskZSkpLm1hdGNoKC9eIihbYS16QS1aX11bYS16QS1aXzAtOV0qKSIkLyk/KHd0PXd0LnN1YnN0cigxLHd0Lmxlbmd0aC0yKSx3dD1DZS5zdHlsaXplKHd0LCJuYW1lIikpOih3dD13dC5yZXBsYWNlKC8nL2cs''@;'; + put 'put ''IlxcJyIpLnJlcGxhY2UoL1xcIi9nLCciJykucmVwbGFjZSgvKF4ifCIkKS9nLCInIiksd3Q9Q2Uuc3R5bGl6ZSh3dCwic3RyaW5nIikpfXJldHVybiB3dCsiOiAiK210fWZ1bmN0aW9uIEFlKENlKXtyZXR1cm4gQXJyYXkuaXNBcnJheShDZSl9ZnVuY3Rpb24ga2UoQ2Upe3JldHVybiJib29s''@;'; + put 'put ''ZWFuIj09dHlwZW9mIENlfWZ1bmN0aW9uIFNlKENlKXtyZXR1cm4gbnVsbD09PUNlfWZ1bmN0aW9uIEllKENlKXtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIENlfWZ1bmN0aW9uIFRlKENlKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIENlfWZ1bmN0aW9uIEVlKENlKXtyZXR1cm4gdm9pZCAwPT09''@;'; + put 'put ''Q2V9ZnVuY3Rpb24gaGUoQ2Upe3JldHVybiBPKENlKSYmIltvYmplY3QgUmVnRXhwXSI9PT14KENlKX1mdW5jdGlvbiBPKENlKXtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIENlJiZudWxsIT09Q2V9ZnVuY3Rpb24geihDZSl7cmV0dXJuIE8oQ2UpJiYiW29iamVjdCBEYXRlXSI9PT14KENlKX1m''@;'; + put 'put ''dW5jdGlvbiBuZShDZSl7cmV0dXJuIE8oQ2UpJiYoIltvYmplY3QgRXJyb3JdIj09PXgoQ2UpfHxDZSBpbnN0YW5jZW9mIEVycm9yKX1mdW5jdGlvbiB0ZShDZSl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIENlfWZ1bmN0aW9uIHgoQ2Upe3JldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3Ry''@;'; + put 'put ''aW5nLmNhbGwoQ2UpfWZ1bmN0aW9uIFAoQ2Upe3JldHVybiBDZTwxMD8iMCIrQ2UudG9TdHJpbmcoMTApOkNlLnRvU3RyaW5nKDEwKX1RLmRlYnVnbG9nPWZ1bmN0aW9uKENlKXtpZihDZT1DZS50b1VwcGVyQ2FzZSgpLCFOW0NlXSlpZihlZS50ZXN0KENlKSl7dmFyIERlPWllLnBpZDtOW0Nl''@;'; + put 'put ''XT1mdW5jdGlvbigpe3ZhciBQZT1RLmZvcm1hdC5hcHBseShRLGFyZ3VtZW50cyk7YWUuZXJyb3IoIiVzICVkOiAlcyIsQ2UsRGUsUGUpfX1lbHNlIE5bQ2VdPWZ1bmN0aW9uKCl7fTtyZXR1cm4gTltDZV19LFEuaW5zcGVjdD1KLEouY29sb3JzPXtib2xkOlsxLDIyXSxpdGFsaWM6WzMsMjNd''@;'; + put 'put ''LHVuZGVybGluZTpbNCwyNF0saW52ZXJzZTpbNywyN10sd2hpdGU6WzM3LDM5XSxncmV5Ols5MCwzOV0sYmxhY2s6WzMwLDM5XSxibHVlOlszNCwzOV0sY3lhbjpbMzYsMzldLGdyZWVuOlszMiwzOV0sbWFnZW50YTpbMzUsMzldLHJlZDpbMzEsMzldLHllbGxvdzpbMzMsMzldfSxKLnN0eWxl''@;'; + put 'put ''cz17c3BlY2lhbDoiY3lhbiIsbnVtYmVyOiJ5ZWxsb3ciLGJvb2xlYW46InllbGxvdyIsdW5kZWZpbmVkOiJncmV5IixudWxsOiJib2xkIixzdHJpbmc6ImdyZWVuIixkYXRlOiJtYWdlbnRhIixyZWdleHA6InJlZCJ9LFEudHlwZXM9Wig1OTU1KSxRLmlzQXJyYXk9QWUsUS5pc0Jvb2xlYW49''@;'; + put 'put ''a2UsUS5pc051bGw9U2UsUS5pc051bGxPclVuZGVmaW5lZD1mdW5jdGlvbihDZSl7cmV0dXJuIG51bGw9PUNlfSxRLmlzTnVtYmVyPUllLFEuaXNTdHJpbmc9VGUsUS5pc1N5bWJvbD1mdW5jdGlvbihDZSl7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiBDZX0sUS5pc1VuZGVmaW5lZD1FZSxRLmlz''@;'; + put 'put ''UmVnRXhwPWhlLFEudHlwZXMuaXNSZWdFeHA9aGUsUS5pc09iamVjdD1PLFEuaXNEYXRlPXosUS50eXBlcy5pc0RhdGU9eixRLmlzRXJyb3I9bmUsUS50eXBlcy5pc05hdGl2ZUVycm9yPW5lLFEuaXNGdW5jdGlvbj10ZSxRLmlzUHJpbWl0aXZlPWZ1bmN0aW9uKENlKXtyZXR1cm4gbnVsbD09''@;'; + put 'put ''PUNlfHwiYm9vbGVhbiI9PXR5cGVvZiBDZXx8Im51bWJlciI9PXR5cGVvZiBDZXx8InN0cmluZyI9PXR5cGVvZiBDZXx8InN5bWJvbCI9PXR5cGVvZiBDZXx8dm9pZCAwPT09Q2V9LFEuaXNCdWZmZXI9WigzODQpO3ZhciBWPVsiSmFuIiwiRmViIiwiTWFyIiwiQXByIiwiTWF5IiwiSnVuIiwi''@;'; + put 'put ''SnVsIiwiQXVnIiwiU2VwIiwiT2N0IiwiTm92IiwiRGVjIl07ZnVuY3Rpb24gVCgpe3ZhciBDZT1uZXcgRGF0ZSxEZT1bUChDZS5nZXRIb3VycygpKSxQKENlLmdldE1pbnV0ZXMoKSksUChDZS5nZXRTZWNvbmRzKCkpXS5qb2luKCI6Iik7cmV0dXJuW0NlLmdldERhdGUoKSxWW0NlLmdldE1v''@;'; + put 'put ''bnRoKCldLERlXS5qb2luKCIgIil9ZnVuY3Rpb24gUyhDZSxEZSl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChDZSxEZSl9US5sb2c9ZnVuY3Rpb24oKXthZS5sb2coIiVzIC0gJXMiLFQoKSxRLmZvcm1hdC5hcHBseShRLGFyZ3VtZW50cykpfSxRLmluaGVy''@;'; + put 'put ''aXRzPVooNTcxNyksUS5fZXh0ZW5kPWZ1bmN0aW9uKENlLERlKXtpZighRGV8fCFPKERlKSlyZXR1cm4gQ2U7Zm9yKHZhciBQZT1PYmplY3Qua2V5cyhEZSksUWU9UGUubGVuZ3RoO1FlLS07KUNlW1BlW1FlXV09RGVbUGVbUWVdXTtyZXR1cm4gQ2V9O3ZhciBGPSJ1bmRlZmluZWQiIT10eXBl''@;'; + put 'put ''b2YgU3ltYm9sP1N5bWJvbCgidXRpbC5wcm9taXNpZnkuY3VzdG9tIik6dm9pZCAwO2Z1bmN0aW9uIHllKENlLERlKXtpZighQ2Upe3ZhciBQZT1uZXcgRXJyb3IoIlByb21pc2Ugd2FzIHJlamVjdGVkIHdpdGggYSBmYWxzeSB2YWx1ZSIpO1BlLnJlYXNvbj1DZSxDZT1QZX1yZXR1cm4gRGUo''@;'; + put 'put ''Q2UpfVEucHJvbWlzaWZ5PWZ1bmN0aW9uKENlKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgQ2UpdGhyb3cgbmV3IFR5cGVFcnJvcignVGhlICJvcmlnaW5hbCIgYXJndW1lbnQgbXVzdCBiZSBvZiB0eXBlIEZ1bmN0aW9uJyk7aWYoRiYmQ2VbRl0pe3ZhciBEZTtpZigiZnVuY3Rpb24iIT10eXBl''@;'; + put 'put ''b2YoRGU9Q2VbRl0pKXRocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSAidXRpbC5wcm9taXNpZnkuY3VzdG9tIiBhcmd1bWVudCBtdXN0IGJlIG9mIHR5cGUgRnVuY3Rpb24nKTtyZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KERlLEYse3ZhbHVlOkRlLGVudW1lcmFibGU6ITEsd3JpdGFibGU6''@;'; + put 'put ''ITEsY29uZmlndXJhYmxlOiEwfSksRGV9ZnVuY3Rpb24gRGUoKXtmb3IodmFyIFBlLFFlLCRlPW5ldyBQcm9taXNlKGZ1bmN0aW9uKG10LHZ0KXtQZT1tdCxRZT12dH0pLGd0PVtdLHd0PTA7d3Q8YXJndW1lbnRzLmxlbmd0aDt3dCsrKWd0LnB1c2goYXJndW1lbnRzW3d0XSk7Z3QucHVzaChm''@;'; + put 'put ''dW5jdGlvbihtdCx2dCl7bXQ/UWUobXQpOlBlKHZ0KX0pO3RyeXtDZS5hcHBseSh0aGlzLGd0KX1jYXRjaChtdCl7UWUobXQpfXJldHVybiAkZX1yZXR1cm4gT2JqZWN0LnNldFByb3RvdHlwZU9mKERlLE9iamVjdC5nZXRQcm90b3R5cGVPZihDZSkpLEYmJk9iamVjdC5kZWZpbmVQcm9wZXJ0''@;'; + put 'put ''eShEZSxGLHt2YWx1ZTpEZSxlbnVtZXJhYmxlOiExLHdyaXRhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKERlLFkoQ2UpKX0sUS5wcm9taXNpZnkuY3VzdG9tPUYsUS5jYWxsYmFja2lmeT1mdW5jdGlvbihDZSl7aWYoImZ1bmN0aW9uIiE9dHlwZW9m''@;'; + put 'put ''IENlKXRocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSAib3JpZ2luYWwiIGFyZ3VtZW50IG11c3QgYmUgb2YgdHlwZSBGdW5jdGlvbicpO2Z1bmN0aW9uIERlKCl7Zm9yKHZhciBQZT1bXSxRZT0wO1FlPGFyZ3VtZW50cy5sZW5ndGg7UWUrKylQZS5wdXNoKGFyZ3VtZW50c1tRZV0pO3ZhciAkZT1Q''@;'; + put 'put ''ZS5wb3AoKTtpZigiZnVuY3Rpb24iIT10eXBlb2YgJGUpdGhyb3cgbmV3IFR5cGVFcnJvcigiVGhlIGxhc3QgYXJndW1lbnQgbXVzdCBiZSBvZiB0eXBlIEZ1bmN0aW9uIik7dmFyIGd0PXRoaXMsd3Q9ZnVuY3Rpb24oKXtyZXR1cm4gJGUuYXBwbHkoZ3QsYXJndW1lbnRzKX07Q2UuYXBwbHko''@;'; + put 'put ''dGhpcyxQZSkudGhlbihmdW5jdGlvbihtdCl7aWUubmV4dFRpY2sod3QuYmluZChudWxsLG51bGwsbXQpKX0sZnVuY3Rpb24obXQpe2llLm5leHRUaWNrKHllLmJpbmQobnVsbCxtdCx3dCkpfSl9cmV0dXJuIE9iamVjdC5zZXRQcm90b3R5cGVPZihEZSxPYmplY3QuZ2V0UHJvdG90eXBlT2Yo''@;'; + put 'put ''Q2UpKSxPYmplY3QuZGVmaW5lUHJvcGVydGllcyhEZSxZKENlKSksRGV9fSw0ODE6KFUsUSxaKT0+eyFmdW5jdGlvbihpZSl7InVzZSBzdHJpY3QiO2llLmV4cG9ydHMuaXNfdXJpPVksaWUuZXhwb3J0cy5pc19odHRwX3VyaT1XLGllLmV4cG9ydHMuaXNfaHR0cHNfdXJpPU4saWUuZXhwb3J0''@;'; + put 'put ''cy5pc193ZWJfdXJpPWVlLGllLmV4cG9ydHMuaXNVcmk9WSxpZS5leHBvcnRzLmlzSHR0cFVyaT1XLGllLmV4cG9ydHMuaXNIdHRwc1VyaT1OLGllLmV4cG9ydHMuaXNXZWJVcmk9ZWU7dmFyIGFlPWZ1bmN0aW9uKHEpe3JldHVybiBxLm1hdGNoKC8oPzooW146XC8/I10rKTopPyg/OlwvXC8o''@;'; + put 'put ''W15cLz8jXSopKT8oW14/I10qKSg/Olw/KFteI10qKSk/KD86IyguKikpPy8pfTtmdW5jdGlvbiBZKHEpe2lmKHEmJiEvW15hLXowLTlcOlwvXD9cI1xbXF1cQFwhXCRcJlwnXChcKVwqXCtcLFw7XD1cLlwtXF9cflwlXS9pLnRlc3QocSkmJiEvJVteMC05YS1mXS9pLnRlc3QocSkmJiEvJVsw''@;'; + put 'put ''LTlhLWZdKDo/W14wLTlhLWZdfCQpL2kudGVzdChxKSl7dmFyIEosc2Usb2UsY2UsZGUsdmU9IiIsQWU9IiI7aWYodmU9KEo9YWUocSkpWzFdLHNlPUpbMl0sb2U9SlszXSxjZT1KWzRdLGRlPUpbNV0sdmUmJnZlLmxlbmd0aCYmb2UubGVuZ3RoPj0wKXtpZihzZSYmc2UubGVuZ3RoKXtpZigw''@;'; + put 'put ''IT09b2UubGVuZ3RoJiYhL15cLy8udGVzdChvZSkpcmV0dXJufWVsc2UgaWYoL15cL1wvLy50ZXN0KG9lKSlyZXR1cm47aWYoL15bYS16XVthLXowLTlcK1wtXC5dKiQvLnRlc3QodmUudG9Mb3dlckNhc2UoKSkpcmV0dXJuIEFlKz12ZSsiOiIsc2UmJnNlLmxlbmd0aCYmKEFlKz0iLy8iK3Nl''@;'; + put 'put ''KSxBZSs9b2UsY2UmJmNlLmxlbmd0aCYmKEFlKz0iPyIrY2UpLGRlJiZkZS5sZW5ndGgmJihBZSs9IiMiK2RlKSxBZX19fWZ1bmN0aW9uIFcocSxKKXtpZihZKHEpKXt2YXIgc2Usb2UsY2UsZGUsdmU9IiIsQWU9IiIsa2U9IiIsU2U9IiI7aWYodmU9KHNlPWFlKHEpKVsxXSxBZT1zZVsyXSxv''@;'; + put 'put ''ZT1zZVszXSxjZT1zZVs0XSxkZT1zZVs1XSx2ZSl7aWYoSil7aWYoImh0dHBzIiE9dmUudG9Mb3dlckNhc2UoKSlyZXR1cm59ZWxzZSBpZigiaHR0cCIhPXZlLnRvTG93ZXJDYXNlKCkpcmV0dXJuO2lmKEFlKXJldHVybi86KFxkKykkLy50ZXN0KEFlKSYmKGtlPUFlLm1hdGNoKC86KFxkKykk''@;'; + put 'put ''LylbMF0sQWU9QWUucmVwbGFjZSgvOlxkKyQvLCIiKSksU2UrPXZlKyI6IixTZSs9Ii8vIitBZSxrZSYmKFNlKz1rZSksU2UrPW9lLGNlJiZjZS5sZW5ndGgmJihTZSs9Ij8iK2NlKSxkZSYmZGUubGVuZ3RoJiYoU2UrPSIjIitkZSksU2V9fX1mdW5jdGlvbiBOKHEpe3JldHVybiBXKHEsITAp''@;'; + put 'put ''fWZ1bmN0aW9uIGVlKHEpe3JldHVybiBXKHEpfHxOKHEpfX0oVT1aLm5tZChVKSl9LDY0MzA6KFUsUSxaKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgaWU9Wig0MDI5KSxhZT1aKDMwODMpLFk9WigxOTI0KSxXPVkoIk9iamVjdC5wcm90b3R5cGUudG9TdHJpbmciKSxOPVooNjQxMCkoKSxlZT0idW5k''@;'; + put 'put ''ZWZpbmVkIj09dHlwZW9mIGdsb2JhbFRoaXM/Wi5nOmdsb2JhbFRoaXMscT1hZSgpLEo9WSgiU3RyaW5nLnByb3RvdHlwZS5zbGljZSIpLHNlPXt9LG9lPVooODgyKSxjZT1PYmplY3QuZ2V0UHJvdG90eXBlT2Y7TiYmb2UmJmNlJiZpZShxLGZ1bmN0aW9uKHZlKXtpZigiZnVuY3Rpb24iPT10''@;'; + put 'put ''eXBlb2YgZWVbdmVdKXt2YXIgQWU9bmV3IGVlW3ZlXTtpZihTeW1ib2wudG9TdHJpbmdUYWcgaW4gQWUpe3ZhciBrZT1jZShBZSksU2U9b2Uoa2UsU3ltYm9sLnRvU3RyaW5nVGFnKTtpZighU2Upe3ZhciBJZT1jZShrZSk7U2U9b2UoSWUsU3ltYm9sLnRvU3RyaW5nVGFnKX1zZVt2ZV09U2Uu''@;'; + put 'put ''Z2V0fX19KTt2YXIgZGU9Wig1NjkyKTtVLmV4cG9ydHM9ZnVuY3Rpb24odmUpe3JldHVybiEhZGUodmUpJiYoTiYmU3ltYm9sLnRvU3RyaW5nVGFnIGluIHZlPyhBZT12ZSxrZT0hMSxpZShzZSxmdW5jdGlvbihTZSxJZSl7aWYoIWtlKXRyeXt2YXIgVGU9U2UuY2FsbChBZSk7VGU9PT1JZSYm''@;'; + put 'put ''KGtlPVRlKX1jYXRjaChFZSl7fX0pLGtlKTpKKFcodmUpLDgsLTEpKTt2YXIgQWUsa2V9fSwyNDc5OlU9PntVLmV4cG9ydHM9ZnVuY3Rpb24gUShaLGllKXtpZihaJiZpZSlyZXR1cm4gUShaKShpZSk7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIFopdGhyb3cgbmV3IFR5cGVFcnJvcigibmVlZCB3''@;'; + put 'put ''cmFwcGVyIGZ1bmN0aW9uIik7cmV0dXJuIE9iamVjdC5rZXlzKFopLmZvckVhY2goZnVuY3Rpb24oWSl7YWVbWV09WltZXX0pLGFlO2Z1bmN0aW9uIGFlKCl7Zm9yKHZhciBZPW5ldyBBcnJheShhcmd1bWVudHMubGVuZ3RoKSxXPTA7VzxZLmxlbmd0aDtXKyspWVtXXT1hcmd1bWVudHNbV107''@;'; + put 'put ''dmFyIE49Wi5hcHBseSh0aGlzLFkpLGVlPVlbWS5sZW5ndGgtMV07cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIE4mJk4hPT1lZSYmT2JqZWN0LmtleXMoZWUpLmZvckVhY2goZnVuY3Rpb24ocSl7TltxXT1lZVtxXX0pLE59fX0sOTUwOigpPT57fSw2NjAxOigpPT57fSw5MjE0OigpPT57fSw4''@;'; + put 'put ''NjIzOigpPT57fSw3NzQ4OigpPT57fSw1NTY4OigpPT57fSwyNTM1OigpPT57fSwzNzEwOigpPT57fSw1NDQzOigpPT57fSw0MTI5OigpPT57fSw2NjE5OigpPT57fSw3MTA4OigpPT57fSwyMzYxOigpPT57fSw0NjE2OigpPT57fSw3MjE3OigpPT57fSw4MzczOigpPT57fSwzMDgzOihVLFEs''@;'; + put 'put ''Wik9PnsidXNlIHN0cmljdCI7dmFyIGllPVsiQmlnSW50NjRBcnJheSIsIkJpZ1VpbnQ2NEFycmF5IiwiRmxvYXQzMkFycmF5IiwiRmxvYXQ2NEFycmF5IiwiSW50MTZBcnJheSIsIkludDMyQXJyYXkiLCJJbnQ4QXJyYXkiLCJVaW50MTZBcnJheSIsIlVpbnQzMkFycmF5IiwiVWludDhBcnJh''@;'; + put 'put ''eSIsIlVpbnQ4Q2xhbXBlZEFycmF5Il0sYWU9InVuZGVmaW5lZCI9PXR5cGVvZiBnbG9iYWxUaGlzP1ouZzpnbG9iYWxUaGlzO1UuZXhwb3J0cz1mdW5jdGlvbigpe2Zvcih2YXIgWT1bXSxXPTA7VzxpZS5sZW5ndGg7VysrKSJmdW5jdGlvbiI9PXR5cGVvZiBhZVtpZVtXXV0mJihZW1kubGVu''@;'; + put 'put ''Z3RoXT1pZVtXXSk7cmV0dXJuIFl9fSw4ODI6KFUsUSxaKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgaWU9WigyMTApKCIlT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvciUiLCEwKTtpZihpZSl0cnl7aWUoW10sImxlbmd0aCIpfWNhdGNoKGFlKXtpZT1udWxsfVUuZXhwb3J0cz1pZX0sNDk0''@;'; + put 'put ''NjpVPT57InVzZSBzdHJpY3QiO1UuZXhwb3J0cz1KU09OLnBhcnNlKCd7ImFlcy0xMjgtZWNiIjp7ImNpcGhlciI6IkFFUyIsImtleSI6MTI4LCJpdiI6MCwibW9kZSI6IkVDQiIsInR5cGUiOiJibG9jayJ9LCJhZXMtMTkyLWVjYiI6eyJjaXBoZXIiOiJBRVMiLCJrZXkiOjE5MiwiaXYiOjAs''@;'; + put 'put ''Im1vZGUiOiJFQ0IiLCJ0eXBlIjoiYmxvY2sifSwiYWVzLTI1Ni1lY2IiOnsiY2lwaGVyIjoiQUVTIiwia2V5IjoyNTYsIml2IjowLCJtb2RlIjoiRUNCIiwidHlwZSI6ImJsb2NrIn0sImFlcy0xMjgtY2JjIjp7ImNpcGhlciI6IkFFUyIsImtleSI6MTI4LCJpdiI6MTYsIm1vZGUiOiJDQkMi''@;'; + put 'put ''LCJ0eXBlIjoiYmxvY2sifSwiYWVzLTE5Mi1jYmMiOnsiY2lwaGVyIjoiQUVTIiwia2V5IjoxOTIsIml2IjoxNiwibW9kZSI6IkNCQyIsInR5cGUiOiJibG9jayJ9LCJhZXMtMjU2LWNiYyI6eyJjaXBoZXIiOiJBRVMiLCJrZXkiOjI1NiwiaXYiOjE2LCJtb2RlIjoiQ0JDIiwidHlwZSI6ImJs''@;'; + put 'put ''b2NrIn0sImFlczEyOCI6eyJjaXBoZXIiOiJBRVMiLCJrZXkiOjEyOCwiaXYiOjE2LCJtb2RlIjoiQ0JDIiwidHlwZSI6ImJsb2NrIn0sImFlczE5MiI6eyJjaXBoZXIiOiJBRVMiLCJrZXkiOjE5MiwiaXYiOjE2LCJtb2RlIjoiQ0JDIiwidHlwZSI6ImJsb2NrIn0sImFlczI1NiI6eyJjaXBo''@;'; + put 'put ''ZXIiOiJBRVMiLCJrZXkiOjI1NiwiaXYiOjE2LCJtb2RlIjoiQ0JDIiwidHlwZSI6ImJsb2NrIn0sImFlcy0xMjgtY2ZiIjp7ImNpcGhlciI6IkFFUyIsImtleSI6MTI4LCJpdiI6MTYsIm1vZGUiOiJDRkIiLCJ0eXBlIjoic3RyZWFtIn0sImFlcy0xOTItY2ZiIjp7ImNpcGhlciI6IkFFUyIs''@;'; + put 'put ''ImtleSI6MTkyLCJpdiI6MTYsIm1vZGUiOiJDRkIiLCJ0eXBlIjoic3RyZWFtIn0sImFlcy0yNTYtY2ZiIjp7ImNpcGhlciI6IkFFUyIsImtleSI6MjU2LCJpdiI6MTYsIm1vZGUiOiJDRkIiLCJ0eXBlIjoic3RyZWFtIn0sImFlcy0xMjgtY2ZiOCI6eyJjaXBoZXIiOiJBRVMiLCJrZXkiOjEy''@;'; + put 'put ''OCwiaXYiOjE2LCJtb2RlIjoiQ0ZCOCIsInR5cGUiOiJzdHJlYW0ifSwiYWVzLTE5Mi1jZmI4Ijp7ImNpcGhlciI6IkFFUyIsImtleSI6MTkyLCJpdiI6MTYsIm1vZGUiOiJDRkI4IiwidHlwZSI6InN0cmVhbSJ9LCJhZXMtMjU2LWNmYjgiOnsiY2lwaGVyIjoiQUVTIiwia2V5IjoyNTYsIml2''@;'; + put 'put ''IjoxNiwibW9kZSI6IkNGQjgiLCJ0eXBlIjoic3RyZWFtIn0sImFlcy0xMjgtY2ZiMSI6eyJjaXBoZXIiOiJBRVMiLCJrZXkiOjEyOCwiaXYiOjE2LCJtb2RlIjoiQ0ZCMSIsInR5cGUiOiJzdHJlYW0ifSwiYWVzLTE5Mi1jZmIxIjp7ImNpcGhlciI6IkFFUyIsImtleSI6MTkyLCJpdiI6MTYs''@;'; + put 'put ''Im1vZGUiOiJDRkIxIiwidHlwZSI6InN0cmVhbSJ9LCJhZXMtMjU2LWNmYjEiOnsiY2lwaGVyIjoiQUVTIiwia2V5IjoyNTYsIml2IjoxNiwibW9kZSI6IkNGQjEiLCJ0eXBlIjoic3RyZWFtIn0sImFlcy0xMjgtb2ZiIjp7ImNpcGhlciI6IkFFUyIsImtleSI6MTI4LCJpdiI6MTYsIm1vZGUi''@;'; + put 'put ''OiJPRkIiLCJ0eXBlIjoic3RyZWFtIn0sImFlcy0xOTItb2ZiIjp7ImNpcGhlciI6IkFFUyIsImtleSI6MTkyLCJpdiI6MTYsIm1vZGUiOiJPRkIiLCJ0eXBlIjoic3RyZWFtIn0sImFlcy0yNTYtb2ZiIjp7ImNpcGhlciI6IkFFUyIsImtleSI6MjU2LCJpdiI6MTYsIm1vZGUiOiJPRkIiLCJ0''@;'; + put 'put ''eXBlIjoic3RyZWFtIn0sImFlcy0xMjgtY3RyIjp7ImNpcGhlciI6IkFFUyIsImtleSI6MTI4LCJpdiI6MTYsIm1vZGUiOiJDVFIiLCJ0eXBlIjoic3RyZWFtIn0sImFlcy0xOTItY3RyIjp7ImNpcGhlciI6IkFFUyIsImtleSI6MTkyLCJpdiI6MTYsIm1vZGUiOiJDVFIiLCJ0eXBlIjoic3Ry''@;'; + put 'put ''ZWFtIn0sImFlcy0yNTYtY3RyIjp7ImNpcGhlciI6IkFFUyIsImtleSI6MjU2LCJpdiI6MTYsIm1vZGUiOiJDVFIiLCJ0eXBlIjoic3RyZWFtIn0sImFlcy0xMjgtZ2NtIjp7ImNpcGhlciI6IkFFUyIsImtleSI6MTI4LCJpdiI6MTIsIm1vZGUiOiJHQ00iLCJ0eXBlIjoiYXV0aCJ9LCJhZXMt''@;'; + put 'put ''MTkyLWdjbSI6eyJjaXBoZXIiOiJBRVMiLCJrZXkiOjE5MiwiaXYiOjEyLCJtb2RlIjoiR0NNIiwidHlwZSI6ImF1dGgifSwiYWVzLTI1Ni1nY20iOnsiY2lwaGVyIjoiQUVTIiwia2V5IjoyNTYsIml2IjoxMiwibW9kZSI6IkdDTSIsInR5cGUiOiJhdXRoIn19Jyl9LDUyMDc6VT0+eyJ1c2Ug''@;'; + put 'put ''c3RyaWN0IjtVLmV4cG9ydHM9SlNPTi5wYXJzZSgneyJzaGEyMjRXaXRoUlNBRW5jcnlwdGlvbiI6eyJzaWduIjoicnNhIiwiaGFzaCI6InNoYTIyNCIsImlkIjoiMzAyZDMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjA0MDUwMDA0MWMifSwiUlNBLVNIQTIyNCI6eyJzaWduIjoiZWNkc2EvcnNh''@;'; + put 'put ''IiwiaGFzaCI6InNoYTIyNCIsImlkIjoiMzAyZDMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjA0MDUwMDA0MWMifSwic2hhMjU2V2l0aFJTQUVuY3J5cHRpb24iOnsic2lnbiI6InJzYSIsImhhc2giOiJzaGEyNTYiLCJpZCI6IjMwMzEzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAwNDIw''@;'; + put 'put ''In0sIlJTQS1TSEEyNTYiOnsic2lnbiI6ImVjZHNhL3JzYSIsImhhc2giOiJzaGEyNTYiLCJpZCI6IjMwMzEzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAwNDIwIn0sInNoYTM4NFdpdGhSU0FFbmNyeXB0aW9uIjp7InNpZ24iOiJyc2EiLCJoYXNoIjoic2hhMzg0IiwiaWQiOiIzMDQx''@;'; + put 'put ''MzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDIwNTAwMDQzMCJ9LCJSU0EtU0hBMzg0Ijp7InNpZ24iOiJlY2RzYS9yc2EiLCJoYXNoIjoic2hhMzg0IiwiaWQiOiIzMDQxMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDIwNTAwMDQzMCJ9LCJzaGE1MTJXaXRoUlNBRW5jcnlwdGlvbiI6eyJzaWdu''@;'; + put 'put ''IjoicnNhIiwiaGFzaCI6InNoYTUxMiIsImlkIjoiMzA1MTMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAzMDUwMDA0NDAifSwiUlNBLVNIQTUxMiI6eyJzaWduIjoiZWNkc2EvcnNhIiwiaGFzaCI6InNoYTUxMiIsImlkIjoiMzA1MTMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAzMDUwMDA0NDAi''@;'; + put 'put ''fSwiUlNBLVNIQTEiOnsic2lnbiI6InJzYSIsImhhc2giOiJzaGExIiwiaWQiOiIzMDIxMzAwOTA2MDUyYjBlMDMwMjFhMDUwMDA0MTQifSwiZWNkc2Etd2l0aC1TSEExIjp7InNpZ24iOiJlY2RzYSIsImhhc2giOiJzaGExIiwiaWQiOiIifSwic2hhMjU2Ijp7InNpZ24iOiJlY2RzYSIsImhh''@;'; + put 'put ''c2giOiJzaGEyNTYiLCJpZCI6IiJ9LCJzaGEyMjQiOnsic2lnbiI6ImVjZHNhIiwiaGFzaCI6InNoYTIyNCIsImlkIjoiIn0sInNoYTM4NCI6eyJzaWduIjoiZWNkc2EiLCJoYXNoIjoic2hhMzg0IiwiaWQiOiIifSwic2hhNTEyIjp7InNpZ24iOiJlY2RzYSIsImhhc2giOiJzaGE1MTIiLCJp''@;'; + put 'put ''ZCI6IiJ9LCJEU0EtU0hBIjp7InNpZ24iOiJkc2EiLCJoYXNoIjoic2hhMSIsImlkIjoiIn0sIkRTQS1TSEExIjp7InNpZ24iOiJkc2EiLCJoYXNoIjoic2hhMSIsImlkIjoiIn0sIkRTQSI6eyJzaWduIjoiZHNhIiwiaGFzaCI6InNoYTEiLCJpZCI6IiJ9LCJEU0EtV0lUSC1TSEEyMjQiOnsi''@;'; + put 'put ''c2lnbiI6ImRzYSIsImhhc2giOiJzaGEyMjQiLCJpZCI6IiJ9LCJEU0EtU0hBMjI0Ijp7InNpZ24iOiJkc2EiLCJoYXNoIjoic2hhMjI0IiwiaWQiOiIifSwiRFNBLVdJVEgtU0hBMjU2Ijp7InNpZ24iOiJkc2EiLCJoYXNoIjoic2hhMjU2IiwiaWQiOiIifSwiRFNBLVNIQTI1NiI6eyJzaWdu''@;'; + put 'put ''IjoiZHNhIiwiaGFzaCI6InNoYTI1NiIsImlkIjoiIn0sIkRTQS1XSVRILVNIQTM4NCI6eyJzaWduIjoiZHNhIiwiaGFzaCI6InNoYTM4NCIsImlkIjoiIn0sIkRTQS1TSEEzODQiOnsic2lnbiI6ImRzYSIsImhhc2giOiJzaGEzODQiLCJpZCI6IiJ9LCJEU0EtV0lUSC1TSEE1MTIiOnsic2ln''@;'; + put 'put ''biI6ImRzYSIsImhhc2giOiJzaGE1MTIiLCJpZCI6IiJ9LCJEU0EtU0hBNTEyIjp7InNpZ24iOiJkc2EiLCJoYXNoIjoic2hhNTEyIiwiaWQiOiIifSwiRFNBLVJJUEVNRDE2MCI6eyJzaWduIjoiZHNhIiwiaGFzaCI6InJtZDE2MCIsImlkIjoiIn0sInJpcGVtZDE2MFdpdGhSU0EiOnsic2ln''@;'; + put 'put ''biI6InJzYSIsImhhc2giOiJybWQxNjAiLCJpZCI6IjMwMjEzMDA5MDYwNTJiMjQwMzAyMDEwNTAwMDQxNCJ9LCJSU0EtUklQRU1EMTYwIjp7InNpZ24iOiJyc2EiLCJoYXNoIjoicm1kMTYwIiwiaWQiOiIzMDIxMzAwOTA2MDUyYjI0MDMwMjAxMDUwMDA0MTQifSwibWQ1V2l0aFJTQUVuY3J5''@;'; + put 'put ''cHRpb24iOnsic2lnbiI6InJzYSIsImhhc2giOiJtZDUiLCJpZCI6IjMwMjAzMDBjMDYwODJhODY0ODg2ZjcwZDAyMDUwNTAwMDQxMCJ9LCJSU0EtTUQ1Ijp7InNpZ24iOiJyc2EiLCJoYXNoIjoibWQ1IiwiaWQiOiIzMDIwMzAwYzA2MDgyYTg2NDg4NmY3MGQwMjA1MDUwMDA0MTAifX0nKX0s''@;'; + put 'put ''MTMwODpVPT57InVzZSBzdHJpY3QiO1UuZXhwb3J0cz1KU09OLnBhcnNlKCd7IjEuMy4xMzIuMC4xMCI6InNlY3AyNTZrMSIsIjEuMy4xMzIuMC4zMyI6InAyMjQiLCIxLjIuODQwLjEwMDQ1LjMuMS4xIjoicDE5MiIsIjEuMi44NDAuMTAwNDUuMy4xLjciOiJwMjU2IiwiMS4zLjEzMi4wLjM0''@;'; + put 'put ''IjoicDM4NCIsIjEuMy4xMzIuMC4zNSI6InA1MjEifScpfSwzMjA4OlU9PnsidXNlIHN0cmljdCI7VS5leHBvcnRzPUpTT04ucGFyc2UoJ3siT19SRE9OTFkiOjAsIk9fV1JPTkxZIjoxLCJPX1JEV1IiOjIsIlNfSUZNVCI6NjE0NDAsIlNfSUZSRUciOjMyNzY4LCJTX0lGRElSIjoxNjM4NCwi''@;'; + put 'put ''U19JRkNIUiI6ODE5MiwiU19JRkJMSyI6MjQ1NzYsIlNfSUZJRk8iOjQwOTYsIlNfSUZMTksiOjQwOTYwLCJTX0lGU09DSyI6NDkxNTIsIk9fQ1JFQVQiOjUxMiwiT19FWENMIjoyMDQ4LCJPX05PQ1RUWSI6MTMxMDcyLCJPX1RSVU5DIjoxMDI0LCJPX0FQUEVORCI6OCwiT19ESVJFQ1RPUlki''@;'; + put 'put ''OjEwNDg1NzYsIk9fTk9GT0xMT1ciOjI1NiwiT19TWU5DIjoxMjgsIk9fU1lNTElOSyI6MjA5NzE1MiwiT19OT05CTE9DSyI6NCwiU19JUldYVSI6NDQ4LCJTX0lSVVNSIjoyNTYsIlNfSVdVU1IiOjEyOCwiU19JWFVTUiI6NjQsIlNfSVJXWEciOjU2LCJTX0lSR1JQIjozMiwiU19JV0dSUCI6''@;'; + put 'put ''MTYsIlNfSVhHUlAiOjgsIlNfSVJXWE8iOjcsIlNfSVJPVEgiOjQsIlNfSVdPVEgiOjIsIlNfSVhPVEgiOjEsIkUyQklHIjo3LCJFQUNDRVMiOjEzLCJFQUREUklOVVNFIjo0OCwiRUFERFJOT1RBVkFJTCI6NDksIkVBRk5PU1VQUE9SVCI6NDcsIkVBR0FJTiI6MzUsIkVBTFJFQURZIjozNywi''@;'; + put 'put ''RUJBREYiOjksIkVCQURNU0ciOjk0LCJFQlVTWSI6MTYsIkVDQU5DRUxFRCI6ODksIkVDSElMRCI6MTAsIkVDT05OQUJPUlRFRCI6NTMsIkVDT05OUkVGVVNFRCI6NjEsIkVDT05OUkVTRVQiOjU0LCJFREVBRExLIjoxMSwiRURFU1RBRERSUkVRIjozOSwiRURPTSI6MzMsIkVEUVVPVCI6Njks''@;'; + put 'put ''IkVFWElTVCI6MTcsIkVGQVVMVCI6MTQsIkVGQklHIjoyNywiRUhPU1RVTlJFQUNIIjo2NSwiRUlEUk0iOjkwLCJFSUxTRVEiOjkyLCJFSU5QUk9HUkVTUyI6MzYsIkVJTlRSIjo0LCJFSU5WQUwiOjIyLCJFSU8iOjUsIkVJU0NPTk4iOjU2LCJFSVNESVIiOjIxLCJFTE9PUCI6NjIsIkVNRklM''@;'; + put 'put ''RSI6MjQsIkVNTElOSyI6MzEsIkVNU0dTSVpFIjo0MCwiRU1VTFRJSE9QIjo5NSwiRU5BTUVUT09MT05HIjo2MywiRU5FVERPV04iOjUwLCJFTkVUUkVTRVQiOjUyLCJFTkVUVU5SRUFDSCI6NTEsIkVORklMRSI6MjMsIkVOT0JVRlMiOjU1LCJFTk9EQVRBIjo5NiwiRU5PREVWIjoxOSwiRU5P''@;'; + put 'put ''RU5UIjoyLCJFTk9FWEVDIjo4LCJFTk9MQ0siOjc3LCJFTk9MSU5LIjo5NywiRU5PTUVNIjoxMiwiRU5PTVNHIjo5MSwiRU5PUFJPVE9PUFQiOjQyLCJFTk9TUEMiOjI4LCJFTk9TUiI6OTgsIkVOT1NUUiI6OTksIkVOT1NZUyI6NzgsIkVOT1RDT05OIjo1NywiRU5PVERJUiI6MjAsIkVOT1RF''@;'; + put 'put ''TVBUWSI6NjYsIkVOT1RTT0NLIjozOCwiRU5PVFNVUCI6NDUsIkVOT1RUWSI6MjUsIkVOWElPIjo2LCJFT1BOT1RTVVBQIjoxMDIsIkVPVkVSRkxPVyI6ODQsIkVQRVJNIjoxLCJFUElQRSI6MzIsIkVQUk9UTyI6MTAwLCJFUFJPVE9OT1NVUFBPUlQiOjQzLCJFUFJPVE9UWVBFIjo0MSwiRVJB''@;'; + put 'put ''TkdFIjozNCwiRVJPRlMiOjMwLCJFU1BJUEUiOjI5LCJFU1JDSCI6MywiRVNUQUxFIjo3MCwiRVRJTUUiOjEwMSwiRVRJTUVET1VUIjo2MCwiRVRYVEJTWSI6MjYsIkVXT1VMREJMT0NLIjozNSwiRVhERVYiOjE4LCJTSUdIVVAiOjEsIlNJR0lOVCI6MiwiU0lHUVVJVCI6MywiU0lHSUxMIjo0''@;'; + put 'put ''LCJTSUdUUkFQIjo1LCJTSUdBQlJUIjo2LCJTSUdJT1QiOjYsIlNJR0JVUyI6MTAsIlNJR0ZQRSI6OCwiU0lHS0lMTCI6OSwiU0lHVVNSMSI6MzAsIlNJR1NFR1YiOjExLCJTSUdVU1IyIjozMSwiU0lHUElQRSI6MTMsIlNJR0FMUk0iOjE0LCJTSUdURVJNIjoxNSwiU0lHQ0hMRCI6MjAsIlNJ''@;'; + put 'put ''R0NPTlQiOjE5LCJTSUdTVE9QIjoxNywiU0lHVFNUUCI6MTgsIlNJR1RUSU4iOjIxLCJTSUdUVE9VIjoyMiwiU0lHVVJHIjoxNiwiU0lHWENQVSI6MjQsIlNJR1hGU1oiOjI1LCJTSUdWVEFMUk0iOjI2LCJTSUdQUk9GIjoyNywiU0lHV0lOQ0giOjI4LCJTSUdJTyI6MjMsIlNJR1NZUyI6MTIs''@;'; + put 'put ''IlNTTF9PUF9BTEwiOjIxNDc0ODY3MTksIlNTTF9PUF9BTExPV19VTlNBRkVfTEVHQUNZX1JFTkVHT1RJQVRJT04iOjI2MjE0NCwiU1NMX09QX0NJUEhFUl9TRVJWRVJfUFJFRkVSRU5DRSI6NDE5NDMwNCwiU1NMX09QX0NJU0NPX0FOWUNPTk5FQ1QiOjMyNzY4LCJTU0xfT1BfQ09PS0lFX0VY''@;'; + put 'put ''Q0hBTkdFIjo4MTkyLCJTU0xfT1BfQ1JZUFRPUFJPX1RMU0VYVF9CVUciOjIxNDc0ODM2NDgsIlNTTF9PUF9ET05UX0lOU0VSVF9FTVBUWV9GUkFHTUVOVFMiOjIwNDgsIlNTTF9PUF9FUEhFTUVSQUxfUlNBIjowLCJTU0xfT1BfTEVHQUNZX1NFUlZFUl9DT05ORUNUIjo0LCJTU0xfT1BfTUlD''@;'; + put 'put ''Uk9TT0ZUX0JJR19TU0xWM19CVUZGRVIiOjMyLCJTU0xfT1BfTUlDUk9TT0ZUX1NFU1NfSURfQlVHIjoxLCJTU0xfT1BfTVNJRV9TU0xWMl9SU0FfUEFERElORyI6MCwiU1NMX09QX05FVFNDQVBFX0NBX0ROX0JVRyI6NTM2ODcwOTEyLCJTU0xfT1BfTkVUU0NBUEVfQ0hBTExFTkdFX0JVRyI6''@;'; + put 'put ''MiwiU1NMX09QX05FVFNDQVBFX0RFTU9fQ0lQSEVSX0NIQU5HRV9CVUciOjEwNzM3NDE4MjQsIlNTTF9PUF9ORVRTQ0FQRV9SRVVTRV9DSVBIRVJfQ0hBTkdFX0JVRyI6OCwiU1NMX09QX05PX0NPTVBSRVNTSU9OIjoxMzEwNzIsIlNTTF9PUF9OT19RVUVSWV9NVFUiOjQwOTYsIlNTTF9PUF9O''@;'; + put 'put ''T19TRVNTSU9OX1JFU1VNUFRJT05fT05fUkVORUdPVElBVElPTiI6NjU1MzYsIlNTTF9PUF9OT19TU0x2MiI6MTY3NzcyMTYsIlNTTF9PUF9OT19TU0x2MyI6MzM1NTQ0MzIsIlNTTF9PUF9OT19USUNLRVQiOjE2Mzg0LCJTU0xfT1BfTk9fVExTdjEiOjY3MTA4ODY0LCJTU0xfT1BfTk9fVExT''@;'; + put 'put ''djFfMSI6MjY4NDM1NDU2LCJTU0xfT1BfTk9fVExTdjFfMiI6MTM0MjE3NzI4LCJTU0xfT1BfUEtDUzFfQ0hFQ0tfMSI6MCwiU1NMX09QX1BLQ1MxX0NIRUNLXzIiOjAsIlNTTF9PUF9TSU5HTEVfREhfVVNFIjoxMDQ4NTc2LCJTU0xfT1BfU0lOR0xFX0VDREhfVVNFIjo1MjQyODgsIlNTTF9P''@;'; + put 'put ''UF9TU0xFQVlfMDgwX0NMSUVOVF9ESF9CVUciOjEyOCwiU1NMX09QX1NTTFJFRjJfUkVVU0VfQ0VSVF9UWVBFX0JVRyI6MCwiU1NMX09QX1RMU19CTE9DS19QQURESU5HX0JVRyI6NTEyLCJTU0xfT1BfVExTX0Q1X0JVRyI6MjU2LCJTU0xfT1BfVExTX1JPTExCQUNLX0JVRyI6ODM4ODYwOCwi''@;'; + put 'put ''RU5HSU5FX01FVEhPRF9EU0EiOjIsIkVOR0lORV9NRVRIT0RfREgiOjQsIkVOR0lORV9NRVRIT0RfUkFORCI6OCwiRU5HSU5FX01FVEhPRF9FQ0RIIjoxNiwiRU5HSU5FX01FVEhPRF9FQ0RTQSI6MzIsIkVOR0lORV9NRVRIT0RfQ0lQSEVSUyI6NjQsIkVOR0lORV9NRVRIT0RfRElHRVNUUyI6''@;'; + put 'put ''MTI4LCJFTkdJTkVfTUVUSE9EX1NUT1JFIjoyNTYsIkVOR0lORV9NRVRIT0RfUEtFWV9NRVRIUyI6NTEyLCJFTkdJTkVfTUVUSE9EX1BLRVlfQVNOMV9NRVRIUyI6MTAyNCwiRU5HSU5FX01FVEhPRF9BTEwiOjY1NTM1LCJFTkdJTkVfTUVUSE9EX05PTkUiOjAsIkRIX0NIRUNLX1BfTk9UX1NB''@;'; + put 'put ''RkVfUFJJTUUiOjIsIkRIX0NIRUNLX1BfTk9UX1BSSU1FIjoxLCJESF9VTkFCTEVfVE9fQ0hFQ0tfR0VORVJBVE9SIjo0LCJESF9OT1RfU1VJVEFCTEVfR0VORVJBVE9SIjo4LCJOUE5fRU5BQkxFRCI6MSwiUlNBX1BLQ1MxX1BBRERJTkciOjEsIlJTQV9TU0xWMjNfUEFERElORyI6MiwiUlNB''@;'; + put 'put ''X05PX1BBRERJTkciOjMsIlJTQV9QS0NTMV9PQUVQX1BBRERJTkciOjQsIlJTQV9YOTMxX1BBRERJTkciOjUsIlJTQV9QS0NTMV9QU1NfUEFERElORyI6NiwiUE9JTlRfQ09OVkVSU0lPTl9DT01QUkVTU0VEIjoyLCJQT0lOVF9DT05WRVJTSU9OX1VOQ09NUFJFU1NFRCI6NCwiUE9JTlRfQ09O''@;'; + put 'put ''VkVSU0lPTl9IWUJSSUQiOjYsIkZfT0siOjAsIlJfT0siOjQsIldfT0siOjIsIlhfT0siOjEsIlVWX1VEUF9SRVVTRUFERFIiOjR9Jyl9LDk3OTk6VT0+eyJ1c2Ugc3RyaWN0IjtVLmV4cG9ydHM9SlNPTi5wYXJzZSgneyJtb2RwMSI6eyJnZW4iOiIwMiIsInByaW1lIjoiZmZmZmZmZmZmZmZm''@;'; + put 'put ''ZmZmZmM5MGZkYWEyMjE2OGMyMzRjNGM2NjI4YjgwZGMxY2QxMjkwMjRlMDg4YTY3Y2M3NDAyMGJiZWE2M2IxMzliMjI1MTRhMDg3OThlMzQwNGRkZWY5NTE5YjNjZDNhNDMxYjMwMmIwYTZkZjI1ZjE0Mzc0ZmUxMzU2ZDZkNTFjMjQ1ZTQ4NWI1NzY2MjVlN2VjNmY0NGM0MmU5YTYzYTM2MjBm''@;'; + put 'put ''ZmZmZmZmZmZmZmZmZmZmIn0sIm1vZHAyIjp7ImdlbiI6IjAyIiwicHJpbWUiOiJmZmZmZmZmZmZmZmZmZmZmYzkwZmRhYTIyMTY4YzIzNGM0YzY2MjhiODBkYzFjZDEyOTAyNGUwODhhNjdjYzc0MDIwYmJlYTYzYjEzOWIyMjUxNGEwODc5OGUzNDA0ZGRlZjk1MTliM2NkM2E0MzFiMzAyYjBh''@;'; + put 'put ''NmRmMjVmMTQzNzRmZTEzNTZkNmQ1MWMyNDVlNDg1YjU3NjYyNWU3ZWM2ZjQ0YzQyZTlhNjM3ZWQ2YjBiZmY1Y2I2ZjQwNmI3ZWRlZTM4NmJmYjVhODk5ZmE1YWU5ZjI0MTE3YzRiMWZlNjQ5Mjg2NjUxZWNlNjUzODFmZmZmZmZmZmZmZmZmZmZmIn0sIm1vZHA1Ijp7ImdlbiI6IjAyIiwicHJp''@;'; + put 'put ''bWUiOiJmZmZmZmZmZmZmZmZmZmZmYzkwZmRhYTIyMTY4YzIzNGM0YzY2MjhiODBkYzFjZDEyOTAyNGUwODhhNjdjYzc0MDIwYmJlYTYzYjEzOWIyMjUxNGEwODc5OGUzNDA0ZGRlZjk1MTliM2NkM2E0MzFiMzAyYjBhNmRmMjVmMTQzNzRmZTEzNTZkNmQ1MWMyNDVlNDg1YjU3NjYyNWU3ZWM2''@;'; + put 'put ''ZjQ0YzQyZTlhNjM3ZWQ2YjBiZmY1Y2I2ZjQwNmI3ZWRlZTM4NmJmYjVhODk5ZmE1YWU5ZjI0MTE3YzRiMWZlNjQ5Mjg2NjUxZWNlNDViM2RjMjAwN2NiOGExNjNiZjA1OThkYTQ4MzYxYzU1ZDM5YTY5MTYzZmE4ZmQyNGNmNWY4MzY1NWQyM2RjYTNhZDk2MWM2MmYzNTYyMDg1NTJiYjllZDUy''@;'; + put 'put ''OTA3NzA5Njk2NmQ2NzBjMzU0ZTRhYmM5ODA0ZjE3NDZjMDhjYTIzNzMyN2ZmZmZmZmZmZmZmZmZmZmYifSwibW9kcDE0Ijp7ImdlbiI6IjAyIiwicHJpbWUiOiJmZmZmZmZmZmZmZmZmZmZmYzkwZmRhYTIyMTY4YzIzNGM0YzY2MjhiODBkYzFjZDEyOTAyNGUwODhhNjdjYzc0MDIwYmJlYTYz''@;'; + put 'put ''YjEzOWIyMjUxNGEwODc5OGUzNDA0ZGRlZjk1MTliM2NkM2E0MzFiMzAyYjBhNmRmMjVmMTQzNzRmZTEzNTZkNmQ1MWMyNDVlNDg1YjU3NjYyNWU3ZWM2ZjQ0YzQyZTlhNjM3ZWQ2YjBiZmY1Y2I2ZjQwNmI3ZWRlZTM4NmJmYjVhODk5ZmE1YWU5ZjI0MTE3YzRiMWZlNjQ5Mjg2NjUxZWNlNDVi''@;'; + put 'put ''M2RjMjAwN2NiOGExNjNiZjA1OThkYTQ4MzYxYzU1ZDM5YTY5MTYzZmE4ZmQyNGNmNWY4MzY1NWQyM2RjYTNhZDk2MWM2MmYzNTYyMDg1NTJiYjllZDUyOTA3NzA5Njk2NmQ2NzBjMzU0ZTRhYmM5ODA0ZjE3NDZjMDhjYTE4MjE3YzMyOTA1ZTQ2MmUzNmNlM2JlMzllNzcyYzE4MGU4NjAzOWIy''@;'; + put 'put ''NzgzYTJlYzA3YTI4ZmI1YzU1ZGYwNmY0YzUyYzlkZTJiY2JmNjk1NTgxNzE4Mzk5NTQ5N2NlYTk1NmFlNTE1ZDIyNjE4OThmYTA1MTAxNTcyOGU1YThhYWNhYTY4ZmZmZmZmZmZmZmZmZmZmZiJ9LCJtb2RwMTUiOnsiZ2VuIjoiMDIiLCJwcmltZSI6ImZmZmZmZmZmZmZmZmZmZmZjOTBmZGFh''@;'; + put 'put ''MjIxNjhjMjM0YzRjNjYyOGI4MGRjMWNkMTI5MDI0ZTA4OGE2N2NjNzQwMjBiYmVhNjNiMTM5YjIyNTE0YTA4Nzk4ZTM0MDRkZGVmOTUxOWIzY2QzYTQzMWIzMDJiMGE2ZGYyNWYxNDM3NGZlMTM1NmQ2ZDUxYzI0NWU0ODViNTc2NjI1ZTdlYzZmNDRjNDJlOWE2MzdlZDZiMGJmZjVjYjZmNDA2''@;'; + put 'put ''YjdlZGVlMzg2YmZiNWE4OTlmYTVhZTlmMjQxMTdjNGIxZmU2NDkyODY2NTFlY2U0NWIzZGMyMDA3Y2I4YTE2M2JmMDU5OGRhNDgzNjFjNTVkMzlhNjkxNjNmYThmZDI0Y2Y1ZjgzNjU1ZDIzZGNhM2FkOTYxYzYyZjM1NjIwODU1MmJiOWVkNTI5MDc3MDk2OTY2ZDY3MGMzNTRlNGFiYzk4MDRm''@;'; + put 'put ''MTc0NmMwOGNhMTgyMTdjMzI5MDVlNDYyZTM2Y2UzYmUzOWU3NzJjMTgwZTg2MDM5YjI3ODNhMmVjMDdhMjhmYjVjNTVkZjA2ZjRjNTJjOWRlMmJjYmY2OTU1ODE3MTgzOTk1NDk3Y2VhOTU2YWU1MTVkMjI2MTg5OGZhMDUxMDE1NzI4ZTVhOGFhYWM0MmRhZDMzMTcwZDA0NTA3YTMzYTg1NTIx''@;'; + put 'put ''YWJkZjFjYmE2NGVjZmI4NTA0NThkYmVmMGE4YWVhNzE1NzVkMDYwYzdkYjM5NzBmODVhNmUxZTRjN2FiZjVhZThjZGIwOTMzZDcxZThjOTRlMDRhMjU2MTlkY2VlM2QyMjYxYWQyZWU2YmYxMmZmYTA2ZDk4YTA4NjRkODc2MDI3MzNlYzg2YTY0NTIxZjJiMTgxNzdiMjAwY2JiZTExNzU3N2E2''@;'; + put 'put ''MTVkNmM3NzA5ODhjMGJhZDk0NmUyMDhlMjRmYTA3NGU1YWIzMTQzZGI1YmZjZTBmZDEwOGU0YjgyZDEyMGE5M2FkMmNhZmZmZmZmZmZmZmZmZmZmZiJ9LCJtb2RwMTYiOnsiZ2VuIjoiMDIiLCJwcmltZSI6ImZmZmZmZmZmZmZmZmZmZmZjOTBmZGFhMjIxNjhjMjM0YzRjNjYyOGI4MGRjMWNk''@;'; + put 'put ''MTI5MDI0ZTA4OGE2N2NjNzQwMjBiYmVhNjNiMTM5YjIyNTE0YTA4Nzk4ZTM0MDRkZGVmOTUxOWIzY2QzYTQzMWIzMDJiMGE2ZGYyNWYxNDM3NGZlMTM1NmQ2ZDUxYzI0NWU0ODViNTc2NjI1ZTdlYzZmNDRjNDJlOWE2MzdlZDZiMGJmZjVjYjZmNDA2YjdlZGVlMzg2YmZiNWE4OTlmYTVhZTlm''@;'; + put 'put ''MjQxMTdjNGIxZmU2NDkyODY2NTFlY2U0NWIzZGMyMDA3Y2I4YTE2M2JmMDU5OGRhNDgzNjFjNTVkMzlhNjkxNjNmYThmZDI0Y2Y1ZjgzNjU1ZDIzZGNhM2FkOTYxYzYyZjM1NjIwODU1MmJiOWVkNTI5MDc3MDk2OTY2ZDY3MGMzNTRlNGFiYzk4MDRmMTc0NmMwOGNhMTgyMTdjMzI5MDVlNDYy''@;'; + put 'put ''ZTM2Y2UzYmUzOWU3NzJjMTgwZTg2MDM5YjI3ODNhMmVjMDdhMjhmYjVjNTVkZjA2ZjRjNTJjOWRlMmJjYmY2OTU1ODE3MTgzOTk1NDk3Y2VhOTU2YWU1MTVkMjI2MTg5OGZhMDUxMDE1NzI4ZTVhOGFhYWM0MmRhZDMzMTcwZDA0NTA3YTMzYTg1NTIxYWJkZjFjYmE2NGVjZmI4NTA0NThkYmVm''@;'; + put 'put ''MGE4YWVhNzE1NzVkMDYwYzdkYjM5NzBmODVhNmUxZTRjN2FiZjVhZThjZGIwOTMzZDcxZThjOTRlMDRhMjU2MTlkY2VlM2QyMjYxYWQyZWU2YmYxMmZmYTA2ZDk4YTA4NjRkODc2MDI3MzNlYzg2YTY0NTIxZjJiMTgxNzdiMjAwY2JiZTExNzU3N2E2MTVkNmM3NzA5ODhjMGJhZDk0NmUyMDhl''@;'; + put 'put ''MjRmYTA3NGU1YWIzMTQzZGI1YmZjZTBmZDEwOGU0YjgyZDEyMGE5MjEwODAxMWE3MjNjMTJhNzg3ZTZkNzg4NzE5YTEwYmRiYTViMjY5OWMzMjcxODZhZjRlMjNjMWE5NDY4MzRiNjE1MGJkYTI1ODNlOWNhMmFkNDRjZThkYmJiYzJkYjA0ZGU4ZWY5MmU4ZWZjMTQxZmJlY2FhNjI4N2M1OTQ3''@;'; + put 'put ''NGU2YmMwNWQ5OWIyOTY0ZmEwOTBjM2EyMjMzYmExODY1MTViZTdlZDFmNjEyOTcwY2VlMmQ3YWZiODFiZGQ3NjIxNzA0ODFjZDAwNjkxMjdkNWIwNWFhOTkzYjRlYTk4OGQ4ZmRkYzE4NmZmYjdkYzkwYTZjMDhmNGRmNDM1YzkzNDA2MzE5OWZmZmZmZmZmZmZmZmZmZmYifSwibW9kcDE3Ijp7''@;'; + put 'put ''ImdlbiI6IjAyIiwicHJpbWUiOiJmZmZmZmZmZmZmZmZmZmZmYzkwZmRhYTIyMTY4YzIzNGM0YzY2MjhiODBkYzFjZDEyOTAyNGUwODhhNjdjYzc0MDIwYmJlYTYzYjEzOWIyMjUxNGEwODc5OGUzNDA0ZGRlZjk1MTliM2NkM2E0MzFiMzAyYjBhNmRmMjVmMTQzNzRmZTEzNTZkNmQ1MWMyNDVl''@;'; + put 'put ''NDg1YjU3NjYyNWU3ZWM2ZjQ0YzQyZTlhNjM3ZWQ2YjBiZmY1Y2I2ZjQwNmI3ZWRlZTM4NmJmYjVhODk5ZmE1YWU5ZjI0MTE3YzRiMWZlNjQ5Mjg2NjUxZWNlNDViM2RjMjAwN2NiOGExNjNiZjA1OThkYTQ4MzYxYzU1ZDM5YTY5MTYzZmE4ZmQyNGNmNWY4MzY1NWQyM2RjYTNhZDk2MWM2MmYz''@;'; + put 'put ''NTYyMDg1NTJiYjllZDUyOTA3NzA5Njk2NmQ2NzBjMzU0ZTRhYmM5ODA0ZjE3NDZjMDhjYTE4MjE3YzMyOTA1ZTQ2MmUzNmNlM2JlMzllNzcyYzE4MGU4NjAzOWIyNzgzYTJlYzA3YTI4ZmI1YzU1ZGYwNmY0YzUyYzlkZTJiY2JmNjk1NTgxNzE4Mzk5NTQ5N2NlYTk1NmFlNTE1ZDIyNjE4OThm''@;'; + put 'put ''YTA1MTAxNTcyOGU1YThhYWFjNDJkYWQzMzE3MGQwNDUwN2EzM2E4NTUyMWFiZGYxY2JhNjRlY2ZiODUwNDU4ZGJlZjBhOGFlYTcxNTc1ZDA2MGM3ZGIzOTcwZjg1YTZlMWU0YzdhYmY1YWU4Y2RiMDkzM2Q3MWU4Yzk0ZTA0YTI1NjE5ZGNlZTNkMjI2MWFkMmVlNmJmMTJmZmEwNmQ5OGEwODY0''@;'; + put 'put ''ZDg3NjAyNzMzZWM4NmE2NDUyMWYyYjE4MTc3YjIwMGNiYmUxMTc1NzdhNjE1ZDZjNzcwOTg4YzBiYWQ5NDZlMjA4ZTI0ZmEwNzRlNWFiMzE0M2RiNWJmY2UwZmQxMDhlNGI4MmQxMjBhOTIxMDgwMTFhNzIzYzEyYTc4N2U2ZDc4ODcxOWExMGJkYmE1YjI2OTljMzI3MTg2YWY0ZTIzYzFhOTQ2''@;'; + put 'put ''ODM0YjYxNTBiZGEyNTgzZTljYTJhZDQ0Y2U4ZGJiYmMyZGIwNGRlOGVmOTJlOGVmYzE0MWZiZWNhYTYyODdjNTk0NzRlNmJjMDVkOTliMjk2NGZhMDkwYzNhMjIzM2JhMTg2NTE1YmU3ZWQxZjYxMjk3MGNlZTJkN2FmYjgxYmRkNzYyMTcwNDgxY2QwMDY5MTI3ZDViMDVhYTk5M2I0ZWE5ODhk''@;'; + put 'put ''OGZkZGMxODZmZmI3ZGM5MGE2YzA4ZjRkZjQzNWM5MzQwMjg0OTIzNmMzZmFiNGQyN2M3MDI2YzFkNGRjYjI2MDI2NDZkZWM5NzUxZTc2M2RiYTM3YmRmOGZmOTQwNmFkOWU1MzBlZTVkYjM4MmY0MTMwMDFhZWIwNmE1M2VkOTAyN2Q4MzExNzk3MjdiMDg2NWE4OTE4ZGEzZWRiZWJjZjliMTRl''@;'; + put 'put ''ZDQ0Y2U2Y2JhY2VkNGJiMWJkYjdmMTQ0N2U2Y2MyNTRiMzMyMDUxNTEyYmQ3YWY0MjZmYjhmNDAxMzc4Y2QyYmY1OTgzY2EwMWM2NGI5MmVjZjAzMmVhMTVkMTcyMWQwM2Y0ODJkN2NlNmU3NGZlZjZkNTVlNzAyZjQ2OTgwYzgyYjVhODQwMzE5MDBiMWM5ZTU5ZTdjOTdmYmVjN2U4ZjMyM2E5''@;'; + put 'put ''N2E3ZTM2Y2M4OGJlMGYxZDQ1YjdmZjU4NWFjNTRiZDQwN2IyMmI0MTU0YWFjYzhmNmQ3ZWJmNDhlMWQ4MTRjYzVlZDIwZjgwMzdlMGE3OTcxNWVlZjI5YmUzMjgwNmExZDU4YmI3YzVkYTc2ZjU1MGFhM2Q4YTFmYmZmMGViMTljY2IxYTMxM2Q1NWNkYTU2YzllYzJlZjI5NjMyMzg3ZmU4ZDc2''@;'; + put 'put ''ZTNjMDQ2ODA0M2U4ZjY2M2Y0ODYwZWUxMmJmMmQ1YjBiNzQ3NGQ2ZTY5NGY5MWU2ZGNjNDAyNGZmZmZmZmZmZmZmZmZmZmYifSwibW9kcDE4Ijp7ImdlbiI6IjAyIiwicHJpbWUiOiJmZmZmZmZmZmZmZmZmZmZmYzkwZmRhYTIyMTY4YzIzNGM0YzY2MjhiODBkYzFjZDEyOTAyNGUwODhhNjdj''@;'; + put 'put ''Yzc0MDIwYmJlYTYzYjEzOWIyMjUxNGEwODc5OGUzNDA0ZGRlZjk1MTliM2NkM2E0MzFiMzAyYjBhNmRmMjVmMTQzNzRmZTEzNTZkNmQ1MWMyNDVlNDg1YjU3NjYyNWU3ZWM2ZjQ0YzQyZTlhNjM3ZWQ2YjBiZmY1Y2I2ZjQwNmI3ZWRlZTM4NmJmYjVhODk5ZmE1YWU5ZjI0MTE3YzRiMWZlNjQ5''@;'; + put 'put ''Mjg2NjUxZWNlNDViM2RjMjAwN2NiOGExNjNiZjA1OThkYTQ4MzYxYzU1ZDM5YTY5MTYzZmE4ZmQyNGNmNWY4MzY1NWQyM2RjYTNhZDk2MWM2MmYzNTYyMDg1NTJiYjllZDUyOTA3NzA5Njk2NmQ2NzBjMzU0ZTRhYmM5ODA0ZjE3NDZjMDhjYTE4MjE3YzMyOTA1ZTQ2MmUzNmNlM2JlMzllNzcy''@;'; + put 'put ''YzE4MGU4NjAzOWIyNzgzYTJlYzA3YTI4ZmI1YzU1ZGYwNmY0YzUyYzlkZTJiY2JmNjk1NTgxNzE4Mzk5NTQ5N2NlYTk1NmFlNTE1ZDIyNjE4OThmYTA1MTAxNTcyOGU1YThhYWFjNDJkYWQzMzE3MGQwNDUwN2EzM2E4NTUyMWFiZGYxY2JhNjRlY2ZiODUwNDU4ZGJlZjBhOGFlYTcxNTc1ZDA2''@;'; + put 'put ''MGM3ZGIzOTcwZjg1YTZlMWU0YzdhYmY1YWU4Y2RiMDkzM2Q3MWU4Yzk0ZTA0YTI1NjE5ZGNlZTNkMjI2MWFkMmVlNmJmMTJmZmEwNmQ5OGEwODY0ZDg3NjAyNzMzZWM4NmE2NDUyMWYyYjE4MTc3YjIwMGNiYmUxMTc1NzdhNjE1ZDZjNzcwOTg4YzBiYWQ5NDZlMjA4ZTI0ZmEwNzRlNWFiMzE0''@;'; + put 'put ''M2RiNWJmY2UwZmQxMDhlNGI4MmQxMjBhOTIxMDgwMTFhNzIzYzEyYTc4N2U2ZDc4ODcxOWExMGJkYmE1YjI2OTljMzI3MTg2YWY0ZTIzYzFhOTQ2ODM0YjYxNTBiZGEyNTgzZTljYTJhZDQ0Y2U4ZGJiYmMyZGIwNGRlOGVmOTJlOGVmYzE0MWZiZWNhYTYyODdjNTk0NzRlNmJjMDVkOTliMjk2''@;'; + put 'put ''NGZhMDkwYzNhMjIzM2JhMTg2NTE1YmU3ZWQxZjYxMjk3MGNlZTJkN2FmYjgxYmRkNzYyMTcwNDgxY2QwMDY5MTI3ZDViMDVhYTk5M2I0ZWE5ODhkOGZkZGMxODZmZmI3ZGM5MGE2YzA4ZjRkZjQzNWM5MzQwMjg0OTIzNmMzZmFiNGQyN2M3MDI2YzFkNGRjYjI2MDI2NDZkZWM5NzUxZTc2M2Ri''@;'; + put 'put ''YTM3YmRmOGZmOTQwNmFkOWU1MzBlZTVkYjM4MmY0MTMwMDFhZWIwNmE1M2VkOTAyN2Q4MzExNzk3MjdiMDg2NWE4OTE4ZGEzZWRiZWJjZjliMTRlZDQ0Y2U2Y2JhY2VkNGJiMWJkYjdmMTQ0N2U2Y2MyNTRiMzMyMDUxNTEyYmQ3YWY0MjZmYjhmNDAxMzc4Y2QyYmY1OTgzY2EwMWM2NGI5MmVj''@;'; + put 'put ''ZjAzMmVhMTVkMTcyMWQwM2Y0ODJkN2NlNmU3NGZlZjZkNTVlNzAyZjQ2OTgwYzgyYjVhODQwMzE5MDBiMWM5ZTU5ZTdjOTdmYmVjN2U4ZjMyM2E5N2E3ZTM2Y2M4OGJlMGYxZDQ1YjdmZjU4NWFjNTRiZDQwN2IyMmI0MTU0YWFjYzhmNmQ3ZWJmNDhlMWQ4MTRjYzVlZDIwZjgwMzdlMGE3OTcx''@;'; + put 'put ''NWVlZjI5YmUzMjgwNmExZDU4YmI3YzVkYTc2ZjU1MGFhM2Q4YTFmYmZmMGViMTljY2IxYTMxM2Q1NWNkYTU2YzllYzJlZjI5NjMyMzg3ZmU4ZDc2ZTNjMDQ2ODA0M2U4ZjY2M2Y0ODYwZWUxMmJmMmQ1YjBiNzQ3NGQ2ZTY5NGY5MWU2ZGJlMTE1OTc0YTM5MjZmMTJmZWU1ZTQzODc3N2NiNmE5''@;'; + put 'put ''MzJkZjhjZDhiZWM0ZDA3M2I5MzFiYTNiYzgzMmI2OGQ5ZGQzMDA3NDFmYTdiZjhhZmM0N2VkMjU3NmY2OTM2YmE0MjQ2NjNhYWI2MzljNWFlNGY1NjgzNDIzYjQ3NDJiZjFjOTc4MjM4ZjE2Y2JlMzlkNjUyZGUzZmRiOGJlZmM4NDhhZDkyMjIyMmUwNGE0MDM3YzA3MTNlYjU3YTgxYTIzZjBj''@;'; + put 'put ''NzM0NzNmYzY0NmNlYTMwNmI0YmNiYzg4NjJmODM4NWRkZmE5ZDRiN2ZhMmMwODdlODc5NjgzMzAzZWQ1YmRkM2EwNjJiM2NmNWIzYTI3OGE2NmQyYTEzZjgzZjQ0ZjgyZGRmMzEwZWUwNzRhYjZhMzY0NTk3ZTg5OWEwMjU1ZGMxNjRmMzFjYzUwODQ2ODUxZGY5YWI0ODE5NWRlZDdlYTFiMWQ1''@;'; + put 'put ''MTBiZDdlZTc0ZDczZmFmMzZiYzMxZWNmYTI2ODM1OTA0NmY0ZWI4NzlmOTI0MDA5NDM4YjQ4MWM2Y2Q3ODg5YTAwMmVkNWVlMzgyYmM5MTkwZGE2ZmMwMjZlNDc5NTU4ZTQ0NzU2NzdlOWFhOWUzMDUwZTI3NjU2OTRkZmM4MWY1NmU4ODBiOTZlNzE2MGM5ODBkZDk4ZWRkM2RmZmZmZmZmZmZm''@;'; + put 'put ''ZmZmZmZmZiJ9fScpfSw4NTk3OlU9PnsidXNlIHN0cmljdCI7VS5leHBvcnRzPXtpODoiNi41LjQifX0sMjU2MjpVPT57InVzZSBzdHJpY3QiO1UuZXhwb3J0cz1KU09OLnBhcnNlKCd7IjIuMTYuODQwLjEuMTAxLjMuNC4xLjEiOiJhZXMtMTI4LWVjYiIsIjIuMTYuODQwLjEuMTAxLjMuNC4x''@;'; + put 'put ''LjIiOiJhZXMtMTI4LWNiYyIsIjIuMTYuODQwLjEuMTAxLjMuNC4xLjMiOiJhZXMtMTI4LW9mYiIsIjIuMTYuODQwLjEuMTAxLjMuNC4xLjQiOiJhZXMtMTI4LWNmYiIsIjIuMTYuODQwLjEuMTAxLjMuNC4xLjIxIjoiYWVzLTE5Mi1lY2IiLCIyLjE2Ljg0MC4xLjEwMS4zLjQuMS4yMiI6ImFl''@;'; + put 'put ''cy0xOTItY2JjIiwiMi4xNi44NDAuMS4xMDEuMy40LjEuMjMiOiJhZXMtMTkyLW9mYiIsIjIuMTYuODQwLjEuMTAxLjMuNC4xLjI0IjoiYWVzLTE5Mi1jZmIiLCIyLjE2Ljg0MC4xLjEwMS4zLjQuMS40MSI6ImFlcy0yNTYtZWNiIiwiMi4xNi44NDAuMS4xMDEuMy40LjEuNDIiOiJhZXMtMjU2''@;'; + put 'put ''LWNiYyIsIjIuMTYuODQwLjEuMTAxLjMuNC4xLjQzIjoiYWVzLTI1Ni1vZmIiLCIyLjE2Ljg0MC4xLjEwMS4zLjQuMS40NCI6ImFlcy0yNTYtY2ZiIn0nKX0sMzcwNDpVPT57InVzZSBzdHJpY3QiO1UuZXhwb3J0cz1KU09OLnBhcnNlKCdbImFjIiwiY29tLmFjIiwiZWR1LmFjIiwiZ292LmFj''@;'; + put 'put ''IiwibmV0LmFjIiwibWlsLmFjIiwib3JnLmFjIiwiYWQiLCJub20uYWQiLCJhZSIsImNvLmFlIiwibmV0LmFlIiwib3JnLmFlIiwic2NoLmFlIiwiYWMuYWUiLCJnb3YuYWUiLCJtaWwuYWUiLCJhZXJvIiwiYWNjaWRlbnQtaW52ZXN0aWdhdGlvbi5hZXJvIiwiYWNjaWRlbnQtcHJldmVudGlv''@;'; + put 'put ''bi5hZXJvIiwiYWVyb2JhdGljLmFlcm8iLCJhZXJvY2x1Yi5hZXJvIiwiYWVyb2Ryb21lLmFlcm8iLCJhZ2VudHMuYWVybyIsImFpcmNyYWZ0LmFlcm8iLCJhaXJsaW5lLmFlcm8iLCJhaXJwb3J0LmFlcm8iLCJhaXItc3VydmVpbGxhbmNlLmFlcm8iLCJhaXJ0cmFmZmljLmFlcm8iLCJhaXIt''@;'; + put 'put ''dHJhZmZpYy1jb250cm9sLmFlcm8iLCJhbWJ1bGFuY2UuYWVybyIsImFtdXNlbWVudC5hZXJvIiwiYXNzb2NpYXRpb24uYWVybyIsImF1dGhvci5hZXJvIiwiYmFsbG9vbmluZy5hZXJvIiwiYnJva2VyLmFlcm8iLCJjYWEuYWVybyIsImNhcmdvLmFlcm8iLCJjYXRlcmluZy5hZXJvIiwiY2Vy''@;'; + put 'put ''dGlmaWNhdGlvbi5hZXJvIiwiY2hhbXBpb25zaGlwLmFlcm8iLCJjaGFydGVyLmFlcm8iLCJjaXZpbGF2aWF0aW9uLmFlcm8iLCJjbHViLmFlcm8iLCJjb25mZXJlbmNlLmFlcm8iLCJjb25zdWx0YW50LmFlcm8iLCJjb25zdWx0aW5nLmFlcm8iLCJjb250cm9sLmFlcm8iLCJjb3VuY2lsLmFl''@;'; + put 'put ''cm8iLCJjcmV3LmFlcm8iLCJkZXNpZ24uYWVybyIsImRnY2EuYWVybyIsImVkdWNhdG9yLmFlcm8iLCJlbWVyZ2VuY3kuYWVybyIsImVuZ2luZS5hZXJvIiwiZW5naW5lZXIuYWVybyIsImVudGVydGFpbm1lbnQuYWVybyIsImVxdWlwbWVudC5hZXJvIiwiZXhjaGFuZ2UuYWVybyIsImV4cHJl''@;'; + put 'put ''c3MuYWVybyIsImZlZGVyYXRpb24uYWVybyIsImZsaWdodC5hZXJvIiwiZnJlaWdodC5hZXJvIiwiZnVlbC5hZXJvIiwiZ2xpZGluZy5hZXJvIiwiZ292ZXJubWVudC5hZXJvIiwiZ3JvdW5kaGFuZGxpbmcuYWVybyIsImdyb3VwLmFlcm8iLCJoYW5nZ2xpZGluZy5hZXJvIiwiaG9tZWJ1aWx0''@;'; + put 'put ''LmFlcm8iLCJpbnN1cmFuY2UuYWVybyIsImpvdXJuYWwuYWVybyIsImpvdXJuYWxpc3QuYWVybyIsImxlYXNpbmcuYWVybyIsImxvZ2lzdGljcy5hZXJvIiwibWFnYXppbmUuYWVybyIsIm1haW50ZW5hbmNlLmFlcm8iLCJtZWRpYS5hZXJvIiwibWljcm9saWdodC5hZXJvIiwibW9kZWxsaW5n''@;'; + put 'put ''LmFlcm8iLCJuYXZpZ2F0aW9uLmFlcm8iLCJwYXJhY2h1dGluZy5hZXJvIiwicGFyYWdsaWRpbmcuYWVybyIsInBhc3Nlbmdlci1hc3NvY2lhdGlvbi5hZXJvIiwicGlsb3QuYWVybyIsInByZXNzLmFlcm8iLCJwcm9kdWN0aW9uLmFlcm8iLCJyZWNyZWF0aW9uLmFlcm8iLCJyZXBib2R5LmFl''@;'; + put 'put ''cm8iLCJyZXMuYWVybyIsInJlc2VhcmNoLmFlcm8iLCJyb3RvcmNyYWZ0LmFlcm8iLCJzYWZldHkuYWVybyIsInNjaWVudGlzdC5hZXJvIiwic2VydmljZXMuYWVybyIsInNob3cuYWVybyIsInNreWRpdmluZy5hZXJvIiwic29mdHdhcmUuYWVybyIsInN0dWRlbnQuYWVybyIsInRyYWRlci5h''@;'; + put 'put ''ZXJvIiwidHJhZGluZy5hZXJvIiwidHJhaW5lci5hZXJvIiwidW5pb24uYWVybyIsIndvcmtpbmdncm91cC5hZXJvIiwid29ya3MuYWVybyIsImFmIiwiZ292LmFmIiwiY29tLmFmIiwib3JnLmFmIiwibmV0LmFmIiwiZWR1LmFmIiwiYWciLCJjb20uYWciLCJvcmcuYWciLCJuZXQuYWciLCJj''@;'; + put 'put ''by5hZyIsIm5vbS5hZyIsImFpIiwib2ZmLmFpIiwiY29tLmFpIiwibmV0LmFpIiwib3JnLmFpIiwiYWwiLCJjb20uYWwiLCJlZHUuYWwiLCJnb3YuYWwiLCJtaWwuYWwiLCJuZXQuYWwiLCJvcmcuYWwiLCJhbSIsImNvLmFtIiwiY29tLmFtIiwiY29tbXVuZS5hbSIsIm5ldC5hbSIsIm9yZy5h''@;'; + put 'put ''bSIsImFvIiwiZWQuYW8iLCJndi5hbyIsIm9nLmFvIiwiY28uYW8iLCJwYi5hbyIsIml0LmFvIiwiYXEiLCJhciIsImNvbS5hciIsImVkdS5hciIsImdvYi5hciIsImdvdi5hciIsImludC5hciIsIm1pbC5hciIsIm11c2ljYS5hciIsIm5ldC5hciIsIm9yZy5hciIsInR1ci5hciIsImFycGEi''@;'; + put 'put ''LCJlMTY0LmFycGEiLCJpbi1hZGRyLmFycGEiLCJpcDYuYXJwYSIsImlyaXMuYXJwYSIsInVyaS5hcnBhIiwidXJuLmFycGEiLCJhcyIsImdvdi5hcyIsImFzaWEiLCJhdCIsImFjLmF0IiwiY28uYXQiLCJndi5hdCIsIm9yLmF0IiwiYXUiLCJjb20uYXUiLCJuZXQuYXUiLCJvcmcuYXUiLCJl''@;'; + put 'put ''ZHUuYXUiLCJnb3YuYXUiLCJhc24uYXUiLCJpZC5hdSIsImluZm8uYXUiLCJjb25mLmF1Iiwib3ouYXUiLCJhY3QuYXUiLCJuc3cuYXUiLCJudC5hdSIsInFsZC5hdSIsInNhLmF1IiwidGFzLmF1IiwidmljLmF1Iiwid2EuYXUiLCJhY3QuZWR1LmF1IiwiY2F0aG9saWMuZWR1LmF1IiwibnN3''@;'; + put 'put ''LmVkdS5hdSIsIm50LmVkdS5hdSIsInFsZC5lZHUuYXUiLCJzYS5lZHUuYXUiLCJ0YXMuZWR1LmF1IiwidmljLmVkdS5hdSIsIndhLmVkdS5hdSIsInFsZC5nb3YuYXUiLCJzYS5nb3YuYXUiLCJ0YXMuZ292LmF1IiwidmljLmdvdi5hdSIsIndhLmdvdi5hdSIsImVkdWNhdGlvbi50YXMuZWR1''@;'; + put 'put ''LmF1Iiwic2Nob29scy5uc3cuZWR1LmF1IiwiYXciLCJjb20uYXciLCJheCIsImF6IiwiY29tLmF6IiwibmV0LmF6IiwiaW50LmF6IiwiZ292LmF6Iiwib3JnLmF6IiwiZWR1LmF6IiwiaW5mby5heiIsInBwLmF6IiwibWlsLmF6IiwibmFtZS5heiIsInByby5heiIsImJpei5heiIsImJhIiwi''@;'; + put 'put ''Y29tLmJhIiwiZWR1LmJhIiwiZ292LmJhIiwibWlsLmJhIiwibmV0LmJhIiwib3JnLmJhIiwiYmIiLCJiaXouYmIiLCJjby5iYiIsImNvbS5iYiIsImVkdS5iYiIsImdvdi5iYiIsImluZm8uYmIiLCJuZXQuYmIiLCJvcmcuYmIiLCJzdG9yZS5iYiIsInR2LmJiIiwiKi5iZCIsImJlIiwiYWMu''@;'; + put 'put ''YmUiLCJiZiIsImdvdi5iZiIsImJnIiwiYS5iZyIsImIuYmciLCJjLmJnIiwiZC5iZyIsImUuYmciLCJmLmJnIiwiZy5iZyIsImguYmciLCJpLmJnIiwiai5iZyIsImsuYmciLCJsLmJnIiwibS5iZyIsIm4uYmciLCJvLmJnIiwicC5iZyIsInEuYmciLCJyLmJnIiwicy5iZyIsInQuYmciLCJ1''@;'; + put 'put ''LmJnIiwidi5iZyIsIncuYmciLCJ4LmJnIiwieS5iZyIsInouYmciLCIwLmJnIiwiMS5iZyIsIjIuYmciLCIzLmJnIiwiNC5iZyIsIjUuYmciLCI2LmJnIiwiNy5iZyIsIjguYmciLCI5LmJnIiwiYmgiLCJjb20uYmgiLCJlZHUuYmgiLCJuZXQuYmgiLCJvcmcuYmgiLCJnb3YuYmgiLCJiaSIs''@;'; + put 'put ''ImNvLmJpIiwiY29tLmJpIiwiZWR1LmJpIiwib3IuYmkiLCJvcmcuYmkiLCJiaXoiLCJiaiIsImFzc28uYmoiLCJiYXJyZWF1LmJqIiwiZ291di5iaiIsImJtIiwiY29tLmJtIiwiZWR1LmJtIiwiZ292LmJtIiwibmV0LmJtIiwib3JnLmJtIiwiYm4iLCJjb20uYm4iLCJlZHUuYm4iLCJnb3Yu''@;'; + put 'put ''Ym4iLCJuZXQuYm4iLCJvcmcuYm4iLCJibyIsImNvbS5ibyIsImVkdS5ibyIsImdvYi5ibyIsImludC5ibyIsIm9yZy5ibyIsIm5ldC5ibyIsIm1pbC5ibyIsInR2LmJvIiwid2ViLmJvIiwiYWNhZGVtaWEuYm8iLCJhZ3JvLmJvIiwiYXJ0ZS5ibyIsImJsb2cuYm8iLCJib2xpdmlhLmJvIiwi''@;'; + put 'put ''Y2llbmNpYS5ibyIsImNvb3BlcmF0aXZhLmJvIiwiZGVtb2NyYWNpYS5ibyIsImRlcG9ydGUuYm8iLCJlY29sb2dpYS5ibyIsImVjb25vbWlhLmJvIiwiZW1wcmVzYS5ibyIsImluZGlnZW5hLmJvIiwiaW5kdXN0cmlhLmJvIiwiaW5mby5ibyIsIm1lZGljaW5hLmJvIiwibW92aW1pZW50by5i''@;'; + put 'put ''byIsIm11c2ljYS5ibyIsIm5hdHVyYWwuYm8iLCJub21icmUuYm8iLCJub3RpY2lhcy5ibyIsInBhdHJpYS5ibyIsInBvbGl0aWNhLmJvIiwicHJvZmVzaW9uYWwuYm8iLCJwbHVyaW5hY2lvbmFsLmJvIiwicHVlYmxvLmJvIiwicmV2aXN0YS5ibyIsInNhbHVkLmJvIiwidGVjbm9sb2dpYS5i''@;'; + put 'put ''byIsInRrc2F0LmJvIiwidHJhbnNwb3J0ZS5ibyIsIndpa2kuYm8iLCJiciIsIjlndWFjdS5iciIsImFiYy5iciIsImFkbS5iciIsImFkdi5iciIsImFnci5iciIsImFqdS5iciIsImFtLmJyIiwiYW5hbmkuYnIiLCJhcGFyZWNpZGEuYnIiLCJhcnEuYnIiLCJhcnQuYnIiLCJhdG8uYnIiLCJi''@;'; + put 'put ''LmJyIiwiYmFydWVyaS5iciIsImJlbGVtLmJyIiwiYmh6LmJyIiwiYmlvLmJyIiwiYmxvZy5iciIsImJtZC5iciIsImJvYXZpc3RhLmJyIiwiYnNiLmJyIiwiY2FtcGluYWdyYW5kZS5iciIsImNhbXBpbmFzLmJyIiwiY2F4aWFzLmJyIiwiY2ltLmJyIiwiY25nLmJyIiwiY250LmJyIiwiY29t''@;'; + put 'put ''LmJyIiwiY29udGFnZW0uYnIiLCJjb29wLmJyIiwiY3JpLmJyIiwiY3VpYWJhLmJyIiwiY3VyaXRpYmEuYnIiLCJkZWYuYnIiLCJlY24uYnIiLCJlY28uYnIiLCJlZHUuYnIiLCJlbXAuYnIiLCJlbmcuYnIiLCJlc3AuYnIiLCJldGMuYnIiLCJldGkuYnIiLCJmYXIuYnIiLCJmZWlyYS5iciIs''@;'; + put 'put ''ImZsb2cuYnIiLCJmbG9yaXBhLmJyIiwiZm0uYnIiLCJmbmQuYnIiLCJmb3J0YWwuYnIiLCJmb3QuYnIiLCJmb3ouYnIiLCJmc3QuYnIiLCJnMTIuYnIiLCJnZ2YuYnIiLCJnb2lhbmlhLmJyIiwiZ292LmJyIiwiYWMuZ292LmJyIiwiYWwuZ292LmJyIiwiYW0uZ292LmJyIiwiYXAuZ292LmJy''@;'; + put 'put ''IiwiYmEuZ292LmJyIiwiY2UuZ292LmJyIiwiZGYuZ292LmJyIiwiZXMuZ292LmJyIiwiZ28uZ292LmJyIiwibWEuZ292LmJyIiwibWcuZ292LmJyIiwibXMuZ292LmJyIiwibXQuZ292LmJyIiwicGEuZ292LmJyIiwicGIuZ292LmJyIiwicGUuZ292LmJyIiwicGkuZ292LmJyIiwicHIuZ292''@;'; + put 'put ''LmJyIiwicmouZ292LmJyIiwicm4uZ292LmJyIiwicm8uZ292LmJyIiwicnIuZ292LmJyIiwicnMuZ292LmJyIiwic2MuZ292LmJyIiwic2UuZ292LmJyIiwic3AuZ292LmJyIiwidG8uZ292LmJyIiwiZ3J1LmJyIiwiaW1iLmJyIiwiaW5kLmJyIiwiaW5mLmJyIiwiamFiLmJyIiwiamFtcGEu''@;'; + put 'put ''YnIiLCJqZGYuYnIiLCJqb2ludmlsbGUuYnIiLCJqb3IuYnIiLCJqdXMuYnIiLCJsZWcuYnIiLCJsZWwuYnIiLCJsb25kcmluYS5iciIsIm1hY2FwYS5iciIsIm1hY2Vpby5iciIsIm1hbmF1cy5iciIsIm1hcmluZ2EuYnIiLCJtYXQuYnIiLCJtZWQuYnIiLCJtaWwuYnIiLCJtb3JlbmEuYnIi''@;'; + put 'put ''LCJtcC5iciIsIm11cy5iciIsIm5hdGFsLmJyIiwibmV0LmJyIiwibml0ZXJvaS5iciIsIioubm9tLmJyIiwibm90LmJyIiwibnRyLmJyIiwib2RvLmJyIiwib25nLmJyIiwib3JnLmJyIiwib3Nhc2NvLmJyIiwicGFsbWFzLmJyIiwicG9hLmJyIiwicHBnLmJyIiwicHJvLmJyIiwicHNjLmJy''@;'; + put 'put ''IiwicHNpLmJyIiwicHZoLmJyIiwicXNsLmJyIiwicmFkaW8uYnIiLCJyZWMuYnIiLCJyZWNpZmUuYnIiLCJyaWJlaXJhby5iciIsInJpby5iciIsInJpb2JyYW5jby5iciIsInJpb3ByZXRvLmJyIiwic2FsdmFkb3IuYnIiLCJzYW1wYS5iciIsInNhbnRhbWFyaWEuYnIiLCJzYW50b2FuZHJl''@;'; + put 'put ''LmJyIiwic2FvYmVybmFyZG8uYnIiLCJzYW9nb25jYS5iciIsInNqYy5iciIsInNsZy5iciIsInNsei5iciIsInNvcm9jYWJhLmJyIiwic3J2LmJyIiwidGF4aS5iciIsInRjLmJyIiwidGVvLmJyIiwidGhlLmJyIiwidG1wLmJyIiwidHJkLmJyIiwidHVyLmJyIiwidHYuYnIiLCJ1ZGkuYnIi''@;'; + put 'put ''LCJ2ZXQuYnIiLCJ2aXguYnIiLCJ2bG9nLmJyIiwid2lraS5iciIsInpsZy5iciIsImJzIiwiY29tLmJzIiwibmV0LmJzIiwib3JnLmJzIiwiZWR1LmJzIiwiZ292LmJzIiwiYnQiLCJjb20uYnQiLCJlZHUuYnQiLCJnb3YuYnQiLCJuZXQuYnQiLCJvcmcuYnQiLCJidiIsImJ3IiwiY28uYnci''@;'; + put 'put ''LCJvcmcuYnciLCJieSIsImdvdi5ieSIsIm1pbC5ieSIsImNvbS5ieSIsIm9mLmJ5IiwiYnoiLCJjb20uYnoiLCJuZXQuYnoiLCJvcmcuYnoiLCJlZHUuYnoiLCJnb3YuYnoiLCJjYSIsImFiLmNhIiwiYmMuY2EiLCJtYi5jYSIsIm5iLmNhIiwibmYuY2EiLCJubC5jYSIsIm5zLmNhIiwibnQu''@;'; + put 'put ''Y2EiLCJudS5jYSIsIm9uLmNhIiwicGUuY2EiLCJxYy5jYSIsInNrLmNhIiwieWsuY2EiLCJnYy5jYSIsImNhdCIsImNjIiwiY2QiLCJnb3YuY2QiLCJjZiIsImNnIiwiY2giLCJjaSIsIm9yZy5jaSIsIm9yLmNpIiwiY29tLmNpIiwiY28uY2kiLCJlZHUuY2kiLCJlZC5jaSIsImFjLmNpIiwi''@;'; + put 'put ''bmV0LmNpIiwiZ28uY2kiLCJhc3NvLmNpIiwiYVx4ZTlyb3BvcnQuY2kiLCJpbnQuY2kiLCJwcmVzc2UuY2kiLCJtZC5jaSIsImdvdXYuY2kiLCIqLmNrIiwiIXd3dy5jayIsImNsIiwiYXByZW5kZW1hcy5jbCIsImNvLmNsIiwiZ29iLmNsIiwiZ292LmNsIiwibWlsLmNsIiwiY20iLCJjby5j''@;'; + put 'put ''bSIsImNvbS5jbSIsImdvdi5jbSIsIm5ldC5jbSIsImNuIiwiYWMuY24iLCJjb20uY24iLCJlZHUuY24iLCJnb3YuY24iLCJuZXQuY24iLCJvcmcuY24iLCJtaWwuY24iLCJcdTUxNmNcdTUzZjguY24iLCJcdTdmNTFcdTdlZGMuY24iLCJcdTdkYjJcdTdkNjEuY24iLCJhaC5jbiIsImJqLmNu''@;'; + put 'put ''IiwiY3EuY24iLCJmai5jbiIsImdkLmNuIiwiZ3MuY24iLCJnei5jbiIsImd4LmNuIiwiaGEuY24iLCJoYi5jbiIsImhlLmNuIiwiaGkuY24iLCJobC5jbiIsImhuLmNuIiwiamwuY24iLCJqcy5jbiIsImp4LmNuIiwibG4uY24iLCJubS5jbiIsIm54LmNuIiwicWguY24iLCJzYy5jbiIsInNk''@;'; + put 'put ''LmNuIiwic2guY24iLCJzbi5jbiIsInN4LmNuIiwidGouY24iLCJ4ai5jbiIsInh6LmNuIiwieW4uY24iLCJ6ai5jbiIsImhrLmNuIiwibW8uY24iLCJ0dy5jbiIsImNvIiwiYXJ0cy5jbyIsImNvbS5jbyIsImVkdS5jbyIsImZpcm0uY28iLCJnb3YuY28iLCJpbmZvLmNvIiwiaW50LmNvIiwi''@;'; + put 'put ''bWlsLmNvIiwibmV0LmNvIiwibm9tLmNvIiwib3JnLmNvIiwicmVjLmNvIiwid2ViLmNvIiwiY29tIiwiY29vcCIsImNyIiwiYWMuY3IiLCJjby5jciIsImVkLmNyIiwiZmkuY3IiLCJnby5jciIsIm9yLmNyIiwic2EuY3IiLCJjdSIsImNvbS5jdSIsImVkdS5jdSIsIm9yZy5jdSIsIm5ldC5j''@;'; + put 'put ''dSIsImdvdi5jdSIsImluZi5jdSIsImN2IiwiY3ciLCJjb20uY3ciLCJlZHUuY3ciLCJuZXQuY3ciLCJvcmcuY3ciLCJjeCIsImdvdi5jeCIsImN5IiwiYWMuY3kiLCJiaXouY3kiLCJjb20uY3kiLCJla2xvZ2VzLmN5IiwiZ292LmN5IiwibHRkLmN5IiwibmFtZS5jeSIsIm5ldC5jeSIsIm9y''@;'; + put 'put ''Zy5jeSIsInBhcmxpYW1lbnQuY3kiLCJwcmVzcy5jeSIsInByby5jeSIsInRtLmN5IiwiY3oiLCJkZSIsImRqIiwiZGsiLCJkbSIsImNvbS5kbSIsIm5ldC5kbSIsIm9yZy5kbSIsImVkdS5kbSIsImdvdi5kbSIsImRvIiwiYXJ0LmRvIiwiY29tLmRvIiwiZWR1LmRvIiwiZ29iLmRvIiwiZ292''@;'; + put 'put ''LmRvIiwibWlsLmRvIiwibmV0LmRvIiwib3JnLmRvIiwic2xkLmRvIiwid2ViLmRvIiwiZHoiLCJjb20uZHoiLCJvcmcuZHoiLCJuZXQuZHoiLCJnb3YuZHoiLCJlZHUuZHoiLCJhc3NvLmR6IiwicG9sLmR6IiwiYXJ0LmR6IiwiZWMiLCJjb20uZWMiLCJpbmZvLmVjIiwibmV0LmVjIiwiZmlu''@;'; + put 'put ''LmVjIiwiazEyLmVjIiwibWVkLmVjIiwicHJvLmVjIiwib3JnLmVjIiwiZWR1LmVjIiwiZ292LmVjIiwiZ29iLmVjIiwibWlsLmVjIiwiZWR1IiwiZWUiLCJlZHUuZWUiLCJnb3YuZWUiLCJyaWlrLmVlIiwibGliLmVlIiwibWVkLmVlIiwiY29tLmVlIiwicHJpLmVlIiwiYWlwLmVlIiwib3Jn''@;'; + put 'put ''LmVlIiwiZmllLmVlIiwiZWciLCJjb20uZWciLCJlZHUuZWciLCJldW4uZWciLCJnb3YuZWciLCJtaWwuZWciLCJuYW1lLmVnIiwibmV0LmVnIiwib3JnLmVnIiwic2NpLmVnIiwiKi5lciIsImVzIiwiY29tLmVzIiwibm9tLmVzIiwib3JnLmVzIiwiZ29iLmVzIiwiZWR1LmVzIiwiZXQiLCJj''@;'; + put 'put ''b20uZXQiLCJnb3YuZXQiLCJvcmcuZXQiLCJlZHUuZXQiLCJiaXouZXQiLCJuYW1lLmV0IiwiaW5mby5ldCIsIm5ldC5ldCIsImV1IiwiZmkiLCJhbGFuZC5maSIsImZqIiwiYWMuZmoiLCJiaXouZmoiLCJjb20uZmoiLCJnb3YuZmoiLCJpbmZvLmZqIiwibWlsLmZqIiwibmFtZS5maiIsIm5l''@;'; + put 'put ''dC5maiIsIm9yZy5maiIsInByby5maiIsIiouZmsiLCJmbSIsImZvIiwiZnIiLCJhc3NvLmZyIiwiY29tLmZyIiwiZ291di5mciIsIm5vbS5mciIsInByZC5mciIsInRtLmZyIiwiYWVyb3BvcnQuZnIiLCJhdm9jYXQuZnIiLCJhdm91ZXMuZnIiLCJjY2kuZnIiLCJjaGFtYmFncmkuZnIiLCJj''@;'; + put 'put ''aGlydXJnaWVucy1kZW50aXN0ZXMuZnIiLCJleHBlcnRzLWNvbXB0YWJsZXMuZnIiLCJnZW9tZXRyZS1leHBlcnQuZnIiLCJncmV0YS5mciIsImh1aXNzaWVyLWp1c3RpY2UuZnIiLCJtZWRlY2luLmZyIiwibm90YWlyZXMuZnIiLCJwaGFybWFjaWVuLmZyIiwicG9ydC5mciIsInZldGVyaW5h''@;'; + put 'put ''aXJlLmZyIiwiZ2EiLCJnYiIsImdkIiwiZ2UiLCJjb20uZ2UiLCJlZHUuZ2UiLCJnb3YuZ2UiLCJvcmcuZ2UiLCJtaWwuZ2UiLCJuZXQuZ2UiLCJwdnQuZ2UiLCJnZiIsImdnIiwiY28uZ2ciLCJuZXQuZ2ciLCJvcmcuZ2ciLCJnaCIsImNvbS5naCIsImVkdS5naCIsImdvdi5naCIsIm9yZy5n''@;'; + put 'put ''aCIsIm1pbC5naCIsImdpIiwiY29tLmdpIiwibHRkLmdpIiwiZ292LmdpIiwibW9kLmdpIiwiZWR1LmdpIiwib3JnLmdpIiwiZ2wiLCJjby5nbCIsImNvbS5nbCIsImVkdS5nbCIsIm5ldC5nbCIsIm9yZy5nbCIsImdtIiwiZ24iLCJhYy5nbiIsImNvbS5nbiIsImVkdS5nbiIsImdvdi5nbiIs''@;'; + put 'put ''Im9yZy5nbiIsIm5ldC5nbiIsImdvdiIsImdwIiwiY29tLmdwIiwibmV0LmdwIiwibW9iaS5ncCIsImVkdS5ncCIsIm9yZy5ncCIsImFzc28uZ3AiLCJncSIsImdyIiwiY29tLmdyIiwiZWR1LmdyIiwibmV0LmdyIiwib3JnLmdyIiwiZ292LmdyIiwiZ3MiLCJndCIsImNvbS5ndCIsImVkdS5n''@;'; + put 'put ''dCIsImdvYi5ndCIsImluZC5ndCIsIm1pbC5ndCIsIm5ldC5ndCIsIm9yZy5ndCIsImd1IiwiY29tLmd1IiwiZWR1Lmd1IiwiZ292Lmd1IiwiZ3VhbS5ndSIsImluZm8uZ3UiLCJuZXQuZ3UiLCJvcmcuZ3UiLCJ3ZWIuZ3UiLCJndyIsImd5IiwiY28uZ3kiLCJjb20uZ3kiLCJlZHUuZ3kiLCJn''@;'; + put 'put ''b3YuZ3kiLCJuZXQuZ3kiLCJvcmcuZ3kiLCJoayIsImNvbS5oayIsImVkdS5oayIsImdvdi5oayIsImlkdi5oayIsIm5ldC5oayIsIm9yZy5oayIsIlx1NTE2Y1x1NTNmOC5oayIsIlx1NjU1OVx1ODBiMi5oayIsIlx1NjU0ZVx1ODBiMi5oayIsIlx1NjUzZlx1NWU5Yy5oayIsIlx1NTAwYlx1''@;'; + put 'put ''NGViYS5oayIsIlx1NGUyYVx1NGViYS5oayIsIlx1N2I4N1x1NGViYS5oayIsIlx1N2RiMlx1N2VkYy5oayIsIlx1N2Y1MVx1N2VkYy5oayIsIlx1N2VjNFx1N2U1NC5oayIsIlx1N2RiMlx1N2Q2MS5oayIsIlx1N2Y1MVx1N2Q2MS5oayIsIlx1N2VjNFx1N2VjNy5oayIsIlx1N2Q0NFx1N2U1''@;'; + put 'put ''NC5oayIsIlx1N2Q0NFx1N2VjNy5oayIsImhtIiwiaG4iLCJjb20uaG4iLCJlZHUuaG4iLCJvcmcuaG4iLCJuZXQuaG4iLCJtaWwuaG4iLCJnb2IuaG4iLCJociIsIml6LmhyIiwiZnJvbS5ociIsIm5hbWUuaHIiLCJjb20uaHIiLCJodCIsImNvbS5odCIsInNob3AuaHQiLCJmaXJtLmh0Iiwi''@;'; + put 'put ''aW5mby5odCIsImFkdWx0Lmh0IiwibmV0Lmh0IiwicHJvLmh0Iiwib3JnLmh0IiwibWVkLmh0IiwiYXJ0Lmh0IiwiY29vcC5odCIsInBvbC5odCIsImFzc28uaHQiLCJlZHUuaHQiLCJyZWwuaHQiLCJnb3V2Lmh0IiwicGVyc28uaHQiLCJodSIsImNvLmh1IiwiaW5mby5odSIsIm9yZy5odSIs''@;'; + put 'put ''InByaXYuaHUiLCJzcG9ydC5odSIsInRtLmh1IiwiMjAwMC5odSIsImFncmFyLmh1IiwiYm9sdC5odSIsImNhc2luby5odSIsImNpdHkuaHUiLCJlcm90aWNhLmh1IiwiZXJvdGlrYS5odSIsImZpbG0uaHUiLCJmb3J1bS5odSIsImdhbWVzLmh1IiwiaG90ZWwuaHUiLCJpbmdhdGxhbi5odSIs''@;'; + put 'put ''ImpvZ2Fzei5odSIsImtvbnl2ZWxvLmh1IiwibGFrYXMuaHUiLCJtZWRpYS5odSIsIm5ld3MuaHUiLCJyZWtsYW0uaHUiLCJzZXguaHUiLCJzaG9wLmh1Iiwic3VsaS5odSIsInN6ZXguaHUiLCJ0b3pzZGUuaHUiLCJ1dGF6YXMuaHUiLCJ2aWRlby5odSIsImlkIiwiYWMuaWQiLCJiaXouaWQi''@;'; + put 'put ''LCJjby5pZCIsImRlc2EuaWQiLCJnby5pZCIsIm1pbC5pZCIsIm15LmlkIiwibmV0LmlkIiwib3IuaWQiLCJwb25wZXMuaWQiLCJzY2guaWQiLCJ3ZWIuaWQiLCJpZSIsImdvdi5pZSIsImlsIiwiYWMuaWwiLCJjby5pbCIsImdvdi5pbCIsImlkZi5pbCIsImsxMi5pbCIsIm11bmkuaWwiLCJu''@;'; + put 'put ''ZXQuaWwiLCJvcmcuaWwiLCJpbSIsImFjLmltIiwiY28uaW0iLCJjb20uaW0iLCJsdGQuY28uaW0iLCJuZXQuaW0iLCJvcmcuaW0iLCJwbGMuY28uaW0iLCJ0dC5pbSIsInR2LmltIiwiaW4iLCJjby5pbiIsImZpcm0uaW4iLCJuZXQuaW4iLCJvcmcuaW4iLCJnZW4uaW4iLCJpbmQuaW4iLCJu''@;'; + put 'put ''aWMuaW4iLCJhYy5pbiIsImVkdS5pbiIsInJlcy5pbiIsImdvdi5pbiIsIm1pbC5pbiIsImluZm8iLCJpbnQiLCJldS5pbnQiLCJpbyIsImNvbS5pbyIsImlxIiwiZ292LmlxIiwiZWR1LmlxIiwibWlsLmlxIiwiY29tLmlxIiwib3JnLmlxIiwibmV0LmlxIiwiaXIiLCJhYy5pciIsImNvLmly''@;'; + put 'put ''IiwiZ292LmlyIiwiaWQuaXIiLCJuZXQuaXIiLCJvcmcuaXIiLCJzY2guaXIiLCJcdTA2MjdcdTA2Y2NcdTA2MzFcdTA2MjdcdTA2NDYuaXIiLCJcdTA2MjdcdTA2NGFcdTA2MzFcdTA2MjdcdTA2NDYuaXIiLCJpcyIsIm5ldC5pcyIsImNvbS5pcyIsImVkdS5pcyIsImdvdi5pcyIsIm9yZy5p''@;'; + put 'put ''cyIsImludC5pcyIsIml0IiwiZ292Lml0IiwiZWR1Lml0IiwiYWJyLml0IiwiYWJydXp6by5pdCIsImFvc3RhLXZhbGxleS5pdCIsImFvc3RhdmFsbGV5Lml0IiwiYmFzLml0IiwiYmFzaWxpY2F0YS5pdCIsImNhbC5pdCIsImNhbGFicmlhLml0IiwiY2FtLml0IiwiY2FtcGFuaWEuaXQiLCJl''@;'; + put 'put ''bWlsaWEtcm9tYWduYS5pdCIsImVtaWxpYXJvbWFnbmEuaXQiLCJlbXIuaXQiLCJmcml1bGktdi1naXVsaWEuaXQiLCJmcml1bGktdmUtZ2l1bGlhLml0IiwiZnJpdWxpLXZlZ2l1bGlhLml0IiwiZnJpdWxpLXZlbmV6aWEtZ2l1bGlhLml0IiwiZnJpdWxpLXZlbmV6aWFnaXVsaWEuaXQiLCJm''@;'; + put 'put ''cml1bGktdmdpdWxpYS5pdCIsImZyaXVsaXYtZ2l1bGlhLml0IiwiZnJpdWxpdmUtZ2l1bGlhLml0IiwiZnJpdWxpdmVnaXVsaWEuaXQiLCJmcml1bGl2ZW5lemlhLWdpdWxpYS5pdCIsImZyaXVsaXZlbmV6aWFnaXVsaWEuaXQiLCJmcml1bGl2Z2l1bGlhLml0IiwiZnZnLml0IiwibGF6Lml0''@;'; + put 'put ''IiwibGF6aW8uaXQiLCJsaWcuaXQiLCJsaWd1cmlhLml0IiwibG9tLml0IiwibG9tYmFyZGlhLml0IiwibG9tYmFyZHkuaXQiLCJsdWNhbmlhLml0IiwibWFyLml0IiwibWFyY2hlLml0IiwibW9sLml0IiwibW9saXNlLml0IiwicGllZG1vbnQuaXQiLCJwaWVtb250ZS5pdCIsInBtbi5pdCIs''@;'; + put 'put ''InB1Zy5pdCIsInB1Z2xpYS5pdCIsInNhci5pdCIsInNhcmRlZ25hLml0Iiwic2FyZGluaWEuaXQiLCJzaWMuaXQiLCJzaWNpbGlhLml0Iiwic2ljaWx5Lml0IiwidGFhLml0IiwidG9zLml0IiwidG9zY2FuYS5pdCIsInRyZW50aW4tc3VkLXRpcm9sLml0IiwidHJlbnRpbi1zXHhmY2QtdGly''@;'; + put 'put ''b2wuaXQiLCJ0cmVudGluLXN1ZHRpcm9sLml0IiwidHJlbnRpbi1zXHhmY2R0aXJvbC5pdCIsInRyZW50aW4tc3VlZC10aXJvbC5pdCIsInRyZW50aW4tc3VlZHRpcm9sLml0IiwidHJlbnRpbm8tYS1hZGlnZS5pdCIsInRyZW50aW5vLWFhZGlnZS5pdCIsInRyZW50aW5vLWFsdG8tYWRpZ2Uu''@;'; + put 'put ''aXQiLCJ0cmVudGluby1hbHRvYWRpZ2UuaXQiLCJ0cmVudGluby1zLXRpcm9sLml0IiwidHJlbnRpbm8tc3Rpcm9sLml0IiwidHJlbnRpbm8tc3VkLXRpcm9sLml0IiwidHJlbnRpbm8tc1x4ZmNkLXRpcm9sLml0IiwidHJlbnRpbm8tc3VkdGlyb2wuaXQiLCJ0cmVudGluby1zXHhmY2R0aXJv''@;'; + put 'put ''bC5pdCIsInRyZW50aW5vLXN1ZWQtdGlyb2wuaXQiLCJ0cmVudGluby1zdWVkdGlyb2wuaXQiLCJ0cmVudGluby5pdCIsInRyZW50aW5vYS1hZGlnZS5pdCIsInRyZW50aW5vYWFkaWdlLml0IiwidHJlbnRpbm9hbHRvLWFkaWdlLml0IiwidHJlbnRpbm9hbHRvYWRpZ2UuaXQiLCJ0cmVudGlu''@;'; + put 'put ''b3MtdGlyb2wuaXQiLCJ0cmVudGlub3N0aXJvbC5pdCIsInRyZW50aW5vc3VkLXRpcm9sLml0IiwidHJlbnRpbm9zXHhmY2QtdGlyb2wuaXQiLCJ0cmVudGlub3N1ZHRpcm9sLml0IiwidHJlbnRpbm9zXHhmY2R0aXJvbC5pdCIsInRyZW50aW5vc3VlZC10aXJvbC5pdCIsInRyZW50aW5vc3Vl''@;'; + put 'put ''ZHRpcm9sLml0IiwidHJlbnRpbnN1ZC10aXJvbC5pdCIsInRyZW50aW5zXHhmY2QtdGlyb2wuaXQiLCJ0cmVudGluc3VkdGlyb2wuaXQiLCJ0cmVudGluc1x4ZmNkdGlyb2wuaXQiLCJ0cmVudGluc3VlZC10aXJvbC5pdCIsInRyZW50aW5zdWVkdGlyb2wuaXQiLCJ0dXNjYW55Lml0IiwidW1i''@;'; + put 'put ''Lml0IiwidW1icmlhLml0IiwidmFsLWQtYW9zdGEuaXQiLCJ2YWwtZGFvc3RhLml0IiwidmFsZC1hb3N0YS5pdCIsInZhbGRhb3N0YS5pdCIsInZhbGxlLWFvc3RhLml0IiwidmFsbGUtZC1hb3N0YS5pdCIsInZhbGxlLWRhb3N0YS5pdCIsInZhbGxlYW9zdGEuaXQiLCJ2YWxsZWQtYW9zdGEu''@;'; + put 'put ''aXQiLCJ2YWxsZWRhb3N0YS5pdCIsInZhbGxlZS1hb3N0ZS5pdCIsInZhbGxceGU5ZS1hb3N0ZS5pdCIsInZhbGxlZS1kLWFvc3RlLml0IiwidmFsbFx4ZTllLWQtYW9zdGUuaXQiLCJ2YWxsZWVhb3N0ZS5pdCIsInZhbGxceGU5ZWFvc3RlLml0IiwidmFsbGVlZGFvc3RlLml0IiwidmFsbFx4''@;'; + put 'put ''ZTllZGFvc3RlLml0IiwidmFvLml0IiwidmRhLml0IiwidmVuLml0IiwidmVuZXRvLml0IiwiYWcuaXQiLCJhZ3JpZ2VudG8uaXQiLCJhbC5pdCIsImFsZXNzYW5kcmlhLml0IiwiYWx0by1hZGlnZS5pdCIsImFsdG9hZGlnZS5pdCIsImFuLml0IiwiYW5jb25hLml0IiwiYW5kcmlhLWJhcmxl''@;'; + put 'put ''dHRhLXRyYW5pLml0IiwiYW5kcmlhLXRyYW5pLWJhcmxldHRhLml0IiwiYW5kcmlhYmFybGV0dGF0cmFuaS5pdCIsImFuZHJpYXRyYW5pYmFybGV0dGEuaXQiLCJhby5pdCIsImFvc3RhLml0IiwiYW9zdGUuaXQiLCJhcC5pdCIsImFxLml0IiwiYXF1aWxhLml0IiwiYXIuaXQiLCJhcmV6em8u''@;'; + put 'put ''aXQiLCJhc2NvbGktcGljZW5vLml0IiwiYXNjb2xpcGljZW5vLml0IiwiYXN0aS5pdCIsImF0Lml0IiwiYXYuaXQiLCJhdmVsbGluby5pdCIsImJhLml0IiwiYmFsc2FuLXN1ZHRpcm9sLml0IiwiYmFsc2FuLXNceGZjZHRpcm9sLml0IiwiYmFsc2FuLXN1ZWR0aXJvbC5pdCIsImJhbHNhbi5p''@;'; + put 'put ''dCIsImJhcmkuaXQiLCJiYXJsZXR0YS10cmFuaS1hbmRyaWEuaXQiLCJiYXJsZXR0YXRyYW5pYW5kcmlhLml0IiwiYmVsbHVuby5pdCIsImJlbmV2ZW50by5pdCIsImJlcmdhbW8uaXQiLCJiZy5pdCIsImJpLml0IiwiYmllbGxhLml0IiwiYmwuaXQiLCJibi5pdCIsImJvLml0IiwiYm9sb2du''@;'; + put 'put ''YS5pdCIsImJvbHphbm8tYWx0b2FkaWdlLml0IiwiYm9semFuby5pdCIsImJvemVuLXN1ZHRpcm9sLml0IiwiYm96ZW4tc1x4ZmNkdGlyb2wuaXQiLCJib3plbi1zdWVkdGlyb2wuaXQiLCJib3plbi5pdCIsImJyLml0IiwiYnJlc2NpYS5pdCIsImJyaW5kaXNpLml0IiwiYnMuaXQiLCJidC5p''@;'; + put 'put ''dCIsImJ1bHNhbi1zdWR0aXJvbC5pdCIsImJ1bHNhbi1zXHhmY2R0aXJvbC5pdCIsImJ1bHNhbi1zdWVkdGlyb2wuaXQiLCJidWxzYW4uaXQiLCJiei5pdCIsImNhLml0IiwiY2FnbGlhcmkuaXQiLCJjYWx0YW5pc3NldHRhLml0IiwiY2FtcGlkYW5vLW1lZGlvLml0IiwiY2FtcGlkYW5vbWVk''@;'; + put 'put ''aW8uaXQiLCJjYW1wb2Jhc3NvLml0IiwiY2FyYm9uaWEtaWdsZXNpYXMuaXQiLCJjYXJib25pYWlnbGVzaWFzLml0IiwiY2FycmFyYS1tYXNzYS5pdCIsImNhcnJhcmFtYXNzYS5pdCIsImNhc2VydGEuaXQiLCJjYXRhbmlhLml0IiwiY2F0YW56YXJvLml0IiwiY2IuaXQiLCJjZS5pdCIsImNl''@;'; + put 'put ''c2VuYS1mb3JsaS5pdCIsImNlc2VuYS1mb3JsXHhlYy5pdCIsImNlc2VuYWZvcmxpLml0IiwiY2VzZW5hZm9ybFx4ZWMuaXQiLCJjaC5pdCIsImNoaWV0aS5pdCIsImNpLml0IiwiY2wuaXQiLCJjbi5pdCIsImNvLml0IiwiY29tby5pdCIsImNvc2VuemEuaXQiLCJjci5pdCIsImNyZW1vbmEu''@;'; + put 'put ''aXQiLCJjcm90b25lLml0IiwiY3MuaXQiLCJjdC5pdCIsImN1bmVvLml0IiwiY3ouaXQiLCJkZWxsLW9nbGlhc3RyYS5pdCIsImRlbGxvZ2xpYXN0cmEuaXQiLCJlbi5pdCIsImVubmEuaXQiLCJmYy5pdCIsImZlLml0IiwiZmVybW8uaXQiLCJmZXJyYXJhLml0IiwiZmcuaXQiLCJmaS5pdCIs''@;'; + put 'put ''ImZpcmVuemUuaXQiLCJmbG9yZW5jZS5pdCIsImZtLml0IiwiZm9nZ2lhLml0IiwiZm9ybGktY2VzZW5hLml0IiwiZm9ybFx4ZWMtY2VzZW5hLml0IiwiZm9ybGljZXNlbmEuaXQiLCJmb3JsXHhlY2Nlc2VuYS5pdCIsImZyLml0IiwiZnJvc2lub25lLml0IiwiZ2UuaXQiLCJnZW5vYS5pdCIs''@;'; + put 'put ''Imdlbm92YS5pdCIsImdvLml0IiwiZ29yaXppYS5pdCIsImdyLml0IiwiZ3Jvc3NldG8uaXQiLCJpZ2xlc2lhcy1jYXJib25pYS5pdCIsImlnbGVzaWFzY2FyYm9uaWEuaXQiLCJpbS5pdCIsImltcGVyaWEuaXQiLCJpcy5pdCIsImlzZXJuaWEuaXQiLCJrci5pdCIsImxhLXNwZXppYS5pdCIs''@;'; + put 'put ''ImxhcXVpbGEuaXQiLCJsYXNwZXppYS5pdCIsImxhdGluYS5pdCIsImxjLml0IiwibGUuaXQiLCJsZWNjZS5pdCIsImxlY2NvLml0IiwibGkuaXQiLCJsaXZvcm5vLml0IiwibG8uaXQiLCJsb2RpLml0IiwibHQuaXQiLCJsdS5pdCIsImx1Y2NhLml0IiwibWFjZXJhdGEuaXQiLCJtYW50b3Zh''@;'; + put 'put ''Lml0IiwibWFzc2EtY2FycmFyYS5pdCIsIm1hc3NhY2FycmFyYS5pdCIsIm1hdGVyYS5pdCIsIm1iLml0IiwibWMuaXQiLCJtZS5pdCIsIm1lZGlvLWNhbXBpZGFuby5pdCIsIm1lZGlvY2FtcGlkYW5vLml0IiwibWVzc2luYS5pdCIsIm1pLml0IiwibWlsYW4uaXQiLCJtaWxhbm8uaXQiLCJt''@;'; + put 'put ''bi5pdCIsIm1vLml0IiwibW9kZW5hLml0IiwibW9uemEtYnJpYW56YS5pdCIsIm1vbnphLWUtZGVsbGEtYnJpYW56YS5pdCIsIm1vbnphLml0IiwibW9uemFicmlhbnphLml0IiwibW9uemFlYnJpYW56YS5pdCIsIm1vbnphZWRlbGxhYnJpYW56YS5pdCIsIm1zLml0IiwibXQuaXQiLCJuYS5p''@;'; + put 'put ''dCIsIm5hcGxlcy5pdCIsIm5hcG9saS5pdCIsIm5vLml0Iiwibm92YXJhLml0IiwibnUuaXQiLCJudW9yby5pdCIsIm9nLml0Iiwib2dsaWFzdHJhLml0Iiwib2xiaWEtdGVtcGlvLml0Iiwib2xiaWF0ZW1waW8uaXQiLCJvci5pdCIsIm9yaXN0YW5vLml0Iiwib3QuaXQiLCJwYS5pdCIsInBh''@;'; + put 'put ''ZG92YS5pdCIsInBhZHVhLml0IiwicGFsZXJtby5pdCIsInBhcm1hLml0IiwicGF2aWEuaXQiLCJwYy5pdCIsInBkLml0IiwicGUuaXQiLCJwZXJ1Z2lhLml0IiwicGVzYXJvLXVyYmluby5pdCIsInBlc2Fyb3VyYmluby5pdCIsInBlc2NhcmEuaXQiLCJwZy5pdCIsInBpLml0IiwicGlhY2Vu''@;'; + put 'put ''emEuaXQiLCJwaXNhLml0IiwicGlzdG9pYS5pdCIsInBuLml0IiwicG8uaXQiLCJwb3JkZW5vbmUuaXQiLCJwb3RlbnphLml0IiwicHIuaXQiLCJwcmF0by5pdCIsInB0Lml0IiwicHUuaXQiLCJwdi5pdCIsInB6Lml0IiwicmEuaXQiLCJyYWd1c2EuaXQiLCJyYXZlbm5hLml0IiwicmMuaXQi''@;'; + put 'put ''LCJyZS5pdCIsInJlZ2dpby1jYWxhYnJpYS5pdCIsInJlZ2dpby1lbWlsaWEuaXQiLCJyZWdnaW9jYWxhYnJpYS5pdCIsInJlZ2dpb2VtaWxpYS5pdCIsInJnLml0IiwicmkuaXQiLCJyaWV0aS5pdCIsInJpbWluaS5pdCIsInJtLml0Iiwicm4uaXQiLCJyby5pdCIsInJvbWEuaXQiLCJyb21l''@;'; + put 'put ''Lml0Iiwicm92aWdvLml0Iiwic2EuaXQiLCJzYWxlcm5vLml0Iiwic2Fzc2FyaS5pdCIsInNhdm9uYS5pdCIsInNpLml0Iiwic2llbmEuaXQiLCJzaXJhY3VzYS5pdCIsInNvLml0Iiwic29uZHJpby5pdCIsInNwLml0Iiwic3IuaXQiLCJzcy5pdCIsInN1ZWR0aXJvbC5pdCIsInNceGZjZHRp''@;'; + put 'put ''cm9sLml0Iiwic3YuaXQiLCJ0YS5pdCIsInRhcmFudG8uaXQiLCJ0ZS5pdCIsInRlbXBpby1vbGJpYS5pdCIsInRlbXBpb29sYmlhLml0IiwidGVyYW1vLml0IiwidGVybmkuaXQiLCJ0bi5pdCIsInRvLml0IiwidG9yaW5vLml0IiwidHAuaXQiLCJ0ci5pdCIsInRyYW5pLWFuZHJpYS1iYXJs''@;'; + put 'put ''ZXR0YS5pdCIsInRyYW5pLWJhcmxldHRhLWFuZHJpYS5pdCIsInRyYW5pYW5kcmlhYmFybGV0dGEuaXQiLCJ0cmFuaWJhcmxldHRhYW5kcmlhLml0IiwidHJhcGFuaS5pdCIsInRyZW50by5pdCIsInRyZXZpc28uaXQiLCJ0cmllc3RlLml0IiwidHMuaXQiLCJ0dXJpbi5pdCIsInR2Lml0Iiwi''@;'; + put 'put ''dWQuaXQiLCJ1ZGluZS5pdCIsInVyYmluby1wZXNhcm8uaXQiLCJ1cmJpbm9wZXNhcm8uaXQiLCJ2YS5pdCIsInZhcmVzZS5pdCIsInZiLml0IiwidmMuaXQiLCJ2ZS5pdCIsInZlbmV6aWEuaXQiLCJ2ZW5pY2UuaXQiLCJ2ZXJiYW5pYS5pdCIsInZlcmNlbGxpLml0IiwidmVyb25hLml0Iiwi''@;'; + put 'put ''dmkuaXQiLCJ2aWJvLXZhbGVudGlhLml0Iiwidmlib3ZhbGVudGlhLml0IiwidmljZW56YS5pdCIsInZpdGVyYm8uaXQiLCJ2ci5pdCIsInZzLml0IiwidnQuaXQiLCJ2di5pdCIsImplIiwiY28uamUiLCJuZXQuamUiLCJvcmcuamUiLCIqLmptIiwiam8iLCJjb20uam8iLCJvcmcuam8iLCJu''@;'; + put 'put ''ZXQuam8iLCJlZHUuam8iLCJzY2guam8iLCJnb3Yuam8iLCJtaWwuam8iLCJuYW1lLmpvIiwiam9icyIsImpwIiwiYWMuanAiLCJhZC5qcCIsImNvLmpwIiwiZWQuanAiLCJnby5qcCIsImdyLmpwIiwibGcuanAiLCJuZS5qcCIsIm9yLmpwIiwiYWljaGkuanAiLCJha2l0YS5qcCIsImFvbW9y''@;'; + put 'put ''aS5qcCIsImNoaWJhLmpwIiwiZWhpbWUuanAiLCJmdWt1aS5qcCIsImZ1a3Vva2EuanAiLCJmdWt1c2hpbWEuanAiLCJnaWZ1LmpwIiwiZ3VubWEuanAiLCJoaXJvc2hpbWEuanAiLCJob2trYWlkby5qcCIsImh5b2dvLmpwIiwiaWJhcmFraS5qcCIsImlzaGlrYXdhLmpwIiwiaXdhdGUuanAi''@;'; + put 'put ''LCJrYWdhd2EuanAiLCJrYWdvc2hpbWEuanAiLCJrYW5hZ2F3YS5qcCIsImtvY2hpLmpwIiwia3VtYW1vdG8uanAiLCJreW90by5qcCIsIm1pZS5qcCIsIm1peWFnaS5qcCIsIm1peWF6YWtpLmpwIiwibmFnYW5vLmpwIiwibmFnYXNha2kuanAiLCJuYXJhLmpwIiwibmlpZ2F0YS5qcCIsIm9p''@;'; + put 'put ''dGEuanAiLCJva2F5YW1hLmpwIiwib2tpbmF3YS5qcCIsIm9zYWthLmpwIiwic2FnYS5qcCIsInNhaXRhbWEuanAiLCJzaGlnYS5qcCIsInNoaW1hbmUuanAiLCJzaGl6dW9rYS5qcCIsInRvY2hpZ2kuanAiLCJ0b2t1c2hpbWEuanAiLCJ0b2t5by5qcCIsInRvdHRvcmkuanAiLCJ0b3lhbWEu''@;'; + put 'put ''anAiLCJ3YWtheWFtYS5qcCIsInlhbWFnYXRhLmpwIiwieWFtYWd1Y2hpLmpwIiwieWFtYW5hc2hpLmpwIiwiXHU2ODAzXHU2NzI4LmpwIiwiXHU2MTFiXHU3N2U1LmpwIiwiXHU2MTFiXHU1YTliLmpwIiwiXHU1MTc1XHU1ZWFiLmpwIiwiXHU3MThhXHU2NzJjLmpwIiwiXHU4MzI4XHU1N2Nl''@;'; + put 'put ''LmpwIiwiXHU1MzE3XHU2ZDc3XHU5MDUzLmpwIiwiXHU1MzQzXHU4NDQ5LmpwIiwiXHU1NDhjXHU2YjRjXHU1YzcxLmpwIiwiXHU5NTc3XHU1ZDBlLmpwIiwiXHU5NTc3XHU5MWNlLmpwIiwiXHU2NWIwXHU2ZjVmLmpwIiwiXHU5NzUyXHU2OGVlLmpwIiwiXHU5NzU5XHU1Y2ExLmpwIiwiXHU2''@;'; + put 'put ''NzcxXHU0ZWFjLmpwIiwiXHU3N2YzXHU1ZGRkLmpwIiwiXHU1N2ZjXHU3Mzg5LmpwIiwiXHU0ZTA5XHU5MWNkLmpwIiwiXHU0ZWFjXHU5MGZkLmpwIiwiXHU0ZjUwXHU4Y2MwLmpwIiwiXHU1OTI3XHU1MjA2LmpwIiwiXHU1OTI3XHU5NjJhLmpwIiwiXHU1OTQ4XHU4MjZmLmpwIiwiXHU1YmFl''@;'; + put 'put ''XHU1N2NlLmpwIiwiXHU1YmFlXHU1ZDBlLmpwIiwiXHU1YmNjXHU1YzcxLmpwIiwiXHU1YzcxXHU1M2UzLmpwIiwiXHU1YzcxXHU1ZjYyLmpwIiwiXHU1YzcxXHU2OGE4LmpwIiwiXHU1Y2E5XHU2MjRiLmpwIiwiXHU1YzkwXHU5NjFjLmpwIiwiXHU1Y2ExXHU1YzcxLmpwIiwiXHU1Y2Y2XHU2''@;'; + put 'put ''ODM5LmpwIiwiXHU1ZTgzXHU1Y2Y2LmpwIiwiXHU1ZmIzXHU1Y2Y2LmpwIiwiXHU2Yzk2XHU3ZTA0LmpwIiwiXHU2ZWNiXHU4Y2MwLmpwIiwiXHU3OTVlXHU1OTQ4XHU1ZGRkLmpwIiwiXHU3OThmXHU0ZTk1LmpwIiwiXHU3OThmXHU1Y2ExLmpwIiwiXHU3OThmXHU1Y2Y2LmpwIiwiXHU3OWNi''@;'; + put 'put ''XHU3NTMwLmpwIiwiXHU3ZmE0XHU5OWFjLmpwIiwiXHU5OTk5XHU1ZGRkLmpwIiwiXHU5YWQ4XHU3N2U1LmpwIiwiXHU5Y2U1XHU1M2Q2LmpwIiwiXHU5ZTdmXHU1MTUwXHU1Y2Y2LmpwIiwiKi5rYXdhc2FraS5qcCIsIioua2l0YWt5dXNodS5qcCIsIioua29iZS5qcCIsIioubmFnb3lhLmpw''@;'; + put 'put ''IiwiKi5zYXBwb3JvLmpwIiwiKi5zZW5kYWkuanAiLCIqLnlva29oYW1hLmpwIiwiIWNpdHkua2F3YXNha2kuanAiLCIhY2l0eS5raXRha3l1c2h1LmpwIiwiIWNpdHkua29iZS5qcCIsIiFjaXR5Lm5hZ295YS5qcCIsIiFjaXR5LnNhcHBvcm8uanAiLCIhY2l0eS5zZW5kYWkuanAiLCIhY2l0''@;'; + put 'put ''eS55b2tvaGFtYS5qcCIsImFpc2FpLmFpY2hpLmpwIiwiYW1hLmFpY2hpLmpwIiwiYW5qby5haWNoaS5qcCIsImFzdWtlLmFpY2hpLmpwIiwiY2hpcnl1LmFpY2hpLmpwIiwiY2hpdGEuYWljaGkuanAiLCJmdXNvLmFpY2hpLmpwIiwiZ2FtYWdvcmkuYWljaGkuanAiLCJoYW5kYS5haWNoaS5q''@;'; + put 'put ''cCIsImhhenUuYWljaGkuanAiLCJoZWtpbmFuLmFpY2hpLmpwIiwiaGlnYXNoaXVyYS5haWNoaS5qcCIsImljaGlub21peWEuYWljaGkuanAiLCJpbmF6YXdhLmFpY2hpLmpwIiwiaW51eWFtYS5haWNoaS5qcCIsImlzc2hpa2kuYWljaGkuanAiLCJpd2FrdXJhLmFpY2hpLmpwIiwia2FuaWUu''@;'; + put 'put ''YWljaGkuanAiLCJrYXJpeWEuYWljaGkuanAiLCJrYXN1Z2FpLmFpY2hpLmpwIiwia2lyYS5haWNoaS5qcCIsImtpeW9zdS5haWNoaS5qcCIsImtvbWFraS5haWNoaS5qcCIsImtvbmFuLmFpY2hpLmpwIiwia290YS5haWNoaS5qcCIsIm1paGFtYS5haWNoaS5qcCIsIm1peW9zaGkuYWljaGku''@;'; + put 'put ''anAiLCJuaXNoaW8uYWljaGkuanAiLCJuaXNzaGluLmFpY2hpLmpwIiwib2J1LmFpY2hpLmpwIiwib2d1Y2hpLmFpY2hpLmpwIiwib2hhcnUuYWljaGkuanAiLCJva2F6YWtpLmFpY2hpLmpwIiwib3dhcmlhc2FoaS5haWNoaS5qcCIsInNldG8uYWljaGkuanAiLCJzaGlrYXRzdS5haWNoaS5q''@;'; + put 'put ''cCIsInNoaW5zaGlyby5haWNoaS5qcCIsInNoaXRhcmEuYWljaGkuanAiLCJ0YWhhcmEuYWljaGkuanAiLCJ0YWthaGFtYS5haWNoaS5qcCIsInRvYmlzaGltYS5haWNoaS5qcCIsInRvZWkuYWljaGkuanAiLCJ0b2dvLmFpY2hpLmpwIiwidG9rYWkuYWljaGkuanAiLCJ0b2tvbmFtZS5haWNo''@;'; + put 'put ''aS5qcCIsInRveW9ha2UuYWljaGkuanAiLCJ0b3lvaGFzaGkuYWljaGkuanAiLCJ0b3lva2F3YS5haWNoaS5qcCIsInRveW9uZS5haWNoaS5qcCIsInRveW90YS5haWNoaS5qcCIsInRzdXNoaW1hLmFpY2hpLmpwIiwieWF0b21pLmFpY2hpLmpwIiwiYWtpdGEuYWtpdGEuanAiLCJkYWlzZW4u''@;'; + put 'put ''YWtpdGEuanAiLCJmdWppc2F0by5ha2l0YS5qcCIsImdvam9tZS5ha2l0YS5qcCIsImhhY2hpcm9nYXRhLmFraXRhLmpwIiwiaGFwcG91LmFraXRhLmpwIiwiaGlnYXNoaW5hcnVzZS5ha2l0YS5qcCIsImhvbmpvLmFraXRhLmpwIiwiaG9uanlvLmFraXRhLmpwIiwiaWthd2EuYWtpdGEuanAi''@;'; + put 'put ''LCJrYW1pa29hbmkuYWtpdGEuanAiLCJrYW1pb2thLmFraXRhLmpwIiwia2F0YWdhbWkuYWtpdGEuanAiLCJrYXp1bm8uYWtpdGEuanAiLCJraXRhYWtpdGEuYWtpdGEuanAiLCJrb3Nha2EuYWtpdGEuanAiLCJreW93YS5ha2l0YS5qcCIsIm1pc2F0by5ha2l0YS5qcCIsIm1pdGFuZS5ha2l0''@;'; + put 'put ''YS5qcCIsIm1vcml5b3NoaS5ha2l0YS5qcCIsIm5pa2Foby5ha2l0YS5qcCIsIm5vc2hpcm8uYWtpdGEuanAiLCJvZGF0ZS5ha2l0YS5qcCIsIm9nYS5ha2l0YS5qcCIsIm9nYXRhLmFraXRhLmpwIiwic2VtYm9rdS5ha2l0YS5qcCIsInlva290ZS5ha2l0YS5qcCIsInl1cmlob25qby5ha2l0''@;'; + put 'put ''YS5qcCIsImFvbW9yaS5hb21vcmkuanAiLCJnb25vaGUuYW9tb3JpLmpwIiwiaGFjaGlub2hlLmFvbW9yaS5qcCIsImhhc2hpa2FtaS5hb21vcmkuanAiLCJoaXJhbmFpLmFvbW9yaS5qcCIsImhpcm9zYWtpLmFvbW9yaS5qcCIsIml0YXlhbmFnaS5hb21vcmkuanAiLCJrdXJvaXNoaS5hb21v''@;'; + put 'put ''cmkuanAiLCJtaXNhd2EuYW9tb3JpLmpwIiwibXV0c3UuYW9tb3JpLmpwIiwibmFrYWRvbWFyaS5hb21vcmkuanAiLCJub2hlamkuYW9tb3JpLmpwIiwib2lyYXNlLmFvbW9yaS5qcCIsIm93YW5pLmFvbW9yaS5qcCIsInJva3Vub2hlLmFvbW9yaS5qcCIsInNhbm5vaGUuYW9tb3JpLmpwIiwi''@;'; + put 'put ''c2hpY2hpbm9oZS5hb21vcmkuanAiLCJzaGluZ28uYW9tb3JpLmpwIiwidGFra28uYW9tb3JpLmpwIiwidG93YWRhLmFvbW9yaS5qcCIsInRzdWdhcnUuYW9tb3JpLmpwIiwidHN1cnV0YS5hb21vcmkuanAiLCJhYmlrby5jaGliYS5qcCIsImFzYWhpLmNoaWJhLmpwIiwiY2hvbmFuLmNoaWJh''@;'; + put 'put ''LmpwIiwiY2hvc2VpLmNoaWJhLmpwIiwiY2hvc2hpLmNoaWJhLmpwIiwiY2h1by5jaGliYS5qcCIsImZ1bmFiYXNoaS5jaGliYS5qcCIsImZ1dHRzdS5jaGliYS5qcCIsImhhbmFtaWdhd2EuY2hpYmEuanAiLCJpY2hpaGFyYS5jaGliYS5qcCIsImljaGlrYXdhLmNoaWJhLmpwIiwiaWNoaW5v''@;'; + put 'put ''bWl5YS5jaGliYS5qcCIsImluemFpLmNoaWJhLmpwIiwiaXN1bWkuY2hpYmEuanAiLCJrYW1hZ2F5YS5jaGliYS5qcCIsImthbW9nYXdhLmNoaWJhLmpwIiwia2FzaGl3YS5jaGliYS5qcCIsImthdG9yaS5jaGliYS5qcCIsImthdHN1dXJhLmNoaWJhLmpwIiwia2ltaXRzdS5jaGliYS5qcCIs''@;'; + put 'put ''Imtpc2FyYXp1LmNoaWJhLmpwIiwia296YWtpLmNoaWJhLmpwIiwia3VqdWt1cmkuY2hpYmEuanAiLCJreW9uYW4uY2hpYmEuanAiLCJtYXRzdWRvLmNoaWJhLmpwIiwibWlkb3JpLmNoaWJhLmpwIiwibWloYW1hLmNoaWJhLmpwIiwibWluYW1pYm9zby5jaGliYS5qcCIsIm1vYmFyYS5jaGli''@;'; + put 'put ''YS5qcCIsIm11dHN1emF3YS5jaGliYS5qcCIsIm5hZ2FyYS5jaGliYS5qcCIsIm5hZ2FyZXlhbWEuY2hpYmEuanAiLCJuYXJhc2hpbm8uY2hpYmEuanAiLCJuYXJpdGEuY2hpYmEuanAiLCJub2RhLmNoaWJhLmpwIiwib2FtaXNoaXJhc2F0by5jaGliYS5qcCIsIm9taWdhd2EuY2hpYmEuanAi''@;'; + put 'put ''LCJvbmp1a3UuY2hpYmEuanAiLCJvdGFraS5jaGliYS5qcCIsInNha2FlLmNoaWJhLmpwIiwic2FrdXJhLmNoaWJhLmpwIiwic2hpbW9mdXNhLmNoaWJhLmpwIiwic2hpcmFrby5jaGliYS5qcCIsInNoaXJvaS5jaGliYS5qcCIsInNoaXN1aS5jaGliYS5qcCIsInNvZGVnYXVyYS5jaGliYS5q''@;'; + put 'put ''cCIsInNvc2EuY2hpYmEuanAiLCJ0YWtvLmNoaWJhLmpwIiwidGF0ZXlhbWEuY2hpYmEuanAiLCJ0b2dhbmUuY2hpYmEuanAiLCJ0b2hub3Noby5jaGliYS5qcCIsInRvbWlzYXRvLmNoaWJhLmpwIiwidXJheWFzdS5jaGliYS5qcCIsInlhY2hpbWF0YS5jaGliYS5qcCIsInlhY2hpeW8uY2hp''@;'; + put 'put ''YmEuanAiLCJ5b2thaWNoaWJhLmNoaWJhLmpwIiwieW9rb3NoaWJhaGlrYXJpLmNoaWJhLmpwIiwieW90c3VrYWlkby5jaGliYS5qcCIsImFpbmFuLmVoaW1lLmpwIiwiaG9uYWkuZWhpbWUuanAiLCJpa2F0YS5laGltZS5qcCIsImltYWJhcmkuZWhpbWUuanAiLCJpeW8uZWhpbWUuanAiLCJr''@;'; + put 'put ''YW1pamltYS5laGltZS5qcCIsImtpaG9rdS5laGltZS5qcCIsImt1bWFrb2dlbi5laGltZS5qcCIsIm1hc2FraS5laGltZS5qcCIsIm1hdHN1bm8uZWhpbWUuanAiLCJtYXRzdXlhbWEuZWhpbWUuanAiLCJuYW1pa2F0YS5laGltZS5qcCIsIm5paWhhbWEuZWhpbWUuanAiLCJvenUuZWhpbWUu''@;'; + put 'put ''anAiLCJzYWlqby5laGltZS5qcCIsInNlaXlvLmVoaW1lLmpwIiwic2hpa29rdWNodW8uZWhpbWUuanAiLCJ0b2JlLmVoaW1lLmpwIiwidG9vbi5laGltZS5qcCIsInVjaGlrby5laGltZS5qcCIsInV3YWppbWEuZWhpbWUuanAiLCJ5YXdhdGFoYW1hLmVoaW1lLmpwIiwiZWNoaXplbi5mdWt1''@;'; + put 'put ''aS5qcCIsImVpaGVpamkuZnVrdWkuanAiLCJmdWt1aS5mdWt1aS5qcCIsImlrZWRhLmZ1a3VpLmpwIiwia2F0c3V5YW1hLmZ1a3VpLmpwIiwibWloYW1hLmZ1a3VpLmpwIiwibWluYW1pZWNoaXplbi5mdWt1aS5qcCIsIm9iYW1hLmZ1a3VpLmpwIiwib2hpLmZ1a3VpLmpwIiwib25vLmZ1a3Vp''@;'; + put 'put ''LmpwIiwic2FiYWUuZnVrdWkuanAiLCJzYWthaS5mdWt1aS5qcCIsInRha2FoYW1hLmZ1a3VpLmpwIiwidHN1cnVnYS5mdWt1aS5qcCIsIndha2FzYS5mdWt1aS5qcCIsImFzaGl5YS5mdWt1b2thLmpwIiwiYnV6ZW4uZnVrdW9rYS5qcCIsImNoaWt1Z28uZnVrdW9rYS5qcCIsImNoaWt1aG8u''@;'; + put 'put ''ZnVrdW9rYS5qcCIsImNoaWt1am8uZnVrdW9rYS5qcCIsImNoaWt1c2hpbm8uZnVrdW9rYS5qcCIsImNoaWt1emVuLmZ1a3Vva2EuanAiLCJjaHVvLmZ1a3Vva2EuanAiLCJkYXphaWZ1LmZ1a3Vva2EuanAiLCJmdWt1Y2hpLmZ1a3Vva2EuanAiLCJoYWthdGEuZnVrdW9rYS5qcCIsImhpZ2Fz''@;'; + put 'put ''aGkuZnVrdW9rYS5qcCIsImhpcm9rYXdhLmZ1a3Vva2EuanAiLCJoaXNheWFtYS5mdWt1b2thLmpwIiwiaWl6dWthLmZ1a3Vva2EuanAiLCJpbmF0c3VraS5mdWt1b2thLmpwIiwia2Foby5mdWt1b2thLmpwIiwia2FzdWdhLmZ1a3Vva2EuanAiLCJrYXN1eWEuZnVrdW9rYS5qcCIsImthd2Fy''@;'; + put 'put ''YS5mdWt1b2thLmpwIiwia2Vpc2VuLmZ1a3Vva2EuanAiLCJrb2dhLmZ1a3Vva2EuanAiLCJrdXJhdGUuZnVrdW9rYS5qcCIsImt1cm9naS5mdWt1b2thLmpwIiwia3VydW1lLmZ1a3Vva2EuanAiLCJtaW5hbWkuZnVrdW9rYS5qcCIsIm1peWFrby5mdWt1b2thLmpwIiwibWl5YW1hLmZ1a3Vv''@;'; + put 'put ''a2EuanAiLCJtaXlhd2FrYS5mdWt1b2thLmpwIiwibWl6dW1ha2kuZnVrdW9rYS5qcCIsIm11bmFrYXRhLmZ1a3Vva2EuanAiLCJuYWthZ2F3YS5mdWt1b2thLmpwIiwibmFrYW1hLmZ1a3Vva2EuanAiLCJuaXNoaS5mdWt1b2thLmpwIiwibm9nYXRhLmZ1a3Vva2EuanAiLCJvZ29yaS5mdWt1''@;'; + put 'put ''b2thLmpwIiwib2thZ2FraS5mdWt1b2thLmpwIiwib2thd2EuZnVrdW9rYS5qcCIsIm9raS5mdWt1b2thLmpwIiwib211dGEuZnVrdW9rYS5qcCIsIm9uZ2EuZnVrdW9rYS5qcCIsIm9ub2pvLmZ1a3Vva2EuanAiLCJvdG8uZnVrdW9rYS5qcCIsInNhaWdhd2EuZnVrdW9rYS5qcCIsInNhc2Fn''@;'; + put 'put ''dXJpLmZ1a3Vva2EuanAiLCJzaGluZ3UuZnVrdW9rYS5qcCIsInNoaW55b3NoaXRvbWkuZnVrdW9rYS5qcCIsInNob25haS5mdWt1b2thLmpwIiwic29lZGEuZnVrdW9rYS5qcCIsInN1ZS5mdWt1b2thLmpwIiwidGFjaGlhcmFpLmZ1a3Vva2EuanAiLCJ0YWdhd2EuZnVrdW9rYS5qcCIsInRh''@;'; + put 'put ''a2F0YS5mdWt1b2thLmpwIiwidG9oby5mdWt1b2thLmpwIiwidG95b3RzdS5mdWt1b2thLmpwIiwidHN1aWtpLmZ1a3Vva2EuanAiLCJ1a2loYS5mdWt1b2thLmpwIiwidW1pLmZ1a3Vva2EuanAiLCJ1c3VpLmZ1a3Vva2EuanAiLCJ5YW1hZGEuZnVrdW9rYS5qcCIsInlhbWUuZnVrdW9rYS5q''@;'; + put 'put ''cCIsInlhbmFnYXdhLmZ1a3Vva2EuanAiLCJ5dWt1aGFzaGkuZnVrdW9rYS5qcCIsImFpenViYW5nZS5mdWt1c2hpbWEuanAiLCJhaXp1bWlzYXRvLmZ1a3VzaGltYS5qcCIsImFpenV3YWthbWF0c3UuZnVrdXNoaW1hLmpwIiwiYXNha2F3YS5mdWt1c2hpbWEuanAiLCJiYW5kYWkuZnVrdXNo''@;'; + put 'put ''aW1hLmpwIiwiZGF0ZS5mdWt1c2hpbWEuanAiLCJmdWt1c2hpbWEuZnVrdXNoaW1hLmpwIiwiZnVydWRvbm8uZnVrdXNoaW1hLmpwIiwiZnV0YWJhLmZ1a3VzaGltYS5qcCIsImhhbmF3YS5mdWt1c2hpbWEuanAiLCJoaWdhc2hpLmZ1a3VzaGltYS5qcCIsImhpcmF0YS5mdWt1c2hpbWEuanAi''@;'; + put 'put ''LCJoaXJvbm8uZnVrdXNoaW1hLmpwIiwiaWl0YXRlLmZ1a3VzaGltYS5qcCIsImluYXdhc2hpcm8uZnVrdXNoaW1hLmpwIiwiaXNoaWthd2EuZnVrdXNoaW1hLmpwIiwiaXdha2kuZnVrdXNoaW1hLmpwIiwiaXp1bWl6YWtpLmZ1a3VzaGltYS5qcCIsImthZ2FtaWlzaGkuZnVrdXNoaW1hLmpw''@;'; + put 'put ''Iiwia2FuZXlhbWEuZnVrdXNoaW1hLmpwIiwia2F3YW1hdGEuZnVrdXNoaW1hLmpwIiwia2l0YWthdGEuZnVrdXNoaW1hLmpwIiwia2l0YXNoaW9iYXJhLmZ1a3VzaGltYS5qcCIsImtvb3JpLmZ1a3VzaGltYS5qcCIsImtvcml5YW1hLmZ1a3VzaGltYS5qcCIsImt1bmltaS5mdWt1c2hpbWEu''@;'; + put 'put ''anAiLCJtaWhhcnUuZnVrdXNoaW1hLmpwIiwibWlzaGltYS5mdWt1c2hpbWEuanAiLCJuYW1pZS5mdWt1c2hpbWEuanAiLCJuYW5nby5mdWt1c2hpbWEuanAiLCJuaXNoaWFpenUuZnVrdXNoaW1hLmpwIiwibmlzaGlnby5mdWt1c2hpbWEuanAiLCJva3VtYS5mdWt1c2hpbWEuanAiLCJvbW90''@;'; + put 'put ''ZWdvLmZ1a3VzaGltYS5qcCIsIm9uby5mdWt1c2hpbWEuanAiLCJvdGFtYS5mdWt1c2hpbWEuanAiLCJzYW1lZ2F3YS5mdWt1c2hpbWEuanAiLCJzaGltb2dvLmZ1a3VzaGltYS5qcCIsInNoaXJha2F3YS5mdWt1c2hpbWEuanAiLCJzaG93YS5mdWt1c2hpbWEuanAiLCJzb21hLmZ1a3VzaGlt''@;'; + put 'put ''YS5qcCIsInN1a2FnYXdhLmZ1a3VzaGltYS5qcCIsInRhaXNoaW4uZnVrdXNoaW1hLmpwIiwidGFtYWthd2EuZnVrdXNoaW1hLmpwIiwidGFuYWd1cmEuZnVrdXNoaW1hLmpwIiwidGVuZWkuZnVrdXNoaW1hLmpwIiwieWFidWtpLmZ1a3VzaGltYS5qcCIsInlhbWF0by5mdWt1c2hpbWEuanAi''@;'; + put 'put ''LCJ5YW1hdHN1cmkuZnVrdXNoaW1hLmpwIiwieWFuYWl6dS5mdWt1c2hpbWEuanAiLCJ5dWdhd2EuZnVrdXNoaW1hLmpwIiwiYW5wYWNoaS5naWZ1LmpwIiwiZW5hLmdpZnUuanAiLCJnaWZ1LmdpZnUuanAiLCJnaW5hbi5naWZ1LmpwIiwiZ29kby5naWZ1LmpwIiwiZ3Vqby5naWZ1LmpwIiwi''@;'; + put 'put ''aGFzaGltYS5naWZ1LmpwIiwiaGljaGlzby5naWZ1LmpwIiwiaGlkYS5naWZ1LmpwIiwiaGlnYXNoaXNoaXJha2F3YS5naWZ1LmpwIiwiaWJpZ2F3YS5naWZ1LmpwIiwiaWtlZGEuZ2lmdS5qcCIsImtha2FtaWdhaGFyYS5naWZ1LmpwIiwia2FuaS5naWZ1LmpwIiwia2FzYWhhcmEuZ2lmdS5q''@;'; + put 'put ''cCIsImthc2FtYXRzdS5naWZ1LmpwIiwia2F3YXVlLmdpZnUuanAiLCJraXRhZ2F0YS5naWZ1LmpwIiwibWluby5naWZ1LmpwIiwibWlub2thbW8uZ2lmdS5qcCIsIm1pdGFrZS5naWZ1LmpwIiwibWl6dW5hbWkuZ2lmdS5qcCIsIm1vdG9zdS5naWZ1LmpwIiwibmFrYXRzdWdhd2EuZ2lmdS5q''@;'; + put 'put ''cCIsIm9nYWtpLmdpZnUuanAiLCJzYWthaG9naS5naWZ1LmpwIiwic2VraS5naWZ1LmpwIiwic2VraWdhaGFyYS5naWZ1LmpwIiwic2hpcmFrYXdhLmdpZnUuanAiLCJ0YWppbWkuZ2lmdS5qcCIsInRha2F5YW1hLmdpZnUuanAiLCJ0YXJ1aS5naWZ1LmpwIiwidG9raS5naWZ1LmpwIiwidG9t''@;'; + put 'put ''aWthLmdpZnUuanAiLCJ3YW5vdWNoaS5naWZ1LmpwIiwieWFtYWdhdGEuZ2lmdS5qcCIsInlhb3RzdS5naWZ1LmpwIiwieW9yby5naWZ1LmpwIiwiYW5uYWthLmd1bm1hLmpwIiwiY2hpeW9kYS5ndW5tYS5qcCIsImZ1amlva2EuZ3VubWEuanAiLCJoaWdhc2hpYWdhdHN1bWEuZ3VubWEuanAi''@;'; + put 'put ''LCJpc2VzYWtpLmd1bm1hLmpwIiwiaXRha3VyYS5ndW5tYS5qcCIsImthbm5hLmd1bm1hLmpwIiwia2FucmEuZ3VubWEuanAiLCJrYXRhc2hpbmEuZ3VubWEuanAiLCJrYXdhYmEuZ3VubWEuanAiLCJraXJ5dS5ndW5tYS5qcCIsImt1c2F0c3UuZ3VubWEuanAiLCJtYWViYXNoaS5ndW5tYS5q''@;'; + put 'put ''cCIsIm1laXdhLmd1bm1hLmpwIiwibWlkb3JpLmd1bm1hLmpwIiwibWluYWthbWkuZ3VubWEuanAiLCJuYWdhbm9oYXJhLmd1bm1hLmpwIiwibmFrYW5vam8uZ3VubWEuanAiLCJuYW5tb2t1Lmd1bm1hLmpwIiwibnVtYXRhLmd1bm1hLmpwIiwib2l6dW1pLmd1bm1hLmpwIiwib3JhLmd1bm1h''@;'; + put 'put ''LmpwIiwib3RhLmd1bm1hLmpwIiwic2hpYnVrYXdhLmd1bm1hLmpwIiwic2hpbW9uaXRhLmd1bm1hLmpwIiwic2hpbnRvLmd1bm1hLmpwIiwic2hvd2EuZ3VubWEuanAiLCJ0YWthc2FraS5ndW5tYS5qcCIsInRha2F5YW1hLmd1bm1hLmpwIiwidGFtYW11cmEuZ3VubWEuanAiLCJ0YXRlYmF5''@;'; + put 'put ''YXNoaS5ndW5tYS5qcCIsInRvbWlva2EuZ3VubWEuanAiLCJ0c3VraXlvbm8uZ3VubWEuanAiLCJ0c3VtYWdvaS5ndW5tYS5qcCIsInVlbm8uZ3VubWEuanAiLCJ5b3NoaW9rYS5ndW5tYS5qcCIsImFzYW1pbmFtaS5oaXJvc2hpbWEuanAiLCJkYWl3YS5oaXJvc2hpbWEuanAiLCJldGFqaW1h''@;'; + put 'put ''Lmhpcm9zaGltYS5qcCIsImZ1Y2h1Lmhpcm9zaGltYS5qcCIsImZ1a3V5YW1hLmhpcm9zaGltYS5qcCIsImhhdHN1a2FpY2hpLmhpcm9zaGltYS5qcCIsImhpZ2FzaGloaXJvc2hpbWEuaGlyb3NoaW1hLmpwIiwiaG9uZ28uaGlyb3NoaW1hLmpwIiwiamluc2VraWtvZ2VuLmhpcm9zaGltYS5q''@;'; + put 'put ''cCIsImthaXRhLmhpcm9zaGltYS5qcCIsImt1aS5oaXJvc2hpbWEuanAiLCJrdW1hbm8uaGlyb3NoaW1hLmpwIiwia3VyZS5oaXJvc2hpbWEuanAiLCJtaWhhcmEuaGlyb3NoaW1hLmpwIiwibWl5b3NoaS5oaXJvc2hpbWEuanAiLCJuYWthLmhpcm9zaGltYS5qcCIsIm9ub21pY2hpLmhpcm9z''@;'; + put 'put ''aGltYS5qcCIsIm9zYWtpa2FtaWppbWEuaGlyb3NoaW1hLmpwIiwib3Rha2UuaGlyb3NoaW1hLmpwIiwic2FrYS5oaXJvc2hpbWEuanAiLCJzZXJhLmhpcm9zaGltYS5qcCIsInNlcmFuaXNoaS5oaXJvc2hpbWEuanAiLCJzaGluaWNoaS5oaXJvc2hpbWEuanAiLCJzaG9iYXJhLmhpcm9zaGlt''@;'; + put 'put ''YS5qcCIsInRha2VoYXJhLmhpcm9zaGltYS5qcCIsImFiYXNoaXJpLmhva2thaWRvLmpwIiwiYWJpcmEuaG9ra2FpZG8uanAiLCJhaWJldHN1Lmhva2thaWRvLmpwIiwiYWthYmlyYS5ob2trYWlkby5qcCIsImFra2VzaGkuaG9ra2FpZG8uanAiLCJhc2FoaWthd2EuaG9ra2FpZG8uanAiLCJh''@;'; + put 'put ''c2hpYmV0c3UuaG9ra2FpZG8uanAiLCJhc2hvcm8uaG9ra2FpZG8uanAiLCJhc3NhYnUuaG9ra2FpZG8uanAiLCJhdHN1bWEuaG9ra2FpZG8uanAiLCJiaWJhaS5ob2trYWlkby5qcCIsImJpZWkuaG9ra2FpZG8uanAiLCJiaWZ1a2EuaG9ra2FpZG8uanAiLCJiaWhvcm8uaG9ra2FpZG8uanAi''@;'; + put 'put ''LCJiaXJhdG9yaS5ob2trYWlkby5qcCIsImNoaXBwdWJldHN1Lmhva2thaWRvLmpwIiwiY2hpdG9zZS5ob2trYWlkby5qcCIsImRhdGUuaG9ra2FpZG8uanAiLCJlYmV0c3UuaG9ra2FpZG8uanAiLCJlbWJldHN1Lmhva2thaWRvLmpwIiwiZW5pd2EuaG9ra2FpZG8uanAiLCJlcmltby5ob2tr''@;'; + put 'put ''YWlkby5qcCIsImVzYW4uaG9ra2FpZG8uanAiLCJlc2FzaGkuaG9ra2FpZG8uanAiLCJmdWthZ2F3YS5ob2trYWlkby5qcCIsImZ1a3VzaGltYS5ob2trYWlkby5qcCIsImZ1cmFuby5ob2trYWlkby5qcCIsImZ1cnViaXJhLmhva2thaWRvLmpwIiwiaGFib3JvLmhva2thaWRvLmpwIiwiaGFr''@;'; + put 'put ''b2RhdGUuaG9ra2FpZG8uanAiLCJoYW1hdG9uYmV0c3UuaG9ra2FpZG8uanAiLCJoaWRha2EuaG9ra2FpZG8uanAiLCJoaWdhc2hpa2FndXJhLmhva2thaWRvLmpwIiwiaGlnYXNoaWthd2EuaG9ra2FpZG8uanAiLCJoaXJvby5ob2trYWlkby5qcCIsImhva3VyeXUuaG9ra2FpZG8uanAiLCJo''@;'; + put 'put ''b2t1dG8uaG9ra2FpZG8uanAiLCJob25iZXRzdS5ob2trYWlkby5qcCIsImhvcm9rYW5haS5ob2trYWlkby5qcCIsImhvcm9ub2JlLmhva2thaWRvLmpwIiwiaWtlZGEuaG9ra2FpZG8uanAiLCJpbWFrYW5lLmhva2thaWRvLmpwIiwiaXNoaWthcmkuaG9ra2FpZG8uanAiLCJpd2FtaXphd2Eu''@;'; + put 'put ''aG9ra2FpZG8uanAiLCJpd2FuYWkuaG9ra2FpZG8uanAiLCJrYW1pZnVyYW5vLmhva2thaWRvLmpwIiwia2FtaWthd2EuaG9ra2FpZG8uanAiLCJrYW1pc2hpaG9yby5ob2trYWlkby5qcCIsImthbWlzdW5hZ2F3YS5ob2trYWlkby5qcCIsImthbW9lbmFpLmhva2thaWRvLmpwIiwia2F5YWJl''@;'; + put 'put ''Lmhva2thaWRvLmpwIiwia2VtYnVjaGkuaG9ra2FpZG8uanAiLCJraWtvbmFpLmhva2thaWRvLmpwIiwia2ltb2JldHN1Lmhva2thaWRvLmpwIiwia2l0YWhpcm9zaGltYS5ob2trYWlkby5qcCIsImtpdGFtaS5ob2trYWlkby5qcCIsImtpeW9zYXRvLmhva2thaWRvLmpwIiwia29zaGltaXp1''@;'; + put 'put ''Lmhva2thaWRvLmpwIiwia3VubmVwcHUuaG9ra2FpZG8uanAiLCJrdXJpeWFtYS5ob2trYWlkby5qcCIsImt1cm9tYXRzdW5haS5ob2trYWlkby5qcCIsImt1c2hpcm8uaG9ra2FpZG8uanAiLCJrdXRjaGFuLmhva2thaWRvLmpwIiwia3lvd2EuaG9ra2FpZG8uanAiLCJtYXNoaWtlLmhva2th''@;'; + put 'put ''aWRvLmpwIiwibWF0c3VtYWUuaG9ra2FpZG8uanAiLCJtaWthc2EuaG9ra2FpZG8uanAiLCJtaW5hbWlmdXJhbm8uaG9ra2FpZG8uanAiLCJtb21iZXRzdS5ob2trYWlkby5qcCIsIm1vc2V1c2hpLmhva2thaWRvLmpwIiwibXVrYXdhLmhva2thaWRvLmpwIiwibXVyb3Jhbi5ob2trYWlkby5q''@;'; + put 'put ''cCIsIm5haWUuaG9ra2FpZG8uanAiLCJuYWthZ2F3YS5ob2trYWlkby5qcCIsIm5ha2FzYXRzdW5haS5ob2trYWlkby5qcCIsIm5ha2F0b21iZXRzdS5ob2trYWlkby5qcCIsIm5hbmFlLmhva2thaWRvLmpwIiwibmFucG9yby5ob2trYWlkby5qcCIsIm5heW9yby5ob2trYWlkby5qcCIsIm5l''@;'; + put 'put ''bXVyby5ob2trYWlkby5qcCIsIm5paWthcHB1Lmhva2thaWRvLmpwIiwibmlraS5ob2trYWlkby5qcCIsIm5pc2hpb2tvcHBlLmhva2thaWRvLmpwIiwibm9ib3JpYmV0c3UuaG9ra2FpZG8uanAiLCJudW1hdGEuaG9ra2FpZG8uanAiLCJvYmloaXJvLmhva2thaWRvLmpwIiwib2JpcmEuaG9r''@;'; + put 'put ''a2FpZG8uanAiLCJva2V0by5ob2trYWlkby5qcCIsIm9rb3BwZS5ob2trYWlkby5qcCIsIm90YXJ1Lmhva2thaWRvLmpwIiwib3RvYmUuaG9ra2FpZG8uanAiLCJvdG9mdWtlLmhva2thaWRvLmpwIiwib3RvaW5lcHB1Lmhva2thaWRvLmpwIiwib3VtdS5ob2trYWlkby5qcCIsIm96b3JhLmhv''@;'; + put 'put ''a2thaWRvLmpwIiwicGlwcHUuaG9ra2FpZG8uanAiLCJyYW5rb3NoaS5ob2trYWlkby5qcCIsInJlYnVuLmhva2thaWRvLmpwIiwicmlrdWJldHN1Lmhva2thaWRvLmpwIiwicmlzaGlyaS5ob2trYWlkby5qcCIsInJpc2hpcmlmdWppLmhva2thaWRvLmpwIiwic2Fyb21hLmhva2thaWRvLmpw''@;'; + put 'put ''Iiwic2FydWZ1dHN1Lmhva2thaWRvLmpwIiwic2hha290YW4uaG9ra2FpZG8uanAiLCJzaGFyaS5ob2trYWlkby5qcCIsInNoaWJlY2hhLmhva2thaWRvLmpwIiwic2hpYmV0c3UuaG9ra2FpZG8uanAiLCJzaGlrYWJlLmhva2thaWRvLmpwIiwic2hpa2FvaS5ob2trYWlkby5qcCIsInNoaW1h''@;'; + put 'put ''bWFraS5ob2trYWlkby5qcCIsInNoaW1penUuaG9ra2FpZG8uanAiLCJzaGltb2thd2EuaG9ra2FpZG8uanAiLCJzaGluc2hpbm90c3UuaG9ra2FpZG8uanAiLCJzaGludG9rdS5ob2trYWlkby5qcCIsInNoaXJhbnVrYS5ob2trYWlkby5qcCIsInNoaXJhb2kuaG9ra2FpZG8uanAiLCJzaGly''@;'; + put 'put ''aXVjaGkuaG9ra2FpZG8uanAiLCJzb2JldHN1Lmhva2thaWRvLmpwIiwic3VuYWdhd2EuaG9ra2FpZG8uanAiLCJ0YWlraS5ob2trYWlkby5qcCIsInRha2FzdS5ob2trYWlkby5qcCIsInRha2lrYXdhLmhva2thaWRvLmpwIiwidGFraW5vdWUuaG9ra2FpZG8uanAiLCJ0ZXNoaWthZ2EuaG9r''@;'; + put 'put ''a2FpZG8uanAiLCJ0b2JldHN1Lmhva2thaWRvLmpwIiwidG9obWEuaG9ra2FpZG8uanAiLCJ0b21ha29tYWkuaG9ra2FpZG8uanAiLCJ0b21hcmkuaG9ra2FpZG8uanAiLCJ0b3lhLmhva2thaWRvLmpwIiwidG95YWtvLmhva2thaWRvLmpwIiwidG95b3RvbWkuaG9ra2FpZG8uanAiLCJ0b3lv''@;'; + put 'put ''dXJhLmhva2thaWRvLmpwIiwidHN1YmV0c3UuaG9ra2FpZG8uanAiLCJ0c3VraWdhdGEuaG9ra2FpZG8uanAiLCJ1cmFrYXdhLmhva2thaWRvLmpwIiwidXJhdXN1Lmhva2thaWRvLmpwIiwidXJ5dS5ob2trYWlkby5qcCIsInV0YXNoaW5haS5ob2trYWlkby5qcCIsIndha2thbmFpLmhva2th''@;'; + put 'put ''aWRvLmpwIiwid2Fzc2FtdS5ob2trYWlkby5qcCIsInlha3Vtby5ob2trYWlkby5qcCIsInlvaWNoaS5ob2trYWlkby5qcCIsImFpb2kuaHlvZ28uanAiLCJha2FzaGkuaHlvZ28uanAiLCJha28uaHlvZ28uanAiLCJhbWFnYXNha2kuaHlvZ28uanAiLCJhb2dha2kuaHlvZ28uanAiLCJhc2Fn''@;'; + put 'put ''by5oeW9nby5qcCIsImFzaGl5YS5oeW9nby5qcCIsImF3YWppLmh5b2dvLmpwIiwiZnVrdXNha2kuaHlvZ28uanAiLCJnb3NoaWtpLmh5b2dvLmpwIiwiaGFyaW1hLmh5b2dvLmpwIiwiaGltZWppLmh5b2dvLmpwIiwiaWNoaWthd2EuaHlvZ28uanAiLCJpbmFnYXdhLmh5b2dvLmpwIiwiaXRh''@;'; + put 'put ''bWkuaHlvZ28uanAiLCJrYWtvZ2F3YS5oeW9nby5qcCIsImthbWlnb3JpLmh5b2dvLmpwIiwia2FtaWthd2EuaHlvZ28uanAiLCJrYXNhaS5oeW9nby5qcCIsImthc3VnYS5oeW9nby5qcCIsImthd2FuaXNoaS5oeW9nby5qcCIsIm1pa2kuaHlvZ28uanAiLCJtaW5hbWlhd2FqaS5oeW9nby5q''@;'; + put 'put ''cCIsIm5pc2hpbm9taXlhLmh5b2dvLmpwIiwibmlzaGl3YWtpLmh5b2dvLmpwIiwib25vLmh5b2dvLmpwIiwic2FuZGEuaHlvZ28uanAiLCJzYW5uYW4uaHlvZ28uanAiLCJzYXNheWFtYS5oeW9nby5qcCIsInNheW8uaHlvZ28uanAiLCJzaGluZ3UuaHlvZ28uanAiLCJzaGlub25zZW4uaHlv''@;'; + put 'put ''Z28uanAiLCJzaGlzby5oeW9nby5qcCIsInN1bW90by5oeW9nby5qcCIsInRhaXNoaS5oeW9nby5qcCIsInRha2EuaHlvZ28uanAiLCJ0YWthcmF6dWthLmh5b2dvLmpwIiwidGFrYXNhZ28uaHlvZ28uanAiLCJ0YWtpbm8uaHlvZ28uanAiLCJ0YW1iYS5oeW9nby5qcCIsInRhdHN1bm8uaHlv''@;'; + put 'put ''Z28uanAiLCJ0b3lvb2thLmh5b2dvLmpwIiwieWFidS5oeW9nby5qcCIsInlhc2hpcm8uaHlvZ28uanAiLCJ5b2thLmh5b2dvLmpwIiwieW9rYXdhLmh5b2dvLmpwIiwiYW1pLmliYXJha2kuanAiLCJhc2FoaS5pYmFyYWtpLmpwIiwiYmFuZG8uaWJhcmFraS5qcCIsImNoaWt1c2VpLmliYXJh''@;'; + put 'put ''a2kuanAiLCJkYWlnby5pYmFyYWtpLmpwIiwiZnVqaXNoaXJvLmliYXJha2kuanAiLCJoaXRhY2hpLmliYXJha2kuanAiLCJoaXRhY2hpbmFrYS5pYmFyYWtpLmpwIiwiaGl0YWNoaW9taXlhLmliYXJha2kuanAiLCJoaXRhY2hpb3RhLmliYXJha2kuanAiLCJpYmFyYWtpLmliYXJha2kuanAi''@;'; + put 'put ''LCJpbmEuaWJhcmFraS5qcCIsImluYXNoaWtpLmliYXJha2kuanAiLCJpdGFrby5pYmFyYWtpLmpwIiwiaXdhbWEuaWJhcmFraS5qcCIsImpvc28uaWJhcmFraS5qcCIsImthbWlzdS5pYmFyYWtpLmpwIiwia2FzYW1hLmliYXJha2kuanAiLCJrYXNoaW1hLmliYXJha2kuanAiLCJrYXN1bWln''@;'; + put 'put ''YXVyYS5pYmFyYWtpLmpwIiwia29nYS5pYmFyYWtpLmpwIiwibWloby5pYmFyYWtpLmpwIiwibWl0by5pYmFyYWtpLmpwIiwibW9yaXlhLmliYXJha2kuanAiLCJuYWthLmliYXJha2kuanAiLCJuYW1lZ2F0YS5pYmFyYWtpLmpwIiwib2FyYWkuaWJhcmFraS5qcCIsIm9nYXdhLmliYXJha2ku''@;'; + put 'put ''anAiLCJvbWl0YW1hLmliYXJha2kuanAiLCJyeXVnYXNha2kuaWJhcmFraS5qcCIsInNha2FpLmliYXJha2kuanAiLCJzYWt1cmFnYXdhLmliYXJha2kuanAiLCJzaGltb2RhdGUuaWJhcmFraS5qcCIsInNoaW1vdHN1bWEuaWJhcmFraS5qcCIsInNoaXJvc2F0by5pYmFyYWtpLmpwIiwic293''@;'; + put 'put ''YS5pYmFyYWtpLmpwIiwic3VpZnUuaWJhcmFraS5qcCIsInRha2FoYWdpLmliYXJha2kuanAiLCJ0YW1hdHN1a3VyaS5pYmFyYWtpLmpwIiwidG9rYWkuaWJhcmFraS5qcCIsInRvbW9iZS5pYmFyYWtpLmpwIiwidG9uZS5pYmFyYWtpLmpwIiwidG9yaWRlLmliYXJha2kuanAiLCJ0c3VjaGl1''@;'; + put 'put ''cmEuaWJhcmFraS5qcCIsInRzdWt1YmEuaWJhcmFraS5qcCIsInVjaGloYXJhLmliYXJha2kuanAiLCJ1c2hpa3UuaWJhcmFraS5qcCIsInlhY2hpeW8uaWJhcmFraS5qcCIsInlhbWFnYXRhLmliYXJha2kuanAiLCJ5YXdhcmEuaWJhcmFraS5qcCIsInl1a2kuaWJhcmFraS5qcCIsImFuYW1p''@;'; + put 'put ''enUuaXNoaWthd2EuanAiLCJoYWt1aS5pc2hpa2F3YS5qcCIsImhha3VzYW4uaXNoaWthd2EuanAiLCJrYWdhLmlzaGlrYXdhLmpwIiwia2Fob2t1LmlzaGlrYXdhLmpwIiwia2FuYXphd2EuaXNoaWthd2EuanAiLCJrYXdha2l0YS5pc2hpa2F3YS5qcCIsImtvbWF0c3UuaXNoaWthd2EuanAi''@;'; + put 'put ''LCJuYWthbm90by5pc2hpa2F3YS5qcCIsIm5hbmFvLmlzaGlrYXdhLmpwIiwibm9taS5pc2hpa2F3YS5qcCIsIm5vbm9pY2hpLmlzaGlrYXdhLmpwIiwibm90by5pc2hpa2F3YS5qcCIsInNoaWthLmlzaGlrYXdhLmpwIiwic3V6dS5pc2hpa2F3YS5qcCIsInRzdWJhdGEuaXNoaWthd2EuanAi''@;'; + put 'put ''LCJ0c3VydWdpLmlzaGlrYXdhLmpwIiwidWNoaW5hZGEuaXNoaWthd2EuanAiLCJ3YWppbWEuaXNoaWthd2EuanAiLCJmdWRhaS5pd2F0ZS5qcCIsImZ1amlzYXdhLml3YXRlLmpwIiwiaGFuYW1ha2kuaXdhdGUuanAiLCJoaXJhaXp1bWkuaXdhdGUuanAiLCJoaXJvbm8uaXdhdGUuanAiLCJp''@;'; + put 'put ''Y2hpbm9oZS5pd2F0ZS5qcCIsImljaGlub3Nla2kuaXdhdGUuanAiLCJpd2FpenVtaS5pd2F0ZS5qcCIsIml3YXRlLml3YXRlLmpwIiwiam9ib2ppLml3YXRlLmpwIiwia2FtYWlzaGkuaXdhdGUuanAiLCJrYW5lZ2FzYWtpLml3YXRlLmpwIiwia2FydW1haS5pd2F0ZS5qcCIsImthd2FpLml3''@;'; + put 'put ''YXRlLmpwIiwia2l0YWthbWkuaXdhdGUuanAiLCJrdWppLml3YXRlLmpwIiwia3Vub2hlLml3YXRlLmpwIiwia3V6dW1ha2kuaXdhdGUuanAiLCJtaXlha28uaXdhdGUuanAiLCJtaXp1c2F3YS5pd2F0ZS5qcCIsIm1vcmlva2EuaXdhdGUuanAiLCJuaW5vaGUuaXdhdGUuanAiLCJub2RhLml3''@;'; + put 'put ''YXRlLmpwIiwib2Z1bmF0by5pd2F0ZS5qcCIsIm9zaHUuaXdhdGUuanAiLCJvdHN1Y2hpLml3YXRlLmpwIiwicmlrdXplbnRha2F0YS5pd2F0ZS5qcCIsInNoaXdhLml3YXRlLmpwIiwic2hpenVrdWlzaGkuaXdhdGUuanAiLCJzdW1pdGEuaXdhdGUuanAiLCJ0YW5vaGF0YS5pd2F0ZS5qcCIs''@;'; + put 'put ''InRvbm8uaXdhdGUuanAiLCJ5YWhhYmEuaXdhdGUuanAiLCJ5YW1hZGEuaXdhdGUuanAiLCJheWFnYXdhLmthZ2F3YS5qcCIsImhpZ2FzaGlrYWdhd2Eua2FnYXdhLmpwIiwia2Fub25qaS5rYWdhd2EuanAiLCJrb3RvaGlyYS5rYWdhd2EuanAiLCJtYW5uby5rYWdhd2EuanAiLCJtYXJ1Z2Ft''@;'; + put 'put ''ZS5rYWdhd2EuanAiLCJtaXRveW8ua2FnYXdhLmpwIiwibmFvc2hpbWEua2FnYXdhLmpwIiwic2FudWtpLmthZ2F3YS5qcCIsInRhZG90c3Uua2FnYXdhLmpwIiwidGFrYW1hdHN1LmthZ2F3YS5qcCIsInRvbm9zaG8ua2FnYXdhLmpwIiwidWNoaW5vbWkua2FnYXdhLmpwIiwidXRhenUua2Fn''@;'; + put 'put ''YXdhLmpwIiwiemVudHN1amkua2FnYXdhLmpwIiwiYWt1bmUua2Fnb3NoaW1hLmpwIiwiYW1hbWkua2Fnb3NoaW1hLmpwIiwiaGlva2kua2Fnb3NoaW1hLmpwIiwiaXNhLmthZ29zaGltYS5qcCIsImlzZW4ua2Fnb3NoaW1hLmpwIiwiaXp1bWkua2Fnb3NoaW1hLmpwIiwia2Fnb3NoaW1hLmth''@;'; + put 'put ''Z29zaGltYS5qcCIsImthbm95YS5rYWdvc2hpbWEuanAiLCJrYXdhbmFiZS5rYWdvc2hpbWEuanAiLCJraW5rby5rYWdvc2hpbWEuanAiLCJrb3V5YW1hLmthZ29zaGltYS5qcCIsIm1ha3VyYXpha2kua2Fnb3NoaW1hLmpwIiwibWF0c3Vtb3RvLmthZ29zaGltYS5qcCIsIm1pbmFtaXRhbmUu''@;'; + put 'put ''a2Fnb3NoaW1hLmpwIiwibmFrYXRhbmUua2Fnb3NoaW1hLmpwIiwibmlzaGlub29tb3RlLmthZ29zaGltYS5qcCIsInNhdHN1bWFzZW5kYWkua2Fnb3NoaW1hLmpwIiwic29vLmthZ29zaGltYS5qcCIsInRhcnVtaXp1LmthZ29zaGltYS5qcCIsInl1c3VpLmthZ29zaGltYS5qcCIsImFpa2F3''@;'; + put 'put ''YS5rYW5hZ2F3YS5qcCIsImF0c3VnaS5rYW5hZ2F3YS5qcCIsImF5YXNlLmthbmFnYXdhLmpwIiwiY2hpZ2FzYWtpLmthbmFnYXdhLmpwIiwiZWJpbmEua2FuYWdhd2EuanAiLCJmdWppc2F3YS5rYW5hZ2F3YS5qcCIsImhhZGFuby5rYW5hZ2F3YS5qcCIsImhha29uZS5rYW5hZ2F3YS5qcCIs''@;'; + put 'put ''ImhpcmF0c3VrYS5rYW5hZ2F3YS5qcCIsImlzZWhhcmEua2FuYWdhd2EuanAiLCJrYWlzZWkua2FuYWdhd2EuanAiLCJrYW1ha3VyYS5rYW5hZ2F3YS5qcCIsImtpeW9rYXdhLmthbmFnYXdhLmpwIiwibWF0c3VkYS5rYW5hZ2F3YS5qcCIsIm1pbmFtaWFzaGlnYXJhLmthbmFnYXdhLmpwIiwi''@;'; + put 'put ''bWl1cmEua2FuYWdhd2EuanAiLCJuYWthaS5rYW5hZ2F3YS5qcCIsIm5pbm9taXlhLmthbmFnYXdhLmpwIiwib2Rhd2FyYS5rYW5hZ2F3YS5qcCIsIm9pLmthbmFnYXdhLmpwIiwib2lzby5rYW5hZ2F3YS5qcCIsInNhZ2FtaWhhcmEua2FuYWdhd2EuanAiLCJzYW11a2F3YS5rYW5hZ2F3YS5q''@;'; + put 'put ''cCIsInRzdWt1aS5rYW5hZ2F3YS5qcCIsInlhbWFraXRhLmthbmFnYXdhLmpwIiwieWFtYXRvLmthbmFnYXdhLmpwIiwieW9rb3N1a2Eua2FuYWdhd2EuanAiLCJ5dWdhd2FyYS5rYW5hZ2F3YS5qcCIsInphbWEua2FuYWdhd2EuanAiLCJ6dXNoaS5rYW5hZ2F3YS5qcCIsImFraS5rb2NoaS5q''@;'; + put 'put ''cCIsImdlaXNlaS5rb2NoaS5qcCIsImhpZGFrYS5rb2NoaS5qcCIsImhpZ2FzaGl0c3Vuby5rb2NoaS5qcCIsImluby5rb2NoaS5qcCIsImthZ2FtaS5rb2NoaS5qcCIsImthbWkua29jaGkuanAiLCJraXRhZ2F3YS5rb2NoaS5qcCIsImtvY2hpLmtvY2hpLmpwIiwibWloYXJhLmtvY2hpLmpw''@;'; + put 'put ''IiwibW90b3lhbWEua29jaGkuanAiLCJtdXJvdG8ua29jaGkuanAiLCJuYWhhcmkua29jaGkuanAiLCJuYWthbXVyYS5rb2NoaS5qcCIsIm5hbmtva3Uua29jaGkuanAiLCJuaXNoaXRvc2Eua29jaGkuanAiLCJuaXlvZG9nYXdhLmtvY2hpLmpwIiwib2NoaS5rb2NoaS5qcCIsIm9rYXdhLmtv''@;'; + put 'put ''Y2hpLmpwIiwib3RveW8ua29jaGkuanAiLCJvdHN1a2kua29jaGkuanAiLCJzYWthd2Eua29jaGkuanAiLCJzdWt1bW8ua29jaGkuanAiLCJzdXNha2kua29jaGkuanAiLCJ0b3NhLmtvY2hpLmpwIiwidG9zYXNoaW1penUua29jaGkuanAiLCJ0b3lvLmtvY2hpLmpwIiwidHN1bm8ua29jaGku''@;'; + put 'put ''anAiLCJ1bWFqaS5rb2NoaS5qcCIsInlhc3VkYS5rb2NoaS5qcCIsInl1c3VoYXJhLmtvY2hpLmpwIiwiYW1ha3VzYS5rdW1hbW90by5qcCIsImFyYW8ua3VtYW1vdG8uanAiLCJhc28ua3VtYW1vdG8uanAiLCJjaG95by5rdW1hbW90by5qcCIsImd5b2t1dG8ua3VtYW1vdG8uanAiLCJrYW1p''@;'; + put 'put ''YW1ha3VzYS5rdW1hbW90by5qcCIsImtpa3VjaGkua3VtYW1vdG8uanAiLCJrdW1hbW90by5rdW1hbW90by5qcCIsIm1hc2hpa2kua3VtYW1vdG8uanAiLCJtaWZ1bmUua3VtYW1vdG8uanAiLCJtaW5hbWF0YS5rdW1hbW90by5qcCIsIm1pbmFtaW9ndW5pLmt1bWFtb3RvLmpwIiwibmFnYXN1''@;'; + put 'put ''Lmt1bWFtb3RvLmpwIiwibmlzaGloYXJhLmt1bWFtb3RvLmpwIiwib2d1bmkua3VtYW1vdG8uanAiLCJvenUua3VtYW1vdG8uanAiLCJzdW1vdG8ua3VtYW1vdG8uanAiLCJ0YWthbW9yaS5rdW1hbW90by5qcCIsInVraS5rdW1hbW90by5qcCIsInV0by5rdW1hbW90by5qcCIsInlhbWFnYS5r''@;'; + put 'put ''dW1hbW90by5qcCIsInlhbWF0by5rdW1hbW90by5qcCIsInlhdHN1c2hpcm8ua3VtYW1vdG8uanAiLCJheWFiZS5reW90by5qcCIsImZ1a3VjaGl5YW1hLmt5b3RvLmpwIiwiaGlnYXNoaXlhbWEua3lvdG8uanAiLCJpZGUua3lvdG8uanAiLCJpbmUua3lvdG8uanAiLCJqb3lvLmt5b3RvLmpw''@;'; + put 'put ''Iiwia2FtZW9rYS5reW90by5qcCIsImthbW8ua3lvdG8uanAiLCJraXRhLmt5b3RvLmpwIiwia2l6dS5reW90by5qcCIsImt1bWl5YW1hLmt5b3RvLmpwIiwia3lvdGFtYmEua3lvdG8uanAiLCJreW90YW5hYmUua3lvdG8uanAiLCJreW90YW5nby5reW90by5qcCIsIm1haXp1cnUua3lvdG8u''@;'; + put 'put ''anAiLCJtaW5hbWkua3lvdG8uanAiLCJtaW5hbWl5YW1hc2hpcm8ua3lvdG8uanAiLCJtaXlhenUua3lvdG8uanAiLCJtdWtvLmt5b3RvLmpwIiwibmFnYW9rYWt5by5reW90by5qcCIsIm5ha2FneW8ua3lvdG8uanAiLCJuYW50YW4ua3lvdG8uanAiLCJveWFtYXpha2kua3lvdG8uanAiLCJz''@;'; + put 'put ''YWt5by5reW90by5qcCIsInNlaWthLmt5b3RvLmpwIiwidGFuYWJlLmt5b3RvLmpwIiwidWppLmt5b3RvLmpwIiwidWppdGF3YXJhLmt5b3RvLmpwIiwid2F6dWthLmt5b3RvLmpwIiwieWFtYXNoaW5hLmt5b3RvLmpwIiwieWF3YXRhLmt5b3RvLmpwIiwiYXNhaGkubWllLmpwIiwiaW5hYmUu''@;'; + put 'put ''bWllLmpwIiwiaXNlLm1pZS5qcCIsImthbWV5YW1hLm1pZS5qcCIsImthd2Fnb2UubWllLmpwIiwia2loby5taWUuanAiLCJraXNvc2FraS5taWUuanAiLCJraXdhLm1pZS5qcCIsImtvbW9uby5taWUuanAiLCJrdW1hbm8ubWllLmpwIiwia3V3YW5hLm1pZS5qcCIsIm1hdHN1c2FrYS5taWUu''@;'; + put 'put ''anAiLCJtZWl3YS5taWUuanAiLCJtaWhhbWEubWllLmpwIiwibWluYW1paXNlLm1pZS5qcCIsIm1pc3VnaS5taWUuanAiLCJtaXlhbWEubWllLmpwIiwibmFiYXJpLm1pZS5qcCIsInNoaW1hLm1pZS5qcCIsInN1enVrYS5taWUuanAiLCJ0YWRvLm1pZS5qcCIsInRhaWtpLm1pZS5qcCIsInRh''@;'; + put 'put ''a2kubWllLmpwIiwidGFtYWtpLm1pZS5qcCIsInRvYmEubWllLmpwIiwidHN1Lm1pZS5qcCIsInVkb25vLm1pZS5qcCIsInVyZXNoaW5vLm1pZS5qcCIsIndhdGFyYWkubWllLmpwIiwieW9ra2FpY2hpLm1pZS5qcCIsImZ1cnVrYXdhLm1peWFnaS5qcCIsImhpZ2FzaGltYXRzdXNoaW1hLm1p''@;'; + put 'put ''eWFnaS5qcCIsImlzaGlub21ha2kubWl5YWdpLmpwIiwiaXdhbnVtYS5taXlhZ2kuanAiLCJrYWt1ZGEubWl5YWdpLmpwIiwia2FtaS5taXlhZ2kuanAiLCJrYXdhc2FraS5taXlhZ2kuanAiLCJtYXJ1bW9yaS5taXlhZ2kuanAiLCJtYXRzdXNoaW1hLm1peWFnaS5qcCIsIm1pbmFtaXNhbnJp''@;'; + put 'put ''a3UubWl5YWdpLmpwIiwibWlzYXRvLm1peWFnaS5qcCIsIm11cmF0YS5taXlhZ2kuanAiLCJuYXRvcmkubWl5YWdpLmpwIiwib2dhd2FyYS5taXlhZ2kuanAiLCJvaGlyYS5taXlhZ2kuanAiLCJvbmFnYXdhLm1peWFnaS5qcCIsIm9zYWtpLm1peWFnaS5qcCIsInJpZnUubWl5YWdpLmpwIiwi''@;'; + put 'put ''c2VtaW5lLm1peWFnaS5qcCIsInNoaWJhdGEubWl5YWdpLmpwIiwic2hpY2hpa2FzaHVrdS5taXlhZ2kuanAiLCJzaGlrYW1hLm1peWFnaS5qcCIsInNoaW9nYW1hLm1peWFnaS5qcCIsInNoaXJvaXNoaS5taXlhZ2kuanAiLCJ0YWdham8ubWl5YWdpLmpwIiwidGFpd2EubWl5YWdpLmpwIiwi''@;'; + put 'put ''dG9tZS5taXlhZ2kuanAiLCJ0b21peWEubWl5YWdpLmpwIiwid2FrdXlhLm1peWFnaS5qcCIsIndhdGFyaS5taXlhZ2kuanAiLCJ5YW1hbW90by5taXlhZ2kuanAiLCJ6YW8ubWl5YWdpLmpwIiwiYXlhLm1peWF6YWtpLmpwIiwiZWJpbm8ubWl5YXpha2kuanAiLCJnb2thc2UubWl5YXpha2ku''@;'; + put 'put ''anAiLCJoeXVnYS5taXlhemFraS5qcCIsImthZG9nYXdhLm1peWF6YWtpLmpwIiwia2F3YW1pbmFtaS5taXlhemFraS5qcCIsImtpam8ubWl5YXpha2kuanAiLCJraXRhZ2F3YS5taXlhemFraS5qcCIsImtpdGFrYXRhLm1peWF6YWtpLmpwIiwia2l0YXVyYS5taXlhemFraS5qcCIsImtvYmF5''@;'; + put 'put ''YXNoaS5taXlhemFraS5qcCIsImt1bml0b21pLm1peWF6YWtpLmpwIiwia3VzaGltYS5taXlhemFraS5qcCIsIm1pbWF0YS5taXlhemFraS5qcCIsIm1peWFrb25vam8ubWl5YXpha2kuanAiLCJtaXlhemFraS5taXlhemFraS5qcCIsIm1vcm90c3VrYS5taXlhemFraS5qcCIsIm5pY2hpbmFu''@;'; + put 'put ''Lm1peWF6YWtpLmpwIiwibmlzaGltZXJhLm1peWF6YWtpLmpwIiwibm9iZW9rYS5taXlhemFraS5qcCIsInNhaXRvLm1peWF6YWtpLmpwIiwic2hpaWJhLm1peWF6YWtpLmpwIiwic2hpbnRvbWkubWl5YXpha2kuanAiLCJ0YWthaGFydS5taXlhemFraS5qcCIsInRha2FuYWJlLm1peWF6YWtp''@;'; + put 'put ''LmpwIiwidGFrYXpha2kubWl5YXpha2kuanAiLCJ0c3Vuby5taXlhemFraS5qcCIsImFjaGkubmFnYW5vLmpwIiwiYWdlbWF0c3UubmFnYW5vLmpwIiwiYW5hbi5uYWdhbm8uanAiLCJhb2tpLm5hZ2Fuby5qcCIsImFzYWhpLm5hZ2Fuby5qcCIsImF6dW1pbm8ubmFnYW5vLmpwIiwiY2hpa3Vo''@;'; + put 'put ''b2t1Lm5hZ2Fuby5qcCIsImNoaWt1bWEubmFnYW5vLmpwIiwiY2hpbm8ubmFnYW5vLmpwIiwiZnVqaW1pLm5hZ2Fuby5qcCIsImhha3ViYS5uYWdhbm8uanAiLCJoYXJhLm5hZ2Fuby5qcCIsImhpcmF5YS5uYWdhbm8uanAiLCJpaWRhLm5hZ2Fuby5qcCIsImlpamltYS5uYWdhbm8uanAiLCJp''@;'; + put 'put ''aXlhbWEubmFnYW5vLmpwIiwiaWl6dW5hLm5hZ2Fuby5qcCIsImlrZWRhLm5hZ2Fuby5qcCIsImlrdXNha2EubmFnYW5vLmpwIiwiaW5hLm5hZ2Fuby5qcCIsImthcnVpemF3YS5uYWdhbm8uanAiLCJrYXdha2FtaS5uYWdhbm8uanAiLCJraXNvLm5hZ2Fuby5qcCIsImtpc29mdWt1c2hpbWEu''@;'; + put 'put ''bmFnYW5vLmpwIiwia2l0YWFpa2kubmFnYW5vLmpwIiwia29tYWdhbmUubmFnYW5vLmpwIiwia29tb3JvLm5hZ2Fuby5qcCIsIm1hdHN1a2F3YS5uYWdhbm8uanAiLCJtYXRzdW1vdG8ubmFnYW5vLmpwIiwibWlhc2EubmFnYW5vLmpwIiwibWluYW1pYWlraS5uYWdhbm8uanAiLCJtaW5hbWlt''@;'; + put 'put ''YWtpLm5hZ2Fuby5qcCIsIm1pbmFtaW1pbm93YS5uYWdhbm8uanAiLCJtaW5vd2EubmFnYW5vLmpwIiwibWl5YWRhLm5hZ2Fuby5qcCIsIm1peW90YS5uYWdhbm8uanAiLCJtb2NoaXp1a2kubmFnYW5vLmpwIiwibmFnYW5vLm5hZ2Fuby5qcCIsIm5hZ2F3YS5uYWdhbm8uanAiLCJuYWdpc28u''@;'; + put 'put ''bmFnYW5vLmpwIiwibmFrYWdhd2EubmFnYW5vLmpwIiwibmFrYW5vLm5hZ2Fuby5qcCIsIm5vemF3YW9uc2VuLm5hZ2Fuby5qcCIsIm9idXNlLm5hZ2Fuby5qcCIsIm9nYXdhLm5hZ2Fuby5qcCIsIm9rYXlhLm5hZ2Fuby5qcCIsIm9tYWNoaS5uYWdhbm8uanAiLCJvbWkubmFnYW5vLmpwIiwi''@;'; + put 'put ''b29rdXdhLm5hZ2Fuby5qcCIsIm9vc2hpa2EubmFnYW5vLmpwIiwib3Rha2kubmFnYW5vLmpwIiwib3RhcmkubmFnYW5vLmpwIiwic2FrYWUubmFnYW5vLmpwIiwic2FrYWtpLm5hZ2Fuby5qcCIsInNha3UubmFnYW5vLmpwIiwic2FrdWhvLm5hZ2Fuby5qcCIsInNoaW1vc3V3YS5uYWdhbm8u''@;'; + put 'put ''anAiLCJzaGluYW5vbWFjaGkubmFnYW5vLmpwIiwic2hpb2ppcmkubmFnYW5vLmpwIiwic3V3YS5uYWdhbm8uanAiLCJzdXpha2EubmFnYW5vLmpwIiwidGFrYWdpLm5hZ2Fuby5qcCIsInRha2Ftb3JpLm5hZ2Fuby5qcCIsInRha2F5YW1hLm5hZ2Fuby5qcCIsInRhdGVzaGluYS5uYWdhbm8u''@;'; + put 'put ''anAiLCJ0YXRzdW5vLm5hZ2Fuby5qcCIsInRvZ2FrdXNoaS5uYWdhbm8uanAiLCJ0b2d1cmEubmFnYW5vLmpwIiwidG9taS5uYWdhbm8uanAiLCJ1ZWRhLm5hZ2Fuby5qcCIsIndhZGEubmFnYW5vLmpwIiwieWFtYWdhdGEubmFnYW5vLmpwIiwieWFtYW5vdWNoaS5uYWdhbm8uanAiLCJ5YXNh''@;'; + put 'put ''a2EubmFnYW5vLmpwIiwieWFzdW9rYS5uYWdhbm8uanAiLCJjaGlqaXdhLm5hZ2FzYWtpLmpwIiwiZnV0c3UubmFnYXNha2kuanAiLCJnb3RvLm5hZ2FzYWtpLmpwIiwiaGFzYW1pLm5hZ2FzYWtpLmpwIiwiaGlyYWRvLm5hZ2FzYWtpLmpwIiwiaWtpLm5hZ2FzYWtpLmpwIiwiaXNhaGF5YS5u''@;'; + put 'put ''YWdhc2FraS5qcCIsImthd2F0YW5hLm5hZ2FzYWtpLmpwIiwia3VjaGlub3RzdS5uYWdhc2FraS5qcCIsIm1hdHN1dXJhLm5hZ2FzYWtpLmpwIiwibmFnYXNha2kubmFnYXNha2kuanAiLCJvYmFtYS5uYWdhc2FraS5qcCIsIm9tdXJhLm5hZ2FzYWtpLmpwIiwib3NldG8ubmFnYXNha2kuanAi''@;'; + put 'put ''LCJzYWlrYWkubmFnYXNha2kuanAiLCJzYXNlYm8ubmFnYXNha2kuanAiLCJzZWloaS5uYWdhc2FraS5qcCIsInNoaW1hYmFyYS5uYWdhc2FraS5qcCIsInNoaW5rYW1pZ290by5uYWdhc2FraS5qcCIsInRvZ2l0c3UubmFnYXNha2kuanAiLCJ0c3VzaGltYS5uYWdhc2FraS5qcCIsInVuemVu''@;'; + put 'put ''Lm5hZ2FzYWtpLmpwIiwiYW5kby5uYXJhLmpwIiwiZ29zZS5uYXJhLmpwIiwiaGVndXJpLm5hcmEuanAiLCJoaWdhc2hpeW9zaGluby5uYXJhLmpwIiwiaWthcnVnYS5uYXJhLmpwIiwiaWtvbWEubmFyYS5qcCIsImthbWlraXRheWFtYS5uYXJhLmpwIiwia2FubWFraS5uYXJhLmpwIiwia2Fz''@;'; + put 'put ''aGliYS5uYXJhLmpwIiwia2FzaGloYXJhLm5hcmEuanAiLCJrYXRzdXJhZ2kubmFyYS5qcCIsImthd2FpLm5hcmEuanAiLCJrYXdha2FtaS5uYXJhLmpwIiwia2F3YW5pc2hpLm5hcmEuanAiLCJrb3J5by5uYXJhLmpwIiwia3Vyb3Rha2kubmFyYS5qcCIsIm1pdHN1ZS5uYXJhLmpwIiwibWl5''@;'; + put 'put ''YWtlLm5hcmEuanAiLCJuYXJhLm5hcmEuanAiLCJub3NlZ2F3YS5uYXJhLmpwIiwib2ppLm5hcmEuanAiLCJvdWRhLm5hcmEuanAiLCJveW9kby5uYXJhLmpwIiwic2FrdXJhaS5uYXJhLmpwIiwic2FuZ28ubmFyYS5qcCIsInNoaW1vaWNoaS5uYXJhLmpwIiwic2hpbW9raXRheWFtYS5uYXJh''@;'; + put 'put ''LmpwIiwic2hpbmpvLm5hcmEuanAiLCJzb25pLm5hcmEuanAiLCJ0YWthdG9yaS5uYXJhLmpwIiwidGF3YXJhbW90by5uYXJhLmpwIiwidGVua2F3YS5uYXJhLmpwIiwidGVucmkubmFyYS5qcCIsInVkYS5uYXJhLmpwIiwieWFtYXRva29yaXlhbWEubmFyYS5qcCIsInlhbWF0b3Rha2FkYS5u''@;'; + put 'put ''YXJhLmpwIiwieWFtYXpvZS5uYXJhLmpwIiwieW9zaGluby5uYXJhLmpwIiwiYWdhLm5paWdhdGEuanAiLCJhZ2Fuby5uaWlnYXRhLmpwIiwiZ29zZW4ubmlpZ2F0YS5qcCIsIml0b2lnYXdhLm5paWdhdGEuanAiLCJpenVtb3pha2kubmlpZ2F0YS5qcCIsImpvZXRzdS5uaWlnYXRhLmpwIiwi''@;'; + put 'put ''a2Ftby5uaWlnYXRhLmpwIiwia2FyaXdhLm5paWdhdGEuanAiLCJrYXNoaXdhemFraS5uaWlnYXRhLmpwIiwibWluYW1pdW9udW1hLm5paWdhdGEuanAiLCJtaXRzdWtlLm5paWdhdGEuanAiLCJtdWlrYS5uaWlnYXRhLmpwIiwibXVyYWthbWkubmlpZ2F0YS5qcCIsIm15b2tvLm5paWdhdGEu''@;'; + put 'put ''anAiLCJuYWdhb2thLm5paWdhdGEuanAiLCJuaWlnYXRhLm5paWdhdGEuanAiLCJvaml5YS5uaWlnYXRhLmpwIiwib21pLm5paWdhdGEuanAiLCJzYWRvLm5paWdhdGEuanAiLCJzYW5qby5uaWlnYXRhLmpwIiwic2Vpcm8ubmlpZ2F0YS5qcCIsInNlaXJvdS5uaWlnYXRhLmpwIiwic2VraWth''@;'; + put 'put ''d2EubmlpZ2F0YS5qcCIsInNoaWJhdGEubmlpZ2F0YS5qcCIsInRhZ2FtaS5uaWlnYXRhLmpwIiwidGFpbmFpLm5paWdhdGEuanAiLCJ0b2NoaW8ubmlpZ2F0YS5qcCIsInRva2FtYWNoaS5uaWlnYXRhLmpwIiwidHN1YmFtZS5uaWlnYXRhLmpwIiwidHN1bmFuLm5paWdhdGEuanAiLCJ1b251''@;'; + put 'put ''bWEubmlpZ2F0YS5qcCIsInlhaGlrby5uaWlnYXRhLmpwIiwieW9pdGEubmlpZ2F0YS5qcCIsInl1emF3YS5uaWlnYXRhLmpwIiwiYmVwcHUub2l0YS5qcCIsImJ1bmdvb25vLm9pdGEuanAiLCJidW5nb3Rha2FkYS5vaXRhLmpwIiwiaGFzYW1hLm9pdGEuanAiLCJoaWppLm9pdGEuanAiLCJo''@;'; + put 'put ''aW1lc2hpbWEub2l0YS5qcCIsImhpdGEub2l0YS5qcCIsImthbWl0c3VlLm9pdGEuanAiLCJrb2tvbm9lLm9pdGEuanAiLCJrdWp1Lm9pdGEuanAiLCJrdW5pc2FraS5vaXRhLmpwIiwia3VzdS5vaXRhLmpwIiwib2l0YS5vaXRhLmpwIiwic2Fpa2kub2l0YS5qcCIsInRha2V0YS5vaXRhLmpw''@;'; + put 'put ''IiwidHN1a3VtaS5vaXRhLmpwIiwidXNhLm9pdGEuanAiLCJ1c3VraS5vaXRhLmpwIiwieXVmdS5vaXRhLmpwIiwiYWthaXdhLm9rYXlhbWEuanAiLCJhc2FrdWNoaS5va2F5YW1hLmpwIiwiYml6ZW4ub2theWFtYS5qcCIsImhheWFzaGltYS5va2F5YW1hLmpwIiwiaWJhcmEub2theWFtYS5q''@;'; + put 'put ''cCIsImthZ2FtaW5vLm9rYXlhbWEuanAiLCJrYXNhb2thLm9rYXlhbWEuanAiLCJraWJpY2h1by5va2F5YW1hLmpwIiwia3VtZW5hbi5va2F5YW1hLmpwIiwia3VyYXNoaWtpLm9rYXlhbWEuanAiLCJtYW5pd2Eub2theWFtYS5qcCIsIm1pc2FraS5va2F5YW1hLmpwIiwibmFnaS5va2F5YW1h''@;'; + put 'put ''LmpwIiwibmlpbWkub2theWFtYS5qcCIsIm5pc2hpYXdha3VyYS5va2F5YW1hLmpwIiwib2theWFtYS5va2F5YW1hLmpwIiwic2F0b3Noby5va2F5YW1hLmpwIiwic2V0b3VjaGkub2theWFtYS5qcCIsInNoaW5qby5va2F5YW1hLmpwIiwic2hvby5va2F5YW1hLmpwIiwic29qYS5va2F5YW1h''@;'; + put 'put ''LmpwIiwidGFrYWhhc2hpLm9rYXlhbWEuanAiLCJ0YW1hbm8ub2theWFtYS5qcCIsInRzdXlhbWEub2theWFtYS5qcCIsIndha2Uub2theWFtYS5qcCIsInlha2FnZS5va2F5YW1hLmpwIiwiYWd1bmkub2tpbmF3YS5qcCIsImdpbm93YW4ub2tpbmF3YS5qcCIsImdpbm96YS5va2luYXdhLmpw''@;'; + put 'put ''IiwiZ3VzaGlrYW1pLm9raW5hd2EuanAiLCJoYWViYXJ1Lm9raW5hd2EuanAiLCJoaWdhc2hpLm9raW5hd2EuanAiLCJoaXJhcmEub2tpbmF3YS5qcCIsImloZXlhLm9raW5hd2EuanAiLCJpc2hpZ2FraS5va2luYXdhLmpwIiwiaXNoaWthd2Eub2tpbmF3YS5qcCIsIml0b21hbi5va2luYXdh''@;'; + put 'put ''LmpwIiwiaXplbmEub2tpbmF3YS5qcCIsImthZGVuYS5va2luYXdhLmpwIiwia2luLm9raW5hd2EuanAiLCJraXRhZGFpdG8ub2tpbmF3YS5qcCIsImtpdGFuYWthZ3VzdWt1Lm9raW5hd2EuanAiLCJrdW1lamltYS5va2luYXdhLmpwIiwia3VuaWdhbWkub2tpbmF3YS5qcCIsIm1pbmFtaWRh''@;'; + put 'put ''aXRvLm9raW5hd2EuanAiLCJtb3RvYnUub2tpbmF3YS5qcCIsIm5hZ28ub2tpbmF3YS5qcCIsIm5haGEub2tpbmF3YS5qcCIsIm5ha2FndXN1a3Uub2tpbmF3YS5qcCIsIm5ha2lqaW4ub2tpbmF3YS5qcCIsIm5hbmpvLm9raW5hd2EuanAiLCJuaXNoaWhhcmEub2tpbmF3YS5qcCIsIm9naW1p''@;'; + put 'put ''Lm9raW5hd2EuanAiLCJva2luYXdhLm9raW5hd2EuanAiLCJvbm5hLm9raW5hd2EuanAiLCJzaGltb2ppLm9raW5hd2EuanAiLCJ0YWtldG9taS5va2luYXdhLmpwIiwidGFyYW1hLm9raW5hd2EuanAiLCJ0b2thc2hpa2kub2tpbmF3YS5qcCIsInRvbWlndXN1a3Uub2tpbmF3YS5qcCIsInRv''@;'; + put 'put ''bmFraS5va2luYXdhLmpwIiwidXJhc29lLm9raW5hd2EuanAiLCJ1cnVtYS5va2luYXdhLmpwIiwieWFlc2Uub2tpbmF3YS5qcCIsInlvbWl0YW4ub2tpbmF3YS5qcCIsInlvbmFiYXJ1Lm9raW5hd2EuanAiLCJ5b25hZ3VuaS5va2luYXdhLmpwIiwiemFtYW1pLm9raW5hd2EuanAiLCJhYmVu''@;'; + put 'put ''by5vc2FrYS5qcCIsImNoaWhheWFha2FzYWthLm9zYWthLmpwIiwiY2h1by5vc2FrYS5qcCIsImRhaXRvLm9zYWthLmpwIiwiZnVqaWlkZXJhLm9zYWthLmpwIiwiaGFiaWtpbm8ub3Nha2EuanAiLCJoYW5uYW4ub3Nha2EuanAiLCJoaWdhc2hpb3Nha2Eub3Nha2EuanAiLCJoaWdhc2hpc3Vt''@;'; + put 'put ''aXlvc2hpLm9zYWthLmpwIiwiaGlnYXNoaXlvZG9nYXdhLm9zYWthLmpwIiwiaGlyYWthdGEub3Nha2EuanAiLCJpYmFyYWtpLm9zYWthLmpwIiwiaWtlZGEub3Nha2EuanAiLCJpenVtaS5vc2FrYS5qcCIsIml6dW1pb3RzdS5vc2FrYS5qcCIsIml6dW1pc2Fuby5vc2FrYS5qcCIsImthZG9t''@;'; + put 'put ''YS5vc2FrYS5qcCIsImthaXp1a2Eub3Nha2EuanAiLCJrYW5hbi5vc2FrYS5qcCIsImthc2hpd2FyYS5vc2FrYS5qcCIsImthdGFuby5vc2FrYS5qcCIsImthd2FjaGluYWdhbm8ub3Nha2EuanAiLCJraXNoaXdhZGEub3Nha2EuanAiLCJraXRhLm9zYWthLmpwIiwia3VtYXRvcmkub3Nha2Eu''@;'; + put 'put ''anAiLCJtYXRzdWJhcmEub3Nha2EuanAiLCJtaW5hdG8ub3Nha2EuanAiLCJtaW5vaC5vc2FrYS5qcCIsIm1pc2FraS5vc2FrYS5qcCIsIm1vcmlndWNoaS5vc2FrYS5qcCIsIm5leWFnYXdhLm9zYWthLmpwIiwibmlzaGkub3Nha2EuanAiLCJub3NlLm9zYWthLmpwIiwib3Nha2FzYXlhbWEu''@;'; + put 'put ''b3Nha2EuanAiLCJzYWthaS5vc2FrYS5qcCIsInNheWFtYS5vc2FrYS5qcCIsInNlbm5hbi5vc2FrYS5qcCIsInNldHRzdS5vc2FrYS5qcCIsInNoaWpvbmF3YXRlLm9zYWthLmpwIiwic2hpbWFtb3RvLm9zYWthLmpwIiwic3VpdGEub3Nha2EuanAiLCJ0YWRhb2thLm9zYWthLmpwIiwidGFp''@;'; + put 'put ''c2hpLm9zYWthLmpwIiwidGFqaXJpLm9zYWthLmpwIiwidGFrYWlzaGkub3Nha2EuanAiLCJ0YWthdHN1a2kub3Nha2EuanAiLCJ0b25kYWJheWFzaGkub3Nha2EuanAiLCJ0b3lvbmFrYS5vc2FrYS5qcCIsInRveW9uby5vc2FrYS5qcCIsInlhby5vc2FrYS5qcCIsImFyaWFrZS5zYWdhLmpw''@;'; + put 'put ''IiwiYXJpdGEuc2FnYS5qcCIsImZ1a3Vkb21pLnNhZ2EuanAiLCJnZW5rYWkuc2FnYS5qcCIsImhhbWF0YW1hLnNhZ2EuanAiLCJoaXplbi5zYWdhLmpwIiwiaW1hcmkuc2FnYS5qcCIsImthbWltaW5lLnNhZ2EuanAiLCJrYW56YWtpLnNhZ2EuanAiLCJrYXJhdHN1LnNhZ2EuanAiLCJrYXNo''@;'; + put 'put ''aW1hLnNhZ2EuanAiLCJraXRhZ2F0YS5zYWdhLmpwIiwia2l0YWhhdGEuc2FnYS5qcCIsImtpeWFtYS5zYWdhLmpwIiwia291aG9rdS5zYWdhLmpwIiwia3l1cmFnaS5zYWdhLmpwIiwibmlzaGlhcml0YS5zYWdhLmpwIiwib2dpLnNhZ2EuanAiLCJvbWFjaGkuc2FnYS5qcCIsIm91Y2hpLnNh''@;'; + put 'put ''Z2EuanAiLCJzYWdhLnNhZ2EuanAiLCJzaGlyb2lzaGkuc2FnYS5qcCIsInRha3Uuc2FnYS5qcCIsInRhcmEuc2FnYS5qcCIsInRvc3Uuc2FnYS5qcCIsInlvc2hpbm9nYXJpLnNhZ2EuanAiLCJhcmFrYXdhLnNhaXRhbWEuanAiLCJhc2FrYS5zYWl0YW1hLmpwIiwiY2hpY2hpYnUuc2FpdGFt''@;'; + put 'put ''YS5qcCIsImZ1amltaS5zYWl0YW1hLmpwIiwiZnVqaW1pbm8uc2FpdGFtYS5qcCIsImZ1a2F5YS5zYWl0YW1hLmpwIiwiaGFubm8uc2FpdGFtYS5qcCIsImhhbnl1LnNhaXRhbWEuanAiLCJoYXN1ZGEuc2FpdGFtYS5qcCIsImhhdG9nYXlhLnNhaXRhbWEuanAiLCJoYXRveWFtYS5zYWl0YW1h''@;'; + put 'put ''LmpwIiwiaGlkYWthLnNhaXRhbWEuanAiLCJoaWdhc2hpY2hpY2hpYnUuc2FpdGFtYS5qcCIsImhpZ2FzaGltYXRzdXlhbWEuc2FpdGFtYS5qcCIsImhvbmpvLnNhaXRhbWEuanAiLCJpbmEuc2FpdGFtYS5qcCIsImlydW1hLnNhaXRhbWEuanAiLCJpd2F0c3VraS5zYWl0YW1hLmpwIiwia2Ft''@;'; + put 'put ''aWl6dW1pLnNhaXRhbWEuanAiLCJrYW1pa2F3YS5zYWl0YW1hLmpwIiwia2FtaXNhdG8uc2FpdGFtYS5qcCIsImthc3VrYWJlLnNhaXRhbWEuanAiLCJrYXdhZ29lLnNhaXRhbWEuanAiLCJrYXdhZ3VjaGkuc2FpdGFtYS5qcCIsImthd2FqaW1hLnNhaXRhbWEuanAiLCJrYXpvLnNhaXRhbWEu''@;'; + put 'put ''anAiLCJraXRhbW90by5zYWl0YW1hLmpwIiwia29zaGlnYXlhLnNhaXRhbWEuanAiLCJrb3Vub3N1LnNhaXRhbWEuanAiLCJrdWtpLnNhaXRhbWEuanAiLCJrdW1hZ2F5YS5zYWl0YW1hLmpwIiwibWF0c3VidXNoaS5zYWl0YW1hLmpwIiwibWluYW5vLnNhaXRhbWEuanAiLCJtaXNhdG8uc2Fp''@;'; + put 'put ''dGFtYS5qcCIsIm1peWFzaGlyby5zYWl0YW1hLmpwIiwibWl5b3NoaS5zYWl0YW1hLmpwIiwibW9yb3lhbWEuc2FpdGFtYS5qcCIsIm5hZ2F0b3JvLnNhaXRhbWEuanAiLCJuYW1lZ2F3YS5zYWl0YW1hLmpwIiwibmlpemEuc2FpdGFtYS5qcCIsIm9nYW5vLnNhaXRhbWEuanAiLCJvZ2F3YS5z''@;'; + put 'put ''YWl0YW1hLmpwIiwib2dvc2Uuc2FpdGFtYS5qcCIsIm9rZWdhd2Euc2FpdGFtYS5qcCIsIm9taXlhLnNhaXRhbWEuanAiLCJvdGFraS5zYWl0YW1hLmpwIiwicmFuemFuLnNhaXRhbWEuanAiLCJyeW9rYW1pLnNhaXRhbWEuanAiLCJzYWl0YW1hLnNhaXRhbWEuanAiLCJzYWthZG8uc2FpdGFt''@;'; + put 'put ''YS5qcCIsInNhdHRlLnNhaXRhbWEuanAiLCJzYXlhbWEuc2FpdGFtYS5qcCIsInNoaWtpLnNhaXRhbWEuanAiLCJzaGlyYW9rYS5zYWl0YW1hLmpwIiwic29rYS5zYWl0YW1hLmpwIiwic3VnaXRvLnNhaXRhbWEuanAiLCJ0b2RhLnNhaXRhbWEuanAiLCJ0b2tpZ2F3YS5zYWl0YW1hLmpwIiwi''@;'; + put 'put ''dG9rb3JvemF3YS5zYWl0YW1hLmpwIiwidHN1cnVnYXNoaW1hLnNhaXRhbWEuanAiLCJ1cmF3YS5zYWl0YW1hLmpwIiwid2FyYWJpLnNhaXRhbWEuanAiLCJ5YXNoaW8uc2FpdGFtYS5qcCIsInlva296ZS5zYWl0YW1hLmpwIiwieW9uby5zYWl0YW1hLmpwIiwieW9yaWkuc2FpdGFtYS5qcCIs''@;'; + put 'put ''Inlvc2hpZGEuc2FpdGFtYS5qcCIsInlvc2hpa2F3YS5zYWl0YW1hLmpwIiwieW9zaGltaS5zYWl0YW1hLmpwIiwiYWlzaG8uc2hpZ2EuanAiLCJnYW1vLnNoaWdhLmpwIiwiaGlnYXNoaW9taS5zaGlnYS5qcCIsImhpa29uZS5zaGlnYS5qcCIsImtva2Euc2hpZ2EuanAiLCJrb25hbi5zaGln''@;'; + put 'put ''YS5qcCIsImtvc2VpLnNoaWdhLmpwIiwia290by5zaGlnYS5qcCIsImt1c2F0c3Uuc2hpZ2EuanAiLCJtYWliYXJhLnNoaWdhLmpwIiwibW9yaXlhbWEuc2hpZ2EuanAiLCJuYWdhaGFtYS5zaGlnYS5qcCIsIm5pc2hpYXphaS5zaGlnYS5qcCIsIm5vdG9nYXdhLnNoaWdhLmpwIiwib21paGFj''@;'; + put 'put ''aGltYW4uc2hpZ2EuanAiLCJvdHN1LnNoaWdhLmpwIiwicml0dG8uc2hpZ2EuanAiLCJyeXVvaC5zaGlnYS5qcCIsInRha2FzaGltYS5zaGlnYS5qcCIsInRha2F0c3VraS5zaGlnYS5qcCIsInRvcmFoaW1lLnNoaWdhLmpwIiwidG95b3NhdG8uc2hpZ2EuanAiLCJ5YXN1LnNoaWdhLmpwIiwi''@;'; + put 'put ''YWthZ2kuc2hpbWFuZS5qcCIsImFtYS5zaGltYW5lLmpwIiwiZ290c3Uuc2hpbWFuZS5qcCIsImhhbWFkYS5zaGltYW5lLmpwIiwiaGlnYXNoaWl6dW1vLnNoaW1hbmUuanAiLCJoaWthd2Euc2hpbWFuZS5qcCIsImhpa2ltaS5zaGltYW5lLmpwIiwiaXp1bW8uc2hpbWFuZS5qcCIsImtha2lu''@;'; + put 'put ''b2tpLnNoaW1hbmUuanAiLCJtYXN1ZGEuc2hpbWFuZS5qcCIsIm1hdHN1ZS5zaGltYW5lLmpwIiwibWlzYXRvLnNoaW1hbmUuanAiLCJuaXNoaW5vc2hpbWEuc2hpbWFuZS5qcCIsIm9oZGEuc2hpbWFuZS5qcCIsIm9raW5vc2hpbWEuc2hpbWFuZS5qcCIsIm9rdWl6dW1vLnNoaW1hbmUuanAi''@;'; + put 'put ''LCJzaGltYW5lLnNoaW1hbmUuanAiLCJ0YW1heXUuc2hpbWFuZS5qcCIsInRzdXdhbm8uc2hpbWFuZS5qcCIsInVubmFuLnNoaW1hbmUuanAiLCJ5YWt1bW8uc2hpbWFuZS5qcCIsInlhc3VnaS5zaGltYW5lLmpwIiwieWF0c3VrYS5zaGltYW5lLmpwIiwiYXJhaS5zaGl6dW9rYS5qcCIsImF0''@;'; + put 'put ''YW1pLnNoaXp1b2thLmpwIiwiZnVqaS5zaGl6dW9rYS5qcCIsImZ1amllZGEuc2hpenVva2EuanAiLCJmdWppa2F3YS5zaGl6dW9rYS5qcCIsImZ1amlub21peWEuc2hpenVva2EuanAiLCJmdWt1cm9pLnNoaXp1b2thLmpwIiwiZ290ZW1iYS5zaGl6dW9rYS5qcCIsImhhaWJhcmEuc2hpenVv''@;'; + put 'put ''a2EuanAiLCJoYW1hbWF0c3Uuc2hpenVva2EuanAiLCJoaWdhc2hpaXp1LnNoaXp1b2thLmpwIiwiaXRvLnNoaXp1b2thLmpwIiwiaXdhdGEuc2hpenVva2EuanAiLCJpenUuc2hpenVva2EuanAiLCJpenVub2t1bmkuc2hpenVva2EuanAiLCJrYWtlZ2F3YS5zaGl6dW9rYS5qcCIsImthbm5h''@;'; + put 'put ''bWkuc2hpenVva2EuanAiLCJrYXdhbmVob24uc2hpenVva2EuanAiLCJrYXdhenUuc2hpenVva2EuanAiLCJraWt1Z2F3YS5zaGl6dW9rYS5qcCIsImtvc2FpLnNoaXp1b2thLmpwIiwibWFraW5vaGFyYS5zaGl6dW9rYS5qcCIsIm1hdHN1emFraS5zaGl6dW9rYS5qcCIsIm1pbmFtaWl6dS5z''@;'; + put 'put ''aGl6dW9rYS5qcCIsIm1pc2hpbWEuc2hpenVva2EuanAiLCJtb3JpbWFjaGkuc2hpenVva2EuanAiLCJuaXNoaWl6dS5zaGl6dW9rYS5qcCIsIm51bWF6dS5zaGl6dW9rYS5qcCIsIm9tYWV6YWtpLnNoaXp1b2thLmpwIiwic2hpbWFkYS5zaGl6dW9rYS5qcCIsInNoaW1penUuc2hpenVva2Eu''@;'; + put 'put ''anAiLCJzaGltb2RhLnNoaXp1b2thLmpwIiwic2hpenVva2Euc2hpenVva2EuanAiLCJzdXNvbm8uc2hpenVva2EuanAiLCJ5YWl6dS5zaGl6dW9rYS5qcCIsInlvc2hpZGEuc2hpenVva2EuanAiLCJhc2hpa2FnYS50b2NoaWdpLmpwIiwiYmF0by50b2NoaWdpLmpwIiwiaGFnYS50b2NoaWdp''@;'; + put 'put ''LmpwIiwiaWNoaWthaS50b2NoaWdpLmpwIiwiaXdhZnVuZS50b2NoaWdpLmpwIiwia2FtaW5va2F3YS50b2NoaWdpLmpwIiwia2FudW1hLnRvY2hpZ2kuanAiLCJrYXJhc3V5YW1hLnRvY2hpZ2kuanAiLCJrdXJvaXNvLnRvY2hpZ2kuanAiLCJtYXNoaWtvLnRvY2hpZ2kuanAiLCJtaWJ1LnRv''@;'; + put 'put ''Y2hpZ2kuanAiLCJtb2thLnRvY2hpZ2kuanAiLCJtb3RlZ2kudG9jaGlnaS5qcCIsIm5hc3UudG9jaGlnaS5qcCIsIm5hc3VzaGlvYmFyYS50b2NoaWdpLmpwIiwibmlra28udG9jaGlnaS5qcCIsIm5pc2hpa2F0YS50b2NoaWdpLmpwIiwibm9naS50b2NoaWdpLmpwIiwib2hpcmEudG9jaGln''@;'; + put 'put ''aS5qcCIsIm9odGF3YXJhLnRvY2hpZ2kuanAiLCJveWFtYS50b2NoaWdpLmpwIiwic2FrdXJhLnRvY2hpZ2kuanAiLCJzYW5vLnRvY2hpZ2kuanAiLCJzaGltb3RzdWtlLnRvY2hpZ2kuanAiLCJzaGlveWEudG9jaGlnaS5qcCIsInRha2FuZXphd2EudG9jaGlnaS5qcCIsInRvY2hpZ2kudG9j''@;'; + put 'put ''aGlnaS5qcCIsInRzdWdhLnRvY2hpZ2kuanAiLCJ1amlpZS50b2NoaWdpLmpwIiwidXRzdW5vbWl5YS50b2NoaWdpLmpwIiwieWFpdGEudG9jaGlnaS5qcCIsImFpenVtaS50b2t1c2hpbWEuanAiLCJhbmFuLnRva3VzaGltYS5qcCIsImljaGliYS50b2t1c2hpbWEuanAiLCJpdGFuby50b2t1''@;'; + put 'put ''c2hpbWEuanAiLCJrYWluYW4udG9rdXNoaW1hLmpwIiwia29tYXRzdXNoaW1hLnRva3VzaGltYS5qcCIsIm1hdHN1c2hpZ2UudG9rdXNoaW1hLmpwIiwibWltYS50b2t1c2hpbWEuanAiLCJtaW5hbWkudG9rdXNoaW1hLmpwIiwibWl5b3NoaS50b2t1c2hpbWEuanAiLCJtdWdpLnRva3VzaGlt''@;'; + put 'put ''YS5qcCIsIm5ha2FnYXdhLnRva3VzaGltYS5qcCIsIm5hcnV0by50b2t1c2hpbWEuanAiLCJzYW5hZ29jaGkudG9rdXNoaW1hLmpwIiwic2hpc2hpa3VpLnRva3VzaGltYS5qcCIsInRva3VzaGltYS50b2t1c2hpbWEuanAiLCJ3YWppa2kudG9rdXNoaW1hLmpwIiwiYWRhY2hpLnRva3lvLmpw''@;'; + put 'put ''IiwiYWtpcnVuby50b2t5by5qcCIsImFraXNoaW1hLnRva3lvLmpwIiwiYW9nYXNoaW1hLnRva3lvLmpwIiwiYXJha2F3YS50b2t5by5qcCIsImJ1bmt5by50b2t5by5qcCIsImNoaXlvZGEudG9reW8uanAiLCJjaG9mdS50b2t5by5qcCIsImNodW8udG9reW8uanAiLCJlZG9nYXdhLnRva3lv''@;'; + put 'put ''LmpwIiwiZnVjaHUudG9reW8uanAiLCJmdXNzYS50b2t5by5qcCIsImhhY2hpam8udG9reW8uanAiLCJoYWNoaW9qaS50b2t5by5qcCIsImhhbXVyYS50b2t5by5qcCIsImhpZ2FzaGlrdXJ1bWUudG9reW8uanAiLCJoaWdhc2hpbXVyYXlhbWEudG9reW8uanAiLCJoaWdhc2hpeWFtYXRvLnRv''@;'; + put 'put ''a3lvLmpwIiwiaGluby50b2t5by5qcCIsImhpbm9kZS50b2t5by5qcCIsImhpbm9oYXJhLnRva3lvLmpwIiwiaW5hZ2kudG9reW8uanAiLCJpdGFiYXNoaS50b2t5by5qcCIsImthdHN1c2hpa2EudG9reW8uanAiLCJraXRhLnRva3lvLmpwIiwia2l5b3NlLnRva3lvLmpwIiwia29kYWlyYS50''@;'; + put 'put ''b2t5by5qcCIsImtvZ2FuZWkudG9reW8uanAiLCJrb2t1YnVuamkudG9reW8uanAiLCJrb21hZS50b2t5by5qcCIsImtvdG8udG9reW8uanAiLCJrb3V6dXNoaW1hLnRva3lvLmpwIiwia3VuaXRhY2hpLnRva3lvLmpwIiwibWFjaGlkYS50b2t5by5qcCIsIm1lZ3Vyby50b2t5by5qcCIsIm1p''@;'; + put 'put ''bmF0by50b2t5by5qcCIsIm1pdGFrYS50b2t5by5qcCIsIm1penVoby50b2t5by5qcCIsIm11c2FzaGltdXJheWFtYS50b2t5by5qcCIsIm11c2FzaGluby50b2t5by5qcCIsIm5ha2Fuby50b2t5by5qcCIsIm5lcmltYS50b2t5by5qcCIsIm9nYXNhd2FyYS50b2t5by5qcCIsIm9rdXRhbWEu''@;'; + put 'put ''dG9reW8uanAiLCJvbWUudG9reW8uanAiLCJvc2hpbWEudG9reW8uanAiLCJvdGEudG9reW8uanAiLCJzZXRhZ2F5YS50b2t5by5qcCIsInNoaWJ1eWEudG9reW8uanAiLCJzaGluYWdhd2EudG9reW8uanAiLCJzaGluanVrdS50b2t5by5qcCIsInN1Z2luYW1pLnRva3lvLmpwIiwic3VtaWRh''@;'; + put 'put ''LnRva3lvLmpwIiwidGFjaGlrYXdhLnRva3lvLmpwIiwidGFpdG8udG9reW8uanAiLCJ0YW1hLnRva3lvLmpwIiwidG9zaGltYS50b2t5by5qcCIsImNoaXp1LnRvdHRvcmkuanAiLCJoaW5vLnRvdHRvcmkuanAiLCJrYXdhaGFyYS50b3R0b3JpLmpwIiwia29nZS50b3R0b3JpLmpwIiwia290''@;'; + put 'put ''b3VyYS50b3R0b3JpLmpwIiwibWlzYXNhLnRvdHRvcmkuanAiLCJuYW5idS50b3R0b3JpLmpwIiwibmljaGluYW4udG90dG9yaS5qcCIsInNha2FpbWluYXRvLnRvdHRvcmkuanAiLCJ0b3R0b3JpLnRvdHRvcmkuanAiLCJ3YWthc2EudG90dG9yaS5qcCIsInlhenUudG90dG9yaS5qcCIsInlv''@;'; + put 'put ''bmFnby50b3R0b3JpLmpwIiwiYXNhaGkudG95YW1hLmpwIiwiZnVjaHUudG95YW1hLmpwIiwiZnVrdW1pdHN1LnRveWFtYS5qcCIsImZ1bmFoYXNoaS50b3lhbWEuanAiLCJoaW1pLnRveWFtYS5qcCIsImltaXp1LnRveWFtYS5qcCIsImluYW1pLnRveWFtYS5qcCIsImpvaGFuYS50b3lhbWEu''@;'; + put 'put ''anAiLCJrYW1paWNoaS50b3lhbWEuanAiLCJrdXJvYmUudG95YW1hLmpwIiwibmFrYW5paWthd2EudG95YW1hLmpwIiwibmFtZXJpa2F3YS50b3lhbWEuanAiLCJuYW50by50b3lhbWEuanAiLCJueXV6ZW4udG95YW1hLmpwIiwib3lhYmUudG95YW1hLmpwIiwidGFpcmEudG95YW1hLmpwIiwi''@;'; + put 'put ''dGFrYW9rYS50b3lhbWEuanAiLCJ0YXRleWFtYS50b3lhbWEuanAiLCJ0b2dhLnRveWFtYS5qcCIsInRvbmFtaS50b3lhbWEuanAiLCJ0b3lhbWEudG95YW1hLmpwIiwidW5henVraS50b3lhbWEuanAiLCJ1b3p1LnRveWFtYS5qcCIsInlhbWFkYS50b3lhbWEuanAiLCJhcmlkYS53YWtheWFt''@;'; + put 'put ''YS5qcCIsImFyaWRhZ2F3YS53YWtheWFtYS5qcCIsImdvYm8ud2FrYXlhbWEuanAiLCJoYXNoaW1vdG8ud2FrYXlhbWEuanAiLCJoaWRha2Eud2FrYXlhbWEuanAiLCJoaXJvZ2F3YS53YWtheWFtYS5qcCIsImluYW1pLndha2F5YW1hLmpwIiwiaXdhZGUud2FrYXlhbWEuanAiLCJrYWluYW4u''@;'; + put 'put ''d2FrYXlhbWEuanAiLCJrYW1pdG9uZGEud2FrYXlhbWEuanAiLCJrYXRzdXJhZ2kud2FrYXlhbWEuanAiLCJraW1pbm8ud2FrYXlhbWEuanAiLCJraW5va2F3YS53YWtheWFtYS5qcCIsImtpdGF5YW1hLndha2F5YW1hLmpwIiwia295YS53YWtheWFtYS5qcCIsImtvemEud2FrYXlhbWEuanAi''@;'; + put 'put ''LCJrb3phZ2F3YS53YWtheWFtYS5qcCIsImt1ZG95YW1hLndha2F5YW1hLmpwIiwia3VzaGltb3RvLndha2F5YW1hLmpwIiwibWloYW1hLndha2F5YW1hLmpwIiwibWlzYXRvLndha2F5YW1hLmpwIiwibmFjaGlrYXRzdXVyYS53YWtheWFtYS5qcCIsInNoaW5ndS53YWtheWFtYS5qcCIsInNo''@;'; + put 'put ''aXJhaGFtYS53YWtheWFtYS5qcCIsInRhaWppLndha2F5YW1hLmpwIiwidGFuYWJlLndha2F5YW1hLmpwIiwid2FrYXlhbWEud2FrYXlhbWEuanAiLCJ5dWFzYS53YWtheWFtYS5qcCIsInl1cmEud2FrYXlhbWEuanAiLCJhc2FoaS55YW1hZ2F0YS5qcCIsImZ1bmFnYXRhLnlhbWFnYXRhLmpw''@;'; + put 'put ''IiwiaGlnYXNoaW5lLnlhbWFnYXRhLmpwIiwiaWlkZS55YW1hZ2F0YS5qcCIsImthaG9rdS55YW1hZ2F0YS5qcCIsImthbWlub3lhbWEueWFtYWdhdGEuanAiLCJrYW5leWFtYS55YW1hZ2F0YS5qcCIsImthd2FuaXNoaS55YW1hZ2F0YS5qcCIsIm1hbXVyb2dhd2EueWFtYWdhdGEuanAiLCJt''@;'; + put 'put ''aWthd2EueWFtYWdhdGEuanAiLCJtdXJheWFtYS55YW1hZ2F0YS5qcCIsIm5hZ2FpLnlhbWFnYXRhLmpwIiwibmFrYXlhbWEueWFtYWdhdGEuanAiLCJuYW55by55YW1hZ2F0YS5qcCIsIm5pc2hpa2F3YS55YW1hZ2F0YS5qcCIsIm9iYW5hemF3YS55YW1hZ2F0YS5qcCIsIm9lLnlhbWFnYXRh''@;'; + put 'put ''LmpwIiwib2d1bmkueWFtYWdhdGEuanAiLCJvaGt1cmEueWFtYWdhdGEuanAiLCJvaXNoaWRhLnlhbWFnYXRhLmpwIiwic2FnYWUueWFtYWdhdGEuanAiLCJzYWthdGEueWFtYWdhdGEuanAiLCJzYWtlZ2F3YS55YW1hZ2F0YS5qcCIsInNoaW5qby55YW1hZ2F0YS5qcCIsInNoaXJhdGFrYS55''@;'; + put 'put ''YW1hZ2F0YS5qcCIsInNob25haS55YW1hZ2F0YS5qcCIsInRha2FoYXRhLnlhbWFnYXRhLmpwIiwidGVuZG8ueWFtYWdhdGEuanAiLCJ0b3phd2EueWFtYWdhdGEuanAiLCJ0c3VydW9rYS55YW1hZ2F0YS5qcCIsInlhbWFnYXRhLnlhbWFnYXRhLmpwIiwieWFtYW5vYmUueWFtYWdhdGEuanAi''@;'; + put 'put ''LCJ5b25lemF3YS55YW1hZ2F0YS5qcCIsInl1emEueWFtYWdhdGEuanAiLCJhYnUueWFtYWd1Y2hpLmpwIiwiaGFnaS55YW1hZ3VjaGkuanAiLCJoaWthcmkueWFtYWd1Y2hpLmpwIiwiaG9mdS55YW1hZ3VjaGkuanAiLCJpd2FrdW5pLnlhbWFndWNoaS5qcCIsImt1ZGFtYXRzdS55YW1hZ3Vj''@;'; + put 'put ''aGkuanAiLCJtaXRvdS55YW1hZ3VjaGkuanAiLCJuYWdhdG8ueWFtYWd1Y2hpLmpwIiwib3NoaW1hLnlhbWFndWNoaS5qcCIsInNoaW1vbm9zZWtpLnlhbWFndWNoaS5qcCIsInNodW5hbi55YW1hZ3VjaGkuanAiLCJ0YWJ1c2UueWFtYWd1Y2hpLmpwIiwidG9rdXlhbWEueWFtYWd1Y2hpLmpw''@;'; + put 'put ''IiwidG95b3RhLnlhbWFndWNoaS5qcCIsInViZS55YW1hZ3VjaGkuanAiLCJ5dXUueWFtYWd1Y2hpLmpwIiwiY2h1by55YW1hbmFzaGkuanAiLCJkb3NoaS55YW1hbmFzaGkuanAiLCJmdWVmdWtpLnlhbWFuYXNoaS5qcCIsImZ1amlrYXdhLnlhbWFuYXNoaS5qcCIsImZ1amlrYXdhZ3VjaGlr''@;'; + put 'put ''by55YW1hbmFzaGkuanAiLCJmdWppeW9zaGlkYS55YW1hbmFzaGkuanAiLCJoYXlha2F3YS55YW1hbmFzaGkuanAiLCJob2t1dG8ueWFtYW5hc2hpLmpwIiwiaWNoaWthd2FtaXNhdG8ueWFtYW5hc2hpLmpwIiwia2FpLnlhbWFuYXNoaS5qcCIsImtvZnUueWFtYW5hc2hpLmpwIiwia29zaHUu''@;'; + put 'put ''eWFtYW5hc2hpLmpwIiwia29zdWdlLnlhbWFuYXNoaS5qcCIsIm1pbmFtaS1hbHBzLnlhbWFuYXNoaS5qcCIsIm1pbm9idS55YW1hbmFzaGkuanAiLCJuYWthbWljaGkueWFtYW5hc2hpLmpwIiwibmFuYnUueWFtYW5hc2hpLmpwIiwibmFydXNhd2EueWFtYW5hc2hpLmpwIiwibmlyYXNha2ku''@;'; + put 'put ''eWFtYW5hc2hpLmpwIiwibmlzaGlrYXRzdXJhLnlhbWFuYXNoaS5qcCIsIm9zaGluby55YW1hbmFzaGkuanAiLCJvdHN1a2kueWFtYW5hc2hpLmpwIiwic2hvd2EueWFtYW5hc2hpLmpwIiwidGFiYXlhbWEueWFtYW5hc2hpLmpwIiwidHN1cnUueWFtYW5hc2hpLmpwIiwidWVub2hhcmEueWFt''@;'; + put 'put ''YW5hc2hpLmpwIiwieWFtYW5ha2Frby55YW1hbmFzaGkuanAiLCJ5YW1hbmFzaGkueWFtYW5hc2hpLmpwIiwia2UiLCJhYy5rZSIsImNvLmtlIiwiZ28ua2UiLCJpbmZvLmtlIiwibWUua2UiLCJtb2JpLmtlIiwibmUua2UiLCJvci5rZSIsInNjLmtlIiwia2ciLCJvcmcua2ciLCJuZXQua2ci''@;'; + put 'put ''LCJjb20ua2ciLCJlZHUua2ciLCJnb3Yua2ciLCJtaWwua2ciLCIqLmtoIiwia2kiLCJlZHUua2kiLCJiaXoua2kiLCJuZXQua2kiLCJvcmcua2kiLCJnb3Yua2kiLCJpbmZvLmtpIiwiY29tLmtpIiwia20iLCJvcmcua20iLCJub20ua20iLCJnb3Yua20iLCJwcmQua20iLCJ0bS5rbSIsImVk''@;'; + put 'put ''dS5rbSIsIm1pbC5rbSIsImFzcy5rbSIsImNvbS5rbSIsImNvb3Aua20iLCJhc3NvLmttIiwicHJlc3NlLmttIiwibWVkZWNpbi5rbSIsIm5vdGFpcmVzLmttIiwicGhhcm1hY2llbnMua20iLCJ2ZXRlcmluYWlyZS5rbSIsImdvdXYua20iLCJrbiIsIm5ldC5rbiIsIm9yZy5rbiIsImVkdS5r''@;'; + put 'put ''biIsImdvdi5rbiIsImtwIiwiY29tLmtwIiwiZWR1LmtwIiwiZ292LmtwIiwib3JnLmtwIiwicmVwLmtwIiwidHJhLmtwIiwia3IiLCJhYy5rciIsImNvLmtyIiwiZXMua3IiLCJnby5rciIsImhzLmtyIiwia2cua3IiLCJtaWwua3IiLCJtcy5rciIsIm5lLmtyIiwib3Iua3IiLCJwZS5rciIs''@;'; + put 'put ''InJlLmtyIiwic2Mua3IiLCJidXNhbi5rciIsImNodW5nYnVrLmtyIiwiY2h1bmduYW0ua3IiLCJkYWVndS5rciIsImRhZWplb24ua3IiLCJnYW5nd29uLmtyIiwiZ3dhbmdqdS5rciIsImd5ZW9uZ2J1ay5rciIsImd5ZW9uZ2dpLmtyIiwiZ3llb25nbmFtLmtyIiwiaW5jaGVvbi5rciIsImpl''@;'; + put 'put ''anUua3IiLCJqZW9uYnVrLmtyIiwiamVvbm5hbS5rciIsInNlb3VsLmtyIiwidWxzYW4ua3IiLCJrdyIsImNvbS5rdyIsImVkdS5rdyIsImVtYi5rdyIsImdvdi5rdyIsImluZC5rdyIsIm5ldC5rdyIsIm9yZy5rdyIsImt5IiwiZWR1Lmt5IiwiZ292Lmt5IiwiY29tLmt5Iiwib3JnLmt5Iiwi''@;'; + put 'put ''bmV0Lmt5Iiwia3oiLCJvcmcua3oiLCJlZHUua3oiLCJuZXQua3oiLCJnb3Yua3oiLCJtaWwua3oiLCJjb20ua3oiLCJsYSIsImludC5sYSIsIm5ldC5sYSIsImluZm8ubGEiLCJlZHUubGEiLCJnb3YubGEiLCJwZXIubGEiLCJjb20ubGEiLCJvcmcubGEiLCJsYiIsImNvbS5sYiIsImVkdS5s''@;'; + put 'put ''YiIsImdvdi5sYiIsIm5ldC5sYiIsIm9yZy5sYiIsImxjIiwiY29tLmxjIiwibmV0LmxjIiwiY28ubGMiLCJvcmcubGMiLCJlZHUubGMiLCJnb3YubGMiLCJsaSIsImxrIiwiZ292LmxrIiwic2NoLmxrIiwibmV0LmxrIiwiaW50LmxrIiwiY29tLmxrIiwib3JnLmxrIiwiZWR1LmxrIiwibmdv''@;'; + put 'put ''LmxrIiwic29jLmxrIiwid2ViLmxrIiwibHRkLmxrIiwiYXNzbi5sayIsImdycC5sayIsImhvdGVsLmxrIiwiYWMubGsiLCJsciIsImNvbS5sciIsImVkdS5sciIsImdvdi5sciIsIm9yZy5sciIsIm5ldC5sciIsImxzIiwiYWMubHMiLCJiaXoubHMiLCJjby5scyIsImVkdS5scyIsImdvdi5s''@;'; + put 'put ''cyIsImluZm8ubHMiLCJuZXQubHMiLCJvcmcubHMiLCJzYy5scyIsImx0IiwiZ292Lmx0IiwibHUiLCJsdiIsImNvbS5sdiIsImVkdS5sdiIsImdvdi5sdiIsIm9yZy5sdiIsIm1pbC5sdiIsImlkLmx2IiwibmV0Lmx2IiwiYXNuLmx2IiwiY29uZi5sdiIsImx5IiwiY29tLmx5IiwibmV0Lmx5''@;'; + put 'put ''IiwiZ292Lmx5IiwicGxjLmx5IiwiZWR1Lmx5Iiwic2NoLmx5IiwibWVkLmx5Iiwib3JnLmx5IiwiaWQubHkiLCJtYSIsImNvLm1hIiwibmV0Lm1hIiwiZ292Lm1hIiwib3JnLm1hIiwiYWMubWEiLCJwcmVzcy5tYSIsIm1jIiwidG0ubWMiLCJhc3NvLm1jIiwibWQiLCJtZSIsImNvLm1lIiwi''@;'; + put 'put ''bmV0Lm1lIiwib3JnLm1lIiwiZWR1Lm1lIiwiYWMubWUiLCJnb3YubWUiLCJpdHMubWUiLCJwcml2Lm1lIiwibWciLCJvcmcubWciLCJub20ubWciLCJnb3YubWciLCJwcmQubWciLCJ0bS5tZyIsImVkdS5tZyIsIm1pbC5tZyIsImNvbS5tZyIsImNvLm1nIiwibWgiLCJtaWwiLCJtayIsImNv''@;'; + put 'put ''bS5tayIsIm9yZy5tayIsIm5ldC5tayIsImVkdS5tayIsImdvdi5tayIsImluZi5tayIsIm5hbWUubWsiLCJtbCIsImNvbS5tbCIsImVkdS5tbCIsImdvdXYubWwiLCJnb3YubWwiLCJuZXQubWwiLCJvcmcubWwiLCJwcmVzc2UubWwiLCIqLm1tIiwibW4iLCJnb3YubW4iLCJlZHUubW4iLCJv''@;'; + put 'put ''cmcubW4iLCJtbyIsImNvbS5tbyIsIm5ldC5tbyIsIm9yZy5tbyIsImVkdS5tbyIsImdvdi5tbyIsIm1vYmkiLCJtcCIsIm1xIiwibXIiLCJnb3YubXIiLCJtcyIsImNvbS5tcyIsImVkdS5tcyIsImdvdi5tcyIsIm5ldC5tcyIsIm9yZy5tcyIsIm10IiwiY29tLm10IiwiZWR1Lm10IiwibmV0''@;'; + put 'put ''Lm10Iiwib3JnLm10IiwibXUiLCJjb20ubXUiLCJuZXQubXUiLCJvcmcubXUiLCJnb3YubXUiLCJhYy5tdSIsImNvLm11Iiwib3IubXUiLCJtdXNldW0iLCJhY2FkZW15Lm11c2V1bSIsImFncmljdWx0dXJlLm11c2V1bSIsImFpci5tdXNldW0iLCJhaXJndWFyZC5tdXNldW0iLCJhbGFiYW1h''@;'; + put 'put ''Lm11c2V1bSIsImFsYXNrYS5tdXNldW0iLCJhbWJlci5tdXNldW0iLCJhbWJ1bGFuY2UubXVzZXVtIiwiYW1lcmljYW4ubXVzZXVtIiwiYW1lcmljYW5hLm11c2V1bSIsImFtZXJpY2FuYW50aXF1ZXMubXVzZXVtIiwiYW1lcmljYW5hcnQubXVzZXVtIiwiYW1zdGVyZGFtLm11c2V1bSIsImFu''@;'; + put 'put ''ZC5tdXNldW0iLCJhbm5lZnJhbmsubXVzZXVtIiwiYW50aHJvLm11c2V1bSIsImFudGhyb3BvbG9neS5tdXNldW0iLCJhbnRpcXVlcy5tdXNldW0iLCJhcXVhcml1bS5tdXNldW0iLCJhcmJvcmV0dW0ubXVzZXVtIiwiYXJjaGFlb2xvZ2ljYWwubXVzZXVtIiwiYXJjaGFlb2xvZ3kubXVzZXVt''@;'; + put 'put ''IiwiYXJjaGl0ZWN0dXJlLm11c2V1bSIsImFydC5tdXNldW0iLCJhcnRhbmRkZXNpZ24ubXVzZXVtIiwiYXJ0Y2VudGVyLm11c2V1bSIsImFydGRlY28ubXVzZXVtIiwiYXJ0ZWR1Y2F0aW9uLm11c2V1bSIsImFydGdhbGxlcnkubXVzZXVtIiwiYXJ0cy5tdXNldW0iLCJhcnRzYW5kY3JhZnRz''@;'; + put 'put ''Lm11c2V1bSIsImFzbWF0YXJ0Lm11c2V1bSIsImFzc2Fzc2luYXRpb24ubXVzZXVtIiwiYXNzaXNpLm11c2V1bSIsImFzc29jaWF0aW9uLm11c2V1bSIsImFzdHJvbm9teS5tdXNldW0iLCJhdGxhbnRhLm11c2V1bSIsImF1c3Rpbi5tdXNldW0iLCJhdXN0cmFsaWEubXVzZXVtIiwiYXV0b21v''@;'; + put 'put ''dGl2ZS5tdXNldW0iLCJhdmlhdGlvbi5tdXNldW0iLCJheGlzLm11c2V1bSIsImJhZGFqb3oubXVzZXVtIiwiYmFnaGRhZC5tdXNldW0iLCJiYWhuLm11c2V1bSIsImJhbGUubXVzZXVtIiwiYmFsdGltb3JlLm11c2V1bSIsImJhcmNlbG9uYS5tdXNldW0iLCJiYXNlYmFsbC5tdXNldW0iLCJi''@;'; + put 'put ''YXNlbC5tdXNldW0iLCJiYXRocy5tdXNldW0iLCJiYXVlcm4ubXVzZXVtIiwiYmVhdXhhcnRzLm11c2V1bSIsImJlZWxkZW5nZWx1aWQubXVzZXVtIiwiYmVsbGV2dWUubXVzZXVtIiwiYmVyZ2JhdS5tdXNldW0iLCJiZXJrZWxleS5tdXNldW0iLCJiZXJsaW4ubXVzZXVtIiwiYmVybi5tdXNl''@;'; + put 'put ''dW0iLCJiaWJsZS5tdXNldW0iLCJiaWxiYW8ubXVzZXVtIiwiYmlsbC5tdXNldW0iLCJiaXJkYXJ0Lm11c2V1bSIsImJpcnRocGxhY2UubXVzZXVtIiwiYm9ubi5tdXNldW0iLCJib3N0b24ubXVzZXVtIiwiYm90YW5pY2FsLm11c2V1bSIsImJvdGFuaWNhbGdhcmRlbi5tdXNldW0iLCJib3Rh''@;'; + put 'put ''bmljZ2FyZGVuLm11c2V1bSIsImJvdGFueS5tdXNldW0iLCJicmFuZHl3aW5ldmFsbGV5Lm11c2V1bSIsImJyYXNpbC5tdXNldW0iLCJicmlzdG9sLm11c2V1bSIsImJyaXRpc2gubXVzZXVtIiwiYnJpdGlzaGNvbHVtYmlhLm11c2V1bSIsImJyb2FkY2FzdC5tdXNldW0iLCJicnVuZWwubXVz''@;'; + put 'put ''ZXVtIiwiYnJ1c3NlbC5tdXNldW0iLCJicnVzc2Vscy5tdXNldW0iLCJicnV4ZWxsZXMubXVzZXVtIiwiYnVpbGRpbmcubXVzZXVtIiwiYnVyZ2hvZi5tdXNldW0iLCJidXMubXVzZXVtIiwiYnVzaGV5Lm11c2V1bSIsImNhZGFxdWVzLm11c2V1bSIsImNhbGlmb3JuaWEubXVzZXVtIiwiY2Ft''@;'; + put 'put ''YnJpZGdlLm11c2V1bSIsImNhbi5tdXNldW0iLCJjYW5hZGEubXVzZXVtIiwiY2FwZWJyZXRvbi5tdXNldW0iLCJjYXJyaWVyLm11c2V1bSIsImNhcnRvb25hcnQubXVzZXVtIiwiY2FzYWRlbGFtb25lZGEubXVzZXVtIiwiY2FzdGxlLm11c2V1bSIsImNhc3RyZXMubXVzZXVtIiwiY2VsdGlj''@;'; + put 'put ''Lm11c2V1bSIsImNlbnRlci5tdXNldW0iLCJjaGF0dGFub29nYS5tdXNldW0iLCJjaGVsdGVuaGFtLm11c2V1bSIsImNoZXNhcGVha2ViYXkubXVzZXVtIiwiY2hpY2Fnby5tdXNldW0iLCJjaGlsZHJlbi5tdXNldW0iLCJjaGlsZHJlbnMubXVzZXVtIiwiY2hpbGRyZW5zZ2FyZGVuLm11c2V1''@;'; + put 'put ''bSIsImNoaXJvcHJhY3RpYy5tdXNldW0iLCJjaG9jb2xhdGUubXVzZXVtIiwiY2hyaXN0aWFuc2J1cmcubXVzZXVtIiwiY2luY2lubmF0aS5tdXNldW0iLCJjaW5lbWEubXVzZXVtIiwiY2lyY3VzLm11c2V1bSIsImNpdmlsaXNhdGlvbi5tdXNldW0iLCJjaXZpbGl6YXRpb24ubXVzZXVtIiwi''@;'; + put 'put ''Y2l2aWx3YXIubXVzZXVtIiwiY2xpbnRvbi5tdXNldW0iLCJjbG9jay5tdXNldW0iLCJjb2FsLm11c2V1bSIsImNvYXN0YWxkZWZlbmNlLm11c2V1bSIsImNvZHkubXVzZXVtIiwiY29sZHdhci5tdXNldW0iLCJjb2xsZWN0aW9uLm11c2V1bSIsImNvbG9uaWFsd2lsbGlhbXNidXJnLm11c2V1''@;'; + put 'put ''bSIsImNvbG9yYWRvcGxhdGVhdS5tdXNldW0iLCJjb2x1bWJpYS5tdXNldW0iLCJjb2x1bWJ1cy5tdXNldW0iLCJjb21tdW5pY2F0aW9uLm11c2V1bSIsImNvbW11bmljYXRpb25zLm11c2V1bSIsImNvbW11bml0eS5tdXNldW0iLCJjb21wdXRlci5tdXNldW0iLCJjb21wdXRlcmhpc3Rvcnku''@;'; + put 'put ''bXVzZXVtIiwiY29tdW5pY2FceGU3XHhmNWVzLm11c2V1bSIsImNvbnRlbXBvcmFyeS5tdXNldW0iLCJjb250ZW1wb3JhcnlhcnQubXVzZXVtIiwiY29udmVudC5tdXNldW0iLCJjb3BlbmhhZ2VuLm11c2V1bSIsImNvcnBvcmF0aW9uLm11c2V1bSIsImNvcnJlaW9zLWUtdGVsZWNvbXVuaWNh''@;'; + put 'put ''XHhlN1x4ZjVlcy5tdXNldW0iLCJjb3J2ZXR0ZS5tdXNldW0iLCJjb3N0dW1lLm11c2V1bSIsImNvdW50cnllc3RhdGUubXVzZXVtIiwiY291bnR5Lm11c2V1bSIsImNyYWZ0cy5tdXNldW0iLCJjcmFuYnJvb2subXVzZXVtIiwiY3JlYXRpb24ubXVzZXVtIiwiY3VsdHVyYWwubXVzZXVtIiwi''@;'; + put 'put ''Y3VsdHVyYWxjZW50ZXIubXVzZXVtIiwiY3VsdHVyZS5tdXNldW0iLCJjeWJlci5tdXNldW0iLCJjeW1ydS5tdXNldW0iLCJkYWxpLm11c2V1bSIsImRhbGxhcy5tdXNldW0iLCJkYXRhYmFzZS5tdXNldW0iLCJkZHIubXVzZXVtIiwiZGVjb3JhdGl2ZWFydHMubXVzZXVtIiwiZGVsYXdhcmUu''@;'; + put 'put ''bXVzZXVtIiwiZGVsbWVuaG9yc3QubXVzZXVtIiwiZGVubWFyay5tdXNldW0iLCJkZXBvdC5tdXNldW0iLCJkZXNpZ24ubXVzZXVtIiwiZGV0cm9pdC5tdXNldW0iLCJkaW5vc2F1ci5tdXNldW0iLCJkaXNjb3ZlcnkubXVzZXVtIiwiZG9sbHMubXVzZXVtIiwiZG9ub3N0aWEubXVzZXVtIiwi''@;'; + put 'put ''ZHVyaGFtLm11c2V1bSIsImVhc3RhZnJpY2EubXVzZXVtIiwiZWFzdGNvYXN0Lm11c2V1bSIsImVkdWNhdGlvbi5tdXNldW0iLCJlZHVjYXRpb25hbC5tdXNldW0iLCJlZ3lwdGlhbi5tdXNldW0iLCJlaXNlbmJhaG4ubXVzZXVtIiwiZWxidXJnLm11c2V1bSIsImVsdmVuZHJlbGwubXVzZXVt''@;'; + put 'put ''IiwiZW1icm9pZGVyeS5tdXNldW0iLCJlbmN5Y2xvcGVkaWMubXVzZXVtIiwiZW5nbGFuZC5tdXNldW0iLCJlbnRvbW9sb2d5Lm11c2V1bSIsImVudmlyb25tZW50Lm11c2V1bSIsImVudmlyb25tZW50YWxjb25zZXJ2YXRpb24ubXVzZXVtIiwiZXBpbGVwc3kubXVzZXVtIiwiZXNzZXgubXVz''@;'; + put 'put ''ZXVtIiwiZXN0YXRlLm11c2V1bSIsImV0aG5vbG9neS5tdXNldW0iLCJleGV0ZXIubXVzZXVtIiwiZXhoaWJpdGlvbi5tdXNldW0iLCJmYW1pbHkubXVzZXVtIiwiZmFybS5tdXNldW0iLCJmYXJtZXF1aXBtZW50Lm11c2V1bSIsImZhcm1lcnMubXVzZXVtIiwiZmFybXN0ZWFkLm11c2V1bSIs''@;'; + put 'put ''ImZpZWxkLm11c2V1bSIsImZpZ3VlcmVzLm11c2V1bSIsImZpbGF0ZWxpYS5tdXNldW0iLCJmaWxtLm11c2V1bSIsImZpbmVhcnQubXVzZXVtIiwiZmluZWFydHMubXVzZXVtIiwiZmlubGFuZC5tdXNldW0iLCJmbGFuZGVycy5tdXNldW0iLCJmbG9yaWRhLm11c2V1bSIsImZvcmNlLm11c2V1''@;'; + put 'put ''bSIsImZvcnRtaXNzb3VsYS5tdXNldW0iLCJmb3J0d29ydGgubXVzZXVtIiwiZm91bmRhdGlvbi5tdXNldW0iLCJmcmFuY2Fpc2UubXVzZXVtIiwiZnJhbmtmdXJ0Lm11c2V1bSIsImZyYW56aXNrYW5lci5tdXNldW0iLCJmcmVlbWFzb25yeS5tdXNldW0iLCJmcmVpYnVyZy5tdXNldW0iLCJm''@;'; + put 'put ''cmlib3VyZy5tdXNldW0iLCJmcm9nLm11c2V1bSIsImZ1bmRhY2lvLm11c2V1bSIsImZ1cm5pdHVyZS5tdXNldW0iLCJnYWxsZXJ5Lm11c2V1bSIsImdhcmRlbi5tdXNldW0iLCJnYXRld2F5Lm11c2V1bSIsImdlZWx2aW5jay5tdXNldW0iLCJnZW1vbG9naWNhbC5tdXNldW0iLCJnZW9sb2d5''@;'; + put 'put ''Lm11c2V1bSIsImdlb3JnaWEubXVzZXVtIiwiZ2llc3Nlbi5tdXNldW0iLCJnbGFzLm11c2V1bSIsImdsYXNzLm11c2V1bSIsImdvcmdlLm11c2V1bSIsImdyYW5kcmFwaWRzLm11c2V1bSIsImdyYXoubXVzZXVtIiwiZ3Vlcm5zZXkubXVzZXVtIiwiaGFsbG9mZmFtZS5tdXNldW0iLCJoYW1i''@;'; + put 'put ''dXJnLm11c2V1bSIsImhhbmRzb24ubXVzZXVtIiwiaGFydmVzdGNlbGVicmF0aW9uLm11c2V1bSIsImhhd2FpaS5tdXNldW0iLCJoZWFsdGgubXVzZXVtIiwiaGVpbWF0dW5kdWhyZW4ubXVzZXVtIiwiaGVsbGFzLm11c2V1bSIsImhlbHNpbmtpLm11c2V1bSIsImhlbWJ5Z2RzZm9yYnVuZC5t''@;'; + put 'put ''dXNldW0iLCJoZXJpdGFnZS5tdXNldW0iLCJoaXN0b2lyZS5tdXNldW0iLCJoaXN0b3JpY2FsLm11c2V1bSIsImhpc3RvcmljYWxzb2NpZXR5Lm11c2V1bSIsImhpc3RvcmljaG91c2VzLm11c2V1bSIsImhpc3RvcmlzY2gubXVzZXVtIiwiaGlzdG9yaXNjaGVzLm11c2V1bSIsImhpc3Rvcnku''@;'; + put 'put ''bXVzZXVtIiwiaGlzdG9yeW9mc2NpZW5jZS5tdXNldW0iLCJob3JvbG9neS5tdXNldW0iLCJob3VzZS5tdXNldW0iLCJodW1hbml0aWVzLm11c2V1bSIsImlsbHVzdHJhdGlvbi5tdXNldW0iLCJpbWFnZWFuZHNvdW5kLm11c2V1bSIsImluZGlhbi5tdXNldW0iLCJpbmRpYW5hLm11c2V1bSIs''@;'; + put 'put ''ImluZGlhbmFwb2xpcy5tdXNldW0iLCJpbmRpYW5tYXJrZXQubXVzZXVtIiwiaW50ZWxsaWdlbmNlLm11c2V1bSIsImludGVyYWN0aXZlLm11c2V1bSIsImlyYXEubXVzZXVtIiwiaXJvbi5tdXNldW0iLCJpc2xlb2ZtYW4ubXVzZXVtIiwiamFtaXNvbi5tdXNldW0iLCJqZWZmZXJzb24ubXVz''@;'; + put 'put ''ZXVtIiwiamVydXNhbGVtLm11c2V1bSIsImpld2VscnkubXVzZXVtIiwiamV3aXNoLm11c2V1bSIsImpld2lzaGFydC5tdXNldW0iLCJqZmsubXVzZXVtIiwiam91cm5hbGlzbS5tdXNldW0iLCJqdWRhaWNhLm11c2V1bSIsImp1ZHlnYXJsYW5kLm11c2V1bSIsImp1ZWRpc2NoZXMubXVzZXVt''@;'; + put 'put ''IiwianVpZi5tdXNldW0iLCJrYXJhdGUubXVzZXVtIiwia2FyaWthdHVyLm11c2V1bSIsImtpZHMubXVzZXVtIiwia29lYmVuaGF2bi5tdXNldW0iLCJrb2Vsbi5tdXNldW0iLCJrdW5zdC5tdXNldW0iLCJrdW5zdHNhbW1sdW5nLm11c2V1bSIsImt1bnN0dW5kZGVzaWduLm11c2V1bSIsImxh''@;'; + put 'put ''Ym9yLm11c2V1bSIsImxhYm91ci5tdXNldW0iLCJsYWpvbGxhLm11c2V1bSIsImxhbmNhc2hpcmUubXVzZXVtIiwibGFuZGVzLm11c2V1bSIsImxhbnMubXVzZXVtIiwibFx4ZTRucy5tdXNldW0iLCJsYXJzc29uLm11c2V1bSIsImxld2lzbWlsbGVyLm11c2V1bSIsImxpbmNvbG4ubXVzZXVt''@;'; + put 'put ''IiwibGluei5tdXNldW0iLCJsaXZpbmcubXVzZXVtIiwibGl2aW5naGlzdG9yeS5tdXNldW0iLCJsb2NhbGhpc3RvcnkubXVzZXVtIiwibG9uZG9uLm11c2V1bSIsImxvc2FuZ2VsZXMubXVzZXVtIiwibG91dnJlLm11c2V1bSIsImxveWFsaXN0Lm11c2V1bSIsImx1Y2VybmUubXVzZXVtIiwi''@;'; + put 'put ''bHV4ZW1ib3VyZy5tdXNldW0iLCJsdXplcm4ubXVzZXVtIiwibWFkLm11c2V1bSIsIm1hZHJpZC5tdXNldW0iLCJtYWxsb3JjYS5tdXNldW0iLCJtYW5jaGVzdGVyLm11c2V1bSIsIm1hbnNpb24ubXVzZXVtIiwibWFuc2lvbnMubXVzZXVtIiwibWFueC5tdXNldW0iLCJtYXJidXJnLm11c2V1''@;'; + put 'put ''bSIsIm1hcml0aW1lLm11c2V1bSIsIm1hcml0aW1vLm11c2V1bSIsIm1hcnlsYW5kLm11c2V1bSIsIm1hcnlsaHVyc3QubXVzZXVtIiwibWVkaWEubXVzZXVtIiwibWVkaWNhbC5tdXNldW0iLCJtZWRpemluaGlzdG9yaXNjaGVzLm11c2V1bSIsIm1lZXJlcy5tdXNldW0iLCJtZW1vcmlhbC5t''@;'; + put 'put ''dXNldW0iLCJtZXNhdmVyZGUubXVzZXVtIiwibWljaGlnYW4ubXVzZXVtIiwibWlkYXRsYW50aWMubXVzZXVtIiwibWlsaXRhcnkubXVzZXVtIiwibWlsbC5tdXNldW0iLCJtaW5lcnMubXVzZXVtIiwibWluaW5nLm11c2V1bSIsIm1pbm5lc290YS5tdXNldW0iLCJtaXNzaWxlLm11c2V1bSIs''@;'; + put 'put ''Im1pc3NvdWxhLm11c2V1bSIsIm1vZGVybi5tdXNldW0iLCJtb21hLm11c2V1bSIsIm1vbmV5Lm11c2V1bSIsIm1vbm1vdXRoLm11c2V1bSIsIm1vbnRpY2VsbG8ubXVzZXVtIiwibW9udHJlYWwubXVzZXVtIiwibW9zY293Lm11c2V1bSIsIm1vdG9yY3ljbGUubXVzZXVtIiwibXVlbmNoZW4u''@;'; + put 'put ''bXVzZXVtIiwibXVlbnN0ZXIubXVzZXVtIiwibXVsaG91c2UubXVzZXVtIiwibXVuY2llLm11c2V1bSIsIm11c2VldC5tdXNldW0iLCJtdXNldW1jZW50ZXIubXVzZXVtIiwibXVzZXVtdmVyZW5pZ2luZy5tdXNldW0iLCJtdXNpYy5tdXNldW0iLCJuYXRpb25hbC5tdXNldW0iLCJuYXRpb25h''@;'; + put 'put ''bGZpcmVhcm1zLm11c2V1bSIsIm5hdGlvbmFsaGVyaXRhZ2UubXVzZXVtIiwibmF0aXZlYW1lcmljYW4ubXVzZXVtIiwibmF0dXJhbGhpc3RvcnkubXVzZXVtIiwibmF0dXJhbGhpc3RvcnltdXNldW0ubXVzZXVtIiwibmF0dXJhbHNjaWVuY2VzLm11c2V1bSIsIm5hdHVyZS5tdXNldW0iLCJu''@;'; + put 'put ''YXR1cmhpc3RvcmlzY2hlcy5tdXNldW0iLCJuYXR1dXJ3ZXRlbnNjaGFwcGVuLm11c2V1bSIsIm5hdW1idXJnLm11c2V1bSIsIm5hdmFsLm11c2V1bSIsIm5lYnJhc2thLm11c2V1bSIsIm5ldWVzLm11c2V1bSIsIm5ld2hhbXBzaGlyZS5tdXNldW0iLCJuZXdqZXJzZXkubXVzZXVtIiwibmV3''@;'; + put 'put ''bWV4aWNvLm11c2V1bSIsIm5ld3BvcnQubXVzZXVtIiwibmV3c3BhcGVyLm11c2V1bSIsIm5ld3lvcmsubXVzZXVtIiwibmllcGNlLm11c2V1bSIsIm5vcmZvbGsubXVzZXVtIiwibm9ydGgubXVzZXVtIiwibnJ3Lm11c2V1bSIsIm55Yy5tdXNldW0iLCJueW55Lm11c2V1bSIsIm9jZWFub2dy''@;'; + put 'put ''YXBoaWMubXVzZXVtIiwib2NlYW5vZ3JhcGhpcXVlLm11c2V1bSIsIm9tYWhhLm11c2V1bSIsIm9ubGluZS5tdXNldW0iLCJvbnRhcmlvLm11c2V1bSIsIm9wZW5haXIubXVzZXVtIiwib3JlZ29uLm11c2V1bSIsIm9yZWdvbnRyYWlsLm11c2V1bSIsIm90YWdvLm11c2V1bSIsIm94Zm9yZC5t''@;'; + put 'put ''dXNldW0iLCJwYWNpZmljLm11c2V1bSIsInBhZGVyYm9ybi5tdXNldW0iLCJwYWxhY2UubXVzZXVtIiwicGFsZW8ubXVzZXVtIiwicGFsbXNwcmluZ3MubXVzZXVtIiwicGFuYW1hLm11c2V1bSIsInBhcmlzLm11c2V1bSIsInBhc2FkZW5hLm11c2V1bSIsInBoYXJtYWN5Lm11c2V1bSIsInBo''@;'; + put 'put ''aWxhZGVscGhpYS5tdXNldW0iLCJwaGlsYWRlbHBoaWFhcmVhLm11c2V1bSIsInBoaWxhdGVseS5tdXNldW0iLCJwaG9lbml4Lm11c2V1bSIsInBob3RvZ3JhcGh5Lm11c2V1bSIsInBpbG90cy5tdXNldW0iLCJwaXR0c2J1cmdoLm11c2V1bSIsInBsYW5ldGFyaXVtLm11c2V1bSIsInBsYW50''@;'; + put 'put ''YXRpb24ubXVzZXVtIiwicGxhbnRzLm11c2V1bSIsInBsYXphLm11c2V1bSIsInBvcnRhbC5tdXNldW0iLCJwb3J0bGFuZC5tdXNldW0iLCJwb3J0bGxpZ2F0Lm11c2V1bSIsInBvc3RzLWFuZC10ZWxlY29tbXVuaWNhdGlvbnMubXVzZXVtIiwicHJlc2VydmF0aW9uLm11c2V1bSIsInByZXNp''@;'; + put 'put ''ZGlvLm11c2V1bSIsInByZXNzLm11c2V1bSIsInByb2plY3QubXVzZXVtIiwicHVibGljLm11c2V1bSIsInB1Ym9sLm11c2V1bSIsInF1ZWJlYy5tdXNldW0iLCJyYWlscm9hZC5tdXNldW0iLCJyYWlsd2F5Lm11c2V1bSIsInJlc2VhcmNoLm11c2V1bSIsInJlc2lzdGFuY2UubXVzZXVtIiwi''@;'; + put 'put ''cmlvZGVqYW5laXJvLm11c2V1bSIsInJvY2hlc3Rlci5tdXNldW0iLCJyb2NrYXJ0Lm11c2V1bSIsInJvbWEubXVzZXVtIiwicnVzc2lhLm11c2V1bSIsInNhaW50bG91aXMubXVzZXVtIiwic2FsZW0ubXVzZXVtIiwic2FsdmFkb3JkYWxpLm11c2V1bSIsInNhbHpidXJnLm11c2V1bSIsInNh''@;'; + put 'put ''bmRpZWdvLm11c2V1bSIsInNhbmZyYW5jaXNjby5tdXNldW0iLCJzYW50YWJhcmJhcmEubXVzZXVtIiwic2FudGFjcnV6Lm11c2V1bSIsInNhbnRhZmUubXVzZXVtIiwic2Fza2F0Y2hld2FuLm11c2V1bSIsInNhdHgubXVzZXVtIiwic2F2YW5uYWhnYS5tdXNldW0iLCJzY2hsZXNpc2NoZXMu''@;'; + put 'put ''bXVzZXVtIiwic2Nob2VuYnJ1bm4ubXVzZXVtIiwic2Nob2tvbGFkZW4ubXVzZXVtIiwic2Nob29sLm11c2V1bSIsInNjaHdlaXoubXVzZXVtIiwic2NpZW5jZS5tdXNldW0iLCJzY2llbmNlYW5kaGlzdG9yeS5tdXNldW0iLCJzY2llbmNlYW5kaW5kdXN0cnkubXVzZXVtIiwic2NpZW5jZWNl''@;'; + put 'put ''bnRlci5tdXNldW0iLCJzY2llbmNlY2VudGVycy5tdXNldW0iLCJzY2llbmNlLWZpY3Rpb24ubXVzZXVtIiwic2NpZW5jZWhpc3RvcnkubXVzZXVtIiwic2NpZW5jZXMubXVzZXVtIiwic2NpZW5jZXNuYXR1cmVsbGVzLm11c2V1bSIsInNjb3RsYW5kLm11c2V1bSIsInNlYXBvcnQubXVzZXVt''@;'; + put 'put ''Iiwic2V0dGxlbWVudC5tdXNldW0iLCJzZXR0bGVycy5tdXNldW0iLCJzaGVsbC5tdXNldW0iLCJzaGVyYnJvb2tlLm11c2V1bSIsInNpYmVuaWsubXVzZXVtIiwic2lsay5tdXNldW0iLCJza2kubXVzZXVtIiwic2tvbGUubXVzZXVtIiwic29jaWV0eS5tdXNldW0iLCJzb2xvZ25lLm11c2V1''@;'; + put 'put ''bSIsInNvdW5kYW5kdmlzaW9uLm11c2V1bSIsInNvdXRoY2Fyb2xpbmEubXVzZXVtIiwic291dGh3ZXN0Lm11c2V1bSIsInNwYWNlLm11c2V1bSIsInNweS5tdXNldW0iLCJzcXVhcmUubXVzZXVtIiwic3RhZHQubXVzZXVtIiwic3RhbGJhbnMubXVzZXVtIiwic3Rhcm5iZXJnLm11c2V1bSIs''@;'; + put 'put ''InN0YXRlLm11c2V1bSIsInN0YXRlb2ZkZWxhd2FyZS5tdXNldW0iLCJzdGF0aW9uLm11c2V1bSIsInN0ZWFtLm11c2V1bSIsInN0ZWllcm1hcmsubXVzZXVtIiwic3Rqb2huLm11c2V1bSIsInN0b2NraG9sbS5tdXNldW0iLCJzdHBldGVyc2J1cmcubXVzZXVtIiwic3R1dHRnYXJ0Lm11c2V1''@;'; + put 'put ''bSIsInN1aXNzZS5tdXNldW0iLCJzdXJnZW9uc2hhbGwubXVzZXVtIiwic3VycmV5Lm11c2V1bSIsInN2aXp6ZXJhLm11c2V1bSIsInN3ZWRlbi5tdXNldW0iLCJzeWRuZXkubXVzZXVtIiwidGFuay5tdXNldW0iLCJ0Y20ubXVzZXVtIiwidGVjaG5vbG9neS5tdXNldW0iLCJ0ZWxla29tbXVu''@;'; + put 'put ''aWthdGlvbi5tdXNldW0iLCJ0ZWxldmlzaW9uLm11c2V1bSIsInRleGFzLm11c2V1bSIsInRleHRpbGUubXVzZXVtIiwidGhlYXRlci5tdXNldW0iLCJ0aW1lLm11c2V1bSIsInRpbWVrZWVwaW5nLm11c2V1bSIsInRvcG9sb2d5Lm11c2V1bSIsInRvcmluby5tdXNldW0iLCJ0b3VjaC5tdXNl''@;'; + put 'put ''dW0iLCJ0b3duLm11c2V1bSIsInRyYW5zcG9ydC5tdXNldW0iLCJ0cmVlLm11c2V1bSIsInRyb2xsZXkubXVzZXVtIiwidHJ1c3QubXVzZXVtIiwidHJ1c3RlZS5tdXNldW0iLCJ1aHJlbi5tdXNldW0iLCJ1bG0ubXVzZXVtIiwidW5kZXJzZWEubXVzZXVtIiwidW5pdmVyc2l0eS5tdXNldW0i''@;'; + put 'put ''LCJ1c2EubXVzZXVtIiwidXNhbnRpcXVlcy5tdXNldW0iLCJ1c2FydHMubXVzZXVtIiwidXNjb3VudHJ5ZXN0YXRlLm11c2V1bSIsInVzY3VsdHVyZS5tdXNldW0iLCJ1c2RlY29yYXRpdmVhcnRzLm11c2V1bSIsInVzZ2FyZGVuLm11c2V1bSIsInVzaGlzdG9yeS5tdXNldW0iLCJ1c2h1YWlh''@;'; + put 'put ''Lm11c2V1bSIsInVzbGl2aW5naGlzdG9yeS5tdXNldW0iLCJ1dGFoLm11c2V1bSIsInV2aWMubXVzZXVtIiwidmFsbGV5Lm11c2V1bSIsInZhbnRhYS5tdXNldW0iLCJ2ZXJzYWlsbGVzLm11c2V1bSIsInZpa2luZy5tdXNldW0iLCJ2aWxsYWdlLm11c2V1bSIsInZpcmdpbmlhLm11c2V1bSIs''@;'; + put 'put ''InZpcnR1YWwubXVzZXVtIiwidmlydHVlbC5tdXNldW0iLCJ2bGFhbmRlcmVuLm11c2V1bSIsInZvbGtlbmt1bmRlLm11c2V1bSIsIndhbGVzLm11c2V1bSIsIndhbGxvbmllLm11c2V1bSIsIndhci5tdXNldW0iLCJ3YXNoaW5ndG9uZGMubXVzZXVtIiwid2F0Y2hhbmRjbG9jay5tdXNldW0i''@;'; + put 'put ''LCJ3YXRjaC1hbmQtY2xvY2subXVzZXVtIiwid2VzdGVybi5tdXNldW0iLCJ3ZXN0ZmFsZW4ubXVzZXVtIiwid2hhbGluZy5tdXNldW0iLCJ3aWxkbGlmZS5tdXNldW0iLCJ3aWxsaWFtc2J1cmcubXVzZXVtIiwid2luZG1pbGwubXVzZXVtIiwid29ya3Nob3AubXVzZXVtIiwieW9yay5tdXNl''@;'; + put 'put ''dW0iLCJ5b3Jrc2hpcmUubXVzZXVtIiwieW9zZW1pdGUubXVzZXVtIiwieW91dGgubXVzZXVtIiwiem9vbG9naWNhbC5tdXNldW0iLCJ6b29sb2d5Lm11c2V1bSIsIlx1MDVkOVx1MDVlOFx1MDVkNVx1MDVlOVx1MDVkY1x1MDVkOVx1MDVkZC5tdXNldW0iLCJcdTA0MzhcdTA0M2FcdTA0M2Vc''@;'; + put 'put ''dTA0M2MubXVzZXVtIiwibXYiLCJhZXJvLm12IiwiYml6Lm12IiwiY29tLm12IiwiY29vcC5tdiIsImVkdS5tdiIsImdvdi5tdiIsImluZm8ubXYiLCJpbnQubXYiLCJtaWwubXYiLCJtdXNldW0ubXYiLCJuYW1lLm12IiwibmV0Lm12Iiwib3JnLm12IiwicHJvLm12IiwibXciLCJhYy5tdyIs''@;'; + put 'put ''ImJpei5tdyIsImNvLm13IiwiY29tLm13IiwiY29vcC5tdyIsImVkdS5tdyIsImdvdi5tdyIsImludC5tdyIsIm11c2V1bS5tdyIsIm5ldC5tdyIsIm9yZy5tdyIsIm14IiwiY29tLm14Iiwib3JnLm14IiwiZ29iLm14IiwiZWR1Lm14IiwibmV0Lm14IiwibXkiLCJjb20ubXkiLCJuZXQubXki''@;'; + put 'put ''LCJvcmcubXkiLCJnb3YubXkiLCJlZHUubXkiLCJtaWwubXkiLCJuYW1lLm15IiwibXoiLCJhYy5teiIsImFkdi5teiIsImNvLm16IiwiZWR1Lm16IiwiZ292Lm16IiwibWlsLm16IiwibmV0Lm16Iiwib3JnLm16IiwibmEiLCJpbmZvLm5hIiwicHJvLm5hIiwibmFtZS5uYSIsInNjaG9vbC5u''@;'; + put 'put ''YSIsIm9yLm5hIiwiZHIubmEiLCJ1cy5uYSIsIm14Lm5hIiwiY2EubmEiLCJpbi5uYSIsImNjLm5hIiwidHYubmEiLCJ3cy5uYSIsIm1vYmkubmEiLCJjby5uYSIsImNvbS5uYSIsIm9yZy5uYSIsIm5hbWUiLCJuYyIsImFzc28ubmMiLCJub20ubmMiLCJuZSIsIm5ldCIsIm5mIiwiY29tLm5m''@;'; + put 'put ''IiwibmV0Lm5mIiwicGVyLm5mIiwicmVjLm5mIiwid2ViLm5mIiwiYXJ0cy5uZiIsImZpcm0ubmYiLCJpbmZvLm5mIiwib3RoZXIubmYiLCJzdG9yZS5uZiIsIm5nIiwiY29tLm5nIiwiZWR1Lm5nIiwiZ292Lm5nIiwiaS5uZyIsIm1pbC5uZyIsIm1vYmkubmciLCJuYW1lLm5nIiwibmV0Lm5n''@;'; + put 'put ''Iiwib3JnLm5nIiwic2NoLm5nIiwibmkiLCJhYy5uaSIsImJpei5uaSIsImNvLm5pIiwiY29tLm5pIiwiZWR1Lm5pIiwiZ29iLm5pIiwiaW4ubmkiLCJpbmZvLm5pIiwiaW50Lm5pIiwibWlsLm5pIiwibmV0Lm5pIiwibm9tLm5pIiwib3JnLm5pIiwid2ViLm5pIiwibmwiLCJubyIsImZocy5u''@;'; + put 'put ''byIsInZncy5ubyIsImZ5bGtlc2JpYmwubm8iLCJmb2xrZWJpYmwubm8iLCJtdXNldW0ubm8iLCJpZHJldHQubm8iLCJwcml2Lm5vIiwibWlsLm5vIiwic3RhdC5ubyIsImRlcC5ubyIsImtvbW11bmUubm8iLCJoZXJhZC5ubyIsImFhLm5vIiwiYWgubm8iLCJidS5ubyIsImZtLm5vIiwiaGwu''@;'; + put 'put ''bm8iLCJobS5ubyIsImphbi1tYXllbi5ubyIsIm1yLm5vIiwibmwubm8iLCJudC5ubyIsIm9mLm5vIiwib2wubm8iLCJvc2xvLm5vIiwicmwubm8iLCJzZi5ubyIsInN0Lm5vIiwic3ZhbGJhcmQubm8iLCJ0bS5ubyIsInRyLm5vIiwidmEubm8iLCJ2Zi5ubyIsImdzLmFhLm5vIiwiZ3MuYWgu''@;'; + put 'put ''bm8iLCJncy5idS5ubyIsImdzLmZtLm5vIiwiZ3MuaGwubm8iLCJncy5obS5ubyIsImdzLmphbi1tYXllbi5ubyIsImdzLm1yLm5vIiwiZ3Mubmwubm8iLCJncy5udC5ubyIsImdzLm9mLm5vIiwiZ3Mub2wubm8iLCJncy5vc2xvLm5vIiwiZ3Mucmwubm8iLCJncy5zZi5ubyIsImdzLnN0Lm5v''@;'; + put 'put ''IiwiZ3Muc3ZhbGJhcmQubm8iLCJncy50bS5ubyIsImdzLnRyLm5vIiwiZ3MudmEubm8iLCJncy52Zi5ubyIsImFrcmVoYW1uLm5vIiwiXHhlNWtyZWhhbW4ubm8iLCJhbGdhcmQubm8iLCJceGU1bGdceGU1cmQubm8iLCJhcm5hLm5vIiwiYnJ1bXVuZGRhbC5ubyIsImJyeW5lLm5vIiwiYnJv''@;'; + put 'put ''bm5veXN1bmQubm8iLCJiclx4Zjhublx4Zjh5c3VuZC5ubyIsImRyb2Jhay5ubyIsImRyXHhmOGJhay5ubyIsImVnZXJzdW5kLm5vIiwiZmV0c3VuZC5ubyIsImZsb3JvLm5vIiwiZmxvclx4Zjgubm8iLCJmcmVkcmlrc3RhZC5ubyIsImhva2tzdW5kLm5vIiwiaG9uZWZvc3Mubm8iLCJoXHhm''@;'; + put 'put ''OG5lZm9zcy5ubyIsImplc3NoZWltLm5vIiwiam9ycGVsYW5kLm5vIiwialx4ZjhycGVsYW5kLm5vIiwia2lya2VuZXMubm8iLCJrb3BlcnZpay5ubyIsImtyb2tzdGFkZWx2YS5ubyIsImxhbmdldmFnLm5vIiwibGFuZ2V2XHhlNWcubm8iLCJsZWlydmlrLm5vIiwibWpvbmRhbGVuLm5vIiwi''@;'; + put 'put ''bWpceGY4bmRhbGVuLm5vIiwibW8taS1yYW5hLm5vIiwibW9zam9lbi5ubyIsIm1vc2pceGY4ZW4ubm8iLCJuZXNvZGR0YW5nZW4ubm8iLCJvcmthbmdlci5ubyIsIm9zb3lyby5ubyIsIm9zXHhmOHlyby5ubyIsInJhaG9sdC5ubyIsInJceGU1aG9sdC5ubyIsInNhbmRuZXNzam9lbi5ubyIs''@;'; + put 'put ''InNhbmRuZXNzalx4Zjhlbi5ubyIsInNrZWRzbW9rb3JzZXQubm8iLCJzbGF0dHVtLm5vIiwic3BqZWxrYXZpay5ubyIsInN0YXRoZWxsZS5ubyIsInN0YXZlcm4ubm8iLCJzdGpvcmRhbHNoYWxzZW4ubm8iLCJzdGpceGY4cmRhbHNoYWxzZW4ubm8iLCJ0YW5hbmdlci5ubyIsInRyYW5ieS5u''@;'; + put 'put ''byIsInZvc3NldmFuZ2VuLm5vIiwiYWZqb3JkLm5vIiwiXHhlNWZqb3JkLm5vIiwiYWdkZW5lcy5ubyIsImFsLm5vIiwiXHhlNWwubm8iLCJhbGVzdW5kLm5vIiwiXHhlNWxlc3VuZC5ubyIsImFsc3RhaGF1Zy5ubyIsImFsdGEubm8iLCJceGUxbHRceGUxLm5vIiwiYWxhaGVhZGp1Lm5vIiwi''@;'; + put 'put ''XHhlMWxhaGVhZGp1Lm5vIiwiYWx2ZGFsLm5vIiwiYW1saS5ubyIsIlx4ZTVtbGkubm8iLCJhbW90Lm5vIiwiXHhlNW1vdC5ubyIsImFuZGVidS5ubyIsImFuZG95Lm5vIiwiYW5kXHhmOHkubm8iLCJhbmRhc3VvbG8ubm8iLCJhcmRhbC5ubyIsIlx4ZTVyZGFsLm5vIiwiYXJlbWFyay5ubyIs''@;'; + put 'put ''ImFyZW5kYWwubm8iLCJceGU1cy5ubyIsImFzZXJhbC5ubyIsIlx4ZTVzZXJhbC5ubyIsImFza2VyLm5vIiwiYXNraW0ubm8iLCJhc2t2b2xsLm5vIiwiYXNrb3kubm8iLCJhc2tceGY4eS5ubyIsImFzbmVzLm5vIiwiXHhlNXNuZXMubm8iLCJhdWRuZWRhbG4ubm8iLCJhdWtyYS5ubyIsImF1''@;'; + put 'put ''cmUubm8iLCJhdXJsYW5kLm5vIiwiYXVyc2tvZy1ob2xhbmQubm8iLCJhdXJza29nLWhceGY4bGFuZC5ubyIsImF1c3Rldm9sbC5ubyIsImF1c3RyaGVpbS5ubyIsImF2ZXJveS5ubyIsImF2ZXJceGY4eS5ubyIsImJhbGVzdHJhbmQubm8iLCJiYWxsYW5nZW4ubm8iLCJiYWxhdC5ubyIsImJc''@;'; + put 'put ''eGUxbFx4ZTF0Lm5vIiwiYmFsc2Zqb3JkLm5vIiwiYmFoY2NhdnVvdG5hLm5vIiwiYlx4ZTFoY2NhdnVvdG5hLm5vIiwiYmFtYmxlLm5vIiwiYmFyZHUubm8iLCJiZWFyZHUubm8iLCJiZWlhcm4ubm8iLCJiYWpkZGFyLm5vIiwiYlx4ZTFqZGRhci5ubyIsImJhaWRhci5ubyIsImJceGUxaWRc''@;'; + put 'put ''eGUxci5ubyIsImJlcmcubm8iLCJiZXJnZW4ubm8iLCJiZXJsZXZhZy5ubyIsImJlcmxldlx4ZTVnLm5vIiwiYmVhcmFsdmFoa2kubm8iLCJiZWFyYWx2XHhlMWhraS5ubyIsImJpbmRhbC5ubyIsImJpcmtlbmVzLm5vIiwiYmphcmtveS5ubyIsImJqYXJrXHhmOHkubm8iLCJiamVya3JlaW0u''@;'; + put 'put ''bm8iLCJianVnbi5ubyIsImJvZG8ubm8iLCJib2RceGY4Lm5vIiwiYmFkYWRkamEubm8iLCJiXHhlNWRceGU1ZGRqXHhlNS5ubyIsImJ1ZGVqanUubm8iLCJib2tuLm5vIiwiYnJlbWFuZ2VyLm5vIiwiYnJvbm5veS5ubyIsImJyXHhmOG5uXHhmOHkubm8iLCJieWdsYW5kLm5vIiwiYnlrbGUu''@;'; + put 'put ''bm8iLCJiYXJ1bS5ubyIsImJceGU2cnVtLm5vIiwiYm8udGVsZW1hcmsubm8iLCJiXHhmOC50ZWxlbWFyay5ubyIsImJvLm5vcmRsYW5kLm5vIiwiYlx4Zjgubm9yZGxhbmQubm8iLCJiaWV2YXQubm8iLCJiaWV2XHhlMXQubm8iLCJib21sby5ubyIsImJceGY4bWxvLm5vIiwiYmF0c2Zqb3Jk''@;'; + put 'put ''Lm5vIiwiYlx4ZTV0c2Zqb3JkLm5vIiwiYmFoY2F2dW90bmEubm8iLCJiXHhlMWhjYXZ1b3RuYS5ubyIsImRvdnJlLm5vIiwiZHJhbW1lbi5ubyIsImRyYW5nZWRhbC5ubyIsImR5cm95Lm5vIiwiZHlyXHhmOHkubm8iLCJkb25uYS5ubyIsImRceGY4bm5hLm5vIiwiZWlkLm5vIiwiZWlkZmpv''@;'; + put 'put ''cmQubm8iLCJlaWRzYmVyZy5ubyIsImVpZHNrb2cubm8iLCJlaWRzdm9sbC5ubyIsImVpZ2Vyc3VuZC5ubyIsImVsdmVydW0ubm8iLCJlbmViYWtrLm5vIiwiZW5nZXJkYWwubm8iLCJldG5lLm5vIiwiZXRuZWRhbC5ubyIsImV2ZW5lcy5ubyIsImV2ZW5hc3NpLm5vIiwiZXZlblx4ZTFcdTAx''@;'; + put 'put ''NjFcdTAxNjFpLm5vIiwiZXZqZS1vZy1ob3JubmVzLm5vIiwiZmFyc3VuZC5ubyIsImZhdXNrZS5ubyIsImZ1b3Nza28ubm8iLCJmdW9pc2t1Lm5vIiwiZmVkamUubm8iLCJmZXQubm8iLCJmaW5ub3kubm8iLCJmaW5uXHhmOHkubm8iLCJmaXRqYXIubm8iLCJmamFsZXIubm8iLCJmamVsbC5u''@;'; + put 'put ''byIsImZsYWtzdGFkLm5vIiwiZmxhdGFuZ2VyLm5vIiwiZmxla2tlZmpvcmQubm8iLCJmbGVzYmVyZy5ubyIsImZsb3JhLm5vIiwiZmxhLm5vIiwiZmxceGU1Lm5vIiwiZm9sbGRhbC5ubyIsImZvcnNhbmQubm8iLCJmb3NuZXMubm8iLCJmcmVpLm5vIiwiZnJvZ24ubm8iLCJmcm9sYW5kLm5v''@;'; + put 'put ''IiwiZnJvc3RhLm5vIiwiZnJhbmEubm8iLCJmclx4ZTZuYS5ubyIsImZyb3lhLm5vIiwiZnJceGY4eWEubm8iLCJmdXNhLm5vIiwiZnlyZXNkYWwubm8iLCJmb3JkZS5ubyIsImZceGY4cmRlLm5vIiwiZ2FtdmlrLm5vIiwiZ2FuZ2F2aWlrYS5ubyIsImdceGUxXHUwMTRiZ2F2aWlrYS5ubyIs''@;'; + put 'put ''ImdhdWxhci5ubyIsImdhdXNkYWwubm8iLCJnaWxkZXNrYWwubm8iLCJnaWxkZXNrXHhlNWwubm8iLCJnaXNrZS5ubyIsImdqZW1uZXMubm8iLCJnamVyZHJ1bS5ubyIsImdqZXJzdGFkLm5vIiwiZ2plc2RhbC5ubyIsImdqb3Zpay5ubyIsImdqXHhmOHZpay5ubyIsImdsb3BwZW4ubm8iLCJn''@;'; + put 'put ''b2wubm8iLCJncmFuLm5vIiwiZ3JhbmUubm8iLCJncmFudmluLm5vIiwiZ3JhdGFuZ2VuLm5vIiwiZ3JpbXN0YWQubm8iLCJncm9uZy5ubyIsImtyYWFuZ2hrZS5ubyIsImtyXHhlNWFuZ2hrZS5ubyIsImdydWUubm8iLCJndWxlbi5ubyIsImhhZHNlbC5ubyIsImhhbGRlbi5ubyIsImhhbHNh''@;'; + put 'put ''Lm5vIiwiaGFtYXIubm8iLCJoYW1hcm95Lm5vIiwiaGFibWVyLm5vIiwiaFx4ZTFibWVyLm5vIiwiaGFwbWlyLm5vIiwiaFx4ZTFwbWlyLm5vIiwiaGFtbWVyZmVzdC5ubyIsImhhbW1hcmZlYXN0YS5ubyIsImhceGUxbW1ceGUxcmZlYXN0YS5ubyIsImhhcmFtLm5vIiwiaGFyZWlkLm5vIiwi''@;'; + put 'put ''aGFyc3RhZC5ubyIsImhhc3Zpay5ubyIsImFrbm9sdW9rdGEubm8iLCJceGUxa1x1MDE0Ym9sdW9rdGEubm8iLCJoYXR0ZmplbGxkYWwubm8iLCJhYXJib3J0ZS5ubyIsImhhdWdlc3VuZC5ubyIsImhlbW5lLm5vIiwiaGVtbmVzLm5vIiwiaGVtc2VkYWwubm8iLCJoZXJveS5tb3JlLW9nLXJv''@;'; + put 'put ''bXNkYWwubm8iLCJoZXJceGY4eS5tXHhmOHJlLW9nLXJvbXNkYWwubm8iLCJoZXJveS5ub3JkbGFuZC5ubyIsImhlclx4Zjh5Lm5vcmRsYW5kLm5vIiwiaGl0cmEubm8iLCJoamFydGRhbC5ubyIsImhqZWxtZWxhbmQubm8iLCJob2JvbC5ubyIsImhvYlx4ZjhsLm5vIiwiaG9mLm5vIiwiaG9s''@;'; + put 'put ''Lm5vIiwiaG9sZS5ubyIsImhvbG1lc3RyYW5kLm5vIiwiaG9sdGFsZW4ubm8iLCJob2x0XHhlNWxlbi5ubyIsImhvcm5pbmRhbC5ubyIsImhvcnRlbi5ubyIsImh1cmRhbC5ubyIsImh1cnVtLm5vIiwiaHZhbGVyLm5vIiwiaHlsbGVzdGFkLm5vIiwiaGFnZWJvc3RhZC5ubyIsImhceGU2Z2Vi''@;'; + put 'put ''b3N0YWQubm8iLCJob3lhbmdlci5ubyIsImhceGY4eWFuZ2VyLm5vIiwiaG95bGFuZGV0Lm5vIiwiaFx4Zjh5bGFuZGV0Lm5vIiwiaGEubm8iLCJoXHhlNS5ubyIsImliZXN0YWQubm8iLCJpbmRlcm95Lm5vIiwiaW5kZXJceGY4eS5ubyIsIml2ZWxhbmQubm8iLCJqZXZuYWtlci5ubyIsImpv''@;'; + put 'put ''bmRhbC5ubyIsImpvbHN0ZXIubm8iLCJqXHhmOGxzdGVyLm5vIiwia2FyYXNqb2subm8iLCJrYXJhc2pvaGthLm5vIiwia1x4ZTFyXHhlMVx1MDE2MWpvaGthLm5vIiwia2FybHNveS5ubyIsImdhbHNhLm5vIiwiZ1x4ZTFsc1x4ZTEubm8iLCJrYXJtb3kubm8iLCJrYXJtXHhmOHkubm8iLCJr''@;'; + put 'put ''YXV0b2tlaW5vLm5vIiwiZ3VvdmRhZ2VhaWRudS5ubyIsImtsZXBwLm5vIiwia2xhYnUubm8iLCJrbFx4ZTZidS5ubyIsImtvbmdzYmVyZy5ubyIsImtvbmdzdmluZ2VyLm5vIiwia3JhZ2Vyby5ubyIsImtyYWdlclx4Zjgubm8iLCJrcmlzdGlhbnNhbmQubm8iLCJrcmlzdGlhbnN1bmQubm8i''@;'; + put 'put ''LCJrcm9kc2hlcmFkLm5vIiwia3JceGY4ZHNoZXJhZC5ubyIsImt2YWxzdW5kLm5vIiwicmFoa2tlcmF2anUubm8iLCJyXHhlMWhra2VyXHhlMXZqdS5ubyIsImt2YW0ubm8iLCJrdmluZXNkYWwubm8iLCJrdmlubmhlcmFkLm5vIiwia3ZpdGVzZWlkLm5vIiwia3ZpdHNveS5ubyIsImt2aXRz''@;'; + put 'put ''XHhmOHkubm8iLCJrdmFmam9yZC5ubyIsImt2XHhlNmZqb3JkLm5vIiwiZ2llaHRhdnVvYXRuYS5ubyIsImt2YW5hbmdlbi5ubyIsImt2XHhlNm5hbmdlbi5ubyIsIm5hdnVvdG5hLm5vIiwiblx4ZTF2dW90bmEubm8iLCJrYWZqb3JkLm5vIiwia1x4ZTVmam9yZC5ubyIsImdhaXZ1b3RuYS5u''@;'; + put 'put ''byIsImdceGUxaXZ1b3RuYS5ubyIsImxhcnZpay5ubyIsImxhdmFuZ2VuLm5vIiwibGF2YWdpcy5ubyIsImxvYWJhdC5ubyIsImxvYWJceGUxdC5ubyIsImxlYmVzYnkubm8iLCJkYXZ2ZXNpaWRhLm5vIiwibGVpa2FuZ2VyLm5vIiwibGVpcmZqb3JkLm5vIiwibGVrYS5ubyIsImxla3N2aWsu''@;'; + put 'put ''bm8iLCJsZW52aWsubm8iLCJsZWFuZ2F2aWlrYS5ubyIsImxlYVx1MDE0Ymdhdmlpa2Eubm8iLCJsZXNqYS5ubyIsImxldmFuZ2VyLm5vIiwibGllci5ubyIsImxpZXJuZS5ubyIsImxpbGxlaGFtbWVyLm5vIiwibGlsbGVzYW5kLm5vIiwibGluZGVzbmVzLm5vIiwibGluZGFzLm5vIiwibGlu''@;'; + put 'put ''ZFx4ZTVzLm5vIiwibG9tLm5vIiwibG9wcGEubm8iLCJsYWhwcGkubm8iLCJsXHhlMWhwcGkubm8iLCJsdW5kLm5vIiwibHVubmVyLm5vIiwibHVyb3kubm8iLCJsdXJceGY4eS5ubyIsImx1c3Rlci5ubyIsImx5bmdkYWwubm8iLCJseW5nZW4ubm8iLCJpdmd1Lm5vIiwibGFyZGFsLm5vIiwi''@;'; + put 'put ''bGVyZGFsLm5vIiwibFx4ZTZyZGFsLm5vIiwibG9kaW5nZW4ubm8iLCJsXHhmOGRpbmdlbi5ubyIsImxvcmVuc2tvZy5ubyIsImxceGY4cmVuc2tvZy5ubyIsImxvdGVuLm5vIiwibFx4Zjh0ZW4ubm8iLCJtYWx2aWsubm8iLCJtYXNveS5ubyIsIm1ceGU1c1x4Zjh5Lm5vIiwibXVvc2F0Lm5v''@;'; + put 'put ''IiwibXVvc1x4ZTF0Lm5vIiwibWFuZGFsLm5vIiwibWFya2VyLm5vIiwibWFybmFyZGFsLm5vIiwibWFzZmpvcmRlbi5ubyIsIm1lbGFuZC5ubyIsIm1lbGRhbC5ubyIsIm1lbGh1cy5ubyIsIm1lbG95Lm5vIiwibWVsXHhmOHkubm8iLCJtZXJha2VyLm5vIiwibWVyXHhlNWtlci5ubyIsIm1v''@;'; + put 'put ''YXJla2Uubm8iLCJtb1x4ZTVyZWtlLm5vIiwibWlkc3VuZC5ubyIsIm1pZHRyZS1nYXVsZGFsLm5vIiwibW9kYWxlbi5ubyIsIm1vZHVtLm5vIiwibW9sZGUubm8iLCJtb3NrZW5lcy5ubyIsIm1vc3Mubm8iLCJtb3N2aWsubm8iLCJtYWxzZWx2Lm5vIiwibVx4ZTVsc2Vsdi5ubyIsIm1hbGF0''@;'; + put 'put ''dnVvcG1pLm5vIiwibVx4ZTFsYXR2dW9wbWkubm8iLCJuYW1kYWxzZWlkLm5vIiwiYWVqcmllLm5vIiwibmFtc29zLm5vIiwibmFtc3Nrb2dhbi5ubyIsIm5hYW1lc2pldnVlbWllLm5vIiwiblx4ZTVceGU1bWVzamV2dWVtaWUubm8iLCJsYWFrZXN2dWVtaWUubm8iLCJuYW5uZXN0YWQubm8i''@;'; + put 'put ''LCJuYXJ2aWsubm8iLCJuYXJ2aWlrYS5ubyIsIm5hdXN0ZGFsLm5vIiwibmVkcmUtZWlrZXIubm8iLCJuZXMuYWtlcnNodXMubm8iLCJuZXMuYnVza2VydWQubm8iLCJuZXNuYS5ubyIsIm5lc29kZGVuLm5vIiwibmVzc2VieS5ubyIsInVuamFyZ2Eubm8iLCJ1bmpceGUxcmdhLm5vIiwibmVz''@;'; + put 'put ''c2V0Lm5vIiwibmlzc2VkYWwubm8iLCJuaXR0ZWRhbC5ubyIsIm5vcmQtYXVyZGFsLm5vIiwibm9yZC1mcm9uLm5vIiwibm9yZC1vZGFsLm5vIiwibm9yZGRhbC5ubyIsIm5vcmRrYXBwLm5vIiwiZGF2dmVuamFyZ2Eubm8iLCJkYXZ2ZW5qXHhlMXJnYS5ubyIsIm5vcmRyZS1sYW5kLm5vIiwi''@;'; + put 'put ''bm9yZHJlaXNhLm5vIiwicmFpc2Eubm8iLCJyXHhlMWlzYS5ubyIsIm5vcmUtb2ctdXZkYWwubm8iLCJub3RvZGRlbi5ubyIsIm5hcm95Lm5vIiwiblx4ZTZyXHhmOHkubm8iLCJub3R0ZXJveS5ubyIsIm5ceGY4dHRlclx4Zjh5Lm5vIiwib2RkYS5ubyIsIm9rc25lcy5ubyIsIlx4Zjhrc25l''@;'; + put 'put ''cy5ubyIsIm9wcGRhbC5ubyIsIm9wcGVnYXJkLm5vIiwib3BwZWdceGU1cmQubm8iLCJvcmtkYWwubm8iLCJvcmxhbmQubm8iLCJceGY4cmxhbmQubm8iLCJvcnNrb2cubm8iLCJceGY4cnNrb2cubm8iLCJvcnN0YS5ubyIsIlx4Zjhyc3RhLm5vIiwib3MuaGVkbWFyay5ubyIsIm9zLmhvcmRh''@;'; + put 'put ''bGFuZC5ubyIsIm9zZW4ubm8iLCJvc3Rlcm95Lm5vIiwib3N0ZXJceGY4eS5ubyIsIm9zdHJlLXRvdGVuLm5vIiwiXHhmOHN0cmUtdG90ZW4ubm8iLCJvdmVyaGFsbGEubm8iLCJvdnJlLWVpa2VyLm5vIiwiXHhmOHZyZS1laWtlci5ubyIsIm95ZXIubm8iLCJceGY4eWVyLm5vIiwib3lnYXJk''@;'; + put 'put ''ZW4ubm8iLCJceGY4eWdhcmRlbi5ubyIsIm95c3RyZS1zbGlkcmUubm8iLCJceGY4eXN0cmUtc2xpZHJlLm5vIiwicG9yc2FuZ2VyLm5vIiwicG9yc2FuZ3Uubm8iLCJwb3JzXHhlMVx1MDE0Ymd1Lm5vIiwicG9yc2dydW5uLm5vIiwicmFkb3kubm8iLCJyYWRceGY4eS5ubyIsInJha2tlc3Rh''@;'; + put 'put ''ZC5ubyIsInJhbmEubm8iLCJydW92YXQubm8iLCJyYW5kYWJlcmcubm8iLCJyYXVtYS5ubyIsInJlbmRhbGVuLm5vIiwicmVubmVidS5ubyIsInJlbm5lc295Lm5vIiwicmVubmVzXHhmOHkubm8iLCJyaW5kYWwubm8iLCJyaW5nZWJ1Lm5vIiwicmluZ2VyaWtlLm5vIiwicmluZ3Nha2VyLm5v''@;'; + put 'put ''Iiwicmlzc2Eubm8iLCJyaXNvci5ubyIsInJpc1x4ZjhyLm5vIiwicm9hbi5ubyIsInJvbGxhZy5ubyIsInJ5Z2dlLm5vIiwicmFsaW5nZW4ubm8iLCJyXHhlNmxpbmdlbi5ubyIsInJvZG95Lm5vIiwiclx4ZjhkXHhmOHkubm8iLCJyb21za29nLm5vIiwiclx4Zjhtc2tvZy5ubyIsInJvcm9z''@;'; + put 'put ''Lm5vIiwiclx4Zjhyb3Mubm8iLCJyb3N0Lm5vIiwiclx4ZjhzdC5ubyIsInJveWtlbi5ubyIsInJceGY4eWtlbi5ubyIsInJveXJ2aWsubm8iLCJyXHhmOHlydmlrLm5vIiwicmFkZS5ubyIsInJceGU1ZGUubm8iLCJzYWxhbmdlbi5ubyIsInNpZWxsYWsubm8iLCJzYWx0ZGFsLm5vIiwic2Fs''@;'; + put 'put ''YXQubm8iLCJzXHhlMWxceGUxdC5ubyIsInNceGUxbGF0Lm5vIiwic2FtbmFuZ2VyLm5vIiwic2FuZGUubW9yZS1vZy1yb21zZGFsLm5vIiwic2FuZGUubVx4ZjhyZS1vZy1yb21zZGFsLm5vIiwic2FuZGUudmVzdGZvbGQubm8iLCJzYW5kZWZqb3JkLm5vIiwic2FuZG5lcy5ubyIsInNhbmRv''@;'; + put 'put ''eS5ubyIsInNhbmRceGY4eS5ubyIsInNhcnBzYm9yZy5ubyIsInNhdWRhLm5vIiwic2F1aGVyYWQubm8iLCJzZWwubm8iLCJzZWxidS5ubyIsInNlbGplLm5vIiwic2Vsam9yZC5ubyIsInNpZ2RhbC5ubyIsInNpbGphbi5ubyIsInNpcmRhbC5ubyIsInNrYXVuLm5vIiwic2tlZHNtby5ubyIs''@;'; + put 'put ''InNraS5ubyIsInNraWVuLm5vIiwic2tpcHR2ZXQubm8iLCJza2plcnZveS5ubyIsInNramVydlx4Zjh5Lm5vIiwic2tpZXJ2YS5ubyIsInNraWVydlx4ZTEubm8iLCJza2phay5ubyIsInNralx4ZTVrLm5vIiwic2tvZGplLm5vIiwic2thbmxhbmQubm8iLCJza1x4ZTVubGFuZC5ubyIsInNr''@;'; + put 'put ''YW5pdC5ubyIsInNrXHhlMW5pdC5ubyIsInNtb2xhLm5vIiwic21ceGY4bGEubm8iLCJzbmlsbGZqb3JkLm5vIiwic25hc2Eubm8iLCJzblx4ZTVzYS5ubyIsInNub2FzYS5ubyIsInNuYWFzZS5ubyIsInNuXHhlNWFzZS5ubyIsInNvZ25kYWwubm8iLCJzb2tuZGFsLm5vIiwic29sYS5ubyIs''@;'; + put 'put ''InNvbHVuZC5ubyIsInNvbmdkYWxlbi5ubyIsInNvcnRsYW5kLm5vIiwic3B5ZGViZXJnLm5vIiwic3RhbmdlLm5vIiwic3RhdmFuZ2VyLm5vIiwic3RlaWdlbi5ubyIsInN0ZWlua2plci5ubyIsInN0am9yZGFsLm5vIiwic3RqXHhmOHJkYWwubm8iLCJzdG9ra2Uubm8iLCJzdG9yLWVsdmRh''@;'; + put 'put ''bC5ubyIsInN0b3JkLm5vIiwic3RvcmRhbC5ubyIsInN0b3Jmam9yZC5ubyIsIm9tYXN2dW90bmEubm8iLCJzdHJhbmQubm8iLCJzdHJhbmRhLm5vIiwic3RyeW4ubm8iLCJzdWxhLm5vIiwic3VsZGFsLm5vIiwic3VuZC5ubyIsInN1bm5kYWwubm8iLCJzdXJuYWRhbC5ubyIsInN2ZWlvLm5v''@;'; + put 'put ''Iiwic3ZlbHZpay5ubyIsInN5a2t5bHZlbi5ubyIsInNvZ25lLm5vIiwic1x4ZjhnbmUubm8iLCJzb21uYS5ubyIsInNceGY4bW5hLm5vIiwic29uZHJlLWxhbmQubm8iLCJzXHhmOG5kcmUtbGFuZC5ubyIsInNvci1hdXJkYWwubm8iLCJzXHhmOHItYXVyZGFsLm5vIiwic29yLWZyb24ubm8i''@;'; + put 'put ''LCJzXHhmOHItZnJvbi5ubyIsInNvci1vZGFsLm5vIiwic1x4ZjhyLW9kYWwubm8iLCJzb3ItdmFyYW5nZXIubm8iLCJzXHhmOHItdmFyYW5nZXIubm8iLCJtYXR0YS12YXJqamF0Lm5vIiwibVx4ZTF0dGEtdlx4ZTFyamphdC5ubyIsInNvcmZvbGQubm8iLCJzXHhmOHJmb2xkLm5vIiwic29y''@;'; + put 'put ''cmVpc2Eubm8iLCJzXHhmOHJyZWlzYS5ubyIsInNvcnVtLm5vIiwic1x4ZjhydW0ubm8iLCJ0YW5hLm5vIiwiZGVhdG51Lm5vIiwidGltZS5ubyIsInRpbmd2b2xsLm5vIiwidGlubi5ubyIsInRqZWxkc3VuZC5ubyIsImRpZWxkZGFudW9ycmkubm8iLCJ0am9tZS5ubyIsInRqXHhmOG1lLm5v''@;'; + put 'put ''IiwidG9ra2Uubm8iLCJ0b2xnYS5ubyIsInRvcnNrZW4ubm8iLCJ0cmFub3kubm8iLCJ0cmFuXHhmOHkubm8iLCJ0cm9tc28ubm8iLCJ0cm9tc1x4Zjgubm8iLCJ0cm9tc2Eubm8iLCJyb21zYS5ubyIsInRyb25kaGVpbS5ubyIsInRyb2FuZGluLm5vIiwidHJ5c2lsLm5vIiwidHJhbmEubm8i''@;'; + put 'put ''LCJ0clx4ZTZuYS5ubyIsInRyb2dzdGFkLm5vIiwidHJceGY4Z3N0YWQubm8iLCJ0dmVkZXN0cmFuZC5ubyIsInR5ZGFsLm5vIiwidHluc2V0Lm5vIiwidHlzZmpvcmQubm8iLCJkaXZ0YXN2dW9kbmEubm8iLCJkaXZ0dGFzdnVvdG5hLm5vIiwidHlzbmVzLm5vIiwidHlzdmFyLm5vIiwidHlz''@;'; + put 'put ''dlx4ZTZyLm5vIiwidG9uc2Jlcmcubm8iLCJ0XHhmOG5zYmVyZy5ubyIsInVsbGVuc2FrZXIubm8iLCJ1bGxlbnN2YW5nLm5vIiwidWx2aWsubm8iLCJ1dHNpcmEubm8iLCJ2YWRzby5ubyIsInZhZHNceGY4Lm5vIiwiY2FoY2VzdW9sby5ubyIsIlx1MDEwZFx4ZTFoY2VzdW9sby5ubyIsInZh''@;'; + put 'put ''a3NkYWwubm8iLCJ2YWxsZS5ubyIsInZhbmcubm8iLCJ2YW55bHZlbi5ubyIsInZhcmRvLm5vIiwidmFyZFx4Zjgubm8iLCJ2YXJnZ2F0Lm5vIiwidlx4ZTFyZ2dceGUxdC5ubyIsInZlZnNuLm5vIiwidmFhcHN0ZS5ubyIsInZlZ2Eubm8iLCJ2ZWdhcnNoZWkubm8iLCJ2ZWdceGU1cnNoZWku''@;'; + put 'put ''bm8iLCJ2ZW5uZXNsYS5ubyIsInZlcmRhbC5ubyIsInZlcnJhbi5ubyIsInZlc3RieS5ubyIsInZlc3RuZXMubm8iLCJ2ZXN0cmUtc2xpZHJlLm5vIiwidmVzdHJlLXRvdGVuLm5vIiwidmVzdHZhZ295Lm5vIiwidmVzdHZceGU1Z1x4Zjh5Lm5vIiwidmV2ZWxzdGFkLm5vIiwidmlrLm5vIiwi''@;'; + put 'put ''dmlrbmEubm8iLCJ2aW5kYWZqb3JkLm5vIiwidm9sZGEubm8iLCJ2b3NzLm5vIiwidmFyb3kubm8iLCJ2XHhlNnJceGY4eS5ubyIsInZhZ2FuLm5vIiwidlx4ZTVnYW4ubm8iLCJ2b2FnYXQubm8iLCJ2YWdzb3kubm8iLCJ2XHhlNWdzXHhmOHkubm8iLCJ2YWdhLm5vIiwidlx4ZTVnXHhlNS5u''@;'; + put 'put ''byIsInZhbGVyLm9zdGZvbGQubm8iLCJ2XHhlNWxlci5ceGY4c3Rmb2xkLm5vIiwidmFsZXIuaGVkbWFyay5ubyIsInZceGU1bGVyLmhlZG1hcmsubm8iLCIqLm5wIiwibnIiLCJiaXoubnIiLCJpbmZvLm5yIiwiZ292Lm5yIiwiZWR1Lm5yIiwib3JnLm5yIiwibmV0Lm5yIiwiY29tLm5yIiwi''@;'; + put 'put ''bnUiLCJueiIsImFjLm56IiwiY28ubnoiLCJjcmkubnoiLCJnZWVrLm56IiwiZ2VuLm56IiwiZ292dC5ueiIsImhlYWx0aC5ueiIsIml3aS5ueiIsImtpd2kubnoiLCJtYW9yaS5ueiIsIm1pbC5ueiIsIm1cdTAxMDFvcmkubnoiLCJuZXQubnoiLCJvcmcubnoiLCJwYXJsaWFtZW50Lm56Iiwi''@;'; + put 'put ''c2Nob29sLm56Iiwib20iLCJjby5vbSIsImNvbS5vbSIsImVkdS5vbSIsImdvdi5vbSIsIm1lZC5vbSIsIm11c2V1bS5vbSIsIm5ldC5vbSIsIm9yZy5vbSIsInByby5vbSIsIm9uaW9uIiwib3JnIiwicGEiLCJhYy5wYSIsImdvYi5wYSIsImNvbS5wYSIsIm9yZy5wYSIsInNsZC5wYSIsImVk''@;'; + put 'put ''dS5wYSIsIm5ldC5wYSIsImluZy5wYSIsImFiby5wYSIsIm1lZC5wYSIsIm5vbS5wYSIsInBlIiwiZWR1LnBlIiwiZ29iLnBlIiwibm9tLnBlIiwibWlsLnBlIiwib3JnLnBlIiwiY29tLnBlIiwibmV0LnBlIiwicGYiLCJjb20ucGYiLCJvcmcucGYiLCJlZHUucGYiLCIqLnBnIiwicGgiLCJj''@;'; + put 'put ''b20ucGgiLCJuZXQucGgiLCJvcmcucGgiLCJnb3YucGgiLCJlZHUucGgiLCJuZ28ucGgiLCJtaWwucGgiLCJpLnBoIiwicGsiLCJjb20ucGsiLCJuZXQucGsiLCJlZHUucGsiLCJvcmcucGsiLCJmYW0ucGsiLCJiaXoucGsiLCJ3ZWIucGsiLCJnb3YucGsiLCJnb2IucGsiLCJnb2sucGsiLCJn''@;'; + put 'put ''b24ucGsiLCJnb3AucGsiLCJnb3MucGsiLCJpbmZvLnBrIiwicGwiLCJjb20ucGwiLCJuZXQucGwiLCJvcmcucGwiLCJhaWQucGwiLCJhZ3JvLnBsIiwiYXRtLnBsIiwiYXV0by5wbCIsImJpei5wbCIsImVkdS5wbCIsImdtaW5hLnBsIiwiZ3NtLnBsIiwiaW5mby5wbCIsIm1haWwucGwiLCJt''@;'; + put 'put ''aWFzdGEucGwiLCJtZWRpYS5wbCIsIm1pbC5wbCIsIm5pZXJ1Y2hvbW9zY2kucGwiLCJub20ucGwiLCJwYy5wbCIsInBvd2lhdC5wbCIsInByaXYucGwiLCJyZWFsZXN0YXRlLnBsIiwicmVsLnBsIiwic2V4LnBsIiwic2hvcC5wbCIsInNrbGVwLnBsIiwic29zLnBsIiwic3prb2xhLnBsIiwi''@;'; + put 'put ''dGFyZ2kucGwiLCJ0bS5wbCIsInRvdXJpc20ucGwiLCJ0cmF2ZWwucGwiLCJ0dXJ5c3R5a2EucGwiLCJnb3YucGwiLCJhcC5nb3YucGwiLCJpYy5nb3YucGwiLCJpcy5nb3YucGwiLCJ1cy5nb3YucGwiLCJrbXBzcC5nb3YucGwiLCJrcHBzcC5nb3YucGwiLCJrd3BzcC5nb3YucGwiLCJwc3Au''@;'; + put 'put ''Z292LnBsIiwid3Nrci5nb3YucGwiLCJrd3AuZ292LnBsIiwibXcuZ292LnBsIiwidWcuZ292LnBsIiwidW0uZ292LnBsIiwidW1pZy5nb3YucGwiLCJ1Z2ltLmdvdi5wbCIsInVwb3cuZ292LnBsIiwidXcuZ292LnBsIiwic3Rhcm9zdHdvLmdvdi5wbCIsInBhLmdvdi5wbCIsInBvLmdvdi5w''@;'; + put 'put ''bCIsInBzc2UuZ292LnBsIiwicHVwLmdvdi5wbCIsInJ6Z3cuZ292LnBsIiwic2EuZ292LnBsIiwic28uZ292LnBsIiwic3IuZ292LnBsIiwid3NhLmdvdi5wbCIsInNrby5nb3YucGwiLCJ1enMuZ292LnBsIiwid2lpaC5nb3YucGwiLCJ3aW5iLmdvdi5wbCIsInBpbmIuZ292LnBsIiwid2lv''@;'; + put 'put ''cy5nb3YucGwiLCJ3aXRkLmdvdi5wbCIsInd6bWl1dy5nb3YucGwiLCJwaXcuZ292LnBsIiwid2l3Lmdvdi5wbCIsImdyaXcuZ292LnBsIiwid2lmLmdvdi5wbCIsIm91bS5nb3YucGwiLCJzZG4uZ292LnBsIiwienAuZ292LnBsIiwidXBwby5nb3YucGwiLCJtdXAuZ292LnBsIiwid3Vvei5n''@;'; + put 'put ''b3YucGwiLCJrb25zdWxhdC5nb3YucGwiLCJvaXJtLmdvdi5wbCIsImF1Z3VzdG93LnBsIiwiYmFiaWEtZ29yYS5wbCIsImJlZHppbi5wbCIsImJlc2tpZHkucGwiLCJiaWFsb3dpZXphLnBsIiwiYmlhbHlzdG9rLnBsIiwiYmllbGF3YS5wbCIsImJpZXN6Y3phZHkucGwiLCJib2xlc2xhd2ll''@;'; + put 'put ''Yy5wbCIsImJ5ZGdvc3pjei5wbCIsImJ5dG9tLnBsIiwiY2llc3p5bi5wbCIsImN6ZWxhZHoucGwiLCJjemVzdC5wbCIsImRsdWdvbGVrYS5wbCIsImVsYmxhZy5wbCIsImVsay5wbCIsImdsb2dvdy5wbCIsImduaWV6bm8ucGwiLCJnb3JsaWNlLnBsIiwiZ3JhamV3by5wbCIsImlsYXdhLnBs''@;'; + put 'put ''IiwiamF3b3J6bm8ucGwiLCJqZWxlbmlhLWdvcmEucGwiLCJqZ29yYS5wbCIsImthbGlzei5wbCIsImthemltaWVyei1kb2xueS5wbCIsImthcnBhY3oucGwiLCJrYXJ0dXp5LnBsIiwia2FzenVieS5wbCIsImthdG93aWNlLnBsIiwia2Vwbm8ucGwiLCJrZXRyenluLnBsIiwia2xvZHprby5w''@;'; + put 'put ''bCIsImtvYmllcnp5Y2UucGwiLCJrb2xvYnJ6ZWcucGwiLCJrb25pbi5wbCIsImtvbnNrb3dvbGEucGwiLCJrdXRuby5wbCIsImxhcHkucGwiLCJsZWJvcmsucGwiLCJsZWduaWNhLnBsIiwibGV6YWpzay5wbCIsImxpbWFub3dhLnBsIiwibG9temEucGwiLCJsb3dpY3oucGwiLCJsdWJpbi5w''@;'; + put 'put ''bCIsImx1a293LnBsIiwibWFsYm9yay5wbCIsIm1hbG9wb2xza2EucGwiLCJtYXpvd3N6ZS5wbCIsIm1henVyeS5wbCIsIm1pZWxlYy5wbCIsIm1pZWxuby5wbCIsIm1yYWdvd28ucGwiLCJuYWtsby5wbCIsIm5vd2FydWRhLnBsIiwibnlzYS5wbCIsIm9sYXdhLnBsIiwib2xlY2tvLnBsIiwi''@;'; + put 'put ''b2xrdXN6LnBsIiwib2xzenR5bi5wbCIsIm9wb2N6bm8ucGwiLCJvcG9sZS5wbCIsIm9zdHJvZGEucGwiLCJvc3Ryb2xla2EucGwiLCJvc3Ryb3dpZWMucGwiLCJvc3Ryb3d3bGtwLnBsIiwicGlsYS5wbCIsInBpc3oucGwiLCJwb2RoYWxlLnBsIiwicG9kbGFzaWUucGwiLCJwb2xrb3dpY2Uu''@;'; + put 'put ''cGwiLCJwb21vcnplLnBsIiwicG9tb3Jza2llLnBsIiwicHJvY2hvd2ljZS5wbCIsInBydXN6a293LnBsIiwicHJ6ZXdvcnNrLnBsIiwicHVsYXd5LnBsIiwicmFkb20ucGwiLCJyYXdhLW1hei5wbCIsInJ5Ym5pay5wbCIsInJ6ZXN6b3cucGwiLCJzYW5vay5wbCIsInNlam55LnBsIiwic2xh''@;'; + put 'put ''c2sucGwiLCJzbHVwc2sucGwiLCJzb3Nub3dpZWMucGwiLCJzdGFsb3dhLXdvbGEucGwiLCJza29jem93LnBsIiwic3RhcmFjaG93aWNlLnBsIiwic3RhcmdhcmQucGwiLCJzdXdhbGtpLnBsIiwic3dpZG5pY2EucGwiLCJzd2llYm9kemluLnBsIiwic3dpbm91anNjaWUucGwiLCJzemN6ZWNp''@;'; + put 'put ''bi5wbCIsInN6Y3p5dG5vLnBsIiwidGFybm9icnplZy5wbCIsInRnb3J5LnBsIiwidHVyZWsucGwiLCJ0eWNoeS5wbCIsInVzdGthLnBsIiwid2FsYnJ6eWNoLnBsIiwid2FybWlhLnBsIiwid2Fyc3phd2EucGwiLCJ3YXcucGwiLCJ3ZWdyb3cucGwiLCJ3aWVsdW4ucGwiLCJ3bG9jbC5wbCIs''@;'; + put 'put ''Indsb2NsYXdlay5wbCIsIndvZHppc2xhdy5wbCIsIndvbG9taW4ucGwiLCJ3cm9jbGF3LnBsIiwiemFjaHBvbW9yLnBsIiwiemFnYW4ucGwiLCJ6YXJvdy5wbCIsInpnb3JhLnBsIiwiemdvcnplbGVjLnBsIiwicG0iLCJwbiIsImdvdi5wbiIsImNvLnBuIiwib3JnLnBuIiwiZWR1LnBuIiwi''@;'; + put 'put ''bmV0LnBuIiwicG9zdCIsInByIiwiY29tLnByIiwibmV0LnByIiwib3JnLnByIiwiZ292LnByIiwiZWR1LnByIiwiaXNsYS5wciIsInByby5wciIsImJpei5wciIsImluZm8ucHIiLCJuYW1lLnByIiwiZXN0LnByIiwicHJvZi5wciIsImFjLnByIiwicHJvIiwiYWFhLnBybyIsImFjYS5wcm8i''@;'; + put 'put ''LCJhY2N0LnBybyIsImF2b2NhdC5wcm8iLCJiYXIucHJvIiwiY3BhLnBybyIsImVuZy5wcm8iLCJqdXIucHJvIiwibGF3LnBybyIsIm1lZC5wcm8iLCJyZWNodC5wcm8iLCJwcyIsImVkdS5wcyIsImdvdi5wcyIsInNlYy5wcyIsInBsby5wcyIsImNvbS5wcyIsIm9yZy5wcyIsIm5ldC5wcyIs''@;'; + put 'put ''InB0IiwibmV0LnB0IiwiZ292LnB0Iiwib3JnLnB0IiwiZWR1LnB0IiwiaW50LnB0IiwicHVibC5wdCIsImNvbS5wdCIsIm5vbWUucHQiLCJwdyIsImNvLnB3IiwibmUucHciLCJvci5wdyIsImVkLnB3IiwiZ28ucHciLCJiZWxhdS5wdyIsInB5IiwiY29tLnB5IiwiY29vcC5weSIsImVkdS5w''@;'; + put 'put ''eSIsImdvdi5weSIsIm1pbC5weSIsIm5ldC5weSIsIm9yZy5weSIsInFhIiwiY29tLnFhIiwiZWR1LnFhIiwiZ292LnFhIiwibWlsLnFhIiwibmFtZS5xYSIsIm5ldC5xYSIsIm9yZy5xYSIsInNjaC5xYSIsInJlIiwiYXNzby5yZSIsImNvbS5yZSIsIm5vbS5yZSIsInJvIiwiYXJ0cy5ybyIs''@;'; + put 'put ''ImNvbS5ybyIsImZpcm0ucm8iLCJpbmZvLnJvIiwibm9tLnJvIiwibnQucm8iLCJvcmcucm8iLCJyZWMucm8iLCJzdG9yZS5ybyIsInRtLnJvIiwid3d3LnJvIiwicnMiLCJhYy5ycyIsImNvLnJzIiwiZWR1LnJzIiwiZ292LnJzIiwiaW4ucnMiLCJvcmcucnMiLCJydSIsInJ3IiwiYWMucnci''@;'; + put 'put ''LCJjby5ydyIsImNvb3AucnciLCJnb3YucnciLCJtaWwucnciLCJuZXQucnciLCJvcmcucnciLCJzYSIsImNvbS5zYSIsIm5ldC5zYSIsIm9yZy5zYSIsImdvdi5zYSIsIm1lZC5zYSIsInB1Yi5zYSIsImVkdS5zYSIsInNjaC5zYSIsInNiIiwiY29tLnNiIiwiZWR1LnNiIiwiZ292LnNiIiwi''@;'; + put 'put ''bmV0LnNiIiwib3JnLnNiIiwic2MiLCJjb20uc2MiLCJnb3Yuc2MiLCJuZXQuc2MiLCJvcmcuc2MiLCJlZHUuc2MiLCJzZCIsImNvbS5zZCIsIm5ldC5zZCIsIm9yZy5zZCIsImVkdS5zZCIsIm1lZC5zZCIsInR2LnNkIiwiZ292LnNkIiwiaW5mby5zZCIsInNlIiwiYS5zZSIsImFjLnNlIiwi''@;'; + put 'put ''Yi5zZSIsImJkLnNlIiwiYnJhbmQuc2UiLCJjLnNlIiwiZC5zZSIsImUuc2UiLCJmLnNlIiwiZmguc2UiLCJmaHNrLnNlIiwiZmh2LnNlIiwiZy5zZSIsImguc2UiLCJpLnNlIiwiay5zZSIsImtvbWZvcmIuc2UiLCJrb21tdW5hbGZvcmJ1bmQuc2UiLCJrb212dXguc2UiLCJsLnNlIiwibGFu''@;'; + put 'put ''YmliLnNlIiwibS5zZSIsIm4uc2UiLCJuYXR1cmJydWtzZ3ltbi5zZSIsIm8uc2UiLCJvcmcuc2UiLCJwLnNlIiwicGFydGkuc2UiLCJwcC5zZSIsInByZXNzLnNlIiwici5zZSIsInMuc2UiLCJ0LnNlIiwidG0uc2UiLCJ1LnNlIiwidy5zZSIsInguc2UiLCJ5LnNlIiwiei5zZSIsInNnIiwi''@;'; + put 'put ''Y29tLnNnIiwibmV0LnNnIiwib3JnLnNnIiwiZ292LnNnIiwiZWR1LnNnIiwicGVyLnNnIiwic2giLCJjb20uc2giLCJuZXQuc2giLCJnb3Yuc2giLCJvcmcuc2giLCJtaWwuc2giLCJzaSIsInNqIiwic2siLCJzbCIsImNvbS5zbCIsIm5ldC5zbCIsImVkdS5zbCIsImdvdi5zbCIsIm9yZy5z''@;'; + put 'put ''bCIsInNtIiwic24iLCJhcnQuc24iLCJjb20uc24iLCJlZHUuc24iLCJnb3V2LnNuIiwib3JnLnNuIiwicGVyc28uc24iLCJ1bml2LnNuIiwic28iLCJjb20uc28iLCJlZHUuc28iLCJnb3Yuc28iLCJtZS5zbyIsIm5ldC5zbyIsIm9yZy5zbyIsInNyIiwic3MiLCJiaXouc3MiLCJjb20uc3Mi''@;'; + put 'put ''LCJlZHUuc3MiLCJnb3Yuc3MiLCJuZXQuc3MiLCJvcmcuc3MiLCJzdCIsImNvLnN0IiwiY29tLnN0IiwiY29uc3VsYWRvLnN0IiwiZWR1LnN0IiwiZW1iYWl4YWRhLnN0IiwiZ292LnN0IiwibWlsLnN0IiwibmV0LnN0Iiwib3JnLnN0IiwicHJpbmNpcGUuc3QiLCJzYW90b21lLnN0Iiwic3Rv''@;'; + put 'put ''cmUuc3QiLCJzdSIsInN2IiwiY29tLnN2IiwiZWR1LnN2IiwiZ29iLnN2Iiwib3JnLnN2IiwicmVkLnN2Iiwic3giLCJnb3Yuc3giLCJzeSIsImVkdS5zeSIsImdvdi5zeSIsIm5ldC5zeSIsIm1pbC5zeSIsImNvbS5zeSIsIm9yZy5zeSIsInN6IiwiY28uc3oiLCJhYy5zeiIsIm9yZy5zeiIs''@;'; + put 'put ''InRjIiwidGQiLCJ0ZWwiLCJ0ZiIsInRnIiwidGgiLCJhYy50aCIsImNvLnRoIiwiZ28udGgiLCJpbi50aCIsIm1pLnRoIiwibmV0LnRoIiwib3IudGgiLCJ0aiIsImFjLnRqIiwiYml6LnRqIiwiY28udGoiLCJjb20udGoiLCJlZHUudGoiLCJnby50aiIsImdvdi50aiIsImludC50aiIsIm1p''@;'; + put 'put ''bC50aiIsIm5hbWUudGoiLCJuZXQudGoiLCJuaWMudGoiLCJvcmcudGoiLCJ0ZXN0LnRqIiwid2ViLnRqIiwidGsiLCJ0bCIsImdvdi50bCIsInRtIiwiY29tLnRtIiwiY28udG0iLCJvcmcudG0iLCJuZXQudG0iLCJub20udG0iLCJnb3YudG0iLCJtaWwudG0iLCJlZHUudG0iLCJ0biIsImNv''@;'; + put 'put ''bS50biIsImVucy50biIsImZpbi50biIsImdvdi50biIsImluZC50biIsImludGwudG4iLCJuYXQudG4iLCJuZXQudG4iLCJvcmcudG4iLCJpbmZvLnRuIiwicGVyc28udG4iLCJ0b3VyaXNtLnRuIiwiZWR1bmV0LnRuIiwicm5ydC50biIsInJucy50biIsInJudS50biIsIm1pbmNvbS50biIs''@;'; + put 'put ''ImFncmluZXQudG4iLCJkZWZlbnNlLnRuIiwidHVyZW4udG4iLCJ0byIsImNvbS50byIsImdvdi50byIsIm5ldC50byIsIm9yZy50byIsImVkdS50byIsIm1pbC50byIsInRyIiwiYXYudHIiLCJiYnMudHIiLCJiZWwudHIiLCJiaXoudHIiLCJjb20udHIiLCJkci50ciIsImVkdS50ciIsImdl''@;'; + put 'put ''bi50ciIsImdvdi50ciIsImluZm8udHIiLCJtaWwudHIiLCJrMTIudHIiLCJrZXAudHIiLCJuYW1lLnRyIiwibmV0LnRyIiwib3JnLnRyIiwicG9sLnRyIiwidGVsLnRyIiwidHNrLnRyIiwidHYudHIiLCJ3ZWIudHIiLCJuYy50ciIsImdvdi5uYy50ciIsInR0IiwiY28udHQiLCJjb20udHQi''@;'; + put 'put ''LCJvcmcudHQiLCJuZXQudHQiLCJiaXoudHQiLCJpbmZvLnR0IiwicHJvLnR0IiwiaW50LnR0IiwiY29vcC50dCIsImpvYnMudHQiLCJtb2JpLnR0IiwidHJhdmVsLnR0IiwibXVzZXVtLnR0IiwiYWVyby50dCIsIm5hbWUudHQiLCJnb3YudHQiLCJlZHUudHQiLCJ0diIsInR3IiwiZWR1LnR3''@;'; + put 'put ''IiwiZ292LnR3IiwibWlsLnR3IiwiY29tLnR3IiwibmV0LnR3Iiwib3JnLnR3IiwiaWR2LnR3IiwiZ2FtZS50dyIsImViaXoudHciLCJjbHViLnR3IiwiXHU3ZGIyXHU4ZGVmLnR3IiwiXHU3ZDQ0XHU3ZTU0LnR3IiwiXHU1NTQ2XHU2OTZkLnR3IiwidHoiLCJhYy50eiIsImNvLnR6IiwiZ28u''@;'; + put 'put ''dHoiLCJob3RlbC50eiIsImluZm8udHoiLCJtZS50eiIsIm1pbC50eiIsIm1vYmkudHoiLCJuZS50eiIsIm9yLnR6Iiwic2MudHoiLCJ0di50eiIsInVhIiwiY29tLnVhIiwiZWR1LnVhIiwiZ292LnVhIiwiaW4udWEiLCJuZXQudWEiLCJvcmcudWEiLCJjaGVya2Fzc3kudWEiLCJjaGVya2Fz''@;'; + put 'put ''eS51YSIsImNoZXJuaWdvdi51YSIsImNoZXJuaWhpdi51YSIsImNoZXJuaXZ0c2kudWEiLCJjaGVybm92dHN5LnVhIiwiY2sudWEiLCJjbi51YSIsImNyLnVhIiwiY3JpbWVhLnVhIiwiY3YudWEiLCJkbi51YSIsImRuZXByb3BldHJvdnNrLnVhIiwiZG5pcHJvcGV0cm92c2sudWEiLCJkb21p''@;'; + put 'put ''bmljLnVhIiwiZG9uZXRzay51YSIsImRwLnVhIiwiaWYudWEiLCJpdmFuby1mcmFua2l2c2sudWEiLCJraC51YSIsImtoYXJraXYudWEiLCJraGFya292LnVhIiwia2hlcnNvbi51YSIsImtobWVsbml0c2tpeS51YSIsImtobWVsbnl0c2t5aS51YSIsImtpZXYudWEiLCJraXJvdm9ncmFkLnVh''@;'; + put 'put ''Iiwia20udWEiLCJrci51YSIsImtyeW0udWEiLCJrcy51YSIsImt2LnVhIiwia3lpdi51YSIsImxnLnVhIiwibHQudWEiLCJsdWdhbnNrLnVhIiwibHV0c2sudWEiLCJsdi51YSIsImx2aXYudWEiLCJtay51YSIsIm15a29sYWl2LnVhIiwibmlrb2xhZXYudWEiLCJvZC51YSIsIm9kZXNhLnVh''@;'; + put 'put ''Iiwib2Rlc3NhLnVhIiwicGwudWEiLCJwb2x0YXZhLnVhIiwicml2bmUudWEiLCJyb3Zuby51YSIsInJ2LnVhIiwic2IudWEiLCJzZWJhc3RvcG9sLnVhIiwic2V2YXN0b3BvbC51YSIsInNtLnVhIiwic3VteS51YSIsInRlLnVhIiwidGVybm9waWwudWEiLCJ1ei51YSIsInV6aGdvcm9kLnVh''@;'; + put 'put ''IiwidmlubmljYS51YSIsInZpbm55dHNpYS51YSIsInZuLnVhIiwidm9seW4udWEiLCJ5YWx0YS51YSIsInphcG9yaXpoemhlLnVhIiwiemFwb3Jpemh6aGlhLnVhIiwiemhpdG9taXIudWEiLCJ6aHl0b215ci51YSIsInpwLnVhIiwienQudWEiLCJ1ZyIsImNvLnVnIiwib3IudWciLCJhYy51''@;'; + put 'put ''ZyIsInNjLnVnIiwiZ28udWciLCJuZS51ZyIsImNvbS51ZyIsIm9yZy51ZyIsInVrIiwiYWMudWsiLCJjby51ayIsImdvdi51ayIsImx0ZC51ayIsIm1lLnVrIiwibmV0LnVrIiwibmhzLnVrIiwib3JnLnVrIiwicGxjLnVrIiwicG9saWNlLnVrIiwiKi5zY2gudWsiLCJ1cyIsImRuaS51cyIs''@;'; + put 'put ''ImZlZC51cyIsImlzYS51cyIsImtpZHMudXMiLCJuc24udXMiLCJhay51cyIsImFsLnVzIiwiYXIudXMiLCJhcy51cyIsImF6LnVzIiwiY2EudXMiLCJjby51cyIsImN0LnVzIiwiZGMudXMiLCJkZS51cyIsImZsLnVzIiwiZ2EudXMiLCJndS51cyIsImhpLnVzIiwiaWEudXMiLCJpZC51cyIs''@;'; + put 'put ''ImlsLnVzIiwiaW4udXMiLCJrcy51cyIsImt5LnVzIiwibGEudXMiLCJtYS51cyIsIm1kLnVzIiwibWUudXMiLCJtaS51cyIsIm1uLnVzIiwibW8udXMiLCJtcy51cyIsIm10LnVzIiwibmMudXMiLCJuZC51cyIsIm5lLnVzIiwibmgudXMiLCJuai51cyIsIm5tLnVzIiwibnYudXMiLCJueS51''@;'; + put 'put ''cyIsIm9oLnVzIiwib2sudXMiLCJvci51cyIsInBhLnVzIiwicHIudXMiLCJyaS51cyIsInNjLnVzIiwic2QudXMiLCJ0bi51cyIsInR4LnVzIiwidXQudXMiLCJ2aS51cyIsInZ0LnVzIiwidmEudXMiLCJ3YS51cyIsIndpLnVzIiwid3YudXMiLCJ3eS51cyIsImsxMi5hay51cyIsImsxMi5h''@;'; + put 'put ''bC51cyIsImsxMi5hci51cyIsImsxMi5hcy51cyIsImsxMi5hei51cyIsImsxMi5jYS51cyIsImsxMi5jby51cyIsImsxMi5jdC51cyIsImsxMi5kYy51cyIsImsxMi5kZS51cyIsImsxMi5mbC51cyIsImsxMi5nYS51cyIsImsxMi5ndS51cyIsImsxMi5pYS51cyIsImsxMi5pZC51cyIsImsx''@;'; + put 'put ''Mi5pbC51cyIsImsxMi5pbi51cyIsImsxMi5rcy51cyIsImsxMi5reS51cyIsImsxMi5sYS51cyIsImsxMi5tYS51cyIsImsxMi5tZC51cyIsImsxMi5tZS51cyIsImsxMi5taS51cyIsImsxMi5tbi51cyIsImsxMi5tby51cyIsImsxMi5tcy51cyIsImsxMi5tdC51cyIsImsxMi5uYy51cyIs''@;'; + put 'put ''ImsxMi5uZS51cyIsImsxMi5uaC51cyIsImsxMi5uai51cyIsImsxMi5ubS51cyIsImsxMi5udi51cyIsImsxMi5ueS51cyIsImsxMi5vaC51cyIsImsxMi5vay51cyIsImsxMi5vci51cyIsImsxMi5wYS51cyIsImsxMi5wci51cyIsImsxMi5yaS51cyIsImsxMi5zYy51cyIsImsxMi50bi51''@;'; + put 'put ''cyIsImsxMi50eC51cyIsImsxMi51dC51cyIsImsxMi52aS51cyIsImsxMi52dC51cyIsImsxMi52YS51cyIsImsxMi53YS51cyIsImsxMi53aS51cyIsImsxMi53eS51cyIsImNjLmFrLnVzIiwiY2MuYWwudXMiLCJjYy5hci51cyIsImNjLmFzLnVzIiwiY2MuYXoudXMiLCJjYy5jYS51cyIs''@;'; + put 'put ''ImNjLmNvLnVzIiwiY2MuY3QudXMiLCJjYy5kYy51cyIsImNjLmRlLnVzIiwiY2MuZmwudXMiLCJjYy5nYS51cyIsImNjLmd1LnVzIiwiY2MuaGkudXMiLCJjYy5pYS51cyIsImNjLmlkLnVzIiwiY2MuaWwudXMiLCJjYy5pbi51cyIsImNjLmtzLnVzIiwiY2Mua3kudXMiLCJjYy5sYS51cyIs''@;'; + put 'put ''ImNjLm1hLnVzIiwiY2MubWQudXMiLCJjYy5tZS51cyIsImNjLm1pLnVzIiwiY2MubW4udXMiLCJjYy5tby51cyIsImNjLm1zLnVzIiwiY2MubXQudXMiLCJjYy5uYy51cyIsImNjLm5kLnVzIiwiY2MubmUudXMiLCJjYy5uaC51cyIsImNjLm5qLnVzIiwiY2Mubm0udXMiLCJjYy5udi51cyIs''@;'; + put 'put ''ImNjLm55LnVzIiwiY2Mub2gudXMiLCJjYy5vay51cyIsImNjLm9yLnVzIiwiY2MucGEudXMiLCJjYy5wci51cyIsImNjLnJpLnVzIiwiY2Muc2MudXMiLCJjYy5zZC51cyIsImNjLnRuLnVzIiwiY2MudHgudXMiLCJjYy51dC51cyIsImNjLnZpLnVzIiwiY2MudnQudXMiLCJjYy52YS51cyIs''@;'; + put 'put ''ImNjLndhLnVzIiwiY2Mud2kudXMiLCJjYy53di51cyIsImNjLnd5LnVzIiwibGliLmFrLnVzIiwibGliLmFsLnVzIiwibGliLmFyLnVzIiwibGliLmFzLnVzIiwibGliLmF6LnVzIiwibGliLmNhLnVzIiwibGliLmNvLnVzIiwibGliLmN0LnVzIiwibGliLmRjLnVzIiwibGliLmZsLnVzIiwi''@;'; + put 'put ''bGliLmdhLnVzIiwibGliLmd1LnVzIiwibGliLmhpLnVzIiwibGliLmlhLnVzIiwibGliLmlkLnVzIiwibGliLmlsLnVzIiwibGliLmluLnVzIiwibGliLmtzLnVzIiwibGliLmt5LnVzIiwibGliLmxhLnVzIiwibGliLm1hLnVzIiwibGliLm1kLnVzIiwibGliLm1lLnVzIiwibGliLm1pLnVz''@;'; + put 'put ''IiwibGliLm1uLnVzIiwibGliLm1vLnVzIiwibGliLm1zLnVzIiwibGliLm10LnVzIiwibGliLm5jLnVzIiwibGliLm5kLnVzIiwibGliLm5lLnVzIiwibGliLm5oLnVzIiwibGliLm5qLnVzIiwibGliLm5tLnVzIiwibGliLm52LnVzIiwibGliLm55LnVzIiwibGliLm9oLnVzIiwibGliLm9r''@;'; + put 'put ''LnVzIiwibGliLm9yLnVzIiwibGliLnBhLnVzIiwibGliLnByLnVzIiwibGliLnJpLnVzIiwibGliLnNjLnVzIiwibGliLnNkLnVzIiwibGliLnRuLnVzIiwibGliLnR4LnVzIiwibGliLnV0LnVzIiwibGliLnZpLnVzIiwibGliLnZ0LnVzIiwibGliLnZhLnVzIiwibGliLndhLnVzIiwibGli''@;'; + put 'put ''LndpLnVzIiwibGliLnd5LnVzIiwicHZ0LmsxMi5tYS51cyIsImNodHIuazEyLm1hLnVzIiwicGFyb2NoLmsxMi5tYS51cyIsImFubi1hcmJvci5taS51cyIsImNvZy5taS51cyIsImRzdC5taS51cyIsImVhdG9uLm1pLnVzIiwiZ2VuLm1pLnVzIiwibXVzLm1pLnVzIiwidGVjLm1pLnVzIiwi''@;'; + put 'put ''d2FzaHRlbmF3Lm1pLnVzIiwidXkiLCJjb20udXkiLCJlZHUudXkiLCJndWIudXkiLCJtaWwudXkiLCJuZXQudXkiLCJvcmcudXkiLCJ1eiIsImNvLnV6IiwiY29tLnV6IiwibmV0LnV6Iiwib3JnLnV6IiwidmEiLCJ2YyIsImNvbS52YyIsIm5ldC52YyIsIm9yZy52YyIsImdvdi52YyIsIm1p''@;'; + put 'put ''bC52YyIsImVkdS52YyIsInZlIiwiYXJ0cy52ZSIsImNvLnZlIiwiY29tLnZlIiwiZTEyLnZlIiwiZWR1LnZlIiwiZmlybS52ZSIsImdvYi52ZSIsImdvdi52ZSIsImluZm8udmUiLCJpbnQudmUiLCJtaWwudmUiLCJuZXQudmUiLCJvcmcudmUiLCJyZWMudmUiLCJzdG9yZS52ZSIsInRlYy52''@;'; + put 'put ''ZSIsIndlYi52ZSIsInZnIiwidmkiLCJjby52aSIsImNvbS52aSIsImsxMi52aSIsIm5ldC52aSIsIm9yZy52aSIsInZuIiwiY29tLnZuIiwibmV0LnZuIiwib3JnLnZuIiwiZWR1LnZuIiwiZ292LnZuIiwiaW50LnZuIiwiYWMudm4iLCJiaXoudm4iLCJpbmZvLnZuIiwibmFtZS52biIsInBy''@;'; + put 'put ''by52biIsImhlYWx0aC52biIsInZ1IiwiY29tLnZ1IiwiZWR1LnZ1IiwibmV0LnZ1Iiwib3JnLnZ1Iiwid2YiLCJ3cyIsImNvbS53cyIsIm5ldC53cyIsIm9yZy53cyIsImdvdi53cyIsImVkdS53cyIsInl0IiwiXHUwNjI3XHUwNjQ1XHUwNjI3XHUwNjMxXHUwNjI3XHUwNjJhIiwiXHUwNTcw''@;'; + put 'put ''XHUwNTYxXHUwNTc1IiwiXHUwOWFjXHUwOWJlXHUwOTgyXHUwOWIyXHUwOWJlIiwiXHUwNDMxXHUwNDMzIiwiXHUwNDMxXHUwNDM1XHUwNDNiIiwiXHU0ZTJkXHU1NmZkIiwiXHU0ZTJkXHU1NzBiIiwiXHUwNjI3XHUwNjQ0XHUwNjJjXHUwNjMyXHUwNjI3XHUwNjI2XHUwNjMxIiwiXHUwNjQ1''@;'; + put 'put ''XHUwNjM1XHUwNjMxIiwiXHUwNDM1XHUwNDRlIiwiXHUwM2I1XHUwM2M1IiwiXHUwNjQ1XHUwNjQ4XHUwNjMxXHUwNjRhXHUwNjJhXHUwNjI3XHUwNjQ2XHUwNjRhXHUwNjI3IiwiXHUxMGQyXHUxMGQ0IiwiXHUwM2I1XHUwM2JiIiwiXHU5OTk5XHU2ZTJmIiwiXHU1MTZjXHU1M2Y4Llx1OTk5''@;'; + put 'put ''OVx1NmUyZiIsIlx1NjU1OVx1ODBiMi5cdTk5OTlcdTZlMmYiLCJcdTY1M2ZcdTVlOWMuXHU5OTk5XHU2ZTJmIiwiXHU1MDBiXHU0ZWJhLlx1OTk5OVx1NmUyZiIsIlx1N2RiMlx1N2Q2MS5cdTk5OTlcdTZlMmYiLCJcdTdkNDRcdTdlNTQuXHU5OTk5XHU2ZTJmIiwiXHUwY2FkXHUwY2JlXHUw''@;'; + put 'put ''Y2IwXHUwY2E0IiwiXHUwYjJkXHUwYjNlXHUwYjMwXHUwYjI0IiwiXHUwOWFkXHUwOWJlXHUwOWYwXHUwOWE0IiwiXHUwOTJkXHUwOTNlXHUwOTMwXHUwOTI0XHUwOTJlXHUwOTRkIiwiXHUwOTJkXHUwOTNlXHUwOTMwXHUwOTRiXHUwOTI0IiwiXHUwNjgwXHUwNjI3XHUwNjMxXHUwNjJhIiwi''@;'; + put 'put ''XHUwZDJkXHUwZDNlXHUwZDMwXHUwZDI0XHUwZDAyIiwiXHUwOTJkXHUwOTNlXHUwOTMwXHUwOTI0IiwiXHUwNjI4XHUwNjI3XHUwNjMxXHUwNjJhIiwiXHUwNjI4XHUwNmJlXHUwNjI3XHUwNjMxXHUwNjJhIiwiXHUwYzJkXHUwYzNlXHUwYzMwXHUwYzI0XHUwYzRkIiwiXHUwYWFkXHUwYWJl''@;'; + put 'put ''XHUwYWIwXHUwYWE0IiwiXHUwYTJkXHUwYTNlXHUwYTMwXHUwYTI0IiwiXHUwOWFkXHUwOWJlXHUwOWIwXHUwOWE0IiwiXHUwYjg3XHUwYmE4XHUwYmNkXHUwYmE0XHUwYmJmXHUwYmFmXHUwYmJlIiwiXHUwNjI3XHUwNmNjXHUwNjMxXHUwNjI3XHUwNjQ2IiwiXHUwNjI3XHUwNjRhXHUwNjMx''@;'; + put 'put ''XHUwNjI3XHUwNjQ2IiwiXHUwNjM5XHUwNjMxXHUwNjI3XHUwNjQyIiwiXHUwNjI3XHUwNjQ0XHUwNjI3XHUwNjMxXHUwNjJmXHUwNjQ2IiwiXHVkNTVjXHVhZDZkIiwiXHUwNDliXHUwNDMwXHUwNDM3IiwiXHUwZGJkXHUwZDgyXHUwZDlhXHUwZGNmIiwiXHUwYjg3XHUwYmIyXHUwYjk5XHUw''@;'; + put 'put ''YmNkXHUwYjk1XHUwYmM4IiwiXHUwNjI3XHUwNjQ0XHUwNjQ1XHUwNjNhXHUwNjMxXHUwNjI4IiwiXHUwNDNjXHUwNDNhXHUwNDM0IiwiXHUwNDNjXHUwNDNlXHUwNDNkIiwiXHU2ZmIzXHU5NTgwIiwiXHU2ZmIzXHU5NWU4IiwiXHUwNjQ1XHUwNjQ0XHUwNjRhXHUwNjMzXHUwNjRhXHUwNjI3''@;'; + put 'put ''IiwiXHUwNjM5XHUwNjQ1XHUwNjI3XHUwNjQ2IiwiXHUwNjdlXHUwNjI3XHUwNmE5XHUwNjMzXHUwNjJhXHUwNjI3XHUwNjQ2IiwiXHUwNjdlXHUwNjI3XHUwNjQzXHUwNjMzXHUwNjJhXHUwNjI3XHUwNjQ2IiwiXHUwNjQxXHUwNjQ0XHUwNjMzXHUwNjM3XHUwNjRhXHUwNjQ2IiwiXHUwNDQx''@;'; + put 'put ''XHUwNDQwXHUwNDMxIiwiXHUwNDNmXHUwNDQwLlx1MDQ0MVx1MDQ0MFx1MDQzMSIsIlx1MDQzZVx1MDQ0MFx1MDQzMy5cdTA0NDFcdTA0NDBcdTA0MzEiLCJcdTA0M2VcdTA0MzFcdTA0NDAuXHUwNDQxXHUwNDQwXHUwNDMxIiwiXHUwNDNlXHUwNDM0Llx1MDQ0MVx1MDQ0MFx1MDQzMSIsIlx1''@;'; + put 'put ''MDQ0M1x1MDQzZlx1MDQ0MC5cdTA0NDFcdTA0NDBcdTA0MzEiLCJcdTA0MzBcdTA0M2EuXHUwNDQxXHUwNDQwXHUwNDMxIiwiXHUwNDQwXHUwNDQ0IiwiXHUwNjQyXHUwNjM3XHUwNjMxIiwiXHUwNjI3XHUwNjQ0XHUwNjMzXHUwNjM5XHUwNjQ4XHUwNjJmXHUwNjRhXHUwNjI5IiwiXHUwNjI3''@;'; + put 'put ''XHUwNjQ0XHUwNjMzXHUwNjM5XHUwNjQ4XHUwNjJmXHUwNmNjXHUwNjI5IiwiXHUwNjI3XHUwNjQ0XHUwNjMzXHUwNjM5XHUwNjQ4XHUwNjJmXHUwNmNjXHUwNmMzIiwiXHUwNjI3XHUwNjQ0XHUwNjMzXHUwNjM5XHUwNjQ4XHUwNjJmXHUwNjRhXHUwNjQ3IiwiXHUwNjMzXHUwNjQ4XHUwNjJm''@;'; + put 'put ''XHUwNjI3XHUwNjQ2IiwiXHU2NWIwXHU1MmEwXHU1NzYxIiwiXHUwYjlhXHUwYmJmXHUwYjk5XHUwYmNkXHUwYjk1XHUwYmFhXHUwYmNkXHUwYmFhXHUwYmMyXHUwYmIwXHUwYmNkIiwiXHUwNjMzXHUwNjQ4XHUwNjMxXHUwNjRhXHUwNjI5IiwiXHUwNjMzXHUwNjQ4XHUwNjMxXHUwNjRhXHUw''@;'; + put 'put ''NjI3IiwiXHUwZTQ0XHUwZTE3XHUwZTIyIiwiXHUwZTI4XHUwZTM2XHUwZTAxXHUwZTI5XHUwZTMyLlx1MGU0NFx1MGUxN1x1MGUyMiIsIlx1MGUxOFx1MGUzOFx1MGUyM1x1MGUwMVx1MGUzNFx1MGUwOC5cdTBlNDRcdTBlMTdcdTBlMjIiLCJcdTBlMjNcdTBlMzFcdTBlMTBcdTBlMWFcdTBl''@;'; + put 'put ''MzJcdTBlMjUuXHUwZTQ0XHUwZTE3XHUwZTIyIiwiXHUwZTE3XHUwZTJiXHUwZTMyXHUwZTIzLlx1MGU0NFx1MGUxN1x1MGUyMiIsIlx1MGU0MFx1MGUxOVx1MGU0N1x1MGUxNS5cdTBlNDRcdTBlMTdcdTBlMjIiLCJcdTBlMmRcdTBlMDdcdTBlMDRcdTBlNGNcdTBlMDFcdTBlMjMuXHUwZTQ0''@;'; + put 'put ''XHUwZTE3XHUwZTIyIiwiXHUwNjJhXHUwNjQ4XHUwNjQ2XHUwNjMzIiwiXHU1M2YwXHU3MDYzIiwiXHU1M2YwXHU2ZTdlIiwiXHU4MWZhXHU3MDYzIiwiXHUwNDQzXHUwNDNhXHUwNDQwIiwiXHUwNjI3XHUwNjQ0XHUwNjRhXHUwNjQ1XHUwNjQ2IiwieHh4IiwiKi55ZSIsImFjLnphIiwiYWdy''@;'; + put 'put ''aWMuemEiLCJhbHQuemEiLCJjby56YSIsImVkdS56YSIsImdvdi56YSIsImdyb25kYXIuemEiLCJsYXcuemEiLCJtaWwuemEiLCJuZXQuemEiLCJuZ28uemEiLCJuaWMuemEiLCJuaXMuemEiLCJub20uemEiLCJvcmcuemEiLCJzY2hvb2wuemEiLCJ0bS56YSIsIndlYi56YSIsInptIiwiYWMu''@;'; + put 'put ''em0iLCJiaXouem0iLCJjby56bSIsImNvbS56bSIsImVkdS56bSIsImdvdi56bSIsImluZm8uem0iLCJtaWwuem0iLCJuZXQuem0iLCJvcmcuem0iLCJzY2guem0iLCJ6dyIsImFjLnp3IiwiY28uenciLCJnb3YuenciLCJtaWwuenciLCJvcmcuenciLCJhYWEiLCJhYXJwIiwiYWJhcnRoIiwi''@;'; + put 'put ''YWJiIiwiYWJib3R0IiwiYWJidmllIiwiYWJjIiwiYWJsZSIsImFib2dhZG8iLCJhYnVkaGFiaSIsImFjYWRlbXkiLCJhY2NlbnR1cmUiLCJhY2NvdW50YW50IiwiYWNjb3VudGFudHMiLCJhY28iLCJhY3RvciIsImFkYWMiLCJhZHMiLCJhZHVsdCIsImFlZyIsImFldG5hIiwiYWZhbWlseWNv''@;'; + put 'put ''bXBhbnkiLCJhZmwiLCJhZnJpY2EiLCJhZ2FraGFuIiwiYWdlbmN5IiwiYWlnIiwiYWlnbyIsImFpcmJ1cyIsImFpcmZvcmNlIiwiYWlydGVsIiwiYWtkbiIsImFsZmFyb21lbyIsImFsaWJhYmEiLCJhbGlwYXkiLCJhbGxmaW5hbnoiLCJhbGxzdGF0ZSIsImFsbHkiLCJhbHNhY2UiLCJhbHN0''@;'; + put 'put ''b20iLCJhbWF6b24iLCJhbWVyaWNhbmV4cHJlc3MiLCJhbWVyaWNhbmZhbWlseSIsImFtZXgiLCJhbWZhbSIsImFtaWNhIiwiYW1zdGVyZGFtIiwiYW5hbHl0aWNzIiwiYW5kcm9pZCIsImFucXVhbiIsImFueiIsImFvbCIsImFwYXJ0bWVudHMiLCJhcHAiLCJhcHBsZSIsImFxdWFyZWxsZSIs''@;'; + put 'put ''ImFyYWIiLCJhcmFtY28iLCJhcmNoaSIsImFybXkiLCJhcnQiLCJhcnRlIiwiYXNkYSIsImFzc29jaWF0ZXMiLCJhdGhsZXRhIiwiYXR0b3JuZXkiLCJhdWN0aW9uIiwiYXVkaSIsImF1ZGlibGUiLCJhdWRpbyIsImF1c3Bvc3QiLCJhdXRob3IiLCJhdXRvIiwiYXV0b3MiLCJhdmlhbmNhIiwi''@;'; + put 'put ''YXdzIiwiYXhhIiwiYXp1cmUiLCJiYWJ5IiwiYmFpZHUiLCJiYW5hbWV4IiwiYmFuYW5hcmVwdWJsaWMiLCJiYW5kIiwiYmFuayIsImJhciIsImJhcmNlbG9uYSIsImJhcmNsYXljYXJkIiwiYmFyY2xheXMiLCJiYXJlZm9vdCIsImJhcmdhaW5zIiwiYmFzZWJhbGwiLCJiYXNrZXRiYWxsIiwi''@;'; + put 'put ''YmF1aGF1cyIsImJheWVybiIsImJiYyIsImJidCIsImJidmEiLCJiY2ciLCJiY24iLCJiZWF0cyIsImJlYXV0eSIsImJlZXIiLCJiZW50bGV5IiwiYmVybGluIiwiYmVzdCIsImJlc3RidXkiLCJiZXQiLCJiaGFydGkiLCJiaWJsZSIsImJpZCIsImJpa2UiLCJiaW5nIiwiYmluZ28iLCJiaW8i''@;'; + put 'put ''LCJibGFjayIsImJsYWNrZnJpZGF5IiwiYmxvY2tidXN0ZXIiLCJibG9nIiwiYmxvb21iZXJnIiwiYmx1ZSIsImJtcyIsImJtdyIsImJucHBhcmliYXMiLCJib2F0cyIsImJvZWhyaW5nZXIiLCJib2ZhIiwiYm9tIiwiYm9uZCIsImJvbyIsImJvb2siLCJib29raW5nIiwiYm9zY2giLCJib3N0''@;'; + put 'put ''aWsiLCJib3N0b24iLCJib3QiLCJib3V0aXF1ZSIsImJveCIsImJyYWRlc2NvIiwiYnJpZGdlc3RvbmUiLCJicm9hZHdheSIsImJyb2tlciIsImJyb3RoZXIiLCJicnVzc2VscyIsImJ1ZGFwZXN0IiwiYnVnYXR0aSIsImJ1aWxkIiwiYnVpbGRlcnMiLCJidXNpbmVzcyIsImJ1eSIsImJ1enoi''@;'; + put 'put ''LCJiemgiLCJjYWIiLCJjYWZlIiwiY2FsIiwiY2FsbCIsImNhbHZpbmtsZWluIiwiY2FtIiwiY2FtZXJhIiwiY2FtcCIsImNhbmNlcnJlc2VhcmNoIiwiY2Fub24iLCJjYXBldG93biIsImNhcGl0YWwiLCJjYXBpdGFsb25lIiwiY2FyIiwiY2FyYXZhbiIsImNhcmRzIiwiY2FyZSIsImNhcmVl''@;'; + put 'put ''ciIsImNhcmVlcnMiLCJjYXJzIiwiY2FzYSIsImNhc2UiLCJjYXNlaWgiLCJjYXNoIiwiY2FzaW5vIiwiY2F0ZXJpbmciLCJjYXRob2xpYyIsImNiYSIsImNibiIsImNicmUiLCJjYnMiLCJjZWIiLCJjZW50ZXIiLCJjZW8iLCJjZXJuIiwiY2ZhIiwiY2ZkIiwiY2hhbmVsIiwiY2hhbm5lbCIs''@;'; + put 'put ''ImNoYXJpdHkiLCJjaGFzZSIsImNoYXQiLCJjaGVhcCIsImNoaW50YWkiLCJjaHJpc3RtYXMiLCJjaHJvbWUiLCJjaHVyY2giLCJjaXByaWFuaSIsImNpcmNsZSIsImNpc2NvIiwiY2l0YWRlbCIsImNpdGkiLCJjaXRpYyIsImNpdHkiLCJjaXR5ZWF0cyIsImNsYWltcyIsImNsZWFuaW5nIiwi''@;'; + put 'put ''Y2xpY2siLCJjbGluaWMiLCJjbGluaXF1ZSIsImNsb3RoaW5nIiwiY2xvdWQiLCJjbHViIiwiY2x1Ym1lZCIsImNvYWNoIiwiY29kZXMiLCJjb2ZmZWUiLCJjb2xsZWdlIiwiY29sb2duZSIsImNvbWNhc3QiLCJjb21tYmFuayIsImNvbW11bml0eSIsImNvbXBhbnkiLCJjb21wYXJlIiwiY29t''@;'; + put 'put ''cHV0ZXIiLCJjb21zZWMiLCJjb25kb3MiLCJjb25zdHJ1Y3Rpb24iLCJjb25zdWx0aW5nIiwiY29udGFjdCIsImNvbnRyYWN0b3JzIiwiY29va2luZyIsImNvb2tpbmdjaGFubmVsIiwiY29vbCIsImNvcnNpY2EiLCJjb3VudHJ5IiwiY291cG9uIiwiY291cG9ucyIsImNvdXJzZXMiLCJjcGEi''@;'; + put 'put ''LCJjcmVkaXQiLCJjcmVkaXRjYXJkIiwiY3JlZGl0dW5pb24iLCJjcmlja2V0IiwiY3Jvd24iLCJjcnMiLCJjcnVpc2UiLCJjcnVpc2VzIiwiY3NjIiwiY3Vpc2luZWxsYSIsImN5bXJ1IiwiY3lvdSIsImRhYnVyIiwiZGFkIiwiZGFuY2UiLCJkYXRhIiwiZGF0ZSIsImRhdGluZyIsImRhdHN1''@;'; + put 'put ''biIsImRheSIsImRjbGsiLCJkZHMiLCJkZWFsIiwiZGVhbGVyIiwiZGVhbHMiLCJkZWdyZWUiLCJkZWxpdmVyeSIsImRlbGwiLCJkZWxvaXR0ZSIsImRlbHRhIiwiZGVtb2NyYXQiLCJkZW50YWwiLCJkZW50aXN0IiwiZGVzaSIsImRlc2lnbiIsImRldiIsImRobCIsImRpYW1vbmRzIiwiZGll''@;'; + put 'put ''dCIsImRpZ2l0YWwiLCJkaXJlY3QiLCJkaXJlY3RvcnkiLCJkaXNjb3VudCIsImRpc2NvdmVyIiwiZGlzaCIsImRpeSIsImRucCIsImRvY3MiLCJkb2N0b3IiLCJkb2ciLCJkb21haW5zIiwiZG90IiwiZG93bmxvYWQiLCJkcml2ZSIsImR0diIsImR1YmFpIiwiZHVjayIsImR1bmxvcCIsImR1''@;'; + put 'put ''cG9udCIsImR1cmJhbiIsImR2YWciLCJkdnIiLCJlYXJ0aCIsImVhdCIsImVjbyIsImVkZWthIiwiZWR1Y2F0aW9uIiwiZW1haWwiLCJlbWVyY2siLCJlbmVyZ3kiLCJlbmdpbmVlciIsImVuZ2luZWVyaW5nIiwiZW50ZXJwcmlzZXMiLCJlcHNvbiIsImVxdWlwbWVudCIsImVyaWNzc29uIiwi''@;'; + put 'put ''ZXJuaSIsImVzcSIsImVzdGF0ZSIsImVzdXJhbmNlIiwiZXRpc2FsYXQiLCJldXJvdmlzaW9uIiwiZXVzIiwiZXZlbnRzIiwiZXhjaGFuZ2UiLCJleHBlcnQiLCJleHBvc2VkIiwiZXhwcmVzcyIsImV4dHJhc3BhY2UiLCJmYWdlIiwiZmFpbCIsImZhaXJ3aW5kcyIsImZhaXRoIiwiZmFtaWx5''@;'; + put 'put ''IiwiZmFuIiwiZmFucyIsImZhcm0iLCJmYXJtZXJzIiwiZmFzaGlvbiIsImZhc3QiLCJmZWRleCIsImZlZWRiYWNrIiwiZmVycmFyaSIsImZlcnJlcm8iLCJmaWF0IiwiZmlkZWxpdHkiLCJmaWRvIiwiZmlsbSIsImZpbmFsIiwiZmluYW5jZSIsImZpbmFuY2lhbCIsImZpcmUiLCJmaXJlc3Rv''@;'; + put 'put ''bmUiLCJmaXJtZGFsZSIsImZpc2giLCJmaXNoaW5nIiwiZml0IiwiZml0bmVzcyIsImZsaWNrciIsImZsaWdodHMiLCJmbGlyIiwiZmxvcmlzdCIsImZsb3dlcnMiLCJmbHkiLCJmb28iLCJmb29kIiwiZm9vZG5ldHdvcmsiLCJmb290YmFsbCIsImZvcmQiLCJmb3JleCIsImZvcnNhbGUiLCJm''@;'; + put 'put ''b3J1bSIsImZvdW5kYXRpb24iLCJmb3giLCJmcmVlIiwiZnJlc2VuaXVzIiwiZnJsIiwiZnJvZ2FucyIsImZyb250ZG9vciIsImZyb250aWVyIiwiZnRyIiwiZnVqaXRzdSIsImZ1aml4ZXJveCIsImZ1biIsImZ1bmQiLCJmdXJuaXR1cmUiLCJmdXRib2wiLCJmeWkiLCJnYWwiLCJnYWxsZXJ5''@;'; + put 'put ''IiwiZ2FsbG8iLCJnYWxsdXAiLCJnYW1lIiwiZ2FtZXMiLCJnYXAiLCJnYXJkZW4iLCJnYXkiLCJnYml6IiwiZ2RuIiwiZ2VhIiwiZ2VudCIsImdlbnRpbmciLCJnZW9yZ2UiLCJnZ2VlIiwiZ2lmdCIsImdpZnRzIiwiZ2l2ZXMiLCJnaXZpbmciLCJnbGFkZSIsImdsYXNzIiwiZ2xlIiwiZ2xv''@;'; + put 'put ''YmFsIiwiZ2xvYm8iLCJnbWFpbCIsImdtYmgiLCJnbW8iLCJnbXgiLCJnb2RhZGR5IiwiZ29sZCIsImdvbGRwb2ludCIsImdvbGYiLCJnb28iLCJnb29keWVhciIsImdvb2ciLCJnb29nbGUiLCJnb3AiLCJnb3QiLCJncmFpbmdlciIsImdyYXBoaWNzIiwiZ3JhdGlzIiwiZ3JlZW4iLCJncmlw''@;'; + put 'put ''ZSIsImdyb2NlcnkiLCJncm91cCIsImd1YXJkaWFuIiwiZ3VjY2kiLCJndWdlIiwiZ3VpZGUiLCJndWl0YXJzIiwiZ3VydSIsImhhaXIiLCJoYW1idXJnIiwiaGFuZ291dCIsImhhdXMiLCJoYm8iLCJoZGZjIiwiaGRmY2JhbmsiLCJoZWFsdGgiLCJoZWFsdGhjYXJlIiwiaGVscCIsImhlbHNp''@;'; + put 'put ''bmtpIiwiaGVyZSIsImhlcm1lcyIsImhndHYiLCJoaXBob3AiLCJoaXNhbWl0c3UiLCJoaXRhY2hpIiwiaGl2IiwiaGt0IiwiaG9ja2V5IiwiaG9sZGluZ3MiLCJob2xpZGF5IiwiaG9tZWRlcG90IiwiaG9tZWdvb2RzIiwiaG9tZXMiLCJob21lc2Vuc2UiLCJob25kYSIsImhvcnNlIiwiaG9z''@;'; + put 'put ''cGl0YWwiLCJob3N0IiwiaG9zdGluZyIsImhvdCIsImhvdGVsZXMiLCJob3RlbHMiLCJob3RtYWlsIiwiaG91c2UiLCJob3ciLCJoc2JjIiwiaHVnaGVzIiwiaHlhdHQiLCJoeXVuZGFpIiwiaWJtIiwiaWNiYyIsImljZSIsImljdSIsImllZWUiLCJpZm0iLCJpa2FubyIsImltYW1hdCIsImlt''@;'; + put 'put ''ZGIiLCJpbW1vIiwiaW1tb2JpbGllbiIsImluYyIsImluZHVzdHJpZXMiLCJpbmZpbml0aSIsImluZyIsImluayIsImluc3RpdHV0ZSIsImluc3VyYW5jZSIsImluc3VyZSIsImludGVsIiwiaW50ZXJuYXRpb25hbCIsImludHVpdCIsImludmVzdG1lbnRzIiwiaXBpcmFuZ2EiLCJpcmlzaCIs''@;'; + put 'put ''ImlzbWFpbGkiLCJpc3QiLCJpc3RhbmJ1bCIsIml0YXUiLCJpdHYiLCJpdmVjbyIsImphZ3VhciIsImphdmEiLCJqY2IiLCJqY3AiLCJqZWVwIiwiamV0enQiLCJqZXdlbHJ5IiwiamlvIiwiamxsIiwiam1wIiwiam5qIiwiam9idXJnIiwiam90Iiwiam95IiwianBtb3JnYW4iLCJqcHJzIiwi''@;'; + put 'put ''anVlZ29zIiwianVuaXBlciIsImthdWZlbiIsImtkZGkiLCJrZXJyeWhvdGVscyIsImtlcnJ5bG9naXN0aWNzIiwia2Vycnlwcm9wZXJ0aWVzIiwia2ZoIiwia2lhIiwia2ltIiwia2luZGVyIiwia2luZGxlIiwia2l0Y2hlbiIsImtpd2kiLCJrb2VsbiIsImtvbWF0c3UiLCJrb3NoZXIiLCJr''@;'; + put 'put ''cG1nIiwia3BuIiwia3JkIiwia3JlZCIsImt1b2tncm91cCIsImt5b3RvIiwibGFjYWl4YSIsImxhbWJvcmdoaW5pIiwibGFtZXIiLCJsYW5jYXN0ZXIiLCJsYW5jaWEiLCJsYW5kIiwibGFuZHJvdmVyIiwibGFueGVzcyIsImxhc2FsbGUiLCJsYXQiLCJsYXRpbm8iLCJsYXRyb2JlIiwibGF3''@;'; + put 'put ''IiwibGF3eWVyIiwibGRzIiwibGVhc2UiLCJsZWNsZXJjIiwibGVmcmFrIiwibGVnYWwiLCJsZWdvIiwibGV4dXMiLCJsZ2J0IiwibGlkbCIsImxpZmUiLCJsaWZlaW5zdXJhbmNlIiwibGlmZXN0eWxlIiwibGlnaHRpbmciLCJsaWtlIiwibGlsbHkiLCJsaW1pdGVkIiwibGltbyIsImxpbmNv''@;'; + put 'put ''bG4iLCJsaW5kZSIsImxpbmsiLCJsaXBzeSIsImxpdmUiLCJsaXZpbmciLCJsaXhpbCIsImxsYyIsImxscCIsImxvYW4iLCJsb2FucyIsImxvY2tlciIsImxvY3VzIiwibG9mdCIsImxvbCIsImxvbmRvbiIsImxvdHRlIiwibG90dG8iLCJsb3ZlIiwibHBsIiwibHBsZmluYW5jaWFsIiwibHRk''@;'; + put 'put ''IiwibHRkYSIsImx1bmRiZWNrIiwibHVwaW4iLCJsdXhlIiwibHV4dXJ5IiwibWFjeXMiLCJtYWRyaWQiLCJtYWlmIiwibWFpc29uIiwibWFrZXVwIiwibWFuIiwibWFuYWdlbWVudCIsIm1hbmdvIiwibWFwIiwibWFya2V0IiwibWFya2V0aW5nIiwibWFya2V0cyIsIm1hcnJpb3R0IiwibWFy''@;'; + put 'put ''c2hhbGxzIiwibWFzZXJhdGkiLCJtYXR0ZWwiLCJtYmEiLCJtY2tpbnNleSIsIm1lZCIsIm1lZGlhIiwibWVldCIsIm1lbGJvdXJuZSIsIm1lbWUiLCJtZW1vcmlhbCIsIm1lbiIsIm1lbnUiLCJtZXJja21zZCIsIm1ldGxpZmUiLCJtaWFtaSIsIm1pY3Jvc29mdCIsIm1pbmkiLCJtaW50Iiwi''@;'; + put 'put ''bWl0IiwibWl0c3ViaXNoaSIsIm1sYiIsIm1scyIsIm1tYSIsIm1vYmlsZSIsIm1vZGEiLCJtb2UiLCJtb2kiLCJtb20iLCJtb25hc2giLCJtb25leSIsIm1vbnN0ZXIiLCJtb3Jtb24iLCJtb3J0Z2FnZSIsIm1vc2NvdyIsIm1vdG8iLCJtb3RvcmN5Y2xlcyIsIm1vdiIsIm1vdmllIiwibXNk''@;'; + put 'put ''IiwibXRuIiwibXRyIiwibXV0dWFsIiwibmFiIiwibmFkZXgiLCJuYWdveWEiLCJuYXRpb253aWRlIiwibmF0dXJhIiwibmF2eSIsIm5iYSIsIm5lYyIsIm5ldGJhbmsiLCJuZXRmbGl4IiwibmV0d29yayIsIm5ldXN0YXIiLCJuZXciLCJuZXdob2xsYW5kIiwibmV3cyIsIm5leHQiLCJuZXh0''@;'; + put 'put ''ZGlyZWN0IiwibmV4dXMiLCJuZmwiLCJuZ28iLCJuaGsiLCJuaWNvIiwibmlrZSIsIm5pa29uIiwibmluamEiLCJuaXNzYW4iLCJuaXNzYXkiLCJub2tpYSIsIm5vcnRod2VzdGVybm11dHVhbCIsIm5vcnRvbiIsIm5vdyIsIm5vd3J1eiIsIm5vd3R2IiwibnJhIiwibnJ3IiwibnR0Iiwibnlj''@;'; + put 'put ''Iiwib2JpIiwib2JzZXJ2ZXIiLCJvZmYiLCJvZmZpY2UiLCJva2luYXdhIiwib2xheWFuIiwib2xheWFuZ3JvdXAiLCJvbGRuYXZ5Iiwib2xsbyIsIm9tZWdhIiwib25lIiwib25nIiwib25sIiwib25saW5lIiwib255b3Vyc2lkZSIsIm9vbyIsIm9wZW4iLCJvcmFjbGUiLCJvcmFuZ2UiLCJv''@;'; + put 'put ''cmdhbmljIiwib3JpZ2lucyIsIm9zYWthIiwib3RzdWthIiwib3R0Iiwib3ZoIiwicGFnZSIsInBhbmFzb25pYyIsInBhcmlzIiwicGFycyIsInBhcnRuZXJzIiwicGFydHMiLCJwYXJ0eSIsInBhc3NhZ2VucyIsInBheSIsInBjY3ciLCJwZXQiLCJwZml6ZXIiLCJwaGFybWFjeSIsInBoZCIs''@;'; + put 'put ''InBoaWxpcHMiLCJwaG9uZSIsInBob3RvIiwicGhvdG9ncmFwaHkiLCJwaG90b3MiLCJwaHlzaW8iLCJwaWNzIiwicGljdGV0IiwicGljdHVyZXMiLCJwaWQiLCJwaW4iLCJwaW5nIiwicGluayIsInBpb25lZXIiLCJwaXp6YSIsInBsYWNlIiwicGxheSIsInBsYXlzdGF0aW9uIiwicGx1bWJp''@;'; + put 'put ''bmciLCJwbHVzIiwicG5jIiwicG9obCIsInBva2VyIiwicG9saXRpZSIsInBvcm4iLCJwcmFtZXJpY2EiLCJwcmF4aSIsInByZXNzIiwicHJpbWUiLCJwcm9kIiwicHJvZHVjdGlvbnMiLCJwcm9mIiwicHJvZ3Jlc3NpdmUiLCJwcm9tbyIsInByb3BlcnRpZXMiLCJwcm9wZXJ0eSIsInByb3Rl''@;'; + put 'put ''Y3Rpb24iLCJwcnUiLCJwcnVkZW50aWFsIiwicHViIiwicHdjIiwicXBvbiIsInF1ZWJlYyIsInF1ZXN0IiwicXZjIiwicmFjaW5nIiwicmFkaW8iLCJyYWlkIiwicmVhZCIsInJlYWxlc3RhdGUiLCJyZWFsdG9yIiwicmVhbHR5IiwicmVjaXBlcyIsInJlZCIsInJlZHN0b25lIiwicmVkdW1i''@;'; + put 'put ''cmVsbGEiLCJyZWhhYiIsInJlaXNlIiwicmVpc2VuIiwicmVpdCIsInJlbGlhbmNlIiwicmVuIiwicmVudCIsInJlbnRhbHMiLCJyZXBhaXIiLCJyZXBvcnQiLCJyZXB1YmxpY2FuIiwicmVzdCIsInJlc3RhdXJhbnQiLCJyZXZpZXciLCJyZXZpZXdzIiwicmV4cm90aCIsInJpY2giLCJyaWNo''@;'; + put 'put ''YXJkbGkiLCJyaWNvaCIsInJpZ2h0YXRob21lIiwicmlsIiwicmlvIiwicmlwIiwicm1pdCIsInJvY2hlciIsInJvY2tzIiwicm9kZW8iLCJyb2dlcnMiLCJyb29tIiwicnN2cCIsInJ1Z2J5IiwicnVociIsInJ1biIsInJ3ZSIsInJ5dWt5dSIsInNhYXJsYW5kIiwic2FmZSIsInNhZmV0eSIs''@;'; + put 'put ''InNha3VyYSIsInNhbGUiLCJzYWxvbiIsInNhbXNjbHViIiwic2Ftc3VuZyIsInNhbmR2aWsiLCJzYW5kdmlrY29yb21hbnQiLCJzYW5vZmkiLCJzYXAiLCJzYXJsIiwic2FzIiwic2F2ZSIsInNheG8iLCJzYmkiLCJzYnMiLCJzY2EiLCJzY2IiLCJzY2hhZWZmbGVyIiwic2NobWlkdCIsInNj''@;'; + put 'put ''aG9sYXJzaGlwcyIsInNjaG9vbCIsInNjaHVsZSIsInNjaHdhcnoiLCJzY2llbmNlIiwic2Nqb2huc29uIiwic2NvciIsInNjb3QiLCJzZWFyY2giLCJzZWF0Iiwic2VjdXJlIiwic2VjdXJpdHkiLCJzZWVrIiwic2VsZWN0Iiwic2VuZXIiLCJzZXJ2aWNlcyIsInNlcyIsInNldmVuIiwic2V3''@;'; + put 'put ''Iiwic2V4Iiwic2V4eSIsInNmciIsInNoYW5ncmlsYSIsInNoYXJwIiwic2hhdyIsInNoZWxsIiwic2hpYSIsInNoaWtzaGEiLCJzaG9lcyIsInNob3AiLCJzaG9wcGluZyIsInNob3VqaSIsInNob3ciLCJzaG93dGltZSIsInNocmlyYW0iLCJzaWxrIiwic2luYSIsInNpbmdsZXMiLCJzaXRl''@;'; + put 'put ''Iiwic2tpIiwic2tpbiIsInNreSIsInNreXBlIiwic2xpbmciLCJzbWFydCIsInNtaWxlIiwic25jZiIsInNvY2NlciIsInNvY2lhbCIsInNvZnRiYW5rIiwic29mdHdhcmUiLCJzb2h1Iiwic29sYXIiLCJzb2x1dGlvbnMiLCJzb25nIiwic29ueSIsInNveSIsInNwYSIsInNwYWNlIiwic3Bv''@;'; + put 'put ''cnQiLCJzcG90Iiwic3ByZWFkYmV0dGluZyIsInNybCIsInN0YWRhIiwic3RhcGxlcyIsInN0YXIiLCJzdGF0ZWJhbmsiLCJzdGF0ZWZhcm0iLCJzdGMiLCJzdGNncm91cCIsInN0b2NraG9sbSIsInN0b3JhZ2UiLCJzdG9yZSIsInN0cmVhbSIsInN0dWRpbyIsInN0dWR5Iiwic3R5bGUiLCJz''@;'; + put 'put ''dWNrcyIsInN1cHBsaWVzIiwic3VwcGx5Iiwic3VwcG9ydCIsInN1cmYiLCJzdXJnZXJ5Iiwic3V6dWtpIiwic3dhdGNoIiwic3dpZnRjb3ZlciIsInN3aXNzIiwic3lkbmV5Iiwic3ltYW50ZWMiLCJzeXN0ZW1zIiwidGFiIiwidGFpcGVpIiwidGFsayIsInRhb2JhbyIsInRhcmdldCIsInRh''@;'; + put 'put ''dGFtb3RvcnMiLCJ0YXRhciIsInRhdHRvbyIsInRheCIsInRheGkiLCJ0Y2kiLCJ0ZGsiLCJ0ZWFtIiwidGVjaCIsInRlY2hub2xvZ3kiLCJ0ZW1hc2VrIiwidGVubmlzIiwidGV2YSIsInRoZCIsInRoZWF0ZXIiLCJ0aGVhdHJlIiwidGlhYSIsInRpY2tldHMiLCJ0aWVuZGEiLCJ0aWZmYW55''@;'; + put 'put ''IiwidGlwcyIsInRpcmVzIiwidGlyb2wiLCJ0am1heHgiLCJ0angiLCJ0a21heHgiLCJ0bWFsbCIsInRvZGF5IiwidG9reW8iLCJ0b29scyIsInRvcCIsInRvcmF5IiwidG9zaGliYSIsInRvdGFsIiwidG91cnMiLCJ0b3duIiwidG95b3RhIiwidG95cyIsInRyYWRlIiwidHJhZGluZyIsInRy''@;'; + put 'put ''YWluaW5nIiwidHJhdmVsIiwidHJhdmVsY2hhbm5lbCIsInRyYXZlbGVycyIsInRyYXZlbGVyc2luc3VyYW5jZSIsInRydXN0IiwidHJ2IiwidHViZSIsInR1aSIsInR1bmVzIiwidHVzaHUiLCJ0dnMiLCJ1YmFuayIsInVicyIsInVuaWNvbSIsInVuaXZlcnNpdHkiLCJ1bm8iLCJ1b2wiLCJ1''@;'; + put 'put ''cHMiLCJ2YWNhdGlvbnMiLCJ2YW5hIiwidmFuZ3VhcmQiLCJ2ZWdhcyIsInZlbnR1cmVzIiwidmVyaXNpZ24iLCJ2ZXJzaWNoZXJ1bmciLCJ2ZXQiLCJ2aWFqZXMiLCJ2aWRlbyIsInZpZyIsInZpa2luZyIsInZpbGxhcyIsInZpbiIsInZpcCIsInZpcmdpbiIsInZpc2EiLCJ2aXNpb24iLCJ2''@;'; + put 'put ''aXZhIiwidml2byIsInZsYWFuZGVyZW4iLCJ2b2RrYSIsInZvbGtzd2FnZW4iLCJ2b2x2byIsInZvdGUiLCJ2b3RpbmciLCJ2b3RvIiwidm95YWdlIiwidnVlbG9zIiwid2FsZXMiLCJ3YWxtYXJ0Iiwid2FsdGVyIiwid2FuZyIsIndhbmdnb3UiLCJ3YXRjaCIsIndhdGNoZXMiLCJ3ZWF0aGVy''@;'; + put 'put ''Iiwid2VhdGhlcmNoYW5uZWwiLCJ3ZWJjYW0iLCJ3ZWJlciIsIndlYnNpdGUiLCJ3ZWQiLCJ3ZWRkaW5nIiwid2VpYm8iLCJ3ZWlyIiwid2hvc3dobyIsIndpZW4iLCJ3aWtpIiwid2lsbGlhbWhpbGwiLCJ3aW4iLCJ3aW5kb3dzIiwid2luZSIsIndpbm5lcnMiLCJ3bWUiLCJ3b2x0ZXJza2x1''@;'; + put 'put ''d2VyIiwid29vZHNpZGUiLCJ3b3JrIiwid29ya3MiLCJ3b3JsZCIsIndvdyIsInd0YyIsInd0ZiIsInhib3giLCJ4ZXJveCIsInhmaW5pdHkiLCJ4aWh1YW4iLCJ4aW4iLCJcdTA5MTVcdTA5NDlcdTA5MmUiLCJcdTMwYmJcdTMwZmNcdTMwZWIiLCJcdTRmNWJcdTVjNzEiLCJcdTYxNDhcdTU1''@;'; + put 'put ''ODQiLCJcdTk2YzZcdTU2ZTIiLCJcdTU3MjhcdTdlYmYiLCJcdTU5MjdcdTRmMTdcdTZjN2RcdThmNjYiLCJcdTcwYjlcdTc3MGIiLCJcdTBlMDRcdTBlMmRcdTBlMjEiLCJcdTUxNmJcdTUzNjYiLCJcdTA2NDVcdTA2NDhcdTA2NDJcdTA2MzkiLCJcdTUxNmNcdTc2Y2EiLCJcdTUxNmNcdTUz''@;'; + put 'put ''ZjgiLCJcdTk5OTlcdTY4M2NcdTkxY2NcdTYyYzkiLCJcdTdmNTFcdTdhZDkiLCJcdTc5ZmJcdTUyYTgiLCJcdTYyMTFcdTcyMzFcdTRmNjAiLCJcdTA0M2NcdTA0M2VcdTA0NDFcdTA0M2FcdTA0MzJcdTA0MzAiLCJcdTA0M2FcdTA0MzBcdTA0NDJcdTA0M2VcdTA0M2JcdTA0MzhcdTA0M2Ei''@;'; + put 'put ''LCJcdTA0M2VcdTA0M2RcdTA0M2JcdTA0MzBcdTA0MzlcdTA0M2QiLCJcdTA0NDFcdTA0MzBcdTA0MzlcdTA0NDIiLCJcdTgwNTRcdTkwMWEiLCJcdTA1ZTdcdTA1ZDVcdTA1ZGQiLCJcdTY1ZjZcdTVjMWEiLCJcdTVmYWVcdTUzNWEiLCJcdTZkZTFcdTlhNmNcdTk1MjEiLCJcdTMwZDVcdTMw''@;'; + put 'put ''YTFcdTMwYzNcdTMwYjdcdTMwZTdcdTMwZjMiLCJcdTA0M2VcdTA0NDBcdTA0MzMiLCJcdTA5MjhcdTA5NDdcdTA5MWYiLCJcdTMwYjlcdTMwYzhcdTMwYTIiLCJcdTMwYTJcdTMwZGVcdTMwYmVcdTMwZjMiLCJcdWMwYmNcdWMxMzEiLCJcdTU1NDZcdTY4MDciLCJcdTU1NDZcdTVlOTciLCJc''@;'; + put 'put ''dTU1NDZcdTU3Y2UiLCJcdTA0MzRcdTA0MzVcdTA0NDJcdTA0MzgiLCJcdTMwZGRcdTMwYTRcdTMwZjNcdTMwYzgiLCJcdTY1YjBcdTk1ZmIiLCJcdTVkZTVcdTg4NGMiLCJcdTViYjZcdTk2ZmIiLCJcdTA2NDNcdTA2NDhcdTA2NDUiLCJcdTRlMmRcdTY1ODdcdTdmNTEiLCJcdTRlMmRcdTRm''@;'; + put 'put ''ZTEiLCJcdTVhMzFcdTRlNTAiLCJcdThjMzdcdTZiNGMiLCJcdTk2ZmJcdThhMGFcdTc2YzhcdTc5ZDEiLCJcdThkMmRcdTcyNjkiLCJcdTMwYWZcdTMwZTlcdTMwYTZcdTMwYzkiLCJcdTkwMWFcdThjYTkiLCJcdTdmNTFcdTVlOTciLCJcdTA5MzhcdTA5MDJcdTA5MTdcdTA5MjBcdTA5Mjgi''@;'; + put 'put ''LCJcdTk5MTBcdTUzODUiLCJcdTdmNTFcdTdlZGMiLCJcdTA0M2FcdTA0M2VcdTA0M2MiLCJcdTRlOWFcdTlhNmNcdTkwMGEiLCJcdThiZmFcdTU3ZmFcdTRlOWEiLCJcdTk4ZGZcdTU0YzEiLCJcdTk4ZGVcdTUyMjlcdTZkNjYiLCJcdTYyNGJcdTg4NjgiLCJcdTYyNGJcdTY3M2EiLCJcdTA2''@;'; + put 'put ''MjdcdTA2MzFcdTA2MjdcdTA2NDVcdTA2NDNcdTA2NDgiLCJcdTA2MjdcdTA2NDRcdTA2MzlcdTA2NDRcdTA2NGFcdTA2MjdcdTA2NDYiLCJcdTA2MjdcdTA2MmFcdTA2MzVcdTA2MjdcdTA2NDRcdTA2MjdcdTA2MmEiLCJcdTA2MjhcdTA2MjdcdTA2MzJcdTA2MjdcdTA2MzEiLCJcdTA2Mjdc''@;'; + put 'put ''dTA2MjhcdTA2NDhcdTA2MzhcdTA2MjhcdTA2NGEiLCJcdTA2NDNcdTA2MjdcdTA2MmJcdTA2NDhcdTA2NDRcdTA2NGFcdTA2NDMiLCJcdTA2NDdcdTA2NDVcdTA2MzFcdTA2MjdcdTA2NDciLCJcdWIyZjdcdWNlZjQiLCJcdTY1M2ZcdTVlOWMiLCJcdTA2MzRcdTA2MjhcdTA2NDNcdTA2Mjki''@;'; + put 'put ''LCJcdTA2MjhcdTA2NGFcdTA2MmFcdTA2NDMiLCJcdTA2MzlcdTA2MzFcdTA2MjgiLCJcdTY3M2FcdTY3ODQiLCJcdTdlYzRcdTdlYzdcdTY3M2FcdTY3ODQiLCJcdTUwNjVcdTVlYjciLCJcdTYyZGJcdTgwNTgiLCJcdTA0NDBcdTA0NDNcdTA0NDEiLCJcdTczZTBcdTViOWQiLCJcdTU5Mjdc''@;'; + put 'put ''dTYyZmYiLCJcdTMwN2ZcdTMwOTNcdTMwNmEiLCJcdTMwYjBcdTMwZmNcdTMwYjBcdTMwZWIiLCJcdTRlMTZcdTc1NGMiLCJcdTY2ZjhcdTdjNGQiLCJcdTdmNTFcdTU3NDAiLCJcdWIyZjdcdWIxMzciLCJcdTMwYjNcdTMwZTAiLCJcdTU5MjlcdTRlM2JcdTY1NTkiLCJcdTZlMzhcdTYyMGYi''@;'; + put 'put ''LCJ2ZXJtXHhmNmdlbnNiZXJhdGVyIiwidmVybVx4ZjZnZW5zYmVyYXR1bmciLCJcdTRmMDFcdTRlMWEiLCJcdTRmZTFcdTYwNmYiLCJcdTU2MDlcdTkxY2NcdTU5MjdcdTkxNTJcdTVlOTciLCJcdTU2MDlcdTkxY2MiLCJcdTVlN2ZcdTRlMWMiLCJcdTY1M2ZcdTUyYTEiLCJ4eXoiLCJ5YWNo''@;'; + put 'put ''dHMiLCJ5YWhvbyIsInlhbWF4dW4iLCJ5YW5kZXgiLCJ5b2RvYmFzaGkiLCJ5b2dhIiwieW9rb2hhbWEiLCJ5b3UiLCJ5b3V0dWJlIiwieXVuIiwiemFwcG9zIiwiemFyYSIsInplcm8iLCJ6aXAiLCJ6b25lIiwienVlcmljaCIsImNjLnVhIiwiaW5mLnVhIiwibHRkLnVhIiwiYWRvYmVhZW1j''@;'; + put 'put ''bG91ZC5jb20iLCJhZG9iZWFlbWNsb3VkLm5ldCIsIiouZGV2LmFkb2JlYWVtY2xvdWQuY29tIiwiYmVlcC5wbCIsImJhcnN5LmNhIiwiKi5jb21wdXRlLmVzdGF0ZSIsIiouYWxjZXMubmV0d29yayIsImFsdGVydmlzdGEub3JnIiwiYWx3YXlzZGF0YS5uZXQiLCJjbG91ZGZyb250Lm5ldCIs''@;'; + put 'put ''IiouY29tcHV0ZS5hbWF6b25hd3MuY29tIiwiKi5jb21wdXRlLTEuYW1hem9uYXdzLmNvbSIsIiouY29tcHV0ZS5hbWF6b25hd3MuY29tLmNuIiwidXMtZWFzdC0xLmFtYXpvbmF3cy5jb20iLCJjbi1ub3J0aC0xLmViLmFtYXpvbmF3cy5jb20uY24iLCJjbi1ub3J0aHdlc3QtMS5lYi5hbWF6''@;'; + put 'put ''b25hd3MuY29tLmNuIiwiZWxhc3RpY2JlYW5zdGFsay5jb20iLCJhcC1ub3J0aGVhc3QtMS5lbGFzdGljYmVhbnN0YWxrLmNvbSIsImFwLW5vcnRoZWFzdC0yLmVsYXN0aWNiZWFuc3RhbGsuY29tIiwiYXAtbm9ydGhlYXN0LTMuZWxhc3RpY2JlYW5zdGFsay5jb20iLCJhcC1zb3V0aC0xLmVs''@;'; + put 'put ''YXN0aWNiZWFuc3RhbGsuY29tIiwiYXAtc291dGhlYXN0LTEuZWxhc3RpY2JlYW5zdGFsay5jb20iLCJhcC1zb3V0aGVhc3QtMi5lbGFzdGljYmVhbnN0YWxrLmNvbSIsImNhLWNlbnRyYWwtMS5lbGFzdGljYmVhbnN0YWxrLmNvbSIsImV1LWNlbnRyYWwtMS5lbGFzdGljYmVhbnN0YWxrLmNv''@;'; + put 'put ''bSIsImV1LXdlc3QtMS5lbGFzdGljYmVhbnN0YWxrLmNvbSIsImV1LXdlc3QtMi5lbGFzdGljYmVhbnN0YWxrLmNvbSIsImV1LXdlc3QtMy5lbGFzdGljYmVhbnN0YWxrLmNvbSIsInNhLWVhc3QtMS5lbGFzdGljYmVhbnN0YWxrLmNvbSIsInVzLWVhc3QtMS5lbGFzdGljYmVhbnN0YWxrLmNv''@;'; + put 'put ''bSIsInVzLWVhc3QtMi5lbGFzdGljYmVhbnN0YWxrLmNvbSIsInVzLWdvdi13ZXN0LTEuZWxhc3RpY2JlYW5zdGFsay5jb20iLCJ1cy13ZXN0LTEuZWxhc3RpY2JlYW5zdGFsay5jb20iLCJ1cy13ZXN0LTIuZWxhc3RpY2JlYW5zdGFsay5jb20iLCIqLmVsYi5hbWF6b25hd3MuY29tIiwiKi5l''@;'; + put 'put ''bGIuYW1hem9uYXdzLmNvbS5jbiIsInMzLmFtYXpvbmF3cy5jb20iLCJzMy1hcC1ub3J0aGVhc3QtMS5hbWF6b25hd3MuY29tIiwiczMtYXAtbm9ydGhlYXN0LTIuYW1hem9uYXdzLmNvbSIsInMzLWFwLXNvdXRoLTEuYW1hem9uYXdzLmNvbSIsInMzLWFwLXNvdXRoZWFzdC0xLmFtYXpvbmF3''@;'; + put 'put ''cy5jb20iLCJzMy1hcC1zb3V0aGVhc3QtMi5hbWF6b25hd3MuY29tIiwiczMtY2EtY2VudHJhbC0xLmFtYXpvbmF3cy5jb20iLCJzMy1ldS1jZW50cmFsLTEuYW1hem9uYXdzLmNvbSIsInMzLWV1LXdlc3QtMS5hbWF6b25hd3MuY29tIiwiczMtZXUtd2VzdC0yLmFtYXpvbmF3cy5jb20iLCJz''@;'; + put 'put ''My1ldS13ZXN0LTMuYW1hem9uYXdzLmNvbSIsInMzLWV4dGVybmFsLTEuYW1hem9uYXdzLmNvbSIsInMzLWZpcHMtdXMtZ292LXdlc3QtMS5hbWF6b25hd3MuY29tIiwiczMtc2EtZWFzdC0xLmFtYXpvbmF3cy5jb20iLCJzMy11cy1nb3Ytd2VzdC0xLmFtYXpvbmF3cy5jb20iLCJzMy11cy1l''@;'; + put 'put ''YXN0LTIuYW1hem9uYXdzLmNvbSIsInMzLXVzLXdlc3QtMS5hbWF6b25hd3MuY29tIiwiczMtdXMtd2VzdC0yLmFtYXpvbmF3cy5jb20iLCJzMy5hcC1ub3J0aGVhc3QtMi5hbWF6b25hd3MuY29tIiwiczMuYXAtc291dGgtMS5hbWF6b25hd3MuY29tIiwiczMuY24tbm9ydGgtMS5hbWF6b25h''@;'; + put 'put ''d3MuY29tLmNuIiwiczMuY2EtY2VudHJhbC0xLmFtYXpvbmF3cy5jb20iLCJzMy5ldS1jZW50cmFsLTEuYW1hem9uYXdzLmNvbSIsInMzLmV1LXdlc3QtMi5hbWF6b25hd3MuY29tIiwiczMuZXUtd2VzdC0zLmFtYXpvbmF3cy5jb20iLCJzMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSIsInMz''@;'; + put 'put ''LmR1YWxzdGFjay5hcC1ub3J0aGVhc3QtMS5hbWF6b25hd3MuY29tIiwiczMuZHVhbHN0YWNrLmFwLW5vcnRoZWFzdC0yLmFtYXpvbmF3cy5jb20iLCJzMy5kdWFsc3RhY2suYXAtc291dGgtMS5hbWF6b25hd3MuY29tIiwiczMuZHVhbHN0YWNrLmFwLXNvdXRoZWFzdC0xLmFtYXpvbmF3cy5j''@;'; + put 'put ''b20iLCJzMy5kdWFsc3RhY2suYXAtc291dGhlYXN0LTIuYW1hem9uYXdzLmNvbSIsInMzLmR1YWxzdGFjay5jYS1jZW50cmFsLTEuYW1hem9uYXdzLmNvbSIsInMzLmR1YWxzdGFjay5ldS1jZW50cmFsLTEuYW1hem9uYXdzLmNvbSIsInMzLmR1YWxzdGFjay5ldS13ZXN0LTEuYW1hem9uYXdz''@;'; + put 'put ''LmNvbSIsInMzLmR1YWxzdGFjay5ldS13ZXN0LTIuYW1hem9uYXdzLmNvbSIsInMzLmR1YWxzdGFjay5ldS13ZXN0LTMuYW1hem9uYXdzLmNvbSIsInMzLmR1YWxzdGFjay5zYS1lYXN0LTEuYW1hem9uYXdzLmNvbSIsInMzLmR1YWxzdGFjay51cy1lYXN0LTEuYW1hem9uYXdzLmNvbSIsInMz''@;'; + put 'put ''LmR1YWxzdGFjay51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSIsInMzLXdlYnNpdGUtdXMtZWFzdC0xLmFtYXpvbmF3cy5jb20iLCJzMy13ZWJzaXRlLXVzLXdlc3QtMS5hbWF6b25hd3MuY29tIiwiczMtd2Vic2l0ZS11cy13ZXN0LTIuYW1hem9uYXdzLmNvbSIsInMzLXdlYnNpdGUtYXAtbm9y''@;'; + put 'put ''dGhlYXN0LTEuYW1hem9uYXdzLmNvbSIsInMzLXdlYnNpdGUtYXAtc291dGhlYXN0LTEuYW1hem9uYXdzLmNvbSIsInMzLXdlYnNpdGUtYXAtc291dGhlYXN0LTIuYW1hem9uYXdzLmNvbSIsInMzLXdlYnNpdGUtZXUtd2VzdC0xLmFtYXpvbmF3cy5jb20iLCJzMy13ZWJzaXRlLXNhLWVhc3Qt''@;'; + put 'put ''MS5hbWF6b25hd3MuY29tIiwiczMtd2Vic2l0ZS5hcC1ub3J0aGVhc3QtMi5hbWF6b25hd3MuY29tIiwiczMtd2Vic2l0ZS5hcC1zb3V0aC0xLmFtYXpvbmF3cy5jb20iLCJzMy13ZWJzaXRlLmNhLWNlbnRyYWwtMS5hbWF6b25hd3MuY29tIiwiczMtd2Vic2l0ZS5ldS1jZW50cmFsLTEuYW1h''@;'; + put 'put ''em9uYXdzLmNvbSIsInMzLXdlYnNpdGUuZXUtd2VzdC0yLmFtYXpvbmF3cy5jb20iLCJzMy13ZWJzaXRlLmV1LXdlc3QtMy5hbWF6b25hd3MuY29tIiwiczMtd2Vic2l0ZS51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSIsImFtc3cubmwiLCJ0M2wzcDBydC5uZXQiLCJ0ZWxlLmFtdW5lLm9yZyIs''@;'; + put 'put ''ImFwaWdlZS5pbyIsIm9uLWFwdGlibGUuY29tIiwidXNlci5hc2VpbmV0Lm5lLmpwIiwiZ3YudmMiLCJkLmd2LnZjIiwidXNlci5wYXJ0eS5ldXMiLCJwaW1pZW50YS5vcmciLCJwb2l2cm9uLm9yZyIsInBvdGFnZXIub3JnIiwic3dlZXRwZXBwZXIub3JnIiwibXlhc3VzdG9yLmNvbSIsIm15''@;'; + put 'put ''ZnJpdHoubmV0IiwiKi5hd2Rldi5jYSIsIiouYWR2aXNvci53cyIsImItZGF0YS5pbyIsImJhY2twbGFuZWFwcC5pbyIsImJhbGVuYS1kZXZpY2VzLmNvbSIsImFwcC5iYW56YWljbG91ZC5pbyIsImJldGFpbmFib3guY29tIiwiYm5yLmxhIiwiYmxhY2tiYXVkY2RuLm5ldCIsImJvb21sYS5u''@;'; + put 'put ''ZXQiLCJib3hmdXNlLmlvIiwic3F1YXJlNy5jaCIsImJwbGFjZWQuY29tIiwiYnBsYWNlZC5kZSIsInNxdWFyZTcuZGUiLCJicGxhY2VkLm5ldCIsInNxdWFyZTcubmV0IiwiYnJvd3NlcnNhZmV0eW1hcmsuaW8iLCJ1azAuYmlndi5pbyIsImRoLmJ5dGVtYXJrLmNvLnVrIiwidm0uYnl0ZW1h''@;'; + put 'put ''cmsuY28udWsiLCJteWNkLmV1IiwiY2FycmQuY28iLCJjcmQuY28iLCJ1d3UuYWkiLCJhZS5vcmciLCJhci5jb20iLCJici5jb20iLCJjbi5jb20iLCJjb20uZGUiLCJjb20uc2UiLCJkZS5jb20iLCJldS5jb20iLCJnYi5jb20iLCJnYi5uZXQiLCJodS5jb20iLCJodS5uZXQiLCJqcC5uZXQi''@;'; + put 'put ''LCJqcG4uY29tIiwia3IuY29tIiwibWV4LmNvbSIsIm5vLmNvbSIsInFjLmNvbSIsInJ1LmNvbSIsInNhLmNvbSIsInNlLm5ldCIsInVrLmNvbSIsInVrLm5ldCIsInVzLmNvbSIsInV5LmNvbSIsInphLmJ6IiwiemEuY29tIiwiYWZyaWNhLmNvbSIsImdyLmNvbSIsImluLm5ldCIsInVzLm9y''@;'; + put 'put ''ZyIsImNvLmNvbSIsImMubGEiLCJjZXJ0bWdyLm9yZyIsInhlbmFwcG9uYXp1cmUuY29tIiwiZGlzY291cnNlLmdyb3VwIiwiZGlzY291cnNlLnRlYW0iLCJ2aXJ0dWVlbGRvbWVpbi5ubCIsImNsZXZlcmFwcHMuaW8iLCIqLmxjbC5kZXYiLCIqLnN0Zy5kZXYiLCJjNjYubWUiLCJjbG91ZDY2''@;'; + put 'put ''LndzIiwiY2xvdWQ2Ni56b25lIiwiamRldmNsb3VkLmNvbSIsIndwZGV2Y2xvdWQuY29tIiwiY2xvdWRhY2Nlc3MuaG9zdCIsImZyZWVzaXRlLmhvc3QiLCJjbG91ZGFjY2Vzcy5uZXQiLCJjbG91ZGNvbnRyb2xsZWQuY29tIiwiY2xvdWRjb250cm9sYXBwLmNvbSIsImNsb3VkZXJhLnNpdGUi''@;'; + put 'put ''LCJ0cnljbG91ZGZsYXJlLmNvbSIsIndvcmtlcnMuZGV2Iiwid25leHQuYXBwIiwiY28uY2EiLCIqLm90YXAuY28iLCJjby5jeiIsImMuY2RuNzcub3JnIiwiY2RuNzctc3NsLm5ldCIsInIuY2RuNzcubmV0IiwicnNjLmNkbjc3Lm9yZyIsInNzbC5vcmlnaW4uY2RuNzctc2VjdXJlLm9yZyIs''@;'; + put 'put ''ImNsb3VkbnMuYXNpYSIsImNsb3VkbnMuYml6IiwiY2xvdWRucy5jbHViIiwiY2xvdWRucy5jYyIsImNsb3VkbnMuZXUiLCJjbG91ZG5zLmluIiwiY2xvdWRucy5pbmZvIiwiY2xvdWRucy5vcmciLCJjbG91ZG5zLnBybyIsImNsb3VkbnMucHciLCJjbG91ZG5zLnVzIiwiY2xvdWRlaXR5Lm5l''@;'; + put 'put ''dCIsImNucHkuZ2RuIiwiY28ubmwiLCJjby5ubyIsIndlYmhvc3RpbmcuYmUiLCJob3N0aW5nLWNsdXN0ZXIubmwiLCJhYy5ydSIsImVkdS5ydSIsImdvdi5ydSIsImludC5ydSIsIm1pbC5ydSIsInRlc3QucnUiLCJkeW4uY29zaWRucy5kZSIsImR5bmFtaXNjaGVzLWRucy5kZSIsImRuc3Vw''@;'; + put 'put ''ZGF0ZXIuZGUiLCJpbnRlcm5ldC1kbnMuZGUiLCJsLW8tZy1pLW4uZGUiLCJkeW5hbWljLWRucy5pbmZvIiwiZmVzdGUtaXAubmV0Iiwia254LXNlcnZlci5uZXQiLCJzdGF0aWMtYWNjZXNzLm5ldCIsInJlYWxtLmN6IiwiKi5jcnlwdG9ub21pYy5uZXQiLCJjdXBjYWtlLmlzIiwiKi5jdXN0''@;'; + put 'put ''b21lci1vY2kuY29tIiwiKi5vY2kuY3VzdG9tZXItb2NpLmNvbSIsIioub2NwLmN1c3RvbWVyLW9jaS5jb20iLCIqLm9jcy5jdXN0b21lci1vY2kuY29tIiwiY3lvbi5saW5rIiwiY3lvbi5zaXRlIiwiZGFwbGllLm1lIiwibG9jYWxob3N0LmRhcGxpZS5tZSIsImRhdHRvbG9jYWwuY29tIiwi''@;'; + put 'put ''ZGF0dG9yZWxheS5jb20iLCJkYXR0b3dlYi5jb20iLCJteWRhdHRvLmNvbSIsImRhdHRvbG9jYWwubmV0IiwibXlkYXR0by5uZXQiLCJiaXouZGsiLCJjby5kayIsImZpcm0uZGsiLCJyZWcuZGsiLCJzdG9yZS5kayIsIiouZGFwcHMuZWFydGgiLCIqLmJ6ei5kYXBwcy5lYXJ0aCIsImJ1aWx0''@;'; + put 'put ''d2l0aGRhcmsuY29tIiwiZWRnZXN0YWNrLm1lIiwiZGViaWFuLm5ldCIsImRlZHluLmlvIiwiZG5zaG9tZS5kZSIsIm9ubGluZS50aCIsInNob3AudGgiLCJkcmF5ZGRucy5jb20iLCJkcmVhbWhvc3RlcnMuY29tIiwibXlkcm9iby5jb20iLCJkcnVkLmlvIiwiZHJ1ZC51cyIsImR1Y2tkbnMu''@;'; + put 'put ''b3JnIiwiZHkuZmkiLCJ0dW5rLm9yZyIsImR5bmRucy1hdC1ob21lLmNvbSIsImR5bmRucy1hdC13b3JrLmNvbSIsImR5bmRucy1ibG9nLmNvbSIsImR5bmRucy1mcmVlLmNvbSIsImR5bmRucy1ob21lLmNvbSIsImR5bmRucy1pcC5jb20iLCJkeW5kbnMtbWFpbC5jb20iLCJkeW5kbnMtb2Zm''@;'; + put 'put ''aWNlLmNvbSIsImR5bmRucy1waWNzLmNvbSIsImR5bmRucy1yZW1vdGUuY29tIiwiZHluZG5zLXNlcnZlci5jb20iLCJkeW5kbnMtd2ViLmNvbSIsImR5bmRucy13aWtpLmNvbSIsImR5bmRucy13b3JrLmNvbSIsImR5bmRucy5iaXoiLCJkeW5kbnMuaW5mbyIsImR5bmRucy5vcmciLCJkeW5k''@;'; + put 'put ''bnMudHYiLCJhdC1iYW5kLWNhbXAubmV0IiwiYXRoLmN4IiwiYmFycmVsLW9mLWtub3dsZWRnZS5pbmZvIiwiYmFycmVsbC1vZi1rbm93bGVkZ2UuaW5mbyIsImJldHRlci10aGFuLnR2IiwiYmxvZ2Rucy5jb20iLCJibG9nZG5zLm5ldCIsImJsb2dkbnMub3JnIiwiYmxvZ3NpdGUub3JnIiwi''@;'; + put 'put ''Ym9sZGx5Z29pbmdub3doZXJlLm9yZyIsImJyb2tlLWl0Lm5ldCIsImJ1eXNob3VzZXMubmV0IiwiY2VjaGlyZS5jb20iLCJkbnNhbGlhcy5jb20iLCJkbnNhbGlhcy5uZXQiLCJkbnNhbGlhcy5vcmciLCJkbnNkb2pvLmNvbSIsImRuc2Rvam8ubmV0IiwiZG5zZG9qby5vcmciLCJkb2VzLWl0''@;'; + put 'put ''Lm5ldCIsImRvZXNudGV4aXN0LmNvbSIsImRvZXNudGV4aXN0Lm9yZyIsImRvbnRleGlzdC5jb20iLCJkb250ZXhpc3QubmV0IiwiZG9udGV4aXN0Lm9yZyIsImRvb21kbnMuY29tIiwiZG9vbWRucy5vcmciLCJkdnJkbnMub3JnIiwiZHluLW8tc2F1ci5jb20iLCJkeW5hbGlhcy5jb20iLCJk''@;'; + put 'put ''eW5hbGlhcy5uZXQiLCJkeW5hbGlhcy5vcmciLCJkeW5hdGhvbWUubmV0IiwiZHluZG5zLndzIiwiZW5kb2ZpbnRlcm5ldC5uZXQiLCJlbmRvZmludGVybmV0Lm9yZyIsImVuZG9mdGhlaW50ZXJuZXQub3JnIiwiZXN0LWEtbGEtbWFpc29uLmNvbSIsImVzdC1hLWxhLW1hc2lvbi5jb20iLCJl''@;'; + put 'put ''c3QtbGUtcGF0cm9uLmNvbSIsImVzdC1tb24tYmxvZ3VldXIuY29tIiwiZm9yLWJldHRlci5iaXoiLCJmb3ItbW9yZS5iaXoiLCJmb3Itb3VyLmluZm8iLCJmb3Itc29tZS5iaXoiLCJmb3ItdGhlLmJpeiIsImZvcmdvdC5oZXIubmFtZSIsImZvcmdvdC5oaXMubmFtZSIsImZyb20tYWsuY29t''@;'; + put 'put ''IiwiZnJvbS1hbC5jb20iLCJmcm9tLWFyLmNvbSIsImZyb20tYXoubmV0IiwiZnJvbS1jYS5jb20iLCJmcm9tLWNvLm5ldCIsImZyb20tY3QuY29tIiwiZnJvbS1kYy5jb20iLCJmcm9tLWRlLmNvbSIsImZyb20tZmwuY29tIiwiZnJvbS1nYS5jb20iLCJmcm9tLWhpLmNvbSIsImZyb20taWEu''@;'; + put 'put ''Y29tIiwiZnJvbS1pZC5jb20iLCJmcm9tLWlsLmNvbSIsImZyb20taW4uY29tIiwiZnJvbS1rcy5jb20iLCJmcm9tLWt5LmNvbSIsImZyb20tbGEubmV0IiwiZnJvbS1tYS5jb20iLCJmcm9tLW1kLmNvbSIsImZyb20tbWUub3JnIiwiZnJvbS1taS5jb20iLCJmcm9tLW1uLmNvbSIsImZyb20t''@;'; + put 'put ''bW8uY29tIiwiZnJvbS1tcy5jb20iLCJmcm9tLW10LmNvbSIsImZyb20tbmMuY29tIiwiZnJvbS1uZC5jb20iLCJmcm9tLW5lLmNvbSIsImZyb20tbmguY29tIiwiZnJvbS1uai5jb20iLCJmcm9tLW5tLmNvbSIsImZyb20tbnYuY29tIiwiZnJvbS1ueS5uZXQiLCJmcm9tLW9oLmNvbSIsImZy''@;'; + put 'put ''b20tb2suY29tIiwiZnJvbS1vci5jb20iLCJmcm9tLXBhLmNvbSIsImZyb20tcHIuY29tIiwiZnJvbS1yaS5jb20iLCJmcm9tLXNjLmNvbSIsImZyb20tc2QuY29tIiwiZnJvbS10bi5jb20iLCJmcm9tLXR4LmNvbSIsImZyb20tdXQuY29tIiwiZnJvbS12YS5jb20iLCJmcm9tLXZ0LmNvbSIs''@;'; + put 'put ''ImZyb20td2EuY29tIiwiZnJvbS13aS5jb20iLCJmcm9tLXd2LmNvbSIsImZyb20td3kuY29tIiwiZnRwYWNjZXNzLmNjIiwiZnVldHRlcnRkYXNuZXR6LmRlIiwiZ2FtZS1ob3N0Lm9yZyIsImdhbWUtc2VydmVyLmNjIiwiZ2V0bXlpcC5jb20iLCJnZXRzLWl0Lm5ldCIsImdvLmR5bmRucy5v''@;'; + put 'put ''cmciLCJnb3RkbnMuY29tIiwiZ290ZG5zLm9yZyIsImdyb2tzLXRoZS5pbmZvIiwiZ3Jva3MtdGhpcy5pbmZvIiwiaGFtLXJhZGlvLW9wLm5ldCIsImhlcmUtZm9yLW1vcmUuaW5mbyIsImhvYmJ5LXNpdGUuY29tIiwiaG9iYnktc2l0ZS5vcmciLCJob21lLmR5bmRucy5vcmciLCJob21lZG5z''@;'; + put 'put ''Lm9yZyIsImhvbWVmdHAubmV0IiwiaG9tZWZ0cC5vcmciLCJob21laXAubmV0IiwiaG9tZWxpbnV4LmNvbSIsImhvbWVsaW51eC5uZXQiLCJob21lbGludXgub3JnIiwiaG9tZXVuaXguY29tIiwiaG9tZXVuaXgubmV0IiwiaG9tZXVuaXgub3JnIiwiaWFtYWxsYW1hLmNvbSIsImluLXRoZS1i''@;'; + put 'put ''YW5kLm5ldCIsImlzLWEtYW5hcmNoaXN0LmNvbSIsImlzLWEtYmxvZ2dlci5jb20iLCJpcy1hLWJvb2trZWVwZXIuY29tIiwiaXMtYS1icnVpbnNmYW4ub3JnIiwiaXMtYS1idWxscy1mYW4uY29tIiwiaXMtYS1jYW5kaWRhdGUub3JnIiwiaXMtYS1jYXRlcmVyLmNvbSIsImlzLWEtY2VsdGlj''@;'; + put 'put ''c2Zhbi5vcmciLCJpcy1hLWNoZWYuY29tIiwiaXMtYS1jaGVmLm5ldCIsImlzLWEtY2hlZi5vcmciLCJpcy1hLWNvbnNlcnZhdGl2ZS5jb20iLCJpcy1hLWNwYS5jb20iLCJpcy1hLWN1YmljbGUtc2xhdmUuY29tIiwiaXMtYS1kZW1vY3JhdC5jb20iLCJpcy1hLWRlc2lnbmVyLmNvbSIsImlz''@;'; + put 'put ''LWEtZG9jdG9yLmNvbSIsImlzLWEtZmluYW5jaWFsYWR2aXNvci5jb20iLCJpcy1hLWdlZWsuY29tIiwiaXMtYS1nZWVrLm5ldCIsImlzLWEtZ2Vlay5vcmciLCJpcy1hLWdyZWVuLmNvbSIsImlzLWEtZ3VydS5jb20iLCJpcy1hLWhhcmQtd29ya2VyLmNvbSIsImlzLWEtaHVudGVyLmNvbSIs''@;'; + put 'put ''ImlzLWEta25pZ2h0Lm9yZyIsImlzLWEtbGFuZHNjYXBlci5jb20iLCJpcy1hLWxhd3llci5jb20iLCJpcy1hLWxpYmVyYWwuY29tIiwiaXMtYS1saWJlcnRhcmlhbi5jb20iLCJpcy1hLWxpbnV4LXVzZXIub3JnIiwiaXMtYS1sbGFtYS5jb20iLCJpcy1hLW11c2ljaWFuLmNvbSIsImlzLWEt''@;'; + put 'put ''bmFzY2FyZmFuLmNvbSIsImlzLWEtbnVyc2UuY29tIiwiaXMtYS1wYWludGVyLmNvbSIsImlzLWEtcGF0c2Zhbi5vcmciLCJpcy1hLXBlcnNvbmFsdHJhaW5lci5jb20iLCJpcy1hLXBob3RvZ3JhcGhlci5jb20iLCJpcy1hLXBsYXllci5jb20iLCJpcy1hLXJlcHVibGljYW4uY29tIiwiaXMt''@;'; + put 'put ''YS1yb2Nrc3Rhci5jb20iLCJpcy1hLXNvY2lhbGlzdC5jb20iLCJpcy1hLXNveGZhbi5vcmciLCJpcy1hLXN0dWRlbnQuY29tIiwiaXMtYS10ZWFjaGVyLmNvbSIsImlzLWEtdGVjaGllLmNvbSIsImlzLWEtdGhlcmFwaXN0LmNvbSIsImlzLWFuLWFjY291bnRhbnQuY29tIiwiaXMtYW4tYWN0''@;'; + put 'put ''b3IuY29tIiwiaXMtYW4tYWN0cmVzcy5jb20iLCJpcy1hbi1hbmFyY2hpc3QuY29tIiwiaXMtYW4tYXJ0aXN0LmNvbSIsImlzLWFuLWVuZ2luZWVyLmNvbSIsImlzLWFuLWVudGVydGFpbmVyLmNvbSIsImlzLWJ5LnVzIiwiaXMtY2VydGlmaWVkLmNvbSIsImlzLWZvdW5kLm9yZyIsImlzLWdv''@;'; + put 'put ''bmUuY29tIiwiaXMtaW50by1hbmltZS5jb20iLCJpcy1pbnRvLWNhcnMuY29tIiwiaXMtaW50by1jYXJ0b29ucy5jb20iLCJpcy1pbnRvLWdhbWVzLmNvbSIsImlzLWxlZXQuY29tIiwiaXMtbG9zdC5vcmciLCJpcy1ub3QtY2VydGlmaWVkLmNvbSIsImlzLXNhdmVkLm9yZyIsImlzLXNsaWNr''@;'; + put 'put ''LmNvbSIsImlzLXViZXJsZWV0LmNvbSIsImlzLXZlcnktYmFkLm9yZyIsImlzLXZlcnktZXZpbC5vcmciLCJpcy12ZXJ5LWdvb2Qub3JnIiwiaXMtdmVyeS1uaWNlLm9yZyIsImlzLXZlcnktc3dlZXQub3JnIiwiaXMtd2l0aC10aGViYW5kLmNvbSIsImlzYS1nZWVrLmNvbSIsImlzYS1nZWVr''@;'; + put 'put ''Lm5ldCIsImlzYS1nZWVrLm9yZyIsImlzYS1ob2NrZXludXQuY29tIiwiaXNzbWFydGVydGhhbnlvdS5jb20iLCJpc3RlaW5nZWVrLmRlIiwiaXN0bWVpbi5kZSIsImtpY2tzLWFzcy5uZXQiLCJraWNrcy1hc3Mub3JnIiwia25vd3NpdGFsbC5pbmZvIiwibGFuZC00LXNhbGUudXMiLCJsZWJ0''@;'; + put 'put ''aW1uZXR6LmRlIiwibGVpdHVuZ3Nlbi5kZSIsImxpa2VzLXBpZS5jb20iLCJsaWtlc2NhbmR5LmNvbSIsIm1lcnNlaW5lLm51IiwibWluZS5udSIsIm1pc2NvbmZ1c2VkLm9yZyIsIm15cGV0cy53cyIsIm15cGhvdG9zLmNjIiwibmVhdC11cmwuY29tIiwib2ZmaWNlLW9uLXRoZS5uZXQiLCJv''@;'; + put 'put ''bi10aGUtd2ViLnR2IiwicG9kem9uZS5uZXQiLCJwb2R6b25lLm9yZyIsInJlYWRteWJsb2cub3JnIiwic2F2ZXMtdGhlLXdoYWxlcy5jb20iLCJzY3JhcHBlci1zaXRlLm5ldCIsInNjcmFwcGluZy5jYyIsInNlbGZpcC5iaXoiLCJzZWxmaXAuY29tIiwic2VsZmlwLmluZm8iLCJzZWxmaXAu''@;'; + put 'put ''bmV0Iiwic2VsZmlwLm9yZyIsInNlbGxzLWZvci1sZXNzLmNvbSIsInNlbGxzLWZvci11LmNvbSIsInNlbGxzLWl0Lm5ldCIsInNlbGxzeW91cmhvbWUub3JnIiwic2VydmViYnMuY29tIiwic2VydmViYnMubmV0Iiwic2VydmViYnMub3JnIiwic2VydmVmdHAubmV0Iiwic2VydmVmdHAub3Jn''@;'; + put 'put ''Iiwic2VydmVnYW1lLm9yZyIsInNoYWNrbmV0Lm51Iiwic2ltcGxlLXVybC5jb20iLCJzcGFjZS10by1yZW50LmNvbSIsInN0dWZmLTQtc2FsZS5vcmciLCJzdHVmZi00LXNhbGUudXMiLCJ0ZWFjaGVzLXlvZ2EuY29tIiwidGhydWhlcmUubmV0IiwidHJhZXVtdGdlcmFkZS5kZSIsIndlYmhv''@;'; + put 'put ''cC5iaXoiLCJ3ZWJob3AuaW5mbyIsIndlYmhvcC5uZXQiLCJ3ZWJob3Aub3JnIiwid29yc2UtdGhhbi50diIsIndyaXRlc3RoaXNibG9nLmNvbSIsImRkbnNzLmRlIiwiZHluLmRkbnNzLmRlIiwiZHluZG5zLmRkbnNzLmRlIiwiZHluZG5zMS5kZSIsImR5bi1pcDI0LmRlIiwiaG9tZS13ZWJz''@;'; + put 'put ''ZXJ2ZXIuZGUiLCJkeW4uaG9tZS13ZWJzZXJ2ZXIuZGUiLCJteWhvbWUtc2VydmVyLmRlIiwiZGRuc3Mub3JnIiwiZGVmaW5pbWEubmV0IiwiZGVmaW5pbWEuaW8iLCJiY2kuZG5zdHJhY2UucHJvIiwiZGRuc2ZyZWUuY29tIiwiZGRuc2dlZWsuY29tIiwiZ2lpemUuY29tIiwiZ2xlZXplLmNv''@;'; + put 'put ''bSIsImtvem93LmNvbSIsImxvc2V5b3VyaXAuY29tIiwib29ndXkuY29tIiwidGhld29ya3BjLmNvbSIsImNhc2FjYW0ubmV0IiwiZHludS5uZXQiLCJhY2Nlc3NjYW0ub3JnIiwiY2FtZHZyLm9yZyIsImZyZWVkZG5zLm9yZyIsIm15d2lyZS5vcmciLCJ3ZWJyZWRpcmVjdC5vcmciLCJteWRk''@;'; + put 'put ''bnMucm9ja3MiLCJibG9nc2l0ZS54eXoiLCJkeW52Ni5uZXQiLCJlNC5jeiIsImVuLXJvb3QuZnIiLCJteXR1bGVhcC5jb20iLCJvbnJlZC5vbmUiLCJzdGFnaW5nLm9ucmVkLm9uZSIsImVub25pYy5pbyIsImN1c3RvbWVyLmVub25pYy5pbyIsImV1Lm9yZyIsImFsLmV1Lm9yZyIsImFzc28u''@;'; + put 'put ''ZXUub3JnIiwiYXQuZXUub3JnIiwiYXUuZXUub3JnIiwiYmUuZXUub3JnIiwiYmcuZXUub3JnIiwiY2EuZXUub3JnIiwiY2QuZXUub3JnIiwiY2guZXUub3JnIiwiY24uZXUub3JnIiwiY3kuZXUub3JnIiwiY3ouZXUub3JnIiwiZGUuZXUub3JnIiwiZGsuZXUub3JnIiwiZWR1LmV1Lm9yZyIs''@;'; + put 'put ''ImVlLmV1Lm9yZyIsImVzLmV1Lm9yZyIsImZpLmV1Lm9yZyIsImZyLmV1Lm9yZyIsImdyLmV1Lm9yZyIsImhyLmV1Lm9yZyIsImh1LmV1Lm9yZyIsImllLmV1Lm9yZyIsImlsLmV1Lm9yZyIsImluLmV1Lm9yZyIsImludC5ldS5vcmciLCJpcy5ldS5vcmciLCJpdC5ldS5vcmciLCJqcC5ldS5v''@;'; + put 'put ''cmciLCJrci5ldS5vcmciLCJsdC5ldS5vcmciLCJsdS5ldS5vcmciLCJsdi5ldS5vcmciLCJtYy5ldS5vcmciLCJtZS5ldS5vcmciLCJtay5ldS5vcmciLCJtdC5ldS5vcmciLCJteS5ldS5vcmciLCJuZXQuZXUub3JnIiwibmcuZXUub3JnIiwibmwuZXUub3JnIiwibm8uZXUub3JnIiwibnou''@;'; + put 'put ''ZXUub3JnIiwicGFyaXMuZXUub3JnIiwicGwuZXUub3JnIiwicHQuZXUub3JnIiwicS1hLmV1Lm9yZyIsInJvLmV1Lm9yZyIsInJ1LmV1Lm9yZyIsInNlLmV1Lm9yZyIsInNpLmV1Lm9yZyIsInNrLmV1Lm9yZyIsInRyLmV1Lm9yZyIsInVrLmV1Lm9yZyIsInVzLmV1Lm9yZyIsImV1LTEuZXZl''@;'; + put 'put ''bm5vZGUuY29tIiwiZXUtMi5ldmVubm9kZS5jb20iLCJldS0zLmV2ZW5ub2RlLmNvbSIsImV1LTQuZXZlbm5vZGUuY29tIiwidXMtMS5ldmVubm9kZS5jb20iLCJ1cy0yLmV2ZW5ub2RlLmNvbSIsInVzLTMuZXZlbm5vZGUuY29tIiwidXMtNC5ldmVubm9kZS5jb20iLCJ0d21haWwuY2MiLCJ0''@;'; + put 'put ''d21haWwubmV0IiwidHdtYWlsLm9yZyIsIm15bWFpbGVyLmNvbS50dyIsInVybC50dyIsImFwcHMuZmJzYnguY29tIiwicnUubmV0IiwiYWR5Z2V5YS5ydSIsImJhc2hraXJpYS5ydSIsImJpci5ydSIsImNiZy5ydSIsImNvbS5ydSIsImRhZ2VzdGFuLnJ1IiwiZ3Jvem55LnJ1Iiwia2FsbXlr''@;'; + put 'put ''aWEucnUiLCJrdXN0YW5haS5ydSIsIm1hcmluZS5ydSIsIm1vcmRvdmlhLnJ1IiwibXNrLnJ1IiwibXl0aXMucnUiLCJuYWxjaGlrLnJ1Iiwibm92LnJ1IiwicHlhdGlnb3Jzay5ydSIsInNwYi5ydSIsInZsYWRpa2F2a2F6LnJ1IiwidmxhZGltaXIucnUiLCJhYmtoYXppYS5zdSIsImFkeWdl''@;'; + put 'put ''eWEuc3UiLCJha3R5dWJpbnNrLnN1IiwiYXJraGFuZ2Vsc2suc3UiLCJhcm1lbmlhLnN1IiwiYXNoZ2FiYWQuc3UiLCJhemVyYmFpamFuLnN1IiwiYmFsYXNob3Yuc3UiLCJiYXNoa2lyaWEuc3UiLCJicnlhbnNrLnN1IiwiYnVraGFyYS5zdSIsImNoaW1rZW50LnN1IiwiZGFnZXN0YW4uc3Ui''@;'; + put 'put ''LCJlYXN0LWthemFraHN0YW4uc3UiLCJleG5ldC5zdSIsImdlb3JnaWEuc3UiLCJncm96bnkuc3UiLCJpdmFub3ZvLnN1IiwiamFtYnlsLnN1Iiwia2FsbXlraWEuc3UiLCJrYWx1Z2Euc3UiLCJrYXJhY29sLnN1Iiwia2FyYWdhbmRhLnN1Iiwia2FyZWxpYS5zdSIsImtoYWthc3NpYS5zdSIs''@;'; + put 'put ''ImtyYXNub2Rhci5zdSIsImt1cmdhbi5zdSIsImt1c3RhbmFpLnN1IiwibGVudWcuc3UiLCJtYW5neXNobGFrLnN1IiwibW9yZG92aWEuc3UiLCJtc2suc3UiLCJtdXJtYW5zay5zdSIsIm5hbGNoaWsuc3UiLCJuYXZvaS5zdSIsIm5vcnRoLWthemFraHN0YW4uc3UiLCJub3Yuc3UiLCJvYm5p''@;'; + put 'put ''bnNrLnN1IiwicGVuemEuc3UiLCJwb2tyb3Zzay5zdSIsInNvY2hpLnN1Iiwic3BiLnN1IiwidGFzaGtlbnQuc3UiLCJ0ZXJtZXouc3UiLCJ0b2dsaWF0dGkuc3UiLCJ0cm9pdHNrLnN1IiwidHNlbGlub2dyYWQuc3UiLCJ0dWxhLnN1IiwidHV2YS5zdSIsInZsYWRpa2F2a2F6LnN1Iiwidmxh''@;'; + put 'put ''ZGltaXIuc3UiLCJ2b2xvZ2RhLnN1IiwiY2hhbm5lbHNkdnIubmV0IiwidS5jaGFubmVsc2R2ci5uZXQiLCJmYXN0bHktdGVycmFyaXVtLmNvbSIsImZhc3RseWxiLm5ldCIsIm1hcC5mYXN0bHlsYi5uZXQiLCJmcmVldGxzLmZhc3RseS5uZXQiLCJtYXAuZmFzdGx5Lm5ldCIsImEucHJvZC5m''@;'; + put 'put ''YXN0bHkubmV0IiwiZ2xvYmFsLnByb2QuZmFzdGx5Lm5ldCIsImEuc3NsLmZhc3RseS5uZXQiLCJiLnNzbC5mYXN0bHkubmV0IiwiZ2xvYmFsLnNzbC5mYXN0bHkubmV0IiwiZmFzdHBhbmVsLmRpcmVjdCIsImZhc3R2cHMtc2VydmVyLmNvbSIsImZoYXBwLnh5eiIsImZlZG9yYWluZnJhY2xv''@;'; + put 'put ''dWQub3JnIiwiZmVkb3JhcGVvcGxlLm9yZyIsImNsb3VkLmZlZG9yYXByb2plY3Qub3JnIiwiYXBwLm9zLmZlZG9yYXByb2plY3Qub3JnIiwiYXBwLm9zLnN0Zy5mZWRvcmFwcm9qZWN0Lm9yZyIsIm15ZG9iaXNzLmNvbSIsImZpbGVnZWFyLm1lIiwiZmlsZWdlYXItYXUubWUiLCJmaWxlZ2Vh''@;'; + put 'put ''ci1kZS5tZSIsImZpbGVnZWFyLWdiLm1lIiwiZmlsZWdlYXItaWUubWUiLCJmaWxlZ2Vhci1qcC5tZSIsImZpbGVnZWFyLXNnLm1lIiwiZmlyZWJhc2VhcHAuY29tIiwiZmx5bm5odWIuY29tIiwiZmx5bm5ob3N0aW5nLm5ldCIsIjBlLnZjIiwiZnJlZWJveC1vcy5jb20iLCJmcmVlYm94b3Mu''@;'; + put 'put ''Y29tIiwiZmJ4LW9zLmZyIiwiZmJ4b3MuZnIiLCJmcmVlYm94LW9zLmZyIiwiZnJlZWJveG9zLmZyIiwiZnJlZWRlc2t0b3Aub3JnIiwiKi5mdXR1cmVjbXMuYXQiLCIqLmV4LmZ1dHVyZWNtcy5hdCIsIiouaW4uZnV0dXJlY21zLmF0IiwiZnV0dXJlaG9zdGluZy5hdCIsImZ1dHVyZW1haWxp''@;'; + put 'put ''bmcuYXQiLCIqLmV4Lm9ydHNpbmZvLmF0IiwiKi5rdW5kZW4ub3J0c2luZm8uYXQiLCIqLnN0YXRpY3MuY2xvdWQiLCJzZXJ2aWNlLmdvdi51ayIsImdlaGlybi5uZS5qcCIsInVzZXJjb250ZW50LmpwIiwiZ2VudGFwcHMuY29tIiwibGFiLm1zIiwiZ2l0aHViLmlvIiwiZ2l0aHVidXNlcmNv''@;'; + put 'put ''bnRlbnQuY29tIiwiZ2l0bGFiLmlvIiwiZ2xpdGNoLm1lIiwibG9saXBvcC5pbyIsImNsb3VkYXBwcy5kaWdpdGFsIiwibG9uZG9uLmNsb3VkYXBwcy5kaWdpdGFsIiwiaG9tZW9mZmljZS5nb3YudWsiLCJyby5pbSIsInNob3Aucm8iLCJnb2lwLmRlIiwicnVuLmFwcCIsImEucnVuLmFwcCIs''@;'; + put 'put ''IndlYi5hcHAiLCIqLjBlbW0uY29tIiwiYXBwc3BvdC5jb20iLCIqLnIuYXBwc3BvdC5jb20iLCJibG9nc3BvdC5hZSIsImJsb2dzcG90LmFsIiwiYmxvZ3Nwb3QuYW0iLCJibG9nc3BvdC5iYSIsImJsb2dzcG90LmJlIiwiYmxvZ3Nwb3QuYmciLCJibG9nc3BvdC5iaiIsImJsb2dzcG90LmNh''@;'; + put 'put ''IiwiYmxvZ3Nwb3QuY2YiLCJibG9nc3BvdC5jaCIsImJsb2dzcG90LmNsIiwiYmxvZ3Nwb3QuY28uYXQiLCJibG9nc3BvdC5jby5pZCIsImJsb2dzcG90LmNvLmlsIiwiYmxvZ3Nwb3QuY28ua2UiLCJibG9nc3BvdC5jby5ueiIsImJsb2dzcG90LmNvLnVrIiwiYmxvZ3Nwb3QuY28uemEiLCJi''@;'; + put 'put ''bG9nc3BvdC5jb20iLCJibG9nc3BvdC5jb20uYXIiLCJibG9nc3BvdC5jb20uYXUiLCJibG9nc3BvdC5jb20uYnIiLCJibG9nc3BvdC5jb20uYnkiLCJibG9nc3BvdC5jb20uY28iLCJibG9nc3BvdC5jb20uY3kiLCJibG9nc3BvdC5jb20uZWUiLCJibG9nc3BvdC5jb20uZWciLCJibG9nc3Bv''@;'; + put 'put ''dC5jb20uZXMiLCJibG9nc3BvdC5jb20ubXQiLCJibG9nc3BvdC5jb20ubmciLCJibG9nc3BvdC5jb20udHIiLCJibG9nc3BvdC5jb20udXkiLCJibG9nc3BvdC5jdiIsImJsb2dzcG90LmN6IiwiYmxvZ3Nwb3QuZGUiLCJibG9nc3BvdC5kayIsImJsb2dzcG90LmZpIiwiYmxvZ3Nwb3QuZnIi''@;'; + put 'put ''LCJibG9nc3BvdC5nciIsImJsb2dzcG90LmhrIiwiYmxvZ3Nwb3QuaHIiLCJibG9nc3BvdC5odSIsImJsb2dzcG90LmllIiwiYmxvZ3Nwb3QuaW4iLCJibG9nc3BvdC5pcyIsImJsb2dzcG90Lml0IiwiYmxvZ3Nwb3QuanAiLCJibG9nc3BvdC5rciIsImJsb2dzcG90LmxpIiwiYmxvZ3Nwb3Qu''@;'; + put 'put ''bHQiLCJibG9nc3BvdC5sdSIsImJsb2dzcG90Lm1kIiwiYmxvZ3Nwb3QubWsiLCJibG9nc3BvdC5tciIsImJsb2dzcG90Lm14IiwiYmxvZ3Nwb3QubXkiLCJibG9nc3BvdC5ubCIsImJsb2dzcG90Lm5vIiwiYmxvZ3Nwb3QucGUiLCJibG9nc3BvdC5wdCIsImJsb2dzcG90LnFhIiwiYmxvZ3Nw''@;'; + put 'put ''b3QucmUiLCJibG9nc3BvdC5ybyIsImJsb2dzcG90LnJzIiwiYmxvZ3Nwb3QucnUiLCJibG9nc3BvdC5zZSIsImJsb2dzcG90LnNnIiwiYmxvZ3Nwb3Quc2kiLCJibG9nc3BvdC5zayIsImJsb2dzcG90LnNuIiwiYmxvZ3Nwb3QudGQiLCJibG9nc3BvdC50dyIsImJsb2dzcG90LnVnIiwiYmxv''@;'; + put 'put ''Z3Nwb3Qudm4iLCJjbG91ZGZ1bmN0aW9ucy5uZXQiLCJjbG91ZC5nb29nIiwiY29kZXNwb3QuY29tIiwiZ29vZ2xlYXBpcy5jb20iLCJnb29nbGVjb2RlLmNvbSIsInBhZ2VzcGVlZG1vYmlsaXplci5jb20iLCJwdWJsaXNocHJveHkuY29tIiwid2l0aGdvb2dsZS5jb20iLCJ3aXRoeW91dHVi''@;'; + put 'put ''ZS5jb20iLCJhd3NtcHBsLmNvbSIsImZpbi5jaSIsImZyZWUuaHIiLCJjYWEubGkiLCJ1YS5ycyIsImNvbmYuc2UiLCJocy56b25lIiwiaHMucnVuIiwiaGFzaGJhbmcuc2giLCJoYXN1cmEuYXBwIiwiaGFzdXJhLWFwcC5pbyIsImhlcGZvcmdlLm9yZyIsImhlcm9rdWFwcC5jb20iLCJoZXJv''@;'; + put 'put ''a3Vzc2wuY29tIiwibXlyYXZlbmRiLmNvbSIsInJhdmVuZGIuY29tbXVuaXR5IiwicmF2ZW5kYi5tZSIsImRldmVsb3BtZW50LnJ1biIsInJhdmVuZGIucnVuIiwiYnBsLmJpeiIsIm9yeC5iaXoiLCJuZy5jaXR5IiwiYml6LmdsIiwibmcuaW5rIiwiY29sLm5nIiwiZmlybS5uZyIsImdlbi5u''@;'; + put 'put ''ZyIsImx0ZC5uZyIsIm5nby5uZyIsIm5nLnNjaG9vbCIsInNjaC5zbyIsImhceGU0a2tpbmVuLmZpIiwiKi5tb29uc2NhbGUuaW8iLCJtb29uc2NhbGUubmV0IiwiaWtpLmZpIiwiZHluLWJlcmxpbi5kZSIsImluLWJlcmxpbi5kZSIsImluLWJyYi5kZSIsImluLWJ1dHRlci5kZSIsImluLWRz''@;'; + put 'put ''bC5kZSIsImluLWRzbC5uZXQiLCJpbi1kc2wub3JnIiwiaW4tdnBuLmRlIiwiaW4tdnBuLm5ldCIsImluLXZwbi5vcmciLCJiaXouYXQiLCJpbmZvLmF0IiwiaW5mby5jeCIsImFjLmxlZy5iciIsImFsLmxlZy5iciIsImFtLmxlZy5iciIsImFwLmxlZy5iciIsImJhLmxlZy5iciIsImNlLmxl''@;'; + put 'put ''Zy5iciIsImRmLmxlZy5iciIsImVzLmxlZy5iciIsImdvLmxlZy5iciIsIm1hLmxlZy5iciIsIm1nLmxlZy5iciIsIm1zLmxlZy5iciIsIm10LmxlZy5iciIsInBhLmxlZy5iciIsInBiLmxlZy5iciIsInBlLmxlZy5iciIsInBpLmxlZy5iciIsInByLmxlZy5iciIsInJqLmxlZy5iciIsInJu''@;'; + put 'put ''LmxlZy5iciIsInJvLmxlZy5iciIsInJyLmxlZy5iciIsInJzLmxlZy5iciIsInNjLmxlZy5iciIsInNlLmxlZy5iciIsInNwLmxlZy5iciIsInRvLmxlZy5iciIsInBpeG9saW5vLmNvbSIsImlwaWZvbnkubmV0IiwibWVpbi1pc2Vydi5kZSIsInRlc3QtaXNlcnYuZGUiLCJpc2Vydi5kZXYi''@;'; + put 'put ''LCJpb2JiLm5ldCIsIm15amluby5ydSIsIiouaG9zdGluZy5teWppbm8ucnUiLCIqLmxhbmRpbmcubXlqaW5vLnJ1IiwiKi5zcGVjdHJ1bS5teWppbm8ucnUiLCIqLnZwcy5teWppbm8ucnUiLCIqLnRyaXRvbi56b25lIiwiKi5jbnMuam95ZW50LmNvbSIsImpzLm9yZyIsImthYXMuZ2ciLCJr''@;'; + put 'put ''aHBsYXkubmwiLCJrZXltYWNoaW5lLmRlIiwia2luZ2hvc3QubmV0IiwidW5pNS5uZXQiLCJrbmlnaHRwb2ludC5zeXN0ZW1zIiwib3lhLnRvIiwiY28ua3JkIiwiZWR1LmtyZCIsImdpdC1yZXBvcy5kZSIsImxjdWJlLXNlcnZlci5kZSIsInN2bi1yZXBvcy5kZSIsImxlYWRwYWdlcy5jbyIs''@;'; + put 'put ''ImxwYWdlcy5jbyIsImxwdXNlcmNvbnRlbnQuY29tIiwibGVsdXguc2l0ZSIsImNvLmJ1c2luZXNzIiwiY28uZWR1Y2F0aW9uIiwiY28uZXZlbnRzIiwiY28uZmluYW5jaWFsIiwiY28ubmV0d29yayIsImNvLnBsYWNlIiwiY28udGVjaG5vbG9neSIsImFwcC5sbXBtLmNvbSIsImxpbmtpdG9v''@;'; + put 'put ''bHMuc3BhY2UiLCJsaW5reWFyZC5jbG91ZCIsImxpbmt5YXJkLWNsb3VkLmNoIiwibWVtYmVycy5saW5vZGUuY29tIiwibm9kZWJhbGFuY2VyLmxpbm9kZS5jb20iLCJ3ZS5icyIsImxvZ2lubGluZS5hcHAiLCJsb2dpbmxpbmUuZGV2IiwibG9naW5saW5lLmlvIiwibG9naW5saW5lLnNlcnZp''@;'; + put 'put ''Y2VzIiwibG9naW5saW5lLnNpdGUiLCJrcmFzbmlrLnBsIiwibGVjem5hLnBsIiwibHViYXJ0b3cucGwiLCJsdWJsaW4ucGwiLCJwb25pYXRvd2EucGwiLCJzd2lkbmlrLnBsIiwidWtsdWdzLm9yZyIsImdsdWcub3JnLnVrIiwibHVnLm9yZy51ayIsImx1Z3Mub3JnLnVrIiwiYmFyc3kuYmci''@;'; + put 'put ''LCJiYXJzeS5jby51ayIsImJhcnN5b25saW5lLmNvLnVrIiwiYmFyc3ljZW50ZXIuY29tIiwiYmFyc3lvbmxpbmUuY29tIiwiYmFyc3kuY2x1YiIsImJhcnN5LmRlIiwiYmFyc3kuZXUiLCJiYXJzeS5pbiIsImJhcnN5LmluZm8iLCJiYXJzeS5pbyIsImJhcnN5Lm1lIiwiYmFyc3kubWVudSIs''@;'; + put 'put ''ImJhcnN5Lm1vYmkiLCJiYXJzeS5uZXQiLCJiYXJzeS5vbmxpbmUiLCJiYXJzeS5vcmciLCJiYXJzeS5wcm8iLCJiYXJzeS5wdWIiLCJiYXJzeS5zaG9wIiwiYmFyc3kuc2l0ZSIsImJhcnN5LnN1cHBvcnQiLCJiYXJzeS51ayIsIioubWFnZW50b3NpdGUuY2xvdWQiLCJtYXlmaXJzdC5pbmZv''@;'; + put 'put ''IiwibWF5Zmlyc3Qub3JnIiwiaGIuY2xkbWFpbC5ydSIsIm1pbmlzZXJ2ZXIuY29tIiwibWVtc2V0Lm5ldCIsImNsb3VkLm1ldGFjZW50cnVtLmN6IiwiY3VzdG9tLm1ldGFjZW50cnVtLmN6IiwiZmx0LmNsb3VkLm11bmkuY3oiLCJ1c3IuY2xvdWQubXVuaS5jeiIsIm1ldGVvcmFwcC5jb20i''@;'; + put 'put ''LCJldS5tZXRlb3JhcHAuY29tIiwiY28ucGwiLCJhenVyZWNvbnRhaW5lci5pbyIsImF6dXJld2Vic2l0ZXMubmV0IiwiYXp1cmUtbW9iaWxlLm5ldCIsImNsb3VkYXBwLm5ldCIsIm1vemlsbGEtaW90Lm9yZyIsImJtb2F0dGFjaG1lbnRzLm9yZyIsIm5ldC5ydSIsIm9yZy5ydSIsInBwLnJ1''@;'; + put 'put ''IiwidWkubmFidS5jYXNhIiwicG9ueS5jbHViIiwib2YuZmFzaGlvbiIsIm9uLmZhc2hpb24iLCJvZi5mb290YmFsbCIsImluLmxvbmRvbiIsIm9mLmxvbmRvbiIsImZvci5tZW4iLCJhbmQubW9tIiwiZm9yLm1vbSIsImZvci5vbmUiLCJmb3Iuc2FsZSIsIm9mLndvcmsiLCJ0by53b3JrIiwi''@;'; + put 'put ''bmN0dS5tZSIsImJpdGJhbGxvb24uY29tIiwibmV0bGlmeS5jb20iLCI0dS5jb20iLCJuZ3Jvay5pbyIsIm5oLXNlcnYuY28udWsiLCJuZnNob3N0LmNvbSIsImRuc2tpbmcuY2giLCJteXBpLmNvIiwibjR0LmNvIiwiMDAxd3d3LmNvbSIsImRkbnNsaXZlLmNvbSIsIm15aXBob3N0LmNvbSIs''@;'; + put 'put ''ImZvcnVtei5pbmZvIiwiMTYtYi5pdCIsIjMyLWIuaXQiLCI2NC1iLml0Iiwic291bmRjYXN0Lm1lIiwidGNwNC5tZSIsImRuc3VwLm5ldCIsImhpY2FtLm5ldCIsIm5vdy1kbnMubmV0Iiwib3duaXAubmV0IiwidnBuZG5zLm5ldCIsImR5bnNlcnYub3JnIiwibm93LWRucy5vcmciLCJ4NDQz''@;'; + put 'put ''LnB3Iiwibm93LWRucy50b3AiLCJudGRsbC50b3AiLCJmcmVlZGRucy51cyIsImNyYWZ0aW5nLnh5eiIsInphcHRvLnh5eiIsIm5zdXBkYXRlLmluZm8iLCJuZXJkcG9sLm92aCIsImJsb2dzeXRlLmNvbSIsImJyYXNpbGlhLm1lIiwiY2FibGUtbW9kZW0ub3JnIiwiY2lzY29mcmVhay5jb20i''@;'; + put 'put ''LCJjb2xsZWdlZmFuLm9yZyIsImNvdWNocG90YXRvZnJpZXMub3JnIiwiZGFtbnNlcnZlci5jb20iLCJkZG5zLm1lIiwiZGl0Y2h5b3VyaXAuY29tIiwiZG5zZm9yLm1lIiwiZG5zaXNraW5reS5jb20iLCJkdnJjYW0uaW5mbyIsImR5bm5zLmNvbSIsImVhdGluZy1vcmdhbmljLm5ldCIsImZh''@;'; + put 'put ''bnRhc3lsZWFndWUuY2MiLCJnZWVrZ2FsYXh5LmNvbSIsImdvbGZmYW4udXMiLCJoZWFsdGgtY2FyZXJlZm9ybS5jb20iLCJob21lc2VjdXJpdHltYWMuY29tIiwiaG9tZXNlY3VyaXR5cGMuY29tIiwiaG9wdG8ubWUiLCJpbG92ZWNvbGxlZ2UuaW5mbyIsImxvZ2ludG8ubWUiLCJtbGJmYW4u''@;'; + put 'put ''b3JnIiwibW1hZmFuLmJpeiIsIm15YWN0aXZlZGlyZWN0b3J5LmNvbSIsIm15ZGlzc2VudC5uZXQiLCJteWVmZmVjdC5uZXQiLCJteW1lZGlhcGMubmV0IiwibXlwc3gubmV0IiwibXlzZWN1cml0eWNhbWVyYS5jb20iLCJteXNlY3VyaXR5Y2FtZXJhLm5ldCIsIm15c2VjdXJpdHljYW1lcmEu''@;'; + put 'put ''b3JnIiwibmV0LWZyZWFrcy5jb20iLCJuZmxmYW4ub3JnIiwibmhsZmFuLm5ldCIsIm5vLWlwLmNhIiwibm8taXAuY28udWsiLCJuby1pcC5uZXQiLCJub2lwLnVzIiwib250aGV3aWZpLmNvbSIsInBnYWZhbi5uZXQiLCJwb2ludDJ0aGlzLmNvbSIsInBvaW50dG8udXMiLCJwcml2YXRpemVo''@;'; + put 'put ''ZWFsdGhpbnN1cmFuY2UubmV0IiwicXVpY2tzeXRlcy5jb20iLCJyZWFkLWJvb2tzLm9yZyIsInNlY3VyaXR5dGFjdGljcy5jb20iLCJzZXJ2ZWV4Y2hhbmdlLmNvbSIsInNlcnZlaHVtb3VyLmNvbSIsInNlcnZlcDJwLmNvbSIsInNlcnZlc2FyY2FzbS5jb20iLCJzdHVmZnRvcmVhZC5jb20i''@;'; + put 'put ''LCJ1ZmNmYW4ub3JnIiwidW51c3VhbHBlcnNvbi5jb20iLCJ3b3JraXNib3JpbmcuY29tIiwiM3V0aWxpdGllcy5jb20iLCJib3VuY2VtZS5uZXQiLCJkZG5zLm5ldCIsImRkbnNraW5nLmNvbSIsImdvdGRucy5jaCIsImhvcHRvLm9yZyIsIm15ZnRwLmJpeiIsIm15ZnRwLm9yZyIsIm15dm5j''@;'; + put 'put ''LmNvbSIsIm5vLWlwLmJpeiIsIm5vLWlwLmluZm8iLCJuby1pcC5vcmciLCJub2lwLm1lIiwicmVkaXJlY3RtZS5uZXQiLCJzZXJ2ZWJlZXIuY29tIiwic2VydmVibG9nLm5ldCIsInNlcnZlY291bnRlcnN0cmlrZS5jb20iLCJzZXJ2ZWZ0cC5jb20iLCJzZXJ2ZWdhbWUuY29tIiwic2VydmVo''@;'; + put 'put ''YWxmbGlmZS5jb20iLCJzZXJ2ZWh0dHAuY29tIiwic2VydmVpcmMuY29tIiwic2VydmVtaW5lY3JhZnQubmV0Iiwic2VydmVtcDMuY29tIiwic2VydmVwaWNzLmNvbSIsInNlcnZlcXVha2UuY29tIiwic3l0ZXMubmV0Iiwid2ViaG9wLm1lIiwiemFwdG8ub3JnIiwic3RhZ2Uubm9kZWFydC5p''@;'; + put 'put ''byIsIm5vZHVtLmNvIiwibm9kdW0uaW8iLCJwY2xvdWQuaG9zdCIsIm55Yy5tbiIsIm5vbS5hZSIsIm5vbS5hZiIsIm5vbS5haSIsIm5vbS5hbCIsIm55bS5ieSIsIm5vbS5ieiIsIm55bS5ieiIsIm5vbS5jbCIsIm55bS5lYyIsIm5vbS5nZCIsIm5vbS5nZSIsIm5vbS5nbCIsIm55bS5nciIs''@;'; + put 'put ''Im5vbS5ndCIsIm55bS5neSIsIm55bS5oayIsIm5vbS5obiIsIm55bS5pZSIsIm5vbS5pbSIsIm5vbS5rZSIsIm55bS5reiIsIm55bS5sYSIsIm55bS5sYyIsIm5vbS5saSIsIm55bS5saSIsIm55bS5sdCIsIm55bS5sdSIsIm5vbS5sdiIsIm55bS5tZSIsIm5vbS5tayIsIm55bS5tbiIsIm55''@;'; + put 'put ''bS5teCIsIm5vbS5udSIsIm55bS5ueiIsIm55bS5wZSIsIm55bS5wdCIsIm5vbS5wdyIsIm5vbS5xYSIsIm55bS5ybyIsIm5vbS5ycyIsIm5vbS5zaSIsIm55bS5zayIsIm5vbS5zdCIsIm55bS5zdSIsIm55bS5zeCIsIm5vbS50aiIsIm55bS50dyIsIm5vbS51ZyIsIm5vbS51eSIsIm5vbS52''@;'; + put 'put ''YyIsIm5vbS52ZyIsInN0YXRpYy5vYnNlcnZhYmxldXNlcmNvbnRlbnQuY29tIiwiY3lhLmdnIiwiY2xvdWR5Y2x1c3Rlci5uZXQiLCJuaWQuaW8iLCJvcGVuY3JhZnQuaG9zdGluZyIsIm9wZXJhdW5pdGUuY29tIiwic2t5Z2VhcmFwcC5jb20iLCJvdXRzeXN0ZW1zY2xvdWQuY29tIiwib3du''@;'; + put 'put ''cHJvdmlkZXIuY29tIiwib3duLnBtIiwib3gucnMiLCJveS5sYyIsInBnZm9nLmNvbSIsInBhZ2Vmcm9udGFwcC5jb20iLCJhcnQucGwiLCJnbGl3aWNlLnBsIiwia3Jha293LnBsIiwicG96bmFuLnBsIiwid3JvYy5wbCIsInpha29wYW5lLnBsIiwicGFudGhlb25zaXRlLmlvIiwiZ290cGFu''@;'; + put 'put ''dGhlb24uY29tIiwibXlwZXAubGluayIsInBlcnNwZWN0YS5jbG91ZCIsIm9uLXdlYi5mciIsIioucGxhdGZvcm0uc2giLCIqLnBsYXRmb3Jtc2guc2l0ZSIsImR5bjUzLmlvIiwiY28uYm4iLCJ4ZW4ucHJnbXIuY29tIiwicHJpdi5hdCIsInBydmN5LnBhZ2UiLCIqLmR3ZWIubGluayIsInBy''@;'; + put 'put ''b3RvbmV0LmlvIiwiY2hpcnVyZ2llbnMtZGVudGlzdGVzLWVuLWZyYW5jZS5mciIsImJ5ZW4uc2l0ZSIsInB1YnRscy5vcmciLCJxdWFsaWZpb2FwcC5jb20iLCJxYnVzZXIuY29tIiwiaW5zdGFudGNsb3VkLmNuIiwicmFzLnJ1IiwicWEyLmNvbSIsInFjeC5pbyIsIiouc3lzLnFjeC5pbyIs''@;'; + put 'put ''ImRldi1teXFuYXBjbG91ZC5jb20iLCJhbHBoYS1teXFuYXBjbG91ZC5jb20iLCJteXFuYXBjbG91ZC5jb20iLCIqLnF1aXBlbGVtZW50cy5jb20iLCJ2YXBvci5jbG91ZCIsInZhcG9yY2xvdWQuaW8iLCJyYWNrbWF6ZS5jb20iLCJyYWNrbWF6ZS5uZXQiLCIqLm9uLWszcy5pbyIsIioub24t''@;'; + put 'put ''cmFuY2hlci5jbG91ZCIsIioub24tcmlvLmlvIiwicmVhZHRoZWRvY3MuaW8iLCJyaGNsb3VkLmNvbSIsImFwcC5yZW5kZXIuY29tIiwib25yZW5kZXIuY29tIiwicmVwbC5jbyIsInJlcGwucnVuIiwicmVzaW5kZXZpY2UuaW8iLCJkZXZpY2VzLnJlc2luc3RhZ2luZy5pbyIsImh6Yy5pbyIs''@;'; + put 'put ''IndlbGxiZWluZ3pvbmUuZXUiLCJwdHBsdXMuZml0Iiwid2VsbGJlaW5nem9uZS5jby51ayIsImdpdC1wYWdlcy5yaXQuZWR1Iiwic2FuZGNhdHMuaW8iLCJsb2dvaXAuZGUiLCJsb2dvaXAuY29tIiwic2Nob2tva2Vrcy5uZXQiLCJnb3Yuc2NvdCIsInNjcnlzZWMuY29tIiwiZmlyZXdhbGwt''@;'; + put 'put ''Z2F0ZXdheS5jb20iLCJmaXJld2FsbC1nYXRld2F5LmRlIiwibXktZ2F0ZXdheS5kZSIsIm15LXJvdXRlci5kZSIsInNwZG5zLmRlIiwic3BkbnMuZXUiLCJmaXJld2FsbC1nYXRld2F5Lm5ldCIsIm15LWZpcmV3YWxsLm9yZyIsIm15ZmlyZXdhbGwub3JnIiwic3BkbnMub3JnIiwic2Vuc2Vl''@;'; + put 'put ''cmluZy5uZXQiLCJiaXoudWEiLCJjby51YSIsInBwLnVhIiwic2hpZnRlZGl0LmlvIiwibXlzaG9wYmxvY2tzLmNvbSIsInNob3BpdHNpdGUuY29tIiwibW8tc2llbWVucy5pbyIsIjFrYXBwLmNvbSIsImFwcGNoaXppLmNvbSIsImFwcGxpbnppLmNvbSIsInNpbmFhcHAuY29tIiwidmlwc2lu''@;'; + put 'put ''YWFwcC5jb20iLCJzaXRlbGVhZi5uZXQiLCJib3VudHktZnVsbC5jb20iLCJhbHBoYS5ib3VudHktZnVsbC5jb20iLCJiZXRhLmJvdW50eS1mdWxsLmNvbSIsInN0YWNraGVyby1uZXR3b3JrLmNvbSIsInN0YXRpYy5sYW5kIiwiZGV2LnN0YXRpYy5sYW5kIiwic2l0ZXMuc3RhdGljLmxhbmQi''@;'; + put 'put ''LCJhcHBzLmxhaXIuaW8iLCIqLnN0b2xvcy5pbyIsInNwYWNla2l0LmlvIiwiY3VzdG9tZXIuc3BlZWRwYXJ0bmVyLmRlIiwiYXBpLnN0ZGxpYi5jb20iLCJzdG9yai5mYXJtIiwidXR3ZW50ZS5pbyIsInNvYy5zcmNmLm5ldCIsInVzZXIuc3JjZi5uZXQiLCJ0ZW1wLWRucy5jb20iLCJhcHBs''@;'; + put 'put ''aWNhdGlvbmNsb3VkLmlvIiwic2NhcHAuaW8iLCIqLnM1eS5pbyIsIiouc2Vuc2lvc2l0ZS5jbG91ZCIsInN5bmNsb3VkLml0IiwiZGlza3N0YXRpb24ubWUiLCJkc2Nsb3VkLmJpeiIsImRzY2xvdWQubWUiLCJkc2Nsb3VkLm1vYmkiLCJkc215bmFzLmNvbSIsImRzbXluYXMubmV0IiwiZHNt''@;'; + put 'put ''eW5hcy5vcmciLCJmYW1pbHlkcy5jb20iLCJmYW1pbHlkcy5uZXQiLCJmYW1pbHlkcy5vcmciLCJpMjM0Lm1lIiwibXlkcy5tZSIsInN5bm9sb2d5Lm1lIiwidnBucGx1cy50byIsImRpcmVjdC5xdWlja2Nvbm5lY3QudG8iLCJ0YWlmdW4tZG5zLmRlIiwiZ2RhLnBsIiwiZ2RhbnNrLnBsIiwi''@;'; + put 'put ''Z2R5bmlhLnBsIiwibWVkLnBsIiwic29wb3QucGwiLCJlZHVnaXQub3JnIiwidGVsZWJpdC5hcHAiLCJ0ZWxlYml0LmlvIiwiKi50ZWxlYml0Lnh5eiIsImd3aWRkbGUuY28udWsiLCJ0aGluZ2R1c3RkYXRhLmNvbSIsImN1c3QuZGV2LnRoaW5nZHVzdC5pbyIsImN1c3QuZGlzcmVjLnRoaW5n''@;'; + put 'put ''ZHVzdC5pbyIsImN1c3QucHJvZC50aGluZ2R1c3QuaW8iLCJjdXN0LnRlc3RpbmcudGhpbmdkdXN0LmlvIiwiYXJ2by5uZXR3b3JrIiwiYXppbXV0aC5uZXR3b3JrIiwiYmxveGNtcy5jb20iLCJ0b3dubmV3cy1zdGFnaW5nLmNvbSIsIjEyaHAuYXQiLCIyaXguYXQiLCI0bGltYS5hdCIsImxp''@;'; + put 'put ''bWEtY2l0eS5hdCIsIjEyaHAuY2giLCIyaXguY2giLCI0bGltYS5jaCIsImxpbWEtY2l0eS5jaCIsInRyYWZmaWNwbGV4LmNsb3VkIiwiZGUuY29vbCIsIjEyaHAuZGUiLCIyaXguZGUiLCI0bGltYS5kZSIsImxpbWEtY2l0eS5kZSIsIjEzMzcucGljdHVyZXMiLCJjbGFuLnJpcCIsImxpbWEt''@;'; + put 'put ''Y2l0eS5yb2NrcyIsIndlYnNwYWNlLnJvY2tzIiwibGltYS56b25lIiwiKi50cmFuc3VybC5iZSIsIioudHJhbnN1cmwuZXUiLCIqLnRyYW5zdXJsLm5sIiwidHV4ZmFtaWx5Lm9yZyIsImRkLWRucy5kZSIsImRpc2tzdGF0aW9uLmV1IiwiZGlza3N0YXRpb24ub3JnIiwiZHJheS1kbnMuZGUi''@;'; + put 'put ''LCJkcmF5ZG5zLmRlIiwiZHluLXZwbi5kZSIsImR5bnZwbi5kZSIsIm1laW4tdmlnb3IuZGUiLCJteS12aWdvci5kZSIsIm15LXdhbi5kZSIsInN5bm8tZHMuZGUiLCJzeW5vbG9neS1kaXNrc3RhdGlvbi5kZSIsInN5bm9sb2d5LWRzLmRlIiwidWJlci5zcGFjZSIsIioudWJlcnNwYWNlLmRl''@;'; + put 'put ''IiwiaGsuY29tIiwiaGsub3JnIiwibHRkLmhrIiwiaW5jLmhrIiwidmlydHVhbHVzZXIuZGUiLCJ2aXJ0dWFsLXVzZXIuZGUiLCJ1cm93bi5jbG91ZCIsImRuc3VwZGF0ZS5pbmZvIiwibGliLmRlLnVzIiwiMjAzOC5pbyIsInJvdXRlci5tYW5hZ2VtZW50Iiwidi1pbmZvLmluZm8iLCJ2b29y''@;'; + put 'put ''bG9wZXIuY2xvdWQiLCJ2LnVhIiwid2FmZmxlY2VsbC5jb20iLCIqLndlYmhhcmUuZGV2Iiwid2VkZXBsb3kuaW8iLCJ3ZWRlcGxveS5tZSIsIndlZGVwbG95LnNoIiwicmVtb3Rld2QuY29tIiwid21mbGFicy5vcmciLCJteWZvcnVtLmNvbW11bml0eSIsImNvbW11bml0eS1wcm8uZGUiLCJk''@;'; + put 'put ''aXNrdXNzaW9uc2JlcmVpY2guZGUiLCJjb21tdW5pdHktcHJvLm5ldCIsIm1laW5mb3J1bS5uZXQiLCJoYWxmLmhvc3QiLCJ4bmJheS5jb20iLCJ1Mi54bmJheS5jb20iLCJ1Mi1sb2NhbC54bmJheS5jb20iLCJjaXN0cm9uLm5sIiwiZGVtb24ubmwiLCJ4czRhbGwuc3BhY2UiLCJ5YW5kZXhj''@;'; + put 'put ''bG91ZC5uZXQiLCJzdG9yYWdlLnlhbmRleGNsb3VkLm5ldCIsIndlYnNpdGUueWFuZGV4Y2xvdWQubmV0Iiwib2ZmaWNpYWwuYWNhZGVteSIsInlvbGFzaXRlLmNvbSIsInliby5mYWl0aCIsInlvbWJvLm1lIiwiaG9tZWxpbmsub25lIiwieWJvLnBhcnR5IiwieWJvLnJldmlldyIsInliby5z''@;'; + put 'put ''Y2llbmNlIiwieWJvLnRyYWRlIiwibm9ob3N0Lm1lIiwibm9oby5zdCIsInphLm5ldCIsInphLm9yZyIsIm5vdy5zaCIsImJzcy5kZXNpZ24iLCJiYXNpY3NlcnZlci5pbyIsInZpcnR1YWxzZXJ2ZXIuaW8iLCJlbnRlcnByaXNlY2xvdWQubnUiXScpfX0sRT17fTtmdW5jdGlvbiBNZShVKXt2''@;'; + put 'put ''YXIgUT1FW1VdO2lmKHZvaWQgMCE9PVEpcmV0dXJuIFEuZXhwb3J0czt2YXIgWj1FW1VdPXtpZDpVLGxvYWRlZDohMSxleHBvcnRzOnt9fTtyZXR1cm4gQltVXS5jYWxsKFouZXhwb3J0cyxaLFouZXhwb3J0cyxNZSksWi5sb2FkZWQ9ITAsWi5leHBvcnRzfXJldHVybiBNZS5kPShVLFEpPT57''@;'; + put 'put ''Zm9yKHZhciBaIGluIFEpTWUubyhRLFopJiYhTWUubyhVLFopJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoVSxaLHtlbnVtZXJhYmxlOiEwLGdldDpRW1pdfSl9LE1lLmc9ZnVuY3Rpb24oKXtpZigib2JqZWN0Ij09dHlwZW9mIGdsb2JhbFRoaXMpcmV0dXJuIGdsb2JhbFRoaXM7dHJ5e3JldHVy''@;'; + put 'put ''biB0aGlzfHxuZXcgRnVuY3Rpb24oInJldHVybiB0aGlzIikoKX1jYXRjaChVKXtpZigib2JqZWN0Ij09dHlwZW9mIHdpbmRvdylyZXR1cm4gd2luZG93fX0oKSxNZS5vPShVLFEpPT5PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoVSxRKSxNZS5yPVU9PnsidW5kZWZpbmVk''@;'; + put 'put ''IiE9dHlwZW9mIFN5bWJvbCYmU3ltYm9sLnRvU3RyaW5nVGFnJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoVSxTeW1ib2wudG9TdHJpbmdUYWcse3ZhbHVlOiJNb2R1bGUifSksT2JqZWN0LmRlZmluZVByb3BlcnR5KFUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pfSxNZS5ubWQ9VT0+KFUucGF0''@;'; + put 'put ''aHM9W10sVS5jaGlsZHJlbnx8KFUuY2hpbGRyZW49W10pLFUpLE1lKDM2MDcpfSkoKX0sMjk3NDg6ZnVuY3Rpb24oWGUsSmUsTCl7InVzZSBzdHJpY3QiO3ZhciBtZT10aGlzJiZ0aGlzLl9faW1wb3J0RGVmYXVsdHx8ZnVuY3Rpb24oWil7cmV0dXJuIFomJlouX19lc01vZHVsZT9aOntkZWZh''@;'; + put 'put ''dWx0Olp9fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoSmUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLEplLmlzU3BlY2lhbE1pc3Npbmc9SmUuY2hvaWNlVmFsaWRhdG9yPUplLmNvbmZpcm1hdGlvblZhbGlkYXRvcj1KZS51cmxWYWxpZGF0b3I9dm9pZCAwO3ZhciBCPW1lKEwoNzMzOTMpKTtK''@;'; + put 'put ''ZS51cmxWYWxpZGF0b3I9ZnVuY3Rpb24oWixpZSl7cmV0dXJuISFCLmRlZmF1bHQuaXNIdHRwVXJpKFopfHwhIUIuZGVmYXVsdC5pc0h0dHBzVXJpKFopfHwiIj09PVp8fGllfSxKZS5jb25maXJtYXRpb25WYWxpZGF0b3I9ZnVuY3Rpb24oWil7cmV0dXJuITA9PT1afHwhMT09PVp9LEplLmNo''@;'; + put 'put ''b2ljZVZhbGlkYXRvcj1mdW5jdGlvbihaLGllLGFlKXtyZXR1cm4gWj4wJiZaPD1pZXx8YWV9LEplLmlzU3BlY2lhbE1pc3Npbmc9ZnVuY3Rpb24oWil7cmV0dXJuKCJzdHJpbmciIT10eXBlb2YgWnx8IVouaW5jbHVkZXMoIi4uIikpJiZuZXcgUmVnRXhwKCJeKFxcLik/W2Etel8uXXsxfSQi''@;'; + put 'put ''LCJpIikudGVzdChaKX19LDI1ODU5OihYZSxKZSk9PnsidXNlIHN0cmljdCI7dmFyIEI7SmUuRD12b2lkIDAsKEI9SmUuRHx8KEplLkQ9e30pKS5TYXNWaXlhPSJTQVNWSVlBIixCLlNhczk9IlNBUzkiLEIuU2FzanM9IlNBU0pTIn0sMzY2MjU6KFhlLEplKT0+eyJ1c2Ugc3RyaWN0IjtKZS5S''@;'; + put 'put ''PXZvaWQgMCxKZS5SPWZ1bmN0aW9uKEIsRSxNZSl7aWYodm9pZCAwPT09RSYmKEU9MSksdm9pZCAwPT09TWUmJihNZT0xMDk5NTExNjI3Nzc2KSwwPT09QilyZXR1cm4iMCBCIjtCPUI+TWU/TWU6Qjt2YXIgWj1FPDA/MDpFLGllPU1hdGguZmxvb3IoTWF0aC5sb2coQikvTWF0aC5sb2coMTAy''@;'; + put 'put ''NCkpO3JldHVybihCL01hdGgucG93KDEwMjQsaWUpKS50b0ZpeGVkKFopKyIgIitbIkIiLCJLQiIsIk1CIiwiR0IiLCJUQiJdW2llXX19LDUzMzk5OmZ1bmN0aW9uKFhlKXt2YXIgSmU9e3ZlcnNpb246IjEuMTUuMCJ9O0plWzQzN109ZnVuY3Rpb24oKXtmb3IodmFyIEw9IlwwXHgwMVx4MDJc''@;'; + put 'put ''eDAzXHgwNFx4MDVceDA2XHgwN1xiXHRcblx2XGZcclx4MGVceDBmXHgxMFx4MTFceDEyXHgxM1x4MTRceDE1XHgxNlx4MTdceDE4XHgxOVx4MWFceDFiXHgxY1x4MWRceDFlXHgxZiAhXCIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltc''@;'; + put 'put ''XF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5ceDdmXHhjN1x4ZmNceGU5XHhlMlx4ZTRceGUwXHhlNVx4ZTdceGVhXHhlYlx4ZThceGVmXHhlZVx4ZWNceGM0XHhjNVx4YzlceGU2XHhjNlx4ZjRceGY2XHhmMlx4ZmJceGY5XHhmZlx4ZDZceGRjXHhhMlx4YTNceGE1XHUyMGE3''@;'; + put 'put ''XHUwMTkyXHhlMVx4ZWRceGYzXHhmYVx4ZjFceGQxXHhhYVx4YmFceGJmXHUyMzEwXHhhY1x4YmRceGJjXHhhMVx4YWJceGJiXHUyNTkxXHUyNTkyXHUyNTkzXHUyNTAyXHUyNTI0XHUyNTYxXHUyNTYyXHUyNTU2XHUyNTU1XHUyNTYzXHUyNTUxXHUyNTU3XHUyNTVkXHUyNTVjXHUyNTViXHUy''@;'; + put 'put ''NTEwXHUyNTE0XHUyNTM0XHUyNTJjXHUyNTFjXHUyNTAwXHUyNTNjXHUyNTVlXHUyNTVmXHUyNTVhXHUyNTU0XHUyNTY5XHUyNTY2XHUyNTYwXHUyNTUwXHUyNTZjXHUyNTY3XHUyNTY4XHUyNTY0XHUyNTY1XHUyNTU5XHUyNTU4XHUyNTUyXHUyNTUzXHUyNTZiXHUyNTZhXHUyNTE4XHUyNTBj''@;'; + put 'put ''XHUyNTg4XHUyNTg0XHUyNThjXHUyNTkwXHUyNTgwXHUwM2IxXHhkZlx1MDM5M1x1MDNjMFx1MDNhM1x1MDNjM1x4YjVcdTAzYzRcdTAzYTZcdTAzOThcdTAzYTlcdTAzYjRcdTIyMWVcdTAzYzZcdTAzYjVcdTIyMjlcdTIyNjFceGIxXHUyMjY1XHUyMjY0XHUyMzIwXHUyMzIxXHhmN1x1MjI0''@;'; + put 'put ''OFx4YjBcdTIyMTlceGI3XHUyMjFhXHUyMDdmXHhiMlx1MjVhMFx4YTAiLG1lPVtdLEI9e30sRT0wO0UhPUwubGVuZ3RoOysrRSk2NTUzMyE9PUwuY2hhckNvZGVBdChFKSYmKEJbTC5jaGFyQXQoRSldPUUpLG1lW0VdPUwuY2hhckF0KEUpO3JldHVybntlbmM6QixkZWM6bWV9fSgpLEplWzYy''@;'; + put 'put ''MF09ZnVuY3Rpb24oKXtmb3IodmFyIEw9IlwwXHgwMVx4MDJceDAzXHgwNFx4MDVceDA2XHgwN1xiXHRcblx2XGZcclx4MGVceDBmXHgxMFx4MTFceDEyXHgxM1x4MTRceDE1XHgxNlx4MTdceDE4XHgxOVx4MWFceDFiXHgxY1x4MWRceDFlXHgxZiAhXCIjJCUmJygpKissLS4vMDEyMzQ1Njc4''@;'; + put 'put ''OTo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5ceDdmXHhjN1x4ZmNceGU5XHhlMlx4ZTRceGUwXHUwMTA1XHhlN1x4ZWFceGViXHhlOFx4ZWZceGVlXHUwMTA3XHhjNFx1MDEwNFx1MDExOFx1MDExOVx1MDE0Mlx4''@;'; + put 'put ''ZjRceGY2XHUwMTA2XHhmYlx4ZjlcdTAxNWFceGQ2XHhkY1x4YTJcdTAxNDFceGE1XHUwMTViXHUwMTkyXHUwMTc5XHUwMTdiXHhmM1x4ZDNcdTAxNDRcdTAxNDNcdTAxN2FcdTAxN2NceGJmXHUyMzEwXHhhY1x4YmRceGJjXHhhMVx4YWJceGJiXHUyNTkxXHUyNTkyXHUyNTkzXHUyNTAyXHUy''@;'; + put 'put ''NTI0XHUyNTYxXHUyNTYyXHUyNTU2XHUyNTU1XHUyNTYzXHUyNTUxXHUyNTU3XHUyNTVkXHUyNTVjXHUyNTViXHUyNTEwXHUyNTE0XHUyNTM0XHUyNTJjXHUyNTFjXHUyNTAwXHUyNTNjXHUyNTVlXHUyNTVmXHUyNTVhXHUyNTU0XHUyNTY5XHUyNTY2XHUyNTYwXHUyNTUwXHUyNTZjXHUyNTY3''@;'; + put 'put ''XHUyNTY4XHUyNTY0XHUyNTY1XHUyNTU5XHUyNTU4XHUyNTUyXHUyNTUzXHUyNTZiXHUyNTZhXHUyNTE4XHUyNTBjXHUyNTg4XHUyNTg0XHUyNThjXHUyNTkwXHUyNTgwXHUwM2IxXHhkZlx1MDM5M1x1MDNjMFx1MDNhM1x1MDNjM1x4YjVcdTAzYzRcdTAzYTZcdTAzOThcdTAzYTlcdTAzYjRc''@;'; + put 'put ''dTIyMWVcdTAzYzZcdTAzYjVcdTIyMjlcdTIyNjFceGIxXHUyMjY1XHUyMjY0XHUyMzIwXHUyMzIxXHhmN1x1MjI0OFx4YjBcdTIyMTlceGI3XHUyMjFhXHUyMDdmXHhiMlx1MjVhMFx4YTAiLG1lPVtdLEI9e30sRT0wO0UhPUwubGVuZ3RoOysrRSk2NTUzMyE9PUwuY2hhckNvZGVBdChFKSYm''@;'; + put 'put ''KEJbTC5jaGFyQXQoRSldPUUpLG1lW0VdPUwuY2hhckF0KEUpO3JldHVybntlbmM6QixkZWM6bWV9fSgpLEplWzczN109ZnVuY3Rpb24oKXtmb3IodmFyIEw9IlwwXHgwMVx4MDJceDAzXHgwNFx4MDVceDA2XHgwN1xiXHRcblx2XGZcclx4MGVceDBmXHgxMFx4MTFceDEyXHgxM1x4MTRceDE1''@;'; + put 'put ''XHgxNlx4MTdceDE4XHgxOVx4MWFceDFiXHgxY1x4MWRceDFlXHgxZiAhXCIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5ceDdmXHUwMzkxXHUwMzkyXHUwMzkzXHUwMzk0''@;'; + put 'put ''XHUwMzk1XHUwMzk2XHUwMzk3XHUwMzk4XHUwMzk5XHUwMzlhXHUwMzliXHUwMzljXHUwMzlkXHUwMzllXHUwMzlmXHUwM2EwXHUwM2ExXHUwM2EzXHUwM2E0XHUwM2E1XHUwM2E2XHUwM2E3XHUwM2E4XHUwM2E5XHUwM2IxXHUwM2IyXHUwM2IzXHUwM2I0XHUwM2I1XHUwM2I2XHUwM2I3XHUw''@;'; + put 'put ''M2I4XHUwM2I5XHUwM2JhXHUwM2JiXHUwM2JjXHUwM2JkXHUwM2JlXHUwM2JmXHUwM2MwXHUwM2MxXHUwM2MzXHUwM2MyXHUwM2M0XHUwM2M1XHUwM2M2XHUwM2M3XHUwM2M4XHUyNTkxXHUyNTkyXHUyNTkzXHUyNTAyXHUyNTI0XHUyNTYxXHUyNTYyXHUyNTU2XHUyNTU1XHUyNTYzXHUyNTUx''@;'; + put 'put ''XHUyNTU3XHUyNTVkXHUyNTVjXHUyNTViXHUyNTEwXHUyNTE0XHUyNTM0XHUyNTJjXHUyNTFjXHUyNTAwXHUyNTNjXHUyNTVlXHUyNTVmXHUyNTVhXHUyNTU0XHUyNTY5XHUyNTY2XHUyNTYwXHUyNTUwXHUyNTZjXHUyNTY3XHUyNTY4XHUyNTY0XHUyNTY1XHUyNTU5XHUyNTU4XHUyNTUyXHUy''@;'; + put 'put ''NTUzXHUyNTZiXHUyNTZhXHUyNTE4XHUyNTBjXHUyNTg4XHUyNTg0XHUyNThjXHUyNTkwXHUyNTgwXHUwM2M5XHUwM2FjXHUwM2FkXHUwM2FlXHUwM2NhXHUwM2FmXHUwM2NjXHUwM2NkXHUwM2NiXHUwM2NlXHUwMzg2XHUwMzg4XHUwMzg5XHUwMzhhXHUwMzhjXHUwMzhlXHUwMzhmXHhiMVx1''@;'; + put 'put ''MjI2NVx1MjI2NFx1MDNhYVx1MDNhYlx4ZjdcdTIyNDhceGIwXHUyMjE5XHhiN1x1MjIxYVx1MjA3Zlx4YjJcdTI1YTBceGEwIixtZT1bXSxCPXt9LEU9MDtFIT1MLmxlbmd0aDsrK0UpNjU1MzMhPT1MLmNoYXJDb2RlQXQoRSkmJihCW0wuY2hhckF0KEUpXT1FKSxtZVtFXT1MLmNoYXJBdChF''@;'; + put 'put ''KTtyZXR1cm57ZW5jOkIsZGVjOm1lfX0oKSxKZVs4NTBdPWZ1bmN0aW9uKCl7Zm9yKHZhciBMPSJcMFx4MDFceDAyXHgwM1x4MDRceDA1XHgwNlx4MDdcYlx0XG5cdlxmXHJceDBlXHgwZlx4MTBceDExXHgxMlx4MTNceDE0XHgxNVx4MTZceDE3XHgxOFx4MTlceDFhXHgxYlx4MWNceDFkXHgx''@;'; + put 'put ''ZVx4MWYgIVwiIyQlJicoKSorLC0uLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpbXFxdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+XHg3Zlx4YzdceGZjXHhlOVx4ZTJceGU0XHhlMFx4ZTVceGU3XHhlYVx4ZWJceGU4XHhlZlx4ZWVceGVjXHhj''@;'; + put 'put ''NFx4YzVceGM5XHhlNlx4YzZceGY0XHhmNlx4ZjJceGZiXHhmOVx4ZmZceGQ2XHhkY1x4ZjhceGEzXHhkOFx4ZDdcdTAxOTJceGUxXHhlZFx4ZjNceGZhXHhmMVx4ZDFceGFhXHhiYVx4YmZceGFlXHhhY1x4YmRceGJjXHhhMVx4YWJceGJiXHUyNTkxXHUyNTkyXHUyNTkzXHUyNTAyXHUyNTI0''@;'; + put 'put ''XHhjMVx4YzJceGMwXHhhOVx1MjU2M1x1MjU1MVx1MjU1N1x1MjU1ZFx4YTJceGE1XHUyNTEwXHUyNTE0XHUyNTM0XHUyNTJjXHUyNTFjXHUyNTAwXHUyNTNjXHhlM1x4YzNcdTI1NWFcdTI1NTRcdTI1NjlcdTI1NjZcdTI1NjBcdTI1NTBcdTI1NmNceGE0XHhmMFx4ZDBceGNhXHhjYlx4Yzhc''@;'; + put 'put ''dTAxMzFceGNkXHhjZVx4Y2ZcdTI1MThcdTI1MGNcdTI1ODhcdTI1ODRceGE2XHhjY1x1MjU4MFx4ZDNceGRmXHhkNFx4ZDJceGY1XHhkNVx4YjVceGZlXHhkZVx4ZGFceGRiXHhkOVx4ZmRceGRkXHhhZlx4YjRceGFkXHhiMVx1MjAxN1x4YmVceGI2XHhhN1x4ZjdceGI4XHhiMFx4YThceGI3''@;'; + put 'put ''XHhiOVx4YjNceGIyXHUyNWEwXHhhMCIsbWU9W10sQj17fSxFPTA7RSE9TC5sZW5ndGg7KytFKTY1NTMzIT09TC5jaGFyQ29kZUF0KEUpJiYoQltMLmNoYXJBdChFKV09RSksbWVbRV09TC5jaGFyQXQoRSk7cmV0dXJue2VuYzpCLGRlYzptZX19KCksSmVbODUyXT1mdW5jdGlvbigpe2Zvcih2''@;'; + put 'put ''YXIgTD0iXDBceDAxXHgwMlx4MDNceDA0XHgwNVx4MDZceDA3XGJcdFxuXHZcZlxyXHgwZVx4MGZceDEwXHgxMVx4MTJceDEzXHgxNFx4MTVceDE2XHgxN1x4MThceDE5XHgxYVx4MWJceDFjXHgxZFx4MWVceDFmICFcIiMkJSYnKCkqKywtLi8wMTIzNDU2Nzg5Ojs8PT4/QEFCQ0RFRkdISUpL''@;'; + put 'put ''TE1OT1BRUlNUVVZXWFlaW1xcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9flx4N2ZceGM3XHhmY1x4ZTlceGUyXHhlNFx1MDE2Zlx1MDEwN1x4ZTdcdTAxNDJceGViXHUwMTUwXHUwMTUxXHhlZVx1MDE3OVx4YzRcdTAxMDZceGM5XHUwMTM5XHUwMTNhXHhmNFx4ZjZcdTAxM2Rc''@;'; + put 'put ''dTAxM2VcdTAxNWFcdTAxNWJceGQ2XHhkY1x1MDE2NFx1MDE2NVx1MDE0MVx4ZDdcdTAxMGRceGUxXHhlZFx4ZjNceGZhXHUwMTA0XHUwMTA1XHUwMTdkXHUwMTdlXHUwMTE4XHUwMTE5XHhhY1x1MDE3YVx1MDEwY1x1MDE1Zlx4YWJceGJiXHUyNTkxXHUyNTkyXHUyNTkzXHUyNTAyXHUyNTI0''@;'; + put 'put ''XHhjMVx4YzJcdTAxMWFcdTAxNWVcdTI1NjNcdTI1NTFcdTI1NTdcdTI1NWRcdTAxN2JcdTAxN2NcdTI1MTBcdTI1MTRcdTI1MzRcdTI1MmNcdTI1MWNcdTI1MDBcdTI1M2NcdTAxMDJcdTAxMDNcdTI1NWFcdTI1NTRcdTI1NjlcdTI1NjZcdTI1NjBcdTI1NTBcdTI1NmNceGE0XHUwMTExXHUw''@;'; + put 'put ''MTEwXHUwMTBlXHhjYlx1MDEwZlx1MDE0N1x4Y2RceGNlXHUwMTFiXHUyNTE4XHUyNTBjXHUyNTg4XHUyNTg0XHUwMTYyXHUwMTZlXHUyNTgwXHhkM1x4ZGZceGQ0XHUwMTQzXHUwMTQ0XHUwMTQ4XHUwMTYwXHUwMTYxXHUwMTU0XHhkYVx1MDE1NVx1MDE3MFx4ZmRceGRkXHUwMTYzXHhiNFx4''@;'; + put 'put ''YWRcdTAyZGRcdTAyZGJcdTAyYzdcdTAyZDhceGE3XHhmN1x4YjhceGIwXHhhOFx1MDJkOVx1MDE3MVx1MDE1OFx1MDE1OVx1MjVhMFx4YTAiLG1lPVtdLEI9e30sRT0wO0UhPUwubGVuZ3RoOysrRSk2NTUzMyE9PUwuY2hhckNvZGVBdChFKSYmKEJbTC5jaGFyQXQoRSldPUUpLG1lW0VdPUwu''@;'; + put 'put ''Y2hhckF0KEUpO3JldHVybntlbmM6QixkZWM6bWV9fSgpLEplWzg1N109ZnVuY3Rpb24oKXtmb3IodmFyIEw9IlwwXHgwMVx4MDJceDAzXHgwNFx4MDVceDA2XHgwN1xiXHRcblx2XGZcclx4MGVceDBmXHgxMFx4MTFceDEyXHgxM1x4MTRceDE1XHgxNlx4MTdceDE4XHgxOVx4MWFceDFiXHgx''@;'; + put 'put ''Y1x4MWRceDFlXHgxZiAhXCIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5ceDdmXHhjN1x4ZmNceGU5XHhlMlx4ZTRceGUwXHhlNVx4ZTdceGVhXHhlYlx4ZThceGVmXHhl''@;'; + put 'put ''ZVx1MDEzMVx4YzRceGM1XHhjOVx4ZTZceGM2XHhmNFx4ZjZceGYyXHhmYlx4ZjlcdTAxMzBceGQ2XHhkY1x4ZjhceGEzXHhkOFx1MDE1ZVx1MDE1Zlx4ZTFceGVkXHhmM1x4ZmFceGYxXHhkMVx1MDExZVx1MDExZlx4YmZceGFlXHhhY1x4YmRceGJjXHhhMVx4YWJceGJiXHUyNTkxXHUyNTky''@;'; + put 'put ''XHUyNTkzXHUyNTAyXHUyNTI0XHhjMVx4YzJceGMwXHhhOVx1MjU2M1x1MjU1MVx1MjU1N1x1MjU1ZFx4YTJceGE1XHUyNTEwXHUyNTE0XHUyNTM0XHUyNTJjXHUyNTFjXHUyNTAwXHUyNTNjXHhlM1x4YzNcdTI1NWFcdTI1NTRcdTI1NjlcdTI1NjZcdTI1NjBcdTI1NTBcdTI1NmNceGE0XHhi''@;'; + put 'put ''YVx4YWFceGNhXHhjYlx4YzhcdWZmZmRceGNkXHhjZVx4Y2ZcdTI1MThcdTI1MGNcdTI1ODhcdTI1ODRceGE2XHhjY1x1MjU4MFx4ZDNceGRmXHhkNFx4ZDJceGY1XHhkNVx4YjVcdWZmZmRceGQ3XHhkYVx4ZGJceGQ5XHhlY1x4ZmZceGFmXHhiNFx4YWRceGIxXHVmZmZkXHhiZVx4YjZceGE3''@;'; + put 'put ''XHhmN1x4YjhceGIwXHhhOFx4YjdceGI5XHhiM1x4YjJcdTI1YTBceGEwIixtZT1bXSxCPXt9LEU9MDtFIT1MLmxlbmd0aDsrK0UpNjU1MzMhPT1MLmNoYXJDb2RlQXQoRSkmJihCW0wuY2hhckF0KEUpXT1FKSxtZVtFXT1MLmNoYXJBdChFKTtyZXR1cm57ZW5jOkIsZGVjOm1lfX0oKSxKZVs4''@;'; + put 'put ''NjFdPWZ1bmN0aW9uKCl7Zm9yKHZhciBMPSJcMFx4MDFceDAyXHgwM1x4MDRceDA1XHgwNlx4MDdcYlx0XG5cdlxmXHJceDBlXHgwZlx4MTBceDExXHgxMlx4MTNceDE0XHgxNVx4MTZceDE3XHgxOFx4MTlceDFhXHgxYlx4MWNceDFkXHgxZVx4MWYgIVwiIyQlJicoKSorLC0uLzAxMjM0NTY3''@;'; + put 'put ''ODk6Ozw9Pj9AQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpbXFxdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+XHg3Zlx4YzdceGZjXHhlOVx4ZTJceGU0XHhlMFx4ZTVceGU3XHhlYVx4ZWJceGU4XHhkMFx4ZjBceGRlXHhjNFx4YzVceGM5XHhlNlx4YzZceGY0XHhmNlx4ZmVc''@;'; + put 'put ''eGZiXHhkZFx4ZmRceGQ2XHhkY1x4ZjhceGEzXHhkOFx1MjBhN1x1MDE5Mlx4ZTFceGVkXHhmM1x4ZmFceGMxXHhjZFx4ZDNceGRhXHhiZlx1MjMxMFx4YWNceGJkXHhiY1x4YTFceGFiXHhiYlx1MjU5MVx1MjU5Mlx1MjU5M1x1MjUwMlx1MjUyNFx1MjU2MVx1MjU2Mlx1MjU1Nlx1MjU1NVx1''@;'; + put 'put ''MjU2M1x1MjU1MVx1MjU1N1x1MjU1ZFx1MjU1Y1x1MjU1Ylx1MjUxMFx1MjUxNFx1MjUzNFx1MjUyY1x1MjUxY1x1MjUwMFx1MjUzY1x1MjU1ZVx1MjU1Zlx1MjU1YVx1MjU1NFx1MjU2OVx1MjU2Nlx1MjU2MFx1MjU1MFx1MjU2Y1x1MjU2N1x1MjU2OFx1MjU2NFx1MjU2NVx1MjU1OVx1MjU1''@;'; + put 'put ''OFx1MjU1Mlx1MjU1M1x1MjU2Ylx1MjU2YVx1MjUxOFx1MjUwY1x1MjU4OFx1MjU4NFx1MjU4Y1x1MjU5MFx1MjU4MFx1MDNiMVx4ZGZcdTAzOTNcdTAzYzBcdTAzYTNcdTAzYzNceGI1XHUwM2M0XHUwM2E2XHUwMzk4XHUwM2E5XHUwM2I0XHUyMjFlXHUwM2M2XHUwM2I1XHUyMjI5XHUyMjYx''@;'; + put 'put ''XHhiMVx1MjI2NVx1MjI2NFx1MjMyMFx1MjMyMVx4ZjdcdTIyNDhceGIwXHUyMjE5XHhiN1x1MjIxYVx1MjA3Zlx4YjJcdTI1YTBceGEwIixtZT1bXSxCPXt9LEU9MDtFIT1MLmxlbmd0aDsrK0UpNjU1MzMhPT1MLmNoYXJDb2RlQXQoRSkmJihCW0wuY2hhckF0KEUpXT1FKSxtZVtFXT1MLmNo''@;'; + put 'put ''YXJBdChFKTtyZXR1cm57ZW5jOkIsZGVjOm1lfX0oKSxKZVs4NjVdPWZ1bmN0aW9uKCl7Zm9yKHZhciBMPSJcMFx4MDFceDAyXHgwM1x4MDRceDA1XHgwNlx4MDdcYlx0XG5cdlxmXHJceDBlXHgwZlx4MTBceDExXHgxMlx4MTNceDE0XHgxNVx4MTZceDE3XHgxOFx4MTlceDFhXHgxYlx4MWNc''@;'; + put 'put ''eDFkXHgxZVx4MWYgIVwiIyQlJicoKSorLC0uLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpbXFxdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+XHg3Zlx4YzdceGZjXHhlOVx4ZTJceGU0XHhlMFx4ZTVceGU3XHhlYVx4ZWJceGU4XHhlZlx4ZWVc''@;'; + put 'put ''eGVjXHhjNFx4YzVceGM5XHhlNlx4YzZceGY0XHhmNlx4ZjJceGZiXHhmOVx4ZmZceGQ2XHhkY1x4ZjhceGEzXHhkOFx1MjBhN1x1MDE5Mlx4ZTFceGVkXHhmM1x4ZmFceGYxXHhkMVx4YWFceGJhXHhiZlx1MjMxMFx4YWNceGJkXHhiY1x4YTFceGFiXHhhNFx1MjU5MVx1MjU5Mlx1MjU5M1x1''@;'; + put 'put ''MjUwMlx1MjUyNFx1MjU2MVx1MjU2Mlx1MjU1Nlx1MjU1NVx1MjU2M1x1MjU1MVx1MjU1N1x1MjU1ZFx1MjU1Y1x1MjU1Ylx1MjUxMFx1MjUxNFx1MjUzNFx1MjUyY1x1MjUxY1x1MjUwMFx1MjUzY1x1MjU1ZVx1MjU1Zlx1MjU1YVx1MjU1NFx1MjU2OVx1MjU2Nlx1MjU2MFx1MjU1MFx1MjU2''@;'; + put 'put ''Y1x1MjU2N1x1MjU2OFx1MjU2NFx1MjU2NVx1MjU1OVx1MjU1OFx1MjU1Mlx1MjU1M1x1MjU2Ylx1MjU2YVx1MjUxOFx1MjUwY1x1MjU4OFx1MjU4NFx1MjU4Y1x1MjU5MFx1MjU4MFx1MDNiMVx4ZGZcdTAzOTNcdTAzYzBcdTAzYTNcdTAzYzNceGI1XHUwM2M0XHUwM2E2XHUwMzk4XHUwM2E5''@;'; + put 'put ''XHUwM2I0XHUyMjFlXHUwM2M2XHUwM2I1XHUyMjI5XHUyMjYxXHhiMVx1MjI2NVx1MjI2NFx1MjMyMFx1MjMyMVx4ZjdcdTIyNDhceGIwXHUyMjE5XHhiN1x1MjIxYVx1MjA3Zlx4YjJcdTI1YTBceGEwIixtZT1bXSxCPXt9LEU9MDtFIT1MLmxlbmd0aDsrK0UpNjU1MzMhPT1MLmNoYXJDb2Rl''@;'; + put 'put ''QXQoRSkmJihCW0wuY2hhckF0KEUpXT1FKSxtZVtFXT1MLmNoYXJBdChFKTtyZXR1cm57ZW5jOkIsZGVjOm1lfX0oKSxKZVs4NjZdPWZ1bmN0aW9uKCl7Zm9yKHZhciBMPSJcMFx4MDFceDAyXHgwM1x4MDRceDA1XHgwNlx4MDdcYlx0XG5cdlxmXHJceDBlXHgwZlx4MTBceDExXHgxMlx4MTNc''@;'; + put 'put ''eDE0XHgxNVx4MTZceDE3XHgxOFx4MTlceDFhXHgxYlx4MWNceDFkXHgxZVx4MWYgIVwiIyQlJicoKSorLC0uLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpbXFxdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+XHg3Zlx1MDQxMFx1MDQxMVx1MDQx''@;'; + put 'put ''Mlx1MDQxM1x1MDQxNFx1MDQxNVx1MDQxNlx1MDQxN1x1MDQxOFx1MDQxOVx1MDQxYVx1MDQxYlx1MDQxY1x1MDQxZFx1MDQxZVx1MDQxZlx1MDQyMFx1MDQyMVx1MDQyMlx1MDQyM1x1MDQyNFx1MDQyNVx1MDQyNlx1MDQyN1x1MDQyOFx1MDQyOVx1MDQyYVx1MDQyYlx1MDQyY1x1MDQyZFx1''@;'; + put 'put ''MDQyZVx1MDQyZlx1MDQzMFx1MDQzMVx1MDQzMlx1MDQzM1x1MDQzNFx1MDQzNVx1MDQzNlx1MDQzN1x1MDQzOFx1MDQzOVx1MDQzYVx1MDQzYlx1MDQzY1x1MDQzZFx1MDQzZVx1MDQzZlx1MjU5MVx1MjU5Mlx1MjU5M1x1MjUwMlx1MjUyNFx1MjU2MVx1MjU2Mlx1MjU1Nlx1MjU1NVx1MjU2''@;'; + put 'put ''M1x1MjU1MVx1MjU1N1x1MjU1ZFx1MjU1Y1x1MjU1Ylx1MjUxMFx1MjUxNFx1MjUzNFx1MjUyY1x1MjUxY1x1MjUwMFx1MjUzY1x1MjU1ZVx1MjU1Zlx1MjU1YVx1MjU1NFx1MjU2OVx1MjU2Nlx1MjU2MFx1MjU1MFx1MjU2Y1x1MjU2N1x1MjU2OFx1MjU2NFx1MjU2NVx1MjU1OVx1MjU1OFx1''@;'; + put 'put ''MjU1Mlx1MjU1M1x1MjU2Ylx1MjU2YVx1MjUxOFx1MjUwY1x1MjU4OFx1MjU4NFx1MjU4Y1x1MjU5MFx1MjU4MFx1MDQ0MFx1MDQ0MVx1MDQ0Mlx1MDQ0M1x1MDQ0NFx1MDQ0NVx1MDQ0Nlx1MDQ0N1x1MDQ0OFx1MDQ0OVx1MDQ0YVx1MDQ0Ylx1MDQ0Y1x1MDQ0ZFx1MDQ0ZVx1MDQ0Zlx1MDQw''@;'; + put 'put ''MVx1MDQ1MVx1MDQwNFx1MDQ1NFx1MDQwN1x1MDQ1N1x1MDQwZVx1MDQ1ZVx4YjBcdTIyMTlceGI3XHUyMjFhXHUyMTE2XHhhNFx1MjVhMFx4YTAiLG1lPVtdLEI9e30sRT0wO0UhPUwubGVuZ3RoOysrRSk2NTUzMyE9PUwuY2hhckNvZGVBdChFKSYmKEJbTC5jaGFyQXQoRSldPUUpLG1lW0Vd''@;'; + put 'put ''PUwuY2hhckF0KEUpO3JldHVybntlbmM6QixkZWM6bWV9fSgpLEplWzg3NF09ZnVuY3Rpb24oKXtmb3IodmFyIEw9IlwwXHgwMVx4MDJceDAzXHgwNFx4MDVceDA2XHgwN1xiXHRcblx2XGZcclx4MGVceDBmXHgxMFx4MTFceDEyXHgxM1x4MTRceDE1XHgxNlx4MTdceDE4XHgxOVx4MWFceDFi''@;'; + put 'put ''XHgxY1x4MWRceDFlXHgxZiAhXCIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5ceDdmXHUyMGFjXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUyMDI2XHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUyMDE4XHUyMDE5XHUyMDFjXHUyMDFkXHUyMDIyXHUyMDEzXHUyMDE0XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHhhMFx1MGUwMVx1MGUwMlx1MGUw''@;'; + put 'put ''M1x1MGUwNFx1MGUwNVx1MGUwNlx1MGUwN1x1MGUwOFx1MGUwOVx1MGUwYVx1MGUwYlx1MGUwY1x1MGUwZFx1MGUwZVx1MGUwZlx1MGUxMFx1MGUxMVx1MGUxMlx1MGUxM1x1MGUxNFx1MGUxNVx1MGUxNlx1MGUxN1x1MGUxOFx1MGUxOVx1MGUxYVx1MGUxYlx1MGUxY1x1MGUxZFx1MGUxZVx1''@;'; + put 'put ''MGUxZlx1MGUyMFx1MGUyMVx1MGUyMlx1MGUyM1x1MGUyNFx1MGUyNVx1MGUyNlx1MGUyN1x1MGUyOFx1MGUyOVx1MGUyYVx1MGUyYlx1MGUyY1x1MGUyZFx1MGUyZVx1MGUyZlx1MGUzMFx1MGUzMVx1MGUzMlx1MGUzM1x1MGUzNFx1MGUzNVx1MGUzNlx1MGUzN1x1MGUzOFx1MGUzOVx1MGUz''@;'; + put 'put ''YVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MGUzZlx1MGU0MFx1MGU0MVx1MGU0Mlx1MGU0M1x1MGU0NFx1MGU0NVx1MGU0Nlx1MGU0N1x1MGU0OFx1MGU0OVx1MGU0YVx1MGU0Ylx1MGU0Y1x1MGU0ZFx1MGU0ZVx1MGU0Zlx1MGU1MFx1MGU1MVx1MGU1Mlx1MGU1M1x1MGU1NFx1MGU1NVx1''@;'; + put 'put ''MGU1Nlx1MGU1N1x1MGU1OFx1MGU1OVx1MGU1YVx1MGU1Ylx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZCIsbWU9W10sQj17fSxFPTA7RSE9TC5sZW5ndGg7KytFKTY1NTMzIT09TC5jaGFyQ29kZUF0KEUpJiYoQltMLmNoYXJBdChFKV09RSksbWVbRV09TC5jaGFyQXQoRSk7cmV0dXJue2VuYzpC''@;'; + put 'put ''LGRlYzptZX19KCksSmVbODk1XT1mdW5jdGlvbigpe2Zvcih2YXIgTD0iXDBceDAxXHgwMlx4MDNceDA0XHgwNVx4MDZceDA3XGJcdFxuXHZcZlxyXHgwZVx4MGZceDEwXHgxMVx4MTJceDEzXHgxNFx4MTVceDE2XHgxN1x4MThceDE5XHgxYVx4MWJceDFjXHgxZFx4MWVceDFmICFcIiMkJSYn''@;'; + put 'put ''KCkqKywtLi8wMTIzNDU2Nzg5Ojs8PT4/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaW1xcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9flx4N2ZcdTAxMGNceGZjXHhlOVx1MDEwZlx4ZTRcdTAxMGVcdTAxNjRcdTAxMGRcdTAxMWJcdTAxMWFcdTAxMzlceGNkXHUwMTNlXHUw''@;'; + put 'put ''MWVhXHhjNFx4YzFceGM5XHUwMTdlXHUwMTdkXHhmNFx4ZjZceGQzXHUwMTZmXHhkYVx4ZmRceGQ2XHhkY1x1MDE2MFx1MDEzZFx4ZGRcdTAxNThcdTAxNjVceGUxXHhlZFx4ZjNceGZhXHUwMTQ4XHUwMTQ3XHUwMTZlXHhkNFx1MDE2MVx1MDE1OVx1MDE1NVx1MDE1NFx4YmNceGE3XHhhYlx4''@;'; + put 'put ''YmJcdTI1OTFcdTI1OTJcdTI1OTNcdTI1MDJcdTI1MjRcdTI1NjFcdTI1NjJcdTI1NTZcdTI1NTVcdTI1NjNcdTI1NTFcdTI1NTdcdTI1NWRcdTI1NWNcdTI1NWJcdTI1MTBcdTI1MTRcdTI1MzRcdTI1MmNcdTI1MWNcdTI1MDBcdTI1M2NcdTI1NWVcdTI1NWZcdTI1NWFcdTI1NTRcdTI1Njlc''@;'; + put 'put ''dTI1NjZcdTI1NjBcdTI1NTBcdTI1NmNcdTI1NjdcdTI1NjhcdTI1NjRcdTI1NjVcdTI1NTlcdTI1NThcdTI1NTJcdTI1NTNcdTI1NmJcdTI1NmFcdTI1MThcdTI1MGNcdTI1ODhcdTI1ODRcdTI1OGNcdTI1OTBcdTI1ODBcdTAzYjFceGRmXHUwMzkzXHUwM2MwXHUwM2EzXHUwM2MzXHhiNVx1''@;'; + put 'put ''MDNjNFx1MDNhNlx1MDM5OFx1MDNhOVx1MDNiNFx1MjIxZVx1MDNjNlx1MDNiNVx1MjIyOVx1MjI2MVx4YjFcdTIyNjVcdTIyNjRcdTIzMjBcdTIzMjFceGY3XHUyMjQ4XHhiMFx1MjIxOVx4YjdcdTIyMWFcdTIwN2ZceGIyXHUyNWEwXHhhMCIsbWU9W10sQj17fSxFPTA7RSE9TC5sZW5ndGg7''@;'; + put 'put ''KytFKTY1NTMzIT09TC5jaGFyQ29kZUF0KEUpJiYoQltMLmNoYXJBdChFKV09RSksbWVbRV09TC5jaGFyQXQoRSk7cmV0dXJue2VuYzpCLGRlYzptZX19KCksSmVbOTMyXT1mdW5jdGlvbigpe3ZhciBFLEw9W10sbWU9e30sQj1bXTtmb3IoQlswXT0iXDBceDAxXHgwMlx4MDNceDA0XHgwNVx4''@;'; + put 'put ''MDZceDA3XGJcdFxuXHZcZlxyXHgwZVx4MGZceDEwXHgxMVx4MTJceDEzXHgxNFx4MTVceDE2XHgxN1x4MThceDE5XHgxYVx4MWJceDFjXHgxZFx4MWVceDFmICFcIiMkJSYnKCkqKywtLi8wMTIzNDU2Nzg5Ojs8PT4/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaW1xcXV5fYGFiY2RlZmdo''@;'; + put 'put ''aWprbG1ub3BxcnN0dXZ3eHl6e3x9flx4N2ZcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmNjFcdWZmNjJcdWZmNjNcdWZmNjRcdWZmNjVcdWZmNjZcdWZmNjdcdWZmNjhcdWZmNjlcdWZmNmFcdWZmNmJcdWZmNmNcdWZmNmRcdWZmNmVcdWZmNmZcdWZmNzBcdWZmNzFcdWZm''@;'; + put 'put ''NzJcdWZmNzNcdWZmNzRcdWZmNzVcdWZmNzZcdWZmNzdcdWZmNzhcdWZmNzlcdWZmN2FcdWZmN2JcdWZmN2NcdWZmN2RcdWZmN2VcdWZmN2ZcdWZmODBcdWZmODFcdWZmODJcdWZmODNcdWZmODRcdWZmODVcdWZmODZcdWZmODdcdWZmODhcdWZmODlcdWZmOGFcdWZmOGJcdWZmOGNcdWZmOGRc''@;'; + put 'put ''dWZmOGVcdWZmOGZcdWZmOTBcdWZmOTFcdWZmOTJcdWZmOTNcdWZmOTRcdWZmOTVcdWZmOTZcdWZmOTdcdWZmOThcdWZmOTlcdWZmOWFcdWZmOWJcdWZmOWNcdWZmOWRcdWZmOWVcdWZmOWZcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlswXS5sZW5ndGg7''@;'; + put 'put ''KytFKTY1NTMzIT09QlswXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlswXVtFXV09MCtFLExbMCtFXT1CWzBdW0VdKTtmb3IoQlsxMjldPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTMwMDBcdTMwMDFcdTMwMDJcdWZmMGNcdWZmMGVc''@;'; + put 'put ''dTMwZmJcdWZmMWFcdWZmMWJcdWZmMWZcdWZmMDFcdTMwOWJcdTMwOWNceGI0XHVmZjQwXHhhOFx1ZmYzZVx1ZmZlM1x1ZmYzZlx1MzBmZFx1MzBmZVx1MzA5ZFx1MzA5ZVx1MzAwM1x1NGVkZFx1MzAwNVx1MzAwNlx1MzAwN1x1MzBmY1x1MjAxNVx1MjAxMFx1ZmYwZlx1ZmYzY1x1ZmY1ZVx1''@;'; + put 'put ''MjIyNVx1ZmY1Y1x1MjAyNlx1MjAyNVx1MjAxOFx1MjAxOVx1MjAxY1x1MjAxZFx1ZmYwOFx1ZmYwOVx1MzAxNFx1MzAxNVx1ZmYzYlx1ZmYzZFx1ZmY1Ylx1ZmY1ZFx1MzAwOFx1MzAwOVx1MzAwYVx1MzAwYlx1MzAwY1x1MzAwZFx1MzAwZVx1MzAwZlx1MzAxMFx1MzAxMVx1ZmYwYlx1ZmYw''@;'; + put 'put ''ZFx4YjFceGQ3XHVmZmZkXHhmN1x1ZmYxZFx1MjI2MFx1ZmYxY1x1ZmYxZVx1MjI2Nlx1MjI2N1x1MjIxZVx1MjIzNFx1MjY0Mlx1MjY0MFx4YjBcdTIwMzJcdTIwMzNcdTIxMDNcdWZmZTVcdWZmMDRcdWZmZTBcdWZmZTFcdWZmMDVcdWZmMDNcdWZmMDZcdWZmMGFcdWZmMjBceGE3XHUyNjA2''@;'; + put 'put ''XHUyNjA1XHUyNWNiXHUyNWNmXHUyNWNlXHUyNWM3XHUyNWM2XHUyNWExXHUyNWEwXHUyNWIzXHUyNWIyXHUyNWJkXHUyNWJjXHUyMDNiXHUzMDEyXHUyMTkyXHUyMTkwXHUyMTkxXHUyMTkzXHUzMDEzXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHUyMjA4XHUyMjBiXHUyMjg2XHUyMjg3XHUyMjgyXHUyMjgzXHUyMjJhXHUyMjI5XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUyMjI3XHUyMjI4XHVmZmUyXHUyMWQyXHUyMWQ0XHUyMjAwXHUyMjAzXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUyMjIwXHUyMmE1XHUyMzEyXHUyMjAyXHUyMjA3XHUyMjYxXHUyMjUyXHUyMjZhXHUyMjZiXHUyMjFhXHUyMjNkXHUyMjFkXHUyMjM1XHUyMjJiXHUyMjJjXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUyMTJiXHUyMDMwXHUyNjZmXHUyNjZkXHUyNjZhXHUyMDIwXHUyMDIxXHhiNlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MjVlZlx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzEyOV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTI5''@;'; + put 'put ''XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxMjldW0VdXT0zMzAyNCtFLExbMzMwMjQrRV09QlsxMjldW0VdKTtmb3IoQlsxMzBdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmMTBcdWZmMTFcdWZmMTJcdWZmMTNcdWZmMTRcdWZmMTVcdWZmMTZcdWZmMTdcdWZmMThcdWZmMTlcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmMjFc''@;'; + put 'put ''dWZmMjJcdWZmMjNcdWZmMjRcdWZmMjVcdWZmMjZcdWZmMjdcdWZmMjhcdWZmMjlcdWZmMmFcdWZmMmJcdWZmMmNcdWZmMmRcdWZmMmVcdWZmMmZcdWZmMzBcdWZmMzFcdWZmMzJcdWZmMzNcdWZmMzRcdWZmMzVcdWZmMzZcdWZmMzdcdWZmMzhcdWZmMzlcdWZmM2FcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmNDFcdWZmNDJcdWZmNDNcdWZmNDRcdWZmNDVcdWZmNDZcdWZmNDdcdWZmNDhcdWZmNDlcdWZmNGFcdWZmNGJcdWZmNGNcdWZmNGRcdWZmNGVcdWZmNGZcdWZmNTBcdWZmNTFcdWZmNTJcdWZmNTNcdWZmNTRcdWZmNTVcdWZmNTZcdWZmNTdc''@;'; + put 'put ''dWZmNThcdWZmNTlcdWZmNWFcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTMwNDFcdTMwNDJcdTMwNDNcdTMwNDRcdTMwNDVcdTMwNDZcdTMwNDdcdTMwNDhcdTMwNDlcdTMwNGFcdTMwNGJcdTMwNGNcdTMwNGRcdTMwNGVcdTMwNGZcdTMwNTBcdTMwNTFcdTMwNTJcdTMwNTNcdTMwNTRcdTMw''@;'; + put 'put ''NTVcdTMwNTZcdTMwNTdcdTMwNThcdTMwNTlcdTMwNWFcdTMwNWJcdTMwNWNcdTMwNWRcdTMwNWVcdTMwNWZcdTMwNjBcdTMwNjFcdTMwNjJcdTMwNjNcdTMwNjRcdTMwNjVcdTMwNjZcdTMwNjdcdTMwNjhcdTMwNjlcdTMwNmFcdTMwNmJcdTMwNmNcdTMwNmRcdTMwNmVcdTMwNmZcdTMwNzBc''@;'; + put 'put ''dTMwNzFcdTMwNzJcdTMwNzNcdTMwNzRcdTMwNzVcdTMwNzZcdTMwNzdcdTMwNzhcdTMwNzlcdTMwN2FcdTMwN2JcdTMwN2NcdTMwN2RcdTMwN2VcdTMwN2ZcdTMwODBcdTMwODFcdTMwODJcdTMwODNcdTMwODRcdTMwODVcdTMwODZcdTMwODdcdTMwODhcdTMwODlcdTMwOGFcdTMwOGJcdTMw''@;'; + put 'put ''OGNcdTMwOGRcdTMwOGVcdTMwOGZcdTMwOTBcdTMwOTFcdTMwOTJcdTMwOTNcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxMzBdLmxlbmd0aDsrK0Up''@;'; + put 'put ''NjU1MzMhPT1CWzEzMF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTMwXVtFXV09MzMyODArRSxMWzMzMjgwK0VdPUJbMTMwXVtFXSk7Zm9yKEJbMTMxXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUzMGExXHUzMGEyXHUzMGEzXHUz''@;'; + put 'put ''MGE0XHUzMGE1XHUzMGE2XHUzMGE3XHUzMGE4XHUzMGE5XHUzMGFhXHUzMGFiXHUzMGFjXHUzMGFkXHUzMGFlXHUzMGFmXHUzMGIwXHUzMGIxXHUzMGIyXHUzMGIzXHUzMGI0XHUzMGI1XHUzMGI2XHUzMGI3XHUzMGI4XHUzMGI5XHUzMGJhXHUzMGJiXHUzMGJjXHUzMGJkXHUzMGJlXHUzMGJm''@;'; + put 'put ''XHUzMGMwXHUzMGMxXHUzMGMyXHUzMGMzXHUzMGM0XHUzMGM1XHUzMGM2XHUzMGM3XHUzMGM4XHUzMGM5XHUzMGNhXHUzMGNiXHUzMGNjXHUzMGNkXHUzMGNlXHUzMGNmXHUzMGQwXHUzMGQxXHUzMGQyXHUzMGQzXHUzMGQ0XHUzMGQ1XHUzMGQ2XHUzMGQ3XHUzMGQ4XHUzMGQ5XHUzMGRhXHUz''@;'; + put 'put ''MGRiXHUzMGRjXHUzMGRkXHUzMGRlXHUzMGRmXHVmZmZkXHUzMGUwXHUzMGUxXHUzMGUyXHUzMGUzXHUzMGU0XHUzMGU1XHUzMGU2XHUzMGU3XHUzMGU4XHUzMGU5XHUzMGVhXHUzMGViXHUzMGVjXHUzMGVkXHUzMGVlXHUzMGVmXHUzMGYwXHUzMGYxXHUzMGYyXHUzMGYzXHUzMGY0XHUzMGY1''@;'; + put 'put ''XHUzMGY2XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUwMzkxXHUwMzkyXHUwMzkzXHUwMzk0XHUwMzk1XHUwMzk2XHUwMzk3XHUwMzk4XHUwMzk5XHUwMzlhXHUwMzliXHUwMzljXHUwMzlkXHUwMzllXHUwMzlmXHUwM2EwXHUwM2ExXHUwM2EzXHUw''@;'; + put 'put ''M2E0XHUwM2E1XHUwM2E2XHUwM2E3XHUwM2E4XHUwM2E5XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUwM2IxXHUwM2IyXHUwM2IzXHUwM2I0XHUwM2I1XHUwM2I2XHUwM2I3XHUwM2I4XHUwM2I5XHUwM2JhXHUwM2JiXHUwM2JjXHUwM2JkXHUwM2Jl''@;'; + put 'put ''XHUwM2JmXHUwM2MwXHUwM2MxXHUwM2MzXHUwM2M0XHUwM2M1XHUwM2M2XHUwM2M3XHUwM2M4XHUwM2M5XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTMx''@;'; + put 'put ''XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxMzFdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzEzMV1bRV1dPTMzNTM2K0UsTFszMzUzNitFXT1CWzEzMV1bRV0pO2ZvcihCWzEzMl09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MDQxMFx1''@;'; + put 'put ''MDQxMVx1MDQxMlx1MDQxM1x1MDQxNFx1MDQxNVx1MDQwMVx1MDQxNlx1MDQxN1x1MDQxOFx1MDQxOVx1MDQxYVx1MDQxYlx1MDQxY1x1MDQxZFx1MDQxZVx1MDQxZlx1MDQyMFx1MDQyMVx1MDQyMlx1MDQyM1x1MDQyNFx1MDQyNVx1MDQyNlx1MDQyN1x1MDQyOFx1MDQyOVx1MDQyYVx1MDQy''@;'; + put 'put ''Ylx1MDQyY1x1MDQyZFx1MDQyZVx1MDQyZlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MDQzMFx1MDQzMVx1MDQzMlx1MDQzM1x1MDQzNFx1MDQzNVx1MDQ1MVx1MDQzNlx1''@;'; + put 'put ''MDQzN1x1MDQzOFx1MDQzOVx1MDQzYVx1MDQzYlx1MDQzY1x1MDQzZFx1ZmZmZFx1MDQzZVx1MDQzZlx1MDQ0MFx1MDQ0MVx1MDQ0Mlx1MDQ0M1x1MDQ0NFx1MDQ0NVx1MDQ0Nlx1MDQ0N1x1MDQ0OFx1MDQ0OVx1MDQ0YVx1MDQ0Ylx1MDQ0Y1x1MDQ0ZFx1MDQ0ZVx1MDQ0Zlx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MjUwMFx1MjUwMlx1MjUwY1x1MjUxMFx1MjUxOFx1MjUxNFx1MjUxY1x1MjUyY1x1MjUyNFx1MjUzNFx1MjUzY1x1MjUwMVx1MjUwM1x1MjUwZlx1MjUxM1x1MjUxYlx1''@;'; + put 'put ''MjUxN1x1MjUyM1x1MjUzM1x1MjUyYlx1MjUzYlx1MjU0Ylx1MjUyMFx1MjUyZlx1MjUyOFx1MjUzN1x1MjUzZlx1MjUxZFx1MjUzMFx1MjUyNVx1MjUzOFx1MjU0Mlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIp''@;'; + put 'put ''LEU9MDtFIT1CWzEzMl0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTMyXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxMzJdW0VdXT0zMzc5MitFLExbMzM3OTIrRV09QlsxMzJdW0VdKTtmb3IoQlsxMzVdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdTI0NjBcdTI0NjFcdTI0NjJcdTI0NjNcdTI0NjRcdTI0NjVcdTI0NjZcdTI0NjdcdTI0NjhcdTI0NjlcdTI0NmFcdTI0NmJcdTI0NmNcdTI0NmRcdTI0NmVcdTI0NmZcdTI0NzBcdTI0NzFcdTI0NzJcdTI0NzNcdTIxNjBcdTIxNjFcdTIxNjJcdTIxNjNcdTIxNjRcdTIxNjVcdTIx''@;'; + put 'put ''NjZcdTIxNjdcdTIxNjhcdTIxNjlcdWZmZmRcdTMzNDlcdTMzMTRcdTMzMjJcdTMzNGRcdTMzMThcdTMzMjdcdTMzMDNcdTMzMzZcdTMzNTFcdTMzNTdcdTMzMGRcdTMzMjZcdTMzMjNcdTMzMmJcdTMzNGFcdTMzM2JcdTMzOWNcdTMzOWRcdTMzOWVcdTMzOGVcdTMzOGZcdTMzYzRcdTMzYTFc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTMzN2JcdWZmZmRcdTMwMWRcdTMwMWZcdTIxMTZcdTMzY2RcdTIxMjFcdTMyYTRcdTMyYTVcdTMyYTZcdTMyYTdcdTMyYThcdTMyMzFcdTMyMzJcdTMyMzlcdTMzN2VcdTMzN2RcdTMzN2NcdTIyNTJcdTIy''@;'; + put 'put ''NjFcdTIyMmJcdTIyMmVcdTIyMTFcdTIyMWFcdTIyYTVcdTIyMjBcdTIyMWZcdTIyYmZcdTIyMzVcdTIyMjlcdTIyMmFcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxMzVdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzEzNV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTM1XVtFXV09MzQ1NjArRSxMWzM0NTYwK0VdPUJbMTM1XVtFXSk7Zm9yKEJbMTM2XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU0ZTljXHU1NTE2XHU1YTAzXHU5NjNmXHU1NGMwXHU2MTFiXHU2MzI4XHU1OWY2XHU5MDIyXHU4NDc1XHU4MzFjXHU3YTUw''@;'; + put 'put ''XHU2MGFhXHU2M2UxXHU2ZTI1XHU2NWVkXHU4NDY2XHU4MmE2XHU5YmY1XHU2ODkzXHU1NzI3XHU2NWExXHU2MjcxXHU1YjliXHU1OWQwXHU4NjdiXHU5OGY0XHU3ZDYyXHU3ZGJlXHU5YjhlXHU2MjE2XHU3YzlmXHU4OGI3XHU1Yjg5XHU1ZWI1XHU2MzA5XHU2Njk3XHU2ODQ4XHU5NWM3XHU5''@;'; + put 'put ''NzhkXHU2NzRmXHU0ZWU1XHU0ZjBhXHU0ZjRkXHU0ZjlkXHU1MDQ5XHU1NmYyXHU1OTM3XHU1OWQ0XHU1YTAxXHU1YzA5XHU2MGRmXHU2MTBmXHU2MTcwXHU2NjEzXHU2OTA1XHU3MGJhXHU3NTRmXHU3NTcwXHU3OWZiXHU3ZGFkXHU3ZGVmXHU4MGMzXHU4NDBlXHU4ODYzXHU4YjAyXHU5MDU1''@;'; + put 'put ''XHU5MDdhXHU1MzNiXHU0ZTk1XHU0ZWE1XHU1N2RmXHU4MGIyXHU5MGMxXHU3OGVmXHU0ZTAwXHU1OGYxXHU2ZWEyXHU5MDM4XHU3YTMyXHU4MzI4XHU4MjhiXHU5YzJmXHU1MTQxXHU1MzcwXHU1NGJkXHU1NGUxXHU1NmUwXHU1OWZiXHU1ZjE1XHU5OGYyXHU2ZGViXHU4MGU0XHU4NTJkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTM2XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxMzZdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzEzNl1bRV1dPTM0ODE2K0UsTFszNDgxNitFXT1CWzEzNl1bRV0pO2ZvcihCWzEzN109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OTY2Mlx1OTY3MFx1OTZhMFx1OTdmYlx1NTQwYlx1NTNmM1x1NWI4N1x1NzBjZlx1N2ZiZFx1OGZjMlx1OTZlOFx1NTM2Zlx1OWQ1Y1x1N2FiYVx1NGUxMVx1Nzg5M1x1ODFmY1x1NmUyNlx1NTYxOFx1NTUwNFx1NmIxZFx1ODUxYVx1''@;'; + put 'put ''OWMzYlx1NTllNVx1NTNhOVx1NmQ2Nlx1NzRkY1x1OTU4Zlx1NTY0Mlx1NGU5MVx1OTA0Ylx1OTZmMlx1ODM0Zlx1OTkwY1x1NTNlMVx1NTViNlx1NWIzMFx1NWY3MVx1NjYyMFx1NjZmM1x1NjgwNFx1NmMzOFx1NmNmM1x1NmQyOVx1NzQ1Ylx1NzZjOFx1N2E0ZVx1OTgzNFx1ODJmMVx1ODg1''@;'; + put 'put ''Ylx1OGE2MFx1OTJlZFx1NmRiMlx1NzVhYlx1NzZjYVx1OTljNVx1NjBhNlx1OGIwMVx1OGQ4YVx1OTViMlx1Njk4ZVx1NTNhZFx1NTE4Nlx1ZmZmZFx1NTcxMlx1NTgzMFx1NTk0NFx1NWJiNFx1NWVmNlx1NjAyOFx1NjNhOVx1NjNmNFx1NmNiZlx1NmYxNFx1NzA4ZVx1NzExNFx1NzE1OVx1''@;'; + put 'put ''NzFkNVx1NzMzZlx1N2UwMVx1ODI3Nlx1ODJkMVx1ODU5N1x1OTA2MFx1OTI1Ylx1OWQxYlx1NTg2OVx1NjViY1x1NmM1YVx1NzUyNVx1NTFmOVx1NTkyZVx1NTk2NVx1NWY4MFx1NWZkY1x1NjJiY1x1NjVmYVx1NmEyYVx1NmIyN1x1NmJiNFx1NzM4Ylx1N2ZjMVx1ODk1Nlx1OWQyY1x1OWQw''@;'; + put 'put ''ZVx1OWVjNFx1NWNhMVx1NmM5Nlx1ODM3Ylx1NTEwNFx1NWM0Ylx1NjFiNlx1ODFjNlx1Njg3Nlx1NzI2MVx1NGU1OVx1NGZmYVx1NTM3OFx1NjA2OVx1NmUyOVx1N2E0Zlx1OTdmM1x1NGUwYlx1NTMxNlx1NGVlZVx1NGY1NVx1NGYzZFx1NGZhMVx1NGY3M1x1NTJhMFx1NTNlZlx1NTYwOVx1''@;'; + put 'put ''NTkwZlx1NWFjMVx1NWJiNlx1NWJlMVx1NzlkMVx1NjY4N1x1Njc5Y1x1NjdiNlx1NmI0Y1x1NmNiM1x1NzA2Ylx1NzNjMlx1Nzk4ZFx1NzliZVx1N2EzY1x1N2I4N1x1ODJiMVx1ODJkYlx1ODMwNFx1ODM3N1x1ODNlZlx1ODNkM1x1ODc2Nlx1OGFiMlx1NTYyOVx1OGNhOFx1OGZlNlx1OTA0''@;'; + put 'put ''ZVx1OTcxZVx1ODY4YVx1NGZjNFx1NWNlOFx1NjIxMVx1NzI1OVx1NzUzYlx1ODFlNVx1ODJiZFx1ODZmZVx1OGNjMFx1OTZjNVx1OTkxM1x1OTlkNVx1NGVjYlx1NGYxYVx1ODllM1x1NTZkZVx1NTg0YVx1NThjYVx1NWVmYlx1NWZlYlx1NjAyYVx1NjA5NFx1NjA2Mlx1NjFkMFx1NjIxMlx1''@;'; + put 'put ''NjJkMFx1NjUzOVx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzEzN10ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTM3XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxMzddW0VdXT0zNTA3MitFLExbMzUwNzIrRV09QlsxMzddW0VdKTtmb3IoQlsxMzhdPSJcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTliNDFcdTY2NjZcdTY4YjBcdTZkNzdcdTcwNzBcdTc1NGNcdTc2ODZcdTdkNzVcdTgyYTVcdTg3ZjlcdTk1OGJcdTk2OGVcdThjOWRcdTUxZjFcdTUyYmVcdTU5MTZcdTU0YjNcdTViYjNcdTVkMTZcdTYxNjhc''@;'; + put 'put ''dTY5ODJcdTZkYWZcdTc4OGRcdTg0Y2JcdTg4NTdcdThhNzJcdTkzYTdcdTlhYjhcdTZkNmNcdTk5YThcdTg2ZDlcdTU3YTNcdTY3ZmZcdTg2Y2VcdTkyMGVcdTUyODNcdTU2ODdcdTU0MDRcdTVlZDNcdTYyZTFcdTY0YjlcdTY4M2NcdTY4MzhcdTZiYmJcdTczNzJcdTc4YmFcdTdhNmJcdTg5''@;'; + put 'put ''OWFcdTg5ZDJcdThkNmJcdThmMDNcdTkwZWRcdTk1YTNcdTk2OTRcdTk3NjlcdTViNjZcdTVjYjNcdTY5N2RcdTk4NGRcdTk4NGVcdTYzOWJcdTdiMjBcdTZhMmJcdWZmZmRcdTZhN2ZcdTY4YjZcdTljMGRcdTZmNWZcdTUyNzJcdTU1OWRcdTYwNzBcdTYyZWNcdTZkM2JcdTZlMDdcdTZlZDFc''@;'; + put 'put ''dTg0NWJcdTg5MTBcdThmNDRcdTRlMTRcdTljMzlcdTUzZjZcdTY5MWJcdTZhM2FcdTk3ODRcdTY4MmFcdTUxNWNcdTdhYzNcdTg0YjJcdTkxZGNcdTkzOGNcdTU2NWJcdTlkMjhcdTY4MjJcdTgzMDVcdTg0MzFcdTdjYTVcdTUyMDhcdTgyYzVcdTc0ZTZcdTRlN2VcdTRmODNcdTUxYTBcdTVi''@;'; + put 'put ''ZDJcdTUyMGFcdTUyZDhcdTUyZTdcdTVkZmJcdTU1OWFcdTU4MmFcdTU5ZTZcdTViOGNcdTViOThcdTViZGJcdTVlNzJcdTVlNzlcdTYwYTNcdTYxMWZcdTYxNjNcdTYxYmVcdTYzZGJcdTY1NjJcdTY3ZDFcdTY4NTNcdTY4ZmFcdTZiM2VcdTZiNTNcdTZjNTdcdTZmMjJcdTZmOTdcdTZmNDVc''@;'; + put 'put ''dTc0YjBcdTc1MThcdTc2ZTNcdTc3MGJcdTdhZmZcdTdiYTFcdTdjMjFcdTdkZTlcdTdmMzZcdTdmZjBcdTgwOWRcdTgyNjZcdTgzOWVcdTg5YjNcdThhY2NcdThjYWJcdTkwODRcdTk0NTFcdTk1OTNcdTk1OTFcdTk1YTJcdTk2NjVcdTk3ZDNcdTk5MjhcdTgyMThcdTRlMzhcdTU0MmJcdTVj''@;'; + put 'put ''YjhcdTVkY2NcdTczYTlcdTc2NGNcdTc3M2NcdTVjYTlcdTdmZWJcdThkMGJcdTk2YzFcdTk4MTFcdTk4NTRcdTk4NThcdTRmMDFcdTRmMGVcdTUzNzFcdTU1OWNcdTU2NjhcdTU3ZmFcdTU5NDdcdTViMDlcdTViYzRcdTVjOTBcdTVlMGNcdTVlN2VcdTVmY2NcdTYzZWVcdTY3M2FcdTY1ZDdc''@;'; + put 'put ''dTY1ZTJcdTY3MWZcdTY4Y2JcdTY4YzRcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxMzhdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzEzOF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTM4XVtFXV09MzUzMjgrRSxMWzM1MzI4K0VdPUJbMTM4XVtFXSk7Zm9yKEJbMTM5''@;'; + put 'put ''XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2YTVmXHU1ZTMwXHU2YmM1XHU2YzE3XHU2YzdkXHU3NTdmXHU3OTQ4XHU1YjYzXHU3YTAwXHU3ZDAwXHU1ZmJkXHU4OThmXHU4YTE4XHU4Y2I0XHU4ZDc3XHU4ZWNjXHU4ZjFkXHU5OGUy''@;'; + put 'put ''XHU5YTBlXHU5YjNjXHU0ZTgwXHU1MDdkXHU1MTAwXHU1OTkzXHU1YjljXHU2MjJmXHU2MjgwXHU2NGVjXHU2YjNhXHU3MmEwXHU3NTkxXHU3OTQ3XHU3ZmE5XHU4N2ZiXHU4YWJjXHU4YjcwXHU2M2FjXHU4M2NhXHU5N2EwXHU1NDA5XHU1NDAzXHU1NWFiXHU2ODU0XHU2YTU4XHU4YTcwXHU3''@;'; + put 'put ''ODI3XHU2Nzc1XHU5ZWNkXHU1Mzc0XHU1YmEyXHU4MTFhXHU4NjUwXHU5MDA2XHU0ZTE4XHU0ZTQ1XHU0ZWM3XHU0ZjExXHU1M2NhXHU1NDM4XHU1YmFlXHU1ZjEzXHU2MDI1XHU2NTUxXHVmZmZkXHU2NzNkXHU2YzQyXHU2YzcyXHU2Y2UzXHU3MDc4XHU3NDAzXHU3YTc2XHU3YWFlXHU3YjA4''@;'; + put 'put ''XHU3ZDFhXHU3Y2ZlXHU3ZDY2XHU2NWU3XHU3MjViXHU1M2JiXHU1YzQ1XHU1ZGU4XHU2MmQyXHU2MmUwXHU2MzE5XHU2ZTIwXHU4NjVhXHU4YTMxXHU4ZGRkXHU5MmY4XHU2ZjAxXHU3OWE2XHU5YjVhXHU0ZWE4XHU0ZWFiXHU0ZWFjXHU0ZjliXHU0ZmEwXHU1MGQxXHU1MTQ3XHU3YWY2XHU1''@;'; + put 'put ''MTcxXHU1MWY2XHU1MzU0XHU1MzIxXHU1MzdmXHU1M2ViXHU1NWFjXHU1ODgzXHU1Y2UxXHU1ZjM3XHU1ZjRhXHU2MDJmXHU2MDUwXHU2MDZkXHU2MzFmXHU2NTU5XHU2YTRiXHU2Y2MxXHU3MmMyXHU3MmVkXHU3N2VmXHU4MGY4XHU4MTA1XHU4MjA4XHU4NTRlXHU5MGY3XHU5M2UxXHU5N2Zm''@;'; + put 'put ''XHU5OTU3XHU5YTVhXHU0ZWYwXHU1MWRkXHU1YzJkXHU2NjgxXHU2OTZkXHU1YzQwXHU2NmYyXHU2OTc1XHU3Mzg5XHU2ODUwXHU3YzgxXHU1MGM1XHU1MmU0XHU1NzQ3XHU1ZGZlXHU5MzI2XHU2NWE0XHU2YjIzXHU2YjNkXHU3NDM0XHU3OTgxXHU3OWJkXHU3YjRiXHU3ZGNhXHU4MmI5XHU4''@;'; + put 'put ''M2NjXHU4ODdmXHU4OTVmXHU4YjM5XHU4ZmQxXHU5MWQxXHU1NDFmXHU5MjgwXHU0ZTVkXHU1MDM2XHU1M2U1XHU1MzNhXHU3MmQ3XHU3Mzk2XHU3N2U5XHU4MmU2XHU4ZWFmXHU5OWM2XHU5OWM4XHU5OWQyXHU1MTc3XHU2MTFhXHU4NjVlXHU1NWIwXHU3YTdhXHU1MDc2XHU1YmQzXHU5MDQ3''@;'; + put 'put ''XHU5Njg1XHU0ZTMyXHU2YWRiXHU5MWU3XHU1YzUxXHU1YzQ4XHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTM5XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxMzldW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzEzOV1bRV1dPTM1NTg0K0UsTFszNTU4NCtFXT1CWzEzOV1b''@;'; + put 'put ''RV0pO2ZvcihCWzE0MF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NjM5OFx1N2E5Zlx1NmM5M1x1OTc3NFx1OGY2MVx1N2FhYVx1NzE4YVx1OTY4OFx1N2M4Mlx1NjgxN1x1N2U3MFx1Njg1MVx1OTM2Y1x1NTJmMlx1NTQxYlx1ODVh''@;'; + put 'put ''Ylx1OGExM1x1N2ZhNFx1OGVjZFx1OTBlMVx1NTM2Nlx1ODg4OFx1Nzk0MVx1NGZjMlx1NTBiZVx1NTIxMVx1NTE0NFx1NTU1M1x1NTcyZFx1NzNlYVx1NTc4Ylx1NTk1MVx1NWY2Mlx1NWY4NFx1NjA3NVx1NjE3Nlx1NjE2N1x1NjFhOVx1NjNiMlx1NjQzYVx1NjU2Y1x1NjY2Zlx1Njg0Mlx1''@;'; + put 'put ''NmUxM1x1NzU2Nlx1N2EzZFx1N2NmYlx1N2Q0Y1x1N2Q5OVx1N2U0Ylx1N2Y2Ylx1ODMwZVx1ODM0YVx1ODZjZFx1OGEwOFx1OGE2M1x1OGI2Nlx1OGVmZFx1OTgxYVx1OWQ4Zlx1ODJiOFx1OGZjZVx1OWJlOFx1ZmZmZFx1NTI4N1x1NjIxZlx1NjQ4M1x1NmZjMFx1OTY5OVx1Njg0MVx1NTA5''@;'; + put 'put ''MVx1NmIyMFx1NmM3YVx1NmY1NFx1N2E3NFx1N2Q1MFx1ODg0MFx1OGEyM1x1NjcwOFx1NGVmNlx1NTAzOVx1NTAyNlx1NTA2NVx1NTE3Y1x1NTIzOFx1NTI2M1x1NTVhN1x1NTcwZlx1NTgwNVx1NWFjY1x1NWVmYVx1NjFiMlx1NjFmOFx1NjJmM1x1NjM3Mlx1NjkxY1x1NmEyOVx1NzI3ZFx1''@;'; + put 'put ''NzJhY1x1NzMyZVx1NzgxNFx1Nzg2Zlx1N2Q3OVx1NzcwY1x1ODBhOVx1ODk4Ylx1OGIxOVx1OGNlMlx1OGVkMlx1OTA2M1x1OTM3NVx1OTY3YVx1OTg1NVx1OWExM1x1OWU3OFx1NTE0M1x1NTM5Zlx1NTNiM1x1NWU3Ylx1NWYyNlx1NmUxYlx1NmU5MFx1NzM4NFx1NzNmZVx1N2Q0M1x1ODIz''@;'; + put 'put ''N1x1OGEwMFx1OGFmYVx1OTY1MFx1NGU0ZVx1NTAwYlx1NTNlNFx1NTQ3Y1x1NTZmYVx1NTlkMVx1NWI2NFx1NWRmMVx1NWVhYlx1NWYyN1x1NjIzOFx1NjU0NVx1NjdhZlx1NmU1Nlx1NzJkMFx1N2NjYVx1ODhiNFx1ODBhMVx1ODBlMVx1ODNmMFx1ODY0ZVx1OGE4N1x1OGRlOFx1OTIzN1x1''@;'; + put 'put ''OTZjN1x1OTg2N1x1OWYxM1x1NGU5NFx1NGU5Mlx1NGYwZFx1NTM0OFx1NTQ0OVx1NTQzZVx1NWEyZlx1NWY4Y1x1NWZhMVx1NjA5Zlx1NjhhN1x1NmE4ZVx1NzQ1YVx1Nzg4MVx1OGE5ZVx1OGFhNFx1OGI3N1x1OTE5MFx1NGU1ZVx1OWJjOVx1NGVhNFx1NGY3Y1x1NGZhZlx1NTAxOVx1NTAx''@;'; + put 'put ''Nlx1NTE0OVx1NTE2Y1x1NTI5Zlx1NTJiOVx1NTJmZVx1NTM5YVx1NTNlM1x1NTQxMVx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE0MF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTQwXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxNDBdW0VdXT0zNTg0MCtFLExbMzU4''@;'; + put 'put ''NDArRV09QlsxNDBdW0VdKTtmb3IoQlsxNDFdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTU0MGVcdTU1ODlcdTU3NTFcdTU3YTJcdTU5N2RcdTViNTRcdTViNWRcdTViOGZcdTVkZTVcdTVkZTdcdTVkZjdcdTVlNzhcdTVlODNcdTVl''@;'; + put 'put ''OWFcdTVlYjdcdTVmMThcdTYwNTJcdTYxNGNcdTYyOTdcdTYyZDhcdTYzYTdcdTY1M2JcdTY2MDJcdTY2NDNcdTY2ZjRcdTY3NmRcdTY4MjFcdTY4OTdcdTY5Y2JcdTZjNWZcdTZkMmFcdTZkNjlcdTZlMmZcdTZlOWRcdTc1MzJcdTc2ODdcdTc4NmNcdTdhM2ZcdTdjZTBcdTdkMDVcdTdkMThc''@;'; + put 'put ''dTdkNWVcdTdkYjFcdTgwMTVcdTgwMDNcdTgwYWZcdTgwYjFcdTgxNTRcdTgxOGZcdTgyMmFcdTgzNTJcdTg4NGNcdTg4NjFcdThiMWJcdThjYTJcdThjZmNcdTkwY2FcdTkxNzVcdTkyNzFcdTc4M2ZcdTkyZmNcdTk1YTRcdTk2NGRcdWZmZmRcdTk4MDVcdTk5OTlcdTlhZDhcdTlkM2JcdTUy''@;'; + put 'put ''NWJcdTUyYWJcdTUzZjdcdTU0MDhcdTU4ZDVcdTYyZjdcdTZmZTBcdThjNmFcdThmNWZcdTllYjlcdTUxNGJcdTUyM2JcdTU0NGFcdTU2ZmRcdTdhNDBcdTkxNzdcdTlkNjBcdTllZDJcdTczNDRcdTZmMDlcdTgxNzBcdTc1MTFcdTVmZmRcdTYwZGFcdTlhYThcdTcyZGJcdThmYmNcdTZiNjRc''@;'; + put 'put ''dTk4MDNcdTRlY2FcdTU2ZjBcdTU3NjRcdTU4YmVcdTVhNWFcdTYwNjhcdTYxYzdcdTY2MGZcdTY2MDZcdTY4MzlcdTY4YjFcdTZkZjdcdTc1ZDVcdTdkM2FcdTgyNmVcdTliNDJcdTRlOWJcdTRmNTBcdTUzYzlcdTU1MDZcdTVkNmZcdTVkZTZcdTVkZWVcdTY3ZmJcdTZjOTlcdTc0NzNcdTc4''@;'; + put 'put ''MDJcdThhNTBcdTkzOTZcdTg4ZGZcdTU3NTBcdTVlYTdcdTYzMmJcdTUwYjVcdTUwYWNcdTUxOGRcdTY3MDBcdTU0YzlcdTU4NWVcdTU5YmJcdTViYjBcdTVmNjlcdTYyNGRcdTYzYTFcdTY4M2RcdTZiNzNcdTZlMDhcdTcwN2RcdTkxYzdcdTcyODBcdTc4MTVcdTc4MjZcdTc5NmRcdTY1OGVc''@;'; + put 'put ''dTdkMzBcdTgzZGNcdTg4YzFcdThmMDlcdTk2OWJcdTUyNjRcdTU3MjhcdTY3NTBcdTdmNmFcdThjYTFcdTUxYjRcdTU3NDJcdTk2MmFcdTU4M2FcdTY5OGFcdTgwYjRcdTU0YjJcdTVkMGVcdTU3ZmNcdTc4OTVcdTlkZmFcdTRmNWNcdTUyNGFcdTU0OGJcdTY0M2VcdTY2MjhcdTY3MTRcdTY3''@;'; + put 'put ''ZjVcdTdhODRcdTdiNTZcdTdkMjJcdTkzMmZcdTY4NWNcdTliYWRcdTdiMzlcdTUzMTlcdTUxOGFcdTUyMzdcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxNDFdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE0MV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTQxXVtFXV09''@;'; + put 'put ''MzYwOTYrRSxMWzM2MDk2K0VdPUJbMTQxXVtFXSk7Zm9yKEJbMTQyXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1YmRmXHU2MmY2XHU2NGFlXHU2NGU2XHU2NzJkXHU2YmJhXHU4NWE5XHU5NmQxXHU3NjkwXHU5YmQ2XHU2MzRjXHU5''@;'; + put 'put ''MzA2XHU5YmFiXHU3NmJmXHU2NjUyXHU0ZTA5XHU1MDk4XHU1M2MyXHU1YzcxXHU2MGU4XHU2NDkyXHU2NTYzXHU2ODVmXHU3MWU2XHU3M2NhXHU3NTIzXHU3Yjk3XHU3ZTgyXHU4Njk1XHU4YjgzXHU4Y2RiXHU5MTc4XHU5OTEwXHU2NWFjXHU2NmFiXHU2YjhiXHU0ZWQ1XHU0ZWQ0XHU0ZjNh''@;'; + put 'put ''XHU0ZjdmXHU1MjNhXHU1M2Y4XHU1M2YyXHU1NWUzXHU1NmRiXHU1OGViXHU1OWNiXHU1OWM5XHU1OWZmXHU1YjUwXHU1YzRkXHU1ZTAyXHU1ZTJiXHU1ZmQ3XHU2MDFkXHU2MzA3XHU2NTJmXHU1YjVjXHU2NWFmXHU2NWJkXHU2NWU4XHU2NzlkXHU2YjYyXHVmZmZkXHU2YjdiXHU2YzBmXHU3''@;'; + put 'put ''MzQ1XHU3OTQ5XHU3OWMxXHU3Y2Y4XHU3ZDE5XHU3ZDJiXHU4MGEyXHU4MTAyXHU4MWYzXHU4OTk2XHU4YTVlXHU4YTY5XHU4YTY2XHU4YThjXHU4YWVlXHU4Y2M3XHU4Y2RjXHU5NmNjXHU5OGZjXHU2YjZmXHU0ZThiXHU0ZjNjXHU0ZjhkXHU1MTUwXHU1YjU3XHU1YmZhXHU2MTQ4XHU2MzAx''@;'; + put 'put ''XHU2NjQyXHU2YjIxXHU2ZWNiXHU2Y2JiXHU3MjNlXHU3NGJkXHU3NWQ0XHU3OGMxXHU3OTNhXHU4MDBjXHU4MDMzXHU4MWVhXHU4NDk0XHU4ZjllXHU2YzUwXHU5ZTdmXHU1ZjBmXHU4YjU4XHU5ZDJiXHU3YWZhXHU4ZWY4XHU1YjhkXHU5NmViXHU0ZTAzXHU1M2YxXHU1N2Y3XHU1OTMxXHU1''@;'; + put 'put ''YWM5XHU1YmE0XHU2MDg5XHU2ZTdmXHU2ZjA2XHU3NWJlXHU4Y2VhXHU1YjlmXHU4NTAwXHU3YmUwXHU1MDcyXHU2N2Y0XHU4MjlkXHU1YzYxXHU4NTRhXHU3ZTFlXHU4MjBlXHU1MTk5XHU1YzA0XHU2MzY4XHU4ZDY2XHU2NTljXHU3MTZlXHU3OTNlXHU3ZDE3XHU4MDA1XHU4YjFkXHU4ZWNh''@;'; + put 'put ''XHU5MDZlXHU4NmM3XHU5MGFhXHU1MDFmXHU1MmZhXHU1YzNhXHU2NzUzXHU3MDdjXHU3MjM1XHU5MTRjXHU5MWM4XHU5MzJiXHU4MmU1XHU1YmMyXHU1ZjMxXHU2MGY5XHU0ZTNiXHU1M2Q2XHU1Yjg4XHU2MjRiXHU2NzMxXHU2YjhhXHU3MmU5XHU3M2UwXHU3YTJlXHU4MTZiXHU4ZGEzXHU5''@;'; + put 'put ''MTUyXHU5OTk2XHU1MTEyXHU1M2Q3XHU1NDZhXHU1YmZmXHU2Mzg4XHU2YTM5XHU3ZGFjXHU5NzAwXHU1NmRhXHU1M2NlXHU1NDY4XHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTQyXS5sZW5ndGg7KytFKTY1NTMzIT09QlsxNDJdW0VdLmNoYXJDb2RlQXQoMCkmJiht''@;'; + put 'put ''ZVtCWzE0Ml1bRV1dPTM2MzUyK0UsTFszNjM1MitFXT1CWzE0Ml1bRV0pO2ZvcihCWzE0M109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NWI5N1x1NWMzMVx1NWRkZVx1NGZlZVx1NjEwMVx1NjJmZVx1NmQzMlx1NzljMFx1NzljYlx1''@;'; + put 'put ''N2Q0Mlx1N2U0ZFx1N2ZkMlx1ODFlZFx1ODIxZlx1ODQ5MFx1ODg0Nlx1ODk3Mlx1OGI5MFx1OGU3NFx1OGYyZlx1OTAzMVx1OTE0Ylx1OTE2Y1x1OTZjNlx1OTE5Y1x1NGVjMFx1NGY0Zlx1NTE0NVx1NTM0MVx1NWY5M1x1NjIwZVx1NjdkNFx1NmM0MVx1NmUwYlx1NzM2M1x1N2UyNlx1OTFj''@;'; + put 'put ''ZFx1OTI4M1x1NTNkNFx1NTkxOVx1NWJiZlx1NmRkMVx1Nzk1ZFx1N2UyZVx1N2M5Ylx1NTg3ZVx1NzE5Zlx1NTFmYVx1ODg1M1x1OGZmMFx1NGZjYVx1NWNmYlx1NjYyNVx1NzdhY1x1N2FlM1x1ODIxY1x1OTlmZlx1NTFjNlx1NWZhYVx1NjVlY1x1Njk2Zlx1NmI4OVx1NmRmM1x1ZmZmZFx1''@;'; + put 'put ''NmU5Nlx1NmY2NFx1NzZmZVx1N2QxNFx1NWRlMVx1OTA3NVx1OTE4N1x1OTgwNlx1NTFlNlx1NTIxZFx1NjI0MFx1NjY5MVx1NjZkOVx1NmUxYVx1NWViNlx1N2RkMlx1N2Y3Mlx1NjZmOFx1ODVhZlx1ODVmN1x1OGFmOFx1NTJhOVx1NTNkOVx1NTk3M1x1NWU4Zlx1NWY5MFx1NjA1NVx1OTJl''@;'; + put 'put ''NFx1OTY2NFx1NTBiN1x1NTExZlx1NTJkZFx1NTMyMFx1NTM0N1x1NTNlY1x1NTRlOFx1NTU0Nlx1NTUzMVx1NTYxN1x1NTk2OFx1NTliZVx1NWEzY1x1NWJiNVx1NWMwNlx1NWMwZlx1NWMxMVx1NWMxYVx1NWU4NFx1NWU4YVx1NWVlMFx1NWY3MFx1NjI3Zlx1NjI4NFx1NjJkYlx1NjM4Y1x1''@;'; + put 'put ''NjM3N1x1NjYwN1x1NjYwY1x1NjYyZFx1NjY3Nlx1Njc3ZVx1NjhhMlx1NmExZlx1NmEzNVx1NmNiY1x1NmQ4OFx1NmUwOVx1NmU1OFx1NzEzY1x1NzEyNlx1NzE2N1x1NzVjN1x1NzcwMVx1Nzg1ZFx1NzkwMVx1Nzk2NVx1NzlmMFx1N2FlMFx1N2IxMVx1N2NhN1x1N2QzOVx1ODA5Nlx1ODNk''@;'; + put 'put ''Nlx1ODQ4Ylx1ODU0OVx1ODg1ZFx1ODhmM1x1OGExZlx1OGEzY1x1OGE1NFx1OGE3M1x1OGM2MVx1OGNkZVx1OTFhNFx1OTI2Nlx1OTM3ZVx1OTQxOFx1OTY5Y1x1OTc5OFx1NGUwYVx1NGUwOFx1NGUxZVx1NGU1N1x1NTE5N1x1NTI3MFx1NTdjZVx1NTgzNFx1NThjY1x1NWIyMlx1NWUzOFx1''@;'; + put 'put ''NjBjNVx1NjRmZVx1Njc2MVx1Njc1Nlx1NmQ0NFx1NzJiNlx1NzU3M1x1N2E2M1x1ODRiOFx1OGI3Mlx1OTFiOFx1OTMyMFx1NTYzMVx1NTdmNFx1OThmZVx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE0M10ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTQzXVtFXS5jaGFy''@;'; + put 'put ''Q29kZUF0KDApJiYobWVbQlsxNDNdW0VdXT0zNjYwOCtFLExbMzY2MDgrRV09QlsxNDNdW0VdKTtmb3IoQlsxNDRdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTYyZWRcdTY5MGRcdTZiOTZcdTcxZWRcdTdlNTRcdTgwNzdcdTgyNzJc''@;'; + put 'put ''dTg5ZTZcdTk4ZGZcdTg3NTVcdThmYjFcdTVjM2JcdTRmMzhcdTRmZTFcdTRmYjVcdTU1MDdcdTVhMjBcdTViZGRcdTViZTlcdTVmYzNcdTYxNGVcdTYzMmZcdTY1YjBcdTY2NGJcdTY4ZWVcdTY5OWJcdTZkNzhcdTZkZjFcdTc1MzNcdTc1YjlcdTc3MWZcdTc5NWVcdTc5ZTZcdTdkMzNcdTgx''@;'; + put 'put ''ZTNcdTgyYWZcdTg1YWFcdTg5YWFcdThhM2FcdThlYWJcdThmOWJcdTkwMzJcdTkxZGRcdTk3MDdcdTRlYmFcdTRlYzFcdTUyMDNcdTU4NzVcdTU4ZWNcdTVjMGJcdTc1MWFcdTVjM2RcdTgxNGVcdThhMGFcdThmYzVcdTk2NjNcdTk3NmRcdTdiMjVcdThhY2ZcdTk4MDhcdTkxNjJcdTU2ZjNc''@;'; + put 'put ''dTUzYThcdWZmZmRcdTkwMTdcdTU0MzlcdTU3ODJcdTVlMjVcdTYzYThcdTZjMzRcdTcwOGFcdTc3NjFcdTdjOGJcdTdmZTBcdTg4NzBcdTkwNDJcdTkxNTRcdTkzMTBcdTkzMThcdTk2OGZcdTc0NWVcdTlhYzRcdTVkMDdcdTVkNjlcdTY1NzBcdTY3YTJcdThkYThcdTk2ZGJcdTYzNmVcdTY3''@;'; + put 'put ''NDlcdTY5MTlcdTgzYzVcdTk4MTdcdTk2YzBcdTg4ZmVcdTZmODRcdTY0N2FcdTViZjhcdTRlMTZcdTcwMmNcdTc1NWRcdTY2MmZcdTUxYzRcdTUyMzZcdTUyZTJcdTU5ZDNcdTVmODFcdTYwMjdcdTYyMTBcdTY1M2ZcdTY1NzRcdTY2MWZcdTY2NzRcdTY4ZjJcdTY4MTZcdTZiNjNcdTZlMDVc''@;'; + put 'put ''dTcyNzJcdTc1MWZcdTc2ZGJcdTdjYmVcdTgwNTZcdTU4ZjBcdTg4ZmRcdTg5N2ZcdThhYTBcdThhOTNcdThhY2JcdTkwMWRcdTkxOTJcdTk3NTJcdTk3NTlcdTY1ODlcdTdhMGVcdTgxMDZcdTk2YmJcdTVlMmRcdTYwZGNcdTYyMWFcdTY1YTVcdTY2MTRcdTY3OTBcdTc3ZjNcdTdhNGRcdTdj''@;'; + put 'put ''NGRcdTdlM2VcdTgxMGFcdThjYWNcdThkNjRcdThkZTFcdThlNWZcdTc4YTlcdTUyMDdcdTYyZDlcdTYzYTVcdTY0NDJcdTYyOThcdThhMmRcdTdhODNcdTdiYzBcdThhYWNcdTk2ZWFcdTdkNzZcdTgyMGNcdTg3NDlcdTRlZDlcdTUxNDhcdTUzNDNcdTUzNjBcdTViYTNcdTVjMDJcdTVjMTZc''@;'; + put 'put ''dTVkZGRcdTYyMjZcdTYyNDdcdTY0YjBcdTY4MTNcdTY4MzRcdTZjYzlcdTZkNDVcdTZkMTdcdTY3ZDNcdTZmNWNcdTcxNGVcdTcxN2RcdTY1Y2JcdTdhN2ZcdTdiYWRcdTdkZGFcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxNDRdLmxlbmd0aDsrK0UpNjU1MzMhPT1C''@;'; + put 'put ''WzE0NF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTQ0XVtFXV09MzY4NjQrRSxMWzM2ODY0K0VdPUJbMTQ0XVtFXSk7Zm9yKEJbMTQ1XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3ZTRhXHU3ZmE4XHU4MTdhXHU4MjFiXHU4MjM5''@;'; + put 'put ''XHU4NWE2XHU4YTZlXHU4Y2NlXHU4ZGY1XHU5MDc4XHU5MDc3XHU5MmFkXHU5MjkxXHU5NTgzXHU5YmFlXHU1MjRkXHU1NTg0XHU2ZjM4XHU3MTM2XHU1MTY4XHU3OTg1XHU3ZTU1XHU4MWIzXHU3Y2NlXHU1NjRjXHU1ODUxXHU1Y2E4XHU2M2FhXHU2NmZlXHU2NmZkXHU2OTVhXHU3MmQ5XHU3''@;'; + put 'put ''NThmXHU3NThlXHU3OTBlXHU3OTU2XHU3OWRmXHU3Yzk3XHU3ZDIwXHU3ZDQ0XHU4NjA3XHU4YTM0XHU5NjNiXHU5MDYxXHU5ZjIwXHU1MGU3XHU1Mjc1XHU1M2NjXHU1M2UyXHU1MDA5XHU1NWFhXHU1OGVlXHU1OTRmXHU3MjNkXHU1YjhiXHU1YzY0XHU1MzFkXHU2MGUzXHU2MGYzXHU2MzVj''@;'; + put 'put ''XHU2MzgzXHU2MzNmXHU2M2JiXHVmZmZkXHU2NGNkXHU2NWU5XHU2NmY5XHU1ZGUzXHU2OWNkXHU2OWZkXHU2ZjE1XHU3MWU1XHU0ZTg5XHU3NWU5XHU3NmY4XHU3YTkzXHU3Y2RmXHU3ZGNmXHU3ZDljXHU4MDYxXHU4MzQ5XHU4MzU4XHU4NDZjXHU4NGJjXHU4NWZiXHU4OGM1XHU4ZDcwXHU5''@;'; + put 'put ''MDAxXHU5MDZkXHU5Mzk3XHU5NzFjXHU5YTEyXHU1MGNmXHU1ODk3XHU2MThlXHU4MWQzXHU4NTM1XHU4ZDA4XHU5MDIwXHU0ZmMzXHU1MDc0XHU1MjQ3XHU1MzczXHU2MDZmXHU2MzQ5XHU2NzVmXHU2ZTJjXHU4ZGIzXHU5MDFmXHU0ZmQ3XHU1YzVlXHU4Y2NhXHU2NWNmXHU3ZDlhXHU1MzUy''@;'; + put 'put ''XHU4ODk2XHU1MTc2XHU2M2MzXHU1YjU4XHU1YjZiXHU1YzBhXHU2NDBkXHU2NzUxXHU5MDVjXHU0ZWQ2XHU1OTFhXHU1OTJhXHU2YzcwXHU4YTUxXHU1NTNlXHU1ODE1XHU1OWE1XHU2MGYwXHU2MjUzXHU2N2MxXHU4MjM1XHU2OTU1XHU5NjQwXHU5OWM0XHU5YTI4XHU0ZjUzXHU1ODA2XHU1''@;'; + put 'put ''YmZlXHU4MDEwXHU1Y2IxXHU1ZTJmXHU1Zjg1XHU2MDIwXHU2MTRiXHU2MjM0XHU2NmZmXHU2Y2YwXHU2ZWRlXHU4MGNlXHU4MTdmXHU4MmQ0XHU4ODhiXHU4Y2I4XHU5MDAwXHU5MDJlXHU5NjhhXHU5ZWRiXHU5YmRiXHU0ZWUzXHU1M2YwXHU1OTI3XHU3YjJjXHU5MThkXHU5ODRjXHU5ZGY5''@;'; + put 'put ''XHU2ZWRkXHU3MDI3XHU1MzUzXHU1NTQ0XHU1Yjg1XHU2MjU4XHU2MjllXHU2MmQzXHU2Y2EyXHU2ZmVmXHU3NDIyXHU4YTE3XHU5NDM4XHU2ZmMxXHU4YWZlXHU4MzM4XHU1MWU3XHU4NmY4XHU1M2VhXHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTQ1XS5sZW5ndGg7''@;'; + put 'put ''KytFKTY1NTMzIT09QlsxNDVdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE0NV1bRV1dPTM3MTIwK0UsTFszNzEyMCtFXT1CWzE0NV1bRV0pO2ZvcihCWzE0Nl09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NTNlOVx1NGY0Nlx1OTA1''@;'; + put 'put ''NFx1OGZiMFx1NTk2YVx1ODEzMVx1NWRmZFx1N2FlYVx1OGZiZlx1NjhkYVx1OGMzN1x1NzJmOFx1OWM0OFx1NmEzZFx1OGFiMFx1NGUzOVx1NTM1OFx1NTYwNlx1NTc2Nlx1NjJjNVx1NjNhMlx1NjVlNlx1NmI0ZVx1NmRlMVx1NmU1Ylx1NzBhZFx1NzdlZFx1N2FlZlx1N2JhYVx1N2RiYlx1''@;'; + put 'put ''ODAzZFx1ODBjNlx1ODZjYlx1OGE5NVx1OTM1Ylx1NTZlM1x1NThjN1x1NWYzZVx1NjVhZFx1NjY5Nlx1NmE4MFx1NmJiNVx1NzUzN1x1OGFjN1x1NTAyNFx1NzdlNVx1NTczMFx1NWYxYlx1NjA2NVx1NjY3YVx1NmM2MFx1NzVmNFx1N2ExYVx1N2Y2ZVx1ODFmNFx1ODcxOFx1OTA0NVx1OTli''@;'; + put 'put ''M1x1N2JjOVx1NzU1Y1x1N2FmOVx1N2I1MVx1ODRjNFx1ZmZmZFx1OTAxMFx1NzllOVx1N2E5Mlx1ODMzNlx1NWFlMVx1Nzc0MFx1NGUyZFx1NGVmMlx1NWI5OVx1NWZlMFx1NjJiZFx1NjYzY1x1NjdmMVx1NmNlOFx1ODY2Ylx1ODg3N1x1OGEzYlx1OTE0ZVx1OTJmM1x1OTlkMFx1NmExN1x1''@;'; + put 'put ''NzAyNlx1NzMyYVx1ODJlN1x1ODQ1N1x1OGNhZlx1NGUwMVx1NTE0Nlx1NTFjYlx1NTU4Ylx1NWJmNVx1NWUxNlx1NWUzM1x1NWU4MVx1NWYxNFx1NWYzNVx1NWY2Ylx1NWZiNFx1NjFmMlx1NjMxMVx1NjZhMlx1NjcxZFx1NmY2ZVx1NzI1Mlx1NzUzYVx1NzczYVx1ODA3NFx1ODEzOVx1ODE3''@;'; + put 'put ''OFx1ODc3Nlx1OGFiZlx1OGFkY1x1OGQ4NVx1OGRmM1x1OTI5YVx1OTU3N1x1OTgwMlx1OWNlNVx1NTJjNVx1NjM1N1x1NzZmNFx1NjcxNVx1NmM4OFx1NzNjZFx1OGNjM1x1OTNhZVx1OTY3M1x1NmQyNVx1NTg5Y1x1NjkwZVx1NjljY1x1OGZmZFx1OTM5YVx1NzVkYlx1OTAxYVx1NTg1YVx1''@;'; + put 'put ''NjgwMlx1NjNiNFx1NjlmYlx1NGY0M1x1NmYyY1x1NjdkOFx1OGZiYlx1ODUyNlx1N2RiNFx1OTM1NFx1NjkzZlx1NmY3MFx1NTc2YVx1NThmN1x1NWIyY1x1N2QyY1x1NzIyYVx1NTQwYVx1OTFlM1x1OWRiNFx1NGVhZFx1NGY0ZVx1NTA1Y1x1NTA3NVx1NTI0M1x1OGM5ZVx1NTQ0OFx1NTgy''@;'; + put 'put ''NFx1NWI5YVx1NWUxZFx1NWU5NVx1NWVhZFx1NWVmN1x1NWYxZlx1NjA4Y1x1NjJiNVx1NjMzYVx1NjNkMFx1NjhhZlx1NmM0MFx1Nzg4N1x1Nzk4ZVx1N2EwYlx1N2RlMFx1ODI0N1x1OGEwMlx1OGFlNlx1OGU0NFx1OTAxM1x1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1C''@;'; + put 'put ''WzE0Nl0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTQ2XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxNDZdW0VdXT0zNzM3NitFLExbMzczNzYrRV09QlsxNDZdW0VdKTtmb3IoQlsxNDddPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTkw''@;'; + put 'put ''YjhcdTkxMmRcdTkxZDhcdTlmMGVcdTZjZTVcdTY0NThcdTY0ZTJcdTY1NzVcdTZlZjRcdTc2ODRcdTdiMWJcdTkwNjlcdTkzZDFcdTZlYmFcdTU0ZjJcdTVmYjlcdTY0YTRcdThmNGRcdThmZWRcdTkyNDRcdTUxNzhcdTU4NmJcdTU5MjlcdTVjNTVcdTVlOTdcdTZkZmJcdTdlOGZcdTc1MWNc''@;'; + put 'put ''dThjYmNcdThlZTJcdTk4NWJcdTcwYjlcdTRmMWRcdTZiYmZcdTZmYjFcdTc1MzBcdTk2ZmJcdTUxNGVcdTU0MTBcdTU4MzVcdTU4NTdcdTU5YWNcdTVjNjBcdTVmOTJcdTY1OTdcdTY3NWNcdTZlMjFcdTc2N2JcdTgzZGZcdThjZWRcdTkwMTRcdTkwZmRcdTkzNGRcdTc4MjVcdTc4M2FcdTUy''@;'; + put 'put ''YWFcdTVlYTZcdTU3MWZcdTU5NzRcdTYwMTJcdTUwMTJcdTUxNWFcdTUxYWNcdWZmZmRcdTUxY2RcdTUyMDBcdTU1MTBcdTU4NTRcdTU4NThcdTU5NTdcdTViOTVcdTVjZjZcdTVkOGJcdTYwYmNcdTYyOTVcdTY0MmRcdTY3NzFcdTY4NDNcdTY4YmNcdTY4ZGZcdTc2ZDdcdTZkZDhcdTZlNmZc''@;'; + put 'put ''dTZkOWJcdTcwNmZcdTcxYzhcdTVmNTNcdTc1ZDhcdTc5NzdcdTdiNDlcdTdiNTRcdTdiNTJcdTdjZDZcdTdkNzFcdTUyMzBcdTg0NjNcdTg1NjlcdTg1ZTRcdThhMGVcdThiMDRcdThjNDZcdThlMGZcdTkwMDNcdTkwMGZcdTk0MTlcdTk2NzZcdTk4MmRcdTlhMzBcdTk1ZDhcdTUwY2RcdTUy''@;'; + put 'put ''ZDVcdTU0MGNcdTU4MDJcdTVjMGVcdTYxYTdcdTY0OWVcdTZkMWVcdTc3YjNcdTdhZTVcdTgwZjRcdTg0MDRcdTkwNTNcdTkyODVcdTVjZTBcdTlkMDdcdTUzM2ZcdTVmOTdcdTVmYjNcdTZkOWNcdTcyNzlcdTc3NjNcdTc5YmZcdTdiZTRcdTZiZDJcdTcyZWNcdThhYWRcdTY4MDNcdTZhNjFc''@;'; + put 'put ''dTUxZjhcdTdhODFcdTY5MzRcdTVjNGFcdTljZjZcdTgyZWJcdTViYzVcdTkxNDlcdTcwMWVcdTU2NzhcdTVjNmZcdTYwYzdcdTY1NjZcdTZjOGNcdThjNWFcdTkwNDFcdTk4MTNcdTU0NTFcdTY2YzdcdTkyMGRcdTU5NDhcdTkwYTNcdTUxODVcdTRlNGRcdTUxZWFcdTg1OTlcdThiMGVcdTcw''@;'; + put 'put ''NThcdTYzN2FcdTkzNGJcdTY5NjJcdTk5YjRcdTdlMDRcdTc1NzdcdTUzNTdcdTY5NjBcdThlZGZcdTk2ZTNcdTZjNWRcdTRlOGNcdTVjM2NcdTVmMTBcdThmZTlcdTUzMDJcdThjZDFcdTgwODlcdTg2NzlcdTVlZmZcdTY1ZTVcdTRlNzNcdTUxNjVcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0''@;'; + put 'put ''KCIiKSxFPTA7RSE9QlsxNDddLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE0N11bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTQ3XVtFXV09Mzc2MzIrRSxMWzM3NjMyK0VdPUJbMTQ3XVtFXSk7Zm9yKEJbMTQ4XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHU1OTgyXHU1YzNmXHU5N2VlXHU0ZWZiXHU1OThhXHU1ZmNkXHU4YThkXHU2ZmUxXHU3OWIwXHU3OTYyXHU1YmU3XHU4NDcxXHU3MzJiXHU3MWIxXHU1ZTc0XHU1ZmY1XHU2MzdiXHU2NDlhXHU3MWMzXHU3Yzk4XHU0ZTQzXHU1ZWZjXHU0ZTRiXHU1N2RjXHU1NmEyXHU2MGE5''@;'; + put 'put ''XHU2ZmMzXHU3ZDBkXHU4MGZkXHU4MTMzXHU4MWJmXHU4ZmIyXHU4OTk3XHU4NmE0XHU1ZGY0XHU2MjhhXHU2NGFkXHU4OTg3XHU2Nzc3XHU2Y2UyXHU2ZDNlXHU3NDM2XHU3ODM0XHU1YTQ2XHU3Zjc1XHU4MmFkXHU5OWFjXHU0ZmYzXHU1ZWMzXHU2MmRkXHU2MzkyXHU2NTU3XHU2NzZmXHU3''@;'; + put 'put ''NmMzXHU3MjRjXHU4MGNjXHU4MGJhXHU4ZjI5XHU5MTRkXHU1MDBkXHU1N2Y5XHU1YTkyXHU2ODg1XHVmZmZkXHU2OTczXHU3MTY0XHU3MmZkXHU4Y2I3XHU1OGYyXHU4Y2UwXHU5NjZhXHU5MDE5XHU4NzdmXHU3OWU0XHU3N2U3XHU4NDI5XHU0ZjJmXHU1MjY1XHU1MzVhXHU2MmNkXHU2N2Nm''@;'; + put 'put ''XHU2Y2NhXHU3NjdkXHU3Yjk0XHU3Yzk1XHU4MjM2XHU4NTg0XHU4ZmViXHU2NmRkXHU2ZjIwXHU3MjA2XHU3ZTFiXHU4M2FiXHU5OWMxXHU5ZWE2XHU1MWZkXHU3YmIxXHU3ODcyXHU3YmI4XHU4MDg3XHU3YjQ4XHU2YWU4XHU1ZTYxXHU4MDhjXHU3NTUxXHU3NTYwXHU1MTZiXHU5MjYyXHU2''@;'; + put 'put ''ZThjXHU3NjdhXHU5MTk3XHU5YWVhXHU0ZjEwXHU3ZjcwXHU2MjljXHU3YjRmXHU5NWE1XHU5Y2U5XHU1NjdhXHU1ODU5XHU4NmU0XHU5NmJjXHU0ZjM0XHU1MjI0XHU1MzRhXHU1M2NkXHU1M2RiXHU1ZTA2XHU2NDJjXHU2NTkxXHU2NzdmXHU2YzNlXHU2YzRlXHU3MjQ4XHU3MmFmXHU3M2Vk''@;'; + put 'put ''XHU3NTU0XHU3ZTQxXHU4MjJjXHU4NWU5XHU4Y2E5XHU3YmM0XHU5MWM2XHU3MTY5XHU5ODEyXHU5OGVmXHU2MzNkXHU2NjY5XHU3NTZhXHU3NmU0XHU3OGQwXHU4NTQzXHU4NmVlXHU1MzJhXHU1MzUxXHU1NDI2XHU1OTgzXHU1ZTg3XHU1ZjdjXHU2MGIyXHU2MjQ5XHU2Mjc5XHU2MmFiXHU2''@;'; + put 'put ''NTkwXHU2YmQ0XHU2Y2NjXHU3NWIyXHU3NmFlXHU3ODkxXHU3OWQ4XHU3ZGNiXHU3Zjc3XHU4MGE1XHU4OGFiXHU4YWI5XHU4Y2JiXHU5MDdmXHU5NzVlXHU5OGRiXHU2YTBiXHU3YzM4XHU1MDk5XHU1YzNlXHU1ZmFlXHU2Nzg3XHU2YmQ4XHU3NDM1XHU3NzA5XHU3ZjhlXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTQ4XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxNDhdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE0OF1bRV1dPTM3ODg4K0UsTFszNzg4OCtFXT1CWzE0OF1bRV0pO2ZvcihCWzE0OV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OWYzYlx1NjdjYVx1N2ExN1x1NTMzOVx1NzU4Ylx1OWFlZFx1NWY2Nlx1ODE5ZFx1ODNmMVx1ODA5OFx1NWYzY1x1NWZjNVx1NzU2Mlx1N2I0Nlx1OTAzY1x1Njg2N1x1NTllYlx1NWE5Ylx1N2QxMFx1NzY3ZVx1OGIyY1x1NGZmNVx1NWY2YVx1NmEx''@;'; + put 'put ''OVx1NmMzN1x1NmYwMlx1NzRlMlx1Nzk2OFx1ODg2OFx1OGE1NVx1OGM3OVx1NWVkZlx1NjNjZlx1NzVjNVx1NzlkMlx1ODJkN1x1OTMyOFx1OTJmMlx1ODQ5Y1x1ODZlZFx1OWMyZFx1NTRjMVx1NWY2Y1x1NjU4Y1x1NmQ1Y1x1NzAxNVx1OGNhN1x1OGNkM1x1OTgzYlx1NjU0Zlx1NzRmNlx1''@;'; + put 'put ''NGUwZFx1NGVkOFx1NTdlMFx1NTkyYlx1NWE2Nlx1NWJjY1x1NTFhOFx1NWUwM1x1NWU5Y1x1NjAxNlx1NjI3Nlx1NjU3N1x1ZmZmZFx1NjVhN1x1NjY2ZVx1NmQ2ZVx1NzIzNlx1N2IyNlx1ODE1MFx1ODE5YVx1ODI5OVx1OGI1Y1x1OGNhMFx1OGNlNlx1OGQ3NFx1OTYxY1x1OTY0NFx1NGZh''@;'; + put 'put ''ZVx1NjRhYlx1NmI2Nlx1ODIxZVx1ODQ2MVx1ODU2YVx1OTBlOFx1NWMwMVx1Njk1M1x1OThhOFx1ODQ3YVx1ODU1N1x1NGYwZlx1NTI2Zlx1NWZhOVx1NWU0NVx1NjcwZFx1Nzk4Zlx1ODE3OVx1ODkwN1x1ODk4Nlx1NmRmNVx1NWYxN1x1NjI1NVx1NmNiOFx1NGVjZlx1NzI2OVx1OWI5Mlx1''@;'; + put 'put ''NTIwNlx1NTQzYlx1NTY3NFx1NThiM1x1NjFhNFx1NjI2ZVx1NzExYVx1NTk2ZVx1N2M4OVx1N2NkZVx1N2QxYlx1OTZmMFx1NjU4N1x1ODA1ZVx1NGUxOVx1NGY3NVx1NTE3NVx1NTg0MFx1NWU2M1x1NWU3M1x1NWYwYVx1NjdjNFx1NGUyNlx1ODUzZFx1OTU4OVx1OTY1Ylx1N2M3M1x1OTgw''@;'; + put 'put ''MVx1NTBmYlx1NThjMVx1NzY1Nlx1NzhhN1x1NTIyNVx1NzdhNVx1ODUxMVx1N2I4Nlx1NTA0Zlx1NTkwOVx1NzI0N1x1N2JjN1x1N2RlOFx1OGZiYVx1OGZkNFx1OTA0ZFx1NGZiZlx1NTJjOVx1NWEyOVx1NWYwMVx1OTdhZFx1NGZkZFx1ODIxN1x1OTJlYVx1NTcwM1x1NjM1NVx1NmI2OVx1''@;'; + put 'put ''NzUyYlx1ODhkY1x1OGYxNFx1N2E0Mlx1NTJkZlx1NTg5M1x1NjE1NVx1NjIwYVx1NjZhZVx1NmJjZFx1N2MzZlx1ODNlOVx1NTAyM1x1NGZmOFx1NTMwNVx1NTQ0Nlx1NTgzMVx1NTk0OVx1NWI5ZFx1NWNmMFx1NWNlZlx1NWQyOVx1NWU5Nlx1NjJiMVx1NjM2N1x1NjUzZVx1NjViOVx1Njcw''@;'; + put 'put ''Ylx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE0OV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTQ5XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxNDldW0VdXT0zODE0NCtFLExbMzgxNDQrRV09QlsxNDldW0VdKTtmb3IoQlsxNTBdPSJcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTZjZDVcdTZjZTFcdTcwZjlcdTc4MzJcdTdlMmJcdTgwZGVcdTgyYjNcdTg0MGNcdTg0ZWNcdTg3MDJcdTg5MTJcdThhMmFcdThjNGFcdTkwYTZcdTkyZDJcdTk4ZmRcdTljZjNcdTlkNmNcdTRlNGZcdTRlYTFcdTUwOGRcdTUy''@;'; + put 'put ''NTZcdTU3NGFcdTU5YThcdTVlM2RcdTVmZDhcdTVmZDlcdTYyM2ZcdTY2YjRcdTY3MWJcdTY3ZDBcdTY4ZDJcdTUxOTJcdTdkMjFcdTgwYWFcdTgxYThcdThiMDBcdThjOGNcdThjYmZcdTkyN2VcdTk2MzJcdTU0MjBcdTk4MmNcdTUzMTdcdTUwZDVcdTUzNWNcdTU4YThcdTY0YjJcdTY3MzRc''@;'; + put 'put ''dTcyNjdcdTc3NjZcdTdhNDZcdTkxZTZcdTUyYzNcdTZjYTFcdTZiODZcdTU4MDBcdTVlNGNcdTU5NTRcdTY3MmNcdTdmZmJcdTUxZTFcdTc2YzZcdWZmZmRcdTY0NjlcdTc4ZThcdTliNTRcdTllYmJcdTU3Y2JcdTU5YjlcdTY2MjdcdTY3OWFcdTZiY2VcdTU0ZTlcdTY5ZDlcdTVlNTVcdTgx''@;'; + put 'put ''OWNcdTY3OTVcdTliYWFcdTY3ZmVcdTljNTJcdTY4NWRcdTRlYTZcdTRmZTNcdTUzYzhcdTYyYjlcdTY3MmJcdTZjYWJcdThmYzRcdTRmYWRcdTdlNmRcdTllYmZcdTRlMDdcdTYxNjJcdTZlODBcdTZmMmJcdTg1MTNcdTU0NzNcdTY3MmFcdTliNDVcdTVkZjNcdTdiOTVcdTVjYWNcdTViYzZc''@;'; + put 'put ''dTg3MWNcdTZlNGFcdTg0ZDFcdTdhMTRcdTgxMDhcdTU5OTlcdTdjOGRcdTZjMTFcdTc3MjBcdTUyZDlcdTU5MjJcdTcxMjFcdTcyNWZcdTc3ZGJcdTk3MjdcdTlkNjFcdTY5MGJcdTVhN2ZcdTVhMThcdTUxYTVcdTU0MGRcdTU0N2RcdTY2MGVcdTc2ZGZcdThmZjdcdTkyOThcdTljZjRcdTU5''@;'; + put 'put ''ZWFcdTcyNWRcdTZlYzVcdTUxNGRcdTY4YzlcdTdkYmZcdTdkZWNcdTk3NjJcdTllYmFcdTY0NzhcdTZhMjFcdTgzMDJcdTU5ODRcdTViNWZcdTZiZGJcdTczMWJcdTc2ZjJcdTdkYjJcdTgwMTdcdTg0OTlcdTUxMzJcdTY3MjhcdTllZDlcdTc2ZWVcdTY3NjJcdTUyZmZcdTk5MDVcdTVjMjRc''@;'; + put 'put ''dTYyM2JcdTdjN2VcdThjYjBcdTU1NGZcdTYwYjZcdTdkMGJcdTk1ODBcdTUzMDFcdTRlNWZcdTUxYjZcdTU5MWNcdTcyM2FcdTgwMzZcdTkxY2VcdTVmMjVcdTc3ZTJcdTUzODRcdTVmNzlcdTdkMDRcdTg1YWNcdThhMzNcdThlOGRcdTk3NTZcdTY3ZjNcdTg1YWVcdTk0NTNcdTYxMDlcdTYx''@;'; + put 'put ''MDhcdTZjYjlcdTc2NTJcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxNTBdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE1MF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTUwXVtFXV09Mzg0MDArRSxMWzM4NDAwK0VdPUJbMTUwXVtFXSk7Zm9yKEJbMTUxXT0iXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4YWVkXHU4ZjM4XHU1NTJmXHU0ZjUxXHU1MTJhXHU1MmM3XHU1M2NiXHU1YmE1XHU1ZTdkXHU2MGEwXHU2MTgyXHU2M2Q2XHU2NzA5XHU2N2RhXHU2ZTY3XHU2ZDhjXHU3MzM2XHU3MzM3XHU3NTMxXHU3''@;'; + put 'put ''OTUwXHU4OGQ1XHU4YTk4XHU5MDRhXHU5MDkxXHU5MGY1XHU5NmM0XHU4NzhkXHU1OTE1XHU0ZTg4XHU0ZjU5XHU0ZTBlXHU4YTg5XHU4ZjNmXHU5ODEwXHU1MGFkXHU1ZTdjXHU1OTk2XHU1YmI5XHU1ZWI4XHU2M2RhXHU2M2ZhXHU2NGMxXHU2NmRjXHU2OTRhXHU2OWQ4XHU2ZDBiXHU2ZWI2''@;'; + put 'put ''XHU3MTk0XHU3NTI4XHU3YWFmXHU3ZjhhXHU4MDAwXHU4NDQ5XHU4NGM5XHU4OTgxXHU4YjIxXHU4ZTBhXHU5MDY1XHU5NjdkXHU5OTBhXHU2MTdlXHU2MjkxXHU2YjMyXHVmZmZkXHU2YzgzXHU2ZDc0XHU3ZmNjXHU3ZmZjXHU2ZGMwXHU3Zjg1XHU4N2JhXHU4OGY4XHU2NzY1XHU4M2IxXHU5''@;'; + put 'put ''ODNjXHU5NmY3XHU2ZDFiXHU3ZDYxXHU4NDNkXHU5MTZhXHU0ZTcxXHU1Mzc1XHU1ZDUwXHU2YjA0XHU2ZmViXHU4NWNkXHU4NjJkXHU4OWE3XHU1MjI5XHU1NDBmXHU1YzY1XHU2NzRlXHU2OGE4XHU3NDA2XHU3NDgzXHU3NWUyXHU4OGNmXHU4OGUxXHU5MWNjXHU5NmUyXHU5Njc4XHU1Zjhi''@;'; + put 'put ''XHU3Mzg3XHU3YWNiXHU4NDRlXHU2M2EwXHU3NTY1XHU1Mjg5XHU2ZDQxXHU2ZTljXHU3NDA5XHU3NTU5XHU3ODZiXHU3YzkyXHU5Njg2XHU3YWRjXHU5ZjhkXHU0ZmI2XHU2MTZlXHU2NWM1XHU4NjVjXHU0ZTg2XHU0ZWFlXHU1MGRhXHU0ZTIxXHU1MWNjXHU1YmVlXHU2NTk5XHU2ODgxXHU2''@;'; + put 'put ''ZGJjXHU3MzFmXHU3NjQyXHU3N2FkXHU3YTFjXHU3Y2U3XHU4MjZmXHU4YWQyXHU5MDdjXHU5MWNmXHU5Njc1XHU5ODE4XHU1MjliXHU3ZGQxXHU1MDJiXHU1Mzk4XHU2Nzk3XHU2ZGNiXHU3MWQwXHU3NDMzXHU4MWU4XHU4ZjJhXHU5NmEzXHU5YzU3XHU5ZTlmXHU3NDYwXHU1ODQxXHU2ZDk5''@;'; + put 'put ''XHU3ZDJmXHU5ODVlXHU0ZWU0XHU0ZjM2XHU0ZjhiXHU1MWI3XHU1MmIxXHU1ZGJhXHU2MDFjXHU3M2IyXHU3OTNjXHU4MmQzXHU5MjM0XHU5NmI3XHU5NmY2XHU5NzBhXHU5ZTk3XHU5ZjYyXHU2NmE2XHU2Yjc0XHU1MjE3XHU1MmEzXHU3MGM4XHU4OGMyXHU1ZWM5XHU2MDRiXHU2MTkwXHU2''@;'; + put 'put ''ZjIzXHU3MTQ5XHU3YzNlXHU3ZGY0XHU4MDZmXHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTUxXS5sZW5ndGg7KytFKTY1NTMzIT09QlsxNTFdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE1MV1bRV1dPTM4NjU2K0UsTFszODY1NitFXT1CWzE1MV1bRV0pO2ZvcihC''@;'; + put 'put ''WzE1Ml09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ODRlZVx1OTAyM1x1OTMyY1x1NTQ0Mlx1OWI2Zlx1NmFkM1x1NzA4OVx1OGNjMlx1OGRlZlx1OTczMlx1NTJiNFx1NWE0MVx1NWVjYVx1NWYwNFx1NjcxN1x1Njk3Y1x1Njk5NFx1''@;'; + put 'put ''NmQ2YVx1NmYwZlx1NzI2Mlx1NzJmY1x1N2JlZFx1ODAwMVx1ODA3ZVx1ODc0Ylx1OTBjZVx1NTE2ZFx1OWU5M1x1Nzk4NFx1ODA4Ylx1OTMzMlx1OGFkNlx1NTAyZFx1NTQ4Y1x1OGE3MVx1NmI2YVx1OGNjNFx1ODEwN1x1NjBkMVx1NjdhMFx1OWRmMlx1NGU5OVx1NGU5OFx1OWMxMFx1OGE2''@;'; + put 'put ''Ylx1ODVjMVx1ODU2OFx1NjkwMFx1NmU3ZVx1Nzg5N1x1ODE1NVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NWYwY1x1NGUxMFx1NGUxNVx1NGUyYVx1NGUz''@;'; + put 'put ''MVx1NGUzNlx1NGUzY1x1NGUzZlx1NGU0Mlx1NGU1Nlx1NGU1OFx1NGU4Mlx1NGU4NVx1OGM2Ylx1NGU4YVx1ODIxMlx1NWYwZFx1NGU4ZVx1NGU5ZVx1NGU5Zlx1NGVhMFx1NGVhMlx1NGViMFx1NGViM1x1NGViNlx1NGVjZVx1NGVjZFx1NGVjNFx1NGVjNlx1NGVjMlx1NGVkN1x1NGVkZVx1''@;'; + put 'put ''NGVlZFx1NGVkZlx1NGVmN1x1NGYwOVx1NGY1YVx1NGYzMFx1NGY1Ylx1NGY1ZFx1NGY1N1x1NGY0N1x1NGY3Nlx1NGY4OFx1NGY4Zlx1NGY5OFx1NGY3Ylx1NGY2OVx1NGY3MFx1NGY5MVx1NGY2Zlx1NGY4Nlx1NGY5Nlx1NTExOFx1NGZkNFx1NGZkZlx1NGZjZVx1NGZkOFx1NGZkYlx1NGZk''@;'; + put 'put ''MVx1NGZkYVx1NGZkMFx1NGZlNFx1NGZlNVx1NTAxYVx1NTAyOFx1NTAxNFx1NTAyYVx1NTAyNVx1NTAwNVx1NGYxY1x1NGZmNlx1NTAyMVx1NTAyOVx1NTAyY1x1NGZmZVx1NGZlZlx1NTAxMVx1NTAwNlx1NTA0M1x1NTA0N1x1NjcwM1x1NTA1NVx1NTA1MFx1NTA0OFx1NTA1YVx1NTA1Nlx1''@;'; + put 'put ''NTA2Y1x1NTA3OFx1NTA4MFx1NTA5YVx1NTA4NVx1NTBiNFx1NTBiMlx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE1Ml0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTUyXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxNTJdW0VdXT0zODkxMitFLExbMzg5MTIrRV09Qlsx''@;'; + put 'put ''NTJdW0VdKTtmb3IoQlsxNTNdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTUwYzlcdTUwY2FcdTUwYjNcdTUwYzJcdTUwZDZcdTUwZGVcdTUwZTVcdTUwZWRcdTUwZTNcdTUwZWVcdTUwZjlcdTUwZjVcdTUxMDlcdTUxMDFcdTUxMDJc''@;'; + put 'put ''dTUxMTZcdTUxMTVcdTUxMTRcdTUxMWFcdTUxMjFcdTUxM2FcdTUxMzdcdTUxM2NcdTUxM2JcdTUxM2ZcdTUxNDBcdTUxNTJcdTUxNGNcdTUxNTRcdTUxNjJcdTdhZjhcdTUxNjlcdTUxNmFcdTUxNmVcdTUxODBcdTUxODJcdTU2ZDhcdTUxOGNcdTUxODlcdTUxOGZcdTUxOTFcdTUxOTNcdTUx''@;'; + put 'put ''OTVcdTUxOTZcdTUxYTRcdTUxYTZcdTUxYTJcdTUxYTlcdTUxYWFcdTUxYWJcdTUxYjNcdTUxYjFcdTUxYjJcdTUxYjBcdTUxYjVcdTUxYmRcdTUxYzVcdTUxYzlcdTUxZGJcdTUxZTBcdTg2NTVcdTUxZTlcdTUxZWRcdWZmZmRcdTUxZjBcdTUxZjVcdTUxZmVcdTUyMDRcdTUyMGJcdTUyMTRc''@;'; + put 'put ''dTUyMGVcdTUyMjdcdTUyMmFcdTUyMmVcdTUyMzNcdTUyMzlcdTUyNGZcdTUyNDRcdTUyNGJcdTUyNGNcdTUyNWVcdTUyNTRcdTUyNmFcdTUyNzRcdTUyNjlcdTUyNzNcdTUyN2ZcdTUyN2RcdTUyOGRcdTUyOTRcdTUyOTJcdTUyNzFcdTUyODhcdTUyOTFcdThmYThcdThmYTdcdTUyYWNcdTUy''@;'; + put 'put ''YWRcdTUyYmNcdTUyYjVcdTUyYzFcdTUyY2RcdTUyZDdcdTUyZGVcdTUyZTNcdTUyZTZcdTk4ZWRcdTUyZTBcdTUyZjNcdTUyZjVcdTUyZjhcdTUyZjlcdTUzMDZcdTUzMDhcdTc1MzhcdTUzMGRcdTUzMTBcdTUzMGZcdTUzMTVcdTUzMWFcdTUzMjNcdTUzMmZcdTUzMzFcdTUzMzNcdTUzMzhc''@;'; + put 'put ''dTUzNDBcdTUzNDZcdTUzNDVcdTRlMTdcdTUzNDlcdTUzNGRcdTUxZDZcdTUzNWVcdTUzNjlcdTUzNmVcdTU5MThcdTUzN2JcdTUzNzdcdTUzODJcdTUzOTZcdTUzYTBcdTUzYTZcdTUzYTVcdTUzYWVcdTUzYjBcdTUzYjZcdTUzYzNcdTdjMTJcdTk2ZDlcdTUzZGZcdTY2ZmNcdTcxZWVcdTUz''@;'; + put 'put ''ZWVcdTUzZThcdTUzZWRcdTUzZmFcdTU0MDFcdTU0M2RcdTU0NDBcdTU0MmNcdTU0MmRcdTU0M2NcdTU0MmVcdTU0MzZcdTU0MjlcdTU0MWRcdTU0NGVcdTU0OGZcdTU0NzVcdTU0OGVcdTU0NWZcdTU0NzFcdTU0NzdcdTU0NzBcdTU0OTJcdTU0N2JcdTU0ODBcdTU0NzZcdTU0ODRcdTU0OTBc''@;'; + put 'put ''dTU0ODZcdTU0YzdcdTU0YTJcdTU0YjhcdTU0YTVcdTU0YWNcdTU0YzRcdTU0YzhcdTU0YThcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxNTNdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE1M11bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTUzXVtFXV09MzkxNjgrRSxM''@;'; + put 'put ''WzM5MTY4K0VdPUJbMTUzXVtFXSk7Zm9yKEJbMTU0XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1NGFiXHU1NGMyXHU1NGE0XHU1NGJlXHU1NGJjXHU1NGQ4XHU1NGU1XHU1NGU2XHU1NTBmXHU1NTE0XHU1NGZkXHU1NGVlXHU1NGVk''@;'; + put 'put ''XHU1NGZhXHU1NGUyXHU1NTM5XHU1NTQwXHU1NTYzXHU1NTRjXHU1NTJlXHU1NTVjXHU1NTQ1XHU1NTU2XHU1NTU3XHU1NTM4XHU1NTMzXHU1NTVkXHU1NTk5XHU1NTgwXHU1NGFmXHU1NThhXHU1NTlmXHU1NTdiXHU1NTdlXHU1NTk4XHU1NTllXHU1NWFlXHU1NTdjXHU1NTgzXHU1NWE5XHU1''@;'; + put 'put ''NTg3XHU1NWE4XHU1NWRhXHU1NWM1XHU1NWRmXHU1NWM0XHU1NWRjXHU1NWU0XHU1NWQ0XHU1NjE0XHU1NWY3XHU1NjE2XHU1NWZlXHU1NWZkXHU1NjFiXHU1NWY5XHU1NjRlXHU1NjUwXHU3MWRmXHU1NjM0XHU1NjM2XHU1NjMyXHU1NjM4XHVmZmZkXHU1NjZiXHU1NjY0XHU1NjJmXHU1NjZj''@;'; + put 'put ''XHU1NjZhXHU1Njg2XHU1NjgwXHU1NjhhXHU1NmEwXHU1Njk0XHU1NjhmXHU1NmE1XHU1NmFlXHU1NmI2XHU1NmI0XHU1NmMyXHU1NmJjXHU1NmMxXHU1NmMzXHU1NmMwXHU1NmM4XHU1NmNlXHU1NmQxXHU1NmQzXHU1NmQ3XHU1NmVlXHU1NmY5XHU1NzAwXHU1NmZmXHU1NzA0XHU1NzA5XHU1''@;'; + put 'put ''NzA4XHU1NzBiXHU1NzBkXHU1NzEzXHU1NzE4XHU1NzE2XHU1NWM3XHU1NzFjXHU1NzI2XHU1NzM3XHU1NzM4XHU1NzRlXHU1NzNiXHU1NzQwXHU1NzRmXHU1NzY5XHU1N2MwXHU1Nzg4XHU1NzYxXHU1NzdmXHU1Nzg5XHU1NzkzXHU1N2EwXHU1N2IzXHU1N2E0XHU1N2FhXHU1N2IwXHU1N2Mz''@;'; + put 'put ''XHU1N2M2XHU1N2Q0XHU1N2QyXHU1N2QzXHU1ODBhXHU1N2Q2XHU1N2UzXHU1ODBiXHU1ODE5XHU1ODFkXHU1ODcyXHU1ODIxXHU1ODYyXHU1ODRiXHU1ODcwXHU2YmMwXHU1ODUyXHU1ODNkXHU1ODc5XHU1ODg1XHU1OGI5XHU1ODlmXHU1OGFiXHU1OGJhXHU1OGRlXHU1OGJiXHU1OGI4XHU1''@;'; + put 'put ''OGFlXHU1OGM1XHU1OGQzXHU1OGQxXHU1OGQ3XHU1OGQ5XHU1OGQ4XHU1OGU1XHU1OGRjXHU1OGU0XHU1OGRmXHU1OGVmXHU1OGZhXHU1OGY5XHU1OGZiXHU1OGZjXHU1OGZkXHU1OTAyXHU1OTBhXHU1OTEwXHU1OTFiXHU2OGE2XHU1OTI1XHU1OTJjXHU1OTJkXHU1OTMyXHU1OTM4XHU1OTNl''@;'; + put 'put ''XHU3YWQyXHU1OTU1XHU1OTUwXHU1OTRlXHU1OTVhXHU1OTU4XHU1OTYyXHU1OTYwXHU1OTY3XHU1OTZjXHU1OTY5XHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTU0XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxNTRdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE1NF1b''@;'; + put 'put ''RV1dPTM5NDI0K0UsTFszOTQyNCtFXT1CWzE1NF1bRV0pO2ZvcihCWzE1NV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NTk3OFx1NTk4MVx1NTk5ZFx1NGY1ZVx1NGZhYlx1NTlhM1x1NTliMlx1NTljNlx1NTllOFx1NTlkY1x1NTk4''@;'; + put 'put ''ZFx1NTlkOVx1NTlkYVx1NWEyNVx1NWExZlx1NWExMVx1NWExY1x1NWEwOVx1NWExYVx1NWE0MFx1NWE2Y1x1NWE0OVx1NWEzNVx1NWEzNlx1NWE2Mlx1NWE2YVx1NWE5YVx1NWFiY1x1NWFiZVx1NWFjYlx1NWFjMlx1NWFiZFx1NWFlM1x1NWFkN1x1NWFlNlx1NWFlOVx1NWFkNlx1NWFmYVx1''@;'; + put 'put ''NWFmYlx1NWIwY1x1NWIwYlx1NWIxNlx1NWIzMlx1NWFkMFx1NWIyYVx1NWIzNlx1NWIzZVx1NWI0M1x1NWI0NVx1NWI0MFx1NWI1MVx1NWI1NVx1NWI1YVx1NWI1Ylx1NWI2NVx1NWI2OVx1NWI3MFx1NWI3M1x1NWI3NVx1NWI3OFx1NjU4OFx1NWI3YVx1NWI4MFx1ZmZmZFx1NWI4M1x1NWJh''@;'; + put 'put ''Nlx1NWJiOFx1NWJjM1x1NWJjN1x1NWJjOVx1NWJkNFx1NWJkMFx1NWJlNFx1NWJlNlx1NWJlMlx1NWJkZVx1NWJlNVx1NWJlYlx1NWJmMFx1NWJmNlx1NWJmM1x1NWMwNVx1NWMwN1x1NWMwOFx1NWMwZFx1NWMxM1x1NWMyMFx1NWMyMlx1NWMyOFx1NWMzOFx1NWMzOVx1NWM0MVx1NWM0Nlx1''@;'; + put 'put ''NWM0ZVx1NWM1M1x1NWM1MFx1NWM0Zlx1NWI3MVx1NWM2Y1x1NWM2ZVx1NGU2Mlx1NWM3Nlx1NWM3OVx1NWM4Y1x1NWM5MVx1NWM5NFx1NTk5Ylx1NWNhYlx1NWNiYlx1NWNiNlx1NWNiY1x1NWNiN1x1NWNjNVx1NWNiZVx1NWNjN1x1NWNkOVx1NWNlOVx1NWNmZFx1NWNmYVx1NWNlZFx1NWQ4''@;'; + put 'put ''Y1x1NWNlYVx1NWQwYlx1NWQxNVx1NWQxN1x1NWQ1Y1x1NWQxZlx1NWQxYlx1NWQxMVx1NWQxNFx1NWQyMlx1NWQxYVx1NWQxOVx1NWQxOFx1NWQ0Y1x1NWQ1Mlx1NWQ0ZVx1NWQ0Ylx1NWQ2Y1x1NWQ3M1x1NWQ3Nlx1NWQ4N1x1NWQ4NFx1NWQ4Mlx1NWRhMlx1NWQ5ZFx1NWRhY1x1NWRhZVx1''@;'; + put 'put ''NWRiZFx1NWQ5MFx1NWRiN1x1NWRiY1x1NWRjOVx1NWRjZFx1NWRkM1x1NWRkMlx1NWRkNlx1NWRkYlx1NWRlYlx1NWRmMlx1NWRmNVx1NWUwYlx1NWUxYVx1NWUxOVx1NWUxMVx1NWUxYlx1NWUzNlx1NWUzN1x1NWU0NFx1NWU0M1x1NWU0MFx1NWU0ZVx1NWU1N1x1NWU1NFx1NWU1Zlx1NWU2''@;'; + put 'put ''Mlx1NWU2NFx1NWU0N1x1NWU3NVx1NWU3Nlx1NWU3YVx1OWViY1x1NWU3Zlx1NWVhMFx1NWVjMVx1NWVjMlx1NWVjOFx1NWVkMFx1NWVjZlx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE1NV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTU1XVtFXS5jaGFyQ29kZUF0KDAp''@;'; + put 'put ''JiYobWVbQlsxNTVdW0VdXT0zOTY4MCtFLExbMzk2ODArRV09QlsxNTVdW0VdKTtmb3IoQlsxNTZdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTVlZDZcdTVlZTNcdTVlZGRcdTVlZGFcdTVlZGJcdTVlZTJcdTVlZTFcdTVlZThcdTVl''@;'; + put 'put ''ZTlcdTVlZWNcdTVlZjFcdTVlZjNcdTVlZjBcdTVlZjRcdTVlZjhcdTVlZmVcdTVmMDNcdTVmMDlcdTVmNWRcdTVmNWNcdTVmMGJcdTVmMTFcdTVmMTZcdTVmMjlcdTVmMmRcdTVmMzhcdTVmNDFcdTVmNDhcdTVmNGNcdTVmNGVcdTVmMmZcdTVmNTFcdTVmNTZcdTVmNTdcdTVmNTlcdTVmNjFc''@;'; + put 'put ''dTVmNmRcdTVmNzNcdTVmNzdcdTVmODNcdTVmODJcdTVmN2ZcdTVmOGFcdTVmODhcdTVmOTFcdTVmODdcdTVmOWVcdTVmOTlcdTVmOThcdTVmYTBcdTVmYThcdTVmYWRcdTVmYmNcdTVmZDZcdTVmZmJcdTVmZTRcdTVmZjhcdTVmZjFcdTVmZGRcdTYwYjNcdTVmZmZcdTYwMjFcdTYwNjBcdWZm''@;'; + put 'put ''ZmRcdTYwMTlcdTYwMTBcdTYwMjlcdTYwMGVcdTYwMzFcdTYwMWJcdTYwMTVcdTYwMmJcdTYwMjZcdTYwMGZcdTYwM2FcdTYwNWFcdTYwNDFcdTYwNmFcdTYwNzdcdTYwNWZcdTYwNGFcdTYwNDZcdTYwNGRcdTYwNjNcdTYwNDNcdTYwNjRcdTYwNDJcdTYwNmNcdTYwNmJcdTYwNTlcdTYwODFc''@;'; + put 'put ''dTYwOGRcdTYwZTdcdTYwODNcdTYwOWFcdTYwODRcdTYwOWJcdTYwOTZcdTYwOTdcdTYwOTJcdTYwYTdcdTYwOGJcdTYwZTFcdTYwYjhcdTYwZTBcdTYwZDNcdTYwYjRcdTVmZjBcdTYwYmRcdTYwYzZcdTYwYjVcdTYwZDhcdTYxNGRcdTYxMTVcdTYxMDZcdTYwZjZcdTYwZjdcdTYxMDBcdTYw''@;'; + put 'put ''ZjRcdTYwZmFcdTYxMDNcdTYxMjFcdTYwZmJcdTYwZjFcdTYxMGRcdTYxMGVcdTYxNDdcdTYxM2VcdTYxMjhcdTYxMjdcdTYxNGFcdTYxM2ZcdTYxM2NcdTYxMmNcdTYxMzRcdTYxM2RcdTYxNDJcdTYxNDRcdTYxNzNcdTYxNzdcdTYxNThcdTYxNTlcdTYxNWFcdTYxNmJcdTYxNzRcdTYxNmZc''@;'; + put 'put ''dTYxNjVcdTYxNzFcdTYxNWZcdTYxNWRcdTYxNTNcdTYxNzVcdTYxOTlcdTYxOTZcdTYxODdcdTYxYWNcdTYxOTRcdTYxOWFcdTYxOGFcdTYxOTFcdTYxYWJcdTYxYWVcdTYxY2NcdTYxY2FcdTYxYzlcdTYxZjdcdTYxYzhcdTYxYzNcdTYxYzZcdTYxYmFcdTYxY2JcdTdmNzlcdTYxY2RcdTYx''@;'; + put 'put ''ZTZcdTYxZTNcdTYxZjZcdTYxZmFcdTYxZjRcdTYxZmZcdTYxZmRcdTYxZmNcdTYxZmVcdTYyMDBcdTYyMDhcdTYyMDlcdTYyMGRcdTYyMGNcdTYyMTRcdTYyMWJcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxNTZdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE1Nl1bRV0u''@;'; + put 'put ''Y2hhckNvZGVBdCgwKSYmKG1lW0JbMTU2XVtFXV09Mzk5MzYrRSxMWzM5OTM2K0VdPUJbMTU2XVtFXSk7Zm9yKEJbMTU3XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2MjFlXHU2MjIxXHU2MjJhXHU2MjJlXHU2MjMwXHU2MjMyXHU2''@;'; + put 'put ''MjMzXHU2MjQxXHU2MjRlXHU2MjVlXHU2MjYzXHU2MjViXHU2MjYwXHU2MjY4XHU2MjdjXHU2MjgyXHU2Mjg5XHU2MjdlXHU2MjkyXHU2MjkzXHU2Mjk2XHU2MmQ0XHU2MjgzXHU2Mjk0XHU2MmQ3XHU2MmQxXHU2MmJiXHU2MmNmXHU2MmZmXHU2MmM2XHU2NGQ0XHU2MmM4XHU2MmRjXHU2MmNj''@;'; + put 'put ''XHU2MmNhXHU2MmMyXHU2MmM3XHU2MjliXHU2MmM5XHU2MzBjXHU2MmVlXHU2MmYxXHU2MzI3XHU2MzAyXHU2MzA4XHU2MmVmXHU2MmY1XHU2MzUwXHU2MzNlXHU2MzRkXHU2NDFjXHU2MzRmXHU2Mzk2XHU2MzhlXHU2MzgwXHU2M2FiXHU2Mzc2XHU2M2EzXHU2MzhmXHU2Mzg5XHU2MzlmXHU2''@;'; + put 'put ''M2I1XHU2MzZiXHVmZmZkXHU2MzY5XHU2M2JlXHU2M2U5XHU2M2MwXHU2M2M2XHU2M2UzXHU2M2M5XHU2M2QyXHU2M2Y2XHU2M2M0XHU2NDE2XHU2NDM0XHU2NDA2XHU2NDEzXHU2NDI2XHU2NDM2XHU2NTFkXHU2NDE3XHU2NDI4XHU2NDBmXHU2NDY3XHU2NDZmXHU2NDc2XHU2NDRlXHU2NTJh''@;'; + put 'put ''XHU2NDk1XHU2NDkzXHU2NGE1XHU2NGE5XHU2NDg4XHU2NGJjXHU2NGRhXHU2NGQyXHU2NGM1XHU2NGM3XHU2NGJiXHU2NGQ4XHU2NGMyXHU2NGYxXHU2NGU3XHU4MjA5XHU2NGUwXHU2NGUxXHU2MmFjXHU2NGUzXHU2NGVmXHU2NTJjXHU2NGY2XHU2NGY0XHU2NGYyXHU2NGZhXHU2NTAwXHU2''@;'; + put 'put ''NGZkXHU2NTE4XHU2NTFjXHU2NTA1XHU2NTI0XHU2NTIzXHU2NTJiXHU2NTM0XHU2NTM1XHU2NTM3XHU2NTM2XHU2NTM4XHU3NTRiXHU2NTQ4XHU2NTU2XHU2NTU1XHU2NTRkXHU2NTU4XHU2NTVlXHU2NTVkXHU2NTcyXHU2NTc4XHU2NTgyXHU2NTgzXHU4YjhhXHU2NTliXHU2NTlmXHU2NWFi''@;'; + put 'put ''XHU2NWI3XHU2NWMzXHU2NWM2XHU2NWMxXHU2NWM0XHU2NWNjXHU2NWQyXHU2NWRiXHU2NWQ5XHU2NWUwXHU2NWUxXHU2NWYxXHU2NzcyXHU2NjBhXHU2NjAzXHU2NWZiXHU2NzczXHU2NjM1XHU2NjM2XHU2NjM0XHU2NjFjXHU2NjRmXHU2NjQ0XHU2NjQ5XHU2NjQxXHU2NjVlXHU2NjVkXHU2''@;'; + put 'put ''NjY0XHU2NjY3XHU2NjY4XHU2NjVmXHU2NjYyXHU2NjcwXHU2NjgzXHU2Njg4XHU2NjhlXHU2Njg5XHU2Njg0XHU2Njk4XHU2NjlkXHU2NmMxXHU2NmI5XHU2NmM5XHU2NmJlXHU2NmJjXHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTU3XS5sZW5ndGg7KytFKTY1NTMz''@;'; + put 'put ''IT09QlsxNTddW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE1N11bRV1dPTQwMTkyK0UsTFs0MDE5MitFXT1CWzE1N11bRV0pO2ZvcihCWzE1OF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NjZjNFx1NjZiOFx1NjZkNlx1NjZkYVx1''@;'; + put 'put ''NjZlMFx1NjYzZlx1NjZlNlx1NjZlOVx1NjZmMFx1NjZmNVx1NjZmN1x1NjcwZlx1NjcxNlx1NjcxZVx1NjcyNlx1NjcyN1x1OTczOFx1NjcyZVx1NjczZlx1NjczNlx1Njc0MVx1NjczOFx1NjczN1x1Njc0Nlx1Njc1ZVx1Njc2MFx1Njc1OVx1Njc2M1x1Njc2NFx1Njc4OVx1Njc3MFx1Njdh''@;'; + put 'put ''OVx1Njc3Y1x1Njc2YVx1Njc4Y1x1Njc4Ylx1NjdhNlx1NjdhMVx1Njc4NVx1NjdiN1x1NjdlZlx1NjdiNFx1NjdlY1x1NjdiM1x1NjdlOVx1NjdiOFx1NjdlNFx1NjdkZVx1NjdkZFx1NjdlMlx1NjdlZVx1NjdiOVx1NjdjZVx1NjdjNlx1NjdlN1x1NmE5Y1x1NjgxZVx1Njg0Nlx1NjgyOVx1''@;'; + put 'put ''Njg0MFx1Njg0ZFx1NjgzMlx1Njg0ZVx1ZmZmZFx1NjhiM1x1NjgyYlx1Njg1OVx1Njg2M1x1Njg3N1x1Njg3Zlx1Njg5Zlx1Njg4Zlx1NjhhZFx1Njg5NFx1Njg5ZFx1Njg5Ylx1Njg4M1x1NmFhZVx1NjhiOVx1Njg3NFx1NjhiNVx1NjhhMFx1NjhiYVx1NjkwZlx1Njg4ZFx1Njg3ZVx1Njkw''@;'; + put 'put ''MVx1NjhjYVx1NjkwOFx1NjhkOFx1NjkyMlx1NjkyNlx1NjhlMVx1NjkwY1x1NjhjZFx1NjhkNFx1NjhlN1x1NjhkNVx1NjkzNlx1NjkxMlx1NjkwNFx1NjhkN1x1NjhlM1x1NjkyNVx1NjhmOVx1NjhlMFx1NjhlZlx1NjkyOFx1NjkyYVx1NjkxYVx1NjkyM1x1NjkyMVx1NjhjNlx1Njk3OVx1''@;'; + put 'put ''Njk3N1x1Njk1Y1x1Njk3OFx1Njk2Ylx1Njk1NFx1Njk3ZVx1Njk2ZVx1NjkzOVx1Njk3NFx1NjkzZFx1Njk1OVx1NjkzMFx1Njk2MVx1Njk1ZVx1Njk1ZFx1Njk4MVx1Njk2YVx1NjliMlx1NjlhZVx1NjlkMFx1NjliZlx1NjljMVx1NjlkM1x1NjliZVx1NjljZVx1NWJlOFx1NjljYVx1Njlk''@;'; + put 'put ''ZFx1NjliYlx1NjljM1x1NjlhN1x1NmEyZVx1Njk5MVx1NjlhMFx1Njk5Y1x1Njk5NVx1NjliNFx1NjlkZVx1NjllOFx1NmEwMlx1NmExYlx1NjlmZlx1NmIwYVx1NjlmOVx1NjlmMlx1NjllN1x1NmEwNVx1NjliMVx1NmExZVx1NjllZFx1NmExNFx1NjllYlx1NmEwYVx1NmExMlx1NmFjMVx1''@;'; + put 'put ''NmEyM1x1NmExM1x1NmE0NFx1NmEwY1x1NmE3Mlx1NmEzNlx1NmE3OFx1NmE0N1x1NmE2Mlx1NmE1OVx1NmE2Nlx1NmE0OFx1NmEzOFx1NmEyMlx1NmE5MFx1NmE4ZFx1NmFhMFx1NmE4NFx1NmFhMlx1NmFhM1x1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE1OF0ubGVu''@;'; + put 'put ''Z3RoOysrRSk2NTUzMyE9PUJbMTU4XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxNThdW0VdXT00MDQ0OCtFLExbNDA0NDgrRV09QlsxNThdW0VdKTtmb3IoQlsxNTldPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTZhOTdcdTg2MTdc''@;'; + put 'put ''dTZhYmJcdTZhYzNcdTZhYzJcdTZhYjhcdTZhYjNcdTZhYWNcdTZhZGVcdTZhZDFcdTZhZGZcdTZhYWFcdTZhZGFcdTZhZWFcdTZhZmJcdTZiMDVcdTg2MTZcdTZhZmFcdTZiMTJcdTZiMTZcdTliMzFcdTZiMWZcdTZiMzhcdTZiMzdcdTc2ZGNcdTZiMzlcdTk4ZWVcdTZiNDdcdTZiNDNcdTZi''@;'; + put 'put ''NDlcdTZiNTBcdTZiNTlcdTZiNTRcdTZiNWJcdTZiNWZcdTZiNjFcdTZiNzhcdTZiNzlcdTZiN2ZcdTZiODBcdTZiODRcdTZiODNcdTZiOGRcdTZiOThcdTZiOTVcdTZiOWVcdTZiYTRcdTZiYWFcdTZiYWJcdTZiYWZcdTZiYjJcdTZiYjFcdTZiYjNcdTZiYjdcdTZiYmNcdTZiYzZcdTZiY2Jc''@;'; + put 'put ''dTZiZDNcdTZiZGZcdTZiZWNcdTZiZWJcdTZiZjNcdTZiZWZcdWZmZmRcdTllYmVcdTZjMDhcdTZjMTNcdTZjMTRcdTZjMWJcdTZjMjRcdTZjMjNcdTZjNWVcdTZjNTVcdTZjNjJcdTZjNmFcdTZjODJcdTZjOGRcdTZjOWFcdTZjODFcdTZjOWJcdTZjN2VcdTZjNjhcdTZjNzNcdTZjOTJcdTZj''@;'; + put 'put ''OTBcdTZjYzRcdTZjZjFcdTZjZDNcdTZjYmRcdTZjZDdcdTZjYzVcdTZjZGRcdTZjYWVcdTZjYjFcdTZjYmVcdTZjYmFcdTZjZGJcdTZjZWZcdTZjZDlcdTZjZWFcdTZkMWZcdTg4NGRcdTZkMzZcdTZkMmJcdTZkM2RcdTZkMzhcdTZkMTlcdTZkMzVcdTZkMzNcdTZkMTJcdTZkMGNcdTZkNjNc''@;'; + put 'put ''dTZkOTNcdTZkNjRcdTZkNWFcdTZkNzlcdTZkNTlcdTZkOGVcdTZkOTVcdTZmZTRcdTZkODVcdTZkZjlcdTZlMTVcdTZlMGFcdTZkYjVcdTZkYzdcdTZkZTZcdTZkYjhcdTZkYzZcdTZkZWNcdTZkZGVcdTZkY2NcdTZkZThcdTZkZDJcdTZkYzVcdTZkZmFcdTZkZDlcdTZkZTRcdTZkZDVcdTZk''@;'; + put 'put ''ZWFcdTZkZWVcdTZlMmRcdTZlNmVcdTZlMmVcdTZlMTlcdTZlNzJcdTZlNWZcdTZlM2VcdTZlMjNcdTZlNmJcdTZlMmJcdTZlNzZcdTZlNGRcdTZlMWZcdTZlNDNcdTZlM2FcdTZlNGVcdTZlMjRcdTZlZmZcdTZlMWRcdTZlMzhcdTZlODJcdTZlYWFcdTZlOThcdTZlYzlcdTZlYjdcdTZlZDNc''@;'; + put 'put ''dTZlYmRcdTZlYWZcdTZlYzRcdTZlYjJcdTZlZDRcdTZlZDVcdTZlOGZcdTZlYTVcdTZlYzJcdTZlOWZcdTZmNDFcdTZmMTFcdTcwNGNcdTZlZWNcdTZlZjhcdTZlZmVcdTZmM2ZcdTZlZjJcdTZmMzFcdTZlZWZcdTZmMzJcdTZlY2NcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxFPTA7''@;'; + put 'put ''RSE9QlsxNTldLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE1OV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTU5XVtFXV09NDA3MDQrRSxMWzQwNzA0K0VdPUJbMTU5XVtFXSk7Zm9yKEJbMjI0XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHU2ZjNlXHU2ZjEzXHU2ZWY3XHU2Zjg2XHU2ZjdhXHU2Zjc4XHU2ZjgxXHU2ZjgwXHU2ZjZmXHU2ZjViXHU2ZmYzXHU2ZjZkXHU2ZjgyXHU2ZjdjXHU2ZjU4XHU2ZjhlXHU2ZjkxXHU2ZmMyXHU2ZjY2XHU2ZmIzXHU2ZmEzXHU2ZmExXHU2ZmE0XHU2ZmI5XHU2ZmM2XHU2ZmFhXHU2ZmRmXHU2''@;'; + put 'put ''ZmQ1XHU2ZmVjXHU2ZmQ0XHU2ZmQ4XHU2ZmYxXHU2ZmVlXHU2ZmRiXHU3MDA5XHU3MDBiXHU2ZmZhXHU3MDExXHU3MDAxXHU3MDBmXHU2ZmZlXHU3MDFiXHU3MDFhXHU2Zjc0XHU3MDFkXHU3MDE4XHU3MDFmXHU3MDMwXHU3MDNlXHU3MDMyXHU3MDUxXHU3MDYzXHU3MDk5XHU3MDkyXHU3MGFm''@;'; + put 'put ''XHU3MGYxXHU3MGFjXHU3MGI4XHU3MGIzXHU3MGFlXHU3MGRmXHU3MGNiXHU3MGRkXHVmZmZkXHU3MGQ5XHU3MTA5XHU3MGZkXHU3MTFjXHU3MTE5XHU3MTY1XHU3MTU1XHU3MTg4XHU3MTY2XHU3MTYyXHU3MTRjXHU3MTU2XHU3MTZjXHU3MThmXHU3MWZiXHU3MTg0XHU3MTk1XHU3MWE4XHU3''@;'; + put 'put ''MWFjXHU3MWQ3XHU3MWI5XHU3MWJlXHU3MWQyXHU3MWM5XHU3MWQ0XHU3MWNlXHU3MWUwXHU3MWVjXHU3MWU3XHU3MWY1XHU3MWZjXHU3MWY5XHU3MWZmXHU3MjBkXHU3MjEwXHU3MjFiXHU3MjI4XHU3MjJkXHU3MjJjXHU3MjMwXHU3MjMyXHU3MjNiXHU3MjNjXHU3MjNmXHU3MjQwXHU3MjQ2''@;'; + put 'put ''XHU3MjRiXHU3MjU4XHU3Mjc0XHU3MjdlXHU3MjgyXHU3MjgxXHU3Mjg3XHU3MjkyXHU3Mjk2XHU3MmEyXHU3MmE3XHU3MmI5XHU3MmIyXHU3MmMzXHU3MmM2XHU3MmM0XHU3MmNlXHU3MmQyXHU3MmUyXHU3MmUwXHU3MmUxXHU3MmY5XHU3MmY3XHU1MDBmXHU3MzE3XHU3MzBhXHU3MzFjXHU3''@;'; + put 'put ''MzE2XHU3MzFkXHU3MzM0XHU3MzJmXHU3MzI5XHU3MzI1XHU3MzNlXHU3MzRlXHU3MzRmXHU5ZWQ4XHU3MzU3XHU3MzZhXHU3MzY4XHU3MzcwXHU3Mzc4XHU3Mzc1XHU3MzdiXHU3MzdhXHU3M2M4XHU3M2IzXHU3M2NlXHU3M2JiXHU3M2MwXHU3M2U1XHU3M2VlXHU3M2RlXHU3NGEyXHU3NDA1''@;'; + put 'put ''XHU3NDZmXHU3NDI1XHU3M2Y4XHU3NDMyXHU3NDNhXHU3NDU1XHU3NDNmXHU3NDVmXHU3NDU5XHU3NDQxXHU3NDVjXHU3NDY5XHU3NDcwXHU3NDYzXHU3NDZhXHU3NDc2XHU3NDdlXHU3NDhiXHU3NDllXHU3NGE3XHU3NGNhXHU3NGNmXHU3NGQ0XHU3M2YxXHVmZmZkXHVmZmZkXHVmZmZkIi5z''@;'; + put 'put ''cGxpdCgiIiksRT0wO0UhPUJbMjI0XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMjRdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIyNF1bRV1dPTU3MzQ0K0UsTFs1NzM0NCtFXT1CWzIyNF1bRV0pO2ZvcihCWzIyNV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1NzRlMFx1NzRlM1x1NzRlN1x1NzRlOVx1NzRlZVx1NzRmMlx1NzRmMFx1NzRmMVx1NzRmOFx1NzRmN1x1NzUwNFx1NzUwM1x1NzUwNVx1NzUwY1x1NzUwZVx1NzUwZFx1NzUxNVx1NzUxM1x1NzUxZVx1NzUyNlx1NzUyY1x1NzUzY1x1NzU0NFx1NzU0ZFx1NzU0YVx1''@;'; + put 'put ''NzU0OVx1NzU1Ylx1NzU0Nlx1NzU1YVx1NzU2OVx1NzU2NFx1NzU2N1x1NzU2Ylx1NzU2ZFx1NzU3OFx1NzU3Nlx1NzU4Nlx1NzU4N1x1NzU3NFx1NzU4YVx1NzU4OVx1NzU4Mlx1NzU5NFx1NzU5YVx1NzU5ZFx1NzVhNVx1NzVhM1x1NzVjMlx1NzViM1x1NzVjM1x1NzViNVx1NzViZFx1NzVi''@;'; + put 'put ''OFx1NzViY1x1NzViMVx1NzVjZFx1NzVjYVx1NzVkMlx1NzVkOVx1NzVlM1x1NzVkZVx1NzVmZVx1NzVmZlx1ZmZmZFx1NzVmY1x1NzYwMVx1NzVmMFx1NzVmYVx1NzVmMlx1NzVmM1x1NzYwYlx1NzYwZFx1NzYwOVx1NzYxZlx1NzYyN1x1NzYyMFx1NzYyMVx1NzYyMlx1NzYyNFx1NzYzNFx1''@;'; + put 'put ''NzYzMFx1NzYzYlx1NzY0N1x1NzY0OFx1NzY0Nlx1NzY1Y1x1NzY1OFx1NzY2MVx1NzY2Mlx1NzY2OFx1NzY2OVx1NzY2YVx1NzY2N1x1NzY2Y1x1NzY3MFx1NzY3Mlx1NzY3Nlx1NzY3OFx1NzY3Y1x1NzY4MFx1NzY4M1x1NzY4OFx1NzY4Ylx1NzY4ZVx1NzY5Nlx1NzY5M1x1NzY5OVx1NzY5''@;'; + put 'put ''YVx1NzZiMFx1NzZiNFx1NzZiOFx1NzZiOVx1NzZiYVx1NzZjMlx1NzZjZFx1NzZkNlx1NzZkMlx1NzZkZVx1NzZlMVx1NzZlNVx1NzZlN1x1NzZlYVx1ODYyZlx1NzZmYlx1NzcwOFx1NzcwN1x1NzcwNFx1NzcyOVx1NzcyNFx1NzcxZVx1NzcyNVx1NzcyNlx1NzcxYlx1NzczN1x1NzczOFx1''@;'; + put 'put ''Nzc0N1x1Nzc1YVx1Nzc2OFx1Nzc2Ylx1Nzc1Ylx1Nzc2NVx1Nzc3Zlx1Nzc3ZVx1Nzc3OVx1Nzc4ZVx1Nzc4Ylx1Nzc5MVx1NzdhMFx1Nzc5ZVx1NzdiMFx1NzdiNlx1NzdiOVx1NzdiZlx1NzdiY1x1NzdiZFx1NzdiYlx1NzdjN1x1NzdjZFx1NzdkN1x1NzdkYVx1NzdkY1x1NzdlM1x1Nzdl''@;'; + put 'put ''ZVx1NzdmY1x1NzgwY1x1NzgxMlx1NzkyNlx1NzgyMFx1NzkyYVx1Nzg0NVx1Nzg4ZVx1Nzg3NFx1Nzg4Nlx1Nzg3Y1x1Nzg5YVx1Nzg4Y1x1NzhhM1x1NzhiNVx1NzhhYVx1NzhhZlx1NzhkMVx1NzhjNlx1NzhjYlx1NzhkNFx1NzhiZVx1NzhiY1x1NzhjNVx1NzhjYVx1NzhlY1x1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIyNV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjI1XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMjVdW0VdXT01NzYwMCtFLExbNTc2MDArRV09QlsyMjVdW0VdKTtmb3IoQlsyMjZdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTc4ZTdcdTc4ZGFcdTc4ZmRcdTc4ZjRcdTc5MDdcdTc5MTJcdTc5MTFcdTc5MTlcdTc5MmNcdTc5MmJcdTc5NDBcdTc5NjBcdTc5NTdcdTc5NWZcdTc5NWFcdTc5NTVcdTc5NTNcdTc5N2FcdTc5N2ZcdTc5OGFcdTc5OWRcdTc5YTdcdTlmNGJc''@;'; + put 'put ''dTc5YWFcdTc5YWVcdTc5YjNcdTc5YjlcdTc5YmFcdTc5YzlcdTc5ZDVcdTc5ZTdcdTc5ZWNcdTc5ZTFcdTc5ZTNcdTdhMDhcdTdhMGRcdTdhMThcdTdhMTlcdTdhMjBcdTdhMWZcdTc5ODBcdTdhMzFcdTdhM2JcdTdhM2VcdTdhMzdcdTdhNDNcdTdhNTdcdTdhNDlcdTdhNjFcdTdhNjJcdTdh''@;'; + put 'put ''NjlcdTlmOWRcdTdhNzBcdTdhNzlcdTdhN2RcdTdhODhcdTdhOTdcdTdhOTVcdTdhOThcdTdhOTZcdTdhYTlcdTdhYzhcdTdhYjBcdWZmZmRcdTdhYjZcdTdhYzVcdTdhYzRcdTdhYmZcdTkwODNcdTdhYzdcdTdhY2FcdTdhY2RcdTdhY2ZcdTdhZDVcdTdhZDNcdTdhZDlcdTdhZGFcdTdhZGRc''@;'; + put 'put ''dTdhZTFcdTdhZTJcdTdhZTZcdTdhZWRcdTdhZjBcdTdiMDJcdTdiMGZcdTdiMGFcdTdiMDZcdTdiMzNcdTdiMThcdTdiMTlcdTdiMWVcdTdiMzVcdTdiMjhcdTdiMzZcdTdiNTBcdTdiN2FcdTdiMDRcdTdiNGRcdTdiMGJcdTdiNGNcdTdiNDVcdTdiNzVcdTdiNjVcdTdiNzRcdTdiNjdcdTdi''@;'; + put 'put ''NzBcdTdiNzFcdTdiNmNcdTdiNmVcdTdiOWRcdTdiOThcdTdiOWZcdTdiOGRcdTdiOWNcdTdiOWFcdTdiOGJcdTdiOTJcdTdiOGZcdTdiNWRcdTdiOTlcdTdiY2JcdTdiYzFcdTdiY2NcdTdiY2ZcdTdiYjRcdTdiYzZcdTdiZGRcdTdiZTlcdTdjMTFcdTdjMTRcdTdiZTZcdTdiZTVcdTdjNjBc''@;'; + put 'put ''dTdjMDBcdTdjMDdcdTdjMTNcdTdiZjNcdTdiZjdcdTdjMTdcdTdjMGRcdTdiZjZcdTdjMjNcdTdjMjdcdTdjMmFcdTdjMWZcdTdjMzdcdTdjMmJcdTdjM2RcdTdjNGNcdTdjNDNcdTdjNTRcdTdjNGZcdTdjNDBcdTdjNTBcdTdjNThcdTdjNWZcdTdjNjRcdTdjNTZcdTdjNjVcdTdjNmNcdTdj''@;'; + put 'put ''NzVcdTdjODNcdTdjOTBcdTdjYTRcdTdjYWRcdTdjYTJcdTdjYWJcdTdjYTFcdTdjYThcdTdjYjNcdTdjYjJcdTdjYjFcdTdjYWVcdTdjYjlcdTdjYmRcdTdjYzBcdTdjYzVcdTdjYzJcdTdjZDhcdTdjZDJcdTdjZGNcdTdjZTJcdTliM2JcdTdjZWZcdTdjZjJcdTdjZjRcdTdjZjZcdTdjZmFc''@;'; + put 'put ''dTdkMDZcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMjZdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIyNl1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjI2XVtFXV09NTc4NTYrRSxMWzU3ODU2K0VdPUJbMjI2XVtFXSk7Zm9yKEJbMjI3XT0iXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3ZDAyXHU3ZDFjXHU3ZDE1XHU3ZDBhXHU3ZDQ1XHU3ZDRiXHU3ZDJlXHU3ZDMyXHU3ZDNmXHU3ZDM1XHU3ZDQ2XHU3ZDczXHU3ZDU2XHU3ZDRlXHU3ZDcyXHU3ZDY4XHU3ZDZlXHU3ZDRmXHU3ZDYzXHU3ZDkzXHU3ZDg5''@;'; + put 'put ''XHU3ZDViXHU3ZDhmXHU3ZDdkXHU3ZDliXHU3ZGJhXHU3ZGFlXHU3ZGEzXHU3ZGI1XHU3ZGM3XHU3ZGJkXHU3ZGFiXHU3ZTNkXHU3ZGEyXHU3ZGFmXHU3ZGRjXHU3ZGI4XHU3ZDlmXHU3ZGIwXHU3ZGQ4XHU3ZGRkXHU3ZGU0XHU3ZGRlXHU3ZGZiXHU3ZGYyXHU3ZGUxXHU3ZTA1XHU3ZTBhXHU3''@;'; + put 'put ''ZTIzXHU3ZTIxXHU3ZTEyXHU3ZTMxXHU3ZTFmXHU3ZTA5XHU3ZTBiXHU3ZTIyXHU3ZTQ2XHU3ZTY2XHU3ZTNiXHU3ZTM1XHU3ZTM5XHU3ZTQzXHU3ZTM3XHVmZmZkXHU3ZTMyXHU3ZTNhXHU3ZTY3XHU3ZTVkXHU3ZTU2XHU3ZTVlXHU3ZTU5XHU3ZTVhXHU3ZTc5XHU3ZTZhXHU3ZTY5XHU3ZTdj''@;'; + put 'put ''XHU3ZTdiXHU3ZTgzXHU3ZGQ1XHU3ZTdkXHU4ZmFlXHU3ZTdmXHU3ZTg4XHU3ZTg5XHU3ZThjXHU3ZTkyXHU3ZTkwXHU3ZTkzXHU3ZTk0XHU3ZTk2XHU3ZThlXHU3ZTliXHU3ZTljXHU3ZjM4XHU3ZjNhXHU3ZjQ1XHU3ZjRjXHU3ZjRkXHU3ZjRlXHU3ZjUwXHU3ZjUxXHU3ZjU1XHU3ZjU0XHU3''@;'; + put 'put ''ZjU4XHU3ZjVmXHU3ZjYwXHU3ZjY4XHU3ZjY5XHU3ZjY3XHU3Zjc4XHU3ZjgyXHU3Zjg2XHU3ZjgzXHU3Zjg4XHU3Zjg3XHU3ZjhjXHU3Zjk0XHU3ZjllXHU3ZjlkXHU3ZjlhXHU3ZmEzXHU3ZmFmXHU3ZmIyXHU3ZmI5XHU3ZmFlXHU3ZmI2XHU3ZmI4XHU4YjcxXHU3ZmM1XHU3ZmM2XHU3ZmNh''@;'; + put 'put ''XHU3ZmQ1XHU3ZmQ0XHU3ZmUxXHU3ZmU2XHU3ZmU5XHU3ZmYzXHU3ZmY5XHU5OGRjXHU4MDA2XHU4MDA0XHU4MDBiXHU4MDEyXHU4MDE4XHU4MDE5XHU4MDFjXHU4MDIxXHU4MDI4XHU4MDNmXHU4MDNiXHU4MDRhXHU4MDQ2XHU4MDUyXHU4MDU4XHU4MDVhXHU4MDVmXHU4MDYyXHU4MDY4XHU4''@;'; + put 'put ''MDczXHU4MDcyXHU4MDcwXHU4MDc2XHU4MDc5XHU4MDdkXHU4MDdmXHU4MDg0XHU4MDg2XHU4MDg1XHU4MDliXHU4MDkzXHU4MDlhXHU4MGFkXHU1MTkwXHU4MGFjXHU4MGRiXHU4MGU1XHU4MGQ5XHU4MGRkXHU4MGM0XHU4MGRhXHU4MGQ2XHU4MTA5XHU4MGVmXHU4MGYxXHU4MTFiXHU4MTI5''@;'; + put 'put ''XHU4MTIzXHU4MTJmXHU4MTRiXHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjI3XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMjddW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIyN11bRV1dPTU4MTEyK0UsTFs1ODExMitFXT1CWzIyN11bRV0pO2ZvcihCWzIyOF09Ilx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OTY4Ylx1ODE0Nlx1ODEzZVx1ODE1M1x1ODE1MVx1ODBmY1x1ODE3MVx1ODE2ZVx1ODE2NVx1ODE2Nlx1ODE3NFx1ODE4M1x1ODE4OFx1ODE4YVx1ODE4MFx1ODE4Mlx1ODFhMFx1ODE5NVx1ODFh''@;'; + put 'put ''NFx1ODFhM1x1ODE1Zlx1ODE5M1x1ODFhOVx1ODFiMFx1ODFiNVx1ODFiZVx1ODFiOFx1ODFiZFx1ODFjMFx1ODFjMlx1ODFiYVx1ODFjOVx1ODFjZFx1ODFkMVx1ODFkOVx1ODFkOFx1ODFjOFx1ODFkYVx1ODFkZlx1ODFlMFx1ODFlN1x1ODFmYVx1ODFmYlx1ODFmZVx1ODIwMVx1ODIwMlx1''@;'; + put 'put ''ODIwNVx1ODIwN1x1ODIwYVx1ODIwZFx1ODIxMFx1ODIxNlx1ODIyOVx1ODIyYlx1ODIzOFx1ODIzM1x1ODI0MFx1ODI1OVx1ODI1OFx1ODI1ZFx1ODI1YVx1ODI1Zlx1ODI2NFx1ZmZmZFx1ODI2Mlx1ODI2OFx1ODI2YVx1ODI2Ylx1ODIyZVx1ODI3MVx1ODI3N1x1ODI3OFx1ODI3ZVx1ODI4''@;'; + put 'put ''ZFx1ODI5Mlx1ODJhYlx1ODI5Zlx1ODJiYlx1ODJhY1x1ODJlMVx1ODJlM1x1ODJkZlx1ODJkMlx1ODJmNFx1ODJmM1x1ODJmYVx1ODM5M1x1ODMwM1x1ODJmYlx1ODJmOVx1ODJkZVx1ODMwNlx1ODJkY1x1ODMwOVx1ODJkOVx1ODMzNVx1ODMzNFx1ODMxNlx1ODMzMlx1ODMzMVx1ODM0MFx1''@;'; + put 'put ''ODMzOVx1ODM1MFx1ODM0NVx1ODMyZlx1ODMyYlx1ODMxN1x1ODMxOFx1ODM4NVx1ODM5YVx1ODNhYVx1ODM5Zlx1ODNhMlx1ODM5Nlx1ODMyM1x1ODM4ZVx1ODM4N1x1ODM4YVx1ODM3Y1x1ODNiNVx1ODM3M1x1ODM3NVx1ODNhMFx1ODM4OVx1ODNhOFx1ODNmNFx1ODQxM1x1ODNlYlx1ODNj''@;'; + put 'put ''ZVx1ODNmZFx1ODQwM1x1ODNkOFx1ODQwYlx1ODNjMVx1ODNmN1x1ODQwN1x1ODNlMFx1ODNmMlx1ODQwZFx1ODQyMlx1ODQyMFx1ODNiZFx1ODQzOFx1ODUwNlx1ODNmYlx1ODQ2ZFx1ODQyYVx1ODQzY1x1ODU1YVx1ODQ4NFx1ODQ3N1x1ODQ2Ylx1ODRhZFx1ODQ2ZVx1ODQ4Mlx1ODQ2OVx1''@;'; + put 'put ''ODQ0Nlx1ODQyY1x1ODQ2Zlx1ODQ3OVx1ODQzNVx1ODRjYVx1ODQ2Mlx1ODRiOVx1ODRiZlx1ODQ5Zlx1ODRkOVx1ODRjZFx1ODRiYlx1ODRkYVx1ODRkMFx1ODRjMVx1ODRjNlx1ODRkNlx1ODRhMVx1ODUyMVx1ODRmZlx1ODRmNFx1ODUxN1x1ODUxOFx1ODUyY1x1ODUxZlx1ODUxNVx1ODUx''@;'; + put 'put ''NFx1ODRmY1x1ODU0MFx1ODU2M1x1ODU1OFx1ODU0OFx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIyOF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjI4XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMjhdW0VdXT01ODM2OCtFLExbNTgzNjgrRV09QlsyMjhdW0VdKTtm''@;'; + put 'put ''b3IoQlsyMjldPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTg1NDFcdTg2MDJcdTg1NGJcdTg1NTVcdTg1ODBcdTg1YTRcdTg1ODhcdTg1OTFcdTg1OGFcdTg1YThcdTg1NmRcdTg1OTRcdTg1OWJcdTg1ZWFcdTg1ODdcdTg1OWNcdTg1''@;'; + put 'put ''NzdcdTg1N2VcdTg1OTBcdTg1YzlcdTg1YmFcdTg1Y2ZcdTg1YjlcdTg1ZDBcdTg1ZDVcdTg1ZGRcdTg1ZTVcdTg1ZGNcdTg1ZjlcdTg2MGFcdTg2MTNcdTg2MGJcdTg1ZmVcdTg1ZmFcdTg2MDZcdTg2MjJcdTg2MWFcdTg2MzBcdTg2M2ZcdTg2NGRcdTRlNTVcdTg2NTRcdTg2NWZcdTg2Njdc''@;'; + put 'put ''dTg2NzFcdTg2OTNcdTg2YTNcdTg2YTlcdTg2YWFcdTg2OGJcdTg2OGNcdTg2YjZcdTg2YWZcdTg2YzRcdTg2YzZcdTg2YjBcdTg2YzlcdTg4MjNcdTg2YWJcdTg2ZDRcdTg2ZGVcdTg2ZTlcdTg2ZWNcdWZmZmRcdTg2ZGZcdTg2ZGJcdTg2ZWZcdTg3MTJcdTg3MDZcdTg3MDhcdTg3MDBcdTg3''@;'; + put 'put ''MDNcdTg2ZmJcdTg3MTFcdTg3MDlcdTg3MGRcdTg2ZjlcdTg3MGFcdTg3MzRcdTg3M2ZcdTg3MzdcdTg3M2JcdTg3MjVcdTg3MjlcdTg3MWFcdTg3NjBcdTg3NWZcdTg3NzhcdTg3NGNcdTg3NGVcdTg3NzRcdTg3NTdcdTg3NjhcdTg3NmVcdTg3NTlcdTg3NTNcdTg3NjNcdTg3NmFcdTg4MDVc''@;'; + put 'put ''dTg3YTJcdTg3OWZcdTg3ODJcdTg3YWZcdTg3Y2JcdTg3YmRcdTg3YzBcdTg3ZDBcdTk2ZDZcdTg3YWJcdTg3YzRcdTg3YjNcdTg3YzdcdTg3YzZcdTg3YmJcdTg3ZWZcdTg3ZjJcdTg3ZTBcdTg4MGZcdTg4MGRcdTg3ZmVcdTg3ZjZcdTg3ZjdcdTg4MGVcdTg3ZDJcdTg4MTFcdTg4MTZcdTg4''@;'; + put 'put ''MTVcdTg4MjJcdTg4MjFcdTg4MzFcdTg4MzZcdTg4MzlcdTg4MjdcdTg4M2JcdTg4NDRcdTg4NDJcdTg4NTJcdTg4NTlcdTg4NWVcdTg4NjJcdTg4NmJcdTg4ODFcdTg4N2VcdTg4OWVcdTg4NzVcdTg4N2RcdTg4YjVcdTg4NzJcdTg4ODJcdTg4OTdcdTg4OTJcdTg4YWVcdTg4OTlcdTg4YTJc''@;'; + put 'put ''dTg4OGRcdTg4YTRcdTg4YjBcdTg4YmZcdTg4YjFcdTg4YzNcdTg4YzRcdTg4ZDRcdTg4ZDhcdTg4ZDlcdTg4ZGRcdTg4ZjlcdTg5MDJcdTg4ZmNcdTg4ZjRcdTg4ZThcdTg4ZjJcdTg5MDRcdTg5MGNcdTg5MGFcdTg5MTNcdTg5NDNcdTg5MWVcdTg5MjVcdTg5MmFcdTg5MmJcdTg5NDFcdTg5''@;'; + put 'put ''NDRcdTg5M2JcdTg5MzZcdTg5MzhcdTg5NGNcdTg5MWRcdTg5NjBcdTg5NWVcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMjldLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIyOV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjI5XVtFXV09NTg2MjQrRSxMWzU4NjI0K0Vd''@;'; + put 'put ''PUJbMjI5XVtFXSk7Zm9yKEJbMjMwXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4OTY2XHU4OTY0XHU4OTZkXHU4OTZhXHU4OTZmXHU4OTc0XHU4OTc3XHU4OTdlXHU4OTgzXHU4OTg4XHU4OThhXHU4OTkzXHU4OTk4XHU4OWExXHU4''@;'; + put 'put ''OWE5XHU4OWE2XHU4OWFjXHU4OWFmXHU4OWIyXHU4OWJhXHU4OWJkXHU4OWJmXHU4OWMwXHU4OWRhXHU4OWRjXHU4OWRkXHU4OWU3XHU4OWY0XHU4OWY4XHU4YTAzXHU4YTE2XHU4YTEwXHU4YTBjXHU4YTFiXHU4YTFkXHU4YTI1XHU4YTM2XHU4YTQxXHU4YTViXHU4YTUyXHU4YTQ2XHU4YTQ4''@;'; + put 'put ''XHU4YTdjXHU4YTZkXHU4YTZjXHU4YTYyXHU4YTg1XHU4YTgyXHU4YTg0XHU4YWE4XHU4YWExXHU4YTkxXHU4YWE1XHU4YWE2XHU4YTlhXHU4YWEzXHU4YWM0XHU4YWNkXHU4YWMyXHU4YWRhXHU4YWViXHU4YWYzXHU4YWU3XHVmZmZkXHU4YWU0XHU4YWYxXHU4YjE0XHU4YWUwXHU4YWUyXHU4''@;'; + put 'put ''YWY3XHU4YWRlXHU4YWRiXHU4YjBjXHU4YjA3XHU4YjFhXHU4YWUxXHU4YjE2XHU4YjEwXHU4YjE3XHU4YjIwXHU4YjMzXHU5N2FiXHU4YjI2XHU4YjJiXHU4YjNlXHU4YjI4XHU4YjQxXHU4YjRjXHU4YjRmXHU4YjRlXHU4YjQ5XHU4YjU2XHU4YjViXHU4YjVhXHU4YjZiXHU4YjVmXHU4YjZj''@;'; + put 'put ''XHU4YjZmXHU4Yjc0XHU4YjdkXHU4YjgwXHU4YjhjXHU4YjhlXHU4YjkyXHU4YjkzXHU4Yjk2XHU4Yjk5XHU4YjlhXHU4YzNhXHU4YzQxXHU4YzNmXHU4YzQ4XHU4YzRjXHU4YzRlXHU4YzUwXHU4YzU1XHU4YzYyXHU4YzZjXHU4Yzc4XHU4YzdhXHU4YzgyXHU4Yzg5XHU4Yzg1XHU4YzhhXHU4''@;'; + put 'put ''YzhkXHU4YzhlXHU4Yzk0XHU4YzdjXHU4Yzk4XHU2MjFkXHU4Y2FkXHU4Y2FhXHU4Y2JkXHU4Y2IyXHU4Y2IzXHU4Y2FlXHU4Y2I2XHU4Y2M4XHU4Y2MxXHU4Y2U0XHU4Y2UzXHU4Y2RhXHU4Y2ZkXHU4Y2ZhXHU4Y2ZiXHU4ZDA0XHU4ZDA1XHU4ZDBhXHU4ZDA3XHU4ZDBmXHU4ZDBkXHU4ZDEw''@;'; + put 'put ''XHU5ZjRlXHU4ZDEzXHU4Y2NkXHU4ZDE0XHU4ZDE2XHU4ZDY3XHU4ZDZkXHU4ZDcxXHU4ZDczXHU4ZDgxXHU4ZDk5XHU4ZGMyXHU4ZGJlXHU4ZGJhXHU4ZGNmXHU4ZGRhXHU4ZGQ2XHU4ZGNjXHU4ZGRiXHU4ZGNiXHU4ZGVhXHU4ZGViXHU4ZGRmXHU4ZGUzXHU4ZGZjXHU4ZTA4XHU4ZTA5XHU4''@;'; + put 'put ''ZGZmXHU4ZTFkXHU4ZTFlXHU4ZTEwXHU4ZTFmXHU4ZTQyXHU4ZTM1XHU4ZTMwXHU4ZTM0XHU4ZTRhXHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjMwXS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMzBdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIzMF1bRV1dPTU4ODgw''@;'; + put 'put ''K0UsTFs1ODg4MCtFXT1CWzIzMF1bRV0pO2ZvcihCWzIzMV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OGU0N1x1OGU0OVx1OGU0Y1x1OGU1MFx1OGU0OFx1OGU1OVx1OGU2NFx1OGU2MFx1OGUyYVx1OGU2M1x1OGU1NVx1OGU3Nlx1''@;'; + put 'put ''OGU3Mlx1OGU3Y1x1OGU4MVx1OGU4N1x1OGU4NVx1OGU4NFx1OGU4Ylx1OGU4YVx1OGU5M1x1OGU5MVx1OGU5NFx1OGU5OVx1OGVhYVx1OGVhMVx1OGVhY1x1OGViMFx1OGVjNlx1OGViMVx1OGViZVx1OGVjNVx1OGVjOFx1OGVjYlx1OGVkYlx1OGVlM1x1OGVmY1x1OGVmYlx1OGVlYlx1OGVm''@;'; + put 'put ''ZVx1OGYwYVx1OGYwNVx1OGYxNVx1OGYxMlx1OGYxOVx1OGYxM1x1OGYxY1x1OGYxZlx1OGYxYlx1OGYwY1x1OGYyNlx1OGYzM1x1OGYzYlx1OGYzOVx1OGY0NVx1OGY0Mlx1OGYzZVx1OGY0Y1x1OGY0OVx1OGY0Nlx1OGY0ZVx1OGY1N1x1OGY1Y1x1ZmZmZFx1OGY2Mlx1OGY2M1x1OGY2NFx1''@;'; + put 'put ''OGY5Y1x1OGY5Zlx1OGZhM1x1OGZhZFx1OGZhZlx1OGZiN1x1OGZkYVx1OGZlNVx1OGZlMlx1OGZlYVx1OGZlZlx1OTA4N1x1OGZmNFx1OTAwNVx1OGZmOVx1OGZmYVx1OTAxMVx1OTAxNVx1OTAyMVx1OTAwZFx1OTAxZVx1OTAxNlx1OTAwYlx1OTAyN1x1OTAzNlx1OTAzNVx1OTAzOVx1OGZm''@;'; + put 'put ''OFx1OTA0Zlx1OTA1MFx1OTA1MVx1OTA1Mlx1OTAwZVx1OTA0OVx1OTAzZVx1OTA1Nlx1OTA1OFx1OTA1ZVx1OTA2OFx1OTA2Zlx1OTA3Nlx1OTZhOFx1OTA3Mlx1OTA4Mlx1OTA3ZFx1OTA4MVx1OTA4MFx1OTA4YVx1OTA4OVx1OTA4Zlx1OTBhOFx1OTBhZlx1OTBiMVx1OTBiNVx1OTBlMlx1''@;'; + put 'put ''OTBlNFx1NjI0OFx1OTBkYlx1OTEwMlx1OTExMlx1OTExOVx1OTEzMlx1OTEzMFx1OTE0YVx1OTE1Nlx1OTE1OFx1OTE2M1x1OTE2NVx1OTE2OVx1OTE3M1x1OTE3Mlx1OTE4Ylx1OTE4OVx1OTE4Mlx1OTFhMlx1OTFhYlx1OTFhZlx1OTFhYVx1OTFiNVx1OTFiNFx1OTFiYVx1OTFjMFx1OTFj''@;'; + put 'put ''MVx1OTFjOVx1OTFjYlx1OTFkMFx1OTFkNlx1OTFkZlx1OTFlMVx1OTFkYlx1OTFmY1x1OTFmNVx1OTFmNlx1OTIxZVx1OTFmZlx1OTIxNFx1OTIyY1x1OTIxNVx1OTIxMVx1OTI1ZVx1OTI1N1x1OTI0NVx1OTI0OVx1OTI2NFx1OTI0OFx1OTI5NVx1OTIzZlx1OTI0Ylx1OTI1MFx1OTI5Y1x1''@;'; + put 'put ''OTI5Nlx1OTI5M1x1OTI5Ylx1OTI1YVx1OTJjZlx1OTJiOVx1OTJiN1x1OTJlOVx1OTMwZlx1OTJmYVx1OTM0NFx1OTMyZVx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIzMV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjMxXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsy''@;'; + put 'put ''MzFdW0VdXT01OTEzNitFLExbNTkxMzYrRV09QlsyMzFdW0VdKTtmb3IoQlsyMzJdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTkzMTlcdTkzMjJcdTkzMWFcdTkzMjNcdTkzM2FcdTkzMzVcdTkzM2JcdTkzNWNcdTkzNjBcdTkzN2Nc''@;'; + put 'put ''dTkzNmVcdTkzNTZcdTkzYjBcdTkzYWNcdTkzYWRcdTkzOTRcdTkzYjlcdTkzZDZcdTkzZDdcdTkzZThcdTkzZTVcdTkzZDhcdTkzYzNcdTkzZGRcdTkzZDBcdTkzYzhcdTkzZTRcdTk0MWFcdTk0MTRcdTk0MTNcdTk0MDNcdTk0MDdcdTk0MTBcdTk0MzZcdTk0MmJcdTk0MzVcdTk0MjFcdTk0''@;'; + put 'put ''M2FcdTk0NDFcdTk0NTJcdTk0NDRcdTk0NWJcdTk0NjBcdTk0NjJcdTk0NWVcdTk0NmFcdTkyMjlcdTk0NzBcdTk0NzVcdTk0NzdcdTk0N2RcdTk0NWFcdTk0N2NcdTk0N2VcdTk0ODFcdTk0N2ZcdTk1ODJcdTk1ODdcdTk1OGFcdTk1OTRcdTk1OTZcdTk1OThcdTk1OTlcdWZmZmRcdTk1YTBc''@;'; + put 'put ''dTk1YThcdTk1YTdcdTk1YWRcdTk1YmNcdTk1YmJcdTk1YjlcdTk1YmVcdTk1Y2FcdTZmZjZcdTk1YzNcdTk1Y2RcdTk1Y2NcdTk1ZDVcdTk1ZDRcdTk1ZDZcdTk1ZGNcdTk1ZTFcdTk1ZTVcdTk1ZTJcdTk2MjFcdTk2MjhcdTk2MmVcdTk2MmZcdTk2NDJcdTk2NGNcdTk2NGZcdTk2NGJcdTk2''@;'; + put 'put ''NzdcdTk2NWNcdTk2NWVcdTk2NWRcdTk2NWZcdTk2NjZcdTk2NzJcdTk2NmNcdTk2OGRcdTk2OThcdTk2OTVcdTk2OTdcdTk2YWFcdTk2YTdcdTk2YjFcdTk2YjJcdTk2YjBcdTk2YjRcdTk2YjZcdTk2YjhcdTk2YjlcdTk2Y2VcdTk2Y2JcdTk2YzlcdTk2Y2RcdTg5NGRcdTk2ZGNcdTk3MGRc''@;'; + put 'put ''dTk2ZDVcdTk2ZjlcdTk3MDRcdTk3MDZcdTk3MDhcdTk3MTNcdTk3MGVcdTk3MTFcdTk3MGZcdTk3MTZcdTk3MTlcdTk3MjRcdTk3MmFcdTk3MzBcdTk3MzlcdTk3M2RcdTk3M2VcdTk3NDRcdTk3NDZcdTk3NDhcdTk3NDJcdTk3NDlcdTk3NWNcdTk3NjBcdTk3NjRcdTk3NjZcdTk3NjhcdTUy''@;'; + put 'put ''ZDJcdTk3NmJcdTk3NzFcdTk3NzlcdTk3ODVcdTk3N2NcdTk3ODFcdTk3N2FcdTk3ODZcdTk3OGJcdTk3OGZcdTk3OTBcdTk3OWNcdTk3YThcdTk3YTZcdTk3YTNcdTk3YjNcdTk3YjRcdTk3YzNcdTk3YzZcdTk3YzhcdTk3Y2JcdTk3ZGNcdTk3ZWRcdTlmNGZcdTk3ZjJcdTdhZGZcdTk3ZjZc''@;'; + put 'put ''dTk3ZjVcdTk4MGZcdTk4MGNcdTk4MzhcdTk4MjRcdTk4MjFcdTk4MzdcdTk4M2RcdTk4NDZcdTk4NGZcdTk4NGJcdTk4NmJcdTk4NmZcdTk4NzBcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMzJdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIzMl1bRV0uY2hhckNvZGVB''@;'; + put 'put ''dCgwKSYmKG1lW0JbMjMyXVtFXV09NTkzOTIrRSxMWzU5MzkyK0VdPUJbMjMyXVtFXSk7Zm9yKEJbMjMzXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5ODcxXHU5ODc0XHU5ODczXHU5OGFhXHU5OGFmXHU5OGIxXHU5OGI2XHU5OGM0''@;'; + put 'put ''XHU5OGMzXHU5OGM2XHU5OGU5XHU5OGViXHU5OTAzXHU5OTA5XHU5OTEyXHU5OTE0XHU5OTE4XHU5OTIxXHU5OTFkXHU5OTFlXHU5OTI0XHU5OTIwXHU5OTJjXHU5OTJlXHU5OTNkXHU5OTNlXHU5OTQyXHU5OTQ5XHU5OTQ1XHU5OTUwXHU5OTRiXHU5OTUxXHU5OTUyXHU5OTRjXHU5OTU1XHU5''@;'; + put 'put ''OTk3XHU5OTk4XHU5OWE1XHU5OWFkXHU5OWFlXHU5OWJjXHU5OWRmXHU5OWRiXHU5OWRkXHU5OWQ4XHU5OWQxXHU5OWVkXHU5OWVlXHU5OWYxXHU5OWYyXHU5OWZiXHU5OWY4XHU5YTAxXHU5YTBmXHU5YTA1XHU5OWUyXHU5YTE5XHU5YTJiXHU5YTM3XHU5YTQ1XHU5YTQyXHU5YTQwXHU5YTQz''@;'; + put 'put ''XHVmZmZkXHU5YTNlXHU5YTU1XHU5YTRkXHU5YTViXHU5YTU3XHU5YTVmXHU5YTYyXHU5YTY1XHU5YTY0XHU5YTY5XHU5YTZiXHU5YTZhXHU5YWFkXHU5YWIwXHU5YWJjXHU5YWMwXHU5YWNmXHU5YWQxXHU5YWQzXHU5YWQ0XHU5YWRlXHU5YWRmXHU5YWUyXHU5YWUzXHU5YWU2XHU5YWVmXHU5''@;'; + put 'put ''YWViXHU5YWVlXHU5YWY0XHU5YWYxXHU5YWY3XHU5YWZiXHU5YjA2XHU5YjE4XHU5YjFhXHU5YjFmXHU5YjIyXHU5YjIzXHU5YjI1XHU5YjI3XHU5YjI4XHU5YjI5XHU5YjJhXHU5YjJlXHU5YjJmXHU5YjMyXHU5YjQ0XHU5YjQzXHU5YjRmXHU5YjRkXHU5YjRlXHU5YjUxXHU5YjU4XHU5Yjc0''@;'; + put 'put ''XHU5YjkzXHU5YjgzXHU5YjkxXHU5Yjk2XHU5Yjk3XHU5YjlmXHU5YmEwXHU5YmE4XHU5YmI0XHU5YmMwXHU5YmNhXHU5YmI5XHU5YmM2XHU5YmNmXHU5YmQxXHU5YmQyXHU5YmUzXHU5YmUyXHU5YmU0XHU5YmQ0XHU5YmUxXHU5YzNhXHU5YmYyXHU5YmYxXHU5YmYwXHU5YzE1XHU5YzE0XHU5''@;'; + put 'put ''YzA5XHU5YzEzXHU5YzBjXHU5YzA2XHU5YzA4XHU5YzEyXHU5YzBhXHU5YzA0XHU5YzJlXHU5YzFiXHU5YzI1XHU5YzI0XHU5YzIxXHU5YzMwXHU5YzQ3XHU5YzMyXHU5YzQ2XHU5YzNlXHU5YzVhXHU5YzYwXHU5YzY3XHU5Yzc2XHU5Yzc4XHU5Y2U3XHU5Y2VjXHU5Y2YwXHU5ZDA5XHU5ZDA4''@;'; + put 'put ''XHU5Y2ViXHU5ZDAzXHU5ZDA2XHU5ZDJhXHU5ZDI2XHU5ZGFmXHU5ZDIzXHU5ZDFmXHU5ZDQ0XHU5ZDE1XHU5ZDEyXHU5ZDQxXHU5ZDNmXHU5ZDNlXHU5ZDQ2XHU5ZDQ4XHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjMzXS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMzNd''@;'; + put 'put ''W0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIzM11bRV1dPTU5NjQ4K0UsTFs1OTY0OCtFXT1CWzIzM11bRV0pO2ZvcihCWzIzNF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OWQ1ZFx1OWQ1ZVx1OWQ2NFx1OWQ1MVx1OWQ1MFx1OWQ1''@;'; + put 'put ''OVx1OWQ3Mlx1OWQ4OVx1OWQ4N1x1OWRhYlx1OWQ2Zlx1OWQ3YVx1OWQ5YVx1OWRhNFx1OWRhOVx1OWRiMlx1OWRjNFx1OWRjMVx1OWRiYlx1OWRiOFx1OWRiYVx1OWRjNlx1OWRjZlx1OWRjMlx1OWRkOVx1OWRkM1x1OWRmOFx1OWRlNlx1OWRlZFx1OWRlZlx1OWRmZFx1OWUxYVx1OWUxYlx1''@;'; + put 'put ''OWUxZVx1OWU3NVx1OWU3OVx1OWU3ZFx1OWU4MVx1OWU4OFx1OWU4Ylx1OWU4Y1x1OWU5Mlx1OWU5NVx1OWU5MVx1OWU5ZFx1OWVhNVx1OWVhOVx1OWViOFx1OWVhYVx1OWVhZFx1OTc2MVx1OWVjY1x1OWVjZVx1OWVjZlx1OWVkMFx1OWVkNFx1OWVkY1x1OWVkZVx1OWVkZFx1OWVlMFx1OWVl''@;'; + put 'put ''NVx1OWVlOFx1OWVlZlx1ZmZmZFx1OWVmNFx1OWVmNlx1OWVmN1x1OWVmOVx1OWVmYlx1OWVmY1x1OWVmZFx1OWYwN1x1OWYwOFx1NzZiN1x1OWYxNVx1OWYyMVx1OWYyY1x1OWYzZVx1OWY0YVx1OWY1Mlx1OWY1NFx1OWY2M1x1OWY1Zlx1OWY2MFx1OWY2MVx1OWY2Nlx1OWY2N1x1OWY2Y1x1''@;'; + put 'put ''OWY2YVx1OWY3N1x1OWY3Mlx1OWY3Nlx1OWY5NVx1OWY5Y1x1OWZhMFx1NTgyZlx1NjljN1x1OTA1OVx1NzQ2NFx1NTFkY1x1NzE5OVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIzNF0ubGVuZ3RoOysrRSk2''@;'; + put 'put ''NTUzMyE9PUJbMjM0XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMzRdW0VdXT01OTkwNCtFLExbNTk5MDQrRV09QlsyMzRdW0VdKTtmb3IoQlsyMzddPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTdlOGFcdTg5MWNcdTkzNDhcdTky''@;'; + put 'put ''ODhcdTg0ZGNcdTRmYzlcdTcwYmJcdTY2MzFcdTY4YzhcdTkyZjlcdTY2ZmJcdTVmNDVcdTRlMjhcdTRlZTFcdTRlZmNcdTRmMDBcdTRmMDNcdTRmMzlcdTRmNTZcdTRmOTJcdTRmOGFcdTRmOWFcdTRmOTRcdTRmY2RcdTUwNDBcdTUwMjJcdTRmZmZcdTUwMWVcdTUwNDZcdTUwNzBcdTUwNDJc''@;'; + put 'put ''dTUwOTRcdTUwZjRcdTUwZDhcdTUxNGFcdTUxNjRcdTUxOWRcdTUxYmVcdTUxZWNcdTUyMTVcdTUyOWNcdTUyYTZcdTUyYzBcdTUyZGJcdTUzMDBcdTUzMDdcdTUzMjRcdTUzNzJcdTUzOTNcdTUzYjJcdTUzZGRcdWZhMGVcdTU0OWNcdTU0OGFcdTU0YTlcdTU0ZmZcdTU1ODZcdTU3NTlcdTU3''@;'; + put 'put ''NjVcdTU3YWNcdTU3YzhcdTU3YzdcdWZhMGZcdWZmZmRcdWZhMTBcdTU4OWVcdTU4YjJcdTU5MGJcdTU5NTNcdTU5NWJcdTU5NWRcdTU5NjNcdTU5YTRcdTU5YmFcdTViNTZcdTViYzBcdTc1MmZcdTViZDhcdTViZWNcdTVjMWVcdTVjYTZcdTVjYmFcdTVjZjVcdTVkMjdcdTVkNTNcdWZhMTFc''@;'; + put 'put ''dTVkNDJcdTVkNmRcdTVkYjhcdTVkYjlcdTVkZDBcdTVmMjFcdTVmMzRcdTVmNjdcdTVmYjdcdTVmZGVcdTYwNWRcdTYwODVcdTYwOGFcdTYwZGVcdTYwZDVcdTYxMjBcdTYwZjJcdTYxMTFcdTYxMzdcdTYxMzBcdTYxOThcdTYyMTNcdTYyYTZcdTYzZjVcdTY0NjBcdTY0OWRcdTY0Y2VcdTY1''@;'; + put 'put ''NGVcdTY2MDBcdTY2MTVcdTY2M2JcdTY2MDlcdTY2MmVcdTY2MWVcdTY2MjRcdTY2NjVcdTY2NTdcdTY2NTlcdWZhMTJcdTY2NzNcdTY2OTlcdTY2YTBcdTY2YjJcdTY2YmZcdTY2ZmFcdTY3MGVcdWY5MjlcdTY3NjZcdTY3YmJcdTY4NTJcdTY3YzBcdTY4MDFcdTY4NDRcdTY4Y2ZcdWZhMTNc''@;'; + put 'put ''dTY5NjhcdWZhMTRcdTY5OThcdTY5ZTJcdTZhMzBcdTZhNmJcdTZhNDZcdTZhNzNcdTZhN2VcdTZhZTJcdTZhZTRcdTZiZDZcdTZjM2ZcdTZjNWNcdTZjODZcdTZjNmZcdTZjZGFcdTZkMDRcdTZkODdcdTZkNmZcdTZkOTZcdTZkYWNcdTZkY2ZcdTZkZjhcdTZkZjJcdTZkZmNcdTZlMzlcdTZl''@;'; + put 'put ''NWNcdTZlMjdcdTZlM2NcdTZlYmZcdTZmODhcdTZmYjVcdTZmZjVcdTcwMDVcdTcwMDdcdTcwMjhcdTcwODVcdTcwYWJcdTcxMGZcdTcxMDRcdTcxNWNcdTcxNDZcdTcxNDdcdWZhMTVcdTcxYzFcdTcxZmVcdTcyYjFcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMzdd''@;'; + put 'put ''Lmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIzN11bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjM3XVtFXV09NjA2NzIrRSxMWzYwNjcyK0VdPUJbMjM3XVtFXSk7Zm9yKEJbMjM4XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3MmJlXHU3''@;'; + put 'put ''MzI0XHVmYTE2XHU3Mzc3XHU3M2JkXHU3M2M5XHU3M2Q2XHU3M2UzXHU3M2QyXHU3NDA3XHU3M2Y1XHU3NDI2XHU3NDJhXHU3NDI5XHU3NDJlXHU3NDYyXHU3NDg5XHU3NDlmXHU3NTAxXHU3NTZmXHU3NjgyXHU3NjljXHU3NjllXHU3NjliXHU3NmE2XHVmYTE3XHU3NzQ2XHU1MmFmXHU3ODIx''@;'; + put 'put ''XHU3ODRlXHU3ODY0XHU3ODdhXHU3OTMwXHVmYTE4XHVmYTE5XHVmYTFhXHU3OTk0XHVmYTFiXHU3OTliXHU3YWQxXHU3YWU3XHVmYTFjXHU3YWViXHU3YjllXHVmYTFkXHU3ZDQ4XHU3ZDVjXHU3ZGI3XHU3ZGEwXHU3ZGQ2XHU3ZTUyXHU3ZjQ3XHU3ZmExXHVmYTFlXHU4MzAxXHU4MzYyXHU4''@;'; + put 'put ''MzdmXHU4M2M3XHU4M2Y2XHU4NDQ4XHU4NGI0XHU4NTUzXHU4NTU5XHVmZmZkXHU4NTZiXHVmYTFmXHU4NWIwXHVmYTIwXHVmYTIxXHU4ODA3XHU4OGY1XHU4YTEyXHU4YTM3XHU4YTc5XHU4YWE3XHU4YWJlXHU4YWRmXHVmYTIyXHU4YWY2XHU4YjUzXHU4YjdmXHU4Y2YwXHU4Y2Y0XHU4ZDEy''@;'; + put 'put ''XHU4ZDc2XHVmYTIzXHU4ZWNmXHVmYTI0XHVmYTI1XHU5MDY3XHU5MGRlXHVmYTI2XHU5MTE1XHU5MTI3XHU5MWRhXHU5MWQ3XHU5MWRlXHU5MWVkXHU5MWVlXHU5MWU0XHU5MWU1XHU5MjA2XHU5MjEwXHU5MjBhXHU5MjNhXHU5MjQwXHU5MjNjXHU5MjRlXHU5MjU5XHU5MjUxXHU5MjM5XHU5''@;'; + put 'put ''MjY3XHU5MmE3XHU5Mjc3XHU5Mjc4XHU5MmU3XHU5MmQ3XHU5MmQ5XHU5MmQwXHVmYTI3XHU5MmQ1XHU5MmUwXHU5MmQzXHU5MzI1XHU5MzIxXHU5MmZiXHVmYTI4XHU5MzFlXHU5MmZmXHU5MzFkXHU5MzAyXHU5MzcwXHU5MzU3XHU5M2E0XHU5M2M2XHU5M2RlXHU5M2Y4XHU5NDMxXHU5NDQ1''@;'; + put 'put ''XHU5NDQ4XHU5NTkyXHVmOWRjXHVmYTI5XHU5NjlkXHU5NmFmXHU5NzMzXHU5NzNiXHU5NzQzXHU5NzRkXHU5NzRmXHU5NzUxXHU5NzU1XHU5ODU3XHU5ODY1XHVmYTJhXHVmYTJiXHU5OTI3XHVmYTJjXHU5OTllXHU5YTRlXHU5YWQ5XHU5YWRjXHU5Yjc1XHU5YjcyXHU5YjhmXHU5YmIxXHU5''@;'; + put 'put ''YmJiXHU5YzAwXHU5ZDcwXHU5ZDZiXHVmYTJkXHU5ZTE5XHU5ZWQxXHVmZmZkXHVmZmZkXHUyMTcwXHUyMTcxXHUyMTcyXHUyMTczXHUyMTc0XHUyMTc1XHUyMTc2XHUyMTc3XHUyMTc4XHUyMTc5XHVmZmUyXHVmZmU0XHVmZjA3XHVmZjAyXHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIiks''@;'; + put 'put ''RT0wO0UhPUJbMjM4XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMzhdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIzOF1bRV1dPTYwOTI4K0UsTFs2MDkyOCtFXT1CWzIzOF1bRV0pO2ZvcihCWzI1MF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1MjE3MFx1MjE3MVx1MjE3Mlx1MjE3M1x1MjE3NFx1MjE3NVx1MjE3Nlx1MjE3N1x1MjE3OFx1MjE3OVx1MjE2MFx1MjE2MVx1MjE2Mlx1MjE2M1x1MjE2NFx1MjE2NVx1MjE2Nlx1MjE2N1x1MjE2OFx1MjE2OVx1ZmZlMlx1ZmZlNFx1ZmYwN1x1ZmYwMlx1MzIzMVx1MjExNlx1MjEy''@;'; + put 'put ''MVx1MjIzNVx1N2U4YVx1ODkxY1x1OTM0OFx1OTI4OFx1ODRkY1x1NGZjOVx1NzBiYlx1NjYzMVx1NjhjOFx1OTJmOVx1NjZmYlx1NWY0NVx1NGUyOFx1NGVlMVx1NGVmY1x1NGYwMFx1NGYwM1x1NGYzOVx1NGY1Nlx1NGY5Mlx1NGY4YVx1NGY5YVx1NGY5NFx1NGZjZFx1NTA0MFx1NTAyMlx1''@;'; + put 'put ''NGZmZlx1NTAxZVx1NTA0Nlx1NTA3MFx1NTA0Mlx1NTA5NFx1NTBmNFx1NTBkOFx1NTE0YVx1ZmZmZFx1NTE2NFx1NTE5ZFx1NTFiZVx1NTFlY1x1NTIxNVx1NTI5Y1x1NTJhNlx1NTJjMFx1NTJkYlx1NTMwMFx1NTMwN1x1NTMyNFx1NTM3Mlx1NTM5M1x1NTNiMlx1NTNkZFx1ZmEwZVx1NTQ5''@;'; + put 'put ''Y1x1NTQ4YVx1NTRhOVx1NTRmZlx1NTU4Nlx1NTc1OVx1NTc2NVx1NTdhY1x1NTdjOFx1NTdjN1x1ZmEwZlx1ZmExMFx1NTg5ZVx1NThiMlx1NTkwYlx1NTk1M1x1NTk1Ylx1NTk1ZFx1NTk2M1x1NTlhNFx1NTliYVx1NWI1Nlx1NWJjMFx1NzUyZlx1NWJkOFx1NWJlY1x1NWMxZVx1NWNhNlx1''@;'; + put 'put ''NWNiYVx1NWNmNVx1NWQyN1x1NWQ1M1x1ZmExMVx1NWQ0Mlx1NWQ2ZFx1NWRiOFx1NWRiOVx1NWRkMFx1NWYyMVx1NWYzNFx1NWY2N1x1NWZiN1x1NWZkZVx1NjA1ZFx1NjA4NVx1NjA4YVx1NjBkZVx1NjBkNVx1NjEyMFx1NjBmMlx1NjExMVx1NjEzN1x1NjEzMFx1NjE5OFx1NjIxM1x1NjJh''@;'; + put 'put ''Nlx1NjNmNVx1NjQ2MFx1NjQ5ZFx1NjRjZVx1NjU0ZVx1NjYwMFx1NjYxNVx1NjYzYlx1NjYwOVx1NjYyZVx1NjYxZVx1NjYyNFx1NjY2NVx1NjY1N1x1NjY1OVx1ZmExMlx1NjY3M1x1NjY5OVx1NjZhMFx1NjZiMlx1NjZiZlx1NjZmYVx1NjcwZVx1ZjkyOVx1Njc2Nlx1NjdiYlx1Njg1Mlx1''@;'; + put 'put ''NjdjMFx1NjgwMVx1Njg0NFx1NjhjZlx1ZmExM1x1Njk2OFx1ZmExNFx1Njk5OFx1NjllMlx1NmEzMFx1NmE2Ylx1NmE0Nlx1NmE3M1x1NmE3ZVx1NmFlMlx1NmFlNFx1NmJkNlx1NmMzZlx1NmM1Y1x1NmM4Nlx1NmM2Zlx1NmNkYVx1NmQwNFx1NmQ4N1x1NmQ2Zlx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzI1MF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjUwXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyNTBdW0VdXT02NGUzK0UsTFs2NGUzK0VdPUJbMjUwXVtFXSk7Zm9yKEJbMjUxXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHU2ZDk2XHU2ZGFjXHU2ZGNmXHU2ZGY4XHU2ZGYyXHU2ZGZjXHU2ZTM5XHU2ZTVjXHU2ZTI3XHU2ZTNjXHU2ZWJmXHU2Zjg4XHU2ZmI1XHU2ZmY1XHU3MDA1XHU3MDA3XHU3MDI4XHU3MDg1XHU3MGFiXHU3MTBmXHU3MTA0XHU3MTVjXHU3MTQ2XHU3MTQ3XHVmYTE1''@;'; + put 'put ''XHU3MWMxXHU3MWZlXHU3MmIxXHU3MmJlXHU3MzI0XHVmYTE2XHU3Mzc3XHU3M2JkXHU3M2M5XHU3M2Q2XHU3M2UzXHU3M2QyXHU3NDA3XHU3M2Y1XHU3NDI2XHU3NDJhXHU3NDI5XHU3NDJlXHU3NDYyXHU3NDg5XHU3NDlmXHU3NTAxXHU3NTZmXHU3NjgyXHU3NjljXHU3NjllXHU3NjliXHU3''@;'; + put 'put ''NmE2XHVmYTE3XHU3NzQ2XHU1MmFmXHU3ODIxXHU3ODRlXHU3ODY0XHU3ODdhXHU3OTMwXHVmYTE4XHVmYTE5XHVmZmZkXHVmYTFhXHU3OTk0XHVmYTFiXHU3OTliXHU3YWQxXHU3YWU3XHVmYTFjXHU3YWViXHU3YjllXHVmYTFkXHU3ZDQ4XHU3ZDVjXHU3ZGI3XHU3ZGEwXHU3ZGQ2XHU3ZTUy''@;'; + put 'put ''XHU3ZjQ3XHU3ZmExXHVmYTFlXHU4MzAxXHU4MzYyXHU4MzdmXHU4M2M3XHU4M2Y2XHU4NDQ4XHU4NGI0XHU4NTUzXHU4NTU5XHU4NTZiXHVmYTFmXHU4NWIwXHVmYTIwXHVmYTIxXHU4ODA3XHU4OGY1XHU4YTEyXHU4YTM3XHU4YTc5XHU4YWE3XHU4YWJlXHU4YWRmXHVmYTIyXHU4YWY2XHU4''@;'; + put 'put ''YjUzXHU4YjdmXHU4Y2YwXHU4Y2Y0XHU4ZDEyXHU4ZDc2XHVmYTIzXHU4ZWNmXHVmYTI0XHVmYTI1XHU5MDY3XHU5MGRlXHVmYTI2XHU5MTE1XHU5MTI3XHU5MWRhXHU5MWQ3XHU5MWRlXHU5MWVkXHU5MWVlXHU5MWU0XHU5MWU1XHU5MjA2XHU5MjEwXHU5MjBhXHU5MjNhXHU5MjQwXHU5MjNj''@;'; + put 'put ''XHU5MjRlXHU5MjU5XHU5MjUxXHU5MjM5XHU5MjY3XHU5MmE3XHU5Mjc3XHU5Mjc4XHU5MmU3XHU5MmQ3XHU5MmQ5XHU5MmQwXHVmYTI3XHU5MmQ1XHU5MmUwXHU5MmQzXHU5MzI1XHU5MzIxXHU5MmZiXHVmYTI4XHU5MzFlXHU5MmZmXHU5MzFkXHU5MzAyXHU5MzcwXHU5MzU3XHU5M2E0XHU5''@;'; + put 'put ''M2M2XHU5M2RlXHU5M2Y4XHU5NDMxXHU5NDQ1XHU5NDQ4XHU5NTkyXHVmOWRjXHVmYTI5XHU5NjlkXHU5NmFmXHU5NzMzXHU5NzNiXHU5NzQzXHU5NzRkXHU5NzRmXHU5NzUxXHU5NzU1XHU5ODU3XHU5ODY1XHVmYTJhXHVmYTJiXHU5OTI3XHVmYTJjXHU5OTllXHU5YTRlXHU5YWQ5XHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjUxXS5sZW5ndGg7KytFKTY1NTMzIT09QlsyNTFdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzI1MV1bRV1dPTY0MjU2K0UsTFs2NDI1NitFXT1CWzI1MV1bRV0pO2ZvcihCWzI1Ml09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OWFkY1x1OWI3NVx1OWI3Mlx1OWI4Zlx1OWJiMVx1OWJiYlx1OWMwMFx1OWQ3MFx1OWQ2Ylx1ZmEyZFx1OWUxOVx1OWVkMVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzI1Ml0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjUyXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyNTJdW0VdXT02NDUxMitFLExbNjQ1MTIrRV09QlsyNTJdW0VdKTtyZXR1cm57ZW5jOm1lLGRlYzpMfX0oKSxK''@;'; + put 'put ''ZVs5MzZdPWZ1bmN0aW9uKCl7dmFyIEUsTD1bXSxtZT17fSxCPVtdO2ZvcihCWzBdPSJcMFx4MDFceDAyXHgwM1x4MDRceDA1XHgwNlx4MDdcYlx0XG5cdlxmXHJceDBlXHgwZlx4MTBceDExXHgxMlx4MTNceDE0XHgxNVx4MTZceDE3XHgxOFx4MTlceDFhXHgxYlx4MWNceDFkXHgxZVx4MWYg''@;'; + put 'put ''IVwiIyQlJicoKSorLC0uLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpbXFxdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+XHg3Zlx1MjBhY1x1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzBdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzBdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzBdW0VdXT0wK0UsTFswK0VdPUJbMF1bRV0pO2ZvcihCWzEyOV09Ilx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NGUwMlx1NGUwNFx1NGUwNVx1NGUwNlx1NGUwZlx1NGUxMlx1NGUxN1x1NGUxZlx1NGUyMFx1NGUyMVx1NGUyM1x1NGUyNlx1NGUyOVx1NGUyZVx1NGUyZlx1NGUzMVx1NGUzM1x1NGUzNVx1NGUzN1x1NGUzY1x1''@;'; + put 'put ''NGU0MFx1NGU0MVx1NGU0Mlx1NGU0NFx1NGU0Nlx1NGU0YVx1NGU1MVx1NGU1NVx1NGU1N1x1NGU1YVx1NGU1Ylx1NGU2Mlx1NGU2M1x1NGU2NFx1NGU2NVx1NGU2N1x1NGU2OFx1NGU2YVx1NGU2Ylx1NGU2Y1x1NGU2ZFx1NGU2ZVx1NGU2Zlx1NGU3Mlx1NGU3NFx1NGU3NVx1NGU3Nlx1NGU3''@;'; + put 'put ''N1x1NGU3OFx1NGU3OVx1NGU3YVx1NGU3Ylx1NGU3Y1x1NGU3ZFx1NGU3Zlx1NGU4MFx1NGU4MVx1NGU4Mlx1NGU4M1x1NGU4NFx1NGU4NVx1NGU4N1x1NGU4YVx1ZmZmZFx1NGU5MFx1NGU5Nlx1NGU5N1x1NGU5OVx1NGU5Y1x1NGU5ZFx1NGU5ZVx1NGVhM1x1NGVhYVx1NGVhZlx1NGViMFx1''@;'; + put 'put ''NGViMVx1NGViNFx1NGViNlx1NGViN1x1NGViOFx1NGViOVx1NGViY1x1NGViZFx1NGViZVx1NGVjOFx1NGVjY1x1NGVjZlx1NGVkMFx1NGVkMlx1NGVkYVx1NGVkYlx1NGVkY1x1NGVlMFx1NGVlMlx1NGVlNlx1NGVlN1x1NGVlOVx1NGVlZFx1NGVlZVx1NGVlZlx1NGVmMVx1NGVmNFx1NGVm''@;'; + put 'put ''OFx1NGVmOVx1NGVmYVx1NGVmY1x1NGVmZVx1NGYwMFx1NGYwMlx1NGYwM1x1NGYwNFx1NGYwNVx1NGYwNlx1NGYwN1x1NGYwOFx1NGYwYlx1NGYwY1x1NGYxMlx1NGYxM1x1NGYxNFx1NGYxNVx1NGYxNlx1NGYxY1x1NGYxZFx1NGYyMVx1NGYyM1x1NGYyOFx1NGYyOVx1NGYyY1x1NGYyZFx1''@;'; + put 'put ''NGYyZVx1NGYzMVx1NGYzM1x1NGYzNVx1NGYzN1x1NGYzOVx1NGYzYlx1NGYzZVx1NGYzZlx1NGY0MFx1NGY0MVx1NGY0Mlx1NGY0NFx1NGY0NVx1NGY0N1x1NGY0OFx1NGY0OVx1NGY0YVx1NGY0Ylx1NGY0Y1x1NGY1Mlx1NGY1NFx1NGY1Nlx1NGY2MVx1NGY2Mlx1NGY2Nlx1NGY2OFx1NGY2''@;'; + put 'put ''YVx1NGY2Ylx1NGY2ZFx1NGY2ZVx1NGY3MVx1NGY3Mlx1NGY3NVx1NGY3N1x1NGY3OFx1NGY3OVx1NGY3YVx1NGY3ZFx1NGY4MFx1NGY4MVx1NGY4Mlx1NGY4NVx1NGY4Nlx1NGY4N1x1NGY4YVx1NGY4Y1x1NGY4ZVx1NGY5MFx1NGY5Mlx1NGY5M1x1NGY5NVx1NGY5Nlx1NGY5OFx1NGY5OVx1''@;'; + put 'put ''NGY5YVx1NGY5Y1x1NGY5ZVx1NGY5Zlx1NGZhMVx1NGZhMlx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzEyOV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTI5XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxMjldW0VdXT0zMzAyNCtFLExbMzMwMjQrRV09QlsxMjldW0VdKTtmb3IoQlsxMzBd''@;'; + put 'put ''PSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTRmYTRcdTRmYWJcdTRmYWRcdTRmYjBcdTRmYjFcdTRmYjJcdTRmYjNcdTRmYjRcdTRmYjZcdTRmYjdcdTRmYjhcdTRmYjlcdTRmYmFcdTRmYmJcdTRmYmNcdTRmYmRcdTRmYmVcdTRmYzBc''@;'; + put 'put ''dTRmYzFcdTRmYzJcdTRmYzZcdTRmYzdcdTRmYzhcdTRmYzlcdTRmY2JcdTRmY2NcdTRmY2RcdTRmZDJcdTRmZDNcdTRmZDRcdTRmZDVcdTRmZDZcdTRmZDlcdTRmZGJcdTRmZTBcdTRmZTJcdTRmZTRcdTRmZTVcdTRmZTdcdTRmZWJcdTRmZWNcdTRmZjBcdTRmZjJcdTRmZjRcdTRmZjVcdTRm''@;'; + put 'put ''ZjZcdTRmZjdcdTRmZjlcdTRmZmJcdTRmZmNcdTRmZmRcdTRmZmZcdTUwMDBcdTUwMDFcdTUwMDJcdTUwMDNcdTUwMDRcdTUwMDVcdTUwMDZcdTUwMDdcdTUwMDhcdTUwMDlcdTUwMGFcdWZmZmRcdTUwMGJcdTUwMGVcdTUwMTBcdTUwMTFcdTUwMTNcdTUwMTVcdTUwMTZcdTUwMTdcdTUwMWJc''@;'; + put 'put ''dTUwMWRcdTUwMWVcdTUwMjBcdTUwMjJcdTUwMjNcdTUwMjRcdTUwMjdcdTUwMmJcdTUwMmZcdTUwMzBcdTUwMzFcdTUwMzJcdTUwMzNcdTUwMzRcdTUwMzVcdTUwMzZcdTUwMzdcdTUwMzhcdTUwMzlcdTUwM2JcdTUwM2RcdTUwM2ZcdTUwNDBcdTUwNDFcdTUwNDJcdTUwNDRcdTUwNDVcdTUw''@;'; + put 'put ''NDZcdTUwNDlcdTUwNGFcdTUwNGJcdTUwNGRcdTUwNTBcdTUwNTFcdTUwNTJcdTUwNTNcdTUwNTRcdTUwNTZcdTUwNTdcdTUwNThcdTUwNTlcdTUwNWJcdTUwNWRcdTUwNWVcdTUwNWZcdTUwNjBcdTUwNjFcdTUwNjJcdTUwNjNcdTUwNjRcdTUwNjZcdTUwNjdcdTUwNjhcdTUwNjlcdTUwNmFc''@;'; + put 'put ''dTUwNmJcdTUwNmRcdTUwNmVcdTUwNmZcdTUwNzBcdTUwNzFcdTUwNzJcdTUwNzNcdTUwNzRcdTUwNzVcdTUwNzhcdTUwNzlcdTUwN2FcdTUwN2NcdTUwN2RcdTUwODFcdTUwODJcdTUwODNcdTUwODRcdTUwODZcdTUwODdcdTUwODlcdTUwOGFcdTUwOGJcdTUwOGNcdTUwOGVcdTUwOGZcdTUw''@;'; + put 'put ''OTBcdTUwOTFcdTUwOTJcdTUwOTNcdTUwOTRcdTUwOTVcdTUwOTZcdTUwOTdcdTUwOThcdTUwOTlcdTUwOWFcdTUwOWJcdTUwOWNcdTUwOWRcdTUwOWVcdTUwOWZcdTUwYTBcdTUwYTFcdTUwYTJcdTUwYTRcdTUwYTZcdTUwYWFcdTUwYWJcdTUwYWRcdTUwYWVcdTUwYWZcdTUwYjBcdTUwYjFc''@;'; + put 'put ''dTUwYjNcdTUwYjRcdTUwYjVcdTUwYjZcdTUwYjdcdTUwYjhcdTUwYjlcdTUwYmNcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxMzBdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzEzMF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTMwXVtFXV09MzMyODArRSxMWzMzMjgwK0VdPUJbMTMwXVtF''@;'; + put 'put ''XSk7Zm9yKEJbMTMxXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1MGJkXHU1MGJlXHU1MGJmXHU1MGMwXHU1MGMxXHU1MGMyXHU1MGMzXHU1MGM0XHU1MGM1XHU1MGM2XHU1MGM3XHU1MGM4XHU1MGM5XHU1MGNhXHU1MGNiXHU1MGNj''@;'; + put 'put ''XHU1MGNkXHU1MGNlXHU1MGQwXHU1MGQxXHU1MGQyXHU1MGQzXHU1MGQ0XHU1MGQ1XHU1MGQ3XHU1MGQ4XHU1MGQ5XHU1MGRiXHU1MGRjXHU1MGRkXHU1MGRlXHU1MGRmXHU1MGUwXHU1MGUxXHU1MGUyXHU1MGUzXHU1MGU0XHU1MGU1XHU1MGU4XHU1MGU5XHU1MGVhXHU1MGViXHU1MGVmXHU1''@;'; + put 'put ''MGYwXHU1MGYxXHU1MGYyXHU1MGY0XHU1MGY2XHU1MGY3XHU1MGY4XHU1MGY5XHU1MGZhXHU1MGZjXHU1MGZkXHU1MGZlXHU1MGZmXHU1MTAwXHU1MTAxXHU1MTAyXHU1MTAzXHU1MTA0XHU1MTA1XHU1MTA4XHVmZmZkXHU1MTA5XHU1MTBhXHU1MTBjXHU1MTBkXHU1MTBlXHU1MTBmXHU1MTEw''@;'; + put 'put ''XHU1MTExXHU1MTEzXHU1MTE0XHU1MTE1XHU1MTE2XHU1MTE3XHU1MTE4XHU1MTE5XHU1MTFhXHU1MTFiXHU1MTFjXHU1MTFkXHU1MTFlXHU1MTFmXHU1MTIwXHU1MTIyXHU1MTIzXHU1MTI0XHU1MTI1XHU1MTI2XHU1MTI3XHU1MTI4XHU1MTI5XHU1MTJhXHU1MTJiXHU1MTJjXHU1MTJkXHU1''@;'; + put 'put ''MTJlXHU1MTJmXHU1MTMwXHU1MTMxXHU1MTMyXHU1MTMzXHU1MTM0XHU1MTM1XHU1MTM2XHU1MTM3XHU1MTM4XHU1MTM5XHU1MTNhXHU1MTNiXHU1MTNjXHU1MTNkXHU1MTNlXHU1MTQyXHU1MTQ3XHU1MTRhXHU1MTRjXHU1MTRlXHU1MTRmXHU1MTUwXHU1MTUyXHU1MTUzXHU1MTU3XHU1MTU4''@;'; + put 'put ''XHU1MTU5XHU1MTViXHU1MTVkXHU1MTVlXHU1MTVmXHU1MTYwXHU1MTYxXHU1MTYzXHU1MTY0XHU1MTY2XHU1MTY3XHU1MTY5XHU1MTZhXHU1MTZmXHU1MTcyXHU1MTdhXHU1MTdlXHU1MTdmXHU1MTgzXHU1MTg0XHU1MTg2XHU1MTg3XHU1MThhXHU1MThiXHU1MThlXHU1MThmXHU1MTkwXHU1''@;'; + put 'put ''MTkxXHU1MTkzXHU1MTk0XHU1MTk4XHU1MTlhXHU1MTlkXHU1MTllXHU1MTlmXHU1MWExXHU1MWEzXHU1MWE2XHU1MWE3XHU1MWE4XHU1MWE5XHU1MWFhXHU1MWFkXHU1MWFlXHU1MWI0XHU1MWI4XHU1MWI5XHU1MWJhXHU1MWJlXHU1MWJmXHU1MWMxXHU1MWMyXHU1MWMzXHU1MWM1XHU1MWM4''@;'; + put 'put ''XHU1MWNhXHU1MWNkXHU1MWNlXHU1MWQwXHU1MWQyXHU1MWQzXHU1MWQ0XHU1MWQ1XHU1MWQ2XHU1MWQ3XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTMxXS5sZW5ndGg7KytFKTY1NTMzIT09QlsxMzFdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzEzMV1bRV1dPTMzNTM2K0UsTFszMzUz''@;'; + put 'put ''NitFXT1CWzEzMV1bRV0pO2ZvcihCWzEzMl09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NTFkOFx1NTFkOVx1NTFkYVx1NTFkY1x1NTFkZVx1NTFkZlx1NTFlMlx1NTFlM1x1NTFlNVx1NTFlNlx1NTFlN1x1NTFlOFx1NTFlOVx1NTFl''@;'; + put 'put ''YVx1NTFlY1x1NTFlZVx1NTFmMVx1NTFmMlx1NTFmNFx1NTFmN1x1NTFmZVx1NTIwNFx1NTIwNVx1NTIwOVx1NTIwYlx1NTIwY1x1NTIwZlx1NTIxMFx1NTIxM1x1NTIxNFx1NTIxNVx1NTIxY1x1NTIxZVx1NTIxZlx1NTIyMVx1NTIyMlx1NTIyM1x1NTIyNVx1NTIyNlx1NTIyN1x1NTIyYVx1''@;'; + put 'put ''NTIyY1x1NTIyZlx1NTIzMVx1NTIzMlx1NTIzNFx1NTIzNVx1NTIzY1x1NTIzZVx1NTI0NFx1NTI0NVx1NTI0Nlx1NTI0N1x1NTI0OFx1NTI0OVx1NTI0Ylx1NTI0ZVx1NTI0Zlx1NTI1Mlx1NTI1M1x1NTI1NVx1NTI1N1x1NTI1OFx1ZmZmZFx1NTI1OVx1NTI1YVx1NTI1Ylx1NTI1ZFx1NTI1''@;'; + put 'put ''Zlx1NTI2MFx1NTI2Mlx1NTI2M1x1NTI2NFx1NTI2Nlx1NTI2OFx1NTI2Ylx1NTI2Y1x1NTI2ZFx1NTI2ZVx1NTI3MFx1NTI3MVx1NTI3M1x1NTI3NFx1NTI3NVx1NTI3Nlx1NTI3N1x1NTI3OFx1NTI3OVx1NTI3YVx1NTI3Ylx1NTI3Y1x1NTI3ZVx1NTI4MFx1NTI4M1x1NTI4NFx1NTI4NVx1''@;'; + put 'put ''NTI4Nlx1NTI4N1x1NTI4OVx1NTI4YVx1NTI4Ylx1NTI4Y1x1NTI4ZFx1NTI4ZVx1NTI4Zlx1NTI5MVx1NTI5Mlx1NTI5NFx1NTI5NVx1NTI5Nlx1NTI5N1x1NTI5OFx1NTI5OVx1NTI5YVx1NTI5Y1x1NTJhNFx1NTJhNVx1NTJhNlx1NTJhN1x1NTJhZVx1NTJhZlx1NTJiMFx1NTJiNFx1NTJi''@;'; + put 'put ''NVx1NTJiNlx1NTJiN1x1NTJiOFx1NTJiOVx1NTJiYVx1NTJiYlx1NTJiY1x1NTJiZFx1NTJjMFx1NTJjMVx1NTJjMlx1NTJjNFx1NTJjNVx1NTJjNlx1NTJjOFx1NTJjYVx1NTJjY1x1NTJjZFx1NTJjZVx1NTJjZlx1NTJkMVx1NTJkM1x1NTJkNFx1NTJkNVx1NTJkN1x1NTJkOVx1NTJkYVx1''@;'; + put 'put ''NTJkYlx1NTJkY1x1NTJkZFx1NTJkZVx1NTJlMFx1NTJlMVx1NTJlMlx1NTJlM1x1NTJlNVx1NTJlNlx1NTJlN1x1NTJlOFx1NTJlOVx1NTJlYVx1NTJlYlx1NTJlY1x1NTJlZFx1NTJlZVx1NTJlZlx1NTJmMVx1NTJmMlx1NTJmM1x1NTJmNFx1NTJmNVx1NTJmNlx1NTJmN1x1NTJmOFx1NTJm''@;'; + put 'put ''Ylx1NTJmY1x1NTJmZFx1NTMwMVx1NTMwMlx1NTMwM1x1NTMwNFx1NTMwN1x1NTMwOVx1NTMwYVx1NTMwYlx1NTMwY1x1NTMwZVx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzEzMl0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTMyXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxMzJdW0VdXT0z''@;'; + put 'put ''Mzc5MitFLExbMzM3OTIrRV09QlsxMzJdW0VdKTtmb3IoQlsxMzNdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTUzMTFcdTUzMTJcdTUzMTNcdTUzMTRcdTUzMThcdTUzMWJcdTUzMWNcdTUzMWVcdTUzMWZcdTUzMjJcdTUzMjRcdTUz''@;'; + put 'put ''MjVcdTUzMjdcdTUzMjhcdTUzMjlcdTUzMmJcdTUzMmNcdTUzMmRcdTUzMmZcdTUzMzBcdTUzMzFcdTUzMzJcdTUzMzNcdTUzMzRcdTUzMzVcdTUzMzZcdTUzMzdcdTUzMzhcdTUzM2NcdTUzM2RcdTUzNDBcdTUzNDJcdTUzNDRcdTUzNDZcdTUzNGJcdTUzNGNcdTUzNGRcdTUzNTBcdTUzNTRc''@;'; + put 'put ''dTUzNThcdTUzNTlcdTUzNWJcdTUzNWRcdTUzNjVcdTUzNjhcdTUzNmFcdTUzNmNcdTUzNmRcdTUzNzJcdTUzNzZcdTUzNzlcdTUzN2JcdTUzN2NcdTUzN2RcdTUzN2VcdTUzODBcdTUzODFcdTUzODNcdTUzODdcdTUzODhcdTUzOGFcdTUzOGVcdTUzOGZcdWZmZmRcdTUzOTBcdTUzOTFcdTUz''@;'; + put 'put ''OTJcdTUzOTNcdTUzOTRcdTUzOTZcdTUzOTdcdTUzOTlcdTUzOWJcdTUzOWNcdTUzOWVcdTUzYTBcdTUzYTFcdTUzYTRcdTUzYTdcdTUzYWFcdTUzYWJcdTUzYWNcdTUzYWRcdTUzYWZcdTUzYjBcdTUzYjFcdTUzYjJcdTUzYjNcdTUzYjRcdTUzYjVcdTUzYjdcdTUzYjhcdTUzYjlcdTUzYmFc''@;'; + put 'put ''dTUzYmNcdTUzYmRcdTUzYmVcdTUzYzBcdTUzYzNcdTUzYzRcdTUzYzVcdTUzYzZcdTUzYzdcdTUzY2VcdTUzY2ZcdTUzZDBcdTUzZDJcdTUzZDNcdTUzZDVcdTUzZGFcdTUzZGNcdTUzZGRcdTUzZGVcdTUzZTFcdTUzZTJcdTUzZTdcdTUzZjRcdTUzZmFcdTUzZmVcdTUzZmZcdTU0MDBcdTU0''@;'; + put 'put ''MDJcdTU0MDVcdTU0MDdcdTU0MGJcdTU0MTRcdTU0MThcdTU0MTlcdTU0MWFcdTU0MWNcdTU0MjJcdTU0MjRcdTU0MjVcdTU0MmFcdTU0MzBcdTU0MzNcdTU0MzZcdTU0MzdcdTU0M2FcdTU0M2RcdTU0M2ZcdTU0NDFcdTU0NDJcdTU0NDRcdTU0NDVcdTU0NDdcdTU0NDlcdTU0NGNcdTU0NGRc''@;'; + put 'put ''dTU0NGVcdTU0NGZcdTU0NTFcdTU0NWFcdTU0NWRcdTU0NWVcdTU0NWZcdTU0NjBcdTU0NjFcdTU0NjNcdTU0NjVcdTU0NjdcdTU0NjlcdTU0NmFcdTU0NmJcdTU0NmNcdTU0NmRcdTU0NmVcdTU0NmZcdTU0NzBcdTU0NzRcdTU0NzlcdTU0N2FcdTU0N2VcdTU0N2ZcdTU0ODFcdTU0ODNcdTU0''@;'; + put 'put ''ODVcdTU0ODdcdTU0ODhcdTU0ODlcdTU0OGFcdTU0OGRcdTU0OTFcdTU0OTNcdTU0OTdcdTU0OThcdTU0OWNcdTU0OWVcdTU0OWZcdTU0YTBcdTU0YTFcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxMzNdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzEzM11bRV0uY2hhckNvZGVBdCgwKSYmKG1l''@;'; + put 'put ''W0JbMTMzXVtFXV09MzQwNDgrRSxMWzM0MDQ4K0VdPUJbMTMzXVtFXSk7Zm9yKEJbMTM0XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1NGEyXHU1NGE1XHU1NGFlXHU1NGIwXHU1NGIyXHU1NGI1XHU1NGI2XHU1NGI3XHU1NGI5XHU1''@;'; + put 'put ''NGJhXHU1NGJjXHU1NGJlXHU1NGMzXHU1NGM1XHU1NGNhXHU1NGNiXHU1NGQ2XHU1NGQ4XHU1NGRiXHU1NGUwXHU1NGUxXHU1NGUyXHU1NGUzXHU1NGU0XHU1NGViXHU1NGVjXHU1NGVmXHU1NGYwXHU1NGYxXHU1NGY0XHU1NGY1XHU1NGY2XHU1NGY3XHU1NGY4XHU1NGY5XHU1NGZiXHU1NGZl''@;'; + put 'put ''XHU1NTAwXHU1NTAyXHU1NTAzXHU1NTA0XHU1NTA1XHU1NTA4XHU1NTBhXHU1NTBiXHU1NTBjXHU1NTBkXHU1NTBlXHU1NTEyXHU1NTEzXHU1NTE1XHU1NTE2XHU1NTE3XHU1NTE4XHU1NTE5XHU1NTFhXHU1NTFjXHU1NTFkXHU1NTFlXHU1NTFmXHU1NTIxXHU1NTI1XHU1NTI2XHVmZmZkXHU1''@;'; + put 'put ''NTI4XHU1NTI5XHU1NTJiXHU1NTJkXHU1NTMyXHU1NTM0XHU1NTM1XHU1NTM2XHU1NTM4XHU1NTM5XHU1NTNhXHU1NTNiXHU1NTNkXHU1NTQwXHU1NTQyXHU1NTQ1XHU1NTQ3XHU1NTQ4XHU1NTRiXHU1NTRjXHU1NTRkXHU1NTRlXHU1NTRmXHU1NTUxXHU1NTUyXHU1NTUzXHU1NTU0XHU1NTU3''@;'; + put 'put ''XHU1NTU4XHU1NTU5XHU1NTVhXHU1NTViXHU1NTVkXHU1NTVlXHU1NTVmXHU1NTYwXHU1NTYyXHU1NTYzXHU1NTY4XHU1NTY5XHU1NTZiXHU1NTZmXHU1NTcwXHU1NTcxXHU1NTcyXHU1NTczXHU1NTc0XHU1NTc5XHU1NTdhXHU1NTdkXHU1NTdmXHU1NTg1XHU1NTg2XHU1NThjXHU1NThkXHU1''@;'; + put 'put ''NThlXHU1NTkwXHU1NTkyXHU1NTkzXHU1NTk1XHU1NTk2XHU1NTk3XHU1NTlhXHU1NTliXHU1NTllXHU1NWEwXHU1NWExXHU1NWEyXHU1NWEzXHU1NWE0XHU1NWE1XHU1NWE2XHU1NWE4XHU1NWE5XHU1NWFhXHU1NWFiXHU1NWFjXHU1NWFkXHU1NWFlXHU1NWFmXHU1NWIwXHU1NWIyXHU1NWI0''@;'; + put 'put ''XHU1NWI2XHU1NWI4XHU1NWJhXHU1NWJjXHU1NWJmXHU1NWMwXHU1NWMxXHU1NWMyXHU1NWMzXHU1NWM2XHU1NWM3XHU1NWM4XHU1NWNhXHU1NWNiXHU1NWNlXHU1NWNmXHU1NWQwXHU1NWQ1XHU1NWQ3XHU1NWQ4XHU1NWQ5XHU1NWRhXHU1NWRiXHU1NWRlXHU1NWUwXHU1NWUyXHU1NWU3XHU1''@;'; + put 'put ''NWU5XHU1NWVkXHU1NWVlXHU1NWYwXHU1NWYxXHU1NWY0XHU1NWY2XHU1NWY4XHU1NWY5XHU1NWZhXHU1NWZiXHU1NWZjXHU1NWZmXHU1NjAyXHU1NjAzXHU1NjA0XHU1NjA1XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTM0XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxMzRdW0VdLmNoYXJD''@;'; + put 'put ''b2RlQXQoMCkmJihtZVtCWzEzNF1bRV1dPTM0MzA0K0UsTFszNDMwNCtFXT1CWzEzNF1bRV0pO2ZvcihCWzEzNV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NTYwNlx1NTYwN1x1NTYwYVx1NTYwYlx1NTYwZFx1NTYxMFx1NTYxMVx1''@;'; + put 'put ''NTYxMlx1NTYxM1x1NTYxNFx1NTYxNVx1NTYxNlx1NTYxN1x1NTYxOVx1NTYxYVx1NTYxY1x1NTYxZFx1NTYyMFx1NTYyMVx1NTYyMlx1NTYyNVx1NTYyNlx1NTYyOFx1NTYyOVx1NTYyYVx1NTYyYlx1NTYyZVx1NTYyZlx1NTYzMFx1NTYzM1x1NTYzNVx1NTYzN1x1NTYzOFx1NTYzYVx1NTYz''@;'; + put 'put ''Y1x1NTYzZFx1NTYzZVx1NTY0MFx1NTY0MVx1NTY0Mlx1NTY0M1x1NTY0NFx1NTY0NVx1NTY0Nlx1NTY0N1x1NTY0OFx1NTY0OVx1NTY0YVx1NTY0Ylx1NTY0Zlx1NTY1MFx1NTY1MVx1NTY1Mlx1NTY1M1x1NTY1NVx1NTY1Nlx1NTY1YVx1NTY1Ylx1NTY1ZFx1NTY1ZVx1NTY1Zlx1NTY2MFx1''@;'; + put 'put ''NTY2MVx1ZmZmZFx1NTY2M1x1NTY2NVx1NTY2Nlx1NTY2N1x1NTY2ZFx1NTY2ZVx1NTY2Zlx1NTY3MFx1NTY3Mlx1NTY3M1x1NTY3NFx1NTY3NVx1NTY3N1x1NTY3OFx1NTY3OVx1NTY3YVx1NTY3ZFx1NTY3ZVx1NTY3Zlx1NTY4MFx1NTY4MVx1NTY4Mlx1NTY4M1x1NTY4NFx1NTY4N1x1NTY4''@;'; + put 'put ''OFx1NTY4OVx1NTY4YVx1NTY4Ylx1NTY4Y1x1NTY4ZFx1NTY5MFx1NTY5MVx1NTY5Mlx1NTY5NFx1NTY5NVx1NTY5Nlx1NTY5N1x1NTY5OFx1NTY5OVx1NTY5YVx1NTY5Ylx1NTY5Y1x1NTY5ZFx1NTY5ZVx1NTY5Zlx1NTZhMFx1NTZhMVx1NTZhMlx1NTZhNFx1NTZhNVx1NTZhNlx1NTZhN1x1''@;'; + put 'put ''NTZhOFx1NTZhOVx1NTZhYVx1NTZhYlx1NTZhY1x1NTZhZFx1NTZhZVx1NTZiMFx1NTZiMVx1NTZiMlx1NTZiM1x1NTZiNFx1NTZiNVx1NTZiNlx1NTZiOFx1NTZiOVx1NTZiYVx1NTZiYlx1NTZiZFx1NTZiZVx1NTZiZlx1NTZjMFx1NTZjMVx1NTZjMlx1NTZjM1x1NTZjNFx1NTZjNVx1NTZj''@;'; + put 'put ''Nlx1NTZjN1x1NTZjOFx1NTZjOVx1NTZjYlx1NTZjY1x1NTZjZFx1NTZjZVx1NTZjZlx1NTZkMFx1NTZkMVx1NTZkMlx1NTZkM1x1NTZkNVx1NTZkNlx1NTZkOFx1NTZkOVx1NTZkY1x1NTZlM1x1NTZlNVx1NTZlNlx1NTZlN1x1NTZlOFx1NTZlOVx1NTZlYVx1NTZlY1x1NTZlZVx1NTZlZlx1''@;'; + put 'put ''NTZmMlx1NTZmM1x1NTZmNlx1NTZmN1x1NTZmOFx1NTZmYlx1NTZmY1x1NTcwMFx1NTcwMVx1NTcwMlx1NTcwNVx1NTcwN1x1NTcwYlx1NTcwY1x1NTcwZFx1NTcwZVx1NTcwZlx1NTcxMFx1NTcxMVx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzEzNV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJb''@;'; + put 'put ''MTM1XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxMzVdW0VdXT0zNDU2MCtFLExbMzQ1NjArRV09QlsxMzVdW0VdKTtmb3IoQlsxMzZdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTU3MTJcdTU3MTNcdTU3MTRcdTU3MTVcdTU3MTZc''@;'; + put 'put ''dTU3MTdcdTU3MThcdTU3MTlcdTU3MWFcdTU3MWJcdTU3MWRcdTU3MWVcdTU3MjBcdTU3MjFcdTU3MjJcdTU3MjRcdTU3MjVcdTU3MjZcdTU3MjdcdTU3MmJcdTU3MzFcdTU3MzJcdTU3MzRcdTU3MzVcdTU3MzZcdTU3MzdcdTU3MzhcdTU3M2NcdTU3M2RcdTU3M2ZcdTU3NDFcdTU3NDNcdTU3''@;'; + put 'put ''NDRcdTU3NDVcdTU3NDZcdTU3NDhcdTU3NDlcdTU3NGJcdTU3NTJcdTU3NTNcdTU3NTRcdTU3NTVcdTU3NTZcdTU3NThcdTU3NTlcdTU3NjJcdTU3NjNcdTU3NjVcdTU3NjdcdTU3NmNcdTU3NmVcdTU3NzBcdTU3NzFcdTU3NzJcdTU3NzRcdTU3NzVcdTU3NzhcdTU3NzlcdTU3N2FcdTU3N2Rc''@;'; + put 'put ''dTU3N2VcdTU3N2ZcdTU3ODBcdWZmZmRcdTU3ODFcdTU3ODdcdTU3ODhcdTU3ODlcdTU3OGFcdTU3OGRcdTU3OGVcdTU3OGZcdTU3OTBcdTU3OTFcdTU3OTRcdTU3OTVcdTU3OTZcdTU3OTdcdTU3OThcdTU3OTlcdTU3OWFcdTU3OWNcdTU3OWRcdTU3OWVcdTU3OWZcdTU3YTVcdTU3YThcdTU3''@;'; + put 'put ''YWFcdTU3YWNcdTU3YWZcdTU3YjBcdTU3YjFcdTU3YjNcdTU3YjVcdTU3YjZcdTU3YjdcdTU3YjlcdTU3YmFcdTU3YmJcdTU3YmNcdTU3YmRcdTU3YmVcdTU3YmZcdTU3YzBcdTU3YzFcdTU3YzRcdTU3YzVcdTU3YzZcdTU3YzdcdTU3YzhcdTU3YzlcdTU3Y2FcdTU3Y2NcdTU3Y2RcdTU3ZDBc''@;'; + put 'put ''dTU3ZDFcdTU3ZDNcdTU3ZDZcdTU3ZDdcdTU3ZGJcdTU3ZGNcdTU3ZGVcdTU3ZTFcdTU3ZTJcdTU3ZTNcdTU3ZTVcdTU3ZTZcdTU3ZTdcdTU3ZThcdTU3ZTlcdTU3ZWFcdTU3ZWJcdTU3ZWNcdTU3ZWVcdTU3ZjBcdTU3ZjFcdTU3ZjJcdTU3ZjNcdTU3ZjVcdTU3ZjZcdTU3ZjdcdTU3ZmJcdTU3''@;'; + put 'put ''ZmNcdTU3ZmVcdTU3ZmZcdTU4MDFcdTU4MDNcdTU4MDRcdTU4MDVcdTU4MDhcdTU4MDlcdTU4MGFcdTU4MGNcdTU4MGVcdTU4MGZcdTU4MTBcdTU4MTJcdTU4MTNcdTU4MTRcdTU4MTZcdTU4MTdcdTU4MThcdTU4MWFcdTU4MWJcdTU4MWNcdTU4MWRcdTU4MWZcdTU4MjJcdTU4MjNcdTU4MjVc''@;'; + put 'put ''dTU4MjZcdTU4MjdcdTU4MjhcdTU4MjlcdTU4MmJcdTU4MmNcdTU4MmRcdTU4MmVcdTU4MmZcdTU4MzFcdTU4MzJcdTU4MzNcdTU4MzRcdTU4MzZcdTU4MzdcdTU4MzhcdTU4MzlcdTU4M2FcdTU4M2JcdTU4M2NcdTU4M2RcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxMzZdLmxlbmd0aDsr''@;'; + put 'put ''K0UpNjU1MzMhPT1CWzEzNl1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTM2XVtFXV09MzQ4MTYrRSxMWzM0ODE2K0VdPUJbMTM2XVtFXSk7Zm9yKEJbMTM3XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1ODNlXHU1ODNmXHU1ODQw''@;'; + put 'put ''XHU1ODQxXHU1ODQyXHU1ODQzXHU1ODQ1XHU1ODQ2XHU1ODQ3XHU1ODQ4XHU1ODQ5XHU1ODRhXHU1ODRiXHU1ODRlXHU1ODRmXHU1ODUwXHU1ODUyXHU1ODUzXHU1ODU1XHU1ODU2XHU1ODU3XHU1ODU5XHU1ODVhXHU1ODViXHU1ODVjXHU1ODVkXHU1ODVmXHU1ODYwXHU1ODYxXHU1ODYyXHU1''@;'; + put 'put ''ODYzXHU1ODY0XHU1ODY2XHU1ODY3XHU1ODY4XHU1ODY5XHU1ODZhXHU1ODZkXHU1ODZlXHU1ODZmXHU1ODcwXHU1ODcxXHU1ODcyXHU1ODczXHU1ODc0XHU1ODc1XHU1ODc2XHU1ODc3XHU1ODc4XHU1ODc5XHU1ODdhXHU1ODdiXHU1ODdjXHU1ODdkXHU1ODdmXHU1ODgyXHU1ODg0XHU1ODg2''@;'; + put 'put ''XHU1ODg3XHU1ODg4XHU1ODhhXHU1ODhiXHU1ODhjXHVmZmZkXHU1ODhkXHU1ODhlXHU1ODhmXHU1ODkwXHU1ODkxXHU1ODk0XHU1ODk1XHU1ODk2XHU1ODk3XHU1ODk4XHU1ODliXHU1ODljXHU1ODlkXHU1OGEwXHU1OGExXHU1OGEyXHU1OGEzXHU1OGE0XHU1OGE1XHU1OGE2XHU1OGE3XHU1''@;'; + put 'put ''OGFhXHU1OGFiXHU1OGFjXHU1OGFkXHU1OGFlXHU1OGFmXHU1OGIwXHU1OGIxXHU1OGIyXHU1OGIzXHU1OGI0XHU1OGI1XHU1OGI2XHU1OGI3XHU1OGI4XHU1OGI5XHU1OGJhXHU1OGJiXHU1OGJkXHU1OGJlXHU1OGJmXHU1OGMwXHU1OGMyXHU1OGMzXHU1OGM0XHU1OGM2XHU1OGM3XHU1OGM4''@;'; + put 'put ''XHU1OGM5XHU1OGNhXHU1OGNiXHU1OGNjXHU1OGNkXHU1OGNlXHU1OGNmXHU1OGQwXHU1OGQyXHU1OGQzXHU1OGQ0XHU1OGQ2XHU1OGQ3XHU1OGQ4XHU1OGQ5XHU1OGRhXHU1OGRiXHU1OGRjXHU1OGRkXHU1OGRlXHU1OGRmXHU1OGUwXHU1OGUxXHU1OGUyXHU1OGUzXHU1OGU1XHU1OGU2XHU1''@;'; + put 'put ''OGU3XHU1OGU4XHU1OGU5XHU1OGVhXHU1OGVkXHU1OGVmXHU1OGYxXHU1OGYyXHU1OGY0XHU1OGY1XHU1OGY3XHU1OGY4XHU1OGZhXHU1OGZiXHU1OGZjXHU1OGZkXHU1OGZlXHU1OGZmXHU1OTAwXHU1OTAxXHU1OTAzXHU1OTA1XHU1OTA2XHU1OTA4XHU1OTA5XHU1OTBhXHU1OTBiXHU1OTBj''@;'; + put 'put ''XHU1OTBlXHU1OTEwXHU1OTExXHU1OTEyXHU1OTEzXHU1OTE3XHU1OTE4XHU1OTFiXHU1OTFkXHU1OTFlXHU1OTIwXHU1OTIxXHU1OTIyXHU1OTIzXHU1OTI2XHU1OTI4XHU1OTJjXHU1OTMwXHU1OTMyXHU1OTMzXHU1OTM1XHU1OTM2XHU1OTNiXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJb''@;'; + put 'put ''MTM3XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxMzddW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzEzN11bRV1dPTM1MDcyK0UsTFszNTA3MitFXT1CWzEzN11bRV0pO2ZvcihCWzEzOF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NTkz''@;'; + put 'put ''ZFx1NTkzZVx1NTkzZlx1NTk0MFx1NTk0M1x1NTk0NVx1NTk0Nlx1NTk0YVx1NTk0Y1x1NTk0ZFx1NTk1MFx1NTk1Mlx1NTk1M1x1NTk1OVx1NTk1Ylx1NTk1Y1x1NTk1ZFx1NTk1ZVx1NTk1Zlx1NTk2MVx1NTk2M1x1NTk2NFx1NTk2Nlx1NTk2N1x1NTk2OFx1NTk2OVx1NTk2YVx1NTk2Ylx1''@;'; + put 'put ''NTk2Y1x1NTk2ZFx1NTk2ZVx1NTk2Zlx1NTk3MFx1NTk3MVx1NTk3Mlx1NTk3NVx1NTk3N1x1NTk3YVx1NTk3Ylx1NTk3Y1x1NTk3ZVx1NTk3Zlx1NTk4MFx1NTk4NVx1NTk4OVx1NTk4Ylx1NTk4Y1x1NTk4ZVx1NTk4Zlx1NTk5MFx1NTk5MVx1NTk5NFx1NTk5NVx1NTk5OFx1NTk5YVx1NTk5''@;'; + put 'put ''Ylx1NTk5Y1x1NTk5ZFx1NTk5Zlx1NTlhMFx1NTlhMVx1NTlhMlx1NTlhNlx1ZmZmZFx1NTlhN1x1NTlhY1x1NTlhZFx1NTliMFx1NTliMVx1NTliM1x1NTliNFx1NTliNVx1NTliNlx1NTliN1x1NTliOFx1NTliYVx1NTliY1x1NTliZFx1NTliZlx1NTljMFx1NTljMVx1NTljMlx1NTljM1x1''@;'; + put 'put ''NTljNFx1NTljNVx1NTljN1x1NTljOFx1NTljOVx1NTljY1x1NTljZFx1NTljZVx1NTljZlx1NTlkNVx1NTlkNlx1NTlkOVx1NTlkYlx1NTlkZVx1NTlkZlx1NTllMFx1NTllMVx1NTllMlx1NTllNFx1NTllNlx1NTllN1x1NTllOVx1NTllYVx1NTllYlx1NTllZFx1NTllZVx1NTllZlx1NTlm''@;'; + put 'put ''MFx1NTlmMVx1NTlmMlx1NTlmM1x1NTlmNFx1NTlmNVx1NTlmNlx1NTlmN1x1NTlmOFx1NTlmYVx1NTlmY1x1NTlmZFx1NTlmZVx1NWEwMFx1NWEwMlx1NWEwYVx1NWEwYlx1NWEwZFx1NWEwZVx1NWEwZlx1NWExMFx1NWExMlx1NWExNFx1NWExNVx1NWExNlx1NWExN1x1NWExOVx1NWExYVx1''@;'; + put 'put ''NWExYlx1NWExZFx1NWExZVx1NWEyMVx1NWEyMlx1NWEyNFx1NWEyNlx1NWEyN1x1NWEyOFx1NWEyYVx1NWEyYlx1NWEyY1x1NWEyZFx1NWEyZVx1NWEyZlx1NWEzMFx1NWEzM1x1NWEzNVx1NWEzN1x1NWEzOFx1NWEzOVx1NWEzYVx1NWEzYlx1NWEzZFx1NWEzZVx1NWEzZlx1NWE0MVx1NWE0''@;'; + put 'put ''Mlx1NWE0M1x1NWE0NFx1NWE0NVx1NWE0N1x1NWE0OFx1NWE0Ylx1NWE0Y1x1NWE0ZFx1NWE0ZVx1NWE0Zlx1NWE1MFx1NWE1MVx1NWE1Mlx1NWE1M1x1NWE1NFx1NWE1Nlx1NWE1N1x1NWE1OFx1NWE1OVx1NWE1Ylx1NWE1Y1x1NWE1ZFx1NWE1ZVx1NWE1Zlx1NWE2MFx1ZmZmZCIuc3BsaXQo''@;'; + put 'put ''IiIpLEU9MDtFIT1CWzEzOF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTM4XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxMzhdW0VdXT0zNTMyOCtFLExbMzUzMjgrRV09QlsxMzhdW0VdKTtmb3IoQlsxMzldPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdTVhNjFcdTVhNjNcdTVhNjRcdTVhNjVcdTVhNjZcdTVhNjhcdTVhNjlcdTVhNmJcdTVhNmNcdTVhNmRcdTVhNmVcdTVhNmZcdTVhNzBcdTVhNzFcdTVhNzJcdTVhNzNcdTVhNzhcdTVhNzlcdTVhN2JcdTVhN2NcdTVhN2RcdTVhN2VcdTVhODBcdTVhODFcdTVhODJcdTVhODNc''@;'; + put 'put ''dTVhODRcdTVhODVcdTVhODZcdTVhODdcdTVhODhcdTVhODlcdTVhOGFcdTVhOGJcdTVhOGNcdTVhOGRcdTVhOGVcdTVhOGZcdTVhOTBcdTVhOTFcdTVhOTNcdTVhOTRcdTVhOTVcdTVhOTZcdTVhOTdcdTVhOThcdTVhOTlcdTVhOWNcdTVhOWRcdTVhOWVcdTVhOWZcdTVhYTBcdTVhYTFcdTVh''@;'; + put 'put ''YTJcdTVhYTNcdTVhYTRcdTVhYTVcdTVhYTZcdTVhYTdcdTVhYThcdTVhYTlcdTVhYWJcdTVhYWNcdWZmZmRcdTVhYWRcdTVhYWVcdTVhYWZcdTVhYjBcdTVhYjFcdTVhYjRcdTVhYjZcdTVhYjdcdTVhYjlcdTVhYmFcdTVhYmJcdTVhYmNcdTVhYmRcdTVhYmZcdTVhYzBcdTVhYzNcdTVhYzRc''@;'; + put 'put ''dTVhYzVcdTVhYzZcdTVhYzdcdTVhYzhcdTVhY2FcdTVhY2JcdTVhY2RcdTVhY2VcdTVhY2ZcdTVhZDBcdTVhZDFcdTVhZDNcdTVhZDVcdTVhZDdcdTVhZDlcdTVhZGFcdTVhZGJcdTVhZGRcdTVhZGVcdTVhZGZcdTVhZTJcdTVhZTRcdTVhZTVcdTVhZTdcdTVhZThcdTVhZWFcdTVhZWNcdTVh''@;'; + put 'put ''ZWRcdTVhZWVcdTVhZWZcdTVhZjBcdTVhZjJcdTVhZjNcdTVhZjRcdTVhZjVcdTVhZjZcdTVhZjdcdTVhZjhcdTVhZjlcdTVhZmFcdTVhZmJcdTVhZmNcdTVhZmRcdTVhZmVcdTVhZmZcdTViMDBcdTViMDFcdTViMDJcdTViMDNcdTViMDRcdTViMDVcdTViMDZcdTViMDdcdTViMDhcdTViMGFc''@;'; + put 'put ''dTViMGJcdTViMGNcdTViMGRcdTViMGVcdTViMGZcdTViMTBcdTViMTFcdTViMTJcdTViMTNcdTViMTRcdTViMTVcdTViMThcdTViMTlcdTViMWFcdTViMWJcdTViMWNcdTViMWRcdTViMWVcdTViMWZcdTViMjBcdTViMjFcdTViMjJcdTViMjNcdTViMjRcdTViMjVcdTViMjZcdTViMjdcdTVi''@;'; + put 'put ''MjhcdTViMjlcdTViMmFcdTViMmJcdTViMmNcdTViMmRcdTViMmVcdTViMmZcdTViMzBcdTViMzFcdTViMzNcdTViMzVcdTViMzZcdTViMzhcdTViMzlcdTViM2FcdTViM2JcdTViM2NcdTViM2RcdTViM2VcdTViM2ZcdTViNDFcdTViNDJcdTViNDNcdTViNDRcdTViNDVcdTViNDZcdTViNDdc''@;'; + put 'put ''dWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxMzldLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzEzOV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTM5XVtFXV09MzU1ODQrRSxMWzM1NTg0K0VdPUJbMTM5XVtFXSk7Zm9yKEJbMTQwXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1YjQ4XHU1YjQ5XHU1YjRhXHU1YjRiXHU1YjRjXHU1YjRkXHU1YjRlXHU1YjRmXHU1YjUyXHU1YjU2XHU1YjVlXHU1YjYwXHU1YjYxXHU1YjY3XHU1YjY4XHU1YjZiXHU1YjZkXHU1YjZlXHU1YjZmXHU1YjcyXHU1Yjc0XHU1Yjc2XHU1Yjc3XHU1Yjc4''@;'; + put 'put ''XHU1Yjc5XHU1YjdiXHU1YjdjXHU1YjdlXHU1YjdmXHU1YjgyXHU1Yjg2XHU1YjhhXHU1YjhkXHU1YjhlXHU1YjkwXHU1YjkxXHU1YjkyXHU1Yjk0XHU1Yjk2XHU1YjlmXHU1YmE3XHU1YmE4XHU1YmE5XHU1YmFjXHU1YmFkXHU1YmFlXHU1YmFmXHU1YmIxXHU1YmIyXHU1YmI3XHU1YmJhXHU1''@;'; + put 'put ''YmJiXHU1YmJjXHU1YmMwXHU1YmMxXHU1YmMzXHU1YmM4XHU1YmM5XHU1YmNhXHU1YmNiXHU1YmNkXHU1YmNlXHU1YmNmXHVmZmZkXHU1YmQxXHU1YmQ0XHU1YmQ1XHU1YmQ2XHU1YmQ3XHU1YmQ4XHU1YmQ5XHU1YmRhXHU1YmRiXHU1YmRjXHU1YmUwXHU1YmUyXHU1YmUzXHU1YmU2XHU1YmU3''@;'; + put 'put ''XHU1YmU5XHU1YmVhXHU1YmViXHU1YmVjXHU1YmVkXHU1YmVmXHU1YmYxXHU1YmYyXHU1YmYzXHU1YmY0XHU1YmY1XHU1YmY2XHU1YmY3XHU1YmZkXHU1YmZlXHU1YzAwXHU1YzAyXHU1YzAzXHU1YzA1XHU1YzA3XHU1YzA4XHU1YzBiXHU1YzBjXHU1YzBkXHU1YzBlXHU1YzEwXHU1YzEyXHU1''@;'; + put 'put ''YzEzXHU1YzE3XHU1YzE5XHU1YzFiXHU1YzFlXHU1YzFmXHU1YzIwXHU1YzIxXHU1YzIzXHU1YzI2XHU1YzI4XHU1YzI5XHU1YzJhXHU1YzJiXHU1YzJkXHU1YzJlXHU1YzJmXHU1YzMwXHU1YzMyXHU1YzMzXHU1YzM1XHU1YzM2XHU1YzM3XHU1YzQzXHU1YzQ0XHU1YzQ2XHU1YzQ3XHU1YzRj''@;'; + put 'put ''XHU1YzRkXHU1YzUyXHU1YzUzXHU1YzU0XHU1YzU2XHU1YzU3XHU1YzU4XHU1YzVhXHU1YzViXHU1YzVjXHU1YzVkXHU1YzVmXHU1YzYyXHU1YzY0XHU1YzY3XHU1YzY4XHU1YzY5XHU1YzZhXHU1YzZiXHU1YzZjXHU1YzZkXHU1YzcwXHU1YzcyXHU1YzczXHU1Yzc0XHU1Yzc1XHU1Yzc2XHU1''@;'; + put 'put ''Yzc3XHU1Yzc4XHU1YzdiXHU1YzdjXHU1YzdkXHU1YzdlXHU1YzgwXHU1YzgzXHU1Yzg0XHU1Yzg1XHU1Yzg2XHU1Yzg3XHU1Yzg5XHU1YzhhXHU1YzhiXHU1YzhlXHU1YzhmXHU1YzkyXHU1YzkzXHU1Yzk1XHU1YzlkXHU1YzllXHU1YzlmXHU1Y2EwXHU1Y2ExXHU1Y2E0XHU1Y2E1XHU1Y2E2''@;'; + put 'put ''XHU1Y2E3XHU1Y2E4XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTQwXS5sZW5ndGg7KytFKTY1NTMzIT09QlsxNDBdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE0MF1bRV1dPTM1ODQwK0UsTFszNTg0MCtFXT1CWzE0MF1bRV0pO2ZvcihCWzE0MV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NWNhYVx1NWNhZVx1NWNhZlx1NWNiMFx1NWNiMlx1NWNiNFx1NWNiNlx1NWNiOVx1NWNiYVx1NWNiYlx1NWNiY1x1NWNiZVx1NWNjMFx1NWNjMlx1NWNjM1x1NWNjNVx1NWNjNlx1NWNjN1x1NWNjOFx1NWNjOVx1NWNjYVx1NWNj''@;'; + put 'put ''Y1x1NWNjZFx1NWNjZVx1NWNjZlx1NWNkMFx1NWNkMVx1NWNkM1x1NWNkNFx1NWNkNVx1NWNkNlx1NWNkN1x1NWNkOFx1NWNkYVx1NWNkYlx1NWNkY1x1NWNkZFx1NWNkZVx1NWNkZlx1NWNlMFx1NWNlMlx1NWNlM1x1NWNlN1x1NWNlOVx1NWNlYlx1NWNlY1x1NWNlZVx1NWNlZlx1NWNmMVx1''@;'; + put 'put ''NWNmMlx1NWNmM1x1NWNmNFx1NWNmNVx1NWNmNlx1NWNmN1x1NWNmOFx1NWNmOVx1NWNmYVx1NWNmY1x1NWNmZFx1NWNmZVx1NWNmZlx1NWQwMFx1ZmZmZFx1NWQwMVx1NWQwNFx1NWQwNVx1NWQwOFx1NWQwOVx1NWQwYVx1NWQwYlx1NWQwY1x1NWQwZFx1NWQwZlx1NWQxMFx1NWQxMVx1NWQx''@;'; + put 'put ''Mlx1NWQxM1x1NWQxNVx1NWQxN1x1NWQxOFx1NWQxOVx1NWQxYVx1NWQxY1x1NWQxZFx1NWQxZlx1NWQyMFx1NWQyMVx1NWQyMlx1NWQyM1x1NWQyNVx1NWQyOFx1NWQyYVx1NWQyYlx1NWQyY1x1NWQyZlx1NWQzMFx1NWQzMVx1NWQzMlx1NWQzM1x1NWQzNVx1NWQzNlx1NWQzN1x1NWQzOFx1''@;'; + put 'put ''NWQzOVx1NWQzYVx1NWQzYlx1NWQzY1x1NWQzZlx1NWQ0MFx1NWQ0MVx1NWQ0Mlx1NWQ0M1x1NWQ0NFx1NWQ0NVx1NWQ0Nlx1NWQ0OFx1NWQ0OVx1NWQ0ZFx1NWQ0ZVx1NWQ0Zlx1NWQ1MFx1NWQ1MVx1NWQ1Mlx1NWQ1M1x1NWQ1NFx1NWQ1NVx1NWQ1Nlx1NWQ1N1x1NWQ1OVx1NWQ1YVx1NWQ1''@;'; + put 'put ''Y1x1NWQ1ZVx1NWQ1Zlx1NWQ2MFx1NWQ2MVx1NWQ2Mlx1NWQ2M1x1NWQ2NFx1NWQ2NVx1NWQ2Nlx1NWQ2N1x1NWQ2OFx1NWQ2YVx1NWQ2ZFx1NWQ2ZVx1NWQ3MFx1NWQ3MVx1NWQ3Mlx1NWQ3M1x1NWQ3NVx1NWQ3Nlx1NWQ3N1x1NWQ3OFx1NWQ3OVx1NWQ3YVx1NWQ3Ylx1NWQ3Y1x1NWQ3ZFx1''@;'; + put 'put ''NWQ3ZVx1NWQ3Zlx1NWQ4MFx1NWQ4MVx1NWQ4M1x1NWQ4NFx1NWQ4NVx1NWQ4Nlx1NWQ4N1x1NWQ4OFx1NWQ4OVx1NWQ4YVx1NWQ4Ylx1NWQ4Y1x1NWQ4ZFx1NWQ4ZVx1NWQ4Zlx1NWQ5MFx1NWQ5MVx1NWQ5Mlx1NWQ5M1x1NWQ5NFx1NWQ5NVx1NWQ5Nlx1NWQ5N1x1NWQ5OFx1NWQ5YVx1NWQ5''@;'; + put 'put ''Ylx1NWQ5Y1x1NWQ5ZVx1NWQ5Zlx1NWRhMFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE0MV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTQxXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxNDFdW0VdXT0zNjA5NitFLExbMzYwOTYrRV09QlsxNDFdW0VdKTtmb3IoQlsxNDJdPSJcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTVkYTFcdTVkYTJcdTVkYTNcdTVkYTRcdTVkYTVcdTVkYTZcdTVkYTdcdTVkYThcdTVkYTlcdTVkYWFcdTVkYWJcdTVkYWNcdTVkYWRcdTVkYWVcdTVkYWZcdTVkYjBcdTVkYjFcdTVkYjJcdTVkYjNcdTVk''@;'; + put 'put ''YjRcdTVkYjVcdTVkYjZcdTVkYjhcdTVkYjlcdTVkYmFcdTVkYmJcdTVkYmNcdTVkYmRcdTVkYmVcdTVkYmZcdTVkYzBcdTVkYzFcdTVkYzJcdTVkYzNcdTVkYzRcdTVkYzZcdTVkYzdcdTVkYzhcdTVkYzlcdTVkY2FcdTVkY2JcdTVkY2NcdTVkY2VcdTVkY2ZcdTVkZDBcdTVkZDFcdTVkZDJc''@;'; + put 'put ''dTVkZDNcdTVkZDRcdTVkZDVcdTVkZDZcdTVkZDdcdTVkZDhcdTVkZDlcdTVkZGFcdTVkZGNcdTVkZGZcdTVkZTBcdTVkZTNcdTVkZTRcdTVkZWFcdTVkZWNcdTVkZWRcdWZmZmRcdTVkZjBcdTVkZjVcdTVkZjZcdTVkZjhcdTVkZjlcdTVkZmFcdTVkZmJcdTVkZmNcdTVkZmZcdTVlMDBcdTVl''@;'; + put 'put ''MDRcdTVlMDdcdTVlMDlcdTVlMGFcdTVlMGJcdTVlMGRcdTVlMGVcdTVlMTJcdTVlMTNcdTVlMTdcdTVlMWVcdTVlMWZcdTVlMjBcdTVlMjFcdTVlMjJcdTVlMjNcdTVlMjRcdTVlMjVcdTVlMjhcdTVlMjlcdTVlMmFcdTVlMmJcdTVlMmNcdTVlMmZcdTVlMzBcdTVlMzJcdTVlMzNcdTVlMzRc''@;'; + put 'put ''dTVlMzVcdTVlMzZcdTVlMzlcdTVlM2FcdTVlM2VcdTVlM2ZcdTVlNDBcdTVlNDFcdTVlNDNcdTVlNDZcdTVlNDdcdTVlNDhcdTVlNDlcdTVlNGFcdTVlNGJcdTVlNGRcdTVlNGVcdTVlNGZcdTVlNTBcdTVlNTFcdTVlNTJcdTVlNTNcdTVlNTZcdTVlNTdcdTVlNThcdTVlNTlcdTVlNWFcdTVl''@;'; + put 'put ''NWNcdTVlNWRcdTVlNWZcdTVlNjBcdTVlNjNcdTVlNjRcdTVlNjVcdTVlNjZcdTVlNjdcdTVlNjhcdTVlNjlcdTVlNmFcdTVlNmJcdTVlNmNcdTVlNmRcdTVlNmVcdTVlNmZcdTVlNzBcdTVlNzFcdTVlNzVcdTVlNzdcdTVlNzlcdTVlN2VcdTVlODFcdTVlODJcdTVlODNcdTVlODVcdTVlODhc''@;'; + put 'put ''dTVlODlcdTVlOGNcdTVlOGRcdTVlOGVcdTVlOTJcdTVlOThcdTVlOWJcdTVlOWRcdTVlYTFcdTVlYTJcdTVlYTNcdTVlYTRcdTVlYThcdTVlYTlcdTVlYWFcdTVlYWJcdTVlYWNcdTVlYWVcdTVlYWZcdTVlYjBcdTVlYjFcdTVlYjJcdTVlYjRcdTVlYmFcdTVlYmJcdTVlYmNcdTVlYmRcdTVl''@;'; + put 'put ''YmZcdTVlYzBcdTVlYzFcdTVlYzJcdTVlYzNcdTVlYzRcdTVlYzVcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxNDJdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE0Ml1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTQyXVtFXV09MzYzNTIrRSxMWzM2MzUyK0VdPUJbMTQyXVtFXSk7Zm9yKEJb''@;'; + put 'put ''MTQzXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1ZWM2XHU1ZWM3XHU1ZWM4XHU1ZWNiXHU1ZWNjXHU1ZWNkXHU1ZWNlXHU1ZWNmXHU1ZWQwXHU1ZWQ0XHU1ZWQ1XHU1ZWQ3XHU1ZWQ4XHU1ZWQ5XHU1ZWRhXHU1ZWRjXHU1ZWRkXHU1''@;'; + put 'put ''ZWRlXHU1ZWRmXHU1ZWUwXHU1ZWUxXHU1ZWUyXHU1ZWUzXHU1ZWU0XHU1ZWU1XHU1ZWU2XHU1ZWU3XHU1ZWU5XHU1ZWViXHU1ZWVjXHU1ZWVkXHU1ZWVlXHU1ZWVmXHU1ZWYwXHU1ZWYxXHU1ZWYyXHU1ZWYzXHU1ZWY1XHU1ZWY4XHU1ZWY5XHU1ZWZiXHU1ZWZjXHU1ZWZkXHU1ZjA1XHU1ZjA2''@;'; + put 'put ''XHU1ZjA3XHU1ZjA5XHU1ZjBjXHU1ZjBkXHU1ZjBlXHU1ZjEwXHU1ZjEyXHU1ZjE0XHU1ZjE2XHU1ZjE5XHU1ZjFhXHU1ZjFjXHU1ZjFkXHU1ZjFlXHU1ZjIxXHU1ZjIyXHU1ZjIzXHU1ZjI0XHVmZmZkXHU1ZjI4XHU1ZjJiXHU1ZjJjXHU1ZjJlXHU1ZjMwXHU1ZjMyXHU1ZjMzXHU1ZjM0XHU1''@;'; + put 'put ''ZjM1XHU1ZjM2XHU1ZjM3XHU1ZjM4XHU1ZjNiXHU1ZjNkXHU1ZjNlXHU1ZjNmXHU1ZjQxXHU1ZjQyXHU1ZjQzXHU1ZjQ0XHU1ZjQ1XHU1ZjQ2XHU1ZjQ3XHU1ZjQ4XHU1ZjQ5XHU1ZjRhXHU1ZjRiXHU1ZjRjXHU1ZjRkXHU1ZjRlXHU1ZjRmXHU1ZjUxXHU1ZjU0XHU1ZjU5XHU1ZjVhXHU1ZjVi''@;'; + put 'put ''XHU1ZjVjXHU1ZjVlXHU1ZjVmXHU1ZjYwXHU1ZjYzXHU1ZjY1XHU1ZjY3XHU1ZjY4XHU1ZjZiXHU1ZjZlXHU1ZjZmXHU1ZjcyXHU1Zjc0XHU1Zjc1XHU1Zjc2XHU1Zjc4XHU1ZjdhXHU1ZjdkXHU1ZjdlXHU1ZjdmXHU1ZjgzXHU1Zjg2XHU1ZjhkXHU1ZjhlXHU1ZjhmXHU1ZjkxXHU1ZjkzXHU1''@;'; + put 'put ''Zjk0XHU1Zjk2XHU1ZjlhXHU1ZjliXHU1ZjlkXHU1ZjllXHU1ZjlmXHU1ZmEwXHU1ZmEyXHU1ZmEzXHU1ZmE0XHU1ZmE1XHU1ZmE2XHU1ZmE3XHU1ZmE5XHU1ZmFiXHU1ZmFjXHU1ZmFmXHU1ZmIwXHU1ZmIxXHU1ZmIyXHU1ZmIzXHU1ZmI0XHU1ZmI2XHU1ZmI4XHU1ZmI5XHU1ZmJhXHU1ZmJi''@;'; + put 'put ''XHU1ZmJlXHU1ZmJmXHU1ZmMwXHU1ZmMxXHU1ZmMyXHU1ZmM3XHU1ZmM4XHU1ZmNhXHU1ZmNiXHU1ZmNlXHU1ZmQzXHU1ZmQ0XHU1ZmQ1XHU1ZmRhXHU1ZmRiXHU1ZmRjXHU1ZmRlXHU1ZmRmXHU1ZmUyXHU1ZmUzXHU1ZmU1XHU1ZmU2XHU1ZmU4XHU1ZmU5XHU1ZmVjXHU1ZmVmXHU1ZmYwXHU1''@;'; + put 'put ''ZmYyXHU1ZmYzXHU1ZmY0XHU1ZmY2XHU1ZmY3XHU1ZmY5XHU1ZmZhXHU1ZmZjXHU2MDA3XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTQzXS5sZW5ndGg7KytFKTY1NTMzIT09QlsxNDNdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE0M11bRV1dPTM2NjA4K0UsTFszNjYwOCtFXT1CWzE0''@;'; + put 'put ''M11bRV0pO2ZvcihCWzE0NF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NjAwOFx1NjAwOVx1NjAwYlx1NjAwY1x1NjAxMFx1NjAxMVx1NjAxM1x1NjAxN1x1NjAxOFx1NjAxYVx1NjAxZVx1NjAxZlx1NjAyMlx1NjAyM1x1NjAyNFx1''@;'; + put 'put ''NjAyY1x1NjAyZFx1NjAyZVx1NjAzMFx1NjAzMVx1NjAzMlx1NjAzM1x1NjAzNFx1NjAzNlx1NjAzN1x1NjAzOFx1NjAzOVx1NjAzYVx1NjAzZFx1NjAzZVx1NjA0MFx1NjA0NFx1NjA0NVx1NjA0Nlx1NjA0N1x1NjA0OFx1NjA0OVx1NjA0YVx1NjA0Y1x1NjA0ZVx1NjA0Zlx1NjA1MVx1NjA1''@;'; + put 'put ''M1x1NjA1NFx1NjA1Nlx1NjA1N1x1NjA1OFx1NjA1Ylx1NjA1Y1x1NjA1ZVx1NjA1Zlx1NjA2MFx1NjA2MVx1NjA2NVx1NjA2Nlx1NjA2ZVx1NjA3MVx1NjA3Mlx1NjA3NFx1NjA3NVx1NjA3N1x1NjA3ZVx1NjA4MFx1ZmZmZFx1NjA4MVx1NjA4Mlx1NjA4NVx1NjA4Nlx1NjA4N1x1NjA4OFx1''@;'; + put 'put ''NjA4YVx1NjA4Ylx1NjA4ZVx1NjA4Zlx1NjA5MFx1NjA5MVx1NjA5M1x1NjA5NVx1NjA5N1x1NjA5OFx1NjA5OVx1NjA5Y1x1NjA5ZVx1NjBhMVx1NjBhMlx1NjBhNFx1NjBhNVx1NjBhN1x1NjBhOVx1NjBhYVx1NjBhZVx1NjBiMFx1NjBiM1x1NjBiNVx1NjBiNlx1NjBiN1x1NjBiOVx1NjBi''@;'; + put 'put ''YVx1NjBiZFx1NjBiZVx1NjBiZlx1NjBjMFx1NjBjMVx1NjBjMlx1NjBjM1x1NjBjNFx1NjBjN1x1NjBjOFx1NjBjOVx1NjBjY1x1NjBjZFx1NjBjZVx1NjBjZlx1NjBkMFx1NjBkMlx1NjBkM1x1NjBkNFx1NjBkNlx1NjBkN1x1NjBkOVx1NjBkYlx1NjBkZVx1NjBlMVx1NjBlMlx1NjBlM1x1''@;'; + put 'put ''NjBlNFx1NjBlNVx1NjBlYVx1NjBmMVx1NjBmMlx1NjBmNVx1NjBmN1x1NjBmOFx1NjBmYlx1NjBmY1x1NjBmZFx1NjBmZVx1NjBmZlx1NjEwMlx1NjEwM1x1NjEwNFx1NjEwNVx1NjEwN1x1NjEwYVx1NjEwYlx1NjEwY1x1NjExMFx1NjExMVx1NjExMlx1NjExM1x1NjExNFx1NjExNlx1NjEx''@;'; + put 'put ''N1x1NjExOFx1NjExOVx1NjExYlx1NjExY1x1NjExZFx1NjExZVx1NjEyMVx1NjEyMlx1NjEyNVx1NjEyOFx1NjEyOVx1NjEyYVx1NjEyY1x1NjEyZFx1NjEyZVx1NjEyZlx1NjEzMFx1NjEzMVx1NjEzMlx1NjEzM1x1NjEzNFx1NjEzNVx1NjEzNlx1NjEzN1x1NjEzOFx1NjEzOVx1NjEzYVx1''@;'; + put 'put ''NjEzYlx1NjEzY1x1NjEzZFx1NjEzZVx1NjE0MFx1NjE0MVx1NjE0Mlx1NjE0M1x1NjE0NFx1NjE0NVx1NjE0Nlx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE0NF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTQ0XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxNDRdW0VdXT0zNjg2NCtFLExb''@;'; + put 'put ''MzY4NjQrRV09QlsxNDRdW0VdKTtmb3IoQlsxNDVdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTYxNDdcdTYxNDlcdTYxNGJcdTYxNGRcdTYxNGZcdTYxNTBcdTYxNTJcdTYxNTNcdTYxNTRcdTYxNTZcdTYxNTdcdTYxNThcdTYxNTlc''@;'; + put 'put ''dTYxNWFcdTYxNWJcdTYxNWNcdTYxNWVcdTYxNWZcdTYxNjBcdTYxNjFcdTYxNjNcdTYxNjRcdTYxNjVcdTYxNjZcdTYxNjlcdTYxNmFcdTYxNmJcdTYxNmNcdTYxNmRcdTYxNmVcdTYxNmZcdTYxNzFcdTYxNzJcdTYxNzNcdTYxNzRcdTYxNzZcdTYxNzhcdTYxNzlcdTYxN2FcdTYxN2JcdTYx''@;'; + put 'put ''N2NcdTYxN2RcdTYxN2VcdTYxN2ZcdTYxODBcdTYxODFcdTYxODJcdTYxODNcdTYxODRcdTYxODVcdTYxODZcdTYxODdcdTYxODhcdTYxODlcdTYxOGFcdTYxOGNcdTYxOGRcdTYxOGZcdTYxOTBcdTYxOTFcdTYxOTJcdTYxOTNcdTYxOTVcdWZmZmRcdTYxOTZcdTYxOTdcdTYxOThcdTYxOTlc''@;'; + put 'put ''dTYxOWFcdTYxOWJcdTYxOWNcdTYxOWVcdTYxOWZcdTYxYTBcdTYxYTFcdTYxYTJcdTYxYTNcdTYxYTRcdTYxYTVcdTYxYTZcdTYxYWFcdTYxYWJcdTYxYWRcdTYxYWVcdTYxYWZcdTYxYjBcdTYxYjFcdTYxYjJcdTYxYjNcdTYxYjRcdTYxYjVcdTYxYjZcdTYxYjhcdTYxYjlcdTYxYmFcdTYx''@;'; + put 'put ''YmJcdTYxYmNcdTYxYmRcdTYxYmZcdTYxYzBcdTYxYzFcdTYxYzNcdTYxYzRcdTYxYzVcdTYxYzZcdTYxYzdcdTYxYzlcdTYxY2NcdTYxY2RcdTYxY2VcdTYxY2ZcdTYxZDBcdTYxZDNcdTYxZDVcdTYxZDZcdTYxZDdcdTYxZDhcdTYxZDlcdTYxZGFcdTYxZGJcdTYxZGNcdTYxZGRcdTYxZGVc''@;'; + put 'put ''dTYxZGZcdTYxZTBcdTYxZTFcdTYxZTJcdTYxZTNcdTYxZTRcdTYxZTVcdTYxZTdcdTYxZThcdTYxZTlcdTYxZWFcdTYxZWJcdTYxZWNcdTYxZWRcdTYxZWVcdTYxZWZcdTYxZjBcdTYxZjFcdTYxZjJcdTYxZjNcdTYxZjRcdTYxZjZcdTYxZjdcdTYxZjhcdTYxZjlcdTYxZmFcdTYxZmJcdTYx''@;'; + put 'put ''ZmNcdTYxZmRcdTYxZmVcdTYyMDBcdTYyMDFcdTYyMDJcdTYyMDNcdTYyMDRcdTYyMDVcdTYyMDdcdTYyMDlcdTYyMTNcdTYyMTRcdTYyMTlcdTYyMWNcdTYyMWRcdTYyMWVcdTYyMjBcdTYyMjNcdTYyMjZcdTYyMjdcdTYyMjhcdTYyMjlcdTYyMmJcdTYyMmRcdTYyMmZcdTYyMzBcdTYyMzFc''@;'; + put 'put ''dTYyMzJcdTYyMzVcdTYyMzZcdTYyMzhcdTYyMzlcdTYyM2FcdTYyM2JcdTYyM2NcdTYyNDJcdTYyNDRcdTYyNDVcdTYyNDZcdTYyNGFcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxNDVdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE0NV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTQ1XVtF''@;'; + put 'put ''XV09MzcxMjArRSxMWzM3MTIwK0VdPUJbMTQ1XVtFXSk7Zm9yKEJbMTQ2XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2MjRmXHU2MjUwXHU2MjU1XHU2MjU2XHU2MjU3XHU2MjU5XHU2MjVhXHU2MjVjXHU2MjVkXHU2MjVlXHU2MjVm''@;'; + put 'put ''XHU2MjYwXHU2MjYxXHU2MjYyXHU2MjY0XHU2MjY1XHU2MjY4XHU2MjcxXHU2MjcyXHU2Mjc0XHU2Mjc1XHU2Mjc3XHU2Mjc4XHU2MjdhXHU2MjdiXHU2MjdkXHU2MjgxXHU2MjgyXHU2MjgzXHU2Mjg1XHU2Mjg2XHU2Mjg3XHU2Mjg4XHU2MjhiXHU2MjhjXHU2MjhkXHU2MjhlXHU2MjhmXHU2''@;'; + put 'put ''MjkwXHU2Mjk0XHU2Mjk5XHU2MjljXHU2MjlkXHU2MjllXHU2MmEzXHU2MmE2XHU2MmE3XHU2MmE5XHU2MmFhXHU2MmFkXHU2MmFlXHU2MmFmXHU2MmIwXHU2MmIyXHU2MmIzXHU2MmI0XHU2MmI2XHU2MmI3XHU2MmI4XHU2MmJhXHU2MmJlXHU2MmMwXHU2MmMxXHVmZmZkXHU2MmMzXHU2MmNi''@;'; + put 'put ''XHU2MmNmXHU2MmQxXHU2MmQ1XHU2MmRkXHU2MmRlXHU2MmUwXHU2MmUxXHU2MmU0XHU2MmVhXHU2MmViXHU2MmYwXHU2MmYyXHU2MmY1XHU2MmY4XHU2MmY5XHU2MmZhXHU2MmZiXHU2MzAwXHU2MzAzXHU2MzA0XHU2MzA1XHU2MzA2XHU2MzBhXHU2MzBiXHU2MzBjXHU2MzBkXHU2MzBmXHU2''@;'; + put 'put ''MzEwXHU2MzEyXHU2MzEzXHU2MzE0XHU2MzE1XHU2MzE3XHU2MzE4XHU2MzE5XHU2MzFjXHU2MzI2XHU2MzI3XHU2MzI5XHU2MzJjXHU2MzJkXHU2MzJlXHU2MzMwXHU2MzMxXHU2MzMzXHU2MzM0XHU2MzM1XHU2MzM2XHU2MzM3XHU2MzM4XHU2MzNiXHU2MzNjXHU2MzNlXHU2MzNmXHU2MzQw''@;'; + put 'put ''XHU2MzQxXHU2MzQ0XHU2MzQ3XHU2MzQ4XHU2MzRhXHU2MzUxXHU2MzUyXHU2MzUzXHU2MzU0XHU2MzU2XHU2MzU3XHU2MzU4XHU2MzU5XHU2MzVhXHU2MzViXHU2MzVjXHU2MzVkXHU2MzYwXHU2MzY0XHU2MzY1XHU2MzY2XHU2MzY4XHU2MzZhXHU2MzZiXHU2MzZjXHU2MzZmXHU2MzcwXHU2''@;'; + put 'put ''MzcyXHU2MzczXHU2Mzc0XHU2Mzc1XHU2Mzc4XHU2Mzc5XHU2MzdjXHU2MzdkXHU2MzdlXHU2MzdmXHU2MzgxXHU2MzgzXHU2Mzg0XHU2Mzg1XHU2Mzg2XHU2MzhiXHU2MzhkXHU2MzkxXHU2MzkzXHU2Mzk0XHU2Mzk1XHU2Mzk3XHU2Mzk5XHU2MzlhXHU2MzliXHU2MzljXHU2MzlkXHU2Mzll''@;'; + put 'put ''XHU2MzlmXHU2M2ExXHU2M2E0XHU2M2E2XHU2M2FiXHU2M2FmXHU2M2IxXHU2M2IyXHU2M2I1XHU2M2I2XHU2M2I5XHU2M2JiXHU2M2JkXHU2M2JmXHU2M2MwXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTQ2XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxNDZdW0VdLmNoYXJDb2RlQXQoMCkm''@;'; + put 'put ''JihtZVtCWzE0Nl1bRV1dPTM3Mzc2K0UsTFszNzM3NitFXT1CWzE0Nl1bRV0pO2ZvcihCWzE0N109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NjNjMVx1NjNjMlx1NjNjM1x1NjNjNVx1NjNjN1x1NjNjOFx1NjNjYVx1NjNjYlx1NjNj''@;'; + put 'put ''Y1x1NjNkMVx1NjNkM1x1NjNkNFx1NjNkNVx1NjNkN1x1NjNkOFx1NjNkOVx1NjNkYVx1NjNkYlx1NjNkY1x1NjNkZFx1NjNkZlx1NjNlMlx1NjNlNFx1NjNlNVx1NjNlNlx1NjNlN1x1NjNlOFx1NjNlYlx1NjNlY1x1NjNlZVx1NjNlZlx1NjNmMFx1NjNmMVx1NjNmM1x1NjNmNVx1NjNmN1x1''@;'; + put 'put ''NjNmOVx1NjNmYVx1NjNmYlx1NjNmY1x1NjNmZVx1NjQwM1x1NjQwNFx1NjQwNlx1NjQwN1x1NjQwOFx1NjQwOVx1NjQwYVx1NjQwZFx1NjQwZVx1NjQxMVx1NjQxMlx1NjQxNVx1NjQxNlx1NjQxN1x1NjQxOFx1NjQxOVx1NjQxYVx1NjQxZFx1NjQxZlx1NjQyMlx1NjQyM1x1NjQyNFx1ZmZm''@;'; + put 'put ''ZFx1NjQyNVx1NjQyN1x1NjQyOFx1NjQyOVx1NjQyYlx1NjQyZVx1NjQyZlx1NjQzMFx1NjQzMVx1NjQzMlx1NjQzM1x1NjQzNVx1NjQzNlx1NjQzN1x1NjQzOFx1NjQzOVx1NjQzYlx1NjQzY1x1NjQzZVx1NjQ0MFx1NjQ0Mlx1NjQ0M1x1NjQ0OVx1NjQ0Ylx1NjQ0Y1x1NjQ0ZFx1NjQ0ZVx1''@;'; + put 'put ''NjQ0Zlx1NjQ1MFx1NjQ1MVx1NjQ1M1x1NjQ1NVx1NjQ1Nlx1NjQ1N1x1NjQ1OVx1NjQ1YVx1NjQ1Ylx1NjQ1Y1x1NjQ1ZFx1NjQ1Zlx1NjQ2MFx1NjQ2MVx1NjQ2Mlx1NjQ2M1x1NjQ2NFx1NjQ2NVx1NjQ2Nlx1NjQ2OFx1NjQ2YVx1NjQ2Ylx1NjQ2Y1x1NjQ2ZVx1NjQ2Zlx1NjQ3MFx1NjQ3''@;'; + put 'put ''MVx1NjQ3Mlx1NjQ3M1x1NjQ3NFx1NjQ3NVx1NjQ3Nlx1NjQ3N1x1NjQ3Ylx1NjQ3Y1x1NjQ3ZFx1NjQ3ZVx1NjQ3Zlx1NjQ4MFx1NjQ4MVx1NjQ4M1x1NjQ4Nlx1NjQ4OFx1NjQ4OVx1NjQ4YVx1NjQ4Ylx1NjQ4Y1x1NjQ4ZFx1NjQ4ZVx1NjQ4Zlx1NjQ5MFx1NjQ5M1x1NjQ5NFx1NjQ5N1x1''@;'; + put 'put ''NjQ5OFx1NjQ5YVx1NjQ5Ylx1NjQ5Y1x1NjQ5ZFx1NjQ5Zlx1NjRhMFx1NjRhMVx1NjRhMlx1NjRhM1x1NjRhNVx1NjRhNlx1NjRhN1x1NjRhOFx1NjRhYVx1NjRhYlx1NjRhZlx1NjRiMVx1NjRiMlx1NjRiM1x1NjRiNFx1NjRiNlx1NjRiOVx1NjRiYlx1NjRiZFx1NjRiZVx1NjRiZlx1NjRj''@;'; + put 'put ''MVx1NjRjM1x1NjRjNFx1NjRjNlx1NjRjN1x1NjRjOFx1NjRjOVx1NjRjYVx1NjRjYlx1NjRjY1x1NjRjZlx1NjRkMVx1NjRkM1x1NjRkNFx1NjRkNVx1NjRkNlx1NjRkOVx1NjRkYVx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE0N10ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTQ3XVtFXS5j''@;'; + put 'put ''aGFyQ29kZUF0KDApJiYobWVbQlsxNDddW0VdXT0zNzYzMitFLExbMzc2MzIrRV09QlsxNDddW0VdKTtmb3IoQlsxNDhdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTY0ZGJcdTY0ZGNcdTY0ZGRcdTY0ZGZcdTY0ZTBcdTY0ZTFcdTY0''@;'; + put 'put ''ZTNcdTY0ZTVcdTY0ZTdcdTY0ZThcdTY0ZTlcdTY0ZWFcdTY0ZWJcdTY0ZWNcdTY0ZWRcdTY0ZWVcdTY0ZWZcdTY0ZjBcdTY0ZjFcdTY0ZjJcdTY0ZjNcdTY0ZjRcdTY0ZjVcdTY0ZjZcdTY0ZjdcdTY0ZjhcdTY0ZjlcdTY0ZmFcdTY0ZmJcdTY0ZmNcdTY0ZmRcdTY0ZmVcdTY0ZmZcdTY1MDFc''@;'; + put 'put ''dTY1MDJcdTY1MDNcdTY1MDRcdTY1MDVcdTY1MDZcdTY1MDdcdTY1MDhcdTY1MGFcdTY1MGJcdTY1MGNcdTY1MGRcdTY1MGVcdTY1MGZcdTY1MTBcdTY1MTFcdTY1MTNcdTY1MTRcdTY1MTVcdTY1MTZcdTY1MTdcdTY1MTlcdTY1MWFcdTY1MWJcdTY1MWNcdTY1MWRcdTY1MWVcdTY1MWZcdTY1''@;'; + put 'put ''MjBcdTY1MjFcdWZmZmRcdTY1MjJcdTY1MjNcdTY1MjRcdTY1MjZcdTY1MjdcdTY1MjhcdTY1MjlcdTY1MmFcdTY1MmNcdTY1MmRcdTY1MzBcdTY1MzFcdTY1MzJcdTY1MzNcdTY1MzdcdTY1M2FcdTY1M2NcdTY1M2RcdTY1NDBcdTY1NDFcdTY1NDJcdTY1NDNcdTY1NDRcdTY1NDZcdTY1NDdc''@;'; + put 'put ''dTY1NGFcdTY1NGJcdTY1NGRcdTY1NGVcdTY1NTBcdTY1NTJcdTY1NTNcdTY1NTRcdTY1NTdcdTY1NThcdTY1NWFcdTY1NWNcdTY1NWZcdTY1NjBcdTY1NjFcdTY1NjRcdTY1NjVcdTY1NjdcdTY1NjhcdTY1NjlcdTY1NmFcdTY1NmRcdTY1NmVcdTY1NmZcdTY1NzFcdTY1NzNcdTY1NzVcdTY1''@;'; + put 'put ''NzZcdTY1NzhcdTY1NzlcdTY1N2FcdTY1N2JcdTY1N2NcdTY1N2RcdTY1N2VcdTY1N2ZcdTY1ODBcdTY1ODFcdTY1ODJcdTY1ODNcdTY1ODRcdTY1ODVcdTY1ODZcdTY1ODhcdTY1ODlcdTY1OGFcdTY1OGRcdTY1OGVcdTY1OGZcdTY1OTJcdTY1OTRcdTY1OTVcdTY1OTZcdTY1OThcdTY1OWFc''@;'; + put 'put ''dTY1OWRcdTY1OWVcdTY1YTBcdTY1YTJcdTY1YTNcdTY1YTZcdTY1YThcdTY1YWFcdTY1YWNcdTY1YWVcdTY1YjFcdTY1YjJcdTY1YjNcdTY1YjRcdTY1YjVcdTY1YjZcdTY1YjdcdTY1YjhcdTY1YmFcdTY1YmJcdTY1YmVcdTY1YmZcdTY1YzBcdTY1YzJcdTY1YzdcdTY1YzhcdTY1YzlcdTY1''@;'; + put 'put ''Y2FcdTY1Y2RcdTY1ZDBcdTY1ZDFcdTY1ZDNcdTY1ZDRcdTY1ZDVcdTY1ZDhcdTY1ZDlcdTY1ZGFcdTY1ZGJcdTY1ZGNcdTY1ZGRcdTY1ZGVcdTY1ZGZcdTY1ZTFcdTY1ZTNcdTY1ZTRcdTY1ZWFcdTY1ZWJcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxNDhdLmxlbmd0aDsrK0UpNjU1MzMh''@;'; + put 'put ''PT1CWzE0OF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTQ4XVtFXV09Mzc4ODgrRSxMWzM3ODg4K0VdPUJbMTQ4XVtFXSk7Zm9yKEJbMTQ5XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2NWYyXHU2NWYzXHU2NWY0XHU2NWY1XHU2''@;'; + put 'put ''NWY4XHU2NWY5XHU2NWZiXHU2NWZjXHU2NWZkXHU2NWZlXHU2NWZmXHU2NjAxXHU2NjA0XHU2NjA1XHU2NjA3XHU2NjA4XHU2NjA5XHU2NjBiXHU2NjBkXHU2NjEwXHU2NjExXHU2NjEyXHU2NjE2XHU2NjE3XHU2NjE4XHU2NjFhXHU2NjFiXHU2NjFjXHU2NjFlXHU2NjIxXHU2NjIyXHU2NjIz''@;'; + put 'put ''XHU2NjI0XHU2NjI2XHU2NjI5XHU2NjJhXHU2NjJiXHU2NjJjXHU2NjJlXHU2NjMwXHU2NjMyXHU2NjMzXHU2NjM3XHU2NjM4XHU2NjM5XHU2NjNhXHU2NjNiXHU2NjNkXHU2NjNmXHU2NjQwXHU2NjQyXHU2NjQ0XHU2NjQ1XHU2NjQ2XHU2NjQ3XHU2NjQ4XHU2NjQ5XHU2NjRhXHU2NjRkXHU2''@;'; + put 'put ''NjRlXHU2NjUwXHU2NjUxXHU2NjU4XHVmZmZkXHU2NjU5XHU2NjViXHU2NjVjXHU2NjVkXHU2NjVlXHU2NjYwXHU2NjYyXHU2NjYzXHU2NjY1XHU2NjY3XHU2NjY5XHU2NjZhXHU2NjZiXHU2NjZjXHU2NjZkXHU2NjcxXHU2NjcyXHU2NjczXHU2Njc1XHU2Njc4XHU2Njc5XHU2NjdiXHU2Njdj''@;'; + put 'put ''XHU2NjdkXHU2NjdmXHU2NjgwXHU2NjgxXHU2NjgzXHU2Njg1XHU2Njg2XHU2Njg4XHU2Njg5XHU2NjhhXHU2NjhiXHU2NjhkXHU2NjhlXHU2NjhmXHU2NjkwXHU2NjkyXHU2NjkzXHU2Njk0XHU2Njk1XHU2Njk4XHU2Njk5XHU2NjlhXHU2NjliXHU2NjljXHU2NjllXHU2NjlmXHU2NmEwXHU2''@;'; + put 'put ''NmExXHU2NmEyXHU2NmEzXHU2NmE0XHU2NmE1XHU2NmE2XHU2NmE5XHU2NmFhXHU2NmFiXHU2NmFjXHU2NmFkXHU2NmFmXHU2NmIwXHU2NmIxXHU2NmIyXHU2NmIzXHU2NmI1XHU2NmI2XHU2NmI3XHU2NmI4XHU2NmJhXHU2NmJiXHU2NmJjXHU2NmJkXHU2NmJmXHU2NmMwXHU2NmMxXHU2NmMy''@;'; + put 'put ''XHU2NmMzXHU2NmM0XHU2NmM1XHU2NmM2XHU2NmM3XHU2NmM4XHU2NmM5XHU2NmNhXHU2NmNiXHU2NmNjXHU2NmNkXHU2NmNlXHU2NmNmXHU2NmQwXHU2NmQxXHU2NmQyXHU2NmQzXHU2NmQ0XHU2NmQ1XHU2NmQ2XHU2NmQ3XHU2NmQ4XHU2NmRhXHU2NmRlXHU2NmRmXHU2NmUwXHU2NmUxXHU2''@;'; + put 'put ''NmUyXHU2NmUzXHU2NmU0XHU2NmU1XHU2NmU3XHU2NmU4XHU2NmVhXHU2NmViXHU2NmVjXHU2NmVkXHU2NmVlXHU2NmVmXHU2NmYxXHU2NmY1XHU2NmY2XHU2NmY4XHU2NmZhXHU2NmZiXHU2NmZkXHU2NzAxXHU2NzAyXHU2NzAzXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTQ5XS5sZW5n''@;'; + put 'put ''dGg7KytFKTY1NTMzIT09QlsxNDldW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE0OV1bRV1dPTM4MTQ0K0UsTFszODE0NCtFXT1CWzE0OV1bRV0pO2ZvcihCWzE1MF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NjcwNFx1NjcwNVx1''@;'; + put 'put ''NjcwNlx1NjcwN1x1NjcwY1x1NjcwZVx1NjcwZlx1NjcxMVx1NjcxMlx1NjcxM1x1NjcxNlx1NjcxOFx1NjcxOVx1NjcxYVx1NjcxY1x1NjcxZVx1NjcyMFx1NjcyMVx1NjcyMlx1NjcyM1x1NjcyNFx1NjcyNVx1NjcyN1x1NjcyOVx1NjcyZVx1NjczMFx1NjczMlx1NjczM1x1NjczNlx1Njcz''@;'; + put 'put ''N1x1NjczOFx1NjczOVx1NjczYlx1NjczY1x1NjczZVx1NjczZlx1Njc0MVx1Njc0NFx1Njc0NVx1Njc0N1x1Njc0YVx1Njc0Ylx1Njc0ZFx1Njc1Mlx1Njc1NFx1Njc1NVx1Njc1N1x1Njc1OFx1Njc1OVx1Njc1YVx1Njc1Ylx1Njc1ZFx1Njc2Mlx1Njc2M1x1Njc2NFx1Njc2Nlx1Njc2N1x1''@;'; + put 'put ''Njc2Ylx1Njc2Y1x1Njc2ZVx1Njc3MVx1Njc3NFx1Njc3Nlx1ZmZmZFx1Njc3OFx1Njc3OVx1Njc3YVx1Njc3Ylx1Njc3ZFx1Njc4MFx1Njc4Mlx1Njc4M1x1Njc4NVx1Njc4Nlx1Njc4OFx1Njc4YVx1Njc4Y1x1Njc4ZFx1Njc4ZVx1Njc4Zlx1Njc5MVx1Njc5Mlx1Njc5M1x1Njc5NFx1Njc5''@;'; + put 'put ''Nlx1Njc5OVx1Njc5Ylx1Njc5Zlx1NjdhMFx1NjdhMVx1NjdhNFx1NjdhNlx1NjdhOVx1NjdhY1x1NjdhZVx1NjdiMVx1NjdiMlx1NjdiNFx1NjdiOVx1NjdiYVx1NjdiYlx1NjdiY1x1NjdiZFx1NjdiZVx1NjdiZlx1NjdjMFx1NjdjMlx1NjdjNVx1NjdjNlx1NjdjN1x1NjdjOFx1NjdjOVx1''@;'; + put 'put ''NjdjYVx1NjdjYlx1NjdjY1x1NjdjZFx1NjdjZVx1NjdkNVx1NjdkNlx1NjdkN1x1NjdkYlx1NjdkZlx1NjdlMVx1NjdlM1x1NjdlNFx1NjdlNlx1NjdlN1x1NjdlOFx1NjdlYVx1NjdlYlx1NjdlZFx1NjdlZVx1NjdmMlx1NjdmNVx1NjdmNlx1NjdmN1x1NjdmOFx1NjdmOVx1NjdmYVx1Njdm''@;'; + put 'put ''Ylx1NjdmY1x1NjdmZVx1NjgwMVx1NjgwMlx1NjgwM1x1NjgwNFx1NjgwNlx1NjgwZFx1NjgxMFx1NjgxMlx1NjgxNFx1NjgxNVx1NjgxOFx1NjgxOVx1NjgxYVx1NjgxYlx1NjgxY1x1NjgxZVx1NjgxZlx1NjgyMFx1NjgyMlx1NjgyM1x1NjgyNFx1NjgyNVx1NjgyNlx1NjgyN1x1NjgyOFx1''@;'; + put 'put ''NjgyYlx1NjgyY1x1NjgyZFx1NjgyZVx1NjgyZlx1NjgzMFx1NjgzMVx1NjgzNFx1NjgzNVx1NjgzNlx1NjgzYVx1NjgzYlx1NjgzZlx1Njg0N1x1Njg0Ylx1Njg0ZFx1Njg0Zlx1Njg1Mlx1Njg1Nlx1Njg1N1x1Njg1OFx1Njg1OVx1Njg1YVx1Njg1Ylx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtF''@;'; + put 'put ''IT1CWzE1MF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTUwXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxNTBdW0VdXT0zODQwMCtFLExbMzg0MDArRV09QlsxNTBdW0VdKTtmb3IoQlsxNTFdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dTY4NWNcdTY4NWRcdTY4NWVcdTY4NWZcdTY4NmFcdTY4NmNcdTY4NmRcdTY4NmVcdTY4NmZcdTY4NzBcdTY4NzFcdTY4NzJcdTY4NzNcdTY4NzVcdTY4NzhcdTY4NzlcdTY4N2FcdTY4N2JcdTY4N2NcdTY4N2RcdTY4N2VcdTY4N2ZcdTY4ODBcdTY4ODJcdTY4ODRcdTY4ODdcdTY4ODhcdTY4''@;'; + put 'put ''ODlcdTY4OGFcdTY4OGJcdTY4OGNcdTY4OGRcdTY4OGVcdTY4OTBcdTY4OTFcdTY4OTJcdTY4OTRcdTY4OTVcdTY4OTZcdTY4OThcdTY4OTlcdTY4OWFcdTY4OWJcdTY4OWNcdTY4OWRcdTY4OWVcdTY4OWZcdTY4YTBcdTY4YTFcdTY4YTNcdTY4YTRcdTY4YTVcdTY4YTlcdTY4YWFcdTY4YWJc''@;'; + put 'put ''dTY4YWNcdTY4YWVcdTY4YjFcdTY4YjJcdTY4YjRcdTY4YjZcdTY4YjdcdTY4YjhcdWZmZmRcdTY4YjlcdTY4YmFcdTY4YmJcdTY4YmNcdTY4YmRcdTY4YmVcdTY4YmZcdTY4YzFcdTY4YzNcdTY4YzRcdTY4YzVcdTY4YzZcdTY4YzdcdTY4YzhcdTY4Y2FcdTY4Y2NcdTY4Y2VcdTY4Y2ZcdTY4''@;'; + put 'put ''ZDBcdTY4ZDFcdTY4ZDNcdTY4ZDRcdTY4ZDZcdTY4ZDdcdTY4ZDlcdTY4ZGJcdTY4ZGNcdTY4ZGRcdTY4ZGVcdTY4ZGZcdTY4ZTFcdTY4ZTJcdTY4ZTRcdTY4ZTVcdTY4ZTZcdTY4ZTdcdTY4ZThcdTY4ZTlcdTY4ZWFcdTY4ZWJcdTY4ZWNcdTY4ZWRcdTY4ZWZcdTY4ZjJcdTY4ZjNcdTY4ZjRc''@;'; + put 'put ''dTY4ZjZcdTY4ZjdcdTY4ZjhcdTY4ZmJcdTY4ZmRcdTY4ZmVcdTY4ZmZcdTY5MDBcdTY5MDJcdTY5MDNcdTY5MDRcdTY5MDZcdTY5MDdcdTY5MDhcdTY5MDlcdTY5MGFcdTY5MGNcdTY5MGZcdTY5MTFcdTY5MTNcdTY5MTRcdTY5MTVcdTY5MTZcdTY5MTdcdTY5MThcdTY5MTlcdTY5MWFcdTY5''@;'; + put 'put ''MWJcdTY5MWNcdTY5MWRcdTY5MWVcdTY5MjFcdTY5MjJcdTY5MjNcdTY5MjVcdTY5MjZcdTY5MjdcdTY5MjhcdTY5MjlcdTY5MmFcdTY5MmJcdTY5MmNcdTY5MmVcdTY5MmZcdTY5MzFcdTY5MzJcdTY5MzNcdTY5MzVcdTY5MzZcdTY5MzdcdTY5MzhcdTY5M2FcdTY5M2JcdTY5M2NcdTY5M2Vc''@;'; + put 'put ''dTY5NDBcdTY5NDFcdTY5NDNcdTY5NDRcdTY5NDVcdTY5NDZcdTY5NDdcdTY5NDhcdTY5NDlcdTY5NGFcdTY5NGJcdTY5NGNcdTY5NGRcdTY5NGVcdTY5NGZcdTY5NTBcdTY5NTFcdTY5NTJcdTY5NTNcdTY5NTVcdTY5NTZcdTY5NThcdTY5NTlcdTY5NWJcdTY5NWNcdTY5NWZcdWZmZmQiLnNw''@;'; + put 'put ''bGl0KCIiKSxFPTA7RSE9QlsxNTFdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE1MV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTUxXVtFXV09Mzg2NTYrRSxMWzM4NjU2K0VdPUJbMTUxXVtFXSk7Zm9yKEJbMTUyXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHU2OTYxXHU2OTYyXHU2OTY0XHU2OTY1XHU2OTY3XHU2OTY4XHU2OTY5XHU2OTZhXHU2OTZjXHU2OTZkXHU2OTZmXHU2OTcwXHU2OTcyXHU2OTczXHU2OTc0XHU2OTc1XHU2OTc2XHU2OTdhXHU2OTdiXHU2OTdkXHU2OTdlXHU2OTdmXHU2OTgxXHU2OTgzXHU2OTg1XHU2''@;'; + put 'put ''OThhXHU2OThiXHU2OThjXHU2OThlXHU2OThmXHU2OTkwXHU2OTkxXHU2OTkyXHU2OTkzXHU2OTk2XHU2OTk3XHU2OTk5XHU2OTlhXHU2OTlkXHU2OTllXHU2OTlmXHU2OWEwXHU2OWExXHU2OWEyXHU2OWEzXHU2OWE0XHU2OWE1XHU2OWE2XHU2OWE5XHU2OWFhXHU2OWFjXHU2OWFlXHU2OWFm''@;'; + put 'put ''XHU2OWIwXHU2OWIyXHU2OWIzXHU2OWI1XHU2OWI2XHU2OWI4XHU2OWI5XHU2OWJhXHU2OWJjXHU2OWJkXHVmZmZkXHU2OWJlXHU2OWJmXHU2OWMwXHU2OWMyXHU2OWMzXHU2OWM0XHU2OWM1XHU2OWM2XHU2OWM3XHU2OWM4XHU2OWM5XHU2OWNiXHU2OWNkXHU2OWNmXHU2OWQxXHU2OWQyXHU2''@;'; + put 'put ''OWQzXHU2OWQ1XHU2OWQ2XHU2OWQ3XHU2OWQ4XHU2OWQ5XHU2OWRhXHU2OWRjXHU2OWRkXHU2OWRlXHU2OWUxXHU2OWUyXHU2OWUzXHU2OWU0XHU2OWU1XHU2OWU2XHU2OWU3XHU2OWU4XHU2OWU5XHU2OWVhXHU2OWViXHU2OWVjXHU2OWVlXHU2OWVmXHU2OWYwXHU2OWYxXHU2OWYzXHU2OWY0''@;'; + put 'put ''XHU2OWY1XHU2OWY2XHU2OWY3XHU2OWY4XHU2OWY5XHU2OWZhXHU2OWZiXHU2OWZjXHU2OWZlXHU2YTAwXHU2YTAxXHU2YTAyXHU2YTAzXHU2YTA0XHU2YTA1XHU2YTA2XHU2YTA3XHU2YTA4XHU2YTA5XHU2YTBiXHU2YTBjXHU2YTBkXHU2YTBlXHU2YTBmXHU2YTEwXHU2YTExXHU2YTEyXHU2''@;'; + put 'put ''YTEzXHU2YTE0XHU2YTE1XHU2YTE2XHU2YTE5XHU2YTFhXHU2YTFiXHU2YTFjXHU2YTFkXHU2YTFlXHU2YTIwXHU2YTIyXHU2YTIzXHU2YTI0XHU2YTI1XHU2YTI2XHU2YTI3XHU2YTI5XHU2YTJiXHU2YTJjXHU2YTJkXHU2YTJlXHU2YTMwXHU2YTMyXHU2YTMzXHU2YTM0XHU2YTM2XHU2YTM3''@;'; + put 'put ''XHU2YTM4XHU2YTM5XHU2YTNhXHU2YTNiXHU2YTNjXHU2YTNmXHU2YTQwXHU2YTQxXHU2YTQyXHU2YTQzXHU2YTQ1XHU2YTQ2XHU2YTQ4XHU2YTQ5XHU2YTRhXHU2YTRiXHU2YTRjXHU2YTRkXHU2YTRlXHU2YTRmXHU2YTUxXHU2YTUyXHU2YTUzXHU2YTU0XHU2YTU1XHU2YTU2XHU2YTU3XHU2''@;'; + put 'put ''YTVhXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTUyXS5sZW5ndGg7KytFKTY1NTMzIT09QlsxNTJdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE1Ml1bRV1dPTM4OTEyK0UsTFszODkxMitFXT1CWzE1Ml1bRV0pO2ZvcihCWzE1M109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NmE1Y1x1NmE1ZFx1NmE1ZVx1NmE1Zlx1NmE2MFx1NmE2Mlx1NmE2M1x1NmE2NFx1NmE2Nlx1NmE2N1x1NmE2OFx1NmE2OVx1NmE2YVx1NmE2Ylx1NmE2Y1x1NmE2ZFx1NmE2ZVx1NmE2Zlx1NmE3MFx1NmE3Mlx1NmE3M1x1NmE3NFx1NmE3NVx1''@;'; + put 'put ''NmE3Nlx1NmE3N1x1NmE3OFx1NmE3YVx1NmE3Ylx1NmE3ZFx1NmE3ZVx1NmE3Zlx1NmE4MVx1NmE4Mlx1NmE4M1x1NmE4NVx1NmE4Nlx1NmE4N1x1NmE4OFx1NmE4OVx1NmE4YVx1NmE4Ylx1NmE4Y1x1NmE4ZFx1NmE4Zlx1NmE5Mlx1NmE5M1x1NmE5NFx1NmE5NVx1NmE5Nlx1NmE5OFx1NmE5''@;'; + put 'put ''OVx1NmE5YVx1NmE5Ylx1NmE5Y1x1NmE5ZFx1NmE5ZVx1NmE5Zlx1NmFhMVx1NmFhMlx1NmFhM1x1NmFhNFx1NmFhNVx1NmFhNlx1ZmZmZFx1NmFhN1x1NmFhOFx1NmFhYVx1NmFhZFx1NmFhZVx1NmFhZlx1NmFiMFx1NmFiMVx1NmFiMlx1NmFiM1x1NmFiNFx1NmFiNVx1NmFiNlx1NmFiN1x1''@;'; + put 'put ''NmFiOFx1NmFiOVx1NmFiYVx1NmFiYlx1NmFiY1x1NmFiZFx1NmFiZVx1NmFiZlx1NmFjMFx1NmFjMVx1NmFjMlx1NmFjM1x1NmFjNFx1NmFjNVx1NmFjNlx1NmFjN1x1NmFjOFx1NmFjOVx1NmFjYVx1NmFjYlx1NmFjY1x1NmFjZFx1NmFjZVx1NmFjZlx1NmFkMFx1NmFkMVx1NmFkMlx1NmFk''@;'; + put 'put ''M1x1NmFkNFx1NmFkNVx1NmFkNlx1NmFkN1x1NmFkOFx1NmFkOVx1NmFkYVx1NmFkYlx1NmFkY1x1NmFkZFx1NmFkZVx1NmFkZlx1NmFlMFx1NmFlMVx1NmFlMlx1NmFlM1x1NmFlNFx1NmFlNVx1NmFlNlx1NmFlN1x1NmFlOFx1NmFlOVx1NmFlYVx1NmFlYlx1NmFlY1x1NmFlZFx1NmFlZVx1''@;'; + put 'put ''NmFlZlx1NmFmMFx1NmFmMVx1NmFmMlx1NmFmM1x1NmFmNFx1NmFmNVx1NmFmNlx1NmFmN1x1NmFmOFx1NmFmOVx1NmFmYVx1NmFmYlx1NmFmY1x1NmFmZFx1NmFmZVx1NmFmZlx1NmIwMFx1NmIwMVx1NmIwMlx1NmIwM1x1NmIwNFx1NmIwNVx1NmIwNlx1NmIwN1x1NmIwOFx1NmIwOVx1NmIw''@;'; + put 'put ''YVx1NmIwYlx1NmIwY1x1NmIwZFx1NmIwZVx1NmIwZlx1NmIxMFx1NmIxMVx1NmIxMlx1NmIxM1x1NmIxNFx1NmIxNVx1NmIxNlx1NmIxN1x1NmIxOFx1NmIxOVx1NmIxYVx1NmIxYlx1NmIxY1x1NmIxZFx1NmIxZVx1NmIxZlx1NmIyNVx1NmIyNlx1NmIyOFx1NmIyOVx1NmIyYVx1NmIyYlx1''@;'; + put 'put ''NmIyY1x1NmIyZFx1NmIyZVx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE1M10ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTUzXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxNTNdW0VdXT0zOTE2OCtFLExbMzkxNjgrRV09QlsxNTNdW0VdKTtmb3IoQlsxNTRdPSJcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTZiMmZcdTZiMzBcdTZiMzFcdTZiMzNcdTZiMzRcdTZiMzVcdTZiMzZcdTZiMzhcdTZiM2JcdTZiM2NcdTZiM2RcdTZiM2ZcdTZiNDBcdTZiNDFcdTZiNDJcdTZiNDRcdTZiNDVcdTZiNDhcdTZiNGFcdTZiNGJcdTZiNGRc''@;'; + put 'put ''dTZiNGVcdTZiNGZcdTZiNTBcdTZiNTFcdTZiNTJcdTZiNTNcdTZiNTRcdTZiNTVcdTZiNTZcdTZiNTdcdTZiNThcdTZiNWFcdTZiNWJcdTZiNWNcdTZiNWRcdTZiNWVcdTZiNWZcdTZiNjBcdTZiNjFcdTZiNjhcdTZiNjlcdTZiNmJcdTZiNmNcdTZiNmRcdTZiNmVcdTZiNmZcdTZiNzBcdTZi''@;'; + put 'put ''NzFcdTZiNzJcdTZiNzNcdTZiNzRcdTZiNzVcdTZiNzZcdTZiNzdcdTZiNzhcdTZiN2FcdTZiN2RcdTZiN2VcdTZiN2ZcdTZiODBcdTZiODVcdTZiODhcdWZmZmRcdTZiOGNcdTZiOGVcdTZiOGZcdTZiOTBcdTZiOTFcdTZiOTRcdTZiOTVcdTZiOTdcdTZiOThcdTZiOTlcdTZiOWNcdTZiOWRc''@;'; + put 'put ''dTZiOWVcdTZiOWZcdTZiYTBcdTZiYTJcdTZiYTNcdTZiYTRcdTZiYTVcdTZiYTZcdTZiYTdcdTZiYThcdTZiYTlcdTZiYWJcdTZiYWNcdTZiYWRcdTZiYWVcdTZiYWZcdTZiYjBcdTZiYjFcdTZiYjJcdTZiYjZcdTZiYjhcdTZiYjlcdTZiYmFcdTZiYmJcdTZiYmNcdTZiYmRcdTZiYmVcdTZi''@;'; + put 'put ''YzBcdTZiYzNcdTZiYzRcdTZiYzZcdTZiYzdcdTZiYzhcdTZiYzlcdTZiY2FcdTZiY2NcdTZiY2VcdTZiZDBcdTZiZDFcdTZiZDhcdTZiZGFcdTZiZGNcdTZiZGRcdTZiZGVcdTZiZGZcdTZiZTBcdTZiZTJcdTZiZTNcdTZiZTRcdTZiZTVcdTZiZTZcdTZiZTdcdTZiZThcdTZiZTlcdTZiZWNc''@;'; + put 'put ''dTZiZWRcdTZiZWVcdTZiZjBcdTZiZjFcdTZiZjJcdTZiZjRcdTZiZjZcdTZiZjdcdTZiZjhcdTZiZmFcdTZiZmJcdTZiZmNcdTZiZmVcdTZiZmZcdTZjMDBcdTZjMDFcdTZjMDJcdTZjMDNcdTZjMDRcdTZjMDhcdTZjMDlcdTZjMGFcdTZjMGJcdTZjMGNcdTZjMGVcdTZjMTJcdTZjMTdcdTZj''@;'; + put 'put ''MWNcdTZjMWRcdTZjMWVcdTZjMjBcdTZjMjNcdTZjMjVcdTZjMmJcdTZjMmNcdTZjMmRcdTZjMzFcdTZjMzNcdTZjMzZcdTZjMzdcdTZjMzlcdTZjM2FcdTZjM2JcdTZjM2NcdTZjM2VcdTZjM2ZcdTZjNDNcdTZjNDRcdTZjNDVcdTZjNDhcdTZjNGJcdTZjNGNcdTZjNGRcdTZjNGVcdTZjNGZc''@;'; + put 'put ''dTZjNTFcdTZjNTJcdTZjNTNcdTZjNTZcdTZjNThcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxNTRdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE1NF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTU0XVtFXV09Mzk0MjQrRSxMWzM5NDI0K0VdPUJbMTU0XVtFXSk7Zm9yKEJbMTU1XT0iXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2YzU5XHU2YzVhXHU2YzYyXHU2YzYzXHU2YzY1XHU2YzY2XHU2YzY3XHU2YzZiXHU2YzZjXHU2YzZkXHU2YzZlXHU2YzZmXHU2YzcxXHU2YzczXHU2Yzc1XHU2Yzc3XHU2Yzc4XHU2YzdhXHU2Yzdi''@;'; + put 'put ''XHU2YzdjXHU2YzdmXHU2YzgwXHU2Yzg0XHU2Yzg3XHU2YzhhXHU2YzhiXHU2YzhkXHU2YzhlXHU2YzkxXHU2YzkyXHU2Yzk1XHU2Yzk2XHU2Yzk3XHU2Yzk4XHU2YzlhXHU2YzljXHU2YzlkXHU2YzllXHU2Y2EwXHU2Y2EyXHU2Y2E4XHU2Y2FjXHU2Y2FmXHU2Y2IwXHU2Y2I0XHU2Y2I1XHU2''@;'; + put 'put ''Y2I2XHU2Y2I3XHU2Y2JhXHU2Y2MwXHU2Y2MxXHU2Y2MyXHU2Y2MzXHU2Y2M2XHU2Y2M3XHU2Y2M4XHU2Y2NiXHU2Y2NkXHU2Y2NlXHU2Y2NmXHU2Y2QxXHU2Y2QyXHU2Y2Q4XHVmZmZkXHU2Y2Q5XHU2Y2RhXHU2Y2RjXHU2Y2RkXHU2Y2RmXHU2Y2U0XHU2Y2U2XHU2Y2U3XHU2Y2U5XHU2Y2Vj''@;'; + put 'put ''XHU2Y2VkXHU2Y2YyXHU2Y2Y0XHU2Y2Y5XHU2Y2ZmXHU2ZDAwXHU2ZDAyXHU2ZDAzXHU2ZDA1XHU2ZDA2XHU2ZDA4XHU2ZDA5XHU2ZDBhXHU2ZDBkXHU2ZDBmXHU2ZDEwXHU2ZDExXHU2ZDEzXHU2ZDE0XHU2ZDE1XHU2ZDE2XHU2ZDE4XHU2ZDFjXHU2ZDFkXHU2ZDFmXHU2ZDIwXHU2ZDIxXHU2''@;'; + put 'put ''ZDIyXHU2ZDIzXHU2ZDI0XHU2ZDI2XHU2ZDI4XHU2ZDI5XHU2ZDJjXHU2ZDJkXHU2ZDJmXHU2ZDMwXHU2ZDM0XHU2ZDM2XHU2ZDM3XHU2ZDM4XHU2ZDNhXHU2ZDNmXHU2ZDQwXHU2ZDQyXHU2ZDQ0XHU2ZDQ5XHU2ZDRjXHU2ZDUwXHU2ZDU1XHU2ZDU2XHU2ZDU3XHU2ZDU4XHU2ZDViXHU2ZDVk''@;'; + put 'put ''XHU2ZDVmXHU2ZDYxXHU2ZDYyXHU2ZDY0XHU2ZDY1XHU2ZDY3XHU2ZDY4XHU2ZDZiXHU2ZDZjXHU2ZDZkXHU2ZDcwXHU2ZDcxXHU2ZDcyXHU2ZDczXHU2ZDc1XHU2ZDc2XHU2ZDc5XHU2ZDdhXHU2ZDdiXHU2ZDdkXHU2ZDdlXHU2ZDdmXHU2ZDgwXHU2ZDgxXHU2ZDgzXHU2ZDg0XHU2ZDg2XHU2''@;'; + put 'put ''ZDg3XHU2ZDhhXHU2ZDhiXHU2ZDhkXHU2ZDhmXHU2ZDkwXHU2ZDkyXHU2ZDk2XHU2ZDk3XHU2ZDk4XHU2ZDk5XHU2ZDlhXHU2ZDljXHU2ZGEyXHU2ZGE1XHU2ZGFjXHU2ZGFkXHU2ZGIwXHU2ZGIxXHU2ZGIzXHU2ZGI0XHU2ZGI2XHU2ZGI3XHU2ZGI5XHU2ZGJhXHU2ZGJiXHU2ZGJjXHU2ZGJk''@;'; + put 'put ''XHU2ZGJlXHU2ZGMxXHU2ZGMyXHU2ZGMzXHU2ZGM4XHU2ZGM5XHU2ZGNhXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTU1XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxNTVdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE1NV1bRV1dPTM5NjgwK0UsTFszOTY4MCtFXT1CWzE1NV1bRV0pO2Zv''@;'; + put 'put ''cihCWzE1Nl09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NmRjZFx1NmRjZVx1NmRjZlx1NmRkMFx1NmRkMlx1NmRkM1x1NmRkNFx1NmRkNVx1NmRkN1x1NmRkYVx1NmRkYlx1NmRkY1x1NmRkZlx1NmRlMlx1NmRlM1x1NmRlNVx1NmRl''@;'; + put 'put ''N1x1NmRlOFx1NmRlOVx1NmRlYVx1NmRlZFx1NmRlZlx1NmRmMFx1NmRmMlx1NmRmNFx1NmRmNVx1NmRmNlx1NmRmOFx1NmRmYVx1NmRmZFx1NmRmZVx1NmRmZlx1NmUwMFx1NmUwMVx1NmUwMlx1NmUwM1x1NmUwNFx1NmUwNlx1NmUwN1x1NmUwOFx1NmUwOVx1NmUwYlx1NmUwZlx1NmUxMlx1''@;'; + put 'put ''NmUxM1x1NmUxNVx1NmUxOFx1NmUxOVx1NmUxYlx1NmUxY1x1NmUxZVx1NmUxZlx1NmUyMlx1NmUyNlx1NmUyN1x1NmUyOFx1NmUyYVx1NmUyY1x1NmUyZVx1NmUzMFx1NmUzMVx1NmUzM1x1NmUzNVx1ZmZmZFx1NmUzNlx1NmUzN1x1NmUzOVx1NmUzYlx1NmUzY1x1NmUzZFx1NmUzZVx1NmUz''@;'; + put 'put ''Zlx1NmU0MFx1NmU0MVx1NmU0Mlx1NmU0NVx1NmU0Nlx1NmU0N1x1NmU0OFx1NmU0OVx1NmU0YVx1NmU0Ylx1NmU0Y1x1NmU0Zlx1NmU1MFx1NmU1MVx1NmU1Mlx1NmU1NVx1NmU1N1x1NmU1OVx1NmU1YVx1NmU1Y1x1NmU1ZFx1NmU1ZVx1NmU2MFx1NmU2MVx1NmU2Mlx1NmU2M1x1NmU2NFx1''@;'; + put 'put ''NmU2NVx1NmU2Nlx1NmU2N1x1NmU2OFx1NmU2OVx1NmU2YVx1NmU2Y1x1NmU2ZFx1NmU2Zlx1NmU3MFx1NmU3MVx1NmU3Mlx1NmU3M1x1NmU3NFx1NmU3NVx1NmU3Nlx1NmU3N1x1NmU3OFx1NmU3OVx1NmU3YVx1NmU3Ylx1NmU3Y1x1NmU3ZFx1NmU4MFx1NmU4MVx1NmU4Mlx1NmU4NFx1NmU4''@;'; + put 'put ''N1x1NmU4OFx1NmU4YVx1NmU4Ylx1NmU4Y1x1NmU4ZFx1NmU4ZVx1NmU5MVx1NmU5Mlx1NmU5M1x1NmU5NFx1NmU5NVx1NmU5Nlx1NmU5N1x1NmU5OVx1NmU5YVx1NmU5Ylx1NmU5ZFx1NmU5ZVx1NmVhMFx1NmVhMVx1NmVhM1x1NmVhNFx1NmVhNlx1NmVhOFx1NmVhOVx1NmVhYlx1NmVhY1x1''@;'; + put 'put ''NmVhZFx1NmVhZVx1NmViMFx1NmViM1x1NmViNVx1NmViOFx1NmViOVx1NmViY1x1NmViZVx1NmViZlx1NmVjMFx1NmVjM1x1NmVjNFx1NmVjNVx1NmVjNlx1NmVjOFx1NmVjOVx1NmVjYVx1NmVjY1x1NmVjZFx1NmVjZVx1NmVkMFx1NmVkMlx1NmVkNlx1NmVkOFx1NmVkOVx1NmVkYlx1NmVk''@;'; + put 'put ''Y1x1NmVkZFx1NmVlM1x1NmVlN1x1NmVlYVx1NmVlYlx1NmVlY1x1NmVlZFx1NmVlZVx1NmVlZlx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE1Nl0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTU2XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxNTZdW0VdXT0zOTkzNitFLExbMzk5MzYrRV09''@;'; + put 'put ''QlsxNTZdW0VdKTtmb3IoQlsxNTddPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTZlZjBcdTZlZjFcdTZlZjJcdTZlZjNcdTZlZjVcdTZlZjZcdTZlZjdcdTZlZjhcdTZlZmFcdTZlZmJcdTZlZmNcdTZlZmRcdTZlZmVcdTZlZmZcdTZm''@;'; + put 'put ''MDBcdTZmMDFcdTZmMDNcdTZmMDRcdTZmMDVcdTZmMDdcdTZmMDhcdTZmMGFcdTZmMGJcdTZmMGNcdTZmMGRcdTZmMGVcdTZmMTBcdTZmMTFcdTZmMTJcdTZmMTZcdTZmMTdcdTZmMThcdTZmMTlcdTZmMWFcdTZmMWJcdTZmMWNcdTZmMWRcdTZmMWVcdTZmMWZcdTZmMjFcdTZmMjJcdTZmMjNc''@;'; + put 'put ''dTZmMjVcdTZmMjZcdTZmMjdcdTZmMjhcdTZmMmNcdTZmMmVcdTZmMzBcdTZmMzJcdTZmMzRcdTZmMzVcdTZmMzdcdTZmMzhcdTZmMzlcdTZmM2FcdTZmM2JcdTZmM2NcdTZmM2RcdTZmM2ZcdTZmNDBcdTZmNDFcdTZmNDJcdWZmZmRcdTZmNDNcdTZmNDRcdTZmNDVcdTZmNDhcdTZmNDlcdTZm''@;'; + put 'put ''NGFcdTZmNGNcdTZmNGVcdTZmNGZcdTZmNTBcdTZmNTFcdTZmNTJcdTZmNTNcdTZmNTRcdTZmNTVcdTZmNTZcdTZmNTdcdTZmNTlcdTZmNWFcdTZmNWJcdTZmNWRcdTZmNWZcdTZmNjBcdTZmNjFcdTZmNjNcdTZmNjRcdTZmNjVcdTZmNjdcdTZmNjhcdTZmNjlcdTZmNmFcdTZmNmJcdTZmNmNc''@;'; + put 'put ''dTZmNmZcdTZmNzBcdTZmNzFcdTZmNzNcdTZmNzVcdTZmNzZcdTZmNzdcdTZmNzlcdTZmN2JcdTZmN2RcdTZmN2VcdTZmN2ZcdTZmODBcdTZmODFcdTZmODJcdTZmODNcdTZmODVcdTZmODZcdTZmODdcdTZmOGFcdTZmOGJcdTZmOGZcdTZmOTBcdTZmOTFcdTZmOTJcdTZmOTNcdTZmOTRcdTZm''@;'; + put 'put ''OTVcdTZmOTZcdTZmOTdcdTZmOThcdTZmOTlcdTZmOWFcdTZmOWJcdTZmOWRcdTZmOWVcdTZmOWZcdTZmYTBcdTZmYTJcdTZmYTNcdTZmYTRcdTZmYTVcdTZmYTZcdTZmYThcdTZmYTlcdTZmYWFcdTZmYWJcdTZmYWNcdTZmYWRcdTZmYWVcdTZmYWZcdTZmYjBcdTZmYjFcdTZmYjJcdTZmYjRc''@;'; + put 'put ''dTZmYjVcdTZmYjdcdTZmYjhcdTZmYmFcdTZmYmJcdTZmYmNcdTZmYmRcdTZmYmVcdTZmYmZcdTZmYzFcdTZmYzNcdTZmYzRcdTZmYzVcdTZmYzZcdTZmYzdcdTZmYzhcdTZmY2FcdTZmY2JcdTZmY2NcdTZmY2RcdTZmY2VcdTZmY2ZcdTZmZDBcdTZmZDNcdTZmZDRcdTZmZDVcdTZmZDZcdTZm''@;'; + put 'put ''ZDdcdTZmZDhcdTZmZDlcdTZmZGFcdTZmZGJcdTZmZGNcdTZmZGRcdTZmZGZcdTZmZTJcdTZmZTNcdTZmZTRcdTZmZTVcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxNTddLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE1N11bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTU3XVtFXV09NDAxOTIr''@;'; + put 'put ''RSxMWzQwMTkyK0VdPUJbMTU3XVtFXSk7Zm9yKEJbMTU4XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2ZmU2XHU2ZmU3XHU2ZmU4XHU2ZmU5XHU2ZmVhXHU2ZmViXHU2ZmVjXHU2ZmVkXHU2ZmYwXHU2ZmYxXHU2ZmYyXHU2ZmYzXHU2''@;'; + put 'put ''ZmY0XHU2ZmY1XHU2ZmY2XHU2ZmY3XHU2ZmY4XHU2ZmY5XHU2ZmZhXHU2ZmZiXHU2ZmZjXHU2ZmZkXHU2ZmZlXHU2ZmZmXHU3MDAwXHU3MDAxXHU3MDAyXHU3MDAzXHU3MDA0XHU3MDA1XHU3MDA2XHU3MDA3XHU3MDA4XHU3MDA5XHU3MDBhXHU3MDBiXHU3MDBjXHU3MDBkXHU3MDBlXHU3MDBm''@;'; + put 'put ''XHU3MDEwXHU3MDEyXHU3MDEzXHU3MDE0XHU3MDE1XHU3MDE2XHU3MDE3XHU3MDE4XHU3MDE5XHU3MDFjXHU3MDFkXHU3MDFlXHU3MDFmXHU3MDIwXHU3MDIxXHU3MDIyXHU3MDI0XHU3MDI1XHU3MDI2XHU3MDI3XHU3MDI4XHU3MDI5XHU3MDJhXHVmZmZkXHU3MDJiXHU3MDJjXHU3MDJkXHU3''@;'; + put 'put ''MDJlXHU3MDJmXHU3MDMwXHU3MDMxXHU3MDMyXHU3MDMzXHU3MDM0XHU3MDM2XHU3MDM3XHU3MDM4XHU3MDNhXHU3MDNiXHU3MDNjXHU3MDNkXHU3MDNlXHU3MDNmXHU3MDQwXHU3MDQxXHU3MDQyXHU3MDQzXHU3MDQ0XHU3MDQ1XHU3MDQ2XHU3MDQ3XHU3MDQ4XHU3MDQ5XHU3MDRhXHU3MDRi''@;'; + put 'put ''XHU3MDRkXHU3MDRlXHU3MDUwXHU3MDUxXHU3MDUyXHU3MDUzXHU3MDU0XHU3MDU1XHU3MDU2XHU3MDU3XHU3MDU4XHU3MDU5XHU3MDVhXHU3MDViXHU3MDVjXHU3MDVkXHU3MDVmXHU3MDYwXHU3MDYxXHU3MDYyXHU3MDYzXHU3MDY0XHU3MDY1XHU3MDY2XHU3MDY3XHU3MDY4XHU3MDY5XHU3''@;'; + put 'put ''MDZhXHU3MDZlXHU3MDcxXHU3MDcyXHU3MDczXHU3MDc0XHU3MDc3XHU3MDc5XHU3MDdhXHU3MDdiXHU3MDdkXHU3MDgxXHU3MDgyXHU3MDgzXHU3MDg0XHU3MDg2XHU3MDg3XHU3MDg4XHU3MDhiXHU3MDhjXHU3MDhkXHU3MDhmXHU3MDkwXHU3MDkxXHU3MDkzXHU3MDk3XHU3MDk4XHU3MDlh''@;'; + put 'put ''XHU3MDliXHU3MDllXHU3MDlmXHU3MGEwXHU3MGExXHU3MGEyXHU3MGEzXHU3MGE0XHU3MGE1XHU3MGE2XHU3MGE3XHU3MGE4XHU3MGE5XHU3MGFhXHU3MGIwXHU3MGIyXHU3MGI0XHU3MGI1XHU3MGI2XHU3MGJhXHU3MGJlXHU3MGJmXHU3MGM0XHU3MGM1XHU3MGM2XHU3MGM3XHU3MGM5XHU3''@;'; + put 'put ''MGNiXHU3MGNjXHU3MGNkXHU3MGNlXHU3MGNmXHU3MGQwXHU3MGQxXHU3MGQyXHU3MGQzXHU3MGQ0XHU3MGQ1XHU3MGQ2XHU3MGQ3XHU3MGRhXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTU4XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxNThdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE1''@;'; + put 'put ''OF1bRV1dPTQwNDQ4K0UsTFs0MDQ0OCtFXT1CWzE1OF1bRV0pO2ZvcihCWzE1OV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NzBkY1x1NzBkZFx1NzBkZVx1NzBlMFx1NzBlMVx1NzBlMlx1NzBlM1x1NzBlNVx1NzBlYVx1NzBlZVx1''@;'; + put 'put ''NzBmMFx1NzBmMVx1NzBmMlx1NzBmM1x1NzBmNFx1NzBmNVx1NzBmNlx1NzBmOFx1NzBmYVx1NzBmYlx1NzBmY1x1NzBmZVx1NzBmZlx1NzEwMFx1NzEwMVx1NzEwMlx1NzEwM1x1NzEwNFx1NzEwNVx1NzEwNlx1NzEwN1x1NzEwOFx1NzEwYlx1NzEwY1x1NzEwZFx1NzEwZVx1NzEwZlx1NzEx''@;'; + put 'put ''MVx1NzExMlx1NzExNFx1NzExN1x1NzExYlx1NzExY1x1NzExZFx1NzExZVx1NzExZlx1NzEyMFx1NzEyMVx1NzEyMlx1NzEyM1x1NzEyNFx1NzEyNVx1NzEyN1x1NzEyOFx1NzEyOVx1NzEyYVx1NzEyYlx1NzEyY1x1NzEyZFx1NzEyZVx1NzEzMlx1NzEzM1x1NzEzNFx1ZmZmZFx1NzEzNVx1''@;'; + put 'put ''NzEzN1x1NzEzOFx1NzEzOVx1NzEzYVx1NzEzYlx1NzEzY1x1NzEzZFx1NzEzZVx1NzEzZlx1NzE0MFx1NzE0MVx1NzE0Mlx1NzE0M1x1NzE0NFx1NzE0Nlx1NzE0N1x1NzE0OFx1NzE0OVx1NzE0Ylx1NzE0ZFx1NzE0Zlx1NzE1MFx1NzE1MVx1NzE1Mlx1NzE1M1x1NzE1NFx1NzE1NVx1NzE1''@;'; + put 'put ''Nlx1NzE1N1x1NzE1OFx1NzE1OVx1NzE1YVx1NzE1Ylx1NzE1ZFx1NzE1Zlx1NzE2MFx1NzE2MVx1NzE2Mlx1NzE2M1x1NzE2NVx1NzE2OVx1NzE2YVx1NzE2Ylx1NzE2Y1x1NzE2ZFx1NzE2Zlx1NzE3MFx1NzE3MVx1NzE3NFx1NzE3NVx1NzE3Nlx1NzE3N1x1NzE3OVx1NzE3Ylx1NzE3Y1x1''@;'; + put 'put ''NzE3ZVx1NzE3Zlx1NzE4MFx1NzE4MVx1NzE4Mlx1NzE4M1x1NzE4NVx1NzE4Nlx1NzE4N1x1NzE4OFx1NzE4OVx1NzE4Ylx1NzE4Y1x1NzE4ZFx1NzE4ZVx1NzE5MFx1NzE5MVx1NzE5Mlx1NzE5M1x1NzE5NVx1NzE5Nlx1NzE5N1x1NzE5YVx1NzE5Ylx1NzE5Y1x1NzE5ZFx1NzE5ZVx1NzFh''@;'; + put 'put ''MVx1NzFhMlx1NzFhM1x1NzFhNFx1NzFhNVx1NzFhNlx1NzFhN1x1NzFhOVx1NzFhYVx1NzFhYlx1NzFhZFx1NzFhZVx1NzFhZlx1NzFiMFx1NzFiMVx1NzFiMlx1NzFiNFx1NzFiNlx1NzFiN1x1NzFiOFx1NzFiYVx1NzFiYlx1NzFiY1x1NzFiZFx1NzFiZVx1NzFiZlx1NzFjMFx1NzFjMVx1''@;'; + put 'put ''NzFjMlx1NzFjNFx1NzFjNVx1NzFjNlx1NzFjN1x1NzFjOFx1NzFjOVx1NzFjYVx1NzFjYlx1NzFjY1x1NzFjZFx1NzFjZlx1NzFkMFx1NzFkMVx1NzFkMlx1NzFkM1x1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE1OV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTU5XVtFXS5jaGFyQ29kZUF0''@;'; + put 'put ''KDApJiYobWVbQlsxNTldW0VdXT00MDcwNCtFLExbNDA3MDQrRV09QlsxNTldW0VdKTtmb3IoQlsxNjBdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTcxZDZcdTcxZDdcdTcxZDhcdTcxZDlcdTcxZGFcdTcxZGJcdTcxZGNcdTcxZGRc''@;'; + put 'put ''dTcxZGVcdTcxZGZcdTcxZTFcdTcxZTJcdTcxZTNcdTcxZTRcdTcxZTZcdTcxZThcdTcxZTlcdTcxZWFcdTcxZWJcdTcxZWNcdTcxZWRcdTcxZWZcdTcxZjBcdTcxZjFcdTcxZjJcdTcxZjNcdTcxZjRcdTcxZjVcdTcxZjZcdTcxZjdcdTcxZjhcdTcxZmFcdTcxZmJcdTcxZmNcdTcxZmRcdTcx''@;'; + put 'put ''ZmVcdTcxZmZcdTcyMDBcdTcyMDFcdTcyMDJcdTcyMDNcdTcyMDRcdTcyMDVcdTcyMDdcdTcyMDhcdTcyMDlcdTcyMGFcdTcyMGJcdTcyMGNcdTcyMGRcdTcyMGVcdTcyMGZcdTcyMTBcdTcyMTFcdTcyMTJcdTcyMTNcdTcyMTRcdTcyMTVcdTcyMTZcdTcyMTdcdTcyMThcdTcyMTlcdTcyMWFc''@;'; + put 'put ''dWZmZmRcdTcyMWJcdTcyMWNcdTcyMWVcdTcyMWZcdTcyMjBcdTcyMjFcdTcyMjJcdTcyMjNcdTcyMjRcdTcyMjVcdTcyMjZcdTcyMjdcdTcyMjlcdTcyMmJcdTcyMmRcdTcyMmVcdTcyMmZcdTcyMzJcdTcyMzNcdTcyMzRcdTcyM2FcdTcyM2NcdTcyM2VcdTcyNDBcdTcyNDFcdTcyNDJcdTcy''@;'; + put 'put ''NDNcdTcyNDRcdTcyNDVcdTcyNDZcdTcyNDlcdTcyNGFcdTcyNGJcdTcyNGVcdTcyNGZcdTcyNTBcdTcyNTFcdTcyNTNcdTcyNTRcdTcyNTVcdTcyNTdcdTcyNThcdTcyNWFcdTcyNWNcdTcyNWVcdTcyNjBcdTcyNjNcdTcyNjRcdTcyNjVcdTcyNjhcdTcyNmFcdTcyNmJcdTcyNmNcdTcyNmRc''@;'; + put 'put ''dTcyNzBcdTcyNzFcdTcyNzNcdTcyNzRcdTcyNzZcdTcyNzdcdTcyNzhcdTcyN2JcdTcyN2NcdTcyN2RcdTcyODJcdTcyODNcdTcyODVcdTcyODZcdTcyODdcdTcyODhcdTcyODlcdTcyOGNcdTcyOGVcdTcyOTBcdTcyOTFcdTcyOTNcdTcyOTRcdTcyOTVcdTcyOTZcdTcyOTdcdTcyOThcdTcy''@;'; + put 'put ''OTlcdTcyOWFcdTcyOWJcdTcyOWNcdTcyOWRcdTcyOWVcdTcyYTBcdTcyYTFcdTcyYTJcdTcyYTNcdTcyYTRcdTcyYTVcdTcyYTZcdTcyYTdcdTcyYThcdTcyYTlcdTcyYWFcdTcyYWJcdTcyYWVcdTcyYjFcdTcyYjJcdTcyYjNcdTcyYjVcdTcyYmFcdTcyYmJcdTcyYmNcdTcyYmRcdTcyYmVc''@;'; + put 'put ''dTcyYmZcdTcyYzBcdTcyYzVcdTcyYzZcdTcyYzdcdTcyYzlcdTcyY2FcdTcyY2JcdTcyY2NcdTcyY2ZcdTcyZDFcdTcyZDNcdTcyZDRcdTcyZDVcdTcyZDZcdTcyZDhcdTcyZGFcdTcyZGJcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxNjBdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE2MF1b''@;'; + put 'put ''RV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTYwXVtFXV09NDA5NjArRSxMWzQwOTYwK0VdPUJbMTYwXVtFXSk7Zm9yKEJbMTYxXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUzMDAwXHUzMDAxXHUzMDAyXHhiN1x1MDJjOVx1MDJjN1x4YThcdTMwMDNcdTMwMDVcdTIwMTRcdWZmNWVcdTIwMTZcdTIwMjZcdTIwMThcdTIwMTlcdTIwMWNcdTIwMWRcdTMwMTRcdTMwMTVcdTMw''@;'; + put 'put ''MDhcdTMwMDlcdTMwMGFcdTMwMGJcdTMwMGNcdTMwMGRcdTMwMGVcdTMwMGZcdTMwMTZcdTMwMTdcdTMwMTBcdTMwMTFceGIxXHhkN1x4ZjdcdTIyMzZcdTIyMjdcdTIyMjhcdTIyMTFcdTIyMGZcdTIyMmFcdTIyMjlcdTIyMDhcdTIyMzdcdTIyMWFcdTIyYTVcdTIyMjVcdTIyMjBcdTIzMTJc''@;'; + put 'put ''dTIyOTlcdTIyMmJcdTIyMmVcdTIyNjFcdTIyNGNcdTIyNDhcdTIyM2RcdTIyMWRcdTIyNjBcdTIyNmVcdTIyNmZcdTIyNjRcdTIyNjVcdTIyMWVcdTIyMzVcdTIyMzRcdTI2NDJcdTI2NDBceGIwXHUyMDMyXHUyMDMzXHUyMTAzXHVmZjA0XHhhNFx1ZmZlMFx1ZmZlMVx1MjAzMFx4YTdcdTIx''@;'; + put 'put ''MTZcdTI2MDZcdTI2MDVcdTI1Y2JcdTI1Y2ZcdTI1Y2VcdTI1YzdcdTI1YzZcdTI1YTFcdTI1YTBcdTI1YjNcdTI1YjJcdTIwM2JcdTIxOTJcdTIxOTBcdTIxOTFcdTIxOTNcdTMwMTNcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxNjFdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE2MV1bRV0u''@;'; + put 'put ''Y2hhckNvZGVBdCgwKSYmKG1lW0JbMTYxXVtFXV09NDEyMTYrRSxMWzQxMjE2K0VdPUJbMTYxXVtFXSk7Zm9yKEJbMTYyXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUyMTcwXHUyMTcxXHUyMTcyXHUyMTczXHUyMTc0XHUyMTc1XHUyMTc2XHUyMTc3XHUyMTc4XHUyMTc5XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUyNDg4XHUyNDg5XHUyNDhhXHUy''@;'; + put 'put ''NDhiXHUyNDhjXHUyNDhkXHUyNDhlXHUyNDhmXHUyNDkwXHUyNDkxXHUyNDkyXHUyNDkzXHUyNDk0XHUyNDk1XHUyNDk2XHUyNDk3XHUyNDk4XHUyNDk5XHUyNDlhXHUyNDliXHUyNDc0XHUyNDc1XHUyNDc2XHUyNDc3XHUyNDc4XHUyNDc5XHUyNDdhXHUyNDdiXHUyNDdjXHUyNDdkXHUyNDdl''@;'; + put 'put ''XHUyNDdmXHUyNDgwXHUyNDgxXHUyNDgyXHUyNDgzXHUyNDg0XHUyNDg1XHUyNDg2XHUyNDg3XHUyNDYwXHUyNDYxXHUyNDYyXHUyNDYzXHUyNDY0XHUyNDY1XHUyNDY2XHUyNDY3XHUyNDY4XHUyNDY5XHVmZmZkXHVmZmZkXHUzMjIwXHUzMjIxXHUzMjIyXHUzMjIzXHUzMjI0XHUzMjI1XHUz''@;'; + put 'put ''MjI2XHUzMjI3XHUzMjI4XHUzMjI5XHVmZmZkXHVmZmZkXHUyMTYwXHUyMTYxXHUyMTYyXHUyMTYzXHUyMTY0XHUyMTY1XHUyMTY2XHUyMTY3XHUyMTY4XHUyMTY5XHUyMTZhXHUyMTZiXHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTYyXS5sZW5ndGg7KytFKTY1NTMz''@;'; + put 'put ''IT09QlsxNjJdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE2Ml1bRV1dPTQxNDcyK0UsTFs0MTQ3MitFXT1CWzE2Ml1bRV0pO2ZvcihCWzE2M109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmYwMVx1ZmYwMlx1ZmYwM1x1ZmZlNVx1ZmYwNVx1ZmYwNlx1ZmYwN1x1ZmYwOFx1ZmYwOVx1ZmYwYVx1ZmYwYlx1ZmYwY1x1ZmYwZFx1ZmYwZVx1ZmYwZlx1ZmYxMFx1ZmYxMVx1''@;'; + put 'put ''ZmYxMlx1ZmYxM1x1ZmYxNFx1ZmYxNVx1ZmYxNlx1ZmYxN1x1ZmYxOFx1ZmYxOVx1ZmYxYVx1ZmYxYlx1ZmYxY1x1ZmYxZFx1ZmYxZVx1ZmYxZlx1ZmYyMFx1ZmYyMVx1ZmYyMlx1ZmYyM1x1ZmYyNFx1ZmYyNVx1ZmYyNlx1ZmYyN1x1ZmYyOFx1ZmYyOVx1ZmYyYVx1ZmYyYlx1ZmYyY1x1ZmYy''@;'; + put 'put ''ZFx1ZmYyZVx1ZmYyZlx1ZmYzMFx1ZmYzMVx1ZmYzMlx1ZmYzM1x1ZmYzNFx1ZmYzNVx1ZmYzNlx1ZmYzN1x1ZmYzOFx1ZmYzOVx1ZmYzYVx1ZmYzYlx1ZmYzY1x1ZmYzZFx1ZmYzZVx1ZmYzZlx1ZmY0MFx1ZmY0MVx1ZmY0Mlx1ZmY0M1x1ZmY0NFx1ZmY0NVx1ZmY0Nlx1ZmY0N1x1ZmY0OFx1''@;'; + put 'put ''ZmY0OVx1ZmY0YVx1ZmY0Ylx1ZmY0Y1x1ZmY0ZFx1ZmY0ZVx1ZmY0Zlx1ZmY1MFx1ZmY1MVx1ZmY1Mlx1ZmY1M1x1ZmY1NFx1ZmY1NVx1ZmY1Nlx1ZmY1N1x1ZmY1OFx1ZmY1OVx1ZmY1YVx1ZmY1Ylx1ZmY1Y1x1ZmY1ZFx1ZmZlM1x1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE2M10ubGVu''@;'; + put 'put ''Z3RoOysrRSk2NTUzMyE9PUJbMTYzXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxNjNdW0VdXT00MTcyOCtFLExbNDE3MjgrRV09QlsxNjNdW0VdKTtmb3IoQlsxNjRdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTMwNDFcdTMwNDJcdTMwNDNcdTMwNDRcdTMwNDVcdTMwNDZcdTMwNDdcdTMwNDhcdTMwNDlcdTMwNGFcdTMwNGJcdTMwNGNcdTMwNGRcdTMwNGVcdTMwNGZc''@;'; + put 'put ''dTMwNTBcdTMwNTFcdTMwNTJcdTMwNTNcdTMwNTRcdTMwNTVcdTMwNTZcdTMwNTdcdTMwNThcdTMwNTlcdTMwNWFcdTMwNWJcdTMwNWNcdTMwNWRcdTMwNWVcdTMwNWZcdTMwNjBcdTMwNjFcdTMwNjJcdTMwNjNcdTMwNjRcdTMwNjVcdTMwNjZcdTMwNjdcdTMwNjhcdTMwNjlcdTMwNmFcdTMw''@;'; + put 'put ''NmJcdTMwNmNcdTMwNmRcdTMwNmVcdTMwNmZcdTMwNzBcdTMwNzFcdTMwNzJcdTMwNzNcdTMwNzRcdTMwNzVcdTMwNzZcdTMwNzdcdTMwNzhcdTMwNzlcdTMwN2FcdTMwN2JcdTMwN2NcdTMwN2RcdTMwN2VcdTMwN2ZcdTMwODBcdTMwODFcdTMwODJcdTMwODNcdTMwODRcdTMwODVcdTMwODZc''@;'; + put 'put ''dTMwODdcdTMwODhcdTMwODlcdTMwOGFcdTMwOGJcdTMwOGNcdTMwOGRcdTMwOGVcdTMwOGZcdTMwOTBcdTMwOTFcdTMwOTJcdTMwOTNcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxFPTA7''@;'; + put 'put ''RSE9QlsxNjRdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE2NF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTY0XVtFXV09NDE5ODQrRSxMWzQxOTg0K0VdPUJbMTY0XVtFXSk7Zm9yKEJbMTY1XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUzMGExXHUzMGEyXHUzMGEzXHUzMGE0XHUzMGE1XHUzMGE2XHUzMGE3XHUzMGE4XHUzMGE5XHUzMGFhXHUzMGFiXHUzMGFjXHUzMGFk''@;'; + put 'put ''XHUzMGFlXHUzMGFmXHUzMGIwXHUzMGIxXHUzMGIyXHUzMGIzXHUzMGI0XHUzMGI1XHUzMGI2XHUzMGI3XHUzMGI4XHUzMGI5XHUzMGJhXHUzMGJiXHUzMGJjXHUzMGJkXHUzMGJlXHUzMGJmXHUzMGMwXHUzMGMxXHUzMGMyXHUzMGMzXHUzMGM0XHUzMGM1XHUzMGM2XHUzMGM3XHUzMGM4XHUz''@;'; + put 'put ''MGM5XHUzMGNhXHUzMGNiXHUzMGNjXHUzMGNkXHUzMGNlXHUzMGNmXHUzMGQwXHUzMGQxXHUzMGQyXHUzMGQzXHUzMGQ0XHUzMGQ1XHUzMGQ2XHUzMGQ3XHUzMGQ4XHUzMGQ5XHUzMGRhXHUzMGRiXHUzMGRjXHUzMGRkXHUzMGRlXHUzMGRmXHUzMGUwXHUzMGUxXHUzMGUyXHUzMGUzXHUzMGU0''@;'; + put 'put ''XHUzMGU1XHUzMGU2XHUzMGU3XHUzMGU4XHUzMGU5XHUzMGVhXHUzMGViXHUzMGVjXHUzMGVkXHUzMGVlXHUzMGVmXHUzMGYwXHUzMGYxXHUzMGYyXHUzMGYzXHUzMGY0XHUzMGY1XHUzMGY2XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkIi5z''@;'; + put 'put ''cGxpdCgiIiksRT0wO0UhPUJbMTY1XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxNjVdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE2NV1bRV1dPTQyMjQwK0UsTFs0MjI0MCtFXT1CWzE2NV1bRV0pO2ZvcihCWzE2Nl09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MDM5MVx1MDM5Mlx1MDM5M1x1MDM5NFx1MDM5NVx1MDM5Nlx1MDM5N1x1MDM5OFx1MDM5OVx1MDM5YVx1MDM5''@;'; + put 'put ''Ylx1MDM5Y1x1MDM5ZFx1MDM5ZVx1MDM5Zlx1MDNhMFx1MDNhMVx1MDNhM1x1MDNhNFx1MDNhNVx1MDNhNlx1MDNhN1x1MDNhOFx1MDNhOVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MDNiMVx1MDNiMlx1MDNiM1x1MDNiNFx1MDNiNVx1MDNiNlx1''@;'; + put 'put ''MDNiN1x1MDNiOFx1MDNiOVx1MDNiYVx1MDNiYlx1MDNiY1x1MDNiZFx1MDNiZVx1MDNiZlx1MDNjMFx1MDNjMVx1MDNjM1x1MDNjNFx1MDNjNVx1MDNjNlx1MDNjN1x1MDNjOFx1MDNjOVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmUzNVx1ZmUzNlx1ZmUz''@;'; + put 'put ''OVx1ZmUzYVx1ZmUzZlx1ZmU0MFx1ZmUzZFx1ZmUzZVx1ZmU0MVx1ZmU0Mlx1ZmU0M1x1ZmU0NFx1ZmZmZFx1ZmZmZFx1ZmUzYlx1ZmUzY1x1ZmUzN1x1ZmUzOFx1ZmUzMVx1ZmZmZFx1ZmUzM1x1ZmUzNFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE2Nl0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTY2XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxNjZdW0VdXT00MjQ5NitFLExbNDI0OTYrRV09QlsxNjZdW0VdKTtmb3IoQlsxNjddPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTA0MTBcdTA0MTFcdTA0MTJcdTA0MTNcdTA0MTRcdTA0MTVcdTA0MDFcdTA0MTZcdTA0''@;'; + put 'put ''MTdcdTA0MThcdTA0MTlcdTA0MWFcdTA0MWJcdTA0MWNcdTA0MWRcdTA0MWVcdTA0MWZcdTA0MjBcdTA0MjFcdTA0MjJcdTA0MjNcdTA0MjRcdTA0MjVcdTA0MjZcdTA0MjdcdTA0MjhcdTA0MjlcdTA0MmFcdTA0MmJcdTA0MmNcdTA0MmRcdTA0MmVcdTA0MmZcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTA0MzBcdTA0MzFcdTA0MzJcdTA0MzNcdTA0MzRcdTA0MzVcdTA0NTFcdTA0MzZcdTA0MzdcdTA0MzhcdTA0MzlcdTA0M2FcdTA0M2JcdTA0M2NcdTA0M2RcdTA0''@;'; + put 'put ''M2VcdTA0M2ZcdTA0NDBcdTA0NDFcdTA0NDJcdTA0NDNcdTA0NDRcdTA0NDVcdTA0NDZcdTA0NDdcdTA0NDhcdTA0NDlcdTA0NGFcdTA0NGJcdTA0NGNcdTA0NGRcdTA0NGVcdTA0NGZcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxNjddLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE2N11bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTY3XVtFXV09NDI3NTIrRSxMWzQyNzUyK0VdPUJbMTY3XVtFXSk7Zm9yKEJbMTY4XT0iXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUwMmNhXHUwMmNiXHUwMmQ5XHUyMDEzXHUyMDE1XHUyMDI1XHUyMDM1XHUyMTA1XHUyMTA5XHUyMTk2XHUyMTk3XHUyMTk4XHUyMTk5XHUyMjE1XHUyMjFmXHUyMjIzXHUyMjUyXHUyMjY2XHUyMjY3XHUyMmJmXHUyNTUw''@;'; + put 'put ''XHUyNTUxXHUyNTUyXHUyNTUzXHUyNTU0XHUyNTU1XHUyNTU2XHUyNTU3XHUyNTU4XHUyNTU5XHUyNTVhXHUyNTViXHUyNTVjXHUyNTVkXHUyNTVlXHUyNTVmXHUyNTYwXHUyNTYxXHUyNTYyXHUyNTYzXHUyNTY0XHUyNTY1XHUyNTY2XHUyNTY3XHUyNTY4XHUyNTY5XHUyNTZhXHUyNTZiXHUy''@;'; + put 'put ''NTZjXHUyNTZkXHUyNTZlXHUyNTZmXHUyNTcwXHUyNTcxXHUyNTcyXHUyNTczXHUyNTgxXHUyNTgyXHUyNTgzXHUyNTg0XHUyNTg1XHUyNTg2XHUyNTg3XHVmZmZkXHUyNTg4XHUyNTg5XHUyNThhXHUyNThiXHUyNThjXHUyNThkXHUyNThlXHUyNThmXHUyNTkzXHUyNTk0XHUyNTk1XHUyNWJj''@;'; + put 'put ''XHUyNWJkXHUyNWUyXHUyNWUzXHUyNWU0XHUyNWU1XHUyNjA5XHUyMjk1XHUzMDEyXHUzMDFkXHUzMDFlXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUwMTAxXHhlMVx1MDFjZVx4ZTBcdTAxMTNceGU5XHUwMTFiXHhl''@;'; + put 'put ''OFx1MDEyYlx4ZWRcdTAxZDBceGVjXHUwMTRkXHhmM1x1MDFkMlx4ZjJcdTAxNmJceGZhXHUwMWQ0XHhmOVx1MDFkNlx1MDFkOFx1MDFkYVx1MDFkY1x4ZmNceGVhXHUwMjUxXHVmZmZkXHUwMTQ0XHUwMTQ4XHVmZmZkXHUwMjYxXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUzMTA1XHUzMTA2''@;'; + put 'put ''XHUzMTA3XHUzMTA4XHUzMTA5XHUzMTBhXHUzMTBiXHUzMTBjXHUzMTBkXHUzMTBlXHUzMTBmXHUzMTEwXHUzMTExXHUzMTEyXHUzMTEzXHUzMTE0XHUzMTE1XHUzMTE2XHUzMTE3XHUzMTE4XHUzMTE5XHUzMTFhXHUzMTFiXHUzMTFjXHUzMTFkXHUzMTFlXHUzMTFmXHUzMTIwXHUzMTIxXHUz''@;'; + put 'put ''MTIyXHUzMTIzXHUzMTI0XHUzMTI1XHUzMTI2XHUzMTI3XHUzMTI4XHUzMTI5XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTY4XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxNjhdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE2OF1bRV1dPTQzMDA4K0UsTFs0MzAwOCtFXT1CWzE2OF1bRV0pO2ZvcihCWzE2OV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MzAyMVx1MzAyMlx1MzAyM1x1MzAyNFx1MzAyNVx1MzAyNlx1MzAyN1x1MzAyOFx1MzAyOVx1MzJhM1x1MzM4ZVx1MzM4Zlx1MzM5Y1x1MzM5ZFx1MzM5ZVx1MzNhMVx1MzNjNFx1MzNjZVx1MzNkMVx1MzNkMlx1MzNkNVx1ZmUzMFx1ZmZl''@;'; + put 'put ''Mlx1ZmZlNFx1ZmZmZFx1MjEyMVx1MzIzMVx1ZmZmZFx1MjAxMFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MzBmY1x1MzA5Ylx1MzA5Y1x1MzBmZFx1MzBmZVx1MzAwNlx1MzA5ZFx1MzA5ZVx1ZmU0OVx1ZmU0YVx1ZmU0Ylx1ZmU0Y1x1ZmU0ZFx1ZmU0ZVx1ZmU0Zlx1ZmU1MFx1ZmU1MVx1ZmU1Mlx1''@;'; + put 'put ''ZmU1NFx1ZmU1NVx1ZmU1Nlx1ZmU1N1x1ZmU1OVx1ZmU1YVx1ZmU1Ylx1ZmU1Y1x1ZmU1ZFx1ZmU1ZVx1ZmU1Zlx1ZmU2MFx1ZmU2MVx1ZmZmZFx1ZmU2Mlx1ZmU2M1x1ZmU2NFx1ZmU2NVx1ZmU2Nlx1ZmU2OFx1ZmU2OVx1ZmU2YVx1ZmU2Ylx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MzAwN1x1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MjUwMFx1MjUwMVx1MjUwMlx1MjUwM1x1MjUwNFx1''@;'; + put 'put ''MjUwNVx1MjUwNlx1MjUwN1x1MjUwOFx1MjUwOVx1MjUwYVx1MjUwYlx1MjUwY1x1MjUwZFx1MjUwZVx1MjUwZlx1MjUxMFx1MjUxMVx1MjUxMlx1MjUxM1x1MjUxNFx1MjUxNVx1MjUxNlx1MjUxN1x1MjUxOFx1MjUxOVx1MjUxYVx1MjUxYlx1MjUxY1x1MjUxZFx1MjUxZVx1MjUxZlx1MjUy''@;'; + put 'put ''MFx1MjUyMVx1MjUyMlx1MjUyM1x1MjUyNFx1MjUyNVx1MjUyNlx1MjUyN1x1MjUyOFx1MjUyOVx1MjUyYVx1MjUyYlx1MjUyY1x1MjUyZFx1MjUyZVx1MjUyZlx1MjUzMFx1MjUzMVx1MjUzMlx1MjUzM1x1MjUzNFx1MjUzNVx1MjUzNlx1MjUzN1x1MjUzOFx1MjUzOVx1MjUzYVx1MjUzYlx1''@;'; + put 'put ''MjUzY1x1MjUzZFx1MjUzZVx1MjUzZlx1MjU0MFx1MjU0MVx1MjU0Mlx1MjU0M1x1MjU0NFx1MjU0NVx1MjU0Nlx1MjU0N1x1MjU0OFx1MjU0OVx1MjU0YVx1MjU0Ylx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE2OV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTY5XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxNjldW0VdXT00MzI2NCtFLExbNDMyNjQrRV09QlsxNjldW0VdKTtmb3IoQlsxNzBdPSJcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTcyZGNcdTcyZGRcdTcyZGZcdTcyZTJcdTcyZTNcdTcyZTRcdTcyZTVcdTcyZTZcdTcyZTdcdTcyZWFcdTcyZWJcdTcyZjVcdTcyZjZcdTcyZjlcdTcyZmRcdTcyZmVcdTcyZmZcdTczMDBcdTczMDJcdTczMDRcdTcz''@;'; + put 'put ''MDVcdTczMDZcdTczMDdcdTczMDhcdTczMDlcdTczMGJcdTczMGNcdTczMGRcdTczMGZcdTczMTBcdTczMTFcdTczMTJcdTczMTRcdTczMThcdTczMTlcdTczMWFcdTczMWZcdTczMjBcdTczMjNcdTczMjRcdTczMjZcdTczMjdcdTczMjhcdTczMmRcdTczMmZcdTczMzBcdTczMzJcdTczMzNc''@;'; + put 'put ''dTczMzVcdTczMzZcdTczM2FcdTczM2JcdTczM2NcdTczM2RcdTczNDBcdTczNDFcdTczNDJcdTczNDNcdTczNDRcdTczNDVcdTczNDZcdTczNDdcdTczNDhcdWZmZmRcdTczNDlcdTczNGFcdTczNGJcdTczNGNcdTczNGVcdTczNGZcdTczNTFcdTczNTNcdTczNTRcdTczNTVcdTczNTZcdTcz''@;'; + put 'put ''NThcdTczNTlcdTczNWFcdTczNWJcdTczNWNcdTczNWRcdTczNWVcdTczNWZcdTczNjFcdTczNjJcdTczNjNcdTczNjRcdTczNjVcdTczNjZcdTczNjdcdTczNjhcdTczNjlcdTczNmFcdTczNmJcdTczNmVcdTczNzBcdTczNzFcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxNzBdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE3MF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTcwXVtFXV09NDM1MjArRSxMWzQzNTIwK0VdPUJbMTcwXVtFXSk7Zm9yKEJbMTcxXT0i''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3MzcyXHU3MzczXHU3Mzc0XHU3Mzc1XHU3Mzc2XHU3Mzc3XHU3Mzc4XHU3Mzc5XHU3MzdhXHU3MzdiXHU3MzdjXHU3MzdkXHU3MzdmXHU3MzgwXHU3MzgxXHU3MzgyXHU3MzgzXHU3Mzg1XHU3''@;'; + put 'put ''Mzg2XHU3Mzg4XHU3MzhhXHU3MzhjXHU3MzhkXHU3MzhmXHU3MzkwXHU3MzkyXHU3MzkzXHU3Mzk0XHU3Mzk1XHU3Mzk3XHU3Mzk4XHU3Mzk5XHU3MzlhXHU3MzljXHU3MzlkXHU3MzllXHU3M2EwXHU3M2ExXHU3M2EzXHU3M2E0XHU3M2E1XHU3M2E2XHU3M2E3XHU3M2E4XHU3M2FhXHU3M2Fj''@;'; + put 'put ''XHU3M2FkXHU3M2IxXHU3M2I0XHU3M2I1XHU3M2I2XHU3M2I4XHU3M2I5XHU3M2JjXHU3M2JkXHU3M2JlXHU3M2JmXHU3M2MxXHU3M2MzXHU3M2M0XHU3M2M1XHU3M2M2XHU3M2M3XHVmZmZkXHU3M2NiXHU3M2NjXHU3M2NlXHU3M2QyXHU3M2QzXHU3M2Q0XHU3M2Q1XHU3M2Q2XHU3M2Q3XHU3''@;'; + put 'put ''M2Q4XHU3M2RhXHU3M2RiXHU3M2RjXHU3M2RkXHU3M2RmXHU3M2UxXHU3M2UyXHU3M2UzXHU3M2U0XHU3M2U2XHU3M2U4XHU3M2VhXHU3M2ViXHU3M2VjXHU3M2VlXHU3M2VmXHU3M2YwXHU3M2YxXHU3M2YzXHU3M2Y0XHU3M2Y1XHU3M2Y2XHU3M2Y3XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTcxXS5sZW5ndGg7KytFKTY1NTMzIT09QlsxNzFdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE3MV1bRV1dPTQzNzc2K0UsTFs0Mzc3NitFXT1CWzE3MV1bRV0p''@;'; + put 'put ''O2ZvcihCWzE3Ml09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NzNmOFx1NzNmOVx1NzNmYVx1NzNmYlx1NzNmY1x1NzNmZFx1NzNmZVx1NzNmZlx1NzQwMFx1NzQwMVx1NzQwMlx1NzQwNFx1NzQwN1x1NzQwOFx1NzQwYlx1NzQwY1x1''@;'; + put 'put ''NzQwZFx1NzQwZVx1NzQxMVx1NzQxMlx1NzQxM1x1NzQxNFx1NzQxNVx1NzQxNlx1NzQxN1x1NzQxOFx1NzQxOVx1NzQxY1x1NzQxZFx1NzQxZVx1NzQxZlx1NzQyMFx1NzQyMVx1NzQyM1x1NzQyNFx1NzQyN1x1NzQyOVx1NzQyYlx1NzQyZFx1NzQyZlx1NzQzMVx1NzQzMlx1NzQzN1x1NzQz''@;'; + put 'put ''OFx1NzQzOVx1NzQzYVx1NzQzYlx1NzQzZFx1NzQzZVx1NzQzZlx1NzQ0MFx1NzQ0Mlx1NzQ0M1x1NzQ0NFx1NzQ0NVx1NzQ0Nlx1NzQ0N1x1NzQ0OFx1NzQ0OVx1NzQ0YVx1NzQ0Ylx1NzQ0Y1x1NzQ0ZFx1ZmZmZFx1NzQ0ZVx1NzQ0Zlx1NzQ1MFx1NzQ1MVx1NzQ1Mlx1NzQ1M1x1NzQ1NFx1''@;'; + put 'put ''NzQ1Nlx1NzQ1OFx1NzQ1ZFx1NzQ2MFx1NzQ2MVx1NzQ2Mlx1NzQ2M1x1NzQ2NFx1NzQ2NVx1NzQ2Nlx1NzQ2N1x1NzQ2OFx1NzQ2OVx1NzQ2YVx1NzQ2Ylx1NzQ2Y1x1NzQ2ZVx1NzQ2Zlx1NzQ3MVx1NzQ3Mlx1NzQ3M1x1NzQ3NFx1NzQ3NVx1NzQ3OFx1NzQ3OVx1NzQ3YVx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE3Ml0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTcyXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxNzJdW0VdXT00NDAzMitFLExbNDQwMzIr''@;'; + put 'put ''RV09QlsxNzJdW0VdKTtmb3IoQlsxNzNdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTc0N2JcdTc0N2NcdTc0N2RcdTc0N2ZcdTc0ODJcdTc0ODRcdTc0ODVcdTc0ODZcdTc0ODhcdTc0ODlcdTc0OGFcdTc0OGNcdTc0OGRcdTc0OGZc''@;'; + put 'put ''dTc0OTFcdTc0OTJcdTc0OTNcdTc0OTRcdTc0OTVcdTc0OTZcdTc0OTdcdTc0OThcdTc0OTlcdTc0OWFcdTc0OWJcdTc0OWRcdTc0OWZcdTc0YTBcdTc0YTFcdTc0YTJcdTc0YTNcdTc0YTRcdTc0YTVcdTc0YTZcdTc0YWFcdTc0YWJcdTc0YWNcdTc0YWRcdTc0YWVcdTc0YWZcdTc0YjBcdTc0''@;'; + put 'put ''YjFcdTc0YjJcdTc0YjNcdTc0YjRcdTc0YjVcdTc0YjZcdTc0YjdcdTc0YjhcdTc0YjlcdTc0YmJcdTc0YmNcdTc0YmRcdTc0YmVcdTc0YmZcdTc0YzBcdTc0YzFcdTc0YzJcdTc0YzNcdTc0YzRcdTc0YzVcdTc0YzZcdTc0YzdcdWZmZmRcdTc0YzhcdTc0YzlcdTc0Y2FcdTc0Y2JcdTc0Y2Nc''@;'; + put 'put ''dTc0Y2RcdTc0Y2VcdTc0Y2ZcdTc0ZDBcdTc0ZDFcdTc0ZDNcdTc0ZDRcdTc0ZDVcdTc0ZDZcdTc0ZDdcdTc0ZDhcdTc0ZDlcdTc0ZGFcdTc0ZGJcdTc0ZGRcdTc0ZGZcdTc0ZTFcdTc0ZTVcdTc0ZTdcdTc0ZThcdTc0ZTlcdTc0ZWFcdTc0ZWJcdTc0ZWNcdTc0ZWRcdTc0ZjBcdTc0ZjFcdTc0''@;'; + put 'put ''ZjJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxNzNdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE3M11bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTczXVtFXV09NDQy''@;'; + put 'put ''ODgrRSxMWzQ0Mjg4K0VdPUJbMTczXVtFXSk7Zm9yKEJbMTc0XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3NGYzXHU3NGY1XHU3NGY4XHU3NGY5XHU3NGZhXHU3NGZiXHU3NGZjXHU3NGZkXHU3NGZlXHU3NTAwXHU3NTAxXHU3NTAy''@;'; + put 'put ''XHU3NTAzXHU3NTA1XHU3NTA2XHU3NTA3XHU3NTA4XHU3NTA5XHU3NTBhXHU3NTBiXHU3NTBjXHU3NTBlXHU3NTEwXHU3NTEyXHU3NTE0XHU3NTE1XHU3NTE2XHU3NTE3XHU3NTFiXHU3NTFkXHU3NTFlXHU3NTIwXHU3NTIxXHU3NTIyXHU3NTIzXHU3NTI0XHU3NTI2XHU3NTI3XHU3NTJhXHU3''@;'; + put 'put ''NTJlXHU3NTM0XHU3NTM2XHU3NTM5XHU3NTNjXHU3NTNkXHU3NTNmXHU3NTQxXHU3NTQyXHU3NTQzXHU3NTQ0XHU3NTQ2XHU3NTQ3XHU3NTQ5XHU3NTRhXHU3NTRkXHU3NTUwXHU3NTUxXHU3NTUyXHU3NTUzXHU3NTU1XHU3NTU2XHU3NTU3XHU3NTU4XHVmZmZkXHU3NTVkXHU3NTVlXHU3NTVm''@;'; + put 'put ''XHU3NTYwXHU3NTYxXHU3NTYyXHU3NTYzXHU3NTY0XHU3NTY3XHU3NTY4XHU3NTY5XHU3NTZiXHU3NTZjXHU3NTZkXHU3NTZlXHU3NTZmXHU3NTcwXHU3NTcxXHU3NTczXHU3NTc1XHU3NTc2XHU3NTc3XHU3NTdhXHU3NTdiXHU3NTdjXHU3NTdkXHU3NTdlXHU3NTgwXHU3NTgxXHU3NTgyXHU3''@;'; + put 'put ''NTg0XHU3NTg1XHU3NTg3XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTc0XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxNzRdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtC''@;'; + put 'put ''WzE3NF1bRV1dPTQ0NTQ0K0UsTFs0NDU0NCtFXT1CWzE3NF1bRV0pO2ZvcihCWzE3NV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NzU4OFx1NzU4OVx1NzU4YVx1NzU4Y1x1NzU4ZFx1NzU4ZVx1NzU5MFx1NzU5M1x1NzU5NVx1NzU5''@;'; + put 'put ''OFx1NzU5Ylx1NzU5Y1x1NzU5ZVx1NzVhMlx1NzVhNlx1NzVhN1x1NzVhOFx1NzVhOVx1NzVhYVx1NzVhZFx1NzViNlx1NzViN1x1NzViYVx1NzViYlx1NzViZlx1NzVjMFx1NzVjMVx1NzVjNlx1NzVjYlx1NzVjY1x1NzVjZVx1NzVjZlx1NzVkMFx1NzVkMVx1NzVkM1x1NzVkN1x1NzVkOVx1''@;'; + put 'put ''NzVkYVx1NzVkY1x1NzVkZFx1NzVkZlx1NzVlMFx1NzVlMVx1NzVlNVx1NzVlOVx1NzVlY1x1NzVlZFx1NzVlZVx1NzVlZlx1NzVmMlx1NzVmM1x1NzVmNVx1NzVmNlx1NzVmN1x1NzVmOFx1NzVmYVx1NzVmYlx1NzVmZFx1NzVmZVx1NzYwMlx1NzYwNFx1NzYwNlx1NzYwN1x1ZmZmZFx1NzYw''@;'; + put 'put ''OFx1NzYwOVx1NzYwYlx1NzYwZFx1NzYwZVx1NzYwZlx1NzYxMVx1NzYxMlx1NzYxM1x1NzYxNFx1NzYxNlx1NzYxYVx1NzYxY1x1NzYxZFx1NzYxZVx1NzYyMVx1NzYyM1x1NzYyN1x1NzYyOFx1NzYyY1x1NzYyZVx1NzYyZlx1NzYzMVx1NzYzMlx1NzYzNlx1NzYzN1x1NzYzOVx1NzYzYVx1''@;'; + put 'put ''NzYzYlx1NzYzZFx1NzY0MVx1NzY0Mlx1NzY0NFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE3NV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTc1XVtFXS5jaGFyQ29k''@;'; + put 'put ''ZUF0KDApJiYobWVbQlsxNzVdW0VdXT00NDgwMCtFLExbNDQ4MDArRV09QlsxNzVdW0VdKTtmb3IoQlsxNzZdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTc2NDVcdTc2NDZcdTc2NDdcdTc2NDhcdTc2NDlcdTc2NGFcdTc2NGJcdTc2''@;'; + put 'put ''NGVcdTc2NGZcdTc2NTBcdTc2NTFcdTc2NTJcdTc2NTNcdTc2NTVcdTc2NTdcdTc2NThcdTc2NTlcdTc2NWFcdTc2NWJcdTc2NWRcdTc2NWZcdTc2NjBcdTc2NjFcdTc2NjJcdTc2NjRcdTc2NjVcdTc2NjZcdTc2NjdcdTc2NjhcdTc2NjlcdTc2NmFcdTc2NmNcdTc2NmRcdTc2NmVcdTc2NzBc''@;'; + put 'put ''dTc2NzFcdTc2NzJcdTc2NzNcdTc2NzRcdTc2NzVcdTc2NzZcdTc2NzdcdTc2NzlcdTc2N2FcdTc2N2NcdTc2N2ZcdTc2ODBcdTc2ODFcdTc2ODNcdTc2ODVcdTc2ODlcdTc2OGFcdTc2OGNcdTc2OGRcdTc2OGZcdTc2OTBcdTc2OTJcdTc2OTRcdTc2OTVcdTc2OTdcdTc2OThcdTc2OWFcdTc2''@;'; + put 'put ''OWJcdWZmZmRcdTc2OWNcdTc2OWRcdTc2OWVcdTc2OWZcdTc2YTBcdTc2YTFcdTc2YTJcdTc2YTNcdTc2YTVcdTc2YTZcdTc2YTdcdTc2YThcdTc2YTlcdTc2YWFcdTc2YWJcdTc2YWNcdTc2YWRcdTc2YWZcdTc2YjBcdTc2YjNcdTc2YjVcdTc2YjZcdTc2YjdcdTc2YjhcdTc2YjlcdTc2YmFc''@;'; + put 'put ''dTc2YmJcdTc2YmNcdTc2YmRcdTc2YmVcdTc2YzBcdTc2YzFcdTc2YzNcdTU1NGFcdTk2M2ZcdTU3YzNcdTYzMjhcdTU0Y2VcdTU1MDlcdTU0YzBcdTc2OTFcdTc2NGNcdTg1M2NcdTc3ZWVcdTgyN2VcdTc4OGRcdTcyMzFcdTk2OThcdTk3OGRcdTZjMjhcdTViODlcdTRmZmFcdTYzMDlcdTY2''@;'; + put 'put ''OTdcdTVjYjhcdTgwZmFcdTY4NDhcdTgwYWVcdTY2MDJcdTc2Y2VcdTUxZjlcdTY1NTZcdTcxYWNcdTdmZjFcdTg4ODRcdTUwYjJcdTU5NjVcdTYxY2FcdTZmYjNcdTgyYWRcdTYzNGNcdTYyNTJcdTUzZWRcdTU0MjdcdTdiMDZcdTUxNmJcdTc1YTRcdTVkZjRcdTYyZDRcdThkY2JcdTk3NzZc''@;'; + put 'put ''dTYyOGFcdTgwMTlcdTU3NWRcdTk3MzhcdTdmNjJcdTcyMzhcdTc2N2RcdTY3Y2ZcdTc2N2VcdTY0NDZcdTRmNzBcdThkMjVcdTYyZGNcdTdhMTdcdTY1OTFcdTczZWRcdTY0MmNcdTYyNzNcdTgyMmNcdTk4ODFcdTY3N2ZcdTcyNDhcdTYyNmVcdTYyY2NcdTRmMzRcdTc0ZTNcdTUzNGFcdTUy''@;'; + put 'put ''OWVcdTdlY2FcdTkwYTZcdTVlMmVcdTY4ODZcdTY5OWNcdTgxODBcdTdlZDFcdTY4ZDJcdTc4YzVcdTg2OGNcdTk1NTFcdTUwOGRcdThjMjRcdTgyZGVcdTgwZGVcdTUzMDVcdTg5MTJcdTUyNjVcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxNzZdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE3''@;'; + put 'put ''Nl1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTc2XVtFXV09NDUwNTYrRSxMWzQ1MDU2K0VdPUJbMTc2XVtFXSk7Zm9yKEJbMTc3XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3NmM0XHU3NmM3XHU3NmM5XHU3NmNiXHU3NmNjXHU3''@;'; + put 'put ''NmQzXHU3NmQ1XHU3NmQ5XHU3NmRhXHU3NmRjXHU3NmRkXHU3NmRlXHU3NmUwXHU3NmUxXHU3NmUyXHU3NmUzXHU3NmU0XHU3NmU2XHU3NmU3XHU3NmU4XHU3NmU5XHU3NmVhXHU3NmViXHU3NmVjXHU3NmVkXHU3NmYwXHU3NmYzXHU3NmY1XHU3NmY2XHU3NmY3XHU3NmZhXHU3NmZiXHU3NmZk''@;'; + put 'put ''XHU3NmZmXHU3NzAwXHU3NzAyXHU3NzAzXHU3NzA1XHU3NzA2XHU3NzBhXHU3NzBjXHU3NzBlXHU3NzBmXHU3NzEwXHU3NzExXHU3NzEyXHU3NzEzXHU3NzE0XHU3NzE1XHU3NzE2XHU3NzE3XHU3NzE4XHU3NzFiXHU3NzFjXHU3NzFkXHU3NzFlXHU3NzIxXHU3NzIzXHU3NzI0XHU3NzI1XHU3''@;'; + put 'put ''NzI3XHU3NzJhXHU3NzJiXHVmZmZkXHU3NzJjXHU3NzJlXHU3NzMwXHU3NzMxXHU3NzMyXHU3NzMzXHU3NzM0XHU3NzM5XHU3NzNiXHU3NzNkXHU3NzNlXHU3NzNmXHU3NzQyXHU3NzQ0XHU3NzQ1XHU3NzQ2XHU3NzQ4XHU3NzQ5XHU3NzRhXHU3NzRiXHU3NzRjXHU3NzRkXHU3NzRlXHU3NzRm''@;'; + put 'put ''XHU3NzUyXHU3NzUzXHU3NzU0XHU3NzU1XHU3NzU2XHU3NzU3XHU3NzU4XHU3NzU5XHU3NzVjXHU4NTg0XHU5NmY5XHU0ZmRkXHU1ODIxXHU5OTcxXHU1YjlkXHU2MmIxXHU2MmE1XHU2NmI0XHU4Yzc5XHU5YzhkXHU3MjA2XHU2NzZmXHU3ODkxXHU2MGIyXHU1MzUxXHU1MzE3XHU4Zjg4XHU4''@;'; + put 'put ''MGNjXHU4ZDFkXHU5NGExXHU1MDBkXHU3MmM4XHU1OTA3XHU2MGViXHU3MTE5XHU4OGFiXHU1OTU0XHU4MmVmXHU2NzJjXHU3YjI4XHU1ZDI5XHU3ZWY3XHU3NTJkXHU2Y2Y1XHU4ZTY2XHU4ZmY4XHU5MDNjXHU5ZjNiXHU2YmQ0XHU5MTE5XHU3YjE0XHU1ZjdjXHU3OGE3XHU4NGQ2XHU4NTNk''@;'; + put 'put ''XHU2YmQ1XHU2YmQ5XHU2YmQ2XHU1ZTAxXHU1ZTg3XHU3NWY5XHU5NWVkXHU2NTVkXHU1ZjBhXHU1ZmM1XHU4ZjlmXHU1OGMxXHU4MWMyXHU5MDdmXHU5NjViXHU5N2FkXHU4ZmI5XHU3ZjE2XHU4ZDJjXHU2MjQxXHU0ZmJmXHU1M2Q4XHU1MzVlXHU4ZmE4XHU4ZmE5XHU4ZmFiXHU5MDRkXHU2''@;'; + put 'put ''ODA3XHU1ZjZhXHU4MTk4XHU4ODY4XHU5Y2Q2XHU2MThiXHU1MjJiXHU3NjJhXHU1ZjZjXHU2NThjXHU2ZmQyXHU2ZWU4XHU1YmJlXHU2NDQ4XHU1MTc1XHU1MWIwXHU2N2M0XHU0ZTE5XHU3OWM5XHU5OTdjXHU3MGIzXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTc3XS5sZW5ndGg7KytF''@;'; + put 'put ''KTY1NTMzIT09QlsxNzddW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE3N11bRV1dPTQ1MzEyK0UsTFs0NTMxMitFXT1CWzE3N11bRV0pO2ZvcihCWzE3OF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1Nzc1ZFx1Nzc1ZVx1Nzc1Zlx1''@;'; + put 'put ''Nzc2MFx1Nzc2NFx1Nzc2N1x1Nzc2OVx1Nzc2YVx1Nzc2ZFx1Nzc2ZVx1Nzc2Zlx1Nzc3MFx1Nzc3MVx1Nzc3Mlx1Nzc3M1x1Nzc3NFx1Nzc3NVx1Nzc3Nlx1Nzc3N1x1Nzc3OFx1Nzc3YVx1Nzc3Ylx1Nzc3Y1x1Nzc4MVx1Nzc4Mlx1Nzc4M1x1Nzc4Nlx1Nzc4N1x1Nzc4OFx1Nzc4OVx1Nzc4''@;'; + put 'put ''YVx1Nzc4Ylx1Nzc4Zlx1Nzc5MFx1Nzc5M1x1Nzc5NFx1Nzc5NVx1Nzc5Nlx1Nzc5N1x1Nzc5OFx1Nzc5OVx1Nzc5YVx1Nzc5Ylx1Nzc5Y1x1Nzc5ZFx1Nzc5ZVx1NzdhMVx1NzdhM1x1NzdhNFx1NzdhNlx1NzdhOFx1NzdhYlx1NzdhZFx1NzdhZVx1NzdhZlx1NzdiMVx1NzdiMlx1NzdiNFx1''@;'; + put 'put ''NzdiNlx1NzdiN1x1NzdiOFx1NzdiOVx1NzdiYVx1ZmZmZFx1NzdiY1x1NzdiZVx1NzdjMFx1NzdjMVx1NzdjMlx1NzdjM1x1NzdjNFx1NzdjNVx1NzdjNlx1NzdjN1x1NzdjOFx1NzdjOVx1NzdjYVx1NzdjYlx1NzdjY1x1NzdjZVx1NzdjZlx1NzdkMFx1NzdkMVx1NzdkMlx1NzdkM1x1Nzdk''@;'; + put 'put ''NFx1NzdkNVx1NzdkNlx1NzdkOFx1NzdkOVx1NzdkYVx1NzdkZFx1NzdkZVx1NzdkZlx1NzdlMFx1NzdlMVx1NzdlNFx1NzVjNVx1NWU3Nlx1NzNiYlx1ODNlMFx1NjRhZFx1NjJlOFx1OTRiNVx1NmNlMlx1NTM1YVx1NTJjM1x1NjQwZlx1OTRjMlx1N2I5NFx1NGYyZlx1NWUxYlx1ODIzNlx1''@;'; + put 'put ''ODExNlx1ODE4YVx1NmUyNFx1NmNjYVx1OWE3M1x1NjM1NVx1NTM1Y1x1NTRmYVx1ODg2NVx1NTdlMFx1NGUwZFx1NWUwM1x1NmI2NVx1N2MzZlx1OTBlOFx1NjAxNlx1NjRlNlx1NzMxY1x1ODhjMVx1Njc1MFx1NjI0ZFx1OGQyMlx1Nzc2Y1x1OGUyOVx1OTFjN1x1NWY2OVx1ODNkY1x1ODUy''@;'; + put 'put ''MVx1OTkxMFx1NTNjMlx1ODY5NVx1NmI4Ylx1NjBlZFx1NjBlOFx1NzA3Zlx1ODJjZFx1ODIzMVx1NGVkM1x1NmNhN1x1ODVjZlx1NjRjZFx1N2NkOVx1NjlmZFx1NjZmOVx1ODM0OVx1NTM5NVx1N2I1Nlx1NGZhN1x1NTE4Y1x1NmQ0Ylx1NWM0Mlx1OGU2ZFx1NjNkMlx1NTNjOVx1ODMyY1x1''@;'; + put 'put ''ODMzNlx1NjdlNVx1NzhiNFx1NjQzZFx1NWJkZlx1NWM5NFx1NWRlZVx1OGJlN1x1NjJjNlx1NjdmNFx1OGM3YVx1NjQwMFx1NjNiYVx1ODc0OVx1OTk4Ylx1OGMxN1x1N2YyMFx1OTRmMlx1NGVhN1x1OTYxMFx1OThhNFx1NjYwY1x1NzMxNlx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE3''@;'; + put 'put ''OF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTc4XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxNzhdW0VdXT00NTU2OCtFLExbNDU1NjgrRV09QlsxNzhdW0VdKTtmb3IoQlsxNzldPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTc3ZTZc''@;'; + put 'put ''dTc3ZThcdTc3ZWFcdTc3ZWZcdTc3ZjBcdTc3ZjFcdTc3ZjJcdTc3ZjRcdTc3ZjVcdTc3ZjdcdTc3ZjlcdTc3ZmFcdTc3ZmJcdTc3ZmNcdTc4MDNcdTc4MDRcdTc4MDVcdTc4MDZcdTc4MDdcdTc4MDhcdTc4MGFcdTc4MGJcdTc4MGVcdTc4MGZcdTc4MTBcdTc4MTNcdTc4MTVcdTc4MTlcdTc4''@;'; + put 'put ''MWJcdTc4MWVcdTc4MjBcdTc4MjFcdTc4MjJcdTc4MjRcdTc4MjhcdTc4MmFcdTc4MmJcdTc4MmVcdTc4MmZcdTc4MzFcdTc4MzJcdTc4MzNcdTc4MzVcdTc4MzZcdTc4M2RcdTc4M2ZcdTc4NDFcdTc4NDJcdTc4NDNcdTc4NDRcdTc4NDZcdTc4NDhcdTc4NDlcdTc4NGFcdTc4NGJcdTc4NGRc''@;'; + put 'put ''dTc4NGZcdTc4NTFcdTc4NTNcdTc4NTRcdTc4NThcdTc4NTlcdTc4NWFcdWZmZmRcdTc4NWJcdTc4NWNcdTc4NWVcdTc4NWZcdTc4NjBcdTc4NjFcdTc4NjJcdTc4NjNcdTc4NjRcdTc4NjVcdTc4NjZcdTc4NjdcdTc4NjhcdTc4NjlcdTc4NmZcdTc4NzBcdTc4NzFcdTc4NzJcdTc4NzNcdTc4''@;'; + put 'put ''NzRcdTc4NzVcdTc4NzZcdTc4NzhcdTc4NzlcdTc4N2FcdTc4N2JcdTc4N2RcdTc4N2VcdTc4N2ZcdTc4ODBcdTc4ODFcdTc4ODJcdTc4ODNcdTU3M2FcdTVjMWRcdTVlMzhcdTk1N2ZcdTUwN2ZcdTgwYTBcdTUzODJcdTY1NWVcdTc1NDVcdTU1MzFcdTUwMjFcdThkODVcdTYyODRcdTk0OWVc''@;'; + put 'put ''dTY3MWRcdTU2MzJcdTZmNmVcdTVkZTJcdTU0MzVcdTcwOTJcdThmNjZcdTYyNmZcdTY0YTRcdTYzYTNcdTVmN2JcdTZmODhcdTkwZjRcdTgxZTNcdThmYjBcdTVjMThcdTY2NjhcdTVmZjFcdTZjODlcdTk2NDhcdThkODFcdTg4NmNcdTY0OTFcdTc5ZjBcdTU3Y2VcdTZhNTlcdTYyMTBcdTU0''@;'; + put 'put ''NDhcdTRlNThcdTdhMGJcdTYwZTlcdTZmODRcdThiZGFcdTYyN2ZcdTkwMWVcdTlhOGJcdTc5ZTRcdTU0MDNcdTc1ZjRcdTYzMDFcdTUzMTlcdTZjNjBcdThmZGZcdTVmMWJcdTlhNzBcdTgwM2JcdTlmN2ZcdTRmODhcdTVjM2FcdThkNjRcdTdmYzVcdTY1YTVcdTcwYmRcdTUxNDVcdTUxYjJc''@;'; + put 'put ''dTg2NmJcdTVkMDdcdTViYTBcdTYyYmRcdTkxNmNcdTc1NzRcdThlMGNcdTdhMjBcdTYxMDFcdTdiNzlcdTRlYzdcdTdlZjhcdTc3ODVcdTRlMTFcdTgxZWRcdTUyMWRcdTUxZmFcdTZhNzFcdTUzYThcdThlODdcdTk1MDRcdTk2Y2ZcdTZlYzFcdTk2NjRcdTY5NWFcdWZmZmQiLnNwbGl0KCIi''@;'; + put 'put ''KSxFPTA7RSE9QlsxNzldLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE3OV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTc5XVtFXV09NDU4MjQrRSxMWzQ1ODI0K0VdPUJbMTc5XVtFXSk7Zm9yKEJbMTgwXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHU3ODg0XHU3ODg1XHU3ODg2XHU3ODg4XHU3ODhhXHU3ODhiXHU3ODhmXHU3ODkwXHU3ODkyXHU3ODk0XHU3ODk1XHU3ODk2XHU3ODk5XHU3ODlkXHU3ODllXHU3OGEwXHU3OGEyXHU3OGE0XHU3OGE2XHU3OGE4XHU3OGE5XHU3OGFhXHU3OGFiXHU3OGFjXHU3OGFkXHU3OGFlXHU3''@;'; + put 'put ''OGFmXHU3OGI1XHU3OGI2XHU3OGI3XHU3OGI4XHU3OGJhXHU3OGJiXHU3OGJjXHU3OGJkXHU3OGJmXHU3OGMwXHU3OGMyXHU3OGMzXHU3OGM0XHU3OGM2XHU3OGM3XHU3OGM4XHU3OGNjXHU3OGNkXHU3OGNlXHU3OGNmXHU3OGQxXHU3OGQyXHU3OGQzXHU3OGQ2XHU3OGQ3XHU3OGQ4XHU3OGRh''@;'; + put 'put ''XHU3OGRiXHU3OGRjXHU3OGRkXHU3OGRlXHU3OGRmXHU3OGUwXHU3OGUxXHU3OGUyXHU3OGUzXHVmZmZkXHU3OGU0XHU3OGU1XHU3OGU2XHU3OGU3XHU3OGU5XHU3OGVhXHU3OGViXHU3OGVkXHU3OGVlXHU3OGVmXHU3OGYwXHU3OGYxXHU3OGYzXHU3OGY1XHU3OGY2XHU3OGY4XHU3OGY5XHU3''@;'; + put 'put ''OGZiXHU3OGZjXHU3OGZkXHU3OGZlXHU3OGZmXHU3OTAwXHU3OTAyXHU3OTAzXHU3OTA0XHU3OTA2XHU3OTA3XHU3OTA4XHU3OTA5XHU3OTBhXHU3OTBiXHU3OTBjXHU3ODQwXHU1MGE4XHU3N2Q3XHU2NDEwXHU4OWU2XHU1OTA0XHU2M2UzXHU1ZGRkXHU3YTdmXHU2OTNkXHU0ZjIwXHU4MjM5''@;'; + put 'put ''XHU1NTk4XHU0ZTMyXHU3NWFlXHU3YTk3XHU1ZTYyXHU1ZThhXHU5NWVmXHU1MjFiXHU1NDM5XHU3MDhhXHU2Mzc2XHU5NTI0XHU1NzgyXHU2NjI1XHU2OTNmXHU5MTg3XHU1NTA3XHU2ZGYzXHU3ZWFmXHU4ODIyXHU2MjMzXHU3ZWYwXHU3NWI1XHU4MzI4XHU3OGMxXHU5NmNjXHU4ZjllXHU2''@;'; + put 'put ''MTQ4XHU3NGY3XHU4YmNkXHU2YjY0XHU1MjNhXHU4ZDUwXHU2YjIxXHU4MDZhXHU4NDcxXHU1NmYxXHU1MzA2XHU0ZWNlXHU0ZTFiXHU1MWQxXHU3Yzk3XHU5MThiXHU3YzA3XHU0ZmMzXHU4ZTdmXHU3YmUxXHU3YTljXHU2NDY3XHU1ZDE0XHU1MGFjXHU4MTA2XHU3NjAxXHU3Y2I5XHU2ZGVj''@;'; + put 'put ''XHU3ZmUwXHU2NzUxXHU1YjU4XHU1YmY4XHU3OGNiXHU2NGFlXHU2NDEzXHU2M2FhXHU2MzJiXHU5NTE5XHU2NDJkXHU4ZmJlXHU3YjU0XHU3NjI5XHU2MjUzXHU1OTI3XHU1NDQ2XHU2Yjc5XHU1MGEzXHU2MjM0XHU1ZTI2XHU2Yjg2XHU0ZWUzXHU4ZDM3XHU4ODhiXHU1Zjg1XHU5MDJlXHVm''@;'; + put 'put ''ZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTgwXS5sZW5ndGg7KytFKTY1NTMzIT09QlsxODBdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE4MF1bRV1dPTQ2MDgwK0UsTFs0NjA4MCtFXT1CWzE4MF1bRV0pO2ZvcihCWzE4MV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NzkwZFx1NzkwZVx1NzkwZlx1NzkxMFx1NzkxMVx1NzkxMlx1NzkxNFx1NzkxNVx1NzkxNlx1NzkxN1x1NzkxOFx1NzkxOVx1NzkxYVx1NzkxYlx1NzkxY1x1NzkxZFx1NzkxZlx1NzkyMFx1NzkyMVx1NzkyMlx1NzkyM1x1NzkyNVx1NzkyNlx1NzkyN1x1''@;'; + put 'put ''NzkyOFx1NzkyOVx1NzkyYVx1NzkyYlx1NzkyY1x1NzkyZFx1NzkyZVx1NzkyZlx1NzkzMFx1NzkzMVx1NzkzMlx1NzkzM1x1NzkzNVx1NzkzNlx1NzkzN1x1NzkzOFx1NzkzOVx1NzkzZFx1NzkzZlx1Nzk0Mlx1Nzk0M1x1Nzk0NFx1Nzk0NVx1Nzk0N1x1Nzk0YVx1Nzk0Ylx1Nzk0Y1x1Nzk0''@;'; + put 'put ''ZFx1Nzk0ZVx1Nzk0Zlx1Nzk1MFx1Nzk1MVx1Nzk1Mlx1Nzk1NFx1Nzk1NVx1Nzk1OFx1Nzk1OVx1Nzk2MVx1Nzk2M1x1ZmZmZFx1Nzk2NFx1Nzk2Nlx1Nzk2OVx1Nzk2YVx1Nzk2Ylx1Nzk2Y1x1Nzk2ZVx1Nzk3MFx1Nzk3MVx1Nzk3Mlx1Nzk3M1x1Nzk3NFx1Nzk3NVx1Nzk3Nlx1Nzk3OVx1''@;'; + put 'put ''Nzk3Ylx1Nzk3Y1x1Nzk3ZFx1Nzk3ZVx1Nzk3Zlx1Nzk4Mlx1Nzk4M1x1Nzk4Nlx1Nzk4N1x1Nzk4OFx1Nzk4OVx1Nzk4Ylx1Nzk4Y1x1Nzk4ZFx1Nzk4ZVx1Nzk5MFx1Nzk5MVx1Nzk5Mlx1NjAyMFx1ODAzZFx1NjJjNVx1NGUzOVx1NTM1NVx1OTBmOFx1NjNiOFx1ODBjNlx1NjVlNlx1NmMy''@;'; + put 'put ''ZVx1NGY0Nlx1NjBlZVx1NmRlMVx1OGJkZVx1NWYzOVx1ODZjYlx1NWY1M1x1NjMyMVx1NTE1YVx1ODM2MVx1Njg2M1x1NTIwMFx1NjM2M1x1OGU0OFx1NTAxMlx1NWM5Ylx1Nzk3N1x1NWJmY1x1NTIzMFx1N2EzYlx1NjBiY1x1OTA1M1x1NzZkN1x1NWZiN1x1NWY5N1x1NzY4NFx1OGU2Y1x1''@;'; + put 'put ''NzA2Zlx1NzY3Ylx1N2I0OVx1NzdhYVx1NTFmM1x1OTA5M1x1NTgyNFx1NGY0ZVx1NmVmNFx1OGZlYVx1NjU0Y1x1N2IxYlx1NzJjNFx1NmRhNFx1N2ZkZlx1NWFlMVx1NjJiNVx1NWU5NVx1NTczMFx1ODQ4Mlx1N2IyY1x1NWUxZFx1NWYxZlx1OTAxMlx1N2YxNFx1OThhMFx1NjM4Mlx1NmVj''@;'; + put 'put ''N1x1Nzg5OFx1NzBiOVx1NTE3OFx1OTc1Ylx1NTdhYlx1NzUzNVx1NGY0M1x1NzUzOFx1NWU5N1x1NjBlNlx1NTk2MFx1NmRjMFx1NmJiZlx1Nzg4OVx1NTNmY1x1OTZkNVx1NTFjYlx1NTIwMVx1NjM4OVx1NTQwYVx1OTQ5M1x1OGMwM1x1OGRjY1x1NzIzOVx1Nzg5Zlx1ODc3Nlx1OGZlZFx1''@;'; + put 'put ''OGMwZFx1NTNlMFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE4MV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTgxXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxODFdW0VdXT00NjMzNitFLExbNDYzMzYrRV09QlsxODFdW0VdKTtmb3IoQlsxODJdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTc5OTNcdTc5OTRcdTc5OTVcdTc5OTZcdTc5OTdcdTc5OThcdTc5OTlcdTc5OWJcdTc5OWNcdTc5OWRcdTc5OWVcdTc5OWZcdTc5YTBcdTc5YTFcdTc5YTJcdTc5YTNcdTc5YTRcdTc5YTVcdTc5YTZcdTc5YThcdTc5YTlcdTc5YWFc''@;'; + put 'put ''dTc5YWJcdTc5YWNcdTc5YWRcdTc5YWVcdTc5YWZcdTc5YjBcdTc5YjFcdTc5YjJcdTc5YjRcdTc5YjVcdTc5YjZcdTc5YjdcdTc5YjhcdTc5YmNcdTc5YmZcdTc5YzJcdTc5YzRcdTc5YzVcdTc5YzdcdTc5YzhcdTc5Y2FcdTc5Y2NcdTc5Y2VcdTc5Y2ZcdTc5ZDBcdTc5ZDNcdTc5ZDRcdTc5''@;'; + put 'put ''ZDZcdTc5ZDdcdTc5ZDlcdTc5ZGFcdTc5ZGJcdTc5ZGNcdTc5ZGRcdTc5ZGVcdTc5ZTBcdTc5ZTFcdTc5ZTJcdTc5ZTVcdTc5ZThcdTc5ZWFcdWZmZmRcdTc5ZWNcdTc5ZWVcdTc5ZjFcdTc5ZjJcdTc5ZjNcdTc5ZjRcdTc5ZjVcdTc5ZjZcdTc5ZjdcdTc5ZjlcdTc5ZmFcdTc5ZmNcdTc5ZmVc''@;'; + put 'put ''dTc5ZmZcdTdhMDFcdTdhMDRcdTdhMDVcdTdhMDdcdTdhMDhcdTdhMDlcdTdhMGFcdTdhMGNcdTdhMGZcdTdhMTBcdTdhMTFcdTdhMTJcdTdhMTNcdTdhMTVcdTdhMTZcdTdhMThcdTdhMTlcdTdhMWJcdTdhMWNcdTRlMDFcdTc2ZWZcdTUzZWVcdTk0ODlcdTk4NzZcdTlmMGVcdTk1MmRcdTVi''@;'; + put 'put ''OWFcdThiYTJcdTRlMjJcdTRlMWNcdTUxYWNcdTg0NjNcdTYxYzJcdTUyYThcdTY4MGJcdTRmOTdcdTYwNmJcdTUxYmJcdTZkMWVcdTUxNWNcdTYyOTZcdTY1OTdcdTk2NjFcdThjNDZcdTkwMTdcdTc1ZDhcdTkwZmRcdTc3NjNcdTZiZDJcdTcyOGFcdTcyZWNcdThiZmJcdTU4MzVcdTc3Nzlc''@;'; + put 'put ''dThkNGNcdTY3NWNcdTk1NDBcdTgwOWFcdTVlYTZcdTZlMjFcdTU5OTJcdTdhZWZcdTc3ZWRcdTk1M2JcdTZiYjVcdTY1YWRcdTdmMGVcdTU4MDZcdTUxNTFcdTk2MWZcdTViZjlcdTU4YTlcdTU0MjhcdThlNzJcdTY1NjZcdTk4N2ZcdTU2ZTRcdTk0OWRcdTc2ZmVcdTkwNDFcdTYzODdcdTU0''@;'; + put 'put ''YzZcdTU5MWFcdTU5M2FcdTU3OWJcdThlYjJcdTY3MzVcdThkZmFcdTgyMzVcdTUyNDFcdTYwZjBcdTU4MTVcdTg2ZmVcdTVjZThcdTllNDVcdTRmYzRcdTk4OWRcdThiYjlcdTVhMjVcdTYwNzZcdTUzODRcdTYyN2NcdTkwNGZcdTkxMDJcdTk5N2ZcdTYwNjlcdTgwMGNcdTUxM2ZcdTgwMzNc''@;'; + put 'put ''dTVjMTRcdTk5NzVcdTZkMzFcdTRlOGNcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxODJdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE4Ml1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTgyXVtFXV09NDY1OTIrRSxMWzQ2NTkyK0VdPUJbMTgyXVtFXSk7Zm9yKEJbMTgzXT0iXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3YTFkXHU3YTFmXHU3YTIxXHU3YTIyXHU3YTI0XHU3YTI1XHU3YTI2XHU3YTI3XHU3YTI4XHU3YTI5XHU3YTJhXHU3YTJiXHU3YTJjXHU3YTJkXHU3YTJlXHU3YTJmXHU3YTMwXHU3YTMxXHU3YTMyXHU3YTM0''@;'; + put 'put ''XHU3YTM1XHU3YTM2XHU3YTM4XHU3YTNhXHU3YTNlXHU3YTQwXHU3YTQxXHU3YTQyXHU3YTQzXHU3YTQ0XHU3YTQ1XHU3YTQ3XHU3YTQ4XHU3YTQ5XHU3YTRhXHU3YTRiXHU3YTRjXHU3YTRkXHU3YTRlXHU3YTRmXHU3YTUwXHU3YTUyXHU3YTUzXHU3YTU0XHU3YTU1XHU3YTU2XHU3YTU4XHU3''@;'; + put 'put ''YTU5XHU3YTVhXHU3YTViXHU3YTVjXHU3YTVkXHU3YTVlXHU3YTVmXHU3YTYwXHU3YTYxXHU3YTYyXHU3YTYzXHU3YTY0XHU3YTY1XHU3YTY2XHU3YTY3XHU3YTY4XHVmZmZkXHU3YTY5XHU3YTZhXHU3YTZiXHU3YTZjXHU3YTZkXHU3YTZlXHU3YTZmXHU3YTcxXHU3YTcyXHU3YTczXHU3YTc1''@;'; + put 'put ''XHU3YTdiXHU3YTdjXHU3YTdkXHU3YTdlXHU3YTgyXHU3YTg1XHU3YTg3XHU3YTg5XHU3YThhXHU3YThiXHU3YThjXHU3YThlXHU3YThmXHU3YTkwXHU3YTkzXHU3YTk0XHU3YTk5XHU3YTlhXHU3YTliXHU3YTllXHU3YWExXHU3YWEyXHU4ZDMwXHU1M2QxXHU3ZjVhXHU3YjRmXHU0ZjEwXHU0''@;'; + put 'put ''ZTRmXHU5NjAwXHU2Y2Q1XHU3M2QwXHU4NWU5XHU1ZTA2XHU3NTZhXHU3ZmZiXHU2YTBhXHU3N2ZlXHU5NDkyXHU3ZTQxXHU1MWUxXHU3MGU2XHU1M2NkXHU4ZmQ0XHU4MzAzXHU4ZDI5XHU3MmFmXHU5OTZkXHU2Y2RiXHU1NzRhXHU4MmIzXHU2NWI5XHU4MGFhXHU2MjNmXHU5NjMyXHU1OWE4''@;'; + put 'put ''XHU0ZWZmXHU4YmJmXHU3ZWJhXHU2NTNlXHU4M2YyXHU5NzVlXHU1NTYxXHU5OGRlXHU4MGE1XHU1MzJhXHU4YmZkXHU1NDIwXHU4MGJhXHU1ZTlmXHU2Y2I4XHU4ZDM5XHU4MmFjXHU5MTVhXHU1NDI5XHU2YzFiXHU1MjA2XHU3ZWI3XHU1NzVmXHU3MTFhXHU2YzdlXHU3Yzg5XHU1OTRiXHU0''@;'; + put 'put ''ZWZkXHU1ZmZmXHU2MTI0XHU3Y2FhXHU0ZTMwXHU1YzAxXHU2N2FiXHU4NzAyXHU1Y2YwXHU5NTBiXHU5OGNlXHU3NWFmXHU3MGZkXHU5MDIyXHU1MWFmXHU3ZjFkXHU4YmJkXHU1OTQ5XHU1MWU0XHU0ZjViXHU1NDI2XHU1OTJiXHU2NTc3XHU4MGE0XHU1Yjc1XHU2Mjc2XHU2MmMyXHU4Zjkw''@;'; + put 'put ''XHU1ZTQ1XHU2YzFmXHU3YjI2XHU0ZjBmXHU0ZmQ4XHU2NzBkXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTgzXS5sZW5ndGg7KytFKTY1NTMzIT09QlsxODNdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE4M11bRV1dPTQ2ODQ4K0UsTFs0Njg0OCtFXT1CWzE4M11bRV0pO2ZvcihCWzE4''@;'; + put 'put ''NF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1N2FhM1x1N2FhNFx1N2FhN1x1N2FhOVx1N2FhYVx1N2FhYlx1N2FhZVx1N2FhZlx1N2FiMFx1N2FiMVx1N2FiMlx1N2FiNFx1N2FiNVx1N2FiNlx1N2FiN1x1N2FiOFx1N2FiOVx1N2Fi''@;'; + put 'put ''YVx1N2FiYlx1N2FiY1x1N2FiZFx1N2FiZVx1N2FjMFx1N2FjMVx1N2FjMlx1N2FjM1x1N2FjNFx1N2FjNVx1N2FjNlx1N2FjN1x1N2FjOFx1N2FjOVx1N2FjYVx1N2FjY1x1N2FjZFx1N2FjZVx1N2FjZlx1N2FkMFx1N2FkMVx1N2FkMlx1N2FkM1x1N2FkNFx1N2FkNVx1N2FkN1x1N2FkOFx1''@;'; + put 'put ''N2FkYVx1N2FkYlx1N2FkY1x1N2FkZFx1N2FlMVx1N2FlMlx1N2FlNFx1N2FlN1x1N2FlOFx1N2FlOVx1N2FlYVx1N2FlYlx1N2FlY1x1N2FlZVx1N2FmMFx1N2FmMVx1N2FmMlx1N2FmM1x1ZmZmZFx1N2FmNFx1N2FmNVx1N2FmNlx1N2FmN1x1N2FmOFx1N2FmYlx1N2FmY1x1N2FmZVx1N2Iw''@;'; + put 'put ''MFx1N2IwMVx1N2IwMlx1N2IwNVx1N2IwN1x1N2IwOVx1N2IwY1x1N2IwZFx1N2IwZVx1N2IxMFx1N2IxMlx1N2IxM1x1N2IxNlx1N2IxN1x1N2IxOFx1N2IxYVx1N2IxY1x1N2IxZFx1N2IxZlx1N2IyMVx1N2IyMlx1N2IyM1x1N2IyN1x1N2IyOVx1N2IyZFx1NmQ2ZVx1NmRhYVx1Nzk4Zlx1''@;'; + put 'put ''ODhiMVx1NWYxN1x1NzUyYlx1NjI5YVx1OGY4NVx1NGZlZlx1OTFkY1x1NjVhN1x1ODEyZlx1ODE1MVx1NWU5Y1x1ODE1MFx1OGQ3NFx1NTI2Zlx1ODk4Nlx1OGQ0Ylx1NTkwZFx1NTA4NVx1NGVkOFx1OTYxY1x1NzIzNlx1ODE3OVx1OGQxZlx1NWJjY1x1OGJhM1x1OTY0NFx1NTk4N1x1N2Yx''@;'; + put 'put ''YVx1NTQ5MFx1NTY3Nlx1NTYwZVx1OGJlNVx1NjUzOVx1Njk4Mlx1OTQ5OVx1NzZkNlx1NmU4OVx1NWU3Mlx1NzUxOFx1Njc0Nlx1NjdkMVx1N2FmZlx1ODA5ZFx1OGQ3Nlx1NjExZlx1NzljNlx1NjU2Mlx1OGQ2M1x1NTE4OFx1NTIxYVx1OTRhMlx1N2YzOFx1ODA5Ylx1N2ViMlx1NWM5N1x1''@;'; + put 'put ''NmUyZlx1Njc2MFx1N2JkOVx1NzY4Ylx1OWFkOFx1ODE4Zlx1N2Y5NFx1N2NkNVx1NjQxZVx1OTU1MFx1N2EzZlx1NTQ0YVx1NTRlNVx1NmI0Y1x1NjQwMVx1NjIwOFx1OWUzZFx1ODBmM1x1NzU5OVx1NTI3Mlx1OTc2OVx1ODQ1Ylx1NjgzY1x1ODZlNFx1OTYwMVx1OTY5NFx1OTRlY1x1NGUy''@;'; + put 'put ''YVx1NTQwNFx1N2VkOVx1NjgzOVx1OGRkZlx1ODAxNVx1NjZmNFx1NWU5YVx1N2ZiOVx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE4NF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTg0XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxODRdW0VdXT00NzEwNCtFLExbNDcxMDQrRV09QlsxODRd''@;'; + put 'put ''W0VdKTtmb3IoQlsxODVdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTdiMmZcdTdiMzBcdTdiMzJcdTdiMzRcdTdiMzVcdTdiMzZcdTdiMzdcdTdiMzlcdTdiM2JcdTdiM2RcdTdiM2ZcdTdiNDBcdTdiNDFcdTdiNDJcdTdiNDNcdTdi''@;'; + put 'put ''NDRcdTdiNDZcdTdiNDhcdTdiNGFcdTdiNGRcdTdiNGVcdTdiNTNcdTdiNTVcdTdiNTdcdTdiNTlcdTdiNWNcdTdiNWVcdTdiNWZcdTdiNjFcdTdiNjNcdTdiNjRcdTdiNjVcdTdiNjZcdTdiNjdcdTdiNjhcdTdiNjlcdTdiNmFcdTdiNmJcdTdiNmNcdTdiNmRcdTdiNmZcdTdiNzBcdTdiNzNc''@;'; + put 'put ''dTdiNzRcdTdiNzZcdTdiNzhcdTdiN2FcdTdiN2NcdTdiN2RcdTdiN2ZcdTdiODFcdTdiODJcdTdiODNcdTdiODRcdTdiODZcdTdiODdcdTdiODhcdTdiODlcdTdiOGFcdTdiOGJcdTdiOGNcdTdiOGVcdTdiOGZcdWZmZmRcdTdiOTFcdTdiOTJcdTdiOTNcdTdiOTZcdTdiOThcdTdiOTlcdTdi''@;'; + put 'put ''OWFcdTdiOWJcdTdiOWVcdTdiOWZcdTdiYTBcdTdiYTNcdTdiYTRcdTdiYTVcdTdiYWVcdTdiYWZcdTdiYjBcdTdiYjJcdTdiYjNcdTdiYjVcdTdiYjZcdTdiYjdcdTdiYjlcdTdiYmFcdTdiYmJcdTdiYmNcdTdiYmRcdTdiYmVcdTdiYmZcdTdiYzBcdTdiYzJcdTdiYzNcdTdiYzRcdTU3YzJc''@;'; + put 'put ''dTgwM2ZcdTY4OTdcdTVkZTVcdTY1M2JcdTUyOWZcdTYwNmRcdTlmOWFcdTRmOWJcdThlYWNcdTUxNmNcdTViYWJcdTVmMTNcdTVkZTlcdTZjNWVcdTYyZjFcdThkMjFcdTUxNzFcdTk0YTlcdTUyZmVcdTZjOWZcdTgyZGZcdTcyZDdcdTU3YTJcdTY3ODRcdThkMmRcdTU5MWZcdThmOWNcdTgz''@;'; + put 'put ''YzdcdTU0OTVcdTdiOGRcdTRmMzBcdTZjYmRcdTViNjRcdTU5ZDFcdTlmMTNcdTUzZTRcdTg2Y2FcdTlhYThcdThjMzdcdTgwYTFcdTY1NDVcdTk4N2VcdTU2ZmFcdTk2YzdcdTUyMmVcdTc0ZGNcdTUyNTBcdTViZTFcdTYzMDJcdTg5MDJcdTRlNTZcdTYyZDBcdTYwMmFcdTY4ZmFcdTUxNzNc''@;'; + put 'put ''dTViOThcdTUxYTBcdTg5YzJcdTdiYTFcdTk5ODZcdTdmNTBcdTYwZWZcdTcwNGNcdThkMmZcdTUxNDlcdTVlN2ZcdTkwMWJcdTc0NzBcdTg5YzRcdTU3MmRcdTc4NDVcdTVmNTJcdTlmOWZcdTk1ZmFcdThmNjhcdTliM2NcdThiZTFcdTc2NzhcdTY4NDJcdTY3ZGNcdThkZWFcdThkMzVcdTUy''@;'; + put 'put ''M2RcdThmOGFcdTZlZGFcdTY4Y2RcdTk1MDVcdTkwZWRcdTU2ZmRcdTY3OWNcdTg4ZjlcdThmYzdcdTU0YzhcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxODVdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE4NV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTg1XVtFXV09NDczNjArRSxMWzQ3''@;'; + put 'put ''MzYwK0VdPUJbMTg1XVtFXSk7Zm9yKEJbMTg2XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3YmM1XHU3YmM4XHU3YmM5XHU3YmNhXHU3YmNiXHU3YmNkXHU3YmNlXHU3YmNmXHU3YmQwXHU3YmQyXHU3YmQ0XHU3YmQ1XHU3YmQ2XHU3''@;'; + put 'put ''YmQ3XHU3YmQ4XHU3YmRiXHU3YmRjXHU3YmRlXHU3YmRmXHU3YmUwXHU3YmUyXHU3YmUzXHU3YmU0XHU3YmU3XHU3YmU4XHU3YmU5XHU3YmViXHU3YmVjXHU3YmVkXHU3YmVmXHU3YmYwXHU3YmYyXHU3YmYzXHU3YmY0XHU3YmY1XHU3YmY2XHU3YmY4XHU3YmY5XHU3YmZhXHU3YmZiXHU3YmZk''@;'; + put 'put ''XHU3YmZmXHU3YzAwXHU3YzAxXHU3YzAyXHU3YzAzXHU3YzA0XHU3YzA1XHU3YzA2XHU3YzA4XHU3YzA5XHU3YzBhXHU3YzBkXHU3YzBlXHU3YzEwXHU3YzExXHU3YzEyXHU3YzEzXHU3YzE0XHU3YzE1XHU3YzE3XHU3YzE4XHU3YzE5XHVmZmZkXHU3YzFhXHU3YzFiXHU3YzFjXHU3YzFkXHU3''@;'; + put 'put ''YzFlXHU3YzIwXHU3YzIxXHU3YzIyXHU3YzIzXHU3YzI0XHU3YzI1XHU3YzI4XHU3YzI5XHU3YzJiXHU3YzJjXHU3YzJkXHU3YzJlXHU3YzJmXHU3YzMwXHU3YzMxXHU3YzMyXHU3YzMzXHU3YzM0XHU3YzM1XHU3YzM2XHU3YzM3XHU3YzM5XHU3YzNhXHU3YzNiXHU3YzNjXHU3YzNkXHU3YzNl''@;'; + put 'put ''XHU3YzQyXHU5YWI4XHU1YjY5XHU2ZDc3XHU2YzI2XHU0ZWE1XHU1YmIzXHU5YTg3XHU5MTYzXHU2MWE4XHU5MGFmXHU5N2U5XHU1NDJiXHU2ZGI1XHU1YmQyXHU1MWZkXHU1NThhXHU3ZjU1XHU3ZmYwXHU2NGJjXHU2MzRkXHU2NWYxXHU2MWJlXHU2MDhkXHU3MTBhXHU2YzU3XHU2YzQ5XHU1''@;'; + put 'put ''OTJmXHU2NzZkXHU4MjJhXHU1OGQ1XHU1NjhlXHU4YzZhXHU2YmViXHU5MGRkXHU1OTdkXHU4MDE3XHU1M2Y3XHU2ZDY5XHU1NDc1XHU1NTlkXHU4Mzc3XHU4M2NmXHU2ODM4XHU3OWJlXHU1NDhjXHU0ZjU1XHU1NDA4XHU3NmQyXHU4Yzg5XHU5NjAyXHU2Y2IzXHU2ZGI4XHU4ZDZiXHU4OTEw''@;'; + put 'put ''XHU5ZTY0XHU4ZDNhXHU1NjNmXHU5ZWQxXHU3NWQ1XHU1Zjg4XHU3MmUwXHU2MDY4XHU1NGZjXHU0ZWE4XHU2YTJhXHU4ODYxXHU2MDUyXHU4ZjcwXHU1NGM0XHU3MGQ4XHU4Njc5XHU5ZTNmXHU2ZDJhXHU1YjhmXHU1ZjE4XHU3ZWEyXHU1NTg5XHU0ZmFmXHU3MzM0XHU1NDNjXHU1MzlhXHU1''@;'; + put 'put ''MDE5XHU1NDBlXHU1NDdjXHU0ZTRlXHU1ZmZkXHU3NDVhXHU1OGY2XHU4NDZiXHU4MGUxXHU4Nzc0XHU3MmQwXHU3Y2NhXHU2ZTU2XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTg2XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxODZdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE4Nl1bRV1d''@;'; + put 'put ''PTQ3NjE2K0UsTFs0NzYxNitFXT1CWzE4Nl1bRV0pO2ZvcihCWzE4N109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1N2M0M1x1N2M0NFx1N2M0NVx1N2M0Nlx1N2M0N1x1N2M0OFx1N2M0OVx1N2M0YVx1N2M0Ylx1N2M0Y1x1N2M0ZVx1''@;'; + put 'put ''N2M0Zlx1N2M1MFx1N2M1MVx1N2M1Mlx1N2M1M1x1N2M1NFx1N2M1NVx1N2M1Nlx1N2M1N1x1N2M1OFx1N2M1OVx1N2M1YVx1N2M1Ylx1N2M1Y1x1N2M1ZFx1N2M1ZVx1N2M1Zlx1N2M2MFx1N2M2MVx1N2M2Mlx1N2M2M1x1N2M2NFx1N2M2NVx1N2M2Nlx1N2M2N1x1N2M2OFx1N2M2OVx1N2M2''@;'; + put 'put ''YVx1N2M2Ylx1N2M2Y1x1N2M2ZFx1N2M2ZVx1N2M2Zlx1N2M3MFx1N2M3MVx1N2M3Mlx1N2M3NVx1N2M3Nlx1N2M3N1x1N2M3OFx1N2M3OVx1N2M3YVx1N2M3ZVx1N2M3Zlx1N2M4MFx1N2M4MVx1N2M4Mlx1N2M4M1x1N2M4NFx1N2M4NVx1N2M4Nlx1N2M4N1x1ZmZmZFx1N2M4OFx1N2M4YVx1''@;'; + put 'put ''N2M4Ylx1N2M4Y1x1N2M4ZFx1N2M4ZVx1N2M4Zlx1N2M5MFx1N2M5M1x1N2M5NFx1N2M5Nlx1N2M5OVx1N2M5YVx1N2M5Ylx1N2NhMFx1N2NhMVx1N2NhM1x1N2NhNlx1N2NhN1x1N2NhOFx1N2NhOVx1N2NhYlx1N2NhY1x1N2NhZFx1N2NhZlx1N2NiMFx1N2NiNFx1N2NiNVx1N2NiNlx1N2Ni''@;'; + put 'put ''N1x1N2NiOFx1N2NiYVx1N2NiYlx1NWYyN1x1ODY0ZVx1NTUyY1x1NjJhNFx1NGU5Mlx1NmNhYVx1NjIzN1x1ODJiMVx1NTRkN1x1NTM0ZVx1NzMzZVx1NmVkMVx1NzUzYlx1NTIxMlx1NTMxNlx1OGJkZFx1NjlkMFx1NWY4YVx1NjAwMFx1NmRlZVx1NTc0Zlx1NmIyMlx1NzNhZlx1Njg1M1x1''@;'; + put 'put ''OGZkOFx1N2YxM1x1NjM2Mlx1NjBhM1x1NTUyNFx1NzVlYVx1OGM2Mlx1NzExNVx1NmRhM1x1NWJhNlx1NWU3Ylx1ODM1Mlx1NjE0Y1x1OWVjNFx1NzhmYVx1ODc1N1x1N2MyN1x1NzY4N1x1NTFmMFx1NjBmNlx1NzE0Y1x1NjY0M1x1NWU0Y1x1NjA0ZFx1OGMwZVx1NzA3MFx1NjMyNVx1OGY4''@;'; + put 'put ''OVx1NWZiZFx1NjA2Mlx1ODZkNFx1NTZkZVx1NmJjMVx1NjA5NFx1NjE2N1x1NTM0OVx1NjBlMFx1NjY2Nlx1OGQzZlx1NzlmZFx1NGYxYVx1NzBlOVx1NmM0N1x1OGJiM1x1OGJmMlx1N2VkOFx1ODM2NFx1NjYwZlx1NWE1YVx1OWI0Mlx1NmQ1MVx1NmRmN1x1OGM0MVx1NmQzYlx1NGYxOVx1''@;'; + put 'put ''NzA2Ylx1ODNiN1x1NjIxNlx1NjBkMVx1OTcwZFx1OGQyN1x1Nzk3OFx1NTFmYlx1NTczZVx1NTdmYVx1NjczYVx1NzU3OFx1N2EzZFx1NzllZlx1N2I5NVx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE4N10ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTg3XVtFXS5jaGFyQ29kZUF0KDApJiYo''@;'; + put 'put ''bWVbQlsxODddW0VdXT00Nzg3MitFLExbNDc4NzIrRV09QlsxODddW0VdKTtmb3IoQlsxODhdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTdjYmZcdTdjYzBcdTdjYzJcdTdjYzNcdTdjYzRcdTdjYzZcdTdjYzlcdTdjY2JcdTdjY2Vc''@;'; + put 'put ''dTdjY2ZcdTdjZDBcdTdjZDFcdTdjZDJcdTdjZDNcdTdjZDRcdTdjZDhcdTdjZGFcdTdjZGJcdTdjZGRcdTdjZGVcdTdjZTFcdTdjZTJcdTdjZTNcdTdjZTRcdTdjZTVcdTdjZTZcdTdjZTdcdTdjZTlcdTdjZWFcdTdjZWJcdTdjZWNcdTdjZWRcdTdjZWVcdTdjZjBcdTdjZjFcdTdjZjJcdTdj''@;'; + put 'put ''ZjNcdTdjZjRcdTdjZjVcdTdjZjZcdTdjZjdcdTdjZjlcdTdjZmFcdTdjZmNcdTdjZmRcdTdjZmVcdTdjZmZcdTdkMDBcdTdkMDFcdTdkMDJcdTdkMDNcdTdkMDRcdTdkMDVcdTdkMDZcdTdkMDdcdTdkMDhcdTdkMDlcdTdkMGJcdTdkMGNcdTdkMGRcdTdkMGVcdTdkMGZcdTdkMTBcdWZmZmRc''@;'; + put 'put ''dTdkMTFcdTdkMTJcdTdkMTNcdTdkMTRcdTdkMTVcdTdkMTZcdTdkMTdcdTdkMThcdTdkMTlcdTdkMWFcdTdkMWJcdTdkMWNcdTdkMWRcdTdkMWVcdTdkMWZcdTdkMjFcdTdkMjNcdTdkMjRcdTdkMjVcdTdkMjZcdTdkMjhcdTdkMjlcdTdkMmFcdTdkMmNcdTdkMmRcdTdkMmVcdTdkMzBcdTdk''@;'; + put 'put ''MzFcdTdkMzJcdTdkMzNcdTdkMzRcdTdkMzVcdTdkMzZcdTgwOGNcdTk5NjVcdThmZjlcdTZmYzBcdThiYTVcdTllMjFcdTU5ZWNcdTdlZTlcdTdmMDlcdTU0MDlcdTY3ODFcdTY4ZDhcdThmOTFcdTdjNGRcdTk2YzZcdTUzY2FcdTYwMjVcdTc1YmVcdTZjNzJcdTUzNzNcdTVhYzlcdTdlYTdc''@;'; + put 'put ''dTYzMjRcdTUxZTBcdTgxMGFcdTVkZjFcdTg0ZGZcdTYyODBcdTUxODBcdTViNjNcdTRmMGVcdTc5NmRcdTUyNDJcdTYwYjhcdTZkNGVcdTViYzRcdTViYzJcdThiYTFcdThiYjBcdTY1ZTJcdTVmY2NcdTk2NDVcdTU5OTNcdTdlZTdcdTdlYWFcdTU2MDlcdTY3YjdcdTU5MzlcdTRmNzNcdTVi''@;'; + put 'put ''YjZcdTUyYTBcdTgzNWFcdTk4OGFcdThkM2VcdTc1MzJcdTk0YmVcdTUwNDdcdTdhM2NcdTRlZjdcdTY3YjZcdTlhN2VcdTVhYzFcdTZiN2NcdTc2ZDFcdTU3NWFcdTVjMTZcdTdiM2FcdTk1ZjRcdTcxNGVcdTUxN2NcdTgwYTlcdTgyNzBcdTU5NzhcdTdmMDRcdTgzMjdcdTY4YzBcdTY3ZWNc''@;'; + put 'put ''dTc4YjFcdTc4NzdcdTYyZTNcdTYzNjFcdTdiODBcdTRmZWRcdTUyNmFcdTUxY2ZcdTgzNTBcdTY5ZGJcdTkyNzRcdThkZjVcdThkMzFcdTg5YzFcdTk1MmVcdTdiYWRcdTRlZjZcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxODhdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE4OF1bRV0uY2hh''@;'; + put 'put ''ckNvZGVBdCgwKSYmKG1lW0JbMTg4XVtFXV09NDgxMjgrRSxMWzQ4MTI4K0VdPUJbMTg4XVtFXSk7Zm9yKEJbMTg5XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3ZDM3XHU3ZDM4XHU3ZDM5XHU3ZDNhXHU3ZDNiXHU3ZDNjXHU3ZDNk''@;'; + put 'put ''XHU3ZDNlXHU3ZDNmXHU3ZDQwXHU3ZDQxXHU3ZDQyXHU3ZDQzXHU3ZDQ0XHU3ZDQ1XHU3ZDQ2XHU3ZDQ3XHU3ZDQ4XHU3ZDQ5XHU3ZDRhXHU3ZDRiXHU3ZDRjXHU3ZDRkXHU3ZDRlXHU3ZDRmXHU3ZDUwXHU3ZDUxXHU3ZDUyXHU3ZDUzXHU3ZDU0XHU3ZDU1XHU3ZDU2XHU3ZDU3XHU3ZDU4XHU3''@;'; + put 'put ''ZDU5XHU3ZDVhXHU3ZDViXHU3ZDVjXHU3ZDVkXHU3ZDVlXHU3ZDVmXHU3ZDYwXHU3ZDYxXHU3ZDYyXHU3ZDYzXHU3ZDY0XHU3ZDY1XHU3ZDY2XHU3ZDY3XHU3ZDY4XHU3ZDY5XHU3ZDZhXHU3ZDZiXHU3ZDZjXHU3ZDZkXHU3ZDZmXHU3ZDcwXHU3ZDcxXHU3ZDcyXHU3ZDczXHU3ZDc0XHU3ZDc1''@;'; + put 'put ''XHU3ZDc2XHVmZmZkXHU3ZDc4XHU3ZDc5XHU3ZDdhXHU3ZDdiXHU3ZDdjXHU3ZDdkXHU3ZDdlXHU3ZDdmXHU3ZDgwXHU3ZDgxXHU3ZDgyXHU3ZDgzXHU3ZDg0XHU3ZDg1XHU3ZDg2XHU3ZDg3XHU3ZDg4XHU3ZDg5XHU3ZDhhXHU3ZDhiXHU3ZDhjXHU3ZDhkXHU3ZDhlXHU3ZDhmXHU3ZDkwXHU3''@;'; + put 'put ''ZDkxXHU3ZDkyXHU3ZDkzXHU3ZDk0XHU3ZDk1XHU3ZDk2XHU3ZDk3XHU3ZDk4XHU1MDY1XHU4MjMwXHU1MjUxXHU5OTZmXHU2ZTEwXHU2ZTg1XHU2ZGE3XHU1ZWZhXHU1MGY1XHU1OWRjXHU1YzA2XHU2ZDQ2XHU2YzVmXHU3NTg2XHU4NDhiXHU2ODY4XHU1OTU2XHU4YmIyXHU1MzIwXHU5MTcx''@;'; + put 'put ''XHU5NjRkXHU4NTQ5XHU2OTEyXHU3OTAxXHU3MTI2XHU4MGY2XHU0ZWE0XHU5MGNhXHU2ZDQ3XHU5YTg0XHU1YTA3XHU1NmJjXHU2NDA1XHU5NGYwXHU3N2ViXHU0ZmE1XHU4MTFhXHU3MmUxXHU4OWQyXHU5OTdhXHU3ZjM0XHU3ZWRlXHU1MjdmXHU2NTU5XHU5MTc1XHU4ZjdmXHU4ZjgzXHU1''@;'; + put 'put ''M2ViXHU3YTk2XHU2M2VkXHU2M2E1XHU3Njg2XHU3OWY4XHU4ODU3XHU5NjM2XHU2MjJhXHU1MmFiXHU4MjgyXHU2ODU0XHU2NzcwXHU2Mzc3XHU3NzZiXHU3YWVkXHU2ZDAxXHU3ZWQzXHU4OWUzXHU1OWQwXHU2MjEyXHU4NWM5XHU4MmE1XHU3NTRjXHU1MDFmXHU0ZWNiXHU3NWE1XHU4YmVi''@;'; + put 'put ''XHU1YzRhXHU1ZGZlXHU3YjRiXHU2NWE0XHU5MWQxXHU0ZWNhXHU2ZDI1XHU4OTVmXHU3ZDI3XHU5NTI2XHU0ZWM1XHU4YzI4XHU4ZmRiXHU5NzczXHU2NjRiXHU3OTgxXHU4ZmQxXHU3MGVjXHU2ZDc4XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTg5XS5sZW5ndGg7KytFKTY1NTMzIT09''@;'; + put 'put ''QlsxODldW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE4OV1bRV1dPTQ4Mzg0K0UsTFs0ODM4NCtFXT1CWzE4OV1bRV0pO2ZvcihCWzE5MF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1N2Q5OVx1N2Q5YVx1N2Q5Ylx1N2Q5Y1x1N2Q5''@;'; + put 'put ''ZFx1N2Q5ZVx1N2Q5Zlx1N2RhMFx1N2RhMVx1N2RhMlx1N2RhM1x1N2RhNFx1N2RhNVx1N2RhN1x1N2RhOFx1N2RhOVx1N2RhYVx1N2RhYlx1N2RhY1x1N2RhZFx1N2RhZlx1N2RiMFx1N2RiMVx1N2RiMlx1N2RiM1x1N2RiNFx1N2RiNVx1N2RiNlx1N2RiN1x1N2RiOFx1N2RiOVx1N2RiYVx1''@;'; + put 'put ''N2RiYlx1N2RiY1x1N2RiZFx1N2RiZVx1N2RiZlx1N2RjMFx1N2RjMVx1N2RjMlx1N2RjM1x1N2RjNFx1N2RjNVx1N2RjNlx1N2RjN1x1N2RjOFx1N2RjOVx1N2RjYVx1N2RjYlx1N2RjY1x1N2RjZFx1N2RjZVx1N2RjZlx1N2RkMFx1N2RkMVx1N2RkMlx1N2RkM1x1N2RkNFx1N2RkNVx1N2Rk''@;'; + put 'put ''Nlx1N2RkN1x1N2RkOFx1N2RkOVx1ZmZmZFx1N2RkYVx1N2RkYlx1N2RkY1x1N2RkZFx1N2RkZVx1N2RkZlx1N2RlMFx1N2RlMVx1N2RlMlx1N2RlM1x1N2RlNFx1N2RlNVx1N2RlNlx1N2RlN1x1N2RlOFx1N2RlOVx1N2RlYVx1N2RlYlx1N2RlY1x1N2RlZFx1N2RlZVx1N2RlZlx1N2RmMFx1''@;'; + put 'put ''N2RmMVx1N2RmMlx1N2RmM1x1N2RmNFx1N2RmNVx1N2RmNlx1N2RmN1x1N2RmOFx1N2RmOVx1N2RmYVx1NWMzZFx1NTJiMlx1ODM0Nlx1NTE2Mlx1ODMwZVx1Nzc1Ylx1NjY3Nlx1OWNiOFx1NGVhY1x1NjBjYVx1N2NiZVx1N2NiM1x1N2VjZlx1NGU5NVx1OGI2Nlx1NjY2Zlx1OTg4OFx1OTc1''@;'; + put 'put ''OVx1NTg4M1x1NjU2Y1x1OTU1Y1x1NWY4NFx1NzVjOVx1OTc1Nlx1N2FkZlx1N2FkZVx1NTFjMFx1NzBhZlx1N2E5OFx1NjNlYVx1N2E3Nlx1N2VhMFx1NzM5Nlx1OTdlZFx1NGU0NVx1NzA3OFx1NGU1ZFx1OTE1Mlx1NTNhOVx1NjU1MVx1NjVlN1x1ODFmY1x1ODIwNVx1NTQ4ZVx1NWMzMVx1''@;'; + put 'put ''NzU5YVx1OTdhMFx1NjJkOFx1NzJkOVx1NzViZFx1NWM0NVx1OWE3OVx1ODNjYVx1NWM0MFx1NTQ4MFx1NzdlOVx1NGUzZVx1NmNhZVx1ODA1YVx1NjJkMlx1NjM2ZVx1NWRlOFx1NTE3N1x1OGRkZFx1OGUxZVx1OTUyZlx1NGZmMVx1NTNlNVx1NjBlN1x1NzBhY1x1NTI2N1x1NjM1MFx1OWU0''@;'; + put 'put ''M1x1NWExZlx1NTAyNlx1NzczN1x1NTM3N1x1N2VlMlx1NjQ4NVx1NjUyYlx1NjI4OVx1NjM5OFx1NTAxNFx1NzIzNVx1ODljOVx1NTFiM1x1OGJjMFx1N2VkZFx1NTc0N1x1ODNjY1x1OTRhN1x1NTE5Ylx1NTQxYlx1NWNmYlx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE5MF0ubGVuZ3Ro''@;'; + put 'put ''OysrRSk2NTUzMyE9PUJbMTkwXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxOTBdW0VdXT00ODY0MCtFLExbNDg2NDArRV09QlsxOTBdW0VdKTtmb3IoQlsxOTFdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTdkZmJcdTdkZmNcdTdk''@;'; + put 'put ''ZmRcdTdkZmVcdTdkZmZcdTdlMDBcdTdlMDFcdTdlMDJcdTdlMDNcdTdlMDRcdTdlMDVcdTdlMDZcdTdlMDdcdTdlMDhcdTdlMDlcdTdlMGFcdTdlMGJcdTdlMGNcdTdlMGRcdTdlMGVcdTdlMGZcdTdlMTBcdTdlMTFcdTdlMTJcdTdlMTNcdTdlMTRcdTdlMTVcdTdlMTZcdTdlMTdcdTdlMThc''@;'; + put 'put ''dTdlMTlcdTdlMWFcdTdlMWJcdTdlMWNcdTdlMWRcdTdlMWVcdTdlMWZcdTdlMjBcdTdlMjFcdTdlMjJcdTdlMjNcdTdlMjRcdTdlMjVcdTdlMjZcdTdlMjdcdTdlMjhcdTdlMjlcdTdlMmFcdTdlMmJcdTdlMmNcdTdlMmRcdTdlMmVcdTdlMmZcdTdlMzBcdTdlMzFcdTdlMzJcdTdlMzNcdTdl''@;'; + put 'put ''MzRcdTdlMzVcdTdlMzZcdTdlMzdcdTdlMzhcdTdlMzlcdWZmZmRcdTdlM2FcdTdlM2NcdTdlM2RcdTdlM2VcdTdlM2ZcdTdlNDBcdTdlNDJcdTdlNDNcdTdlNDRcdTdlNDVcdTdlNDZcdTdlNDhcdTdlNDlcdTdlNGFcdTdlNGJcdTdlNGNcdTdlNGRcdTdlNGVcdTdlNGZcdTdlNTBcdTdlNTFc''@;'; + put 'put ''dTdlNTJcdTdlNTNcdTdlNTRcdTdlNTVcdTdlNTZcdTdlNTdcdTdlNThcdTdlNTlcdTdlNWFcdTdlNWJcdTdlNWNcdTdlNWRcdTRmY2FcdTdhZTNcdTZkNWFcdTkwZTFcdTlhOGZcdTU1ODBcdTU0OTZcdTUzNjFcdTU0YWZcdTVmMDBcdTYzZTlcdTY5NzdcdTUxZWZcdTYxNjhcdTUyMGFcdTU4''@;'; + put 'put ''MmFcdTUyZDhcdTU3NGVcdTc4MGRcdTc3MGJcdTVlYjdcdTYxNzdcdTdjZTBcdTYyNWJcdTYyOTdcdTRlYTJcdTcwOTVcdTgwMDNcdTYyZjdcdTcwZTRcdTk3NjBcdTU3NzdcdTgyZGJcdTY3ZWZcdTY4ZjVcdTc4ZDVcdTk4OTdcdTc5ZDFcdTU4ZjNcdTU0YjNcdTUzZWZcdTZlMzRcdTUxNGJc''@;'; + put 'put ''dTUyM2JcdTViYTJcdThiZmVcdTgwYWZcdTU1NDNcdTU3YTZcdTYwNzNcdTU3NTFcdTU0MmRcdTdhN2FcdTYwNTBcdTViNTRcdTYzYTdcdTYyYTBcdTUzZTNcdTYyNjNcdTViYzdcdTY3YWZcdTU0ZWRcdTdhOWZcdTgyZTZcdTkxNzdcdTVlOTNcdTg4ZTRcdTU5MzhcdTU3YWVcdTYzMGVcdThk''@;'; + put 'put ''ZThcdTgwZWZcdTU3NTdcdTdiNzdcdTRmYTlcdTVmZWJcdTViYmRcdTZiM2VcdTUzMjFcdTdiNTBcdTcyYzJcdTY4NDZcdTc3ZmZcdTc3MzZcdTY1ZjdcdTUxYjVcdTRlOGZcdTc2ZDRcdTVjYmZcdTdhYTVcdTg0NzVcdTU5NGVcdTliNDFcdTUwODBcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9''@;'; + put 'put ''QlsxOTFdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE5MV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTkxXVtFXV09NDg4OTYrRSxMWzQ4ODk2K0VdPUJbMTkxXVtFXSk7Zm9yKEJbMTkyXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3''@;'; + put 'put ''ZTVlXHU3ZTVmXHU3ZTYwXHU3ZTYxXHU3ZTYyXHU3ZTYzXHU3ZTY0XHU3ZTY1XHU3ZTY2XHU3ZTY3XHU3ZTY4XHU3ZTY5XHU3ZTZhXHU3ZTZiXHU3ZTZjXHU3ZTZkXHU3ZTZlXHU3ZTZmXHU3ZTcwXHU3ZTcxXHU3ZTcyXHU3ZTczXHU3ZTc0XHU3ZTc1XHU3ZTc2XHU3ZTc3XHU3ZTc4XHU3ZTc5''@;'; + put 'put ''XHU3ZTdhXHU3ZTdiXHU3ZTdjXHU3ZTdkXHU3ZTdlXHU3ZTdmXHU3ZTgwXHU3ZTgxXHU3ZTgzXHU3ZTg0XHU3ZTg1XHU3ZTg2XHU3ZTg3XHU3ZTg4XHU3ZTg5XHU3ZThhXHU3ZThiXHU3ZThjXHU3ZThkXHU3ZThlXHU3ZThmXHU3ZTkwXHU3ZTkxXHU3ZTkyXHU3ZTkzXHU3ZTk0XHU3ZTk1XHU3''@;'; + put 'put ''ZTk2XHU3ZTk3XHU3ZTk4XHU3ZTk5XHU3ZTlhXHU3ZTljXHU3ZTlkXHU3ZTllXHVmZmZkXHU3ZWFlXHU3ZWI0XHU3ZWJiXHU3ZWJjXHU3ZWQ2XHU3ZWU0XHU3ZWVjXHU3ZWY5XHU3ZjBhXHU3ZjEwXHU3ZjFlXHU3ZjM3XHU3ZjM5XHU3ZjNiXHU3ZjNjXHU3ZjNkXHU3ZjNlXHU3ZjNmXHU3ZjQw''@;'; + put 'put ''XHU3ZjQxXHU3ZjQzXHU3ZjQ2XHU3ZjQ3XHU3ZjQ4XHU3ZjQ5XHU3ZjRhXHU3ZjRiXHU3ZjRjXHU3ZjRkXHU3ZjRlXHU3ZjRmXHU3ZjUyXHU3ZjUzXHU5OTg4XHU2MTI3XHU2ZTgzXHU1NzY0XHU2NjA2XHU2MzQ2XHU1NmYwXHU2MmVjXHU2MjY5XHU1ZWQzXHU5NjE0XHU1NzgzXHU2MmM5XHU1''@;'; + put 'put ''NTg3XHU4NzIxXHU4MTRhXHU4ZmEzXHU1NTY2XHU4M2IxXHU2NzY1XHU4ZDU2XHU4NGRkXHU1YTZhXHU2ODBmXHU2MmU2XHU3YmVlXHU5NjExXHU1MTcwXHU2ZjljXHU4YzMwXHU2M2ZkXHU4OWM4XHU2MWQyXHU3ZjA2XHU3MGMyXHU2ZWU1XHU3NDA1XHU2OTk0XHU3MmZjXHU1ZWNhXHU5MGNl''@;'; + put 'put ''XHU2NzE3XHU2ZDZhXHU2MzVlXHU1MmIzXHU3MjYyXHU4MDAxXHU0ZjZjXHU1OWU1XHU5MTZhXHU3MGQ5XHU2ZDlkXHU1MmQyXHU0ZTUwXHU5NmY3XHU5NTZkXHU4NTdlXHU3OGNhXHU3ZDJmXHU1MTIxXHU1NzkyXHU2NGMyXHU4MDhiXHU3YzdiXHU2Y2VhXHU2OGYxXHU2OTVlXHU1MWI3XHU1''@;'; + put 'put ''Mzk4XHU2OGE4XHU3MjgxXHU5ZWNlXHU3YmYxXHU3MmY4XHU3OWJiXHU2ZjEzXHU3NDA2XHU2NzRlXHU5MWNjXHU5Y2E0XHU3OTNjXHU4Mzg5XHU4MzU0XHU1NDBmXHU2ODE3XHU0ZTNkXHU1Mzg5XHU1MmIxXHU3ODNlXHU1Mzg2XHU1MjI5XHU1MDg4XHU0ZjhiXHU0ZmQwXHVmZmZkIi5zcGxp''@;'; + put 'put ''dCgiIiksRT0wO0UhPUJbMTkyXS5sZW5ndGg7KytFKTY1NTMzIT09QlsxOTJdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE5Ml1bRV1dPTQ5MTUyK0UsTFs0OTE1MitFXT1CWzE5Ml1bRV0pO2ZvcihCWzE5M109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1N2Y1Nlx1N2Y1OVx1N2Y1Ylx1N2Y1Y1x1N2Y1ZFx1N2Y1ZVx1N2Y2MFx1N2Y2M1x1N2Y2NFx1N2Y2NVx1N2Y2Nlx1N2Y2N1x1N2Y2Ylx1N2Y2Y1x1N2Y2ZFx1N2Y2Zlx1N2Y3MFx1N2Y3M1x1N2Y3NVx1N2Y3Nlx1N2Y3N1x1N2Y3OFx1N2Y3YVx1N2Y3Ylx1N2Y3Y1x1N2Y3''@;'; + put 'put ''ZFx1N2Y3Zlx1N2Y4MFx1N2Y4Mlx1N2Y4M1x1N2Y4NFx1N2Y4NVx1N2Y4Nlx1N2Y4N1x1N2Y4OFx1N2Y4OVx1N2Y4Ylx1N2Y4ZFx1N2Y4Zlx1N2Y5MFx1N2Y5MVx1N2Y5Mlx1N2Y5M1x1N2Y5NVx1N2Y5Nlx1N2Y5N1x1N2Y5OFx1N2Y5OVx1N2Y5Ylx1N2Y5Y1x1N2ZhMFx1N2ZhMlx1N2ZhM1x1''@;'; + put 'put ''N2ZhNVx1N2ZhNlx1N2ZhOFx1N2ZhOVx1N2ZhYVx1N2ZhYlx1N2ZhY1x1N2ZhZFx1N2ZhZVx1N2ZiMVx1ZmZmZFx1N2ZiM1x1N2ZiNFx1N2ZiNVx1N2ZiNlx1N2ZiN1x1N2ZiYVx1N2ZiYlx1N2ZiZVx1N2ZjMFx1N2ZjMlx1N2ZjM1x1N2ZjNFx1N2ZjNlx1N2ZjN1x1N2ZjOFx1N2ZjOVx1N2Zj''@;'; + put 'put ''Ylx1N2ZjZFx1N2ZjZlx1N2ZkMFx1N2ZkMVx1N2ZkMlx1N2ZkM1x1N2ZkNlx1N2ZkN1x1N2ZkOVx1N2ZkYVx1N2ZkYlx1N2ZkY1x1N2ZkZFx1N2ZkZVx1N2ZlMlx1N2ZlM1x1NzVlMlx1N2FjYlx1N2M5Mlx1NmNhNVx1OTZiNlx1NTI5Ylx1NzQ4M1x1NTRlOVx1NGZlOVx1ODA1NFx1ODNiMlx1''@;'; + put 'put ''OGZkZVx1OTU3MFx1NWVjOVx1NjAxY1x1NmQ5Zlx1NWUxOFx1NjU1Ylx1ODEzOFx1OTRmZVx1NjA0Ylx1NzBiY1x1N2VjM1x1N2NhZVx1NTFjOVx1Njg4MVx1N2NiMVx1ODI2Zlx1NGUyNFx1OGY4Nlx1OTFjZlx1NjY3ZVx1NGVhZVx1OGMwNVx1NjRhOVx1ODA0YVx1NTBkYVx1NzU5N1x1NzFj''@;'; + put 'put ''ZVx1NWJlNVx1OGZiZFx1NmY2Nlx1NGU4Nlx1NjQ4Mlx1OTU2M1x1NWVkNlx1NjU5OVx1NTIxN1x1ODhjMlx1NzBjOFx1NTJhM1x1NzMwZVx1NzQzM1x1Njc5N1x1NzhmN1x1OTcxNlx1NGUzNFx1OTBiYlx1OWNkZVx1NmRjYlx1NTFkYlx1OGQ0MVx1NTQxZFx1NjJjZVx1NzNiMlx1ODNmMVx1''@;'; + put 'put ''OTZmNlx1OWY4NFx1OTRjM1x1NGYzNlx1N2Y5YVx1NTFjY1x1NzA3NVx1OTY3NVx1NWNhZFx1OTg4Nlx1NTNlNlx1NGVlNFx1NmU5Y1x1NzQwOVx1NjliNFx1Nzg2Ylx1OTk4Zlx1NzU1OVx1NTIxOFx1NzYyNFx1NmQ0MVx1NjdmM1x1NTE2ZFx1OWY5OVx1ODA0Ylx1NTQ5OVx1N2IzY1x1N2Fi''@;'; + put 'put ''Zlx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE5M10ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTkzXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxOTNdW0VdXT00OTQwOCtFLExbNDk0MDgrRV09QlsxOTNdW0VdKTtmb3IoQlsxOTRdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTdmZTRcdTdmZTdcdTdmZThcdTdmZWFcdTdmZWJcdTdmZWNcdTdmZWRcdTdmZWZcdTdmZjJcdTdmZjRcdTdmZjVcdTdmZjZcdTdmZjdcdTdmZjhcdTdmZjlcdTdmZmFcdTdmZmRcdTdmZmVcdTdmZmZcdTgwMDJcdTgwMDdcdTgwMDhcdTgwMDlcdTgw''@;'; + put 'put ''MGFcdTgwMGVcdTgwMGZcdTgwMTFcdTgwMTNcdTgwMWFcdTgwMWJcdTgwMWRcdTgwMWVcdTgwMWZcdTgwMjFcdTgwMjNcdTgwMjRcdTgwMmJcdTgwMmNcdTgwMmRcdTgwMmVcdTgwMmZcdTgwMzBcdTgwMzJcdTgwMzRcdTgwMzlcdTgwM2FcdTgwM2NcdTgwM2VcdTgwNDBcdTgwNDFcdTgwNDRc''@;'; + put 'put ''dTgwNDVcdTgwNDdcdTgwNDhcdTgwNDlcdTgwNGVcdTgwNGZcdTgwNTBcdTgwNTFcdTgwNTNcdTgwNTVcdTgwNTZcdTgwNTdcdWZmZmRcdTgwNTlcdTgwNWJcdTgwNWNcdTgwNWRcdTgwNWVcdTgwNWZcdTgwNjBcdTgwNjFcdTgwNjJcdTgwNjNcdTgwNjRcdTgwNjVcdTgwNjZcdTgwNjdcdTgw''@;'; + put 'put ''NjhcdTgwNmJcdTgwNmNcdTgwNmRcdTgwNmVcdTgwNmZcdTgwNzBcdTgwNzJcdTgwNzNcdTgwNzRcdTgwNzVcdTgwNzZcdTgwNzdcdTgwNzhcdTgwNzlcdTgwN2FcdTgwN2JcdTgwN2NcdTgwN2RcdTk2ODZcdTU3ODRcdTYyZTJcdTk2NDdcdTY5N2NcdTVhMDRcdTY0MDJcdTdiZDNcdTZmMGZc''@;'; + put 'put ''dTk2NGJcdTgyYTZcdTUzNjJcdTk4ODVcdTVlOTBcdTcwODlcdTYzYjNcdTUzNjRcdTg2NGZcdTljODFcdTllOTNcdTc4OGNcdTk3MzJcdThkZWZcdThkNDJcdTllN2ZcdTZmNWVcdTc5ODRcdTVmNTVcdTk2NDZcdTYyMmVcdTlhNzRcdTU0MTVcdTk0ZGRcdTRmYTNcdTY1YzVcdTVjNjVcdTVj''@;'; + put 'put ''NjFcdTdmMTVcdTg2NTFcdTZjMmZcdTVmOGJcdTczODdcdTZlZTRcdTdlZmZcdTVjZTZcdTYzMWJcdTViNmFcdTZlZTZcdTUzNzVcdTRlNzFcdTYzYTBcdTc1NjVcdTYyYTFcdThmNmVcdTRmMjZcdTRlZDFcdTZjYTZcdTdlYjZcdThiYmFcdTg0MWRcdTg3YmFcdTdmNTdcdTkwM2JcdTk1MjNc''@;'; + put 'put ''dTdiYTlcdTlhYTFcdTg4ZjhcdTg0M2RcdTZkMWJcdTlhODZcdTdlZGNcdTU5ODhcdTllYmJcdTczOWJcdTc4MDFcdTg2ODJcdTlhNmNcdTlhODJcdTU2MWJcdTU0MTdcdTU3Y2JcdTRlNzBcdTllYTZcdTUzNTZcdThmYzhcdTgxMDlcdTc3OTJcdTk5OTJcdTg2ZWVcdTZlZTFcdTg1MTNcdTY2''@;'; + put 'put ''ZmNcdTYxNjJcdTZmMmJcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxOTRdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE5NF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTk0XVtFXV09NDk2NjQrRSxMWzQ5NjY0K0VdPUJbMTk0XVtFXSk7Zm9yKEJbMTk1XT0iXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4MDdlXHU4MDgxXHU4MDgyXHU4MDg1XHU4MDg4XHU4MDhhXHU4MDhkXHU4MDhlXHU4MDhmXHU4MDkwXHU4MDkxXHU4MDkyXHU4MDk0XHU4MDk1XHU4MDk3XHU4MDk5XHU4MDllXHU4MGEzXHU4MGE2XHU4MGE3XHU4MGE4XHU4''@;'; + put 'put ''MGFjXHU4MGIwXHU4MGIzXHU4MGI1XHU4MGI2XHU4MGI4XHU4MGI5XHU4MGJiXHU4MGM1XHU4MGM3XHU4MGM4XHU4MGM5XHU4MGNhXHU4MGNiXHU4MGNmXHU4MGQwXHU4MGQxXHU4MGQyXHU4MGQzXHU4MGQ0XHU4MGQ1XHU4MGQ4XHU4MGRmXHU4MGUwXHU4MGUyXHU4MGUzXHU4MGU2XHU4MGVl''@;'; + put 'put ''XHU4MGY1XHU4MGY3XHU4MGY5XHU4MGZiXHU4MGZlXHU4MGZmXHU4MTAwXHU4MTAxXHU4MTAzXHU4MTA0XHU4MTA1XHU4MTA3XHU4MTA4XHU4MTBiXHVmZmZkXHU4MTBjXHU4MTE1XHU4MTE3XHU4MTE5XHU4MTFiXHU4MTFjXHU4MTFkXHU4MTFmXHU4MTIwXHU4MTIxXHU4MTIyXHU4MTIzXHU4''@;'; + put 'put ''MTI0XHU4MTI1XHU4MTI2XHU4MTI3XHU4MTI4XHU4MTI5XHU4MTJhXHU4MTJiXHU4MTJkXHU4MTJlXHU4MTMwXHU4MTMzXHU4MTM0XHU4MTM1XHU4MTM3XHU4MTM5XHU4MTNhXHU4MTNiXHU4MTNjXHU4MTNkXHU4MTNmXHU4YzI5XHU4MjkyXHU4MzJiXHU3NmYyXHU2YzEzXHU1ZmQ5XHU4M2Jk''@;'; + put 'put ''XHU3MzJiXHU4MzA1XHU5NTFhXHU2YmRiXHU3N2RiXHU5NGM2XHU1MzZmXHU4MzAyXHU1MTkyXHU1ZTNkXHU4YzhjXHU4ZDM4XHU0ZTQ4XHU3M2FiXHU2NzlhXHU2ODg1XHU5MTc2XHU5NzA5XHU3MTY0XHU2Y2ExXHU3NzA5XHU1YTkyXHU5NTQxXHU2YmNmXHU3ZjhlXHU2NjI3XHU1YmQwXHU1''@;'; + put 'put ''OWI5XHU1YTlhXHU5NWU4XHU5NWY3XHU0ZWVjXHU4NDBjXHU4NDk5XHU2YWFjXHU3NmRmXHU5NTMwXHU3MzFiXHU2OGE2XHU1YjVmXHU3NzJmXHU5MTlhXHU5NzYxXHU3Y2RjXHU4ZmY3XHU4YzFjXHU1ZjI1XHU3YzczXHU3OWQ4XHU4OWM1XHU2Y2NjXHU4NzFjXHU1YmM2XHU1ZTQyXHU2OGM5''@;'; + put 'put ''XHU3NzIwXHU3ZWY1XHU1MTk1XHU1MTRkXHU1MmM5XHU1YTI5XHU3ZjA1XHU5NzYyXHU4MmQ3XHU2M2NmXHU3Nzg0XHU4NWQwXHU3OWQyXHU2ZTNhXHU1ZTk5XHU1OTk5XHU4NTExXHU3MDZkXHU2YzExXHU2MmJmXHU3NmJmXHU2NTRmXHU2MGFmXHU5NWZkXHU2NjBlXHU4NzlmXHU5ZTIzXHU5''@;'; + put 'put ''NGVkXHU1NDBkXHU1NDdkXHU4YzJjXHU2NDc4XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTk1XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxOTVdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE5NV1bRV1dPTQ5OTIwK0UsTFs0OTkyMCtFXT1CWzE5NV1bRV0pO2ZvcihCWzE5Nl09Ilx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ODE0MFx1ODE0MVx1ODE0Mlx1ODE0M1x1ODE0NFx1ODE0NVx1ODE0N1x1ODE0OVx1ODE0ZFx1ODE0ZVx1ODE0Zlx1ODE1Mlx1ODE1Nlx1ODE1N1x1ODE1OFx1ODE1Ylx1ODE1Y1x1ODE1ZFx1ODE1ZVx1''@;'; + put 'put ''ODE1Zlx1ODE2MVx1ODE2Mlx1ODE2M1x1ODE2NFx1ODE2Nlx1ODE2OFx1ODE2YVx1ODE2Ylx1ODE2Y1x1ODE2Zlx1ODE3Mlx1ODE3M1x1ODE3NVx1ODE3Nlx1ODE3N1x1ODE3OFx1ODE4MVx1ODE4M1x1ODE4NFx1ODE4NVx1ODE4Nlx1ODE4N1x1ODE4OVx1ODE4Ylx1ODE4Y1x1ODE4ZFx1ODE4''@;'; + put 'put ''ZVx1ODE5MFx1ODE5Mlx1ODE5M1x1ODE5NFx1ODE5NVx1ODE5Nlx1ODE5N1x1ODE5OVx1ODE5YVx1ODE5ZVx1ODE5Zlx1ODFhMFx1ODFhMVx1ODFhMlx1ODFhNFx1ODFhNVx1ZmZmZFx1ODFhN1x1ODFhOVx1ODFhYlx1ODFhY1x1ODFhZFx1ODFhZVx1ODFhZlx1ODFiMFx1ODFiMVx1ODFiMlx1''@;'; + put 'put ''ODFiNFx1ODFiNVx1ODFiNlx1ODFiN1x1ODFiOFx1ODFiOVx1ODFiY1x1ODFiZFx1ODFiZVx1ODFiZlx1ODFjNFx1ODFjNVx1ODFjN1x1ODFjOFx1ODFjOVx1ODFjYlx1ODFjZFx1ODFjZVx1ODFjZlx1ODFkMFx1ODFkMVx1ODFkMlx1ODFkM1x1NjQ3OVx1ODYxMVx1NmEyMVx1ODE5Y1x1Nzhl''@;'; + put 'put ''OFx1NjQ2OVx1OWI1NFx1NjJiOVx1NjcyYlx1ODNhYlx1NThhOFx1OWVkOFx1NmNhYlx1NmYyMFx1NWJkZVx1OTY0Y1x1OGMwYlx1NzI1Zlx1NjdkMFx1NjJjN1x1NzI2MVx1NGVhOVx1NTljNlx1NmJjZFx1NTg5M1x1NjZhZVx1NWU1NVx1NTJkZlx1NjE1NVx1NjcyOFx1NzZlZVx1Nzc2Nlx1''@;'; + put 'put ''NzI2N1x1N2E0Nlx1NjJmZlx1NTRlYVx1NTQ1MFx1OTRhMFx1OTBhM1x1NWExY1x1N2ViM1x1NmMxNlx1NGU0M1x1NTk3Nlx1ODAxMFx1NTk0OFx1NTM1N1x1NzUzN1x1OTZiZVx1NTZjYVx1NjMyMFx1ODExMVx1NjA3Y1x1OTVmOVx1NmRkNlx1NTQ2Mlx1OTk4MVx1NTE4NVx1NWFlOVx1ODBm''@;'; + put 'put ''ZFx1NTlhZVx1OTcxM1x1NTAyYVx1NmNlNVx1NWMzY1x1NjJkZlx1NGY2MFx1NTMzZlx1ODE3Ylx1OTAwNlx1NmViYVx1ODUyYlx1NjJjOFx1NWU3NFx1NzhiZVx1NjRiNVx1NjM3Ylx1NWZmNVx1NWExOFx1OTE3Zlx1OWUxZlx1NWMzZlx1NjM0Zlx1ODA0Mlx1NWI3ZFx1NTU2ZVx1OTU0YVx1''@;'; + put 'put ''OTU0ZFx1NmQ4NVx1NjBhOFx1NjdlMFx1NzJkZVx1NTFkZFx1NWI4MVx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE5Nl0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTk2XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxOTZdW0VdXT01MDE3NitFLExbNTAxNzYrRV09QlsxOTZdW0VdKTtmb3Io''@;'; + put 'put ''QlsxOTddPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTgxZDRcdTgxZDVcdTgxZDZcdTgxZDdcdTgxZDhcdTgxZDlcdTgxZGFcdTgxZGJcdTgxZGNcdTgxZGRcdTgxZGVcdTgxZGZcdTgxZTBcdTgxZTFcdTgxZTJcdTgxZTRcdTgxZTVc''@;'; + put 'put ''dTgxZTZcdTgxZThcdTgxZTlcdTgxZWJcdTgxZWVcdTgxZWZcdTgxZjBcdTgxZjFcdTgxZjJcdTgxZjVcdTgxZjZcdTgxZjdcdTgxZjhcdTgxZjlcdTgxZmFcdTgxZmRcdTgxZmZcdTgyMDNcdTgyMDdcdTgyMDhcdTgyMDlcdTgyMGFcdTgyMGJcdTgyMGVcdTgyMGZcdTgyMTFcdTgyMTNcdTgy''@;'; + put 'put ''MTVcdTgyMTZcdTgyMTdcdTgyMThcdTgyMTlcdTgyMWFcdTgyMWRcdTgyMjBcdTgyMjRcdTgyMjVcdTgyMjZcdTgyMjdcdTgyMjlcdTgyMmVcdTgyMzJcdTgyM2FcdTgyM2NcdTgyM2RcdTgyM2ZcdWZmZmRcdTgyNDBcdTgyNDFcdTgyNDJcdTgyNDNcdTgyNDVcdTgyNDZcdTgyNDhcdTgyNGFc''@;'; + put 'put ''dTgyNGNcdTgyNGRcdTgyNGVcdTgyNTBcdTgyNTFcdTgyNTJcdTgyNTNcdTgyNTRcdTgyNTVcdTgyNTZcdTgyNTdcdTgyNTlcdTgyNWJcdTgyNWNcdTgyNWRcdTgyNWVcdTgyNjBcdTgyNjFcdTgyNjJcdTgyNjNcdTgyNjRcdTgyNjVcdTgyNjZcdTgyNjdcdTgyNjlcdTYyZTdcdTZjZGVcdTcy''@;'; + put 'put ''NWJcdTYyNmRcdTk0YWVcdTdlYmRcdTgxMTNcdTZkNTNcdTUxOWNcdTVmMDRcdTU5NzRcdTUyYWFcdTYwMTJcdTU5NzNcdTY2OTZcdTg2NTBcdTc1OWZcdTYzMmFcdTYxZTZcdTdjZWZcdThiZmFcdTU0ZTZcdTZiMjdcdTllMjVcdTZiYjRcdTg1ZDVcdTU0NTVcdTUwNzZcdTZjYTRcdTU1NmFc''@;'; + put 'put ''dThkYjRcdTcyMmNcdTVlMTVcdTYwMTVcdTc0MzZcdTYyY2RcdTYzOTJcdTcyNGNcdTVmOThcdTZlNDNcdTZkM2VcdTY1MDBcdTZmNThcdTc2ZDhcdTc4ZDBcdTc2ZmNcdTc1NTRcdTUyMjRcdTUzZGJcdTRlNTNcdTVlOWVcdTY1YzFcdTgwMmFcdTgwZDZcdTYyOWJcdTU0ODZcdTUyMjhcdTcw''@;'; + put 'put ''YWVcdTg4OGRcdThkZDFcdTZjZTFcdTU0NzhcdTgwZGFcdTU3ZjlcdTg4ZjRcdThkNTRcdTk2NmFcdTkxNGRcdTRmNjlcdTZjOWJcdTU1YjdcdTc2YzZcdTc4MzBcdTYyYThcdTcwZjlcdTZmOGVcdTVmNmRcdTg0ZWNcdTY4ZGFcdTc4N2NcdTdiZjdcdTgxYThcdTY3MGJcdTllNGZcdTYzNjdc''@;'; + put 'put ''dTc4YjBcdTU3NmZcdTc4MTJcdTk3MzlcdTYyNzlcdTYyYWJcdTUyODhcdTc0MzVcdTZiZDdcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxOTddLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE5N11bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTk3XVtFXV09NTA0MzIrRSxMWzUwNDMyK0VdPUJb''@;'; + put 'put ''MTk3XVtFXSk7Zm9yKEJbMTk4XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4MjZhXHU4MjZiXHU4MjZjXHU4MjZkXHU4MjcxXHU4Mjc1XHU4Mjc2XHU4Mjc3XHU4Mjc4XHU4MjdiXHU4MjdjXHU4MjgwXHU4MjgxXHU4MjgzXHU4Mjg1''@;'; + put 'put ''XHU4Mjg2XHU4Mjg3XHU4Mjg5XHU4MjhjXHU4MjkwXHU4MjkzXHU4Mjk0XHU4Mjk1XHU4Mjk2XHU4MjlhXHU4MjliXHU4MjllXHU4MmEwXHU4MmEyXHU4MmEzXHU4MmE3XHU4MmIyXHU4MmI1XHU4MmI2XHU4MmJhXHU4MmJiXHU4MmJjXHU4MmJmXHU4MmMwXHU4MmMyXHU4MmMzXHU4MmM1XHU4''@;'; + put 'put ''MmM2XHU4MmM5XHU4MmQwXHU4MmQ2XHU4MmQ5XHU4MmRhXHU4MmRkXHU4MmUyXHU4MmU3XHU4MmU4XHU4MmU5XHU4MmVhXHU4MmVjXHU4MmVkXHU4MmVlXHU4MmYwXHU4MmYyXHU4MmYzXHU4MmY1XHU4MmY2XHU4MmY4XHVmZmZkXHU4MmZhXHU4MmZjXHU4MmZkXHU4MmZlXHU4MmZmXHU4MzAw''@;'; + put 'put ''XHU4MzBhXHU4MzBiXHU4MzBkXHU4MzEwXHU4MzEyXHU4MzEzXHU4MzE2XHU4MzE4XHU4MzE5XHU4MzFkXHU4MzFlXHU4MzFmXHU4MzIwXHU4MzIxXHU4MzIyXHU4MzIzXHU4MzI0XHU4MzI1XHU4MzI2XHU4MzI5XHU4MzJhXHU4MzJlXHU4MzMwXHU4MzMyXHU4MzM3XHU4MzNiXHU4MzNkXHU1''@;'; + put 'put ''NTY0XHU4MTNlXHU3NWIyXHU3NmFlXHU1MzM5XHU3NWRlXHU1MGZiXHU1YzQxXHU4YjZjXHU3YmM3XHU1MDRmXHU3MjQ3XHU5YTk3XHU5OGQ4XHU2ZjAyXHU3NGUyXHU3OTY4XHU2NDg3XHU3N2E1XHU2MmZjXHU5ODkxXHU4ZDJiXHU1NGMxXHU4MDU4XHU0ZTUyXHU1NzZhXHU4MmY5XHU4NDBk''@;'; + put 'put ''XHU1ZTczXHU1MWVkXHU3NGY2XHU4YmM0XHU1YzRmXHU1NzYxXHU2Y2ZjXHU5ODg3XHU1YTQ2XHU3ODM0XHU5YjQ0XHU4ZmViXHU3Yzk1XHU1MjU2XHU2MjUxXHU5NGZhXHU0ZWM2XHU4Mzg2XHU4NDYxXHU4M2U5XHU4NGIyXHU1N2Q0XHU2NzM0XHU1NzAzXHU2NjZlXHU2ZDY2XHU4YzMxXHU2''@;'; + put 'put ''NmRkXHU3MDExXHU2NzFmXHU2YjNhXHU2ODE2XHU2MjFhXHU1OWJiXHU0ZTAzXHU1MWM0XHU2ZjA2XHU2N2QyXHU2YzhmXHU1MTc2XHU2OGNiXHU1OTQ3XHU2YjY3XHU3NTY2XHU1ZDBlXHU4MTEwXHU5ZjUwXHU2NWQ3XHU3OTQ4XHU3OTQxXHU5YTkxXHU4ZDc3XHU1YzgyXHU0ZTVlXHU0ZjAx''@;'; + put 'put ''XHU1NDJmXHU1OTUxXHU3ODBjXHU1NjY4XHU2YzE0XHU4ZmM0XHU1ZjAzXHU2YzdkXHU2Y2UzXHU4YmFiXHU2MzkwXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTk4XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxOThdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE5OF1bRV1dPTUwNjg4K0Us''@;'; + put 'put ''TFs1MDY4OCtFXT1CWzE5OF1bRV0pO2ZvcihCWzE5OV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ODMzZVx1ODMzZlx1ODM0MVx1ODM0Mlx1ODM0NFx1ODM0NVx1ODM0OFx1ODM0YVx1ODM0Ylx1ODM0Y1x1ODM0ZFx1ODM0ZVx1ODM1''@;'; + put 'put ''M1x1ODM1NVx1ODM1Nlx1ODM1N1x1ODM1OFx1ODM1OVx1ODM1ZFx1ODM2Mlx1ODM3MFx1ODM3MVx1ODM3Mlx1ODM3M1x1ODM3NFx1ODM3NVx1ODM3Nlx1ODM3OVx1ODM3YVx1ODM3ZVx1ODM3Zlx1ODM4MFx1ODM4MVx1ODM4Mlx1ODM4M1x1ODM4NFx1ODM4N1x1ODM4OFx1ODM4YVx1ODM4Ylx1''@;'; + put 'put ''ODM4Y1x1ODM4ZFx1ODM4Zlx1ODM5MFx1ODM5MVx1ODM5NFx1ODM5NVx1ODM5Nlx1ODM5N1x1ODM5OVx1ODM5YVx1ODM5ZFx1ODM5Zlx1ODNhMVx1ODNhMlx1ODNhM1x1ODNhNFx1ODNhNVx1ODNhNlx1ODNhN1x1ODNhY1x1ODNhZFx1ODNhZVx1ZmZmZFx1ODNhZlx1ODNiNVx1ODNiYlx1ODNi''@;'; + put 'put ''ZVx1ODNiZlx1ODNjMlx1ODNjM1x1ODNjNFx1ODNjNlx1ODNjOFx1ODNjOVx1ODNjYlx1ODNjZFx1ODNjZVx1ODNkMFx1ODNkMVx1ODNkMlx1ODNkM1x1ODNkNVx1ODNkN1x1ODNkOVx1ODNkYVx1ODNkYlx1ODNkZVx1ODNlMlx1ODNlM1x1ODNlNFx1ODNlNlx1ODNlN1x1ODNlOFx1ODNlYlx1''@;'; + put 'put ''ODNlY1x1ODNlZFx1NjA3MFx1NmQzZFx1NzI3NVx1NjI2Nlx1OTQ4ZVx1OTRjNVx1NTM0M1x1OGZjMVx1N2I3ZVx1NGVkZlx1OGMyNlx1NGU3ZVx1OWVkNFx1OTRiMVx1OTRiM1x1NTI0ZFx1NmY1Y1x1OTA2M1x1NmQ0NVx1OGMzNFx1NTgxMVx1NWQ0Y1x1NmIyMFx1NmI0OVx1NjdhYVx1NTQ1''@;'; + put 'put ''Ylx1ODE1NFx1N2Y4Y1x1NTg5OVx1ODUzN1x1NWYzYVx1NjJhMlx1NmE0N1x1OTUzOVx1NjU3Mlx1NjA4NFx1Njg2NVx1NzdhN1x1NGU1NFx1NGZhOFx1NWRlN1x1OTc5OFx1NjRhY1x1N2ZkOFx1NWNlZFx1NGZjZlx1N2E4ZFx1NTIwN1x1ODMwNFx1NGUxNFx1NjAyZlx1N2E4M1x1OTRhNlx1''@;'; + put 'put ''NGZiNVx1NGViMlx1NzllNlx1NzQzNFx1NTJlNFx1ODJiOVx1NjRkMlx1NzliZFx1NWJkZFx1NmM4MVx1OTc1Mlx1OGY3Ylx1NmMyMlx1NTAzZVx1NTM3Zlx1NmUwNVx1NjRjZVx1NjY3NFx1NmMzMFx1NjBjNVx1OTg3N1x1OGJmN1x1NWU4Nlx1NzQzY1x1N2E3N1x1NzljYlx1NGUxOFx1OTBi''@;'; + put 'put ''MVx1NzQwM1x1NmM0Mlx1NTZkYVx1OTE0Ylx1NmNjNVx1OGQ4Ylx1NTMzYVx1ODZjNlx1NjZmMlx1OGVhZlx1NWM0OFx1OWE3MVx1NmUyMFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE5OV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTk5XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxOTld''@;'; + put 'put ''W0VdXT01MDk0NCtFLExbNTA5NDQrRV09QlsxOTldW0VdKTtmb3IoQlsyMDBdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTgzZWVcdTgzZWZcdTgzZjNcdTgzZjRcdTgzZjVcdTgzZjZcdTgzZjdcdTgzZmFcdTgzZmJcdTgzZmNcdTgz''@;'; + put 'put ''ZmVcdTgzZmZcdTg0MDBcdTg0MDJcdTg0MDVcdTg0MDdcdTg0MDhcdTg0MDlcdTg0MGFcdTg0MTBcdTg0MTJcdTg0MTNcdTg0MTRcdTg0MTVcdTg0MTZcdTg0MTdcdTg0MTlcdTg0MWFcdTg0MWJcdTg0MWVcdTg0MWZcdTg0MjBcdTg0MjFcdTg0MjJcdTg0MjNcdTg0MjlcdTg0MmFcdTg0MmJc''@;'; + put 'put ''dTg0MmNcdTg0MmRcdTg0MmVcdTg0MmZcdTg0MzBcdTg0MzJcdTg0MzNcdTg0MzRcdTg0MzVcdTg0MzZcdTg0MzdcdTg0MzlcdTg0M2FcdTg0M2JcdTg0M2VcdTg0M2ZcdTg0NDBcdTg0NDFcdTg0NDJcdTg0NDNcdTg0NDRcdTg0NDVcdTg0NDdcdTg0NDhcdTg0NDlcdWZmZmRcdTg0NGFcdTg0''@;'; + put 'put ''NGJcdTg0NGNcdTg0NGRcdTg0NGVcdTg0NGZcdTg0NTBcdTg0NTJcdTg0NTNcdTg0NTRcdTg0NTVcdTg0NTZcdTg0NThcdTg0NWRcdTg0NWVcdTg0NWZcdTg0NjBcdTg0NjJcdTg0NjRcdTg0NjVcdTg0NjZcdTg0NjdcdTg0NjhcdTg0NmFcdTg0NmVcdTg0NmZcdTg0NzBcdTg0NzJcdTg0NzRc''@;'; + put 'put ''dTg0NzdcdTg0NzlcdTg0N2JcdTg0N2NcdTUzZDZcdTVhMzZcdTlmOGJcdThkYTNcdTUzYmJcdTU3MDhcdTk4YTdcdTY3NDNcdTkxOWJcdTZjYzlcdTUxNjhcdTc1Y2FcdTYyZjNcdTcyYWNcdTUyMzhcdTUyOWRcdTdmM2FcdTcwOTRcdTc2MzhcdTUzNzRcdTllNGFcdTY5YjdcdTc4NmVcdTk2''@;'; + put 'put ''YzBcdTg4ZDlcdTdmYTRcdTcxMzZcdTcxYzNcdTUxODlcdTY3ZDNcdTc0ZTRcdTU4ZTRcdTY1MThcdTU2YjdcdThiYTlcdTk5NzZcdTYyNzBcdTdlZDVcdTYwZjlcdTcwZWRcdTU4ZWNcdTRlYzFcdTRlYmFcdTVmY2RcdTk3ZTdcdTRlZmJcdThiYTRcdTUyMDNcdTU5OGFcdTdlYWJcdTYyNTRc''@;'; + put 'put ''dTRlY2RcdTY1ZTVcdTYyMGVcdTgzMzhcdTg0YzlcdTgzNjNcdTg3OGRcdTcxOTRcdTZlYjZcdTViYjlcdTdlZDJcdTUxOTdcdTYzYzlcdTY3ZDRcdTgwODlcdTgzMzlcdTg4MTVcdTUxMTJcdTViN2FcdTU5ODJcdThmYjFcdTRlNzNcdTZjNWRcdTUxNjVcdTg5MjVcdThmNmZcdTk2MmVcdTg1''@;'; + put 'put ''NGFcdTc0NWVcdTk1MTBcdTk1ZjBcdTZkYTZcdTgyZTVcdTVmMzFcdTY0OTJcdTZkMTJcdTg0MjhcdTgxNmVcdTljYzNcdTU4NWVcdThkNWJcdTRlMDlcdTUzYzFcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMDBdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIwMF1bRV0uY2hhckNvZGVBdCgw''@;'; + put 'put ''KSYmKG1lW0JbMjAwXVtFXV09NTEyMDArRSxMWzUxMjAwK0VdPUJbMjAwXVtFXSk7Zm9yKEJbMjAxXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4NDdkXHU4NDdlXHU4NDdmXHU4NDgwXHU4NDgxXHU4NDgzXHU4NDg0XHU4NDg1XHU4''@;'; + put 'put ''NDg2XHU4NDhhXHU4NDhkXHU4NDhmXHU4NDkwXHU4NDkxXHU4NDkyXHU4NDkzXHU4NDk0XHU4NDk1XHU4NDk2XHU4NDk4XHU4NDlhXHU4NDliXHU4NDlkXHU4NDllXHU4NDlmXHU4NGEwXHU4NGEyXHU4NGEzXHU4NGE0XHU4NGE1XHU4NGE2XHU4NGE3XHU4NGE4XHU4NGE5XHU4NGFhXHU4NGFi''@;'; + put 'put ''XHU4NGFjXHU4NGFkXHU4NGFlXHU4NGIwXHU4NGIxXHU4NGIzXHU4NGI1XHU4NGI2XHU4NGI3XHU4NGJiXHU4NGJjXHU4NGJlXHU4NGMwXHU4NGMyXHU4NGMzXHU4NGM1XHU4NGM2XHU4NGM3XHU4NGM4XHU4NGNiXHU4NGNjXHU4NGNlXHU4NGNmXHU4NGQyXHU4NGQ0XHU4NGQ1XHU4NGQ3XHVm''@;'; + put 'put ''ZmZkXHU4NGQ4XHU4NGQ5XHU4NGRhXHU4NGRiXHU4NGRjXHU4NGRlXHU4NGUxXHU4NGUyXHU4NGU0XHU4NGU3XHU4NGU4XHU4NGU5XHU4NGVhXHU4NGViXHU4NGVkXHU4NGVlXHU4NGVmXHU4NGYxXHU4NGYyXHU4NGYzXHU4NGY0XHU4NGY1XHU4NGY2XHU4NGY3XHU4NGY4XHU4NGY5XHU4NGZh''@;'; + put 'put ''XHU4NGZiXHU4NGZkXHU4NGZlXHU4NTAwXHU4NTAxXHU4NTAyXHU0ZjFlXHU2NTYzXHU2ODUxXHU1NWQzXHU0ZTI3XHU2NDE0XHU5YTlhXHU2MjZiXHU1YWMyXHU3NDVmXHU4MjcyXHU2ZGE5XHU2OGVlXHU1MGU3XHU4MzhlXHU3ODAyXHU2NzQwXHU1MjM5XHU2Yzk5XHU3ZWIxXHU1MGJiXHU1''@;'; + put 'put ''NTY1XHU3MTVlXHU3YjViXHU2NjUyXHU3M2NhXHU4MmViXHU2NzQ5XHU1YzcxXHU1MjIwXHU3MTdkXHU4ODZiXHU5NWVhXHU5NjU1XHU2NGM1XHU4ZDYxXHU4MWIzXHU1NTg0XHU2YzU1XHU2MjQ3XHU3ZjJlXHU1ODkyXHU0ZjI0XHU1NTQ2XHU4ZDRmXHU2NjRjXHU0ZTBhXHU1YzFhXHU4OGYz''@;'; + put 'put ''XHU2OGEyXHU2MzRlXHU3YTBkXHU3MGU3XHU4MjhkXHU1MmZhXHU5N2Y2XHU1YzExXHU1NGU4XHU5MGI1XHU3ZWNkXHU1OTYyXHU4ZDRhXHU4NmM3XHU4MjBjXHU4MjBkXHU4ZDY2XHU2NDQ0XHU1YzA0XHU2MTUxXHU2ZDg5XHU3OTNlXHU4YmJlXHU3ODM3XHU3NTMzXHU1NDdiXHU0ZjM4XHU4''@;'; + put 'put ''ZWFiXHU2ZGYxXHU1YTIwXHU3ZWM1XHU3OTVlXHU2Yzg4XHU1YmExXHU1YTc2XHU3NTFhXHU4MGJlXHU2MTRlXHU2ZTE3XHU1OGYwXHU3NTFmXHU3NTI1XHU3MjcyXHU1MzQ3XHU3ZWYzXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjAxXS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMDFdW0Vd''@;'; + put 'put ''LmNoYXJDb2RlQXQoMCkmJihtZVtCWzIwMV1bRV1dPTUxNDU2K0UsTFs1MTQ1NitFXT1CWzIwMV1bRV0pO2ZvcihCWzIwMl09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ODUwM1x1ODUwNFx1ODUwNVx1ODUwNlx1ODUwN1x1ODUwOFx1''@;'; + put 'put ''ODUwOVx1ODUwYVx1ODUwYlx1ODUwZFx1ODUwZVx1ODUwZlx1ODUxMFx1ODUxMlx1ODUxNFx1ODUxNVx1ODUxNlx1ODUxOFx1ODUxOVx1ODUxYlx1ODUxY1x1ODUxZFx1ODUxZVx1ODUyMFx1ODUyMlx1ODUyM1x1ODUyNFx1ODUyNVx1ODUyNlx1ODUyN1x1ODUyOFx1ODUyOVx1ODUyYVx1ODUy''@;'; + put 'put ''ZFx1ODUyZVx1ODUyZlx1ODUzMFx1ODUzMVx1ODUzMlx1ODUzM1x1ODUzNFx1ODUzNVx1ODUzNlx1ODUzZVx1ODUzZlx1ODU0MFx1ODU0MVx1ODU0Mlx1ODU0NFx1ODU0NVx1ODU0Nlx1ODU0N1x1ODU0Ylx1ODU0Y1x1ODU0ZFx1ODU0ZVx1ODU0Zlx1ODU1MFx1ODU1MVx1ODU1Mlx1ODU1M1x1''@;'; + put 'put ''ODU1NFx1ODU1NVx1ZmZmZFx1ODU1N1x1ODU1OFx1ODU1YVx1ODU1Ylx1ODU1Y1x1ODU1ZFx1ODU1Zlx1ODU2MFx1ODU2MVx1ODU2Mlx1ODU2M1x1ODU2NVx1ODU2Nlx1ODU2N1x1ODU2OVx1ODU2YVx1ODU2Ylx1ODU2Y1x1ODU2ZFx1ODU2ZVx1ODU2Zlx1ODU3MFx1ODU3MVx1ODU3M1x1ODU3''@;'; + put 'put ''NVx1ODU3Nlx1ODU3N1x1ODU3OFx1ODU3Y1x1ODU3ZFx1ODU3Zlx1ODU4MFx1ODU4MVx1NzcwMVx1NzZkYlx1NTI2OVx1ODBkY1x1NTcyM1x1NWUwOFx1NTkzMVx1NzJlZVx1NjViZFx1NmU3Zlx1OGJkN1x1NWMzOFx1ODY3MVx1NTM0MVx1NzdmM1x1NjJmZVx1NjVmNlx1NGVjMFx1OThkZlx1''@;'; + put 'put ''ODY4MFx1NWI5ZVx1OGJjNlx1NTNmMlx1NzdlMlx1NGY3Zlx1NWM0ZVx1OWE3Nlx1NTljYlx1NWYwZlx1NzkzYVx1NThlYlx1NGUxNlx1NjdmZlx1NGU4Ylx1NjJlZFx1OGE5M1x1OTAxZFx1NTJiZlx1NjYyZlx1NTVkY1x1NTY2Y1x1OTAwMlx1NGVkNVx1NGY4ZFx1OTFjYVx1OTk3MFx1NmMw''@;'; + put 'put ''Zlx1NWUwMlx1NjA0M1x1NWJhNFx1ODljNlx1OGJkNVx1NjUzNlx1NjI0Ylx1OTk5Nlx1NWI4OFx1NWJmZlx1NjM4OFx1NTUyZVx1NTNkN1x1NzYyNlx1NTE3ZFx1ODUyY1x1NjdhMlx1NjhiM1x1NmI4YVx1NjI5Mlx1OGY5M1x1NTNkNFx1ODIxMlx1NmRkMVx1NzU4Zlx1NGU2Nlx1OGQ0ZVx1''@;'; + put 'put ''NWI3MFx1NzE5Zlx1ODVhZlx1NjY5MVx1NjZkOVx1N2Y3Mlx1ODcwMFx1OWVjZFx1OWYyMFx1NWM1ZVx1NjcyZlx1OGZmMFx1NjgxMVx1Njc1Zlx1NjIwZFx1N2FkNlx1NTg4NVx1NWViNlx1NjU3MFx1NmYzMVx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIwMl0ubGVuZ3RoOysrRSk2NTUz''@;'; + put 'put ''MyE9PUJbMjAyXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMDJdW0VdXT01MTcxMitFLExbNTE3MTIrRV09QlsyMDJdW0VdKTtmb3IoQlsyMDNdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTg1ODJcdTg1ODNcdTg1ODZcdTg1ODhc''@;'; + put 'put ''dTg1ODlcdTg1OGFcdTg1OGJcdTg1OGNcdTg1OGRcdTg1OGVcdTg1OTBcdTg1OTFcdTg1OTJcdTg1OTNcdTg1OTRcdTg1OTVcdTg1OTZcdTg1OTdcdTg1OThcdTg1OTlcdTg1OWFcdTg1OWRcdTg1OWVcdTg1OWZcdTg1YTBcdTg1YTFcdTg1YTJcdTg1YTNcdTg1YTVcdTg1YTZcdTg1YTdcdTg1''@;'; + put 'put ''YTlcdTg1YWJcdTg1YWNcdTg1YWRcdTg1YjFcdTg1YjJcdTg1YjNcdTg1YjRcdTg1YjVcdTg1YjZcdTg1YjhcdTg1YmFcdTg1YmJcdTg1YmNcdTg1YmRcdTg1YmVcdTg1YmZcdTg1YzBcdTg1YzJcdTg1YzNcdTg1YzRcdTg1YzVcdTg1YzZcdTg1YzdcdTg1YzhcdTg1Y2FcdTg1Y2JcdTg1Y2Nc''@;'; + put 'put ''dTg1Y2RcdTg1Y2VcdTg1ZDFcdTg1ZDJcdWZmZmRcdTg1ZDRcdTg1ZDZcdTg1ZDdcdTg1ZDhcdTg1ZDlcdTg1ZGFcdTg1ZGJcdTg1ZGRcdTg1ZGVcdTg1ZGZcdTg1ZTBcdTg1ZTFcdTg1ZTJcdTg1ZTNcdTg1ZTVcdTg1ZTZcdTg1ZTdcdTg1ZThcdTg1ZWFcdTg1ZWJcdTg1ZWNcdTg1ZWRcdTg1''@;'; + put 'put ''ZWVcdTg1ZWZcdTg1ZjBcdTg1ZjFcdTg1ZjJcdTg1ZjNcdTg1ZjRcdTg1ZjVcdTg1ZjZcdTg1ZjdcdTg1ZjhcdTYwNTVcdTUyMzdcdTgwMGRcdTY0NTRcdTg4NzBcdTc1MjlcdTVlMDVcdTY4MTNcdTYyZjRcdTk3MWNcdTUzY2NcdTcyM2RcdThjMDFcdTZjMzRcdTc3NjFcdTdhMGVcdTU0MmVc''@;'; + put 'put ''dTc3YWNcdTk4N2FcdTgyMWNcdThiZjRcdTc4NTVcdTY3MTRcdTcwYzFcdTY1YWZcdTY0OTVcdTU2MzZcdTYwMWRcdTc5YzFcdTUzZjhcdTRlMWRcdTZiN2JcdTgwODZcdTViZmFcdTU1ZTNcdTU2ZGJcdTRmM2FcdTRmM2NcdTk5NzJcdTVkZjNcdTY3N2VcdTgwMzhcdTYwMDJcdTk4ODJcdTkw''@;'; + put 'put ''MDFcdTViOGJcdThiYmNcdThiZjVcdTY0MWNcdTgyNThcdTY0ZGVcdTU1ZmRcdTgyY2ZcdTkxNjVcdTRmZDdcdTdkMjBcdTkwMWZcdTdjOWZcdTUwZjNcdTU4NTFcdTZlYWZcdTViYmZcdThiYzlcdTgwODNcdTkxNzhcdTg0OWNcdTdiOTdcdTg2N2RcdTk2OGJcdTk2OGZcdTdlZTVcdTlhZDNc''@;'; + put 'put ''dTc4OGVcdTVjODFcdTdhNTdcdTkwNDJcdTk2YTdcdTc5NWZcdTViNTlcdTYzNWZcdTdiMGJcdTg0ZDFcdTY4YWRcdTU1MDZcdTdmMjlcdTc0MTBcdTdkMjJcdTk1MDFcdTYyNDBcdTU4NGNcdTRlZDZcdTViODNcdTU5NzlcdTU4NTRcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMDNdLmxl''@;'; + put 'put ''bmd0aDsrK0UpNjU1MzMhPT1CWzIwM11bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjAzXVtFXV09NTE5NjgrRSxMWzUxOTY4K0VdPUJbMjAzXVtFXSk7Zm9yKEJbMjA0XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4NWY5XHU4NWZh''@;'; + put 'put ''XHU4NWZjXHU4NWZkXHU4NWZlXHU4NjAwXHU4NjAxXHU4NjAyXHU4NjAzXHU4NjA0XHU4NjA2XHU4NjA3XHU4NjA4XHU4NjA5XHU4NjBhXHU4NjBiXHU4NjBjXHU4NjBkXHU4NjBlXHU4NjBmXHU4NjEwXHU4NjEyXHU4NjEzXHU4NjE0XHU4NjE1XHU4NjE3XHU4NjE4XHU4NjE5XHU4NjFhXHU4''@;'; + put 'put ''NjFiXHU4NjFjXHU4NjFkXHU4NjFlXHU4NjFmXHU4NjIwXHU4NjIxXHU4NjIyXHU4NjIzXHU4NjI0XHU4NjI1XHU4NjI2XHU4NjI4XHU4NjJhXHU4NjJiXHU4NjJjXHU4NjJkXHU4NjJlXHU4NjJmXHU4NjMwXHU4NjMxXHU4NjMyXHU4NjMzXHU4NjM0XHU4NjM1XHU4NjM2XHU4NjM3XHU4NjM5''@;'; + put 'put ''XHU4NjNhXHU4NjNiXHU4NjNkXHU4NjNlXHU4NjNmXHU4NjQwXHVmZmZkXHU4NjQxXHU4NjQyXHU4NjQzXHU4NjQ0XHU4NjQ1XHU4NjQ2XHU4NjQ3XHU4NjQ4XHU4NjQ5XHU4NjRhXHU4NjRiXHU4NjRjXHU4NjUyXHU4NjUzXHU4NjU1XHU4NjU2XHU4NjU3XHU4NjU4XHU4NjU5XHU4NjViXHU4''@;'; + put 'put ''NjVjXHU4NjVkXHU4NjVmXHU4NjYwXHU4NjYxXHU4NjYzXHU4NjY0XHU4NjY1XHU4NjY2XHU4NjY3XHU4NjY4XHU4NjY5XHU4NjZhXHU3MzZkXHU2MzFlXHU4ZTRiXHU4ZTBmXHU4MGNlXHU4MmQ0XHU2MmFjXHU1M2YwXHU2Y2YwXHU5MTVlXHU1OTJhXHU2MDAxXHU2YzcwXHU1NzRkXHU2NDRh''@;'; + put 'put ''XHU4ZDJhXHU3NjJiXHU2ZWU5XHU1NzViXHU2YTgwXHU3NWYwXHU2ZjZkXHU4YzJkXHU4YzA4XHU1NzY2XHU2YmVmXHU4ODkyXHU3OGIzXHU2M2EyXHU1M2Y5XHU3MGFkXHU2YzY0XHU1ODU4XHU2NDJhXHU1ODAyXHU2OGUwXHU4MTliXHU1NTEwXHU3Y2Q2XHU1MDE4XHU4ZWJhXHU2ZGNjXHU4''@;'; + put 'put ''ZDlmXHU3MGViXHU2MzhmXHU2ZDliXHU2ZWQ0XHU3ZWU2XHU4NDA0XHU2ODQzXHU5MDAzXHU2ZGQ4XHU5Njc2XHU4YmE4XHU1OTU3XHU3Mjc5XHU4NWU0XHU4MTdlXHU3NWJjXHU4YThhXHU2OGFmXHU1MjU0XHU4ZTIyXHU5NTExXHU2M2QwXHU5ODk4XHU4ZTQ0XHU1NTdjXHU0ZjUzXHU2NmZm''@;'; + put 'put ''XHU1NjhmXHU2MGQ1XHU2ZDk1XHU1MjQzXHU1YzQ5XHU1OTI5XHU2ZGZiXHU1ODZiXHU3NTMwXHU3NTFjXHU2MDZjXHU4MjE0XHU4MTQ2XHU2MzExXHU2NzYxXHU4ZmUyXHU3NzNhXHU4ZGYzXHU4ZDM0XHU5NGMxXHU1ZTE2XHU1Mzg1XHU1NDJjXHU3MGMzXHVmZmZkIi5zcGxpdCgiIiksRT0w''@;'; + put 'put ''O0UhPUJbMjA0XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMDRdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIwNF1bRV1dPTUyMjI0K0UsTFs1MjIyNCtFXT1CWzIwNF1bRV0pO2ZvcihCWzIwNV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ODY2ZFx1ODY2Zlx1ODY3MFx1ODY3Mlx1ODY3M1x1ODY3NFx1ODY3NVx1ODY3Nlx1ODY3N1x1ODY3OFx1ODY4M1x1ODY4NFx1ODY4NVx1ODY4Nlx1ODY4N1x1ODY4OFx1ODY4OVx1ODY4ZVx1ODY4Zlx1ODY5MFx1ODY5MVx1ODY5Mlx1ODY5NFx1ODY5Nlx1ODY5N1x1ODY5OFx1ODY5OVx1''@;'; + put 'put ''ODY5YVx1ODY5Ylx1ODY5ZVx1ODY5Zlx1ODZhMFx1ODZhMVx1ODZhMlx1ODZhNVx1ODZhNlx1ODZhYlx1ODZhZFx1ODZhZVx1ODZiMlx1ODZiM1x1ODZiN1x1ODZiOFx1ODZiOVx1ODZiYlx1ODZiY1x1ODZiZFx1ODZiZVx1ODZiZlx1ODZjMVx1ODZjMlx1ODZjM1x1ODZjNVx1ODZjOFx1ODZj''@;'; + put 'put ''Y1x1ODZjZFx1ODZkMlx1ODZkM1x1ODZkNVx1ODZkNlx1ODZkN1x1ODZkYVx1ODZkY1x1ZmZmZFx1ODZkZFx1ODZlMFx1ODZlMVx1ODZlMlx1ODZlM1x1ODZlNVx1ODZlNlx1ODZlN1x1ODZlOFx1ODZlYVx1ODZlYlx1ODZlY1x1ODZlZlx1ODZmNVx1ODZmNlx1ODZmN1x1ODZmYVx1ODZmYlx1''@;'; + put 'put ''ODZmY1x1ODZmZFx1ODZmZlx1ODcwMVx1ODcwNFx1ODcwNVx1ODcwNlx1ODcwYlx1ODcwY1x1ODcwZVx1ODcwZlx1ODcxMFx1ODcxMVx1ODcxNFx1ODcxNlx1NmM0MFx1NWVmN1x1NTA1Y1x1NGVhZFx1NWVhZFx1NjMzYVx1ODI0N1x1OTAxYVx1Njg1MFx1OTE2ZVx1NzdiM1x1NTQwY1x1OTRk''@;'; + put 'put ''Y1x1NWY2NFx1N2FlNVx1Njg3Nlx1NjM0NVx1N2I1Mlx1N2VkZlx1NzVkYlx1NTA3N1x1NjI5NVx1NTkzNFx1OTAwZlx1NTFmOFx1NzljM1x1N2E4MVx1NTZmZVx1NWY5Mlx1OTAxNFx1NmQ4Mlx1NWM2MFx1NTcxZlx1NTQxMFx1NTE1NFx1NmU0ZFx1NTZlMlx1NjNhOFx1OTg5M1x1ODE3Zlx1''@;'; + put 'put ''ODcxNVx1ODkyYVx1OTAwMFx1NTQxZVx1NWM2Zlx1ODFjMFx1NjJkNlx1NjI1OFx1ODEzMVx1OWUzNVx1OTY0MFx1OWE2ZVx1OWE3Y1x1NjkyZFx1NTlhNVx1NjJkM1x1NTUzZVx1NjMxNlx1NTRjN1x1ODZkOVx1NmQzY1x1NWEwM1x1NzRlNlx1ODg5Y1x1NmI2YVx1NTkxNlx1OGM0Y1x1NWYy''@;'; + put 'put ''Zlx1NmU3ZVx1NzNhOVx1OTg3ZFx1NGUzOFx1NzBmN1x1NWI4Y1x1Nzg5N1x1NjMzZFx1NjY1YVx1NzY5Nlx1NjBjYlx1NWI5Ylx1NWE0OVx1NGUwN1x1ODE1NVx1NmM2YVx1NzM4Ylx1NGVhMVx1Njc4OVx1N2Y1MVx1NWY4MFx1NjVmYVx1NjcxYlx1NWZkOFx1NTk4NFx1NWEwMVx1ZmZmZCIu''@;'; + put 'put ''c3BsaXQoIiIpLEU9MDtFIT1CWzIwNV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjA1XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMDVdW0VdXT01MjQ4MCtFLExbNTI0ODArRV09QlsyMDVdW0VdKTtmb3IoQlsyMDZdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdTg3MTlcdTg3MWJcdTg3MWRcdTg3MWZcdTg3MjBcdTg3MjRcdTg3MjZcdTg3MjdcdTg3MjhcdTg3MmFcdTg3MmJcdTg3MmNcdTg3MmRcdTg3MmZcdTg3MzBcdTg3MzJcdTg3MzNcdTg3MzVcdTg3MzZcdTg3MzhcdTg3MzlcdTg3M2FcdTg3M2NcdTg3M2RcdTg3NDBc''@;'; + put 'put ''dTg3NDFcdTg3NDJcdTg3NDNcdTg3NDRcdTg3NDVcdTg3NDZcdTg3NGFcdTg3NGJcdTg3NGRcdTg3NGZcdTg3NTBcdTg3NTFcdTg3NTJcdTg3NTRcdTg3NTVcdTg3NTZcdTg3NThcdTg3NWFcdTg3NWJcdTg3NWNcdTg3NWRcdTg3NWVcdTg3NWZcdTg3NjFcdTg3NjJcdTg3NjZcdTg3NjdcdTg3''@;'; + put 'put ''NjhcdTg3NjlcdTg3NmFcdTg3NmJcdTg3NmNcdTg3NmRcdTg3NmZcdTg3NzFcdTg3NzJcdTg3NzNcdTg3NzVcdWZmZmRcdTg3NzdcdTg3NzhcdTg3NzlcdTg3N2FcdTg3N2ZcdTg3ODBcdTg3ODFcdTg3ODRcdTg3ODZcdTg3ODdcdTg3ODlcdTg3OGFcdTg3OGNcdTg3OGVcdTg3OGZcdTg3OTBc''@;'; + put 'put ''dTg3OTFcdTg3OTJcdTg3OTRcdTg3OTVcdTg3OTZcdTg3OThcdTg3OTlcdTg3OWFcdTg3OWJcdTg3OWNcdTg3OWRcdTg3OWVcdTg3YTBcdTg3YTFcdTg3YTJcdTg3YTNcdTg3YTRcdTVkY2RcdTVmYWVcdTUzNzFcdTk3ZTZcdThmZGRcdTY4NDVcdTU2ZjRcdTU1MmZcdTYwZGZcdTRlM2FcdTZm''@;'; + put 'put ''NGRcdTdlZjRcdTgyYzdcdTg0MGVcdTU5ZDRcdTRmMWZcdTRmMmFcdTVjM2VcdTdlYWNcdTY3MmFcdTg1MWFcdTU0NzNcdTc1NGZcdTgwYzNcdTU1ODJcdTliNGZcdTRmNGRcdTZlMmRcdThjMTNcdTVjMDlcdTYxNzBcdTUzNmJcdTc2MWZcdTZlMjlcdTg2OGFcdTY1ODdcdTk1ZmJcdTdlYjlc''@;'; + put 'put ''dTU0M2JcdTdhMzNcdTdkMGFcdTk1ZWVcdTU1ZTFcdTdmYzFcdTc0ZWVcdTYzMWRcdTg3MTdcdTZkYTFcdTdhOWRcdTYyMTFcdTY1YTFcdTUzNjdcdTYzZTFcdTZjODNcdTVkZWJcdTU0NWNcdTk0YThcdTRlNGNcdTZjNjFcdThiZWNcdTVjNGJcdTY1ZTBcdTgyOWNcdTY4YTdcdTU0M2VcdTU0''@;'; + put 'put ''MzRcdTZiY2JcdTZiNjZcdTRlOTRcdTYzNDJcdTUzNDhcdTgyMWVcdTRmMGRcdTRmYWVcdTU3NWVcdTYyMGFcdTk2ZmVcdTY2NjRcdTcyNjlcdTUyZmZcdTUyYTFcdTYwOWZcdThiZWZcdTY2MTRcdTcxOTlcdTY3OTBcdTg5N2ZcdTc4NTJcdTc3ZmRcdTY2NzBcdTU2M2JcdTU0MzhcdTk1MjFc''@;'; + put 'put ''dTcyN2FcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMDZdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIwNl1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjA2XVtFXV09NTI3MzYrRSxMWzUyNzM2K0VdPUJbMjA2XVtFXSk7Zm9yKEJbMjA3XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4N2E1XHU4N2E2XHU4N2E3XHU4N2E5XHU4N2FhXHU4N2FlXHU4N2IwXHU4N2IxXHU4N2IyXHU4N2I0XHU4N2I2XHU4N2I3XHU4N2I4XHU4N2I5XHU4N2JiXHU4N2JjXHU4N2JlXHU4N2JmXHU4N2MxXHU4N2MyXHU4N2MzXHU4N2M0XHU4N2M1''@;'; + put 'put ''XHU4N2M3XHU4N2M4XHU4N2M5XHU4N2NjXHU4N2NkXHU4N2NlXHU4N2NmXHU4N2QwXHU4N2Q0XHU4N2Q1XHU4N2Q2XHU4N2Q3XHU4N2Q4XHU4N2Q5XHU4N2RhXHU4N2RjXHU4N2RkXHU4N2RlXHU4N2RmXHU4N2UxXHU4N2UyXHU4N2UzXHU4N2U0XHU4N2U2XHU4N2U3XHU4N2U4XHU4N2U5XHU4''@;'; + put 'put ''N2ViXHU4N2VjXHU4N2VkXHU4N2VmXHU4N2YwXHU4N2YxXHU4N2YyXHU4N2YzXHU4N2Y0XHU4N2Y1XHU4N2Y2XHU4N2Y3XHU4N2Y4XHVmZmZkXHU4N2ZhXHU4N2ZiXHU4N2ZjXHU4N2ZkXHU4N2ZmXHU4ODAwXHU4ODAxXHU4ODAyXHU4ODA0XHU4ODA1XHU4ODA2XHU4ODA3XHU4ODA4XHU4ODA5''@;'; + put 'put ''XHU4ODBiXHU4ODBjXHU4ODBkXHU4ODBlXHU4ODBmXHU4ODEwXHU4ODExXHU4ODEyXHU4ODE0XHU4ODE3XHU4ODE4XHU4ODE5XHU4ODFhXHU4ODFjXHU4ODFkXHU4ODFlXHU4ODFmXHU4ODIwXHU4ODIzXHU3YTAwXHU2MDZmXHU1ZTBjXHU2MDg5XHU4MTlkXHU1OTE1XHU2MGRjXHU3MTg0XHU3''@;'; + put 'put ''MGVmXHU2ZWFhXHU2YzUwXHU3MjgwXHU2YTg0XHU4OGFkXHU1ZTJkXHU0ZTYwXHU1YWIzXHU1NTljXHU5NGUzXHU2ZDE3XHU3Y2ZiXHU5Njk5XHU2MjBmXHU3ZWM2XHU3NzhlXHU4NjdlXHU1MzIzXHU5NzFlXHU4Zjk2XHU2Njg3XHU1Y2UxXHU0ZmEwXHU3MmVkXHU0ZTBiXHU1M2E2XHU1OTBm''@;'; + put 'put ''XHU1NDEzXHU2MzgwXHU5NTI4XHU1MTQ4XHU0ZWQ5XHU5YzljXHU3ZWE0XHU1NGI4XHU4ZDI0XHU4ODU0XHU4MjM3XHU5NWYyXHU2ZDhlXHU1ZjI2XHU1YWNjXHU2NjNlXHU5NjY5XHU3M2IwXHU3MzJlXHU1M2JmXHU4MTdhXHU5OTg1XHU3ZmExXHU1YmFhXHU5Njc3XHU5NjUwXHU3ZWJmXHU3''@;'; + put 'put ''NmY4XHU1M2EyXHU5NTc2XHU5OTk5XHU3YmIxXHU4OTQ0XHU2ZTU4XHU0ZTYxXHU3ZmQ0XHU3OTY1XHU4YmU2XHU2MGYzXHU1NGNkXHU0ZWFiXHU5ODc5XHU1ZGY3XHU2YTYxXHU1MGNmXHU1NDExXHU4YzYxXHU4NDI3XHU3ODVkXHU5NzA0XHU1MjRhXHU1NGVlXHU1NmEzXHU5NTAwXHU2ZDg4''@;'; + put 'put ''XHU1YmI1XHU2ZGM2XHU2NjUzXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjA3XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMDddW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIwN11bRV1dPTUyOTkyK0UsTFs1Mjk5MitFXT1CWzIwN11bRV0pO2ZvcihCWzIwOF09Ilx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ODgyNFx1ODgyNVx1ODgyNlx1ODgyN1x1ODgyOFx1ODgyOVx1ODgyYVx1ODgyYlx1ODgyY1x1ODgyZFx1ODgyZVx1ODgyZlx1ODgzMFx1ODgzMVx1ODgzM1x1ODgzNFx1ODgzNVx1ODgzNlx1ODgzN1x1ODgzOFx1ODgz''@;'; + put 'put ''YVx1ODgzYlx1ODgzZFx1ODgzZVx1ODgzZlx1ODg0MVx1ODg0Mlx1ODg0M1x1ODg0Nlx1ODg0N1x1ODg0OFx1ODg0OVx1ODg0YVx1ODg0Ylx1ODg0ZVx1ODg0Zlx1ODg1MFx1ODg1MVx1ODg1Mlx1ODg1M1x1ODg1NVx1ODg1Nlx1ODg1OFx1ODg1YVx1ODg1Ylx1ODg1Y1x1ODg1ZFx1ODg1ZVx1''@;'; + put 'put ''ODg1Zlx1ODg2MFx1ODg2Nlx1ODg2N1x1ODg2YVx1ODg2ZFx1ODg2Zlx1ODg3MVx1ODg3M1x1ODg3NFx1ODg3NVx1ODg3Nlx1ODg3OFx1ODg3OVx1ODg3YVx1ZmZmZFx1ODg3Ylx1ODg3Y1x1ODg4MFx1ODg4M1x1ODg4Nlx1ODg4N1x1ODg4OVx1ODg4YVx1ODg4Y1x1ODg4ZVx1ODg4Zlx1ODg5''@;'; + put 'put ''MFx1ODg5MVx1ODg5M1x1ODg5NFx1ODg5NVx1ODg5N1x1ODg5OFx1ODg5OVx1ODg5YVx1ODg5Ylx1ODg5ZFx1ODg5ZVx1ODg5Zlx1ODhhMFx1ODhhMVx1ODhhM1x1ODhhNVx1ODhhNlx1ODhhN1x1ODhhOFx1ODhhOVx1ODhhYVx1NWMwZlx1NWI1ZFx1NjgyMVx1ODA5Nlx1NTU3OFx1N2IxMVx1''@;'; + put 'put ''NjU0OFx1Njk1NFx1NGU5Ylx1NmI0N1x1ODc0ZVx1OTc4Ylx1NTM0Zlx1NjMxZlx1NjQzYVx1OTBhYVx1NjU5Y1x1ODBjMVx1OGMxMFx1NTE5OVx1NjhiMFx1NTM3OFx1ODdmOVx1NjFjOFx1NmNjNFx1NmNmYlx1OGMyMlx1NWM1MVx1ODVhYVx1ODJhZlx1OTUwY1x1NmIyM1x1OGY5Ylx1NjVi''@;'; + put 'put ''MFx1NWZmYlx1NWZjM1x1NGZlMVx1ODg0NVx1NjYxZlx1ODE2NVx1NzMyOVx1NjBmYVx1NTE3NFx1NTIxMVx1NTc4Ylx1NWY2Mlx1OTBhMlx1ODg0Y1x1OTE5Mlx1NWU3OFx1Njc0Zlx1NjAyN1x1NTlkM1x1NTE0NFx1NTFmNlx1ODBmOFx1NTMwOFx1NmM3OVx1OTZjNFx1NzE4YVx1NGYxMVx1''@;'; + put 'put ''NGZlZVx1N2Y5ZVx1NjczZFx1NTVjNVx1OTUwOFx1NzljMFx1ODg5Nlx1N2VlM1x1NTg5Zlx1NjIwY1x1OTcwMFx1ODY1YVx1NTYxOFx1OTg3Ylx1NWY5MFx1OGJiOFx1ODRjNFx1OTE1N1x1NTNkOVx1NjVlZFx1NWU4Zlx1NzU1Y1x1NjA2NFx1N2Q2ZVx1NWE3Zlx1N2VlYVx1N2VlZFx1OGY2''@;'; + put 'put ''OVx1NTVhN1x1NWJhM1x1NjBhY1x1NjVjYlx1NzM4NFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIwOF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjA4XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMDhdW0VdXT01MzI0OCtFLExbNTMyNDgrRV09QlsyMDhdW0VdKTtmb3IoQlsyMDldPSJc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTg4YWNcdTg4YWVcdTg4YWZcdTg4YjBcdTg4YjJcdTg4YjNcdTg4YjRcdTg4YjVcdTg4YjZcdTg4YjhcdTg4YjlcdTg4YmFcdTg4YmJcdTg4YmRcdTg4YmVcdTg4YmZcdTg4YzBcdTg4YzNcdTg4''@;'; + put 'put ''YzRcdTg4YzdcdTg4YzhcdTg4Y2FcdTg4Y2JcdTg4Y2NcdTg4Y2RcdTg4Y2ZcdTg4ZDBcdTg4ZDFcdTg4ZDNcdTg4ZDZcdTg4ZDdcdTg4ZGFcdTg4ZGJcdTg4ZGNcdTg4ZGRcdTg4ZGVcdTg4ZTBcdTg4ZTFcdTg4ZTZcdTg4ZTdcdTg4ZTlcdTg4ZWFcdTg4ZWJcdTg4ZWNcdTg4ZWRcdTg4ZWVc''@;'; + put 'put ''dTg4ZWZcdTg4ZjJcdTg4ZjVcdTg4ZjZcdTg4ZjdcdTg4ZmFcdTg4ZmJcdTg4ZmRcdTg4ZmZcdTg5MDBcdTg5MDFcdTg5MDNcdTg5MDRcdTg5MDVcdTg5MDZcdTg5MDdcdTg5MDhcdWZmZmRcdTg5MDlcdTg5MGJcdTg5MGNcdTg5MGRcdTg5MGVcdTg5MGZcdTg5MTFcdTg5MTRcdTg5MTVcdTg5''@;'; + put 'put ''MTZcdTg5MTdcdTg5MThcdTg5MWNcdTg5MWRcdTg5MWVcdTg5MWZcdTg5MjBcdTg5MjJcdTg5MjNcdTg5MjRcdTg5MjZcdTg5MjdcdTg5MjhcdTg5MjlcdTg5MmNcdTg5MmRcdTg5MmVcdTg5MmZcdTg5MzFcdTg5MzJcdTg5MzNcdTg5MzVcdTg5MzdcdTkwMDlcdTc2NjNcdTc3MjlcdTdlZGFc''@;'; + put 'put ''dTk3NzRcdTg1OWJcdTViNjZcdTdhNzRcdTk2ZWFcdTg4NDBcdTUyY2JcdTcxOGZcdTVmYWFcdTY1ZWNcdThiZTJcdTViZmJcdTlhNmZcdTVkZTFcdTZiODlcdTZjNWJcdThiYWRcdThiYWZcdTkwMGFcdThmYzVcdTUzOGJcdTYyYmNcdTllMjZcdTllMmRcdTU0NDBcdTRlMmJcdTgyYmRcdTcy''@;'; + put 'put ''NTlcdTg2OWNcdTVkMTZcdTg4NTlcdTZkYWZcdTk2YzVcdTU0ZDFcdTRlOWFcdThiYjZcdTcxMDlcdTU0YmRcdTk2MDlcdTcwZGZcdTZkZjlcdTc2ZDBcdTRlMjVcdTc4MTRcdTg3MTJcdTVjYTlcdTVlZjZcdThhMDBcdTk4OWNcdTk2MGVcdTcwOGVcdTZjYmZcdTU5NDRcdTYzYTlcdTc3M2Nc''@;'; + put 'put ''dTg4NGRcdTZmMTRcdTgyNzNcdTU4MzBcdTcxZDVcdTUzOGNcdTc4MWFcdTk2YzFcdTU1MDFcdTVmNjZcdTcxMzBcdTViYjRcdThjMWFcdTlhOGNcdTZiODNcdTU5MmVcdTllMmZcdTc5ZTdcdTY3NjhcdTYyNmNcdTRmNmZcdTc1YTFcdTdmOGFcdTZkMGJcdTk2MzNcdTZjMjdcdTRlZjBcdTc1''@;'; + put 'put ''ZDJcdTUxN2JcdTY4MzdcdTZmM2VcdTkwODBcdTgxNzBcdTU5OTZcdTc0NzZcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMDldLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIwOV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjA5XVtFXV09NTM1MDQrRSxMWzUzNTA0K0VdPUJbMjA5XVtFXSk7''@;'; + put 'put ''Zm9yKEJbMjEwXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4OTM4XHU4OTM5XHU4OTNhXHU4OTNiXHU4OTNjXHU4OTNkXHU4OTNlXHU4OTNmXHU4OTQwXHU4OTQyXHU4OTQzXHU4OTQ1XHU4OTQ2XHU4OTQ3XHU4OTQ4XHU4OTQ5XHU4''@;'; + put 'put ''OTRhXHU4OTRiXHU4OTRjXHU4OTRkXHU4OTRlXHU4OTRmXHU4OTUwXHU4OTUxXHU4OTUyXHU4OTUzXHU4OTU0XHU4OTU1XHU4OTU2XHU4OTU3XHU4OTU4XHU4OTU5XHU4OTVhXHU4OTViXHU4OTVjXHU4OTVkXHU4OTYwXHU4OTYxXHU4OTYyXHU4OTYzXHU4OTY0XHU4OTY1XHU4OTY3XHU4OTY4''@;'; + put 'put ''XHU4OTY5XHU4OTZhXHU4OTZiXHU4OTZjXHU4OTZkXHU4OTZlXHU4OTZmXHU4OTcwXHU4OTcxXHU4OTcyXHU4OTczXHU4OTc0XHU4OTc1XHU4OTc2XHU4OTc3XHU4OTc4XHU4OTc5XHU4OTdhXHU4OTdjXHVmZmZkXHU4OTdkXHU4OTdlXHU4OTgwXHU4OTgyXHU4OTg0XHU4OTg1XHU4OTg3XHU4''@;'; + put 'put ''OTg4XHU4OTg5XHU4OThhXHU4OThiXHU4OThjXHU4OThkXHU4OThlXHU4OThmXHU4OTkwXHU4OTkxXHU4OTkyXHU4OTkzXHU4OTk0XHU4OTk1XHU4OTk2XHU4OTk3XHU4OTk4XHU4OTk5XHU4OTlhXHU4OTliXHU4OTljXHU4OTlkXHU4OTllXHU4OTlmXHU4OWEwXHU4OWExXHU2NDQ3XHU1YzI3''@;'; + put 'put ''XHU5MDY1XHU3YTkxXHU4YzIzXHU1OWRhXHU1NGFjXHU4MjAwXHU4MzZmXHU4OTgxXHU4MDAwXHU2OTMwXHU1NjRlXHU4MDM2XHU3MjM3XHU5MWNlXHU1MWI2XHU0ZTVmXHU5ODc1XHU2Mzk2XHU0ZTFhXHU1M2Y2XHU2NmYzXHU4MTRiXHU1OTFjXHU2ZGIyXHU0ZTAwXHU1OGY5XHU1MzNiXHU2''@;'; + put 'put ''M2Q2XHU5NGYxXHU0ZjlkXHU0ZjBhXHU4ODYzXHU5ODkwXHU1OTM3XHU5MDU3XHU3OWZiXHU0ZWVhXHU4MGYwXHU3NTkxXHU2YzgyXHU1YjljXHU1OWU4XHU1ZjVkXHU2OTA1XHU4NjgxXHU1MDFhXHU1ZGYyXHU0ZTU5XHU3N2UzXHU0ZWU1XHU4MjdhXHU2MjkxXHU2NjEzXHU5MDkxXHU1Yzc5''@;'; + put 'put ''XHU0ZWJmXHU1Zjc5XHU4MWM2XHU5MDM4XHU4MDg0XHU3NWFiXHU0ZWE2XHU4OGQ0XHU2MTBmXHU2YmM1XHU1ZmM2XHU0ZTQ5XHU3NmNhXHU2ZWEyXHU4YmUzXHU4YmFlXHU4YzBhXHU4YmQxXHU1ZjAyXHU3ZmZjXHU3ZmNjXHU3ZWNlXHU4MzM1XHU4MzZiXHU1NmUwXHU2YmI3XHU5N2YzXHU5''@;'; + put 'put ''NjM0XHU1OWZiXHU1NDFmXHU5NGY2XHU2ZGViXHU1YmM1XHU5OTZlXHU1YzM5XHU1ZjE1XHU5NjkwXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjEwXS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMTBdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIxMF1bRV1dPTUzNzYwK0UsTFs1Mzc2MCtF''@;'; + put 'put ''XT1CWzIxMF1bRV0pO2ZvcihCWzIxMV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ODlhMlx1ODlhM1x1ODlhNFx1ODlhNVx1ODlhNlx1ODlhN1x1ODlhOFx1ODlhOVx1ODlhYVx1ODlhYlx1ODlhY1x1ODlhZFx1ODlhZVx1ODlhZlx1''@;'; + put 'put ''ODliMFx1ODliMVx1ODliMlx1ODliM1x1ODliNFx1ODliNVx1ODliNlx1ODliN1x1ODliOFx1ODliOVx1ODliYVx1ODliYlx1ODliY1x1ODliZFx1ODliZVx1ODliZlx1ODljMFx1ODljM1x1ODljZFx1ODlkM1x1ODlkNFx1ODlkNVx1ODlkN1x1ODlkOFx1ODlkOVx1ODlkYlx1ODlkZFx1ODlk''@;'; + put 'put ''Zlx1ODllMFx1ODllMVx1ODllMlx1ODllNFx1ODllN1x1ODllOFx1ODllOVx1ODllYVx1ODllY1x1ODllZFx1ODllZVx1ODlmMFx1ODlmMVx1ODlmMlx1ODlmNFx1ODlmNVx1ODlmNlx1ODlmN1x1ODlmOFx1ODlmOVx1ODlmYVx1ZmZmZFx1ODlmYlx1ODlmY1x1ODlmZFx1ODlmZVx1ODlmZlx1''@;'; + put 'put ''OGEwMVx1OGEwMlx1OGEwM1x1OGEwNFx1OGEwNVx1OGEwNlx1OGEwOFx1OGEwOVx1OGEwYVx1OGEwYlx1OGEwY1x1OGEwZFx1OGEwZVx1OGEwZlx1OGExMFx1OGExMVx1OGExMlx1OGExM1x1OGExNFx1OGExNVx1OGExNlx1OGExN1x1OGExOFx1OGExOVx1OGExYVx1OGExYlx1OGExY1x1OGEx''@;'; + put 'put ''ZFx1NTM3MFx1ODJmMVx1NmEzMVx1NWE3NFx1OWU3MFx1NWU5NFx1N2YyOFx1ODNiOVx1ODQyNFx1ODQyNVx1ODM2N1x1ODc0N1x1OGZjZVx1OGQ2Mlx1NzZjOFx1NWY3MVx1OTg5Nlx1Nzg2Y1x1NjYyMFx1NTRkZlx1NjJlNVx1NGY2M1x1ODFjM1x1NzVjOFx1NWViOFx1OTZjZFx1OGUwYVx1''@;'; + put 'put ''ODZmOVx1NTQ4Zlx1NmNmM1x1NmQ4Y1x1NmMzOFx1NjA3Zlx1NTJjN1x1NzUyOFx1NWU3ZFx1NGYxOFx1NjBhMFx1NWZlN1x1NWMyNFx1NzUzMVx1OTBhZVx1OTRjMFx1NzJiOVx1NmNiOVx1NmUzOFx1OTE0OVx1NjcwOVx1NTNjYlx1NTNmM1x1NGY1MVx1OTFjOVx1OGJmMVx1NTNjOFx1NWU3''@;'; + put 'put ''Y1x1OGZjMlx1NmRlNFx1NGU4ZVx1NzZjMlx1Njk4Nlx1ODY1ZVx1NjExYVx1ODIwNlx1NGY1OVx1NGZkZVx1OTAzZVx1OWM3Y1x1NjEwOVx1NmUxZFx1NmUxNFx1OTY4NVx1NGU4OFx1NWEzMVx1OTZlOFx1NGUwZVx1NWM3Zlx1NzliOVx1NWI4N1x1OGJlZFx1N2ZiZFx1NzM4OVx1NTdkZlx1''@;'; + put 'put ''ODI4Ylx1OTBjMVx1NTQwMVx1OTA0N1x1NTViYlx1NWNlYVx1NWZhMVx1NjEwOFx1NmIzMlx1NzJmMVx1ODBiMlx1OGE4OVx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIxMV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjExXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMTFdW0VdXT01NDAx''@;'; + put 'put ''NitFLExbNTQwMTYrRV09QlsyMTFdW0VdKTtmb3IoQlsyMTJdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdThhMWVcdThhMWZcdThhMjBcdThhMjFcdThhMjJcdThhMjNcdThhMjRcdThhMjVcdThhMjZcdThhMjdcdThhMjhcdThhMjlc''@;'; + put 'put ''dThhMmFcdThhMmJcdThhMmNcdThhMmRcdThhMmVcdThhMmZcdThhMzBcdThhMzFcdThhMzJcdThhMzNcdThhMzRcdThhMzVcdThhMzZcdThhMzdcdThhMzhcdThhMzlcdThhM2FcdThhM2JcdThhM2NcdThhM2RcdThhM2ZcdThhNDBcdThhNDFcdThhNDJcdThhNDNcdThhNDRcdThhNDVcdThh''@;'; + put 'put ''NDZcdThhNDdcdThhNDlcdThhNGFcdThhNGJcdThhNGNcdThhNGRcdThhNGVcdThhNGZcdThhNTBcdThhNTFcdThhNTJcdThhNTNcdThhNTRcdThhNTVcdThhNTZcdThhNTdcdThhNThcdThhNTlcdThhNWFcdThhNWJcdThhNWNcdThhNWRcdThhNWVcdWZmZmRcdThhNWZcdThhNjBcdThhNjFc''@;'; + put 'put ''dThhNjJcdThhNjNcdThhNjRcdThhNjVcdThhNjZcdThhNjdcdThhNjhcdThhNjlcdThhNmFcdThhNmJcdThhNmNcdThhNmRcdThhNmVcdThhNmZcdThhNzBcdThhNzFcdThhNzJcdThhNzNcdThhNzRcdThhNzVcdThhNzZcdThhNzdcdThhNzhcdThhN2FcdThhN2JcdThhN2NcdThhN2RcdThh''@;'; + put 'put ''N2VcdThhN2ZcdThhODBcdTZkNzRcdTViZDNcdTg4ZDVcdTk4ODRcdThjNmJcdTlhNmRcdTllMzNcdTZlMGFcdTUxYTRcdTUxNDNcdTU3YTNcdTg4ODFcdTUzOWZcdTYzZjRcdThmOTVcdTU2ZWRcdTU0NThcdTU3MDZcdTczM2ZcdTZlOTBcdTdmMThcdThmZGNcdTgyZDFcdTYxM2ZcdTYwMjhc''@;'; + put 'put ''dTk2NjJcdTY2ZjBcdTdlYTZcdThkOGFcdThkYzNcdTk0YTVcdTVjYjNcdTdjYTRcdTY3MDhcdTYwYTZcdTk2MDVcdTgwMThcdTRlOTFcdTkwZTdcdTUzMDBcdTk2NjhcdTUxNDFcdThmZDBcdTg1NzRcdTkxNWRcdTY2NTVcdTk3ZjVcdTViNTVcdTUzMWRcdTc4MzhcdTY3NDJcdTY4M2RcdTU0''@;'; + put 'put ''YzlcdTcwN2VcdTViYjBcdThmN2RcdTUxOGRcdTU3MjhcdTU0YjFcdTY1MTJcdTY2ODJcdThkNWVcdThkNDNcdTgxMGZcdTg0NmNcdTkwNmRcdTdjZGZcdTUxZmZcdTg1ZmJcdTY3YTNcdTY1ZTlcdTZmYTFcdTg2YTRcdThlODFcdTU2NmFcdTkwMjBcdTc2ODJcdTcwNzZcdTcxZTVcdThkMjNc''@;'; + put 'put ''dTYyZTlcdTUyMTlcdTZjZmRcdThkM2NcdTYwMGVcdTU4OWVcdTYxOGVcdTY2ZmVcdThkNjBcdTYyNGVcdTU1YjNcdTZlMjNcdTY3MmRcdThmNjdcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMTJdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIxMl1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0Jb''@;'; + put 'put ''MjEyXVtFXV09NTQyNzIrRSxMWzU0MjcyK0VdPUJbMjEyXVtFXSk7Zm9yKEJbMjEzXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4YTgxXHU4YTgyXHU4YTgzXHU4YTg0XHU4YTg1XHU4YTg2XHU4YTg3XHU4YTg4XHU4YThiXHU4YThj''@;'; + put 'put ''XHU4YThkXHU4YThlXHU4YThmXHU4YTkwXHU4YTkxXHU4YTkyXHU4YTk0XHU4YTk1XHU4YTk2XHU4YTk3XHU4YTk4XHU4YTk5XHU4YTlhXHU4YTliXHU4YTljXHU4YTlkXHU4YTllXHU4YTlmXHU4YWEwXHU4YWExXHU4YWEyXHU4YWEzXHU4YWE0XHU4YWE1XHU4YWE2XHU4YWE3XHU4YWE4XHU4''@;'; + put 'put ''YWE5XHU4YWFhXHU4YWFiXHU4YWFjXHU4YWFkXHU4YWFlXHU4YWFmXHU4YWIwXHU4YWIxXHU4YWIyXHU4YWIzXHU4YWI0XHU4YWI1XHU4YWI2XHU4YWI3XHU4YWI4XHU4YWI5XHU4YWJhXHU4YWJiXHU4YWJjXHU4YWJkXHU4YWJlXHU4YWJmXHU4YWMwXHU4YWMxXHU4YWMyXHVmZmZkXHU4YWMz''@;'; + put 'put ''XHU4YWM0XHU4YWM1XHU4YWM2XHU4YWM3XHU4YWM4XHU4YWM5XHU4YWNhXHU4YWNiXHU4YWNjXHU4YWNkXHU4YWNlXHU4YWNmXHU4YWQwXHU4YWQxXHU4YWQyXHU4YWQzXHU4YWQ0XHU4YWQ1XHU4YWQ2XHU4YWQ3XHU4YWQ4XHU4YWQ5XHU4YWRhXHU4YWRiXHU4YWRjXHU4YWRkXHU4YWRlXHU4''@;'; + put 'put ''YWRmXHU4YWUwXHU4YWUxXHU4YWUyXHU4YWUzXHU5NGUxXHU5NWY4XHU3NzI4XHU2ODA1XHU2OWE4XHU1NDhiXHU0ZTRkXHU3MGI4XHU4YmM4XHU2NDU4XHU2NThiXHU1Yjg1XHU3YTg0XHU1MDNhXHU1YmU4XHU3N2JiXHU2YmUxXHU4YTc5XHU3Yzk4XHU2Y2JlXHU3NmNmXHU2NWE5XHU4Zjk3''@;'; + put 'put ''XHU1ZDJkXHU1YzU1XHU4NjM4XHU2ODA4XHU1MzYwXHU2MjE4XHU3YWQ5XHU2ZTViXHU3ZWZkXHU2YTFmXHU3YWUwXHU1ZjcwXHU2ZjMzXHU1ZjIwXHU2MzhjXHU2ZGE4XHU2NzU2XHU0ZTA4XHU1ZTEwXHU4ZDI2XHU0ZWQ3XHU4MGMwXHU3NjM0XHU5NjljXHU2MmRiXHU2NjJkXHU2MjdlXHU2''@;'; + put 'put ''Y2JjXHU4ZDc1XHU3MTY3XHU3ZjY5XHU1MTQ2XHU4MDg3XHU1M2VjXHU5MDZlXHU2Mjk4XHU1NGYyXHU4NmYwXHU4Zjk5XHU4MDA1XHU5NTE3XHU4NTE3XHU4ZmQ5XHU2ZDU5XHU3M2NkXHU2NTlmXHU3NzFmXHU3NTA0XHU3ODI3XHU4MWZiXHU4ZDFlXHU5NDg4XHU0ZmE2XHU2Nzk1XHU3NWI5''@;'; + put 'put ''XHU4YmNhXHU5NzA3XHU2MzJmXHU5NTQ3XHU5NjM1XHU4NGI4XHU2MzIzXHU3NzQxXHU1ZjgxXHU3MmYwXHU0ZTg5XHU2MDE0XHU2NTc0XHU2MmVmXHU2YjYzXHU2NTNmXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjEzXS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMTNdW0VdLmNoYXJDb2Rl''@;'; + put 'put ''QXQoMCkmJihtZVtCWzIxM11bRV1dPTU0NTI4K0UsTFs1NDUyOCtFXT1CWzIxM11bRV0pO2ZvcihCWzIxNF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OGFlNFx1OGFlNVx1OGFlNlx1OGFlN1x1OGFlOFx1OGFlOVx1OGFlYVx1OGFl''@;'; + put 'put ''Ylx1OGFlY1x1OGFlZFx1OGFlZVx1OGFlZlx1OGFmMFx1OGFmMVx1OGFmMlx1OGFmM1x1OGFmNFx1OGFmNVx1OGFmNlx1OGFmN1x1OGFmOFx1OGFmOVx1OGFmYVx1OGFmYlx1OGFmY1x1OGFmZFx1OGFmZVx1OGFmZlx1OGIwMFx1OGIwMVx1OGIwMlx1OGIwM1x1OGIwNFx1OGIwNVx1OGIwNlx1''@;'; + put 'put ''OGIwOFx1OGIwOVx1OGIwYVx1OGIwYlx1OGIwY1x1OGIwZFx1OGIwZVx1OGIwZlx1OGIxMFx1OGIxMVx1OGIxMlx1OGIxM1x1OGIxNFx1OGIxNVx1OGIxNlx1OGIxN1x1OGIxOFx1OGIxOVx1OGIxYVx1OGIxYlx1OGIxY1x1OGIxZFx1OGIxZVx1OGIxZlx1OGIyMFx1OGIyMVx1OGIyMlx1OGIy''@;'; + put 'put ''M1x1ZmZmZFx1OGIyNFx1OGIyNVx1OGIyN1x1OGIyOFx1OGIyOVx1OGIyYVx1OGIyYlx1OGIyY1x1OGIyZFx1OGIyZVx1OGIyZlx1OGIzMFx1OGIzMVx1OGIzMlx1OGIzM1x1OGIzNFx1OGIzNVx1OGIzNlx1OGIzN1x1OGIzOFx1OGIzOVx1OGIzYVx1OGIzYlx1OGIzY1x1OGIzZFx1OGIzZVx1''@;'; + put 'put ''OGIzZlx1OGI0MFx1OGI0MVx1OGI0Mlx1OGI0M1x1OGI0NFx1OGI0NVx1NWUyN1x1NzVjN1x1OTBkMVx1OGJjMVx1ODI5ZFx1Njc5ZFx1NjUyZlx1NTQzMVx1ODcxOFx1NzdlNVx1ODBhMlx1ODEwMlx1NmM0MVx1NGU0Ylx1N2VjN1x1ODA0Y1x1NzZmNFx1NjkwZFx1NmI5Nlx1NjI2N1x1NTAz''@;'; + put 'put ''Y1x1NGY4NFx1NTc0MFx1NjMwN1x1NmI2Mlx1OGRiZVx1NTNlYVx1NjVlOFx1N2ViOFx1NWZkN1x1NjMxYVx1NjNiN1x1ODFmM1x1ODFmNFx1N2Y2ZVx1NWUxY1x1NWNkOVx1NTIzNlx1NjY3YVx1NzllOVx1N2ExYVx1OGQyOFx1NzA5OVx1NzVkNFx1NmVkZVx1NmNiYlx1N2E5Mlx1NGUyZFx1''@;'; + put 'put ''NzZjNVx1NWZlMFx1OTQ5Zlx1ODg3N1x1N2VjOFx1NzljZFx1ODBiZlx1OTFjZFx1NGVmMlx1NGYxN1x1ODIxZlx1NTQ2OFx1NWRkZVx1NmQzMlx1OGJjY1x1N2NhNVx1OGY3NFx1ODA5OFx1NWUxYVx1NTQ5Mlx1NzZiMVx1NWI5OVx1NjYzY1x1OWFhNFx1NzNlMFx1NjgyYVx1ODZkYlx1Njcz''@;'; + put 'put ''MVx1NzMyYVx1OGJmOFx1OGJkYlx1OTAxMFx1N2FmOVx1NzBkYlx1NzE2ZVx1NjJjNFx1NzdhOVx1NTYzMVx1NGUzYlx1ODQ1N1x1NjdmMVx1NTJhOVx1ODZjMFx1OGQyZVx1OTRmOFx1N2I1MVx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIxNF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjE0''@;'; + put 'put ''XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMTRdW0VdXT01NDc4NCtFLExbNTQ3ODQrRV09QlsyMTRdW0VdKTtmb3IoQlsyMTVdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdThiNDZcdThiNDdcdThiNDhcdThiNDlcdThiNGFcdThi''@;'; + put 'put ''NGJcdThiNGNcdThiNGRcdThiNGVcdThiNGZcdThiNTBcdThiNTFcdThiNTJcdThiNTNcdThiNTRcdThiNTVcdThiNTZcdThiNTdcdThiNThcdThiNTlcdThiNWFcdThiNWJcdThiNWNcdThiNWRcdThiNWVcdThiNWZcdThiNjBcdThiNjFcdThiNjJcdThiNjNcdThiNjRcdThiNjVcdThiNjdc''@;'; + put 'put ''dThiNjhcdThiNjlcdThiNmFcdThiNmJcdThiNmRcdThiNmVcdThiNmZcdThiNzBcdThiNzFcdThiNzJcdThiNzNcdThiNzRcdThiNzVcdThiNzZcdThiNzdcdThiNzhcdThiNzlcdThiN2FcdThiN2JcdThiN2NcdThiN2RcdThiN2VcdThiN2ZcdThiODBcdThiODFcdThiODJcdThiODNcdThi''@;'; + put 'put ''ODRcdThiODVcdThiODZcdWZmZmRcdThiODdcdThiODhcdThiODlcdThiOGFcdThiOGJcdThiOGNcdThiOGRcdThiOGVcdThiOGZcdThiOTBcdThiOTFcdThiOTJcdThiOTNcdThiOTRcdThiOTVcdThiOTZcdThiOTdcdThiOThcdThiOTlcdThiOWFcdThiOWJcdThiOWNcdThiOWRcdThiOWVc''@;'; + put 'put ''dThiOWZcdThiYWNcdThiYjFcdThiYmJcdThiYzdcdThiZDBcdThiZWFcdThjMDlcdThjMWVcdTRmNGZcdTZjZThcdTc5NWRcdTlhN2JcdTYyOTNcdTcyMmFcdTYyZmRcdTRlMTNcdTc4MTZcdThmNmNcdTY0YjBcdThkNWFcdTdiYzZcdTY4NjlcdTVlODRcdTg4YzVcdTU5ODZcdTY0OWVcdTU4''@;'; + put 'put ''ZWVcdTcyYjZcdTY5MGVcdTk1MjVcdThmZmRcdThkNThcdTU3NjBcdTdmMDBcdThjMDZcdTUxYzZcdTYzNDlcdTYyZDlcdTUzNTNcdTY4NGNcdTc0MjJcdTgzMDFcdTkxNGNcdTU1NDRcdTc3NDBcdTcwN2NcdTZkNGFcdTUxNzlcdTU0YThcdThkNDRcdTU5ZmZcdTZlY2JcdTZkYzRcdTViNWNc''@;'; + put 'put ''dTdkMmJcdTRlZDRcdTdjN2RcdTZlZDNcdTViNTBcdTgxZWFcdTZlMGRcdTViNTdcdTliMDNcdTY4ZDVcdThlMmFcdTViOTdcdTdlZmNcdTYwM2JcdTdlYjVcdTkwYjlcdThkNzBcdTU5NGZcdTYzY2RcdTc5ZGZcdThkYjNcdTUzNTJcdTY1Y2ZcdTc5NTZcdThiYzVcdTk2M2JcdTdlYzRcdTk0''@;'; + put 'put ''YmJcdTdlODJcdTU2MzRcdTkxODlcdTY3MDBcdTdmNmFcdTVjMGFcdTkwNzVcdTY2MjhcdTVkZTZcdTRmNTBcdTY3ZGVcdTUwNWFcdTRmNWNcdTU3NTBcdTVlYTdcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMTVdLmxlbmd0aDsrK0Up''@;'; + put 'put ''NjU1MzMhPT1CWzIxNV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjE1XVtFXV09NTUwNDArRSxMWzU1MDQwK0VdPUJbMjE1XVtFXSk7Zm9yKEJbMjE2XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4YzM4XHU4YzM5XHU4YzNhXHU4''@;'; + put 'put ''YzNiXHU4YzNjXHU4YzNkXHU4YzNlXHU4YzNmXHU4YzQwXHU4YzQyXHU4YzQzXHU4YzQ0XHU4YzQ1XHU4YzQ4XHU4YzRhXHU4YzRiXHU4YzRkXHU4YzRlXHU4YzRmXHU4YzUwXHU4YzUxXHU4YzUyXHU4YzUzXHU4YzU0XHU4YzU2XHU4YzU3XHU4YzU4XHU4YzU5XHU4YzViXHU4YzVjXHU4YzVk''@;'; + put 'put ''XHU4YzVlXHU4YzVmXHU4YzYwXHU4YzYzXHU4YzY0XHU4YzY1XHU4YzY2XHU4YzY3XHU4YzY4XHU4YzY5XHU4YzZjXHU4YzZkXHU4YzZlXHU4YzZmXHU4YzcwXHU4YzcxXHU4YzcyXHU4Yzc0XHU4Yzc1XHU4Yzc2XHU4Yzc3XHU4YzdiXHU4YzdjXHU4YzdkXHU4YzdlXHU4YzdmXHU4YzgwXHU4''@;'; + put 'put ''YzgxXHU4YzgzXHU4Yzg0XHU4Yzg2XHU4Yzg3XHVmZmZkXHU4Yzg4XHU4YzhiXHU4YzhkXHU4YzhlXHU4YzhmXHU4YzkwXHU4YzkxXHU4YzkyXHU4YzkzXHU4Yzk1XHU4Yzk2XHU4Yzk3XHU4Yzk5XHU4YzlhXHU4YzliXHU4YzljXHU4YzlkXHU4YzllXHU4YzlmXHU4Y2EwXHU4Y2ExXHU4Y2Ey''@;'; + put 'put ''XHU4Y2EzXHU4Y2E0XHU4Y2E1XHU4Y2E2XHU4Y2E3XHU4Y2E4XHU4Y2E5XHU4Y2FhXHU4Y2FiXHU4Y2FjXHU4Y2FkXHU0ZThkXHU0ZTBjXHU1MTQwXHU0ZTEwXHU1ZWZmXHU1MzQ1XHU0ZTE1XHU0ZTk4XHU0ZTFlXHU5YjMyXHU1YjZjXHU1NjY5XHU0ZTI4XHU3OWJhXHU0ZTNmXHU1MzE1XHU0''@;'; + put 'put ''ZTQ3XHU1OTJkXHU3MjNiXHU1MzZlXHU2YzEwXHU1NmRmXHU4MGU0XHU5OTk3XHU2YmQzXHU3NzdlXHU5ZjE3XHU0ZTM2XHU0ZTlmXHU5ZjEwXHU0ZTVjXHU0ZTY5XHU0ZTkzXHU4Mjg4XHU1YjViXHU1NTZjXHU1NjBmXHU0ZWM0XHU1MzhkXHU1MzlkXHU1M2EzXHU1M2E1XHU1M2FlXHU5NzY1''@;'; + put 'put ''XHU4ZDVkXHU1MzFhXHU1M2Y1XHU1MzI2XHU1MzJlXHU1MzNlXHU4ZDVjXHU1MzY2XHU1MzYzXHU1MjAyXHU1MjA4XHU1MjBlXHU1MjJkXHU1MjMzXHU1MjNmXHU1MjQwXHU1MjRjXHU1MjVlXHU1MjYxXHU1MjVjXHU4NGFmXHU1MjdkXHU1MjgyXHU1MjgxXHU1MjkwXHU1MjkzXHU1MTgyXHU3''@;'; + put 'put ''ZjU0XHU0ZWJiXHU0ZWMzXHU0ZWM5XHU0ZWMyXHU0ZWU4XHU0ZWUxXHU0ZWViXHU0ZWRlXHU0ZjFiXHU0ZWYzXHU0ZjIyXHU0ZjY0XHU0ZWY1XHU0ZjI1XHU0ZjI3XHU0ZjA5XHU0ZjJiXHU0ZjVlXHU0ZjY3XHU2NTM4XHU0ZjVhXHU0ZjVkXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjE2''@;'; + put 'put ''XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMTZdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIxNl1bRV1dPTU1Mjk2K0UsTFs1NTI5NitFXT1CWzIxNl1bRV0pO2ZvcihCWzIxN109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OGNhZVx1''@;'; + put 'put ''OGNhZlx1OGNiMFx1OGNiMVx1OGNiMlx1OGNiM1x1OGNiNFx1OGNiNVx1OGNiNlx1OGNiN1x1OGNiOFx1OGNiOVx1OGNiYVx1OGNiYlx1OGNiY1x1OGNiZFx1OGNiZVx1OGNiZlx1OGNjMFx1OGNjMVx1OGNjMlx1OGNjM1x1OGNjNFx1OGNjNVx1OGNjNlx1OGNjN1x1OGNjOFx1OGNjOVx1OGNj''@;'; + put 'put ''YVx1OGNjYlx1OGNjY1x1OGNjZFx1OGNjZVx1OGNjZlx1OGNkMFx1OGNkMVx1OGNkMlx1OGNkM1x1OGNkNFx1OGNkNVx1OGNkNlx1OGNkN1x1OGNkOFx1OGNkOVx1OGNkYVx1OGNkYlx1OGNkY1x1OGNkZFx1OGNkZVx1OGNkZlx1OGNlMFx1OGNlMVx1OGNlMlx1OGNlM1x1OGNlNFx1OGNlNVx1''@;'; + put 'put ''OGNlNlx1OGNlN1x1OGNlOFx1OGNlOVx1OGNlYVx1OGNlYlx1OGNlY1x1ZmZmZFx1OGNlZFx1OGNlZVx1OGNlZlx1OGNmMFx1OGNmMVx1OGNmMlx1OGNmM1x1OGNmNFx1OGNmNVx1OGNmNlx1OGNmN1x1OGNmOFx1OGNmOVx1OGNmYVx1OGNmYlx1OGNmY1x1OGNmZFx1OGNmZVx1OGNmZlx1OGQw''@;'; + put 'put ''MFx1OGQwMVx1OGQwMlx1OGQwM1x1OGQwNFx1OGQwNVx1OGQwNlx1OGQwN1x1OGQwOFx1OGQwOVx1OGQwYVx1OGQwYlx1OGQwY1x1OGQwZFx1NGY1Zlx1NGY1N1x1NGYzMlx1NGYzZFx1NGY3Nlx1NGY3NFx1NGY5MVx1NGY4OVx1NGY4M1x1NGY4Zlx1NGY3ZVx1NGY3Ylx1NGZhYVx1NGY3Y1x1''@;'; + put 'put ''NGZhY1x1NGY5NFx1NGZlNlx1NGZlOFx1NGZlYVx1NGZjNVx1NGZkYVx1NGZlM1x1NGZkY1x1NGZkMVx1NGZkZlx1NGZmOFx1NTAyOVx1NTA0Y1x1NGZmM1x1NTAyY1x1NTAwZlx1NTAyZVx1NTAyZFx1NGZmZVx1NTAxY1x1NTAwY1x1NTAyNVx1NTAyOFx1NTA3ZVx1NTA0M1x1NTA1NVx1NTA0''@;'; + put 'put ''OFx1NTA0ZVx1NTA2Y1x1NTA3Ylx1NTBhNVx1NTBhN1x1NTBhOVx1NTBiYVx1NTBkNlx1NTEwNlx1NTBlZFx1NTBlY1x1NTBlNlx1NTBlZVx1NTEwN1x1NTEwYlx1NGVkZFx1NmMzZFx1NGY1OFx1NGY2NVx1NGZjZVx1OWZhMFx1NmM0Nlx1N2M3NFx1NTE2ZVx1NWRmZFx1OWVjOVx1OTk5OFx1''@;'; + put 'put ''NTE4MVx1NTkxNFx1NTJmOVx1NTMwZFx1OGEwN1x1NTMxMFx1NTFlYlx1NTkxOVx1NTE1NVx1NGVhMFx1NTE1Nlx1NGViM1x1ODg2ZVx1ODhhNFx1NGViNVx1ODExNFx1ODhkMlx1Nzk4MFx1NWIzNFx1ODgwM1x1N2ZiOFx1NTFhYlx1NTFiMVx1NTFiZFx1NTFiY1x1ZmZmZCIuc3BsaXQoIiIp''@;'; + put 'put ''LEU9MDtFIT1CWzIxN10ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjE3XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMTddW0VdXT01NTU1MitFLExbNTU1NTIrRV09QlsyMTddW0VdKTtmb3IoQlsyMThdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdThkMGVcdThkMGZcdThkMTBcdThkMTFcdThkMTJcdThkMTNcdThkMTRcdThkMTVcdThkMTZcdThkMTdcdThkMThcdThkMTlcdThkMWFcdThkMWJcdThkMWNcdThkMjBcdThkNTFcdThkNTJcdThkNTdcdThkNWZcdThkNjVcdThkNjhcdThkNjlcdThkNmFcdThkNmNcdThkNmVcdThk''@;'; + put 'put ''NmZcdThkNzFcdThkNzJcdThkNzhcdThkNzlcdThkN2FcdThkN2JcdThkN2NcdThkN2RcdThkN2VcdThkN2ZcdThkODBcdThkODJcdThkODNcdThkODZcdThkODdcdThkODhcdThkODlcdThkOGNcdThkOGRcdThkOGVcdThkOGZcdThkOTBcdThkOTJcdThkOTNcdThkOTVcdThkOTZcdThkOTdc''@;'; + put 'put ''dThkOThcdThkOTlcdThkOWFcdThkOWJcdThkOWNcdThkOWRcdThkOWVcdThkYTBcdThkYTFcdWZmZmRcdThkYTJcdThkYTRcdThkYTVcdThkYTZcdThkYTdcdThkYThcdThkYTlcdThkYWFcdThkYWJcdThkYWNcdThkYWRcdThkYWVcdThkYWZcdThkYjBcdThkYjJcdThkYjZcdThkYjdcdThk''@;'; + put 'put ''YjlcdThkYmJcdThkYmRcdThkYzBcdThkYzFcdThkYzJcdThkYzVcdThkYzdcdThkYzhcdThkYzlcdThkY2FcdThkY2RcdThkZDBcdThkZDJcdThkZDNcdThkZDRcdTUxYzdcdTUxOTZcdTUxYTJcdTUxYTVcdThiYTBcdThiYTZcdThiYTdcdThiYWFcdThiYjRcdThiYjVcdThiYjdcdThiYzJc''@;'; + put 'put ''dThiYzNcdThiY2JcdThiY2ZcdThiY2VcdThiZDJcdThiZDNcdThiZDRcdThiZDZcdThiZDhcdThiZDlcdThiZGNcdThiZGZcdThiZTBcdThiZTRcdThiZThcdThiZTlcdThiZWVcdThiZjBcdThiZjNcdThiZjZcdThiZjlcdThiZmNcdThiZmZcdThjMDBcdThjMDJcdThjMDRcdThjMDdcdThj''@;'; + put 'put ''MGNcdThjMGZcdThjMTFcdThjMTJcdThjMTRcdThjMTVcdThjMTZcdThjMTlcdThjMWJcdThjMThcdThjMWRcdThjMWZcdThjMjBcdThjMjFcdThjMjVcdThjMjdcdThjMmFcdThjMmJcdThjMmVcdThjMmZcdThjMzJcdThjMzNcdThjMzVcdThjMzZcdTUzNjlcdTUzN2FcdTk2MWRcdTk2MjJc''@;'; + put 'put ''dTk2MjFcdTk2MzFcdTk2MmFcdTk2M2RcdTk2M2NcdTk2NDJcdTk2NDlcdTk2NTRcdTk2NWZcdTk2NjdcdTk2NmNcdTk2NzJcdTk2NzRcdTk2ODhcdTk2OGRcdTk2OTdcdTk2YjBcdTkwOTdcdTkwOWJcdTkwOWRcdTkwOTlcdTkwYWNcdTkwYTFcdTkwYjRcdTkwYjNcdTkwYjZcdTkwYmFcdWZm''@;'; + put 'put ''ZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMThdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIxOF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjE4XVtFXV09NTU4MDgrRSxMWzU1ODA4K0VdPUJbMjE4XVtFXSk7Zm9yKEJbMjE5XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHU4ZGQ1XHU4ZGQ4XHU4ZGQ5XHU4ZGRjXHU4ZGUwXHU4ZGUxXHU4ZGUyXHU4ZGU1XHU4ZGU2XHU4ZGU3XHU4ZGU5XHU4ZGVkXHU4ZGVlXHU4ZGYwXHU4ZGYxXHU4ZGYyXHU4ZGY0XHU4ZGY2XHU4ZGZjXHU4ZGZlXHU4ZGZmXHU4ZTAwXHU4ZTAxXHU4ZTAyXHU4''@;'; + put 'put ''ZTAzXHU4ZTA0XHU4ZTA2XHU4ZTA3XHU4ZTA4XHU4ZTBiXHU4ZTBkXHU4ZTBlXHU4ZTEwXHU4ZTExXHU4ZTEyXHU4ZTEzXHU4ZTE1XHU4ZTE2XHU4ZTE3XHU4ZTE4XHU4ZTE5XHU4ZTFhXHU4ZTFiXHU4ZTFjXHU4ZTIwXHU4ZTIxXHU4ZTI0XHU4ZTI1XHU4ZTI2XHU4ZTI3XHU4ZTI4XHU4ZTJi''@;'; + put 'put ''XHU4ZTJkXHU4ZTMwXHU4ZTMyXHU4ZTMzXHU4ZTM0XHU4ZTM2XHU4ZTM3XHU4ZTM4XHU4ZTNiXHU4ZTNjXHU4ZTNlXHVmZmZkXHU4ZTNmXHU4ZTQzXHU4ZTQ1XHU4ZTQ2XHU4ZTRjXHU4ZTRkXHU4ZTRlXHU4ZTRmXHU4ZTUwXHU4ZTUzXHU4ZTU0XHU4ZTU1XHU4ZTU2XHU4ZTU3XHU4ZTU4XHU4''@;'; + put 'put ''ZTVhXHU4ZTViXHU4ZTVjXHU4ZTVkXHU4ZTVlXHU4ZTVmXHU4ZTYwXHU4ZTYxXHU4ZTYyXHU4ZTYzXHU4ZTY0XHU4ZTY1XHU4ZTY3XHU4ZTY4XHU4ZTZhXHU4ZTZiXHU4ZTZlXHU4ZTcxXHU5MGI4XHU5MGIwXHU5MGNmXHU5MGM1XHU5MGJlXHU5MGQwXHU5MGM0XHU5MGM3XHU5MGQzXHU5MGU2''@;'; + put 'put ''XHU5MGUyXHU5MGRjXHU5MGQ3XHU5MGRiXHU5MGViXHU5MGVmXHU5MGZlXHU5MTA0XHU5MTIyXHU5MTFlXHU5MTIzXHU5MTMxXHU5MTJmXHU5MTM5XHU5MTQzXHU5MTQ2XHU1MjBkXHU1OTQyXHU1MmEyXHU1MmFjXHU1MmFkXHU1MmJlXHU1NGZmXHU1MmQwXHU1MmQ2XHU1MmYwXHU1M2RmXHU3''@;'; + put 'put ''MWVlXHU3N2NkXHU1ZWY0XHU1MWY1XHU1MWZjXHU5YjJmXHU1M2I2XHU1ZjAxXHU3NTVhXHU1ZGVmXHU1NzRjXHU1N2E5XHU1N2ExXHU1ODdlXHU1OGJjXHU1OGM1XHU1OGQxXHU1NzI5XHU1NzJjXHU1NzJhXHU1NzMzXHU1NzM5XHU1NzJlXHU1NzJmXHU1NzVjXHU1NzNiXHU1NzQyXHU1NzY5''@;'; + put 'put ''XHU1Nzg1XHU1NzZiXHU1Nzg2XHU1NzdjXHU1NzdiXHU1NzY4XHU1NzZkXHU1Nzc2XHU1NzczXHU1N2FkXHU1N2E0XHU1NzhjXHU1N2IyXHU1N2NmXHU1N2E3XHU1N2I0XHU1NzkzXHU1N2EwXHU1N2Q1XHU1N2Q4XHU1N2RhXHU1N2Q5XHU1N2QyXHU1N2I4XHU1N2Y0XHU1N2VmXHU1N2Y4XHU1''@;'; + put 'put ''N2U0XHU1N2RkXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjE5XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMTldW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIxOV1bRV1dPTU2MDY0K0UsTFs1NjA2NCtFXT1CWzIxOV1bRV0pO2ZvcihCWzIyMF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OGU3M1x1OGU3NVx1OGU3N1x1OGU3OFx1OGU3OVx1OGU3YVx1OGU3Ylx1OGU3ZFx1OGU3ZVx1OGU4MFx1OGU4Mlx1OGU4M1x1OGU4NFx1OGU4Nlx1OGU4OFx1OGU4OVx1OGU4YVx1OGU4Ylx1OGU4Y1x1OGU4ZFx1OGU4ZVx1OGU5MVx1''@;'; + put 'put ''OGU5Mlx1OGU5M1x1OGU5NVx1OGU5Nlx1OGU5N1x1OGU5OFx1OGU5OVx1OGU5YVx1OGU5Ylx1OGU5ZFx1OGU5Zlx1OGVhMFx1OGVhMVx1OGVhMlx1OGVhM1x1OGVhNFx1OGVhNVx1OGVhNlx1OGVhN1x1OGVhOFx1OGVhOVx1OGVhYVx1OGVhZFx1OGVhZVx1OGViMFx1OGViMVx1OGViM1x1OGVi''@;'; + put 'put ''NFx1OGViNVx1OGViNlx1OGViN1x1OGViOFx1OGViOVx1OGViYlx1OGViY1x1OGViZFx1OGViZVx1OGViZlx1OGVjMFx1OGVjMVx1OGVjMlx1ZmZmZFx1OGVjM1x1OGVjNFx1OGVjNVx1OGVjNlx1OGVjN1x1OGVjOFx1OGVjOVx1OGVjYVx1OGVjYlx1OGVjY1x1OGVjZFx1OGVjZlx1OGVkMFx1''@;'; + put 'put ''OGVkMVx1OGVkMlx1OGVkM1x1OGVkNFx1OGVkNVx1OGVkNlx1OGVkN1x1OGVkOFx1OGVkOVx1OGVkYVx1OGVkYlx1OGVkY1x1OGVkZFx1OGVkZVx1OGVkZlx1OGVlMFx1OGVlMVx1OGVlMlx1OGVlM1x1OGVlNFx1NTgwYlx1NTgwZFx1NTdmZFx1NTdlZFx1NTgwMFx1NTgxZVx1NTgxOVx1NTg0''@;'; + put 'put ''NFx1NTgyMFx1NTg2NVx1NTg2Y1x1NTg4MVx1NTg4OVx1NTg5YVx1NTg4MFx1OTlhOFx1OWYxOVx1NjFmZlx1ODI3OVx1ODI3ZFx1ODI3Zlx1ODI4Zlx1ODI4YVx1ODJhOFx1ODI4NFx1ODI4ZVx1ODI5MVx1ODI5N1x1ODI5OVx1ODJhYlx1ODJiOFx1ODJiZVx1ODJiMFx1ODJjOFx1ODJjYVx1''@;'; + put 'put ''ODJlM1x1ODI5OFx1ODJiN1x1ODJhZVx1ODJjYlx1ODJjY1x1ODJjMVx1ODJhOVx1ODJiNFx1ODJhMVx1ODJhYVx1ODI5Zlx1ODJjNFx1ODJjZVx1ODJhNFx1ODJlMVx1ODMwOVx1ODJmN1x1ODJlNFx1ODMwZlx1ODMwN1x1ODJkY1x1ODJmNFx1ODJkMlx1ODJkOFx1ODMwY1x1ODJmYlx1ODJk''@;'; + put 'put ''M1x1ODMxMVx1ODMxYVx1ODMwNlx1ODMxNFx1ODMxNVx1ODJlMFx1ODJkNVx1ODMxY1x1ODM1MVx1ODM1Ylx1ODM1Y1x1ODMwOFx1ODM5Mlx1ODMzY1x1ODMzNFx1ODMzMVx1ODM5Ylx1ODM1ZVx1ODMyZlx1ODM0Zlx1ODM0N1x1ODM0M1x1ODM1Zlx1ODM0MFx1ODMxN1x1ODM2MFx1ODMyZFx1''@;'; + put 'put ''ODMzYVx1ODMzM1x1ODM2Nlx1ODM2NVx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIyMF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjIwXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMjBdW0VdXT01NjMyMCtFLExbNTYzMjArRV09QlsyMjBdW0VdKTtmb3IoQlsyMjFdPSJcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdThlZTVcdThlZTZcdThlZTdcdThlZThcdThlZTlcdThlZWFcdThlZWJcdThlZWNcdThlZWRcdThlZWVcdThlZWZcdThlZjBcdThlZjFcdThlZjJcdThlZjNcdThlZjRcdThlZjVcdThlZjZcdThlZjdcdThlZjhc''@;'; + put 'put ''dThlZjlcdThlZmFcdThlZmJcdThlZmNcdThlZmRcdThlZmVcdThlZmZcdThmMDBcdThmMDFcdThmMDJcdThmMDNcdThmMDRcdThmMDVcdThmMDZcdThmMDdcdThmMDhcdThmMDlcdThmMGFcdThmMGJcdThmMGNcdThmMGRcdThmMGVcdThmMGZcdThmMTBcdThmMTFcdThmMTJcdThmMTNcdThm''@;'; + put 'put ''MTRcdThmMTVcdThmMTZcdThmMTdcdThmMThcdThmMTlcdThmMWFcdThmMWJcdThmMWNcdThmMWRcdThmMWVcdThmMWZcdThmMjBcdThmMjFcdThmMjJcdThmMjNcdWZmZmRcdThmMjRcdThmMjVcdThmMjZcdThmMjdcdThmMjhcdThmMjlcdThmMmFcdThmMmJcdThmMmNcdThmMmRcdThmMmVc''@;'; + put 'put ''dThmMmZcdThmMzBcdThmMzFcdThmMzJcdThmMzNcdThmMzRcdThmMzVcdThmMzZcdThmMzdcdThmMzhcdThmMzlcdThmM2FcdThmM2JcdThmM2NcdThmM2RcdThmM2VcdThmM2ZcdThmNDBcdThmNDFcdThmNDJcdThmNDNcdThmNDRcdTgzNjhcdTgzMWJcdTgzNjlcdTgzNmNcdTgzNmFcdTgz''@;'; + put 'put ''NmRcdTgzNmVcdTgzYjBcdTgzNzhcdTgzYjNcdTgzYjRcdTgzYTBcdTgzYWFcdTgzOTNcdTgzOWNcdTgzODVcdTgzN2NcdTgzYjZcdTgzYTlcdTgzN2RcdTgzYjhcdTgzN2JcdTgzOThcdTgzOWVcdTgzYThcdTgzYmFcdTgzYmNcdTgzYzFcdTg0MDFcdTgzZTVcdTgzZDhcdTU4MDdcdTg0MThc''@;'; + put 'put ''dTg0MGJcdTgzZGRcdTgzZmRcdTgzZDZcdTg0MWNcdTg0MzhcdTg0MTFcdTg0MDZcdTgzZDRcdTgzZGZcdTg0MGZcdTg0MDNcdTgzZjhcdTgzZjlcdTgzZWFcdTgzYzVcdTgzYzBcdTg0MjZcdTgzZjBcdTgzZTFcdTg0NWNcdTg0NTFcdTg0NWFcdTg0NTlcdTg0NzNcdTg0ODdcdTg0ODhcdTg0''@;'; + put 'put ''N2FcdTg0ODlcdTg0NzhcdTg0M2NcdTg0NDZcdTg0NjlcdTg0NzZcdTg0OGNcdTg0OGVcdTg0MzFcdTg0NmRcdTg0YzFcdTg0Y2RcdTg0ZDBcdTg0ZTZcdTg0YmRcdTg0ZDNcdTg0Y2FcdTg0YmZcdTg0YmFcdTg0ZTBcdTg0YTFcdTg0YjlcdTg0YjRcdTg0OTdcdTg0ZTVcdTg0ZTNcdTg1MGNc''@;'; + put 'put ''dTc1MGRcdTg1MzhcdTg0ZjBcdTg1MzlcdTg1MWZcdTg1M2FcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMjFdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIyMV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjIxXVtFXV09NTY1NzYrRSxMWzU2NTc2K0VdPUJbMjIxXVtFXSk7Zm9yKEJbMjIy''@;'; + put 'put ''XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4ZjQ1XHU4ZjQ2XHU4ZjQ3XHU4ZjQ4XHU4ZjQ5XHU4ZjRhXHU4ZjRiXHU4ZjRjXHU4ZjRkXHU4ZjRlXHU4ZjRmXHU4ZjUwXHU4ZjUxXHU4ZjUyXHU4ZjUzXHU4ZjU0XHU4ZjU1XHU4ZjU2''@;'; + put 'put ''XHU4ZjU3XHU4ZjU4XHU4ZjU5XHU4ZjVhXHU4ZjViXHU4ZjVjXHU4ZjVkXHU4ZjVlXHU4ZjVmXHU4ZjYwXHU4ZjYxXHU4ZjYyXHU4ZjYzXHU4ZjY0XHU4ZjY1XHU4ZjZhXHU4ZjgwXHU4ZjhjXHU4ZjkyXHU4ZjlkXHU4ZmEwXHU4ZmExXHU4ZmEyXHU4ZmE0XHU4ZmE1XHU4ZmE2XHU4ZmE3XHU4''@;'; + put 'put ''ZmFhXHU4ZmFjXHU4ZmFkXHU4ZmFlXHU4ZmFmXHU4ZmIyXHU4ZmIzXHU4ZmI0XHU4ZmI1XHU4ZmI3XHU4ZmI4XHU4ZmJhXHU4ZmJiXHU4ZmJjXHU4ZmJmXHU4ZmMwXHU4ZmMzXHU4ZmM2XHVmZmZkXHU4ZmM5XHU4ZmNhXHU4ZmNiXHU4ZmNjXHU4ZmNkXHU4ZmNmXHU4ZmQyXHU4ZmQ2XHU4ZmQ3''@;'; + put 'put ''XHU4ZmRhXHU4ZmUwXHU4ZmUxXHU4ZmUzXHU4ZmU3XHU4ZmVjXHU4ZmVmXHU4ZmYxXHU4ZmYyXHU4ZmY0XHU4ZmY1XHU4ZmY2XHU4ZmZhXHU4ZmZiXHU4ZmZjXHU4ZmZlXHU4ZmZmXHU5MDA3XHU5MDA4XHU5MDBjXHU5MDBlXHU5MDEzXHU5MDE1XHU5MDE4XHU4NTU2XHU4NTNiXHU4NGZmXHU4''@;'; + put 'put ''NGZjXHU4NTU5XHU4NTQ4XHU4NTY4XHU4NTY0XHU4NTVlXHU4NTdhXHU3N2EyXHU4NTQzXHU4NTcyXHU4NTdiXHU4NWE0XHU4NWE4XHU4NTg3XHU4NThmXHU4NTc5XHU4NWFlXHU4NTljXHU4NTg1XHU4NWI5XHU4NWI3XHU4NWIwXHU4NWQzXHU4NWMxXHU4NWRjXHU4NWZmXHU4NjI3XHU4NjA1''@;'; + put 'put ''XHU4NjI5XHU4NjE2XHU4NjNjXHU1ZWZlXHU1ZjA4XHU1OTNjXHU1OTQxXHU4MDM3XHU1OTU1XHU1OTVhXHU1OTU4XHU1MzBmXHU1YzIyXHU1YzI1XHU1YzJjXHU1YzM0XHU2MjRjXHU2MjZhXHU2MjlmXHU2MmJiXHU2MmNhXHU2MmRhXHU2MmQ3XHU2MmVlXHU2MzIyXHU2MmY2XHU2MzM5XHU2''@;'; + put 'put ''MzRiXHU2MzQzXHU2M2FkXHU2M2Y2XHU2MzcxXHU2MzdhXHU2MzhlXHU2M2I0XHU2MzZkXHU2M2FjXHU2MzhhXHU2MzY5XHU2M2FlXHU2M2JjXHU2M2YyXHU2M2Y4XHU2M2UwXHU2M2ZmXHU2M2M0XHU2M2RlXHU2M2NlXHU2NDUyXHU2M2M2XHU2M2JlXHU2NDQ1XHU2NDQxXHU2NDBiXHU2NDFi''@;'; + put 'put ''XHU2NDIwXHU2NDBjXHU2NDI2XHU2NDIxXHU2NDVlXHU2NDg0XHU2NDZkXHU2NDk2XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjIyXS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMjJdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIyMl1bRV1dPTU2ODMyK0UsTFs1NjgzMitFXT1CWzIyMl1b''@;'; + put 'put ''RV0pO2ZvcihCWzIyM109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OTAxOVx1OTAxY1x1OTAyM1x1OTAyNFx1OTAyNVx1OTAyN1x1OTAyOFx1OTAyOVx1OTAyYVx1OTAyYlx1OTAyY1x1OTAzMFx1OTAzMVx1OTAzMlx1OTAzM1x1OTAz''@;'; + put 'put ''NFx1OTAzN1x1OTAzOVx1OTAzYVx1OTAzZFx1OTAzZlx1OTA0MFx1OTA0M1x1OTA0NVx1OTA0Nlx1OTA0OFx1OTA0OVx1OTA0YVx1OTA0Ylx1OTA0Y1x1OTA0ZVx1OTA1NFx1OTA1NVx1OTA1Nlx1OTA1OVx1OTA1YVx1OTA1Y1x1OTA1ZFx1OTA1ZVx1OTA1Zlx1OTA2MFx1OTA2MVx1OTA2NFx1''@;'; + put 'put ''OTA2Nlx1OTA2N1x1OTA2OVx1OTA2YVx1OTA2Ylx1OTA2Y1x1OTA2Zlx1OTA3MFx1OTA3MVx1OTA3Mlx1OTA3M1x1OTA3Nlx1OTA3N1x1OTA3OFx1OTA3OVx1OTA3YVx1OTA3Ylx1OTA3Y1x1OTA3ZVx1OTA4MVx1ZmZmZFx1OTA4NFx1OTA4NVx1OTA4Nlx1OTA4N1x1OTA4OVx1OTA4YVx1OTA4''@;'; + put 'put ''Y1x1OTA4ZFx1OTA4ZVx1OTA4Zlx1OTA5MFx1OTA5Mlx1OTA5NFx1OTA5Nlx1OTA5OFx1OTA5YVx1OTA5Y1x1OTA5ZVx1OTA5Zlx1OTBhMFx1OTBhNFx1OTBhNVx1OTBhN1x1OTBhOFx1OTBhOVx1OTBhYlx1OTBhZFx1OTBiMlx1OTBiN1x1OTBiY1x1OTBiZFx1OTBiZlx1OTBjMFx1NjQ3YVx1''@;'; + put 'put ''NjRiN1x1NjRiOFx1NjQ5OVx1NjRiYVx1NjRjMFx1NjRkMFx1NjRkN1x1NjRlNFx1NjRlMlx1NjUwOVx1NjUyNVx1NjUyZVx1NWYwYlx1NWZkMlx1NzUxOVx1NWYxMVx1NTM1Zlx1NTNmMVx1NTNmZFx1NTNlOVx1NTNlOFx1NTNmYlx1NTQxMlx1NTQxNlx1NTQwNlx1NTQ0Ylx1NTQ1Mlx1NTQ1''@;'; + put 'put ''M1x1NTQ1NFx1NTQ1Nlx1NTQ0M1x1NTQyMVx1NTQ1N1x1NTQ1OVx1NTQyM1x1NTQzMlx1NTQ4Mlx1NTQ5NFx1NTQ3N1x1NTQ3MVx1NTQ2NFx1NTQ5YVx1NTQ5Ylx1NTQ4NFx1NTQ3Nlx1NTQ2Nlx1NTQ5ZFx1NTRkMFx1NTRhZFx1NTRjMlx1NTRiNFx1NTRkMlx1NTRhN1x1NTRhNlx1NTRkM1x1''@;'; + put 'put ''NTRkNFx1NTQ3Mlx1NTRhM1x1NTRkNVx1NTRiYlx1NTRiZlx1NTRjY1x1NTRkOVx1NTRkYVx1NTRkY1x1NTRhOVx1NTRhYVx1NTRhNFx1NTRkZFx1NTRjZlx1NTRkZVx1NTUxYlx1NTRlN1x1NTUyMFx1NTRmZFx1NTUxNFx1NTRmM1x1NTUyMlx1NTUyM1x1NTUwZlx1NTUxMVx1NTUyN1x1NTUy''@;'; + put 'put ''YVx1NTU2N1x1NTU4Zlx1NTViNVx1NTU0OVx1NTU2ZFx1NTU0MVx1NTU1NVx1NTUzZlx1NTU1MFx1NTUzY1x1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIyM10ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjIzXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMjNdW0VdXT01NzA4OCtFLExbNTcw''@;'; + put 'put ''ODgrRV09QlsyMjNdW0VdKTtmb3IoQlsyMjRdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTkwYzJcdTkwYzNcdTkwYzZcdTkwYzhcdTkwYzlcdTkwY2JcdTkwY2NcdTkwY2RcdTkwZDJcdTkwZDRcdTkwZDVcdTkwZDZcdTkwZDhcdTkw''@;'; + put 'put ''ZDlcdTkwZGFcdTkwZGVcdTkwZGZcdTkwZTBcdTkwZTNcdTkwZTRcdTkwZTVcdTkwZTlcdTkwZWFcdTkwZWNcdTkwZWVcdTkwZjBcdTkwZjFcdTkwZjJcdTkwZjNcdTkwZjVcdTkwZjZcdTkwZjdcdTkwZjlcdTkwZmFcdTkwZmJcdTkwZmNcdTkwZmZcdTkxMDBcdTkxMDFcdTkxMDNcdTkxMDVc''@;'; + put 'put ''dTkxMDZcdTkxMDdcdTkxMDhcdTkxMDlcdTkxMGFcdTkxMGJcdTkxMGNcdTkxMGRcdTkxMGVcdTkxMGZcdTkxMTBcdTkxMTFcdTkxMTJcdTkxMTNcdTkxMTRcdTkxMTVcdTkxMTZcdTkxMTdcdTkxMThcdTkxMWFcdTkxMWJcdTkxMWNcdWZmZmRcdTkxMWRcdTkxMWZcdTkxMjBcdTkxMjFcdTkx''@;'; + put 'put ''MjRcdTkxMjVcdTkxMjZcdTkxMjdcdTkxMjhcdTkxMjlcdTkxMmFcdTkxMmJcdTkxMmNcdTkxMmRcdTkxMmVcdTkxMzBcdTkxMzJcdTkxMzNcdTkxMzRcdTkxMzVcdTkxMzZcdTkxMzdcdTkxMzhcdTkxM2FcdTkxM2JcdTkxM2NcdTkxM2RcdTkxM2VcdTkxM2ZcdTkxNDBcdTkxNDFcdTkxNDJc''@;'; + put 'put ''dTkxNDRcdTU1MzdcdTU1NTZcdTU1NzVcdTU1NzZcdTU1NzdcdTU1MzNcdTU1MzBcdTU1NWNcdTU1OGJcdTU1ZDJcdTU1ODNcdTU1YjFcdTU1YjlcdTU1ODhcdTU1ODFcdTU1OWZcdTU1N2VcdTU1ZDZcdTU1OTFcdTU1N2JcdTU1ZGZcdTU1YmRcdTU1YmVcdTU1OTRcdTU1OTlcdTU1ZWFcdTU1''@;'; + put 'put ''ZjdcdTU1YzlcdTU2MWZcdTU1ZDFcdTU1ZWJcdTU1ZWNcdTU1ZDRcdTU1ZTZcdTU1ZGRcdTU1YzRcdTU1ZWZcdTU1ZTVcdTU1ZjJcdTU1ZjNcdTU1Y2NcdTU1Y2RcdTU1ZThcdTU1ZjVcdTU1ZTRcdThmOTRcdTU2MWVcdTU2MDhcdTU2MGNcdTU2MDFcdTU2MjRcdTU2MjNcdTU1ZmVcdTU2MDBc''@;'; + put 'put ''dTU2MjdcdTU2MmRcdTU2NThcdTU2MzlcdTU2NTdcdTU2MmNcdTU2NGRcdTU2NjJcdTU2NTlcdTU2NWNcdTU2NGNcdTU2NTRcdTU2ODZcdTU2NjRcdTU2NzFcdTU2NmJcdTU2N2JcdTU2N2NcdTU2ODVcdTU2OTNcdTU2YWZcdTU2ZDRcdTU2ZDdcdTU2ZGRcdTU2ZTFcdTU2ZjVcdTU2ZWJcdTU2''@;'; + put 'put ''ZjlcdTU2ZmZcdTU3MDRcdTU3MGFcdTU3MDlcdTU3MWNcdTVlMGZcdTVlMTlcdTVlMTRcdTVlMTFcdTVlMzFcdTVlM2JcdTVlM2NcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMjRdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIyNF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjI0XVtFXV09''@;'; + put 'put ''NTczNDQrRSxMWzU3MzQ0K0VdPUJbMjI0XVtFXSk7Zm9yKEJbMjI1XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5MTQ1XHU5MTQ3XHU5MTQ4XHU5MTUxXHU5MTUzXHU5MTU0XHU5MTU1XHU5MTU2XHU5MTU4XHU5MTU5XHU5MTViXHU5''@;'; + put 'put ''MTVjXHU5MTVmXHU5MTYwXHU5MTY2XHU5MTY3XHU5MTY4XHU5MTZiXHU5MTZkXHU5MTczXHU5MTdhXHU5MTdiXHU5MTdjXHU5MTgwXHU5MTgxXHU5MTgyXHU5MTgzXHU5MTg0XHU5MTg2XHU5MTg4XHU5MThhXHU5MThlXHU5MThmXHU5MTkzXHU5MTk0XHU5MTk1XHU5MTk2XHU5MTk3XHU5MTk4''@;'; + put 'put ''XHU5MTk5XHU5MTljXHU5MTlkXHU5MTllXHU5MTlmXHU5MWEwXHU5MWExXHU5MWE0XHU5MWE1XHU5MWE2XHU5MWE3XHU5MWE4XHU5MWE5XHU5MWFiXHU5MWFjXHU5MWIwXHU5MWIxXHU5MWIyXHU5MWIzXHU5MWI2XHU5MWI3XHU5MWI4XHU5MWI5XHU5MWJiXHVmZmZkXHU5MWJjXHU5MWJkXHU5''@;'; + put 'put ''MWJlXHU5MWJmXHU5MWMwXHU5MWMxXHU5MWMyXHU5MWMzXHU5MWM0XHU5MWM1XHU5MWM2XHU5MWM4XHU5MWNiXHU5MWQwXHU5MWQyXHU5MWQzXHU5MWQ0XHU5MWQ1XHU5MWQ2XHU5MWQ3XHU5MWQ4XHU5MWQ5XHU5MWRhXHU5MWRiXHU5MWRkXHU5MWRlXHU5MWRmXHU5MWUwXHU5MWUxXHU5MWUy''@;'; + put 'put ''XHU5MWUzXHU5MWU0XHU5MWU1XHU1ZTM3XHU1ZTQ0XHU1ZTU0XHU1ZTViXHU1ZTVlXHU1ZTYxXHU1YzhjXHU1YzdhXHU1YzhkXHU1YzkwXHU1Yzk2XHU1Yzg4XHU1Yzk4XHU1Yzk5XHU1YzkxXHU1YzlhXHU1YzljXHU1Y2I1XHU1Y2EyXHU1Y2JkXHU1Y2FjXHU1Y2FiXHU1Y2IxXHU1Y2EzXHU1''@;'; + put 'put ''Y2MxXHU1Y2I3XHU1Y2M0XHU1Y2QyXHU1Y2U0XHU1Y2NiXHU1Y2U1XHU1ZDAyXHU1ZDAzXHU1ZDI3XHU1ZDI2XHU1ZDJlXHU1ZDI0XHU1ZDFlXHU1ZDA2XHU1ZDFiXHU1ZDU4XHU1ZDNlXHU1ZDM0XHU1ZDNkXHU1ZDZjXHU1ZDViXHU1ZDZmXHU1ZDVkXHU1ZDZiXHU1ZDRiXHU1ZDRhXHU1ZDY5''@;'; + put 'put ''XHU1ZDc0XHU1ZDgyXHU1ZDk5XHU1ZDlkXHU4YzczXHU1ZGI3XHU1ZGM1XHU1ZjczXHU1Zjc3XHU1ZjgyXHU1Zjg3XHU1Zjg5XHU1ZjhjXHU1Zjk1XHU1Zjk5XHU1ZjljXHU1ZmE4XHU1ZmFkXHU1ZmI1XHU1ZmJjXHU4ODYyXHU1ZjYxXHU3MmFkXHU3MmIwXHU3MmI0XHU3MmI3XHU3MmI4XHU3''@;'; + put 'put ''MmMzXHU3MmMxXHU3MmNlXHU3MmNkXHU3MmQyXHU3MmU4XHU3MmVmXHU3MmU5XHU3MmYyXHU3MmY0XHU3MmY3XHU3MzAxXHU3MmYzXHU3MzAzXHU3MmZhXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjI1XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMjVdW0VdLmNoYXJDb2RlQXQoMCkmJiht''@;'; + put 'put ''ZVtCWzIyNV1bRV1dPTU3NjAwK0UsTFs1NzYwMCtFXT1CWzIyNV1bRV0pO2ZvcihCWzIyNl09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OTFlNlx1OTFlN1x1OTFlOFx1OTFlOVx1OTFlYVx1OTFlYlx1OTFlY1x1OTFlZFx1OTFlZVx1''@;'; + put 'put ''OTFlZlx1OTFmMFx1OTFmMVx1OTFmMlx1OTFmM1x1OTFmNFx1OTFmNVx1OTFmNlx1OTFmN1x1OTFmOFx1OTFmOVx1OTFmYVx1OTFmYlx1OTFmY1x1OTFmZFx1OTFmZVx1OTFmZlx1OTIwMFx1OTIwMVx1OTIwMlx1OTIwM1x1OTIwNFx1OTIwNVx1OTIwNlx1OTIwN1x1OTIwOFx1OTIwOVx1OTIw''@;'; + put 'put ''YVx1OTIwYlx1OTIwY1x1OTIwZFx1OTIwZVx1OTIwZlx1OTIxMFx1OTIxMVx1OTIxMlx1OTIxM1x1OTIxNFx1OTIxNVx1OTIxNlx1OTIxN1x1OTIxOFx1OTIxOVx1OTIxYVx1OTIxYlx1OTIxY1x1OTIxZFx1OTIxZVx1OTIxZlx1OTIyMFx1OTIyMVx1OTIyMlx1OTIyM1x1OTIyNFx1ZmZmZFx1''@;'; + put 'put ''OTIyNVx1OTIyNlx1OTIyN1x1OTIyOFx1OTIyOVx1OTIyYVx1OTIyYlx1OTIyY1x1OTIyZFx1OTIyZVx1OTIyZlx1OTIzMFx1OTIzMVx1OTIzMlx1OTIzM1x1OTIzNFx1OTIzNVx1OTIzNlx1OTIzN1x1OTIzOFx1OTIzOVx1OTIzYVx1OTIzYlx1OTIzY1x1OTIzZFx1OTIzZVx1OTIzZlx1OTI0''@;'; + put 'put ''MFx1OTI0MVx1OTI0Mlx1OTI0M1x1OTI0NFx1OTI0NVx1NzJmYlx1NzMxN1x1NzMxM1x1NzMyMVx1NzMwYVx1NzMxZVx1NzMxZFx1NzMxNVx1NzMyMlx1NzMzOVx1NzMyNVx1NzMyY1x1NzMzOFx1NzMzMVx1NzM1MFx1NzM0ZFx1NzM1N1x1NzM2MFx1NzM2Y1x1NzM2Zlx1NzM3ZVx1ODIxYlx1''@;'; + put 'put ''NTkyNVx1OThlN1x1NTkyNFx1NTkwMlx1OTk2M1x1OTk2N1x1OTk2OFx1OTk2OVx1OTk2YVx1OTk2Ylx1OTk2Y1x1OTk3NFx1OTk3N1x1OTk3ZFx1OTk4MFx1OTk4NFx1OTk4N1x1OTk4YVx1OTk4ZFx1OTk5MFx1OTk5MVx1OTk5M1x1OTk5NFx1OTk5NVx1NWU4MFx1NWU5MVx1NWU4Ylx1NWU5''@;'; + put 'put ''Nlx1NWVhNVx1NWVhMFx1NWViOVx1NWViNVx1NWViZVx1NWViM1x1OGQ1M1x1NWVkMlx1NWVkMVx1NWVkYlx1NWVlOFx1NWVlYVx1ODFiYVx1NWZjNFx1NWZjOVx1NWZkNlx1NWZjZlx1NjAwM1x1NWZlZVx1NjAwNFx1NWZlMVx1NWZlNFx1NWZmZVx1NjAwNVx1NjAwNlx1NWZlYVx1NWZlZFx1''@;'; + put 'put ''NWZmOFx1NjAxOVx1NjAzNVx1NjAyNlx1NjAxYlx1NjAwZlx1NjAwZFx1NjAyOVx1NjAyYlx1NjAwYVx1NjAzZlx1NjAyMVx1NjA3OFx1NjA3OVx1NjA3Ylx1NjA3YVx1NjA0Mlx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIyNl0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjI2XVtFXS5jaGFy''@;'; + put 'put ''Q29kZUF0KDApJiYobWVbQlsyMjZdW0VdXT01Nzg1NitFLExbNTc4NTYrRV09QlsyMjZdW0VdKTtmb3IoQlsyMjddPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTkyNDZcdTkyNDdcdTkyNDhcdTkyNDlcdTkyNGFcdTkyNGJcdTkyNGNc''@;'; + put 'put ''dTkyNGRcdTkyNGVcdTkyNGZcdTkyNTBcdTkyNTFcdTkyNTJcdTkyNTNcdTkyNTRcdTkyNTVcdTkyNTZcdTkyNTdcdTkyNThcdTkyNTlcdTkyNWFcdTkyNWJcdTkyNWNcdTkyNWRcdTkyNWVcdTkyNWZcdTkyNjBcdTkyNjFcdTkyNjJcdTkyNjNcdTkyNjRcdTkyNjVcdTkyNjZcdTkyNjdcdTky''@;'; + put 'put ''NjhcdTkyNjlcdTkyNmFcdTkyNmJcdTkyNmNcdTkyNmRcdTkyNmVcdTkyNmZcdTkyNzBcdTkyNzFcdTkyNzJcdTkyNzNcdTkyNzVcdTkyNzZcdTkyNzdcdTkyNzhcdTkyNzlcdTkyN2FcdTkyN2JcdTkyN2NcdTkyN2RcdTkyN2VcdTkyN2ZcdTkyODBcdTkyODFcdTkyODJcdTkyODNcdTkyODRc''@;'; + put 'put ''dTkyODVcdWZmZmRcdTkyODZcdTkyODdcdTkyODhcdTkyODlcdTkyOGFcdTkyOGJcdTkyOGNcdTkyOGRcdTkyOGZcdTkyOTBcdTkyOTFcdTkyOTJcdTkyOTNcdTkyOTRcdTkyOTVcdTkyOTZcdTkyOTdcdTkyOThcdTkyOTlcdTkyOWFcdTkyOWJcdTkyOWNcdTkyOWRcdTkyOWVcdTkyOWZcdTky''@;'; + put 'put ''YTBcdTkyYTFcdTkyYTJcdTkyYTNcdTkyYTRcdTkyYTVcdTkyYTZcdTkyYTdcdTYwNmFcdTYwN2RcdTYwOTZcdTYwOWFcdTYwYWRcdTYwOWRcdTYwODNcdTYwOTJcdTYwOGNcdTYwOWJcdTYwZWNcdTYwYmJcdTYwYjFcdTYwZGRcdTYwZDhcdTYwYzZcdTYwZGFcdTYwYjRcdTYxMjBcdTYxMjZc''@;'; + put 'put ''dTYxMTVcdTYxMjNcdTYwZjRcdTYxMDBcdTYxMGVcdTYxMmJcdTYxNGFcdTYxNzVcdTYxYWNcdTYxOTRcdTYxYTdcdTYxYjdcdTYxZDRcdTYxZjVcdTVmZGRcdTk2YjNcdTk1ZTlcdTk1ZWJcdTk1ZjFcdTk1ZjNcdTk1ZjVcdTk1ZjZcdTk1ZmNcdTk1ZmVcdTk2MDNcdTk2MDRcdTk2MDZcdTk2''@;'; + put 'put ''MDhcdTk2MGFcdTk2MGJcdTk2MGNcdTk2MGRcdTk2MGZcdTk2MTJcdTk2MTVcdTk2MTZcdTk2MTdcdTk2MTlcdTk2MWFcdTRlMmNcdTcyM2ZcdTYyMTVcdTZjMzVcdTZjNTRcdTZjNWNcdTZjNGFcdTZjYTNcdTZjODVcdTZjOTBcdTZjOTRcdTZjOGNcdTZjNjhcdTZjNjlcdTZjNzRcdTZjNzZc''@;'; + put 'put ''dTZjODZcdTZjYTlcdTZjZDBcdTZjZDRcdTZjYWRcdTZjZjdcdTZjZjhcdTZjZjFcdTZjZDdcdTZjYjJcdTZjZTBcdTZjZDZcdTZjZmFcdTZjZWJcdTZjZWVcdTZjYjFcdTZjZDNcdTZjZWZcdTZjZmVcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMjddLmxlbmd0aDsrK0UpNjU1MzMhPT1C''@;'; + put 'put ''WzIyN11bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjI3XVtFXV09NTgxMTIrRSxMWzU4MTEyK0VdPUJbMjI3XVtFXSk7Zm9yKEJbMjI4XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5MmE4XHU5MmE5XHU5MmFhXHU5MmFiXHU5MmFj''@;'; + put 'put ''XHU5MmFkXHU5MmFmXHU5MmIwXHU5MmIxXHU5MmIyXHU5MmIzXHU5MmI0XHU5MmI1XHU5MmI2XHU5MmI3XHU5MmI4XHU5MmI5XHU5MmJhXHU5MmJiXHU5MmJjXHU5MmJkXHU5MmJlXHU5MmJmXHU5MmMwXHU5MmMxXHU5MmMyXHU5MmMzXHU5MmM0XHU5MmM1XHU5MmM2XHU5MmM3XHU5MmM5XHU5''@;'; + put 'put ''MmNhXHU5MmNiXHU5MmNjXHU5MmNkXHU5MmNlXHU5MmNmXHU5MmQwXHU5MmQxXHU5MmQyXHU5MmQzXHU5MmQ0XHU5MmQ1XHU5MmQ2XHU5MmQ3XHU5MmQ4XHU5MmQ5XHU5MmRhXHU5MmRiXHU5MmRjXHU5MmRkXHU5MmRlXHU5MmRmXHU5MmUwXHU5MmUxXHU5MmUyXHU5MmUzXHU5MmU0XHU5MmU1''@;'; + put 'put ''XHU5MmU2XHU5MmU3XHU5MmU4XHVmZmZkXHU5MmU5XHU5MmVhXHU5MmViXHU5MmVjXHU5MmVkXHU5MmVlXHU5MmVmXHU5MmYwXHU5MmYxXHU5MmYyXHU5MmYzXHU5MmY0XHU5MmY1XHU5MmY2XHU5MmY3XHU5MmY4XHU5MmY5XHU5MmZhXHU5MmZiXHU5MmZjXHU5MmZkXHU5MmZlXHU5MmZmXHU5''@;'; + put 'put ''MzAwXHU5MzAxXHU5MzAyXHU5MzAzXHU5MzA0XHU5MzA1XHU5MzA2XHU5MzA3XHU5MzA4XHU5MzA5XHU2ZDM5XHU2ZDI3XHU2ZDBjXHU2ZDQzXHU2ZDQ4XHU2ZDA3XHU2ZDA0XHU2ZDE5XHU2ZDBlXHU2ZDJiXHU2ZDRkXHU2ZDJlXHU2ZDM1XHU2ZDFhXHU2ZDRmXHU2ZDUyXHU2ZDU0XHU2ZDMz''@;'; + put 'put ''XHU2ZDkxXHU2ZDZmXHU2ZDllXHU2ZGEwXHU2ZDVlXHU2ZDkzXHU2ZDk0XHU2ZDVjXHU2ZDYwXHU2ZDdjXHU2ZDYzXHU2ZTFhXHU2ZGM3XHU2ZGM1XHU2ZGRlXHU2ZTBlXHU2ZGJmXHU2ZGUwXHU2ZTExXHU2ZGU2XHU2ZGRkXHU2ZGQ5XHU2ZTE2XHU2ZGFiXHU2ZTBjXHU2ZGFlXHU2ZTJiXHU2''@;'; + put 'put ''ZTZlXHU2ZTRlXHU2ZTZiXHU2ZWIyXHU2ZTVmXHU2ZTg2XHU2ZTUzXHU2ZTU0XHU2ZTMyXHU2ZTI1XHU2ZTQ0XHU2ZWRmXHU2ZWIxXHU2ZTk4XHU2ZWUwXHU2ZjJkXHU2ZWUyXHU2ZWE1XHU2ZWE3XHU2ZWJkXHU2ZWJiXHU2ZWI3XHU2ZWQ3XHU2ZWI0XHU2ZWNmXHU2ZThmXHU2ZWMyXHU2ZTlm''@;'; + put 'put ''XHU2ZjYyXHU2ZjQ2XHU2ZjQ3XHU2ZjI0XHU2ZjE1XHU2ZWY5XHU2ZjJmXHU2ZjM2XHU2ZjRiXHU2Zjc0XHU2ZjJhXHU2ZjA5XHU2ZjI5XHU2Zjg5XHU2ZjhkXHU2ZjhjXHU2Zjc4XHU2ZjcyXHU2ZjdjXHU2ZjdhXHU2ZmQxXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjI4XS5sZW5ndGg7''@;'; + put 'put ''KytFKTY1NTMzIT09QlsyMjhdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIyOF1bRV1dPTU4MzY4K0UsTFs1ODM2OCtFXT1CWzIyOF1bRV0pO2ZvcihCWzIyOV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OTMwYVx1OTMwYlx1OTMw''@;'; + put 'put ''Y1x1OTMwZFx1OTMwZVx1OTMwZlx1OTMxMFx1OTMxMVx1OTMxMlx1OTMxM1x1OTMxNFx1OTMxNVx1OTMxNlx1OTMxN1x1OTMxOFx1OTMxOVx1OTMxYVx1OTMxYlx1OTMxY1x1OTMxZFx1OTMxZVx1OTMxZlx1OTMyMFx1OTMyMVx1OTMyMlx1OTMyM1x1OTMyNFx1OTMyNVx1OTMyNlx1OTMyN1x1''@;'; + put 'put ''OTMyOFx1OTMyOVx1OTMyYVx1OTMyYlx1OTMyY1x1OTMyZFx1OTMyZVx1OTMyZlx1OTMzMFx1OTMzMVx1OTMzMlx1OTMzM1x1OTMzNFx1OTMzNVx1OTMzNlx1OTMzN1x1OTMzOFx1OTMzOVx1OTMzYVx1OTMzYlx1OTMzY1x1OTMzZFx1OTMzZlx1OTM0MFx1OTM0MVx1OTM0Mlx1OTM0M1x1OTM0''@;'; + put 'put ''NFx1OTM0NVx1OTM0Nlx1OTM0N1x1OTM0OFx1OTM0OVx1ZmZmZFx1OTM0YVx1OTM0Ylx1OTM0Y1x1OTM0ZFx1OTM0ZVx1OTM0Zlx1OTM1MFx1OTM1MVx1OTM1Mlx1OTM1M1x1OTM1NFx1OTM1NVx1OTM1Nlx1OTM1N1x1OTM1OFx1OTM1OVx1OTM1YVx1OTM1Ylx1OTM1Y1x1OTM1ZFx1OTM1ZVx1''@;'; + put 'put ''OTM1Zlx1OTM2MFx1OTM2MVx1OTM2Mlx1OTM2M1x1OTM2NFx1OTM2NVx1OTM2Nlx1OTM2N1x1OTM2OFx1OTM2OVx1OTM2Ylx1NmZjOVx1NmZhN1x1NmZiOVx1NmZiNlx1NmZjMlx1NmZlMVx1NmZlZVx1NmZkZVx1NmZlMFx1NmZlZlx1NzAxYVx1NzAyM1x1NzAxYlx1NzAzOVx1NzAzNVx1NzA0''@;'; + put 'put ''Zlx1NzA1ZVx1NWI4MFx1NWI4NFx1NWI5NVx1NWI5M1x1NWJhNVx1NWJiOFx1NzUyZlx1OWE5ZVx1NjQzNFx1NWJlNFx1NWJlZVx1ODkzMFx1NWJmMFx1OGU0N1x1OGIwN1x1OGZiNlx1OGZkM1x1OGZkNVx1OGZlNVx1OGZlZVx1OGZlNFx1OGZlOVx1OGZlNlx1OGZmM1x1OGZlOFx1OTAwNVx1''@;'; + put 'put ''OTAwNFx1OTAwYlx1OTAyNlx1OTAxMVx1OTAwZFx1OTAxNlx1OTAyMVx1OTAzNVx1OTAzNlx1OTAyZFx1OTAyZlx1OTA0NFx1OTA1MVx1OTA1Mlx1OTA1MFx1OTA2OFx1OTA1OFx1OTA2Mlx1OTA1Ylx1NjZiOVx1OTA3NFx1OTA3ZFx1OTA4Mlx1OTA4OFx1OTA4M1x1OTA4Ylx1NWY1MFx1NWY1''@;'; + put 'put ''N1x1NWY1Nlx1NWY1OFx1NWMzYlx1NTRhYlx1NWM1MFx1NWM1OVx1NWI3MVx1NWM2M1x1NWM2Nlx1N2ZiY1x1NWYyYVx1NWYyOVx1NWYyZFx1ODI3NFx1NWYzY1x1OWIzYlx1NWM2ZVx1NTk4MVx1NTk4M1x1NTk4ZFx1NTlhOVx1NTlhYVx1NTlhM1x1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1C''@;'; + put 'put ''WzIyOV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjI5XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMjldW0VdXT01ODYyNCtFLExbNTg2MjQrRV09QlsyMjldW0VdKTtmb3IoQlsyMzBdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTkz''@;'; + put 'put ''NmNcdTkzNmRcdTkzNmVcdTkzNmZcdTkzNzBcdTkzNzFcdTkzNzJcdTkzNzNcdTkzNzRcdTkzNzVcdTkzNzZcdTkzNzdcdTkzNzhcdTkzNzlcdTkzN2FcdTkzN2JcdTkzN2NcdTkzN2RcdTkzN2VcdTkzN2ZcdTkzODBcdTkzODFcdTkzODJcdTkzODNcdTkzODRcdTkzODVcdTkzODZcdTkzODdc''@;'; + put 'put ''dTkzODhcdTkzODlcdTkzOGFcdTkzOGJcdTkzOGNcdTkzOGRcdTkzOGVcdTkzOTBcdTkzOTFcdTkzOTJcdTkzOTNcdTkzOTRcdTkzOTVcdTkzOTZcdTkzOTdcdTkzOThcdTkzOTlcdTkzOWFcdTkzOWJcdTkzOWNcdTkzOWRcdTkzOWVcdTkzOWZcdTkzYTBcdTkzYTFcdTkzYTJcdTkzYTNcdTkz''@;'; + put 'put ''YTRcdTkzYTVcdTkzYTZcdTkzYTdcdTkzYThcdTkzYTlcdTkzYWFcdTkzYWJcdWZmZmRcdTkzYWNcdTkzYWRcdTkzYWVcdTkzYWZcdTkzYjBcdTkzYjFcdTkzYjJcdTkzYjNcdTkzYjRcdTkzYjVcdTkzYjZcdTkzYjdcdTkzYjhcdTkzYjlcdTkzYmFcdTkzYmJcdTkzYmNcdTkzYmRcdTkzYmVc''@;'; + put 'put ''dTkzYmZcdTkzYzBcdTkzYzFcdTkzYzJcdTkzYzNcdTkzYzRcdTkzYzVcdTkzYzZcdTkzYzdcdTkzYzhcdTkzYzlcdTkzY2JcdTkzY2NcdTkzY2RcdTU5OTdcdTU5Y2FcdTU5YWJcdTU5OWVcdTU5YTRcdTU5ZDJcdTU5YjJcdTU5YWZcdTU5ZDdcdTU5YmVcdTVhMDVcdTVhMDZcdTU5ZGRcdTVh''@;'; + put 'put ''MDhcdTU5ZTNcdTU5ZDhcdTU5ZjlcdTVhMGNcdTVhMDlcdTVhMzJcdTVhMzRcdTVhMTFcdTVhMjNcdTVhMTNcdTVhNDBcdTVhNjdcdTVhNGFcdTVhNTVcdTVhM2NcdTVhNjJcdTVhNzVcdTgwZWNcdTVhYWFcdTVhOWJcdTVhNzdcdTVhN2FcdTVhYmVcdTVhZWJcdTVhYjJcdTVhZDJcdTVhZDRc''@;'; + put 'put ''dTVhYjhcdTVhZTBcdTVhZTNcdTVhZjFcdTVhZDZcdTVhZTZcdTVhZDhcdTVhZGNcdTViMDlcdTViMTdcdTViMTZcdTViMzJcdTViMzdcdTViNDBcdTVjMTVcdTVjMWNcdTViNWFcdTViNjVcdTViNzNcdTViNTFcdTViNTNcdTViNjJcdTlhNzVcdTlhNzdcdTlhNzhcdTlhN2FcdTlhN2ZcdTlh''@;'; + put 'put ''N2RcdTlhODBcdTlhODFcdTlhODVcdTlhODhcdTlhOGFcdTlhOTBcdTlhOTJcdTlhOTNcdTlhOTZcdTlhOThcdTlhOWJcdTlhOWNcdTlhOWRcdTlhOWZcdTlhYTBcdTlhYTJcdTlhYTNcdTlhYTVcdTlhYTdcdTdlOWZcdTdlYTFcdTdlYTNcdTdlYTVcdTdlYThcdTdlYTlcdWZmZmQiLnNwbGl0''@;'; + put 'put ''KCIiKSxFPTA7RSE9QlsyMzBdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIzMF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjMwXVtFXV09NTg4ODArRSxMWzU4ODgwK0VdPUJbMjMwXVtFXSk7Zm9yKEJbMjMxXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHU5M2NlXHU5M2NmXHU5M2QwXHU5M2QxXHU5M2QyXHU5M2QzXHU5M2Q0XHU5M2Q1XHU5M2Q3XHU5M2Q4XHU5M2Q5XHU5M2RhXHU5M2RiXHU5M2RjXHU5M2RkXHU5M2RlXHU5M2RmXHU5M2UwXHU5M2UxXHU5M2UyXHU5M2UzXHU5M2U0XHU5M2U1XHU5M2U2XHU5M2U3XHU5M2U4''@;'; + put 'put ''XHU5M2U5XHU5M2VhXHU5M2ViXHU5M2VjXHU5M2VkXHU5M2VlXHU5M2VmXHU5M2YwXHU5M2YxXHU5M2YyXHU5M2YzXHU5M2Y0XHU5M2Y1XHU5M2Y2XHU5M2Y3XHU5M2Y4XHU5M2Y5XHU5M2ZhXHU5M2ZiXHU5M2ZjXHU5M2ZkXHU5M2ZlXHU5M2ZmXHU5NDAwXHU5NDAxXHU5NDAyXHU5NDAzXHU5''@;'; + put 'put ''NDA0XHU5NDA1XHU5NDA2XHU5NDA3XHU5NDA4XHU5NDA5XHU5NDBhXHU5NDBiXHU5NDBjXHU5NDBkXHVmZmZkXHU5NDBlXHU5NDBmXHU5NDEwXHU5NDExXHU5NDEyXHU5NDEzXHU5NDE0XHU5NDE1XHU5NDE2XHU5NDE3XHU5NDE4XHU5NDE5XHU5NDFhXHU5NDFiXHU5NDFjXHU5NDFkXHU5NDFl''@;'; + put 'put ''XHU5NDFmXHU5NDIwXHU5NDIxXHU5NDIyXHU5NDIzXHU5NDI0XHU5NDI1XHU5NDI2XHU5NDI3XHU5NDI4XHU5NDI5XHU5NDJhXHU5NDJiXHU5NDJjXHU5NDJkXHU5NDJlXHU3ZWFkXHU3ZWIwXHU3ZWJlXHU3ZWMwXHU3ZWMxXHU3ZWMyXHU3ZWM5XHU3ZWNiXHU3ZWNjXHU3ZWQwXHU3ZWQ0XHU3''@;'; + put 'put ''ZWQ3XHU3ZWRiXHU3ZWUwXHU3ZWUxXHU3ZWU4XHU3ZWViXHU3ZWVlXHU3ZWVmXHU3ZWYxXHU3ZWYyXHU3ZjBkXHU3ZWY2XHU3ZWZhXHU3ZWZiXHU3ZWZlXHU3ZjAxXHU3ZjAyXHU3ZjAzXHU3ZjA3XHU3ZjA4XHU3ZjBiXHU3ZjBjXHU3ZjBmXHU3ZjExXHU3ZjEyXHU3ZjE3XHU3ZjE5XHU3ZjFj''@;'; + put 'put ''XHU3ZjFiXHU3ZjFmXHU3ZjIxXHU3ZjIyXHU3ZjIzXHU3ZjI0XHU3ZjI1XHU3ZjI2XHU3ZjI3XHU3ZjJhXHU3ZjJiXHU3ZjJjXHU3ZjJkXHU3ZjJmXHU3ZjMwXHU3ZjMxXHU3ZjMyXHU3ZjMzXHU3ZjM1XHU1ZTdhXHU3NTdmXHU1ZGRiXHU3NTNlXHU5MDk1XHU3MzhlXHU3MzkxXHU3M2FlXHU3''@;'; + put 'put ''M2EyXHU3MzlmXHU3M2NmXHU3M2MyXHU3M2QxXHU3M2I3XHU3M2IzXHU3M2MwXHU3M2M5XHU3M2M4XHU3M2U1XHU3M2Q5XHU5ODdjXHU3NDBhXHU3M2U5XHU3M2U3XHU3M2RlXHU3M2JhXHU3M2YyXHU3NDBmXHU3NDJhXHU3NDViXHU3NDI2XHU3NDI1XHU3NDI4XHU3NDMwXHU3NDJlXHU3NDJj''@;'; + put 'put ''XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjMxXS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMzFdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIzMV1bRV1dPTU5MTM2K0UsTFs1OTEzNitFXT1CWzIzMV1bRV0pO2ZvcihCWzIzMl09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OTQyZlx1OTQzMFx1OTQzMVx1OTQzMlx1OTQzM1x1OTQzNFx1OTQzNVx1OTQzNlx1OTQzN1x1OTQzOFx1OTQzOVx1OTQzYVx1OTQzYlx1OTQzY1x1OTQzZFx1OTQzZlx1OTQ0MFx1OTQ0MVx1OTQ0Mlx1OTQ0M1x1OTQ0NFx1OTQ0NVx1OTQ0Nlx1OTQ0''@;'; + put 'put ''N1x1OTQ0OFx1OTQ0OVx1OTQ0YVx1OTQ0Ylx1OTQ0Y1x1OTQ0ZFx1OTQ0ZVx1OTQ0Zlx1OTQ1MFx1OTQ1MVx1OTQ1Mlx1OTQ1M1x1OTQ1NFx1OTQ1NVx1OTQ1Nlx1OTQ1N1x1OTQ1OFx1OTQ1OVx1OTQ1YVx1OTQ1Ylx1OTQ1Y1x1OTQ1ZFx1OTQ1ZVx1OTQ1Zlx1OTQ2MFx1OTQ2MVx1OTQ2Mlx1''@;'; + put 'put ''OTQ2M1x1OTQ2NFx1OTQ2NVx1OTQ2Nlx1OTQ2N1x1OTQ2OFx1OTQ2OVx1OTQ2YVx1OTQ2Y1x1OTQ2ZFx1OTQ2ZVx1OTQ2Zlx1ZmZmZFx1OTQ3MFx1OTQ3MVx1OTQ3Mlx1OTQ3M1x1OTQ3NFx1OTQ3NVx1OTQ3Nlx1OTQ3N1x1OTQ3OFx1OTQ3OVx1OTQ3YVx1OTQ3Ylx1OTQ3Y1x1OTQ3ZFx1OTQ3''@;'; + put 'put ''ZVx1OTQ3Zlx1OTQ4MFx1OTQ4MVx1OTQ4Mlx1OTQ4M1x1OTQ4NFx1OTQ5MVx1OTQ5Nlx1OTQ5OFx1OTRjN1x1OTRjZlx1OTRkM1x1OTRkNFx1OTRkYVx1OTRlNlx1OTRmYlx1OTUxY1x1OTUyMFx1NzQxYlx1NzQxYVx1NzQ0MVx1NzQ1Y1x1NzQ1N1x1NzQ1NVx1NzQ1OVx1NzQ3N1x1NzQ2ZFx1''@;'; + put 'put ''NzQ3ZVx1NzQ5Y1x1NzQ4ZVx1NzQ4MFx1NzQ4MVx1NzQ4N1x1NzQ4Ylx1NzQ5ZVx1NzRhOFx1NzRhOVx1NzQ5MFx1NzRhN1x1NzRkMlx1NzRiYVx1OTdlYVx1OTdlYlx1OTdlY1x1Njc0Y1x1Njc1M1x1Njc1ZVx1Njc0OFx1Njc2OVx1NjdhNVx1Njc4N1x1Njc2YVx1Njc3M1x1Njc5OFx1Njdh''@;'; + put 'put ''N1x1Njc3NVx1NjdhOFx1Njc5ZVx1NjdhZFx1Njc4Ylx1Njc3N1x1Njc3Y1x1NjdmMFx1NjgwOVx1NjdkOFx1NjgwYVx1NjdlOVx1NjdiMFx1NjgwY1x1NjdkOVx1NjdiNVx1NjdkYVx1NjdiM1x1NjdkZFx1NjgwMFx1NjdjM1x1NjdiOFx1NjdlMlx1NjgwZVx1NjdjMVx1NjdmZFx1NjgzMlx1''@;'; + put 'put ''NjgzM1x1Njg2MFx1Njg2MVx1Njg0ZVx1Njg2Mlx1Njg0NFx1Njg2NFx1Njg4M1x1NjgxZFx1Njg1NVx1Njg2Nlx1Njg0MVx1Njg2N1x1Njg0MFx1NjgzZVx1Njg0YVx1Njg0OVx1NjgyOVx1NjhiNVx1Njg4Zlx1Njg3NFx1Njg3N1x1Njg5M1x1Njg2Ylx1NjhjMlx1Njk2ZVx1NjhmY1x1Njkx''@;'; + put 'put ''Zlx1NjkyMFx1NjhmOVx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIzMl0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjMyXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMzJdW0VdXT01OTM5MitFLExbNTkzOTIrRV09QlsyMzJdW0VdKTtmb3IoQlsyMzNdPSJcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTk1MjdcdTk1MzNcdTk1M2RcdTk1NDNcdTk1NDhcdTk1NGJcdTk1NTVcdTk1NWFcdTk1NjBcdTk1NmVcdTk1NzRcdTk1NzVcdTk1NzdcdTk1NzhcdTk1NzlcdTk1N2FcdTk1N2JcdTk1N2NcdTk1N2RcdTk1N2VcdTk1ODBcdTk1''@;'; + put 'put ''ODFcdTk1ODJcdTk1ODNcdTk1ODRcdTk1ODVcdTk1ODZcdTk1ODdcdTk1ODhcdTk1ODlcdTk1OGFcdTk1OGJcdTk1OGNcdTk1OGRcdTk1OGVcdTk1OGZcdTk1OTBcdTk1OTFcdTk1OTJcdTk1OTNcdTk1OTRcdTk1OTVcdTk1OTZcdTk1OTdcdTk1OThcdTk1OTlcdTk1OWFcdTk1OWJcdTk1OWNc''@;'; + put 'put ''dTk1OWRcdTk1OWVcdTk1OWZcdTk1YTBcdTk1YTFcdTk1YTJcdTk1YTNcdTk1YTRcdTk1YTVcdTk1YTZcdTk1YTdcdTk1YThcdTk1YTlcdTk1YWFcdWZmZmRcdTk1YWJcdTk1YWNcdTk1YWRcdTk1YWVcdTk1YWZcdTk1YjBcdTk1YjFcdTk1YjJcdTk1YjNcdTk1YjRcdTk1YjVcdTk1YjZcdTk1''@;'; + put 'put ''YjdcdTk1YjhcdTk1YjlcdTk1YmFcdTk1YmJcdTk1YmNcdTk1YmRcdTk1YmVcdTk1YmZcdTk1YzBcdTk1YzFcdTk1YzJcdTk1YzNcdTk1YzRcdTk1YzVcdTk1YzZcdTk1YzdcdTk1YzhcdTk1YzlcdTk1Y2FcdTk1Y2JcdTY5MjRcdTY4ZjBcdTY5MGJcdTY5MDFcdTY5NTdcdTY4ZTNcdTY5MTBc''@;'; + put 'put ''dTY5NzFcdTY5MzlcdTY5NjBcdTY5NDJcdTY5NWRcdTY5ODRcdTY5NmJcdTY5ODBcdTY5OThcdTY5NzhcdTY5MzRcdTY5Y2NcdTY5ODdcdTY5ODhcdTY5Y2VcdTY5ODlcdTY5NjZcdTY5NjNcdTY5NzlcdTY5OWJcdTY5YTdcdTY5YmJcdTY5YWJcdTY5YWRcdTY5ZDRcdTY5YjFcdTY5YzFcdTY5''@;'; + put 'put ''Y2FcdTY5ZGZcdTY5OTVcdTY5ZTBcdTY5OGRcdTY5ZmZcdTZhMmZcdTY5ZWRcdTZhMTdcdTZhMThcdTZhNjVcdTY5ZjJcdTZhNDRcdTZhM2VcdTZhYTBcdTZhNTBcdTZhNWJcdTZhMzVcdTZhOGVcdTZhNzlcdTZhM2RcdTZhMjhcdTZhNThcdTZhN2NcdTZhOTFcdTZhOTBcdTZhYTlcdTZhOTdc''@;'; + put 'put ''dTZhYWJcdTczMzdcdTczNTJcdTZiODFcdTZiODJcdTZiODdcdTZiODRcdTZiOTJcdTZiOTNcdTZiOGRcdTZiOWFcdTZiOWJcdTZiYTFcdTZiYWFcdThmNmJcdThmNmRcdThmNzFcdThmNzJcdThmNzNcdThmNzVcdThmNzZcdThmNzhcdThmNzdcdThmNzlcdThmN2FcdThmN2NcdThmN2VcdThm''@;'; + put 'put ''ODFcdThmODJcdThmODRcdThmODdcdThmOGJcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMzNdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIzM11bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjMzXVtFXV09NTk2NDgrRSxMWzU5NjQ4K0VdPUJbMjMzXVtFXSk7Zm9yKEJbMjM0XT0iXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5NWNjXHU5NWNkXHU5NWNlXHU5NWNmXHU5NWQwXHU5NWQxXHU5NWQyXHU5NWQzXHU5NWQ0XHU5NWQ1XHU5NWQ2XHU5NWQ3XHU5NWQ4XHU5NWQ5XHU5NWRhXHU5NWRiXHU5NWRjXHU5NWRkXHU5NWRlXHU5''@;'; + put 'put ''NWRmXHU5NWUwXHU5NWUxXHU5NWUyXHU5NWUzXHU5NWU0XHU5NWU1XHU5NWU2XHU5NWU3XHU5NWVjXHU5NWZmXHU5NjA3XHU5NjEzXHU5NjE4XHU5NjFiXHU5NjFlXHU5NjIwXHU5NjIzXHU5NjI0XHU5NjI1XHU5NjI2XHU5NjI3XHU5NjI4XHU5NjI5XHU5NjJiXHU5NjJjXHU5NjJkXHU5NjJm''@;'; + put 'put ''XHU5NjMwXHU5NjM3XHU5NjM4XHU5NjM5XHU5NjNhXHU5NjNlXHU5NjQxXHU5NjQzXHU5NjRhXHU5NjRlXHU5NjRmXHU5NjUxXHU5NjUyXHU5NjUzXHU5NjU2XHU5NjU3XHVmZmZkXHU5NjU4XHU5NjU5XHU5NjVhXHU5NjVjXHU5NjVkXHU5NjVlXHU5NjYwXHU5NjYzXHU5NjY1XHU5NjY2XHU5''@;'; + put 'put ''NjZiXHU5NjZkXHU5NjZlXHU5NjZmXHU5NjcwXHU5NjcxXHU5NjczXHU5Njc4XHU5Njc5XHU5NjdhXHU5NjdiXHU5NjdjXHU5NjdkXHU5NjdlXHU5NjdmXHU5NjgwXHU5NjgxXHU5NjgyXHU5NjgzXHU5Njg0XHU5Njg3XHU5Njg5XHU5NjhhXHU4ZjhkXHU4ZjhlXHU4ZjhmXHU4Zjk4XHU4Zjlh''@;'; + put 'put ''XHU4ZWNlXHU2MjBiXHU2MjE3XHU2MjFiXHU2MjFmXHU2MjIyXHU2MjIxXHU2MjI1XHU2MjI0XHU2MjJjXHU4MWU3XHU3NGVmXHU3NGY0XHU3NGZmXHU3NTBmXHU3NTExXHU3NTEzXHU2NTM0XHU2NWVlXHU2NWVmXHU2NWYwXHU2NjBhXHU2NjE5XHU2NzcyXHU2NjAzXHU2NjE1XHU2NjAwXHU3''@;'; + put 'put ''MDg1XHU2NmY3XHU2NjFkXHU2NjM0XHU2NjMxXHU2NjM2XHU2NjM1XHU4MDA2XHU2NjVmXHU2NjU0XHU2NjQxXHU2NjRmXHU2NjU2XHU2NjYxXHU2NjU3XHU2Njc3XHU2Njg0XHU2NjhjXHU2NmE3XHU2NjlkXHU2NmJlXHU2NmRiXHU2NmRjXHU2NmU2XHU2NmU5XHU4ZDMyXHU4ZDMzXHU4ZDM2''@;'; + put 'put ''XHU4ZDNiXHU4ZDNkXHU4ZDQwXHU4ZDQ1XHU4ZDQ2XHU4ZDQ4XHU4ZDQ5XHU4ZDQ3XHU4ZDRkXHU4ZDU1XHU4ZDU5XHU4OWM3XHU4OWNhXHU4OWNiXHU4OWNjXHU4OWNlXHU4OWNmXHU4OWQwXHU4OWQxXHU3MjZlXHU3MjlmXHU3MjVkXHU3MjY2XHU3MjZmXHU3MjdlXHU3MjdmXHU3Mjg0XHU3''@;'; + put 'put ''MjhiXHU3MjhkXHU3MjhmXHU3MjkyXHU2MzA4XHU2MzMyXHU2M2IwXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjM0XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMzRdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIzNF1bRV1dPTU5OTA0K0UsTFs1OTkwNCtFXT1CWzIzNF1bRV0pO2ZvcihC''@;'; + put 'put ''WzIzNV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OTY4Y1x1OTY4ZVx1OTY5MVx1OTY5Mlx1OTY5M1x1OTY5NVx1OTY5Nlx1OTY5YVx1OTY5Ylx1OTY5ZFx1OTY5ZVx1OTY5Zlx1OTZhMFx1OTZhMVx1OTZhMlx1OTZhM1x1OTZhNFx1''@;'; + put 'put ''OTZhNVx1OTZhNlx1OTZhOFx1OTZhOVx1OTZhYVx1OTZhYlx1OTZhY1x1OTZhZFx1OTZhZVx1OTZhZlx1OTZiMVx1OTZiMlx1OTZiNFx1OTZiNVx1OTZiN1x1OTZiOFx1OTZiYVx1OTZiYlx1OTZiZlx1OTZjMlx1OTZjM1x1OTZjOFx1OTZjYVx1OTZjYlx1OTZkMFx1OTZkMVx1OTZkM1x1OTZk''@;'; + put 'put ''NFx1OTZkNlx1OTZkN1x1OTZkOFx1OTZkOVx1OTZkYVx1OTZkYlx1OTZkY1x1OTZkZFx1OTZkZVx1OTZkZlx1OTZlMVx1OTZlMlx1OTZlM1x1OTZlNFx1OTZlNVx1OTZlNlx1OTZlN1x1OTZlYlx1ZmZmZFx1OTZlY1x1OTZlZFx1OTZlZVx1OTZmMFx1OTZmMVx1OTZmMlx1OTZmNFx1OTZmNVx1''@;'; + put 'put ''OTZmOFx1OTZmYVx1OTZmYlx1OTZmY1x1OTZmZFx1OTZmZlx1OTcwMlx1OTcwM1x1OTcwNVx1OTcwYVx1OTcwYlx1OTcwY1x1OTcxMFx1OTcxMVx1OTcxMlx1OTcxNFx1OTcxNVx1OTcxN1x1OTcxOFx1OTcxOVx1OTcxYVx1OTcxYlx1OTcxZFx1OTcxZlx1OTcyMFx1NjQzZlx1NjRkOFx1ODAw''@;'; + put 'put ''NFx1NmJlYVx1NmJmM1x1NmJmZFx1NmJmNVx1NmJmOVx1NmMwNVx1NmMwN1x1NmMwNlx1NmMwZFx1NmMxNVx1NmMxOFx1NmMxOVx1NmMxYVx1NmMyMVx1NmMyOVx1NmMyNFx1NmMyYVx1NmMzMlx1NjUzNVx1NjU1NVx1NjU2Ylx1NzI0ZFx1NzI1Mlx1NzI1Nlx1NzIzMFx1ODY2Mlx1NTIxNlx1''@;'; + put 'put ''ODA5Zlx1ODA5Y1x1ODA5M1x1ODBiY1x1NjcwYVx1ODBiZFx1ODBiMVx1ODBhYlx1ODBhZFx1ODBiNFx1ODBiN1x1ODBlN1x1ODBlOFx1ODBlOVx1ODBlYVx1ODBkYlx1ODBjMlx1ODBjNFx1ODBkOVx1ODBjZFx1ODBkN1x1NjcxMFx1ODBkZFx1ODBlYlx1ODBmMVx1ODBmNFx1ODBlZFx1ODEw''@;'; + put 'put ''ZFx1ODEwZVx1ODBmMlx1ODBmY1x1NjcxNVx1ODExMlx1OGM1YVx1ODEzNlx1ODExZVx1ODEyY1x1ODExOFx1ODEzMlx1ODE0OFx1ODE0Y1x1ODE1M1x1ODE3NFx1ODE1OVx1ODE1YVx1ODE3MVx1ODE2MFx1ODE2OVx1ODE3Y1x1ODE3ZFx1ODE2ZFx1ODE2N1x1NTg0ZFx1NWFiNVx1ODE4OFx1''@;'; + put 'put ''ODE4Mlx1ODE5MVx1NmVkNVx1ODFhM1x1ODFhYVx1ODFjY1x1NjcyNlx1ODFjYVx1ODFiYlx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIzNV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjM1XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMzVdW0VdXT02MDE2MCtFLExbNjAxNjArRV09Qlsy''@;'; + put 'put ''MzVdW0VdKTtmb3IoQlsyMzZdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTk3MjFcdTk3MjJcdTk3MjNcdTk3MjRcdTk3MjVcdTk3MjZcdTk3MjdcdTk3MjhcdTk3MjlcdTk3MmJcdTk3MmNcdTk3MmVcdTk3MmZcdTk3MzFcdTk3MzNc''@;'; + put 'put ''dTk3MzRcdTk3MzVcdTk3MzZcdTk3MzdcdTk3M2FcdTk3M2JcdTk3M2NcdTk3M2RcdTk3M2ZcdTk3NDBcdTk3NDFcdTk3NDJcdTk3NDNcdTk3NDRcdTk3NDVcdTk3NDZcdTk3NDdcdTk3NDhcdTk3NDlcdTk3NGFcdTk3NGJcdTk3NGNcdTk3NGRcdTk3NGVcdTk3NGZcdTk3NTBcdTk3NTFcdTk3''@;'; + put 'put ''NTRcdTk3NTVcdTk3NTdcdTk3NThcdTk3NWFcdTk3NWNcdTk3NWRcdTk3NWZcdTk3NjNcdTk3NjRcdTk3NjZcdTk3NjdcdTk3NjhcdTk3NmFcdTk3NmJcdTk3NmNcdTk3NmRcdTk3NmVcdTk3NmZcdTk3NzBcdTk3NzFcdWZmZmRcdTk3NzJcdTk3NzVcdTk3NzdcdTk3NzhcdTk3NzlcdTk3N2Fc''@;'; + put 'put ''dTk3N2JcdTk3N2RcdTk3N2VcdTk3N2ZcdTk3ODBcdTk3ODFcdTk3ODJcdTk3ODNcdTk3ODRcdTk3ODZcdTk3ODdcdTk3ODhcdTk3ODlcdTk3OGFcdTk3OGNcdTk3OGVcdTk3OGZcdTk3OTBcdTk3OTNcdTk3OTVcdTk3OTZcdTk3OTdcdTk3OTlcdTk3OWFcdTk3OWJcdTk3OWNcdTk3OWRcdTgx''@;'; + put 'put ''YzFcdTgxYTZcdTZiMjRcdTZiMzdcdTZiMzlcdTZiNDNcdTZiNDZcdTZiNTlcdTk4ZDFcdTk4ZDJcdTk4ZDNcdTk4ZDVcdTk4ZDlcdTk4ZGFcdTZiYjNcdTVmNDBcdTZiYzJcdTg5ZjNcdTY1OTBcdTlmNTFcdTY1OTNcdTY1YmNcdTY1YzZcdTY1YzRcdTY1YzNcdTY1Y2NcdTY1Y2VcdTY1ZDJc''@;'; + put 'put ''dTY1ZDZcdTcwODBcdTcwOWNcdTcwOTZcdTcwOWRcdTcwYmJcdTcwYzBcdTcwYjdcdTcwYWJcdTcwYjFcdTcwZThcdTcwY2FcdTcxMTBcdTcxMTNcdTcxMTZcdTcxMmZcdTcxMzFcdTcxNzNcdTcxNWNcdTcxNjhcdTcxNDVcdTcxNzJcdTcxNGFcdTcxNzhcdTcxN2FcdTcxOThcdTcxYjNcdTcx''@;'; + put 'put ''YjVcdTcxYThcdTcxYTBcdTcxZTBcdTcxZDRcdTcxZTdcdTcxZjlcdTcyMWRcdTcyMjhcdTcwNmNcdTcxMThcdTcxNjZcdTcxYjlcdTYyM2VcdTYyM2RcdTYyNDNcdTYyNDhcdTYyNDlcdTc5M2JcdTc5NDBcdTc5NDZcdTc5NDlcdTc5NWJcdTc5NWNcdTc5NTNcdTc5NWFcdTc5NjJcdTc5NTdc''@;'; + put 'put ''dTc5NjBcdTc5NmZcdTc5NjdcdTc5N2FcdTc5ODVcdTc5OGFcdTc5OWFcdTc5YTdcdTc5YjNcdTVmZDFcdTVmZDBcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMzZdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIzNl1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjM2XVtFXV09NjA0MTYrRSxM''@;'; + put 'put ''WzYwNDE2K0VdPUJbMjM2XVtFXSk7Zm9yKEJbMjM3XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5NzllXHU5NzlmXHU5N2ExXHU5N2EyXHU5N2E0XHU5N2E1XHU5N2E2XHU5N2E3XHU5N2E4XHU5N2E5XHU5N2FhXHU5N2FjXHU5N2Fl''@;'; + put 'put ''XHU5N2IwXHU5N2IxXHU5N2IzXHU5N2I1XHU5N2I2XHU5N2I3XHU5N2I4XHU5N2I5XHU5N2JhXHU5N2JiXHU5N2JjXHU5N2JkXHU5N2JlXHU5N2JmXHU5N2MwXHU5N2MxXHU5N2MyXHU5N2MzXHU5N2M0XHU5N2M1XHU5N2M2XHU5N2M3XHU5N2M4XHU5N2M5XHU5N2NhXHU5N2NiXHU5N2NjXHU5''@;'; + put 'put ''N2NkXHU5N2NlXHU5N2NmXHU5N2QwXHU5N2QxXHU5N2QyXHU5N2QzXHU5N2Q0XHU5N2Q1XHU5N2Q2XHU5N2Q3XHU5N2Q4XHU5N2Q5XHU5N2RhXHU5N2RiXHU5N2RjXHU5N2RkXHU5N2RlXHU5N2RmXHU5N2UwXHU5N2UxXHU5N2UyXHU5N2UzXHVmZmZkXHU5N2U0XHU5N2U1XHU5N2U4XHU5N2Vl''@;'; + put 'put ''XHU5N2VmXHU5N2YwXHU5N2YxXHU5N2YyXHU5N2Y0XHU5N2Y3XHU5N2Y4XHU5N2Y5XHU5N2ZhXHU5N2ZiXHU5N2ZjXHU5N2ZkXHU5N2ZlXHU5N2ZmXHU5ODAwXHU5ODAxXHU5ODAyXHU5ODAzXHU5ODA0XHU5ODA1XHU5ODA2XHU5ODA3XHU5ODA4XHU5ODA5XHU5ODBhXHU5ODBiXHU5ODBjXHU5''@;'; + put 'put ''ODBkXHU5ODBlXHU2MDNjXHU2MDVkXHU2MDVhXHU2MDY3XHU2MDQxXHU2MDU5XHU2MDYzXHU2MGFiXHU2MTA2XHU2MTBkXHU2MTVkXHU2MWE5XHU2MTlkXHU2MWNiXHU2MWQxXHU2MjA2XHU4MDgwXHU4MDdmXHU2YzkzXHU2Y2Y2XHU2ZGZjXHU3N2Y2XHU3N2Y4XHU3ODAwXHU3ODA5XHU3ODE3''@;'; + put 'put ''XHU3ODE4XHU3ODExXHU2NWFiXHU3ODJkXHU3ODFjXHU3ODFkXHU3ODM5XHU3ODNhXHU3ODNiXHU3ODFmXHU3ODNjXHU3ODI1XHU3ODJjXHU3ODIzXHU3ODI5XHU3ODRlXHU3ODZkXHU3ODU2XHU3ODU3XHU3ODI2XHU3ODUwXHU3ODQ3XHU3ODRjXHU3ODZhXHU3ODliXHU3ODkzXHU3ODlhXHU3''@;'; + put 'put ''ODg3XHU3ODljXHU3OGExXHU3OGEzXHU3OGIyXHU3OGI5XHU3OGE1XHU3OGQ0XHU3OGQ5XHU3OGM5XHU3OGVjXHU3OGYyXHU3OTA1XHU3OGY0XHU3OTEzXHU3OTI0XHU3OTFlXHU3OTM0XHU5ZjliXHU5ZWY5XHU5ZWZiXHU5ZWZjXHU3NmYxXHU3NzA0XHU3NzBkXHU3NmY5XHU3NzA3XHU3NzA4''@;'; + put 'put ''XHU3NzFhXHU3NzIyXHU3NzE5XHU3NzJkXHU3NzI2XHU3NzM1XHU3NzM4XHU3NzUwXHU3NzUxXHU3NzQ3XHU3NzQzXHU3NzVhXHU3NzY4XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjM3XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMzddW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIzN11b''@;'; + put 'put ''RV1dPTYwNjcyK0UsTFs2MDY3MitFXT1CWzIzN11bRV0pO2ZvcihCWzIzOF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OTgwZlx1OTgxMFx1OTgxMVx1OTgxMlx1OTgxM1x1OTgxNFx1OTgxNVx1OTgxNlx1OTgxN1x1OTgxOFx1OTgx''@;'; + put 'put ''OVx1OTgxYVx1OTgxYlx1OTgxY1x1OTgxZFx1OTgxZVx1OTgxZlx1OTgyMFx1OTgyMVx1OTgyMlx1OTgyM1x1OTgyNFx1OTgyNVx1OTgyNlx1OTgyN1x1OTgyOFx1OTgyOVx1OTgyYVx1OTgyYlx1OTgyY1x1OTgyZFx1OTgyZVx1OTgyZlx1OTgzMFx1OTgzMVx1OTgzMlx1OTgzM1x1OTgzNFx1''@;'; + put 'put ''OTgzNVx1OTgzNlx1OTgzN1x1OTgzOFx1OTgzOVx1OTgzYVx1OTgzYlx1OTgzY1x1OTgzZFx1OTgzZVx1OTgzZlx1OTg0MFx1OTg0MVx1OTg0Mlx1OTg0M1x1OTg0NFx1OTg0NVx1OTg0Nlx1OTg0N1x1OTg0OFx1OTg0OVx1OTg0YVx1OTg0Ylx1OTg0Y1x1OTg0ZFx1ZmZmZFx1OTg0ZVx1OTg0''@;'; + put 'put ''Zlx1OTg1MFx1OTg1MVx1OTg1Mlx1OTg1M1x1OTg1NFx1OTg1NVx1OTg1Nlx1OTg1N1x1OTg1OFx1OTg1OVx1OTg1YVx1OTg1Ylx1OTg1Y1x1OTg1ZFx1OTg1ZVx1OTg1Zlx1OTg2MFx1OTg2MVx1OTg2Mlx1OTg2M1x1OTg2NFx1OTg2NVx1OTg2Nlx1OTg2N1x1OTg2OFx1OTg2OVx1OTg2YVx1''@;'; + put 'put ''OTg2Ylx1OTg2Y1x1OTg2ZFx1OTg2ZVx1Nzc2Mlx1Nzc2NVx1Nzc3Zlx1Nzc4ZFx1Nzc3ZFx1Nzc4MFx1Nzc4Y1x1Nzc5MVx1Nzc5Zlx1NzdhMFx1NzdiMFx1NzdiNVx1NzdiZFx1NzUzYVx1NzU0MFx1NzU0ZVx1NzU0Ylx1NzU0OFx1NzU1Ylx1NzU3Mlx1NzU3OVx1NzU4M1x1N2Y1OFx1N2Y2''@;'; + put 'put ''MVx1N2Y1Zlx1OGE0OFx1N2Y2OFx1N2Y3NFx1N2Y3MVx1N2Y3OVx1N2Y4MVx1N2Y3ZVx1NzZjZFx1NzZlNVx1ODgzMlx1OTQ4NVx1OTQ4Nlx1OTQ4N1x1OTQ4Ylx1OTQ4YVx1OTQ4Y1x1OTQ4ZFx1OTQ4Zlx1OTQ5MFx1OTQ5NFx1OTQ5N1x1OTQ5NVx1OTQ5YVx1OTQ5Ylx1OTQ5Y1x1OTRhM1x1''@;'; + put 'put ''OTRhNFx1OTRhYlx1OTRhYVx1OTRhZFx1OTRhY1x1OTRhZlx1OTRiMFx1OTRiMlx1OTRiNFx1OTRiNlx1OTRiN1x1OTRiOFx1OTRiOVx1OTRiYVx1OTRiY1x1OTRiZFx1OTRiZlx1OTRjNFx1OTRjOFx1OTRjOVx1OTRjYVx1OTRjYlx1OTRjY1x1OTRjZFx1OTRjZVx1OTRkMFx1OTRkMVx1OTRk''@;'; + put 'put ''Mlx1OTRkNVx1OTRkNlx1OTRkN1x1OTRkOVx1OTRkOFx1OTRkYlx1OTRkZVx1OTRkZlx1OTRlMFx1OTRlMlx1OTRlNFx1OTRlNVx1OTRlN1x1OTRlOFx1OTRlYVx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIzOF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjM4XVtFXS5jaGFyQ29kZUF0KDAp''@;'; + put 'put ''JiYobWVbQlsyMzhdW0VdXT02MDkyOCtFLExbNjA5MjgrRV09QlsyMzhdW0VdKTtmb3IoQlsyMzldPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTk4NmZcdTk4NzBcdTk4NzFcdTk4NzJcdTk4NzNcdTk4NzRcdTk4OGJcdTk4OGVcdTk4''@;'; + put 'put ''OTJcdTk4OTVcdTk4OTlcdTk4YTNcdTk4YThcdTk4YTlcdTk4YWFcdTk4YWJcdTk4YWNcdTk4YWRcdTk4YWVcdTk4YWZcdTk4YjBcdTk4YjFcdTk4YjJcdTk4YjNcdTk4YjRcdTk4YjVcdTk4YjZcdTk4YjdcdTk4YjhcdTk4YjlcdTk4YmFcdTk4YmJcdTk4YmNcdTk4YmRcdTk4YmVcdTk4YmZc''@;'; + put 'put ''dTk4YzBcdTk4YzFcdTk4YzJcdTk4YzNcdTk4YzRcdTk4YzVcdTk4YzZcdTk4YzdcdTk4YzhcdTk4YzlcdTk4Y2FcdTk4Y2JcdTk4Y2NcdTk4Y2RcdTk4Y2ZcdTk4ZDBcdTk4ZDRcdTk4ZDZcdTk4ZDdcdTk4ZGJcdTk4ZGNcdTk4ZGRcdTk4ZTBcdTk4ZTFcdTk4ZTJcdTk4ZTNcdTk4ZTRcdWZm''@;'; + put 'put ''ZmRcdTk4ZTVcdTk4ZTZcdTk4ZTlcdTk4ZWFcdTk4ZWJcdTk4ZWNcdTk4ZWRcdTk4ZWVcdTk4ZWZcdTk4ZjBcdTk4ZjFcdTk4ZjJcdTk4ZjNcdTk4ZjRcdTk4ZjVcdTk4ZjZcdTk4ZjdcdTk4ZjhcdTk4ZjlcdTk4ZmFcdTk4ZmJcdTk4ZmNcdTk4ZmRcdTk4ZmVcdTk4ZmZcdTk5MDBcdTk5MDFc''@;'; + put 'put ''dTk5MDJcdTk5MDNcdTk5MDRcdTk5MDVcdTk5MDZcdTk5MDdcdTk0ZTlcdTk0ZWJcdTk0ZWVcdTk0ZWZcdTk0ZjNcdTk0ZjRcdTk0ZjVcdTk0ZjdcdTk0ZjlcdTk0ZmNcdTk0ZmRcdTk0ZmZcdTk1MDNcdTk1MDJcdTk1MDZcdTk1MDdcdTk1MDlcdTk1MGFcdTk1MGRcdTk1MGVcdTk1MGZcdTk1''@;'; + put 'put ''MTJcdTk1MTNcdTk1MTRcdTk1MTVcdTk1MTZcdTk1MThcdTk1MWJcdTk1MWRcdTk1MWVcdTk1MWZcdTk1MjJcdTk1MmFcdTk1MmJcdTk1MjlcdTk1MmNcdTk1MzFcdTk1MzJcdTk1MzRcdTk1MzZcdTk1MzdcdTk1MzhcdTk1M2NcdTk1M2VcdTk1M2ZcdTk1NDJcdTk1MzVcdTk1NDRcdTk1NDVc''@;'; + put 'put ''dTk1NDZcdTk1NDlcdTk1NGNcdTk1NGVcdTk1NGZcdTk1NTJcdTk1NTNcdTk1NTRcdTk1NTZcdTk1NTdcdTk1NThcdTk1NTlcdTk1NWJcdTk1NWVcdTk1NWZcdTk1NWRcdTk1NjFcdTk1NjJcdTk1NjRcdTk1NjVcdTk1NjZcdTk1NjdcdTk1NjhcdTk1NjlcdTk1NmFcdTk1NmJcdTk1NmNcdTk1''@;'; + put 'put ''NmZcdTk1NzFcdTk1NzJcdTk1NzNcdTk1M2FcdTc3ZTdcdTc3ZWNcdTk2YzlcdTc5ZDVcdTc5ZWRcdTc5ZTNcdTc5ZWJcdTdhMDZcdTVkNDdcdTdhMDNcdTdhMDJcdTdhMWVcdTdhMTRcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMzldLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIzOV1bRV0u''@;'; + put 'put ''Y2hhckNvZGVBdCgwKSYmKG1lW0JbMjM5XVtFXV09NjExODQrRSxMWzYxMTg0K0VdPUJbMjM5XVtFXSk7Zm9yKEJbMjQwXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5OTA4XHU5OTA5XHU5OTBhXHU5OTBiXHU5OTBjXHU5OTBlXHU5''@;'; + put 'put ''OTBmXHU5OTExXHU5OTEyXHU5OTEzXHU5OTE0XHU5OTE1XHU5OTE2XHU5OTE3XHU5OTE4XHU5OTE5XHU5OTFhXHU5OTFiXHU5OTFjXHU5OTFkXHU5OTFlXHU5OTFmXHU5OTIwXHU5OTIxXHU5OTIyXHU5OTIzXHU5OTI0XHU5OTI1XHU5OTI2XHU5OTI3XHU5OTI4XHU5OTI5XHU5OTJhXHU5OTJi''@;'; + put 'put ''XHU5OTJjXHU5OTJkXHU5OTJmXHU5OTMwXHU5OTMxXHU5OTMyXHU5OTMzXHU5OTM0XHU5OTM1XHU5OTM2XHU5OTM3XHU5OTM4XHU5OTM5XHU5OTNhXHU5OTNiXHU5OTNjXHU5OTNkXHU5OTNlXHU5OTNmXHU5OTQwXHU5OTQxXHU5OTQyXHU5OTQzXHU5OTQ0XHU5OTQ1XHU5OTQ2XHU5OTQ3XHU5''@;'; + put 'put ''OTQ4XHU5OTQ5XHVmZmZkXHU5OTRhXHU5OTRiXHU5OTRjXHU5OTRkXHU5OTRlXHU5OTRmXHU5OTUwXHU5OTUxXHU5OTUyXHU5OTUzXHU5OTU2XHU5OTU3XHU5OTU4XHU5OTU5XHU5OTVhXHU5OTViXHU5OTVjXHU5OTVkXHU5OTVlXHU5OTVmXHU5OTYwXHU5OTYxXHU5OTYyXHU5OTY0XHU5OTY2''@;'; + put 'put ''XHU5OTczXHU5OTc4XHU5OTc5XHU5OTdiXHU5OTdlXHU5OTgyXHU5OTgzXHU5OTg5XHU3YTM5XHU3YTM3XHU3YTUxXHU5ZWNmXHU5OWE1XHU3YTcwXHU3Njg4XHU3NjhlXHU3NjkzXHU3Njk5XHU3NmE0XHU3NGRlXHU3NGUwXHU3NTJjXHU5ZTIwXHU5ZTIyXHU5ZTI4XHU5ZTI5XHU5ZTJhXHU5''@;'; + put 'put ''ZTJiXHU5ZTJjXHU5ZTMyXHU5ZTMxXHU5ZTM2XHU5ZTM4XHU5ZTM3XHU5ZTM5XHU5ZTNhXHU5ZTNlXHU5ZTQxXHU5ZTQyXHU5ZTQ0XHU5ZTQ2XHU5ZTQ3XHU5ZTQ4XHU5ZTQ5XHU5ZTRiXHU5ZTRjXHU5ZTRlXHU5ZTUxXHU5ZTU1XHU5ZTU3XHU5ZTVhXHU5ZTViXHU5ZTVjXHU5ZTVlXHU5ZTYz''@;'; + put 'put ''XHU5ZTY2XHU5ZTY3XHU5ZTY4XHU5ZTY5XHU5ZTZhXHU5ZTZiXHU5ZTZjXHU5ZTcxXHU5ZTZkXHU5ZTczXHU3NTkyXHU3NTk0XHU3NTk2XHU3NWEwXHU3NTlkXHU3NWFjXHU3NWEzXHU3NWIzXHU3NWI0XHU3NWI4XHU3NWM0XHU3NWIxXHU3NWIwXHU3NWMzXHU3NWMyXHU3NWQ2XHU3NWNkXHU3''@;'; + put 'put ''NWUzXHU3NWU4XHU3NWU2XHU3NWU0XHU3NWViXHU3NWU3XHU3NjAzXHU3NWYxXHU3NWZjXHU3NWZmXHU3NjEwXHU3NjAwXHU3NjA1XHU3NjBjXHU3NjE3XHU3NjBhXHU3NjI1XHU3NjE4XHU3NjE1XHU3NjE5XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjQwXS5sZW5ndGg7KytFKTY1NTMz''@;'; + put 'put ''IT09QlsyNDBdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzI0MF1bRV1dPTYxNDQwK0UsTFs2MTQ0MCtFXT1CWzI0MF1bRV0pO2ZvcihCWzI0MV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OTk4Y1x1OTk4ZVx1OTk5YVx1OTk5Ylx1''@;'; + put 'put ''OTk5Y1x1OTk5ZFx1OTk5ZVx1OTk5Zlx1OTlhMFx1OTlhMVx1OTlhMlx1OTlhM1x1OTlhNFx1OTlhNlx1OTlhN1x1OTlhOVx1OTlhYVx1OTlhYlx1OTlhY1x1OTlhZFx1OTlhZVx1OTlhZlx1OTliMFx1OTliMVx1OTliMlx1OTliM1x1OTliNFx1OTliNVx1OTliNlx1OTliN1x1OTliOFx1OTli''@;'; + put 'put ''OVx1OTliYVx1OTliYlx1OTliY1x1OTliZFx1OTliZVx1OTliZlx1OTljMFx1OTljMVx1OTljMlx1OTljM1x1OTljNFx1OTljNVx1OTljNlx1OTljN1x1OTljOFx1OTljOVx1OTljYVx1OTljYlx1OTljY1x1OTljZFx1OTljZVx1OTljZlx1OTlkMFx1OTlkMVx1OTlkMlx1OTlkM1x1OTlkNFx1''@;'; + put 'put ''OTlkNVx1OTlkNlx1OTlkN1x1OTlkOFx1ZmZmZFx1OTlkOVx1OTlkYVx1OTlkYlx1OTlkY1x1OTlkZFx1OTlkZVx1OTlkZlx1OTllMFx1OTllMVx1OTllMlx1OTllM1x1OTllNFx1OTllNVx1OTllNlx1OTllN1x1OTllOFx1OTllOVx1OTllYVx1OTllYlx1OTllY1x1OTllZFx1OTllZVx1OTll''@;'; + put 'put ''Zlx1OTlmMFx1OTlmMVx1OTlmMlx1OTlmM1x1OTlmNFx1OTlmNVx1OTlmNlx1OTlmN1x1OTlmOFx1OTlmOVx1NzYxYlx1NzYzY1x1NzYyMlx1NzYyMFx1NzY0MFx1NzYyZFx1NzYzMFx1NzYzZlx1NzYzNVx1NzY0M1x1NzYzZVx1NzYzM1x1NzY0ZFx1NzY1ZVx1NzY1NFx1NzY1Y1x1NzY1Nlx1''@;'; + put 'put ''NzY2Ylx1NzY2Zlx1N2ZjYVx1N2FlNlx1N2E3OFx1N2E3OVx1N2E4MFx1N2E4Nlx1N2E4OFx1N2E5NVx1N2FhNlx1N2FhMFx1N2FhY1x1N2FhOFx1N2FhZFx1N2FiM1x1ODg2NFx1ODg2OVx1ODg3Mlx1ODg3ZFx1ODg3Zlx1ODg4Mlx1ODhhMlx1ODhjNlx1ODhiN1x1ODhiY1x1ODhjOVx1ODhl''@;'; + put 'put ''Mlx1ODhjZVx1ODhlM1x1ODhlNVx1ODhmMVx1ODkxYVx1ODhmY1x1ODhlOFx1ODhmZVx1ODhmMFx1ODkyMVx1ODkxOVx1ODkxM1x1ODkxYlx1ODkwYVx1ODkzNFx1ODkyYlx1ODkzNlx1ODk0MVx1ODk2Nlx1ODk3Ylx1NzU4Ylx1ODBlNVx1NzZiMlx1NzZiNFx1NzdkY1x1ODAxMlx1ODAxNFx1''@;'; + put 'put ''ODAxNlx1ODAxY1x1ODAyMFx1ODAyMlx1ODAyNVx1ODAyNlx1ODAyN1x1ODAyOVx1ODAyOFx1ODAzMVx1ODAwYlx1ODAzNVx1ODA0M1x1ODA0Nlx1ODA0ZFx1ODA1Mlx1ODA2OVx1ODA3MVx1ODk4M1x1OTg3OFx1OTg4MFx1OTg4M1x1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzI0MV0ubGVu''@;'; + put 'put ''Z3RoOysrRSk2NTUzMyE9PUJbMjQxXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyNDFdW0VdXT02MTY5NitFLExbNjE2OTYrRV09QlsyNDFdW0VdKTtmb3IoQlsyNDJdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTk5ZmFcdTk5ZmJc''@;'; + put 'put ''dTk5ZmNcdTk5ZmRcdTk5ZmVcdTk5ZmZcdTlhMDBcdTlhMDFcdTlhMDJcdTlhMDNcdTlhMDRcdTlhMDVcdTlhMDZcdTlhMDdcdTlhMDhcdTlhMDlcdTlhMGFcdTlhMGJcdTlhMGNcdTlhMGRcdTlhMGVcdTlhMGZcdTlhMTBcdTlhMTFcdTlhMTJcdTlhMTNcdTlhMTRcdTlhMTVcdTlhMTZcdTlh''@;'; + put 'put ''MTdcdTlhMThcdTlhMTlcdTlhMWFcdTlhMWJcdTlhMWNcdTlhMWRcdTlhMWVcdTlhMWZcdTlhMjBcdTlhMjFcdTlhMjJcdTlhMjNcdTlhMjRcdTlhMjVcdTlhMjZcdTlhMjdcdTlhMjhcdTlhMjlcdTlhMmFcdTlhMmJcdTlhMmNcdTlhMmRcdTlhMmVcdTlhMmZcdTlhMzBcdTlhMzFcdTlhMzJc''@;'; + put 'put ''dTlhMzNcdTlhMzRcdTlhMzVcdTlhMzZcdTlhMzdcdTlhMzhcdWZmZmRcdTlhMzlcdTlhM2FcdTlhM2JcdTlhM2NcdTlhM2RcdTlhM2VcdTlhM2ZcdTlhNDBcdTlhNDFcdTlhNDJcdTlhNDNcdTlhNDRcdTlhNDVcdTlhNDZcdTlhNDdcdTlhNDhcdTlhNDlcdTlhNGFcdTlhNGJcdTlhNGNcdTlh''@;'; + put 'put ''NGRcdTlhNGVcdTlhNGZcdTlhNTBcdTlhNTFcdTlhNTJcdTlhNTNcdTlhNTRcdTlhNTVcdTlhNTZcdTlhNTdcdTlhNThcdTlhNTlcdTk4ODlcdTk4OGNcdTk4OGRcdTk4OGZcdTk4OTRcdTk4OWFcdTk4OWJcdTk4OWVcdTk4OWZcdTk4YTFcdTk4YTJcdTk4YTVcdTk4YTZcdTg2NGRcdTg2NTRc''@;'; + put 'put ''dTg2NmNcdTg2NmVcdTg2N2ZcdTg2N2FcdTg2N2NcdTg2N2JcdTg2YThcdTg2OGRcdTg2OGJcdTg2YWNcdTg2OWRcdTg2YTdcdTg2YTNcdTg2YWFcdTg2OTNcdTg2YTlcdTg2YjZcdTg2YzRcdTg2YjVcdTg2Y2VcdTg2YjBcdTg2YmFcdTg2YjFcdTg2YWZcdTg2YzlcdTg2Y2ZcdTg2YjRcdTg2''@;'; + put 'put ''ZTlcdTg2ZjFcdTg2ZjJcdTg2ZWRcdTg2ZjNcdTg2ZDBcdTg3MTNcdTg2ZGVcdTg2ZjRcdTg2ZGZcdTg2ZDhcdTg2ZDFcdTg3MDNcdTg3MDdcdTg2ZjhcdTg3MDhcdTg3MGFcdTg3MGRcdTg3MDlcdTg3MjNcdTg3M2JcdTg3MWVcdTg3MjVcdTg3MmVcdTg3MWFcdTg3M2VcdTg3NDhcdTg3MzRc''@;'; + put 'put ''dTg3MzFcdTg3MjlcdTg3MzdcdTg3M2ZcdTg3ODJcdTg3MjJcdTg3N2RcdTg3N2VcdTg3N2JcdTg3NjBcdTg3NzBcdTg3NGNcdTg3NmVcdTg3OGJcdTg3NTNcdTg3NjNcdTg3N2NcdTg3NjRcdTg3NTlcdTg3NjVcdTg3OTNcdTg3YWZcdTg3YThcdTg3ZDJcdWZmZmQiLnNwbGl0KCIiKSxFPTA7''@;'; + put 'put ''RSE9QlsyNDJdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzI0Ml1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjQyXVtFXV09NjE5NTIrRSxMWzYxOTUyK0VdPUJbMjQyXVtFXSk7Zm9yKEJbMjQzXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHU5YTVhXHU5YTViXHU5YTVjXHU5YTVkXHU5YTVlXHU5YTVmXHU5YTYwXHU5YTYxXHU5YTYyXHU5YTYzXHU5YTY0XHU5YTY1XHU5YTY2XHU5YTY3XHU5YTY4XHU5YTY5XHU5YTZhXHU5YTZiXHU5YTcyXHU5YTgzXHU5YTg5XHU5YThkXHU5YThlXHU5YTk0XHU5YTk1XHU5YTk5XHU5YWE2XHU5''@;'; + put 'put ''YWE5XHU5YWFhXHU5YWFiXHU5YWFjXHU5YWFkXHU5YWFlXHU5YWFmXHU5YWIyXHU5YWIzXHU5YWI0XHU5YWI1XHU5YWI5XHU5YWJiXHU5YWJkXHU5YWJlXHU5YWJmXHU5YWMzXHU5YWM0XHU5YWM2XHU5YWM3XHU5YWM4XHU5YWM5XHU5YWNhXHU5YWNkXHU5YWNlXHU5YWNmXHU5YWQwXHU5YWQy''@;'; + put 'put ''XHU5YWQ0XHU5YWQ1XHU5YWQ2XHU5YWQ3XHU5YWQ5XHU5YWRhXHU5YWRiXHU5YWRjXHVmZmZkXHU5YWRkXHU5YWRlXHU5YWUwXHU5YWUyXHU5YWUzXHU5YWU0XHU5YWU1XHU5YWU3XHU5YWU4XHU5YWU5XHU5YWVhXHU5YWVjXHU5YWVlXHU5YWYwXHU5YWYxXHU5YWYyXHU5YWYzXHU5YWY0XHU5''@;'; + put 'put ''YWY1XHU5YWY2XHU5YWY3XHU5YWY4XHU5YWZhXHU5YWZjXHU5YWZkXHU5YWZlXHU5YWZmXHU5YjAwXHU5YjAxXHU5YjAyXHU5YjA0XHU5YjA1XHU5YjA2XHU4N2M2XHU4Nzg4XHU4Nzg1XHU4N2FkXHU4Nzk3XHU4NzgzXHU4N2FiXHU4N2U1XHU4N2FjXHU4N2I1XHU4N2IzXHU4N2NiXHU4N2Qz''@;'; + put 'put ''XHU4N2JkXHU4N2QxXHU4N2MwXHU4N2NhXHU4N2RiXHU4N2VhXHU4N2UwXHU4N2VlXHU4ODE2XHU4ODEzXHU4N2ZlXHU4ODBhXHU4ODFiXHU4ODIxXHU4ODM5XHU4ODNjXHU3ZjM2XHU3ZjQyXHU3ZjQ0XHU3ZjQ1XHU4MjEwXHU3YWZhXHU3YWZkXHU3YjA4XHU3YjAzXHU3YjA0XHU3YjE1XHU3''@;'; + put 'put ''YjBhXHU3YjJiXHU3YjBmXHU3YjQ3XHU3YjM4XHU3YjJhXHU3YjE5XHU3YjJlXHU3YjMxXHU3YjIwXHU3YjI1XHU3YjI0XHU3YjMzXHU3YjNlXHU3YjFlXHU3YjU4XHU3YjVhXHU3YjQ1XHU3Yjc1XHU3YjRjXHU3YjVkXHU3YjYwXHU3YjZlXHU3YjdiXHU3YjYyXHU3YjcyXHU3YjcxXHU3Yjkw''@;'; + put 'put ''XHU3YmE2XHU3YmE3XHU3YmI4XHU3YmFjXHU3YjlkXHU3YmE4XHU3Yjg1XHU3YmFhXHU3YjljXHU3YmEyXHU3YmFiXHU3YmI0XHU3YmQxXHU3YmMxXHU3YmNjXHU3YmRkXHU3YmRhXHU3YmU1XHU3YmU2XHU3YmVhXHU3YzBjXHU3YmZlXHU3YmZjXHU3YzBmXHU3YzE2XHU3YzBiXHVmZmZkIi5z''@;'; + put 'put ''cGxpdCgiIiksRT0wO0UhPUJbMjQzXS5sZW5ndGg7KytFKTY1NTMzIT09QlsyNDNdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzI0M11bRV1dPTYyMjA4K0UsTFs2MjIwOCtFXT1CWzI0M11bRV0pO2ZvcihCWzI0NF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1OWIwN1x1OWIwOVx1OWIwYVx1OWIwYlx1OWIwY1x1OWIwZFx1OWIwZVx1OWIxMFx1OWIxMVx1OWIxMlx1OWIxNFx1OWIxNVx1OWIxNlx1OWIxN1x1OWIxOFx1OWIxOVx1OWIxYVx1OWIxYlx1OWIxY1x1OWIxZFx1OWIxZVx1OWIyMFx1OWIyMVx1OWIyMlx1OWIyNFx1''@;'; + put 'put ''OWIyNVx1OWIyNlx1OWIyN1x1OWIyOFx1OWIyOVx1OWIyYVx1OWIyYlx1OWIyY1x1OWIyZFx1OWIyZVx1OWIzMFx1OWIzMVx1OWIzM1x1OWIzNFx1OWIzNVx1OWIzNlx1OWIzN1x1OWIzOFx1OWIzOVx1OWIzYVx1OWIzZFx1OWIzZVx1OWIzZlx1OWI0MFx1OWI0Nlx1OWI0YVx1OWI0Ylx1OWI0''@;'; + put 'put ''Y1x1OWI0ZVx1OWI1MFx1OWI1Mlx1OWI1M1x1OWI1NVx1OWI1Nlx1OWI1N1x1OWI1OFx1OWI1OVx1OWI1YVx1ZmZmZFx1OWI1Ylx1OWI1Y1x1OWI1ZFx1OWI1ZVx1OWI1Zlx1OWI2MFx1OWI2MVx1OWI2Mlx1OWI2M1x1OWI2NFx1OWI2NVx1OWI2Nlx1OWI2N1x1OWI2OFx1OWI2OVx1OWI2YVx1''@;'; + put 'put ''OWI2Ylx1OWI2Y1x1OWI2ZFx1OWI2ZVx1OWI2Zlx1OWI3MFx1OWI3MVx1OWI3Mlx1OWI3M1x1OWI3NFx1OWI3NVx1OWI3Nlx1OWI3N1x1OWI3OFx1OWI3OVx1OWI3YVx1OWI3Ylx1N2MxZlx1N2MyYVx1N2MyNlx1N2MzOFx1N2M0MVx1N2M0MFx1ODFmZVx1ODIwMVx1ODIwMlx1ODIwNFx1ODFl''@;'; + put 'put ''Y1x1ODg0NFx1ODIyMVx1ODIyMlx1ODIyM1x1ODIyZFx1ODIyZlx1ODIyOFx1ODIyYlx1ODIzOFx1ODIzYlx1ODIzM1x1ODIzNFx1ODIzZVx1ODI0NFx1ODI0OVx1ODI0Ylx1ODI0Zlx1ODI1YVx1ODI1Zlx1ODI2OFx1ODg3ZVx1ODg4NVx1ODg4OFx1ODhkOFx1ODhkZlx1ODk1ZVx1N2Y5ZFx1''@;'; + put 'put ''N2Y5Zlx1N2ZhN1x1N2ZhZlx1N2ZiMFx1N2ZiMlx1N2M3Y1x1NjU0OVx1N2M5MVx1N2M5ZFx1N2M5Y1x1N2M5ZVx1N2NhMlx1N2NiMlx1N2NiY1x1N2NiZFx1N2NjMVx1N2NjN1x1N2NjY1x1N2NjZFx1N2NjOFx1N2NjNVx1N2NkN1x1N2NlOFx1ODI2ZVx1NjZhOFx1N2ZiZlx1N2ZjZVx1N2Zk''@;'; + put 'put ''NVx1N2ZlNVx1N2ZlMVx1N2ZlNlx1N2ZlOVx1N2ZlZVx1N2ZmM1x1N2NmOFx1N2Q3N1x1N2RhNlx1N2RhZVx1N2U0N1x1N2U5Ylx1OWViOFx1OWViNFx1OGQ3M1x1OGQ4NFx1OGQ5NFx1OGQ5MVx1OGRiMVx1OGQ2N1x1OGQ2ZFx1OGM0N1x1OGM0OVx1OTE0YVx1OTE1MFx1OTE0ZVx1OTE0Zlx1''@;'; + put 'put ''OTE2NFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzI0NF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjQ0XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyNDRdW0VdXT02MjQ2NCtFLExbNjI0NjQrRV09QlsyNDRdW0VdKTtmb3IoQlsyNDVdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTliN2NcdTliN2RcdTliN2VcdTliN2ZcdTliODBcdTliODFcdTliODJcdTliODNcdTliODRcdTliODVcdTliODZcdTliODdcdTliODhcdTliODlcdTliOGFcdTliOGJcdTliOGNcdTliOGRcdTliOGVcdTliOGZcdTliOTBcdTliOTFcdTliOTJc''@;'; + put 'put ''dTliOTNcdTliOTRcdTliOTVcdTliOTZcdTliOTdcdTliOThcdTliOTlcdTliOWFcdTliOWJcdTliOWNcdTliOWRcdTliOWVcdTliOWZcdTliYTBcdTliYTFcdTliYTJcdTliYTNcdTliYTRcdTliYTVcdTliYTZcdTliYTdcdTliYThcdTliYTlcdTliYWFcdTliYWJcdTliYWNcdTliYWRcdTli''@;'; + put 'put ''YWVcdTliYWZcdTliYjBcdTliYjFcdTliYjJcdTliYjNcdTliYjRcdTliYjVcdTliYjZcdTliYjdcdTliYjhcdTliYjlcdTliYmFcdWZmZmRcdTliYmJcdTliYmNcdTliYmRcdTliYmVcdTliYmZcdTliYzBcdTliYzFcdTliYzJcdTliYzNcdTliYzRcdTliYzVcdTliYzZcdTliYzdcdTliYzhc''@;'; + put 'put ''dTliYzlcdTliY2FcdTliY2JcdTliY2NcdTliY2RcdTliY2VcdTliY2ZcdTliZDBcdTliZDFcdTliZDJcdTliZDNcdTliZDRcdTliZDVcdTliZDZcdTliZDdcdTliZDhcdTliZDlcdTliZGFcdTliZGJcdTkxNjJcdTkxNjFcdTkxNzBcdTkxNjlcdTkxNmZcdTkxN2RcdTkxN2VcdTkxNzJcdTkx''@;'; + put 'put ''NzRcdTkxNzlcdTkxOGNcdTkxODVcdTkxOTBcdTkxOGRcdTkxOTFcdTkxYTJcdTkxYTNcdTkxYWFcdTkxYWRcdTkxYWVcdTkxYWZcdTkxYjVcdTkxYjRcdTkxYmFcdThjNTVcdTllN2VcdThkYjhcdThkZWJcdThlMDVcdThlNTlcdThlNjlcdThkYjVcdThkYmZcdThkYmNcdThkYmFcdThkYzRc''@;'; + put 'put ''dThkZDZcdThkZDdcdThkZGFcdThkZGVcdThkY2VcdThkY2ZcdThkZGJcdThkYzZcdThkZWNcdThkZjdcdThkZjhcdThkZTNcdThkZjlcdThkZmJcdThkZTRcdThlMDlcdThkZmRcdThlMTRcdThlMWRcdThlMWZcdThlMmNcdThlMmVcdThlMjNcdThlMmZcdThlM2FcdThlNDBcdThlMzlcdThl''@;'; + put 'put ''MzVcdThlM2RcdThlMzFcdThlNDlcdThlNDFcdThlNDJcdThlNTFcdThlNTJcdThlNGFcdThlNzBcdThlNzZcdThlN2NcdThlNmZcdThlNzRcdThlODVcdThlOGZcdThlOTRcdThlOTBcdThlOWNcdThlOWVcdThjNzhcdThjODJcdThjOGFcdThjODVcdThjOThcdThjOTRcdTY1OWJcdTg5ZDZc''@;'; + put 'put ''dTg5ZGVcdTg5ZGFcdTg5ZGNcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyNDVdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzI0NV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjQ1XVtFXV09NjI3MjArRSxMWzYyNzIwK0VdPUJbMjQ1XVtFXSk7Zm9yKEJbMjQ2XT0iXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5YmRjXHU5YmRkXHU5YmRlXHU5YmRmXHU5YmUwXHU5YmUxXHU5YmUyXHU5YmUzXHU5YmU0XHU5YmU1XHU5YmU2XHU5YmU3XHU5YmU4XHU5YmU5XHU5YmVhXHU5YmViXHU5YmVjXHU5YmVkXHU5YmVlXHU5YmVmXHU5YmYw''@;'; + put 'put ''XHU5YmYxXHU5YmYyXHU5YmYzXHU5YmY0XHU5YmY1XHU5YmY2XHU5YmY3XHU5YmY4XHU5YmY5XHU5YmZhXHU5YmZiXHU5YmZjXHU5YmZkXHU5YmZlXHU5YmZmXHU5YzAwXHU5YzAxXHU5YzAyXHU5YzAzXHU5YzA0XHU5YzA1XHU5YzA2XHU5YzA3XHU5YzA4XHU5YzA5XHU5YzBhXHU5YzBiXHU5''@;'; + put 'put ''YzBjXHU5YzBkXHU5YzBlXHU5YzBmXHU5YzEwXHU5YzExXHU5YzEyXHU5YzEzXHU5YzE0XHU5YzE1XHU5YzE2XHU5YzE3XHU5YzE4XHU5YzE5XHU5YzFhXHVmZmZkXHU5YzFiXHU5YzFjXHU5YzFkXHU5YzFlXHU5YzFmXHU5YzIwXHU5YzIxXHU5YzIyXHU5YzIzXHU5YzI0XHU5YzI1XHU5YzI2''@;'; + put 'put ''XHU5YzI3XHU5YzI4XHU5YzI5XHU5YzJhXHU5YzJiXHU5YzJjXHU5YzJkXHU5YzJlXHU5YzJmXHU5YzMwXHU5YzMxXHU5YzMyXHU5YzMzXHU5YzM0XHU5YzM1XHU5YzM2XHU5YzM3XHU5YzM4XHU5YzM5XHU5YzNhXHU5YzNiXHU4OWU1XHU4OWViXHU4OWVmXHU4YTNlXHU4YjI2XHU5NzUzXHU5''@;'; + put 'put ''NmU5XHU5NmYzXHU5NmVmXHU5NzA2XHU5NzAxXHU5NzA4XHU5NzBmXHU5NzBlXHU5NzJhXHU5NzJkXHU5NzMwXHU5NzNlXHU5ZjgwXHU5ZjgzXHU5Zjg1XHU5Zjg2XHU5Zjg3XHU5Zjg4XHU5Zjg5XHU5ZjhhXHU5ZjhjXHU5ZWZlXHU5ZjBiXHU5ZjBkXHU5NmI5XHU5NmJjXHU5NmJkXHU5NmNl''@;'; + put 'put ''XHU5NmQyXHU3N2JmXHU5NmUwXHU5MjhlXHU5MmFlXHU5MmM4XHU5MzNlXHU5MzZhXHU5M2NhXHU5MzhmXHU5NDNlXHU5NDZiXHU5YzdmXHU5YzgyXHU5Yzg1XHU5Yzg2XHU5Yzg3XHU5Yzg4XHU3YTIzXHU5YzhiXHU5YzhlXHU5YzkwXHU5YzkxXHU5YzkyXHU5Yzk0XHU5Yzk1XHU5YzlhXHU5''@;'; + put 'put ''YzliXHU5YzllXHU5YzlmXHU5Y2EwXHU5Y2ExXHU5Y2EyXHU5Y2EzXHU5Y2E1XHU5Y2E2XHU5Y2E3XHU5Y2E4XHU5Y2E5XHU5Y2FiXHU5Y2FkXHU5Y2FlXHU5Y2IwXHU5Y2IxXHU5Y2IyXHU5Y2IzXHU5Y2I0XHU5Y2I1XHU5Y2I2XHU5Y2I3XHU5Y2JhXHU5Y2JiXHU5Y2JjXHU5Y2JkXHU5Y2M0''@;'; + put 'put ''XHU5Y2M1XHU5Y2M2XHU5Y2M3XHU5Y2NhXHU5Y2NiXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjQ2XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyNDZdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzI0Nl1bRV1dPTYyOTc2K0UsTFs2Mjk3NitFXT1CWzI0Nl1bRV0pO2ZvcihCWzI0N109Ilx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OWMzY1x1OWMzZFx1OWMzZVx1OWMzZlx1OWM0MFx1OWM0MVx1OWM0Mlx1OWM0M1x1OWM0NFx1OWM0NVx1OWM0Nlx1OWM0N1x1OWM0OFx1OWM0OVx1OWM0YVx1OWM0Ylx1OWM0Y1x1OWM0ZFx1OWM0''@;'; + put 'put ''ZVx1OWM0Zlx1OWM1MFx1OWM1MVx1OWM1Mlx1OWM1M1x1OWM1NFx1OWM1NVx1OWM1Nlx1OWM1N1x1OWM1OFx1OWM1OVx1OWM1YVx1OWM1Ylx1OWM1Y1x1OWM1ZFx1OWM1ZVx1OWM1Zlx1OWM2MFx1OWM2MVx1OWM2Mlx1OWM2M1x1OWM2NFx1OWM2NVx1OWM2Nlx1OWM2N1x1OWM2OFx1OWM2OVx1''@;'; + put 'put ''OWM2YVx1OWM2Ylx1OWM2Y1x1OWM2ZFx1OWM2ZVx1OWM2Zlx1OWM3MFx1OWM3MVx1OWM3Mlx1OWM3M1x1OWM3NFx1OWM3NVx1OWM3Nlx1OWM3N1x1OWM3OFx1OWM3OVx1OWM3YVx1ZmZmZFx1OWM3Ylx1OWM3ZFx1OWM3ZVx1OWM4MFx1OWM4M1x1OWM4NFx1OWM4OVx1OWM4YVx1OWM4Y1x1OWM4''@;'; + put 'put ''Zlx1OWM5M1x1OWM5Nlx1OWM5N1x1OWM5OFx1OWM5OVx1OWM5ZFx1OWNhYVx1OWNhY1x1OWNhZlx1OWNiOVx1OWNiZVx1OWNiZlx1OWNjMFx1OWNjMVx1OWNjMlx1OWNjOFx1OWNjOVx1OWNkMVx1OWNkMlx1OWNkYVx1OWNkYlx1OWNlMFx1OWNlMVx1OWNjY1x1OWNjZFx1OWNjZVx1OWNjZlx1''@;'; + put 'put ''OWNkMFx1OWNkM1x1OWNkNFx1OWNkNVx1OWNkN1x1OWNkOFx1OWNkOVx1OWNkY1x1OWNkZFx1OWNkZlx1OWNlMlx1OTc3Y1x1OTc4NVx1OTc5MVx1OTc5Mlx1OTc5NFx1OTdhZlx1OTdhYlx1OTdhM1x1OTdiMlx1OTdiNFx1OWFiMVx1OWFiMFx1OWFiN1x1OWU1OFx1OWFiNlx1OWFiYVx1OWFi''@;'; + put 'put ''Y1x1OWFjMVx1OWFjMFx1OWFjNVx1OWFjMlx1OWFjYlx1OWFjY1x1OWFkMVx1OWI0NVx1OWI0M1x1OWI0N1x1OWI0OVx1OWI0OFx1OWI0ZFx1OWI1MVx1OThlOFx1OTkwZFx1OTkyZVx1OTk1NVx1OTk1NFx1OWFkZlx1OWFlMVx1OWFlNlx1OWFlZlx1OWFlYlx1OWFmYlx1OWFlZFx1OWFmOVx1''@;'; + put 'put ''OWIwOFx1OWIwZlx1OWIxM1x1OWIxZlx1OWIyM1x1OWViZFx1OWViZVx1N2UzYlx1OWU4Mlx1OWU4N1x1OWU4OFx1OWU4Ylx1OWU5Mlx1OTNkNlx1OWU5ZFx1OWU5Zlx1OWVkYlx1OWVkY1x1OWVkZFx1OWVlMFx1OWVkZlx1OWVlMlx1OWVlOVx1OWVlN1x1OWVlNVx1OWVlYVx1OWVlZlx1OWYy''@;'; + put 'put ''Mlx1OWYyY1x1OWYyZlx1OWYzOVx1OWYzN1x1OWYzZFx1OWYzZVx1OWY0NFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzI0N10ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjQ3XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyNDddW0VdXT02MzIzMitFLExbNjMyMzIrRV09QlsyNDddW0VdKTtm''@;'; + put 'put ''b3IoQlsyNDhdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTljZTNcdTljZTRcdTljZTVcdTljZTZcdTljZTdcdTljZThcdTljZTlcdTljZWFcdTljZWJcdTljZWNcdTljZWRcdTljZWVcdTljZWZcdTljZjBcdTljZjFcdTljZjJcdTlj''@;'; + put 'put ''ZjNcdTljZjRcdTljZjVcdTljZjZcdTljZjdcdTljZjhcdTljZjlcdTljZmFcdTljZmJcdTljZmNcdTljZmRcdTljZmVcdTljZmZcdTlkMDBcdTlkMDFcdTlkMDJcdTlkMDNcdTlkMDRcdTlkMDVcdTlkMDZcdTlkMDdcdTlkMDhcdTlkMDlcdTlkMGFcdTlkMGJcdTlkMGNcdTlkMGRcdTlkMGVc''@;'; + put 'put ''dTlkMGZcdTlkMTBcdTlkMTFcdTlkMTJcdTlkMTNcdTlkMTRcdTlkMTVcdTlkMTZcdTlkMTdcdTlkMThcdTlkMTlcdTlkMWFcdTlkMWJcdTlkMWNcdTlkMWRcdTlkMWVcdTlkMWZcdTlkMjBcdTlkMjFcdWZmZmRcdTlkMjJcdTlkMjNcdTlkMjRcdTlkMjVcdTlkMjZcdTlkMjdcdTlkMjhcdTlk''@;'; + put 'put ''MjlcdTlkMmFcdTlkMmJcdTlkMmNcdTlkMmRcdTlkMmVcdTlkMmZcdTlkMzBcdTlkMzFcdTlkMzJcdTlkMzNcdTlkMzRcdTlkMzVcdTlkMzZcdTlkMzdcdTlkMzhcdTlkMzlcdTlkM2FcdTlkM2JcdTlkM2NcdTlkM2RcdTlkM2VcdTlkM2ZcdTlkNDBcdTlkNDFcdTlkNDJcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyNDhdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzI0OF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjQ4XVtFXV09NjM0ODgrRSxMWzYzNDg4K0Vd''@;'; + put 'put ''PUJbMjQ4XVtFXSk7Zm9yKEJbMjQ5XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5ZDQzXHU5ZDQ0XHU5ZDQ1XHU5ZDQ2XHU5ZDQ3XHU5ZDQ4XHU5ZDQ5XHU5ZDRhXHU5ZDRiXHU5ZDRjXHU5ZDRkXHU5ZDRlXHU5ZDRmXHU5ZDUwXHU5''@;'; + put 'put ''ZDUxXHU5ZDUyXHU5ZDUzXHU5ZDU0XHU5ZDU1XHU5ZDU2XHU5ZDU3XHU5ZDU4XHU5ZDU5XHU5ZDVhXHU5ZDViXHU5ZDVjXHU5ZDVkXHU5ZDVlXHU5ZDVmXHU5ZDYwXHU5ZDYxXHU5ZDYyXHU5ZDYzXHU5ZDY0XHU5ZDY1XHU5ZDY2XHU5ZDY3XHU5ZDY4XHU5ZDY5XHU5ZDZhXHU5ZDZiXHU5ZDZj''@;'; + put 'put ''XHU5ZDZkXHU5ZDZlXHU5ZDZmXHU5ZDcwXHU5ZDcxXHU5ZDcyXHU5ZDczXHU5ZDc0XHU5ZDc1XHU5ZDc2XHU5ZDc3XHU5ZDc4XHU5ZDc5XHU5ZDdhXHU5ZDdiXHU5ZDdjXHU5ZDdkXHU5ZDdlXHU5ZDdmXHU5ZDgwXHU5ZDgxXHVmZmZkXHU5ZDgyXHU5ZDgzXHU5ZDg0XHU5ZDg1XHU5ZDg2XHU5''@;'; + put 'put ''ZDg3XHU5ZDg4XHU5ZDg5XHU5ZDhhXHU5ZDhiXHU5ZDhjXHU5ZDhkXHU5ZDhlXHU5ZDhmXHU5ZDkwXHU5ZDkxXHU5ZDkyXHU5ZDkzXHU5ZDk0XHU5ZDk1XHU5ZDk2XHU5ZDk3XHU5ZDk4XHU5ZDk5XHU5ZDlhXHU5ZDliXHU5ZDljXHU5ZDlkXHU5ZDllXHU5ZDlmXHU5ZGEwXHU5ZGExXHU5ZGEy''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjQ5XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyNDldW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzI0OV1bRV1dPTYzNzQ0''@;'; + put 'put ''K0UsTFs2Mzc0NCtFXT1CWzI0OV1bRV0pO2ZvcihCWzI1MF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OWRhM1x1OWRhNFx1OWRhNVx1OWRhNlx1OWRhN1x1OWRhOFx1OWRhOVx1OWRhYVx1OWRhYlx1OWRhY1x1OWRhZFx1OWRhZVx1''@;'; + put 'put ''OWRhZlx1OWRiMFx1OWRiMVx1OWRiMlx1OWRiM1x1OWRiNFx1OWRiNVx1OWRiNlx1OWRiN1x1OWRiOFx1OWRiOVx1OWRiYVx1OWRiYlx1OWRiY1x1OWRiZFx1OWRiZVx1OWRiZlx1OWRjMFx1OWRjMVx1OWRjMlx1OWRjM1x1OWRjNFx1OWRjNVx1OWRjNlx1OWRjN1x1OWRjOFx1OWRjOVx1OWRj''@;'; + put 'put ''YVx1OWRjYlx1OWRjY1x1OWRjZFx1OWRjZVx1OWRjZlx1OWRkMFx1OWRkMVx1OWRkMlx1OWRkM1x1OWRkNFx1OWRkNVx1OWRkNlx1OWRkN1x1OWRkOFx1OWRkOVx1OWRkYVx1OWRkYlx1OWRkY1x1OWRkZFx1OWRkZVx1OWRkZlx1OWRlMFx1OWRlMVx1ZmZmZFx1OWRlMlx1OWRlM1x1OWRlNFx1''@;'; + put 'put ''OWRlNVx1OWRlNlx1OWRlN1x1OWRlOFx1OWRlOVx1OWRlYVx1OWRlYlx1OWRlY1x1OWRlZFx1OWRlZVx1OWRlZlx1OWRmMFx1OWRmMVx1OWRmMlx1OWRmM1x1OWRmNFx1OWRmNVx1OWRmNlx1OWRmN1x1OWRmOFx1OWRmOVx1OWRmYVx1OWRmYlx1OWRmY1x1OWRmZFx1OWRmZVx1OWRmZlx1OWUw''@;'; + put 'put ''MFx1OWUwMVx1OWUwMlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzI1MF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjUwXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsy''@;'; + put 'put ''NTBdW0VdXT02NGUzK0UsTFs2NGUzK0VdPUJbMjUwXVtFXSk7Zm9yKEJbMjUxXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5ZTAzXHU5ZTA0XHU5ZTA1XHU5ZTA2XHU5ZTA3XHU5ZTA4XHU5ZTA5XHU5ZTBhXHU5ZTBiXHU5ZTBjXHU5''@;'; + put 'put ''ZTBkXHU5ZTBlXHU5ZTBmXHU5ZTEwXHU5ZTExXHU5ZTEyXHU5ZTEzXHU5ZTE0XHU5ZTE1XHU5ZTE2XHU5ZTE3XHU5ZTE4XHU5ZTE5XHU5ZTFhXHU5ZTFiXHU5ZTFjXHU5ZTFkXHU5ZTFlXHU5ZTI0XHU5ZTI3XHU5ZTJlXHU5ZTMwXHU5ZTM0XHU5ZTNiXHU5ZTNjXHU5ZTQwXHU5ZTRkXHU5ZTUw''@;'; + put 'put ''XHU5ZTUyXHU5ZTUzXHU5ZTU0XHU5ZTU2XHU5ZTU5XHU5ZTVkXHU5ZTVmXHU5ZTYwXHU5ZTYxXHU5ZTYyXHU5ZTY1XHU5ZTZlXHU5ZTZmXHU5ZTcyXHU5ZTc0XHU5ZTc1XHU5ZTc2XHU5ZTc3XHU5ZTc4XHU5ZTc5XHU5ZTdhXHU5ZTdiXHU5ZTdjXHU5ZTdkXHU5ZTgwXHVmZmZkXHU5ZTgxXHU5''@;'; + put 'put ''ZTgzXHU5ZTg0XHU5ZTg1XHU5ZTg2XHU5ZTg5XHU5ZThhXHU5ZThjXHU5ZThkXHU5ZThlXHU5ZThmXHU5ZTkwXHU5ZTkxXHU5ZTk0XHU5ZTk1XHU5ZTk2XHU5ZTk3XHU5ZTk4XHU5ZTk5XHU5ZTlhXHU5ZTliXHU5ZTljXHU5ZTllXHU5ZWEwXHU5ZWExXHU5ZWEyXHU5ZWEzXHU5ZWE0XHU5ZWE1''@;'; + put 'put ''XHU5ZWE3XHU5ZWE4XHU5ZWE5XHU5ZWFhXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjUxXS5sZW5ndGg7KytFKTY1NTMzIT09QlsyNTFdW0VdLmNoYXJDb2RlQXQo''@;'; + put 'put ''MCkmJihtZVtCWzI1MV1bRV1dPTY0MjU2K0UsTFs2NDI1NitFXT1CWzI1MV1bRV0pO2ZvcihCWzI1Ml09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OWVhYlx1OWVhY1x1OWVhZFx1OWVhZVx1OWVhZlx1OWViMFx1OWViMVx1OWViMlx1''@;'; + put 'put ''OWViM1x1OWViNVx1OWViNlx1OWViN1x1OWViOVx1OWViYVx1OWViY1x1OWViZlx1OWVjMFx1OWVjMVx1OWVjMlx1OWVjM1x1OWVjNVx1OWVjNlx1OWVjN1x1OWVjOFx1OWVjYVx1OWVjYlx1OWVjY1x1OWVkMFx1OWVkMlx1OWVkM1x1OWVkNVx1OWVkNlx1OWVkN1x1OWVkOVx1OWVkYVx1OWVk''@;'; + put 'put ''ZVx1OWVlMVx1OWVlM1x1OWVlNFx1OWVlNlx1OWVlOFx1OWVlYlx1OWVlY1x1OWVlZFx1OWVlZVx1OWVmMFx1OWVmMVx1OWVmMlx1OWVmM1x1OWVmNFx1OWVmNVx1OWVmNlx1OWVmN1x1OWVmOFx1OWVmYVx1OWVmZFx1OWVmZlx1OWYwMFx1OWYwMVx1OWYwMlx1OWYwM1x1OWYwNFx1OWYwNVx1''@;'; + put 'put ''ZmZmZFx1OWYwNlx1OWYwN1x1OWYwOFx1OWYwOVx1OWYwYVx1OWYwY1x1OWYwZlx1OWYxMVx1OWYxMlx1OWYxNFx1OWYxNVx1OWYxNlx1OWYxOFx1OWYxYVx1OWYxYlx1OWYxY1x1OWYxZFx1OWYxZVx1OWYxZlx1OWYyMVx1OWYyM1x1OWYyNFx1OWYyNVx1OWYyNlx1OWYyN1x1OWYyOFx1OWYy''@;'; + put 'put ''OVx1OWYyYVx1OWYyYlx1OWYyZFx1OWYyZVx1OWYzMFx1OWYzMVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzI1Ml0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjUyXVtF''@;'; + put 'put ''XS5jaGFyQ29kZUF0KDApJiYobWVbQlsyNTJdW0VdXT02NDUxMitFLExbNjQ1MTIrRV09QlsyNTJdW0VdKTtmb3IoQlsyNTNdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTlmMzJcdTlmMzNcdTlmMzRcdTlmMzVcdTlmMzZcdTlmMzhc''@;'; + put 'put ''dTlmM2FcdTlmM2NcdTlmM2ZcdTlmNDBcdTlmNDFcdTlmNDJcdTlmNDNcdTlmNDVcdTlmNDZcdTlmNDdcdTlmNDhcdTlmNDlcdTlmNGFcdTlmNGJcdTlmNGNcdTlmNGRcdTlmNGVcdTlmNGZcdTlmNTJcdTlmNTNcdTlmNTRcdTlmNTVcdTlmNTZcdTlmNTdcdTlmNThcdTlmNTlcdTlmNWFcdTlm''@;'; + put 'put ''NWJcdTlmNWNcdTlmNWRcdTlmNWVcdTlmNWZcdTlmNjBcdTlmNjFcdTlmNjJcdTlmNjNcdTlmNjRcdTlmNjVcdTlmNjZcdTlmNjdcdTlmNjhcdTlmNjlcdTlmNmFcdTlmNmJcdTlmNmNcdTlmNmRcdTlmNmVcdTlmNmZcdTlmNzBcdTlmNzFcdTlmNzJcdTlmNzNcdTlmNzRcdTlmNzVcdTlmNzZc''@;'; + put 'put ''dTlmNzdcdTlmNzhcdWZmZmRcdTlmNzlcdTlmN2FcdTlmN2JcdTlmN2NcdTlmN2RcdTlmN2VcdTlmODFcdTlmODJcdTlmOGRcdTlmOGVcdTlmOGZcdTlmOTBcdTlmOTFcdTlmOTJcdTlmOTNcdTlmOTRcdTlmOTVcdTlmOTZcdTlmOTdcdTlmOThcdTlmOWNcdTlmOWRcdTlmOWVcdTlmYTFcdTlm''@;'; + put 'put ''YTJcdTlmYTNcdTlmYTRcdTlmYTVcdWY5MmNcdWY5NzlcdWY5OTVcdWY5ZTdcdWY5ZjFcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyNTNdLmxlbmd0aDsrK0UpNjU1''@;'; + put 'put ''MzMhPT1CWzI1M11bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjUzXVtFXV09NjQ3NjgrRSxMWzY0NzY4K0VdPUJbMjUzXVtFXSk7Zm9yKEJbMjU0XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmYTBjXHVmYTBkXHVmYTBlXHVmYTBm''@;'; + put 'put ''XHVmYTExXHVmYTEzXHVmYTE0XHVmYTE4XHVmYTFmXHVmYTIwXHVmYTIxXHVmYTIzXHVmYTI0XHVmYTI3XHVmYTI4XHVmYTI5XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjU0XS5s''@;'; + put 'put ''ZW5ndGg7KytFKTY1NTMzIT09QlsyNTRdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzI1NF1bRV1dPTY1MDI0K0UsTFs2NTAyNCtFXT1CWzI1NF1bRV0pO3JldHVybntlbmM6bWUsZGVjOkx9fSgpLEplWzk0OV09ZnVuY3Rpb24oKXt2YXIgRSxMPVtdLG1lPXt9LEI9W107Zm9yKEJbMF09Ilww''@;'; + put 'put ''XHgwMVx4MDJceDAzXHgwNFx4MDVceDA2XHgwN1xiXHRcblx2XGZcclx4MGVceDBmXHgxMFx4MTFceDEyXHgxM1x4MTRceDE1XHgxNlx4MTdceDE4XHgxOVx4MWFceDFiXHgxY1x4MWRceDFlXHgxZiAhXCIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJT''@;'; + put 'put ''VFVWV1hZWltcXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5ceDdmXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgi''@;'; + put 'put ''IiksRT0wO0UhPUJbMF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMF1bRV1dPTArRSxMWzArRV09QlswXVtFXSk7Zm9yKEJbMTI5XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVh''@;'; + put 'put ''YzAyXHVhYzAzXHVhYzA1XHVhYzA2XHVhYzBiXHVhYzBjXHVhYzBkXHVhYzBlXHVhYzBmXHVhYzE4XHVhYzFlXHVhYzFmXHVhYzIxXHVhYzIyXHVhYzIzXHVhYzI1XHVhYzI2XHVhYzI3XHVhYzI4XHVhYzI5XHVhYzJhXHVhYzJiXHVhYzJlXHVhYzMyXHVhYzMzXHVhYzM0XHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVhYzM1XHVhYzM2XHVhYzM3XHVhYzNhXHVhYzNiXHVhYzNkXHVhYzNlXHVhYzNmXHVhYzQxXHVhYzQyXHVhYzQzXHVhYzQ0XHVhYzQ1XHVhYzQ2XHVhYzQ3XHVhYzQ4XHVhYzQ5XHVhYzRhXHVhYzRjXHVhYzRlXHVhYzRmXHVhYzUwXHVhYzUxXHVh''@;'; + put 'put ''YzUyXHVhYzUzXHVhYzU1XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVhYzU2XHVhYzU3XHVhYzU5XHVhYzVhXHVhYzViXHVhYzVkXHVhYzVlXHVhYzVmXHVhYzYwXHVhYzYxXHVhYzYyXHVhYzYzXHVhYzY0XHVhYzY1XHVhYzY2XHVhYzY3XHVhYzY4XHVhYzY5XHVhYzZh''@;'; + put 'put ''XHVhYzZiXHVhYzZjXHVhYzZkXHVhYzZlXHVhYzZmXHVhYzcyXHVhYzczXHVhYzc1XHVhYzc2XHVhYzc5XHVhYzdiXHVhYzdjXHVhYzdkXHVhYzdlXHVhYzdmXHVhYzgyXHVhYzg3XHVhYzg4XHVhYzhkXHVhYzhlXHVhYzhmXHVhYzkxXHVhYzkyXHVhYzkzXHVhYzk1XHVhYzk2XHVhYzk3XHVh''@;'; + put 'put ''Yzk4XHVhYzk5XHVhYzlhXHVhYzliXHVhYzllXHVhY2EyXHVhY2EzXHVhY2E0XHVhY2E1XHVhY2E2XHVhY2E3XHVhY2FiXHVhY2FkXHVhY2FlXHVhY2IxXHVhY2IyXHVhY2IzXHVhY2I0XHVhY2I1XHVhY2I2XHVhY2I3XHVhY2JhXHVhY2JlXHVhY2JmXHVhY2MwXHVhY2MyXHVhY2MzXHVhY2M1''@;'; + put 'put ''XHVhY2M2XHVhY2M3XHVhY2M5XHVhY2NhXHVhY2NiXHVhY2NkXHVhY2NlXHVhY2NmXHVhY2QwXHVhY2QxXHVhY2QyXHVhY2QzXHVhY2Q0XHVhY2Q2XHVhY2Q4XHVhY2Q5XHVhY2RhXHVhY2RiXHVhY2RjXHVhY2RkXHVhY2RlXHVhY2RmXHVhY2UyXHVhY2UzXHVhY2U1XHVhY2U2XHVhY2U5XHVh''@;'; + put 'put ''Y2ViXHVhY2VkXHVhY2VlXHVhY2YyXHVhY2Y0XHVhY2Y3XHVhY2Y4XHVhY2Y5XHVhY2ZhXHVhY2ZiXHVhY2ZlXHVhY2ZmXHVhZDAxXHVhZDAyXHVhZDAzXHVhZDA1XHVhZDA3XHVhZDA4XHVhZDA5XHVhZDBhXHVhZDBiXHVhZDBlXHVhZDEwXHVhZDEyXHVhZDEzXHVmZmZkIi5zcGxpdCgiIiks''@;'; + put 'put ''RT0wO0UhPUJbMTI5XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxMjldW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzEyOV1bRV1dPTMzMDI0K0UsTFszMzAyNCtFXT1CWzEyOV1bRV0pO2ZvcihCWzEzMF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1YWQxNFx1YWQxNVx1YWQxNlx1YWQxN1x1YWQxOVx1YWQxYVx1YWQxYlx1YWQxZFx1YWQxZVx1YWQxZlx1YWQyMVx1YWQyMlx1YWQyM1x1YWQyNFx1YWQyNVx1YWQyNlx1YWQyN1x1YWQyOFx1YWQyYVx1YWQyYlx1YWQyZVx1YWQyZlx1YWQzMFx1YWQzMVx1YWQzMlx1YWQz''@;'; + put 'put ''M1x1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YWQzNlx1YWQzN1x1YWQzOVx1YWQzYVx1YWQzYlx1YWQzZFx1YWQzZVx1YWQzZlx1YWQ0MFx1YWQ0MVx1YWQ0Mlx1YWQ0M1x1YWQ0Nlx1YWQ0OFx1YWQ0YVx1YWQ0Ylx1YWQ0Y1x1YWQ0ZFx1YWQ0ZVx1YWQ0Zlx1YWQ1MVx1''@;'; + put 'put ''YWQ1Mlx1YWQ1M1x1YWQ1NVx1YWQ1Nlx1YWQ1N1x1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YWQ1OVx1YWQ1YVx1YWQ1Ylx1YWQ1Y1x1YWQ1ZFx1YWQ1ZVx1YWQ1Zlx1YWQ2MFx1YWQ2Mlx1YWQ2NFx1YWQ2NVx1YWQ2Nlx1YWQ2N1x1YWQ2OFx1YWQ2OVx1YWQ2YVx1YWQ2''@;'; + put 'put ''Ylx1YWQ2ZVx1YWQ2Zlx1YWQ3MVx1YWQ3Mlx1YWQ3N1x1YWQ3OFx1YWQ3OVx1YWQ3YVx1YWQ3ZVx1YWQ4MFx1YWQ4M1x1YWQ4NFx1YWQ4NVx1YWQ4Nlx1YWQ4N1x1YWQ4YVx1YWQ4Ylx1YWQ4ZFx1YWQ4ZVx1YWQ4Zlx1YWQ5MVx1YWQ5Mlx1YWQ5M1x1YWQ5NFx1YWQ5NVx1YWQ5Nlx1YWQ5N1x1''@;'; + put 'put ''YWQ5OFx1YWQ5OVx1YWQ5YVx1YWQ5Ylx1YWQ5ZVx1YWQ5Zlx1YWRhMFx1YWRhMVx1YWRhMlx1YWRhM1x1YWRhNVx1YWRhNlx1YWRhN1x1YWRhOFx1YWRhOVx1YWRhYVx1YWRhYlx1YWRhY1x1YWRhZFx1YWRhZVx1YWRhZlx1YWRiMFx1YWRiMVx1YWRiMlx1YWRiM1x1YWRiNFx1YWRiNVx1YWRi''@;'; + put 'put ''Nlx1YWRiOFx1YWRiOVx1YWRiYVx1YWRiYlx1YWRiY1x1YWRiZFx1YWRiZVx1YWRiZlx1YWRjMlx1YWRjM1x1YWRjNVx1YWRjNlx1YWRjN1x1YWRjOVx1YWRjYVx1YWRjYlx1YWRjY1x1YWRjZFx1YWRjZVx1YWRjZlx1YWRkMlx1YWRkNFx1YWRkNVx1YWRkNlx1YWRkN1x1YWRkOFx1YWRkOVx1''@;'; + put 'put ''YWRkYVx1YWRkYlx1YWRkZFx1YWRkZVx1YWRkZlx1YWRlMVx1YWRlMlx1YWRlM1x1YWRlNVx1YWRlNlx1YWRlN1x1YWRlOFx1YWRlOVx1YWRlYVx1YWRlYlx1YWRlY1x1YWRlZFx1YWRlZVx1YWRlZlx1YWRmMFx1YWRmMVx1YWRmMlx1YWRmM1x1YWRmNFx1YWRmNVx1YWRmNlx1YWRmN1x1ZmZm''@;'; + put 'put ''ZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzEzMF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTMwXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxMzBdW0VdXT0zMzI4MCtFLExbMzMyODArRV09QlsxMzBdW0VdKTtmb3IoQlsxMzFdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWFkZmFcdWFkZmJcdWFkZmRcdWFkZmVcdWFlMDJcdWFlMDNcdWFlMDRcdWFlMDVcdWFlMDZcdWFlMDdcdWFlMGFcdWFlMGNcdWFlMGVcdWFlMGZcdWFlMTBcdWFlMTFcdWFlMTJcdWFlMTNcdWFlMTVcdWFlMTZcdWFlMTdcdWFlMThcdWFlMTlcdWFl''@;'; + put 'put ''MWFcdWFlMWJcdWFlMWNcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWFlMWRcdWFlMWVcdWFlMWZcdWFlMjBcdWFlMjFcdWFlMjJcdWFlMjNcdWFlMjRcdWFlMjVcdWFlMjZcdWFlMjdcdWFlMjhcdWFlMjlcdWFlMmFcdWFlMmJcdWFlMmNcdWFlMmRcdWFlMmVcdWFlMmZc''@;'; + put 'put ''dWFlMzJcdWFlMzNcdWFlMzVcdWFlMzZcdWFlMzlcdWFlM2JcdWFlM2NcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWFlM2RcdWFlM2VcdWFlM2ZcdWFlNDJcdWFlNDRcdWFlNDdcdWFlNDhcdWFlNDlcdWFlNGJcdWFlNGZcdWFlNTFcdWFlNTJcdWFlNTNcdWFlNTVcdWFl''@;'; + put 'put ''NTdcdWFlNThcdWFlNTlcdWFlNWFcdWFlNWJcdWFlNWVcdWFlNjJcdWFlNjNcdWFlNjRcdWFlNjZcdWFlNjdcdWFlNmFcdWFlNmJcdWFlNmRcdWFlNmVcdWFlNmZcdWFlNzFcdWFlNzJcdWFlNzNcdWFlNzRcdWFlNzVcdWFlNzZcdWFlNzdcdWFlN2FcdWFlN2VcdWFlN2ZcdWFlODBcdWFlODFc''@;'; + put 'put ''dWFlODJcdWFlODNcdWFlODZcdWFlODdcdWFlODhcdWFlODlcdWFlOGFcdWFlOGJcdWFlOGRcdWFlOGVcdWFlOGZcdWFlOTBcdWFlOTFcdWFlOTJcdWFlOTNcdWFlOTRcdWFlOTVcdWFlOTZcdWFlOTdcdWFlOThcdWFlOTlcdWFlOWFcdWFlOWJcdWFlOWNcdWFlOWRcdWFlOWVcdWFlOWZcdWFl''@;'; + put 'put ''YTBcdWFlYTFcdWFlYTJcdWFlYTNcdWFlYTRcdWFlYTVcdWFlYTZcdWFlYTdcdWFlYThcdWFlYTlcdWFlYWFcdWFlYWJcdWFlYWNcdWFlYWRcdWFlYWVcdWFlYWZcdWFlYjBcdWFlYjFcdWFlYjJcdWFlYjNcdWFlYjRcdWFlYjVcdWFlYjZcdWFlYjdcdWFlYjhcdWFlYjlcdWFlYmFcdWFlYmJc''@;'; + put 'put ''dWFlYmZcdWFlYzFcdWFlYzJcdWFlYzNcdWFlYzVcdWFlYzZcdWFlYzdcdWFlYzhcdWFlYzlcdWFlY2FcdWFlY2JcdWFlY2VcdWFlZDJcdWFlZDNcdWFlZDRcdWFlZDVcdWFlZDZcdWFlZDdcdWFlZGFcdWFlZGJcdWFlZGRcdWFlZGVcdWFlZGZcdWFlZTBcdWFlZTFcdWFlZTJcdWFlZTNcdWFl''@;'; + put 'put ''ZTRcdWFlZTVcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxMzFdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzEzMV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTMxXVtFXV09MzM1MzYrRSxMWzMzNTM2K0VdPUJbMTMxXVtFXSk7Zm9yKEJbMTMyXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVhZWU2XHVhZWU3XHVhZWU5XHVhZWVhXHVhZWVjXHVhZWVlXHVhZWVmXHVhZWYwXHVhZWYxXHVhZWYyXHVhZWYzXHVhZWY1XHVhZWY2XHVhZWY3XHVhZWY5XHVhZWZhXHVhZWZiXHVhZWZkXHVhZWZlXHVhZWZmXHVhZjAwXHVh''@;'; + put 'put ''ZjAxXHVhZjAyXHVhZjAzXHVhZjA0XHVhZjA1XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVhZjA2XHVhZjA5XHVhZjBhXHVhZjBiXHVhZjBjXHVhZjBlXHVhZjBmXHVhZjExXHVhZjEyXHVhZjEzXHVhZjE0XHVhZjE1XHVhZjE2XHVhZjE3XHVhZjE4XHVhZjE5XHVhZjFh''@;'; + put 'put ''XHVhZjFiXHVhZjFjXHVhZjFkXHVhZjFlXHVhZjFmXHVhZjIwXHVhZjIxXHVhZjIyXHVhZjIzXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVhZjI0XHVhZjI1XHVhZjI2XHVhZjI3XHVhZjI4XHVhZjI5XHVhZjJhXHVhZjJiXHVhZjJlXHVhZjJmXHVhZjMxXHVhZjMzXHVh''@;'; + put 'put ''ZjM1XHVhZjM2XHVhZjM3XHVhZjM4XHVhZjM5XHVhZjNhXHVhZjNiXHVhZjNlXHVhZjQwXHVhZjQ0XHVhZjQ1XHVhZjQ2XHVhZjQ3XHVhZjRhXHVhZjRiXHVhZjRjXHVhZjRkXHVhZjRlXHVhZjRmXHVhZjUxXHVhZjUyXHVhZjUzXHVhZjU0XHVhZjU1XHVhZjU2XHVhZjU3XHVhZjU4XHVhZjU5''@;'; + put 'put ''XHVhZjVhXHVhZjViXHVhZjVlXHVhZjVmXHVhZjYwXHVhZjYxXHVhZjYyXHVhZjYzXHVhZjY2XHVhZjY3XHVhZjY4XHVhZjY5XHVhZjZhXHVhZjZiXHVhZjZjXHVhZjZkXHVhZjZlXHVhZjZmXHVhZjcwXHVhZjcxXHVhZjcyXHVhZjczXHVhZjc0XHVhZjc1XHVhZjc2XHVhZjc3XHVhZjc4XHVh''@;'; + put 'put ''ZjdhXHVhZjdiXHVhZjdjXHVhZjdkXHVhZjdlXHVhZjdmXHVhZjgxXHVhZjgyXHVhZjgzXHVhZjg1XHVhZjg2XHVhZjg3XHVhZjg5XHVhZjhhXHVhZjhiXHVhZjhjXHVhZjhkXHVhZjhlXHVhZjhmXHVhZjkyXHVhZjkzXHVhZjk0XHVhZjk2XHVhZjk3XHVhZjk4XHVhZjk5XHVhZjlhXHVhZjli''@;'; + put 'put ''XHVhZjlkXHVhZjllXHVhZjlmXHVhZmEwXHVhZmExXHVhZmEyXHVhZmEzXHVhZmE0XHVhZmE1XHVhZmE2XHVhZmE3XHVhZmE4XHVhZmE5XHVhZmFhXHVhZmFiXHVhZmFjXHVhZmFkXHVhZmFlXHVhZmFmXHVhZmIwXHVhZmIxXHVhZmIyXHVhZmIzXHVhZmI0XHVhZmI1XHVhZmI2XHVhZmI3XHVh''@;'; + put 'put ''ZmJhXHVhZmJiXHVhZmJkXHVhZmJlXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTMyXS5sZW5ndGg7KytFKTY1NTMzIT09QlsxMzJdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzEzMl1bRV1dPTMzNzkyK0UsTFszMzc5MitFXT1CWzEzMl1bRV0pO2ZvcihCWzEzM109Ilx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YWZiZlx1YWZjMVx1YWZjMlx1YWZjM1x1YWZjNFx1YWZjNVx1YWZjNlx1YWZjYVx1YWZjY1x1YWZjZlx1YWZkMFx1YWZkMVx1YWZkMlx1YWZkM1x1YWZkNVx1YWZkNlx1YWZkN1x1YWZkOFx1YWZkOVx1''@;'; + put 'put ''YWZkYVx1YWZkYlx1YWZkZFx1YWZkZVx1YWZkZlx1YWZlMFx1YWZlMVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YWZlMlx1YWZlM1x1YWZlNFx1YWZlNVx1YWZlNlx1YWZlN1x1YWZlYVx1YWZlYlx1YWZlY1x1YWZlZFx1YWZlZVx1YWZlZlx1YWZmMlx1YWZmM1x1YWZm''@;'; + put 'put ''NVx1YWZmNlx1YWZmN1x1YWZmOVx1YWZmYVx1YWZmYlx1YWZmY1x1YWZmZFx1YWZmZVx1YWZmZlx1YjAwMlx1YjAwM1x1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YjAwNVx1YjAwNlx1YjAwN1x1YjAwOFx1YjAwOVx1YjAwYVx1YjAwYlx1YjAwZFx1YjAwZVx1YjAwZlx1''@;'; + put 'put ''YjAxMVx1YjAxMlx1YjAxM1x1YjAxNVx1YjAxNlx1YjAxN1x1YjAxOFx1YjAxOVx1YjAxYVx1YjAxYlx1YjAxZVx1YjAxZlx1YjAyMFx1YjAyMVx1YjAyMlx1YjAyM1x1YjAyNFx1YjAyNVx1YjAyNlx1YjAyN1x1YjAyOVx1YjAyYVx1YjAyYlx1YjAyY1x1YjAyZFx1YjAyZVx1YjAyZlx1YjAz''@;'; + put 'put ''MFx1YjAzMVx1YjAzMlx1YjAzM1x1YjAzNFx1YjAzNVx1YjAzNlx1YjAzN1x1YjAzOFx1YjAzOVx1YjAzYVx1YjAzYlx1YjAzY1x1YjAzZFx1YjAzZVx1YjAzZlx1YjA0MFx1YjA0MVx1YjA0Mlx1YjA0M1x1YjA0Nlx1YjA0N1x1YjA0OVx1YjA0Ylx1YjA0ZFx1YjA0Zlx1YjA1MFx1YjA1MVx1''@;'; + put 'put ''YjA1Mlx1YjA1Nlx1YjA1OFx1YjA1YVx1YjA1Ylx1YjA1Y1x1YjA1ZVx1YjA1Zlx1YjA2MFx1YjA2MVx1YjA2Mlx1YjA2M1x1YjA2NFx1YjA2NVx1YjA2Nlx1YjA2N1x1YjA2OFx1YjA2OVx1YjA2YVx1YjA2Ylx1YjA2Y1x1YjA2ZFx1YjA2ZVx1YjA2Zlx1YjA3MFx1YjA3MVx1YjA3Mlx1YjA3''@;'; + put 'put ''M1x1YjA3NFx1YjA3NVx1YjA3Nlx1YjA3N1x1YjA3OFx1YjA3OVx1YjA3YVx1YjA3Ylx1YjA3ZVx1YjA3Zlx1YjA4MVx1YjA4Mlx1YjA4M1x1YjA4NVx1YjA4Nlx1YjA4N1x1YjA4OFx1YjA4OVx1YjA4YVx1YjA4Ylx1YjA4ZVx1YjA5MFx1YjA5Mlx1YjA5M1x1YjA5NFx1YjA5NVx1YjA5Nlx1''@;'; + put 'put ''YjA5N1x1YjA5Ylx1YjA5ZFx1YjA5ZVx1YjBhM1x1YjBhNFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzEzM10ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTMzXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxMzNdW0VdXT0zNDA0OCtFLExbMzQwNDgrRV09QlsxMzNdW0VdKTtmb3IoQlsxMzRd''@;'; + put 'put ''PSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWIwYTVcdWIwYTZcdWIwYTdcdWIwYWFcdWIwYjBcdWIwYjJcdWIwYjZcdWIwYjdcdWIwYjlcdWIwYmFcdWIwYmJcdWIwYmRcdWIwYmVcdWIwYmZcdWIwYzBcdWIwYzFcdWIwYzJc''@;'; + put 'put ''dWIwYzNcdWIwYzZcdWIwY2FcdWIwY2JcdWIwY2NcdWIwY2RcdWIwY2VcdWIwY2ZcdWIwZDJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWIwZDNcdWIwZDVcdWIwZDZcdWIwZDdcdWIwZDlcdWIwZGFcdWIwZGJcdWIwZGNcdWIwZGRcdWIwZGVcdWIwZGZcdWIwZTFcdWIw''@;'; + put 'put ''ZTJcdWIwZTNcdWIwZTRcdWIwZTZcdWIwZTdcdWIwZThcdWIwZTlcdWIwZWFcdWIwZWJcdWIwZWNcdWIwZWRcdWIwZWVcdWIwZWZcdWIwZjBcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWIwZjFcdWIwZjJcdWIwZjNcdWIwZjRcdWIwZjVcdWIwZjZcdWIwZjdcdWIwZjhc''@;'; + put 'put ''dWIwZjlcdWIwZmFcdWIwZmJcdWIwZmNcdWIwZmRcdWIwZmVcdWIwZmZcdWIxMDBcdWIxMDFcdWIxMDJcdWIxMDNcdWIxMDRcdWIxMDVcdWIxMDZcdWIxMDdcdWIxMGFcdWIxMGRcdWIxMGVcdWIxMGZcdWIxMTFcdWIxMTRcdWIxMTVcdWIxMTZcdWIxMTdcdWIxMWFcdWIxMWVcdWIxMWZcdWIx''@;'; + put 'put ''MjBcdWIxMjFcdWIxMjJcdWIxMjZcdWIxMjdcdWIxMjlcdWIxMmFcdWIxMmJcdWIxMmRcdWIxMmVcdWIxMmZcdWIxMzBcdWIxMzFcdWIxMzJcdWIxMzNcdWIxMzZcdWIxM2FcdWIxM2JcdWIxM2NcdWIxM2RcdWIxM2VcdWIxM2ZcdWIxNDJcdWIxNDNcdWIxNDVcdWIxNDZcdWIxNDdcdWIxNDlc''@;'; + put 'put ''dWIxNGFcdWIxNGJcdWIxNGNcdWIxNGRcdWIxNGVcdWIxNGZcdWIxNTJcdWIxNTNcdWIxNTZcdWIxNTdcdWIxNTlcdWIxNWFcdWIxNWJcdWIxNWRcdWIxNWVcdWIxNWZcdWIxNjFcdWIxNjJcdWIxNjNcdWIxNjRcdWIxNjVcdWIxNjZcdWIxNjdcdWIxNjhcdWIxNjlcdWIxNmFcdWIxNmJcdWIx''@;'; + put 'put ''NmNcdWIxNmRcdWIxNmVcdWIxNmZcdWIxNzBcdWIxNzFcdWIxNzJcdWIxNzNcdWIxNzRcdWIxNzVcdWIxNzZcdWIxNzdcdWIxN2FcdWIxN2JcdWIxN2RcdWIxN2VcdWIxN2ZcdWIxODFcdWIxODNcdWIxODRcdWIxODVcdWIxODZcdWIxODdcdWIxOGFcdWIxOGNcdWIxOGVcdWIxOGZcdWIxOTBc''@;'; + put 'put ''dWIxOTFcdWIxOTVcdWIxOTZcdWIxOTdcdWIxOTlcdWIxOWFcdWIxOWJcdWIxOWRcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxMzRdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzEzNF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTM0XVtFXV09MzQzMDQrRSxMWzM0MzA0K0VdPUJbMTM0XVtF''@;'; + put 'put ''XSk7Zm9yKEJbMTM1XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHViMTllXHViMTlmXHViMWEwXHViMWExXHViMWEyXHViMWEzXHViMWE0XHViMWE1XHViMWE2XHViMWE3XHViMWE5XHViMWFhXHViMWFiXHViMWFjXHViMWFk''@;'; + put 'put ''XHViMWFlXHViMWFmXHViMWIwXHViMWIxXHViMWIyXHViMWIzXHViMWI0XHViMWI1XHViMWI2XHViMWI3XHViMWI4XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHViMWI5XHViMWJhXHViMWJiXHViMWJjXHViMWJkXHViMWJlXHViMWJmXHViMWMwXHViMWMxXHViMWMyXHVi''@;'; + put 'put ''MWMzXHViMWM0XHViMWM1XHViMWM2XHViMWM3XHViMWM4XHViMWM5XHViMWNhXHViMWNiXHViMWNkXHViMWNlXHViMWNmXHViMWQxXHViMWQyXHViMWQzXHViMWQ1XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHViMWQ2XHViMWQ3XHViMWQ4XHViMWQ5XHViMWRhXHViMWRi''@;'; + put 'put ''XHViMWRlXHViMWUwXHViMWUxXHViMWUyXHViMWUzXHViMWU0XHViMWU1XHViMWU2XHViMWU3XHViMWVhXHViMWViXHViMWVkXHViMWVlXHViMWVmXHViMWYxXHViMWYyXHViMWYzXHViMWY0XHViMWY1XHViMWY2XHViMWY3XHViMWY4XHViMWZhXHViMWZjXHViMWZlXHViMWZmXHViMjAwXHVi''@;'; + put 'put ''MjAxXHViMjAyXHViMjAzXHViMjA2XHViMjA3XHViMjA5XHViMjBhXHViMjBkXHViMjBlXHViMjBmXHViMjEwXHViMjExXHViMjEyXHViMjEzXHViMjE2XHViMjE4XHViMjFhXHViMjFiXHViMjFjXHViMjFkXHViMjFlXHViMjFmXHViMjIxXHViMjIyXHViMjIzXHViMjI0XHViMjI1XHViMjI2''@;'; + put 'put ''XHViMjI3XHViMjI4XHViMjI5XHViMjJhXHViMjJiXHViMjJjXHViMjJkXHViMjJlXHViMjJmXHViMjMwXHViMjMxXHViMjMyXHViMjMzXHViMjM1XHViMjM2XHViMjM3XHViMjM4XHViMjM5XHViMjNhXHViMjNiXHViMjNkXHViMjNlXHViMjNmXHViMjQwXHViMjQxXHViMjQyXHViMjQzXHVi''@;'; + put 'put ''MjQ0XHViMjQ1XHViMjQ2XHViMjQ3XHViMjQ4XHViMjQ5XHViMjRhXHViMjRiXHViMjRjXHViMjRkXHViMjRlXHViMjRmXHViMjUwXHViMjUxXHViMjUyXHViMjUzXHViMjU0XHViMjU1XHViMjU2XHViMjU3XHViMjU5XHViMjVhXHViMjViXHViMjVkXHViMjVlXHViMjVmXHViMjYxXHViMjYy''@;'; + put 'put ''XHViMjYzXHViMjY0XHViMjY1XHViMjY2XHViMjY3XHViMjZhXHViMjZiXHViMjZjXHViMjZkXHViMjZlXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTM1XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxMzVdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzEzNV1bRV1dPTM0NTYwK0UsTFszNDU2''@;'; + put 'put ''MCtFXT1CWzEzNV1bRV0pO2ZvcihCWzEzNl09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YjI2Zlx1YjI3MFx1YjI3MVx1YjI3Mlx1YjI3M1x1YjI3Nlx1YjI3N1x1YjI3OFx1YjI3OVx1YjI3YVx1YjI3Ylx1YjI3ZFx1YjI3''@;'; + put 'put ''ZVx1YjI3Zlx1YjI4MFx1YjI4MVx1YjI4Mlx1YjI4M1x1YjI4Nlx1YjI4N1x1YjI4OFx1YjI4YVx1YjI4Ylx1YjI4Y1x1YjI4ZFx1YjI4ZVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YjI4Zlx1YjI5Mlx1YjI5M1x1YjI5NVx1YjI5Nlx1YjI5N1x1YjI5Ylx1YjI5Y1x1''@;'; + put 'put ''YjI5ZFx1YjI5ZVx1YjI5Zlx1YjJhMlx1YjJhNFx1YjJhN1x1YjJhOFx1YjJhOVx1YjJhYlx1YjJhZFx1YjJhZVx1YjJhZlx1YjJiMVx1YjJiMlx1YjJiM1x1YjJiNVx1YjJiNlx1YjJiN1x1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YjJiOFx1YjJiOVx1YjJiYVx1YjJi''@;'; + put 'put ''Ylx1YjJiY1x1YjJiZFx1YjJiZVx1YjJiZlx1YjJjMFx1YjJjMVx1YjJjMlx1YjJjM1x1YjJjNFx1YjJjNVx1YjJjNlx1YjJjN1x1YjJjYVx1YjJjYlx1YjJjZFx1YjJjZVx1YjJjZlx1YjJkMVx1YjJkM1x1YjJkNFx1YjJkNVx1YjJkNlx1YjJkN1x1YjJkYVx1YjJkY1x1YjJkZVx1YjJkZlx1''@;'; + put 'put ''YjJlMFx1YjJlMVx1YjJlM1x1YjJlN1x1YjJlOVx1YjJlYVx1YjJmMFx1YjJmMVx1YjJmMlx1YjJmNlx1YjJmY1x1YjJmZFx1YjJmZVx1YjMwMlx1YjMwM1x1YjMwNVx1YjMwNlx1YjMwN1x1YjMwOVx1YjMwYVx1YjMwYlx1YjMwY1x1YjMwZFx1YjMwZVx1YjMwZlx1YjMxMlx1YjMxNlx1YjMx''@;'; + put 'put ''N1x1YjMxOFx1YjMxOVx1YjMxYVx1YjMxYlx1YjMxZFx1YjMxZVx1YjMxZlx1YjMyMFx1YjMyMVx1YjMyMlx1YjMyM1x1YjMyNFx1YjMyNVx1YjMyNlx1YjMyN1x1YjMyOFx1YjMyOVx1YjMyYVx1YjMyYlx1YjMyY1x1YjMyZFx1YjMyZVx1YjMyZlx1YjMzMFx1YjMzMVx1YjMzMlx1YjMzM1x1''@;'; + put 'put ''YjMzNFx1YjMzNVx1YjMzNlx1YjMzN1x1YjMzOFx1YjMzOVx1YjMzYVx1YjMzYlx1YjMzY1x1YjMzZFx1YjMzZVx1YjMzZlx1YjM0MFx1YjM0MVx1YjM0Mlx1YjM0M1x1YjM0NFx1YjM0NVx1YjM0Nlx1YjM0N1x1YjM0OFx1YjM0OVx1YjM0YVx1YjM0Ylx1YjM0Y1x1YjM0ZFx1YjM0ZVx1YjM0''@;'; + put 'put ''Zlx1YjM1MFx1YjM1MVx1YjM1Mlx1YjM1M1x1YjM1N1x1YjM1OVx1YjM1YVx1YjM1ZFx1YjM2MFx1YjM2MVx1YjM2Mlx1YjM2M1x1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzEzNl0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTM2XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxMzZdW0VdXT0z''@;'; + put 'put ''NDgxNitFLExbMzQ4MTYrRV09QlsxMzZdW0VdKTtmb3IoQlsxMzddPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWIzNjZcdWIzNjhcdWIzNmFcdWIzNmNcdWIzNmRcdWIzNmZcdWIzNzJcdWIzNzNcdWIzNzVcdWIzNzZcdWIz''@;'; + put 'put ''NzdcdWIzNzlcdWIzN2FcdWIzN2JcdWIzN2NcdWIzN2RcdWIzN2VcdWIzN2ZcdWIzODJcdWIzODZcdWIzODdcdWIzODhcdWIzODlcdWIzOGFcdWIzOGJcdWIzOGRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWIzOGVcdWIzOGZcdWIzOTFcdWIzOTJcdWIzOTNcdWIzOTVc''@;'; + put 'put ''dWIzOTZcdWIzOTdcdWIzOThcdWIzOTlcdWIzOWFcdWIzOWJcdWIzOWNcdWIzOWRcdWIzOWVcdWIzOWZcdWIzYTJcdWIzYTNcdWIzYTRcdWIzYTVcdWIzYTZcdWIzYTdcdWIzYTlcdWIzYWFcdWIzYWJcdWIzYWRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWIzYWVcdWIz''@;'; + put 'put ''YWZcdWIzYjBcdWIzYjFcdWIzYjJcdWIzYjNcdWIzYjRcdWIzYjVcdWIzYjZcdWIzYjdcdWIzYjhcdWIzYjlcdWIzYmFcdWIzYmJcdWIzYmNcdWIzYmRcdWIzYmVcdWIzYmZcdWIzYzBcdWIzYzFcdWIzYzJcdWIzYzNcdWIzYzZcdWIzYzdcdWIzYzlcdWIzY2FcdWIzY2RcdWIzY2ZcdWIzZDFc''@;'; + put 'put ''dWIzZDJcdWIzZDNcdWIzZDZcdWIzZDhcdWIzZGFcdWIzZGNcdWIzZGVcdWIzZGZcdWIzZTFcdWIzZTJcdWIzZTNcdWIzZTVcdWIzZTZcdWIzZTdcdWIzZTlcdWIzZWFcdWIzZWJcdWIzZWNcdWIzZWRcdWIzZWVcdWIzZWZcdWIzZjBcdWIzZjFcdWIzZjJcdWIzZjNcdWIzZjRcdWIzZjVcdWIz''@;'; + put 'put ''ZjZcdWIzZjdcdWIzZjhcdWIzZjlcdWIzZmFcdWIzZmJcdWIzZmRcdWIzZmVcdWIzZmZcdWI0MDBcdWI0MDFcdWI0MDJcdWI0MDNcdWI0MDRcdWI0MDVcdWI0MDZcdWI0MDdcdWI0MDhcdWI0MDlcdWI0MGFcdWI0MGJcdWI0MGNcdWI0MGRcdWI0MGVcdWI0MGZcdWI0MTFcdWI0MTJcdWI0MTNc''@;'; + put 'put ''dWI0MTRcdWI0MTVcdWI0MTZcdWI0MTdcdWI0MTlcdWI0MWFcdWI0MWJcdWI0MWRcdWI0MWVcdWI0MWZcdWI0MjFcdWI0MjJcdWI0MjNcdWI0MjRcdWI0MjVcdWI0MjZcdWI0MjdcdWI0MmFcdWI0MmNcdWI0MmRcdWI0MmVcdWI0MmZcdWI0MzBcdWI0MzFcdWI0MzJcdWI0MzNcdWI0MzVcdWI0''@;'; + put 'put ''MzZcdWI0MzdcdWI0MzhcdWI0MzlcdWI0M2FcdWI0M2JcdWI0M2NcdWI0M2RcdWI0M2VcdWI0M2ZcdWI0NDBcdWI0NDFcdWI0NDJcdWI0NDNcdWI0NDRcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxMzddLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzEzN11bRV0uY2hhckNvZGVBdCgwKSYmKG1l''@;'; + put 'put ''W0JbMTM3XVtFXV09MzUwNzIrRSxMWzM1MDcyK0VdPUJbMTM3XVtFXSk7Zm9yKEJbMTM4XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHViNDQ1XHViNDQ2XHViNDQ3XHViNDQ4XHViNDQ5XHViNDRhXHViNDRiXHViNDRjXHVi''@;'; + put 'put ''NDRkXHViNDRlXHViNDRmXHViNDUyXHViNDUzXHViNDU1XHViNDU2XHViNDU3XHViNDU5XHViNDVhXHViNDViXHViNDVjXHViNDVkXHViNDVlXHViNDVmXHViNDYyXHViNDY0XHViNDY2XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHViNDY3XHViNDY4XHViNDY5XHViNDZh''@;'; + put 'put ''XHViNDZiXHViNDZkXHViNDZlXHViNDZmXHViNDcwXHViNDcxXHViNDcyXHViNDczXHViNDc0XHViNDc1XHViNDc2XHViNDc3XHViNDc4XHViNDc5XHViNDdhXHViNDdiXHViNDdjXHViNDdkXHViNDdlXHViNDdmXHViNDgxXHViNDgyXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHViNDgzXHViNDg0XHViNDg1XHViNDg2XHViNDg3XHViNDg5XHViNDhhXHViNDhiXHViNDhjXHViNDhkXHViNDhlXHViNDhmXHViNDkwXHViNDkxXHViNDkyXHViNDkzXHViNDk0XHViNDk1XHViNDk2XHViNDk3XHViNDk4XHViNDk5XHViNDlhXHViNDliXHViNDljXHViNDllXHViNDlm''@;'; + put 'put ''XHViNGEwXHViNGExXHViNGEyXHViNGEzXHViNGE1XHViNGE2XHViNGE3XHViNGE5XHViNGFhXHViNGFiXHViNGFkXHViNGFlXHViNGFmXHViNGIwXHViNGIxXHViNGIyXHViNGIzXHViNGI0XHViNGI2XHViNGI4XHViNGJhXHViNGJiXHViNGJjXHViNGJkXHViNGJlXHViNGJmXHViNGMxXHVi''@;'; + put 'put ''NGMyXHViNGMzXHViNGM1XHViNGM2XHViNGM3XHViNGM5XHViNGNhXHViNGNiXHViNGNjXHViNGNkXHViNGNlXHViNGNmXHViNGQxXHViNGQyXHViNGQzXHViNGQ0XHViNGQ2XHViNGQ3XHViNGQ4XHViNGQ5XHViNGRhXHViNGRiXHViNGRlXHViNGRmXHViNGUxXHViNGUyXHViNGU1XHViNGU3''@;'; + put 'put ''XHViNGU4XHViNGU5XHViNGVhXHViNGViXHViNGVlXHViNGYwXHViNGYyXHViNGYzXHViNGY0XHViNGY1XHViNGY2XHViNGY3XHViNGY5XHViNGZhXHViNGZiXHViNGZjXHViNGZkXHViNGZlXHViNGZmXHViNTAwXHViNTAxXHViNTAyXHViNTAzXHViNTA0XHViNTA1XHViNTA2XHViNTA3XHVi''@;'; + put 'put ''NTA4XHViNTA5XHViNTBhXHViNTBiXHViNTBjXHViNTBkXHViNTBlXHViNTBmXHViNTEwXHViNTExXHViNTEyXHViNTEzXHViNTE2XHViNTE3XHViNTE5XHViNTFhXHViNTFkXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTM4XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxMzhdW0VdLmNoYXJD''@;'; + put 'put ''b2RlQXQoMCkmJihtZVtCWzEzOF1bRV1dPTM1MzI4K0UsTFszNTMyOCtFXT1CWzEzOF1bRV0pO2ZvcihCWzEzOV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YjUxZVx1YjUxZlx1YjUyMFx1YjUyMVx1YjUyMlx1YjUyM1x1''@;'; + put 'put ''YjUyNlx1YjUyYlx1YjUyY1x1YjUyZFx1YjUyZVx1YjUyZlx1YjUzMlx1YjUzM1x1YjUzNVx1YjUzNlx1YjUzN1x1YjUzOVx1YjUzYVx1YjUzYlx1YjUzY1x1YjUzZFx1YjUzZVx1YjUzZlx1YjU0Mlx1YjU0Nlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YjU0N1x1YjU0''@;'; + put 'put ''OFx1YjU0OVx1YjU0YVx1YjU0ZVx1YjU0Zlx1YjU1MVx1YjU1Mlx1YjU1M1x1YjU1NVx1YjU1Nlx1YjU1N1x1YjU1OFx1YjU1OVx1YjU1YVx1YjU1Ylx1YjU1ZVx1YjU2Mlx1YjU2M1x1YjU2NFx1YjU2NVx1YjU2Nlx1YjU2N1x1YjU2OFx1YjU2OVx1YjU2YVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1YjU2Ylx1YjU2Y1x1YjU2ZFx1YjU2ZVx1YjU2Zlx1YjU3MFx1YjU3MVx1YjU3Mlx1YjU3M1x1YjU3NFx1YjU3NVx1YjU3Nlx1YjU3N1x1YjU3OFx1YjU3OVx1YjU3YVx1YjU3Ylx1YjU3Y1x1YjU3ZFx1YjU3ZVx1YjU3Zlx1YjU4MFx1YjU4MVx1YjU4Mlx1YjU4''@;'; + put 'put ''M1x1YjU4NFx1YjU4NVx1YjU4Nlx1YjU4N1x1YjU4OFx1YjU4OVx1YjU4YVx1YjU4Ylx1YjU4Y1x1YjU4ZFx1YjU4ZVx1YjU4Zlx1YjU5MFx1YjU5MVx1YjU5Mlx1YjU5M1x1YjU5NFx1YjU5NVx1YjU5Nlx1YjU5N1x1YjU5OFx1YjU5OVx1YjU5YVx1YjU5Ylx1YjU5Y1x1YjU5ZFx1YjU5ZVx1''@;'; + put 'put ''YjU5Zlx1YjVhMlx1YjVhM1x1YjVhNVx1YjVhNlx1YjVhN1x1YjVhOVx1YjVhY1x1YjVhZFx1YjVhZVx1YjVhZlx1YjViMlx1YjViNlx1YjViN1x1YjViOFx1YjViOVx1YjViYVx1YjViZVx1YjViZlx1YjVjMVx1YjVjMlx1YjVjM1x1YjVjNVx1YjVjNlx1YjVjN1x1YjVjOFx1YjVjOVx1YjVj''@;'; + put 'put ''YVx1YjVjYlx1YjVjZVx1YjVkMlx1YjVkM1x1YjVkNFx1YjVkNVx1YjVkNlx1YjVkN1x1YjVkOVx1YjVkYVx1YjVkYlx1YjVkY1x1YjVkZFx1YjVkZVx1YjVkZlx1YjVlMFx1YjVlMVx1YjVlMlx1YjVlM1x1YjVlNFx1YjVlNVx1YjVlNlx1YjVlN1x1YjVlOFx1YjVlOVx1YjVlYVx1YjVlYlx1''@;'; + put 'put ''YjVlZFx1YjVlZVx1YjVlZlx1YjVmMFx1YjVmMVx1YjVmMlx1YjVmM1x1YjVmNFx1YjVmNVx1YjVmNlx1YjVmN1x1YjVmOFx1YjVmOVx1YjVmYVx1YjVmYlx1YjVmY1x1YjVmZFx1YjVmZVx1YjVmZlx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzEzOV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJb''@;'; + put 'put ''MTM5XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxMzldW0VdXT0zNTU4NCtFLExbMzU1ODQrRV09QlsxMzldW0VdKTtmb3IoQlsxNDBdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWI2MDBcdWI2MDFcdWI2MDJcdWI2MDNc''@;'; + put 'put ''dWI2MDRcdWI2MDVcdWI2MDZcdWI2MDdcdWI2MDhcdWI2MDlcdWI2MGFcdWI2MGJcdWI2MGNcdWI2MGRcdWI2MGVcdWI2MGZcdWI2MTJcdWI2MTNcdWI2MTVcdWI2MTZcdWI2MTdcdWI2MTlcdWI2MWFcdWI2MWJcdWI2MWNcdWI2MWRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWI2MWVcdWI2MWZcdWI2MjBcdWI2MjFcdWI2MjJcdWI2MjNcdWI2MjRcdWI2MjZcdWI2MjdcdWI2MjhcdWI2MjlcdWI2MmFcdWI2MmJcdWI2MmRcdWI2MmVcdWI2MmZcdWI2MzBcdWI2MzFcdWI2MzJcdWI2MzNcdWI2MzVcdWI2MzZcdWI2MzdcdWI2MzhcdWI2MzlcdWI2M2FcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWI2M2JcdWI2M2NcdWI2M2RcdWI2M2VcdWI2M2ZcdWI2NDBcdWI2NDFcdWI2NDJcdWI2NDNcdWI2NDRcdWI2NDVcdWI2NDZcdWI2NDdcdWI2NDlcdWI2NGFcdWI2NGJcdWI2NGNcdWI2NGRcdWI2NGVcdWI2NGZcdWI2NTBcdWI2NTFcdWI2''@;'; + put 'put ''NTJcdWI2NTNcdWI2NTRcdWI2NTVcdWI2NTZcdWI2NTdcdWI2NThcdWI2NTlcdWI2NWFcdWI2NWJcdWI2NWNcdWI2NWRcdWI2NWVcdWI2NWZcdWI2NjBcdWI2NjFcdWI2NjJcdWI2NjNcdWI2NjVcdWI2NjZcdWI2NjdcdWI2NjlcdWI2NmFcdWI2NmJcdWI2NmNcdWI2NmRcdWI2NmVcdWI2NmZc''@;'; + put 'put ''dWI2NzBcdWI2NzFcdWI2NzJcdWI2NzNcdWI2NzRcdWI2NzVcdWI2NzZcdWI2NzdcdWI2NzhcdWI2NzlcdWI2N2FcdWI2N2JcdWI2N2NcdWI2N2RcdWI2N2VcdWI2N2ZcdWI2ODBcdWI2ODFcdWI2ODJcdWI2ODNcdWI2ODRcdWI2ODVcdWI2ODZcdWI2ODdcdWI2ODhcdWI2ODlcdWI2OGFcdWI2''@;'; + put 'put ''OGJcdWI2OGNcdWI2OGRcdWI2OGVcdWI2OGZcdWI2OTBcdWI2OTFcdWI2OTJcdWI2OTNcdWI2OTRcdWI2OTVcdWI2OTZcdWI2OTdcdWI2OThcdWI2OTlcdWI2OWFcdWI2OWJcdWI2OWVcdWI2OWZcdWI2YTFcdWI2YTJcdWI2YTNcdWI2YTVcdWI2YTZcdWI2YTdcdWI2YThcdWI2YTlcdWI2YWFc''@;'; + put 'put ''dWI2YWRcdWI2YWVcdWI2YWZcdWI2YjBcdWI2YjJcdWI2YjNcdWI2YjRcdWI2YjVcdWI2YjZcdWI2YjdcdWI2YjhcdWI2YjlcdWI2YmFcdWI2YmJcdWI2YmNcdWI2YmRcdWI2YmVcdWI2YmZcdWI2YzBcdWI2YzFcdWI2YzJcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxNDBdLmxlbmd0aDsr''@;'; + put 'put ''K0UpNjU1MzMhPT1CWzE0MF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTQwXVtFXV09MzU4NDArRSxMWzM1ODQwK0VdPUJbMTQwXVtFXSk7Zm9yKEJbMTQxXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHViNmMzXHViNmM0''@;'; + put 'put ''XHViNmM1XHViNmM2XHViNmM3XHViNmM4XHViNmM5XHViNmNhXHViNmNiXHViNmNjXHViNmNkXHViNmNlXHViNmNmXHViNmQwXHViNmQxXHViNmQyXHViNmQzXHViNmQ1XHViNmQ2XHViNmQ3XHViNmQ4XHViNmQ5XHViNmRhXHViNmRiXHViNmRjXHViNmRkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHViNmRlXHViNmRmXHViNmUwXHViNmUxXHViNmUyXHViNmUzXHViNmU0XHViNmU1XHViNmU2XHViNmU3XHViNmU4XHViNmU5XHViNmVhXHViNmViXHViNmVjXHViNmVkXHViNmVlXHViNmVmXHViNmYxXHViNmYyXHViNmYzXHViNmY1XHViNmY2XHViNmY3XHViNmY5''@;'; + put 'put ''XHViNmZhXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHViNmZiXHViNmZjXHViNmZkXHViNmZlXHViNmZmXHViNzAyXHViNzAzXHViNzA0XHViNzA2XHViNzA3XHViNzA4XHViNzA5XHViNzBhXHViNzBiXHViNzBjXHViNzBkXHViNzBlXHViNzBmXHViNzEwXHViNzExXHVi''@;'; + put 'put ''NzEyXHViNzEzXHViNzE0XHViNzE1XHViNzE2XHViNzE3XHViNzE4XHViNzE5XHViNzFhXHViNzFiXHViNzFjXHViNzFkXHViNzFlXHViNzFmXHViNzIwXHViNzIxXHViNzIyXHViNzIzXHViNzI0XHViNzI1XHViNzI2XHViNzI3XHViNzJhXHViNzJiXHViNzJkXHViNzJlXHViNzMxXHViNzMy''@;'; + put 'put ''XHViNzMzXHViNzM0XHViNzM1XHViNzM2XHViNzM3XHViNzNhXHViNzNjXHViNzNkXHViNzNlXHViNzNmXHViNzQwXHViNzQxXHViNzQyXHViNzQzXHViNzQ1XHViNzQ2XHViNzQ3XHViNzQ5XHViNzRhXHViNzRiXHViNzRkXHViNzRlXHViNzRmXHViNzUwXHViNzUxXHViNzUyXHViNzUzXHVi''@;'; + put 'put ''NzU2XHViNzU3XHViNzU4XHViNzU5XHViNzVhXHViNzViXHViNzVjXHViNzVkXHViNzVlXHViNzVmXHViNzYxXHViNzYyXHViNzYzXHViNzY1XHViNzY2XHViNzY3XHViNzY5XHViNzZhXHViNzZiXHViNzZjXHViNzZkXHViNzZlXHViNzZmXHViNzcyXHViNzc0XHViNzc2XHViNzc3XHViNzc4''@;'; + put 'put ''XHViNzc5XHViNzdhXHViNzdiXHViNzdlXHViNzdmXHViNzgxXHViNzgyXHViNzgzXHViNzg1XHViNzg2XHViNzg3XHViNzg4XHViNzg5XHViNzhhXHViNzhiXHViNzhlXHViNzkzXHViNzk0XHViNzk1XHViNzlhXHViNzliXHViNzlkXHViNzllXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJb''@;'; + put 'put ''MTQxXS5sZW5ndGg7KytFKTY1NTMzIT09QlsxNDFdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE0MV1bRV1dPTM2MDk2K0UsTFszNjA5NitFXT1CWzE0MV1bRV0pO2ZvcihCWzE0Ml09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1Yjc5Zlx1YjdhMVx1YjdhMlx1YjdhM1x1YjdhNFx1YjdhNVx1YjdhNlx1YjdhN1x1YjdhYVx1YjdhZVx1YjdhZlx1YjdiMFx1YjdiMVx1YjdiMlx1YjdiM1x1YjdiNlx1YjdiN1x1YjdiOVx1YjdiYVx1YjdiYlx1YjdiY1x1YjdiZFx1YjdiZVx1YjdiZlx1YjdjMFx1YjdjMVx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YjdjMlx1YjdjM1x1YjdjNFx1YjdjNVx1YjdjNlx1YjdjOFx1YjdjYVx1YjdjYlx1YjdjY1x1YjdjZFx1YjdjZVx1YjdjZlx1YjdkMFx1YjdkMVx1YjdkMlx1YjdkM1x1YjdkNFx1YjdkNVx1YjdkNlx1YjdkN1x1YjdkOFx1YjdkOVx1Yjdk''@;'; + put 'put ''YVx1YjdkYlx1YjdkY1x1YjdkZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YjdkZVx1YjdkZlx1YjdlMFx1YjdlMVx1YjdlMlx1YjdlM1x1YjdlNFx1YjdlNVx1YjdlNlx1YjdlN1x1YjdlOFx1YjdlOVx1YjdlYVx1YjdlYlx1YjdlZVx1YjdlZlx1YjdmMVx1YjdmMlx1''@;'; + put 'put ''YjdmM1x1YjdmNVx1YjdmNlx1YjdmN1x1YjdmOFx1YjdmOVx1YjdmYVx1YjdmYlx1YjdmZVx1YjgwMlx1YjgwM1x1YjgwNFx1YjgwNVx1YjgwNlx1YjgwYVx1YjgwYlx1YjgwZFx1YjgwZVx1YjgwZlx1YjgxMVx1YjgxMlx1YjgxM1x1YjgxNFx1YjgxNVx1YjgxNlx1YjgxN1x1YjgxYVx1Yjgx''@;'; + put 'put ''Y1x1YjgxZVx1YjgxZlx1YjgyMFx1YjgyMVx1YjgyMlx1YjgyM1x1YjgyNlx1YjgyN1x1YjgyOVx1YjgyYVx1YjgyYlx1YjgyZFx1YjgyZVx1YjgyZlx1YjgzMFx1YjgzMVx1YjgzMlx1YjgzM1x1YjgzNlx1YjgzYVx1YjgzYlx1YjgzY1x1YjgzZFx1YjgzZVx1YjgzZlx1Yjg0MVx1Yjg0Mlx1''@;'; + put 'put ''Yjg0M1x1Yjg0NVx1Yjg0Nlx1Yjg0N1x1Yjg0OFx1Yjg0OVx1Yjg0YVx1Yjg0Ylx1Yjg0Y1x1Yjg0ZFx1Yjg0ZVx1Yjg0Zlx1Yjg1MFx1Yjg1Mlx1Yjg1NFx1Yjg1NVx1Yjg1Nlx1Yjg1N1x1Yjg1OFx1Yjg1OVx1Yjg1YVx1Yjg1Ylx1Yjg1ZVx1Yjg1Zlx1Yjg2MVx1Yjg2Mlx1Yjg2M1x1Yjg2''@;'; + put 'put ''NVx1Yjg2Nlx1Yjg2N1x1Yjg2OFx1Yjg2OVx1Yjg2YVx1Yjg2Ylx1Yjg2ZVx1Yjg3MFx1Yjg3Mlx1Yjg3M1x1Yjg3NFx1Yjg3NVx1Yjg3Nlx1Yjg3N1x1Yjg3OVx1Yjg3YVx1Yjg3Ylx1Yjg3ZFx1Yjg3ZVx1Yjg3Zlx1Yjg4MFx1Yjg4MVx1Yjg4Mlx1Yjg4M1x1Yjg4NFx1ZmZmZCIuc3BsaXQo''@;'; + put 'put ''IiIpLEU9MDtFIT1CWzE0Ml0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTQyXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxNDJdW0VdXT0zNjM1MitFLExbMzYzNTIrRV09QlsxNDJdW0VdKTtmb3IoQlsxNDNdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWI4ODVcdWI4ODZcdWI4ODdcdWI4ODhcdWI4ODlcdWI4OGFcdWI4OGJcdWI4OGNcdWI4OGVcdWI4OGZcdWI4OTBcdWI4OTFcdWI4OTJcdWI4OTNcdWI4OTRcdWI4OTVcdWI4OTZcdWI4OTdcdWI4OThcdWI4OTlcdWI4OWFcdWI4OWJcdWI4OWNcdWI4OWRcdWI4OWVc''@;'; + put 'put ''dWI4OWZcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWI4YTBcdWI4YTFcdWI4YTJcdWI4YTNcdWI4YTRcdWI4YTVcdWI4YTZcdWI4YTdcdWI4YTlcdWI4YWFcdWI4YWJcdWI4YWNcdWI4YWRcdWI4YWVcdWI4YWZcdWI4YjFcdWI4YjJcdWI4YjNcdWI4YjVcdWI4YjZcdWI4''@;'; + put 'put ''YjdcdWI4YjlcdWI4YmFcdWI4YmJcdWI4YmNcdWI4YmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWI4YmVcdWI4YmZcdWI4YzJcdWI4YzRcdWI4YzZcdWI4YzdcdWI4YzhcdWI4YzlcdWI4Y2FcdWI4Y2JcdWI4Y2RcdWI4Y2VcdWI4Y2ZcdWI4ZDFcdWI4ZDJcdWI4ZDNc''@;'; + put 'put ''dWI4ZDVcdWI4ZDZcdWI4ZDdcdWI4ZDhcdWI4ZDlcdWI4ZGFcdWI4ZGJcdWI4ZGNcdWI4ZGVcdWI4ZTBcdWI4ZTJcdWI4ZTNcdWI4ZTRcdWI4ZTVcdWI4ZTZcdWI4ZTdcdWI4ZWFcdWI4ZWJcdWI4ZWRcdWI4ZWVcdWI4ZWZcdWI4ZjFcdWI4ZjJcdWI4ZjNcdWI4ZjRcdWI4ZjVcdWI4ZjZcdWI4''@;'; + put 'put ''ZjdcdWI4ZmFcdWI4ZmNcdWI4ZmVcdWI4ZmZcdWI5MDBcdWI5MDFcdWI5MDJcdWI5MDNcdWI5MDVcdWI5MDZcdWI5MDdcdWI5MDhcdWI5MDlcdWI5MGFcdWI5MGJcdWI5MGNcdWI5MGRcdWI5MGVcdWI5MGZcdWI5MTBcdWI5MTFcdWI5MTJcdWI5MTNcdWI5MTRcdWI5MTVcdWI5MTZcdWI5MTdc''@;'; + put 'put ''dWI5MTlcdWI5MWFcdWI5MWJcdWI5MWNcdWI5MWRcdWI5MWVcdWI5MWZcdWI5MjFcdWI5MjJcdWI5MjNcdWI5MjRcdWI5MjVcdWI5MjZcdWI5MjdcdWI5MjhcdWI5MjlcdWI5MmFcdWI5MmJcdWI5MmNcdWI5MmRcdWI5MmVcdWI5MmZcdWI5MzBcdWI5MzFcdWI5MzJcdWI5MzNcdWI5MzRcdWI5''@;'; + put 'put ''MzVcdWI5MzZcdWI5MzdcdWI5MzhcdWI5MzlcdWI5M2FcdWI5M2JcdWI5M2VcdWI5M2ZcdWI5NDFcdWI5NDJcdWI5NDNcdWI5NDVcdWI5NDZcdWI5NDdcdWI5NDhcdWI5NDlcdWI5NGFcdWI5NGJcdWI5NGRcdWI5NGVcdWI5NTBcdWI5NTJcdWI5NTNcdWI5NTRcdWI5NTVcdWI5NTZcdWI5NTdc''@;'; + put 'put ''dWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxNDNdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE0M11bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTQzXVtFXV09MzY2MDgrRSxMWzM2NjA4K0VdPUJbMTQzXVtFXSk7Zm9yKEJbMTQ0XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHViOTVhXHViOTViXHViOTVkXHViOTVlXHViOTVmXHViOTYxXHViOTYyXHViOTYzXHViOTY0XHViOTY1XHViOTY2XHViOTY3XHViOTZhXHViOTZjXHViOTZlXHViOTZmXHViOTcwXHViOTcxXHViOTcyXHViOTczXHViOTc2XHViOTc3XHViOTc5''@;'; + put 'put ''XHViOTdhXHViOTdiXHViOTdkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHViOTdlXHViOTdmXHViOTgwXHViOTgxXHViOTgyXHViOTgzXHViOTg2XHViOTg4XHViOThiXHViOThjXHViOThmXHViOTkwXHViOTkxXHViOTkyXHViOTkzXHViOTk0XHViOTk1XHViOTk2XHVi''@;'; + put 'put ''OTk3XHViOTk4XHViOTk5XHViOTlhXHViOTliXHViOTljXHViOTlkXHViOTllXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHViOTlmXHViOWEwXHViOWExXHViOWEyXHViOWEzXHViOWE0XHViOWE1XHViOWE2XHViOWE3XHViOWE4XHViOWE5XHViOWFhXHViOWFiXHViOWFl''@;'; + put 'put ''XHViOWFmXHViOWIxXHViOWIyXHViOWIzXHViOWI1XHViOWI2XHViOWI3XHViOWI4XHViOWI5XHViOWJhXHViOWJiXHViOWJlXHViOWMwXHViOWMyXHViOWMzXHViOWM0XHViOWM1XHViOWM2XHViOWM3XHViOWNhXHViOWNiXHViOWNkXHViOWQzXHViOWQ0XHViOWQ1XHViOWQ2XHViOWQ3XHVi''@;'; + put 'put ''OWRhXHViOWRjXHViOWRmXHViOWUwXHViOWUyXHViOWU2XHViOWU3XHViOWU5XHViOWVhXHViOWViXHViOWVkXHViOWVlXHViOWVmXHViOWYwXHViOWYxXHViOWYyXHViOWYzXHViOWY2XHViOWZiXHViOWZjXHViOWZkXHViOWZlXHViOWZmXHViYTAyXHViYTAzXHViYTA0XHViYTA1XHViYTA2''@;'; + put 'put ''XHViYTA3XHViYTA5XHViYTBhXHViYTBiXHViYTBjXHViYTBkXHViYTBlXHViYTBmXHViYTEwXHViYTExXHViYTEyXHViYTEzXHViYTE0XHViYTE2XHViYTE3XHViYTE4XHViYTE5XHViYTFhXHViYTFiXHViYTFjXHViYTFkXHViYTFlXHViYTFmXHViYTIwXHViYTIxXHViYTIyXHViYTIzXHVi''@;'; + put 'put ''YTI0XHViYTI1XHViYTI2XHViYTI3XHViYTI4XHViYTI5XHViYTJhXHViYTJiXHViYTJjXHViYTJkXHViYTJlXHViYTJmXHViYTMwXHViYTMxXHViYTMyXHViYTMzXHViYTM0XHViYTM1XHViYTM2XHViYTM3XHViYTNhXHViYTNiXHViYTNkXHViYTNlXHViYTNmXHViYTQxXHViYTQzXHViYTQ0''@;'; + put 'put ''XHViYTQ1XHViYTQ2XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTQ0XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxNDRdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE0NF1bRV1dPTM2ODY0K0UsTFszNjg2NCtFXT1CWzE0NF1bRV0pO2ZvcihCWzE0NV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YmE0N1x1YmE0YVx1YmE0Y1x1YmE0Zlx1YmE1MFx1YmE1MVx1YmE1Mlx1YmE1Nlx1YmE1N1x1YmE1OVx1YmE1YVx1YmE1Ylx1YmE1ZFx1YmE1ZVx1YmE1Zlx1YmE2MFx1YmE2MVx1YmE2Mlx1YmE2M1x1YmE2Nlx1YmE2''@;'; + put 'put ''YVx1YmE2Ylx1YmE2Y1x1YmE2ZFx1YmE2ZVx1YmE2Zlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YmE3Mlx1YmE3M1x1YmE3NVx1YmE3Nlx1YmE3N1x1YmE3OVx1YmE3YVx1YmE3Ylx1YmE3Y1x1YmE3ZFx1YmE3ZVx1YmE3Zlx1YmE4MFx1YmE4MVx1YmE4Mlx1YmE4Nlx1''@;'; + put 'put ''YmE4OFx1YmE4OVx1YmE4YVx1YmE4Ylx1YmE4ZFx1YmE4ZVx1YmE4Zlx1YmE5MFx1YmE5MVx1YmE5Mlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YmE5M1x1YmE5NFx1YmE5NVx1YmE5Nlx1YmE5N1x1YmE5OFx1YmE5OVx1YmE5YVx1YmE5Ylx1YmE5Y1x1YmE5ZFx1YmE5''@;'; + put 'put ''ZVx1YmE5Zlx1YmFhMFx1YmFhMVx1YmFhMlx1YmFhM1x1YmFhNFx1YmFhNVx1YmFhNlx1YmFhN1x1YmFhYVx1YmFhZFx1YmFhZVx1YmFhZlx1YmFiMVx1YmFiM1x1YmFiNFx1YmFiNVx1YmFiNlx1YmFiN1x1YmFiYVx1YmFiY1x1YmFiZVx1YmFiZlx1YmFjMFx1YmFjMVx1YmFjMlx1YmFjM1x1''@;'; + put 'put ''YmFjNVx1YmFjNlx1YmFjN1x1YmFjOVx1YmFjYVx1YmFjYlx1YmFjY1x1YmFjZFx1YmFjZVx1YmFjZlx1YmFkMFx1YmFkMVx1YmFkMlx1YmFkM1x1YmFkNFx1YmFkNVx1YmFkNlx1YmFkN1x1YmFkYVx1YmFkYlx1YmFkY1x1YmFkZFx1YmFkZVx1YmFkZlx1YmFlMFx1YmFlMVx1YmFlMlx1YmFl''@;'; + put 'put ''M1x1YmFlNFx1YmFlNVx1YmFlNlx1YmFlN1x1YmFlOFx1YmFlOVx1YmFlYVx1YmFlYlx1YmFlY1x1YmFlZFx1YmFlZVx1YmFlZlx1YmFmMFx1YmFmMVx1YmFmMlx1YmFmM1x1YmFmNFx1YmFmNVx1YmFmNlx1YmFmN1x1YmFmOFx1YmFmOVx1YmFmYVx1YmFmYlx1YmFmZFx1YmFmZVx1YmFmZlx1''@;'; + put 'put ''YmIwMVx1YmIwMlx1YmIwM1x1YmIwNVx1YmIwNlx1YmIwN1x1YmIwOFx1YmIwOVx1YmIwYVx1YmIwYlx1YmIwY1x1YmIwZVx1YmIxMFx1YmIxMlx1YmIxM1x1YmIxNFx1YmIxNVx1YmIxNlx1YmIxN1x1YmIxOVx1YmIxYVx1YmIxYlx1YmIxZFx1YmIxZVx1YmIxZlx1YmIyMVx1YmIyMlx1YmIy''@;'; + put 'put ''M1x1YmIyNFx1YmIyNVx1YmIyNlx1YmIyN1x1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE0NV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTQ1XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxNDVdW0VdXT0zNzEyMCtFLExbMzcxMjArRV09QlsxNDVdW0VdKTtmb3IoQlsxNDZdPSJcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWJiMjhcdWJiMmFcdWJiMmNcdWJiMmRcdWJiMmVcdWJiMmZcdWJiMzBcdWJiMzFcdWJiMzJcdWJiMzNcdWJiMzdcdWJiMzlcdWJiM2FcdWJiM2ZcdWJiNDBcdWJiNDFcdWJiNDJcdWJiNDNcdWJi''@;'; + put 'put ''NDZcdWJiNDhcdWJiNGFcdWJiNGJcdWJiNGNcdWJiNGVcdWJiNTFcdWJiNTJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWJiNTNcdWJiNTVcdWJiNTZcdWJiNTdcdWJiNTlcdWJiNWFcdWJiNWJcdWJiNWNcdWJiNWRcdWJiNWVcdWJiNWZcdWJiNjBcdWJiNjJcdWJiNjRc''@;'; + put 'put ''dWJiNjVcdWJiNjZcdWJiNjdcdWJiNjhcdWJiNjlcdWJiNmFcdWJiNmJcdWJiNmRcdWJiNmVcdWJiNmZcdWJiNzBcdWJiNzFcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWJiNzJcdWJiNzNcdWJiNzRcdWJiNzVcdWJiNzZcdWJiNzdcdWJiNzhcdWJiNzlcdWJiN2FcdWJi''@;'; + put 'put ''N2JcdWJiN2NcdWJiN2RcdWJiN2VcdWJiN2ZcdWJiODBcdWJiODFcdWJiODJcdWJiODNcdWJiODRcdWJiODVcdWJiODZcdWJiODdcdWJiODlcdWJiOGFcdWJiOGJcdWJiOGRcdWJiOGVcdWJiOGZcdWJiOTFcdWJiOTJcdWJiOTNcdWJiOTRcdWJiOTVcdWJiOTZcdWJiOTdcdWJiOThcdWJiOTlc''@;'; + put 'put ''dWJiOWFcdWJiOWJcdWJiOWNcdWJiOWRcdWJiOWVcdWJiOWZcdWJiYTBcdWJiYTFcdWJiYTJcdWJiYTNcdWJiYTVcdWJiYTZcdWJiYTdcdWJiYTlcdWJiYWFcdWJiYWJcdWJiYWRcdWJiYWVcdWJiYWZcdWJiYjBcdWJiYjFcdWJiYjJcdWJiYjNcdWJiYjVcdWJiYjZcdWJiYjhcdWJiYjlcdWJi''@;'; + put 'put ''YmFcdWJiYmJcdWJiYmNcdWJiYmRcdWJiYmVcdWJiYmZcdWJiYzFcdWJiYzJcdWJiYzNcdWJiYzVcdWJiYzZcdWJiYzdcdWJiYzlcdWJiY2FcdWJiY2JcdWJiY2NcdWJiY2RcdWJiY2VcdWJiY2ZcdWJiZDFcdWJiZDJcdWJiZDRcdWJiZDVcdWJiZDZcdWJiZDdcdWJiZDhcdWJiZDlcdWJiZGFc''@;'; + put 'put ''dWJiZGJcdWJiZGNcdWJiZGRcdWJiZGVcdWJiZGZcdWJiZTBcdWJiZTFcdWJiZTJcdWJiZTNcdWJiZTRcdWJiZTVcdWJiZTZcdWJiZTdcdWJiZThcdWJiZTlcdWJiZWFcdWJiZWJcdWJiZWNcdWJiZWRcdWJiZWVcdWJiZWZcdWJiZjBcdWJiZjFcdWJiZjJcdWJiZjNcdWJiZjRcdWJiZjVcdWJi''@;'; + put 'put ''ZjZcdWJiZjdcdWJiZmFcdWJiZmJcdWJiZmRcdWJiZmVcdWJjMDFcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxNDZdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE0Nl1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTQ2XVtFXV09MzczNzYrRSxMWzM3Mzc2K0VdPUJbMTQ2XVtFXSk7Zm9yKEJb''@;'; + put 'put ''MTQ3XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHViYzAzXHViYzA0XHViYzA1XHViYzA2XHViYzA3XHViYzBhXHViYzBlXHViYzEwXHViYzEyXHViYzEzXHViYzE5XHViYzFhXHViYzIwXHViYzIxXHViYzIyXHViYzIzXHVi''@;'; + put 'put ''YzI2XHViYzI4XHViYzJhXHViYzJiXHViYzJjXHViYzJlXHViYzJmXHViYzMyXHViYzMzXHViYzM1XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHViYzM2XHViYzM3XHViYzM5XHViYzNhXHViYzNiXHViYzNjXHViYzNkXHViYzNlXHViYzNmXHViYzQyXHViYzQ2XHViYzQ3''@;'; + put 'put ''XHViYzQ4XHViYzRhXHViYzRiXHViYzRlXHViYzRmXHViYzUxXHViYzUyXHViYzUzXHViYzU0XHViYzU1XHViYzU2XHViYzU3XHViYzU4XHViYzU5XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHViYzVhXHViYzViXHViYzVjXHViYzVlXHViYzVmXHViYzYwXHViYzYxXHVi''@;'; + put 'put ''YzYyXHViYzYzXHViYzY0XHViYzY1XHViYzY2XHViYzY3XHViYzY4XHViYzY5XHViYzZhXHViYzZiXHViYzZjXHViYzZkXHViYzZlXHViYzZmXHViYzcwXHViYzcxXHViYzcyXHViYzczXHViYzc0XHViYzc1XHViYzc2XHViYzc3XHViYzc4XHViYzc5XHViYzdhXHViYzdiXHViYzdjXHViYzdk''@;'; + put 'put ''XHViYzdlXHViYzdmXHViYzgwXHViYzgxXHViYzgyXHViYzgzXHViYzg2XHViYzg3XHViYzg5XHViYzhhXHViYzhkXHViYzhmXHViYzkwXHViYzkxXHViYzkyXHViYzkzXHViYzk2XHViYzk4XHViYzliXHViYzljXHViYzlkXHViYzllXHViYzlmXHViY2EyXHViY2EzXHViY2E1XHViY2E2XHVi''@;'; + put 'put ''Y2E5XHViY2FhXHViY2FiXHViY2FjXHViY2FkXHViY2FlXHViY2FmXHViY2IyXHViY2I2XHViY2I3XHViY2I4XHViY2I5XHViY2JhXHViY2JiXHViY2JlXHViY2JmXHViY2MxXHViY2MyXHViY2MzXHViY2M1XHViY2M2XHViY2M3XHViY2M4XHViY2M5XHViY2NhXHViY2NiXHViY2NjXHViY2Nl''@;'; + put 'put ''XHViY2QyXHViY2QzXHViY2Q0XHViY2Q2XHViY2Q3XHViY2Q5XHViY2RhXHViY2RiXHViY2RkXHViY2RlXHViY2RmXHViY2UwXHViY2UxXHViY2UyXHViY2UzXHViY2U0XHViY2U1XHViY2U2XHViY2U3XHViY2U4XHViY2U5XHViY2VhXHViY2ViXHViY2VjXHViY2VkXHViY2VlXHViY2VmXHVi''@;'; + put 'put ''Y2YwXHViY2YxXHViY2YyXHViY2YzXHViY2Y3XHViY2Y5XHViY2ZhXHViY2ZiXHViY2ZkXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTQ3XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxNDddW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE0N11bRV1dPTM3NjMyK0UsTFszNzYzMitFXT1CWzE0''@;'; + put 'put ''N11bRV0pO2ZvcihCWzE0OF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YmNmZVx1YmNmZlx1YmQwMFx1YmQwMVx1YmQwMlx1YmQwM1x1YmQwNlx1YmQwOFx1YmQwYVx1YmQwYlx1YmQwY1x1YmQwZFx1YmQwZVx1YmQwZlx1''@;'; + put 'put ''YmQxMVx1YmQxMlx1YmQxM1x1YmQxNVx1YmQxNlx1YmQxN1x1YmQxOFx1YmQxOVx1YmQxYVx1YmQxYlx1YmQxY1x1YmQxZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YmQxZVx1YmQxZlx1YmQyMFx1YmQyMVx1YmQyMlx1YmQyM1x1YmQyNVx1YmQyNlx1YmQyN1x1YmQy''@;'; + put 'put ''OFx1YmQyOVx1YmQyYVx1YmQyYlx1YmQyZFx1YmQyZVx1YmQyZlx1YmQzMFx1YmQzMVx1YmQzMlx1YmQzM1x1YmQzNFx1YmQzNVx1YmQzNlx1YmQzN1x1YmQzOFx1YmQzOVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YmQzYVx1YmQzYlx1YmQzY1x1YmQzZFx1YmQzZVx1''@;'; + put 'put ''YmQzZlx1YmQ0MVx1YmQ0Mlx1YmQ0M1x1YmQ0NFx1YmQ0NVx1YmQ0Nlx1YmQ0N1x1YmQ0YVx1YmQ0Ylx1YmQ0ZFx1YmQ0ZVx1YmQ0Zlx1YmQ1MVx1YmQ1Mlx1YmQ1M1x1YmQ1NFx1YmQ1NVx1YmQ1Nlx1YmQ1N1x1YmQ1YVx1YmQ1Ylx1YmQ1Y1x1YmQ1ZFx1YmQ1ZVx1YmQ1Zlx1YmQ2MFx1YmQ2''@;'; + put 'put ''MVx1YmQ2Mlx1YmQ2M1x1YmQ2NVx1YmQ2Nlx1YmQ2N1x1YmQ2OVx1YmQ2YVx1YmQ2Ylx1YmQ2Y1x1YmQ2ZFx1YmQ2ZVx1YmQ2Zlx1YmQ3MFx1YmQ3MVx1YmQ3Mlx1YmQ3M1x1YmQ3NFx1YmQ3NVx1YmQ3Nlx1YmQ3N1x1YmQ3OFx1YmQ3OVx1YmQ3YVx1YmQ3Ylx1YmQ3Y1x1YmQ3ZFx1YmQ3ZVx1''@;'; + put 'put ''YmQ3Zlx1YmQ4Mlx1YmQ4M1x1YmQ4NVx1YmQ4Nlx1YmQ4Ylx1YmQ4Y1x1YmQ4ZFx1YmQ4ZVx1YmQ4Zlx1YmQ5Mlx1YmQ5NFx1YmQ5Nlx1YmQ5N1x1YmQ5OFx1YmQ5Ylx1YmQ5ZFx1YmQ5ZVx1YmQ5Zlx1YmRhMFx1YmRhMVx1YmRhMlx1YmRhM1x1YmRhNVx1YmRhNlx1YmRhN1x1YmRhOFx1YmRh''@;'; + put 'put ''OVx1YmRhYVx1YmRhYlx1YmRhY1x1YmRhZFx1YmRhZVx1YmRhZlx1YmRiMVx1YmRiMlx1YmRiM1x1YmRiNFx1YmRiNVx1YmRiNlx1YmRiN1x1YmRiOVx1YmRiYVx1YmRiYlx1YmRiY1x1YmRiZFx1YmRiZVx1YmRiZlx1YmRjMFx1YmRjMVx1YmRjMlx1YmRjM1x1YmRjNFx1YmRjNVx1YmRjNlx1''@;'; + put 'put ''YmRjN1x1YmRjOFx1YmRjOVx1YmRjYVx1YmRjYlx1YmRjY1x1YmRjZFx1YmRjZVx1YmRjZlx1YmRkMFx1YmRkMVx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE0OF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTQ4XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxNDhdW0VdXT0zNzg4OCtFLExb''@;'; + put 'put ''Mzc4ODgrRV09QlsxNDhdW0VdKTtmb3IoQlsxNDldPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWJkZDJcdWJkZDNcdWJkZDZcdWJkZDdcdWJkZDlcdWJkZGFcdWJkZGJcdWJkZGRcdWJkZGVcdWJkZGZcdWJkZTBcdWJkZTFc''@;'; + put 'put ''dWJkZTJcdWJkZTNcdWJkZTRcdWJkZTVcdWJkZTZcdWJkZTdcdWJkZThcdWJkZWFcdWJkZWJcdWJkZWNcdWJkZWRcdWJkZWVcdWJkZWZcdWJkZjFcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWJkZjJcdWJkZjNcdWJkZjVcdWJkZjZcdWJkZjdcdWJkZjlcdWJkZmFcdWJk''@;'; + put 'put ''ZmJcdWJkZmNcdWJkZmRcdWJkZmVcdWJkZmZcdWJlMDFcdWJlMDJcdWJlMDRcdWJlMDZcdWJlMDdcdWJlMDhcdWJlMDlcdWJlMGFcdWJlMGJcdWJlMGVcdWJlMGZcdWJlMTFcdWJlMTJcdWJlMTNcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWJlMTVcdWJlMTZcdWJlMTdc''@;'; + put 'put ''dWJlMThcdWJlMTlcdWJlMWFcdWJlMWJcdWJlMWVcdWJlMjBcdWJlMjFcdWJlMjJcdWJlMjNcdWJlMjRcdWJlMjVcdWJlMjZcdWJlMjdcdWJlMjhcdWJlMjlcdWJlMmFcdWJlMmJcdWJlMmNcdWJlMmRcdWJlMmVcdWJlMmZcdWJlMzBcdWJlMzFcdWJlMzJcdWJlMzNcdWJlMzRcdWJlMzVcdWJl''@;'; + put 'put ''MzZcdWJlMzdcdWJlMzhcdWJlMzlcdWJlM2FcdWJlM2JcdWJlM2NcdWJlM2RcdWJlM2VcdWJlM2ZcdWJlNDBcdWJlNDFcdWJlNDJcdWJlNDNcdWJlNDZcdWJlNDdcdWJlNDlcdWJlNGFcdWJlNGJcdWJlNGRcdWJlNGZcdWJlNTBcdWJlNTFcdWJlNTJcdWJlNTNcdWJlNTZcdWJlNThcdWJlNWNc''@;'; + put 'put ''dWJlNWRcdWJlNWVcdWJlNWZcdWJlNjJcdWJlNjNcdWJlNjVcdWJlNjZcdWJlNjdcdWJlNjlcdWJlNmJcdWJlNmNcdWJlNmRcdWJlNmVcdWJlNmZcdWJlNzJcdWJlNzZcdWJlNzdcdWJlNzhcdWJlNzlcdWJlN2FcdWJlN2VcdWJlN2ZcdWJlODFcdWJlODJcdWJlODNcdWJlODVcdWJlODZcdWJl''@;'; + put 'put ''ODdcdWJlODhcdWJlODlcdWJlOGFcdWJlOGJcdWJlOGVcdWJlOTJcdWJlOTNcdWJlOTRcdWJlOTVcdWJlOTZcdWJlOTdcdWJlOWFcdWJlOWJcdWJlOWNcdWJlOWRcdWJlOWVcdWJlOWZcdWJlYTBcdWJlYTFcdWJlYTJcdWJlYTNcdWJlYTRcdWJlYTVcdWJlYTZcdWJlYTdcdWJlYTlcdWJlYWFc''@;'; + put 'put ''dWJlYWJcdWJlYWNcdWJlYWRcdWJlYWVcdWJlYWZcdWJlYjBcdWJlYjFcdWJlYjJcdWJlYjNcdWJlYjRcdWJlYjVcdWJlYjZcdWJlYjdcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxNDldLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE0OV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTQ5XVtF''@;'; + put 'put ''XV09MzgxNDQrRSxMWzM4MTQ0K0VdPUJbMTQ5XVtFXSk7Zm9yKEJbMTUwXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHViZWI4XHViZWI5XHViZWJhXHViZWJiXHViZWJjXHViZWJkXHViZWJlXHViZWJmXHViZWMwXHViZWMx''@;'; + put 'put ''XHViZWMyXHViZWMzXHViZWM0XHViZWM1XHViZWM2XHViZWM3XHViZWM4XHViZWM5XHViZWNhXHViZWNiXHViZWNjXHViZWNkXHViZWNlXHViZWNmXHViZWQyXHViZWQzXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHViZWQ1XHViZWQ2XHViZWQ5XHViZWRhXHViZWRiXHVi''@;'; + put 'put ''ZWRjXHViZWRkXHViZWRlXHViZWRmXHViZWUxXHViZWUyXHViZWU2XHViZWU3XHViZWU4XHViZWU5XHViZWVhXHViZWViXHViZWVkXHViZWVlXHViZWVmXHViZWYwXHViZWYxXHViZWYyXHViZWYzXHViZWY0XHViZWY1XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHViZWY2''@;'; + put 'put ''XHViZWY3XHViZWY4XHViZWY5XHViZWZhXHViZWZiXHViZWZjXHViZWZkXHViZWZlXHViZWZmXHViZjAwXHViZjAyXHViZjAzXHViZjA0XHViZjA1XHViZjA2XHViZjA3XHViZjBhXHViZjBiXHViZjBjXHViZjBkXHViZjBlXHViZjBmXHViZjEwXHViZjExXHViZjEyXHViZjEzXHViZjE0XHVi''@;'; + put 'put ''ZjE1XHViZjE2XHViZjE3XHViZjFhXHViZjFlXHViZjFmXHViZjIwXHViZjIxXHViZjIyXHViZjIzXHViZjI0XHViZjI1XHViZjI2XHViZjI3XHViZjI4XHViZjI5XHViZjJhXHViZjJiXHViZjJjXHViZjJkXHViZjJlXHViZjJmXHViZjMwXHViZjMxXHViZjMyXHViZjMzXHViZjM0XHViZjM1''@;'; + put 'put ''XHViZjM2XHViZjM3XHViZjM4XHViZjM5XHViZjNhXHViZjNiXHViZjNjXHViZjNkXHViZjNlXHViZjNmXHViZjQyXHViZjQzXHViZjQ1XHViZjQ2XHViZjQ3XHViZjQ5XHViZjRhXHViZjRiXHViZjRjXHViZjRkXHViZjRlXHViZjRmXHViZjUyXHViZjUzXHViZjU0XHViZjU2XHViZjU3XHVi''@;'; + put 'put ''ZjU4XHViZjU5XHViZjVhXHViZjViXHViZjVjXHViZjVkXHViZjVlXHViZjVmXHViZjYwXHViZjYxXHViZjYyXHViZjYzXHViZjY0XHViZjY1XHViZjY2XHViZjY3XHViZjY4XHViZjY5XHViZjZhXHViZjZiXHViZjZjXHViZjZkXHViZjZlXHViZjZmXHViZjcwXHViZjcxXHViZjcyXHViZjcz''@;'; + put 'put ''XHViZjc0XHViZjc1XHViZjc2XHViZjc3XHViZjc4XHViZjc5XHViZjdhXHViZjdiXHViZjdjXHViZjdkXHViZjdlXHViZjdmXHViZjgwXHViZjgxXHViZjgyXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTUwXS5sZW5ndGg7KytFKTY1NTMzIT09QlsxNTBdW0VdLmNoYXJDb2RlQXQoMCkm''@;'; + put 'put ''JihtZVtCWzE1MF1bRV1dPTM4NDAwK0UsTFszODQwMCtFXT1CWzE1MF1bRV0pO2ZvcihCWzE1MV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YmY4M1x1YmY4NFx1YmY4NVx1YmY4Nlx1YmY4N1x1YmY4OFx1YmY4OVx1YmY4''@;'; + put 'put ''YVx1YmY4Ylx1YmY4Y1x1YmY4ZFx1YmY4ZVx1YmY4Zlx1YmY5MFx1YmY5MVx1YmY5Mlx1YmY5M1x1YmY5NVx1YmY5Nlx1YmY5N1x1YmY5OFx1YmY5OVx1YmY5YVx1YmY5Ylx1YmY5Y1x1YmY5ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YmY5ZVx1YmY5Zlx1YmZhMFx1''@;'; + put 'put ''YmZhMVx1YmZhMlx1YmZhM1x1YmZhNFx1YmZhNVx1YmZhNlx1YmZhN1x1YmZhOFx1YmZhOVx1YmZhYVx1YmZhYlx1YmZhY1x1YmZhZFx1YmZhZVx1YmZhZlx1YmZiMVx1YmZiMlx1YmZiM1x1YmZiNFx1YmZiNVx1YmZiNlx1YmZiN1x1YmZiOFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1YmZiOVx1YmZiYVx1YmZiYlx1YmZiY1x1YmZiZFx1YmZiZVx1YmZiZlx1YmZjMFx1YmZjMVx1YmZjMlx1YmZjM1x1YmZjNFx1YmZjNlx1YmZjN1x1YmZjOFx1YmZjOVx1YmZjYVx1YmZjYlx1YmZjZVx1YmZjZlx1YmZkMVx1YmZkMlx1YmZkM1x1YmZkNVx1YmZkNlx1YmZkN1x1''@;'; + put 'put ''YmZkOFx1YmZkOVx1YmZkYVx1YmZkYlx1YmZkZFx1YmZkZVx1YmZlMFx1YmZlMlx1YmZlM1x1YmZlNFx1YmZlNVx1YmZlNlx1YmZlN1x1YmZlOFx1YmZlOVx1YmZlYVx1YmZlYlx1YmZlY1x1YmZlZFx1YmZlZVx1YmZlZlx1YmZmMFx1YmZmMVx1YmZmMlx1YmZmM1x1YmZmNFx1YmZmNVx1YmZm''@;'; + put 'put ''Nlx1YmZmN1x1YmZmOFx1YmZmOVx1YmZmYVx1YmZmYlx1YmZmY1x1YmZmZFx1YmZmZVx1YmZmZlx1YzAwMFx1YzAwMVx1YzAwMlx1YzAwM1x1YzAwNFx1YzAwNVx1YzAwNlx1YzAwN1x1YzAwOFx1YzAwOVx1YzAwYVx1YzAwYlx1YzAwY1x1YzAwZFx1YzAwZVx1YzAwZlx1YzAxMFx1YzAxMVx1''@;'; + put 'put ''YzAxMlx1YzAxM1x1YzAxNFx1YzAxNVx1YzAxNlx1YzAxN1x1YzAxOFx1YzAxOVx1YzAxYVx1YzAxYlx1YzAxY1x1YzAxZFx1YzAxZVx1YzAxZlx1YzAyMFx1YzAyMVx1YzAyMlx1YzAyM1x1YzAyNFx1YzAyNVx1YzAyNlx1YzAyN1x1YzAyOFx1YzAyOVx1YzAyYVx1YzAyYlx1YzAyY1x1YzAy''@;'; + put 'put ''ZFx1YzAyZVx1YzAyZlx1YzAzMFx1YzAzMVx1YzAzMlx1YzAzM1x1YzAzNFx1YzAzNVx1YzAzNlx1YzAzN1x1YzAzOFx1YzAzOVx1YzAzYVx1YzAzYlx1YzAzZFx1YzAzZVx1YzAzZlx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE1MV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTUxXVtFXS5j''@;'; + put 'put ''aGFyQ29kZUF0KDApJiYobWVbQlsxNTFdW0VdXT0zODY1NitFLExbMzg2NTYrRV09QlsxNTFdW0VdKTtmb3IoQlsxNTJdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWMwNDBcdWMwNDFcdWMwNDJcdWMwNDNcdWMwNDRcdWMw''@;'; + put 'put ''NDVcdWMwNDZcdWMwNDdcdWMwNDhcdWMwNDlcdWMwNGFcdWMwNGJcdWMwNGNcdWMwNGRcdWMwNGVcdWMwNGZcdWMwNTBcdWMwNTJcdWMwNTNcdWMwNTRcdWMwNTVcdWMwNTZcdWMwNTdcdWMwNTlcdWMwNWFcdWMwNWJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWMwNWRc''@;'; + put 'put ''dWMwNWVcdWMwNWZcdWMwNjFcdWMwNjJcdWMwNjNcdWMwNjRcdWMwNjVcdWMwNjZcdWMwNjdcdWMwNmFcdWMwNmJcdWMwNmNcdWMwNmRcdWMwNmVcdWMwNmZcdWMwNzBcdWMwNzFcdWMwNzJcdWMwNzNcdWMwNzRcdWMwNzVcdWMwNzZcdWMwNzdcdWMwNzhcdWMwNzlcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWMwN2FcdWMwN2JcdWMwN2NcdWMwN2RcdWMwN2VcdWMwN2ZcdWMwODBcdWMwODFcdWMwODJcdWMwODNcdWMwODRcdWMwODVcdWMwODZcdWMwODdcdWMwODhcdWMwODlcdWMwOGFcdWMwOGJcdWMwOGNcdWMwOGRcdWMwOGVcdWMwOGZcdWMwOTJcdWMwOTNc''@;'; + put 'put ''dWMwOTVcdWMwOTZcdWMwOTdcdWMwOTlcdWMwOWFcdWMwOWJcdWMwOWNcdWMwOWRcdWMwOWVcdWMwOWZcdWMwYTJcdWMwYTRcdWMwYTZcdWMwYTdcdWMwYThcdWMwYTlcdWMwYWFcdWMwYWJcdWMwYWVcdWMwYjFcdWMwYjJcdWMwYjdcdWMwYjhcdWMwYjlcdWMwYmFcdWMwYmJcdWMwYmVcdWMw''@;'; + put 'put ''YzJcdWMwYzNcdWMwYzRcdWMwYzZcdWMwYzdcdWMwY2FcdWMwY2JcdWMwY2RcdWMwY2VcdWMwY2ZcdWMwZDFcdWMwZDJcdWMwZDNcdWMwZDRcdWMwZDVcdWMwZDZcdWMwZDdcdWMwZGFcdWMwZGVcdWMwZGZcdWMwZTBcdWMwZTFcdWMwZTJcdWMwZTNcdWMwZTZcdWMwZTdcdWMwZTlcdWMwZWFc''@;'; + put 'put ''dWMwZWJcdWMwZWRcdWMwZWVcdWMwZWZcdWMwZjBcdWMwZjFcdWMwZjJcdWMwZjNcdWMwZjZcdWMwZjhcdWMwZmFcdWMwZmJcdWMwZmNcdWMwZmRcdWMwZmVcdWMwZmZcdWMxMDFcdWMxMDJcdWMxMDNcdWMxMDVcdWMxMDZcdWMxMDdcdWMxMDlcdWMxMGFcdWMxMGJcdWMxMGNcdWMxMGRcdWMx''@;'; + put 'put ''MGVcdWMxMGZcdWMxMTFcdWMxMTJcdWMxMTNcdWMxMTRcdWMxMTZcdWMxMTdcdWMxMThcdWMxMTlcdWMxMWFcdWMxMWJcdWMxMjFcdWMxMjJcdWMxMjVcdWMxMjhcdWMxMjlcdWMxMmFcdWMxMmJcdWMxMmVcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxNTJdLmxlbmd0aDsrK0UpNjU1MzMh''@;'; + put 'put ''PT1CWzE1Ml1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTUyXVtFXV09Mzg5MTIrRSxMWzM4OTEyK0VdPUJbMTUyXVtFXSk7Zm9yKEJbMTUzXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjMTMyXHVjMTMzXHVjMTM0XHVj''@;'; + put 'put ''MTM1XHVjMTM3XHVjMTNhXHVjMTNiXHVjMTNkXHVjMTNlXHVjMTNmXHVjMTQxXHVjMTQyXHVjMTQzXHVjMTQ0XHVjMTQ1XHVjMTQ2XHVjMTQ3XHVjMTRhXHVjMTRlXHVjMTRmXHVjMTUwXHVjMTUxXHVjMTUyXHVjMTUzXHVjMTU2XHVjMTU3XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVjMTU5XHVjMTVhXHVjMTViXHVjMTVkXHVjMTVlXHVjMTVmXHVjMTYwXHVjMTYxXHVjMTYyXHVjMTYzXHVjMTY2XHVjMTZhXHVjMTZiXHVjMTZjXHVjMTZkXHVjMTZlXHVjMTZmXHVjMTcxXHVjMTcyXHVjMTczXHVjMTc1XHVjMTc2XHVjMTc3XHVjMTc5XHVjMTdhXHVjMTdiXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjMTdjXHVjMTdkXHVjMTdlXHVjMTdmXHVjMTgwXHVjMTgxXHVjMTgyXHVjMTgzXHVjMTg0XHVjMTg2XHVjMTg3XHVjMTg4XHVjMTg5XHVjMThhXHVjMThiXHVjMThmXHVjMTkxXHVjMTkyXHVjMTkzXHVjMTk1XHVjMTk3XHVjMTk4''@;'; + put 'put ''XHVjMTk5XHVjMTlhXHVjMTliXHVjMTllXHVjMWEwXHVjMWEyXHVjMWEzXHVjMWE0XHVjMWE2XHVjMWE3XHVjMWFhXHVjMWFiXHVjMWFkXHVjMWFlXHVjMWFmXHVjMWIxXHVjMWIyXHVjMWIzXHVjMWI0XHVjMWI1XHVjMWI2XHVjMWI3XHVjMWI4XHVjMWI5XHVjMWJhXHVjMWJiXHVjMWJjXHVj''@;'; + put 'put ''MWJlXHVjMWJmXHVjMWMwXHVjMWMxXHVjMWMyXHVjMWMzXHVjMWM1XHVjMWM2XHVjMWM3XHVjMWM5XHVjMWNhXHVjMWNiXHVjMWNkXHVjMWNlXHVjMWNmXHVjMWQwXHVjMWQxXHVjMWQyXHVjMWQzXHVjMWQ1XHVjMWQ2XHVjMWQ5XHVjMWRhXHVjMWRiXHVjMWRjXHVjMWRkXHVjMWRlXHVjMWRm''@;'; + put 'put ''XHVjMWUxXHVjMWUyXHVjMWUzXHVjMWU1XHVjMWU2XHVjMWU3XHVjMWU5XHVjMWVhXHVjMWViXHVjMWVjXHVjMWVkXHVjMWVlXHVjMWVmXHVjMWYyXHVjMWY0XHVjMWY1XHVjMWY2XHVjMWY3XHVjMWY4XHVjMWY5XHVjMWZhXHVjMWZiXHVjMWZlXHVjMWZmXHVjMjAxXHVjMjAyXHVjMjAzXHVj''@;'; + put 'put ''MjA1XHVjMjA2XHVjMjA3XHVjMjA4XHVjMjA5XHVjMjBhXHVjMjBiXHVjMjBlXHVjMjEwXHVjMjEyXHVjMjEzXHVjMjE0XHVjMjE1XHVjMjE2XHVjMjE3XHVjMjFhXHVjMjFiXHVjMjFkXHVjMjFlXHVjMjIxXHVjMjIyXHVjMjIzXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTUzXS5sZW5n''@;'; + put 'put ''dGg7KytFKTY1NTMzIT09QlsxNTNdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE1M11bRV1dPTM5MTY4K0UsTFszOTE2OCtFXT1CWzE1M11bRV0pO2ZvcihCWzE1NF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YzIyNFx1''@;'; + put 'put ''YzIyNVx1YzIyNlx1YzIyN1x1YzIyYVx1YzIyY1x1YzIyZVx1YzIzMFx1YzIzM1x1YzIzNVx1YzIzNlx1YzIzN1x1YzIzOFx1YzIzOVx1YzIzYVx1YzIzYlx1YzIzY1x1YzIzZFx1YzIzZVx1YzIzZlx1YzI0MFx1YzI0MVx1YzI0Mlx1YzI0M1x1YzI0NFx1YzI0NVx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YzI0Nlx1YzI0N1x1YzI0OVx1YzI0YVx1YzI0Ylx1YzI0Y1x1YzI0ZFx1YzI0ZVx1YzI0Zlx1YzI1Mlx1YzI1M1x1YzI1NVx1YzI1Nlx1YzI1N1x1YzI1OVx1YzI1YVx1YzI1Ylx1YzI1Y1x1YzI1ZFx1YzI1ZVx1YzI1Zlx1YzI2MVx1YzI2Mlx1YzI2M1x1''@;'; + put 'put ''YzI2NFx1YzI2Nlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YzI2N1x1YzI2OFx1YzI2OVx1YzI2YVx1YzI2Ylx1YzI2ZVx1YzI2Zlx1YzI3MVx1YzI3Mlx1YzI3M1x1YzI3NVx1YzI3Nlx1YzI3N1x1YzI3OFx1YzI3OVx1YzI3YVx1YzI3Ylx1YzI3ZVx1YzI4MFx1YzI4''@;'; + put 'put ''Mlx1YzI4M1x1YzI4NFx1YzI4NVx1YzI4Nlx1YzI4N1x1YzI4YVx1YzI4Ylx1YzI4Y1x1YzI4ZFx1YzI4ZVx1YzI4Zlx1YzI5MVx1YzI5Mlx1YzI5M1x1YzI5NFx1YzI5NVx1YzI5Nlx1YzI5N1x1YzI5OVx1YzI5YVx1YzI5Y1x1YzI5ZVx1YzI5Zlx1YzJhMFx1YzJhMVx1YzJhMlx1YzJhM1x1''@;'; + put 'put ''YzJhNlx1YzJhN1x1YzJhOVx1YzJhYVx1YzJhYlx1YzJhZVx1YzJhZlx1YzJiMFx1YzJiMVx1YzJiMlx1YzJiM1x1YzJiNlx1YzJiOFx1YzJiYVx1YzJiYlx1YzJiY1x1YzJiZFx1YzJiZVx1YzJiZlx1YzJjMFx1YzJjMVx1YzJjMlx1YzJjM1x1YzJjNFx1YzJjNVx1YzJjNlx1YzJjN1x1YzJj''@;'; + put 'put ''OFx1YzJjOVx1YzJjYVx1YzJjYlx1YzJjY1x1YzJjZFx1YzJjZVx1YzJjZlx1YzJkMFx1YzJkMVx1YzJkMlx1YzJkM1x1YzJkNFx1YzJkNVx1YzJkNlx1YzJkN1x1YzJkOFx1YzJkOVx1YzJkYVx1YzJkYlx1YzJkZVx1YzJkZlx1YzJlMVx1YzJlMlx1YzJlNVx1YzJlNlx1YzJlN1x1YzJlOFx1''@;'; + put 'put ''YzJlOVx1YzJlYVx1YzJlZVx1YzJmMFx1YzJmMlx1YzJmM1x1YzJmNFx1YzJmNVx1YzJmN1x1YzJmYVx1YzJmZFx1YzJmZVx1YzJmZlx1YzMwMVx1YzMwMlx1YzMwM1x1YzMwNFx1YzMwNVx1YzMwNlx1YzMwN1x1YzMwYVx1YzMwYlx1YzMwZVx1YzMwZlx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtF''@;'; + put 'put ''IT1CWzE1NF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTU0XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxNTRdW0VdXT0zOTQyNCtFLExbMzk0MjQrRV09QlsxNTRdW0VdKTtmb3IoQlsxNTVdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWMzMTBcdWMzMTFcdWMzMTJcdWMzMTZcdWMzMTdcdWMzMTlcdWMzMWFcdWMzMWJcdWMzMWRcdWMzMWVcdWMzMWZcdWMzMjBcdWMzMjFcdWMzMjJcdWMzMjNcdWMzMjZcdWMzMjdcdWMzMmFcdWMzMmJcdWMzMmNcdWMzMmRcdWMzMmVcdWMzMmZcdWMzMzBcdWMzMzFcdWMzMzJcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWMzMzNcdWMzMzRcdWMzMzVcdWMzMzZcdWMzMzdcdWMzMzhcdWMzMzlcdWMzM2FcdWMzM2JcdWMzM2NcdWMzM2RcdWMzM2VcdWMzM2ZcdWMzNDBcdWMzNDFcdWMzNDJcdWMzNDNcdWMzNDRcdWMzNDZcdWMzNDdcdWMzNDhcdWMzNDlc''@;'; + put 'put ''dWMzNGFcdWMzNGJcdWMzNGNcdWMzNGRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWMzNGVcdWMzNGZcdWMzNTBcdWMzNTFcdWMzNTJcdWMzNTNcdWMzNTRcdWMzNTVcdWMzNTZcdWMzNTdcdWMzNThcdWMzNTlcdWMzNWFcdWMzNWJcdWMzNWNcdWMzNWRcdWMzNWVcdWMz''@;'; + put 'put ''NWZcdWMzNjBcdWMzNjFcdWMzNjJcdWMzNjNcdWMzNjRcdWMzNjVcdWMzNjZcdWMzNjdcdWMzNmFcdWMzNmJcdWMzNmRcdWMzNmVcdWMzNmZcdWMzNzFcdWMzNzNcdWMzNzRcdWMzNzVcdWMzNzZcdWMzNzdcdWMzN2FcdWMzN2JcdWMzN2VcdWMzN2ZcdWMzODBcdWMzODFcdWMzODJcdWMzODNc''@;'; + put 'put ''dWMzODVcdWMzODZcdWMzODdcdWMzODlcdWMzOGFcdWMzOGJcdWMzOGRcdWMzOGVcdWMzOGZcdWMzOTBcdWMzOTFcdWMzOTJcdWMzOTNcdWMzOTRcdWMzOTVcdWMzOTZcdWMzOTdcdWMzOThcdWMzOTlcdWMzOWFcdWMzOWJcdWMzOWNcdWMzOWRcdWMzOWVcdWMzOWZcdWMzYTBcdWMzYTFcdWMz''@;'; + put 'put ''YTJcdWMzYTNcdWMzYTRcdWMzYTVcdWMzYTZcdWMzYTdcdWMzYThcdWMzYTlcdWMzYWFcdWMzYWJcdWMzYWNcdWMzYWRcdWMzYWVcdWMzYWZcdWMzYjBcdWMzYjFcdWMzYjJcdWMzYjNcdWMzYjRcdWMzYjVcdWMzYjZcdWMzYjdcdWMzYjhcdWMzYjlcdWMzYmFcdWMzYmJcdWMzYmNcdWMzYmRc''@;'; + put 'put ''dWMzYmVcdWMzYmZcdWMzYzFcdWMzYzJcdWMzYzNcdWMzYzRcdWMzYzVcdWMzYzZcdWMzYzdcdWMzYzhcdWMzYzlcdWMzY2FcdWMzY2JcdWMzY2NcdWMzY2RcdWMzY2VcdWMzY2ZcdWMzZDBcdWMzZDFcdWMzZDJcdWMzZDNcdWMzZDRcdWMzZDVcdWMzZDZcdWMzZDdcdWMzZGFcdWZmZmQiLnNw''@;'; + put 'put ''bGl0KCIiKSxFPTA7RSE9QlsxNTVdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE1NV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTU1XVtFXV09Mzk2ODArRSxMWzM5NjgwK0VdPUJbMTU1XVtFXSk7Zm9yKEJbMTU2XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVjM2RiXHVjM2RkXHVjM2RlXHVjM2UxXHVjM2UzXHVjM2U0XHVjM2U1XHVjM2U2XHVjM2U3XHVjM2VhXHVjM2ViXHVjM2VjXHVjM2VlXHVjM2VmXHVjM2YwXHVjM2YxXHVjM2YyXHVjM2YzXHVjM2Y2XHVjM2Y3XHVjM2Y5XHVjM2ZhXHVjM2ZiXHVjM2ZjXHVj''@;'; + put 'put ''M2ZkXHVjM2ZlXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjM2ZmXHVjNDAwXHVjNDAxXHVjNDAyXHVjNDAzXHVjNDA0XHVjNDA1XHVjNDA2XHVjNDA3XHVjNDA5XHVjNDBhXHVjNDBiXHVjNDBjXHVjNDBkXHVjNDBlXHVjNDBmXHVjNDExXHVjNDEyXHVjNDEzXHVjNDE0''@;'; + put 'put ''XHVjNDE1XHVjNDE2XHVjNDE3XHVjNDE4XHVjNDE5XHVjNDFhXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjNDFiXHVjNDFjXHVjNDFkXHVjNDFlXHVjNDFmXHVjNDIwXHVjNDIxXHVjNDIyXHVjNDIzXHVjNDI1XHVjNDI2XHVjNDI3XHVjNDI4XHVjNDI5XHVjNDJhXHVj''@;'; + put 'put ''NDJiXHVjNDJkXHVjNDJlXHVjNDJmXHVjNDMxXHVjNDMyXHVjNDMzXHVjNDM1XHVjNDM2XHVjNDM3XHVjNDM4XHVjNDM5XHVjNDNhXHVjNDNiXHVjNDNlXHVjNDNmXHVjNDQwXHVjNDQxXHVjNDQyXHVjNDQzXHVjNDQ0XHVjNDQ1XHVjNDQ2XHVjNDQ3XHVjNDQ5XHVjNDRhXHVjNDRiXHVjNDRj''@;'; + put 'put ''XHVjNDRkXHVjNDRlXHVjNDRmXHVjNDUwXHVjNDUxXHVjNDUyXHVjNDUzXHVjNDU0XHVjNDU1XHVjNDU2XHVjNDU3XHVjNDU4XHVjNDU5XHVjNDVhXHVjNDViXHVjNDVjXHVjNDVkXHVjNDVlXHVjNDVmXHVjNDYwXHVjNDYxXHVjNDYyXHVjNDYzXHVjNDY2XHVjNDY3XHVjNDY5XHVjNDZhXHVj''@;'; + put 'put ''NDZiXHVjNDZkXHVjNDZlXHVjNDZmXHVjNDcwXHVjNDcxXHVjNDcyXHVjNDczXHVjNDc2XHVjNDc3XHVjNDc4XHVjNDdhXHVjNDdiXHVjNDdjXHVjNDdkXHVjNDdlXHVjNDdmXHVjNDgxXHVjNDgyXHVjNDgzXHVjNDg0XHVjNDg1XHVjNDg2XHVjNDg3XHVjNDg4XHVjNDg5XHVjNDhhXHVjNDhi''@;'; + put 'put ''XHVjNDhjXHVjNDhkXHVjNDhlXHVjNDhmXHVjNDkwXHVjNDkxXHVjNDkyXHVjNDkzXHVjNDk1XHVjNDk2XHVjNDk3XHVjNDk4XHVjNDk5XHVjNDlhXHVjNDliXHVjNDlkXHVjNDllXHVjNDlmXHVjNGEwXHVjNGExXHVjNGEyXHVjNGEzXHVjNGE0XHVjNGE1XHVjNGE2XHVjNGE3XHVjNGE4XHVj''@;'; + put 'put ''NGE5XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTU2XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxNTZdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE1Nl1bRV1dPTM5OTM2K0UsTFszOTkzNitFXT1CWzE1Nl1bRV0pO2ZvcihCWzE1N109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YzRhYVx1YzRhYlx1YzRhY1x1YzRhZFx1YzRhZVx1YzRhZlx1YzRiMFx1YzRiMVx1YzRiMlx1YzRiM1x1YzRiNFx1YzRiNVx1YzRiNlx1YzRiN1x1YzRiOVx1YzRiYVx1YzRiYlx1YzRiZFx1YzRiZVx1YzRiZlx1YzRjMFx1YzRjMVx1''@;'; + put 'put ''YzRjMlx1YzRjM1x1YzRjNFx1YzRjNVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YzRjNlx1YzRjN1x1YzRjOFx1YzRjOVx1YzRjYVx1YzRjYlx1YzRjY1x1YzRjZFx1YzRjZVx1YzRjZlx1YzRkMFx1YzRkMVx1YzRkMlx1YzRkM1x1YzRkNFx1YzRkNVx1YzRkNlx1YzRk''@;'; + put 'put ''N1x1YzRkOFx1YzRkOVx1YzRkYVx1YzRkYlx1YzRkY1x1YzRkZFx1YzRkZVx1YzRkZlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YzRlMFx1YzRlMVx1YzRlMlx1YzRlM1x1YzRlNFx1YzRlNVx1YzRlNlx1YzRlN1x1YzRlOFx1YzRlYVx1YzRlYlx1YzRlY1x1YzRlZFx1''@;'; + put 'put ''YzRlZVx1YzRlZlx1YzRmMlx1YzRmM1x1YzRmNVx1YzRmNlx1YzRmN1x1YzRmOVx1YzRmYlx1YzRmY1x1YzRmZFx1YzRmZVx1YzUwMlx1YzUwM1x1YzUwNFx1YzUwNVx1YzUwNlx1YzUwN1x1YzUwOFx1YzUwOVx1YzUwYVx1YzUwYlx1YzUwZFx1YzUwZVx1YzUwZlx1YzUxMVx1YzUxMlx1YzUx''@;'; + put 'put ''M1x1YzUxNVx1YzUxNlx1YzUxN1x1YzUxOFx1YzUxOVx1YzUxYVx1YzUxYlx1YzUxZFx1YzUxZVx1YzUxZlx1YzUyMFx1YzUyMVx1YzUyMlx1YzUyM1x1YzUyNFx1YzUyNVx1YzUyNlx1YzUyN1x1YzUyYVx1YzUyYlx1YzUyZFx1YzUyZVx1YzUyZlx1YzUzMVx1YzUzMlx1YzUzM1x1YzUzNFx1''@;'; + put 'put ''YzUzNVx1YzUzNlx1YzUzN1x1YzUzYVx1YzUzY1x1YzUzZVx1YzUzZlx1YzU0MFx1YzU0MVx1YzU0Mlx1YzU0M1x1YzU0Nlx1YzU0N1x1YzU0Ylx1YzU0Zlx1YzU1MFx1YzU1MVx1YzU1Mlx1YzU1Nlx1YzU1YVx1YzU1Ylx1YzU1Y1x1YzU1Zlx1YzU2Mlx1YzU2M1x1YzU2NVx1YzU2Nlx1YzU2''@;'; + put 'put ''N1x1YzU2OVx1YzU2YVx1YzU2Ylx1YzU2Y1x1YzU2ZFx1YzU2ZVx1YzU2Zlx1YzU3Mlx1YzU3Nlx1YzU3N1x1YzU3OFx1YzU3OVx1YzU3YVx1YzU3Ylx1YzU3ZVx1YzU3Zlx1YzU4MVx1YzU4Mlx1YzU4M1x1YzU4NVx1YzU4Nlx1YzU4OFx1YzU4OVx1YzU4YVx1YzU4Ylx1YzU4ZVx1YzU5MFx1''@;'; + put 'put ''YzU5Mlx1YzU5M1x1YzU5NFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE1N10ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTU3XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxNTddW0VdXT00MDE5MitFLExbNDAxOTIrRV09QlsxNTddW0VdKTtmb3IoQlsxNThdPSJcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWM1OTZcdWM1OTlcdWM1OWFcdWM1OWJcdWM1OWRcdWM1OWVcdWM1OWZcdWM1YTFcdWM1YTJcdWM1YTNcdWM1YTRcdWM1YTVcdWM1YTZcdWM1YTdcdWM1YThcdWM1YWFcdWM1YWJcdWM1YWNcdWM1YWRcdWM1YWVc''@;'; + put 'put ''dWM1YWZcdWM1YjBcdWM1YjFcdWM1YjJcdWM1YjNcdWM1YjZcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWM1YjdcdWM1YmFcdWM1YmZcdWM1YzBcdWM1YzFcdWM1YzJcdWM1YzNcdWM1Y2JcdWM1Y2RcdWM1Y2ZcdWM1ZDJcdWM1ZDNcdWM1ZDVcdWM1ZDZcdWM1ZDdcdWM1''@;'; + put 'put ''ZDlcdWM1ZGFcdWM1ZGJcdWM1ZGNcdWM1ZGRcdWM1ZGVcdWM1ZGZcdWM1ZTJcdWM1ZTRcdWM1ZTZcdWM1ZTdcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWM1ZThcdWM1ZTlcdWM1ZWFcdWM1ZWJcdWM1ZWZcdWM1ZjFcdWM1ZjJcdWM1ZjNcdWM1ZjVcdWM1ZjhcdWM1Zjlc''@;'; + put 'put ''dWM1ZmFcdWM1ZmJcdWM2MDJcdWM2MDNcdWM2MDRcdWM2MDlcdWM2MGFcdWM2MGJcdWM2MGRcdWM2MGVcdWM2MGZcdWM2MTFcdWM2MTJcdWM2MTNcdWM2MTRcdWM2MTVcdWM2MTZcdWM2MTdcdWM2MWFcdWM2MWRcdWM2MWVcdWM2MWZcdWM2MjBcdWM2MjFcdWM2MjJcdWM2MjNcdWM2MjZcdWM2''@;'; + put 'put ''MjdcdWM2MjlcdWM2MmFcdWM2MmJcdWM2MmZcdWM2MzFcdWM2MzJcdWM2MzZcdWM2MzhcdWM2M2FcdWM2M2NcdWM2M2RcdWM2M2VcdWM2M2ZcdWM2NDJcdWM2NDNcdWM2NDVcdWM2NDZcdWM2NDdcdWM2NDlcdWM2NGFcdWM2NGJcdWM2NGNcdWM2NGRcdWM2NGVcdWM2NGZcdWM2NTJcdWM2NTZc''@;'; + put 'put ''dWM2NTdcdWM2NThcdWM2NTlcdWM2NWFcdWM2NWJcdWM2NWVcdWM2NWZcdWM2NjFcdWM2NjJcdWM2NjNcdWM2NjRcdWM2NjVcdWM2NjZcdWM2NjdcdWM2NjhcdWM2NjlcdWM2NmFcdWM2NmJcdWM2NmRcdWM2NmVcdWM2NzBcdWM2NzJcdWM2NzNcdWM2NzRcdWM2NzVcdWM2NzZcdWM2NzdcdWM2''@;'; + put 'put ''N2FcdWM2N2JcdWM2N2RcdWM2N2VcdWM2N2ZcdWM2ODFcdWM2ODJcdWM2ODNcdWM2ODRcdWM2ODVcdWM2ODZcdWM2ODdcdWM2OGFcdWM2OGNcdWM2OGVcdWM2OGZcdWM2OTBcdWM2OTFcdWM2OTJcdWM2OTNcdWM2OTZcdWM2OTdcdWM2OTlcdWM2OWFcdWM2OWJcdWM2OWRcdWM2OWVcdWM2OWZc''@;'; + put 'put ''dWM2YTBcdWM2YTFcdWM2YTJcdWM2YTNcdWM2YTZcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxNThdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE1OF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTU4XVtFXV09NDA0NDgrRSxMWzQwNDQ4K0VdPUJbMTU4XVtFXSk7Zm9yKEJbMTU5XT0iXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjNmE4XHVjNmFhXHVjNmFiXHVjNmFjXHVjNmFkXHVjNmFlXHVjNmFmXHVjNmIyXHVjNmIzXHVjNmI1XHVjNmI2XHVjNmI3XHVjNmJiXHVjNmJjXHVjNmJkXHVjNmJlXHVjNmJmXHVjNmMy''@;'; + put 'put ''XHVjNmM0XHVjNmM2XHVjNmM3XHVjNmM4XHVjNmM5XHVjNmNhXHVjNmNiXHVjNmNlXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjNmNmXHVjNmQxXHVjNmQyXHVjNmQzXHVjNmQ1XHVjNmQ2XHVjNmQ3XHVjNmQ4XHVjNmQ5XHVjNmRhXHVjNmRiXHVjNmRlXHVjNmRmXHVj''@;'; + put 'put ''NmUyXHVjNmUzXHVjNmU0XHVjNmU1XHVjNmU2XHVjNmU3XHVjNmVhXHVjNmViXHVjNmVkXHVjNmVlXHVjNmVmXHVjNmYxXHVjNmYyXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjNmYzXHVjNmY0XHVjNmY1XHVjNmY2XHVjNmY3XHVjNmZhXHVjNmZiXHVjNmZjXHVjNmZl''@;'; + put 'put ''XHVjNmZmXHVjNzAwXHVjNzAxXHVjNzAyXHVjNzAzXHVjNzA2XHVjNzA3XHVjNzA5XHVjNzBhXHVjNzBiXHVjNzBkXHVjNzBlXHVjNzBmXHVjNzEwXHVjNzExXHVjNzEyXHVjNzEzXHVjNzE2XHVjNzE4XHVjNzFhXHVjNzFiXHVjNzFjXHVjNzFkXHVjNzFlXHVjNzFmXHVjNzIyXHVjNzIzXHVj''@;'; + put 'put ''NzI1XHVjNzI2XHVjNzI3XHVjNzI5XHVjNzJhXHVjNzJiXHVjNzJjXHVjNzJkXHVjNzJlXHVjNzJmXHVjNzMyXHVjNzM0XHVjNzM2XHVjNzM4XHVjNzM5XHVjNzNhXHVjNzNiXHVjNzNlXHVjNzNmXHVjNzQxXHVjNzQyXHVjNzQzXHVjNzQ1XHVjNzQ2XHVjNzQ3XHVjNzQ4XHVjNzQ5XHVjNzRi''@;'; + put 'put ''XHVjNzRlXHVjNzUwXHVjNzU5XHVjNzVhXHVjNzViXHVjNzVkXHVjNzVlXHVjNzVmXHVjNzYxXHVjNzYyXHVjNzYzXHVjNzY0XHVjNzY1XHVjNzY2XHVjNzY3XHVjNzY5XHVjNzZhXHVjNzZjXHVjNzZkXHVjNzZlXHVjNzZmXHVjNzcwXHVjNzcxXHVjNzcyXHVjNzczXHVjNzc2XHVjNzc3XHVj''@;'; + put 'put ''Nzc5XHVjNzdhXHVjNzdiXHVjNzdmXHVjNzgwXHVjNzgxXHVjNzgyXHVjNzg2XHVjNzhiXHVjNzhjXHVjNzhkXHVjNzhmXHVjNzkyXHVjNzkzXHVjNzk1XHVjNzk5XHVjNzliXHVjNzljXHVjNzlkXHVjNzllXHVjNzlmXHVjN2EyXHVjN2E3XHVjN2E4XHVjN2E5XHVjN2FhXHVjN2FiXHVjN2Fl''@;'; + put 'put ''XHVjN2FmXHVjN2IxXHVjN2IyXHVjN2IzXHVjN2I1XHVjN2I2XHVjN2I3XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTU5XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxNTldW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE1OV1bRV1dPTQwNzA0K0UsTFs0MDcwNCtFXT1CWzE1OV1bRV0pO2Zv''@;'; + put 'put ''cihCWzE2MF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YzdiOFx1YzdiOVx1YzdiYVx1YzdiYlx1YzdiZVx1YzdjMlx1YzdjM1x1YzdjNFx1YzdjNVx1YzdjNlx1YzdjN1x1YzdjYVx1YzdjYlx1YzdjZFx1YzdjZlx1Yzdk''@;'; + put 'put ''MVx1YzdkMlx1YzdkM1x1YzdkNFx1YzdkNVx1YzdkNlx1YzdkN1x1YzdkOVx1YzdkYVx1YzdkYlx1YzdkY1x1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YzdkZVx1YzdkZlx1YzdlMFx1YzdlMVx1YzdlMlx1YzdlM1x1YzdlNVx1YzdlNlx1YzdlN1x1YzdlOVx1YzdlYVx1''@;'; + put 'put ''YzdlYlx1YzdlZFx1YzdlZVx1YzdlZlx1YzdmMFx1YzdmMVx1YzdmMlx1YzdmM1x1YzdmNFx1YzdmNVx1YzdmNlx1YzdmN1x1YzdmOFx1YzdmOVx1YzdmYVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YzdmYlx1YzdmY1x1YzdmZFx1YzdmZVx1YzdmZlx1YzgwMlx1Yzgw''@;'; + put 'put ''M1x1YzgwNVx1YzgwNlx1YzgwN1x1YzgwOVx1YzgwYlx1YzgwY1x1YzgwZFx1YzgwZVx1YzgwZlx1YzgxMlx1YzgxNFx1YzgxN1x1YzgxOFx1YzgxOVx1YzgxYVx1YzgxYlx1YzgxZVx1YzgxZlx1YzgyMVx1YzgyMlx1YzgyM1x1YzgyNVx1YzgyNlx1YzgyN1x1YzgyOFx1YzgyOVx1YzgyYVx1''@;'; + put 'put ''YzgyYlx1YzgyZVx1YzgzMFx1YzgzMlx1YzgzM1x1YzgzNFx1YzgzNVx1YzgzNlx1YzgzN1x1YzgzOVx1YzgzYVx1YzgzYlx1YzgzZFx1YzgzZVx1YzgzZlx1Yzg0MVx1Yzg0Mlx1Yzg0M1x1Yzg0NFx1Yzg0NVx1Yzg0Nlx1Yzg0N1x1Yzg0YVx1Yzg0Ylx1Yzg0ZVx1Yzg0Zlx1Yzg1MFx1Yzg1''@;'; + put 'put ''MVx1Yzg1Mlx1Yzg1M1x1Yzg1NVx1Yzg1Nlx1Yzg1N1x1Yzg1OFx1Yzg1OVx1Yzg1YVx1Yzg1Ylx1Yzg1Y1x1Yzg1ZFx1Yzg1ZVx1Yzg1Zlx1Yzg2MFx1Yzg2MVx1Yzg2Mlx1Yzg2M1x1Yzg2NFx1Yzg2NVx1Yzg2Nlx1Yzg2N1x1Yzg2OFx1Yzg2OVx1Yzg2YVx1Yzg2Ylx1Yzg2Y1x1Yzg2ZFx1''@;'; + put 'put ''Yzg2ZVx1Yzg2Zlx1Yzg3Mlx1Yzg3M1x1Yzg3NVx1Yzg3Nlx1Yzg3N1x1Yzg3OVx1Yzg3Ylx1Yzg3Y1x1Yzg3ZFx1Yzg3ZVx1Yzg3Zlx1Yzg4Mlx1Yzg4NFx1Yzg4OFx1Yzg4OVx1Yzg4YVx1Yzg4ZVx1Yzg4Zlx1Yzg5MFx1Yzg5MVx1Yzg5Mlx1Yzg5M1x1Yzg5NVx1Yzg5Nlx1Yzg5N1x1Yzg5''@;'; + put 'put ''OFx1Yzg5OVx1Yzg5YVx1Yzg5Ylx1Yzg5Y1x1Yzg5ZVx1YzhhMFx1YzhhMlx1YzhhM1x1YzhhNFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE2MF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTYwXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxNjBdW0VdXT00MDk2MCtFLExbNDA5NjArRV09''@;'; + put 'put ''QlsxNjBdW0VdKTtmb3IoQlsxNjFdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWM4YTVcdWM4YTZcdWM4YTdcdWM4YTlcdWM4YWFcdWM4YWJcdWM4YWNcdWM4YWRcdWM4YWVcdWM4YWZcdWM4YjBcdWM4YjFcdWM4YjJcdWM4''@;'; + put 'put ''YjNcdWM4YjRcdWM4YjVcdWM4YjZcdWM4YjdcdWM4YjhcdWM4YjlcdWM4YmFcdWM4YmJcdWM4YmVcdWM4YmZcdWM4YzBcdWM4YzFcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWM4YzJcdWM4YzNcdWM4YzVcdWM4YzZcdWM4YzdcdWM4YzlcdWM4Y2FcdWM4Y2JcdWM4Y2Rc''@;'; + put 'put ''dWM4Y2VcdWM4Y2ZcdWM4ZDBcdWM4ZDFcdWM4ZDJcdWM4ZDNcdWM4ZDZcdWM4ZDhcdWM4ZGFcdWM4ZGJcdWM4ZGNcdWM4ZGRcdWM4ZGVcdWM4ZGZcdWM4ZTJcdWM4ZTNcdWM4ZTVcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWM4ZTZcdWM4ZTdcdWM4ZThcdWM4ZTlcdWM4''@;'; + put 'put ''ZWFcdWM4ZWJcdWM4ZWNcdWM4ZWRcdWM4ZWVcdWM4ZWZcdWM4ZjBcdWM4ZjFcdWM4ZjJcdWM4ZjNcdWM4ZjRcdWM4ZjZcdWM4ZjdcdWM4ZjhcdWM4ZjlcdWM4ZmFcdWM4ZmJcdWM4ZmVcdWM4ZmZcdWM5MDFcdWM5MDJcdWM5MDNcdWM5MDdcdWM5MDhcdWM5MDlcdWM5MGFcdWM5MGJcdWM5MGVc''@;'; + put 'put ''dTMwMDBcdTMwMDFcdTMwMDJceGI3XHUyMDI1XHUyMDI2XHhhOFx1MzAwM1x4YWRcdTIwMTVcdTIyMjVcdWZmM2NcdTIyM2NcdTIwMThcdTIwMTlcdTIwMWNcdTIwMWRcdTMwMTRcdTMwMTVcdTMwMDhcdTMwMDlcdTMwMGFcdTMwMGJcdTMwMGNcdTMwMGRcdTMwMGVcdTMwMGZcdTMwMTBcdTMw''@;'; + put 'put ''MTFceGIxXHhkN1x4ZjdcdTIyNjBcdTIyNjRcdTIyNjVcdTIyMWVcdTIyMzRceGIwXHUyMDMyXHUyMDMzXHUyMTAzXHUyMTJiXHVmZmUwXHVmZmUxXHVmZmU1XHUyNjQyXHUyNjQwXHUyMjIwXHUyMmE1XHUyMzEyXHUyMjAyXHUyMjA3XHUyMjYxXHUyMjUyXHhhN1x1MjAzYlx1MjYwNlx1MjYw''@;'; + put 'put ''NVx1MjVjYlx1MjVjZlx1MjVjZVx1MjVjN1x1MjVjNlx1MjVhMVx1MjVhMFx1MjViM1x1MjViMlx1MjViZFx1MjViY1x1MjE5Mlx1MjE5MFx1MjE5MVx1MjE5M1x1MjE5NFx1MzAxM1x1MjI2YVx1MjI2Ylx1MjIxYVx1MjIzZFx1MjIxZFx1MjIzNVx1MjIyYlx1MjIyY1x1MjIwOFx1MjIwYlx1''@;'; + put 'put ''MjI4Nlx1MjI4N1x1MjI4Mlx1MjI4M1x1MjIyYVx1MjIyOVx1MjIyN1x1MjIyOFx1ZmZlMlx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE2MV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTYxXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxNjFdW0VdXT00MTIxNitFLExbNDEyMTYrRV09Qlsx''@;'; + put 'put ''NjFdW0VdKTtmb3IoQlsxNjJdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWM5MTBcdWM5MTJcdWM5MTNcdWM5MTRcdWM5MTVcdWM5MTZcdWM5MTdcdWM5MTlcdWM5MWFcdWM5MWJcdWM5MWNcdWM5MWRcdWM5MWVcdWM5MWZc''@;'; + put 'put ''dWM5MjBcdWM5MjFcdWM5MjJcdWM5MjNcdWM5MjRcdWM5MjVcdWM5MjZcdWM5MjdcdWM5MjhcdWM5MjlcdWM5MmFcdWM5MmJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWM5MmRcdWM5MmVcdWM5MmZcdWM5MzBcdWM5MzFcdWM5MzJcdWM5MzNcdWM5MzVcdWM5MzZcdWM5''@;'; + put 'put ''MzdcdWM5MzhcdWM5MzlcdWM5M2FcdWM5M2JcdWM5M2NcdWM5M2RcdWM5M2VcdWM5M2ZcdWM5NDBcdWM5NDFcdWM5NDJcdWM5NDNcdWM5NDRcdWM5NDVcdWM5NDZcdWM5NDdcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWM5NDhcdWM5NDlcdWM5NGFcdWM5NGJcdWM5NGNc''@;'; + put 'put ''dWM5NGRcdWM5NGVcdWM5NGZcdWM5NTJcdWM5NTNcdWM5NTVcdWM5NTZcdWM5NTdcdWM5NTlcdWM5NWFcdWM5NWJcdWM5NWNcdWM5NWRcdWM5NWVcdWM5NWZcdWM5NjJcdWM5NjRcdWM5NjVcdWM5NjZcdWM5NjdcdWM5NjhcdWM5NjlcdWM5NmFcdWM5NmJcdWM5NmRcdWM5NmVcdWM5NmZcdTIx''@;'; + put 'put ''ZDJcdTIxZDRcdTIyMDBcdTIyMDNceGI0XHVmZjVlXHUwMmM3XHUwMmQ4XHUwMmRkXHUwMmRhXHUwMmQ5XHhiOFx1MDJkYlx4YTFceGJmXHUwMmQwXHUyMjJlXHUyMjExXHUyMjBmXHhhNFx1MjEwOVx1MjAzMFx1MjVjMVx1MjVjMFx1MjViN1x1MjViNlx1MjY2NFx1MjY2MFx1MjY2MVx1MjY2''@;'; + put 'put ''NVx1MjY2N1x1MjY2M1x1MjI5OVx1MjVjOFx1MjVhM1x1MjVkMFx1MjVkMVx1MjU5Mlx1MjVhNFx1MjVhNVx1MjVhOFx1MjVhN1x1MjVhNlx1MjVhOVx1MjY2OFx1MjYwZlx1MjYwZVx1MjYxY1x1MjYxZVx4YjZcdTIwMjBcdTIwMjFcdTIxOTVcdTIxOTdcdTIxOTlcdTIxOTZcdTIxOThcdTI2''@;'; + put 'put ''NmRcdTI2NjlcdTI2NmFcdTI2NmNcdTMyN2ZcdTMyMWNcdTIxMTZcdTMzYzdcdTIxMjJcdTMzYzJcdTMzZDhcdTIxMjFcdTIwYWNceGFlXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTYyXS5sZW5ndGg7KytFKTY1NTMzIT09QlsxNjJdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE2Ml1bRV1dPTQxNDcyK0UsTFs0MTQ3MitFXT1CWzE2''@;'; + put 'put ''Ml1bRV0pO2ZvcihCWzE2M109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1Yzk3MVx1Yzk3Mlx1Yzk3M1x1Yzk3NVx1Yzk3Nlx1Yzk3N1x1Yzk3OFx1Yzk3OVx1Yzk3YVx1Yzk3Ylx1Yzk3ZFx1Yzk3ZVx1Yzk3Zlx1Yzk4MFx1''@;'; + put 'put ''Yzk4MVx1Yzk4Mlx1Yzk4M1x1Yzk4NFx1Yzk4NVx1Yzk4Nlx1Yzk4N1x1Yzk4YVx1Yzk4Ylx1Yzk4ZFx1Yzk4ZVx1Yzk4Zlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1Yzk5MVx1Yzk5Mlx1Yzk5M1x1Yzk5NFx1Yzk5NVx1Yzk5Nlx1Yzk5N1x1Yzk5YVx1Yzk5Y1x1Yzk5''@;'; + put 'put ''ZVx1Yzk5Zlx1YzlhMFx1YzlhMVx1YzlhMlx1YzlhM1x1YzlhNFx1YzlhNVx1YzlhNlx1YzlhN1x1YzlhOFx1YzlhOVx1YzlhYVx1YzlhYlx1YzlhY1x1YzlhZFx1YzlhZVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YzlhZlx1YzliMFx1YzliMVx1YzliMlx1YzliM1x1''@;'; + put 'put ''YzliNFx1YzliNVx1YzliNlx1YzliN1x1YzliOFx1YzliOVx1YzliYVx1YzliYlx1YzliY1x1YzliZFx1YzliZVx1YzliZlx1YzljMlx1YzljM1x1YzljNVx1YzljNlx1YzljOVx1YzljYlx1YzljY1x1YzljZFx1YzljZVx1YzljZlx1YzlkMlx1YzlkNFx1YzlkN1x1YzlkOFx1YzlkYlx1ZmYw''@;'; + put 'put ''MVx1ZmYwMlx1ZmYwM1x1ZmYwNFx1ZmYwNVx1ZmYwNlx1ZmYwN1x1ZmYwOFx1ZmYwOVx1ZmYwYVx1ZmYwYlx1ZmYwY1x1ZmYwZFx1ZmYwZVx1ZmYwZlx1ZmYxMFx1ZmYxMVx1ZmYxMlx1ZmYxM1x1ZmYxNFx1ZmYxNVx1ZmYxNlx1ZmYxN1x1ZmYxOFx1ZmYxOVx1ZmYxYVx1ZmYxYlx1ZmYxY1x1''@;'; + put 'put ''ZmYxZFx1ZmYxZVx1ZmYxZlx1ZmYyMFx1ZmYyMVx1ZmYyMlx1ZmYyM1x1ZmYyNFx1ZmYyNVx1ZmYyNlx1ZmYyN1x1ZmYyOFx1ZmYyOVx1ZmYyYVx1ZmYyYlx1ZmYyY1x1ZmYyZFx1ZmYyZVx1ZmYyZlx1ZmYzMFx1ZmYzMVx1ZmYzMlx1ZmYzM1x1ZmYzNFx1ZmYzNVx1ZmYzNlx1ZmYzN1x1ZmYz''@;'; + put 'put ''OFx1ZmYzOVx1ZmYzYVx1ZmYzYlx1ZmZlNlx1ZmYzZFx1ZmYzZVx1ZmYzZlx1ZmY0MFx1ZmY0MVx1ZmY0Mlx1ZmY0M1x1ZmY0NFx1ZmY0NVx1ZmY0Nlx1ZmY0N1x1ZmY0OFx1ZmY0OVx1ZmY0YVx1ZmY0Ylx1ZmY0Y1x1ZmY0ZFx1ZmY0ZVx1ZmY0Zlx1ZmY1MFx1ZmY1MVx1ZmY1Mlx1ZmY1M1x1''@;'; + put 'put ''ZmY1NFx1ZmY1NVx1ZmY1Nlx1ZmY1N1x1ZmY1OFx1ZmY1OVx1ZmY1YVx1ZmY1Ylx1ZmY1Y1x1ZmY1ZFx1ZmZlM1x1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE2M10ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTYzXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxNjNdW0VdXT00MTcyOCtFLExb''@;'; + put 'put ''NDE3MjgrRV09QlsxNjNdW0VdKTtmb3IoQlsxNjRdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWM5ZGVcdWM5ZGZcdWM5ZTFcdWM5ZTNcdWM5ZTVcdWM5ZTZcdWM5ZThcdWM5ZTlcdWM5ZWFcdWM5ZWJcdWM5ZWVcdWM5ZjJc''@;'; + put 'put ''dWM5ZjNcdWM5ZjRcdWM5ZjVcdWM5ZjZcdWM5ZjdcdWM5ZmFcdWM5ZmJcdWM5ZmRcdWM5ZmVcdWM5ZmZcdWNhMDFcdWNhMDJcdWNhMDNcdWNhMDRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWNhMDVcdWNhMDZcdWNhMDdcdWNhMGFcdWNhMGVcdWNhMGZcdWNhMTBcdWNh''@;'; + put 'put ''MTFcdWNhMTJcdWNhMTNcdWNhMTVcdWNhMTZcdWNhMTdcdWNhMTlcdWNhMWFcdWNhMWJcdWNhMWNcdWNhMWRcdWNhMWVcdWNhMWZcdWNhMjBcdWNhMjFcdWNhMjJcdWNhMjNcdWNhMjRcdWNhMjVcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWNhMjZcdWNhMjdcdWNhMjhc''@;'; + put 'put ''dWNhMmFcdWNhMmJcdWNhMmNcdWNhMmRcdWNhMmVcdWNhMmZcdWNhMzBcdWNhMzFcdWNhMzJcdWNhMzNcdWNhMzRcdWNhMzVcdWNhMzZcdWNhMzdcdWNhMzhcdWNhMzlcdWNhM2FcdWNhM2JcdWNhM2NcdWNhM2RcdWNhM2VcdWNhM2ZcdWNhNDBcdWNhNDFcdWNhNDJcdWNhNDNcdWNhNDRcdWNh''@;'; + put 'put ''NDVcdWNhNDZcdTMxMzFcdTMxMzJcdTMxMzNcdTMxMzRcdTMxMzVcdTMxMzZcdTMxMzdcdTMxMzhcdTMxMzlcdTMxM2FcdTMxM2JcdTMxM2NcdTMxM2RcdTMxM2VcdTMxM2ZcdTMxNDBcdTMxNDFcdTMxNDJcdTMxNDNcdTMxNDRcdTMxNDVcdTMxNDZcdTMxNDdcdTMxNDhcdTMxNDlcdTMxNGFc''@;'; + put 'put ''dTMxNGJcdTMxNGNcdTMxNGRcdTMxNGVcdTMxNGZcdTMxNTBcdTMxNTFcdTMxNTJcdTMxNTNcdTMxNTRcdTMxNTVcdTMxNTZcdTMxNTdcdTMxNThcdTMxNTlcdTMxNWFcdTMxNWJcdTMxNWNcdTMxNWRcdTMxNWVcdTMxNWZcdTMxNjBcdTMxNjFcdTMxNjJcdTMxNjNcdTMxNjRcdTMxNjVcdTMx''@;'; + put 'put ''NjZcdTMxNjdcdTMxNjhcdTMxNjlcdTMxNmFcdTMxNmJcdTMxNmNcdTMxNmRcdTMxNmVcdTMxNmZcdTMxNzBcdTMxNzFcdTMxNzJcdTMxNzNcdTMxNzRcdTMxNzVcdTMxNzZcdTMxNzdcdTMxNzhcdTMxNzlcdTMxN2FcdTMxN2JcdTMxN2NcdTMxN2RcdTMxN2VcdTMxN2ZcdTMxODBcdTMxODFc''@;'; + put 'put ''dTMxODJcdTMxODNcdTMxODRcdTMxODVcdTMxODZcdTMxODdcdTMxODhcdTMxODlcdTMxOGFcdTMxOGJcdTMxOGNcdTMxOGRcdTMxOGVcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxNjRdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE2NF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTY0XVtF''@;'; + put 'put ''XV09NDE5ODQrRSxMWzQxOTg0K0VdPUJbMTY0XVtFXSk7Zm9yKEJbMTY1XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjYTQ3XHVjYTQ4XHVjYTQ5XHVjYTRhXHVjYTRiXHVjYTRlXHVjYTRmXHVjYTUxXHVjYTUyXHVjYTUz''@;'; + put 'put ''XHVjYTU1XHVjYTU2XHVjYTU3XHVjYTU4XHVjYTU5XHVjYTVhXHVjYTViXHVjYTVlXHVjYTYyXHVjYTYzXHVjYTY0XHVjYTY1XHVjYTY2XHVjYTY3XHVjYTY5XHVjYTZhXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjYTZiXHVjYTZjXHVjYTZkXHVjYTZlXHVjYTZmXHVj''@;'; + put 'put ''YTcwXHVjYTcxXHVjYTcyXHVjYTczXHVjYTc0XHVjYTc1XHVjYTc2XHVjYTc3XHVjYTc4XHVjYTc5XHVjYTdhXHVjYTdiXHVjYTdjXHVjYTdlXHVjYTdmXHVjYTgwXHVjYTgxXHVjYTgyXHVjYTgzXHVjYTg1XHVjYTg2XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjYTg3''@;'; + put 'put ''XHVjYTg4XHVjYTg5XHVjYThhXHVjYThiXHVjYThjXHVjYThkXHVjYThlXHVjYThmXHVjYTkwXHVjYTkxXHVjYTkyXHVjYTkzXHVjYTk0XHVjYTk1XHVjYTk2XHVjYTk3XHVjYTk5XHVjYTlhXHVjYTliXHVjYTljXHVjYTlkXHVjYTllXHVjYTlmXHVjYWEwXHVjYWExXHVjYWEyXHVjYWEzXHVj''@;'; + put 'put ''YWE0XHVjYWE1XHVjYWE2XHVjYWE3XHUyMTcwXHUyMTcxXHUyMTcyXHUyMTczXHUyMTc0XHUyMTc1XHUyMTc2XHUyMTc3XHUyMTc4XHUyMTc5XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUyMTYwXHUyMTYxXHUyMTYyXHUyMTYzXHUyMTY0XHUyMTY1XHUyMTY2XHUyMTY3XHUyMTY4''@;'; + put 'put ''XHUyMTY5XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUwMzkxXHUwMzkyXHUwMzkzXHUwMzk0XHUwMzk1XHUwMzk2XHUwMzk3XHUwMzk4XHUwMzk5XHUwMzlhXHUwMzliXHUwMzljXHUwMzlkXHUwMzllXHUwMzlmXHUwM2EwXHUwM2ExXHUwM2EzXHUwM2E0XHUw''@;'; + put 'put ''M2E1XHUwM2E2XHUwM2E3XHUwM2E4XHUwM2E5XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUwM2IxXHUwM2IyXHUwM2IzXHUwM2I0XHUwM2I1XHUwM2I2XHUwM2I3XHUwM2I4XHUwM2I5XHUwM2JhXHUwM2JiXHUwM2JjXHUwM2JkXHUwM2JlXHUwM2Jm''@;'; + put 'put ''XHUwM2MwXHUwM2MxXHUwM2MzXHUwM2M0XHUwM2M1XHUwM2M2XHUwM2M3XHUwM2M4XHUwM2M5XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTY1XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxNjVdW0VdLmNoYXJDb2RlQXQoMCkm''@;'; + put 'put ''JihtZVtCWzE2NV1bRV1dPTQyMjQwK0UsTFs0MjI0MCtFXT1CWzE2NV1bRV0pO2ZvcihCWzE2Nl09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1Y2FhOFx1Y2FhOVx1Y2FhYVx1Y2FhYlx1Y2FhY1x1Y2FhZFx1Y2FhZVx1Y2Fh''@;'; + put 'put ''Zlx1Y2FiMFx1Y2FiMVx1Y2FiMlx1Y2FiM1x1Y2FiNFx1Y2FiNVx1Y2FiNlx1Y2FiN1x1Y2FiOFx1Y2FiOVx1Y2FiYVx1Y2FiYlx1Y2FiZVx1Y2FiZlx1Y2FjMVx1Y2FjMlx1Y2FjM1x1Y2FjNVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1Y2FjNlx1Y2FjN1x1Y2FjOFx1''@;'; + put 'put ''Y2FjOVx1Y2FjYVx1Y2FjYlx1Y2FjZVx1Y2FkMFx1Y2FkMlx1Y2FkNFx1Y2FkNVx1Y2FkNlx1Y2FkN1x1Y2FkYVx1Y2FkYlx1Y2FkY1x1Y2FkZFx1Y2FkZVx1Y2FkZlx1Y2FlMVx1Y2FlMlx1Y2FlM1x1Y2FlNFx1Y2FlNVx1Y2FlNlx1Y2FlN1x1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1Y2FlOFx1Y2FlOVx1Y2FlYVx1Y2FlYlx1Y2FlZFx1Y2FlZVx1Y2FlZlx1Y2FmMFx1Y2FmMVx1Y2FmMlx1Y2FmM1x1Y2FmNVx1Y2FmNlx1Y2FmN1x1Y2FmOFx1Y2FmOVx1Y2FmYVx1Y2FmYlx1Y2FmY1x1Y2FmZFx1Y2FmZVx1Y2FmZlx1Y2IwMFx1Y2IwMVx1Y2IwMlx1Y2IwM1x1''@;'; + put 'put ''Y2IwNFx1Y2IwNVx1Y2IwNlx1Y2IwN1x1Y2IwOVx1Y2IwYVx1MjUwMFx1MjUwMlx1MjUwY1x1MjUxMFx1MjUxOFx1MjUxNFx1MjUxY1x1MjUyY1x1MjUyNFx1MjUzNFx1MjUzY1x1MjUwMVx1MjUwM1x1MjUwZlx1MjUxM1x1MjUxYlx1MjUxN1x1MjUyM1x1MjUzM1x1MjUyYlx1MjUzYlx1MjU0''@;'; + put 'put ''Ylx1MjUyMFx1MjUyZlx1MjUyOFx1MjUzN1x1MjUzZlx1MjUxZFx1MjUzMFx1MjUyNVx1MjUzOFx1MjU0Mlx1MjUxMlx1MjUxMVx1MjUxYVx1MjUxOVx1MjUxNlx1MjUxNVx1MjUwZVx1MjUwZFx1MjUxZVx1MjUxZlx1MjUyMVx1MjUyMlx1MjUyNlx1MjUyN1x1MjUyOVx1MjUyYVx1MjUyZFx1''@;'; + put 'put ''MjUyZVx1MjUzMVx1MjUzMlx1MjUzNVx1MjUzNlx1MjUzOVx1MjUzYVx1MjUzZFx1MjUzZVx1MjU0MFx1MjU0MVx1MjU0M1x1MjU0NFx1MjU0NVx1MjU0Nlx1MjU0N1x1MjU0OFx1MjU0OVx1MjU0YVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE2Nl0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTY2XVtFXS5j''@;'; + put 'put ''aGFyQ29kZUF0KDApJiYobWVbQlsxNjZdW0VdXT00MjQ5NitFLExbNDI0OTYrRV09QlsxNjZdW0VdKTtmb3IoQlsxNjddPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWNiMGJcdWNiMGNcdWNiMGRcdWNiMGVcdWNiMGZcdWNi''@;'; + put 'put ''MTFcdWNiMTJcdWNiMTNcdWNiMTVcdWNiMTZcdWNiMTdcdWNiMTlcdWNiMWFcdWNiMWJcdWNiMWNcdWNiMWRcdWNiMWVcdWNiMWZcdWNiMjJcdWNiMjNcdWNiMjRcdWNiMjVcdWNiMjZcdWNiMjdcdWNiMjhcdWNiMjlcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWNiMmFc''@;'; + put 'put ''dWNiMmJcdWNiMmNcdWNiMmRcdWNiMmVcdWNiMmZcdWNiMzBcdWNiMzFcdWNiMzJcdWNiMzNcdWNiMzRcdWNiMzVcdWNiMzZcdWNiMzdcdWNiMzhcdWNiMzlcdWNiM2FcdWNiM2JcdWNiM2NcdWNiM2RcdWNiM2VcdWNiM2ZcdWNiNDBcdWNiNDJcdWNiNDNcdWNiNDRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWNiNDVcdWNiNDZcdWNiNDdcdWNiNGFcdWNiNGJcdWNiNGRcdWNiNGVcdWNiNGZcdWNiNTFcdWNiNTJcdWNiNTNcdWNiNTRcdWNiNTVcdWNiNTZcdWNiNTdcdWNiNWFcdWNiNWJcdWNiNWNcdWNiNWVcdWNiNWZcdWNiNjBcdWNiNjFcdWNiNjJcdWNiNjNc''@;'; + put 'put ''dWNiNjVcdWNiNjZcdWNiNjdcdWNiNjhcdWNiNjlcdWNiNmFcdWNiNmJcdWNiNmNcdTMzOTVcdTMzOTZcdTMzOTdcdTIxMTNcdTMzOThcdTMzYzRcdTMzYTNcdTMzYTRcdTMzYTVcdTMzYTZcdTMzOTlcdTMzOWFcdTMzOWJcdTMzOWNcdTMzOWRcdTMzOWVcdTMzOWZcdTMzYTBcdTMzYTFcdTMz''@;'; + put 'put ''YTJcdTMzY2FcdTMzOGRcdTMzOGVcdTMzOGZcdTMzY2ZcdTMzODhcdTMzODlcdTMzYzhcdTMzYTdcdTMzYThcdTMzYjBcdTMzYjFcdTMzYjJcdTMzYjNcdTMzYjRcdTMzYjVcdTMzYjZcdTMzYjdcdTMzYjhcdTMzYjlcdTMzODBcdTMzODFcdTMzODJcdTMzODNcdTMzODRcdTMzYmFcdTMzYmJc''@;'; + put 'put ''dTMzYmNcdTMzYmRcdTMzYmVcdTMzYmZcdTMzOTBcdTMzOTFcdTMzOTJcdTMzOTNcdTMzOTRcdTIxMjZcdTMzYzBcdTMzYzFcdTMzOGFcdTMzOGJcdTMzOGNcdTMzZDZcdTMzYzVcdTMzYWRcdTMzYWVcdTMzYWZcdTMzZGJcdTMzYTlcdTMzYWFcdTMzYWJcdTMzYWNcdTMzZGRcdTMzZDBcdTMz''@;'; + put 'put ''ZDNcdTMzYzNcdTMzYzlcdTMzZGNcdTMzYzZcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxNjddLmxlbmd0aDsrK0UpNjU1MzMh''@;'; + put 'put ''PT1CWzE2N11bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTY3XVtFXV09NDI3NTIrRSxMWzQyNzUyK0VdPUJbMTY3XVtFXSk7Zm9yKEJbMTY4XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjYjZkXHVjYjZlXHVjYjZmXHVj''@;'; + put 'put ''YjcwXHVjYjcxXHVjYjcyXHVjYjczXHVjYjc0XHVjYjc1XHVjYjc2XHVjYjc3XHVjYjdhXHVjYjdiXHVjYjdjXHVjYjdkXHVjYjdlXHVjYjdmXHVjYjgwXHVjYjgxXHVjYjgyXHVjYjgzXHVjYjg0XHVjYjg1XHVjYjg2XHVjYjg3XHVjYjg4XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVjYjg5XHVjYjhhXHVjYjhiXHVjYjhjXHVjYjhkXHVjYjhlXHVjYjhmXHVjYjkwXHVjYjkxXHVjYjkyXHVjYjkzXHVjYjk0XHVjYjk1XHVjYjk2XHVjYjk3XHVjYjk4XHVjYjk5XHVjYjlhXHVjYjliXHVjYjlkXHVjYjllXHVjYjlmXHVjYmEwXHVjYmExXHVjYmEyXHVjYmEzXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjYmE0XHVjYmE1XHVjYmE2XHVjYmE3XHVjYmE4XHVjYmE5XHVjYmFhXHVjYmFiXHVjYmFjXHVjYmFkXHVjYmFlXHVjYmFmXHVjYmIwXHVjYmIxXHVjYmIyXHVjYmIzXHVjYmI0XHVjYmI1XHVjYmI2XHVjYmI3XHVjYmI5XHVjYmJh''@;'; + put 'put ''XHVjYmJiXHVjYmJjXHVjYmJkXHVjYmJlXHVjYmJmXHVjYmMwXHVjYmMxXHVjYmMyXHVjYmMzXHVjYmM0XHhjNlx4ZDBceGFhXHUwMTI2XHVmZmZkXHUwMTMyXHVmZmZkXHUwMTNmXHUwMTQxXHhkOFx1MDE1Mlx4YmFceGRlXHUwMTY2XHUwMTRhXHVmZmZkXHUzMjYwXHUzMjYxXHUzMjYyXHUz''@;'; + put 'put ''MjYzXHUzMjY0XHUzMjY1XHUzMjY2XHUzMjY3XHUzMjY4XHUzMjY5XHUzMjZhXHUzMjZiXHUzMjZjXHUzMjZkXHUzMjZlXHUzMjZmXHUzMjcwXHUzMjcxXHUzMjcyXHUzMjczXHUzMjc0XHUzMjc1XHUzMjc2XHUzMjc3XHUzMjc4XHUzMjc5XHUzMjdhXHUzMjdiXHUyNGQwXHUyNGQxXHUyNGQy''@;'; + put 'put ''XHUyNGQzXHUyNGQ0XHUyNGQ1XHUyNGQ2XHUyNGQ3XHUyNGQ4XHUyNGQ5XHUyNGRhXHUyNGRiXHUyNGRjXHUyNGRkXHUyNGRlXHUyNGRmXHUyNGUwXHUyNGUxXHUyNGUyXHUyNGUzXHUyNGU0XHUyNGU1XHUyNGU2XHUyNGU3XHUyNGU4XHUyNGU5XHUyNDYwXHUyNDYxXHUyNDYyXHUyNDYzXHUy''@;'; + put 'put ''NDY0XHUyNDY1XHUyNDY2XHUyNDY3XHUyNDY4XHUyNDY5XHUyNDZhXHUyNDZiXHUyNDZjXHUyNDZkXHUyNDZlXHhiZFx1MjE1M1x1MjE1NFx4YmNceGJlXHUyMTViXHUyMTVjXHUyMTVkXHUyMTVlXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTY4XS5sZW5ndGg7KytFKTY1NTMzIT09Qlsx''@;'; + put 'put ''NjhdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE2OF1bRV1dPTQzMDA4K0UsTFs0MzAwOCtFXT1CWzE2OF1bRV0pO2ZvcihCWzE2OV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1Y2JjNVx1Y2JjNlx1Y2JjN1x1Y2JjOFx1''@;'; + put 'put ''Y2JjOVx1Y2JjYVx1Y2JjYlx1Y2JjY1x1Y2JjZFx1Y2JjZVx1Y2JjZlx1Y2JkMFx1Y2JkMVx1Y2JkMlx1Y2JkM1x1Y2JkNVx1Y2JkNlx1Y2JkN1x1Y2JkOFx1Y2JkOVx1Y2JkYVx1Y2JkYlx1Y2JkY1x1Y2JkZFx1Y2JkZVx1Y2JkZlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1Y2JlMFx1Y2JlMVx1Y2JlMlx1Y2JlM1x1Y2JlNVx1Y2JlNlx1Y2JlOFx1Y2JlYVx1Y2JlYlx1Y2JlY1x1Y2JlZFx1Y2JlZVx1Y2JlZlx1Y2JmMFx1Y2JmMVx1Y2JmMlx1Y2JmM1x1Y2JmNFx1Y2JmNVx1Y2JmNlx1Y2JmN1x1Y2JmOFx1Y2JmOVx1Y2JmYVx1Y2JmYlx1Y2JmY1x1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1Y2JmZFx1Y2JmZVx1Y2JmZlx1Y2MwMFx1Y2MwMVx1Y2MwMlx1Y2MwM1x1Y2MwNFx1Y2MwNVx1Y2MwNlx1Y2MwN1x1Y2MwOFx1Y2MwOVx1Y2MwYVx1Y2MwYlx1Y2MwZVx1Y2MwZlx1Y2MxMVx1Y2MxMlx1Y2MxM1x1Y2MxNVx1Y2MxNlx1Y2Mx''@;'; + put 'put ''N1x1Y2MxOFx1Y2MxOVx1Y2MxYVx1Y2MxYlx1Y2MxZVx1Y2MxZlx1Y2MyMFx1Y2MyM1x1Y2MyNFx4ZTZcdTAxMTFceGYwXHUwMTI3XHUwMTMxXHUwMTMzXHUwMTM4XHUwMTQwXHUwMTQyXHhmOFx1MDE1M1x4ZGZceGZlXHUwMTY3XHUwMTRiXHUwMTQ5XHUzMjAwXHUzMjAxXHUzMjAyXHUzMjAz''@;'; + put 'put ''XHUzMjA0XHUzMjA1XHUzMjA2XHUzMjA3XHUzMjA4XHUzMjA5XHUzMjBhXHUzMjBiXHUzMjBjXHUzMjBkXHUzMjBlXHUzMjBmXHUzMjEwXHUzMjExXHUzMjEyXHUzMjEzXHUzMjE0XHUzMjE1XHUzMjE2XHUzMjE3XHUzMjE4XHUzMjE5XHUzMjFhXHUzMjFiXHUyNDljXHUyNDlkXHUyNDllXHUy''@;'; + put 'put ''NDlmXHUyNGEwXHUyNGExXHUyNGEyXHUyNGEzXHUyNGE0XHUyNGE1XHUyNGE2XHUyNGE3XHUyNGE4XHUyNGE5XHUyNGFhXHUyNGFiXHUyNGFjXHUyNGFkXHUyNGFlXHUyNGFmXHUyNGIwXHUyNGIxXHUyNGIyXHUyNGIzXHUyNGI0XHUyNGI1XHUyNDc0XHUyNDc1XHUyNDc2XHUyNDc3XHUyNDc4''@;'; + put 'put ''XHUyNDc5XHUyNDdhXHUyNDdiXHUyNDdjXHUyNDdkXHUyNDdlXHUyNDdmXHUyNDgwXHUyNDgxXHUyNDgyXHhiOVx4YjJceGIzXHUyMDc0XHUyMDdmXHUyMDgxXHUyMDgyXHUyMDgzXHUyMDg0XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTY5XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxNjld''@;'; + put 'put ''W0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE2OV1bRV1dPTQzMjY0K0UsTFs0MzI2NCtFXT1CWzE2OV1bRV0pO2ZvcihCWzE3MF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1Y2MyNVx1Y2MyNlx1Y2MyYVx1Y2MyYlx1Y2My''@;'; + put 'put ''ZFx1Y2MyZlx1Y2MzMVx1Y2MzMlx1Y2MzM1x1Y2MzNFx1Y2MzNVx1Y2MzNlx1Y2MzN1x1Y2MzYVx1Y2MzZlx1Y2M0MFx1Y2M0MVx1Y2M0Mlx1Y2M0M1x1Y2M0Nlx1Y2M0N1x1Y2M0OVx1Y2M0YVx1Y2M0Ylx1Y2M0ZFx1Y2M0ZVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''Y2M0Zlx1Y2M1MFx1Y2M1MVx1Y2M1Mlx1Y2M1M1x1Y2M1Nlx1Y2M1YVx1Y2M1Ylx1Y2M1Y1x1Y2M1ZFx1Y2M1ZVx1Y2M1Zlx1Y2M2MVx1Y2M2Mlx1Y2M2M1x1Y2M2NVx1Y2M2N1x1Y2M2OVx1Y2M2YVx1Y2M2Ylx1Y2M2Y1x1Y2M2ZFx1Y2M2ZVx1Y2M2Zlx1Y2M3MVx1Y2M3Mlx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1Y2M3M1x1Y2M3NFx1Y2M3Nlx1Y2M3N1x1Y2M3OFx1Y2M3OVx1Y2M3YVx1Y2M3Ylx1Y2M3Y1x1Y2M3ZFx1Y2M3ZVx1Y2M3Zlx1Y2M4MFx1Y2M4MVx1Y2M4Mlx1Y2M4M1x1Y2M4NFx1Y2M4NVx1Y2M4Nlx1Y2M4N1x1Y2M4OFx1Y2M4OVx1Y2M4YVx1''@;'; + put 'put ''Y2M4Ylx1Y2M4Y1x1Y2M4ZFx1Y2M4ZVx1Y2M4Zlx1Y2M5MFx1Y2M5MVx1Y2M5Mlx1Y2M5M1x1MzA0MVx1MzA0Mlx1MzA0M1x1MzA0NFx1MzA0NVx1MzA0Nlx1MzA0N1x1MzA0OFx1MzA0OVx1MzA0YVx1MzA0Ylx1MzA0Y1x1MzA0ZFx1MzA0ZVx1MzA0Zlx1MzA1MFx1MzA1MVx1MzA1Mlx1MzA1''@;'; + put 'put ''M1x1MzA1NFx1MzA1NVx1MzA1Nlx1MzA1N1x1MzA1OFx1MzA1OVx1MzA1YVx1MzA1Ylx1MzA1Y1x1MzA1ZFx1MzA1ZVx1MzA1Zlx1MzA2MFx1MzA2MVx1MzA2Mlx1MzA2M1x1MzA2NFx1MzA2NVx1MzA2Nlx1MzA2N1x1MzA2OFx1MzA2OVx1MzA2YVx1MzA2Ylx1MzA2Y1x1MzA2ZFx1MzA2ZVx1''@;'; + put 'put ''MzA2Zlx1MzA3MFx1MzA3MVx1MzA3Mlx1MzA3M1x1MzA3NFx1MzA3NVx1MzA3Nlx1MzA3N1x1MzA3OFx1MzA3OVx1MzA3YVx1MzA3Ylx1MzA3Y1x1MzA3ZFx1MzA3ZVx1MzA3Zlx1MzA4MFx1MzA4MVx1MzA4Mlx1MzA4M1x1MzA4NFx1MzA4NVx1MzA4Nlx1MzA4N1x1MzA4OFx1MzA4OVx1MzA4''@;'; + put 'put ''YVx1MzA4Ylx1MzA4Y1x1MzA4ZFx1MzA4ZVx1MzA4Zlx1MzA5MFx1MzA5MVx1MzA5Mlx1MzA5M1x1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE3MF0ubGVuZ3RoOysrRSk2''@;'; + put 'put ''NTUzMyE9PUJbMTcwXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxNzBdW0VdXT00MzUyMCtFLExbNDM1MjArRV09QlsxNzBdW0VdKTtmb3IoQlsxNzFdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWNjOTRcdWNjOTVcdWNj''@;'; + put 'put ''OTZcdWNjOTdcdWNjOWFcdWNjOWJcdWNjOWRcdWNjOWVcdWNjOWZcdWNjYTFcdWNjYTJcdWNjYTNcdWNjYTRcdWNjYTVcdWNjYTZcdWNjYTdcdWNjYWFcdWNjYWVcdWNjYWZcdWNjYjBcdWNjYjFcdWNjYjJcdWNjYjNcdWNjYjZcdWNjYjdcdWNjYjlcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWNjYmFcdWNjYmJcdWNjYmRcdWNjYmVcdWNjYmZcdWNjYzBcdWNjYzFcdWNjYzJcdWNjYzNcdWNjYzZcdWNjYzhcdWNjY2FcdWNjY2JcdWNjY2NcdWNjY2RcdWNjY2VcdWNjY2ZcdWNjZDFcdWNjZDJcdWNjZDNcdWNjZDVcdWNjZDZcdWNjZDdcdWNjZDhcdWNjZDlcdWNj''@;'; + put 'put ''ZGFcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWNjZGJcdWNjZGNcdWNjZGRcdWNjZGVcdWNjZGZcdWNjZTBcdWNjZTFcdWNjZTJcdWNjZTNcdWNjZTVcdWNjZTZcdWNjZTdcdWNjZThcdWNjZTlcdWNjZWFcdWNjZWJcdWNjZWRcdWNjZWVcdWNjZWZcdWNjZjFcdWNjZjJc''@;'; + put 'put ''dWNjZjNcdWNjZjRcdWNjZjVcdWNjZjZcdWNjZjdcdWNjZjhcdWNjZjlcdWNjZmFcdWNjZmJcdWNjZmNcdWNjZmRcdTMwYTFcdTMwYTJcdTMwYTNcdTMwYTRcdTMwYTVcdTMwYTZcdTMwYTdcdTMwYThcdTMwYTlcdTMwYWFcdTMwYWJcdTMwYWNcdTMwYWRcdTMwYWVcdTMwYWZcdTMwYjBcdTMw''@;'; + put 'put ''YjFcdTMwYjJcdTMwYjNcdTMwYjRcdTMwYjVcdTMwYjZcdTMwYjdcdTMwYjhcdTMwYjlcdTMwYmFcdTMwYmJcdTMwYmNcdTMwYmRcdTMwYmVcdTMwYmZcdTMwYzBcdTMwYzFcdTMwYzJcdTMwYzNcdTMwYzRcdTMwYzVcdTMwYzZcdTMwYzdcdTMwYzhcdTMwYzlcdTMwY2FcdTMwY2JcdTMwY2Nc''@;'; + put 'put ''dTMwY2RcdTMwY2VcdTMwY2ZcdTMwZDBcdTMwZDFcdTMwZDJcdTMwZDNcdTMwZDRcdTMwZDVcdTMwZDZcdTMwZDdcdTMwZDhcdTMwZDlcdTMwZGFcdTMwZGJcdTMwZGNcdTMwZGRcdTMwZGVcdTMwZGZcdTMwZTBcdTMwZTFcdTMwZTJcdTMwZTNcdTMwZTRcdTMwZTVcdTMwZTZcdTMwZTdcdTMw''@;'; + put 'put ''ZThcdTMwZTlcdTMwZWFcdTMwZWJcdTMwZWNcdTMwZWRcdTMwZWVcdTMwZWZcdTMwZjBcdTMwZjFcdTMwZjJcdTMwZjNcdTMwZjRcdTMwZjVcdTMwZjZcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxNzFd''@;'; + put 'put ''Lmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE3MV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTcxXVtFXV09NDM3NzYrRSxMWzQzNzc2K0VdPUJbMTcxXVtFXSk7Zm9yKEJbMTcyXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVj''@;'; + put 'put ''Y2ZlXHVjY2ZmXHVjZDAwXHVjZDAyXHVjZDAzXHVjZDA0XHVjZDA1XHVjZDA2XHVjZDA3XHVjZDBhXHVjZDBiXHVjZDBkXHVjZDBlXHVjZDBmXHVjZDExXHVjZDEyXHVjZDEzXHVjZDE0XHVjZDE1XHVjZDE2XHVjZDE3XHVjZDFhXHVjZDFjXHVjZDFlXHVjZDFmXHVjZDIwXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjZDIxXHVjZDIyXHVjZDIzXHVjZDI1XHVjZDI2XHVjZDI3XHVjZDI5XHVjZDJhXHVjZDJiXHVjZDJkXHVjZDJlXHVjZDJmXHVjZDMwXHVjZDMxXHVjZDMyXHVjZDMzXHVjZDM0XHVjZDM1XHVjZDM2XHVjZDM3XHVjZDM4XHVjZDNhXHVjZDNiXHVj''@;'; + put 'put ''ZDNjXHVjZDNkXHVjZDNlXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjZDNmXHVjZDQwXHVjZDQxXHVjZDQyXHVjZDQzXHVjZDQ0XHVjZDQ1XHVjZDQ2XHVjZDQ3XHVjZDQ4XHVjZDQ5XHVjZDRhXHVjZDRiXHVjZDRjXHVjZDRkXHVjZDRlXHVjZDRmXHVjZDUwXHVjZDUx''@;'; + put 'put ''XHVjZDUyXHVjZDUzXHVjZDU0XHVjZDU1XHVjZDU2XHVjZDU3XHVjZDU4XHVjZDU5XHVjZDVhXHVjZDViXHVjZDVkXHVjZDVlXHVjZDVmXHUwNDEwXHUwNDExXHUwNDEyXHUwNDEzXHUwNDE0XHUwNDE1XHUwNDAxXHUwNDE2XHUwNDE3XHUwNDE4XHUwNDE5XHUwNDFhXHUwNDFiXHUwNDFjXHUw''@;'; + put 'put ''NDFkXHUwNDFlXHUwNDFmXHUwNDIwXHUwNDIxXHUwNDIyXHUwNDIzXHUwNDI0XHUwNDI1XHUwNDI2XHUwNDI3XHUwNDI4XHUwNDI5XHUwNDJhXHUwNDJiXHUwNDJjXHUwNDJkXHUwNDJlXHUwNDJmXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUwNDMwXHUwNDMxXHUwNDMyXHUwNDMzXHUwNDM0XHUwNDM1XHUwNDUxXHUwNDM2XHUwNDM3XHUwNDM4XHUwNDM5XHUwNDNhXHUwNDNiXHUwNDNjXHUwNDNkXHUwNDNlXHUwNDNmXHUwNDQwXHUwNDQxXHUwNDQyXHUwNDQzXHUw''@;'; + put 'put ''NDQ0XHUwNDQ1XHUwNDQ2XHUwNDQ3XHUwNDQ4XHUwNDQ5XHUwNDRhXHUwNDRiXHUwNDRjXHUwNDRkXHUwNDRlXHUwNDRmXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIiks''@;'; + put 'put ''RT0wO0UhPUJbMTcyXS5sZW5ndGg7KytFKTY1NTMzIT09QlsxNzJdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE3Ml1bRV1dPTQ0MDMyK0UsTFs0NDAzMitFXT1CWzE3Ml1bRV0pO2ZvcihCWzE3M109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1Y2Q2MVx1Y2Q2Mlx1Y2Q2M1x1Y2Q2NVx1Y2Q2Nlx1Y2Q2N1x1Y2Q2OFx1Y2Q2OVx1Y2Q2YVx1Y2Q2Ylx1Y2Q2ZVx1Y2Q3MFx1Y2Q3Mlx1Y2Q3M1x1Y2Q3NFx1Y2Q3NVx1Y2Q3Nlx1Y2Q3N1x1Y2Q3OVx1Y2Q3YVx1Y2Q3Ylx1Y2Q3Y1x1Y2Q3ZFx1Y2Q3ZVx1Y2Q3Zlx1Y2Q4''@;'; + put 'put ''MFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1Y2Q4MVx1Y2Q4Mlx1Y2Q4M1x1Y2Q4NFx1Y2Q4NVx1Y2Q4Nlx1Y2Q4N1x1Y2Q4OVx1Y2Q4YVx1Y2Q4Ylx1Y2Q4Y1x1Y2Q4ZFx1Y2Q4ZVx1Y2Q4Zlx1Y2Q5MFx1Y2Q5MVx1Y2Q5Mlx1Y2Q5M1x1Y2Q5Nlx1Y2Q5N1x1Y2Q5OVx1''@;'; + put 'put ''Y2Q5YVx1Y2Q5Ylx1Y2Q5ZFx1Y2Q5ZVx1Y2Q5Zlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1Y2RhMFx1Y2RhMVx1Y2RhMlx1Y2RhM1x1Y2RhNlx1Y2RhOFx1Y2RhYVx1Y2RhYlx1Y2RhY1x1Y2RhZFx1Y2RhZVx1Y2RhZlx1Y2RiMVx1Y2RiMlx1Y2RiM1x1Y2RiNFx1Y2Ri''@;'; + put 'put ''NVx1Y2RiNlx1Y2RiN1x1Y2RiOFx1Y2RiOVx1Y2RiYVx1Y2RiYlx1Y2RiY1x1Y2RiZFx1Y2RiZVx1Y2RiZlx1Y2RjMFx1Y2RjMVx1Y2RjMlx1Y2RjM1x1Y2RjNVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE3M10ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTczXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxNzNdW0VdXT00NDI4OCtFLExbNDQyODgrRV09QlsxNzNdW0VdKTtmb3IoQlsxNzRdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWNkYzZcdWNkYzdcdWNkYzhcdWNkYzlcdWNkY2FcdWNkY2JcdWNkY2RcdWNkY2VcdWNkY2ZcdWNkZDFcdWNkZDJcdWNkZDNcdWNkZDRcdWNkZDVcdWNkZDZcdWNkZDdcdWNkZDhcdWNkZDlcdWNkZGFcdWNkZGJcdWNkZGNcdWNkZGRcdWNkZGVcdWNk''@;'; + put 'put ''ZGZcdWNkZTBcdWNkZTFcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWNkZTJcdWNkZTNcdWNkZTRcdWNkZTVcdWNkZTZcdWNkZTdcdWNkZTlcdWNkZWFcdWNkZWJcdWNkZWRcdWNkZWVcdWNkZWZcdWNkZjFcdWNkZjJcdWNkZjNcdWNkZjRcdWNkZjVcdWNkZjZcdWNkZjdc''@;'; + put 'put ''dWNkZmFcdWNkZmNcdWNkZmVcdWNkZmZcdWNlMDBcdWNlMDFcdWNlMDJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWNlMDNcdWNlMDVcdWNlMDZcdWNlMDdcdWNlMDlcdWNlMGFcdWNlMGJcdWNlMGRcdWNlMGVcdWNlMGZcdWNlMTBcdWNlMTFcdWNlMTJcdWNlMTNcdWNl''@;'; + put 'put ''MTVcdWNlMTZcdWNlMTdcdWNlMThcdWNlMWFcdWNlMWJcdWNlMWNcdWNlMWRcdWNlMWVcdWNlMWZcdWNlMjJcdWNlMjNcdWNlMjVcdWNlMjZcdWNlMjdcdWNlMjlcdWNlMmFcdWNlMmJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxNzRdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE3NF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTc0XVtFXV09NDQ1NDQrRSxMWzQ0NTQ0K0VdPUJbMTc0XVtFXSk7Zm9yKEJbMTc1XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjZTJjXHVjZTJkXHVjZTJlXHVjZTJmXHVjZTMyXHVjZTM0XHVjZTM2XHVjZTM3XHVjZTM4XHVjZTM5XHVjZTNhXHVjZTNiXHVjZTNjXHVjZTNkXHVjZTNlXHVjZTNmXHVjZTQwXHVjZTQxXHVjZTQyXHVjZTQzXHVjZTQ0XHVj''@;'; + put 'put ''ZTQ1XHVjZTQ2XHVjZTQ3XHVjZTQ4XHVjZTQ5XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjZTRhXHVjZTRiXHVjZTRjXHVjZTRkXHVjZTRlXHVjZTRmXHVjZTUwXHVjZTUxXHVjZTUyXHVjZTUzXHVjZTU0XHVjZTU1XHVjZTU2XHVjZTU3XHVjZTVhXHVjZTViXHVjZTVk''@;'; + put 'put ''XHVjZTVlXHVjZTYyXHVjZTYzXHVjZTY0XHVjZTY1XHVjZTY2XHVjZTY3XHVjZTZhXHVjZTZjXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjZTZlXHVjZTZmXHVjZTcwXHVjZTcxXHVjZTcyXHVjZTczXHVjZTc2XHVjZTc3XHVjZTc5XHVjZTdhXHVjZTdiXHVjZTdkXHVj''@;'; + put 'put ''ZTdlXHVjZTdmXHVjZTgwXHVjZTgxXHVjZTgyXHVjZTgzXHVjZTg2XHVjZTg4XHVjZThhXHVjZThiXHVjZThjXHVjZThkXHVjZThlXHVjZThmXHVjZTkyXHVjZTkzXHVjZTk1XHVjZTk2XHVjZTk3XHVjZTk5XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTc1XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxNzVdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE3NV1bRV1dPTQ0ODAwK0UsTFs0NDgwMCtFXT1CWzE3NV1bRV0pO2ZvcihCWzE3Nl09Ilx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1Y2U5YVx1Y2U5Ylx1Y2U5Y1x1Y2U5ZFx1Y2U5ZVx1Y2U5Zlx1Y2VhMlx1Y2VhNlx1Y2VhN1x1Y2VhOFx1Y2VhOVx1Y2VhYVx1Y2VhYlx1Y2VhZVx1Y2VhZlx1Y2ViMFx1Y2ViMVx1Y2ViMlx1Y2ViM1x1''@;'; + put 'put ''Y2ViNFx1Y2ViNVx1Y2ViNlx1Y2ViN1x1Y2ViOFx1Y2ViOVx1Y2ViYVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1Y2ViYlx1Y2ViY1x1Y2ViZFx1Y2ViZVx1Y2ViZlx1Y2VjMFx1Y2VjMlx1Y2VjM1x1Y2VjNFx1Y2VjNVx1Y2VjNlx1Y2VjN1x1Y2VjOFx1Y2VjOVx1Y2Vj''@;'; + put 'put ''YVx1Y2VjYlx1Y2VjY1x1Y2VjZFx1Y2VjZVx1Y2VjZlx1Y2VkMFx1Y2VkMVx1Y2VkMlx1Y2VkM1x1Y2VkNFx1Y2VkNVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1Y2VkNlx1Y2VkN1x1Y2VkOFx1Y2VkOVx1Y2VkYVx1Y2VkYlx1Y2VkY1x1Y2VkZFx1Y2VkZVx1Y2VkZlx1''@;'; + put 'put ''Y2VlMFx1Y2VlMVx1Y2VlMlx1Y2VlM1x1Y2VlNlx1Y2VlN1x1Y2VlOVx1Y2VlYVx1Y2VlZFx1Y2VlZVx1Y2VlZlx1Y2VmMFx1Y2VmMVx1Y2VmMlx1Y2VmM1x1Y2VmNlx1Y2VmYVx1Y2VmYlx1Y2VmY1x1Y2VmZFx1Y2VmZVx1Y2VmZlx1YWMwMFx1YWMwMVx1YWMwNFx1YWMwN1x1YWMwOFx1YWMw''@;'; + put 'put ''OVx1YWMwYVx1YWMxMFx1YWMxMVx1YWMxMlx1YWMxM1x1YWMxNFx1YWMxNVx1YWMxNlx1YWMxN1x1YWMxOVx1YWMxYVx1YWMxYlx1YWMxY1x1YWMxZFx1YWMyMFx1YWMyNFx1YWMyY1x1YWMyZFx1YWMyZlx1YWMzMFx1YWMzMVx1YWMzOFx1YWMzOVx1YWMzY1x1YWM0MFx1YWM0Ylx1YWM0ZFx1''@;'; + put 'put ''YWM1NFx1YWM1OFx1YWM1Y1x1YWM3MFx1YWM3MVx1YWM3NFx1YWM3N1x1YWM3OFx1YWM3YVx1YWM4MFx1YWM4MVx1YWM4M1x1YWM4NFx1YWM4NVx1YWM4Nlx1YWM4OVx1YWM4YVx1YWM4Ylx1YWM4Y1x1YWM5MFx1YWM5NFx1YWM5Y1x1YWM5ZFx1YWM5Zlx1YWNhMFx1YWNhMVx1YWNhOFx1YWNh''@;'; + put 'put ''OVx1YWNhYVx1YWNhY1x1YWNhZlx1YWNiMFx1YWNiOFx1YWNiOVx1YWNiYlx1YWNiY1x1YWNiZFx1YWNjMVx1YWNjNFx1YWNjOFx1YWNjY1x1YWNkNVx1YWNkN1x1YWNlMFx1YWNlMVx1YWNlNFx1YWNlN1x1YWNlOFx1YWNlYVx1YWNlY1x1YWNlZlx1YWNmMFx1YWNmMVx1YWNmM1x1YWNmNVx1''@;'; + put 'put ''YWNmNlx1YWNmY1x1YWNmZFx1YWQwMFx1YWQwNFx1YWQwNlx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE3Nl0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTc2XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxNzZdW0VdXT00NTA1NitFLExbNDUwNTYrRV09QlsxNzZdW0VdKTtmb3IoQlsxNzdd''@;'; + put 'put ''PSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWNmMDJcdWNmMDNcdWNmMDVcdWNmMDZcdWNmMDdcdWNmMDlcdWNmMGFcdWNmMGJcdWNmMGNcdWNmMGRcdWNmMGVcdWNmMGZcdWNmMTJcdWNmMTRcdWNmMTZcdWNmMTdcdWNmMThc''@;'; + put 'put ''dWNmMTlcdWNmMWFcdWNmMWJcdWNmMWRcdWNmMWVcdWNmMWZcdWNmMjFcdWNmMjJcdWNmMjNcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWNmMjVcdWNmMjZcdWNmMjdcdWNmMjhcdWNmMjlcdWNmMmFcdWNmMmJcdWNmMmVcdWNmMzJcdWNmMzNcdWNmMzRcdWNmMzVcdWNm''@;'; + put 'put ''MzZcdWNmMzdcdWNmMzlcdWNmM2FcdWNmM2JcdWNmM2NcdWNmM2RcdWNmM2VcdWNmM2ZcdWNmNDBcdWNmNDFcdWNmNDJcdWNmNDNcdWNmNDRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWNmNDVcdWNmNDZcdWNmNDdcdWNmNDhcdWNmNDlcdWNmNGFcdWNmNGJcdWNmNGNc''@;'; + put 'put ''dWNmNGRcdWNmNGVcdWNmNGZcdWNmNTBcdWNmNTFcdWNmNTJcdWNmNTNcdWNmNTZcdWNmNTdcdWNmNTlcdWNmNWFcdWNmNWJcdWNmNWRcdWNmNWVcdWNmNWZcdWNmNjBcdWNmNjFcdWNmNjJcdWNmNjNcdWNmNjZcdWNmNjhcdWNmNmFcdWNmNmJcdWNmNmNcdWFkMGNcdWFkMGRcdWFkMGZcdWFk''@;'; + put 'put ''MTFcdWFkMThcdWFkMWNcdWFkMjBcdWFkMjlcdWFkMmNcdWFkMmRcdWFkMzRcdWFkMzVcdWFkMzhcdWFkM2NcdWFkNDRcdWFkNDVcdWFkNDdcdWFkNDlcdWFkNTBcdWFkNTRcdWFkNThcdWFkNjFcdWFkNjNcdWFkNmNcdWFkNmRcdWFkNzBcdWFkNzNcdWFkNzRcdWFkNzVcdWFkNzZcdWFkN2Jc''@;'; + put 'put ''dWFkN2NcdWFkN2RcdWFkN2ZcdWFkODFcdWFkODJcdWFkODhcdWFkODlcdWFkOGNcdWFkOTBcdWFkOWNcdWFkOWRcdWFkYTRcdWFkYjdcdWFkYzBcdWFkYzFcdWFkYzRcdWFkYzhcdWFkZDBcdWFkZDFcdWFkZDNcdWFkZGNcdWFkZTBcdWFkZTRcdWFkZjhcdWFkZjlcdWFkZmNcdWFkZmZcdWFl''@;'; + put 'put ''MDBcdWFlMDFcdWFlMDhcdWFlMDlcdWFlMGJcdWFlMGRcdWFlMTRcdWFlMzBcdWFlMzFcdWFlMzRcdWFlMzdcdWFlMzhcdWFlM2FcdWFlNDBcdWFlNDFcdWFlNDNcdWFlNDVcdWFlNDZcdWFlNGFcdWFlNGNcdWFlNGRcdWFlNGVcdWFlNTBcdWFlNTRcdWFlNTZcdWFlNWNcdWFlNWRcdWFlNWZc''@;'; + put 'put ''dWFlNjBcdWFlNjFcdWFlNjVcdWFlNjhcdWFlNjlcdWFlNmNcdWFlNzBcdWFlNzhcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxNzddLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE3N11bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTc3XVtFXV09NDUzMTIrRSxMWzQ1MzEyK0VdPUJbMTc3XVtF''@;'; + put 'put ''XSk7Zm9yKEJbMTc4XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjZjZkXHVjZjZlXHVjZjZmXHVjZjcyXHVjZjczXHVjZjc1XHVjZjc2XHVjZjc3XHVjZjc5XHVjZjdhXHVjZjdiXHVjZjdjXHVjZjdkXHVjZjdlXHVjZjdm''@;'; + put 'put ''XHVjZjgxXHVjZjgyXHVjZjgzXHVjZjg0XHVjZjg2XHVjZjg3XHVjZjg4XHVjZjg5XHVjZjhhXHVjZjhiXHVjZjhkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjZjhlXHVjZjhmXHVjZjkwXHVjZjkxXHVjZjkyXHVjZjkzXHVjZjk0XHVjZjk1XHVjZjk2XHVjZjk3XHVj''@;'; + put 'put ''Zjk4XHVjZjk5XHVjZjlhXHVjZjliXHVjZjljXHVjZjlkXHVjZjllXHVjZjlmXHVjZmEwXHVjZmEyXHVjZmEzXHVjZmE0XHVjZmE1XHVjZmE2XHVjZmE3XHVjZmE5XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjZmFhXHVjZmFiXHVjZmFjXHVjZmFkXHVjZmFlXHVjZmFm''@;'; + put 'put ''XHVjZmIxXHVjZmIyXHVjZmIzXHVjZmI0XHVjZmI1XHVjZmI2XHVjZmI3XHVjZmI4XHVjZmI5XHVjZmJhXHVjZmJiXHVjZmJjXHVjZmJkXHVjZmJlXHVjZmJmXHVjZmMwXHVjZmMxXHVjZmMyXHVjZmMzXHVjZmM1XHVjZmM2XHVjZmM3XHVjZmM4XHVjZmM5XHVjZmNhXHVjZmNiXHVhZTc5XHVh''@;'; + put 'put ''ZTdiXHVhZTdjXHVhZTdkXHVhZTg0XHVhZTg1XHVhZThjXHVhZWJjXHVhZWJkXHVhZWJlXHVhZWMwXHVhZWM0XHVhZWNjXHVhZWNkXHVhZWNmXHVhZWQwXHVhZWQxXHVhZWQ4XHVhZWQ5XHVhZWRjXHVhZWU4XHVhZWViXHVhZWVkXHVhZWY0XHVhZWY4XHVhZWZjXHVhZjA3XHVhZjA4XHVhZjBk''@;'; + put 'put ''XHVhZjEwXHVhZjJjXHVhZjJkXHVhZjMwXHVhZjMyXHVhZjM0XHVhZjNjXHVhZjNkXHVhZjNmXHVhZjQxXHVhZjQyXHVhZjQzXHVhZjQ4XHVhZjQ5XHVhZjUwXHVhZjVjXHVhZjVkXHVhZjY0XHVhZjY1XHVhZjc5XHVhZjgwXHVhZjg0XHVhZjg4XHVhZjkwXHVhZjkxXHVhZjk1XHVhZjljXHVh''@;'; + put 'put ''ZmI4XHVhZmI5XHVhZmJjXHVhZmMwXHVhZmM3XHVhZmM4XHVhZmM5XHVhZmNiXHVhZmNkXHVhZmNlXHVhZmQ0XHVhZmRjXHVhZmU4XHVhZmU5XHVhZmYwXHVhZmYxXHVhZmY0XHVhZmY4XHViMDAwXHViMDAxXHViMDA0XHViMDBjXHViMDEwXHViMDE0XHViMDFjXHViMDFkXHViMDI4XHViMDQ0''@;'; + put 'put ''XHViMDQ1XHViMDQ4XHViMDRhXHViMDRjXHViMDRlXHViMDUzXHViMDU0XHViMDU1XHViMDU3XHViMDU5XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTc4XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxNzhdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE3OF1bRV1dPTQ1NTY4K0UsTFs0NTU2''@;'; + put 'put ''OCtFXT1CWzE3OF1bRV0pO2ZvcihCWzE3OV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1Y2ZjY1x1Y2ZjZFx1Y2ZjZVx1Y2ZjZlx1Y2ZkMFx1Y2ZkMVx1Y2ZkMlx1Y2ZkM1x1Y2ZkNFx1Y2ZkNVx1Y2ZkNlx1Y2ZkN1x1Y2Zk''@;'; + put 'put ''OFx1Y2ZkOVx1Y2ZkYVx1Y2ZkYlx1Y2ZkY1x1Y2ZkZFx1Y2ZkZVx1Y2ZkZlx1Y2ZlMlx1Y2ZlM1x1Y2ZlNVx1Y2ZlNlx1Y2ZlN1x1Y2ZlOVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1Y2ZlYVx1Y2ZlYlx1Y2ZlY1x1Y2ZlZFx1Y2ZlZVx1Y2ZlZlx1Y2ZmMlx1Y2ZmNFx1''@;'; + put 'put ''Y2ZmNlx1Y2ZmN1x1Y2ZmOFx1Y2ZmOVx1Y2ZmYVx1Y2ZmYlx1Y2ZmZFx1Y2ZmZVx1Y2ZmZlx1ZDAwMVx1ZDAwMlx1ZDAwM1x1ZDAwNVx1ZDAwNlx1ZDAwN1x1ZDAwOFx1ZDAwOVx1ZDAwYVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZDAwYlx1ZDAwY1x1ZDAwZFx1ZDAw''@;'; + put 'put ''ZVx1ZDAwZlx1ZDAxMFx1ZDAxMlx1ZDAxM1x1ZDAxNFx1ZDAxNVx1ZDAxNlx1ZDAxN1x1ZDAxOVx1ZDAxYVx1ZDAxYlx1ZDAxY1x1ZDAxZFx1ZDAxZVx1ZDAxZlx1ZDAyMFx1ZDAyMVx1ZDAyMlx1ZDAyM1x1ZDAyNFx1ZDAyNVx1ZDAyNlx1ZDAyN1x1ZDAyOFx1ZDAyOVx1ZDAyYVx1ZDAyYlx1''@;'; + put 'put ''ZDAyY1x1YjA1ZFx1YjA3Y1x1YjA3ZFx1YjA4MFx1YjA4NFx1YjA4Y1x1YjA4ZFx1YjA4Zlx1YjA5MVx1YjA5OFx1YjA5OVx1YjA5YVx1YjA5Y1x1YjA5Zlx1YjBhMFx1YjBhMVx1YjBhMlx1YjBhOFx1YjBhOVx1YjBhYlx1YjBhY1x1YjBhZFx1YjBhZVx1YjBhZlx1YjBiMVx1YjBiM1x1YjBi''@;'; + put 'put ''NFx1YjBiNVx1YjBiOFx1YjBiY1x1YjBjNFx1YjBjNVx1YjBjN1x1YjBjOFx1YjBjOVx1YjBkMFx1YjBkMVx1YjBkNFx1YjBkOFx1YjBlMFx1YjBlNVx1YjEwOFx1YjEwOVx1YjEwYlx1YjEwY1x1YjExMFx1YjExMlx1YjExM1x1YjExOFx1YjExOVx1YjExYlx1YjExY1x1YjExZFx1YjEyM1x1''@;'; + put 'put ''YjEyNFx1YjEyNVx1YjEyOFx1YjEyY1x1YjEzNFx1YjEzNVx1YjEzN1x1YjEzOFx1YjEzOVx1YjE0MFx1YjE0MVx1YjE0NFx1YjE0OFx1YjE1MFx1YjE1MVx1YjE1NFx1YjE1NVx1YjE1OFx1YjE1Y1x1YjE2MFx1YjE3OFx1YjE3OVx1YjE3Y1x1YjE4MFx1YjE4Mlx1YjE4OFx1YjE4OVx1YjE4''@;'; + put 'put ''Ylx1YjE4ZFx1YjE5Mlx1YjE5M1x1YjE5NFx1YjE5OFx1YjE5Y1x1YjFhOFx1YjFjY1x1YjFkMFx1YjFkNFx1YjFkY1x1YjFkZFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE3OV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTc5XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxNzldW0VdXT00''@;'; + put 'put ''NTgyNCtFLExbNDU4MjQrRV09QlsxNzldW0VdKTtmb3IoQlsxODBdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWQwMmVcdWQwMmZcdWQwMzBcdWQwMzFcdWQwMzJcdWQwMzNcdWQwMzZcdWQwMzdcdWQwMzlcdWQwM2FcdWQw''@;'; + put 'put ''M2JcdWQwM2RcdWQwM2VcdWQwM2ZcdWQwNDBcdWQwNDFcdWQwNDJcdWQwNDNcdWQwNDZcdWQwNDhcdWQwNGFcdWQwNGJcdWQwNGNcdWQwNGRcdWQwNGVcdWQwNGZcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWQwNTFcdWQwNTJcdWQwNTNcdWQwNTVcdWQwNTZcdWQwNTdc''@;'; + put 'put ''dWQwNTlcdWQwNWFcdWQwNWJcdWQwNWNcdWQwNWRcdWQwNWVcdWQwNWZcdWQwNjFcdWQwNjJcdWQwNjNcdWQwNjRcdWQwNjVcdWQwNjZcdWQwNjdcdWQwNjhcdWQwNjlcdWQwNmFcdWQwNmJcdWQwNmVcdWQwNmZcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWQwNzFcdWQw''@;'; + put 'put ''NzJcdWQwNzNcdWQwNzVcdWQwNzZcdWQwNzdcdWQwNzhcdWQwNzlcdWQwN2FcdWQwN2JcdWQwN2VcdWQwN2ZcdWQwODBcdWQwODJcdWQwODNcdWQwODRcdWQwODVcdWQwODZcdWQwODdcdWQwODhcdWQwODlcdWQwOGFcdWQwOGJcdWQwOGNcdWQwOGRcdWQwOGVcdWQwOGZcdWQwOTBcdWQwOTFc''@;'; + put 'put ''dWQwOTJcdWQwOTNcdWQwOTRcdWIxZGZcdWIxZThcdWIxZTlcdWIxZWNcdWIxZjBcdWIxZjlcdWIxZmJcdWIxZmRcdWIyMDRcdWIyMDVcdWIyMDhcdWIyMGJcdWIyMGNcdWIyMTRcdWIyMTVcdWIyMTdcdWIyMTlcdWIyMjBcdWIyMzRcdWIyM2NcdWIyNThcdWIyNWNcdWIyNjBcdWIyNjhcdWIy''@;'; + put 'put ''NjlcdWIyNzRcdWIyNzVcdWIyN2NcdWIyODRcdWIyODVcdWIyODlcdWIyOTBcdWIyOTFcdWIyOTRcdWIyOThcdWIyOTlcdWIyOWFcdWIyYTBcdWIyYTFcdWIyYTNcdWIyYTVcdWIyYTZcdWIyYWFcdWIyYWNcdWIyYjBcdWIyYjRcdWIyYzhcdWIyYzlcdWIyY2NcdWIyZDBcdWIyZDJcdWIyZDhc''@;'; + put 'put ''dWIyZDlcdWIyZGJcdWIyZGRcdWIyZTJcdWIyZTRcdWIyZTVcdWIyZTZcdWIyZThcdWIyZWJcdWIyZWNcdWIyZWRcdWIyZWVcdWIyZWZcdWIyZjNcdWIyZjRcdWIyZjVcdWIyZjdcdWIyZjhcdWIyZjlcdWIyZmFcdWIyZmJcdWIyZmZcdWIzMDBcdWIzMDFcdWIzMDRcdWIzMDhcdWIzMTBcdWIz''@;'; + put 'put ''MTFcdWIzMTNcdWIzMTRcdWIzMTVcdWIzMWNcdWIzNTRcdWIzNTVcdWIzNTZcdWIzNThcdWIzNWJcdWIzNWNcdWIzNWVcdWIzNWZcdWIzNjRcdWIzNjVcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxODBdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE4MF1bRV0uY2hhckNvZGVBdCgwKSYmKG1l''@;'; + put 'put ''W0JbMTgwXVtFXV09NDYwODArRSxMWzQ2MDgwK0VdPUJbMTgwXVtFXSk7Zm9yKEJbMTgxXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkMDk1XHVkMDk2XHVkMDk3XHVkMDk4XHVkMDk5XHVkMDlhXHVkMDliXHVkMDljXHVk''@;'; + put 'put ''MDlkXHVkMDllXHVkMDlmXHVkMGEwXHVkMGExXHVkMGEyXHVkMGEzXHVkMGE2XHVkMGE3XHVkMGE5XHVkMGFhXHVkMGFiXHVkMGFkXHVkMGFlXHVkMGFmXHVkMGIwXHVkMGIxXHVkMGIyXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkMGIzXHVkMGI2XHVkMGI4XHVkMGJh''@;'; + put 'put ''XHVkMGJiXHVkMGJjXHVkMGJkXHVkMGJlXHVkMGJmXHVkMGMyXHVkMGMzXHVkMGM1XHVkMGM2XHVkMGM3XHVkMGNhXHVkMGNiXHVkMGNjXHVkMGNkXHVkMGNlXHVkMGNmXHVkMGQyXHVkMGQ2XHVkMGQ3XHVkMGQ4XHVkMGQ5XHVkMGRhXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVkMGRiXHVkMGRlXHVkMGRmXHVkMGUxXHVkMGUyXHVkMGUzXHVkMGU1XHVkMGU2XHVkMGU3XHVkMGU4XHVkMGU5XHVkMGVhXHVkMGViXHVkMGVlXHVkMGYyXHVkMGYzXHVkMGY0XHVkMGY1XHVkMGY2XHVkMGY3XHVkMGY5XHVkMGZhXHVkMGZiXHVkMGZjXHVkMGZkXHVkMGZlXHVkMGZm''@;'; + put 'put ''XHVkMTAwXHVkMTAxXHVkMTAyXHVkMTAzXHVkMTA0XHViMzY3XHViMzY5XHViMzZiXHViMzZlXHViMzcwXHViMzcxXHViMzc0XHViMzc4XHViMzgwXHViMzgxXHViMzgzXHViMzg0XHViMzg1XHViMzhjXHViMzkwXHViMzk0XHViM2EwXHViM2ExXHViM2E4XHViM2FjXHViM2M0XHViM2M1XHVi''@;'; + put 'put ''M2M4XHViM2NiXHViM2NjXHViM2NlXHViM2QwXHViM2Q0XHViM2Q1XHViM2Q3XHViM2Q5XHViM2RiXHViM2RkXHViM2UwXHViM2U0XHViM2U4XHViM2ZjXHViNDEwXHViNDE4XHViNDFjXHViNDIwXHViNDI4XHViNDI5XHViNDJiXHViNDM0XHViNDUwXHViNDUxXHViNDU0XHViNDU4XHViNDYw''@;'; + put 'put ''XHViNDYxXHViNDYzXHViNDY1XHViNDZjXHViNDgwXHViNDg4XHViNDlkXHViNGE0XHViNGE4XHViNGFjXHViNGI1XHViNGI3XHViNGI5XHViNGMwXHViNGM0XHViNGM4XHViNGQwXHViNGQ1XHViNGRjXHViNGRkXHViNGUwXHViNGUzXHViNGU0XHViNGU2XHViNGVjXHViNGVkXHViNGVmXHVi''@;'; + put 'put ''NGYxXHViNGY4XHViNTE0XHViNTE1XHViNTE4XHViNTFiXHViNTFjXHViNTI0XHViNTI1XHViNTI3XHViNTI4XHViNTI5XHViNTJhXHViNTMwXHViNTMxXHViNTM0XHViNTM4XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTgxXS5sZW5ndGg7KytFKTY1NTMzIT09QlsxODFdW0VdLmNoYXJD''@;'; + put 'put ''b2RlQXQoMCkmJihtZVtCWzE4MV1bRV1dPTQ2MzM2K0UsTFs0NjMzNitFXT1CWzE4MV1bRV0pO2ZvcihCWzE4Ml09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZDEwNVx1ZDEwNlx1ZDEwN1x1ZDEwOFx1ZDEwOVx1ZDEwYVx1''@;'; + put 'put ''ZDEwYlx1ZDEwY1x1ZDEwZVx1ZDEwZlx1ZDExMFx1ZDExMVx1ZDExMlx1ZDExM1x1ZDExNFx1ZDExNVx1ZDExNlx1ZDExN1x1ZDExOFx1ZDExOVx1ZDExYVx1ZDExYlx1ZDExY1x1ZDExZFx1ZDExZVx1ZDExZlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZDEyMFx1ZDEy''@;'; + put 'put ''MVx1ZDEyMlx1ZDEyM1x1ZDEyNFx1ZDEyNVx1ZDEyNlx1ZDEyN1x1ZDEyOFx1ZDEyOVx1ZDEyYVx1ZDEyYlx1ZDEyY1x1ZDEyZFx1ZDEyZVx1ZDEyZlx1ZDEzMlx1ZDEzM1x1ZDEzNVx1ZDEzNlx1ZDEzN1x1ZDEzOVx1ZDEzYlx1ZDEzY1x1ZDEzZFx1ZDEzZVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZDEzZlx1ZDE0Mlx1ZDE0Nlx1ZDE0N1x1ZDE0OFx1ZDE0OVx1ZDE0YVx1ZDE0Ylx1ZDE0ZVx1ZDE0Zlx1ZDE1MVx1ZDE1Mlx1ZDE1M1x1ZDE1NVx1ZDE1Nlx1ZDE1N1x1ZDE1OFx1ZDE1OVx1ZDE1YVx1ZDE1Ylx1ZDE1ZVx1ZDE2MFx1ZDE2Mlx1ZDE2M1x1ZDE2''@;'; + put 'put ''NFx1ZDE2NVx1ZDE2Nlx1ZDE2N1x1ZDE2OVx1ZDE2YVx1ZDE2Ylx1ZDE2ZFx1YjU0MFx1YjU0MVx1YjU0M1x1YjU0NFx1YjU0NVx1YjU0Ylx1YjU0Y1x1YjU0ZFx1YjU1MFx1YjU1NFx1YjU1Y1x1YjU1ZFx1YjU1Zlx1YjU2MFx1YjU2MVx1YjVhMFx1YjVhMVx1YjVhNFx1YjVhOFx1YjVhYVx1''@;'; + put 'put ''YjVhYlx1YjViMFx1YjViMVx1YjViM1x1YjViNFx1YjViNVx1YjViYlx1YjViY1x1YjViZFx1YjVjMFx1YjVjNFx1YjVjY1x1YjVjZFx1YjVjZlx1YjVkMFx1YjVkMVx1YjVkOFx1YjVlY1x1YjYxMFx1YjYxMVx1YjYxNFx1YjYxOFx1YjYyNVx1YjYyY1x1YjYzNFx1YjY0OFx1YjY2NFx1YjY2''@;'; + put 'put ''OFx1YjY5Y1x1YjY5ZFx1YjZhMFx1YjZhNFx1YjZhYlx1YjZhY1x1YjZiMVx1YjZkNFx1YjZmMFx1YjZmNFx1YjZmOFx1YjcwMFx1YjcwMVx1YjcwNVx1YjcyOFx1YjcyOVx1YjcyY1x1YjcyZlx1YjczMFx1YjczOFx1YjczOVx1YjczYlx1Yjc0NFx1Yjc0OFx1Yjc0Y1x1Yjc1NFx1Yjc1NVx1''@;'; + put 'put ''Yjc2MFx1Yjc2NFx1Yjc2OFx1Yjc3MFx1Yjc3MVx1Yjc3M1x1Yjc3NVx1Yjc3Y1x1Yjc3ZFx1Yjc4MFx1Yjc4NFx1Yjc4Y1x1Yjc4ZFx1Yjc4Zlx1Yjc5MFx1Yjc5MVx1Yjc5Mlx1Yjc5Nlx1Yjc5N1x1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE4Ml0ubGVuZ3RoOysrRSk2NTUzMyE9PUJb''@;'; + put 'put ''MTgyXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxODJdW0VdXT00NjU5MitFLExbNDY1OTIrRV09QlsxODJdW0VdKTtmb3IoQlsxODNdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWQxNmVcdWQxNmZcdWQxNzBcdWQxNzFc''@;'; + put 'put ''dWQxNzJcdWQxNzNcdWQxNzRcdWQxNzVcdWQxNzZcdWQxNzdcdWQxNzhcdWQxNzlcdWQxN2FcdWQxN2JcdWQxN2RcdWQxN2VcdWQxN2ZcdWQxODBcdWQxODFcdWQxODJcdWQxODNcdWQxODVcdWQxODZcdWQxODdcdWQxODlcdWQxOGFcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWQxOGJcdWQxOGNcdWQxOGRcdWQxOGVcdWQxOGZcdWQxOTBcdWQxOTFcdWQxOTJcdWQxOTNcdWQxOTRcdWQxOTVcdWQxOTZcdWQxOTdcdWQxOThcdWQxOTlcdWQxOWFcdWQxOWJcdWQxOWNcdWQxOWRcdWQxOWVcdWQxOWZcdWQxYTJcdWQxYTNcdWQxYTVcdWQxYTZcdWQxYTdcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWQxYTlcdWQxYWFcdWQxYWJcdWQxYWNcdWQxYWRcdWQxYWVcdWQxYWZcdWQxYjJcdWQxYjRcdWQxYjZcdWQxYjdcdWQxYjhcdWQxYjlcdWQxYmJcdWQxYmRcdWQxYmVcdWQxYmZcdWQxYzFcdWQxYzJcdWQxYzNcdWQxYzRcdWQxYzVcdWQx''@;'; + put 'put ''YzZcdWQxYzdcdWQxYzhcdWQxYzlcdWQxY2FcdWQxY2JcdWQxY2NcdWQxY2RcdWQxY2VcdWQxY2ZcdWI3OThcdWI3OTlcdWI3OWNcdWI3YTBcdWI3YThcdWI3YTlcdWI3YWJcdWI3YWNcdWI3YWRcdWI3YjRcdWI3YjVcdWI3YjhcdWI3YzdcdWI3YzlcdWI3ZWNcdWI3ZWRcdWI3ZjBcdWI3ZjRc''@;'; + put 'put ''dWI3ZmNcdWI3ZmRcdWI3ZmZcdWI4MDBcdWI4MDFcdWI4MDdcdWI4MDhcdWI4MDlcdWI4MGNcdWI4MTBcdWI4MThcdWI4MTlcdWI4MWJcdWI4MWRcdWI4MjRcdWI4MjVcdWI4MjhcdWI4MmNcdWI4MzRcdWI4MzVcdWI4MzdcdWI4MzhcdWI4MzlcdWI4NDBcdWI4NDRcdWI4NTFcdWI4NTNcdWI4''@;'; + put 'put ''NWNcdWI4NWRcdWI4NjBcdWI4NjRcdWI4NmNcdWI4NmRcdWI4NmZcdWI4NzFcdWI4NzhcdWI4N2NcdWI4OGRcdWI4YThcdWI4YjBcdWI4YjRcdWI4YjhcdWI4YzBcdWI4YzFcdWI4YzNcdWI4YzVcdWI4Y2NcdWI4ZDBcdWI4ZDRcdWI4ZGRcdWI4ZGZcdWI4ZTFcdWI4ZThcdWI4ZTlcdWI4ZWNc''@;'; + put 'put ''dWI4ZjBcdWI4ZjhcdWI4ZjlcdWI4ZmJcdWI4ZmRcdWI5MDRcdWI5MThcdWI5MjBcdWI5M2NcdWI5M2RcdWI5NDBcdWI5NDRcdWI5NGNcdWI5NGZcdWI5NTFcdWI5NThcdWI5NTlcdWI5NWNcdWI5NjBcdWI5NjhcdWI5NjlcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxODNdLmxlbmd0aDsr''@;'; + put 'put ''K0UpNjU1MzMhPT1CWzE4M11bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTgzXVtFXV09NDY4NDgrRSxMWzQ2ODQ4K0VdPUJbMTgzXVtFXSk7Zm9yKEJbMTg0XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkMWQwXHVkMWQx''@;'; + put 'put ''XHVkMWQyXHVkMWQzXHVkMWQ0XHVkMWQ1XHVkMWQ2XHVkMWQ3XHVkMWQ5XHVkMWRhXHVkMWRiXHVkMWRjXHVkMWRkXHVkMWRlXHVkMWRmXHVkMWUwXHVkMWUxXHVkMWUyXHVkMWUzXHVkMWU0XHVkMWU1XHVkMWU2XHVkMWU3XHVkMWU4XHVkMWU5XHVkMWVhXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVkMWViXHVkMWVjXHVkMWVkXHVkMWVlXHVkMWVmXHVkMWYwXHVkMWYxXHVkMWYyXHVkMWYzXHVkMWY1XHVkMWY2XHVkMWY3XHVkMWY5XHVkMWZhXHVkMWZiXHVkMWZjXHVkMWZkXHVkMWZlXHVkMWZmXHVkMjAwXHVkMjAxXHVkMjAyXHVkMjAzXHVkMjA0XHVkMjA1''@;'; + put 'put ''XHVkMjA2XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkMjA4XHVkMjBhXHVkMjBiXHVkMjBjXHVkMjBkXHVkMjBlXHVkMjBmXHVkMjExXHVkMjEyXHVkMjEzXHVkMjE0XHVkMjE1XHVkMjE2XHVkMjE3XHVkMjE4XHVkMjE5XHVkMjFhXHVkMjFiXHVkMjFjXHVkMjFkXHVk''@;'; + put 'put ''MjFlXHVkMjFmXHVkMjIwXHVkMjIxXHVkMjIyXHVkMjIzXHVkMjI0XHVkMjI1XHVkMjI2XHVkMjI3XHVkMjI4XHVkMjI5XHViOTZiXHViOTZkXHViOTc0XHViOTc1XHViOTc4XHViOTdjXHViOTg0XHViOTg1XHViOTg3XHViOTg5XHViOThhXHViOThkXHViOThlXHViOWFjXHViOWFkXHViOWIw''@;'; + put 'put ''XHViOWI0XHViOWJjXHViOWJkXHViOWJmXHViOWMxXHViOWM4XHViOWM5XHViOWNjXHViOWNlXHViOWNmXHViOWQwXHViOWQxXHViOWQyXHViOWQ4XHViOWQ5XHViOWRiXHViOWRkXHViOWRlXHViOWUxXHViOWUzXHViOWU0XHViOWU1XHViOWU4XHViOWVjXHViOWY0XHViOWY1XHViOWY3XHVi''@;'; + put 'put ''OWY4XHViOWY5XHViOWZhXHViYTAwXHViYTAxXHViYTA4XHViYTE1XHViYTM4XHViYTM5XHViYTNjXHViYTQwXHViYTQyXHViYTQ4XHViYTQ5XHViYTRiXHViYTRkXHViYTRlXHViYTUzXHViYTU0XHViYTU1XHViYTU4XHViYTVjXHViYTY0XHViYTY1XHViYTY3XHViYTY4XHViYTY5XHViYTcw''@;'; + put 'put ''XHViYTcxXHViYTc0XHViYTc4XHViYTgzXHViYTg0XHViYTg1XHViYTg3XHViYThjXHViYWE4XHViYWE5XHViYWFiXHViYWFjXHViYWIwXHViYWIyXHViYWI4XHViYWI5XHViYWJiXHViYWJkXHViYWM0XHViYWM4XHViYWQ4XHViYWQ5XHViYWZjXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJb''@;'; + put 'put ''MTg0XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxODRdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE4NF1bRV1dPTQ3MTA0K0UsTFs0NzEwNCtFXT1CWzE4NF1bRV0pO2ZvcihCWzE4NV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZDIyYVx1ZDIyYlx1ZDIyZVx1ZDIyZlx1ZDIzMVx1ZDIzMlx1ZDIzM1x1ZDIzNVx1ZDIzNlx1ZDIzN1x1ZDIzOFx1ZDIzOVx1ZDIzYVx1ZDIzYlx1ZDIzZVx1ZDI0MFx1ZDI0Mlx1ZDI0M1x1ZDI0NFx1ZDI0NVx1ZDI0Nlx1ZDI0N1x1ZDI0OVx1ZDI0YVx1ZDI0Ylx1ZDI0Y1x1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZDI0ZFx1ZDI0ZVx1ZDI0Zlx1ZDI1MFx1ZDI1MVx1ZDI1Mlx1ZDI1M1x1ZDI1NFx1ZDI1NVx1ZDI1Nlx1ZDI1N1x1ZDI1OFx1ZDI1OVx1ZDI1YVx1ZDI1Ylx1ZDI1ZFx1ZDI1ZVx1ZDI1Zlx1ZDI2MFx1ZDI2MVx1ZDI2Mlx1ZDI2M1x1ZDI2''@;'; + put 'put ''NVx1ZDI2Nlx1ZDI2N1x1ZDI2OFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZDI2OVx1ZDI2YVx1ZDI2Ylx1ZDI2Y1x1ZDI2ZFx1ZDI2ZVx1ZDI2Zlx1ZDI3MFx1ZDI3MVx1ZDI3Mlx1ZDI3M1x1ZDI3NFx1ZDI3NVx1ZDI3Nlx1ZDI3N1x1ZDI3OFx1ZDI3OVx1ZDI3YVx1''@;'; + put 'put ''ZDI3Ylx1ZDI3Y1x1ZDI3ZFx1ZDI3ZVx1ZDI3Zlx1ZDI4Mlx1ZDI4M1x1ZDI4NVx1ZDI4Nlx1ZDI4N1x1ZDI4OVx1ZDI4YVx1ZDI4Ylx1ZDI4Y1x1YmIwMFx1YmIwNFx1YmIwZFx1YmIwZlx1YmIxMVx1YmIxOFx1YmIxY1x1YmIyMFx1YmIyOVx1YmIyYlx1YmIzNFx1YmIzNVx1YmIzNlx1YmIz''@;'; + put 'put ''OFx1YmIzYlx1YmIzY1x1YmIzZFx1YmIzZVx1YmI0NFx1YmI0NVx1YmI0N1x1YmI0OVx1YmI0ZFx1YmI0Zlx1YmI1MFx1YmI1NFx1YmI1OFx1YmI2MVx1YmI2M1x1YmI2Y1x1YmI4OFx1YmI4Y1x1YmI5MFx1YmJhNFx1YmJhOFx1YmJhY1x1YmJiNFx1YmJiN1x1YmJjMFx1YmJjNFx1YmJjOFx1''@;'; + put 'put ''YmJkMFx1YmJkM1x1YmJmOFx1YmJmOVx1YmJmY1x1YmJmZlx1YmMwMFx1YmMwMlx1YmMwOFx1YmMwOVx1YmMwYlx1YmMwY1x1YmMwZFx1YmMwZlx1YmMxMVx1YmMxNFx1YmMxNVx1YmMxNlx1YmMxN1x1YmMxOFx1YmMxYlx1YmMxY1x1YmMxZFx1YmMxZVx1YmMxZlx1YmMyNFx1YmMyNVx1YmMy''@;'; + put 'put ''N1x1YmMyOVx1YmMyZFx1YmMzMFx1YmMzMVx1YmMzNFx1YmMzOFx1YmM0MFx1YmM0MVx1YmM0M1x1YmM0NFx1YmM0NVx1YmM0OVx1YmM0Y1x1YmM0ZFx1YmM1MFx1YmM1ZFx1YmM4NFx1YmM4NVx1YmM4OFx1YmM4Ylx1YmM4Y1x1YmM4ZVx1YmM5NFx1YmM5NVx1YmM5N1x1ZmZmZCIuc3BsaXQo''@;'; + put 'put ''IiIpLEU9MDtFIT1CWzE4NV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTg1XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxODVdW0VdXT00NzM2MCtFLExbNDczNjArRV09QlsxODVdW0VdKTtmb3IoQlsxODZdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWQyOGRcdWQyOGVcdWQyOGZcdWQyOTJcdWQyOTNcdWQyOTRcdWQyOTZcdWQyOTdcdWQyOThcdWQyOTlcdWQyOWFcdWQyOWJcdWQyOWRcdWQyOWVcdWQyOWZcdWQyYTFcdWQyYTJcdWQyYTNcdWQyYTVcdWQyYTZcdWQyYTdcdWQyYThcdWQyYTlcdWQyYWFcdWQyYWJc''@;'; + put 'put ''dWQyYWRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWQyYWVcdWQyYWZcdWQyYjBcdWQyYjJcdWQyYjNcdWQyYjRcdWQyYjVcdWQyYjZcdWQyYjdcdWQyYmFcdWQyYmJcdWQyYmRcdWQyYmVcdWQyYzFcdWQyYzNcdWQyYzRcdWQyYzVcdWQyYzZcdWQyYzdcdWQyY2FcdWQy''@;'; + put 'put ''Y2NcdWQyY2RcdWQyY2VcdWQyY2ZcdWQyZDBcdWQyZDFcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWQyZDJcdWQyZDNcdWQyZDVcdWQyZDZcdWQyZDdcdWQyZDlcdWQyZGFcdWQyZGJcdWQyZGRcdWQyZGVcdWQyZGZcdWQyZTBcdWQyZTFcdWQyZTJcdWQyZTNcdWQyZTZc''@;'; + put 'put ''dWQyZTdcdWQyZThcdWQyZTlcdWQyZWFcdWQyZWJcdWQyZWNcdWQyZWRcdWQyZWVcdWQyZWZcdWQyZjJcdWQyZjNcdWQyZjVcdWQyZjZcdWQyZjdcdWQyZjlcdWQyZmFcdWJjOTlcdWJjOWFcdWJjYTBcdWJjYTFcdWJjYTRcdWJjYTdcdWJjYThcdWJjYjBcdWJjYjFcdWJjYjNcdWJjYjRcdWJj''@;'; + put 'put ''YjVcdWJjYmNcdWJjYmRcdWJjYzBcdWJjYzRcdWJjY2RcdWJjY2ZcdWJjZDBcdWJjZDFcdWJjZDVcdWJjZDhcdWJjZGNcdWJjZjRcdWJjZjVcdWJjZjZcdWJjZjhcdWJjZmNcdWJkMDRcdWJkMDVcdWJkMDdcdWJkMDlcdWJkMTBcdWJkMTRcdWJkMjRcdWJkMmNcdWJkNDBcdWJkNDhcdWJkNDlc''@;'; + put 'put ''dWJkNGNcdWJkNTBcdWJkNThcdWJkNTlcdWJkNjRcdWJkNjhcdWJkODBcdWJkODFcdWJkODRcdWJkODdcdWJkODhcdWJkODlcdWJkOGFcdWJkOTBcdWJkOTFcdWJkOTNcdWJkOTVcdWJkOTlcdWJkOWFcdWJkOWNcdWJkYTRcdWJkYjBcdWJkYjhcdWJkZDRcdWJkZDVcdWJkZDhcdWJkZGNcdWJk''@;'; + put 'put ''ZTlcdWJkZjBcdWJkZjRcdWJkZjhcdWJlMDBcdWJlMDNcdWJlMDVcdWJlMGNcdWJlMGRcdWJlMTBcdWJlMTRcdWJlMWNcdWJlMWRcdWJlMWZcdWJlNDRcdWJlNDVcdWJlNDhcdWJlNGNcdWJlNGVcdWJlNTRcdWJlNTVcdWJlNTdcdWJlNTlcdWJlNWFcdWJlNWJcdWJlNjBcdWJlNjFcdWJlNjRc''@;'; + put 'put ''dWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxODZdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE4Nl1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTg2XVtFXV09NDc2MTYrRSxMWzQ3NjE2K0VdPUJbMTg2XVtFXSk7Zm9yKEJbMTg3XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkMmZiXHVkMmZjXHVkMmZkXHVkMmZlXHVkMmZmXHVkMzAyXHVkMzA0XHVkMzA2XHVkMzA3XHVkMzA4XHVkMzA5XHVkMzBhXHVkMzBiXHVkMzBmXHVkMzExXHVkMzEyXHVkMzEzXHVkMzE1XHVkMzE3XHVkMzE4XHVkMzE5XHVkMzFhXHVkMzFi''@;'; + put 'put ''XHVkMzFlXHVkMzIyXHVkMzIzXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkMzI0XHVkMzI2XHVkMzI3XHVkMzJhXHVkMzJiXHVkMzJkXHVkMzJlXHVkMzJmXHVkMzMxXHVkMzMyXHVkMzMzXHVkMzM0XHVkMzM1XHVkMzM2XHVkMzM3XHVkMzNhXHVkMzNlXHVkMzNmXHVk''@;'; + put 'put ''MzQwXHVkMzQxXHVkMzQyXHVkMzQzXHVkMzQ2XHVkMzQ3XHVkMzQ4XHVkMzQ5XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkMzRhXHVkMzRiXHVkMzRjXHVkMzRkXHVkMzRlXHVkMzRmXHVkMzUwXHVkMzUxXHVkMzUyXHVkMzUzXHVkMzU0XHVkMzU1XHVkMzU2XHVkMzU3''@;'; + put 'put ''XHVkMzU4XHVkMzU5XHVkMzVhXHVkMzViXHVkMzVjXHVkMzVkXHVkMzVlXHVkMzVmXHVkMzYwXHVkMzYxXHVkMzYyXHVkMzYzXHVkMzY0XHVkMzY1XHVkMzY2XHVkMzY3XHVkMzY4XHVkMzY5XHViZTY4XHViZTZhXHViZTcwXHViZTcxXHViZTczXHViZTc0XHViZTc1XHViZTdiXHViZTdjXHVi''@;'; + put 'put ''ZTdkXHViZTgwXHViZTg0XHViZThjXHViZThkXHViZThmXHViZTkwXHViZTkxXHViZTk4XHViZTk5XHViZWE4XHViZWQwXHViZWQxXHViZWQ0XHViZWQ3XHViZWQ4XHViZWUwXHViZWUzXHViZWU0XHViZWU1XHViZWVjXHViZjAxXHViZjA4XHViZjA5XHViZjE4XHViZjE5XHViZjFiXHViZjFj''@;'; + put 'put ''XHViZjFkXHViZjQwXHViZjQxXHViZjQ0XHViZjQ4XHViZjUwXHViZjUxXHViZjU1XHViZjk0XHViZmIwXHViZmM1XHViZmNjXHViZmNkXHViZmQwXHViZmQ0XHViZmRjXHViZmRmXHViZmUxXHVjMDNjXHVjMDUxXHVjMDU4XHVjMDVjXHVjMDYwXHVjMDY4XHVjMDY5XHVjMDkwXHVjMDkxXHVj''@;'; + put 'put ''MDk0XHVjMDk4XHVjMGEwXHVjMGExXHVjMGEzXHVjMGE1XHVjMGFjXHVjMGFkXHVjMGFmXHVjMGIwXHVjMGIzXHVjMGI0XHVjMGI1XHVjMGI2XHVjMGJjXHVjMGJkXHVjMGJmXHVjMGMwXHVjMGMxXHVjMGM1XHVjMGM4XHVjMGM5XHVjMGNjXHVjMGQwXHVjMGQ4XHVjMGQ5XHVjMGRiXHVjMGRj''@;'; + put 'put ''XHVjMGRkXHVjMGU0XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTg3XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxODddW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE4N11bRV1dPTQ3ODcyK0UsTFs0Nzg3MitFXT1CWzE4N11bRV0pO2ZvcihCWzE4OF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZDM2YVx1ZDM2Ylx1ZDM2Y1x1ZDM2ZFx1ZDM2ZVx1ZDM2Zlx1ZDM3MFx1ZDM3MVx1ZDM3Mlx1ZDM3M1x1ZDM3NFx1ZDM3NVx1ZDM3Nlx1ZDM3N1x1ZDM3OFx1ZDM3OVx1ZDM3YVx1ZDM3Ylx1ZDM3ZVx1ZDM3Zlx1ZDM4''@;'; + put 'put ''MVx1ZDM4Mlx1ZDM4M1x1ZDM4NVx1ZDM4Nlx1ZDM4N1x1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZDM4OFx1ZDM4OVx1ZDM4YVx1ZDM4Ylx1ZDM4ZVx1ZDM5Mlx1ZDM5M1x1ZDM5NFx1ZDM5NVx1ZDM5Nlx1ZDM5N1x1ZDM5YVx1ZDM5Ylx1ZDM5ZFx1ZDM5ZVx1ZDM5Zlx1''@;'; + put 'put ''ZDNhMVx1ZDNhMlx1ZDNhM1x1ZDNhNFx1ZDNhNVx1ZDNhNlx1ZDNhN1x1ZDNhYVx1ZDNhY1x1ZDNhZVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZDNhZlx1ZDNiMFx1ZDNiMVx1ZDNiMlx1ZDNiM1x1ZDNiNVx1ZDNiNlx1ZDNiN1x1ZDNiOVx1ZDNiYVx1ZDNiYlx1ZDNi''@;'; + put 'put ''ZFx1ZDNiZVx1ZDNiZlx1ZDNjMFx1ZDNjMVx1ZDNjMlx1ZDNjM1x1ZDNjNlx1ZDNjN1x1ZDNjYVx1ZDNjYlx1ZDNjY1x1ZDNjZFx1ZDNjZVx1ZDNjZlx1ZDNkMVx1ZDNkMlx1ZDNkM1x1ZDNkNFx1ZDNkNVx1ZDNkNlx1YzBlNVx1YzBlOFx1YzBlY1x1YzBmNFx1YzBmNVx1YzBmN1x1YzBmOVx1''@;'; + put 'put ''YzEwMFx1YzEwNFx1YzEwOFx1YzExMFx1YzExNVx1YzExY1x1YzExZFx1YzExZVx1YzExZlx1YzEyMFx1YzEyM1x1YzEyNFx1YzEyNlx1YzEyN1x1YzEyY1x1YzEyZFx1YzEyZlx1YzEzMFx1YzEzMVx1YzEzNlx1YzEzOFx1YzEzOVx1YzEzY1x1YzE0MFx1YzE0OFx1YzE0OVx1YzE0Ylx1YzE0''@;'; + put 'put ''Y1x1YzE0ZFx1YzE1NFx1YzE1NVx1YzE1OFx1YzE1Y1x1YzE2NFx1YzE2NVx1YzE2N1x1YzE2OFx1YzE2OVx1YzE3MFx1YzE3NFx1YzE3OFx1YzE4NVx1YzE4Y1x1YzE4ZFx1YzE4ZVx1YzE5MFx1YzE5NFx1YzE5Nlx1YzE5Y1x1YzE5ZFx1YzE5Zlx1YzFhMVx1YzFhNVx1YzFhOFx1YzFhOVx1''@;'; + put 'put ''YzFhY1x1YzFiMFx1YzFiZFx1YzFjNFx1YzFjOFx1YzFjY1x1YzFkNFx1YzFkN1x1YzFkOFx1YzFlMFx1YzFlNFx1YzFlOFx1YzFmMFx1YzFmMVx1YzFmM1x1YzFmY1x1YzFmZFx1YzIwMFx1YzIwNFx1YzIwY1x1YzIwZFx1YzIwZlx1YzIxMVx1YzIxOFx1YzIxOVx1YzIxY1x1YzIxZlx1YzIy''@;'; + put 'put ''MFx1YzIyOFx1YzIyOVx1YzIyYlx1YzIyZFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE4OF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTg4XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxODhdW0VdXT00ODEyOCtFLExbNDgxMjgrRV09QlsxODhdW0VdKTtmb3IoQlsxODldPSJcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWQzZDdcdWQzZDlcdWQzZGFcdWQzZGJcdWQzZGNcdWQzZGRcdWQzZGVcdWQzZGZcdWQzZTBcdWQzZTJcdWQzZTRcdWQzZTVcdWQzZTZcdWQzZTdcdWQzZThcdWQzZTlcdWQzZWFcdWQzZWJcdWQz''@;'; + put 'put ''ZWVcdWQzZWZcdWQzZjFcdWQzZjJcdWQzZjNcdWQzZjVcdWQzZjZcdWQzZjdcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWQzZjhcdWQzZjlcdWQzZmFcdWQzZmJcdWQzZmVcdWQ0MDBcdWQ0MDJcdWQ0MDNcdWQ0MDRcdWQ0MDVcdWQ0MDZcdWQ0MDdcdWQ0MDlcdWQ0MGFc''@;'; + put 'put ''dWQ0MGJcdWQ0MGNcdWQ0MGRcdWQ0MGVcdWQ0MGZcdWQ0MTBcdWQ0MTFcdWQ0MTJcdWQ0MTNcdWQ0MTRcdWQ0MTVcdWQ0MTZcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWQ0MTdcdWQ0MThcdWQ0MTlcdWQ0MWFcdWQ0MWJcdWQ0MWNcdWQ0MWVcdWQ0MWZcdWQ0MjBcdWQ0''@;'; + put 'put ''MjFcdWQ0MjJcdWQ0MjNcdWQ0MjRcdWQ0MjVcdWQ0MjZcdWQ0MjdcdWQ0MjhcdWQ0MjlcdWQ0MmFcdWQ0MmJcdWQ0MmNcdWQ0MmRcdWQ0MmVcdWQ0MmZcdWQ0MzBcdWQ0MzFcdWQ0MzJcdWQ0MzNcdWQ0MzRcdWQ0MzVcdWQ0MzZcdWQ0MzdcdWMyMmZcdWMyMzFcdWMyMzJcdWMyMzRcdWMyNDhc''@;'; + put 'put ''dWMyNTBcdWMyNTFcdWMyNTRcdWMyNThcdWMyNjBcdWMyNjVcdWMyNmNcdWMyNmRcdWMyNzBcdWMyNzRcdWMyN2NcdWMyN2RcdWMyN2ZcdWMyODFcdWMyODhcdWMyODlcdWMyOTBcdWMyOThcdWMyOWJcdWMyOWRcdWMyYTRcdWMyYTVcdWMyYThcdWMyYWNcdWMyYWRcdWMyYjRcdWMyYjVcdWMy''@;'; + put 'put ''YjdcdWMyYjlcdWMyZGNcdWMyZGRcdWMyZTBcdWMyZTNcdWMyZTRcdWMyZWJcdWMyZWNcdWMyZWRcdWMyZWZcdWMyZjFcdWMyZjZcdWMyZjhcdWMyZjlcdWMyZmJcdWMyZmNcdWMzMDBcdWMzMDhcdWMzMDlcdWMzMGNcdWMzMGRcdWMzMTNcdWMzMTRcdWMzMTVcdWMzMThcdWMzMWNcdWMzMjRc''@;'; + put 'put ''dWMzMjVcdWMzMjhcdWMzMjlcdWMzNDVcdWMzNjhcdWMzNjlcdWMzNmNcdWMzNzBcdWMzNzJcdWMzNzhcdWMzNzlcdWMzN2NcdWMzN2RcdWMzODRcdWMzODhcdWMzOGNcdWMzYzBcdWMzZDhcdWMzZDlcdWMzZGNcdWMzZGZcdWMzZTBcdWMzZTJcdWMzZThcdWMzZTlcdWMzZWRcdWMzZjRcdWMz''@;'; + put 'put ''ZjVcdWMzZjhcdWM0MDhcdWM0MTBcdWM0MjRcdWM0MmNcdWM0MzBcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxODldLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE4OV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTg5XVtFXV09NDgzODQrRSxMWzQ4Mzg0K0VdPUJbMTg5XVtFXSk7Zm9yKEJb''@;'; + put 'put ''MTkwXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkNDM4XHVkNDM5XHVkNDNhXHVkNDNiXHVkNDNjXHVkNDNkXHVkNDNlXHVkNDNmXHVkNDQxXHVkNDQyXHVkNDQzXHVkNDQ1XHVkNDQ2XHVkNDQ3XHVkNDQ4XHVkNDQ5XHVk''@;'; + put 'put ''NDRhXHVkNDRiXHVkNDRjXHVkNDRkXHVkNDRlXHVkNDRmXHVkNDUwXHVkNDUxXHVkNDUyXHVkNDUzXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkNDU0XHVkNDU1XHVkNDU2XHVkNDU3XHVkNDU4XHVkNDU5XHVkNDVhXHVkNDViXHVkNDVkXHVkNDVlXHVkNDVmXHVkNDYx''@;'; + put 'put ''XHVkNDYyXHVkNDYzXHVkNDY1XHVkNDY2XHVkNDY3XHVkNDY4XHVkNDY5XHVkNDZhXHVkNDZiXHVkNDZjXHVkNDZlXHVkNDcwXHVkNDcxXHVkNDcyXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkNDczXHVkNDc0XHVkNDc1XHVkNDc2XHVkNDc3XHVkNDdhXHVkNDdiXHVk''@;'; + put 'put ''NDdkXHVkNDdlXHVkNDgxXHVkNDgzXHVkNDg0XHVkNDg1XHVkNDg2XHVkNDg3XHVkNDhhXHVkNDhjXHVkNDhlXHVkNDhmXHVkNDkwXHVkNDkxXHVkNDkyXHVkNDkzXHVkNDk1XHVkNDk2XHVkNDk3XHVkNDk4XHVkNDk5XHVkNDlhXHVkNDliXHVkNDljXHVkNDlkXHVjNDM0XHVjNDNjXHVjNDNk''@;'; + put 'put ''XHVjNDQ4XHVjNDY0XHVjNDY1XHVjNDY4XHVjNDZjXHVjNDc0XHVjNDc1XHVjNDc5XHVjNDgwXHVjNDk0XHVjNDljXHVjNGI4XHVjNGJjXHVjNGU5XHVjNGYwXHVjNGYxXHVjNGY0XHVjNGY4XHVjNGZhXHVjNGZmXHVjNTAwXHVjNTAxXHVjNTBjXHVjNTEwXHVjNTE0XHVjNTFjXHVjNTI4XHVj''@;'; + put 'put ''NTI5XHVjNTJjXHVjNTMwXHVjNTM4XHVjNTM5XHVjNTNiXHVjNTNkXHVjNTQ0XHVjNTQ1XHVjNTQ4XHVjNTQ5XHVjNTRhXHVjNTRjXHVjNTRkXHVjNTRlXHVjNTUzXHVjNTU0XHVjNTU1XHVjNTU3XHVjNTU4XHVjNTU5XHVjNTVkXHVjNTVlXHVjNTYwXHVjNTYxXHVjNTY0XHVjNTY4XHVjNTcw''@;'; + put 'put ''XHVjNTcxXHVjNTczXHVjNTc0XHVjNTc1XHVjNTdjXHVjNTdkXHVjNTgwXHVjNTg0XHVjNTg3XHVjNThjXHVjNThkXHVjNThmXHVjNTkxXHVjNTk1XHVjNTk3XHVjNTk4XHVjNTljXHVjNWEwXHVjNWE5XHVjNWI0XHVjNWI1XHVjNWI4XHVjNWI5XHVjNWJiXHVjNWJjXHVjNWJkXHVjNWJlXHVj''@;'; + put 'put ''NWM0XHVjNWM1XHVjNWM2XHVjNWM3XHVjNWM4XHVjNWM5XHVjNWNhXHVjNWNjXHVjNWNlXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTkwXS5sZW5ndGg7KytFKTY1NTMzIT09QlsxOTBdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE5MF1bRV1dPTQ4NjQwK0UsTFs0ODY0MCtFXT1CWzE5''@;'; + put 'put ''MF1bRV0pO2ZvcihCWzE5MV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZDQ5ZVx1ZDQ5Zlx1ZDRhMFx1ZDRhMVx1ZDRhMlx1ZDRhM1x1ZDRhNFx1ZDRhNVx1ZDRhNlx1ZDRhN1x1ZDRhOFx1ZDRhYVx1ZDRhYlx1ZDRhY1x1''@;'; + put 'put ''ZDRhZFx1ZDRhZVx1ZDRhZlx1ZDRiMFx1ZDRiMVx1ZDRiMlx1ZDRiM1x1ZDRiNFx1ZDRiNVx1ZDRiNlx1ZDRiN1x1ZDRiOFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZDRiOVx1ZDRiYVx1ZDRiYlx1ZDRiY1x1ZDRiZFx1ZDRiZVx1ZDRiZlx1ZDRjMFx1ZDRjMVx1ZDRj''@;'; + put 'put ''Mlx1ZDRjM1x1ZDRjNFx1ZDRjNVx1ZDRjNlx1ZDRjN1x1ZDRjOFx1ZDRjOVx1ZDRjYVx1ZDRjYlx1ZDRjZFx1ZDRjZVx1ZDRjZlx1ZDRkMVx1ZDRkMlx1ZDRkM1x1ZDRkNVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZDRkNlx1ZDRkN1x1ZDRkOFx1ZDRkOVx1ZDRkYVx1''@;'; + put 'put ''ZDRkYlx1ZDRkZFx1ZDRkZVx1ZDRlMFx1ZDRlMVx1ZDRlMlx1ZDRlM1x1ZDRlNFx1ZDRlNVx1ZDRlNlx1ZDRlN1x1ZDRlOVx1ZDRlYVx1ZDRlYlx1ZDRlZFx1ZDRlZVx1ZDRlZlx1ZDRmMVx1ZDRmMlx1ZDRmM1x1ZDRmNFx1ZDRmNVx1ZDRmNlx1ZDRmN1x1ZDRmOVx1ZDRmYVx1ZDRmY1x1YzVk''@;'; + put 'put ''MFx1YzVkMVx1YzVkNFx1YzVkOFx1YzVlMFx1YzVlMVx1YzVlM1x1YzVlNVx1YzVlY1x1YzVlZFx1YzVlZVx1YzVmMFx1YzVmNFx1YzVmNlx1YzVmN1x1YzVmY1x1YzVmZFx1YzVmZVx1YzVmZlx1YzYwMFx1YzYwMVx1YzYwNVx1YzYwNlx1YzYwN1x1YzYwOFx1YzYwY1x1YzYxMFx1YzYxOFx1''@;'; + put 'put ''YzYxOVx1YzYxYlx1YzYxY1x1YzYyNFx1YzYyNVx1YzYyOFx1YzYyY1x1YzYyZFx1YzYyZVx1YzYzMFx1YzYzM1x1YzYzNFx1YzYzNVx1YzYzN1x1YzYzOVx1YzYzYlx1YzY0MFx1YzY0MVx1YzY0NFx1YzY0OFx1YzY1MFx1YzY1MVx1YzY1M1x1YzY1NFx1YzY1NVx1YzY1Y1x1YzY1ZFx1YzY2''@;'; + put 'put ''MFx1YzY2Y1x1YzY2Zlx1YzY3MVx1YzY3OFx1YzY3OVx1YzY3Y1x1YzY4MFx1YzY4OFx1YzY4OVx1YzY4Ylx1YzY4ZFx1YzY5NFx1YzY5NVx1YzY5OFx1YzY5Y1x1YzZhNFx1YzZhNVx1YzZhN1x1YzZhOVx1YzZiMFx1YzZiMVx1YzZiNFx1YzZiOFx1YzZiOVx1YzZiYVx1YzZjMFx1YzZjMVx1''@;'; + put 'put ''YzZjM1x1YzZjNVx1YzZjY1x1YzZjZFx1YzZkMFx1YzZkNFx1YzZkY1x1YzZkZFx1YzZlMFx1YzZlMVx1YzZlOFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE5MV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTkxXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxOTFdW0VdXT00ODg5NitFLExb''@;'; + put 'put ''NDg4OTYrRV09QlsxOTFdW0VdKTtmb3IoQlsxOTJdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWQ0ZmVcdWQ0ZmZcdWQ1MDBcdWQ1MDFcdWQ1MDJcdWQ1MDNcdWQ1MDVcdWQ1MDZcdWQ1MDdcdWQ1MDlcdWQ1MGFcdWQ1MGJc''@;'; + put 'put ''dWQ1MGRcdWQ1MGVcdWQ1MGZcdWQ1MTBcdWQ1MTFcdWQ1MTJcdWQ1MTNcdWQ1MTZcdWQ1MThcdWQ1MTlcdWQ1MWFcdWQ1MWJcdWQ1MWNcdWQ1MWRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWQ1MWVcdWQ1MWZcdWQ1MjBcdWQ1MjFcdWQ1MjJcdWQ1MjNcdWQ1MjRcdWQ1''@;'; + put 'put ''MjVcdWQ1MjZcdWQ1MjdcdWQ1MjhcdWQ1MjlcdWQ1MmFcdWQ1MmJcdWQ1MmNcdWQ1MmRcdWQ1MmVcdWQ1MmZcdWQ1MzBcdWQ1MzFcdWQ1MzJcdWQ1MzNcdWQ1MzRcdWQ1MzVcdWQ1MzZcdWQ1MzdcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWQ1MzhcdWQ1MzlcdWQ1M2Fc''@;'; + put 'put ''dWQ1M2JcdWQ1M2VcdWQ1M2ZcdWQ1NDFcdWQ1NDJcdWQ1NDNcdWQ1NDVcdWQ1NDZcdWQ1NDdcdWQ1NDhcdWQ1NDlcdWQ1NGFcdWQ1NGJcdWQ1NGVcdWQ1NTBcdWQ1NTJcdWQ1NTNcdWQ1NTRcdWQ1NTVcdWQ1NTZcdWQ1NTdcdWQ1NWFcdWQ1NWJcdWQ1NWRcdWQ1NWVcdWQ1NWZcdWQ1NjFcdWQ1''@;'; + put 'put ''NjJcdWQ1NjNcdWM2ZTlcdWM2ZWNcdWM2ZjBcdWM2ZjhcdWM2ZjlcdWM2ZmRcdWM3MDRcdWM3MDVcdWM3MDhcdWM3MGNcdWM3MTRcdWM3MTVcdWM3MTdcdWM3MTlcdWM3MjBcdWM3MjFcdWM3MjRcdWM3MjhcdWM3MzBcdWM3MzFcdWM3MzNcdWM3MzVcdWM3MzdcdWM3M2NcdWM3M2RcdWM3NDBc''@;'; + put 'put ''dWM3NDRcdWM3NGFcdWM3NGNcdWM3NGRcdWM3NGZcdWM3NTFcdWM3NTJcdWM3NTNcdWM3NTRcdWM3NTVcdWM3NTZcdWM3NTdcdWM3NThcdWM3NWNcdWM3NjBcdWM3NjhcdWM3NmJcdWM3NzRcdWM3NzVcdWM3NzhcdWM3N2NcdWM3N2RcdWM3N2VcdWM3ODNcdWM3ODRcdWM3ODVcdWM3ODdcdWM3''@;'; + put 'put ''ODhcdWM3ODlcdWM3OGFcdWM3OGVcdWM3OTBcdWM3OTFcdWM3OTRcdWM3OTZcdWM3OTdcdWM3OThcdWM3OWFcdWM3YTBcdWM3YTFcdWM3YTNcdWM3YTRcdWM3YTVcdWM3YTZcdWM3YWNcdWM3YWRcdWM3YjBcdWM3YjRcdWM3YmNcdWM3YmRcdWM3YmZcdWM3YzBcdWM3YzFcdWM3YzhcdWM3Yzlc''@;'; + put 'put ''dWM3Y2NcdWM3Y2VcdWM3ZDBcdWM3ZDhcdWM3ZGRcdWM3ZTRcdWM3ZThcdWM3ZWNcdWM4MDBcdWM4MDFcdWM4MDRcdWM4MDhcdWM4MGFcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxOTJdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE5Ml1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTkyXVtF''@;'; + put 'put ''XV09NDkxNTIrRSxMWzQ5MTUyK0VdPUJbMTkyXVtFXSk7Zm9yKEJbMTkzXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkNTY0XHVkNTY2XHVkNTY3XHVkNTZhXHVkNTZjXHVkNTZlXHVkNTZmXHVkNTcwXHVkNTcxXHVkNTcy''@;'; + put 'put ''XHVkNTczXHVkNTc2XHVkNTc3XHVkNTc5XHVkNTdhXHVkNTdiXHVkNTdkXHVkNTdlXHVkNTdmXHVkNTgwXHVkNTgxXHVkNTgyXHVkNTgzXHVkNTg2XHVkNThhXHVkNThiXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkNThjXHVkNThkXHVkNThlXHVkNThmXHVkNTkxXHVk''@;'; + put 'put ''NTkyXHVkNTkzXHVkNTk0XHVkNTk1XHVkNTk2XHVkNTk3XHVkNTk4XHVkNTk5XHVkNTlhXHVkNTliXHVkNTljXHVkNTlkXHVkNTllXHVkNTlmXHVkNWEwXHVkNWExXHVkNWEyXHVkNWEzXHVkNWE0XHVkNWE2XHVkNWE3XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkNWE4''@;'; + put 'put ''XHVkNWE5XHVkNWFhXHVkNWFiXHVkNWFjXHVkNWFkXHVkNWFlXHVkNWFmXHVkNWIwXHVkNWIxXHVkNWIyXHVkNWIzXHVkNWI0XHVkNWI1XHVkNWI2XHVkNWI3XHVkNWI4XHVkNWI5XHVkNWJhXHVkNWJiXHVkNWJjXHVkNWJkXHVkNWJlXHVkNWJmXHVkNWMwXHVkNWMxXHVkNWMyXHVkNWMzXHVk''@;'; + put 'put ''NWM0XHVkNWM1XHVkNWM2XHVkNWM3XHVjODEwXHVjODExXHVjODEzXHVjODE1XHVjODE2XHVjODFjXHVjODFkXHVjODIwXHVjODI0XHVjODJjXHVjODJkXHVjODJmXHVjODMxXHVjODM4XHVjODNjXHVjODQwXHVjODQ4XHVjODQ5XHVjODRjXHVjODRkXHVjODU0XHVjODcwXHVjODcxXHVjODc0''@;'; + put 'put ''XHVjODc4XHVjODdhXHVjODgwXHVjODgxXHVjODgzXHVjODg1XHVjODg2XHVjODg3XHVjODhiXHVjODhjXHVjODhkXHVjODk0XHVjODlkXHVjODlmXHVjOGExXHVjOGE4XHVjOGJjXHVjOGJkXHVjOGM0XHVjOGM4XHVjOGNjXHVjOGQ0XHVjOGQ1XHVjOGQ3XHVjOGQ5XHVjOGUwXHVjOGUxXHVj''@;'; + put 'put ''OGU0XHVjOGY1XHVjOGZjXHVjOGZkXHVjOTAwXHVjOTA0XHVjOTA1XHVjOTA2XHVjOTBjXHVjOTBkXHVjOTBmXHVjOTExXHVjOTE4XHVjOTJjXHVjOTM0XHVjOTUwXHVjOTUxXHVjOTU0XHVjOTU4XHVjOTYwXHVjOTYxXHVjOTYzXHVjOTZjXHVjOTcwXHVjOTc0XHVjOTdjXHVjOTg4XHVjOTg5''@;'; + put 'put ''XHVjOThjXHVjOTkwXHVjOTk4XHVjOTk5XHVjOTliXHVjOTlkXHVjOWMwXHVjOWMxXHVjOWM0XHVjOWM3XHVjOWM4XHVjOWNhXHVjOWQwXHVjOWQxXHVjOWQzXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTkzXS5sZW5ndGg7KytFKTY1NTMzIT09QlsxOTNdW0VdLmNoYXJDb2RlQXQoMCkm''@;'; + put 'put ''JihtZVtCWzE5M11bRV1dPTQ5NDA4K0UsTFs0OTQwOCtFXT1CWzE5M11bRV0pO2ZvcihCWzE5NF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZDVjYVx1ZDVjYlx1ZDVjZFx1ZDVjZVx1ZDVjZlx1ZDVkMVx1ZDVkM1x1ZDVk''@;'; + put 'put ''NFx1ZDVkNVx1ZDVkNlx1ZDVkN1x1ZDVkYVx1ZDVkY1x1ZDVkZVx1ZDVkZlx1ZDVlMFx1ZDVlMVx1ZDVlMlx1ZDVlM1x1ZDVlNlx1ZDVlN1x1ZDVlOVx1ZDVlYVx1ZDVlYlx1ZDVlZFx1ZDVlZVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZDVlZlx1ZDVmMFx1ZDVmMVx1''@;'; + put 'put ''ZDVmMlx1ZDVmM1x1ZDVmNlx1ZDVmOFx1ZDVmYVx1ZDVmYlx1ZDVmY1x1ZDVmZFx1ZDVmZVx1ZDVmZlx1ZDYwMlx1ZDYwM1x1ZDYwNVx1ZDYwNlx1ZDYwN1x1ZDYwOVx1ZDYwYVx1ZDYwYlx1ZDYwY1x1ZDYwZFx1ZDYwZVx1ZDYwZlx1ZDYxMlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZDYxNlx1ZDYxN1x1ZDYxOFx1ZDYxOVx1ZDYxYVx1ZDYxYlx1ZDYxZFx1ZDYxZVx1ZDYxZlx1ZDYyMVx1ZDYyMlx1ZDYyM1x1ZDYyNVx1ZDYyNlx1ZDYyN1x1ZDYyOFx1ZDYyOVx1ZDYyYVx1ZDYyYlx1ZDYyY1x1ZDYyZVx1ZDYyZlx1ZDYzMFx1ZDYzMVx1ZDYzMlx1ZDYzM1x1''@;'; + put 'put ''ZDYzNFx1ZDYzNVx1ZDYzNlx1ZDYzN1x1ZDYzYVx1ZDYzYlx1YzlkNVx1YzlkNlx1YzlkOVx1YzlkYVx1YzlkY1x1YzlkZFx1YzllMFx1YzllMlx1YzllNFx1YzllN1x1YzllY1x1YzllZFx1YzllZlx1YzlmMFx1YzlmMVx1YzlmOFx1YzlmOVx1YzlmY1x1Y2EwMFx1Y2EwOFx1Y2EwOVx1Y2Ew''@;'; + put 'put ''Ylx1Y2EwY1x1Y2EwZFx1Y2ExNFx1Y2ExOFx1Y2EyOVx1Y2E0Y1x1Y2E0ZFx1Y2E1MFx1Y2E1NFx1Y2E1Y1x1Y2E1ZFx1Y2E1Zlx1Y2E2MFx1Y2E2MVx1Y2E2OFx1Y2E3ZFx1Y2E4NFx1Y2E5OFx1Y2FiY1x1Y2FiZFx1Y2FjMFx1Y2FjNFx1Y2FjY1x1Y2FjZFx1Y2FjZlx1Y2FkMVx1Y2FkM1x1''@;'; + put 'put ''Y2FkOFx1Y2FkOVx1Y2FlMFx1Y2FlY1x1Y2FmNFx1Y2IwOFx1Y2IxMFx1Y2IxNFx1Y2IxOFx1Y2IyMFx1Y2IyMVx1Y2I0MVx1Y2I0OFx1Y2I0OVx1Y2I0Y1x1Y2I1MFx1Y2I1OFx1Y2I1OVx1Y2I1ZFx1Y2I2NFx1Y2I3OFx1Y2I3OVx1Y2I5Y1x1Y2JiOFx1Y2JkNFx1Y2JlNFx1Y2JlN1x1Y2Jl''@;'; + put 'put ''OVx1Y2MwY1x1Y2MwZFx1Y2MxMFx1Y2MxNFx1Y2MxY1x1Y2MxZFx1Y2MyMVx1Y2MyMlx1Y2MyN1x1Y2MyOFx1Y2MyOVx1Y2MyY1x1Y2MyZVx1Y2MzMFx1Y2MzOFx1Y2MzOVx1Y2MzYlx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE5NF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTk0XVtFXS5j''@;'; + put 'put ''aGFyQ29kZUF0KDApJiYobWVbQlsxOTRdW0VdXT00OTY2NCtFLExbNDk2NjQrRV09QlsxOTRdW0VdKTtmb3IoQlsxOTVdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWQ2M2RcdWQ2M2VcdWQ2M2ZcdWQ2NDFcdWQ2NDJcdWQ2''@;'; + put 'put ''NDNcdWQ2NDRcdWQ2NDZcdWQ2NDdcdWQ2NGFcdWQ2NGNcdWQ2NGVcdWQ2NGZcdWQ2NTBcdWQ2NTJcdWQ2NTNcdWQ2NTZcdWQ2NTdcdWQ2NTlcdWQ2NWFcdWQ2NWJcdWQ2NWRcdWQ2NWVcdWQ2NWZcdWQ2NjBcdWQ2NjFcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWQ2NjJc''@;'; + put 'put ''dWQ2NjNcdWQ2NjRcdWQ2NjVcdWQ2NjZcdWQ2NjhcdWQ2NmFcdWQ2NmJcdWQ2NmNcdWQ2NmRcdWQ2NmVcdWQ2NmZcdWQ2NzJcdWQ2NzNcdWQ2NzVcdWQ2NzZcdWQ2NzdcdWQ2NzhcdWQ2NzlcdWQ2N2FcdWQ2N2JcdWQ2N2NcdWQ2N2RcdWQ2N2VcdWQ2N2ZcdWQ2ODBcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWQ2ODFcdWQ2ODJcdWQ2ODRcdWQ2ODZcdWQ2ODdcdWQ2ODhcdWQ2ODlcdWQ2OGFcdWQ2OGJcdWQ2OGVcdWQ2OGZcdWQ2OTFcdWQ2OTJcdWQ2OTNcdWQ2OTVcdWQ2OTZcdWQ2OTdcdWQ2OThcdWQ2OTlcdWQ2OWFcdWQ2OWJcdWQ2OWNcdWQ2OWVcdWQ2YTBc''@;'; + put 'put ''dWQ2YTJcdWQ2YTNcdWQ2YTRcdWQ2YTVcdWQ2YTZcdWQ2YTdcdWQ2YTlcdWQ2YWFcdWNjM2NcdWNjM2RcdWNjM2VcdWNjNDRcdWNjNDVcdWNjNDhcdWNjNGNcdWNjNTRcdWNjNTVcdWNjNTdcdWNjNThcdWNjNTlcdWNjNjBcdWNjNjRcdWNjNjZcdWNjNjhcdWNjNzBcdWNjNzVcdWNjOThcdWNj''@;'; + put 'put ''OTlcdWNjOWNcdWNjYTBcdWNjYThcdWNjYTlcdWNjYWJcdWNjYWNcdWNjYWRcdWNjYjRcdWNjYjVcdWNjYjhcdWNjYmNcdWNjYzRcdWNjYzVcdWNjYzdcdWNjYzlcdWNjZDBcdWNjZDRcdWNjZTRcdWNjZWNcdWNjZjBcdWNkMDFcdWNkMDhcdWNkMDlcdWNkMGNcdWNkMTBcdWNkMThcdWNkMTlc''@;'; + put 'put ''dWNkMWJcdWNkMWRcdWNkMjRcdWNkMjhcdWNkMmNcdWNkMzlcdWNkNWNcdWNkNjBcdWNkNjRcdWNkNmNcdWNkNmRcdWNkNmZcdWNkNzFcdWNkNzhcdWNkODhcdWNkOTRcdWNkOTVcdWNkOThcdWNkOWNcdWNkYTRcdWNkYTVcdWNkYTdcdWNkYTlcdWNkYjBcdWNkYzRcdWNkY2NcdWNkZDBcdWNk''@;'; + put 'put ''ZThcdWNkZWNcdWNkZjBcdWNkZjhcdWNkZjlcdWNkZmJcdWNkZmRcdWNlMDRcdWNlMDhcdWNlMGNcdWNlMTRcdWNlMTlcdWNlMjBcdWNlMjFcdWNlMjRcdWNlMjhcdWNlMzBcdWNlMzFcdWNlMzNcdWNlMzVcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxOTVdLmxlbmd0aDsrK0UpNjU1MzMh''@;'; + put 'put ''PT1CWzE5NV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTk1XVtFXV09NDk5MjArRSxMWzQ5OTIwK0VdPUJbMTk1XVtFXSk7Zm9yKEJbMTk2XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkNmFiXHVkNmFkXHVkNmFlXHVk''@;'; + put 'put ''NmFmXHVkNmIxXHVkNmIyXHVkNmIzXHVkNmI0XHVkNmI1XHVkNmI2XHVkNmI3XHVkNmI4XHVkNmJhXHVkNmJjXHVkNmJkXHVkNmJlXHVkNmJmXHVkNmMwXHVkNmMxXHVkNmMyXHVkNmMzXHVkNmM2XHVkNmM3XHVkNmM5XHVkNmNhXHVkNmNiXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVkNmNkXHVkNmNlXHVkNmNmXHVkNmQwXHVkNmQyXHVkNmQzXHVkNmQ1XHVkNmQ2XHVkNmQ4XHVkNmRhXHVkNmRiXHVkNmRjXHVkNmRkXHVkNmRlXHVkNmRmXHVkNmUxXHVkNmUyXHVkNmUzXHVkNmU1XHVkNmU2XHVkNmU3XHVkNmU5XHVkNmVhXHVkNmViXHVkNmVjXHVkNmVkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkNmVlXHVkNmVmXHVkNmYxXHVkNmYyXHVkNmYzXHVkNmY0XHVkNmY2XHVkNmY3XHVkNmY4XHVkNmY5XHVkNmZhXHVkNmZiXHVkNmZlXHVkNmZmXHVkNzAxXHVkNzAyXHVkNzAzXHVkNzA1XHVkNzA2XHVkNzA3XHVkNzA4XHVkNzA5''@;'; + put 'put ''XHVkNzBhXHVkNzBiXHVkNzBjXHVkNzBkXHVkNzBlXHVkNzBmXHVkNzEwXHVkNzEyXHVkNzEzXHVkNzE0XHVjZTU4XHVjZTU5XHVjZTVjXHVjZTVmXHVjZTYwXHVjZTYxXHVjZTY4XHVjZTY5XHVjZTZiXHVjZTZkXHVjZTc0XHVjZTc1XHVjZTc4XHVjZTdjXHVjZTg0XHVjZTg1XHVjZTg3XHVj''@;'; + put 'put ''ZTg5XHVjZTkwXHVjZTkxXHVjZTk0XHVjZTk4XHVjZWEwXHVjZWExXHVjZWEzXHVjZWE0XHVjZWE1XHVjZWFjXHVjZWFkXHVjZWMxXHVjZWU0XHVjZWU1XHVjZWU4XHVjZWViXHVjZWVjXHVjZWY0XHVjZWY1XHVjZWY3XHVjZWY4XHVjZWY5XHVjZjAwXHVjZjAxXHVjZjA0XHVjZjA4XHVjZjEw''@;'; + put 'put ''XHVjZjExXHVjZjEzXHVjZjE1XHVjZjFjXHVjZjIwXHVjZjI0XHVjZjJjXHVjZjJkXHVjZjJmXHVjZjMwXHVjZjMxXHVjZjM4XHVjZjU0XHVjZjU1XHVjZjU4XHVjZjVjXHVjZjY0XHVjZjY1XHVjZjY3XHVjZjY5XHVjZjcwXHVjZjcxXHVjZjc0XHVjZjc4XHVjZjgwXHVjZjg1XHVjZjhjXHVj''@;'; + put 'put ''ZmExXHVjZmE4XHVjZmIwXHVjZmM0XHVjZmUwXHVjZmUxXHVjZmU0XHVjZmU4XHVjZmYwXHVjZmYxXHVjZmYzXHVjZmY1XHVjZmZjXHVkMDAwXHVkMDA0XHVkMDExXHVkMDE4XHVkMDJkXHVkMDM0XHVkMDM1XHVkMDM4XHVkMDNjXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTk2XS5sZW5n''@;'; + put 'put ''dGg7KytFKTY1NTMzIT09QlsxOTZdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE5Nl1bRV1dPTUwMTc2K0UsTFs1MDE3NitFXT1CWzE5Nl1bRV0pO2ZvcihCWzE5N109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZDcxNVx1''@;'; + put 'put ''ZDcxNlx1ZDcxN1x1ZDcxYVx1ZDcxYlx1ZDcxZFx1ZDcxZVx1ZDcxZlx1ZDcyMVx1ZDcyMlx1ZDcyM1x1ZDcyNFx1ZDcyNVx1ZDcyNlx1ZDcyN1x1ZDcyYVx1ZDcyY1x1ZDcyZVx1ZDcyZlx1ZDczMFx1ZDczMVx1ZDczMlx1ZDczM1x1ZDczNlx1ZDczN1x1ZDczOVx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZDczYVx1ZDczYlx1ZDczZFx1ZDczZVx1ZDczZlx1ZDc0MFx1ZDc0MVx1ZDc0Mlx1ZDc0M1x1ZDc0NVx1ZDc0Nlx1ZDc0OFx1ZDc0YVx1ZDc0Ylx1ZDc0Y1x1ZDc0ZFx1ZDc0ZVx1ZDc0Zlx1ZDc1Mlx1ZDc1M1x1ZDc1NVx1ZDc1YVx1ZDc1Ylx1ZDc1Y1x1''@;'; + put 'put ''ZDc1ZFx1ZDc1ZVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZDc1Zlx1ZDc2Mlx1ZDc2NFx1ZDc2Nlx1ZDc2N1x1ZDc2OFx1ZDc2YVx1ZDc2Ylx1ZDc2ZFx1ZDc2ZVx1ZDc2Zlx1ZDc3MVx1ZDc3Mlx1ZDc3M1x1ZDc3NVx1ZDc3Nlx1ZDc3N1x1ZDc3OFx1ZDc3OVx1ZDc3''@;'; + put 'put ''YVx1ZDc3Ylx1ZDc3ZVx1ZDc3Zlx1ZDc4MFx1ZDc4Mlx1ZDc4M1x1ZDc4NFx1ZDc4NVx1ZDc4Nlx1ZDc4N1x1ZDc4YVx1ZDc4Ylx1ZDA0NFx1ZDA0NVx1ZDA0N1x1ZDA0OVx1ZDA1MFx1ZDA1NFx1ZDA1OFx1ZDA2MFx1ZDA2Y1x1ZDA2ZFx1ZDA3MFx1ZDA3NFx1ZDA3Y1x1ZDA3ZFx1ZDA4MVx1''@;'; + put 'put ''ZDBhNFx1ZDBhNVx1ZDBhOFx1ZDBhY1x1ZDBiNFx1ZDBiNVx1ZDBiN1x1ZDBiOVx1ZDBjMFx1ZDBjMVx1ZDBjNFx1ZDBjOFx1ZDBjOVx1ZDBkMFx1ZDBkMVx1ZDBkM1x1ZDBkNFx1ZDBkNVx1ZDBkY1x1ZDBkZFx1ZDBlMFx1ZDBlNFx1ZDBlY1x1ZDBlZFx1ZDBlZlx1ZDBmMFx1ZDBmMVx1ZDBm''@;'; + put 'put ''OFx1ZDEwZFx1ZDEzMFx1ZDEzMVx1ZDEzNFx1ZDEzOFx1ZDEzYVx1ZDE0MFx1ZDE0MVx1ZDE0M1x1ZDE0NFx1ZDE0NVx1ZDE0Y1x1ZDE0ZFx1ZDE1MFx1ZDE1NFx1ZDE1Y1x1ZDE1ZFx1ZDE1Zlx1ZDE2MVx1ZDE2OFx1ZDE2Y1x1ZDE3Y1x1ZDE4NFx1ZDE4OFx1ZDFhMFx1ZDFhMVx1ZDFhNFx1''@;'; + put 'put ''ZDFhOFx1ZDFiMFx1ZDFiMVx1ZDFiM1x1ZDFiNVx1ZDFiYVx1ZDFiY1x1ZDFjMFx1ZDFkOFx1ZDFmNFx1ZDFmOFx1ZDIwN1x1ZDIwOVx1ZDIxMFx1ZDIyY1x1ZDIyZFx1ZDIzMFx1ZDIzNFx1ZDIzY1x1ZDIzZFx1ZDIzZlx1ZDI0MVx1ZDI0OFx1ZDI1Y1x1ZmZmZCIuc3BsaXQoIiIpLEU9MDtF''@;'; + put 'put ''IT1CWzE5N10ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTk3XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxOTddW0VdXT01MDQzMitFLExbNTA0MzIrRV09QlsxOTddW0VdKTtmb3IoQlsxOThdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWQ3OGRcdWQ3OGVcdWQ3OGZcdWQ3OTFcdWQ3OTJcdWQ3OTNcdWQ3OTRcdWQ3OTVcdWQ3OTZcdWQ3OTdcdWQ3OWFcdWQ3OWNcdWQ3OWVcdWQ3OWZcdWQ3YTBcdWQ3YTFcdWQ3YTJcdWQ3YTNcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWQyNjRcdWQyODBcdWQyODFcdWQyODRcdWQyODhcdWQyOTBcdWQyOTFcdWQyOTVcdWQyOWNcdWQyYTBcdWQyYTRcdWQyYWNcdWQyYjFc''@;'; + put 'put ''dWQyYjhcdWQyYjlcdWQyYmNcdWQyYmZcdWQyYzBcdWQyYzJcdWQyYzhcdWQyYzlcdWQyY2JcdWQyZDRcdWQyZDhcdWQyZGNcdWQyZTRcdWQyZTVcdWQyZjBcdWQyZjFcdWQyZjRcdWQyZjhcdWQzMDBcdWQzMDFcdWQzMDNcdWQzMDVcdWQzMGNcdWQzMGRcdWQzMGVcdWQzMTBcdWQzMTRcdWQz''@;'; + put 'put ''MTZcdWQzMWNcdWQzMWRcdWQzMWZcdWQzMjBcdWQzMjFcdWQzMjVcdWQzMjhcdWQzMjlcdWQzMmNcdWQzMzBcdWQzMzhcdWQzMzlcdWQzM2JcdWQzM2NcdWQzM2RcdWQzNDRcdWQzNDVcdWQzN2NcdWQzN2RcdWQzODBcdWQzODRcdWQzOGNcdWQzOGRcdWQzOGZcdWQzOTBcdWQzOTFcdWQzOThc''@;'; + put 'put ''dWQzOTlcdWQzOWNcdWQzYTBcdWQzYThcdWQzYTlcdWQzYWJcdWQzYWRcdWQzYjRcdWQzYjhcdWQzYmNcdWQzYzRcdWQzYzVcdWQzYzhcdWQzYzlcdWQzZDBcdWQzZDhcdWQzZTFcdWQzZTNcdWQzZWNcdWQzZWRcdWQzZjBcdWQzZjRcdWQzZmNcdWQzZmRcdWQzZmZcdWQ0MDFcdWZmZmQiLnNw''@;'; + put 'put ''bGl0KCIiKSxFPTA7RSE9QlsxOThdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE5OF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTk4XVtFXV09NTA2ODgrRSxMWzUwNjg4K0VdPUJbMTk4XVtFXSk7Zm9yKEJbMTk5XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkNDA4XHVkNDFkXHVkNDQwXHVkNDQ0XHVkNDVjXHVkNDYwXHVkNDY0XHVkNDZkXHVkNDZmXHVkNDc4XHVkNDc5''@;'; + put 'put ''XHVkNDdjXHVkNDdmXHVkNDgwXHVkNDgyXHVkNDg4XHVkNDg5XHVkNDhiXHVkNDhkXHVkNDk0XHVkNGE5XHVkNGNjXHVkNGQwXHVkNGQ0XHVkNGRjXHVkNGRmXHVkNGU4XHVkNGVjXHVkNGYwXHVkNGY4XHVkNGZiXHVkNGZkXHVkNTA0XHVkNTA4XHVkNTBjXHVkNTE0XHVkNTE1XHVkNTE3XHVk''@;'; + put 'put ''NTNjXHVkNTNkXHVkNTQwXHVkNTQ0XHVkNTRjXHVkNTRkXHVkNTRmXHVkNTUxXHVkNTU4XHVkNTU5XHVkNTVjXHVkNTYwXHVkNTY1XHVkNTY4XHVkNTY5XHVkNTZiXHVkNTZkXHVkNTc0XHVkNTc1XHVkNTc4XHVkNTdjXHVkNTg0XHVkNTg1XHVkNTg3XHVkNTg4XHVkNTg5XHVkNTkwXHVkNWE1''@;'; + put 'put ''XHVkNWM4XHVkNWM5XHVkNWNjXHVkNWQwXHVkNWQyXHVkNWQ4XHVkNWQ5XHVkNWRiXHVkNWRkXHVkNWU0XHVkNWU1XHVkNWU4XHVkNWVjXHVkNWY0XHVkNWY1XHVkNWY3XHVkNWY5XHVkNjAwXHVkNjAxXHVkNjA0XHVkNjA4XHVkNjEwXHVkNjExXHVkNjEzXHVkNjE0XHVkNjE1XHVkNjFjXHVk''@;'; + put 'put ''NjIwXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTk5XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxOTldW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE5OV1bRV1dPTUwOTQ0K0UsTFs1MDk0NCtFXT1CWzE5OV1bRV0pO2ZvcihCWzIwMF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZDYyNFx1ZDYyZFx1ZDYzOFx1ZDYzOVx1ZDYzY1x1ZDY0MFx1ZDY0NVx1ZDY0OFx1ZDY0''@;'; + put 'put ''OVx1ZDY0Ylx1ZDY0ZFx1ZDY1MVx1ZDY1NFx1ZDY1NVx1ZDY1OFx1ZDY1Y1x1ZDY2N1x1ZDY2OVx1ZDY3MFx1ZDY3MVx1ZDY3NFx1ZDY4M1x1ZDY4NVx1ZDY4Y1x1ZDY4ZFx1ZDY5MFx1ZDY5NFx1ZDY5ZFx1ZDY5Zlx1ZDZhMVx1ZDZhOFx1ZDZhY1x1ZDZiMFx1ZDZiOVx1ZDZiYlx1ZDZjNFx1''@;'; + put 'put ''ZDZjNVx1ZDZjOFx1ZDZjY1x1ZDZkMVx1ZDZkNFx1ZDZkN1x1ZDZkOVx1ZDZlMFx1ZDZlNFx1ZDZlOFx1ZDZmMFx1ZDZmNVx1ZDZmY1x1ZDZmZFx1ZDcwMFx1ZDcwNFx1ZDcxMVx1ZDcxOFx1ZDcxOVx1ZDcxY1x1ZDcyMFx1ZDcyOFx1ZDcyOVx1ZDcyYlx1ZDcyZFx1ZDczNFx1ZDczNVx1ZDcz''@;'; + put 'put ''OFx1ZDczY1x1ZDc0NFx1ZDc0N1x1ZDc0OVx1ZDc1MFx1ZDc1MVx1ZDc1NFx1ZDc1Nlx1ZDc1N1x1ZDc1OFx1ZDc1OVx1ZDc2MFx1ZDc2MVx1ZDc2M1x1ZDc2NVx1ZDc2OVx1ZDc2Y1x1ZDc3MFx1ZDc3NFx1ZDc3Y1x1ZDc3ZFx1ZDc4MVx1ZDc4OFx1ZDc4OVx1ZDc4Y1x1ZDc5MFx1ZDc5OFx1''@;'; + put 'put ''ZDc5OVx1ZDc5Ylx1ZDc5ZFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIwMF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjAwXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMDBdW0VdXT01MTIwMCtFLExbNTEyMDArRV09QlsyMDBdW0VdKTtmb3IoQlsyMDJdPSJcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTRmM2RcdTRmNzNcdTUwNDdcdTUwZjlcdTUyYTBcdTUzZWZcdTU0''@;'; + put 'put ''NzVcdTU0ZTVcdTU2MDlcdTVhYzFcdTViYjZcdTY2ODdcdTY3YjZcdTY3YjdcdTY3ZWZcdTZiNGNcdTczYzJcdTc1YzJcdTdhM2NcdTgyZGJcdTgzMDRcdTg4NTdcdTg4ODhcdThhMzZcdThjYzhcdThkY2ZcdThlZmJcdThmZTZcdTk5ZDVcdTUyM2JcdTUzNzRcdTU0MDRcdTYwNmFcdTYxNjRc''@;'; + put 'put ''dTZiYmNcdTczY2ZcdTgxMWFcdTg5YmFcdTg5ZDJcdTk1YTNcdTRmODNcdTUyMGFcdTU4YmVcdTU5NzhcdTU5ZTZcdTVlNzJcdTVlNzlcdTYxYzdcdTYzYzBcdTY3NDZcdTY3ZWNcdTY4N2ZcdTZmOTdcdTc2NGVcdTc3MGJcdTc4ZjVcdTdhMDhcdTdhZmZcdTdjMjFcdTgwOWRcdTgyNmVcdTgy''@;'; + put 'put ''NzFcdThhZWJcdTk1OTNcdTRlNmJcdTU1OWRcdTY2ZjdcdTZlMzRcdTc4YTNcdTdhZWRcdTg0NWJcdTg5MTBcdTg3NGVcdTk3YThcdTUyZDhcdTU3NGVcdTU4MmFcdTVkNGNcdTYxMWZcdTYxYmVcdTYyMjFcdTY1NjJcdTY3ZDFcdTZhNDRcdTZlMWJcdTc1MThcdTc1YjNcdTc2ZTNcdTc3YjBc''@;'; + put 'put ''dTdkM2FcdTkwYWZcdTk0NTFcdTk0NTJcdTlmOTVcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMDJdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIwMl1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjAyXVtFXV09NTE3MTIrRSxMWzUxNzEyK0VdPUJbMjAyXVtFXSk7Zm9yKEJbMjAzXT0iXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1MzIzXHU1Y2FjXHU3NTMyXHU4MGRiXHU5''@;'; + put 'put ''MjQwXHU5NTk4XHU1MjViXHU1ODA4XHU1OWRjXHU1Y2ExXHU1ZDE3XHU1ZWI3XHU1ZjNhXHU1ZjRhXHU2MTc3XHU2YzVmXHU3NTdhXHU3NTg2XHU3Y2UwXHU3ZDczXHU3ZGIxXHU3ZjhjXHU4MTU0XHU4MjIxXHU4NTkxXHU4OTQxXHU4YjFiXHU5MmZjXHU5NjRkXHU5YzQ3XHU0ZWNiXHU0ZWY3''@;'; + put 'put ''XHU1MDBiXHU1MWYxXHU1ODRmXHU2MTM3XHU2MTNlXHU2MTY4XHU2NTM5XHU2OWVhXHU2ZjExXHU3NWE1XHU3Njg2XHU3NmQ2XHU3Yjg3XHU4MmE1XHU4NGNiXHVmOTAwXHU5M2E3XHU5NThiXHU1NTgwXHU1YmEyXHU1NzUxXHVmOTAxXHU3Y2IzXHU3ZmI5XHU5MWI1XHU1MDI4XHU1M2JiXHU1''@;'; + put 'put ''YzQ1XHU1ZGU4XHU2MmQyXHU2MzZlXHU2NGRhXHU2NGU3XHU2ZTIwXHU3MGFjXHU3OTViXHU4ZGRkXHU4ZTFlXHVmOTAyXHU5MDdkXHU5MjQ1XHU5MmY4XHU0ZTdlXHU0ZWY2XHU1MDY1XHU1ZGZlXHU1ZWZhXHU2MTA2XHU2OTU3XHU4MTcxXHU4NjU0XHU4ZTQ3XHU5Mzc1XHU5YTJiXHU0ZTVl''@;'; + put 'put ''XHU1MDkxXHU2NzcwXHU2ODQwXHU1MTA5XHU1MjhkXHU1MjkyXHU2YWEyXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjAzXS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMDNdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIwM11bRV1dPTUxOTY4K0UsTFs1MTk2OCtFXT1CWzIwM11bRV0pO2Zv''@;'; + put 'put ''cihCWzIwNF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NzdiY1x1OTIxMFx1''@;'; + put 'put ''OWVkNFx1NTJhYlx1NjAyZlx1OGZmMlx1NTA0OFx1NjFhOVx1NjNlZFx1NjRjYVx1NjgzY1x1NmE4NFx1NmZjMFx1ODE4OFx1ODlhMVx1OTY5NFx1NTgwNVx1NzI3ZFx1NzJhY1x1NzUwNFx1N2Q3OVx1N2U2ZFx1ODBhOVx1ODk4Ylx1OGI3NFx1OTA2M1x1OWQ1MVx1NjI4OVx1NmM3YVx1NmY1''@;'; + put 'put ''NFx1N2Q1MFx1N2YzYVx1OGEyM1x1NTE3Y1x1NjE0YVx1N2I5ZFx1OGIxOVx1OTI1N1x1OTM4Y1x1NGVhY1x1NGZkM1x1NTAxZVx1NTBiZVx1NTEwNlx1NTJjMVx1NTJjZFx1NTM3Zlx1NTc3MFx1NTg4M1x1NWU5YVx1NWY5MVx1NjE3Nlx1NjFhY1x1NjRjZVx1NjU2Y1x1NjY2Zlx1NjZiYlx1''@;'; + put 'put ''NjZmNFx1Njg5N1x1NmQ4N1x1NzA4NVx1NzBmMVx1NzQ5Zlx1NzRhNVx1NzRjYVx1NzVkOVx1Nzg2Y1x1NzhlY1x1N2FkZlx1N2FmNlx1N2Q0NVx1N2Q5M1x1ODAxNVx1ODAzZlx1ODExYlx1ODM5Nlx1OGI2Nlx1OGYxNVx1OTAxNVx1OTNlMVx1OTgwM1x1OTgzOFx1OWE1YVx1OWJlOFx1NGZj''@;'; + put 'put ''Mlx1NTU1M1x1NTgzYVx1NTk1MVx1NWI2M1x1NWM0Nlx1NjBiOFx1NjIxMlx1Njg0Mlx1NjhiMFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIwNF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjA0XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMDRdW0VdXT01MjIyNCtFLExbNTIyMjQrRV09''@;'; + put 'put ''QlsyMDRdW0VdKTtmb3IoQlsyMDVdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dTY4ZThcdTZlYWFcdTc1NGNcdTc2NzhcdTc4Y2VcdTdhM2RcdTdjZmJcdTdlNmJcdTdlN2NcdThhMDhcdThhYTFcdThjM2ZcdTk2OGVcdTlkYzRcdTUzZTRcdTUzZTlcdTU0NGFcdTU0NzFcdTU2ZmFcdTU5ZDFcdTViNjRcdTVjM2JcdTVlYWJcdTYyZjdcdTY1MzdcdTY1NDVcdTY1NzJcdTY2''@;'; + put 'put ''YTBcdTY3YWZcdTY5YzFcdTZjYmRcdTc1ZmNcdTc2OTBcdTc3N2VcdTdhM2ZcdTdmOTRcdTgwMDNcdTgwYTFcdTgxOGZcdTgyZTZcdTgyZmRcdTgzZjBcdTg1YzFcdTg4MzFcdTg4YjRcdThhYTVcdWY5MDNcdThmOWNcdTkzMmVcdTk2YzdcdTk4NjdcdTlhZDhcdTlmMTNcdTU0ZWRcdTY1OWJc''@;'; + put 'put ''dTY2ZjJcdTY4OGZcdTdhNDBcdThjMzdcdTlkNjBcdTU2ZjBcdTU3NjRcdTVkMTFcdTY2MDZcdTY4YjFcdTY4Y2RcdTZlZmVcdTc0MjhcdTg4OWVcdTliZTRcdTZjNjhcdWY5MDRcdTlhYThcdTRmOWJcdTUxNmNcdTUxNzFcdTUyOWZcdTViNTRcdTVkZTVcdTYwNTBcdTYwNmRcdTYyZjFcdTYz''@;'; + put 'put ''YTdcdTY1M2JcdTczZDlcdTdhN2FcdTg2YTNcdThjYTJcdTk3OGZcdTRlMzJcdTViZTFcdTYyMDhcdTY3OWNcdTc0ZGNcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMDVdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIwNV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjA1XVtFXV09NTI0ODAr''@;'; + put 'put ''RSxMWzUyNDgwK0VdPUJbMjA1XVtFXSk7Zm9yKEJbMjA2XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHU3OWQxXHU4M2QzXHU4YTg3XHU4YWIyXHU4ZGU4XHU5MDRlXHU5MzRiXHU5ODQ2XHU1ZWQzXHU2OWU4XHU4NWZmXHU5MGVkXHVmOTA1XHU1MWEwXHU1Yjk4XHU1YmVjXHU2MTYzXHU2OGZhXHU2YjNlXHU3MDRjXHU3NDJmXHU3NGQ4XHU3YmExXHU3ZjUwXHU4M2M1XHU4''@;'; + put 'put ''OWMwXHU4Y2FiXHU5NWRjXHU5OTI4XHU1MjJlXHU2MDVkXHU2MmVjXHU5MDAyXHU0ZjhhXHU1MTQ5XHU1MzIxXHU1OGQ5XHU1ZWUzXHU2NmUwXHU2ZDM4XHU3MDlhXHU3MmMyXHU3M2Q2XHU3YjUwXHU4MGYxXHU5NDViXHU1MzY2XHU2MzliXHU3ZjZiXHU0ZTU2XHU1MDgwXHU1ODRhXHU1OGRl''@;'; + put 'put ''XHU2MDJhXHU2MTI3XHU2MmQwXHU2OWQwXHU5YjQxXHU1YjhmXHU3ZDE4XHU4MGIxXHU4ZjVmXHU0ZWE0XHU1MGQxXHU1NGFjXHU1NWFjXHU1YjBjXHU1ZGEwXHU1ZGU3XHU2NTJhXHU2NTRlXHU2ODIxXHU2YTRiXHU3MmUxXHU3NjhlXHU3N2VmXHU3ZDVlXHU3ZmY5XHU4MWEwXHU4NTRlXHU4''@;'; + put 'put ''NmRmXHU4ZjAzXHU4ZjRlXHU5MGNhXHU5OTAzXHU5YTU1XHU5YmFiXHU0ZTE4XHU0ZTQ1XHU0ZTVkXHU0ZWM3XHU0ZmYxXHU1MTc3XHU1MmZlXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjA2XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMDZdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIw''@;'; + put 'put ''Nl1bRV1dPTUyNzM2K0UsTFs1MjczNitFXT1CWzIwNl1bRV0pO2ZvcihCWzIwN109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NTM0MFx1NTNlM1x1NTNlNVx1NTQ4ZVx1NTYxNFx1NTc3NVx1NTdhMlx1NWJjN1x1NWQ4N1x1NWVkMFx1NjFmY1x1NjJkOFx1NjU1MVx1NjdiOFx1NjdlOVx1NjljYlx1NmI1MFx1NmJjNlx1NmJlY1x1NmM0Mlx1NmU5ZFx1NzA3OFx1NzJkN1x1''@;'; + put 'put ''NzM5Nlx1NzQwM1x1NzdiZlx1NzdlOVx1N2E3Nlx1N2Q3Zlx1ODAwOVx1ODFmY1x1ODIwNVx1ODIwYVx1ODJkZlx1ODg2Mlx1OGIzM1x1OGNmY1x1OGVjMFx1OTAxMVx1OTBiMVx1OTI2NFx1OTJiNlx1OTlkMlx1OWE0NVx1OWNlOVx1OWRkN1x1OWY5Y1x1NTcwYlx1NWM0MFx1ODNjYVx1OTdh''@;'; + put 'put ''MFx1OTdhYlx1OWViNFx1NTQxYlx1N2E5OFx1N2ZhNFx1ODhkOVx1OGVjZFx1OTBlMVx1NTgwMFx1NWM0OFx1NjM5OFx1N2E5Zlx1NWJhZVx1NWYxM1x1N2E3OVx1N2FhZVx1ODI4ZVx1OGVhY1x1NTAyNlx1NTIzOFx1NTJmOFx1NTM3N1x1NTcwOFx1NjJmM1x1NjM3Mlx1NmIwYVx1NmRjM1x1''@;'; + put 'put ''NzczN1x1NTNhNVx1NzM1N1x1ODU2OFx1OGU3Nlx1OTVkNVx1NjczYVx1NmFjM1x1NmY3MFx1OGE2ZFx1OGVjY1x1OTk0Ylx1ZjkwNlx1NjY3N1x1NmI3OFx1OGNiNFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIwN10ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjA3XVtFXS5jaGFyQ29kZUF0''@;'; + put 'put ''KDApJiYobWVbQlsyMDddW0VdXT01Mjk5MitFLExbNTI5OTIrRV09QlsyMDddW0VdKTtmb3IoQlsyMDhdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTliM2NcdWY5MDdcdTUzZWJcdTU3MmRcdTU5NGVcdTYzYzZcdTY5ZmJcdTczZWFcdTc4NDVcdTdhYmFcdTdhYzVcdTdjZmVcdTg0NzVcdTg5OGZcdThkNzNcdTkwMzVcdTk1YThcdTUyZmJcdTU3NDdcdTc1NDdcdTdiNjBc''@;'; + put 'put ''dTgzY2NcdTkyMWVcdWY5MDhcdTZhNThcdTUxNGJcdTUyNGJcdTUyODdcdTYyMWZcdTY4ZDhcdTY5NzVcdTk2OTlcdTUwYzVcdTUyYTRcdTUyZTRcdTYxYzNcdTY1YTRcdTY4MzlcdTY5ZmZcdTc0N2VcdTdiNGJcdTgyYjlcdTgzZWJcdTg5YjJcdThiMzlcdThmZDFcdTk5NDlcdWY5MDlcdTRl''@;'; + put 'put ''Y2FcdTU5OTdcdTY0ZDJcdTY2MTFcdTZhOGVcdTc0MzRcdTc5ODFcdTc5YmRcdTgyYTlcdTg4N2VcdTg4N2ZcdTg5NWZcdWY5MGFcdTkzMjZcdTRmMGJcdTUzY2FcdTYwMjVcdTYyNzFcdTZjNzJcdTdkMWFcdTdkNjZcdTRlOThcdTUxNjJcdTc3ZGNcdTgwYWZcdTRmMDFcdTRmMGVcdTUxNzZc''@;'; + put 'put ''dTUxODBcdTU1ZGNcdTU2NjhcdTU3M2JcdTU3ZmFcdTU3ZmNcdTU5MTRcdTU5NDdcdTU5OTNcdTViYzRcdTVjOTBcdTVkMGVcdTVkZjFcdTVlN2VcdTVmY2NcdTYyODBcdTY1ZDdcdTY1ZTNcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMDhdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIwOF1b''@;'; + put 'put ''RV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjA4XVtFXV09NTMyNDgrRSxMWzUzMjQ4K0VdPUJbMjA4XVtFXSk7Zm9yKEJbMjA5XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2NzFlXHU2NzFmXHU2NzVlXHU2OGNiXHU2OGM0XHU2YTVmXHU2YjNhXHU2YzIzXHU2YzdkXHU2YzgyXHU2ZGM3XHU3Mzk4XHU3NDI2XHU3NDJhXHU3NDgyXHU3NGEzXHU3NTc4XHU3NTdmXHU3ODgx''@;'; + put 'put ''XHU3OGVmXHU3OTQxXHU3OTQ3XHU3OTQ4XHU3OTdhXHU3Yjk1XHU3ZDAwXHU3ZGJhXHU3Zjg4XHU4MDA2XHU4MDJkXHU4MDhjXHU4YTE4XHU4YjRmXHU4YzQ4XHU4ZDc3XHU5MzIxXHU5MzI0XHU5OGUyXHU5OTUxXHU5YTBlXHU5YTBmXHU5YTY1XHU5ZTkyXHU3ZGNhXHU0Zjc2XHU1NDA5XHU2''@;'; + put 'put ''MmVlXHU2ODU0XHU5MWQxXHU1NWFiXHU1MTNhXHVmOTBiXHVmOTBjXHU1YTFjXHU2MWU2XHVmOTBkXHU2MmNmXHU2MmZmXHVmOTBlXHVmOTBmXHVmOTEwXHVmOTExXHVmOTEyXHVmOTEzXHU5MGEzXHVmOTE0XHVmOTE1XHVmOTE2XHVmOTE3XHVmOTE4XHU4YWZlXHVmOTE5XHVmOTFhXHVmOTFi''@;'; + put 'put ''XHVmOTFjXHU2Njk2XHVmOTFkXHU3MTU2XHVmOTFlXHVmOTFmXHU5NmUzXHVmOTIwXHU2MzRmXHU2MzdhXHU1MzU3XHVmOTIxXHU2NzhmXHU2OTYwXHU2ZTczXHVmOTIyXHU3NTM3XHVmOTIzXHVmOTI0XHVmOTI1XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjA5XS5sZW5ndGg7KytFKTY1''@;'; + put 'put ''NTMzIT09QlsyMDldW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIwOV1bRV1dPTUzNTA0K0UsTFs1MzUwNCtFXT1CWzIwOV1bRV0pO2ZvcihCWzIxMF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1N2QwZFx1ZjkyNlx1ZjkyN1x1ODg3Mlx1NTZjYVx1NWExOFx1ZjkyOFx1ZjkyOVx1ZjkyYVx1ZjkyYlx1ZjkyY1x1NGU0M1x1ZjkyZFx1NTE2N1x1NTk0OFx1NjdmMFx1ODAx''@;'; + put 'put ''MFx1ZjkyZVx1NTk3M1x1NWU3NFx1NjQ5YVx1NzljYVx1NWZmNVx1NjA2Y1x1NjJjOFx1NjM3Ylx1NWJlN1x1NWJkN1x1NTJhYVx1ZjkyZlx1NTk3NFx1NWYyOVx1NjAxMlx1ZjkzMFx1ZjkzMVx1ZjkzMlx1NzQ1OVx1ZjkzM1x1ZjkzNFx1ZjkzNVx1ZjkzNlx1ZjkzN1x1ZjkzOFx1OTlkMVx1''@;'; + put 'put ''ZjkzOVx1ZjkzYVx1ZjkzYlx1ZjkzY1x1ZjkzZFx1ZjkzZVx1ZjkzZlx1Zjk0MFx1Zjk0MVx1Zjk0Mlx1Zjk0M1x1NmZjM1x1Zjk0NFx1Zjk0NVx1ODFiZlx1OGZiMlx1NjBmMVx1Zjk0Nlx1Zjk0N1x1ODE2Nlx1Zjk0OFx1Zjk0OVx1NWMzZlx1Zjk0YVx1Zjk0Ylx1Zjk0Y1x1Zjk0ZFx1Zjk0''@;'; + put 'put ''ZVx1Zjk0Zlx1Zjk1MFx1Zjk1MVx1NWFlOVx1OGEyNVx1Njc3Ylx1N2QxMFx1Zjk1Mlx1Zjk1M1x1Zjk1NFx1Zjk1NVx1Zjk1Nlx1Zjk1N1x1ODBmZFx1Zjk1OFx1Zjk1OVx1NWMzY1x1NmNlNVx1NTMzZlx1NmViYVx1NTkxYVx1ODMzNlx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIxMF0u''@;'; + put 'put ''bGVuZ3RoOysrRSk2NTUzMyE9PUJbMjEwXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMTBdW0VdXT01Mzc2MCtFLExbNTM3NjArRV09QlsyMTBdW0VdKTtmb3IoQlsyMTFdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTRlMzlcdTRlYjZcdTRmNDZcdTU1YWVcdTU3MThcdTU4YzdcdTVmNTZcdTY1YjdcdTY1ZTZcdTZhODBcdTZiYjVcdTZlNGRcdTc3ZWRcdTdhZWZcdTdj''@;'; + put 'put ''MWVcdTdkZGVcdTg2Y2JcdTg4OTJcdTkxMzJcdTkzNWJcdTY0YmJcdTZmYmVcdTczN2FcdTc1YjhcdTkwNTRcdTU1NTZcdTU3NGRcdTYxYmFcdTY0ZDRcdTY2YzdcdTZkZTFcdTZlNWJcdTZmNmRcdTZmYjlcdTc1ZjBcdTgwNDNcdTgxYmRcdTg1NDFcdTg5ODNcdThhYzdcdThiNWFcdTkzMWZc''@;'; + put 'put ''dTZjOTNcdTc1NTNcdTdiNTRcdThlMGZcdTkwNWRcdTU1MTBcdTU4MDJcdTU4NThcdTVlNjJcdTYyMDdcdTY0OWVcdTY4ZTBcdTc1NzZcdTdjZDZcdTg3YjNcdTllZThcdTRlZTNcdTU3ODhcdTU3NmVcdTU5MjdcdTVjMGRcdTVjYjFcdTVlMzZcdTVmODVcdTYyMzRcdTY0ZTFcdTczYjNcdTgx''@;'; + put 'put ''ZmFcdTg4OGJcdThjYjhcdTk2OGFcdTllZGJcdTViODVcdTVmYjdcdTYwYjNcdTUwMTJcdTUyMDBcdTUyMzBcdTU3MTZcdTU4MzVcdTU4NTdcdTVjMGVcdTVjNjBcdTVjZjZcdTVkOGJcdTVlYTZcdTVmOTJcdTYwYmNcdTYzMTFcdTYzODlcdTY0MTdcdTY4NDNcdWZmZmQiLnNwbGl0KCIiKSxF''@;'; + put 'put ''PTA7RSE9QlsyMTFdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIxMV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjExXVtFXV09NTQwMTYrRSxMWzU0MDE2K0VdPUJbMjExXVtFXSk7Zm9yKEJbMjEyXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2OGY5XHU2YWMyXHU2ZGQ4XHU2ZTIxXHU2ZWQ0XHU2ZmU0XHU3MWZlXHU3NmRjXHU3Nzc5XHU3OWIxXHU3YTNiXHU4NDA0XHU4''@;'; + put 'put ''OWE5XHU4Y2VkXHU4ZGYzXHU4ZTQ4XHU5MDAzXHU5MDE0XHU5MDUzXHU5MGZkXHU5MzRkXHU5Njc2XHU5N2RjXHU2YmQyXHU3MDA2XHU3MjU4XHU3MmEyXHU3MzY4XHU3NzYzXHU3OWJmXHU3YmU0XHU3ZTliXHU4YjgwXHU1OGE5XHU2MGM3XHU2NTY2XHU2NWZkXHU2NmJlXHU2YzhjXHU3MTFl''@;'; + put 'put ''XHU3MWM5XHU4YzVhXHU5ODEzXHU0ZTZkXHU3YTgxXHU0ZWRkXHU1MWFjXHU1MWNkXHU1MmQ1XHU1NDBjXHU2MWE3XHU2NzcxXHU2ODUwXHU2OGRmXHU2ZDFlXHU2ZjdjXHU3NWJjXHU3N2IzXHU3YWU1XHU4MGY0XHU4NDYzXHU5Mjg1XHU1MTVjXHU2NTk3XHU2NzVjXHU2NzkzXHU3NWQ4XHU3''@;'; + put 'put ''YWM3XHU4MzczXHVmOTVhXHU4YzQ2XHU5MDE3XHU5ODJkXHU1YzZmXHU4MWMwXHU4MjlhXHU5MDQxXHU5MDZmXHU5MjBkXHU1Zjk3XHU1ZDlkXHU2YTU5XHU3MWM4XHU3NjdiXHU3YjQ5XHU4NWU0XHU4YjA0XHU5MTI3XHU5YTMwXHU1NTg3XHU2MWY2XHVmOTViXHU3NjY5XHU3Zjg1XHVmZmZk''@;'; + put 'put ''Ii5zcGxpdCgiIiksRT0wO0UhPUJbMjEyXS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMTJdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIxMl1bRV1dPTU0MjcyK0UsTFs1NDI3MitFXT1CWzIxMl1bRV0pO2ZvcihCWzIxM109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ODYzZlx1ODdiYVx1ODhmOFx1OTA4Zlx1Zjk1Y1x1NmQxYlx1NzBkOVx1NzNkZVx1N2Q2MVx1ODQzZFx1''@;'; + put 'put ''Zjk1ZFx1OTE2YVx1OTlmMVx1Zjk1ZVx1NGU4Mlx1NTM3NVx1NmIwNFx1NmIxMlx1NzAzZVx1NzIxYlx1ODYyZFx1OWUxZVx1NTI0Y1x1OGZhM1x1NWQ1MFx1NjRlNVx1NjUyY1x1NmIxNlx1NmZlYlx1N2M0M1x1N2U5Y1x1ODVjZFx1ODk2NFx1ODliZFx1NjJjOVx1ODFkOFx1ODgxZlx1NWVj''@;'; + put 'put ''YVx1NjcxN1x1NmQ2YVx1NzJmY1x1NzQwNVx1NzQ2Zlx1ODc4Mlx1OTBkZVx1NGY4Nlx1NWQwZFx1NWZhMFx1ODQwYVx1NTFiN1x1NjNhMFx1NzU2NVx1NGVhZVx1NTAwNlx1NTE2OVx1NTFjOVx1Njg4MVx1NmExMVx1N2NhZVx1N2NiMVx1N2NlN1x1ODI2Zlx1OGFkMlx1OGYxYlx1OTFjZlx1''@;'; + put 'put ''NGZiNlx1NTEzN1x1NTJmNVx1NTQ0Mlx1NWVlY1x1NjE2ZVx1NjIzZVx1NjVjNVx1NmFkYVx1NmZmZVx1NzkyYVx1ODVkY1x1ODgyM1x1OTVhZFx1OWE2Mlx1OWE2YVx1OWU5N1x1OWVjZVx1NTI5Ylx1NjZjNlx1NmI3N1x1NzAxZFx1NzkyYlx1OGY2Mlx1OTc0Mlx1NjE5MFx1NjIwMFx1NjUy''@;'; + put 'put ''M1x1NmYyM1x1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIxM10ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjEzXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMTNdW0VdXT01NDUyOCtFLExbNTQ1MjgrRV09QlsyMTNdW0VdKTtmb3IoQlsyMTRdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTcxNDlcdTc0ODlcdTdkZjRcdTgwNmZcdTg0ZWVcdThmMjZcdTkwMjNcdTkzNGFc''@;'; + put 'put ''dTUxYmRcdTUyMTdcdTUyYTNcdTZkMGNcdTcwYzhcdTg4YzJcdTVlYzlcdTY1ODJcdTZiYWVcdTZmYzJcdTdjM2VcdTczNzVcdTRlZTRcdTRmMzZcdTU2ZjlcdWY5NWZcdTVjYmFcdTVkYmFcdTYwMWNcdTczYjJcdTdiMmRcdTdmOWFcdTdmY2VcdTgwNDZcdTkwMWVcdTkyMzRcdTk2ZjZcdTk3''@;'; + put 'put ''NDhcdTk4MThcdTlmNjFcdTRmOGJcdTZmYTdcdTc5YWVcdTkxYjRcdTk2YjdcdTUyZGVcdWY5NjBcdTY0ODhcdTY0YzRcdTZhZDNcdTZmNWVcdTcwMThcdTcyMTBcdTc2ZTdcdTgwMDFcdTg2MDZcdTg2NWNcdThkZWZcdThmMDVcdTk3MzJcdTliNmZcdTlkZmFcdTllNzVcdTc4OGNcdTc5N2Zc''@;'; + put 'put ''dTdkYTBcdTgzYzlcdTkzMDRcdTllN2ZcdTllOTNcdThhZDZcdTU4ZGZcdTVmMDRcdTY3MjdcdTcwMjdcdTc0Y2ZcdTdjNjBcdTgwN2VcdTUxMjFcdTcwMjhcdTcyNjJcdTc4Y2FcdThjYzJcdThjZGFcdThjZjRcdTk2ZjdcdTRlODZcdTUwZGFcdTViZWVcdTVlZDZcdTY1OTlcdTcxY2VcdTc2''@;'; + put 'put ''NDJcdTc3YWRcdTgwNGFcdTg0ZmNcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMTRdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIxNF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjE0XVtFXV09NTQ3ODQrRSxMWzU0Nzg0K0VdPUJbMjE0XVtFXSk7Zm9yKEJbMjE1XT0iXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5MDdjXHU5YjI3XHU5ZjhkXHU1OGQ4XHU1YTQxXHU1YzYy''@;'; + put 'put ''XHU2YTEzXHU2ZGRhXHU2ZjBmXHU3NjNiXHU3ZDJmXHU3ZTM3XHU4NTFlXHU4OTM4XHU5M2U0XHU5NjRiXHU1Mjg5XHU2NWQyXHU2N2YzXHU2OWI0XHU2ZDQxXHU2ZTljXHU3MDBmXHU3NDA5XHU3NDYwXHU3NTU5XHU3NjI0XHU3ODZiXHU4YjJjXHU5ODVlXHU1MTZkXHU2MjJlXHU5Njc4XHU0''@;'; + put 'put ''Zjk2XHU1MDJiXHU1ZDE5XHU2ZGVhXHU3ZGI4XHU4ZjJhXHU1ZjhiXHU2MTQ0XHU2ODE3XHVmOTYxXHU5Njg2XHU1MmQyXHU4MDhiXHU1MWRjXHU1MWNjXHU2OTVlXHU3YTFjXHU3ZGJlXHU4M2YxXHU5Njc1XHU0ZmRhXHU1MjI5XHU1Mzk4XHU1NDBmXHU1NTBlXHU1YzY1XHU2MGE3XHU2NzRl''@;'; + put 'put ''XHU2OGE4XHU2ZDZjXHU3MjgxXHU3MmY4XHU3NDA2XHU3NDgzXHVmOTYyXHU3NWUyXHU3YzZjXHU3Zjc5XHU3ZmI4XHU4Mzg5XHU4OGNmXHU4OGUxXHU5MWNjXHU5MWQwXHU5NmUyXHU5YmM5XHU1NDFkXHU2ZjdlXHU3MWQwXHU3NDk4XHU4NWZhXHU4ZWFhXHU5NmEzXHU5YzU3XHU5ZTlmXHU2''@;'; + put 'put ''Nzk3XHU2ZGNiXHU3NDMzXHU4MWU4XHU5NzE2XHU3ODJjXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjE1XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMTVdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIxNV1bRV1dPTU1MDQwK0UsTFs1NTA0MCtFXT1CWzIxNV1bRV0pO2ZvcihCWzIxNl09''@;'; + put 'put ''Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1N2FjYlx1N2IyMFx1N2M5Mlx1NjQ2''@;'; + put 'put ''OVx1NzQ2YVx1NzVmMlx1NzhiY1x1NzhlOFx1OTlhY1x1OWI1NFx1OWViYlx1NWJkZVx1NWU1NVx1NmYyMFx1ODE5Y1x1ODNhYlx1OTA4OFx1NGUwN1x1NTM0ZFx1NWEyOVx1NWRkMlx1NWY0ZVx1NjE2Mlx1NjMzZFx1NjY2OVx1NjZmY1x1NmVmZlx1NmYyYlx1NzA2M1x1Nzc5ZVx1ODQyY1x1''@;'; + put 'put ''ODUxM1x1ODgzYlx1OGYxM1x1OTk0NVx1OWMzYlx1NTUxY1x1NjJiOVx1NjcyYlx1NmNhYlx1ODMwOVx1ODk2YVx1OTc3YVx1NGVhMVx1NTk4NFx1NWZkOFx1NWZkOVx1NjcxYlx1N2RiMlx1N2Y1NFx1ODI5Mlx1ODMyYlx1ODNiZFx1OGYxZVx1OTA5OVx1NTdjYlx1NTliOVx1NWE5Mlx1NWJk''@;'; + put 'put ''MFx1NjYyN1x1Njc5YVx1Njg4NVx1NmJjZlx1NzE2NFx1N2Y3NVx1OGNiN1x1OGNlM1x1OTA4MVx1OWI0NVx1ODEwOFx1OGM4YVx1OTY0Y1x1OWE0MFx1OWVhNVx1NWI1Zlx1NmMxM1x1NzMxYlx1NzZmMlx1NzZkZlx1ODQwY1x1NTFhYVx1ODk5M1x1NTE0ZFx1NTE5NVx1NTJjOVx1NjhjOVx1''@;'; + put 'put ''NmM5NFx1NzcwNFx1NzcyMFx1N2RiZlx1N2RlY1x1OTc2Mlx1OWViNVx1NmVjNVx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIxNl0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjE2XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMTZdW0VdXT01NTI5NitFLExbNTUyOTYrRV09QlsyMTZdW0Vd''@;'; + put 'put ''KTtmb3IoQlsyMTddPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTg1MTFcdTUx''@;'; + put 'put ''YTVcdTU0MGRcdTU0N2RcdTY2MGVcdTY2OWRcdTY5MjdcdTZlOWZcdTc2YmZcdTc3OTFcdTgzMTdcdTg0YzJcdTg3OWZcdTkxNjlcdTkyOThcdTljZjRcdTg4ODJcdTRmYWVcdTUxOTJcdTUyZGZcdTU5YzZcdTVlM2RcdTYxNTVcdTY0NzhcdTY0NzlcdTY2YWVcdTY3ZDBcdTZhMjFcdTZiY2Rc''@;'; + put 'put ''dTZiZGJcdTcyNWZcdTcyNjFcdTc0NDFcdTc3MzhcdTc3ZGJcdTgwMTdcdTgyYmNcdTgzMDVcdThiMDBcdThiMjhcdThjOGNcdTY3MjhcdTZjOTBcdTcyNjdcdTc2ZWVcdTc3NjZcdTdhNDZcdTlkYTlcdTZiN2ZcdTZjOTJcdTU5MjJcdTY3MjZcdTg0OTlcdTUzNmZcdTU4OTNcdTU5OTlcdTVl''@;'; + put 'put ''ZGZcdTYzY2ZcdTY2MzRcdTY3NzNcdTZlM2FcdTczMmJcdTdhZDdcdTgyZDdcdTkzMjhcdTUyZDlcdTVkZWJcdTYxYWVcdTYxY2JcdTYyMGFcdTYyYzdcdTY0YWJcdTY1ZTBcdTY5NTlcdTZiNjZcdTZiY2JcdTcxMjFcdTczZjdcdTc1NWRcdTdlNDZcdTgyMWVcdTgzMDJcdTg1NmFcdThhYTNc''@;'; + put 'put ''dThjYmZcdTk3MjdcdTlkNjFcdTU4YThcdTllZDhcdTUwMTFcdTUyMGVcdTU0M2JcdTU1NGZcdTY1ODdcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMTddLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIxN11bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjE3XVtFXV09NTU1NTIrRSxMWzU1NTUy''@;'; + put 'put ''K0VdPUJbMjE3XVtFXSk7Zm9yKEJbMjE4XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHU2Yzc2XHU3ZDBhXHU3ZDBiXHU4MDVlXHU4NjhhXHU5NTgwXHU5NmVmXHU1MmZmXHU2Yzk1XHU3MjY5XHU1NDczXHU1YTlhXHU1YzNlXHU1ZDRiXHU1ZjRjXHU1ZmFlXHU2NzJhXHU2OGI2XHU2OTYzXHU2ZTNjXHU2ZTQ0XHU3NzA5XHU3YzczXHU3ZjhlXHU4NTg3XHU4YjBlXHU4ZmY3''@;'; + put 'put ''XHU5NzYxXHU5ZWY0XHU1Y2I3XHU2MGI2XHU2MTBkXHU2MWFiXHU2NTRmXHU2NWZiXHU2NWZjXHU2YzExXHU2Y2VmXHU3MzlmXHU3M2M5XHU3ZGUxXHU5NTk0XHU1YmM2XHU4NzFjXHU4YjEwXHU1MjVkXHU1MzVhXHU2MmNkXHU2NDBmXHU2NGIyXHU2NzM0XHU2YTM4XHU2Y2NhXHU3M2MwXHU3''@;'; + put 'put ''NDllXHU3Yjk0XHU3Yzk1XHU3ZTFiXHU4MThhXHU4MjM2XHU4NTg0XHU4ZmViXHU5NmY5XHU5OWMxXHU0ZjM0XHU1MzRhXHU1M2NkXHU1M2RiXHU2MmNjXHU2NDJjXHU2NTAwXHU2NTkxXHU2OWMzXHU2Y2VlXHU2ZjU4XHU3M2VkXHU3NTU0XHU3NjIyXHU3NmU0XHU3NmZjXHU3OGQwXHU3OGZi''@;'; + put 'put ''XHU3OTJjXHU3ZDQ2XHU4MjJjXHU4N2UwXHU4ZmQ0XHU5ODEyXHU5OGVmXHU1MmMzXHU2MmQ0XHU2NGE1XHU2ZTI0XHU2ZjUxXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjE4XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMThdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIxOF1bRV1dPTU1''@;'; + put 'put ''ODA4K0UsTFs1NTgwOCtFXT1CWzIxOF1bRV0pO2ZvcihCWzIxOV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1NzY3Y1x1OGRjYlx1OTFiMVx1OTI2Mlx1OWFlZVx1OWI0M1x1NTAyM1x1NTA4ZFx1NTc0YVx1NTlhOFx1NWMyOFx1NWU0N1x1NWY3N1x1NjIzZlx1NjUzZVx1NjViOVx1NjVjMVx1NjYwOVx1Njc4Ylx1Njk5Y1x1NmVjMlx1NzhjNVx1N2QyMVx1ODBhYVx1ODE4''@;'; + put 'put ''MFx1ODIyYlx1ODJiM1x1ODRhMVx1ODY4Y1x1OGEyYVx1OGIxN1x1OTBhNlx1OTYzMlx1OWY5MFx1NTAwZFx1NGZmM1x1Zjk2M1x1NTdmOVx1NWY5OFx1NjJkY1x1NjM5Mlx1Njc2Zlx1NmU0M1x1NzExOVx1NzZjM1x1ODBjY1x1ODBkYVx1ODhmNFx1ODhmNVx1ODkxOVx1OGNlMFx1OGYyOVx1''@;'; + put 'put ''OTE0ZFx1OTY2YVx1NGYyZlx1NGY3MFx1NWUxYlx1NjdjZlx1NjgyMlx1NzY3ZFx1NzY3ZVx1OWI0NFx1NWU2MVx1NmEwYVx1NzE2OVx1NzFkNFx1NzU2YVx1Zjk2NFx1N2U0MVx1ODU0M1x1ODVlOVx1OThkY1x1NGYxMFx1N2I0Zlx1N2Y3MFx1OTVhNVx1NTFlMVx1NWUwNlx1NjhiNVx1NmMz''@;'; + put 'put ''ZVx1NmM0ZVx1NmNkYlx1NzJhZlx1N2JjNFx1ODMwM1x1NmNkNVx1NzQzYVx1NTBmYlx1NTI4OFx1NThjMVx1NjRkOFx1NmE5N1x1NzRhN1x1NzY1Nlx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIxOV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjE5XVtFXS5jaGFyQ29kZUF0KDApJiYobWVb''@;'; + put 'put ''QlsyMTldW0VdXT01NjA2NCtFLExbNTYwNjQrRV09QlsyMTldW0VdKTtmb3IoQlsyMjBdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTc4YTdcdTg2MTdcdTk1ZTJcdTk3MzlcdWY5NjVcdTUzNWVcdTVmMDFcdThiOGFcdThmYThcdThmYWZcdTkwOGFcdTUyMjVcdTc3YTVcdTljNDlcdTlmMDhcdTRlMTlcdTUwMDJcdTUxNzVcdTVjNWJcdTVlNzdcdTY2MWVcdTY2M2FcdTY3''@;'; + put 'put ''YzRcdTY4YzVcdTcwYjNcdTc1MDFcdTc1YzVcdTc5YzlcdTdhZGRcdThmMjdcdTk5MjBcdTlhMDhcdTRmZGRcdTU4MjFcdTU4MzFcdTViZjZcdTY2NmVcdTZiNjVcdTZkMTFcdTZlN2FcdTZmN2RcdTczZTRcdTc1MmJcdTgzZTlcdTg4ZGNcdTg5MTNcdThiNWNcdThmMTRcdTRmMGZcdTUwZDVc''@;'; + put 'put ''dTUzMTBcdTUzNWNcdTViOTNcdTVmYTlcdTY3MGRcdTc5OGZcdTgxNzlcdTgzMmZcdTg1MTRcdTg5MDdcdTg5ODZcdThmMzlcdThmM2JcdTk5YTVcdTljMTJcdTY3MmNcdTRlNzZcdTRmZjhcdTU5NDlcdTVjMDFcdTVjZWZcdTVjZjBcdTYzNjdcdTY4ZDJcdTcwZmRcdTcxYTJcdTc0MmJcdTdl''@;'; + put 'put ''MmJcdTg0ZWNcdTg3MDJcdTkwMjJcdTkyZDJcdTljZjNcdTRlMGRcdTRlZDhcdTRmZWZcdTUwODVcdTUyNTZcdTUyNmZcdTU0MjZcdTU0OTBcdTU3ZTBcdTU5MmJcdTVhNjZcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMjBdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIyMF1bRV0uY2hhckNv''@;'; + put 'put ''ZGVBdCgwKSYmKG1lW0JbMjIwXVtFXV09NTYzMjArRSxMWzU2MzIwK0VdPUJbMjIwXVtFXSk7Zm9yKEJbMjIxXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1YjVhXHU1Yjc1XHU1YmNjXHU1ZTljXHVmOTY2XHU2Mjc2XHU2NTc3XHU2NWE3XHU2ZDZlXHU2ZWE1XHU3MjM2XHU3YjI2XHU3YzNmXHU3ZjM2XHU4MTUwXHU4MTUxXHU4MTlhXHU4MjQwXHU4Mjk5XHU4M2E5XHU4''@;'; + put 'put ''YTAzXHU4Y2EwXHU4Y2U2XHU4Y2ZiXHU4ZDc0XHU4ZGJhXHU5MGU4XHU5MWRjXHU5NjFjXHU5NjQ0XHU5OWQ5XHU5Y2U3XHU1MzE3XHU1MjA2XHU1NDI5XHU1Njc0XHU1OGIzXHU1OTU0XHU1OTZlXHU1ZmZmXHU2MWE0XHU2MjZlXHU2NjEwXHU2YzdlXHU3MTFhXHU3NmM2XHU3Yzg5XHU3Y2Rl''@;'; + put 'put ''XHU3ZDFiXHU4MmFjXHU4Y2MxXHU5NmYwXHVmOTY3XHU0ZjViXHU1ZjE3XHU1ZjdmXHU2MmMyXHU1ZDI5XHU2NzBiXHU2OGRhXHU3ODdjXHU3ZTQzXHU5ZDZjXHU0ZTE1XHU1MDk5XHU1MzE1XHU1MzJhXHU1MzUxXHU1OTgzXHU1YTYyXHU1ZTg3XHU2MGIyXHU2MThhXHU2MjQ5XHU2Mjc5XHU2''@;'; + put 'put ''NTkwXHU2Nzg3XHU2OWE3XHU2YmQ0XHU2YmQ2XHU2YmQ3XHU2YmQ4XHU2Y2I4XHVmOTY4XHU3NDM1XHU3NWZhXHU3ODEyXHU3ODkxXHU3OWQ1XHU3OWQ4XHU3YzgzXHU3ZGNiXHU3ZmUxXHU4MGE1XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjIxXS5sZW5ndGg7KytFKTY1NTMzIT09Qlsy''@;'; + put 'put ''MjFdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIyMV1bRV1dPTU2NTc2K0UsTFs1NjU3NitFXT1CWzIyMV1bRV0pO2ZvcihCWzIyMl09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ODEzZVx1ODFjMlx1ODNmMlx1ODcxYVx1ODhlOFx1OGFiOVx1OGI2Y1x1OGNiYlx1OTExOVx1OTc1ZVx1OThkYlx1OWYzYlx1NTZhY1x1NWIyYVx1NWY2Y1x1NjU4Y1x1NmFiM1x1NmJhZlx1''@;'; + put 'put ''NmQ1Y1x1NmZmMVx1NzAxNVx1NzI1ZFx1NzNhZFx1OGNhN1x1OGNkM1x1OTgzYlx1NjE5MVx1NmMzN1x1ODA1OFx1OWEwMVx1NGU0ZFx1NGU4Ylx1NGU5Ylx1NGVkNVx1NGYzYVx1NGYzY1x1NGY3Zlx1NGZkZlx1NTBmZlx1NTNmMlx1NTNmOFx1NTUwNlx1NTVlM1x1NTZkYlx1NThlYlx1NTk2''@;'; + put 'put ''Mlx1NWExMVx1NWJlYlx1NWJmYVx1NWMwNFx1NWRmM1x1NWUyYlx1NWY5OVx1NjAxZFx1NjM2OFx1NjU5Y1x1NjVhZlx1NjdmNlx1NjdmYlx1NjhhZFx1NmI3Ylx1NmM5OVx1NmNkN1x1NmUyM1x1NzAwOVx1NzM0NVx1NzgwMlx1NzkzZVx1Nzk0MFx1Nzk2MFx1NzljMVx1N2JlOVx1N2QxN1x1''@;'; + put 'put ''N2Q3Mlx1ODA4Nlx1ODIwZFx1ODM4ZVx1ODRkMVx1ODZjN1x1ODhkZlx1OGE1MFx1OGE1ZVx1OGIxZFx1OGNkY1x1OGQ2Nlx1OGZhZFx1OTBhYVx1OThmY1x1OTlkZlx1OWU5ZFx1NTI0YVx1Zjk2OVx1NjcxNFx1Zjk2YVx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIyMl0ubGVuZ3RoOysr''@;'; + put 'put ''RSk2NTUzMyE9PUJbMjIyXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMjJdW0VdXT01NjgzMitFLExbNTY4MzIrRV09QlsyMjJdW0VdKTtmb3IoQlsyMjNdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTUwOThcdTUyMmFcdTVjNzFcdTY1NjNcdTZjNTVcdTczY2FcdTc1MjNcdTc1OWRcdTdiOTdcdTg0OWNcdTkxNzhcdTk3MzBcdTRlNzdcdTY0OTJcdTZiYmFcdTcxNWVc''@;'; + put 'put ''dTg1YTlcdTRlMDlcdWY5NmJcdTY3NDlcdTY4ZWVcdTZlMTdcdTgyOWZcdTg1MThcdTg4NmJcdTYzZjdcdTZmODFcdTkyMTJcdTk4YWZcdTRlMGFcdTUwYjdcdTUwY2ZcdTUxMWZcdTU1NDZcdTU1YWFcdTU2MTdcdTViNDBcdTVjMTlcdTVjZTBcdTVlMzhcdTVlOGFcdTVlYTBcdTVlYzJcdTYw''@;'; + put 'put ''ZjNcdTY4NTFcdTZhNjFcdTZlNThcdTcyM2RcdTcyNDBcdTcyYzBcdTc2ZjhcdTc5NjVcdTdiYjFcdTdmZDRcdTg4ZjNcdTg5ZjRcdThhNzNcdThjNjFcdThjZGVcdTk3MWNcdTU4NWVcdTc0YmRcdThjZmRcdTU1YzdcdWY5NmNcdTdhNjFcdTdkMjJcdTgyNzJcdTcyNzJcdTc1MWZcdTc1MjVc''@;'; + put 'put ''dWY5NmRcdTdiMTlcdTU4ODVcdTU4ZmJcdTVkYmNcdTVlOGZcdTVlYjZcdTVmOTBcdTYwNTVcdTYyOTJcdTYzN2ZcdTY1NGRcdTY2OTFcdTY2ZDlcdTY2ZjhcdTY4MTZcdTY4ZjJcdTcyODBcdTc0NWVcdTdiNmVcdTdkNmVcdTdkZDZcdTdmNzJcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9Qlsy''@;'; + put 'put ''MjNdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIyM11bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjIzXVtFXV09NTcwODgrRSxMWzU3MDg4K0VdPUJbMjIzXVtFXSk7Zm9yKEJbMjI0XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4MGU1XHU4MjEyXHU4NWFmXHU4OTdmXHU4YTkzXHU5MDFkXHU5MmU0XHU5ZWNkXHU5ZjIwXHU1OTE1XHU1OTZkXHU1ZTJkXHU2MGRjXHU2NjE0''@;'; + put 'put ''XHU2NjczXHU2NzkwXHU2YzUwXHU2ZGM1XHU2ZjVmXHU3N2YzXHU3OGE5XHU4NGM2XHU5MWNiXHU5MzJiXHU0ZWQ5XHU1MGNhXHU1MTQ4XHU1NTg0XHU1YjBiXHU1YmEzXHU2MjQ3XHU2NTdlXHU2NWNiXHU2ZTMyXHU3MTdkXHU3NDAxXHU3NDQ0XHU3NDg3XHU3NGJmXHU3NjZjXHU3OWFhXHU3''@;'; + put 'put ''ZGRhXHU3ZTU1XHU3ZmE4XHU4MTdhXHU4MWIzXHU4MjM5XHU4NjFhXHU4N2VjXHU4YTc1XHU4ZGUzXHU5MDc4XHU5MjkxXHU5NDI1XHU5OTRkXHU5YmFlXHU1MzY4XHU1YzUxXHU2OTU0XHU2Y2M0XHU2ZDI5XHU2ZTJiXHU4MjBjXHU4NTliXHU4OTNiXHU4YTJkXHU4YWFhXHU5NmVhXHU5ZjY3''@;'; + put 'put ''XHU1MjYxXHU2NmI5XHU2YmIyXHU3ZTk2XHU4N2ZlXHU4ZDBkXHU5NTgzXHU5NjVkXHU2NTFkXHU2ZDg5XHU3MWVlXHVmOTZlXHU1N2NlXHU1OWQzXHU1YmFjXHU2MDI3XHU2MGZhXHU2MjEwXHU2NjFmXHU2NjVmXHU3MzI5XHU3M2Y5XHU3NmRiXHU3NzAxXHU3YjZjXHVmZmZkIi5zcGxpdCgi''@;'; + put 'put ''IiksRT0wO0UhPUJbMjI0XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMjRdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIyNF1bRV1dPTU3MzQ0K0UsTFs1NzM0NCtFXT1CWzIyNF1bRV0pO2ZvcihCWzIyNV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ODA1Nlx1ODA3Mlx1ODE2NVx1OGFhMFx1OTE5Mlx1NGUxNlx1NTJlMlx1NmI3Mlx1NmQxN1x1N2EwNVx1N2IzOVx1N2Qz''@;'; + put 'put ''MFx1Zjk2Zlx1OGNiMFx1NTNlY1x1NTYyZlx1NTg1MVx1NWJiNVx1NWMwZlx1NWMxMVx1NWRlMlx1NjI0MFx1NjM4M1x1NjQxNFx1NjYyZFx1NjhiM1x1NmNiY1x1NmQ4OFx1NmVhZlx1NzAxZlx1NzBhNFx1NzFkMlx1NzUyNlx1NzU4Zlx1NzU4ZVx1NzYxOVx1N2IxMVx1N2JlMFx1N2MyYlx1''@;'; + put 'put ''N2QyMFx1N2QzOVx1ODUyY1x1ODU2ZFx1ODYwN1x1OGEzNFx1OTAwZFx1OTA2MVx1OTBiNVx1OTJiN1x1OTdmNlx1OWEzN1x1NGZkN1x1NWM2Y1x1Njc1Zlx1NmQ5MVx1N2M5Zlx1N2U4Y1x1OGIxNlx1OGQxNlx1OTAxZlx1NWI2Ylx1NWRmZFx1NjQwZFx1ODRjMFx1OTA1Y1x1OThlMVx1NzM4''@;'; + put 'put ''N1x1NWI4Ylx1NjA5YVx1Njc3ZVx1NmRkZVx1OGExZlx1OGFhNlx1OTAwMVx1OTgwY1x1NTIzN1x1Zjk3MFx1NzA1MVx1Nzg4ZVx1OTM5Nlx1ODg3MFx1OTFkN1x1NGZlZVx1NTNkN1x1NTVmZFx1NTZkYVx1NTc4Mlx1NThmZFx1NWFjMlx1NWI4OFx1NWNhYlx1NWNjMFx1NWUyNVx1NjEwMVx1''@;'; + put 'put ''ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIyNV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjI1XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMjVdW0VdXT01NzYwMCtFLExbNTc2MDArRV09QlsyMjVdW0VdKTtmb3IoQlsyMjZdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTYyMGRcdTYyNGJcdTYzODhcdTY0MWNcdTY1MzZcdTY1NzhcdTZhMzlcdTZiOGFcdTZjMzRcdTZk''@;'; + put 'put ''MTlcdTZmMzFcdTcxZTdcdTcyZTlcdTczNzhcdTc0MDdcdTc0YjJcdTc2MjZcdTc3NjFcdTc5YzBcdTdhNTdcdTdhZWFcdTdjYjlcdTdkOGZcdTdkYWNcdTdlNjFcdTdmOWVcdTgxMjlcdTgzMzFcdTg0OTBcdTg0ZGFcdTg1ZWFcdTg4OTZcdThhYjBcdThiOTBcdThmMzhcdTkwNDJcdTkwODNc''@;'; + put 'put ''dTkxNmNcdTkyOTZcdTkyYjlcdTk2OGJcdTk2YTdcdTk2YThcdTk2ZDZcdTk3MDBcdTk4MDhcdTk5OTZcdTlhZDNcdTliMWFcdTUzZDRcdTU4N2VcdTU5MTlcdTViNzBcdTViYmZcdTZkZDFcdTZmNWFcdTcxOWZcdTc0MjFcdTc0YjlcdTgwODVcdTgzZmRcdTVkZTFcdTVmODdcdTVmYWFcdTYw''@;'; + put 'put ''NDJcdTY1ZWNcdTY4MTJcdTY5NmZcdTZhNTNcdTZiODlcdTZkMzVcdTZkZjNcdTczZTNcdTc2ZmVcdTc3YWNcdTdiNGRcdTdkMTRcdTgxMjNcdTgyMWNcdTgzNDBcdTg0ZjRcdTg1NjNcdThhNjJcdThhYzRcdTkxODdcdTkzMWVcdTk4MDZcdTk5YjRcdTYyMGNcdTg4NTNcdThmZjBcdTkyNjVc''@;'; + put 'put ''dTVkMDdcdTVkMjdcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMjZdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIyNl1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjI2XVtFXV09NTc4NTYrRSxMWzU3ODU2K0VdPUJbMjI2XVtFXSk7Zm9yKEJbMjI3XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1ZDY5XHU3NDVmXHU4MTlkXHU4NzY4XHU2ZmQ1XHU2MmZlXHU3ZmQyXHU4''@;'; + put 'put ''OTM2XHU4OTcyXHU0ZTFlXHU0ZTU4XHU1MGU3XHU1MmRkXHU1MzQ3XHU2MjdmXHU2NjA3XHU3ZTY5XHU4ODA1XHU5NjVlXHU0ZjhkXHU1MzE5XHU1NjM2XHU1OWNiXHU1YWE0XHU1YzM4XHU1YzRlXHU1YzRkXHU1ZTAyXHU1ZjExXHU2MDQzXHU2NWJkXHU2NjJmXHU2NjQyXHU2N2JlXHU2N2Y0''@;'; + put 'put ''XHU3MzFjXHU3N2UyXHU3OTNhXHU3ZmM1XHU4NDk0XHU4NGNkXHU4OTk2XHU4YTY2XHU4YTY5XHU4YWUxXHU4YzU1XHU4YzdhXHU1N2Y0XHU1YmQ0XHU1ZjBmXHU2MDZmXHU2MmVkXHU2OTBkXHU2Yjk2XHU2ZTVjXHU3MTg0XHU3YmQyXHU4NzU1XHU4YjU4XHU4ZWZlXHU5OGRmXHU5OGZlXHU0''@;'; + put 'put ''ZjM4XHU0ZjgxXHU0ZmUxXHU1NDdiXHU1YTIwXHU1YmI4XHU2MTNjXHU2NWIwXHU2NjY4XHU3MWZjXHU3NTMzXHU3OTVlXHU3ZDMzXHU4MTRlXHU4MWUzXHU4Mzk4XHU4NWFhXHU4NWNlXHU4NzAzXHU4YTBhXHU4ZWFiXHU4ZjliXHVmOTcxXHU4ZmM1XHU1OTMxXHU1YmE0XHU1YmU2XHU2MDg5''@;'; + put 'put ''XHU1YmU5XHU1YzBiXHU1ZmMzXHU2YzgxXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjI3XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMjddW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIyN11bRV1dPTU4MTEyK0UsTFs1ODExMitFXT1CWzIyN11bRV0pO2ZvcihCWzIyOF09Ilx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1Zjk3Mlx1NmRmMVx1NzAwYlx1NzUxYVx1ODJhZlx1''@;'; + put 'put ''OGFmNlx1NGVjMFx1NTM0MVx1Zjk3M1x1OTZkOVx1NmMwZlx1NGU5ZVx1NGZjNFx1NTE1Mlx1NTU1ZVx1NWEyNVx1NWNlOFx1NjIxMVx1NzI1OVx1ODJiZFx1ODNhYVx1ODZmZVx1ODg1OVx1OGExZFx1OTYzZlx1OTZjNVx1OTkxM1x1OWQwOVx1OWQ1ZFx1NTgwYVx1NWNiM1x1NWRiZFx1NWU0''@;'; + put 'put ''NFx1NjBlMVx1NjExNVx1NjNlMVx1NmEwMlx1NmUyNVx1OTEwMlx1OTM1NFx1OTg0ZVx1OWMxMFx1OWY3N1x1NWI4OVx1NWNiOFx1NjMwOVx1NjY0Zlx1Njg0OFx1NzczY1x1OTZjMVx1OTc4ZFx1OTg1NFx1OWI5Zlx1NjVhMVx1OGIwMVx1OGVjYlx1OTViY1x1NTUzNVx1NWNhOVx1NWRkNlx1''@;'; + put 'put ''NWViNVx1NjY5N1x1NzY0Y1x1ODNmNFx1OTVjN1x1NThkM1x1NjJiY1x1NzJjZVx1OWQyOFx1NGVmMFx1NTkyZVx1NjAwZlx1NjYzYlx1NmI4M1x1NzllN1x1OWQyNlx1NTM5M1x1NTRjMFx1NTdjM1x1NWQxNlx1NjExYlx1NjZkNlx1NmRhZlx1Nzg4ZFx1ODI3ZVx1OTY5OFx1OTc0NFx1NTM4''@;'; + put 'put ''NFx1NjI3Y1x1NjM5Nlx1NmRiMlx1N2UwYVx1ODE0Ylx1OTg0ZFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIyOF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjI4XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMjhdW0VdXT01ODM2OCtFLExbNTgzNjgrRV09QlsyMjhdW0VdKTtmb3IoQlsy''@;'; + put 'put ''MjldPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTZhZmJcdTdmNGNcdTlkYWZc''@;'; + put 'put ''dTllMWFcdTRlNWZcdTUwM2JcdTUxYjZcdTU5MWNcdTYwZjlcdTYzZjZcdTY5MzBcdTcyM2FcdTgwMzZcdWY5NzRcdTkxY2VcdTVmMzFcdWY5NzVcdWY5NzZcdTdkMDRcdTgyZTVcdTg0NmZcdTg0YmJcdTg1ZTVcdThlOGRcdWY5NzdcdTRmNmZcdWY5NzhcdWY5NzlcdTU4ZTRcdTViNDNcdTYw''@;'; + put 'put ''NTlcdTYzZGFcdTY1MThcdTY1NmRcdTY2OThcdWY5N2FcdTY5NGFcdTZhMjNcdTZkMGJcdTcwMDFcdTcxNmNcdTc1ZDJcdTc2MGRcdTc5YjNcdTdhNzBcdWY5N2JcdTdmOGFcdWY5N2NcdTg5NDRcdWY5N2RcdThiOTNcdTkxYzBcdTk2N2RcdWY5N2VcdTk5MGFcdTU3MDRcdTVmYTFcdTY1YmNc''@;'; + put 'put ''dTZmMDFcdTc2MDBcdTc5YTZcdThhOWVcdTk5YWRcdTliNWFcdTlmNmNcdTUxMDRcdTYxYjZcdTYyOTFcdTZhOGRcdTgxYzZcdTUwNDNcdTU4MzBcdTVmNjZcdTcxMDlcdThhMDBcdThhZmFcdTViN2NcdTg2MTZcdTRmZmFcdTUxM2NcdTU2YjRcdTU5NDRcdTYzYTlcdTZkZjlcdTVkYWFcdTY5''@;'; + put 'put ''NmRcdTUxODZcdTRlODhcdTRmNTlcdWY5N2ZcdWY5ODBcdWY5ODFcdTU5ODJcdWY5ODJcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMjldLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIyOV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjI5XVtFXV09NTg2MjQrRSxMWzU4NjI0K0VdPUJbMjI5''@;'; + put 'put ''XVtFXSk7Zm9yKEJbMjMwXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmOTgz''@;'; + put 'put ''XHU2YjVmXHU2YzVkXHVmOTg0XHU3NGI1XHU3OTE2XHVmOTg1XHU4MjA3XHU4MjQ1XHU4MzM5XHU4ZjNmXHU4ZjVkXHVmOTg2XHU5OTE4XHVmOTg3XHVmOTg4XHVmOTg5XHU0ZWE2XHVmOThhXHU1N2RmXHU1Zjc5XHU2NjEzXHVmOThiXHVmOThjXHU3NWFiXHU3ZTc5XHU4YjZmXHVmOThkXHU5''@;'; + put 'put ''MDA2XHU5YTViXHU1NmE1XHU1ODI3XHU1OWY4XHU1YTFmXHU1YmI0XHVmOThlXHU1ZWY2XHVmOThmXHVmOTkwXHU2MzUwXHU2MzNiXHVmOTkxXHU2OTNkXHU2Yzg3XHU2Y2JmXHU2ZDhlXHU2ZDkzXHU2ZGY1XHU2ZjE0XHVmOTkyXHU3MGRmXHU3MTM2XHU3MTU5XHVmOTkzXHU3MWMzXHU3MWQ1''@;'; + put 'put ''XHVmOTk0XHU3ODRmXHU3ODZmXHVmOTk1XHU3Yjc1XHU3ZGUzXHVmOTk2XHU3ZTJmXHVmOTk3XHU4ODRkXHU4ZWRmXHVmOTk4XHVmOTk5XHVmOTlhXHU5MjViXHVmOTliXHU5Y2Y2XHVmOTljXHVmOTlkXHVmOTllXHU2MDg1XHU2ZDg1XHVmOTlmXHU3MWIxXHVmOWEwXHVmOWExXHU5NWIxXHU1''@;'; + put 'put ''M2FkXHVmOWEyXHVmOWEzXHVmOWE0XHU2N2QzXHVmOWE1XHU3MDhlXHU3MTMwXHU3NDMwXHU4Mjc2XHU4MmQyXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjMwXS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMzBdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIzMF1bRV1dPTU4ODgwK0UsTFs1''@;'; + put 'put ''ODg4MCtFXT1CWzIzMF1bRV0pO2ZvcihCWzIzMV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZjlhNlx1OTViYlx1OWFlNVx1OWU3ZFx1NjZjNFx1ZjlhN1x1NzFjMVx1ODQ0OVx1ZjlhOFx1ZjlhOVx1NTg0Ylx1ZjlhYVx1ZjlhYlx1NWRiOFx1NWY3MVx1ZjlhY1x1NjYyMFx1NjY4ZVx1Njk3OVx1NjlhZVx1NmMzOFx1NmNmM1x1NmUzNlx1NmY0MVx1NmZkYVx1NzAxYlx1''@;'; + put 'put ''NzAyZlx1NzE1MFx1NzFkZlx1NzM3MFx1ZjlhZFx1NzQ1Ylx1ZjlhZVx1NzRkNFx1NzZjOFx1N2E0ZVx1N2U5M1x1ZjlhZlx1ZjliMFx1ODJmMVx1OGE2MFx1OGZjZVx1ZjliMVx1OTM0OFx1ZjliMlx1OTcxOVx1ZjliM1x1ZjliNFx1NGU0Mlx1NTAyYVx1ZjliNVx1NTIwOFx1NTNlMVx1NjZm''@;'; + put 'put ''M1x1NmM2ZFx1NmZjYVx1NzMwYVx1Nzc3Zlx1N2E2Mlx1ODJhZVx1ODVkZFx1ODYwMlx1ZjliNlx1ODhkNFx1OGE2M1x1OGI3ZFx1OGM2Ylx1ZjliN1x1OTJiM1x1ZjliOFx1OTcxM1x1OTgxMFx1NGU5NFx1NGYwZFx1NGZjOVx1NTBiMlx1NTM0OFx1NTQzZVx1NTQzM1x1NTVkYVx1NTg2Mlx1''@;'; + put 'put ''NThiYVx1NTk2N1x1NWExYlx1NWJlNFx1NjA5Zlx1ZjliOVx1NjFjYVx1NjU1Nlx1NjVmZlx1NjY2NFx1NjhhN1x1NmM1YVx1NmZiM1x1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIzMV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjMxXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMzFdW0Vd''@;'; + put 'put ''XT01OTEzNitFLExbNTkxMzYrRV09QlsyMzFdW0VdKTtmb3IoQlsyMzJdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTcwY2ZcdTcxYWNcdTczNTJcdTdiN2RcdTg3MDhcdThhYTRcdTljMzJcdTlmMDdcdTVjNGJcdTZjODNcdTczNDRcdTczODlcdTkyM2FcdTZlYWJcdTc0NjVcdTc2MWZcdTdhNjlcdTdlMTVcdTg2MGFcdTUxNDBcdTU4YzVcdTY0YzFcdTc0ZWVcdTc1MTVc''@;'; + put 'put ''dTc2NzBcdTdmYzFcdTkwOTVcdTk2Y2RcdTk5NTRcdTZlMjZcdTc0ZTZcdTdhYTlcdTdhYWFcdTgxZTVcdTg2ZDlcdTg3NzhcdThhMWJcdTVhNDlcdTViOGNcdTViOWJcdTY4YTFcdTY5MDBcdTZkNjNcdTczYTlcdTc0MTNcdTc0MmNcdTc4OTdcdTdkZTlcdTdmZWJcdTgxMThcdTgxNTVcdTgz''@;'; + put 'put ''OWVcdThjNGNcdTk2MmVcdTk4MTFcdTY2ZjBcdTVmODBcdTY1ZmFcdTY3ODlcdTZjNmFcdTczOGJcdTUwMmRcdTVhMDNcdTZiNmFcdTc3ZWVcdTU5MTZcdTVkNmNcdTVkY2RcdTczMjVcdTc1NGZcdWY5YmFcdWY5YmJcdTUwZTVcdTUxZjlcdTU4MmZcdTU5MmRcdTU5OTZcdTU5ZGFcdTViZTVc''@;'; + put 'put ''dWY5YmNcdWY5YmRcdTVkYTJcdTYyZDdcdTY0MTZcdTY0OTNcdTY0ZmVcdWY5YmVcdTY2ZGNcdWY5YmZcdTZhNDhcdWY5YzBcdTcxZmZcdTc0NjRcdWY5YzFcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMzJdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIzMl1bRV0uY2hhckNvZGVBdCgwKSYm''@;'; + put 'put ''KG1lW0JbMjMyXVtFXV09NTkzOTIrRSxMWzU5MzkyK0VdPUJbMjMyXVtFXSk7Zm9yKEJbMjMzXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3YTg4XHU3YWFmXHU3ZTQ3XHU3ZTVlXHU4MDAwXHU4MTcwXHVmOWMyXHU4N2VmXHU4OTgxXHU4YjIwXHU5MDU5XHVmOWMzXHU5MDgwXHU5OTUyXHU2MTdlXHU2YjMyXHU2ZDc0XHU3ZTFmXHU4OTI1XHU4ZmIxXHU0ZmQxXHU1MGFk''@;'; + put 'put ''XHU1MTk3XHU1MmM3XHU1N2M3XHU1ODg5XHU1YmI5XHU1ZWI4XHU2MTQyXHU2OTk1XHU2ZDhjXHU2ZTY3XHU2ZWI2XHU3MTk0XHU3NDYyXHU3NTI4XHU3NTJjXHU4MDczXHU4MzM4XHU4NGM5XHU4ZTBhXHU5Mzk0XHU5M2RlXHVmOWM0XHU0ZThlXHU0ZjUxXHU1MDc2XHU1MTJhXHU1M2M4XHU1''@;'; + put 'put ''M2NiXHU1M2YzXHU1Yjg3XHU1YmQzXHU1YzI0XHU2MTFhXHU2MTgyXHU2NWY0XHU3MjViXHU3Mzk3XHU3NDQwXHU3NmMyXHU3OTUwXHU3OTkxXHU3OWI5XHU3ZDA2XHU3ZmJkXHU4MjhiXHU4NWQ1XHU4NjVlXHU4ZmMyXHU5MDQ3XHU5MGY1XHU5MWVhXHU5Njg1XHU5NmU4XHU5NmU5XHU1MmQ2''@;'; + put 'put ''XHU1ZjY3XHU2NWVkXHU2NjMxXHU2ODJmXHU3MTVjXHU3YTM2XHU5MGMxXHU5ODBhXHU0ZTkxXHVmOWM1XHU2YTUyXHU2YjllXHU2ZjkwXHU3MTg5XHU4MDE4XHU4MmI4XHU4NTUzXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjMzXS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMzNdW0VdLmNo''@;'; + put 'put ''YXJDb2RlQXQoMCkmJihtZVtCWzIzM11bRV1dPTU5NjQ4K0UsTFs1OTY0OCtFXT1CWzIzM11bRV0pO2ZvcihCWzIzNF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OTA0Ylx1OTY5NVx1OTZmMlx1OTdmYlx1ODUxYVx1OWIzMVx1NGU5MFx1NzE4YVx1OTZjNFx1NTE0M1x1NTM5Zlx1NTRlMVx1NTcxM1x1NTcxMlx1NTdhM1x1NWE5Ylx1NWFjNFx1NWJjM1x1NjAyOFx1NjEz''@;'; + put 'put ''Zlx1NjNmNFx1NmM4NVx1NmQzOVx1NmU3Mlx1NmU5MFx1NzIzMFx1NzMzZlx1NzQ1N1x1ODJkMVx1ODg4MVx1OGY0NVx1OTA2MFx1ZjljNlx1OTY2Mlx1OTg1OFx1OWQxYlx1NjcwOFx1OGQ4YVx1OTI1ZVx1NGY0ZFx1NTA0OVx1NTBkZVx1NTM3MVx1NTcwZFx1NTlkNFx1NWEwMVx1NWMwOVx1''@;'; + put 'put ''NjE3MFx1NjY5MFx1NmUyZFx1NzIzMlx1NzQ0Ylx1N2RlZlx1ODBjM1x1ODQwZVx1ODQ2Nlx1ODUzZlx1ODc1Zlx1ODg1Ylx1ODkxOFx1OGIwMlx1OTA1NVx1OTdjYlx1OWI0Zlx1NGU3M1x1NGY5MVx1NTExMlx1NTE2YVx1ZjljN1x1NTUyZlx1NTVhOVx1NWI3YVx1NWJhNVx1NWU3Y1x1NWU3''@;'; + put 'put ''ZFx1NWViZVx1NjBhMFx1NjBkZlx1NjEwOFx1NjEwOVx1NjNjNFx1NjUzOFx1NjcwOVx1ZjljOFx1NjdkNFx1NjdkYVx1ZjljOVx1Njk2MVx1Njk2Mlx1NmNiOVx1NmQyN1x1ZjljYVx1NmUzOFx1ZjljYlx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIzNF0ubGVuZ3RoOysrRSk2NTUzMyE9''@;'; + put 'put ''PUJbMjM0XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMzRdW0VdXT01OTkwNCtFLExbNTk5MDQrRV09QlsyMzRdW0VdKTtmb3IoQlsyMzVdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTZmZTFcdTczMzZcdTczMzdcdWY5Y2NcdTc0NWNcdTc1MzFcdWY5Y2RcdTc2NTJcdWY5Y2VcdWY5Y2ZcdTdkYWRcdTgxZmVcdTg0MzhcdTg4ZDVcdThhOThcdThhZGJcdThhZWRcdThl''@;'; + put 'put ''MzBcdThlNDJcdTkwNGFcdTkwM2VcdTkwN2FcdTkxNDlcdTkxYzlcdTkzNmVcdWY5ZDBcdWY5ZDFcdTU4MDlcdWY5ZDJcdTZiZDNcdTgwODlcdTgwYjJcdWY5ZDNcdWY5ZDRcdTUxNDFcdTU5NmJcdTVjMzlcdWY5ZDVcdWY5ZDZcdTZmNjRcdTczYTdcdTgwZTRcdThkMDdcdWY5ZDdcdTkyMTdc''@;'; + put 'put ''dTk1OGZcdWY5ZDhcdWY5ZDlcdWY5ZGFcdWY5ZGJcdTgwN2ZcdTYyMGVcdTcwMWNcdTdkNjhcdTg3OGRcdWY5ZGNcdTU3YTBcdTYwNjlcdTYxNDdcdTZiYjdcdThhYmVcdTkyODBcdTk2YjFcdTRlNTlcdTU0MWZcdTZkZWJcdTg1MmRcdTk2NzBcdTk3ZjNcdTk4ZWVcdTYzZDZcdTZjZTNcdTkw''@;'; + put 'put ''OTFcdTUxZGRcdTYxYzlcdTgxYmFcdTlkZjlcdTRmOWRcdTUwMWFcdTUxMDBcdTViOWNcdTYxMGZcdTYxZmZcdTY0ZWNcdTY5MDVcdTZiYzVcdTc1OTFcdTc3ZTNcdTdmYTlcdTgyNjRcdTg1OGZcdTg3ZmJcdTg4NjNcdThhYmNcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMzVdLmxlbmd0''@;'; + put 'put ''aDsrK0UpNjU1MzMhPT1CWzIzNV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjM1XVtFXV09NjAxNjArRSxMWzYwMTYwK0VdPUJbMjM1XVtFXSk7Zm9yKEJbMjM2XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4YjcwXHU5MWFiXHU0ZThjXHU0ZWU1XHU0ZjBhXHVmOWRkXHVmOWRlXHU1OTM3XHU1OWU4XHVmOWRmXHU1ZGYyXHU1ZjFiXHU1ZjViXHU2MDIxXHVmOWUwXHVm''@;'; + put 'put ''OWUxXHVmOWUyXHVmOWUzXHU3MjNlXHU3M2U1XHVmOWU0XHU3NTcwXHU3NWNkXHVmOWU1XHU3OWZiXHVmOWU2XHU4MDBjXHU4MDMzXHU4MDg0XHU4MmUxXHU4MzUxXHVmOWU3XHVmOWU4XHU4Y2JkXHU4Y2IzXHU5MDg3XHVmOWU5XHVmOWVhXHU5OGY0XHU5OTBjXHVmOWViXHVmOWVjXHU3MDM3''@;'; + put 'put ''XHU3NmNhXHU3ZmNhXHU3ZmNjXHU3ZmZjXHU4YjFhXHU0ZWJhXHU0ZWMxXHU1MjAzXHU1MzcwXHVmOWVkXHU1NGJkXHU1NmUwXHU1OWZiXHU1YmM1XHU1ZjE1XHU1ZmNkXHU2ZTZlXHVmOWVlXHVmOWVmXHU3ZDZhXHU4MzM1XHVmOWYwXHU4NjkzXHU4YThkXHVmOWYxXHU5NzZkXHU5Nzc3XHVm''@;'; + put 'put ''OWYyXHVmOWYzXHU0ZTAwXHU0ZjVhXHU0ZjdlXHU1OGY5XHU2NWU1XHU2ZWEyXHU5MDM4XHU5M2IwXHU5OWI5XHU0ZWZiXHU1OGVjXHU1OThhXHU1OWQ5XHU2MDQxXHVmOWY0XHVmOWY1XHU3YTE0XHVmOWY2XHU4MzRmXHU4Y2MzXHU1MTY1XHU1MzQ0XHVmZmZkIi5zcGxpdCgiIiksRT0wO0Uh''@;'; + put 'put ''PUJbMjM2XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMzZdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIzNl1bRV1dPTYwNDE2K0UsTFs2MDQxNitFXT1CWzIzNl1bRV0pO2ZvcihCWzIzN109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZjlmN1x1ZjlmOFx1ZjlmOVx1NGVjZFx1NTI2OVx1NWI1NVx1ODJiZlx1NGVkNFx1NTIzYVx1NTRhOFx1NTljOVx1NTlmZlx1NWI1MFx1''@;'; + put 'put ''NWI1N1x1NWI1Y1x1NjA2M1x1NjE0OFx1NmVjYlx1NzA5OVx1NzE2ZVx1NzM4Nlx1NzRmN1x1NzViNVx1NzhjMVx1N2QyYlx1ODAwNVx1ODFlYVx1ODMyOFx1ODUxN1x1ODVjOVx1OGFlZVx1OGNjN1x1OTZjY1x1NGY1Y1x1NTJmYVx1NTZiY1x1NjVhYlx1NjYyOFx1NzA3Y1x1NzBiOFx1NzIz''@;'; + put 'put ''NVx1N2RiZFx1ODI4ZFx1OTE0Y1x1OTZjMFx1OWQ3Mlx1NWI3MVx1NjhlN1x1NmI5OFx1NmY3YVx1NzZkZVx1NWM5MVx1NjZhYlx1NmY1Ylx1N2JiNFx1N2MyYVx1ODgzNlx1OTZkY1x1NGUwOFx1NGVkN1x1NTMyMFx1NTgzNFx1NThiYlx1NThlZlx1NTk2Y1x1NWMwN1x1NWUzM1x1NWU4NFx1''@;'; + put 'put ''NWYzNVx1NjM4Y1x1NjZiMlx1Njc1Nlx1NmExZlx1NmFhM1x1NmIwY1x1NmYzZlx1NzI0Nlx1ZjlmYVx1NzM1MFx1NzQ4Ylx1N2FlMFx1N2NhN1x1ODE3OFx1ODFkZlx1ODFlN1x1ODM4YVx1ODQ2Y1x1ODUyM1x1ODU5NFx1ODVjZlx1ODhkZFx1OGQxM1x1OTFhY1x1OTU3N1x1ZmZmZCIuc3Bs''@;'; + put 'put ''aXQoIiIpLEU9MDtFIT1CWzIzN10ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjM3XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMzddW0VdXT02MDY3MitFLExbNjA2NzIrRV09QlsyMzddW0VdKTtmb3IoQlsyMzhdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTk2OWNcdTUxOGRcdTU0YzlcdTU3MjhcdTViYjBcdTYyNGRcdTY3NTBcdTY4M2RcdTY4OTNcdTZlM2RcdTZlZDNc''@;'; + put 'put ''dTcwN2RcdTdlMjFcdTg4YzFcdThjYTFcdThmMDlcdTlmNGJcdTlmNGVcdTcyMmRcdTdiOGZcdThhY2RcdTkzMWFcdTRmNDdcdTRmNGVcdTUxMzJcdTU0ODBcdTU5ZDBcdTVlOTVcdTYyYjVcdTY3NzVcdTY5NmVcdTZhMTdcdTZjYWVcdTZlMWFcdTcyZDlcdTczMmFcdTc1YmRcdTdiYjhcdTdk''@;'; + put 'put ''MzVcdTgyZTdcdTgzZjlcdTg0NTdcdTg1ZjdcdThhNWJcdThjYWZcdThlODdcdTkwMTlcdTkwYjhcdTk2Y2VcdTlmNWZcdTUyZTNcdTU0MGFcdTVhZTFcdTViYzJcdTY0NThcdTY1NzVcdTZlZjRcdTcyYzRcdWY5ZmJcdTc2ODRcdTdhNGRcdTdiMWJcdTdjNGRcdTdlM2VcdTdmZGZcdTgzN2Jc''@;'; + put 'put ''dThiMmJcdThjY2FcdThkNjRcdThkZTFcdThlNWZcdThmZWFcdThmZjlcdTkwNjlcdTkzZDFcdTRmNDNcdTRmN2FcdTUwYjNcdTUxNjhcdTUxNzhcdTUyNGRcdTUyNmFcdTU4NjFcdTU4N2NcdTU5NjBcdTVjMDhcdTVjNTVcdTVlZGJcdTYwOWJcdTYyMzBcdTY4MTNcdTZiYmZcdTZjMDhcdTZm''@;'; + put 'put ''YjFcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMzhdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIzOF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjM4XVtFXV09NjA5MjgrRSxMWzYwOTI4K0VdPUJbMjM4XVtFXSk7Zm9yKEJbMjM5XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3MTRlXHU3NDIwXHU3NTMwXHU3NTM4XHU3NTUxXHU3NjcyXHU3YjRjXHU3YjhiXHU3YmFk''@;'; + put 'put ''XHU3YmM2XHU3ZThmXHU4YTZlXHU4ZjNlXHU4ZjQ5XHU5MjNmXHU5MjkzXHU5MzIyXHU5NDJiXHU5NmZiXHU5ODVhXHU5ODZiXHU5OTFlXHU1MjA3XHU2MjJhXHU2Mjk4XHU2ZDU5XHU3NjY0XHU3YWNhXHU3YmMwXHU3ZDc2XHU1MzYwXHU1Y2JlXHU1ZTk3XHU2ZjM4XHU3MGI5XHU3Yzk4XHU5''@;'; + put 'put ''NzExXHU5YjhlXHU5ZWRlXHU2M2E1XHU2NDdhXHU4Nzc2XHU0ZTAxXHU0ZTk1XHU0ZWFkXHU1MDVjXHU1MDc1XHU1NDQ4XHU1OWMzXHU1YjlhXHU1ZTQwXHU1ZWFkXHU1ZWY3XHU1ZjgxXHU2MGM1XHU2MzNhXHU2NTNmXHU2NTc0XHU2NWNjXHU2Njc2XHU2Njc4XHU2N2ZlXHU2OTY4XHU2YTg5''@;'; + put 'put ''XHU2YjYzXHU2YzQwXHU2ZGMwXHU2ZGU4XHU2ZTFmXHU2ZTVlXHU3MDFlXHU3MGExXHU3MzhlXHU3M2ZkXHU3NTNhXHU3NzViXHU3ODg3XHU3OThlXHU3YTBiXHU3YTdkXHU3Y2JlXHU3ZDhlXHU4MjQ3XHU4YTAyXHU4YWVhXHU4YzllXHU5MTJkXHU5MTRhXHU5MWQ4XHU5MjY2XHU5MmNjXHU5''@;'; + put 'put ''MzIwXHU5NzA2XHU5NzU2XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjM5XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMzldW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIzOV1bRV1dPTYxMTg0K0UsTFs2MTE4NCtFXT1CWzIzOV1bRV0pO2ZvcihCWzI0MF09Ilx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OTc1Y1x1OTgwMlx1OWYwZVx1NTIzNlx1NTI5MVx1NTU3Y1x1NTgy''@;'; + put 'put ''NFx1NWUxZFx1NWYxZlx1NjA4Y1x1NjNkMFx1NjhhZlx1NmZkZlx1Nzk2ZFx1N2IyY1x1ODFjZFx1ODViYVx1ODhmZFx1OGFmOFx1OGU0NFx1OTE4ZFx1OTY2NFx1OTY5Ylx1OTczZFx1OTg0Y1x1OWY0YVx1NGZjZVx1NTE0Nlx1NTFjYlx1NTJhOVx1NTYzMlx1NWYxNFx1NWY2Ylx1NjNhYVx1''@;'; + put 'put ''NjRjZFx1NjVlOVx1NjY0MVx1NjZmYVx1NjZmOVx1NjcxZFx1Njg5ZFx1NjhkN1x1NjlmZFx1NmYxNVx1NmY2ZVx1NzE2N1x1NzFlNVx1NzIyYVx1NzRhYVx1NzczYVx1Nzk1Nlx1Nzk1YVx1NzlkZlx1N2EyMFx1N2E5NVx1N2M5N1x1N2NkZlx1N2Q0NFx1N2U3MFx1ODA4N1x1ODVmYlx1ODZh''@;'; + put 'put ''NFx1OGE1NFx1OGFiZlx1OGQ5OVx1OGU4MVx1OTAyMFx1OTA2ZFx1OTFlM1x1OTYzYlx1OTZkNVx1OWNlNVx1NjVjZlx1N2MwN1x1OGRiM1x1OTNjM1x1NWI1OFx1NWMwYVx1NTM1Mlx1NjJkOVx1NzMxZFx1NTAyN1x1NWI5N1x1NWY5ZVx1NjBiMFx1NjE2Ylx1NjhkNVx1NmRkOVx1NzQyZVx1''@;'; + put 'put ''N2EyZVx1N2Q0Mlx1N2Q5Y1x1N2UzMVx1ODE2Ylx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzI0MF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjQwXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyNDBdW0VdXT02MTQ0MCtFLExbNjE0NDArRV09QlsyNDBdW0VdKTtmb3IoQlsyNDFdPSJcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdThlMmFcdThlMzVcdTkzN2VcdTk0MThcdTRm''@;'; + put 'put ''NTBcdTU3NTBcdTVkZTZcdTVlYTdcdTYzMmJcdTdmNmFcdTRlM2JcdTRmNGZcdTRmOGZcdTUwNWFcdTU5ZGRcdTgwYzRcdTU0NmFcdTU0NjhcdTU1ZmVcdTU5NGZcdTViOTlcdTVkZGVcdTVlZGFcdTY2NWRcdTY3MzFcdTY3ZjFcdTY4MmFcdTZjZThcdTZkMzJcdTZlNGFcdTZmOGRcdTcwYjdc''@;'; + put 'put ''dTczZTBcdTc1ODdcdTdjNGNcdTdkMDJcdTdkMmNcdTdkYTJcdTgyMWZcdTg2ZGJcdThhM2JcdThhODVcdThkNzBcdThlOGFcdThmMzNcdTkwMzFcdTkxNGVcdTkxNTJcdTk0NDRcdTk5ZDBcdTdhZjlcdTdjYTVcdTRmY2FcdTUxMDFcdTUxYzZcdTU3YzhcdTViZWZcdTVjZmJcdTY2NTlcdTZh''@;'; + put 'put ''M2RcdTZkNWFcdTZlOTZcdTZmZWNcdTcxMGNcdTc1NmZcdTdhZTNcdTg4MjJcdTkwMjFcdTkwNzVcdTk2Y2JcdTk5ZmZcdTgzMDFcdTRlMmRcdTRlZjJcdTg4NDZcdTkxY2RcdTUzN2RcdTZhZGJcdTY5NmJcdTZjNDFcdTg0N2FcdTU4OWVcdTYxOGVcdTY2ZmVcdTYyZWZcdTcwZGRcdTc1MTFc''@;'; + put 'put ''dTc1YzdcdTdlNTJcdTg0YjhcdThiNDlcdThkMDhcdTRlNGJcdTUzZWFcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyNDFdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzI0MV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjQxXVtFXV09NjE2OTYrRSxMWzYxNjk2K0VdPUJbMjQxXVtFXSk7Zm9y''@;'; + put 'put ''KEJbMjQyXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1NGFiXHU1NzMwXHU1''@;'; + put 'put ''NzQwXHU1ZmQ3XHU2MzAxXHU2MzA3XHU2NDZmXHU2NTJmXHU2NWU4XHU2NjdhXHU2NzlkXHU2N2IzXHU2YjYyXHU2YzYwXHU2YzlhXHU2ZjJjXHU3N2U1XHU3ODI1XHU3OTQ5XHU3OTU3XHU3ZDE5XHU4MGEyXHU4MTAyXHU4MWYzXHU4MjlkXHU4MmI3XHU4NzE4XHU4YThjXHVmOWZjXHU4ZDA0''@;'; + put 'put ''XHU4ZGJlXHU5MDcyXHU3NmY0XHU3YTE5XHU3YTM3XHU3ZTU0XHU4MDc3XHU1NTA3XHU1NWQ0XHU1ODc1XHU2MzJmXHU2NDIyXHU2NjQ5XHU2NjRiXHU2ODZkXHU2OTliXHU2Yjg0XHU2ZDI1XHU2ZWIxXHU3M2NkXHU3NDY4XHU3NGExXHU3NTViXHU3NWI5XHU3NmUxXHU3NzFlXHU3NzhiXHU3''@;'; + put 'put ''OWU2XHU3ZTA5XHU3ZTFkXHU4MWZiXHU4NTJmXHU4ODk3XHU4YTNhXHU4Y2QxXHU4ZWViXHU4ZmIwXHU5MDMyXHU5M2FkXHU5NjYzXHU5NjczXHU5NzA3XHU0Zjg0XHU1M2YxXHU1OWVhXHU1YWM5XHU1ZTE5XHU2ODRlXHU3NGM2XHU3NWJlXHU3OWU5XHU3YTkyXHU4MWEzXHU4NmVkXHU4Y2Vh''@;'; + put 'put ''XHU4ZGNjXHU4ZmVkXHU2NTlmXHU2NzE1XHVmOWZkXHU1N2Y3XHU2ZjU3XHU3ZGRkXHU4ZjJmXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjQyXS5sZW5ndGg7KytFKTY1NTMzIT09QlsyNDJdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzI0Ml1bRV1dPTYxOTUyK0UsTFs2MTk1MitFXT1C''@;'; + put 'put ''WzI0Ml1bRV0pO2ZvcihCWzI0M109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''OTNmNlx1OTZjNlx1NWZiNVx1NjFmMlx1NmY4NFx1NGUxNFx1NGY5OFx1NTAxZlx1NTNjOVx1NTVkZlx1NWQ2Zlx1NWRlZVx1NmIyMVx1NmI2NFx1NzhjYlx1N2I5YVx1ZjlmZVx1OGU0OVx1OGVjYVx1OTA2ZVx1NjM0OVx1NjQzZVx1Nzc0MFx1N2E4NFx1OTMyZlx1OTQ3Zlx1OWY2YVx1NjRi''@;'; + put 'put ''MFx1NmZhZlx1NzFlNlx1NzRhOFx1NzRkYVx1N2FjNFx1N2MxMlx1N2U4Mlx1N2NiMlx1N2U5OFx1OGI5YVx1OGQwYVx1OTQ3ZFx1OTkxMFx1OTk0Y1x1NTIzOVx1NWJkZlx1NjRlNlx1NjcyZFx1N2QyZVx1NTBlZFx1NTNjM1x1NTg3OVx1NjE1OFx1NjE1OVx1NjFmYVx1NjVhY1x1N2FkOVx1''@;'; + put 'put ''OGI5Mlx1OGI5Nlx1NTAwOVx1NTAyMVx1NTI3NVx1NTUzMVx1NWEzY1x1NWVlMFx1NWY3MFx1NjEzNFx1NjU1ZVx1NjYwY1x1NjYzNlx1NjZhMlx1NjljZFx1NmVjNFx1NmYzMlx1NzMxNlx1NzYyMVx1N2E5M1x1ODEzOVx1ODI1OVx1ODNkNlx1ODRiY1x1NTBiNVx1NTdmMFx1NWJjMFx1NWJl''@;'; + put 'put ''OFx1NWY2OVx1NjNhMVx1NzgyNlx1N2RiNVx1ODNkY1x1ODUyMVx1OTFjN1x1OTFmNVx1NTE4YVx1NjdmNVx1N2I1Nlx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzI0M10ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjQzXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyNDNdW0VdXT02MjIwOCtF''@;'; + put 'put ''LExbNjIyMDgrRV09QlsyNDNdW0VdKTtmb3IoQlsyNDRdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdThjYWNcdTUxYzRcdTU5YmJcdTYwYmRcdTg2NTVcdTUwMWNcdWY5ZmZcdTUyNTRcdTVjM2FcdTYxN2RcdTYyMWFcdTYyZDNcdTY0ZjJcdTY1YTVcdTZlY2NcdTc2MjBcdTgxMGFcdThlNjBcdTk2NWZcdTk2YmJcdTRlZGZcdTUzNDNcdTU1OThcdTU5MjlcdTVkZGRcdTY0''@;'; + put 'put ''YzVcdTZjYzlcdTZkZmFcdTczOTRcdTdhN2ZcdTgyMWJcdTg1YTZcdThjZTRcdThlMTBcdTkwNzdcdTkxZTdcdTk1ZTFcdTk2MjFcdTk3YzZcdTUxZjhcdTU0ZjJcdTU1ODZcdTVmYjlcdTY0YTRcdTZmODhcdTdkYjRcdThmMWZcdThmNGRcdTk0MzVcdTUwYzlcdTVjMTZcdTZjYmVcdTZkZmJc''@;'; + put 'put ''dTc1MWJcdTc3YmJcdTdjM2RcdTdjNjRcdThhNzlcdThhYzJcdTU4MWVcdTU5YmVcdTVlMTZcdTYzNzdcdTcyNTJcdTc1OGFcdTc3NmJcdThhZGNcdThjYmNcdThmMTJcdTVlZjNcdTY2NzRcdTZkZjhcdTgwN2RcdTgzYzFcdThhY2JcdTk3NTFcdTliZDZcdWZhMDBcdTUyNDNcdTY2ZmZcdTZk''@;'; + put 'put ''OTVcdTZlZWZcdTdkZTBcdThhZTZcdTkwMmVcdTkwNWVcdTlhZDRcdTUyMWRcdTUyN2ZcdTU0ZThcdTYxOTRcdTYyODRcdTYyZGJcdTY4YTJcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyNDRdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzI0NF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjQ0''@;'; + put 'put ''XVtFXV09NjI0NjQrRSxMWzYyNDY0K0VdPUJbMjQ0XVtFXSk7Zm9yKEJbMjQ1XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2OTEyXHU2OTVhXHU2YTM1XHU3MDkyXHU3MTI2XHU3ODVkXHU3OTAxXHU3OTBlXHU3OWQyXHU3YTBkXHU4MDk2XHU4Mjc4XHU4MmQ1XHU4MzQ5XHU4NTQ5XHU4YzgyXHU4ZDg1XHU5MTYyXHU5MThiXHU5MWFlXHU0ZmMzXHU1NmQxXHU3MWVkXHU3''@;'; + put 'put ''N2Q3XHU4NzAwXHU4OWY4XHU1YmY4XHU1ZmQ2XHU2NzUxXHU5MGE4XHU1M2UyXHU1ODVhXHU1YmY1XHU2MGE0XHU2MTgxXHU2NDYwXHU3ZTNkXHU4MDcwXHU4NTI1XHU5MjgzXHU2NGFlXHU1MGFjXHU1ZDE0XHU2NzAwXHU1ODljXHU2MmJkXHU2M2E4XHU2OTBlXHU2OTc4XHU2YTFlXHU2ZTZi''@;'; + put 'put ''XHU3NmJhXHU3OWNiXHU4MmJiXHU4NDI5XHU4YWNmXHU4ZGE4XHU4ZmZkXHU5MTEyXHU5MTRiXHU5MTljXHU5MzEwXHU5MzE4XHU5MzlhXHU5NmRiXHU5YTM2XHU5YzBkXHU0ZTExXHU3NTVjXHU3OTVkXHU3YWZhXHU3YjUxXHU3YmM5XHU3ZTJlXHU4NGM0XHU4ZTU5XHU4ZTc0XHU4ZWY4XHU5''@;'; + put 'put ''MDEwXHU2NjI1XHU2OTNmXHU3NDQzXHU1MWZhXHU2NzJlXHU5ZWRjXHU1MTQ1XHU1ZmUwXHU2Yzk2XHU4N2YyXHU4ODVkXHU4ODc3XHU2MGI0XHU4MWI1XHU4NDAzXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjQ1XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyNDVdW0VdLmNoYXJDb2RlQXQo''@;'; + put 'put ''MCkmJihtZVtCWzI0NV1bRV1dPTYyNzIwK0UsTFs2MjcyMCtFXT1CWzI0NV1bRV0pO2ZvcihCWzI0Nl09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OGQwNVx1NTNkNlx1NTQzOVx1NTYzNFx1NWEzNlx1NWMzMVx1NzA4YVx1N2ZlMFx1ODA1YVx1ODEwNlx1ODFlZFx1OGRhM1x1OTE4OVx1OWE1Zlx1OWRmMlx1NTA3NFx1NGVjNFx1NTNhMFx1NjBmYlx1NmUyY1x1NWM2NFx1''@;'; + put 'put ''NGY4OFx1NTAyNFx1NTVlNFx1NWNkOVx1NWU1Zlx1NjA2NVx1Njg5NFx1NmNiYlx1NmRjNFx1NzFiZVx1NzVkNFx1NzVmNFx1NzY2MVx1N2ExYVx1N2E0OVx1N2RjN1x1N2RmYlx1N2Y2ZVx1ODFmNFx1ODZhOVx1OGYxY1x1OTZjOVx1OTliM1x1OWY1Mlx1NTI0N1x1NTJjNVx1OThlZFx1ODlh''@;'; + put 'put ''YVx1NGUwM1x1NjdkMlx1NmYwNlx1NGZiNVx1NWJlMlx1Njc5NVx1NmM4OFx1NmQ3OFx1NzQxYlx1NzgyN1x1OTFkZFx1OTM3Y1x1ODdjNFx1NzllNFx1N2EzMVx1NWZlYlx1NGVkNlx1NTRhNFx1NTUzZVx1NThhZVx1NTlhNVx1NjBmMFx1NjI1M1x1NjJkNlx1NjczNlx1Njk1NVx1ODIzNVx1''@;'; + put 'put ''OTY0MFx1OTliMVx1OTlkZFx1NTAyY1x1NTM1M1x1NTU0NFx1NTc3Y1x1ZmEwMVx1NjI1OFx1ZmEwMlx1NjRlMlx1NjY2Ylx1NjdkZFx1NmZjMVx1NmZlZlx1NzQyMlx1NzQzOFx1OGExN1x1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzI0Nl0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjQ2XVtF''@;'; + put 'put ''XS5jaGFyQ29kZUF0KDApJiYobWVbQlsyNDZdW0VdXT02Mjk3NitFLExbNjI5NzYrRV09QlsyNDZdW0VdKTtmb3IoQlsyNDddPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTk0MzhcdTU0NTFcdTU2MDZcdTU3NjZcdTVmNDhcdTYxOWFcdTZiNGVcdTcwNThcdTcwYWRcdTdkYmJcdThhOTVcdTU5NmFcdTgxMmJcdTYzYTJcdTc3MDhcdTgwM2RcdThjYWFcdTU4NTRcdTY0MmRc''@;'; + put 'put ''dTY5YmJcdTViOTVcdTVlMTFcdTZlNmZcdWZhMDNcdTg1NjlcdTUxNGNcdTUzZjBcdTU5MmFcdTYwMjBcdTYxNGJcdTZiODZcdTZjNzBcdTZjZjBcdTdiMWVcdTgwY2VcdTgyZDRcdThkYzZcdTkwYjBcdTk4YjFcdWZhMDRcdTY0YzdcdTZmYTRcdTY0OTFcdTY1MDRcdTUxNGVcdTU0MTBcdTU3''@;'; + put 'put ''MWZcdThhMGVcdTYxNWZcdTY4NzZcdWZhMDVcdTc1ZGJcdTdiNTJcdTdkNzFcdTkwMWFcdTU4MDZcdTY5Y2NcdTgxN2ZcdTg5MmFcdTkwMDBcdTk4MzlcdTUwNzhcdTU5NTdcdTU5YWNcdTYyOTVcdTkwMGZcdTliMmFcdTYxNWRcdTcyNzlcdTk1ZDZcdTU3NjFcdTVhNDZcdTVkZjRcdTYyOGFc''@;'; + put 'put ''dTY0YWRcdTY0ZmFcdTY3NzdcdTZjZTJcdTZkM2VcdTcyMmNcdTc0MzZcdTc4MzRcdTdmNzdcdTgyYWRcdThkZGJcdTk4MTdcdTUyMjRcdTU3NDJcdTY3N2ZcdTcyNDhcdTc0ZTNcdThjYTlcdThmYTZcdTkyMTFcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyNDddLmxlbmd0aDsrK0UpNjU1''@;'; + put 'put ''MzMhPT1CWzI0N11bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjQ3XVtFXV09NjMyMzIrRSxMWzYzMjMyK0VdPUJbMjQ3XVtFXSk7Zm9yKEJbMjQ4XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5NjJhXHU1MTZiXHU1M2VkXHU2MzRjXHU0ZjY5XHU1NTA0XHU2MDk2XHU2NTU3XHU2YzliXHU2ZDdmXHU3MjRjXHU3MmZkXHU3YTE3XHU4OTg3XHU4YzlkXHU1ZjZkXHU2Zjhl''@;'; + put 'put ''XHU3MGY5XHU4MWE4XHU2MTBlXHU0ZmJmXHU1MDRmXHU2MjQxXHU3MjQ3XHU3YmM3XHU3ZGU4XHU3ZmU5XHU5MDRkXHU5N2FkXHU5YTE5XHU4Y2I2XHU1NzZhXHU1ZTczXHU2N2IwXHU4NDBkXHU4YTU1XHU1NDIwXHU1YjE2XHU1ZTYzXHU1ZWUyXHU1ZjBhXHU2NTgzXHU4MGJhXHU4NTNkXHU5''@;'; + put 'put ''NTg5XHU5NjViXHU0ZjQ4XHU1MzA1XHU1MzBkXHU1MzBmXHU1NDg2XHU1NGZhXHU1NzAzXHU1ZTAzXHU2MDE2XHU2MjliXHU2MmIxXHU2MzU1XHVmYTA2XHU2Y2UxXHU2ZDY2XHU3NWIxXHU3ODMyXHU4MGRlXHU4MTJmXHU4MmRlXHU4NDYxXHU4NGIyXHU4ODhkXHU4OTEyXHU5MDBiXHU5MmVh''@;'; + put 'put ''XHU5OGZkXHU5YjkxXHU1ZTQ1XHU2NmI0XHU2NmRkXHU3MDExXHU3MjA2XHVmYTA3XHU0ZmY1XHU1MjdkXHU1ZjZhXHU2MTUzXHU2NzUzXHU2YTE5XHU2ZjAyXHU3NGUyXHU3OTY4XHU4ODY4XHU4Yzc5XHU5OGM3XHU5OGM0XHU5YTQzXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjQ4XS5s''@;'; + put 'put ''ZW5ndGg7KytFKTY1NTMzIT09QlsyNDhdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzI0OF1bRV1dPTYzNDg4K0UsTFs2MzQ4OCtFXT1CWzI0OF1bRV0pO2ZvcihCWzI0OV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NTRjMVx1N2ExZlx1Njk1M1x1OGFmN1x1OGM0YVx1OThhOFx1OTlhZVx1NWY3Y1x1NjJhYlx1NzViMlx1NzZhZVx1ODhhYlx1OTA3Zlx1OTY0Mlx1NTMz''@;'; + put 'put ''OVx1NWYzY1x1NWZjNVx1NmNjY1x1NzNjY1x1NzU2Mlx1NzU4Ylx1N2I0Nlx1ODJmZVx1OTk5ZFx1NGU0Zlx1OTAzY1x1NGUwYlx1NGY1NVx1NTNhNlx1NTkwZlx1NWVjOFx1NjYzMFx1NmNiM1x1NzQ1NVx1ODM3N1x1ODc2Nlx1OGNjMFx1OTA1MFx1OTcxZVx1OWMxNVx1NThkMVx1NWI3OFx1''@;'; + put 'put ''ODY1MFx1OGIxNFx1OWRiNFx1NWJkMlx1NjA2OFx1NjA4ZFx1NjVmMVx1NmM1N1x1NmYyMlx1NmZhM1x1NzAxYVx1N2Y1NVx1N2ZmMFx1OTU5MVx1OTU5Mlx1OTY1MFx1OTdkM1x1NTI3Mlx1OGY0NFx1NTFmZFx1NTQyYlx1NTRiOFx1NTU2M1x1NTU4YVx1NmFiYlx1NmRiNVx1N2RkOFx1ODI2''@;'; + put 'put ''Nlx1OTI5Y1x1OTY3N1x1OWU3OVx1NTQwOFx1NTRjOFx1NzZkMlx1ODZlNFx1OTVhNFx1OTVkNFx1OTY1Y1x1NGVhMlx1NGYwOVx1NTllZVx1NWFlNlx1NWRmN1x1NjA1Mlx1NjI5N1x1Njc2ZFx1Njg0MVx1NmM4Nlx1NmUyZlx1N2YzOFx1ODA5Ylx1ODIyYVx1ZmZmZCIuc3BsaXQoIiIpLEU9''@;'; + put 'put ''MDtFIT1CWzI0OV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjQ5XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyNDldW0VdXT02Mzc0NCtFLExbNjM3NDQrRV09QlsyNDldW0VdKTtmb3IoQlsyNTBdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZhMDhcdWZhMDlcdTk4MDVcdTRlYTVcdTUwNTVcdTU0YjNcdTU3OTNcdTU5NWFcdTViNjlcdTViYjNcdTYxYzhcdTY5NzdcdTZk''@;'; + put 'put ''NzdcdTcwMjNcdTg3ZjlcdTg5ZTNcdThhNzJcdThhZTdcdTkwODJcdTk5ZWRcdTlhYjhcdTUyYmVcdTY4MzhcdTUwMTZcdTVlNzhcdTY3NGZcdTgzNDdcdTg4NGNcdTRlYWJcdTU0MTFcdTU2YWVcdTczZTZcdTkxMTVcdTk3ZmZcdTk5MDlcdTk5NTdcdTk5OTlcdTU2NTNcdTU4OWZcdTg2NWJc''@;'; + put 'put ''dThhMzFcdTYxYjJcdTZhZjZcdTczN2JcdThlZDJcdTZiNDdcdTk2YWFcdTlhNTdcdTU5NTVcdTcyMDBcdThkNmJcdTk3NjlcdTRmZDRcdTVjZjRcdTVmMjZcdTYxZjhcdTY2NWJcdTZjZWJcdTcwYWJcdTczODRcdTczYjlcdTczZmVcdTc3MjlcdTc3NGRcdTdkNDNcdTdkNjJcdTdlMjNcdTgy''@;'; + put 'put ''MzdcdTg4NTJcdWZhMGFcdThjZTJcdTkyNDlcdTk4NmZcdTViNTFcdTdhNzRcdTg4NDBcdTk4MDFcdTVhY2NcdTRmZTBcdTUzNTRcdTU5M2VcdTVjZmRcdTYzM2VcdTZkNzlcdTcyZjlcdTgxMDVcdTgxMDdcdTgzYTJcdTkyY2ZcdTk4MzBcdTRlYThcdTUxNDRcdTUyMTFcdTU3OGJcdWZmZmQi''@;'; + put 'put ''LnNwbGl0KCIiKSxFPTA7RSE9QlsyNTBdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzI1MF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjUwXVtFXV09NjRlMytFLExbNjRlMytFXT1CWzI1MF1bRV0pO2ZvcihCWzI1MV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NWY2Mlx1NmNjMlx1NmVjZVx1NzAwNVx1NzA1MFx1NzBhZlx1NzE5Mlx1NzNlOVx1NzQ2OVx1ODM0YVx1ODdh''@;'; + put 'put ''Mlx1ODg2MVx1OTAwOFx1OTBhMlx1OTNhM1x1OTlhOFx1NTE2ZVx1NWY1N1x1NjBlMFx1NjE2N1x1NjZiM1x1ODU1OVx1OGU0YVx1OTFhZlx1OTc4Ylx1NGU0ZVx1NGU5Mlx1NTQ3Y1x1NThkNVx1NThmYVx1NTk3ZFx1NWNiNVx1NWYyN1x1NjIzNlx1NjI0OFx1NjYwYVx1NjY2N1x1NmJlYlx1''@;'; + put 'put ''NmQ2OVx1NmRjZlx1NmU1Nlx1NmVmOFx1NmY5NFx1NmZlMFx1NmZlOVx1NzA1ZFx1NzJkMFx1NzQyNVx1NzQ1YVx1NzRlMFx1NzY5M1x1Nzk1Y1x1N2NjYVx1N2UxZVx1ODBlMVx1ODJhNlx1ODQ2Ylx1ODRiZlx1ODY0ZVx1ODY1Zlx1ODc3NFx1OGI3N1x1OGM2YVx1OTNhY1x1OTgwMFx1OTg2''@;'; + put 'put ''NVx1NjBkMVx1NjIxNlx1OTE3N1x1NWE1YVx1NjYwZlx1NmRmN1x1NmUzZVx1NzQzZlx1OWI0Mlx1NWZmZFx1NjBkYVx1N2IwZlx1NTRjNFx1NWYxOFx1NmM1ZVx1NmNkM1x1NmQyYVx1NzBkOFx1N2QwNVx1ODY3OVx1OGEwY1x1OWQzYlx1NTMxNlx1NTQ4Y1x1NWIwNVx1NmEzYVx1NzA2Ylx1''@;'; + put 'put ''NzU3NVx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzI1MV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjUxXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyNTFdW0VdXT02NDI1NitFLExbNjQyNTYrRV09QlsyNTFdW0VdKTtmb3IoQlsyNTJdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTc5OGRcdTc5YmVcdTgyYjFcdTgzZWZcdThhNzFcdThiNDFcdThjYThcdTk3NzRcdWZh''@;'; + put 'put ''MGJcdTY0ZjRcdTY1MmJcdTc4YmFcdTc4YmJcdTdhNmJcdTRlMzhcdTU1OWFcdTU5NTBcdTViYTZcdTVlN2JcdTYwYTNcdTYzZGJcdTZiNjFcdTY2NjVcdTY4NTNcdTZlMTlcdTcxNjVcdTc0YjBcdTdkMDhcdTkwODRcdTlhNjlcdTljMjVcdTZkM2JcdTZlZDFcdTczM2VcdThjNDFcdTk1Y2Fc''@;'; + put 'put ''dTUxZjBcdTVlNGNcdTVmYThcdTYwNGRcdTYwZjZcdTYxMzBcdTYxNGNcdTY2NDNcdTY2NDRcdTY5YTVcdTZjYzFcdTZlNWZcdTZlYzlcdTZmNjJcdTcxNGNcdTc0OWNcdTc2ODdcdTdiYzFcdTdjMjdcdTgzNTJcdTg3NTdcdTkwNTFcdTk2OGRcdTllYzNcdTUzMmZcdTU2ZGVcdTVlZmJcdTVm''@;'; + put 'put ''OGFcdTYwNjJcdTYwOTRcdTYxZjdcdTY2NjZcdTY3MDNcdTZhOWNcdTZkZWVcdTZmYWVcdTcwNzBcdTczNmFcdTdlNmFcdTgxYmVcdTgzMzRcdTg2ZDRcdThhYThcdThjYzRcdTUyODNcdTczNzJcdTViOTZcdTZhNmJcdTk0MDRcdTU0ZWVcdTU2ODZcdTViNWRcdTY1NDhcdTY1ODVcdTY2Yzlc''@;'; + put 'put ''dTY4OWZcdTZkOGRcdTZkYzZcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyNTJdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzI1Ml1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjUyXVtFXV09NjQ1MTIrRSxMWzY0NTEyK0VdPUJbMjUyXVtFXSk7Zm9yKEJbMjUzXT0iXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3MjNiXHU4MGI0XHU5MTc1XHU5YTRkXHU0ZmFmXHU1MDE5XHU1''@;'; + put 'put ''MzlhXHU1NDBlXHU1NDNjXHU1NTg5XHU1NWM1XHU1ZTNmXHU1ZjhjXHU2NzNkXHU3MTY2XHU3M2RkXHU5MDA1XHU1MmRiXHU1MmYzXHU1ODY0XHU1OGNlXHU3MTA0XHU3MThmXHU3MWZiXHU4NWIwXHU4YTEzXHU2Njg4XHU4NWE4XHU1NWE3XHU2Njg0XHU3MTRhXHU4NDMxXHU1MzQ5XHU1NTk5''@;'; + put 'put ''XHU2YmMxXHU1ZjU5XHU1ZmJkXHU2M2VlXHU2Njg5XHU3MTQ3XHU4YWYxXHU4ZjFkXHU5ZWJlXHU0ZjExXHU2NDNhXHU3MGNiXHU3NTY2XHU4NjY3XHU2MDY0XHU4YjRlXHU5ZGY4XHU1MTQ3XHU1MWY2XHU1MzA4XHU2ZDM2XHU4MGY4XHU5ZWQxXHU2NjE1XHU2YjIzXHU3MDk4XHU3NWQ1XHU1''@;'; + put 'put ''NDAzXHU1Yzc5XHU3ZDA3XHU4YTE2XHU2YjIwXHU2YjNkXHU2YjQ2XHU1NDM4XHU2MDcwXHU2ZDNkXHU3ZmQ1XHU4MjA4XHU1MGQ2XHU1MWRlXHU1NTljXHU1NjZiXHU1NmNkXHU1OWVjXHU1YjA5XHU1ZTBjXHU2MTk5XHU2MTk4XHU2MjMxXHU2NjVlXHU2NmU2XHU3MTk5XHU3MWI5XHU3MWJh''@;'; + put 'put ''XHU3MmE3XHU3OWE3XHU3YTAwXHU3ZmIyXHU4YTcwXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjUzXS5sZW5ndGg7KytFKTY1NTMzIT09QlsyNTNdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzI1M11bRV1dPTY0NzY4K0UsTFs2NDc2OCtFXT1CWzI1M11bRV0pO3JldHVybntlbmM6bWUs''@;'; + put 'put ''ZGVjOkx9fSgpLEplWzk1MF09ZnVuY3Rpb24oKXt2YXIgRSxMPVtdLG1lPXt9LEI9W107Zm9yKEJbMF09IlwwXHgwMVx4MDJceDAzXHgwNFx4MDVceDA2XHgwN1xiXHRcblx2XGZcclx4MGVceDBmXHgxMFx4MTFceDEyXHgxM1x4MTRceDE1XHgxNlx4MTdceDE4XHgxOVx4MWFceDFiXHgxY1x4''@;'; + put 'put ''MWRceDFlXHgxZiAhXCIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5ceDdmXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMF1bRV1dPTArRSxMWzArRV09QlswXVtFXSk7Zm9yKEJbMTYxXT0i''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUzMDAwXHVmZjBjXHUzMDAxXHUzMDAyXHVmZjBlXHUyMDI3XHVmZjFiXHVmZjFhXHVmZjFmXHVmZjAxXHVmZTMwXHUyMDI2XHUyMDI1XHVmZTUwXHVmZTUxXHVmZTUyXHhiN1x1ZmU1NFx1ZmU1''@;'; + put 'put ''NVx1ZmU1Nlx1ZmU1N1x1ZmY1Y1x1MjAxM1x1ZmUzMVx1MjAxNFx1ZmUzM1x1MjU3NFx1ZmUzNFx1ZmU0Zlx1ZmYwOFx1ZmYwOVx1ZmUzNVx1ZmUzNlx1ZmY1Ylx1ZmY1ZFx1ZmUzN1x1ZmUzOFx1MzAxNFx1MzAxNVx1ZmUzOVx1ZmUzYVx1MzAxMFx1MzAxMVx1ZmUzYlx1ZmUzY1x1MzAwYVx1''@;'; + put 'put ''MzAwYlx1ZmUzZFx1ZmUzZVx1MzAwOFx1MzAwOVx1ZmUzZlx1ZmU0MFx1MzAwY1x1MzAwZFx1ZmU0MVx1ZmU0Mlx1MzAwZVx1MzAwZlx1ZmU0M1x1ZmU0NFx1ZmU1OVx1ZmU1YVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmU1Ylx1ZmU1Y1x1ZmU1ZFx1ZmU1ZVx1''@;'; + put 'put ''MjAxOFx1MjAxOVx1MjAxY1x1MjAxZFx1MzAxZFx1MzAxZVx1MjAzNVx1MjAzMlx1ZmYwM1x1ZmYwNlx1ZmYwYVx1MjAzYlx4YTdcdTMwMDNcdTI1Y2JcdTI1Y2ZcdTI1YjNcdTI1YjJcdTI1Y2VcdTI2MDZcdTI2MDVcdTI1YzdcdTI1YzZcdTI1YTFcdTI1YTBcdTI1YmRcdTI1YmNcdTMyYTNc''@;'; + put 'put ''dTIxMDVceGFmXHVmZmUzXHVmZjNmXHUwMmNkXHVmZTQ5XHVmZTRhXHVmZTRkXHVmZTRlXHVmZTRiXHVmZTRjXHVmZTVmXHVmZTYwXHVmZTYxXHVmZjBiXHVmZjBkXHhkN1x4ZjdceGIxXHUyMjFhXHVmZjFjXHVmZjFlXHVmZjFkXHUyMjY2XHUyMjY3XHUyMjYwXHUyMjFlXHUyMjUyXHUyMjYx''@;'; + put 'put ''XHVmZTYyXHVmZTYzXHVmZTY0XHVmZTY1XHVmZTY2XHVmZjVlXHUyMjI5XHUyMjJhXHUyMmE1XHUyMjIwXHUyMjFmXHUyMmJmXHUzM2QyXHUzM2QxXHUyMjJiXHUyMjJlXHUyMjM1XHUyMjM0XHUyNjQwXHUyNjQyXHUyMjk1XHUyMjk5XHUyMTkxXHUyMTkzXHUyMTkwXHUyMTkyXHUyMTk2XHUy''@;'; + put 'put ''MTk3XHUyMTk5XHUyMTk4XHUyMjI1XHUyMjIzXHVmZjBmXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTYxXS5sZW5ndGg7KytFKTY1NTMzIT09QlsxNjFdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE2MV1bRV1dPTQxMjE2K0UsTFs0MTIxNitFXT1CWzE2MV1bRV0pO2ZvcihCWzE2Ml09''@;'; + put 'put ''Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmYzY1x1MjIxNVx1ZmU2OFx1ZmYwNFx1ZmZlNVx1MzAxMlx1ZmZlMFx1ZmZlMVx1ZmYwNVx1ZmYyMFx1MjEwM1x1MjEwOVx1ZmU2OVx1ZmU2YVx1ZmU2Ylx1MzNkNVx1MzM5Y1x1MzM5ZFx1''@;'; + put 'put ''MzM5ZVx1MzNjZVx1MzNhMVx1MzM4ZVx1MzM4Zlx1MzNjNFx4YjBcdTUxNTlcdTUxNWJcdTUxNWVcdTUxNWRcdTUxNjFcdTUxNjNcdTU1ZTdcdTc0ZTlcdTdjY2VcdTI1ODFcdTI1ODJcdTI1ODNcdTI1ODRcdTI1ODVcdTI1ODZcdTI1ODdcdTI1ODhcdTI1OGZcdTI1OGVcdTI1OGRcdTI1OGNc''@;'; + put 'put ''dTI1OGJcdTI1OGFcdTI1ODlcdTI1M2NcdTI1MzRcdTI1MmNcdTI1MjRcdTI1MWNcdTI1OTRcdTI1MDBcdTI1MDJcdTI1OTVcdTI1MGNcdTI1MTBcdTI1MTRcdTI1MThcdTI1NmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTI1NmVcdTI1NzBcdTI1NmZcdTI1NTBc''@;'; + put 'put ''dTI1NWVcdTI1NmFcdTI1NjFcdTI1ZTJcdTI1ZTNcdTI1ZTVcdTI1ZTRcdTI1NzFcdTI1NzJcdTI1NzNcdWZmMTBcdWZmMTFcdWZmMTJcdWZmMTNcdWZmMTRcdWZmMTVcdWZmMTZcdWZmMTdcdWZmMThcdWZmMTlcdTIxNjBcdTIxNjFcdTIxNjJcdTIxNjNcdTIxNjRcdTIxNjVcdTIxNjZcdTIx''@;'; + put 'put ''NjdcdTIxNjhcdTIxNjlcdTMwMjFcdTMwMjJcdTMwMjNcdTMwMjRcdTMwMjVcdTMwMjZcdTMwMjdcdTMwMjhcdTMwMjlcdTUzNDFcdTUzNDRcdTUzNDVcdWZmMjFcdWZmMjJcdWZmMjNcdWZmMjRcdWZmMjVcdWZmMjZcdWZmMjdcdWZmMjhcdWZmMjlcdWZmMmFcdWZmMmJcdWZmMmNcdWZmMmRc''@;'; + put 'put ''dWZmMmVcdWZmMmZcdWZmMzBcdWZmMzFcdWZmMzJcdWZmMzNcdWZmMzRcdWZmMzVcdWZmMzZcdWZmMzdcdWZmMzhcdWZmMzlcdWZmM2FcdWZmNDFcdWZmNDJcdWZmNDNcdWZmNDRcdWZmNDVcdWZmNDZcdWZmNDdcdWZmNDhcdWZmNDlcdWZmNGFcdWZmNGJcdWZmNGNcdWZmNGRcdWZmNGVcdWZm''@;'; + put 'put ''NGZcdWZmNTBcdWZmNTFcdWZmNTJcdWZmNTNcdWZmNTRcdWZmNTVcdWZmNTZcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxNjJdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE2Ml1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTYyXVtFXV09NDE0NzIrRSxMWzQxNDcyK0VdPUJbMTYyXVtFXSk7''@;'; + put 'put ''Zm9yKEJbMTYzXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZjU3XHVmZjU4XHVmZjU5XHVmZjVhXHUwMzkxXHUwMzkyXHUwMzkzXHUwMzk0XHUwMzk1XHUwMzk2XHUwMzk3XHUwMzk4XHUwMzk5XHUwMzlhXHUwMzliXHUwMzljXHUw''@;'; + put 'put ''MzlkXHUwMzllXHUwMzlmXHUwM2EwXHUwM2ExXHUwM2EzXHUwM2E0XHUwM2E1XHUwM2E2XHUwM2E3XHUwM2E4XHUwM2E5XHUwM2IxXHUwM2IyXHUwM2IzXHUwM2I0XHUwM2I1XHUwM2I2XHUwM2I3XHUwM2I4XHUwM2I5XHUwM2JhXHUwM2JiXHUwM2JjXHUwM2JkXHUwM2JlXHUwM2JmXHUwM2Mw''@;'; + put 'put ''XHUwM2MxXHUwM2MzXHUwM2M0XHUwM2M1XHUwM2M2XHUwM2M3XHUwM2M4XHUwM2M5XHUzMTA1XHUzMTA2XHUzMTA3XHUzMTA4XHUzMTA5XHUzMTBhXHUzMTBiXHUzMTBjXHUzMTBkXHUzMTBlXHUzMTBmXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUzMTEwXHUzMTEx''@;'; + put 'put ''XHUzMTEyXHUzMTEzXHUzMTE0XHUzMTE1XHUzMTE2XHUzMTE3XHUzMTE4XHUzMTE5XHUzMTFhXHUzMTFiXHUzMTFjXHUzMTFkXHUzMTFlXHUzMTFmXHUzMTIwXHUzMTIxXHUzMTIyXHUzMTIzXHUzMTI0XHUzMTI1XHUzMTI2XHUzMTI3XHUzMTI4XHUzMTI5XHUwMmQ5XHUwMmM5XHUwMmNhXHUw''@;'; + put 'put ''MmM3XHUwMmNiXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUyMGFjXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTYzXS5sZW5ndGg7KytFKTY1NTMzIT09QlsxNjNdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE2M11bRV1dPTQxNzI4K0UsTFs0MTcyOCtF''@;'; + put 'put ''XT1CWzE2M11bRV0pO2ZvcihCWzE2NF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NGUwMFx1NGU1OVx1NGUwMVx1NGUwM1x1NGU0M1x1NGU1ZFx1NGU4Nlx1NGU4Y1x1NGViYVx1NTEzZlx1NTE2NVx1NTE2Ylx1NTFlMFx1NTIwMFx1''@;'; + put 'put ''NTIwMVx1NTI5Ylx1NTMxNVx1NTM0MVx1NTM1Y1x1NTNjOFx1NGUwOVx1NGUwYlx1NGUwOFx1NGUwYVx1NGUyYlx1NGUzOFx1NTFlMVx1NGU0NVx1NGU0OFx1NGU1Zlx1NGU1ZVx1NGU4ZVx1NGVhMVx1NTE0MFx1NTIwM1x1NTJmYVx1NTM0M1x1NTNjOVx1NTNlM1x1NTcxZlx1NThlYlx1NTkx''@;'; + put 'put ''NVx1NTkyN1x1NTk3M1x1NWI1MFx1NWI1MVx1NWI1M1x1NWJmOFx1NWMwZlx1NWMyMlx1NWMzOFx1NWM3MVx1NWRkZFx1NWRlNVx1NWRmMVx1NWRmMlx1NWRmM1x1NWRmZVx1NWU3Mlx1NWVmZVx1NWYwYlx1NWYxM1x1NjI0ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1NGUxMVx1NGUxMFx1NGUwZFx1NGUyZFx1NGUzMFx1NGUzOVx1NGU0Ylx1NWMzOVx1NGU4OFx1NGU5MVx1NGU5NVx1NGU5Mlx1NGU5NFx1NGVhMlx1NGVjMVx1NGVjMFx1NGVjM1x1NGVjNlx1NGVjN1x1NGVjZFx1NGVjYVx1NGVjYlx1NGVjNFx1NTE0M1x1NTE0MVx1NTE2N1x1NTE2ZFx1''@;'; + put 'put ''NTE2ZVx1NTE2Y1x1NTE5N1x1NTFmNlx1NTIwNlx1NTIwN1x1NTIwOFx1NTJmYlx1NTJmZVx1NTJmZlx1NTMxNlx1NTMzOVx1NTM0OFx1NTM0N1x1NTM0NVx1NTM1ZVx1NTM4NFx1NTNjYlx1NTNjYVx1NTNjZFx1NThlY1x1NTkyOVx1NTkyYlx1NTkyYVx1NTkyZFx1NWI1NFx1NWMxMVx1NWMy''@;'; + put 'put ''NFx1NWMzYVx1NWM2Zlx1NWRmNFx1NWU3Ylx1NWVmZlx1NWYxNFx1NWYxNVx1NWZjM1x1NjIwOFx1NjIzNlx1NjI0Ylx1NjI0ZVx1NjUyZlx1NjU4N1x1NjU5N1x1NjVhNFx1NjViOVx1NjVlNVx1NjZmMFx1NjcwOFx1NjcyOFx1NmIyMFx1NmI2Mlx1NmI3OVx1NmJjYlx1NmJkNFx1NmJkYlx1''@;'; + put 'put ''NmMwZlx1NmMzNFx1NzA2Ylx1NzIyYVx1NzIzNlx1NzIzYlx1NzI0N1x1NzI1OVx1NzI1Ylx1NzJhY1x1NzM4Ylx1NGUxOVx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE2NF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTY0XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxNjRdW0VdXT00MTk4''@;'; + put 'put ''NCtFLExbNDE5ODQrRV09QlsxNjRdW0VdKTtmb3IoQlsxNjVdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTRlMTZcdTRlMTVcdTRlMTRcdTRlMThcdTRlM2JcdTRlNGRcdTRlNGZcdTRlNGVcdTRlZTVcdTRlZDhcdTRlZDRcdTRlZDVc''@;'; + put 'put ''dTRlZDZcdTRlZDdcdTRlZTNcdTRlZTRcdTRlZDlcdTRlZGVcdTUxNDVcdTUxNDRcdTUxODlcdTUxOGFcdTUxYWNcdTUxZjlcdTUxZmFcdTUxZjhcdTUyMGFcdTUyYTBcdTUyOWZcdTUzMDVcdTUzMDZcdTUzMTdcdTUzMWRcdTRlZGZcdTUzNGFcdTUzNDlcdTUzNjFcdTUzNjBcdTUzNmZcdTUz''@;'; + put 'put ''NmVcdTUzYmJcdTUzZWZcdTUzZTRcdTUzZjNcdTUzZWNcdTUzZWVcdTUzZTlcdTUzZThcdTUzZmNcdTUzZjhcdTUzZjVcdTUzZWJcdTUzZTZcdTUzZWFcdTUzZjJcdTUzZjFcdTUzZjBcdTUzZTVcdTUzZWRcdTUzZmJcdTU2ZGJcdTU2ZGFcdTU5MTZcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdTU5MmVcdTU5MzFcdTU5NzRcdTU5NzZcdTViNTVcdTViODNcdTVjM2NcdTVkZThcdTVkZTdcdTVkZTZcdTVlMDJcdTVlMDNcdTVlNzNcdTVlN2NcdTVmMDFcdTVmMThcdTVmMTdcdTVmYzVcdTYyMGFcdTYyNTNcdTYyNTRcdTYyNTJcdTYyNTFcdTY1YTVcdTY1ZTZc''@;'; + put 'put ''dTY3MmVcdTY3MmNcdTY3MmFcdTY3MmJcdTY3MmRcdTZiNjNcdTZiY2RcdTZjMTFcdTZjMTBcdTZjMzhcdTZjNDFcdTZjNDBcdTZjM2VcdTcyYWZcdTczODRcdTczODlcdTc0ZGNcdTc0ZTZcdTc1MThcdTc1MWZcdTc1MjhcdTc1MjlcdTc1MzBcdTc1MzFcdTc1MzJcdTc1MzNcdTc1OGJcdTc2''@;'; + put 'put ''N2RcdTc2YWVcdTc2YmZcdTc2ZWVcdTc3ZGJcdTc3ZTJcdTc3ZjNcdTc5M2FcdTc5YmVcdTdhNzRcdTdhY2JcdTRlMWVcdTRlMWZcdTRlNTJcdTRlNTNcdTRlNjlcdTRlOTlcdTRlYTRcdTRlYTZcdTRlYTVcdTRlZmZcdTRmMDlcdTRmMTlcdTRmMGFcdTRmMTVcdTRmMGRcdTRmMTBcdTRmMTFc''@;'; + put 'put ''dTRmMGZcdTRlZjJcdTRlZjZcdTRlZmJcdTRlZjBcdTRlZjNcdTRlZmRcdTRmMDFcdTRmMGJcdTUxNDlcdTUxNDdcdTUxNDZcdTUxNDhcdTUxNjhcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxNjVdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE2NV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0Jb''@;'; + put 'put ''MTY1XVtFXV09NDIyNDArRSxMWzQyMjQwK0VdPUJbMTY1XVtFXSk7Zm9yKEJbMTY2XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1MTcxXHU1MThkXHU1MWIwXHU1MjE3XHU1MjExXHU1MjEyXHU1MjBlXHU1MjE2XHU1MmEzXHU1MzA4''@;'; + put 'put ''XHU1MzIxXHU1MzIwXHU1MzcwXHU1MzcxXHU1NDA5XHU1NDBmXHU1NDBjXHU1NDBhXHU1NDEwXHU1NDAxXHU1NDBiXHU1NDA0XHU1NDExXHU1NDBkXHU1NDA4XHU1NDAzXHU1NDBlXHU1NDA2XHU1NDEyXHU1NmUwXHU1NmRlXHU1NmRkXHU1NzMzXHU1NzMwXHU1NzI4XHU1NzJkXHU1NzJjXHU1''@;'; + put 'put ''NzJmXHU1NzI5XHU1OTE5XHU1OTFhXHU1OTM3XHU1OTM4XHU1OTg0XHU1OTc4XHU1OTgzXHU1OTdkXHU1OTc5XHU1OTgyXHU1OTgxXHU1YjU3XHU1YjU4XHU1Yjg3XHU1Yjg4XHU1Yjg1XHU1Yjg5XHU1YmZhXHU1YzE2XHU1Yzc5XHU1ZGRlXHU1ZTA2XHU1ZTc2XHU1ZTc0XHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1ZjBmXHU1ZjFiXHU1ZmQ5XHU1ZmQ2XHU2MjBlXHU2MjBjXHU2MjBkXHU2MjEwXHU2MjYzXHU2MjViXHU2MjU4XHU2NTM2XHU2NWU5XHU2NWU4XHU2NWVjXHU2NWVkXHU2NmYyXHU2NmYzXHU2NzA5XHU2NzNkXHU2NzM0XHU2NzMxXHU2NzM1''@;'; + put 'put ''XHU2YjIxXHU2YjY0XHU2YjdiXHU2YzE2XHU2YzVkXHU2YzU3XHU2YzU5XHU2YzVmXHU2YzYwXHU2YzUwXHU2YzU1XHU2YzYxXHU2YzViXHU2YzRkXHU2YzRlXHU3MDcwXHU3MjVmXHU3MjVkXHU3NjdlXHU3YWY5XHU3YzczXHU3Y2Y4XHU3ZjM2XHU3ZjhhXHU3ZmJkXHU4MDAxXHU4MDAzXHU4''@;'; + put 'put ''MDBjXHU4MDEyXHU4MDMzXHU4MDdmXHU4MDg5XHU4MDhiXHU4MDhjXHU4MWUzXHU4MWVhXHU4MWYzXHU4MWZjXHU4MjBjXHU4MjFiXHU4MjFmXHU4MjZlXHU4MjcyXHU4MjdlXHU4NjZiXHU4ODQwXHU4ODRjXHU4ODYzXHU4OTdmXHU5NjIxXHU0ZTMyXHU0ZWE4XHU0ZjRkXHU0ZjRmXHU0ZjQ3''@;'; + put 'put ''XHU0ZjU3XHU0ZjVlXHU0ZjM0XHU0ZjViXHU0ZjU1XHU0ZjMwXHU0ZjUwXHU0ZjUxXHU0ZjNkXHU0ZjNhXHU0ZjM4XHU0ZjQzXHU0ZjU0XHU0ZjNjXHU0ZjQ2XHU0ZjYzXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTY2XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxNjZdW0VdLmNoYXJDb2Rl''@;'; + put 'put ''QXQoMCkmJihtZVtCWzE2Nl1bRV1dPTQyNDk2K0UsTFs0MjQ5NitFXT1CWzE2Nl1bRV0pO2ZvcihCWzE2N109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NGY1Y1x1NGY2MFx1NGYyZlx1NGY0ZVx1NGYzNlx1NGY1OVx1NGY1ZFx1NGY0''@;'; + put 'put ''OFx1NGY1YVx1NTE0Y1x1NTE0Ylx1NTE0ZFx1NTE3NVx1NTFiNlx1NTFiN1x1NTIyNVx1NTIyNFx1NTIyOVx1NTIyYVx1NTIyOFx1NTJhYlx1NTJhOVx1NTJhYVx1NTJhY1x1NTMyM1x1NTM3M1x1NTM3NVx1NTQxZFx1NTQyZFx1NTQxZVx1NTQzZVx1NTQyNlx1NTQ0ZVx1NTQyN1x1NTQ0Nlx1''@;'; + put 'put ''NTQ0M1x1NTQzM1x1NTQ0OFx1NTQ0Mlx1NTQxYlx1NTQyOVx1NTQ0YVx1NTQzOVx1NTQzYlx1NTQzOFx1NTQyZVx1NTQzNVx1NTQzNlx1NTQyMFx1NTQzY1x1NTQ0MFx1NTQzMVx1NTQyYlx1NTQxZlx1NTQyY1x1NTZlYVx1NTZmMFx1NTZlNFx1NTZlYlx1NTc0YVx1NTc1MVx1NTc0MFx1NTc0''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NTc0N1x1NTc0ZVx1NTczZVx1NTc1MFx1NTc0Zlx1NTczYlx1NThlZlx1NTkzZVx1NTk5ZFx1NTk5Mlx1NTlhOFx1NTk5ZVx1NTlhM1x1NTk5OVx1NTk5Nlx1NTk4ZFx1NTlhNFx1NTk5M1x1NTk4YVx1NTlhNVx1NWI1''@;'; + put 'put ''ZFx1NWI1Y1x1NWI1YVx1NWI1Ylx1NWI4Y1x1NWI4Ylx1NWI4Zlx1NWMyY1x1NWM0MFx1NWM0MVx1NWMzZlx1NWMzZVx1NWM5MFx1NWM5MVx1NWM5NFx1NWM4Y1x1NWRlYlx1NWUwY1x1NWU4Zlx1NWU4N1x1NWU4YVx1NWVmN1x1NWYwNFx1NWYxZlx1NWY2NFx1NWY2Mlx1NWY3N1x1NWY3OVx1''@;'; + put 'put ''NWZkOFx1NWZjY1x1NWZkN1x1NWZjZFx1NWZmMVx1NWZlYlx1NWZmOFx1NWZlYVx1NjIxMlx1NjIxMVx1NjI4NFx1NjI5N1x1NjI5Nlx1NjI4MFx1NjI3Nlx1NjI4OVx1NjI2ZFx1NjI4YVx1NjI3Y1x1NjI3ZVx1NjI3OVx1NjI3M1x1NjI5Mlx1NjI2Zlx1NjI5OFx1NjI2ZVx1NjI5NVx1NjI5''@;'; + put 'put ''M1x1NjI5MVx1NjI4Nlx1NjUzOVx1NjUzYlx1NjUzOFx1NjVmMVx1NjZmNFx1Njc1Zlx1Njc0ZVx1Njc0Zlx1Njc1MFx1Njc1MVx1Njc1Y1x1Njc1Nlx1Njc1ZVx1Njc0OVx1Njc0Nlx1Njc2MFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE2N10ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTY3''@;'; + put 'put ''XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxNjddW0VdXT00Mjc1MitFLExbNDI3NTIrRV09QlsxNjddW0VdKTtmb3IoQlsxNjhdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTY3NTNcdTY3NTdcdTZiNjVcdTZiY2ZcdTZjNDJcdTZj''@;'; + put 'put ''NWVcdTZjOTlcdTZjODFcdTZjODhcdTZjODlcdTZjODVcdTZjOWJcdTZjNmFcdTZjN2FcdTZjOTBcdTZjNzBcdTZjOGNcdTZjNjhcdTZjOTZcdTZjOTJcdTZjN2RcdTZjODNcdTZjNzJcdTZjN2VcdTZjNzRcdTZjODZcdTZjNzZcdTZjOGRcdTZjOTRcdTZjOThcdTZjODJcdTcwNzZcdTcwN2Nc''@;'; + put 'put ''dTcwN2RcdTcwNzhcdTcyNjJcdTcyNjFcdTcyNjBcdTcyYzRcdTcyYzJcdTczOTZcdTc1MmNcdTc1MmJcdTc1MzdcdTc1MzhcdTc2ODJcdTc2ZWZcdTc3ZTNcdTc5YzFcdTc5YzBcdTc5YmZcdTdhNzZcdTdjZmJcdTdmNTVcdTgwOTZcdTgwOTNcdTgwOWRcdTgwOThcdTgwOWJcdTgwOWFcdTgw''@;'; + put 'put ''YjJcdTgyNmZcdTgyOTJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTgyOGJcdTgyOGRcdTg5OGJcdTg5ZDJcdThhMDBcdThjMzdcdThjNDZcdThjNTVcdThjOWRcdThkNjRcdThkNzBcdThkYjNcdThlYWJcdThlY2FcdThmOWJcdThmYjBcdThmYzJcdThmYzZcdThm''@;'; + put 'put ''YzVcdThmYzRcdTVkZTFcdTkwOTFcdTkwYTJcdTkwYWFcdTkwYTZcdTkwYTNcdTkxNDlcdTkxYzZcdTkxY2NcdTk2MzJcdTk2MmVcdTk2MzFcdTk2MmFcdTk2MmNcdTRlMjZcdTRlNTZcdTRlNzNcdTRlOGJcdTRlOWJcdTRlOWVcdTRlYWJcdTRlYWNcdTRmNmZcdTRmOWRcdTRmOGRcdTRmNzNc''@;'; + put 'put ''dTRmN2ZcdTRmNmNcdTRmOWJcdTRmOGJcdTRmODZcdTRmODNcdTRmNzBcdTRmNzVcdTRmODhcdTRmNjlcdTRmN2JcdTRmOTZcdTRmN2VcdTRmOGZcdTRmOTFcdTRmN2FcdTUxNTRcdTUxNTJcdTUxNTVcdTUxNjlcdTUxNzdcdTUxNzZcdTUxNzhcdTUxYmRcdTUxZmRcdTUyM2JcdTUyMzhcdTUy''@;'; + put 'put ''MzdcdTUyM2FcdTUyMzBcdTUyMmVcdTUyMzZcdTUyNDFcdTUyYmVcdTUyYmJcdTUzNTJcdTUzNTRcdTUzNTNcdTUzNTFcdTUzNjZcdTUzNzdcdTUzNzhcdTUzNzlcdTUzZDZcdTUzZDRcdTUzZDdcdTU0NzNcdTU0NzVcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxNjhdLmxlbmd0aDsrK0Up''@;'; + put 'put ''NjU1MzMhPT1CWzE2OF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTY4XVtFXV09NDMwMDgrRSxMWzQzMDA4K0VdPUJbMTY4XVtFXSk7Zm9yKEJbMTY5XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1NDk2XHU1NDc4XHU1NDk1XHU1''@;'; + put 'put ''NDgwXHU1NDdiXHU1NDc3XHU1NDg0XHU1NDkyXHU1NDg2XHU1NDdjXHU1NDkwXHU1NDcxXHU1NDc2XHU1NDhjXHU1NDlhXHU1NDYyXHU1NDY4XHU1NDhiXHU1NDdkXHU1NDhlXHU1NmZhXHU1NzgzXHU1Nzc3XHU1NzZhXHU1NzY5XHU1NzYxXHU1NzY2XHU1NzY0XHU1NzdjXHU1OTFjXHU1OTQ5''@;'; + put 'put ''XHU1OTQ3XHU1OTQ4XHU1OTQ0XHU1OTU0XHU1OWJlXHU1OWJiXHU1OWQ0XHU1OWI5XHU1OWFlXHU1OWQxXHU1OWM2XHU1OWQwXHU1OWNkXHU1OWNiXHU1OWQzXHU1OWNhXHU1OWFmXHU1OWIzXHU1OWQyXHU1OWM1XHU1YjVmXHU1YjY0XHU1YjYzXHU1Yjk3XHU1YjlhXHU1Yjk4XHU1YjljXHU1''@;'; + put 'put ''Yjk5XHU1YjliXHU1YzFhXHU1YzQ4XHU1YzQ1XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1YzQ2XHU1Y2I3XHU1Y2ExXHU1Y2I4XHU1Y2E5XHU1Y2FiXHU1Y2IxXHU1Y2IzXHU1ZTE4XHU1ZTFhXHU1ZTE2XHU1ZTE1XHU1ZTFiXHU1ZTExXHU1ZTc4XHU1ZTlhXHU1''@;'; + put 'put ''ZTk3XHU1ZTljXHU1ZTk1XHU1ZTk2XHU1ZWY2XHU1ZjI2XHU1ZjI3XHU1ZjI5XHU1ZjgwXHU1ZjgxXHU1ZjdmXHU1ZjdjXHU1ZmRkXHU1ZmUwXHU1ZmZkXHU1ZmY1XHU1ZmZmXHU2MDBmXHU2MDE0XHU2MDJmXHU2MDM1XHU2MDE2XHU2MDJhXHU2MDE1XHU2MDIxXHU2MDI3XHU2MDI5XHU2MDJi''@;'; + put 'put ''XHU2MDFiXHU2MjE2XHU2MjE1XHU2MjNmXHU2MjNlXHU2MjQwXHU2MjdmXHU2MmM5XHU2MmNjXHU2MmM0XHU2MmJmXHU2MmMyXHU2MmI5XHU2MmQyXHU2MmRiXHU2MmFiXHU2MmQzXHU2MmQ0XHU2MmNiXHU2MmM4XHU2MmE4XHU2MmJkXHU2MmJjXHU2MmQwXHU2MmQ5XHU2MmM3XHU2MmNkXHU2''@;'; + put 'put ''MmI1XHU2MmRhXHU2MmIxXHU2MmQ4XHU2MmQ2XHU2MmQ3XHU2MmM2XHU2MmFjXHU2MmNlXHU2NTNlXHU2NWE3XHU2NWJjXHU2NWZhXHU2NjE0XHU2NjEzXHU2NjBjXHU2NjA2XHU2NjAyXHU2NjBlXHU2NjAwXHU2NjBmXHU2NjE1XHU2NjBhXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTY5''@;'; + put 'put ''XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxNjldW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE2OV1bRV1dPTQzMjY0K0UsTFs0MzI2NCtFXT1CWzE2OV1bRV0pO2ZvcihCWzE3MF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NjYwN1x1''@;'; + put 'put ''NjcwZFx1NjcwYlx1Njc2ZFx1Njc4Ylx1Njc5NVx1Njc3MVx1Njc5Y1x1Njc3M1x1Njc3N1x1Njc4N1x1Njc5ZFx1Njc5N1x1Njc2Zlx1Njc3MFx1Njc3Zlx1Njc4OVx1Njc3ZVx1Njc5MFx1Njc3NVx1Njc5YVx1Njc5M1x1Njc3Y1x1Njc2YVx1Njc3Mlx1NmIyM1x1NmI2Nlx1NmI2N1x1NmI3''@;'; + put 'put ''Zlx1NmMxM1x1NmMxYlx1NmNlM1x1NmNlOFx1NmNmM1x1NmNiMVx1NmNjY1x1NmNlNVx1NmNiM1x1NmNiZFx1NmNiZVx1NmNiY1x1NmNlMlx1NmNhYlx1NmNkNVx1NmNkM1x1NmNiOFx1NmNjNFx1NmNiOVx1NmNjMVx1NmNhZVx1NmNkN1x1NmNjNVx1NmNmMVx1NmNiZlx1NmNiYlx1NmNlMVx1''@;'; + put 'put ''NmNkYlx1NmNjYVx1NmNhY1x1NmNlZlx1NmNkY1x1NmNkNlx1NmNlMFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NzA5NVx1NzA4ZVx1NzA5Mlx1NzA4YVx1NzA5OVx1NzIyY1x1NzIyZFx1NzIzOFx1NzI0OFx1NzI2N1x1NzI2OVx1NzJjMFx1NzJjZVx1NzJkOVx1''@;'; + put 'put ''NzJkN1x1NzJkMFx1NzNhOVx1NzNhOFx1NzM5Zlx1NzNhYlx1NzNhNVx1NzUzZFx1NzU5ZFx1NzU5OVx1NzU5YVx1NzY4NFx1NzZjMlx1NzZmMlx1NzZmNFx1NzdlNVx1NzdmZFx1NzkzZVx1Nzk0MFx1Nzk0MVx1NzljOVx1NzljOFx1N2E3YVx1N2E3OVx1N2FmYVx1N2NmZVx1N2Y1NFx1N2Y4''@;'; + put 'put ''Y1x1N2Y4Ylx1ODAwNVx1ODBiYVx1ODBhNVx1ODBhMlx1ODBiMVx1ODBhMVx1ODBhYlx1ODBhOVx1ODBiNFx1ODBhYVx1ODBhZlx1ODFlNVx1ODFmZVx1ODIwZFx1ODJiM1x1ODI5ZFx1ODI5OVx1ODJhZFx1ODJiZFx1ODI5Zlx1ODJiOVx1ODJiMVx1ODJhY1x1ODJhNVx1ODJhZlx1ODJiOFx1''@;'; + put 'put ''ODJhM1x1ODJiMFx1ODJiZVx1ODJiN1x1ODY0ZVx1ODY3MVx1NTIxZFx1ODg2OFx1OGVjYlx1OGZjZVx1OGZkNFx1OGZkMVx1OTBiNVx1OTBiOFx1OTBiMVx1OTBiNlx1OTFjN1x1OTFkMVx1OTU3N1x1OTU4MFx1OTYxY1x1OTY0MFx1OTYzZlx1OTYzYlx1OTY0NFx1ZmZmZCIuc3BsaXQoIiIp''@;'; + put 'put ''LEU9MDtFIT1CWzE3MF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTcwXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxNzBdW0VdXT00MzUyMCtFLExbNDM1MjArRV09QlsxNzBdW0VdKTtmb3IoQlsxNzFdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdTk2NDJcdTk2YjlcdTk2ZThcdTk3NTJcdTk3NWVcdTRlOWZcdTRlYWRcdTRlYWVcdTRmZTFcdTRmYjVcdTRmYWZcdTRmYmZcdTRmZTBcdTRmZDFcdTRmY2ZcdTRmZGRcdTRmYzNcdTRmYjZcdTRmZDhcdTRmZGZcdTRmY2FcdTRmZDdcdTRmYWVcdTRmZDBcdTRmYzRcdTRmYzJcdTRm''@;'; + put 'put ''ZGFcdTRmY2VcdTRmZGVcdTRmYjdcdTUxNTdcdTUxOTJcdTUxOTFcdTUxYTBcdTUyNGVcdTUyNDNcdTUyNGFcdTUyNGRcdTUyNGNcdTUyNGJcdTUyNDdcdTUyYzdcdTUyYzlcdTUyYzNcdTUyYzFcdTUzMGRcdTUzNTdcdTUzN2JcdTUzOWFcdTUzZGJcdTU0YWNcdTU0YzBcdTU0YThcdTU0Y2Vc''@;'; + put 'put ''dTU0YzlcdTU0YjhcdTU0YTZcdTU0YjNcdTU0YzdcdTU0YzJcdTU0YmRcdTU0YWFcdTU0YzFcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTU0YzRcdTU0YzhcdTU0YWZcdTU0YWJcdTU0YjFcdTU0YmJcdTU0YTlcdTU0YTdcdTU0YmZcdTU2ZmZcdTU3ODJcdTU3OGJc''@;'; + put 'put ''dTU3YTBcdTU3YTNcdTU3YTJcdTU3Y2VcdTU3YWVcdTU3OTNcdTU5NTVcdTU5NTFcdTU5NGZcdTU5NGVcdTU5NTBcdTU5ZGNcdTU5ZDhcdTU5ZmZcdTU5ZTNcdTU5ZThcdTVhMDNcdTU5ZTVcdTU5ZWFcdTU5ZGFcdTU5ZTZcdTVhMDFcdTU5ZmJcdTViNjlcdTViYTNcdTViYTZcdTViYTRcdTVi''@;'; + put 'put ''YTJcdTViYTVcdTVjMDFcdTVjNGVcdTVjNGZcdTVjNGRcdTVjNGJcdTVjZDlcdTVjZDJcdTVkZjdcdTVlMWRcdTVlMjVcdTVlMWZcdTVlN2RcdTVlYTBcdTVlYTZcdTVlZmFcdTVmMDhcdTVmMmRcdTVmNjVcdTVmODhcdTVmODVcdTVmOGFcdTVmOGJcdTVmODdcdTVmOGNcdTVmODlcdTYwMTJc''@;'; + put 'put ''dTYwMWRcdTYwMjBcdTYwMjVcdTYwMGVcdTYwMjhcdTYwNGRcdTYwNzBcdTYwNjhcdTYwNjJcdTYwNDZcdTYwNDNcdTYwNmNcdTYwNmJcdTYwNmFcdTYwNjRcdTYyNDFcdTYyZGNcdTYzMTZcdTYzMDlcdTYyZmNcdTYyZWRcdTYzMDFcdTYyZWVcdTYyZmRcdTYzMDdcdTYyZjFcdTYyZjdcdWZm''@;'; + put 'put ''ZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxNzFdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE3MV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTcxXVtFXV09NDM3NzYrRSxMWzQzNzc2K0VdPUJbMTcxXVtFXSk7Zm9yKEJbMTcyXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHU2MmVmXHU2MmVjXHU2MmZlXHU2MmY0XHU2MzExXHU2MzAyXHU2NTNmXHU2NTQ1XHU2NWFiXHU2NWJkXHU2NWUyXHU2NjI1XHU2NjJkXHU2NjIwXHU2NjI3XHU2NjJmXHU2NjFmXHU2NjI4XHU2NjMxXHU2NjI0XHU2NmY3XHU2N2ZmXHU2N2QzXHU2N2YxXHU2''@;'; + put 'put ''N2Q0XHU2N2QwXHU2N2VjXHU2N2I2XHU2N2FmXHU2N2Y1XHU2N2U5XHU2N2VmXHU2N2M0XHU2N2QxXHU2N2I0XHU2N2RhXHU2N2U1XHU2N2I4XHU2N2NmXHU2N2RlXHU2N2YzXHU2N2IwXHU2N2Q5XHU2N2UyXHU2N2RkXHU2N2QyXHU2YjZhXHU2YjgzXHU2Yjg2XHU2YmI1XHU2YmQyXHU2YmQ3''@;'; + put 'put ''XHU2YzFmXHU2Y2M5XHU2ZDBiXHU2ZDMyXHU2ZDJhXHU2ZDQxXHU2ZDI1XHU2ZDBjXHU2ZDMxXHU2ZDFlXHU2ZDE3XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2ZDNiXHU2ZDNkXHU2ZDNlXHU2ZDM2XHU2ZDFiXHU2Y2Y1XHU2ZDM5XHU2ZDI3XHU2ZDM4XHU2ZDI5''@;'; + put 'put ''XHU2ZDJlXHU2ZDM1XHU2ZDBlXHU2ZDJiXHU3MGFiXHU3MGJhXHU3MGIzXHU3MGFjXHU3MGFmXHU3MGFkXHU3MGI4XHU3MGFlXHU3MGE0XHU3MjMwXHU3MjcyXHU3MjZmXHU3Mjc0XHU3MmU5XHU3MmUwXHU3MmUxXHU3M2I3XHU3M2NhXHU3M2JiXHU3M2IyXHU3M2NkXHU3M2MwXHU3M2IzXHU3''@;'; + put 'put ''NTFhXHU3NTJkXHU3NTRmXHU3NTRjXHU3NTRlXHU3NTRiXHU3NWFiXHU3NWE0XHU3NWE1XHU3NWEyXHU3NWEzXHU3Njc4XHU3Njg2XHU3Njg3XHU3Njg4XHU3NmM4XHU3NmM2XHU3NmMzXHU3NmM1XHU3NzAxXHU3NmY5XHU3NmY4XHU3NzA5XHU3NzBiXHU3NmZlXHU3NmZjXHU3NzA3XHU3N2Rj''@;'; + put 'put ''XHU3ODAyXHU3ODE0XHU3ODBjXHU3ODBkXHU3OTQ2XHU3OTQ5XHU3OTQ4XHU3OTQ3XHU3OWI5XHU3OWJhXHU3OWQxXHU3OWQyXHU3OWNiXHU3YTdmXHU3YTgxXHU3YWZmXHU3YWZkXHU3YzdkXHU3ZDAyXHU3ZDA1XHU3ZDAwXHU3ZDA5XHU3ZDA3XHU3ZDA0XHU3ZDA2XHU3ZjM4XHU3ZjhlXHU3''@;'; + put 'put ''ZmJmXHU4MDA0XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTcyXS5sZW5ndGg7KytFKTY1NTMzIT09QlsxNzJdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE3Ml1bRV1dPTQ0MDMyK0UsTFs0NDAzMitFXT1CWzE3Ml1bRV0pO2ZvcihCWzE3M109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ODAxMFx1ODAwZFx1ODAxMVx1ODAzNlx1ODBkNlx1ODBlNVx1ODBkYVx1ODBjM1x1ODBjNFx1ODBjY1x1ODBlMVx1ODBkYlx1ODBjZVx1ODBkZVx1ODBlNFx1ODBkZFx1ODFmNFx1ODIyMlx1ODJlN1x1ODMwM1x1ODMwNVx1ODJlM1x1''@;'; + put 'put ''ODJkYlx1ODJlNlx1ODMwNFx1ODJlNVx1ODMwMlx1ODMwOVx1ODJkMlx1ODJkN1x1ODJmMVx1ODMwMVx1ODJkY1x1ODJkNFx1ODJkMVx1ODJkZVx1ODJkM1x1ODJkZlx1ODJlZlx1ODMwNlx1ODY1MFx1ODY3OVx1ODY3Ylx1ODY3YVx1ODg0ZFx1ODg2Ylx1ODk4MVx1ODlkNFx1OGEwOFx1OGEw''@;'; + put 'put ''Mlx1OGEwM1x1OGM5ZVx1OGNhMFx1OGQ3NFx1OGQ3M1x1OGRiNFx1OGVjZFx1OGVjY1x1OGZmMFx1OGZlNlx1OGZlMlx1OGZlYVx1OGZlNVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OGZlZFx1OGZlYlx1OGZlNFx1OGZlOFx1OTBjYVx1OTBjZVx1OTBjMVx1OTBj''@;'; + put 'put ''M1x1OTE0Ylx1OTE0YVx1OTFjZFx1OTU4Mlx1OTY1MFx1OTY0Ylx1OTY0Y1x1OTY0ZFx1OTc2Mlx1OTc2OVx1OTdjYlx1OTdlZFx1OTdmM1x1OTgwMVx1OThhOFx1OThkYlx1OThkZlx1OTk5Nlx1OTk5OVx1NGU1OFx1NGViM1x1NTAwY1x1NTAwZFx1NTAyM1x1NGZlZlx1NTAyNlx1NTAyNVx1''@;'; + put 'put ''NGZmOFx1NTAyOVx1NTAxNlx1NTAwNlx1NTAzY1x1NTAxZlx1NTAxYVx1NTAxMlx1NTAxMVx1NGZmYVx1NTAwMFx1NTAxNFx1NTAyOFx1NGZmMVx1NTAyMVx1NTAwYlx1NTAxOVx1NTAxOFx1NGZmM1x1NGZlZVx1NTAyZFx1NTAyYVx1NGZmZVx1NTAyYlx1NTAwOVx1NTE3Y1x1NTFhNFx1NTFh''@;'; + put 'put ''NVx1NTFhMlx1NTFjZFx1NTFjY1x1NTFjNlx1NTFjYlx1NTI1Nlx1NTI1Y1x1NTI1NFx1NTI1Ylx1NTI1ZFx1NTMyYVx1NTM3Zlx1NTM5Zlx1NTM5ZFx1NTNkZlx1NTRlOFx1NTUxMFx1NTUwMVx1NTUzN1x1NTRmY1x1NTRlNVx1NTRmMlx1NTUwNlx1NTRmYVx1NTUxNFx1NTRlOVx1NTRlZFx1''@;'; + put 'put ''NTRlMVx1NTUwOVx1NTRlZVx1NTRlYVx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE3M10ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTczXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxNzNdW0VdXT00NDI4OCtFLExbNDQyODgrRV09QlsxNzNdW0VdKTtmb3IoQlsxNzRdPSJcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTU0ZTZcdTU1MjdcdTU1MDdcdTU0ZmRcdTU1MGZcdTU3MDNcdTU3MDRcdTU3YzJcdTU3ZDRcdTU3Y2JcdTU3YzNcdTU4MDlcdTU5MGZcdTU5NTdcdTU5NThcdTU5NWFcdTVhMTFcdTVhMThcdTVhMWNcdTVhMWZc''@;'; + put 'put ''dTVhMWJcdTVhMTNcdTU5ZWNcdTVhMjBcdTVhMjNcdTVhMjlcdTVhMjVcdTVhMGNcdTVhMDlcdTViNmJcdTVjNThcdTViYjBcdTViYjNcdTViYjZcdTViYjRcdTViYWVcdTViYjVcdTViYjlcdTViYjhcdTVjMDRcdTVjNTFcdTVjNTVcdTVjNTBcdTVjZWRcdTVjZmRcdTVjZmJcdTVjZWFcdTVj''@;'; + put 'put ''ZThcdTVjZjBcdTVjZjZcdTVkMDFcdTVjZjRcdTVkZWVcdTVlMmRcdTVlMmJcdTVlYWJcdTVlYWRcdTVlYTdcdTVmMzFcdTVmOTJcdTVmOTFcdTVmOTBcdTYwNTlcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTYwNjNcdTYwNjVcdTYwNTBcdTYwNTVcdTYwNmRcdTYw''@;'; + put 'put ''NjlcdTYwNmZcdTYwODRcdTYwOWZcdTYwOWFcdTYwOGRcdTYwOTRcdTYwOGNcdTYwODVcdTYwOTZcdTYyNDdcdTYyZjNcdTYzMDhcdTYyZmZcdTYzNGVcdTYzM2VcdTYzMmZcdTYzNTVcdTYzNDJcdTYzNDZcdTYzNGZcdTYzNDlcdTYzM2FcdTYzNTBcdTYzM2RcdTYzMmFcdTYzMmJcdTYzMjhc''@;'; + put 'put ''dTYzNGRcdTYzNGNcdTY1NDhcdTY1NDlcdTY1OTlcdTY1YzFcdTY1YzVcdTY2NDJcdTY2NDlcdTY2NGZcdTY2NDNcdTY2NTJcdTY2NGNcdTY2NDVcdTY2NDFcdTY2ZjhcdTY3MTRcdTY3MTVcdTY3MTdcdTY4MjFcdTY4MzhcdTY4NDhcdTY4NDZcdTY4NTNcdTY4MzlcdTY4NDJcdTY4NTRcdTY4''@;'; + put 'put ''MjlcdTY4YjNcdTY4MTdcdTY4NGNcdTY4NTFcdTY4M2RcdTY3ZjRcdTY4NTBcdTY4NDBcdTY4M2NcdTY4NDNcdTY4MmFcdTY4NDVcdTY4MTNcdTY4MThcdTY4NDFcdTZiOGFcdTZiODlcdTZiYjdcdTZjMjNcdTZjMjdcdTZjMjhcdTZjMjZcdTZjMjRcdTZjZjBcdTZkNmFcdTZkOTVcdTZkODhc''@;'; + put 'put ''dTZkODdcdTZkNjZcdTZkNzhcdTZkNzdcdTZkNTlcdTZkOTNcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxNzRdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE3NF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTc0XVtFXV09NDQ1NDQrRSxMWzQ0NTQ0K0VdPUJbMTc0XVtFXSk7Zm9yKEJbMTc1''@;'; + put 'put ''XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2ZDZjXHU2ZDg5XHU2ZDZlXHU2ZDVhXHU2ZDc0XHU2ZDY5XHU2ZDhjXHU2ZDhhXHU2ZDc5XHU2ZDg1XHU2ZDY1XHU2ZDk0XHU3MGNhXHU3MGQ4XHU3MGU0XHU3MGQ5XHU3MGM4XHU3MGNm''@;'; + put 'put ''XHU3MjM5XHU3Mjc5XHU3MmZjXHU3MmY5XHU3MmZkXHU3MmY4XHU3MmY3XHU3Mzg2XHU3M2VkXHU3NDA5XHU3M2VlXHU3M2UwXHU3M2VhXHU3M2RlXHU3NTU0XHU3NTVkXHU3NTVjXHU3NTVhXHU3NTU5XHU3NWJlXHU3NWM1XHU3NWM3XHU3NWIyXHU3NWIzXHU3NWJkXHU3NWJjXHU3NWI5XHU3''@;'; + put 'put ''NWMyXHU3NWI4XHU3NjhiXHU3NmIwXHU3NmNhXHU3NmNkXHU3NmNlXHU3NzI5XHU3NzFmXHU3NzIwXHU3NzI4XHU3N2U5XHU3ODMwXHU3ODI3XHU3ODM4XHU3ODFkXHU3ODM0XHU3ODM3XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3ODI1XHU3ODJkXHU3ODIwXHU3''@;'; + put 'put ''ODFmXHU3ODMyXHU3OTU1XHU3OTUwXHU3OTYwXHU3OTVmXHU3OTU2XHU3OTVlXHU3OTVkXHU3OTU3XHU3OTVhXHU3OWU0XHU3OWUzXHU3OWU3XHU3OWRmXHU3OWU2XHU3OWU5XHU3OWQ4XHU3YTg0XHU3YTg4XHU3YWQ5XHU3YjA2XHU3YjExXHU3Yzg5XHU3ZDIxXHU3ZDE3XHU3ZDBiXHU3ZDBh''@;'; + put 'put ''XHU3ZDIwXHU3ZDIyXHU3ZDE0XHU3ZDEwXHU3ZDE1XHU3ZDFhXHU3ZDFjXHU3ZDBkXHU3ZDE5XHU3ZDFiXHU3ZjNhXHU3ZjVmXHU3Zjk0XHU3ZmM1XHU3ZmMxXHU4MDA2XHU4MDE4XHU4MDE1XHU4MDE5XHU4MDE3XHU4MDNkXHU4MDNmXHU4MGYxXHU4MTAyXHU4MGYwXHU4MTA1XHU4MGVkXHU4''@;'; + put 'put ''MGY0XHU4MTA2XHU4MGY4XHU4MGYzXHU4MTA4XHU4MGZkXHU4MTBhXHU4MGZjXHU4MGVmXHU4MWVkXHU4MWVjXHU4MjAwXHU4MjEwXHU4MjJhXHU4MjJiXHU4MjI4XHU4MjJjXHU4MmJiXHU4MzJiXHU4MzUyXHU4MzU0XHU4MzRhXHU4MzM4XHU4MzUwXHU4MzQ5XHU4MzM1XHU4MzM0XHU4MzRm''@;'; + put 'put ''XHU4MzMyXHU4MzM5XHU4MzM2XHU4MzE3XHU4MzQwXHU4MzMxXHU4MzI4XHU4MzQzXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTc1XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxNzVdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE3NV1bRV1dPTQ0ODAwK0UsTFs0NDgwMCtFXT1CWzE3NV1b''@;'; + put 'put ''RV0pO2ZvcihCWzE3Nl09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ODY1NFx1ODY4YVx1ODZhYVx1ODY5M1x1ODZhNFx1ODZhOVx1ODY4Y1x1ODZhM1x1ODY5Y1x1ODg3MFx1ODg3N1x1ODg4MVx1ODg4Mlx1ODg3ZFx1ODg3OVx1OGEx''@;'; + put 'put ''OFx1OGExMFx1OGEwZVx1OGEwY1x1OGExNVx1OGEwYVx1OGExN1x1OGExM1x1OGExNlx1OGEwZlx1OGExMVx1OGM0OFx1OGM3YVx1OGM3OVx1OGNhMVx1OGNhMlx1OGQ3N1x1OGVhY1x1OGVkMlx1OGVkNFx1OGVjZlx1OGZiMVx1OTAwMVx1OTAwNlx1OGZmN1x1OTAwMFx1OGZmYVx1OGZmNFx1''@;'; + put 'put ''OTAwM1x1OGZmZFx1OTAwNVx1OGZmOFx1OTA5NVx1OTBlMVx1OTBkZFx1OTBlMlx1OTE1Mlx1OTE0ZFx1OTE0Y1x1OTFkOFx1OTFkZFx1OTFkN1x1OTFkY1x1OTFkOVx1OTU4M1x1OTY2Mlx1OTY2M1x1OTY2MVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OTY1Ylx1''@;'; + put 'put ''OTY1ZFx1OTY2NFx1OTY1OFx1OTY1ZVx1OTZiYlx1OThlMlx1OTlhY1x1OWFhOFx1OWFkOFx1OWIyNVx1OWIzMlx1OWIzY1x1NGU3ZVx1NTA3YVx1NTA3ZFx1NTA1Y1x1NTA0N1x1NTA0M1x1NTA0Y1x1NTA1YVx1NTA0OVx1NTA2NVx1NTA3Nlx1NTA0ZVx1NTA1NVx1NTA3NVx1NTA3NFx1NTA3''@;'; + put 'put ''N1x1NTA0Zlx1NTAwZlx1NTA2Zlx1NTA2ZFx1NTE1Y1x1NTE5NVx1NTFmMFx1NTI2YVx1NTI2Zlx1NTJkMlx1NTJkOVx1NTJkOFx1NTJkNVx1NTMxMFx1NTMwZlx1NTMxOVx1NTMzZlx1NTM0MFx1NTMzZVx1NTNjM1x1NjZmY1x1NTU0Nlx1NTU2YVx1NTU2Nlx1NTU0NFx1NTU1ZVx1NTU2MVx1''@;'; + put 'put ''NTU0M1x1NTU0YVx1NTUzMVx1NTU1Nlx1NTU0Zlx1NTU1NVx1NTUyZlx1NTU2NFx1NTUzOFx1NTUyZVx1NTU1Y1x1NTUyY1x1NTU2M1x1NTUzM1x1NTU0MVx1NTU1N1x1NTcwOFx1NTcwYlx1NTcwOVx1NTdkZlx1NTgwNVx1NTgwYVx1NTgwNlx1NTdlMFx1NTdlNFx1NTdmYVx1NTgwMlx1NTgz''@;'; + put 'put ''NVx1NTdmN1x1NTdmOVx1NTkyMFx1NTk2Mlx1NWEzNlx1NWE0MVx1NWE0OVx1NWE2Nlx1NWE2YVx1NWE0MFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE3Nl0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTc2XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxNzZdW0VdXT00NTA1NitFLExbNDUw''@;'; + put 'put ''NTYrRV09QlsxNzZdW0VdKTtmb3IoQlsxNzddPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTVhM2NcdTVhNjJcdTVhNWFcdTVhNDZcdTVhNGFcdTViNzBcdTViYzdcdTViYzVcdTViYzRcdTViYzJcdTViYmZcdTViYzZcdTVjMDlcdTVj''@;'; + put 'put ''MDhcdTVjMDdcdTVjNjBcdTVjNWNcdTVjNWRcdTVkMDdcdTVkMDZcdTVkMGVcdTVkMWJcdTVkMTZcdTVkMjJcdTVkMTFcdTVkMjlcdTVkMTRcdTVkMTlcdTVkMjRcdTVkMjdcdTVkMTdcdTVkZTJcdTVlMzhcdTVlMzZcdTVlMzNcdTVlMzdcdTVlYjdcdTVlYjhcdTVlYjZcdTVlYjVcdTVlYmVc''@;'; + put 'put ''dTVmMzVcdTVmMzdcdTVmNTdcdTVmNmNcdTVmNjlcdTVmNmJcdTVmOTdcdTVmOTlcdTVmOWVcdTVmOThcdTVmYTFcdTVmYTBcdTVmOWNcdTYwN2ZcdTYwYTNcdTYwODlcdTYwYTBcdTYwYThcdTYwY2JcdTYwYjRcdTYwZTZcdTYwYmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdTYwYzVcdTYwYmJcdTYwYjVcdTYwZGNcdTYwYmNcdTYwZDhcdTYwZDVcdTYwYzZcdTYwZGZcdTYwYjhcdTYwZGFcdTYwYzdcdTYyMWFcdTYyMWJcdTYyNDhcdTYzYTBcdTYzYTdcdTYzNzJcdTYzOTZcdTYzYTJcdTYzYTVcdTYzNzdcdTYzNjdcdTYzOThcdTYzYWFcdTYzNzFcdTYz''@;'; + put 'put ''YTlcdTYzODlcdTYzODNcdTYzOWJcdTYzNmJcdTYzYThcdTYzODRcdTYzODhcdTYzOTlcdTYzYTFcdTYzYWNcdTYzOTJcdTYzOGZcdTYzODBcdTYzN2JcdTYzNjlcdTYzNjhcdTYzN2FcdTY1NWRcdTY1NTZcdTY1NTFcdTY1NTlcdTY1NTdcdTU1NWZcdTY1NGZcdTY1NThcdTY1NTVcdTY1NTRc''@;'; + put 'put ''dTY1OWNcdTY1OWJcdTY1YWNcdTY1Y2ZcdTY1Y2JcdTY1Y2NcdTY1Y2VcdTY2NWRcdTY2NWFcdTY2NjRcdTY2NjhcdTY2NjZcdTY2NWVcdTY2ZjlcdTUyZDdcdTY3MWJcdTY4ODFcdTY4YWZcdTY4YTJcdTY4OTNcdTY4YjVcdTY4N2ZcdTY4NzZcdTY4YjFcdTY4YTdcdTY4OTdcdTY4YjBcdTY4''@;'; + put 'put ''ODNcdTY4YzRcdTY4YWRcdTY4ODZcdTY4ODVcdTY4OTRcdTY4OWRcdTY4YThcdTY4OWZcdTY4YTFcdTY4ODJcdTZiMzJcdTZiYmFcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxNzddLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE3N11bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTc3XVtFXV09''@;'; + put 'put ''NDUzMTIrRSxMWzQ1MzEyK0VdPUJbMTc3XVtFXSk7Zm9yKEJbMTc4XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2YmViXHU2YmVjXHU2YzJiXHU2ZDhlXHU2ZGJjXHU2ZGYzXHU2ZGQ5XHU2ZGIyXHU2ZGUxXHU2ZGNjXHU2ZGU0XHU2''@;'; + put 'put ''ZGZiXHU2ZGZhXHU2ZTA1XHU2ZGM3XHU2ZGNiXHU2ZGFmXHU2ZGQxXHU2ZGFlXHU2ZGRlXHU2ZGY5XHU2ZGI4XHU2ZGY3XHU2ZGY1XHU2ZGM1XHU2ZGQyXHU2ZTFhXHU2ZGI1XHU2ZGRhXHU2ZGViXHU2ZGQ4XHU2ZGVhXHU2ZGYxXHU2ZGVlXHU2ZGU4XHU2ZGM2XHU2ZGM0XHU2ZGFhXHU2ZGVj''@;'; + put 'put ''XHU2ZGJmXHU2ZGU2XHU3MGY5XHU3MTA5XHU3MTBhXHU3MGZkXHU3MGVmXHU3MjNkXHU3MjdkXHU3MjgxXHU3MzFjXHU3MzFiXHU3MzE2XHU3MzEzXHU3MzE5XHU3Mzg3XHU3NDA1XHU3NDBhXHU3NDAzXHU3NDA2XHU3M2ZlXHU3NDBkXHU3NGUwXHU3NGY2XHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHU3NGY3XHU3NTFjXHU3NTIyXHU3NTY1XHU3NTY2XHU3NTYyXHU3NTcwXHU3NThmXHU3NWQ0XHU3NWQ1XHU3NWI1XHU3NWNhXHU3NWNkXHU3NjhlXHU3NmQ0XHU3NmQyXHU3NmRiXHU3NzM3XHU3NzNlXHU3NzNjXHU3NzM2XHU3NzM4XHU3NzNhXHU3ODZiXHU3''@;'; + put 'put ''ODQzXHU3ODRlXHU3OTY1XHU3OTY4XHU3OTZkXHU3OWZiXHU3YTkyXHU3YTk1XHU3YjIwXHU3YjI4XHU3YjFiXHU3YjJjXHU3YjI2XHU3YjE5XHU3YjFlXHU3YjJlXHU3YzkyXHU3Yzk3XHU3Yzk1XHU3ZDQ2XHU3ZDQzXHU3ZDcxXHU3ZDJlXHU3ZDM5XHU3ZDNjXHU3ZDQwXHU3ZDMwXHU3ZDMz''@;'; + put 'put ''XHU3ZDQ0XHU3ZDJmXHU3ZDQyXHU3ZDMyXHU3ZDMxXHU3ZjNkXHU3ZjllXHU3ZjlhXHU3ZmNjXHU3ZmNlXHU3ZmQyXHU4MDFjXHU4MDRhXHU4MDQ2XHU4MTJmXHU4MTE2XHU4MTIzXHU4MTJiXHU4MTI5XHU4MTMwXHU4MTI0XHU4MjAyXHU4MjM1XHU4MjM3XHU4MjM2XHU4MjM5XHU4MzhlXHU4''@;'; + put 'put ''MzllXHU4Mzk4XHU4Mzc4XHU4M2EyXHU4Mzk2XHU4M2JkXHU4M2FiXHU4MzkyXHU4MzhhXHU4MzkzXHU4Mzg5XHU4M2EwXHU4Mzc3XHU4MzdiXHU4MzdjXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTc4XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxNzhdW0VdLmNoYXJDb2RlQXQoMCkmJiht''@;'; + put 'put ''ZVtCWzE3OF1bRV1dPTQ1NTY4K0UsTFs0NTU2OCtFXT1CWzE3OF1bRV0pO2ZvcihCWzE3OV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ODM4Nlx1ODNhN1x1ODY1NVx1NWY2YVx1ODZjN1x1ODZjMFx1ODZiNlx1ODZjNFx1ODZiNVx1''@;'; + put 'put ''ODZjNlx1ODZjYlx1ODZiMVx1ODZhZlx1ODZjOVx1ODg1M1x1ODg5ZVx1ODg4OFx1ODhhYlx1ODg5Mlx1ODg5Nlx1ODg4ZFx1ODg4Ylx1ODk5M1x1ODk4Zlx1OGEyYVx1OGExZFx1OGEyM1x1OGEyNVx1OGEzMVx1OGEyZFx1OGExZlx1OGExYlx1OGEyMlx1OGM0OVx1OGM1YVx1OGNhOVx1OGNh''@;'; + put 'put ''Y1x1OGNhYlx1OGNhOFx1OGNhYVx1OGNhN1x1OGQ2N1x1OGQ2Nlx1OGRiZVx1OGRiYVx1OGVkYlx1OGVkZlx1OTAxOVx1OTAwZFx1OTAxYVx1OTAxN1x1OTAyM1x1OTAxZlx1OTAxZFx1OTAxMFx1OTAxNVx1OTAxZVx1OTAyMFx1OTAwZlx1OTAyMlx1OTAxNlx1OTAxYlx1OTAxNFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OTBlOFx1OTBlZFx1OTBmZFx1OTE1N1x1OTFjZVx1OTFmNVx1OTFlNlx1OTFlM1x1OTFlN1x1OTFlZFx1OTFlOVx1OTU4OVx1OTY2YVx1OTY3NVx1OTY3M1x1OTY3OFx1OTY3MFx1OTY3NFx1OTY3Nlx1OTY3N1x1OTY2Y1x1OTZjMFx1''@;'; + put 'put ''OTZlYVx1OTZlOVx1N2FlMFx1N2FkZlx1OTgwMlx1OTgwM1x1OWI1YVx1OWNlNVx1OWU3NVx1OWU3Zlx1OWVhNVx1OWViYlx1NTBhMlx1NTA4ZFx1NTA4NVx1NTA5OVx1NTA5MVx1NTA4MFx1NTA5Nlx1NTA5OFx1NTA5YVx1NjcwMFx1NTFmMVx1NTI3Mlx1NTI3NFx1NTI3NVx1NTI2OVx1NTJk''@;'; + put 'put ''ZVx1NTJkZFx1NTJkYlx1NTM1YVx1NTNhNVx1NTU3Ylx1NTU4MFx1NTVhN1x1NTU3Y1x1NTU4YVx1NTU5ZFx1NTU5OFx1NTU4Mlx1NTU5Y1x1NTVhYVx1NTU5NFx1NTU4N1x1NTU4Ylx1NTU4M1x1NTViM1x1NTVhZVx1NTU5Zlx1NTUzZVx1NTViMlx1NTU5YVx1NTViYlx1NTVhY1x1NTViMVx1''@;'; + put 'put ''NTU3ZVx1NTU4OVx1NTVhYlx1NTU5OVx1NTcwZFx1NTgyZlx1NTgyYVx1NTgzNFx1NTgyNFx1NTgzMFx1NTgzMVx1NTgyMVx1NTgxZFx1NTgyMFx1NThmOVx1NThmYVx1NTk2MFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE3OV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTc5XVtFXS5jaGFy''@;'; + put 'put ''Q29kZUF0KDApJiYobWVbQlsxNzldW0VdXT00NTgyNCtFLExbNDU4MjQrRV09QlsxNzldW0VdKTtmb3IoQlsxODBdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTVhNzdcdTVhOWFcdTVhN2ZcdTVhOTJcdTVhOWJcdTVhYTdcdTViNzNc''@;'; + put 'put ''dTViNzFcdTViZDJcdTViY2NcdTViZDNcdTViZDBcdTVjMGFcdTVjMGJcdTVjMzFcdTVkNGNcdTVkNTBcdTVkMzRcdTVkNDdcdTVkZmRcdTVlNDVcdTVlM2RcdTVlNDBcdTVlNDNcdTVlN2VcdTVlY2FcdTVlYzFcdTVlYzJcdTVlYzRcdTVmM2NcdTVmNmRcdTVmYTlcdTVmYWFcdTVmYThcdTYw''@;'; + put 'put ''ZDFcdTYwZTFcdTYwYjJcdTYwYjZcdTYwZTBcdTYxMWNcdTYxMjNcdTYwZmFcdTYxMTVcdTYwZjBcdTYwZmJcdTYwZjRcdTYxNjhcdTYwZjFcdTYxMGVcdTYwZjZcdTYxMDlcdTYxMDBcdTYxMTJcdTYyMWZcdTYyNDlcdTYzYTNcdTYzOGNcdTYzY2ZcdTYzYzBcdTYzZTlcdTYzYzlcdTYzYzZc''@;'; + put 'put ''dTYzY2RcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTYzZDJcdTYzZTNcdTYzZDBcdTYzZTFcdTYzZDZcdTYzZWRcdTYzZWVcdTYzNzZcdTYzZjRcdTYzZWFcdTYzZGJcdTY0NTJcdTYzZGFcdTYzZjlcdTY1NWVcdTY1NjZcdTY1NjJcdTY1NjNcdTY1OTFcdTY1OTBc''@;'; + put 'put ''dTY1YWZcdTY2NmVcdTY2NzBcdTY2NzRcdTY2NzZcdTY2NmZcdTY2OTFcdTY2N2FcdTY2N2VcdTY2NzdcdTY2ZmVcdTY2ZmZcdTY3MWZcdTY3MWRcdTY4ZmFcdTY4ZDVcdTY4ZTBcdTY4ZDhcdTY4ZDdcdTY5MDVcdTY4ZGZcdTY4ZjVcdTY4ZWVcdTY4ZTdcdTY4ZjlcdTY4ZDJcdTY4ZjJcdTY4''@;'; + put 'put ''ZTNcdTY4Y2JcdTY4Y2RcdTY5MGRcdTY5MTJcdTY5MGVcdTY4YzlcdTY4ZGFcdTY5NmVcdTY4ZmJcdTZiM2VcdTZiM2FcdTZiM2RcdTZiOThcdTZiOTZcdTZiYmNcdTZiZWZcdTZjMmVcdTZjMmZcdTZjMmNcdTZlMmZcdTZlMzhcdTZlNTRcdTZlMjFcdTZlMzJcdTZlNjdcdTZlNGFcdTZlMjBc''@;'; + put 'put ''dTZlMjVcdTZlMjNcdTZlMWJcdTZlNWJcdTZlNThcdTZlMjRcdTZlNTZcdTZlNmVcdTZlMmRcdTZlMjZcdTZlNmZcdTZlMzRcdTZlNGRcdTZlM2FcdTZlMmNcdTZlNDNcdTZlMWRcdTZlM2VcdTZlY2JcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxODBdLmxlbmd0aDsrK0UpNjU1MzMhPT1C''@;'; + put 'put ''WzE4MF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTgwXVtFXV09NDYwODArRSxMWzQ2MDgwK0VdPUJbMTgwXVtFXSk7Zm9yKEJbMTgxXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2ZTg5XHU2ZTE5XHU2ZTRlXHU2ZTYzXHU2ZTQ0''@;'; + put 'put ''XHU2ZTcyXHU2ZTY5XHU2ZTVmXHU3MTE5XHU3MTFhXHU3MTI2XHU3MTMwXHU3MTIxXHU3MTM2XHU3MTZlXHU3MTFjXHU3MjRjXHU3Mjg0XHU3MjgwXHU3MzM2XHU3MzI1XHU3MzM0XHU3MzI5XHU3NDNhXHU3NDJhXHU3NDMzXHU3NDIyXHU3NDI1XHU3NDM1XHU3NDM2XHU3NDM0XHU3NDJmXHU3''@;'; + put 'put ''NDFiXHU3NDI2XHU3NDI4XHU3NTI1XHU3NTI2XHU3NTZiXHU3NTZhXHU3NWUyXHU3NWRiXHU3NWUzXHU3NWQ5XHU3NWQ4XHU3NWRlXHU3NWUwXHU3NjdiXHU3NjdjXHU3Njk2XHU3NjkzXHU3NmI0XHU3NmRjXHU3NzRmXHU3N2VkXHU3ODVkXHU3ODZjXHU3ODZmXHU3YTBkXHU3YTA4XHU3YTBi''@;'; + put 'put ''XHU3YTA1XHU3YTAwXHU3YTk4XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3YTk3XHU3YTk2XHU3YWU1XHU3YWUzXHU3YjQ5XHU3YjU2XHU3YjQ2XHU3YjUwXHU3YjUyXHU3YjU0XHU3YjRkXHU3YjRiXHU3YjRmXHU3YjUxXHU3YzlmXHU3Y2E1XHU3ZDVlXHU3ZDUw''@;'; + put 'put ''XHU3ZDY4XHU3ZDU1XHU3ZDJiXHU3ZDZlXHU3ZDcyXHU3ZDYxXHU3ZDY2XHU3ZDYyXHU3ZDcwXHU3ZDczXHU1NTg0XHU3ZmQ0XHU3ZmQ1XHU4MDBiXHU4MDUyXHU4MDg1XHU4MTU1XHU4MTU0XHU4MTRiXHU4MTUxXHU4MTRlXHU4MTM5XHU4MTQ2XHU4MTNlXHU4MTRjXHU4MTUzXHU4MTc0XHU4''@;'; + put 'put ''MjEyXHU4MjFjXHU4M2U5XHU4NDAzXHU4M2Y4XHU4NDBkXHU4M2UwXHU4M2M1XHU4NDBiXHU4M2MxXHU4M2VmXHU4M2YxXHU4M2Y0XHU4NDU3XHU4NDBhXHU4M2YwXHU4NDBjXHU4M2NjXHU4M2ZkXHU4M2YyXHU4M2NhXHU4NDM4XHU4NDBlXHU4NDA0XHU4M2RjXHU4NDA3XHU4M2Q0XHU4M2Rm''@;'; + put 'put ''XHU4NjViXHU4NmRmXHU4NmQ5XHU4NmVkXHU4NmQ0XHU4NmRiXHU4NmU0XHU4NmQwXHU4NmRlXHU4ODU3XHU4OGMxXHU4OGMyXHU4OGIxXHU4OTgzXHU4OTk2XHU4YTNiXHU4YTYwXHU4YTU1XHU4YTVlXHU4YTNjXHU4YTQxXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTgxXS5sZW5ndGg7''@;'; + put 'put ''KytFKTY1NTMzIT09QlsxODFdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE4MV1bRV1dPTQ2MzM2K0UsTFs0NjMzNitFXT1CWzE4MV1bRV0pO2ZvcihCWzE4Ml09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OGE1NFx1OGE1Ylx1OGE1''@;'; + put 'put ''MFx1OGE0Nlx1OGEzNFx1OGEzYVx1OGEzNlx1OGE1Nlx1OGM2MVx1OGM4Mlx1OGNhZlx1OGNiY1x1OGNiM1x1OGNiZFx1OGNjMVx1OGNiYlx1OGNjMFx1OGNiNFx1OGNiN1x1OGNiNlx1OGNiZlx1OGNiOFx1OGQ4YVx1OGQ4NVx1OGQ4MVx1OGRjZVx1OGRkZFx1OGRjYlx1OGRkYVx1OGRkMVx1''@;'; + put 'put ''OGRjY1x1OGRkYlx1OGRjNlx1OGVmYlx1OGVmOFx1OGVmY1x1OGY5Y1x1OTAyZVx1OTAzNVx1OTAzMVx1OTAzOFx1OTAzMlx1OTAzNlx1OTEwMlx1OTBmNVx1OTEwOVx1OTBmZVx1OTE2M1x1OTE2NVx1OTFjZlx1OTIxNFx1OTIxNVx1OTIyM1x1OTIwOVx1OTIxZVx1OTIwZFx1OTIxMFx1OTIw''@;'; + put 'put ''N1x1OTIxMVx1OTU5NFx1OTU4Zlx1OTU4Ylx1OTU5MVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OTU5M1x1OTU5Mlx1OTU4ZVx1OTY4YVx1OTY4ZVx1OTY4Ylx1OTY3ZFx1OTY4NVx1OTY4Nlx1OTY4ZFx1OTY3Mlx1OTY4NFx1OTZjMVx1OTZjNVx1OTZjNFx1OTZj''@;'; + put 'put ''Nlx1OTZjN1x1OTZlZlx1OTZmMlx1OTdjY1x1OTgwNVx1OTgwNlx1OTgwOFx1OThlN1x1OThlYVx1OThlZlx1OThlOVx1OThmMlx1OThlZFx1OTlhZVx1OTlhZFx1OWVjM1x1OWVjZFx1OWVkMVx1NGU4Mlx1NTBhZFx1NTBiNVx1NTBiMlx1NTBiM1x1NTBjNVx1NTBiZVx1NTBhY1x1NTBiN1x1''@;'; + put 'put ''NTBiYlx1NTBhZlx1NTBjN1x1NTI3Zlx1NTI3N1x1NTI3ZFx1NTJkZlx1NTJlNlx1NTJlNFx1NTJlMlx1NTJlM1x1NTMyZlx1NTVkZlx1NTVlOFx1NTVkM1x1NTVlNlx1NTVjZVx1NTVkY1x1NTVjN1x1NTVkMVx1NTVlM1x1NTVlNFx1NTVlZlx1NTVkYVx1NTVlMVx1NTVjNVx1NTVjNlx1NTVl''@;'; + put 'put ''NVx1NTVjOVx1NTcxMlx1NTcxM1x1NTg1ZVx1NTg1MVx1NTg1OFx1NTg1N1x1NTg1YVx1NTg1NFx1NTg2Ylx1NTg0Y1x1NTg2ZFx1NTg0YVx1NTg2Mlx1NTg1Mlx1NTg0Ylx1NTk2N1x1NWFjMVx1NWFjOVx1NWFjY1x1NWFiZVx1NWFiZFx1NWFiY1x1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1C''@;'; + put 'put ''WzE4Ml0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTgyXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxODJdW0VdXT00NjU5MitFLExbNDY1OTIrRV09QlsxODJdW0VdKTtmb3IoQlsxODNdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTVh''@;'; + put 'put ''YjNcdTVhYzJcdTVhYjJcdTVkNjlcdTVkNmZcdTVlNGNcdTVlNzlcdTVlYzlcdTVlYzhcdTVmMTJcdTVmNTlcdTVmYWNcdTVmYWVcdTYxMWFcdTYxMGZcdTYxNDhcdTYxMWZcdTYwZjNcdTYxMWJcdTYwZjlcdTYxMDFcdTYxMDhcdTYxNGVcdTYxNGNcdTYxNDRcdTYxNGRcdTYxM2VcdTYxMzRc''@;'; + put 'put ''dTYxMjdcdTYxMGRcdTYxMDZcdTYxMzdcdTYyMjFcdTYyMjJcdTY0MTNcdTY0M2VcdTY0MWVcdTY0MmFcdTY0MmRcdTY0M2RcdTY0MmNcdTY0MGZcdTY0MWNcdTY0MTRcdTY0MGRcdTY0MzZcdTY0MTZcdTY0MTdcdTY0MDZcdTY1NmNcdTY1OWZcdTY1YjBcdTY2OTdcdTY2ODlcdTY2ODdcdTY2''@;'; + put 'put ''ODhcdTY2OTZcdTY2ODRcdTY2OThcdTY2OGRcdTY3MDNcdTY5OTRcdTY5NmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTY5NWFcdTY5NzdcdTY5NjBcdTY5NTRcdTY5NzVcdTY5MzBcdTY5ODJcdTY5NGFcdTY5NjhcdTY5NmJcdTY5NWVcdTY5NTNcdTY5NzlcdTY5''@;'; + put 'put ''ODZcdTY5NWRcdTY5NjNcdTY5NWJcdTZiNDdcdTZiNzJcdTZiYzBcdTZiYmZcdTZiZDNcdTZiZmRcdTZlYTJcdTZlYWZcdTZlZDNcdTZlYjZcdTZlYzJcdTZlOTBcdTZlOWRcdTZlYzdcdTZlYzVcdTZlYTVcdTZlOThcdTZlYmNcdTZlYmFcdTZlYWJcdTZlZDFcdTZlOTZcdTZlOWNcdTZlYzRc''@;'; + put 'put ''dTZlZDRcdTZlYWFcdTZlYTdcdTZlYjRcdTcxNGVcdTcxNTlcdTcxNjlcdTcxNjRcdTcxNDlcdTcxNjdcdTcxNWNcdTcxNmNcdTcxNjZcdTcxNGNcdTcxNjVcdTcxNWVcdTcxNDZcdTcxNjhcdTcxNTZcdTcyM2FcdTcyNTJcdTczMzdcdTczNDVcdTczM2ZcdTczM2VcdTc0NmZcdTc0NWFcdTc0''@;'; + put 'put ''NTVcdTc0NWZcdTc0NWVcdTc0NDFcdTc0M2ZcdTc0NTlcdTc0NWJcdTc0NWNcdTc1NzZcdTc1NzhcdTc2MDBcdTc1ZjBcdTc2MDFcdTc1ZjJcdTc1ZjFcdTc1ZmFcdTc1ZmZcdTc1ZjRcdTc1ZjNcdTc2ZGVcdTc2ZGZcdTc3NWJcdTc3NmJcdTc3NjZcdTc3NWVcdTc3NjNcdWZmZmQiLnNwbGl0''@;'; + put 'put ''KCIiKSxFPTA7RSE9QlsxODNdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE4M11bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTgzXVtFXV09NDY4NDgrRSxMWzQ2ODQ4K0VdPUJbMTgzXVtFXSk7Zm9yKEJbMTg0XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHU3Nzc5XHU3NzZhXHU3NzZjXHU3NzVjXHU3NzY1XHU3NzY4XHU3NzYyXHU3N2VlXHU3ODhlXHU3OGIwXHU3ODk3XHU3ODk4XHU3ODhjXHU3ODg5XHU3ODdjXHU3ODkxXHU3ODkzXHU3ODdmXHU3OTdhXHU3OTdmXHU3OTgxXHU4NDJjXHU3OWJkXHU3YTFjXHU3YTFhXHU3YTIw''@;'; + put 'put ''XHU3YTE0XHU3YTFmXHU3YTFlXHU3YTlmXHU3YWEwXHU3Yjc3XHU3YmMwXHU3YjYwXHU3YjZlXHU3YjY3XHU3Y2IxXHU3Y2IzXHU3Y2I1XHU3ZDkzXHU3ZDc5XHU3ZDkxXHU3ZDgxXHU3ZDhmXHU3ZDViXHU3ZjZlXHU3ZjY5XHU3ZjZhXHU3ZjcyXHU3ZmE5XHU3ZmE4XHU3ZmE0XHU4MDU2XHU4''@;'; + put 'put ''MDU4XHU4MDg2XHU4MDg0XHU4MTcxXHU4MTcwXHU4MTc4XHU4MTY1XHU4MTZlXHU4MTczXHU4MTZiXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4MTc5XHU4MTdhXHU4MTY2XHU4MjA1XHU4MjQ3XHU4NDgyXHU4NDc3XHU4NDNkXHU4NDMxXHU4NDc1XHU4NDY2XHU4''@;'; + put 'put ''NDZiXHU4NDQ5XHU4NDZjXHU4NDViXHU4NDNjXHU4NDM1XHU4NDYxXHU4NDYzXHU4NDY5XHU4NDZkXHU4NDQ2XHU4NjVlXHU4NjVjXHU4NjVmXHU4NmY5XHU4NzEzXHU4NzA4XHU4NzA3XHU4NzAwXHU4NmZlXHU4NmZiXHU4NzAyXHU4NzAzXHU4NzA2XHU4NzBhXHU4ODU5XHU4OGRmXHU4OGQ0''@;'; + put 'put ''XHU4OGQ5XHU4OGRjXHU4OGQ4XHU4OGRkXHU4OGUxXHU4OGNhXHU4OGQ1XHU4OGQyXHU4OTljXHU4OWUzXHU4YTZiXHU4YTcyXHU4YTczXHU4YTY2XHU4YTY5XHU4YTcwXHU4YTg3XHU4YTdjXHU4YTYzXHU4YWEwXHU4YTcxXHU4YTg1XHU4YTZkXHU4YTYyXHU4YTZlXHU4YTZjXHU4YTc5XHU4''@;'; + put 'put ''YTdiXHU4YTNlXHU4YTY4XHU4YzYyXHU4YzhhXHU4Yzg5XHU4Y2NhXHU4Y2M3XHU4Y2M4XHU4Y2M0XHU4Y2IyXHU4Y2MzXHU4Y2MyXHU4Y2M1XHU4ZGUxXHU4ZGRmXHU4ZGU4XHU4ZGVmXHU4ZGYzXHU4ZGZhXHU4ZGVhXHU4ZGU0XHU4ZGU2XHU4ZWIyXHU4ZjAzXHU4ZjA5XHU4ZWZlXHU4ZjBh''@;'; + put 'put ''XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTg0XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxODRdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE4NF1bRV1dPTQ3MTA0K0UsTFs0NzEwNCtFXT1CWzE4NF1bRV0pO2ZvcihCWzE4NV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OGY5Zlx1OGZiMlx1OTA0Ylx1OTA0YVx1OTA1M1x1OTA0Mlx1OTA1NFx1OTAzY1x1OTA1NVx1OTA1MFx1OTA0N1x1OTA0Zlx1OTA0ZVx1OTA0ZFx1OTA1MVx1OTAzZVx1OTA0MVx1OTExMlx1OTExN1x1OTE2Y1x1OTE2YVx1OTE2OVx1OTFjOVx1OTIz''@;'; + put 'put ''N1x1OTI1N1x1OTIzOFx1OTIzZFx1OTI0MFx1OTIzZVx1OTI1Ylx1OTI0Ylx1OTI2NFx1OTI1MVx1OTIzNFx1OTI0OVx1OTI0ZFx1OTI0NVx1OTIzOVx1OTIzZlx1OTI1YVx1OTU5OFx1OTY5OFx1OTY5NFx1OTY5NVx1OTZjZFx1OTZjYlx1OTZjOVx1OTZjYVx1OTZmN1x1OTZmYlx1OTZmOVx1''@;'; + put 'put ''OTZmNlx1OTc1Nlx1OTc3NFx1OTc3Nlx1OTgxMFx1OTgxMVx1OTgxM1x1OTgwYVx1OTgxMlx1OTgwY1x1OThmY1x1OThmNFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OThmZFx1OThmZVx1OTliM1x1OTliMVx1OTliNFx1OWFlMVx1OWNlOVx1OWU4Mlx1OWYwZVx1''@;'; + put 'put ''OWYxM1x1OWYyMFx1NTBlN1x1NTBlZVx1NTBlNVx1NTBkNlx1NTBlZFx1NTBkYVx1NTBkNVx1NTBjZlx1NTBkMVx1NTBmMVx1NTBjZVx1NTBlOVx1NTE2Mlx1NTFmM1x1NTI4M1x1NTI4Mlx1NTMzMVx1NTNhZFx1NTVmZVx1NTYwMFx1NTYxYlx1NTYxN1x1NTVmZFx1NTYxNFx1NTYwNlx1NTYw''@;'; + put 'put ''OVx1NTYwZFx1NTYwZVx1NTVmN1x1NTYxNlx1NTYxZlx1NTYwOFx1NTYxMFx1NTVmNlx1NTcxOFx1NTcxNlx1NTg3NVx1NTg3ZVx1NTg4M1x1NTg5M1x1NTg4YVx1NTg3OVx1NTg4NVx1NTg3ZFx1NThmZFx1NTkyNVx1NTkyMlx1NTkyNFx1NTk2YVx1NTk2OVx1NWFlMVx1NWFlNlx1NWFlOVx1''@;'; + put 'put ''NWFkN1x1NWFkNlx1NWFkOFx1NWFlM1x1NWI3NVx1NWJkZVx1NWJlN1x1NWJlMVx1NWJlNVx1NWJlNlx1NWJlOFx1NWJlMlx1NWJlNFx1NWJkZlx1NWMwZFx1NWM2Mlx1NWQ4NFx1NWQ4N1x1NWU1Ylx1NWU2M1x1NWU1NVx1NWU1N1x1NWU1NFx1NWVkM1x1NWVkNlx1NWYwYVx1NWY0Nlx1NWY3''@;'; + put 'put ''MFx1NWZiOVx1NjE0N1x1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE4NV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTg1XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxODVdW0VdXT00NzM2MCtFLExbNDczNjArRV09QlsxODVdW0VdKTtmb3IoQlsxODZdPSJcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTYxM2ZcdTYxNGJcdTYxNzdcdTYxNjJcdTYxNjNcdTYxNWZcdTYxNWFcdTYxNThcdTYxNzVcdTYyMmFcdTY0ODdcdTY0NThcdTY0NTRcdTY0YTRcdTY0NzhcdTY0NWZcdTY0N2FcdTY0NTFcdTY0NjdcdTY0MzRcdTY0NmRcdTY0''@;'; + put 'put ''N2JcdTY1NzJcdTY1YTFcdTY1ZDdcdTY1ZDZcdTY2YTJcdTY2YThcdTY2OWRcdTY5OWNcdTY5YThcdTY5OTVcdTY5YzFcdTY5YWVcdTY5ZDNcdTY5Y2JcdTY5OWJcdTY5YjdcdTY5YmJcdTY5YWJcdTY5YjRcdTY5ZDBcdTY5Y2RcdTY5YWRcdTY5Y2NcdTY5YTZcdTY5YzNcdTY5YTNcdTZiNDlc''@;'; + put 'put ''dTZiNGNcdTZjMzNcdTZmMzNcdTZmMTRcdTZlZmVcdTZmMTNcdTZlZjRcdTZmMjlcdTZmM2VcdTZmMjBcdTZmMmNcdTZmMGZcdTZmMDJcdTZmMjJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTZlZmZcdTZlZWZcdTZmMDZcdTZmMzFcdTZmMzhcdTZmMzJcdTZmMjNc''@;'; + put 'put ''dTZmMTVcdTZmMmJcdTZmMmZcdTZmODhcdTZmMmFcdTZlZWNcdTZmMDFcdTZlZjJcdTZlY2NcdTZlZjdcdTcxOTRcdTcxOTlcdTcxN2RcdTcxOGFcdTcxODRcdTcxOTJcdTcyM2VcdTcyOTJcdTcyOTZcdTczNDRcdTczNTBcdTc0NjRcdTc0NjNcdTc0NmFcdTc0NzBcdTc0NmRcdTc1MDRcdTc1''@;'; + put 'put ''OTFcdTc2MjdcdTc2MGRcdTc2MGJcdTc2MDlcdTc2MTNcdTc2ZTFcdTc2ZTNcdTc3ODRcdTc3N2RcdTc3N2ZcdTc3NjFcdTc4YzFcdTc4OWZcdTc4YTdcdTc4YjNcdTc4YTlcdTc4YTNcdTc5OGVcdTc5OGZcdTc5OGRcdTdhMmVcdTdhMzFcdTdhYWFcdTdhYTlcdTdhZWRcdTdhZWZcdTdiYTFc''@;'; + put 'put ''dTdiOTVcdTdiOGJcdTdiNzVcdTdiOTdcdTdiOWRcdTdiOTRcdTdiOGZcdTdiYjhcdTdiODdcdTdiODRcdTdjYjlcdTdjYmRcdTdjYmVcdTdkYmJcdTdkYjBcdTdkOWNcdTdkYmRcdTdkYmVcdTdkYTBcdTdkY2FcdTdkYjRcdTdkYjJcdTdkYjFcdTdkYmFcdTdkYTJcdTdkYmZcdTdkYjVcdTdk''@;'; + put 'put ''YjhcdTdkYWRcdTdkZDJcdTdkYzdcdTdkYWNcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxODZdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE4Nl1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTg2XVtFXV09NDc2MTYrRSxMWzQ3NjE2K0VdPUJbMTg2XVtFXSk7Zm9yKEJbMTg3XT0iXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3ZjcwXHU3ZmUwXHU3ZmUxXHU3ZmRmXHU4MDVlXHU4MDVhXHU4MDg3XHU4MTUwXHU4MTgwXHU4MThmXHU4MTg4XHU4MThhXHU4MTdmXHU4MTgyXHU4MWU3XHU4MWZhXHU4MjA3XHU4MjE0XHU4MjFlXHU4''@;'; + put 'put ''MjRiXHU4NGM5XHU4NGJmXHU4NGM2XHU4NGM0XHU4NDk5XHU4NDllXHU4NGIyXHU4NDljXHU4NGNiXHU4NGI4XHU4NGMwXHU4NGQzXHU4NDkwXHU4NGJjXHU4NGQxXHU4NGNhXHU4NzNmXHU4NzFjXHU4NzNiXHU4NzIyXHU4NzI1XHU4NzM0XHU4NzE4XHU4NzU1XHU4NzM3XHU4NzI5XHU4OGYz''@;'; + put 'put ''XHU4OTAyXHU4OGY0XHU4OGY5XHU4OGY4XHU4OGZkXHU4OGU4XHU4OTFhXHU4OGVmXHU4YWE2XHU4YThjXHU4YTllXHU4YWEzXHU4YThkXHU4YWExXHU4YTkzXHU4YWE0XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4YWFhXHU4YWE1XHU4YWE4XHU4YTk4XHU4YTkx''@;'; + put 'put ''XHU4YTlhXHU4YWE3XHU4YzZhXHU4YzhkXHU4YzhjXHU4Y2QzXHU4Y2QxXHU4Y2QyXHU4ZDZiXHU4ZDk5XHU4ZDk1XHU4ZGZjXHU4ZjE0XHU4ZjEyXHU4ZjE1XHU4ZjEzXHU4ZmEzXHU5MDYwXHU5MDU4XHU5MDVjXHU5MDYzXHU5MDU5XHU5MDVlXHU5MDYyXHU5MDVkXHU5MDViXHU5MTE5XHU5''@;'; + put 'put ''MTE4XHU5MTFlXHU5MTc1XHU5MTc4XHU5MTc3XHU5MTc0XHU5Mjc4XHU5MjgwXHU5Mjg1XHU5Mjk4XHU5Mjk2XHU5MjdiXHU5MjkzXHU5MjljXHU5MmE4XHU5MjdjXHU5MjkxXHU5NWExXHU5NWE4XHU5NWE5XHU5NWEzXHU5NWE1XHU5NWE0XHU5Njk5XHU5NjljXHU5NjliXHU5NmNjXHU5NmQy''@;'; + put 'put ''XHU5NzAwXHU5NzdjXHU5Nzg1XHU5N2Y2XHU5ODE3XHU5ODE4XHU5OGFmXHU5OGIxXHU5OTAzXHU5OTA1XHU5OTBjXHU5OTA5XHU5OWMxXHU5YWFmXHU5YWIwXHU5YWU2XHU5YjQxXHU5YjQyXHU5Y2Y0XHU5Y2Y2XHU5Y2YzXHU5ZWJjXHU5ZjNiXHU5ZjRhXHU1MTA0XHU1MTAwXHU1MGZiXHU1''@;'; + put 'put ''MGY1XHU1MGY5XHU1MTAyXHU1MTA4XHU1MTA5XHU1MTA1XHU1MWRjXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTg3XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxODddW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE4N11bRV1dPTQ3ODcyK0UsTFs0Nzg3MitFXT1CWzE4N11bRV0pO2ZvcihC''@;'; + put 'put ''WzE4OF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NTI4N1x1NTI4OFx1NTI4OVx1NTI4ZFx1NTI4YVx1NTJmMFx1NTNiMlx1NTYyZVx1NTYzYlx1NTYzOVx1NTYzMlx1NTYzZlx1NTYzNFx1NTYyOVx1NTY1M1x1NTY0ZVx1NTY1N1x1''@;'; + put 'put ''NTY3NFx1NTYzNlx1NTYyZlx1NTYzMFx1NTg4MFx1NTg5Zlx1NTg5ZVx1NThiM1x1NTg5Y1x1NThhZVx1NThhOVx1NThhNlx1NTk2ZFx1NWIwOVx1NWFmYlx1NWIwYlx1NWFmNVx1NWIwY1x1NWIwOFx1NWJlZVx1NWJlY1x1NWJlOVx1NWJlYlx1NWM2NFx1NWM2NVx1NWQ5ZFx1NWQ5NFx1NWU2''@;'; + put 'put ''Mlx1NWU1Zlx1NWU2MVx1NWVlMlx1NWVkYVx1NWVkZlx1NWVkZFx1NWVlM1x1NWVlMFx1NWY0OFx1NWY3MVx1NWZiN1x1NWZiNVx1NjE3Nlx1NjE2N1x1NjE2ZVx1NjE1ZFx1NjE1NVx1NjE4Mlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NjE3Y1x1NjE3MFx1NjE2''@;'; + put 'put ''Ylx1NjE3ZVx1NjFhN1x1NjE5MFx1NjFhYlx1NjE4ZVx1NjFhY1x1NjE5YVx1NjFhNFx1NjE5NFx1NjFhZVx1NjIyZVx1NjQ2OVx1NjQ2Zlx1NjQ3OVx1NjQ5ZVx1NjRiMlx1NjQ4OFx1NjQ5MFx1NjRiMFx1NjRhNVx1NjQ5M1x1NjQ5NVx1NjRhOVx1NjQ5Mlx1NjRhZVx1NjRhZFx1NjRhYlx1''@;'; + put 'put ''NjQ5YVx1NjRhY1x1NjQ5OVx1NjRhMlx1NjRiM1x1NjU3NVx1NjU3N1x1NjU3OFx1NjZhZVx1NjZhYlx1NjZiNFx1NjZiMVx1NmEyM1x1NmExZlx1NjllOFx1NmEwMVx1NmExZVx1NmExOVx1NjlmZFx1NmEyMVx1NmExM1x1NmEwYVx1NjlmM1x1NmEwMlx1NmEwNVx1NjllZFx1NmExMVx1NmI1''@;'; + put 'put ''MFx1NmI0ZVx1NmJhNFx1NmJjNVx1NmJjNlx1NmYzZlx1NmY3Y1x1NmY4NFx1NmY1MVx1NmY2Nlx1NmY1NFx1NmY4Nlx1NmY2ZFx1NmY1Ylx1NmY3OFx1NmY2ZVx1NmY4ZVx1NmY3YVx1NmY3MFx1NmY2NFx1NmY5N1x1NmY1OFx1NmVkNVx1NmY2Zlx1NmY2MFx1NmY1Zlx1NzE5Zlx1NzFhY1x1''@;'; + put 'put ''NzFiMVx1NzFhOFx1NzI1Nlx1NzI5Ylx1NzM0ZVx1NzM1N1x1NzQ2OVx1NzQ4Ylx1NzQ4M1x1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE4OF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTg4XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxODhdW0VdXT00ODEyOCtFLExbNDgxMjgrRV09Qlsx''@;'; + put 'put ''ODhdW0VdKTtmb3IoQlsxODldPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTc0N2VcdTc0ODBcdTc1N2ZcdTc2MjBcdTc2MjlcdTc2MWZcdTc2MjRcdTc2MjZcdTc2MjFcdTc2MjJcdTc2OWFcdTc2YmFcdTc2ZTRcdTc3OGVcdTc3ODdc''@;'; + put 'put ''dTc3OGNcdTc3OTFcdTc3OGJcdTc4Y2JcdTc4YzVcdTc4YmFcdTc4Y2FcdTc4YmVcdTc4ZDVcdTc4YmNcdTc4ZDBcdTdhM2ZcdTdhM2NcdTdhNDBcdTdhM2RcdTdhMzdcdTdhM2JcdTdhYWZcdTdhYWVcdTdiYWRcdTdiYjFcdTdiYzRcdTdiYjRcdTdiYzZcdTdiYzdcdTdiYzFcdTdiYTBcdTdi''@;'; + put 'put ''Y2NcdTdjY2FcdTdkZTBcdTdkZjRcdTdkZWZcdTdkZmJcdTdkZDhcdTdkZWNcdTdkZGRcdTdkZThcdTdkZTNcdTdkZGFcdTdkZGVcdTdkZTlcdTdkOWVcdTdkZDlcdTdkZjJcdTdkZjlcdTdmNzVcdTdmNzdcdTdmYWZcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTdm''@;'; + put 'put ''ZTlcdTgwMjZcdTgxOWJcdTgxOWNcdTgxOWRcdTgxYTBcdTgxOWFcdTgxOThcdTg1MTdcdTg1M2RcdTg1MWFcdTg0ZWVcdTg1MmNcdTg1MmRcdTg1MTNcdTg1MTFcdTg1MjNcdTg1MjFcdTg1MTRcdTg0ZWNcdTg1MjVcdTg0ZmZcdTg1MDZcdTg3ODJcdTg3NzRcdTg3NzZcdTg3NjBcdTg3NjZc''@;'; + put 'put ''dTg3NzhcdTg3NjhcdTg3NTlcdTg3NTdcdTg3NGNcdTg3NTNcdTg4NWJcdTg4NWRcdTg5MTBcdTg5MDdcdTg5MTJcdTg5MTNcdTg5MTVcdTg5MGFcdThhYmNcdThhZDJcdThhYzdcdThhYzRcdThhOTVcdThhY2JcdThhZjhcdThhYjJcdThhYzlcdThhYzJcdThhYmZcdThhYjBcdThhZDZcdThh''@;'; + put 'put ''Y2RcdThhYjZcdThhYjlcdThhZGJcdThjNGNcdThjNGVcdThjNmNcdThjZTBcdThjZGVcdThjZTZcdThjZTRcdThjZWNcdThjZWRcdThjZTJcdThjZTNcdThjZGNcdThjZWFcdThjZTFcdThkNmRcdThkOWZcdThkYTNcdThlMmJcdThlMTBcdThlMWRcdThlMjJcdThlMGZcdThlMjlcdThlMWZc''@;'; + put 'put ''dThlMjFcdThlMWVcdThlYmFcdThmMWRcdThmMWJcdThmMWZcdThmMjlcdThmMjZcdThmMmFcdThmMWNcdThmMWVcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxODldLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE4OV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTg5XVtFXV09NDgzODQrRSxM''@;'; + put 'put ''WzQ4Mzg0K0VdPUJbMTg5XVtFXSk7Zm9yKEJbMTkwXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4ZjI1XHU5MDY5XHU5MDZlXHU5MDY4XHU5MDZkXHU5MDc3XHU5MTMwXHU5MTJkXHU5MTI3XHU5MTMxXHU5MTg3XHU5MTg5XHU5MThi''@;'; + put 'put ''XHU5MTgzXHU5MmM1XHU5MmJiXHU5MmI3XHU5MmVhXHU5MmFjXHU5MmU0XHU5MmMxXHU5MmIzXHU5MmJjXHU5MmQyXHU5MmM3XHU5MmYwXHU5MmIyXHU5NWFkXHU5NWIxXHU5NzA0XHU5NzA2XHU5NzA3XHU5NzA5XHU5NzYwXHU5NzhkXHU5NzhiXHU5NzhmXHU5ODIxXHU5ODJiXHU5ODFjXHU5''@;'; + put 'put ''OGIzXHU5OTBhXHU5OTEzXHU5OTEyXHU5OTE4XHU5OWRkXHU5OWQwXHU5OWRmXHU5OWRiXHU5OWQxXHU5OWQ1XHU5OWQyXHU5OWQ5XHU5YWI3XHU5YWVlXHU5YWVmXHU5YjI3XHU5YjQ1XHU5YjQ0XHU5Yjc3XHU5YjZmXHU5ZDA2XHU5ZDA5XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHU5ZDAzXHU5ZWE5XHU5ZWJlXHU5ZWNlXHU1OGE4XHU5ZjUyXHU1MTEyXHU1MTE4XHU1MTE0XHU1MTEwXHU1MTE1XHU1MTgwXHU1MWFhXHU1MWRkXHU1MjkxXHU1MjkzXHU1MmYzXHU1NjU5XHU1NjZiXHU1Njc5XHU1NjY5XHU1NjY0XHU1Njc4XHU1NjZhXHU1NjY4XHU1NjY1''@;'; + put 'put ''XHU1NjcxXHU1NjZmXHU1NjZjXHU1NjYyXHU1Njc2XHU1OGMxXHU1OGJlXHU1OGM3XHU1OGM1XHU1OTZlXHU1YjFkXHU1YjM0XHU1Yjc4XHU1YmYwXHU1YzBlXHU1ZjRhXHU2MWIyXHU2MTkxXHU2MWE5XHU2MThhXHU2MWNkXHU2MWI2XHU2MWJlXHU2MWNhXHU2MWM4XHU2MjMwXHU2NGM1XHU2''@;'; + put 'put ''NGMxXHU2NGNiXHU2NGJiXHU2NGJjXHU2NGRhXHU2NGM0XHU2NGM3XHU2NGMyXHU2NGNkXHU2NGJmXHU2NGQyXHU2NGQ0XHU2NGJlXHU2NTc0XHU2NmM2XHU2NmM5XHU2NmI5XHU2NmM0XHU2NmM3XHU2NmI4XHU2YTNkXHU2YTM4XHU2YTNhXHU2YTU5XHU2YTZiXHU2YTU4XHU2YTM5XHU2YTQ0''@;'; + put 'put ''XHU2YTYyXHU2YTYxXHU2YTRiXHU2YTQ3XHU2YTM1XHU2YTVmXHU2YTQ4XHU2YjU5XHU2Yjc3XHU2YzA1XHU2ZmMyXHU2ZmIxXHU2ZmExXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTkwXS5sZW5ndGg7KytFKTY1NTMzIT09QlsxOTBdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE5MF1b''@;'; + put 'put ''RV1dPTQ4NjQwK0UsTFs0ODY0MCtFXT1CWzE5MF1bRV0pO2ZvcihCWzE5MV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NmZjM1x1NmZhNFx1NmZjMVx1NmZhN1x1NmZiM1x1NmZjMFx1NmZiOVx1NmZiNlx1NmZhNlx1NmZhMFx1NmZi''@;'; + put 'put ''NFx1NzFiZVx1NzFjOVx1NzFkMFx1NzFkMlx1NzFjOFx1NzFkNVx1NzFiOVx1NzFjZVx1NzFkOVx1NzFkY1x1NzFjM1x1NzFjNFx1NzM2OFx1NzQ5Y1x1NzRhM1x1NzQ5OFx1NzQ5Zlx1NzQ5ZVx1NzRlMlx1NzUwY1x1NzUwZFx1NzYzNFx1NzYzOFx1NzYzYVx1NzZlN1x1NzZlNVx1NzdhMFx1''@;'; + put 'put ''Nzc5ZVx1Nzc5Zlx1NzdhNVx1NzhlOFx1NzhkYVx1NzhlY1x1NzhlN1x1NzlhNlx1N2E0ZFx1N2E0ZVx1N2E0Nlx1N2E0Y1x1N2E0Ylx1N2FiYVx1N2JkOVx1N2MxMVx1N2JjOVx1N2JlNFx1N2JkYlx1N2JlMVx1N2JlOVx1N2JlNlx1N2NkNVx1N2NkNlx1N2UwYVx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1N2UxMVx1N2UwOFx1N2UxYlx1N2UyM1x1N2UxZVx1N2UxZFx1N2UwOVx1N2UxMFx1N2Y3OVx1N2ZiMlx1N2ZmMFx1N2ZmMVx1N2ZlZVx1ODAyOFx1ODFiM1x1ODFhOVx1ODFhOFx1ODFmYlx1ODIwOFx1ODI1OFx1ODI1OVx1ODU0YVx1ODU1OVx1ODU0''@;'; + put 'put ''OFx1ODU2OFx1ODU2OVx1ODU0M1x1ODU0OVx1ODU2ZFx1ODU2YVx1ODU1ZVx1ODc4M1x1ODc5Zlx1ODc5ZVx1ODdhMlx1ODc4ZFx1ODg2MVx1ODkyYVx1ODkzMlx1ODkyNVx1ODkyYlx1ODkyMVx1ODlhYVx1ODlhNlx1OGFlNlx1OGFmYVx1OGFlYlx1OGFmMVx1OGIwMFx1OGFkY1x1OGFlN1x1''@;'; + put 'put ''OGFlZVx1OGFmZVx1OGIwMVx1OGIwMlx1OGFmN1x1OGFlZFx1OGFmM1x1OGFmNlx1OGFmY1x1OGM2Ylx1OGM2ZFx1OGM5M1x1OGNmNFx1OGU0NFx1OGUzMVx1OGUzNFx1OGU0Mlx1OGUzOVx1OGUzNVx1OGYzYlx1OGYyZlx1OGYzOFx1OGYzM1x1OGZhOFx1OGZhNlx1OTA3NVx1OTA3NFx1OTA3''@;'; + put 'put ''OFx1OTA3Mlx1OTA3Y1x1OTA3YVx1OTEzNFx1OTE5Mlx1OTMyMFx1OTMzNlx1OTJmOFx1OTMzM1x1OTMyZlx1OTMyMlx1OTJmY1x1OTMyYlx1OTMwNFx1OTMxYVx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE5MV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTkxXVtFXS5jaGFyQ29kZUF0KDAp''@;'; + put 'put ''JiYobWVbQlsxOTFdW0VdXT00ODg5NitFLExbNDg4OTYrRV09QlsxOTFdW0VdKTtmb3IoQlsxOTJdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTkzMTBcdTkzMjZcdTkzMjFcdTkzMTVcdTkzMmVcdTkzMTlcdTk1YmJcdTk2YTdcdTk2''@;'; + put 'put ''YThcdTk2YWFcdTk2ZDVcdTk3MGVcdTk3MTFcdTk3MTZcdTk3MGRcdTk3MTNcdTk3MGZcdTk3NWJcdTk3NWNcdTk3NjZcdTk3OThcdTk4MzBcdTk4MzhcdTk4M2JcdTk4MzdcdTk4MmRcdTk4MzlcdTk4MjRcdTk5MTBcdTk5MjhcdTk5MWVcdTk5MWJcdTk5MjFcdTk5MWFcdTk5ZWRcdTk5ZTJc''@;'; + put 'put ''dTk5ZjFcdTlhYjhcdTlhYmNcdTlhZmJcdTlhZWRcdTliMjhcdTliOTFcdTlkMTVcdTlkMjNcdTlkMjZcdTlkMjhcdTlkMTJcdTlkMWJcdTllZDhcdTllZDRcdTlmOGRcdTlmOWNcdTUxMmFcdTUxMWZcdTUxMjFcdTUxMzJcdTUyZjVcdTU2OGVcdTU2ODBcdTU2OTBcdTU2ODVcdTU2ODdcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTU2OGZcdTU4ZDVcdTU4ZDNcdTU4ZDFcdTU4Y2VcdTViMzBcdTViMmFcdTViMjRcdTViN2FcdTVjMzdcdTVjNjhcdTVkYmNcdTVkYmFcdTVkYmRcdTVkYjhcdTVlNmJcdTVmNGNcdTVmYmRcdTYxYzlcdTYxYzJcdTYxYzdcdTYx''@;'; + put 'put ''ZTZcdTYxY2JcdTYyMzJcdTYyMzRcdTY0Y2VcdTY0Y2FcdTY0ZDhcdTY0ZTBcdTY0ZjBcdTY0ZTZcdTY0ZWNcdTY0ZjFcdTY0ZTJcdTY0ZWRcdTY1ODJcdTY1ODNcdTY2ZDlcdTY2ZDZcdTZhODBcdTZhOTRcdTZhODRcdTZhYTJcdTZhOWNcdTZhZGJcdTZhYTNcdTZhN2VcdTZhOTdcdTZhOTBc''@;'; + put 'put ''dTZhYTBcdTZiNWNcdTZiYWVcdTZiZGFcdTZjMDhcdTZmZDhcdTZmZjFcdTZmZGZcdTZmZTBcdTZmZGJcdTZmZTRcdTZmZWJcdTZmZWZcdTZmODBcdTZmZWNcdTZmZTFcdTZmZTlcdTZmZDVcdTZmZWVcdTZmZjBcdTcxZTdcdTcxZGZcdTcxZWVcdTcxZTZcdTcxZTVcdTcxZWRcdTcxZWNcdTcx''@;'; + put 'put ''ZjRcdTcxZTBcdTcyMzVcdTcyNDZcdTczNzBcdTczNzJcdTc0YTlcdTc0YjBcdTc0YTZcdTc0YThcdTc2NDZcdTc2NDJcdTc2NGNcdTc2ZWFcdTc3YjNcdTc3YWFcdTc3YjBcdTc3YWNcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxOTJdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE5Ml1bRV0u''@;'; + put 'put ''Y2hhckNvZGVBdCgwKSYmKG1lW0JbMTkyXVtFXV09NDkxNTIrRSxMWzQ5MTUyK0VdPUJbMTkyXVtFXSk7Zm9yKEJbMTkzXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3N2E3XHU3N2FkXHU3N2VmXHU3OGY3XHU3OGZhXHU3OGY0XHU3''@;'; + put 'put ''OGVmXHU3OTAxXHU3OWE3XHU3OWFhXHU3YTU3XHU3YWJmXHU3YzA3XHU3YzBkXHU3YmZlXHU3YmY3XHU3YzBjXHU3YmUwXHU3Y2UwXHU3Y2RjXHU3Y2RlXHU3Y2UyXHU3Y2RmXHU3Y2Q5XHU3Y2RkXHU3ZTJlXHU3ZTNlXHU3ZTQ2XHU3ZTM3XHU3ZTMyXHU3ZTQzXHU3ZTJiXHU3ZTNkXHU3ZTMx''@;'; + put 'put ''XHU3ZTQ1XHU3ZTQxXHU3ZTM0XHU3ZTM5XHU3ZTQ4XHU3ZTM1XHU3ZTNmXHU3ZTJmXHU3ZjQ0XHU3ZmYzXHU3ZmZjXHU4MDcxXHU4MDcyXHU4MDcwXHU4MDZmXHU4MDczXHU4MWM2XHU4MWMzXHU4MWJhXHU4MWMyXHU4MWMwXHU4MWJmXHU4MWJkXHU4MWM5XHU4MWJlXHU4MWU4XHU4MjA5XHU4''@;'; + put 'put ''MjcxXHU4NWFhXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4NTg0XHU4NTdlXHU4NTljXHU4NTkxXHU4NTk0XHU4NWFmXHU4NTliXHU4NTg3XHU4NWE4XHU4NThhXHU4NjY3XHU4N2MwXHU4N2QxXHU4N2IzXHU4N2QyXHU4N2M2XHU4N2FiXHU4N2JiXHU4N2JhXHU4''@;'; + put 'put ''N2M4XHU4N2NiXHU4OTNiXHU4OTM2XHU4OTQ0XHU4OTM4XHU4OTNkXHU4OWFjXHU4YjBlXHU4YjE3XHU4YjE5XHU4YjFiXHU4YjBhXHU4YjIwXHU4YjFkXHU4YjA0XHU4YjEwXHU4YzQxXHU4YzNmXHU4YzczXHU4Y2ZhXHU4Y2ZkXHU4Y2ZjXHU4Y2Y4XHU4Y2ZiXHU4ZGE4XHU4ZTQ5XHU4ZTRi''@;'; + put 'put ''XHU4ZTQ4XHU4ZTRhXHU4ZjQ0XHU4ZjNlXHU4ZjQyXHU4ZjQ1XHU4ZjNmXHU5MDdmXHU5MDdkXHU5MDg0XHU5MDgxXHU5MDgyXHU5MDgwXHU5MTM5XHU5MWEzXHU5MTllXHU5MTljXHU5MzRkXHU5MzgyXHU5MzI4XHU5Mzc1XHU5MzRhXHU5MzY1XHU5MzRiXHU5MzE4XHU5MzdlXHU5MzZjXHU5''@;'; + put 'put ''MzViXHU5MzcwXHU5MzVhXHU5MzU0XHU5NWNhXHU5NWNiXHU5NWNjXHU5NWM4XHU5NWM2XHU5NmIxXHU5NmI4XHU5NmQ2XHU5NzFjXHU5NzFlXHU5N2EwXHU5N2QzXHU5ODQ2XHU5OGI2XHU5OTM1XHU5YTAxXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTkzXS5sZW5ndGg7KytFKTY1NTMz''@;'; + put 'put ''IT09QlsxOTNdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE5M11bRV1dPTQ5NDA4K0UsTFs0OTQwOCtFXT1CWzE5M11bRV0pO2ZvcihCWzE5NF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OTlmZlx1OWJhZVx1OWJhYlx1OWJhYVx1''@;'; + put 'put ''OWJhZFx1OWQzYlx1OWQzZlx1OWU4Ylx1OWVjZlx1OWVkZVx1OWVkY1x1OWVkZFx1OWVkYlx1OWYzZVx1OWY0Ylx1NTNlMlx1NTY5NVx1NTZhZVx1NThkOVx1NThkOFx1NWIzOFx1NWY1ZFx1NjFlM1x1NjIzM1x1NjRmNFx1NjRmMlx1NjRmZVx1NjUwNlx1NjRmYVx1NjRmYlx1NjRmN1x1NjVi''@;'; + put 'put ''N1x1NjZkY1x1NjcyNlx1NmFiM1x1NmFhY1x1NmFjM1x1NmFiYlx1NmFiOFx1NmFjMlx1NmFhZVx1NmFhZlx1NmI1Zlx1NmI3OFx1NmJhZlx1NzAwOVx1NzAwYlx1NmZmZVx1NzAwNlx1NmZmYVx1NzAxMVx1NzAwZlx1NzFmYlx1NzFmY1x1NzFmZVx1NzFmOFx1NzM3N1x1NzM3NVx1NzRhN1x1''@;'; + put 'put ''NzRiZlx1NzUxNVx1NzY1Nlx1NzY1OFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NzY1Mlx1NzdiZFx1NzdiZlx1NzdiYlx1NzdiY1x1NzkwZVx1NzlhZVx1N2E2MVx1N2E2Mlx1N2E2MFx1N2FjNFx1N2FjNVx1N2MyYlx1N2MyN1x1N2MyYVx1N2MxZVx1N2MyM1x1''@;'; + put 'put ''N2MyMVx1N2NlN1x1N2U1NFx1N2U1NVx1N2U1ZVx1N2U1YVx1N2U2MVx1N2U1Mlx1N2U1OVx1N2Y0OFx1N2ZmOVx1N2ZmYlx1ODA3N1x1ODA3Nlx1ODFjZFx1ODFjZlx1ODIwYVx1ODVjZlx1ODVhOVx1ODVjZFx1ODVkMFx1ODVjOVx1ODViMFx1ODViYVx1ODViOVx1ODVhNlx1ODdlZlx1ODdl''@;'; + put 'put ''Y1x1ODdmMlx1ODdlMFx1ODk4Nlx1ODliMlx1ODlmNFx1OGIyOFx1OGIzOVx1OGIyY1x1OGIyYlx1OGM1MFx1OGQwNVx1OGU1OVx1OGU2M1x1OGU2Nlx1OGU2NFx1OGU1Zlx1OGU1NVx1OGVjMFx1OGY0OVx1OGY0ZFx1OTA4N1x1OTA4M1x1OTA4OFx1OTFhYlx1OTFhY1x1OTFkMFx1OTM5NFx1''@;'; + put 'put ''OTM4YVx1OTM5Nlx1OTNhMlx1OTNiM1x1OTNhZVx1OTNhY1x1OTNiMFx1OTM5OFx1OTM5YVx1OTM5N1x1OTVkNFx1OTVkNlx1OTVkMFx1OTVkNVx1OTZlMlx1OTZkY1x1OTZkOVx1OTZkYlx1OTZkZVx1OTcyNFx1OTdhM1x1OTdhNlx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE5NF0ubGVu''@;'; + put 'put ''Z3RoOysrRSk2NTUzMyE9PUJbMTk0XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxOTRdW0VdXT00OTY2NCtFLExbNDk2NjQrRV09QlsxOTRdW0VdKTtmb3IoQlsxOTVdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTk3YWRcdTk3Zjlc''@;'; + put 'put ''dTk4NGRcdTk4NGZcdTk4NGNcdTk4NGVcdTk4NTNcdTk4YmFcdTk5M2VcdTk5M2ZcdTk5M2RcdTk5MmVcdTk5YTVcdTlhMGVcdTlhYzFcdTliMDNcdTliMDZcdTliNGZcdTliNGVcdTliNGRcdTliY2FcdTliYzlcdTliZmRcdTliYzhcdTliYzBcdTlkNTFcdTlkNWRcdTlkNjBcdTllZTBcdTlm''@;'; + put 'put ''MTVcdTlmMmNcdTUxMzNcdTU2YTVcdTU4ZGVcdTU4ZGZcdTU4ZTJcdTViZjVcdTlmOTBcdTVlZWNcdTYxZjJcdTYxZjdcdTYxZjZcdTYxZjVcdTY1MDBcdTY1MGZcdTY2ZTBcdTY2ZGRcdTZhZTVcdTZhZGRcdTZhZGFcdTZhZDNcdTcwMWJcdTcwMWZcdTcwMjhcdTcwMWFcdTcwMWRcdTcwMTVc''@;'; + put 'put ''dTcwMThcdTcyMDZcdTcyMGRcdTcyNThcdTcyYTJcdTczNzhcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTczN2FcdTc0YmRcdTc0Y2FcdTc0ZTNcdTc1ODdcdTc1ODZcdTc2NWZcdTc2NjFcdTc3YzdcdTc5MTlcdTc5YjFcdTdhNmJcdTdhNjlcdTdjM2VcdTdjM2Zc''@;'; + put 'put ''dTdjMzhcdTdjM2RcdTdjMzdcdTdjNDBcdTdlNmJcdTdlNmRcdTdlNzlcdTdlNjlcdTdlNmFcdTdmODVcdTdlNzNcdTdmYjZcdTdmYjlcdTdmYjhcdTgxZDhcdTg1ZTlcdTg1ZGRcdTg1ZWFcdTg1ZDVcdTg1ZTRcdTg1ZTVcdTg1ZjdcdTg3ZmJcdTg4MDVcdTg4MGRcdTg3ZjlcdTg3ZmVcdTg5''@;'; + put 'put ''NjBcdTg5NWZcdTg5NTZcdTg5NWVcdThiNDFcdThiNWNcdThiNThcdThiNDlcdThiNWFcdThiNGVcdThiNGZcdThiNDZcdThiNTlcdThkMDhcdThkMGFcdThlN2NcdThlNzJcdThlODdcdThlNzZcdThlNmNcdThlN2FcdThlNzRcdThmNTRcdThmNGVcdThmYWRcdTkwOGFcdTkwOGJcdTkxYjFc''@;'; + put 'put ''dTkxYWVcdTkzZTFcdTkzZDFcdTkzZGZcdTkzYzNcdTkzYzhcdTkzZGNcdTkzZGRcdTkzZDZcdTkzZTJcdTkzY2RcdTkzZDhcdTkzZTRcdTkzZDdcdTkzZThcdTk1ZGNcdTk2YjRcdTk2ZTNcdTk3MmFcdTk3MjdcdTk3NjFcdTk3ZGNcdTk3ZmJcdTk4NWVcdWZmZmQiLnNwbGl0KCIiKSxFPTA7''@;'; + put 'put ''RSE9QlsxOTVdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE5NV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTk1XVtFXV09NDk5MjArRSxMWzQ5OTIwK0VdPUJbMTk1XVtFXSk7Zm9yKEJbMTk2XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHU5ODU4XHU5ODViXHU5OGJjXHU5OTQ1XHU5OTQ5XHU5YTE2XHU5YTE5XHU5YjBkXHU5YmU4XHU5YmU3XHU5YmQ2XHU5YmRiXHU5ZDg5XHU5ZDYxXHU5ZDcyXHU5ZDZhXHU5ZDZjXHU5ZTkyXHU5ZTk3XHU5ZTkzXHU5ZWI0XHU1MmY4XHU1NmE4XHU1NmI3XHU1NmI2XHU1NmI0XHU1NmJjXHU1''@;'; + put 'put ''OGU0XHU1YjQwXHU1YjQzXHU1YjdkXHU1YmY2XHU1ZGM5XHU2MWY4XHU2MWZhXHU2NTE4XHU2NTE0XHU2NTE5XHU2NmU2XHU2NzI3XHU2YWVjXHU3MDNlXHU3MDMwXHU3MDMyXHU3MjEwXHU3MzdiXHU3NGNmXHU3NjYyXHU3NjY1XHU3OTI2XHU3OTJhXHU3OTJjXHU3OTJiXHU3YWM3XHU3YWY2''@;'; + put 'put ''XHU3YzRjXHU3YzQzXHU3YzRkXHU3Y2VmXHU3Y2YwXHU4ZmFlXHU3ZTdkXHU3ZTdjXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3ZTgyXHU3ZjRjXHU4MDAwXHU4MWRhXHU4MjY2XHU4NWZiXHU4NWY5XHU4NjExXHU4NWZhXHU4NjA2XHU4NjBiXHU4NjA3XHU4NjBh''@;'; + put 'put ''XHU4ODE0XHU4ODE1XHU4OTY0XHU4OWJhXHU4OWY4XHU4YjcwXHU4YjZjXHU4YjY2XHU4YjZmXHU4YjVmXHU4YjZiXHU4ZDBmXHU4ZDBkXHU4ZTg5XHU4ZTgxXHU4ZTg1XHU4ZTgyXHU5MWI0XHU5MWNiXHU5NDE4XHU5NDAzXHU5M2ZkXHU5NWUxXHU5NzMwXHU5OGM0XHU5OTUyXHU5OTUxXHU5''@;'; + put 'put ''OWE4XHU5YTJiXHU5YTMwXHU5YTM3XHU5YTM1XHU5YzEzXHU5YzBkXHU5ZTc5XHU5ZWI1XHU5ZWU4XHU5ZjJmXHU5ZjVmXHU5ZjYzXHU5ZjYxXHU1MTM3XHU1MTM4XHU1NmMxXHU1NmMwXHU1NmMyXHU1OTE0XHU1YzZjXHU1ZGNkXHU2MWZjXHU2MWZlXHU2NTFkXHU2NTFjXHU2NTk1XHU2NmU5''@;'; + put 'put ''XHU2YWZiXHU2YjA0XHU2YWZhXHU2YmIyXHU3MDRjXHU3MjFiXHU3MmE3XHU3NGQ2XHU3NGQ0XHU3NjY5XHU3N2QzXHU3YzUwXHU3ZThmXHU3ZThjXHU3ZmJjXHU4NjE3XHU4NjJkXHU4NjFhXHU4ODIzXHU4ODIyXHU4ODIxXHU4ODFmXHU4OTZhXHU4OTZjXHU4OWJkXHU4Yjc0XHVmZmZkIi5z''@;'; + put 'put ''cGxpdCgiIiksRT0wO0UhPUJbMTk2XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxOTZdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE5Nl1bRV1dPTUwMTc2K0UsTFs1MDE3NitFXT1CWzE5Nl1bRV0pO2ZvcihCWzE5N109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1OGI3N1x1OGI3ZFx1OGQxM1x1OGU4YVx1OGU4ZFx1OGU4Ylx1OGY1Zlx1OGZhZlx1OTFiYVx1OTQyZVx1OTQzM1x1OTQzNVx1OTQzYVx1OTQzOFx1OTQzMlx1OTQyYlx1OTVlMlx1OTczOFx1OTczOVx1OTczMlx1OTdmZlx1OTg2N1x1OTg2NVx1OTk1N1x1OWE0NVx1''@;'; + put 'put ''OWE0M1x1OWE0MFx1OWEzZVx1OWFjZlx1OWI1NFx1OWI1MVx1OWMyZFx1OWMyNVx1OWRhZlx1OWRiNFx1OWRjMlx1OWRiOFx1OWU5ZFx1OWVlZlx1OWYxOVx1OWY1Y1x1OWY2Nlx1OWY2N1x1NTEzY1x1NTEzYlx1NTZjOFx1NTZjYVx1NTZjOVx1NWI3Zlx1NWRkNFx1NWRkMlx1NWY0ZVx1NjFm''@;'; + put 'put ''Zlx1NjUyNFx1NmIwYVx1NmI2MVx1NzA1MVx1NzA1OFx1NzM4MFx1NzRlNFx1NzU4YVx1NzY2ZVx1NzY2Y1x1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NzliM1x1N2M2MFx1N2M1Zlx1ODA3ZVx1ODA3ZFx1ODFkZlx1ODk3Mlx1ODk2Zlx1ODlmY1x1OGI4MFx1OGQx''@;'; + put 'put ''Nlx1OGQxN1x1OGU5MVx1OGU5M1x1OGY2MVx1OTE0OFx1OTQ0NFx1OTQ1MVx1OTQ1Mlx1OTczZFx1OTczZVx1OTdjM1x1OTdjMVx1OTg2Ylx1OTk1NVx1OWE1NVx1OWE0ZFx1OWFkMlx1OWIxYVx1OWM0OVx1OWMzMVx1OWMzZVx1OWMzYlx1OWRkM1x1OWRkN1x1OWYzNFx1OWY2Y1x1OWY2YVx1''@;'; + put 'put ''OWY5NFx1NTZjY1x1NWRkNlx1NjIwMFx1NjUyM1x1NjUyYlx1NjUyYVx1NjZlY1x1NmIxMFx1NzRkYVx1N2FjYVx1N2M2NFx1N2M2M1x1N2M2NVx1N2U5M1x1N2U5Nlx1N2U5NFx1ODFlMlx1ODYzOFx1ODYzZlx1ODgzMVx1OGI4YVx1OTA5MFx1OTA4Zlx1OTQ2M1x1OTQ2MFx1OTQ2NFx1OTc2''@;'; + put 'put ''OFx1OTg2Zlx1OTk1Y1x1OWE1YVx1OWE1Ylx1OWE1N1x1OWFkM1x1OWFkNFx1OWFkMVx1OWM1NFx1OWM1N1x1OWM1Nlx1OWRlNVx1OWU5Zlx1OWVmNFx1NTZkMVx1NThlOVx1NjUyY1x1NzA1ZVx1NzY3MVx1NzY3Mlx1NzdkN1x1N2Y1MFx1N2Y4OFx1ODgzNlx1ODgzOVx1ODg2Mlx1OGI5M1x1''@;'; + put 'put ''OGI5Mlx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE5N10ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTk3XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxOTddW0VdXT01MDQzMitFLExbNTA0MzIrRV09QlsxOTddW0VdKTtmb3IoQlsxOThdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdThiOTZcdTgyNzdcdThkMWJcdTkxYzBcdTk0NmFcdTk3NDJcdTk3NDhcdTk3NDRcdTk3YzZcdTk4NzBcdTlhNWZcdTliMjJcdTliNThcdTljNWZcdTlkZjlcdTlkZmFcdTllN2NcdTllN2RcdTlmMDdcdTlmNzdcdTlmNzJcdTVlZjNcdTZiMTZc''@;'; + put 'put ''dTcwNjNcdTdjNmNcdTdjNmVcdTg4M2JcdTg5YzBcdThlYTFcdTkxYzFcdTk0NzJcdTk0NzBcdTk4NzFcdTk5NWVcdTlhZDZcdTliMjNcdTllY2NcdTcwNjRcdTc3ZGFcdThiOWFcdTk0NzdcdTk3YzlcdTlhNjJcdTlhNjVcdTdlOWNcdThiOWNcdThlYWFcdTkxYzVcdTk0N2RcdTk0N2VcdTk0''@;'; + put 'put ''N2NcdTljNzdcdTljNzhcdTllZjdcdThjNTRcdTk0N2ZcdTllMWFcdTcyMjhcdTlhNmFcdTliMzFcdTllMWJcdTllMWVcdTdjNzJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxOThdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE5OF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTk4XVtFXV09NTA2ODgrRSxMWzUwNjg4K0VdPUJbMTk4XVtFXSk7Zm9yKEJbMjAxXT0iXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU0ZTQyXHU0ZTVjXHU1MWY1XHU1MzFhXHU1MzgyXHU0ZTA3XHU0ZTBjXHU0ZTQ3XHU0ZThkXHU1NmQ3XHVmYTBjXHU1YzZlXHU1ZjczXHU0ZTBmXHU1MTg3XHU0ZTBlXHU0ZTJlXHU0ZTkzXHU0ZWMyXHU0ZWM5XHU0ZWM4''@;'; + put 'put ''XHU1MTk4XHU1MmZjXHU1MzZjXHU1M2I5XHU1NzIwXHU1OTAzXHU1OTJjXHU1YzEwXHU1ZGZmXHU2NWUxXHU2YmIzXHU2YmNjXHU2YzE0XHU3MjNmXHU0ZTMxXHU0ZTNjXHU0ZWU4XHU0ZWRjXHU0ZWU5XHU0ZWUxXHU0ZWRkXHU0ZWRhXHU1MjBjXHU1MzFjXHU1MzRjXHU1NzIyXHU1NzIzXHU1''@;'; + put 'put ''OTE3XHU1OTJmXHU1YjgxXHU1Yjg0XHU1YzEyXHU1YzNiXHU1Yzc0XHU1YzczXHU1ZTA0XHU1ZTgwXHU1ZTgyXHU1ZmM5XHU2MjA5XHU2MjUwXHU2YzE1XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2YzM2XHU2YzQzXHU2YzNmXHU2YzNiXHU3MmFlXHU3MmIwXHU3''@;'; + put 'put ''MzhhXHU3OWI4XHU4MDhhXHU5NjFlXHU0ZjBlXHU0ZjE4XHU0ZjJjXHU0ZWY1XHU0ZjE0XHU0ZWYxXHU0ZjAwXHU0ZWY3XHU0ZjA4XHU0ZjFkXHU0ZjAyXHU0ZjA1XHU0ZjIyXHU0ZjEzXHU0ZjA0XHU0ZWY0XHU0ZjEyXHU1MWIxXHU1MjEzXHU1MjA5XHU1MjEwXHU1MmE2XHU1MzIyXHU1MzFm''@;'; + put 'put ''XHU1MzRkXHU1MzhhXHU1NDA3XHU1NmUxXHU1NmRmXHU1NzJlXHU1NzJhXHU1NzM0XHU1OTNjXHU1OTgwXHU1OTdjXHU1OTg1XHU1OTdiXHU1OTdlXHU1OTc3XHU1OTdmXHU1YjU2XHU1YzE1XHU1YzI1XHU1YzdjXHU1YzdhXHU1YzdiXHU1YzdlXHU1ZGRmXHU1ZTc1XHU1ZTg0XHU1ZjAyXHU1''@;'; + put 'put ''ZjFhXHU1Zjc0XHU1ZmQ1XHU1ZmQ0XHU1ZmNmXHU2MjVjXHU2MjVlXHU2MjY0XHU2MjYxXHU2MjY2XHU2MjYyXHU2MjU5XHU2MjYwXHU2MjVhXHU2MjY1XHU2NWVmXHU2NWVlXHU2NzNlXHU2NzM5XHU2NzM4XHU2NzNiXHU2NzNhXHU2NzNmXHU2NzNjXHU2NzMzXHU2YzE4XHU2YzQ2XHU2YzUy''@;'; + put 'put ''XHU2YzVjXHU2YzRmXHU2YzRhXHU2YzU0XHU2YzRiXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjAxXS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMDFdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIwMV1bRV1dPTUxNDU2K0UsTFs1MTQ1NitFXT1CWzIwMV1bRV0pO2ZvcihCWzIwMl09Ilx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NmM0Y1x1NzA3MVx1NzI1ZVx1NzJiNFx1NzJiNVx1NzM4ZVx1NzUyYVx1NzY3Zlx1N2E3NVx1N2Y1MVx1ODI3OFx1ODI3Y1x1ODI4MFx1ODI3ZFx1ODI3Zlx1ODY0ZFx1ODk3ZVx1OTA5OVx1OTA5''@;'; + put 'put ''N1x1OTA5OFx1OTA5Ylx1OTA5NFx1OTYyMlx1OTYyNFx1OTYyMFx1OTYyM1x1NGY1Nlx1NGYzYlx1NGY2Mlx1NGY0OVx1NGY1M1x1NGY2NFx1NGYzZVx1NGY2N1x1NGY1Mlx1NGY1Zlx1NGY0MVx1NGY1OFx1NGYyZFx1NGYzM1x1NGYzZlx1NGY2MVx1NTE4Zlx1NTFiOVx1NTIxY1x1NTIxZVx1''@;'; + put 'put ''NTIyMVx1NTJhZFx1NTJhZVx1NTMwOVx1NTM2M1x1NTM3Mlx1NTM4ZVx1NTM4Zlx1NTQzMFx1NTQzN1x1NTQyYVx1NTQ1NFx1NTQ0NVx1NTQxOVx1NTQxY1x1NTQyNVx1NTQxOFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NTQzZFx1NTQ0Zlx1NTQ0MVx1NTQyOFx1''@;'; + put 'put ''NTQyNFx1NTQ0N1x1NTZlZVx1NTZlN1x1NTZlNVx1NTc0MVx1NTc0NVx1NTc0Y1x1NTc0OVx1NTc0Ylx1NTc1Mlx1NTkwNlx1NTk0MFx1NTlhNlx1NTk5OFx1NTlhMFx1NTk5N1x1NTk4ZVx1NTlhMlx1NTk5MFx1NTk4Zlx1NTlhN1x1NTlhMVx1NWI4ZVx1NWI5Mlx1NWMyOFx1NWMyYVx1NWM4''@;'; + put 'put ''ZFx1NWM4Zlx1NWM4OFx1NWM4Ylx1NWM4OVx1NWM5Mlx1NWM4YVx1NWM4Nlx1NWM5M1x1NWM5NVx1NWRlMFx1NWUwYVx1NWUwZVx1NWU4Ylx1NWU4OVx1NWU4Y1x1NWU4OFx1NWU4ZFx1NWYwNVx1NWYxZFx1NWY3OFx1NWY3Nlx1NWZkMlx1NWZkMVx1NWZkMFx1NWZlZFx1NWZlOFx1NWZlZVx1''@;'; + put 'put ''NWZmM1x1NWZlMVx1NWZlNFx1NWZlM1x1NWZmYVx1NWZlZlx1NWZmN1x1NWZmYlx1NjAwMFx1NWZmNFx1NjIzYVx1NjI4M1x1NjI4Y1x1NjI4ZVx1NjI4Zlx1NjI5NFx1NjI4N1x1NjI3MVx1NjI3Ylx1NjI3YVx1NjI3MFx1NjI4MVx1NjI4OFx1NjI3N1x1NjI3ZFx1NjI3Mlx1NjI3NFx1NjUz''@;'; + put 'put ''N1x1NjVmMFx1NjVmNFx1NjVmM1x1NjVmMlx1NjVmNVx1Njc0NVx1Njc0N1x1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIwMl0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjAyXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMDJdW0VdXT01MTcxMitFLExbNTE3MTIrRV09QlsyMDJdW0VdKTtm''@;'; + put 'put ''b3IoQlsyMDNdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTY3NTlcdTY3NTVcdTY3NGNcdTY3NDhcdTY3NWRcdTY3NGRcdTY3NWFcdTY3NGJcdTZiZDBcdTZjMTlcdTZjMWFcdTZjNzhcdTZjNjdcdTZjNmJcdTZjODRcdTZjOGJcdTZj''@;'; + put 'put ''OGZcdTZjNzFcdTZjNmZcdTZjNjlcdTZjOWFcdTZjNmRcdTZjODdcdTZjOTVcdTZjOWNcdTZjNjZcdTZjNzNcdTZjNjVcdTZjN2JcdTZjOGVcdTcwNzRcdTcwN2FcdTcyNjNcdTcyYmZcdTcyYmRcdTcyYzNcdTcyYzZcdTcyYzFcdTcyYmFcdTcyYzVcdTczOTVcdTczOTdcdTczOTNcdTczOTRc''@;'; + put 'put ''dTczOTJcdTc1M2FcdTc1MzlcdTc1OTRcdTc1OTVcdTc2ODFcdTc5M2RcdTgwMzRcdTgwOTVcdTgwOTlcdTgwOTBcdTgwOTJcdTgwOWNcdTgyOTBcdTgyOGZcdTgyODVcdTgyOGVcdTgyOTFcdTgyOTNcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTgyOGFcdTgyODNc''@;'; + put 'put ''dTgyODRcdThjNzhcdThmYzlcdThmYmZcdTkwOWZcdTkwYTFcdTkwYTVcdTkwOWVcdTkwYTdcdTkwYTBcdTk2MzBcdTk2MjhcdTk2MmZcdTk2MmRcdTRlMzNcdTRmOThcdTRmN2NcdTRmODVcdTRmN2RcdTRmODBcdTRmODdcdTRmNzZcdTRmNzRcdTRmODlcdTRmODRcdTRmNzdcdTRmNGNcdTRm''@;'; + put 'put ''OTdcdTRmNmFcdTRmOWFcdTRmNzlcdTRmODFcdTRmNzhcdTRmOTBcdTRmOWNcdTRmOTRcdTRmOWVcdTRmOTJcdTRmODJcdTRmOTVcdTRmNmJcdTRmNmVcdTUxOWVcdTUxYmNcdTUxYmVcdTUyMzVcdTUyMzJcdTUyMzNcdTUyNDZcdTUyMzFcdTUyYmNcdTUzMGFcdTUzMGJcdTUzM2NcdTUzOTJc''@;'; + put 'put ''dTUzOTRcdTU0ODdcdTU0N2ZcdTU0ODFcdTU0OTFcdTU0ODJcdTU0ODhcdTU0NmJcdTU0N2FcdTU0N2VcdTU0NjVcdTU0NmNcdTU0NzRcdTU0NjZcdTU0OGRcdTU0NmZcdTU0NjFcdTU0NjBcdTU0OThcdTU0NjNcdTU0NjdcdTU0NjRcdTU2ZjdcdTU2ZjlcdTU3NmZcdTU3NzJcdTU3NmRcdTU3''@;'; + put 'put ''NmJcdTU3NzFcdTU3NzBcdTU3NzZcdTU3ODBcdTU3NzVcdTU3N2JcdTU3NzNcdTU3NzRcdTU3NjJcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMDNdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIwM11bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjAzXVtFXV09NTE5NjgrRSxMWzUxOTY4K0Vd''@;'; + put 'put ''PUJbMjAzXVtFXSk7Zm9yKEJbMjA0XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1NzY4XHU1NzdkXHU1OTBjXHU1OTQ1XHU1OWI1XHU1OWJhXHU1OWNmXHU1OWNlXHU1OWIyXHU1OWNjXHU1OWMxXHU1OWI2XHU1OWJjXHU1OWMzXHU1''@;'; + put 'put ''OWQ2XHU1OWIxXHU1OWJkXHU1OWMwXHU1OWM4XHU1OWI0XHU1OWM3XHU1YjYyXHU1YjY1XHU1YjkzXHU1Yjk1XHU1YzQ0XHU1YzQ3XHU1Y2FlXHU1Y2E0XHU1Y2EwXHU1Y2I1XHU1Y2FmXHU1Y2E4XHU1Y2FjXHU1YzlmXHU1Y2EzXHU1Y2FkXHU1Y2EyXHU1Y2FhXHU1Y2E3XHU1YzlkXHU1Y2E1''@;'; + put 'put ''XHU1Y2I2XHU1Y2IwXHU1Y2E2XHU1ZTE3XHU1ZTE0XHU1ZTE5XHU1ZjI4XHU1ZjIyXHU1ZjIzXHU1ZjI0XHU1ZjU0XHU1ZjgyXHU1ZjdlXHU1ZjdkXHU1ZmRlXHU1ZmU1XHU2MDJkXHU2MDI2XHU2MDE5XHU2MDMyXHU2MDBiXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHU2MDM0XHU2MDBhXHU2MDE3XHU2MDMzXHU2MDFhXHU2MDFlXHU2MDJjXHU2MDIyXHU2MDBkXHU2MDEwXHU2MDJlXHU2MDEzXHU2MDExXHU2MDBjXHU2MDA5XHU2MDFjXHU2MjE0XHU2MjNkXHU2MmFkXHU2MmI0XHU2MmQxXHU2MmJlXHU2MmFhXHU2MmI2XHU2MmNhXHU2MmFlXHU2MmIzXHU2''@;'; + put 'put ''MmFmXHU2MmJiXHU2MmE5XHU2MmIwXHU2MmI4XHU2NTNkXHU2NWE4XHU2NWJiXHU2NjA5XHU2NWZjXHU2NjA0XHU2NjEyXHU2NjA4XHU2NWZiXHU2NjAzXHU2NjBiXHU2NjBkXHU2NjA1XHU2NWZkXHU2NjExXHU2NjEwXHU2NmY2XHU2NzBhXHU2Nzg1XHU2NzZjXHU2NzhlXHU2NzkyXHU2Nzc2''@;'; + put 'put ''XHU2NzdiXHU2Nzk4XHU2Nzg2XHU2Nzg0XHU2Nzc0XHU2NzhkXHU2NzhjXHU2NzdhXHU2NzlmXHU2NzkxXHU2Nzk5XHU2NzgzXHU2NzdkXHU2NzgxXHU2Nzc4XHU2Nzc5XHU2Nzk0XHU2YjI1XHU2YjgwXHU2YjdlXHU2YmRlXHU2YzFkXHU2YzkzXHU2Y2VjXHU2Y2ViXHU2Y2VlXHU2Y2Q5XHU2''@;'; + put 'put ''Y2I2XHU2Y2Q0XHU2Y2FkXHU2Y2U3XHU2Y2I3XHU2Y2QwXHU2Y2MyXHU2Y2JhXHU2Y2MzXHU2Y2M2XHU2Y2VkXHU2Y2YyXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjA0XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMDRdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIwNF1bRV1dPTUyMjI0''@;'; + put 'put ''K0UsTFs1MjIyNCtFXT1CWzIwNF1bRV0pO2ZvcihCWzIwNV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NmNkMlx1NmNkZFx1NmNiNFx1NmM4YVx1NmM5ZFx1NmM4MFx1NmNkZVx1NmNjMFx1NmQzMFx1NmNjZFx1NmNjN1x1NmNiMFx1''@;'; + put 'put ''NmNmOVx1NmNjZlx1NmNlOVx1NmNkMVx1NzA5NFx1NzA5OFx1NzA4NVx1NzA5M1x1NzA4Nlx1NzA4NFx1NzA5MVx1NzA5Nlx1NzA4Mlx1NzA5YVx1NzA4M1x1NzI2YVx1NzJkNlx1NzJjYlx1NzJkOFx1NzJjOVx1NzJkY1x1NzJkMlx1NzJkNFx1NzJkYVx1NzJjY1x1NzJkMVx1NzNhNFx1NzNh''@;'; + put 'put ''MVx1NzNhZFx1NzNhNlx1NzNhMlx1NzNhMFx1NzNhY1x1NzM5ZFx1NzRkZFx1NzRlOFx1NzUzZlx1NzU0MFx1NzUzZVx1NzU4Y1x1NzU5OFx1NzZhZlx1NzZmM1x1NzZmMVx1NzZmMFx1NzZmNVx1NzdmOFx1NzdmY1x1NzdmOVx1NzdmYlx1NzdmYVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1NzdmN1x1Nzk0Mlx1NzkzZlx1NzljNVx1N2E3OFx1N2E3Ylx1N2FmYlx1N2M3NVx1N2NmZFx1ODAzNVx1ODA4Zlx1ODBhZVx1ODBhM1x1ODBiOFx1ODBiNVx1ODBhZFx1ODIyMFx1ODJhMFx1ODJjMFx1ODJhYlx1ODI5YVx1ODI5OFx1ODI5Ylx1ODJiNVx1ODJhN1x1''@;'; + put 'put ''ODJhZVx1ODJiY1x1ODI5ZVx1ODJiYVx1ODJiNFx1ODJhOFx1ODJhMVx1ODJhOVx1ODJjMlx1ODJhNFx1ODJjM1x1ODJiNlx1ODJhMlx1ODY3MFx1ODY2Zlx1ODY2ZFx1ODY2ZVx1OGM1Nlx1OGZkMlx1OGZjYlx1OGZkM1x1OGZjZFx1OGZkNlx1OGZkNVx1OGZkN1x1OTBiMlx1OTBiNFx1OTBh''@;'; + put 'put ''Zlx1OTBiM1x1OTBiMFx1OTYzOVx1OTYzZFx1OTYzY1x1OTYzYVx1OTY0M1x1NGZjZFx1NGZjNVx1NGZkM1x1NGZiMlx1NGZjOVx1NGZjYlx1NGZjMVx1NGZkNFx1NGZkY1x1NGZkOVx1NGZiYlx1NGZiM1x1NGZkYlx1NGZjN1x1NGZkNlx1NGZiYVx1NGZjMFx1NGZiOVx1NGZlY1x1NTI0NFx1''@;'; + put 'put ''NTI0OVx1NTJjMFx1NTJjMlx1NTMzZFx1NTM3Y1x1NTM5N1x1NTM5Nlx1NTM5OVx1NTM5OFx1NTRiYVx1NTRhMVx1NTRhZFx1NTRhNVx1NTRjZlx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIwNV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjA1XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsy''@;'; + put 'put ''MDVdW0VdXT01MjQ4MCtFLExbNTI0ODArRV09QlsyMDVdW0VdKTtmb3IoQlsyMDZdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTU0YzNcdTgzMGRcdTU0YjdcdTU0YWVcdTU0ZDZcdTU0YjZcdTU0YzVcdTU0YzZcdTU0YTBcdTU0NzBc''@;'; + put 'put ''dTU0YmNcdTU0YTJcdTU0YmVcdTU0NzJcdTU0ZGVcdTU0YjBcdTU3YjVcdTU3OWVcdTU3OWZcdTU3YTRcdTU3OGNcdTU3OTdcdTU3OWRcdTU3OWJcdTU3OTRcdTU3OThcdTU3OGZcdTU3OTlcdTU3YTVcdTU3OWFcdTU3OTVcdTU4ZjRcdTU5MGRcdTU5NTNcdTU5ZTFcdTU5ZGVcdTU5ZWVcdTVh''@;'; + put 'put ''MDBcdTU5ZjFcdTU5ZGRcdTU5ZmFcdTU5ZmRcdTU5ZmNcdTU5ZjZcdTU5ZTRcdTU5ZjJcdTU5ZjdcdTU5ZGJcdTU5ZTlcdTU5ZjNcdTU5ZjVcdTU5ZTBcdTU5ZmVcdTU5ZjRcdTU5ZWRcdTViYThcdTVjNGNcdTVjZDBcdTVjZDhcdTVjY2NcdTVjZDdcdTVjY2JcdTVjZGJcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTVjZGVcdTVjZGFcdTVjYzlcdTVjYzdcdTVjY2FcdTVjZDZcdTVjZDNcdTVjZDRcdTVjY2ZcdTVjYzhcdTVjYzZcdTVjY2VcdTVjZGZcdTVjZjhcdTVkZjlcdTVlMjFcdTVlMjJcdTVlMjNcdTVlMjBcdTVlMjRcdTVlYjBcdTVlYTRcdTVlYTJc''@;'; + put 'put ''dTVlOWJcdTVlYTNcdTVlYTVcdTVmMDdcdTVmMmVcdTVmNTZcdTVmODZcdTYwMzdcdTYwMzlcdTYwNTRcdTYwNzJcdTYwNWVcdTYwNDVcdTYwNTNcdTYwNDdcdTYwNDlcdTYwNWJcdTYwNGNcdTYwNDBcdTYwNDJcdTYwNWZcdTYwMjRcdTYwNDRcdTYwNThcdTYwNjZcdTYwNmVcdTYyNDJcdTYy''@;'; + put 'put ''NDNcdTYyY2ZcdTYzMGRcdTYzMGJcdTYyZjVcdTYzMGVcdTYzMDNcdTYyZWJcdTYyZjlcdTYzMGZcdTYzMGNcdTYyZjhcdTYyZjZcdTYzMDBcdTYzMTNcdTYzMTRcdTYyZmFcdTYzMTVcdTYyZmJcdTYyZjBcdTY1NDFcdTY1NDNcdTY1YWFcdTY1YmZcdTY2MzZcdTY2MjFcdTY2MzJcdTY2MzVc''@;'; + put 'put ''dTY2MWNcdTY2MjZcdTY2MjJcdTY2MzNcdTY2MmJcdTY2M2FcdTY2MWRcdTY2MzRcdTY2MzlcdTY2MmVcdTY3MGZcdTY3MTBcdTY3YzFcdTY3ZjJcdTY3YzhcdTY3YmFcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMDZdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIwNl1bRV0uY2hhckNvZGVB''@;'; + put 'put ''dCgwKSYmKG1lW0JbMjA2XVtFXV09NTI3MzYrRSxMWzUyNzM2K0VdPUJbMjA2XVtFXSk7Zm9yKEJbMjA3XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2N2RjXHU2N2JiXHU2N2Y4XHU2N2Q4XHU2N2MwXHU2N2I3XHU2N2M1XHU2N2Vi''@;'; + put 'put ''XHU2N2U0XHU2N2RmXHU2N2I1XHU2N2NkXHU2N2IzXHU2N2Y3XHU2N2Y2XHU2N2VlXHU2N2UzXHU2N2MyXHU2N2I5XHU2N2NlXHU2N2U3XHU2N2YwXHU2N2IyXHU2N2ZjXHU2N2M2XHU2N2VkXHU2N2NjXHU2N2FlXHU2N2U2XHU2N2RiXHU2N2ZhXHU2N2M5XHU2N2NhXHU2N2MzXHU2N2VhXHU2''@;'; + put 'put ''N2NiXHU2YjI4XHU2YjgyXHU2Yjg0XHU2YmI2XHU2YmQ2XHU2YmQ4XHU2YmUwXHU2YzIwXHU2YzIxXHU2ZDI4XHU2ZDM0XHU2ZDJkXHU2ZDFmXHU2ZDNjXHU2ZDNmXHU2ZDEyXHU2ZDBhXHU2Y2RhXHU2ZDMzXHU2ZDA0XHU2ZDE5XHU2ZDNhXHU2ZDFhXHU2ZDExXHU2ZDAwXHU2ZDFkXHU2ZDQy''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2ZDAxXHU2ZDE4XHU2ZDM3XHU2ZDAzXHU2ZDBmXHU2ZDQwXHU2ZDA3XHU2ZDIwXHU2ZDJjXHU2ZDA4XHU2ZDIyXHU2ZDA5XHU2ZDEwXHU3MGI3XHU3MDlmXHU3MGJlXHU3MGIxXHU3MGIwXHU3MGExXHU3MGI0XHU3MGI1''@;'; + put 'put ''XHU3MGE5XHU3MjQxXHU3MjQ5XHU3MjRhXHU3MjZjXHU3MjcwXHU3MjczXHU3MjZlXHU3MmNhXHU3MmU0XHU3MmU4XHU3MmViXHU3MmRmXHU3MmVhXHU3MmU2XHU3MmUzXHU3Mzg1XHU3M2NjXHU3M2MyXHU3M2M4XHU3M2M1XHU3M2I5XHU3M2I2XHU3M2I1XHU3M2I0XHU3M2ViXHU3M2JmXHU3''@;'; + put 'put ''M2M3XHU3M2JlXHU3M2MzXHU3M2M2XHU3M2I4XHU3M2NiXHU3NGVjXHU3NGVlXHU3NTJlXHU3NTQ3XHU3NTQ4XHU3NWE3XHU3NWFhXHU3Njc5XHU3NmM0XHU3NzA4XHU3NzAzXHU3NzA0XHU3NzA1XHU3NzBhXHU3NmY3XHU3NmZiXHU3NmZhXHU3N2U3XHU3N2U4XHU3ODA2XHU3ODExXHU3ODEy''@;'; + put 'put ''XHU3ODA1XHU3ODEwXHU3ODBmXHU3ODBlXHU3ODA5XHU3ODAzXHU3ODEzXHU3OTRhXHU3OTRjXHU3OTRiXHU3OTQ1XHU3OTQ0XHU3OWQ1XHU3OWNkXHU3OWNmXHU3OWQ2XHU3OWNlXHU3YTgwXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjA3XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMDdd''@;'; + put 'put ''W0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIwN11bRV1dPTUyOTkyK0UsTFs1Mjk5MitFXT1CWzIwN11bRV0pO2ZvcihCWzIwOF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1N2E3ZVx1N2FkMVx1N2IwMFx1N2IwMVx1N2M3YVx1N2M3''@;'; + put 'put ''OFx1N2M3OVx1N2M3Zlx1N2M4MFx1N2M4MVx1N2QwM1x1N2QwOFx1N2QwMVx1N2Y1OFx1N2Y5MVx1N2Y4ZFx1N2ZiZVx1ODAwN1x1ODAwZVx1ODAwZlx1ODAxNFx1ODAzN1x1ODBkOFx1ODBjN1x1ODBlMFx1ODBkMVx1ODBjOFx1ODBjMlx1ODBkMFx1ODBjNVx1ODBlM1x1ODBkOVx1ODBkY1x1''@;'; + put 'put ''ODBjYVx1ODBkNVx1ODBjOVx1ODBjZlx1ODBkN1x1ODBlNlx1ODBjZFx1ODFmZlx1ODIyMVx1ODI5NFx1ODJkOVx1ODJmZVx1ODJmOVx1ODMwN1x1ODJlOFx1ODMwMFx1ODJkNVx1ODMzYVx1ODJlYlx1ODJkNlx1ODJmNFx1ODJlY1x1ODJlMVx1ODJmMlx1ODJmNVx1ODMwY1x1ODJmYlx1ODJm''@;'; + put 'put ''Nlx1ODJmMFx1ODJlYVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ODJlNFx1ODJlMFx1ODJmYVx1ODJmM1x1ODJlZFx1ODY3N1x1ODY3NFx1ODY3Y1x1ODY3M1x1ODg0MVx1ODg0ZVx1ODg2N1x1ODg2YVx1ODg2OVx1ODlkM1x1OGEwNFx1OGEwN1x1OGQ3Mlx1OGZl''@;'; + put 'put ''M1x1OGZlMVx1OGZlZVx1OGZlMFx1OTBmMVx1OTBiZFx1OTBiZlx1OTBkNVx1OTBjNVx1OTBiZVx1OTBjN1x1OTBjYlx1OTBjOFx1OTFkNFx1OTFkM1x1OTY1NFx1OTY0Zlx1OTY1MVx1OTY1M1x1OTY0YVx1OTY0ZVx1NTAxZVx1NTAwNVx1NTAwN1x1NTAxM1x1NTAyMlx1NTAzMFx1NTAxYlx1''@;'; + put 'put ''NGZmNVx1NGZmNFx1NTAzM1x1NTAzN1x1NTAyY1x1NGZmNlx1NGZmN1x1NTAxN1x1NTAxY1x1NTAyMFx1NTAyN1x1NTAzNVx1NTAyZlx1NTAzMVx1NTAwZVx1NTE1YVx1NTE5NFx1NTE5M1x1NTFjYVx1NTFjNFx1NTFjNVx1NTFjOFx1NTFjZVx1NTI2MVx1NTI1YVx1NTI1Mlx1NTI1ZVx1NTI1''@;'; + put 'put ''Zlx1NTI1NVx1NTI2Mlx1NTJjZFx1NTMwZVx1NTM5ZVx1NTUyNlx1NTRlMlx1NTUxN1x1NTUxMlx1NTRlN1x1NTRmM1x1NTRlNFx1NTUxYVx1NTRmZlx1NTUwNFx1NTUwOFx1NTRlYlx1NTUxMVx1NTUwNVx1NTRmMVx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIwOF0ubGVuZ3RoOysrRSk2''@;'; + put 'put ''NTUzMyE9PUJbMjA4XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMDhdW0VdXT01MzI0OCtFLExbNTMyNDgrRV09QlsyMDhdW0VdKTtmb3IoQlsyMDldPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTU1MGFcdTU0ZmJcdTU0ZjdcdTU0''@;'; + put 'put ''ZjhcdTU0ZTBcdTU1MGVcdTU1MDNcdTU1MGJcdTU3MDFcdTU3MDJcdTU3Y2NcdTU4MzJcdTU3ZDVcdTU3ZDJcdTU3YmFcdTU3YzZcdTU3YmRcdTU3YmNcdTU3YjhcdTU3YjZcdTU3YmZcdTU3YzdcdTU3ZDBcdTU3YjlcdTU3YzFcdTU5MGVcdTU5NGFcdTVhMTlcdTVhMTZcdTVhMmRcdTVhMmVc''@;'; + put 'put ''dTVhMTVcdTVhMGZcdTVhMTdcdTVhMGFcdTVhMWVcdTVhMzNcdTViNmNcdTViYTdcdTViYWRcdTViYWNcdTVjMDNcdTVjNTZcdTVjNTRcdTVjZWNcdTVjZmZcdTVjZWVcdTVjZjFcdTVjZjdcdTVkMDBcdTVjZjlcdTVlMjlcdTVlMjhcdTVlYThcdTVlYWVcdTVlYWFcdTVlYWNcdTVmMzNcdTVm''@;'; + put 'put ''MzBcdTVmNjdcdTYwNWRcdTYwNWFcdTYwNjdcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTYwNDFcdTYwYTJcdTYwODhcdTYwODBcdTYwOTJcdTYwODFcdTYwOWRcdTYwODNcdTYwOTVcdTYwOWJcdTYwOTdcdTYwODdcdTYwOWNcdTYwOGVcdTYyMTlcdTYyNDZcdTYy''@;'; + put 'put ''ZjJcdTYzMTBcdTYzNTZcdTYzMmNcdTYzNDRcdTYzNDVcdTYzMzZcdTYzNDNcdTYzZTRcdTYzMzlcdTYzNGJcdTYzNGFcdTYzM2NcdTYzMjlcdTYzNDFcdTYzMzRcdTYzNThcdTYzNTRcdTYzNTlcdTYzMmRcdTYzNDdcdTYzMzNcdTYzNWFcdTYzNTFcdTYzMzhcdTYzNTdcdTYzNDBcdTYzNDhc''@;'; + put 'put ''dTY1NGFcdTY1NDZcdTY1YzZcdTY1YzNcdTY1YzRcdTY1YzJcdTY2NGFcdTY2NWZcdTY2NDdcdTY2NTFcdTY3MTJcdTY3MTNcdTY4MWZcdTY4MWFcdTY4NDlcdTY4MzJcdTY4MzNcdTY4M2JcdTY4NGJcdTY4NGZcdTY4MTZcdTY4MzFcdTY4MWNcdTY4MzVcdTY4MmJcdTY4MmRcdTY4MmZcdTY4''@;'; + put 'put ''NGVcdTY4NDRcdTY4MzRcdTY4MWRcdTY4MTJcdTY4MTRcdTY4MjZcdTY4MjhcdTY4MmVcdTY4NGRcdTY4M2FcdTY4MjVcdTY4MjBcdTZiMmNcdTZiMmZcdTZiMmRcdTZiMzFcdTZiMzRcdTZiNmRcdTgwODJcdTZiODhcdTZiZTZcdTZiZTRcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMDld''@;'; + put 'put ''Lmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIwOV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjA5XVtFXV09NTM1MDQrRSxMWzUzNTA0K0VdPUJbMjA5XVtFXSk7Zm9yKEJbMjEwXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2YmU4XHU2''@;'; + put 'put ''YmUzXHU2YmUyXHU2YmU3XHU2YzI1XHU2ZDdhXHU2ZDYzXHU2ZDY0XHU2ZDc2XHU2ZDBkXHU2ZDYxXHU2ZDkyXHU2ZDU4XHU2ZDYyXHU2ZDZkXHU2ZDZmXHU2ZDkxXHU2ZDhkXHU2ZGVmXHU2ZDdmXHU2ZDg2XHU2ZDVlXHU2ZDY3XHU2ZDYwXHU2ZDk3XHU2ZDcwXHU2ZDdjXHU2ZDVmXHU2ZDgy''@;'; + put 'put ''XHU2ZDk4XHU2ZDJmXHU2ZDY4XHU2ZDhiXHU2ZDdlXHU2ZDgwXHU2ZDg0XHU2ZDE2XHU2ZDgzXHU2ZDdiXHU2ZDdkXHU2ZDc1XHU2ZDkwXHU3MGRjXHU3MGQzXHU3MGQxXHU3MGRkXHU3MGNiXHU3ZjM5XHU3MGUyXHU3MGQ3XHU3MGQyXHU3MGRlXHU3MGUwXHU3MGQ0XHU3MGNkXHU3MGM1XHU3''@;'; + put 'put ''MGM2XHU3MGM3XHU3MGRhXHU3MGNlXHU3MGUxXHU3MjQyXHU3Mjc4XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3Mjc3XHU3Mjc2XHU3MzAwXHU3MmZhXHU3MmY0XHU3MmZlXHU3MmY2XHU3MmYzXHU3MmZiXHU3MzAxXHU3M2QzXHU3M2Q5XHU3M2U1XHU3M2Q2XHU3''@;'; + put 'put ''M2JjXHU3M2U3XHU3M2UzXHU3M2U5XHU3M2RjXHU3M2QyXHU3M2RiXHU3M2Q0XHU3M2RkXHU3M2RhXHU3M2Q3XHU3M2Q4XHU3M2U4XHU3NGRlXHU3NGRmXHU3NGY0XHU3NGY1XHU3NTIxXHU3NTViXHU3NTVmXHU3NWIwXHU3NWMxXHU3NWJiXHU3NWM0XHU3NWMwXHU3NWJmXHU3NWI2XHU3NWJh''@;'; + put 'put ''XHU3NjhhXHU3NmM5XHU3NzFkXHU3NzFiXHU3NzEwXHU3NzEzXHU3NzEyXHU3NzIzXHU3NzExXHU3NzE1XHU3NzE5XHU3NzFhXHU3NzIyXHU3NzI3XHU3ODIzXHU3ODJjXHU3ODIyXHU3ODM1XHU3ODJmXHU3ODI4XHU3ODJlXHU3ODJiXHU3ODIxXHU3ODI5XHU3ODMzXHU3ODJhXHU3ODMxXHU3''@;'; + put 'put ''OTU0XHU3OTViXHU3OTRmXHU3OTVjXHU3OTUzXHU3OTUyXHU3OTUxXHU3OWViXHU3OWVjXHU3OWUwXHU3OWVlXHU3OWVkXHU3OWVhXHU3OWRjXHU3OWRlXHU3OWRkXHU3YTg2XHU3YTg5XHU3YTg1XHU3YThiXHU3YThjXHU3YThhXHU3YTg3XHU3YWQ4XHU3YjEwXHVmZmZkIi5zcGxpdCgiIiks''@;'; + put 'put ''RT0wO0UhPUJbMjEwXS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMTBdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIxMF1bRV1dPTUzNzYwK0UsTFs1Mzc2MCtFXT1CWzIxMF1bRV0pO2ZvcihCWzIxMV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1N2IwNFx1N2IxM1x1N2IwNVx1N2IwZlx1N2IwOFx1N2IwYVx1N2IwZVx1N2IwOVx1N2IxMlx1N2M4NFx1N2M5MVx1N2M4YVx1N2M4Y1x1N2M4OFx1N2M4ZFx1N2M4NVx1N2QxZVx1N2QxZFx1N2QxMVx1N2QwZVx1N2QxOFx1N2QxNlx1N2QxM1x1N2QxZlx1N2QxMlx1N2QwZlx1N2Qw''@;'; + put 'put ''Y1x1N2Y1Y1x1N2Y2MVx1N2Y1ZVx1N2Y2MFx1N2Y1ZFx1N2Y1Ylx1N2Y5Nlx1N2Y5Mlx1N2ZjM1x1N2ZjMlx1N2ZjMFx1ODAxNlx1ODAzZVx1ODAzOVx1ODBmYVx1ODBmMlx1ODBmOVx1ODBmNVx1ODEwMVx1ODBmYlx1ODEwMFx1ODIwMVx1ODIyZlx1ODIyNVx1ODMzM1x1ODMyZFx1ODM0NFx1''@;'; + put 'put ''ODMxOVx1ODM1MVx1ODMyNVx1ODM1Nlx1ODMzZlx1ODM0MVx1ODMyNlx1ODMxY1x1ODMyMlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ODM0Mlx1ODM0ZVx1ODMxYlx1ODMyYVx1ODMwOFx1ODMzY1x1ODM0ZFx1ODMxNlx1ODMyNFx1ODMyMFx1ODMzN1x1ODMyZlx1''@;'; + put 'put ''ODMyOVx1ODM0N1x1ODM0NVx1ODM0Y1x1ODM1M1x1ODMxZVx1ODMyY1x1ODM0Ylx1ODMyN1x1ODM0OFx1ODY1M1x1ODY1Mlx1ODZhMlx1ODZhOFx1ODY5Nlx1ODY4ZFx1ODY5MVx1ODY5ZVx1ODY4N1x1ODY5N1x1ODY4Nlx1ODY4Ylx1ODY5YVx1ODY4NVx1ODZhNVx1ODY5OVx1ODZhMVx1ODZh''@;'; + put 'put ''N1x1ODY5NVx1ODY5OFx1ODY4ZVx1ODY5ZFx1ODY5MFx1ODY5NFx1ODg0M1x1ODg0NFx1ODg2ZFx1ODg3NVx1ODg3Nlx1ODg3Mlx1ODg4MFx1ODg3MVx1ODg3Zlx1ODg2Zlx1ODg4M1x1ODg3ZVx1ODg3NFx1ODg3Y1x1OGExMlx1OGM0N1x1OGM1N1x1OGM3Ylx1OGNhNFx1OGNhM1x1OGQ3Nlx1''@;'; + put 'put ''OGQ3OFx1OGRiNVx1OGRiN1x1OGRiNlx1OGVkMVx1OGVkM1x1OGZmZVx1OGZmNVx1OTAwMlx1OGZmZlx1OGZmYlx1OTAwNFx1OGZmY1x1OGZmNlx1OTBkNlx1OTBlMFx1OTBkOVx1OTBkYVx1OTBlM1x1OTBkZlx1OTBlNVx1OTBkOFx1OTBkYlx1OTBkN1x1OTBkY1x1OTBlNFx1OTE1MFx1ZmZm''@;'; + put 'put ''ZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIxMV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjExXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMTFdW0VdXT01NDAxNitFLExbNTQwMTYrRV09QlsyMTFdW0VdKTtmb3IoQlsyMTJdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdTkxNGVcdTkxNGZcdTkxZDVcdTkxZTJcdTkxZGFcdTk2NWNcdTk2NWZcdTk2YmNcdTk4ZTNcdTlhZGZcdTliMmZcdTRlN2ZcdTUwNzBcdTUwNmFcdTUwNjFcdTUwNWVcdTUwNjBcdTUwNTNcdTUwNGJcdTUwNWRcdTUwNzJcdTUwNDhcdTUwNGRcdTUwNDFcdTUw''@;'; + put 'put ''NWJcdTUwNGFcdTUwNjJcdTUwMTVcdTUwNDVcdTUwNWZcdTUwNjlcdTUwNmJcdTUwNjNcdTUwNjRcdTUwNDZcdTUwNDBcdTUwNmVcdTUwNzNcdTUwNTdcdTUwNTFcdTUxZDBcdTUyNmJcdTUyNmRcdTUyNmNcdTUyNmVcdTUyZDZcdTUyZDNcdTUzMmRcdTUzOWNcdTU1NzVcdTU1NzZcdTU1M2Nc''@;'; + put 'put ''dTU1NGRcdTU1NTBcdTU1MzRcdTU1MmFcdTU1NTFcdTU1NjJcdTU1MzZcdTU1MzVcdTU1MzBcdTU1NTJcdTU1NDVcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTU1MGNcdTU1MzJcdTU1NjVcdTU1NGVcdTU1MzlcdTU1NDhcdTU1MmRcdTU1M2JcdTU1NDBcdTU1NGJc''@;'; + put 'put ''dTU3MGFcdTU3MDdcdTU3ZmJcdTU4MTRcdTU3ZTJcdTU3ZjZcdTU3ZGNcdTU3ZjRcdTU4MDBcdTU3ZWRcdTU3ZmRcdTU4MDhcdTU3ZjhcdTU4MGJcdTU3ZjNcdTU3Y2ZcdTU4MDdcdTU3ZWVcdTU3ZTNcdTU3ZjJcdTU3ZTVcdTU3ZWNcdTU3ZTFcdTU4MGVcdTU3ZmNcdTU4MTBcdTU3ZTdcdTU4''@;'; + put 'put ''MDFcdTU4MGNcdTU3ZjFcdTU3ZTlcdTU3ZjBcdTU4MGRcdTU4MDRcdTU5NWNcdTVhNjBcdTVhNThcdTVhNTVcdTVhNjdcdTVhNWVcdTVhMzhcdTVhMzVcdTVhNmRcdTVhNTBcdTVhNWZcdTVhNjVcdTVhNmNcdTVhNTNcdTVhNjRcdTVhNTdcdTVhNDNcdTVhNWRcdTVhNTJcdTVhNDRcdTVhNWJc''@;'; + put 'put ''dTVhNDhcdTVhOGVcdTVhM2VcdTVhNGRcdTVhMzlcdTVhNGNcdTVhNzBcdTVhNjlcdTVhNDdcdTVhNTFcdTVhNTZcdTVhNDJcdTVhNWNcdTViNzJcdTViNmVcdTViYzFcdTViYzBcdTVjNTlcdTVkMWVcdTVkMGJcdTVkMWRcdTVkMWFcdTVkMjBcdTVkMGNcdTVkMjhcdTVkMGRcdTVkMjZcdTVk''@;'; + put 'put ''MjVcdTVkMGZcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMTJdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIxMl1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjEyXVtFXV09NTQyNzIrRSxMWzU0MjcyK0VdPUJbMjEyXVtFXSk7Zm9yKEJbMjEzXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1ZDMwXHU1ZDEyXHU1ZDIzXHU1ZDFmXHU1ZDJlXHU1ZTNlXHU1ZTM0XHU1ZWIxXHU1ZWI0XHU1ZWI5XHU1ZWIyXHU1ZWIzXHU1ZjM2XHU1ZjM4XHU1ZjliXHU1Zjk2XHU1ZjlmXHU2MDhhXHU2MDkwXHU2MDg2XHU2MGJlXHU2MGIwXHU2''@;'; + put 'put ''MGJhXHU2MGQzXHU2MGQ0XHU2MGNmXHU2MGU0XHU2MGQ5XHU2MGRkXHU2MGM4XHU2MGIxXHU2MGRiXHU2MGI3XHU2MGNhXHU2MGJmXHU2MGMzXHU2MGNkXHU2MGMwXHU2MzMyXHU2MzY1XHU2MzhhXHU2MzgyXHU2MzdkXHU2M2JkXHU2MzllXHU2M2FkXHU2MzlkXHU2Mzk3XHU2M2FiXHU2Mzhl''@;'; + put 'put ''XHU2MzZmXHU2Mzg3XHU2MzkwXHU2MzZlXHU2M2FmXHU2Mzc1XHU2MzljXHU2MzZkXHU2M2FlXHU2MzdjXHU2M2E0XHU2MzNiXHU2MzlmXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2Mzc4XHU2Mzg1XHU2MzgxXHU2MzkxXHU2MzhkXHU2MzcwXHU2NTUzXHU2NWNk''@;'; + put 'put ''XHU2NjY1XHU2NjYxXHU2NjViXHU2NjU5XHU2NjVjXHU2NjYyXHU2NzE4XHU2ODc5XHU2ODg3XHU2ODkwXHU2ODljXHU2ODZkXHU2ODZlXHU2OGFlXHU2OGFiXHU2OTU2XHU2ODZmXHU2OGEzXHU2OGFjXHU2OGE5XHU2ODc1XHU2ODc0XHU2OGIyXHU2ODhmXHU2ODc3XHU2ODkyXHU2ODdjXHU2''@;'; + put 'put ''ODZiXHU2ODcyXHU2OGFhXHU2ODgwXHU2ODcxXHU2ODdlXHU2ODliXHU2ODk2XHU2ODhiXHU2OGEwXHU2ODg5XHU2OGE0XHU2ODc4XHU2ODdiXHU2ODkxXHU2ODhjXHU2ODhhXHU2ODdkXHU2YjM2XHU2YjMzXHU2YjM3XHU2YjM4XHU2YjkxXHU2YjhmXHU2YjhkXHU2YjhlXHU2YjhjXHU2YzJh''@;'; + put 'put ''XHU2ZGMwXHU2ZGFiXHU2ZGI0XHU2ZGIzXHU2ZTc0XHU2ZGFjXHU2ZGU5XHU2ZGUyXHU2ZGI3XHU2ZGY2XHU2ZGQ0XHU2ZTAwXHU2ZGM4XHU2ZGUwXHU2ZGRmXHU2ZGQ2XHU2ZGJlXHU2ZGU1XHU2ZGRjXHU2ZGRkXHU2ZGRiXHU2ZGY0XHU2ZGNhXHU2ZGJkXHU2ZGVkXHU2ZGYwXHU2ZGJhXHU2''@;'; + put 'put ''ZGQ1XHU2ZGMyXHU2ZGNmXHU2ZGM5XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjEzXS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMTNdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIxM11bRV1dPTU0NTI4K0UsTFs1NDUyOCtFXT1CWzIxM11bRV0pO2ZvcihCWzIxNF09Ilx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NmRkMFx1NmRmMlx1NmRkM1x1NmRmZFx1NmRkN1x1NmRjZFx1NmRlM1x1NmRiYlx1NzBmYVx1NzEwZFx1NzBmN1x1NzExN1x1NzBmNFx1NzEwY1x1NzBmMFx1NzEwNFx1NzBmM1x1NzExMFx1NzBmY1x1NzBmZlx1''@;'; + put 'put ''NzEwNlx1NzExM1x1NzEwMFx1NzBmOFx1NzBmNlx1NzEwYlx1NzEwMlx1NzEwZVx1NzI3ZVx1NzI3Ylx1NzI3Y1x1NzI3Zlx1NzMxZFx1NzMxN1x1NzMwN1x1NzMxMVx1NzMxOFx1NzMwYVx1NzMwOFx1NzJmZlx1NzMwZlx1NzMxZVx1NzM4OFx1NzNmNlx1NzNmOFx1NzNmNVx1NzQwNFx1NzQw''@;'; + put 'put ''MVx1NzNmZFx1NzQwN1x1NzQwMFx1NzNmYVx1NzNmY1x1NzNmZlx1NzQwY1x1NzQwYlx1NzNmNFx1NzQwOFx1NzU2NFx1NzU2M1x1NzVjZVx1NzVkMlx1NzVjZlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NzVjYlx1NzVjY1x1NzVkMVx1NzVkMFx1NzY4Zlx1NzY4''@;'; + put 'put ''OVx1NzZkM1x1NzczOVx1NzcyZlx1NzcyZFx1NzczMVx1NzczMlx1NzczNFx1NzczM1x1NzczZFx1NzcyNVx1NzczYlx1NzczNVx1Nzg0OFx1Nzg1Mlx1Nzg0OVx1Nzg0ZFx1Nzg0YVx1Nzg0Y1x1NzgyNlx1Nzg0NVx1Nzg1MFx1Nzk2NFx1Nzk2N1x1Nzk2OVx1Nzk2YVx1Nzk2M1x1Nzk2Ylx1''@;'; + put 'put ''Nzk2MVx1NzliYlx1NzlmYVx1NzlmOFx1NzlmNlx1NzlmN1x1N2E4Zlx1N2E5NFx1N2E5MFx1N2IzNVx1N2I0N1x1N2IzNFx1N2IyNVx1N2IzMFx1N2IyMlx1N2IyNFx1N2IzM1x1N2IxOFx1N2IyYVx1N2IxZFx1N2IzMVx1N2IyYlx1N2IyZFx1N2IyZlx1N2IzMlx1N2IzOFx1N2IxYVx1N2Iy''@;'; + put 'put ''M1x1N2M5NFx1N2M5OFx1N2M5Nlx1N2NhM1x1N2QzNVx1N2QzZFx1N2QzOFx1N2QzNlx1N2QzYVx1N2Q0NVx1N2QyY1x1N2QyOVx1N2Q0MVx1N2Q0N1x1N2QzZVx1N2QzZlx1N2Q0YVx1N2QzYlx1N2QyOFx1N2Y2M1x1N2Y5NVx1N2Y5Y1x1N2Y5ZFx1N2Y5Ylx1N2ZjYVx1N2ZjYlx1N2ZjZFx1''@;'; + put 'put ''N2ZkMFx1N2ZkMVx1N2ZjN1x1N2ZjZlx1N2ZjOVx1ODAxZlx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIxNF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjE0XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMTRdW0VdXT01NDc4NCtFLExbNTQ3ODQrRV09QlsyMTRdW0VdKTtmb3IoQlsyMTVd''@;'; + put 'put ''PSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTgwMWVcdTgwMWJcdTgwNDdcdTgwNDNcdTgwNDhcdTgxMThcdTgxMjVcdTgxMTlcdTgxMWJcdTgxMmRcdTgxMWZcdTgxMmNcdTgxMWVcdTgxMjFcdTgxMTVcdTgxMjdcdTgxMWRcdTgxMjJc''@;'; + put 'put ''dTgyMTFcdTgyMzhcdTgyMzNcdTgyM2FcdTgyMzRcdTgyMzJcdTgyNzRcdTgzOTBcdTgzYTNcdTgzYThcdTgzOGRcdTgzN2FcdTgzNzNcdTgzYTRcdTgzNzRcdTgzOGZcdTgzODFcdTgzOTVcdTgzOTlcdTgzNzVcdTgzOTRcdTgzYTlcdTgzN2RcdTgzODNcdTgzOGNcdTgzOWRcdTgzOWJcdTgz''@;'; + put 'put ''YWFcdTgzOGJcdTgzN2VcdTgzYTVcdTgzYWZcdTgzODhcdTgzOTdcdTgzYjBcdTgzN2ZcdTgzYTZcdTgzODdcdTgzYWVcdTgzNzZcdTgzOWFcdTg2NTlcdTg2NTZcdTg2YmZcdTg2YjdcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTg2YzJcdTg2YzFcdTg2YzVcdTg2''@;'; + put 'put ''YmFcdTg2YjBcdTg2YzhcdTg2YjlcdTg2YjNcdTg2YjhcdTg2Y2NcdTg2YjRcdTg2YmJcdTg2YmNcdTg2YzNcdTg2YmRcdTg2YmVcdTg4NTJcdTg4ODlcdTg4OTVcdTg4YThcdTg4YTJcdTg4YWFcdTg4OWFcdTg4OTFcdTg4YTFcdTg4OWZcdTg4OThcdTg4YTdcdTg4OTlcdTg4OWJcdTg4OTdc''@;'; + put 'put ''dTg4YTRcdTg4YWNcdTg4OGNcdTg4OTNcdTg4OGVcdTg5ODJcdTg5ZDZcdTg5ZDlcdTg5ZDVcdThhMzBcdThhMjdcdThhMmNcdThhMWVcdThjMzlcdThjM2JcdThjNWNcdThjNWRcdThjN2RcdThjYTVcdThkN2RcdThkN2JcdThkNzlcdThkYmNcdThkYzJcdThkYjlcdThkYmZcdThkYzFcdThl''@;'; + put 'put ''ZDhcdThlZGVcdThlZGRcdThlZGNcdThlZDdcdThlZTBcdThlZTFcdTkwMjRcdTkwMGJcdTkwMTFcdTkwMWNcdTkwMGNcdTkwMjFcdTkwZWZcdTkwZWFcdTkwZjBcdTkwZjRcdTkwZjJcdTkwZjNcdTkwZDRcdTkwZWJcdTkwZWNcdTkwZTlcdTkxNTZcdTkxNThcdTkxNWFcdTkxNTNcdTkxNTVc''@;'; + put 'put ''dTkxZWNcdTkxZjRcdTkxZjFcdTkxZjNcdTkxZjhcdTkxZTRcdTkxZjlcdTkxZWFcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMTVdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIxNV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjE1XVtFXV09NTUwNDArRSxMWzU1MDQwK0VdPUJbMjE1XVtF''@;'; + put 'put ''XSk7Zm9yKEJbMjE2XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5MWViXHU5MWY3XHU5MWU4XHU5MWVlXHU5NTdhXHU5NTg2XHU5NTg4XHU5NjdjXHU5NjZkXHU5NjZiXHU5NjcxXHU5NjZmXHU5NmJmXHU5NzZhXHU5ODA0XHU5OGU1''@;'; + put 'put ''XHU5OTk3XHU1MDliXHU1MDk1XHU1MDk0XHU1MDllXHU1MDhiXHU1MGEzXHU1MDgzXHU1MDhjXHU1MDhlXHU1MDlkXHU1MDY4XHU1MDljXHU1MDkyXHU1MDgyXHU1MDg3XHU1MTVmXHU1MWQ0XHU1MzEyXHU1MzExXHU1M2E0XHU1M2E3XHU1NTkxXHU1NWE4XHU1NWE1XHU1NWFkXHU1NTc3XHU1''@;'; + put 'put ''NjQ1XHU1NWEyXHU1NTkzXHU1NTg4XHU1NThmXHU1NWI1XHU1NTgxXHU1NWEzXHU1NTkyXHU1NWE0XHU1NTdkXHU1NThjXHU1NWE2XHU1NTdmXHU1NTk1XHU1NWExXHU1NThlXHU1NzBjXHU1ODI5XHU1ODM3XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1ODE5XHU1''@;'; + put 'put ''ODFlXHU1ODI3XHU1ODIzXHU1ODI4XHU1N2Y1XHU1ODQ4XHU1ODI1XHU1ODFjXHU1ODFiXHU1ODMzXHU1ODNmXHU1ODM2XHU1ODJlXHU1ODM5XHU1ODM4XHU1ODJkXHU1ODJjXHU1ODNiXHU1OTYxXHU1YWFmXHU1YTk0XHU1YTlmXHU1YTdhXHU1YWEyXHU1YTllXHU1YTc4XHU1YWE2XHU1YTdj''@;'; + put 'put ''XHU1YWE1XHU1YWFjXHU1YTk1XHU1YWFlXHU1YTM3XHU1YTg0XHU1YThhXHU1YTk3XHU1YTgzXHU1YThiXHU1YWE5XHU1YTdiXHU1YTdkXHU1YThjXHU1YTljXHU1YThmXHU1YTkzXHU1YTlkXHU1YmVhXHU1YmNkXHU1YmNiXHU1YmQ0XHU1YmQxXHU1YmNhXHU1YmNlXHU1YzBjXHU1YzMwXHU1''@;'; + put 'put ''ZDM3XHU1ZDQzXHU1ZDZiXHU1ZDQxXHU1ZDRiXHU1ZDNmXHU1ZDM1XHU1ZDUxXHU1ZDRlXHU1ZDU1XHU1ZDMzXHU1ZDNhXHU1ZDUyXHU1ZDNkXHU1ZDMxXHU1ZDU5XHU1ZDQyXHU1ZDM5XHU1ZDQ5XHU1ZDM4XHU1ZDNjXHU1ZDMyXHU1ZDM2XHU1ZDQwXHU1ZDQ1XHU1ZTQ0XHU1ZTQxXHU1ZjU4''@;'; + put 'put ''XHU1ZmE2XHU1ZmE1XHU1ZmFiXHU2MGM5XHU2MGI5XHU2MGNjXHU2MGUyXHU2MGNlXHU2MGM0XHU2MTE0XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjE2XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMTZdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIxNl1bRV1dPTU1Mjk2K0UsTFs1NTI5''@;'; + put 'put ''NitFXT1CWzIxNl1bRV0pO2ZvcihCWzIxN109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NjBmMlx1NjEwYVx1NjExNlx1NjEwNVx1NjBmNVx1NjExM1x1NjBmOFx1NjBmY1x1NjBmZVx1NjBjMVx1NjEwM1x1NjExOFx1NjExZFx1NjEx''@;'; + put 'put ''MFx1NjBmZlx1NjEwNFx1NjEwYlx1NjI0YVx1NjM5NFx1NjNiMVx1NjNiMFx1NjNjZVx1NjNlNVx1NjNlOFx1NjNlZlx1NjNjM1x1NjQ5ZFx1NjNmM1x1NjNjYVx1NjNlMFx1NjNmNlx1NjNkNVx1NjNmMlx1NjNmNVx1NjQ2MVx1NjNkZlx1NjNiZVx1NjNkZFx1NjNkY1x1NjNjNFx1NjNkOFx1''@;'; + put 'put ''NjNkM1x1NjNjMlx1NjNjN1x1NjNjY1x1NjNjYlx1NjNjOFx1NjNmMFx1NjNkN1x1NjNkOVx1NjUzMlx1NjU2N1x1NjU2YVx1NjU2NFx1NjU1Y1x1NjU2OFx1NjU2NVx1NjU4Y1x1NjU5ZFx1NjU5ZVx1NjVhZVx1NjVkMFx1NjVkMlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1NjY3Y1x1NjY2Y1x1NjY3Ylx1NjY4MFx1NjY3MVx1NjY3OVx1NjY2YVx1NjY3Mlx1NjcwMVx1NjkwY1x1NjhkM1x1NjkwNFx1NjhkY1x1NjkyYVx1NjhlY1x1NjhlYVx1NjhmMVx1NjkwZlx1NjhkNlx1NjhmN1x1NjhlYlx1NjhlNFx1NjhmNlx1NjkxM1x1NjkxMFx1NjhmM1x1Njhl''@;'; + put 'put ''MVx1NjkwN1x1NjhjY1x1NjkwOFx1Njk3MFx1NjhiNFx1NjkxMVx1NjhlZlx1NjhjNlx1NjkxNFx1NjhmOFx1NjhkMFx1NjhmZFx1NjhmY1x1NjhlOFx1NjkwYlx1NjkwYVx1NjkxN1x1NjhjZVx1NjhjOFx1NjhkZFx1NjhkZVx1NjhlNlx1NjhmNFx1NjhkMVx1NjkwNlx1NjhkNFx1NjhlOVx1''@;'; + put 'put ''NjkxNVx1NjkyNVx1NjhjN1x1NmIzOVx1NmIzYlx1NmIzZlx1NmIzY1x1NmI5NFx1NmI5N1x1NmI5OVx1NmI5NVx1NmJiZFx1NmJmMFx1NmJmMlx1NmJmM1x1NmMzMFx1NmRmY1x1NmU0Nlx1NmU0N1x1NmUxZlx1NmU0OVx1NmU4OFx1NmUzY1x1NmUzZFx1NmU0NVx1NmU2Mlx1NmUyYlx1NmUz''@;'; + put 'put ''Zlx1NmU0MVx1NmU1ZFx1NmU3M1x1NmUxY1x1NmUzM1x1NmU0Ylx1NmU0MFx1NmU1MVx1NmUzYlx1NmUwM1x1NmUyZVx1NmU1ZVx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIxN10ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjE3XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMTddW0VdXT01''@;'; + put 'put ''NTU1MitFLExbNTU1NTIrRV09QlsyMTddW0VdKTtmb3IoQlsyMThdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTZlNjhcdTZlNWNcdTZlNjFcdTZlMzFcdTZlMjhcdTZlNjBcdTZlNzFcdTZlNmJcdTZlMzlcdTZlMjJcdTZlMzBcdTZl''@;'; + put 'put ''NTNcdTZlNjVcdTZlMjdcdTZlNzhcdTZlNjRcdTZlNzdcdTZlNTVcdTZlNzlcdTZlNTJcdTZlNjZcdTZlMzVcdTZlMzZcdTZlNWFcdTcxMjBcdTcxMWVcdTcxMmZcdTcwZmJcdTcxMmVcdTcxMzFcdTcxMjNcdTcxMjVcdTcxMjJcdTcxMzJcdTcxMWZcdTcxMjhcdTcxM2FcdTcxMWJcdTcyNGJc''@;'; + put 'put ''dTcyNWFcdTcyODhcdTcyODlcdTcyODZcdTcyODVcdTcyOGJcdTczMTJcdTczMGJcdTczMzBcdTczMjJcdTczMzFcdTczMzNcdTczMjdcdTczMzJcdTczMmRcdTczMjZcdTczMjNcdTczMzVcdTczMGNcdTc0MmVcdTc0MmNcdTc0MzBcdTc0MmJcdTc0MTZcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdTc0MWFcdTc0MjFcdTc0MmRcdTc0MzFcdTc0MjRcdTc0MjNcdTc0MWRcdTc0MjlcdTc0MjBcdTc0MzJcdTc0ZmJcdTc1MmZcdTc1NmZcdTc1NmNcdTc1ZTdcdTc1ZGFcdTc1ZTFcdTc1ZTZcdTc1ZGRcdTc1ZGZcdTc1ZTRcdTc1ZDdcdTc2OTVcdTc2OTJcdTc2''@;'; + put 'put ''ZGFcdTc3NDZcdTc3NDdcdTc3NDRcdTc3NGRcdTc3NDVcdTc3NGFcdTc3NGVcdTc3NGJcdTc3NGNcdTc3ZGVcdTc3ZWNcdTc4NjBcdTc4NjRcdTc4NjVcdTc4NWNcdTc4NmRcdTc4NzFcdTc4NmFcdTc4NmVcdTc4NzBcdTc4NjlcdTc4NjhcdTc4NWVcdTc4NjJcdTc5NzRcdTc5NzNcdTc5NzJc''@;'; + put 'put ''dTc5NzBcdTdhMDJcdTdhMGFcdTdhMDNcdTdhMGNcdTdhMDRcdTdhOTlcdTdhZTZcdTdhZTRcdTdiNGFcdTdiM2JcdTdiNDRcdTdiNDhcdTdiNGNcdTdiNGVcdTdiNDBcdTdiNThcdTdiNDVcdTdjYTJcdTdjOWVcdTdjYThcdTdjYTFcdTdkNThcdTdkNmZcdTdkNjNcdTdkNTNcdTdkNTZcdTdk''@;'; + put 'put ''NjdcdTdkNmFcdTdkNGZcdTdkNmRcdTdkNWNcdTdkNmJcdTdkNTJcdTdkNTRcdTdkNjlcdTdkNTFcdTdkNWZcdTdkNGVcdTdmM2VcdTdmM2ZcdTdmNjVcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMThdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIxOF1bRV0uY2hhckNvZGVBdCgwKSYmKG1l''@;'; + put 'put ''W0JbMjE4XVtFXV09NTU4MDgrRSxMWzU1ODA4K0VdPUJbMjE4XVtFXSk7Zm9yKEJbMjE5XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3ZjY2XHU3ZmEyXHU3ZmEwXHU3ZmExXHU3ZmQ3XHU4MDUxXHU4MDRmXHU4MDUwXHU4MGZlXHU4''@;'; + put 'put ''MGQ0XHU4MTQzXHU4MTRhXHU4MTUyXHU4MTRmXHU4MTQ3XHU4MTNkXHU4MTRkXHU4MTNhXHU4MWU2XHU4MWVlXHU4MWY3XHU4MWY4XHU4MWY5XHU4MjA0XHU4MjNjXHU4MjNkXHU4MjNmXHU4Mjc1XHU4MzNiXHU4M2NmXHU4M2Y5XHU4NDIzXHU4M2MwXHU4M2U4XHU4NDEyXHU4M2U3XHU4M2U0''@;'; + put 'put ''XHU4M2ZjXHU4M2Y2XHU4NDEwXHU4M2M2XHU4M2M4XHU4M2ViXHU4M2UzXHU4M2JmXHU4NDAxXHU4M2RkXHU4M2U1XHU4M2Q4XHU4M2ZmXHU4M2UxXHU4M2NiXHU4M2NlXHU4M2Q2XHU4M2Y1XHU4M2M5XHU4NDA5XHU4NDBmXHU4M2RlXHU4NDExXHU4NDA2XHU4M2MyXHU4M2YzXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4M2Q1XHU4M2ZhXHU4M2M3XHU4M2QxXHU4M2VhXHU4NDEzXHU4M2MzXHU4M2VjXHU4M2VlXHU4M2M0XHU4M2ZiXHU4M2Q3XHU4M2UyXHU4NDFiXHU4M2RiXHU4M2ZlXHU4NmQ4XHU4NmUyXHU4NmU2XHU4NmQzXHU4NmUzXHU4NmRhXHU4''@;'; + put 'put ''NmVhXHU4NmRkXHU4NmViXHU4NmRjXHU4NmVjXHU4NmU5XHU4NmQ3XHU4NmU4XHU4NmQxXHU4ODQ4XHU4ODU2XHU4ODU1XHU4OGJhXHU4OGQ3XHU4OGI5XHU4OGI4XHU4OGMwXHU4OGJlXHU4OGI2XHU4OGJjXHU4OGI3XHU4OGJkXHU4OGIyXHU4OTAxXHU4OGM5XHU4OTk1XHU4OTk4XHU4OTk3''@;'; + put 'put ''XHU4OWRkXHU4OWRhXHU4OWRiXHU4YTRlXHU4YTRkXHU4YTM5XHU4YTU5XHU4YTQwXHU4YTU3XHU4YTU4XHU4YTQ0XHU4YTQ1XHU4YTUyXHU4YTQ4XHU4YTUxXHU4YTRhXHU4YTRjXHU4YTRmXHU4YzVmXHU4YzgxXHU4YzgwXHU4Y2JhXHU4Y2JlXHU4Y2IwXHU4Y2I5XHU4Y2I1XHU4ZDg0XHU4''@;'; + put 'put ''ZDgwXHU4ZDg5XHU4ZGQ4XHU4ZGQzXHU4ZGNkXHU4ZGM3XHU4ZGQ2XHU4ZGRjXHU4ZGNmXHU4ZGQ1XHU4ZGQ5XHU4ZGM4XHU4ZGQ3XHU4ZGM1XHU4ZWVmXHU4ZWY3XHU4ZWZhXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjE5XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMTldW0VdLmNoYXJD''@;'; + put 'put ''b2RlQXQoMCkmJihtZVtCWzIxOV1bRV1dPTU2MDY0K0UsTFs1NjA2NCtFXT1CWzIxOV1bRV0pO2ZvcihCWzIyMF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OGVmOVx1OGVlNlx1OGVlZVx1OGVlNVx1OGVmNVx1OGVlN1x1OGVlOFx1''@;'; + put 'put ''OGVmNlx1OGVlYlx1OGVmMVx1OGVlY1x1OGVmNFx1OGVlOVx1OTAyZFx1OTAzNFx1OTAyZlx1OTEwNlx1OTEyY1x1OTEwNFx1OTBmZlx1OTBmY1x1OTEwOFx1OTBmOVx1OTBmYlx1OTEwMVx1OTEwMFx1OTEwN1x1OTEwNVx1OTEwM1x1OTE2MVx1OTE2NFx1OTE1Zlx1OTE2Mlx1OTE2MFx1OTIw''@;'; + put 'put ''MVx1OTIwYVx1OTIyNVx1OTIwM1x1OTIxYVx1OTIyNlx1OTIwZlx1OTIwY1x1OTIwMFx1OTIxMlx1OTFmZlx1OTFmZFx1OTIwNlx1OTIwNFx1OTIyN1x1OTIwMlx1OTIxY1x1OTIyNFx1OTIxOVx1OTIxN1x1OTIwNVx1OTIxNlx1OTU3Ylx1OTU4ZFx1OTU4Y1x1OTU5MFx1OTY4N1x1OTY3ZVx1''@;'; + put 'put ''OTY4OFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OTY4OVx1OTY4M1x1OTY4MFx1OTZjMlx1OTZjOFx1OTZjM1x1OTZmMVx1OTZmMFx1OTc2Y1x1OTc3MFx1OTc2ZVx1OTgwN1x1OThhOVx1OThlYlx1OWNlNlx1OWVmOVx1NGU4M1x1NGU4NFx1NGViNlx1NTBiZFx1''@;'; + put 'put ''NTBiZlx1NTBjNlx1NTBhZVx1NTBjNFx1NTBjYVx1NTBiNFx1NTBjOFx1NTBjMlx1NTBiMFx1NTBjMVx1NTBiYVx1NTBiMVx1NTBjYlx1NTBjOVx1NTBiNlx1NTBiOFx1NTFkN1x1NTI3YVx1NTI3OFx1NTI3Ylx1NTI3Y1x1NTVjM1x1NTVkYlx1NTVjY1x1NTVkMFx1NTVjYlx1NTVjYVx1NTVk''@;'; + put 'put ''ZFx1NTVjMFx1NTVkNFx1NTVjNFx1NTVlOVx1NTViZlx1NTVkMlx1NTU4ZFx1NTVjZlx1NTVkNVx1NTVlMlx1NTVkNlx1NTVjOFx1NTVmMlx1NTVjZFx1NTVkOVx1NTVjMlx1NTcxNFx1NTg1M1x1NTg2OFx1NTg2NFx1NTg0Zlx1NTg0ZFx1NTg0OVx1NTg2Zlx1NTg1NVx1NTg0ZVx1NTg1ZFx1''@;'; + put 'put ''NTg1OVx1NTg2NVx1NTg1Ylx1NTgzZFx1NTg2M1x1NTg3MVx1NThmY1x1NWFjN1x1NWFjNFx1NWFjYlx1NWFiYVx1NWFiOFx1NWFiMVx1NWFiNVx1NWFiMFx1NWFiZlx1NWFjOFx1NWFiYlx1NWFjNlx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIyMF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJb''@;'; + put 'put ''MjIwXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMjBdW0VdXT01NjMyMCtFLExbNTYzMjArRV09QlsyMjBdW0VdKTtmb3IoQlsyMjFdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTVhYjdcdTVhYzBcdTVhY2FcdTVhYjRcdTVhYjZc''@;'; + put 'put ''dTVhY2RcdTVhYjlcdTVhOTBcdTViZDZcdTViZDhcdTViZDlcdTVjMWZcdTVjMzNcdTVkNzFcdTVkNjNcdTVkNGFcdTVkNjVcdTVkNzJcdTVkNmNcdTVkNWVcdTVkNjhcdTVkNjdcdTVkNjJcdTVkZjBcdTVlNGZcdTVlNGVcdTVlNGFcdTVlNGRcdTVlNGJcdTVlYzVcdTVlY2NcdTVlYzZcdTVl''@;'; + put 'put ''Y2JcdTVlYzdcdTVmNDBcdTVmYWZcdTVmYWRcdTYwZjdcdTYxNDlcdTYxNGFcdTYxMmJcdTYxNDVcdTYxMzZcdTYxMzJcdTYxMmVcdTYxNDZcdTYxMmZcdTYxNGZcdTYxMjlcdTYxNDBcdTYyMjBcdTkxNjhcdTYyMjNcdTYyMjVcdTYyMjRcdTYzYzVcdTYzZjFcdTYzZWJcdTY0MTBcdTY0MTJc''@;'; + put 'put ''dTY0MDlcdTY0MjBcdTY0MjRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTY0MzNcdTY0NDNcdTY0MWZcdTY0MTVcdTY0MThcdTY0MzlcdTY0MzdcdTY0MjJcdTY0MjNcdTY0MGNcdTY0MjZcdTY0MzBcdTY0MjhcdTY0NDFcdTY0MzVcdTY0MmZcdTY0MGFcdTY0MWFc''@;'; + put 'put ''dTY0NDBcdTY0MjVcdTY0MjdcdTY0MGJcdTYzZTdcdTY0MWJcdTY0MmVcdTY0MjFcdTY0MGVcdTY1NmZcdTY1OTJcdTY1ZDNcdTY2ODZcdTY2OGNcdTY2OTVcdTY2OTBcdTY2OGJcdTY2OGFcdTY2OTlcdTY2OTRcdTY2NzhcdTY3MjBcdTY5NjZcdTY5NWZcdTY5MzhcdTY5NGVcdTY5NjJcdTY5''@;'; + put 'put ''NzFcdTY5M2ZcdTY5NDVcdTY5NmFcdTY5MzlcdTY5NDJcdTY5NTdcdTY5NTlcdTY5N2FcdTY5NDhcdTY5NDlcdTY5MzVcdTY5NmNcdTY5MzNcdTY5M2RcdTY5NjVcdTY4ZjBcdTY5NzhcdTY5MzRcdTY5NjlcdTY5NDBcdTY5NmZcdTY5NDRcdTY5NzZcdTY5NThcdTY5NDFcdTY5NzRcdTY5NGNc''@;'; + put 'put ''dTY5M2JcdTY5NGJcdTY5MzdcdTY5NWNcdTY5NGZcdTY5NTFcdTY5MzJcdTY5NTJcdTY5MmZcdTY5N2JcdTY5M2NcdTZiNDZcdTZiNDVcdTZiNDNcdTZiNDJcdTZiNDhcdTZiNDFcdTZiOWJcdWZhMGRcdTZiZmJcdTZiZmNcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMjFdLmxlbmd0aDsr''@;'; + put 'put ''K0UpNjU1MzMhPT1CWzIyMV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjIxXVtFXV09NTY1NzYrRSxMWzU2NTc2K0VdPUJbMjIxXVtFXSk7Zm9yKEJbMjIyXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2YmY5XHU2YmY3XHU2YmY4''@;'; + put 'put ''XHU2ZTliXHU2ZWQ2XHU2ZWM4XHU2ZThmXHU2ZWMwXHU2ZTlmXHU2ZTkzXHU2ZTk0XHU2ZWEwXHU2ZWIxXHU2ZWI5XHU2ZWM2XHU2ZWQyXHU2ZWJkXHU2ZWMxXHU2ZTllXHU2ZWM5XHU2ZWI3XHU2ZWIwXHU2ZWNkXHU2ZWE2XHU2ZWNmXHU2ZWIyXHU2ZWJlXHU2ZWMzXHU2ZWRjXHU2ZWQ4XHU2''@;'; + put 'put ''ZTk5XHU2ZTkyXHU2ZThlXHU2ZThkXHU2ZWE0XHU2ZWExXHU2ZWJmXHU2ZWIzXHU2ZWQwXHU2ZWNhXHU2ZTk3XHU2ZWFlXHU2ZWEzXHU3MTQ3XHU3MTU0XHU3MTUyXHU3MTYzXHU3MTYwXHU3MTQxXHU3MTVkXHU3MTYyXHU3MTcyXHU3MTc4XHU3MTZhXHU3MTYxXHU3MTQyXHU3MTU4XHU3MTQz''@;'; + put 'put ''XHU3MTRiXHU3MTcwXHU3MTVmXHU3MTUwXHU3MTUzXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3MTQ0XHU3MTRkXHU3MTVhXHU3MjRmXHU3MjhkXHU3MjhjXHU3MjkxXHU3MjkwXHU3MjhlXHU3MzNjXHU3MzQyXHU3MzNiXHU3MzNhXHU3MzQwXHU3MzRhXHU3MzQ5''@;'; + put 'put ''XHU3NDQ0XHU3NDRhXHU3NDRiXHU3NDUyXHU3NDUxXHU3NDU3XHU3NDQwXHU3NDRmXHU3NDUwXHU3NDRlXHU3NDQyXHU3NDQ2XHU3NDRkXHU3NDU0XHU3NGUxXHU3NGZmXHU3NGZlXHU3NGZkXHU3NTFkXHU3NTc5XHU3NTc3XHU2OTgzXHU3NWVmXHU3NjBmXHU3NjAzXHU3NWY3XHU3NWZlXHU3''@;'; + put 'put ''NWZjXHU3NWY5XHU3NWY4XHU3NjEwXHU3NWZiXHU3NWY2XHU3NWVkXHU3NWY1XHU3NWZkXHU3Njk5XHU3NmI1XHU3NmRkXHU3NzU1XHU3NzVmXHU3NzYwXHU3NzUyXHU3NzU2XHU3NzVhXHU3NzY5XHU3NzY3XHU3NzU0XHU3NzU5XHU3NzZkXHU3N2UwXHU3ODg3XHU3ODlhXHU3ODk0XHU3ODhm''@;'; + put 'put ''XHU3ODg0XHU3ODk1XHU3ODg1XHU3ODg2XHU3OGExXHU3ODgzXHU3ODc5XHU3ODk5XHU3ODgwXHU3ODk2XHU3ODdiXHU3OTdjXHU3OTgyXHU3OTdkXHU3OTc5XHU3YTExXHU3YTE4XHU3YTE5XHU3YTEyXHU3YTE3XHU3YTE1XHU3YTIyXHU3YTEzXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJb''@;'; + put 'put ''MjIyXS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMjJdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIyMl1bRV1dPTU2ODMyK0UsTFs1NjgzMitFXT1CWzIyMl1bRV0pO2ZvcihCWzIyM109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1N2Ex''@;'; + put 'put ''Ylx1N2ExMFx1N2FhM1x1N2FhMlx1N2E5ZVx1N2FlYlx1N2I2Nlx1N2I2NFx1N2I2ZFx1N2I3NFx1N2I2OVx1N2I3Mlx1N2I2NVx1N2I3M1x1N2I3MVx1N2I3MFx1N2I2MVx1N2I3OFx1N2I3Nlx1N2I2M1x1N2NiMlx1N2NiNFx1N2NhZlx1N2Q4OFx1N2Q4Nlx1N2Q4MFx1N2Q4ZFx1N2Q3Zlx1''@;'; + put 'put ''N2Q4NVx1N2Q3YVx1N2Q4ZVx1N2Q3Ylx1N2Q4M1x1N2Q3Y1x1N2Q4Y1x1N2Q5NFx1N2Q4NFx1N2Q3ZFx1N2Q5Mlx1N2Y2ZFx1N2Y2Ylx1N2Y2N1x1N2Y2OFx1N2Y2Y1x1N2ZhNlx1N2ZhNVx1N2ZhN1x1N2ZkYlx1N2ZkY1x1ODAyMVx1ODE2NFx1ODE2MFx1ODE3N1x1ODE1Y1x1ODE2OVx1ODE1''@;'; + put 'put ''Ylx1ODE2Mlx1ODE3Mlx1NjcyMVx1ODE1ZVx1ODE3Nlx1ODE2N1x1ODE2Zlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ODE0NFx1ODE2MVx1ODIxZFx1ODI0OVx1ODI0NFx1ODI0MFx1ODI0Mlx1ODI0NVx1ODRmMVx1ODQzZlx1ODQ1Nlx1ODQ3Nlx1ODQ3OVx1ODQ4''@;'; + put 'put ''Zlx1ODQ4ZFx1ODQ2NVx1ODQ1MVx1ODQ0MFx1ODQ4Nlx1ODQ2N1x1ODQzMFx1ODQ0ZFx1ODQ3ZFx1ODQ1YVx1ODQ1OVx1ODQ3NFx1ODQ3M1x1ODQ1ZFx1ODUwN1x1ODQ1ZVx1ODQzN1x1ODQzYVx1ODQzNFx1ODQ3YVx1ODQ0M1x1ODQ3OFx1ODQzMlx1ODQ0NVx1ODQyOVx1ODNkOVx1ODQ0Ylx1''@;'; + put 'put ''ODQyZlx1ODQ0Mlx1ODQyZFx1ODQ1Zlx1ODQ3MFx1ODQzOVx1ODQ0ZVx1ODQ0Y1x1ODQ1Mlx1ODQ2Zlx1ODRjNVx1ODQ4ZVx1ODQzYlx1ODQ0N1x1ODQzNlx1ODQzM1x1ODQ2OFx1ODQ3ZVx1ODQ0NFx1ODQyYlx1ODQ2MFx1ODQ1NFx1ODQ2ZVx1ODQ1MFx1ODcwYlx1ODcwNFx1ODZmN1x1ODcw''@;'; + put 'put ''Y1x1ODZmYVx1ODZkNlx1ODZmNVx1ODc0ZFx1ODZmOFx1ODcwZVx1ODcwOVx1ODcwMVx1ODZmNlx1ODcwZFx1ODcwNVx1ODhkNlx1ODhjYlx1ODhjZFx1ODhjZVx1ODhkZVx1ODhkYlx1ODhkYVx1ODhjY1x1ODhkMFx1ODk4NVx1ODk5Ylx1ODlkZlx1ODllNVx1ODllNFx1ZmZmZCIuc3BsaXQo''@;'; + put 'put ''IiIpLEU9MDtFIT1CWzIyM10ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjIzXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMjNdW0VdXT01NzA4OCtFLExbNTcwODgrRV09QlsyMjNdW0VdKTtmb3IoQlsyMjRdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdTg5ZTFcdTg5ZTBcdTg5ZTJcdTg5ZGNcdTg5ZTZcdThhNzZcdThhODZcdThhN2ZcdThhNjFcdThhM2ZcdThhNzdcdThhODJcdThhODRcdThhNzVcdThhODNcdThhODFcdThhNzRcdThhN2FcdThjM2NcdThjNGJcdThjNGFcdThjNjVcdThjNjRcdThjNjZcdThjODZcdThjODRc''@;'; + put 'put ''dThjODVcdThjY2NcdThkNjhcdThkNjlcdThkOTFcdThkOGNcdThkOGVcdThkOGZcdThkOGRcdThkOTNcdThkOTRcdThkOTBcdThkOTJcdThkZjBcdThkZTBcdThkZWNcdThkZjFcdThkZWVcdThkZDBcdThkZTlcdThkZTNcdThkZTJcdThkZTdcdThkZjJcdThkZWJcdThkZjRcdThmMDZcdThl''@;'; + put 'put ''ZmZcdThmMDFcdThmMDBcdThmMDVcdThmMDdcdThmMDhcdThmMDJcdThmMGJcdTkwNTJcdTkwM2ZcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTkwNDRcdTkwNDlcdTkwM2RcdTkxMTBcdTkxMGRcdTkxMGZcdTkxMTFcdTkxMTZcdTkxMTRcdTkxMGJcdTkxMGVcdTkx''@;'; + put 'put ''NmVcdTkxNmZcdTkyNDhcdTkyNTJcdTkyMzBcdTkyM2FcdTkyNjZcdTkyMzNcdTkyNjVcdTkyNWVcdTkyODNcdTkyMmVcdTkyNGFcdTkyNDZcdTkyNmRcdTkyNmNcdTkyNGZcdTkyNjBcdTkyNjdcdTkyNmZcdTkyMzZcdTkyNjFcdTkyNzBcdTkyMzFcdTkyNTRcdTkyNjNcdTkyNTBcdTkyNzJc''@;'; + put 'put ''dTkyNGVcdTkyNTNcdTkyNGNcdTkyNTZcdTkyMzJcdTk1OWZcdTk1OWNcdTk1OWVcdTk1OWJcdTk2OTJcdTk2OTNcdTk2OTFcdTk2OTdcdTk2Y2VcdTk2ZmFcdTk2ZmRcdTk2ZjhcdTk2ZjVcdTk3NzNcdTk3NzdcdTk3NzhcdTk3NzJcdTk4MGZcdTk4MGRcdTk4MGVcdTk4YWNcdTk4ZjZcdTk4''@;'; + put 'put ''ZjlcdTk5YWZcdTk5YjJcdTk5YjBcdTk5YjVcdTlhYWRcdTlhYWJcdTliNWJcdTljZWFcdTljZWRcdTljZTdcdTllODBcdTllZmRcdTUwZTZcdTUwZDRcdTUwZDdcdTUwZThcdTUwZjNcdTUwZGJcdTUwZWFcdTUwZGRcdTUwZTRcdTUwZDNcdTUwZWNcdTUwZjBcdTUwZWZcdTUwZTNcdTUwZTBc''@;'; + put 'put ''dWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMjRdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIyNF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjI0XVtFXV09NTczNDQrRSxMWzU3MzQ0K0VdPUJbMjI0XVtFXSk7Zm9yKEJbMjI1XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1MWQ4XHU1MjgwXHU1MjgxXHU1MmU5XHU1MmViXHU1MzMwXHU1M2FjXHU1NjI3XHU1NjE1XHU1NjBjXHU1NjEyXHU1NWZjXHU1NjBmXHU1NjFjXHU1NjAxXHU1NjEzXHU1NjAyXHU1NWZhXHU1NjFkXHU1NjA0XHU1NWZmXHU1NWY5XHU1ODg5XHU1ODdj''@;'; + put 'put ''XHU1ODkwXHU1ODk4XHU1ODg2XHU1ODgxXHU1ODdmXHU1ODc0XHU1ODhiXHU1ODdhXHU1ODg3XHU1ODkxXHU1ODhlXHU1ODc2XHU1ODgyXHU1ODg4XHU1ODdiXHU1ODk0XHU1ODhmXHU1OGZlXHU1OTZiXHU1YWRjXHU1YWVlXHU1YWU1XHU1YWQ1XHU1YWVhXHU1YWRhXHU1YWVkXHU1YWViXHU1''@;'; + put 'put ''YWYzXHU1YWUyXHU1YWUwXHU1YWRiXHU1YWVjXHU1YWRlXHU1YWRkXHU1YWQ5XHU1YWU4XHU1YWRmXHU1Yjc3XHU1YmUwXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1YmUzXHU1YzYzXHU1ZDgyXHU1ZDgwXHU1ZDdkXHU1ZDg2XHU1ZDdhXHU1ZDgxXHU1ZDc3XHU1''@;'; + put 'put ''ZDhhXHU1ZDg5XHU1ZDg4XHU1ZDdlXHU1ZDdjXHU1ZDhkXHU1ZDc5XHU1ZDdmXHU1ZTU4XHU1ZTU5XHU1ZTUzXHU1ZWQ4XHU1ZWQxXHU1ZWQ3XHU1ZWNlXHU1ZWRjXHU1ZWQ1XHU1ZWQ5XHU1ZWQyXHU1ZWQ0XHU1ZjQ0XHU1ZjQzXHU1ZjZmXHU1ZmI2XHU2MTJjXHU2MTI4XHU2MTQxXHU2MTVl''@;'; + put 'put ''XHU2MTcxXHU2MTczXHU2MTUyXHU2MTUzXHU2MTcyXHU2MTZjXHU2MTgwXHU2MTc0XHU2MTU0XHU2MTdhXHU2MTViXHU2MTY1XHU2MTNiXHU2MTZhXHU2MTYxXHU2MTU2XHU2MjI5XHU2MjI3XHU2MjJiXHU2NDJiXHU2NDRkXHU2NDViXHU2NDVkXHU2NDc0XHU2NDc2XHU2NDcyXHU2NDczXHU2''@;'; + put 'put ''NDdkXHU2NDc1XHU2NDY2XHU2NGE2XHU2NDRlXHU2NDgyXHU2NDVlXHU2NDVjXHU2NDRiXHU2NDUzXHU2NDYwXHU2NDUwXHU2NDdmXHU2NDNmXHU2NDZjXHU2NDZiXHU2NDU5XHU2NDY1XHU2NDc3XHU2NTczXHU2NWEwXHU2NmExXHU2NmEwXHU2NjlmXHU2NzA1XHU2NzA0XHU2NzIyXHU2OWIx''@;'; + put 'put ''XHU2OWI2XHU2OWM5XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjI1XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMjVdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIyNV1bRV1dPTU3NjAwK0UsTFs1NzYwMCtFXT1CWzIyNV1bRV0pO2ZvcihCWzIyNl09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NjlhMFx1NjljZVx1Njk5Nlx1NjliMFx1NjlhY1x1NjliY1x1Njk5MVx1Njk5OVx1Njk4ZVx1NjlhN1x1Njk4ZFx1NjlhOVx1NjliZVx1NjlhZlx1NjliZlx1NjljNFx1NjliZFx1NjlhNFx1NjlkNFx1NjliOVx1NjljYVx1Njk5''@;'; + put 'put ''YVx1NjljZlx1NjliM1x1Njk5M1x1NjlhYVx1NjlhMVx1Njk5ZVx1NjlkOVx1Njk5N1x1Njk5MFx1NjljMlx1NjliNVx1NjlhNVx1NjljNlx1NmI0YVx1NmI0ZFx1NmI0Ylx1NmI5ZVx1NmI5Zlx1NmJhMFx1NmJjM1x1NmJjNFx1NmJmZVx1NmVjZVx1NmVmNVx1NmVmMVx1NmYwM1x1NmYyNVx1''@;'; + put 'put ''NmVmOFx1NmYzN1x1NmVmYlx1NmYyZVx1NmYwOVx1NmY0ZVx1NmYxOVx1NmYxYVx1NmYyN1x1NmYxOFx1NmYzYlx1NmYxMlx1NmVlZFx1NmYwYVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NmYzNlx1NmY3M1x1NmVmOVx1NmVlZVx1NmYyZFx1NmY0MFx1NmYzMFx1''@;'; + put 'put ''NmYzY1x1NmYzNVx1NmVlYlx1NmYwN1x1NmYwZVx1NmY0M1x1NmYwNVx1NmVmZFx1NmVmNlx1NmYzOVx1NmYxY1x1NmVmY1x1NmYzYVx1NmYxZlx1NmYwZFx1NmYxZVx1NmYwOFx1NmYyMVx1NzE4N1x1NzE5MFx1NzE4OVx1NzE4MFx1NzE4NVx1NzE4Mlx1NzE4Zlx1NzE3Ylx1NzE4Nlx1NzE4''@;'; + put 'put ''MVx1NzE5N1x1NzI0NFx1NzI1M1x1NzI5N1x1NzI5NVx1NzI5M1x1NzM0M1x1NzM0ZFx1NzM1MVx1NzM0Y1x1NzQ2Mlx1NzQ3M1x1NzQ3MVx1NzQ3NVx1NzQ3Mlx1NzQ2N1x1NzQ2ZVx1NzUwMFx1NzUwMlx1NzUwM1x1NzU3ZFx1NzU5MFx1NzYxNlx1NzYwOFx1NzYwY1x1NzYxNVx1NzYxMVx1''@;'; + put 'put ''NzYwYVx1NzYxNFx1NzZiOFx1Nzc4MVx1Nzc3Y1x1Nzc4NVx1Nzc4Mlx1Nzc2ZVx1Nzc4MFx1Nzc2Zlx1Nzc3ZVx1Nzc4M1x1NzhiMlx1NzhhYVx1NzhiNFx1NzhhZFx1NzhhOFx1Nzg3ZVx1NzhhYlx1Nzg5ZVx1NzhhNVx1NzhhMFx1NzhhY1x1NzhhMlx1NzhhNFx1Nzk5OFx1Nzk4YVx1Nzk4''@;'; + put 'put ''Ylx1Nzk5Nlx1Nzk5NVx1Nzk5NFx1Nzk5M1x1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIyNl0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjI2XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMjZdW0VdXT01Nzg1NitFLExbNTc4NTYrRV09QlsyMjZdW0VdKTtmb3IoQlsyMjddPSJcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTc5OTdcdTc5ODhcdTc5OTJcdTc5OTBcdTdhMmJcdTdhNGFcdTdhMzBcdTdhMmZcdTdhMjhcdTdhMjZcdTdhYThcdTdhYWJcdTdhYWNcdTdhZWVcdTdiODhcdTdiOWNcdTdiOGFcdTdiOTFcdTdiOTBcdTdi''@;'; + put 'put ''OTZcdTdiOGRcdTdiOGNcdTdiOWJcdTdiOGVcdTdiODVcdTdiOThcdTUyODRcdTdiOTlcdTdiYTRcdTdiODJcdTdjYmJcdTdjYmZcdTdjYmNcdTdjYmFcdTdkYTdcdTdkYjdcdTdkYzJcdTdkYTNcdTdkYWFcdTdkYzFcdTdkYzBcdTdkYzVcdTdkOWRcdTdkY2VcdTdkYzRcdTdkYzZcdTdkY2Jc''@;'; + put 'put ''dTdkY2NcdTdkYWZcdTdkYjlcdTdkOTZcdTdkYmNcdTdkOWZcdTdkYTZcdTdkYWVcdTdkYTlcdTdkYTFcdTdkYzlcdTdmNzNcdTdmZTJcdTdmZTNcdTdmZTVcdTdmZGVcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTgwMjRcdTgwNWRcdTgwNWNcdTgxODlcdTgxODZc''@;'; + put 'put ''dTgxODNcdTgxODdcdTgxOGRcdTgxOGNcdTgxOGJcdTgyMTVcdTg0OTdcdTg0YTRcdTg0YTFcdTg0OWZcdTg0YmFcdTg0Y2VcdTg0YzJcdTg0YWNcdTg0YWVcdTg0YWJcdTg0YjlcdTg0YjRcdTg0YzFcdTg0Y2RcdTg0YWFcdTg0OWFcdTg0YjFcdTg0ZDBcdTg0OWRcdTg0YTdcdTg0YmJcdTg0''@;'; + put 'put ''YTJcdTg0OTRcdTg0YzdcdTg0Y2NcdTg0OWJcdTg0YTlcdTg0YWZcdTg0YThcdTg0ZDZcdTg0OThcdTg0YjZcdTg0Y2ZcdTg0YTBcdTg0ZDdcdTg0ZDRcdTg0ZDJcdTg0ZGJcdTg0YjBcdTg0OTFcdTg2NjFcdTg3MzNcdTg3MjNcdTg3MjhcdTg3NmJcdTg3NDBcdTg3MmVcdTg3MWVcdTg3MjFc''@;'; + put 'put ''dTg3MTlcdTg3MWJcdTg3NDNcdTg3MmNcdTg3NDFcdTg3M2VcdTg3NDZcdTg3MjBcdTg3MzJcdTg3MmFcdTg3MmRcdTg3M2NcdTg3MTJcdTg3M2FcdTg3MzFcdTg3MzVcdTg3NDJcdTg3MjZcdTg3MjdcdTg3MzhcdTg3MjRcdTg3MWFcdTg3MzBcdTg3MTFcdTg4ZjdcdTg4ZTdcdTg4ZjFcdTg4''@;'; + put 'put ''ZjJcdTg4ZmFcdTg4ZmVcdTg4ZWVcdTg4ZmNcdTg4ZjZcdTg4ZmJcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMjddLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIyN11bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjI3XVtFXV09NTgxMTIrRSxMWzU4MTEyK0VdPUJbMjI3XVtFXSk7Zm9yKEJb''@;'; + put 'put ''MjI4XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4OGYwXHU4OGVjXHU4OGViXHU4OTlkXHU4OWExXHU4OTlmXHU4OTllXHU4OWU5XHU4OWViXHU4OWU4XHU4YWFiXHU4YTk5XHU4YThiXHU4YTkyXHU4YThmXHU4YTk2XHU4YzNkXHU4''@;'; + put 'put ''YzY4XHU4YzY5XHU4Y2Q1XHU4Y2NmXHU4Y2Q3XHU4ZDk2XHU4ZTA5XHU4ZTAyXHU4ZGZmXHU4ZTBkXHU4ZGZkXHU4ZTBhXHU4ZTAzXHU4ZTA3XHU4ZTA2XHU4ZTA1XHU4ZGZlXHU4ZTAwXHU4ZTA0XHU4ZjEwXHU4ZjExXHU4ZjBlXHU4ZjBkXHU5MTIzXHU5MTFjXHU5MTIwXHU5MTIyXHU5MTFm''@;'; + put 'put ''XHU5MTFkXHU5MTFhXHU5MTI0XHU5MTIxXHU5MTFiXHU5MTdhXHU5MTcyXHU5MTc5XHU5MTczXHU5MmE1XHU5MmE0XHU5Mjc2XHU5MjliXHU5MjdhXHU5MmEwXHU5Mjk0XHU5MmFhXHU5MjhkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5MmE2XHU5MjlhXHU5MmFi''@;'; + put 'put ''XHU5Mjc5XHU5Mjk3XHU5MjdmXHU5MmEzXHU5MmVlXHU5MjhlXHU5MjgyXHU5Mjk1XHU5MmEyXHU5MjdkXHU5Mjg4XHU5MmExXHU5MjhhXHU5Mjg2XHU5MjhjXHU5Mjk5XHU5MmE3XHU5MjdlXHU5Mjg3XHU5MmE5XHU5MjlkXHU5MjhiXHU5MjJkXHU5NjllXHU5NmExXHU5NmZmXHU5NzU4XHU5''@;'; + put 'put ''NzdkXHU5NzdhXHU5NzdlXHU5NzgzXHU5NzgwXHU5NzgyXHU5NzdiXHU5Nzg0XHU5NzgxXHU5NzdmXHU5N2NlXHU5N2NkXHU5ODE2XHU5OGFkXHU5OGFlXHU5OTAyXHU5OTAwXHU5OTA3XHU5OTlkXHU5OTljXHU5OWMzXHU5OWI5XHU5OWJiXHU5OWJhXHU5OWMyXHU5OWJkXHU5OWM3XHU5YWIx''@;'; + put 'put ''XHU5YWUzXHU5YWU3XHU5YjNlXHU5YjNmXHU5YjYwXHU5YjYxXHU5YjVmXHU5Y2YxXHU5Y2YyXHU5Y2Y1XHU5ZWE3XHU1MGZmXHU1MTAzXHU1MTMwXHU1MGY4XHU1MTA2XHU1MTA3XHU1MGY2XHU1MGZlXHU1MTBiXHU1MTBjXHU1MGZkXHU1MTBhXHU1MjhiXHU1MjhjXHU1MmYxXHU1MmVmXHU1''@;'; + put 'put ''NjQ4XHU1NjQyXHU1NjRjXHU1NjM1XHU1NjQxXHU1NjRhXHU1NjQ5XHU1NjQ2XHU1NjU4XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjI4XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMjhdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIyOF1bRV1dPTU4MzY4K0UsTFs1ODM2OCtFXT1CWzIy''@;'; + put 'put ''OF1bRV0pO2ZvcihCWzIyOV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NTY1YVx1NTY0MFx1NTYzM1x1NTYzZFx1NTYyY1x1NTYzZVx1NTYzOFx1NTYyYVx1NTYzYVx1NTcxYVx1NThhYlx1NTg5ZFx1NThiMVx1NThhMFx1NThhM1x1''@;'; + put 'put ''NThhZlx1NThhY1x1NThhNVx1NThhMVx1NThmZlx1NWFmZlx1NWFmNFx1NWFmZFx1NWFmN1x1NWFmNlx1NWIwM1x1NWFmOFx1NWIwMlx1NWFmOVx1NWIwMVx1NWIwN1x1NWIwNVx1NWIwZlx1NWM2N1x1NWQ5OVx1NWQ5N1x1NWQ5Zlx1NWQ5Mlx1NWRhMlx1NWQ5M1x1NWQ5NVx1NWRhMFx1NWQ5''@;'; + put 'put ''Y1x1NWRhMVx1NWQ5YVx1NWQ5ZVx1NWU2OVx1NWU1ZFx1NWU2MFx1NWU1Y1x1N2RmM1x1NWVkYlx1NWVkZVx1NWVlMVx1NWY0OVx1NWZiMlx1NjE4Ylx1NjE4M1x1NjE3OVx1NjFiMVx1NjFiMFx1NjFhMlx1NjE4OVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NjE5''@;'; + put 'put ''Ylx1NjE5M1x1NjFhZlx1NjFhZFx1NjE5Zlx1NjE5Mlx1NjFhYVx1NjFhMVx1NjE4ZFx1NjE2Nlx1NjFiM1x1NjIyZFx1NjQ2ZVx1NjQ3MFx1NjQ5Nlx1NjRhMFx1NjQ4NVx1NjQ5N1x1NjQ5Y1x1NjQ4Zlx1NjQ4Ylx1NjQ4YVx1NjQ4Y1x1NjRhM1x1NjQ5Zlx1NjQ2OFx1NjRiMVx1NjQ5OFx1''@;'; + put 'put ''NjU3Nlx1NjU3YVx1NjU3OVx1NjU3Ylx1NjViMlx1NjViM1x1NjZiNVx1NjZiMFx1NjZhOVx1NjZiMlx1NjZiN1x1NjZhYVx1NjZhZlx1NmEwMFx1NmEwNlx1NmExN1x1NjllNVx1NjlmOFx1NmExNVx1NjlmMVx1NjllNFx1NmEyMFx1NjlmZlx1NjllY1x1NjllMlx1NmExYlx1NmExZFx1Njlm''@;'; + put 'put ''ZVx1NmEyN1x1NjlmMlx1NjllZVx1NmExNFx1NjlmN1x1NjllN1x1NmE0MFx1NmEwOFx1NjllNlx1NjlmYlx1NmEwZFx1NjlmY1x1NjllYlx1NmEwOVx1NmEwNFx1NmExOFx1NmEyNVx1NmEwZlx1NjlmNlx1NmEyNlx1NmEwN1x1NjlmNFx1NmExNlx1NmI1MVx1NmJhNVx1NmJhM1x1NmJhMlx1''@;'; + put 'put ''NmJhNlx1NmMwMVx1NmMwMFx1NmJmZlx1NmMwMlx1NmY0MVx1NmYyNlx1NmY3ZVx1NmY4N1x1NmZjNlx1NmY5Mlx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIyOV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjI5XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMjldW0VdXT01ODYyNCtFLExb''@;'; + put 'put ''NTg2MjQrRV09QlsyMjldW0VdKTtmb3IoQlsyMzBdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTZmOGRcdTZmODlcdTZmOGNcdTZmNjJcdTZmNGZcdTZmODVcdTZmNWFcdTZmOTZcdTZmNzZcdTZmNmNcdTZmODJcdTZmNTVcdTZmNzJc''@;'; + put 'put ''dTZmNTJcdTZmNTBcdTZmNTdcdTZmOTRcdTZmOTNcdTZmNWRcdTZmMDBcdTZmNjFcdTZmNmJcdTZmN2RcdTZmNjdcdTZmOTBcdTZmNTNcdTZmOGJcdTZmNjlcdTZmN2ZcdTZmOTVcdTZmNjNcdTZmNzdcdTZmNmFcdTZmN2JcdTcxYjJcdTcxYWZcdTcxOWJcdTcxYjBcdTcxYTBcdTcxOWFcdTcx''@;'; + put 'put ''YTlcdTcxYjVcdTcxOWRcdTcxYTVcdTcxOWVcdTcxYTRcdTcxYTFcdTcxYWFcdTcxOWNcdTcxYTdcdTcxYjNcdTcyOThcdTcyOWFcdTczNThcdTczNTJcdTczNWVcdTczNWZcdTczNjBcdTczNWRcdTczNWJcdTczNjFcdTczNWFcdTczNTlcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdTczNjJcdTc0ODdcdTc0ODlcdTc0OGFcdTc0ODZcdTc0ODFcdTc0N2RcdTc0ODVcdTc0ODhcdTc0N2NcdTc0NzlcdTc1MDhcdTc1MDdcdTc1N2VcdTc2MjVcdTc2MWVcdTc2MTlcdTc2MWRcdTc2MWNcdTc2MjNcdTc2MWFcdTc2MjhcdTc2MWJcdTc2OWNcdTc2OWRcdTc2OWVc''@;'; + put 'put ''dTc2OWJcdTc3OGRcdTc3OGZcdTc3ODlcdTc3ODhcdTc4Y2RcdTc4YmJcdTc4Y2ZcdTc4Y2NcdTc4ZDFcdTc4Y2VcdTc4ZDRcdTc4YzhcdTc4YzNcdTc4YzRcdTc4YzlcdTc5OWFcdTc5YTFcdTc5YTBcdTc5OWNcdTc5YTJcdTc5OWJcdTZiNzZcdTdhMzlcdTdhYjJcdTdhYjRcdTdhYjNcdTdi''@;'; + put 'put ''YjdcdTdiY2JcdTdiYmVcdTdiYWNcdTdiY2VcdTdiYWZcdTdiYjlcdTdiY2FcdTdiYjVcdTdjYzVcdTdjYzhcdTdjY2NcdTdjY2JcdTdkZjdcdTdkZGJcdTdkZWFcdTdkZTdcdTdkZDdcdTdkZTFcdTdlMDNcdTdkZmFcdTdkZTZcdTdkZjZcdTdkZjFcdTdkZjBcdTdkZWVcdTdkZGZcdTdmNzZc''@;'; + put 'put ''dTdmYWNcdTdmYjBcdTdmYWRcdTdmZWRcdTdmZWJcdTdmZWFcdTdmZWNcdTdmZTZcdTdmZThcdTgwNjRcdTgwNjdcdTgxYTNcdTgxOWZcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMzBdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIzMF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjMwXVtF''@;'; + put 'put ''XV09NTg4ODArRSxMWzU4ODgwK0VdPUJbMjMwXVtFXSk7Zm9yKEJbMjMxXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4MTllXHU4MTk1XHU4MWEyXHU4MTk5XHU4MTk3XHU4MjE2XHU4MjRmXHU4MjUzXHU4MjUyXHU4MjUwXHU4MjRl''@;'; + put 'put ''XHU4MjUxXHU4NTI0XHU4NTNiXHU4NTBmXHU4NTAwXHU4NTI5XHU4NTBlXHU4NTA5XHU4NTBkXHU4NTFmXHU4NTBhXHU4NTI3XHU4NTFjXHU4NGZiXHU4NTJiXHU4NGZhXHU4NTA4XHU4NTBjXHU4NGY0XHU4NTJhXHU4NGYyXHU4NTE1XHU4NGY3XHU4NGViXHU4NGYzXHU4NGZjXHU4NTEyXHU4''@;'; + put 'put ''NGVhXHU4NGU5XHU4NTE2XHU4NGZlXHU4NTI4XHU4NTFkXHU4NTJlXHU4NTAyXHU4NGZkXHU4NTFlXHU4NGY2XHU4NTMxXHU4NTI2XHU4NGU3XHU4NGU4XHU4NGYwXHU4NGVmXHU4NGY5XHU4NTE4XHU4NTIwXHU4NTMwXHU4NTBiXHU4NTE5XHU4NTJmXHU4NjYyXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4NzU2XHU4NzYzXHU4NzY0XHU4Nzc3XHU4N2UxXHU4NzczXHU4NzU4XHU4NzU0XHU4NzViXHU4NzUyXHU4NzYxXHU4NzVhXHU4NzUxXHU4NzVlXHU4NzZkXHU4NzZhXHU4NzUwXHU4NzRlXHU4NzVmXHU4NzVkXHU4NzZmXHU4NzZjXHU4NzdhXHU4NzZl''@;'; + put 'put ''XHU4NzVjXHU4NzY1XHU4NzRmXHU4NzdiXHU4Nzc1XHU4NzYyXHU4NzY3XHU4NzY5XHU4ODVhXHU4OTA1XHU4OTBjXHU4OTE0XHU4OTBiXHU4OTE3XHU4OTE4XHU4OTE5XHU4OTA2XHU4OTE2XHU4OTExXHU4OTBlXHU4OTA5XHU4OWEyXHU4OWE0XHU4OWEzXHU4OWVkXHU4OWYwXHU4OWVjXHU4''@;'; + put 'put ''YWNmXHU4YWM2XHU4YWI4XHU4YWQzXHU4YWQxXHU4YWQ0XHU4YWQ1XHU4YWJiXHU4YWQ3XHU4YWJlXHU4YWMwXHU4YWM1XHU4YWQ4XHU4YWMzXHU4YWJhXHU4YWJkXHU4YWQ5XHU4YzNlXHU4YzRkXHU4YzhmXHU4Y2U1XHU4Y2RmXHU4Y2Q5XHU4Y2U4XHU4Y2RhXHU4Y2RkXHU4Y2U3XHU4ZGEw''@;'; + put 'put ''XHU4ZDljXHU4ZGExXHU4ZDliXHU4ZTIwXHU4ZTIzXHU4ZTI1XHU4ZTI0XHU4ZTJlXHU4ZTE1XHU4ZTFiXHU4ZTE2XHU4ZTExXHU4ZTE5XHU4ZTI2XHU4ZTI3XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjMxXS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMzFdW0VdLmNoYXJDb2RlQXQoMCkm''@;'; + put 'put ''JihtZVtCWzIzMV1bRV1dPTU5MTM2K0UsTFs1OTEzNitFXT1CWzIzMV1bRV0pO2ZvcihCWzIzMl09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OGUxNFx1OGUxMlx1OGUxOFx1OGUxM1x1OGUxY1x1OGUxN1x1OGUxYVx1OGYyY1x1OGYy''@;'; + put 'put ''NFx1OGYxOFx1OGYxYVx1OGYyMFx1OGYyM1x1OGYxNlx1OGYxN1x1OTA3M1x1OTA3MFx1OTA2Zlx1OTA2N1x1OTA2Ylx1OTEyZlx1OTEyYlx1OTEyOVx1OTEyYVx1OTEzMlx1OTEyNlx1OTEyZVx1OTE4NVx1OTE4Nlx1OTE4YVx1OTE4MVx1OTE4Mlx1OTE4NFx1OTE4MFx1OTJkMFx1OTJjM1x1''@;'; + put 'put ''OTJjNFx1OTJjMFx1OTJkOVx1OTJiNlx1OTJjZlx1OTJmMVx1OTJkZlx1OTJkOFx1OTJlOVx1OTJkN1x1OTJkZFx1OTJjY1x1OTJlZlx1OTJjMlx1OTJlOFx1OTJjYVx1OTJjOFx1OTJjZVx1OTJlNlx1OTJjZFx1OTJkNVx1OTJjOVx1OTJlMFx1OTJkZVx1OTJlN1x1OTJkMVx1OTJkM1x1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OTJiNVx1OTJlMVx1OTJjNlx1OTJiNFx1OTU3Y1x1OTVhY1x1OTVhYlx1OTVhZVx1OTViMFx1OTZhNFx1OTZhMlx1OTZkM1x1OTcwNVx1OTcwOFx1OTcwMlx1OTc1YVx1OTc4YVx1OTc4ZVx1OTc4OFx1OTdkMFx1OTdjZlx1OTgx''@;'; + put 'put ''ZVx1OTgxZFx1OTgyNlx1OTgyOVx1OTgyOFx1OTgyMFx1OTgxYlx1OTgyN1x1OThiMlx1OTkwOFx1OThmYVx1OTkxMVx1OTkxNFx1OTkxNlx1OTkxN1x1OTkxNVx1OTlkY1x1OTljZFx1OTljZlx1OTlkM1x1OTlkNFx1OTljZVx1OTljOVx1OTlkNlx1OTlkOFx1OTljYlx1OTlkN1x1OTljY1x1''@;'; + put 'put ''OWFiM1x1OWFlY1x1OWFlYlx1OWFmM1x1OWFmMlx1OWFmMVx1OWI0Nlx1OWI0M1x1OWI2N1x1OWI3NFx1OWI3MVx1OWI2Nlx1OWI3Nlx1OWI3NVx1OWI3MFx1OWI2OFx1OWI2NFx1OWI2Y1x1OWNmY1x1OWNmYVx1OWNmZFx1OWNmZlx1OWNmN1x1OWQwN1x1OWQwMFx1OWNmOVx1OWNmYlx1OWQw''@;'; + put 'put ''OFx1OWQwNVx1OWQwNFx1OWU4M1x1OWVkM1x1OWYwZlx1OWYxMFx1NTExY1x1NTExM1x1NTExN1x1NTExYVx1NTExMVx1NTFkZVx1NTMzNFx1NTNlMVx1NTY3MFx1NTY2MFx1NTY2ZVx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIzMl0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjMyXVtFXS5j''@;'; + put 'put ''aGFyQ29kZUF0KDApJiYobWVbQlsyMzJdW0VdXT01OTM5MitFLExbNTkzOTIrRV09QlsyMzJdW0VdKTtmb3IoQlsyMzNdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTU2NzNcdTU2NjZcdTU2NjNcdTU2NmRcdTU2NzJcdTU2NWVcdTU2''@;'; + put 'put ''NzdcdTU3MWNcdTU3MWJcdTU4YzhcdTU4YmRcdTU4YzlcdTU4YmZcdTU4YmFcdTU4YzJcdTU4YmNcdTU4YzZcdTViMTdcdTViMTlcdTViMWJcdTViMjFcdTViMTRcdTViMTNcdTViMTBcdTViMTZcdTViMjhcdTViMWFcdTViMjBcdTViMWVcdTViZWZcdTVkYWNcdTVkYjFcdTVkYTlcdTVkYTdc''@;'; + put 'put ''dTVkYjVcdTVkYjBcdTVkYWVcdTVkYWFcdTVkYThcdTVkYjJcdTVkYWRcdTVkYWZcdTVkYjRcdTVlNjdcdTVlNjhcdTVlNjZcdTVlNmZcdTVlZTlcdTVlZTdcdTVlZTZcdTVlZThcdTVlZTVcdTVmNGJcdTVmYmNcdTYxOWRcdTYxYThcdTYxOTZcdTYxYzVcdTYxYjRcdTYxYzZcdTYxYzFcdTYx''@;'; + put 'put ''Y2NcdTYxYmFcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTYxYmZcdTYxYjhcdTYxOGNcdTY0ZDdcdTY0ZDZcdTY0ZDBcdTY0Y2ZcdTY0YzlcdTY0YmRcdTY0ODlcdTY0YzNcdTY0ZGJcdTY0ZjNcdTY0ZDlcdTY1MzNcdTY1N2ZcdTY1N2NcdTY1YTJcdTY2YzhcdTY2''@;'; + put 'put ''YmVcdTY2YzBcdTY2Y2FcdTY2Y2JcdTY2Y2ZcdTY2YmRcdTY2YmJcdTY2YmFcdTY2Y2NcdTY3MjNcdTZhMzRcdTZhNjZcdTZhNDlcdTZhNjdcdTZhMzJcdTZhNjhcdTZhM2VcdTZhNWRcdTZhNmRcdTZhNzZcdTZhNWJcdTZhNTFcdTZhMjhcdTZhNWFcdTZhM2JcdTZhM2ZcdTZhNDFcdTZhNmFc''@;'; + put 'put ''dTZhNjRcdTZhNTBcdTZhNGZcdTZhNTRcdTZhNmZcdTZhNjlcdTZhNjBcdTZhM2NcdTZhNWVcdTZhNTZcdTZhNTVcdTZhNGRcdTZhNGVcdTZhNDZcdTZiNTVcdTZiNTRcdTZiNTZcdTZiYTdcdTZiYWFcdTZiYWJcdTZiYzhcdTZiYzdcdTZjMDRcdTZjMDNcdTZjMDZcdTZmYWRcdTZmY2JcdTZm''@;'; + put 'put ''YTNcdTZmYzdcdTZmYmNcdTZmY2VcdTZmYzhcdTZmNWVcdTZmYzRcdTZmYmRcdTZmOWVcdTZmY2FcdTZmYThcdTcwMDRcdTZmYTVcdTZmYWVcdTZmYmFcdTZmYWNcdTZmYWFcdTZmY2ZcdTZmYmZcdTZmYjhcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMzNdLmxlbmd0aDsrK0UpNjU1MzMh''@;'; + put 'put ''PT1CWzIzM11bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjMzXVtFXV09NTk2NDgrRSxMWzU5NjQ4K0VdPUJbMjMzXVtFXSk7Zm9yKEJbMjM0XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2ZmEyXHU2ZmM5XHU2ZmFiXHU2ZmNkXHU2''@;'; + put 'put ''ZmFmXHU2ZmIyXHU2ZmIwXHU3MWM1XHU3MWMyXHU3MWJmXHU3MWI4XHU3MWQ2XHU3MWMwXHU3MWMxXHU3MWNiXHU3MWQ0XHU3MWNhXHU3MWM3XHU3MWNmXHU3MWJkXHU3MWQ4XHU3MWJjXHU3MWM2XHU3MWRhXHU3MWRiXHU3MjlkXHU3MjllXHU3MzY5XHU3MzY2XHU3MzY3XHU3MzZjXHU3MzY1''@;'; + put 'put ''XHU3MzZiXHU3MzZhXHU3NDdmXHU3NDlhXHU3NGEwXHU3NDk0XHU3NDkyXHU3NDk1XHU3NGExXHU3NTBiXHU3NTgwXHU3NjJmXHU3NjJkXHU3NjMxXHU3NjNkXHU3NjMzXHU3NjNjXHU3NjM1XHU3NjMyXHU3NjMwXHU3NmJiXHU3NmU2XHU3NzlhXHU3NzlkXHU3N2ExXHU3NzljXHU3NzliXHU3''@;'; + put 'put ''N2EyXHU3N2EzXHU3Nzk1XHU3Nzk5XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3Nzk3XHU3OGRkXHU3OGU5XHU3OGU1XHU3OGVhXHU3OGRlXHU3OGUzXHU3OGRiXHU3OGUxXHU3OGUyXHU3OGVkXHU3OGRmXHU3OGUwXHU3OWE0XHU3YTQ0XHU3YTQ4XHU3YTQ3XHU3''@;'; + put 'put ''YWI2XHU3YWI4XHU3YWI1XHU3YWIxXHU3YWI3XHU3YmRlXHU3YmUzXHU3YmU3XHU3YmRkXHU3YmQ1XHU3YmU1XHU3YmRhXHU3YmU4XHU3YmY5XHU3YmQ0XHU3YmVhXHU3YmUyXHU3YmRjXHU3YmViXHU3YmQ4XHU3YmRmXHU3Y2QyXHU3Y2Q0XHU3Y2Q3XHU3Y2QwXHU3Y2QxXHU3ZTEyXHU3ZTIx''@;'; + put 'put ''XHU3ZTE3XHU3ZTBjXHU3ZTFmXHU3ZTIwXHU3ZTEzXHU3ZTBlXHU3ZTFjXHU3ZTE1XHU3ZTFhXHU3ZTIyXHU3ZTBiXHU3ZTBmXHU3ZTE2XHU3ZTBkXHU3ZTE0XHU3ZTI1XHU3ZTI0XHU3ZjQzXHU3ZjdiXHU3ZjdjXHU3ZjdhXHU3ZmIxXHU3ZmVmXHU4MDJhXHU4MDI5XHU4MDZjXHU4MWIxXHU4''@;'; + put 'put ''MWE2XHU4MWFlXHU4MWI5XHU4MWI1XHU4MWFiXHU4MWIwXHU4MWFjXHU4MWI0XHU4MWIyXHU4MWI3XHU4MWE3XHU4MWYyXHU4MjU1XHU4MjU2XHU4MjU3XHU4NTU2XHU4NTQ1XHU4NTZiXHU4NTRkXHU4NTUzXHU4NTYxXHU4NTU4XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjM0XS5sZW5n''@;'; + put 'put ''dGg7KytFKTY1NTMzIT09QlsyMzRdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIzNF1bRV1dPTU5OTA0K0UsTFs1OTkwNCtFXT1CWzIzNF1bRV0pO2ZvcihCWzIzNV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ODU0MFx1ODU0Nlx1''@;'; + put 'put ''ODU2NFx1ODU0MVx1ODU2Mlx1ODU0NFx1ODU1MVx1ODU0N1x1ODU2M1x1ODUzZVx1ODU1Ylx1ODU3MVx1ODU0ZVx1ODU2ZVx1ODU3NVx1ODU1NVx1ODU2N1x1ODU2MFx1ODU4Y1x1ODU2Nlx1ODU1ZFx1ODU1NFx1ODU2NVx1ODU2Y1x1ODY2M1x1ODY2NVx1ODY2NFx1ODc5Ylx1ODc4Zlx1ODc5''@;'; + put 'put ''N1x1ODc5M1x1ODc5Mlx1ODc4OFx1ODc4MVx1ODc5Nlx1ODc5OFx1ODc3OVx1ODc4N1x1ODdhM1x1ODc4NVx1ODc5MFx1ODc5MVx1ODc5ZFx1ODc4NFx1ODc5NFx1ODc5Y1x1ODc5YVx1ODc4OVx1ODkxZVx1ODkyNlx1ODkzMFx1ODkyZFx1ODkyZVx1ODkyN1x1ODkzMVx1ODkyMlx1ODkyOVx1''@;'; + put 'put ''ODkyM1x1ODkyZlx1ODkyY1x1ODkxZlx1ODlmMVx1OGFlMFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OGFlMlx1OGFmMlx1OGFmNFx1OGFmNVx1OGFkZFx1OGIxNFx1OGFlNFx1OGFkZlx1OGFmMFx1OGFjOFx1OGFkZVx1OGFlMVx1OGFlOFx1OGFmZlx1OGFlZlx1''@;'; + put 'put ''OGFmYlx1OGM5MVx1OGM5Mlx1OGM5MFx1OGNmNVx1OGNlZVx1OGNmMVx1OGNmMFx1OGNmM1x1OGQ2Y1x1OGQ2ZVx1OGRhNVx1OGRhN1x1OGUzM1x1OGUzZVx1OGUzOFx1OGU0MFx1OGU0NVx1OGUzNlx1OGUzY1x1OGUzZFx1OGU0MVx1OGUzMFx1OGUzZlx1OGViZFx1OGYzNlx1OGYyZVx1OGYz''@;'; + put 'put ''NVx1OGYzMlx1OGYzOVx1OGYzN1x1OGYzNFx1OTA3Nlx1OTA3OVx1OTA3Ylx1OTA4Nlx1OTBmYVx1OTEzM1x1OTEzNVx1OTEzNlx1OTE5M1x1OTE5MFx1OTE5MVx1OTE4ZFx1OTE4Zlx1OTMyN1x1OTMxZVx1OTMwOFx1OTMxZlx1OTMwNlx1OTMwZlx1OTM3YVx1OTMzOFx1OTMzY1x1OTMxYlx1''@;'; + put 'put ''OTMyM1x1OTMxMlx1OTMwMVx1OTM0Nlx1OTMyZFx1OTMwZVx1OTMwZFx1OTJjYlx1OTMxZFx1OTJmYVx1OTMyNVx1OTMxM1x1OTJmOVx1OTJmN1x1OTMzNFx1OTMwMlx1OTMyNFx1OTJmZlx1OTMyOVx1OTMzOVx1OTMzNVx1OTMyYVx1OTMxNFx1OTMwY1x1ZmZmZCIuc3BsaXQoIiIpLEU9MDtF''@;'; + put 'put ''IT1CWzIzNV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjM1XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMzVdW0VdXT02MDE2MCtFLExbNjAxNjArRV09QlsyMzVdW0VdKTtmb3IoQlsyMzZdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dTkzMGJcdTkyZmVcdTkzMDlcdTkzMDBcdTkyZmJcdTkzMTZcdTk1YmNcdTk1Y2RcdTk1YmVcdTk1YjlcdTk1YmFcdTk1YjZcdTk1YmZcdTk1YjVcdTk1YmRcdTk2YTlcdTk2ZDRcdTk3MGJcdTk3MTJcdTk3MTBcdTk3OTlcdTk3OTdcdTk3OTRcdTk3ZjBcdTk3ZjhcdTk4MzVcdTk4MmZcdTk4''@;'; + put 'put ''MzJcdTk5MjRcdTk5MWZcdTk5MjdcdTk5MjlcdTk5OWVcdTk5ZWVcdTk5ZWNcdTk5ZTVcdTk5ZTRcdTk5ZjBcdTk5ZTNcdTk5ZWFcdTk5ZTlcdTk5ZTdcdTlhYjlcdTlhYmZcdTlhYjRcdTlhYmJcdTlhZjZcdTlhZmFcdTlhZjlcdTlhZjdcdTliMzNcdTliODBcdTliODVcdTliODdcdTliN2Nc''@;'; + put 'put ''dTliN2VcdTliN2JcdTliODJcdTliOTNcdTliOTJcdTliOTBcdTliN2FcdTliOTVcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTliN2RcdTliODhcdTlkMjVcdTlkMTdcdTlkMjBcdTlkMWVcdTlkMTRcdTlkMjlcdTlkMWRcdTlkMThcdTlkMjJcdTlkMTBcdTlkMTlc''@;'; + put 'put ''dTlkMWZcdTllODhcdTllODZcdTllODdcdTllYWVcdTllYWRcdTllZDVcdTllZDZcdTllZmFcdTlmMTJcdTlmM2RcdTUxMjZcdTUxMjVcdTUxMjJcdTUxMjRcdTUxMjBcdTUxMjlcdTUyZjRcdTU2OTNcdTU2OGNcdTU2OGRcdTU2ODZcdTU2ODRcdTU2ODNcdTU2N2VcdTU2ODJcdTU2N2ZcdTU2''@;'; + put 'put ''ODFcdTU4ZDZcdTU4ZDRcdTU4Y2ZcdTU4ZDJcdTViMmRcdTViMjVcdTViMzJcdTViMjNcdTViMmNcdTViMjdcdTViMjZcdTViMmZcdTViMmVcdTViN2JcdTViZjFcdTViZjJcdTVkYjdcdTVlNmNcdTVlNmFcdTVmYmVcdTVmYmJcdTYxYzNcdTYxYjVcdTYxYmNcdTYxZTdcdTYxZTBcdTYxZTVc''@;'; + put 'put ''dTYxZTRcdTYxZThcdTYxZGVcdTY0ZWZcdTY0ZTlcdTY0ZTNcdTY0ZWJcdTY0ZTRcdTY0ZThcdTY1ODFcdTY1ODBcdTY1YjZcdTY1ZGFcdTY2ZDJcdTZhOGRcdTZhOTZcdTZhODFcdTZhYTVcdTZhODlcdTZhOWZcdTZhOWJcdTZhYTFcdTZhOWVcdTZhODdcdTZhOTNcdTZhOGVcdWZmZmQiLnNw''@;'; + put 'put ''bGl0KCIiKSxFPTA7RSE9QlsyMzZdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIzNl1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjM2XVtFXV09NjA0MTYrRSxMWzYwNDE2K0VdPUJbMjM2XVtFXSk7Zm9yKEJbMjM3XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHU2YTk1XHU2YTgzXHU2YWE4XHU2YWE0XHU2YTkxXHU2YTdmXHU2YWE2XHU2YTlhXHU2YTg1XHU2YThjXHU2YTkyXHU2YjViXHU2YmFkXHU2YzA5XHU2ZmNjXHU2ZmE5XHU2ZmY0XHU2ZmQ0XHU2ZmUzXHU2ZmRjXHU2ZmVkXHU2ZmU3XHU2ZmU2XHU2ZmRlXHU2ZmYyXHU2''@;'; + put 'put ''ZmRkXHU2ZmUyXHU2ZmU4XHU3MWUxXHU3MWYxXHU3MWU4XHU3MWYyXHU3MWU0XHU3MWYwXHU3MWUyXHU3MzczXHU3MzZlXHU3MzZmXHU3NDk3XHU3NGIyXHU3NGFiXHU3NDkwXHU3NGFhXHU3NGFkXHU3NGIxXHU3NGE1XHU3NGFmXHU3NTEwXHU3NTExXHU3NTEyXHU3NTBmXHU3NTg0XHU3NjQz''@;'; + put 'put ''XHU3NjQ4XHU3NjQ5XHU3NjQ3XHU3NmE0XHU3NmU5XHU3N2I1XHU3N2FiXHU3N2IyXHU3N2I3XHU3N2I2XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3N2I0XHU3N2IxXHU3N2E4XHU3N2YwXHU3OGYzXHU3OGZkXHU3OTAyXHU3OGZiXHU3OGZjXHU3OGYyXHU3OTA1''@;'; + put 'put ''XHU3OGY5XHU3OGZlXHU3OTA0XHU3OWFiXHU3OWE4XHU3YTVjXHU3YTViXHU3YTU2XHU3YTU4XHU3YTU0XHU3YTVhXHU3YWJlXHU3YWMwXHU3YWMxXHU3YzA1XHU3YzBmXHU3YmYyXHU3YzAwXHU3YmZmXHU3YmZiXHU3YzBlXHU3YmY0XHU3YzBiXHU3YmYzXHU3YzAyXHU3YzA5XHU3YzAzXHU3''@;'; + put 'put ''YzAxXHU3YmY4XHU3YmZkXHU3YzA2XHU3YmYwXHU3YmYxXHU3YzEwXHU3YzBhXHU3Y2U4XHU3ZTJkXHU3ZTNjXHU3ZTQyXHU3ZTMzXHU5ODQ4XHU3ZTM4XHU3ZTJhXHU3ZTQ5XHU3ZTQwXHU3ZTQ3XHU3ZTI5XHU3ZTRjXHU3ZTMwXHU3ZTNiXHU3ZTM2XHU3ZTQ0XHU3ZTNhXHU3ZjQ1XHU3Zjdm''@;'; + put 'put ''XHU3ZjdlXHU3ZjdkXHU3ZmY0XHU3ZmYyXHU4MDJjXHU4MWJiXHU4MWM0XHU4MWNjXHU4MWNhXHU4MWM1XHU4MWM3XHU4MWJjXHU4MWU5XHU4MjViXHU4MjVhXHU4MjVjXHU4NTgzXHU4NTgwXHU4NThmXHU4NWE3XHU4NTk1XHU4NWEwXHU4NThiXHU4NWEzXHU4NTdiXHU4NWE0XHU4NTlhXHU4''@;'; + put 'put ''NTllXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjM3XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMzddW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIzN11bRV1dPTYwNjcyK0UsTFs2MDY3MitFXT1CWzIzN11bRV0pO2ZvcihCWzIzOF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ODU3N1x1ODU3Y1x1ODU4OVx1ODVhMVx1ODU3YVx1ODU3OFx1ODU1N1x1ODU4ZVx1ODU5Nlx1ODU4Nlx1ODU4ZFx1ODU5OVx1ODU5ZFx1ODU4MVx1ODVhMlx1ODU4Mlx1ODU4OFx1ODU4NVx1ODU3OVx1ODU3Nlx1ODU5OFx1ODU5MFx1ODU5Zlx1''@;'; + put 'put ''ODY2OFx1ODdiZVx1ODdhYVx1ODdhZFx1ODdjNVx1ODdiMFx1ODdhY1x1ODdiOVx1ODdiNVx1ODdiY1x1ODdhZVx1ODdjOVx1ODdjM1x1ODdjMlx1ODdjY1x1ODdiN1x1ODdhZlx1ODdjNFx1ODdjYVx1ODdiNFx1ODdiNlx1ODdiZlx1ODdiOFx1ODdiZFx1ODdkZVx1ODdiMlx1ODkzNVx1ODkz''@;'; + put 'put ''M1x1ODkzY1x1ODkzZVx1ODk0MVx1ODk1Mlx1ODkzN1x1ODk0Mlx1ODlhZFx1ODlhZlx1ODlhZVx1ODlmMlx1ODlmM1x1OGIxZVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OGIxOFx1OGIxNlx1OGIxMVx1OGIwNVx1OGIwYlx1OGIyMlx1OGIwZlx1OGIxMlx1OGIx''@;'; + put 'put ''NVx1OGIwN1x1OGIwZFx1OGIwOFx1OGIwNlx1OGIxY1x1OGIxM1x1OGIxYVx1OGM0Zlx1OGM3MFx1OGM3Mlx1OGM3MVx1OGM2Zlx1OGM5NVx1OGM5NFx1OGNmOVx1OGQ2Zlx1OGU0ZVx1OGU0ZFx1OGU1M1x1OGU1MFx1OGU0Y1x1OGU0N1x1OGY0M1x1OGY0MFx1OTA4NVx1OTA3ZVx1OTEzOFx1''@;'; + put 'put ''OTE5YVx1OTFhMlx1OTE5Ylx1OTE5OVx1OTE5Zlx1OTFhMVx1OTE5ZFx1OTFhMFx1OTNhMVx1OTM4M1x1OTNhZlx1OTM2NFx1OTM1Nlx1OTM0N1x1OTM3Y1x1OTM1OFx1OTM1Y1x1OTM3Nlx1OTM0OVx1OTM1MFx1OTM1MVx1OTM2MFx1OTM2ZFx1OTM4Zlx1OTM0Y1x1OTM2YVx1OTM3OVx1OTM1''@;'; + put 'put ''N1x1OTM1NVx1OTM1Mlx1OTM0Zlx1OTM3MVx1OTM3N1x1OTM3Ylx1OTM2MVx1OTM1ZVx1OTM2M1x1OTM2N1x1OTM4MFx1OTM0ZVx1OTM1OVx1OTVjN1x1OTVjMFx1OTVjOVx1OTVjM1x1OTVjNVx1OTViN1x1OTZhZVx1OTZiMFx1OTZhY1x1OTcyMFx1OTcxZlx1OTcxOFx1OTcxZFx1OTcxOVx1''@;'; + put 'put ''OTc5YVx1OTdhMVx1OTc5Y1x1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIzOF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjM4XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMzhdW0VdXT02MDkyOCtFLExbNjA5MjgrRV09QlsyMzhdW0VdKTtmb3IoQlsyMzldPSJcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTk3OWVcdTk3OWRcdTk3ZDVcdTk3ZDRcdTk3ZjFcdTk4NDFcdTk4NDRcdTk4NGFcdTk4NDlcdTk4NDVcdTk4NDNcdTk5MjVcdTk5MmJcdTk5MmNcdTk5MmFcdTk5MzNcdTk5MzJcdTk5MmZcdTk5MmRcdTk5MzFcdTk5MzBc''@;'; + put 'put ''dTk5OThcdTk5YTNcdTk5YTFcdTlhMDJcdTk5ZmFcdTk5ZjRcdTk5ZjdcdTk5ZjlcdTk5ZjhcdTk5ZjZcdTk5ZmJcdTk5ZmRcdTk5ZmVcdTk5ZmNcdTlhMDNcdTlhYmVcdTlhZmVcdTlhZmRcdTliMDFcdTlhZmNcdTliNDhcdTliOWFcdTliYThcdTliOWVcdTliOWJcdTliYTZcdTliYTFcdTli''@;'; + put 'put ''YTVcdTliYTRcdTliODZcdTliYTJcdTliYTBcdTliYWZcdTlkMzNcdTlkNDFcdTlkNjdcdTlkMzZcdTlkMmVcdTlkMmZcdTlkMzFcdTlkMzhcdTlkMzBcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTlkNDVcdTlkNDJcdTlkNDNcdTlkM2VcdTlkMzdcdTlkNDBcdTlk''@;'; + put 'put ''M2RcdTdmZjVcdTlkMmRcdTllOGFcdTllODlcdTllOGRcdTllYjBcdTllYzhcdTllZGFcdTllZmJcdTllZmZcdTlmMjRcdTlmMjNcdTlmMjJcdTlmNTRcdTlmYTBcdTUxMzFcdTUxMmRcdTUxMmVcdTU2OThcdTU2OWNcdTU2OTdcdTU2OWFcdTU2OWRcdTU2OTlcdTU5NzBcdTViM2NcdTVjNjlc''@;'; + put 'put ''dTVjNmFcdTVkYzBcdTVlNmRcdTVlNmVcdTYxZDhcdTYxZGZcdTYxZWRcdTYxZWVcdTYxZjFcdTYxZWFcdTYxZjBcdTYxZWJcdTYxZDZcdTYxZTlcdTY0ZmZcdTY1MDRcdTY0ZmRcdTY0ZjhcdTY1MDFcdTY1MDNcdTY0ZmNcdTY1OTRcdTY1ZGJcdTY2ZGFcdTY2ZGJcdTY2ZDhcdTZhYzVcdTZh''@;'; + put 'put ''YjlcdTZhYmRcdTZhZTFcdTZhYzZcdTZhYmFcdTZhYjZcdTZhYjdcdTZhYzdcdTZhYjRcdTZhYWRcdTZiNWVcdTZiYzlcdTZjMGJcdTcwMDdcdTcwMGNcdTcwMGRcdTcwMDFcdTcwMDVcdTcwMTRcdTcwMGVcdTZmZmZcdTcwMDBcdTZmZmJcdTcwMjZcdTZmZmNcdTZmZjdcdTcwMGFcdTcyMDFc''@;'; + put 'put ''dTcxZmZcdTcxZjlcdTcyMDNcdTcxZmRcdTczNzZcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMzldLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIzOV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjM5XVtFXV09NjExODQrRSxMWzYxMTg0K0VdPUJbMjM5XVtFXSk7Zm9yKEJbMjQwXT0iXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3NGI4XHU3NGMwXHU3NGI1XHU3NGMxXHU3NGJlXHU3NGI2XHU3NGJiXHU3NGMyXHU3NTE0XHU3NTEzXHU3NjVjXHU3NjY0XHU3NjU5XHU3NjUwXHU3NjUzXHU3NjU3XHU3NjVhXHU3NmE2XHU3NmJk''@;'; + put 'put ''XHU3NmVjXHU3N2MyXHU3N2JhXHU3OGZmXHU3OTBjXHU3OTEzXHU3OTE0XHU3OTA5XHU3OTEwXHU3OTEyXHU3OTExXHU3OWFkXHU3OWFjXHU3YTVmXHU3YzFjXHU3YzI5XHU3YzE5XHU3YzIwXHU3YzFmXHU3YzJkXHU3YzFkXHU3YzI2XHU3YzI4XHU3YzIyXHU3YzI1XHU3YzMwXHU3ZTVjXHU3''@;'; + put 'put ''ZTUwXHU3ZTU2XHU3ZTYzXHU3ZTU4XHU3ZTYyXHU3ZTVmXHU3ZTUxXHU3ZTYwXHU3ZTU3XHU3ZTUzXHU3ZmI1XHU3ZmIzXHU3ZmY3XHU3ZmY4XHU4MDc1XHU4MWQxXHU4MWQyXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4MWQwXHU4MjVmXHU4MjVlXHU4NWI0XHU4''@;'; + put 'put ''NWM2XHU4NWMwXHU4NWMzXHU4NWMyXHU4NWIzXHU4NWI1XHU4NWJkXHU4NWM3XHU4NWM0XHU4NWJmXHU4NWNiXHU4NWNlXHU4NWM4XHU4NWM1XHU4NWIxXHU4NWI2XHU4NWQyXHU4NjI0XHU4NWI4XHU4NWI3XHU4NWJlXHU4NjY5XHU4N2U3XHU4N2U2XHU4N2UyXHU4N2RiXHU4N2ViXHU4N2Vh''@;'; + put 'put ''XHU4N2U1XHU4N2RmXHU4N2YzXHU4N2U0XHU4N2Q0XHU4N2RjXHU4N2QzXHU4N2VkXHU4N2Q4XHU4N2UzXHU4N2E0XHU4N2Q3XHU4N2Q5XHU4ODAxXHU4N2Y0XHU4N2U4XHU4N2RkXHU4OTUzXHU4OTRiXHU4OTRmXHU4OTRjXHU4OTQ2XHU4OTUwXHU4OTUxXHU4OTQ5XHU4YjJhXHU4YjI3XHU4''@;'; + put 'put ''YjIzXHU4YjMzXHU4YjMwXHU4YjM1XHU4YjQ3XHU4YjJmXHU4YjNjXHU4YjNlXHU4YjMxXHU4YjI1XHU4YjM3XHU4YjI2XHU4YjM2XHU4YjJlXHU4YjI0XHU4YjNiXHU4YjNkXHU4YjNhXHU4YzQyXHU4Yzc1XHU4Yzk5XHU4Yzk4XHU4Yzk3XHU4Y2ZlXHU4ZDA0XHU4ZDAyXHU4ZDAwXHU4ZTVj''@;'; + put 'put ''XHU4ZTYyXHU4ZTYwXHU4ZTU3XHU4ZTU2XHU4ZTVlXHU4ZTY1XHU4ZTY3XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjQwXS5sZW5ndGg7KytFKTY1NTMzIT09QlsyNDBdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzI0MF1bRV1dPTYxNDQwK0UsTFs2MTQ0MCtFXT1CWzI0MF1bRV0pO2Zv''@;'; + put 'put ''cihCWzI0MV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OGU1Ylx1OGU1YVx1OGU2MVx1OGU1ZFx1OGU2OVx1OGU1NFx1OGY0Nlx1OGY0N1x1OGY0OFx1OGY0Ylx1OTEyOFx1OTEzYVx1OTEzYlx1OTEzZVx1OTFhOFx1OTFhNVx1OTFh''@;'; + put 'put ''N1x1OTFhZlx1OTFhYVx1OTNiNVx1OTM4Y1x1OTM5Mlx1OTNiN1x1OTM5Ylx1OTM5ZFx1OTM4OVx1OTNhN1x1OTM4ZVx1OTNhYVx1OTM5ZVx1OTNhNlx1OTM5NVx1OTM4OFx1OTM5OVx1OTM5Zlx1OTM4ZFx1OTNiMVx1OTM5MVx1OTNiMlx1OTNhNFx1OTNhOFx1OTNiNFx1OTNhM1x1OTNhNVx1''@;'; + put 'put ''OTVkMlx1OTVkM1x1OTVkMVx1OTZiM1x1OTZkN1x1OTZkYVx1NWRjMlx1OTZkZlx1OTZkOFx1OTZkZFx1OTcyM1x1OTcyMlx1OTcyNVx1OTdhY1x1OTdhZVx1OTdhOFx1OTdhYlx1OTdhNFx1OTdhYVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OTdhMlx1OTdhNVx1''@;'; + put 'put ''OTdkN1x1OTdkOVx1OTdkNlx1OTdkOFx1OTdmYVx1OTg1MFx1OTg1MVx1OTg1Mlx1OThiOFx1OTk0MVx1OTkzY1x1OTkzYVx1OWEwZlx1OWEwYlx1OWEwOVx1OWEwZFx1OWEwNFx1OWExMVx1OWEwYVx1OWEwNVx1OWEwN1x1OWEwNlx1OWFjMFx1OWFkY1x1OWIwOFx1OWIwNFx1OWIwNVx1OWIy''@;'; + put 'put ''OVx1OWIzNVx1OWI0YVx1OWI0Y1x1OWI0Ylx1OWJjN1x1OWJjNlx1OWJjM1x1OWJiZlx1OWJjMVx1OWJiNVx1OWJiOFx1OWJkM1x1OWJiNlx1OWJjNFx1OWJiOVx1OWJiZFx1OWQ1Y1x1OWQ1M1x1OWQ0Zlx1OWQ0YVx1OWQ1Ylx1OWQ0Ylx1OWQ1OVx1OWQ1Nlx1OWQ0Y1x1OWQ1N1x1OWQ1Mlx1''@;'; + put 'put ''OWQ1NFx1OWQ1Zlx1OWQ1OFx1OWQ1YVx1OWU4ZVx1OWU4Y1x1OWVkZlx1OWYwMVx1OWYwMFx1OWYxNlx1OWYyNVx1OWYyYlx1OWYyYVx1OWYyOVx1OWYyOFx1OWY0Y1x1OWY1NVx1NTEzNFx1NTEzNVx1NTI5Nlx1NTJmN1x1NTNiNFx1NTZhYlx1NTZhZFx1NTZhNlx1NTZhN1x1NTZhYVx1NTZh''@;'; + put 'put ''Y1x1NThkYVx1NThkZFx1NThkYlx1NTkxMlx1NWIzZFx1NWIzZVx1NWIzZlx1NWRjM1x1NWU3MFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzI0MV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjQxXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyNDFdW0VdXT02MTY5NitFLExbNjE2OTYrRV09''@;'; + put 'put ''QlsyNDFdW0VdKTtmb3IoQlsyNDJdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTVmYmZcdTYxZmJcdTY1MDdcdTY1MTBcdTY1MGRcdTY1MDlcdTY1MGNcdTY1MGVcdTY1ODRcdTY1ZGVcdTY1ZGRcdTY2ZGVcdTZhZTdcdTZhZTBcdTZh''@;'; + put 'put ''Y2NcdTZhZDFcdTZhZDlcdTZhY2JcdTZhZGZcdTZhZGNcdTZhZDBcdTZhZWJcdTZhY2ZcdTZhY2RcdTZhZGVcdTZiNjBcdTZiYjBcdTZjMGNcdTcwMTlcdTcwMjdcdTcwMjBcdTcwMTZcdTcwMmJcdTcwMjFcdTcwMjJcdTcwMjNcdTcwMjlcdTcwMTdcdTcwMjRcdTcwMWNcdTcwMmFcdTcyMGNc''@;'; + put 'put ''dTcyMGFcdTcyMDdcdTcyMDJcdTcyMDVcdTcyYTVcdTcyYTZcdTcyYTRcdTcyYTNcdTcyYTFcdTc0Y2JcdTc0YzVcdTc0YjdcdTc0YzNcdTc1MTZcdTc2NjBcdTc3YzlcdTc3Y2FcdTc3YzRcdTc3ZjFcdTc5MWRcdTc5MWJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dTc5MjFcdTc5MWNcdTc5MTdcdTc5MWVcdTc5YjBcdTdhNjdcdTdhNjhcdTdjMzNcdTdjM2NcdTdjMzlcdTdjMmNcdTdjM2JcdTdjZWNcdTdjZWFcdTdlNzZcdTdlNzVcdTdlNzhcdTdlNzBcdTdlNzdcdTdlNmZcdTdlN2FcdTdlNzJcdTdlNzRcdTdlNjhcdTdmNGJcdTdmNGFcdTdmODNcdTdm''@;'; + put 'put ''ODZcdTdmYjdcdTdmZmRcdTdmZmVcdTgwNzhcdTgxZDdcdTgxZDVcdTgyNjRcdTgyNjFcdTgyNjNcdTg1ZWJcdTg1ZjFcdTg1ZWRcdTg1ZDlcdTg1ZTFcdTg1ZThcdTg1ZGFcdTg1ZDdcdTg1ZWNcdTg1ZjJcdTg1ZjhcdTg1ZDhcdTg1ZGZcdTg1ZTNcdTg1ZGNcdTg1ZDFcdTg1ZjBcdTg1ZTZc''@;'; + put 'put ''dTg1ZWZcdTg1ZGVcdTg1ZTJcdTg4MDBcdTg3ZmFcdTg4MDNcdTg3ZjZcdTg3ZjdcdTg4MDlcdTg4MGNcdTg4MGJcdTg4MDZcdTg3ZmNcdTg4MDhcdTg3ZmZcdTg4MGFcdTg4MDJcdTg5NjJcdTg5NWFcdTg5NWJcdTg5NTdcdTg5NjFcdTg5NWNcdTg5NThcdTg5NWRcdTg5NTlcdTg5ODhcdTg5''@;'; + put 'put ''YjdcdTg5YjZcdTg5ZjZcdThiNTBcdThiNDhcdThiNGFcdThiNDBcdThiNTNcdThiNTZcdThiNTRcdThiNGJcdThiNTVcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyNDJdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzI0Ml1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjQyXVtFXV09NjE5NTIr''@;'; + put 'put ''RSxMWzYxOTUyK0VdPUJbMjQyXVtFXSk7Zm9yKEJbMjQzXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4YjUxXHU4YjQyXHU4YjUyXHU4YjU3XHU4YzQzXHU4Yzc3XHU4Yzc2XHU4YzlhXHU4ZDA2XHU4ZDA3XHU4ZDA5XHU4ZGFjXHU4''@;'; + put 'put ''ZGFhXHU4ZGFkXHU4ZGFiXHU4ZTZkXHU4ZTc4XHU4ZTczXHU4ZTZhXHU4ZTZmXHU4ZTdiXHU4ZWMyXHU4ZjUyXHU4ZjUxXHU4ZjRmXHU4ZjUwXHU4ZjUzXHU4ZmI0XHU5MTQwXHU5MTNmXHU5MWIwXHU5MWFkXHU5M2RlXHU5M2M3XHU5M2NmXHU5M2MyXHU5M2RhXHU5M2QwXHU5M2Y5XHU5M2Vj''@;'; + put 'put ''XHU5M2NjXHU5M2Q5XHU5M2E5XHU5M2U2XHU5M2NhXHU5M2Q0XHU5M2VlXHU5M2UzXHU5M2Q1XHU5M2M0XHU5M2NlXHU5M2MwXHU5M2QyXHU5M2U3XHU5NTdkXHU5NWRhXHU5NWRiXHU5NmUxXHU5NzI5XHU5NzJiXHU5NzJjXHU5NzI4XHU5NzI2XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHU5N2IzXHU5N2I3XHU5N2I2XHU5N2RkXHU5N2RlXHU5N2RmXHU5ODVjXHU5ODU5XHU5ODVkXHU5ODU3XHU5OGJmXHU5OGJkXHU5OGJiXHU5OGJlXHU5OTQ4XHU5OTQ3XHU5OTQzXHU5OWE2XHU5OWE3XHU5YTFhXHU5YTE1XHU5YTI1XHU5YTFkXHU5YTI0XHU5YTFiXHU5''@;'; + put 'put ''YTIyXHU5YTIwXHU5YTI3XHU5YTIzXHU5YTFlXHU5YTFjXHU5YTE0XHU5YWMyXHU5YjBiXHU5YjBhXHU5YjBlXHU5YjBjXHU5YjM3XHU5YmVhXHU5YmViXHU5YmUwXHU5YmRlXHU5YmU0XHU5YmU2XHU5YmUyXHU5YmYwXHU5YmQ0XHU5YmQ3XHU5YmVjXHU5YmRjXHU5YmQ5XHU5YmU1XHU5YmQ1''@;'; + put 'put ''XHU5YmUxXHU5YmRhXHU5ZDc3XHU5ZDgxXHU5ZDhhXHU5ZDg0XHU5ZDg4XHU5ZDcxXHU5ZDgwXHU5ZDc4XHU5ZDg2XHU5ZDhiXHU5ZDhjXHU5ZDdkXHU5ZDZiXHU5ZDc0XHU5ZDc1XHU5ZDcwXHU5ZDY5XHU5ZDg1XHU5ZDczXHU5ZDdiXHU5ZDgyXHU5ZDZmXHU5ZDc5XHU5ZDdmXHU5ZDg3XHU5''@;'; + put 'put ''ZDY4XHU5ZTk0XHU5ZTkxXHU5ZWMwXHU5ZWZjXHU5ZjJkXHU5ZjQwXHU5ZjQxXHU5ZjRkXHU5ZjU2XHU5ZjU3XHU5ZjU4XHU1MzM3XHU1NmIyXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjQzXS5sZW5ndGg7KytFKTY1NTMzIT09QlsyNDNdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzI0''@;'; + put 'put ''M11bRV1dPTYyMjA4K0UsTFs2MjIwOCtFXT1CWzI0M11bRV0pO2ZvcihCWzI0NF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NTZiNVx1NTZiM1x1NThlM1x1NWI0NVx1NWRjNlx1NWRjN1x1NWVlZVx1NWVlZlx1NWZjMFx1NWZjMVx1''@;'; + put 'put ''NjFmOVx1NjUxN1x1NjUxNlx1NjUxNVx1NjUxM1x1NjVkZlx1NjZlOFx1NjZlM1x1NjZlNFx1NmFmM1x1NmFmMFx1NmFlYVx1NmFlOFx1NmFmOVx1NmFmMVx1NmFlZVx1NmFlZlx1NzAzY1x1NzAzNVx1NzAyZlx1NzAzN1x1NzAzNFx1NzAzMVx1NzA0Mlx1NzAzOFx1NzAzZlx1NzAzYVx1NzAz''@;'; + put 'put ''OVx1NzA0MFx1NzAzYlx1NzAzM1x1NzA0MVx1NzIxM1x1NzIxNFx1NzJhOFx1NzM3ZFx1NzM3Y1x1NzRiYVx1NzZhYlx1NzZhYVx1NzZiZVx1NzZlZFx1NzdjY1x1NzdjZVx1NzdjZlx1NzdjZFx1NzdmMlx1NzkyNVx1NzkyM1x1NzkyN1x1NzkyOFx1NzkyNFx1NzkyOVx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NzliMlx1N2E2ZVx1N2E2Y1x1N2E2ZFx1N2FmN1x1N2M0OVx1N2M0OFx1N2M0YVx1N2M0N1x1N2M0NVx1N2NlZVx1N2U3Ylx1N2U3ZVx1N2U4MVx1N2U4MFx1N2ZiYVx1N2ZmZlx1ODA3OVx1ODFkYlx1ODFkOVx1ODIwYlx1ODI2OFx1ODI2OVx1''@;'; + put 'put ''ODYyMlx1ODVmZlx1ODYwMVx1ODVmZVx1ODYxYlx1ODYwMFx1ODVmNlx1ODYwNFx1ODYwOVx1ODYwNVx1ODYwY1x1ODVmZFx1ODgxOVx1ODgxMFx1ODgxMVx1ODgxN1x1ODgxM1x1ODgxNlx1ODk2M1x1ODk2Nlx1ODliOVx1ODlmN1x1OGI2MFx1OGI2YVx1OGI1ZFx1OGI2OFx1OGI2M1x1OGI2''@;'; + put 'put ''NVx1OGI2N1x1OGI2ZFx1OGRhZVx1OGU4Nlx1OGU4OFx1OGU4NFx1OGY1OVx1OGY1Nlx1OGY1N1x1OGY1NVx1OGY1OFx1OGY1YVx1OTA4ZFx1OTE0M1x1OTE0MVx1OTFiN1x1OTFiNVx1OTFiMlx1OTFiM1x1OTQwYlx1OTQxM1x1OTNmYlx1OTQyMFx1OTQwZlx1OTQxNFx1OTNmZVx1OTQxNVx1''@;'; + put 'put ''OTQxMFx1OTQyOFx1OTQxOVx1OTQwZFx1OTNmNVx1OTQwMFx1OTNmN1x1OTQwN1x1OTQwZVx1OTQxNlx1OTQxMlx1OTNmYVx1OTQwOVx1OTNmOFx1OTQwYVx1OTNmZlx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzI0NF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjQ0XVtFXS5jaGFyQ29kZUF0''@;'; + put 'put ''KDApJiYobWVbQlsyNDRdW0VdXT02MjQ2NCtFLExbNjI0NjQrRV09QlsyNDRdW0VdKTtmb3IoQlsyNDVdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTkzZmNcdTk0MGNcdTkzZjZcdTk0MTFcdTk0MDZcdTk1ZGVcdTk1ZTBcdTk1ZGZc''@;'; + put 'put ''dTk3MmVcdTk3MmZcdTk3YjlcdTk3YmJcdTk3ZmRcdTk3ZmVcdTk4NjBcdTk4NjJcdTk4NjNcdTk4NWZcdTk4YzFcdTk4YzJcdTk5NTBcdTk5NGVcdTk5NTlcdTk5NGNcdTk5NGJcdTk5NTNcdTlhMzJcdTlhMzRcdTlhMzFcdTlhMmNcdTlhMmFcdTlhMzZcdTlhMjlcdTlhMmVcdTlhMzhcdTlh''@;'; + put 'put ''MmRcdTlhYzdcdTlhY2FcdTlhYzZcdTliMTBcdTliMTJcdTliMTFcdTljMGJcdTljMDhcdTliZjdcdTljMDVcdTljMTJcdTliZjhcdTljNDBcdTljMDdcdTljMGVcdTljMDZcdTljMTdcdTljMTRcdTljMDlcdTlkOWZcdTlkOTlcdTlkYTRcdTlkOWRcdTlkOTJcdTlkOThcdTlkOTBcdTlkOWJc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTlkYTBcdTlkOTRcdTlkOWNcdTlkYWFcdTlkOTdcdTlkYTFcdTlkOWFcdTlkYTJcdTlkYThcdTlkOWVcdTlkYTNcdTlkYmZcdTlkYTlcdTlkOTZcdTlkYTZcdTlkYTdcdTllOTlcdTllOWJcdTllOWFcdTllZTVcdTllZTRc''@;'; + put 'put ''dTllZTdcdTllZTZcdTlmMzBcdTlmMmVcdTlmNWJcdTlmNjBcdTlmNWVcdTlmNWRcdTlmNTlcdTlmOTFcdTUxM2FcdTUxMzlcdTUyOThcdTUyOTdcdTU2YzNcdTU2YmRcdTU2YmVcdTViNDhcdTViNDdcdTVkY2JcdTVkY2ZcdTVlZjFcdTYxZmRcdTY1MWJcdTZiMDJcdTZhZmNcdTZiMDNcdTZh''@;'; + put 'put ''ZjhcdTZiMDBcdTcwNDNcdTcwNDRcdTcwNGFcdTcwNDhcdTcwNDlcdTcwNDVcdTcwNDZcdTcyMWRcdTcyMWFcdTcyMTlcdTczN2VcdTc1MTdcdTc2NmFcdTc3ZDBcdTc5MmRcdTc5MzFcdTc5MmZcdTdjNTRcdTdjNTNcdTdjZjJcdTdlOGFcdTdlODdcdTdlODhcdTdlOGJcdTdlODZcdTdlOGRc''@;'; + put 'put ''dTdmNGRcdTdmYmJcdTgwMzBcdTgxZGRcdTg2MThcdTg2MmFcdTg2MjZcdTg2MWZcdTg2MjNcdTg2MWNcdTg2MTlcdTg2MjdcdTg2MmVcdTg2MjFcdTg2MjBcdTg2MjlcdTg2MWVcdTg2MjVcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyNDVdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzI0NV1b''@;'; + put 'put ''RV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjQ1XVtFXV09NjI3MjArRSxMWzYyNzIwK0VdPUJbMjQ1XVtFXSk7Zm9yKEJbMjQ2XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4ODI5XHU4ODFkXHU4ODFiXHU4ODIwXHU4ODI0XHU4ODFj''@;'; + put 'put ''XHU4ODJiXHU4ODRhXHU4OTZkXHU4OTY5XHU4OTZlXHU4OTZiXHU4OWZhXHU4Yjc5XHU4Yjc4XHU4YjQ1XHU4YjdhXHU4YjdiXHU4ZDEwXHU4ZDE0XHU4ZGFmXHU4ZThlXHU4ZThjXHU4ZjVlXHU4ZjViXHU4ZjVkXHU5MTQ2XHU5MTQ0XHU5MTQ1XHU5MWI5XHU5NDNmXHU5NDNiXHU5NDM2XHU5''@;'; + put 'put ''NDI5XHU5NDNkXHU5NDNjXHU5NDMwXHU5NDM5XHU5NDJhXHU5NDM3XHU5NDJjXHU5NDQwXHU5NDMxXHU5NWU1XHU5NWU0XHU5NWUzXHU5NzM1XHU5NzNhXHU5N2JmXHU5N2UxXHU5ODY0XHU5OGM5XHU5OGM2XHU5OGMwXHU5OTU4XHU5OTU2XHU5YTM5XHU5YTNkXHU5YTQ2XHU5YTQ0XHU5YTQy''@;'; + put 'put ''XHU5YTQxXHU5YTNhXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5YTNmXHU5YWNkXHU5YjE1XHU5YjE3XHU5YjE4XHU5YjE2XHU5YjNhXHU5YjUyXHU5YzJiXHU5YzFkXHU5YzFjXHU5YzJjXHU5YzIzXHU5YzI4XHU5YzI5XHU5YzI0XHU5YzIxXHU5ZGI3XHU5ZGI2''@;'; + put 'put ''XHU5ZGJjXHU5ZGMxXHU5ZGM3XHU5ZGNhXHU5ZGNmXHU5ZGJlXHU5ZGM1XHU5ZGMzXHU5ZGJiXHU5ZGI1XHU5ZGNlXHU5ZGI5XHU5ZGJhXHU5ZGFjXHU5ZGM4XHU5ZGIxXHU5ZGFkXHU5ZGNjXHU5ZGIzXHU5ZGNkXHU5ZGIyXHU5ZTdhXHU5ZTljXHU5ZWViXHU5ZWVlXHU5ZWVkXHU5ZjFiXHU5''@;'; + put 'put ''ZjE4XHU5ZjFhXHU5ZjMxXHU5ZjRlXHU5ZjY1XHU5ZjY0XHU5ZjkyXHU0ZWI5XHU1NmM2XHU1NmM1XHU1NmNiXHU1OTcxXHU1YjRiXHU1YjRjXHU1ZGQ1XHU1ZGQxXHU1ZWYyXHU2NTIxXHU2NTIwXHU2NTI2XHU2NTIyXHU2YjBiXHU2YjA4XHU2YjA5XHU2YzBkXHU3MDU1XHU3MDU2XHU3MDU3''@;'; + put 'put ''XHU3MDUyXHU3MjFlXHU3MjFmXHU3MmE5XHU3MzdmXHU3NGQ4XHU3NGQ1XHU3NGQ5XHU3NGQ3XHU3NjZkXHU3NmFkXHU3OTM1XHU3OWI0XHU3YTcwXHU3YTcxXHU3YzU3XHU3YzVjXHU3YzU5XHU3YzViXHU3YzVhXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjQ2XS5sZW5ndGg7KytFKTY1''@;'; + put 'put ''NTMzIT09QlsyNDZdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzI0Nl1bRV1dPTYyOTc2K0UsTFs2Mjk3NitFXT1CWzI0Nl1bRV0pO2ZvcihCWzI0N109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1N2NmNFx1N2NmMVx1N2U5MVx1N2Y0''@;'; + put 'put ''Zlx1N2Y4N1x1ODFkZVx1ODI2Ylx1ODYzNFx1ODYzNVx1ODYzM1x1ODYyY1x1ODYzMlx1ODYzNlx1ODgyY1x1ODgyOFx1ODgyNlx1ODgyYVx1ODgyNVx1ODk3MVx1ODliZlx1ODliZVx1ODlmYlx1OGI3ZVx1OGI4NFx1OGI4Mlx1OGI4Nlx1OGI4NVx1OGI3Zlx1OGQxNVx1OGU5NVx1OGU5NFx1''@;'; + put 'put ''OGU5YVx1OGU5Mlx1OGU5MFx1OGU5Nlx1OGU5N1x1OGY2MFx1OGY2Mlx1OTE0N1x1OTQ0Y1x1OTQ1MFx1OTQ0YVx1OTQ0Ylx1OTQ0Zlx1OTQ0N1x1OTQ0NVx1OTQ0OFx1OTQ0OVx1OTQ0Nlx1OTczZlx1OTdlM1x1OTg2YVx1OTg2OVx1OThjYlx1OTk1NFx1OTk1Ylx1OWE0ZVx1OWE1M1x1OWE1''@;'; + put 'put ''NFx1OWE0Y1x1OWE0Zlx1OWE0OFx1OWE0YVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OWE0OVx1OWE1Mlx1OWE1MFx1OWFkMFx1OWIxOVx1OWIyYlx1OWIzYlx1OWI1Nlx1OWI1NVx1OWM0Nlx1OWM0OFx1OWMzZlx1OWM0NFx1OWMzOVx1OWMzM1x1OWM0MVx1OWMz''@;'; + put 'put ''Y1x1OWMzN1x1OWMzNFx1OWMzMlx1OWMzZFx1OWMzNlx1OWRkYlx1OWRkMlx1OWRkZVx1OWRkYVx1OWRjYlx1OWRkMFx1OWRkY1x1OWRkMVx1OWRkZlx1OWRlOVx1OWRkOVx1OWRkOFx1OWRkNlx1OWRmNVx1OWRkNVx1OWRkZFx1OWViNlx1OWVmMFx1OWYzNVx1OWYzM1x1OWYzMlx1OWY0Mlx1''@;'; + put 'put ''OWY2Ylx1OWY5NVx1OWZhMlx1NTEzZFx1NTI5OVx1NThlOFx1NThlN1x1NTk3Mlx1NWI0ZFx1NWRkOFx1ODgyZlx1NWY0Zlx1NjIwMVx1NjIwM1x1NjIwNFx1NjUyOVx1NjUyNVx1NjU5Nlx1NjZlYlx1NmIxMVx1NmIxMlx1NmIwZlx1NmJjYVx1NzA1Ylx1NzA1YVx1NzIyMlx1NzM4Mlx1NzM4''@;'; + put 'put ''MVx1NzM4M1x1NzY3MFx1NzdkNFx1N2M2N1x1N2M2Nlx1N2U5NVx1ODI2Y1x1ODYzYVx1ODY0MFx1ODYzOVx1ODYzY1x1ODYzMVx1ODYzYlx1ODYzZVx1ODgzMFx1ODgzMlx1ODgyZVx1ODgzM1x1ODk3Nlx1ODk3NFx1ODk3M1x1ODlmZVx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzI0N10u''@;'; + put 'put ''bGVuZ3RoOysrRSk2NTUzMyE9PUJbMjQ3XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyNDddW0VdXT02MzIzMitFLExbNjMyMzIrRV09QlsyNDddW0VdKTtmb3IoQlsyNDhdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdThiOGNcdThi''@;'; + put 'put ''OGVcdThiOGJcdThiODhcdThjNDVcdThkMTlcdThlOThcdThmNjRcdThmNjNcdTkxYmNcdTk0NjJcdTk0NTVcdTk0NWRcdTk0NTdcdTk0NWVcdTk3YzRcdTk3YzVcdTk4MDBcdTlhNTZcdTlhNTlcdTliMWVcdTliMWZcdTliMjBcdTljNTJcdTljNThcdTljNTBcdTljNGFcdTljNGRcdTljNGJc''@;'; + put 'put ''dTljNTVcdTljNTlcdTljNGNcdTljNGVcdTlkZmJcdTlkZjdcdTlkZWZcdTlkZTNcdTlkZWJcdTlkZjhcdTlkZTRcdTlkZjZcdTlkZTFcdTlkZWVcdTlkZTZcdTlkZjJcdTlkZjBcdTlkZTJcdTlkZWNcdTlkZjRcdTlkZjNcdTlkZThcdTlkZWRcdTllYzJcdTllZDBcdTllZjJcdTllZjNcdTlm''@;'; + put 'put ''MDZcdTlmMWNcdTlmMzhcdTlmMzdcdTlmMzZcdTlmNDNcdTlmNGZcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTlmNzFcdTlmNzBcdTlmNmVcdTlmNmZcdTU2ZDNcdTU2Y2RcdTViNGVcdTVjNmRcdTY1MmRcdTY2ZWRcdTY2ZWVcdTZiMTNcdTcwNWZcdTcwNjFcdTcw''@;'; + put 'put ''NWRcdTcwNjBcdTcyMjNcdTc0ZGJcdTc0ZTVcdTc3ZDVcdTc5MzhcdTc5YjdcdTc5YjZcdTdjNmFcdTdlOTdcdTdmODlcdTgyNmRcdTg2NDNcdTg4MzhcdTg4MzdcdTg4MzVcdTg4NGJcdThiOTRcdThiOTVcdThlOWVcdThlOWZcdThlYTBcdThlOWRcdTkxYmVcdTkxYmRcdTkxYzJcdTk0NmJc''@;'; + put 'put ''dTk0NjhcdTk0NjlcdTk2ZTVcdTk3NDZcdTk3NDNcdTk3NDdcdTk3YzdcdTk3ZTVcdTlhNWVcdTlhZDVcdTliNTlcdTljNjNcdTljNjdcdTljNjZcdTljNjJcdTljNWVcdTljNjBcdTllMDJcdTlkZmVcdTllMDdcdTllMDNcdTllMDZcdTllMDVcdTllMDBcdTllMDFcdTllMDlcdTlkZmZcdTlk''@;'; + put 'put ''ZmRcdTllMDRcdTllYTBcdTlmMWVcdTlmNDZcdTlmNzRcdTlmNzVcdTlmNzZcdTU2ZDRcdTY1MmVcdTY1YjhcdTZiMThcdTZiMTlcdTZiMTdcdTZiMWFcdTcwNjJcdTcyMjZcdTcyYWFcdTc3ZDhcdTc3ZDlcdTc5MzlcdTdjNjlcdTdjNmJcdTdjZjZcdTdlOWFcdWZmZmQiLnNwbGl0KCIiKSxF''@;'; + put 'put ''PTA7RSE9QlsyNDhdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzI0OF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjQ4XVtFXV09NjM0ODgrRSxMWzYzNDg4K0VdPUJbMjQ4XVtFXSk7Zm9yKEJbMjQ5XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHU3ZTk4XHU3ZTliXHU3ZTk5XHU4MWUwXHU4MWUxXHU4NjQ2XHU4NjQ3XHU4NjQ4XHU4OTc5XHU4OTdhXHU4OTdjXHU4OTdiXHU4OWZmXHU4Yjk4XHU4Yjk5XHU4ZWE1XHU4ZWE0XHU4ZWEzXHU5NDZlXHU5NDZkXHU5NDZmXHU5NDcxXHU5NDczXHU5NzQ5XHU5ODcyXHU5OTVmXHU5YzY4''@;'; + put 'put ''XHU5YzZlXHU5YzZkXHU5ZTBiXHU5ZTBkXHU5ZTEwXHU5ZTBmXHU5ZTEyXHU5ZTExXHU5ZWExXHU5ZWY1XHU5ZjA5XHU5ZjQ3XHU5Zjc4XHU5ZjdiXHU5ZjdhXHU5Zjc5XHU1NzFlXHU3MDY2XHU3YzZmXHU4ODNjXHU4ZGIyXHU4ZWE2XHU5MWMzXHU5NDc0XHU5NDc4XHU5NDc2XHU5NDc1XHU5''@;'; + put 'put ''YTYwXHU5Yzc0XHU5YzczXHU5YzcxXHU5Yzc1XHU5ZTE0XHU5ZTEzXHU5ZWY2XHU5ZjBhXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5ZmE0XHU3MDY4XHU3MDY1XHU3Y2Y3XHU4NjZhXHU4ODNlXHU4ODNkXHU4ODNmXHU4YjllXHU4YzljXHU4ZWE5XHU4ZWM5XHU5''@;'; + put 'put ''NzRiXHU5ODczXHU5ODc0XHU5OGNjXHU5OTYxXHU5OWFiXHU5YTY0XHU5YTY2XHU5YTY3XHU5YjI0XHU5ZTE1XHU5ZTE3XHU5ZjQ4XHU2MjA3XHU2YjFlXHU3MjI3XHU4NjRjXHU4ZWE4XHU5NDgyXHU5NDgwXHU5NDgxXHU5YTY5XHU5YTY4XHU5YjJlXHU5ZTE5XHU3MjI5XHU4NjRiXHU4Yjlm''@;'; + put 'put ''XHU5NDgzXHU5Yzc5XHU5ZWI3XHU3Njc1XHU5YTZiXHU5YzdhXHU5ZTFkXHU3MDY5XHU3MDZhXHU5ZWE0XHU5ZjdlXHU5ZjQ5XHU5Zjk4XHU3ODgxXHU5MmI5XHU4OGNmXHU1OGJiXHU2MDUyXHU3Y2E3XHU1YWZhXHUyNTU0XHUyNTY2XHUyNTU3XHUyNTYwXHUyNTZjXHUyNTYzXHUyNTVhXHUy''@;'; + put 'put ''NTY5XHUyNTVkXHUyNTUyXHUyNTY0XHUyNTU1XHUyNTVlXHUyNTZhXHUyNTYxXHUyNTU4XHUyNTY3XHUyNTViXHUyNTUzXHUyNTY1XHUyNTU2XHUyNTVmXHUyNTZiXHUyNTYyXHUyNTU5XHUyNTY4XHUyNTVjXHUyNTUxXHUyNTUwXHUyNTZkXHUyNTZlXHUyNTcwXHUyNTZmXHUyNTkzXHVmZmZk''@;'; + put 'put ''Ii5zcGxpdCgiIiksRT0wO0UhPUJbMjQ5XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyNDldW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzI0OV1bRV1dPTYzNzQ0K0UsTFs2Mzc0NCtFXT1CWzI0OV1bRV0pO3JldHVybntlbmM6bWUsZGVjOkx9fSgpLEplWzEyNTBdPWZ1bmN0aW9uKCl7Zm9yKHZh''@;'; + put 'put ''ciBMPSJcMFx4MDFceDAyXHgwM1x4MDRceDA1XHgwNlx4MDdcYlx0XG5cdlxmXHJceDBlXHgwZlx4MTBceDExXHgxMlx4MTNceDE0XHgxNVx4MTZceDE3XHgxOFx4MTlceDFhXHgxYlx4MWNceDFkXHgxZVx4MWYgIVwiIyQlJicoKSorLC0uLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVGR0hJSktM''@;'; + put 'put ''TU5PUFFSU1RVVldYWVpbXFxdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+XHg3Zlx1MjBhY1x1ZmZmZFx1MjAxYVx1ZmZmZFx1MjAxZVx1MjAyNlx1MjAyMFx1MjAyMVx1ZmZmZFx1MjAzMFx1MDE2MFx1MjAzOVx1MDE1YVx1MDE2NFx1MDE3ZFx1MDE3OVx1ZmZmZFx1MjAxOFx1''@;'; + put 'put ''MjAxOVx1MjAxY1x1MjAxZFx1MjAyMlx1MjAxM1x1MjAxNFx1ZmZmZFx1MjEyMlx1MDE2MVx1MjAzYVx1MDE1Ylx1MDE2NVx1MDE3ZVx1MDE3YVx4YTBcdTAyYzdcdTAyZDhcdTAxNDFceGE0XHUwMTA0XHhhNlx4YTdceGE4XHhhOVx1MDE1ZVx4YWJceGFjXHhhZFx4YWVcdTAxN2JceGIwXHhi''@;'; + put 'put ''MVx1MDJkYlx1MDE0Mlx4YjRceGI1XHhiNlx4YjdceGI4XHUwMTA1XHUwMTVmXHhiYlx1MDEzZFx1MDJkZFx1MDEzZVx1MDE3Y1x1MDE1NFx4YzFceGMyXHUwMTAyXHhjNFx1MDEzOVx1MDEwNlx4YzdcdTAxMGNceGM5XHUwMTE4XHhjYlx1MDExYVx4Y2RceGNlXHUwMTBlXHUwMTEwXHUwMTQz''@;'; + put 'put ''XHUwMTQ3XHhkM1x4ZDRcdTAxNTBceGQ2XHhkN1x1MDE1OFx1MDE2ZVx4ZGFcdTAxNzBceGRjXHhkZFx1MDE2Mlx4ZGZcdTAxNTVceGUxXHhlMlx1MDEwM1x4ZTRcdTAxM2FcdTAxMDdceGU3XHUwMTBkXHhlOVx1MDExOVx4ZWJcdTAxMWJceGVkXHhlZVx1MDEwZlx1MDExMVx1MDE0NFx1MDE0''@;'; + put 'put ''OFx4ZjNceGY0XHUwMTUxXHhmNlx4ZjdcdTAxNTlcdTAxNmZceGZhXHUwMTcxXHhmY1x4ZmRcdTAxNjNcdTAyZDkiLG1lPVtdLEI9e30sRT0wO0UhPUwubGVuZ3RoOysrRSk2NTUzMyE9PUwuY2hhckNvZGVBdChFKSYmKEJbTC5jaGFyQXQoRSldPUUpLG1lW0VdPUwuY2hhckF0KEUpO3JldHVy''@;'; + put 'put ''bntlbmM6QixkZWM6bWV9fSgpLEplWzEyNTFdPWZ1bmN0aW9uKCl7Zm9yKHZhciBMPSJcMFx4MDFceDAyXHgwM1x4MDRceDA1XHgwNlx4MDdcYlx0XG5cdlxmXHJceDBlXHgwZlx4MTBceDExXHgxMlx4MTNceDE0XHgxNVx4MTZceDE3XHgxOFx4MTlceDFhXHgxYlx4MWNceDFkXHgxZVx4MWYg''@;'; + put 'put ''IVwiIyQlJicoKSorLC0uLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpbXFxdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+XHg3Zlx1MDQwMlx1MDQwM1x1MjAxYVx1MDQ1M1x1MjAxZVx1MjAyNlx1MjAyMFx1MjAyMVx1MjBhY1x1MjAzMFx1MDQw''@;'; + put 'put ''OVx1MjAzOVx1MDQwYVx1MDQwY1x1MDQwYlx1MDQwZlx1MDQ1Mlx1MjAxOFx1MjAxOVx1MjAxY1x1MjAxZFx1MjAyMlx1MjAxM1x1MjAxNFx1ZmZmZFx1MjEyMlx1MDQ1OVx1MjAzYVx1MDQ1YVx1MDQ1Y1x1MDQ1Ylx1MDQ1Zlx4YTBcdTA0MGVcdTA0NWVcdTA0MDhceGE0XHUwNDkwXHhhNlx4''@;'; + put 'put ''YTdcdTA0MDFceGE5XHUwNDA0XHhhYlx4YWNceGFkXHhhZVx1MDQwN1x4YjBceGIxXHUwNDA2XHUwNDU2XHUwNDkxXHhiNVx4YjZceGI3XHUwNDUxXHUyMTE2XHUwNDU0XHhiYlx1MDQ1OFx1MDQwNVx1MDQ1NVx1MDQ1N1x1MDQxMFx1MDQxMVx1MDQxMlx1MDQxM1x1MDQxNFx1MDQxNVx1MDQx''@;'; + put 'put ''Nlx1MDQxN1x1MDQxOFx1MDQxOVx1MDQxYVx1MDQxYlx1MDQxY1x1MDQxZFx1MDQxZVx1MDQxZlx1MDQyMFx1MDQyMVx1MDQyMlx1MDQyM1x1MDQyNFx1MDQyNVx1MDQyNlx1MDQyN1x1MDQyOFx1MDQyOVx1MDQyYVx1MDQyYlx1MDQyY1x1MDQyZFx1MDQyZVx1MDQyZlx1MDQzMFx1MDQzMVx1''@;'; + put 'put ''MDQzMlx1MDQzM1x1MDQzNFx1MDQzNVx1MDQzNlx1MDQzN1x1MDQzOFx1MDQzOVx1MDQzYVx1MDQzYlx1MDQzY1x1MDQzZFx1MDQzZVx1MDQzZlx1MDQ0MFx1MDQ0MVx1MDQ0Mlx1MDQ0M1x1MDQ0NFx1MDQ0NVx1MDQ0Nlx1MDQ0N1x1MDQ0OFx1MDQ0OVx1MDQ0YVx1MDQ0Ylx1MDQ0Y1x1MDQ0''@;'; + put 'put ''ZFx1MDQ0ZVx1MDQ0ZiIsbWU9W10sQj17fSxFPTA7RSE9TC5sZW5ndGg7KytFKTY1NTMzIT09TC5jaGFyQ29kZUF0KEUpJiYoQltMLmNoYXJBdChFKV09RSksbWVbRV09TC5jaGFyQXQoRSk7cmV0dXJue2VuYzpCLGRlYzptZX19KCksSmVbMTI1Ml09ZnVuY3Rpb24oKXtmb3IodmFyIEw9Ilww''@;'; + put 'put ''XHgwMVx4MDJceDAzXHgwNFx4MDVceDA2XHgwN1xiXHRcblx2XGZcclx4MGVceDBmXHgxMFx4MTFceDEyXHgxM1x4MTRceDE1XHgxNlx4MTdceDE4XHgxOVx4MWFceDFiXHgxY1x4MWRceDFlXHgxZiAhXCIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJT''@;'; + put 'put ''VFVWV1hZWltcXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5ceDdmXHUyMGFjXHVmZmZkXHUyMDFhXHUwMTkyXHUyMDFlXHUyMDI2XHUyMDIwXHUyMDIxXHUwMmM2XHUyMDMwXHUwMTYwXHUyMDM5XHUwMTUyXHVmZmZkXHUwMTdkXHVmZmZkXHVmZmZkXHUyMDE4XHUyMDE5XHUy''@;'; + put 'put ''MDFjXHUyMDFkXHUyMDIyXHUyMDEzXHUyMDE0XHUwMmRjXHUyMTIyXHUwMTYxXHUyMDNhXHUwMTUzXHVmZmZkXHUwMTdlXHUwMTc4XHhhMFx4YTFceGEyXHhhM1x4YTRceGE1XHhhNlx4YTdceGE4XHhhOVx4YWFceGFiXHhhY1x4YWRceGFlXHhhZlx4YjBceGIxXHhiMlx4YjNceGI0XHhiNVx4''@;'; + put 'put ''YjZceGI3XHhiOFx4YjlceGJhXHhiYlx4YmNceGJkXHhiZVx4YmZceGMwXHhjMVx4YzJceGMzXHhjNFx4YzVceGM2XHhjN1x4YzhceGM5XHhjYVx4Y2JceGNjXHhjZFx4Y2VceGNmXHhkMFx4ZDFceGQyXHhkM1x4ZDRceGQ1XHhkNlx4ZDdceGQ4XHhkOVx4ZGFceGRiXHhkY1x4ZGRceGRlXHhk''@;'; + put 'put ''Zlx4ZTBceGUxXHhlMlx4ZTNceGU0XHhlNVx4ZTZceGU3XHhlOFx4ZTlceGVhXHhlYlx4ZWNceGVkXHhlZVx4ZWZceGYwXHhmMVx4ZjJceGYzXHhmNFx4ZjVceGY2XHhmN1x4ZjhceGY5XHhmYVx4ZmJceGZjXHhmZFx4ZmVceGZmIixtZT1bXSxCPXt9LEU9MDtFIT1MLmxlbmd0aDsrK0UpNjU1''@;'; + put 'put ''MzMhPT1MLmNoYXJDb2RlQXQoRSkmJihCW0wuY2hhckF0KEUpXT1FKSxtZVtFXT1MLmNoYXJBdChFKTtyZXR1cm57ZW5jOkIsZGVjOm1lfX0oKSxKZVsxMjUzXT1mdW5jdGlvbigpe2Zvcih2YXIgTD0iXDBceDAxXHgwMlx4MDNceDA0XHgwNVx4MDZceDA3XGJcdFxuXHZcZlxyXHgwZVx4MGZc''@;'; + put 'put ''eDEwXHgxMVx4MTJceDEzXHgxNFx4MTVceDE2XHgxN1x4MThceDE5XHgxYVx4MWJceDFjXHgxZFx4MWVceDFmICFcIiMkJSYnKCkqKywtLi8wMTIzNDU2Nzg5Ojs8PT4/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaW1xcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9flx4N2Zc''@;'; + put 'put ''dTIwYWNcdWZmZmRcdTIwMWFcdTAxOTJcdTIwMWVcdTIwMjZcdTIwMjBcdTIwMjFcdWZmZmRcdTIwMzBcdWZmZmRcdTIwMzlcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTIwMThcdTIwMTlcdTIwMWNcdTIwMWRcdTIwMjJcdTIwMTNcdTIwMTRcdWZmZmRcdTIxMjJcdWZmZmRcdTIw''@;'; + put 'put ''M2FcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRceGEwXHUwMzg1XHUwMzg2XHhhM1x4YTRceGE1XHhhNlx4YTdceGE4XHhhOVx1ZmZmZFx4YWJceGFjXHhhZFx4YWVcdTIwMTVceGIwXHhiMVx4YjJceGIzXHUwMzg0XHhiNVx4YjZceGI3XHUwMzg4XHUwMzg5XHUwMzhhXHhiYlx1MDM4Y1x4YmRc''@;'; + put 'put ''dTAzOGVcdTAzOGZcdTAzOTBcdTAzOTFcdTAzOTJcdTAzOTNcdTAzOTRcdTAzOTVcdTAzOTZcdTAzOTdcdTAzOThcdTAzOTlcdTAzOWFcdTAzOWJcdTAzOWNcdTAzOWRcdTAzOWVcdTAzOWZcdTAzYTBcdTAzYTFcdWZmZmRcdTAzYTNcdTAzYTRcdTAzYTVcdTAzYTZcdTAzYTdcdTAzYThcdTAz''@;'; + put 'put ''YTlcdTAzYWFcdTAzYWJcdTAzYWNcdTAzYWRcdTAzYWVcdTAzYWZcdTAzYjBcdTAzYjFcdTAzYjJcdTAzYjNcdTAzYjRcdTAzYjVcdTAzYjZcdTAzYjdcdTAzYjhcdTAzYjlcdTAzYmFcdTAzYmJcdTAzYmNcdTAzYmRcdTAzYmVcdTAzYmZcdTAzYzBcdTAzYzFcdTAzYzJcdTAzYzNcdTAzYzRc''@;'; + put 'put ''dTAzYzVcdTAzYzZcdTAzYzdcdTAzYzhcdTAzYzlcdTAzY2FcdTAzY2JcdTAzY2NcdTAzY2RcdTAzY2VcdWZmZmQiLG1lPVtdLEI9e30sRT0wO0UhPUwubGVuZ3RoOysrRSk2NTUzMyE9PUwuY2hhckNvZGVBdChFKSYmKEJbTC5jaGFyQXQoRSldPUUpLG1lW0VdPUwuY2hhckF0KEUpO3JldHVy''@;'; + put 'put ''bntlbmM6QixkZWM6bWV9fSgpLEplWzEyNTRdPWZ1bmN0aW9uKCl7Zm9yKHZhciBMPSJcMFx4MDFceDAyXHgwM1x4MDRceDA1XHgwNlx4MDdcYlx0XG5cdlxmXHJceDBlXHgwZlx4MTBceDExXHgxMlx4MTNceDE0XHgxNVx4MTZceDE3XHgxOFx4MTlceDFhXHgxYlx4MWNceDFkXHgxZVx4MWYg''@;'; + put 'put ''IVwiIyQlJicoKSorLC0uLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpbXFxdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+XHg3Zlx1MjBhY1x1ZmZmZFx1MjAxYVx1MDE5Mlx1MjAxZVx1MjAyNlx1MjAyMFx1MjAyMVx1MDJjNlx1MjAzMFx1MDE2''@;'; + put 'put ''MFx1MjAzOVx1MDE1Mlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MjAxOFx1MjAxOVx1MjAxY1x1MjAxZFx1MjAyMlx1MjAxM1x1MjAxNFx1MDJkY1x1MjEyMlx1MDE2MVx1MjAzYVx1MDE1M1x1ZmZmZFx1ZmZmZFx1MDE3OFx4YTBceGExXHhhMlx4YTNceGE0XHhhNVx4YTZceGE3XHhhOFx4''@;'; + put 'put ''YTlceGFhXHhhYlx4YWNceGFkXHhhZVx4YWZceGIwXHhiMVx4YjJceGIzXHhiNFx4YjVceGI2XHhiN1x4YjhceGI5XHhiYVx4YmJceGJjXHhiZFx4YmVceGJmXHhjMFx4YzFceGMyXHhjM1x4YzRceGM1XHhjNlx4YzdceGM4XHhjOVx4Y2FceGNiXHhjY1x4Y2RceGNlXHhjZlx1MDExZVx4ZDFc''@;'; + put 'put ''eGQyXHhkM1x4ZDRceGQ1XHhkNlx4ZDdceGQ4XHhkOVx4ZGFceGRiXHhkY1x1MDEzMFx1MDE1ZVx4ZGZceGUwXHhlMVx4ZTJceGUzXHhlNFx4ZTVceGU2XHhlN1x4ZThceGU5XHhlYVx4ZWJceGVjXHhlZFx4ZWVceGVmXHUwMTFmXHhmMVx4ZjJceGYzXHhmNFx4ZjVceGY2XHhmN1x4ZjhceGY5''@;'; + put 'put ''XHhmYVx4ZmJceGZjXHUwMTMxXHUwMTVmXHhmZiIsbWU9W10sQj17fSxFPTA7RSE9TC5sZW5ndGg7KytFKTY1NTMzIT09TC5jaGFyQ29kZUF0KEUpJiYoQltMLmNoYXJBdChFKV09RSksbWVbRV09TC5jaGFyQXQoRSk7cmV0dXJue2VuYzpCLGRlYzptZX19KCksSmVbMTI1NV09ZnVuY3Rpb24o''@;'; + put 'put ''KXtmb3IodmFyIEw9IlwwXHgwMVx4MDJceDAzXHgwNFx4MDVceDA2XHgwN1xiXHRcblx2XGZcclx4MGVceDBmXHgxMFx4MTFceDEyXHgxM1x4MTRceDE1XHgxNlx4MTdceDE4XHgxOVx4MWFceDFiXHgxY1x4MWRceDFlXHgxZiAhXCIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+P0BBQkNE''@;'; + put 'put ''RUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5ceDdmXHUyMGFjXHVmZmZkXHUyMDFhXHUwMTkyXHUyMDFlXHUyMDI2XHUyMDIwXHUyMDIxXHUwMmM2XHUyMDMwXHVmZmZkXHUyMDM5XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHUyMDE4XHUyMDE5XHUyMDFjXHUyMDFkXHUyMDIyXHUyMDEzXHUyMDE0XHUwMmRjXHUyMTIyXHVmZmZkXHUyMDNhXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHhhMFx4YTFceGEyXHhhM1x1MjBhYVx4YTVceGE2XHhhN1x4YThceGE5XHhkN1x4YWJceGFjXHhhZFx4YWVceGFmXHhiMFx4YjFc''@;'; + put 'put ''eGIyXHhiM1x4YjRceGI1XHhiNlx4YjdceGI4XHhiOVx4ZjdceGJiXHhiY1x4YmRceGJlXHhiZlx1MDViMFx1MDViMVx1MDViMlx1MDViM1x1MDViNFx1MDViNVx1MDViNlx1MDViN1x1MDViOFx1MDViOVx1ZmZmZFx1MDViYlx1MDViY1x1MDViZFx1MDViZVx1MDViZlx1MDVjMFx1MDVjMVx1''@;'; + put 'put ''MDVjMlx1MDVjM1x1MDVmMFx1MDVmMVx1MDVmMlx1MDVmM1x1MDVmNFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MDVkMFx1MDVkMVx1MDVkMlx1MDVkM1x1MDVkNFx1MDVkNVx1MDVkNlx1MDVkN1x1MDVkOFx1MDVkOVx1MDVkYVx1MDVkYlx1MDVkY1x1MDVk''@;'; + put 'put ''ZFx1MDVkZVx1MDVkZlx1MDVlMFx1MDVlMVx1MDVlMlx1MDVlM1x1MDVlNFx1MDVlNVx1MDVlNlx1MDVlN1x1MDVlOFx1MDVlOVx1MDVlYVx1ZmZmZFx1ZmZmZFx1MjAwZVx1MjAwZlx1ZmZmZCIsbWU9W10sQj17fSxFPTA7RSE9TC5sZW5ndGg7KytFKTY1NTMzIT09TC5jaGFyQ29kZUF0KEUp''@;'; + put 'put ''JiYoQltMLmNoYXJBdChFKV09RSksbWVbRV09TC5jaGFyQXQoRSk7cmV0dXJue2VuYzpCLGRlYzptZX19KCksSmVbMTI1Nl09ZnVuY3Rpb24oKXtmb3IodmFyIEw9IlwwXHgwMVx4MDJceDAzXHgwNFx4MDVceDA2XHgwN1xiXHRcblx2XGZcclx4MGVceDBmXHgxMFx4MTFceDEyXHgxM1x4MTRc''@;'; + put 'put ''eDE1XHgxNlx4MTdceDE4XHgxOVx4MWFceDFiXHgxY1x4MWRceDFlXHgxZiAhXCIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5ceDdmXHUyMGFjXHUwNjdlXHUyMDFhXHUw''@;'; + put 'put ''MTkyXHUyMDFlXHUyMDI2XHUyMDIwXHUyMDIxXHUwMmM2XHUyMDMwXHUwNjc5XHUyMDM5XHUwMTUyXHUwNjg2XHUwNjk4XHUwNjg4XHUwNmFmXHUyMDE4XHUyMDE5XHUyMDFjXHUyMDFkXHUyMDIyXHUyMDEzXHUyMDE0XHUwNmE5XHUyMTIyXHUwNjkxXHUyMDNhXHUwMTUzXHUyMDBjXHUyMDBk''@;'; + put 'put ''XHUwNmJhXHhhMFx1MDYwY1x4YTJceGEzXHhhNFx4YTVceGE2XHhhN1x4YThceGE5XHUwNmJlXHhhYlx4YWNceGFkXHhhZVx4YWZceGIwXHhiMVx4YjJceGIzXHhiNFx4YjVceGI2XHhiN1x4YjhceGI5XHUwNjFiXHhiYlx4YmNceGJkXHhiZVx1MDYxZlx1MDZjMVx1MDYyMVx1MDYyMlx1MDYy''@;'; + put 'put ''M1x1MDYyNFx1MDYyNVx1MDYyNlx1MDYyN1x1MDYyOFx1MDYyOVx1MDYyYVx1MDYyYlx1MDYyY1x1MDYyZFx1MDYyZVx1MDYyZlx1MDYzMFx1MDYzMVx1MDYzMlx1MDYzM1x1MDYzNFx1MDYzNVx1MDYzNlx4ZDdcdTA2MzdcdTA2MzhcdTA2MzlcdTA2M2FcdTA2NDBcdTA2NDFcdTA2NDJcdTA2''@;'; + put 'put ''NDNceGUwXHUwNjQ0XHhlMlx1MDY0NVx1MDY0Nlx1MDY0N1x1MDY0OFx4ZTdceGU4XHhlOVx4ZWFceGViXHUwNjQ5XHUwNjRhXHhlZVx4ZWZcdTA2NGJcdTA2NGNcdTA2NGRcdTA2NGVceGY0XHUwNjRmXHUwNjUwXHhmN1x1MDY1MVx4ZjlcdTA2NTJceGZiXHhmY1x1MjAwZVx1MjAwZlx1MDZk''@;'; + put 'put ''MiIsbWU9W10sQj17fSxFPTA7RSE9TC5sZW5ndGg7KytFKTY1NTMzIT09TC5jaGFyQ29kZUF0KEUpJiYoQltMLmNoYXJBdChFKV09RSksbWVbRV09TC5jaGFyQXQoRSk7cmV0dXJue2VuYzpCLGRlYzptZX19KCksSmVbMTI1N109ZnVuY3Rpb24oKXtmb3IodmFyIEw9IlwwXHgwMVx4MDJceDAz''@;'; + put 'put ''XHgwNFx4MDVceDA2XHgwN1xiXHRcblx2XGZcclx4MGVceDBmXHgxMFx4MTFceDEyXHgxM1x4MTRceDE1XHgxNlx4MTdceDE4XHgxOVx4MWFceDFiXHgxY1x4MWRceDFlXHgxZiAhXCIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXF1e''@;'; + put 'put ''X2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5ceDdmXHUyMGFjXHVmZmZkXHUyMDFhXHVmZmZkXHUyMDFlXHUyMDI2XHUyMDIwXHUyMDIxXHVmZmZkXHUyMDMwXHVmZmZkXHUyMDM5XHVmZmZkXHhhOFx1MDJjN1x4YjhcdWZmZmRcdTIwMThcdTIwMTlcdTIwMWNcdTIwMWRcdTIwMjJc''@;'; + put 'put ''dTIwMTNcdTIwMTRcdWZmZmRcdTIxMjJcdWZmZmRcdTIwM2FcdWZmZmRceGFmXHUwMmRiXHVmZmZkXHhhMFx1ZmZmZFx4YTJceGEzXHhhNFx1ZmZmZFx4YTZceGE3XHhkOFx4YTlcdTAxNTZceGFiXHhhY1x4YWRceGFlXHhjNlx4YjBceGIxXHhiMlx4YjNceGI0XHhiNVx4YjZceGI3XHhmOFx4''@;'; + put 'put ''YjlcdTAxNTdceGJiXHhiY1x4YmRceGJlXHhlNlx1MDEwNFx1MDEyZVx1MDEwMFx1MDEwNlx4YzRceGM1XHUwMTE4XHUwMTEyXHUwMTBjXHhjOVx1MDE3OVx1MDExNlx1MDEyMlx1MDEzNlx1MDEyYVx1MDEzYlx1MDE2MFx1MDE0M1x1MDE0NVx4ZDNcdTAxNGNceGQ1XHhkNlx4ZDdcdTAxNzJc''@;'; + put 'put ''dTAxNDFcdTAxNWFcdTAxNmFceGRjXHUwMTdiXHUwMTdkXHhkZlx1MDEwNVx1MDEyZlx1MDEwMVx1MDEwN1x4ZTRceGU1XHUwMTE5XHUwMTEzXHUwMTBkXHhlOVx1MDE3YVx1MDExN1x1MDEyM1x1MDEzN1x1MDEyYlx1MDEzY1x1MDE2MVx1MDE0NFx1MDE0Nlx4ZjNcdTAxNGRceGY1XHhmNlx4''@;'; + put 'put ''ZjdcdTAxNzNcdTAxNDJcdTAxNWJcdTAxNmJceGZjXHUwMTdjXHUwMTdlXHUwMmQ5IixtZT1bXSxCPXt9LEU9MDtFIT1MLmxlbmd0aDsrK0UpNjU1MzMhPT1MLmNoYXJDb2RlQXQoRSkmJihCW0wuY2hhckF0KEUpXT1FKSxtZVtFXT1MLmNoYXJBdChFKTtyZXR1cm57ZW5jOkIsZGVjOm1lfX0o''@;'; + put 'put ''KSxKZVsxMjU4XT1mdW5jdGlvbigpe2Zvcih2YXIgTD0iXDBceDAxXHgwMlx4MDNceDA0XHgwNVx4MDZceDA3XGJcdFxuXHZcZlxyXHgwZVx4MGZceDEwXHgxMVx4MTJceDEzXHgxNFx4MTVceDE2XHgxN1x4MThceDE5XHgxYVx4MWJceDFjXHgxZFx4MWVceDFmICFcIiMkJSYnKCkqKywtLi8w''@;'; + put 'put ''MTIzNDU2Nzg5Ojs8PT4/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaW1xcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9flx4N2ZcdTIwYWNcdWZmZmRcdTIwMWFcdTAxOTJcdTIwMWVcdTIwMjZcdTIwMjBcdTIwMjFcdTAyYzZcdTIwMzBcdWZmZmRcdTIwMzlcdTAxNTJcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTIwMThcdTIwMTlcdTIwMWNcdTIwMWRcdTIwMjJcdTIwMTNcdTIwMTRcdTAyZGNcdTIxMjJcdWZmZmRcdTIwM2FcdTAxNTNcdWZmZmRcdWZmZmRcdTAxNzhceGEwXHhhMVx4YTJceGEzXHhhNFx4YTVceGE2XHhhN1x4YThceGE5XHhhYVx4YWJceGFjXHhh''@;'; + put 'put ''ZFx4YWVceGFmXHhiMFx4YjFceGIyXHhiM1x4YjRceGI1XHhiNlx4YjdceGI4XHhiOVx4YmFceGJiXHhiY1x4YmRceGJlXHhiZlx4YzBceGMxXHhjMlx1MDEwMlx4YzRceGM1XHhjNlx4YzdceGM4XHhjOVx4Y2FceGNiXHUwMzAwXHhjZFx4Y2VceGNmXHUwMTEwXHhkMVx1MDMwOVx4ZDNceGQ0''@;'; + put 'put ''XHUwMWEwXHhkNlx4ZDdceGQ4XHhkOVx4ZGFceGRiXHhkY1x1MDFhZlx1MDMwM1x4ZGZceGUwXHhlMVx4ZTJcdTAxMDNceGU0XHhlNVx4ZTZceGU3XHhlOFx4ZTlceGVhXHhlYlx1MDMwMVx4ZWRceGVlXHhlZlx1MDExMVx4ZjFcdTAzMjNceGYzXHhmNFx1MDFhMVx4ZjZceGY3XHhmOFx4Zjlc''@;'; + put 'put ''eGZhXHhmYlx4ZmNcdTAxYjBcdTIwYWJceGZmIixtZT1bXSxCPXt9LEU9MDtFIT1MLmxlbmd0aDsrK0UpNjU1MzMhPT1MLmNoYXJDb2RlQXQoRSkmJihCW0wuY2hhckF0KEUpXT1FKSxtZVtFXT1MLmNoYXJBdChFKTtyZXR1cm57ZW5jOkIsZGVjOm1lfX0oKSxKZVsxZTRdPWZ1bmN0aW9uKCl7''@;'; + put 'put ''Zm9yKHZhciBMPSJcMFx4MDFceDAyXHgwM1x4MDRceDA1XHgwNlx4MDdcYlx0XG5cdlxmXHJceDBlXHgwZlx4MTBceDExXHgxMlx4MTNceDE0XHgxNVx4MTZceDE3XHgxOFx4MTlceDFhXHgxYlx4MWNceDFkXHgxZVx4MWYgIVwiIyQlJicoKSorLC0uLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVG''@;'; + put 'put ''R0hJSktMTU5PUFFSU1RVVldYWVpbXFxdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+XHg3Zlx4YzRceGM1XHhjN1x4YzlceGQxXHhkNlx4ZGNceGUxXHhlMFx4ZTJceGU0XHhlM1x4ZTVceGU3XHhlOVx4ZThceGVhXHhlYlx4ZWRceGVjXHhlZVx4ZWZceGYxXHhmM1x4ZjJceGY0''@;'; + put 'put ''XHhmNlx4ZjVceGZhXHhmOVx4ZmJceGZjXHUyMDIwXHhiMFx4YTJceGEzXHhhN1x1MjAyMlx4YjZceGRmXHhhZVx4YTlcdTIxMjJceGI0XHhhOFx1MjI2MFx4YzZceGQ4XHUyMjFlXHhiMVx1MjI2NFx1MjI2NVx4YTVceGI1XHUyMjAyXHUyMjExXHUyMjBmXHUwM2MwXHUyMjJiXHhhYVx4YmFc''@;'; + put 'put ''dTIxMjZceGU2XHhmOFx4YmZceGExXHhhY1x1MjIxYVx1MDE5Mlx1MjI0OFx1MjIwNlx4YWJceGJiXHUyMDI2XHhhMFx4YzBceGMzXHhkNVx1MDE1Mlx1MDE1M1x1MjAxM1x1MjAxNFx1MjAxY1x1MjAxZFx1MjAxOFx1MjAxOVx4ZjdcdTI1Y2FceGZmXHUwMTc4XHUyMDQ0XHhhNFx1MjAzOVx1''@;'; + put 'put ''MjAzYVx1ZmIwMVx1ZmIwMlx1MjAyMVx4YjdcdTIwMWFcdTIwMWVcdTIwMzBceGMyXHhjYVx4YzFceGNiXHhjOFx4Y2RceGNlXHhjZlx4Y2NceGQzXHhkNFx1ZmZmZFx4ZDJceGRhXHhkYlx4ZDlcdTAxMzFcdTAyYzZcdTAyZGNceGFmXHUwMmQ4XHUwMmQ5XHUwMmRhXHhiOFx1MDJkZFx1MDJk''@;'; + put 'put ''Ylx1MDJjNyIsbWU9W10sQj17fSxFPTA7RSE9TC5sZW5ndGg7KytFKTY1NTMzIT09TC5jaGFyQ29kZUF0KEUpJiYoQltMLmNoYXJBdChFKV09RSksbWVbRV09TC5jaGFyQXQoRSk7cmV0dXJue2VuYzpCLGRlYzptZX19KCksSmVbMTAwMDZdPWZ1bmN0aW9uKCl7Zm9yKHZhciBMPSJcMFx4MDFc''@;'; + put 'put ''eDAyXHgwM1x4MDRceDA1XHgwNlx4MDdcYlx0XG5cdlxmXHJceDBlXHgwZlx4MTBceDExXHgxMlx4MTNceDE0XHgxNVx4MTZceDE3XHgxOFx4MTlceDFhXHgxYlx4MWNceDFkXHgxZVx4MWYgIVwiIyQlJicoKSorLC0uLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVGR0hJSktMTU5PUFFSU1RVVldY''@;'; + put 'put ''WVpbXFxdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+XHg3Zlx4YzRceGI5XHhiMlx4YzlceGIzXHhkNlx4ZGNcdTAzODVceGUwXHhlMlx4ZTRcdTAzODRceGE4XHhlN1x4ZTlceGU4XHhlYVx4ZWJceGEzXHUyMTIyXHhlZVx4ZWZcdTIwMjJceGJkXHUyMDMwXHhmNFx4ZjZceGE2''@;'; + put 'put ''XHhhZFx4ZjlceGZiXHhmY1x1MjAyMFx1MDM5M1x1MDM5NFx1MDM5OFx1MDM5Ylx1MDM5ZVx1MDNhMFx4ZGZceGFlXHhhOVx1MDNhM1x1MDNhYVx4YTdcdTIyNjBceGIwXHUwMzg3XHUwMzkxXHhiMVx1MjI2NFx1MjI2NVx4YTVcdTAzOTJcdTAzOTVcdTAzOTZcdTAzOTdcdTAzOTlcdTAzOWFc''@;'; + put 'put ''dTAzOWNcdTAzYTZcdTAzYWJcdTAzYThcdTAzYTlcdTAzYWNcdTAzOWRceGFjXHUwMzlmXHUwM2ExXHUyMjQ4XHUwM2E0XHhhYlx4YmJcdTIwMjZceGEwXHUwM2E1XHUwM2E3XHUwMzg2XHUwMzg4XHUwMTUzXHUyMDEzXHUyMDE1XHUyMDFjXHUyMDFkXHUyMDE4XHUyMDE5XHhmN1x1MDM4OVx1''@;'; + put 'put ''MDM4YVx1MDM4Y1x1MDM4ZVx1MDNhZFx1MDNhZVx1MDNhZlx1MDNjY1x1MDM4Zlx1MDNjZFx1MDNiMVx1MDNiMlx1MDNjOFx1MDNiNFx1MDNiNVx1MDNjNlx1MDNiM1x1MDNiN1x1MDNiOVx1MDNiZVx1MDNiYVx1MDNiYlx1MDNiY1x1MDNiZFx1MDNiZlx1MDNjMFx1MDNjZVx1MDNjMVx1MDNj''@;'; + put 'put ''M1x1MDNjNFx1MDNiOFx1MDNjOVx1MDNjMlx1MDNjN1x1MDNjNVx1MDNiNlx1MDNjYVx1MDNjYlx1MDM5MFx1MDNiMFx1ZmZmZCIsbWU9W10sQj17fSxFPTA7RSE9TC5sZW5ndGg7KytFKTY1NTMzIT09TC5jaGFyQ29kZUF0KEUpJiYoQltMLmNoYXJBdChFKV09RSksbWVbRV09TC5jaGFyQXQo''@;'; + put 'put ''RSk7cmV0dXJue2VuYzpCLGRlYzptZX19KCksSmVbMTAwMDddPWZ1bmN0aW9uKCl7Zm9yKHZhciBMPSJcMFx4MDFceDAyXHgwM1x4MDRceDA1XHgwNlx4MDdcYlx0XG5cdlxmXHJceDBlXHgwZlx4MTBceDExXHgxMlx4MTNceDE0XHgxNVx4MTZceDE3XHgxOFx4MTlceDFhXHgxYlx4MWNceDFk''@;'; + put 'put ''XHgxZVx4MWYgIVwiIyQlJicoKSorLC0uLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpbXFxdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+XHg3Zlx1MDQxMFx1MDQxMVx1MDQxMlx1MDQxM1x1MDQxNFx1MDQxNVx1MDQxNlx1MDQxN1x1MDQxOFx1''@;'; + put 'put ''MDQxOVx1MDQxYVx1MDQxYlx1MDQxY1x1MDQxZFx1MDQxZVx1MDQxZlx1MDQyMFx1MDQyMVx1MDQyMlx1MDQyM1x1MDQyNFx1MDQyNVx1MDQyNlx1MDQyN1x1MDQyOFx1MDQyOVx1MDQyYVx1MDQyYlx1MDQyY1x1MDQyZFx1MDQyZVx1MDQyZlx1MjAyMFx4YjBceGEyXHhhM1x4YTdcdTIwMjJc''@;'; + put 'put ''eGI2XHUwNDA2XHhhZVx4YTlcdTIxMjJcdTA0MDJcdTA0NTJcdTIyNjBcdTA0MDNcdTA0NTNcdTIyMWVceGIxXHUyMjY0XHUyMjY1XHUwNDU2XHhiNVx1MjIwMlx1MDQwOFx1MDQwNFx1MDQ1NFx1MDQwN1x1MDQ1N1x1MDQwOVx1MDQ1OVx1MDQwYVx1MDQ1YVx1MDQ1OFx1MDQwNVx4YWNcdTIy''@;'; + put 'put ''MWFcdTAxOTJcdTIyNDhcdTIyMDZceGFiXHhiYlx1MjAyNlx4YTBcdTA0MGJcdTA0NWJcdTA0MGNcdTA0NWNcdTA0NTVcdTIwMTNcdTIwMTRcdTIwMWNcdTIwMWRcdTIwMThcdTIwMTlceGY3XHUyMDFlXHUwNDBlXHUwNDVlXHUwNDBmXHUwNDVmXHUyMTE2XHUwNDAxXHUwNDUxXHUwNDRmXHUw''@;'; + put 'put ''NDMwXHUwNDMxXHUwNDMyXHUwNDMzXHUwNDM0XHUwNDM1XHUwNDM2XHUwNDM3XHUwNDM4XHUwNDM5XHUwNDNhXHUwNDNiXHUwNDNjXHUwNDNkXHUwNDNlXHUwNDNmXHUwNDQwXHUwNDQxXHUwNDQyXHUwNDQzXHUwNDQ0XHUwNDQ1XHUwNDQ2XHUwNDQ3XHUwNDQ4XHUwNDQ5XHUwNDRhXHUwNDRi''@;'; + put 'put ''XHUwNDRjXHUwNDRkXHUwNDRlXHhhNCIsbWU9W10sQj17fSxFPTA7RSE9TC5sZW5ndGg7KytFKTY1NTMzIT09TC5jaGFyQ29kZUF0KEUpJiYoQltMLmNoYXJBdChFKV09RSksbWVbRV09TC5jaGFyQXQoRSk7cmV0dXJue2VuYzpCLGRlYzptZX19KCksSmVbMTAwMDhdPWZ1bmN0aW9uKCl7dmFy''@;'; + put 'put ''IEUsTD1bXSxtZT17fSxCPVtdO2ZvcihCWzBdPSJcMFx4MDFceDAyXHgwM1x4MDRceDA1XHgwNlx4MDdcYlx0XG5cdlxmXHJceDBlXHgwZlx4MTBceDExXHgxMlx4MTNceDE0XHgxNVx4MTZceDE3XHgxOFx4MTlceDFhXHgxYlx4MWNceDFkXHgxZVx4MWYgIVwiIyQlJicoKSorLC0uLzAxMjM0''@;'; + put 'put ''NTY3ODk6Ozw9Pj9AQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpbXFxdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+XHg3Zlx4ODBcdWY4ZDhcdWY4ZDlcdWY4ZGFcdWY4ZGJcdWY4ZGNcdWY4ZGRcdWY4ZGVcdWY4ZGZcdWY4ZTBcdWY4ZTFcdWY4ZTJcdWY4ZTNcdWY4ZTRcdWY4''@;'; + put 'put ''ZTVcdWY4ZTZcdWY4ZTdcdWY4ZThcdWY4ZTlcdWY4ZWFcdWY4ZWJcdWY4ZWNcdWY4ZWRcdWY4ZWVcdWY4ZWZcdWY4ZjBcdWY4ZjFcdWY4ZjJcdWY4ZjNcdWY4ZjRcdWY4ZjVcdWY4ZjZcdWY4ZjdcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWY4ZjhcdWY4ZjlcdWY4ZmFcdWY4ZmJcdWY4''@;'; + put 'put ''ZmNcdWY4ZmRcdWY4ZmVcdWY4ZmYiLnNwbGl0KCIiKSxFPTA7RSE9QlswXS5sZW5ndGg7KytFKTY1NTMzIT09QlswXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlswXVtFXV09MCtFLExbMCtFXT1CWzBdW0VdKTtmb3IoQlsxNjFdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTMwMDBcdTMwMDFcdTMwMDJcdTMwZmJcdTAyYzlcdTAyYzdceGE4XHUzMDAzXHUzMDA1XHUyMDE1''@;'; + put 'put ''XHVmZjVlXHVmZmZkXHUyMDI2XHUyMDE4XHUyMDE5XHUyMDFjXHUyMDFkXHUzMDE0XHUzMDE1XHUzMDA4XHUzMDA5XHUzMDBhXHUzMDBiXHUzMDBjXHUzMDBkXHUzMDBlXHUzMDBmXHUzMDE2XHUzMDE3XHUzMDEwXHUzMDExXHhiMVx4ZDdceGY3XHUyMjM2XHUyMjI3XHUyMjI4XHUyMjExXHUy''@;'; + put 'put ''MjBmXHUyMjJhXHUyMjI5XHUyMjA4XHUyMjM3XHUyMjFhXHUyMmE1XHUyMjI1XHUyMjIwXHUyMzEyXHUyMjk5XHUyMjJiXHUyMjJlXHUyMjYxXHUyMjRjXHUyMjQ4XHUyMjNkXHUyMjFkXHUyMjYwXHUyMjZlXHUyMjZmXHUyMjY0XHUyMjY1XHUyMjFlXHUyMjM1XHUyMjM0XHUyNjQyXHUyNjQw''@;'; + put 'put ''XHhiMFx1MjAzMlx1MjAzM1x1MjEwM1x1ZmYwNFx4YTRcdWZmZTBcdWZmZTFcdTIwMzBceGE3XHUyMTE2XHUyNjA2XHUyNjA1XHUyNWNiXHUyNWNmXHUyNWNlXHUyNWM3XHUyNWM2XHUyNWExXHUyNWEwXHUyNWIzXHUyNWIyXHUyMDNiXHUyMTkyXHUyMTkwXHUyMTkxXHUyMTkzXHUzMDEzXHVm''@;'; + put 'put ''ZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTYxXS5sZW5ndGg7KytFKTY1NTMzIT09QlsxNjFdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE2MV1bRV1dPTQxMjE2K0UsTFs0MTIxNitFXT1CWzE2MV1bRV0pO2ZvcihCWzE2Ml09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MjQ4OFx1MjQ4OVx1MjQ4YVx1MjQ4Ylx1MjQ4Y1x1MjQ4ZFx1MjQ4ZVx1MjQ4Zlx1MjQ5MFx1MjQ5MVx1MjQ5Mlx1MjQ5M1x1MjQ5NFx1MjQ5NVx1MjQ5Nlx1MjQ5N1x1MjQ5OFx1MjQ5OVx1MjQ5YVx1MjQ5Ylx1MjQ3NFx1''@;'; + put 'put ''MjQ3NVx1MjQ3Nlx1MjQ3N1x1MjQ3OFx1MjQ3OVx1MjQ3YVx1MjQ3Ylx1MjQ3Y1x1MjQ3ZFx1MjQ3ZVx1MjQ3Zlx1MjQ4MFx1MjQ4MVx1MjQ4Mlx1MjQ4M1x1MjQ4NFx1MjQ4NVx1MjQ4Nlx1MjQ4N1x1MjQ2MFx1MjQ2MVx1MjQ2Mlx1MjQ2M1x1MjQ2NFx1MjQ2NVx1MjQ2Nlx1MjQ2N1x1MjQ2''@;'; + put 'put ''OFx1MjQ2OVx1ZmZmZFx1ZmZmZFx1MzIyMFx1MzIyMVx1MzIyMlx1MzIyM1x1MzIyNFx1MzIyNVx1MzIyNlx1MzIyN1x1MzIyOFx1MzIyOVx1ZmZmZFx1ZmZmZFx1MjE2MFx1MjE2MVx1MjE2Mlx1MjE2M1x1MjE2NFx1MjE2NVx1MjE2Nlx1MjE2N1x1MjE2OFx1MjE2OVx1MjE2YVx1MjE2Ylx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE2Ml0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTYyXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxNjJdW0VdXT00MTQ3MitFLExbNDE0NzIrRV09QlsxNjJdW0VdKTtmb3IoQlsxNjNdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmMDFcdWZmMDJcdWZmMDNcdWZmZTVcdWZmMDVcdWZmMDZcdWZmMDdcdWZm''@;'; + put 'put ''MDhcdWZmMDlcdWZmMGFcdWZmMGJcdWZmMGNcdWZmMGRcdWZmMGVcdWZmMGZcdWZmMTBcdWZmMTFcdWZmMTJcdWZmMTNcdWZmMTRcdWZmMTVcdWZmMTZcdWZmMTdcdWZmMThcdWZmMTlcdWZmMWFcdWZmMWJcdWZmMWNcdWZmMWRcdWZmMWVcdWZmMWZcdWZmMjBcdWZmMjFcdWZmMjJcdWZmMjNc''@;'; + put 'put ''dWZmMjRcdWZmMjVcdWZmMjZcdWZmMjdcdWZmMjhcdWZmMjlcdWZmMmFcdWZmMmJcdWZmMmNcdWZmMmRcdWZmMmVcdWZmMmZcdWZmMzBcdWZmMzFcdWZmMzJcdWZmMzNcdWZmMzRcdWZmMzVcdWZmMzZcdWZmMzdcdWZmMzhcdWZmMzlcdWZmM2FcdWZmM2JcdWZmM2NcdWZmM2RcdWZmM2VcdWZm''@;'; + put 'put ''M2ZcdWZmNDBcdWZmNDFcdWZmNDJcdWZmNDNcdWZmNDRcdWZmNDVcdWZmNDZcdWZmNDdcdWZmNDhcdWZmNDlcdWZmNGFcdWZmNGJcdWZmNGNcdWZmNGRcdWZmNGVcdWZmNGZcdWZmNTBcdWZmNTFcdWZmNTJcdWZmNTNcdWZmNTRcdWZmNTVcdWZmNTZcdWZmNTdcdWZmNThcdWZmNTlcdWZmNWFc''@;'; + put 'put ''dWZmNWJcdWZmNWNcdWZmNWRcdWZmZTNcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxNjNdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE2M11bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTYzXVtFXV09NDE3MjgrRSxMWzQxNzI4K0VdPUJbMTYzXVtFXSk7Zm9yKEJbMTY0XT0iXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUzMDQxXHUzMDQyXHUzMDQzXHUzMDQ0XHUzMDQ1XHUz''@;'; + put 'put ''MDQ2XHUzMDQ3XHUzMDQ4XHUzMDQ5XHUzMDRhXHUzMDRiXHUzMDRjXHUzMDRkXHUzMDRlXHUzMDRmXHUzMDUwXHUzMDUxXHUzMDUyXHUzMDUzXHUzMDU0XHUzMDU1XHUzMDU2XHUzMDU3XHUzMDU4XHUzMDU5XHUzMDVhXHUzMDViXHUzMDVjXHUzMDVkXHUzMDVlXHUzMDVmXHUzMDYwXHUzMDYx''@;'; + put 'put ''XHUzMDYyXHUzMDYzXHUzMDY0XHUzMDY1XHUzMDY2XHUzMDY3XHUzMDY4XHUzMDY5XHUzMDZhXHUzMDZiXHUzMDZjXHUzMDZkXHUzMDZlXHUzMDZmXHUzMDcwXHUzMDcxXHUzMDcyXHUzMDczXHUzMDc0XHUzMDc1XHUzMDc2XHUzMDc3XHUzMDc4XHUzMDc5XHUzMDdhXHUzMDdiXHUzMDdjXHUz''@;'; + put 'put ''MDdkXHUzMDdlXHUzMDdmXHUzMDgwXHUzMDgxXHUzMDgyXHUzMDgzXHUzMDg0XHUzMDg1XHUzMDg2XHUzMDg3XHUzMDg4XHUzMDg5XHUzMDhhXHUzMDhiXHUzMDhjXHUzMDhkXHUzMDhlXHUzMDhmXHUzMDkwXHUzMDkxXHUzMDkyXHUzMDkzXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTY0XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxNjRdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE2NF1bRV1dPTQxOTg0K0UsTFs0MTk4NCtFXT1CWzE2NF1bRV0pO2ZvcihCWzE2''@;'; + put 'put ''NV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MzBhMVx1MzBhMlx1MzBhM1x1''@;'; + put 'put ''MzBhNFx1MzBhNVx1MzBhNlx1MzBhN1x1MzBhOFx1MzBhOVx1MzBhYVx1MzBhYlx1MzBhY1x1MzBhZFx1MzBhZVx1MzBhZlx1MzBiMFx1MzBiMVx1MzBiMlx1MzBiM1x1MzBiNFx1MzBiNVx1MzBiNlx1MzBiN1x1MzBiOFx1MzBiOVx1MzBiYVx1MzBiYlx1MzBiY1x1MzBiZFx1MzBiZVx1MzBi''@;'; + put 'put ''Zlx1MzBjMFx1MzBjMVx1MzBjMlx1MzBjM1x1MzBjNFx1MzBjNVx1MzBjNlx1MzBjN1x1MzBjOFx1MzBjOVx1MzBjYVx1MzBjYlx1MzBjY1x1MzBjZFx1MzBjZVx1MzBjZlx1MzBkMFx1MzBkMVx1MzBkMlx1MzBkM1x1MzBkNFx1MzBkNVx1MzBkNlx1MzBkN1x1MzBkOFx1MzBkOVx1MzBkYVx1''@;'; + put 'put ''MzBkYlx1MzBkY1x1MzBkZFx1MzBkZVx1MzBkZlx1MzBlMFx1MzBlMVx1MzBlMlx1MzBlM1x1MzBlNFx1MzBlNVx1MzBlNlx1MzBlN1x1MzBlOFx1MzBlOVx1MzBlYVx1MzBlYlx1MzBlY1x1MzBlZFx1MzBlZVx1MzBlZlx1MzBmMFx1MzBmMVx1MzBmMlx1MzBmM1x1MzBmNFx1MzBmNVx1MzBm''@;'; + put 'put ''Nlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE2NV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTY1XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxNjVdW0VdXT00MjI0MCtFLExbNDIyNDArRV09QlsxNjVd''@;'; + put 'put ''W0VdKTtmb3IoQlsxNjZdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTAzOTFc''@;'; + put 'put ''dTAzOTJcdTAzOTNcdTAzOTRcdTAzOTVcdTAzOTZcdTAzOTdcdTAzOThcdTAzOTlcdTAzOWFcdTAzOWJcdTAzOWNcdTAzOWRcdTAzOWVcdTAzOWZcdTAzYTBcdTAzYTFcdTAzYTNcdTAzYTRcdTAzYTVcdTAzYTZcdTAzYTdcdTAzYThcdTAzYTlcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTAzYjFcdTAzYjJcdTAzYjNcdTAzYjRcdTAzYjVcdTAzYjZcdTAzYjdcdTAzYjhcdTAzYjlcdTAzYmFcdTAzYmJcdTAzYmNcdTAzYmRcdTAzYmVcdTAzYmZcdTAzYzBcdTAzYzFcdTAzYzNcdTAzYzRcdTAzYzVcdTAzYzZcdTAzYzdcdTAzYzhcdTAzYzlc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxNjZdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE2Nl1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTY2XVtFXV09NDI0OTYrRSxMWzQy''@;'; + put 'put ''NDk2K0VdPUJbMTY2XVtFXSk7Zm9yKEJbMTY3XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHUwNDEwXHUwNDExXHUwNDEyXHUwNDEzXHUwNDE0XHUwNDE1XHUwNDAxXHUwNDE2XHUwNDE3XHUwNDE4XHUwNDE5XHUwNDFhXHUwNDFiXHUwNDFjXHUwNDFkXHUwNDFlXHUwNDFmXHUwNDIwXHUwNDIxXHUwNDIyXHUwNDIzXHUwNDI0XHUwNDI1XHUwNDI2XHUwNDI3XHUwNDI4XHUw''@;'; + put 'put ''NDI5XHUwNDJhXHUwNDJiXHUwNDJjXHUwNDJkXHUwNDJlXHUwNDJmXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUwNDMwXHUwNDMxXHUwNDMyXHUwNDMzXHUwNDM0XHUwNDM1''@;'; + put 'put ''XHUwNDUxXHUwNDM2XHUwNDM3XHUwNDM4XHUwNDM5XHUwNDNhXHUwNDNiXHUwNDNjXHUwNDNkXHUwNDNlXHUwNDNmXHUwNDQwXHUwNDQxXHUwNDQyXHUwNDQzXHUwNDQ0XHUwNDQ1XHUwNDQ2XHUwNDQ3XHUwNDQ4XHUwNDQ5XHUwNDRhXHUwNDRiXHUwNDRjXHUwNDRkXHUwNDRlXHUwNDRmXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTY3XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxNjddW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE2N11bRV1d''@;'; + put 'put ''PTQyNzUyK0UsTFs0Mjc1MitFXT1CWzE2N11bRV0pO2ZvcihCWzE2OF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MDEwMVx4ZTFcdTAxY2VceGUwXHUwMTEzXHhlOVx1MDExYlx4ZThcdTAxMmJceGVkXHUwMWQwXHhlY1x1MDE0ZFx4ZjNcdTAxZDJceGYyXHUwMTZiXHhmYVx1MDFkNFx4ZjlcdTAxZDZcdTAxZDhcdTAxZGFcdTAxZGNceGZjXHhlYVx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MzEwNVx1MzEwNlx1MzEwN1x1MzEwOFx1MzEwOVx1MzEwYVx1MzEwYlx1MzEwY1x1MzEwZFx1MzEwZVx1MzEwZlx1MzExMFx1MzExMVx1MzExMlx1MzExM1x1MzExNFx1MzExNVx1MzExNlx1MzExN1x1MzEx''@;'; + put 'put ''OFx1MzExOVx1MzExYVx1MzExYlx1MzExY1x1MzExZFx1MzExZVx1MzExZlx1MzEyMFx1MzEyMVx1MzEyMlx1MzEyM1x1MzEyNFx1MzEyNVx1MzEyNlx1MzEyN1x1MzEyOFx1MzEyOVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE2OF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTY4XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxNjhdW0VdXT00MzAwOCtFLExb''@;'; + put 'put ''NDMwMDgrRV09QlsxNjhdW0VdKTtmb3IoQlsxNjldPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTI1MDBcdTI1MDFcdTI1MDJcdTI1MDNcdTI1MDRcdTI1MDVcdTI1MDZcdTI1MDdcdTI1MDhcdTI1MDlcdTI1MGFcdTI1MGJcdTI1MGNcdTI1MGRcdTI1MGVcdTI1MGZcdTI1MTBcdTI1MTFcdTI1MTJcdTI1MTNcdTI1MTRcdTI1MTVcdTI1MTZc''@;'; + put 'put ''dTI1MTdcdTI1MThcdTI1MTlcdTI1MWFcdTI1MWJcdTI1MWNcdTI1MWRcdTI1MWVcdTI1MWZcdTI1MjBcdTI1MjFcdTI1MjJcdTI1MjNcdTI1MjRcdTI1MjVcdTI1MjZcdTI1MjdcdTI1MjhcdTI1MjlcdTI1MmFcdTI1MmJcdTI1MmNcdTI1MmRcdTI1MmVcdTI1MmZcdTI1MzBcdTI1MzFcdTI1''@;'; + put 'put ''MzJcdTI1MzNcdTI1MzRcdTI1MzVcdTI1MzZcdTI1MzdcdTI1MzhcdTI1MzlcdTI1M2FcdTI1M2JcdTI1M2NcdTI1M2RcdTI1M2VcdTI1M2ZcdTI1NDBcdTI1NDFcdTI1NDJcdTI1NDNcdTI1NDRcdTI1NDVcdTI1NDZcdTI1NDdcdTI1NDhcdTI1NDlcdTI1NGFcdTI1NGJcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxNjldLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE2OV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTY5XVtF''@;'; + put 'put ''XV09NDMyNjQrRSxMWzQzMjY0K0VdPUJbMTY5XVtFXSk7Zm9yKEJbMTc2XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1NTRhXHU5NjNmXHU1N2MzXHU2MzI4XHU1NGNlXHU1NTA5XHU1NGMwXHU3NjkxXHU3NjRjXHU4NTNjXHU3N2VlXHU4MjdlXHU3ODhkXHU3MjMxXHU5Njk4XHU5NzhkXHU2YzI4XHU1Yjg5XHU0ZmZhXHU2MzA5XHU2Njk3XHU1Y2I4XHU4MGZhXHU2ODQ4''@;'; + put 'put ''XHU4MGFlXHU2NjAyXHU3NmNlXHU1MWY5XHU2NTU2XHU3MWFjXHU3ZmYxXHU4ODg0XHU1MGIyXHU1OTY1XHU2MWNhXHU2ZmIzXHU4MmFkXHU2MzRjXHU2MjUyXHU1M2VkXHU1NDI3XHU3YjA2XHU1MTZiXHU3NWE0XHU1ZGY0XHU2MmQ0XHU4ZGNiXHU5Nzc2XHU2MjhhXHU4MDE5XHU1NzVkXHU5''@;'; + put 'put ''NzM4XHU3ZjYyXHU3MjM4XHU3NjdkXHU2N2NmXHU3NjdlXHU2NDQ2XHU0ZjcwXHU4ZDI1XHU2MmRjXHU3YTE3XHU2NTkxXHU3M2VkXHU2NDJjXHU2MjczXHU4MjJjXHU5ODgxXHU2NzdmXHU3MjQ4XHU2MjZlXHU2MmNjXHU0ZjM0XHU3NGUzXHU1MzRhXHU1MjllXHU3ZWNhXHU5MGE2XHU1ZTJl''@;'; + put 'put ''XHU2ODg2XHU2OTljXHU4MTgwXHU3ZWQxXHU2OGQyXHU3OGM1XHU4NjhjXHU5NTUxXHU1MDhkXHU4YzI0XHU4MmRlXHU4MGRlXHU1MzA1XHU4OTEyXHU1MjY1XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTc2XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxNzZdW0VdLmNoYXJDb2RlQXQoMCkm''@;'; + put 'put ''JihtZVtCWzE3Nl1bRV1dPTQ1MDU2K0UsTFs0NTA1NitFXT1CWzE3Nl1bRV0pO2ZvcihCWzE3N109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ODU4NFx1OTZmOVx1NGZkZFx1NTgyMVx1OTk3MVx1NWI5ZFx1NjJiMVx1NjJhNVx1NjZiNFx1OGM3OVx1OWM4ZFx1NzIwNlx1Njc2Zlx1Nzg5MVx1NjBiMlx1NTM1MVx1NTMxN1x1OGY4OFx1ODBjY1x1OGQxZFx1OTRhMVx1NTAw''@;'; + put 'put ''ZFx1NzJjOFx1NTkwN1x1NjBlYlx1NzExOVx1ODhhYlx1NTk1NFx1ODJlZlx1NjcyY1x1N2IyOFx1NWQyOVx1N2VmN1x1NzUyZFx1NmNmNVx1OGU2Nlx1OGZmOFx1OTAzY1x1OWYzYlx1NmJkNFx1OTExOVx1N2IxNFx1NWY3Y1x1NzhhN1x1ODRkNlx1ODUzZFx1NmJkNVx1NmJkOVx1NmJkNlx1''@;'; + put 'put ''NWUwMVx1NWU4N1x1NzVmOVx1OTVlZFx1NjU1ZFx1NWYwYVx1NWZjNVx1OGY5Zlx1NThjMVx1ODFjMlx1OTA3Zlx1OTY1Ylx1OTdhZFx1OGZiOVx1N2YxNlx1OGQyY1x1NjI0MVx1NGZiZlx1NTNkOFx1NTM1ZVx1OGZhOFx1OGZhOVx1OGZhYlx1OTA0ZFx1NjgwN1x1NWY2YVx1ODE5OFx1ODg2''@;'; + put 'put ''OFx1OWNkNlx1NjE4Ylx1NTIyYlx1NzYyYVx1NWY2Y1x1NjU4Y1x1NmZkMlx1NmVlOFx1NWJiZVx1NjQ0OFx1NTE3NVx1NTFiMFx1NjdjNFx1NGUxOVx1NzljOVx1OTk3Y1x1NzBiM1x1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE3N10ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTc3XVtFXS5j''@;'; + put 'put ''aGFyQ29kZUF0KDApJiYobWVbQlsxNzddW0VdXT00NTMxMitFLExbNDUzMTIrRV09QlsxNzddW0VdKTtmb3IoQlsxNzhdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTc1YzVcdTVlNzZcdTczYmJcdTgzZTBcdTY0YWRcdTYyZThcdTk0YjVcdTZjZTJcdTUzNWFcdTUyYzNcdTY0MGZcdTk0YzJcdTdiOTRcdTRmMmZcdTVlMWJcdTgyMzZcdTgxMTZcdTgxOGFcdTZlMjRcdTZj''@;'; + put 'put ''Y2FcdTlhNzNcdTYzNTVcdTUzNWNcdTU0ZmFcdTg4NjVcdTU3ZTBcdTRlMGRcdTVlMDNcdTZiNjVcdTdjM2ZcdTkwZThcdTYwMTZcdTY0ZTZcdTczMWNcdTg4YzFcdTY3NTBcdTYyNGRcdThkMjJcdTc3NmNcdThlMjlcdTkxYzdcdTVmNjlcdTgzZGNcdTg1MjFcdTk5MTBcdTUzYzJcdTg2OTVc''@;'; + put 'put ''dTZiOGJcdTYwZWRcdTYwZThcdTcwN2ZcdTgyY2RcdTgyMzFcdTRlZDNcdTZjYTdcdTg1Y2ZcdTY0Y2RcdTdjZDlcdTY5ZmRcdTY2ZjlcdTgzNDlcdTUzOTVcdTdiNTZcdTRmYTdcdTUxOGNcdTZkNGJcdTVjNDJcdThlNmRcdTYzZDJcdTUzYzlcdTgzMmNcdTgzMzZcdTY3ZTVcdTc4YjRcdTY0''@;'; + put 'put ''M2RcdTViZGZcdTVjOTRcdTVkZWVcdThiZTdcdTYyYzZcdTY3ZjRcdThjN2FcdTY0MDBcdTYzYmFcdTg3NDlcdTk5OGJcdThjMTdcdTdmMjBcdTk0ZjJcdTRlYTdcdTk2MTBcdTk4YTRcdTY2MGNcdTczMTZcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxNzhdLmxlbmd0aDsrK0UpNjU1MzMh''@;'; + put 'put ''PT1CWzE3OF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTc4XVtFXV09NDU1NjgrRSxMWzQ1NTY4K0VdPUJbMTc4XVtFXSk7Zm9yKEJbMTc5XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1NzNhXHU1YzFkXHU1ZTM4XHU5NTdmXHU1MDdmXHU4MGEwXHU1MzgyXHU2NTVlXHU3NTQ1XHU1NTMxXHU1MDIxXHU4ZDg1XHU2Mjg0XHU5NDllXHU2NzFkXHU1NjMyXHU2ZjZlXHU1''@;'; + put 'put ''ZGUyXHU1NDM1XHU3MDkyXHU4ZjY2XHU2MjZmXHU2NGE0XHU2M2EzXHU1ZjdiXHU2Zjg4XHU5MGY0XHU4MWUzXHU4ZmIwXHU1YzE4XHU2NjY4XHU1ZmYxXHU2Yzg5XHU5NjQ4XHU4ZDgxXHU4ODZjXHU2NDkxXHU3OWYwXHU1N2NlXHU2YTU5XHU2MjEwXHU1NDQ4XHU0ZTU4XHU3YTBiXHU2MGU5''@;'; + put 'put ''XHU2Zjg0XHU4YmRhXHU2MjdmXHU5MDFlXHU5YThiXHU3OWU0XHU1NDAzXHU3NWY0XHU2MzAxXHU1MzE5XHU2YzYwXHU4ZmRmXHU1ZjFiXHU5YTcwXHU4MDNiXHU5ZjdmXHU0Zjg4XHU1YzNhXHU4ZDY0XHU3ZmM1XHU2NWE1XHU3MGJkXHU1MTQ1XHU1MWIyXHU4NjZiXHU1ZDA3XHU1YmEwXHU2''@;'; + put 'put ''MmJkXHU5MTZjXHU3NTc0XHU4ZTBjXHU3YTIwXHU2MTAxXHU3Yjc5XHU0ZWM3XHU3ZWY4XHU3Nzg1XHU0ZTExXHU4MWVkXHU1MjFkXHU1MWZhXHU2YTcxXHU1M2E4XHU4ZTg3XHU5NTA0XHU5NmNmXHU2ZWMxXHU5NjY0XHU2OTVhXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTc5XS5sZW5n''@;'; + put 'put ''dGg7KytFKTY1NTMzIT09QlsxNzldW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE3OV1bRV1dPTQ1ODI0K0UsTFs0NTgyNCtFXT1CWzE3OV1bRV0pO2ZvcihCWzE4MF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1Nzg0MFx1NTBhOFx1NzdkN1x1NjQxMFx1ODllNlx1NTkwNFx1NjNlM1x1NWRkZFx1N2E3Zlx1NjkzZFx1NGYyMFx1ODIzOVx1NTU5OFx1NGUzMlx1NzVhZVx1''@;'; + put 'put ''N2E5N1x1NWU2Mlx1NWU4YVx1OTVlZlx1NTIxYlx1NTQzOVx1NzA4YVx1NjM3Nlx1OTUyNFx1NTc4Mlx1NjYyNVx1NjkzZlx1OTE4N1x1NTUwN1x1NmRmM1x1N2VhZlx1ODgyMlx1NjIzM1x1N2VmMFx1NzViNVx1ODMyOFx1NzhjMVx1OTZjY1x1OGY5ZVx1NjE0OFx1NzRmN1x1OGJjZFx1NmI2''@;'; + put 'put ''NFx1NTIzYVx1OGQ1MFx1NmIyMVx1ODA2YVx1ODQ3MVx1NTZmMVx1NTMwNlx1NGVjZVx1NGUxYlx1NTFkMVx1N2M5N1x1OTE4Ylx1N2MwN1x1NGZjM1x1OGU3Zlx1N2JlMVx1N2E5Y1x1NjQ2N1x1NWQxNFx1NTBhY1x1ODEwNlx1NzYwMVx1N2NiOVx1NmRlY1x1N2ZlMFx1Njc1MVx1NWI1OFx1''@;'; + put 'put ''NWJmOFx1NzhjYlx1NjRhZVx1NjQxM1x1NjNhYVx1NjMyYlx1OTUxOVx1NjQyZFx1OGZiZVx1N2I1NFx1NzYyOVx1NjI1M1x1NTkyN1x1NTQ0Nlx1NmI3OVx1NTBhM1x1NjIzNFx1NWUyNlx1NmI4Nlx1NGVlM1x1OGQzN1x1ODg4Ylx1NWY4NVx1OTAyZVx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtF''@;'; + put 'put ''IT1CWzE4MF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTgwXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxODBdW0VdXT00NjA4MCtFLExbNDYwODArRV09QlsxODBdW0VdKTtmb3IoQlsxODFdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTYwMjBcdTgwM2RcdTYyYzVcdTRlMzlcdTUzNTVcdTkwZjhcdTYzYjhcdTgwYzZcdTY1ZTZcdTZjMmVcdTRmNDZcdTYwZWVcdTZkZTFc''@;'; + put 'put ''dThiZGVcdTVmMzlcdTg2Y2JcdTVmNTNcdTYzMjFcdTUxNWFcdTgzNjFcdTY4NjNcdTUyMDBcdTYzNjNcdThlNDhcdTUwMTJcdTVjOWJcdTc5NzdcdTViZmNcdTUyMzBcdTdhM2JcdTYwYmNcdTkwNTNcdTc2ZDdcdTVmYjdcdTVmOTdcdTc2ODRcdThlNmNcdTcwNmZcdTc2N2JcdTdiNDlcdTc3''@;'; + put 'put ''YWFcdTUxZjNcdTkwOTNcdTU4MjRcdTRmNGVcdTZlZjRcdThmZWFcdTY1NGNcdTdiMWJcdTcyYzRcdTZkYTRcdTdmZGZcdTVhZTFcdTYyYjVcdTVlOTVcdTU3MzBcdTg0ODJcdTdiMmNcdTVlMWRcdTVmMWZcdTkwMTJcdTdmMTRcdTk4YTBcdTYzODJcdTZlYzdcdTc4OThcdTcwYjlcdTUxNzhc''@;'; + put 'put ''dTk3NWJcdTU3YWJcdTc1MzVcdTRmNDNcdTc1MzhcdTVlOTdcdTYwZTZcdTU5NjBcdTZkYzBcdTZiYmZcdTc4ODlcdTUzZmNcdTk2ZDVcdTUxY2JcdTUyMDFcdTYzODlcdTU0MGFcdTk0OTNcdThjMDNcdThkY2NcdTcyMzlcdTc4OWZcdTg3NzZcdThmZWRcdThjMGRcdTUzZTBcdWZmZmQiLnNw''@;'; + put 'put ''bGl0KCIiKSxFPTA7RSE9QlsxODFdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE4MV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTgxXVtFXV09NDYzMzYrRSxMWzQ2MzM2K0VdPUJbMTgxXVtFXSk7Zm9yKEJbMTgyXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU0ZTAxXHU3NmVmXHU1M2VlXHU5NDg5XHU5ODc2XHU5ZjBlXHU5NTJkXHU1YjlhXHU4YmEyXHU0ZTIyXHU0ZTFj''@;'; + put 'put ''XHU1MWFjXHU4NDYzXHU2MWMyXHU1MmE4XHU2ODBiXHU0Zjk3XHU2MDZiXHU1MWJiXHU2ZDFlXHU1MTVjXHU2Mjk2XHU2NTk3XHU5NjYxXHU4YzQ2XHU5MDE3XHU3NWQ4XHU5MGZkXHU3NzYzXHU2YmQyXHU3MjhhXHU3MmVjXHU4YmZiXHU1ODM1XHU3Nzc5XHU4ZDRjXHU2NzVjXHU5NTQwXHU4''@;'; + put 'put ''MDlhXHU1ZWE2XHU2ZTIxXHU1OTkyXHU3YWVmXHU3N2VkXHU5NTNiXHU2YmI1XHU2NWFkXHU3ZjBlXHU1ODA2XHU1MTUxXHU5NjFmXHU1YmY5XHU1OGE5XHU1NDI4XHU4ZTcyXHU2NTY2XHU5ODdmXHU1NmU0XHU5NDlkXHU3NmZlXHU5MDQxXHU2Mzg3XHU1NGM2XHU1OTFhXHU1OTNhXHU1Nzli''@;'; + put 'put ''XHU4ZWIyXHU2NzM1XHU4ZGZhXHU4MjM1XHU1MjQxXHU2MGYwXHU1ODE1XHU4NmZlXHU1Y2U4XHU5ZTQ1XHU0ZmM0XHU5ODlkXHU4YmI5XHU1YTI1XHU2MDc2XHU1Mzg0XHU2MjdjXHU5MDRmXHU5MTAyXHU5OTdmXHU2MDY5XHU4MDBjXHU1MTNmXHU4MDMzXHU1YzE0XHU5OTc1XHU2ZDMxXHU0''@;'; + put 'put ''ZThjXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTgyXS5sZW5ndGg7KytFKTY1NTMzIT09QlsxODJdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE4Ml1bRV1dPTQ2NTkyK0UsTFs0NjU5MitFXT1CWzE4Ml1bRV0pO2ZvcihCWzE4M109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OGQzMFx1NTNkMVx1N2Y1YVx1N2I0Zlx1NGYxMFx1NGU0Zlx1OTYwMFx1NmNkNVx1NzNk''@;'; + put 'put ''MFx1ODVlOVx1NWUwNlx1NzU2YVx1N2ZmYlx1NmEwYVx1NzdmZVx1OTQ5Mlx1N2U0MVx1NTFlMVx1NzBlNlx1NTNjZFx1OGZkNFx1ODMwM1x1OGQyOVx1NzJhZlx1OTk2ZFx1NmNkYlx1NTc0YVx1ODJiM1x1NjViOVx1ODBhYVx1NjIzZlx1OTYzMlx1NTlhOFx1NGVmZlx1OGJiZlx1N2ViYVx1''@;'; + put 'put ''NjUzZVx1ODNmMlx1OTc1ZVx1NTU2MVx1OThkZVx1ODBhNVx1NTMyYVx1OGJmZFx1NTQyMFx1ODBiYVx1NWU5Zlx1NmNiOFx1OGQzOVx1ODJhY1x1OTE1YVx1NTQyOVx1NmMxYlx1NTIwNlx1N2ViN1x1NTc1Zlx1NzExYVx1NmM3ZVx1N2M4OVx1NTk0Ylx1NGVmZFx1NWZmZlx1NjEyNFx1N2Nh''@;'; + put 'put ''YVx1NGUzMFx1NWMwMVx1NjdhYlx1ODcwMlx1NWNmMFx1OTUwYlx1OThjZVx1NzVhZlx1NzBmZFx1OTAyMlx1NTFhZlx1N2YxZFx1OGJiZFx1NTk0OVx1NTFlNFx1NGY1Ylx1NTQyNlx1NTkyYlx1NjU3N1x1ODBhNFx1NWI3NVx1NjI3Nlx1NjJjMlx1OGY5MFx1NWU0NVx1NmMxZlx1N2IyNlx1''@;'; + put 'put ''NGYwZlx1NGZkOFx1NjcwZFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE4M10ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTgzXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxODNdW0VdXT00Njg0OCtFLExbNDY4NDgrRV09QlsxODNdW0VdKTtmb3IoQlsxODRdPSJcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTZkNmVcdTZkYWFcdTc5OGZcdTg4YjFcdTVmMTdcdTc1MmJcdTYy''@;'; + put 'put ''OWFcdThmODVcdTRmZWZcdTkxZGNcdTY1YTdcdTgxMmZcdTgxNTFcdTVlOWNcdTgxNTBcdThkNzRcdTUyNmZcdTg5ODZcdThkNGJcdTU5MGRcdTUwODVcdTRlZDhcdTk2MWNcdTcyMzZcdTgxNzlcdThkMWZcdTViY2NcdThiYTNcdTk2NDRcdTU5ODdcdTdmMWFcdTU0OTBcdTU2NzZcdTU2MGVc''@;'; + put 'put ''dThiZTVcdTY1MzlcdTY5ODJcdTk0OTlcdTc2ZDZcdTZlODlcdTVlNzJcdTc1MThcdTY3NDZcdTY3ZDFcdTdhZmZcdTgwOWRcdThkNzZcdTYxMWZcdTc5YzZcdTY1NjJcdThkNjNcdTUxODhcdTUyMWFcdTk0YTJcdTdmMzhcdTgwOWJcdTdlYjJcdTVjOTdcdTZlMmZcdTY3NjBcdTdiZDlcdTc2''@;'; + put 'put ''OGJcdTlhZDhcdTgxOGZcdTdmOTRcdTdjZDVcdTY0MWVcdTk1NTBcdTdhM2ZcdTU0NGFcdTU0ZTVcdTZiNGNcdTY0MDFcdTYyMDhcdTllM2RcdTgwZjNcdTc1OTlcdTUyNzJcdTk3NjlcdTg0NWJcdTY4M2NcdTg2ZTRcdTk2MDFcdTk2OTRcdTk0ZWNcdTRlMmFcdTU0MDRcdTdlZDlcdTY4Mzlc''@;'; + put 'put ''dThkZGZcdTgwMTVcdTY2ZjRcdTVlOWFcdTdmYjlcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxODRdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE4NF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTg0XVtFXV09NDcxMDQrRSxMWzQ3MTA0K0VdPUJbMTg0XVtFXSk7Zm9yKEJbMTg1XT0iXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1N2MyXHU4MDNmXHU2ODk3XHU1ZGU1XHU2''@;'; + put 'put ''NTNiXHU1MjlmXHU2MDZkXHU5ZjlhXHU0ZjliXHU4ZWFjXHU1MTZjXHU1YmFiXHU1ZjEzXHU1ZGU5XHU2YzVlXHU2MmYxXHU4ZDIxXHU1MTcxXHU5NGE5XHU1MmZlXHU2YzlmXHU4MmRmXHU3MmQ3XHU1N2EyXHU2Nzg0XHU4ZDJkXHU1OTFmXHU4ZjljXHU4M2M3XHU1NDk1XHU3YjhkXHU0ZjMw''@;'; + put 'put ''XHU2Y2JkXHU1YjY0XHU1OWQxXHU5ZjEzXHU1M2U0XHU4NmNhXHU5YWE4XHU4YzM3XHU4MGExXHU2NTQ1XHU5ODdlXHU1NmZhXHU5NmM3XHU1MjJlXHU3NGRjXHU1MjUwXHU1YmUxXHU2MzAyXHU4OTAyXHU0ZTU2XHU2MmQwXHU2MDJhXHU2OGZhXHU1MTczXHU1Yjk4XHU1MWEwXHU4OWMyXHU3''@;'; + put 'put ''YmExXHU5OTg2XHU3ZjUwXHU2MGVmXHU3MDRjXHU4ZDJmXHU1MTQ5XHU1ZTdmXHU5MDFiXHU3NDcwXHU4OWM0XHU1NzJkXHU3ODQ1XHU1ZjUyXHU5ZjlmXHU5NWZhXHU4ZjY4XHU5YjNjXHU4YmUxXHU3Njc4XHU2ODQyXHU2N2RjXHU4ZGVhXHU4ZDM1XHU1MjNkXHU4ZjhhXHU2ZWRhXHU2OGNk''@;'; + put 'put ''XHU5NTA1XHU5MGVkXHU1NmZkXHU2NzljXHU4OGY5XHU4ZmM3XHU1NGM4XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTg1XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxODVdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE4NV1bRV1dPTQ3MzYwK0UsTFs0NzM2MCtFXT1CWzE4NV1bRV0pO2Zv''@;'; + put 'put ''cihCWzE4Nl09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OWFiOFx1NWI2OVx1''@;'; + put 'put ''NmQ3N1x1NmMyNlx1NGVhNVx1NWJiM1x1OWE4N1x1OTE2M1x1NjFhOFx1OTBhZlx1OTdlOVx1NTQyYlx1NmRiNVx1NWJkMlx1NTFmZFx1NTU4YVx1N2Y1NVx1N2ZmMFx1NjRiY1x1NjM0ZFx1NjVmMVx1NjFiZVx1NjA4ZFx1NzEwYVx1NmM1N1x1NmM0OVx1NTkyZlx1Njc2ZFx1ODIyYVx1NThk''@;'; + put 'put ''NVx1NTY4ZVx1OGM2YVx1NmJlYlx1OTBkZFx1NTk3ZFx1ODAxN1x1NTNmN1x1NmQ2OVx1NTQ3NVx1NTU5ZFx1ODM3N1x1ODNjZlx1NjgzOFx1NzliZVx1NTQ4Y1x1NGY1NVx1NTQwOFx1NzZkMlx1OGM4OVx1OTYwMlx1NmNiM1x1NmRiOFx1OGQ2Ylx1ODkxMFx1OWU2NFx1OGQzYVx1NTYzZlx1''@;'; + put 'put ''OWVkMVx1NzVkNVx1NWY4OFx1NzJlMFx1NjA2OFx1NTRmY1x1NGVhOFx1NmEyYVx1ODg2MVx1NjA1Mlx1OGY3MFx1NTRjNFx1NzBkOFx1ODY3OVx1OWUzZlx1NmQyYVx1NWI4Zlx1NWYxOFx1N2VhMlx1NTU4OVx1NGZhZlx1NzMzNFx1NTQzY1x1NTM5YVx1NTAxOVx1NTQwZVx1NTQ3Y1x1NGU0''@;'; + put 'put ''ZVx1NWZmZFx1NzQ1YVx1NThmNlx1ODQ2Ylx1ODBlMVx1ODc3NFx1NzJkMFx1N2NjYVx1NmU1Nlx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE4Nl0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTg2XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxODZdW0VdXT00NzYxNitFLExbNDc2MTYrRV09''@;'; + put 'put ''QlsxODZdW0VdKTtmb3IoQlsxODddPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dTVmMjdcdTg2NGVcdTU1MmNcdTYyYTRcdTRlOTJcdTZjYWFcdTYyMzdcdTgyYjFcdTU0ZDdcdTUzNGVcdTczM2VcdTZlZDFcdTc1M2JcdTUyMTJcdTUzMTZcdThiZGRcdTY5ZDBcdTVmOGFcdTYwMDBcdTZkZWVcdTU3NGZcdTZiMjJcdTczYWZcdTY4NTNcdThmZDhcdTdmMTNcdTYzNjJcdTYw''@;'; + put 'put ''YTNcdTU1MjRcdTc1ZWFcdThjNjJcdTcxMTVcdTZkYTNcdTViYTZcdTVlN2JcdTgzNTJcdTYxNGNcdTllYzRcdTc4ZmFcdTg3NTdcdTdjMjdcdTc2ODdcdTUxZjBcdTYwZjZcdTcxNGNcdTY2NDNcdTVlNGNcdTYwNGRcdThjMGVcdTcwNzBcdTYzMjVcdThmODlcdTVmYmRcdTYwNjJcdTg2ZDRc''@;'; + put 'put ''dTU2ZGVcdTZiYzFcdTYwOTRcdTYxNjdcdTUzNDlcdTYwZTBcdTY2NjZcdThkM2ZcdTc5ZmRcdTRmMWFcdTcwZTlcdTZjNDdcdThiYjNcdThiZjJcdTdlZDhcdTgzNjRcdTY2MGZcdTVhNWFcdTliNDJcdTZkNTFcdTZkZjdcdThjNDFcdTZkM2JcdTRmMTlcdTcwNmJcdTgzYjdcdTYyMTZcdTYw''@;'; + put 'put ''ZDFcdTk3MGRcdThkMjdcdTc5NzhcdTUxZmJcdTU3M2VcdTU3ZmFcdTY3M2FcdTc1NzhcdTdhM2RcdTc5ZWZcdTdiOTVcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxODddLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE4N11bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTg3XVtFXV09NDc4NzIr''@;'; + put 'put ''RSxMWzQ3ODcyK0VdPUJbMTg3XVtFXSk7Zm9yKEJbMTg4XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHU4MDhjXHU5OTY1XHU4ZmY5XHU2ZmMwXHU4YmE1XHU5ZTIxXHU1OWVjXHU3ZWU5XHU3ZjA5XHU1NDA5XHU2NzgxXHU2OGQ4XHU4ZjkxXHU3YzRkXHU5NmM2XHU1M2NhXHU2MDI1XHU3NWJlXHU2YzcyXHU1MzczXHU1YWM5XHU3ZWE3XHU2MzI0XHU1MWUwXHU4MTBhXHU1''@;'; + put 'put ''ZGYxXHU4NGRmXHU2MjgwXHU1MTgwXHU1YjYzXHU0ZjBlXHU3OTZkXHU1MjQyXHU2MGI4XHU2ZDRlXHU1YmM0XHU1YmMyXHU4YmExXHU4YmIwXHU2NWUyXHU1ZmNjXHU5NjQ1XHU1OTkzXHU3ZWU3XHU3ZWFhXHU1NjA5XHU2N2I3XHU1OTM5XHU0ZjczXHU1YmI2XHU1MmEwXHU4MzVhXHU5ODhh''@;'; + put 'put ''XHU4ZDNlXHU3NTMyXHU5NGJlXHU1MDQ3XHU3YTNjXHU0ZWY3XHU2N2I2XHU5YTdlXHU1YWMxXHU2YjdjXHU3NmQxXHU1NzVhXHU1YzE2XHU3YjNhXHU5NWY0XHU3MTRlXHU1MTdjXHU4MGE5XHU4MjcwXHU1OTc4XHU3ZjA0XHU4MzI3XHU2OGMwXHU2N2VjXHU3OGIxXHU3ODc3XHU2MmUzXHU2''@;'; + put 'put ''MzYxXHU3YjgwXHU0ZmVkXHU1MjZhXHU1MWNmXHU4MzUwXHU2OWRiXHU5Mjc0XHU4ZGY1XHU4ZDMxXHU4OWMxXHU5NTJlXHU3YmFkXHU0ZWY2XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTg4XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxODhdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE4''@;'; + put 'put ''OF1bRV1dPTQ4MTI4K0UsTFs0ODEyOCtFXT1CWzE4OF1bRV0pO2ZvcihCWzE4OV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NTA2NVx1ODIzMFx1NTI1MVx1OTk2Zlx1NmUxMFx1NmU4NVx1NmRhN1x1NWVmYVx1NTBmNVx1NTlkY1x1NWMwNlx1NmQ0Nlx1NmM1Zlx1NzU4Nlx1ODQ4Ylx1Njg2OFx1NTk1Nlx1OGJiMlx1NTMyMFx1OTE3MVx1OTY0ZFx1ODU0OVx1NjkxMlx1''@;'; + put 'put ''NzkwMVx1NzEyNlx1ODBmNlx1NGVhNFx1OTBjYVx1NmQ0N1x1OWE4NFx1NWEwN1x1NTZiY1x1NjQwNVx1OTRmMFx1NzdlYlx1NGZhNVx1ODExYVx1NzJlMVx1ODlkMlx1OTk3YVx1N2YzNFx1N2VkZVx1NTI3Zlx1NjU1OVx1OTE3NVx1OGY3Zlx1OGY4M1x1NTNlYlx1N2E5Nlx1NjNlZFx1NjNh''@;'; + put 'put ''NVx1NzY4Nlx1NzlmOFx1ODg1N1x1OTYzNlx1NjIyYVx1NTJhYlx1ODI4Mlx1Njg1NFx1Njc3MFx1NjM3N1x1Nzc2Ylx1N2FlZFx1NmQwMVx1N2VkM1x1ODllM1x1NTlkMFx1NjIxMlx1ODVjOVx1ODJhNVx1NzU0Y1x1NTAxZlx1NGVjYlx1NzVhNVx1OGJlYlx1NWM0YVx1NWRmZVx1N2I0Ylx1''@;'; + put 'put ''NjVhNFx1OTFkMVx1NGVjYVx1NmQyNVx1ODk1Zlx1N2QyN1x1OTUyNlx1NGVjNVx1OGMyOFx1OGZkYlx1OTc3M1x1NjY0Ylx1Nzk4MVx1OGZkMVx1NzBlY1x1NmQ3OFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE4OV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTg5XVtFXS5jaGFyQ29kZUF0''@;'; + put 'put ''KDApJiYobWVbQlsxODldW0VdXT00ODM4NCtFLExbNDgzODQrRV09QlsxODldW0VdKTtmb3IoQlsxOTBdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTVjM2RcdTUyYjJcdTgzNDZcdTUxNjJcdTgzMGVcdTc3NWJcdTY2NzZcdTljYjhcdTRlYWNcdTYwY2FcdTdjYmVcdTdjYjNcdTdlY2ZcdTRlOTVcdThiNjZcdTY2NmZcdTk4ODhcdTk3NTlcdTU4ODNcdTY1NmNcdTk1NWNc''@;'; + put 'put ''dTVmODRcdTc1YzlcdTk3NTZcdTdhZGZcdTdhZGVcdTUxYzBcdTcwYWZcdTdhOThcdTYzZWFcdTdhNzZcdTdlYTBcdTczOTZcdTk3ZWRcdTRlNDVcdTcwNzhcdTRlNWRcdTkxNTJcdTUzYTlcdTY1NTFcdTY1ZTdcdTgxZmNcdTgyMDVcdTU0OGVcdTVjMzFcdTc1OWFcdTk3YTBcdTYyZDhcdTcy''@;'; + put 'put ''ZDlcdTc1YmRcdTVjNDVcdTlhNzlcdTgzY2FcdTVjNDBcdTU0ODBcdTc3ZTlcdTRlM2VcdTZjYWVcdTgwNWFcdTYyZDJcdTYzNmVcdTVkZThcdTUxNzdcdThkZGRcdThlMWVcdTk1MmZcdTRmZjFcdTUzZTVcdTYwZTdcdTcwYWNcdTUyNjdcdTYzNTBcdTllNDNcdTVhMWZcdTUwMjZcdTc3Mzdc''@;'; + put 'put ''dTUzNzdcdTdlZTJcdTY0ODVcdTY1MmJcdTYyODlcdTYzOThcdTUwMTRcdTcyMzVcdTg5YzlcdTUxYjNcdThiYzBcdTdlZGRcdTU3NDdcdTgzY2NcdTk0YTdcdTUxOWJcdTU0MWJcdTVjZmJcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxOTBdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE5MF1b''@;'; + put 'put ''RV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTkwXVtFXV09NDg2NDArRSxMWzQ4NjQwK0VdPUJbMTkwXVtFXSk7Zm9yKEJbMTkxXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU0ZmNhXHU3YWUzXHU2ZDVhXHU5MGUxXHU5YThmXHU1NTgwXHU1NDk2XHU1MzYxXHU1NGFmXHU1ZjAwXHU2M2U5XHU2OTc3XHU1MWVmXHU2MTY4XHU1MjBhXHU1ODJhXHU1MmQ4XHU1NzRlXHU3ODBk''@;'; + put 'put ''XHU3NzBiXHU1ZWI3XHU2MTc3XHU3Y2UwXHU2MjViXHU2Mjk3XHU0ZWEyXHU3MDk1XHU4MDAzXHU2MmY3XHU3MGU0XHU5NzYwXHU1Nzc3XHU4MmRiXHU2N2VmXHU2OGY1XHU3OGQ1XHU5ODk3XHU3OWQxXHU1OGYzXHU1NGIzXHU1M2VmXHU2ZTM0XHU1MTRiXHU1MjNiXHU1YmEyXHU4YmZlXHU4''@;'; + put 'put ''MGFmXHU1NTQzXHU1N2E2XHU2MDczXHU1NzUxXHU1NDJkXHU3YTdhXHU2MDUwXHU1YjU0XHU2M2E3XHU2MmEwXHU1M2UzXHU2MjYzXHU1YmM3XHU2N2FmXHU1NGVkXHU3YTlmXHU4MmU2XHU5MTc3XHU1ZTkzXHU4OGU0XHU1OTM4XHU1N2FlXHU2MzBlXHU4ZGU4XHU4MGVmXHU1NzU3XHU3Yjc3''@;'; + put 'put ''XHU0ZmE5XHU1ZmViXHU1YmJkXHU2YjNlXHU1MzIxXHU3YjUwXHU3MmMyXHU2ODQ2XHU3N2ZmXHU3NzM2XHU2NWY3XHU1MWI1XHU0ZThmXHU3NmQ0XHU1Y2JmXHU3YWE1XHU4NDc1XHU1OTRlXHU5YjQxXHU1MDgwXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTkxXS5sZW5ndGg7KytFKTY1''@;'; + put 'put ''NTMzIT09QlsxOTFdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE5MV1bRV1dPTQ4ODk2K0UsTFs0ODg5NitFXT1CWzE5MV1bRV0pO2ZvcihCWzE5Ml09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OTk4OFx1NjEyN1x1NmU4M1x1NTc2NFx1NjYwNlx1NjM0Nlx1NTZmMFx1NjJlY1x1NjI2OVx1NWVkM1x1OTYxNFx1NTc4M1x1NjJjOVx1NTU4N1x1ODcyMVx1ODE0YVx1OGZh''@;'; + put 'put ''M1x1NTU2Nlx1ODNiMVx1Njc2NVx1OGQ1Nlx1ODRkZFx1NWE2YVx1NjgwZlx1NjJlNlx1N2JlZVx1OTYxMVx1NTE3MFx1NmY5Y1x1OGMzMFx1NjNmZFx1ODljOFx1NjFkMlx1N2YwNlx1NzBjMlx1NmVlNVx1NzQwNVx1Njk5NFx1NzJmY1x1NWVjYVx1OTBjZVx1NjcxN1x1NmQ2YVx1NjM1ZVx1''@;'; + put 'put ''NTJiM1x1NzI2Mlx1ODAwMVx1NGY2Y1x1NTllNVx1OTE2YVx1NzBkOVx1NmQ5ZFx1NTJkMlx1NGU1MFx1OTZmN1x1OTU2ZFx1ODU3ZVx1NzhjYVx1N2QyZlx1NTEyMVx1NTc5Mlx1NjRjMlx1ODA4Ylx1N2M3Ylx1NmNlYVx1NjhmMVx1Njk1ZVx1NTFiN1x1NTM5OFx1NjhhOFx1NzI4MVx1OWVj''@;'; + put 'put ''ZVx1N2JmMVx1NzJmOFx1NzliYlx1NmYxM1x1NzQwNlx1Njc0ZVx1OTFjY1x1OWNhNFx1NzkzY1x1ODM4OVx1ODM1NFx1NTQwZlx1NjgxN1x1NGUzZFx1NTM4OVx1NTJiMVx1NzgzZVx1NTM4Nlx1NTIyOVx1NTA4OFx1NGY4Ylx1NGZkMFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE5Ml0u''@;'; + put 'put ''bGVuZ3RoOysrRSk2NTUzMyE9PUJbMTkyXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxOTJdW0VdXT00OTE1MitFLExbNDkxNTIrRV09QlsxOTJdW0VdKTtmb3IoQlsxOTNdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTc1ZTJcdTdhY2JcdTdjOTJcdTZjYTVcdTk2YjZcdTUyOWJcdTc0ODNcdTU0ZTlcdTRmZTlcdTgwNTRcdTgzYjJcdThmZGVcdTk1NzBcdTVlYzlcdTYw''@;'; + put 'put ''MWNcdTZkOWZcdTVlMThcdTY1NWJcdTgxMzhcdTk0ZmVcdTYwNGJcdTcwYmNcdTdlYzNcdTdjYWVcdTUxYzlcdTY4ODFcdTdjYjFcdTgyNmZcdTRlMjRcdThmODZcdTkxY2ZcdTY2N2VcdTRlYWVcdThjMDVcdTY0YTlcdTgwNGFcdTUwZGFcdTc1OTdcdTcxY2VcdTViZTVcdThmYmRcdTZmNjZc''@;'; + put 'put ''dTRlODZcdTY0ODJcdTk1NjNcdTVlZDZcdTY1OTlcdTUyMTdcdTg4YzJcdTcwYzhcdTUyYTNcdTczMGVcdTc0MzNcdTY3OTdcdTc4ZjdcdTk3MTZcdTRlMzRcdTkwYmJcdTljZGVcdTZkY2JcdTUxZGJcdThkNDFcdTU0MWRcdTYyY2VcdTczYjJcdTgzZjFcdTk2ZjZcdTlmODRcdTk0YzNcdTRm''@;'; + put 'put ''MzZcdTdmOWFcdTUxY2NcdTcwNzVcdTk2NzVcdTVjYWRcdTk4ODZcdTUzZTZcdTRlZTRcdTZlOWNcdTc0MDlcdTY5YjRcdTc4NmJcdTk5OGZcdTc1NTlcdTUyMThcdTc2MjRcdTZkNDFcdTY3ZjNcdTUxNmRcdTlmOTlcdTgwNGJcdTU0OTlcdTdiM2NcdTdhYmZcdWZmZmQiLnNwbGl0KCIiKSxF''@;'; + put 'put ''PTA7RSE9QlsxOTNdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE5M11bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTkzXVtFXV09NDk0MDgrRSxMWzQ5NDA4K0VdPUJbMTkzXVtFXSk7Zm9yKEJbMTk0XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5Njg2XHU1Nzg0XHU2MmUyXHU5NjQ3XHU2OTdjXHU1YTA0XHU2NDAyXHU3YmQzXHU2ZjBmXHU5NjRiXHU4MmE2XHU1MzYyXHU5''@;'; + put 'put ''ODg1XHU1ZTkwXHU3MDg5XHU2M2IzXHU1MzY0XHU4NjRmXHU5YzgxXHU5ZTkzXHU3ODhjXHU5NzMyXHU4ZGVmXHU4ZDQyXHU5ZTdmXHU2ZjVlXHU3OTg0XHU1ZjU1XHU5NjQ2XHU2MjJlXHU5YTc0XHU1NDE1XHU5NGRkXHU0ZmEzXHU2NWM1XHU1YzY1XHU1YzYxXHU3ZjE1XHU4NjUxXHU2YzJm''@;'; + put 'put ''XHU1ZjhiXHU3Mzg3XHU2ZWU0XHU3ZWZmXHU1Y2U2XHU2MzFiXHU1YjZhXHU2ZWU2XHU1Mzc1XHU0ZTcxXHU2M2EwXHU3NTY1XHU2MmExXHU4ZjZlXHU0ZjI2XHU0ZWQxXHU2Y2E2XHU3ZWI2XHU4YmJhXHU4NDFkXHU4N2JhXHU3ZjU3XHU5MDNiXHU5NTIzXHU3YmE5XHU5YWExXHU4OGY4XHU4''@;'; + put 'put ''NDNkXHU2ZDFiXHU5YTg2XHU3ZWRjXHU1OTg4XHU5ZWJiXHU3MzliXHU3ODAxXHU4NjgyXHU5YTZjXHU5YTgyXHU1NjFiXHU1NDE3XHU1N2NiXHU0ZTcwXHU5ZWE2XHU1MzU2XHU4ZmM4XHU4MTA5XHU3NzkyXHU5OTkyXHU4NmVlXHU2ZWUxXHU4NTEzXHU2NmZjXHU2MTYyXHU2ZjJiXHVmZmZk''@;'; + put 'put ''Ii5zcGxpdCgiIiksRT0wO0UhPUJbMTk0XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxOTRdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE5NF1bRV1dPTQ5NjY0K0UsTFs0OTY2NCtFXT1CWzE5NF1bRV0pO2ZvcihCWzE5NV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OGMyOVx1ODI5Mlx1ODMyYlx1NzZmMlx1NmMxM1x1NWZkOVx1ODNiZFx1NzMyYlx1ODMwNVx1OTUxYVx1''@;'; + put 'put ''NmJkYlx1NzdkYlx1OTRjNlx1NTM2Zlx1ODMwMlx1NTE5Mlx1NWUzZFx1OGM4Y1x1OGQzOFx1NGU0OFx1NzNhYlx1Njc5YVx1Njg4NVx1OTE3Nlx1OTcwOVx1NzE2NFx1NmNhMVx1NzcwOVx1NWE5Mlx1OTU0MVx1NmJjZlx1N2Y4ZVx1NjYyN1x1NWJkMFx1NTliOVx1NWE5YVx1OTVlOFx1OTVm''@;'; + put 'put ''N1x1NGVlY1x1ODQwY1x1ODQ5OVx1NmFhY1x1NzZkZlx1OTUzMFx1NzMxYlx1NjhhNlx1NWI1Zlx1NzcyZlx1OTE5YVx1OTc2MVx1N2NkY1x1OGZmN1x1OGMxY1x1NWYyNVx1N2M3M1x1NzlkOFx1ODljNVx1NmNjY1x1ODcxY1x1NWJjNlx1NWU0Mlx1NjhjOVx1NzcyMFx1N2VmNVx1NTE5NVx1''@;'; + put 'put ''NTE0ZFx1NTJjOVx1NWEyOVx1N2YwNVx1OTc2Mlx1ODJkN1x1NjNjZlx1Nzc4NFx1ODVkMFx1NzlkMlx1NmUzYVx1NWU5OVx1NTk5OVx1ODUxMVx1NzA2ZFx1NmMxMVx1NjJiZlx1NzZiZlx1NjU0Zlx1NjBhZlx1OTVmZFx1NjYwZVx1ODc5Zlx1OWUyM1x1OTRlZFx1NTQwZFx1NTQ3ZFx1OGMy''@;'; + put 'put ''Y1x1NjQ3OFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE5NV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTk1XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxOTVdW0VdXT00OTkyMCtFLExbNDk5MjArRV09QlsxOTVdW0VdKTtmb3IoQlsxOTZdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTY0NzlcdTg2MTFcdTZhMjFcdTgxOWNcdTc4ZThcdTY0NjlcdTliNTRcdTYyYjlc''@;'; + put 'put ''dTY3MmJcdTgzYWJcdTU4YThcdTllZDhcdTZjYWJcdTZmMjBcdTViZGVcdTk2NGNcdThjMGJcdTcyNWZcdTY3ZDBcdTYyYzdcdTcyNjFcdTRlYTlcdTU5YzZcdTZiY2RcdTU4OTNcdTY2YWVcdTVlNTVcdTUyZGZcdTYxNTVcdTY3MjhcdTc2ZWVcdTc3NjZcdTcyNjdcdTdhNDZcdTYyZmZcdTU0''@;'; + put 'put ''ZWFcdTU0NTBcdTk0YTBcdTkwYTNcdTVhMWNcdTdlYjNcdTZjMTZcdTRlNDNcdTU5NzZcdTgwMTBcdTU5NDhcdTUzNTdcdTc1MzdcdTk2YmVcdTU2Y2FcdTYzMjBcdTgxMTFcdTYwN2NcdTk1ZjlcdTZkZDZcdTU0NjJcdTk5ODFcdTUxODVcdTVhZTlcdTgwZmRcdTU5YWVcdTk3MTNcdTUwMmFc''@;'; + put 'put ''dTZjZTVcdTVjM2NcdTYyZGZcdTRmNjBcdTUzM2ZcdTgxN2JcdTkwMDZcdTZlYmFcdTg1MmJcdTYyYzhcdTVlNzRcdTc4YmVcdTY0YjVcdTYzN2JcdTVmZjVcdTVhMThcdTkxN2ZcdTllMWZcdTVjM2ZcdTYzNGZcdTgwNDJcdTViN2RcdTU1NmVcdTk1NGFcdTk1NGRcdTZkODVcdTYwYThcdTY3''@;'; + put 'put ''ZTBcdTcyZGVcdTUxZGRcdTViODFcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxOTZdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE5Nl1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTk2XVtFXV09NTAxNzYrRSxMWzUwMTc2K0VdPUJbMTk2XVtFXSk7Zm9yKEJbMTk3XT0iXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2MmU3XHU2Y2RlXHU3MjViXHU2MjZkXHU5NGFlXHU3ZWJk''@;'; + put 'put ''XHU4MTEzXHU2ZDUzXHU1MTljXHU1ZjA0XHU1OTc0XHU1MmFhXHU2MDEyXHU1OTczXHU2Njk2XHU4NjUwXHU3NTlmXHU2MzJhXHU2MWU2XHU3Y2VmXHU4YmZhXHU1NGU2XHU2YjI3XHU5ZTI1XHU2YmI0XHU4NWQ1XHU1NDU1XHU1MDc2XHU2Y2E0XHU1NTZhXHU4ZGI0XHU3MjJjXHU1ZTE1XHU2''@;'; + put 'put ''MDE1XHU3NDM2XHU2MmNkXHU2MzkyXHU3MjRjXHU1Zjk4XHU2ZTQzXHU2ZDNlXHU2NTAwXHU2ZjU4XHU3NmQ4XHU3OGQwXHU3NmZjXHU3NTU0XHU1MjI0XHU1M2RiXHU0ZTUzXHU1ZTllXHU2NWMxXHU4MDJhXHU4MGQ2XHU2MjliXHU1NDg2XHU1MjI4XHU3MGFlXHU4ODhkXHU4ZGQxXHU2Y2Ux''@;'; + put 'put ''XHU1NDc4XHU4MGRhXHU1N2Y5XHU4OGY0XHU4ZDU0XHU5NjZhXHU5MTRkXHU0ZjY5XHU2YzliXHU1NWI3XHU3NmM2XHU3ODMwXHU2MmE4XHU3MGY5XHU2ZjhlXHU1ZjZkXHU4NGVjXHU2OGRhXHU3ODdjXHU3YmY3XHU4MWE4XHU2NzBiXHU5ZTRmXHU2MzY3XHU3OGIwXHU1NzZmXHU3ODEyXHU5''@;'; + put 'put ''NzM5XHU2Mjc5XHU2MmFiXHU1Mjg4XHU3NDM1XHU2YmQ3XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTk3XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxOTddW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE5N11bRV1dPTUwNDMyK0UsTFs1MDQzMitFXT1CWzE5N11bRV0pO2ZvcihCWzE5OF09''@;'; + put 'put ''Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NTU2NFx1ODEzZVx1NzViMlx1NzZh''@;'; + put 'put ''ZVx1NTMzOVx1NzVkZVx1NTBmYlx1NWM0MVx1OGI2Y1x1N2JjN1x1NTA0Zlx1NzI0N1x1OWE5N1x1OThkOFx1NmYwMlx1NzRlMlx1Nzk2OFx1NjQ4N1x1NzdhNVx1NjJmY1x1OTg5MVx1OGQyYlx1NTRjMVx1ODA1OFx1NGU1Mlx1NTc2YVx1ODJmOVx1ODQwZFx1NWU3M1x1NTFlZFx1NzRmNlx1''@;'; + put 'put ''OGJjNFx1NWM0Zlx1NTc2MVx1NmNmY1x1OTg4N1x1NWE0Nlx1NzgzNFx1OWI0NFx1OGZlYlx1N2M5NVx1NTI1Nlx1NjI1MVx1OTRmYVx1NGVjNlx1ODM4Nlx1ODQ2MVx1ODNlOVx1ODRiMlx1NTdkNFx1NjczNFx1NTcwM1x1NjY2ZVx1NmQ2Nlx1OGMzMVx1NjZkZFx1NzAxMVx1NjcxZlx1NmIz''@;'; + put 'put ''YVx1NjgxNlx1NjIxYVx1NTliYlx1NGUwM1x1NTFjNFx1NmYwNlx1NjdkMlx1NmM4Zlx1NTE3Nlx1NjhjYlx1NTk0N1x1NmI2N1x1NzU2Nlx1NWQwZVx1ODExMFx1OWY1MFx1NjVkN1x1Nzk0OFx1Nzk0MVx1OWE5MVx1OGQ3N1x1NWM4Mlx1NGU1ZVx1NGYwMVx1NTQyZlx1NTk1MVx1NzgwY1x1''@;'; + put 'put ''NTY2OFx1NmMxNFx1OGZjNFx1NWYwM1x1NmM3ZFx1NmNlM1x1OGJhYlx1NjM5MFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE5OF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTk4XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxOThdW0VdXT01MDY4OCtFLExbNTA2ODgrRV09QlsxOThdW0Vd''@;'; + put 'put ''KTtmb3IoQlsxOTldPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTYwNzBcdTZk''@;'; + put 'put ''M2RcdTcyNzVcdTYyNjZcdTk0OGVcdTk0YzVcdTUzNDNcdThmYzFcdTdiN2VcdTRlZGZcdThjMjZcdTRlN2VcdTllZDRcdTk0YjFcdTk0YjNcdTUyNGRcdTZmNWNcdTkwNjNcdTZkNDVcdThjMzRcdTU4MTFcdTVkNGNcdTZiMjBcdTZiNDlcdTY3YWFcdTU0NWJcdTgxNTRcdTdmOGNcdTU4OTlc''@;'; + put 'put ''dTg1MzdcdTVmM2FcdTYyYTJcdTZhNDdcdTk1MzlcdTY1NzJcdTYwODRcdTY4NjVcdTc3YTdcdTRlNTRcdTRmYThcdTVkZTdcdTk3OThcdTY0YWNcdTdmZDhcdTVjZWRcdTRmY2ZcdTdhOGRcdTUyMDdcdTgzMDRcdTRlMTRcdTYwMmZcdTdhODNcdTk0YTZcdTRmYjVcdTRlYjJcdTc5ZTZcdTc0''@;'; + put 'put ''MzRcdTUyZTRcdTgyYjlcdTY0ZDJcdTc5YmRcdTViZGRcdTZjODFcdTk3NTJcdThmN2JcdTZjMjJcdTUwM2VcdTUzN2ZcdTZlMDVcdTY0Y2VcdTY2NzRcdTZjMzBcdTYwYzVcdTk4NzdcdThiZjdcdTVlODZcdTc0M2NcdTdhNzdcdTc5Y2JcdTRlMThcdTkwYjFcdTc0MDNcdTZjNDJcdTU2ZGFc''@;'; + put 'put ''dTkxNGJcdTZjYzVcdThkOGJcdTUzM2FcdTg2YzZcdTY2ZjJcdThlYWZcdTVjNDhcdTlhNzFcdTZlMjBcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxOTldLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE5OV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTk5XVtFXV09NTA5NDQrRSxMWzUwOTQ0''@;'; + put 'put ''K0VdPUJbMTk5XVtFXSk7Zm9yKEJbMjAwXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHU1M2Q2XHU1YTM2XHU5ZjhiXHU4ZGEzXHU1M2JiXHU1NzA4XHU5OGE3XHU2NzQzXHU5MTliXHU2Y2M5XHU1MTY4XHU3NWNhXHU2MmYzXHU3MmFjXHU1MjM4XHU1MjlkXHU3ZjNhXHU3MDk0XHU3NjM4XHU1Mzc0XHU5ZTRhXHU2OWI3XHU3ODZlXHU5NmMwXHU4OGQ5XHU3ZmE0XHU3MTM2''@;'; + put 'put ''XHU3MWMzXHU1MTg5XHU2N2QzXHU3NGU0XHU1OGU0XHU2NTE4XHU1NmI3XHU4YmE5XHU5OTc2XHU2MjcwXHU3ZWQ1XHU2MGY5XHU3MGVkXHU1OGVjXHU0ZWMxXHU0ZWJhXHU1ZmNkXHU5N2U3XHU0ZWZiXHU4YmE0XHU1MjAzXHU1OThhXHU3ZWFiXHU2MjU0XHU0ZWNkXHU2NWU1XHU2MjBlXHU4''@;'; + put 'put ''MzM4XHU4NGM5XHU4MzYzXHU4NzhkXHU3MTk0XHU2ZWI2XHU1YmI5XHU3ZWQyXHU1MTk3XHU2M2M5XHU2N2Q0XHU4MDg5XHU4MzM5XHU4ODE1XHU1MTEyXHU1YjdhXHU1OTgyXHU4ZmIxXHU0ZTczXHU2YzVkXHU1MTY1XHU4OTI1XHU4ZjZmXHU5NjJlXHU4NTRhXHU3NDVlXHU5NTEwXHU5NWYw''@;'; + put 'put ''XHU2ZGE2XHU4MmU1XHU1ZjMxXHU2NDkyXHU2ZDEyXHU4NDI4XHU4MTZlXHU5Y2MzXHU1ODVlXHU4ZDViXHU0ZTA5XHU1M2MxXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjAwXS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMDBdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIwMF1bRV1dPTUx''@;'; + put 'put ''MjAwK0UsTFs1MTIwMCtFXT1CWzIwMF1bRV0pO2ZvcihCWzIwMV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1NGYxZVx1NjU2M1x1Njg1MVx1NTVkM1x1NGUyN1x1NjQxNFx1OWE5YVx1NjI2Ylx1NWFjMlx1NzQ1Zlx1ODI3Mlx1NmRhOVx1NjhlZVx1NTBlN1x1ODM4ZVx1NzgwMlx1Njc0MFx1NTIzOVx1NmM5OVx1N2ViMVx1NTBiYlx1NTU2NVx1NzE1ZVx1N2I1Ylx1NjY1''@;'; + put 'put ''Mlx1NzNjYVx1ODJlYlx1Njc0OVx1NWM3MVx1NTIyMFx1NzE3ZFx1ODg2Ylx1OTVlYVx1OTY1NVx1NjRjNVx1OGQ2MVx1ODFiM1x1NTU4NFx1NmM1NVx1NjI0N1x1N2YyZVx1NTg5Mlx1NGYyNFx1NTU0Nlx1OGQ0Zlx1NjY0Y1x1NGUwYVx1NWMxYVx1ODhmM1x1NjhhMlx1NjM0ZVx1N2EwZFx1''@;'; + put 'put ''NzBlN1x1ODI4ZFx1NTJmYVx1OTdmNlx1NWMxMVx1NTRlOFx1OTBiNVx1N2VjZFx1NTk2Mlx1OGQ0YVx1ODZjN1x1ODIwY1x1ODIwZFx1OGQ2Nlx1NjQ0NFx1NWMwNFx1NjE1MVx1NmQ4OVx1NzkzZVx1OGJiZVx1NzgzN1x1NzUzM1x1NTQ3Ylx1NGYzOFx1OGVhYlx1NmRmMVx1NWEyMFx1N2Vj''@;'; + put 'put ''NVx1Nzk1ZVx1NmM4OFx1NWJhMVx1NWE3Nlx1NzUxYVx1ODBiZVx1NjE0ZVx1NmUxN1x1NThmMFx1NzUxZlx1NzUyNVx1NzI3Mlx1NTM0N1x1N2VmM1x1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIwMV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjAxXVtFXS5jaGFyQ29kZUF0KDApJiYobWVb''@;'; + put 'put ''QlsyMDFdW0VdXT01MTQ1NitFLExbNTE0NTYrRV09QlsyMDFdW0VdKTtmb3IoQlsyMDJdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTc3MDFcdTc2ZGJcdTUyNjlcdTgwZGNcdTU3MjNcdTVlMDhcdTU5MzFcdTcyZWVcdTY1YmRcdTZlN2ZcdThiZDdcdTVjMzhcdTg2NzFcdTUzNDFcdTc3ZjNcdTYyZmVcdTY1ZjZcdTRlYzBcdTk4ZGZcdTg2ODBcdTViOWVcdThiYzZcdTUz''@;'; + put 'put ''ZjJcdTc3ZTJcdTRmN2ZcdTVjNGVcdTlhNzZcdTU5Y2JcdTVmMGZcdTc5M2FcdTU4ZWJcdTRlMTZcdTY3ZmZcdTRlOGJcdTYyZWRcdThhOTNcdTkwMWRcdTUyYmZcdTY2MmZcdTU1ZGNcdTU2NmNcdTkwMDJcdTRlZDVcdTRmOGRcdTkxY2FcdTk5NzBcdTZjMGZcdTVlMDJcdTYwNDNcdTViYTRc''@;'; + put 'put ''dTg5YzZcdThiZDVcdTY1MzZcdTYyNGJcdTk5OTZcdTViODhcdTViZmZcdTYzODhcdTU1MmVcdTUzZDdcdTc2MjZcdTUxN2RcdTg1MmNcdTY3YTJcdTY4YjNcdTZiOGFcdTYyOTJcdThmOTNcdTUzZDRcdTgyMTJcdTZkZDFcdTc1OGZcdTRlNjZcdThkNGVcdTViNzBcdTcxOWZcdTg1YWZcdTY2''@;'; + put 'put ''OTFcdTY2ZDlcdTdmNzJcdTg3MDBcdTllY2RcdTlmMjBcdTVjNWVcdTY3MmZcdThmZjBcdTY4MTFcdTY3NWZcdTYyMGRcdTdhZDZcdTU4ODVcdTVlYjZcdTY1NzBcdTZmMzFcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMDJdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIwMl1bRV0uY2hhckNv''@;'; + put 'put ''ZGVBdCgwKSYmKG1lW0JbMjAyXVtFXV09NTE3MTIrRSxMWzUxNzEyK0VdPUJbMjAyXVtFXSk7Zm9yKEJbMjAzXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2MDU1XHU1MjM3XHU4MDBkXHU2NDU0XHU4ODcwXHU3NTI5XHU1ZTA1XHU2ODEzXHU2MmY0XHU5NzFjXHU1M2NjXHU3MjNkXHU4YzAxXHU2YzM0XHU3NzYxXHU3YTBlXHU1NDJlXHU3N2FjXHU5ODdhXHU4MjFjXHU4''@;'; + put 'put ''YmY0XHU3ODU1XHU2NzE0XHU3MGMxXHU2NWFmXHU2NDk1XHU1NjM2XHU2MDFkXHU3OWMxXHU1M2Y4XHU0ZTFkXHU2YjdiXHU4MDg2XHU1YmZhXHU1NWUzXHU1NmRiXHU0ZjNhXHU0ZjNjXHU5OTcyXHU1ZGYzXHU2NzdlXHU4MDM4XHU2MDAyXHU5ODgyXHU5MDAxXHU1YjhiXHU4YmJjXHU4YmY1''@;'; + put 'put ''XHU2NDFjXHU4MjU4XHU2NGRlXHU1NWZkXHU4MmNmXHU5MTY1XHU0ZmQ3XHU3ZDIwXHU5MDFmXHU3YzlmXHU1MGYzXHU1ODUxXHU2ZWFmXHU1YmJmXHU4YmM5XHU4MDgzXHU5MTc4XHU4NDljXHU3Yjk3XHU4NjdkXHU5NjhiXHU5NjhmXHU3ZWU1XHU5YWQzXHU3ODhlXHU1YzgxXHU3YTU3XHU5''@;'; + put 'put ''MDQyXHU5NmE3XHU3OTVmXHU1YjU5XHU2MzVmXHU3YjBiXHU4NGQxXHU2OGFkXHU1NTA2XHU3ZjI5XHU3NDEwXHU3ZDIyXHU5NTAxXHU2MjQwXHU1ODRjXHU0ZWQ2XHU1YjgzXHU1OTc5XHU1ODU0XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjAzXS5sZW5ndGg7KytFKTY1NTMzIT09Qlsy''@;'; + put 'put ''MDNdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIwM11bRV1dPTUxOTY4K0UsTFs1MTk2OCtFXT1CWzIwM11bRV0pO2ZvcihCWzIwNF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NzM2ZFx1NjMxZVx1OGU0Ylx1OGUwZlx1ODBjZVx1ODJkNFx1NjJhY1x1NTNmMFx1NmNmMFx1OTE1ZVx1NTkyYVx1NjAwMVx1NmM3MFx1NTc0ZFx1NjQ0YVx1OGQyYVx1NzYyYlx1NmVlOVx1''@;'; + put 'put ''NTc1Ylx1NmE4MFx1NzVmMFx1NmY2ZFx1OGMyZFx1OGMwOFx1NTc2Nlx1NmJlZlx1ODg5Mlx1NzhiM1x1NjNhMlx1NTNmOVx1NzBhZFx1NmM2NFx1NTg1OFx1NjQyYVx1NTgwMlx1NjhlMFx1ODE5Ylx1NTUxMFx1N2NkNlx1NTAxOFx1OGViYVx1NmRjY1x1OGQ5Zlx1NzBlYlx1NjM4Zlx1NmQ5''@;'; + put 'put ''Ylx1NmVkNFx1N2VlNlx1ODQwNFx1Njg0M1x1OTAwM1x1NmRkOFx1OTY3Nlx1OGJhOFx1NTk1N1x1NzI3OVx1ODVlNFx1ODE3ZVx1NzViY1x1OGE4YVx1NjhhZlx1NTI1NFx1OGUyMlx1OTUxMVx1NjNkMFx1OTg5OFx1OGU0NFx1NTU3Y1x1NGY1M1x1NjZmZlx1NTY4Zlx1NjBkNVx1NmQ5NVx1''@;'; + put 'put ''NTI0M1x1NWM0OVx1NTkyOVx1NmRmYlx1NTg2Ylx1NzUzMFx1NzUxY1x1NjA2Y1x1ODIxNFx1ODE0Nlx1NjMxMVx1Njc2MVx1OGZlMlx1NzczYVx1OGRmM1x1OGQzNFx1OTRjMVx1NWUxNlx1NTM4NVx1NTQyY1x1NzBjM1x1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIwNF0ubGVuZ3RoOysr''@;'; + put 'put ''RSk2NTUzMyE9PUJbMjA0XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMDRdW0VdXT01MjIyNCtFLExbNTIyMjQrRV09QlsyMDRdW0VdKTtmb3IoQlsyMDVdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTZjNDBcdTVlZjdcdTUwNWNcdTRlYWRcdTVlYWRcdTYzM2FcdTgyNDdcdTkwMWFcdTY4NTBcdTkxNmVcdTc3YjNcdTU0MGNcdTk0ZGNcdTVmNjRcdTdhZTVcdTY4NzZc''@;'; + put 'put ''dTYzNDVcdTdiNTJcdTdlZGZcdTc1ZGJcdTUwNzdcdTYyOTVcdTU5MzRcdTkwMGZcdTUxZjhcdTc5YzNcdTdhODFcdTU2ZmVcdTVmOTJcdTkwMTRcdTZkODJcdTVjNjBcdTU3MWZcdTU0MTBcdTUxNTRcdTZlNGRcdTU2ZTJcdTYzYThcdTk4OTNcdTgxN2ZcdTg3MTVcdTg5MmFcdTkwMDBcdTU0''@;'; + put 'put ''MWVcdTVjNmZcdTgxYzBcdTYyZDZcdTYyNThcdTgxMzFcdTllMzVcdTk2NDBcdTlhNmVcdTlhN2NcdTY5MmRcdTU5YTVcdTYyZDNcdTU1M2VcdTYzMTZcdTU0YzdcdTg2ZDlcdTZkM2NcdTVhMDNcdTc0ZTZcdTg4OWNcdTZiNmFcdTU5MTZcdThjNGNcdTVmMmZcdTZlN2VcdTczYTlcdTk4N2Rc''@;'; + put 'put ''dTRlMzhcdTcwZjdcdTViOGNcdTc4OTdcdTYzM2RcdTY2NWFcdTc2OTZcdTYwY2JcdTViOWJcdTVhNDlcdTRlMDdcdTgxNTVcdTZjNmFcdTczOGJcdTRlYTFcdTY3ODlcdTdmNTFcdTVmODBcdTY1ZmFcdTY3MWJcdTVmZDhcdTU5ODRcdTVhMDFcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9Qlsy''@;'; + put 'put ''MDVdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIwNV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjA1XVtFXV09NTI0ODArRSxMWzUyNDgwK0VdPUJbMjA1XVtFXSk7Zm9yKEJbMjA2XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1ZGNkXHU1ZmFlXHU1MzcxXHU5N2U2XHU4ZmRkXHU2ODQ1XHU1NmY0XHU1NTJmXHU2MGRmXHU0ZTNhXHU2ZjRkXHU3ZWY0XHU4MmM3XHU4NDBl''@;'; + put 'put ''XHU1OWQ0XHU0ZjFmXHU0ZjJhXHU1YzNlXHU3ZWFjXHU2NzJhXHU4NTFhXHU1NDczXHU3NTRmXHU4MGMzXHU1NTgyXHU5YjRmXHU0ZjRkXHU2ZTJkXHU4YzEzXHU1YzA5XHU2MTcwXHU1MzZiXHU3NjFmXHU2ZTI5XHU4NjhhXHU2NTg3XHU5NWZiXHU3ZWI5XHU1NDNiXHU3YTMzXHU3ZDBhXHU5''@;'; + put 'put ''NWVlXHU1NWUxXHU3ZmMxXHU3NGVlXHU2MzFkXHU4NzE3XHU2ZGExXHU3YTlkXHU2MjExXHU2NWExXHU1MzY3XHU2M2UxXHU2YzgzXHU1ZGViXHU1NDVjXHU5NGE4XHU0ZTRjXHU2YzYxXHU4YmVjXHU1YzRiXHU2NWUwXHU4MjljXHU2OGE3XHU1NDNlXHU1NDM0XHU2YmNiXHU2YjY2XHU0ZTk0''@;'; + put 'put ''XHU2MzQyXHU1MzQ4XHU4MjFlXHU0ZjBkXHU0ZmFlXHU1NzVlXHU2MjBhXHU5NmZlXHU2NjY0XHU3MjY5XHU1MmZmXHU1MmExXHU2MDlmXHU4YmVmXHU2NjE0XHU3MTk5XHU2NzkwXHU4OTdmXHU3ODUyXHU3N2ZkXHU2NjcwXHU1NjNiXHU1NDM4XHU5NTIxXHU3MjdhXHVmZmZkIi5zcGxpdCgi''@;'; + put 'put ''IiksRT0wO0UhPUJbMjA2XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMDZdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIwNl1bRV1dPTUyNzM2K0UsTFs1MjczNitFXT1CWzIwNl1bRV0pO2ZvcihCWzIwN109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1N2EwMFx1NjA2Zlx1NWUwY1x1NjA4OVx1ODE5ZFx1NTkxNVx1NjBkY1x1NzE4NFx1NzBlZlx1NmVhYVx1NmM1MFx1NzI4''@;'; + put 'put ''MFx1NmE4NFx1ODhhZFx1NWUyZFx1NGU2MFx1NWFiM1x1NTU5Y1x1OTRlM1x1NmQxN1x1N2NmYlx1OTY5OVx1NjIwZlx1N2VjNlx1Nzc4ZVx1ODY3ZVx1NTMyM1x1OTcxZVx1OGY5Nlx1NjY4N1x1NWNlMVx1NGZhMFx1NzJlZFx1NGUwYlx1NTNhNlx1NTkwZlx1NTQxM1x1NjM4MFx1OTUyOFx1''@;'; + put 'put ''NTE0OFx1NGVkOVx1OWM5Y1x1N2VhNFx1NTRiOFx1OGQyNFx1ODg1NFx1ODIzN1x1OTVmMlx1NmQ4ZVx1NWYyNlx1NWFjY1x1NjYzZVx1OTY2OVx1NzNiMFx1NzMyZVx1NTNiZlx1ODE3YVx1OTk4NVx1N2ZhMVx1NWJhYVx1OTY3N1x1OTY1MFx1N2ViZlx1NzZmOFx1NTNhMlx1OTU3Nlx1OTk5''@;'; + put 'put ''OVx1N2JiMVx1ODk0NFx1NmU1OFx1NGU2MVx1N2ZkNFx1Nzk2NVx1OGJlNlx1NjBmM1x1NTRjZFx1NGVhYlx1OTg3OVx1NWRmN1x1NmE2MVx1NTBjZlx1NTQxMVx1OGM2MVx1ODQyN1x1Nzg1ZFx1OTcwNFx1NTI0YVx1NTRlZVx1NTZhM1x1OTUwMFx1NmQ4OFx1NWJiNVx1NmRjNlx1NjY1M1x1''@;'; + put 'put ''ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIwN10ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjA3XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMDddW0VdXT01Mjk5MitFLExbNTI5OTIrRV09QlsyMDddW0VdKTtmb3IoQlsyMDhdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTVjMGZcdTViNWRcdTY4MjFcdTgwOTZcdTU1NzhcdTdiMTFcdTY1NDhcdTY5NTRcdTRlOWJcdTZi''@;'; + put 'put ''NDdcdTg3NGVcdTk3OGJcdTUzNGZcdTYzMWZcdTY0M2FcdTkwYWFcdTY1OWNcdTgwYzFcdThjMTBcdTUxOTlcdTY4YjBcdTUzNzhcdTg3ZjlcdTYxYzhcdTZjYzRcdTZjZmJcdThjMjJcdTVjNTFcdTg1YWFcdTgyYWZcdTk1MGNcdTZiMjNcdThmOWJcdTY1YjBcdTVmZmJcdTVmYzNcdTRmZTFc''@;'; + put 'put ''dTg4NDVcdTY2MWZcdTgxNjVcdTczMjlcdTYwZmFcdTUxNzRcdTUyMTFcdTU3OGJcdTVmNjJcdTkwYTJcdTg4NGNcdTkxOTJcdTVlNzhcdTY3NGZcdTYwMjdcdTU5ZDNcdTUxNDRcdTUxZjZcdTgwZjhcdTUzMDhcdTZjNzlcdTk2YzRcdTcxOGFcdTRmMTFcdTRmZWVcdTdmOWVcdTY3M2RcdTU1''@;'; + put 'put ''YzVcdTk1MDhcdTc5YzBcdTg4OTZcdTdlZTNcdTU4OWZcdTYyMGNcdTk3MDBcdTg2NWFcdTU2MThcdTk4N2JcdTVmOTBcdThiYjhcdTg0YzRcdTkxNTdcdTUzZDlcdTY1ZWRcdTVlOGZcdTc1NWNcdTYwNjRcdTdkNmVcdTVhN2ZcdTdlZWFcdTdlZWRcdThmNjlcdTU1YTdcdTViYTNcdTYwYWNc''@;'; + put 'put ''dTY1Y2JcdTczODRcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMDhdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIwOF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjA4XVtFXV09NTMyNDgrRSxMWzUzMjQ4K0VdPUJbMjA4XVtFXSk7Zm9yKEJbMjA5XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5MDA5XHU3NjYzXHU3NzI5XHU3ZWRhXHU5Nzc0XHU4NTliXHU1YjY2XHU3''@;'; + put 'put ''YTc0XHU5NmVhXHU4ODQwXHU1MmNiXHU3MThmXHU1ZmFhXHU2NWVjXHU4YmUyXHU1YmZiXHU5YTZmXHU1ZGUxXHU2Yjg5XHU2YzViXHU4YmFkXHU4YmFmXHU5MDBhXHU4ZmM1XHU1MzhiXHU2MmJjXHU5ZTI2XHU5ZTJkXHU1NDQwXHU0ZTJiXHU4MmJkXHU3MjU5XHU4NjljXHU1ZDE2XHU4ODU5''@;'; + put 'put ''XHU2ZGFmXHU5NmM1XHU1NGQxXHU0ZTlhXHU4YmI2XHU3MTA5XHU1NGJkXHU5NjA5XHU3MGRmXHU2ZGY5XHU3NmQwXHU0ZTI1XHU3ODE0XHU4NzEyXHU1Y2E5XHU1ZWY2XHU4YTAwXHU5ODljXHU5NjBlXHU3MDhlXHU2Y2JmXHU1OTQ0XHU2M2E5XHU3NzNjXHU4ODRkXHU2ZjE0XHU4MjczXHU1''@;'; + put 'put ''ODMwXHU3MWQ1XHU1MzhjXHU3ODFhXHU5NmMxXHU1NTAxXHU1ZjY2XHU3MTMwXHU1YmI0XHU4YzFhXHU5YThjXHU2YjgzXHU1OTJlXHU5ZTJmXHU3OWU3XHU2NzY4XHU2MjZjXHU0ZjZmXHU3NWExXHU3ZjhhXHU2ZDBiXHU5NjMzXHU2YzI3XHU0ZWYwXHU3NWQyXHU1MTdiXHU2ODM3XHU2ZjNl''@;'; + put 'put ''XHU5MDgwXHU4MTcwXHU1OTk2XHU3NDc2XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjA5XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMDldW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIwOV1bRV1dPTUzNTA0K0UsTFs1MzUwNCtFXT1CWzIwOV1bRV0pO2ZvcihCWzIxMF09Ilx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NjQ0N1x1NWMyN1x1OTA2NVx1N2E5MVx1OGMyM1x1''@;'; + put 'put ''NTlkYVx1NTRhY1x1ODIwMFx1ODM2Zlx1ODk4MVx1ODAwMFx1NjkzMFx1NTY0ZVx1ODAzNlx1NzIzN1x1OTFjZVx1NTFiNlx1NGU1Zlx1OTg3NVx1NjM5Nlx1NGUxYVx1NTNmNlx1NjZmM1x1ODE0Ylx1NTkxY1x1NmRiMlx1NGUwMFx1NThmOVx1NTMzYlx1NjNkNlx1OTRmMVx1NGY5ZFx1NGYw''@;'; + put 'put ''YVx1ODg2M1x1OTg5MFx1NTkzN1x1OTA1N1x1NzlmYlx1NGVlYVx1ODBmMFx1NzU5MVx1NmM4Mlx1NWI5Y1x1NTllOFx1NWY1ZFx1NjkwNVx1ODY4MVx1NTAxYVx1NWRmMlx1NGU1OVx1NzdlM1x1NGVlNVx1ODI3YVx1NjI5MVx1NjYxM1x1OTA5MVx1NWM3OVx1NGViZlx1NWY3OVx1ODFjNlx1''@;'; + put 'put ''OTAzOFx1ODA4NFx1NzVhYlx1NGVhNlx1ODhkNFx1NjEwZlx1NmJjNVx1NWZjNlx1NGU0OVx1NzZjYVx1NmVhMlx1OGJlM1x1OGJhZVx1OGMwYVx1OGJkMVx1NWYwMlx1N2ZmY1x1N2ZjY1x1N2VjZVx1ODMzNVx1ODM2Ylx1NTZlMFx1NmJiN1x1OTdmM1x1OTYzNFx1NTlmYlx1NTQxZlx1OTRm''@;'; + put 'put ''Nlx1NmRlYlx1NWJjNVx1OTk2ZVx1NWMzOVx1NWYxNVx1OTY5MFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIxMF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjEwXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMTBdW0VdXT01Mzc2MCtFLExbNTM3NjArRV09QlsyMTBdW0VdKTtmb3IoQlsy''@;'; + put 'put ''MTFdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTUzNzBcdTgyZjFcdTZhMzFc''@;'; + put 'put ''dTVhNzRcdTllNzBcdTVlOTRcdTdmMjhcdTgzYjlcdTg0MjRcdTg0MjVcdTgzNjdcdTg3NDdcdThmY2VcdThkNjJcdTc2YzhcdTVmNzFcdTk4OTZcdTc4NmNcdTY2MjBcdTU0ZGZcdTYyZTVcdTRmNjNcdTgxYzNcdTc1YzhcdTVlYjhcdTk2Y2RcdThlMGFcdTg2ZjlcdTU0OGZcdTZjZjNcdTZk''@;'; + put 'put ''OGNcdTZjMzhcdTYwN2ZcdTUyYzdcdTc1MjhcdTVlN2RcdTRmMThcdTYwYTBcdTVmZTdcdTVjMjRcdTc1MzFcdTkwYWVcdTk0YzBcdTcyYjlcdTZjYjlcdTZlMzhcdTkxNDlcdTY3MDlcdTUzY2JcdTUzZjNcdTRmNTFcdTkxYzlcdThiZjFcdTUzYzhcdTVlN2NcdThmYzJcdTZkZTRcdTRlOGVc''@;'; + put 'put ''dTc2YzJcdTY5ODZcdTg2NWVcdTYxMWFcdTgyMDZcdTRmNTlcdTRmZGVcdTkwM2VcdTljN2NcdTYxMDlcdTZlMWRcdTZlMTRcdTk2ODVcdTRlODhcdTVhMzFcdTk2ZThcdTRlMGVcdTVjN2ZcdTc5YjlcdTViODdcdThiZWRcdTdmYmRcdTczODlcdTU3ZGZcdTgyOGJcdTkwYzFcdTU0MDFcdTkw''@;'; + put 'put ''NDdcdTU1YmJcdTVjZWFcdTVmYTFcdTYxMDhcdTZiMzJcdTcyZjFcdTgwYjJcdThhODlcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMTFdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIxMV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjExXVtFXV09NTQwMTYrRSxMWzU0MDE2K0VdPUJbMjEx''@;'; + put 'put ''XVtFXSk7Zm9yKEJbMjEyXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2ZDc0''@;'; + put 'put ''XHU1YmQzXHU4OGQ1XHU5ODg0XHU4YzZiXHU5YTZkXHU5ZTMzXHU2ZTBhXHU1MWE0XHU1MTQzXHU1N2EzXHU4ODgxXHU1MzlmXHU2M2Y0XHU4Zjk1XHU1NmVkXHU1NDU4XHU1NzA2XHU3MzNmXHU2ZTkwXHU3ZjE4XHU4ZmRjXHU4MmQxXHU2MTNmXHU2MDI4XHU5NjYyXHU2NmYwXHU3ZWE2XHU4''@;'; + put 'put ''ZDhhXHU4ZGMzXHU5NGE1XHU1Y2IzXHU3Y2E0XHU2NzA4XHU2MGE2XHU5NjA1XHU4MDE4XHU0ZTkxXHU5MGU3XHU1MzAwXHU5NjY4XHU1MTQxXHU4ZmQwXHU4NTc0XHU5MTVkXHU2NjU1XHU5N2Y1XHU1YjU1XHU1MzFkXHU3ODM4XHU2NzQyXHU2ODNkXHU1NGM5XHU3MDdlXHU1YmIwXHU4Zjdk''@;'; + put 'put ''XHU1MThkXHU1NzI4XHU1NGIxXHU2NTEyXHU2NjgyXHU4ZDVlXHU4ZDQzXHU4MTBmXHU4NDZjXHU5MDZkXHU3Y2RmXHU1MWZmXHU4NWZiXHU2N2EzXHU2NWU5XHU2ZmExXHU4NmE0XHU4ZTgxXHU1NjZhXHU5MDIwXHU3NjgyXHU3MDc2XHU3MWU1XHU4ZDIzXHU2MmU5XHU1MjE5XHU2Y2ZkXHU4''@;'; + put 'put ''ZDNjXHU2MDBlXHU1ODllXHU2MThlXHU2NmZlXHU4ZDYwXHU2MjRlXHU1NWIzXHU2ZTIzXHU2NzJkXHU4ZjY3XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjEyXS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMTJdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIxMl1bRV1dPTU0MjcyK0UsTFs1''@;'; + put 'put ''NDI3MitFXT1CWzIxMl1bRV0pO2ZvcihCWzIxM109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1OTRlMVx1OTVmOFx1NzcyOFx1NjgwNVx1NjlhOFx1NTQ4Ylx1NGU0ZFx1NzBiOFx1OGJjOFx1NjQ1OFx1NjU4Ylx1NWI4NVx1N2E4NFx1NTAzYVx1NWJlOFx1NzdiYlx1NmJlMVx1OGE3OVx1N2M5OFx1NmNiZVx1NzZjZlx1NjVhOVx1OGY5N1x1NWQyZFx1NWM1NVx1ODYzOFx1''@;'; + put 'put ''NjgwOFx1NTM2MFx1NjIxOFx1N2FkOVx1NmU1Ylx1N2VmZFx1NmExZlx1N2FlMFx1NWY3MFx1NmYzM1x1NWYyMFx1NjM4Y1x1NmRhOFx1Njc1Nlx1NGUwOFx1NWUxMFx1OGQyNlx1NGVkN1x1ODBjMFx1NzYzNFx1OTY5Y1x1NjJkYlx1NjYyZFx1NjI3ZVx1NmNiY1x1OGQ3NVx1NzE2N1x1N2Y2''@;'; + put 'put ''OVx1NTE0Nlx1ODA4N1x1NTNlY1x1OTA2ZVx1NjI5OFx1NTRmMlx1ODZmMFx1OGY5OVx1ODAwNVx1OTUxN1x1ODUxN1x1OGZkOVx1NmQ1OVx1NzNjZFx1NjU5Zlx1NzcxZlx1NzUwNFx1NzgyN1x1ODFmYlx1OGQxZVx1OTQ4OFx1NGZhNlx1Njc5NVx1NzViOVx1OGJjYVx1OTcwN1x1NjMyZlx1''@;'; + put 'put ''OTU0N1x1OTYzNVx1ODRiOFx1NjMyM1x1Nzc0MVx1NWY4MVx1NzJmMFx1NGU4OVx1NjAxNFx1NjU3NFx1NjJlZlx1NmI2M1x1NjUzZlx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIxM10ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjEzXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMTNdW0Vd''@;'; + put 'put ''XT01NDUyOCtFLExbNTQ1MjgrRV09QlsyMTNdW0VdKTtmb3IoQlsyMTRdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTVlMjdcdTc1YzdcdTkwZDFcdThiYzFcdTgyOWRcdTY3OWRcdTY1MmZcdTU0MzFcdTg3MThcdTc3ZTVcdTgwYTJcdTgxMDJcdTZjNDFcdTRlNGJcdTdlYzdcdTgwNGNcdTc2ZjRcdTY5MGRcdTZiOTZcdTYyNjdcdTUwM2NcdTRmODRcdTU3NDBcdTYzMDdc''@;'; + put 'put ''dTZiNjJcdThkYmVcdTUzZWFcdTY1ZThcdTdlYjhcdTVmZDdcdTYzMWFcdTYzYjdcdTgxZjNcdTgxZjRcdTdmNmVcdTVlMWNcdTVjZDlcdTUyMzZcdTY2N2FcdTc5ZTlcdTdhMWFcdThkMjhcdTcwOTlcdTc1ZDRcdTZlZGVcdTZjYmJcdTdhOTJcdTRlMmRcdTc2YzVcdTVmZTBcdTk0OWZcdTg4''@;'; + put 'put ''NzdcdTdlYzhcdTc5Y2RcdTgwYmZcdTkxY2RcdTRlZjJcdTRmMTdcdTgyMWZcdTU0NjhcdTVkZGVcdTZkMzJcdThiY2NcdTdjYTVcdThmNzRcdTgwOThcdTVlMWFcdTU0OTJcdTc2YjFcdTViOTlcdTY2M2NcdTlhYTRcdTczZTBcdTY4MmFcdTg2ZGJcdTY3MzFcdTczMmFcdThiZjhcdThiZGJc''@;'; + put 'put ''dTkwMTBcdTdhZjlcdTcwZGJcdTcxNmVcdTYyYzRcdTc3YTlcdTU2MzFcdTRlM2JcdTg0NTdcdTY3ZjFcdTUyYTlcdTg2YzBcdThkMmVcdTk0ZjhcdTdiNTFcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMTRdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIxNF1bRV0uY2hhckNvZGVBdCgwKSYm''@;'; + put 'put ''KG1lW0JbMjE0XVtFXV09NTQ3ODQrRSxMWzU0Nzg0K0VdPUJbMjE0XVtFXSk7Zm9yKEJbMjE1XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU0ZjRmXHU2Y2U4XHU3OTVkXHU5YTdiXHU2MjkzXHU3MjJhXHU2MmZkXHU0ZTEzXHU3ODE2XHU4ZjZjXHU2NGIwXHU4ZDVhXHU3YmM2XHU2ODY5XHU1ZTg0XHU4OGM1XHU1OTg2XHU2NDllXHU1OGVlXHU3MmI2XHU2OTBlXHU5NTI1''@;'; + put 'put ''XHU4ZmZkXHU4ZDU4XHU1NzYwXHU3ZjAwXHU4YzA2XHU1MWM2XHU2MzQ5XHU2MmQ5XHU1MzUzXHU2ODRjXHU3NDIyXHU4MzAxXHU5MTRjXHU1NTQ0XHU3NzQwXHU3MDdjXHU2ZDRhXHU1MTc5XHU1NGE4XHU4ZDQ0XHU1OWZmXHU2ZWNiXHU2ZGM0XHU1YjVjXHU3ZDJiXHU0ZWQ0XHU3YzdkXHU2''@;'; + put 'put ''ZWQzXHU1YjUwXHU4MWVhXHU2ZTBkXHU1YjU3XHU5YjAzXHU2OGQ1XHU4ZTJhXHU1Yjk3XHU3ZWZjXHU2MDNiXHU3ZWI1XHU5MGI5XHU4ZDcwXHU1OTRmXHU2M2NkXHU3OWRmXHU4ZGIzXHU1MzUyXHU2NWNmXHU3OTU2XHU4YmM1XHU5NjNiXHU3ZWM0XHU5NGJiXHU3ZTgyXHU1NjM0XHU5MTg5''@;'; + put 'put ''XHU2NzAwXHU3ZjZhXHU1YzBhXHU5MDc1XHU2NjI4XHU1ZGU2XHU0ZjUwXHU2N2RlXHU1MDVhXHU0ZjVjXHU1NzUwXHU1ZWE3XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjE1XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMTVdW0VdLmNo''@;'; + put 'put ''YXJDb2RlQXQoMCkmJihtZVtCWzIxNV1bRV1dPTU1MDQwK0UsTFs1NTA0MCtFXT1CWzIxNV1bRV0pO2ZvcihCWzIxNl09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NGU4ZFx1NGUwY1x1NTE0MFx1NGUxMFx1NWVmZlx1NTM0NVx1NGUxNVx1NGU5OFx1NGUxZVx1OWIzMlx1NWI2Y1x1NTY2OVx1NGUyOFx1NzliYVx1NGUzZlx1NTMxNVx1NGU0N1x1NTkyZFx1NzIzYlx1NTM2''@;'; + put 'put ''ZVx1NmMxMFx1NTZkZlx1ODBlNFx1OTk5N1x1NmJkM1x1Nzc3ZVx1OWYxN1x1NGUzNlx1NGU5Zlx1OWYxMFx1NGU1Y1x1NGU2OVx1NGU5M1x1ODI4OFx1NWI1Ylx1NTU2Y1x1NTYwZlx1NGVjNFx1NTM4ZFx1NTM5ZFx1NTNhM1x1NTNhNVx1NTNhZVx1OTc2NVx1OGQ1ZFx1NTMxYVx1NTNmNVx1''@;'; + put 'put ''NTMyNlx1NTMyZVx1NTMzZVx1OGQ1Y1x1NTM2Nlx1NTM2M1x1NTIwMlx1NTIwOFx1NTIwZVx1NTIyZFx1NTIzM1x1NTIzZlx1NTI0MFx1NTI0Y1x1NTI1ZVx1NTI2MVx1NTI1Y1x1ODRhZlx1NTI3ZFx1NTI4Mlx1NTI4MVx1NTI5MFx1NTI5M1x1NTE4Mlx1N2Y1NFx1NGViYlx1NGVjM1x1NGVj''@;'; + put 'put ''OVx1NGVjMlx1NGVlOFx1NGVlMVx1NGVlYlx1NGVkZVx1NGYxYlx1NGVmM1x1NGYyMlx1NGY2NFx1NGVmNVx1NGYyNVx1NGYyN1x1NGYwOVx1NGYyYlx1NGY1ZVx1NGY2N1x1NjUzOFx1NGY1YVx1NGY1ZFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIxNl0ubGVuZ3RoOysrRSk2NTUzMyE9''@;'; + put 'put ''PUJbMjE2XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMTZdW0VdXT01NTI5NitFLExbNTUyOTYrRV09QlsyMTZdW0VdKTtmb3IoQlsyMTddPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTRmNWZcdTRmNTdcdTRmMzJcdTRmM2RcdTRmNzZcdTRmNzRcdTRmOTFcdTRmODlcdTRmODNcdTRmOGZcdTRmN2VcdTRmN2JcdTRmYWFcdTRmN2NcdTRmYWNcdTRmOTRcdTRmZTZcdTRm''@;'; + put 'put ''ZThcdTRmZWFcdTRmYzVcdTRmZGFcdTRmZTNcdTRmZGNcdTRmZDFcdTRmZGZcdTRmZjhcdTUwMjlcdTUwNGNcdTRmZjNcdTUwMmNcdTUwMGZcdTUwMmVcdTUwMmRcdTRmZmVcdTUwMWNcdTUwMGNcdTUwMjVcdTUwMjhcdTUwN2VcdTUwNDNcdTUwNTVcdTUwNDhcdTUwNGVcdTUwNmNcdTUwN2Jc''@;'; + put 'put ''dTUwYTVcdTUwYTdcdTUwYTlcdTUwYmFcdTUwZDZcdTUxMDZcdTUwZWRcdTUwZWNcdTUwZTZcdTUwZWVcdTUxMDdcdTUxMGJcdTRlZGRcdTZjM2RcdTRmNThcdTRmNjVcdTRmY2VcdTlmYTBcdTZjNDZcdTdjNzRcdTUxNmVcdTVkZmRcdTllYzlcdTk5OThcdTUxODFcdTU5MTRcdTUyZjlcdTUz''@;'; + put 'put ''MGRcdThhMDdcdTUzMTBcdTUxZWJcdTU5MTlcdTUxNTVcdTRlYTBcdTUxNTZcdTRlYjNcdTg4NmVcdTg4YTRcdTRlYjVcdTgxMTRcdTg4ZDJcdTc5ODBcdTViMzRcdTg4MDNcdTdmYjhcdTUxYWJcdTUxYjFcdTUxYmRcdTUxYmNcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMTddLmxlbmd0''@;'; + put 'put ''aDsrK0UpNjU1MzMhPT1CWzIxN11bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjE3XVtFXV09NTU1NTIrRSxMWzU1NTUyK0VdPUJbMjE3XVtFXSk7Zm9yKEJbMjE4XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1MWM3XHU1MTk2XHU1MWEyXHU1MWE1XHU4YmEwXHU4YmE2XHU4YmE3XHU4YmFhXHU4YmI0XHU4YmI1XHU4YmI3XHU4YmMyXHU4YmMzXHU4YmNiXHU4YmNmXHU4''@;'; + put 'put ''YmNlXHU4YmQyXHU4YmQzXHU4YmQ0XHU4YmQ2XHU4YmQ4XHU4YmQ5XHU4YmRjXHU4YmRmXHU4YmUwXHU4YmU0XHU4YmU4XHU4YmU5XHU4YmVlXHU4YmYwXHU4YmYzXHU4YmY2XHU4YmY5XHU4YmZjXHU4YmZmXHU4YzAwXHU4YzAyXHU4YzA0XHU4YzA3XHU4YzBjXHU4YzBmXHU4YzExXHU4YzEy''@;'; + put 'put ''XHU4YzE0XHU4YzE1XHU4YzE2XHU4YzE5XHU4YzFiXHU4YzE4XHU4YzFkXHU4YzFmXHU4YzIwXHU4YzIxXHU4YzI1XHU4YzI3XHU4YzJhXHU4YzJiXHU4YzJlXHU4YzJmXHU4YzMyXHU4YzMzXHU4YzM1XHU4YzM2XHU1MzY5XHU1MzdhXHU5NjFkXHU5NjIyXHU5NjIxXHU5NjMxXHU5NjJhXHU5''@;'; + put 'put ''NjNkXHU5NjNjXHU5NjQyXHU5NjQ5XHU5NjU0XHU5NjVmXHU5NjY3XHU5NjZjXHU5NjcyXHU5Njc0XHU5Njg4XHU5NjhkXHU5Njk3XHU5NmIwXHU5MDk3XHU5MDliXHU5MDlkXHU5MDk5XHU5MGFjXHU5MGExXHU5MGI0XHU5MGIzXHU5MGI2XHU5MGJhXHVmZmZkIi5zcGxpdCgiIiksRT0wO0Uh''@;'; + put 'put ''PUJbMjE4XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMThdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIxOF1bRV1dPTU1ODA4K0UsTFs1NTgwOCtFXT1CWzIxOF1bRV0pO2ZvcihCWzIxOV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OTBiOFx1OTBiMFx1OTBjZlx1OTBjNVx1OTBiZVx1OTBkMFx1OTBjNFx1OTBjN1x1OTBkM1x1OTBlNlx1OTBlMlx1OTBkY1x1OTBkN1x1''@;'; + put 'put ''OTBkYlx1OTBlYlx1OTBlZlx1OTBmZVx1OTEwNFx1OTEyMlx1OTExZVx1OTEyM1x1OTEzMVx1OTEyZlx1OTEzOVx1OTE0M1x1OTE0Nlx1NTIwZFx1NTk0Mlx1NTJhMlx1NTJhY1x1NTJhZFx1NTJiZVx1NTRmZlx1NTJkMFx1NTJkNlx1NTJmMFx1NTNkZlx1NzFlZVx1NzdjZFx1NWVmNFx1NTFm''@;'; + put 'put ''NVx1NTFmY1x1OWIyZlx1NTNiNlx1NWYwMVx1NzU1YVx1NWRlZlx1NTc0Y1x1NTdhOVx1NTdhMVx1NTg3ZVx1NThiY1x1NThjNVx1NThkMVx1NTcyOVx1NTcyY1x1NTcyYVx1NTczM1x1NTczOVx1NTcyZVx1NTcyZlx1NTc1Y1x1NTczYlx1NTc0Mlx1NTc2OVx1NTc4NVx1NTc2Ylx1NTc4Nlx1''@;'; + put 'put ''NTc3Y1x1NTc3Ylx1NTc2OFx1NTc2ZFx1NTc3Nlx1NTc3M1x1NTdhZFx1NTdhNFx1NTc4Y1x1NTdiMlx1NTdjZlx1NTdhN1x1NTdiNFx1NTc5M1x1NTdhMFx1NTdkNVx1NTdkOFx1NTdkYVx1NTdkOVx1NTdkMlx1NTdiOFx1NTdmNFx1NTdlZlx1NTdmOFx1NTdlNFx1NTdkZFx1ZmZmZCIuc3Bs''@;'; + put 'put ''aXQoIiIpLEU9MDtFIT1CWzIxOV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjE5XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMTldW0VdXT01NjA2NCtFLExbNTYwNjQrRV09QlsyMTldW0VdKTtmb3IoQlsyMjBdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTU4MGJcdTU4MGRcdTU3ZmRcdTU3ZWRcdTU4MDBcdTU4MWVcdTU4MTlcdTU4NDRcdTU4MjBcdTU4NjVcdTU4NmNc''@;'; + put 'put ''dTU4ODFcdTU4ODlcdTU4OWFcdTU4ODBcdTk5YThcdTlmMTlcdTYxZmZcdTgyNzlcdTgyN2RcdTgyN2ZcdTgyOGZcdTgyOGFcdTgyYThcdTgyODRcdTgyOGVcdTgyOTFcdTgyOTdcdTgyOTlcdTgyYWJcdTgyYjhcdTgyYmVcdTgyYjBcdTgyYzhcdTgyY2FcdTgyZTNcdTgyOThcdTgyYjdcdTgy''@;'; + put 'put ''YWVcdTgyY2JcdTgyY2NcdTgyYzFcdTgyYTlcdTgyYjRcdTgyYTFcdTgyYWFcdTgyOWZcdTgyYzRcdTgyY2VcdTgyYTRcdTgyZTFcdTgzMDlcdTgyZjdcdTgyZTRcdTgzMGZcdTgzMDdcdTgyZGNcdTgyZjRcdTgyZDJcdTgyZDhcdTgzMGNcdTgyZmJcdTgyZDNcdTgzMTFcdTgzMWFcdTgzMDZc''@;'; + put 'put ''dTgzMTRcdTgzMTVcdTgyZTBcdTgyZDVcdTgzMWNcdTgzNTFcdTgzNWJcdTgzNWNcdTgzMDhcdTgzOTJcdTgzM2NcdTgzMzRcdTgzMzFcdTgzOWJcdTgzNWVcdTgzMmZcdTgzNGZcdTgzNDdcdTgzNDNcdTgzNWZcdTgzNDBcdTgzMTdcdTgzNjBcdTgzMmRcdTgzM2FcdTgzMzNcdTgzNjZcdTgz''@;'; + put 'put ''NjVcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMjBdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIyMF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjIwXVtFXV09NTYzMjArRSxMWzU2MzIwK0VdPUJbMjIwXVtFXSk7Zm9yKEJbMjIxXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4MzY4XHU4MzFiXHU4MzY5XHU4MzZjXHU4MzZhXHU4MzZkXHU4MzZlXHU4M2IwXHU4Mzc4''@;'; + put 'put ''XHU4M2IzXHU4M2I0XHU4M2EwXHU4M2FhXHU4MzkzXHU4MzljXHU4Mzg1XHU4MzdjXHU4M2I2XHU4M2E5XHU4MzdkXHU4M2I4XHU4MzdiXHU4Mzk4XHU4MzllXHU4M2E4XHU4M2JhXHU4M2JjXHU4M2MxXHU4NDAxXHU4M2U1XHU4M2Q4XHU1ODA3XHU4NDE4XHU4NDBiXHU4M2RkXHU4M2ZkXHU4''@;'; + put 'put ''M2Q2XHU4NDFjXHU4NDM4XHU4NDExXHU4NDA2XHU4M2Q0XHU4M2RmXHU4NDBmXHU4NDAzXHU4M2Y4XHU4M2Y5XHU4M2VhXHU4M2M1XHU4M2MwXHU4NDI2XHU4M2YwXHU4M2UxXHU4NDVjXHU4NDUxXHU4NDVhXHU4NDU5XHU4NDczXHU4NDg3XHU4NDg4XHU4NDdhXHU4NDg5XHU4NDc4XHU4NDNj''@;'; + put 'put ''XHU4NDQ2XHU4NDY5XHU4NDc2XHU4NDhjXHU4NDhlXHU4NDMxXHU4NDZkXHU4NGMxXHU4NGNkXHU4NGQwXHU4NGU2XHU4NGJkXHU4NGQzXHU4NGNhXHU4NGJmXHU4NGJhXHU4NGUwXHU4NGExXHU4NGI5XHU4NGI0XHU4NDk3XHU4NGU1XHU4NGUzXHU4NTBjXHU3NTBkXHU4NTM4XHU4NGYwXHU4''@;'; + put 'put ''NTM5XHU4NTFmXHU4NTNhXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjIxXS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMjFdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIyMV1bRV1dPTU2NTc2K0UsTFs1NjU3NitFXT1CWzIyMV1bRV0pO2ZvcihCWzIyMl09Ilx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ODU1Nlx1ODUzYlx1ODRmZlx1ODRmY1x1ODU1OVx1ODU0OFx1ODU2''@;'; + put 'put ''OFx1ODU2NFx1ODU1ZVx1ODU3YVx1NzdhMlx1ODU0M1x1ODU3Mlx1ODU3Ylx1ODVhNFx1ODVhOFx1ODU4N1x1ODU4Zlx1ODU3OVx1ODVhZVx1ODU5Y1x1ODU4NVx1ODViOVx1ODViN1x1ODViMFx1ODVkM1x1ODVjMVx1ODVkY1x1ODVmZlx1ODYyN1x1ODYwNVx1ODYyOVx1ODYxNlx1ODYzY1x1''@;'; + put 'put ''NWVmZVx1NWYwOFx1NTkzY1x1NTk0MVx1ODAzN1x1NTk1NVx1NTk1YVx1NTk1OFx1NTMwZlx1NWMyMlx1NWMyNVx1NWMyY1x1NWMzNFx1NjI0Y1x1NjI2YVx1NjI5Zlx1NjJiYlx1NjJjYVx1NjJkYVx1NjJkN1x1NjJlZVx1NjMyMlx1NjJmNlx1NjMzOVx1NjM0Ylx1NjM0M1x1NjNhZFx1NjNm''@;'; + put 'put ''Nlx1NjM3MVx1NjM3YVx1NjM4ZVx1NjNiNFx1NjM2ZFx1NjNhY1x1NjM4YVx1NjM2OVx1NjNhZVx1NjNiY1x1NjNmMlx1NjNmOFx1NjNlMFx1NjNmZlx1NjNjNFx1NjNkZVx1NjNjZVx1NjQ1Mlx1NjNjNlx1NjNiZVx1NjQ0NVx1NjQ0MVx1NjQwYlx1NjQxYlx1NjQyMFx1NjQwY1x1NjQyNlx1''@;'; + put 'put ''NjQyMVx1NjQ1ZVx1NjQ4NFx1NjQ2ZFx1NjQ5Nlx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIyMl0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjIyXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMjJdW0VdXT01NjgzMitFLExbNTY4MzIrRV09QlsyMjJdW0VdKTtmb3IoQlsyMjNdPSJcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTY0N2FcdTY0YjdcdTY0YjhcdTY0OTlcdTY0''@;'; + put 'put ''YmFcdTY0YzBcdTY0ZDBcdTY0ZDdcdTY0ZTRcdTY0ZTJcdTY1MDlcdTY1MjVcdTY1MmVcdTVmMGJcdTVmZDJcdTc1MTlcdTVmMTFcdTUzNWZcdTUzZjFcdTUzZmRcdTUzZTlcdTUzZThcdTUzZmJcdTU0MTJcdTU0MTZcdTU0MDZcdTU0NGJcdTU0NTJcdTU0NTNcdTU0NTRcdTU0NTZcdTU0NDNc''@;'; + put 'put ''dTU0MjFcdTU0NTdcdTU0NTlcdTU0MjNcdTU0MzJcdTU0ODJcdTU0OTRcdTU0NzdcdTU0NzFcdTU0NjRcdTU0OWFcdTU0OWJcdTU0ODRcdTU0NzZcdTU0NjZcdTU0OWRcdTU0ZDBcdTU0YWRcdTU0YzJcdTU0YjRcdTU0ZDJcdTU0YTdcdTU0YTZcdTU0ZDNcdTU0ZDRcdTU0NzJcdTU0YTNcdTU0''@;'; + put 'put ''ZDVcdTU0YmJcdTU0YmZcdTU0Y2NcdTU0ZDlcdTU0ZGFcdTU0ZGNcdTU0YTlcdTU0YWFcdTU0YTRcdTU0ZGRcdTU0Y2ZcdTU0ZGVcdTU1MWJcdTU0ZTdcdTU1MjBcdTU0ZmRcdTU1MTRcdTU0ZjNcdTU1MjJcdTU1MjNcdTU1MGZcdTU1MTFcdTU1MjdcdTU1MmFcdTU1NjdcdTU1OGZcdTU1YjVc''@;'; + put 'put ''dTU1NDlcdTU1NmRcdTU1NDFcdTU1NTVcdTU1M2ZcdTU1NTBcdTU1M2NcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMjNdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIyM11bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjIzXVtFXV09NTcwODgrRSxMWzU3MDg4K0VdPUJbMjIzXVtFXSk7Zm9y''@;'; + put 'put ''KEJbMjI0XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1NTM3XHU1NTU2XHU1''@;'; + put 'put ''NTc1XHU1NTc2XHU1NTc3XHU1NTMzXHU1NTMwXHU1NTVjXHU1NThiXHU1NWQyXHU1NTgzXHU1NWIxXHU1NWI5XHU1NTg4XHU1NTgxXHU1NTlmXHU1NTdlXHU1NWQ2XHU1NTkxXHU1NTdiXHU1NWRmXHU1NWJkXHU1NWJlXHU1NTk0XHU1NTk5XHU1NWVhXHU1NWY3XHU1NWM5XHU1NjFmXHU1NWQx''@;'; + put 'put ''XHU1NWViXHU1NWVjXHU1NWQ0XHU1NWU2XHU1NWRkXHU1NWM0XHU1NWVmXHU1NWU1XHU1NWYyXHU1NWYzXHU1NWNjXHU1NWNkXHU1NWU4XHU1NWY1XHU1NWU0XHU4Zjk0XHU1NjFlXHU1NjA4XHU1NjBjXHU1NjAxXHU1NjI0XHU1NjIzXHU1NWZlXHU1NjAwXHU1NjI3XHU1NjJkXHU1NjU4XHU1''@;'; + put 'put ''NjM5XHU1NjU3XHU1NjJjXHU1NjRkXHU1NjYyXHU1NjU5XHU1NjVjXHU1NjRjXHU1NjU0XHU1Njg2XHU1NjY0XHU1NjcxXHU1NjZiXHU1NjdiXHU1NjdjXHU1Njg1XHU1NjkzXHU1NmFmXHU1NmQ0XHU1NmQ3XHU1NmRkXHU1NmUxXHU1NmY1XHU1NmViXHU1NmY5XHU1NmZmXHU1NzA0XHU1NzBh''@;'; + put 'put ''XHU1NzA5XHU1NzFjXHU1ZTBmXHU1ZTE5XHU1ZTE0XHU1ZTExXHU1ZTMxXHU1ZTNiXHU1ZTNjXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjI0XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMjRdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIyNF1bRV1dPTU3MzQ0K0UsTFs1NzM0NCtFXT1C''@;'; + put 'put ''WzIyNF1bRV0pO2ZvcihCWzIyNV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''NWUzN1x1NWU0NFx1NWU1NFx1NWU1Ylx1NWU1ZVx1NWU2MVx1NWM4Y1x1NWM3YVx1NWM4ZFx1NWM5MFx1NWM5Nlx1NWM4OFx1NWM5OFx1NWM5OVx1NWM5MVx1NWM5YVx1NWM5Y1x1NWNiNVx1NWNhMlx1NWNiZFx1NWNhY1x1NWNhYlx1NWNiMVx1NWNhM1x1NWNjMVx1NWNiN1x1NWNjNFx1NWNk''@;'; + put 'put ''Mlx1NWNlNFx1NWNjYlx1NWNlNVx1NWQwMlx1NWQwM1x1NWQyN1x1NWQyNlx1NWQyZVx1NWQyNFx1NWQxZVx1NWQwNlx1NWQxYlx1NWQ1OFx1NWQzZVx1NWQzNFx1NWQzZFx1NWQ2Y1x1NWQ1Ylx1NWQ2Zlx1NWQ1ZFx1NWQ2Ylx1NWQ0Ylx1NWQ0YVx1NWQ2OVx1NWQ3NFx1NWQ4Mlx1NWQ5OVx1''@;'; + put 'put ''NWQ5ZFx1OGM3M1x1NWRiN1x1NWRjNVx1NWY3M1x1NWY3N1x1NWY4Mlx1NWY4N1x1NWY4OVx1NWY4Y1x1NWY5NVx1NWY5OVx1NWY5Y1x1NWZhOFx1NWZhZFx1NWZiNVx1NWZiY1x1ODg2Mlx1NWY2MVx1NzJhZFx1NzJiMFx1NzJiNFx1NzJiN1x1NzJiOFx1NzJjM1x1NzJjMVx1NzJjZVx1NzJj''@;'; + put 'put ''ZFx1NzJkMlx1NzJlOFx1NzJlZlx1NzJlOVx1NzJmMlx1NzJmNFx1NzJmN1x1NzMwMVx1NzJmM1x1NzMwM1x1NzJmYVx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIyNV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjI1XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMjVdW0VdXT01NzYwMCtF''@;'; + put 'put ''LExbNTc2MDArRV09QlsyMjVdW0VdKTtmb3IoQlsyMjZdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdTcyZmJcdTczMTdcdTczMTNcdTczMjFcdTczMGFcdTczMWVcdTczMWRcdTczMTVcdTczMjJcdTczMzlcdTczMjVcdTczMmNcdTczMzhcdTczMzFcdTczNTBcdTczNGRcdTczNTdcdTczNjBcdTczNmNcdTczNmZcdTczN2VcdTgyMWJcdTU5MjVcdTk4ZTdcdTU5MjRcdTU5''@;'; + put 'put ''MDJcdTk5NjNcdTk5NjdcdTk5NjhcdTk5NjlcdTk5NmFcdTk5NmJcdTk5NmNcdTk5NzRcdTk5NzdcdTk5N2RcdTk5ODBcdTk5ODRcdTk5ODdcdTk5OGFcdTk5OGRcdTk5OTBcdTk5OTFcdTk5OTNcdTk5OTRcdTk5OTVcdTVlODBcdTVlOTFcdTVlOGJcdTVlOTZcdTVlYTVcdTVlYTBcdTVlYjlc''@;'; + put 'put ''dTVlYjVcdTVlYmVcdTVlYjNcdThkNTNcdTVlZDJcdTVlZDFcdTVlZGJcdTVlZThcdTVlZWFcdTgxYmFcdTVmYzRcdTVmYzlcdTVmZDZcdTVmY2ZcdTYwMDNcdTVmZWVcdTYwMDRcdTVmZTFcdTVmZTRcdTVmZmVcdTYwMDVcdTYwMDZcdTVmZWFcdTVmZWRcdTVmZjhcdTYwMTlcdTYwMzVcdTYw''@;'; + put 'put ''MjZcdTYwMWJcdTYwMGZcdTYwMGRcdTYwMjlcdTYwMmJcdTYwMGFcdTYwM2ZcdTYwMjFcdTYwNzhcdTYwNzlcdTYwN2JcdTYwN2FcdTYwNDJcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMjZdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIyNl1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjI2''@;'; + put 'put ''XVtFXV09NTc4NTYrRSxMWzU3ODU2K0VdPUJbMjI2XVtFXSk7Zm9yKEJbMjI3XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2MDZhXHU2MDdkXHU2MDk2XHU2MDlhXHU2MGFkXHU2MDlkXHU2MDgzXHU2MDkyXHU2MDhjXHU2MDliXHU2MGVjXHU2MGJiXHU2MGIxXHU2MGRkXHU2MGQ4XHU2MGM2XHU2MGRhXHU2MGI0XHU2MTIwXHU2MTI2XHU2MTE1XHU2MTIzXHU2MGY0XHU2''@;'; + put 'put ''MTAwXHU2MTBlXHU2MTJiXHU2MTRhXHU2MTc1XHU2MWFjXHU2MTk0XHU2MWE3XHU2MWI3XHU2MWQ0XHU2MWY1XHU1ZmRkXHU5NmIzXHU5NWU5XHU5NWViXHU5NWYxXHU5NWYzXHU5NWY1XHU5NWY2XHU5NWZjXHU5NWZlXHU5NjAzXHU5NjA0XHU5NjA2XHU5NjA4XHU5NjBhXHU5NjBiXHU5NjBj''@;'; + put 'put ''XHU5NjBkXHU5NjBmXHU5NjEyXHU5NjE1XHU5NjE2XHU5NjE3XHU5NjE5XHU5NjFhXHU0ZTJjXHU3MjNmXHU2MjE1XHU2YzM1XHU2YzU0XHU2YzVjXHU2YzRhXHU2Y2EzXHU2Yzg1XHU2YzkwXHU2Yzk0XHU2YzhjXHU2YzY4XHU2YzY5XHU2Yzc0XHU2Yzc2XHU2Yzg2XHU2Y2E5XHU2Y2QwXHU2''@;'; + put 'put ''Y2Q0XHU2Y2FkXHU2Y2Y3XHU2Y2Y4XHU2Y2YxXHU2Y2Q3XHU2Y2IyXHU2Y2UwXHU2Y2Q2XHU2Y2ZhXHU2Y2ViXHU2Y2VlXHU2Y2IxXHU2Y2QzXHU2Y2VmXHU2Y2ZlXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjI3XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMjddW0VdLmNoYXJDb2RlQXQo''@;'; + put 'put ''MCkmJihtZVtCWzIyN11bRV1dPTU4MTEyK0UsTFs1ODExMitFXT1CWzIyN11bRV0pO2ZvcihCWzIyOF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NmQzOVx1NmQyN1x1NmQwY1x1NmQ0M1x1NmQ0OFx1NmQwN1x1NmQwNFx1NmQxOVx1NmQwZVx1NmQyYlx1NmQ0ZFx1NmQyZVx1NmQzNVx1NmQxYVx1NmQ0Zlx1NmQ1Mlx1NmQ1NFx1NmQzM1x1NmQ5MVx1NmQ2Zlx1NmQ5ZVx1''@;'; + put 'put ''NmRhMFx1NmQ1ZVx1NmQ5M1x1NmQ5NFx1NmQ1Y1x1NmQ2MFx1NmQ3Y1x1NmQ2M1x1NmUxYVx1NmRjN1x1NmRjNVx1NmRkZVx1NmUwZVx1NmRiZlx1NmRlMFx1NmUxMVx1NmRlNlx1NmRkZFx1NmRkOVx1NmUxNlx1NmRhYlx1NmUwY1x1NmRhZVx1NmUyYlx1NmU2ZVx1NmU0ZVx1NmU2Ylx1NmVi''@;'; + put 'put ''Mlx1NmU1Zlx1NmU4Nlx1NmU1M1x1NmU1NFx1NmUzMlx1NmUyNVx1NmU0NFx1NmVkZlx1NmViMVx1NmU5OFx1NmVlMFx1NmYyZFx1NmVlMlx1NmVhNVx1NmVhN1x1NmViZFx1NmViYlx1NmViN1x1NmVkN1x1NmViNFx1NmVjZlx1NmU4Zlx1NmVjMlx1NmU5Zlx1NmY2Mlx1NmY0Nlx1NmY0N1x1''@;'; + put 'put ''NmYyNFx1NmYxNVx1NmVmOVx1NmYyZlx1NmYzNlx1NmY0Ylx1NmY3NFx1NmYyYVx1NmYwOVx1NmYyOVx1NmY4OVx1NmY4ZFx1NmY4Y1x1NmY3OFx1NmY3Mlx1NmY3Y1x1NmY3YVx1NmZkMVx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIyOF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjI4XVtF''@;'; + put 'put ''XS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMjhdW0VdXT01ODM2OCtFLExbNTgzNjgrRV09QlsyMjhdW0VdKTtmb3IoQlsyMjldPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTZmYzlcdTZmYTdcdTZmYjlcdTZmYjZcdTZmYzJcdTZmZTFcdTZmZWVcdTZmZGVcdTZmZTBcdTZmZWZcdTcwMWFcdTcwMjNcdTcwMWJcdTcwMzlcdTcwMzVcdTcwNGZcdTcwNWVcdTViODBcdTViODRc''@;'; + put 'put ''dTViOTVcdTViOTNcdTViYTVcdTViYjhcdTc1MmZcdTlhOWVcdTY0MzRcdTViZTRcdTViZWVcdTg5MzBcdTViZjBcdThlNDdcdThiMDdcdThmYjZcdThmZDNcdThmZDVcdThmZTVcdThmZWVcdThmZTRcdThmZTlcdThmZTZcdThmZjNcdThmZThcdTkwMDVcdTkwMDRcdTkwMGJcdTkwMjZcdTkw''@;'; + put 'put ''MTFcdTkwMGRcdTkwMTZcdTkwMjFcdTkwMzVcdTkwMzZcdTkwMmRcdTkwMmZcdTkwNDRcdTkwNTFcdTkwNTJcdTkwNTBcdTkwNjhcdTkwNThcdTkwNjJcdTkwNWJcdTY2YjlcdTkwNzRcdTkwN2RcdTkwODJcdTkwODhcdTkwODNcdTkwOGJcdTVmNTBcdTVmNTdcdTVmNTZcdTVmNThcdTVjM2Jc''@;'; + put 'put ''dTU0YWJcdTVjNTBcdTVjNTlcdTViNzFcdTVjNjNcdTVjNjZcdTdmYmNcdTVmMmFcdTVmMjlcdTVmMmRcdTgyNzRcdTVmM2NcdTliM2JcdTVjNmVcdTU5ODFcdTU5ODNcdTU5OGRcdTU5YTlcdTU5YWFcdTU5YTNcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMjldLmxlbmd0aDsrK0UpNjU1''@;'; + put 'put ''MzMhPT1CWzIyOV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjI5XVtFXV09NTg2MjQrRSxMWzU4NjI0K0VdPUJbMjI5XVtFXSk7Zm9yKEJbMjMwXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1OTk3XHU1OWNhXHU1OWFiXHU1OTllXHU1OWE0XHU1OWQyXHU1OWIyXHU1OWFmXHU1OWQ3XHU1OWJlXHU1YTA1XHU1YTA2XHU1OWRkXHU1YTA4XHU1OWUzXHU1OWQ4XHU1OWY5''@;'; + put 'put ''XHU1YTBjXHU1YTA5XHU1YTMyXHU1YTM0XHU1YTExXHU1YTIzXHU1YTEzXHU1YTQwXHU1YTY3XHU1YTRhXHU1YTU1XHU1YTNjXHU1YTYyXHU1YTc1XHU4MGVjXHU1YWFhXHU1YTliXHU1YTc3XHU1YTdhXHU1YWJlXHU1YWViXHU1YWIyXHU1YWQyXHU1YWQ0XHU1YWI4XHU1YWUwXHU1YWUzXHU1''@;'; + put 'put ''YWYxXHU1YWQ2XHU1YWU2XHU1YWQ4XHU1YWRjXHU1YjA5XHU1YjE3XHU1YjE2XHU1YjMyXHU1YjM3XHU1YjQwXHU1YzE1XHU1YzFjXHU1YjVhXHU1YjY1XHU1YjczXHU1YjUxXHU1YjUzXHU1YjYyXHU5YTc1XHU5YTc3XHU5YTc4XHU5YTdhXHU5YTdmXHU5YTdkXHU5YTgwXHU5YTgxXHU5YTg1''@;'; + put 'put ''XHU5YTg4XHU5YThhXHU5YTkwXHU5YTkyXHU5YTkzXHU5YTk2XHU5YTk4XHU5YTliXHU5YTljXHU5YTlkXHU5YTlmXHU5YWEwXHU5YWEyXHU5YWEzXHU5YWE1XHU5YWE3XHU3ZTlmXHU3ZWExXHU3ZWEzXHU3ZWE1XHU3ZWE4XHU3ZWE5XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjMwXS5s''@;'; + put 'put ''ZW5ndGg7KytFKTY1NTMzIT09QlsyMzBdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIzMF1bRV1dPTU4ODgwK0UsTFs1ODg4MCtFXT1CWzIzMF1bRV0pO2ZvcihCWzIzMV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1N2VhZFx1N2ViMFx1N2ViZVx1N2VjMFx1N2VjMVx1N2VjMlx1N2VjOVx1N2VjYlx1N2VjY1x1N2VkMFx1N2VkNFx1N2VkN1x1N2VkYlx1N2VlMFx1N2Vl''@;'; + put 'put ''MVx1N2VlOFx1N2VlYlx1N2VlZVx1N2VlZlx1N2VmMVx1N2VmMlx1N2YwZFx1N2VmNlx1N2VmYVx1N2VmYlx1N2VmZVx1N2YwMVx1N2YwMlx1N2YwM1x1N2YwN1x1N2YwOFx1N2YwYlx1N2YwY1x1N2YwZlx1N2YxMVx1N2YxMlx1N2YxN1x1N2YxOVx1N2YxY1x1N2YxYlx1N2YxZlx1N2YyMVx1''@;'; + put 'put ''N2YyMlx1N2YyM1x1N2YyNFx1N2YyNVx1N2YyNlx1N2YyN1x1N2YyYVx1N2YyYlx1N2YyY1x1N2YyZFx1N2YyZlx1N2YzMFx1N2YzMVx1N2YzMlx1N2YzM1x1N2YzNVx1NWU3YVx1NzU3Zlx1NWRkYlx1NzUzZVx1OTA5NVx1NzM4ZVx1NzM5MVx1NzNhZVx1NzNhMlx1NzM5Zlx1NzNjZlx1NzNj''@;'; + put 'put ''Mlx1NzNkMVx1NzNiN1x1NzNiM1x1NzNjMFx1NzNjOVx1NzNjOFx1NzNlNVx1NzNkOVx1OTg3Y1x1NzQwYVx1NzNlOVx1NzNlN1x1NzNkZVx1NzNiYVx1NzNmMlx1NzQwZlx1NzQyYVx1NzQ1Ylx1NzQyNlx1NzQyNVx1NzQyOFx1NzQzMFx1NzQyZVx1NzQyY1x1ZmZmZCIuc3BsaXQoIiIpLEU9''@;'; + put 'put ''MDtFIT1CWzIzMV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjMxXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMzFdW0VdXT01OTEzNitFLExbNTkxMzYrRV09QlsyMzFdW0VdKTtmb3IoQlsyMzJdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTc0MWJcdTc0MWFcdTc0NDFcdTc0NWNcdTc0NTdcdTc0NTVcdTc0NTlcdTc0NzdcdTc0NmRcdTc0N2VcdTc0OWNcdTc0OGVcdTc0''@;'; + put 'put ''ODBcdTc0ODFcdTc0ODdcdTc0OGJcdTc0OWVcdTc0YThcdTc0YTlcdTc0OTBcdTc0YTdcdTc0ZDJcdTc0YmFcdTk3ZWFcdTk3ZWJcdTk3ZWNcdTY3NGNcdTY3NTNcdTY3NWVcdTY3NDhcdTY3NjlcdTY3YTVcdTY3ODdcdTY3NmFcdTY3NzNcdTY3OThcdTY3YTdcdTY3NzVcdTY3YThcdTY3OWVc''@;'; + put 'put ''dTY3YWRcdTY3OGJcdTY3NzdcdTY3N2NcdTY3ZjBcdTY4MDlcdTY3ZDhcdTY4MGFcdTY3ZTlcdTY3YjBcdTY4MGNcdTY3ZDlcdTY3YjVcdTY3ZGFcdTY3YjNcdTY3ZGRcdTY4MDBcdTY3YzNcdTY3YjhcdTY3ZTJcdTY4MGVcdTY3YzFcdTY3ZmRcdTY4MzJcdTY4MzNcdTY4NjBcdTY4NjFcdTY4''@;'; + put 'put ''NGVcdTY4NjJcdTY4NDRcdTY4NjRcdTY4ODNcdTY4MWRcdTY4NTVcdTY4NjZcdTY4NDFcdTY4NjdcdTY4NDBcdTY4M2VcdTY4NGFcdTY4NDlcdTY4MjlcdTY4YjVcdTY4OGZcdTY4NzRcdTY4NzdcdTY4OTNcdTY4NmJcdTY4YzJcdTY5NmVcdTY4ZmNcdTY5MWZcdTY5MjBcdTY4ZjlcdWZmZmQi''@;'; + put 'put ''LnNwbGl0KCIiKSxFPTA7RSE9QlsyMzJdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIzMl1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjMyXVtFXV09NTkzOTIrRSxMWzU5MzkyK0VdPUJbMjMyXVtFXSk7Zm9yKEJbMjMzXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2OTI0XHU2OGYwXHU2OTBiXHU2OTAxXHU2OTU3XHU2OGUzXHU2OTEwXHU2OTcxXHU2OTM5XHU2OTYwXHU2''@;'; + put 'put ''OTQyXHU2OTVkXHU2OTg0XHU2OTZiXHU2OTgwXHU2OTk4XHU2OTc4XHU2OTM0XHU2OWNjXHU2OTg3XHU2OTg4XHU2OWNlXHU2OTg5XHU2OTY2XHU2OTYzXHU2OTc5XHU2OTliXHU2OWE3XHU2OWJiXHU2OWFiXHU2OWFkXHU2OWQ0XHU2OWIxXHU2OWMxXHU2OWNhXHU2OWRmXHU2OTk1XHU2OWUw''@;'; + put 'put ''XHU2OThkXHU2OWZmXHU2YTJmXHU2OWVkXHU2YTE3XHU2YTE4XHU2YTY1XHU2OWYyXHU2YTQ0XHU2YTNlXHU2YWEwXHU2YTUwXHU2YTViXHU2YTM1XHU2YThlXHU2YTc5XHU2YTNkXHU2YTI4XHU2YTU4XHU2YTdjXHU2YTkxXHU2YTkwXHU2YWE5XHU2YTk3XHU2YWFiXHU3MzM3XHU3MzUyXHU2''@;'; + put 'put ''YjgxXHU2YjgyXHU2Yjg3XHU2Yjg0XHU2YjkyXHU2YjkzXHU2YjhkXHU2YjlhXHU2YjliXHU2YmExXHU2YmFhXHU4ZjZiXHU4ZjZkXHU4ZjcxXHU4ZjcyXHU4ZjczXHU4Zjc1XHU4Zjc2XHU4Zjc4XHU4Zjc3XHU4Zjc5XHU4ZjdhXHU4ZjdjXHU4ZjdlXHU4ZjgxXHU4ZjgyXHU4Zjg0XHU4Zjg3''@;'; + put 'put ''XHU4ZjhiXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjMzXS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMzNdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIzM11bRV1dPTU5NjQ4K0UsTFs1OTY0OCtFXT1CWzIzM11bRV0pO2ZvcihCWzIzNF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OGY4ZFx1OGY4ZVx1OGY4Zlx1OGY5OFx1OGY5YVx1OGVjZVx1NjIwYlx1NjIxN1x1''@;'; + put 'put ''NjIxYlx1NjIxZlx1NjIyMlx1NjIyMVx1NjIyNVx1NjIyNFx1NjIyY1x1ODFlN1x1NzRlZlx1NzRmNFx1NzRmZlx1NzUwZlx1NzUxMVx1NzUxM1x1NjUzNFx1NjVlZVx1NjVlZlx1NjVmMFx1NjYwYVx1NjYxOVx1Njc3Mlx1NjYwM1x1NjYxNVx1NjYwMFx1NzA4NVx1NjZmN1x1NjYxZFx1NjYz''@;'; + put 'put ''NFx1NjYzMVx1NjYzNlx1NjYzNVx1ODAwNlx1NjY1Zlx1NjY1NFx1NjY0MVx1NjY0Zlx1NjY1Nlx1NjY2MVx1NjY1N1x1NjY3N1x1NjY4NFx1NjY4Y1x1NjZhN1x1NjY5ZFx1NjZiZVx1NjZkYlx1NjZkY1x1NjZlNlx1NjZlOVx1OGQzMlx1OGQzM1x1OGQzNlx1OGQzYlx1OGQzZFx1OGQ0MFx1''@;'; + put 'put ''OGQ0NVx1OGQ0Nlx1OGQ0OFx1OGQ0OVx1OGQ0N1x1OGQ0ZFx1OGQ1NVx1OGQ1OVx1ODljN1x1ODljYVx1ODljYlx1ODljY1x1ODljZVx1ODljZlx1ODlkMFx1ODlkMVx1NzI2ZVx1NzI5Zlx1NzI1ZFx1NzI2Nlx1NzI2Zlx1NzI3ZVx1NzI3Zlx1NzI4NFx1NzI4Ylx1NzI4ZFx1NzI4Zlx1NzI5''@;'; + put 'put ''Mlx1NjMwOFx1NjMzMlx1NjNiMFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIzNF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjM0XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMzRdW0VdXT01OTkwNCtFLExbNTk5MDQrRV09QlsyMzRdW0VdKTtmb3IoQlsyMzVdPSJcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTY0M2ZcdTY0ZDhcdTgwMDRcdTZiZWFcdTZiZjNcdTZiZmRc''@;'; + put 'put ''dTZiZjVcdTZiZjlcdTZjMDVcdTZjMDdcdTZjMDZcdTZjMGRcdTZjMTVcdTZjMThcdTZjMTlcdTZjMWFcdTZjMjFcdTZjMjlcdTZjMjRcdTZjMmFcdTZjMzJcdTY1MzVcdTY1NTVcdTY1NmJcdTcyNGRcdTcyNTJcdTcyNTZcdTcyMzBcdTg2NjJcdTUyMTZcdTgwOWZcdTgwOWNcdTgwOTNcdTgw''@;'; + put 'put ''YmNcdTY3MGFcdTgwYmRcdTgwYjFcdTgwYWJcdTgwYWRcdTgwYjRcdTgwYjdcdTgwZTdcdTgwZThcdTgwZTlcdTgwZWFcdTgwZGJcdTgwYzJcdTgwYzRcdTgwZDlcdTgwY2RcdTgwZDdcdTY3MTBcdTgwZGRcdTgwZWJcdTgwZjFcdTgwZjRcdTgwZWRcdTgxMGRcdTgxMGVcdTgwZjJcdTgwZmNc''@;'; + put 'put ''dTY3MTVcdTgxMTJcdThjNWFcdTgxMzZcdTgxMWVcdTgxMmNcdTgxMThcdTgxMzJcdTgxNDhcdTgxNGNcdTgxNTNcdTgxNzRcdTgxNTlcdTgxNWFcdTgxNzFcdTgxNjBcdTgxNjlcdTgxN2NcdTgxN2RcdTgxNmRcdTgxNjdcdTU4NGRcdTVhYjVcdTgxODhcdTgxODJcdTgxOTFcdTZlZDVcdTgx''@;'; + put 'put ''YTNcdTgxYWFcdTgxY2NcdTY3MjZcdTgxY2FcdTgxYmJcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMzVdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIzNV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjM1XVtFXV09NjAxNjArRSxMWzYwMTYwK0VdPUJbMjM1XVtFXSk7Zm9yKEJbMjM2XT0i''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4MWMxXHU4MWE2XHU2YjI0XHU2YjM3''@;'; + put 'put ''XHU2YjM5XHU2YjQzXHU2YjQ2XHU2YjU5XHU5OGQxXHU5OGQyXHU5OGQzXHU5OGQ1XHU5OGQ5XHU5OGRhXHU2YmIzXHU1ZjQwXHU2YmMyXHU4OWYzXHU2NTkwXHU5ZjUxXHU2NTkzXHU2NWJjXHU2NWM2XHU2NWM0XHU2NWMzXHU2NWNjXHU2NWNlXHU2NWQyXHU2NWQ2XHU3MDgwXHU3MDljXHU3''@;'; + put 'put ''MDk2XHU3MDlkXHU3MGJiXHU3MGMwXHU3MGI3XHU3MGFiXHU3MGIxXHU3MGU4XHU3MGNhXHU3MTEwXHU3MTEzXHU3MTE2XHU3MTJmXHU3MTMxXHU3MTczXHU3MTVjXHU3MTY4XHU3MTQ1XHU3MTcyXHU3MTRhXHU3MTc4XHU3MTdhXHU3MTk4XHU3MWIzXHU3MWI1XHU3MWE4XHU3MWEwXHU3MWUw''@;'; + put 'put ''XHU3MWQ0XHU3MWU3XHU3MWY5XHU3MjFkXHU3MjI4XHU3MDZjXHU3MTE4XHU3MTY2XHU3MWI5XHU2MjNlXHU2MjNkXHU2MjQzXHU2MjQ4XHU2MjQ5XHU3OTNiXHU3OTQwXHU3OTQ2XHU3OTQ5XHU3OTViXHU3OTVjXHU3OTUzXHU3OTVhXHU3OTYyXHU3OTU3XHU3OTYwXHU3OTZmXHU3OTY3XHU3''@;'; + put 'put ''OTdhXHU3OTg1XHU3OThhXHU3OTlhXHU3OWE3XHU3OWIzXHU1ZmQxXHU1ZmQwXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjM2XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMzZdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIzNl1bRV1dPTYwNDE2K0UsTFs2MDQxNitFXT1CWzIzNl1bRV0p''@;'; + put 'put ''O2ZvcihCWzIzN109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NjAzY1x1NjA1''@;'; + put 'put ''ZFx1NjA1YVx1NjA2N1x1NjA0MVx1NjA1OVx1NjA2M1x1NjBhYlx1NjEwNlx1NjEwZFx1NjE1ZFx1NjFhOVx1NjE5ZFx1NjFjYlx1NjFkMVx1NjIwNlx1ODA4MFx1ODA3Zlx1NmM5M1x1NmNmNlx1NmRmY1x1NzdmNlx1NzdmOFx1NzgwMFx1NzgwOVx1NzgxN1x1NzgxOFx1NzgxMVx1NjVhYlx1''@;'; + put 'put ''NzgyZFx1NzgxY1x1NzgxZFx1NzgzOVx1NzgzYVx1NzgzYlx1NzgxZlx1NzgzY1x1NzgyNVx1NzgyY1x1NzgyM1x1NzgyOVx1Nzg0ZVx1Nzg2ZFx1Nzg1Nlx1Nzg1N1x1NzgyNlx1Nzg1MFx1Nzg0N1x1Nzg0Y1x1Nzg2YVx1Nzg5Ylx1Nzg5M1x1Nzg5YVx1Nzg4N1x1Nzg5Y1x1NzhhMVx1Nzhh''@;'; + put 'put ''M1x1NzhiMlx1NzhiOVx1NzhhNVx1NzhkNFx1NzhkOVx1NzhjOVx1NzhlY1x1NzhmMlx1NzkwNVx1NzhmNFx1NzkxM1x1NzkyNFx1NzkxZVx1NzkzNFx1OWY5Ylx1OWVmOVx1OWVmYlx1OWVmY1x1NzZmMVx1NzcwNFx1NzcwZFx1NzZmOVx1NzcwN1x1NzcwOFx1NzcxYVx1NzcyMlx1NzcxOVx1''@;'; + put 'put ''NzcyZFx1NzcyNlx1NzczNVx1NzczOFx1Nzc1MFx1Nzc1MVx1Nzc0N1x1Nzc0M1x1Nzc1YVx1Nzc2OFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIzN10ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjM3XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMzddW0VdXT02MDY3MitFLExbNjA2NzIr''@;'; + put 'put ''RV09QlsyMzddW0VdKTtmb3IoQlsyMzhdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdTc3NjJcdTc3NjVcdTc3N2ZcdTc3OGRcdTc3N2RcdTc3ODBcdTc3OGNcdTc3OTFcdTc3OWZcdTc3YTBcdTc3YjBcdTc3YjVcdTc3YmRcdTc1M2FcdTc1NDBcdTc1NGVcdTc1NGJcdTc1NDhcdTc1NWJcdTc1NzJcdTc1NzlcdTc1ODNcdTdmNThcdTdmNjFcdTdmNWZcdThhNDhcdTdmNjhc''@;'; + put 'put ''dTdmNzRcdTdmNzFcdTdmNzlcdTdmODFcdTdmN2VcdTc2Y2RcdTc2ZTVcdTg4MzJcdTk0ODVcdTk0ODZcdTk0ODdcdTk0OGJcdTk0OGFcdTk0OGNcdTk0OGRcdTk0OGZcdTk0OTBcdTk0OTRcdTk0OTdcdTk0OTVcdTk0OWFcdTk0OWJcdTk0OWNcdTk0YTNcdTk0YTRcdTk0YWJcdTk0YWFcdTk0''@;'; + put 'put ''YWRcdTk0YWNcdTk0YWZcdTk0YjBcdTk0YjJcdTk0YjRcdTk0YjZcdTk0YjdcdTk0YjhcdTk0YjlcdTk0YmFcdTk0YmNcdTk0YmRcdTk0YmZcdTk0YzRcdTk0YzhcdTk0YzlcdTk0Y2FcdTk0Y2JcdTk0Y2NcdTk0Y2RcdTk0Y2VcdTk0ZDBcdTk0ZDFcdTk0ZDJcdTk0ZDVcdTk0ZDZcdTk0ZDdc''@;'; + put 'put ''dTk0ZDlcdTk0ZDhcdTk0ZGJcdTk0ZGVcdTk0ZGZcdTk0ZTBcdTk0ZTJcdTk0ZTRcdTk0ZTVcdTk0ZTdcdTk0ZThcdTk0ZWFcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMzhdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIzOF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjM4XVtFXV09NjA5''@;'; + put 'put ''MjgrRSxMWzYwOTI4K0VdPUJbMjM4XVtFXSk7Zm9yKEJbMjM5XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHU5NGU5XHU5NGViXHU5NGVlXHU5NGVmXHU5NGYzXHU5NGY0XHU5NGY1XHU5NGY3XHU5NGY5XHU5NGZjXHU5NGZkXHU5NGZmXHU5NTAzXHU5NTAyXHU5NTA2XHU5NTA3XHU5NTA5XHU5NTBhXHU5NTBkXHU5NTBlXHU5NTBmXHU5NTEyXHU5NTEzXHU5NTE0XHU5NTE1''@;'; + put 'put ''XHU5NTE2XHU5NTE4XHU5NTFiXHU5NTFkXHU5NTFlXHU5NTFmXHU5NTIyXHU5NTJhXHU5NTJiXHU5NTI5XHU5NTJjXHU5NTMxXHU5NTMyXHU5NTM0XHU5NTM2XHU5NTM3XHU5NTM4XHU5NTNjXHU5NTNlXHU5NTNmXHU5NTQyXHU5NTM1XHU5NTQ0XHU5NTQ1XHU5NTQ2XHU5NTQ5XHU5NTRjXHU5''@;'; + put 'put ''NTRlXHU5NTRmXHU5NTUyXHU5NTUzXHU5NTU0XHU5NTU2XHU5NTU3XHU5NTU4XHU5NTU5XHU5NTViXHU5NTVlXHU5NTVmXHU5NTVkXHU5NTYxXHU5NTYyXHU5NTY0XHU5NTY1XHU5NTY2XHU5NTY3XHU5NTY4XHU5NTY5XHU5NTZhXHU5NTZiXHU5NTZjXHU5NTZmXHU5NTcxXHU5NTcyXHU5NTcz''@;'; + put 'put ''XHU5NTNhXHU3N2U3XHU3N2VjXHU5NmM5XHU3OWQ1XHU3OWVkXHU3OWUzXHU3OWViXHU3YTA2XHU1ZDQ3XHU3YTAzXHU3YTAyXHU3YTFlXHU3YTE0XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjM5XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMzldW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtC''@;'; + put 'put ''WzIzOV1bRV1dPTYxMTg0K0UsTFs2MTE4NCtFXT1CWzIzOV1bRV0pO2ZvcihCWzI0MF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1N2EzOVx1N2EzN1x1N2E1MVx1OWVjZlx1OTlhNVx1N2E3MFx1NzY4OFx1NzY4ZVx1NzY5M1x1NzY5OVx1NzZhNFx1NzRkZVx1NzRlMFx1NzUyY1x1OWUyMFx1OWUyMlx1OWUyOFx1OWUyOVx1OWUyYVx1OWUyYlx1OWUyY1x1OWUzMlx1OWUz''@;'; + put 'put ''MVx1OWUzNlx1OWUzOFx1OWUzN1x1OWUzOVx1OWUzYVx1OWUzZVx1OWU0MVx1OWU0Mlx1OWU0NFx1OWU0Nlx1OWU0N1x1OWU0OFx1OWU0OVx1OWU0Ylx1OWU0Y1x1OWU0ZVx1OWU1MVx1OWU1NVx1OWU1N1x1OWU1YVx1OWU1Ylx1OWU1Y1x1OWU1ZVx1OWU2M1x1OWU2Nlx1OWU2N1x1OWU2OFx1''@;'; + put 'put ''OWU2OVx1OWU2YVx1OWU2Ylx1OWU2Y1x1OWU3MVx1OWU2ZFx1OWU3M1x1NzU5Mlx1NzU5NFx1NzU5Nlx1NzVhMFx1NzU5ZFx1NzVhY1x1NzVhM1x1NzViM1x1NzViNFx1NzViOFx1NzVjNFx1NzViMVx1NzViMFx1NzVjM1x1NzVjMlx1NzVkNlx1NzVjZFx1NzVlM1x1NzVlOFx1NzVlNlx1NzVl''@;'; + put 'put ''NFx1NzVlYlx1NzVlN1x1NzYwM1x1NzVmMVx1NzVmY1x1NzVmZlx1NzYxMFx1NzYwMFx1NzYwNVx1NzYwY1x1NzYxN1x1NzYwYVx1NzYyNVx1NzYxOFx1NzYxNVx1NzYxOVx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzI0MF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjQwXVtFXS5jaGFyQ29k''@;'; + put 'put ''ZUF0KDApJiYobWVbQlsyNDBdW0VdXT02MTQ0MCtFLExbNjE0NDArRV09QlsyNDBdW0VdKTtmb3IoQlsyNDFdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTc2MWJcdTc2M2NcdTc2MjJcdTc2MjBcdTc2NDBcdTc2MmRcdTc2MzBcdTc2M2ZcdTc2MzVcdTc2NDNcdTc2M2VcdTc2MzNcdTc2NGRcdTc2NWVcdTc2NTRcdTc2NWNcdTc2NTZcdTc2NmJcdTc2NmZcdTdmY2FcdTdh''@;'; + put 'put ''ZTZcdTdhNzhcdTdhNzlcdTdhODBcdTdhODZcdTdhODhcdTdhOTVcdTdhYTZcdTdhYTBcdTdhYWNcdTdhYThcdTdhYWRcdTdhYjNcdTg4NjRcdTg4NjlcdTg4NzJcdTg4N2RcdTg4N2ZcdTg4ODJcdTg4YTJcdTg4YzZcdTg4YjdcdTg4YmNcdTg4YzlcdTg4ZTJcdTg4Y2VcdTg4ZTNcdTg4ZTVc''@;'; + put 'put ''dTg4ZjFcdTg5MWFcdTg4ZmNcdTg4ZThcdTg4ZmVcdTg4ZjBcdTg5MjFcdTg5MTlcdTg5MTNcdTg5MWJcdTg5MGFcdTg5MzRcdTg5MmJcdTg5MzZcdTg5NDFcdTg5NjZcdTg5N2JcdTc1OGJcdTgwZTVcdTc2YjJcdTc2YjRcdTc3ZGNcdTgwMTJcdTgwMTRcdTgwMTZcdTgwMWNcdTgwMjBcdTgw''@;'; + put 'put ''MjJcdTgwMjVcdTgwMjZcdTgwMjdcdTgwMjlcdTgwMjhcdTgwMzFcdTgwMGJcdTgwMzVcdTgwNDNcdTgwNDZcdTgwNGRcdTgwNTJcdTgwNjlcdTgwNzFcdTg5ODNcdTk4NzhcdTk4ODBcdTk4ODNcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyNDFdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzI0''@;'; + put 'put ''MV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjQxXVtFXV09NjE2OTYrRSxMWzYxNjk2K0VdPUJbMjQxXVtFXSk7Zm9yKEJbMjQyXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5ODg5XHU5ODhjXHU5ODhkXHU5ODhmXHU5ODk0XHU5ODlhXHU5ODliXHU5ODllXHU5ODlmXHU5OGExXHU5OGEyXHU5OGE1XHU5OGE2XHU4NjRkXHU4NjU0XHU4NjZjXHU4NjZlXHU4NjdmXHU4''@;'; + put 'put ''NjdhXHU4NjdjXHU4NjdiXHU4NmE4XHU4NjhkXHU4NjhiXHU4NmFjXHU4NjlkXHU4NmE3XHU4NmEzXHU4NmFhXHU4NjkzXHU4NmE5XHU4NmI2XHU4NmM0XHU4NmI1XHU4NmNlXHU4NmIwXHU4NmJhXHU4NmIxXHU4NmFmXHU4NmM5XHU4NmNmXHU4NmI0XHU4NmU5XHU4NmYxXHU4NmYyXHU4NmVk''@;'; + put 'put ''XHU4NmYzXHU4NmQwXHU4NzEzXHU4NmRlXHU4NmY0XHU4NmRmXHU4NmQ4XHU4NmQxXHU4NzAzXHU4NzA3XHU4NmY4XHU4NzA4XHU4NzBhXHU4NzBkXHU4NzA5XHU4NzIzXHU4NzNiXHU4NzFlXHU4NzI1XHU4NzJlXHU4NzFhXHU4NzNlXHU4NzQ4XHU4NzM0XHU4NzMxXHU4NzI5XHU4NzM3XHU4''@;'; + put 'put ''NzNmXHU4NzgyXHU4NzIyXHU4NzdkXHU4NzdlXHU4NzdiXHU4NzYwXHU4NzcwXHU4NzRjXHU4NzZlXHU4NzhiXHU4NzUzXHU4NzYzXHU4NzdjXHU4NzY0XHU4NzU5XHU4NzY1XHU4NzkzXHU4N2FmXHU4N2E4XHU4N2QyXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjQyXS5sZW5ndGg7KytF''@;'; + put 'put ''KTY1NTMzIT09QlsyNDJdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzI0Ml1bRV1dPTYxOTUyK0UsTFs2MTk1MitFXT1CWzI0Ml1bRV0pO2ZvcihCWzI0M109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ODdjNlx1ODc4OFx1ODc4NVx1ODdhZFx1ODc5N1x1ODc4M1x1ODdhYlx1ODdlNVx1ODdhY1x1ODdiNVx1ODdiM1x1ODdjYlx1ODdkM1x1ODdiZFx1ODdkMVx1ODdjMFx1''@;'; + put 'put ''ODdjYVx1ODdkYlx1ODdlYVx1ODdlMFx1ODdlZVx1ODgxNlx1ODgxM1x1ODdmZVx1ODgwYVx1ODgxYlx1ODgyMVx1ODgzOVx1ODgzY1x1N2YzNlx1N2Y0Mlx1N2Y0NFx1N2Y0NVx1ODIxMFx1N2FmYVx1N2FmZFx1N2IwOFx1N2IwM1x1N2IwNFx1N2IxNVx1N2IwYVx1N2IyYlx1N2IwZlx1N2I0''@;'; + put 'put ''N1x1N2IzOFx1N2IyYVx1N2IxOVx1N2IyZVx1N2IzMVx1N2IyMFx1N2IyNVx1N2IyNFx1N2IzM1x1N2IzZVx1N2IxZVx1N2I1OFx1N2I1YVx1N2I0NVx1N2I3NVx1N2I0Y1x1N2I1ZFx1N2I2MFx1N2I2ZVx1N2I3Ylx1N2I2Mlx1N2I3Mlx1N2I3MVx1N2I5MFx1N2JhNlx1N2JhN1x1N2JiOFx1''@;'; + put 'put ''N2JhY1x1N2I5ZFx1N2JhOFx1N2I4NVx1N2JhYVx1N2I5Y1x1N2JhMlx1N2JhYlx1N2JiNFx1N2JkMVx1N2JjMVx1N2JjY1x1N2JkZFx1N2JkYVx1N2JlNVx1N2JlNlx1N2JlYVx1N2MwY1x1N2JmZVx1N2JmY1x1N2MwZlx1N2MxNlx1N2MwYlx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzI0''@;'; + put 'put ''M10ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjQzXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyNDNdW0VdXT02MjIwOCtFLExbNjIyMDgrRV09QlsyNDNdW0VdKTtmb3IoQlsyNDRdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTdjMWZcdTdjMmFcdTdjMjZcdTdjMzhcdTdjNDFcdTdjNDBcdTgxZmVcdTgyMDFcdTgyMDJcdTgyMDRcdTgxZWNcdTg4NDRcdTgyMjFcdTgyMjJc''@;'; + put 'put ''dTgyMjNcdTgyMmRcdTgyMmZcdTgyMjhcdTgyMmJcdTgyMzhcdTgyM2JcdTgyMzNcdTgyMzRcdTgyM2VcdTgyNDRcdTgyNDlcdTgyNGJcdTgyNGZcdTgyNWFcdTgyNWZcdTgyNjhcdTg4N2VcdTg4ODVcdTg4ODhcdTg4ZDhcdTg4ZGZcdTg5NWVcdTdmOWRcdTdmOWZcdTdmYTdcdTdmYWZcdTdm''@;'; + put 'put ''YjBcdTdmYjJcdTdjN2NcdTY1NDlcdTdjOTFcdTdjOWRcdTdjOWNcdTdjOWVcdTdjYTJcdTdjYjJcdTdjYmNcdTdjYmRcdTdjYzFcdTdjYzdcdTdjY2NcdTdjY2RcdTdjYzhcdTdjYzVcdTdjZDdcdTdjZThcdTgyNmVcdTY2YThcdTdmYmZcdTdmY2VcdTdmZDVcdTdmZTVcdTdmZTFcdTdmZTZc''@;'; + put 'put ''dTdmZTlcdTdmZWVcdTdmZjNcdTdjZjhcdTdkNzdcdTdkYTZcdTdkYWVcdTdlNDdcdTdlOWJcdTllYjhcdTllYjRcdThkNzNcdThkODRcdThkOTRcdThkOTFcdThkYjFcdThkNjdcdThkNmRcdThjNDdcdThjNDlcdTkxNGFcdTkxNTBcdTkxNGVcdTkxNGZcdTkxNjRcdWZmZmQiLnNwbGl0KCIi''@;'; + put 'put ''KSxFPTA7RSE9QlsyNDRdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzI0NF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjQ0XVtFXV09NjI0NjQrRSxMWzYyNDY0K0VdPUJbMjQ0XVtFXSk7Zm9yKEJbMjQ1XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5MTYyXHU5MTYxXHU5MTcwXHU5MTY5XHU5MTZmXHU5MTdkXHU5MTdlXHU5MTcyXHU5MTc0XHU5MTc5XHU5MThjXHU5MTg1''@;'; + put 'put ''XHU5MTkwXHU5MThkXHU5MTkxXHU5MWEyXHU5MWEzXHU5MWFhXHU5MWFkXHU5MWFlXHU5MWFmXHU5MWI1XHU5MWI0XHU5MWJhXHU4YzU1XHU5ZTdlXHU4ZGI4XHU4ZGViXHU4ZTA1XHU4ZTU5XHU4ZTY5XHU4ZGI1XHU4ZGJmXHU4ZGJjXHU4ZGJhXHU4ZGM0XHU4ZGQ2XHU4ZGQ3XHU4ZGRhXHU4''@;'; + put 'put ''ZGRlXHU4ZGNlXHU4ZGNmXHU4ZGRiXHU4ZGM2XHU4ZGVjXHU4ZGY3XHU4ZGY4XHU4ZGUzXHU4ZGY5XHU4ZGZiXHU4ZGU0XHU4ZTA5XHU4ZGZkXHU4ZTE0XHU4ZTFkXHU4ZTFmXHU4ZTJjXHU4ZTJlXHU4ZTIzXHU4ZTJmXHU4ZTNhXHU4ZTQwXHU4ZTM5XHU4ZTM1XHU4ZTNkXHU4ZTMxXHU4ZTQ5''@;'; + put 'put ''XHU4ZTQxXHU4ZTQyXHU4ZTUxXHU4ZTUyXHU4ZTRhXHU4ZTcwXHU4ZTc2XHU4ZTdjXHU4ZTZmXHU4ZTc0XHU4ZTg1XHU4ZThmXHU4ZTk0XHU4ZTkwXHU4ZTljXHU4ZTllXHU4Yzc4XHU4YzgyXHU4YzhhXHU4Yzg1XHU4Yzk4XHU4Yzk0XHU2NTliXHU4OWQ2XHU4OWRlXHU4OWRhXHU4OWRjXHVm''@;'; + put 'put ''ZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjQ1XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyNDVdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzI0NV1bRV1dPTYyNzIwK0UsTFs2MjcyMCtFXT1CWzI0NV1bRV0pO2ZvcihCWzI0Nl09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ODllNVx1ODllYlx1ODllZlx1OGEzZVx1OGIyNlx1OTc1M1x1OTZlOVx1OTZmM1x1OTZlZlx1OTcw''@;'; + put 'put ''Nlx1OTcwMVx1OTcwOFx1OTcwZlx1OTcwZVx1OTcyYVx1OTcyZFx1OTczMFx1OTczZVx1OWY4MFx1OWY4M1x1OWY4NVx1OWY4Nlx1OWY4N1x1OWY4OFx1OWY4OVx1OWY4YVx1OWY4Y1x1OWVmZVx1OWYwYlx1OWYwZFx1OTZiOVx1OTZiY1x1OTZiZFx1OTZjZVx1OTZkMlx1NzdiZlx1OTZlMFx1''@;'; + put 'put ''OTI4ZVx1OTJhZVx1OTJjOFx1OTMzZVx1OTM2YVx1OTNjYVx1OTM4Zlx1OTQzZVx1OTQ2Ylx1OWM3Zlx1OWM4Mlx1OWM4NVx1OWM4Nlx1OWM4N1x1OWM4OFx1N2EyM1x1OWM4Ylx1OWM4ZVx1OWM5MFx1OWM5MVx1OWM5Mlx1OWM5NFx1OWM5NVx1OWM5YVx1OWM5Ylx1OWM5ZVx1OWM5Zlx1OWNh''@;'; + put 'put ''MFx1OWNhMVx1OWNhMlx1OWNhM1x1OWNhNVx1OWNhNlx1OWNhN1x1OWNhOFx1OWNhOVx1OWNhYlx1OWNhZFx1OWNhZVx1OWNiMFx1OWNiMVx1OWNiMlx1OWNiM1x1OWNiNFx1OWNiNVx1OWNiNlx1OWNiN1x1OWNiYVx1OWNiYlx1OWNiY1x1OWNiZFx1OWNjNFx1OWNjNVx1OWNjNlx1OWNjN1x1''@;'; + put 'put ''OWNjYVx1OWNjYlx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzI0Nl0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjQ2XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyNDZdW0VdXT02Mjk3NitFLExbNjI5NzYrRV09QlsyNDZdW0VdKTtmb3IoQlsyNDddPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTljY2NcdTljY2RcdTljY2VcdTljY2ZcdTljZDBcdTljZDNcdTljZDRcdTlj''@;'; + put 'put ''ZDVcdTljZDdcdTljZDhcdTljZDlcdTljZGNcdTljZGRcdTljZGZcdTljZTJcdTk3N2NcdTk3ODVcdTk3OTFcdTk3OTJcdTk3OTRcdTk3YWZcdTk3YWJcdTk3YTNcdTk3YjJcdTk3YjRcdTlhYjFcdTlhYjBcdTlhYjdcdTllNThcdTlhYjZcdTlhYmFcdTlhYmNcdTlhYzFcdTlhYzBcdTlhYzVc''@;'; + put 'put ''dTlhYzJcdTlhY2JcdTlhY2NcdTlhZDFcdTliNDVcdTliNDNcdTliNDdcdTliNDlcdTliNDhcdTliNGRcdTliNTFcdTk4ZThcdTk5MGRcdTk5MmVcdTk5NTVcdTk5NTRcdTlhZGZcdTlhZTFcdTlhZTZcdTlhZWZcdTlhZWJcdTlhZmJcdTlhZWRcdTlhZjlcdTliMDhcdTliMGZcdTliMTNcdTli''@;'; + put 'put ''MWZcdTliMjNcdTllYmRcdTllYmVcdTdlM2JcdTllODJcdTllODdcdTllODhcdTllOGJcdTllOTJcdTkzZDZcdTllOWRcdTllOWZcdTllZGJcdTllZGNcdTllZGRcdTllZTBcdTllZGZcdTllZTJcdTllZTlcdTllZTdcdTllZTVcdTllZWFcdTllZWZcdTlmMjJcdTlmMmNcdTlmMmZcdTlmMzlc''@;'; + put 'put ''dTlmMzdcdTlmM2RcdTlmM2VcdTlmNDRcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyNDddLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzI0N11bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjQ3XVtFXV09NjMyMzIrRSxMWzYzMjMyK0VdPUJbMjQ3XVtFXSk7cmV0dXJue2VuYzptZSxkZWM6TH19''@;'; + put 'put ''KCksSmVbMTAwMjldPWZ1bmN0aW9uKCl7Zm9yKHZhciBMPSJcMFx4MDFceDAyXHgwM1x4MDRceDA1XHgwNlx4MDdcYlx0XG5cdlxmXHJceDBlXHgwZlx4MTBceDExXHgxMlx4MTNceDE0XHgxNVx4MTZceDE3XHgxOFx4MTlceDFhXHgxYlx4MWNceDFkXHgxZVx4MWYgIVwiIyQlJicoKSorLC0u''@;'; + put 'put ''LzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpbXFxdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+XHg3Zlx4YzRcdTAxMDBcdTAxMDFceGM5XHUwMTA0XHhkNlx4ZGNceGUxXHUwMTA1XHUwMTBjXHhlNFx1MDEwZFx1MDEwNlx1MDEwN1x4ZTlcdTAx''@;'; + put 'put ''NzlcdTAxN2FcdTAxMGVceGVkXHUwMTBmXHUwMTEyXHUwMTEzXHUwMTE2XHhmM1x1MDExN1x4ZjRceGY2XHhmNVx4ZmFcdTAxMWFcdTAxMWJceGZjXHUyMDIwXHhiMFx1MDExOFx4YTNceGE3XHUyMDIyXHhiNlx4ZGZceGFlXHhhOVx1MjEyMlx1MDExOVx4YThcdTIyNjBcdTAxMjNcdTAxMmVc''@;'; + put 'put ''dTAxMmZcdTAxMmFcdTIyNjRcdTIyNjVcdTAxMmJcdTAxMzZcdTIyMDJcdTIyMTFcdTAxNDJcdTAxM2JcdTAxM2NcdTAxM2RcdTAxM2VcdTAxMzlcdTAxM2FcdTAxNDVcdTAxNDZcdTAxNDNceGFjXHUyMjFhXHUwMTQ0XHUwMTQ3XHUyMjA2XHhhYlx4YmJcdTIwMjZceGEwXHUwMTQ4XHUwMTUw''@;'; + put 'put ''XHhkNVx1MDE1MVx1MDE0Y1x1MjAxM1x1MjAxNFx1MjAxY1x1MjAxZFx1MjAxOFx1MjAxOVx4ZjdcdTI1Y2FcdTAxNGRcdTAxNTRcdTAxNTVcdTAxNThcdTIwMzlcdTIwM2FcdTAxNTlcdTAxNTZcdTAxNTdcdTAxNjBcdTIwMWFcdTIwMWVcdTAxNjFcdTAxNWFcdTAxNWJceGMxXHUwMTY0XHUw''@;'; + put 'put ''MTY1XHhjZFx1MDE3ZFx1MDE3ZVx1MDE2YVx4ZDNceGQ0XHUwMTZiXHUwMTZlXHhkYVx1MDE2Zlx1MDE3MFx1MDE3MVx1MDE3Mlx1MDE3M1x4ZGRceGZkXHUwMTM3XHUwMTdiXHUwMTQxXHUwMTdjXHUwMTIyXHUwMmM3IixtZT1bXSxCPXt9LEU9MDtFIT1MLmxlbmd0aDsrK0UpNjU1MzMhPT1M''@;'; + put 'put ''LmNoYXJDb2RlQXQoRSkmJihCW0wuY2hhckF0KEUpXT1FKSxtZVtFXT1MLmNoYXJBdChFKTtyZXR1cm57ZW5jOkIsZGVjOm1lfX0oKSxKZVsxMDA3OV09ZnVuY3Rpb24oKXtmb3IodmFyIEw9IlwwXHgwMVx4MDJceDAzXHgwNFx4MDVceDA2XHgwN1xiXHRcblx2XGZcclx4MGVceDBmXHgxMFx4''@;'; + put 'put ''MTFceDEyXHgxM1x4MTRceDE1XHgxNlx4MTdceDE4XHgxOVx4MWFceDFiXHgxY1x4MWRceDFlXHgxZiAhXCIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5ceDdmXHhjNFx4''@;'; + put 'put ''YzVceGM3XHhjOVx4ZDFceGQ2XHhkY1x4ZTFceGUwXHhlMlx4ZTRceGUzXHhlNVx4ZTdceGU5XHhlOFx4ZWFceGViXHhlZFx4ZWNceGVlXHhlZlx4ZjFceGYzXHhmMlx4ZjRceGY2XHhmNVx4ZmFceGY5XHhmYlx4ZmNceGRkXHhiMFx4YTJceGEzXHhhN1x1MjAyMlx4YjZceGRmXHhhZVx4YTlc''@;'; + put 'put ''dTIxMjJceGI0XHhhOFx1MjI2MFx4YzZceGQ4XHUyMjFlXHhiMVx1MjI2NFx1MjI2NVx4YTVceGI1XHUyMjAyXHUyMjExXHUyMjBmXHUwM2MwXHUyMjJiXHhhYVx4YmFcdTIxMjZceGU2XHhmOFx4YmZceGExXHhhY1x1MjIxYVx1MDE5Mlx1MjI0OFx1MjIwNlx4YWJceGJiXHUyMDI2XHhhMFx4''@;'; + put 'put ''YzBceGMzXHhkNVx1MDE1Mlx1MDE1M1x1MjAxM1x1MjAxNFx1MjAxY1x1MjAxZFx1MjAxOFx1MjAxOVx4ZjdcdTI1Y2FceGZmXHUwMTc4XHUyMDQ0XHhhNFx4ZDBceGYwXHhkZVx4ZmVceGZkXHhiN1x1MjAxYVx1MjAxZVx1MjAzMFx4YzJceGNhXHhjMVx4Y2JceGM4XHhjZFx4Y2VceGNmXHhj''@;'; + put 'put ''Y1x4ZDNceGQ0XHVmZmZkXHhkMlx4ZGFceGRiXHhkOVx1MDEzMVx1MDJjNlx1MDJkY1x4YWZcdTAyZDhcdTAyZDlcdTAyZGFceGI4XHUwMmRkXHUwMmRiXHUwMmM3IixtZT1bXSxCPXt9LEU9MDtFIT1MLmxlbmd0aDsrK0UpNjU1MzMhPT1MLmNoYXJDb2RlQXQoRSkmJihCW0wuY2hhckF0KEUp''@;'; + put 'put ''XT1FKSxtZVtFXT1MLmNoYXJBdChFKTtyZXR1cm57ZW5jOkIsZGVjOm1lfX0oKSxKZVsxMDA4MV09ZnVuY3Rpb24oKXtmb3IodmFyIEw9IlwwXHgwMVx4MDJceDAzXHgwNFx4MDVceDA2XHgwN1xiXHRcblx2XGZcclx4MGVceDBmXHgxMFx4MTFceDEyXHgxM1x4MTRceDE1XHgxNlx4MTdceDE4''@;'; + put 'put ''XHgxOVx4MWFceDFiXHgxY1x4MWRceDFlXHgxZiAhXCIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5ceDdmXHhjNFx4YzVceGM3XHhjOVx4ZDFceGQ2XHhkY1x4ZTFceGUw''@;'; + put 'put ''XHhlMlx4ZTRceGUzXHhlNVx4ZTdceGU5XHhlOFx4ZWFceGViXHhlZFx4ZWNceGVlXHhlZlx4ZjFceGYzXHhmMlx4ZjRceGY2XHhmNVx4ZmFceGY5XHhmYlx4ZmNcdTIwMjBceGIwXHhhMlx4YTNceGE3XHUyMDIyXHhiNlx4ZGZceGFlXHhhOVx1MjEyMlx4YjRceGE4XHUyMjYwXHhjNlx4ZDhc''@;'; + put 'put ''dTIyMWVceGIxXHUyMjY0XHUyMjY1XHhhNVx4YjVcdTIyMDJcdTIyMTFcdTIyMGZcdTAzYzBcdTIyMmJceGFhXHhiYVx1MjEyNlx4ZTZceGY4XHhiZlx4YTFceGFjXHUyMjFhXHUwMTkyXHUyMjQ4XHUyMjA2XHhhYlx4YmJcdTIwMjZceGEwXHhjMFx4YzNceGQ1XHUwMTUyXHUwMTUzXHUyMDEz''@;'; + put 'put ''XHUyMDE0XHUyMDFjXHUyMDFkXHUyMDE4XHUyMDE5XHhmN1x1MjVjYVx4ZmZcdTAxNzhcdTAxMWVcdTAxMWZcdTAxMzBcdTAxMzFcdTAxNWVcdTAxNWZcdTIwMjFceGI3XHUyMDFhXHUyMDFlXHUyMDMwXHhjMlx4Y2FceGMxXHhjYlx4YzhceGNkXHhjZVx4Y2ZceGNjXHhkM1x4ZDRcdWZmZmRc''@;'; + put 'put ''eGQyXHhkYVx4ZGJceGQ5XHVmZmZkXHUwMmM2XHUwMmRjXHhhZlx1MDJkOFx1MDJkOVx1MDJkYVx4YjhcdTAyZGRcdTAyZGJcdTAyYzciLG1lPVtdLEI9e30sRT0wO0UhPUwubGVuZ3RoOysrRSk2NTUzMyE9PUwuY2hhckNvZGVBdChFKSYmKEJbTC5jaGFyQXQoRSldPUUpLG1lW0VdPUwuY2hh''@;'; + put 'put ''ckF0KEUpO3JldHVybntlbmM6QixkZWM6bWV9fSgpLEplWzI4NTkxXT1mdW5jdGlvbigpe2Zvcih2YXIgTD0iXDBceDAxXHgwMlx4MDNceDA0XHgwNVx4MDZceDA3XGJcdFxuXHZcZlxyXHgwZVx4MGZceDEwXHgxMVx4MTJceDEzXHgxNFx4MTVceDE2XHgxN1x4MThceDE5XHgxYVx4MWJceDFj''@;'; + put 'put ''XHgxZFx4MWVceDFmICFcIiMkJSYnKCkqKywtLi8wMTIzNDU2Nzg5Ojs8PT4/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaW1xcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9flx4N2ZceDgwXHg4MVx4ODJceDgzXHg4NFx4ODVceDg2XHg4N1x4ODhceDg5XHg4YVx4OGJceDhj''@;'; + put 'put ''XHg4ZFx4OGVceDhmXHg5MFx4OTFceDkyXHg5M1x4OTRceDk1XHg5Nlx4OTdceDk4XHg5OVx4OWFceDliXHg5Y1x4OWRceDllXHg5Zlx4YTBceGExXHhhMlx4YTNceGE0XHhhNVx4YTZceGE3XHhhOFx4YTlceGFhXHhhYlx4YWNceGFkXHhhZVx4YWZceGIwXHhiMVx4YjJceGIzXHhiNFx4YjVc''@;'; + put 'put ''eGI2XHhiN1x4YjhceGI5XHhiYVx4YmJceGJjXHhiZFx4YmVceGJmXHhjMFx4YzFceGMyXHhjM1x4YzRceGM1XHhjNlx4YzdceGM4XHhjOVx4Y2FceGNiXHhjY1x4Y2RceGNlXHhjZlx4ZDBceGQxXHhkMlx4ZDNceGQ0XHhkNVx4ZDZceGQ3XHhkOFx4ZDlceGRhXHhkYlx4ZGNceGRkXHhkZVx4''@;'; + put 'put ''ZGZceGUwXHhlMVx4ZTJceGUzXHhlNFx4ZTVceGU2XHhlN1x4ZThceGU5XHhlYVx4ZWJceGVjXHhlZFx4ZWVceGVmXHhmMFx4ZjFceGYyXHhmM1x4ZjRceGY1XHhmNlx4ZjdceGY4XHhmOVx4ZmFceGZiXHhmY1x4ZmRceGZlXHhmZiIsbWU9W10sQj17fSxFPTA7RSE9TC5sZW5ndGg7KytFKTY1''@;'; + put 'put ''NTMzIT09TC5jaGFyQ29kZUF0KEUpJiYoQltMLmNoYXJBdChFKV09RSksbWVbRV09TC5jaGFyQXQoRSk7cmV0dXJue2VuYzpCLGRlYzptZX19KCksWGUuZXhwb3J0cyYmInVuZGVmaW5lZCI9PXR5cGVvZiBET19OT1RfRVhQT1JUX0NPREVQQUdFJiYoWGUuZXhwb3J0cz1KZSksZnVuY3Rpb24o''@;'; + put 'put ''TCxtZSl7InVzZSBzdHJpY3QiO2lmKHZvaWQgMD09PUplKXt2YXIgQj1KZTtYZS5leHBvcnRzJiYidW5kZWZpbmVkIj09dHlwZW9mIERPX05PVF9FWFBPUlRfQ09ERVBBR0U/WGUuZXhwb3J0cz1tZShCKTpMLmNwdGFibGU9bWUoQil9ZWxzZSBKZT1tZShKZSl9KHRoaXMsZnVuY3Rpb24oTCl7''@;'; + put 'put ''InVzZSBzdHJpY3QiO3ZhciBtZT17MTIwMDoidXRmMTZsZSIsMTIwMToidXRmMTZiZSIsMTJlMzoidXRmMzJsZSIsMTIwMDE6InV0ZjMyYmUiLDE2OTY5OiJ1dGY2NGxlIiwyMDEyNzoiYXNjaWkiLDY1ZTM6InV0ZjciLDY1MDAxOiJ1dGY4In0sQj1bODc0LDEyNTAsMTI1MSwxMjUyLDEyNTMs''@;'; + put 'put ''MTI1NCwxMjU1LDEyNTYsMWU0XSxFPVs5MzIsOTM2LDk0OSw5NTBdLE1lPVs2NTAwMV0sVT17fSxRPXt9LFo9e30saWU9e30sYWU9ZnVuY3Rpb24oVil7cmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUoVil9LFk9ZnVuY3Rpb24oVil7cmV0dXJuIFYuY2hhckNvZGVBdCgwKX0sVz0idW5kZWZp''@;'; + put 'put ''bmVkIiE9dHlwZW9mIEJ1ZmZlcixOPWZ1bmN0aW9uKCl7fTtpZihXKXt2YXIgZWU9IUJ1ZmZlci5mcm9tO2lmKCFlZSl0cnl7QnVmZmVyLmZyb20oImZvbyIsInV0ZjgiKX1jYXRjaChQKXtlZT0hMH1OPWVlP2Z1bmN0aW9uKFAsVil7cmV0dXJuIFY/bmV3IEJ1ZmZlcihQLFYpOm5ldyBCdWZm''@;'; + put 'put ''ZXIoUCl9OkJ1ZmZlci5mcm9tLmJpbmQoQnVmZmVyKSxCdWZmZXIuYWxsb2NVbnNhZmV8fChCdWZmZXIuYWxsb2NVbnNhZmU9ZnVuY3Rpb24oUCl7cmV0dXJuIG5ldyBCdWZmZXIoUCl9KTt2YXIgcT0xMDI0LEo9QnVmZmVyLmFsbG9jVW5zYWZlKHEpLG9lPWZ1bmN0aW9uKFYpe3ZhciBUPWZ1''@;'; + put 'put ''bmN0aW9uKFYpe2Zvcih2YXIgVD1CdWZmZXIuYWxsb2NVbnNhZmUoNjU1MzYpLFM9MDtTPDY1NTM2OysrUylUW1NdPTA7Zm9yKHZhciBGPU9iamVjdC5rZXlzKFYpLHllPUYubGVuZ3RoLENlPTAsRGU9RltDZV07Q2U8eWU7KytDZSkhKERlPUZbQ2VdKXx8KFRbRGUuY2hhckNvZGVBdCgwKV09''@;'; + put 'put ''VltEZV0pO3JldHVybiBUfShMW1ZdLmVuYyk7cmV0dXJuIGZ1bmN0aW9uKEYseWUpe3ZhciBEZSxDZT1GLmxlbmd0aCxQZT0wLFFlPTAsJGU9MCxndD0wO2lmKCJzdHJpbmciPT10eXBlb2YgRilmb3IoRGU9QnVmZmVyLmFsbG9jVW5zYWZlKENlKSxQZT0wO1BlPENlOysrUGUpRGVbUGVdPVRb''@;'; + put 'put ''Ri5jaGFyQ29kZUF0KFBlKV07ZWxzZSBpZihCdWZmZXIuaXNCdWZmZXIoRikpe2ZvcihEZT1CdWZmZXIuYWxsb2NVbnNhZmUoMipDZSksUWU9MCxQZT0wO1BlPENlOysrUGUpKCRlPUZbUGVdKTwxMjg/RGVbUWUrK109VFskZV06JGU8MjI0PyhEZVtRZSsrXT1UWygoMzEmJGUpPDw2KSsoNjMm''@;'; + put 'put ''RltQZSsxXSldLCsrUGUpOiRlPDI0MD8oRGVbUWUrK109VFsoKDE1JiRlKTw8MTIpKygoNjMmRltQZSsxXSk8PDYpKyg2MyZGW1BlKzJdKV0sUGUrPTIpOihndD0oKDcmJGUpPDwxOCkrKCg2MyZGW1BlKzFdKTw8MTIpKygoNjMmRltQZSsyXSk8PDYpKyg2MyZGW1BlKzNdKSxQZSs9MyxndDw2''@;'; + put 'put ''NTUzNj9EZVtRZSsrXT1UW2d0XTooRGVbUWUrK109VFs1NTI5NisoKGd0LT02NTUzNik+PjEwJjEwMjMpXSxEZVtRZSsrXT1UWzU2MzIwKygxMDIzJmd0KV0pKTtEZT1EZS5zbGljZSgwLFFlKX1lbHNlIGZvcihEZT1CdWZmZXIuYWxsb2NVbnNhZmUoQ2UpLFBlPTA7UGU8Q2U7KytQZSlEZVtQ''@;'; + put 'put ''ZV09VFtGW1BlXS5jaGFyQ29kZUF0KDApXTtyZXR1cm4geWUmJiJidWYiIT09eWU/ImFyciIhPT15ZT9EZS50b1N0cmluZygiYmluYXJ5Iik6W10uc2xpY2UuY2FsbChEZSk6RGV9fSxjZT1mdW5jdGlvbihWKXt2YXIgVD1MW1ZdLmRlYyxTPUJ1ZmZlci5hbGxvY1Vuc2FmZSgxMzEwNzIpLEY9''@;'; + put 'put ''MCx5ZT0iIjtmb3IoRj0wO0Y8VC5sZW5ndGg7KytGKWlmKHllPVRbRl0pe3ZhciBDZT15ZS5jaGFyQ29kZUF0KDApO1NbMipGXT0yNTUmQ2UsU1syKkYrMV09Q2U+Pjh9cmV0dXJuIGZ1bmN0aW9uKFBlKXt2YXIgUWU9UGUubGVuZ3RoLCRlPTAsZ3Q9MDtpZigyKlFlPnEmJihxPTIqUWUsSj1C''@;'; + put 'put ''dWZmZXIuYWxsb2NVbnNhZmUocSkpLEJ1ZmZlci5pc0J1ZmZlcihQZSkpZm9yKCRlPTA7JGU8UWU7JGUrKylKWzIqJGVdPVNbZ3Q9MipQZVskZV1dLEpbMiokZSsxXT1TW2d0KzFdO2Vsc2UgaWYoInN0cmluZyI9PXR5cGVvZiBQZSlmb3IoJGU9MDskZTxRZTskZSsrKWd0PTIqUGUuY2hhckNv''@;'; + put 'put ''ZGVBdCgkZSksSlsyKiRlXT1TW2d0XSxKWzIqJGUrMV09U1tndCsxXTtlbHNlIGZvcigkZT0wOyRlPFFlOyRlKyspSlsyKiRlXT1TW2d0PTIqUGVbJGVdXSxKWzIqJGUrMV09U1tndCsxXTtyZXR1cm4gSi5zbGljZSgwLDIqUWUpLnRvU3RyaW5nKCJ1Y3MyIil9fSxkZT1mdW5jdGlvbihWKXtm''@;'; + put 'put ''b3IodmFyIFQ9TFtWXS5lbmMsUz1CdWZmZXIuYWxsb2NVbnNhZmUoMTMxMDcyKSxGPTA7RjwxMzEwNzI7KytGKVNbRl09MDtmb3IodmFyIHllPU9iamVjdC5rZXlzKFQpLENlPTAsRGU9eWVbQ2VdO0NlPHllLmxlbmd0aDsrK0NlKWlmKERlPXllW0NlXSl7dmFyIFBlPURlLmNoYXJDb2RlQXQo''@;'; + put 'put ''MCk7U1syKlBlXT0yNTUmVFtEZV0sU1syKlBlKzFdPVRbRGVdPj44fXJldHVybiBmdW5jdGlvbigkZSxndCl7dmFyIHd0PSRlLmxlbmd0aCxtdD1CdWZmZXIuYWxsb2NVbnNhZmUoMip3dCksdnQ9MCxBdD0wLGh0PTAsQnQ9MCxvbj0wO2lmKCJzdHJpbmciPT10eXBlb2YgJGUpe2Zvcih2dD1C''@;'; + put 'put ''dD0wO3Z0PHd0OysrdnQpQXQ9MiokZS5jaGFyQ29kZUF0KHZ0KSxtdFtCdCsrXT1TW0F0KzFdfHxTW0F0XSxTW0F0KzFdPjAmJihtdFtCdCsrXT1TW0F0XSk7bXQ9bXQuc2xpY2UoMCxCdCl9ZWxzZSBpZihCdWZmZXIuaXNCdWZmZXIoJGUpKXtmb3IodnQ9QnQ9MDt2dDx3dDsrK3Z0KShvbj0k''@;'; + put 'put ''ZVt2dF0pPDEyOD9BdD1vbjpvbjwyMjQ/KEF0PSgoMzEmb24pPDw2KSsoNjMmJGVbdnQrMV0pLCsrdnQpOm9uPDI0MD8oQXQ9KCgxNSZvbik8PDEyKSsoKDYzJiRlW3Z0KzFdKTw8NikrKDYzJiRlW3Z0KzJdKSx2dCs9Mik6KEF0PSgoNyZvbik8PDE4KSsoKDYzJiRlW3Z0KzFdKTw8MTIpKygo''@;'; + put 'put ''NjMmJGVbdnQrMl0pPDw2KSsoNjMmJGVbdnQrM10pLHZ0Kz0zKSxBdDw2NTUzNj8obXRbQnQrK109U1sxKyhBdCo9MildfHxTW0F0XSxTW0F0KzFdPjAmJihtdFtCdCsrXT1TW0F0XSkpOihtdFtCdCsrXT1TWzErKEF0PTIqKDU1Mjk2KygoaHQ9QXQtNjU1MzYpPj4xMCYxMDIzKSkpXXx8U1tB''@;'; + put 'put ''dF0sU1tBdCsxXT4wJiYobXRbQnQrK109U1tBdF0pLG10W0J0KytdPVNbMSsoQXQ9MiooNTYzMjArKDEwMjMmaHQpKSldfHxTW0F0XSxTW0F0KzFdPjAmJihtdFtCdCsrXT1TW0F0XSkpO210PW10LnNsaWNlKDAsQnQpfWVsc2UgZm9yKHZ0PUJ0PTA7dnQ8d3Q7dnQrKylBdD0yKiRlW3Z0XS5j''@;'; + put 'put ''aGFyQ29kZUF0KDApLG10W0J0KytdPVNbQXQrMV18fFNbQXRdLFNbQXQrMV0+MCYmKG10W0J0KytdPVNbQXRdKTtyZXR1cm4gZ3QmJiJidWYiIT09Z3Q/ImFyciIhPT1ndD9tdC50b1N0cmluZygiYmluYXJ5Iik6W10uc2xpY2UuY2FsbChtdCk6bXR9fSx2ZT1mdW5jdGlvbihWKXt2YXIgeWUs''@;'; + put 'put ''VD1MW1ZdLmRlYyxTPUJ1ZmZlci5hbGxvY1Vuc2FmZSgxMzEwNzIpLEY9MCxDZT0wLERlPTAsUGU9MDtmb3IoUGU9MDtQZTw2NTUzNjsrK1BlKVNbMipQZV09MjU1LFNbMipQZSsxXT0yNTM7Zm9yKEY9MDtGPFQubGVuZ3RoOysrRikhKHllPVRbRl0pfHwoQ2U9eWUuY2hhckNvZGVBdCgwKSxT''@;'; + put 'put ''W0RlPTIqRl09MjU1JkNlLFNbRGUrMV09Q2U+PjgpO3JldHVybiBmdW5jdGlvbigkZSl7dmFyIGd0PSRlLmxlbmd0aCx3dD1CdWZmZXIuYWxsb2NVbnNhZmUoMipndCksbXQ9MCx2dD0wLEF0PTA7aWYoQnVmZmVyLmlzQnVmZmVyKCRlKSlmb3IobXQ9MDttdDxndDttdCsrKTI1NT09PVNbdnQ9''@;'; + put 'put ''MiokZVttdF1dJiYyNTM9PT1TW3Z0KzFdJiYodnQ9MiooKCRlW210XTw8OCkrJGVbbXQrMV0pLCsrbXQpLHd0W0F0KytdPVNbdnRdLHd0W0F0KytdPVNbdnQrMV07ZWxzZSBpZigic3RyaW5nIj09dHlwZW9mICRlKWZvcihtdD0wO210PGd0O210KyspdnQ9MiokZS5jaGFyQ29kZUF0KG10KSwy''@;'; + put 'put ''NTU9PT1TW3Z0XSYmMjUzPT09U1t2dCsxXSYmKHZ0PTIqKCgkZS5jaGFyQ29kZUF0KG10KTw8OCkrJGUuY2hhckNvZGVBdChtdCsxKSksKyttdCksd3RbQXQrK109U1t2dF0sd3RbQXQrK109U1t2dCsxXTtlbHNlIGZvcihtdD0wO210PGd0O210KyspMjU1PT09U1t2dD0yKiRlW210XV0mJjI1''@;'; + put 'put ''Mz09PVNbdnQrMV0mJih2dD0yKigoJGVbbXRdPDw4KSskZVttdCsxXSksKyttdCksd3RbQXQrK109U1t2dF0sd3RbQXQrK109U1t2dCsxXTtyZXR1cm4gd3Quc2xpY2UoMCxBdCkudG9TdHJpbmcoInVjczIiKX19O1VbNjUwMDFdPWZ1bmN0aW9uIFAoVil7aWYoInN0cmluZyI9PXR5cGVvZiBW''@;'; + put 'put ''KXJldHVybiBQKFYuc3BsaXQoIiIpLm1hcChZKSk7dmFyIFQ9Vi5sZW5ndGgsUz0wLEY9MDs0KlQ+cSYmKHE9NCpULEo9QnVmZmVyLmFsbG9jVW5zYWZlKHEpKTt2YXIgeWU9MDtUPj0zJiYyMzk9PVZbMF0mJjE4Nz09VlsxXSYmMTkxPT1WWzJdJiYoeWU9Myk7Zm9yKHZhciBDZT0xLERlPTAs''@;'; + put 'put ''UGU9MDt5ZTxUO3llKz1DZSlDZT0xLChQZT1WW3llXSk8MTI4P1M9UGU6UGU8MjI0PyhTPTY0KigzMSZQZSkrKDYzJlZbeWUrMV0pLENlPTIpOlBlPDI0MD8oUz0oKDE1JlBlKTw8MTIpKzY0Kig2MyZWW3llKzFdKSsoNjMmVlt5ZSsyXSksQ2U9Myk6KFM9MjYyMTQ0Kig3JlBlKSsoKDYzJlZb''@;'; + put 'put ''eWUrMV0pPDwxMikrNjQqKDYzJlZbeWUrMl0pKyg2MyZWW3llKzNdKSxDZT00KSxTPDY1NTM2PyhKW0RlKytdPTI1NSZTLEpbRGUrK109Uz4+OCk6KEY9NTUyOTYrKChTLT02NTUzNik+PjEwJjEwMjMpLFM9NTYzMjArKDEwMjMmUyksSltEZSsrXT0yNTUmRixKW0RlKytdPUY+Pj44LEpbRGUr''@;'; + put 'put ''K109MjU1JlMsSltEZSsrXT1TPj4+OCYyNTUpO3JldHVybiBKLnNsaWNlKDAsRGUpLnRvU3RyaW5nKCJ1Y3MyIil9LFFbNjUwMDFdPWZ1bmN0aW9uKFYsVCl7aWYoVyYmQnVmZmVyLmlzQnVmZmVyKFYpKXJldHVybiBUJiYiYnVmIiE9PVQ/ImFyciIhPT1UP1YudG9TdHJpbmcoImJpbmFyeSIp''@;'; + put 'put ''OltdLnNsaWNlLmNhbGwoVik6Vjt2YXIgUz1WLmxlbmd0aCxGPTAseWU9MCxDZT0wLERlPSJzdHJpbmciPT10eXBlb2YgVjs0KlM+cSYmKHE9NCpTLEo9QnVmZmVyLmFsbG9jVW5zYWZlKHEpKTtmb3IodmFyIFBlPTA7UGU8UzsrK1BlKShGPURlP1YuY2hhckNvZGVBdChQZSk6VltQZV0uY2hh''@;'; + put 'put ''ckNvZGVBdCgwKSk8PTEyNz9KW0NlKytdPUY6Rjw9MjA0Nz8oSltDZSsrXT0xOTIrKEY+PjYpLEpbQ2UrK109MTI4Kyg2MyZGKSk6Rj49NTUyOTYmJkY8PTU3MzQzPyhGLT01NTI5NiwrK1BlLHllPShEZT9WLmNoYXJDb2RlQXQoUGUpOlZbUGVdLmNoYXJDb2RlQXQoMCkpLTU2MzIwKyhGPDwx''@;'; + put 'put ''MCksSltDZSsrXT0yNDArKHllPj4+MTgmNyksSltDZSsrXT0xNDQrKHllPj4+MTImNjMpLEpbQ2UrK109MTI4Kyh5ZT4+PjYmNjMpLEpbQ2UrK109MTI4Kyg2MyZ5ZSkpOihKW0NlKytdPTIyNCsoRj4+MTIpLEpbQ2UrK109MTI4KyhGPj42JjYzKSxKW0NlKytdPTEyOCsoNjMmRikpO3JldHVy''@;'; + put 'put ''biBUJiYiYnVmIiE9PVQ/ImFyciIhPT1UP0ouc2xpY2UoMCxDZSkudG9TdHJpbmcoImJpbmFyeSIpOltdLnNsaWNlLmNhbGwoSiwwLENlKTpKLnNsaWNlKDAsQ2UpfX12YXIgQWU9ZnVuY3Rpb24oKXtpZihXKXtpZihaW0JbMF1dKXJldHVybjt2YXIgVj0wLFQ9MDtmb3IoVj0wO1Y8Qi5sZW5n''@;'; + put 'put ''dGg7KytWKUxbVD1CW1ZdXSYmKFpbVF09Y2UoVCksaWVbVF09b2UoVCkpO2ZvcihWPTA7VjxFLmxlbmd0aDsrK1YpTFtUPUVbVl1dJiYoWltUXT12ZShUKSxpZVtUXT1kZShUKSk7Zm9yKFY9MDtWPE1lLmxlbmd0aDsrK1YpVVtUPU1lW1ZdXSYmKFpbVF09VVtUXSksUVtUXSYmKGllW1RdPVFb''@;'; + put 'put ''VF0pfX0sa2U9ZnVuY3Rpb24oUCxWKXtyZXR1cm4iIn0sU2U9ZnVuY3Rpb24oVil7ZGVsZXRlIFpbVl0sZGVsZXRlIGllW1ZdfSxUZT17ZW5jYWNoZTpBZSxkZWNhY2hlOmZ1bmN0aW9uKCl7aWYoVyl7aWYoIVpbQlswXV0pcmV0dXJuO0IuZm9yRWFjaChTZSksRS5mb3JFYWNoKFNlKSxNZS5m''@;'; + put 'put ''b3JFYWNoKFNlKX1PPWtlLHo9MH0sc2JjczpCLGRiY3M6RX07QWUoKTt2YXIgRWU9IkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky8iLE89a2Usej0wO3JldHVybiBMLnV0aWxzPXtkZWNvZGU6ZnVuY3Rpb24gUChWLFQpe3Zh''@;'; + put 'put ''ciBTO2lmKFM9WltWXSlyZXR1cm4gUyhUKTtpZigic3RyaW5nIj09dHlwZW9mIFQpcmV0dXJuIFAoVixULnNwbGl0KCIiKS5tYXAoWSkpO3ZhciBtdCxGPVQubGVuZ3RoLHllPW5ldyBBcnJheShGKSxDZT0iIixEZT0wLFBlPTAsUWU9MSwkZT0wLGd0PTAsd3Q9TFtWXSx2dD0iIjtpZih3dCYm''@;'; + put 'put ''KG10PXd0LmRlYykpZm9yKFBlPTA7UGU8RjtQZSs9UWUpe2lmKFFlPTIsKENlPW10WyhUW1BlXTw8OCkrVFtQZSsxXV0pfHwoUWU9MSxDZT1tdFtUW1BlXV0pLCFDZSl0aHJvdyBuZXcgRXJyb3IoIlVucmVjb2duaXplZCBjb2RlOiAiK1RbUGVdKyIgIitUW1BlK1FlLTFdKyIgIitQZSsiICIr''@;'; + put 'put ''UWUrIiAiK210W1RbUGVdXSk7eWVbJGUrK109Q2V9ZWxzZXtpZighKHZ0PW1lW1ZdKSl0aHJvdyBuZXcgRXJyb3IoIlVucmVjb2duaXplZCBDUDogIitWKTtzd2l0Y2godnQpe2Nhc2UidXRmOCI6Zm9yKEY+PTMmJjIzOT09VFswXSYmMTg3PT1UWzFdJiYxOTE9PVRbMl0mJihQZT0zKTtQZTxG''@;'; + put 'put ''O1BlKz1RZSlRZT0xLFRbUGVdPDEyOD9EZT1UW1BlXTpUW1BlXTwyMjQ/KERlPTY0KigzMSZUW1BlXSkrKDYzJlRbUGUrMV0pLFFlPTIpOlRbUGVdPDI0MD8oRGU9KCgxNSZUW1BlXSk8PDEyKSs2NCooNjMmVFtQZSsxXSkrKDYzJlRbUGUrMl0pLFFlPTMpOihEZT0yNjIxNDQqKDcmVFtQZV0p''@;'; + put 'put ''KygoNjMmVFtQZSsxXSk8PDEyKSs2NCooNjMmVFtQZSsyXSkrKDYzJlRbUGUrM10pLFFlPTQpLERlPDY1NTM2fHwoZ3Q9NTUyOTYrKChEZS09NjU1MzYpPj4xMCYxMDIzKSxEZT01NjMyMCsoMTAyMyZEZSkseWVbJGUrK109U3RyaW5nLmZyb21DaGFyQ29kZShndCkpLHllWyRlKytdPVN0cmlu''@;'; + put 'put ''Zy5mcm9tQ2hhckNvZGUoRGUpO2JyZWFrO2Nhc2UiYXNjaWkiOmlmKFcmJkJ1ZmZlci5pc0J1ZmZlcihUKSlyZXR1cm4gVC50b1N0cmluZyh2dCk7Zm9yKFBlPTA7UGU8RjtQZSsrKXllW1BlXT1TdHJpbmcuZnJvbUNoYXJDb2RlKFRbUGVdKTskZT1GO2JyZWFrO2Nhc2UidXRmMTZsZSI6aWYo''@;'; + put 'put ''Rj49MiYmMjU1PT1UWzBdJiYyNTQ9PVRbMV0mJihQZT0yKSxXJiZCdWZmZXIuaXNCdWZmZXIoVCkpcmV0dXJuIFQudG9TdHJpbmcodnQpO2ZvcihRZT0yO1BlKzE8RjtQZSs9UWUpeWVbJGUrK109U3RyaW5nLmZyb21DaGFyQ29kZSgoVFtQZSsxXTw8OCkrVFtQZV0pO2JyZWFrO2Nhc2UidXRm''@;'; + put 'put ''MTZiZSI6Zm9yKEY+PTImJjI1ND09VFswXSYmMjU1PT1UWzFdJiYoUGU9MiksUWU9MjtQZSsxPEY7UGUrPVFlKXllWyRlKytdPVN0cmluZy5mcm9tQ2hhckNvZGUoKFRbUGVdPDw4KStUW1BlKzFdKTticmVhaztjYXNlInV0ZjMybGUiOmZvcihGPj00JiYyNTU9PVRbMF0mJjI1ND09VFsxXSYm''@;'; + put 'put ''MD09PVRbMl0mJjA9PT1UWzNdJiYoUGU9NCksUWU9NDtQZTxGO1BlKz1RZSkoRGU9KFRbUGUrM108PDI0KSsoVFtQZSsyXTw8MTYpKyhUW1BlKzFdPDw4KStUW1BlXSk+NjU1MzU/KERlLT02NTUzNix5ZVskZSsrXT1TdHJpbmcuZnJvbUNoYXJDb2RlKDU1Mjk2KyhEZT4+MTAmMTAyMykpLHll''@;'; + put 'put ''WyRlKytdPVN0cmluZy5mcm9tQ2hhckNvZGUoNTYzMjArKDEwMjMmRGUpKSk6eWVbJGUrK109U3RyaW5nLmZyb21DaGFyQ29kZShEZSk7YnJlYWs7Y2FzZSJ1dGYzMmJlIjpmb3IoRj49NCYmMjU1PT1UWzNdJiYyNTQ9PVRbMl0mJjA9PT1UWzFdJiYwPT09VFswXSYmKFBlPTQpLFFlPTQ7UGU8''@;'; + put 'put ''RjtQZSs9UWUpKERlPShUW1BlXTw8MjQpKyhUW1BlKzFdPDwxNikrKFRbUGUrMl08PDgpK1RbUGUrM10pPjY1NTM1PyhEZS09NjU1MzYseWVbJGUrK109U3RyaW5nLmZyb21DaGFyQ29kZSg1NTI5NisoRGU+PjEwJjEwMjMpKSx5ZVskZSsrXT1TdHJpbmcuZnJvbUNoYXJDb2RlKDU2MzIwKygx''@;'; + put 'put ''MDIzJkRlKSkpOnllWyRlKytdPVN0cmluZy5mcm9tQ2hhckNvZGUoRGUpO2JyZWFrO2Nhc2UidXRmNyI6Zm9yKEY+PTQmJjQzPT1UWzBdJiY0Nz09VFsxXSYmMTE4PT1UWzJdJiYoRj49NSYmNTY9PVRbM10mJjQ1PT1UWzRdP1BlPTU6KDU2PT1UWzNdfHw1Nz09VFszXXx8NDM9PVRbM118fDQ3''@;'; + put 'put ''PT1UWzNdKSYmKFBlPTQpKTtQZTxGO1BlKz1RZSlpZig0Mz09PVRbUGVdKWlmKFFlPTEsNDUhPT1UW1BlKzFdKXtmb3IoO1N0cmluZy5mcm9tQ2hhckNvZGUoVFtQZStRZV0pLm1hdGNoKC9bQS1aYS16MC05K1wvXS8pOylRZSsrO3ZhciBBdD0wOzQ1PT09VFtQZStRZV0mJigrK1FlLEF0PTEp''@;'; + put 'put ''O2Zvcih2YXIgaHQ9W10sQnQ9IiIsZXQ9MCxhdD0wLEx0PTAsQ3Q9MCxmdD0xO2Z0PFFlLUF0JiYoZXQ9RWUuaW5kZXhPZihTdHJpbmcuZnJvbUNoYXJDb2RlKFRbUGUrZnQrK10pKSxhdD1FZS5pbmRleE9mKFN0cmluZy5mcm9tQ2hhckNvZGUoVFtQZStmdCsrXSkpLGh0LnB1c2goZXQ8PDJ8''@;'; + put 'put ''YXQ+PjQpLC0xIT09KEx0PUVlLmluZGV4T2YoU3RyaW5nLmZyb21DaGFyQ29kZShUW1BlK2Z0KytdKSkpJiYoaHQucHVzaCgoMTUmYXQpPDw0fEx0Pj4yKSwtMSE9PShDdD1FZS5pbmRleE9mKFN0cmluZy5mcm9tQ2hhckNvZGUoVFtQZStmdCsrXSkpKSkpOylDdDw2NCYmaHQucHVzaCgoMyZM''@;'; + put 'put ''dCk8PDZ8Q3QpO2ZvcihCdD1QKDEyMDEsaHQpLGZ0PTA7ZnQ8QnQubGVuZ3RoOysrZnQpeWVbJGUrK109QnQuY2hhckF0KGZ0KX1lbHNlIFFlPTIseWVbJGUrK109IisiO2Vsc2UgUWU9MSx5ZVskZSsrXT1TdHJpbmcuZnJvbUNoYXJDb2RlKFRbUGVdKTticmVhaztkZWZhdWx0OnRocm93IG5l''@;'; + put 'put ''dyBFcnJvcigiVW5zdXBwb3J0ZWQgbWFnaWM6ICIrVisiICIrbWVbVl0pfX1yZXR1cm4geWUuc2xpY2UoMCwkZSkuam9pbigiIil9LGVuY29kZTpmdW5jdGlvbiBQKFYsVCxTKXtpZihWPT09eiYmTylyZXR1cm4gTyhULFMpO2lmKGllW1ZdKXJldHVybihPPWllW3o9Vl0pKFQsUyk7VyYmQnVm''@;'; + put 'put ''ZmVyLmlzQnVmZmVyKFQpJiYoVD1ULnRvU3RyaW5nKCJ1dGY4IikpO3ZhciBndCxGPVQubGVuZ3RoLHllPVc/QnVmZmVyLmFsbG9jVW5zYWZlKDQqRik6W10sQ2U9MCxEZT0wLFBlPTAsUWU9MCwkZT1MW1ZdLHd0PSIiLG10PSJzdHJpbmciPT10eXBlb2YgVDtpZigkZSYmKGd0PSRlLmVuYykp''@;'; + put 'put ''Zm9yKERlPTA7RGU8RjsrK0RlLCsrUGUpKENlPWd0W210P1QuY2hhckF0KERlKTpUW0RlXV0pPjI1NT8oeWVbUGVdPUNlPj44LHllWysrUGVdPTI1NSZDZSk6eWVbUGVdPTI1NSZDZTtlbHNle2lmKCEod3Q9bWVbVl0pKXRocm93IG5ldyBFcnJvcigiVW5yZWNvZ25pemVkIENQOiAiK1YpO3N3''@;'; + put 'put ''aXRjaCh3dCl7Y2FzZSJ1dGY4IjppZihXJiZtdCl7UGU9KHllPU4oVCx3dCkpLmxlbmd0aDticmVha31mb3IoRGU9MDtEZTxGOysrRGUsKytQZSkoQ2U9bXQ/VC5jaGFyQ29kZUF0KERlKTpUW0RlXS5jaGFyQ29kZUF0KDApKTw9MTI3P3llW1BlXT1DZTpDZTw9MjA0Nz8oeWVbUGVdPTE5Miso''@;'; + put 'put ''Q2U+PjYpLHllWysrUGVdPTEyOCsoNjMmQ2UpKTpDZT49NTUyOTYmJkNlPD01NzM0Mz8oQ2UtPTU1Mjk2LFFlPShtdD9ULmNoYXJDb2RlQXQoKytEZSk6VFsrK0RlXS5jaGFyQ29kZUF0KDApKS01NjMyMCsoQ2U8PDEwKSx5ZVtQZV09MjQwKyhRZT4+PjE4JjcpLHllWysrUGVdPTE0NCsoUWU+''@;'; + put 'put ''Pj4xMiY2MykseWVbKytQZV09MTI4KyhRZT4+PjYmNjMpLHllWysrUGVdPTEyOCsoNjMmUWUpKTooeWVbUGVdPTIyNCsoQ2U+PjEyKSx5ZVsrK1BlXT0xMjgrKENlPj42JjYzKSx5ZVsrK1BlXT0xMjgrKDYzJkNlKSk7YnJlYWs7Y2FzZSJhc2NpaSI6aWYoVyYmInN0cmluZyI9PXR5cGVvZiBU''@;'; + put 'put ''KXtQZT0oeWU9TihULHd0KSkubGVuZ3RoO2JyZWFrfWZvcihEZT0wO0RlPEY7KytEZSwrK1BlKXtpZighKChDZT1tdD9ULmNoYXJDb2RlQXQoRGUpOlRbRGVdLmNoYXJDb2RlQXQoMCkpPD0xMjcpKXRocm93IG5ldyBFcnJvcigiYmFkIGFzY2lpICIrQ2UpO3llW1BlXT1DZX1icmVhaztjYXNl''@;'; + put 'put ''InV0ZjE2bGUiOmlmKFcmJiJzdHJpbmciPT10eXBlb2YgVCl7UGU9KHllPU4oVCx3dCkpLmxlbmd0aDticmVha31mb3IoRGU9MDtEZTxGOysrRGUpQ2U9bXQ/VC5jaGFyQ29kZUF0KERlKTpUW0RlXS5jaGFyQ29kZUF0KDApLHllW1BlKytdPTI1NSZDZSx5ZVtQZSsrXT1DZT4+ODticmVhaztj''@;'; + put 'put ''YXNlInV0ZjE2YmUiOmZvcihEZT0wO0RlPEY7KytEZSlDZT1tdD9ULmNoYXJDb2RlQXQoRGUpOlRbRGVdLmNoYXJDb2RlQXQoMCkseWVbUGUrK109Q2U+PjgseWVbUGUrK109MjU1JkNlO2JyZWFrO2Nhc2UidXRmMzJsZSI6Zm9yKERlPTA7RGU8RjsrK0RlKShDZT1tdD9ULmNoYXJDb2RlQXQo''@;'; + put 'put ''RGUpOlRbRGVdLmNoYXJDb2RlQXQoMCkpPj01NTI5NiYmQ2U8PTU3MzQzJiYoQ2U9NjU1MzYrKENlLTU1Mjk2PDwxMCkrKFRbKytEZV0uY2hhckNvZGVBdCgwKS01NjMyMCkpLHllW1BlKytdPTI1NSZDZSx5ZVtQZSsrXT0yNTUmKENlPj49OCkseWVbUGUrK109MjU1JihDZT4+PTgpLHllW1Bl''@;'; + put 'put ''KytdPTI1NSYoQ2U+Pj04KTticmVhaztjYXNlInV0ZjMyYmUiOmZvcihEZT0wO0RlPEY7KytEZSkoQ2U9bXQ/VC5jaGFyQ29kZUF0KERlKTpUW0RlXS5jaGFyQ29kZUF0KDApKT49NTUyOTYmJkNlPD01NzM0MyYmKENlPTY1NTM2KyhDZS01NTI5Njw8MTApKyhUWysrRGVdLmNoYXJDb2RlQXQo''@;'; + put 'put ''MCktNTYzMjApKSx5ZVtQZSszXT0yNTUmQ2UseWVbUGUrMl09MjU1JihDZT4+PTgpLHllW1BlKzFdPTI1NSYoQ2U+Pj04KSx5ZVtQZV09MjU1JihDZT4+PTgpLFBlKz00O2JyZWFrO2Nhc2UidXRmNyI6Zm9yKERlPTA7RGU8RjtEZSsrKXt2YXIgdnQ9bXQ/VC5jaGFyQXQoRGUpOlRbRGVdLmNo''@;'; + put 'put ''YXJBdCgwKTtpZigiKyIhPT12dClpZigiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODknKCksLS4vOj8iLmluZGV4T2YodnQpPi0xKXllW1BlKytdPXZ0LmNoYXJDb2RlQXQoMCk7ZWxzZXt2YXIgQXQ9UCgxMjAxLHZ0KTt5ZVtQ''@;'; + put 'put ''ZSsrXT00Myx5ZVtQZSsrXT1FZS5jaGFyQ29kZUF0KEF0WzBdPj4yKSx5ZVtQZSsrXT1FZS5jaGFyQ29kZUF0KCgoMyZBdFswXSk8PDQpKygoQXRbMV18fDApPj40KSkseWVbUGUrK109RWUuY2hhckNvZGVBdCgoKDE1JkF0WzFdKTw8MikrKChBdFsyXXx8MCk+PjYpKSx5ZVtQZSsrXT00NX1l''@;'; + put 'put ''bHNlIHllW1BlKytdPTQzLHllW1BlKytdPTQ1fWJyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJVbnN1cHBvcnRlZCBtYWdpYzogIitWKyIgIittZVtWXSl9fXJldHVybiB5ZT15ZS5zbGljZSgwLFBlKSxXP1MmJiJidWYiIT09Uz8iYXJyIiE9PVM/eWUudG9TdHJpbmcoImJpbmFyeSIp''@;'; + put 'put ''OltdLnNsaWNlLmNhbGwoeWUpOnllOiJzdHIiPT1TP3llLm1hcChhZSkuam9pbigiIik6eWV9LGhhc2NwOmZ1bmN0aW9uKFYpe3JldHVybiEoIUxbVl0mJiFtZVtWXSl9LG1hZ2ljOm1lLGNhY2hlOlRlfSxMfSl9LDY5OTYzOihYZSxKZSk9Pnt2YXIgTCxtZSxCOyFmdW5jdGlvbihFKXtpZigi''@;'; + put 'put ''dW5kZWZpbmVkIj09dHlwZW9mIERPX05PVF9FWFBPUlRfSlNaSVApWGUuZXhwb3J0cz1FKCk7ZWxzZSBpZigidW5kZWZpbmVkIj09dHlwZW9mIERPX05PVF9FWFBPUlRfSlNaSVApSlNaaXBTeW5jPUUoKSxtZT1bXSx2b2lkIDAhPT0oQj0iZnVuY3Rpb24iPT10eXBlb2YoTD1FKT9MLmFwcGx5''@;'; + put 'put ''KEplLG1lKTpMKSYmKFhlLmV4cG9ydHM9Qik7ZWxzZXt2YXIgTWU7InVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWxUaGlzP01lPWdsb2JhbFRoaXM6InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3c/TWU9d2luZG93OiJ1bmRlZmluZWQiIT10eXBlb2YgZ2xvYmFsP01lPWdsb2JhbDoidW5kZWZp''@;'; + put 'put ''bmVkIiE9dHlwZW9mICQmJiQuZ2xvYmFsP01lPSQuZ2xvYmFsOiJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZiYmKE1lPXNlbGYpLE1lLkpTWmlwU3luYz1FKCl9fShmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbiBRKFosaWUsYWUpe2Z1bmN0aW9uIFkoZWUscSl7aWYoIWllW2VlXSl7aWYoIVpb''@;'; + put 'put ''ZWVdKXtpZihXKXJldHVybiBXKGVlLCEwKTt0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBmaW5kIG1vZHVsZSAnIitlZSsiJyIpfXZhciBzZT1pZVtlZV09e2V4cG9ydHM6e319O1pbZWVdWzBdLmNhbGwoc2UuZXhwb3J0cyxmdW5jdGlvbihvZSl7cmV0dXJuIFkoWltlZV1bMV1bb2VdfHxvZSl9''@;'; + put 'put ''LHNlLHNlLmV4cG9ydHMsUSxaLGllLGFlKX1yZXR1cm4gaWVbZWVdLmV4cG9ydHN9Zm9yKHZhciBXPXZvaWQgMCxOPTA7TjxhZS5sZW5ndGg7TisrKVkoYWVbTl0pO3JldHVybiBZfSh7MTpbZnVuY3Rpb24oUSxaLGllKXsidXNlIHN0cmljdCI7dmFyIGFlPSJBQkNERUZHSElKS0xNTk9QUVJT''@;'; + put 'put ''VFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSI7aWUuZW5jb2RlPWZ1bmN0aW9uKFksVyl7Zm9yKHZhciBlZSxxLEosc2Usb2UsY2UsZGUsTj0iIix2ZT0wO3ZlPFkubGVuZ3RoOylzZT0oZWU9WS5jaGFyQ29kZUF0KHZlKyspKT4+MixvZT0oMyZlZSk8PDR8''@;'; + put 'put ''KHE9WS5jaGFyQ29kZUF0KHZlKyspKT4+NCxjZT0oMTUmcSk8PDJ8KEo9WS5jaGFyQ29kZUF0KHZlKyspKT4+NixkZT02MyZKLGlzTmFOKHEpP2NlPWRlPTY0OmlzTmFOKEopJiYoZGU9NjQpLE49TithZS5jaGFyQXQoc2UpK2FlLmNoYXJBdChvZSkrYWUuY2hhckF0KGNlKSthZS5jaGFyQXQo''@;'; + put 'put ''ZGUpO3JldHVybiBOfSxpZS5kZWNvZGU9ZnVuY3Rpb24oWSxXKXt2YXIgcSxKLHNlLG9lLGNlLGRlLE49IiIsdmU9MDtmb3IoWT1ZLnJlcGxhY2UoL1teQS1aYS16MC05XCtcL1w9XS9nLCIiKTt2ZTxZLmxlbmd0aDspc2U9YWUuaW5kZXhPZihZLmNoYXJBdCh2ZSsrKSkscT0oMTUmKG9lPWFl''@;'; + put 'put ''LmluZGV4T2YoWS5jaGFyQXQodmUrKykpKSk8PDR8KGNlPWFlLmluZGV4T2YoWS5jaGFyQXQodmUrKykpKT4+MixKPSgzJmNlKTw8NnwoZGU9YWUuaW5kZXhPZihZLmNoYXJBdCh2ZSsrKSkpLE4rPVN0cmluZy5mcm9tQ2hhckNvZGUoc2U8PDJ8b2U+PjQpLDY0IT1jZSYmKE4rPVN0cmluZy5m''@;'; + put 'put ''cm9tQ2hhckNvZGUocSkpLDY0IT1kZSYmKE4rPVN0cmluZy5mcm9tQ2hhckNvZGUoSikpO3JldHVybiBOfX0se31dLDI6W2Z1bmN0aW9uKFEsWixpZSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGFlKCl7dGhpcy5jb21wcmVzc2VkU2l6ZT0wLHRoaXMudW5jb21wcmVzc2VkU2l6ZT0wLHRoaXMu''@;'; + put 'put ''Y3JjMzI9MCx0aGlzLmNvbXByZXNzaW9uTWV0aG9kPW51bGwsdGhpcy5jb21wcmVzc2VkQ29udGVudD1udWxsfWFlLnByb3RvdHlwZT17Z2V0Q29udGVudDpmdW5jdGlvbigpe3JldHVybiBudWxsfSxnZXRDb21wcmVzc2VkQ29udGVudDpmdW5jdGlvbigpe3JldHVybiBudWxsfX0sWi5leHBv''@;'; + put 'put ''cnRzPWFlfSx7fV0sMzpbZnVuY3Rpb24oUSxaLGllKXsidXNlIHN0cmljdCI7aWUuU1RPUkU9e21hZ2ljOiJcMFwwIixjb21wcmVzczpmdW5jdGlvbihhZSl7cmV0dXJuIGFlfSx1bmNvbXByZXNzOmZ1bmN0aW9uKGFlKXtyZXR1cm4gYWV9LGNvbXByZXNzSW5wdXRUeXBlOm51bGwsdW5jb21w''@;'; + put 'put ''cmVzc0lucHV0VHlwZTpudWxsfSxpZS5ERUZMQVRFPVEoIi4vZmxhdGUiKX0seyIuL2ZsYXRlIjo4fV0sNDpbZnVuY3Rpb24oUSxaLGllKXsidXNlIHN0cmljdCI7dmFyIGFlPVEoIi4vdXRpbHMiKSxZPVswLDE5OTY5NTk4OTQsMzk5MzkxOTc4OCwyNTY3NTI0Nzk0LDEyNDYzNDEzNywxODg2''@;'; + put 'put ''MDU3NjE1LDM5MTU2MjE2ODUsMjY1NzM5MjAzNSwyNDkyNjgyNzQsMjA0NDUwODMyNCwzNzcyMTE1MjMwLDI1NDcxNzc4NjQsMTYyOTQxOTk1LDIxMjU1NjEwMjEsMzg4NzYwNzA0NywyNDI4NDQ0MDQ5LDQ5ODUzNjU0OCwxNzg5OTI3NjY2LDQwODkwMTY2NDgsMjIyNzA2MTIxNCw0NTA1NDg4''@;'; + put 'put ''NjEsMTg0MzI1ODYwMyw0MTA3NTgwNzUzLDIyMTE2Nzc2MzksMzI1ODgzOTkwLDE2ODQ3NzcxNTIsNDI1MTEyMjA0MiwyMzIxOTI2NjM2LDMzNTYzMzQ4NywxNjYxMzY1NDY1LDQxOTUzMDI3NTUsMjM2NjExNTMxNyw5OTcwNzMwOTYsMTI4MTk1Mzg4NiwzNTc5ODU1MzMyLDI3MjQ2ODgyNDIs''@;'; + put 'put ''MTAwNjg4ODE0NSwxMjU4NjA3Njg3LDM1MjQxMDE2MjksMjc2ODk0MjQ0Myw5MDEwOTc3MjIsMTExOTAwMDY4NCwzNjg2NTE3MjA2LDI4OTgwNjU3MjgsODUzMDQ0NDUxLDExNzIyNjYxMDEsMzcwNTAxNTc1OSwyODgyNjE2NjY1LDY1MTc2Nzk4MCwxMzczNTAzNTQ2LDMzNjk1NTQzMDQsMzIx''@;'; + put 'put ''ODEwNDU5OCw1NjU1MDcyNTMsMTQ1NDYyMTczMSwzNDg1MTExNzA1LDMwOTk0MzYzMDMsNjcxMjY2OTc0LDE1OTQxOTgwMjQsMzMyMjczMDkzMCwyOTcwMzQ3ODEyLDc5NTgzNTUyNywxNDgzMjMwMjI1LDMyNDQzNjcyNzUsMzA2MDE0OTU2NSwxOTk0MTQ2MTkyLDMxMTU4NTM0LDI1NjM5MDc3''@;'; + put 'put ''NzIsNDAyMzcxNzkzMCwxOTA3NDU5NDY1LDExMjYzNzIxNSwyNjgwMTUzMjUzLDM5MDQ0MjcwNTksMjAxMzc3NjI5MCwyNTE3MjIwMzYsMjUxNzIxNTM3NCwzNzc1ODMwMDQwLDIxMzc2NTY3NjMsMTQxMzc2ODEzLDI0MzkyNzc3MTksMzg2NTI3MTI5NywxODAyMTk1NDQ0LDQ3Njg2NDg2Niwy''@;'; + put 'put ''MjM4MDAxMzY4LDQwNjY1MDg4NzgsMTgxMjM3MDkyNSw0NTMwOTI3MzEsMjE4MTYyNTAyNSw0MTExNDUxMjIzLDE3MDYwODg5MDIsMzE0MDQyNzA0LDIzNDQ1MzIyMDIsNDI0MDAxNzUzMiwxNjU4NjU4MjcxLDM2NjYxOTk3NywyMzYyNjcwMzIzLDQyMjQ5OTQ0MDUsMTMwMzUzNTk2MCw5ODQ5''@;'; + put 'put ''NjE0ODYsMjc0NzAwNzA5MiwzNTY5MDM3NTM4LDEyNTYxNzA4MTcsMTAzNzYwNDMxMSwyNzY1MjEwNzMzLDM1NTQwNzk5OTUsMTEzMTAxNDUwNiw4Nzk2Nzk5OTYsMjkwOTI0MzQ2MiwzNjYzNzcxODU2LDExNDExMjQ0NjcsODU1ODQyMjc3LDI4NTI4MDE2MzEsMzcwODY0ODY0OSwxMzQyNTMz''@;'; + put 'put ''OTQ4LDY1NDQ1OTMwNiwzMTg4Mzk2MDQ4LDMzNzMwMTUxNzQsMTQ2NjQ3OTkwOSw1NDQxNzk2MzUsMzExMDUyMzkxMywzNDYyNTIyMDE1LDE1OTE2NzEwNTQsNzAyMTM4Nzc2LDI5NjY0NjA0NTAsMzM1Mjc5OTQxMiwxNTA0OTE4ODA3LDc4MzU1MTg3MywzMDgyNjQwNDQzLDMyMzM0NDI5ODks''@;'; + put 'put ''Mzk4ODI5MjM4NCwyNTk2MjU0NjQ2LDYyMzE3MDY4LDE5NTc4MTA4NDIsMzkzOTg0NTk0NSwyNjQ3ODE2MTExLDgxNDcwOTk3LDE5NDM4MDM1MjMsMzgxNDkxODkzMCwyNDg5NTk2ODA0LDIyNTI3NDQzMCwyMDUzNzkwMzc2LDM4MjYxNzU3NTUsMjQ2NjkwNjAxMywxNjc4MTY3NDMsMjA5NzY1''@;'; + put 'put ''MTM3Nyw0MDI3NTUyNTgwLDIyNjU0OTAzODYsNTAzNDQ0MDcyLDE3NjIwNTA4MTQsNDE1MDQxNzI0NSwyMTU0MTI5MzU1LDQyNjUyMjIyNSwxODUyNTA3ODc5LDQyNzUzMTM1MjYsMjMxMjMxNzkyMCwyODI3NTM2MjYsMTc0MjU1NTg1Miw0MTg5NzA4MTQzLDIzOTQ4Nzc5NDUsMzk3OTE3NzYz''@;'; + put 'put ''LDE2MjIxODM2MzcsMzYwNDM5MDg4OCwyNzE0ODY2NTU4LDk1MzcyOTczMiwxMzQwMDc2NjI2LDM1MTg3MTk5ODUsMjc5NzM2MDk5OSwxMDY4ODI4MzgxLDEyMTk2Mzg4NTksMzYyNDc0MTg1MCwyOTM2Njc1MTQ4LDkwNjE4NTQ2MiwxMDkwODEyNTEyLDM3NDc2NzIwMDMsMjgyNTM3OTY2OSw4''@;'; + put 'put ''MjkzMjkxMzUsMTE4MTMzNTE2MSwzNDEyMTc3ODA0LDMxNjA4MzQ4NDIsNjI4MDg1NDA4LDEzODI2MDUzNjYsMzQyMzM2OTEwOSwzMTM4MDc4NDY3LDU3MDU2MjIzMywxNDI2NDAwODE1LDMzMTczMTY1NDIsMjk5ODczMzYwOCw3MzMyMzk5NTQsMTU1NTI2MTk1NiwzMjY4OTM1NTkxLDMwNTAz''@;'; + put 'put ''NjA2MjUsNzUyNDU5NDAzLDE1NDEzMjAyMjEsMjYwNzA3MTkyMCwzOTY1OTczMDMwLDE5Njk5MjI5NzIsNDA3MzU0OTgsMjYxNzgzNzIyNSwzOTQzNTc3MTUxLDE5MTMwODc4NzcsODM5MDgzNzEsMjUxMjM0MTYzNCwzODAzNzQwNjkyLDIwNzUyMDg2MjIsMjEzMjYxMTEyLDI0NjMyNzI2MDMs''@;'; + put 'put ''Mzg1NTk5MDI4NSwyMDk0ODU0MDcxLDE5ODk1ODg4MSwyMjYyMDI5MDEyLDQwNTcyNjA2MTAsMTc1OTM1OTk5Miw1MzQ0MTQxOTAsMjE3NjcxODU0MSw0MTM5MzI5MTE1LDE4NzM4MzYwMDEsNDE0NjY0NTY3LDIyODIyNDg5MzQsNDI3OTIwMDM2OCwxNzExNjg0NTU0LDI4NTI4MTExNiwyNDA1''@;'; + put 'put ''ODAxNzI3LDQxNjcyMTY3NDUsMTYzNDQ2Nzc5NSwzNzYyMjk3MDEsMjY4NTA2Nzg5NiwzNjA4MDA3NDA2LDEzMDg5MTg2MTIsOTU2NTQzOTM4LDI4MDg1NTUxMDUsMzQ5NTk1ODI2MywxMjMxNjM2MzAxLDEwNDc0MjcwMzUsMjkzMjk1OTgxOCwzNjU0NzAzODM2LDEwODgzNTkyNzAsOTM2OTE4''@;'; + put 'put ''ZTMsMjg0NzcxNDg5OSwzNzM2ODM3ODI5LDEyMDI5MDA4NjMsODE3MjMzODk3LDMxODMzNDIxMDgsMzQwMTIzNzEzMCwxNDA0Mjc3NTUyLDYxNTgxODE1MCwzMTM0MjA3NDkzLDM0NTM0MjEyMDMsMTQyMzg1NzQ0OSw2MDE0NTA0MzEsMzAwOTgzNzYxNCwzMjk0NzEwNDU2LDE1NjcxMDM3NDYs''@;'; + put 'put ''NzExOTI4NzI0LDMwMjA2Njg0NzEsMzI3MjM4MDA2NSwxNTEwMzM0MjM1LDc1NTE2NzExN107Wi5leHBvcnRzPWZ1bmN0aW9uKE4sZWUpe2lmKHZvaWQgMD09PU58fCFOLmxlbmd0aClyZXR1cm4gMDt2YXIgcT0ic3RyaW5nIiE9PWFlLmdldFR5cGVPZihOKTt2b2lkIDA9PT1lZSYmKGVlPTAp''@;'; + put 'put ''O3ZhciBvZT0wO2VlXj0tMTtmb3IodmFyIGNlPTAsZGU9Ti5sZW5ndGg7Y2U8ZGU7Y2UrKylvZT1xP05bY2VdOk4uY2hhckNvZGVBdChjZSksZWU9ZWU+Pj44XllbMjU1JihlZV5vZSldO3JldHVybi0xXmVlfX0seyIuL3V0aWxzIjoyMX1dLDU6W2Z1bmN0aW9uKFEsWixpZSl7InVzZSBzdHJp''@;'; + put 'put ''Y3QiO3ZhciBhZT1RKCIuL3V0aWxzIik7ZnVuY3Rpb24gWShXKXt0aGlzLmRhdGE9bnVsbCx0aGlzLmxlbmd0aD0wLHRoaXMuaW5kZXg9MH1ZLnByb3RvdHlwZT17Y2hlY2tPZmZzZXQ6ZnVuY3Rpb24oVyl7dGhpcy5jaGVja0luZGV4KHRoaXMuaW5kZXgrVyl9LGNoZWNrSW5kZXg6ZnVuY3Rp''@;'; + put 'put ''b24oVyl7aWYodGhpcy5sZW5ndGg8V3x8VzwwKXRocm93IG5ldyBFcnJvcigiRW5kIG9mIGRhdGEgcmVhY2hlZCAoZGF0YSBsZW5ndGggPSAiK3RoaXMubGVuZ3RoKyIsIGFza2VkIGluZGV4ID0gIitXKyIpLiBDb3JydXB0ZWQgemlwID8iKX0sc2V0SW5kZXg6ZnVuY3Rpb24oVyl7dGhpcy5j''@;'; + put 'put ''aGVja0luZGV4KFcpLHRoaXMuaW5kZXg9V30sc2tpcDpmdW5jdGlvbihXKXt0aGlzLnNldEluZGV4KHRoaXMuaW5kZXgrVyl9LGJ5dGVBdDpmdW5jdGlvbihXKXt9LHJlYWRJbnQ6ZnVuY3Rpb24oVyl7dmFyIGVlLE49MDtmb3IodGhpcy5jaGVja09mZnNldChXKSxlZT10aGlzLmluZGV4K1ct''@;'; + put 'put ''MTtlZT49dGhpcy5pbmRleDtlZS0tKU49KE48PDgpK3RoaXMuYnl0ZUF0KGVlKTtyZXR1cm4gdGhpcy5pbmRleCs9VyxOfSxyZWFkU3RyaW5nOmZ1bmN0aW9uKFcpe3JldHVybiBhZS50cmFuc2Zvcm1Ubygic3RyaW5nIix0aGlzLnJlYWREYXRhKFcpKX0scmVhZERhdGE6ZnVuY3Rpb24oVyl7''@;'; + put 'put ''fSxsYXN0SW5kZXhPZlNpZ25hdHVyZTpmdW5jdGlvbihXKXt9LHJlYWREYXRlOmZ1bmN0aW9uKCl7dmFyIFc9dGhpcy5yZWFkSW50KDQpO3JldHVybiBuZXcgRGF0ZSgxOTgwKyhXPj4yNSYxMjcpLChXPj4yMSYxNSktMSxXPj4xNiYzMSxXPj4xMSYzMSxXPj41JjYzLCgzMSZXKTw8MSl9fSxa''@;'; + put 'put ''LmV4cG9ydHM9WX0seyIuL3V0aWxzIjoyMX1dLDY6W2Z1bmN0aW9uKFEsWixpZSl7InVzZSBzdHJpY3QiO2llLmJhc2U2ND0hMSxpZS5iaW5hcnk9ITEsaWUuZGlyPSExLGllLmNyZWF0ZUZvbGRlcnM9ITEsaWUuZGF0ZT1udWxsLGllLmNvbXByZXNzaW9uPW51bGwsaWUuY29tbWVudD1udWxs''@;'; + put 'put ''fSx7fV0sNzpbZnVuY3Rpb24oUSxaLGllKXsidXNlIHN0cmljdCI7dmFyIGFlPVEoIi4vdXRpbHMiKTtpZS5zdHJpbmcyYmluYXJ5PWZ1bmN0aW9uKFkpe3JldHVybiBhZS5zdHJpbmcyYmluYXJ5KFkpfSxpZS5zdHJpbmcyVWludDhBcnJheT1mdW5jdGlvbihZKXtyZXR1cm4gYWUudHJhbnNm''@;'; + put 'put ''b3JtVG8oInVpbnQ4YXJyYXkiLFkpfSxpZS51aW50OEFycmF5MlN0cmluZz1mdW5jdGlvbihZKXtyZXR1cm4gYWUudHJhbnNmb3JtVG8oInN0cmluZyIsWSl9LGllLnN0cmluZzJCbG9iPWZ1bmN0aW9uKFkpe3ZhciBXPWFlLnRyYW5zZm9ybVRvKCJhcnJheWJ1ZmZlciIsWSk7cmV0dXJuIGFl''@;'; + put 'put ''LmFycmF5QnVmZmVyMkJsb2IoVyl9LGllLmFycmF5QnVmZmVyMkJsb2I9ZnVuY3Rpb24oWSl7cmV0dXJuIGFlLmFycmF5QnVmZmVyMkJsb2IoWSl9LGllLnRyYW5zZm9ybVRvPWZ1bmN0aW9uKFksVyl7cmV0dXJuIGFlLnRyYW5zZm9ybVRvKFksVyl9LGllLmdldFR5cGVPZj1mdW5jdGlvbihZ''@;'; + put 'put ''KXtyZXR1cm4gYWUuZ2V0VHlwZU9mKFkpfSxpZS5jaGVja1N1cHBvcnQ9ZnVuY3Rpb24oWSl7cmV0dXJuIGFlLmNoZWNrU3VwcG9ydChZKX0saWUuTUFYX1ZBTFVFXzE2QklUUz1hZS5NQVhfVkFMVUVfMTZCSVRTLGllLk1BWF9WQUxVRV8zMkJJVFM9YWUuTUFYX1ZBTFVFXzMyQklUUyxpZS5w''@;'; + put 'put ''cmV0dHk9ZnVuY3Rpb24oWSl7cmV0dXJuIGFlLnByZXR0eShZKX0saWUuZmluZENvbXByZXNzaW9uPWZ1bmN0aW9uKFkpe3JldHVybiBhZS5maW5kQ29tcHJlc3Npb24oWSl9LGllLmlzUmVnRXhwPWZ1bmN0aW9uKFkpe3JldHVybiBhZS5pc1JlZ0V4cChZKX19LHsiLi91dGlscyI6MjF9XSw4''@;'; + put 'put ''OltmdW5jdGlvbihRLFosaWUpeyJ1c2Ugc3RyaWN0Ijt2YXIgYWU9InVuZGVmaW5lZCIhPXR5cGVvZiBVaW50OEFycmF5JiYidW5kZWZpbmVkIiE9dHlwZW9mIFVpbnQxNkFycmF5JiYidW5kZWZpbmVkIiE9dHlwZW9mIFVpbnQzMkFycmF5LFk9USgicGFrbyIpO2llLnVuY29tcHJlc3NJbnB1''@;'; + put 'put ''dFR5cGU9YWU/InVpbnQ4YXJyYXkiOiJhcnJheSIsaWUuY29tcHJlc3NJbnB1dFR5cGU9YWU/InVpbnQ4YXJyYXkiOiJhcnJheSIsaWUubWFnaWM9IlxiXDAiLGllLmNvbXByZXNzPWZ1bmN0aW9uKFcpe3JldHVybiBZLmRlZmxhdGVSYXcoVyl9LGllLnVuY29tcHJlc3M9ZnVuY3Rpb24oVyl7''@;'; + put 'put ''cmV0dXJuIFkuaW5mbGF0ZVJhdyhXKX19LHtwYWtvOjI0fV0sOTpbZnVuY3Rpb24oUSxaLGllKXsidXNlIHN0cmljdCI7dmFyIGFlPVEoIi4vYmFzZTY0Iik7ZnVuY3Rpb24gWShXLE4pe2lmKCEodGhpcyBpbnN0YW5jZW9mIFkpKXJldHVybiBuZXcgWShXLE4pO3RoaXMuZmlsZXM9e30sdGhp''@;'; + put 'put ''cy5jb21tZW50PW51bGwsdGhpcy5yb290PSIiLFcmJnRoaXMubG9hZChXLE4pLHRoaXMuY2xvbmU9ZnVuY3Rpb24oKXt2YXIgZWU9bmV3IFk7Zm9yKHZhciBxIGluIHRoaXMpImZ1bmN0aW9uIiE9dHlwZW9mIHRoaXNbcV0mJihlZVtxXT10aGlzW3FdKTtyZXR1cm4gZWV9fShZLnByb3RvdHlw''@;'; + put 'put ''ZT1RKCIuL29iamVjdCIpKS5sb2FkPVEoIi4vbG9hZCIpLFkuc3VwcG9ydD1RKCIuL3N1cHBvcnQiKSxZLmRlZmF1bHRzPVEoIi4vZGVmYXVsdHMiKSxZLnV0aWxzPVEoIi4vZGVwcmVjYXRlZFB1YmxpY1V0aWxzIiksWS5iYXNlNjQ9e2VuY29kZTpmdW5jdGlvbihXKXtyZXR1cm4gYWUuZW5j''@;'; + put 'put ''b2RlKFcpfSxkZWNvZGU6ZnVuY3Rpb24oVyl7cmV0dXJuIGFlLmRlY29kZShXKX19LFkuY29tcHJlc3Npb25zPVEoIi4vY29tcHJlc3Npb25zIiksWi5leHBvcnRzPVl9LHsiLi9iYXNlNjQiOjEsIi4vY29tcHJlc3Npb25zIjozLCIuL2RlZmF1bHRzIjo2LCIuL2RlcHJlY2F0ZWRQdWJsaWNV''@;'; + put 'put ''dGlscyI6NywiLi9sb2FkIjoxMCwiLi9vYmplY3QiOjEzLCIuL3N1cHBvcnQiOjE3fV0sMTA6W2Z1bmN0aW9uKFEsWixpZSl7InVzZSBzdHJpY3QiO3ZhciBhZT1RKCIuL2Jhc2U2NCIpLFk9USgiLi96aXBFbnRyaWVzIik7Wi5leHBvcnRzPWZ1bmN0aW9uKFcsTil7dmFyIGVlLHEsSixzZTtm''@;'; + put 'put ''b3IoKE49Tnx8e30pLmJhc2U2NCYmKFc9YWUuZGVjb2RlKFcpKSxlZT0ocT1uZXcgWShXLE4pKS5maWxlcyxKPTA7SjxlZS5sZW5ndGg7SisrKXRoaXMuZmlsZSgoc2U9ZWVbSl0pLmZpbGVOYW1lLHNlLmRlY29tcHJlc3NlZCx7YmluYXJ5OiEwLG9wdGltaXplZEJpbmFyeVN0cmluZzohMCxk''@;'; + put 'put ''YXRlOnNlLmRhdGUsZGlyOnNlLmRpcixjb21tZW50OnNlLmZpbGVDb21tZW50Lmxlbmd0aD9zZS5maWxlQ29tbWVudDpudWxsLGNyZWF0ZUZvbGRlcnM6Ti5jcmVhdGVGb2xkZXJzfSk7cmV0dXJuIHEuemlwQ29tbWVudC5sZW5ndGgmJih0aGlzLmNvbW1lbnQ9cS56aXBDb21tZW50KSx0aGlz''@;'; + put 'put ''fX0seyIuL2Jhc2U2NCI6MSwiLi96aXBFbnRyaWVzIjoyMn1dLDExOltmdW5jdGlvbihRLFosaWUpeyhmdW5jdGlvbihhZSl7InVzZSBzdHJpY3QiO3ZhciBZPWZ1bmN0aW9uKCl7fTtpZih2b2lkIDAhPT1hZSl7dmFyIFc9IWFlLmZyb207aWYoIVcpdHJ5e2FlLmZyb20oImZvbyIsInV0Zjgi''@;'; + put 'put ''KX1jYXRjaChOKXtXPSEwfVk9Vz9mdW5jdGlvbihOLGVlKXtyZXR1cm4gZWU/bmV3IGFlKE4sZWUpOm5ldyBhZShOKX06YWUuZnJvbS5iaW5kKGFlKSxhZS5hbGxvY3x8KGFlLmFsbG9jPWZ1bmN0aW9uKE4pe3JldHVybiBuZXcgYWUoTil9KX1aLmV4cG9ydHM9ZnVuY3Rpb24oTixlZSl7cmV0''@;'; + put 'put ''dXJuIm51bWJlciI9PXR5cGVvZiBOP2FlLmFsbG9jKE4pOlkoTixlZSl9LFouZXhwb3J0cy50ZXN0PWZ1bmN0aW9uKE4pe3JldHVybiBhZS5pc0J1ZmZlcihOKX19KS5jYWxsKHRoaXMsInVuZGVmaW5lZCIhPXR5cGVvZiBCdWZmZXI/QnVmZmVyOnZvaWQgMCl9LHt9XSwxMjpbZnVuY3Rpb24o''@;'; + put 'put ''USxaLGllKXsidXNlIHN0cmljdCI7dmFyIGFlPVEoIi4vdWludDhBcnJheVJlYWRlciIpO2Z1bmN0aW9uIFkoVyl7dGhpcy5kYXRhPVcsdGhpcy5sZW5ndGg9dGhpcy5kYXRhLmxlbmd0aCx0aGlzLmluZGV4PTB9KFkucHJvdG90eXBlPW5ldyBhZSkucmVhZERhdGE9ZnVuY3Rpb24oVyl7dGhp''@;'; + put 'put ''cy5jaGVja09mZnNldChXKTt2YXIgTj10aGlzLmRhdGEuc2xpY2UodGhpcy5pbmRleCx0aGlzLmluZGV4K1cpO3JldHVybiB0aGlzLmluZGV4Kz1XLE59LFouZXhwb3J0cz1ZfSx7Ii4vdWludDhBcnJheVJlYWRlciI6MTh9XSwxMzpbZnVuY3Rpb24oUSxaLGllKXsidXNlIHN0cmljdCI7dmFy''@;'; + put 'put ''IGFlPVEoIi4vc3VwcG9ydCIpLFk9USgiLi91dGlscyIpLFc9USgiLi9jcmMzMiIpLE49USgiLi9zaWduYXR1cmUiKSxlZT1RKCIuL2RlZmF1bHRzIikscT1RKCIuL2Jhc2U2NCIpLEo9USgiLi9jb21wcmVzc2lvbnMiKSxzZT1RKCIuL2NvbXByZXNzZWRPYmplY3QiKSxvZT1RKCIuL25vZGVC''@;'; + put 'put ''dWZmZXIiKSxjZT1RKCIuL3V0ZjgiKSxkZT1RKCIuL3N0cmluZ1dyaXRlciIpLHZlPVEoIi4vdWludDhBcnJheVdyaXRlciIpLEFlPWZ1bmN0aW9uKFYpe2lmKFYuX2RhdGEgaW5zdGFuY2VvZiBzZSYmKFYuX2RhdGE9Vi5fZGF0YS5nZXRDb250ZW50KCksVi5vcHRpb25zLmJpbmFyeT0hMCxW''@;'; + put 'put ''Lm9wdGlvbnMuYmFzZTY0PSExLCJ1aW50OGFycmF5Ij09PVkuZ2V0VHlwZU9mKFYuX2RhdGEpKSl7dmFyIFQ9Vi5fZGF0YTtWLl9kYXRhPW5ldyBVaW50OEFycmF5KFQubGVuZ3RoKSwwIT09VC5sZW5ndGgmJlYuX2RhdGEuc2V0KFQsMCl9cmV0dXJuIFYuX2RhdGF9LGtlPWZ1bmN0aW9uKFYp''@;'; + put 'put ''e3ZhciBUPUFlKFYpO3JldHVybiJzdHJpbmciPT09WS5nZXRUeXBlT2YoVCk/IVYub3B0aW9ucy5iaW5hcnkmJmFlLm5vZGVidWZmZXI/b2UoVCwidXRmLTgiKTpWLmFzQmluYXJ5KCk6VH0sU2U9ZnVuY3Rpb24oVil7dmFyIFQ9QWUodGhpcyk7cmV0dXJuIG51bGw9PVQ/IiI6KHRoaXMub3B0''@;'; + put 'put ''aW9ucy5iYXNlNjQmJihUPXEuZGVjb2RlKFQpKSxUPVYmJnRoaXMub3B0aW9ucy5iaW5hcnk/UC51dGY4ZGVjb2RlKFQpOlkudHJhbnNmb3JtVG8oInN0cmluZyIsVCksIVYmJiF0aGlzLm9wdGlvbnMuYmluYXJ5JiYoVD1ZLnRyYW5zZm9ybVRvKCJzdHJpbmciLFAudXRmOGVuY29kZShUKSkp''@;'; + put 'put ''LFQpfSxJZT1mdW5jdGlvbihWLFQsUyl7dGhpcy5uYW1lPVYsdGhpcy5kaXI9Uy5kaXIsdGhpcy5kYXRlPVMuZGF0ZSx0aGlzLmNvbW1lbnQ9Uy5jb21tZW50LHRoaXMuX2RhdGE9VCx0aGlzLm9wdGlvbnM9Uyx0aGlzLl9pbml0aWFsTWV0YWRhdGE9e2RpcjpTLmRpcixkYXRlOlMuZGF0ZX19''@;'; + put 'put ''O0llLnByb3RvdHlwZT17YXNUZXh0OmZ1bmN0aW9uKCl7cmV0dXJuIFNlLmNhbGwodGhpcywhMCl9LGFzQmluYXJ5OmZ1bmN0aW9uKCl7cmV0dXJuIFNlLmNhbGwodGhpcywhMSl9LGFzTm9kZUJ1ZmZlcjpmdW5jdGlvbigpe3ZhciBWPWtlKHRoaXMpO3JldHVybiBZLnRyYW5zZm9ybVRvKCJu''@;'; + put 'put ''b2RlYnVmZmVyIixWKX0sYXNVaW50OEFycmF5OmZ1bmN0aW9uKCl7dmFyIFY9a2UodGhpcyk7cmV0dXJuIFkudHJhbnNmb3JtVG8oInVpbnQ4YXJyYXkiLFYpfSxhc0FycmF5QnVmZmVyOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYXNVaW50OEFycmF5KCkuYnVmZmVyfX07dmFyIFRlPWZ1bmN0''@;'; + put 'put ''aW9uKFYsVCl7dmFyIEYsUz0iIjtmb3IoRj0wO0Y8VDtGKyspUys9U3RyaW5nLmZyb21DaGFyQ29kZSgyNTUmViksVj4+Pj04O3JldHVybiBTfSxFZT1mdW5jdGlvbigpe3ZhciBULFMsVj17fTtmb3IoVD0wO1Q8YXJndW1lbnRzLmxlbmd0aDtUKyspZm9yKFMgaW4gYXJndW1lbnRzW1RdKWFy''@;'; + put 'put ''Z3VtZW50c1tUXS5oYXNPd25Qcm9wZXJ0eShTKSYmdm9pZCAwPT09VltTXSYmKFZbU109YXJndW1lbnRzW1RdW1NdKTtyZXR1cm4gVn0sTz1mdW5jdGlvbihWLFQsUyl7dmFyIHllLEY9WS5nZXRUeXBlT2YoVCk7aWYoUz1mdW5jdGlvbihWKXtyZXR1cm4hMD09PShWPVZ8fHt9KS5iYXNlNjQm''@;'; + put 'put ''Jm51bGw9PVYuYmluYXJ5JiYoVi5iaW5hcnk9ITApLChWPUVlKFYsZWUpKS5kYXRlPVYuZGF0ZXx8bmV3IERhdGUsbnVsbCE9PVYuY29tcHJlc3Npb24mJihWLmNvbXByZXNzaW9uPVYuY29tcHJlc3Npb24udG9VcHBlckNhc2UoKSksVn0oUyksUy5jcmVhdGVGb2xkZXJzJiYoeWU9eihWKSkm''@;'; + put 'put ''Jm5lLmNhbGwodGhpcyx5ZSwhMCksUy5kaXJ8fG51bGw9PVQpUy5iYXNlNjQ9ITEsUy5iaW5hcnk9ITEsVD1udWxsO2Vsc2UgaWYoInN0cmluZyI9PT1GKVMuYmluYXJ5JiYhUy5iYXNlNjQmJiEwIT09Uy5vcHRpbWl6ZWRCaW5hcnlTdHJpbmcmJihUPVkuc3RyaW5nMmJpbmFyeShUKSk7ZWxz''@;'; + put 'put ''ZXtpZihTLmJhc2U2ND0hMSxTLmJpbmFyeT0hMCwhKEZ8fFQgaW5zdGFuY2VvZiBzZSkpdGhyb3cgbmV3IEVycm9yKCJUaGUgZGF0YSBvZiAnIitWKyInIGlzIGluIGFuIHVuc3VwcG9ydGVkIGZvcm1hdCAhIik7ImFycmF5YnVmZmVyIj09PUYmJihUPVkudHJhbnNmb3JtVG8oInVpbnQ4YXJy''@;'; + put 'put ''YXkiLFQpKX12YXIgQ2U9bmV3IEllKFYsVCxTKTtyZXR1cm4gdGhpcy5maWxlc1tWXT1DZSxDZX0sej1mdW5jdGlvbihWKXsiLyI9PVYuc2xpY2UoLTEpJiYoVj1WLnN1YnN0cmluZygwLFYubGVuZ3RoLTEpKTt2YXIgVD1WLmxhc3RJbmRleE9mKCIvIik7cmV0dXJuIFQ+MD9WLnN1YnN0cmlu''@;'; + put 'put ''ZygwLFQpOiIifSxuZT1mdW5jdGlvbihWLFQpe3JldHVybiIvIiE9Vi5zbGljZSgtMSkmJihWKz0iLyIpLFQ9dm9pZCAwIT09VCYmVCx0aGlzLmZpbGVzW1ZdfHxPLmNhbGwodGhpcyxWLG51bGwse2RpcjohMCxjcmVhdGVGb2xkZXJzOlR9KSx0aGlzLmZpbGVzW1ZdfSx0ZT1mdW5jdGlvbihW''@;'; + put 'put ''LFQpe3ZhciBGLFM9bmV3IHNlO3JldHVybiBWLl9kYXRhIGluc3RhbmNlb2Ygc2U/KFMudW5jb21wcmVzc2VkU2l6ZT1WLl9kYXRhLnVuY29tcHJlc3NlZFNpemUsUy5jcmMzMj1WLl9kYXRhLmNyYzMyLDA9PT1TLnVuY29tcHJlc3NlZFNpemV8fFYuZGlyPyhUPUouU1RPUkUsUy5jb21wcmVz''@;'; + put 'put ''c2VkQ29udGVudD0iIixTLmNyYzMyPTApOlYuX2RhdGEuY29tcHJlc3Npb25NZXRob2Q9PT1ULm1hZ2ljP1MuY29tcHJlc3NlZENvbnRlbnQ9Vi5fZGF0YS5nZXRDb21wcmVzc2VkQ29udGVudCgpOihGPVYuX2RhdGEuZ2V0Q29udGVudCgpLFMuY29tcHJlc3NlZENvbnRlbnQ9VC5jb21wcmVz''@;'; + put 'put ''cyhZLnRyYW5zZm9ybVRvKFQuY29tcHJlc3NJbnB1dFR5cGUsRikpKSk6KCghKEY9a2UoVikpfHwwPT09Ri5sZW5ndGh8fFYuZGlyKSYmKFQ9Si5TVE9SRSxGPSIiKSxTLnVuY29tcHJlc3NlZFNpemU9Ri5sZW5ndGgsUy5jcmMzMj1XKEYpLFMuY29tcHJlc3NlZENvbnRlbnQ9VC5jb21wcmVz''@;'; + put 'put ''cyhZLnRyYW5zZm9ybVRvKFQuY29tcHJlc3NJbnB1dFR5cGUsRikpKSxTLmNvbXByZXNzZWRTaXplPVMuY29tcHJlc3NlZENvbnRlbnQubGVuZ3RoLFMuY29tcHJlc3Npb25NZXRob2Q9VC5tYWdpYyxTfSx4PWZ1bmN0aW9uKFYsVCxTLEYpe3ZhciB3dCxtdCxCdCxvbixDZT1ZLnRyYW5zZm9y''@;'; + put 'put ''bVRvKCJzdHJpbmciLGNlLnV0ZjhlbmNvZGUoVC5uYW1lKSksRGU9VC5jb21tZW50fHwiIixQZT1ZLnRyYW5zZm9ybVRvKCJzdHJpbmciLGNlLnV0ZjhlbmNvZGUoRGUpKSxRZT1DZS5sZW5ndGghPT1ULm5hbWUubGVuZ3RoLCRlPVBlLmxlbmd0aCE9PURlLmxlbmd0aCxndD1ULm9wdGlvbnMs''@;'; + put 'put ''dnQ9IiIsQXQ9IiIsaHQ9IiI7QnQ9VC5faW5pdGlhbE1ldGFkYXRhLmRpciE9PVQuZGlyP1QuZGlyOmd0LmRpcix3dD0ob249VC5faW5pdGlhbE1ldGFkYXRhLmRhdGUhPT1ULmRhdGU/VC5kYXRlOmd0LmRhdGUpLmdldEhvdXJzKCksd3Q8PD02LHd0fD1vbi5nZXRNaW51dGVzKCksd3Q8PD01''@;'; + put 'put ''LHd0fD1vbi5nZXRTZWNvbmRzKCkvMixtdD1vbi5nZXRGdWxsWWVhcigpLTE5ODAsbXQ8PD00LG10fD1vbi5nZXRNb250aCgpKzEsbXQ8PD01LG10fD1vbi5nZXREYXRlKCksUWUmJihBdD1UZSgxLDEpK1RlKFcoQ2UpLDQpK0NlLHZ0Kz0idXAiK1RlKEF0Lmxlbmd0aCwyKStBdCksJGUmJiho''@;'; + put 'put ''dD1UZSgxLDEpK1RlKHRoaXMuY3JjMzIoUGUpLDQpK1BlLHZ0Kz0idWMiK1RlKGh0Lmxlbmd0aCwyKStodCk7dmFyIF90PSIiO3JldHVybiBfdCs9IlxuXDAiLF90Kz1RZXx8JGU/IlwwXGIiOiJcMFwwIixfdCs9Uy5jb21wcmVzc2lvbk1ldGhvZCxfdCs9VGUod3QsMiksX3QrPVRlKG10LDIp''@;'; + put 'put ''LF90Kz1UZShTLmNyYzMyLDQpLF90Kz1UZShTLmNvbXByZXNzZWRTaXplLDQpLF90Kz1UZShTLnVuY29tcHJlc3NlZFNpemUsNCksX3QrPVRlKENlLmxlbmd0aCwyKSxfdCs9VGUodnQubGVuZ3RoLDIpLHtmaWxlUmVjb3JkOk4uTE9DQUxfRklMRV9IRUFERVIrX3QrQ2UrdnQsZGlyUmVjb3Jk''@;'; + put 'put ''Ok4uQ0VOVFJBTF9GSUxFX0hFQURFUisiXHgxNFwwIitfdCtUZShQZS5sZW5ndGgsMikrIlwwXDBcMFwwIisoITA9PT1CdD8iXHgxMFwwXDBcMCI6IlwwXDBcMFwwIikrVGUoRiw0KStDZSt2dCtQZSxjb21wcmVzc2VkT2JqZWN0OlN9fSxQPXtsb2FkOmZ1bmN0aW9uKFYsVCl7dGhyb3cgbmV3''@;'; + put 'put ''IEVycm9yKCJMb2FkIG1ldGhvZCBpcyBub3QgZGVmaW5lZC4gSXMgdGhlIGZpbGUganN6aXAtbG9hZC5qcyBpbmNsdWRlZCA/Iil9LGZpbHRlcjpmdW5jdGlvbihWKXt2YXIgUyxGLHllLENlLFQ9W107Zm9yKFMgaW4gdGhpcy5maWxlcykhdGhpcy5maWxlcy5oYXNPd25Qcm9wZXJ0eShTKXx8''@;'; + put 'put ''KENlPW5ldyBJZSgoeWU9dGhpcy5maWxlc1tTXSkubmFtZSx5ZS5fZGF0YSxFZSh5ZS5vcHRpb25zKSksRj1TLnNsaWNlKHRoaXMucm9vdC5sZW5ndGgsUy5sZW5ndGgpLFMuc2xpY2UoMCx0aGlzLnJvb3QubGVuZ3RoKT09PXRoaXMucm9vdCYmVihGLENlKSYmVC5wdXNoKENlKSk7cmV0dXJu''@;'; + put 'put ''IFR9LGZpbGU6ZnVuY3Rpb24oVixULFMpe2lmKDE9PT1hcmd1bWVudHMubGVuZ3RoKXtpZihZLmlzUmVnRXhwKFYpKXt2YXIgRj1WO3JldHVybiB0aGlzLmZpbHRlcihmdW5jdGlvbih5ZSxDZSl7cmV0dXJuIUNlLmRpciYmRi50ZXN0KHllKX0pfXJldHVybiB0aGlzLmZpbHRlcihmdW5jdGlv''@;'; + put 'put ''bih5ZSxDZSl7cmV0dXJuIUNlLmRpciYmeWU9PT1WfSlbMF18fG51bGx9cmV0dXJuIE8uY2FsbCh0aGlzLFY9dGhpcy5yb290K1YsVCxTKSx0aGlzfSxmb2xkZXI6ZnVuY3Rpb24oVil7aWYoIVYpcmV0dXJuIHRoaXM7aWYoWS5pc1JlZ0V4cChWKSlyZXR1cm4gdGhpcy5maWx0ZXIoZnVuY3Rp''@;'; + put 'put ''b24oeWUsQ2Upe3JldHVybiBDZS5kaXImJlYudGVzdCh5ZSl9KTt2YXIgUz1uZS5jYWxsKHRoaXMsdGhpcy5yb290K1YpLEY9dGhpcy5jbG9uZSgpO3JldHVybiBGLnJvb3Q9Uy5uYW1lLEZ9LHJlbW92ZTpmdW5jdGlvbihWKXt2YXIgVD10aGlzLmZpbGVzW1Y9dGhpcy5yb290K1ZdO2lmKFR8''@;'; + put 'put ''fCgiLyIhPVYuc2xpY2UoLTEpJiYoVis9Ii8iKSxUPXRoaXMuZmlsZXNbVl0pLFQmJiFULmRpcilkZWxldGUgdGhpcy5maWxlc1tWXTtlbHNlIGZvcih2YXIgUz10aGlzLmZpbHRlcihmdW5jdGlvbih5ZSxDZSl7cmV0dXJuIENlLm5hbWUuc2xpY2UoMCxWLmxlbmd0aCk9PT1WfSksRj0wO0Y8''@;'; + put 'put ''Uy5sZW5ndGg7RisrKWRlbGV0ZSB0aGlzLmZpbGVzW1NbRl0ubmFtZV07cmV0dXJuIHRoaXN9LGdlbmVyYXRlOmZ1bmN0aW9uKFYpe1Y9RWUoVnx8e30se2Jhc2U2NDohMCxjb21wcmVzc2lvbjoiU1RPUkUiLHR5cGU6ImJhc2U2NCIsY29tbWVudDpudWxsfSksWS5jaGVja1N1cHBvcnQoVi50''@;'; + put 'put ''eXBlKTt2YXIgeWUsQ2UsdnQsVD1bXSxTPTAsRj0wLERlPVkudHJhbnNmb3JtVG8oInN0cmluZyIsdGhpcy51dGY4ZW5jb2RlKFYuY29tbWVudHx8dGhpcy5jb21tZW50fHwiIikpO2Zvcih2YXIgUGUgaW4gdGhpcy5maWxlcylpZih0aGlzLmZpbGVzLmhhc093blByb3BlcnR5KFBlKSl7dmFy''@;'; + put 'put ''IFFlPXRoaXMuZmlsZXNbUGVdLCRlPVFlLm9wdGlvbnMuY29tcHJlc3Npb258fFYuY29tcHJlc3Npb24udG9VcHBlckNhc2UoKSxndD1KWyRlXTtpZighZ3QpdGhyb3cgbmV3IEVycm9yKCRlKyIgaXMgbm90IGEgdmFsaWQgY29tcHJlc3Npb24gbWV0aG9kICEiKTt2YXIgd3Q9dGUuY2FsbCh0''@;'; + put 'put ''aGlzLFFlLGd0KSxtdD14LmNhbGwodGhpcyxQZSxRZSx3dCxTKTtTKz1tdC5maWxlUmVjb3JkLmxlbmd0aCt3dC5jb21wcmVzc2VkU2l6ZSxGKz1tdC5kaXJSZWNvcmQubGVuZ3RoLFQucHVzaChtdCl9dnQ9Ti5DRU5UUkFMX0RJUkVDVE9SWV9FTkQrIlwwXDBcMFwwIitUZShULmxlbmd0aCwy''@;'; + put 'put ''KStUZShULmxlbmd0aCwyKStUZShGLDQpK1RlKFMsNCkrVGUoRGUubGVuZ3RoLDIpK0RlO3ZhciBBdD1WLnR5cGUudG9Mb3dlckNhc2UoKTtmb3IoeWU9InVpbnQ4YXJyYXkiPT09QXR8fCJhcnJheWJ1ZmZlciI9PT1BdHx8ImJsb2IiPT09QXR8fCJub2RlYnVmZmVyIj09PUF0P25ldyB2ZShT''@;'; + put 'put ''K0YrdnQubGVuZ3RoKTpuZXcgZGUoUytGK3Z0Lmxlbmd0aCksQ2U9MDtDZTxULmxlbmd0aDtDZSsrKXllLmFwcGVuZChUW0NlXS5maWxlUmVjb3JkKSx5ZS5hcHBlbmQoVFtDZV0uY29tcHJlc3NlZE9iamVjdC5jb21wcmVzc2VkQ29udGVudCk7Zm9yKENlPTA7Q2U8VC5sZW5ndGg7Q2UrKyl5''@;'; + put 'put ''ZS5hcHBlbmQoVFtDZV0uZGlyUmVjb3JkKTt5ZS5hcHBlbmQodnQpO3ZhciBodD15ZS5maW5hbGl6ZSgpO3N3aXRjaChWLnR5cGUudG9Mb3dlckNhc2UoKSl7Y2FzZSJ1aW50OGFycmF5IjpjYXNlImFycmF5YnVmZmVyIjpjYXNlIm5vZGVidWZmZXIiOnJldHVybiBZLnRyYW5zZm9ybVRvKFYu''@;'; + put 'put ''dHlwZS50b0xvd2VyQ2FzZSgpLGh0KTtjYXNlImJsb2IiOnJldHVybiBZLmFycmF5QnVmZmVyMkJsb2IoWS50cmFuc2Zvcm1UbygiYXJyYXlidWZmZXIiLGh0KSk7Y2FzZSJiYXNlNjQiOnJldHVybiBWLmJhc2U2ND9xLmVuY29kZShodCk6aHQ7ZGVmYXVsdDpyZXR1cm4gaHR9fSxjcmMzMjpm''@;'; + put 'put ''dW5jdGlvbihWLFQpe3JldHVybiBXKFYsVCl9LHV0ZjhlbmNvZGU6ZnVuY3Rpb24oVil7cmV0dXJuIFkudHJhbnNmb3JtVG8oInN0cmluZyIsY2UudXRmOGVuY29kZShWKSl9LHV0ZjhkZWNvZGU6ZnVuY3Rpb24oVil7cmV0dXJuIGNlLnV0ZjhkZWNvZGUoVil9fTtaLmV4cG9ydHM9UH0seyIu''@;'; + put 'put ''L2Jhc2U2NCI6MSwiLi9jb21wcmVzc2VkT2JqZWN0IjoyLCIuL2NvbXByZXNzaW9ucyI6MywiLi9jcmMzMiI6NCwiLi9kZWZhdWx0cyI6NiwiLi9ub2RlQnVmZmVyIjoxMSwiLi9zaWduYXR1cmUiOjE0LCIuL3N0cmluZ1dyaXRlciI6MTYsIi4vc3VwcG9ydCI6MTcsIi4vdWludDhBcnJheVdy''@;'; + put 'put ''aXRlciI6MTksIi4vdXRmOCI6MjAsIi4vdXRpbHMiOjIxfV0sMTQ6W2Z1bmN0aW9uKFEsWixpZSl7InVzZSBzdHJpY3QiO2llLkxPQ0FMX0ZJTEVfSEVBREVSPSJQS1x4MDNceDA0IixpZS5DRU5UUkFMX0ZJTEVfSEVBREVSPSJQS1x4MDFceDAyIixpZS5DRU5UUkFMX0RJUkVDVE9SWV9FTkQ9''@;'; + put 'put ''IlBLXHgwNVx4MDYiLGllLlpJUDY0X0NFTlRSQUxfRElSRUNUT1JZX0xPQ0FUT1I9IlBLXHgwNlx4MDciLGllLlpJUDY0X0NFTlRSQUxfRElSRUNUT1JZX0VORD0iUEtceDA2XHgwNiIsaWUuREFUQV9ERVNDUklQVE9SPSJQS1x4MDdcYiJ9LHt9XSwxNTpbZnVuY3Rpb24oUSxaLGllKXsidXNl''@;'; + put 'put ''IHN0cmljdCI7dmFyIGFlPVEoIi4vZGF0YVJlYWRlciIpLFk9USgiLi91dGlscyIpO2Z1bmN0aW9uIFcoTixlZSl7dGhpcy5kYXRhPU4sZWV8fCh0aGlzLmRhdGE9WS5zdHJpbmcyYmluYXJ5KHRoaXMuZGF0YSkpLHRoaXMubGVuZ3RoPXRoaXMuZGF0YS5sZW5ndGgsdGhpcy5pbmRleD0wfShX''@;'; + put 'put ''LnByb3RvdHlwZT1uZXcgYWUpLmJ5dGVBdD1mdW5jdGlvbihOKXtyZXR1cm4gdGhpcy5kYXRhLmNoYXJDb2RlQXQoTil9LFcucHJvdG90eXBlLmxhc3RJbmRleE9mU2lnbmF0dXJlPWZ1bmN0aW9uKE4pe3JldHVybiB0aGlzLmRhdGEubGFzdEluZGV4T2YoTil9LFcucHJvdG90eXBlLnJlYWRE''@;'; + put 'put ''YXRhPWZ1bmN0aW9uKE4pe3RoaXMuY2hlY2tPZmZzZXQoTik7dmFyIGVlPXRoaXMuZGF0YS5zbGljZSh0aGlzLmluZGV4LHRoaXMuaW5kZXgrTik7cmV0dXJuIHRoaXMuaW5kZXgrPU4sZWV9LFouZXhwb3J0cz1XfSx7Ii4vZGF0YVJlYWRlciI6NSwiLi91dGlscyI6MjF9XSwxNjpbZnVuY3Rp''@;'; + put 'put ''b24oUSxaLGllKXsidXNlIHN0cmljdCI7dmFyIGFlPVEoIi4vdXRpbHMiKSxZPWZ1bmN0aW9uKCl7dGhpcy5kYXRhPVtdfTtZLnByb3RvdHlwZT17YXBwZW5kOmZ1bmN0aW9uKFcpe1c9YWUudHJhbnNmb3JtVG8oInN0cmluZyIsVyksdGhpcy5kYXRhLnB1c2goVyl9LGZpbmFsaXplOmZ1bmN0''@;'; + put 'put ''aW9uKCl7cmV0dXJuIHRoaXMuZGF0YS5qb2luKCIiKX19LFouZXhwb3J0cz1ZfSx7Ii4vdXRpbHMiOjIxfV0sMTc6W2Z1bmN0aW9uKFEsWixpZSl7KGZ1bmN0aW9uKGFlKXsidXNlIHN0cmljdCI7aWYoaWUuYmFzZTY0PSEwLGllLmFycmF5PSEwLGllLnN0cmluZz0hMCxpZS5hcnJheWJ1ZmZl''@;'; + put 'put ''cj0idW5kZWZpbmVkIiE9dHlwZW9mIEFycmF5QnVmZmVyJiYidW5kZWZpbmVkIiE9dHlwZW9mIFVpbnQ4QXJyYXksaWUubm9kZWJ1ZmZlcj12b2lkIDAhPT1hZSxpZS51aW50OGFycmF5PSJ1bmRlZmluZWQiIT10eXBlb2YgVWludDhBcnJheSwidW5kZWZpbmVkIj09dHlwZW9mIEFycmF5QnVm''@;'; + put 'put ''ZmVyKWllLmJsb2I9ITE7ZWxzZXt2YXIgWT1uZXcgQXJyYXlCdWZmZXIoMCk7dHJ5e2llLmJsb2I9MD09PW5ldyBCbG9iKFtZXSx7dHlwZToiYXBwbGljYXRpb24vemlwIn0pLnNpemV9Y2F0Y2goZWUpe3RyeXt2YXIgTj1uZXcod2luZG93LkJsb2JCdWlsZGVyfHx3aW5kb3cuV2ViS2l0Qmxv''@;'; + put 'put ''YkJ1aWxkZXJ8fHdpbmRvdy5Nb3pCbG9iQnVpbGRlcnx8d2luZG93Lk1TQmxvYkJ1aWxkZXIpO04uYXBwZW5kKFkpLGllLmJsb2I9MD09PU4uZ2V0QmxvYigiYXBwbGljYXRpb24vemlwIikuc2l6ZX1jYXRjaChxKXtpZS5ibG9iPSExfX19fSkuY2FsbCh0aGlzLCJ1bmRlZmluZWQiIT10eXBl''@;'; + put 'put ''b2YgQnVmZmVyP0J1ZmZlcjp2b2lkIDApfSx7fV0sMTg6W2Z1bmN0aW9uKFEsWixpZSl7InVzZSBzdHJpY3QiO3ZhciBhZT1RKCIuL2RhdGFSZWFkZXIiKTtmdW5jdGlvbiBZKFcpe1cmJih0aGlzLmRhdGE9Vyx0aGlzLmxlbmd0aD10aGlzLmRhdGEubGVuZ3RoLHRoaXMuaW5kZXg9MCl9KFku''@;'; + put 'put ''cHJvdG90eXBlPW5ldyBhZSkuYnl0ZUF0PWZ1bmN0aW9uKFcpe3JldHVybiB0aGlzLmRhdGFbV119LFkucHJvdG90eXBlLmxhc3RJbmRleE9mU2lnbmF0dXJlPWZ1bmN0aW9uKFcpe2Zvcih2YXIgTj1XLmNoYXJDb2RlQXQoMCksZWU9Vy5jaGFyQ29kZUF0KDEpLHE9Vy5jaGFyQ29kZUF0KDIp''@;'; + put 'put ''LEo9Vy5jaGFyQ29kZUF0KDMpLHNlPXRoaXMubGVuZ3RoLTQ7c2U+PTA7LS1zZSlpZih0aGlzLmRhdGFbc2VdPT09TiYmdGhpcy5kYXRhW3NlKzFdPT09ZWUmJnRoaXMuZGF0YVtzZSsyXT09PXEmJnRoaXMuZGF0YVtzZSszXT09PUopcmV0dXJuIHNlO3JldHVybi0xfSxZLnByb3RvdHlwZS5y''@;'; + put 'put ''ZWFkRGF0YT1mdW5jdGlvbihXKXtpZih0aGlzLmNoZWNrT2Zmc2V0KFcpLDA9PT1XKXJldHVybiBuZXcgVWludDhBcnJheSgwKTt2YXIgTj10aGlzLmRhdGEuc3ViYXJyYXkodGhpcy5pbmRleCx0aGlzLmluZGV4K1cpO3JldHVybiB0aGlzLmluZGV4Kz1XLE59LFouZXhwb3J0cz1ZfSx7Ii4v''@;'; + put 'put ''ZGF0YVJlYWRlciI6NX1dLDE5OltmdW5jdGlvbihRLFosaWUpeyJ1c2Ugc3RyaWN0Ijt2YXIgYWU9USgiLi91dGlscyIpLFk9ZnVuY3Rpb24oVyl7dGhpcy5kYXRhPW5ldyBVaW50OEFycmF5KFcpLHRoaXMuaW5kZXg9MH07WS5wcm90b3R5cGU9e2FwcGVuZDpmdW5jdGlvbihXKXswIT09Vy5s''@;'; + put 'put ''ZW5ndGgmJihXPWFlLnRyYW5zZm9ybVRvKCJ1aW50OGFycmF5IixXKSx0aGlzLmRhdGEuc2V0KFcsdGhpcy5pbmRleCksdGhpcy5pbmRleCs9Vy5sZW5ndGgpfSxmaW5hbGl6ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmRhdGF9fSxaLmV4cG9ydHM9WX0seyIuL3V0aWxzIjoyMX1dLDIwOltm''@;'; + put 'put ''dW5jdGlvbihRLFosaWUpeyJ1c2Ugc3RyaWN0Ijtmb3IodmFyIGFlPVEoIi4vdXRpbHMiKSxZPVEoIi4vc3VwcG9ydCIpLFc9USgiLi9ub2RlQnVmZmVyIiksTj1uZXcgQXJyYXkoMjU2KSxlZT0wO2VlPDI1NjtlZSsrKU5bZWVdPWVlPj0yNTI/NjplZT49MjQ4PzU6ZWU+PTI0MD80OmVlPj0y''@;'; + put 'put ''MjQ/MzplZT49MTkyPzI6MTtOWzI1NF09TlsyNTRdPTE7dmFyIEo9ZnVuY3Rpb24ob2UsY2Upe3ZhciBkZTtmb3IoKGNlPWNlfHxvZS5sZW5ndGgpPm9lLmxlbmd0aCYmKGNlPW9lLmxlbmd0aCksZGU9Y2UtMTtkZT49MCYmMTI4PT0oMTkyJm9lW2RlXSk7KWRlLS07cmV0dXJuIGRlPDB8fDA9''@;'; + put 'put ''PT1kZT9jZTpkZStOW29lW2RlXV0+Y2U/ZGU6Y2V9LHNlPWZ1bmN0aW9uKG9lKXt2YXIgZGUsdmUsQWUsa2UsU2U9b2UubGVuZ3RoLEllPW5ldyBBcnJheSgyKlNlKTtmb3IodmU9MCxkZT0wO2RlPFNlOylpZigoQWU9b2VbZGUrK10pPDEyOClJZVt2ZSsrXT1BZTtlbHNlIGlmKChrZT1OW0Fl''@;'; + put 'put ''XSk+NClJZVt2ZSsrXT02NTUzMyxkZSs9a2UtMTtlbHNle2ZvcihBZSY9Mj09PWtlPzMxOjM9PT1rZT8xNTo3O2tlPjEmJmRlPFNlOylBZT1BZTw8Nnw2MyZvZVtkZSsrXSxrZS0tO2tlPjE/SWVbdmUrK109NjU1MzM6QWU8NjU1MzY/SWVbdmUrK109QWU6KEllW3ZlKytdPTU1Mjk2fChBZS09''@;'; + put 'put ''NjU1MzYpPj4xMCYxMDIzLEllW3ZlKytdPTU2MzIwfDEwMjMmQWUpfXJldHVybiBJZS5sZW5ndGghPT12ZSYmKEllLnN1YmFycmF5P0llPUllLnN1YmFycmF5KDAsdmUpOkllLmxlbmd0aD12ZSksYWUuYXBwbHlGcm9tQ2hhckNvZGUoSWUpfTtpZS51dGY4ZW5jb2RlPWZ1bmN0aW9uKGNlKXty''@;'; + put 'put ''ZXR1cm4gWS5ub2RlYnVmZmVyP1coY2UsInV0Zi04Iik6ZnVuY3Rpb24ob2Upe3ZhciBjZSxkZSx2ZSxBZSxrZSxTZT1vZS5sZW5ndGgsSWU9MDtmb3IoQWU9MDtBZTxTZTtBZSsrKTU1Mjk2PT0oNjQ1MTImKGRlPW9lLmNoYXJDb2RlQXQoQWUpKSkmJkFlKzE8U2UmJjU2MzIwPT0oNjQ1MTIm''@;'; + put 'put ''KHZlPW9lLmNoYXJDb2RlQXQoQWUrMSkpKSYmKGRlPTY1NTM2KyhkZS01NTI5Njw8MTApKyh2ZS01NjMyMCksQWUrKyksSWUrPWRlPDEyOD8xOmRlPDIwNDg/MjpkZTw2NTUzNj8zOjQ7Zm9yKGNlPVkudWludDhhcnJheT9uZXcgVWludDhBcnJheShJZSk6bmV3IEFycmF5KEllKSxrZT0wLEFl''@;'; + put 'put ''PTA7a2U8SWU7QWUrKyk1NTI5Nj09KDY0NTEyJihkZT1vZS5jaGFyQ29kZUF0KEFlKSkpJiZBZSsxPFNlJiY1NjMyMD09KDY0NTEyJih2ZT1vZS5jaGFyQ29kZUF0KEFlKzEpKSkmJihkZT02NTUzNisoZGUtNTUyOTY8PDEwKSsodmUtNTYzMjApLEFlKyspLGRlPDEyOD9jZVtrZSsrXT1kZTpk''@;'; + put 'put ''ZTwyMDQ4PyhjZVtrZSsrXT0xOTJ8ZGU+Pj42LGNlW2tlKytdPTEyOHw2MyZkZSk6ZGU8NjU1MzY/KGNlW2tlKytdPTIyNHxkZT4+PjEyLGNlW2tlKytdPTEyOHxkZT4+PjYmNjMsY2Vba2UrK109MTI4fDYzJmRlKTooY2Vba2UrK109MjQwfGRlPj4+MTgsY2Vba2UrK109MTI4fGRlPj4+MTIm''@;'; + put 'put ''NjMsY2Vba2UrK109MTI4fGRlPj4+NiY2MyxjZVtrZSsrXT0xMjh8NjMmZGUpO3JldHVybiBjZX0oY2UpfSxpZS51dGY4ZGVjb2RlPWZ1bmN0aW9uKGNlKXtpZihZLm5vZGVidWZmZXIpcmV0dXJuIGFlLnRyYW5zZm9ybVRvKCJub2RlYnVmZmVyIixjZSkudG9TdHJpbmcoInV0Zi04Iik7Zm9y''@;'; + put 'put ''KHZhciBkZT1bXSx2ZT0wLEFlPShjZT1hZS50cmFuc2Zvcm1UbyhZLnVpbnQ4YXJyYXk/InVpbnQ4YXJyYXkiOiJhcnJheSIsY2UpKS5sZW5ndGg7dmU8QWU7KXt2YXIgU2U9SihjZSxNYXRoLm1pbih2ZSs2NTUzNixBZSkpO2RlLnB1c2goc2UoWS51aW50OGFycmF5P2NlLnN1YmFycmF5KHZl''@;'; + put 'put ''LFNlKTpjZS5zbGljZSh2ZSxTZSkpKSx2ZT1TZX1yZXR1cm4gZGUuam9pbigiIil9fSx7Ii4vbm9kZUJ1ZmZlciI6MTEsIi4vc3VwcG9ydCI6MTcsIi4vdXRpbHMiOjIxfV0sMjE6W2Z1bmN0aW9uKFEsWixpZSl7InVzZSBzdHJpY3QiO3ZhciBhZT1RKCIuL3N1cHBvcnQiKSxZPVEoIi4vY29t''@;'; + put 'put ''cHJlc3Npb25zIiksVz1RKCIuL25vZGVCdWZmZXIiKTtmdW5jdGlvbiBOKG9lKXtyZXR1cm4gb2V9ZnVuY3Rpb24gZWUob2UsY2Upe2Zvcih2YXIgZGU9MDtkZTxvZS5sZW5ndGg7KytkZSljZVtkZV09MjU1Jm9lLmNoYXJDb2RlQXQoZGUpO3JldHVybiBjZX1mdW5jdGlvbiBxKG9lKXt2YXIg''@;'; + put 'put ''Y2U9NjU1MzYsZGU9W10sdmU9b2UubGVuZ3RoLEFlPWllLmdldFR5cGVPZihvZSksa2U9MCxTZT0hMDt0cnl7c3dpdGNoKEFlKXtjYXNlInVpbnQ4YXJyYXkiOlN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVsbCxuZXcgVWludDhBcnJheSgwKSk7YnJlYWs7Y2FzZSJub2RlYnVmZmVyIjpT''@;'; + put 'put ''dHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsVygwKSl9fWNhdGNoKEVlKXtTZT0hMX1pZighU2Upe2Zvcih2YXIgSWU9IiIsVGU9MDtUZTxvZS5sZW5ndGg7VGUrKylJZSs9U3RyaW5nLmZyb21DaGFyQ29kZShvZVtUZV0pO3JldHVybiBJZX1mb3IoO2tlPHZlJiZjZT4xOyl0cnl7ZGUu''@;'; + put 'put ''cHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsImFycmF5Ij09PUFlfHwibm9kZWJ1ZmZlciI9PT1BZT9vZS5zbGljZShrZSxNYXRoLm1pbihrZStjZSx2ZSkpOm9lLnN1YmFycmF5KGtlLE1hdGgubWluKGtlK2NlLHZlKSkpKSxrZSs9Y2V9Y2F0Y2goRWUpe2NlPU1hdGguZmxv''@;'; + put 'put ''b3IoY2UvMil9cmV0dXJuIGRlLmpvaW4oIiIpfWZ1bmN0aW9uIEoob2UsY2Upe2Zvcih2YXIgZGU9MDtkZTxvZS5sZW5ndGg7ZGUrKyljZVtkZV09b2VbZGVdO3JldHVybiBjZX1pZS5zdHJpbmcyYmluYXJ5PWZ1bmN0aW9uKG9lKXtmb3IodmFyIGNlPSIiLGRlPTA7ZGU8b2UubGVuZ3RoO2Rl''@;'; + put 'put ''KyspY2UrPVN0cmluZy5mcm9tQ2hhckNvZGUoMjU1Jm9lLmNoYXJDb2RlQXQoZGUpKTtyZXR1cm4gY2V9LGllLmFycmF5QnVmZmVyMkJsb2I9ZnVuY3Rpb24ob2Upe2llLmNoZWNrU3VwcG9ydCgiYmxvYiIpO3RyeXtyZXR1cm4gbmV3IEJsb2IoW29lXSx7dHlwZToiYXBwbGljYXRpb24vemlw''@;'; + put 'put ''In0pfWNhdGNoKHZlKXt0cnl7dmFyIGRlPW5ldyh3aW5kb3cuQmxvYkJ1aWxkZXJ8fHdpbmRvdy5XZWJLaXRCbG9iQnVpbGRlcnx8d2luZG93Lk1vekJsb2JCdWlsZGVyfHx3aW5kb3cuTVNCbG9iQnVpbGRlcik7cmV0dXJuIGRlLmFwcGVuZChvZSksZGUuZ2V0QmxvYigiYXBwbGljYXRpb24v''@;'; + put 'put ''emlwIil9Y2F0Y2goQWUpe3Rocm93IG5ldyBFcnJvcigiQnVnIDogY2FuJ3QgY29uc3RydWN0IHRoZSBCbG9iLiIpfX19LGllLmFwcGx5RnJvbUNoYXJDb2RlPXE7dmFyIHNlPXt9O3NlLnN0cmluZz17c3RyaW5nOk4sYXJyYXk6ZnVuY3Rpb24ob2Upe3JldHVybiBlZShvZSxuZXcgQXJyYXko''@;'; + put 'put ''b2UubGVuZ3RoKSl9LGFycmF5YnVmZmVyOmZ1bmN0aW9uKG9lKXtyZXR1cm4gc2Uuc3RyaW5nLnVpbnQ4YXJyYXkob2UpLmJ1ZmZlcn0sdWludDhhcnJheTpmdW5jdGlvbihvZSl7cmV0dXJuIGVlKG9lLG5ldyBVaW50OEFycmF5KG9lLmxlbmd0aCkpfSxub2RlYnVmZmVyOmZ1bmN0aW9uKG9l''@;'; + put 'put ''KXtyZXR1cm4gZWUob2UsVyhvZS5sZW5ndGgpKX19LHNlLmFycmF5PXtzdHJpbmc6cSxhcnJheTpOLGFycmF5YnVmZmVyOmZ1bmN0aW9uKG9lKXtyZXR1cm4gbmV3IFVpbnQ4QXJyYXkob2UpLmJ1ZmZlcn0sdWludDhhcnJheTpmdW5jdGlvbihvZSl7cmV0dXJuIG5ldyBVaW50OEFycmF5KG9l''@;'; + put 'put ''KX0sbm9kZWJ1ZmZlcjpmdW5jdGlvbihvZSl7cmV0dXJuIFcob2UpfX0sc2UuYXJyYXlidWZmZXI9e3N0cmluZzpmdW5jdGlvbihvZSl7cmV0dXJuIHEobmV3IFVpbnQ4QXJyYXkob2UpKX0sYXJyYXk6ZnVuY3Rpb24ob2Upe3JldHVybiBKKG5ldyBVaW50OEFycmF5KG9lKSxuZXcgQXJyYXko''@;'; + put 'put ''b2UuYnl0ZUxlbmd0aCkpfSxhcnJheWJ1ZmZlcjpOLHVpbnQ4YXJyYXk6ZnVuY3Rpb24ob2Upe3JldHVybiBuZXcgVWludDhBcnJheShvZSl9LG5vZGVidWZmZXI6ZnVuY3Rpb24ob2Upe3JldHVybiBXKG5ldyBVaW50OEFycmF5KG9lKSl9fSxzZS51aW50OGFycmF5PXtzdHJpbmc6cSxhcnJh''@;'; + put 'put ''eTpmdW5jdGlvbihvZSl7cmV0dXJuIEoob2UsbmV3IEFycmF5KG9lLmxlbmd0aCkpfSxhcnJheWJ1ZmZlcjpmdW5jdGlvbihvZSl7cmV0dXJuIG9lLmJ1ZmZlcn0sdWludDhhcnJheTpOLG5vZGVidWZmZXI6ZnVuY3Rpb24ob2Upe3JldHVybiBXKG9lKX19LHNlLm5vZGVidWZmZXI9e3N0cmlu''@;'; + put 'put ''ZzpxLGFycmF5OmZ1bmN0aW9uKG9lKXtyZXR1cm4gSihvZSxuZXcgQXJyYXkob2UubGVuZ3RoKSl9LGFycmF5YnVmZmVyOmZ1bmN0aW9uKG9lKXtyZXR1cm4gc2Uubm9kZWJ1ZmZlci51aW50OGFycmF5KG9lKS5idWZmZXJ9LHVpbnQ4YXJyYXk6ZnVuY3Rpb24ob2Upe3JldHVybiBKKG9lLG5l''@;'; + put 'put ''dyBVaW50OEFycmF5KG9lLmxlbmd0aCkpfSxub2RlYnVmZmVyOk59LGllLnRyYW5zZm9ybVRvPWZ1bmN0aW9uKG9lLGNlKXtpZihjZXx8KGNlPSIiKSwhb2UpcmV0dXJuIGNlO2llLmNoZWNrU3VwcG9ydChvZSk7dmFyIGRlPWllLmdldFR5cGVPZihjZSk7cmV0dXJuIHNlW2RlXVtvZV0oY2Up''@;'; + put 'put ''fSxpZS5nZXRUeXBlT2Y9ZnVuY3Rpb24ob2Upe3JldHVybiJzdHJpbmciPT10eXBlb2Ygb2U/InN0cmluZyI6IltvYmplY3QgQXJyYXldIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChvZSk/ImFycmF5IjphZS5ub2RlYnVmZmVyJiZXLnRlc3Qob2UpPyJub2RlYnVmZmVyIjph''@;'; + put 'put ''ZS51aW50OGFycmF5JiZvZSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXk/InVpbnQ4YXJyYXkiOmFlLmFycmF5YnVmZmVyJiZvZSBpbnN0YW5jZW9mIEFycmF5QnVmZmVyPyJhcnJheWJ1ZmZlciI6dm9pZCAwfSxpZS5jaGVja1N1cHBvcnQ9ZnVuY3Rpb24ob2Upe2lmKCFhZVtvZS50b0xvd2VyQ2Fz''@;'; + put 'put ''ZSgpXSl0aHJvdyBuZXcgRXJyb3Iob2UrIiBpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoaXMgYnJvd3NlciIpfSxpZS5NQVhfVkFMVUVfMTZCSVRTPTY1NTM1LGllLk1BWF9WQUxVRV8zMkJJVFM9LTEsaWUucHJldHR5PWZ1bmN0aW9uKG9lKXt2YXIgZGUsdmUsY2U9IiI7Zm9yKHZlPTA7dmU8KG9l''@;'; + put 'put ''fHwiIikubGVuZ3RoO3ZlKyspY2UrPSJcXHgiKygoZGU9b2UuY2hhckNvZGVBdCh2ZSkpPDE2PyIwIjoiIikrZGUudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCk7cmV0dXJuIGNlfSxpZS5maW5kQ29tcHJlc3Npb249ZnVuY3Rpb24ob2Upe2Zvcih2YXIgY2UgaW4gWSlpZihZLmhhc093blBy''@;'; + put 'put ''b3BlcnR5KGNlKSYmWVtjZV0ubWFnaWM9PT1vZSlyZXR1cm4gWVtjZV07cmV0dXJuIG51bGx9LGllLmlzUmVnRXhwPWZ1bmN0aW9uKG9lKXtyZXR1cm4iW29iamVjdCBSZWdFeHBdIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChvZSl9fSx7Ii4vY29tcHJlc3Npb25zIjozLCIu''@;'; + put 'put ''L25vZGVCdWZmZXIiOjExLCIuL3N1cHBvcnQiOjE3fV0sMjI6W2Z1bmN0aW9uKFEsWixpZSl7InVzZSBzdHJpY3QiO3ZhciBhZT1RKCIuL3N0cmluZ1JlYWRlciIpLFk9USgiLi9ub2RlQnVmZmVyUmVhZGVyIiksVz1RKCIuL3VpbnQ4QXJyYXlSZWFkZXIiKSxOPVEoIi4vdXRpbHMiKSxlZT1R''@;'; + put 'put ''KCIuL3NpZ25hdHVyZSIpLHE9USgiLi96aXBFbnRyeSIpLEo9USgiLi9zdXBwb3J0Iiksc2U9USgiLi9vYmplY3QiKTtmdW5jdGlvbiBvZShjZSxkZSl7dGhpcy5maWxlcz1bXSx0aGlzLmxvYWRPcHRpb25zPWRlLGNlJiZ0aGlzLmxvYWQoY2UpfW9lLnByb3RvdHlwZT17Y2hlY2tTaWduYXR1''@;'; + put 'put ''cmU6ZnVuY3Rpb24oY2Upe3ZhciBkZT10aGlzLnJlYWRlci5yZWFkU3RyaW5nKDQpO2lmKGRlIT09Y2UpdGhyb3cgbmV3IEVycm9yKCJDb3JydXB0ZWQgemlwIG9yIGJ1ZyA6IHVuZXhwZWN0ZWQgc2lnbmF0dXJlICgiK04ucHJldHR5KGRlKSsiLCBleHBlY3RlZCAiK04ucHJldHR5KGNlKSsi''@;'; + put 'put ''KSIpfSxyZWFkQmxvY2tFbmRPZkNlbnRyYWw6ZnVuY3Rpb24oKXt0aGlzLmRpc2tOdW1iZXI9dGhpcy5yZWFkZXIucmVhZEludCgyKSx0aGlzLmRpc2tXaXRoQ2VudHJhbERpclN0YXJ0PXRoaXMucmVhZGVyLnJlYWRJbnQoMiksdGhpcy5jZW50cmFsRGlyUmVjb3Jkc09uVGhpc0Rpc2s9dGhp''@;'; + put 'put ''cy5yZWFkZXIucmVhZEludCgyKSx0aGlzLmNlbnRyYWxEaXJSZWNvcmRzPXRoaXMucmVhZGVyLnJlYWRJbnQoMiksdGhpcy5jZW50cmFsRGlyU2l6ZT10aGlzLnJlYWRlci5yZWFkSW50KDQpLHRoaXMuY2VudHJhbERpck9mZnNldD10aGlzLnJlYWRlci5yZWFkSW50KDQpLHRoaXMuemlwQ29t''@;'; + put 'put ''bWVudExlbmd0aD10aGlzLnJlYWRlci5yZWFkSW50KDIpLHRoaXMuemlwQ29tbWVudD10aGlzLnJlYWRlci5yZWFkU3RyaW5nKHRoaXMuemlwQ29tbWVudExlbmd0aCksdGhpcy56aXBDb21tZW50PXNlLnV0ZjhkZWNvZGUodGhpcy56aXBDb21tZW50KX0scmVhZEJsb2NrWmlwNjRFbmRPZkNl''@;'; + put 'put ''bnRyYWw6ZnVuY3Rpb24oKXt0aGlzLnppcDY0RW5kT2ZDZW50cmFsU2l6ZT10aGlzLnJlYWRlci5yZWFkSW50KDgpLHRoaXMudmVyc2lvbk1hZGVCeT10aGlzLnJlYWRlci5yZWFkU3RyaW5nKDIpLHRoaXMudmVyc2lvbk5lZWRlZD10aGlzLnJlYWRlci5yZWFkSW50KDIpLHRoaXMuZGlza051''@;'; + put 'put ''bWJlcj10aGlzLnJlYWRlci5yZWFkSW50KDQpLHRoaXMuZGlza1dpdGhDZW50cmFsRGlyU3RhcnQ9dGhpcy5yZWFkZXIucmVhZEludCg0KSx0aGlzLmNlbnRyYWxEaXJSZWNvcmRzT25UaGlzRGlzaz10aGlzLnJlYWRlci5yZWFkSW50KDgpLHRoaXMuY2VudHJhbERpclJlY29yZHM9dGhpcy5y''@;'; + put 'put ''ZWFkZXIucmVhZEludCg4KSx0aGlzLmNlbnRyYWxEaXJTaXplPXRoaXMucmVhZGVyLnJlYWRJbnQoOCksdGhpcy5jZW50cmFsRGlyT2Zmc2V0PXRoaXMucmVhZGVyLnJlYWRJbnQoOCksdGhpcy56aXA2NEV4dGVuc2libGVEYXRhPXt9O2Zvcih2YXIgdmUsQWUsa2UsY2U9dGhpcy56aXA2NEVu''@;'; + put 'put ''ZE9mQ2VudHJhbFNpemUtNDQ7MDxjZTspdmU9dGhpcy5yZWFkZXIucmVhZEludCgyKSxBZT10aGlzLnJlYWRlci5yZWFkSW50KDQpLGtlPXRoaXMucmVhZGVyLnJlYWRTdHJpbmcoQWUpLHRoaXMuemlwNjRFeHRlbnNpYmxlRGF0YVt2ZV09e2lkOnZlLGxlbmd0aDpBZSx2YWx1ZTprZX19LHJl''@;'; + put 'put ''YWRCbG9ja1ppcDY0RW5kT2ZDZW50cmFsTG9jYXRvcjpmdW5jdGlvbigpe2lmKHRoaXMuZGlza1dpdGhaaXA2NENlbnRyYWxEaXJTdGFydD10aGlzLnJlYWRlci5yZWFkSW50KDQpLHRoaXMucmVsYXRpdmVPZmZzZXRFbmRPZlppcDY0Q2VudHJhbERpcj10aGlzLnJlYWRlci5yZWFkSW50KDgp''@;'; + put 'put ''LHRoaXMuZGlza3NDb3VudD10aGlzLnJlYWRlci5yZWFkSW50KDQpLHRoaXMuZGlza3NDb3VudD4xKXRocm93IG5ldyBFcnJvcigiTXVsdGktdm9sdW1lcyB6aXAgYXJlIG5vdCBzdXBwb3J0ZWQiKX0scmVhZExvY2FsRmlsZXM6ZnVuY3Rpb24oKXt2YXIgY2UsZGU7Zm9yKGNlPTA7Y2U8dGhp''@;'; + put 'put ''cy5maWxlcy5sZW5ndGg7Y2UrKyl0aGlzLnJlYWRlci5zZXRJbmRleCgoZGU9dGhpcy5maWxlc1tjZV0pLmxvY2FsSGVhZGVyT2Zmc2V0KSx0aGlzLmNoZWNrU2lnbmF0dXJlKGVlLkxPQ0FMX0ZJTEVfSEVBREVSKSxkZS5yZWFkTG9jYWxQYXJ0KHRoaXMucmVhZGVyKSxkZS5oYW5kbGVVVEY4''@;'; + put 'put ''KCl9LHJlYWRDZW50cmFsRGlyOmZ1bmN0aW9uKCl7dmFyIGNlO2Zvcih0aGlzLnJlYWRlci5zZXRJbmRleCh0aGlzLmNlbnRyYWxEaXJPZmZzZXQpO3RoaXMucmVhZGVyLnJlYWRTdHJpbmcoNCk9PT1lZS5DRU5UUkFMX0ZJTEVfSEVBREVSOykoY2U9bmV3IHEoe3ppcDY0OnRoaXMuemlwNjR9''@;'; + put 'put ''LHRoaXMubG9hZE9wdGlvbnMpKS5yZWFkQ2VudHJhbFBhcnQodGhpcy5yZWFkZXIpLHRoaXMuZmlsZXMucHVzaChjZSl9LHJlYWRFbmRPZkNlbnRyYWw6ZnVuY3Rpb24oKXt2YXIgY2U9dGhpcy5yZWFkZXIubGFzdEluZGV4T2ZTaWduYXR1cmUoZWUuQ0VOVFJBTF9ESVJFQ1RPUllfRU5EKTtp''@;'; + put 'put ''ZigtMT09PWNlKXRocm93IG5ldyBFcnJvcigiQ29ycnVwdGVkIHppcCA6IGNhbid0IGZpbmQgZW5kIG9mIGNlbnRyYWwgZGlyZWN0b3J5Iik7aWYodGhpcy5yZWFkZXIuc2V0SW5kZXgoY2UpLHRoaXMuY2hlY2tTaWduYXR1cmUoZWUuQ0VOVFJBTF9ESVJFQ1RPUllfRU5EKSx0aGlzLnJlYWRC''@;'; + put 'put ''bG9ja0VuZE9mQ2VudHJhbCgpLHRoaXMuZGlza051bWJlcj09PU4uTUFYX1ZBTFVFXzE2QklUU3x8dGhpcy5kaXNrV2l0aENlbnRyYWxEaXJTdGFydD09PU4uTUFYX1ZBTFVFXzE2QklUU3x8dGhpcy5jZW50cmFsRGlyUmVjb3Jkc09uVGhpc0Rpc2s9PT1OLk1BWF9WQUxVRV8xNkJJVFN8fHRo''@;'; + put 'put ''aXMuY2VudHJhbERpclJlY29yZHM9PT1OLk1BWF9WQUxVRV8xNkJJVFN8fHRoaXMuY2VudHJhbERpclNpemU9PT1OLk1BWF9WQUxVRV8zMkJJVFN8fHRoaXMuY2VudHJhbERpck9mZnNldD09PU4uTUFYX1ZBTFVFXzMyQklUUyl7aWYodGhpcy56aXA2ND0hMCwtMT09PShjZT10aGlzLnJlYWRl''@;'; + put 'put ''ci5sYXN0SW5kZXhPZlNpZ25hdHVyZShlZS5aSVA2NF9DRU5UUkFMX0RJUkVDVE9SWV9MT0NBVE9SKSkpdGhyb3cgbmV3IEVycm9yKCJDb3JydXB0ZWQgemlwIDogY2FuJ3QgZmluZCB0aGUgWklQNjQgZW5kIG9mIGNlbnRyYWwgZGlyZWN0b3J5IGxvY2F0b3IiKTt0aGlzLnJlYWRlci5zZXRJ''@;'; + put 'put ''bmRleChjZSksdGhpcy5jaGVja1NpZ25hdHVyZShlZS5aSVA2NF9DRU5UUkFMX0RJUkVDVE9SWV9MT0NBVE9SKSx0aGlzLnJlYWRCbG9ja1ppcDY0RW5kT2ZDZW50cmFsTG9jYXRvcigpLHRoaXMucmVhZGVyLnNldEluZGV4KHRoaXMucmVsYXRpdmVPZmZzZXRFbmRPZlppcDY0Q2VudHJhbERp''@;'; + put 'put ''ciksdGhpcy5jaGVja1NpZ25hdHVyZShlZS5aSVA2NF9DRU5UUkFMX0RJUkVDVE9SWV9FTkQpLHRoaXMucmVhZEJsb2NrWmlwNjRFbmRPZkNlbnRyYWwoKX19LHByZXBhcmVSZWFkZXI6ZnVuY3Rpb24oY2Upe3ZhciBkZT1OLmdldFR5cGVPZihjZSk7dGhpcy5yZWFkZXI9InN0cmluZyIhPT1k''@;'; + put 'put ''ZXx8Si51aW50OGFycmF5PyJub2RlYnVmZmVyIj09PWRlP25ldyBZKGNlKTpuZXcgVyhOLnRyYW5zZm9ybVRvKCJ1aW50OGFycmF5IixjZSkpOm5ldyBhZShjZSx0aGlzLmxvYWRPcHRpb25zLm9wdGltaXplZEJpbmFyeVN0cmluZyl9LGxvYWQ6ZnVuY3Rpb24oY2Upe3RoaXMucHJlcGFyZVJl''@;'; + put 'put ''YWRlcihjZSksdGhpcy5yZWFkRW5kT2ZDZW50cmFsKCksdGhpcy5yZWFkQ2VudHJhbERpcigpLHRoaXMucmVhZExvY2FsRmlsZXMoKX19LFouZXhwb3J0cz1vZX0seyIuL25vZGVCdWZmZXJSZWFkZXIiOjEyLCIuL29iamVjdCI6MTMsIi4vc2lnbmF0dXJlIjoxNCwiLi9zdHJpbmdSZWFkZXIi''@;'; + put 'put ''OjE1LCIuL3N1cHBvcnQiOjE3LCIuL3VpbnQ4QXJyYXlSZWFkZXIiOjE4LCIuL3V0aWxzIjoyMSwiLi96aXBFbnRyeSI6MjN9XSwyMzpbZnVuY3Rpb24oUSxaLGllKXsidXNlIHN0cmljdCI7dmFyIGFlPVEoIi4vc3RyaW5nUmVhZGVyIiksWT1RKCIuL3V0aWxzIiksVz1RKCIuL2NvbXByZXNz''@;'; + put 'put ''ZWRPYmplY3QiKSxOPVEoIi4vb2JqZWN0Iik7ZnVuY3Rpb24gZWUocSxKKXt0aGlzLm9wdGlvbnM9cSx0aGlzLmxvYWRPcHRpb25zPUp9ZWUucHJvdG90eXBlPXtpc0VuY3J5cHRlZDpmdW5jdGlvbigpe3JldHVybiAxPT0oMSZ0aGlzLmJpdEZsYWcpfSx1c2VVVEY4OmZ1bmN0aW9uKCl7cmV0''@;'; + put 'put ''dXJuIDIwNDg9PSgyMDQ4JnRoaXMuYml0RmxhZyl9LHByZXBhcmVDb21wcmVzc2VkQ29udGVudDpmdW5jdGlvbihxLEosc2Upe3JldHVybiBmdW5jdGlvbigpe3ZhciBvZT1xLmluZGV4O3Euc2V0SW5kZXgoSik7dmFyIGNlPXEucmVhZERhdGEoc2UpO3JldHVybiBxLnNldEluZGV4KG9lKSxj''@;'; + put 'put ''ZX19LHByZXBhcmVDb250ZW50OmZ1bmN0aW9uKHEsSixzZSxvZSxjZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGRlPVkudHJhbnNmb3JtVG8ob2UudW5jb21wcmVzc0lucHV0VHlwZSx0aGlzLmdldENvbXByZXNzZWRDb250ZW50KCkpLHZlPW9lLnVuY29tcHJlc3MoZGUpO2lmKHZlLmxlbmd0''@;'; + put 'put ''aCE9PWNlKXRocm93IG5ldyBFcnJvcigiQnVnIDogdW5jb21wcmVzc2VkIGRhdGEgc2l6ZSBtaXNtYXRjaCIpO3JldHVybiB2ZX19LHJlYWRMb2NhbFBhcnQ6ZnVuY3Rpb24ocSl7dmFyIEosc2U7aWYocS5za2lwKDIyKSx0aGlzLmZpbGVOYW1lTGVuZ3RoPXEucmVhZEludCgyKSxzZT1xLnJl''@;'; + put 'put ''YWRJbnQoMiksdGhpcy5maWxlTmFtZT1xLnJlYWRTdHJpbmcodGhpcy5maWxlTmFtZUxlbmd0aCkscS5za2lwKHNlKSwtMT09dGhpcy5jb21wcmVzc2VkU2l6ZXx8LTE9PXRoaXMudW5jb21wcmVzc2VkU2l6ZSl0aHJvdyBuZXcgRXJyb3IoIkJ1ZyBvciBjb3JydXB0ZWQgemlwIDogZGlkbid0''@;'; + put 'put ''IGdldCBlbm91Z2ggaW5mb3JtYXRpb25zIGZyb20gdGhlIGNlbnRyYWwgZGlyZWN0b3J5IChjb21wcmVzc2VkU2l6ZSA9PSAtMSB8fCB1bmNvbXByZXNzZWRTaXplID09IC0xKSIpO2lmKG51bGw9PT0oSj1ZLmZpbmRDb21wcmVzc2lvbih0aGlzLmNvbXByZXNzaW9uTWV0aG9kKSkpdGhyb3cg''@;'; + put 'put ''bmV3IEVycm9yKCJDb3JydXB0ZWQgemlwIDogY29tcHJlc3Npb24gIitZLnByZXR0eSh0aGlzLmNvbXByZXNzaW9uTWV0aG9kKSsiIHVua25vd24gKGlubmVyIGZpbGUgOiAiK3RoaXMuZmlsZU5hbWUrIikiKTtpZih0aGlzLmRlY29tcHJlc3NlZD1uZXcgVyx0aGlzLmRlY29tcHJlc3NlZC5j''@;'; + put 'put ''b21wcmVzc2VkU2l6ZT10aGlzLmNvbXByZXNzZWRTaXplLHRoaXMuZGVjb21wcmVzc2VkLnVuY29tcHJlc3NlZFNpemU9dGhpcy51bmNvbXByZXNzZWRTaXplLHRoaXMuZGVjb21wcmVzc2VkLmNyYzMyPXRoaXMuY3JjMzIsdGhpcy5kZWNvbXByZXNzZWQuY29tcHJlc3Npb25NZXRob2Q9dGhp''@;'; + put 'put ''cy5jb21wcmVzc2lvbk1ldGhvZCx0aGlzLmRlY29tcHJlc3NlZC5nZXRDb21wcmVzc2VkQ29udGVudD10aGlzLnByZXBhcmVDb21wcmVzc2VkQ29udGVudChxLHEuaW5kZXgsdGhpcy5jb21wcmVzc2VkU2l6ZSxKKSx0aGlzLmRlY29tcHJlc3NlZC5nZXRDb250ZW50PXRoaXMucHJlcGFyZUNv''@;'; + put 'put ''bnRlbnQocSxxLmluZGV4LHRoaXMuY29tcHJlc3NlZFNpemUsSix0aGlzLnVuY29tcHJlc3NlZFNpemUpLHRoaXMubG9hZE9wdGlvbnMuY2hlY2tDUkMzMiYmKHRoaXMuZGVjb21wcmVzc2VkPVkudHJhbnNmb3JtVG8oInN0cmluZyIsdGhpcy5kZWNvbXByZXNzZWQuZ2V0Q29udGVudCgpKSxO''@;'; + put 'put ''LmNyYzMyKHRoaXMuZGVjb21wcmVzc2VkKSE9PXRoaXMuY3JjMzIpKXRocm93IG5ldyBFcnJvcigiQ29ycnVwdGVkIHppcCA6IENSQzMyIG1pc21hdGNoIil9LHJlYWRDZW50cmFsUGFydDpmdW5jdGlvbihxKXtpZih0aGlzLnZlcnNpb25NYWRlQnk9cS5yZWFkU3RyaW5nKDIpLHRoaXMudmVy''@;'; + put 'put ''c2lvbk5lZWRlZD1xLnJlYWRJbnQoMiksdGhpcy5iaXRGbGFnPXEucmVhZEludCgyKSx0aGlzLmNvbXByZXNzaW9uTWV0aG9kPXEucmVhZFN0cmluZygyKSx0aGlzLmRhdGU9cS5yZWFkRGF0ZSgpLHRoaXMuY3JjMzI9cS5yZWFkSW50KDQpLHRoaXMuY29tcHJlc3NlZFNpemU9cS5yZWFkSW50''@;'; + put 'put ''KDQpLHRoaXMudW5jb21wcmVzc2VkU2l6ZT1xLnJlYWRJbnQoNCksdGhpcy5maWxlTmFtZUxlbmd0aD1xLnJlYWRJbnQoMiksdGhpcy5leHRyYUZpZWxkc0xlbmd0aD1xLnJlYWRJbnQoMiksdGhpcy5maWxlQ29tbWVudExlbmd0aD1xLnJlYWRJbnQoMiksdGhpcy5kaXNrTnVtYmVyU3RhcnQ9''@;'; + put 'put ''cS5yZWFkSW50KDIpLHRoaXMuaW50ZXJuYWxGaWxlQXR0cmlidXRlcz1xLnJlYWRJbnQoMiksdGhpcy5leHRlcm5hbEZpbGVBdHRyaWJ1dGVzPXEucmVhZEludCg0KSx0aGlzLmxvY2FsSGVhZGVyT2Zmc2V0PXEucmVhZEludCg0KSx0aGlzLmlzRW5jcnlwdGVkKCkpdGhyb3cgbmV3IEVycm9y''@;'; + put 'put ''KCJFbmNyeXB0ZWQgemlwIGFyZSBub3Qgc3VwcG9ydGVkIik7dGhpcy5maWxlTmFtZT1xLnJlYWRTdHJpbmcodGhpcy5maWxlTmFtZUxlbmd0aCksdGhpcy5yZWFkRXh0cmFGaWVsZHMocSksdGhpcy5wYXJzZVpJUDY0RXh0cmFGaWVsZChxKSx0aGlzLmZpbGVDb21tZW50PXEucmVhZFN0cmlu''@;'; + put 'put ''Zyh0aGlzLmZpbGVDb21tZW50TGVuZ3RoKSx0aGlzLmRpcj0hISgxNiZ0aGlzLmV4dGVybmFsRmlsZUF0dHJpYnV0ZXMpfSxwYXJzZVpJUDY0RXh0cmFGaWVsZDpmdW5jdGlvbihxKXtpZih0aGlzLmV4dHJhRmllbGRzWzFdKXt2YXIgSj1uZXcgYWUodGhpcy5leHRyYUZpZWxkc1sxXS52YWx1''@;'; + put 'put ''ZSk7dGhpcy51bmNvbXByZXNzZWRTaXplPT09WS5NQVhfVkFMVUVfMzJCSVRTJiYodGhpcy51bmNvbXByZXNzZWRTaXplPUoucmVhZEludCg4KSksdGhpcy5jb21wcmVzc2VkU2l6ZT09PVkuTUFYX1ZBTFVFXzMyQklUUyYmKHRoaXMuY29tcHJlc3NlZFNpemU9Si5yZWFkSW50KDgpKSx0aGlz''@;'; + put 'put ''LmxvY2FsSGVhZGVyT2Zmc2V0PT09WS5NQVhfVkFMVUVfMzJCSVRTJiYodGhpcy5sb2NhbEhlYWRlck9mZnNldD1KLnJlYWRJbnQoOCkpLHRoaXMuZGlza051bWJlclN0YXJ0PT09WS5NQVhfVkFMVUVfMzJCSVRTJiYodGhpcy5kaXNrTnVtYmVyU3RhcnQ9Si5yZWFkSW50KDQpKX19LHJlYWRF''@;'; + put 'put ''eHRyYUZpZWxkczpmdW5jdGlvbihxKXt2YXIgc2Usb2UsY2UsSj1xLmluZGV4O2Zvcih0aGlzLmV4dHJhRmllbGRzPXRoaXMuZXh0cmFGaWVsZHN8fHt9O3EuaW5kZXg8Sit0aGlzLmV4dHJhRmllbGRzTGVuZ3RoOylzZT1xLnJlYWRJbnQoMiksb2U9cS5yZWFkSW50KDIpLGNlPXEucmVhZFN0''@;'; + put 'put ''cmluZyhvZSksdGhpcy5leHRyYUZpZWxkc1tzZV09e2lkOnNlLGxlbmd0aDpvZSx2YWx1ZTpjZX19LGhhbmRsZVVURjg6ZnVuY3Rpb24oKXtpZih0aGlzLnVzZVVURjgoKSl0aGlzLmZpbGVOYW1lPU4udXRmOGRlY29kZSh0aGlzLmZpbGVOYW1lKSx0aGlzLmZpbGVDb21tZW50PU4udXRmOGRl''@;'; + put 'put ''Y29kZSh0aGlzLmZpbGVDb21tZW50KTtlbHNle3ZhciBxPXRoaXMuZmluZEV4dHJhRmllbGRVbmljb2RlUGF0aCgpO251bGwhPT1xJiYodGhpcy5maWxlTmFtZT1xKTt2YXIgSj10aGlzLmZpbmRFeHRyYUZpZWxkVW5pY29kZUNvbW1lbnQoKTtudWxsIT09SiYmKHRoaXMuZmlsZUNvbW1lbnQ9''@;'; + put 'put ''Sil9fSxmaW5kRXh0cmFGaWVsZFVuaWNvZGVQYXRoOmZ1bmN0aW9uKCl7dmFyIHE9dGhpcy5leHRyYUZpZWxkc1syODc4OV07aWYocSl7dmFyIEo9bmV3IGFlKHEudmFsdWUpO3JldHVybiAxIT09Si5yZWFkSW50KDEpfHxOLmNyYzMyKHRoaXMuZmlsZU5hbWUpIT09Si5yZWFkSW50KDQpP251''@;'; + put 'put ''bGw6Ti51dGY4ZGVjb2RlKEoucmVhZFN0cmluZyhxLmxlbmd0aC01KSl9cmV0dXJuIG51bGx9LGZpbmRFeHRyYUZpZWxkVW5pY29kZUNvbW1lbnQ6ZnVuY3Rpb24oKXt2YXIgcT10aGlzLmV4dHJhRmllbGRzWzI1NDYxXTtpZihxKXt2YXIgSj1uZXcgYWUocS52YWx1ZSk7cmV0dXJuIDEhPT1K''@;'; + put 'put ''LnJlYWRJbnQoMSl8fE4uY3JjMzIodGhpcy5maWxlQ29tbWVudCkhPT1KLnJlYWRJbnQoNCk/bnVsbDpOLnV0ZjhkZWNvZGUoSi5yZWFkU3RyaW5nKHEubGVuZ3RoLTUpKX1yZXR1cm4gbnVsbH19LFouZXhwb3J0cz1lZX0seyIuL2NvbXByZXNzZWRPYmplY3QiOjIsIi4vb2JqZWN0IjoxMywi''@;'; + put 'put ''Li9zdHJpbmdSZWFkZXIiOjE1LCIuL3V0aWxzIjoyMX1dLDI0OltmdW5jdGlvbihRLFosaWUpeyJ1c2Ugc3RyaWN0Ijt2YXIgZWU9e307KDAsUSgiLi9saWIvdXRpbHMvY29tbW9uIikuYXNzaWduKShlZSxRKCIuL2xpYi9kZWZsYXRlIiksUSgiLi9saWIvaW5mbGF0ZSIpLFEoIi4vbGliL3ps''@;'; + put 'put ''aWIvY29uc3RhbnRzIikpLFouZXhwb3J0cz1lZX0seyIuL2xpYi9kZWZsYXRlIjoyNSwiLi9saWIvaW5mbGF0ZSI6MjYsIi4vbGliL3V0aWxzL2NvbW1vbiI6MjcsIi4vbGliL3psaWIvY29uc3RhbnRzIjozMH1dLDI1OltmdW5jdGlvbihRLFosaWUpeyJ1c2Ugc3RyaWN0Ijt2YXIgYWU9USgi''@;'; + put 'put ''Li96bGliL2RlZmxhdGUuanMiKSxZPVEoIi4vdXRpbHMvY29tbW9uIiksVz1RKCIuL3V0aWxzL3N0cmluZ3MiKSxOPVEoIi4vemxpYi9tZXNzYWdlcyIpLGVlPVEoIi4vemxpYi96c3RyZWFtIiksQWU9ZnVuY3Rpb24oVGUpe3RoaXMub3B0aW9ucz1ZLmFzc2lnbih7bGV2ZWw6LTEsbWV0aG9k''@;'; + put 'put ''OjgsY2h1bmtTaXplOjE2Mzg0LHdpbmRvd0JpdHM6MTUsbWVtTGV2ZWw6OCxzdHJhdGVneTowLHRvOiIifSxUZXx8e30pO3ZhciBFZT10aGlzLm9wdGlvbnM7RWUucmF3JiZFZS53aW5kb3dCaXRzPjA/RWUud2luZG93Qml0cz0tRWUud2luZG93Qml0czpFZS5nemlwJiZFZS53aW5kb3dCaXRz''@;'; + put 'put ''PjAmJkVlLndpbmRvd0JpdHM8MTYmJihFZS53aW5kb3dCaXRzKz0xNiksdGhpcy5lcnI9MCx0aGlzLm1zZz0iIix0aGlzLmVuZGVkPSExLHRoaXMuY2h1bmtzPVtdLHRoaXMuc3RybT1uZXcgZWUsdGhpcy5zdHJtLmF2YWlsX291dD0wO3ZhciBoZT1hZS5kZWZsYXRlSW5pdDIodGhpcy5zdHJt''@;'; + put 'put ''LEVlLmxldmVsLEVlLm1ldGhvZCxFZS53aW5kb3dCaXRzLEVlLm1lbUxldmVsLEVlLnN0cmF0ZWd5KTtpZigwIT09aGUpdGhyb3cgbmV3IEVycm9yKE5baGVdKTtFZS5oZWFkZXImJmFlLmRlZmxhdGVTZXRIZWFkZXIodGhpcy5zdHJtLEVlLmhlYWRlcil9O2Z1bmN0aW9uIGtlKFRlLEVlKXt2''@;'; + put 'put ''YXIgaGU9bmV3IEFlKEVlKTtpZihoZS5wdXNoKFRlLCEwKSxoZS5lcnIpdGhyb3cgaGUubXNnO3JldHVybiBoZS5yZXN1bHR9QWUucHJvdG90eXBlLnB1c2g9ZnVuY3Rpb24oVGUsRWUpe3ZhciB6LG5lLGhlPXRoaXMuc3RybSxPPXRoaXMub3B0aW9ucy5jaHVua1NpemU7aWYodGhpcy5lbmRl''@;'; + put 'put ''ZClyZXR1cm4hMTtuZT1FZT09PX5+RWU/RWU6ITA9PT1FZT80OjAsaGUuaW5wdXQ9InN0cmluZyI9PXR5cGVvZiBUZT9XLnN0cmluZzJidWYoVGUpOlRlLGhlLm5leHRfaW49MCxoZS5hdmFpbF9pbj1oZS5pbnB1dC5sZW5ndGg7ZG97aWYoMD09PWhlLmF2YWlsX291dCYmKGhlLm91dHB1dD1u''@;'; + put 'put ''ZXcgWS5CdWY4KE8pLGhlLm5leHRfb3V0PTAsaGUuYXZhaWxfb3V0PU8pLDEhPT0oej1hZS5kZWZsYXRlKGhlLG5lKSkmJjAhPT16KXJldHVybiB0aGlzLm9uRW5kKHopLHRoaXMuZW5kZWQ9ITAsITE7KDA9PT1oZS5hdmFpbF9vdXR8fDA9PT1oZS5hdmFpbF9pbiYmND09PW5lKSYmdGhpcy5v''@;'; + put 'put ''bkRhdGEoInN0cmluZyI9PT10aGlzLm9wdGlvbnMudG8/Vy5idWYyYmluc3RyaW5nKFkuc2hyaW5rQnVmKGhlLm91dHB1dCxoZS5uZXh0X291dCkpOlkuc2hyaW5rQnVmKGhlLm91dHB1dCxoZS5uZXh0X291dCkpfXdoaWxlKChoZS5hdmFpbF9pbj4wfHwwPT09aGUuYXZhaWxfb3V0KSYmMSE9''@;'; + put 'put ''PXopO3JldHVybiA0IT09bmV8fCh6PWFlLmRlZmxhdGVFbmQodGhpcy5zdHJtKSx0aGlzLm9uRW5kKHopLHRoaXMuZW5kZWQ9ITAsMD09PXopfSxBZS5wcm90b3R5cGUub25EYXRhPWZ1bmN0aW9uKFRlKXt0aGlzLmNodW5rcy5wdXNoKFRlKX0sQWUucHJvdG90eXBlLm9uRW5kPWZ1bmN0aW9u''@;'; + put 'put ''KFRlKXswPT09VGUmJih0aGlzLnJlc3VsdD0ic3RyaW5nIj09PXRoaXMub3B0aW9ucy50bz90aGlzLmNodW5rcy5qb2luKCIiKTpZLmZsYXR0ZW5DaHVua3ModGhpcy5jaHVua3MpKSx0aGlzLmNodW5rcz1bXSx0aGlzLmVycj1UZSx0aGlzLm1zZz10aGlzLnN0cm0ubXNnfSxpZS5EZWZsYXRl''@;'; + put 'put ''PUFlLGllLmRlZmxhdGU9a2UsaWUuZGVmbGF0ZVJhdz1mdW5jdGlvbiBTZShUZSxFZSl7cmV0dXJuKEVlPUVlfHx7fSkucmF3PSEwLGtlKFRlLEVlKX0saWUuZ3ppcD1mdW5jdGlvbiBJZShUZSxFZSl7cmV0dXJuKEVlPUVlfHx7fSkuZ3ppcD0hMCxrZShUZSxFZSl9fSx7Ii4vdXRpbHMvY29t''@;'; + put 'put ''bW9uIjoyNywiLi91dGlscy9zdHJpbmdzIjoyOCwiLi96bGliL2RlZmxhdGUuanMiOjMyLCIuL3psaWIvbWVzc2FnZXMiOjM3LCIuL3psaWIvenN0cmVhbSI6Mzl9XSwyNjpbZnVuY3Rpb24oUSxaLGllKXsidXNlIHN0cmljdCI7dmFyIGFlPVEoIi4vemxpYi9pbmZsYXRlLmpzIiksWT1RKCIu''@;'; + put 'put ''L3V0aWxzL2NvbW1vbiIpLFc9USgiLi91dGlscy9zdHJpbmdzIiksTj1RKCIuL3psaWIvY29uc3RhbnRzIiksZWU9USgiLi96bGliL21lc3NhZ2VzIikscT1RKCIuL3psaWIvenN0cmVhbSIpLEo9USgiLi96bGliL2d6aGVhZGVyIiksc2U9ZnVuY3Rpb24oZGUpe3RoaXMub3B0aW9ucz1ZLmFz''@;'; + put 'put ''c2lnbih7Y2h1bmtTaXplOjE2Mzg0LHdpbmRvd0JpdHM6MCx0bzoiIn0sZGV8fHt9KTt2YXIgdmU9dGhpcy5vcHRpb25zO3ZlLnJhdyYmdmUud2luZG93Qml0cz49MCYmdmUud2luZG93Qml0czwxNiYmKHZlLndpbmRvd0JpdHM9LXZlLndpbmRvd0JpdHMsMD09PXZlLndpbmRvd0JpdHMmJih2''@;'; + put 'put ''ZS53aW5kb3dCaXRzPS0xNSkpLHZlLndpbmRvd0JpdHM+PTAmJnZlLndpbmRvd0JpdHM8MTYmJiEoZGUmJmRlLndpbmRvd0JpdHMpJiYodmUud2luZG93Qml0cys9MzIpLHZlLndpbmRvd0JpdHM+MTUmJnZlLndpbmRvd0JpdHM8NDgmJjA9PSgxNSZ2ZS53aW5kb3dCaXRzKSYmKHZlLndpbmRv''@;'; + put 'put ''d0JpdHN8PTE1KSx0aGlzLmVycj0wLHRoaXMubXNnPSIiLHRoaXMuZW5kZWQ9ITEsdGhpcy5jaHVua3M9W10sdGhpcy5zdHJtPW5ldyBxLHRoaXMuc3RybS5hdmFpbF9vdXQ9MDt2YXIgQWU9YWUuaW5mbGF0ZUluaXQyKHRoaXMuc3RybSx2ZS53aW5kb3dCaXRzKTtpZihBZSE9PU4uWl9PSyl0''@;'; + put 'put ''aHJvdyBuZXcgRXJyb3IoZWVbQWVdKTt0aGlzLmhlYWRlcj1uZXcgSixhZS5pbmZsYXRlR2V0SGVhZGVyKHRoaXMuc3RybSx0aGlzLmhlYWRlcil9O2Z1bmN0aW9uIG9lKGRlLHZlKXt2YXIgQWU9bmV3IHNlKHZlKTtpZihBZS5wdXNoKGRlLCEwKSxBZS5lcnIpdGhyb3cgQWUubXNnO3JldHVy''@;'; + put 'put ''biBBZS5yZXN1bHR9c2UucHJvdG90eXBlLnB1c2g9ZnVuY3Rpb24oZGUsdmUpe3ZhciBTZSxJZSxUZSxFZSxoZSxBZT10aGlzLnN0cm0sa2U9dGhpcy5vcHRpb25zLmNodW5rU2l6ZTtpZih0aGlzLmVuZGVkKXJldHVybiExO0llPXZlPT09fn52ZT92ZTohMD09PXZlP04uWl9GSU5JU0g6Ti5a''@;'; + put 'put ''X05PX0ZMVVNILEFlLmlucHV0PSJzdHJpbmciPT10eXBlb2YgZGU/Vy5iaW5zdHJpbmcyYnVmKGRlKTpkZSxBZS5uZXh0X2luPTAsQWUuYXZhaWxfaW49QWUuaW5wdXQubGVuZ3RoO2Rve2lmKDA9PT1BZS5hdmFpbF9vdXQmJihBZS5vdXRwdXQ9bmV3IFkuQnVmOChrZSksQWUubmV4dF9vdXQ9''@;'; + put 'put ''MCxBZS5hdmFpbF9vdXQ9a2UpLChTZT1hZS5pbmZsYXRlKEFlLE4uWl9OT19GTFVTSCkpIT09Ti5aX1NUUkVBTV9FTkQmJlNlIT09Ti5aX09LKXJldHVybiB0aGlzLm9uRW5kKFNlKSx0aGlzLmVuZGVkPSEwLCExO0FlLm5leHRfb3V0JiYoMD09PUFlLmF2YWlsX291dHx8U2U9PT1OLlpfU1RS''@;'; + put 'put ''RUFNX0VORHx8MD09PUFlLmF2YWlsX2luJiZJZT09PU4uWl9GSU5JU0gpJiYoInN0cmluZyI9PT10aGlzLm9wdGlvbnMudG8/KFRlPVcudXRmOGJvcmRlcihBZS5vdXRwdXQsQWUubmV4dF9vdXQpLEVlPUFlLm5leHRfb3V0LVRlLGhlPVcuYnVmMnN0cmluZyhBZS5vdXRwdXQsVGUpLEFlLm5l''@;'; + put 'put ''eHRfb3V0PUVlLEFlLmF2YWlsX291dD1rZS1FZSxFZSYmWS5hcnJheVNldChBZS5vdXRwdXQsQWUub3V0cHV0LFRlLEVlLDApLHRoaXMub25EYXRhKGhlKSk6dGhpcy5vbkRhdGEoWS5zaHJpbmtCdWYoQWUub3V0cHV0LEFlLm5leHRfb3V0KSkpfXdoaWxlKEFlLmF2YWlsX2luPjAmJlNlIT09''@;'; + put 'put ''Ti5aX1NUUkVBTV9FTkQpO3JldHVybiBTZT09PU4uWl9TVFJFQU1fRU5EJiYoSWU9Ti5aX0ZJTklTSCksSWUhPT1OLlpfRklOSVNIfHwoU2U9YWUuaW5mbGF0ZUVuZCh0aGlzLnN0cm0pLHRoaXMub25FbmQoU2UpLHRoaXMuZW5kZWQ9ITAsU2U9PT1OLlpfT0spfSxzZS5wcm90b3R5cGUub25E''@;'; + put 'put ''YXRhPWZ1bmN0aW9uKGRlKXt0aGlzLmNodW5rcy5wdXNoKGRlKX0sc2UucHJvdG90eXBlLm9uRW5kPWZ1bmN0aW9uKGRlKXtkZT09PU4uWl9PSyYmKHRoaXMucmVzdWx0PSJzdHJpbmciPT09dGhpcy5vcHRpb25zLnRvP3RoaXMuY2h1bmtzLmpvaW4oIiIpOlkuZmxhdHRlbkNodW5rcyh0aGlz''@;'; + put 'put ''LmNodW5rcykpLHRoaXMuY2h1bmtzPVtdLHRoaXMuZXJyPWRlLHRoaXMubXNnPXRoaXMuc3RybS5tc2d9LGllLkluZmxhdGU9c2UsaWUuaW5mbGF0ZT1vZSxpZS5pbmZsYXRlUmF3PWZ1bmN0aW9uIGNlKGRlLHZlKXtyZXR1cm4odmU9dmV8fHt9KS5yYXc9ITAsb2UoZGUsdmUpfSxpZS51bmd6''@;'; + put 'put ''aXA9b2V9LHsiLi91dGlscy9jb21tb24iOjI3LCIuL3V0aWxzL3N0cmluZ3MiOjI4LCIuL3psaWIvY29uc3RhbnRzIjozMCwiLi96bGliL2d6aGVhZGVyIjozMywiLi96bGliL2luZmxhdGUuanMiOjM1LCIuL3psaWIvbWVzc2FnZXMiOjM3LCIuL3psaWIvenN0cmVhbSI6Mzl9XSwyNzpbZnVu''@;'; + put 'put ''Y3Rpb24oUSxaLGllKXsidXNlIHN0cmljdCI7dmFyIGFlPSJ1bmRlZmluZWQiIT10eXBlb2YgVWludDhBcnJheSYmInVuZGVmaW5lZCIhPXR5cGVvZiBVaW50MTZBcnJheSYmInVuZGVmaW5lZCIhPXR5cGVvZiBJbnQzMkFycmF5O2llLmFzc2lnbj1mdW5jdGlvbihOKXtmb3IodmFyIGVlPUFy''@;'; + put 'put ''cmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywxKTtlZS5sZW5ndGg7KXt2YXIgcT1lZS5zaGlmdCgpO2lmKHEpe2lmKCJvYmplY3QiIT10eXBlb2YgcSl0aHJvdyBuZXcgVHlwZUVycm9yKHErIm11c3QgYmUgbm9uLW9iamVjdCIpO2Zvcih2YXIgSiBpbiBxKXEuaGFzT3duUHJv''@;'; + put 'put ''cGVydHkoSikmJihOW0pdPXFbSl0pfX1yZXR1cm4gTn0saWUuc2hyaW5rQnVmPWZ1bmN0aW9uKE4sZWUpe3JldHVybiBOLmxlbmd0aD09PWVlP046Ti5zdWJhcnJheT9OLnN1YmFycmF5KDAsZWUpOihOLmxlbmd0aD1lZSxOKX07dmFyIFk9e2FycmF5U2V0OmZ1bmN0aW9uKE4sZWUscSxKLHNl''@;'; + put 'put ''KXtpZihlZS5zdWJhcnJheSYmTi5zdWJhcnJheSlOLnNldChlZS5zdWJhcnJheShxLHErSiksc2UpO2Vsc2UgZm9yKHZhciBvZT0wO29lPEo7b2UrKylOW3NlK29lXT1lZVtxK29lXX0sZmxhdHRlbkNodW5rczpmdW5jdGlvbihOKXt2YXIgZWUscSxKLHNlLG9lLGNlO2ZvcihKPTAsZWU9MCxx''@;'; + put 'put ''PU4ubGVuZ3RoO2VlPHE7ZWUrKylKKz1OW2VlXS5sZW5ndGg7Zm9yKGNlPW5ldyBVaW50OEFycmF5KEopLHNlPTAsZWU9MCxxPU4ubGVuZ3RoO2VlPHE7ZWUrKyljZS5zZXQob2U9TltlZV0sc2UpLHNlKz1vZS5sZW5ndGg7cmV0dXJuIGNlfX0sVz17YXJyYXlTZXQ6ZnVuY3Rpb24oTixlZSxx''@;'; + put 'put ''LEosc2Upe2Zvcih2YXIgb2U9MDtvZTxKO29lKyspTltzZStvZV09ZWVbcStvZV19LGZsYXR0ZW5DaHVua3M6ZnVuY3Rpb24oTil7cmV0dXJuW10uY29uY2F0LmFwcGx5KFtdLE4pfX07aWUuc2V0VHlwZWQ9ZnVuY3Rpb24oTil7Tj8oaWUuQnVmOD1VaW50OEFycmF5LGllLkJ1ZjE2PVVpbnQx''@;'; + put 'put ''NkFycmF5LGllLkJ1ZjMyPUludDMyQXJyYXksaWUuYXNzaWduKGllLFkpKTooaWUuQnVmOD1BcnJheSxpZS5CdWYxNj1BcnJheSxpZS5CdWYzMj1BcnJheSxpZS5hc3NpZ24oaWUsVykpfSxpZS5zZXRUeXBlZChhZSl9LHt9XSwyODpbZnVuY3Rpb24oUSxaLGllKXsidXNlIHN0cmljdCI7dmFy''@;'; + put 'put ''IGFlPVEoIi4vY29tbW9uIiksWT0hMCxXPSEwO3RyeXtTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsWzBdKX1jYXRjaChKKXtZPSExfXRyeXtTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsbmV3IFVpbnQ4QXJyYXkoMSkpfWNhdGNoKEope1c9ITF9Zm9yKHZhciBOPW5ldyBh''@;'; + put 'put ''ZS5CdWY4KDI1NiksZWU9MDtlZTwyNTY7ZWUrKylOW2VlXT1lZT49MjUyPzY6ZWU+PTI0OD81OmVlPj0yNDA/NDplZT49MjI0PzM6ZWU+PTE5Mj8yOjE7ZnVuY3Rpb24gcShKLHNlKXtpZihzZTw2NTUzNyYmKEouc3ViYXJyYXkmJld8fCFKLnN1YmFycmF5JiZZKSlyZXR1cm4gU3RyaW5nLmZy''@;'; + put 'put ''b21DaGFyQ29kZS5hcHBseShudWxsLGFlLnNocmlua0J1ZihKLHNlKSk7Zm9yKHZhciBvZT0iIixjZT0wO2NlPHNlO2NlKyspb2UrPVN0cmluZy5mcm9tQ2hhckNvZGUoSltjZV0pO3JldHVybiBvZX1OWzI1NF09TlsyNTRdPTEsaWUuc3RyaW5nMmJ1Zj1mdW5jdGlvbihKKXt2YXIgc2Usb2Us''@;'; + put 'put ''Y2UsZGUsdmUsQWU9Si5sZW5ndGgsa2U9MDtmb3IoZGU9MDtkZTxBZTtkZSsrKTU1Mjk2PT0oNjQ1MTImKG9lPUouY2hhckNvZGVBdChkZSkpKSYmZGUrMTxBZSYmNTYzMjA9PSg2NDUxMiYoY2U9Si5jaGFyQ29kZUF0KGRlKzEpKSkmJihvZT02NTUzNisob2UtNTUyOTY8PDEwKSsoY2UtNTYz''@;'; + put 'put ''MjApLGRlKyspLGtlKz1vZTwxMjg/MTpvZTwyMDQ4PzI6b2U8NjU1MzY/Mzo0O2ZvcihzZT1uZXcgYWUuQnVmOChrZSksdmU9MCxkZT0wO3ZlPGtlO2RlKyspNTUyOTY9PSg2NDUxMiYob2U9Si5jaGFyQ29kZUF0KGRlKSkpJiZkZSsxPEFlJiY1NjMyMD09KDY0NTEyJihjZT1KLmNoYXJDb2Rl''@;'; + put 'put ''QXQoZGUrMSkpKSYmKG9lPTY1NTM2KyhvZS01NTI5Njw8MTApKyhjZS01NjMyMCksZGUrKyksb2U8MTI4P3NlW3ZlKytdPW9lOm9lPDIwNDg/KHNlW3ZlKytdPTE5MnxvZT4+PjYsc2VbdmUrK109MTI4fDYzJm9lKTpvZTw2NTUzNj8oc2VbdmUrK109MjI0fG9lPj4+MTIsc2VbdmUrK109MTI4''@;'; + put 'put ''fG9lPj4+NiY2MyxzZVt2ZSsrXT0xMjh8NjMmb2UpOihzZVt2ZSsrXT0yNDB8b2U+Pj4xOCxzZVt2ZSsrXT0xMjh8b2U+Pj4xMiY2MyxzZVt2ZSsrXT0xMjh8b2U+Pj42JjYzLHNlW3ZlKytdPTEyOHw2MyZvZSk7cmV0dXJuIHNlfSxpZS5idWYyYmluc3RyaW5nPWZ1bmN0aW9uKEope3JldHVy''@;'; + put 'put ''biBxKEosSi5sZW5ndGgpfSxpZS5iaW5zdHJpbmcyYnVmPWZ1bmN0aW9uKEope2Zvcih2YXIgc2U9bmV3IGFlLkJ1ZjgoSi5sZW5ndGgpLG9lPTAsY2U9c2UubGVuZ3RoO29lPGNlO29lKyspc2Vbb2VdPUouY2hhckNvZGVBdChvZSk7cmV0dXJuIHNlfSxpZS5idWYyc3RyaW5nPWZ1bmN0aW9u''@;'; + put 'put ''KEosc2Upe3ZhciBvZSxjZSxkZSx2ZSxBZT1zZXx8Si5sZW5ndGgsa2U9bmV3IEFycmF5KDIqQWUpO2ZvcihjZT0wLG9lPTA7b2U8QWU7KWlmKChkZT1KW29lKytdKTwxMjgpa2VbY2UrK109ZGU7ZWxzZSBpZigodmU9TltkZV0pPjQpa2VbY2UrK109NjU1MzMsb2UrPXZlLTE7ZWxzZXtmb3Io''@;'; + put 'put ''ZGUmPTI9PT12ZT8zMTozPT09dmU/MTU6Nzt2ZT4xJiZvZTxBZTspZGU9ZGU8PDZ8NjMmSltvZSsrXSx2ZS0tO3ZlPjE/a2VbY2UrK109NjU1MzM6ZGU8NjU1MzY/a2VbY2UrK109ZGU6KGtlW2NlKytdPTU1Mjk2fChkZS09NjU1MzYpPj4xMCYxMDIzLGtlW2NlKytdPTU2MzIwfDEwMjMmZGUp''@;'; + put 'put ''fXJldHVybiBxKGtlLGNlKX0saWUudXRmOGJvcmRlcj1mdW5jdGlvbihKLHNlKXt2YXIgb2U7Zm9yKChzZT1zZXx8Si5sZW5ndGgpPkoubGVuZ3RoJiYoc2U9Si5sZW5ndGgpLG9lPXNlLTE7b2U+PTAmJjEyOD09KDE5MiZKW29lXSk7KW9lLS07cmV0dXJuIG9lPDB8fDA9PT1vZT9zZTpvZStO''@;'; + put 'put ''W0pbb2VdXT5zZT9vZTpzZX19LHsiLi9jb21tb24iOjI3fV0sMjk6W2Z1bmN0aW9uKFEsWixpZSl7InVzZSBzdHJpY3QiO1ouZXhwb3J0cz1mdW5jdGlvbiBhZShZLFcsTixlZSl7Zm9yKHZhciBxPTY1NTM1Jll8MCxKPVk+Pj4xNiY2NTUzNXwwLHNlPTA7MCE9PU47KXtOLT1zZT1OPjJlMz8y''@;'; + put 'put ''ZTM6Tjtkb3tKPUorKHE9cStXW2VlKytdfDApfDB9d2hpbGUoLS1zZSk7cSU9NjU1MjEsSiU9NjU1MjF9cmV0dXJuIHF8Sjw8MTZ8MH19LHt9XSwzMDpbZnVuY3Rpb24oUSxaLGllKXtaLmV4cG9ydHM9e1pfTk9fRkxVU0g6MCxaX1BBUlRJQUxfRkxVU0g6MSxaX1NZTkNfRkxVU0g6MixaX0ZV''@;'; + put 'put ''TExfRkxVU0g6MyxaX0ZJTklTSDo0LFpfQkxPQ0s6NSxaX1RSRUVTOjYsWl9PSzowLFpfU1RSRUFNX0VORDoxLFpfTkVFRF9ESUNUOjIsWl9FUlJOTzotMSxaX1NUUkVBTV9FUlJPUjotMixaX0RBVEFfRVJST1I6LTMsWl9CVUZfRVJST1I6LTUsWl9OT19DT01QUkVTU0lPTjowLFpfQkVTVF9T''@;'; + put 'put ''UEVFRDoxLFpfQkVTVF9DT01QUkVTU0lPTjo5LFpfREVGQVVMVF9DT01QUkVTU0lPTjotMSxaX0ZJTFRFUkVEOjEsWl9IVUZGTUFOX09OTFk6MixaX1JMRTozLFpfRklYRUQ6NCxaX0RFRkFVTFRfU1RSQVRFR1k6MCxaX0JJTkFSWTowLFpfVEVYVDoxLFpfVU5LTk9XTjoyLFpfREVGTEFURUQ6''@;'; + put 'put ''OH19LHt9XSwzMTpbZnVuY3Rpb24oUSxaLGllKXsidXNlIHN0cmljdCI7dmFyIFk9ZnVuY3Rpb24gYWUoKXtmb3IodmFyIE4sZWU9W10scT0wO3E8MjU2O3ErKyl7Tj1xO2Zvcih2YXIgSj0wO0o8ODtKKyspTj0xJk4/Mzk4ODI5MjM4NF5OPj4+MTpOPj4+MTtlZVtxXT1OfXJldHVybiBlZX0o''@;'; + put 'put ''KTtaLmV4cG9ydHM9ZnVuY3Rpb24gVyhOLGVlLHEsSil7dmFyIHNlPVksb2U9SitxO05ePS0xO2Zvcih2YXIgY2U9SjtjZTxvZTtjZSsrKU49Tj4+Pjhec2VbMjU1JihOXmVlW2NlXSldO3JldHVybi0xXk59fSx7fV0sMzI6W2Z1bmN0aW9uKFEsWixpZSl7InVzZSBzdHJpY3QiO3ZhciBhZT1R''@;'; + put 'put ''KCIuLi91dGlscy9jb21tb24iKSxZPVEoIi4vdHJlZXMiKSxXPVEoIi4vYWRsZXIzMiIpLE49USgiLi9jcmMzMiIpLGVlPVEoIi4vbWVzc2FnZXMiKSxndD0yNjI7ZnVuY3Rpb24gZnQoTnQsc24pe3JldHVybiBOdC5tc2c9ZWVbc25dLHNufWZ1bmN0aW9uIEh0KE50KXtyZXR1cm4oTnQ8PDEp''@;'; + put 'put ''LShOdD40Pzk6MCl9ZnVuY3Rpb24gR2UoTnQpe2Zvcih2YXIgc249TnQubGVuZ3RoOy0tc24+PTA7KU50W3NuXT0wfWZ1bmN0aW9uIFVlKE50KXt2YXIgc249TnQuc3RhdGUsVW49c24ucGVuZGluZztVbj5OdC5hdmFpbF9vdXQmJihVbj1OdC5hdmFpbF9vdXQpLDAhPT1VbiYmKGFlLmFycmF5''@;'; + put 'put ''U2V0KE50Lm91dHB1dCxzbi5wZW5kaW5nX2J1Zixzbi5wZW5kaW5nX291dCxVbixOdC5uZXh0X291dCksTnQubmV4dF9vdXQrPVVuLHNuLnBlbmRpbmdfb3V0Kz1VbixOdC50b3RhbF9vdXQrPVVuLE50LmF2YWlsX291dC09VW4sc24ucGVuZGluZy09VW4sMD09PXNuLnBlbmRpbmcmJihzbi5w''@;'; + put 'put ''ZW5kaW5nX291dD0wKSl9ZnVuY3Rpb24geXQoTnQsc24pe1kuX3RyX2ZsdXNoX2Jsb2NrKE50LE50LmJsb2NrX3N0YXJ0Pj0wP050LmJsb2NrX3N0YXJ0Oi0xLE50LnN0cnN0YXJ0LU50LmJsb2NrX3N0YXJ0LHNuKSxOdC5ibG9ja19zdGFydD1OdC5zdHJzdGFydCxVZShOdC5zdHJtKX1mdW5j''@;'; + put 'put ''dGlvbiBqdChOdCxzbil7TnQucGVuZGluZ19idWZbTnQucGVuZGluZysrXT1zbn1mdW5jdGlvbiBRdChOdCxzbil7TnQucGVuZGluZ19idWZbTnQucGVuZGluZysrXT1zbj4+PjgmMjU1LE50LnBlbmRpbmdfYnVmW050LnBlbmRpbmcrK109MjU1JnNufWZ1bmN0aW9uIGduKE50LHNuLFVuLHdu''@;'; + put 'put ''KXt2YXIgdG49TnQuYXZhaWxfaW47cmV0dXJuIHRuPnduJiYodG49d24pLDA9PT10bj8wOihOdC5hdmFpbF9pbi09dG4sYWUuYXJyYXlTZXQoc24sTnQuaW5wdXQsTnQubmV4dF9pbix0bixVbiksMT09PU50LnN0YXRlLndyYXA/TnQuYWRsZXI9VyhOdC5hZGxlcixzbix0bixVbik6Mj09PU50''@;'; + put 'put ''LnN0YXRlLndyYXAmJihOdC5hZGxlcj1OKE50LmFkbGVyLHNuLHRuLFVuKSksTnQubmV4dF9pbis9dG4sTnQudG90YWxfaW4rPXRuLHRuKX1mdW5jdGlvbiBkbihOdCxzbil7dmFyIHRuLHpuLFVuPU50Lm1heF9jaGFpbl9sZW5ndGgsd249TnQuc3Ryc3RhcnQsVHI9TnQucHJldl9sZW5ndGgs''@;'; + put 'put ''Qm49TnQubmljZV9tYXRjaCxrcj1OdC5zdHJzdGFydD5OdC53X3NpemUtZ3Q/TnQuc3Ryc3RhcnQtKE50Lndfc2l6ZS1ndCk6MCxtbj1OdC53aW5kb3csdW49TnQud19tYXNrLGNuPU50LnByZXYsX249TnQuc3Ryc3RhcnQrMjU4LEd0PW1uW3duK1RyLTFdLGtuPW1uW3duK1RyXTtOdC5wcmV2''@;'; + put 'put ''X2xlbmd0aD49TnQuZ29vZF9tYXRjaCYmKFVuPj49MiksQm4+TnQubG9va2FoZWFkJiYoQm49TnQubG9va2FoZWFkKTtkb3tpZihtblsodG49c24pK1RyXT09PWtuJiZtblt0bitUci0xXT09PUd0JiZtblt0bl09PT1tblt3bl0mJm1uWysrdG5dPT09bW5bd24rMV0pe3duKz0yLHRuKys7ZG97''@;'; + put 'put ''fXdoaWxlKG1uWysrd25dPT09bW5bKyt0bl0mJm1uWysrd25dPT09bW5bKyt0bl0mJm1uWysrd25dPT09bW5bKyt0bl0mJm1uWysrd25dPT09bW5bKyt0bl0mJm1uWysrd25dPT09bW5bKyt0bl0mJm1uWysrd25dPT09bW5bKyt0bl0mJm1uWysrd25dPT09bW5bKyt0bl0mJm1uWysrd25dPT09''@;'; + put 'put ''bW5bKyt0bl0mJnduPF9uKTtpZih6bj0yNTgtKF9uLXduKSx3bj1fbi0yNTgsem4+VHIpe2lmKE50Lm1hdGNoX3N0YXJ0PXNuLFRyPXpuLHpuPj1CbilicmVhaztHdD1tblt3bitUci0xXSxrbj1tblt3bitUcl19fX13aGlsZSgoc249Y25bc24mdW5dKT5rciYmMCE9LS1Vbik7cmV0dXJuIFRy''@;'; + put 'put ''PD1OdC5sb29rYWhlYWQ/VHI6TnQubG9va2FoZWFkfWZ1bmN0aW9uIHluKE50KXt2YXIgVW4sd24sdG4sem4sVHIsc249TnQud19zaXplO2Rve2lmKHpuPU50LndpbmRvd19zaXplLU50Lmxvb2thaGVhZC1OdC5zdHJzdGFydCxOdC5zdHJzdGFydD49c24rKHNuLWd0KSl7YWUuYXJyYXlTZXQo''@;'; + put 'put ''TnQud2luZG93LE50LndpbmRvdyxzbixzbiwwKSxOdC5tYXRjaF9zdGFydC09c24sTnQuc3Ryc3RhcnQtPXNuLE50LmJsb2NrX3N0YXJ0LT1zbixVbj13bj1OdC5oYXNoX3NpemU7ZG97dG49TnQuaGVhZFstLVVuXSxOdC5oZWFkW1VuXT10bj49c24/dG4tc246MH13aGlsZSgtLXduKTtVbj13''@;'; + put 'put ''bj1zbjtkb3t0bj1OdC5wcmV2Wy0tVW5dLE50LnByZXZbVW5dPXRuPj1zbj90bi1zbjowfXdoaWxlKC0td24pO3puKz1zbn1pZigwPT09TnQuc3RybS5hdmFpbF9pbilicmVhaztpZih3bj1nbihOdC5zdHJtLE50LndpbmRvdyxOdC5zdHJzdGFydCtOdC5sb29rYWhlYWQsem4pLE50Lmxvb2th''@;'; + put 'put ''aGVhZCs9d24sTnQubG9va2FoZWFkK050Lmluc2VydD49Mylmb3IoTnQuaW5zX2g9TnQud2luZG93W1RyPU50LnN0cnN0YXJ0LU50Lmluc2VydF0sTnQuaW5zX2g9KE50Lmluc19oPDxOdC5oYXNoX3NoaWZ0Xk50LndpbmRvd1tUcisxXSkmTnQuaGFzaF9tYXNrO050Lmluc2VydCYmKE50Lmlu''@;'; + put 'put ''c19oPShOdC5pbnNfaDw8TnQuaGFzaF9zaGlmdF5OdC53aW5kb3dbVHIrMy0xXSkmTnQuaGFzaF9tYXNrLE50LnByZXZbVHImTnQud19tYXNrXT1OdC5oZWFkW050Lmluc19oXSxOdC5oZWFkW050Lmluc19oXT1UcixUcisrLE50Lmluc2VydC0tLCEoTnQubG9va2FoZWFkK050Lmluc2VydDwz''@;'; + put 'put ''KSk7KTt9d2hpbGUoTnQubG9va2FoZWFkPGd0JiYwIT09TnQuc3RybS5hdmFpbF9pbil9ZnVuY3Rpb24gTm4oTnQsc24pe2Zvcih2YXIgVW4sd247Oyl7aWYoTnQubG9va2FoZWFkPGd0KXtpZih5bihOdCksTnQubG9va2FoZWFkPGd0JiYwPT09c24pcmV0dXJuIDE7aWYoMD09PU50Lmxvb2th''@;'; + put 'put ''aGVhZClicmVha31pZihVbj0wLE50Lmxvb2thaGVhZD49MyYmKE50Lmluc19oPShOdC5pbnNfaDw8TnQuaGFzaF9zaGlmdF5OdC53aW5kb3dbTnQuc3Ryc3RhcnQrMy0xXSkmTnQuaGFzaF9tYXNrLFVuPU50LnByZXZbTnQuc3Ryc3RhcnQmTnQud19tYXNrXT1OdC5oZWFkW050Lmluc19oXSxO''@;'; + put 'put ''dC5oZWFkW050Lmluc19oXT1OdC5zdHJzdGFydCksMCE9PVVuJiZOdC5zdHJzdGFydC1Vbjw9TnQud19zaXplLWd0JiYoTnQubWF0Y2hfbGVuZ3RoPWRuKE50LFVuKSksTnQubWF0Y2hfbGVuZ3RoPj0zKWlmKHduPVkuX3RyX3RhbGx5KE50LE50LnN0cnN0YXJ0LU50Lm1hdGNoX3N0YXJ0LE50''@;'; + put 'put ''Lm1hdGNoX2xlbmd0aC0zKSxOdC5sb29rYWhlYWQtPU50Lm1hdGNoX2xlbmd0aCxOdC5tYXRjaF9sZW5ndGg8PU50Lm1heF9sYXp5X21hdGNoJiZOdC5sb29rYWhlYWQ+PTMpe050Lm1hdGNoX2xlbmd0aC0tO2Rve050LnN0cnN0YXJ0KyssTnQuaW5zX2g9KE50Lmluc19oPDxOdC5oYXNoX3No''@;'; + put 'put ''aWZ0Xk50LndpbmRvd1tOdC5zdHJzdGFydCszLTFdKSZOdC5oYXNoX21hc2ssVW49TnQucHJldltOdC5zdHJzdGFydCZOdC53X21hc2tdPU50LmhlYWRbTnQuaW5zX2hdLE50LmhlYWRbTnQuaW5zX2hdPU50LnN0cnN0YXJ0fXdoaWxlKDAhPS0tTnQubWF0Y2hfbGVuZ3RoKTtOdC5zdHJzdGFy''@;'; + put 'put ''dCsrfWVsc2UgTnQuc3Ryc3RhcnQrPU50Lm1hdGNoX2xlbmd0aCxOdC5tYXRjaF9sZW5ndGg9MCxOdC5pbnNfaD1OdC53aW5kb3dbTnQuc3Ryc3RhcnRdLE50Lmluc19oPShOdC5pbnNfaDw8TnQuaGFzaF9zaGlmdF5OdC53aW5kb3dbTnQuc3Ryc3RhcnQrMV0pJk50Lmhhc2hfbWFzaztlbHNl''@;'; + put 'put ''IHduPVkuX3RyX3RhbGx5KE50LDAsTnQud2luZG93W050LnN0cnN0YXJ0XSksTnQubG9va2FoZWFkLS0sTnQuc3Ryc3RhcnQrKztpZih3biYmKHl0KE50LCExKSwwPT09TnQuc3RybS5hdmFpbF9vdXQpKXJldHVybiAxfXJldHVybiBOdC5pbnNlcnQ9TnQuc3Ryc3RhcnQ8Mj9OdC5zdHJzdGFy''@;'; + put 'put ''dDoyLDQ9PT1zbj8oeXQoTnQsITApLDA9PT1OdC5zdHJtLmF2YWlsX291dD8zOjQpOk50Lmxhc3RfbGl0JiYoeXQoTnQsITEpLDA9PT1OdC5zdHJtLmF2YWlsX291dCk/MToyfWZ1bmN0aW9uIGJuKE50LHNuKXtmb3IodmFyIFVuLHduLHRuOzspe2lmKE50Lmxvb2thaGVhZDxndCl7aWYoeW4o''@;'; + put 'put ''TnQpLE50Lmxvb2thaGVhZDxndCYmMD09PXNuKXJldHVybiAxO2lmKDA9PT1OdC5sb29rYWhlYWQpYnJlYWt9aWYoVW49MCxOdC5sb29rYWhlYWQ+PTMmJihOdC5pbnNfaD0oTnQuaW5zX2g8PE50Lmhhc2hfc2hpZnReTnQud2luZG93W050LnN0cnN0YXJ0KzMtMV0pJk50Lmhhc2hfbWFzayxV''@;'; + put 'put ''bj1OdC5wcmV2W050LnN0cnN0YXJ0Jk50LndfbWFza109TnQuaGVhZFtOdC5pbnNfaF0sTnQuaGVhZFtOdC5pbnNfaF09TnQuc3Ryc3RhcnQpLE50LnByZXZfbGVuZ3RoPU50Lm1hdGNoX2xlbmd0aCxOdC5wcmV2X21hdGNoPU50Lm1hdGNoX3N0YXJ0LE50Lm1hdGNoX2xlbmd0aD0yLDAhPT1V''@;'; + put 'put ''biYmTnQucHJldl9sZW5ndGg8TnQubWF4X2xhenlfbWF0Y2gmJk50LnN0cnN0YXJ0LVVuPD1OdC53X3NpemUtZ3QmJihOdC5tYXRjaF9sZW5ndGg9ZG4oTnQsVW4pLE50Lm1hdGNoX2xlbmd0aDw9NSYmKDE9PT1OdC5zdHJhdGVneXx8Mz09PU50Lm1hdGNoX2xlbmd0aCYmTnQuc3Ryc3RhcnQt''@;'; + put 'put ''TnQubWF0Y2hfc3RhcnQ+NDA5NikmJihOdC5tYXRjaF9sZW5ndGg9MikpLE50LnByZXZfbGVuZ3RoPj0zJiZOdC5tYXRjaF9sZW5ndGg8PU50LnByZXZfbGVuZ3RoKXt0bj1OdC5zdHJzdGFydCtOdC5sb29rYWhlYWQtMyx3bj1ZLl90cl90YWxseShOdCxOdC5zdHJzdGFydC0xLU50LnByZXZf''@;'; + put 'put ''bWF0Y2gsTnQucHJldl9sZW5ndGgtMyksTnQubG9va2FoZWFkLT1OdC5wcmV2X2xlbmd0aC0xLE50LnByZXZfbGVuZ3RoLT0yO2RveysrTnQuc3Ryc3RhcnQ8PXRuJiYoTnQuaW5zX2g9KE50Lmluc19oPDxOdC5oYXNoX3NoaWZ0Xk50LndpbmRvd1tOdC5zdHJzdGFydCszLTFdKSZOdC5oYXNo''@;'; + put 'put ''X21hc2ssVW49TnQucHJldltOdC5zdHJzdGFydCZOdC53X21hc2tdPU50LmhlYWRbTnQuaW5zX2hdLE50LmhlYWRbTnQuaW5zX2hdPU50LnN0cnN0YXJ0KX13aGlsZSgwIT0tLU50LnByZXZfbGVuZ3RoKTtpZihOdC5tYXRjaF9hdmFpbGFibGU9MCxOdC5tYXRjaF9sZW5ndGg9MixOdC5zdHJz''@;'; + put 'put ''dGFydCsrLHduJiYoeXQoTnQsITEpLDA9PT1OdC5zdHJtLmF2YWlsX291dCkpcmV0dXJuIDF9ZWxzZSBpZihOdC5tYXRjaF9hdmFpbGFibGUpe2lmKCh3bj1ZLl90cl90YWxseShOdCwwLE50LndpbmRvd1tOdC5zdHJzdGFydC0xXSkpJiZ5dChOdCwhMSksTnQuc3Ryc3RhcnQrKyxOdC5sb29r''@;'; + put 'put ''YWhlYWQtLSwwPT09TnQuc3RybS5hdmFpbF9vdXQpcmV0dXJuIDF9ZWxzZSBOdC5tYXRjaF9hdmFpbGFibGU9MSxOdC5zdHJzdGFydCsrLE50Lmxvb2thaGVhZC0tfXJldHVybiBOdC5tYXRjaF9hdmFpbGFibGUmJih3bj1ZLl90cl90YWxseShOdCwwLE50LndpbmRvd1tOdC5zdHJzdGFydC0x''@;'; + put 'put ''XSksTnQubWF0Y2hfYXZhaWxhYmxlPTApLE50Lmluc2VydD1OdC5zdHJzdGFydDwyP050LnN0cnN0YXJ0OjIsND09PXNuPyh5dChOdCwhMCksMD09PU50LnN0cm0uYXZhaWxfb3V0PzM6NCk6TnQubGFzdF9saXQmJih5dChOdCwhMSksMD09PU50LnN0cm0uYXZhaWxfb3V0KT8xOjJ9dmFyIEZy''@;'; + put 'put ''LFhuPWZ1bmN0aW9uKE50LHNuLFVuLHduLHRuKXt0aGlzLmdvb2RfbGVuZ3RoPU50LHRoaXMubWF4X2xhenk9c24sdGhpcy5uaWNlX2xlbmd0aD1Vbix0aGlzLm1heF9jaGFpbj13bix0aGlzLmZ1bmM9dG59O2Z1bmN0aW9uIHF0KCl7dGhpcy5zdHJtPW51bGwsdGhpcy5zdGF0dXM9MCx0aGlz''@;'; + put 'put ''LnBlbmRpbmdfYnVmPW51bGwsdGhpcy5wZW5kaW5nX2J1Zl9zaXplPTAsdGhpcy5wZW5kaW5nX291dD0wLHRoaXMucGVuZGluZz0wLHRoaXMud3JhcD0wLHRoaXMuZ3poZWFkPW51bGwsdGhpcy5nemluZGV4PTAsdGhpcy5tZXRob2Q9OCx0aGlzLmxhc3RfZmx1c2g9LTEsdGhpcy53X3NpemU9''@;'; + put 'put ''MCx0aGlzLndfYml0cz0wLHRoaXMud19tYXNrPTAsdGhpcy53aW5kb3c9bnVsbCx0aGlzLndpbmRvd19zaXplPTAsdGhpcy5wcmV2PW51bGwsdGhpcy5oZWFkPW51bGwsdGhpcy5pbnNfaD0wLHRoaXMuaGFzaF9zaXplPTAsdGhpcy5oYXNoX2JpdHM9MCx0aGlzLmhhc2hfbWFzaz0wLHRoaXMu''@;'; + put 'put ''aGFzaF9zaGlmdD0wLHRoaXMuYmxvY2tfc3RhcnQ9MCx0aGlzLm1hdGNoX2xlbmd0aD0wLHRoaXMucHJldl9tYXRjaD0wLHRoaXMubWF0Y2hfYXZhaWxhYmxlPTAsdGhpcy5zdHJzdGFydD0wLHRoaXMubWF0Y2hfc3RhcnQ9MCx0aGlzLmxvb2thaGVhZD0wLHRoaXMucHJldl9sZW5ndGg9MCx0''@;'; + put 'put ''aGlzLm1heF9jaGFpbl9sZW5ndGg9MCx0aGlzLm1heF9sYXp5X21hdGNoPTAsdGhpcy5sZXZlbD0wLHRoaXMuc3RyYXRlZ3k9MCx0aGlzLmdvb2RfbWF0Y2g9MCx0aGlzLm5pY2VfbWF0Y2g9MCx0aGlzLmR5bl9sdHJlZT1uZXcgYWUuQnVmMTYoMTE0NiksdGhpcy5keW5fZHRyZWU9bmV3IGFl''@;'; + put 'put ''LkJ1ZjE2KDEyMiksdGhpcy5ibF90cmVlPW5ldyBhZS5CdWYxNig3OCksR2UodGhpcy5keW5fbHRyZWUpLEdlKHRoaXMuZHluX2R0cmVlKSxHZSh0aGlzLmJsX3RyZWUpLHRoaXMubF9kZXNjPW51bGwsdGhpcy5kX2Rlc2M9bnVsbCx0aGlzLmJsX2Rlc2M9bnVsbCx0aGlzLmJsX2NvdW50PW5l''@;'; + put 'put ''dyBhZS5CdWYxNigxNiksdGhpcy5oZWFwPW5ldyBhZS5CdWYxNig1NzMpLEdlKHRoaXMuaGVhcCksdGhpcy5oZWFwX2xlbj0wLHRoaXMuaGVhcF9tYXg9MCx0aGlzLmRlcHRoPW5ldyBhZS5CdWYxNig1NzMpLEdlKHRoaXMuZGVwdGgpLHRoaXMubF9idWY9MCx0aGlzLmxpdF9idWZzaXplPTAs''@;'; + put 'put ''dGhpcy5sYXN0X2xpdD0wLHRoaXMuZF9idWY9MCx0aGlzLm9wdF9sZW49MCx0aGlzLnN0YXRpY19sZW49MCx0aGlzLm1hdGNoZXM9MCx0aGlzLmluc2VydD0wLHRoaXMuYmlfYnVmPTAsdGhpcy5iaV92YWxpZD0wfWZ1bmN0aW9uIHByKE50KXt2YXIgc247cmV0dXJuIE50JiZOdC5zdGF0ZT8o''@;'; + put 'put ''TnQudG90YWxfaW49TnQudG90YWxfb3V0PTAsTnQuZGF0YV90eXBlPTIsKHNuPU50LnN0YXRlKS5wZW5kaW5nPTAsc24ucGVuZGluZ19vdXQ9MCxzbi53cmFwPDAmJihzbi53cmFwPS1zbi53cmFwKSxzbi5zdGF0dXM9c24ud3JhcD80MjoxMTMsTnQuYWRsZXI9Mj09PXNuLndyYXA/MDoxLHNu''@;'; + put 'put ''Lmxhc3RfZmx1c2g9MCxZLl90cl9pbml0KHNuKSwwKTpmdChOdCwtMil9ZnVuY3Rpb24gbnIoTnQpe3ZhciBzbj1wcihOdCk7cmV0dXJuIDA9PT1zbiYmZnVuY3Rpb24geHIoTnQpe050LndpbmRvd19zaXplPTIqTnQud19zaXplLEdlKE50LmhlYWQpLE50Lm1heF9sYXp5X21hdGNoPUZyW050''@;'; + put 'put ''LmxldmVsXS5tYXhfbGF6eSxOdC5nb29kX21hdGNoPUZyW050LmxldmVsXS5nb29kX2xlbmd0aCxOdC5uaWNlX21hdGNoPUZyW050LmxldmVsXS5uaWNlX2xlbmd0aCxOdC5tYXhfY2hhaW5fbGVuZ3RoPUZyW050LmxldmVsXS5tYXhfY2hhaW4sTnQuc3Ryc3RhcnQ9MCxOdC5ibG9ja19zdGFy''@;'; + put 'put ''dD0wLE50Lmxvb2thaGVhZD0wLE50Lmluc2VydD0wLE50Lm1hdGNoX2xlbmd0aD1OdC5wcmV2X2xlbmd0aD0yLE50Lm1hdGNoX2F2YWlsYWJsZT0wLE50Lmluc19oPTB9KE50LnN0YXRlKSxzbn1mdW5jdGlvbiBxbihOdCxzbixVbix3bix0bix6bil7aWYoIU50KXJldHVybi0yO3ZhciBUcj0x''@;'; + put 'put ''O2lmKC0xPT09c24mJihzbj02KSx3bjwwPyhUcj0wLHduPS13bik6d24+MTUmJihUcj0yLHduLT0xNiksdG48MXx8dG4+OXx8OCE9PVVufHx3bjw4fHx3bj4xNXx8c248MHx8c24+OXx8em48MHx8em4+NClyZXR1cm4gZnQoTnQsLTIpOzg9PT13biYmKHduPTkpO3ZhciBCbj1uZXcgcXQ7cmV0''@;'; + put 'put ''dXJuIE50LnN0YXRlPUJuLEJuLnN0cm09TnQsQm4ud3JhcD1UcixCbi5nemhlYWQ9bnVsbCxCbi53X2JpdHM9d24sQm4ud19zaXplPTE8PEJuLndfYml0cyxCbi53X21hc2s9Qm4ud19zaXplLTEsQm4uaGFzaF9iaXRzPXRuKzcsQm4uaGFzaF9zaXplPTE8PEJuLmhhc2hfYml0cyxCbi5oYXNo''@;'; + put 'put ''X21hc2s9Qm4uaGFzaF9zaXplLTEsQm4uaGFzaF9zaGlmdD1+figoQm4uaGFzaF9iaXRzKzMtMSkvMyksQm4ud2luZG93PW5ldyBhZS5CdWY4KDIqQm4ud19zaXplKSxCbi5oZWFkPW5ldyBhZS5CdWYxNihCbi5oYXNoX3NpemUpLEJuLnByZXY9bmV3IGFlLkJ1ZjE2KEJuLndfc2l6ZSksQm4u''@;'; + put 'put ''bGl0X2J1ZnNpemU9MTw8dG4rNixCbi5wZW5kaW5nX2J1Zl9zaXplPTQqQm4ubGl0X2J1ZnNpemUsQm4ucGVuZGluZ19idWY9bmV3IGFlLkJ1ZjgoQm4ucGVuZGluZ19idWZfc2l6ZSksQm4uZF9idWY9Qm4ubGl0X2J1ZnNpemU+PjEsQm4ubF9idWY9MypCbi5saXRfYnVmc2l6ZSxCbi5sZXZl''@;'; + put 'put ''bD1zbixCbi5zdHJhdGVneT16bixCbi5tZXRob2Q9VW4sbnIoTnQpfUZyPVtuZXcgWG4oMCwwLDAsMCxmdW5jdGlvbiBsbihOdCxzbil7dmFyIFVuPTY1NTM1O2ZvcihVbj5OdC5wZW5kaW5nX2J1Zl9zaXplLTUmJihVbj1OdC5wZW5kaW5nX2J1Zl9zaXplLTUpOzspe2lmKE50Lmxvb2thaGVh''@;'; + put 'put ''ZDw9MSl7aWYoeW4oTnQpLDA9PT1OdC5sb29rYWhlYWQmJjA9PT1zbilyZXR1cm4gMTtpZigwPT09TnQubG9va2FoZWFkKWJyZWFrfU50LnN0cnN0YXJ0Kz1OdC5sb29rYWhlYWQsTnQubG9va2FoZWFkPTA7dmFyIHduPU50LmJsb2NrX3N0YXJ0K1VuO2lmKCgwPT09TnQuc3Ryc3RhcnR8fE50''@;'; + put 'put ''LnN0cnN0YXJ0Pj13bikmJihOdC5sb29rYWhlYWQ9TnQuc3Ryc3RhcnQtd24sTnQuc3Ryc3RhcnQ9d24seXQoTnQsITEpLDA9PT1OdC5zdHJtLmF2YWlsX291dCl8fE50LnN0cnN0YXJ0LU50LmJsb2NrX3N0YXJ0Pj1OdC53X3NpemUtZ3QmJih5dChOdCwhMSksMD09PU50LnN0cm0uYXZhaWxf''@;'; + put 'put ''b3V0KSlyZXR1cm4gMX1yZXR1cm4gTnQuaW5zZXJ0PTAsND09PXNuPyh5dChOdCwhMCksMD09PU50LnN0cm0uYXZhaWxfb3V0PzM6NCk6KE50LnN0cnN0YXJ0Pk50LmJsb2NrX3N0YXJ0JiZ5dChOdCwhMSksMSl9KSxuZXcgWG4oNCw0LDgsNCxObiksbmV3IFhuKDQsNSwxNiw4LE5uKSxuZXcg''@;'; + put 'put ''WG4oNCw2LDMyLDMyLE5uKSxuZXcgWG4oNCw0LDE2LDE2LGJuKSxuZXcgWG4oOCwxNiwzMiwzMixibiksbmV3IFhuKDgsMTYsMTI4LDEyOCxibiksbmV3IFhuKDgsMzIsMTI4LDI1NixibiksbmV3IFhuKDMyLDEyOCwyNTgsMTAyNCxibiksbmV3IFhuKDMyLDI1OCwyNTgsNDA5NixibildLGll''@;'; + put 'put ''LmRlZmxhdGVJbml0PWZ1bmN0aW9uIFd0KE50LHNuKXtyZXR1cm4gcW4oTnQsc24sOCwxNSw4LDApfSxpZS5kZWZsYXRlSW5pdDI9cW4saWUuZGVmbGF0ZVJlc2V0PW5yLGllLmRlZmxhdGVSZXNldEtlZXA9cHIsaWUuZGVmbGF0ZVNldEhlYWRlcj1mdW5jdGlvbiBBbihOdCxzbil7cmV0dXJu''@;'; + put 'put ''IE50JiZOdC5zdGF0ZSYmMj09PU50LnN0YXRlLndyYXA/KE50LnN0YXRlLmd6aGVhZD1zbiwwKTotMn0saWUuZGVmbGF0ZT1mdW5jdGlvbiBwbihOdCxzbil7dmFyIFVuLHduLHRuLHpuO2lmKCFOdHx8IU50LnN0YXRlfHxzbj41fHxzbjwwKXJldHVybiBOdD9mdChOdCwtMik6LTI7aWYod249''@;'; + put 'put ''TnQuc3RhdGUsIU50Lm91dHB1dHx8IU50LmlucHV0JiYwIT09TnQuYXZhaWxfaW58fDY2Nj09PXduLnN0YXR1cyYmNCE9PXNuKXJldHVybiBmdChOdCwwPT09TnQuYXZhaWxfb3V0Py01Oi0yKTtpZih3bi5zdHJtPU50LFVuPXduLmxhc3RfZmx1c2gsd24ubGFzdF9mbHVzaD1zbiw0Mj09PXdu''@;'; + put 'put ''LnN0YXR1cylpZigyPT09d24ud3JhcClOdC5hZGxlcj0wLGp0KHduLDMxKSxqdCh3biwxMzkpLGp0KHduLDgpLHduLmd6aGVhZD8oanQod24sKHduLmd6aGVhZC50ZXh0PzE6MCkrKHduLmd6aGVhZC5oY3JjPzI6MCkrKHduLmd6aGVhZC5leHRyYT80OjApKyh3bi5nemhlYWQubmFtZT84OjAp''@;'; + put 'put ''Kyh3bi5nemhlYWQuY29tbWVudD8xNjowKSksanQod24sMjU1JnduLmd6aGVhZC50aW1lKSxqdCh3bix3bi5nemhlYWQudGltZT4+OCYyNTUpLGp0KHduLHduLmd6aGVhZC50aW1lPj4xNiYyNTUpLGp0KHduLHduLmd6aGVhZC50aW1lPj4yNCYyNTUpLGp0KHduLDk9PT13bi5sZXZlbD8yOndu''@;'; + put 'put ''LnN0cmF0ZWd5Pj0yfHx3bi5sZXZlbDwyPzQ6MCksanQod24sMjU1JnduLmd6aGVhZC5vcyksd24uZ3poZWFkLmV4dHJhJiZ3bi5nemhlYWQuZXh0cmEubGVuZ3RoJiYoanQod24sMjU1JnduLmd6aGVhZC5leHRyYS5sZW5ndGgpLGp0KHduLHduLmd6aGVhZC5leHRyYS5sZW5ndGg+PjgmMjU1''@;'; + put 'put ''KSksd24uZ3poZWFkLmhjcmMmJihOdC5hZGxlcj1OKE50LmFkbGVyLHduLnBlbmRpbmdfYnVmLHduLnBlbmRpbmcsMCkpLHduLmd6aW5kZXg9MCx3bi5zdGF0dXM9NjkpOihqdCh3biwwKSxqdCh3biwwKSxqdCh3biwwKSxqdCh3biwwKSxqdCh3biwwKSxqdCh3biw5PT09d24ubGV2ZWw/Mjp3''@;'; + put 'put ''bi5zdHJhdGVneT49Mnx8d24ubGV2ZWw8Mj80OjApLGp0KHduLDMpLHduLnN0YXR1cz0xMTMpO2Vsc2V7dmFyIFRyPTgrKHduLndfYml0cy04PDw0KTw8ODtUcnw9KHduLnN0cmF0ZWd5Pj0yfHx3bi5sZXZlbDwyPzA6d24ubGV2ZWw8Nj8xOjY9PT13bi5sZXZlbD8yOjMpPDw2LDAhPT13bi5z''@;'; + put 'put ''dHJzdGFydCYmKFRyfD0zMiksVHIrPTMxLVRyJTMxLHduLnN0YXR1cz0xMTMsUXQod24sVHIpLDAhPT13bi5zdHJzdGFydCYmKFF0KHduLE50LmFkbGVyPj4+MTYpLFF0KHduLDY1NTM1Jk50LmFkbGVyKSksTnQuYWRsZXI9MX1pZig2OT09PXduLnN0YXR1cylpZih3bi5nemhlYWQuZXh0cmEp''@;'; + put 'put ''e2Zvcih0bj13bi5wZW5kaW5nO3duLmd6aW5kZXg8KDY1NTM1JnduLmd6aGVhZC5leHRyYS5sZW5ndGgpJiYod24ucGVuZGluZyE9PXduLnBlbmRpbmdfYnVmX3NpemV8fCh3bi5nemhlYWQuaGNyYyYmd24ucGVuZGluZz50biYmKE50LmFkbGVyPU4oTnQuYWRsZXIsd24ucGVuZGluZ19idWYs''@;'; + put 'put ''d24ucGVuZGluZy10bix0bikpLFVlKE50KSx0bj13bi5wZW5kaW5nLHduLnBlbmRpbmchPT13bi5wZW5kaW5nX2J1Zl9zaXplKSk7KWp0KHduLDI1NSZ3bi5nemhlYWQuZXh0cmFbd24uZ3ppbmRleF0pLHduLmd6aW5kZXgrKzt3bi5nemhlYWQuaGNyYyYmd24ucGVuZGluZz50biYmKE50LmFk''@;'; + put 'put ''bGVyPU4oTnQuYWRsZXIsd24ucGVuZGluZ19idWYsd24ucGVuZGluZy10bix0bikpLHduLmd6aW5kZXg9PT13bi5nemhlYWQuZXh0cmEubGVuZ3RoJiYod24uZ3ppbmRleD0wLHduLnN0YXR1cz03Myl9ZWxzZSB3bi5zdGF0dXM9NzM7aWYoNzM9PT13bi5zdGF0dXMpaWYod24uZ3poZWFkLm5h''@;'; + put 'put ''bWUpe3RuPXduLnBlbmRpbmc7ZG97aWYod24ucGVuZGluZz09PXduLnBlbmRpbmdfYnVmX3NpemUmJih3bi5nemhlYWQuaGNyYyYmd24ucGVuZGluZz50biYmKE50LmFkbGVyPU4oTnQuYWRsZXIsd24ucGVuZGluZ19idWYsd24ucGVuZGluZy10bix0bikpLFVlKE50KSx0bj13bi5wZW5kaW5n''@;'; + put 'put ''LHduLnBlbmRpbmc9PT13bi5wZW5kaW5nX2J1Zl9zaXplKSl7em49MTticmVha316bj13bi5nemluZGV4PHduLmd6aGVhZC5uYW1lLmxlbmd0aD8yNTUmd24uZ3poZWFkLm5hbWUuY2hhckNvZGVBdCh3bi5nemluZGV4KyspOjAsanQod24sem4pfXdoaWxlKDAhPT16bik7d24uZ3poZWFkLmhj''@;'; + put 'put ''cmMmJnduLnBlbmRpbmc+dG4mJihOdC5hZGxlcj1OKE50LmFkbGVyLHduLnBlbmRpbmdfYnVmLHduLnBlbmRpbmctdG4sdG4pKSwwPT09em4mJih3bi5nemluZGV4PTAsd24uc3RhdHVzPTkxKX1lbHNlIHduLnN0YXR1cz05MTtpZig5MT09PXduLnN0YXR1cylpZih3bi5nemhlYWQuY29tbWVu''@;'; + put 'put ''dCl7dG49d24ucGVuZGluZztkb3tpZih3bi5wZW5kaW5nPT09d24ucGVuZGluZ19idWZfc2l6ZSYmKHduLmd6aGVhZC5oY3JjJiZ3bi5wZW5kaW5nPnRuJiYoTnQuYWRsZXI9TihOdC5hZGxlcix3bi5wZW5kaW5nX2J1Zix3bi5wZW5kaW5nLXRuLHRuKSksVWUoTnQpLHRuPXduLnBlbmRpbmcs''@;'; + put 'put ''d24ucGVuZGluZz09PXduLnBlbmRpbmdfYnVmX3NpemUpKXt6bj0xO2JyZWFrfXpuPXduLmd6aW5kZXg8d24uZ3poZWFkLmNvbW1lbnQubGVuZ3RoPzI1NSZ3bi5nemhlYWQuY29tbWVudC5jaGFyQ29kZUF0KHduLmd6aW5kZXgrKyk6MCxqdCh3bix6bil9d2hpbGUoMCE9PXpuKTt3bi5nemhl''@;'; + put 'put ''YWQuaGNyYyYmd24ucGVuZGluZz50biYmKE50LmFkbGVyPU4oTnQuYWRsZXIsd24ucGVuZGluZ19idWYsd24ucGVuZGluZy10bix0bikpLDA9PT16biYmKHduLnN0YXR1cz0xMDMpfWVsc2Ugd24uc3RhdHVzPTEwMztpZigxMDM9PT13bi5zdGF0dXMmJih3bi5nemhlYWQuaGNyYz8od24ucGVu''@;'; + put 'put ''ZGluZysyPnduLnBlbmRpbmdfYnVmX3NpemUmJlVlKE50KSx3bi5wZW5kaW5nKzI8PXduLnBlbmRpbmdfYnVmX3NpemUmJihqdCh3biwyNTUmTnQuYWRsZXIpLGp0KHduLE50LmFkbGVyPj44JjI1NSksTnQuYWRsZXI9MCx3bi5zdGF0dXM9MTEzKSk6d24uc3RhdHVzPTExMyksMCE9PXduLnBl''@;'; + put 'put ''bmRpbmcpe2lmKFVlKE50KSwwPT09TnQuYXZhaWxfb3V0KXJldHVybiB3bi5sYXN0X2ZsdXNoPS0xLDB9ZWxzZSBpZigwPT09TnQuYXZhaWxfaW4mJkh0KHNuKTw9SHQoVW4pJiY0IT09c24pcmV0dXJuIGZ0KE50LC01KTtpZig2NjY9PT13bi5zdGF0dXMmJjAhPT1OdC5hdmFpbF9pbilyZXR1''@;'; + put 'put ''cm4gZnQoTnQsLTUpO2lmKDAhPT1OdC5hdmFpbF9pbnx8MCE9PXduLmxvb2thaGVhZHx8MCE9PXNuJiY2NjYhPT13bi5zdGF0dXMpe3ZhciBrcj0yPT09d24uc3RyYXRlZ3k/ZnVuY3Rpb24gc3IoTnQsc24pe2Zvcih2YXIgVW47Oyl7aWYoMD09PU50Lmxvb2thaGVhZCYmKHluKE50KSwwPT09''@;'; + put 'put ''TnQubG9va2FoZWFkKSl7aWYoMD09PXNuKXJldHVybiAxO2JyZWFrfWlmKE50Lm1hdGNoX2xlbmd0aD0wLFVuPVkuX3RyX3RhbGx5KE50LDAsTnQud2luZG93W050LnN0cnN0YXJ0XSksTnQubG9va2FoZWFkLS0sTnQuc3Ryc3RhcnQrKyxVbiYmKHl0KE50LCExKSwwPT09TnQuc3RybS5hdmFp''@;'; + put 'put ''bF9vdXQpKXJldHVybiAxfXJldHVybiBOdC5pbnNlcnQ9MCw0PT09c24/KHl0KE50LCEwKSwwPT09TnQuc3RybS5hdmFpbF9vdXQ/Mzo0KTpOdC5sYXN0X2xpdCYmKHl0KE50LCExKSwwPT09TnQuc3RybS5hdmFpbF9vdXQpPzE6Mn0od24sc24pOjM9PT13bi5zdHJhdGVneT9mdW5jdGlvbiBl''@;'; + put 'put ''cihOdCxzbil7Zm9yKHZhciBVbix3bix0bix6bixUcj1OdC53aW5kb3c7Oyl7aWYoTnQubG9va2FoZWFkPD0yNTgpe2lmKHluKE50KSxOdC5sb29rYWhlYWQ8PTI1OCYmMD09PXNuKXJldHVybiAxO2lmKDA9PT1OdC5sb29rYWhlYWQpYnJlYWt9aWYoTnQubWF0Y2hfbGVuZ3RoPTAsTnQubG9v''@;'; + put 'put ''a2FoZWFkPj0zJiZOdC5zdHJzdGFydD4wJiYod249VHJbdG49TnQuc3Ryc3RhcnQtMV0pPT09VHJbKyt0bl0mJnduPT09VHJbKyt0bl0mJnduPT09VHJbKyt0bl0pe3puPU50LnN0cnN0YXJ0KzI1ODtkb3t9d2hpbGUod249PT1UclsrK3RuXSYmd249PT1UclsrK3RuXSYmd249PT1UclsrK3Ru''@;'; + put 'put ''XSYmd249PT1UclsrK3RuXSYmd249PT1UclsrK3RuXSYmd249PT1UclsrK3RuXSYmd249PT1UclsrK3RuXSYmd249PT1UclsrK3RuXSYmdG48em4pO050Lm1hdGNoX2xlbmd0aD0yNTgtKHpuLXRuKSxOdC5tYXRjaF9sZW5ndGg+TnQubG9va2FoZWFkJiYoTnQubWF0Y2hfbGVuZ3RoPU50Lmxv''@;'; + put 'put ''b2thaGVhZCl9aWYoTnQubWF0Y2hfbGVuZ3RoPj0zPyhVbj1ZLl90cl90YWxseShOdCwxLE50Lm1hdGNoX2xlbmd0aC0zKSxOdC5sb29rYWhlYWQtPU50Lm1hdGNoX2xlbmd0aCxOdC5zdHJzdGFydCs9TnQubWF0Y2hfbGVuZ3RoLE50Lm1hdGNoX2xlbmd0aD0wKTooVW49WS5fdHJfdGFsbHko''@;'; + put 'put ''TnQsMCxOdC53aW5kb3dbTnQuc3Ryc3RhcnRdKSxOdC5sb29rYWhlYWQtLSxOdC5zdHJzdGFydCsrKSxVbiYmKHl0KE50LCExKSwwPT09TnQuc3RybS5hdmFpbF9vdXQpKXJldHVybiAxfXJldHVybiBOdC5pbnNlcnQ9MCw0PT09c24/KHl0KE50LCEwKSwwPT09TnQuc3RybS5hdmFpbF9vdXQ/''@;'; + put 'put ''Mzo0KTpOdC5sYXN0X2xpdCYmKHl0KE50LCExKSwwPT09TnQuc3RybS5hdmFpbF9vdXQpPzE6Mn0od24sc24pOkZyW3duLmxldmVsXS5mdW5jKHduLHNuKTtpZigoMz09PWtyfHw0PT09a3IpJiYod24uc3RhdHVzPTY2NiksMT09PWtyfHwzPT09a3IpcmV0dXJuIDA9PT1OdC5hdmFpbF9vdXQm''@;'; + put 'put ''Jih3bi5sYXN0X2ZsdXNoPS0xKSwwO2lmKDI9PT1rciYmKDE9PT1zbj9ZLl90cl9hbGlnbih3bik6NSE9PXNuJiYoWS5fdHJfc3RvcmVkX2Jsb2NrKHduLDAsMCwhMSksMz09PXNuJiYoR2Uod24uaGVhZCksMD09PXduLmxvb2thaGVhZCYmKHduLnN0cnN0YXJ0PTAsd24uYmxvY2tfc3RhcnQ9''@;'; + put 'put ''MCx3bi5pbnNlcnQ9MCkpKSxVZShOdCksMD09PU50LmF2YWlsX291dCkpcmV0dXJuIHduLmxhc3RfZmx1c2g9LTEsMH1yZXR1cm4gNCE9PXNuPzA6d24ud3JhcDw9MD8xOigyPT09d24ud3JhcD8oanQod24sMjU1Jk50LmFkbGVyKSxqdCh3bixOdC5hZGxlcj4+OCYyNTUpLGp0KHduLE50LmFk''@;'; + put 'put ''bGVyPj4xNiYyNTUpLGp0KHduLE50LmFkbGVyPj4yNCYyNTUpLGp0KHduLDI1NSZOdC50b3RhbF9pbiksanQod24sTnQudG90YWxfaW4+PjgmMjU1KSxqdCh3bixOdC50b3RhbF9pbj4+MTYmMjU1KSxqdCh3bixOdC50b3RhbF9pbj4+MjQmMjU1KSk6KFF0KHduLE50LmFkbGVyPj4+MTYpLFF0''@;'; + put 'put ''KHduLDY1NTM1Jk50LmFkbGVyKSksVWUoTnQpLHduLndyYXA+MCYmKHduLndyYXA9LXduLndyYXApLDAhPT13bi5wZW5kaW5nPzA6MSl9LGllLmRlZmxhdGVFbmQ9ZnVuY3Rpb24gS24oTnQpe3ZhciBzbjtyZXR1cm4gTnQmJk50LnN0YXRlPzQyIT09KHNuPU50LnN0YXRlLnN0YXR1cykmJjY5''@;'; + put 'put ''IT09c24mJjczIT09c24mJjkxIT09c24mJjEwMyE9PXNuJiYxMTMhPT1zbiYmNjY2IT09c24/ZnQoTnQsLTIpOihOdC5zdGF0ZT1udWxsLDExMz09PXNuP2Z0KE50LC0zKTowKTotMn0saWUuZGVmbGF0ZUluZm89InBha28gZGVmbGF0ZSAoZnJvbSBOb2RlY2EgcHJvamVjdCkifSx7Ii4uL3V0''@;'; + put 'put ''aWxzL2NvbW1vbiI6MjcsIi4vYWRsZXIzMiI6MjksIi4vY3JjMzIiOjMxLCIuL21lc3NhZ2VzIjozNywiLi90cmVlcyI6Mzh9XSwzMzpbZnVuY3Rpb24oUSxaLGllKXsidXNlIHN0cmljdCI7Wi5leHBvcnRzPWZ1bmN0aW9uIGFlKCl7dGhpcy50ZXh0PTAsdGhpcy50aW1lPTAsdGhpcy54Zmxh''@;'; + put 'put ''Z3M9MCx0aGlzLm9zPTAsdGhpcy5leHRyYT1udWxsLHRoaXMuZXh0cmFfbGVuPTAsdGhpcy5uYW1lPSIiLHRoaXMuY29tbWVudD0iIix0aGlzLmhjcmM9MCx0aGlzLmRvbmU9ITF9fSx7fV0sMzQ6W2Z1bmN0aW9uKFEsWixpZSl7InVzZSBzdHJpY3QiO1ouZXhwb3J0cz1mdW5jdGlvbihOLGVl''@;'; + put 'put ''KXt2YXIgcSxKLHNlLG9lLGNlLGRlLHZlLEFlLGtlLFNlLEllLFRlLEVlLGhlLE8seixuZSx0ZSx4LFAsVixULFMsRix5ZTtGPU4uaW5wdXQsc2U9KEo9Ti5uZXh0X2luKSsoTi5hdmFpbF9pbi01KSx5ZT1OLm91dHB1dCxjZT0ob2U9Ti5uZXh0X291dCktKGVlLU4uYXZhaWxfb3V0KSxkZT1v''@;'; + put 'put ''ZSsoTi5hdmFpbF9vdXQtMjU3KSx2ZT0ocT1OLnN0YXRlKS5kbWF4LEFlPXEud3NpemUsa2U9cS53aGF2ZSxTZT1xLnduZXh0LEllPXEud2luZG93LFRlPXEuaG9sZCxFZT1xLmJpdHMsaGU9cS5sZW5jb2RlLE89cS5kaXN0Y29kZSx6PSgxPDxxLmxlbmJpdHMpLTEsbmU9KDE8PHEuZGlzdGJp''@;'; + put 'put ''dHMpLTE7ZTpkb3tFZTwxNSYmKFRlKz1GW0orK108PEVlLFRlKz1GW0orK108PChFZSs9OCksRWUrPTgpLHRlPWhlW1RlJnpdO3Q6Zm9yKDs7KXtpZihUZT4+Pj14PXRlPj4+MjQsRWUtPXgsMD09KHg9dGU+Pj4xNiYyNTUpKXllW29lKytdPTY1NTM1JnRlO2Vsc2V7aWYoISgxNiZ4KSl7aWYo''@;'; + put 'put ''MD09KDY0JngpKXt0ZT1oZVsoNjU1MzUmdGUpKyhUZSYoMTw8eCktMSldO2NvbnRpbnVlIHR9aWYoMzImeCl7cS5tb2RlPTEyO2JyZWFrIGV9Ti5tc2c9ImludmFsaWQgbGl0ZXJhbC9sZW5ndGggY29kZSIscS5tb2RlPTMwO2JyZWFrIGV9UD02NTUzNSZ0ZSwoeCY9MTUpJiYoRWU8eCYmKFRl''@;'; + put 'put ''Kz1GW0orK108PEVlLEVlKz04KSxQKz1UZSYoMTw8eCktMSxUZT4+Pj14LEVlLT14KSxFZTwxNSYmKFRlKz1GW0orK108PEVlLFRlKz1GW0orK108PChFZSs9OCksRWUrPTgpLHRlPU9bVGUmbmVdO246Zm9yKDs7KXtpZihUZT4+Pj14PXRlPj4+MjQsRWUtPXgsISgxNiYoeD10ZT4+PjE2JjI1''@;'; + put 'put ''NSkpKXtpZigwPT0oNjQmeCkpe3RlPU9bKDY1NTM1JnRlKSsoVGUmKDE8PHgpLTEpXTtjb250aW51ZSBufU4ubXNnPSJpbnZhbGlkIGRpc3RhbmNlIGNvZGUiLHEubW9kZT0zMDticmVhayBlfWlmKFY9NjU1MzUmdGUsRWU8KHgmPTE1KSYmKFRlKz1GW0orK108PEVlLChFZSs9OCk8eCYmKFRl''@;'; + put 'put ''Kz1GW0orK108PEVlLEVlKz04KSksKFYrPVRlJigxPDx4KS0xKT52ZSl7Ti5tc2c9ImludmFsaWQgZGlzdGFuY2UgdG9vIGZhciBiYWNrIixxLm1vZGU9MzA7YnJlYWsgZX1pZihUZT4+Pj14LEVlLT14LFY+KHg9b2UtY2UpKXtpZigoeD1WLXgpPmtlJiZxLnNhbmUpe04ubXNnPSJpbnZhbGlk''@;'; + put 'put ''IGRpc3RhbmNlIHRvbyBmYXIgYmFjayIscS5tb2RlPTMwO2JyZWFrIGV9aWYoVD0wLFM9SWUsMD09PVNlKXtpZihUKz1BZS14LHg8UCl7UC09eDtkb3t5ZVtvZSsrXT1JZVtUKytdfXdoaWxlKC0teCk7VD1vZS1WLFM9eWV9fWVsc2UgaWYoU2U8eCl7aWYoVCs9QWUrU2UteCwoeC09U2UpPFAp''@;'; + put 'put ''e1AtPXg7ZG97eWVbb2UrK109SWVbVCsrXX13aGlsZSgtLXgpO2lmKFQ9MCxTZTxQKXtQLT14PVNlO2Rve3llW29lKytdPUllW1QrK119d2hpbGUoLS14KTtUPW9lLVYsUz15ZX19fWVsc2UgaWYoVCs9U2UteCx4PFApe1AtPXg7ZG97eWVbb2UrK109SWVbVCsrXX13aGlsZSgtLXgpO1Q9b2Ut''@;'; + put 'put ''VixTPXllfWZvcig7UD4yOyl5ZVtvZSsrXT1TW1QrK10seWVbb2UrK109U1tUKytdLHllW29lKytdPVNbVCsrXSxQLT0zO1AmJih5ZVtvZSsrXT1TW1QrK10sUD4xJiYoeWVbb2UrK109U1tUKytdKSl9ZWxzZXtUPW9lLVY7ZG97eWVbb2UrK109eWVbVCsrXSx5ZVtvZSsrXT15ZVtUKytdLHll''@;'; + put 'put ''W29lKytdPXllW1QrK10sUC09M313aGlsZShQPjIpO1AmJih5ZVtvZSsrXT15ZVtUKytdLFA+MSYmKHllW29lKytdPXllW1QrK10pKX1icmVha319YnJlYWt9fXdoaWxlKEo8c2UmJm9lPGRlKTtUZSY9KDE8PChFZS09KFA9RWU+PjMpPDwzKSktMSxOLm5leHRfaW49Si09UCxOLm5leHRfb3V0''@;'; + put 'put ''PW9lLE4uYXZhaWxfaW49SjxzZT9zZS1KKzU6NS0oSi1zZSksTi5hdmFpbF9vdXQ9b2U8ZGU/ZGUtb2UrMjU3OjI1Ny0ob2UtZGUpLHEuaG9sZD1UZSxxLmJpdHM9RWV9fSx7fV0sMzU6W2Z1bmN0aW9uKFEsWixpZSl7InVzZSBzdHJpY3QiO3ZhciBhZT1RKCIuLi91dGlscy9jb21tb24iKSxZ''@;'; + put 'put ''PVEoIi4vYWRsZXIzMiIpLFc9USgiLi9jcmMzMiIpLE49USgiLi9pbmZmYXN0IiksZWU9USgiLi9pbmZ0cmVlcyIpO2Z1bmN0aW9uIFF0KEFuKXtyZXR1cm4oQW4+Pj4yNCYyNTUpKyhBbj4+PjgmNjUyODApKygoNjUyODAmQW4pPDw4KSsoKDI1NSZBbik8PDI0KX1mdW5jdGlvbiBnbigpe3Ro''@;'; + put 'put ''aXMubW9kZT0wLHRoaXMubGFzdD0hMSx0aGlzLndyYXA9MCx0aGlzLmhhdmVkaWN0PSExLHRoaXMuZmxhZ3M9MCx0aGlzLmRtYXg9MCx0aGlzLmNoZWNrPTAsdGhpcy50b3RhbD0wLHRoaXMuaGVhZD1udWxsLHRoaXMud2JpdHM9MCx0aGlzLndzaXplPTAsdGhpcy53aGF2ZT0wLHRoaXMud25l''@;'; + put 'put ''eHQ9MCx0aGlzLndpbmRvdz1udWxsLHRoaXMuaG9sZD0wLHRoaXMuYml0cz0wLHRoaXMubGVuZ3RoPTAsdGhpcy5vZmZzZXQ9MCx0aGlzLmV4dHJhPTAsdGhpcy5sZW5jb2RlPW51bGwsdGhpcy5kaXN0Y29kZT1udWxsLHRoaXMubGVuYml0cz0wLHRoaXMuZGlzdGJpdHM9MCx0aGlzLm5jb2Rl''@;'; + put 'put ''PTAsdGhpcy5ubGVuPTAsdGhpcy5uZGlzdD0wLHRoaXMuaGF2ZT0wLHRoaXMubmV4dD1udWxsLHRoaXMubGVucz1uZXcgYWUuQnVmMTYoMzIwKSx0aGlzLndvcms9bmV3IGFlLkJ1ZjE2KDI4OCksdGhpcy5sZW5keW49bnVsbCx0aGlzLmRpc3RkeW49bnVsbCx0aGlzLnNhbmU9MCx0aGlzLmJh''@;'; + put 'put ''Y2s9MCx0aGlzLndhcz0wfWZ1bmN0aW9uIGRuKEFuKXt2YXIgcW47cmV0dXJuIEFuJiZBbi5zdGF0ZT8oQW4udG90YWxfaW49QW4udG90YWxfb3V0PShxbj1Bbi5zdGF0ZSkudG90YWw9MCxBbi5tc2c9IiIscW4ud3JhcCYmKEFuLmFkbGVyPTEmcW4ud3JhcCkscW4ubW9kZT0xLHFuLmxhc3Q9''@;'; + put 'put ''MCxxbi5oYXZlZGljdD0wLHFuLmRtYXg9MzI3NjgscW4uaGVhZD1udWxsLHFuLmhvbGQ9MCxxbi5iaXRzPTAscW4ubGVuY29kZT1xbi5sZW5keW49bmV3IGFlLkJ1ZjMyKDg1MikscW4uZGlzdGNvZGU9cW4uZGlzdGR5bj1uZXcgYWUuQnVmMzIoNTkyKSxxbi5zYW5lPTEscW4uYmFjaz0tMSww''@;'; + put 'put ''KTotMn1mdW5jdGlvbiB5bihBbil7dmFyIHFuO3JldHVybiBBbiYmQW4uc3RhdGU/KChxbj1Bbi5zdGF0ZSkud3NpemU9MCxxbi53aGF2ZT0wLHFuLnduZXh0PTAsZG4oQW4pKTotMn1mdW5jdGlvbiBsbihBbixxbil7dmFyIFd0LHBuO3JldHVybiFBbnx8IUFuLnN0YXRlfHwocG49QW4uc3Rh''@;'; + put 'put ''dGUscW48MD8oV3Q9MCxxbj0tcW4pOihXdD0xKyhxbj4+NCkscW48NDgmJihxbiY9MTUpKSxxbiYmKHFuPDh8fHFuPjE1KSk/LTI6KG51bGwhPT1wbi53aW5kb3cmJnBuLndiaXRzIT09cW4mJihwbi53aW5kb3c9bnVsbCkscG4ud3JhcD1XdCxwbi53Yml0cz1xbix5bihBbikpfWZ1bmN0aW9u''@;'; + put 'put ''IE5uKEFuLHFuKXt2YXIgV3QscG47cmV0dXJuIEFuPyhwbj1uZXcgZ24sQW4uc3RhdGU9cG4scG4ud2luZG93PW51bGwsMCE9PShXdD1sbihBbixxbikpJiYoQW4uc3RhdGU9bnVsbCksV3QpOi0yfXZhciBzcixYbixlcj0hMDtmdW5jdGlvbiBGcihBbil7aWYoZXIpe3ZhciBxbjtmb3Ioc3I9''@;'; + put 'put ''bmV3IGFlLkJ1ZjMyKDUxMiksWG49bmV3IGFlLkJ1ZjMyKDMyKSxxbj0wO3FuPDE0NDspQW4ubGVuc1txbisrXT04O2Zvcig7cW48MjU2OylBbi5sZW5zW3FuKytdPTk7Zm9yKDtxbjwyODA7KUFuLmxlbnNbcW4rK109Nztmb3IoO3FuPDI4ODspQW4ubGVuc1txbisrXT04O2ZvcihlZSgxLEFu''@;'; + put 'put ''LmxlbnMsMCwyODgsc3IsMCxBbi53b3JrLHtiaXRzOjl9KSxxbj0wO3FuPDMyOylBbi5sZW5zW3FuKytdPTU7ZWUoMixBbi5sZW5zLDAsMzIsWG4sMCxBbi53b3JrLHtiaXRzOjV9KSxlcj0hMX1Bbi5sZW5jb2RlPXNyLEFuLmxlbmJpdHM9OSxBbi5kaXN0Y29kZT1YbixBbi5kaXN0Yml0cz01''@;'; + put 'put ''fWllLmluZmxhdGVSZXNldD15bixpZS5pbmZsYXRlUmVzZXQyPWxuLGllLmluZmxhdGVSZXNldEtlZXA9ZG4saWUuaW5mbGF0ZUluaXQ9ZnVuY3Rpb24gYm4oQW4pe3JldHVybiBObihBbiwxNSl9LGllLmluZmxhdGVJbml0Mj1ObixpZS5pbmZsYXRlPWZ1bmN0aW9uIHF0KEFuLHFuKXt2YXIg''@;'; + put 'put ''V3QscG4sS24sTnQsc24sVW4sd24sdG4sem4sVHIsQm4sa3IsbW4sdW4sX24sR3Qsa24sVm4sZW4sSW4sSm4sb3IsS3IsVnIsY249MCxncj1uZXcgYWUuQnVmOCg0KSxpaT1bMTYsMTcsMTgsMCw4LDcsOSw2LDEwLDUsMTEsNCwxMiwzLDEzLDIsMTQsMSwxNV07aWYoIUFufHwhQW4uc3RhdGV8''@;'; + put 'put ''fCFBbi5vdXRwdXR8fCFBbi5pbnB1dCYmMCE9PUFuLmF2YWlsX2luKXJldHVybi0yOzEyPT09KFd0PUFuLnN0YXRlKS5tb2RlJiYoV3QubW9kZT0xMyksc249QW4ubmV4dF9vdXQsS249QW4ub3V0cHV0LE50PUFuLm5leHRfaW4scG49QW4uaW5wdXQsdG49V3QuaG9sZCx6bj1XdC5iaXRzLFRy''@;'; + put 'put ''PVVuPUFuLmF2YWlsX2luLEJuPXduPUFuLmF2YWlsX291dCxvcj0wO2U6Zm9yKDs7KXN3aXRjaChXdC5tb2RlKXtjYXNlIDE6aWYoMD09PVd0LndyYXApe1d0Lm1vZGU9MTM7YnJlYWt9Zm9yKDt6bjwxNjspe2lmKDA9PT1VbilicmVhayBlO1VuLS0sdG4rPXBuW050KytdPDx6bix6bis9OH1p''@;'; + put 'put ''ZigyJld0LndyYXAmJjM1NjE1PT09dG4pe1d0LmNoZWNrPTAsZ3JbMF09MjU1JnRuLGdyWzFdPXRuPj4+OCYyNTUsV3QuY2hlY2s9VyhXdC5jaGVjayxnciwyLDApLHRuPTAsem49MCxXdC5tb2RlPTI7YnJlYWt9aWYoV3QuZmxhZ3M9MCxXdC5oZWFkJiYoV3QuaGVhZC5kb25lPSExKSwhKDEm''@;'; + put 'put ''V3Qud3JhcCl8fCgoKDI1NSZ0bik8PDgpKyh0bj4+OCkpJTMxKXtBbi5tc2c9ImluY29ycmVjdCBoZWFkZXIgY2hlY2siLFd0Lm1vZGU9MzA7YnJlYWt9aWYoOCE9KDE1JnRuKSl7QW4ubXNnPSJ1bmtub3duIGNvbXByZXNzaW9uIG1ldGhvZCIsV3QubW9kZT0zMDticmVha31pZih6bi09NCxK''@;'; + put 'put ''bj04KygxNSYodG4+Pj49NCkpLDA9PT1XdC53Yml0cylXdC53Yml0cz1KbjtlbHNlIGlmKEpuPld0LndiaXRzKXtBbi5tc2c9ImludmFsaWQgd2luZG93IHNpemUiLFd0Lm1vZGU9MzA7YnJlYWt9V3QuZG1heD0xPDxKbixBbi5hZGxlcj1XdC5jaGVjaz0xLFd0Lm1vZGU9NTEyJnRuPzEwOjEy''@;'; + put 'put ''LHRuPTAsem49MDticmVhaztjYXNlIDI6Zm9yKDt6bjwxNjspe2lmKDA9PT1VbilicmVhayBlO1VuLS0sdG4rPXBuW050KytdPDx6bix6bis9OH1pZihXdC5mbGFncz10biw4IT0oMjU1Jld0LmZsYWdzKSl7QW4ubXNnPSJ1bmtub3duIGNvbXByZXNzaW9uIG1ldGhvZCIsV3QubW9kZT0zMDti''@;'; + put 'put ''cmVha31pZig1NzM0NCZXdC5mbGFncyl7QW4ubXNnPSJ1bmtub3duIGhlYWRlciBmbGFncyBzZXQiLFd0Lm1vZGU9MzA7YnJlYWt9V3QuaGVhZCYmKFd0LmhlYWQudGV4dD10bj4+OCYxKSw1MTImV3QuZmxhZ3MmJihnclswXT0yNTUmdG4sZ3JbMV09dG4+Pj44JjI1NSxXdC5jaGVjaz1XKFd0''@;'; + put 'put ''LmNoZWNrLGdyLDIsMCkpLHRuPTAsem49MCxXdC5tb2RlPTM7Y2FzZSAzOmZvcig7em48MzI7KXtpZigwPT09VW4pYnJlYWsgZTtVbi0tLHRuKz1wbltOdCsrXTw8em4sem4rPTh9V3QuaGVhZCYmKFd0LmhlYWQudGltZT10biksNTEyJld0LmZsYWdzJiYoZ3JbMF09MjU1JnRuLGdyWzFdPXRu''@;'; + put 'put ''Pj4+OCYyNTUsZ3JbMl09dG4+Pj4xNiYyNTUsZ3JbM109dG4+Pj4yNCYyNTUsV3QuY2hlY2s9VyhXdC5jaGVjayxnciw0LDApKSx0bj0wLHpuPTAsV3QubW9kZT00O2Nhc2UgNDpmb3IoO3puPDE2Oyl7aWYoMD09PVVuKWJyZWFrIGU7VW4tLSx0bis9cG5bTnQrK108PHpuLHpuKz04fVd0Lmhl''@;'; + put 'put ''YWQmJihXdC5oZWFkLnhmbGFncz0yNTUmdG4sV3QuaGVhZC5vcz10bj4+OCksNTEyJld0LmZsYWdzJiYoZ3JbMF09MjU1JnRuLGdyWzFdPXRuPj4+OCYyNTUsV3QuY2hlY2s9VyhXdC5jaGVjayxnciwyLDApKSx0bj0wLHpuPTAsV3QubW9kZT01O2Nhc2UgNTppZigxMDI0Jld0LmZsYWdzKXtm''@;'; + put 'put ''b3IoO3puPDE2Oyl7aWYoMD09PVVuKWJyZWFrIGU7VW4tLSx0bis9cG5bTnQrK108PHpuLHpuKz04fVd0Lmxlbmd0aD10bixXdC5oZWFkJiYoV3QuaGVhZC5leHRyYV9sZW49dG4pLDUxMiZXdC5mbGFncyYmKGdyWzBdPTI1NSZ0bixnclsxXT10bj4+PjgmMjU1LFd0LmNoZWNrPVcoV3QuY2hl''@;'; + put 'put ''Y2ssZ3IsMiwwKSksdG49MCx6bj0wfWVsc2UgV3QuaGVhZCYmKFd0LmhlYWQuZXh0cmE9bnVsbCk7V3QubW9kZT02O2Nhc2UgNjppZigxMDI0Jld0LmZsYWdzJiYoKGtyPVd0Lmxlbmd0aCk+VW4mJihrcj1Vbiksa3ImJihXdC5oZWFkJiYoSm49V3QuaGVhZC5leHRyYV9sZW4tV3QubGVuZ3Ro''@;'; + put 'put ''LFd0LmhlYWQuZXh0cmF8fChXdC5oZWFkLmV4dHJhPW5ldyBBcnJheShXdC5oZWFkLmV4dHJhX2xlbikpLGFlLmFycmF5U2V0KFd0LmhlYWQuZXh0cmEscG4sTnQsa3IsSm4pKSw1MTImV3QuZmxhZ3MmJihXdC5jaGVjaz1XKFd0LmNoZWNrLHBuLGtyLE50KSksVW4tPWtyLE50Kz1rcixXdC5s''@;'; + put 'put ''ZW5ndGgtPWtyKSxXdC5sZW5ndGgpKWJyZWFrIGU7V3QubGVuZ3RoPTAsV3QubW9kZT03O2Nhc2UgNzppZigyMDQ4Jld0LmZsYWdzKXtpZigwPT09VW4pYnJlYWsgZTtrcj0wO2Rve0puPXBuW050K2tyKytdLFd0LmhlYWQmJkpuJiZXdC5sZW5ndGg8NjU1MzYmJihXdC5oZWFkLm5hbWUrPVN0''@;'; + put 'put ''cmluZy5mcm9tQ2hhckNvZGUoSm4pKX13aGlsZShKbiYma3I8VW4pO2lmKDUxMiZXdC5mbGFncyYmKFd0LmNoZWNrPVcoV3QuY2hlY2sscG4sa3IsTnQpKSxVbi09a3IsTnQrPWtyLEpuKWJyZWFrIGV9ZWxzZSBXdC5oZWFkJiYoV3QuaGVhZC5uYW1lPW51bGwpO1d0Lmxlbmd0aD0wLFd0Lm1v''@;'; + put 'put ''ZGU9ODtjYXNlIDg6aWYoNDA5NiZXdC5mbGFncyl7aWYoMD09PVVuKWJyZWFrIGU7a3I9MDtkb3tKbj1wbltOdCtrcisrXSxXdC5oZWFkJiZKbiYmV3QubGVuZ3RoPDY1NTM2JiYoV3QuaGVhZC5jb21tZW50Kz1TdHJpbmcuZnJvbUNoYXJDb2RlKEpuKSl9d2hpbGUoSm4mJmtyPFVuKTtpZig1''@;'; + put 'put ''MTImV3QuZmxhZ3MmJihXdC5jaGVjaz1XKFd0LmNoZWNrLHBuLGtyLE50KSksVW4tPWtyLE50Kz1rcixKbilicmVhayBlfWVsc2UgV3QuaGVhZCYmKFd0LmhlYWQuY29tbWVudD1udWxsKTtXdC5tb2RlPTk7Y2FzZSA5OmlmKDUxMiZXdC5mbGFncyl7Zm9yKDt6bjwxNjspe2lmKDA9PT1Vbili''@;'; + put 'put ''cmVhayBlO1VuLS0sdG4rPXBuW050KytdPDx6bix6bis9OH1pZih0biE9PSg2NTUzNSZXdC5jaGVjaykpe0FuLm1zZz0iaGVhZGVyIGNyYyBtaXNtYXRjaCIsV3QubW9kZT0zMDticmVha310bj0wLHpuPTB9V3QuaGVhZCYmKFd0LmhlYWQuaGNyYz1XdC5mbGFncz4+OSYxLFd0LmhlYWQuZG9u''@;'; + put 'put ''ZT0hMCksQW4uYWRsZXI9V3QuY2hlY2s9MCxXdC5tb2RlPTEyO2JyZWFrO2Nhc2UgMTA6Zm9yKDt6bjwzMjspe2lmKDA9PT1VbilicmVhayBlO1VuLS0sdG4rPXBuW050KytdPDx6bix6bis9OH1Bbi5hZGxlcj1XdC5jaGVjaz1RdCh0biksdG49MCx6bj0wLFd0Lm1vZGU9MTE7Y2FzZSAxMTpp''@;'; + put 'put ''ZigwPT09V3QuaGF2ZWRpY3QpcmV0dXJuIEFuLm5leHRfb3V0PXNuLEFuLmF2YWlsX291dD13bixBbi5uZXh0X2luPU50LEFuLmF2YWlsX2luPVVuLFd0LmhvbGQ9dG4sV3QuYml0cz16biwyO0FuLmFkbGVyPVd0LmNoZWNrPTEsV3QubW9kZT0xMjtjYXNlIDEyOmlmKDU9PT1xbnx8Nj09PXFu''@;'; + put 'put ''KWJyZWFrIGU7Y2FzZSAxMzppZihXdC5sYXN0KXt0bj4+Pj03JnpuLHpuLT03JnpuLFd0Lm1vZGU9Mjc7YnJlYWt9Zm9yKDt6bjwzOyl7aWYoMD09PVVuKWJyZWFrIGU7VW4tLSx0bis9cG5bTnQrK108PHpuLHpuKz04fXN3aXRjaChXdC5sYXN0PTEmdG4sem4tPTEsMyYodG4+Pj49MSkpe2Nh''@;'; + put 'put ''c2UgMDpXdC5tb2RlPTE0O2JyZWFrO2Nhc2UgMTppZihGcihXdCksV3QubW9kZT0yMCw2PT09cW4pe3RuPj4+PTIsem4tPTI7YnJlYWsgZX1icmVhaztjYXNlIDI6V3QubW9kZT0xNzticmVhaztjYXNlIDM6QW4ubXNnPSJpbnZhbGlkIGJsb2NrIHR5cGUiLFd0Lm1vZGU9MzB9dG4+Pj49Mix6''@;'; + put 'put ''bi09MjticmVhaztjYXNlIDE0OmZvcih0bj4+Pj03JnpuLHpuLT03JnpuO3puPDMyOyl7aWYoMD09PVVuKWJyZWFrIGU7VW4tLSx0bis9cG5bTnQrK108PHpuLHpuKz04fWlmKCg2NTUzNSZ0bikhPSh0bj4+PjE2XjY1NTM1KSl7QW4ubXNnPSJpbnZhbGlkIHN0b3JlZCBibG9jayBsZW5ndGhz''@;'; + put 'put ''IixXdC5tb2RlPTMwO2JyZWFrfWlmKFd0Lmxlbmd0aD02NTUzNSZ0bix0bj0wLHpuPTAsV3QubW9kZT0xNSw2PT09cW4pYnJlYWsgZTtjYXNlIDE1Old0Lm1vZGU9MTY7Y2FzZSAxNjppZihrcj1XdC5sZW5ndGgpe2lmKGtyPlVuJiYoa3I9VW4pLGtyPnduJiYoa3I9d24pLDA9PT1rcilicmVh''@;'; + put 'put ''ayBlO2FlLmFycmF5U2V0KEtuLHBuLE50LGtyLHNuKSxVbi09a3IsTnQrPWtyLHduLT1rcixzbis9a3IsV3QubGVuZ3RoLT1rcjticmVha31XdC5tb2RlPTEyO2JyZWFrO2Nhc2UgMTc6Zm9yKDt6bjwxNDspe2lmKDA9PT1VbilicmVhayBlO1VuLS0sdG4rPXBuW050KytdPDx6bix6bis9OH1p''@;'; + put 'put ''ZihXdC5ubGVuPTI1NysoMzEmdG4pLHpuLT01LFd0Lm5kaXN0PTErKDMxJih0bj4+Pj01KSksem4tPTUsV3QubmNvZGU9NCsoMTUmKHRuPj4+PTUpKSx0bj4+Pj00LHpuLT00LFd0Lm5sZW4+Mjg2fHxXdC5uZGlzdD4zMCl7QW4ubXNnPSJ0b28gbWFueSBsZW5ndGggb3IgZGlzdGFuY2Ugc3lt''@;'; + put 'put ''Ym9scyIsV3QubW9kZT0zMDticmVha31XdC5oYXZlPTAsV3QubW9kZT0xODtjYXNlIDE4OmZvcig7V3QuaGF2ZTxXdC5uY29kZTspe2Zvcig7em48Mzspe2lmKDA9PT1VbilicmVhayBlO1VuLS0sdG4rPXBuW050KytdPDx6bix6bis9OH1XdC5sZW5zW2lpW1d0LmhhdmUrK11dPTcmdG4sdG4+''@;'; + put 'put ''Pj49Myx6bi09M31mb3IoO1d0LmhhdmU8MTk7KVd0LmxlbnNbaWlbV3QuaGF2ZSsrXV09MDtpZihXdC5sZW5jb2RlPVd0LmxlbmR5bixXdC5sZW5iaXRzPTcsb3I9ZWUoMCxXdC5sZW5zLDAsMTksV3QubGVuY29kZSwwLFd0LndvcmssS3I9e2JpdHM6V3QubGVuYml0c30pLFd0LmxlbmJpdHM9''@;'; + put 'put ''S3IuYml0cyxvcil7QW4ubXNnPSJpbnZhbGlkIGNvZGUgbGVuZ3RocyBzZXQiLFd0Lm1vZGU9MzA7YnJlYWt9V3QuaGF2ZT0wLFd0Lm1vZGU9MTk7Y2FzZSAxOTpmb3IoO1d0LmhhdmU8V3QubmxlbitXdC5uZGlzdDspe2Zvcig7R3Q9KGNuPVd0LmxlbmNvZGVbdG4mKDE8PFd0LmxlbmJpdHMp''@;'; + put 'put ''LTFdKT4+PjE2JjI1NSxrbj02NTUzNSZjbiwhKChfbj1jbj4+PjI0KTw9em4pOyl7aWYoMD09PVVuKWJyZWFrIGU7VW4tLSx0bis9cG5bTnQrK108PHpuLHpuKz04fWlmKGtuPDE2KXRuPj4+PV9uLHpuLT1fbixXdC5sZW5zW1d0LmhhdmUrK109a247ZWxzZXtpZigxNj09PWtuKXtmb3IoVnI9''@;'; + put 'put ''X24rMjt6bjxWcjspe2lmKDA9PT1VbilicmVhayBlO1VuLS0sdG4rPXBuW050KytdPDx6bix6bis9OH1pZih0bj4+Pj1fbix6bi09X24sMD09PVd0LmhhdmUpe0FuLm1zZz0iaW52YWxpZCBiaXQgbGVuZ3RoIHJlcGVhdCIsV3QubW9kZT0zMDticmVha31Kbj1XdC5sZW5zW1d0LmhhdmUtMV0s''@;'; + put 'put ''a3I9MysoMyZ0biksdG4+Pj49Mix6bi09Mn1lbHNlIGlmKDE3PT09a24pe2ZvcihWcj1fbiszO3puPFZyOyl7aWYoMD09PVVuKWJyZWFrIGU7VW4tLSx0bis9cG5bTnQrK108PHpuLHpuKz04fXpuLT1fbixKbj0wLGtyPTMrKDcmKHRuPj4+PV9uKSksdG4+Pj49Myx6bi09M31lbHNle2ZvcihW''@;'; + put 'put ''cj1fbis3O3puPFZyOyl7aWYoMD09PVVuKWJyZWFrIGU7VW4tLSx0bis9cG5bTnQrK108PHpuLHpuKz04fXpuLT1fbixKbj0wLGtyPTExKygxMjcmKHRuPj4+PV9uKSksdG4+Pj49Nyx6bi09N31pZihXdC5oYXZlK2tyPld0Lm5sZW4rV3QubmRpc3Qpe0FuLm1zZz0iaW52YWxpZCBiaXQgbGVu''@;'; + put 'put ''Z3RoIHJlcGVhdCIsV3QubW9kZT0zMDticmVha31mb3IoO2tyLS07KVd0LmxlbnNbV3QuaGF2ZSsrXT1Kbn19aWYoMzA9PT1XdC5tb2RlKWJyZWFrO2lmKDA9PT1XdC5sZW5zWzI1Nl0pe0FuLm1zZz0iaW52YWxpZCBjb2RlIC0tIG1pc3NpbmcgZW5kLW9mLWJsb2NrIixXdC5tb2RlPTMwO2Jy''@;'; + put 'put ''ZWFrfWlmKFd0LmxlbmJpdHM9OSxvcj1lZSgxLFd0LmxlbnMsMCxXdC5ubGVuLFd0LmxlbmNvZGUsMCxXdC53b3JrLEtyPXtiaXRzOld0LmxlbmJpdHN9KSxXdC5sZW5iaXRzPUtyLmJpdHMsb3Ipe0FuLm1zZz0iaW52YWxpZCBsaXRlcmFsL2xlbmd0aHMgc2V0IixXdC5tb2RlPTMwO2JyZWFr''@;'; + put 'put ''fWlmKFd0LmRpc3RiaXRzPTYsV3QuZGlzdGNvZGU9V3QuZGlzdGR5bixvcj1lZSgyLFd0LmxlbnMsV3QubmxlbixXdC5uZGlzdCxXdC5kaXN0Y29kZSwwLFd0LndvcmssS3I9e2JpdHM6V3QuZGlzdGJpdHN9KSxXdC5kaXN0Yml0cz1Lci5iaXRzLG9yKXtBbi5tc2c9ImludmFsaWQgZGlzdGFu''@;'; + put 'put ''Y2VzIHNldCIsV3QubW9kZT0zMDticmVha31pZihXdC5tb2RlPTIwLDY9PT1xbilicmVhayBlO2Nhc2UgMjA6V3QubW9kZT0yMTtjYXNlIDIxOmlmKFVuPj02JiZ3bj49MjU4KXtBbi5uZXh0X291dD1zbixBbi5hdmFpbF9vdXQ9d24sQW4ubmV4dF9pbj1OdCxBbi5hdmFpbF9pbj1VbixXdC5o''@;'; + put 'put ''b2xkPXRuLFd0LmJpdHM9em4sTihBbixCbiksc249QW4ubmV4dF9vdXQsS249QW4ub3V0cHV0LHduPUFuLmF2YWlsX291dCxOdD1Bbi5uZXh0X2luLHBuPUFuLmlucHV0LFVuPUFuLmF2YWlsX2luLHRuPVd0LmhvbGQsem49V3QuYml0cywxMj09PVd0Lm1vZGUmJihXdC5iYWNrPS0xKTticmVh''@;'; + put 'put ''a31mb3IoV3QuYmFjaz0wO0d0PShjbj1XdC5sZW5jb2RlW3RuJigxPDxXdC5sZW5iaXRzKS0xXSk+Pj4xNiYyNTUsa249NjU1MzUmY24sISgoX249Y24+Pj4yNCk8PXpuKTspe2lmKDA9PT1VbilicmVhayBlO1VuLS0sdG4rPXBuW050KytdPDx6bix6bis9OH1pZihHdCYmMD09KDI0MCZHdCkp''@;'; + put 'put ''e2ZvcihWbj1fbixlbj1HdCxJbj1rbjtHdD0oY249V3QubGVuY29kZVtJbisoKHRuJigxPDxWbitlbiktMSk+PlZuKV0pPj4+MTYmMjU1LGtuPTY1NTM1JmNuLCEoVm4rKF9uPWNuPj4+MjQpPD16bik7KXtpZigwPT09VW4pYnJlYWsgZTtVbi0tLHRuKz1wbltOdCsrXTw8em4sem4rPTh9dG4+''@;'; + put 'put ''Pj49Vm4sem4tPVZuLFd0LmJhY2srPVZufWlmKHRuPj4+PV9uLHpuLT1fbixXdC5iYWNrKz1fbixXdC5sZW5ndGg9a24sMD09PUd0KXtXdC5tb2RlPTI2O2JyZWFrfWlmKDMyJkd0KXtXdC5iYWNrPS0xLFd0Lm1vZGU9MTI7YnJlYWt9aWYoNjQmR3Qpe0FuLm1zZz0iaW52YWxpZCBsaXRlcmFs''@;'; + put 'put ''L2xlbmd0aCBjb2RlIixXdC5tb2RlPTMwO2JyZWFrfVd0LmV4dHJhPTE1Jkd0LFd0Lm1vZGU9MjI7Y2FzZSAyMjppZihXdC5leHRyYSl7Zm9yKFZyPVd0LmV4dHJhO3puPFZyOyl7aWYoMD09PVVuKWJyZWFrIGU7VW4tLSx0bis9cG5bTnQrK108PHpuLHpuKz04fVd0Lmxlbmd0aCs9dG4mKDE8''@;'; + put 'put ''PFd0LmV4dHJhKS0xLHRuPj4+PVd0LmV4dHJhLHpuLT1XdC5leHRyYSxXdC5iYWNrKz1XdC5leHRyYX1XdC53YXM9V3QubGVuZ3RoLFd0Lm1vZGU9MjM7Y2FzZSAyMzpmb3IoO0d0PShjbj1XdC5kaXN0Y29kZVt0biYoMTw8V3QuZGlzdGJpdHMpLTFdKT4+PjE2JjI1NSxrbj02NTUzNSZjbiwh''@;'; + put 'put ''KChfbj1jbj4+PjI0KTw9em4pOyl7aWYoMD09PVVuKWJyZWFrIGU7VW4tLSx0bis9cG5bTnQrK108PHpuLHpuKz04fWlmKDA9PSgyNDAmR3QpKXtmb3IoVm49X24sZW49R3QsSW49a247R3Q9KGNuPVd0LmRpc3Rjb2RlW0luKygodG4mKDE8PFZuK2VuKS0xKT4+Vm4pXSk+Pj4xNiYyNTUsa249''@;'; + put 'put ''NjU1MzUmY24sIShWbisoX249Y24+Pj4yNCk8PXpuKTspe2lmKDA9PT1VbilicmVhayBlO1VuLS0sdG4rPXBuW050KytdPDx6bix6bis9OH10bj4+Pj1Wbix6bi09Vm4sV3QuYmFjays9Vm59aWYodG4+Pj49X24sem4tPV9uLFd0LmJhY2srPV9uLDY0Jkd0KXtBbi5tc2c9ImludmFsaWQgZGlz''@;'; + put 'put ''dGFuY2UgY29kZSIsV3QubW9kZT0zMDticmVha31XdC5vZmZzZXQ9a24sV3QuZXh0cmE9MTUmR3QsV3QubW9kZT0yNDtjYXNlIDI0OmlmKFd0LmV4dHJhKXtmb3IoVnI9V3QuZXh0cmE7em48VnI7KXtpZigwPT09VW4pYnJlYWsgZTtVbi0tLHRuKz1wbltOdCsrXTw8em4sem4rPTh9V3Qub2Zm''@;'; + put 'put ''c2V0Kz10biYoMTw8V3QuZXh0cmEpLTEsdG4+Pj49V3QuZXh0cmEsem4tPVd0LmV4dHJhLFd0LmJhY2srPVd0LmV4dHJhfWlmKFd0Lm9mZnNldD5XdC5kbWF4KXtBbi5tc2c9ImludmFsaWQgZGlzdGFuY2UgdG9vIGZhciBiYWNrIixXdC5tb2RlPTMwO2JyZWFrfVd0Lm1vZGU9MjU7Y2FzZSAy''@;'; + put 'put ''NTppZigwPT09d24pYnJlYWsgZTtpZihXdC5vZmZzZXQ+KGtyPUJuLXduKSl7aWYoKGtyPVd0Lm9mZnNldC1rcik+V3Qud2hhdmUmJld0LnNhbmUpe0FuLm1zZz0iaW52YWxpZCBkaXN0YW5jZSB0b28gZmFyIGJhY2siLFd0Lm1vZGU9MzA7YnJlYWt9bW49a3I+V3Qud25leHQ/V3Qud3NpemUt''@;'; + put 'put ''KGtyLT1XdC53bmV4dCk6V3Qud25leHQta3Isa3I+V3QubGVuZ3RoJiYoa3I9V3QubGVuZ3RoKSx1bj1XdC53aW5kb3d9ZWxzZSB1bj1Lbixtbj1zbi1XdC5vZmZzZXQsa3I9V3QubGVuZ3RoO2tyPnduJiYoa3I9d24pLHduLT1rcixXdC5sZW5ndGgtPWtyO2Rve0tuW3NuKytdPXVuW21uKytd''@;'; + put 'put ''fXdoaWxlKC0ta3IpOzA9PT1XdC5sZW5ndGgmJihXdC5tb2RlPTIxKTticmVhaztjYXNlIDI2OmlmKDA9PT13bilicmVhayBlO0tuW3NuKytdPVd0Lmxlbmd0aCx3bi0tLFd0Lm1vZGU9MjE7YnJlYWs7Y2FzZSAyNzppZihXdC53cmFwKXtmb3IoO3puPDMyOyl7aWYoMD09PVVuKWJyZWFrIGU7''@;'; + put 'put ''VW4tLSx0bnw9cG5bTnQrK108PHpuLHpuKz04fWlmKEFuLnRvdGFsX291dCs9Qm4tPXduLFd0LnRvdGFsKz1CbixCbiYmKEFuLmFkbGVyPVd0LmNoZWNrPVd0LmZsYWdzP1coV3QuY2hlY2ssS24sQm4sc24tQm4pOlkoV3QuY2hlY2ssS24sQm4sc24tQm4pKSxCbj13biwoV3QuZmxhZ3M/dG46''@;'; + put 'put ''UXQodG4pKSE9PVd0LmNoZWNrKXtBbi5tc2c9ImluY29ycmVjdCBkYXRhIGNoZWNrIixXdC5tb2RlPTMwO2JyZWFrfXRuPTAsem49MH1XdC5tb2RlPTI4O2Nhc2UgMjg6aWYoV3Qud3JhcCYmV3QuZmxhZ3Mpe2Zvcig7em48MzI7KXtpZigwPT09VW4pYnJlYWsgZTtVbi0tLHRuKz1wbltOdCsr''@;'; + put 'put ''XTw8em4sem4rPTh9aWYodG4hPT0oNDI5NDk2NzI5NSZXdC50b3RhbCkpe0FuLm1zZz0iaW5jb3JyZWN0IGxlbmd0aCBjaGVjayIsV3QubW9kZT0zMDticmVha310bj0wLHpuPTB9V3QubW9kZT0yOTtjYXNlIDI5Om9yPTE7YnJlYWsgZTtjYXNlIDMwOm9yPS0zO2JyZWFrIGU7Y2FzZSAzMTpy''@;'; + put 'put ''ZXR1cm4tNDtkZWZhdWx0OnJldHVybi0yfXJldHVybiBBbi5uZXh0X291dD1zbixBbi5hdmFpbF9vdXQ9d24sQW4ubmV4dF9pbj1OdCxBbi5hdmFpbF9pbj1VbixXdC5ob2xkPXRuLFd0LmJpdHM9em4sKFd0LndzaXplfHxCbiE9PUFuLmF2YWlsX291dCYmV3QubW9kZTwzMCYmKFd0Lm1vZGU8''@;'; + put 'put ''Mjd8fDQhPT1xbikpJiZmdW5jdGlvbiB4cihBbixxbixXdCxwbil7dmFyIEtuLE50PUFuLnN0YXRlO3JldHVybiBudWxsPT09TnQud2luZG93JiYoTnQud3NpemU9MTw8TnQud2JpdHMsTnQud25leHQ9MCxOdC53aGF2ZT0wLE50LndpbmRvdz1uZXcgYWUuQnVmOChOdC53c2l6ZSkpLHBuPj1O''@;'; + put 'put ''dC53c2l6ZT8oYWUuYXJyYXlTZXQoTnQud2luZG93LHFuLFd0LU50LndzaXplLE50LndzaXplLDApLE50LnduZXh0PTAsTnQud2hhdmU9TnQud3NpemUpOigoS249TnQud3NpemUtTnQud25leHQpPnBuJiYoS249cG4pLGFlLmFycmF5U2V0KE50LndpbmRvdyxxbixXdC1wbixLbixOdC53bmV4''@;'; + put 'put ''dCksKHBuLT1Lbik/KGFlLmFycmF5U2V0KE50LndpbmRvdyxxbixXdC1wbixwbiwwKSxOdC53bmV4dD1wbixOdC53aGF2ZT1OdC53c2l6ZSk6KE50LnduZXh0Kz1LbixOdC53bmV4dD09PU50LndzaXplJiYoTnQud25leHQ9MCksTnQud2hhdmU8TnQud3NpemUmJihOdC53aGF2ZSs9S24pKSks''@;'; + put 'put ''MH0oQW4sQW4ub3V0cHV0LEFuLm5leHRfb3V0LEJuLUFuLmF2YWlsX291dCk/KFd0Lm1vZGU9MzEsLTQpOihCbi09QW4uYXZhaWxfb3V0LEFuLnRvdGFsX2luKz1Uci09QW4uYXZhaWxfaW4sQW4udG90YWxfb3V0Kz1CbixXdC50b3RhbCs9Qm4sV3Qud3JhcCYmQm4mJihBbi5hZGxlcj1XdC5j''@;'; + put 'put ''aGVjaz1XdC5mbGFncz9XKFd0LmNoZWNrLEtuLEJuLEFuLm5leHRfb3V0LUJuKTpZKFd0LmNoZWNrLEtuLEJuLEFuLm5leHRfb3V0LUJuKSksQW4uZGF0YV90eXBlPVd0LmJpdHMrKFd0Lmxhc3Q/NjQ6MCkrKDEyPT09V3QubW9kZT8xMjg6MCkrKDIwPT09V3QubW9kZXx8MTU9PT1XdC5tb2Rl''@;'; + put 'put ''PzI1NjowKSwoMD09PVRyJiYwPT09Qm58fDQ9PT1xbikmJjA9PT1vciYmKG9yPS01KSxvcil9LGllLmluZmxhdGVFbmQ9ZnVuY3Rpb24gcHIoQW4pe2lmKCFBbnx8IUFuLnN0YXRlKXJldHVybi0yO3ZhciBxbj1Bbi5zdGF0ZTtyZXR1cm4gcW4ud2luZG93JiYocW4ud2luZG93PW51bGwpLEFu''@;'; + put 'put ''LnN0YXRlPW51bGwsMH0saWUuaW5mbGF0ZUdldEhlYWRlcj1mdW5jdGlvbiBucihBbixxbil7dmFyIFd0O3JldHVybiBBbiYmQW4uc3RhdGUmJjAhPSgyJihXdD1Bbi5zdGF0ZSkud3JhcCk/KFd0LmhlYWQ9cW4scW4uZG9uZT0hMSwwKTotMn0saWUuaW5mbGF0ZUluZm89InBha28gaW5mbGF0''@;'; + put 'put ''ZSAoZnJvbSBOb2RlY2EgcHJvamVjdCkifSx7Ii4uL3V0aWxzL2NvbW1vbiI6MjcsIi4vYWRsZXIzMiI6MjksIi4vY3JjMzIiOjMxLCIuL2luZmZhc3QiOjM0LCIuL2luZnRyZWVzIjozNn1dLDM2OltmdW5jdGlvbihRLFosaWUpeyJ1c2Ugc3RyaWN0Ijt2YXIgYWU9USgiLi4vdXRpbHMvY29t''@;'; + put 'put ''bW9uIiksc2U9WzMsNCw1LDYsNyw4LDksMTAsMTEsMTMsMTUsMTcsMTksMjMsMjcsMzEsMzUsNDMsNTEsNTksNjcsODMsOTksMTE1LDEzMSwxNjMsMTk1LDIyNywyNTgsMCwwXSxvZT1bMTYsMTYsMTYsMTYsMTYsMTYsMTYsMTYsMTcsMTcsMTcsMTcsMTgsMTgsMTgsMTgsMTksMTksMTksMTks''@;'; + put 'put ''MjAsMjAsMjAsMjAsMjEsMjEsMjEsMjEsMTYsNzIsNzhdLGNlPVsxLDIsMyw0LDUsNyw5LDEzLDE3LDI1LDMzLDQ5LDY1LDk3LDEyOSwxOTMsMjU3LDM4NSw1MTMsNzY5LDEwMjUsMTUzNywyMDQ5LDMwNzMsNDA5Nyw2MTQ1LDgxOTMsMTIyODksMTYzODUsMjQ1NzcsMCwwXSxkZT1bMTYsMTYs''@;'; + put 'put ''MTYsMTYsMTcsMTcsMTgsMTgsMTksMTksMjAsMjAsMjEsMjEsMjIsMjIsMjMsMjMsMjQsMjQsMjUsMjUsMjYsMjYsMjcsMjcsMjgsMjgsMjksMjksNjQsNjRdO1ouZXhwb3J0cz1mdW5jdGlvbihBZSxrZSxTZSxJZSxUZSxFZSxoZSxPKXt2YXIgRGUsUGUsUWUsJGUsZ3QsdnQsX3QsdHQsZXQs''@;'; + put 'put ''ej1PLmJpdHMsbmU9MCx0ZT0wLHg9MCxQPTAsVj0wLFQ9MCxTPTAsRj0wLHllPTAsQ2U9MCx3dD1udWxsLG10PTAsQXQ9bmV3IGFlLkJ1ZjE2KDE2KSxodD1uZXcgYWUuQnVmMTYoMTYpLEJ0PW51bGwsb249MDtmb3IobmU9MDtuZTw9MTU7bmUrKylBdFtuZV09MDtmb3IodGU9MDt0ZTxJZTt0''@;'; + put 'put ''ZSsrKUF0W2tlW1NlK3RlXV0rKztmb3IoVj16LFA9MTU7UD49MSYmMD09PUF0W1BdO1AtLSk7aWYoVj5QJiYoVj1QKSwwPT09UClyZXR1cm4gVGVbRWUrK109MjA5NzE1MjAsVGVbRWUrK109MjA5NzE1MjAsTy5iaXRzPTEsMDtmb3IoeD0xO3g8UCYmMD09PUF0W3hdO3grKyk7Zm9yKFY8eCYm''@;'; + put 'put ''KFY9eCksRj0xLG5lPTE7bmU8PTE1O25lKyspaWYoRjw8PTEsKEYtPUF0W25lXSk8MClyZXR1cm4tMTtpZihGPjAmJigwPT09QWV8fDEhPT1QKSlyZXR1cm4tMTtmb3IoaHRbMV09MCxuZT0xO25lPDE1O25lKyspaHRbbmUrMV09aHRbbmVdK0F0W25lXTtmb3IodGU9MDt0ZTxJZTt0ZSsrKTAh''@;'; + put 'put ''PT1rZVtTZSt0ZV0mJihoZVtodFtrZVtTZSt0ZV1dKytdPXRlKTtpZigwPT09QWU/KHd0PUJ0PWhlLHZ0PTE5KToxPT09QWU/KHd0PXNlLG10LT0yNTcsQnQ9b2Usb24tPTI1Nyx2dD0yNTYpOih3dD1jZSxCdD1kZSx2dD0tMSksQ2U9MCx0ZT0wLG5lPXgsZ3Q9RWUsVD1WLFM9MCxRZT0tMSwk''@;'; + put 'put ''ZT0oeWU9MTw8ViktMSwxPT09QWUmJnllPjg1Mnx8Mj09PUFlJiZ5ZT41OTIpcmV0dXJuIDE7Zm9yKDs7KXtfdD1uZS1TLGhlW3RlXTx2dD8odHQ9MCxldD1oZVt0ZV0pOmhlW3RlXT52dD8odHQ9QnRbb24raGVbdGVdXSxldD13dFttdCtoZVt0ZV1dKToodHQ9OTYsZXQ9MCksRGU9MTw8bmUt''@;'; + put 'put ''Uyx4PVBlPTE8PFQ7ZG97VGVbZ3QrKENlPj5TKSsoUGUtPURlKV09X3Q8PDI0fHR0PDwxNnxldHwwfXdoaWxlKDAhPT1QZSk7Zm9yKERlPTE8PG5lLTE7Q2UmRGU7KURlPj49MTtpZigwIT09RGU/KENlJj1EZS0xLENlKz1EZSk6Q2U9MCx0ZSsrLDA9PS0tQXRbbmVdKXtpZihuZT09PVApYnJl''@;'; + put 'put ''YWs7bmU9a2VbU2UraGVbdGVdXX1pZihuZT5WJiYoQ2UmJGUpIT09UWUpe2ZvcigwPT09UyYmKFM9ViksZ3QrPXgsRj0xPDwoVD1uZS1TKTtUK1M8UCYmISgoRi09QXRbVCtTXSk8PTApOylUKyssRjw8PTE7aWYoeWUrPTE8PFQsMT09PUFlJiZ5ZT44NTJ8fDI9PT1BZSYmeWU+NTkyKXJldHVy''@;'; + put 'put ''biAxO1RlW1FlPUNlJiRlXT1WPDwyNHxUPDwxNnxndC1FZXwwfX1yZXR1cm4gMCE9PUNlJiYoVGVbZ3QrQ2VdPW5lLVM8PDI0fDY0PDwxNnwwKSxPLmJpdHM9ViwwfX0seyIuLi91dGlscy9jb21tb24iOjI3fV0sMzc6W2Z1bmN0aW9uKFEsWixpZSl7InVzZSBzdHJpY3QiO1ouZXhwb3J0cz17''@;'; + put 'put ''MjoibmVlZCBkaWN0aW9uYXJ5IiwxOiJzdHJlYW0gZW5kIiwwOiIiLCItMSI6ImZpbGUgZXJyb3IiLCItMiI6InN0cmVhbSBlcnJvciIsIi0zIjoiZGF0YSBlcnJvciIsIi00IjoiaW5zdWZmaWNpZW50IG1lbW9yeSIsIi01IjoiYnVmZmVyIGVycm9yIiwiLTYiOiJpbmNvbXBhdGlibGUgdmVy''@;'; + put 'put ''c2lvbiJ9fSx7fV0sMzg6W2Z1bmN0aW9uKFEsWixpZSl7InVzZSBzdHJpY3QiO3ZhciBhZT1RKCIuLi91dGlscy9jb21tb24iKTtmdW5jdGlvbiBxKHF0KXtmb3IodmFyIHByPXF0Lmxlbmd0aDstLXByPj0wOylxdFtwcl09MH12YXIgUD1bMCwwLDAsMCwwLDAsMCwwLDEsMSwxLDEsMiwyLDIs''@;'; + put 'put ''MiwzLDMsMywzLDQsNCw0LDQsNSw1LDUsNSwwXSxWPVswLDAsMCwwLDEsMSwyLDIsMywzLDQsNCw1LDUsNiw2LDcsNyw4LDgsOSw5LDEwLDEwLDExLDExLDEyLDEyLDEzLDEzXSxUPVswLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDIsMyw3XSxTPVsxNiwxNywxOCwwLDgsNyw5LDYs''@;'; + put 'put ''MTAsNSwxMSw0LDEyLDMsMTMsMiwxNCwxLDE1XSx5ZT1uZXcgQXJyYXkoNTc2KTtxKHllKTt2YXIgQ2U9bmV3IEFycmF5KDYwKTtxKENlKTt2YXIgRGU9bmV3IEFycmF5KDUxMik7cShEZSk7dmFyIFBlPW5ldyBBcnJheSgyNTYpO3EoUGUpO3ZhciBRZT1uZXcgQXJyYXkoMjkpO3EoUWUpO3Zh''@;'; + put 'put ''ciAkZT1uZXcgQXJyYXkoMzApO3EoJGUpO3ZhciB3dCxtdCx2dCxndD1mdW5jdGlvbihxdCxwcixucixBbixxbil7dGhpcy5zdGF0aWNfdHJlZT1xdCx0aGlzLmV4dHJhX2JpdHM9cHIsdGhpcy5leHRyYV9iYXNlPW5yLHRoaXMuZWxlbXM9QW4sdGhpcy5tYXhfbGVuZ3RoPXFuLHRoaXMuaGFz''@;'; + put 'put ''X3N0cmVlPXF0JiZxdC5sZW5ndGh9LEF0PWZ1bmN0aW9uKHF0LHByKXt0aGlzLmR5bl90cmVlPXF0LHRoaXMubWF4X2NvZGU9MCx0aGlzLnN0YXRfZGVzYz1wcn07ZnVuY3Rpb24gaHQocXQpe3JldHVybiBxdDwyNTY/RGVbcXRdOkRlWzI1NisocXQ+Pj43KV19ZnVuY3Rpb24gQnQocXQscHIp''@;'; + put 'put ''e3F0LnBlbmRpbmdfYnVmW3F0LnBlbmRpbmcrK109MjU1JnByLHF0LnBlbmRpbmdfYnVmW3F0LnBlbmRpbmcrK109cHI+Pj44JjI1NX1mdW5jdGlvbiBvbihxdCxwcixucil7cXQuYmlfdmFsaWQ+MTYtbnI/KHF0LmJpX2J1Znw9cHI8PHF0LmJpX3ZhbGlkJjY1NTM1LEJ0KHF0LHF0LmJpX2J1''@;'; + put 'put ''ZikscXQuYmlfYnVmPXByPj4xNi1xdC5iaV92YWxpZCxxdC5iaV92YWxpZCs9bnItMTYpOihxdC5iaV9idWZ8PXByPDxxdC5iaV92YWxpZCY2NTUzNSxxdC5iaV92YWxpZCs9bnIpfWZ1bmN0aW9uIF90KHF0LHByLG5yKXtvbihxdCxuclsyKnByXSxuclsyKnByKzFdKX1mdW5jdGlvbiB0dChx''@;'; + put 'put ''dCxwcil7dmFyIG5yPTA7ZG97bnJ8PTEmcXQscXQ+Pj49MSxucjw8PTF9d2hpbGUoLS1wcj4wKTtyZXR1cm4gbnI+Pj4xfWZ1bmN0aW9uIEx0KHF0LHByLG5yKXt2YXIgV3QscG4sQW49bmV3IEFycmF5KDE2KSxxbj0wO2ZvcihXdD0xO1d0PD0xNTtXdCsrKUFuW1d0XT1xbj1xbitucltXdC0x''@;'; + put 'put ''XTw8MTtmb3IocG49MDtwbjw9cHI7cG4rKyl7dmFyIEtuPXF0WzIqcG4rMV07MCE9PUtuJiYocXRbMipwbl09dHQoQW5bS25dKyssS24pKX19ZnVuY3Rpb24gZnQocXQpe3ZhciBwcjtmb3IocHI9MDtwcjwyODY7cHIrKylxdC5keW5fbHRyZWVbMipwcl09MDtmb3IocHI9MDtwcjwzMDtwcisr''@;'; + put 'put ''KXF0LmR5bl9kdHJlZVsyKnByXT0wO2Zvcihwcj0wO3ByPDE5O3ByKyspcXQuYmxfdHJlZVsyKnByXT0wO3F0LmR5bl9sdHJlZVs1MTJdPTEscXQub3B0X2xlbj1xdC5zdGF0aWNfbGVuPTAscXQubGFzdF9saXQ9cXQubWF0Y2hlcz0wfWZ1bmN0aW9uIEh0KHF0KXtxdC5iaV92YWxpZD44P0J0''@;'; + put 'put ''KHF0LHF0LmJpX2J1Zik6cXQuYmlfdmFsaWQ+MCYmKHF0LnBlbmRpbmdfYnVmW3F0LnBlbmRpbmcrK109cXQuYmlfYnVmKSxxdC5iaV9idWY9MCxxdC5iaV92YWxpZD0wfWZ1bmN0aW9uIFVlKHF0LHByLG5yLEFuKXt2YXIgcW49MipwcixXdD0yKm5yO3JldHVybiBxdFtxbl08cXRbV3RdfHxx''@;'; + put 'put ''dFtxbl09PT1xdFtXdF0mJkFuW3ByXTw9QW5bbnJdfWZ1bmN0aW9uIHl0KHF0LHByLG5yKXtmb3IodmFyIEFuPXF0LmhlYXBbbnJdLHFuPW5yPDwxO3FuPD1xdC5oZWFwX2xlbiYmKHFuPHF0LmhlYXBfbGVuJiZVZShwcixxdC5oZWFwW3FuKzFdLHF0LmhlYXBbcW5dLHF0LmRlcHRoKSYmcW4r''@;'; + put 'put ''KywhVWUocHIsQW4scXQuaGVhcFtxbl0scXQuZGVwdGgpKTspcXQuaGVhcFtucl09cXQuaGVhcFtxbl0sbnI9cW4scW48PD0xO3F0LmhlYXBbbnJdPUFufWZ1bmN0aW9uIGp0KHF0LHByLG5yKXt2YXIgQW4scW4scG4sS24sV3Q9MDtpZigwIT09cXQubGFzdF9saXQpZG97QW49cXQucGVuZGlu''@;'; + put 'put ''Z19idWZbcXQuZF9idWYrMipXdF08PDh8cXQucGVuZGluZ19idWZbcXQuZF9idWYrMipXdCsxXSxxbj1xdC5wZW5kaW5nX2J1ZltxdC5sX2J1ZitXdF0sV3QrKywwPT09QW4/X3QocXQscW4scHIpOihfdChxdCwocG49UGVbcW5dKSsyNTYrMSxwciksMCE9PShLbj1QW3BuXSkmJm9uKHF0LHFu''@;'; + put 'put ''LT1RZVtwbl0sS24pLF90KHF0LHBuPWh0KC0tQW4pLG5yKSwwIT09KEtuPVZbcG5dKSYmb24ocXQsQW4tPSRlW3BuXSxLbikpfXdoaWxlKFd0PHF0Lmxhc3RfbGl0KTtfdChxdCwyNTYscHIpfWZ1bmN0aW9uIFF0KHF0LHByKXt2YXIgcG4sS24sc24sbnI9cHIuZHluX3RyZWUsQW49cHIuc3Rh''@;'; + put 'put ''dF9kZXNjLnN0YXRpY190cmVlLHFuPXByLnN0YXRfZGVzYy5oYXNfc3RyZWUsV3Q9cHIuc3RhdF9kZXNjLmVsZW1zLE50PS0xO2ZvcihxdC5oZWFwX2xlbj0wLHF0LmhlYXBfbWF4PTU3Myxwbj0wO3BuPFd0O3BuKyspMCE9PW5yWzIqcG5dPyhxdC5oZWFwWysrcXQuaGVhcF9sZW5dPU50PXBu''@;'; + put 'put ''LHF0LmRlcHRoW3BuXT0wKTpuclsyKnBuKzFdPTA7Zm9yKDtxdC5oZWFwX2xlbjwyOyluclsyKihzbj1xdC5oZWFwWysrcXQuaGVhcF9sZW5dPU50PDI/KytOdDowKV09MSxxdC5kZXB0aFtzbl09MCxxdC5vcHRfbGVuLS0scW4mJihxdC5zdGF0aWNfbGVuLT1BblsyKnNuKzFdKTtmb3IocHIu''@;'; + put 'put ''bWF4X2NvZGU9TnQscG49cXQuaGVhcF9sZW4+PjE7cG4+PTE7cG4tLSl5dChxdCxucixwbik7c249V3Q7ZG97cG49cXQuaGVhcFsxXSxxdC5oZWFwWzFdPXF0LmhlYXBbcXQuaGVhcF9sZW4tLV0seXQocXQsbnIsMSksS249cXQuaGVhcFsxXSxxdC5oZWFwWy0tcXQuaGVhcF9tYXhdPXBuLHF0''@;'; + put 'put ''LmhlYXBbLS1xdC5oZWFwX21heF09S24sbnJbMipzbl09bnJbMipwbl0rbnJbMipLbl0scXQuZGVwdGhbc25dPShxdC5kZXB0aFtwbl0+PXF0LmRlcHRoW0tuXT9xdC5kZXB0aFtwbl06cXQuZGVwdGhbS25dKSsxLG5yWzIqcG4rMV09bnJbMipLbisxXT1zbixxdC5oZWFwWzFdPXNuKysseXQo''@;'; + put 'put ''cXQsbnIsMSl9d2hpbGUocXQuaGVhcF9sZW4+PTIpO3F0LmhlYXBbLS1xdC5oZWFwX21heF09cXQuaGVhcFsxXSxmdW5jdGlvbiBhdChxdCxwcil7dmFyIHNuLFVuLHduLHRuLHpuLFRyLG5yPXByLmR5bl90cmVlLEFuPXByLm1heF9jb2RlLHFuPXByLnN0YXRfZGVzYy5zdGF0aWNfdHJlZSxX''@;'; + put 'put ''dD1wci5zdGF0X2Rlc2MuaGFzX3N0cmVlLHBuPXByLnN0YXRfZGVzYy5leHRyYV9iaXRzLEtuPXByLnN0YXRfZGVzYy5leHRyYV9iYXNlLE50PXByLnN0YXRfZGVzYy5tYXhfbGVuZ3RoLEJuPTA7Zm9yKHRuPTA7dG48PTE1O3RuKyspcXQuYmxfY291bnRbdG5dPTA7Zm9yKG5yWzIqcXQuaGVh''@;'; + put 'put ''cFtxdC5oZWFwX21heF0rMV09MCxzbj1xdC5oZWFwX21heCsxO3NuPDU3MztzbisrKSh0bj1uclsyKm5yWzIqKFVuPXF0LmhlYXBbc25dKSsxXSsxXSsxKT5OdCYmKHRuPU50LEJuKyspLG5yWzIqVW4rMV09dG4sIShVbj5BbikmJihxdC5ibF9jb3VudFt0bl0rKyx6bj0wLFVuPj1LbiYmKHpu''@;'; + put 'put ''PXBuW1VuLUtuXSkscXQub3B0X2xlbis9KFRyPW5yWzIqVW5dKSoodG4rem4pLFd0JiYocXQuc3RhdGljX2xlbis9VHIqKHFuWzIqVW4rMV0rem4pKSk7aWYoMCE9PUJuKXtkb3tmb3IodG49TnQtMTswPT09cXQuYmxfY291bnRbdG5dOyl0bi0tO3F0LmJsX2NvdW50W3RuXS0tLHF0LmJsX2Nv''@;'; + put 'put ''dW50W3RuKzFdKz0yLHF0LmJsX2NvdW50W050XS0tLEJuLT0yfXdoaWxlKEJuPjApO2Zvcih0bj1OdDswIT09dG47dG4tLSlmb3IoVW49cXQuYmxfY291bnRbdG5dOzAhPT1VbjspISgod249cXQuaGVhcFstLXNuXSk+QW4pJiYobnJbMip3bisxXSE9PXRuJiYocXQub3B0X2xlbis9KHRuLW5y''@;'; + put 'put ''WzIqd24rMV0pKm5yWzIqd25dLG5yWzIqd24rMV09dG4pLFVuLS0pfX0ocXQscHIpLEx0KG5yLE50LHF0LmJsX2NvdW50KX1mdW5jdGlvbiBnbihxdCxwcixucil7dmFyIEFuLFd0LHFuPS0xLHBuPXByWzFdLEtuPTAsTnQ9Nyxzbj00O2ZvcigwPT09cG4mJihOdD0xMzgsc249MykscHJbMioo''@;'; + put 'put ''bnIrMSkrMV09NjU1MzUsQW49MDtBbjw9bnI7QW4rKylXdD1wbixwbj1wclsyKihBbisxKSsxXSwhKCsrS248TnQmJld0PT09cG4pJiYoS248c24/cXQuYmxfdHJlZVsyKld0XSs9S246MCE9PVd0PyhXdCE9PXFuJiZxdC5ibF90cmVlWzIqV3RdKysscXQuYmxfdHJlZVszMl0rKyk6S248PTEw''@;'; + put 'put ''P3F0LmJsX3RyZWVbMzRdKys6cXQuYmxfdHJlZVszNl0rKyxLbj0wLHFuPVd0LDA9PT1wbj8oTnQ9MTM4LHNuPTMpOld0PT09cG4/KE50PTYsc249Myk6KE50PTcsc249NCkpfWZ1bmN0aW9uIGRuKHF0LHByLG5yKXt2YXIgQW4sV3QscW49LTEscG49cHJbMV0sS249MCxOdD03LHNuPTQ7Zm9y''@;'; + put 'put ''KDA9PT1wbiYmKE50PTEzOCxzbj0zKSxBbj0wO0FuPD1ucjtBbisrKWlmKFd0PXBuLHBuPXByWzIqKEFuKzEpKzFdLCEoKytLbjxOdCYmV3Q9PT1wbikpe2lmKEtuPHNuKWRve190KHF0LFd0LHF0LmJsX3RyZWUpfXdoaWxlKDAhPS0tS24pO2Vsc2UgMCE9PVd0PyhXdCE9PXFuJiYoX3QocXQs''@;'; + put 'put ''V3QscXQuYmxfdHJlZSksS24tLSksX3QocXQsMTYscXQuYmxfdHJlZSksb24ocXQsS24tMywyKSk6S248PTEwPyhfdChxdCwxNyxxdC5ibF90cmVlKSxvbihxdCxLbi0zLDMpKTooX3QocXQsMTgscXQuYmxfdHJlZSksb24ocXQsS24tMTEsNykpO0tuPTAscW49V3QsMD09PXBuPyhOdD0xMzgs''@;'; + put 'put ''c249Myk6V3Q9PT1wbj8oTnQ9Nixzbj0zKTooTnQ9Nyxzbj00KX19dmFyIGJuPSExO2Z1bmN0aW9uIHNyKHF0LHByLG5yLEFuKXtvbihxdCwwKyhBbj8xOjApLDMpLGZ1bmN0aW9uIEdlKHF0LHByLG5yLEFuKXtIdChxdCksQW4mJihCdChxdCxuciksQnQocXQsfm5yKSksYWUuYXJyYXlTZXQo''@;'; + put 'put ''cXQucGVuZGluZ19idWYscXQud2luZG93LHByLG5yLHF0LnBlbmRpbmcpLHF0LnBlbmRpbmcrPW5yfShxdCxwcixuciwhMCl9aWUuX3RyX2luaXQ9ZnVuY3Rpb24gZXIocXQpe2JufHwoZnVuY3Rpb24gQ3QoKXt2YXIgcXQscHIsbnIsQW4scW4sV3Q9bmV3IEFycmF5KDE2KTtmb3IobnI9MCxB''@;'; + put 'put ''bj0wO0FuPDI4O0FuKyspZm9yKFFlW0FuXT1ucixxdD0wO3F0PDE8PFBbQW5dO3F0KyspUGVbbnIrK109QW47Zm9yKFBlW25yLTFdPUFuLHFuPTAsQW49MDtBbjwxNjtBbisrKWZvcigkZVtBbl09cW4scXQ9MDtxdDwxPDxWW0FuXTtxdCsrKURlW3FuKytdPUFuO2Zvcihxbj4+PTc7QW48MzA7''@;'; + put 'put ''QW4rKylmb3IoJGVbQW5dPXFuPDw3LHF0PTA7cXQ8MTw8VltBbl0tNztxdCsrKURlWzI1NitxbisrXT1Bbjtmb3IocHI9MDtwcjw9MTU7cHIrKylXdFtwcl09MDtmb3IocXQ9MDtxdDw9MTQzOyl5ZVsyKnF0KzFdPTgscXQrKyxXdFs4XSsrO2Zvcig7cXQ8PTI1NTspeWVbMipxdCsxXT05LHF0''@;'; + put 'put ''KyssV3RbOV0rKztmb3IoO3F0PD0yNzk7KXllWzIqcXQrMV09NyxxdCsrLFd0WzddKys7Zm9yKDtxdDw9Mjg3Oyl5ZVsyKnF0KzFdPTgscXQrKyxXdFs4XSsrO2ZvcihMdCh5ZSwyODcsV3QpLHF0PTA7cXQ8MzA7cXQrKylDZVsyKnF0KzFdPTUsQ2VbMipxdF09dHQocXQsNSk7d3Q9bmV3IGd0''@;'; + put 'put ''KHllLFAsMjU3LDI4NiwxNSksbXQ9bmV3IGd0KENlLFYsMCwzMCwxNSksdnQ9bmV3IGd0KG5ldyBBcnJheSgwKSxULDAsMTksNyl9KCksYm49ITApLHF0LmxfZGVzYz1uZXcgQXQocXQuZHluX2x0cmVlLHd0KSxxdC5kX2Rlc2M9bmV3IEF0KHF0LmR5bl9kdHJlZSxtdCkscXQuYmxfZGVzYz1u''@;'; + put 'put ''ZXcgQXQocXQuYmxfdHJlZSx2dCkscXQuYmlfYnVmPTAscXQuYmlfdmFsaWQ9MCxmdChxdCl9LGllLl90cl9zdG9yZWRfYmxvY2s9c3IsaWUuX3RyX2ZsdXNoX2Jsb2NrPWZ1bmN0aW9uIEZyKHF0LHByLG5yLEFuKXt2YXIgcW4sV3QscG49MDtxdC5sZXZlbD4wPygyPT09cXQuc3RybS5kYXRh''@;'; + put 'put ''X3R5cGUmJihxdC5zdHJtLmRhdGFfdHlwZT1mdW5jdGlvbiBObihxdCl7dmFyIG5yLHByPTQwOTM2MjQ0NDc7Zm9yKG5yPTA7bnI8PTMxO25yKysscHI+Pj49MSlpZigxJnByJiYwIT09cXQuZHluX2x0cmVlWzIqbnJdKXJldHVybiAwO2lmKDAhPT1xdC5keW5fbHRyZWVbMThdfHwwIT09cXQu''@;'; + put 'put ''ZHluX2x0cmVlWzIwXXx8MCE9PXF0LmR5bl9sdHJlZVsyNl0pcmV0dXJuIDE7Zm9yKG5yPTMyO25yPDI1NjtucisrKWlmKDAhPT1xdC5keW5fbHRyZWVbMipucl0pcmV0dXJuIDE7cmV0dXJuIDB9KHF0KSksUXQocXQscXQubF9kZXNjKSxRdChxdCxxdC5kX2Rlc2MpLHBuPWZ1bmN0aW9uIHlu''@;'; + put 'put ''KHF0KXt2YXIgcHI7Zm9yKGduKHF0LHF0LmR5bl9sdHJlZSxxdC5sX2Rlc2MubWF4X2NvZGUpLGduKHF0LHF0LmR5bl9kdHJlZSxxdC5kX2Rlc2MubWF4X2NvZGUpLFF0KHF0LHF0LmJsX2Rlc2MpLHByPTE4O3ByPj0zJiYwPT09cXQuYmxfdHJlZVsyKlNbcHJdKzFdO3ByLS0pO3JldHVybiBx''@;'; + put 'put ''dC5vcHRfbGVuKz0zKihwcisxKSs1KzUrNCxwcn0ocXQpLChXdD1xdC5zdGF0aWNfbGVuKzMrNz4+PjMpPD0ocW49cXQub3B0X2xlbiszKzc+Pj4zKSYmKHFuPVd0KSk6cW49V3Q9bnIrNSxucis0PD1xbiYmLTEhPT1wcj9zcihxdCxwcixucixBbik6ND09PXF0LnN0cmF0ZWd5fHxXdD09PXFu''@;'; + put 'put ''PyhvbihxdCwyKyhBbj8xOjApLDMpLGp0KHF0LHllLENlKSk6KG9uKHF0LDQrKEFuPzE6MCksMyksZnVuY3Rpb24gbG4ocXQscHIsbnIsQW4pe3ZhciBxbjtmb3Iob24ocXQscHItMjU3LDUpLG9uKHF0LG5yLTEsNSksb24ocXQsQW4tNCw0KSxxbj0wO3FuPEFuO3FuKyspb24ocXQscXQuYmxf''@;'; + put 'put ''dHJlZVsyKlNbcW5dKzFdLDMpO2RuKHF0LHF0LmR5bl9sdHJlZSxwci0xKSxkbihxdCxxdC5keW5fZHRyZWUsbnItMSl9KHF0LHF0LmxfZGVzYy5tYXhfY29kZSsxLHF0LmRfZGVzYy5tYXhfY29kZSsxLHBuKzEpLGp0KHF0LHF0LmR5bl9sdHJlZSxxdC5keW5fZHRyZWUpKSxmdChxdCksQW4m''@;'; + put 'put ''Jkh0KHF0KX0saWUuX3RyX3RhbGx5PWZ1bmN0aW9uIHhyKHF0LHByLG5yKXtyZXR1cm4gcXQucGVuZGluZ19idWZbcXQuZF9idWYrMipxdC5sYXN0X2xpdF09cHI+Pj44JjI1NSxxdC5wZW5kaW5nX2J1ZltxdC5kX2J1ZisyKnF0Lmxhc3RfbGl0KzFdPTI1NSZwcixxdC5wZW5kaW5nX2J1Zltx''@;'; + put 'put ''dC5sX2J1ZitxdC5sYXN0X2xpdF09MjU1Jm5yLHF0Lmxhc3RfbGl0KyssMD09PXByP3F0LmR5bl9sdHJlZVsyKm5yXSsrOihxdC5tYXRjaGVzKysscHItLSxxdC5keW5fbHRyZWVbMiooUGVbbnJdKzI1NisxKV0rKyxxdC5keW5fZHRyZWVbMipodChwcildKyspLHF0Lmxhc3RfbGl0PT09cXQu''@;'; + put 'put ''bGl0X2J1ZnNpemUtMX0saWUuX3RyX2FsaWduPWZ1bmN0aW9uIFhuKHF0KXtvbihxdCwyLDMpLF90KHF0LDI1Nix5ZSksZnVuY3Rpb24gZXQocXQpezE2PT09cXQuYmlfdmFsaWQ/KEJ0KHF0LHF0LmJpX2J1ZikscXQuYmlfYnVmPTAscXQuYmlfdmFsaWQ9MCk6cXQuYmlfdmFsaWQ+PTgmJihx''@;'; + put 'put ''dC5wZW5kaW5nX2J1ZltxdC5wZW5kaW5nKytdPTI1NSZxdC5iaV9idWYscXQuYmlfYnVmPj49OCxxdC5iaV92YWxpZC09OCl9KHF0KX19LHsiLi4vdXRpbHMvY29tbW9uIjoyN31dLDM5OltmdW5jdGlvbihRLFosaWUpeyJ1c2Ugc3RyaWN0IjtaLmV4cG9ydHM9ZnVuY3Rpb24gYWUoKXt0aGlz''@;'; + put 'put ''LmlucHV0PW51bGwsdGhpcy5uZXh0X2luPTAsdGhpcy5hdmFpbF9pbj0wLHRoaXMudG90YWxfaW49MCx0aGlzLm91dHB1dD1udWxsLHRoaXMubmV4dF9vdXQ9MCx0aGlzLmF2YWlsX291dD0wLHRoaXMudG90YWxfb3V0PTAsdGhpcy5tc2c9IiIsdGhpcy5zdGF0ZT1udWxsLHRoaXMuZGF0YV90''@;'; + put 'put ''eXBlPTIsdGhpcy5hZGxlcj0wfX0se31dfSx7fSxbOV0pKDkpfSl9LDMwNjI4OihYZSxKZSxMKT0+eyFmdW5jdGlvbiBCKFUpe1UudmVyc2lvbj0iMS4yMDIxMTEyMi4xIjt2YXIgUT0xMjAwLFo9MTI1MjsidW5kZWZpbmVkIj09dHlwZW9mIGNwdGFibGUmJigidW5kZWZpbmVkIiE9dHlwZW9m''@;'; + put 'put ''IGdsb2JhbD9nbG9iYWwuY3B0YWJsZT1MKDUzMzk5KToidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyYmKHdpbmRvdy5jcHRhYmxlPUwoNTMzOTkpKSk7Zm9yKHZhciBpZT1bODc0LDkzMiw5MzYsOTQ5LDk1MCwxZTRdLGFlPTA7YWU8PTg7KythZSlpZS5wdXNoKDEyNTArYWUpO3ZhciBZPXsw''@;'; + put 'put ''OjEyNTIsMTo2NTAwMSwyOjY1MDAxLDc3OjFlNCwxMjg6OTMyLDEyOTo5NDksMTMwOjEzNjEsMTM0OjkzNiwxMzY6OTUwLDE2MToxMjUzLDE2MjoxMjU0LDE2MzoxMjU4LDE3NzoxMjU1LDE3ODoxMjU2LDE4NjoxMjU3LDIwNDoxMjUxLDIyMjo4NzQsMjM4OjEyNTAsMjU1OjEyNTIsNjk6Njk2''@;'; + put 'put ''OX0sVz1mdW5jdGlvbihIKXstMSE9aWUuaW5kZXhPZihIKSYmKFo9WVswXT1IKX0sZWU9ZnVuY3Rpb24oSCl7UT1ILFcoSCl9O2Z1bmN0aW9uIHEoKXtlZSgxMjAwKSxmdW5jdGlvbiBOKCl7VygxMjUyKX0oKX1mdW5jdGlvbiBKKEgpe2Zvcih2YXIgcmU9W10sWD0wLHdlPUgubGVuZ3RoO1g8''@;'; + put 'put ''d2U7KytYKXJlW1hdPUguY2hhckNvZGVBdChYKTtyZXR1cm4gcmV9dmFyIGNlPWZ1bmN0aW9uKEgpe3ZhciByZT1ILmNoYXJDb2RlQXQoMCksWD1ILmNoYXJDb2RlQXQoMSk7cmV0dXJuIDI1NT09cmUmJjI1ND09WD9mdW5jdGlvbiBzZShIKXtmb3IodmFyIHJlPVtdLFg9MDtYPEgubGVuZ3Ro''@;'; + put 'put ''Pj4xOysrWClyZVtYXT1TdHJpbmcuZnJvbUNoYXJDb2RlKEguY2hhckNvZGVBdCgyKlgpKyhILmNoYXJDb2RlQXQoMipYKzEpPDw4KSk7cmV0dXJuIHJlLmpvaW4oIiIpfShILnNsaWNlKDIpKToyNTQ9PXJlJiYyNTU9PVg/ZnVuY3Rpb24gb2UoSCl7Zm9yKHZhciByZT1bXSxYPTA7WDxILmxl''@;'; + put 'put ''bmd0aD4+MTsrK1gpcmVbWF09U3RyaW5nLmZyb21DaGFyQ29kZShILmNoYXJDb2RlQXQoMipYKzEpKyhILmNoYXJDb2RlQXQoMipYKTw8OCkpO3JldHVybiByZS5qb2luKCIiKX0oSC5zbGljZSgyKSk6NjUyNzk9PXJlP0guc2xpY2UoMSk6SH0sZGU9ZnVuY3Rpb24ocmUpe3JldHVybiBTdHJp''@;'; + put 'put ''bmcuZnJvbUNoYXJDb2RlKHJlKX0sdmU9ZnVuY3Rpb24ocmUpe3JldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKHJlKX07InVuZGVmaW5lZCIhPXR5cGVvZiBjcHRhYmxlJiYoZWU9ZnVuY3Rpb24oSCl7UT1ILFcoSCl9LGNlPWZ1bmN0aW9uKEgpe3JldHVybiAyNTU9PT1ILmNoYXJDb2RlQXQo''@;'; + put 'put ''MCkmJjI1ND09PUguY2hhckNvZGVBdCgxKT9jcHRhYmxlLnV0aWxzLmRlY29kZSgxMjAwLEooSC5zbGljZSgyKSkpOkh9LGRlPWZ1bmN0aW9uKHJlKXtyZXR1cm4gMTIwMD09PVE/U3RyaW5nLmZyb21DaGFyQ29kZShyZSk6Y3B0YWJsZS51dGlscy5kZWNvZGUoUSxbMjU1JnJlLHJlPj44XSlb''@;'; + put 'put ''MF19LHZlPWZ1bmN0aW9uKHJlKXtyZXR1cm4gY3B0YWJsZS51dGlscy5kZWNvZGUoWixbcmVdKVswXX0pO3ZhciByZSxTZT0ocmU9IkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky89Iix7ZW5jb2RlOmZ1bmN0aW9uKFgpe2Zv''@;'; + put 'put ''cih2YXIgd2U9IiIseGU9MCxGZT0wLFplPTAsamU9MCxZZT0wLE10PTAseHQ9MCxSdD0wO1J0PFgubGVuZ3RoOylqZT0oeGU9WC5jaGFyQ29kZUF0KFJ0KyspKT4+MixZZT0oMyZ4ZSk8PDR8KEZlPVguY2hhckNvZGVBdChSdCsrKSk+PjQsTXQ9KDE1JkZlKTw8MnwoWmU9WC5jaGFyQ29kZUF0''@;'; + put 'put ''KFJ0KyspKT4+Nix4dD02MyZaZSxpc05hTihGZSk/TXQ9eHQ9NjQ6aXNOYU4oWmUpJiYoeHQ9NjQpLHdlKz1yZS5jaGFyQXQoamUpK3JlLmNoYXJBdChZZSkrcmUuY2hhckF0KE10KStyZS5jaGFyQXQoeHQpO3JldHVybiB3ZX0sZGVjb2RlOmZ1bmN0aW9uKHdlKXt2YXIgeGU9IiIsWWU9MCxN''@;'; + put 'put ''dD0wLHh0PTAsUnQ9MDt3ZT13ZS5yZXBsYWNlKC9bXlx3XCtcL1w9XS9nLCIiKTtmb3IodmFyIFV0PTA7VXQ8d2UubGVuZ3RoOylZZT1yZS5pbmRleE9mKHdlLmNoYXJBdChVdCsrKSksTXQ9cmUuaW5kZXhPZih3ZS5jaGFyQXQoVXQrKykpLHhlKz1TdHJpbmcuZnJvbUNoYXJDb2RlKFllPDwy''@;'; + put 'put ''fE10Pj40KSw2NCE9PSh4dD1yZS5pbmRleE9mKHdlLmNoYXJBdChVdCsrKSkpJiYoeGUrPVN0cmluZy5mcm9tQ2hhckNvZGUoKDE1Jk10KTw8NHx4dD4+MikpLDY0IT09KFJ0PXJlLmluZGV4T2Yod2UuY2hhckF0KFV0KyspKSkmJih4ZSs9U3RyaW5nLmZyb21DaGFyQ29kZSgoMyZ4dCk8PDZ8''@;'; + put 'put ''UnQpKTtyZXR1cm4geGV9fSksSWU9InVuZGVmaW5lZCIhPXR5cGVvZiBCdWZmZXImJiJ1bmRlZmluZWQiIT10eXBlb2YgcHJvY2VzcyYmdm9pZCAwIT09cHJvY2Vzcy52ZXJzaW9ucyYmISFwcm9jZXNzLnZlcnNpb25zLm5vZGUsVGU9ZnVuY3Rpb24oKXt9O2lmKCJ1bmRlZmluZWQiIT10eXBl''@;'; + put 'put ''b2YgQnVmZmVyKXt2YXIgRWU9IUJ1ZmZlci5mcm9tO2lmKCFFZSl0cnl7QnVmZmVyLmZyb20oImZvbyIsInV0ZjgiKX1jYXRjaChIKXtFZT0hMH1UZT1FZT9mdW5jdGlvbihILHJlKXtyZXR1cm4gcmU/bmV3IEJ1ZmZlcihILHJlKTpuZXcgQnVmZmVyKEgpfTpCdWZmZXIuZnJvbS5iaW5kKEJ1''@;'; + put 'put ''ZmZlciksQnVmZmVyLmFsbG9jfHwoQnVmZmVyLmFsbG9jPWZ1bmN0aW9uKEgpe3JldHVybiBuZXcgQnVmZmVyKEgpfSksQnVmZmVyLmFsbG9jVW5zYWZlfHwoQnVmZmVyLmFsbG9jVW5zYWZlPWZ1bmN0aW9uKEgpe3JldHVybiBuZXcgQnVmZmVyKEgpfSl9ZnVuY3Rpb24gaGUoSCl7cmV0dXJu''@;'; + put 'put ''IEllP0J1ZmZlci5hbGxvYyhIKTpuZXcgQXJyYXkoSCl9ZnVuY3Rpb24gTyhIKXtyZXR1cm4gSWU/QnVmZmVyLmFsbG9jVW5zYWZlKEgpOm5ldyBBcnJheShIKX12YXIgej1mdW5jdGlvbihyZSl7cmV0dXJuIEllP1RlKHJlLCJiaW5hcnkiKTpyZS5zcGxpdCgiIikubWFwKGZ1bmN0aW9uKFgp''@;'; + put 'put ''e3JldHVybiAyNTUmWC5jaGFyQ29kZUF0KDApfSl9O2Z1bmN0aW9uIG5lKEgpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgQXJyYXlCdWZmZXIpcmV0dXJuIHooSCk7Zm9yKHZhciByZT1uZXcgQXJyYXlCdWZmZXIoSC5sZW5ndGgpLFg9bmV3IFVpbnQ4QXJyYXkocmUpLHdlPTA7d2UhPUgubGVu''@;'; + put 'put ''Z3RoOysrd2UpWFt3ZV09MjU1JkguY2hhckNvZGVBdCh3ZSk7cmV0dXJuIHJlfWZ1bmN0aW9uIHRlKEgpe2lmKEFycmF5LmlzQXJyYXkoSCkpcmV0dXJuIEgubWFwKGZ1bmN0aW9uKHdlKXtyZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZSh3ZSl9KS5qb2luKCIiKTtmb3IodmFyIHJlPVtdLFg9''@;'; + put 'put ''MDtYPEgubGVuZ3RoOysrWClyZVtYXT1TdHJpbmcuZnJvbUNoYXJDb2RlKEhbWF0pO3JldHVybiByZS5qb2luKCIiKX1mdW5jdGlvbiBQKEgpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgQXJyYXlCdWZmZXIpdGhyb3cgbmV3IEVycm9yKCJVbnN1cHBvcnRlZCIpO2lmKEggaW5zdGFuY2VvZiBB''@;'; + put 'put ''cnJheUJ1ZmZlcilyZXR1cm4gUChuZXcgVWludDhBcnJheShIKSk7Zm9yKHZhciByZT1uZXcgQXJyYXkoSC5sZW5ndGgpLFg9MDtYPEgubGVuZ3RoOysrWClyZVtYXT1IW1hdO3JldHVybiByZX12YXIgVj1mdW5jdGlvbihIKXt2YXIgcmU9W107cmV0dXJuIEguZm9yRWFjaChmdW5jdGlvbihY''@;'; + put 'put ''KXtBcnJheS5pc0FycmF5KFgpP3JlPXJlLmNvbmNhdChYKTooInVuZGVmaW5lZCIhPXR5cGVvZiBVaW50OEFycmF5JiZYIGluc3RhbmNlb2YgVWludDhBcnJheXx8InVuZGVmaW5lZCIhPXR5cGVvZiBBcnJheUJ1ZmZlciYmWCBpbnN0YW5jZW9mIEFycmF5QnVmZmVyKSYmKHJlPXJlLmNvbmNh''@;'; + put 'put ''dChQKFgpKSl9KSxyZX0sVD0vXHUwMDAwL2csUz0vW1x1MDAwMS1cdTAwMDZdL2csRj17fSx5ZT1mdW5jdGlvbihyZSl7ZnVuY3Rpb24gWChycil7Zm9yKHZhciBJcj0iIixacj1yci5sZW5ndGgtMTtacj49MDspSXIrPXJyLmNoYXJBdChaci0tKTtyZXR1cm4gSXJ9ZnVuY3Rpb24gd2UocnIs''@;'; + put 'put ''SXIpe2Zvcih2YXIgWnI9IiI7WnIubGVuZ3RoPElyOylacis9cnI7cmV0dXJuIFpyfWZ1bmN0aW9uIHhlKHJyLElyKXt2YXIgWnI9IiIrcnI7cmV0dXJuIFpyLmxlbmd0aD49SXI/WnI6d2UoIjAiLElyLVpyLmxlbmd0aCkrWnJ9ZnVuY3Rpb24gRmUocnIsSXIpe3ZhciBacj0iIitycjtyZXR1''@;'; + put 'put ''cm4gWnIubGVuZ3RoPj1Jcj9acjp3ZSgiICIsSXItWnIubGVuZ3RoKStacn1mdW5jdGlvbiBaZShycixJcil7dmFyIFpyPSIiK3JyO3JldHVybiBaci5sZW5ndGg+PUlyP1pyOlpyK3dlKCIgIixJci1aci5sZW5ndGgpfXJlLnZlcnNpb249IjEuMjAyMTA3MjYuMSI7dmFyIE10PU1hdGgucG93''@;'; + put 'put ''KDIsMzIpO2Z1bmN0aW9uIHh0KHJyLElyKXtyZXR1cm4gcnI+TXR8fHJyPC1NdD9mdW5jdGlvbiBqZShycixJcil7dmFyIFpyPSIiK01hdGgucm91bmQocnIpO3JldHVybiBaci5sZW5ndGg+PUlyP1pyOndlKCIwIixJci1aci5sZW5ndGgpK1pyfShycixJcik6ZnVuY3Rpb24gWWUocnIsSXIp''@;'; + put 'put ''e3ZhciBacj0iIitycjtyZXR1cm4gWnIubGVuZ3RoPj1Jcj9acjp3ZSgiMCIsSXItWnIubGVuZ3RoKStacn0oTWF0aC5yb3VuZChyciksSXIpfWZ1bmN0aW9uIFJ0KHJyLElyKXtyZXR1cm4gcnIubGVuZ3RoPj03KyhJcj1Jcnx8MCkmJjEwMz09KDMyfHJyLmNoYXJDb2RlQXQoSXIpKSYmMTAx''@;'; + put 'put ''PT0oMzJ8cnIuY2hhckNvZGVBdChJcisxKSkmJjExMD09KDMyfHJyLmNoYXJDb2RlQXQoSXIrMikpJiYxMDE9PSgzMnxyci5jaGFyQ29kZUF0KElyKzMpKSYmMTE0PT0oMzJ8cnIuY2hhckNvZGVBdChJcis0KSkmJjk3PT0oMzJ8cnIuY2hhckNvZGVBdChJcis1KSkmJjEwOD09KDMyfHJyLmNo''@;'; + put 'put ''YXJDb2RlQXQoSXIrNikpfWZ1bmN0aW9uIFV0KHJyKXtmb3IodmFyIElyPVtdLFpyPU9iamVjdC5rZXlzKHJyKSxxaT0wO3FpIT09WnIubGVuZ3RoOysrcWkpSXJbcnJbWnJbcWldXV09WnJbcWldO3JldHVybiBJcn12YXIgbm49W1siU3VuIiwiU3VuZGF5Il0sWyJNb24iLCJNb25kYXkiXSxb''@;'; + put 'put ''IlR1ZSIsIlR1ZXNkYXkiXSxbIldlZCIsIldlZG5lc2RheSJdLFsiVGh1IiwiVGh1cnNkYXkiXSxbIkZyaSIsIkZyaWRheSJdLFsiU2F0IiwiU2F0dXJkYXkiXV0sQ249W1siSiIsIkphbiIsIkphbnVhcnkiXSxbIkYiLCJGZWIiLCJGZWJydWFyeSJdLFsiTSIsIk1hciIsIk1hcmNoIl0sWyJB''@;'; + put 'put ''IiwiQXByIiwiQXByaWwiXSxbIk0iLCJNYXkiLCJNYXkiXSxbIkoiLCJKdW4iLCJKdW5lIl0sWyJKIiwiSnVsIiwiSnVseSJdLFsiQSIsIkF1ZyIsIkF1Z3VzdCJdLFsiUyIsIlNlcCIsIlNlcHRlbWJlciJdLFsiTyIsIk9jdCIsIk9jdG9iZXIiXSxbIk4iLCJOb3YiLCJOb3ZlbWJlciJdLFsi''@;'; + put 'put ''RCIsIkRlYyIsIkRlY2VtYmVyIl1dO2Z1bmN0aW9uIER0KHJyKXtyclswXT0iR2VuZXJhbCIscnJbMV09IjAiLHJyWzJdPSIwLjAwIixyclszXT0iIywjIzAiLHJyWzRdPSIjLCMjMC4wMCIscnJbOV09IjAlIixyclsxMF09IjAuMDAlIixyclsxMV09IjAuMDBFKzAwIixyclsxMl09IiMgPy8/''@;'; + put 'put ''IixyclsxM109IiMgPz8vPz8iLHJyWzE0XT0ibS9kL3l5IixyclsxNV09ImQtbW1tLXl5IixyclsxNl09ImQtbW1tIixyclsxN109Im1tbS15eSIscnJbMThdPSJoOm1tIEFNL1BNIixyclsxOV09Img6bW06c3MgQU0vUE0iLHJyWzIwXT0iaDptbSIscnJbMjFdPSJoOm1tOnNzIixyclsyMl09''@;'; + put 'put ''Im0vZC95eSBoOm1tIixyclszN109IiMsIyMwIDsoIywjIzApIixyclszOF09IiMsIyMwIDtbUmVkXSgjLCMjMCkiLHJyWzM5XT0iIywjIzAuMDA7KCMsIyMwLjAwKSIscnJbNDBdPSIjLCMjMC4wMDtbUmVkXSgjLCMjMC4wMCkiLHJyWzQ1XT0ibW06c3MiLHJyWzQ2XT0iW2hdOm1tOnNzIixy''@;'; + put 'put ''cls0N109Im1tc3MuMCIscnJbNDhdPSIjIzAuMEUrMCIscnJbNDldPSJAIixycls1Nl09JyJcdTRlMGFcdTUzNDgvXHU0ZTBiXHU1MzQ4ICJoaCJcdTY2NDIibW0iXHU1MjA2InNzIlx1NzlkMiAiJyxOcihycil9dmFyIHp0PXt9O0R0KHp0KTt2YXIgUG49W10sVG49MDtmb3IoVG49NTtUbjw9''@;'; + put 'put ''ODsrK1RuKVBuW1RuXT0zMitUbjtmb3IoVG49MjM7VG48PTI2OysrVG4pUG5bVG5dPTA7Zm9yKFRuPTI3O1RuPD0zMTsrK1RuKVBuW1RuXT0xNDtmb3IoVG49NTA7VG48PTU4OysrVG4pUG5bVG5dPTE0O2ZvcihUbj01OTtUbjw9NjI7KytUbilQbltUbl09VG4tNTg7Zm9yKFRuPTY3O1RuPD02''@;'; + put 'put ''ODsrK1RuKVBuW1RuXT1Ubi01ODtmb3IoVG49NzI7VG48PTc1OysrVG4pUG5bVG5dPVRuLTU4O2ZvcihUbj02NztUbjw9Njg7KytUbilQbltUbl09VG4tNTc7Zm9yKFRuPTc2O1RuPD03ODsrK1RuKVBuW1RuXT1Ubi01Njtmb3IoVG49Nzk7VG48PTgxOysrVG4pUG5bVG5dPVRuLTM0O3ZhciBP''@;'; + put 'put ''bj1bXTtmdW5jdGlvbiBZbihycixJcixacil7Zm9yKHZhciBxaT1ycjwwPy0xOjEscmk9cnIqcWkscjA9MCxwaT0xLGUwPTAsT289MSxrMD0wLHBvPTAscDA9TWF0aC5mbG9vcihyaSk7azA8SXImJihlMD0ocDA9TWF0aC5mbG9vcihyaSkpKnBpK3IwLHBvPXAwKmswK09vLCEocmktcDA8NWUt''@;'; + put 'put ''OCkpOylyaT0xLyhyaS1wMCkscjA9cGkscGk9ZTAsT289azAsazA9cG87aWYocG8+SXImJihrMD5Jcj8ocG89T28sZTA9cjApOihwbz1rMCxlMD1waSkpLCFacilyZXR1cm5bMCxxaSplMCxwb107dmFyIFFsPU1hdGguZmxvb3IocWkqZTAvcG8pO3JldHVybltRbCxxaSplMC1RbCpwbyxwb119''@;'; + put 'put ''ZnVuY3Rpb24gTXIocnIsSXIsWnIpe2lmKHJyPjI5NTg0NjV8fHJyPDApcmV0dXJuIG51bGw7dmFyIHFpPTB8cnIscmk9TWF0aC5mbG9vcig4NjQwMCoocnItcWkpKSxyMD0wLHBpPVtdLGUwPXtEOnFpLFQ6cmksdTo4NjQwMCoocnItcWkpLXJpLHk6MCxtOjAsZDowLEg6MCxNOjAsUzowLHE6''@;'; + put 'put ''MH07aWYoTWF0aC5hYnMoZTAudSk8MWUtNiYmKGUwLnU9MCksSXImJklyLmRhdGUxOTA0JiYocWkrPTE0NjIpLGUwLnU+Ljk5OTkmJihlMC51PTAsODY0MDA9PSsrcmkmJihlMC5UPXJpPTAsKytxaSwrK2UwLkQpKSw2MD09PXFpKXBpPVpyP1sxMzE3LDEwLDI5XTpbMTkwMCwyLDI5XSxyMD0z''@;'; + put 'put ''O2Vsc2UgaWYoMD09PXFpKXBpPVpyP1sxMzE3LDgsMjldOlsxOTAwLDEsMF0scjA9NjtlbHNle3FpPjYwJiYtLXFpO3ZhciBPbz1uZXcgRGF0ZSgxOTAwLDAsMSk7T28uc2V0RGF0ZShPby5nZXREYXRlKCkrcWktMSkscGk9W09vLmdldEZ1bGxZZWFyKCksT28uZ2V0TW9udGgoKSsxLE9vLmdl''@;'; + put 'put ''dERhdGUoKV0scjA9T28uZ2V0RGF5KCkscWk8NjAmJihyMD0ocjArNiklNyksWnImJihyMD1mdW5jdGlvbiBvYShycixJcil7SXJbMF0tPTU4MTt2YXIgWnI9cnIuZ2V0RGF5KCk7cmV0dXJuIHJyPDYwJiYoWnI9KFpyKzYpJTcpLFpyfShPbyxwaSkpfXJldHVybiBlMC55PXBpWzBdLGUwLm09''@;'; + put 'put ''cGlbMV0sZTAuZD1waVsyXSxlMC5TPXJpJTYwLHJpPU1hdGguZmxvb3IocmkvNjApLGUwLk09cmklNjAscmk9TWF0aC5mbG9vcihyaS82MCksZTAuSD1yaSxlMC5xPXIwLGUwfU9uWzVdPU9uWzYzXT0nIiQiIywjIzBfKTtcXCgiJCIjLCMjMFxcKScsT25bNl09T25bNjRdPSciJCIjLCMjMF8p''@;'; + put 'put ''O1tSZWRdXFwoIiQiIywjIzBcXCknLE9uWzddPU9uWzY1XT0nIiQiIywjIzAuMDBfKTtcXCgiJCIjLCMjMC4wMFxcKScsT25bOF09T25bNjZdPSciJCIjLCMjMC4wMF8pO1tSZWRdXFwoIiQiIywjIzAuMDBcXCknLE9uWzQxXT0nXygqICMsIyMwXyk7XygqIFxcKCMsIyMwXFwpO18oKiAiLSJf''@;'; + put 'put ''KTtfKEBfKScsT25bNDJdPSdfKCIkIiogIywjIzBfKTtfKCIkIiogXFwoIywjIzBcXCk7XygiJCIqICItIl8pO18oQF8pJyxPbls0M109J18oKiAjLCMjMC4wMF8pO18oKiBcXCgjLCMjMC4wMFxcKTtfKCogIi0iPz9fKTtfKEBfKScsT25bNDRdPSdfKCIkIiogIywjIzAuMDBfKTtfKCIkIiog''@;'; + put 'put ''XFwoIywjIzAuMDBcXCk7XygiJCIqICItIj8/Xyk7XyhAXyknLHJlLnBhcnNlX2RhdGVfY29kZT1Ncjt2YXIgYWk9bmV3IERhdGUoMTg5OSwxMSwzMSwwLDAsMCkseXI9YWkuZ2V0VGltZSgpLGFyPW5ldyBEYXRlKDE5MDAsMiwxLDAsMCwwKTtmdW5jdGlvbiBHcihycixJcil7dmFyIFpyPXJy''@;'; + put 'put ''LmdldFRpbWUoKTtyZXR1cm4gSXI/WnItPTEyNjIzMDRlNTpycj49YXImJihacis9ODY0ZTUpLChaci0oeXIrNmU0Kihyci5nZXRUaW1lem9uZU9mZnNldCgpLWFpLmdldFRpbWV6b25lT2Zmc2V0KCkpKSkvODY0ZTV9dmFyIHpyPSIiLHFyPXsiZW4tdXMiOnt5OiJ5IixkOiJkIiwiLCI6Iiwi''@;'; + put 'put ''LCIuIjoiLiIsZGF0ZToiXy8ifSwiZGUtZGUiOnt5OiJqIixkOiJ0IiwiLCI6Ii4iLCIuIjoiLCIsZGF0ZToiXy4ifSwiaXQtaXQiOnt5OiJ5IixkOiJkIiwiLCI6Ii4iLCIuIjoiLCIsZGF0ZToiXy8ifX0sb2k9cXJbenIudG9Mb3dlckNhc2UoKV18fHFyWyJlbi11cyJdLGNyPVV0KG9pKSxk''@;'; + put 'put ''aT0iJCIsdjA9IiIsQTA9IiwiLHdpPSIuIixZcj0iLyI7ZnVuY3Rpb24gTnIocnIpe3N3aXRjaCgoenJ8fCIiKS50b0xvd2VyQ2FzZSgpKXtjYXNlInpoLXR3IjpyclsyN109IlskLTQwNF1lL20vZCIscnJbMjhdPSdbJC00MDRdZSJcdTVlNzQibSJcdTY3MDgiZCJcdTY1ZTUiJyxyclsyOV09''@;'; + put 'put ''J1skLTQwNF1lIlx1NWU3NCJtIlx1NjcwOCJkIlx1NjVlNSInLHJyWzMwXT0nbSIvImQiLyJ5eScscnJbMzFdPSd5eXl5Ilx1NWU3NCJtIlx1NjcwOCJkIlx1NjVlNSInLHJyWzMyXT0naGgiXHU2NjQyIm1tIlx1NTIwNiInLHJyWzMzXT0naGgiXHU2NjQyIm1tIlx1NTIwNiJzcyJcdTc5ZDIi''@;'; + put 'put ''JyxyclszNF09J1x1NGUwYVx1NTM0OC9cdTRlMGJcdTUzNDggaGgiXHU2NjQyIm1tIlx1NTIwNiInLHJyWzM1XT0nXHU0ZTBhXHU1MzQ4L1x1NGUwYlx1NTM0OCBoaCJcdTY2NDIibW0iXHU1MjA2InNzIlx1NzlkMiInLHJyWzM2XT0iWyQtNDA0XWUvbS9kIixycls1MF09IlskLTQwNF1lL20v''@;'; + put 'put ''ZCIscnJbNTFdPSdbJC00MDRdZSJcdTVlNzQibSJcdTY3MDgiZCJcdTY1ZTUiJyxycls1Ml09J1x1NGUwYVx1NTM0OC9cdTRlMGJcdTUzNDggaGgiXHU2NjQyIm1tIlx1NTIwNiInLHJyWzUzXT0nXHU0ZTBhXHU1MzQ4L1x1NGUwYlx1NTM0OCBoaCJcdTY2NDIibW0iXHU1MjA2InNzIlx1Nzlk''@;'; + put 'put ''MiInLHJyWzU0XT0nWyQtNDA0XWUiXHU1ZTc0Im0iXHU2NzA4ImQiXHU2NWU1IicscnJbNTVdPSdcdTRlMGFcdTUzNDgvXHU0ZTBiXHU1MzQ4IGhoIlx1NjY0MiJtbSJcdTUyMDYiJyxycls1Nl09J1x1NGUwYVx1NTM0OC9cdTRlMGJcdTUzNDggaGgiXHU2NjQyIm1tIlx1NTIwNiJzcyJcdTc5''@;'; + put 'put ''ZDIiJyxycls1N109IlskLTQwNF1lL20vZCIscnJbNThdPSdbJC00MDRdZSJcdTVlNzQibSJcdTY3MDgiZCJcdTY1ZTUiJzticmVhaztjYXNlInpoLWNuIjpyclsyN109J3l5eXkiXHU1ZTc0Im0iXHU2NzA4IicscnJbMjhdPSdtIlx1NjcwOCJkIlx1NjVlNSInLHJyWzI5XT0nbSJcdTY3MDgi''@;'; + put 'put ''ZCJcdTY1ZTUiJyxyclszMF09J20iLSJkIi0ieXknLHJyWzMxXT0neXl5eSJcdTVlNzQibSJcdTY3MDgiZCJcdTY1ZTUiJyxyclszMl09J2giXHU2NWY2Im1tIlx1NTIwNiInLHJyWzMzXT0naCJcdTY1ZjYibW0iXHU1MjA2InNzIlx1NzlkMiInLHJyWzM0XT0nXHU0ZTBhXHU1MzQ4L1x1NGUw''@;'; + put 'put ''Ylx1NTM0OCBoIlx1NjVmNiJtbSJcdTUyMDYiJyxyclszNV09J1x1NGUwYVx1NTM0OC9cdTRlMGJcdTUzNDggaCJcdTY1ZjYibW0iXHU1MjA2InNzIlx1NzlkMiInLHJyWzM2XT0neXl5eSJcdTVlNzQibSJcdTY3MDgiJyxycls1MF09J3l5eXkiXHU1ZTc0Im0iXHU2NzA4IicscnJbNTFdPSdt''@;'; + put 'put ''Ilx1NjcwOCJkIlx1NjVlNSInLHJyWzUyXT0neXl5eSJcdTVlNzQibSJcdTY3MDgiJyxycls1M109J20iXHU2NzA4ImQiXHU2NWU1IicscnJbNTRdPSdtIlx1NjcwOCJkIlx1NjVlNSInLHJyWzU1XT0nXHU0ZTBhXHU1MzQ4L1x1NGUwYlx1NTM0OCBoIlx1NjVmNiJtbSJcdTUyMDYiJyxycls1''@;'; + put 'put ''Nl09J1x1NGUwYVx1NTM0OC9cdTRlMGJcdTUzNDggaCJcdTY1ZjYibW0iXHU1MjA2InNzIlx1NzlkMiInLHJyWzU3XT0neXl5eSJcdTVlNzQibSJcdTY3MDgiJyxycls1OF09J20iXHU2NzA4ImQiXHU2NWU1Iic7YnJlYWs7Y2FzZSJqYS1qcCI6cnJbMjddPSdbJC00MTFdZ2UiLiJtIi4iZCcs''@;'; + put 'put ''cnJbMjhdPSdbJC00MTFdZ2dnZSJcdTVlNzQibSJcdTY3MDgiZCJcdTY1ZTUiJyxyclsyOV09J1skLTQxMV1nZ2dlIlx1NWU3NCJtIlx1NjcwOCJkIlx1NjVlNSInLHJyWzMwXT0nbSIvImQiLyJ5eScscnJbMzFdPSd5eXl5Ilx1NWU3NCJtIlx1NjcwOCJkIlx1NjVlNSInLHJyWzMyXT0naCJc''@;'; + put 'put ''dTY2NDIibW0iXHU1MjA2IicscnJbMzNdPSdoIlx1NjY0MiJtbSJcdTUyMDYic3MiXHU3OWQyIicscnJbMzRdPSd5eXl5Ilx1NWU3NCJtIlx1NjcwOCInLHJyWzM1XT0nbSJcdTY3MDgiZCJcdTY1ZTUiJyxyclszNl09J1skLTQxMV1nZSIuIm0iLiJkJyxycls1MF09J1skLTQxMV1nZSIuIm0i''@;'; + put 'put ''LiJkJyxycls1MV09J1skLTQxMV1nZ2dlIlx1NWU3NCJtIlx1NjcwOCJkIlx1NjVlNSInLHJyWzUyXT0neXl5eSJcdTVlNzQibSJcdTY3MDgiJyxycls1M109J20iXHU2NzA4ImQiXHU2NWU1IicscnJbNTRdPSdbJC00MTFdZ2dnZSJcdTVlNzQibSJcdTY3MDgiZCJcdTY1ZTUiJyxycls1NV09''@;'; + put 'put ''J3l5eXkiXHU1ZTc0Im0iXHU2NzA4IicscnJbNTZdPSdtIlx1NjcwOCJkIlx1NjVlNSInLHJyWzU3XT0nWyQtNDExXWdlIi4ibSIuImQnLHJyWzU4XT0nWyQtNDExXWdnZ2UiXHU1ZTc0Im0iXHU2NzA4ImQiXHU2NWU1Iic7YnJlYWs7Y2FzZSJrby1rciI6cnJbMjddPSd5eXl5Ilx1NWU3NCIg''@;'; + put 'put ''bW0iXHU2NzA4IiBkZCJcdTY1ZTUiJyxyclsyOF09Im1tLWRkIixyclsyOV09Im1tLWRkIixyclszMF09Im1tLWRkLXl5IixyclszMV09J3l5eXkiXHViMTQ0IiBtbSJcdWM2ZDQiIGRkIlx1Yzc3YyInLHJyWzMyXT0naCJcdWMyZGMiIG1tIlx1YmQ4NCInLHJyWzMzXT0naCJcdWMyZGMiIG1t''@;'; + put 'put ''Ilx1YmQ4NCIgc3MiXHVjZDA4IicscnJbMzRdPSJ5eXl5LW1tLWRkIixyclszNV09Inl5eXktbW0tZGQiLHJyWzM2XT0neXl5eSJcdTVlNzQiIG1tIlx1NjcwOCIgZGQiXHU2NWU1IicscnJbNTBdPSd5eXl5Ilx1NWU3NCIgbW0iXHU2NzA4IiBkZCJcdTY1ZTUiJyxycls1MV09Im1tLWRkIixy''@;'; + put 'put ''cls1Ml09Inl5eXktbW0tZGQiLHJyWzUzXT0ieXl5eS1tbS1kZCIscnJbNTRdPSJtbS1kZCIscnJbNTVdPSJ5eXl5LW1tLWRkIixycls1Nl09Inl5eXktbW0tZGQiLHJyWzU3XT0neXl5eSJcdTVlNzQiIG1tIlx1NjcwOCIgZGQiXHU2NWU1IicscnJbNThdPSJtbS1kZCI7YnJlYWs7Y2FzZSJ0''@;'; + put 'put ''aC10aCI6cnJbNTldPScidCIwJyxycls2MF09JyJ0IjAuMDAnLHJyWzYxXT0nInQiIywjIzAnLHJyWzYyXT0nInQiIywjIzAuMDAnLHJyWzY3XT0idDAlIixycls2OF09InQwLjAwJSIscnJbNjldPSJ0IyA/Lz8iLHJyWzcwXT0idCMgPz8vPz8iLHJyWzcxXT0nXHUwZTI3Ii8iXHUwZTE0Ii8i''@;'; + put 'put ''XHUwZTFiXHUwZTFiXHUwZTFiXHUwZTFiJyxycls3Ml09J1x1MGUyNyItIlx1MGUxNFx1MGUxNFx1MGUxNCItIlx1MGUxYlx1MGUxYicscnJbNzNdPSdcdTBlMjciLSJcdTBlMTRcdTBlMTRcdTBlMTQnLHJyWzc0XT0nXHUwZTE0XHUwZTE0XHUwZTE0Ii0iXHUwZTFiXHUwZTFiJyxycls3NV09''@;'; + put 'put ''J1x1MGUwYSI6Ilx1MGUxOVx1MGUxOScscnJbNzZdPSdcdTBlMGEiOiJcdTBlMTlcdTBlMTkiOiJcdTBlMTdcdTBlMTcnLHJyWzc3XT0nXHUwZTI3Ii8iXHUwZTE0Ii8iXHUwZTFiXHUwZTFiXHUwZTFiXHUwZTFiIFx1MGUwYSI6Ilx1MGUxOVx1MGUxOScscnJbNzhdPSdcdTBlMTlcdTBlMTki''@;'; + put 'put ''OiJcdTBlMTdcdTBlMTcnLHJyWzc5XT0nW1x1MGUwYV1cdTBlMTlcdTBlMTkiOiJcdTBlMTdcdTBlMTcnLHJyWzgwXT0nXHUwZTE5XHUwZTE5IjoiXHUwZTE3XHUwZTE3LjAnLHJyWzgxXT0iZC9tL2JiIn19cmUuX2dlbmVyYWxfaW50PWZ1bmN0aW9uIE4wKHJyKXtyZXR1cm4gcnIudG9TdHJp''@;'; + put 'put ''bmcoMTApfTt2YXIgdDA9ZnVuY3Rpb24oKXt2YXIgSXI9Lyg/OlwuMCp8KFwuXGQqWzEtOV0pMCspJC87ZnVuY3Rpb24gWnIoazApe3JldHVybi0xPT1rMC5pbmRleE9mKCIuIik/azA6azAucmVwbGFjZShJciwiJDEiKX12YXIgcWk9Lyg/OlwuMCp8KFwuXGQqWzEtOV0pMCspW0VlXS8scmk9''@;'; + put 'put ''LyhFWystXSkoXGQpJC87cmV0dXJuIGZ1bmN0aW9uKHBvKXt2YXIgcDA9ZnVuY3Rpb24gT28oazApe3ZhciBwMCxwbz1NYXRoLmZsb29yKE1hdGgubG9nKE1hdGguYWJzKGswKSkqTWF0aC5MT0cxMEUpO3JldHVybiBwMD1wbz49LTQmJnBvPD0tMT9rMC50b1ByZWNpc2lvbigxMCtwbyk6TWF0''@;'; + put 'put ''aC5hYnMocG8pPD05P2Z1bmN0aW9uIHBpKGswKXt2YXIgcG89azA8MD8xMjoxMSxwMD1acihrMC50b0ZpeGVkKDEyKSk7cmV0dXJuIHAwLmxlbmd0aDw9cG98fChwMD1rMC50b1ByZWNpc2lvbigxMCkpLmxlbmd0aDw9cG8/cDA6azAudG9FeHBvbmVudGlhbCg1KX0oazApOjEwPT09cG8/azAu''@;'; + put 'put ''dG9GaXhlZCgxMCkuc3Vic3RyKDAsMTIpOmZ1bmN0aW9uIGUwKGswKXt2YXIgcG89WnIoazAudG9GaXhlZCgxMSkpO3JldHVybiBwby5sZW5ndGg+KGswPDA/MTI6MTEpfHwiMCI9PT1wb3x8Ii0wIj09PXBvP2swLnRvUHJlY2lzaW9uKDYpOnBvfShrMCksWnIoZnVuY3Rpb24gcjAoazApe3Jl''@;'; + put 'put ''dHVybi0xPT1rMC5pbmRleE9mKCJFIik/azA6azAucmVwbGFjZShxaSwiJDFFIikucmVwbGFjZShyaSwiJDEwJDIiKX0ocDAudG9VcHBlckNhc2UoKSkpfShwbyk7cmV0dXJuIiwiPT09QTAmJiIuIj09PXdpP3AwOnAwLnJlcGxhY2UoL1ssLl0vZyxmdW5jdGlvbihRbCl7cmV0dXJuIiwiPT1R''@;'; + put 'put ''bD9BMDp3aX0pfX0oKTtmdW5jdGlvbiBpbyhycixJcil7c3dpdGNoKHR5cGVvZiBycil7Y2FzZSJzdHJpbmciOnJldHVybiBycjtjYXNlImJvb2xlYW4iOnJldHVybiBycj8iVFJVRSI6IkZBTFNFIjtjYXNlIm51bWJlciI6cmV0dXJuKDB8cnIpPT09cnI/cnIudG9TdHJpbmcoMTApOnQwKHJy''@;'; + put 'put ''KTtjYXNlInVuZGVmaW5lZCI6cmV0dXJuIiI7Y2FzZSJvYmplY3QiOmlmKG51bGw9PXJyKXJldHVybiIiO2lmKHJyIGluc3RhbmNlb2YgRGF0ZSlyZXR1cm4gTWMoMTQsR3IocnIsSXImJklyLmRhdGUxOTA0KSxJcil9dGhyb3cgbmV3IEVycm9yKCJ1bnN1cHBvcnRlZCB2YWx1ZSBpbiBHZW5l''@;'; + put 'put ''cmFsIGZvcm1hdDogIitycil9cmUuX2dlbmVyYWxfbnVtPXQwLHJlLl9nZW5lcmFsPWlvO3ZhciAkMD0iXHUwZTUwXHUwZTUxXHUwZTUyXHUwZTUzXHUwZTU0XHUwZTU1XHUwZTU2XHUwZTU3XHUwZTU4XHUwZTU5Ii5zcGxpdCgiIik7ZnVuY3Rpb24gTmEocnIsSXIsWnIscWkpe3ZhciBPbyxy''@;'; + put 'put ''aT0iIixyMD0wLHBpPTAsZTA9WnIueSxrMD0wO3N3aXRjaChycil7Y2FzZSA5ODplMD1aci55KzU0MztjYXNlIDEyMTpzd2l0Y2goSXIubGVuZ3RoKXtjYXNlIDE6Y2FzZSAyOk9vPWUwJTEwMCxrMD0yO2JyZWFrO2RlZmF1bHQ6T289ZTAlMWU0LGswPTR9YnJlYWs7Y2FzZSAxMDk6c3dpdGNo''@;'; + put 'put ''KElyLmxlbmd0aCl7Y2FzZSAxOmNhc2UgMjpPbz1aci5tLGswPUlyLmxlbmd0aDticmVhaztjYXNlIDM6cmV0dXJuIENuW1pyLm0tMV1bMV07Y2FzZSA1OnJldHVybiBDbltaci5tLTFdWzBdO2RlZmF1bHQ6cmV0dXJuIENuW1pyLm0tMV1bMl19YnJlYWs7Y2FzZSAxMDA6c3dpdGNoKElyLmxl''@;'; + put 'put ''bmd0aCl7Y2FzZSAxOmNhc2UgMjpPbz1aci5kLGswPUlyLmxlbmd0aDticmVhaztjYXNlIDM6cmV0dXJuIG5uW1pyLnFdWzBdO2RlZmF1bHQ6cmV0dXJuIG5uW1pyLnFdWzFdfWJyZWFrO2Nhc2UgMTA0OnN3aXRjaChJci5sZW5ndGgpe2Nhc2UgMTpjYXNlIDI6T289MSsoWnIuSCsxMSklMTIs''@;'; + put 'put ''azA9SXIubGVuZ3RoO2JyZWFrO2RlZmF1bHQ6dGhyb3ciYmFkIGhvdXIgZm9ybWF0OiAiK0lyfWJyZWFrO2Nhc2UgNzI6c3dpdGNoKElyLmxlbmd0aCl7Y2FzZSAxOmNhc2UgMjpPbz1aci5ILGswPUlyLmxlbmd0aDticmVhaztkZWZhdWx0OnRocm93ImJhZCBob3VyIGZvcm1hdDogIitJcn1i''@;'; + put 'put ''cmVhaztjYXNlIDc3OnN3aXRjaChJci5sZW5ndGgpe2Nhc2UgMTpjYXNlIDI6T289WnIuTSxrMD1Jci5sZW5ndGg7YnJlYWs7ZGVmYXVsdDp0aHJvdyJiYWQgbWludXRlIGZvcm1hdDogIitJcn1icmVhaztjYXNlIDExNTppZigicyIhPUlyJiYic3MiIT1JciYmIi4wIiE9SXImJiIuMDAiIT1J''@;'; + put 'put ''ciYmIi4wMDAiIT1Jcil0aHJvdyJiYWQgc2Vjb25kIGZvcm1hdDogIitJcjtyZXR1cm4gMCE9PVpyLnV8fCJzIiE9SXImJiJzcyIhPUlyPyhwaT1xaT49Mj8zPT09cWk/MWUzOjEwMDoxPT09cWk/MTA6MSwocjA9TWF0aC5yb3VuZChwaSooWnIuUytaci51KSkpPj02MCpwaSYmKHIwPTApLCJz''@;'; + put 'put ''Ij09PUlyPzA9PT1yMD8iMCI6IiIrcjAvcGk6KHJpPXhlKHIwLDIrcWkpLCJzcyI9PT1Jcj9yaS5zdWJzdHIoMCwyKToiLiIrcmkuc3Vic3RyKDIsSXIubGVuZ3RoLTEpKSk6eGUoWnIuUyxJci5sZW5ndGgpO2Nhc2UgOTA6c3dpdGNoKElyKXtjYXNlIltoXSI6Y2FzZSJbaGhdIjpjYXNlIltc''@;'; + put 'put ''dTBlMGFdIjpjYXNlIltcdTBlMGFcdTBlMGFdIjpPbz0yNCpaci5EK1pyLkg7YnJlYWs7Y2FzZSJbbV0iOmNhc2UiW21tXSI6Y2FzZSJbXHUwZTE5XSI6Y2FzZSJbXHUwZTE5XHUwZTE5XSI6T289NjAqKDI0KlpyLkQrWnIuSCkrWnIuTTticmVhaztjYXNlIltzXSI6Y2FzZSJbc3NdIjpjYXNl''@;'; + put 'put ''IltcdTBlMTddIjpjYXNlIltcdTBlMTdcdTBlMTddIjpPbz02MCooNjAqKDI0KlpyLkQrWnIuSCkrWnIuTSkrTWF0aC5yb3VuZChaci5TK1pyLnUpO2JyZWFrO2RlZmF1bHQ6dGhyb3ciYmFkIGFic3RpbWUgZm9ybWF0OiAiK0lyfWswPTM9PT1Jci5sZW5ndGg/MToyO2JyZWFrO2Nhc2UgMTAx''@;'; + put 'put ''Ok9vPWUwLGswPTE7YnJlYWs7Y2FzZSAzNjIzOk9vPVpyLmQsazA9SXIubGVuZ3RoO2JyZWFrO2Nhc2UgMzYwNDpzd2l0Y2goSXIubGVuZ3RoKXtjYXNlIDE6Y2FzZSAyOk9vPVpyLm0sazA9SXIubGVuZ3RoO2JyZWFrO2Nhc2UgMzpyZXR1cm4gQ25bWnIubS0xXVsxXTtjYXNlIDU6cmV0dXJu''@;'; + put 'put ''IENuW1pyLm0tMV1bMF07ZGVmYXVsdDpyZXR1cm4gQ25bWnIubS0xXVsyXX1icmVhaztjYXNlIDM2MTE6c3dpdGNoKGUwPVpyLnkrNTQzLElyLmxlbmd0aCl7Y2FzZSAxOmNhc2UgMjpPbz1lMCUxMDAsazA9MjticmVhaztkZWZhdWx0Ok9vPWUwJTFlNCxrMD00fWJyZWFrO2Nhc2UgMzU5NDpP''@;'; + put 'put ''bz1aci5ILGswPUlyLmxlbmd0aDticmVhaztjYXNlIDM2MDk6T289WnIuTSxrMD1Jci5sZW5ndGg7YnJlYWs7Y2FzZSAzNjA3Ok9vPVpyLlMsazA9SXIubGVuZ3RoO2JyZWFrO2RlZmF1bHQ6dGhyb3cgcnIudG9TdHJpbmcoMTYpfXZhciBwbz1rMD4wP3hlKE9vLGswKToiIjtyZXR1cm4oOTA9''@;'; + put 'put ''PXJyP0lyLmNoYXJDb2RlQXQoMSk8MzU4NDpycjwzNTg0KT9wbzpwby5yZXBsYWNlKC9bMC05XS9nLGZ1bmN0aW9uKHAwKXtyZXR1cm4gJDBbK3AwXX0pfWZ1bmN0aW9uIGpvKHJyKXtpZihyci5sZW5ndGg8PTMpcmV0dXJuIHJyO2Zvcih2YXIgWnI9cnIubGVuZ3RoJTMscWk9cnIuc3Vic3Ry''@;'; + put 'put ''KDAsWnIpO1pyIT1yci5sZW5ndGg7WnIrPTMpcWkrPShxaS5sZW5ndGg+MD8iLCI6IiIpK3JyLnN1YnN0cihaciwzKTtyZXR1cm4gcWl9dmFyIHdhPWZ1bmN0aW9uKCl7dmFyIElyPS8lL2c7ZnVuY3Rpb24gcmkoZHIsV24pe3ZhciAkbixicj1kci5pbmRleE9mKCJFIiktZHIuaW5kZXhPZigi''@;'; + put 'put ''LiIpLTE7aWYoZHIubWF0Y2goL14jKzAuMEVcKzAkLykpe2lmKDA9PVduKXJldHVybiIwLjBFKzAiO2lmKFduPDApcmV0dXJuIi0iK3JpKGRyLC1Xbik7dmFyIFdyPWRyLmluZGV4T2YoIi4iKTstMT09PVdyJiYoV3I9ZHIuaW5kZXhPZigiRSIpKTt2YXIgdWk9TWF0aC5mbG9vcihNYXRoLmxv''@;'; + put 'put ''ZyhXbikqTWF0aC5MT0cxMEUpJVdyO2lmKHVpPDAmJih1aSs9V3IpLC0xPT09KCRuPShXbi9NYXRoLnBvdygxMCx1aSkpLnRvUHJlY2lzaW9uKGJyKzErKFdyK3VpKSVXcikpLmluZGV4T2YoImUiKSl7dmFyIElpPU1hdGguZmxvb3IoTWF0aC5sb2coV24pKk1hdGguTE9HMTBFKTtmb3IoLTE9''@;'; + put 'put ''PT0kbi5pbmRleE9mKCIuIik/JG49JG4uY2hhckF0KDApKyIuIiskbi5zdWJzdHIoMSkrIkUrIisoSWktJG4ubGVuZ3RoK3VpKTokbis9IkUrIisoSWktdWkpOyIwLiI9PT0kbi5zdWJzdHIoMCwyKTspJG49KCRuPSRuLmNoYXJBdCgwKSskbi5zdWJzdHIoMixXcikrIi4iKyRuLnN1YnN0cigy''@;'; + put 'put ''K1dyKSkucmVwbGFjZSgvXjArKFsxLTldKS8sIiQxIikucmVwbGFjZSgvXjArXC4vLCIwLiIpOyRuPSRuLnJlcGxhY2UoL1wrLS8sIi0iKX0kbj0kbi5yZXBsYWNlKC9eKFsrLV0/KShcZCopXC4oXGQqKVtFZV0vLGZ1bmN0aW9uKHUwLHppLEowLEkwKXtyZXR1cm4gemkrSjArSTAuc3Vic3Ry''@;'; + put 'put ''KDAsKFdyK3VpKSVXcikrIi4iK0kwLnN1YnN0cih1aSkrIkUifSl9ZWxzZSAkbj1Xbi50b0V4cG9uZW50aWFsKGJyKTtyZXR1cm4gZHIubWF0Y2goL0VcKzAwJC8pJiYkbi5tYXRjaCgvZVsrLV1cZCQvKSYmKCRuPSRuLnN1YnN0cigwLCRuLmxlbmd0aC0xKSsiMCIrJG4uY2hhckF0KCRuLmxl''@;'; + put 'put ''bmd0aC0xKSksZHIubWF0Y2goL0VcLS8pJiYkbi5tYXRjaCgvZVwrLykmJigkbj0kbi5yZXBsYWNlKC9lXCsvLCJlIikpLCRuLnJlcGxhY2UoImUiLCJFIil9dmFyIHIwPS8jIChcPyspKCA/KVwvKCA/KShcZCspLyxPbz0vXiMqMCpcLihbMCNdKykvLGswPS9cKS4qWzAjXS8scG89L1woIyMj''@;'; + put 'put ''XCkgIyMjXFw/LSMjIyMvO2Z1bmN0aW9uIHAwKGRyKXtmb3IodmFyICRuLFduPSIiLGJyPTA7YnIhPWRyLmxlbmd0aDsrK2JyKXN3aXRjaCgkbj1kci5jaGFyQ29kZUF0KGJyKSl7Y2FzZSAzNTpicmVhaztjYXNlIDYzOlduKz0iICI7YnJlYWs7Y2FzZSA0ODpXbis9IjAiO2JyZWFrO2RlZmF1''@;'; + put 'put ''bHQ6V24rPVN0cmluZy5mcm9tQ2hhckNvZGUoJG4pfXJldHVybiBXbn1mdW5jdGlvbiBRbChkcixXbil7dmFyICRuPU1hdGgucG93KDEwLFduKTtyZXR1cm4iIitNYXRoLnJvdW5kKGRyKiRuKS8kbn1mdW5jdGlvbiBBbChkcixXbil7aWYoV24+MTEpcmV0dXJuIEFsKGRyLDExKSpNYXRoLnBv''@;'; + put 'put ''dygxMCxXbi0xMSk7dmFyICRuPWRyLU1hdGguZmxvb3IoZHIpLGJyPU1hdGgucG93KDEwLFduKTtyZXR1cm4gV248KCIiK01hdGgucm91bmQoJG4qYnIpKS5sZW5ndGg/MDpNYXRoLnJvdW5kKCRuKmJyKX1mdW5jdGlvbiBLcyhkcixXbiwkbil7aWYoNDA9PT1kci5jaGFyQ29kZUF0KDApJiYh''@;'; + put 'put ''V24ubWF0Y2goazApKXt2YXIgYnI9V24ucmVwbGFjZSgvXCggKi8sIiIpLnJlcGxhY2UoLyBcKS8sIiIpLnJlcGxhY2UoL1wpLywiIik7cmV0dXJuICRuPj0wP0tzKCJuIixiciwkbik6IigiK0tzKCJuIixiciwtJG4pKyIpIn1pZig0ND09PVduLmNoYXJDb2RlQXQoV24ubGVuZ3RoLTEpKXJl''@;'; + put 'put ''dHVybiBmdW5jdGlvbiBxaShkcixXbiwkbil7Zm9yKHZhciBicj1Xbi5sZW5ndGgtMTs0ND09PVduLmNoYXJDb2RlQXQoYnItMSk7KS0tYnI7cmV0dXJuIHdhKGRyLFduLnN1YnN0cigwLGJyKSwkbi9NYXRoLnBvdygxMCwzKihXbi5sZW5ndGgtYnIpKSl9KGRyLFduLCRuKTtpZigtMSE9PVdu''@;'; + put 'put ''LmluZGV4T2YoIiUiKSlyZXR1cm4gZnVuY3Rpb24gWnIoZHIsV24sJG4pe3ZhciBicj1Xbi5yZXBsYWNlKElyLCIiKSxXcj1Xbi5sZW5ndGgtYnIubGVuZ3RoO3JldHVybiB3YShkcixiciwkbipNYXRoLnBvdygxMCwyKldyKSkrd2UoIiUiLFdyKX0oZHIsV24sJG4pO2lmKC0xIT09V24uaW5k''@;'; + put 'put ''ZXhPZigiRSIpKXJldHVybiByaShXbiwkbik7aWYoMzY9PT1Xbi5jaGFyQ29kZUF0KDApKXJldHVybiIkIitLcyhkcixXbi5zdWJzdHIoIiAiPT1Xbi5jaGFyQXQoMSk/MjoxKSwkbik7dmFyIFdyLHVpLElpLHUwLHppPU1hdGguYWJzKCRuKSxKMD0kbjwwPyItIjoiIjtpZihXbi5tYXRjaCgv''@;'; + put 'put ''XjAwKyQvKSlyZXR1cm4gSjAreHQoemksV24ubGVuZ3RoKTtpZihXbi5tYXRjaCgvXlsjP10rJC8pKXJldHVybiIwIj09PShXcj14dCgkbiwwKSkmJihXcj0iIiksV3IubGVuZ3RoPlduLmxlbmd0aD9XcjpwMChXbi5zdWJzdHIoMCxXbi5sZW5ndGgtV3IubGVuZ3RoKSkrV3I7aWYodWk9V24u''@;'; + put 'put ''bWF0Y2gocjApKXJldHVybiBmdW5jdGlvbiBwaShkcixXbiwkbil7dmFyIGJyPXBhcnNlSW50KGRyWzRdLDEwKSxXcj1NYXRoLnJvdW5kKFduKmJyKSx1aT1NYXRoLmZsb29yKFdyL2JyKSxJaT1Xci11aSpicix1MD1icjtyZXR1cm4gJG4rKDA9PT11aT8iIjoiIit1aSkrIiAiKygwPT09SWk/''@;'; + put 'put ''d2UoIiAiLGRyWzFdLmxlbmd0aCsxK2RyWzRdLmxlbmd0aCk6RmUoSWksZHJbMV0ubGVuZ3RoKStkclsyXSsiLyIrZHJbM10reGUodTAsZHJbNF0ubGVuZ3RoKSl9KHVpLHppLEowKTtpZihXbi5tYXRjaCgvXiMrMCskLykpcmV0dXJuIEowK3h0KHppLFduLmxlbmd0aC1Xbi5pbmRleE9mKCIw''@;'; + put 'put ''IikpO2lmKHVpPVduLm1hdGNoKE9vKSlyZXR1cm4gV3I9UWwoJG4sdWlbMV0ubGVuZ3RoKS5yZXBsYWNlKC9eKFteXC5dKykkLywiJDEuIitwMCh1aVsxXSkpLnJlcGxhY2UoL1wuJC8sIi4iK3AwKHVpWzFdKSkucmVwbGFjZSgvXC4oXGQqKSQvLGZ1bmN0aW9uKCRhLGpzKXtyZXR1cm4iLiIr''@;'; + put 'put ''anMrd2UoIjAiLHAwKHVpWzFdKS5sZW5ndGgtanMubGVuZ3RoKX0pLC0xIT09V24uaW5kZXhPZigiMC4iKT9XcjpXci5yZXBsYWNlKC9eMFwuLywiLiIpO2lmKFduPVduLnJlcGxhY2UoL14jKyhbMC5dKS8sIiQxIiksdWk9V24ubWF0Y2goL14oMCopXC4oIyopJC8pKXJldHVybiBKMCtRbCh6''@;'; + put 'put ''aSx1aVsyXS5sZW5ndGgpLnJlcGxhY2UoL1wuKFxkKlsxLTldKTAqJC8sIi4kMSIpLnJlcGxhY2UoL14oLT9cZCopJC8sIiQxLiIpLnJlcGxhY2UoL14wXC4vLHVpWzFdLmxlbmd0aD8iMC4iOiIuIik7aWYodWk9V24ubWF0Y2goL14jezEsM30sIyMwKFwuPykkLykpcmV0dXJuIEowK2pvKHh0''@;'; + put 'put ''KHppLDApKTtpZih1aT1Xbi5tYXRjaCgvXiMsIyMwXC4oWyMwXSowKSQvKSlyZXR1cm4gJG48MD8iLSIrS3MoZHIsV24sLSRuKTpqbygiIisoTWF0aC5mbG9vcigkbikrZnVuY3Rpb24gcTIoZHIsV24pe3JldHVybiBXbjwoIiIrTWF0aC5yb3VuZCgoZHItTWF0aC5mbG9vcihkcikpKk1hdGgu''@;'; + put 'put ''cG93KDEwLFduKSkpLmxlbmd0aD8xOjB9KCRuLHVpWzFdLmxlbmd0aCkpKSsiLiIreGUoQWwoJG4sdWlbMV0ubGVuZ3RoKSx1aVsxXS5sZW5ndGgpO2lmKHVpPVduLm1hdGNoKC9eIywjKiwjMC8pKXJldHVybiBLcyhkcixXbi5yZXBsYWNlKC9eIywjKiwvLCIiKSwkbik7aWYodWk9V24ubWF0''@;'; + put 'put ''Y2goL14oWzAjXSspKFxcPy0oWzAjXSspKSskLykpcmV0dXJuIFdyPVgoS3MoZHIsV24ucmVwbGFjZSgvW1xcLV0vZywiIiksJG4pKSxJaT0wLFgoWChXbi5yZXBsYWNlKC9cXC9nLCIiKSkucmVwbGFjZSgvWzAjXS9nLGZ1bmN0aW9uKCRhKXtyZXR1cm4gSWk8V3IubGVuZ3RoP1dyLmNoYXJB''@;'; + put 'put ''dChJaSsrKToiMCI9PT0kYT8iMCI6IiJ9KSk7aWYoV24ubWF0Y2gocG8pKXJldHVybiIoIisoV3I9S3MoZHIsIiMjIyMjIyMjIyMiLCRuKSkuc3Vic3RyKDAsMykrIikgIitXci5zdWJzdHIoMywzKSsiLSIrV3Iuc3Vic3RyKDYpO3ZhciBJMD0iIjtpZih1aT1Xbi5tYXRjaCgvXihbIzA/XSsp''@;'; + put 'put ''KCA/KVwvKCA/KShbIzA/XSspLykpcmV0dXJuIElpPU1hdGgubWluKHVpWzRdLmxlbmd0aCw3KSx1MD1Zbih6aSxNYXRoLnBvdygxMCxJaSktMSwhMSksV3I9IiIrSjAsIiAiPT0oSTA9d2EoIm4iLHVpWzFdLHUwWzFdKSkuY2hhckF0KEkwLmxlbmd0aC0xKSYmKEkwPUkwLnN1YnN0cigwLEkw''@;'; + put 'put ''Lmxlbmd0aC0xKSsiMCIpLFdyKz1JMCt1aVsyXSsiLyIrdWlbM10sKEkwPVplKHUwWzJdLElpKSkubGVuZ3RoPHVpWzRdLmxlbmd0aCYmKEkwPXAwKHVpWzRdLnN1YnN0cih1aVs0XS5sZW5ndGgtSTAubGVuZ3RoKSkrSTApLFdyKz1JMDtpZih1aT1Xbi5tYXRjaCgvXiMgKFsjMD9dKykoID8p''@;'; + put 'put ''XC8oID8pKFsjMD9dKykvKSlyZXR1cm4gSWk9TWF0aC5taW4oTWF0aC5tYXgodWlbMV0ubGVuZ3RoLHVpWzRdLmxlbmd0aCksNyksSjArKCh1MD1Zbih6aSxNYXRoLnBvdygxMCxJaSktMSwhMCkpWzBdfHwodTBbMV0/IiI6IjAiKSkrIiAiKyh1MFsxXT9GZSh1MFsxXSxJaSkrdWlbMl0rIi8i''@;'; + put 'put ''K3VpWzNdK1plKHUwWzJdLElpKTp3ZSgiICIsMipJaSsxK3VpWzJdLmxlbmd0aCt1aVszXS5sZW5ndGgpKTtpZih1aT1Xbi5tYXRjaCgvXlsjMD9dKyQvKSlyZXR1cm4gV3I9eHQoJG4sMCksV24ubGVuZ3RoPD1Xci5sZW5ndGg/V3I6cDAoV24uc3Vic3RyKDAsV24ubGVuZ3RoLVdyLmxlbmd0''@;'; + put 'put ''aCkpK1dyO2lmKHVpPVduLm1hdGNoKC9eKFsjMD9dKylcLihbIzBdKykkLykpe1dyPSIiKyRuLnRvRml4ZWQoTWF0aC5taW4odWlbMl0ubGVuZ3RoLDEwKSkucmVwbGFjZSgvKFteMF0pMCskLywiJDEiKSxJaT1Xci5pbmRleE9mKCIuIik7dmFyIGVhPVduLmluZGV4T2YoIi4iKS1JaSxZbz1X''@;'; + put 'put ''bi5sZW5ndGgtV3IubGVuZ3RoLWVhO3JldHVybiBwMChXbi5zdWJzdHIoMCxlYSkrV3IrV24uc3Vic3RyKFduLmxlbmd0aC1ZbykpfWlmKHVpPVduLm1hdGNoKC9eMDAsMDAwXC4oWyMwXSowKSQvKSlyZXR1cm4gSWk9QWwoJG4sdWlbMV0ubGVuZ3RoKSwkbjwwPyItIitLcyhkcixXbiwtJG4p''@;'; + put 'put ''OmpvKGZ1bmN0aW9uIGUxKGRyKXtyZXR1cm4gZHI8MjE0NzQ4MzY0NyYmZHI+LTIxNDc0ODM2NDg/IiIrKGRyPj0wPzB8ZHI6ZHItMXwwKToiIitNYXRoLmZsb29yKGRyKX0oJG4pKS5yZXBsYWNlKC9eXGQsXGR7M30kLywiMCQmIikucmVwbGFjZSgvXlxkKiQvLGZ1bmN0aW9uKCRhKXtyZXR1''@;'; + put 'put ''cm4iMDAsIisoJGEubGVuZ3RoPDM/eGUoMCwzLSRhLmxlbmd0aCk6IiIpKyRhfSkrIi4iK3hlKElpLHVpWzFdLmxlbmd0aCk7c3dpdGNoKFduKXtjYXNlIiMjIywjIzAuMDAiOnJldHVybiBLcyhkciwiIywjIzAuMDAiLCRuKTtjYXNlIiMjIywjIyMiOmNhc2UiIyMsIyMjIjpjYXNlIiMsIyMj''@;'; + put 'put ''Ijp2YXIgeW89am8oeHQoemksMCkpO3JldHVybiIwIiE9PXlvP0owK3lvOiIiO2Nhc2UiIyMjLCMjIy4wMCI6cmV0dXJuIEtzKGRyLCIjIyMsIyMwLjAwIiwkbikucmVwbGFjZSgvXjBcLi8sIi4iKTtjYXNlIiMsIyMjLjAwIjpyZXR1cm4gS3MoZHIsIiMsIyMwLjAwIiwkbikucmVwbGFjZSgv''@;'; + put 'put ''XjBcLi8sIi4iKX10aHJvdyBuZXcgRXJyb3IoInVuc3VwcG9ydGVkIGZvcm1hdCB8IitXbisifCIpfWZ1bmN0aW9uIGxyKGRyLFduKXt2YXIgJG4sYnI9ZHIuaW5kZXhPZigiRSIpLWRyLmluZGV4T2YoIi4iKS0xO2lmKGRyLm1hdGNoKC9eIyswLjBFXCswJC8pKXtpZigwPT1XbilyZXR1cm4i''@;'; + put 'put ''MC4wRSswIjtpZihXbjwwKXJldHVybiItIitscihkciwtV24pO3ZhciBXcj1kci5pbmRleE9mKCIuIik7LTE9PT1XciYmKFdyPWRyLmluZGV4T2YoIkUiKSk7dmFyIHVpPU1hdGguZmxvb3IoTWF0aC5sb2coV24pKk1hdGguTE9HMTBFKSVXcjtpZih1aTwwJiYodWkrPVdyKSwhKCRuPShXbi9N''@;'; + put 'put ''YXRoLnBvdygxMCx1aSkpLnRvUHJlY2lzaW9uKGJyKzErKFdyK3VpKSVXcikpLm1hdGNoKC9bRWVdLykpe3ZhciBJaT1NYXRoLmZsb29yKE1hdGgubG9nKFduKSpNYXRoLkxPRzEwRSk7LTE9PT0kbi5pbmRleE9mKCIuIik/JG49JG4uY2hhckF0KDApKyIuIiskbi5zdWJzdHIoMSkrIkUrIiso''@;'; + put 'put ''SWktJG4ubGVuZ3RoK3VpKTokbis9IkUrIisoSWktdWkpLCRuPSRuLnJlcGxhY2UoL1wrLS8sIi0iKX0kbj0kbi5yZXBsYWNlKC9eKFsrLV0/KShcZCopXC4oXGQqKVtFZV0vLGZ1bmN0aW9uKHUwLHppLEowLEkwKXtyZXR1cm4gemkrSjArSTAuc3Vic3RyKDAsKFdyK3VpKSVXcikrIi4iK0kw''@;'; + put 'put ''LnN1YnN0cih1aSkrIkUifSl9ZWxzZSAkbj1Xbi50b0V4cG9uZW50aWFsKGJyKTtyZXR1cm4gZHIubWF0Y2goL0VcKzAwJC8pJiYkbi5tYXRjaCgvZVsrLV1cZCQvKSYmKCRuPSRuLnN1YnN0cigwLCRuLmxlbmd0aC0xKSsiMCIrJG4uY2hhckF0KCRuLmxlbmd0aC0xKSksZHIubWF0Y2goL0Vc''@;'; + put 'put ''LS8pJiYkbi5tYXRjaCgvZVwrLykmJigkbj0kbi5yZXBsYWNlKC9lXCsvLCJlIikpLCRuLnJlcGxhY2UoImUiLCJFIil9ZnVuY3Rpb24gQnIoZHIsV24sJG4pe2lmKDQwPT09ZHIuY2hhckNvZGVBdCgwKSYmIVduLm1hdGNoKGswKSl7dmFyIGJyPVduLnJlcGxhY2UoL1woICovLCIiKS5yZXBs''@;'; + put 'put ''YWNlKC8gXCkvLCIiKS5yZXBsYWNlKC9cKS8sIiIpO3JldHVybiAkbj49MD9CcigibiIsYnIsJG4pOiIoIitCcigibiIsYnIsLSRuKSsiKSJ9aWYoNDQ9PT1Xbi5jaGFyQ29kZUF0KFduLmxlbmd0aC0xKSlyZXR1cm4gZnVuY3Rpb24gUDYoZHIsV24sJG4pe2Zvcih2YXIgYnI9V24ubGVuZ3Ro''@;'; + put 'put ''LTE7NDQ9PT1Xbi5jaGFyQ29kZUF0KGJyLTEpOyktLWJyO3JldHVybiB3YShkcixXbi5zdWJzdHIoMCxiciksJG4vTWF0aC5wb3coMTAsMyooV24ubGVuZ3RoLWJyKSkpfShkcixXbiwkbik7aWYoLTEhPT1Xbi5pbmRleE9mKCIlIikpcmV0dXJuIGZ1bmN0aW9uIHRoKGRyLFduLCRuKXt2YXIg''@;'; + put 'put ''YnI9V24ucmVwbGFjZShJciwiIiksV3I9V24ubGVuZ3RoLWJyLmxlbmd0aDtyZXR1cm4gd2EoZHIsYnIsJG4qTWF0aC5wb3coMTAsMipXcikpK3dlKCIlIixXcil9KGRyLFduLCRuKTtpZigtMSE9PVduLmluZGV4T2YoIkUiKSlyZXR1cm4gbHIoV24sJG4pO2lmKDM2PT09V24uY2hhckNvZGVB''@;'; + put 'put ''dCgwKSlyZXR1cm4iJCIrQnIoZHIsV24uc3Vic3RyKCIgIj09V24uY2hhckF0KDEpPzI6MSksJG4pO3ZhciBXcix1aSxJaSx1MCx6aT1NYXRoLmFicygkbiksSjA9JG48MD8iLSI6IiI7aWYoV24ubWF0Y2goL14wMCskLykpcmV0dXJuIEowK3hlKHppLFduLmxlbmd0aCk7aWYoV24ubWF0Y2go''@;'; + put 'put ''L15bIz9dKyQvKSlyZXR1cm4gV3I9IiIrJG4sMD09PSRuJiYoV3I9IiIpLFdyLmxlbmd0aD5Xbi5sZW5ndGg/V3I6cDAoV24uc3Vic3RyKDAsV24ubGVuZ3RoLVdyLmxlbmd0aCkpK1dyO2lmKHVpPVduLm1hdGNoKHIwKSlyZXR1cm4gZnVuY3Rpb24gZTAoZHIsV24sJG4pe3JldHVybiAkbiso''@;'; + put 'put ''MD09PVduPyIiOiIiK1duKSt3ZSgiICIsZHJbMV0ubGVuZ3RoKzIrZHJbNF0ubGVuZ3RoKX0odWksemksSjApO2lmKFduLm1hdGNoKC9eIyswKyQvKSlyZXR1cm4gSjAreGUoemksV24ubGVuZ3RoLVduLmluZGV4T2YoIjAiKSk7aWYodWk9V24ubWF0Y2goT28pKXJldHVybiBXcj0oV3I9KCIi''@;'; + put 'put ''KyRuKS5yZXBsYWNlKC9eKFteXC5dKykkLywiJDEuIitwMCh1aVsxXSkpLnJlcGxhY2UoL1wuJC8sIi4iK3AwKHVpWzFdKSkpLnJlcGxhY2UoL1wuKFxkKikkLyxmdW5jdGlvbigkYSxqcyl7cmV0dXJuIi4iK2pzK3dlKCIwIixwMCh1aVsxXSkubGVuZ3RoLWpzLmxlbmd0aCl9KSwtMSE9PVdu''@;'; + put 'put ''LmluZGV4T2YoIjAuIik/V3I6V3IucmVwbGFjZSgvXjBcLi8sIi4iKTtpZihXbj1Xbi5yZXBsYWNlKC9eIysoWzAuXSkvLCIkMSIpLHVpPVduLm1hdGNoKC9eKDAqKVwuKCMqKSQvKSlyZXR1cm4gSjArKCIiK3ppKS5yZXBsYWNlKC9cLihcZCpbMS05XSkwKiQvLCIuJDEiKS5yZXBsYWNlKC9e''@;'; + put 'put ''KC0/XGQqKSQvLCIkMS4iKS5yZXBsYWNlKC9eMFwuLyx1aVsxXS5sZW5ndGg/IjAuIjoiLiIpO2lmKHVpPVduLm1hdGNoKC9eI3sxLDN9LCMjMChcLj8pJC8pKXJldHVybiBKMCtqbygiIit6aSk7aWYodWk9V24ubWF0Y2goL14jLCMjMFwuKFsjMF0qMCkkLykpcmV0dXJuICRuPDA/Ii0iK0Jy''@;'; + put 'put ''KGRyLFduLC0kbik6am8oIiIrJG4pKyIuIit3ZSgiMCIsdWlbMV0ubGVuZ3RoKTtpZih1aT1Xbi5tYXRjaCgvXiMsIyosIzAvKSlyZXR1cm4gQnIoZHIsV24ucmVwbGFjZSgvXiMsIyosLywiIiksJG4pO2lmKHVpPVduLm1hdGNoKC9eKFswI10rKShcXD8tKFswI10rKSkrJC8pKXJldHVybiBX''@;'; + put 'put ''cj1YKEJyKGRyLFduLnJlcGxhY2UoL1tcXC1dL2csIiIpLCRuKSksSWk9MCxYKFgoV24ucmVwbGFjZSgvXFwvZywiIikpLnJlcGxhY2UoL1swI10vZyxmdW5jdGlvbigkYSl7cmV0dXJuIElpPFdyLmxlbmd0aD9Xci5jaGFyQXQoSWkrKyk6IjAiPT09JGE/IjAiOiIifSkpO2lmKFduLm1hdGNo''@;'; + put 'put ''KHBvKSlyZXR1cm4iKCIrKFdyPUJyKGRyLCIjIyMjIyMjIyMjIiwkbikpLnN1YnN0cigwLDMpKyIpICIrV3Iuc3Vic3RyKDMsMykrIi0iK1dyLnN1YnN0cig2KTt2YXIgSTA9IiI7aWYodWk9V24ubWF0Y2goL14oWyMwP10rKSggPylcLyggPykoWyMwP10rKS8pKXJldHVybiBJaT1NYXRoLm1p''@;'; + put 'put ''bih1aVs0XS5sZW5ndGgsNyksdTA9WW4oemksTWF0aC5wb3coMTAsSWkpLTEsITEpLFdyPSIiK0owLCIgIj09KEkwPXdhKCJuIix1aVsxXSx1MFsxXSkpLmNoYXJBdChJMC5sZW5ndGgtMSkmJihJMD1JMC5zdWJzdHIoMCxJMC5sZW5ndGgtMSkrIjAiKSxXcis9STArdWlbMl0rIi8iK3VpWzNd''@;'; + put 'put ''LChJMD1aZSh1MFsyXSxJaSkpLmxlbmd0aDx1aVs0XS5sZW5ndGgmJihJMD1wMCh1aVs0XS5zdWJzdHIodWlbNF0ubGVuZ3RoLUkwLmxlbmd0aCkpK0kwKSxXcis9STA7aWYodWk9V24ubWF0Y2goL14jIChbIzA/XSspKCA/KVwvKCA/KShbIzA/XSspLykpcmV0dXJuIElpPU1hdGgubWluKE1h''@;'; + put 'put ''dGgubWF4KHVpWzFdLmxlbmd0aCx1aVs0XS5sZW5ndGgpLDcpLEowKygodTA9WW4oemksTWF0aC5wb3coMTAsSWkpLTEsITApKVswXXx8KHUwWzFdPyIiOiIwIikpKyIgIisodTBbMV0/RmUodTBbMV0sSWkpK3VpWzJdKyIvIit1aVszXStaZSh1MFsyXSxJaSk6d2UoIiAiLDIqSWkrMSt1aVsy''@;'; + put 'put ''XS5sZW5ndGgrdWlbM10ubGVuZ3RoKSk7aWYodWk9V24ubWF0Y2goL15bIzA/XSskLykpcmV0dXJuIFduLmxlbmd0aDw9KFdyPSIiKyRuKS5sZW5ndGg/V3I6cDAoV24uc3Vic3RyKDAsV24ubGVuZ3RoLVdyLmxlbmd0aCkpK1dyO2lmKHVpPVduLm1hdGNoKC9eKFsjMF0rKVwuKFsjMF0rKSQv''@;'; + put 'put ''KSl7V3I9IiIrJG4udG9GaXhlZChNYXRoLm1pbih1aVsyXS5sZW5ndGgsMTApKS5yZXBsYWNlKC8oW14wXSkwKyQvLCIkMSIpLElpPVdyLmluZGV4T2YoIi4iKTt2YXIgZWE9V24uaW5kZXhPZigiLiIpLUlpLFlvPVduLmxlbmd0aC1Xci5sZW5ndGgtZWE7cmV0dXJuIHAwKFduLnN1YnN0cigw''@;'; + put 'put ''LGVhKStXcitXbi5zdWJzdHIoV24ubGVuZ3RoLVlvKSl9aWYodWk9V24ubWF0Y2goL14wMCwwMDBcLihbIzBdKjApJC8pKXJldHVybiAkbjwwPyItIitCcihkcixXbiwtJG4pOmpvKCIiKyRuKS5yZXBsYWNlKC9eXGQsXGR7M30kLywiMCQmIikucmVwbGFjZSgvXlxkKiQvLGZ1bmN0aW9uKCRh''@;'; + put 'put ''KXtyZXR1cm4iMDAsIisoJGEubGVuZ3RoPDM/eGUoMCwzLSRhLmxlbmd0aCk6IiIpKyRhfSkrIi4iK3hlKDAsdWlbMV0ubGVuZ3RoKTt2YXIgeW89am8oIiIremkpO3N3aXRjaChXbil7Y2FzZSIjIyMsIyMjIjpjYXNlIiMjLCMjIyI6Y2FzZSIjLCMjIyI6cmV0dXJuIjAiIT09eW8/SjAreW86''@;'; + put 'put ''IiI7Y2FzZSIjLCMwMCI6cmV0dXJuIjAwIiE9PSh5bz14ZSh5bywyKSk/SjAreW86IiI7ZGVmYXVsdDppZihXbi5tYXRjaCgvXC5bMCM/XSokLykpcmV0dXJuIEJyKGRyLFduLnNsaWNlKDAsV24ubGFzdEluZGV4T2YoIi4iKSksJG4pK3AwKFduLnNsaWNlKFduLmxhc3RJbmRleE9mKCIuIikp''@;'; + put 'put ''KX10aHJvdyBuZXcgRXJyb3IoInVuc3VwcG9ydGVkIGZvcm1hdCB8IitXbisifCIpfXJldHVybiBmdW5jdGlvbihXbiwkbixicil7cmV0dXJuIjAsMCI9PSRuJiYoJG49IiMsIzAwIiksKDB8YnIpPT09YnI/QnIoV24sJG4sYnIpOktzKFduLCRuLGJyKX19KCk7ZnVuY3Rpb24gYW8ocnIpe2Zv''@;'; + put 'put ''cih2YXIgSXI9W10sWnI9ITEscWk9MCxyaT0wO3FpPHJyLmxlbmd0aDsrK3FpKXN3aXRjaChyci5jaGFyQ29kZUF0KHFpKSl7Y2FzZSAzNDpacj0hWnI7YnJlYWs7Y2FzZSA5NTpjYXNlIDQyOmNhc2UgOTI6KytxaTticmVhaztjYXNlIDU5OklyW0lyLmxlbmd0aF09cnIuc3Vic3RyKHJpLHFp''@;'; + put 'put ''LXJpKSxyaT1xaSsxfWlmKElyW0lyLmxlbmd0aF09cnIuc3Vic3RyKHJpKSwhMD09PVpyKXRocm93IG5ldyBFcnJvcigiRm9ybWF0IHwiK3JyKyJ8IHVudGVybWluYXRlZCBzdHJpbmcgIik7cmV0dXJuIElyfXJlLl9zcGxpdD1hbzt2YXIgeDA9L1xbW0hoTW1Tc1x1MEUwQVx1MEUxOVx1MEUx''@;'; + put 'put ''N10qXF0vO2Z1bmN0aW9uIGgwKHJyKXtmb3IodmFyIElyPTAsWnI9IiIscWk9IiI7SXI8cnIubGVuZ3RoOylzd2l0Y2goWnI9cnIuY2hhckF0KElyKSl7Y2FzZSJHIjpSdChycixJcikmJihJcis9NiksSXIrKzticmVhaztjYXNlJyInOmZvcig7MzQhPT1yci5jaGFyQ29kZUF0KCsrSXIpJiZJ''@;'; + put 'put ''cjxyci5sZW5ndGg7KTsrK0lyO2JyZWFrO2Nhc2UiXFwiOmNhc2UiXyI6SXIrPTI7YnJlYWs7Y2FzZSJAIjorK0lyO2JyZWFrO2Nhc2UiQiI6Y2FzZSJiIjppZigiMSI9PT1yci5jaGFyQXQoSXIrMSl8fCIyIj09PXJyLmNoYXJBdChJcisxKSlyZXR1cm4hMDtjYXNlIk0iOmNhc2UiRCI6Y2Fz''@;'; + put 'put ''ZSJZIjpjYXNlIkgiOmNhc2UiUyI6Y2FzZSJFIjpjYXNlIm0iOmNhc2UiZCI6Y2FzZSJ5IjpjYXNlImgiOmNhc2UicyI6Y2FzZSJlIjpjYXNlImciOnJldHVybiEwO2Nhc2UiQSI6Y2FzZSJhIjpjYXNlIlx1NGUwYSI6aWYoIkEvUCI9PT1yci5zdWJzdHIoSXIsMykudG9VcHBlckNhc2UoKXx8''@;'; + put 'put ''IkFNL1BNIj09PXJyLnN1YnN0cihJciw1KS50b1VwcGVyQ2FzZSgpfHwiXHU0ZTBhXHU1MzQ4L1x1NGUwYlx1NTM0OCI9PT1yci5zdWJzdHIoSXIsNSkudG9VcHBlckNhc2UoKSlyZXR1cm4hMDsrK0lyO2JyZWFrO2Nhc2UiWyI6Zm9yKHFpPVpyOyJdIiE9PXJyLmNoYXJBdChJcisrKSYmSXI8''@;'; + put 'put ''cnIubGVuZ3RoOylxaSs9cnIuY2hhckF0KElyKTtpZihxaS5tYXRjaCh4MCkpcmV0dXJuITA7YnJlYWs7Y2FzZSIuIjpjYXNlIjAiOmNhc2UiIyI6Zm9yKDtJcjxyci5sZW5ndGgmJigiMCM/LixFKy0lIi5pbmRleE9mKFpyPXJyLmNoYXJBdCgrK0lyKSk+LTF8fCJcXCI9PVpyJiYiLSI9PXJy''@;'; + put 'put ''LmNoYXJBdChJcisxKSYmIjAjIi5pbmRleE9mKHJyLmNoYXJBdChJcisyKSk+LTEpOyk7YnJlYWs7Y2FzZSI/Ijpmb3IoO3JyLmNoYXJBdCgrK0lyKT09PVpyOyk7YnJlYWs7Y2FzZSIqIjorK0lyLCgiICI9PXJyLmNoYXJBdChJcil8fCIqIj09cnIuY2hhckF0KElyKSkmJisrSXI7YnJlYWs7''@;'; + put 'put ''Y2FzZSIoIjpjYXNlIikiOisrSXI7YnJlYWs7Y2FzZSIxIjpjYXNlIjIiOmNhc2UiMyI6Y2FzZSI0IjpjYXNlIjUiOmNhc2UiNiI6Y2FzZSI3IjpjYXNlIjgiOmNhc2UiOSI6Zm9yKDtJcjxyci5sZW5ndGgmJiIwMTIzNDU2Nzg5Ii5pbmRleE9mKHJyLmNoYXJBdCgrK0lyKSk+LTE7KTticmVh''@;'; + put 'put ''aztkZWZhdWx0OisrSXJ9cmV0dXJuITF9ZnVuY3Rpb24ganIocnIsSXIsWnIscWkpe2Zvcih2YXIgazAscG8scDAscmk9W10scjA9IiIscGk9MCxlMD0iIixPbz0idCIsUWw9IkgiO3BpPHJyLmxlbmd0aDspc3dpdGNoKGUwPXJyLmNoYXJBdChwaSkpe2Nhc2UiRyI6aWYoIVJ0KHJyLHBpKSl0''@;'; + put 'put ''aHJvdyBuZXcgRXJyb3IoInVucmVjb2duaXplZCBjaGFyYWN0ZXIgIitlMCsiIGluICIrcnIpO3JpW3JpLmxlbmd0aF09e3Q6IkciLHY6IkdlbmVyYWwifSxwaSs9NzticmVhaztjYXNlJyInOmZvcihyMD0iIjszNCE9PShwMD1yci5jaGFyQ29kZUF0KCsrcGkpKSYmcGk8cnIubGVuZ3RoOyly''@;'; + put 'put ''MCs9U3RyaW5nLmZyb21DaGFyQ29kZShwMCk7cmlbcmkubGVuZ3RoXT17dDoidCIsdjpyMH0sKytwaTticmVhaztjYXNlIlxcIjp2YXIgQWw9cnIuY2hhckF0KCsrcGkpO3JpW3JpLmxlbmd0aF09e3Q6IigiPT09QWx8fCIpIj09PUFsP0FsOiJ0Iix2OkFsfSwrK3BpO2JyZWFrO2Nhc2UiXyI6''@;'; + put 'put ''cmlbcmkubGVuZ3RoXT17dDoidCIsdjoiICJ9LHBpKz0yO2JyZWFrO2Nhc2UiQCI6cmlbcmkubGVuZ3RoXT17dDoiVCIsdjpJcn0sKytwaTticmVhaztjYXNlIkIiOmNhc2UiYiI6aWYoIjEiPT09cnIuY2hhckF0KHBpKzEpfHwiMiI9PT1yci5jaGFyQXQocGkrMSkpe2lmKG51bGw9PWswJiZu''@;'; + put 'put ''dWxsPT0oazA9TXIoSXIsWnIsIjIiPT09cnIuY2hhckF0KHBpKzEpKSkpcmV0dXJuIiI7cmlbcmkubGVuZ3RoXT17dDoiWCIsdjpyci5zdWJzdHIocGksMil9LE9vPWUwLHBpKz0yO2JyZWFrfWNhc2UiTSI6Y2FzZSJEIjpjYXNlIlkiOmNhc2UiSCI6Y2FzZSJTIjpjYXNlIkUiOmUwPWUwLnRv''@;'; + put 'put ''TG93ZXJDYXNlKCk7Y2FzZSJtIjpjYXNlImQiOmNhc2UieSI6Y2FzZSJoIjpjYXNlInMiOmNhc2UiZSI6Y2FzZSJnIjpjYXNlIlx1MGUyNyI6Y2FzZSJcdTBlMTQiOmNhc2UiXHUwZTFiIjpjYXNlIlx1MGUwYSI6Y2FzZSJcdTBlMTkiOmNhc2UiXHUwZTE3IjppZihJcjwwfHxudWxsPT1rMCYm''@;'; + put 'put ''bnVsbD09KGswPU1yKElyLFpyKSkpcmV0dXJuIiI7Zm9yKHIwPWUwOysrcGk8cnIubGVuZ3RoJiZyci5jaGFyQXQocGkpLnRvTG93ZXJDYXNlKCk9PT1lMDspcjArPWUwOyJtIj09PWUwJiYiaCI9PT1Pby50b0xvd2VyQ2FzZSgpJiYoZTA9Ik0iKSwiaCI9PT1lMCYmKGUwPVFsKSxyaVtyaS5s''@;'; + put 'put ''ZW5ndGhdPXt0OmUwLHY6cjB9LE9vPWUwO2JyZWFrO2Nhc2UiQSI6Y2FzZSJhIjpjYXNlIlx1NGUwYSI6dmFyIGUxPXt0OmUwLHY6ZTB9O2lmKG51bGw9PWswJiYoazA9TXIoSXIsWnIpKSwiQS9QIj09PXJyLnN1YnN0cihwaSwzKS50b1VwcGVyQ2FzZSgpPyhudWxsIT1rMCYmKGUxLnY9azAu''@;'; + put 'put ''SD49MTI/IlAiOiJBIiksZTEudD0iVCIsUWw9ImgiLHBpKz0zKToiQU0vUE0iPT09cnIuc3Vic3RyKHBpLDUpLnRvVXBwZXJDYXNlKCk/KG51bGwhPWswJiYoZTEudj1rMC5IPj0xMj8iUE0iOiJBTSIpLGUxLnQ9IlQiLHBpKz01LFFsPSJoIik6Ilx1NGUwYVx1NTM0OC9cdTRlMGJcdTUzNDgi''@;'; + put 'put ''PT09cnIuc3Vic3RyKHBpLDUpLnRvVXBwZXJDYXNlKCk/KG51bGwhPWswJiYoZTEudj1rMC5IPj0xMj8iXHU0ZTBiXHU1MzQ4IjoiXHU0ZTBhXHU1MzQ4IiksZTEudD0iVCIscGkrPTUsUWw9ImgiKTooZTEudD0idCIsKytwaSksbnVsbD09azAmJiJUIj09PWUxLnQpcmV0dXJuIiI7cmlbcmku''@;'; + put 'put ''bGVuZ3RoXT1lMSxPbz1lMDticmVhaztjYXNlIlsiOmZvcihyMD1lMDsiXSIhPT1yci5jaGFyQXQocGkrKykmJnBpPHJyLmxlbmd0aDspcjArPXJyLmNoYXJBdChwaSk7aWYoIl0iIT09cjAuc2xpY2UoLTEpKXRocm93J3VudGVybWluYXRlZCAiWyIgYmxvY2s6IHwnK3IwKyJ8IjtpZihyMC5t''@;'; + put 'put ''YXRjaCh4MCkpe2lmKG51bGw9PWswJiZudWxsPT0oazA9TXIoSXIsWnIpKSlyZXR1cm4iIjtyaVtyaS5sZW5ndGhdPXt0OiJaIix2OnIwLnRvTG93ZXJDYXNlKCl9LE9vPXIwLmNoYXJBdCgxKX1lbHNlIHIwLmluZGV4T2YoIiQiKT4tMSYmKHIwPShyMC5tYXRjaCgvXCQoW14tXFtcXV0qKS8p''@;'; + put 'put ''fHxbXSlbMV18fCIkIixoMChycil8fChyaVtyaS5sZW5ndGhdPXt0OiJ0Iix2OnIwfSkpO2JyZWFrO2Nhc2UiLiI6aWYobnVsbCE9azApe2ZvcihyMD1lMDsrK3BpPHJyLmxlbmd0aCYmIjAiPT09KGUwPXJyLmNoYXJBdChwaSkpOylyMCs9ZTA7cmlbcmkubGVuZ3RoXT17dDoicyIsdjpyMH07''@;'; + put 'put ''YnJlYWt9Y2FzZSIwIjpjYXNlIiMiOmZvcihyMD1lMDsrK3BpPHJyLmxlbmd0aCYmIjAjPy4sRSstJSIuaW5kZXhPZihlMD1yci5jaGFyQXQocGkpKT4tMTspcjArPWUwO3JpW3JpLmxlbmd0aF09e3Q6Im4iLHY6cjB9O2JyZWFrO2Nhc2UiPyI6Zm9yKHIwPWUwO3JyLmNoYXJBdCgrK3BpKT09''@;'; + put 'put ''PWUwOylyMCs9ZTA7cmlbcmkubGVuZ3RoXT17dDplMCx2OnIwfSxPbz1lMDticmVhaztjYXNlIioiOisrcGksKCIgIj09cnIuY2hhckF0KHBpKXx8IioiPT1yci5jaGFyQXQocGkpKSYmKytwaTticmVhaztjYXNlIigiOmNhc2UiKSI6cmlbcmkubGVuZ3RoXT17dDoxPT09cWk/InQiOmUwLHY6''@;'; + put 'put ''ZTB9LCsrcGk7YnJlYWs7Y2FzZSIxIjpjYXNlIjIiOmNhc2UiMyI6Y2FzZSI0IjpjYXNlIjUiOmNhc2UiNiI6Y2FzZSI3IjpjYXNlIjgiOmNhc2UiOSI6Zm9yKHIwPWUwO3BpPHJyLmxlbmd0aCYmIjAxMjM0NTY3ODkiLmluZGV4T2YocnIuY2hhckF0KCsrcGkpKT4tMTspcjArPXJyLmNoYXJB''@;'; + put 'put ''dChwaSk7cmlbcmkubGVuZ3RoXT17dDoiRCIsdjpyMH07YnJlYWs7Y2FzZSIgIjpyaVtyaS5sZW5ndGhdPXt0OmUwLHY6ZTB9LCsrcGk7YnJlYWs7Y2FzZSIkIjpyaVtyaS5sZW5ndGhdPXt0OiJ0Iix2OmRpfSwrK3BpO2JyZWFrO2Nhc2UiLyI6cmlbcmkubGVuZ3RoXT1yaS5sZW5ndGg+MCYm''@;'; + put 'put ''aDAocmlbcmkubGVuZ3RoLTFdLnYpP3t0OiJ0Iix2OllyfTp7dDoidCIsdjoiLyJ9LCsrcGk7YnJlYWs7ZGVmYXVsdDppZigtMT09PSIsJC0rLygpOiFeJid+e308Pj1cdTIwYWNhY2Zpamtsb3BxcnR1dnd4elAiLmluZGV4T2YoZTApKXRocm93IG5ldyBFcnJvcigidW5yZWNvZ25pemVkIGNo''@;'; + put 'put ''YXJhY3RlciAiK2UwKyIgaW4gIitycik7cmlbcmkubGVuZ3RoXT17dDoidCIsdjplMH0sKytwaX12YXIgdGgsS3M9MCxQNj0wO2ZvcihwaT1yaS5sZW5ndGgtMSxPbz0idCI7cGk+PTA7LS1waSlzd2l0Y2gocmlbcGldLnQpe2Nhc2UiaCI6Y2FzZSJIIjpyaVtwaV0udD1RbCxPbz0iaCIsS3M8''@;'; + put 'put ''MSYmKEtzPTEpO2JyZWFrO2Nhc2UicyI6KHRoPXJpW3BpXS52Lm1hdGNoKC9cLjArJC8pKSYmKFA2PU1hdGgubWF4KFA2LHRoWzBdLmxlbmd0aC0xKSksS3M8MyYmKEtzPTMpO2Nhc2UiZCI6Y2FzZSJ5IjpjYXNlIk0iOmNhc2UiZSI6T289cmlbcGldLnQ7YnJlYWs7Y2FzZSJtIjoicyI9PT1P''@;'; + put 'put ''byYmKHJpW3BpXS50PSJNIixLczwyJiYoS3M9MikpO2JyZWFrO2Nhc2UiWCI6YnJlYWs7Y2FzZSJaIjpLczwxJiZyaVtwaV0udi5tYXRjaCgvW0hoXS8pJiYoS3M9MSksS3M8MiYmcmlbcGldLnYubWF0Y2goL1tNbV0vKSYmKEtzPTIpLEtzPDMmJnJpW3BpXS52Lm1hdGNoKC9bU3NdLykmJihL''@;'; + put 'put ''cz0zKX1zd2l0Y2goS3Mpe2Nhc2UgMDpicmVhaztjYXNlIDE6azAudT49LjUmJihrMC51PTAsKytrMC5TKSxrMC5TPj02MCYmKGswLlM9MCwrK2swLk0pLGswLk0+PTYwJiYoazAuTT0wLCsrazAuSCk7YnJlYWs7Y2FzZSAyOmswLnU+PS41JiYoazAudT0wLCsrazAuUyksazAuUz49NjAmJihr''@;'; + put 'put ''MC5TPTAsKytrMC5NKX12YXIgQnIsbHI9IiI7Zm9yKHBpPTA7cGk8cmkubGVuZ3RoOysrcGkpc3dpdGNoKHJpW3BpXS50KXtjYXNlInQiOmNhc2UiVCI6Y2FzZSIgIjpjYXNlIkQiOmJyZWFrO2Nhc2UiWCI6cmlbcGldLnY9IiIscmlbcGldLnQ9IjsiO2JyZWFrO2Nhc2UiZCI6Y2FzZSJtIjpj''@;'; + put 'put ''YXNlInkiOmNhc2UiaCI6Y2FzZSJIIjpjYXNlIk0iOmNhc2UicyI6Y2FzZSJlIjpjYXNlImIiOmNhc2UiWiI6Y2FzZSJcdTBlMjciOmNhc2UiXHUwZTE0IjpjYXNlIlx1MGUxYiI6Y2FzZSJcdTBlMGEiOmNhc2UiXHUwZTE5IjpjYXNlIlx1MGUxNyI6cmlbcGldLnY9TmEocmlbcGldLnQuY2hh''@;'; + put 'put ''ckNvZGVBdCgwKSxyaVtwaV0udixrMCxQNikscmlbcGldLnQ9InQiO2JyZWFrO2Nhc2UibiI6Y2FzZSI/Ijpmb3IoQnI9cGkrMTtudWxsIT1yaVtCcl0mJigiPyI9PT0oZTA9cmlbQnJdLnQpfHwiRCI9PT1lMHx8KCIgIj09PWUwfHwidCI9PT1lMCkmJm51bGwhPXJpW0JyKzFdJiYoIj8iPT09''@;'; + put 'put ''cmlbQnIrMV0udHx8InQiPT09cmlbQnIrMV0udCYmIi8iPT09cmlbQnIrMV0udil8fCIoIj09PXJpW3BpXS50JiYoIiAiPT09ZTB8fCJuIj09PWUwfHwiKSI9PT1lMCl8fCJ0Ij09PWUwJiYoIi8iPT09cmlbQnJdLnZ8fCIgIj09PXJpW0JyXS52JiZudWxsIT1yaVtCcisxXSYmIj8iPT1yaVtC''@;'; + put 'put ''cisxXS50KSk7KXJpW3BpXS52Kz1yaVtCcl0udixyaVtCcl09e3Y6IiIsdDoiOyJ9LCsrQnI7bHIrPXJpW3BpXS52LHBpPUJyLTE7YnJlYWs7Y2FzZSJHIjpyaVtwaV0udD0idCIscmlbcGldLnY9aW8oSXIsWnIpfXZhciBXbiwkbixkcj0iIjtpZihsci5sZW5ndGg+MCl7NDA9PWxyLmNoYXJD''@;'; + put 'put ''b2RlQXQoMCk/KFduPUlyPDAmJjQ1PT09bHIuY2hhckNvZGVBdCgwKT8tSXI6SXIsJG49d2EoIm4iLGxyLFduKSk6KCRuPXdhKCJuIixscixXbj1JcjwwJiZxaT4xPy1JcjpJciksV248MCYmcmlbMF0mJiJ0Ij09cmlbMF0udCYmKCRuPSRuLnN1YnN0cigxKSxyaVswXS52PSItIityaVswXS52''@;'; + put 'put ''KSksQnI9KCRuPSRuLnJlcGxhY2UoL1ssXC5dL2csZnVuY3Rpb24oSWkpe3JldHVybiIuIj09SWk/d2k6QTB9KSkubGVuZ3RoLTE7dmFyIGJyPXJpLmxlbmd0aDtmb3IocGk9MDtwaTxyaS5sZW5ndGg7KytwaSlpZihudWxsIT1yaVtwaV0mJiJ0IiE9cmlbcGldLnQmJnJpW3BpXS52LmluZGV4''@;'; + put 'put ''T2YoIi4iKT4tMSl7YnI9cGk7YnJlYWt9dmFyIFdyPXJpLmxlbmd0aDtpZihicj09PXJpLmxlbmd0aCYmLTE9PT0kbi5pbmRleE9mKCJFIikpe2ZvcihwaT1yaS5sZW5ndGgtMTtwaT49MDstLXBpKW51bGw9PXJpW3BpXXx8LTE9PT0ibj8iLmluZGV4T2YocmlbcGldLnQpfHwoQnI+PXJpW3Bp''@;'; + put 'put ''XS52Lmxlbmd0aC0xP3JpW3BpXS52PSRuLnN1YnN0cigxKyhCci09cmlbcGldLnYubGVuZ3RoKSxyaVtwaV0udi5sZW5ndGgpOkJyPDA/cmlbcGldLnY9IiI6KHJpW3BpXS52PSRuLnN1YnN0cigwLEJyKzEpLEJyPS0xKSxyaVtwaV0udD0idCIsV3I9cGkpO0JyPj0wJiZXcjxyaS5sZW5ndGgm''@;'; + put 'put ''JihyaVtXcl0udj0kbi5zdWJzdHIoMCxCcisxKStyaVtXcl0udil9ZWxzZSBpZihiciE9PXJpLmxlbmd0aCYmLTE9PT0kbi5pbmRleE9mKCJFIikpe2ZvcihCcj0kbi5pbmRleE9mKHdpKS0xLHBpPWJyO3BpPj0wOy0tcGkpaWYobnVsbCE9cmlbcGldJiYtMSE9PSJuPyIuaW5kZXhPZihyaVtw''@;'; + put 'put ''aV0udCkpe2Zvcihwbz1yaVtwaV0udi5pbmRleE9mKCIuIik+LTEmJnBpPT09YnI/cmlbcGldLnYuaW5kZXhPZigiLiIpLTE6cmlbcGldLnYubGVuZ3RoLTEsZHI9cmlbcGldLnYuc3Vic3RyKHBvKzEpO3BvPj0wOy0tcG8pQnI+PTAmJigiMCI9PT1yaVtwaV0udi5jaGFyQXQocG8pfHwiIyI9''@;'; + put 'put ''PT1yaVtwaV0udi5jaGFyQXQocG8pKSYmKGRyPSRuLmNoYXJBdChCci0tKStkcik7cmlbcGldLnY9ZHIscmlbcGldLnQ9InQiLFdyPXBpfWZvcihCcj49MCYmV3I8cmkubGVuZ3RoJiYocmlbV3JdLnY9JG4uc3Vic3RyKDAsQnIrMSkrcmlbV3JdLnYpLEJyPSRuLmluZGV4T2Yod2kpKzEscGk9''@;'; + put 'put ''YnI7cGk8cmkubGVuZ3RoOysrcGkpaWYobnVsbCE9cmlbcGldJiYoLTEhPT0ibj8oIi5pbmRleE9mKHJpW3BpXS50KXx8cGk9PT1icikpe2Zvcihwbz1yaVtwaV0udi5pbmRleE9mKHdpKT4tMSYmcGk9PT1icj9yaVtwaV0udi5pbmRleE9mKHdpKSsxOjAsZHI9cmlbcGldLnYuc3Vic3RyKDAs''@;'; + put 'put ''cG8pO3BvPHJpW3BpXS52Lmxlbmd0aDsrK3BvKUJyPCRuLmxlbmd0aCYmKGRyKz0kbi5jaGFyQXQoQnIrKykpO3JpW3BpXS52PWRyLHJpW3BpXS50PSJ0IixXcj1waX19fWZvcihwaT0wO3BpPHJpLmxlbmd0aDsrK3BpKW51bGwhPXJpW3BpXSYmIm4/Ii5pbmRleE9mKHJpW3BpXS50KT4tMSYm''@;'; + put 'put ''KHJpW3BpXS52PXdhKHJpW3BpXS50LHJpW3BpXS52LFduPXFpPjEmJklyPDAmJnBpPjAmJiItIj09PXJpW3BpLTFdLnY/LUlyOklyKS5yZXBsYWNlKC9cLi9nLHdpKS5yZXBsYWNlKC8sLyxBMCkscmlbcGldLnQ9InQiKTt2YXIgdWk9IiI7Zm9yKHBpPTA7cGkhPT1yaS5sZW5ndGg7KytwaSlu''@;'; + put 'put ''dWxsIT1yaVtwaV0mJih1aSs9cmlbcGldLnYpO3JldHVybiB1aX1yZS5pc19kYXRlPWgwLHJlLl9ldmFsPWpyO3ZhciB2bz0vXFtbPTw+XS8seG89L1xbKD18Pls9XT98PFs+PV0/KSgtP1xkKyg/OlwuXGQqKT8pXF0vO2Z1bmN0aW9uICRpKHJyLElyKXtpZihudWxsPT1JcilyZXR1cm4hMTt2''@;'; + put 'put ''YXIgWnI9cGFyc2VGbG9hdChJclsyXSk7c3dpdGNoKElyWzFdKXtjYXNlIj0iOmlmKHJyPT1acilyZXR1cm4hMDticmVhaztjYXNlIj4iOmlmKHJyPlpyKXJldHVybiEwO2JyZWFrO2Nhc2UiPCI6aWYocnI8WnIpcmV0dXJuITA7YnJlYWs7Y2FzZSI8PiI6aWYocnIhPVpyKXJldHVybiEwO2Jy''@;'; + put 'put ''ZWFrO2Nhc2UiPj0iOmlmKHJyPj1acilyZXR1cm4hMDticmVhaztjYXNlIjw9IjppZihycjw9WnIpcmV0dXJuITB9cmV0dXJuITF9ZnVuY3Rpb24gTWMocnIsSXIsWnIpe251bGw9PVpyJiYoWnI9e30pO3ZhciBxaT0iIjtzd2l0Y2godHlwZW9mIHJyKXtjYXNlInN0cmluZyI6cWk9Im0vZC95''@;'; + put 'put ''eSI9PXJyJiZaci5kYXRlTkY/WnIuZGF0ZU5GOnJyO2JyZWFrO2Nhc2UibnVtYmVyIjpudWxsPT0ocWk9MTQ9PXJyJiZaci5kYXRlTkY/WnIuZGF0ZU5GOihudWxsIT1aci50YWJsZT9aci50YWJsZTp6dClbcnJdKSYmKHFpPVpyLnRhYmxlJiZaci50YWJsZVtQbltycl1dfHx6dFtQbltycl1d''@;'; + put 'put ''KSxudWxsPT1xaSYmKHFpPU9uW3JyXXx8IkdlbmVyYWwiKX1pZihSdChxaSwwKSlyZXR1cm4gaW8oSXIsWnIpO0lyIGluc3RhbmNlb2YgRGF0ZSYmKElyPUdyKElyLFpyLmRhdGUxOTA0KSk7dmFyIHJpPWZ1bmN0aW9uIGwyKHJyLElyKXt2YXIgWnI9YW8ocnIpLHFpPVpyLmxlbmd0aCxyaT1a''@;'; + put 'put ''cltxaS0xXS5pbmRleE9mKCJAIik7aWYocWk8NCYmcmk+LTEmJi0tcWksWnIubGVuZ3RoPjQpdGhyb3cgbmV3IEVycm9yKCJjYW5ub3QgZmluZCByaWdodCBmb3JtYXQgZm9yIHwiK1pyLmpvaW4oInwiKSsifCIpO2lmKCJudW1iZXIiIT10eXBlb2YgSXIpcmV0dXJuWzQsND09PVpyLmxlbmd0''@;'; + put 'put ''aHx8cmk+LTE/WnJbWnIubGVuZ3RoLTFdOiJAIl07c3dpdGNoKFpyLmxlbmd0aCl7Y2FzZSAxOlpyPXJpPi0xP1siR2VuZXJhbCIsIkdlbmVyYWwiLCJHZW5lcmFsIixaclswXV06W1pyWzBdLFpyWzBdLFpyWzBdLCJAIl07YnJlYWs7Y2FzZSAyOlpyPXJpPi0xP1taclswXSxaclswXSxaclsw''@;'; + put 'put ''XSxaclsxXV06W1pyWzBdLFpyWzFdLFpyWzBdLCJAIl07YnJlYWs7Y2FzZSAzOlpyPXJpPi0xP1taclswXSxaclsxXSxaclswXSxaclsyXV06W1pyWzBdLFpyWzFdLFpyWzJdLCJAIl19dmFyIHIwPUlyPjA/WnJbMF06SXI8MD9aclsxXTpaclsyXTtpZigtMT09PVpyWzBdLmluZGV4T2YoIlsi''@;'; + put 'put ''KSYmLTE9PT1aclsxXS5pbmRleE9mKCJbIikpcmV0dXJuW3FpLHIwXTtpZihudWxsIT1aclswXS5tYXRjaCh2byl8fG51bGwhPVpyWzFdLm1hdGNoKHZvKSl7dmFyIHBpPVpyWzBdLm1hdGNoKHhvKSxlMD1aclsxXS5tYXRjaCh4byk7cmV0dXJuICRpKElyLHBpKT9bcWksWnJbMF1dOiRpKEly''@;'; + put 'put ''LGUwKT9bcWksWnJbMV1dOltxaSxacltudWxsIT1waSYmbnVsbCE9ZTA/MjoxXV19cmV0dXJuW3FpLHIwXX0ocWksSXIpO2lmKFJ0KHJpWzFdKSlyZXR1cm4gaW8oSXIsWnIpO2lmKCEwPT09SXIpSXI9IlRSVUUiO2Vsc2UgaWYoITE9PT1JcilJcj0iRkFMU0UiO2Vsc2UgaWYoIiI9PT1Jcnx8''@;'; + put 'put ''bnVsbD09SXIpcmV0dXJuIiI7cmV0dXJuIGpyKHJpWzFdLElyLFpyLHJpWzBdKX1mdW5jdGlvbiBwMihycixJcil7aWYoIm51bWJlciIhPXR5cGVvZiBJcil7SXI9K0lyfHwtMTtmb3IodmFyIFpyPTA7WnI8MzkyOysrWnIpaWYobnVsbCE9enRbWnJdKXtpZih6dFtacl09PXJyKXtJcj1acjti''@;'; + put 'put ''cmVha319ZWxzZSBJcjwwJiYoSXI9WnIpO0lyPDAmJihJcj0zOTEpfXJldHVybiB6dFtJcl09cnIsSXJ9cmUubG9hZD1wMixyZS5fdGFibGU9enQscmUuZ2V0X3RhYmxlPWZ1bmN0aW9uKCl7cmV0dXJuIHp0fSxyZS5sb2FkX3RhYmxlPWZ1bmN0aW9uKElyKXtmb3IodmFyIFpyPTA7MzkyIT1a''@;'; + put 'put ''cjsrK1pyKXZvaWQgMCE9PUlyW1pyXSYmcDIoSXJbWnJdLFpyKX0scmUuaW5pdF90YWJsZT1EdCxyZS5mb3JtYXQ9TWMscmUuZ2V0bG9jYWxlPWZ1bmN0aW9uIEVpKCl7cmV0dXJuIHpyfHwiZW4tVVMifSxyZS5zZXRsb2NhbGU9ZnVuY3Rpb24gaGkocnIpe2lmKGZ1bmN0aW9uIGtpKHJyKXt2''@;'; + put 'put ''YXIgSXI9MDtzd2l0Y2goKHpyfHwiIikudG9Mb3dlckNhc2UoKSl7Y2FzZSJ6aC10dyI6Y2FzZSJ6aC1jbiI6Y2FzZSJqYS1qcCI6Y2FzZSJrby1rciI6Zm9yKElyPTI3O0lyPD0zNjsrK0lyKWRlbGV0ZSBycltJcl07Zm9yKElyPTUwO0lyPD01ODsrK0lyKWRlbGV0ZSBycltJcl07YnJlYWs7''@;'; + put 'put ''Y2FzZSJ0aC10aCI6Zm9yKElyPTU5O0lyPD02MjsrK0lyKWRlbGV0ZSBycltJcl07Zm9yKElyPTY3O0lyPD04MTsrK0lyKWRlbGV0ZSBycltJcl19fSh6dCksenI9cnIsTnIoenQpLCJ1bmRlZmluZWQiIT10eXBlb2YgSW50bCl7dmFyIElyPUludGwuRGF0ZVRpbWVGb3JtYXQocnIpO2lmKEly''@;'; + put 'put ''LmZvcm1hdFRvUGFydHMpe2Zvcih2YXIgWnI9SXIuZm9ybWF0VG9QYXJ0cyhuZXcgRGF0ZSgyMDIwLDAsNSwwLDAsMCkpLHFpPTA7cWk8NzsrK3FpKW5uW3FpXVsxXT1JbnRsLkRhdGVUaW1lRm9ybWF0KHJyLHt3ZWVrZGF5OiJsb25nIn0pLmZvcm1hdFRvUGFydHMobmV3IERhdGUoMjAyMCww''@;'; + put 'put ''LDUrcWksMCwwLDApKVswXS52YWx1ZSxubltxaV1bMF09SW50bC5EYXRlVGltZUZvcm1hdChycix7d2Vla2RheToic2hvcnQifSkuZm9ybWF0VG9QYXJ0cyhuZXcgRGF0ZSgyMDIwLDAsNStxaSwwLDAsMCkpWzBdLnZhbHVlO2Zvcih2YXIgcmk9MDtyaTwxMjsrK3JpKUNuW3JpXVsyXT1JbnRs''@;'; + put 'put ''LkRhdGVUaW1lRm9ybWF0KHJyLHttb250aDoibG9uZyJ9KS5mb3JtYXRUb1BhcnRzKG5ldyBEYXRlKDIwMjAscmksMiwwLDAsMCkpWzBdLnZhbHVlLENuW3JpXVsxXT1JbnRsLkRhdGVUaW1lRm9ybWF0KHJyLHttb250aDoic2hvcnQifSkuZm9ybWF0VG9QYXJ0cyhuZXcgRGF0ZSgyMDIwLHJp''@;'; + put 'put ''LDIsMCwwLDApKVswXS52YWx1ZSxDbltyaV1bMF09Q25bcmldWzFdLnNsaWNlKDAsMSk7Zm9yKHZhciByMD0iIixwaT0wO3BpPFpyLmxlbmd0aDsrK3BpKXt2YXIgZTA9WnJbcGldLnZhbHVlO3N3aXRjaChacltwaV0udHlwZSl7Y2FzZSJ5ZWFyIjpyMCs9Mj09ZTAubGVuZ3RoPyJ5eSI6Inl5''@;'; + put 'put ''eXkiO2JyZWFrO2Nhc2UibW9udGgiOnIwKz0iMSI9PWUwPyJtIjoiMDEiPT1lMD8ibW0iOmUwPT1DblswXVsxXT8ibW1tIjplMD09Q25bMF1bMl0/Im1tbW0iOmUwPT1DblswXVswXT8ibW1tbW0iOiJtbSI7YnJlYWs7Y2FzZSJkYXkiOnIwKz0iNSI9PWUwPyJkIjoiMDUiPT1lMD8iZGQiOmUw''@;'; + put 'put ''PT1ublswXVswXT8iZGRkIjplMD09bm5bMF1bMV0/ImRkZGQiOiJkZCI7YnJlYWs7Y2FzZSJsaXRlcmFsIjpyMCs9ZTAucmVwbGFjZSgvLi9nLCJcXCQmIiksMT09ZTAubGVuZ3RoJiYoWXI9ZTApfX0ocnIubWF0Y2goL2VuL2kpJiZyci5tYXRjaCgvdXMvaSl8fCFycikmJihyMD0ibS9kL3l5''@;'; + put 'put ''IiksenRbMTRdPXIwfWVsc2UiamEtanAiPT1yci50b0xvd2VyQ2FzZSgpJiYoenRbMTRdPSJ5eXl5XFwvbVxcL2QiKTt2YXIgT289SW50bC5OdW1iZXJGb3JtYXQocnIse30pLmZvcm1hdCgxMjM0NTY3Ljg5KTtPbyYmKEEwPShPby5tYXRjaCgvMSguKikyLyl8fFtdKVsxXSx3aT0oT28ubWF0''@;'; + put 'put ''Y2goLzcoLiopOC8pfHxbXSlbMV0pfXFyW3JyLnRvTG93ZXJDYXNlKCldfHwocXJbcnIudG9Mb3dlckNhc2UoKV09eyIuIjp3aSwiLCI6QTB9KSxjcj1VdChvaT1xcltyci50b0xvd2VyQ2FzZSgpXXx8cXJbImVuLXVzIl0pfSxyZS5ub3JtYWxpemU9ZnVuY3Rpb24gSGkocnIpe2Zvcih2YXIg''@;'; + put 'put ''SXI9MCxacj0wLHFpPSIiLHJpPSIiLHIwPSIiLHBpPW9pLnl8fCJ5IixlMD1waS50b1VwcGVyQ2FzZSgpLE9vPW9pLmR8fCJkIixrMD1Pby50b1VwcGVyQ2FzZSgpLHBvPW9pWyIuIl0scDA9b2lbIiwiXSxRbD0iMCM/RSstJSIrb2lbIiwiXStwbztJcjxyci5sZW5ndGg7KXN3aXRjaChxaT1y''@;'; + put 'put ''ci5jaGFyQXQoSXIpKXtjYXNlIkciOklyKysscjArPXFpO2JyZWFrO2Nhc2UnIic6Zm9yKHIwKz1xaTszNCE9PShacj1yci5jaGFyQ29kZUF0KCsrSXIpKSYmSXI8cnIubGVuZ3RoOylyMCs9U3RyaW5nLmZyb21DaGFyQ29kZShacik7cjArPSciJywrK0lyO2JyZWFrO2Nhc2UiXFwiOmNhc2Ui''@;'; + put 'put ''XyI6cjArPXJyLnNsaWNlKElyLElyKzIpLElyKz0yO2JyZWFrO2Nhc2UiQCI6cjArPXFpLCsrSXI7YnJlYWs7Y2FzZSJCIjpjYXNlImIiOisrSXIscjArPXFpO2JyZWFrO2Nhc2UgcGk6Y2FzZSBlMDpjYXNlIE9vOmNhc2UgazA6cjArPWNyW3FpLnRvTG93ZXJDYXNlKCldLCsrSXI7YnJlYWs7''@;'; + put 'put ''Y2FzZSJNIjpjYXNlIkgiOmNhc2UiUyI6Y2FzZSJFIjpjYXNlIm0iOmNhc2UiaCI6Y2FzZSJzIjpjYXNlImUiOmNhc2UiZyI6Y2FzZSJBIjpjYXNlImEiOnIwKz1xaSwrK0lyO2JyZWFrO2Nhc2UiWyI6Zm9yKHJpPXFpOyJdIiE9PXJyLmNoYXJBdChJcisrKSYmSXI8cnIubGVuZ3RoOylyaSs9''@;'; + put 'put ''cnIuY2hhckF0KElyKTtyMCs9cmk7YnJlYWs7Y2FzZSBwMDpyMCs9JyInK3FpKyciJywrK0lyO2JyZWFrO2Nhc2UgcG86aWYoIShJcjxyci5sZW5ndGgmJihRbC5pbmRleE9mKHFpPXJyLmNoYXJBdCgrK0lyKSk+LTF8fCJcXCI9PXFpJiYiLSI9PXJyLmNoYXJBdChJcisxKSYmIjAjIi5pbmRl''@;'; + put 'put ''eE9mKHJyLmNoYXJBdChJcisyKSk+LTEpKSl7cjArPSciJytwbysnIic7YnJlYWt9cWk9cG8sLS1JcjtjYXNlIjAiOmNhc2UiIyI6Zm9yKHIwKz1jcltxaS50b0xvd2VyQ2FzZSgpXXx8cWk7SXI8cnIubGVuZ3RoJiYoUWwuaW5kZXhPZihxaT1yci5jaGFyQXQoKytJcikpPi0xfHwiXFwiPT1x''@;'; + put 'put ''aSYmIi0iPT1yci5jaGFyQXQoSXIrMSkmJiIwIyIuaW5kZXhPZihyci5jaGFyQXQoSXIrMikpPi0xKTspcjArPWNyW3FpLnRvTG93ZXJDYXNlKCldfHxxaTticmVhaztjYXNlIj8iOmZvcihyMCs9cWk7cnIuY2hhckF0KCsrSXIpPT09cWk7KXIwKz1xaTticmVhaztjYXNlIioiOnIwKz1xaSwr''@;'; + put 'put ''K0lyLCgiICI9PXJyLmNoYXJBdChJcil8fCIqIj09cnIuY2hhckF0KElyKSkmJihyMCs9cnIuY2hhckF0KElyKSwrK0lyKTticmVhaztjYXNlIigiOmNhc2UiKSI6cjArPXFpLCsrSXI7YnJlYWs7Y2FzZSIxIjpjYXNlIjIiOmNhc2UiMyI6Y2FzZSI0IjpjYXNlIjUiOmNhc2UiNiI6Y2FzZSI3''@;'; + put 'put ''IjpjYXNlIjgiOmNhc2UiOSI6Zm9yKHIwKz1xaTtJcjxyci5sZW5ndGgmJiIwMTIzNDU2Nzg5Ii5pbmRleE9mKHJyLmNoYXJBdCgrK0lyKSk+LTE7KXIwKz1yci5jaGFyQXQoSXIpO2JyZWFrO2RlZmF1bHQ6cjArPXFpLCsrSXJ9cmV0dXJuIHIwfSxyZS5nZXRjdXJyZW5jeT1mdW5jdGlvbiBV''@;'; + put 'put ''aSgpe3JldHVybiB2MHx8IlVTRCJ9LHJlLnNldGN1cnJlbmN5PWZ1bmN0aW9uIHRvKHJyKXt2MD1ycixkaT0idW5kZWZpbmVkIiE9dHlwZW9mIEludGw/SW50bC5OdW1iZXJGb3JtYXQoenIse3N0eWxlOiJjdXJyZW5jeSIsY3VycmVuY3lEaXNwbGF5OiJzeW1ib2wiLGN1cnJlbmN5OnJyfSku''@;'; + put 'put ''Zm9ybWF0KDApLnJlcGxhY2UoL1swXC5cLFxzXS9nLCIiKToiJCJ9fTt5ZShGKTt2YXIgd3QsQ2U9eyJHZW5lcmFsIE51bWJlciI6IkdlbmVyYWwiLCJHZW5lcmFsIERhdGUiOkYuX3RhYmxlWzIyXSwiTG9uZyBEYXRlIjoiZGRkZCwgbW1tbSBkZCwgeXl5eSIsIk1lZGl1bSBEYXRlIjpGLl90''@;'; + put 'put ''YWJsZVsxNV0sIlNob3J0IERhdGUiOkYuX3RhYmxlWzE0XSwiTG9uZyBUaW1lIjpGLl90YWJsZVsxOV0sIk1lZGl1bSBUaW1lIjpGLl90YWJsZVsxOF0sIlNob3J0IFRpbWUiOkYuX3RhYmxlWzIwXSxDdXJyZW5jeTonIiQiIywjIzAuMDBfKTtbUmVkXVxcKCIkIiMsIyMwLjAwXFwpJyxGaXhl''@;'; + put 'put ''ZDpGLl90YWJsZVsyXSxTdGFuZGFyZDpGLl90YWJsZVs0XSxQZXJjZW50OkYuX3RhYmxlWzEwXSxTY2llbnRpZmljOkYuX3RhYmxlWzExXSwiWWVzL05vIjonIlllcyI7IlllcyI7Ik5vIjtAJywiVHJ1ZS9GYWxzZSI6JyJUcnVlIjsiVHJ1ZSI7IkZhbHNlIjtAJywiT24vT2ZmIjonIlllcyI7''@;'; + put 'put ''IlllcyI7Ik5vIjtAJ30sRGU9ezU6JyIkIiMsIyMwXyk7XFwoIiQiIywjIzBcXCknLDY6JyIkIiMsIyMwXyk7W1JlZF1cXCgiJCIjLCMjMFxcKScsNzonIiQiIywjIzAuMDBfKTtcXCgiJCIjLCMjMC4wMFxcKScsODonIiQiIywjIzAuMDBfKTtbUmVkXVxcKCIkIiMsIyMwLjAwXFwpJywyMzoi''@;'; + put 'put ''R2VuZXJhbCIsMjQ6IkdlbmVyYWwiLDI1OiJHZW5lcmFsIiwyNjoiR2VuZXJhbCIsMjc6Im0vZC95eSIsMjg6Im0vZC95eSIsMjk6Im0vZC95eSIsMzA6Im0vZC95eSIsMzE6Im0vZC95eSIsMzI6Img6bW06c3MiLDMzOiJoOm1tOnNzIiwzNDoiaDptbTpzcyIsMzU6Img6bW06c3MiLDM2OiJt''@;'; + put 'put ''L2QveXkiLDQxOidfKCogIywjIzBfKTtfKCogKCMsIyMwKTtfKCogIi0iXyk7XyhAXyknLDQyOidfKCIkIiogIywjIzBfKTtfKCIkIiogKCMsIyMwKTtfKCIkIiogIi0iXyk7XyhAXyknLDQzOidfKCogIywjIzAuMDBfKTtfKCogKCMsIyMwLjAwKTtfKCogIi0iPz9fKTtfKEBfKScsNDQ6J18o''@;'; + put 'put ''IiQiKiAjLCMjMC4wMF8pO18oIiQiKiAoIywjIzAuMDApO18oIiQiKiAiLSI/P18pO18oQF8pJyw1MDoibS9kL3l5Iiw1MToibS9kL3l5Iiw1MjoibS9kL3l5Iiw1MzoibS9kL3l5Iiw1NDoibS9kL3l5Iiw1NToibS9kL3l5Iiw1NjoibS9kL3l5Iiw1NzoibS9kL3l5Iiw1ODoibS9kL3l5Iiw1''@;'; + put 'put ''OToiMCIsNjA6IjAuMDAiLDYxOiIjLCMjMCIsNjI6IiMsIyMwLjAwIiw2MzonIiQiIywjIzBfKTtcXCgiJCIjLCMjMFxcKScsNjQ6JyIkIiMsIyMwXyk7W1JlZF1cXCgiJCIjLCMjMFxcKScsNjU6JyIkIiMsIyMwLjAwXyk7XFwoIiQiIywjIzAuMDBcXCknLDY2OiciJCIjLCMjMC4wMF8pO1tS''@;'; + put 'put ''ZWRdXFwoIiQiIywjIzAuMDBcXCknLDY3OiIwJSIsNjg6IjAuMDAlIiw2OToiIyA/Lz8iLDcwOiIjID8/Lz8/Iiw3MToibS9kL3l5Iiw3MjoibS9kL3l5Iiw3MzoiZC1tbW0teXkiLDc0OiJkLW1tbSIsNzU6Im1tbS15eSIsNzY6Img6bW0iLDc3OiJoOm1tOnNzIiw3ODoibS9kL3l5IGg6bW0i''@;'; + put 'put ''LDc5OiJtbTpzcyIsODA6IltoXTptbTpzcyIsODE6Im1tc3MuMCJ9LFBlPS9bZERdK3xbbU1dK3xbeVllRV0rfFtIaF0rfFtTc10rL2c7IWZ1bmN0aW9uKEgpe0gudmVyc2lvbj0iMS4yLjAiO3ZhciBYPWZ1bmN0aW9uIHJlKCl7Zm9yKHZhciBqZT0wLFllPW5ldyBBcnJheSgyNTYpLE10PTA7''@;'; + put 'put ''MjU2IT1NdDsrK010KVllW010XT1qZT0xJihqZT0xJihqZT0xJihqZT0xJihqZT0xJihqZT0xJihqZT0xJihqZT0xJihqZT1NdCk/LTMwNjY3NDkxMl5qZT4+PjE6amU+Pj4xKT8tMzA2Njc0OTEyXmplPj4+MTpqZT4+PjEpPy0zMDY2NzQ5MTJeamU+Pj4xOmplPj4+MSk/LTMwNjY3NDkxMl5q''@;'; + put 'put ''ZT4+PjE6amU+Pj4xKT8tMzA2Njc0OTEyXmplPj4+MTpqZT4+PjEpPy0zMDY2NzQ5MTJeamU+Pj4xOmplPj4+MSk/LTMwNjY3NDkxMl5qZT4+PjE6amU+Pj4xKT8tMzA2Njc0OTEyXmplPj4+MTpqZT4+PjE7cmV0dXJuInVuZGVmaW5lZCIhPXR5cGVvZiBJbnQzMkFycmF5P25ldyBJbnQzMkFy''@;'; + put 'put ''cmF5KFllKTpZZX0oKTtILnRhYmxlPVgsSC5ic3RyPWZ1bmN0aW9uIHdlKGplLFllKXtmb3IodmFyIE10PS0xXlllLHh0PWplLmxlbmd0aC0xLFJ0PTA7UnQ8eHQ7KU10PShNdD1NdD4+PjheWFsyNTUmKE10XmplLmNoYXJDb2RlQXQoUnQrKykpXSk+Pj44XlhbMjU1JihNdF5qZS5jaGFyQ29k''@;'; + put 'put ''ZUF0KFJ0KyspKV07cmV0dXJuIFJ0PT09eHQmJihNdD1NdD4+PjheWFsyNTUmKE10XmplLmNoYXJDb2RlQXQoUnQpKV0pLC0xXk10fSxILmJ1Zj1mdW5jdGlvbiB4ZShqZSxZZSl7aWYoamUubGVuZ3RoPjFlNClyZXR1cm4gZnVuY3Rpb24gRmUoamUsWWUpe2Zvcih2YXIgTXQ9LTFeWWUseHQ9''@;'; + put 'put ''amUubGVuZ3RoLTcsUnQ9MDtSdDx4dDspTXQ9KE10PShNdD0oTXQ9KE10PShNdD0oTXQ9KE10PU10Pj4+OF5YWzI1NSYoTXReamVbUnQrK10pXSk+Pj44XlhbMjU1JihNdF5qZVtSdCsrXSldKT4+PjheWFsyNTUmKE10XmplW1J0KytdKV0pPj4+OF5YWzI1NSYoTXReamVbUnQrK10pXSk+Pj44''@;'; + put 'put ''XlhbMjU1JihNdF5qZVtSdCsrXSldKT4+PjheWFsyNTUmKE10XmplW1J0KytdKV0pPj4+OF5YWzI1NSYoTXReamVbUnQrK10pXSk+Pj44XlhbMjU1JihNdF5qZVtSdCsrXSldO2Zvcig7UnQ8eHQrNzspTXQ9TXQ+Pj44XlhbMjU1JihNdF5qZVtSdCsrXSldO3JldHVybi0xXk10fShqZSxZZSk7''@;'; + put 'put ''Zm9yKHZhciBNdD0tMV5ZZSx4dD1qZS5sZW5ndGgtMyxSdD0wO1J0PHh0OylNdD0oTXQ9KE10PShNdD1NdD4+PjheWFsyNTUmKE10XmplW1J0KytdKV0pPj4+OF5YWzI1NSYoTXReamVbUnQrK10pXSk+Pj44XlhbMjU1JihNdF5qZVtSdCsrXSldKT4+PjheWFsyNTUmKE10XmplW1J0KytdKV07''@;'; + put 'put ''Zm9yKDtSdDx4dCszOylNdD1NdD4+PjheWFsyNTUmKE10XmplW1J0KytdKV07cmV0dXJuLTFeTXR9LEguc3RyPWZ1bmN0aW9uIFplKGplLFllKXtmb3IodmFyIFV0LG5uLE10PS0xXlllLHh0PTAsUnQ9amUubGVuZ3RoO3h0PFJ0OykoVXQ9amUuY2hhckNvZGVBdCh4dCsrKSk8MTI4P010PU10''@;'; + put 'put ''Pj4+OF5YWzI1NSYoTXReVXQpXTpVdDwyMDQ4P010PShNdD1NdD4+PjheWFsyNTUmKE10XigxOTJ8VXQ+PjYmMzEpKV0pPj4+OF5YWzI1NSYoTXReKDEyOHw2MyZVdCkpXTpVdD49NTUyOTYmJlV0PDU3MzQ0PyhVdD02NCsoMTAyMyZVdCksbm49MTAyMyZqZS5jaGFyQ29kZUF0KHh0KyspLE10''@;'; + put 'put ''PShNdD0oTXQ9KE10PU10Pj4+OF5YWzI1NSYoTXReKDI0MHxVdD4+OCY3KSldKT4+PjheWFsyNTUmKE10XigxMjh8VXQ+PjImNjMpKV0pPj4+OF5YWzI1NSYoTXReKDEyOHxubj4+NiYxNXwoMyZVdCk8PDQpKV0pPj4+OF5YWzI1NSYoTXReKDEyOHw2MyZubikpXSk6TXQ9KE10PShNdD1NdD4+''@;'; + put 'put ''PjheWFsyNTUmKE10XigyMjR8VXQ+PjEyJjE1KSldKT4+PjheWFsyNTUmKE10XigxMjh8VXQ+PjYmNjMpKV0pPj4+OF5YWzI1NSYoTXReKDEyOHw2MyZVdCkpXTtyZXR1cm4tMV5NdH19KHd0PXt9KTt2YXIgdnQsbXQ9ZnVuY3Rpb24oKXt2YXIgWWUscmU9e307ZnVuY3Rpb24gd2UobHIpe2lm''@;'; + put 'put ''KCIvIj09bHIuY2hhckF0KGxyLmxlbmd0aC0xKSlyZXR1cm4tMT09PWxyLnNsaWNlKDAsLTEpLmluZGV4T2YoIi8iKT9scjp3ZShsci5zbGljZSgwLC0xKSk7dmFyIEJyPWxyLmxhc3RJbmRleE9mKCIvIik7cmV0dXJuLTE9PT1Ccj9scjpsci5zbGljZSgwLEJyKzEpfWZ1bmN0aW9uIHhlKGxy''@;'; + put 'put ''KXtpZigiLyI9PWxyLmNoYXJBdChsci5sZW5ndGgtMSkpcmV0dXJuIHhlKGxyLnNsaWNlKDAsLTEpKTt2YXIgQnI9bHIubGFzdEluZGV4T2YoIi8iKTtyZXR1cm4tMT09PUJyP2xyOmxyLnNsaWNlKEJyKzEpfWZ1bmN0aW9uIEZlKGxyLEJyKXsic3RyaW5nIj09dHlwZW9mIEJyJiYoQnI9bmV3''@;'; + put 'put ''IERhdGUoQnIpKTt2YXIgZHI9QnIuZ2V0SG91cnMoKTtkcj0oZHI9ZHI8PDZ8QnIuZ2V0TWludXRlcygpKTw8NXxCci5nZXRTZWNvbmRzKCk+Pj4xLGxyLndyaXRlX3NoaWZ0KDIsZHIpO3ZhciBXbj1Cci5nZXRGdWxsWWVhcigpLTE5ODA7V249KFduPVduPDw0fEJyLmdldE1vbnRoKCkrMSk8''@;'; + put 'put ''PDV8QnIuZ2V0RGF0ZSgpLGxyLndyaXRlX3NoaWZ0KDIsV24pfWZ1bmN0aW9uIGplKGxyKXtLbChsciwwKTtmb3IodmFyIEJyPXt9LGRyPTA7bHIubDw9bHIubGVuZ3RoLTQ7KXt2YXIgV249bHIucmVhZF9zaGlmdCgyKSwkbj1sci5yZWFkX3NoaWZ0KDIpLGJyPWxyLmwrJG4sV3I9e307MjE1''@;'; + put 'put ''ODk9PT1XbiYmKDEmKGRyPWxyLnJlYWRfc2hpZnQoMSkpJiYoV3IubXRpbWU9bHIucmVhZF9zaGlmdCg0KSksJG4+NSYmKDImZHImJihXci5hdGltZT1sci5yZWFkX3NoaWZ0KDQpKSw0JmRyJiYoV3IuY3RpbWU9bHIucmVhZF9zaGlmdCg0KSkpLFdyLm10aW1lJiYoV3IubXQ9bmV3IERhdGUo''@;'; + put 'put ''MWUzKldyLm10aW1lKSkpLGxyLmw9YnIsQnJbV25dPVdyfXJldHVybiBCcn1mdW5jdGlvbiBNdCgpe3JldHVybiBZZXx8KFllPUwoNzg3NzMpKX1mdW5jdGlvbiB4dChscixCcil7aWYoODA9PWxyWzBdJiY3NT09bHJbMV0pcmV0dXJuIHAwKGxyLEJyKTtpZihsci5sZW5ndGg8NTEyKXRocm93''@;'; + put 'put ''IG5ldyBFcnJvcigiQ0ZCIGZpbGUgc2l6ZSAiK2xyLmxlbmd0aCsiIDwgNTEyIik7dmFyIGRyLCRuLGJyLFdyLHVpLElpLFduPTUxMix1MD1bXSx6aT1sci5zbGljZSgwLDUxMik7S2woemksMCk7dmFyIEowPWZ1bmN0aW9uIFJ0KGxyKXtpZig4MD09bHJbbHIubF0mJjc1PT1scltsci5sKzFd''@;'; + put 'put ''KXJldHVyblswLDBdO2xyLmNoayhkaSwiSGVhZGVyIFNpZ25hdHVyZTogIiksbHIubCs9MTY7dmFyIEJyPWxyLnJlYWRfc2hpZnQoMiwidSIpO3JldHVybltsci5yZWFkX3NoaWZ0KDIsInUiKSxCcl19KHppKTtzd2l0Y2goZHI9SjBbMF0pe2Nhc2UgMzpXbj01MTI7YnJlYWs7Y2FzZSA0Oldu''@;'; + put 'put ''PTQwOTY7YnJlYWs7Y2FzZSAwOmlmKDA9PUowWzFdKXJldHVybiBwMChscixCcik7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIk1ham9yIFZlcnNpb246IEV4cGVjdGVkIDMgb3IgNCBzYXcgIitkcil9NTEyIT09V24mJktsKHppPWxyLnNsaWNlKDAsV24pLDI4KTt2YXIgSTA9bHIuc2xpY2Uo''@;'; + put 'put ''MCxXbik7IWZ1bmN0aW9uIFV0KGxyLEJyKXt2YXIgZHI7c3dpdGNoKGxyLmwrPTIsZHI9bHIucmVhZF9zaGlmdCgyKSl7Y2FzZSA5OmlmKDMhPUJyKXRocm93IG5ldyBFcnJvcigiU2VjdG9yIFNoaWZ0OiBFeHBlY3RlZCA5IHNhdyAiK2RyKTticmVhaztjYXNlIDEyOmlmKDQhPUJyKXRocm93''@;'; + put 'put ''IG5ldyBFcnJvcigiU2VjdG9yIFNoaWZ0OiBFeHBlY3RlZCAxMiBzYXcgIitkcik7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIlNlY3RvciBTaGlmdDogRXhwZWN0ZWQgOSBvciAxMiBzYXcgIitkcil9bHIuY2hrKCIwNjAwIiwiTWluaSBTZWN0b3IgU2hpZnQ6ICIpLGxyLmNoaygi''@;'; + put 'put ''MDAwMDAwMDAwMDAwIiwiUmVzZXJ2ZWQ6ICIpfSh6aSxkcik7dmFyIGVhPXppLnJlYWRfc2hpZnQoNCwiaSIpO2lmKDM9PT1kciYmMCE9PWVhKXRocm93IG5ldyBFcnJvcigiIyBEaXJlY3RvcnkgU2VjdG9yczogRXhwZWN0ZWQgMCBzYXcgIitlYSk7emkubCs9NCxXcj16aS5yZWFkX3NoaWZ0''@;'; + put 'put ''KDQsImkiKSx6aS5sKz00LHppLmNoaygiMDAxMDAwMDAiLCJNaW5pIFN0cmVhbSBDdXRvZmYgU2l6ZTogIiksdWk9emkucmVhZF9zaGlmdCg0LCJpIiksJG49emkucmVhZF9zaGlmdCg0LCJpIiksSWk9emkucmVhZF9zaGlmdCg0LCJpIiksYnI9emkucmVhZF9zaGlmdCg0LCJpIik7Zm9yKHZh''@;'; + put 'put ''ciBZbz0tMSx5bz0wO3lvPDEwOSYmISgoWW89emkucmVhZF9zaGlmdCg0LCJpIikpPDApOysreW8pdTBbeW9dPVlvO3ZhciAkYT1mdW5jdGlvbiBubihscixCcil7Zm9yKHZhciBkcj1NYXRoLmNlaWwobHIubGVuZ3RoL0JyKS0xLFduPVtdLCRuPTE7JG48ZHI7KyskbilXblskbi0xXT1sci5z''@;'; + put 'put ''bGljZSgkbipCciwoJG4rMSkqQnIpO3JldHVybiBXbltkci0xXT1sci5zbGljZShkcipCciksV259KGxyLFduKTt6dChJaSxiciwkYSxXbix1MCk7dmFyIGpzPWZ1bmN0aW9uIFRuKGxyLEJyLGRyLFduKXt2YXIgJG49bHIubGVuZ3RoLGJyPVtdLFdyPVtdLHVpPVtdLElpPVtdLHUwPVduLTEs''@;'; + put 'put ''emk9MCxKMD0wLEkwPTAsZWE9MDtmb3Ioemk9MDt6aTwkbjsrK3ppKWlmKHVpPVtdLChJMD16aStCcik+PSRuJiYoSTAtPSRuKSwhV3JbSTBdKXtJaT1bXTt2YXIgWW89W107Zm9yKEowPUkwO0owPj0wOyl7WW9bSjBdPSEwLFdyW0owXT0hMCx1aVt1aS5sZW5ndGhdPUowLElpLnB1c2gobHJb''@;'; + put 'put ''SjBdKTt2YXIgeW89ZHJbTWF0aC5mbG9vcig0KkowL1duKV07aWYoV248NCsoZWE9NCpKMCZ1MCkpdGhyb3cgbmV3IEVycm9yKCJGQVQgYm91bmRhcnkgY3Jvc3NlZDogIitKMCsiIDQgIitXbik7aWYoIWxyW3lvXXx8WW9bSjA9TmMobHJbeW9dLGVhKV0pYnJlYWt9YnJbSTBdPXtub2Rlczp1''@;'; + put 'put ''aSxkYXRhOnZuKFtJaV0pfX1yZXR1cm4gYnJ9KCRhLFdyLHUwLFduKTtqc1tXcl0ubmFtZT0iIURpcmVjdG9yeSIsJG4+MCYmdWkhPT1jciYmKGpzW3VpXS5uYW1lPSIhTWluaUZBVCIpLGpzW3UwWzBdXS5uYW1lPSIhRkFUIixqcy5mYXRfYWRkcnM9dTAsanMuc3N6PVduO3ZhciBPdT1bXSxk''@;'; + put 'put ''cz1bXSx5cz1bXTsoZnVuY3Rpb24gT24obHIsQnIsZHIsV24sJG4sYnIsV3IsdWkpe2Zvcih2YXIgZWEsSWk9MCx1MD1Xbi5sZW5ndGg/MjowLHppPUJyW2xyXS5kYXRhLEowPTAsSTA9MDtKMDx6aS5sZW5ndGg7SjArPTEyOCl7dmFyIFlvPXppLnNsaWNlKEowLEowKzEyOCk7S2woWW8sNjQp''@;'; + put 'put ''LEkwPVlvLnJlYWRfc2hpZnQoMiksZWE9Z2MoWW8sMCxJMC11MCksV24ucHVzaChlYSk7dmFyIHlvPXtuYW1lOmVhLHR5cGU6WW8ucmVhZF9zaGlmdCgxKSxjb2xvcjpZby5yZWFkX3NoaWZ0KDEpLEw6WW8ucmVhZF9zaGlmdCg0LCJpIiksUjpZby5yZWFkX3NoaWZ0KDQsImkiKSxDOllvLnJl''@;'; + put 'put ''YWRfc2hpZnQoNCwiaSIpLGNsc2lkOllvLnJlYWRfc2hpZnQoMTYpLHN0YXRlOllvLnJlYWRfc2hpZnQoNCwiaSIpLHN0YXJ0OjAsc2l6ZTowfTswIT09WW8ucmVhZF9zaGlmdCgyKStZby5yZWFkX3NoaWZ0KDIpK1lvLnJlYWRfc2hpZnQoMikrWW8ucmVhZF9zaGlmdCgyKSYmKHlvLmN0PVlu''@;'; + put 'put ''KFlvLFlvLmwtOCkpLDAhPT1Zby5yZWFkX3NoaWZ0KDIpK1lvLnJlYWRfc2hpZnQoMikrWW8ucmVhZF9zaGlmdCgyKStZby5yZWFkX3NoaWZ0KDIpJiYoeW8ubXQ9WW4oWW8sWW8ubC04KSkseW8uc3RhcnQ9WW8ucmVhZF9zaGlmdCg0LCJpIikseW8uc2l6ZT1Zby5yZWFkX3NoaWZ0KDQsImki''@;'; + put 'put ''KSx5by5zaXplPDAmJnlvLnN0YXJ0PDAmJih5by5zaXplPXlvLnR5cGU9MCx5by5zdGFydD1jcix5by5uYW1lPSIiKSw1PT09eW8udHlwZT8oSWk9eW8uc3RhcnQsJG4+MCYmSWkhPT1jciYmKEJyW0lpXS5uYW1lPSIhU3RyZWFtRGF0YSIpKTp5by5zaXplPj00MDk2Pyh5by5zdG9yYWdlPSJm''@;'; + put 'put ''YXQiLHZvaWQgMD09PUJyW3lvLnN0YXJ0XSYmKEJyW3lvLnN0YXJ0XT1Qbihkcix5by5zdGFydCxCci5mYXRfYWRkcnMsQnIuc3N6KSksQnJbeW8uc3RhcnRdLm5hbWU9eW8ubmFtZSx5by5jb250ZW50PUJyW3lvLnN0YXJ0XS5kYXRhLnNsaWNlKDAseW8uc2l6ZSkpOih5by5zdG9yYWdlPSJt''@;'; + put 'put ''aW5pZmF0Iix5by5zaXplPDA/eW8uc2l6ZT0wOklpIT09Y3ImJnlvLnN0YXJ0IT09Y3ImJkJyW0lpXSYmKHlvLmNvbnRlbnQ9RHQoeW8sQnJbSWldLmRhdGEsKEJyW3VpXXx8e30pLmRhdGEpKSkseW8uY29udGVudCYmS2woeW8uY29udGVudCwwKSxicltlYV09eW8sV3IucHVzaCh5byl9fSko''@;'; + put 'put ''V3IsanMsJGEsT3UsJG4se30sZHMsdWkpLGZ1bmN0aW9uIENuKGxyLEJyLGRyKXtmb3IodmFyIFduPTAsJG49MCxicj0wLFdyPTAsdWk9MCxJaT1kci5sZW5ndGgsdTA9W10semk9W107V248SWk7KytXbil1MFtXbl09emlbV25dPVduLEJyW1duXT1kcltXbl07Zm9yKDt1aTx6aS5sZW5ndGg7''@;'; + put 'put ''Kyt1aSkkbj1scltXbj16aVt1aV1dLkwsYnI9bHJbV25dLlIsV3I9bHJbV25dLkMsdTBbV25dPT09V24mJigtMSE9PSRuJiZ1MFskbl0hPT0kbiYmKHUwW1duXT11MFskbl0pLC0xIT09YnImJnUwW2JyXSE9PWJyJiYodTBbV25dPXUwW2JyXSkpLC0xIT09V3ImJih1MFtXcl09V24pLC0xIT09''@;'; + put 'put ''JG4mJlduIT11MFtXbl0mJih1MFskbl09dTBbV25dLHppLmxhc3RJbmRleE9mKCRuKTx1aSYmemkucHVzaCgkbikpLC0xIT09YnImJlduIT11MFtXbl0mJih1MFticl09dTBbV25dLHppLmxhc3RJbmRleE9mKGJyKTx1aSYmemkucHVzaChicikpO2ZvcihXbj0xO1duPElpOysrV24pdTBbV25d''@;'; + put 'put ''PT09V24mJigtMSE9PWJyJiZ1MFticl0hPT1icj91MFtXbl09dTBbYnJdOi0xIT09JG4mJnUwWyRuXSE9PSRuJiYodTBbV25dPXUwWyRuXSkpO2ZvcihXbj0xO1duPElpOysrV24paWYoMCE9PWxyW1duXS50eXBlKXtpZigodWk9V24pIT11MFt1aV0pZG97QnJbV25dPUJyW3VpPXUwW3VpXV0r''@;'; + put 'put ''Ii8iK0JyW1duXX13aGlsZSgwIT09dWkmJi0xIT09dTBbdWldJiZ1aSE9dTBbdWldKTt1MFtXbl09LTF9Zm9yKEJyWzBdKz0iLyIsV249MTtXbjxJaTsrK1duKTIhPT1scltXbl0udHlwZSYmKEJyW1duXSs9Ii8iKX0oZHMseXMsT3UpLE91LnNoaWZ0KCk7dmFyIE1zPXtGaWxlSW5kZXg6ZHMs''@;'; + put 'put ''RnVsbFBhdGhzOnlzfTtyZXR1cm4gQnImJkJyLnJhdyYmKE1zLnJhdz17aGVhZGVyOkkwLHNlY3RvcnM6JGF9KSxNc31mdW5jdGlvbiBEdChscixCcixkcil7Zm9yKHZhciAkbj1sci5zaXplLGJyPVtdLFdyPWxyLnN0YXJ0O2RyJiYkbj4wJiZXcj49MDspYnIucHVzaChCci5zbGljZShXcipv''@;'; + put 'put ''aSxXcipvaStvaSkpLCRuLT1vaSxXcj1OYyhkciw0KldyKTtyZXR1cm4gMD09PWJyLmxlbmd0aD9SaSgwKTpWKGJyKS5zbGljZSgwLGxyLnNpemUpfWZ1bmN0aW9uIHp0KGxyLEJyLGRyLFduLCRuKXt2YXIgYnI9Y3I7aWYobHI9PT1jcil7aWYoMCE9PUJyKXRocm93IG5ldyBFcnJvcigiRElG''@;'; + put 'put ''QVQgY2hhaW4gc2hvcnRlciB0aGFuIGV4cGVjdGVkIil9ZWxzZSBpZigtMSE9PWxyKXt2YXIgV3I9ZHJbbHJdLHVpPShXbj4+PjIpLTE7aWYoIVdyKXJldHVybjtmb3IodmFyIElpPTA7SWk8dWkmJihicj1OYyhXciw0KklpKSkhPT1jcjsrK0lpKSRuLnB1c2goYnIpO3p0KE5jKFdyLFduLTQp''@;'; + put 'put ''LEJyLTEsZHIsV24sJG4pfX1mdW5jdGlvbiBQbihscixCcixkcixXbiwkbil7dmFyIGJyPVtdLFdyPVtdOyRufHwoJG49W10pO3ZhciB1aT1Xbi0xLElpPTAsdTA9MDtmb3IoSWk9QnI7SWk+PTA7KXskbltJaV09ITAsYnJbYnIubGVuZ3RoXT1JaSxXci5wdXNoKGxyW0lpXSk7dmFyIHppPWRy''@;'; + put 'put ''W01hdGguZmxvb3IoNCpJaS9XbildO2lmKFduPDQrKHUwPTQqSWkmdWkpKXRocm93IG5ldyBFcnJvcigiRkFUIGJvdW5kYXJ5IGNyb3NzZWQ6ICIrSWkrIiA0ICIrV24pO2lmKCFsclt6aV0pYnJlYWs7SWk9TmMobHJbemldLHUwKX1yZXR1cm57bm9kZXM6YnIsZGF0YTp2bihbV3JdKX19ZnVu''@;'; + put 'put ''Y3Rpb24gWW4obHIsQnIpe3JldHVybiBuZXcgRGF0ZSgxZTMqKFlsKGxyLEJyKzQpLzFlNypNYXRoLnBvdygyLDMyKStZbChscixCcikvMWU3LTExNjQ0NDczNjAwKSl9ZnVuY3Rpb24geXIobHIsQnIpe3ZhciBkcj1Ccnx8e30sV249ZHIucm9vdHx8IlJvb3QgRW50cnkiO2lmKGxyLkZ1bGxQ''@;'; + put 'put ''YXRoc3x8KGxyLkZ1bGxQYXRocz1bXSksbHIuRmlsZUluZGV4fHwobHIuRmlsZUluZGV4PVtdKSxsci5GdWxsUGF0aHMubGVuZ3RoIT09bHIuRmlsZUluZGV4Lmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoImluY29uc2lzdGVudCBDRkIgc3RydWN0dXJlIik7MD09PWxyLkZ1bGxQYXRocy5sZW5n''@;'; + put 'put ''dGgmJihsci5GdWxsUGF0aHNbMF09V24rIi8iLGxyLkZpbGVJbmRleFswXT17bmFtZTpXbix0eXBlOjV9KSxkci5DTFNJRCYmKGxyLkZpbGVJbmRleFswXS5jbHNpZD1kci5DTFNJRCksZnVuY3Rpb24gYXIobHIpe3ZhciBCcj0iXHgwMVNoMzN0SjUiO2lmKCFtdC5maW5kKGxyLCIvIitCcikp''@;'; + put 'put ''e3ZhciBkcj1SaSg0KTtkclswXT01NSxkclsxXT1kclszXT01MCxkclsyXT01NCxsci5GaWxlSW5kZXgucHVzaCh7bmFtZTpCcix0eXBlOjIsY29udGVudDpkcixzaXplOjQsTDo2OSxSOjY5LEM6Njl9KSxsci5GdWxsUGF0aHMucHVzaChsci5GdWxsUGF0aHNbMF0rQnIpLEdyKGxyKX19KGxy''@;'; + put 'put ''KX1mdW5jdGlvbiBHcihscixCcil7eXIobHIpO2Zvcih2YXIgZHI9ITEsV249ITEsJG49bHIuRnVsbFBhdGhzLmxlbmd0aC0xOyRuPj0wOy0tJG4pe3ZhciBicj1sci5GaWxlSW5kZXhbJG5dO3N3aXRjaChici50eXBlKXtjYXNlIDA6V24/ZHI9ITA6KGxyLkZpbGVJbmRleC5wb3AoKSxsci5G''@;'; + put 'put ''dWxsUGF0aHMucG9wKCkpO2JyZWFrO2Nhc2UgMTpjYXNlIDI6Y2FzZSA1OlduPSEwLGlzTmFOKGJyLlIqYnIuTCpici5DKSYmKGRyPSEwKSxici5SPi0xJiZici5MPi0xJiZici5SPT1ici5MJiYoZHI9ITApO2JyZWFrO2RlZmF1bHQ6ZHI9ITB9fWlmKGRyfHxCcil7dmFyIFdyPW5ldyBEYXRl''@;'; + put 'put ''KDE5ODcsMSwxOSksdWk9MCxJaT1bXTtmb3IoJG49MDskbjxsci5GdWxsUGF0aHMubGVuZ3RoOysrJG4pMCE9PWxyLkZpbGVJbmRleFskbl0udHlwZSYmSWkucHVzaChbbHIuRnVsbFBhdGhzWyRuXSxsci5GaWxlSW5kZXhbJG5dXSk7Zm9yKCRuPTA7JG48SWkubGVuZ3RoOysrJG4pe3ZhciB1''@;'; + put 'put ''MD13ZShJaVskbl1bMF0pO2ZvcihXbj0hMSx1aT0wO3VpPElpLmxlbmd0aDsrK3VpKUlpW3VpXVswXT09PXUwJiYoV249ITApO1dufHxJaS5wdXNoKFt1MCx7bmFtZTp4ZSh1MCkucmVwbGFjZSgiLyIsIiIpLHR5cGU6MSxjbHNpZDpVaSxjdDpXcixtdDpXcixjb250ZW50Om51bGx9XSl9Zm9y''@;'; + put 'put ''KElpLnNvcnQoZnVuY3Rpb24oSTAsZWEpe3JldHVybiBmdW5jdGlvbiBYKGxyLEJyKXtmb3IodmFyIGRyPWxyLnNwbGl0KCIvIiksV249QnIuc3BsaXQoIi8iKSwkbj0wLGJyPTAsV3I9TWF0aC5taW4oZHIubGVuZ3RoLFduLmxlbmd0aCk7JG48V3I7Kyskbil7aWYoYnI9ZHJbJG5dLmxlbmd0''@;'; + put 'put ''aC1Xblskbl0ubGVuZ3RoKXJldHVybiBicjtpZihkclskbl0hPVduWyRuXSlyZXR1cm4gZHJbJG5dPFduWyRuXT8tMToxfXJldHVybiBkci5sZW5ndGgtV24ubGVuZ3RofShJMFswXSxlYVswXSl9KSxsci5GdWxsUGF0aHM9W10sbHIuRmlsZUluZGV4PVtdLCRuPTA7JG48SWkubGVuZ3RoOysr''@;'; + put 'put ''JG4pbHIuRnVsbFBhdGhzWyRuXT1JaVskbl1bMF0sbHIuRmlsZUluZGV4WyRuXT1JaVskbl1bMV07Zm9yKCRuPTA7JG48SWkubGVuZ3RoOysrJG4pe3ZhciB6aT1sci5GaWxlSW5kZXhbJG5dLEowPWxyLkZ1bGxQYXRoc1skbl07aWYoemkubmFtZT14ZShKMCkucmVwbGFjZSgiLyIsIiIpLHpp''@;'; + put 'put ''Lkw9emkuUj16aS5DPS0oemkuY29sb3I9MSksemkuc2l6ZT16aS5jb250ZW50P3ppLmNvbnRlbnQubGVuZ3RoOjAsemkuc3RhcnQ9MCx6aS5jbHNpZD16aS5jbHNpZHx8VWksMD09PSRuKXppLkM9SWkubGVuZ3RoPjE/MTotMSx6aS5zaXplPTAsemkudHlwZT01O2Vsc2UgaWYoIi8iPT1KMC5z''@;'; + put 'put ''bGljZSgtMSkpe2Zvcih1aT0kbisxO3VpPElpLmxlbmd0aCYmd2UobHIuRnVsbFBhdGhzW3VpXSkhPUowOysrdWkpO2Zvcih6aS5DPXVpPj1JaS5sZW5ndGg/LTE6dWksdWk9JG4rMTt1aTxJaS5sZW5ndGgmJndlKGxyLkZ1bGxQYXRoc1t1aV0pIT13ZShKMCk7Kyt1aSk7emkuUj11aT49SWku''@;'; + put 'put ''bGVuZ3RoPy0xOnVpLHppLnR5cGU9MX1lbHNlIHdlKGxyLkZ1bGxQYXRoc1skbisxXXx8IiIpPT13ZShKMCkmJih6aS5SPSRuKzEpLHppLnR5cGU9Mn19fWZ1bmN0aW9uIHpyKGxyLEJyKXt2YXIgZHI9QnJ8fHt9O2lmKEdyKGxyKSwiemlwIj09ZHIuZmlsZVR5cGUpcmV0dXJuIGZ1bmN0aW9u''@;'; + put 'put ''IEFsKGxyLEJyKXt2YXIgZHI9QnJ8fHt9LFduPVtdLCRuPVtdLGJyPVJpKDEpLFdyPWRyLmNvbXByZXNzaW9uPzg6MCx1MD0wLHppPTAsSjA9MCxJMD0wLGVhPWxyLkZ1bGxQYXRoc1swXSxZbz1lYSx5bz1sci5GaWxlSW5kZXhbMF0sJGE9W10sanM9MDtmb3IodTA9MTt1MDxsci5GdWxsUGF0''@;'; + put 'put ''aHMubGVuZ3RoOysrdTApaWYoWW89bHIuRnVsbFBhdGhzW3UwXS5zbGljZShlYS5sZW5ndGgpLCh5bz1sci5GaWxlSW5kZXhbdTBdKS5zaXplJiZ5by5jb250ZW50JiYiXHgwMVNoMzN0SjUiIT1Zbyl7dmFyIEVjPUowLE91PVJpKFlvLmxlbmd0aCk7Zm9yKHppPTA7emk8WW8ubGVuZ3RoOysr''@;'; + put 'put ''emkpT3Uud3JpdGVfc2hpZnQoMSwxMjcmWW8uY2hhckNvZGVBdCh6aSkpO091PU91LnNsaWNlKDAsT3UubCksJGFbSTBdPXd0LmJ1Zih5by5jb250ZW50LDApO3ZhciBkcz15by5jb250ZW50Ozg9PVdyJiYoZHM9a2koZHMpKSwoYnI9UmkoMzApKS53cml0ZV9zaGlmdCg0LDY3MzI0NzUyKSxi''@;'; + put 'put ''ci53cml0ZV9zaGlmdCgyLDIwKSxici53cml0ZV9zaGlmdCgyLDApLGJyLndyaXRlX3NoaWZ0KDIsV3IpLHlvLm10P0ZlKGJyLHlvLm10KTpici53cml0ZV9zaGlmdCg0LDApLGJyLndyaXRlX3NoaWZ0KC00LCRhW0kwXSksYnIud3JpdGVfc2hpZnQoNCxkcy5sZW5ndGgpLGJyLndyaXRlX3No''@;'; + put 'put ''aWZ0KDQseW8uY29udGVudC5sZW5ndGgpLGJyLndyaXRlX3NoaWZ0KDIsT3UubGVuZ3RoKSxici53cml0ZV9zaGlmdCgyLDApLEowKz1ici5sZW5ndGgsV24ucHVzaChiciksSjArPU91Lmxlbmd0aCxXbi5wdXNoKE91KSxKMCs9ZHMubGVuZ3RoLFduLnB1c2goZHMpLChicj1SaSg0NikpLndy''@;'; + put 'put ''aXRlX3NoaWZ0KDQsMzM2MzkyNDgpLGJyLndyaXRlX3NoaWZ0KDIsMCksYnIud3JpdGVfc2hpZnQoMiwyMCksYnIud3JpdGVfc2hpZnQoMiwwKSxici53cml0ZV9zaGlmdCgyLFdyKSxici53cml0ZV9zaGlmdCg0LDApLGJyLndyaXRlX3NoaWZ0KC00LCRhW0kwXSksYnIud3JpdGVfc2hpZnQo''@;'; + put 'put ''NCxkcy5sZW5ndGgpLGJyLndyaXRlX3NoaWZ0KDQseW8uY29udGVudC5sZW5ndGgpLGJyLndyaXRlX3NoaWZ0KDIsT3UubGVuZ3RoKSxici53cml0ZV9zaGlmdCgyLDApLGJyLndyaXRlX3NoaWZ0KDIsMCksYnIud3JpdGVfc2hpZnQoMiwwKSxici53cml0ZV9zaGlmdCgyLDApLGJyLndyaXRl''@;'; + put 'put ''X3NoaWZ0KDQsMCksYnIud3JpdGVfc2hpZnQoNCxFYyksanMrPWJyLmwsJG4ucHVzaChiciksanMrPU91Lmxlbmd0aCwkbi5wdXNoKE91KSwrK0kwfXJldHVybihicj1SaSgyMikpLndyaXRlX3NoaWZ0KDQsMTAxMDEwMjU2KSxici53cml0ZV9zaGlmdCgyLDApLGJyLndyaXRlX3NoaWZ0KDIs''@;'; + put 'put ''MCksYnIud3JpdGVfc2hpZnQoMixJMCksYnIud3JpdGVfc2hpZnQoMixJMCksYnIud3JpdGVfc2hpZnQoNCxqcyksYnIud3JpdGVfc2hpZnQoNCxKMCksYnIud3JpdGVfc2hpZnQoMiwwKSxWKFtWKFduKSxWKCRuKSxicl0pfShscixkcik7dmFyIFduPWZ1bmN0aW9uKGVhKXtmb3IodmFyIFlv''@;'; + put 'put ''PTAseW89MCwkYT0wOyRhPGVhLkZpbGVJbmRleC5sZW5ndGg7KyskYSl7dmFyIGpzPWVhLkZpbGVJbmRleFskYV07aWYoanMuY29udGVudCl7dmFyIEVjPWpzLmNvbnRlbnQubGVuZ3RoO0VjPjAmJihFYzw0MDk2P1lvKz1FYys2Mz4+Njp5bys9RWMrNTExPj45KX19Zm9yKHZhciBPdT1lYS5G''@;'; + put 'put ''dWxsUGF0aHMubGVuZ3RoKzM+PjIseXM9WW8rMTI3Pj43LE1zPShZbys3Pj4zKSt5bytPdSt5cyxrMT1NcysxMjc+Pjcscjc9azE8PTEwOT8wOk1hdGguY2VpbCgoazEtMTA5KS8xMjcpO01zK2sxK3I3KzEyNz4+Nz5rMTspcjc9KytrMTw9MTA5PzA6TWF0aC5jZWlsKChrMS0xMDkpLzEyNyk7''@;'; + put 'put ''dmFyIFdkPVsxLHI3LGsxLHlzLE91LHlvLFlvLDBdO3JldHVybiBlYS5GaWxlSW5kZXhbMF0uc2l6ZT1Zbzw8NixXZFs3XT0oZWEuRmlsZUluZGV4WzBdLnN0YXJ0PVdkWzBdK1dkWzFdK1dkWzJdK1dkWzNdK1dkWzRdK1dkWzVdKSsoV2RbNl0rNz4+MyksV2R9KGxyKSwkbj1SaShXbls3XTw8''@;'; + put 'put ''OSksYnI9MCxXcj0wO2Zvcihicj0wO2JyPDg7Kyticikkbi53cml0ZV9zaGlmdCgxLHYwW2JyXSk7Zm9yKGJyPTA7YnI8ODsrK2JyKSRuLndyaXRlX3NoaWZ0KDIsMCk7Zm9yKCRuLndyaXRlX3NoaWZ0KDIsNjIpLCRuLndyaXRlX3NoaWZ0KDIsMyksJG4ud3JpdGVfc2hpZnQoMiw2NTUzNCks''@;'; + put 'put ''JG4ud3JpdGVfc2hpZnQoMiw5KSwkbi53cml0ZV9zaGlmdCgyLDYpLGJyPTA7YnI8MzsrK2JyKSRuLndyaXRlX3NoaWZ0KDIsMCk7Zm9yKCRuLndyaXRlX3NoaWZ0KDQsMCksJG4ud3JpdGVfc2hpZnQoNCxXblsyXSksJG4ud3JpdGVfc2hpZnQoNCxXblswXStXblsxXStXblsyXStXblszXS0x''@;'; + put 'put ''KSwkbi53cml0ZV9zaGlmdCg0LDApLCRuLndyaXRlX3NoaWZ0KDQsNDA5NiksJG4ud3JpdGVfc2hpZnQoNCxXblszXT9XblswXStXblsxXStXblsyXS0xOmNyKSwkbi53cml0ZV9zaGlmdCg0LFduWzNdKSwkbi53cml0ZV9zaGlmdCgtNCxXblsxXT9XblswXS0xOmNyKSwkbi53cml0ZV9zaGlm''@;'; + put 'put ''dCg0LFduWzFdKSxicj0wO2JyPDEwOTsrK2JyKSRuLndyaXRlX3NoaWZ0KC00LGJyPFduWzJdP1duWzFdK2JyOi0xKTtpZihXblsxXSlmb3IoV3I9MDtXcjxXblsxXTsrK1dyKXtmb3IoO2JyPDIzNisxMjcqV3I7Kyticikkbi53cml0ZV9zaGlmdCgtNCxicjxXblsyXT9XblsxXSticjotMSk7''@;'; + put 'put ''JG4ud3JpdGVfc2hpZnQoLTQsV3I9PT1XblsxXS0xP2NyOldyKzEpfXZhciB1aT1mdW5jdGlvbihlYSl7Zm9yKFdyKz1lYTticjxXci0xOysrYnIpJG4ud3JpdGVfc2hpZnQoLTQsYnIrMSk7ZWEmJigrK2JyLCRuLndyaXRlX3NoaWZ0KC00LGNyKSl9O2ZvcihXcj1icj0wLFdyKz1XblsxXTti''@;'; + put 'put ''cjxXcjsrK2JyKSRuLndyaXRlX3NoaWZ0KC00LHRvLkRJRlNFQ1QpO2ZvcihXcis9V25bMl07YnI8V3I7Kyticikkbi53cml0ZV9zaGlmdCgtNCx0by5GQVRTRUNUKTt1aShXblszXSksdWkoV25bNF0pO2Zvcih2YXIgSWk9MCx1MD0wLHppPWxyLkZpbGVJbmRleFswXTtJaTxsci5GaWxlSW5k''@;'; + put 'put ''ZXgubGVuZ3RoOysrSWkpKHppPWxyLkZpbGVJbmRleFtJaV0pLmNvbnRlbnQmJiEoKHUwPXppLmNvbnRlbnQubGVuZ3RoKTw0MDk2KSYmKHppLnN0YXJ0PVdyLHVpKHUwKzUxMT4+OSkpO2Zvcih1aShXbls2XSs3Pj4zKTs1MTEmJG4ubDspJG4ud3JpdGVfc2hpZnQoLTQsdG8uRU5ET0ZDSEFJ''@;'; + put 'put ''Tik7Zm9yKFdyPWJyPTAsSWk9MDtJaTxsci5GaWxlSW5kZXgubGVuZ3RoOysrSWkpKHppPWxyLkZpbGVJbmRleFtJaV0pLmNvbnRlbnQmJih1MD16aS5jb250ZW50Lmxlbmd0aCkmJiEodTA+PTQwOTYpJiYoemkuc3RhcnQ9V3IsdWkodTArNjM+PjYpKTtmb3IoOzUxMSYkbi5sOykkbi53cml0''@;'; + put 'put ''ZV9zaGlmdCgtNCx0by5FTkRPRkNIQUlOKTtmb3IoYnI9MDticjxXbls0XTw8MjsrK2JyKXt2YXIgSjA9bHIuRnVsbFBhdGhzW2JyXTtpZihKMCYmMCE9PUowLmxlbmd0aCl7emk9bHIuRmlsZUluZGV4W2JyXSwwPT09YnImJih6aS5zdGFydD16aS5zaXplP3ppLnN0YXJ0LTE6Y3IpO3ZhciBJ''@;'; + put 'put ''MD0wPT09YnImJmRyLnJvb3R8fHppLm5hbWU7aWYodTA9MiooSTAubGVuZ3RoKzEpLCRuLndyaXRlX3NoaWZ0KDY0LEkwLCJ1dGYxNmxlIiksJG4ud3JpdGVfc2hpZnQoMix1MCksJG4ud3JpdGVfc2hpZnQoMSx6aS50eXBlKSwkbi53cml0ZV9zaGlmdCgxLHppLmNvbG9yKSwkbi53cml0ZV9z''@;'; + put 'put ''aGlmdCgtNCx6aS5MKSwkbi53cml0ZV9zaGlmdCgtNCx6aS5SKSwkbi53cml0ZV9zaGlmdCgtNCx6aS5DKSx6aS5jbHNpZCkkbi53cml0ZV9zaGlmdCgxNix6aS5jbHNpZCwiaGV4Iik7ZWxzZSBmb3IoSWk9MDtJaTw0OysrSWkpJG4ud3JpdGVfc2hpZnQoNCwwKTskbi53cml0ZV9zaGlmdCg0''@;'; + put 'put ''LHppLnN0YXRlfHwwKSwkbi53cml0ZV9zaGlmdCg0LDApLCRuLndyaXRlX3NoaWZ0KDQsMCksJG4ud3JpdGVfc2hpZnQoNCwwKSwkbi53cml0ZV9zaGlmdCg0LDApLCRuLndyaXRlX3NoaWZ0KDQsemkuc3RhcnQpLCRuLndyaXRlX3NoaWZ0KDQsemkuc2l6ZSksJG4ud3JpdGVfc2hpZnQoNCww''@;'; + put 'put ''KX1lbHNle2ZvcihJaT0wO0lpPDE3OysrSWkpJG4ud3JpdGVfc2hpZnQoNCwwKTtmb3IoSWk9MDtJaTwzOysrSWkpJG4ud3JpdGVfc2hpZnQoNCwtMSk7Zm9yKElpPTA7SWk8MTI7KytJaSkkbi53cml0ZV9zaGlmdCg0LDApfX1mb3IoYnI9MTticjxsci5GaWxlSW5kZXgubGVuZ3RoOysrYnIp''@;'; + put 'put ''aWYoKHppPWxyLkZpbGVJbmRleFticl0pLnNpemU+PTQwOTYpe2Zvcigkbi5sPXppLnN0YXJ0KzE8PDksSWk9MDtJaTx6aS5zaXplOysrSWkpJG4ud3JpdGVfc2hpZnQoMSx6aS5jb250ZW50W0lpXSk7Zm9yKDs1MTEmSWk7KytJaSkkbi53cml0ZV9zaGlmdCgxLDApfWZvcihicj0xO2JyPGxy''@;'; + put 'put ''LkZpbGVJbmRleC5sZW5ndGg7KyticilpZigoemk9bHIuRmlsZUluZGV4W2JyXSkuc2l6ZT4wJiZ6aS5zaXplPDQwOTYpe2ZvcihJaT0wO0lpPHppLnNpemU7KytJaSkkbi53cml0ZV9zaGlmdCgxLHppLmNvbnRlbnRbSWldKTtmb3IoOzYzJklpOysrSWkpJG4ud3JpdGVfc2hpZnQoMSwwKX1m''@;'; + put 'put ''b3IoOyRuLmw8JG4ubGVuZ3RoOykkbi53cml0ZV9zaGlmdCgxLDApO3JldHVybiAkbn1yZS52ZXJzaW9uPSIxLjEuNCI7dmFyIEVpLG9pPTY0LGNyPS0yLGRpPSJkMGNmMTFlMGExYjExYWUxIix2MD1bMjA4LDIwNywxNywyMjQsMTYxLDE3NywyNiwyMjVdLFVpPSIwMDAwMDAwMDAwMDAwMDAw''@;'; + put 'put ''MDAwMDAwMDAwMDAwMDAwMCIsdG89e01BWFJFR1NFQ1Q6LTYsRElGU0VDVDotNCxGQVRTRUNUOi0zLEVORE9GQ0hBSU46Y3IsRlJFRVNFQ1Q6LTEsSEVBREVSX1NJR05BVFVSRTpkaSxIRUFERVJfTUlOT1JfVkVSU0lPTjoiM2UwMCIsTUFYUkVHU0lEOi02LE5PU1RSRUFNOi0xLEhFQURFUl9D''@;'; + put 'put ''TFNJRDpVaSxFbnRyeVR5cGVzOlsidW5rbm93biIsInN0b3JhZ2UiLCJzdHJlYW0iLCJsb2NrYnl0ZXMiLCJwcm9wZXJ0eSIsInJvb3QiXX07ZnVuY3Rpb24gd2kobHIpe2Zvcih2YXIgQnI9bmV3IEFycmF5KGxyLmxlbmd0aCksZHI9MDtkcjxsci5sZW5ndGg7KytkcilCcltkcl09U3RyaW5n''@;'; + put 'put ''LmZyb21DaGFyQ29kZShscltkcl0pO3JldHVybiBCci5qb2luKCIiKX1mdW5jdGlvbiBraShscil7cmV0dXJuIEVpP0VpLmRlZmxhdGVSYXdTeW5jKGxyKTpsMihscil9Zm9yKHZhciBscixCcixOMD1bMTYsMTcsMTgsMCw4LDcsOSw2LDEwLDUsMTEsNCwxMiwzLDEzLDIsMTQsMSwxNV0sdDA9''@;'; + put 'put ''WzMsNCw1LDYsNyw4LDksMTAsMTEsMTMsMTUsMTcsMTksMjMsMjcsMzEsMzUsNDMsNTEsNTksNjcsODMsOTksMTE1LDEzMSwxNjMsMTk1LDIyNywyNThdLGlvPVsxLDIsMyw0LDUsNyw5LDEzLDE3LDI1LDMzLDQ5LDY1LDk3LDEyOSwxOTMsMjU3LDM4NSw1MTMsNzY5LDEwMjUsMTUzNywyMDQ5''@;'; + put 'put ''LDMwNzMsNDA5Nyw2MTQ1LDgxOTMsMTIyODksMTYzODUsMjQ1NzddLCQwPSJ1bmRlZmluZWQiIT10eXBlb2YgVWludDhBcnJheSxOYT0kMD9uZXcgVWludDhBcnJheSgyNTYpOltdLGpvPTA7am88MjU2Oysram8pTmFbam9dPSh2b2lkIDAsMjU1JigoQnI9MTM5NTM2JigobHI9am8pPDwxfGxy''@;'; + put 'put ''PDwxMSl8NTU4MTQ0Jihscjw8NXxscjw8MTUpKT4+MTZ8QnI+Pjh8QnIpKTtmdW5jdGlvbiB3YShscixCcil7dmFyIGRyPU5hWzI1NSZscl07cmV0dXJuIEJyPD04P2RyPj4+OC1CcjooZHI9ZHI8PDh8TmFbbHI+PjgmMjU1XSxCcjw9MTY/ZHI+Pj4xNi1CcjooZHI9ZHI8PDh8TmFbbHI+PjE2''@;'; + put 'put ''JjI1NV0pPj4+MjQtQnIpfWZ1bmN0aW9uIGFvKGxyLEJyKXt2YXIgZHI9NyZCcixXbj1Ccj4+PjM7cmV0dXJuKGxyW1duXXwoZHI8PTY/MDpscltXbisxXTw8OCkpPj4+ZHImM31mdW5jdGlvbiB4MChscixCcil7dmFyIGRyPTcmQnIsV249QnI+Pj4zO3JldHVybihscltXbl18KGRyPD01PzA6''@;'; + put 'put ''bHJbV24rMV08PDgpKT4+PmRyJjd9ZnVuY3Rpb24ganIobHIsQnIpe3ZhciBkcj03JkJyLFduPUJyPj4+MztyZXR1cm4obHJbV25dfChkcjw9Mz8wOmxyW1duKzFdPDw4KSk+Pj5kciYzMX1mdW5jdGlvbiBIaShscixCcil7dmFyIGRyPTcmQnIsV249QnI+Pj4zO3JldHVybihscltXbl18KGRy''@;'; + put 'put ''PD0xPzA6bHJbV24rMV08PDgpKT4+PmRyJjEyN31mdW5jdGlvbiB2byhscixCcixkcil7dmFyIFduPTcmQnIsJG49QnI+Pj4zLFdyPWxyWyRuXT4+PlduO3JldHVybiBkcjw4LVdufHwoV3J8PWxyWyRuKzFdPDw4LVduLGRyPDE2LVduKXx8KFdyfD1sclskbisyXTw8MTYtV24sZHI8MjQtV24p''@;'; + put 'put ''fHwoV3J8PWxyWyRuKzNdPDwyNC1XbiksV3ImKDE8PGRyKS0xfWZ1bmN0aW9uIHhvKGxyLEJyKXt2YXIgZHI9bHIubGVuZ3RoLFduPTIqZHI+QnI/MipkcjpCcis1LCRuPTA7aWYoZHI+PUJyKXJldHVybiBscjtpZihJZSl7dmFyIGJyPU8oV24pO2lmKGxyLmNvcHkpbHIuY29weShicik7ZWxz''@;'; + put 'put ''ZSBmb3IoOyRuPGxyLmxlbmd0aDsrKyRuKWJyWyRuXT1sclskbl07cmV0dXJuIGJyfWlmKCQwKXt2YXIgV3I9bmV3IFVpbnQ4QXJyYXkoV24pO2lmKFdyLnNldClXci5zZXQobHIpO2Vsc2UgZm9yKDskbjxsci5sZW5ndGg7KyskbilXclskbl09bHJbJG5dO3JldHVybiBXcn1yZXR1cm4gbHIu''@;'; + put 'put ''bGVuZ3RoPVduLGxyfWZ1bmN0aW9uICRpKGxyKXtmb3IodmFyIEJyPW5ldyBBcnJheShsciksZHI9MDtkcjxscjsrK2RyKUJyW2RyXT0wO3JldHVybiBCcn12YXIgbDI9ZnVuY3Rpb24oQnIpe3ZhciBkcj1SaSg1MCtNYXRoLmZsb29yKDEuMSpCci5sZW5ndGgpKSxXbj1mdW5jdGlvbihkcixX''@;'; + put 'put ''bil7Zm9yKHZhciAkbj0wOyRuPGRyLmxlbmd0aDspe3ZhciBicj1NYXRoLm1pbig2NTUzNSxkci5sZW5ndGgtJG4pO2ZvcihXbi53cml0ZV9zaGlmdCgxLCsoJG4rYnI9PWRyLmxlbmd0aCkpLFduLndyaXRlX3NoaWZ0KDIsYnIpLFduLndyaXRlX3NoaWZ0KDIsNjU1MzUmfmJyKTtici0tID4w''@;'; + put 'put ''OylXbltXbi5sKytdPWRyWyRuKytdfXJldHVybiBXbi5sfShCcixkcik7cmV0dXJuIGRyLnNsaWNlKDAsV24pfTtmdW5jdGlvbiBNYyhscixCcixkcil7dmFyIFduPTEsJG49MCxicj0wLFdyPTAsdWk9MCxJaT1sci5sZW5ndGgsdTA9JDA/bmV3IFVpbnQxNkFycmF5KDMyKTokaSgzMik7Zm9y''@;'; + put 'put ''KGJyPTA7YnI8MzI7Kyticil1MFticl09MDtmb3IoYnI9SWk7YnI8ZHI7Kyticilsclticl09MDtJaT1sci5sZW5ndGg7dmFyIHppPSQwP25ldyBVaW50MTZBcnJheShJaSk6JGkoSWkpO2Zvcihicj0wO2JyPElpOysrYnIpdTBbJG49bHJbYnJdXSsrLFduPCRuJiYoV249JG4pLHppW2JyXT0w''@;'; + put 'put ''O2Zvcih1MFswXT0wLGJyPTE7YnI8PVduOysrYnIpdTBbYnIrMTZdPXVpPXVpK3UwW2JyLTFdPDwxO2Zvcihicj0wO2JyPElpOysrYnIpMCE9KHVpPWxyW2JyXSkmJih6aVticl09dTBbdWkrMTZdKyspO3ZhciBKMD0wO2Zvcihicj0wO2JyPElpOysrYnIpaWYoMCE9KEowPWxyW2JyXSkpZm9y''@;'; + put 'put ''KHVpPXdhKHppW2JyXSxXbik+PlduLUowLFdyPSgxPDxXbis0LUowKS0xO1dyPj0wOy0tV3IpQnJbdWl8V3I8PEowXT0xNSZKMHxicjw8NDtyZXR1cm4gV259dmFyIHAyPSQwP25ldyBVaW50MTZBcnJheSg1MTIpOiRpKDUxMikscnI9JDA/bmV3IFVpbnQxNkFycmF5KDMyKTokaSgzMik7aWYo''@;'; + put 'put ''ISQwKXtmb3IodmFyIElyPTA7SXI8NTEyOysrSXIpcDJbSXJdPTA7Zm9yKElyPTA7SXI8MzI7KytJcilycltJcl09MH0hZnVuY3Rpb24oKXtmb3IodmFyIGxyPVtdLEJyPTA7QnI8MzI7QnIrKylsci5wdXNoKDUpO01jKGxyLHJyLDMyKTt2YXIgZHI9W107Zm9yKEJyPTA7QnI8PTE0MztCcisr''@;'; + put 'put ''KWRyLnB1c2goOCk7Zm9yKDtCcjw9MjU1O0JyKyspZHIucHVzaCg5KTtmb3IoO0JyPD0yNzk7QnIrKylkci5wdXNoKDcpO2Zvcig7QnI8PTI4NztCcisrKWRyLnB1c2goOCk7TWMoZHIscDIsMjg4KX0oKTt2YXIgWnI9JDA/bmV3IFVpbnQxNkFycmF5KDMyNzY4KTokaSgzMjc2OCkscWk9JDA/''@;'; + put 'put ''bmV3IFVpbnQxNkFycmF5KDMyNzY4KTokaSgzMjc2OCkscmk9JDA/bmV3IFVpbnQxNkFycmF5KDEyOCk6JGkoMTI4KSxyMD0xLHBpPTE7ZnVuY3Rpb24gZTAobHIsQnIpe3ZhciBkcj1qcihscixCcikrMjU3LFduPWpyKGxyLEJyKz01KSsxLCRuPWZ1bmN0aW9uIGgwKGxyLEJyKXt2YXIgZHI9''@;'; + put 'put ''NyZCcixXbj1Ccj4+PjM7cmV0dXJuKGxyW1duXXwoZHI8PTQ/MDpscltXbisxXTw8OCkpPj4+ZHImMTV9KGxyLEJyKz01KSs0O0JyKz00O2Zvcih2YXIgYnI9MCxXcj0kMD9uZXcgVWludDhBcnJheSgxOSk6JGkoMTkpLHVpPVswLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww''@;'; + put 'put ''XSxJaT0xLHUwPSQwP25ldyBVaW50OEFycmF5KDgpOiRpKDgpLHppPSQwP25ldyBVaW50OEFycmF5KDgpOiRpKDgpLEowPVdyLmxlbmd0aCxJMD0wO0kwPCRuOysrSTApV3JbTjBbSTBdXT1icj14MChscixCciksSWk8YnImJihJaT1iciksdTBbYnJdKyssQnIrPTM7dmFyIGVhPTA7Zm9yKHUw''@;'; + put 'put ''WzBdPTAsSTA9MTtJMDw9SWk7KytJMCl6aVtJMF09ZWE9ZWErdTBbSTAtMV08PDE7Zm9yKEkwPTA7STA8SjA7KytJMCkwIT0oZWE9V3JbSTBdKSYmKHVpW0kwXT16aVtlYV0rKyk7dmFyIFlvPTA7Zm9yKEkwPTA7STA8SjA7KytJMClpZigwIT0oWW89V3JbSTBdKSl7ZWE9TmFbdWlbSTBdXT4+''@;'; + put 'put ''OC1Zbztmb3IodmFyIHlvPSgxPDw3LVlvKS0xO3lvPj0wOy0teW8pcmlbZWF8eW88PFlvXT03JllvfEkwPDwzfXZhciAkYT1bXTtmb3IoSWk9MTskYS5sZW5ndGg8ZHIrV247KXN3aXRjaChlYT1yaVtIaShscixCcildLEJyKz03JmVhLGVhPj4+PTMpe2Nhc2UgMTY6Zm9yKGJyPTMrYW8obHIs''@;'; + put 'put ''QnIpLEJyKz0yLGVhPSRhWyRhLmxlbmd0aC0xXTtici0tID4wOykkYS5wdXNoKGVhKTticmVhaztjYXNlIDE3OmZvcihicj0zK3gwKGxyLEJyKSxCcis9Mztici0tID4wOykkYS5wdXNoKDApO2JyZWFrO2Nhc2UgMTg6Zm9yKGJyPTExK0hpKGxyLEJyKSxCcis9Nztici0tID4wOykkYS5wdXNo''@;'; + put 'put ''KDApO2JyZWFrO2RlZmF1bHQ6JGEucHVzaChlYSksSWk8ZWEmJihJaT1lYSl9dmFyIGpzPSRhLnNsaWNlKDAsZHIpLEVjPSRhLnNsaWNlKGRyKTtmb3IoSTA9ZHI7STA8Mjg2OysrSTApanNbSTBdPTA7Zm9yKEkwPVduO0kwPDMwOysrSTApRWNbSTBdPTA7cmV0dXJuIHIwPU1jKGpzLFpyLDI4''@;'; + put 'put ''NikscGk9TWMoRWMscWksMzApLEJyfWZ1bmN0aW9uIGswKGxyLEJyKXt2YXIgV249ZnVuY3Rpb24gT28obHIsQnIpe2lmKDM9PWxyWzBdJiYhKDMmbHJbMV0pKXJldHVybltoZShCciksMl07Zm9yKHZhciBkcj0wLFduPTAsJG49TyhCcnx8MTw8MTgpLGJyPTAsV3I9JG4ubGVuZ3RoPj4+MCx1''@;'; + put 'put ''aT0wLElpPTA7MD09KDEmV24pOylpZihXbj14MChscixkciksZHIrPTMsV24+Pj4xIT0wKWZvcihXbj4+PjE9PTE/KHVpPTksSWk9NSk6KGRyPWUwKGxyLGRyKSx1aT1yMCxJaT1waSksIUJyJiZXcjxiciszMjc2NyYmKFdyPSgkbj14bygkbixiciszMjc2NykpLmxlbmd0aCk7Oyl7dmFyIHpp''@;'; + put 'put ''PXZvKGxyLGRyLHVpKSxKMD1Xbj4+PjE9PTE/cDJbemldOlpyW3ppXTtpZihkcis9MTUmSjAsMD09KChKMD4+Pj00KT4+PjgmMjU1KSkkblticisrXT1KMDtlbHNle2lmKDI1Nj09SjApYnJlYWs7dmFyIEkwPShKMC09MjU3KTw4PzA6SjAtND4+MjtJMD41JiYoSTA9MCk7dmFyIGVhPWJyK3Qw''@;'; + put 'put ''W0owXTtJMD4wJiYoZWErPXZvKGxyLGRyLEkwKSxkcis9STApLHppPXZvKGxyLGRyLElpKSxkcis9MTUmKEowPVduPj4+MT09MT9yclt6aV06cWlbemldKTt2YXIgWW89KEowPj4+PTQpPDQ/MDpKMC0yPj4xLHlvPWlvW0owXTtmb3IoWW8+MCYmKHlvKz12byhscixkcixZbyksZHIrPVlvKSwh''@;'; + put 'put ''QnImJldyPGVhJiYoV3I9KCRuPXhvKCRuLGVhKSkubGVuZ3RoKTticjxlYTspJG5bYnJdPSRuW2JyLXlvXSwrK2JyfX1lbHNlezcmZHImJihkcis9OC0oNyZkcikpO3ZhciB1MD1scltkcj4+PjNdfGxyWzErKGRyPj4+MyldPDw4O2lmKGRyKz0zMiwhQnImJldyPGJyK3UwJiYoV3I9KCRuPXhv''@;'; + put 'put ''KCRuLGJyK3UwKSkubGVuZ3RoKSwiZnVuY3Rpb24iPT10eXBlb2YgbHIuY29weSlsci5jb3B5KCRuLGJyLGRyPj4+MywoZHI+Pj4zKSt1MCksYnIrPXUwLGRyKz04KnUwO2Vsc2UgZm9yKDt1MC0tID4wOykkblticisrXT1scltkcj4+PjNdLGRyKz04fXJldHVybltCcj8kbjokbi5zbGljZSgw''@;'; + put 'put ''LGJyKSxkcis3Pj4+M119KGxyLnNsaWNlKGxyLmx8fDApLEJyKTtyZXR1cm4gbHIubCs9V25bMV0sV25bMF19ZnVuY3Rpb24gcG8obHIsQnIpe2lmKCFscil0aHJvdyBuZXcgRXJyb3IoQnIpOyJ1bmRlZmluZWQiIT10eXBlb2YgY29uc29sZSYmY29uc29sZS5lcnJvcihCcil9ZnVuY3Rpb24g''@;'; + put 'put ''cDAobHIsQnIpe3ZhciBkcj1scjtLbChkciwwKTt2YXIgYnI9e0ZpbGVJbmRleDpbXSxGdWxsUGF0aHM6W119O3lyKGJyLHtyb290OkJyLnJvb3R9KTtmb3IodmFyIFdyPWRyLmxlbmd0aC00Oyg4MCE9ZHJbV3JdfHw3NSE9ZHJbV3IrMV18fDUhPWRyW1dyKzJdfHw2IT1kcltXciszXSkmJldy''@;'; + put 'put ''Pj0wOyktLVdyO2RyLmw9V3IrNCxkci5sKz00O3ZhciB1aT1kci5yZWFkX3NoaWZ0KDIpO2RyLmwrPTY7dmFyIElpPWRyLnJlYWRfc2hpZnQoNCk7Zm9yKGRyLmw9SWksV3I9MDtXcjx1aTsrK1dyKXtkci5sKz0yMDt2YXIgdTA9ZHIucmVhZF9zaGlmdCg0KSx6aT1kci5yZWFkX3NoaWZ0KDQp''@;'; + put 'put ''LEowPWRyLnJlYWRfc2hpZnQoMiksSTA9ZHIucmVhZF9zaGlmdCgyKSxlYT1kci5yZWFkX3NoaWZ0KDIpO2RyLmwrPTg7dmFyIFlvPWRyLnJlYWRfc2hpZnQoNCkseW89amUoZHIuc2xpY2UoZHIubCtKMCxkci5sK0owK0kwKSk7ZHIubCs9SjArSTArZWE7dmFyICRhPWRyLmw7ZHIubD1Zbys0''@;'; + put 'put ''LFFsKGRyLHUwLHppLGJyLHlvKSxkci5sPSRhfXJldHVybiBicn1mdW5jdGlvbiBRbChscixCcixkcixXbiwkbil7bHIubCs9Mjt2YXIgYnI9bHIucmVhZF9zaGlmdCgyKSxXcj1sci5yZWFkX3NoaWZ0KDIpLHVpPWZ1bmN0aW9uIFplKGxyKXt2YXIgQnI9NjU1MzUmbHIucmVhZF9zaGlmdCgy''@;'; + put 'put ''KSxkcj02NTUzNSZsci5yZWFkX3NoaWZ0KDIpLFduPW5ldyBEYXRlLCRuPTMxJmRyLGJyPTE1Jihkcj4+Pj01KTtkcj4+Pj00LFduLnNldE1pbGxpc2Vjb25kcygwKSxXbi5zZXRGdWxsWWVhcihkcisxOTgwKSxXbi5zZXRNb250aChici0xKSxXbi5zZXREYXRlKCRuKTt2YXIgV3I9MzEmQnIs''@;'; + put 'put ''dWk9NjMmKEJyPj4+PTUpO3JldHVybiBXbi5zZXRIb3VycyhCcj4+Pj02KSxXbi5zZXRNaW51dGVzKHVpKSxXbi5zZXRTZWNvbmRzKFdyPDwxKSxXbn0obHIpO2lmKDgyNTcmYnIpdGhyb3cgbmV3IEVycm9yKCJVbnN1cHBvcnRlZCBaSVAgZW5jcnlwdGlvbiIpO2Zvcih2YXIgSWk9bHIucmVh''@;'; + put 'put ''ZF9zaGlmdCg0KSx1MD1sci5yZWFkX3NoaWZ0KDQpLHppPWxyLnJlYWRfc2hpZnQoNCksSjA9bHIucmVhZF9zaGlmdCgyKSxJMD1sci5yZWFkX3NoaWZ0KDIpLGVhPSIiLFlvPTA7WW88SjA7KytZbyllYSs9U3RyaW5nLmZyb21DaGFyQ29kZShscltsci5sKytdKTtpZihJMCl7dmFyIHlvPWpl''@;'; + put 'put ''KGxyLnNsaWNlKGxyLmwsbHIubCtJMCkpOyh5b1syMTU4OV18fHt9KS5tdCYmKHVpPXlvWzIxNTg5XS5tdCksKCgkbnx8e30pWzIxNTg5XXx8e30pLm10JiYodWk9JG5bMjE1ODldLm10KX1sci5sKz1JMDt2YXIgJGE9bHIuc2xpY2UobHIubCxsci5sK3UwKTtzd2l0Y2goV3Ipe2Nhc2UgODok''@;'; + put 'put ''YT1mdW5jdGlvbiBOcihscixCcil7aWYoIUVpKXJldHVybiBrMChscixCcik7dmFyIFduPW5ldygwLEVpLkluZmxhdGVSYXcpLCRuPVduLl9wcm9jZXNzQ2h1bmsobHIuc2xpY2UobHIubCksV24uX2ZpbmlzaEZsdXNoRmxhZyk7cmV0dXJuIGxyLmwrPVduLmJ5dGVzUmVhZCwkbn0obHIsemkp''@;'; + put 'put ''O2JyZWFrO2Nhc2UgMDpicmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiVW5zdXBwb3J0ZWQgWklQIENvbXByZXNzaW9uIG1ldGhvZCAiK1dyKX12YXIganM9ITE7OCZiciYmKDEzNDY5NTc2MD09KElpPWxyLnJlYWRfc2hpZnQoNCkpJiYoSWk9bHIucmVhZF9zaGlmdCg0KSxqcz0hMCks''@;'; + put 'put ''dTA9bHIucmVhZF9zaGlmdCg0KSx6aT1sci5yZWFkX3NoaWZ0KDQpKSx1MCE9QnImJnBvKGpzLCJCYWQgY29tcHJlc3NlZCBzaXplOiAiK0JyKyIgIT0gIit1MCksemkhPWRyJiZwbyhqcywiQmFkIHVuY29tcHJlc3NlZCBzaXplOiAiK2RyKyIgIT0gIit6aSk7dmFyIEVjPXd0LmJ1ZigkYSww''@;'; + put 'put ''KTtJaT4+MCE9RWM+PjAmJnBvKGpzLCJCYWQgQ1JDMzIgY2hlY2tzdW06ICIrSWkrIiAhPSAiK0VjKSxlMShXbixlYSwkYSx7dW5zYWZlOiEwLG10OnVpfSl9ZnVuY3Rpb24gZTEobHIsQnIsZHIsV24pe3ZhciAkbj1XbiYmV24udW5zYWZlOyRufHx5cihscik7dmFyIGJyPSEkbiYmbXQuZmlu''@;'; + put 'put ''ZChscixCcik7aWYoIWJyKXt2YXIgV3I9bHIuRnVsbFBhdGhzWzBdO0JyLnNsaWNlKDAsV3IubGVuZ3RoKT09V3I/V3I9QnI6KCIvIiE9V3Iuc2xpY2UoLTEpJiYoV3IrPSIvIiksV3I9KFdyK0JyKS5yZXBsYWNlKCIvLyIsIi8iKSksYnI9e25hbWU6eGUoQnIpLHR5cGU6Mn0sbHIuRmlsZUlu''@;'; + put 'put ''ZGV4LnB1c2goYnIpLGxyLkZ1bGxQYXRocy5wdXNoKFdyKSwkbnx8bXQudXRpbHMuY2ZiX2djKGxyKX1yZXR1cm4gYnIuY29udGVudD1kcixici5zaXplPWRyP2RyLmxlbmd0aDowLFduJiYoV24uQ0xTSUQmJihici5jbHNpZD1Xbi5DTFNJRCksV24ubXQmJihici5tdD1Xbi5tdCksV24uY3Qm''@;'; + put 'put ''Jihici5jdD1Xbi5jdCkpLGJyfXJldHVybiByZS5maW5kPWZ1bmN0aW9uIHFyKGxyLEJyKXt2YXIgZHI9bHIuRnVsbFBhdGhzLm1hcChmdW5jdGlvbihJaSl7cmV0dXJuIElpLnRvVXBwZXJDYXNlKCl9KSxXbj1kci5tYXAoZnVuY3Rpb24oSWkpe3ZhciB1MD1JaS5zcGxpdCgiLyIpO3JldHVy''@;'; + put 'put ''biB1MFt1MC5sZW5ndGgtKCIvIj09SWkuc2xpY2UoLTEpPzI6MSldfSksJG49ITE7NDc9PT1Cci5jaGFyQ29kZUF0KDApPygkbj0hMCxCcj1kclswXS5zbGljZSgwLC0xKStCcik6JG49LTEhPT1Cci5pbmRleE9mKCIvIik7dmFyIGJyPUJyLnRvVXBwZXJDYXNlKCksV3I9ITA9PT0kbj9kci5p''@;'; + put 'put ''bmRleE9mKGJyKTpXbi5pbmRleE9mKGJyKTtpZigtMSE9PVdyKXJldHVybiBsci5GaWxlSW5kZXhbV3JdO3ZhciB1aT0hYnIubWF0Y2goUyk7Zm9yKGJyPWJyLnJlcGxhY2UoVCwiIiksdWkmJihicj1ici5yZXBsYWNlKFMsIiEiKSksV3I9MDtXcjxkci5sZW5ndGg7KytXcilpZigodWk/ZHJb''@;'; + put 'put ''V3JdLnJlcGxhY2UoUywiISIpOmRyW1dyXSkucmVwbGFjZShULCIiKT09YnJ8fCh1aT9XbltXcl0ucmVwbGFjZShTLCIhIik6V25bV3JdKS5yZXBsYWNlKFQsIiIpPT1icilyZXR1cm4gbHIuRmlsZUluZGV4W1dyXTtyZXR1cm4gbnVsbH0scmUucmVhZD1mdW5jdGlvbiBhaShscixCcil7c3dp''@;'; + put 'put ''dGNoKEJyJiZCci50eXBlfHwiYmFzZTY0Iil7Y2FzZSJmaWxlIjpyZXR1cm4gZnVuY3Rpb24gTXIobHIsQnIpe3JldHVybiBNdCgpLHh0KFllLnJlYWRGaWxlU3luYyhsciksQnIpfShscixCcik7Y2FzZSJiYXNlNjQiOnJldHVybiB4dCh6KFNlLmRlY29kZShscikpLEJyKTtjYXNlImJpbmFy''@;'; + put 'put ''eSI6cmV0dXJuIHh0KHoobHIpLEJyKX1yZXR1cm4geHQobHIsQnIpfSxyZS5wYXJzZT14dCxyZS53cml0ZT1mdW5jdGlvbiBZcihscixCcil7dmFyIGRyPXpyKGxyLEJyKTtzd2l0Y2goQnImJkJyLnR5cGUpe2Nhc2UiZmlsZSI6cmV0dXJuIE10KCksWWUud3JpdGVGaWxlU3luYyhCci5maWxl''@;'; + put 'put ''bmFtZSxkciksZHI7Y2FzZSJiaW5hcnkiOnJldHVybiB3aShkcik7Y2FzZSJiYXNlNjQiOnJldHVybiBTZS5lbmNvZGUod2koZHIpKX1yZXR1cm4gZHJ9LHJlLndyaXRlRmlsZT1mdW5jdGlvbiBBMChscixCcixkcil7TXQoKTt2YXIgV249enIobHIsZHIpO1llLndyaXRlRmlsZVN5bmMoQnIs''@;'; + put 'put ''V24pfSxyZS51dGlscz17Y2ZiX25ldzpmdW5jdGlvbiBxMihscil7dmFyIEJyPXt9O3JldHVybiB5cihCcixsciksQnJ9LGNmYl9hZGQ6ZTEsY2ZiX2RlbDpmdW5jdGlvbiBLcyhscixCcil7eXIobHIpO3ZhciBkcj1tdC5maW5kKGxyLEJyKTtpZihkcilmb3IodmFyIFduPTA7V248bHIuRmls''@;'; + put 'put ''ZUluZGV4Lmxlbmd0aDsrK1duKWlmKGxyLkZpbGVJbmRleFtXbl09PWRyKXJldHVybiBsci5GaWxlSW5kZXguc3BsaWNlKFduLDEpLGxyLkZ1bGxQYXRocy5zcGxpY2UoV24sMSksITA7cmV0dXJuITF9LGNmYl9tb3Y6ZnVuY3Rpb24gUDYobHIsQnIsZHIpe3lyKGxyKTt2YXIgV249bXQuZmlu''@;'; + put 'put ''ZChscixCcik7aWYoV24pZm9yKHZhciAkbj0wOyRuPGxyLkZpbGVJbmRleC5sZW5ndGg7KyskbilpZihsci5GaWxlSW5kZXhbJG5dPT1XbilyZXR1cm4gbHIuRmlsZUluZGV4WyRuXS5uYW1lPXhlKGRyKSxsci5GdWxsUGF0aHNbJG5dPWRyLCEwO3JldHVybiExfSxjZmJfZ2M6ZnVuY3Rpb24g''@;'; + put 'put ''dGgobHIpe0dyKGxyLCEwKX0sUmVhZFNoaWZ0OkM0LENoZWNrRmllbGQ6RjEscHJlcF9ibG9iOktsLGJjb25jYXQ6Vix1c2VfemxpYjpmdW5jdGlvbiBoaShscil7dHJ5e3ZhciBkcj1uZXcoMCxsci5JbmZsYXRlUmF3KTtpZihkci5fcHJvY2Vzc0NodW5rKG5ldyBVaW50OEFycmF5KFszLDBd''@;'; + put 'put ''KSxkci5fZmluaXNoRmx1c2hGbGFnKSwhZHIuYnl0ZXNSZWFkKXRocm93IG5ldyBFcnJvcigiemxpYiBkb2VzIG5vdCBleHBvc2UgYnl0ZXNSZWFkIik7RWk9bHJ9Y2F0Y2goV24pe2NvbnNvbGUuZXJyb3IoImNhbm5vdCB1c2UgbmF0aXZlIHpsaWI6ICIrKFduLm1lc3NhZ2V8fFduKSl9fSxf''@;'; + put 'put ''ZGVmbGF0ZVJhdzpsMixfaW5mbGF0ZVJhdzprMCxjb25zdHM6dG99LHJlfSgpO3RyeXt2dD1MKDc4NzczKX1jYXRjaChIKXt9ZnVuY3Rpb24gQXQoSCl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBIP25lKEgpOkFycmF5LmlzQXJyYXkoSCk/ZnVuY3Rpb24geChIKXtpZigidW5kZWZpbmVkIj09''@;'; + put 'put ''dHlwZW9mIFVpbnQ4QXJyYXkpdGhyb3cgbmV3IEVycm9yKCJVbnN1cHBvcnRlZCIpO3JldHVybiBuZXcgVWludDhBcnJheShIKX0oSCk6SH1mdW5jdGlvbiBodChILHJlLFgpe2lmKHZvaWQgMCE9PXZ0JiZ2dC53cml0ZUZpbGVTeW5jKXJldHVybiBYP3Z0LndyaXRlRmlsZVN5bmMoSCxyZSxY''@;'; + put 'put ''KTp2dC53cml0ZUZpbGVTeW5jKEgscmUpO3ZhciB3ZT0idXRmOCI9PVg/RW8ocmUpOnJlO2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgSUVfU2F2ZUZpbGUpcmV0dXJuIElFX1NhdmVGaWxlKHdlLEgpO2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgQmxvYil7dmFyIHhlPW5ldyBCbG9iKFtBdCh3ZSld''@;'; + put 'put ''LHt0eXBlOiJhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0ifSk7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBuYXZpZ2F0b3ImJm5hdmlnYXRvci5tc1NhdmVCbG9iKXJldHVybiBuYXZpZ2F0b3IubXNTYXZlQmxvYih4ZSxIKTtpZigidW5kZWZpbmVkIiE9dHlwZW9mIHNhdmVBcylyZXR1cm4gc2F2''@;'; + put 'put ''ZUFzKHhlLEgpO2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgVVJMJiYidW5kZWZpbmVkIiE9dHlwZW9mIGRvY3VtZW50JiZkb2N1bWVudC5jcmVhdGVFbGVtZW50JiZVUkwuY3JlYXRlT2JqZWN0VVJMKXt2YXIgRmU9VVJMLmNyZWF0ZU9iamVjdFVSTCh4ZSk7aWYoIm9iamVjdCI9PXR5cGVvZiBj''@;'; + put 'put ''aHJvbWUmJiJmdW5jdGlvbiI9PXR5cGVvZihjaHJvbWUuZG93bmxvYWRzfHx7fSkuZG93bmxvYWQpcmV0dXJuIFVSTC5yZXZva2VPYmplY3RVUkwmJiJ1bmRlZmluZWQiIT10eXBlb2Ygc2V0VGltZW91dCYmc2V0VGltZW91dChmdW5jdGlvbigpe1VSTC5yZXZva2VPYmplY3RVUkwoRmUpfSw2''@;'; + put 'put ''ZTQpLGNocm9tZS5kb3dubG9hZHMuZG93bmxvYWQoe3VybDpGZSxmaWxlbmFtZTpILHNhdmVBczohMH0pO3ZhciBaZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIik7aWYobnVsbCE9WmUuZG93bmxvYWQpcmV0dXJuIFplLmRvd25sb2FkPUgsWmUuaHJlZj1GZSxkb2N1bWVudC5ib2R5LmFw''@;'; + put 'put ''cGVuZENoaWxkKFplKSxaZS5jbGljaygpLGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoWmUpLFVSTC5yZXZva2VPYmplY3RVUkwmJiJ1bmRlZmluZWQiIT10eXBlb2Ygc2V0VGltZW91dCYmc2V0VGltZW91dChmdW5jdGlvbigpe1VSTC5yZXZva2VPYmplY3RVUkwoRmUpfSw2ZTQpLEZlfX1p''@;'; + put 'put ''ZigidW5kZWZpbmVkIiE9dHlwZW9mICQmJiJ1bmRlZmluZWQiIT10eXBlb2YgRmlsZSYmInVuZGVmaW5lZCIhPXR5cGVvZiBGb2xkZXIpdHJ5e3ZhciBqZT1GaWxlKEgpO3JldHVybiBqZS5vcGVuKCJ3IiksamUuZW5jb2Rpbmc9ImJpbmFyeSIsQXJyYXkuaXNBcnJheShyZSkmJihyZT10ZShy''@;'; + put 'put ''ZSkpLGplLndyaXRlKHJlKSxqZS5jbG9zZSgpLHJlfWNhdGNoKFllKXtpZighWWUubWVzc2FnZXx8IVllLm1lc3NhZ2UubWF0Y2goL29uc3RydWN0LykpdGhyb3cgWWV9dGhyb3cgbmV3IEVycm9yKCJjYW5ub3Qgc2F2ZSBmaWxlICIrSCl9ZnVuY3Rpb24gb24oSCl7Zm9yKHZhciByZT1PYmpl''@;'; + put 'put ''Y3Qua2V5cyhIKSxYPVtdLHdlPTA7d2U8cmUubGVuZ3RoOysrd2UpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKEgscmVbd2VdKSYmWC5wdXNoKHJlW3dlXSk7cmV0dXJuIFh9ZnVuY3Rpb24gX3QoSCxyZSl7Zm9yKHZhciBYPVtdLHdlPW9uKEgpLHhlPTA7eGUhPT13ZS5s''@;'; + put 'put ''ZW5ndGg7Kyt4ZSludWxsPT1YW0hbd2VbeGVdXVtyZV1dJiYoWFtIW3dlW3hlXV1bcmVdXT13ZVt4ZV0pO3JldHVybiBYfWZ1bmN0aW9uIHR0KEgpe2Zvcih2YXIgcmU9W10sWD1vbihIKSx3ZT0wO3dlIT09WC5sZW5ndGg7Kyt3ZSlyZVtIW1hbd2VdXV09WFt3ZV07cmV0dXJuIHJlfWZ1bmN0''@;'; + put 'put ''aW9uIGV0KEgpe2Zvcih2YXIgcmU9W10sWD1vbihIKSx3ZT0wO3dlIT09WC5sZW5ndGg7Kyt3ZSlyZVtIW1hbd2VdXV09cGFyc2VJbnQoWFt3ZV0sMTApO3JldHVybiByZX12YXIgZnQsSHQsTHQ9bmV3IERhdGUoMTg5OSwxMSwzMCwwLDAsMCksQ3Q9MDtmdW5jdGlvbiBHZSgpe0N0PUx0Lmdl''@;'; + put 'put ''dFRpbWUoKSs2ZTQqKChuZXcgRGF0ZSkuZ2V0VGltZXpvbmVPZmZzZXQoKS1MdC5nZXRUaW1lem9uZU9mZnNldCgpKSxmdD1mdW5jdGlvbihyZSxYKXt2YXIgd2U9cmUuZ2V0VGltZSgpO3JldHVybiBYJiYod2UtPTEyNjMxNjhlNSksKHdlLUN0KS84NjRlNX0sSHQ9ZnVuY3Rpb24ocmUpe3Zh''@;'; + put 'put ''ciBYPW5ldyBEYXRlO3JldHVybiBYLnNldFRpbWUoMjQqcmUqNjAqNjAqMWUzK0N0KSxYfX1mdW5jdGlvbiBqdChIKXt2YXIgcmU9MCxYPTAsd2U9ITEseGU9SC5tYXRjaCgvUChbMC05XC5dK1kpPyhbMC05XC5dK00pPyhbMC05XC5dK0QpP1QoWzAtOVwuXStIKT8oWzAtOVwuXStNKT8oWzAt''@;'; + put 'put ''OVwuXStTKT8vKTtpZigheGUpdGhyb3cgbmV3IEVycm9yKCJ8IitIKyJ8IGlzIG5vdCBhbiBJU084NjAxIER1cmF0aW9uIik7Zm9yKHZhciBGZT0xO0ZlIT14ZS5sZW5ndGg7KytGZSlpZih4ZVtGZV0pe3N3aXRjaChYPTEsRmU+MyYmKHdlPSEwKSx4ZVtGZV0uc2xpY2UoeGVbRmVdLmxlbmd0''@;'; + put 'put ''aC0xKSl7Y2FzZSJZIjp0aHJvdyBuZXcgRXJyb3IoIlVuc3VwcG9ydGVkIElTTyBEdXJhdGlvbiBGaWVsZDogIit4ZVtGZV0uc2xpY2UoeGVbRmVdLmxlbmd0aC0xKSk7Y2FzZSJEIjpYKj0yNDtjYXNlIkgiOlgqPTYwO2Nhc2UiTSI6aWYoIXdlKXRocm93IG5ldyBFcnJvcigiVW5zdXBwb3J0''@;'; + put 'put ''ZWQgSVNPIER1cmF0aW9uIEZpZWxkOiBNIik7WCo9NjB9cmUrPVgqcGFyc2VJbnQoeGVbRmVdLDEwKX1yZXR1cm4gcmV9R2UoKTt2YXIgUXQ9bmV3IERhdGUoIjIwMTctMDItMTlUMTk6MDY6MDkuMDAwWiIpO2lzTmFOKFF0LmdldEZ1bGxZZWFyKCkpJiYoUXQ9bmV3IERhdGUoIjIvMTkvMTci''@;'; + put 'put ''KSk7dmFyIGduPTIwMTc9PVF0LmdldEZ1bGxZZWFyKCk7ZnVuY3Rpb24gZG4oSCxyZSl7dmFyIFg9bmV3IERhdGUoSCk7aWYoZ24pcmV0dXJuIHJlPjA/WC5zZXRUaW1lKFguZ2V0VGltZSgpKzYwKlguZ2V0VGltZXpvbmVPZmZzZXQoKSoxZTMpOnJlPDAmJlguc2V0VGltZShYLmdldFRpbWUo''@;'; + put 'put ''KS02MCpYLmdldFRpbWV6b25lT2Zmc2V0KCkqMWUzKSxYO2lmKEggaW5zdGFuY2VvZiBEYXRlKXJldHVybiBIO2lmKDE5MTc9PVF0LmdldEZ1bGxZZWFyKCkmJiFpc05hTihYLmdldEZ1bGxZZWFyKCkpKXt2YXIgd2U9WC5nZXRGdWxsWWVhcigpO3JldHVybiBILmluZGV4T2YoIiIrd2UpPi0x''@;'; + put 'put ''fHxYLnNldEZ1bGxZZWFyKFguZ2V0RnVsbFllYXIoKSsxMDApLFh9dmFyIHhlPUgubWF0Y2goL1xkKy9nKXx8WyIyMDE3IiwiMiIsIjE5IiwiMCIsIjAiLCIwIl0sRmU9bmV3IERhdGUoK3hlWzBdLCt4ZVsxXS0xLCt4ZVsyXSwreGVbM118fDAsK3hlWzRdfHwwLCt4ZVs1XXx8MCk7cmV0dXJu''@;'; + put 'put ''IEguaW5kZXhPZigiWiIpPi0xJiYoRmU9bmV3IERhdGUoRmUuZ2V0VGltZSgpLTYwKkZlLmdldFRpbWV6b25lT2Zmc2V0KCkqMWUzKSksRmV9ZnVuY3Rpb24geW4oSCl7Zm9yKHZhciByZT0iIixYPTA7WCE9SC5sZW5ndGg7KytYKXJlKz1TdHJpbmcuZnJvbUNoYXJDb2RlKEhbWF0pO3JldHVy''@;'; + put 'put ''biByZX1mdW5jdGlvbiBsbihIKXtpZigib2JqZWN0IiE9dHlwZW9mIEh8fG51bGw9PUgpcmV0dXJuIEg7aWYoSCBpbnN0YW5jZW9mIERhdGUpcmV0dXJuIG5ldyBEYXRlKEguZ2V0VGltZSgpKTtpZihBcnJheS5pc0FycmF5KEgpKXJldHVybiBmdW5jdGlvbiBObihIKXtmb3IodmFyIHJlPVtd''@;'; + put 'put ''LFg9MDtYPEgubGVuZ3RoOysrWCl7dmFyIHdlPUhbWF07Im9iamVjdCI9PXR5cGVvZiB3ZT9yZVtYXT1sbih3ZSk6bnVsbCE9d2UmJihyZVtYXT13ZSl9cmV0dXJuIHJlfShIKTt2YXIgcmU9e307Zm9yKHZhciBYIGluIEgpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKEgs''@;'; + put 'put ''WCkmJihyZVtYXT1sbihIW1hdKSk7cmV0dXJuIHJlfWZ1bmN0aW9uIGJuKEgscmUpe2lmKCJvYmplY3QiIT10eXBlb2YgcmV8fG51bGw9PXJlKXJldHVybiBIO2Zvcih2YXIgWCBpbiByZSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocmUsWCkmJihIW1hdPWxuKHJlW1hd''@;'; + put 'put ''KSk7cmV0dXJuIEh9ZnVuY3Rpb24gZXIoSCxyZSl7Zm9yKHZhciBYPSIiO1gubGVuZ3RoPHJlOylYKz1IO3JldHVybiBYfWZ1bmN0aW9uIHNyKEgpe3ZhciByZT1OdW1iZXIoSCk7aWYoIWlzTmFOKHJlKSlyZXR1cm4gaXNGaW5pdGUocmUpP3JlOk5hTjtpZighL1xkLy50ZXN0KEgpKXJldHVy''@;'; + put 'put ''biByZTt2YXIgWD0xLHdlPUgucmVwbGFjZSgvKFtcZF0pLChbXGRdKS9nLCIkMSQyIikucmVwbGFjZSgvWyRdL2csIiIpLnJlcGxhY2UoL1slXS9nLGZ1bmN0aW9uKCl7cmV0dXJuIFgqPTEwMCwiIn0pO3JldHVybiBpc05hTihyZT1OdW1iZXIod2UpKSYmKHdlPXdlLnJlcGxhY2UoL1soXSgu''@;'; + put 'put ''KilbKV0vLGZ1bmN0aW9uKHhlLEZlKXtyZXR1cm4gWD0tWCxGZX0pLGlzTmFOKHJlPU51bWJlcih3ZSkpKT9yZTpyZS9YfWZ1bmN0aW9uIFhuKEgpe3ZhciByZT1uZXcgRGF0ZShIKSxYPW5ldyBEYXRlKE5hTiksd2U9cmUuZ2V0WWVhcigpLHhlPXJlLmdldE1vbnRoKCksRmU9cmUuZ2V0RGF0''@;'; + put 'put ''ZSgpO3JldHVybiBpc05hTihGZSl8fHdlPDB8fHdlPjgwOTk/WDooeGU+MHx8RmU+MSkmJjEwMSE9d2V8fEgudG9Mb3dlckNhc2UoKS5tYXRjaCgvamFufGZlYnxtYXJ8YXByfG1heXxqdW58anVsfGF1Z3xzZXB8b2N0fG5vdnxkZWMvKT9yZTpILm1hdGNoKC9bXi0wLTk6LFwvXFxdLyk/WDpy''@;'; + put 'put ''ZX1mdW5jdGlvbiBGcihILHJlKXtpZihyZSYmcmUucmF3KXJldHVybnt0OiJzIix2Okh9O2lmKCFIKXJldHVybnt0OiJ6In07aWYoIlRSVUUiPT09SClyZXR1cm57dDoiYiIsdjohMH07aWYoIkZBTFNFIj09PUgpcmV0dXJue3Q6ImIiLHY6ITF9O3ZhciBYPSIiLHdlPU51bWJlcihIKTtpZihp''@;'; + put 'put ''c0Zpbml0ZSh3ZSkpcmV0dXJue3Q6Im4iLHY6d2V9O2lmKGlzTmFOKHdlKSYmL1xkLy50ZXN0KEgpKXt2YXIgeGU9MSxGZT1ILnJlcGxhY2UoLyhbXGRdKSwoW1xkXSkvZyxmdW5jdGlvbihVdCxubixDbil7cmV0dXJuIFh8fChYPSIjLCMjMCIpLG5uK0NufSkucmVwbGFjZSgvWyRdL2csIiIp''@;'; + put 'put ''LnJlcGxhY2UoL1wuXGQqLyxmdW5jdGlvbihVdCl7WHx8KFg9IjAiKSxYKz0iLiI7Zm9yKHZhciBubj0yO25uPD1VdC5sZW5ndGg7KytubilYKz0iMCI7cmV0dXJuIFV0fSkucmVwbGFjZSgvWyVdL2csZnVuY3Rpb24oKXtyZXR1cm4geGUqPTEwMCxYfHwoWD0iMCIpLFgrPSIlIiwiIn0pO2lm''@;'; + put 'put ''KCFpc05hTih3ZT1OdW1iZXIoRmUpKSlyZXR1cm57dDoibiIsdjp3ZS94ZSx6Olh9O2lmKEZlPUZlLnJlcGxhY2UoL1soXSguKilbKV0vLGZ1bmN0aW9uKFV0LG5uKXtyZXR1cm4geGU9LXhlLG5ufSksIWlzTmFOKHdlPU51bWJlcihGZSkpKXJldHVybnt0OiJuIix2OndlL3hlLHo6KFh8fCIw''@;'; + put 'put ''IikrIl8pOygiKyhYfHwiMCIpKyIpO0AifX1lOmlmKCFyZXx8IXJlLnJhd0RhdGVzKXt2YXIgWmU9cmUmJnJlLmNlbGxEYXRlcyxqZT1uZXcgRGF0ZShIKSxNdD0obmV3IERhdGUoTmFOKSxqZS5nZXRZZWFyKCkpLHh0PWplLmdldE1vbnRoKCksUnQ9amUuZ2V0RGF0ZSgpO2lmKGlzTmFOKFJ0''@;'; + put 'put ''KXx8TXQ8MHx8TXQ+ODA5OSlicmVhayBlO2lmKCh4dD4wfHxSdD4xKSYmMTAxIT1NdClyZXR1cm57dDpaZT8iZCI6Im4iLHY6WmU/amU6ZnQoamUpLHo6cmUuZGF0ZU5GfHxGLl90YWJsZVsxNF19O2lmKEgudG9Mb3dlckNhc2UoKS5tYXRjaCgvamFufGZlYnxtYXJ8YXByfG1heXxqdW58anVs''@;'; + put 'put ''fGF1Z3xzZXB8b2N0fG5vdnxkZWMvKSlyZXR1cm57dDpaZT8iZCI6Im4iLHY6WmU/amU6ZnQoamUpLHo6cmUuZGF0ZU5GfHxGLl90YWJsZVsxNF19O2lmKEgubWF0Y2goL1teLTAtOTosXC9cXF0vKSlicmVhayBlO3JldHVybiBqZX1yZXR1cm57dDoicyIsdjpIfX12YXIgQm4seHI9NT09ImFi''@;'; + put 'put ''YWNhYmEiLnNwbGl0KC8oOj9iKS9pKS5sZW5ndGg7ZnVuY3Rpb24gbnIoSCl7cmV0dXJuIG51bGwhPUgmJiFIfWZ1bmN0aW9uIEFuKEgpe3JldHVybiBILmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK0guc2xpY2UoMSl9ZnVuY3Rpb24gcW4oSCl7cmV0dXJuIEg/SC5kYXRhP2NlKEguZGF0YSk6''@;'; + put 'put ''SC5hc05vZGVCdWZmZXImJkllP2NlKEguYXNOb2RlQnVmZmVyKCkudG9TdHJpbmcoImJpbmFyeSIpKTpILmFzQmluYXJ5P2NlKEguYXNCaW5hcnkoKSk6SC5fZGF0YSYmSC5fZGF0YS5nZXRDb250ZW50P2NlKHluKEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKEguX2RhdGEuZ2V0Q29udGVu''@;'; + put 'put ''dCgpLDApKSk6SC5jb250ZW50JiZILnR5cGU/Y2UoeW4oSC5jb250ZW50KSk6bnVsbDpudWxsfWZ1bmN0aW9uIFd0KEgpe2lmKCFIKXJldHVybiBudWxsO2lmKEguZGF0YSlyZXR1cm4gSihILmRhdGEpO2lmKEguYXNOb2RlQnVmZmVyJiZJZSlyZXR1cm4gSC5hc05vZGVCdWZmZXIoKTtpZihI''@;'; + put 'put ''Ll9kYXRhJiZILl9kYXRhLmdldENvbnRlbnQpe3ZhciByZT1ILl9kYXRhLmdldENvbnRlbnQoKTtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHJlP0oocmUpOkFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKHJlKX1yZXR1cm4gSC5jb250ZW50JiZILnR5cGU/SC5jb250ZW50Om51bGx9ZnVuY3Rp''@;'; + put 'put ''b24gS24oSCxyZSl7Zm9yKHZhciBYPUguRnVsbFBhdGhzfHxvbihILmZpbGVzKSx3ZT1yZS50b0xvd2VyQ2FzZSgpLHhlPXdlLnJlcGxhY2UoL1wvL2csIlxcIiksRmU9MDtGZTxYLmxlbmd0aDsrK0ZlKXt2YXIgWmU9WFtGZV0udG9Mb3dlckNhc2UoKTtpZih3ZT09WmV8fHhlPT1aZSlyZXR1''@;'; + put 'put ''cm4gSC5maWxlc1tYW0ZlXV19cmV0dXJuIG51bGx9ZnVuY3Rpb24gTnQoSCxyZSl7dmFyIFg9S24oSCxyZSk7aWYobnVsbD09WCl0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBmaW5kIGZpbGUgIityZSsiIGluIHppcCIpO3JldHVybiBYfWZ1bmN0aW9uIHNuKEgscmUsWCl7aWYoIVgpcmV0dXJu''@;'; + put 'put ''IGZ1bmN0aW9uIHBuKEgpe3JldHVybiBIJiYiLmJpbiI9PT1ILm5hbWUuc2xpY2UoLTQpP1d0KEgpOnFuKEgpfShOdChILHJlKSk7aWYoIXJlKXJldHVybiBudWxsO3RyeXtyZXR1cm4gc24oSCxyZSl9Y2F0Y2god2Upe3JldHVybiBudWxsfX1mdW5jdGlvbiBVbihILHJlLFgpe2lmKCFYKXJl''@;'; + put 'put ''dHVybiBxbihOdChILHJlKSk7aWYoIXJlKXJldHVybiBudWxsO3RyeXtyZXR1cm4gVW4oSCxyZSl9Y2F0Y2god2Upe3JldHVybiBudWxsfX1mdW5jdGlvbiB3bihILHJlLFgpe2lmKCFYKXJldHVybiBXdChOdChILHJlKSk7aWYoIXJlKXJldHVybiBudWxsO3RyeXtyZXR1cm4gd24oSCxyZSl9''@;'; + put 'put ''Y2F0Y2god2Upe3JldHVybiBudWxsfX1mdW5jdGlvbiB6bihILHJlLFgpe0guRnVsbFBhdGhzP210LnV0aWxzLmNmYl9hZGQoSCxyZSxYKTpILmZpbGUocmUsWCl9ZnVuY3Rpb24ga3IoKXtyZXR1cm4gQm4/bmV3IEJuOm10LnV0aWxzLmNmYl9uZXcoKX1mdW5jdGlvbiBtbihILHJlKXt2YXIg''@;'; + put 'put ''WDtpZihCbilzd2l0Y2gocmUudHlwZSl7Y2FzZSJiYXNlNjQiOlg9bmV3IEJuKEgse2Jhc2U2NDohMH0pO2JyZWFrO2Nhc2UiYmluYXJ5IjpjYXNlImFycmF5IjpYPW5ldyBCbihILHtiYXNlNjQ6ITF9KTticmVhaztjYXNlImJ1ZmZlciI6WD1uZXcgQm4oSCk7YnJlYWs7ZGVmYXVsdDp0aHJv''@;'; + put 'put ''dyBuZXcgRXJyb3IoIlVucmVjb2duaXplZCB0eXBlICIrcmUudHlwZSl9ZWxzZSBzd2l0Y2gocmUudHlwZSl7Y2FzZSJiYXNlNjQiOlg9bXQucmVhZChILHt0eXBlOiJiYXNlNjQifSk7YnJlYWs7Y2FzZSJiaW5hcnkiOlg9bXQucmVhZChILHt0eXBlOiJiaW5hcnkifSk7YnJlYWs7Y2FzZSJi''@;'; + put 'put ''dWZmZXIiOmNhc2UiYXJyYXkiOlg9bXQucmVhZChILHt0eXBlOiJidWZmZXIifSk7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIlVucmVjb2duaXplZCB0eXBlICIrcmUudHlwZSl9cmV0dXJuIFh9ZnVuY3Rpb24gdW4oSCxyZSl7aWYoIi8iPT1ILmNoYXJBdCgwKSlyZXR1cm4gSC5z''@;'; + put 'put ''bGljZSgxKTt2YXIgWD1yZS5zcGxpdCgiLyIpOyIvIiE9cmUuc2xpY2UoLTEpJiZYLnBvcCgpO2Zvcih2YXIgd2U9SC5zcGxpdCgiLyIpOzAhPT13ZS5sZW5ndGg7KXt2YXIgeGU9d2Uuc2hpZnQoKTsiLi4iPT09eGU/WC5wb3AoKToiLiIhPT14ZSYmWC5wdXNoKHhlKX1yZXR1cm4gWC5qb2lu''@;'; + put 'put ''KCIvIil9InVuZGVmaW5lZCIhPXR5cGVvZiBKU1ppcFN5bmMmJihCbj1KU1ppcFN5bmMpLFhlLmV4cG9ydHMmJnZvaWQgMD09PUJuJiYoQm49TCg2OTk2MykpO3ZhciBjbj0nPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI/PlxyXG4nLF9uPS8o''@;'; + put 'put ''PzpbXiJccz8+XC9dKylccyo9XHMqKCg/OiIpKD86W14iXSo/KSg/OiIpfCg/OicpKD86W14nXSo/KSg/OicpfCg/OlteJyI+XHNdKykpL2csR3Q9LzxbXC9cP10/W2EtekEtWjAtOTpfLV0rKD86XHMrW14iXHM/PlwvXStccyo9XHMqKD86IlteIl0qInwnW14nXSonfFteJyI+XHM9XSspKSpc''@;'; + put 'put ''cz9bXC9cP10/Pi9nO2NuLm1hdGNoKEd0KXx8KEd0PS88W14+XSo+L2cpO3ZhciBrbj0vPFx3KjovLFZuPS88KFwvPylcdys6LztmdW5jdGlvbiBlbihILHJlLFgpe2Zvcih2YXIgd2U9e30seGU9MCxGZT0wO3hlIT09SC5sZW5ndGgmJjMyIT09KEZlPUguY2hhckNvZGVBdCh4ZSkpJiYxMCE9''@;'; + put 'put ''PUZlJiYxMyE9PUZlOysreGUpO2lmKHJlfHwod2VbMF09SC5zbGljZSgwLHhlKSkseGU9PT1ILmxlbmd0aClyZXR1cm4gd2U7dmFyIFplPUgubWF0Y2goX24pLGplPTAsWWU9IiIsTXQ9MCx4dD0iIixSdD0iIixVdD0xO2lmKFplKWZvcihNdD0wO010IT1aZS5sZW5ndGg7KytNdCl7Zm9yKFJ0''@;'; + put 'put ''PVplW010XSxGZT0wO0ZlIT1SdC5sZW5ndGgmJjYxIT09UnQuY2hhckNvZGVBdChGZSk7KytGZSk7Zm9yKHh0PVJ0LnNsaWNlKDAsRmUpLnRyaW0oKTszMj09UnQuY2hhckNvZGVBdChGZSsxKTspKytGZTtmb3IoVXQ9MzQ9PSh4ZT1SdC5jaGFyQ29kZUF0KEZlKzEpKXx8Mzk9PXhlPzE6MCxZ''@;'; + put 'put ''ZT1SdC5zbGljZShGZSsxK1V0LFJ0Lmxlbmd0aC1VdCksamU9MDtqZSE9eHQubGVuZ3RoJiY1OCE9PXh0LmNoYXJDb2RlQXQoamUpOysramUpO2lmKGplPT09eHQubGVuZ3RoKXh0LmluZGV4T2YoIl8iKT4wJiYoeHQ9eHQuc2xpY2UoMCx4dC5pbmRleE9mKCJfIikpKSx3ZVt4dF09WWUsWHx8''@;'; + put 'put ''KHdlW3h0LnRvTG93ZXJDYXNlKCldPVllKTtlbHNle3ZhciBubj0oNT09PWplJiYieG1sbnMiPT09eHQuc2xpY2UoMCw1KT8ieG1sbnMiOiIiKSt4dC5zbGljZShqZSsxKTtpZih3ZVtubl0mJiJleHQiPT14dC5zbGljZShqZS0zLGplKSljb250aW51ZTt3ZVtubl09WWUsWHx8KHdlW25uLnRv''@;'; + put 'put ''TG93ZXJDYXNlKCldPVllKX19cmV0dXJuIHdlfWZ1bmN0aW9uIEluKEgpe3JldHVybiBILnJlcGxhY2UoVm4sIjwkMSIpfXZhciBKbj17IiZxdW90OyI6JyInLCImYXBvczsiOiInIiwiJmd0OyI6Ij4iLCImbHQ7IjoiPCIsIiZhbXA7IjoiJiJ9LG9yPXR0KEpuKSxncj1mdW5jdGlvbigpe3Zh''@;'; + put 'put ''ciBIPS8mKD86cXVvdHxhcG9zfGd0fGx0fGFtcHwjeD8oW1xkYS1mQS1GXSspKTsvZ2kscmU9L194KFtcZGEtZkEtRl17NH0pXy9naTtyZXR1cm4gZnVuY3Rpb24gWCh3ZSl7dmFyIHhlPXdlKyIiLEZlPXhlLmluZGV4T2YoIjwhW0NEQVRBWyIpO2lmKC0xPT1GZSlyZXR1cm4geGUucmVwbGFj''@;'; + put 'put ''ZShILGZ1bmN0aW9uKGplLFllKXtyZXR1cm4gSm5bamVdfHxTdHJpbmcuZnJvbUNoYXJDb2RlKHBhcnNlSW50KFllLGplLmluZGV4T2YoIngiKT4tMT8xNjoxMCkpfHxqZX0pLnJlcGxhY2UocmUsZnVuY3Rpb24oamUsWWUpe3JldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKHBhcnNlSW50KFll''@;'; + put 'put ''LDE2KSl9KTt2YXIgWmU9eGUuaW5kZXhPZigiXV0+Iik7cmV0dXJuIFgoeGUuc2xpY2UoMCxGZSkpK3hlLnNsaWNlKEZlKzksWmUpK1goeGUuc2xpY2UoWmUrMykpfX0oKSxLcj0vWyY8PiciXS9nLFZyPS9bXHUwMDAwLVx1MDAwOFx1MDAwYi1cdTAwMWZdL2csaWk9L194WzAtOWEtZkEtRl17''@;'; + put 'put ''NH1fL2c7ZnVuY3Rpb24gUnIoSCl7cmV0dXJuKEgrIiIpLnJlcGxhY2UoaWksIl94MDA1RiQmIikucmVwbGFjZShLcixmdW5jdGlvbihYKXtyZXR1cm4gb3JbWF19KS5yZXBsYWNlKFZyLGZ1bmN0aW9uKFgpe3JldHVybiJfeCIrKCIwMDAiK1guY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikp''@;'; + put 'put ''LnNsaWNlKC00KSsiXyJ9KX1mdW5jdGlvbiBsaShIKXtyZXR1cm4gUnIoSCkucmVwbGFjZSgvXG4vZywiX3gwMDBhXyIpfWZ1bmN0aW9uIE1pKEgpe3JldHVybiBScihIKS5yZXBsYWNlKC8gL2csIl94MDAyMF8iKX12YXIgbzA9L1tcdTAwMDAtXHUwMDFmXS9nO2Z1bmN0aW9uIG4wKEgpe3Jl''@;'; + put 'put ''dHVybihIKyIiKS5yZXBsYWNlKEtyLGZ1bmN0aW9uKFgpe3JldHVybiBvcltYXX0pLnJlcGxhY2UoL1xuL2csIjxici8+IikucmVwbGFjZShvMCxmdW5jdGlvbihYKXtyZXR1cm4iJiN4IisoIjAwMCIrWC5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KSkuc2xpY2UoLTQpKyI7In0pfWZ1bmN0''@;'; + put 'put ''aW9uIGQwKEgpe3JldHVybihIKyIiKS5yZXBsYWNlKEtyLGZ1bmN0aW9uKFgpe3JldHVybiBvcltYXX0pLnJlcGxhY2UobzAsZnVuY3Rpb24oWCl7cmV0dXJuIiYjeCIrWC5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpKyI7In0pfXZhciBtMD1mdW5jdGlvbigpe3Zh''@;'; + put 'put ''ciBIPS8mIyhcZCspOy9nO2Z1bmN0aW9uIHJlKFgsd2Upe3JldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKHBhcnNlSW50KHdlLDEwKSl9cmV0dXJuIGZ1bmN0aW9uKHdlKXtyZXR1cm4gd2UucmVwbGFjZShILHJlKX19KCk7ZnVuY3Rpb24gRGkoSCl7c3dpdGNoKEgpe2Nhc2UgMTpjYXNlITA6''@;'; + put 'put ''Y2FzZSIxIjpjYXNlInRydWUiOmNhc2UiVFJVRSI6cmV0dXJuITA7ZGVmYXVsdDpyZXR1cm4hMX19dmFyIFcwPWZ1bmN0aW9uKHJlKXtmb3IodmFyIFg9IiIsd2U9MCx4ZT0wLEZlPTAsWmU9MCxqZT0wLFllPTA7d2U8cmUubGVuZ3RoOykoeGU9cmUuY2hhckNvZGVBdCh3ZSsrKSk8MTI4P1gr''@;'; + put 'put ''PVN0cmluZy5mcm9tQ2hhckNvZGUoeGUpOihGZT1yZS5jaGFyQ29kZUF0KHdlKyspLHhlPjE5MSYmeGU8MjI0PyhqZT0oMzEmeGUpPDw2LGplfD02MyZGZSxYKz1TdHJpbmcuZnJvbUNoYXJDb2RlKGplKSk6KFplPXJlLmNoYXJDb2RlQXQod2UrKykseGU8MjQwP1grPVN0cmluZy5mcm9tQ2hh''@;'; + put 'put ''ckNvZGUoKDE1JnhlKTw8MTJ8KDYzJkZlKTw8Nnw2MyZaZSk6KFllPSgoNyZ4ZSk8PDE4fCg2MyZGZSk8PDEyfCg2MyZaZSk8PDZ8NjMmKGplPXJlLmNoYXJDb2RlQXQod2UrKykpKS02NTUzNixYKz1TdHJpbmcuZnJvbUNoYXJDb2RlKDU1Mjk2KyhZZT4+PjEwJjEwMjMpKSxYKz1TdHJpbmcu''@;'; + put 'put ''ZnJvbUNoYXJDb2RlKDU2MzIwKygxMDIzJlllKSkpKSk7cmV0dXJuIFh9LEVvPWZ1bmN0aW9uKEgpe2Zvcih2YXIgcmU9W10sWD0wLHdlPTAseGU9MDtYPEgubGVuZ3RoOylzd2l0Y2god2U9SC5jaGFyQ29kZUF0KFgrKyksITApe2Nhc2Ugd2U8MTI4OnJlLnB1c2goU3RyaW5nLmZyb21DaGFy''@;'; + put 'put ''Q29kZSh3ZSkpO2JyZWFrO2Nhc2Ugd2U8MjA0ODpyZS5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUoMTkyKyh3ZT4+NikpKSxyZS5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUoMTI4Kyg2MyZ3ZSkpKTticmVhaztjYXNlIHdlPj01NTI5NiYmd2U8NTczNDQ6d2UtPTU1Mjk2LHhlPUguY2hhckNv''@;'; + put 'put ''ZGVBdChYKyspLTU2MzIwKyh3ZTw8MTApLHJlLnB1c2goU3RyaW5nLmZyb21DaGFyQ29kZSgyNDArKHhlPj4xOCY3KSkpLHJlLnB1c2goU3RyaW5nLmZyb21DaGFyQ29kZSgxNDQrKHhlPj4xMiY2MykpKSxyZS5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUoMTI4Kyh4ZT4+NiY2MykpKSxyZS5w''@;'; + put 'put ''dXNoKFN0cmluZy5mcm9tQ2hhckNvZGUoMTI4Kyg2MyZ4ZSkpKTticmVhaztkZWZhdWx0OnJlLnB1c2goU3RyaW5nLmZyb21DaGFyQ29kZSgyMjQrKHdlPj4xMikpKSxyZS5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUoMTI4Kyh3ZT4+NiY2MykpKSxyZS5wdXNoKFN0cmluZy5mcm9tQ2hhckNv''@;'; + put 'put ''ZGUoMTI4Kyg2MyZ3ZSkpKX1yZXR1cm4gcmUuam9pbigiIil9O2lmKEllKXt2YXIgcW89ZnVuY3Rpb24ocmUpe3ZhciB3ZSx4ZSxZZSxYPUJ1ZmZlci5hbGxvYygyKnJlLmxlbmd0aCksRmU9MSxaZT0wLGplPTA7Zm9yKHhlPTA7eGU8cmUubGVuZ3RoO3hlKz1GZSlGZT0xLChZZT1yZS5jaGFy''@;'; + put 'put ''Q29kZUF0KHhlKSk8MTI4P3dlPVllOlllPDIyND8od2U9NjQqKDMxJlllKSsoNjMmcmUuY2hhckNvZGVBdCh4ZSsxKSksRmU9Mik6WWU8MjQwPyh3ZT00MDk2KigxNSZZZSkrNjQqKDYzJnJlLmNoYXJDb2RlQXQoeGUrMSkpKyg2MyZyZS5jaGFyQ29kZUF0KHhlKzIpKSxGZT0zKTooRmU9NCx3''@;'; + put 'put ''ZT0yNjIxNDQqKDcmWWUpKzQwOTYqKDYzJnJlLmNoYXJDb2RlQXQoeGUrMSkpKzY0Kig2MyZyZS5jaGFyQ29kZUF0KHhlKzIpKSsoNjMmcmUuY2hhckNvZGVBdCh4ZSszKSksamU9NTUyOTYrKCh3ZS09NjU1MzYpPj4+MTAmMTAyMyksd2U9NTYzMjArKDEwMjMmd2UpKSwwIT09amUmJihYW1pl''@;'; + put 'put ''KytdPTI1NSZqZSxYW1plKytdPWplPj4+OCxqZT0wKSxYW1plKytdPXdlJTI1NixYW1plKytdPXdlPj4+ODtyZXR1cm4gWC5zbGljZSgwLFplKS50b1N0cmluZygidWNzMiIpfSxjYT0iZm9vIGJhciBiYXpceGUyXHg5OFx4ODNceGYwXHg5Zlx4OGRceGEzIjtXMChjYSk9PXFvKGNhKSYmKFcw''@;'; + put 'put ''PXFvKTt2YXIgbGw9ZnVuY3Rpb24ocmUpe3JldHVybiBUZShyZSwiYmluYXJ5IikudG9TdHJpbmcoInV0ZjgiKX07VzAoY2EpPT1sbChjYSkmJihXMD1sbCksRW89ZnVuY3Rpb24oSCl7cmV0dXJuIFRlKEgsInV0ZjgiKS50b1N0cmluZygiYmluYXJ5Iil9fXZhciBILFFpPShIPXt9LGZ1bmN0''@;'; + put 'put ''aW9uKFgsd2Upe3ZhciB4ZT1YKyJ8Iisod2V8fCIiKTtyZXR1cm4gSFt4ZV0/SFt4ZV06SFt4ZV09bmV3IFJlZ0V4cCgiPCg/Olxcdys6KT8iK1grJyg/OiB4bWw6c3BhY2U9InByZXNlcnZlIik/KD86W14+XSopPihbXFxzXFxTXSo/KTwvKD86XFx3KzopPycrWCsiPiIsd2V8fCIiKX0pLE1h''@;'; + put 'put ''PWZ1bmN0aW9uKCl7dmFyIEg9W1sibmJzcCIsIiAiXSxbIm1pZGRvdCIsIlx4YjciXSxbInF1b3QiLCciJ10sWyJhcG9zIiwiJyJdLFsiZ3QiLCI+Il0sWyJsdCIsIjwiXSxbImFtcCIsIiYiXV0ubWFwKGZ1bmN0aW9uKHJlKXtyZXR1cm5bbmV3IFJlZ0V4cCgiJiIrcmVbMF0rIjsiLCJpZyIp''@;'; + put 'put ''LHJlWzFdXX0pO3JldHVybiBmdW5jdGlvbihYKXtmb3IodmFyIHdlPVgucmVwbGFjZSgvXltcdFxuXHIgXSsvLCIiKS5yZXBsYWNlKC9bXHRcblxyIF0rJC8sIiIpLnJlcGxhY2UoL1tcdFxuXHIgXSsvZywiICIpLnJlcGxhY2UoLzxccypbYkJdW3JSXVxzKlwvPz4vZywiXG4iKS5yZXBsYWNl''@;'; + put 'put ''KC88W14+XSo+L2csIiIpLHhlPTA7eGU8SC5sZW5ndGg7Kyt4ZSl3ZT13ZS5yZXBsYWNlKEhbeGVdWzBdLEhbeGVdWzFdKTtyZXR1cm4gd2V9fSgpLG5sPWZ1bmN0aW9uKCl7dmFyIEg9e307cmV0dXJuIGZ1bmN0aW9uKFgpe3JldHVybiB2b2lkIDAhPT1IW1hdP0hbWF06SFtYXT1uZXcgUmVn''@;'; + put 'put ''RXhwKCI8KD86dnQ6KT8iK1grIj4oW1xcc1xcU10qPyk8Lyg/OnZ0Oik/IitYKyI+IiwiZyIpfX0oKSxnbD0vPFwvPyg/OnZ0Oik/dmFyaWFudD4vZyxBaT0vPCg/OnZ0OikoW14+XSopPihbXHNcU10qKTwvO2Z1bmN0aW9uIHZpKEgscmUpe3ZhciBYPWVuKEgpLHdlPUgubWF0Y2gobmwoWC5i''@;'; + put 'put ''YXNlVHlwZSkpfHxbXSx4ZT1bXTtpZih3ZS5sZW5ndGghPVguc2l6ZSl7aWYocmUuV1RGKXRocm93IG5ldyBFcnJvcigidW5leHBlY3RlZCB2ZWN0b3IgbGVuZ3RoICIrd2UubGVuZ3RoKyIgIT0gIitYLnNpemUpO3JldHVybiB4ZX1yZXR1cm4gd2UuZm9yRWFjaChmdW5jdGlvbihGZSl7dmFy''@;'; + put 'put ''IFplPUZlLnJlcGxhY2UoZ2wsIiIpLm1hdGNoKEFpKTtaZSYmeGUucHVzaCh7djpXMChaZVsyXSksdDpaZVsxXX0pfSkseGV9dmFyIGIwPS8oXlxzfFxzJHxcbikvO2Z1bmN0aW9uIHNhKEgscmUpe3JldHVybiI8IitIKyhyZS5tYXRjaChiMCk/JyB4bWw6c3BhY2U9InByZXNlcnZlIic6IiIp''@;'; + put 'put ''KyI+IityZSsiPC8iK0grIj4ifWZ1bmN0aW9uIHJsKEgpe3JldHVybiBvbihIKS5tYXAoZnVuY3Rpb24ocmUpe3JldHVybiIgIityZSsnPSInK0hbcmVdKyciJ30pLmpvaW4oIiIpfWZ1bmN0aW9uIF9pKEgscmUsWCl7cmV0dXJuIjwiK0grKG51bGwhPVg/cmwoWCk6IiIpKyhudWxsIT1yZT8o''@;'; + put 'put ''cmUubWF0Y2goYjApPycgeG1sOnNwYWNlPSJwcmVzZXJ2ZSInOiIiKSsiPiIrcmUrIjwvIitIOiIvIikrIj4ifWZ1bmN0aW9uIFUwKEgscmUpe3RyeXtyZXR1cm4gSC50b0lTT1N0cmluZygpLnJlcGxhY2UoL1wuXGQqLywiIil9Y2F0Y2goWCl7aWYocmUpdGhyb3cgWH1yZXR1cm4iIn12YXIg''@;'; + put 'put ''ZmksUjAsWDA9e2RjOiJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIsZGN0ZXJtczoiaHR0cDovL3B1cmwub3JnL2RjL3Rlcm1zLyIsZGNtaXR5cGU6Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS8iLG14OiJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL29mZmljZS9t''@;'; + put 'put ''YWMvZXhjZWwvMjAwOC9tYWluIixyOiJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzIixzanM6Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9wYWNrYWdlLzIwMDYvc2hlZXRqcy9jb3JlLXByb3BlcnRp''@;'; + put 'put ''ZXMiLHZ0OiJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9kb2NQcm9wc1ZUeXBlcyIseHNpOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIseHNkOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSIs''@;'; + put 'put ''bWFpbjpbImh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9zcHJlYWRzaGVldG1sLzIwMDYvbWFpbiIsImh0dHA6Ly9wdXJsLm9jbGMub3JnL29veG1sL3NwcmVhZHNoZWV0bWwvbWFpbiIsImh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vb2ZmaWNlL2V4Y2VsLzIwMDYvbWFp''@;'; + put 'put ''biIsImh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vb2ZmaWNlL2V4Y2VsLzIwMDYvMiJdfSx1YV9vPSJ1cm46c2NoZW1hcy1taWNyb3NvZnQtY29tOm9mZmljZTpvZmZpY2UiLHVhX3g9InVybjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOmV4Y2VsIix1YV9zcz0idXJuOnNjaGVt''@;'; + put 'put ''YXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6c3ByZWFkc2hlZXQiLHVhX3Y9InVybjpzY2hlbWFzLW1pY3Jvc29mdC1jb206dm1sIix2bj1mdW5jdGlvbihIKXtmb3IodmFyIHJlPVtdLHdlPTA7d2U8SFswXS5sZW5ndGg7Kyt3ZSlpZihIWzBdW3dlXSlmb3IodmFyIHhlPTAsRmU9SFswXVt3ZV0u''@;'; + put 'put ''bGVuZ3RoO3hlPEZlO3hlKz0xMDI0MClyZS5wdXNoLmFwcGx5KHJlLEhbMF1bd2VdLnNsaWNlKHhlLHhlKzEwMjQwKSk7cmV0dXJuIHJlfSxfMD12bixnYz1mdW5jdGlvbihILHJlLFgpe2Zvcih2YXIgd2U9W10seGU9cmU7eGU8WDt4ZSs9Mil3ZS5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUo''@;'; + put 'put ''QnMoSCx4ZSkpKTtyZXR1cm4gd2Uuam9pbigiIikucmVwbGFjZShULCIiKX0sZ2Q9Z2MsQjE9ZnVuY3Rpb24oSCxyZSxYKXtmb3IodmFyIHdlPVtdLHhlPXJlO3hlPHJlK1g7Kyt4ZSl3ZS5wdXNoKCgiMCIrSFt4ZV0udG9TdHJpbmcoMTYpKS5zbGljZSgtMikpO3JldHVybiB3ZS5qb2luKCIi''@;'; + put 'put ''KX0sYXU9QjEsUDE9ZnVuY3Rpb24oSCxyZSxYKXtmb3IodmFyIHdlPVtdLHhlPXJlO3hlPFg7eGUrKyl3ZS5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUoVGkoSCx4ZSkpKTtyZXR1cm4gd2Uuam9pbigiIil9LG1jPVAxLHgyPWZ1bmN0aW9uKEgscmUpe3ZhciBYPVlsKEgscmUpO3JldHVybiBY''@;'; + put 'put ''PjA/UDEoSCxyZSs0LHJlKzQrWC0xKToiIn0sUGw9eDIsZDM9ZnVuY3Rpb24oSCxyZSl7dmFyIFg9WWwoSCxyZSk7cmV0dXJuIFg+MD9QMShILHJlKzQscmUrNCtYLTEpOiIifSxRMj1kMyxzMT1mdW5jdGlvbihILHJlKXt2YXIgWD0yKllsKEgscmUpO3JldHVybiBYPjA/UDEoSCxyZSs0LHJl''@;'; + put 'put ''KzQrWC0xKToiIn0sWjA9czE7Zmk9UjA9ZnVuY3Rpb24ocmUsWCl7dmFyIHdlPVlsKHJlLFgpO3JldHVybiB3ZT4wP2djKHJlLFgrNCxYKzQrd2UpOiIifTt2YXIgaHMsbjIsbW89ZnVuY3Rpb24oSCxyZSl7dmFyIFg9WWwoSCxyZSk7cmV0dXJuIFg+MD9QMShILHJlKzQscmUrNCtYKToiIn0s''@;'; + put 'put ''cnM9bW87aHM9bjI9ZnVuY3Rpb24oSCxyZSl7cmV0dXJuIGZ1bmN0aW9uIGowKEgscmUpe2Zvcih2YXIgWD0xLTIqKEhbcmUrN10+Pj43KSx3ZT0oKDEyNyZIW3JlKzddKTw8NCkrKEhbcmUrNl0+Pj40JjE1KSx4ZT0xNSZIW3JlKzZdLEZlPTU7RmU+PTA7LS1GZSl4ZT0yNTYqeGUrSFtyZStG''@;'; + put 'put ''ZV07cmV0dXJuIDIwNDc9PXdlPzA9PXhlP1gqKDEvMCk6TmFOOigwPT13ZT93ZT0tMTAyMjood2UtPTEwMjMseGUrPU1hdGgucG93KDIsNTIpKSxYKk1hdGgucG93KDIsd2UtNTIpKnhlKX0oSCxyZSl9O3ZhciBUMj1mdW5jdGlvbihyZSl7cmV0dXJuIEFycmF5LmlzQXJyYXkocmUpfTtJZSYm''@;'; + put 'put ''KGdjPWZ1bmN0aW9uKEgscmUsWCl7cmV0dXJuIEJ1ZmZlci5pc0J1ZmZlcihIKT9ILnRvU3RyaW5nKCJ1dGYxNmxlIixyZSxYKS5yZXBsYWNlKFQsIiIpOmdkKEgscmUsWCl9LEIxPWZ1bmN0aW9uKEgscmUsWCl7cmV0dXJuIEJ1ZmZlci5pc0J1ZmZlcihIKT9ILnRvU3RyaW5nKCJoZXgiLHJl''@;'; + put 'put ''LHJlK1gpOmF1KEgscmUsWCl9LHgyPWZ1bmN0aW9uKHJlLFgpe2lmKCFCdWZmZXIuaXNCdWZmZXIocmUpKXJldHVybiBQbChyZSxYKTt2YXIgd2U9cmUucmVhZFVJbnQzMkxFKFgpO3JldHVybiB3ZT4wP3JlLnRvU3RyaW5nKCJ1dGY4IixYKzQsWCs0K3dlLTEpOiIifSxkMz1mdW5jdGlvbihy''@;'; + put 'put ''ZSxYKXtpZighQnVmZmVyLmlzQnVmZmVyKHJlKSlyZXR1cm4gUTIocmUsWCk7dmFyIHdlPXJlLnJlYWRVSW50MzJMRShYKTtyZXR1cm4gd2U+MD9yZS50b1N0cmluZygidXRmOCIsWCs0LFgrNCt3ZS0xKToiIn0sczE9ZnVuY3Rpb24ocmUsWCl7aWYoIUJ1ZmZlci5pc0J1ZmZlcihyZSkpcmV0''@;'; + put 'put ''dXJuIFowKHJlLFgpO3ZhciB3ZT0yKnJlLnJlYWRVSW50MzJMRShYKTtyZXR1cm4gcmUudG9TdHJpbmcoInV0ZjE2bGUiLFgrNCxYKzQrd2UtMSl9LGZpPWZ1bmN0aW9uKHJlLFgpe2lmKCFCdWZmZXIuaXNCdWZmZXIocmUpKXJldHVybiBSMChyZSxYKTt2YXIgd2U9cmUucmVhZFVJbnQzMkxF''@;'; + put 'put ''KFgpO3JldHVybiByZS50b1N0cmluZygidXRmMTZsZSIsWCs0LFgrNCt3ZSl9LG1vPWZ1bmN0aW9uKHJlLFgpe2lmKCFCdWZmZXIuaXNCdWZmZXIocmUpKXJldHVybiBycyhyZSxYKTt2YXIgd2U9cmUucmVhZFVJbnQzMkxFKFgpO3JldHVybiByZS50b1N0cmluZygidXRmOCIsWCs0LFgrNCt3''@;'; + put 'put ''ZSl9LFAxPWZ1bmN0aW9uKHJlLFgsd2Upe3JldHVybiBCdWZmZXIuaXNCdWZmZXIocmUpP3JlLnRvU3RyaW5nKCJ1dGY4IixYLHdlKTptYyhyZSxYLHdlKX0sdm49ZnVuY3Rpb24oSCl7cmV0dXJuIEhbMF0ubGVuZ3RoPjAmJkJ1ZmZlci5pc0J1ZmZlcihIWzBdWzBdKT9CdWZmZXIuY29uY2F0''@;'; + put 'put ''KEhbMF0pOl8wKEgpfSxWPWZ1bmN0aW9uKEgpe3JldHVybiBCdWZmZXIuaXNCdWZmZXIoSFswXSk/QnVmZmVyLmNvbmNhdChIKTpbXS5jb25jYXQuYXBwbHkoW10sSCl9LGhzPWZ1bmN0aW9uKHJlLFgpe3JldHVybiBCdWZmZXIuaXNCdWZmZXIocmUpP3JlLnJlYWREb3VibGVMRShYKTpuMihy''@;'; + put 'put ''ZSxYKX0sVDI9ZnVuY3Rpb24ocmUpe3JldHVybiBCdWZmZXIuaXNCdWZmZXIocmUpfHxBcnJheS5pc0FycmF5KHJlKX0pLCJ1bmRlZmluZWQiIT10eXBlb2YgY3B0YWJsZSYmKGdjPWZ1bmN0aW9uKEgscmUsWCl7cmV0dXJuIGNwdGFibGUudXRpbHMuZGVjb2RlKDEyMDAsSC5zbGljZShyZSxY''@;'; + put 'put ''KSkucmVwbGFjZShULCIiKX0sUDE9ZnVuY3Rpb24oSCxyZSxYKXtyZXR1cm4gY3B0YWJsZS51dGlscy5kZWNvZGUoNjUwMDEsSC5zbGljZShyZSxYKSl9LHgyPWZ1bmN0aW9uKEgscmUpe3ZhciBYPVlsKEgscmUpO3JldHVybiBYPjA/Y3B0YWJsZS51dGlscy5kZWNvZGUoWixILnNsaWNlKHJl''@;'; + put 'put ''KzQscmUrNCtYLTEpKToiIn0sZDM9ZnVuY3Rpb24oSCxyZSl7dmFyIFg9WWwoSCxyZSk7cmV0dXJuIFg+MD9jcHRhYmxlLnV0aWxzLmRlY29kZShRLEguc2xpY2UocmUrNCxyZSs0K1gtMSkpOiIifSxzMT1mdW5jdGlvbihILHJlKXt2YXIgWD0yKllsKEgscmUpO3JldHVybiBYPjA/Y3B0YWJs''@;'; + put 'put ''ZS51dGlscy5kZWNvZGUoMTIwMCxILnNsaWNlKHJlKzQscmUrNCtYLTEpKToiIn0sZmk9ZnVuY3Rpb24oSCxyZSl7dmFyIFg9WWwoSCxyZSk7cmV0dXJuIFg+MD9jcHRhYmxlLnV0aWxzLmRlY29kZSgxMjAwLEguc2xpY2UocmUrNCxyZSs0K1gpKToiIn0sbW89ZnVuY3Rpb24oSCxyZSl7dmFy''@;'; + put 'put ''IFg9WWwoSCxyZSk7cmV0dXJuIFg+MD9jcHRhYmxlLnV0aWxzLmRlY29kZSg2NTAwMSxILnNsaWNlKHJlKzQscmUrNCtYKSk6IiJ9KTt2YXIgVGk9ZnVuY3Rpb24oSCxyZSl7cmV0dXJuIEhbcmVdfSxCcz1mdW5jdGlvbihILHJlKXtyZXR1cm4gMjU2KkhbcmUrMV0rSFtyZV19LE5mPWZ1bmN0''@;'; + put 'put ''aW9uKEgscmUpe3ZhciBYPTI1NipIW3JlKzFdK0hbcmVdO3JldHVybiBYPDMyNzY4P1g6LTEqKDY1NTM1LVgrMSl9LFlsPWZ1bmN0aW9uKEgscmUpe3JldHVybiBIW3JlKzNdKigxPDwyNCkrKEhbcmUrMl08PDE2KSsoSFtyZSsxXTw8OCkrSFtyZV19LE5jPWZ1bmN0aW9uKEgscmUpe3JldHVy''@;'; + put 'put ''biBIW3JlKzNdPDwyNHxIW3JlKzJdPDwxNnxIW3JlKzFdPDw4fEhbcmVdfSxjbz1mdW5jdGlvbihILHJlKXtyZXR1cm4gSFtyZV08PDI0fEhbcmUrMV08PDE2fEhbcmUrMl08PDh8SFtyZSszXX07ZnVuY3Rpb24gQzQoSCxyZSl7dmFyIHdlLHhlLFplLGplLFllLE10LFg9IiIsRmU9W107c3dp''@;'; + put 'put ''dGNoKHJlKXtjYXNlImRiY3MiOmlmKE10PXRoaXMubCxJZSYmQnVmZmVyLmlzQnVmZmVyKHRoaXMpKVg9dGhpcy5zbGljZSh0aGlzLmwsdGhpcy5sKzIqSCkudG9TdHJpbmcoInV0ZjE2bGUiKTtlbHNlIGZvcihZZT0wO1llPEg7KytZZSlYKz1TdHJpbmcuZnJvbUNoYXJDb2RlKEJzKHRoaXMs''@;'; + put 'put ''TXQpKSxNdCs9MjtIKj0yO2JyZWFrO2Nhc2UidXRmOCI6WD1QMSh0aGlzLHRoaXMubCx0aGlzLmwrSCk7YnJlYWs7Y2FzZSJ1dGYxNmxlIjpYPWdjKHRoaXMsdGhpcy5sLHRoaXMubCsoSCo9MikpO2JyZWFrO2Nhc2Uid3N0ciI6aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBjcHRhYmxlKXJldHVy''@;'; + put 'put ''biBDNC5jYWxsKHRoaXMsSCwiZGJjcyIpO1g9Y3B0YWJsZS51dGlscy5kZWNvZGUoUSx0aGlzLnNsaWNlKHRoaXMubCx0aGlzLmwrMipIKSksSCo9MjticmVhaztjYXNlImxwc3RyLWFuc2kiOlg9eDIodGhpcyx0aGlzLmwpLEg9NCtZbCh0aGlzLHRoaXMubCk7YnJlYWs7Y2FzZSJscHN0ci1j''@;'; + put 'put ''cCI6WD1kMyh0aGlzLHRoaXMubCksSD00K1lsKHRoaXMsdGhpcy5sKTticmVhaztjYXNlImxwd3N0ciI6WD1zMSh0aGlzLHRoaXMubCksSD00KzIqWWwodGhpcyx0aGlzLmwpO2JyZWFrO2Nhc2UibHBwNCI6SD00K1lsKHRoaXMsdGhpcy5sKSxYPWZpKHRoaXMsdGhpcy5sKSwyJkgmJihIKz0y''@;'; + put 'put ''KTticmVhaztjYXNlIjhscHA0IjpIPTQrWWwodGhpcyx0aGlzLmwpLFg9bW8odGhpcyx0aGlzLmwpLDMmSCYmKEgrPTQtKDMmSCkpO2JyZWFrO2Nhc2UiY3N0ciI6Zm9yKEg9MCxYPSIiOzAhPT0oWmU9VGkodGhpcyx0aGlzLmwrSCsrKSk7KUZlLnB1c2goZGUoWmUpKTtYPUZlLmpvaW4oIiIp''@;'; + put 'put ''O2JyZWFrO2Nhc2UiX3dzdHIiOmZvcihIPTAsWD0iIjswIT09KFplPUJzKHRoaXMsdGhpcy5sK0gpKTspRmUucHVzaChkZShaZSkpLEgrPTI7SCs9MixYPUZlLmpvaW4oIiIpO2JyZWFrO2Nhc2UiZGJjcy1jb250Ijpmb3IoWD0iIixNdD10aGlzLmwsWWU9MDtZZTxIOysrWWUpe2lmKHRoaXMu''@;'; + put 'put ''bGVucyYmLTEhPT10aGlzLmxlbnMuaW5kZXhPZihNdCkpcmV0dXJuIFplPVRpKHRoaXMsTXQpLHRoaXMubD1NdCsxLGplPUM0LmNhbGwodGhpcyxILVllLFplPyJkYmNzLWNvbnQiOiJzYmNzLWNvbnQiKSxGZS5qb2luKCIiKStqZTtGZS5wdXNoKGRlKEJzKHRoaXMsTXQpKSksTXQrPTJ9WD1G''@;'; + put 'put ''ZS5qb2luKCIiKSxIKj0yO2JyZWFrO2Nhc2UiY3BzdHIiOmlmKCJ1bmRlZmluZWQiIT10eXBlb2YgY3B0YWJsZSl7WD1jcHRhYmxlLnV0aWxzLmRlY29kZShRLHRoaXMuc2xpY2UodGhpcy5sLHRoaXMubCtIKSk7YnJlYWt9Y2FzZSJzYmNzLWNvbnQiOmZvcihYPSIiLE10PXRoaXMubCxZZT0w''@;'; + put 'put ''O1llIT1IOysrWWUpe2lmKHRoaXMubGVucyYmLTEhPT10aGlzLmxlbnMuaW5kZXhPZihNdCkpcmV0dXJuIFplPVRpKHRoaXMsTXQpLHRoaXMubD1NdCsxLGplPUM0LmNhbGwodGhpcyxILVllLFplPyJkYmNzLWNvbnQiOiJzYmNzLWNvbnQiKSxGZS5qb2luKCIiKStqZTtGZS5wdXNoKGRlKFRp''@;'; + put 'put ''KHRoaXMsTXQpKSksTXQrPTF9WD1GZS5qb2luKCIiKTticmVhaztkZWZhdWx0OnN3aXRjaChIKXtjYXNlIDE6cmV0dXJuIHdlPVRpKHRoaXMsdGhpcy5sKSx0aGlzLmwrKyx3ZTtjYXNlIDI6cmV0dXJuIHdlPSgiaSI9PT1yZT9OZjpCcykodGhpcyx0aGlzLmwpLHRoaXMubCs9Mix3ZTtjYXNl''@;'; + put 'put ''IDQ6Y2FzZS00OnJldHVybiJpIj09PXJlfHwwPT0oMTI4JnRoaXNbdGhpcy5sKzNdKT8od2U9KEg+MD9OYzpjbykodGhpcyx0aGlzLmwpLHRoaXMubCs9NCx3ZSk6KHhlPVlsKHRoaXMsdGhpcy5sKSx0aGlzLmwrPTQseGUpO2Nhc2UgODpjYXNlLTg6aWYoImYiPT09cmUpcmV0dXJuIHhlPTg9''@;'; + put 'put ''PUg/aHModGhpcyx0aGlzLmwpOmhzKFt0aGlzW3RoaXMubCs3XSx0aGlzW3RoaXMubCs2XSx0aGlzW3RoaXMubCs1XSx0aGlzW3RoaXMubCs0XSx0aGlzW3RoaXMubCszXSx0aGlzW3RoaXMubCsyXSx0aGlzW3RoaXMubCsxXSx0aGlzW3RoaXMubCswXV0sMCksdGhpcy5sKz04LHhlO0g9ODtj''@;'; + put 'put ''YXNlIDE2Olg9QjEodGhpcyx0aGlzLmwsSCl9fXJldHVybiB0aGlzLmwrPUgsWH12YXIgVXM9ZnVuY3Rpb24oSCxyZSxYKXtIW1hdPTI1NSZyZSxIW1grMV09cmU+Pj44JjI1NX07ZnVuY3Rpb24gbXMoSCxyZSxYKXt2YXIgd2U9MCx4ZT0wO2lmKCJkYmNzIj09PVgpe2Zvcih4ZT0wO3hlIT1y''@;'; + put 'put ''ZS5sZW5ndGg7Kyt4ZSlVcyh0aGlzLHJlLmNoYXJDb2RlQXQoeGUpLHRoaXMubCsyKnhlKTt3ZT0yKnJlLmxlbmd0aH1lbHNlIGlmKCJzYmNzIj09PVgpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgY3B0YWJsZSYmODc0PT1aKWZvcih4ZT0wO3hlIT1yZS5sZW5ndGg7Kyt4ZSl7dmFyIEZlPWNw''@;'; + put 'put ''dGFibGUudXRpbHMuZW5jb2RlKFoscmUuY2hhckF0KHhlKSk7dGhpc1t0aGlzLmwreGVdPUZlWzBdfWVsc2UgZm9yKHJlPXJlLnJlcGxhY2UoL1teXHgwMC1ceDdGXS9nLCJfIikseGU9MDt4ZSE9cmUubGVuZ3RoOysreGUpdGhpc1t0aGlzLmwreGVdPTI1NSZyZS5jaGFyQ29kZUF0KHhlKTt3''@;'; + put 'put ''ZT1yZS5sZW5ndGh9ZWxzZXtpZigiaGV4Ij09PVgpe2Zvcig7eGU8SDsrK3hlKXRoaXNbdGhpcy5sKytdPXBhcnNlSW50KHJlLnNsaWNlKDIqeGUsMip4ZSsyKSwxNil8fDA7cmV0dXJuIHRoaXN9aWYoInV0ZjE2bGUiPT09WCl7dmFyIFplPU1hdGgubWluKHRoaXMubCtILHRoaXMubGVuZ3Ro''@;'; + put 'put ''KTtmb3IoeGU9MDt4ZTxNYXRoLm1pbihyZS5sZW5ndGgsSCk7Kyt4ZSl7dmFyIGplPXJlLmNoYXJDb2RlQXQoeGUpO3RoaXNbdGhpcy5sKytdPTI1NSZqZSx0aGlzW3RoaXMubCsrXT1qZT4+OH1mb3IoO3RoaXMubDxaZTspdGhpc1t0aGlzLmwrK109MDtyZXR1cm4gdGhpc31zd2l0Y2goSCl7''@;'; + put 'put ''Y2FzZSAxOndlPTEsdGhpc1t0aGlzLmxdPTI1NSZyZTticmVhaztjYXNlIDI6d2U9Mix0aGlzW3RoaXMubF09MjU1JnJlLHRoaXNbdGhpcy5sKzFdPTI1NSYocmU+Pj49OCk7YnJlYWs7Y2FzZSAzOndlPTMsdGhpc1t0aGlzLmxdPTI1NSZyZSx0aGlzW3RoaXMubCsxXT0yNTUmKHJlPj4+PTgp''@;'; + put 'put ''LHRoaXNbdGhpcy5sKzJdPTI1NSYocmU+Pj49OCk7YnJlYWs7Y2FzZSA0OndlPTQsZnVuY3Rpb24oSCxyZSxYKXtIW1hdPTI1NSZyZSxIW1grMV09cmU+Pj44JjI1NSxIW1grMl09cmU+Pj4xNiYyNTUsSFtYKzNdPXJlPj4+MjQmMjU1fSh0aGlzLHJlLHRoaXMubCk7YnJlYWs7Y2FzZSA4Omlm''@;'; + put 'put ''KHdlPTgsImYiPT09WCl7IWZ1bmN0aW9uIEJsKEgscmUsWCl7dmFyIHdlPShyZTwwfHwxL3JlPT0tMS8wPzE6MCk8PDcseGU9MCxGZT0wLFplPXdlPy1yZTpyZTtpc0Zpbml0ZShaZSk/MD09WmU/eGU9RmU9MDooeGU9TWF0aC5mbG9vcihNYXRoLmxvZyhaZSkvTWF0aC5MTjIpLEZlPVplKk1h''@;'; + put 'put ''dGgucG93KDIsNTIteGUpLHhlPD0tMTAyMyYmKCFpc0Zpbml0ZShGZSl8fEZlPE1hdGgucG93KDIsNTIpKT94ZT0tMTAyMjooRmUtPU1hdGgucG93KDIsNTIpLHhlKz0xMDIzKSk6KHhlPTIwNDcsRmU9aXNOYU4ocmUpPzI2OTg1OjApO2Zvcih2YXIgamU9MDtqZTw9NTsrK2plLEZlLz0yNTYp''@;'; + put 'put ''SFtYK2plXT0yNTUmRmU7SFtYKzZdPSgxNSZ4ZSk8PDR8MTUmRmUsSFtYKzddPXhlPj40fHdlfSh0aGlzLHJlLHRoaXMubCk7YnJlYWt9Y2FzZSAxNjpicmVhaztjYXNlLTQ6d2U9NCxmdW5jdGlvbihILHJlLFgpe0hbWF09MjU1JnJlLEhbWCsxXT1yZT4+OCYyNTUsSFtYKzJdPXJlPj4xNiYy''@;'; + put 'put ''NTUsSFtYKzNdPXJlPj4yNCYyNTV9KHRoaXMscmUsdGhpcy5sKX19cmV0dXJuIHRoaXMubCs9d2UsdGhpc31mdW5jdGlvbiBGMShILHJlKXt2YXIgWD1CMSh0aGlzLHRoaXMubCxILmxlbmd0aD4+MSk7aWYoWCE9PUgpdGhyb3cgbmV3IEVycm9yKHJlKyJFeHBlY3RlZCAiK0grIiBzYXcgIitY''@;'; + put 'put ''KTt0aGlzLmwrPUgubGVuZ3RoPj4xfWZ1bmN0aW9uIEtsKEgscmUpe0gubD1yZSxILnJlYWRfc2hpZnQ9QzQsSC5jaGs9RjEsSC53cml0ZV9zaGlmdD1tc31mdW5jdGlvbiBfcyhILHJlKXtILmwrPXJlfWZ1bmN0aW9uIFJpKEgpe3ZhciByZT1oZShIKTtyZXR1cm4gS2wocmUsMCkscmV9ZnVu''@;'; + put 'put ''Y3Rpb24gSDEoSCxyZSxYKXtpZihIKXt2YXIgd2UseGUsRmU7S2woSCxILmx8fDApO2Zvcih2YXIgWmU9SC5sZW5ndGgsamU9MCxZZT0wO0gubDxaZTspezEyOCYoamU9SC5yZWFkX3NoaWZ0KDEpKSYmKGplPSgxMjcmamUpKygoMTI3JkgucmVhZF9zaGlmdCgxKSk8PDcpKTt2YXIgTXQ9eDVb''@;'; + put 'put ''amVdfHx4NVs2NTUzNV07Zm9yKEZlPTEyNyYod2U9SC5yZWFkX3NoaWZ0KDEpKSx4ZT0xO3hlPDQmJjEyOCZ3ZTsrK3hlKUZlKz0oMTI3Jih3ZT1ILnJlYWRfc2hpZnQoMSkpKTw8Nyp4ZTtZZT1ILmwrRmU7dmFyIHh0PShNdC5mfHxfcykoSCxGZSxYKTtpZihILmw9WWUscmUoeHQsTXQubixq''@;'; + put 'put ''ZSkpcmV0dXJufX19ZnVuY3Rpb24gSjIoKXt2YXIgSD1bXSxyZT1JZT8yNTY6MjA0OCxYPWZ1bmN0aW9uKE10KXt2YXIgeHQ9UmkoTXQpO3JldHVybiBLbCh4dCwwKSx4dH0sd2U9WChyZSkseGU9ZnVuY3Rpb24oKXshd2V8fCh3ZS5sZW5ndGg+d2UubCYmKCh3ZT13ZS5zbGljZSgwLHdlLmwp''@;'; + put 'put ''KS5sPXdlLmxlbmd0aCksd2UubGVuZ3RoPjAmJkgucHVzaCh3ZSksd2U9bnVsbCl9LEZlPWZ1bmN0aW9uKE10KXtyZXR1cm4gd2UmJk10PHdlLmxlbmd0aC13ZS5sP3dlOih4ZSgpLHdlPVgoTWF0aC5tYXgoTXQrMSxyZSkpKX07cmV0dXJue25leHQ6RmUscHVzaDpmdW5jdGlvbihNdCl7eGUo''@;'; + put 'put ''KSxudWxsPT0od2U9TXQpLmwmJih3ZS5sPXdlLmxlbmd0aCksRmUocmUpfSxlbmQ6ZnVuY3Rpb24oKXtyZXR1cm4geGUoKSx2bihbSF0pfSxfYnVmczpIfX1mdW5jdGlvbiBDMChILHJlLFgsd2Upe3ZhciBGZSx4ZT0rbFRbcmVdO2lmKCFpc05hTih4ZSkpe3dlfHwod2U9eDVbeGVdLnB8fChY''@;'; + put 'put ''fHxbXSkubGVuZ3RofHwwKSxGZT0xKyh4ZT49MTI4PzE6MCkrMSx3ZT49MTI4JiYrK0ZlLHdlPj0xNjM4NCYmKytGZSx3ZT49MjA5NzE1MiYmKytGZTt2YXIgWmU9SC5uZXh0KEZlKTt4ZTw9MTI3P1plLndyaXRlX3NoaWZ0KDEseGUpOihaZS53cml0ZV9zaGlmdCgxLDEyOCsoMTI3JnhlKSks''@;'; + put 'put ''WmUud3JpdGVfc2hpZnQoMSx4ZT4+NykpO2Zvcih2YXIgamU9MDs0IT1qZTsrK2plKXtpZighKHdlPj0xMjgpKXtaZS53cml0ZV9zaGlmdCgxLHdlKTticmVha31aZS53cml0ZV9zaGlmdCgxLDEyOCsoMTI3JndlKSksd2U+Pj03fXdlPjAmJlQyKFgpJiZILnB1c2goWCl9fWZ1bmN0aW9uIHUx''@;'; + put 'put ''KEgscmUsWCl7dmFyIHdlPWxuKEgpO2lmKHJlLnM/KHdlLmNSZWwmJih3ZS5jKz1yZS5zLmMpLHdlLnJSZWwmJih3ZS5yKz1yZS5zLnIpKTood2UuY1JlbCYmKHdlLmMrPXJlLmMpLHdlLnJSZWwmJih3ZS5yKz1yZS5yKSksIVh8fFguYmlmZjwxMil7Zm9yKDt3ZS5jPj0yNTY7KXdlLmMtPTI1''@;'; + put 'put ''Njtmb3IoO3dlLnI+PTY1NTM2Oyl3ZS5yLT02NTUzNn1yZXR1cm4gd2V9ZnVuY3Rpb24gbWwoSCxyZSxYKXt2YXIgd2U9bG4oSCk7cmV0dXJuIHdlLnM9dTEod2UucyxyZS5zLFgpLHdlLmU9dTEod2UuZSxyZS5zLFgpLHdlfWZ1bmN0aW9uIHAzKEgscmUpe2lmKEguY1JlbCYmSC5jPDApZm9y''@;'; + put 'put ''KEg9bG4oSCk7SC5jPDA7KUguYys9cmU+OD8xNjM4NDoyNTY7aWYoSC5yUmVsJiZILnI8MClmb3IoSD1sbihIKTtILnI8MDspSC5yKz1yZT44PzEwNDg1NzY6cmU+NT82NTUzNjoxNjM4NDtpZihILmNSZWwmJkguYz49KHJlPjg/MTYzODQ6MjU2KSlmb3IoSD1sbihIKTtILmM+PShyZT44PzE2''@;'; + put 'put ''Mzg0OjI1Nik7KUguYy09cmU+OD8xNjM4NDoyNTY7aWYoSC5yUmVsJiZILnI+PTEwNDg1NzYpZm9yKEg9bG4oSCk7SC5yPj0xMDQ4NTc2OylILnItPTEwNDg1NzY7dmFyIFg9WTAoSCk7cmV0dXJuIUguY1JlbCYmbnVsbCE9SC5jUmVsJiYoWD1mdW5jdGlvbiBqcChIKXtyZXR1cm4gSC5yZXBs''@;'; + put 'put ''YWNlKC9eKFtBLVpdKS8sIiQkJDEiKX0oWCkpLCFILnJSZWwmJm51bGwhPUguclJlbCYmKFg9ZnVuY3Rpb24gVXUoSCl7cmV0dXJuIEgucmVwbGFjZSgvKFtBLVpdfF4pKFxkKykkLywiJDEkJCQyIil9KFgpKSxYfWZ1bmN0aW9uIFl1KEgscmUpe3JldHVybiAwIT1ILnMucnx8SC5zLnJSZWx8''@;'; + put 'put ''fEguZS5yIT0ocmUuYmlmZj49MTI/MTA0ODU3NTpyZS5iaWZmPj04PzY1NTM2OjE2Mzg0KXx8SC5lLnJSZWw/MCE9SC5zLmN8fEgucy5jUmVsfHxILmUuYyE9KHJlLmJpZmY+PTEyPzE2MzgzOjI1NSl8fEguZS5jUmVsP3AzKEgucyxyZS5iaWZmKSsiOiIrcDMoSC5lLHJlLmJpZmYpOihILnMu''@;'; + put 'put ''clJlbD8iIjoiJCIpK1hhKEgucy5yKSsiOiIrKEguZS5yUmVsPyIiOiIkIikrWGEoSC5lLnIpOihILnMuY1JlbD8iIjoiJCIpK19hKEgucy5jKSsiOiIrKEguZS5jUmVsPyIiOiIkIikrX2EoSC5lLmMpfXZhciBzbz17fTtmdW5jdGlvbiBhcyhIKXtyZXR1cm4gcGFyc2VJbnQoZnVuY3Rpb24g''@;'; + put 'put ''QTEoSCl7cmV0dXJuIEgucmVwbGFjZSgvXCQoXGQrKSQvLCIkMSIpfShIKSwxMCktMX1mdW5jdGlvbiBYYShIKXtyZXR1cm4iIisoSCsxKX1mdW5jdGlvbiBtaChIKXtmb3IodmFyIHJlPWZ1bmN0aW9uIGs0KEgpe3JldHVybiBILnJlcGxhY2UoL15cJChbQS1aXSkvLCIkMSIpfShIKSxYPTAs''@;'; + put 'put ''d2U9MDt3ZSE9PXJlLmxlbmd0aDsrK3dlKVg9MjYqWCtyZS5jaGFyQ29kZUF0KHdlKS02NDtyZXR1cm4gWC0xfWZ1bmN0aW9uIF9hKEgpe2lmKEg8MCl0aHJvdyBuZXcgRXJyb3IoImludmFsaWQgY29sdW1uICIrSCk7dmFyIHJlPSIiO2ZvcigrK0g7SDtIPU1hdGguZmxvb3IoKEgtMSkvMjYp''@;'; + put 'put ''KXJlPVN0cmluZy5mcm9tQ2hhckNvZGUoKEgtMSklMjYrNjUpK3JlO3JldHVybiByZX1mdW5jdGlvbiB1bChIKXtmb3IodmFyIHJlPTAsWD0wLHdlPTA7d2U8SC5sZW5ndGg7Kyt3ZSl7dmFyIHhlPUguY2hhckNvZGVBdCh3ZSk7eGU+PTQ4JiZ4ZTw9NTc/cmU9MTAqcmUrKHhlLTQ4KTp4ZT49''@;'; + put 'put ''NjUmJnhlPD05MCYmKFg9MjYqWCsoeGUtNjQpKX1yZXR1cm57YzpYLTEscjpyZS0xfX1mdW5jdGlvbiBZMChIKXtmb3IodmFyIHJlPUguYysxLFg9IiI7cmU7cmU9KHJlLTEpLzI2fDApWD1TdHJpbmcuZnJvbUNoYXJDb2RlKChyZS0xKSUyNis2NSkrWDtyZXR1cm4gWCsoSC5yKzEpfWZ1bmN0''@;'; + put 'put ''aW9uIHZzKEgpe3ZhciByZT1ILmluZGV4T2YoIjoiKTtyZXR1cm4tMT09cmU/e3M6dWwoSCksZTp1bChIKX06e3M6dWwoSC5zbGljZSgwLHJlKSksZTp1bChILnNsaWNlKHJlKzEpKX19ZnVuY3Rpb24gZmEoSCxyZSl7cmV0dXJuIHZvaWQgMD09PXJlfHwibnVtYmVyIj09dHlwZW9mIHJlP2Zh''@;'; + put 'put ''KEgucyxILmUpOigic3RyaW5nIiE9dHlwZW9mIEgmJihIPVkwKEgpKSwic3RyaW5nIiE9dHlwZW9mIHJlJiYocmU9WTAocmUpKSxIPT1yZT9IOkgrIjoiK3JlKX1mdW5jdGlvbiBGbyhIKXt2YXIgcmU9SlNPTi5wYXJzZSgneyJzIjp7ImMiOjAsInIiOjB9LCJlIjp7ImMiOjAsInIiOjB9fScp''@;'; + put 'put ''LFg9MCx3ZT0wLHhlPTAsRmU9SC5sZW5ndGg7Zm9yKFg9MDt3ZTxGZSYmISgoeGU9SC5jaGFyQ29kZUF0KHdlKS02NCk8MXx8eGU+MjYpOysrd2UpWD0yNipYK3hlO2ZvcihyZS5zLmM9LS1YLFg9MDt3ZTxGZSYmISgoeGU9SC5jaGFyQ29kZUF0KHdlKS00OCk8MHx8eGU+OSk7Kyt3ZSlYPTEw''@;'; + put 'put ''KlgreGU7aWYocmUucy5yPS0tWCx3ZT09PUZlfHw1OD09PUguY2hhckNvZGVBdCgrK3dlKSlyZXR1cm4gcmUuZS5jPXJlLnMuYyxyZS5lLnI9cmUucy5yLHJlO2ZvcihYPTA7d2UhPUZlJiYhKCh4ZT1ILmNoYXJDb2RlQXQod2UpLTY0KTwxfHx4ZT4yNik7Kyt3ZSlYPTI2KlgreGU7Zm9yKHJl''@;'; + put 'put ''LmUuYz0tLVgsWD0wO3dlIT1GZSYmISgoeGU9SC5jaGFyQ29kZUF0KHdlKS00OCk8MHx8eGU+OSk7Kyt3ZSlYPTEwKlgreGU7cmV0dXJuIHJlLmUucj0tLVgscmV9ZnVuY3Rpb24gbWQoSCxyZSl7dmFyIFg9ImQiPT1ILnQmJnJlIGluc3RhbmNlb2YgRGF0ZTtpZihudWxsIT1ILnopdHJ5e3Jl''@;'; + put 'put ''dHVybiBILnc9Ri5mb3JtYXQoSC56LFg/ZnQocmUpOnJlKX1jYXRjaCh3ZSl7fXRyeXtyZXR1cm4gSC53PUYuZm9ybWF0KChILlhGfHx7fSkubnVtRm10SWR8fChYPzE0OjApLFg/ZnQocmUpOnJlKX1jYXRjaCh3ZSl7cmV0dXJuIiIrcmV9fWZ1bmN0aW9uIHkxKEgscmUsWCl7cmV0dXJuIG51''@;'; + put 'put ''bGw9PUh8fG51bGw9PUgudHx8InoiPT1ILnQ/IiI6dm9pZCAwIT09SC53P0gudzooImQiPT1ILnQmJiFILnomJlgmJlguZGF0ZU5GJiYoSC56PVguZGF0ZU5GKSwiZSI9PUgudD9OMVtILnZdfHxILnY6bWQoSCxudWxsPT1yZT9ILnY6cmUpKX1mdW5jdGlvbiB3MShILHJlKXt2YXIgWD1yZSYm''@;'; + put 'put ''cmUuc2hlZXQ/cmUuc2hlZXQ6IlNoZWV0MSIsd2U9e307cmV0dXJuIHdlW1hdPUgse1NoZWV0TmFtZXM6W1hdLFNoZWV0czp3ZX19ZnVuY3Rpb24gbGYoSCxyZSxYKXt2YXIgd2U9WHx8e30seGU9SD9BcnJheS5pc0FycmF5KEgpOndlLmRlbnNlLEZlPUh8fCh4ZT9bXTp7fSksWmU9MCxqZT0w''@;'; + put 'put ''O2lmKEZlJiZudWxsIT13ZS5vcmlnaW4pe2lmKCJudW1iZXIiPT10eXBlb2Ygd2Uub3JpZ2luKVplPXdlLm9yaWdpbjtlbHNle3ZhciBZZT0ic3RyaW5nIj09dHlwZW9mIHdlLm9yaWdpbj91bCh3ZS5vcmlnaW4pOndlLm9yaWdpbjtaZT1ZZS5yLGplPVllLmN9RmVbIiFyZWYiXXx8KEZlWyIh''@;'; + put 'put ''cmVmIl09IkExOkExIil9dmFyIE10PXtzOntjOjFlNyxyOjFlN30sZTp7YzowLHI6MH19O2lmKEZlWyIhcmVmIl0pe3ZhciB4dD1GbyhGZVsiIXJlZiJdKTtNdC5zLmM9eHQucy5jLE10LnMucj14dC5zLnIsTXQuZS5jPU1hdGgubWF4KE10LmUuYyx4dC5lLmMpLE10LmUucj1NYXRoLm1heChN''@;'; + put 'put ''dC5lLnIseHQuZS5yKSwtMT09WmUmJihNdC5lLnI9WmU9eHQuZS5yKzEpfWZvcih2YXIgUnQ9MDtSdCE9cmUubGVuZ3RoOysrUnQpaWYocmVbUnRdKXtpZighQXJyYXkuaXNBcnJheShyZVtSdF0pKXRocm93IG5ldyBFcnJvcigiYW9hX3RvX3NoZWV0IGV4cGVjdHMgYW4gYXJyYXkgb2YgYXJy''@;'; + put 'put ''YXlzIik7Zm9yKHZhciBVdD0wO1V0IT1yZVtSdF0ubGVuZ3RoOysrVXQpaWYodm9pZCAwIT09cmVbUnRdW1V0XSl7dmFyIG5uPXt2OnJlW1J0XVtVdF19LENuPVplK1J0LER0PWplK1V0O2lmKE10LnMucj5DbiYmKE10LnMucj1DbiksTXQucy5jPkR0JiYoTXQucy5jPUR0KSxNdC5lLnI8Q24m''@;'; + put 'put ''JihNdC5lLnI9Q24pLE10LmUuYzxEdCYmKE10LmUuYz1EdCksIXJlW1J0XVtVdF18fCJvYmplY3QiIT10eXBlb2YgcmVbUnRdW1V0XXx8QXJyYXkuaXNBcnJheShyZVtSdF1bVXRdKXx8cmVbUnRdW1V0XWluc3RhbmNlb2YgRGF0ZSlpZihBcnJheS5pc0FycmF5KG5uLnYpJiYobm4uZj1yZVtS''@;'; + put 'put ''dF1bVXRdWzFdLG5uLnY9bm4udlswXSksbnVsbD09PW5uLnYpaWYobm4uZilubi50PSJuIjtlbHNlIGlmKHdlLm51bGxFcnJvcilubi50PSJlIixubi52PTA7ZWxzZXtpZighd2Uuc2hlZXRTdHVicyljb250aW51ZTtubi50PSJ6In1lbHNlIm51bWJlciI9PXR5cGVvZiBubi52P25uLnQ9Im4i''@;'; + put 'put ''OiJib29sZWFuIj09dHlwZW9mIG5uLnY/bm4udD0iYiI6bm4udiBpbnN0YW5jZW9mIERhdGU/KG5uLno9d2UuZGF0ZU5GfHxGLl90YWJsZVsxNF0sd2UuY2VsbERhdGVzPyhubi50PSJkIixubi53PUYuZm9ybWF0KG5uLnosZnQobm4udikpKToobm4udD0ibiIsbm4udj1mdChubi52KSxubi53''@;'; + put 'put ''PUYuZm9ybWF0KG5uLnosbm4udikpKTpubi50PSJzIjtlbHNlIG5uPXJlW1J0XVtVdF07aWYobm4mJm5uLmgpdHJ5e25uLlI9dXMuaHRtbF90b19ycyhubi5oKSxubi52PSIiO2Zvcih2YXIgenQ9MDt6dDxubi5SLmxlbmd0aDsrK3p0KW5uLnYrPW5uLlJbenRdLnZ8fCIifWNhdGNoKFRuKXt9''@;'; + put 'put ''aWYoeGUpRmVbQ25dfHwoRmVbQ25dPVtdKSxGZVtDbl1bRHRdJiZGZVtDbl1bRHRdLnMmJihubi5zPUZlW0NuXVtEdF0ucyksRmVbQ25dW0R0XSYmRmVbQ25dW0R0XS56JiYobm4uej1GZVtDbl1bRHRdLnopLEZlW0NuXVtEdF09bm47ZWxzZXt2YXIgUG49WTAoe2M6RHQscjpDbn0pO0ZlW1Bu''@;'; + put 'put ''XSYmRmVbUG5dLnMmJihubi5zPUZlW1BuXS5zKSxGZVtQbl0mJkZlW1BuXS56JiYobm4uej1GZVtQbl0ueiksRmVbUG5dPW5ufX19cmV0dXJuIE10LnMuYzwxZTcmJihGZVsiIXJlZiJdPWZhKE10KSksRmV9ZnVuY3Rpb24gdmQoSCxyZSl7cmV0dXJuIGxmKG51bGwsSCxyZSl9ZnVuY3Rpb24g''@;'; + put 'put ''JGwoSCxyZSl7cmV0dXJuIHJlfHwocmU9UmkoNCkpLHJlLndyaXRlX3NoaWZ0KDQsSCkscmV9ZnVuY3Rpb24geHUoSCl7dmFyIHJlPUgucmVhZF9zaGlmdCg0KTtyZXR1cm4gMD09PXJlPyIiOkgucmVhZF9zaGlmdChyZSwiZGJjcyIpfWZ1bmN0aW9uIGx1KEgscmUpe3ZhciBYPSExO3JldHVy''@;'; + put 'put ''biBudWxsPT1yZSYmKFg9ITAscmU9UmkoNCsyKkgubGVuZ3RoKSkscmUud3JpdGVfc2hpZnQoNCxILmxlbmd0aCksSC5sZW5ndGg+MCYmcmUud3JpdGVfc2hpZnQoMCxILCJkYmNzIiksWD9yZS5zbGljZSgwLHJlLmwpOnJlfWZ1bmN0aW9uIHNmKEgpe3JldHVybntpY2g6SC5yZWFkX3NoaWZ0''@;'; + put 'put ''KDIpLGlmbnQ6SC5yZWFkX3NoaWZ0KDIpfX1mdW5jdGlvbiBDcyhILHJlKXt2YXIgWD1ILmwsd2U9SC5yZWFkX3NoaWZ0KDEpLHhlPXh1KEgpLEZlPVtdLFplPXt0OnhlLGg6eGV9O2lmKDAhPSgxJndlKSl7Zm9yKHZhciBqZT1ILnJlYWRfc2hpZnQoNCksWWU9MDtZZSE9amU7KytZZSlGZS5w''@;'; + put 'put ''dXNoKHNmKEgpKTtaZS5yPUZlfWVsc2UgWmUucj1be2ljaDowLGlmbnQ6MH1dO3JldHVybiBILmw9WCtyZSxaZX0hZnVuY3Rpb24oSCxyZSl7dmFyIFg7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBjcnlwdG9Ccm93c2VyaWZ5KVg9Y3J5cHRvQnJvd3NlcmlmeTtlbHNlIGlmKHZvaWQgMCE9PXJl''@;'; + put 'put ''KVg9cmU7ZWxzZSB0cnl7WD1MKDQxMzQ4KX1jYXRjaCh3ZSl7WD1udWxsfUgucmM0PWZ1bmN0aW9uKHdlLHhlKXt2YXIgRmU9bmV3IEFycmF5KDI1NiksWmU9MCxqZT0wLFllPTAsTXQ9MDtmb3IoamU9MDsyNTYhPWplOysramUpRmVbamVdPWplO2ZvcihqZT0wOzI1NiE9amU7KytqZSlZZT1Z''@;'; + put 'put ''ZStGZVtqZV0rd2VbamUld2UubGVuZ3RoXS5jaGFyQ29kZUF0KDApJjI1NSxNdD1GZVtqZV0sRmVbamVdPUZlW1llXSxGZVtZZV09TXQ7amU9WWU9MDt2YXIgeHQ9aGUoeGUubGVuZ3RoKTtmb3IoWmU9MDtaZSE9eGUubGVuZ3RoOysrWmUpTXQ9RmVbamU9amUrMSYyNTVdLEZlW2plXT1GZVtZ''@;'; + put 'put ''ZT0oWWUrRmVbamVdKSUyNTZdLEZlW1llXT1NdCx4dFtaZV09eGVbWmVdXkZlW0ZlW2plXStGZVtZZV0mMjU1XTtyZXR1cm4geHR9LEgubWQ1PWZ1bmN0aW9uKHdlKXtpZighWCl0aHJvdyBuZXcgRXJyb3IoIlVuc3VwcG9ydGVkIGNyeXB0byIpO3JldHVybiBYLmNyZWF0ZUhhc2goIm1kNSIp''@;'; + put 'put ''LnVwZGF0ZShCdWZmZXIuZnJvbSh3ZSkpLmRpZ2VzdCgiaGV4Iil9fShzbywidW5kZWZpbmVkIiE9dHlwZW9mIGNyeXB0bz9jcnlwdG86dm9pZCAwKTt2YXIgVmY9Q3M7ZnVuY3Rpb24gdmgoSCl7dmFyIHJlPUgucmVhZF9zaGlmdCg0KSxYPUgucmVhZF9zaGlmdCgyKTtyZXR1cm4gWCs9SC5y''@;'; + put 'put ''ZWFkX3NoaWZ0KDEpPDwxNixILmwrKyx7YzpyZSxpU3R5bGVSZWY6WH19ZnVuY3Rpb24gUzQoSCxyZSl7cmV0dXJuIG51bGw9PXJlJiYocmU9UmkoOCkpLHJlLndyaXRlX3NoaWZ0KC00LEguYykscmUud3JpdGVfc2hpZnQoMyxILmlTdHlsZVJlZnx8SC5zKSxyZS53cml0ZV9zaGlmdCgxLDAp''@;'; + put 'put ''LHJlfWZ1bmN0aW9uIE00KEgpe3ZhciByZT1ILnJlYWRfc2hpZnQoMik7cmV0dXJuIHJlKz1ILnJlYWRfc2hpZnQoMSk8PDE2LEgubCsrLHtjOi0xLGlTdHlsZVJlZjpyZX19ZnVuY3Rpb24gQWgoSCxyZSl7cmV0dXJuIG51bGw9PXJlJiYocmU9UmkoNCkpLHJlLndyaXRlX3NoaWZ0KDMsSC5p''@;'; + put 'put ''U3R5bGVSZWZ8fEgucykscmUud3JpdGVfc2hpZnQoMSwwKSxyZX12YXIgZWI9eHUsRU09bHU7ZnVuY3Rpb24geWgoSCl7dmFyIHJlPUgucmVhZF9zaGlmdCg0KTtyZXR1cm4gMD09PXJlfHw0Mjk0OTY3Mjk1PT09cmU/IiI6SC5yZWFkX3NoaWZ0KHJlLCJkYmNzIil9ZnVuY3Rpb24gWnAoSCxy''@;'; + put 'put ''ZSl7dmFyIFg9ITE7cmV0dXJuIG51bGw9PXJlJiYoWD0hMCxyZT1SaSgxMjcpKSxyZS53cml0ZV9zaGlmdCg0LEgubGVuZ3RoPjA/SC5sZW5ndGg6NDI5NDk2NzI5NSksSC5sZW5ndGg+MCYmcmUud3JpdGVfc2hpZnQoMCxILCJkYmNzIiksWD9yZS5zbGljZSgwLHJlLmwpOnJlfXZhciBhOT14''@;'; + put 'put ''dSxHZz15aCx6cD1acDtmdW5jdGlvbiBXZyhIKXt2YXIgcmU9SC5zbGljZShILmwsSC5sKzQpLFg9MSZyZVswXSx3ZT0yJnJlWzBdO0gubCs9NCxyZVswXSY9MjUyO3ZhciB4ZT0wPT09d2U/aHMoWzAsMCwwLDAscmVbMF0scmVbMV0scmVbMl0scmVbM11dLDApOk5jKHJlLDApPj4yO3JldHVy''@;'; + put 'put ''biBYP3hlLzEwMDp4ZX1mdW5jdGlvbiB4TShILHJlKXtudWxsPT1yZSYmKHJlPVJpKDQpKTt2YXIgWD0wLHdlPTAseGU9MTAwKkg7aWYoSD09KDB8SCkmJkg+PS0oMTw8MjkpJiZIPDE8PDI5P3dlPTE6eGU9PSgwfHhlKSYmeGU+PS0oMTw8MjkpJiZ4ZTwxPDwyOSYmKHdlPTEsWD0xKSwhd2Up''@;'; + put 'put ''dGhyb3cgbmV3IEVycm9yKCJ1bnN1cHBvcnRlZCBSa051bWJlciAiK0gpO3JlLndyaXRlX3NoaWZ0KC00LCgoWD94ZTpIKTw8MikrKFgrMikpfWZ1bmN0aW9uIGw5KEgpe3ZhciByZT17czp7fSxlOnt9fTtyZXR1cm4gcmUucy5yPUgucmVhZF9zaGlmdCg0KSxyZS5lLnI9SC5yZWFkX3NoaWZ0''@;'; + put 'put ''KDQpLHJlLnMuYz1ILnJlYWRfc2hpZnQoNCkscmUuZS5jPUgucmVhZF9zaGlmdCg0KSxyZX12YXIgd2g9bDksR3A9ZnVuY3Rpb24gWWcoSCxyZSl7cmV0dXJuIHJlfHwocmU9UmkoMTYpKSxyZS53cml0ZV9zaGlmdCg0LEgucy5yKSxyZS53cml0ZV9zaGlmdCg0LEguZS5yKSxyZS53cml0ZV9z''@;'; + put 'put ''aGlmdCg0LEgucy5jKSxyZS53cml0ZV9zaGlmdCg0LEguZS5jKSxyZX07ZnVuY3Rpb24gczkoSCl7Zm9yKHZhciByZT1ILnJlYWRfc2hpZnQoNCksWD1bXSx3ZT0wO3dlPHJlOysrd2Upe3ZhciB4ZT13aChIKTtYLnB1c2goZmEoeGUpKX1yZXR1cm4gWC5qb2luKCIsIil9ZnVuY3Rpb24gSTIo''@;'; + put 'put ''SCl7aWYoSC5sZW5ndGgtSC5sPDgpdGhyb3ciWExTIFhudW0gQnVmZmVyIHVuZGVyZmxvdyI7cmV0dXJuIEgucmVhZF9zaGlmdCg4LCJmIil9ZnVuY3Rpb24gdWYoSCxyZSl7cmV0dXJuKHJlfHxSaSg4KSkud3JpdGVfc2hpZnQoOCxILCJmIil9ZnVuY3Rpb24gVWcoSCl7dmFyIHJlPXt9LHdl''@;'; + put 'put ''PUgucmVhZF9zaGlmdCgxKT4+PjEseGU9SC5yZWFkX3NoaWZ0KDEpLEZlPUgucmVhZF9zaGlmdCgyLCJpIiksWmU9SC5yZWFkX3NoaWZ0KDEpLGplPUgucmVhZF9zaGlmdCgxKSxZZT1ILnJlYWRfc2hpZnQoMSk7c3dpdGNoKEgubCsrLHdlKXtjYXNlIDA6cmUuYXV0bz0xO2JyZWFrO2Nhc2Ug''@;'; + put 'put ''MTpyZS5pbmRleD14ZTt2YXIgTXQ9dXVbeGVdO010JiYocmUucmdiPWIzKE10KSk7YnJlYWs7Y2FzZSAyOnJlLnJnYj1iMyhbWmUsamUsWWVdKTticmVhaztjYXNlIDM6cmUudGhlbWU9eGV9cmV0dXJuIDAhPUZlJiYocmUudGludD1GZT4wP0ZlLzMyNzY3OkZlLzMyNzY4KSxyZX1mdW5jdGlv''@;'; + put 'put ''biBqZihILHJlKXtpZihyZXx8KHJlPVJpKDgpKSwhSHx8SC5hdXRvKXJldHVybiByZS53cml0ZV9zaGlmdCg0LDApLHJlLndyaXRlX3NoaWZ0KDQsMCkscmU7bnVsbCE9SC5pbmRleD8ocmUud3JpdGVfc2hpZnQoMSwyKSxyZS53cml0ZV9zaGlmdCgxLEguaW5kZXgpKTpudWxsIT1ILnRoZW1l''@;'; + put 'put ''PyhyZS53cml0ZV9zaGlmdCgxLDYpLHJlLndyaXRlX3NoaWZ0KDEsSC50aGVtZSkpOihyZS53cml0ZV9zaGlmdCgxLDUpLHJlLndyaXRlX3NoaWZ0KDEsMCkpO3ZhciBYPUgudGludHx8MDtpZihYPjA/WCo9MzI3Njc6WDwwJiYoWCo9MzI3NjgpLHJlLndyaXRlX3NoaWZ0KDIsWCksSC5yZ2Im''@;'; + put 'put ''Jm51bGw9PUgudGhlbWUpe3ZhciB3ZT1ILnJnYnx8IkZGRkZGRiI7Im51bWJlciI9PXR5cGVvZiB3ZSYmKHdlPSgiMDAwMDAwIit3ZS50b1N0cmluZygxNikpLnNsaWNlKC02KSkscmUud3JpdGVfc2hpZnQoMSxwYXJzZUludCh3ZS5zbGljZSgwLDIpLDE2KSkscmUud3JpdGVfc2hpZnQoMSxw''@;'; + put 'put ''YXJzZUludCh3ZS5zbGljZSgyLDQpLDE2KSkscmUud3JpdGVfc2hpZnQoMSxwYXJzZUludCh3ZS5zbGljZSg0LDYpLDE2KSkscmUud3JpdGVfc2hpZnQoMSwyNTUpfWVsc2UgcmUud3JpdGVfc2hpZnQoMiwwKSxyZS53cml0ZV9zaGlmdCgxLDApLHJlLndyaXRlX3NoaWZ0KDEsMCk7cmV0dXJu''@;'; + put 'put ''IHJlfWZ1bmN0aW9uIHRiKEgpe3ZhciByZT1ILnJlYWRfc2hpZnQoMSk7cmV0dXJuIEgubCsrLHtmQm9sZDoxJnJlLGZJdGFsaWM6MiZyZSxmVW5kZXJsaW5lOjQmcmUsZlN0cmlrZW91dDo4JnJlLGZPdXRsaW5lOjE2JnJlLGZTaGFkb3c6MzImcmUsZkNvbmRlbnNlOjY0JnJlLGZFeHRlbmQ6''@;'; + put 'put ''MTI4JnJlfX1mdW5jdGlvbiBjOShILHJlKXt2YXIgd2U9SC5yZWFkX3NoaWZ0KDQpO3N3aXRjaCh3ZSl7Y2FzZSAwOnJldHVybiIiO2Nhc2UgNDI5NDk2NzI5NTpjYXNlIDQyOTQ5NjcyOTQ6cmV0dXJuezI6IkJJVE1BUCIsMzoiTUVUQUZJTEVQSUNUIiw4OiJESUIiLDE0OiJFTkhNRVRBRklM''@;'; + put 'put ''RSJ9W0gucmVhZF9zaGlmdCg0KV18fCIifWlmKHdlPjQwMCl0aHJvdyBuZXcgRXJyb3IoIlVuc3VwcG9ydGVkIENsaXBib2FyZDogIit3ZS50b1N0cmluZygxNikpO3JldHVybiBILmwtPTQsSC5yZWFkX3NoaWZ0KDAsMT09cmU/Imxwc3RyIjoibHB3c3RyIil9dmFyIElNPVs4MCw4MV0scmI9''@;'; + put 'put ''ezE6e246IkNvZGVQYWdlIix0OjJ9LDI6e246IkNhdGVnb3J5Iix0OjgwfSwzOntuOiJQcmVzZW50YXRpb25Gb3JtYXQiLHQ6ODB9LDQ6e246IkJ5dGVDb3VudCIsdDozfSw1OntuOiJMaW5lQ291bnQiLHQ6M30sNjp7bjoiUGFyYWdyYXBoQ291bnQiLHQ6M30sNzp7bjoiU2xpZGVDb3VudCIs''@;'; + put 'put ''dDozfSw4OntuOiJOb3RlQ291bnQiLHQ6M30sOTp7bjoiSGlkZGVuQ291bnQiLHQ6M30sMTA6e246Ik11bHRpbWVkaWFDbGlwQ291bnQiLHQ6M30sMTE6e246IlNjYWxlQ3JvcCIsdDoxMX0sMTI6e246IkhlYWRpbmdQYWlycyIsdDo0MTA4fSwxMzp7bjoiVGl0bGVzT2ZQYXJ0cyIsdDo0MTI2''@;'; + put 'put ''fSwxNDp7bjoiTWFuYWdlciIsdDo4MH0sMTU6e246IkNvbXBhbnkiLHQ6ODB9LDE2OntuOiJMaW5rc1VwVG9EYXRlIix0OjExfSwxNzp7bjoiQ2hhcmFjdGVyQ291bnQiLHQ6M30sMTk6e246IlNoYXJlZERvYyIsdDoxMX0sMjI6e246Ikh5cGVybGlua3NDaGFuZ2VkIix0OjExfSwyMzp7bjoi''@;'; + put 'put ''QXBwVmVyc2lvbiIsdDozLHA6InZlcnNpb24ifSwyNDp7bjoiRGlnU2lnIix0OjY1fSwyNjp7bjoiQ29udGVudFR5cGUiLHQ6ODB9LDI3OntuOiJDb250ZW50U3RhdHVzIix0OjgwfSwyODp7bjoiTGFuZ3VhZ2UiLHQ6ODB9LDI5OntuOiJWZXJzaW9uIix0OjgwfSwyNTU6e30sMjE0NzQ4MzY0''@;'; + put 'put ''ODp7bjoiTG9jYWxlIix0OjE5fSwyMTQ3NDgzNjUxOntuOiJCZWhhdmlvciIsdDoxOX0sMTkxOTA1NDQzNDp7fX0sVXA9ezE6e246IkNvZGVQYWdlIix0OjJ9LDI6e246IlRpdGxlIix0OjgwfSwzOntuOiJTdWJqZWN0Iix0OjgwfSw0OntuOiJBdXRob3IiLHQ6ODB9LDU6e246IktleXdvcmRz''@;'; + put 'put ''Iix0OjgwfSw2OntuOiJDb21tZW50cyIsdDo4MH0sNzp7bjoiVGVtcGxhdGUiLHQ6ODB9LDg6e246Ikxhc3RBdXRob3IiLHQ6ODB9LDk6e246IlJldk51bWJlciIsdDo4MH0sMTA6e246IkVkaXRUaW1lIix0OjY0fSwxMTp7bjoiTGFzdFByaW50ZWQiLHQ6NjR9LDEyOntuOiJDcmVhdGVkRGF0''@;'; + put 'put ''ZSIsdDo2NH0sMTM6e246Ik1vZGlmaWVkRGF0ZSIsdDo2NH0sMTQ6e246IlBhZ2VDb3VudCIsdDozfSwxNTp7bjoiV29yZENvdW50Iix0OjN9LDE2OntuOiJDaGFyQ291bnQiLHQ6M30sMTc6e246IlRodW1ibmFpbCIsdDo3MX0sMTg6e246IkFwcGxpY2F0aW9uIix0OjgwfSwxOTp7bjoiRG9j''@;'; + put 'put ''U2VjdXJpdHkiLHQ6M30sMjU1Ont9LDIxNDc0ODM2NDg6e246IkxvY2FsZSIsdDoxOX0sMjE0NzQ4MzY1MTp7bjoiQmVoYXZpb3IiLHQ6MTl9LDE5MTkwNTQ0MzQ6e319LHZjPV90KHJiLCJuIiksZDk9X3QoVXAsIm4iKSxYZz17MToiVVMiLDI6IkNBIiwzOiIiLDc6IlJVIiwyMDoiRUciLDMw''@;'; + put 'put ''OiJHUiIsMzE6Ik5MIiwzMjoiQkUiLDMzOiJGUiIsMzQ6IkVTIiwzNjoiSFUiLDM5OiJJVCIsNDE6IkNIIiw0MzoiQVQiLDQ0OiJHQiIsNDU6IkRLIiw0NjoiU0UiLDQ3OiJOTyIsNDg6IlBMIiw0OToiREUiLDUyOiJNWCIsNTU6IkJSIiw2MToiQVUiLDY0OiJOWiIsNjY6IlRIIiw4MToiSlAi''@;'; + put 'put ''LDgyOiJLUiIsODQ6IlZOIiw4NjoiQ04iLDkwOiJUUiIsMTA1OiJKUyIsMjEzOiJEWiIsMjE2OiJNQSIsMjE4OiJMWSIsMzUxOiJQVCIsMzU0OiJJUyIsMzU4OiJGSSIsNDIwOiJDWiIsODg2OiJUVyIsOTYxOiJMQiIsOTYyOiJKTyIsOTYzOiJTWSIsOTY0OiJJUSIsOTY1OiJLVyIsOTY2OiJT''@;'; + put 'put ''QSIsOTcxOiJBRSIsOTcyOiJJTCIsOTc0OiJRQSIsOTgxOiJJUiIsNjU1MzU6IlVTIn0sUXA9W251bGwsInNvbGlkIiwibWVkaXVtR3JheSIsImRhcmtHcmF5IiwibGlnaHRHcmF5IiwiZGFya0hvcml6b250YWwiLCJkYXJrVmVydGljYWwiLCJkYXJrRG93biIsImRhcmtVcCIsImRhcmtHcmlk''@;'; + put 'put ''IiwiZGFya1RyZWxsaXMiLCJsaWdodEhvcml6b250YWwiLCJsaWdodFZlcnRpY2FsIiwibGlnaHREb3duIiwibGlnaHRVcCIsImxpZ2h0R3JpZCIsImxpZ2h0VHJlbGxpcyIsImdyYXkxMjUiLCJncmF5MDYyNSJdO2Z1bmN0aW9uIFF1KEgpe3JldHVybiBILm1hcChmdW5jdGlvbihyZSl7cmV0''@;'; + put 'put ''dXJuW3JlPj4xNiYyNTUscmU+PjgmMjU1LDI1NSZyZV19KX12YXIgS2c9UXUoWzAsMTY3NzcyMTUsMTY3MTE2ODAsNjUyODAsMjU1LDE2Nzc2OTYwLDE2NzExOTM1LDY1NTM1LDAsMTY3NzcyMTUsMTY3MTE2ODAsNjUyODAsMjU1LDE2Nzc2OTYwLDE2NzExOTM1LDY1NTM1LDgzODg2MDgsMzI3''@;'; + put 'put ''NjgsMTI4LDg0MjEzNzYsODM4ODczNiwzMjg5NiwxMjYzMjI1Niw4NDIxNTA0LDEwMDY2NDMxLDEwMDQwMTY2LDE2Nzc3MTY0LDEzNDM0ODc5LDY2ODQ3NzQsMTY3NDQ1NzYsMjYzMTYsMTM0MjE4MjMsMTI4LDE2NzExOTM1LDE2Nzc2OTYwLDY1NTM1LDgzODg3MzYsODM4ODYwOCwzMjg5Niwy''@;'; + put 'put ''NTUsNTI0NzksMTM0MzQ4NzksMTM0MzQ4MjgsMTY3NzcxMTMsMTAwNzk0ODcsMTY3NTEwNTIsMTM0MDg3NjcsMTY3NjQwNTcsMzM2ODcwMywzMzk0NzY0LDEwMDc5MjMyLDE2NzYzOTA0LDE2NzUwODQ4LDE2NzM3NzkyLDY3MTA5MzcsOTg2ODk1MCwxMzE1OCwzMzgxNjA2LDEzMDU2LDMzNTUz''@;'; + put 'put ''OTIsMTAwNDAwNjQsMTAwNDAxNjYsMzM1NTU0NSwzMzU1NDQzLDAsMTY3NzcyMTUsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMF0pLHV1PWxuKEtnKSxETT1RdShbMTI2MzIyNTYsOTg2ODk1MCw4NDIxNTA0LDY3MTA4ODYsMzM1NTQ0MywxNjcxMTY4MCwzMjc2OCwxMzM2OTQ5Nywx''@;'; + put 'put ''MjgsMzM5NDU2MCwyNjM2NywxMDAyNzIxMiwxMDA1MzE3MSwxMjgsMzI3NjgsODM4ODYwOCwzMjg5Niw4Mzg4NzM2LDg0MjEzNzYsMTM2MzE0ODgsMTQ1Mzk5OTQsMTMwNjg4NTAsMTM5MjQzNTIsOTk2NzQ5Niw5MTc1MjY3LDkxOTUwMDgsMzY4MzUzNywxMDY5MjU4LDg4ODA4OTksNzQ5NDY0''@;'; + put 'put ''LDI4OTM0NzYsMTE3NDU3MzAsMzc1MDIwMSwxNTU1OTUwMywxODM3OTQxLDEyMDg0MzU5LDc2MzIyNTAsNzM2MzMyOCw5NTE0NTg4LDgyODg2MTcsMzAzNjgxNCwxMTE4NDgxMF0pLE4xPXswOiIjTlVMTCEiLDc6IiNESVYvMCEiLDE1OiIjVkFMVUUhIiwyMzoiI1JFRiEiLDI5OiIjTkFNRT8i''@;'; + put 'put ''LDM2OiIjTlVNISIsNDI6IiNOL0EiLDQzOiIjR0VUVElOR19EQVRBIiwyNTU6IiNXVEY/In0sX2g9ZXQoTjEpLEFkPXsiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXQubWFpbit4bWwiOiJ3b3JrYm9va3MiLCJhcHBsaWNh''@;'; + put 'put ''dGlvbi92bmQubXMtZXhjZWwuYmluSW5kZXhXcyI6IlRPRE8iLCJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwuaW50bG1hY3Jvc2hlZXQiOiJUT0RPIiwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLmJpbkluZGV4TXMiOiJUT0RPIiwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLXBh''@;'; + put 'put ''Y2thZ2UuY29yZS1wcm9wZXJ0aWVzK3htbCI6ImNvcmVwcm9wcyIsImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5jdXN0b20tcHJvcGVydGllcyt4bWwiOiJjdXN0cHJvcHMiLCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1l''@;'; + put 'put ''bnQuZXh0ZW5kZWQtcHJvcGVydGllcyt4bWwiOiJleHRwcm9wcyIsImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5jdXN0b21YbWxQcm9wZXJ0aWVzK3htbCI6ImN1c3RvbXhtbHByb3BzIiwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmlj''@;'; + put 'put ''ZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuY3VzdG9tUHJvcGVydHkiOiJUT0RPIiwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLnBpdm90VGFibGUiOiJwaXZvdHMiLCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5waXZvdFRhYmxl''@;'; + put 'put ''K3htbCI6InBpdm90cyIsImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5kcmF3aW5nbWwuY2hhcnQreG1sIjoiY2hhcnRvYmpzIiwiYXBwbGljYXRpb24vdm5kLm1zLW9mZmljZS5jaGFydGNvbG9yc3R5bGUreG1sIjoiY2hhcnRjb2xvcnMiLCJhcHBsaWNh''@;'; + put 'put ''dGlvbi92bmQubXMtb2ZmaWNlLmNoYXJ0c3R5bGUreG1sIjoiY2hhcnRzdHlsZXMiLCJhcHBsaWNhdGlvbi92bmQubXMtb2ZmaWNlLmNoYXJ0ZXgreG1sIjoiY2hhcnRleHMiLCJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwuY2FsY0NoYWluIjoiY2FsY2NoYWlucyIsImFwcGxpY2F0aW9uL3Zu''@;'; + put 'put ''ZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLmNhbGNDaGFpbit4bWwiOiJjYWxjY2hhaW5zIiwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwucHJpbnRlclNldHRpbmdzIjoiVE9ETyIsImFwcGxp''@;'; + put 'put ''Y2F0aW9uL3ZuZC5tcy1vZmZpY2UuYWN0aXZlWCI6IlRPRE8iLCJhcHBsaWNhdGlvbi92bmQubXMtb2ZmaWNlLmFjdGl2ZVgreG1sIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC5hdHRhY2hlZFRvb2xiYXJzIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC5jb25u''@;'; + put 'put ''ZWN0aW9ucyI6ImNvbm5zIiwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuY29ubmVjdGlvbnMreG1sIjoiY29ubnMiLCJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwuZXh0ZXJuYWxMaW5rIjoibGlua3MiLCJhcHBsaWNhdGlvbi92''@;'; + put 'put ''bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5leHRlcm5hbExpbmsreG1sIjoibGlua3MiLCJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwuc2hlZXRNZXRhZGF0YSI6IlRPRE8iLCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1l''@;'; + put 'put ''bnQuc3ByZWFkc2hlZXRtbC5zaGVldE1ldGFkYXRhK3htbCI6IlRPRE8iLCJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwucGl2b3RDYWNoZURlZmluaXRpb24iOiJwaXZvdGNhY2hlcyIsImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC5waXZvdENhY2hlUmVjb3JkcyI6InBpdm90cmVjb3JkcyIs''@;'; + put 'put ''ImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnBpdm90Q2FjaGVEZWZpbml0aW9uK3htbCI6InBpdm90Y2FjaGVzIiwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwucGl2''@;'; + put 'put ''b3RDYWNoZVJlY29yZHMreG1sIjoicGl2b3RyZWNvcmRzIiwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLnF1ZXJ5VGFibGUiOiJUT0RPIiwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwucXVlcnlUYWJsZSt4bWwiOiJUT0RPIiwi''@;'; + put 'put ''YXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLnVzZXJOYW1lcyI6IlRPRE8iLCJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwucmV2aXNpb25IZWFkZXJzIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC5yZXZpc2lvbkxvZyI6IlRPRE8iLCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZv''@;'; + put 'put ''cm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5yZXZpc2lvbkhlYWRlcnMreG1sIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnJldmlzaW9uTG9nK3htbCI6IlRPRE8iLCJhcHBsaWNhdGlvbi92bmQu''@;'; + put 'put ''b3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC51c2VyTmFtZXMreG1sIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC50YWJsZVNpbmdsZUNlbGxzIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5z''@;'; + put 'put ''cHJlYWRzaGVldG1sLnRhYmxlU2luZ2xlQ2VsbHMreG1sIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC5zbGljZXIiOiJUT0RPIiwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLnNsaWNlckNhY2hlIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC5zbGljZXIreG1s''@;'; + put 'put ''IjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC5zbGljZXJDYWNoZSt4bWwiOiJUT0RPIiwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLndzU29ydE1hcCI6IlRPRE8iLCJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwudGFibGUiOiJ0YWJsZXMiLCJhcHBsaWNhdGlvbi92bmQub3Bl''@;'; + put 'put ''bnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC50YWJsZSt4bWwiOiJ0YWJsZXMiLCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQudGhlbWUreG1sIjoidGhlbWVzIiwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmlj''@;'; + put 'put ''ZWRvY3VtZW50LnRoZW1lT3ZlcnJpZGUreG1sIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC5UaW1lbGluZSt4bWwiOiJUT0RPIiwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLlRpbWVsaW5lQ2FjaGUreG1sIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5tcy1vZmZpY2UudmJh''@;'; + put 'put ''UHJvamVjdCI6InZiYSIsImFwcGxpY2F0aW9uL3ZuZC5tcy1vZmZpY2UudmJhUHJvamVjdFNpZ25hdHVyZSI6IlRPRE8iLCJhcHBsaWNhdGlvbi92bmQubXMtb2ZmaWNlLnZvbGF0aWxlRGVwZW5kZW5jaWVzIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vk''@;'; + put 'put ''b2N1bWVudC5zcHJlYWRzaGVldG1sLnZvbGF0aWxlRGVwZW5kZW5jaWVzK3htbCI6IlRPRE8iLCJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwuY29udHJvbHByb3BlcnRpZXMreG1sIjoiY3RybHByb3BzIiwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50Lm1v''@;'; + put 'put ''ZGVsK2RhdGEiOiJkYXRhbW9kZWxzIiwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLlN1cnZleSt4bWwiOiJUT0RPIiwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LmRyYXdpbmcreG1sIjoiZHJhd2luZ3MiLCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZv''@;'; + put 'put ''cm1hdHMtb2ZmaWNlZG9jdW1lbnQuZHJhd2luZ21sLmNoYXJ0c2hhcGVzK3htbCI6IlRPRE8iLCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuZHJhd2luZ21sLmRpYWdyYW1Db2xvcnMreG1sIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9y''@;'; + put 'put ''bWF0cy1vZmZpY2Vkb2N1bWVudC5kcmF3aW5nbWwuZGlhZ3JhbURhdGEreG1sIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5kcmF3aW5nbWwuZGlhZ3JhbUxheW91dCt4bWwiOiJUT0RPIiwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3Jt''@;'; + put 'put ''YXRzLW9mZmljZWRvY3VtZW50LmRyYXdpbmdtbC5kaWFncmFtU3R5bGUreG1sIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC52bWxEcmF3aW5nIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1wYWNrYWdlLnJlbGF0''@;'; + put 'put ''aW9uc2hpcHMreG1sIjoicmVscyIsImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5vbGVPYmplY3QiOiJUT0RPIiwiaW1hZ2UvcG5nIjoiVE9ETyIsc2hlZXQ6ImpzIn0sQ2E9ZnVuY3Rpb24oKXt2YXIgSD17d29ya2Jvb2tzOnt4bHN4OiJhcHBsaWNhdGlv''@;'; + put 'put ''bi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGVldC5tYWluK3htbCIseGxzbToiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLnNoZWV0Lm1hY3JvRW5hYmxlZC5tYWluK3htbCIseGxzYjoiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLnNoZWV0LmJp''@;'; + put 'put ''bmFyeS5tYWNyb0VuYWJsZWQubWFpbiIseGxhbToiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLmFkZGluLm1hY3JvRW5hYmxlZC5tYWluK3htbCIseGx0eDoiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwudGVtcGxhdGUubWFpbit4''@;'; + put 'put ''bWwifSxzdHJzOnt4bHN4OiJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGFyZWRTdHJpbmdzK3htbCIseGxzYjoiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLnNoYXJlZFN0cmluZ3MifSxjb21tZW50czp7eGxzeDoiYXBwbGlj''@;'; + put 'put ''YXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuY29tbWVudHMreG1sIix4bHNiOiJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwuY29tbWVudHMifSxzaGVldHM6e3hsc3g6ImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1''@;'; + put 'put ''bWVudC5zcHJlYWRzaGVldG1sLndvcmtzaGVldCt4bWwiLHhsc2I6ImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC53b3Jrc2hlZXQifSxjaGFydHM6e3hsc3g6ImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLmNoYXJ0c2hlZXQreG1s''@;'; + put 'put ''Iix4bHNiOiJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwuY2hhcnRzaGVldCJ9LGRpYWxvZ3M6e3hsc3g6ImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLmRpYWxvZ3NoZWV0K3htbCIseGxzYjoiYXBwbGljYXRpb24vdm5kLm1zLWV4''@;'; + put 'put ''Y2VsLmRpYWxvZ3NoZWV0In0sbWFjcm9zOnt4bHN4OiJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwubWFjcm9zaGVldCt4bWwiLHhsc2I6ImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC5tYWNyb3NoZWV0In0sdGFibGVzOnt4bHN4OiJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2Zm''@;'; + put 'put ''aWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC50YWJsZSt4bWwiLHhsc2I6ImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC50YWJsZSJ9LHBpdm90czp7eGxzeDoiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwucGl2b3RUYWJsZSt4bWwi''@;'; + put 'put ''LHhsc2I6ImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC5waXZvdFRhYmxlIn0scGl2b3RjYWNoZXM6e3hsc3g6ImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnBpdm90Q2FjaGVEZWZpbml0aW9uK3htbCIseGxzYjoiYXBwbGljYXRp''@;'; + put 'put ''b24vdm5kLm1zLWV4Y2VsLnBpdm90Q2FjaGVEZWZpbml0aW9uIn0scGl2b3RyZWNvcmRzOnt4bHN4OiJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5waXZvdENhY2hlUmVjb3Jkcyt4bWwiLHhsc2I6ImFwcGxpY2F0aW9uL3ZuZC5t''@;'; + put 'put ''cy1leGNlbC5waXZvdENhY2hlUmVjb3JkcyJ9LGNvbm5zOnt4bHN4OiJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5jb25uZWN0aW9ucyt4bWwiLHhsc2I6ImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC5jb25uZWN0aW9ucyJ9LGxp''@;'; + put 'put ''bmtzOnt4bHN4OiJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5leHRlcm5hbExpbmsreG1sIix4bHNiOiJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwuZXh0ZXJuYWxMaW5rIn0sc3R5bGVzOnt4bHN4OiJhcHBsaWNhdGlvbi92bmQu''@;'; + put 'put ''b3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zdHlsZXMreG1sIix4bHNiOiJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwuc3R5bGVzIn19O3JldHVybiBvbihIKS5mb3JFYWNoKGZ1bmN0aW9uKHJlKXtbInhsc20iLCJ4bGFtIl0uZm9yRWFjaChmdW5jdGlvbihY''@;'; + put 'put ''KXtIW3JlXVtYXXx8KEhbcmVdW1hdPUhbcmVdLnhsc3gpfSl9KSxvbihIKS5mb3JFYWNoKGZ1bmN0aW9uKHJlKXtvbihIW3JlXSkuZm9yRWFjaChmdW5jdGlvbihYKXtBZFtIW3JlXVtYXV09cmV9KX0pLEh9KCksJGc9ZnVuY3Rpb24gYXQoSCl7Zm9yKHZhciByZT1bXSxYPW9uKEgpLHdlPTA7''@;'; + put 'put ''d2UhPT1YLmxlbmd0aDsrK3dlKW51bGw9PXJlW0hbWFt3ZV1dXSYmKHJlW0hbWFt3ZV1dXT1bXSkscmVbSFtYW3dlXV1dLnB1c2goWFt3ZV0pO3JldHVybiByZX0oQWQpO1gwLkNUPSJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvcGFja2FnZS8yMDA2L2NvbnRlbnQtdHlwZXMi''@;'; + put 'put ''O3ZhciBmMj1faSgiVHlwZXMiLG51bGwse3htbG5zOlgwLkNULCJ4bWxuczp4c2QiOlgwLnhzZCwieG1sbnM6eHNpIjpYMC54c2l9KSxkUj1bWyJ4bWwiLCJhcHBsaWNhdGlvbi94bWwiXSxbImJpbiIsImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC5zaGVldC5iaW5hcnkubWFjcm9FbmFibGVk''@;'; + put 'put ''Lm1haW4iXSxbInZtbCIsImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC52bWxEcmF3aW5nIl0sWyJkYXRhIiwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50Lm1vZGVsK2RhdGEiXSxbImJtcCIsImltYWdlL2JtcCJdLFsi''@;'; + put 'put ''cG5nIiwiaW1hZ2UvcG5nIl0sWyJnaWYiLCJpbWFnZS9naWYiXSxbImVtZiIsImltYWdlL3gtZW1mIl0sWyJ3bWYiLCJpbWFnZS94LXdtZiJdLFsianBnIiwiaW1hZ2UvanBlZyJdLFsianBlZyIsImltYWdlL2pwZWciXSxbInRpZiIsImltYWdlL3RpZmYiXSxbInRpZmYiLCJpbWFnZS90aWZm''@;'; + put 'put ''Il0sWyJwZGYiLCJhcHBsaWNhdGlvbi9wZGYiXSxbInJlbHMiLCRnLnJlbHNbMF1dXS5tYXAoZnVuY3Rpb24oSCl7cmV0dXJuIF9pKCJEZWZhdWx0IixudWxsLHtFeHRlbnNpb246SFswXSxDb250ZW50VHlwZTpIWzFdfSl9KSxwdD17V0I6Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRz''@;'; + put 'put ''Lm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L3JlbGF0aW9uc2hpcHMvb2ZmaWNlRG9jdW1lbnQiLFNIRUVUOiJodHRwOi8vc2hlZXRqcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzL29mZmljZURvY3VtZW50IixITElOSzoiaHR0cDovL3NjaGVt''@;'; + put 'put ''YXMub3BlbnhtbGZvcm1hdHMub3JnL29mZmljZURvY3VtZW50LzIwMDYvcmVsYXRpb25zaGlwcy9oeXBlcmxpbmsiLFZNTDoiaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL29mZmljZURvY3VtZW50LzIwMDYvcmVsYXRpb25zaGlwcy92bWxEcmF3aW5nIixYUEFUSDoiaHR0cDov''@;'; + put 'put ''L3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL29mZmljZURvY3VtZW50LzIwMDYvcmVsYXRpb25zaGlwcy9leHRlcm5hbExpbmtQYXRoIixYTUlTUzoiaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9vZmZpY2UvMjAwNi9yZWxhdGlvbnNoaXBzL3hsRXh0ZXJuYWxMaW5rUGF0aC94bFBh''@;'; + put 'put ''dGhNaXNzaW5nIixYTElOSzoiaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL29mZmljZURvY3VtZW50LzIwMDYvcmVsYXRpb25zaGlwcy9leHRlcm5hbExpbmsiLENYTUw6Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L3JlbGF0''@;'; + put 'put ''aW9uc2hpcHMvY3VzdG9tWG1sIixDWE1MUDoiaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL29mZmljZURvY3VtZW50LzIwMDYvcmVsYXRpb25zaGlwcy9jdXN0b21YbWxQcm9wcyIsVkJBOiJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL29mZmljZS8yMDA2L3JlbGF0aW9u''@;'; + put 'put ''c2hpcHMvdmJhUHJvamVjdCJ9O2Z1bmN0aW9uIEl0KEgpe3ZhciByZT1ILmxhc3RJbmRleE9mKCIvIik7cmV0dXJuIEguc2xpY2UoMCxyZSsxKSsiX3JlbHMvIitILnNsaWNlKHJlKzEpKyIucmVscyJ9ZnVuY3Rpb24gUHQoSCxyZSl7dmFyIFg9eyIhaWQiOnt9fTtpZighSClyZXR1cm4gWDsi''@;'; + put 'put ''LyIhPT1yZS5jaGFyQXQoMCkmJihyZT0iLyIrcmUpO3ZhciB3ZT17fTtyZXR1cm4oSC5tYXRjaChHdCl8fFtdKS5mb3JFYWNoKGZ1bmN0aW9uKHhlKXt2YXIgRmU9ZW4oeGUpO2lmKCI8UmVsYXRpb25zaGlwIj09PUZlWzBdKXt2YXIgWmU9e307WmUuVHlwZT1GZS5UeXBlLFplLlRhcmdldD1G''@;'; + put 'put ''ZS5UYXJnZXQsWmUuSWQ9RmUuSWQsWmUuVGFyZ2V0TW9kZT1GZS5UYXJnZXRNb2RlO3ZhciBqZT0iRXh0ZXJuYWwiPT09RmUuVGFyZ2V0TW9kZT9GZS5UYXJnZXQ6dW4oRmUuVGFyZ2V0LHJlKTtYW2plXT1aZSx3ZVtGZS5JZF09WmV9fSksWFsiIWlkIl09d2UsWH1YMC5SRUxTPSJodHRwOi8v''@;'; + put 'put ''c2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvcGFja2FnZS8yMDA2L3JlbGF0aW9uc2hpcHMiO3ZhciBmZT1faSgiUmVsYXRpb25zaGlwcyIsbnVsbCx7eG1sbnM6WDAuUkVMU30pO2Z1bmN0aW9uIGl0KEgpe3ZhciByZT1bY24sZmVdO3JldHVybiBvbihIWyIhaWQiXSkuZm9yRWFjaChmdW5j''@;'; + put 'put ''dGlvbihYKXtyZVtyZS5sZW5ndGhdPV9pKCJSZWxhdGlvbnNoaXAiLG51bGwsSFsiIWlkIl1bWF0pfSkscmUubGVuZ3RoPjImJihyZVtyZS5sZW5ndGhdPSI8L1JlbGF0aW9uc2hpcHM+IixyZVsxXT1yZVsxXS5yZXBsYWNlKCIvPiIsIj4iKSkscmUuam9pbigiIil9dmFyIGE9W3B0LkhMSU5L''@;'; + put 'put ''LHB0LlhQQVRILHB0LlhNSVNTXTtmdW5jdGlvbiBYdChILHJlLFgsd2UseGUsRmUpe2lmKHhlfHwoeGU9e30pLEhbIiFpZCJdfHwoSFsiIWlkIl09e30pLHJlPDApZm9yKHJlPTE7SFsiIWlkIl1bInJJZCIrcmVdOysrcmUpO2lmKHhlLklkPSJySWQiK3JlLHhlLlR5cGU9d2UseGUuVGFyZ2V0''@;'; + put 'put ''PVgsRmU/eGUuVGFyZ2V0TW9kZT1GZTphLmluZGV4T2YoeGUuVHlwZSk+LTEmJih4ZS5UYXJnZXRNb2RlPSJFeHRlcm5hbCIpLEhbIiFpZCJdW3hlLklkXSl0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCByZXdyaXRlIHJJZCAiK3JlKTtyZXR1cm4gSFsiIWlkIl1beGUuSWRdPXhlLEhbKCIvIit4''@;'; + put 'put ''ZS5UYXJnZXQpLnJlcGxhY2UoIi8vIiwiLyIpXT14ZSxyZX1mdW5jdGlvbiBfKEgscmUsWCl7cmV0dXJuWycgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSInK0grJyI+XG4nLCcgICAgPHJkZjp0eXBlIHJkZjpyZXNvdXJjZT0iaHR0cDovL2RvY3Mub2FzaXMtb3Blbi5vcmcvbnMvb2Zm''@;'; + put 'put ''aWNlLzEuMi9tZXRhLycrKFh8fCJvZGYiKSsiIyIrcmUrJyIvPlxuJywiICA8L3JkZjpEZXNjcmlwdGlvbj5cbiJdLmpvaW4oIiIpfWZ1bmN0aW9uIEFvKEgscmUpe3JldHVyblsnICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iJytIKyciPlxuJywnICAgIDxuczA6aGFzUGFydCB4bWxu''@;'; + put 'put ''czpuczA9Imh0dHA6Ly9kb2NzLm9hc2lzLW9wZW4ub3JnL25zL29mZmljZS8xLjIvbWV0YS9wa2cjIiByZGY6cmVzb3VyY2U9IicrcmUrJyIvPlxuJywiICA8L3JkZjpEZXNjcmlwdGlvbj5cbiJdLmpvaW4oIiIpfXZhciAkbz1mdW5jdGlvbigpe3ZhciBIPSc8b2ZmaWNlOmRvY3VtZW50LW1l''@;'; + put 'put ''dGEgeG1sbnM6b2ZmaWNlPSJ1cm46b2FzaXM6bmFtZXM6dGM6b3BlbmRvY3VtZW50OnhtbG5zOm9mZmljZToxLjAiIHhtbG5zOm1ldGE9InVybjpvYXNpczpuYW1lczp0YzpvcGVuZG9jdW1lbnQ6eG1sbnM6bWV0YToxLjAiIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMv''@;'; + put 'put ''MS4xLyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIG9mZmljZTp2ZXJzaW9uPSIxLjIiPjxvZmZpY2U6bWV0YT48bWV0YTpnZW5lcmF0b3I+U2hlZXRKUyAnK1UudmVyc2lvbisiPC9tZXRhOmdlbmVyYXRvcj48L29mZmljZTptZXRhPjwvb2ZmaWNlOmRvY3Vt''@;'; + put 'put ''ZW50LW1ldGE+IjtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gSH19KCksbGU9W1siY3A6Y2F0ZWdvcnkiLCJDYXRlZ29yeSJdLFsiY3A6Y29udGVudFN0YXR1cyIsIkNvbnRlbnRTdGF0dXMiXSxbImNwOmtleXdvcmRzIiwiS2V5d29yZHMiXSxbImNwOmxhc3RNb2RpZmllZEJ5IiwiTGFzdEF1''@;'; + put 'put ''dGhvciJdLFsiY3A6bGFzdFByaW50ZWQiLCJMYXN0UHJpbnRlZCJdLFsiY3A6cmV2aXNpb24iLCJSZXZOdW1iZXIiXSxbImNwOnZlcnNpb24iLCJWZXJzaW9uIl0sWyJkYzpjcmVhdG9yIiwiQXV0aG9yIl0sWyJkYzpkZXNjcmlwdGlvbiIsIkNvbW1lbnRzIl0sWyJkYzppZGVudGlmaWVyIiwi''@;'; + put 'put ''SWRlbnRpZmllciJdLFsiZGM6bGFuZ3VhZ2UiLCJMYW5ndWFnZSJdLFsiZGM6c3ViamVjdCIsIlN1YmplY3QiXSxbImRjOnRpdGxlIiwiVGl0bGUiXSxbImRjdGVybXM6Y3JlYXRlZCIsIkNyZWF0ZWREYXRlIiwiZGF0ZSJdLFsiZGN0ZXJtczptb2RpZmllZCIsIk1vZGlmaWVkRGF0ZSIsImRh''@;'; + put 'put ''dGUiXV07WDAuQ09SRV9QUk9QUz0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL3BhY2thZ2UvMjAwNi9tZXRhZGF0YS9jb3JlLXByb3BlcnRpZXMiLHB0LkNPUkVfUFJPUFM9Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9wYWNrYWdlLzIwMDYvcmVsYXRpb25z''@;'; + put 'put ''aGlwcy9tZXRhZGF0YS9jb3JlLXByb3BlcnRpZXMiO3ZhciBWMT1mdW5jdGlvbigpe2Zvcih2YXIgSD1uZXcgQXJyYXkobGUubGVuZ3RoKSxyZT0wO3JlPGxlLmxlbmd0aDsrK3JlKXt2YXIgWD1sZVtyZV0sd2U9Iig/OiIrWFswXS5zbGljZSgwLFhbMF0uaW5kZXhPZigiOiIpKSsiOikiK1hb''@;'; + put 'put ''MF0uc2xpY2UoWFswXS5pbmRleE9mKCI6IikrMSk7SFtyZV09bmV3IFJlZ0V4cCgiPCIrd2UrIltePl0qPihbXFxzXFxTXSo/KTwvIit3ZSsiPiIpfXJldHVybiBIfSgpO2Z1bmN0aW9uIGxzKEgpe3ZhciByZT17fTtIPVcwKEgpO2Zvcih2YXIgWD0wO1g8bGUubGVuZ3RoOysrWCl7dmFyIHdl''@;'; + put 'put ''PWxlW1hdLHhlPUgubWF0Y2goVjFbWF0pO251bGwhPXhlJiZ4ZS5sZW5ndGg+MCYmKHJlW3dlWzFdXT1ncih4ZVsxXSkpLCJkYXRlIj09PXdlWzJdJiZyZVt3ZVsxXV0mJihyZVt3ZVsxXV09ZG4ocmVbd2VbMV1dKSl9cmV0dXJuIHJlfXZhciBNbj1faSgiY3A6Y29yZVByb3BlcnRpZXMiLG51''@;'; + put 'put ''bGwseyJ4bWxuczpjcCI6WDAuQ09SRV9QUk9QUywieG1sbnM6ZGMiOlgwLmRjLCJ4bWxuczpkY3Rlcm1zIjpYMC5kY3Rlcm1zLCJ4bWxuczpkY21pdHlwZSI6WDAuZGNtaXR5cGUsInhtbG5zOnhzaSI6WDAueHNpfSk7ZnVuY3Rpb24geG4oSCxyZSxYLHdlLHhlKXtudWxsIT14ZVtIXXx8bnVs''@;'; + put 'put ''bD09cmV8fCIiPT09cmV8fCh4ZVtIXT1yZSxyZT1ScihyZSksd2Vbd2UubGVuZ3RoXT1YP19pKEgscmUsWCk6c2EoSCxyZSkpfXZhciBvMj1bWyJBcHBsaWNhdGlvbiIsIkFwcGxpY2F0aW9uIiwic3RyaW5nIl0sWyJBcHBWZXJzaW9uIiwiQXBwVmVyc2lvbiIsInN0cmluZyJdLFsiQ29tcGFu''@;'; + put 'put ''eSIsIkNvbXBhbnkiLCJzdHJpbmciXSxbIkRvY1NlY3VyaXR5IiwiRG9jU2VjdXJpdHkiLCJzdHJpbmciXSxbIk1hbmFnZXIiLCJNYW5hZ2VyIiwic3RyaW5nIl0sWyJIeXBlcmxpbmtzQ2hhbmdlZCIsIkh5cGVybGlua3NDaGFuZ2VkIiwiYm9vbCJdLFsiU2hhcmVkRG9jIiwiU2hhcmVkRG9j''@;'; + put 'put ''IiwiYm9vbCJdLFsiTGlua3NVcFRvRGF0ZSIsIkxpbmtzVXBUb0RhdGUiLCJib29sIl0sWyJTY2FsZUNyb3AiLCJTY2FsZUNyb3AiLCJib29sIl0sWyJIZWFkaW5nUGFpcnMiLCJIZWFkaW5nUGFpcnMiLCJyYXciXSxbIlRpdGxlc09mUGFydHMiLCJUaXRsZXNPZlBhcnRzIiwicmF3Il1dO2Z1''@;'; + put 'put ''bmN0aW9uIEFzKEgscmUsWCx3ZSl7dmFyIHhlPVtdO2lmKCJzdHJpbmciPT10eXBlb2YgSCl4ZT12aShILHdlKTtlbHNlIGZvcih2YXIgRmU9MDtGZTxILmxlbmd0aDsrK0ZlKXhlPXhlLmNvbmNhdChIW0ZlXS5tYXAoZnVuY3Rpb24oeHQpe3JldHVybnt2Onh0fX0pKTt2YXIgWmU9InN0cmlu''@;'; + put 'put ''ZyI9PXR5cGVvZiByZT92aShyZSx3ZSkubWFwKGZ1bmN0aW9uKHh0KXtyZXR1cm4geHQudn0pOnJlLGplPTAsWWU9MDtpZihaZS5sZW5ndGg+MClmb3IodmFyIE10PTA7TXQhPT14ZS5sZW5ndGg7TXQrPTIpe3N3aXRjaChZZT0reGVbTXQrMV0udix4ZVtNdF0udil7Y2FzZSJXb3Jrc2hlZXRz''@;'; + put 'put ''IjpjYXNlIlx1NWRlNVx1NGY1Y1x1ODg2OCI6Y2FzZSJcdTA0MWJcdTA0MzhcdTA0NDFcdTA0NDJcdTA0NGIiOmNhc2UiXHUwNjIzXHUwNjQ4XHUwNjMxXHUwNjI3XHUwNjQyIFx1MDYyN1x1MDY0NFx1MDYzOVx1MDY0NVx1MDY0NCI6Y2FzZSJcdTMwZWZcdTMwZmNcdTMwYWZcdTMwYjdcdTMw''@;'; + put 'put ''ZmNcdTMwYzgiOmNhc2UiXHUwNWQyXHUwNWRjXHUwNWQ5XHUwNWQ1XHUwNWUwXHUwNWQ1XHUwNWVhIFx1MDVlMlx1MDVkMVx1MDVkNVx1MDVkM1x1MDVkNCI6Y2FzZSJBcmJlaXRzYmxceGU0dHRlciI6Y2FzZSJceGM3YWxcdTAxMzFcdTAxNWZtYSBTYXlmYWxhclx1MDEzMSI6Y2FzZSJGZXVp''@;'; + put 'put ''bGxlcyBkZSBjYWxjdWwiOmNhc2UiRm9nbGkgZGkgbGF2b3JvIjpjYXNlIkZvbGhhcyBkZSBjXHhlMWxjdWxvIjpjYXNlIlBsYW5pbGhhcyI6Y2FzZSJSZWduZWFyayI6Y2FzZSJIb2phcyBkZSBjXHhlMWxjdWxvIjpjYXNlIldlcmtibGFkZW4iOlguV29ya3NoZWV0cz1ZZSxYLlNoZWV0TmFt''@;'; + put 'put ''ZXM9WmUuc2xpY2UoamUsamUrWWUpO2JyZWFrO2Nhc2UiTmFtZWQgUmFuZ2VzIjpjYXNlIlJhbmdvcyBjb24gbm9tYnJlIjpjYXNlIlx1NTQwZFx1NTI0ZFx1NGVkOFx1MzA0ZFx1NGUwMFx1ODlhNyI6Y2FzZSJCZW5hbm50ZSBCZXJlaWNoZSI6Y2FzZSJOYXZuZ2l2bmUgb21yXHhlNWRlciI6''@;'; + put 'put ''WC5OYW1lZFJhbmdlcz1ZZSxYLkRlZmluZWROYW1lcz1aZS5zbGljZShqZSxqZStZZSk7YnJlYWs7Y2FzZSJDaGFydHMiOmNhc2UiRGlhZ3JhbW1lIjpYLkNoYXJ0c2hlZXRzPVllLFguQ2hhcnROYW1lcz1aZS5zbGljZShqZSxqZStZZSl9amUrPVllfX1YMC5FWFRfUFJPUFM9Imh0dHA6Ly9z''@;'; + put 'put ''Y2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L2V4dGVuZGVkLXByb3BlcnRpZXMiLHB0LkVYVF9QUk9QUz0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL29mZmljZURvY3VtZW50LzIwMDYvcmVsYXRpb25zaGlwcy9leHRlbmRlZC1wcm9wZXJ0''@;'; + put 'put ''aWVzIjt2YXIgUk09X2koIlByb3BlcnRpZXMiLG51bGwse3htbG5zOlgwLkVYVF9QUk9QUywieG1sbnM6dnQiOlgwLnZ0fSk7WDAuQ1VTVF9QUk9QUz0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL29mZmljZURvY3VtZW50LzIwMDYvY3VzdG9tLXByb3BlcnRpZXMiLHB0LkNV''@;'; + put 'put ''U1RfUFJPUFM9Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L3JlbGF0aW9uc2hpcHMvY3VzdG9tLXByb3BlcnRpZXMiO3ZhciBnOT0vPFtePl0rPltePF0qL2csRG49X2koIlByb3BlcnRpZXMiLG51bGwse3htbG5zOlgwLkNVU1RfUFJPUFMs''@;'; + put 'put ''InhtbG5zOnZ0IjpYMC52dH0pO3ZhciBlbz17VGl0bGU6IlRpdGxlIixTdWJqZWN0OiJTdWJqZWN0IixBdXRob3I6IkF1dGhvciIsS2V5d29yZHM6IktleXdvcmRzIixDb21tZW50czoiRGVzY3JpcHRpb24iLExhc3RBdXRob3I6Ikxhc3RBdXRob3IiLFJldk51bWJlcjoiUmV2aXNpb24iLEFw''@;'; + put 'put ''cGxpY2F0aW9uOiJBcHBOYW1lIixMYXN0UHJpbnRlZDoiTGFzdFByaW50ZWQiLENyZWF0ZWREYXRlOiJDcmVhdGVkIixNb2RpZmllZERhdGU6Ikxhc3RTYXZlZCIsQ2F0ZWdvcnk6IkNhdGVnb3J5IixNYW5hZ2VyOiJNYW5hZ2VyIixDb21wYW55OiJDb21wYW55IixBcHBWZXJzaW9uOiJWZXJz''@;'; + put 'put ''aW9uIixDb250ZW50U3RhdHVzOiJDb250ZW50U3RhdHVzIixJZGVudGlmaWVyOiJJZGVudGlmaWVyIixMYW5ndWFnZToiTGFuZ3VhZ2UifSxEMD10dChlbyk7ZnVuY3Rpb24gcWwoSCxyZSxYKXtIW3JlPUQwW3JlXXx8cmVdPVh9ZnVuY3Rpb24gVDgoSCl7dmFyIHJlPUgucmVhZF9zaGlmdCg0''@;'; + put 'put ''KSxYPUgucmVhZF9zaGlmdCg0KTtyZXR1cm4gbmV3IERhdGUoMWUzKihYLzFlNypNYXRoLnBvdygyLDMyKStyZS8xZTctMTE2NDQ0NzM2MDApKS50b0lTT1N0cmluZygpLnJlcGxhY2UoL1wuMDAwLywiIil9ZnVuY3Rpb24gWHAoSCxyZSxYKXt2YXIgd2U9SC5sLHhlPUgucmVhZF9zaGlmdCgw''@;'; + put 'put ''LCJscHN0ci1jcCIpO2lmKFgpZm9yKDtILmwtd2UmMzspKytILmw7cmV0dXJuIHhlfWZ1bmN0aW9uIFpmKEgscmUsWCl7dmFyIHdlPUgucmVhZF9zaGlmdCgwLCJscHdzdHIiKTtyZXR1cm4gWCYmKEgubCs9NC0od2UubGVuZ3RoKzEmMykmMyksd2V9ZnVuY3Rpb24gVWwoSCxyZSxYKXtyZXR1''@;'; + put 'put ''cm4gMzE9PT1yZT9aZihIKTpYcChILDAsWCl9ZnVuY3Rpb24gemYoSCxyZSxYKXtyZXR1cm4gVWwoSCxyZSwhMT09PVg/MDo0KX1mdW5jdGlvbiBhYihIKXt2YXIgcmU9SC5sLFg9d2QoSCw4MSk7cmV0dXJuIDA9PUhbSC5sXSYmMD09SFtILmwrMV0mJkgubC1yZSYyJiYoSC5sKz0yKSxbWCx3''@;'; + put 'put ''ZChILDMpXX1mdW5jdGlvbiB5ZChILHJlKXtmb3IodmFyIFg9SC5yZWFkX3NoaWZ0KDQpLHdlPXt9LHhlPTA7eGUhPVg7Kyt4ZSl7dmFyIEZlPUgucmVhZF9zaGlmdCg0KSxaZT1ILnJlYWRfc2hpZnQoNCk7d2VbRmVdPUgucmVhZF9zaGlmdChaZSwxMjAwPT09cmU/InV0ZjE2bGUiOiJ1dGY4''@;'; + put 'put ''IikucmVwbGFjZShULCIiKS5yZXBsYWNlKFMsIiEiKSwxMjAwPT09cmUmJlplJTImJihILmwrPTIpfXJldHVybiAzJkgubCYmKEgubD1ILmw+PjM8PDIpLHdlfWZ1bmN0aW9uIHcyKEgpe3ZhciByZT1ILnJlYWRfc2hpZnQoNCksWD1ILnNsaWNlKEgubCxILmwrcmUpO3JldHVybiBILmwrPXJl''@;'; + put 'put ''LCgzJnJlKT4wJiYoSC5sKz00LSgzJnJlKSYzKSxYfWZ1bmN0aW9uIHdkKEgscmUsWCl7dmFyIHhlLHdlPUgucmVhZF9zaGlmdCgyKSxGZT1YfHx7fTtpZihILmwrPTIsMTIhPT1yZSYmd2UhPT1yZSYmLTE9PT1JTS5pbmRleE9mKHJlKSYmKDQxMjYhPSg2NTUzNCZyZSl8fDQxMjYhPSg2NTUz''@;'; + put 'put ''NCZ3ZSkpKXRocm93IG5ldyBFcnJvcigiRXhwZWN0ZWQgdHlwZSAiK3JlKyIgc2F3ICIrd2UpO3N3aXRjaCgxMj09PXJlP3dlOnJlKXtjYXNlIDI6cmV0dXJuIHhlPUgucmVhZF9zaGlmdCgyLCJpIiksRmUucmF3fHwoSC5sKz0yKSx4ZTtjYXNlIDM6cmV0dXJuIEgucmVhZF9zaGlmdCg0LCJp''@;'; + put 'put ''Iik7Y2FzZSAxMTpyZXR1cm4gMCE9PUgucmVhZF9zaGlmdCg0KTtjYXNlIDE5OnJldHVybiBILnJlYWRfc2hpZnQoNCk7Y2FzZSAzMDpyZXR1cm4gWHAoSCwwLDQpLnJlcGxhY2UoVCwiIik7Y2FzZSAzMTpyZXR1cm4gWmYoSCk7Y2FzZSA2NDpyZXR1cm4gVDgoSCk7Y2FzZSA2NTpyZXR1cm4g''@;'; + put 'put ''dzIoSCk7Y2FzZSA3MTpyZXR1cm4gZnVuY3Rpb24gZW0oSCl7dmFyIHJlPXt9O3JldHVybiByZS5TaXplPUgucmVhZF9zaGlmdCg0KSxILmwrPXJlLlNpemUrMy0ocmUuU2l6ZS0xKSU0LHJlfShIKTtjYXNlIDgwOnJldHVybiB6ZihILHdlLCFGZS5yYXcpLnJlcGxhY2UoVCwiIik7Y2FzZSA4''@;'; + put 'put ''MTpyZXR1cm4gZnVuY3Rpb24gRjIoSCxyZSl7aWYoIXJlKXRocm93IG5ldyBFcnJvcigiVnRVbmFsaWduZWRTdHJpbmcgbXVzdCBoYXZlIHBvc2l0aXZlIGxlbmd0aCIpO3JldHVybiBVbChILHJlLDApfShILHdlKS5yZXBsYWNlKFQsIiIpO2Nhc2UgNDEwODpyZXR1cm4gZnVuY3Rpb24gQk0o''@;'; + put 'put ''SCl7Zm9yKHZhciByZT1ILnJlYWRfc2hpZnQoNCksWD1bXSx3ZT0wO3dlPHJlLzI7Kyt3ZSlYLnB1c2goYWIoSCkpO3JldHVybiBYfShIKTtjYXNlIDQxMjY6Y2FzZSA0MTI3OnJldHVybiA0MTI3PT13ZT9mdW5jdGlvbiBJdShIKXtmb3IodmFyIHJlPUgucmVhZF9zaGlmdCg0KSxYPVtdLHdl''@;'; + put 'put ''PTA7d2UhPXJlOysrd2Upe3ZhciB4ZT1ILmw7WFt3ZV09SC5yZWFkX3NoaWZ0KDAsImxwd3N0ciIpLnJlcGxhY2UoVCwiIiksSC5sLXhlJjImJihILmwrPTIpfXJldHVybiBYfShIKTpmdW5jdGlvbiBBcihIKXtmb3IodmFyIHJlPUgucmVhZF9zaGlmdCg0KSxYPVtdLHdlPTA7d2UhPXJlOysr''@;'; + put 'put ''d2UpWFt3ZV09SC5yZWFkX3NoaWZ0KDAsImxwc3RyLWNwIikucmVwbGFjZShULCIiKTtyZXR1cm4gWH0oSCk7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIlR5cGVkUHJvcGVydHlWYWx1ZSB1bnJlY29nbml6ZWQgdHlwZSAiK3JlKyIgIit3ZSl9fWZ1bmN0aW9uIEtwKEgscmUpe3ZhciBYPVJp''@;'; + put 'put ''KDQpLHdlPVJpKDQpO3N3aXRjaChYLndyaXRlX3NoaWZ0KDQsODA9PUg/MzE6SCksSCl7Y2FzZSAzOndlLndyaXRlX3NoaWZ0KC00LHJlKTticmVhaztjYXNlIDU6KHdlPVJpKDgpKS53cml0ZV9zaGlmdCg4LHJlLCJmIik7YnJlYWs7Y2FzZSAxMTp3ZS53cml0ZV9zaGlmdCg0LHJlPzE6MCk7''@;'; + put 'put ''YnJlYWs7Y2FzZSA2NDp3ZT1mdW5jdGlvbiBKcChIKXt2YXIgWD0oInN0cmluZyI9PXR5cGVvZiBIP25ldyBEYXRlKERhdGUucGFyc2UoSCkpOkgpLmdldFRpbWUoKS8xZTMrMTE2NDQ0NzM2MDAsd2U9WCVNYXRoLnBvdygyLDMyKSx4ZT0oWC13ZSkvTWF0aC5wb3coMiwzMik7eGUqPTFlNzt2''@;'; + put 'put ''YXIgRmU9KHdlKj0xZTcpL01hdGgucG93KDIsMzIpfDA7RmU+MCYmKHdlJT1NYXRoLnBvdygyLDMyKSx4ZSs9RmUpO3ZhciBaZT1SaSg4KTtyZXR1cm4gWmUud3JpdGVfc2hpZnQoNCx3ZSksWmUud3JpdGVfc2hpZnQoNCx4ZSksWmV9KHJlKTticmVhaztjYXNlIDMxOmNhc2UgODA6Zm9yKCh3''@;'; + put 'put ''ZT1SaSg0KzIqKHJlLmxlbmd0aCsxKSsocmUubGVuZ3RoJTI/MDoyKSkpLndyaXRlX3NoaWZ0KDQscmUubGVuZ3RoKzEpLHdlLndyaXRlX3NoaWZ0KDAscmUsImRiY3MiKTt3ZS5sIT13ZS5sZW5ndGg7KXdlLndyaXRlX3NoaWZ0KDEsMCk7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3Io''@;'; + put 'put ''IlR5cGVkUHJvcGVydHlWYWx1ZSB1bnJlY29nbml6ZWQgdHlwZSAiK0grIiAiK3JlKX1yZXR1cm4gVihbWCx3ZV0pfWZ1bmN0aW9uIGZmKEgscmUpe3ZhciBYPUgubCx3ZT1ILnJlYWRfc2hpZnQoNCkseGU9SC5yZWFkX3NoaWZ0KDQpLEZlPVtdLFplPTAsamU9MCxZZT0tMSxNdD17fTtmb3Io''@;'; + put 'put ''WmU9MDtaZSE9eGU7KytaZSl7dmFyIHh0PUgucmVhZF9zaGlmdCg0KSxSdD1ILnJlYWRfc2hpZnQoNCk7RmVbWmVdPVt4dCxSdCtYXX1GZS5zb3J0KGZ1bmN0aW9uKFRuLE9uKXtyZXR1cm4gVG5bMV0tT25bMV19KTt2YXIgVXQ9e307Zm9yKFplPTA7WmUhPXhlOysrWmUpe2lmKEgubCE9PUZl''@;'; + put 'put ''W1plXVsxXSl7dmFyIG5uPSEwO2lmKFplPjAmJnJlKXN3aXRjaChyZVtGZVtaZS0xXVswXV0udCl7Y2FzZSAyOkgubCsyPT09RmVbWmVdWzFdJiYoSC5sKz0yLG5uPSExKTticmVhaztjYXNlIDgwOmNhc2UgNDEwODpILmw8PUZlW1plXVsxXSYmKEgubD1GZVtaZV1bMV0sbm49ITEpfWlmKCgh''@;'; + put 'put ''cmV8fDA9PVplKSYmSC5sPD1GZVtaZV1bMV0mJihubj0hMSxILmw9RmVbWmVdWzFdKSxubil0aHJvdyBuZXcgRXJyb3IoIlJlYWQgRXJyb3I6IEV4cGVjdGVkIGFkZHJlc3MgIitGZVtaZV1bMV0rIiBhdCAiK0gubCsiIDoiK1plKX1pZihyZSl7dmFyIENuPXJlW0ZlW1plXVswXV07aWYoVXRb''@;'; + put 'put ''Q24ubl09d2QoSCxDbi50LHtyYXc6ITB9KSwidmVyc2lvbiI9PT1Dbi5wJiYoVXRbQ24ubl09U3RyaW5nKFV0W0NuLm5dPj4xNikrIi4iKygiMDAwMCIrU3RyaW5nKDY1NTM1JlV0W0NuLm5dKSkuc2xpY2UoLTQpKSwiQ29kZVBhZ2UiPT1Dbi5uKXN3aXRjaChVdFtDbi5uXSl7Y2FzZSAwOlV0''@;'; + put 'put ''W0NuLm5dPTEyNTI7Y2FzZSA4NzQ6Y2FzZSA5MzI6Y2FzZSA5MzY6Y2FzZSA5NDk6Y2FzZSA5NTA6Y2FzZSAxMjUwOmNhc2UgMTI1MTpjYXNlIDEyNTM6Y2FzZSAxMjU0OmNhc2UgMTI1NTpjYXNlIDEyNTY6Y2FzZSAxMjU3OmNhc2UgMTI1ODpjYXNlIDFlNDpjYXNlIDEyMDA6Y2FzZSAxMjAx''@;'; + put 'put ''OmNhc2UgMTI1MjpjYXNlIDY1ZTM6Y2FzZS01MzY6Y2FzZSA2NTAwMTpjYXNlLTUzNTplZShqZT1VdFtDbi5uXT4+PjAmNjU1MzUpO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJVbnN1cHBvcnRlZCBDb2RlUGFnZTogIitVdFtDbi5uXSl9fWVsc2UgaWYoMT09PUZlW1plXVswXSl7''@;'; + put 'put ''aWYoamU9VXQuQ29kZVBhZ2U9d2QoSCwyKSxlZShqZSksLTEhPT1ZZSl7dmFyIER0PUgubDtILmw9RmVbWWVdWzFdLE10PXlkKEgsamUpLEgubD1EdH19ZWxzZSBpZigwPT09RmVbWmVdWzBdKXtpZigwPT09amUpe1llPVplLEgubD1GZVtaZSsxXVsxXTtjb250aW51ZX1NdD15ZChILGplKX1l''@;'; + put 'put ''bHNle3ZhciBQbix6dD1NdFtGZVtaZV1bMF1dO3N3aXRjaChIW0gubF0pe2Nhc2UgNjU6SC5sKz00LFBuPXcyKEgpO2JyZWFrO2Nhc2UgMzA6Y2FzZSAzMTpILmwrPTQsUG49emYoSCxIW0gubC00XSkucmVwbGFjZSgvXHUwMDAwKyQvLCIiKTticmVhaztjYXNlIDM6SC5sKz00LFBuPUgucmVh''@;'; + put 'put ''ZF9zaGlmdCg0LCJpIik7YnJlYWs7Y2FzZSAxOTpILmwrPTQsUG49SC5yZWFkX3NoaWZ0KDQpO2JyZWFrO2Nhc2UgNTpILmwrPTQsUG49SC5yZWFkX3NoaWZ0KDgsImYiKTticmVhaztjYXNlIDExOkgubCs9NCxQbj10YShILDQpO2JyZWFrO2Nhc2UgNjQ6SC5sKz00LFBuPWRuKFQ4KEgpKTti''@;'; + put 'put ''cmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcigidW5wYXJzZWQgdmFsdWU6ICIrSFtILmxdKX1VdFt6dF09UG59fXJldHVybiBILmw9WCt3ZSxVdH12YXIgSTg9WyJDb2RlUGFnZSIsIlRodW1ibmFpbCIsIl9QSURfTElOS0JBU0UiLCJfUElEX0hMSU5LUyIsIlN5c3RlbUlkZW50aWZpZXIi''@;'; + put 'put ''LCJGTVRJRCJdLmNvbmNhdChbIldvcmtzaGVldHMiLCJTaGVldE5hbWVzIiwiTmFtZWRSYW5nZXMiLCJEZWZpbmVkTmFtZXMiLCJDaGFydHNoZWV0cyIsIkNoYXJ0TmFtZXMiXSk7ZnVuY3Rpb24gUE0oSCl7c3dpdGNoKHR5cGVvZiBIKXtjYXNlImJvb2xlYW4iOnJldHVybiAxMTtjYXNlIm51''@;'; + put 'put ''bWJlciI6cmV0dXJuKDB8SCk9PUg/Mzo1O2Nhc2Uic3RyaW5nIjpyZXR1cm4gMzE7Y2FzZSJvYmplY3QiOmlmKEggaW5zdGFuY2VvZiBEYXRlKXJldHVybiA2NH1yZXR1cm4tMX1mdW5jdGlvbiBDaChILHJlLFgpe3ZhciB3ZT1SaSg4KSx4ZT1bXSxGZT1bXSxaZT04LGplPTAsWWU9UmkoOCks''@;'; + put 'put ''TXQ9UmkoOCk7aWYoWWUud3JpdGVfc2hpZnQoNCwyKSxZZS53cml0ZV9zaGlmdCg0LDEyMDApLE10LndyaXRlX3NoaWZ0KDQsMSksRmUucHVzaChZZSkseGUucHVzaChNdCksWmUrPTgrWWUubGVuZ3RoLCFyZSl7KE10PVJpKDgpKS53cml0ZV9zaGlmdCg0LDApLHhlLnVuc2hpZnQoTXQpO3Zh''@;'; + put 'put ''ciB4dD1bUmkoNCldO2Zvcih4dFswXS53cml0ZV9zaGlmdCg0LEgubGVuZ3RoKSxqZT0wO2plPEgubGVuZ3RoOysramUpe3ZhciBSdD1IW2plXVswXTtmb3IoKFllPVJpKDgrMiooUnQubGVuZ3RoKzEpKyhSdC5sZW5ndGglMj8wOjIpKSkud3JpdGVfc2hpZnQoNCxqZSsyKSxZZS53cml0ZV9z''@;'; + put 'put ''aGlmdCg0LFJ0Lmxlbmd0aCsxKSxZZS53cml0ZV9zaGlmdCgwLFJ0LCJkYmNzIik7WWUubCE9WWUubGVuZ3RoOylZZS53cml0ZV9zaGlmdCgxLDApO3h0LnB1c2goWWUpfVllPVYoeHQpLEZlLnVuc2hpZnQoWWUpLFplKz04K1llLmxlbmd0aH1mb3IoamU9MDtqZTxILmxlbmd0aDsrK2plKWlm''@;'; + put 'put ''KCghcmV8fHJlW0hbamVdWzBdXSkmJiEoSTguaW5kZXhPZihIW2plXVswXSk+LTEpJiZudWxsIT1IW2plXVsxXSl7dmFyIFV0PUhbamVdWzFdLG5uPTA7aWYocmUpe3ZhciBDbj1YW25uPStyZVtIW2plXVswXV1dO2lmKCJ2ZXJzaW9uIj09Q24ucCYmInN0cmluZyI9PXR5cGVvZiBVdCl7dmFy''@;'; + put 'put ''IER0PVV0LnNwbGl0KCIuIik7VXQ9KCtEdFswXTw8MTYpKygrRHRbMV18fDApfVllPUtwKENuLnQsVXQpfWVsc2V7dmFyIHp0PVBNKFV0KTstMT09enQmJih6dD0zMSxVdD1TdHJpbmcoVXQpKSxZZT1LcCh6dCxVdCl9RmUucHVzaChZZSksKE10PVJpKDgpKS53cml0ZV9zaGlmdCg0LHJlP25u''@;'; + put 'put ''OjIramUpLHhlLnB1c2goTXQpLFplKz04K1llLmxlbmd0aH12YXIgUG49OCooRmUubGVuZ3RoKzEpO2ZvcihqZT0wO2plPEZlLmxlbmd0aDsrK2plKXhlW2plXS53cml0ZV9zaGlmdCg0LFBuKSxQbis9RmVbamVdLmxlbmd0aDtyZXR1cm4gd2Uud3JpdGVfc2hpZnQoNCxaZSksd2Uud3JpdGVf''@;'; + put 'put ''c2hpZnQoNCxGZS5sZW5ndGgpLFYoW3dlXS5jb25jYXQoeGUpLmNvbmNhdChGZSkpfWZ1bmN0aW9uIGJkKEgscmUsWCl7dmFyIHdlPUguY29udGVudDtpZighd2UpcmV0dXJue307S2wod2UsMCk7dmFyIHhlLEZlLFplLGplLFllPTA7d2UuY2hrKCJmZWZmIiwiQnl0ZSBPcmRlcjogIiksd2Uu''@;'; + put 'put ''cmVhZF9zaGlmdCgyKTt2YXIgTXQ9d2UucmVhZF9zaGlmdCg0KSx4dD13ZS5yZWFkX3NoaWZ0KDE2KTtpZih4dCE9PW10LnV0aWxzLmNvbnN0cy5IRUFERVJfQ0xTSUQmJnh0IT09WCl0aHJvdyBuZXcgRXJyb3IoIkJhZCBQcm9wZXJ0eVNldCBDTFNJRCAiK3h0KTtpZigxIT09KHhlPXdlLnJl''@;'; + put 'put ''YWRfc2hpZnQoNCkpJiYyIT09eGUpdGhyb3cgbmV3IEVycm9yKCJVbnJlY29nbml6ZWQgI1NldHM6ICIreGUpO2lmKEZlPXdlLnJlYWRfc2hpZnQoMTYpLGplPXdlLnJlYWRfc2hpZnQoNCksMT09PXhlJiZqZSE9PXdlLmwpdGhyb3cgbmV3IEVycm9yKCJMZW5ndGggbWlzbWF0Y2g6ICIramUr''@;'; + put 'put ''IiAhPT0gIit3ZS5sKTsyPT09eGUmJihaZT13ZS5yZWFkX3NoaWZ0KDE2KSxZZT13ZS5yZWFkX3NoaWZ0KDQpKTt2YXIgQ24sUnQ9ZmYod2UscmUpLFV0PXtTeXN0ZW1JZGVudGlmaWVyOk10fTtmb3IodmFyIG5uIGluIFJ0KVV0W25uXT1SdFtubl07aWYoVXQuRk1USUQ9RmUsMT09PXhlKXJl''@;'; + put 'put ''dHVybiBVdDtpZihZZS13ZS5sPT0yJiYod2UubCs9Miksd2UubCE9PVllKXRocm93IG5ldyBFcnJvcigiTGVuZ3RoIG1pc21hdGNoIDI6ICIrd2UubCsiICE9PSAiK1llKTt0cnl7Q249ZmYod2UsbnVsbCl9Y2F0Y2goRHQpe31mb3Iobm4gaW4gQ24pVXRbbm5dPUNuW25uXTtyZXR1cm4gVXQu''@;'; + put 'put ''Rk1USUQ9W0ZlLFplXSxVdH1mdW5jdGlvbiBhMChILHJlLFgsd2UseGUsRmUpe3ZhciBaZT1SaSh4ZT82ODo0OCksamU9W1plXTtaZS53cml0ZV9zaGlmdCgyLDY1NTM0KSxaZS53cml0ZV9zaGlmdCgyLDApLFplLndyaXRlX3NoaWZ0KDQsODQyNDEyNTk5KSxaZS53cml0ZV9zaGlmdCgxNixt''@;'; + put 'put ''dC51dGlscy5jb25zdHMuSEVBREVSX0NMU0lELCJoZXgiKSxaZS53cml0ZV9zaGlmdCg0LHhlPzI6MSksWmUud3JpdGVfc2hpZnQoMTYscmUsImhleCIpLFplLndyaXRlX3NoaWZ0KDQseGU/Njg6NDgpO3ZhciBZZT1DaChILFgsd2UpO2lmKGplLnB1c2goWWUpLHhlKXt2YXIgTXQ9Q2goeGUs''@;'; + put 'put ''bnVsbCxudWxsKTtaZS53cml0ZV9zaGlmdCgxNixGZSwiaGV4IiksWmUud3JpdGVfc2hpZnQoNCw2OCtZZS5sZW5ndGgpLGplLnB1c2goTXQpfXJldHVybiBWKGplKX1mdW5jdGlvbiBGbChILHJlKXtyZXR1cm4gSC5yZWFkX3NoaWZ0KHJlKSxudWxsfWZ1bmN0aW9uIHRhKEgscmUpe3JldHVy''@;'; + put 'put ''biAxPT09SC5yZWFkX3NoaWZ0KHJlKX1mdW5jdGlvbiBqMShILHJlKXtyZXR1cm4gcmV8fChyZT1SaSgyKSkscmUud3JpdGVfc2hpZnQoMiwrISFIKSxyZX1mdW5jdGlvbiBjMShIKXtyZXR1cm4gSC5yZWFkX3NoaWZ0KDIsInUiKX1mdW5jdGlvbiBoZihILHJlKXtyZXR1cm4gcmV8fChyZT1S''@;'; + put 'put ''aSgyKSkscmUud3JpdGVfc2hpZnQoMixIKSxyZX1mdW5jdGlvbiBaYyhILHJlKXtyZXR1cm4gZnVuY3Rpb24gSnMoSCxyZSxYKXtmb3IodmFyIHdlPVtdLHhlPUgubCtyZTtILmw8eGU7KXdlLnB1c2goWChILHhlLUgubCkpO2lmKHhlIT09SC5sKXRocm93IG5ldyBFcnJvcigiU2x1cnAgZXJy''@;'; + put 'put ''b3IiKTtyZXR1cm4gd2V9KEgscmUsYzEpfWZ1bmN0aW9uIFoxKEgscmUsWCl7cmV0dXJuIFh8fChYPVJpKDIpKSxYLndyaXRlX3NoaWZ0KDEsImUiPT1yZT8rSDorISFIKSxYLndyaXRlX3NoaWZ0KDEsImUiPT1yZT8xOjApLFh9ZnVuY3Rpb24gemMoSCxyZSxYKXt2YXIgd2U9SC5yZWFkX3No''@;'; + put 'put ''aWZ0KFgmJlguYmlmZj49MTI/MjoxKSx4ZT0ic2Jjcy1jb250IixGZT1RO1gmJlguYmlmZj49OCYmKFE9MTIwMCksWCYmOCE9WC5iaWZmPzEyPT1YLmJpZmYmJih4ZT0id3N0ciIpOkgucmVhZF9zaGlmdCgxKSYmKHhlPSJkYmNzLWNvbnQiKSxYLmJpZmY+PTImJlguYmlmZjw9NSYmKHhlPSJj''@;'; + put 'put ''cHN0ciIpO3ZhciBqZT13ZT9ILnJlYWRfc2hpZnQod2UseGUpOiIiO3JldHVybiBRPUZlLGplfWZ1bmN0aW9uIGxiKEgpe3ZhciByZT1RO1E9MTIwMDt2YXIgWWUsWD1ILnJlYWRfc2hpZnQoMiksd2U9SC5yZWFkX3NoaWZ0KDEpLHhlPTQmd2UsRmU9OCZ3ZSxaZT0xKygxJndlKSxqZT0wLE10''@;'; + put 'put ''PXt9O0ZlJiYoamU9SC5yZWFkX3NoaWZ0KDIpKSx4ZSYmKFllPUgucmVhZF9zaGlmdCg0KSk7dmFyIFJ0PTA9PT1YPyIiOkgucmVhZF9zaGlmdChYLDI9PVplPyJkYmNzLWNvbnQiOiJzYmNzLWNvbnQiKTtpZihGZSlmb3IoTXQuX1I9W107amUtLSA+MDspTXQuX1IucHVzaCh7aWR4OkgucmVh''@;'; + put 'put ''ZF9zaGlmdCgyKSxpZm50OkgucmVhZF9zaGlmdCgyKX0pO3JldHVybiB4ZSYmKEgubCs9WWUpLE10LnQ9UnQsRmV8fChNdC5yPSI8dD4iK010LnQrIjwvdD4iKSxRPXJlLE10fWZ1bmN0aW9uIEdjKEgscmUpe3ZhciBYPUguUiYmSC5SLmxlbmd0aHx8SC5yO0guciYmKEguUj1XOChILnIpKTt2''@;'; + put 'put ''YXIgd2U9IiIseGU9MDtYP0guUi5mb3JFYWNoKGZ1bmN0aW9uKENuKXt4ZSsrLHdlKz1Dbi52fHwiIn0pOih3ZT1ILnR8fCIiLHhlPTEpO3ZhciBGZT1SaSgzKyh4ZT4xPzI6MCkpO0ZlLndyaXRlX3NoaWZ0KDIsd2UubGVuZ3RoKSxGZS53cml0ZV9zaGlmdCgxLDF8KHhlPjE/ODowKSkseGU+''@;'; + put 'put ''MSYmRmUud3JpdGVfc2hpZnQoMix4ZSk7dmFyIFplPVJpKDIqd2UubGVuZ3RoKTtaZS53cml0ZV9zaGlmdCgyKndlLmxlbmd0aCx3ZSwidXRmMTZsZSIpO3ZhciBqZT1bRmUsWmVdO2lmKFgpe3ZhciBZZT1SaSg0KkguUi5sZW5ndGgpLE10PTA7amUucHVzaChZZSk7Zm9yKHZhciB4dD0wO3h0''@;'; + put 'put ''PEguUi5sZW5ndGg7Kyt4dCl7dmFyIFJ0PUguUlt4dF07WWUud3JpdGVfc2hpZnQoMixNdCksTXQrPShSdC52fHwiIikubGVuZ3RoO3ZhciBVdD1SdC5zP1kxKHJlLmNlbGxYZnMscmUuY2VsbFN0eWxlWGZzLHt0OiJuIix2OjAsczpSdC5zfSxyZSk6MCxubj1yZS5jZWxsWGZzW1V0XS5mb250''@;'; + put 'put ''SWQ7WWUud3JpdGVfc2hpZnQoMixubjw0P25uOm5uKzEpfX1yZXR1cm4gVihqZSl9ZnVuY3Rpb24gY3UoSCxyZSxYKXtpZihYKXtpZihYLmJpZmY+PTImJlguYmlmZjw9NSlyZXR1cm4gSC5yZWFkX3NoaWZ0KHJlLCJjcHN0ciIpO2lmKFguYmlmZj49MTIpcmV0dXJuIEgucmVhZF9zaGlmdChy''@;'; + put 'put ''ZSwiZGJjcy1jb250Iil9dmFyIHhlPUgucmVhZF9zaGlmdCgxKTtyZXR1cm4gSC5yZWFkX3NoaWZ0KHJlLDA9PT14ZT8ic2Jjcy1jb250IjoiZGJjcy1jb250Iil9ZnVuY3Rpb24geDQoSCxyZSxYKXt2YXIgd2U9SC5yZWFkX3NoaWZ0KFgmJjI9PVguYmlmZj8xOjIpO3JldHVybiAwPT09d2U/''@;'; + put 'put ''KEgubCsrLCIiKTpjdShILHdlLFgpfWZ1bmN0aW9uIGRmKEgscmUsWCl7aWYoWC5iaWZmPjUpcmV0dXJuIHg0KEgsMCxYKTt2YXIgd2U9SC5yZWFkX3NoaWZ0KDEpO3JldHVybiAwPT09d2U/KEgubCsrLCIiKTpILnJlYWRfc2hpZnQod2UsWC5iaWZmPD00fHwhSC5sZW5zPyJjcHN0ciI6InNi''@;'; + put 'put ''Y3MtY29udCIpfWZ1bmN0aW9uIFByKEgscmUsWCl7cmV0dXJuIFh8fChYPVJpKDMrMipILmxlbmd0aCkpLFgud3JpdGVfc2hpZnQoMixILmxlbmd0aCksWC53cml0ZV9zaGlmdCgxLDEpLFgud3JpdGVfc2hpZnQoMzEsSCwidXRmMTZsZSIpLFh9ZnVuY3Rpb24gcXAoSCl7dmFyIHJlPUgucmVh''@;'; + put 'put ''ZF9zaGlmdCg0KTtyZXR1cm4gcmU+MD9ILnJlYWRfc2hpZnQocmUsInV0ZjE2bGUiKS5yZXBsYWNlKFQsIiIpOiIifWZ1bmN0aW9uIHBmKEgscmUpe3JlfHwocmU9UmkoNisyKkgubGVuZ3RoKSkscmUud3JpdGVfc2hpZnQoNCwxK0gubGVuZ3RoKTtmb3IodmFyIFg9MDtYPEgubGVuZ3RoOysr''@;'; + put 'put ''WClyZS53cml0ZV9zaGlmdCgyLEguY2hhckNvZGVBdChYKSk7cmV0dXJuIHJlLndyaXRlX3NoaWZ0KDIsMCkscmV9ZnVuY3Rpb24gZTYoSCl7dmFyIHJlPVJpKDUxMiksWD0wLHdlPUguVGFyZ2V0OyJmaWxlOi8vIj09d2Uuc2xpY2UoMCw3KSYmKHdlPXdlLnNsaWNlKDcpKTt2YXIgeGU9d2Uu''@;'; + put 'put ''aW5kZXhPZigiIyIpLEZlPXhlPi0xPzMxOjIzO3N3aXRjaCh3ZS5jaGFyQXQoMCkpe2Nhc2UiIyI6RmU9Mjg7YnJlYWs7Y2FzZSIuIjpGZSY9LTN9cmUud3JpdGVfc2hpZnQoNCwyKSxyZS53cml0ZV9zaGlmdCg0LEZlKTt2YXIgWmU9WzgsNjgxNTgyNyw2NjE5MjM3LDQ4NDk3ODAsODNdO2Zv''@;'; + put 'put ''cihYPTA7WDxaZS5sZW5ndGg7KytYKXJlLndyaXRlX3NoaWZ0KDQsWmVbWF0pO2lmKDI4PT1GZSlwZih3ZT13ZS5zbGljZSgxKSxyZSk7ZWxzZSBpZigyJkZlKXtmb3IoWmU9ImUwIGM5IGVhIDc5IGY5IGJhIGNlIDExIDhjIDgyIDAwIGFhIDAwIDRiIGE5IDBiIi5zcGxpdCgiICIpLFg9MDtY''@;'; + put 'put ''PFplLmxlbmd0aDsrK1gpcmUud3JpdGVfc2hpZnQoMSxwYXJzZUludChaZVtYXSwxNikpO3ZhciBqZT14ZT4tMT93ZS5zbGljZSgwLHhlKTp3ZTtmb3IocmUud3JpdGVfc2hpZnQoNCwyKihqZS5sZW5ndGgrMSkpLFg9MDtYPGplLmxlbmd0aDsrK1gpcmUud3JpdGVfc2hpZnQoMixqZS5jaGFy''@;'; + put 'put ''Q29kZUF0KFgpKTtyZS53cml0ZV9zaGlmdCgyLDApLDgmRmUmJnBmKHhlPi0xP3dlLnNsaWNlKHhlKzEpOiIiLHJlKX1lbHNle2ZvcihaZT0iMDMgMDMgMDAgMDAgMDAgMDAgMDAgMDAgYzAgMDAgMDAgMDAgMDAgMDAgMDAgNDYiLnNwbGl0KCIgIiksWD0wO1g8WmUubGVuZ3RoOysrWClyZS53''@;'; + put 'put ''cml0ZV9zaGlmdCgxLHBhcnNlSW50KFplW1hdLDE2KSk7Zm9yKHZhciBZZT0wOyIuLi8iPT13ZS5zbGljZSgzKlllLDMqWWUrMyl8fCIuLlxcIj09d2Uuc2xpY2UoMypZZSwzKlllKzMpOykrK1llO2ZvcihyZS53cml0ZV9zaGlmdCgyLFllKSxyZS53cml0ZV9zaGlmdCg0LHdlLmxlbmd0aC0z''@;'; + put 'put ''KlllKzEpLFg9MDtYPHdlLmxlbmd0aC0zKlllOysrWClyZS53cml0ZV9zaGlmdCgxLDI1NSZ3ZS5jaGFyQ29kZUF0KFgrMypZZSkpO2ZvcihyZS53cml0ZV9zaGlmdCgxLDApLHJlLndyaXRlX3NoaWZ0KDIsNjU1MzUpLHJlLndyaXRlX3NoaWZ0KDIsNTcwMDUpLFg9MDtYPDY7KytYKXJlLndy''@;'; + put 'put ''aXRlX3NoaWZ0KDQsMCl9cmV0dXJuIHJlLnNsaWNlKDAscmUubCl9ZnVuY3Rpb24gdDYoSCl7cmV0dXJuW0gucmVhZF9zaGlmdCgxKSxILnJlYWRfc2hpZnQoMSksSC5yZWFkX3NoaWZ0KDEpLEgucmVhZF9zaGlmdCgxKV19ZnVuY3Rpb24gUjgoSCxyZSl7dmFyIFg9dDYoSCk7cmV0dXJuIFhb''@;'; + put 'put ''M109MCxYfWZ1bmN0aW9uIEFjKEgpe3JldHVybntyOkgucmVhZF9zaGlmdCgyKSxjOkgucmVhZF9zaGlmdCgyKSxpeGZlOkgucmVhZF9zaGlmdCgyKX19ZnVuY3Rpb24gR2YoSCxyZSxYLHdlKXtyZXR1cm4gd2V8fCh3ZT1SaSg2KSksd2Uud3JpdGVfc2hpZnQoMixIKSx3ZS53cml0ZV9zaGlm''@;'; + put 'put ''dCgyLHJlKSx3ZS53cml0ZV9zaGlmdCgyLFh8fDApLHdlfWZ1bmN0aW9uIG05KEgscmUsWCl7dmFyIHdlPVguYmlmZj44PzQ6MjtyZXR1cm5bSC5yZWFkX3NoaWZ0KHdlKSxILnJlYWRfc2hpZnQod2UsImkiKSxILnJlYWRfc2hpZnQod2UsImkiKV19ZnVuY3Rpb24gdG0oSCl7cmV0dXJuW0gu''@;'; + put 'put ''cmVhZF9zaGlmdCgyKSxXZyhIKV19ZnVuY3Rpb24gbjYoSCl7dmFyIHJlPUgucmVhZF9zaGlmdCgyKSxYPUgucmVhZF9zaGlmdCgyKTtyZXR1cm57czp7YzpILnJlYWRfc2hpZnQoMikscjpyZX0sZTp7YzpILnJlYWRfc2hpZnQoMikscjpYfX19ZnVuY3Rpb24gSnUoSCxyZSl7cmV0dXJuIHJl''@;'; + put 'put ''fHwocmU9UmkoOCkpLHJlLndyaXRlX3NoaWZ0KDIsSC5zLnIpLHJlLndyaXRlX3NoaWZ0KDIsSC5lLnIpLHJlLndyaXRlX3NoaWZ0KDIsSC5zLmMpLHJlLndyaXRlX3NoaWZ0KDIsSC5lLmMpLHJlfWZ1bmN0aW9uIFQ0KEgpe3ZhciByZT1ILnJlYWRfc2hpZnQoMiksWD1ILnJlYWRfc2hpZnQo''@;'; + put 'put ''Mik7cmV0dXJue3M6e2M6SC5yZWFkX3NoaWZ0KDEpLHI6cmV9LGU6e2M6SC5yZWFkX3NoaWZ0KDEpLHI6WH19fXZhciB1Yj1UNDtmdW5jdGlvbiB2OShIKXtILmwrPTQ7dmFyIHJlPUgucmVhZF9zaGlmdCgyKSxYPUgucmVhZF9zaGlmdCgyKSx3ZT1ILnJlYWRfc2hpZnQoMik7cmV0dXJuIEgu''@;'; + put 'put ''bCs9MTIsW1gscmUsd2VdfWZ1bmN0aW9uIGZsKEgpe0gubCs9MixILmwrPUgucmVhZF9zaGlmdCgyKX12YXIgbm09ezA6ZmwsNDpmbCw1OmZsLDY6ZmwsNzpmdW5jdGlvbiBITShIKXtyZXR1cm4gSC5sKz00LEguY2Y9SC5yZWFkX3NoaWZ0KDIpLHt9fSw4OmZsLDk6ZmwsMTA6ZmwsMTE6Zmws''@;'; + put 'put ''MTI6ZmwsMTM6ZnVuY3Rpb24gSTQoSCl7dmFyIHJlPXt9O3JldHVybiBILmwrPTQsSC5sKz0xNixyZS5mU2hhcmVkTm90ZT1ILnJlYWRfc2hpZnQoMiksSC5sKz00LHJlfSwxNDpmbCwxNTpmbCwxNjpmbCwxNzpmbCwxODpmbCwxOTpmbCwyMDpmbCwyMTp2OX07ZnVuY3Rpb24gRHUoSCxyZSl7''@;'; + put 'put ''dmFyIFg9e0JJRkZWZXI6MCxkdDowfTtzd2l0Y2goWC5CSUZGVmVyPUgucmVhZF9zaGlmdCgyKSwocmUtPTIpPj0yJiYoWC5kdD1ILnJlYWRfc2hpZnQoMiksSC5sLT0yKSxYLkJJRkZWZXIpe2Nhc2UgMTUzNjpjYXNlIDEyODA6Y2FzZSAxMDI0OmNhc2UgNzY4OmNhc2UgNTEyOmNhc2UgMjpj''@;'; + put 'put ''YXNlIDc6YnJlYWs7ZGVmYXVsdDppZihyZT42KXRocm93IG5ldyBFcnJvcigiVW5leHBlY3RlZCBCSUZGIFZlciAiK1guQklGRlZlcil9cmV0dXJuIEgucmVhZF9zaGlmdChyZSksWH1mdW5jdGlvbiBnMyhILHJlLFgpe3ZhciB3ZT0xNTM2LHhlPTE2O3N3aXRjaChYLmJvb2tUeXBlKXtjYXNl''@;'; + put 'put ''ImJpZmY4IjpjYXNlInhsYSI6YnJlYWs7Y2FzZSJiaWZmNSI6d2U9MTI4MCx4ZT04O2JyZWFrO2Nhc2UiYmlmZjQiOndlPTQseGU9NjticmVhaztjYXNlImJpZmYzIjp3ZT0zLHhlPTY7YnJlYWs7Y2FzZSJiaWZmMiI6d2U9Mix4ZT00O2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJ1''@;'; + put 'put ''bnN1cHBvcnRlZCBCSUZGIHZlcnNpb24iKX12YXIgRmU9UmkoeGUpO3JldHVybiBGZS53cml0ZV9zaGlmdCgyLHdlKSxGZS53cml0ZV9zaGlmdCgyLHJlKSx4ZT40JiZGZS53cml0ZV9zaGlmdCgyLDI5MjgyKSx4ZT42JiZGZS53cml0ZV9zaGlmdCgyLDE5OTcpLHhlPjgmJihGZS53cml0ZV9z''@;'; + put 'put ''aGlmdCgyLDQ5MTYxKSxGZS53cml0ZV9zaGlmdCgyLDEpLEZlLndyaXRlX3NoaWZ0KDIsMTc5OCksRmUud3JpdGVfc2hpZnQoMiwwKSksRmV9ZnVuY3Rpb24gV2YoSCxyZSl7dmFyIFg9IXJlfHxyZS5iaWZmPj04PzI6MSx3ZT1SaSg4K1gqSC5uYW1lLmxlbmd0aCk7d2Uud3JpdGVfc2hpZnQo''@;'; + put 'put ''NCxILnBvcyksd2Uud3JpdGVfc2hpZnQoMSxILmhzfHwwKSx3ZS53cml0ZV9zaGlmdCgxLEguZHQpLHdlLndyaXRlX3NoaWZ0KDEsSC5uYW1lLmxlbmd0aCkscmUuYmlmZj49OCYmd2Uud3JpdGVfc2hpZnQoMSwxKSx3ZS53cml0ZV9zaGlmdChYKkgubmFtZS5sZW5ndGgsSC5uYW1lLHJlLmJp''@;'; + put 'put ''ZmY8OD8ic2JjcyI6InV0ZjE2bGUiKTt2YXIgeGU9d2Uuc2xpY2UoMCx3ZS5sKTtyZXR1cm4geGUubD13ZS5sLHhlfWZ1bmN0aW9uIFlpKEgpe3JldHVybiBILnJlYWRfc2hpZnQoNCksd2goSCl9ZnVuY3Rpb24gemEoSCl7cmV0dXJuIEgucmVhZF9zaGlmdCg0KSxzOShIKX1mdW5jdGlvbiBL''@;'; + put 'put ''dShILHJlLFgpe3JldHVybiBILnJlYWRfc2hpZnQoNCksWkIoSCwwLFgpfWZ1bmN0aW9uIFdjKEgscmUsWCl7dmFyIHdlPTA7WCYmMj09WC5iaWZmfHwod2U9SC5yZWFkX3NoaWZ0KDIpKTt2YXIgeGU9SC5yZWFkX3NoaWZ0KDIpO3JldHVybiBYJiYyPT1YLmJpZmYmJih3ZT0xLSh4ZT4+MTUp''@;'; + put 'put ''LHhlJj0zMjc2NyksW3tVbnN5bmNlZDoxJndlLER5WmVybzooMiZ3ZSk+PjEsRXhBc2M6KDQmd2UpPj4yLEV4RHNjOig4JndlKT4+M30seGVdfWZ1bmN0aW9uIGhiKEgscmUsWCx3ZSl7dmFyIHhlPVgmJjU9PVguYmlmZjt3ZXx8KHdlPVJpKHhlPzMrcmUubGVuZ3RoOjUrMipyZS5sZW5ndGgp''@;'; + put 'put ''KSx3ZS53cml0ZV9zaGlmdCgyLEgpLHdlLndyaXRlX3NoaWZ0KHhlPzE6MixyZS5sZW5ndGgpLHhlfHx3ZS53cml0ZV9zaGlmdCgxLDEpLHdlLndyaXRlX3NoaWZ0KCh4ZT8xOjIpKnJlLmxlbmd0aCxyZSx4ZT8ic2JjcyI6InV0ZjE2bGUiKTt2YXIgRmU9d2UubGVuZ3RoPndlLmw/d2Uuc2xp''@;'; + put 'put ''Y2UoMCx3ZS5sKTp3ZTtyZXR1cm4gbnVsbD09RmUubCYmKEZlLmw9RmUubGVuZ3RoKSxGZX12YXIgWWM9ZGY7ZnVuY3Rpb24gaW0oSCxyZSxYKXt2YXIgd2U9SC5sK3JlLHhlPTghPVguYmlmZiYmWC5iaWZmPzI6NCxGZT1ILnJlYWRfc2hpZnQoeGUpLFplPUgucmVhZF9zaGlmdCh4ZSksamU9''@;'; + put 'put ''SC5yZWFkX3NoaWZ0KDIpLFllPUgucmVhZF9zaGlmdCgyKTtyZXR1cm4gSC5sPXdlLHtzOntyOkZlLGM6amV9LGU6e3I6WmUsYzpZZX19fWZ1bmN0aW9uIFNoKEgscmUsWCx3ZSl7dmFyIEZlPSFYfHwhWC5iaWZmfHw4PT1YLmJpZmY7d2V8fCh3ZT1SaShYJiY1PT1YLmJpZmY/MTY6MjApKSx3''@;'; + put 'put ''ZS53cml0ZV9zaGlmdCgyLEZlJiZYLmNlbGxTdHlsZXMmJkguZm9udElkJiYoSC5mb250SWQ8ND9ILmZvbnRJZDpILmZvbnRJZCsxKXx8MCk7dmFyIFplPTE7SC5wcm90ZWN0aW9uJiYoSC5wcm90ZWN0aW9uLmVkaXRhYmxlJiYoWmUmPS0yKSxILnByb3RlY3Rpb24uaGlkZGVuJiYoWmV8PTIp''@;'; + put 'put ''KSxILnN0eWxlPyh3ZS53cml0ZV9zaGlmdCgyLEgubnVtRm10SWR8fDApLHdlLndyaXRlX3NoaWZ0KDIsNjU1MjR8WmUpKTood2Uud3JpdGVfc2hpZnQoMixILm51bUZtdElkfHwwKSx3ZS53cml0ZV9zaGlmdCgyLHJlPDw0fFplKSk7dmFyIGplPUguYWxpZ25tZW50fHx7fTtpZihGZSl7dmFy''@;'; + put 'put ''IFllPTAsTXQ9MDtCOS5pbmRleE9mKGplLmhvcml6b250YWwpPi0xJiYoWWV8PUI5LmluZGV4T2YoamUuaG9yaXpvbnRhbCkpLGplLndyYXBUZXh0JiYoWWV8PTgpLHltLmluZGV4T2YoamUudmVydGljYWwpPi0xP1llfD15bS5pbmRleE9mKGplLnZlcnRpY2FsKTw8NDpudWxsPT1qZS52ZXJ0''@;'; + put 'put ''aWNhbCYmKFllfD0zMiksd2Uud3JpdGVfc2hpZnQoMSxZZSksd2Uud3JpdGVfc2hpZnQoMSwwKSxqZS5zaHJpbmtUb0ZpdCYmKE10fD0xNiksd2Uud3JpdGVfc2hpZnQoMixNdCk7dmFyIHh0PW51bGw7bnVsbCE9SC5ib3JkZXJJZCYmKHh0PVguQm9yZGVycyYmWC5Cb3JkZXJzW0guYm9yZGVy''@;'; + put 'put ''SWR8fDBdfHx7fSk7dmFyIFJ0PTAsVXQ9MCxubj0wO3h0JiYobnVsbCE9eHQubGVmdCYmeHQubGVmdC5zdHlsZSYmKFJ0fD0obm49VDMuaW5kZXhPZih4dC5sZWZ0LnN0eWxlKSk+LTE/bm46MCksbnVsbCE9eHQucmlnaHQmJnh0LnJpZ2h0LnN0eWxlJiYoUnR8PSgobm49VDMuaW5kZXhPZih4''@;'; + put 'put ''dC5yaWdodC5zdHlsZSkpPi0xP25uOjApPDw0KSxudWxsIT14dC50b3AmJnh0LnRvcC5zdHlsZSYmKFV0fD0obm49VDMuaW5kZXhPZih4dC50b3Auc3R5bGUpKT4tMT9ubjowKSxudWxsIT14dC5ib3R0b20mJnh0LmJvdHRvbS5zdHlsZSYmKFV0fD0oKG5uPVQzLmluZGV4T2YoeHQuYm90dG9t''@;'; + put 'put ''LnN0eWxlKSk+LTE/bm46MCk8PDQpKSx3ZS53cml0ZV9zaGlmdCgxLFJ0KSx3ZS53cml0ZV9zaGlmdCgxLFV0KSx3ZS53cml0ZV9zaGlmdCgyLDApLHdlLndyaXRlX3NoaWZ0KDIsMCksd2Uud3JpdGVfc2hpZnQoMSwwKTt2YXIgQ249MCxEdD1YLkZpbGxzJiZYLkZpbGxzW0guZmlsbElkfHww''@;'; + put 'put ''XXx8e307KER0LmZnQ29sb3J8fER0LmJnQ29sb3IpJiYoQ258PTQpLHdlLndyaXRlX3NoaWZ0KDEsQ24pO3ZhciB6dD0wO3p0fD1SYihEdC5mZ0NvbG9yLDY1KSx6dHw9UmIoRHQuYmdDb2xvciw2NSk8PDcsd2Uud3JpdGVfc2hpZnQoMix6dCl9ZWxzZSB3ZS53cml0ZV9zaGlmdCg0LDApLHdl''@;'; + put 'put ''LndyaXRlX3NoaWZ0KDQsMCksd2Uud3JpdGVfc2hpZnQoMiwwKTtyZXR1cm4gd2V9ZnVuY3Rpb24gYW0oSCxyZSxYKXt2YXIgd2U9QWMoSCk7KDI9PVguYmlmZnx8OT09cmUpJiYrK0gubDt2YXIgeGU9ZnVuY3Rpb24gc3MoSCl7dmFyIHJlPUgucmVhZF9zaGlmdCgxKTtyZXR1cm4gMT09PUgu''@;'; + put 'put ''cmVhZF9zaGlmdCgxKT9yZToxPT09cmV9KEgpO3JldHVybiB3ZS52YWw9eGUsd2UudD0hMD09PXhlfHwhMT09PXhlPyJiIjoiZSIsd2V9dmFyIEQ0PWZ1bmN0aW9uIF9kKEgscmUsWCl7cmV0dXJuIDA9PT1yZT8iIjpkZihILDAsWCl9O2Z1bmN0aW9uIFpNKEgscmUsWCl7dmFyIHhlLHdlPUgu''@;'; + put 'put ''cmVhZF9zaGlmdCgyKSxGZT17ZkJ1aWx0SW46MSZ3ZSxmV2FudEFkdmlzZTp3ZT4+PjEmMSxmV2FudFBpY3Q6d2U+Pj4yJjEsZk9sZTp3ZT4+PjMmMSxmT2xlTGluazp3ZT4+PjQmMSxjZjp3ZT4+PjUmMTAyMyxmSWNvbjp3ZT4+PjE1JjF9O3JldHVybiAxNDg0OT09PVguc2JjY2gmJih4ZT1m''@;'; + put 'put ''dW5jdGlvbiBCOChILHJlLFgpe0gubCs9NDt2YXIgd2U9SC5sKyhyZS09NCkseGU9emMoSCwwLFgpLEZlPUgucmVhZF9zaGlmdCgyKTtpZihGZSE9PSh3ZS09SC5sKSl0aHJvdyBuZXcgRXJyb3IoIk1hbGZvcm1lZCBBZGRpblVkZjogcGFkZGluZyA9ICIrd2UrIiAhPSAiK0ZlKTtyZXR1cm4g''@;'; + put 'put ''SC5sKz1GZSx4ZX0oSCxyZS0yLFgpKSxGZS5ib2R5PXhlfHxILnJlYWRfc2hpZnQocmUtMiksInN0cmluZyI9PXR5cGVvZiB4ZSYmKEZlLk5hbWU9eGUpLEZlfXZhciB6TT1bIl94bG5tLkNvbnNvbGlkYXRlX0FyZWEiLCJfeGxubS5BdXRvX09wZW4iLCJfeGxubS5BdXRvX0Nsb3NlIiwiX3hs''@;'; + put 'put ''bm0uRXh0cmFjdCIsIl94bG5tLkRhdGFiYXNlIiwiX3hsbm0uQ3JpdGVyaWEiLCJfeGxubS5QcmludF9BcmVhIiwiX3hsbm0uUHJpbnRfVGl0bGVzIiwiX3hsbm0uUmVjb3JkZXIiLCJfeGxubS5EYXRhX0Zvcm0iLCJfeGxubS5BdXRvX0FjdGl2YXRlIiwiX3hsbm0uQXV0b19EZWFjdGl2YXRl''@;'; + put 'put ''IiwiX3hsbm0uU2hlZXRfVGl0bGUiLCJfeGxubS5fRmlsdGVyRGF0YWJhc2UiXTtmdW5jdGlvbiBwYihILHJlLFgpe3ZhciB3ZT1ILmwrcmUseGU9SC5yZWFkX3NoaWZ0KDIpLEZlPUgucmVhZF9zaGlmdCgxKSxaZT1ILnJlYWRfc2hpZnQoMSksamU9SC5yZWFkX3NoaWZ0KFgmJjI9PVguYmlm''@;'; + put 'put ''Zj8xOjIpLFllPTA7KCFYfHxYLmJpZmY+PTUpJiYoNSE9WC5iaWZmJiYoSC5sKz0yKSxZZT1ILnJlYWRfc2hpZnQoMiksNT09WC5iaWZmJiYoSC5sKz0yKSxILmwrPTQpO3ZhciBNdD1jdShILFplLFgpOzMyJnhlJiYoTXQ9ek1bTXQuY2hhckNvZGVBdCgwKV0pO3ZhciB4dD13ZS1ILmw7WCYm''@;'; + put 'put ''Mj09WC5iaWZmJiYtLXh0O3ZhciBSdD13ZSE9SC5sJiYwIT09amUmJnh0PjA/ZnVuY3Rpb24gdEEoSCxyZSxYLHdlKXt2YXIgWmUseGU9SC5sK3JlLEZlPWo0KEgsd2UsWCk7cmV0dXJuIHhlIT09SC5sJiYoWmU9T2QoSCx4ZS1ILmwsRmUsWCkpLFtGZSxaZV19KEgseHQsWCxqZSk6W107cmV0''@;'; + put 'put ''dXJue2NoS2V5OkZlLE5hbWU6TXQsaXRhYjpZZSxyZ2NlOlJ0fX1mdW5jdGlvbiBWOChILHJlLFgpe2lmKFguYmlmZjw4KXJldHVybiBmdW5jdGlvbiBqOChILHJlLFgpezM9PUhbSC5sKzFdJiZIW0gubF0rKzt2YXIgd2U9emMoSCwwLFgpO3JldHVybiAzPT13ZS5jaGFyQ29kZUF0KDApP3dl''@;'; + put 'put ''LnNsaWNlKDEpOndlfShILDAsWCk7Zm9yKHZhciB3ZT1bXSx4ZT1ILmwrcmUsRmU9SC5yZWFkX3NoaWZ0KFguYmlmZj44PzQ6Mik7MCE9RmUtLTspd2UucHVzaChtOShILDAsWCkpO2lmKEgubCE9eGUpdGhyb3cgbmV3IEVycm9yKCJCYWQgRXh0ZXJuU2hlZXQ6ICIrSC5sKyIgIT0gIit4ZSk7''@;'; + put 'put ''cmV0dXJuIHdlfWZ1bmN0aW9uIGdiKEgscmUsWCl7dmFyIHdlPXViKEgsNik7c3dpdGNoKFguYmlmZil7Y2FzZSAyOkgubCsrLHJlLT03O2JyZWFrO2Nhc2UgMzpjYXNlIDQ6SC5sKz0yLHJlLT04O2JyZWFrO2RlZmF1bHQ6SC5sKz02LHJlLT0xMn1yZXR1cm5bd2UsaEcoSCxyZSxYKV19dmFy''@;'; + put 'put ''IGI5PVtdO2Z1bmN0aW9uIFdNKEgpe3ZhciByZT1SaSgyNCksWD11bChIWzBdKTtyZS53cml0ZV9zaGlmdCgyLFgucikscmUud3JpdGVfc2hpZnQoMixYLnIpLHJlLndyaXRlX3NoaWZ0KDIsWC5jKSxyZS53cml0ZV9zaGlmdCgyLFguYyk7Zm9yKHZhciB3ZT0iZDAgYzkgZWEgNzkgZjkgYmEg''@;'; + put 'put ''Y2UgMTEgOGMgODIgMDAgYWEgMDAgNGIgYTkgMGIiLnNwbGl0KCIgIikseGU9MDt4ZTwxNjsrK3hlKXJlLndyaXRlX3NoaWZ0KDEscGFyc2VJbnQod2VbeGVdLDE2KSk7cmV0dXJuIFYoW3JlLGU2KEhbMV0pXSl9ZnVuY3Rpb24gc20oSCl7dmFyIHJlPUhbMV0uVG9vbHRpcCxYPVJpKDEwKzIq''@;'; + put 'put ''KHJlLmxlbmd0aCsxKSk7WC53cml0ZV9zaGlmdCgyLDIwNDgpO3ZhciB3ZT11bChIWzBdKTtYLndyaXRlX3NoaWZ0KDIsd2UuciksWC53cml0ZV9zaGlmdCgyLHdlLnIpLFgud3JpdGVfc2hpZnQoMix3ZS5jKSxYLndyaXRlX3NoaWZ0KDIsd2UuYyk7Zm9yKHZhciB4ZT0wO3hlPHJlLmxlbmd0''@;'; + put 'put ''aDsrK3hlKVgud3JpdGVfc2hpZnQoMixyZS5jaGFyQ29kZUF0KHhlKSk7cmV0dXJuIFgud3JpdGVfc2hpZnQoMiwwKSxYfWZ1bmN0aW9uIHYzKEgscmUsWCl7aWYoIVguY2VsbFN0eWxlcylyZXR1cm4gX3MoSCxyZSk7dmFyIHdlPVgmJlguYmlmZj49MTI/NDoyLHhlPUgucmVhZF9zaGlmdCh3''@;'; + put 'put ''ZSksRmU9SC5yZWFkX3NoaWZ0KHdlKSxaZT1ILnJlYWRfc2hpZnQod2UpLGplPUgucmVhZF9zaGlmdCh3ZSksWWU9SC5yZWFkX3NoaWZ0KDIpOzI9PXdlJiYoSC5sKz0yKTt2YXIgTXQ9e3M6eGUsZTpGZSx3OlplLGl4ZmU6amUsZmxhZ3M6WWV9O3JldHVybihYLmJpZmY+PTV8fCFYLmJpZmYp''@;'; + put 'put ''JiYoTXQubGV2ZWw9WWU+PjgmNyksTXR9YjlbOF09ZnVuY3Rpb24oSCxyZSl7dmFyIFg9SC5sK3JlO0gubCs9MTA7dmFyIHdlPUgucmVhZF9zaGlmdCgyKTtILmwrPTQsSC5sKz0yLEgubCs9MixILmwrPTIsSC5sKz00O3ZhciB4ZT1ILnJlYWRfc2hpZnQoMSk7cmV0dXJuIEgubCs9eGUsSC5s''@;'; + put 'put ''PVgse2ZtdDp3ZX19O3ZhciB4Uj1BYyxrOT1aYyx6OD14NDt2YXIgWWY9ZnVuY3Rpb24oKXt2YXIgSD17MTo0MzcsMjo4NTAsMzoxMjUyLDQ6MWU0LDEwMDo4NTIsMTAxOjg2NiwxMDI6ODY1LDEwMzo4NjEsMTA0Ojg5NSwxMDU6NjIwLDEwNjo3MzcsMTA3Ojg1NywxMjA6OTUwLDEyMTo5NDks''@;'; + put 'put ''MTIyOjkzNiwxMjM6OTMyLDEyNDo4NzQsMTI1OjEyNTUsMTI2OjEyNTYsMTUwOjEwMDA3LDE1MToxMDAyOSwxNTI6MTAwMDYsMjAwOjEyNTAsMjAxOjEyNTEsMjAyOjEyNTQsMjAzOjEyNTMsMDoyMDEyNyw4Ojg2NSw5OjQzNywxMDo4NTAsMTE6NDM3LDEzOjQzNywxNDo4NTAsMTU6NDM3LDE2''@;'; + put 'put ''Ojg1MCwxNzo0MzcsMTg6ODUwLDE5OjkzMiwyMDo4NTAsMjE6NDM3LDIyOjg1MCwyMzo4NjUsMjQ6NDM3LDI1OjQzNywyNjo4NTAsMjc6NDM3LDI4Ojg2MywyOTo4NTAsMzE6ODUyLDM0Ojg1MiwzNTo4NTIsMzY6ODYwLDM3Ojg1MCwzODo4NjYsNTU6ODUwLDY0Ojg1Miw3Nzo5MzYsNzg6OTQ5''@;'; + put 'put ''LDc5Ojk1MCw4MDo4NzQsODc6MTI1Miw4ODoxMjUyLDg5OjEyNTIsMTA4Ojg2MywxMzQ6NzM3LDEzNTo4NTIsMTM2Ojg1NywyMDQ6MTI1NywyNTU6MTY5Njl9LHJlPXR0KHsxOjQzNywyOjg1MCwzOjEyNTIsNDoxZTQsMTAwOjg1MiwxMDE6ODY2LDEwMjo4NjUsMTAzOjg2MSwxMDQ6ODk1LDEw''@;'; + put 'put ''NTo2MjAsMTA2OjczNywxMDc6ODU3LDEyMDo5NTAsMTIxOjk0OSwxMjI6OTM2LDEyMzo5MzIsMTI0Ojg3NCwxMjU6MTI1NSwxMjY6MTI1NiwxNTA6MTAwMDcsMTUxOjEwMDI5LDE1MjoxMDAwNiwyMDA6MTI1MCwyMDE6MTI1MSwyMDI6MTI1NCwyMDM6MTI1MywwOjIwMTI3fSk7ZnVuY3Rpb24g''@;'; + put 'put ''eGUoWWUsTXQpe3ZhciB4dD1NdHx8e307cmV0dXJuIHh0LmRhdGVORnx8KHh0LmRhdGVORj0ieXl5eW1tZGQiKSx2ZChmdW5jdGlvbiB3ZShZZSxNdCl7dmFyIHh0PVtdLFJ0PWhlKDEpO3N3aXRjaChNdC50eXBlKXtjYXNlImJhc2U2NCI6UnQ9eihTZS5kZWNvZGUoWWUpKTticmVhaztjYXNl''@;'; + put 'put ''ImJpbmFyeSI6UnQ9eihZZSk7YnJlYWs7Y2FzZSJidWZmZXIiOmNhc2UiYXJyYXkiOlJ0PVllfUtsKFJ0LDApO3ZhciBVdD1SdC5yZWFkX3NoaWZ0KDEpLG5uPSEhKDEzNiZVdCksQ249ITEsRHQ9ITE7c3dpdGNoKFV0KXtjYXNlIDI6Y2FzZSAzOmNhc2UgMTMxOmNhc2UgMTM5OmNhc2UgMjQ1''@;'; + put 'put ''OmJyZWFrO2Nhc2UgNDg6Y2FzZSA0OTpDbj0hMCxubj0hMDticmVhaztjYXNlIDE0MDpEdD0hMDticmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiREJGIFVuc3VwcG9ydGVkIFZlcnNpb246ICIrVXQudG9TdHJpbmcoMTYpKX12YXIgenQ9MCxQbj01MjE7Mj09VXQmJih6dD1SdC5yZWFk''@;'; + put 'put ''X3NoaWZ0KDIpKSxSdC5sKz0zLDIhPVV0JiYoenQ9UnQucmVhZF9zaGlmdCg0KSksenQ+MTA0ODU3NiYmKHp0PTFlNiksMiE9VXQmJihQbj1SdC5yZWFkX3NoaWZ0KDIpKTt2YXIgVG49UnQucmVhZF9zaGlmdCgyKSxPbj1NdC5jb2RlcGFnZXx8MTI1MjsyIT1VdCYmKFJ0LmwrPTE2LFJ0LnJl''@;'; + put 'put ''YWRfc2hpZnQoMSksMCE9PVJ0W1J0LmxdJiYoT249SFtSdFtSdC5sXV0pLFJ0LmwrPTEsUnQubCs9MiksRHQmJihSdC5sKz0zNik7Zm9yKHZhciBZbj1bXSxNcj17fSxhaT1NYXRoLm1pbihSdC5sZW5ndGgsMj09VXQ/NTIxOlBuLTEwLShDbj8yNjQ6MCkpLHlyPUR0PzMyOjExO1J0Lmw8YWkm''@;'; + put 'put ''JjEzIT1SdFtSdC5sXTspc3dpdGNoKE1yPXt9LE1yLm5hbWU9Y3B0YWJsZS51dGlscy5kZWNvZGUoT24sUnQuc2xpY2UoUnQubCxSdC5sK3lyKSkucmVwbGFjZSgvW1x1MDAwMFxyXG5dLiokL2csIiIpLFJ0LmwrPXlyLE1yLnR5cGU9U3RyaW5nLmZyb21DaGFyQ29kZShSdC5yZWFkX3NoaWZ0''@;'; + put 'put ''KDEpKSwyIT1VdCYmIUR0JiYoTXIub2Zmc2V0PVJ0LnJlYWRfc2hpZnQoNCkpLE1yLmxlbj1SdC5yZWFkX3NoaWZ0KDEpLDI9PVV0JiYoTXIub2Zmc2V0PVJ0LnJlYWRfc2hpZnQoMikpLE1yLmRlYz1SdC5yZWFkX3NoaWZ0KDEpLE1yLm5hbWUubGVuZ3RoJiZZbi5wdXNoKE1yKSwyIT1VdCYm''@;'; + put 'put ''KFJ0LmwrPUR0PzEzOjE0KSxNci50eXBlKXtjYXNlIkIiOighQ258fDghPU1yLmxlbikmJk10LldURiYmY29uc29sZS5sb2coIlNraXBwaW5nICIrTXIubmFtZSsiOiIrTXIudHlwZSk7YnJlYWs7Y2FzZSJHIjpjYXNlIlAiOk10LldURiYmY29uc29sZS5sb2coIlNraXBwaW5nICIrTXIubmFt''@;'; + put 'put ''ZSsiOiIrTXIudHlwZSk7YnJlYWs7Y2FzZSIrIjpjYXNlIjAiOmNhc2UiQCI6Y2FzZSJDIjpjYXNlIkQiOmNhc2UiRiI6Y2FzZSJJIjpjYXNlIkwiOmNhc2UiTSI6Y2FzZSJOIjpjYXNlIk8iOmNhc2UiVCI6Y2FzZSJZIjpicmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiVW5rbm93biBG''@;'; + put 'put ''aWVsZCBUeXBlOiAiK01yLnR5cGUpfWlmKDEzIT09UnRbUnQubF0mJihSdC5sPVBuLTEpLDEzIT09UnQucmVhZF9zaGlmdCgxKSl0aHJvdyBuZXcgRXJyb3IoIkRCRiBUZXJtaW5hdG9yIG5vdCBmb3VuZCAiK1J0LmwrIiAiK1J0W1J0LmxdKTtSdC5sPVBuO3ZhciBhcj0wLEdyPTA7Zm9yKHh0''@;'; + put 'put ''WzBdPVtdLEdyPTA7R3IhPVluLmxlbmd0aDsrK0dyKXh0WzBdW0dyXT1ZbltHcl0ubmFtZTtmb3IoO3p0LS0gPjA7KWlmKDQyIT09UnRbUnQubF0pZm9yKCsrUnQubCx4dFsrK2FyXT1bXSxHcj0wLEdyPTA7R3IhPVluLmxlbmd0aDsrK0dyKXt2YXIgenI9UnQuc2xpY2UoUnQubCxSdC5sK1lu''@;'; + put 'put ''W0dyXS5sZW4pO1J0LmwrPVluW0dyXS5sZW4sS2woenIsMCk7dmFyIHFyPWNwdGFibGUudXRpbHMuZGVjb2RlKE9uLHpyKTtzd2l0Y2goWW5bR3JdLnR5cGUpe2Nhc2UiQyI6cXIudHJpbSgpLmxlbmd0aCYmKHh0W2FyXVtHcl09cXIucmVwbGFjZSgvXHMrJC8sIiIpKTticmVhaztjYXNlIkQi''@;'; + put 'put ''Onh0W2FyXVtHcl09OD09PXFyLmxlbmd0aD9uZXcgRGF0ZSgrcXIuc2xpY2UoMCw0KSwrcXIuc2xpY2UoNCw2KS0xLCtxci5zbGljZSg2LDgpKTpxcjticmVhaztjYXNlIkYiOnh0W2FyXVtHcl09cGFyc2VGbG9hdChxci50cmltKCkpO2JyZWFrO2Nhc2UiKyI6Y2FzZSJJIjp4dFthcl1bR3Jd''@;'; + put 'put ''PUR0PzIxNDc0ODM2NDheenIucmVhZF9zaGlmdCgtNCwiaSIpOnpyLnJlYWRfc2hpZnQoNCwiaSIpO2JyZWFrO2Nhc2UiTCI6c3dpdGNoKHFyLnRyaW0oKS50b1VwcGVyQ2FzZSgpKXtjYXNlIlkiOmNhc2UiVCI6eHRbYXJdW0dyXT0hMDticmVhaztjYXNlIk4iOmNhc2UiRiI6eHRbYXJdW0dy''@;'; + put 'put ''XT0hMTticmVhaztjYXNlIiI6Y2FzZSI/IjpicmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiREJGIFVucmVjb2duaXplZCBMOnwiK3FyKyJ8Iil9YnJlYWs7Y2FzZSJNIjppZighbm4pdGhyb3cgbmV3IEVycm9yKCJEQkYgVW5leHBlY3RlZCBNRU1PIGZvciB0eXBlICIrVXQudG9TdHJp''@;'; + put 'put ''bmcoMTYpKTt4dFthcl1bR3JdPSIjI01FTU8jIyIrKER0P3BhcnNlSW50KHFyLnRyaW0oKSwxMCk6enIucmVhZF9zaGlmdCg0KSk7YnJlYWs7Y2FzZSJOIjoocXI9cXIucmVwbGFjZSgvXHUwMDAwL2csIiIpLnRyaW0oKSkmJiIuIiE9cXImJih4dFthcl1bR3JdPStxcnx8MCk7YnJlYWs7Y2Fz''@;'; + put 'put ''ZSJAIjp4dFthcl1bR3JdPW5ldyBEYXRlKHpyLnJlYWRfc2hpZnQoLTgsImYiKS02MjEzNTY4MzJlNSk7YnJlYWs7Y2FzZSJUIjp4dFthcl1bR3JdPW5ldyBEYXRlKDg2NGU1Kih6ci5yZWFkX3NoaWZ0KDQpLTI0NDA1ODgpK3pyLnJlYWRfc2hpZnQoNCkpO2JyZWFrO2Nhc2UiWSI6eHRbYXJd''@;'; + put 'put ''W0dyXT16ci5yZWFkX3NoaWZ0KDQsImkiKS8xZTQ7YnJlYWs7Y2FzZSJPIjp4dFthcl1bR3JdPS16ci5yZWFkX3NoaWZ0KC04LCJmIik7YnJlYWs7Y2FzZSJCIjppZihDbiYmOD09WW5bR3JdLmxlbil7eHRbYXJdW0dyXT16ci5yZWFkX3NoaWZ0KDgsImYiKTticmVha31jYXNlIkciOmNhc2Ui''@;'; + put 'put ''UCI6enIubCs9WW5bR3JdLmxlbjticmVhaztjYXNlIjAiOmlmKCJfTnVsbEZsYWdzIj09PVluW0dyXS5uYW1lKWJyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJEQkYgVW5zdXBwb3J0ZWQgZGF0YSB0eXBlICIrWW5bR3JdLnR5cGUpfX1lbHNlIFJ0LmwrPVRuO2lmKDIhPVV0JiZSdC5s''@;'; + put 'put ''PFJ0Lmxlbmd0aCYmMjYhPVJ0W1J0LmwrK10pdGhyb3cgbmV3IEVycm9yKCJEQkYgRU9GIE1hcmtlciBtaXNzaW5nICIrKFJ0LmwtMSkrIiBvZiAiK1J0Lmxlbmd0aCsiICIrUnRbUnQubC0xXS50b1N0cmluZygxNikpO3JldHVybiBNdCYmTXQuc2hlZXRSb3dzJiYoeHQ9eHQuc2xpY2UoMCxN''@;'; + put 'put ''dC5zaGVldFJvd3MpKSx4dH0oWWUseHQpLHh0KX12YXIgWmU9e0I6OCxDOjI1MCxMOjEsRDo4LCI/IjowLCIiOjB9O3JldHVybnt2ZXJzaW9uczpbMiwzLDQ4LDQ5LDEzMSwxMzksMTQwLDI0NV0sdG9fd29ya2Jvb2s6ZnVuY3Rpb24gRmUoWWUsTXQpe3RyeXtyZXR1cm4gdzEoeGUoWWUsTXQp''@;'; + put 'put ''LE10KX1jYXRjaCh4dCl7aWYoTXQmJk10LldURil0aHJvdyB4dH1yZXR1cm57U2hlZXROYW1lczpbXSxTaGVldHM6e319fSx0b19zaGVldDp4ZSxmcm9tX3NoZWV0OmZ1bmN0aW9uIGplKFllLE10KXt2YXIgeHQ9TXR8fHt9O2lmKCt4dC5jb2RlcGFnZT49MCYmZWUoK3h0LmNvZGVwYWdlKSwi''@;'; + put 'put ''c3RyaW5nIj09eHQudHlwZSl0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCB3cml0ZSBEQkYgdG8gSlMgc3RyaW5nIik7dmFyIFJ0PUoyKCksVXQ9TEEoWWUse2hlYWRlcjoxLHJhdzohMCxjZWxsRGF0ZXM6ITB9KSxubj1VdFswXSxDbj1VdC5zbGljZSgxKSxEdD0wLHp0PTAsUG49MCxUbj0xO2Zv''@;'; + put 'put ''cihEdD0wO0R0PG5uLmxlbmd0aDsrK0R0KWlmKG51bGwhPUR0KXtpZigrK1BuLCJudW1iZXIiPT10eXBlb2Ygbm5bRHRdJiYobm5bRHRdPW5uW0R0XS50b1N0cmluZygxMCkpLCJzdHJpbmciIT10eXBlb2Ygbm5bRHRdKXRocm93IG5ldyBFcnJvcigiREJGIEludmFsaWQgY29sdW1uIG5hbWUg''@;'; + put 'put ''IitubltEdF0rIiB8Iit0eXBlb2Ygbm5bRHRdKyJ8Iik7aWYobm4uaW5kZXhPZihubltEdF0pIT09RHQpZm9yKHp0PTA7enQ8MTAyNDsrK3p0KWlmKC0xPT1ubi5pbmRleE9mKG5uW0R0XSsiXyIrenQpKXtubltEdF0rPSJfIit6dDticmVha319dmFyIE9uPUZvKFllWyIhcmVmIl0pLFluPVtd''@;'; + put 'put ''O2ZvcihEdD0wO0R0PD1Pbi5lLmMtT24ucy5jOysrRHQpe3ZhciBNcj1bXTtmb3IoenQ9MDt6dDxDbi5sZW5ndGg7Kyt6dCludWxsIT1Dblt6dF1bRHRdJiZNci5wdXNoKENuW3p0XVtEdF0pO2lmKDAhPU1yLmxlbmd0aCYmbnVsbCE9bm5bRHRdKXt2YXIgYWk9IiIseXI9IiI7Zm9yKHp0PTA7''@;'; + put 'put ''enQ8TXIubGVuZ3RoOysrenQpe3N3aXRjaCh0eXBlb2YgTXJbenRdKXtjYXNlIm51bWJlciI6eXI9IkIiO2JyZWFrO2Nhc2Uic3RyaW5nIjpkZWZhdWx0OnlyPSJDIjticmVhaztjYXNlImJvb2xlYW4iOnlyPSJMIjticmVhaztjYXNlIm9iamVjdCI6eXI9TXJbenRdaW5zdGFuY2VvZiBEYXRl''@;'; + put 'put ''PyJEIjoiQyJ9aWYoIkMiPT0oYWk9YWkmJmFpIT15cj8iQyI6eXIpKWJyZWFrfVRuKz1aZVthaV18fDAsWW5bRHRdPWFpfWVsc2UgWW5bRHRdPSI/In12YXIgYXI9UnQubmV4dCgzMik7Zm9yKGFyLndyaXRlX3NoaWZ0KDQsMzE4OTAyNTc2KSxhci53cml0ZV9zaGlmdCg0LENuLmxlbmd0aCks''@;'; + put 'put ''YXIud3JpdGVfc2hpZnQoMiwyOTYrMzIqUG4pLGFyLndyaXRlX3NoaWZ0KDIsVG4pLER0PTA7RHQ8NDsrK0R0KWFyLndyaXRlX3NoaWZ0KDQsMCk7Zm9yKGFyLndyaXRlX3NoaWZ0KDQsMHwoK3JlW1pdfHwzKTw8OCksRHQ9MCx6dD0wO0R0PG5uLmxlbmd0aDsrK0R0KWlmKG51bGwhPW5uW0R0''@;'; + put 'put ''XSl7dmFyIEdyPVJ0Lm5leHQoMzIpLHpyPShubltEdF0uc2xpY2UoLTEwKSsiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIpLnNsaWNlKDAsMTEpO0dyLndyaXRlX3NoaWZ0KDEsenIsInNiY3MiKSxHci53cml0ZV9zaGlmdCgxLCI/Ij09WW5bRHRdPyJDIjpZbltEdF0sInNiY3MiKSxHci53cml0''@;'; + put 'put ''ZV9zaGlmdCg0LHp0KSxHci53cml0ZV9zaGlmdCgxLFplW1luW0R0XV18fDApLEdyLndyaXRlX3NoaWZ0KDEsMCksR3Iud3JpdGVfc2hpZnQoMSwyKSxHci53cml0ZV9zaGlmdCg0LDApLEdyLndyaXRlX3NoaWZ0KDEsMCksR3Iud3JpdGVfc2hpZnQoNCwwKSxHci53cml0ZV9zaGlmdCg0LDAp''@;'; + put 'put ''LHp0Kz1aZVtZbltEdF1dfHwwfXZhciBxcj1SdC5uZXh0KDI2NCk7Zm9yKHFyLndyaXRlX3NoaWZ0KDQsMTMpLER0PTA7RHQ8NjU7KytEdClxci53cml0ZV9zaGlmdCg0LDApO2ZvcihEdD0wO0R0PENuLmxlbmd0aDsrK0R0KXt2YXIgb2k9UnQubmV4dChUbik7Zm9yKG9pLndyaXRlX3NoaWZ0''@;'; + put 'put ''KDEsMCksenQ9MDt6dDxubi5sZW5ndGg7Kyt6dClpZihudWxsIT1ublt6dF0pc3dpdGNoKFluW3p0XSl7Y2FzZSJMIjpvaS53cml0ZV9zaGlmdCgxLG51bGw9PUNuW0R0XVt6dF0/NjM6Q25bRHRdW3p0XT84NDo3MCk7YnJlYWs7Y2FzZSJCIjpvaS53cml0ZV9zaGlmdCg4LENuW0R0XVt6dF18''@;'; + put 'put ''fDAsImYiKTticmVhaztjYXNlIkQiOkNuW0R0XVt6dF0/KG9pLndyaXRlX3NoaWZ0KDQsKCIwMDAwIitDbltEdF1benRdLmdldEZ1bGxZZWFyKCkpLnNsaWNlKC00KSwic2JjcyIpLG9pLndyaXRlX3NoaWZ0KDIsKCIwMCIrKENuW0R0XVt6dF0uZ2V0TW9udGgoKSsxKSkuc2xpY2UoLTIpLCJz''@;'; + put 'put ''YmNzIiksb2kud3JpdGVfc2hpZnQoMiwoIjAwIitDbltEdF1benRdLmdldERhdGUoKSkuc2xpY2UoLTIpLCJzYmNzIikpOm9pLndyaXRlX3NoaWZ0KDgsIjAwMDAwMDAwIiwic2JjcyIpO2JyZWFrO2Nhc2UiQyI6dmFyIGNyPVN0cmluZyhDbltEdF1benRdfHwiIik7Zm9yKG9pLndyaXRlX3No''@;'; + put 'put ''aWZ0KDEsY3IsInNiY3MiKSxQbj0wO1BuPDI1MC1jci5sZW5ndGg7KytQbilvaS53cml0ZV9zaGlmdCgxLDMyKX19cmV0dXJuIFJ0Lm5leHQoMSkud3JpdGVfc2hpZnQoMSwyNiksUnQuZW5kKCl9fX0oKSxmbT1mdW5jdGlvbigpe3ZhciBIPXtBQToiXHhjMCIsQkE6Ilx4YzEiLENBOiJceGMy''@;'; + put 'put ''IixEQToxOTUsSEE6Ilx4YzQiLEpBOjE5NyxBRToiXHhjOCIsQkU6Ilx4YzkiLENFOiJceGNhIixIRToiXHhjYiIsQUk6Ilx4Y2MiLEJJOiJceGNkIixDSToiXHhjZSIsSEk6Ilx4Y2YiLEFPOiJceGQyIixCTzoiXHhkMyIsQ086Ilx4ZDQiLERPOjIxMyxITzoiXHhkNiIsQVU6Ilx4ZDkiLEJV''@;'; + put 'put ''OiJceGRhIixDVToiXHhkYiIsSFU6Ilx4ZGMiLEFhOiJceGUwIixCYToiXHhlMSIsQ2E6Ilx4ZTIiLERhOjIyNyxIYToiXHhlNCIsSmE6MjI5LEFlOiJceGU4IixCZToiXHhlOSIsQ2U6Ilx4ZWEiLEhlOiJceGViIixBaToiXHhlYyIsQmk6Ilx4ZWQiLENpOiJceGVlIixIaToiXHhlZiIsQW86''@;'; + put 'put ''Ilx4ZjIiLEJvOiJceGYzIixDbzoiXHhmNCIsRG86MjQ1LEhvOiJceGY2IixBdToiXHhmOSIsQnU6Ilx4ZmEiLEN1OiJceGZiIixIdToiXHhmYyIsS0M6Ilx4YzciLEtjOiJceGU3IixxOiJceGU2Iix6OiJcdTAxNTMiLGE6Ilx4YzYiLGo6Ilx1MDE1MiIsRE46MjA5LERuOjI0MSxIeToyNTUs''@;'; + put 'put ''UzoxNjksYzoxNzAsUjoxNzQsIkIgIjoxODAsMDoxNzYsMToxNzcsMjoxNzgsMzoxNzksNToxODEsNjoxODIsNzoxODMsUToxODUsazoxODYsYjoyMDgsaToyMTYsbDoyMjIsczoyNDAseToyNDgsIiEiOjE2MSwnIic6MTYyLCIjIjoxNjMsIigiOjE2NCwiJSI6MTY1LCInIjoxNjcsIkggIjox''@;'; + put 'put ''NjgsIisiOjE3MSwiOyI6MTg3LCI8IjoxODgsIj0iOjE4OSwiPiI6MTkwLCI/IjoxOTEsInsiOjIyM30scmU9bmV3IFJlZ0V4cCgiXHgxYk4oIitvbihIKS5qb2luKCJ8IikucmVwbGFjZSgvXHxcfFx8LywifFxcfHwiKS5yZXBsYWNlKC8oWz8oKStdKS9nLCJcXCQxIikrInxcXHwpIiwiZ20i''@;'; + put 'put ''KSxYPWZ1bmN0aW9uKFV0LG5uKXt2YXIgQ249SFtubl07cmV0dXJuIm51bWJlciI9PXR5cGVvZiBDbj92ZShDbik6Q259LHdlPWZ1bmN0aW9uKFV0LG5uLENuKXt2YXIgRHQ9bm4uY2hhckNvZGVBdCgwKS0zMjw8NHxDbi5jaGFyQ29kZUF0KDApLTQ4O3JldHVybiA1OT09RHQ/VXQ6dmUoRHQp''@;'; + put 'put ''fTtmdW5jdGlvbiBGZShVdCxubil7dmFyIHFyLENuPVV0LnNwbGl0KC9bXG5ccl0rLyksRHQ9LTEsenQ9LTEsUG49MCxUbj0wLE9uPVtdLFluPVtdLE1yPW51bGwsYWk9e30seXI9W10sYXI9W10sR3I9W10senI9MDtmb3IoK25uLmNvZGVwYWdlPj0wJiZlZSgrbm4uY29kZXBhZ2UpO1BuIT09''@;'; + put 'put ''Q24ubGVuZ3RoOysrUG4pe3pyPTA7dmFyIHYwLG9pPUNuW1BuXS50cmltKCkucmVwbGFjZSgvXHgxQihbXHgyMC1ceDJGXSkoW1x4MzAtXHgzRl0pL2csd2UpLnJlcGxhY2UocmUsWCksY3I9b2kucmVwbGFjZSgvOzsvZywiXDAiKS5zcGxpdCgiOyIpLm1hcChmdW5jdGlvbihOMCl7cmV0dXJu''@;'; + put 'put ''IE4wLnJlcGxhY2UoL1x1MDAwMC9nLCI7Iil9KTtpZihvaS5sZW5ndGg+MClzd2l0Y2goY3JbMF0pe2Nhc2UiSUQiOmNhc2UiRSI6Y2FzZSJCIjpjYXNlIk8iOmNhc2UiVyI6YnJlYWs7Y2FzZSJQIjoiUCI9PWNyWzFdLmNoYXJBdCgwKSYmWW4ucHVzaChvaS5zbGljZSgzKS5yZXBsYWNlKC87''@;'; + put 'put ''Oy9nLCI7IikpO2JyZWFrO2Nhc2UiQyI6dmFyIFVpPSExLHRvPSExLEEwPSExLHdpPSExLFlyPS0xLEVpPS0xO2ZvcihUbj0xO1RuPGNyLmxlbmd0aDsrK1RuKXN3aXRjaChjcltUbl0uY2hhckF0KDApKXtjYXNlIkEiOmNhc2UiRyI6YnJlYWs7Y2FzZSJYIjp6dD1wYXJzZUludChjcltUbl0u''@;'; + put 'put ''c2xpY2UoMSkpLTEsdG89ITA7YnJlYWs7Y2FzZSJZIjpmb3IoRHQ9cGFyc2VJbnQoY3JbVG5dLnNsaWNlKDEpKS0xLHRvfHwoenQ9MCkscXI9T24ubGVuZ3RoO3FyPD1EdDsrK3FyKU9uW3FyXT1bXTticmVhaztjYXNlIksiOiciJz09PSh2MD1jcltUbl0uc2xpY2UoMSkpLmNoYXJBdCgwKT92''@;'; + put 'put ''MD12MC5zbGljZSgxLHYwLmxlbmd0aC0xKToiVFJVRSI9PT12MD92MD0hMDoiRkFMU0UiPT09djA/djA9ITE6aXNOYU4oc3IodjApKT9pc05hTihYbih2MCkuZ2V0RGF0ZSgpKXx8KHYwPWRuKHYwKSk6KHYwPXNyKHYwKSxudWxsIT09TXImJkYuaXNfZGF0ZShNcikmJih2MD1IdCh2MCkpKSwi''@;'; + put 'put ''dW5kZWZpbmVkIiE9dHlwZW9mIGNwdGFibGUmJiJzdHJpbmciPT10eXBlb2YgdjAmJiJzdHJpbmciIT0obm58fHt9KS50eXBlJiYobm58fHt9KS5jb2RlcGFnZSYmKHYwPWNwdGFibGUudXRpbHMuZGVjb2RlKG5uLmNvZGVwYWdlLHYwKSksVWk9ITA7YnJlYWs7Y2FzZSJFIjp3aT0hMDt2YXIg''@;'; + put 'put ''aGk9RDMoY3JbVG5dLnNsaWNlKDEpLHtyOkR0LGM6enR9KTtPbltEdF1benRdPVtPbltEdF1benRdLGhpXTticmVhaztjYXNlIlMiOkEwPSEwLE9uW0R0XVt6dF09W09uW0R0XVt6dF0sIlM1UyJdO2JyZWFrO2Nhc2UiUiI6WXI9cGFyc2VJbnQoY3JbVG5dLnNsaWNlKDEpKS0xO2JyZWFrO2Nh''@;'; + put 'put ''c2UiQyI6RWk9cGFyc2VJbnQoY3JbVG5dLnNsaWNlKDEpKS0xO2JyZWFrO2RlZmF1bHQ6aWYobm4mJm5uLldURil0aHJvdyBuZXcgRXJyb3IoIlNZTEsgYmFkIHJlY29yZCAiK29pKX1pZihVaSYmKE9uW0R0XVt6dF0mJjI9PU9uW0R0XVt6dF0ubGVuZ3RoP09uW0R0XVt6dF1bMF09djA6T25b''@;'; + put 'put ''RHRdW3p0XT12MCxNcj1udWxsKSxBMCl7aWYod2kpdGhyb3cgbmV3IEVycm9yKCJTWUxLIHNoYXJlZCBmb3JtdWxhIGNhbm5vdCBoYXZlIG93biBmb3JtdWxhIik7dmFyIE5yPVlyPi0xJiZPbltZcl1bRWldO2lmKCFOcnx8IU5yWzFdKXRocm93IG5ldyBFcnJvcigiU1lMSyBzaGFyZWQgZm9y''@;'; + put 'put ''bXVsYSBjYW5ub3QgZmluZCBiYXNlIik7T25bRHRdW3p0XVsxXT1VOShOclsxXSx7cjpEdC1ZcixjOnp0LUVpfSl9YnJlYWs7Y2FzZSJGIjp2YXIga2k9MDtmb3IoVG49MTtUbjxjci5sZW5ndGg7KytUbilzd2l0Y2goY3JbVG5dLmNoYXJBdCgwKSl7Y2FzZSJYIjp6dD1wYXJzZUludChjcltU''@;'; + put 'put ''bl0uc2xpY2UoMSkpLTEsKytraTticmVhaztjYXNlIlkiOmZvcihEdD1wYXJzZUludChjcltUbl0uc2xpY2UoMSkpLTEscXI9T24ubGVuZ3RoO3FyPD1EdDsrK3FyKU9uW3FyXT1bXTticmVhaztjYXNlIk0iOnpyPXBhcnNlSW50KGNyW1RuXS5zbGljZSgxKSkvMjA7YnJlYWs7Y2FzZSJGIjpj''@;'; + put 'put ''YXNlIkciOmNhc2UiUyI6Y2FzZSJEIjpjYXNlIk4iOmJyZWFrO2Nhc2UiUCI6TXI9WW5bcGFyc2VJbnQoY3JbVG5dLnNsaWNlKDEpKV07YnJlYWs7Y2FzZSJXIjpmb3IoR3I9Y3JbVG5dLnNsaWNlKDEpLnNwbGl0KCIgIikscXI9cGFyc2VJbnQoR3JbMF0sMTApO3FyPD1wYXJzZUludChHclsx''@;'; + put 'put ''XSwxMCk7Kytxcil6cj1wYXJzZUludChHclsyXSwxMCksYXJbcXItMV09MD09PXpyP3toaWRkZW46ITB9Ont3Y2g6enJ9LHljKGFyW3FyLTFdKTticmVhaztjYXNlIkMiOmFyW3p0PXBhcnNlSW50KGNyW1RuXS5zbGljZSgxKSktMV18fChhclt6dF09e30pO2JyZWFrO2Nhc2UiUiI6eXJbRHQ9''@;'; + put 'put ''cGFyc2VJbnQoY3JbVG5dLnNsaWNlKDEpKS0xXXx8KHlyW0R0XT17fSksenI+MD8oeXJbRHRdLmhwdD16cix5cltEdF0uaHB4PUFmKHpyKSk6MD09PXpyJiYoeXJbRHRdLmhpZGRlbj0hMCk7YnJlYWs7ZGVmYXVsdDppZihubiYmbm4uV1RGKXRocm93IG5ldyBFcnJvcigiU1lMSyBiYWQgcmVj''@;'; + put 'put ''b3JkICIrb2kpfWtpPDEmJihNcj1udWxsKTticmVhaztkZWZhdWx0OmlmKG5uJiZubi5XVEYpdGhyb3cgbmV3IEVycm9yKCJTWUxLIGJhZCByZWNvcmQgIitvaSl9fXJldHVybiB5ci5sZW5ndGg+MCYmKGFpWyIhcm93cyJdPXlyKSxhci5sZW5ndGg+MCYmKGFpWyIhY29scyJdPWFyKSxubiYm''@;'; + put 'put ''bm4uc2hlZXRSb3dzJiYoT249T24uc2xpY2UoMCxubi5zaGVldFJvd3MpKSxbT24sYWldfWZ1bmN0aW9uIFplKFV0LG5uKXt2YXIgQ249ZnVuY3Rpb24geGUoVXQsbm4pe3N3aXRjaChubi50eXBlKXtjYXNlImJhc2U2NCI6cmV0dXJuIEZlKFNlLmRlY29kZShVdCksbm4pO2Nhc2UiYmluYXJ5''@;'; + put 'put ''IjpyZXR1cm4gRmUoVXQsbm4pO2Nhc2UiYnVmZmVyIjpyZXR1cm4gRmUoVXQudG9TdHJpbmcoImJpbmFyeSIpLG5uKTtjYXNlImFycmF5IjpyZXR1cm4gRmUoeW4oVXQpLG5uKX10aHJvdyBuZXcgRXJyb3IoIlVucmVjb2duaXplZCB0eXBlICIrbm4udHlwZSl9KFV0LG5uKSx6dD1DblsxXSxQ''@;'; + put 'put ''bj12ZChDblswXSxubik7cmV0dXJuIG9uKHp0KS5mb3JFYWNoKGZ1bmN0aW9uKFRuKXtQbltUbl09enRbVG5dfSksUG59ZnVuY3Rpb24gWWUoVXQsbm4sQ24sRHQpe3ZhciB6dD0iQztZIisoQ24rMSkrIjtYIisoRHQrMSkrIjtLIjtzd2l0Y2goVXQudCl7Y2FzZSJuIjp6dCs9VXQudnx8MCxV''@;'; + put 'put ''dC5mJiYhVXQuRiYmKHp0Kz0iO0UiK0hFKFV0LmYse3I6Q24sYzpEdH0pKTticmVhaztjYXNlImIiOnp0Kz1VdC52PyJUUlVFIjoiRkFMU0UiO2JyZWFrO2Nhc2UiZSI6enQrPVV0Lnd8fFV0LnY7YnJlYWs7Y2FzZSJkIjp6dCs9JyInKyhVdC53fHxVdC52KSsnIic7YnJlYWs7Y2FzZSJzIjp6''@;'; + put 'put ''dCs9JyInK1V0LnYucmVwbGFjZSgvIi9nLCIiKSsnIid9cmV0dXJuIHp0fXJldHVybiBIWyJ8Il09MjU0LHt0b193b3JrYm9vazpmdW5jdGlvbiBqZShVdCxubil7cmV0dXJuIHcxKFplKFV0LG5uKSxubil9LHRvX3NoZWV0OlplLGZyb21fc2hlZXQ6ZnVuY3Rpb24gUnQoVXQsbm4pe3ZhciBQ''@;'; + put 'put ''bixDbj1bIklEO1BTaGVldEpTO047RSJdLER0PVtdLHp0PUZvKFV0WyIhcmVmIl0pLFRuPUFycmF5LmlzQXJyYXkoVXQpLE9uPSJcclxuIjtDbi5wdXNoKCJQO1BHZW5lcmFsIiksQ24ucHVzaCgiRjtQMDtERzBHODtNMjU1IiksVXRbIiFjb2xzIl0mJmZ1bmN0aW9uIE10KFV0LG5uKXtubi5m''@;'; + put 'put ''b3JFYWNoKGZ1bmN0aW9uKENuLER0KXt2YXIgenQ9IkY7VyIrKER0KzEpKyIgIisoRHQrMSkrIiAiO0NuLmhpZGRlbj96dCs9IjAiOigibnVtYmVyIj09dHlwZW9mIENuLndpZHRoJiYhQ24ud3B4JiYoQ24ud3B4PW1tKENuLndpZHRoKSksIm51bWJlciI9PXR5cGVvZiBDbi53cHgmJiFDbi53''@;'; + put 'put ''Y2gmJihDbi53Y2g9VDkoQ24ud3B4KSksIm51bWJlciI9PXR5cGVvZiBDbi53Y2gmJih6dCs9TWF0aC5yb3VuZChDbi53Y2gpKSksIiAiIT16dC5jaGFyQXQoenQubGVuZ3RoLTEpJiZVdC5wdXNoKHp0KX0pfShDbixVdFsiIWNvbHMiXSksVXRbIiFyb3dzIl0mJmZ1bmN0aW9uIHh0KFV0LG5u''@;'; + put 'put ''KXtubi5mb3JFYWNoKGZ1bmN0aW9uKENuLER0KXt2YXIgenQ9IkY7IjtDbi5oaWRkZW4/enQrPSJNMDsiOkNuLmhwdD96dCs9Ik0iKzIwKkNuLmhwdCsiOyI6Q24uaHB4JiYoenQrPSJNIisyMCpUaChDbi5ocHgpKyI7IiksenQubGVuZ3RoPjImJlV0LnB1c2goenQrIlIiKyhEdCsxKSl9KX0o''@;'; + put 'put ''Q24sVXRbIiFyb3dzIl0pLENuLnB1c2goIkI7WSIrKHp0LmUuci16dC5zLnIrMSkrIjtYIisoenQuZS5jLXp0LnMuYysxKSsiO0QiK1t6dC5zLmMsenQucy5yLHp0LmUuYyx6dC5lLnJdLmpvaW4oIiAiKSk7Zm9yKHZhciBZbj16dC5zLnI7WW48PXp0LmUucjsrK1luKWZvcih2YXIgTXI9enQu''@;'; + put 'put ''cy5jO01yPD16dC5lLmM7KytNcil7dmFyIGFpPVkwKHtyOlluLGM6TXJ9KTsoUG49VG4/KFV0W1luXXx8W10pW01yXTpVdFthaV0pJiYobnVsbCE9UG4udnx8UG4uZiYmIVBuLkYpJiZEdC5wdXNoKFllKFBuLDAsWW4sTXIpKX1yZXR1cm4gQ24uam9pbihPbikrT24rRHQuam9pbihPbikrT24r''@;'; + put 'put ''IkUiK09ufX19KCksdmI9ZnVuY3Rpb24oKXtmdW5jdGlvbiByZShGZSxaZSl7Zm9yKHZhciBqZT1GZS5zcGxpdCgiXG4iKSxZZT0tMSxNdD0tMSx4dD0wLFJ0PVtdO3h0IT09amUubGVuZ3RoOysreHQpaWYoIkJPVCIhPT1qZVt4dF0udHJpbSgpKXtpZighKFllPDApKXtmb3IodmFyIFV0PWpl''@;'; + put 'put ''W3h0XS50cmltKCkuc3BsaXQoIiwiKSxubj1VdFswXSxDbj1VdFsxXSxEdD1qZVsrK3h0XXx8IiI7MSYoRHQubWF0Y2goL1siXS9nKXx8W10pLmxlbmd0aCYmeHQ8amUubGVuZ3RoLTE7KUR0Kz0iXG4iK2plWysreHRdO3N3aXRjaChEdD1EdC50cmltKCksK25uKXtjYXNlLTE6aWYoIkJPVCI9''@;'; + put 'put ''PT1EdCl7UnRbKytZZV09W10sTXQ9MDtjb250aW51ZX1pZigiRU9EIiE9PUR0KXRocm93IG5ldyBFcnJvcigiVW5yZWNvZ25pemVkIERJRiBzcGVjaWFsIGNvbW1hbmQgIitEdCk7YnJlYWs7Y2FzZSAwOlJ0W1llXVtNdF09IlRSVUUiPT09RHR8fCJGQUxTRSIhPT1EdCYmKGlzTmFOKHNyKENu''@;'; + put 'put ''KSk/aXNOYU4oWG4oQ24pLmdldERhdGUoKSk/Q246ZG4oQ24pOnNyKENuKSksKytNdDticmVhaztjYXNlIDE6KER0PShEdD1EdC5zbGljZSgxLER0Lmxlbmd0aC0xKSkucmVwbGFjZSgvIiIvZywnIicpKSYmRHQubWF0Y2goL149Ii4qIiQvKSYmKER0PUR0LnNsaWNlKDIsLTEpKSxSdFtZZV1b''@;'; + put 'put ''TXQrK109IiIhPT1EdD9EdDpudWxsfWlmKCJFT0QiPT09RHQpYnJlYWt9fWVsc2UgUnRbKytZZV09W10sTXQ9MDtyZXR1cm4gWmUmJlplLnNoZWV0Um93cyYmKFJ0PVJ0LnNsaWNlKDAsWmUuc2hlZXRSb3dzKSksUnR9ZnVuY3Rpb24gWChGZSxaZSl7cmV0dXJuIHZkKGZ1bmN0aW9uIEgoRmUs''@;'; + put 'put ''WmUpe3N3aXRjaChaZS50eXBlKXtjYXNlImJhc2U2NCI6cmV0dXJuIHJlKFNlLmRlY29kZShGZSksWmUpO2Nhc2UiYmluYXJ5IjpyZXR1cm4gcmUoRmUsWmUpO2Nhc2UiYnVmZmVyIjpyZXR1cm4gcmUoRmUudG9TdHJpbmcoImJpbmFyeSIpLFplKTtjYXNlImFycmF5IjpyZXR1cm4gcmUoeW4o''@;'; + put 'put ''RmUpLFplKX10aHJvdyBuZXcgRXJyb3IoIlVucmVjb2duaXplZCB0eXBlICIrWmUudHlwZSl9KEZlLFplKSxaZSl9dmFyIEZlLFplO3JldHVybnt0b193b3JrYm9vazpmdW5jdGlvbiB3ZShGZSxaZSl7cmV0dXJuIHcxKFgoRmUsWmUpLFplKX0sdG9fc2hlZXQ6WCxmcm9tX3NoZWV0OihGZT1m''@;'; + put 'put ''dW5jdGlvbihZZSxNdCx4dCxSdCxVdCl7WWUucHVzaChNdCksWWUucHVzaCh4dCsiLCIrUnQpLFllLnB1c2goJyInK1V0LnJlcGxhY2UoLyIvZywnIiInKSsnIicpfSxaZT1mdW5jdGlvbihZZSxNdCx4dCxSdCl7WWUucHVzaChNdCsiLCIreHQpLFllLnB1c2goMT09TXQ/JyInK1J0LnJlcGxh''@;'; + put 'put ''Y2UoLyIvZywnIiInKSsnIic6UnQpfSxmdW5jdGlvbihZZSl7dmFyIFJ0LE10PVtdLHh0PUZvKFllWyIhcmVmIl0pLFV0PUFycmF5LmlzQXJyYXkoWWUpO0ZlKE10LCJUQUJMRSIsMCwxLCJzaGVldGpzIiksRmUoTXQsIlZFQ1RPUlMiLDAseHQuZS5yLXh0LnMucisxLCIiKSxGZShNdCwiVFVQ''@;'; + put 'put ''TEVTIiwwLHh0LmUuYy14dC5zLmMrMSwiIiksRmUoTXQsIkRBVEEiLDAsMCwiIik7Zm9yKHZhciBubj14dC5zLnI7bm48PXh0LmUucjsrK25uKXtaZShNdCwtMSwwLCJCT1QiKTtmb3IodmFyIENuPXh0LnMuYztDbjw9eHQuZS5jOysrQ24pe3ZhciBEdD1ZMCh7cjpubixjOkNufSk7aWYoUnQ9''@;'; + put 'put ''VXQ/KFllW25uXXx8W10pW0NuXTpZZVtEdF0pc3dpdGNoKFJ0LnQpe2Nhc2UibiI6dmFyIHp0PVJ0Lnc7IXp0JiZudWxsIT1SdC52JiYoenQ9UnQudiksbnVsbD09enQ/WmUoTXQsMSwwLFJ0LmYmJiFSdC5GPyI9IitSdC5mOiIiKTpaZShNdCwwLHp0LCJWIik7YnJlYWs7Y2FzZSJiIjpaZShN''@;'; + put 'put ''dCwwLFJ0LnY/MTowLFJ0LnY/IlRSVUUiOiJGQUxTRSIpO2JyZWFrO2Nhc2UicyI6WmUoTXQsMSwwLGlzTmFOKFJ0LnYpP1J0LnY6Jz0iJytSdC52KyciJyk7YnJlYWs7Y2FzZSJkIjpSdC53fHwoUnQudz1GLmZvcm1hdChSdC56fHxGLl90YWJsZVsxNF0sZnQoZG4oUnQudikpKSksWmUoTXQs''@;'; + put 'put ''MCxSdC53LCJWIik7YnJlYWs7ZGVmYXVsdDpaZShNdCwxLDAsIiIpfWVsc2UgWmUoTXQsMSwwLCIiKX19cmV0dXJuIFplKE10LC0xLDAsIkVPRCIpLE10LmpvaW4oIlxyXG4iKX0pfX0oKSwkTT1mdW5jdGlvbigpe2Z1bmN0aW9uIEgoUnQpe3JldHVybiBSdC5yZXBsYWNlKC9cXGIvZywiXFwi''@;'; + put 'put ''KS5yZXBsYWNlKC9cXGMvZywiOiIpLnJlcGxhY2UoL1xcbi9nLCJcbiIpfWZ1bmN0aW9uIHJlKFJ0KXtyZXR1cm4gUnQucmVwbGFjZSgvXFwvZywiXFxiIikucmVwbGFjZSgvOi9nLCJcXGMiKS5yZXBsYWNlKC9cbi9nLCJcXG4iKX1mdW5jdGlvbiB3ZShSdCxVdCl7cmV0dXJuIHZkKGZ1bmN0''@;'; + put 'put ''aW9uIFgoUnQsVXQpe2Zvcih2YXIgbm49UnQuc3BsaXQoIlxuIiksQ249LTEsRHQ9LTEsenQ9MCxQbj1bXTt6dCE9PW5uLmxlbmd0aDsrK3p0KXt2YXIgVG49bm5benRdLnRyaW0oKS5zcGxpdCgiOiIpO2lmKCJjZWxsIj09PVRuWzBdKXt2YXIgT249dWwoVG5bMV0pO2lmKFBuLmxlbmd0aDw9''@;'; + put 'put ''T24ucilmb3IoQ249UG4ubGVuZ3RoO0NuPD1Pbi5yOysrQ24pUG5bQ25dfHwoUG5bQ25dPVtdKTtzd2l0Y2goQ249T24ucixEdD1Pbi5jLFRuWzJdKXtjYXNlInQiOlBuW0NuXVtEdF09SChUblszXSk7YnJlYWs7Y2FzZSJ2IjpQbltDbl1bRHRdPStUblszXTticmVhaztjYXNlInZ0ZiI6dmFy''@;'; + put 'put ''IFluPVRuW1RuLmxlbmd0aC0xXTtjYXNlInZ0YyI6UG5bQ25dW0R0XT0ibmwiPT09VG5bM10/ISErVG5bNF06K1RuWzRdLCJ2dGYiPT1UblsyXSYmKFBuW0NuXVtEdF09W1BuW0NuXVtEdF0sWW5dKX19fXJldHVybiBVdCYmVXQuc2hlZXRSb3dzJiYoUG49UG4uc2xpY2UoMCxVdC5zaGVldFJv''@;'; + put 'put ''d3MpKSxQbn0oUnQsVXQpLFV0KX12YXIgRmU9WyJzb2NpYWxjYWxjOnZlcnNpb246MS41IiwiTUlNRS1WZXJzaW9uOiAxLjAiLCJDb250ZW50LVR5cGU6IG11bHRpcGFydC9taXhlZDsgYm91bmRhcnk9U29jaWFsQ2FsY1NwcmVhZHNoZWV0Q29udHJvbFNhdmUiXS5qb2luKCJcbiIpLFplPVsi''@;'; + put 'put ''LS1Tb2NpYWxDYWxjU3ByZWFkc2hlZXRDb250cm9sU2F2ZSIsIkNvbnRlbnQtdHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOCJdLmpvaW4oIlxuIikrIlxuIixqZT1bIiMgU29jaWFsQ2FsYyBTcHJlYWRzaGVldCBDb250cm9sIFNhdmUiLCJwYXJ0OnNoZWV0Il0uam9pbigiXG4iKSxZ''@;'; + put 'put ''ZT0iLS1Tb2NpYWxDYWxjU3ByZWFkc2hlZXRDb250cm9sU2F2ZS0tIjtmdW5jdGlvbiBNdChSdCl7aWYoIVJ0fHwhUnRbIiFyZWYiXSlyZXR1cm4iIjtmb3IodmFyIENuLFV0PVtdLG5uPVtdLER0PSIiLHp0PXZzKFJ0WyIhcmVmIl0pLFBuPUFycmF5LmlzQXJyYXkoUnQpLFRuPXp0LnMucjtU''@;'; + put 'put ''bjw9enQuZS5yOysrVG4pZm9yKHZhciBPbj16dC5zLmM7T248PXp0LmUuYzsrK09uKWlmKER0PVkwKHtyOlRuLGM6T259KSwoQ249UG4/KFJ0W1RuXXx8W10pW09uXTpSdFtEdF0pJiZudWxsIT1Dbi52JiYieiIhPT1Dbi50KXtzd2l0Y2gobm49WyJjZWxsIixEdCwidCJdLENuLnQpe2Nhc2Ui''@;'; + put 'put ''cyI6Y2FzZSJzdHIiOm5uLnB1c2gocmUoQ24udikpO2JyZWFrO2Nhc2UibiI6Q24uZj8obm5bMl09InZ0ZiIsbm5bM109Im4iLG5uWzRdPUNuLnYsbm5bNV09cmUoQ24uZikpOihublsyXT0idiIsbm5bM109Q24udik7YnJlYWs7Y2FzZSJiIjpublsyXT0idnQiKyhDbi5mPyJmIjoiYyIpLG5u''@;'; + put 'put ''WzNdPSJubCIsbm5bNF09Q24udj8iMSI6IjAiLG5uWzVdPXJlKENuLmZ8fChDbi52PyJUUlVFIjoiRkFMU0UiKSk7YnJlYWs7Y2FzZSJkIjp2YXIgWW49ZnQoZG4oQ24udikpO25uWzJdPSJ2dGMiLG5uWzNdPSJuZCIsbm5bNF09IiIrWW4sbm5bNV09Q24ud3x8Ri5mb3JtYXQoQ24uenx8Ri5f''@;'; + put 'put ''dGFibGVbMTRdLFluKTticmVhaztjYXNlImUiOmNvbnRpbnVlfVV0LnB1c2gobm4uam9pbigiOiIpKX1yZXR1cm4gVXQucHVzaCgic2hlZXQ6YzoiKyh6dC5lLmMtenQucy5jKzEpKyI6cjoiKyh6dC5lLnItenQucy5yKzEpKyI6dHZmOjEiKSxVdC5wdXNoKCJ2YWx1ZWZvcm1hdDoxOnRleHQt''@;'; + put 'put ''d2lraSIpLFV0LmpvaW4oIlxuIil9cmV0dXJue3RvX3dvcmtib29rOmZ1bmN0aW9uIHhlKFJ0LFV0KXtyZXR1cm4gdzEod2UoUnQsVXQpLFV0KX0sdG9fc2hlZXQ6d2UsZnJvbV9zaGVldDpmdW5jdGlvbiB4dChSdCl7cmV0dXJuW0ZlLFplLGplLFplLE10KFJ0KSxZZV0uam9pbigiXG4iKX19''@;'; + put 'put ''fSgpLEEzPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gSCh4dCxSdCxVdCxubixDbil7Q24ucmF3P1J0W1V0XVtubl09eHQ6IiI9PT14dHx8KFJ0W1V0XVtubl09RnIoeHQsQ24pP0ZyKHh0LENuKS52Onh0KX12YXIgWD17NDQ6IiwiLDk6Ilx0Iiw1OToiOyJ9LHdlPXs0NDozLDk6Miw1OToxfTtmdW5j''@;'; + put 'put ''dGlvbiB4ZSh4dCl7Zm9yKHZhciBSdD17fSxVdD0hMSxubj0wLENuPTA7bm48eHQubGVuZ3RoOysrbm4pMzQ9PShDbj14dC5jaGFyQ29kZUF0KG5uKSk/VXQ9IVV0OiFVdCYmQ24gaW4gWCYmKFJ0W0NuXT0oUnRbQ25dfHwwKSsxKTtmb3Iobm4gaW4gQ249W10sUnQpT2JqZWN0LnByb3RvdHlw''@;'; + put 'put ''ZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKFJ0LG5uKSYmQ24ucHVzaChbUnRbbm5dLG5uXSk7aWYoIUNuLmxlbmd0aClmb3Iobm4gaW4gUnQ9d2UpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKFJ0LG5uKSYmQ24ucHVzaChbUnRbbm5dLG5uXSk7cmV0dXJuIENuLnNvcnQoZnVu''@;'; + put 'put ''Y3Rpb24oRHQsenQpe3JldHVybiBEdFswXS16dFswXXx8d2VbRHRbMV1dLXdlW3p0WzFdXX0pLFhbQ24ucG9wKClbMV1dfWZ1bmN0aW9uIFplKHh0LFJ0KXtyZXR1cm4hUnR8fCFSdC5QUk58fCJzZXA9Ij09eHQuc2xpY2UoMCw0KXx8eHQuaW5kZXhPZigiXHQiKT49MHx8eHQuaW5kZXhPZigi''@;'; + put 'put ''LCIpPj0wfHx4dC5pbmRleE9mKCI7Iik+PTA/ZnVuY3Rpb24gRmUoeHQsUnQpe3ZhciBVdD1SdHx8e30sbm49IiIsQ249VXQuZGVuc2U/W106e30sRHQ9e3M6e2M6MCxyOjB9LGU6e2M6MCxyOjB9fTsic2VwPSI9PXh0LnNsaWNlKDAsNCk/MTM9PXh0LmNoYXJDb2RlQXQoNSkmJjEwPT14dC5j''@;'; + put 'put ''aGFyQ29kZUF0KDYpPyhubj14dC5jaGFyQXQoNCkseHQ9eHQuc2xpY2UoNykpOjEzPT14dC5jaGFyQ29kZUF0KDUpfHwxMD09eHQuY2hhckNvZGVBdCg1KT8obm49eHQuY2hhckF0KDQpLHh0PXh0LnNsaWNlKDYpKTpubj14ZSh4dC5zbGljZSgwLDEwMjQpKTpubj14ZSh4dC5zbGljZSgwLDEw''@;'; + put 'put ''MjQpKTt2YXIgenQ9MCxQbj0wLFRuPTAsT249MCxZbj0wLE1yPW5uLmNoYXJDb2RlQXQoMCksYWk9ITEseXI9MCxhcj14dC5jaGFyQ29kZUF0KDApO3h0PXh0LnJlcGxhY2UoL1xyXG4vZ20sIlxuIik7dmFyIEdyPW51bGwhPVV0LmRhdGVORj9mdW5jdGlvbiBRZShIKXt2YXIgcmU9Im51bWJl''@;'; + put 'put ''ciI9PXR5cGVvZiBIP0YuX3RhYmxlW0hdOkg7cmV0dXJuIHJlPXJlLnJlcGxhY2UoUGUsIihcXGQrKSIpLG5ldyBSZWdFeHAoIl4iK3JlKyIkIil9KFV0LmRhdGVORik6bnVsbDtmdW5jdGlvbiB6cigpe3ZhciBxcj14dC5zbGljZShPbixZbiksb2k9e307aWYoJyInPT1xci5jaGFyQXQoMCkm''@;'; + put 'put ''JiciJz09cXIuY2hhckF0KHFyLmxlbmd0aC0xKSYmKHFyPXFyLnNsaWNlKDEsLTEpLnJlcGxhY2UoLyIiL2csJyInKSksMD09PXFyLmxlbmd0aClvaS50PSJ6IjtlbHNlIGlmKFV0LnJhdylvaS50PSJzIixvaS52PXFyO2Vsc2UgaWYoMD09PXFyLnRyaW0oKS5sZW5ndGgpb2kudD0icyIsb2ku''@;'; + put 'put ''dj1xcjtlbHNlIGlmKDYxPT1xci5jaGFyQ29kZUF0KDApKTM0PT1xci5jaGFyQ29kZUF0KDEpJiYzND09cXIuY2hhckNvZGVBdChxci5sZW5ndGgtMSk/KG9pLnQ9InMiLG9pLnY9cXIuc2xpY2UoMiwtMSkucmVwbGFjZSgvIiIvZywnIicpKTpmdW5jdGlvbiBUZChIKXtyZXR1cm4gMSE9SC5s''@;'; + put 'put ''ZW5ndGh9KHFyKT8ob2kudD0ibiIsb2kuZj1xci5zbGljZSgxKSk6KG9pLnQ9InMiLG9pLnY9cXIpO2Vsc2UgaWYoIlRSVUUiPT1xcilvaS50PSJiIixvaS52PSEwO2Vsc2UgaWYoIkZBTFNFIj09cXIpb2kudD0iYiIsb2kudj0hMTtlbHNlIGlmKGlzTmFOKFRuPXNyKHFyKSkpaWYoIWlzTmFO''@;'; + put 'put ''KFhuKHFyKS5nZXREYXRlKCkpfHxHciYmcXIubWF0Y2goR3IpKXtvaS56PVV0LmRhdGVORnx8Ri5fdGFibGVbMTRdO3ZhciBjcj0wO0dyJiZxci5tYXRjaChHcikmJihxcj1mdW5jdGlvbiAkZShILHJlLFgpe3ZhciB3ZT0tMSx4ZT0tMSxGZT0tMSxaZT0tMSxqZT0tMSxZZT0tMTsocmUubWF0''@;'; + put 'put ''Y2goUGUpfHxbXSkuZm9yRWFjaChmdW5jdGlvbihSdCxVdCl7dmFyIG5uPXBhcnNlSW50KFhbVXQrMV0sMTApO3N3aXRjaChSdC50b0xvd2VyQ2FzZSgpLmNoYXJBdCgwKSl7Y2FzZSJ5Ijp3ZT1ubjticmVhaztjYXNlImQiOkZlPW5uO2JyZWFrO2Nhc2UiaCI6WmU9bm47YnJlYWs7Y2FzZSJz''@;'; + put 'put ''IjpZZT1ubjticmVhaztjYXNlIm0iOlplPj0wP2plPW5uOnhlPW5ufX0pLFllPj0wJiYtMT09amUmJnhlPj0wJiYoamU9eGUseGU9LTEpO3ZhciBNdD0oIiIrKHdlPj0wP3dlOihuZXcgRGF0ZSkuZ2V0RnVsbFllYXIoKSkpLnNsaWNlKC00KSsiLSIrKCIwMCIrKHhlPj0xP3hlOjEpKS5zbGlj''@;'; + put 'put ''ZSgtMikrIi0iKygiMDAiKyhGZT49MT9GZToxKSkuc2xpY2UoLTIpOzc9PU10Lmxlbmd0aCYmKE10PSIwIitNdCksOD09TXQubGVuZ3RoJiYoTXQ9IjIwIitNdCk7dmFyIHh0PSgiMDAiKyhaZT49MD9aZTowKSkuc2xpY2UoLTIpKyI6IisoIjAwIisoamU+PTA/amU6MCkpLnNsaWNlKC0yKSsi''@;'; + put 'put ''OiIrKCIwMCIrKFllPj0wP1llOjApKS5zbGljZSgtMik7cmV0dXJuLTE9PVplJiYtMT09amUmJi0xPT1ZZT9NdDotMT09d2UmJi0xPT14ZSYmLTE9PUZlP3h0Ok10KyJUIit4dH0oMCxVdC5kYXRlTkYscXIubWF0Y2goR3IpfHxbXSksY3I9MSksVXQuY2VsbERhdGVzPyhvaS50PSJkIixvaS52''@;'; + put 'put ''PWRuKHFyLGNyKSk6KG9pLnQ9Im4iLG9pLnY9ZnQoZG4ocXIsY3IpKSksITEhPT1VdC5jZWxsVGV4dCYmKG9pLnc9Ri5mb3JtYXQob2kueixvaS52IGluc3RhbmNlb2YgRGF0ZT9mdChvaS52KTpvaS52KSksVXQuY2VsbE5GfHxkZWxldGUgb2kuen1lbHNlIG9pLnQ9InMiLG9pLnY9cXI7ZWxz''@;'; + put 'put ''ZSBvaS50PSJuIiwhMSE9PVV0LmNlbGxUZXh0JiYob2kudz1xciksb2kudj1UbjtpZigieiI9PW9pLnR8fChVdC5kZW5zZT8oQ25benRdfHwoQ25benRdPVtdKSxDblt6dF1bUG5dPW9pKTpDbltZMCh7YzpQbixyOnp0fSldPW9pKSxhcj14dC5jaGFyQ29kZUF0KE9uPVluKzEpLER0LmUuYzxQ''@;'; + put 'put ''biYmKER0LmUuYz1QbiksRHQuZS5yPHp0JiYoRHQuZS5yPXp0KSx5cj09TXIpKytQbjtlbHNlIGlmKFBuPTAsKyt6dCxVdC5zaGVldFJvd3MmJlV0LnNoZWV0Um93czw9enQpcmV0dXJuITB9ZTpmb3IoO1luPHh0Lmxlbmd0aDsrK1luKXN3aXRjaCh5cj14dC5jaGFyQ29kZUF0KFluKSl7Y2Fz''@;'; + put 'put ''ZSAzNDozND09PWFyJiYoYWk9IWFpKTticmVhaztjYXNlIE1yOmNhc2UgMTA6Y2FzZSAxMzppZighYWkmJnpyKCkpYnJlYWsgZX1yZXR1cm4gWW4tT24+MCYmenIoKSxDblsiIXJlZiJdPWZhKER0KSxDbn0oeHQsUnQpOnZkKGZ1bmN0aW9uIHJlKHh0LFJ0KXt2YXIgVXQ9UnR8fHt9LG5uPVtd''@;'; + put 'put ''O2lmKCF4dHx8MD09PXh0Lmxlbmd0aClyZXR1cm4gbm47Zm9yKHZhciBDbj14dC5zcGxpdCgvW1xyXG5dLyksRHQ9Q24ubGVuZ3RoLTE7RHQ+PTAmJjA9PT1DbltEdF0ubGVuZ3RoOyktLUR0O2Zvcih2YXIgenQ9MTAsUG49MCxUbj0wO1RuPD1EdDsrK1RuKS0xPT0oUG49Q25bVG5dLmluZGV4''@;'; + put 'put ''T2YoIiAiKSk/UG49Q25bVG5dLmxlbmd0aDpQbisrLHp0PU1hdGgubWF4KHp0LFBuKTtmb3IoVG49MDtUbjw9RHQ7KytUbil7bm5bVG5dPVtdO3ZhciBPbj0wO2ZvcihIKENuW1RuXS5zbGljZSgwLHp0KS50cmltKCksbm4sVG4sT24sVXQpLE9uPTE7T248PShDbltUbl0ubGVuZ3RoLXp0KS8x''@;'; + put 'put ''MCsxOysrT24pSChDbltUbl0uc2xpY2UoenQrMTAqKE9uLTEpLHp0KzEwKk9uKS50cmltKCksbm4sVG4sT24sVXQpfXJldHVybiBVdC5zaGVldFJvd3MmJihubj1ubi5zbGljZSgwLFV0LnNoZWV0Um93cykpLG5ufSh4dCxSdCksUnQpfWZ1bmN0aW9uIGplKHh0LFJ0KXt2YXIgVXQ9IiIsbm49''@;'; + put 'put ''InN0cmluZyI9PVJ0LnR5cGU/WzAsMCwwLDBdOmZDKHh0LFJ0KTtzd2l0Y2goUnQudHlwZSl7Y2FzZSJiYXNlNjQiOlV0PVNlLmRlY29kZSh4dCk7YnJlYWs7Y2FzZSJiaW5hcnkiOmNhc2Uic3RyaW5nIjpVdD14dDticmVhaztjYXNlImJ1ZmZlciI6VXQ9NjUwMDE9PVJ0LmNvZGVwYWdlP3h0''@;'; + put 'put ''LnRvU3RyaW5nKCJ1dGY4Iik6UnQuY29kZXBhZ2UmJiJ1bmRlZmluZWQiIT10eXBlb2YgY3B0YWJsZT9jcHRhYmxlLnV0aWxzLmRlY29kZShSdC5jb2RlcGFnZSx4dCk6eHQudG9TdHJpbmcoImJpbmFyeSIpO2JyZWFrO2Nhc2UiYXJyYXkiOlV0PXluKHh0KTticmVhaztkZWZhdWx0OnRocm93''@;'; + put 'put ''IG5ldyBFcnJvcigiVW5yZWNvZ25pemVkIHR5cGUgIitSdC50eXBlKX1yZXR1cm4gMjM5PT1ublswXSYmMTg3PT1ublsxXSYmMTkxPT1ublsyXT9VdD1XMChVdC5zbGljZSgzKSk6ImJpbmFyeSI9PVJ0LnR5cGUmJiJ1bmRlZmluZWQiIT10eXBlb2YgY3B0YWJsZSYmUnQuY29kZXBhZ2UmJihV''@;'; + put 'put ''dD1jcHRhYmxlLnV0aWxzLmRlY29kZShSdC5jb2RlcGFnZSxjcHRhYmxlLnV0aWxzLmVuY29kZSgyODU5MSxVdCkpKSwic29jaWFsY2FsYzp2ZXJzaW9uOiI9PVV0LnNsaWNlKDAsMTkpPyRNLnRvX3NoZWV0KCJzdHJpbmciPT1SdC50eXBlP1V0OlcwKFV0KSxSdCk6WmUoVXQsUnQpfXJldHVy''@;'; + put 'put ''bnt0b193b3JrYm9vazpmdW5jdGlvbiBZZSh4dCxSdCl7cmV0dXJuIHcxKGplKHh0LFJ0KSxSdCl9LHRvX3NoZWV0OmplLGZyb21fc2hlZXQ6ZnVuY3Rpb24gTXQoeHQpe2Zvcih2YXIgbm4sUnQ9W10sVXQ9Rm8oeHRbIiFyZWYiXSksQ249QXJyYXkuaXNBcnJheSh4dCksRHQ9VXQucy5yO0R0''@;'; + put 'put ''PD1VdC5lLnI7KytEdCl7Zm9yKHZhciB6dD1bXSxQbj1VdC5zLmM7UG48PVV0LmUuYzsrK1BuKXt2YXIgVG49WTAoe3I6RHQsYzpQbn0pO2lmKChubj1Dbj8oeHRbRHRdfHxbXSlbUG5dOnh0W1RuXSkmJm51bGwhPW5uLnYpe2Zvcih2YXIgT249KG5uLnd8fCh5MShubiksbm4udyl8fCIiKS5z''@;'; + put 'put ''bGljZSgwLDEwKTtPbi5sZW5ndGg8MTA7KU9uKz0iICI7enQucHVzaChPbisoMD09PVBuPyIgIjoiIikpfWVsc2UgenQucHVzaCgiICAgICAgICAgICIpfVJ0LnB1c2goenQuam9pbigiIikpfXJldHVybiBSdC5qb2luKCJcbiIpfX19KCksRzE9ZnVuY3Rpb24oKXtmdW5jdGlvbiBIKFlyLEVp''@;'; + put 'put ''LGhpKXtpZihZcil7S2woWXIsWXIubHx8MCk7Zm9yKHZhciBOcj1oaS5FbnVtfHxBMDtZci5sPFlyLmxlbmd0aDspe3ZhciBraT1Zci5yZWFkX3NoaWZ0KDIpLE4wPU5yW2tpXXx8TnJbNjU1MzVdLHQwPVlyLnJlYWRfc2hpZnQoMiksaW89WXIubCt0MCxvYT1OMC5mJiZOMC5mKFlyLHQwLGhp''@;'; + put 'put ''KTtpZihZci5sPWlvLEVpKG9hLE4wLGtpKSlyZXR1cm59fX1mdW5jdGlvbiBYKFlyLEVpKXtpZighWXIpcmV0dXJuIFlyO3ZhciBoaT1FaXx8e30sTnI9aGkuZGVuc2U/W106e30sa2k9IlNoZWV0MSIsTjA9MCx0MD17fSxpbz1ba2ldLG9hPVtdLCQwPXtzOntyOjAsYzowfSxlOntyOjAsYzow''@;'; + put 'put ''fX0sTmE9aGkuc2hlZXRSb3dzfHwwO2lmKDI9PVlyWzJdKWhpLkVudW09QTAsSChZcixmdW5jdGlvbih4MCxoMCxqcil7c3dpdGNoKGpyKXtjYXNlIDA6aGkudmVycz14MCx4MD49NDA5NiYmKGhpLnFwcm89ITApO2JyZWFrO2Nhc2UgNjokMD14MDticmVhaztjYXNlIDE1OmNhc2UgNTE6aGku''@;'; + put 'put ''cXByb3x8KHgwWzFdLnY9eDBbMV0udi5zbGljZSgxKSk7Y2FzZSAxMzpjYXNlIDE0OmNhc2UgMTY6MTQ9PWpyJiYxMTI9PSgxMTImeDBbMl0pJiYoMTUmeDBbMl0pPjEmJigxNSZ4MFsyXSk8MTUmJih4MFsxXS56PWhpLmRhdGVORnx8Ri5fdGFibGVbMTRdLGhpLmNlbGxEYXRlcyYmKHgwWzFd''@;'; + put 'put ''LnQ9ImQiLHgwWzFdLnY9SHQoeDBbMV0udikpKTt2YXIgSGk9aGkuZGVuc2U/KE5yW3gwWzBdLnJdfHxbXSlbeDBbMF0uY106TnJbWTAoeDBbMF0pXTtpZihIaSl7SGkudD14MFsxXS50LEhpLnY9eDBbMV0udixudWxsIT14MFsxXS56JiYoSGkuej14MFsxXS56KSxudWxsIT14MFsxXS5mJiYo''@;'; + put 'put ''SGkuZj14MFsxXS5mKTticmVha31oaS5kZW5zZT8oTnJbeDBbMF0ucl18fChOclt4MFswXS5yXT1bXSksTnJbeDBbMF0ucl1beDBbMF0uY109eDBbMV0pOk5yW1kwKHgwWzBdKV09eDBbMV19fSxoaSk7ZWxzZXtpZigyNiE9WXJbMl0mJjE0IT1ZclsyXSl0aHJvdyBuZXcgRXJyb3IoIlVucmVj''@;'; + put 'put ''b2duaXplZCBMT1RVUyBCT0YgIitZclsyXSk7aGkuRW51bT13aSwxND09WXJbMl0mJihoaS5xcHJvPSEwLFlyLmw9MCksSChZcixmdW5jdGlvbih4MCxoMCxqcil7c3dpdGNoKGpyKXtjYXNlIDIyOngwWzFdLnY9eDBbMV0udi5zbGljZSgxKTtjYXNlIDIzOmNhc2UgMjQ6Y2FzZSAyNTpjYXNl''@;'; + put 'put ''IDM3OmNhc2UgMzk6Y2FzZSA0MDppZih4MFszXT5OMCYmKE5yWyIhcmVmIl09ZmEoJDApLHQwW2tpXT1OcixOcj1oaS5kZW5zZT9bXTp7fSwkMD17czp7cjowLGM6MH0sZTp7cjowLGM6MH19LGlvLnB1c2goa2k9IlNoZWV0IisoKE4wPXgwWzNdKSsxKSkpLE5hPjAmJngwWzBdLnI+PU5hKWJy''@;'; + put 'put ''ZWFrO2hpLmRlbnNlPyhOclt4MFswXS5yXXx8KE5yW3gwWzBdLnJdPVtdKSxOclt4MFswXS5yXVt4MFswXS5jXT14MFsxXSk6TnJbWTAoeDBbMF0pXT14MFsxXSwkMC5lLmM8eDBbMF0uYyYmKCQwLmUuYz14MFswXS5jKSwkMC5lLnI8eDBbMF0uciYmKCQwLmUucj14MFswXS5yKTticmVhaztj''@;'; + put 'put ''YXNlIDI3OngwWzE0ZTNdJiYob2FbeDBbMTRlM11bMF1dPXgwWzE0ZTNdWzFdKX19LGhpKX1pZihOclsiIXJlZiJdPWZhKCQwKSx0MFtraV09TnIsIW9hLmxlbmd0aClyZXR1cm57U2hlZXROYW1lczppbyxTaGVldHM6dDB9O2Zvcih2YXIgam89e30sd2E9W10sYW89MDthbzxvYS5sZW5ndGg7''@;'; + put 'put ''Kythbyl0MFtpb1thb11dJiYod2EucHVzaChvYVthb10pLGpvW29hW2FvXV09dDBbaW9bYW9dXSk7cmV0dXJue1NoZWV0TmFtZXM6d2EsU2hlZXRzOmpvfX1mdW5jdGlvbiBNdChZcixFaSxoaSl7dmFyIE5yPVt7YzowLHI6MH0se3Q6Im4iLHY6MH0sMF07cmV0dXJuIGhpLnFwcm8mJjIwNzY4''@;'; + put 'put ''IT1oaS52ZXJzPyhOclswXS5jPVlyLnJlYWRfc2hpZnQoMSksWXIubCsrLE5yWzBdLnI9WXIucmVhZF9zaGlmdCgyKSxZci5sKz0yKTooTnJbMl09WXIucmVhZF9zaGlmdCgxKSxOclswXS5jPVlyLnJlYWRfc2hpZnQoMiksTnJbMF0ucj1Zci5yZWFkX3NoaWZ0KDIpKSxOcn1mdW5jdGlvbiB4''@;'; + put 'put ''dChZcixFaSxoaSl7dmFyIE5yPVlyLmwrRWksa2k9TXQoWXIsMCxoaSk7aWYoa2lbMV0udD0icyIsMjA3Njg9PWhpLnZlcnMpe1lyLmwrKzt2YXIgTjA9WXIucmVhZF9zaGlmdCgxKTtyZXR1cm4ga2lbMV0udj1Zci5yZWFkX3NoaWZ0KE4wLCJ1dGY4Iiksa2l9cmV0dXJuIGhpLnFwcm8mJlly''@;'; + put 'put ''LmwrKyxraVsxXS52PVlyLnJlYWRfc2hpZnQoTnItWXIubCwiY3N0ciIpLGtpfWZ1bmN0aW9uIFJ0KFlyLEVpLGhpKXt2YXIgTnI9UmkoNytoaS5sZW5ndGgpO05yLndyaXRlX3NoaWZ0KDEsMjU1KSxOci53cml0ZV9zaGlmdCgyLEVpKSxOci53cml0ZV9zaGlmdCgyLFlyKSxOci53cml0ZV9z''@;'; + put 'put ''aGlmdCgxLDM5KTtmb3IodmFyIGtpPTA7a2k8TnIubGVuZ3RoOysra2kpe3ZhciBOMD1oaS5jaGFyQ29kZUF0KGtpKTtOci53cml0ZV9zaGlmdCgxLE4wPj0xMjg/OTU6TjApfXJldHVybiBOci53cml0ZV9zaGlmdCgxLDApLE5yfWZ1bmN0aW9uIG5uKFlyLEVpLGhpKXt2YXIgTnI9UmkoNyk7''@;'; + put 'put ''cmV0dXJuIE5yLndyaXRlX3NoaWZ0KDEsMjU1KSxOci53cml0ZV9zaGlmdCgyLEVpKSxOci53cml0ZV9zaGlmdCgyLFlyKSxOci53cml0ZV9zaGlmdCgyLGhpLCJpIiksTnJ9ZnVuY3Rpb24gRHQoWXIsRWksaGkpe3ZhciBOcj1SaSgxMyk7cmV0dXJuIE5yLndyaXRlX3NoaWZ0KDEsMjU1KSxO''@;'; + put 'put ''ci53cml0ZV9zaGlmdCgyLEVpKSxOci53cml0ZV9zaGlmdCgyLFlyKSxOci53cml0ZV9zaGlmdCg4LGhpLCJmIiksTnJ9ZnVuY3Rpb24gUG4oWXIsRWksaGkpe3ZhciBOcj0zMjc2OCZFaTtyZXR1cm4gRWk9KE5yP1lyOjApKygoRWkmPS0zMjc2OSk+PTgxOTI/RWktMTYzODQ6RWkpLChOcj8i''@;'; + put 'put ''IjoiJCIpKyhoaT9fYShFaSk6WGEoRWkpKX12YXIgT249ezUxOlsiRkFMU0UiLDBdLDUyOlsiVFJVRSIsMF0sNzA6WyJMRU4iLDFdLDgwOlsiU1VNIiw2OV0sODE6WyJBVkVSQUdFQSIsNjldLDgyOlsiQ09VTlRBIiw2OV0sODM6WyJNSU5BIiw2OV0sODQ6WyJNQVhBIiw2OV0sMTExOlsiVCIs''@;'; + put 'put ''MV19LFluPVsiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiKyIsIi0iLCIqIiwiLyIsIl4iLCI9IiwiPD4iLCI8PSIsIj49IiwiPCIsIj4iLCIiLCIiLCIiLCIiLCImIiwiIiwiIiwiIiwiIiwiIiwiIiwiIl07ZnVuY3Rpb24gYWkoWXIpe3ZhciBFaT1be2M6MCxyOjB9LHt0OiJuIix2OjB9''@;'; + put 'put ''LDBdO3JldHVybiBFaVswXS5yPVlyLnJlYWRfc2hpZnQoMiksRWlbM109WXJbWXIubCsrXSxFaVswXS5jPVlyW1lyLmwrK10sRWl9ZnVuY3Rpb24gYXIoWXIsRWksaGksTnIpe3ZhciBraT1SaSg2K05yLmxlbmd0aCk7a2kud3JpdGVfc2hpZnQoMixZciksa2kud3JpdGVfc2hpZnQoMSxoaSks''@;'; + put 'put ''a2kud3JpdGVfc2hpZnQoMSxFaSksa2kud3JpdGVfc2hpZnQoMSwzOSk7Zm9yKHZhciBOMD0wO04wPE5yLmxlbmd0aDsrK04wKXt2YXIgdDA9TnIuY2hhckNvZGVBdChOMCk7a2kud3JpdGVfc2hpZnQoMSx0MD49MTI4Pzk1OnQwKX1yZXR1cm4ga2kud3JpdGVfc2hpZnQoMSwwKSxraX1mdW5j''@;'; + put 'put ''dGlvbiB6cihZcixFaSl7dmFyIGhpPWFpKFlyKSxOcj1Zci5yZWFkX3NoaWZ0KDQpLGtpPVlyLnJlYWRfc2hpZnQoNCksTjA9WXIucmVhZF9zaGlmdCgyKTtpZig2NTUzNT09TjApcmV0dXJuIDA9PT1OciYmMzIyMTIyNTQ3Mj09PWtpPyhoaVsxXS50PSJlIixoaVsxXS52PTE1KTowPT09TnIm''@;'; + put 'put ''JjM0ODk2NjA5Mjg9PT1raT8oaGlbMV0udD0iZSIsaGlbMV0udj00Mik6aGlbMV0udj0wLGhpO3ZhciB0MD0zMjc2OCZOMDtyZXR1cm4gTjA9KDMyNzY3Jk4wKS0xNjQ0NixoaVsxXS52PSgxLTIqdDApKihraSpNYXRoLnBvdygyLE4wKzMyKStOcipNYXRoLnBvdygyLE4wKSksaGl9ZnVuY3Rp''@;'; + put 'put ''b24gcXIoWXIsRWksaGksTnIpe3ZhciBraT1SaSgxNCk7aWYoa2kud3JpdGVfc2hpZnQoMixZciksa2kud3JpdGVfc2hpZnQoMSxoaSksa2kud3JpdGVfc2hpZnQoMSxFaSksMD09TnIpcmV0dXJuIGtpLndyaXRlX3NoaWZ0KDQsMCksa2kud3JpdGVfc2hpZnQoNCwwKSxraS53cml0ZV9zaGlm''@;'; + put 'put ''dCgyLDY1NTM1KSxraTt2YXIgTjA9MCx0MD0wLG9hPTA7cmV0dXJuIE5yPDAmJihOMD0xLE5yPS1OciksdDA9MHxNYXRoLmxvZzIoTnIpLDA9PSgyMTQ3NDgzNjQ4JihvYT0oTnIvPU1hdGgucG93KDIsdDAtMzEpKT4+PjApKSYmKCsrdDAsb2E9KE5yLz0yKT4+PjApLE5yLT1vYSxvYXw9MjE0''@;'; + put 'put ''NzQ4MzY0OCxvYT4+Pj0wLE5yKj1NYXRoLnBvdygyLDMyKSxraS53cml0ZV9zaGlmdCg0LE5yPj4+MCksa2kud3JpdGVfc2hpZnQoNCxvYSksa2kud3JpdGVfc2hpZnQoMix0MCs9MTYzODMrKE4wPzMyNzY4OjApKSxraX1mdW5jdGlvbiBkaShZcixFaSl7dmFyIGhpPWFpKFlyKSxOcj1Zci5y''@;'; + put 'put ''ZWFkX3NoaWZ0KDgsImYiKTtyZXR1cm4gaGlbMV0udj1OcixoaX1mdW5jdGlvbiB0byhZcixFaSl7dmFyIGhpPVJpKDUrWXIubGVuZ3RoKTtoaS53cml0ZV9zaGlmdCgyLDE0ZTMpLGhpLndyaXRlX3NoaWZ0KDIsRWkpO2Zvcih2YXIgTnI9MDtOcjxZci5sZW5ndGg7KytOcil7dmFyIGtpPVly''@;'; + put 'put ''LmNoYXJDb2RlQXQoTnIpO2hpW2hpLmwrK109a2k+MTI3Pzk1OmtpfXJldHVybiBoaVtoaS5sKytdPTAsaGl9dmFyIEEwPXswOntuOiJCT0YiLGY6YzF9LDE6e246IkVPRiJ9LDI6e246IkNBTENNT0RFIn0sMzp7bjoiQ0FMQ09SREVSIn0sNDp7bjoiU1BMSVQifSw1OntuOiJTWU5DIn0sNjp7''@;'; + put 'put ''bjoiUkFOR0UiLGY6ZnVuY3Rpb24gamUoWXIpe3ZhciBFaT17czp7YzowLHI6MH0sZTp7YzowLHI6MH19O3JldHVybiBFaS5zLmM9WXIucmVhZF9zaGlmdCgyKSxFaS5zLnI9WXIucmVhZF9zaGlmdCgyKSxFaS5lLmM9WXIucmVhZF9zaGlmdCgyKSxFaS5lLnI9WXIucmVhZF9zaGlmdCgyKSw2''@;'; + put 'put ''NTUzNT09RWkucy5jJiYoRWkucy5jPUVpLmUuYz1FaS5zLnI9RWkuZS5yPTApLEVpfX0sNzp7bjoiV0lORE9XMSJ9LDg6e246IkNPTFcxIn0sOTp7bjoiV0lOVFdPIn0sMTA6e246IkNPTFcyIn0sMTE6e246Ik5BTUUifSwxMjp7bjoiQkxBTksifSwxMzp7bjoiSU5URUdFUiIsZjpmdW5jdGlv''@;'; + put 'put ''biBVdChZcixFaSxoaSl7dmFyIE5yPU10KFlyLDAsaGkpO3JldHVybiBOclsxXS52PVlyLnJlYWRfc2hpZnQoMiwiaSIpLE5yfX0sMTQ6e246Ik5VTUJFUiIsZjpmdW5jdGlvbiBDbihZcixFaSxoaSl7dmFyIE5yPU10KFlyLDAsaGkpO3JldHVybiBOclsxXS52PVlyLnJlYWRfc2hpZnQoOCwi''@;'; + put 'put ''ZiIpLE5yfX0sMTU6e246IkxBQkVMIixmOnh0fSwxNjp7bjoiRk9STVVMQSIsZjpmdW5jdGlvbiB6dChZcixFaSxoaSl7dmFyIE5yPVlyLmwrRWksa2k9TXQoWXIsMCxoaSk7aWYoa2lbMV0udj1Zci5yZWFkX3NoaWZ0KDgsImYiKSxoaS5xcHJvKVlyLmw9TnI7ZWxzZXt2YXIgTjA9WXIucmVh''@;'; + put 'put ''ZF9zaGlmdCgyKTsoZnVuY3Rpb24gTXIoWXIsRWkpe0tsKFlyLDApO2Zvcih2YXIgaGk9W10sTnI9MCxraT0iIixOMD0iIjtZci5sPFlyLmxlbmd0aDspe3ZhciB0MD1ZcltZci5sKytdO3N3aXRjaCh0MCl7Y2FzZSAwOmhpLnB1c2goWXIucmVhZF9zaGlmdCg4LCJmIikpO2JyZWFrO2Nhc2Ug''@;'; + put 'put ''MTpOMD1QbihFaVswXS5jLFlyLnJlYWRfc2hpZnQoMiksITApLGtpPVBuKEVpWzBdLnIsWXIucmVhZF9zaGlmdCgyKSwhMSksaGkucHVzaChOMCtraSk7YnJlYWs7Y2FzZSAyOnZhciBpbz1QbihFaVswXS5jLFlyLnJlYWRfc2hpZnQoMiksITApLG9hPVBuKEVpWzBdLnIsWXIucmVhZF9zaGlm''@;'; + put 'put ''dCgyKSwhMSk7TjA9UG4oRWlbMF0uYyxZci5yZWFkX3NoaWZ0KDIpLCEwKSxraT1QbihFaVswXS5yLFlyLnJlYWRfc2hpZnQoMiksITEpLGhpLnB1c2goaW8rb2ErIjoiK04wK2tpKTticmVhaztjYXNlIDM6aWYoWXIubDxZci5sZW5ndGgpcmV0dXJuIHZvaWQgY29uc29sZS5lcnJvcigiV0sx''@;'; + put 'put ''IHByZW1hdHVyZSBmb3JtdWxhIGVuZCIpO2JyZWFrO2Nhc2UgNDpoaS5wdXNoKCIoIitoaS5wb3AoKSsiKSIpO2JyZWFrO2Nhc2UgNTpoaS5wdXNoKFlyLnJlYWRfc2hpZnQoMikpO2JyZWFrO2Nhc2UgNjpmb3IodmFyICQwPSIiO3QwPVlyW1lyLmwrK107KSQwKz1TdHJpbmcuZnJvbUNoYXJD''@;'; + put 'put ''b2RlKHQwKTtoaS5wdXNoKCciJyskMC5yZXBsYWNlKC8iL2csJyIiJykrJyInKTticmVhaztjYXNlIDg6aGkucHVzaCgiLSIraGkucG9wKCkpO2JyZWFrO2Nhc2UgMjM6aGkucHVzaCgiKyIraGkucG9wKCkpO2JyZWFrO2Nhc2UgMjI6aGkucHVzaCgiTk9UKCIraGkucG9wKCkrIikiKTticmVh''@;'; + put 'put ''aztjYXNlIDIwOmNhc2UgMjE6dmFyIE5hPWhpLnBvcCgpLGpvPWhpLnBvcCgpO2hpLnB1c2goWyJBTkQiLCJPUiJdW3QwLTIwXSsiKCIram8rIiwiK05hKyIpIik7YnJlYWs7ZGVmYXVsdDppZih0MDwzMiYmWW5bdDBdKU5hPWhpLnBvcCgpLGpvPWhpLnBvcCgpLGhpLnB1c2goam8rWW5bdDBd''@;'; + put 'put ''K05hKTtlbHNle2lmKCFPblt0MF0pcmV0dXJuIHQwPD03P2NvbnNvbGUuZXJyb3IoIldLMSBpbnZhbGlkIG9wY29kZSAiK3QwLnRvU3RyaW5nKDE2KSk6dDA8PTI0P2NvbnNvbGUuZXJyb3IoIldLMSB1bnN1cHBvcnRlZCBvcCAiK3QwLnRvU3RyaW5nKDE2KSk6dDA8PTMwP2NvbnNvbGUuZXJy''@;'; + put 'put ''b3IoIldLMSBpbnZhbGlkIG9wY29kZSAiK3QwLnRvU3RyaW5nKDE2KSk6dDA8PTExNT9jb25zb2xlLmVycm9yKCJXSzEgdW5zdXBwb3J0ZWQgZnVuY3Rpb24gb3Bjb2RlICIrdDAudG9TdHJpbmcoMTYpKTpjb25zb2xlLmVycm9yKCJXSzEgdW5yZWNvZ25pemVkIG9wY29kZSAiK3QwLnRvU3Ry''@;'; + put 'put ''aW5nKDE2KSk7aWYoNjk9PShOcj1Pblt0MF1bMV0pJiYoTnI9WXJbWXIubCsrXSksTnI+aGkubGVuZ3RoKXJldHVybiB2b2lkIGNvbnNvbGUuZXJyb3IoIldLMSBiYWQgZm9ybXVsYSBwYXJzZSAweCIrdDAudG9TdHJpbmcoMTYpKyI6fCIraGkuam9pbigifCIpKyJ8Iik7dmFyIHdhPWhpLnNs''@;'; + put 'put ''aWNlKC1Ocik7aGkubGVuZ3RoLT1OcixoaS5wdXNoKE9uW3QwXVswXSsiKCIrd2Euam9pbigiLCIpKyIpIil9fX0xPT1oaS5sZW5ndGg/RWlbMV0uZj0iIitoaVswXTpjb25zb2xlLmVycm9yKCJXSzEgYmFkIGZvcm11bGEgcGFyc2UgfCIraGkuam9pbigifCIpKyJ8Iil9KShZci5zbGljZShZ''@;'; + put 'put ''ci5sLFlyLmwrTjApLGtpKSxZci5sKz1OMH1yZXR1cm4ga2l9fSwyNDp7bjoiVEFCTEUifSwyNTp7bjoiT1JBTkdFIn0sMjY6e246IlBSQU5HRSJ9LDI3OntuOiJTUkFOR0UifSwyODp7bjoiRlJBTkdFIn0sMjk6e246IktSQU5HRTEifSwzMjp7bjoiSFJBTkdFIn0sMzU6e246IktSQU5HRTIi''@;'; + put 'put ''fSwzNjp7bjoiUFJPVEVDIn0sMzc6e246IkZPT1RFUiJ9LDM4OntuOiJIRUFERVIifSwzOTp7bjoiU0VUVVAifSw0MDp7bjoiTUFSR0lOUyJ9LDQxOntuOiJMQUJFTEZNVCJ9LDQyOntuOiJUSVRMRVMifSw0Mzp7bjoiU0hFRVRKUyJ9LDQ1OntuOiJHUkFQSCJ9LDQ2OntuOiJOR1JBUEgifSw0''@;'; + put 'put ''Nzp7bjoiQ0FMQ0NPVU5UIn0sNDg6e246IlVORk9STUFUVEVEIn0sNDk6e246IkNVUlNPUlcxMiJ9LDUwOntuOiJXSU5ET1cifSw1MTp7bjoiU1RSSU5HIixmOnh0fSw1NTp7bjoiUEFTU1dPUkQifSw1Njp7bjoiTE9DS0VEIn0sNjA6e246IlFVRVJZIn0sNjE6e246IlFVRVJZTkFNRSJ9LDYy''@;'; + put 'put ''OntuOiJQUklOVCJ9LDYzOntuOiJQUklOVE5BTUUifSw2NDp7bjoiR1JBUEgyIn0sNjU6e246IkdSQVBITkFNRSJ9LDY2OntuOiJaT09NIn0sNjc6e246IlNZTVNQTElUIn0sNjg6e246Ik5TUk9XUyJ9LDY5OntuOiJOU0NPTFMifSw3MDp7bjoiUlVMRVIifSw3MTp7bjoiTk5BTUUifSw3Mjp7''@;'; + put 'put ''bjoiQUNPTU0ifSw3Mzp7bjoiQU1BQ1JPIn0sNzQ6e246IlBBUlNFIn0sMTAyOntuOiJQUkFOR0VTPz8ifSwxMDM6e246IlJSQU5HRVM/PyJ9LDEwNDp7bjoiRk5BTUU/PyJ9LDEwNTp7bjoiTVJBTkdFUz8/In0sNjU1MzU6e246IiJ9fSx3aT17MDp7bjoiQk9GIn0sMTp7bjoiRU9GIn0sMjp7''@;'; + put 'put ''bjoiUEFTU1dPUkQifSwzOntuOiJDQUxDU0VUIn0sNDp7bjoiV0lORE9XU0VUIn0sNTp7bjoiU0hFRVRDRUxMUFRSIn0sNjp7bjoiU0hFRVRMQVlPVVQifSw3OntuOiJDT0xVTU5XSURUSCJ9LDg6e246IkhJRERFTkNPTFVNTiJ9LDk6e246IlVTRVJSQU5HRSJ9LDEwOntuOiJTWVNURU1SQU5H''@;'; + put 'put ''RSJ9LDExOntuOiJaRVJPRk9SQ0UifSwxMjp7bjoiU09SVEtFWURJUiJ9LDEzOntuOiJGSUxFU0VBTCJ9LDE0OntuOiJEQVRBRklMTE5VTVMifSwxNTp7bjoiUFJJTlRNQUlOIn0sMTY6e246IlBSSU5UU1RSSU5HIn0sMTc6e246IkdSQVBITUFJTiJ9LDE4OntuOiJHUkFQSFNUUklORyJ9LDE5''@;'; + put 'put ''OntuOiI/PyJ9LDIwOntuOiJFUlJDRUxMIn0sMjE6e246Ik5BQ0VMTCJ9LDIyOntuOiJMQUJFTDE2IixmOmZ1bmN0aW9uIHlyKFlyLEVpKXt2YXIgaGk9YWkoWXIpO3JldHVybiBoaVsxXS50PSJzIixoaVsxXS52PVlyLnJlYWRfc2hpZnQoRWktNCwiY3N0ciIpLGhpfX0sMjM6e246Ik5VTUJF''@;'; + put 'put ''UjE3IixmOnpyfSwyNDp7bjoiTlVNQkVSMTgiLGY6ZnVuY3Rpb24gR3IoWXIsRWkpe3ZhciBoaT1haShZcik7aGlbMV0udj1Zci5yZWFkX3NoaWZ0KDIpO3ZhciBOcj1oaVsxXS52Pj4xO2lmKDEmaGlbMV0udilzd2l0Y2goNyZOcil7Y2FzZSAwOk5yPTVlMyooTnI+PjMpO2JyZWFrO2Nhc2Ug''@;'; + put 'put ''MTpOcj01MDAqKE5yPj4zKTticmVhaztjYXNlIDI6TnI9KE5yPj4zKS8yMDticmVhaztjYXNlIDM6TnI9KE5yPj4zKS8yMDA7YnJlYWs7Y2FzZSA0Ok5yPShOcj4+MykvMmUzO2JyZWFrO2Nhc2UgNTpOcj0oTnI+PjMpLzJlNDticmVhaztjYXNlIDY6TnI9KE5yPj4zKS8xNjticmVhaztjYXNl''@;'; + put 'put ''IDc6TnI9KE5yPj4zKS82NH1yZXR1cm4gaGlbMV0udj1OcixoaX19LDI1OntuOiJGT1JNVUxBMTkiLGY6ZnVuY3Rpb24gb2koWXIsRWkpe3ZhciBoaT16cihZcik7cmV0dXJuIFlyLmwrPUVpLTE0LGhpfX0sMjY6e246IkZPUk1VTEExQSJ9LDI3OntuOiJYRk9STUFUIixmOmZ1bmN0aW9uIFVp''@;'; + put 'put ''KFlyLEVpKXtmb3IodmFyIGhpPXt9LE5yPVlyLmwrRWk7WXIubDxOcjspe3ZhciBraT1Zci5yZWFkX3NoaWZ0KDIpO2lmKDE0ZTM9PWtpKXtmb3IoaGlba2ldPVswLCIiXSxoaVtraV1bMF09WXIucmVhZF9zaGlmdCgyKTtZcltZci5sXTspaGlba2ldWzFdKz1TdHJpbmcuZnJvbUNoYXJDb2Rl''@;'; + put 'put ''KFlyW1lyLmxdKSxZci5sKys7WXIubCsrfX1yZXR1cm4gaGl9fSwyODp7bjoiRFRMQUJFTE1JU0MifSwyOTp7bjoiRFRMQUJFTENFTEwifSwzMDp7bjoiR1JBUEhXSU5ET1cifSwzMTp7bjoiQ1BBIn0sMzI6e246IkxQTEFVVE8ifSwzMzp7bjoiUVVFUlkifSwzNDp7bjoiSElEREVOU0hFRVQi''@;'; + put 'put ''fSwzNTp7bjoiPz8ifSwzNzp7bjoiTlVNQkVSMjUiLGY6ZnVuY3Rpb24gY3IoWXIsRWkpe3ZhciBoaT1haShZciksTnI9WXIucmVhZF9zaGlmdCg0KTtyZXR1cm4gaGlbMV0udj1Ocj4+NixoaX19LDM4OntuOiI/PyJ9LDM5OntuOiJOVU1CRVIyNyIsZjpkaX0sNDA6e246IkZPUk1VTEEyOCIs''@;'; + put 'put ''ZjpmdW5jdGlvbiB2MChZcixFaSl7dmFyIGhpPWRpKFlyKTtyZXR1cm4gWXIubCs9RWktMTAsaGl9fSwxNDI6e246Ij8/In0sMTQ3OntuOiI/PyJ9LDE1MDp7bjoiPz8ifSwxNTE6e246Ij8/In0sMTUyOntuOiI/PyJ9LDE1Mzp7bjoiPz8ifSwxNTQ6e246Ij8/In0sMTU1OntuOiI/PyJ9LDE1''@;'; + put 'put ''Njp7bjoiPz8ifSwxNjM6e246Ij8/In0sMTc0OntuOiI/PyJ9LDE3NTp7bjoiPz8ifSwxNzY6e246Ij8/In0sMTc3OntuOiI/PyJ9LDE4NDp7bjoiPz8ifSwxODU6e246Ij8/In0sMTg2OntuOiI/PyJ9LDE4Nzp7bjoiPz8ifSwxODg6e246Ij8/In0sMTk1OntuOiI/PyJ9LDIwMTp7bjoiPz8i''@;'; + put 'put ''fSwyMDU6e246Ij8/In0sMjA2OntuOiI/PyJ9LDIwNzp7bjoiPz8ifSwyMDg6e246Ij8/In0sMjU2OntuOiI/PyJ9LDI1OTp7bjoiPz8ifSwyNjA6e246Ij8/In0sMjYxOntuOiI/PyJ9LDI2Mjp7bjoiPz8ifSwyNjM6e246Ij8/In0sMjY1OntuOiI/PyJ9LDI2Njp7bjoiPz8ifSwyNjc6e246''@;'; + put 'put ''Ij8/In0sMjY4OntuOiI/PyJ9LDI3MDp7bjoiPz8ifSwyNzE6e246Ij8/In0sMzg0OntuOiI/PyJ9LDM4OTp7bjoiPz8ifSwzOTA6e246Ij8/In0sMzkzOntuOiI/PyJ9LDM5Njp7bjoiPz8ifSw1MTI6e246Ij8/In0sNTE0OntuOiI/PyJ9LDUxMzp7bjoiPz8ifSw1MTY6e246Ij8/In0sNTE3''@;'; + put 'put ''OntuOiI/PyJ9LDY0MDp7bjoiPz8ifSw2NDE6e246Ij8/In0sNjQyOntuOiI/PyJ9LDY0Mzp7bjoiPz8ifSw2NDQ6e246Ij8/In0sNjQ1OntuOiI/PyJ9LDY0Njp7bjoiPz8ifSw2NDc6e246Ij8/In0sNjQ4OntuOiI/PyJ9LDY1ODp7bjoiPz8ifSw2NTk6e246Ij8/In0sNjYwOntuOiI/PyJ9''@;'; + put 'put ''LDY2MTp7bjoiPz8ifSw2NjI6e246Ij8/In0sNjY1OntuOiI/PyJ9LDY2Njp7bjoiPz8ifSw3Njg6e246Ij8/In0sNzcyOntuOiI/PyJ9LDE2MDA6e246Ij8/In0sMTYwMjp7bjoiPz8ifSwxNzkzOntuOiI/PyJ9LDE3OTQ6e246Ij8/In0sMTc5NTp7bjoiPz8ifSwxNzk2OntuOiI/PyJ9LDE5''@;'; + put 'put ''MjA6e246Ij8/In0sMjA0ODp7bjoiPz8ifSwyMDQ5OntuOiI/PyJ9LDIwNTI6e246Ij8/In0sMjY4ODp7bjoiPz8ifSwxMDk5ODp7bjoiPz8ifSwxMjg0OTp7bjoiPz8ifSwyODIzMzp7bjoiPz8ifSwyODQ4NDp7bjoiPz8ifSw2NTUzNTp7bjoiIn19O3JldHVybntzaGVldF90b193azE6ZnVu''@;'; + put 'put ''Y3Rpb24gd2UoWXIsRWkpe3ZhciBoaT1FaXx8e307aWYoK2hpLmNvZGVwYWdlPj0wJiZlZSgraGkuY29kZXBhZ2UpLCJzdHJpbmciPT1oaS50eXBlKXRocm93IG5ldyBFcnJvcigiQ2Fubm90IHdyaXRlIFdLMSB0byBKUyBzdHJpbmciKTt2YXIgTnI9SjIoKSxraT1GbyhZclsiIXJlZiJdKSxO''@;'; + put 'put ''MD1BcnJheS5pc0FycmF5KFlyKSx0MD1bXTtzMChOciwwLGZ1bmN0aW9uIEZlKFlyKXt2YXIgRWk9UmkoMik7cmV0dXJuIEVpLndyaXRlX3NoaWZ0KDIsWXIpLEVpfSgxMDMwKSksczAoTnIsNixmdW5jdGlvbiBZZShZcil7dmFyIEVpPVJpKDgpO3JldHVybiBFaS53cml0ZV9zaGlmdCgyLFly''@;'; + put 'put ''LnMuYyksRWkud3JpdGVfc2hpZnQoMixZci5zLnIpLEVpLndyaXRlX3NoaWZ0KDIsWXIuZS5jKSxFaS53cml0ZV9zaGlmdCgyLFlyLmUuciksRWl9KGtpKSk7Zm9yKHZhciBpbz1raS5zLnI7aW88PWtpLmUucjsrK2lvKWZvcih2YXIgb2E9WGEoaW8pLCQwPWtpLnMuYzskMDw9a2kuZS5jOysr''@;'; + put 'put ''JDApe2lvPT09a2kucy5yJiYodDBbJDBdPV9hKCQwKSk7dmFyIGpvPU4wPyhZcltpb118fFtdKVskMF06WXJbdDBbJDBdK29hXTtqbyYmInoiIT1qby50JiYoIm4iPT1qby50PygwfGpvLnYpPT1qby52JiZqby52Pj0tMzI3NjgmJmpvLnY8PTMyNzY3P3MwKE5yLDEzLG5uKGlvLCQwLGpvLnYp''@;'; + put 'put ''KTpzMChOciwxNCxEdChpbywkMCxqby52KSk6czAoTnIsMTUsUnQoaW8sJDAseTEoam8pLnNsaWNlKDAsMjM5KSkpKX1yZXR1cm4gczAoTnIsMSksTnIuZW5kKCl9LGJvb2tfdG9fd2szOmZ1bmN0aW9uIHhlKFlyLEVpKXt2YXIgaGk9RWl8fHt9O2lmKCtoaS5jb2RlcGFnZT49MCYmZWUoK2hp''@;'; + put 'put ''LmNvZGVwYWdlKSwic3RyaW5nIj09aGkudHlwZSl0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCB3cml0ZSBXSzMgdG8gSlMgc3RyaW5nIik7dmFyIE5yPUoyKCk7czAoTnIsMCxmdW5jdGlvbiBaZShZcil7dmFyIEVpPVJpKDI2KTtFaS53cml0ZV9zaGlmdCgyLDQwOTYpLEVpLndyaXRlX3NoaWZ0''@;'; + put 'put ''KDIsNCksRWkud3JpdGVfc2hpZnQoNCwwKTtmb3IodmFyIGhpPTAsTnI9MCxraT0wLE4wPTA7TjA8WXIuU2hlZXROYW1lcy5sZW5ndGg7KytOMCl7dmFyIGlvPVlyLlNoZWV0c1tZci5TaGVldE5hbWVzW04wXV07aWYoaW8mJmlvWyIhcmVmIl0peysra2k7dmFyIG9hPXZzKGlvWyIhcmVmIl0p''@;'; + put 'put ''O2hpPG9hLmUuciYmKGhpPW9hLmUuciksTnI8b2EuZS5jJiYoTnI9b2EuZS5jKX19cmV0dXJuIEVpLndyaXRlX3NoaWZ0KDIsaGkpLEVpLndyaXRlX3NoaWZ0KDEsa2kpLEVpLndyaXRlX3NoaWZ0KDEsTnIpLEVpLndyaXRlX3NoaWZ0KDIsMCksRWkud3JpdGVfc2hpZnQoMiwwKSxFaS53cml0''@;'; + put 'put ''ZV9zaGlmdCgxLDEpLEVpLndyaXRlX3NoaWZ0KDEsMiksRWkud3JpdGVfc2hpZnQoNCwwKSxFaS53cml0ZV9zaGlmdCg0LDApLEVpfShZcikpO2Zvcih2YXIga2k9MCxOMD0wO2tpPFlyLlNoZWV0TmFtZXMubGVuZ3RoOysra2kpKFlyLlNoZWV0c1tZci5TaGVldE5hbWVzW2tpXV18fHt9KVsi''@;'; + put 'put ''IXJlZiJdJiZzMChOciwyNyx0byhZci5TaGVldE5hbWVzW2tpXSxOMCsrKSk7dmFyIHQwPTA7Zm9yKGtpPTA7a2k8WXIuU2hlZXROYW1lcy5sZW5ndGg7KytraSl7dmFyIGlvPVlyLlNoZWV0c1tZci5TaGVldE5hbWVzW2tpXV07aWYoaW8mJmlvWyIhcmVmIl0pe2Zvcih2YXIgb2E9Rm8oaW9b''@;'; + put 'put ''IiFyZWYiXSksJDA9QXJyYXkuaXNBcnJheShpbyksTmE9W10sam89b2Eucy5yO2pvPD1vYS5lLnI7Kytqbylmb3IodmFyIHdhPVhhKGpvKSxhbz1vYS5zLmM7YW88PW9hLmUuYzsrK2FvKXtqbz09PW9hLnMuciYmKE5hW2FvXT1fYShhbykpO3ZhciBoMD0kMD8oaW9bam9dfHxbXSlbYW9dOmlv''@;'; + put 'put ''W05hW2FvXSt3YV07aDAmJiJ6IiE9aDAudCYmKCJuIj09aDAudD9zMChOciwyMyxxcihqbyxhbyx0MCxoMC52KSk6czAoTnIsMjIsYXIoam8sYW8sdDAseTEoaDApLnNsaWNlKDAsMjM5KSkpKX0rK3QwfX1yZXR1cm4gczAoTnIsMSksTnIuZW5kKCl9LHRvX3dvcmtib29rOmZ1bmN0aW9uIHJl''@;'; + put 'put ''KFlyLEVpKXtzd2l0Y2goRWkudHlwZSl7Y2FzZSJiYXNlNjQiOnJldHVybiBYKHooU2UuZGVjb2RlKFlyKSksRWkpO2Nhc2UiYmluYXJ5IjpyZXR1cm4gWCh6KFlyKSxFaSk7Y2FzZSJidWZmZXIiOmNhc2UiYXJyYXkiOnJldHVybiBYKFlyLEVpKX10aHJvdyJVbnN1cHBvcnRlZCB0eXBlICIr''@;'; + put 'put ''RWkudHlwZX19fSgpLFc4PWZ1bmN0aW9uKCl7dmFyIEg9UWkoInQiKSxyZT1RaSgiclByIik7ZnVuY3Rpb24gWChGZSl7dmFyIFplPUZlLm1hdGNoKEgpO2lmKCFaZSlyZXR1cm57dDoicyIsdjoiIn07dmFyIGplPXt0OiJzIix2OmdyKFplWzFdKX0sWWU9RmUubWF0Y2gocmUpO3JldHVybiBZ''@;'; + put 'put ''ZSYmKGplLnM9ZnVuY3Rpb24gRWgoSCl7dmFyIHJlPXt9LFg9SC5tYXRjaChHdCksd2U9MCx4ZT0hMTtpZihYKWZvcig7d2UhPVgubGVuZ3RoOysrd2Upe3ZhciBGZT1lbihYW3dlXSk7c3dpdGNoKEZlWzBdLnJlcGxhY2UoL1x3KjovZywiIikpe2Nhc2UiPGNvbmRlbnNlIjpjYXNlIjxleHRl''@;'; + put 'put ''bmQiOmJyZWFrO2Nhc2UiPHNoYWRvdyI6aWYoIUZlLnZhbClicmVhaztjYXNlIjxzaGFkb3c+IjpjYXNlIjxzaGFkb3cvPiI6cmUuc2hhZG93PTE7YnJlYWs7Y2FzZSI8L3NoYWRvdz4iOmJyZWFrO2Nhc2UiPGNoYXJzZXQiOmlmKCIxIj09RmUudmFsKWJyZWFrO3JlLmNwPVlbcGFyc2VJbnQo''@;'; + put 'put ''RmUudmFsLDEwKV07YnJlYWs7Y2FzZSI8b3V0bGluZSI6aWYoIUZlLnZhbClicmVhaztjYXNlIjxvdXRsaW5lPiI6Y2FzZSI8b3V0bGluZS8+IjpyZS5vdXRsaW5lPTE7YnJlYWs7Y2FzZSI8L291dGxpbmU+IjpicmVhaztjYXNlIjxyRm9udCI6cmUubmFtZT1GZS52YWw7YnJlYWs7Y2FzZSI8''@;'; + put 'put ''c3oiOnJlLnN6PUZlLnZhbDticmVhaztjYXNlIjxzdHJpa2UiOmlmKCFGZS52YWwpYnJlYWs7Y2FzZSI8c3RyaWtlPiI6Y2FzZSI8c3RyaWtlLz4iOnJlLnN0cmlrZT0xO2JyZWFrO2Nhc2UiPC9zdHJpa2U+IjpicmVhaztjYXNlIjx1IjppZighRmUudmFsKWJyZWFrO3N3aXRjaChGZS52YWwp''@;'; + put 'put ''e2Nhc2UiZG91YmxlIjpyZS51bmRlcmxpbmU9MjticmVhaztjYXNlInNpbmdsZUFjY291bnRpbmciOnJlLnVuZGVybGluZT0zMzticmVhaztjYXNlImRvdWJsZUFjY291bnRpbmciOnJlLnVuZGVybGluZT0zNH1jYXNlIjx1PiI6Y2FzZSI8dS8+IjpyZS51bmRlcmxpbmV8fChyZS51bmRlcmxp''@;'; + put 'put ''bmU9MSk7YnJlYWs7Y2FzZSI8L3U+IjpicmVhaztjYXNlIjxiIjppZigiMCI9PUZlLnZhbClicmVhaztjYXNlIjxiPiI6Y2FzZSI8Yi8+IjpyZS5ib2xkPTE7YnJlYWs7Y2FzZSI8L2I+IjpicmVhaztjYXNlIjxpIjppZigiMCI9PUZlLnZhbClicmVhaztjYXNlIjxpPiI6Y2FzZSI8aS8+Ijpy''@;'; + put 'put ''ZS5pdGFsaWM9MTticmVhaztjYXNlIjwvaT4iOmJyZWFrO2Nhc2UiPGNvbG9yIjpGZS5yZ2ImJihyZS5jb2xvcj17cmdiOjg9PUZlLnJnYi5sZW5ndGg/RmUucmdiLnNsaWNlKDIsOCk6KCIwMDAwMDAiK0ZlLnJnYikuc2xpY2UoLTYpfSk7YnJlYWs7Y2FzZSI8ZmFtaWx5IjpyZS5mYW1pbHk9''@;'; + put 'put ''RmUudmFsO2JyZWFrO2Nhc2UiPHZlcnRBbGlnbiI6Im5vbmUiIT0oRmUudmFsfHwibm9uZSIpJiYocmUudmFsaWduPUZlLnZhbC5yZXBsYWNlKCJzY3JpcHQiLCIiKSk7YnJlYWs7Y2FzZSI8c2NoZW1lIjpjYXNlIjxleHRMc3QiOmNhc2UiPGV4dExzdD4iOmNhc2UiPC9leHRMc3Q+IjpicmVh''@;'; + put 'put ''aztjYXNlIjxleHQiOnhlPSEwO2JyZWFrO2Nhc2UiPC9leHQ+Ijp4ZT0hMTticmVhaztkZWZhdWx0OmlmKDQ3IT09RmVbMF0uY2hhckNvZGVBdCgxKSYmIXhlKXRocm93IG5ldyBFcnJvcigiVW5yZWNvZ25pemVkIHJpY2ggZm9ybWF0ICIrRmVbMF0pfX1yZXR1cm4gcmV9KFllWzFdKSksamV9''@;'; + put 'put ''dmFyIHdlPS88KD86XHcrOik/cj4vZyx4ZT0vPFwvKD86XHcrOik/cj4vO3JldHVybiBmdW5jdGlvbihaZSl7cmV0dXJuIFplLnJlcGxhY2Uod2UsIiIpLnNwbGl0KHhlKS5tYXAoWCkuZmlsdGVyKGZ1bmN0aW9uKGplKXtyZXR1cm4gamUudn0pfX0oKSxPND17MToic2luZ2xlIiwyOiJkb3Vi''@;'; + put 'put ''bGUiLDMzOiJzaW5nbGUtYWNjb3VudGluZyIsMzQ6ImRvdWJsZS1hY2NvdW50aW5nIn0saG09ZnVuY3Rpb24oKXt2YXIgcmU9LyhcclxufFxuKS9nO2Z1bmN0aW9uIHdlKHhlKXt2YXIgRmU9W1tdLHhlLnYsW11dO3JldHVybiB4ZS52Pyh4ZS5zJiZmdW5jdGlvbiBYKHhlLEZlLFplKXt2YXIg''@;'; + put 'put ''amU9W107eGUudW5kZXJsaW5lJiZqZS5wdXNoKCJ0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsiKSx4ZS51bmRlcmxpbmU+MSYmamUucHVzaCgidGV4dC11bmRlcmxpbmUtc3R5bGU6IitPNFt4ZS51bmRlcmxpbmVdKyI7IikseGUuc3omJmplLnB1c2goImZvbnQtc2l6ZToiK3hlLnN6KyJw''@;'; + put 'put ''dDsiKSx4ZS5vdXRsaW5lJiZqZS5wdXNoKCJ0ZXh0LWVmZmVjdDogb3V0bGluZTsiKSx4ZS5zaGFkb3cmJmplLnB1c2goInRleHQtc2hhZG93OiBhdXRvOyIpLHhlLmNvbG9yJiZ4ZS5jb2xvci5yZ2ImJmplLnB1c2goImNvbG9yOiAjIitMbyh4ZS5jb2xvci5yZ2IpKyI7IiksRmUucHVzaCgn''@;'; + put 'put ''PHNwYW4gc3R5bGU9IicramUuam9pbigiIikrJyI+JykseGUuYm9sZCYmKEZlLnB1c2goIjxiPiIpLFplLnB1c2goIjwvYj4iKSkseGUuaXRhbGljJiYoRmUucHVzaCgiPGk+IiksWmUucHVzaCgiPC9pPiIpKSx4ZS5zdHJpa2UmJihGZS5wdXNoKCI8cz4iKSxaZS5wdXNoKCI8L3M+IikpO3Zh''@;'; + put 'put ''ciBZZT14ZS52YWxpZ258fCIiOyJzdXBlcnNjcmlwdCI9PVllfHwic3VwZXIiPT1ZZT9ZZT0ic3VwIjoic3Vic2NyaXB0Ij09WWUmJihZZT0ic3ViIiksIiIhPVllJiYoRmUucHVzaCgiPCIrWWUrIj4iKSxaZS5wdXNoKCI8LyIrWWUrIj4iKSksWmUucHVzaCgiPC9zcGFuPiIpfSh4ZS5zLEZl''@;'; + put 'put ''WzBdLEZlWzJdKSxGZVswXS5qb2luKCIiKStGZVsxXS5yZXBsYWNlKHJlLCI8YnIvPiIpK0ZlWzJdLmpvaW4oIiIpKToiIn1yZXR1cm4gZnVuY3Rpb24oRmUpe3JldHVybiBGZS5tYXAod2UpLmpvaW4oIiIpfX0oKTtmdW5jdGlvbiB1NihIKXtyZXR1cm4gSC5tYXAoZnVuY3Rpb24oWCl7cmV0''@;'; + put 'put ''dXJuIGZ1bmN0aW9uIG1hKEgpe3ZhciByZT0iIixYPVtdO3JldHVybiBILnMmJihILnMuYm9sZCYmWC5wdXNoKCI8Yi8+IiksSC5zLml0YWxpYyYmWC5wdXNoKCI8aS8+IiksSC5zLnN0cmlrZSYmWC5wdXNoKCI8c3RyaWtlLz4iKSxILnMudW5kZXJsaW5lJiZYLnB1c2goJzx1IHZhbD0iJyso''@;'; + put 'put ''TDlbSC5zLnVuZGVybGluZV18fCJzaW5nbGUiKSsnIi8+JyksSC5zLmNvbG9yJiZYLnB1c2goWHMoSC5zLmNvbG9yKSksSC5zLnN6JiZYLnB1c2goJzxzeiB2YWw9IicrSC5zLnN6KyciLz4nKSxILnMubmFtZSYmWC5wdXNoKCc8ckZvbnQgdmFsPSInK0gucy5uYW1lKyciLz4nKSwoInN1cGVy''@;'; + put 'put ''Ij09SC5zLnZhbGlnbnx8InN1YiI9PUgucy52YWxpZ24pJiZYLnB1c2goJzx2ZXJ0QWxpZ24gdmFsPSInK0gucy52YWxpZ24rJ3NjcmlwdCIvPicpKSxYLmxlbmd0aCYmKHJlKz0iPHJQcj4iK1guam9pbigiIikrIjwvclByPiIpLCI8cj4iKyhyZSs9X2koInQiLFJyKEgudiksbnVsbCkpKyI8''@;'; + put 'put ''L3I+In0oWCl9KS5qb2luKCIiKX12YXIgaGw9LzwoPzpcdys6KT90W14+XSo+KFtePF0qKTxcLyg/Olx3KzopP3Q+L2csVWY9LzwoPzpcdys6KT9yXGJbXj5dKj4vLGQyPS88KD86XHcrOik/clBoLio/PihbXHNcU10qPyk8XC8oPzpcdys6KT9yUGg+L2c7ZnVuY3Rpb24gJHUoSCxyZSl7dmFy''@;'; + put 'put ''IFg9IXJlfHxyZS5jZWxsSFRNTCx3ZT17fTtyZXR1cm4gSD8oSC5tYXRjaCgvXlxzKjwoPzpcdys6KT90W14+XSo+Lyk/KHdlLnQ9Z3IoVzAoSC5zbGljZShILmluZGV4T2YoIj4iKSsxKS5zcGxpdCgvPFwvKD86XHcrOik/dD4vKVswXXx8IiIpKSx3ZS5yPVcwKEgpLFgmJih3ZS5oPW4wKHdl''@;'; + put 'put ''LnQpKSk6SC5tYXRjaChVZikmJih3ZS5yPVcwKEgpLHdlLnQ9Z3IoVzAoKEgucmVwbGFjZShkMiwiIikubWF0Y2goaGwpfHxbXSkuam9pbigiIikucmVwbGFjZShHdCwiIikpKSx3ZS5SPVc4KHdlLnIpLFgmJih3ZS5oPWhtKHdlLlIpKSksd2UpOnt0OiIifX12YXIga2E9LzwoPzpcdys6KT9z''@;'; + put 'put ''c3QoW14+XSopPihbXHNcU10qKTxcLyg/Olx3KzopP3NzdD4vLHkzPS88KD86XHcrOik/KD86c2l8c3N0SXRlbSk+L2csUWY9LzxcLyg/Olx3KzopPyg/OnNpfHNzdEl0ZW0pPi87cHQuU1NUPSJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9y''@;'; + put 'put ''ZWxhdGlvbnNoaXBzL3NoYXJlZFN0cmluZ3MiO3ZhciBkbT0vXlxzfFxzJHxbXHRcblxyXS87ZnVuY3Rpb24gcU0oSCxyZSl7aWYoIXJlLmJvb2tTU1QpcmV0dXJuIiI7dmFyIFg9W2NuXTtYW1gubGVuZ3RoXT1faSgic3N0IixudWxsLHt4bWxuczpYMC5tYWluWzBdLGNvdW50OkguQ291bnQs''@;'; + put 'put ''dW5pcXVlQ291bnQ6SC5VbmlxdWV9KTtmb3IodmFyIHdlPTA7d2UhPUgubGVuZ3RoOysrd2UpaWYobnVsbCE9SFt3ZV0pe3ZhciB4ZT1IW3dlXSxGZT0iPHNpPiI7eGUucj9GZSs9eGUucjooRmUrPSI8dCIseGUudHx8KHhlLnQ9IiIpLHhlLnQubWF0Y2goZG0pJiYoRmUrPScgeG1sOnNwYWNl''@;'; + put 'put ''PSJwcmVzZXJ2ZSInKSxGZSs9Ij4iK1JyKHhlLnQpKyI8L3Q+IiksWFtYLmxlbmd0aF09RmUrPSI8L3NpPiJ9cmV0dXJuIFgubGVuZ3RoPjImJihYW1gubGVuZ3RoXT0iPC9zc3Q+IixYWzFdPVhbMV0ucmVwbGFjZSgiLz4iLCI+IikpLFguam9pbigiIil9dmFyIERSPWZ1bmN0aW9uIHpnKEgs''@;'; + put 'put ''cmUsWCl7dmFyIHdlPTEzKzQqSC50Lmxlbmd0aCx4ZT1ILlImJkguUi5sZW5ndGh8fEgucjtILnImJihILlI9VzgoSC5yKSkseGUmJih3ZSs9NCs0KkguUi5sZW5ndGgpO3ZhciBGZT0hMTtpZihudWxsPT1YJiYoRmU9ITAsWD1SaSh3ZSkpLFgud3JpdGVfc2hpZnQoMSx4ZT8xOjApLGx1KEgu''@;'; + put 'put ''dCxYKSx4ZSl7WC53cml0ZV9zaGlmdCg0LEguUi5sZW5ndGgpO2Zvcih2YXIgWmU9MCxqZT0wO2plPEguUi5sZW5ndGg7KytqZSl7dmFyIFllPUguUltqZV07WC53cml0ZV9zaGlmdCgyLFplKSxaZSs9KFllLnZ8fCIiKS5sZW5ndGg7dmFyIE10PVllLnM/WTEocmUuY2VsbFhmcyxyZS5jZWxs''@;'; + put 'put ''U3R5bGVYZnMse3Q6Im4iLHY6MCxzOlllLnN9LHJlKTowO1gud3JpdGVfc2hpZnQoMixyZS5jZWxsWGZzW010XS5mb250SWQpfX1yZXR1cm4gRmU/WC5zbGljZSgwLFgubCk6WH07ZnVuY3Rpb24gTFIoSCxyZSl7dmFyIFg9SjIoKTtDMChYLCJCcnRCZWdpblNzdCIsZnVuY3Rpb24gdEUoSCxy''@;'; + put 'put ''ZSl7cmV0dXJuIHJlfHwocmU9UmkoOCkpLHJlLndyaXRlX3NoaWZ0KDQsSC5Db3VudCkscmUud3JpdGVfc2hpZnQoNCxILlVuaXF1ZSkscmV9KEgpKTtmb3IodmFyIHdlPTA7d2U8SC5sZW5ndGg7Kyt3ZSlDMChYLCJCcnRTU1RJdGVtIixEUihIW3dlXSxyZSkpO3JldHVybiBDMChYLCJCcnRF''@;'; + put 'put ''bmRTc3QiKSxYLmVuZCgpfWZ1bmN0aW9uIG5FKEgpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgY3B0YWJsZSlyZXR1cm4gY3B0YWJsZS51dGlscy5lbmNvZGUoWixIKTtmb3IodmFyIHJlPVtdLFg9SC5zcGxpdCgiIiksd2U9MDt3ZTxYLmxlbmd0aDsrK3dlKXJlW3dlXT1YW3dlXS5jaGFyQ29k''@;'; + put 'put ''ZUF0KDApO3JldHVybiByZX1mdW5jdGlvbiB2ZihILHJlKXt2YXIgWD17fTtyZXR1cm4gWC5NYWpvcj1ILnJlYWRfc2hpZnQoMiksWC5NaW5vcj1ILnJlYWRfc2hpZnQoMikscmU+PTQmJihILmwrPXJlLTQpLFh9ZnVuY3Rpb24gdzMoSCl7Zm9yKHZhciByZT1ILnJlYWRfc2hpZnQoNCksWD1I''@;'; + put 'put ''LmwrcmUtNCx3ZT17fSx4ZT1ILnJlYWRfc2hpZnQoNCksRmU9W107eGUtLSA+MDspRmUucHVzaCh7dDpILnJlYWRfc2hpZnQoNCksdjpILnJlYWRfc2hpZnQoMCwibHBwNCIpfSk7aWYod2UubmFtZT1ILnJlYWRfc2hpZnQoMCwibHBwNCIpLHdlLmNvbXBzPUZlLEgubCE9WCl0aHJvdyBuZXcg''@;'; + put 'put ''RXJyb3IoIkJhZCBEYXRhU3BhY2VNYXBFbnRyeTogIitILmwrIiAhPSAiK1gpO3JldHVybiB3ZX1mdW5jdGlvbiBPUihILHJlKXt2YXIgWD1ILmwrcmUsd2U9e307d2UuRmxhZ3M9NjMmSC5yZWFkX3NoaWZ0KDQpLEgubCs9NCx3ZS5BbGdJRD1ILnJlYWRfc2hpZnQoNCk7dmFyIHhlPSExO3N3''@;'; + put 'put ''aXRjaCh3ZS5BbGdJRCl7Y2FzZSAyNjEyNjpjYXNlIDI2MTI3OmNhc2UgMjYxMjg6eGU9MzY9PXdlLkZsYWdzO2JyZWFrO2Nhc2UgMjY2MjU6eGU9ND09KDUyJndlLkZsYWdzKTticmVhaztjYXNlIDA6eGU9MTY9PXdlLkZsYWdzfHw0PT13ZS5GbGFnc3x8MzY9PXdlLkZsYWdzO2JyZWFrO2Rl''@;'; + put 'put ''ZmF1bHQ6dGhyb3ciVW5yZWNvZ25pemVkIGVuY3J5cHRpb24gYWxnb3JpdGhtOiAiK3dlLkFsZ0lEfWlmKCF4ZSl0aHJvdyBuZXcgRXJyb3IoIkVuY3J5cHRpb24gRmxhZ3MvQWxnSUQgbWlzbWF0Y2giKTtyZXR1cm4gd2UuQWxnSURIYXNoPUgucmVhZF9zaGlmdCg0KSx3ZS5LZXlTaXplPUgu''@;'; + put 'put ''cmVhZF9zaGlmdCg0KSx3ZS5Qcm92aWRlclR5cGU9SC5yZWFkX3NoaWZ0KDQpLEgubCs9OCx3ZS5DU1BOYW1lPUgucmVhZF9zaGlmdChYLUgubD4+MSwidXRmMTZsZSIpLEgubD1YLHdlfWZ1bmN0aW9uIFJSKEgscmUpe3ZhciBYPXt9LHdlPUgubCtyZTtyZXR1cm4gSC5sKz00LFguU2FsdD1I''@;'; + put 'put ''LnNsaWNlKEgubCxILmwrMTYpLEgubCs9MTYsWC5WZXJpZmllcj1ILnNsaWNlKEgubCxILmwrMTYpLEgubCs9MTYsSC5yZWFkX3NoaWZ0KDQpLFguVmVyaWZpZXJIYXNoPUguc2xpY2UoSC5sLHdlKSxILmw9d2UsWH1mdW5jdGlvbiB5YihIKXtpZigzNiE9KDYzJkgucmVhZF9zaGlmdCg0KSkp''@;'; + put 'put ''dGhyb3cgbmV3IEVycm9yKCJFbmNyeXB0aW9uSW5mbyBtaXNtYXRjaCIpO3ZhciBYPUgucmVhZF9zaGlmdCg0KTtyZXR1cm57dDoiU3RkIixoOk9SKEgsWCksdjpSUihILEgubGVuZ3RoLUgubCl9fWZ1bmN0aW9uIHdiKCl7dGhyb3cgbmV3IEVycm9yKCJGaWxlIGlzIHBhc3N3b3JkLXByb3Rl''@;'; + put 'put ''Y3RlZDogRUNNQS0zNzYgRXh0ZW5zaWJsZSIpfWZ1bmN0aW9uIGJiKEgpe3ZhciByZT1bInNhbHRTaXplIiwiYmxvY2tTaXplIiwia2V5Qml0cyIsImhhc2hTaXplIiwiY2lwaGVyQWxnb3JpdGhtIiwiY2lwaGVyQ2hhaW5pbmciLCJoYXNoQWxnb3JpdGhtIiwic2FsdFZhbHVlIl07SC5sKz00''@;'; + put 'put ''O3ZhciBYPUgucmVhZF9zaGlmdChILmxlbmd0aC1ILmwsInV0ZjgiKSx3ZT17fTtyZXR1cm4gWC5yZXBsYWNlKEd0LGZ1bmN0aW9uKEZlKXt2YXIgWmU9ZW4oRmUpO3N3aXRjaChJbihaZVswXSkpe2Nhc2UiPD94bWwiOmNhc2UiPGVuY3J5cHRpb24iOmNhc2UiPC9lbmNyeXB0aW9uPiI6Y2Fz''@;'; + put 'put ''ZSI8L2tleUVuY3J5cHRvcnM+IjpjYXNlIjwva2V5RW5jcnlwdG9yPiI6YnJlYWs7Y2FzZSI8a2V5RGF0YSI6cmUuZm9yRWFjaChmdW5jdGlvbihqZSl7d2VbamVdPVplW2plXX0pO2JyZWFrO2Nhc2UiPGRhdGFJbnRlZ3JpdHkiOndlLmVuY3J5cHRlZEhtYWNLZXk9WmUuZW5jcnlwdGVkSG1h''@;'; + put 'put ''Y0tleSx3ZS5lbmNyeXB0ZWRIbWFjVmFsdWU9WmUuZW5jcnlwdGVkSG1hY1ZhbHVlO2JyZWFrO2Nhc2UiPGtleUVuY3J5cHRvcnM+IjpjYXNlIjxrZXlFbmNyeXB0b3JzIjp3ZS5lbmNzPVtdO2JyZWFrO2Nhc2UiPGtleUVuY3J5cHRvciI6d2UudXJpPVplLnVyaTticmVhaztjYXNlIjxlbmNy''@;'; + put 'put ''eXB0ZWRLZXkiOndlLmVuY3MucHVzaChaZSk7YnJlYWs7ZGVmYXVsdDp0aHJvdyBaZVswXX19KSx3ZX1mdW5jdGlvbiBTOShIKXt2YXIgWCxGZSxyZT0wLHdlPW5FKEgpLHhlPXdlLmxlbmd0aCsxO2ZvcigoWD1oZSh4ZSkpWzBdPXdlLmxlbmd0aCxGZT0xO0ZlIT14ZTsrK0ZlKVhbRmVdPXdl''@;'; + put 'put ''W0ZlLTFdO2ZvcihGZT14ZS0xO0ZlPj0wOy0tRmUpcmU9KCgwPT0oMTYzODQmcmUpPzA6MSl8cmU8PDEmMzI3NjcpXlhbRmVdO3JldHVybiA1MjgxMV5yZX12YXIgTTk9ZnVuY3Rpb24oKXt2YXIgSD1bMTg3LDI1NSwyNTUsMTg2LDI1NSwyNTUsMTg1LDEyOCwwLDE5MCwxNSwwLDE5MSwxNSww''@;'; + put 'put ''XSxyZT1bNTc4NDAsNzQzOSw1MjM4MCwzMzk4NCw0MzY0LDM2MDAsNjE5MDIsMTI2MDYsNjI1OCw1NzY1Nyw1NDI4NywzNDA0MSwxMDI1Miw0MzM3MCwyMDE2M10sWD1bNDQ3OTYsMTk5MjksMzk4NTgsMTAwNTMsMjAxMDYsNDAyMTIsMTA3NjEsMzE1ODUsNjMxNzAsNjQ5MzMsNjAyNjcsNTA5''@;'; + put 'put ''MzUsNDAzOTksMTExOTksMTc3NjMsMzU1MjYsMTQ1MywyOTA2LDU4MTIsMTE2MjQsMjMyNDgsODg1LDE3NzAsMzU0MCw3MDgwLDE0MTYwLDI4MzIwLDU2NjQwLDU1MzY5LDQxMTM5LDIwODA3LDQxNjE0LDIxODIxLDQzNjQyLDE3NjIxLDI4NDg1LDU2OTcwLDQ0MzQxLDE5MDE5LDM4MDM4LDE0''@;'; + put 'put ''NjA1LDI5MjEwLDYwMTk1LDUwNzkxLDQwMTc1LDEwNzUxLDIxNTAyLDQzMDA0LDI0NTM3LDE4Mzg3LDM2Nzc0LDM5NDksNzg5OCwxNTc5NiwzMTU5Miw2MzE4NCw0NzIwMSwyNDgwMyw0OTYwNiwzNzgwNSwxNDIwMywyODQwNiw1NjgxMiwxNzgyNCwzNTY0OCwxNjk3LDMzOTQsNjc4OCwxMzU3''@;'; + put 'put ''NiwyNzE1Miw0MzYwMSwxNzUzOSwzNTA3OCw1NTcsMTExNCwyMjI4LDQ0NTYsMzAzODgsNjA3NzYsNTE5NTMsMzQyNDMsNzA3OSwxNDE1OCwyODMxNiwxNDEyOCwyODI1Niw1NjUxMiw0MzQyNSwxNzI1MSwzNDUwMiw3NTk3LDEzMTA1LDI2MjEwLDUyNDIwLDM1MjQxLDg4MywxNzY2LDM1MzIs''@;'; + put 'put ''NDEyOSw4MjU4LDE2NTE2LDMzMDMyLDQ2NTcsOTMxNCwxODYyOF0seGU9ZnVuY3Rpb24oWmUsamUpe3JldHVybiBmdW5jdGlvbihaZSl7cmV0dXJuIDI1NSYoWmU+PjF8WmU8PDcpfShaZV5qZSl9O3JldHVybiBmdW5jdGlvbihqZSl7Zm9yKHZhciBZZT1uRShqZSksTXQ9ZnVuY3Rpb24oWmUp''@;'; + put 'put ''e2Zvcih2YXIgamU9cmVbWmUubGVuZ3RoLTFdLFllPTEwNCxNdD1aZS5sZW5ndGgtMTtNdD49MDstLU10KWZvcih2YXIgeHQ9WmVbTXRdLFJ0PTA7NyE9UnQ7KytSdCk2NCZ4dCYmKGplXj1YW1llXSkseHQqPTIsLS1ZZTtyZXR1cm4gamV9KFllKSx4dD1ZZS5sZW5ndGgsUnQ9aGUoMTYpLFV0''@;'; + put 'put ''PTA7MTYhPVV0OysrVXQpUnRbVXRdPTA7dmFyIER0O2ZvcigxPT0oMSZ4dCkmJihSdFt4dF09eGUoSFswXSxNdD4+OCksUnRbLS14dF09eGUoWWVbWWUubGVuZ3RoLTFdLDI1NSZNdCkpO3h0PjA7KVJ0Wy0teHRdPXhlKFllW3h0XSxNdD4+OCksUnRbLS14dF09eGUoWWVbeHRdLDI1NSZNdCk7''@;'; + put 'put ''Zm9yKHh0PTE1LER0PTE1LVllLmxlbmd0aDtEdD4wOylSdFt4dF09eGUoSFtEdF0sTXQ+PjgpLC0tRHQsUnRbLS14dF09eGUoWWVbeHRdLDI1NSZNdCksLS14dCwtLUR0O3JldHVybiBSdH19KCk7dmFyIEU5PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gSCh4ZSxGZSl7c3dpdGNoKEZlLnR5cGUpe2Nh''@;'; + put 'put ''c2UiYmFzZTY0IjpyZXR1cm4gcmUoU2UuZGVjb2RlKHhlKSxGZSk7Y2FzZSJiaW5hcnkiOnJldHVybiByZSh4ZSxGZSk7Y2FzZSJidWZmZXIiOnJldHVybiByZSh4ZS50b1N0cmluZygiYmluYXJ5IiksRmUpO2Nhc2UiYXJyYXkiOnJldHVybiByZSh5bih4ZSksRmUpfXRocm93IG5ldyBFcnJv''@;'; + put 'put ''cigiVW5yZWNvZ25pemVkIHR5cGUgIitGZS50eXBlKX1mdW5jdGlvbiByZSh4ZSxGZSl7dmFyIGplPShGZXx8e30pLmRlbnNlP1tdOnt9O2lmKCF4ZS5tYXRjaCgvXFx0cm93ZC8pKXRocm93IG5ldyBFcnJvcigiUlRGIG1pc3NpbmcgdGFibGUiKTtyZXR1cm4gamVbIiFyZWYiXT1mYSh7czp7''@;'; + put 'put ''YzowLHI6MH0sZTp7YzowLHI6MH19KSxqZX1yZXR1cm57dG9fd29ya2Jvb2s6ZnVuY3Rpb24gWCh4ZSxGZSl7cmV0dXJuIHcxKEgoeGUsRmUpLEZlKX0sdG9fc2hlZXQ6SCxmcm9tX3NoZWV0OmZ1bmN0aW9uIHdlKHhlKXtmb3IodmFyIGplLEZlPVsie1xccnRmMVxcYW5zaSJdLFplPUZvKHhl''@;'; + put 'put ''WyIhcmVmIl0pLFllPUFycmF5LmlzQXJyYXkoeGUpLE10PVplLnMucjtNdDw9WmUuZS5yOysrTXQpe0ZlLnB1c2goIlxcdHJvd2RcXHRyYXV0b2ZpdDEiKTtmb3IodmFyIHh0PVplLnMuYzt4dDw9WmUuZS5jOysreHQpRmUucHVzaCgiXFxjZWxseCIrKHh0KzEpKTtmb3IoRmUucHVzaCgiXFxw''@;'; + put 'put ''YXJkXFxpbnRibCIpLHh0PVplLnMuYzt4dDw9WmUuZS5jOysreHQpe3ZhciBSdD1ZMCh7cjpNdCxjOnh0fSk7KGplPVllPyh4ZVtNdF18fFtdKVt4dF06eGVbUnRdKSYmKG51bGwhPWplLnZ8fGplLmYmJiFqZS5GKSYmKEZlLnB1c2goIiAiKyhqZS53fHwoeTEoamUpLGplLncpKSksRmUucHVz''@;'; + put 'put ''aCgiXFxjZWxsIikpfUZlLnB1c2goIlxccGFyZFxcaW50YmxcXHJvdyIpfXJldHVybiBGZS5qb2luKCIiKSsifSJ9fX0oKTtmdW5jdGlvbiBZOChIKXt2YXIgcmU9SC5zbGljZSgiIyI9PT1IWzBdPzE6MCkuc2xpY2UoMCw2KTtyZXR1cm5bcGFyc2VJbnQocmUuc2xpY2UoMCwyKSwxNikscGFy''@;'; + put 'put ''c2VJbnQocmUuc2xpY2UoMiw0KSwxNikscGFyc2VJbnQocmUuc2xpY2UoNCw2KSwxNildfWZ1bmN0aW9uIGIzKEgpe2Zvcih2YXIgcmU9MCxYPTE7MyE9cmU7KytyZSlYPTI1NipYKyhIW3JlXT4yNTU/MjU1OkhbcmVdPDA/MDpIW3JlXSk7cmV0dXJuIFgudG9TdHJpbmcoMTYpLnRvVXBwZXJD''@;'; + put 'put ''YXNlKCkuc2xpY2UoMSl9ZnVuY3Rpb24gXzMoSCxyZSl7aWYobnVsbD09SClyZXR1cm4gbnVsbCE9cmU7aWYobnVsbD09cmUpcmV0dXJuITA7aWYoMT09SC5hdXRvJiYxPT1yZS5hdXRvKXJldHVybiExO2lmKCEhSC5hdXRvIT0hIXJlLmF1dG98fG51bGw9PUgudGhlbWUhPShudWxsPT1yZS50''@;'; + put 'put ''aGVtZSkpcmV0dXJuITA7aWYobnVsbCE9SC50aGVtZSlyZXR1cm4gSC50aGVtZSE9cmUudGhlbWV8fEgudGludCE9cmUudGludDtpZihudWxsPT1ILnJnYiYmbnVsbD09cmUucmdiKXJldHVybiExO3ZhciBYPUgucmdiOyJudW1iZXIiPT10eXBlb2YgWCYmKFg9WC50b1N0cmluZygxNikpLFg9''@;'; + put 'put ''WC5zbGljZSgtNik7dmFyIHdlPXJlLnJnYjtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIHdlJiYod2U9d2UudG9TdHJpbmcoMTYpKSx3ZT13ZS5zbGljZSgtNiksWC50b0xvd2VyQ2FzZSgpIT13ZS50b0xvd2VyQ2FzZSgpfWZ1bmN0aW9uIHg5KEgscmUpe3JldHVybiBudWxsPT1IP251bGwhPXJl''@;'; + put 'put ''Om51bGw9PXJlP251bGwhPUg6SC5zdHlsZSE9cmUuc3R5bGV8fF8zKEguY29sb3IscmUuY29sb3IpfWZ1bmN0aW9uIFE4KEgscmUpe2lmKDA9PT1yZSlyZXR1cm4gSDt2YXIgWD1mdW5jdGlvbiBhMihIKXt2YXIgcmU9SFswXS8yNTUsWD1IWzFdLzI1NSx3ZT1IWzJdLzI1NSx4ZT1NYXRoLm1h''@;'; + put 'put ''eChyZSxYLHdlKSxGZT1NYXRoLm1pbihyZSxYLHdlKSxaZT14ZS1GZTtpZigwPT09WmUpcmV0dXJuWzAsMCxyZV07dmFyIFllLGplPTAsTXQ9eGUrRmU7c3dpdGNoKFllPVplLyhNdD4xPzItTXQ6TXQpLHhlKXtjYXNlIHJlOmplPSgoWC13ZSkvWmUrNiklNjticmVhaztjYXNlIFg6amU9KHdl''@;'; + put 'put ''LXJlKS9aZSsyO2JyZWFrO2Nhc2Ugd2U6amU9KHJlLVgpL1plKzR9cmV0dXJuW2plLzYsWWUsTXQvMl19KFk4KEgpKTtyZXR1cm4gWFsyXT1yZTwwP1hbMl0qKDErcmUpOjEtKDEtWFsyXSkqKDEtcmUpLGIzKGZ1bmN0aW9uIFU4KEgpe3ZhciBZZSxYPUhbMV0sd2U9SFsyXSx4ZT0yKlgqKHdl''@;'; + put 'put ''PC41P3dlOjEtd2UpLEZlPXdlLXhlLzIsWmU9W0ZlLEZlLEZlXSxqZT02KkhbMF07aWYoMCE9PVgpc3dpdGNoKDB8amUpe2Nhc2UgMDpjYXNlIDY6WWU9eGUqamUsWmVbMF0rPXhlLFplWzFdKz1ZZTticmVhaztjYXNlIDE6WmVbMF0rPVllPXhlKigyLWplKSxaZVsxXSs9eGU7YnJlYWs7Y2Fz''@;'; + put 'put ''ZSAyOlllPXhlKihqZS0yKSxaZVsxXSs9eGUsWmVbMl0rPVllO2JyZWFrO2Nhc2UgMzpaZVsxXSs9WWU9eGUqKDQtamUpLFplWzJdKz14ZTticmVhaztjYXNlIDQ6WWU9eGUqKGplLTQpLFplWzJdKz14ZSxaZVswXSs9WWU7YnJlYWs7Y2FzZSA1OlplWzJdKz1ZZT14ZSooNi1qZSksWmVbMF0r''@;'; + put 'put ''PXhlfWZvcih2YXIgTXQ9MDszIT1NdDsrK010KVplW010XT1NYXRoLnJvdW5kKDI1NSpaZVtNdF0pO3JldHVybiBaZX0oWCkpfXZhciBLMj02O2Z1bmN0aW9uIG1tKEgpe3JldHVybiBNYXRoLmZsb29yKChIK01hdGgucm91bmQoMTI4L0syKS8yNTYpKksyKX1mdW5jdGlvbiBUOShIKXtyZXR1''@;'; + put 'put ''cm4gTWF0aC5mbG9vcigoSC01KS9LMioxMDArLjUpLzEwMH1mdW5jdGlvbiBfYihIKXtyZXR1cm4gTWF0aC5yb3VuZCgoSCpLMis1KS9LMioyNTYpLzI1Nn1mdW5jdGlvbiB5YyhIKXtILmJlc3RGaXQmJmRlbGV0ZSBILmJlc3RGaXQsSC53aWR0aD8oSC53cHg9bW0oSC53aWR0aCksSC53Y2g9''@;'; + put 'put ''VDkoSC53cHgpLEguTURXPUsyKTpILndweD8oSC53Y2g9VDkoSC53cHgpLEgud2lkdGg9X2IoSC53Y2gpLEguTURXPUsyKToibnVtYmVyIj09dHlwZW9mIEgud2NoJiYoSC53aWR0aD1fYihILndjaCksSC53cHg9bW0oSC53aWR0aCksSC5NRFc9SzIpLEguY3VzdG9tV2lkdGgmJmRlbGV0ZSBI''@;'; + put 'put ''LmN1c3RvbVdpZHRofXZhciBSND05NjtmdW5jdGlvbiBUaChIKXtyZXR1cm4gNzIqSC9SNH1mdW5jdGlvbiBBZihIKXtyZXR1cm4gSCpSNC83Mn1mdW5jdGlvbiBDMyhIKXtSND1IPXtvc3g6NzIsd2luOjk2LHdpbjEwMDo5Nix3aW4xMjU6MTIwLHdpbjE1MDoxNDR9W0hdfHxIfHw5NixDYj1m''@;'; + put 'put ''NltIXX1mdW5jdGlvbiBKOChIKXtILmhweD9ILmhwdD1UaChILmhweCk6SC5ocHQmJihILmhweD1BZihILmhwdCkpfXZhciBWUj17Tm9uZToibm9uZSIsU29saWQ6InNvbGlkIixHcmF5NTA6Im1lZGl1bUdyYXkiLEdyYXk3NToiZGFya0dyYXkiLEdyYXkyNToibGlnaHRHcmF5IixIb3J6U3Ry''@;'; + put 'put ''aXBlOiJkYXJrSG9yaXpvbnRhbCIsVmVydFN0cmlwZToiZGFya1ZlcnRpY2FsIixSZXZlcnNlRGlhZ1N0cmlwZToiZGFya0Rvd24iLERpYWdTdHJpcGU6ImRhcmtVcCIsRGlhZ0Nyb3NzOiJkYXJrR3JpZCIsVGhpY2tEaWFnQ3Jvc3M6ImRhcmtUcmVsbGlzIixUaGluSG9yelN0cmlwZToibGln''@;'; + put 'put ''aHRIb3Jpem9udGFsIixUaGluVmVydFN0cmlwZToibGlnaHRWZXJ0aWNhbCIsVGhpblJldmVyc2VEaWFnU3RyaXBlOiJsaWdodERvd24iLFRoaW5Ib3J6Q3Jvc3M6ImxpZ2h0R3JpZCJ9LGNFPXR0KFZSKSxJOT17b3JhbmdlOjE2NzUzOTIwLGJsYWNrOjAsbmF2eToxMjgsYmx1ZToyNTUsZ3Jl''@;'; + put 'put ''ZW46MzI3NjgsdGVhbDozMjg5NixsaW1lOjY1MjgwLGFxdWE6NjU1MzUsc2lsdmVyOjEyNjMyMjU2LG1hcm9vbjo4Mzg4NjA4LHB1cnBsZTo4Mzg4NzM2LG9saXZlOjg0MjEzNzYsZ3JheTo4NDIxNTA0LHJlZDoxNjcxMTY4MCxmdWNoc2lhOjE2NzExOTM1LHllbGxvdzoxNjc3Njk2MCx3aGl0''@;'; + put 'put ''ZToxNjc3NzIxNX07ZnVuY3Rpb24gWDgoSCxyZSl7aWYoSC5yZXBsYWNlKCIjIiwiIikubWF0Y2goL15bMC05YS1mQS1GXXs2fSQvKSlyZXR1cm4gcGFyc2VJbnQoSC5yZXBsYWNlKCIjIiwiIiksMTYpO2lmKEk5W0hdKXJldHVybiBJOVtIXTt2YXIgWD1ILm1hdGNoKC9yZ2JcKFxzKihcZCop''@;'; + put 'put ''XHMqLFxzKihcZCopXHMqLFxzKihcZCopXHMqXCkvKTtpZihYKXJldHVybigrWFsxXTw8MTYpKygrWFsyXTw8OCkrICtYWzNdO2lmKFg9SC5tYXRjaCgvcmdiYVwoXHMqKFxkKilccyosXHMqKFxkKilccyosXHMqKFxkKilccyooXGQqKS8pKXJldHVybiAwIT0oWFs0XSYmWFs0XS5sZW5ndGg+''@;'; + put 'put ''MCYmK1hbNF18fDApfHwrWFsxXT4wfHwrWFsyXT4wfHwrWFszXT4wPygrWFsxXTw8MTYpKygrWFsyXTw8OCkrICtYWzNdOnJlPy0xOjE2Nzc3MjE1O3Rocm93IG5ldyBFcnJvcigiVW5rbm93biBIVE1MIGNvbG9yICIrSCl9dmFyIGY2PXt9O2Z1bmN0aW9uIGszKEgpe0g9SHx8OTY7dmFyIHJl''@;'; + put 'put ''PXtDYWxpYnJpOltdLEFyaWFsOltdLCJTcGFya2Fzc2UgUmciOltdLFx1NWI4Ylx1NGY1MzpbXSxcdTZlMzhcdTMwYjRcdTMwYjdcdTMwYzNcdTMwYWY6W10sIkNlbnR1cnkgR290aGljIjpbXX07cmV0dXJuIHJlLkNhbGlicmlbMTFdPTcscmUuQ2FsaWJyaVsxMl09ezcyOjYsOTY6OCwxMjA6''@;'; + put 'put ''MTAsMTQ0OjEyfVtIXXx8OCxyZS5DYWxpYnJpWzEzXT0xMCxyZS5DYWxpYnJpWzE0XT0xMSxyZS5DYWxpYnJpWzE2XT0xMixyZS5DYWxpYnJpWzE4XT0xNCxyZS5DYWxpYnJpWzIwXT0xNixyZS5cdTViOGJcdTRmNTNbMTFdPTgscmUuXHU2ZTM4XHUzMGI0XHUzMGI3XHUzMGMzXHUzMGFmWzEx''@;'; + put 'put ''XT04LHJlWyJTcGFya2Fzc2UgUmciXVsxMV09NyxyZS5BcmlhbFsxMF09NyxyZVsiQ2VudHVyeSBHb3RoaWMiXVsxMl09OSxyZX1mNls3Ml09azMoNzIpLGY2Wzk2XT1rMyg5NiksZjZbMTIwXT1rMygxMjApLGY2WzE0NF09azMoMTQ0KTt2YXIgQ2I9ZjZbOTZdO2Z1bmN0aW9uIHZtKEgpe3Jl''@;'; + put 'put ''dHVybihDYltILm5hbWV8fEguRm9udE5hbWVdfHxbXSlbSC5zenx8SC5TaXplXX1mdW5jdGlvbiBTMyhIKXtpZihIKXt2YXIgcmU9dm0oSCk7aWYocmUpcmV0dXJuIEsyPXJlfXJldHVybiBLMj02fWZ1bmN0aW9uIGg2KEgscmUsWCl7cmV0dXJuIGIzKGZ1bmN0aW9uIGpSKEgscmUsWCl7cmV0''@;'; + put 'put ''dXJuW01hdGgucm91bmQocmVbMF0qWCtIWzBdKigxLVgpKSxNYXRoLnJvdW5kKHJlWzFdKlgrSFsxXSooMS1YKSksTWF0aC5yb3VuZChyZVsyXSpYK0hbMl0qKDEtWCkpXX0oWTgoIm51bWJlciI9PXR5cGVvZiBILnJnYj8oIjAwMDAwIitILnRvU3RyaW5nKDE2KSkuc2xpY2UoLTYpOkgucmdi''@;'; + put 'put ''KSxZOCgibnVtYmVyIj09dHlwZW9mIHJlLnJnYj8oIjAwMDAwIityZS50b1N0cmluZygxNikpLnNsaWNlKC02KTpyZS5yZ2IpLFgpKX1mdW5jdGlvbiBNMyhILHJlLFgpe2lmKFgpc3dpdGNoKCtIKXtjYXNlIDY0Okg9NjU7YnJlYWs7Y2FzZSA2NTpIPTY0fXZhciB3ZT1yZSYmcmVbK0hdfHx1''@;'; + put 'put ''dVsrSF18fERNWytILTIwMF07aWYoODE9PStIJiYod2U9dXVbMV0pLHdlfHwod2U9dXVbMV0pLCF3ZSl0aHJvdyBuZXcgRXJyb3IoImJhZCBJQ1YgaW5kZXggIitIKTtyZXR1cm4gYjMod2UpfWZ1bmN0aW9uIEUzKEgscmUsWCl7dmFyIHdlPXt9O3JldHVybiBudWxsIT1ILmluZGV4ZWQmJih3''@;'; + put 'put ''ZS5pbmRleD1wYXJzZUludChILmluZGV4ZWQsMTApLHdlLnJnYj1NMyh3ZS5pbmRleCxyZS5JbmRleGVkKSksbnVsbCE9SC50aGVtZSYmKHdlLnRoZW1lPXBhcnNlSW50KEgudGhlbWUsMTApKSxudWxsIT1ILnRpbnQmJih3ZS50aW50PXBhcnNlRmxvYXQoSC50aW50KSksbnVsbCE9SC5yZ2Im''@;'; + put 'put ''Jih3ZS5yZ2I9SC5yZ2Iuc2xpY2UoLTYpKSxudWxsIT13ZS50aGVtZSYmIXdlLnJnYiYmWC50aGVtZUVsZW1lbnRzJiYod2UucmdiPVE4KFgudGhlbWVFbGVtZW50cy5jbHJTY2hlbWVbd2UudGhlbWVdLnJnYix3ZS50aW50fHwwKSx3ZS5yYXdfcmdiPVgudGhlbWVFbGVtZW50cy5jbHJTY2hl''@;'; + put 'put ''bWVbd2UudGhlbWVdLnJnYiksd2V9ZnVuY3Rpb24ga2IoSCxyZSxYLHdlKXtyZS5Cb3JkZXJzPVtdO3ZhciB4ZT17fSxGZT17fSxaZT0hMTsoSFswXS5tYXRjaChHdCl8fFtdKS5mb3JFYWNoKGZ1bmN0aW9uKGplKXt2YXIgWWU9ZW4oamUpO3N3aXRjaChJbihZZVswXSkpe2Nhc2UiPGJvcmRl''@;'; + put 'put ''cnMiOmNhc2UiPGJvcmRlcnM+IjpjYXNlIjwvYm9yZGVycz4iOmNhc2UiPC9ib3JkZXI+IjpjYXNlIjxsZWZ0Lz4iOmNhc2UiPC9sZWZ0PiI6Y2FzZSI8cmlnaHQvPiI6Y2FzZSI8L3JpZ2h0PiI6Y2FzZSI8dG9wLz4iOmNhc2UiPC90b3A+IjpjYXNlIjxib3R0b20vPiI6Y2FzZSI8L2JvdHRv''@;'; + put 'put ''bT4iOmNhc2UiPGRpYWdvbmFsIjpjYXNlIjxkaWFnb25hbD4iOmNhc2UiPGRpYWdvbmFsLz4iOmNhc2UiPGhvcml6b250YWwiOmNhc2UiPGhvcml6b250YWw+IjpjYXNlIjxob3Jpem9udGFsLz4iOmNhc2UiPHZlcnRpY2FsIjpjYXNlIjx2ZXJ0aWNhbD4iOmNhc2UiPHZlcnRpY2FsLz4iOmNh''@;'; + put 'put ''c2UiPHN0YXJ0IjpjYXNlIjxzdGFydD4iOmNhc2UiPHN0YXJ0Lz4iOmNhc2UiPC9zdGFydD4iOmNhc2UiPGVuZCI6Y2FzZSI8ZW5kPiI6Y2FzZSI8ZW5kLz4iOmNhc2UiPC9lbmQ+IjpjYXNlIjxjb2xvci8+IjpjYXNlIjwvY29sb3I+IjpjYXNlIjxleHRMc3QiOmNhc2UiPGV4dExzdD4iOmNh''@;'; + put 'put ''c2UiPC9leHRMc3Q+IjpicmVhaztjYXNlIjxib3JkZXIiOmNhc2UiPGJvcmRlcj4iOmNhc2UiPGJvcmRlci8+Ijp4ZT17fSxZZS5kaWFnb25hbFVwJiYoeGUuZGlhZ29uYWxVcD1EaShZZS5kaWFnb25hbFVwKSksWWUuZGlhZ29uYWxEb3duJiYoeGUuZGlhZ29uYWxEb3duPURpKFllLmRpYWdv''@;'; + put 'put ''bmFsRG93bikpLHJlLkJvcmRlcnMucHVzaCh4ZSk7YnJlYWs7Y2FzZSI8bGVmdCI6Y2FzZSI8bGVmdD4iOkZlPXhlLmxlZnQ9e30sWWUuc3R5bGUmJihGZS5zdHlsZT1ZZS5zdHlsZSk7YnJlYWs7Y2FzZSI8cmlnaHQiOmNhc2UiPHJpZ2h0PiI6RmU9eGUucmlnaHQ9e30sWWUuc3R5bGUmJihG''@;'; + put 'put ''ZS5zdHlsZT1ZZS5zdHlsZSk7YnJlYWs7Y2FzZSI8dG9wIjpjYXNlIjx0b3A+IjpGZT14ZS50b3A9e30sWWUuc3R5bGUmJihGZS5zdHlsZT1ZZS5zdHlsZSk7YnJlYWs7Y2FzZSI8Ym90dG9tIjpjYXNlIjxib3R0b20+IjpGZT14ZS5ib3R0b209e30sWWUuc3R5bGUmJihGZS5zdHlsZT1ZZS5z''@;'; + put 'put ''dHlsZSk7YnJlYWs7Y2FzZSI8L2RpYWdvbmFsPiI6eGUuZGlhZ29uYWw9RmUsRmU9e307YnJlYWs7Y2FzZSI8L2hvcml6b250YWw+Ijp4ZS5ob3Jpem9udGFsPUZlLEZlPXt9O2JyZWFrO2Nhc2UiPC92ZXJ0aWNhbD4iOnhlLnZlcnRpY2FsPUZlLEZlPXt9O2JyZWFrO2Nhc2UiPGNvbG9yIjpj''@;'; + put 'put ''YXNlIjxjb2xvcj4iOkZlLmNvbG9yfHwoRmUuY29sb3I9e30pLFllLmF1dG8mJihGZS5jb2xvci5hdXRvPURpKFllLmF1dG8pKSxudWxsIT1ZZS5yZ2I/RmUuY29sb3IucmdiPVllLnJnYi5zbGljZSgtNik6WWUuaW5kZXhlZD8oRmUuY29sb3IuaW5kZXg9cGFyc2VJbnQoWWUuaW5kZXhlZCwx''@;'; + put 'put ''MCksRmUuY29sb3IucmdiPU0zKEZlLmNvbG9yLmluZGV4LHJlLkluZGV4ZWQsITEpKTpZZS50aGVtZSYmKEZlLmNvbG9yLnRoZW1lPXBhcnNlSW50KFllLnRoZW1lLDEwKSxZZS50aW50JiYoRmUuY29sb3IudGludD1wYXJzZUZsb2F0KFllLnRpbnQpKSxZZS50aGVtZSYmWC50aGVtZUVsZW1l''@;'; + put 'put ''bnRzJiZYLnRoZW1lRWxlbWVudHMuY2xyU2NoZW1lJiYoRmUuY29sb3IucmdiPVE4KFgudGhlbWVFbGVtZW50cy5jbHJTY2hlbWVbRmUuY29sb3IudGhlbWVdLnJnYixGZS5jb2xvci50aW50fHwwKSkpLCFZZS5hdXRvJiZudWxsPT1ZZS5yZ2ImJiFZZS5pbmRleGVkJiZkZWxldGUgRmUuY29s''@;'; + put 'put ''b3I7YnJlYWs7Y2FzZSI8ZXh0IjpaZT0hMDticmVhaztjYXNlIjwvZXh0PiI6WmU9ITE7YnJlYWs7ZGVmYXVsdDppZih3ZSYmd2UuV1RGJiYhWmUpdGhyb3cgbmV3IEVycm9yKCJ1bnJlY29nbml6ZWQgIitZZVswXSsiIGluIGJvcmRlcnMiKX19KX1mdW5jdGlvbiBTZChILHJlKXt2YXIgWD1b''@;'; + put 'put ''IjwiK3JlXTtyZXR1cm4gSCYmSC5zdHlsZT8oWC5wdXNoKCcgc3R5bGU9IicrSC5zdHlsZSsnIicpLEguY29sb3I/KFgucHVzaCgiPiIpLFgucHVzaChYcyhILmNvbG9yLCEwKSksWC5qb2luKCIiKSsiPC8iK3JlKyI+Iik6WC5qb2luKCIiKSsiLz4iKTpYWzBdKyIvPiJ9ZnVuY3Rpb24gZkUo''@;'; + put 'put ''SCxyZSxYLHdlKXtyZS5GaWxscz1bXTt2YXIgeGU9e30sRmU9e30sWmU9ITEsamU9ITE7KEhbMF0ubWF0Y2goR3QpfHxbXSkuZm9yRWFjaChmdW5jdGlvbihZZSl7dmFyIE10PWVuKFllKTtzd2l0Y2goSW4oTXRbMF0pKXtjYXNlIjxmaWxscyI6Y2FzZSI8ZmlsbHM+IjpjYXNlIjwvZmlsbHM+''@;'; + put 'put ''IjpjYXNlIjwvZmlsbD4iOmNhc2UiPC9ncmFkaWVudEZpbGw+IjpjYXNlIjxiZ0NvbG9yLz4iOmNhc2UiPC9iZ0NvbG9yPiI6Y2FzZSI8ZmdDb2xvci8+IjpjYXNlIjwvZmdDb2xvcj4iOmNhc2UiPGNvbG9yLz4iOmNhc2UiPC9jb2xvcj4iOmNhc2UiPHN0b3AvPiI6Y2FzZSI8ZXh0THN0Ijpj''@;'; + put 'put ''YXNlIjxleHRMc3Q+IjpjYXNlIjwvZXh0THN0PiI6YnJlYWs7Y2FzZSI8ZmlsbD4iOmNhc2UiPGZpbGwiOmNhc2UiPGZpbGwvPiI6cmUuRmlsbHMucHVzaCh4ZT17fSk7YnJlYWs7Y2FzZSI8Z3JhZGllbnRGaWxsPiI6eGUuc3RvcHM9W107YnJlYWs7Y2FzZSI8Z3JhZGllbnRGaWxsIjp4ZS5z''@;'; + put 'put ''dG9wcz1bXSxNdC5kZWdyZWUmJih4ZS5hbmdsZT0rTXQuZGVncmVlKTticmVhaztjYXNlIjxwYXR0ZXJuRmlsbCI6Y2FzZSI8cGF0dGVybkZpbGw+IjpNdC5wYXR0ZXJuVHlwZSYmKHhlLnBhdHRlcm5UeXBlPU10LnBhdHRlcm5UeXBlKTticmVhaztjYXNlIjxwYXR0ZXJuRmlsbC8+IjpjYXNl''@;'; + put 'put ''IjwvcGF0dGVybkZpbGw+IjppZihaZSl0aHJvdyBuZXcgRXJyb3IoImJhZCBzdG9wIik7YnJlYWs7Y2FzZSI8Y29sb3IiOmNhc2UiPGJnQ29sb3IiOmNhc2UiPGZnQ29sb3IiOnZhciB4dD1JbihNdFswXSkuc2xpY2UoMSk7ImNvbG9yIiE9eHQmJiF4ZVt4dF0mJih4ZVt4dF09e30pO3ZhciBS''@;'; + put 'put ''dD1aZT9GZTp4ZVt4dF07bnVsbCE9TXQuaW5kZXhlZCYmKFJ0LmluZGV4PXBhcnNlSW50KE10LmluZGV4ZWQsMTApLFJ0LnJnYj1NMyhSdC5pbmRleCxyZS5JbmRleGVkKSksbnVsbCE9TXQudGhlbWUmJihSdC50aGVtZT1wYXJzZUludChNdC50aGVtZSwxMCkpLG51bGwhPU10LnRpbnQmJihS''@;'; + put 'put ''dC50aW50PXBhcnNlRmxvYXQoTXQudGludCkpLG51bGwhPU10LnJnYiYmKFJ0LnJnYj1NdC5yZ2Iuc2xpY2UoLTYpKSxudWxsIT1NdC5hdXRvJiZkZWxldGUgeGVbeHRdLG51bGwhPVJ0LnRoZW1lJiYhUnQucmdiJiZYLnRoZW1lRWxlbWVudHMmJihSdC5yZ2I9UTgoWC50aGVtZUVsZW1lbnRz''@;'; + put 'put ''LmNsclNjaGVtZVtSdC50aGVtZV0ucmdiLFJ0LnRpbnR8fDApLHdlLldURiYmKFJ0LnJhd19yZ2I9WC50aGVtZUVsZW1lbnRzLmNsclNjaGVtZVtSdC50aGVtZV0ucmdiKSk7YnJlYWs7Y2FzZSI8c3RvcD4iOlplPSEwLEZlPXt9O2JyZWFrO2Nhc2UiPHN0b3AiOlplPSEwLEZlPXt9LG51bGwh''@;'; + put 'put ''PU10LnBvc2l0aW9uJiYoRmUudj1wYXJzZUZsb2F0KE10LnBvc2l0aW9uKSk7YnJlYWs7Y2FzZSI8L3N0b3A+IjpaZT0hMSx4ZS5zdG9wcy5wdXNoKEZlKTticmVhaztjYXNlIjxleHQiOmplPSEwO2JyZWFrO2Nhc2UiPC9leHQ+IjpqZT0hMTticmVhaztkZWZhdWx0OmlmKHdlJiZ3ZS5XVEYm''@;'; + put 'put ''JiFqZSl0aHJvdyBuZXcgRXJyb3IoInVucmVjb2duaXplZCAiK010WzBdKyIgaW4gZmlsbHMiKX19KX1mdW5jdGlvbiBkNihILHJlLFgsd2Upe3JlLkZvbnRzPVtdO3ZhciB4ZT17fSxGZT0hMTsoSFswXS5tYXRjaChHdCl8fFtdKS5mb3JFYWNoKGZ1bmN0aW9uKFplKXt2YXIgamU9ZW4oWmUp''@;'; + put 'put ''O3N3aXRjaChJbihqZVswXSkpe2Nhc2UiPGZvbnRzIjpjYXNlIjxmb250cz4iOmNhc2UiPC9mb250cz4iOmJyZWFrO2Nhc2UiPGZvbnQiOmNhc2UiPGZvbnQ+IjppZigiLz4iIT1aZS5zbGljZSgtMikpYnJlYWs7Y2FzZSI8L2ZvbnQ+IjpjYXNlIjxmb250Lz4iOnJlLkZvbnRzLnB1c2goeGUp''@;'; + put 'put ''LHhlPXt9O2JyZWFrO2Nhc2UiPG5hbWUiOmplLnZhbCYmKHhlLm5hbWU9VzAoamUudmFsKSk7YnJlYWs7Y2FzZSI8bmFtZS8+IjpjYXNlIjwvbmFtZT4iOmJyZWFrO2Nhc2UiPGIiOnhlLmJvbGQ9amUudmFsP0RpKGplLnZhbCk6MTticmVhaztjYXNlIjxiLz4iOmNhc2UiPGI+Ijp4ZS5ib2xk''@;'; + put 'put ''PTE7YnJlYWs7Y2FzZSI8L2I+IjpicmVhaztjYXNlIjxpIjp4ZS5pdGFsaWM9amUudmFsP0RpKGplLnZhbCk6MTticmVhaztjYXNlIjxpLz4iOmNhc2UiPGk+Ijp4ZS5pdGFsaWM9MTticmVhaztjYXNlIjwvaT4iOmJyZWFrO2Nhc2UiPHUiOnN3aXRjaChqZS52YWwpe2Nhc2Uibm9uZSI6eGUu''@;'; + put 'put ''dW5kZXJsaW5lPTA7YnJlYWs7Y2FzZSJzaW5nbGUiOnhlLnVuZGVybGluZT0xO2JyZWFrO2Nhc2UiZG91YmxlIjp4ZS51bmRlcmxpbmU9MjticmVhaztjYXNlInNpbmdsZUFjY291bnRpbmciOnhlLnVuZGVybGluZT0zMzticmVhaztjYXNlImRvdWJsZUFjY291bnRpbmciOnhlLnVuZGVybGlu''@;'; + put 'put ''ZT0zNH1icmVhaztjYXNlIjx1Lz4iOmNhc2UiPHU+Ijp4ZS51bmRlcmxpbmU9MTticmVhaztjYXNlIjwvdT4iOmJyZWFrO2Nhc2UiPHN0cmlrZSI6eGUuc3RyaWtlPWplLnZhbD9EaShqZS52YWwpOjE7YnJlYWs7Y2FzZSI8c3RyaWtlLz4iOnhlLnN0cmlrZT0xO2JyZWFrO2Nhc2UiPG91dGxp''@;'; + put 'put ''bmUiOnhlLm91dGxpbmU9amUudmFsP0RpKGplLnZhbCk6MTticmVhaztjYXNlIjxvdXRsaW5lLz4iOnhlLm91dGxpbmU9MTticmVhaztjYXNlIjxzaGFkb3ciOnhlLnNoYWRvdz1qZS52YWw/RGkoamUudmFsKToxO2JyZWFrO2Nhc2UiPHNoYWRvdy8+Ijp4ZS5zaGFkb3c9MTticmVhaztjYXNl''@;'; + put 'put ''Ijxjb25kZW5zZSI6eGUuY29uZGVuc2U9amUudmFsP0RpKGplLnZhbCk6MTticmVhaztjYXNlIjxjb25kZW5zZS8+Ijp4ZS5jb25kZW5zZT0xO2JyZWFrO2Nhc2UiPGV4dGVuZCI6eGUuZXh0ZW5kPWplLnZhbD9EaShqZS52YWwpOjE7YnJlYWs7Y2FzZSI8ZXh0ZW5kLz4iOnhlLmV4dGVuZD0x''@;'; + put 'put ''O2JyZWFrO2Nhc2UiPHN6IjpqZS52YWwmJih4ZS5zej0ramUudmFsKTticmVhaztjYXNlIjxzei8+IjpjYXNlIjwvc3o+IjpicmVhaztjYXNlIjx2ZXJ0QWxpZ24iOiJub25lIiE9KGplLnZhbHx8Im5vbmUiKSYmKHhlLnZhbGlnbj1qZS52YWwucmVwbGFjZSgic2NyaXB0IiwiIikpO2JyZWFr''@;'; + put 'put ''O2Nhc2UiPHZlcnRBbGlnbi8+IjpjYXNlIjwvdmVydEFsaWduPiI6YnJlYWs7Y2FzZSI8ZmFtaWx5IjpqZS52YWwmJih4ZS5mYW1pbHk9cGFyc2VJbnQoamUudmFsLDEwKSk7YnJlYWs7Y2FzZSI8ZmFtaWx5Lz4iOmNhc2UiPC9mYW1pbHk+IjpicmVhaztjYXNlIjxzY2hlbWUiOmplLnZhbCYm''@;'; + put 'put ''KHhlLnNjaGVtZT1qZS52YWwpO2JyZWFrO2Nhc2UiPHNjaGVtZS8+IjpjYXNlIjwvc2NoZW1lPiI6YnJlYWs7Y2FzZSI8Y2hhcnNldCI6aWYoIjEiPT1qZS52YWwpYnJlYWs7amUuY29kZXBhZ2U9WVtwYXJzZUludChqZS52YWwsMTApXTticmVhaztjYXNlIjxjb2xvciI6eGUuY29sb3J8fCh4''@;'; + put 'put ''ZS5jb2xvcj17fSksamUuYXV0byYmKHhlLmNvbG9yLmF1dG89RGkoamUuYXV0bykpLGplLnJnYj94ZS5jb2xvci5yZ2I9amUucmdiLnNsaWNlKC02KTpqZS5pbmRleGVkPyh4ZS5jb2xvci5pbmRleD1wYXJzZUludChqZS5pbmRleGVkLDEwKSx4ZS5jb2xvci5yZ2I9TTMoeGUuY29sb3IuaW5k''@;'; + put 'put ''ZXgscmUuSW5kZXhlZCkpOmplLnRoZW1lJiYoeGUuY29sb3IudGhlbWU9cGFyc2VJbnQoamUudGhlbWUsMTApLGplLnRpbnQmJih4ZS5jb2xvci50aW50PXBhcnNlRmxvYXQoamUudGludCkpLGplLnRoZW1lJiZYLnRoZW1lRWxlbWVudHMmJlgudGhlbWVFbGVtZW50cy5jbHJTY2hlbWUmJih4''@;'; + put 'put ''ZS5jb2xvci5yZ2I9UTgoWC50aGVtZUVsZW1lbnRzLmNsclNjaGVtZVt4ZS5jb2xvci50aGVtZV0ucmdiLHhlLmNvbG9yLnRpbnR8fDApKSk7YnJlYWs7Y2FzZSI8Y29sb3IvPiI6Y2FzZSI8L2NvbG9yPiI6YnJlYWs7Y2FzZSI8QWx0ZXJuYXRlQ29udGVudCI6RmU9ITA7YnJlYWs7Y2FzZSI8''@;'; + put 'put ''L0FsdGVybmF0ZUNvbnRlbnQ+IjpGZT0hMTticmVhaztjYXNlIjxleHRMc3QiOmNhc2UiPGV4dExzdD4iOmNhc2UiPC9leHRMc3Q+IjpicmVhaztjYXNlIjxleHQiOkZlPSEwO2JyZWFrO2Nhc2UiPC9leHQ+IjpGZT0hMTticmVhaztkZWZhdWx0OmlmKHdlJiZ3ZS5XVEYmJiFGZSl0aHJvdyBu''@;'; + put 'put ''ZXcgRXJyb3IoInVucmVjb2duaXplZCAiK2plWzBdKyIgaW4gZm9udHMiKX19KX12YXIgTDk9ezA6Im5vbmUiLDE6InNpbmdsZSIsMjoiZG91YmxlIiwzMzoic2luZ2xlQWNjb3VudGluZyIsMzQ6ImRvdWJsZUFjY291bnRpbmcifSx4Mz1bIm51bUZtdElkIiwiZmlsbElkIiwiZm9udElkIiwi''@;'; + put 'put ''Ym9yZGVySWQiLCJ4ZklkIl0sQjQ9WyJhcHBseUFsaWdubWVudCIsImFwcGx5Qm9yZGVyIiwiYXBwbHlGaWxsIiwiYXBwbHlGb250IiwiYXBwbHlOdW1iZXJGb3JtYXQiLCJhcHBseVByb3RlY3Rpb24iLCJwaXZvdEJ1dHRvbiIsInF1b3RlUHJlZml4Il0scDY9ZnVuY3Rpb24oKXt2YXIgSD0v''@;'; + put 'put ''PCg/Olx3KzopP2ZvbnQoW14+XSopPltcU1xzXSo/PFwvKD86XHcrOik/Zm9udD4vLHJlPS88KD86XHcrOik/bnVtRm10KFtePl0qKVwvPi8sWD0vPCg/Olx3KzopP2ZpbGwoW14+XSopPltcU1xzXSo/PFwvKD86XHcrOik/ZmlsbD4vLHhlPS88KD86XHcrOik/Ym9yZGVyKFtePl0qKT5bXFNc''@;'; + put 'put ''c10qPzxcLyg/Olx3KzopP2JvcmRlcj4vO3JldHVybiBmdW5jdGlvbihqZSxZZSxNdCx4dCl7dmFyIG5uLENuLFJ0PXt9LFV0PXt9O3JldHVybihubj1qZS5tYXRjaChIKSkmJihkNihubixSdCxNdCx4dCksKFJ0LkZvbnRzfHxbXSlbMF0mJmJuKFV0LFJ0LkZvbnRzWzBdKSksKG5uPWplLm1h''@;'; + put 'put ''dGNoKHJlKSkmJihDbj1lbihXMChublswXSkpLFV0Lno9Q24uZm9ybWF0Q29kZT9ncihDbi5mb3JtYXRDb2RlKTooWWUuTnVtYmVyRm10fHxbXSlbK0NuLm51bUZtdElkXXx8IkdlbmVyYWwiKSwobm49amUubWF0Y2goWCkpJiYoZkUobm4sUnQsTXQseHQpLChSdC5GaWxsc3x8W10pWzBdJiZi''@;'; + put 'put ''bihVdCxSdC5GaWxsc1swXSkpLChubj1qZS5tYXRjaCh4ZSkpJiYoa2Iobm4sUnQsTXQseHQpLChSdC5Cb3JkZXJzfHxbXSlbMF0mJmJuKFV0LFJ0LkJvcmRlcnNbMF0pKSxVdH19KCksYm89LzwoPzpcdys6KT9keGY+W1xTXHNdKj88XC8oPzpcdys6KT9keGY+L2csR2E9LzwoPzpcdys6KT90''@;'; + put 'put ''YWJsZVN0eWxlXGIuKj8+W1xTXHNdKj88XC8oPzpcdys6KT90YWJsZVN0eWxlPi9nO3ZhciBSOT1mdW5jdGlvbigpe3ZhciByZT0vPCg/Olx3KzopP251bUZtdHMoW14+XSopPltcU1xzXSo/PFwvKD86XHcrOik/bnVtRm10cz4vLFg9LzwoPzpcdys6KT9jZWxsU3R5bGVYZnMoW14+XSopPltc''@;'; + put 'put ''U1xzXSo/PFwvKD86XHcrOik/Y2VsbFN0eWxlWGZzPi8sd2U9LzwoPzpcdys6KT9jZWxsU3R5bGVzKFtePl0qKT5bXFNcc10qPzxcLyg/Olx3KzopP2NlbGxTdHlsZXM+Lyx4ZT0vPCg/Olx3KzopP2NlbGxYZnMoW14+XSopPltcU1xzXSo/PFwvKD86XHcrOik/Y2VsbFhmcz4vLEZlPS88KD86''@;'; + put 'put ''XHcrOik/ZmlsbHMoW14+XSopPltcU1xzXSo/PFwvKD86XHcrOik/ZmlsbHM+LyxaZT0vPCg/Olx3KzopP2ZvbnRzKFtePl0qKT5bXFNcc10qPzxcLyg/Olx3KzopP2ZvbnRzPi8samU9LzwoPzpcdys6KT9ib3JkZXJzKFtePl0qKT5bXFNcc10qPzxcLyg/Olx3KzopP2JvcmRlcnM+LyxZZT0v''@;'; + put 'put ''PCg/Olx3KzopP2luZGV4ZWRDb2xvcnMoW14+XSopPltcU1xzXSo/PFwvKD86XHcrOik/aW5kZXhlZENvbG9ycz4vLE10PS88KD86XHcrOik/dGFibGVTdHlsZXMoW14+XSopPltcU1xzXSo/PFwvKD86XHcrOik/dGFibGVTdHlsZXM+Lyx4dD0vPCg/Olx3KzopP2R4ZnMoW14+XSopPltcU1xz''@;'; + put 'put ''XSo/PFwvKD86XHcrOik/ZHhmcz4vO3JldHVybiBmdW5jdGlvbihVdCxubixDbil7dmFyIHp0LER0PXt9O3JldHVybiBVdD8oKHp0PShVdD1VdC5yZXBsYWNlKC88IS0tKFtcc1xTXSo/KS0tPi9nbSwiIikucmVwbGFjZSgvPCFET0NUWVBFW15cW10qXFtbXlxdXSpcXT4vZ20sIiIpKS5tYXRj''@;'; + put 'put ''aChZZSkpJiZmdW5jdGlvbiBBRShILHJlLFgpe3JlLkluZGV4ZWR8fChyZS5JbmRleGVkPVtdKTt2YXIgd2U9ITE7KEhbMF0ubWF0Y2goR3QpfHxbXSkuZm9yRWFjaChmdW5jdGlvbih4ZSl7dmFyIEZlPWVuKHhlKTtzd2l0Y2goSW4oRmVbMF0pKXtjYXNlIjxpbmRleGVkQ29sb3JzPiI6Y2Fz''@;'; + put 'put ''ZSI8aW5kZXhlZENvbG9ycyI6Y2FzZSI8aW5kZXhlZENvbG9ycy8+IjpjYXNlIjwvaW5kZXhlZENvbG9ycz4iOmNhc2UiPC9yZ2JDb2xvcj4iOmNhc2UiPGV4dExzdCI6Y2FzZSI8ZXh0THN0PiI6Y2FzZSI8L2V4dExzdD4iOmJyZWFrO2Nhc2UiPHJnYkNvbG9yIjpkZWxldGUgRmVbMF07dmFy''@;'; + put 'put ''IFplPXBhcnNlSW50KEZlLnJnYi5zbGljZSgtNiksMTYpO3JlLkluZGV4ZWQucHVzaChbWmU+PjE2JjI1NSxaZT4+OCYyNTUsMjU1JlplXSk7YnJlYWs7Y2FzZSI8ZXh0Ijp3ZT0hMDticmVhaztjYXNlIjwvZXh0PiI6d2U9ITE7YnJlYWs7ZGVmYXVsdDppZihYJiZYLldURiYmIXdlKXRocm93''@;'; + put 'put ''IG5ldyBFcnJvcigidW5yZWNvZ25pemVkICIrRmVbMF0rIiBpbiBjZWxsU3R5bGVzIil9fSl9KHp0LER0LENuKSwoenQ9VXQubWF0Y2gocmUpKSYmZnVuY3Rpb24gZEUoSCxyZSxYKXtyZS5OdW1iZXJGbXQ9W107Zm9yKHZhciB3ZT1vbihGLl90YWJsZSkseGU9MDt4ZTx3ZS5sZW5ndGg7Kyt4''@;'; + put 'put ''ZSlyZS5OdW1iZXJGbXRbd2VbeGVdXT1GLl90YWJsZVt3ZVt4ZV1dO3ZhciBGZT1IWzBdLm1hdGNoKEd0KTtpZihGZSlmb3IoeGU9MDt4ZTxGZS5sZW5ndGg7Kyt4ZSl7dmFyIFplPWVuKEZlW3hlXSk7c3dpdGNoKEluKFplWzBdKSl7Y2FzZSI8bnVtRm10cyI6Y2FzZSI8L251bUZtdHM+Ijpj''@;'; + put 'put ''YXNlIjxudW1GbXRzLz4iOmNhc2UiPG51bUZtdHM+IjpjYXNlIjwvbnVtRm10PiI6YnJlYWs7Y2FzZSI8bnVtRm10Ijp2YXIgamU9Z3IoVzAoWmUuZm9ybWF0Q29kZSkpLFllPXBhcnNlSW50KFplLm51bUZtdElkLDEwKTtpZihyZS5OdW1iZXJGbXRbWWVdPWplLFllPjApe2lmKFllPjM5Mil7''@;'; + put 'put ''Zm9yKFllPTM5MjtZZT42MCYmbnVsbCE9cmUuTnVtYmVyRm10W1llXTstLVllKTtyZS5OdW1iZXJGbXRbWWVdPWplfUYubG9hZChqZSxZZSl9YnJlYWs7ZGVmYXVsdDppZihYLldURil0aHJvdyBuZXcgRXJyb3IoInVucmVjb2duaXplZCAiK1plWzBdKyIgaW4gbnVtRm10cyIpfX19KHp0LER0''@;'; + put 'put ''LENuKSwoenQ9VXQubWF0Y2goWmUpKSYmZDYoenQsRHQsbm4sQ24pLCh6dD1VdC5tYXRjaChGZSkpJiZmRSh6dCxEdCxubixDbiksKHp0PVV0Lm1hdGNoKGplKSkmJmtiKHp0LER0LG5uLENuKSwoenQ9VXQubWF0Y2goWCkpJiZmdW5jdGlvbiBtRShILHJlLFgpe3JlLkNlbGxTdHlsZVhmPVtd''@;'; + put 'put ''O3ZhciB3ZSx4ZT0hMTsoSFswXS5tYXRjaChHdCl8fFtdKS5mb3JFYWNoKGZ1bmN0aW9uKEZlKXt2YXIgWmU9ZW4oRmUpLGplPTA7c3dpdGNoKEluKFplWzBdKSl7Y2FzZSI8Y2VsbFN0eWxlWGZzIjpjYXNlIjxjZWxsU3R5bGVYZnM+IjpjYXNlIjxjZWxsU3R5bGVYZnMvPiI6Y2FzZSI8L2Nl''@;'; + put 'put ''bGxTdHlsZVhmcz4iOmNhc2UiPC94Zj4iOmNhc2UiPC9hbGlnbm1lbnQ+IjpjYXNlIjwvcHJvdGVjdGlvbj4iOmNhc2UiPHByb3RlY3Rpb24vPiI6Y2FzZSI8ZXh0THN0IjpjYXNlIjxleHRMc3Q+IjpjYXNlIjwvZXh0THN0PiI6YnJlYWs7Y2FzZSI8eGYiOmNhc2UiPHhmLz4iOmZvcihkZWxl''@;'; + put 'put ''dGUod2U9WmUpWzBdLGplPTA7amU8eDMubGVuZ3RoOysramUpd2VbeDNbamVdXSYmKHdlW3gzW2plXV09cGFyc2VJbnQod2VbeDNbamVdXSwxMCkpO2ZvcihqZT0wO2plPEI0Lmxlbmd0aDsrK2plKXdlW0I0W2plXV0mJih3ZVtCNFtqZV1dPURpKHdlW0I0W2plXV0pKTtpZihyZS5OdW1iZXJG''@;'; + put 'put ''bXQmJndlLm51bUZtdElkPjM5Milmb3IoamU9MzkyO2plPjYwOy0tamUpaWYocmUuTnVtYmVyRm10W3dlLm51bUZtdElkXT09cmUuTnVtYmVyRm10W2plXSl7d2UubnVtRm10SWQ9amU7YnJlYWt9cmUuQ2VsbFN0eWxlWGYucHVzaCh3ZSk7YnJlYWs7Y2FzZSI8YWxpZ25tZW50IjpjYXNlIjxh''@;'; + put 'put ''bGlnbm1lbnQvPiI6dmFyIFllPXt9O1plLnZlcnRpY2FsJiYoWWUudmVydGljYWw9WmUudmVydGljYWwpLFplLmhvcml6b250YWwmJihZZS5ob3Jpem9udGFsPVplLmhvcml6b250YWwpLG51bGwhPVplLnRleHRSb3RhdGlvbiYmKFllLnRleHRSb3RhdGlvbj1aZS50ZXh0Um90YXRpb24pLFpl''@;'; + put 'put ''LmluZGVudCYmKFllLmluZGVudD1aZS5pbmRlbnQpLFplLndyYXBUZXh0JiYoWWUud3JhcFRleHQ9WmUud3JhcFRleHQpLFplLnNocmlua1RvRml0JiYoWWUuc2hyaW5rVG9GaXQ9RGkoWmUuc2hyaW5rVG9GaXQpKSx3ZS5hbGlnbm1lbnQ9WWU7YnJlYWs7Y2FzZSI8cHJvdGVjdGlvbiI6d2Uu''@;'; + put 'put ''cHJvdGVjdGlvbj17fSxEaShaZS5oaWRkZW4pJiYod2UucHJvdGVjdGlvbi5oaWRkZW49ITApLG51bGwhPVplLmxvY2tlZCYmKHdlLnByb3RlY3Rpb24uZWRpdGFibGU9IURpKFplLmxvY2tlZCkpO2JyZWFrO2Nhc2UiPGV4dCI6eGU9ITA7YnJlYWs7Y2FzZSI8L2V4dD4iOnhlPSExO2JyZWFr''@;'; + put 'put ''O2RlZmF1bHQ6aWYoWCYmWC5XVEYmJiF4ZSl0aHJvdyBuZXcgRXJyb3IoInVucmVjb2duaXplZCAiK1plWzBdKyIgaW4gY2VsbFN0eWxlWGZzIil9fSl9KHp0LER0LENuKSwoenQ9VXQubWF0Y2god2UpKSYmZnVuY3Rpb24gdkUoSCxyZSxYKXtyZS5DZWxsU3R5bGVYZnx8KHJlLkNlbGxTdHls''@;'; + put 'put ''ZVhmPVtdKTt2YXIgd2U9ITE7KEhbMF0ubWF0Y2goR3QpfHxbXSkuZm9yRWFjaChmdW5jdGlvbih4ZSl7dmFyIEZlPWVuKHhlKTtzd2l0Y2goSW4oRmVbMF0pKXtjYXNlIjxjZWxsU3R5bGVzIjpjYXNlIjxjZWxsU3R5bGVzPiI6Y2FzZSI8Y2VsbFN0eWxlcy8+IjpjYXNlIjwvY2VsbFN0eWxl''@;'; + put 'put ''cz4iOmNhc2UiPC94Zj4iOmNhc2UiPC9jZWxsU3R5bGU+IjpjYXNlIjxleHRMc3QiOmNhc2UiPGV4dExzdD4iOmNhc2UiPC9leHRMc3Q+IjpicmVhaztjYXNlIjxjZWxsU3R5bGUiOmNhc2UiPGNlbGxTdHlsZS8+IjpkZWxldGUgRmVbMF07dmFyIFplPStGZS54ZklkO2lmKHJlLkNlbGxTdHls''@;'; + put 'put ''ZVhmW1plXSlyZS5DZWxsU3R5bGVYZltaZV0uc3R5bGU9VzAoRmUubmFtZSk7ZWxzZSBpZighRmUuYnVpbHRpbklkKXRocm93IG5ldyBFcnJvcigiQ291bGQgbm90IGZpbmQgQ2VsbFN0eWxlICIrWmUpO2JyZWFrO2Nhc2UiPGV4dCI6d2U9ITA7YnJlYWs7Y2FzZSI8L2V4dD4iOndlPSExO2Jy''@;'; + put 'put ''ZWFrO2RlZmF1bHQ6aWYoWCYmWC5XVEYmJiF3ZSl0aHJvdyBuZXcgRXJyb3IoInVucmVjb2duaXplZCAiK0ZlWzBdKyIgaW4gY2VsbFN0eWxlcyIpfX0pfSh6dCxEdCxDbiksKHp0PVV0Lm1hdGNoKHhlKSkmJmZ1bmN0aW9uIGdFKEgscmUsWCl7cmUuQ2VsbFhmPVtdO3ZhciB3ZSx4ZT0hMTso''@;'; + put 'put ''SFswXS5tYXRjaChHdCl8fFtdKS5mb3JFYWNoKGZ1bmN0aW9uKEZlKXt2YXIgWmU9ZW4oRmUpLGplPTA7c3dpdGNoKEluKFplWzBdKSl7Y2FzZSI8Y2VsbFhmcyI6Y2FzZSI8Y2VsbFhmcz4iOmNhc2UiPGNlbGxYZnMvPiI6Y2FzZSI8L2NlbGxYZnM+IjpjYXNlIjwveGY+IjpjYXNlIjwvYWxp''@;'; + put 'put ''Z25tZW50PiI6Y2FzZSI8L3Byb3RlY3Rpb24+IjpjYXNlIjxwcm90ZWN0aW9uLz4iOmNhc2UiPGV4dExzdCI6Y2FzZSI8ZXh0THN0PiI6Y2FzZSI8L2V4dExzdD4iOmJyZWFrO2Nhc2UiPHhmIjpjYXNlIjx4Zi8+Ijpmb3IoZGVsZXRlKHdlPVplKVswXSxqZT0wO2plPHgzLmxlbmd0aDsrK2pl''@;'; + put 'put ''KXdlW3gzW2plXV0mJih3ZVt4M1tqZV1dPXBhcnNlSW50KHdlW3gzW2plXV0sMTApKTtmb3IoamU9MDtqZTxCNC5sZW5ndGg7KytqZSl3ZVtCNFtqZV1dJiYod2VbQjRbamVdXT1EaSh3ZVtCNFtqZV1dKSk7aWYocmUuTnVtYmVyRm10JiZ3ZS5udW1GbXRJZD4zOTIpZm9yKGplPTM5MjtqZT42''@;'; + put 'put ''MDstLWplKWlmKHJlLk51bWJlckZtdFt3ZS5udW1GbXRJZF09PXJlLk51bWJlckZtdFtqZV0pe3dlLm51bUZtdElkPWplO2JyZWFrfXJlLkNlbGxTdHlsZVhmJiZ3ZS54ZklkJiZyZS5DZWxsU3R5bGVYZlt3ZS54ZklkXSYmcmUuQ2VsbFN0eWxlWGZbd2UueGZJZF0uc3R5bGUmJih3ZS5zdHls''@;'; + put 'put ''ZT1yZS5DZWxsU3R5bGVYZlt3ZS54ZklkXS5zdHlsZSkscmUuQ2VsbFhmLnB1c2god2UpO2JyZWFrO2Nhc2UiPGFsaWdubWVudCI6Y2FzZSI8YWxpZ25tZW50Lz4iOnZhciBZZT17fTtaZS52ZXJ0aWNhbCYmKFllLnZlcnRpY2FsPVplLnZlcnRpY2FsKSxaZS5ob3Jpem9udGFsJiYoWWUuaG9y''@;'; + put 'put ''aXpvbnRhbD1aZS5ob3Jpem9udGFsKSxudWxsIT1aZS50ZXh0Um90YXRpb24mJihZZS50ZXh0Um90YXRpb249WmUudGV4dFJvdGF0aW9uKSxaZS5pbmRlbnQmJihZZS5pbmRlbnQ9WmUuaW5kZW50KSxaZS53cmFwVGV4dCYmKFllLndyYXBUZXh0PURpKFplLndyYXBUZXh0KSksWmUuc2hyaW5r''@;'; + put 'put ''VG9GaXQmJihZZS5zaHJpbmtUb0ZpdD1EaShaZS5zaHJpbmtUb0ZpdCkpLHdlLmFsaWdubWVudD1ZZTticmVhaztjYXNlIjxwcm90ZWN0aW9uIjp3ZS5wcm90ZWN0aW9uPXt9LERpKFplLmhpZGRlbikmJih3ZS5wcm90ZWN0aW9uLmhpZGRlbj0hMCksbnVsbCE9WmUubG9ja2VkJiYod2UucHJv''@;'; + put 'put ''dGVjdGlvbi5lZGl0YWJsZT0hRGkoWmUubG9ja2VkKSk7YnJlYWs7Y2FzZSI8QWx0ZXJuYXRlQ29udGVudCI6Y2FzZSI8ZXh0Ijp4ZT0hMDticmVhaztjYXNlIjwvQWx0ZXJuYXRlQ29udGVudD4iOmNhc2UiPC9leHQ+Ijp4ZT0hMTticmVhaztkZWZhdWx0OmlmKFgmJlguV1RGJiYheGUpdGhy''@;'; + put 'put ''b3cgbmV3IEVycm9yKCJ1bnJlY29nbml6ZWQgIitaZVswXSsiIGluIGNlbGxYZnMiKX19KX0oenQsRHQsQ24pLCh6dD1VdC5tYXRjaCh4dCkpJiZmdW5jdGlvbiBPOShILHJlLFgsd2Upe3JlLkRYRnx8KHJlLkRYRj1bXSksKEhbMF0ubWF0Y2goYm8pfHxbXSkuZm9yRWFjaChmdW5jdGlvbih4''@;'; + put 'put ''ZSl7cmUuRFhGLnB1c2gocDYoeGUscmUsWCx3ZSkpfSl9KHp0LER0LG5uLENuKSwoenQ9VXQubWF0Y2goTXQpKSYmZnVuY3Rpb24gV1IoSCxyZSxYLHdlKXtyZS5UYWJsZXx8KHJlLlRhYmxlPVtdKSwoSFswXS5tYXRjaChHYSl8fFtdKS5mb3JFYWNoKGZ1bmN0aW9uKHhlKXtyZS5UYWJsZS5w''@;'; + put 'put ''dXNoKGZ1bmN0aW9uIEdSKEgscmUsWCx3ZSl7dmFyIHhlPSExLEZlPXt9O3JldHVybihILm1hdGNoKEd0KXx8W10pLmZvckVhY2goZnVuY3Rpb24oWmUpe3ZhciBqZT1lbihaZSk7c3dpdGNoKEluKGplWzBdKSl7Y2FzZSI8dGFibGVTdHlsZT4iOmNhc2UiPHRhYmxlU3R5bGUiOkZlLm5hbWU9''@;'; + put 'put ''amUubmFtZS5yZXBsYWNlKC9eKFRhYmxlfFBpdm90KVN0eWxlLywiIiksRmUucmF3bmFtZT1qZS5uYW1lLEZlLnBpdm90PSFqZS5waXZvdHx8RGkoamUucGl2b3QpLEZlLnRhYmxlPSFqZS50YWJsZXx8RGkoamUudGFibGUpO2JyZWFrO2Nhc2UiPHRhYmxlU3R5bGUvPiI6Y2FzZSI8L3RhYmxl''@;'; + put 'put ''U3R5bGU+IjpjYXNlIjxleHRMc3QiOmNhc2UiPGV4dExzdD4iOmNhc2UiPC9leHRMc3Q+IjpicmVhaztjYXNlIjx0YWJsZVN0eWxlRWxlbWVudCI6aWYoamUudHlwZSYmamUuZHhmSWQpe2lmKCFyZS5EWEZ8fCFyZS5EWEZbK2plLmR4ZklkXSl0aHJvdyBuZXcgRXJyb3IoWmUrIiBjYW5ub3Qg''@;'; + put 'put ''ZmluZCBEWEYiKTtGZVtqZS50eXBlXT1yZS5EWEZbK2plLmR4ZklkXX1icmVhaztjYXNlIjxleHQiOnhlPSEwO2JyZWFrO2Nhc2UiPC9leHQ+Ijp4ZT0hMTticmVhaztkZWZhdWx0OmlmKHdlJiZ3ZS5XVEYmJiF4ZSl0aHJvdyBuZXcgRXJyb3IoInVucmVjb2duaXplZCAiK2plWzBdKyIgaW4g''@;'; + put 'put ''dGFibGVTdHlsZSIpfX0pLEZlfSh4ZSxyZSwwLHdlKSl9KX0oenQsRHQsMCxDbiksKER0LkZvbnRzfHxbXSlbMF0mJlMzKER0LkZvbnRzWzBdKSxEdCk6RHR9fSgpLFlSPV9pKCJzdHlsZVNoZWV0IixudWxsLHt4bWxuczpYMC5tYWluWzBdLCJ4bWxuczp2dCI6WDAudnR9KTtmdW5jdGlvbiBV''@;'; + put 'put ''UihILHJlKXt2YXIgd2UsWD1bY24sWVJdO0guU1NGJiZudWxsIT0od2U9ZnVuY3Rpb24gcEUoSCl7dmFyIHJlPVsiPG51bUZtdHM+Il07cmV0dXJuW1s1LDhdLFsyMywyNl0sWzQxLDQ0XSxbNTAsMzkyXV0uZm9yRWFjaChmdW5jdGlvbihYKXtmb3IodmFyIHdlPVhbMF07d2U8PVhbMV07Kyt3''@;'; + put 'put ''ZSludWxsIT1IW3dlXSYmKHJlW3JlLmxlbmd0aF09X2koIm51bUZtdCIsbnVsbCx7bnVtRm10SWQ6d2UsZm9ybWF0Q29kZTpScihIW3dlXSl9KSl9KSwxPT09cmUubGVuZ3RoPyIiOihyZVtyZS5sZW5ndGhdPSI8L251bUZtdHM+IixyZVswXT1faSgibnVtRm10cyIsbnVsbCx7Y291bnQ6cmUu''@;'; + put 'put ''bGVuZ3RoLTJ9KS5yZXBsYWNlKCIvPiIsIj4iKSxyZS5qb2luKCIiKSl9KEguU1NGKSkmJihYW1gubGVuZ3RoXT13ZSksWFtYLmxlbmd0aF09ZnVuY3Rpb24gWlIoSCl7dmFyIHJlPVtdO3JldHVybiBILmZvckVhY2goZnVuY3Rpb24oWCl7dmFyIHdlPVsiPGZvbnQ+Il07WC5ib2xkJiZ3ZS5w''@;'; + put 'put ''dXNoKCI8Yi8+IiksWC5pdGFsaWMmJndlLnB1c2goIjxpLz4iKSxYLnN0cmlrZSYmd2UucHVzaCgiPHN0cmlrZS8+IiksWC5zaGFkb3cmJndlLnB1c2goIjxzaGFkb3cvPiIpLEw5WytYLnVuZGVybGluZV0mJndlLnB1c2goJzx1IHZhbD0iJytMOVsrWC51bmRlcmxpbmVdKyciLz4nKSxYLnN6''@;'; + put 'put ''JiZ3ZS5wdXNoKCc8c3ogdmFsPSInK1guc3orJyIvPicpLFguY29sb3ImJndlLnB1c2goWHMoWC5jb2xvciwhMCkpLFgubmFtZSYmd2UucHVzaCgnPG5hbWUgdmFsPSInK1gubmFtZSsnIi8+JyksWC5mYW1pbHkmJndlLnB1c2goJzxmYW1pbHkgdmFsPSInK1guZmFtaWx5KyciLz4nKSxYLnNj''@;'; + put 'put ''aGVtZSYmd2UucHVzaCgnPHNjaGVtZSB2YWw9IicrWC5zY2hlbWUrJyIvPicpLFgudmFsaWduJiZ3ZS5wdXNoKCc8dmVydEFsaWduIHZhbD0iJytYLnZhbGlnbisoInN1YiI9PVgudmFsaWdufHwic3VwZXIiPT1YLnZhbGlnbj8ic2NyaXB0IjoiIikrJyIvPicpLHJlLnB1c2god2Uuam9pbigi''@;'; + put 'put ''IikrIjwvZm9udD4iKX0pLCc8Zm9udHMgY291bnQ9IicrcmUubGVuZ3RoKyciPicrcmUuam9pbigiIikrIjwvZm9udHM+In0oKEguU3R5bGVzfHx7fSkuRm9udHN8fFtdKSxYW1gubGVuZ3RoXT1mdW5jdGlvbiBoRShIKXt2YXIgcmU9W107cmV0dXJuIEguZm9yRWFjaChmdW5jdGlvbihYKXt2''@;'; + put 'put ''YXIgd2U9bnVsbDtpZihYLnN0b3BzJiZYLnN0b3BzLmxlbmd0aCl7dmFyIHhlPXt9O1guYW5nbGUmJih4ZS5kZWdyZWU9TWF0aC5yb3VuZChYLmFuZ2xlKSksd2U9WC5zdG9wcy5tYXAoZnVuY3Rpb24oRmUpe3JldHVybiBfaSgic3RvcCIsWHMoRmUsImNvbG9yIiwhMCksbnVsbCE9RmUudj97''@;'; + put 'put ''cG9zaXRpb246RmUudn06e30pfSkscmUucHVzaCgiPGZpbGw+IitfaSgiZ3JhZGllbnRGaWxsIix3ZS5qb2luKCIiKSx4ZSkrIjwvZmlsbD4iKX1lbHNle2lmKFguZmdDb2xvcil7aWYod2U9KHdlfHwiIikrIjxmZ0NvbG9yICIsWC5mZ0NvbG9yLnRoZW1lKXdlKz0ndGhlbWU9IicrWC5mZ0Nv''@;'; + put 'put ''bG9yLnRoZW1lKyciJysoWC5mZ0NvbG9yLnRpbnQ/JyB0aW50PSInK1guZmdDb2xvci50aW50KyciJzoiIikrIi8+IjtlbHNlIGlmKG51bGwhPVguZmdDb2xvci5pbmRleCYmbnVsbD09WC5mZ0NvbG9yLnJnYil3ZSs9J2luZGV4ZWQ9IicrWC5mZ0NvbG9yLmluZGV4KyciLz4nO2Vsc2UgaWYo''@;'; + put 'put ''WC5mZ0NvbG9yLmF1dG8pd2UrPSdhdXRvPSIxIi8+JztlbHNle2lmKG51bGw9PVguZmdDb2xvci5yZ2IpdGhyb3cgbmV3IEVycm9yKCJCYWQgY29sb3IgIitvbihYLmZnQ29sb3IpLmpvaW4oInwiKSk7d2UrPSdyZ2I9IkZGJytMbyhYLmZnQ29sb3IucmdiKSsnIi8+J30ic29saWQiPT1YLnBh''@;'; + put 'put ''dHRlcm5UeXBlJiYhWC5iZ0NvbG9yJiYoWC5iZ0NvbG9yPXtpbmRleDo2NH0pfWlmKFguYmdDb2xvcilpZih3ZT0od2V8fCIiKSsiPGJnQ29sb3IgIixYLmJnQ29sb3IudGhlbWUpd2UrPSd0aGVtZT0iJytYLmJnQ29sb3IudGhlbWUrJyIvPic7ZWxzZSBpZihudWxsIT1YLmJnQ29sb3IuaW5k''@;'; + put 'put ''ZXgmJm51bGw9PVguYmdDb2xvci5yZ2Ipd2UrPSdpbmRleGVkPSInK1guYmdDb2xvci5pbmRleCsnIi8+JztlbHNlIGlmKFguYmdDb2xvci5hdXRvKXdlKz0nYXV0bz0iMSIvPic7ZWxzZXtpZihudWxsPT1YLmJnQ29sb3IucmdiKXRocm93IG5ldyBFcnJvcigiQmFkIGNvbG9yICIrb24oWC5i''@;'; + put 'put ''Z0NvbG9yKS5qb2luKCJ8IikpO3dlKz0ncmdiPSJGRicrTG8oWC5iZ0NvbG9yLnJnYikrJyIvPid9cmUucHVzaCgiPGZpbGw+IitfaSgicGF0dGVybkZpbGwiLHdlLHtwYXR0ZXJuVHlwZTpYLnBhdHRlcm5UeXBlfSkrIjwvZmlsbD4iKX19KSwnPGZpbGxzIGNvdW50PSInK3JlLmxlbmd0aCsn''@;'; + put 'put ''Ij4nK3JlLmpvaW4oIiIpKyI8L2ZpbGxzPiJ9KChILlN0eWxlc3x8e30pLkZpbGxzfHxbXSksWFtYLmxlbmd0aF09ZnVuY3Rpb24gRDkoSCl7dmFyIHJlPVtdO3JldHVybiBILmZvckVhY2goZnVuY3Rpb24oWCl7dmFyIHdlPVtdO3dlLnB1c2goU2QoWC5sZWZ0LCJsZWZ0IikpLHdlLnB1c2go''@;'; + put 'put ''U2QoWC5yaWdodCwicmlnaHQiKSksd2UucHVzaChTZChYLnRvcCwidG9wIikpLHdlLnB1c2goU2QoWC5ib3R0b20sImJvdHRvbSIpKSx3ZS5wdXNoKFNkKFguZGlhZ29uYWwsImRpYWdvbmFsIikpLHJlLnB1c2goIjxib3JkZXI+Iit3ZS5qb2luKCIiKSsiPC9ib3JkZXI+Iil9KSwnPGJvcmRl''@;'; + put 'put ''cnMgY291bnQ9IicrcmUubGVuZ3RoKyciPicrcmUuam9pbigiIikrIjwvYm9yZGVycz4ifSgoSC5TdHlsZXN8fHt9KS5Cb3JkZXJzfHxbXSksWFtYLmxlbmd0aF09ZnVuY3Rpb24gZUcoSCl7dmFyIHJlPVsnPHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjAiIGZpbGxJZD0iMCIgYm9yZGVySWQ9''@;'; + put 'put ''IjAiLz4nXTtpZihIKWZvcih2YXIgWD0xO1g8SC5sZW5ndGg7KytYKXJlLnB1c2goX2koInhmIixudWxsLHtudW1GbXRJZDpIW1hdLm51bUZtdElkfHwwLGZvbnRJZDpIW1hdLmZvbnRJZHx8MCxmaWxsSWQ6SFtYXS5maWxsSWR8fDAsYm9yZGVySWQ6SFtYXS5ib3JkZXJJZHx8MH0pKTtyZXR1''@;'; + put 'put ''cm4nPGNlbGxTdHlsZVhmcyBjb3VudD0iJytyZS5sZW5ndGgrJyI+JytyZS5qb2luKCIiKSsiPC9jZWxsU3R5bGVYZnM+In0ocmUuY2VsbFN0eWxlWGZzKSwod2U9ZnVuY3Rpb24gelIoSCl7dmFyIHJlPVtdO3JldHVybiByZVtyZS5sZW5ndGhdPV9pKCJjZWxsWGZzIixudWxsKSxILmZvckVh''@;'; + put 'put ''Y2goZnVuY3Rpb24oWCl7dmFyIHdlPVguYWxpZ25tZW50O2RlbGV0ZSBYLmFsaWdubWVudDt2YXIgeGU9WC5wcm90ZWN0aW9uO2RlbGV0ZSBYLnByb3RlY3Rpb247dmFyIEZlPXdlP19pKCJhbGlnbm1lbnQiLG51bGwsd2UpOiIiO0ZlKz14ZT9faSgicHJvdGVjdGlvbiIsbnVsbCx7aGlkZGVu''@;'; + put 'put ''OnhlLmhpZGRlbj8xOjAsbG9ja2VkOnhlLmVkaXRhYmxlPzA6MX0pOiIiLHJlW3JlLmxlbmd0aF09X2koInhmIixGZXx8bnVsbCxYKSx3ZSYmKFguYWxpZ25tZW50PXdlKSx4ZSYmKFgucHJvdGVjdGlvbj14ZSl9KSxyZVtyZS5sZW5ndGhdPSI8L2NlbGxYZnM+IiwyPT09cmUubGVuZ3RoPyIi''@;'; + put 'put ''OihyZVswXT1faSgiY2VsbFhmcyIsbnVsbCx7Y291bnQ6cmUubGVuZ3RoLTJ9KS5yZXBsYWNlKCIvPiIsIj4iKSxyZS5qb2luKCIiKSl9KHJlLmNlbGxYZnMpKSYmKFhbWC5sZW5ndGhdPXdlKSxYW1gubGVuZ3RoXT1mdW5jdGlvbiBNZChIKXt2YXIgcmU9Wyc8Y2VsbFN0eWxlIG5hbWU9Ik5v''@;'; + put 'put ''cm1hbCIgeGZJZD0iMCIgYnVpbHRpbklkPSIwIi8+J107aWYoSClmb3IodmFyIFg9MTtYPEgubGVuZ3RoOysrWClyZS5wdXNoKF9pKCJjZWxsU3R5bGUiLG51bGwse25hbWU6SFtYXS5uYW1lLHhmSWQ6WH0pKTtyZXR1cm4nPGNlbGxTdHlsZXMgY291bnQ9IicrcmUubGVuZ3RoKyciPicrcmUu''@;'; + put 'put ''am9pbigiIikrIjwvY2VsbFN0eWxlcz4ifShyZS5jZWxsU3R5bGVYZnMpLEguU3R5bGVzLkRYRnx8KEguU3R5bGVzLkRYRj1bXSk7dmFyIHhlPWZ1bmN0aW9uIHlFKEgscmUsWCl7dmFyIHdlPVsnPHRhYmxlU3R5bGVzIGNvdW50PSInKyhIfHxbXSkubGVuZ3RoKyciIGRlZmF1bHRUYWJsZVN0''@;'; + put 'put ''eWxlPSJUYWJsZVN0eWxlTWVkaXVtOSIgZGVmYXVsdFBpdm90U3R5bGU9IlBpdm90U3R5bGVNZWRpdW00IiddO3JldHVybiBIJiZILmxlbmd0aD8od2VbMF0rPSI+IixILmZvckVhY2goZnVuY3Rpb24oeGUpe3dlLnB1c2goZnVuY3Rpb24gRWQoSCxyZSxYKXt2YXIgd2U9W107WyJ3aG9sZVRh''@;'; + put 'put ''YmxlIiwiaGVhZGVyUm93IiwidG90YWxSb3ciLCJmaXJzdENvbHVtbiIsImxhc3RDb2x1bW4iLCJmaXJzdFJvd1N0cmlwZSIsInNlY29uZFJvd1N0cmlwZSIsImZpcnN0Q29sdW1uU3RyaXBlIiwic2Vjb25kQ29sdW1uU3RyaXBlIiwiZmlyc3RIZWFkZXJDZWxsIiwibGFzdEhlYWRlckNlbGwi''@;'; + put 'put ''LCJmaXJzdFRvdGFsQ2VsbCIsImxhc3RUb3RhbENlbGwiLCJmaXJzdFN1YnRvdGFsQ29sdW1uIiwic2Vjb25kU3VidG90YWxDb2x1bW4iLCJ0aGlyZFN1YnRvdGFsQ29sdW1uIiwiZmlyc3RTdWJ0b3RhbFJvdyIsInNlY29uZFN1YnRvdGFsUm93IiwidGhpcmRTdWJ0b3RhbFJvdyIsImJsYW5r''@;'; + put 'put ''Um93IiwiZmlyc3RDb2x1bW5TdWJoZWFkaW5nIiwic2Vjb25kQ29sdW1uU3ViaGVhZGluZyIsInRoaXJkQ29sdW1uU3ViaGVhZGluZyIsImZpcnN0Um93U3ViaGVhZGluZyIsInNlY29uZFJvd1N1YmhlYWRpbmciLCJ0aGlyZFJvd1N1YmhlYWRpbmciLCJwYWdlRmllbGRMYWJlbHMiLCJwYWdl''@;'; + put 'put ''RmllbGRWYWx1ZXMiXS5mb3JFYWNoKGZ1bmN0aW9uKEZlKXtpZihIW0ZlXSl7dmFyIFplPXo0KHJlLEhbRmVdKTt3ZS5wdXNoKCc8dGFibGVTdHlsZUVsZW1lbnQgZHhmSWQ9IicrWmUrJyIgdHlwZT0iJytGZSsnIi8+Jyl9fSk7dmFyIHhlPSc8dGFibGVTdHlsZSBjb3VudD0iJyt3ZS5sZW5n''@;'; + put 'put ''dGgrJyIgcGl2b3Q9IicrICshIUgucGl2b3QrJyIgbmFtZT0iJytILm5hbWUrJyInO3JldHVybiB3ZS5sZW5ndGg/eGUrIj4iK3dlLmpvaW4oIiIpKyI8L3RhYmxlU3R5bGU+Ijp4ZSsiLz4ifSh4ZSxyZSkpfSksd2Uuam9pbigiIikrIjwvdGFibGVTdHlsZXM+Iik6d2VbMF0rIi8+In0oKEgu''@;'; + put 'put ''U3R5bGVzfHx7fSkuVGFibGV8fFtdLEguU3R5bGVzLkRYRik7cmV0dXJuIFhbWC5sZW5ndGhdPWZ1bmN0aW9uIHdFKEgscmUpe2lmKCFILmxlbmd0aClyZXR1cm4nPGR4ZnMgY291bnQ9IjAiLz4nO3ZhciBYPVsnPGR4ZnMgY291bnQ9IicrSC5sZW5ndGgrJyI+J107cmV0dXJuIEguZm9yRWFj''@;'; + put 'put ''aChmdW5jdGlvbih3ZSl7WC5wdXNoKGZ1bmN0aW9uIFA0KEgscmUpe3ZhciBYPXtib2xkOiJiIixpdGFsaWM6ImkiLHZhbGlnbjoidmVydEFsaWduIn0sd2U9WyI8ZHhmPiJdLHhlPVtdLEZlPVtdLFplPVtdLFllPVtdO2lmKG9uKEgpLmZvckVhY2goZnVuY3Rpb24oeHQpe3N3aXRjaCh4dCl7''@;'; + put 'put ''Y2FzZSJib2xkIjpjYXNlIml0YWxpYyI6Y2FzZSJzdHJpa2UiOmNhc2UidW5kZXJsaW5lIjpjYXNlImNvbG9yIjpjYXNlInZhbGlnbiI6Y2FzZSJzeiI6Y2FzZSJuYW1lIjpjYXNlIm91dGxpbmUiOmNhc2Uic2hhZG93IjpjYXNlImNoYXJzZXQiOmNhc2UiZmFtaWx5IjpjYXNlImNvbmRlbnNl''@;'; + put 'put ''IjpjYXNlImV4dGVuZCI6Y2FzZSJzY2hlbWUiOnhlLnB1c2goeHQpO2JyZWFrO2Nhc2UiYmdDb2xvciI6Y2FzZSJmZ0NvbG9yIjpaZS5wdXNoKHh0KTticmVhaztjYXNlInoiOkZlLnB1c2goeHQpO2JyZWFrO2Nhc2UidG9wIjpjYXNlImJvdHRvbSI6Y2FzZSJsZWZ0IjpjYXNlInJpZ2h0Ijpj''@;'; + put 'put ''YXNlImRpYWdvbmFsIjpjYXNlInZlcnRpY2FsIjpjYXNlImhvcml6b250YWwiOlllLnB1c2goeHQpO2JyZWFrO2Nhc2UicGF0dGVyblR5cGUiOmNhc2UiZGlhZ29uYWxEb3duIjpjYXNlImRpYWdvbmFsVXAiOmNhc2Uic3RvcHMiOmNhc2UiZGVncmVlIjpicmVhaztkZWZhdWx0OnRocm93IlVu''@;'; + put 'put ''cmVjb2duaXplZCAiK3h0KyIgaW4gRFhGIn19KSx4ZS5sZW5ndGg+MCYmKHdlLnB1c2goIjxmb250PiIpLHhlLmZvckVhY2goZnVuY3Rpb24oeHQpe3N3aXRjaCh4dCl7Y2FzZSJib2xkIjpjYXNlIml0YWxpYyI6Y2FzZSJzdHJpa2UiOmNhc2Uib3V0bGluZSI6Y2FzZSJzaGFkb3ciOmNhc2Ui''@;'; + put 'put ''Y29uZGVuc2UiOmNhc2UiZXh0ZW5kIjp3ZS5wdXNoKCI8IisoWFt4dF18fHh0KSsnIHZhbD0iJysoSFt4dF0/IjEiOiIwIikrJyIvPicpO2JyZWFrO2Nhc2UiY29sb3IiOndlLnB1c2goWHMoSFt4dF0seHQsITApKTticmVhaztjYXNlImZhbWlseSI6Y2FzZSJuYW1lIjpjYXNlInN6IjpjYXNl''@;'; + put 'put ''InNjaGVtZSI6d2UucHVzaCgiPCIrKFhbeHRdfHx4dCkrJyB2YWw9IicrSFt4dF0rJyIvPicpO2JyZWFrO2Nhc2UidW5kZXJsaW5lIjp3ZS5wdXNoKCc8dSB2YWw9IicrTDlbSFt4dF18fDBdKyciLz4nKTticmVhaztjYXNlInZhbGlnbiI6d2UucHVzaCgnPHZlcnRBbGlnbiB2YWw9IicrSC52''@;'; + put 'put ''YWxpZ24rKCJzdWIiPT1ILnZhbGlnbnx8InN1cGVyIj09SC52YWxpZ24/InNjcmlwdCI6IiIpKyciLz4nKTticmVhaztkZWZhdWx0OnRocm93IlVuc3VwcG9ydGVkICIreHQrIiA6IGZvbnQgRFhGIn19KSx3ZS5wdXNoKCI8L2ZvbnQ+IikpLEZlLmxlbmd0aD4wJiZ3ZS5wdXNoKCc8bnVtRm10''@;'; + put 'put ''IGZvcm1hdENvZGU9IicrUnIoSC56KSsnIiBudW1GbXRJZD0iJytmdW5jdGlvbiBoNShILHJlKXtpZigibnVtYmVyIj09dHlwZW9mIEgpcmV0dXJuIEg7dmFyIFg9cmUucmV2c3NmW251bGwhPUg/SDoiR2VuZXJhbCJdLHdlPTYwO2lmKG51bGw9PVgpZm9yKDt3ZTwzOTI7Kyt3ZSlpZihudWxs''@;'; + put 'put ''PT1yZS5zc2Zbd2VdKXJldHVybiBGLmxvYWQoSCx3ZSkscmUuc3NmW3dlXT1ILHJlLnJldnNzZltIXT13ZSx3ZTtyZXR1cm4gWH0oSC56LHJlKSsnIi8+JyksWmUubGVuZ3RoPjAmJih3ZS5wdXNoKCI8ZmlsbD4iKSx3ZS5wdXNoKCI8cGF0dGVybkZpbGwiKyhILnBhdHRlcm5UeXBlPycgcGF0''@;'; + put 'put ''dGVyblR5cGU9IicrSC5wYXR0ZXJuVHlwZSsnIj4nOiI+IikpLFplLmZvckVhY2goZnVuY3Rpb24oeHQpe3N3aXRjaCh4dCl7Y2FzZSJwYXR0ZXJuVHlwZSI6YnJlYWs7Y2FzZSJmZ0NvbG9yIjpjYXNlImJnQ29sb3IiOndlLnB1c2goWHMoSFt4dF0seHQsITApKTticmVhaztkZWZhdWx0OnRo''@;'; + put 'put ''cm93IlVuc3VwcG9ydGVkICIreHQrIiA6IGZpbGwgRFhGIn19KSx3ZS5wdXNoKCI8L3BhdHRlcm5GaWxsPiIpLHdlLnB1c2goIjwvZmlsbD4iKSksW10ubGVuZ3RoPjApdGhyb3ciVW5zdXBwb3J0ZWQgYWxpZ24gLSBEWEYiO2lmKFllLmxlbmd0aD4wPyh3ZS5wdXNoKFsiPGJvcmRlciIsbnVs''@;'; + put 'put ''bCE9SC5kaWFnb25hbERvd24/JyBkaWFnb25hbERvd249IicrICshIUguZGlhZ29uYWxEb3duKyciJzoiIixudWxsIT1ILmRpYWdvbmFsVXA/JyBkaWFnb25hbFVwPSInKyArISFILmRpYWdvbmFsVXArJyInOiIiLCI+Il0uam9pbigiIikpLFllLmZvckVhY2goZnVuY3Rpb24oeHQpe3dlLnB1''@;'; + put 'put ''c2goU2QoSFt4dF0seHQpKX0pLHdlLnB1c2goIjwvYm9yZGVyPiIpKToobnVsbCE9SC5kaWFnb25hbERvd258fG51bGwhPUguZGlhZ29uYWxVcCkmJndlLnB1c2goWyI8Ym9yZGVyIixudWxsIT1ILmRpYWdvbmFsRG93bj8nIGRpYWdvbmFsRG93bj0iJysgKyEhSC5kaWFnb25hbERvd24rJyIn''@;'; + put 'put ''OiIiLG51bGwhPUguZGlhZ29uYWxVcD8nIGRpYWdvbmFsVXA9IicrICshIUguZGlhZ29uYWxVcCsnIic6IiIsIi8+Il0uam9pbigiIikpLFtdLmxlbmd0aD4wKXRocm93IlVuc3VwcG9ydGVkIHByb3RlY3Rpb24gLSBEWEYiO3JldHVybiAxPT13ZS5sZW5ndGg/IjxkeGYvPiI6d2Uuam9pbigi''@;'; + put 'put ''IikrIjwvZHhmPiJ9KHdlLHJlKSl9KSxYLmpvaW4oIiIpKyI8L2R4ZnM+In0oSC5TdHlsZXMuRFhGLHJlKSxYW1gubGVuZ3RoXT14ZSxYLmxlbmd0aD4yJiYoWFtYLmxlbmd0aF09Ijwvc3R5bGVTaGVldD4iLFhbMV09WFsxXS5yZXBsYWNlKCIvPiIsIj4iKSksWC5qb2luKCIiKX1mdW5jdGlv''@;'; + put 'put ''biBRUihILHJlLFgpe1h8fChYPVJpKDYrNCpyZS5sZW5ndGgpKSxYLndyaXRlX3NoaWZ0KDIsSCksbHUocmUsWCk7dmFyIHdlPVgubGVuZ3RoPlgubD9YLnNsaWNlKDAsWC5sKTpYO3JldHVybiBudWxsPT1YLmwmJihYLmw9WC5sZW5ndGgpLHdlfWZ1bmN0aW9uIG5HKEgpe3JldHVybntjb2xv''@;'; + put 'put ''cjpVZyhIKSxwb3M6STIoSCl9fXB0LlNUWT0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL29mZmljZURvY3VtZW50LzIwMDYvcmVsYXRpb25zaGlwcy9zdHlsZXMiO3ZhciBKUj1bIm5vbmUiLCJzb2xpZCIsIm1lZGl1bUdyYXkiLCJkYXJrR3JheSIsImxpZ2h0R3JheSIsImRh''@;'; + put 'put ''cmtIb3Jpem9udGFsIiwiZGFya1ZlcnRpY2FsIiwiZGFya0Rvd24iLCJkYXJrVXAiLCJkYXJrR3JpZCIsImRhcmtUcmVsbGlzIiwibGlnaHRIb3Jpem9udGFsIiwibGlnaHRWZXJ0aWNhbCIsImxpZ2h0RG93biIsImxpZ2h0VXAiLCJsaWdodEdyaWQiLCJsaWdodFRyZWxsaXMiLCJncmF5MTI1''@;'; + put 'put ''IiwiZ3JheTA2MjUiXSxyRz10dChKUiksQjk9WyJnZW5lcmFsIiwibGVmdCIsImNlbnRlciIsInJpZ2h0IiwiZmlsbCIsImp1c3RpZnkiLCJjZW50ZXJDb250aW51b3VzIiwiZGlzdHJpYnV0ZWQiXSx5bT1bInRvcCIsImNlbnRlciIsImJvdHRvbSIsImp1c3RpZnkiLCJkaXN0cmlidXRlZCJd''@;'; + put 'put ''O2Z1bmN0aW9uIFA5KEgscmUsWCl7WHx8KFg9UmkoMTYpKSxYLndyaXRlX3NoaWZ0KDIscmV8fDApLFgud3JpdGVfc2hpZnQoMixILm51bUZtdElkfHwwKSxYLndyaXRlX3NoaWZ0KDIsSC5mb250SWR8fDApLFgud3JpdGVfc2hpZnQoMixILmZpbGxJZHx8MCksWC53cml0ZV9zaGlmdCgyLEgu''@;'; + put 'put ''Ym9yZGVySWR8fDApLFgud3JpdGVfc2hpZnQoMSxILmFsaWdubWVudCYmSC5hbGlnbm1lbnQudGV4dFJvdGF0aW9ufHwwKSxYLndyaXRlX3NoaWZ0KDEsSC5hbGlnbm1lbnQmJkguYWxpZ25tZW50LmluZGVudHx8MCk7dmFyIHdlPTAseGU9MDtpZihILmFsaWdubWVudCl7aWYoSC5hbGlnbm1l''@;'; + put 'put ''bnQuaG9yaXpvbnRhbCl7dmFyIEZlPUI5LmluZGV4T2YoSC5hbGlnbm1lbnQuaG9yaXpvbnRhbCk7RmU8MCYmKEZlPTApLHdlfD1GZX1pZihILmFsaWdubWVudC52ZXJ0aWNhbCl7dmFyIFplPXltLmluZGV4T2YoSC5hbGlnbm1lbnQudmVydGljYWwpO1plPDAmJihaZT0yKSx3ZXw9WmU8PDN9''@;'; + put 'put ''SC5hbGlnbm1lbnQud3JhcFRleHQmJih3ZXw9NjQpLEguYWxpZ25tZW50LnNocmlua1RvRml0JiYoeGV8PTEpfXJldHVybiBYLndyaXRlX3NoaWZ0KDEsd2UpLFgud3JpdGVfc2hpZnQoMSx4ZSksWC53cml0ZV9zaGlmdCgxLDApLFgud3JpdGVfc2hpZnQoMSwwKSxYfXZhciBUMz1bIm5vbmUi''@;'; + put 'put ''LCJ0aGluIiwibWVkaXVtIiwiZGFzaGVkIiwiZG90dGVkIiwidGhpY2siLCJkb3VibGUiLCJoYWlyIiwibWVkaXVtRGFzaGVkIiwiZGFzaERvdCIsIm1lZGl1bURhc2hEb3QiLCJkYXNoRG90RG90IiwibWVkaXVtRGFzaERvdERvdCIsInNsYW50RGFzaERvdCJdO2Z1bmN0aW9uIGc2KEgpe3Zh''@;'; + put 'put ''ciByZT1ILnJlYWRfc2hpZnQoMSk7SC5sKz0xO3ZhciBYPVVnKEgpO3JldHVybntzdHlsZTpUM1tyZV0sY29sb3I6WH19ZnVuY3Rpb24gbTYoSCxyZSl7cmV0dXJuIHJlfHwocmU9UmkoMTApKSxIJiZILnN0eWxlJiYiIiE9SC5zdHlsZSYmIm5vbmUiIT1ILnN0eWxlJiYtMSE9PVQzLmluZGV4''@;'; + put 'put ''T2YoSC5zdHlsZSk/KHJlLndyaXRlX3NoaWZ0KDEsVDMuaW5kZXhPZihILnN0eWxlKSkscmUud3JpdGVfc2hpZnQoMSwwKSxILmNvbG9yP2pmKEguY29sb3IscmUpOihyZS53cml0ZV9zaGlmdCg0LDApLHJlLndyaXRlX3NoaWZ0KDQsMCkpKToocmUud3JpdGVfc2hpZnQoMSwwKSxyZS53cml0''@;'; + put 'put ''ZV9zaGlmdCgxLDApLHJlLndyaXRlX3NoaWZ0KDQsMCkscmUud3JpdGVfc2hpZnQoNCwwKSkscmV9ZnVuY3Rpb24gdjYoSCxyZSl7cmV0dXJuIHJlfHwocmU9UmkoNTIpKSxyZS53cml0ZV9zaGlmdCg0LEgueGZJZCkscmUud3JpdGVfc2hpZnQoMiwxKSxyZS53cml0ZV9zaGlmdCgxLCtILmJ1''@;'; + put 'put ''aWx0aW5JZCkscmUud3JpdGVfc2hpZnQoMSwwKSxacChILm5hbWV8fCIiLHJlKSxyZS5sZW5ndGg+cmUubD9yZS5zbGljZSgwLHJlLmwpOnJlfWZ1bmN0aW9uIHdtKEgscmUpeyFyZXx8IXJlLnRoZW1lRWxlbWVudHN8fCFyZS50aGVtZUVsZW1lbnRzLmNsclNjaGVtZXx8bnVsbCE9SC50aGVt''@;'; + put 'put ''ZSYmKEgucmdiPVE4KHJlLnRoZW1lRWxlbWVudHMuY2xyU2NoZW1lW0gudGhlbWVdLnJnYixILnRpbnR8fDApKX1mdW5jdGlvbiBrRShILHJlKXt2YXIgWD1KMigpO3JldHVybiBDMChYLCJCcnRCZWdpblN0eWxlU2hlZXQiKSxmdW5jdGlvbiBNYihILHJlKXtpZihyZSl7dmFyIFg9MDtbWzUs''@;'; + put 'put ''OF0sWzIzLDI2XSxbNDEsNDRdLFs1MCwzOTJdXS5mb3JFYWNoKGZ1bmN0aW9uKHdlKXtmb3IodmFyIHhlPXdlWzBdO3hlPD13ZVsxXTsrK3hlKW51bGwhPXJlW3hlXSYmKytYfSksMCE9WCYmKEMwKEgsIkJydEJlZ2luRm10cyIsJGwoWCkpLFtbNSw4XSxbMjMsMjZdLFs0MSw0NF0sWzUwLDM5''@;'; + put 'put ''Ml1dLmZvckVhY2goZnVuY3Rpb24od2Upe2Zvcih2YXIgeGU9d2VbMF07eGU8PXdlWzFdOysreGUpbnVsbCE9cmVbeGVdJiZDMChILCJCcnRGbXQiLFFSKHhlLHJlW3hlXSkpfSksQzAoSCwiQnJ0RW5kRm10cyIpKX19KFgsSC5TU0YpLGZ1bmN0aW9uIF9FKEgscmUpe3ZhciBYPXJlLmxlbmd0''@;'; + put 'put ''aDswIT1YJiYoQzAoSCwiQnJ0QmVnaW5Gb250cyIsJGwoWCkpLHJlLmZvckVhY2goZnVuY3Rpb24od2Upe0MwKEgsIkJydEZvbnQiLGZ1bmN0aW9uIEFtKEgscmUpe3JlfHwocmU9UmkoMTUzKSkscmUud3JpdGVfc2hpZnQoMiwyMCpILnN6KSxmdW5jdGlvbiBEMihILHJlKXtyZXx8KHJlPVJp''@;'; + put 'put ''KDIpKSxyZS53cml0ZV9zaGlmdCgxLChILml0YWxpYz8yOjApfChILnN0cmlrZT84OjApfChILm91dGxpbmU/MTY6MCl8KEguc2hhZG93PzMyOjApfChILmNvbmRlbnNlPzY0OjApfChILmV4dGVuZD8xMjg6MCkpLHJlLndyaXRlX3NoaWZ0KDEsMCl9KEgscmUpLHJlLndyaXRlX3NoaWZ0KDIs''@;'; + put 'put ''SC5ib2xkPzcwMDo0MDApO3ZhciBYPTA7InN1cGVyIj09SC52YWxpZ24/WD0xOiJzdWIiPT1ILnZhbGlnbiYmKFg9MikscmUud3JpdGVfc2hpZnQoMixYKSxyZS53cml0ZV9zaGlmdCgxLEgudW5kZXJsaW5lfHwwKSxyZS53cml0ZV9zaGlmdCgxLEguZmFtaWx5fHwwKSxyZS53cml0ZV9zaGlm''@;'; + put 'put ''dCgxLEguY2hhcnNldHx8MCkscmUud3JpdGVfc2hpZnQoMSwwKSxqZihILmNvbG9yLHJlKTt2YXIgd2U9MDtyZXR1cm4ibWFqb3IiPT1ILnNjaGVtZSYmKHdlPTEpLCJtaW5vciI9PUguc2NoZW1lJiYod2U9MikscmUud3JpdGVfc2hpZnQoMSx3ZSksbHUoSC5uYW1lLHJlKSxyZS5sZW5ndGg+''@;'; + put 'put ''cmUubD9yZS5zbGljZSgwLHJlLmwpOnJlfSh3ZSkpfSksQzAoSCwiQnJ0RW5kRm9udHMiKSl9KFgsKEguU3R5bGVzfHx7fSkuRm9udHN8fFtdKSxmdW5jdGlvbiBDRShILHJlKXt2YXIgWD1yZS5sZW5ndGg7MCE9WCYmKEMwKEgsIkJydEJlZ2luRmlsbHMiLCRsKFgpKSxyZS5mb3JFYWNoKGZ1''@;'; + put 'put ''bmN0aW9uKHdlKXtDMChILCJCcnRGaWxsIixmdW5jdGlvbiBpRyhILHJlKXtyZXx8KHJlPVJpKDg0KSk7dmFyIFg9ckdbSC5wYXR0ZXJuVHlwZV07bnVsbD09WCYmKFg9NDApLHJlLndyaXRlX3NoaWZ0KDQsWD0rWCk7dmFyIHdlPTA7aWYoNDAhPVgpZm9yKGpmKEguZmdDb2xvcnx8e2luZGV4''@;'; + put 'put ''OjY0fSxyZSksamYoSC5iZ0NvbG9yfHx7aW5kZXg6NjV9LHJlKTt3ZTwxMjsrK3dlKXJlLndyaXRlX3NoaWZ0KDQsMCk7ZWxzZXtmb3IoO3dlPDQ7Kyt3ZSlyZS53cml0ZV9zaGlmdCg0LDApO2Zvcig7d2U8MTI7Kyt3ZSlyZS53cml0ZV9zaGlmdCg0LDApfXJldHVybiByZS5sZW5ndGg+cmUu''@;'; + put 'put ''bD9yZS5zbGljZSgwLHJlLmwpOnJlfSh3ZSkpfSksQzAoSCwiQnJ0RW5kRmlsbHMiKSl9KFgsKEguU3R5bGVzfHx7fSkuRmlsbHN8fFtdKSxmdW5jdGlvbiBxUihILHJlKXt2YXIgWD1yZS5sZW5ndGg7MCE9WCYmKEMwKEgsIkJydEJlZ2luQm9yZGVycyIsJGwoWCkpLHJlLmZvckVhY2goZnVu''@;'; + put 'put ''Y3Rpb24od2Upe0MwKEgsIkJydEJvcmRlciIsZnVuY3Rpb24gU2IoSCxyZSl7cmV0dXJuIHJlfHwocmU9UmkoNTEpKSxyZS53cml0ZV9zaGlmdCgxLDApLG02KEgudG9wLHJlKSxtNihILmJvdHRvbSxyZSksbTYoSC5sZWZ0LHJlKSxtNihILnJpZ2h0LHJlKSxtNihudWxsLHJlKSxyZS5sZW5n''@;'; + put 'put ''dGg+cmUubD9yZS5zbGljZSgwLHJlLmwpOnJlfSh3ZSkpfSksQzAoSCwiQnJ0RW5kQm9yZGVycyIpKX0oWCwoSC5TdHlsZXN8fHt9KS5Cb3JkZXJzfHxbXSksZnVuY3Rpb24gZUIoSCxyZSl7dmFyIFg9MTtpZihyZSYmKFg9cmUubGVuZ3RoKSxDMChILCJCcnRCZWdpbkNlbGxTdHlsZVhGcyIs''@;'; + put 'put ''JGwoWCkpLEMwKEgsIkJydFhGIixQOSh7bnVtRm10SWQ6MCxmb250SWQ6MCxmaWxsSWQ6MCxib3JkZXJJZDowfSw2NTUzNSkpLHJlKWZvcih2YXIgd2U9MTt3ZTxyZS5sZW5ndGg7Kyt3ZSlDMChILCJCcnRYRiIsUDkoe251bUZtdElkOnJlW3dlXS5udW1GbXRJZHx8MCxmb250SWQ6cmVbd2Vd''@;'; + put 'put ''LmZvbnRJZHx8MCxmaWxsSWQ6cmVbd2VdLmZpbGxJZHx8MCxib3JkZXJJZDpyZVt3ZV0uYm9yZGVySWR8fDB9LDY1NTM1KSk7QzAoSCwiQnJ0RW5kQ2VsbFN0eWxlWEZzIil9KFgscmUuY2VsbFN0eWxlWGZzKSxmdW5jdGlvbiBFYihILHJlKXtDMChILCJCcnRCZWdpbkNlbGxYRnMiLCRsKHJl''@;'; + put 'put ''Lmxlbmd0aCkpLHJlLmZvckVhY2goZnVuY3Rpb24oWCl7QzAoSCwiQnJ0WEYiLFA5KFgsMCkpfSksQzAoSCwiQnJ0RW5kQ2VsbFhGcyIpfShYLHJlLmNlbGxYZnMpLGZ1bmN0aW9uIHRCKEgscmUpe3ZhciBYPTE7aWYocmUmJihYPXJlLmxlbmd0aCksQzAoSCwiQnJ0QmVnaW5TdHlsZXMiLCRs''@;'; + put 'put ''KFgpKSxDMChILCJCcnRTdHlsZSIsdjYoe3hmSWQ6MCxidWlsdGluSWQ6MCxuYW1lOiJOb3JtYWwifSkpLHJlKWZvcih2YXIgd2U9MTt3ZTxyZS5sZW5ndGg7Kyt3ZSlDMChILCJCcnRTdHlsZSIsdjYoe3hmSWQ6d2UsYnVpbHRpbklkOjAsbmFtZTpyZVt3ZV0ubmFtZX0pKTtDMChILCJCcnRF''@;'; + put 'put ''bmRTdHlsZXMiKX0oWCxyZS5jZWxsU3R5bGVYZnMpLGZ1bmN0aW9uIG5CKEgpe0MwKEgsIkJydEJlZ2luRFhGcyIsJGwoMCkpLEMwKEgsIkJydEVuZERYRnMiKX0oWCksZnVuY3Rpb24gckIoSCl7QzAoSCwiQnJ0QmVnaW5UYWJsZVN0eWxlcyIsZnVuY3Rpb24gJFIoSCxyZSxYKXt2YXIgd2U9''@;'; + put 'put ''UmkoMjA1Mik7cmV0dXJuIHdlLndyaXRlX3NoaWZ0KDQsSCksWnAocmUsd2UpLFpwKFgsd2UpLHdlLmxlbmd0aD53ZS5sP3dlLnNsaWNlKDAsd2UubCk6d2V9KDAsIlRhYmxlU3R5bGVNZWRpdW05IiwiUGl2b3RTdHlsZU1lZGl1bTQiKSksQzAoSCwiQnJ0RW5kVGFibGVTdHlsZXMiKX0oWCks''@;'; + put 'put ''QzAoWCwiQnJ0RW5kU3R5bGVTaGVldCIpLFguZW5kKCl9cHQuVEhFTUU9Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L3JlbGF0aW9uc2hpcHMvdGhlbWUiO3ZhciBvQj1bIjwvYTpsdDE+IiwiPC9hOmRrMT4iLCI8L2E6bHQyPiIsIjwvYTpk''@;'; + put 'put ''azI+IiwiPC9hOmFjY2VudDE+IiwiPC9hOmFjY2VudDI+IiwiPC9hOmFjY2VudDM+IiwiPC9hOmFjY2VudDQ+IiwiPC9hOmFjY2VudDU+IiwiPC9hOmFjY2VudDY+IiwiPC9hOmhsaW5rPiIsIjwvYTpmb2xIbGluaz4iXTtmdW5jdGlvbiBiYyhILHJlLFgpe3JlLnRoZW1lRWxlbWVudHMuY2xy''@;'; + put 'put ''U2NoZW1lPVtdO3ZhciB3ZT17fTsoSFswXS5tYXRjaChHdCl8fFtdKS5mb3JFYWNoKGZ1bmN0aW9uKHhlKXt2YXIgRmU9ZW4oeGUpO3N3aXRjaChGZVswXSl7Y2FzZSI8YTpjbHJTY2hlbWUiOmNhc2UiPC9hOmNsclNjaGVtZT4iOmNhc2UiPC9hOnNyZ2JDbHI+IjpjYXNlIjwvYTpzeXNDbHI+''@;'; + put 'put ''IjpicmVhaztjYXNlIjxhOnNyZ2JDbHIiOndlLnJnYj1GZS52YWw7YnJlYWs7Y2FzZSI8YTpzeXNDbHIiOndlLnJnYj1GZS5sYXN0Q2xyO2JyZWFrO2Nhc2UiPGE6ZGsxPiI6Y2FzZSI8L2E6ZGsxPiI6Y2FzZSI8YTpsdDE+IjpjYXNlIjwvYTpsdDE+IjpjYXNlIjxhOmRrMj4iOmNhc2UiPC9h''@;'; + put 'put ''OmRrMj4iOmNhc2UiPGE6bHQyPiI6Y2FzZSI8L2E6bHQyPiI6Y2FzZSI8YTphY2NlbnQxPiI6Y2FzZSI8L2E6YWNjZW50MT4iOmNhc2UiPGE6YWNjZW50Mj4iOmNhc2UiPC9hOmFjY2VudDI+IjpjYXNlIjxhOmFjY2VudDM+IjpjYXNlIjwvYTphY2NlbnQzPiI6Y2FzZSI8YTphY2NlbnQ0PiI6''@;'; + put 'put ''Y2FzZSI8L2E6YWNjZW50ND4iOmNhc2UiPGE6YWNjZW50NT4iOmNhc2UiPC9hOmFjY2VudDU+IjpjYXNlIjxhOmFjY2VudDY+IjpjYXNlIjwvYTphY2NlbnQ2PiI6Y2FzZSI8YTpobGluaz4iOmNhc2UiPC9hOmhsaW5rPiI6Y2FzZSI8YTpmb2xIbGluaz4iOmNhc2UiPC9hOmZvbEhsaW5rPiI6''@;'; + put 'put ''Ii8iPT09RmVbMF0uY2hhckF0KDEpPyhyZS50aGVtZUVsZW1lbnRzLmNsclNjaGVtZVtvQi5pbmRleE9mKEZlWzBdKV09d2Usd2U9e30pOndlLm5hbWU9RmVbMF0uc2xpY2UoMyxGZVswXS5sZW5ndGgtMSk7YnJlYWs7ZGVmYXVsdDppZihYJiZYLldURil0aHJvdyBuZXcgRXJyb3IoIlVucmVj''@;'; + put 'put ''b2duaXplZCAiK0ZlWzBdKyIgaW4gY2xyU2NoZW1lIil9fSl9ZnVuY3Rpb24geGIoKXt9ZnVuY3Rpb24gU0UoKXt9dmFyIFRiPS88YTpjbHJTY2hlbWUoW14+XSopPltcc1xTXSo8XC9hOmNsclNjaGVtZT4vLHF1PS88YTpmb250U2NoZW1lKFtePl0qKT5bXHNcU10qPFwvYTpmb250U2NoZW1l''@;'; + put 'put ''Pi8sYm09LzxhOmZtdFNjaGVtZShbXj5dKik+W1xzXFNdKjxcL2E6Zm10U2NoZW1lPi8sRGI9LzxhOnRoZW1lRWxlbWVudHMoW14+XSopPltcc1xTXSo8XC9hOnRoZW1lRWxlbWVudHM+LztmdW5jdGlvbiBGOShILHJlKXtpZighSHx8MD09PUgubGVuZ3RoKXJldHVybiBGOShIOSgpKTt2YXIg''@;'; + put 'put ''WCx3ZT17fTtpZighKFg9SC5tYXRjaChEYikpKXRocm93IG5ldyBFcnJvcigidGhlbWVFbGVtZW50cyBub3QgZm91bmQgaW4gdGhlbWUiKTtyZXR1cm4gZnVuY3Rpb24gSWIoSCxyZSxYKXt2YXIgd2U7cmUudGhlbWVFbGVtZW50cz17fSxbWyJjbHJTY2hlbWUiLFRiLGJjXSxbImZvbnRTY2hl''@;'; + put 'put ''bWUiLHF1LHhiXSxbImZtdFNjaGVtZSIsYm0sU0VdXS5mb3JFYWNoKGZ1bmN0aW9uKHhlKXtpZighKHdlPUgubWF0Y2goeGVbMV0pKSl0aHJvdyBuZXcgRXJyb3IoeGVbMF0rIiBub3QgZm91bmQgaW4gdGhlbWVFbGVtZW50cyIpO3hlWzJdKHdlLHJlLFgpfSl9KFhbMF0sd2UscmUpLHdlLnJh''@;'; + put 'put ''dz1ILHdlfWZ1bmN0aW9uIEg5KEgscmUpe2lmKHJlJiZyZS50aGVtZVhMU1gpcmV0dXJuIHJlLnRoZW1lWExTWDtpZihIJiYic3RyaW5nIj09dHlwZW9mIEgucmF3KXJldHVybiBILnJhdzt2YXIgWD1bY25dO3JldHVybiBYW1gubGVuZ3RoXT0nPGE6dGhlbWUgeG1sbnM6YT0iaHR0cDovL3Nj''@;'; + put 'put ''aGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL2RyYXdpbmdtbC8yMDA2L21haW4iIG5hbWU9Ik9mZmljZSBUaGVtZSI+JyxYW1gubGVuZ3RoXT0iPGE6dGhlbWVFbGVtZW50cz4iLFhbWC5sZW5ndGhdPSc8YTpjbHJTY2hlbWUgbmFtZT0iT2ZmaWNlIj4nLFhbWC5sZW5ndGhdPSc8YTpkazE+PGE6''@;'; + put 'put ''c3lzQ2xyIHZhbD0id2luZG93VGV4dCIgbGFzdENscj0iMDAwMDAwIi8+PC9hOmRrMT4nLFhbWC5sZW5ndGhdPSc8YTpsdDE+PGE6c3lzQ2xyIHZhbD0id2luZG93IiBsYXN0Q2xyPSJGRkZGRkYiLz48L2E6bHQxPicsWFtYLmxlbmd0aF09JzxhOmRrMj48YTpzcmdiQ2xyIHZhbD0iMUY0OTdE''@;'; + put 'put ''Ii8+PC9hOmRrMj4nLFhbWC5sZW5ndGhdPSc8YTpsdDI+PGE6c3JnYkNsciB2YWw9IkVFRUNFMSIvPjwvYTpsdDI+JyxYW1gubGVuZ3RoXT0nPGE6YWNjZW50MT48YTpzcmdiQ2xyIHZhbD0iNEY4MUJEIi8+PC9hOmFjY2VudDE+JyxYW1gubGVuZ3RoXT0nPGE6YWNjZW50Mj48YTpzcmdiQ2xy''@;'; + put 'put ''IHZhbD0iQzA1MDREIi8+PC9hOmFjY2VudDI+JyxYW1gubGVuZ3RoXT0nPGE6YWNjZW50Mz48YTpzcmdiQ2xyIHZhbD0iOUJCQjU5Ii8+PC9hOmFjY2VudDM+JyxYW1gubGVuZ3RoXT0nPGE6YWNjZW50ND48YTpzcmdiQ2xyIHZhbD0iODA2NEEyIi8+PC9hOmFjY2VudDQ+JyxYW1gubGVuZ3Ro''@;'; + put 'put ''XT0nPGE6YWNjZW50NT48YTpzcmdiQ2xyIHZhbD0iNEJBQ0M2Ii8+PC9hOmFjY2VudDU+JyxYW1gubGVuZ3RoXT0nPGE6YWNjZW50Nj48YTpzcmdiQ2xyIHZhbD0iRjc5NjQ2Ii8+PC9hOmFjY2VudDY+JyxYW1gubGVuZ3RoXT0nPGE6aGxpbms+PGE6c3JnYkNsciB2YWw9IjAwMDBGRiIvPjwv''@;'; + put 'put ''YTpobGluaz4nLFhbWC5sZW5ndGhdPSc8YTpmb2xIbGluaz48YTpzcmdiQ2xyIHZhbD0iODAwMDgwIi8+PC9hOmZvbEhsaW5rPicsWFtYLmxlbmd0aF09IjwvYTpjbHJTY2hlbWU+IixYW1gubGVuZ3RoXT0nPGE6Zm9udFNjaGVtZSBuYW1lPSJPZmZpY2UiPicsWFtYLmxlbmd0aF09IjxhOm1h''@;'; + put 'put ''am9yRm9udD4iLFhbWC5sZW5ndGhdPSc8YTpsYXRpbiB0eXBlZmFjZT0iQ2FtYnJpYSIvPicsWFtYLmxlbmd0aF09JzxhOmVhIHR5cGVmYWNlPSIiLz4nLFhbWC5sZW5ndGhdPSc8YTpjcyB0eXBlZmFjZT0iIi8+JyxYW1gubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9IkpwYW4iIHR5cGVmYWNl''@;'; + put 'put ''PSJcdWZmMmRcdWZmMzMgXHVmZjMwXHUzMGI0XHUzMGI3XHUzMGMzXHUzMGFmIi8+JyxYW1gubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9IkhhbmciIHR5cGVmYWNlPSJcdWI5ZDFcdWM3NDAgXHVhY2UwXHViNTE1Ii8+JyxYW1gubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9IkhhbnMiIHR5cGVm''@;'; + put 'put ''YWNlPSJcdTViOGJcdTRmNTMiLz4nLFhbWC5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iSGFudCIgdHlwZWZhY2U9Ilx1NjViMFx1N2QzMFx1NjYwZVx1OWFkNCIvPicsWFtYLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJBcmFiIiB0eXBlZmFjZT0iVGltZXMgTmV3IFJvbWFuIi8+JyxYW1gu''@;'; + put 'put ''bGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9IkhlYnIiIHR5cGVmYWNlPSJUaW1lcyBOZXcgUm9tYW4iLz4nLFhbWC5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iVGhhaSIgdHlwZWZhY2U9IlRhaG9tYSIvPicsWFtYLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJFdGhpIiB0eXBlZmFjZT0iTnlh''@;'; + put 'put ''bGEiLz4nLFhbWC5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iQmVuZyIgdHlwZWZhY2U9IlZyaW5kYSIvPicsWFtYLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJHdWpyIiB0eXBlZmFjZT0iU2hydXRpIi8+JyxYW1gubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9IktobXIiIHR5cGVmYWNlPSJN''@;'; + put 'put ''b29sQm9yYW4iLz4nLFhbWC5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iS25kYSIgdHlwZWZhY2U9IlR1bmdhIi8+JyxYW1gubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9Ikd1cnUiIHR5cGVmYWNlPSJSYWF2aSIvPicsWFtYLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJDYW5zIiB0eXBlZmFj''@;'; + put 'put ''ZT0iRXVwaGVtaWEiLz4nLFhbWC5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iQ2hlciIgdHlwZWZhY2U9IlBsYW50YWdlbmV0IENoZXJva2VlIi8+JyxYW1gubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9IllpaWkiIHR5cGVmYWNlPSJNaWNyb3NvZnQgWWkgQmFpdGkiLz4nLFhbWC5sZW5ndGhd''@;'; + put 'put ''PSc8YTpmb250IHNjcmlwdD0iVGlidCIgdHlwZWZhY2U9Ik1pY3Jvc29mdCBIaW1hbGF5YSIvPicsWFtYLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJUaGFhIiB0eXBlZmFjZT0iTVYgQm9saSIvPicsWFtYLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJEZXZhIiB0eXBlZmFjZT0iTWFuZ2Fs''@;'; + put 'put ''Ii8+JyxYW1gubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9IlRlbHUiIHR5cGVmYWNlPSJHYXV0YW1pIi8+JyxYW1gubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9IlRhbWwiIHR5cGVmYWNlPSJMYXRoYSIvPicsWFtYLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJTeXJjIiB0eXBlZmFjZT0iRXN0''@;'; + put 'put ''cmFuZ2VsbyBFZGVzc2EiLz4nLFhbWC5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iT3J5YSIgdHlwZWZhY2U9IkthbGluZ2EiLz4nLFhbWC5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iTWx5bSIgdHlwZWZhY2U9IkthcnRpa2EiLz4nLFhbWC5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iTGFv''@;'; + put 'put ''byIgdHlwZWZhY2U9IkRva0NoYW1wYSIvPicsWFtYLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJTaW5oIiB0eXBlZmFjZT0iSXNrb29sYSBQb3RhIi8+JyxYW1gubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9Ik1vbmciIHR5cGVmYWNlPSJNb25nb2xpYW4gQmFpdGkiLz4nLFhbWC5sZW5ndGhd''@;'; + put 'put ''PSc8YTpmb250IHNjcmlwdD0iVmlldCIgdHlwZWZhY2U9IlRpbWVzIE5ldyBSb21hbiIvPicsWFtYLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJVaWdoIiB0eXBlZmFjZT0iTWljcm9zb2Z0IFVpZ2h1ciIvPicsWFtYLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJHZW9yIiB0eXBlZmFjZT0i''@;'; + put 'put ''U3lsZmFlbiIvPicsWFtYLmxlbmd0aF09IjwvYTptYWpvckZvbnQ+IixYW1gubGVuZ3RoXT0iPGE6bWlub3JGb250PiIsWFtYLmxlbmd0aF09JzxhOmxhdGluIHR5cGVmYWNlPSJDYWxpYnJpIi8+JyxYW1gubGVuZ3RoXT0nPGE6ZWEgdHlwZWZhY2U9IiIvPicsWFtYLmxlbmd0aF09JzxhOmNz''@;'; + put 'put ''IHR5cGVmYWNlPSIiLz4nLFhbWC5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iSnBhbiIgdHlwZWZhY2U9Ilx1ZmYyZFx1ZmYzMyBcdWZmMzBcdTMwYjRcdTMwYjdcdTMwYzNcdTMwYWYiLz4nLFhbWC5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iSGFuZyIgdHlwZWZhY2U9Ilx1YjlkMVx1Yzc0''@;'; + put 'put ''MCBcdWFjZTBcdWI1MTUiLz4nLFhbWC5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iSGFucyIgdHlwZWZhY2U9Ilx1NWI4Ylx1NGY1MyIvPicsWFtYLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJIYW50IiB0eXBlZmFjZT0iXHU2NWIwXHU3ZDMwXHU2NjBlXHU5YWQ0Ii8+JyxYW1gubGVuZ3Ro''@;'; + put 'put ''XT0nPGE6Zm9udCBzY3JpcHQ9IkFyYWIiIHR5cGVmYWNlPSJBcmlhbCIvPicsWFtYLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJIZWJyIiB0eXBlZmFjZT0iQXJpYWwiLz4nLFhbWC5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iVGhhaSIgdHlwZWZhY2U9IlRhaG9tYSIvPicsWFtYLmxlbmd0''@;'; + put 'put ''aF09JzxhOmZvbnQgc2NyaXB0PSJFdGhpIiB0eXBlZmFjZT0iTnlhbGEiLz4nLFhbWC5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iQmVuZyIgdHlwZWZhY2U9IlZyaW5kYSIvPicsWFtYLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJHdWpyIiB0eXBlZmFjZT0iU2hydXRpIi8+JyxYW1gubGVu''@;'; + put 'put ''Z3RoXT0nPGE6Zm9udCBzY3JpcHQ9IktobXIiIHR5cGVmYWNlPSJEYXVuUGVuaCIvPicsWFtYLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJLbmRhIiB0eXBlZmFjZT0iVHVuZ2EiLz4nLFhbWC5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iR3VydSIgdHlwZWZhY2U9IlJhYXZpIi8+JyxYW1gu''@;'; + put 'put ''bGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9IkNhbnMiIHR5cGVmYWNlPSJFdXBoZW1pYSIvPicsWFtYLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJDaGVyIiB0eXBlZmFjZT0iUGxhbnRhZ2VuZXQgQ2hlcm9rZWUiLz4nLFhbWC5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iWWlpaSIgdHlwZWZh''@;'; + put 'put ''Y2U9Ik1pY3Jvc29mdCBZaSBCYWl0aSIvPicsWFtYLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJUaWJ0IiB0eXBlZmFjZT0iTWljcm9zb2Z0IEhpbWFsYXlhIi8+JyxYW1gubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9IlRoYWEiIHR5cGVmYWNlPSJNViBCb2xpIi8+JyxYW1gubGVuZ3RoXT0n''@;'; + put 'put ''PGE6Zm9udCBzY3JpcHQ9IkRldmEiIHR5cGVmYWNlPSJNYW5nYWwiLz4nLFhbWC5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iVGVsdSIgdHlwZWZhY2U9IkdhdXRhbWkiLz4nLFhbWC5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iVGFtbCIgdHlwZWZhY2U9IkxhdGhhIi8+JyxYW1gubGVuZ3Ro''@;'; + put 'put ''XT0nPGE6Zm9udCBzY3JpcHQ9IlN5cmMiIHR5cGVmYWNlPSJFc3RyYW5nZWxvIEVkZXNzYSIvPicsWFtYLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJPcnlhIiB0eXBlZmFjZT0iS2FsaW5nYSIvPicsWFtYLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJNbHltIiB0eXBlZmFjZT0iS2FydGlr''@;'; + put 'put ''YSIvPicsWFtYLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJMYW9vIiB0eXBlZmFjZT0iRG9rQ2hhbXBhIi8+JyxYW1gubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9IlNpbmgiIHR5cGVmYWNlPSJJc2tvb2xhIFBvdGEiLz4nLFhbWC5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iTW9uZyIgdHlw''@;'; + put 'put ''ZWZhY2U9Ik1vbmdvbGlhbiBCYWl0aSIvPicsWFtYLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJWaWV0IiB0eXBlZmFjZT0iQXJpYWwiLz4nLFhbWC5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iVWlnaCIgdHlwZWZhY2U9Ik1pY3Jvc29mdCBVaWdodXIiLz4nLFhbWC5sZW5ndGhdPSc8YTpm''@;'; + put 'put ''b250IHNjcmlwdD0iR2VvciIgdHlwZWZhY2U9IlN5bGZhZW4iLz4nLFhbWC5sZW5ndGhdPSI8L2E6bWlub3JGb250PiIsWFtYLmxlbmd0aF09IjwvYTpmb250U2NoZW1lPiIsWFtYLmxlbmd0aF09JzxhOmZtdFNjaGVtZSBuYW1lPSJPZmZpY2UiPicsWFtYLmxlbmd0aF09IjxhOmZpbGxTdHls''@;'; + put 'put ''ZUxzdD4iLFhbWC5sZW5ndGhdPSc8YTpzb2xpZEZpbGw+PGE6c2NoZW1lQ2xyIHZhbD0icGhDbHIiLz48L2E6c29saWRGaWxsPicsWFtYLmxlbmd0aF09JzxhOmdyYWRGaWxsIHJvdFdpdGhTaGFwZT0iMSI+JyxYW1gubGVuZ3RoXT0iPGE6Z3NMc3Q+IixYW1gubGVuZ3RoXT0nPGE6Z3MgcG9z''@;'; + put 'put ''PSIwIj48YTpzY2hlbWVDbHIgdmFsPSJwaENsciI+PGE6dGludCB2YWw9IjUwMDAwIi8+PGE6c2F0TW9kIHZhbD0iMzAwMDAwIi8+PC9hOnNjaGVtZUNscj48L2E6Z3M+JyxYW1gubGVuZ3RoXT0nPGE6Z3MgcG9zPSIzNTAwMCI+PGE6c2NoZW1lQ2xyIHZhbD0icGhDbHIiPjxhOnRpbnQgdmFs''@;'; + put 'put ''PSIzNzAwMCIvPjxhOnNhdE1vZCB2YWw9IjMwMDAwMCIvPjwvYTpzY2hlbWVDbHI+PC9hOmdzPicsWFtYLmxlbmd0aF09JzxhOmdzIHBvcz0iMTAwMDAwIj48YTpzY2hlbWVDbHIgdmFsPSJwaENsciI+PGE6dGludCB2YWw9IjE1MDAwIi8+PGE6c2F0TW9kIHZhbD0iMzUwMDAwIi8+PC9hOnNj''@;'; + put 'put ''aGVtZUNscj48L2E6Z3M+JyxYW1gubGVuZ3RoXT0iPC9hOmdzTHN0PiIsWFtYLmxlbmd0aF09JzxhOmxpbiBhbmc9IjE2MjAwMDAwIiBzY2FsZWQ9IjEiLz4nLFhbWC5sZW5ndGhdPSI8L2E6Z3JhZEZpbGw+IixYW1gubGVuZ3RoXT0nPGE6Z3JhZEZpbGwgcm90V2l0aFNoYXBlPSIxIj4nLFhb''@;'; + put 'put ''WC5sZW5ndGhdPSI8YTpnc0xzdD4iLFhbWC5sZW5ndGhdPSc8YTpncyBwb3M9IjAiPjxhOnNjaGVtZUNsciB2YWw9InBoQ2xyIj48YTp0aW50IHZhbD0iMTAwMDAwIi8+PGE6c2hhZGUgdmFsPSIxMDAwMDAiLz48YTpzYXRNb2QgdmFsPSIxMzAwMDAiLz48L2E6c2NoZW1lQ2xyPjwvYTpncz4n''@;'; + put 'put ''LFhbWC5sZW5ndGhdPSc8YTpncyBwb3M9IjEwMDAwMCI+PGE6c2NoZW1lQ2xyIHZhbD0icGhDbHIiPjxhOnRpbnQgdmFsPSI1MDAwMCIvPjxhOnNoYWRlIHZhbD0iMTAwMDAwIi8+PGE6c2F0TW9kIHZhbD0iMzUwMDAwIi8+PC9hOnNjaGVtZUNscj48L2E6Z3M+JyxYW1gubGVuZ3RoXT0iPC9h''@;'; + put 'put ''OmdzTHN0PiIsWFtYLmxlbmd0aF09JzxhOmxpbiBhbmc9IjE2MjAwMDAwIiBzY2FsZWQ9IjAiLz4nLFhbWC5sZW5ndGhdPSI8L2E6Z3JhZEZpbGw+IixYW1gubGVuZ3RoXT0iPC9hOmZpbGxTdHlsZUxzdD4iLFhbWC5sZW5ndGhdPSI8YTpsblN0eWxlTHN0PiIsWFtYLmxlbmd0aF09JzxhOmxu''@;'; + put 'put ''IHc9Ijk1MjUiIGNhcD0iZmxhdCIgY21wZD0ic25nIiBhbGduPSJjdHIiPjxhOnNvbGlkRmlsbD48YTpzY2hlbWVDbHIgdmFsPSJwaENsciI+PGE6c2hhZGUgdmFsPSI5NTAwMCIvPjxhOnNhdE1vZCB2YWw9IjEwNTAwMCIvPjwvYTpzY2hlbWVDbHI+PC9hOnNvbGlkRmlsbD48YTpwcnN0RGFz''@;'; + put 'put ''aCB2YWw9InNvbGlkIi8+PC9hOmxuPicsWFtYLmxlbmd0aF09JzxhOmxuIHc9IjI1NDAwIiBjYXA9ImZsYXQiIGNtcGQ9InNuZyIgYWxnbj0iY3RyIj48YTpzb2xpZEZpbGw+PGE6c2NoZW1lQ2xyIHZhbD0icGhDbHIiLz48L2E6c29saWRGaWxsPjxhOnByc3REYXNoIHZhbD0ic29saWQiLz48''@;'; + put 'put ''L2E6bG4+JyxYW1gubGVuZ3RoXT0nPGE6bG4gdz0iMzgxMDAiIGNhcD0iZmxhdCIgY21wZD0ic25nIiBhbGduPSJjdHIiPjxhOnNvbGlkRmlsbD48YTpzY2hlbWVDbHIgdmFsPSJwaENsciIvPjwvYTpzb2xpZEZpbGw+PGE6cHJzdERhc2ggdmFsPSJzb2xpZCIvPjwvYTpsbj4nLFhbWC5sZW5n''@;'; + put 'put ''dGhdPSI8L2E6bG5TdHlsZUxzdD4iLFhbWC5sZW5ndGhdPSI8YTplZmZlY3RTdHlsZUxzdD4iLFhbWC5sZW5ndGhdPSI8YTplZmZlY3RTdHlsZT4iLFhbWC5sZW5ndGhdPSI8YTplZmZlY3RMc3Q+IixYW1gubGVuZ3RoXT0nPGE6b3V0ZXJTaGR3IGJsdXJSYWQ9IjQwMDAwIiBkaXN0PSIyMDAw''@;'; + put 'put ''MCIgZGlyPSI1NDAwMDAwIiByb3RXaXRoU2hhcGU9IjAiPjxhOnNyZ2JDbHIgdmFsPSIwMDAwMDAiPjxhOmFscGhhIHZhbD0iMzgwMDAiLz48L2E6c3JnYkNscj48L2E6b3V0ZXJTaGR3PicsWFtYLmxlbmd0aF09IjwvYTplZmZlY3RMc3Q+IixYW1gubGVuZ3RoXT0iPC9hOmVmZmVjdFN0eWxl''@;'; + put 'put ''PiIsWFtYLmxlbmd0aF09IjxhOmVmZmVjdFN0eWxlPiIsWFtYLmxlbmd0aF09IjxhOmVmZmVjdExzdD4iLFhbWC5sZW5ndGhdPSc8YTpvdXRlclNoZHcgYmx1clJhZD0iNDAwMDAiIGRpc3Q9IjIzMDAwIiBkaXI9IjU0MDAwMDAiIHJvdFdpdGhTaGFwZT0iMCI+PGE6c3JnYkNsciB2YWw9IjAw''@;'; + put 'put ''MDAwMCI+PGE6YWxwaGEgdmFsPSIzNTAwMCIvPjwvYTpzcmdiQ2xyPjwvYTpvdXRlclNoZHc+JyxYW1gubGVuZ3RoXT0iPC9hOmVmZmVjdExzdD4iLFhbWC5sZW5ndGhdPSI8L2E6ZWZmZWN0U3R5bGU+IixYW1gubGVuZ3RoXT0iPGE6ZWZmZWN0U3R5bGU+IixYW1gubGVuZ3RoXT0iPGE6ZWZm''@;'; + put 'put ''ZWN0THN0PiIsWFtYLmxlbmd0aF09JzxhOm91dGVyU2hkdyBibHVyUmFkPSI0MDAwMCIgZGlzdD0iMjMwMDAiIGRpcj0iNTQwMDAwMCIgcm90V2l0aFNoYXBlPSIwIj48YTpzcmdiQ2xyIHZhbD0iMDAwMDAwIj48YTphbHBoYSB2YWw9IjM1MDAwIi8+PC9hOnNyZ2JDbHI+PC9hOm91dGVyU2hk''@;'; + put 'put ''dz4nLFhbWC5sZW5ndGhdPSI8L2E6ZWZmZWN0THN0PiIsWFtYLmxlbmd0aF09JzxhOnNjZW5lM2Q+PGE6Y2FtZXJhIHByc3Q9Im9ydGhvZ3JhcGhpY0Zyb250Ij48YTpyb3QgbGF0PSIwIiBsb249IjAiIHJldj0iMCIvPjwvYTpjYW1lcmE+PGE6bGlnaHRSaWcgcmlnPSJ0aHJlZVB0IiBkaXI9''@;'; + put 'put ''InQiPjxhOnJvdCBsYXQ9IjAiIGxvbj0iMCIgcmV2PSIxMjAwMDAwIi8+PC9hOmxpZ2h0UmlnPjwvYTpzY2VuZTNkPicsWFtYLmxlbmd0aF09JzxhOnNwM2Q+PGE6YmV2ZWxUIHc9IjYzNTAwIiBoPSIyNTQwMCIvPjwvYTpzcDNkPicsWFtYLmxlbmd0aF09IjwvYTplZmZlY3RTdHlsZT4iLFhb''@;'; + put 'put ''WC5sZW5ndGhdPSI8L2E6ZWZmZWN0U3R5bGVMc3Q+IixYW1gubGVuZ3RoXT0iPGE6YmdGaWxsU3R5bGVMc3Q+IixYW1gubGVuZ3RoXT0nPGE6c29saWRGaWxsPjxhOnNjaGVtZUNsciB2YWw9InBoQ2xyIi8+PC9hOnNvbGlkRmlsbD4nLFhbWC5sZW5ndGhdPSc8YTpncmFkRmlsbCByb3RXaXRo''@;'; + put 'put ''U2hhcGU9IjEiPicsWFtYLmxlbmd0aF09IjxhOmdzTHN0PiIsWFtYLmxlbmd0aF09JzxhOmdzIHBvcz0iMCI+PGE6c2NoZW1lQ2xyIHZhbD0icGhDbHIiPjxhOnRpbnQgdmFsPSI0MDAwMCIvPjxhOnNhdE1vZCB2YWw9IjM1MDAwMCIvPjwvYTpzY2hlbWVDbHI+PC9hOmdzPicsWFtYLmxlbmd0''@;'; + put 'put ''aF09JzxhOmdzIHBvcz0iNDAwMDAiPjxhOnNjaGVtZUNsciB2YWw9InBoQ2xyIj48YTp0aW50IHZhbD0iNDUwMDAiLz48YTpzaGFkZSB2YWw9Ijk5MDAwIi8+PGE6c2F0TW9kIHZhbD0iMzUwMDAwIi8+PC9hOnNjaGVtZUNscj48L2E6Z3M+JyxYW1gubGVuZ3RoXT0nPGE6Z3MgcG9zPSIxMDAw''@;'; + put 'put ''MDAiPjxhOnNjaGVtZUNsciB2YWw9InBoQ2xyIj48YTpzaGFkZSB2YWw9IjIwMDAwIi8+PGE6c2F0TW9kIHZhbD0iMjU1MDAwIi8+PC9hOnNjaGVtZUNscj48L2E6Z3M+JyxYW1gubGVuZ3RoXT0iPC9hOmdzTHN0PiIsWFtYLmxlbmd0aF09JzxhOnBhdGggcGF0aD0iY2lyY2xlIj48YTpmaWxs''@;'; + put 'put ''VG9SZWN0IGw9IjUwMDAwIiB0PSItODAwMDAiIHI9IjUwMDAwIiBiPSIxODAwMDAiLz48L2E6cGF0aD4nLFhbWC5sZW5ndGhdPSI8L2E6Z3JhZEZpbGw+IixYW1gubGVuZ3RoXT0nPGE6Z3JhZEZpbGwgcm90V2l0aFNoYXBlPSIxIj4nLFhbWC5sZW5ndGhdPSI8YTpnc0xzdD4iLFhbWC5sZW5n''@;'; + put 'put ''dGhdPSc8YTpncyBwb3M9IjAiPjxhOnNjaGVtZUNsciB2YWw9InBoQ2xyIj48YTp0aW50IHZhbD0iODAwMDAiLz48YTpzYXRNb2QgdmFsPSIzMDAwMDAiLz48L2E6c2NoZW1lQ2xyPjwvYTpncz4nLFhbWC5sZW5ndGhdPSc8YTpncyBwb3M9IjEwMDAwMCI+PGE6c2NoZW1lQ2xyIHZhbD0icGhD''@;'; + put 'put ''bHIiPjxhOnNoYWRlIHZhbD0iMzAwMDAiLz48YTpzYXRNb2QgdmFsPSIyMDAwMDAiLz48L2E6c2NoZW1lQ2xyPjwvYTpncz4nLFhbWC5sZW5ndGhdPSI8L2E6Z3NMc3Q+IixYW1gubGVuZ3RoXT0nPGE6cGF0aCBwYXRoPSJjaXJjbGUiPjxhOmZpbGxUb1JlY3QgbD0iNTAwMDAiIHQ9IjUwMDAw''@;'; + put 'put ''IiByPSI1MDAwMCIgYj0iNTAwMDAiLz48L2E6cGF0aD4nLFhbWC5sZW5ndGhdPSI8L2E6Z3JhZEZpbGw+IixYW1gubGVuZ3RoXT0iPC9hOmJnRmlsbFN0eWxlTHN0PiIsWFtYLmxlbmd0aF09IjwvYTpmbXRTY2hlbWU+IixYW1gubGVuZ3RoXT0iPC9hOnRoZW1lRWxlbWVudHM+IixYW1gubGVu''@;'; + put 'put ''Z3RoXT0iPGE6b2JqZWN0RGVmYXVsdHM+IixYW1gubGVuZ3RoXT0iPGE6c3BEZWY+IixYW1gubGVuZ3RoXT0nPGE6c3BQci8+PGE6Ym9keVByLz48YTpsc3RTdHlsZS8+PGE6c3R5bGU+PGE6bG5SZWYgaWR4PSIxIj48YTpzY2hlbWVDbHIgdmFsPSJhY2NlbnQxIi8+PC9hOmxuUmVmPjxhOmZp''@;'; + put 'put ''bGxSZWYgaWR4PSIzIj48YTpzY2hlbWVDbHIgdmFsPSJhY2NlbnQxIi8+PC9hOmZpbGxSZWY+PGE6ZWZmZWN0UmVmIGlkeD0iMiI+PGE6c2NoZW1lQ2xyIHZhbD0iYWNjZW50MSIvPjwvYTplZmZlY3RSZWY+PGE6Zm9udFJlZiBpZHg9Im1pbm9yIj48YTpzY2hlbWVDbHIgdmFsPSJsdDEiLz48''@;'; + put 'put ''L2E6Zm9udFJlZj48L2E6c3R5bGU+JyxYW1gubGVuZ3RoXT0iPC9hOnNwRGVmPiIsWFtYLmxlbmd0aF09IjxhOmxuRGVmPiIsWFtYLmxlbmd0aF09JzxhOnNwUHIvPjxhOmJvZHlQci8+PGE6bHN0U3R5bGUvPjxhOnN0eWxlPjxhOmxuUmVmIGlkeD0iMiI+PGE6c2NoZW1lQ2xyIHZhbD0iYWNj''@;'; + put 'put ''ZW50MSIvPjwvYTpsblJlZj48YTpmaWxsUmVmIGlkeD0iMCI+PGE6c2NoZW1lQ2xyIHZhbD0iYWNjZW50MSIvPjwvYTpmaWxsUmVmPjxhOmVmZmVjdFJlZiBpZHg9IjEiPjxhOnNjaGVtZUNsciB2YWw9ImFjY2VudDEiLz48L2E6ZWZmZWN0UmVmPjxhOmZvbnRSZWYgaWR4PSJtaW5vciI+PGE6''@;'; + put 'put ''c2NoZW1lQ2xyIHZhbD0idHgxIi8+PC9hOmZvbnRSZWY+PC9hOnN0eWxlPicsWFtYLmxlbmd0aF09IjwvYTpsbkRlZj4iLFhbWC5sZW5ndGhdPSI8L2E6b2JqZWN0RGVmYXVsdHM+IixYW1gubGVuZ3RoXT0iPGE6ZXh0cmFDbHJTY2hlbWVMc3QvPiIsWFtYLmxlbmd0aF09IjwvYTp0aGVtZT4i''@;'; + put 'put ''LFguam9pbigiIil9ZnVuY3Rpb24gc0IoSCl7dmFyIHJlPUgucmVhZF9zaGlmdCgyKSxYPUgucmVhZF9zaGlmdCgyKS00LHdlPVtyZV07c3dpdGNoKHJlKXtjYXNlIDQ6Y2FzZSA1OmNhc2UgNzpjYXNlIDg6Y2FzZSA5OmNhc2UgMTA6Y2FzZSAxMTpjYXNlIDEzOndlWzFdPWZ1bmN0aW9uIGxC''@;'; + put 'put ''KEgpe3ZhciByZT17fTtzd2l0Y2gocmUueGNsclR5cGU9SC5yZWFkX3NoaWZ0KDIpLHJlLm5UaW50U2hhZGU9SC5yZWFkX3NoaWZ0KDIpLHJlLnhjbHJUeXBlKXtjYXNlIDA6Y2FzZSA0OkgubCs9NDticmVhaztjYXNlIDE6cmUueGNsclZhbHVlPWZ1bmN0aW9uIEVFKEgscmUpe3JldHVybiBf''@;'; + put 'put ''cyhILHJlKX0oSCw0KTticmVhaztjYXNlIDI6cmUueGNsclZhbHVlPXQ2KEgpO2JyZWFrO2Nhc2UgMzpyZS54Y2xyVmFsdWU9ZnVuY3Rpb24gTUUoSCl7cmV0dXJuIEgucmVhZF9zaGlmdCg0KX0oSCl9cmV0dXJuIEgubCs9OCxyZX0oSCk7YnJlYWs7Y2FzZSA2OndlWzFdPWZ1bmN0aW9uIHhF''@;'; + put 'put ''KEgscmUpe3JldHVybiBfcyhILHJlKX0oSCxYKTticmVhaztjYXNlIDE0OmNhc2UgMTU6d2VbMV09SC5yZWFkX3NoaWZ0KDE9PT1YPzE6Mik7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIlVucmVjb2duaXplZCBFeHRQcm9wIHR5cGU6ICIrcmUrIiAiK1gpfXJldHVybiB3ZX1mdW5j''@;'; + put 'put ''dGlvbiBMYihILHJlKXtyZS5mb3JFYWNoKGZ1bmN0aW9uKFgpe3N3aXRjaChYWzBdKXtjYXNlIDQ6Y2FzZSA1OmNhc2UgNjpjYXNlIDc6Y2FzZSA4OmNhc2UgOTpjYXNlIDEwOmNhc2UgMTE6Y2FzZSAxNDpjYXNlIDE1OmJyZWFrO2Nhc2UgMTM6SC5mb250JiZILmZvbnQuY29sb3ImJkFycmF5''@;'; + put 'put ''LmlzQXJyYXkoWFsxXS54Y2xyVmFsdWUpJiYoSC5mb250LmNvbG9yLnJnYj1iMyhYWzFdLnhjbHJWYWx1ZSkpfX0pfWZ1bmN0aW9uIEhsKEgpe3JldHVybiBILzkxNDQwMCpSNH1mdW5jdGlvbiAkOChILHJlKXt2YXIgWD17fTtpZihILnBvcylYLng9SGwoSC5wb3MueCksWC55PUhsKEgucG9z''@;'; + put 'put ''LnkpO2Vsc2V7aWYoIUguZnJvbSl0aHJvdyJiYWQgYW5jaG9yIHN0YXJ0IjtYLnI9SC5mcm9tLnJ8fDAsWC5jPUguZnJvbS5jfHwwLEguZnJvbS5jT2ZmJiYoWC54PUhsKEguZnJvbS5jT2ZmKSksSC5mcm9tLnJPZmYmJihYLnk9SGwoSC5mcm9tLnJPZmYpKX1pZihILmV4dClYLnc9SGwoSC5l''@;'; + put 'put ''eHQueCksWC5oPUhsKEguZXh0LnkpO2Vsc2V7aWYoIUgudG8pdGhyb3ciYmFkIGFuY2hvciBlbmQiO1guQz1ILnRvLmMsWC5SPUgudG8ucixILnRvLmNPZmYmJihYLlg9SGwoSC50by5jT2ZmKSksSC50by5yT2ZmJiYoWC5ZPUhsKEgudG8uck9mZikpfXJldHVybiBYfWZ1bmN0aW9uIHlmKEgs''@;'; + put 'put ''cmUpe3ZhciBYPXt4Oi0xLHk6LTEsdzotMSxoOi0xfTtpZihILnBvcylYLng9SGwoSC5wb3MueCksWC55PUhsKEgucG9zLnkpO2Vsc2V7aWYoIUguZnJvbSl0aHJvdyJiYWQgYW5jaG9yIHN0YXJ0IjtYLng9ZnUocmUsSC5mcm9tLmMsIkMiKStIbChILmZyb20uY09mZiksWC55PWZ1KHJlLEgu''@;'; + put 'put ''ZnJvbS5yLCJSIikrSGwoSC5mcm9tLnJPZmYpfWlmKEguZXh0KVgudz1IbChILmV4dC54KSxYLmg9SGwoSC5leHQueSk7ZWxzZXtpZighSC50byl0aHJvdyJiYWQgYW5jaG9yIGVuZCI7WC53PWZ1KHJlLEgudG8uYywiQyIpK0hsKEgudG8uY09mZiktWC54LFguaD1mdShyZSxILnRvLnIsIlIi''@;'; + put 'put ''KStIbChILnRvLnJPZmYpLVgueX1yZXR1cm4gWH1mdW5jdGlvbiBPYihILHJlKXt2YXIgWD17cjotMSxjOi0xLHg6LTEseTotMSxSOi0xLEM6LTEsWDotMSxZOi0xfTtzd2l0Y2goSC50eXBlKXtjYXNlInR3b0NlbGxBbmNob3IiOlgucj1ILmZyb20ucixYLnk9SGwoSC5mcm9tLnJPZmYpLFgu''@;'; + put 'put ''Uj1ILnRvLnIsWC5ZPUhsKEgudG8uck9mZiksWC5jPUguZnJvbS5jLFgueD1IbChILmZyb20uY09mZiksWC5DPUgudG8uYyxYLlg9SGwoSC50by5jT2ZmKTticmVhaztjYXNlIm9uZUNlbGxBbmNob3IiOlgucj1ILmZyb20ucixYLnk9SGwoSC5mcm9tLnJPZmYpO3ZhciB3ZT14ZChyZSxYLnIs''@;'; + put 'put ''WC55K0hsKEguZXh0LnkpKTtYLlI9d2VbMF0sWC5ZPXdlWzFdLFguYz1ILmZyb20uYyxYLng9SGwoSC5mcm9tLmNPZmYpO3ZhciB4ZT1fbShyZSxYLmMsWC54K0hsKEguZXh0LngpKTtYLkM9eGVbMF0sWC5YPXhlWzFdO2JyZWFrO2Nhc2UiYWJzb2x1dGVBbmNob3IiOnZhciBGZT14ZChyZSww''@;'; + put 'put ''LEhsKEgucG9zLnkpKTtYLnI9RmVbMF0sWC55PUZlWzFdO3ZhciBaZT14ZChyZSxYLnIsWC55K0hsKEguZXh0LnkpKTtYLlI9WmVbMF0sWC5ZPVplWzFdO3ZhciBqZT14ZChyZSwwLEhsKEgucG9zLngpKTtYLmM9amVbMF0sWC54PWplWzFdO3ZhciBZZT14ZChyZSxYLmMsWC54K0hsKEguZXh0''@;'; + put 'put ''LngpKTtYLkM9WWVbMF0sWC5YPVllWzFdO2JyZWFrO2RlZmF1bHQ6dGhyb3ciYmFkIGFuY2hvciB0eXBlICIrSC50eXBlfXJldHVybiBYfWZ1bmN0aW9uIFRFKEgscmUpe3ZhciBYPUgudHJpbSgpLnNwbGl0KC9ccyosXHMqLyk7cmVbIiFwb3MiXT17YzorWFswXSx4OitYWzFdLHI6K1hbMl0s''@;'; + put 'put ''eTorWFszXSxDOitYWzRdLFg6K1hbNV0sUjorWFs2XSxZOitYWzddfX1mdW5jdGlvbiBmQihILHJlLFgpe3ZhciB3ZT0tMTtpZihudWxsIT1ILlJ8fG51bGwhPUguQyl3ZT0wO2Vsc2V7aWYobnVsbD09SC54fHxudWxsPT1ILnl8fG51bGw9PUgud3x8bnVsbD09SC5oKXRocm93ImNhbm5vdCBw''@;'; + put 'put ''YXJzZSBhbmNob3IgIitKU09OLnN0cmluZ2lmeShIKTt3ZT0xKzIqIShILmN8fEgucil9aWYod2UhPXJlKXtzd2l0Y2gocmUpe2Nhc2UgMDpjYXNlIDE6aWYoMyE9d2UpYnJlYWs7dmFyIHhlPV9tKFgsSC5jfHwwLEgueHx8MCk7SC5jPXhlWzBdLEgueD14ZVsxXTt2YXIgRmU9eGQoWCxILnJ8''@;'; + put 'put ''fDAsSC55fHwwKTtILnI9RmVbMF0sSC55PUZlWzFdO2JyZWFrO2Nhc2UgMzppZigzPT13ZSlicmVhazt2YXIgWmU9SC5jfHwwLGplPUgueHx8MDtkZWxldGUgSC5jLGRlbGV0ZSBILngsSC54PShaZT9OOShYLFplKTowKStqZTt2YXIgWWU9SC5yfHwwLE10PUgueXx8MDtkZWxldGUgSC5yLGRl''@;'; + put 'put ''bGV0ZSBILnksSC55PShZZT9xOChYLFllKTowKStNdDticmVhaztkZWZhdWx0OnRocm93ImNvbnZlcnRfYW5jaG9yIHVucmVjb2duaXplZCB0eXBlICIrcmV9c3dpdGNoKHJlKXtjYXNlIDA6aWYoMD09d2UpYnJlYWs7dmFyIHh0PV9tKFgsSC5jfHwwLChILnh8fDApK0gudyk7ZGVsZXRlIEgu''@;'; + put 'put ''dyxILkM9eHRbMF0sSC5YPXh0WzFdO3ZhciBSdD14ZChYLEgucnx8MCwoSC55fHwwKStILmgpO2RlbGV0ZSBILmgsSC5SPVJ0WzBdLEguWT1SdFsxXTticmVhaztjYXNlIDE6Y2FzZSAzOmlmKDAhPXdlKWJyZWFrO3ZhciBVdD1ILkN8fDAsbm49SC5YfHwwO2RlbGV0ZSBILkMsZGVsZXRlIEgu''@;'; + put 'put ''WCxILnc9TjkoWCxVdCkrbm4tKEguYz9OOShYLEguYyk6MCktKEgueHx8MCk7dmFyIENuPUguUnx8MCxEdD1ILll8fDA7ZGVsZXRlIEguUixkZWxldGUgSC5ZLEguaD1xOChYLENuKStEdC0oSC5yP3E4KFgsSC5yKTowKS0oSC55fHwwKTticmVhaztkZWZhdWx0OnRocm93ImNvbnZlcnRfYW5j''@;'; + put 'put ''aG9yIHVucmVjb2duaXplZCB0eXBlICIrcmV9fX1mdW5jdGlvbiBoQihIKXt2YXIgcmU9W0guY3x8MCxNYXRoLnJvdW5kKEgueHx8MCksSC5yfHwwLE1hdGgucm91bmQoSC55fHwwKV07cmV0dXJuKHJlPXJlLmNvbmNhdChILmgmJkgudz9bcmVbMF0sTWF0aC5yb3VuZChyZVsxXStILncpLHJl''@;'; + put 'put ''WzJdLE1hdGgucm91bmQocmVbM10rSC5oKV06W0guQ3x8MCxNYXRoLnJvdW5kKEguWHx8MCksSC5SfHwwLE1hdGgucm91bmQoSC5ZfHwwKV0pKS5qb2luKCIsICIpfWZ1bmN0aW9uIHE4KEgscmUpe2lmKCFIKXJldHVybiAwO2Zvcih2YXIgWD0wOy0tcmU+PTA7KXt2YXIgd2U9KChIWyIhcm93''@;'; + put 'put ''cyJdfHxbXSlbcmVdfHx7fSkuaHB4O251bGw9PXdlJiYod2U9KChIWyIhc2hlZXRGb3JtYXQiXXx8e30pLnJvd3x8e30pLmhweCksbnVsbD09d2UmJih3ZT0yNCksWCs9d2V9cmV0dXJuIFh9ZnVuY3Rpb24gTjkoSCxyZSl7aWYoIUgpcmV0dXJuIDA7Zm9yKHZhciBYPTA7LS1yZT49MDspe3Zh''@;'; + put 'put ''ciB3ZT0oKEhbIiFjb2xzIl18fFtdKVtyZV18fHt9KS53cHg7aWYobnVsbD09d2UmJih3ZT0oKEhbIiFzaGVldEZvcm1hdCJdfHx7fSkuY29sfHx7fSkud3B4KSxudWxsPT13ZSl7dmFyIHhlPXt3Y2g6OC40M307eWMoeGUpLEhbIiFjb2xzIl0mJihIWyIhY29scyJdW3JlXT14ZSksd2U9eGUu''@;'; + put 'put ''d3B4fVgrPXdlfXJldHVybiBYfWZ1bmN0aW9uIGZ1KEgscmUsWCl7cmV0dXJuIkMiPT1YP045KEgscmUpOnE4KEgscmUpfWZ1bmN0aW9uIHhkKEgscmUsWCl7dmFyIHdlPVtyZSxYXTtpZighSClyZXR1cm4gd2U7Zm9yKDs7KXt2YXIgeGU9KEhbIiFyb3dzIl18fFtdKVt3ZVswXV18fHt9O2lm''@;'; + put 'put ''KHhlLmhpZGRlbikrK3dlWzBdO2Vsc2V7dmFyIEZlPXhlLmhweDtpZihudWxsPT1GZSYmKEZlPSgoSFsiIXNoZWV0Rm9ybWF0Il18fHt9KS5yb3d8fHt9KS5ocHgpLG51bGw9PUZlJiYoRmU9QWYoMTUpKSx3ZVsxXTxGZSlicmVhazt3ZVswXSsrLHdlWzFdLT1GZX19cmV0dXJuIHdlfWZ1bmN0''@;'; + put 'put ''aW9uIF9tKEgscmUsWCl7dmFyIHdlPVtyZSxYXTtpZighSClyZXR1cm4gd2U7Zm9yKDs7KXt2YXIgeGU9KEhbIiFjb2xzIl18fFtdKVt3ZVswXV18fHt9O2lmKHhlLmhpZGRlbnx8MD09PXhlLndweCkrK3dlWzBdO2Vsc2V7dmFyIEZlPXhlLndweDtpZihudWxsPT1GZSYmKEZlPSgoSFsiIXNo''@;'; + put 'put ''ZWV0Rm9ybWF0Il18fHt9KS5jb2x8fHt9KS53cHgpLG51bGw9PUZlKXt2YXIgWmU9e3djaDo4LjQzfTt5YyhaZSksSFsiIWNvbHMiXSYmKEhbIiFjb2xzIl1bd2VbMF1dPVplKSxGZT1aZS53cHh9aWYod2VbMV08RmUpYnJlYWs7d2VbMF0rKyx3ZVsxXS09RmV9fXJldHVybiB3ZX1mdW5jdGlv''@;'; + put 'put ''biBMbyhIKXtyZXR1cm4oIjAwMDAwMCIrKCJudW1iZXIiPT10eXBlb2YgSD9ILnRvU3RyaW5nKDE2KTpIKSkuc2xpY2UoLTYpfWZ1bmN0aW9uIFhzKEgscmUsWCl7dmFyIHdlPSJzdHJpbmciPT10eXBlb2YgcmU/ISFYOiEhcmU7InN0cmluZyIhPXR5cGVvZiByZSYmKHJlPSJjb2xvciIpO3Zh''@;'; + put 'put ''ciB4ZT0iPCIrcmUrIiAiO3JldHVybiBILmF1dG8/eGUrJ2F1dG89IjEiLz4nOkguaW5kZXgmJm51bGw9PUgucmdiP3hlKydpbmRleGVkPSInK0guaW5kZXgrJyIvPic6bnVsbCE9SC50aGVtZT94ZSsndGhlbWU9IicrSC50aGVtZSsnIicrKEgudGludD8nIHRpbnQ9IicrSC50aW50KyciJzoi''@;'; + put 'put ''IikrIi8+IjpudWxsIT1ILnJnYj94ZSsncmdiPSInKyh3ZT8iRkYiOiIiKStMbyhILnJnYikrJyIvPic6eGUrIi8+In1mdW5jdGlvbiBSYihILHJlKXtpZighSHx8bnVsbD09SC5yZ2IpcmV0dXJuIHJlO2Zvcih2YXIgWD0oIjAwMDAwMCIrSC5yZ2IudG9TdHJpbmcoMTYpKS5zbGljZSgtNiks''@;'; + put 'put ''d2U9W1guc2xpY2UoMCwyKSxYLnNsaWNlKDIsNCksWC5zbGljZSg0LDYpXS5tYXAoZnVuY3Rpb24oWmUpe3JldHVybiBwYXJzZUludChaZSwxNil9KSx4ZT0wO3hlPHV1Lmxlbmd0aDsrK3hlKXt2YXIgRmU9dXVbeGVdO2lmKEZlWzBdPT13ZVswXSYmRmVbMV09PXdlWzFdJiZGZVsyXT09d2Vb''@;'; + put 'put ''Ml0pcmV0dXJuIHhlfXJldHVybiB1dS5sZW5ndGg8NjQ/KHV1LnB1c2goW3dlWzBdLHdlWzFdLHdlWzJdXSksdXUubGVuZ3RoLTEpOnJlfWZ1bmN0aW9uIEkzKEgpe3ZhciByZT1bIiIsIiIsIiJdO2lmKCFIKXJldHVybltdO3ZhciBYPSIiLHdlPUgmJkgucz9mdW5jdGlvbiBlNShIKXt2YXIg''@;'; + put 'put ''cmU9WyIiLCIiXTtpZighSClyZXR1cm4gcmU7aWYoSC5zeiYmKHJlWzBdKz0iJiIrSC5zeixyZVsxXT0iJjEyIityZVsxXSksSC5uYW1lJiYocmVbMF0rPScmIicrSC5uYW1lKycsUmVndWxhciInLHJlWzFdPScmIi0sUmVndWxhciInK3JlWzFdKSxILmJvbGQmJihyZVswXSs9IiZCIixyZVsx''@;'; + put 'put ''XT0iJkIiK3JlWzFdKSxILnVuZGVybGluZSl7dmFyIFg9Mj09SC51bmRlcmxpbmU/IiZFIjoiJlUiO3JlWzBdKz1YLHJlWzFdPVgrcmVbMV19cmV0dXJuIEguaXRhbGljJiYocmVbMF0rPSImSSIscmVbMV09IiZJIityZVsxXSksSC5jb2xvciYmbnVsbCE9SC5jb2xvci5yZ2ImJihyZVswXSs9''@;'; + put 'put ''IiZLIitMbyhILmNvbG9yLnJnYikscmVbMV0rPSImSzAwMDAwMCIpLEguc3RyaWtlJiYocmVbMF0rPSImUyIscmVbMV09IiZTIityZVsxXSksInN1cGVyIj09SC52YWxpZ24mJihyZVswXSs9IiZYIixyZVsxXT0iJlgiK3JlWzFdKSwic3ViIj09SC52YWxpZ24mJihyZVswXSs9IiZZIixyZVsx''@;'; + put 'put ''XT0iJlkiK3JlWzFdKSxyZX0oSC5zKTpbIiIsIiJdO3JldHVybiJzdHJpbmciPT10eXBlb2YgSD9bSCxILEhdOm51bGwhPUguZmlyc3R8fG51bGwhPUguZXZlbnx8bnVsbCE9SC5vZGQ/KG51bGwhPUgub2RkJiYocmVbMF09STMoSC5vZGQpWzBdKSx2b2lkIDA9PT1ILmZpcnN0JiZyZVswXSYm''@;'; + put 'put ''KHJlWzFdPXJlWzBdKSxudWxsIT1ILmZpcnN0JiYocmVbMV09STMoSC5maXJzdClbMF0pLG51bGwhPUguZXZlbiYmKHJlWzJdPUkzKEguZXZlbilbMF0pLHJlKTpILmxlZnR8fEguY2VudGVyfHxILnJpZ2h0PyhILmxlZnQmJihYKz0iJkwiK0kzKEgubGVmdClbMF0pLEguY2VudGVyJiYoWCs9''@;'; + put 'put ''IiZDIitJMyhILmNlbnRlcilbMF0pLEgucmlnaHQmJihYKz0iJlIiK0kzKEgucmlnaHQpWzBdKSxbWCxYLFhdKTpudWxsIT1ILnY/W1g9d2VbMF0rSC52LnJlcGxhY2UoLyYvZywiJiYiKSt3ZVsxXSxYLFhdOm51bGwhPUgudz9bWD13ZVswXStILncrd2VbMV0sWCxYXTpBcnJheS5pc0FycmF5''@;'; + put 'put ''KEguUik/KEguUi5mb3JFYWNoKGZ1bmN0aW9uKHhlKXtYKz1JMyh4ZSlbMF19KSxbWCxYLFhdKTpbXX12YXIgajk9ezE6IkxldHRlciIsMzoiVGFibG9pZCIsNToiTGVnYWwiLDc6IkV4ZWN1dGl2ZSIsODoiQTMiLDk6IkE0IiwxMToiQTUiLDEyOiJCNCIsMTM6IkI1IiwxNDoiRm9saW8iLDIw''@;'; + put 'put ''OiJFbnZlbG9wZSIsMzc6Ik1vbmFyY2giLDcwOiJBNiJ9LFBiPXR0KGo5KTtwdC5DT05OPSJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzL2Nvbm5lY3Rpb25zIjt2YXIgeTY9X2koImV4dGVybmFsTGluayIsbnVsbCx7''@;'; + put 'put ''eG1sbnM6WDAubWFpblswXX0pO3B0LklNRz0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL29mZmljZURvY3VtZW50LzIwMDYvcmVsYXRpb25zaGlwcy9pbWFnZSIscHQuRFJBVz0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL29mZmljZURvY3VtZW50LzIwMDYv''@;'; + put 'put ''cmVsYXRpb25zaGlwcy9kcmF3aW5nIjt2YXIgREU9e3Q6InRvcCIsY3RyOiJjZW50ZXIiLGI6ImJvdHRvbSIsanVzdDoidG9wIixkaXN0OiJ0b3AifSxIYj17Y3RyOiJjZW50ZXIiLGRpc3Q6ImNlbnRlciIsanVzdDoiY2VudGVyIixqdXN0TG93OiJjZW50ZXIiLGw6ImxlZnQiLHI6InJpZ2h0''@;'; + put 'put ''Iix0aGFpRGlzdDoiY2VudGVyIn07ZnVuY3Rpb24gTmIoKXt2YXIgSD1bY25dO3JldHVybiBILnB1c2goJzx4ZHI6d3NEciB4bWxuczp4ZHI9Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9kcmF3aW5nbWwvMjAwNi9zcHJlYWRzaGVldERyYXdpbmciIHhtbG5zOmE9Imh0dHA6''@;'; + put 'put ''Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9kcmF3aW5nbWwvMjAwNi9tYWluIi8+JyksSC5qb2luKCIiKX1mdW5jdGlvbiBPRShIKXt2YXIgWCxyZT1IWyIhZGF0YSJdO3JldHVybiJiYXNlNjQiPT09SFsiIWRhdGF0eXBlIl0/KChYPXJlLm1hdGNoKC9eZGF0YTouKiwvKSkmJihyZT1y''@;'; + put 'put ''ZS5zbGljZShYWzBdLmxlbmd0aCkpLFNlLmRlY29kZShyZSkpOnJlfWZ1bmN0aW9uIFo5KEgscmUsWCx3ZSx4ZSl7dmFyIEZlPXtzdHlsZTp7fSxoZWFkZXI6MH0sWmU9ITE7SC5yZXBsYWNlKEd0LGZ1bmN0aW9uKGplKXt2YXIgWWU9ZW4oamUpO3N3aXRjaChJbihZZVswXSkpe2Nhc2UiPD94''@;'; + put 'put ''bWwiOmNhc2UiPC90YWJsZT4iOmNhc2UiPC9hdXRvRmlsdGVyPiI6Y2FzZSI8c29ydFN0YXRlIjpjYXNlIjxzb3J0U3RhdGU+IjpjYXNlIjwvc29ydFN0YXRlPiI6Y2FzZSI8L3RhYmxlQ29sdW1ucyI6Y2FzZSI8L3RhYmxlQ29sdW1ucz4iOmNhc2UiPC90YWJsZUNvbHVtbj4iOmNhc2UiPGNh''@;'; + put 'put ''bGN1bGF0ZWRDb2x1bW5Gb3JtdWxhPiI6Y2FzZSI8Y2FsY3VsYXRlZENvbHVtbkZvcm11bGEiOmNhc2UiPC9jYWxjdWxhdGVkQ29sdW1uRm9ybXVsYT4iOmNhc2UiPHRvdGFsc1Jvd0Zvcm11bGE+IjpjYXNlIjx0b3RhbHNSb3dGb3JtdWxhIjpjYXNlIjwvdG90YWxzUm93Rm9ybXVsYT4iOmNh''@;'; + put 'put ''c2UiPHhtbENvbHVtblByPiI6Y2FzZSI8eG1sQ29sdW1uUHIiOmNhc2UiPC94bWxDb2x1bW5Qcj4iOmNhc2UiPHNvcnRDb25kaXRpb24+IjpjYXNlIjxzb3J0Q29uZGl0aW9uIjpjYXNlIjxleHRMc3QiOmNhc2UiPGV4dExzdD4iOmNhc2UiPC9leHRMc3Q+IjpjYXNlIjxleHRMc3QvPiI6YnJl''@;'; + put 'put ''YWs7Y2FzZSI8dGFibGUiOlllLnJlZiYmKEZlLnJlZj1ZZS5yZWYpLFllLm5hbWU/RmUubmFtZT1ZZS5uYW1lOlllLmRpc3BsYXlOYW1lJiYoRmUubmFtZT1ZZS5kaXNwbGF5TmFtZSksbnVsbCE9WWUuaGVhZGVycm93Y291bnQmJjEhPStZZS5oZWFkZXJyb3djb3VudD9GZS5oZWFkZXI9K1ll''@;'; + put 'put ''LmhlYWRlcnJvd2NvdW50Om51bGw9PVllLmhlYWRlcnJvd2NvdW50JiYoRmUuaGVhZGVyPTEpO2JyZWFrO2Nhc2UiPGF1dG9GaWx0ZXIiOmNhc2UiPGF1dG9GaWx0ZXI+IjpGZS5maWx0ZXI9ITA7YnJlYWs7Y2FzZSI8dGFibGVDb2x1bW5zIjpjYXNlIjx0YWJsZUNvbHVtbnM+IjpGZS5jb2xz''@;'; + put 'put ''PVtdO2JyZWFrO2Nhc2UiPHRhYmxlU3R5bGVJbmZvIjpZZS5zaG93Um93U3RyaXBlcyYmKEZlLnN0eWxlLnJvd3N0cmlwZT1EaShZZS5zaG93Um93U3RyaXBlcykpLFllLnNob3dDb2x1bW5TdHJpcGVzJiYoRmUuc3R5bGUuY29sc3RyaXBlPURpKFllLnNob3dDb2x1bW5TdHJpcGVzKSksWWUu''@;'; + put 'put ''c2hvd0ZpcnN0Q29sdW1uJiYoRmUuc3R5bGUuY29sZmlyc3Q9RGkoWWUuc2hvd0ZpcnN0Q29sdW1uKSksWWUuc2hvd0xhc3RDb2x1bW4mJihGZS5zdHlsZS5jb2xsYXN0PURpKFllLnNob3dMYXN0Q29sdW1uKSksWWUubmFtZSYmKEZlLnN0eWxlLm5hbWU9WWUubmFtZS5yZXBsYWNlKC9eVGFi''@;'; + put 'put ''bGVTdHlsZS8sIiIpKTticmVhaztjYXNlIjx0YWJsZUNvbHVtbiI6Y2FzZSI8dGFibGVDb2x1bW4+IjpGZS5jb2xzLnB1c2goe2lkOitZZS5pZCxuYW1lOlllLm5hbWV9KTticmVhaztjYXNlIjxmaWx0ZXJDb2x1bW4+IjpjYXNlIjxmaWx0ZXJDb2x1bW4iOmNhc2UiPGN1c3RvbUZpbHRlcnMi''@;'; + put 'put ''OmNhc2UiPGN1c3RvbUZpbHRlcnM+IjpjYXNlIjxleHQiOlplPSEwO2JyZWFrO2Nhc2UiPC9maWx0ZXJDb2x1bW4+IjpjYXNlIjwvY3VzdG9tRmlsdGVycz4iOmNhc2UiPC9leHQ+IjpaZT0hMTticmVhaztkZWZhdWx0OmlmKCFaZSYmeGUuV1RGKXRocm93IG5ldyBFcnJvcigidW5yZWNvZ25p''@;'; + put 'put ''emVkICIrWWVbMF0rIiBpbiB0YWJsZSIpfXJldHVybiBqZX0pLEZlLmZpbHRlcnx8KEZlLmZpbHRlcj0hMSksRmUuc3R5bGUubmFtZSYmIUZlLnN0eWxlLm5hbWUubWF0Y2goL14oTGlnaHR8TWVkaXVtfERhcmspXGQrJC8pJiZYLlRhYmxlJiZYLlRhYmxlLmZvckVhY2goZnVuY3Rpb24oamUp''@;'; + put 'put ''eyhqZS5uYW1lPT1GZS5zdHlsZS5uYW1lfHxqZS5yYXduYW1lPT1GZS5zdHlsZS5uYW1lKSYmKEZlLnN0eWxlLnJhdz1sbihqZSkpfSkscmVbIiF0YWJsZXMiXS5wdXNoKEZlKX1mdW5jdGlvbiBWYihILHJlLFgsd2Upe0guZm9yRWFjaChmdW5jdGlvbih4ZSxGZSl7dmFyIFplPXJlLlNoZWV0''@;'; + put 'put ''c1tyZS5TaGVldE5hbWVzW3hlWzBdXV0samU9InhsL3RhYmxlcy90YWJsZSIrKHhlWzBdKzEpKyJfIit4ZVsxXSsiLnhtbCI7d2UudGFibGVzLnB1c2goamUpO3ZhciBZZT14ZVsyXS5yZWZ8fFplWyIhcmVmIl07InN0cmluZyIhPXR5cGVvZiBZZSYmKFllPWZhKFllKSk7dmFyIE10PUZvKFll''@;'; + put 'put ''KSx4dD14ZVsyXS5uYW1lfHwic2pzdGJsXyIreGVbMF0rIl8iK3hlWzFdLFJ0PVtjbl0sVXQ9IW5yKHhlWzJdLmhlYWRlciksbm49VXQmJiFucih4ZVsyXS5maWx0ZXIpO1J0LnB1c2goJzx0YWJsZSB4bWxucz0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL3NwcmVhZHNoZWV0''@;'; + put 'put ''bWwvMjAwNi9tYWluIiBpZD0iJysoRmUrMSkrJyIgbmFtZT0iJytScih4dCkrJyIgZGlzcGxheU5hbWU9IicrUnIoeHQpKyciIHJlZj0iJytZZSsnIiAnKyhudWxsIT14ZVsyXS5oZWFkZXImJjEhPXhlWzJdLmhlYWRlcj8naGVhZGVyUm93Q291bnQ9IicrKHhlWzJdLmhlYWRlcnx8MCkrJyIg''@;'; + put 'put ''JzoiIikrIj4iKSxubiYmUnQucHVzaCgnPGF1dG9GaWx0ZXIgcmVmPSInK1llKyciLz4nKSxSdC5wdXNoKCc8dGFibGVDb2x1bW5zIGNvdW50PSInKyhNdC5lLmMtTXQucy5jKzEpKyciPicpO2Zvcih2YXIgQ249W10sRHQ9TXQucy5jO0R0PD1NdC5lLmM7KytEdClpZihVdCl7Zm9yKHZhciB6''@;'; + put 'put ''dD1ZMCh7cjpNdC5zLnIsYzpEdH0pLFBuPVplW3p0XSxUbj14ZVsyXS5jb2xzJiZ4ZVsyXS5jb2xzW0R0LU10LnMuY10mJnhlWzJdLmNvbHNbRHQtTXQucy5jXS5uYW1lfHxQbiYmKFBuLnd8fFBuLnYpfHwiQ29sdW1uICIrKER0LU10LnMuYysxKSxPbj1UbixZbj0xO0NuLmluZGV4T2YoT24p''@;'; + put 'put ''Pi0xJiYrK1luPDE2Mzg0OylPbj1UbitZbjtpZihPbiE9VG4pdGhyb3cidGFibGUgY29sdW1ucyAiK0R0KyIgYW5kICIrKENuLmluZGV4T2YoVG4pK010LnMuYykrIiBoYXZlIHRoZSBzYW1lIGhlYWRlciAnIitUbisiJzsgdHJ5IHNldHRpbmcgY2VsbCAiK3p0KyIgdG8gJyIrT24rIiciO0Nu''@;'; + put 'put ''LnB1c2goT24pLFJ0LnB1c2goJzx0YWJsZUNvbHVtbiBpZD0iJysoeGVbMl0uY29scyYmeGVbMl0uY29sc1tEdC1NdC5zLmNdJiZudWxsIT14ZVsyXS5jb2xzW0R0LU10LnMuY10uaWQ/eGVbMl0uY29sc1tEdC1NdC5zLmNdLmlkOkR0LU10LnMuYysxKSsnIiBuYW1lPSInK1JyKE9uKSsnIi8+''@;'; + put 'put ''Jyl9ZWxzZSBSdC5wdXNoKHhlWzJdLmNvbHMmJnhlWzJdLmNvbHNbRHQtTXQucy5jXT8nPHRhYmxlQ29sdW1uIGlkPSInK3hlWzJdLmNvbHNbRHQtTXQucy5jXS5pZCsnIiBuYW1lPSInK3hlWzJdLmNvbHNbRHQtTXQucy5jXS5uYW1lKyciLz4nOic8dGFibGVDb2x1bW4gaWQ9IicrKER0LU10''@;'; + put 'put ''LnMuYysxKSsnIiB1bmlxdWVOYW1lPSInKyhEdC1NdC5zLmMrMSkrJyIgbmFtZT0iJysoRHQtTXQucy5jKzEpKyciLz4nKTtSdC5wdXNoKCI8L3RhYmxlQ29sdW1ucz4iKTt2YXIgYWk9KyghMSE9PSh4ZVsyXS5zdHlsZXx8e30pLnJvd3N0cmlwZSkseXI9KyEhKHhlWzJdLnN0eWxlfHx7fSku''@;'; + put 'put ''Y29sc3RyaXBlLGFyPSshISh4ZVsyXS5zdHlsZXx8e30pLmNvbGZpcnN0LEdyPSshISh4ZVsyXS5zdHlsZXx8e30pLmNvbGxhc3QsenI9KHhlWzJdLnN0eWxlfHx7fSkubmFtZXx8Ik1lZGl1bTkiO3pyPXpyLm1hdGNoKC9eKExpZ2h0fE1lZGl1bXxEYXJrKVxkKyQvKT8iVGFibGVTdHlsZSIr''@;'; + put 'put ''enI6enIsUnQucHVzaCgnPHRhYmxlU3R5bGVJbmZvIG5hbWU9IicrenIrJyIgc2hvd0ZpcnN0Q29sdW1uPSInK2FyKyciIHNob3dMYXN0Q29sdW1uPSInK0dyKyciIHNob3dSb3dTdHJpcGVzPSInK2FpKyciIHNob3dDb2x1bW5TdHJpcGVzPSInK3lyKyciLz4nKSxSdC5wdXNoKCI8L3RhYmxl''@;'; + put 'put ''PiIpLHpuKFgsamUsUnQuam9pbigiIikpfSl9cHQuVEFCTEU9Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L3JlbGF0aW9uc2hpcHMvdGFibGUiO3ZhciBkQj0vPCg/Olx3KzopP3NoYXBlKD86W15cd11bXj5dKik/PihbXHNcU10qPyk8XC8o''@;'; + put 'put ''Pzpcdys6KT9zaGFwZT4vZztmdW5jdGlvbiBaYihILHJlLFgsd2Upe3ZhciB4ZT1bMjE2MDAsMjE2MDBdLEZlPVsibTAsMGwwIix4ZVsxXSx4ZVswXSx4ZVsxXSx4ZVswXSwiMHhlIl0uam9pbigiLCIpLFplPVtfaSgieG1sIixudWxsLHsieG1sbnM6diI6dWFfdiwieG1sbnM6byI6dWFfbywi''@;'; + put 'put ''eG1sbnM6eCI6dWFfeCwieG1sbnM6bXYiOiJodHRwOi8vbWFjVm1sU2NoZW1hVXJpIn0pLnJlcGxhY2UoL1wvPi8sIj4iKSxfaSgibzpzaGFwZWxheW91dCIsX2koIm86aWRtYXAiLG51bGwseyJ2OmV4dCI6ImVkaXQifSkseyJ2OmV4dCI6ImVkaXQifSldLGplPTEwMjQqSCxZZT1YfHxbXTtZ''@;'; + put 'put ''ZS5sZW5ndGg+MCYmWmUucHVzaChfaSgidjpzaGFwZXR5cGUiLFtfaSgidjpzdHJva2UiLG51bGwse2pvaW5zdHlsZToibWl0ZXIifSksX2koInY6cGF0aCIsbnVsbCx7c2hhZG93b2s6ImYiLGV4dHJ1c2lvbm9rOiJmIixzdHJva2VvazoiZiIsZmlsbG9rOiJmIiwibzpjb25uZWN0dHlwZSI6''@;'; + put 'put ''InJlY3QifSksX2koIm86bG9jayIsbnVsbCx7InY6ZXh0IjoiZWRpdCIsc2hhcGV0eXBlOiJ0In0pXS5qb2luKCIiKSx7aWQ6Il94MDAwMF90MjAxIixjb29yZHNpemU6eGUuam9pbigiLCIpLCJvOnNwdCI6MjAxLHBhdGg6RmV9KSksdm9pZCAwIT09ejkmJlllLmZvckVhY2goZnVuY3Rpb24o''@;'; + put 'put ''eHQpeysramUsWmU9WmUuY29uY2F0KHo5KHh0LGplKSl9KTt2YXIgTXQ9cmV8fFtdO3JldHVybiBNdC5sZW5ndGg+MCYmWmUucHVzaChfaSgidjpzaGFwZXR5cGUiLFtfaSgidjpzdHJva2UiLG51bGwse2pvaW5zdHlsZToibWl0ZXIifSksX2koInY6cGF0aCIsbnVsbCx7Z3JhZGllbnRzaGFw''@;'; + put 'put ''ZW9rOiJ0Iiwibzpjb25uZWN0dHlwZSI6InJlY3QifSldLmpvaW4oIiIpLHtpZDoiX3gwMDAwX3QyMDIiLGNvb3Jkc2l6ZTp4ZS5qb2luKCIsIiksIm86c3B0IjoyMDIscGF0aDpGZX0pKSxNdC5mb3JFYWNoKGZ1bmN0aW9uKHh0KXsrK2plLFplPVplLmNvbmNhdChmdW5jdGlvbiBwQihILHJl''@;'; + put 'put ''LFgpe3ZhciB3ZT11bChIWzBdKSx4ZT1IWzFdLmZpbGx8fHt9O0hbMV0ucyYmKHhlPXt0eXBlOkhbMV0ucy5wYXR0ZXJuVHlwZXx8InNvbGlkIn0sSFsxXS5zLmZnQ29sb3ImJih4ZS5jb2xvcjI9eGUuY29sb3IxPSIjIitMbyhIWzFdLnMuZmdDb2xvci5yZ2IpKSxIWzFdLnMuYmdDb2xvciYm''@;'; + put 'put ''KHhlLmNvbG9yMj0iIyIrTG8oSFsxXS5zLmJnQ29sb3IucmdiKSkpO3ZhciBGZT17Y29sb3IyOnhlLmNvbG9yMnx8IiNCRUZGODIiLHR5cGU6eGUudHlwZXx8ImdyYWRpZW50In07ImdyYWRpZW50Ij09RmUudHlwZSYmKEZlLmFuZ2xlPSItMTgwIik7dmFyIFplPSJncmFkaWVudCI9PUZlLnR5''@;'; + put 'put ''cGU/X2koIm86ZmlsbCIsbnVsbCx7dHlwZToiZ3JhZGllbnRVbnNjYWxlZCIsInY6ZXh0IjoidmlldyJ9KTpudWxsLGplPV9pKCJ2OmZpbGwiLFplLEZlKSxZZT17fTtIWzFdLnNoYWRvdyYmKEhbMV0uc2hhZG93LmNvbG9yJiYoWWUuY29sb3I9SFsxXS5zaGFkb3cuY29sb3IpLEhbMV0uc2hh''@;'; + put 'put ''ZG93Lm9uJiYoWWUub249SFsxXS5zaGFkb3cub24pKSxZZS5vYnNjdXJlZD0idCI7dmFyIE10PSEwLHh0PSEwLFJ0PUhbMV1bIiFwb3MiXT9sbihIWzFdWyIhcG9zIl0pOm51bGw7cmV0dXJuIFJ0JiYoeHQ9bnVsbD09UnQuUiYmbnVsbD09UnQuQyYmbnVsbD09UnQuWCYmbnVsbD09UnQuWSxN''@;'; + put 'put ''dD0hUnQuciYmIVJ0LmMsZkIoUnQsMCxYKSksWyI8djpzaGFwZSIrcmwoe2lkOiJfeDAwMDBfcyIrcmUsdHlwZToiI194MDAwMF90MjAyIixzdHlsZToicG9zaXRpb246YWJzb2x1dGU7IG1hcmdpbi1sZWZ0OjgwcHQ7bWFyZ2luLXRvcDo1cHQ7d2lkdGg6MTA0cHQ7aGVpZ2h0OjY0cHQ7ei1p''@;'; + put 'put ''bmRleDoxMCIrKEhbMV0uaGlkZGVuPyI7dmlzaWJpbGl0eTpoaWRkZW4iOiIiKSxmaWxsY29sb3I6eGUuY29sb3IxfHwiI0VDRkFENCIsc3Ryb2tlY29sb3I6KEhbMV0uc3Ryb2tlfHx7fSkuY29sb3J8fCIjZWRlYWExIn0pKyI+IixqZSxfaSgidjpzaGFkb3ciLG51bGwsWWUpLF9pKCJ2OnBh''@;'; + put 'put ''dGgiLG51bGwseyJvOmNvbm5lY3R0eXBlIjoibm9uZSJ9KSwnPHY6dGV4dGJveD48ZGl2IHN0eWxlPSJ0ZXh0LWFsaWduOmxlZnQiPjwvZGl2Pjwvdjp0ZXh0Ym94PicsJzx4OkNsaWVudERhdGEgT2JqZWN0VHlwZT0iTm90ZSI+JyxNdD8iPHg6TW92ZVdpdGhDZWxscy8+IjoiIix4dD8iPHg6''@;'; + put 'put ''U2l6ZVdpdGhDZWxscy8+IjoiIixzYSgieDpBbmNob3IiLFJ0P2hCKFJ0KTpIWzFdLnJhd2FuY2hvcnx8W3dlLmMrMSwwLHdlLnIrMSwwLHdlLmMrMywyMCx3ZS5yKzUsMjBdLmpvaW4oIiwiKSksc2EoIng6QXV0b0ZpbGwiLCJGYWxzZSIpLHNhKCJ4OlJvdyIsU3RyaW5nKHdlLnIpKSxzYSgi''@;'; + put 'put ''eDpDb2x1bW4iLFN0cmluZyh3ZS5jKSksSFsxXS5oaWRkZW4/IiI6Ijx4OlZpc2libGUvPiIsIjwveDpDbGllbnREYXRhPiIsIjwvdjpzaGFwZT4iXX0oeHQsamUsd2UpKX0pLFplLnB1c2goIjwveG1sPiIpLFplLmpvaW4oIiIpfXZhciBOND17QnV0dG9uOlsiPHg6QXV0b0ZpbGw+RmFsc2U8''@;'; + put 'put ''L3g6QXV0b0ZpbGw+IiwiPHg6VGV4dEhBbGlnbj5DZW50ZXI8L3g6VGV4dEhBbGlnbj4iLCI8eDpUZXh0VkFsaWduPkNlbnRlcjwveDpUZXh0VkFsaWduPiJdLEdCb3g6WyI8eDpTaXplV2l0aENlbGxzLz4iLCI8eDpBdXRvRmlsbD5GYWxzZTwveDpBdXRvRmlsbD4iLCI8eDpOb1RocmVlRC8+''@;'; + put 'put ''Il0sTGFiZWw6WyI8eDpBdXRvRmlsbD5GYWxzZTwveDpBdXRvRmlsbD4iLCI8eDpBdXRvTGluZT5GYWxzZTwveDpBdXRvTGluZT4iXSxSYWRpbzpbIjx4OlNpemVXaXRoQ2VsbHMvPiIsIjx4OkF1dG9GaWxsPkZhbHNlPC94OkF1dG9GaWxsPiIsIjx4OkF1dG9MaW5lPkZhbHNlPC94OkF1dG9M''@;'; + put 'put ''aW5lPiIsIjx4OlRleHRWQWxpZ24+Q2VudGVyPC94OlRleHRWQWxpZ24+IiwiPHg6Tm9UaHJlZUQvPiJdLENoZWNrYm94OlsiPHg6U2l6ZVdpdGhDZWxscy8+IiwiPHg6QXV0b0ZpbGw+RmFsc2U8L3g6QXV0b0ZpbGw+IiwiPHg6QXV0b0xpbmU+RmFsc2U8L3g6QXV0b0xpbmU+IiwiPHg6VGV4''@;'; + put 'put ''dFZBbGlnbj5DZW50ZXI8L3g6VGV4dFZBbGlnbj4iLCI8eDpOb1RocmVlRC8+Il0sRHJvcDpbIjx4OlNpemVXaXRoQ2VsbHMvPiIsIjx4OkF1dG9MaW5lPkZhbHNlPC94OkF1dG9MaW5lPiIsIjx4Ok5vVGhyZWVEMi8+IiwiPHg6U2VsVHlwZT5TaW5nbGU8L3g6U2VsVHlwZT4iLCI8eDpEcm9w''@;'; + put 'put ''U3R5bGU+Q29tYm88L3g6RHJvcFN0eWxlPiIsIjx4OkxDVD5Ob3JtYWw8L3g6TENUPiIsIjx4OkRyb3BMaW5lcz40PC94OkRyb3BMaW5lcz4iXSxMaXN0OlsiPHg6U2l6ZVdpdGhDZWxscy8+IiwiPHg6QXV0b0xpbmU+RmFsc2U8L3g6QXV0b0xpbmU+IiwiPHg6Tm9UaHJlZUQyLz4iLCI8eDpM''@;'; + put 'put ''Q1Q+Tm9ybWFsPC94OkxDVD4iLCI8eDpWYWw+MDwveDpWYWw+IiwiPHg6TWluPjA8L3g6TWluPiIsIjx4Ok1heD41PC94Ok1heD4iLCI8eDpJbmM+MTwveDpJbmM+IiwiPHg6UGFnZT40PC94OlBhZ2U+IiwiPHg6RHg+MTU8L3g6RHg+Il0sU2Nyb2xsOlsiPHg6U2l6ZVdpdGhDZWxscy8+Iiwi''@;'; + put 'put ''PHg6SG9yaXovPiIsIjx4OkR4PjE1PC94OkR4PiJdLFNwaW46WyI8eDpEeD4xNTwveDpEeD4iXX0semI9e0J1dHRvbjoiPHY6dGV4dGJveCBzdHlsZT0nbXNvLWRpcmVjdGlvbi1hbHQ6YXV0bycgbzpzaW5nbGVjbGljaz0nZic+PGRpdiBzdHlsZT0ndGV4dC1hbGlnbjpjZW50ZXInPjxmb250''@;'; + put 'put ''IGZhY2U9J0NhbGlicmknIHNpemU9JzI0MCcgY29sb3I9JyMwMDAwMDAnPiMjIyM8L2ZvbnQ+PC9kaXY+PC92OnRleHRib3g+IixHQm94OiI8djp0ZXh0Ym94IHN0eWxlPSdtc28tZGlyZWN0aW9uLWFsdDphdXRvJyBvOnNpbmdsZWNsaWNrPSdmJz48ZGl2IHN0eWxlPSd0ZXh0LWFsaWduOmxl''@;'; + put 'put ''ZnQnPjxmb250IGZhY2U9J0x1Y2lkYSBHcmFuZGUnIHNpemU9JzI2MCcgY29sb3I9JyMwMDAwMDAnPiMjIyM8L2ZvbnQ+PC9kaXY+PC92OnRleHRib3g+IixSYWRpbzoiPHY6dGV4dGJveCBzdHlsZT0nbXNvLWRpcmVjdGlvbi1hbHQ6YXV0bycgbzpzaW5nbGVjbGljaz0nZic+PGRpdiBzdHls''@;'; + put 'put ''ZT0ndGV4dC1hbGlnbjpsZWZ0Jz48Zm9udCBmYWNlPSdMdWNpZGEgR3JhbmRlJyBzaXplPScyNjAnIGNvbG9yPSdhdXRvJz4jIyMjPC9mb250PjwvZGl2Pjwvdjp0ZXh0Ym94PiIsTGFiZWw6Ijx2OnRleHRib3ggc3R5bGU9J21zby1kaXJlY3Rpb24tYWx0OmF1dG8nIG86c2luZ2xlY2xpY2s9''@;'; + put 'put ''J2YnPjxkaXYgc3R5bGU9J3RleHQtYWxpZ246bGVmdCc+PGZvbnQgZmFjZT0nTHVjaWRhIEdyYW5kZScgc2l6ZT0nMjYwJyBjb2xvcj0nIzAwMDAwMCc+IyMjIzwvZm9udD48L2Rpdj48L3Y6dGV4dGJveD4iLENoZWNrYm94OiI8djp0ZXh0Ym94IHN0eWxlPSdtc28tZGlyZWN0aW9uLWFsdDph''@;'; + put 'put ''dXRvJyBvOnNpbmdsZWNsaWNrPSdmJz48ZGl2IHN0eWxlPSd0ZXh0LWFsaWduOmxlZnQnPjxmb250IGZhY2U9J0x1Y2lkYSBHcmFuZGUnIHNpemU9JzI2MCcgY29sb3I9JyMwMDAwMDAnPiMjIyM8L2ZvbnQ+PC9kaXY+PC92OnRleHRib3g+IixzaGVldGpzOiJkYWZ1cSJ9LEdiPXtCdXR0b246''@;'; + put 'put ''Wyc8djpmaWxsIGNvbG9yMj0iI2YwZjBmMCBbNjddIiBvOmRldGVjdG1vdXNlY2xpY2s9InQiLz4nLCc8bzpsb2NrIHY6ZXh0PSJlZGl0IiByb3RhdGlvbj0idCIvPiddLEdCb3g6Wyc8bzpsb2NrIHY6ZXh0PSJlZGl0IiByb3RhdGlvbj0idCIvPiddLERyb3A6Wyc8bzpsb2NrIHY6ZXh0PSJl''@;'; + put 'put ''ZGl0IiByb3RhdGlvbj0idCIgdGV4dD0idCIvPiddLExpc3Q6Wyc8bzpsb2NrIHY6ZXh0PSJlZGl0IiByb3RhdGlvbj0idCIgdGV4dD0idCIvPiddLFNwaW46Wyc8bzpsb2NrIHY6ZXh0PSJlZGl0IiByb3RhdGlvbj0idCIgdGV4dD0idCIvPiddLFNjcm9sbDpbJzxvOmxvY2sgdjpleHQ9ImVk''@;'; + put 'put ''aXQiIHJvdGF0aW9uPSJ0IiB0ZXh0PSJ0Ii8+J10sTGFiZWw6Wyc8bzpsb2NrIHY6ZXh0PSJlZGl0IiByb3RhdGlvbj0idCIvPiddLFJhZGlvOlsnPHY6cGF0aCBzaGFkb3dvaz0idCIgc3Ryb2tlb2s9InQiIGZpbGxvaz0idCIvPicsJzxvOmxvY2sgdjpleHQ9ImVkaXQiIHJvdGF0aW9uPSJ0''@;'; + put 'put ''Ii8+J10sQ2hlY2tib3g6Wyc8djpwYXRoIHNoYWRvd29rPSJ0IiBzdHJva2Vvaz0idCIgZmlsbG9rPSJ0Ii8+JywnPG86bG9jayB2OmV4dD0iZWRpdCIgcm90YXRpb249InQiLz4nXSxzaGVldGpzOltdfTtmdW5jdGlvbiB6OShILHJlKXt2YXIgWD17aWQ6Il94MDAwMF9zIityZSx0eXBlOiIj''@;'; + put 'put ''X3gwMDAwX3QyMDEiLHN0eWxlOiJtc28td3JhcC1zdHlsZTp0aWdodCJ9OygiUmFkaW8iPT1IWyIhdHlwZSJdfHwiQ2hlY2tib3giPT1IWyIhdHlwZSJdfHwiTGlzdCI9PUhbIiF0eXBlIl18fCJEcm9wIj09SFsiIXR5cGUiXSkmJihYLnN0cm9rZWQ9ImYiKSwiTGFiZWwiPT1IWyIhdHlwZSJd''@;'; + put 'put ''JiYoWC5maWxsZWQ9ImYiKTt2YXIgd2U9IiI7SC50JiZ6YltIWyIhdHlwZSJdXSYmKHdlPXpiW0hbIiF0eXBlIl1dLnJlcGxhY2UoLyMjIyMvLFJyKEgudCkpKTt2YXIgeGU9W107cmV0dXJuIEgubWFjcm8mJnhlLnB1c2goc2EoIng6Rm1sYU1hY3JvIixILm1hY3JvKSksSC5saW5rJiZ4ZS5w''@;'; + put 'put ''dXNoKHNhKCJ4OkZtbGFMaW5rIixILmxpbmspKSxILnZhbCYmeGUucHVzaChzYSgiUmFkaW8iPT1IWyIhdHlwZSJdfHwiQ2hlY2tib3giPT1IWyIhdHlwZSJdPyJ4OkNoZWNrZWQiOiJ4OlZhbCIsU3RyaW5nKEgudmFsKSkpLEgucmVmJiZ4ZS5wdXNoKHNhKCJ4OkZtbGFSYW5nZSIsSC5yZWYp''@;'; + put 'put ''KSxILnNlbCYmIkxpc3QiPT1IWyIhdHlwZSJdJiZ4ZS5wdXNoKHNhKCJ4OlNlbFR5cGUiLEguc2VsKSksSC5taW4mJnhlLnB1c2goc2EoIng6TWluIixTdHJpbmcoSC5taW4pKSksSC5tYXgmJnhlLnB1c2goc2EoIng6TWF4IixTdHJpbmcoSC5tYXgpKSksSC5zdGVwJiZ4ZS5wdXNoKHNhKCJ4''@;'; + put 'put ''OkluYyIsU3RyaW5nKEguc3RlcCkpKSxILnBhZ2UmJnhlLnB1c2goc2EoIng6UGFnZSIsU3RyaW5nKEgucGFnZSkpKSxbXS5jb25jYXQoWyI8djpzaGFwZSIrcmwoWCkrIj4iXSkuY29uY2F0KEdiW0hbIiF0eXBlIl1dfHxbXSkuY29uY2F0KFt3ZV0pLmNvbmNhdChbJzx4OkNsaWVudERhdGEg''@;'; + put 'put ''T2JqZWN0VHlwZT0iJytIWyIhdHlwZSJdKyciPicsc2EoIng6QW5jaG9yIixoQihIWyIhcG9zIl0pKSxzYSgieDpQcmludE9iamVjdCIsIkZhbHNlIildKS5jb25jYXQoeGUpLmNvbmNhdChONFtIWyIhdHlwZSJdXXx8W10pLmNvbmNhdChbIjwveDpDbGllbnREYXRhPiIsIjwvdjpzaGFwZT4i''@;'; + put 'put ''XSl9ZnVuY3Rpb24gQ20oSCxyZSxYLHdlKXt2YXIgeGU9eyIhaWQiOnt9fSxGZT1bX2koInhtbCIsbnVsbCx7InhtbG5zOnYiOnVhX3YsInhtbG5zOm8iOnVhX28sInhtbG5zOngiOnVhX3h9KS5yZXBsYWNlKC9cLz4vLCI+IiksX2koIm86c2hhcGVsYXlvdXQiLF9pKCJvOmlkbWFwIixudWxs''@;'; + put 'put ''LHsidjpleHQiOiJlZGl0IixkYXRhOjF9KSx7InY6ZXh0IjoiZWRpdCJ9KSwnPHY6c2hhcGV0eXBlIGlkPSJfeDAwMDBfdDc1IiBjb29yZHNpemU9IjIxNjAwLDIxNjAwIiBvOnNwdD0iNzUiIG86cHJlZmVycmVsYXRpdmU9InQiIHBhdGg9Im1ANEA1bEA0QDExQDlAMTFAOUA1eGUiIGZpbGxl''@;'; + put 'put ''ZD0iZiIgc3Ryb2tlZD0iZiI+JywnPHY6c3Ryb2tlIGpvaW5zdHlsZT0ibWl0ZXIiLz4nLCI8djpmb3JtdWxhcz4iLCc8djpmIGVxbj0iaWYgbGluZURyYXduIHBpeGVsTGluZVdpZHRoIDAiLz4nLCc8djpmIGVxbj0ic3VtIEAwIDEgMCIvPicsJzx2OmYgZXFuPSJzdW0gMCAwIEAxIi8+Jywn''@;'; + put 'put ''PHY6ZiBlcW49InByb2QgQDIgMSAyIi8+JywnPHY6ZiBlcW49InByb2QgQDMgMjE2MDAgcGl4ZWxXaWR0aCIvPicsJzx2OmYgZXFuPSJwcm9kIEAzIDIxNjAwIHBpeGVsSGVpZ2h0Ii8+JywnPHY6ZiBlcW49InN1bSBAMCAwIDEiLz4nLCc8djpmIGVxbj0icHJvZCBANiAxIDIiLz4nLCc8djpm''@;'; + put 'put ''IGVxbj0icHJvZCBANyAyMTYwMCBwaXhlbFdpZHRoIi8+JywnPHY6ZiBlcW49InN1bSBAOCAyMTYwMCAwIi8+JywnPHY6ZiBlcW49InByb2QgQDcgMjE2MDAgcGl4ZWxIZWlnaHQiLz4nLCc8djpmIGVxbj0ic3VtIEAxMCAyMTYwMCAwIi8+JywiPC92OmZvcm11bGFzPiIsJzx2OnBhdGggbzpl''@;'; + put 'put ''eHRydXNpb25vaz0iZiIgZ3JhZGllbnRzaGFwZW9rPSJ0IiBvOmNvbm5lY3R0eXBlPSJyZWN0Ii8+JywnPG86bG9jayB2OmV4dD0iZWRpdCIgYXNwZWN0cmF0aW89InQiLz4nLCI8L3Y6c2hhcGV0eXBlPiJdLFplPTE7WyJoZWFkZXIiLCJmb290ZXIiXS5mb3JFYWNoKGZ1bmN0aW9uKGplKXsh''@;'; + put 'put ''d2VbamVdfHxbIm9kZCIsImV2ZW4iLCJmaXJzdCJdLmZvckVhY2goZnVuY3Rpb24oWWUpeyF3ZVtqZV1bWWVdfHxbImxlZnQiLCJyaWdodCIsImNlbnRlciJdLmZvckVhY2goZnVuY3Rpb24oTXQpe2lmKEFycmF5LmlzQXJyYXkod2VbamVdW1llXVtNdF0pKWZvcih2YXIgeHQ9MDt4dDx3ZVtq''@;'; + put 'put ''ZV1bWWVdW010XS5sZW5ndGg7Kyt4dClpZih3ZVtqZV1bWWVdW010XVt4dF0pe3ZhciBSdD13ZVtqZV1bWWVdW010XVt4dF07aWYoInJlbW90ZSI9PVJ0WyIhZGF0YXR5cGUiXSl0aHJvdyJDYW5ub3QgdXNlIGxpbmtlZCBpbWFnZSBpbiBoZWFkZXIgb3IgZm9vdGVyIjtmb3IoO0tuKEgsInhs''@;'; + put 'put ''L21lZGlhL2ltYWdlIitaZSsiLmpwZyIpOykrK1plO0guZmlsZSgieGwvbWVkaWEvaW1hZ2UiK1plKyIuanBnIixPRShSdCkse2JpbmFyeTohMH0pLFh0KHhlLC0xLCIuLi9tZWRpYS9pbWFnZSIrWmUrIi5qcGciLHB0LklNRyk7dmFyIFV0PSJfeDAwMDBfcyIrKDEwMjUrUnQuX2NudCksbm49''@;'; + put 'put ''InBvc2l0aW9uOmFic29sdXRlO21hcmdpbi1sZWZ0OjA7bWFyZ2luLXRvcDowO3otaW5kZXg6IisoUnQuX2NudCsxKSsiOyI7bm4rPSJ3aWR0aDoiK1J0WyIhcG9zIl0udysicHg7Iixubis9ImhlaWdodDoiK1J0WyIhcG9zIl0uaCsicHg7Ijt2YXIgQ249TXQuY2hhckF0KDApLnRvVXBwZXJD''@;'; + put 'put ''YXNlKCkramUuY2hhckF0KDApLnRvVXBwZXJDYXNlKCk7Im9kZCIhPT1ZZSYmKENuKz1ZZS50b1VwcGVyQ2FzZSgpKSx3ZVtqZV1bWWVdW010XS5sZW5ndGg+MSYmKENuKz14dCksRmUucHVzaChfaSgidjpzaGFwZSIsWyc8djppbWFnZWRhdGEgbzpyZWxpZD0icklkJysoUnQuX2NudCsxKSsn''@;'; + put 'put ''IiBvOnRpdGxlPSJzaGVldGpzIi8+JywnPG86bG9jayB2OmV4dD0iZWRpdCIgcm90YXRpb249InQiLz4nXS5qb2luKCIiKSx7aWQ6Q24sIm86c3BpZCI6VXQsdHlwZToiI194MDAwMF90NzUiLHN0eWxlOm5ufSkpfX0pfSl9KSxGZS5wdXNoKCI8L3htbD4iKSxILmZpbGUoInhsL2RyYXdpbmdz''@;'; + put 'put ''L3ZtbERyYXdpbmciK1grIkhGLnZtbCIsRmUuam9pbigiIikpLEguZmlsZSgieGwvZHJhd2luZ3MvX3JlbHMvdm1sRHJhd2luZyIrWCsiSEYudm1sLnJlbHMiLGl0KHhlKSl9cHQuQ01OVD0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL29mZmljZURvY3VtZW50LzIwMDYvcmVs''@;'; + put 'put ''YXRpb25zaGlwcy9jb21tZW50cyI7dmFyIGI2PV9pKCJjb21tZW50cyIsbnVsbCx7eG1sbnM6WDAubWFpblswXX0pO2Z1bmN0aW9uIFdiKEgpe3ZhciByZT1bY24sYjZdLFg9W107cmV0dXJuIHJlLnB1c2goIjxhdXRob3JzPiIpLEguZm9yRWFjaChmdW5jdGlvbih3ZSl7d2VbMV0uZm9yRWFj''@;'; + put 'put ''aChmdW5jdGlvbih4ZSl7dmFyIEZlPVJyKHhlLmEpO1guaW5kZXhPZihGZSk+LTF8fChYLnB1c2goRmUpLHJlLnB1c2goIjxhdXRob3I+IitGZSsiPC9hdXRob3I+IikpfSl9KSxyZS5wdXNoKCI8L2F1dGhvcnM+IikscmUucHVzaCgiPGNvbW1lbnRMaXN0PiIpLEguZm9yRWFjaChmdW5jdGlv''@;'; + put 'put ''bih3ZSl7d2VbMV0uZm9yRWFjaChmdW5jdGlvbih4ZSl7cmUucHVzaCgnPGNvbW1lbnQgcmVmPSInK3dlWzBdKyciIGF1dGhvcklkPSInK1guaW5kZXhPZihScih4ZS5hKSkrJyI+PHRleHQ+JykscmUucHVzaCh4ZS5SP3U2KHhlLlIpOnNhKCJ0IixudWxsPT14ZS50PyIiOlJyKHhlLnQpKSks''@;'; + put 'put ''cmUucHVzaCgiPC90ZXh0PjwvY29tbWVudD4iKX0pfSkscmUucHVzaCgiPC9jb21tZW50TGlzdD4iKSxyZS5sZW5ndGg+MiYmKHJlW3JlLmxlbmd0aF09IjwvY29tbWVudHM+IixyZVsxXT1yZVsxXS5yZXBsYWNlKCIvPiIsIj4iKSkscmUuam9pbigiIil9dmFyIGJmPXh1O2Z1bmN0aW9uIFVi''@;'; + put 'put ''KEgpe3ZhciByZT1KMigpLFg9W107cmV0dXJuIEMwKHJlLCJCcnRCZWdpbkNvbW1lbnRzIiksQzAocmUsIkJydEJlZ2luQ29tbWVudEF1dGhvcnMiKSxILmZvckVhY2goZnVuY3Rpb24od2Upe3dlWzFdLmZvckVhY2goZnVuY3Rpb24oeGUpe1guaW5kZXhPZih4ZS5hKT4tMXx8KFgucHVzaCh4''@;'; + put 'put ''ZS5hLnNsaWNlKDAsNTQpKSxDMChyZSwiQnJ0Q29tbWVudEF1dGhvciIsZnVuY3Rpb24gSWgoSCl7cmV0dXJuIGx1KEguc2xpY2UoMCw1NCkpfSh4ZS5hKSkpfSl9KSxDMChyZSwiQnJ0RW5kQ29tbWVudEF1dGhvcnMiKSxDMChyZSwiQnJ0QmVnaW5Db21tZW50TGlzdCIpLEguZm9yRWFjaChm''@;'; + put 'put ''dW5jdGlvbih3ZSl7d2VbMV0uZm9yRWFjaChmdW5jdGlvbih4ZSl7eGUuaWF1dGhvcj1YLmluZGV4T2YoeGUuYSk7dmFyIEZlPXtzOnVsKHdlWzBdKSxlOnVsKHdlWzBdKX07QzAocmUsIkJydEJlZ2luQ29tbWVudCIsZnVuY3Rpb24gQkUoSCxyZSl7cmV0dXJuIG51bGw9PXJlJiYocmU9Umko''@;'; + put 'put ''MzYpKSxyZS53cml0ZV9zaGlmdCg0LEhbMV0uaWF1dGhvciksR3AoSFswXSxyZSkscmUud3JpdGVfc2hpZnQoNCwwKSxyZS53cml0ZV9zaGlmdCg0LDApLHJlLndyaXRlX3NoaWZ0KDQsMCkscmUud3JpdGVfc2hpZnQoNCwwKSxyZX0oW0ZlLHhlXSkpLHhlLnQmJnhlLnQubGVuZ3RoPjAmJkMw''@;'; + put 'put ''KHJlLCJCcnRDb21tZW50VGV4dCIsZnVuY3Rpb24gcXcoSCxyZSl7dmFyIFg9ITE7cmV0dXJuIG51bGw9PXJlJiYoWD0hMCxyZT1SaSgyMys0KkgudC5sZW5ndGgpKSxyZS53cml0ZV9zaGlmdCgxLDEpLGx1KEgudCxyZSkscmUud3JpdGVfc2hpZnQoNCwxKSxmdW5jdGlvbiBLbyhILHJlKXty''@;'; + put 'put ''ZXx8KHJlPVJpKDQpKSxyZS53cml0ZV9zaGlmdCgyLEguaWNofHwwKSxyZS53cml0ZV9zaGlmdCgyLEguaWZudHx8MCl9KHtpY2g6MCxpZm50OjB9LHJlKSxYP3JlLnNsaWNlKDAscmUubCk6cmV9KHhlKSksQzAocmUsIkJydEVuZENvbW1lbnQiKSxkZWxldGUgeGUuaWF1dGhvcn0pfSksQzAo''@;'; + put 'put ''cmUsIkJydEVuZENvbW1lbnRMaXN0IiksQzAocmUsIkJydEVuZENvbW1lbnRzIikscmUuZW5kKCl9dmFyIGdCPVsieGxzYiIsInhsc20iLCJ4bGFtIiwiYmlmZjgiLCJ4bGEiXTtwdC5EUz0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL29mZmljZURvY3VtZW50LzIwMDYvcmVs''@;'; + put 'put ''YXRpb25zaGlwcy9kaWFsb2dzaGVldCIscHQuTVM9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vb2ZmaWNlLzIwMDYvcmVsYXRpb25zaGlwcy94bE1hY3Jvc2hlZXQiO3ZhciBEMz1mdW5jdGlvbigpe3ZhciBIPS8oXnxbXkEtWmEtel9dKVIoXFs/LT9cZCtcXXxbMS05XVxkKnwpQyhc''@;'; + put 'put ''Wz8tP1xkK1xdfFsxLTldXGQqfCkoPyFbQS1aYS16MC05X10pL2cscmU9e3I6MCxjOjB9O2Z1bmN0aW9uIFgod2UseGUsRmUsWmUpe3ZhciBqZT0hMSxZZT0hMTswPT1GZS5sZW5ndGg/WWU9ITA6IlsiPT1GZS5jaGFyQXQoMCkmJihZZT0hMCxGZT1GZS5zbGljZSgxLC0xKSksMD09WmUubGVu''@;'; + put 'put ''Z3RoP2plPSEwOiJbIj09WmUuY2hhckF0KDApJiYoamU9ITAsWmU9WmUuc2xpY2UoMSwtMSkpO3ZhciBNdD1GZS5sZW5ndGg+MD8wfHBhcnNlSW50KEZlLDEwKTowLHh0PVplLmxlbmd0aD4wPzB8cGFyc2VJbnQoWmUsMTApOjA7cmV0dXJuIGplP3h0Kz1yZS5jOi0teHQsWWU/TXQrPXJlLnI6''@;'; + put 'put ''LS1NdCx4ZSsoamU/IiI6IiQiKStfYSh4dCkrKFllPyIiOiIkIikrWGEoTXQpfXJldHVybiBmdW5jdGlvbih4ZSxGZSl7cmV0dXJuIHJlPUZlLHhlLnJlcGxhY2UoSCxYKX19KCksU209LyhefFteLl9BLVowLTldKShbJF0/KShbQS1aXXsxLDJ9fFtBLVddW0EtWl17Mn18WFtBLUVdW0EtWl18''@;'; + put 'put ''WEZbQS1EXSkoWyRdPykoMTBbMC0zXVxkezR9fDEwNFswLTddXGR7M318MTA0OFswLTRdXGR7Mn18MTA0ODVbMC02XVxkfDEwNDg1N1swLTZdfFsxLTldXGR7MCw1fSkoPyFbXy5cKEEtWmEtejAtOV0pL2csSEU9ZnVuY3Rpb24ocmUsWCl7cmV0dXJuIHJlLnJlcGxhY2UoU20sZnVuY3Rpb24o''@;'; + put 'put ''d2UseGUsRmUsWmUsamUsWWUpe3ZhciBNdD1taChaZSktKEZlPzA6WC5jKSx4dD1hcyhZZSktKGplPzA6WC5yKTtyZXR1cm4geGUrIlIiKygwPT14dD8iIjpqZT94dCsxOiJbIit4dCsiXSIpKyJDIisoMD09TXQ/IiI6RmU/TXQrMToiWyIrTXQrIl0iKX0pfTtmdW5jdGlvbiBVOShILHJlKXty''@;'; + put 'put ''ZXR1cm4gSC5yZXBsYWNlKFNtLGZ1bmN0aW9uKFgsd2UseGUsRmUsWmUsamUpe3JldHVybiB3ZSsoIiQiPT14ZT94ZStGZTpfYShtaChGZSkrcmUuYykpKygiJCI9PVplP1plK2plOlhhKGFzKGplKStyZS5yKSl9KS5yZXBsYWNlKC8oXGQrKTooXGQrKS9nLGZ1bmN0aW9uKFgsd2UseGUpe3Jl''@;'; + put 'put ''dHVybiBYYShhcyh3ZSkrcmUucikrIjoiK1hhKGFzKHhlKStyZS5yKX0pfWZ1bmN0aW9uIFY0KEgscmUsWCl7dmFyIHhlPXZzKHJlKS5zLEZlPXVsKFgpO3JldHVybiBVOShILHtyOkZlLnIteGUucixjOkZlLmMteGUuY30pfWZ1bmN0aW9uIFhiKEgpe3JldHVybiBILnJlcGxhY2UoL194bGZu''@;'; + put 'put ''XC4vZywiIil9ZnVuY3Rpb24gYjEoSCl7SC5sKz0xfWZ1bmN0aW9uIGh1KEgscmUpe3ZhciBYPUgucmVhZF9zaGlmdCgxPT1yZT8xOjIpO3JldHVyblsxNjM4MyZYLFg+PjE0JjEsWD4+MTUmMV19ZnVuY3Rpb24gTW0oSCxyZSxYKXt2YXIgd2U9MjtpZihYKXtpZihYLmJpZmY+PTImJlguYmlm''@;'; + put 'put ''Zjw9NSlyZXR1cm4gS2IoSCk7MTI9PVguYmlmZiYmKHdlPTQpfXZhciB4ZT1ILnJlYWRfc2hpZnQod2UpLEZlPUgucmVhZF9zaGlmdCh3ZSksWmU9aHUoSCwyKSxqZT1odShILDIpO3JldHVybntzOntyOnhlLGM6WmVbMF0sY1JlbDpaZVsxXSxyUmVsOlplWzJdfSxlOntyOkZlLGM6amVbMF0s''@;'; + put 'put ''Y1JlbDpqZVsxXSxyUmVsOmplWzJdfX19ZnVuY3Rpb24gS2IoSCl7dmFyIHJlPWh1KEgsMiksWD1odShILDIpLHdlPUgucmVhZF9zaGlmdCgxKSx4ZT1ILnJlYWRfc2hpZnQoMSk7cmV0dXJue3M6e3I6cmVbMF0sYzp3ZSxjUmVsOnJlWzFdLHJSZWw6cmVbMl19LGU6e3I6WFswXSxjOnhlLGNS''@;'; + put 'put ''ZWw6WFsxXSxyUmVsOlhbMl19fX1mdW5jdGlvbiBORShILHJlLFgpe2lmKFgmJlguYmlmZj49MiYmWC5iaWZmPD01KXJldHVybiBmdW5jdGlvbiBWRShIKXt2YXIgcmU9aHUoSCwyKSxYPUgucmVhZF9zaGlmdCgxKTtyZXR1cm57cjpyZVswXSxjOlgsY1JlbDpyZVsxXSxyUmVsOnJlWzJdfX0o''@;'; + put 'put ''SCk7dmFyIHdlPUgucmVhZF9zaGlmdChYJiYxMj09WC5iaWZmPzQ6MikseGU9aHUoSCwyKTtyZXR1cm57cjp3ZSxjOnhlWzBdLGNSZWw6eGVbMV0sclJlbDp4ZVsyXX19ZnVuY3Rpb24gQUIoSCl7dmFyIHJlPUgucmVhZF9zaGlmdCgyKSxYPUgucmVhZF9zaGlmdCgyKTtyZXR1cm57cjpyZSxj''@;'; + put 'put ''OjI1NSZYLGZRdW90ZWQ6ISEoMTYzODQmWCksY1JlbDpYPj4xNSxyUmVsOlg+PjE1fX1mdW5jdGlvbiBJZChIKXtyZXR1cm5bSC5yZWFkX3NoaWZ0KDEpLEgucmVhZF9zaGlmdCgxKV19ZnVuY3Rpb24gcjUoSCxyZSl7dmFyIFg9W0gucmVhZF9zaGlmdCgxKV07aWYoMTI9PXJlKXN3aXRjaChY''@;'; + put 'put ''WzBdKXtjYXNlIDI6WFswXT00O2JyZWFrO2Nhc2UgNDpYWzBdPTE2O2JyZWFrO2Nhc2UgMDpYWzBdPTE7YnJlYWs7Y2FzZSAxOlhbMF09Mn1zd2l0Y2goWFswXSl7Y2FzZSA0OlhbMV09dGEoSCwxKT8iVFJVRSI6IkZBTFNFIiwxMiE9cmUmJihILmwrPTcpO2JyZWFrO2Nhc2UgMzc6Y2FzZSAx''@;'; + put 'put ''NjpYWzFdPU4xW0hbSC5sXV0sSC5sKz0xMj09cmU/NDo4O2JyZWFrO2Nhc2UgMDpILmwrPTg7YnJlYWs7Y2FzZSAxOlhbMV09STIoSCk7YnJlYWs7Y2FzZSAyOlhbMV09ZGYoSCwwLHtiaWZmOnJlPjAmJnJlPDg/MjpyZX0pO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJCYWQgU2Vy''@;'; + put 'put ''QXI6ICIrWFswXSl9cmV0dXJuIFh9ZnVuY3Rpb24gVEIoSCxyZSxYKXtmb3IodmFyIHdlPUgucmVhZF9zaGlmdCgxMj09WC5iaWZmPzQ6MikseGU9W10sRmU9MDtGZSE9d2U7KytGZSl4ZS5wdXNoKCgxMj09WC5iaWZmP3doOm42KShILDgpKTtyZXR1cm4geGV9ZnVuY3Rpb24gUUUoSCxyZSxY''@;'; + put 'put ''KXt2YXIgd2U9MCx4ZT0wOzEyPT1YLmJpZmY/KHdlPUgucmVhZF9zaGlmdCg0KSx4ZT1ILnJlYWRfc2hpZnQoNCkpOih4ZT0xK0gucmVhZF9zaGlmdCgxKSx3ZT0xK0gucmVhZF9zaGlmdCgyKSksWC5iaWZmPj0yJiZYLmJpZmY8OCYmKC0td2UsMD09LS14ZSYmKHhlPTI1NikpO2Zvcih2YXIg''@;'; + put 'put ''RmU9MCxaZT1bXTtGZSE9d2UmJihaZVtGZV09W10pOysrRmUpZm9yKHZhciBqZT0wO2plIT14ZTsrK2plKVplW0ZlXVtqZV09cjUoSCxYLmJpZmYpO3JldHVybiBaZX1mdW5jdGlvbiBvNShILHJlLFgpe3JldHVybiBILmwrPTIsW0FCKEgpXX1mdW5jdGlvbiBKOShIKXtyZXR1cm4gSC5sKz02''@;'; + put 'put ''LFtdfXZhciB0Xz1vNSxmRz1KOSxuXz1KOSxGQj1vNTtmdW5jdGlvbiBIQihIKXtyZXR1cm4gSC5sKz0yLFtjMShIKSwxJkgucmVhZF9zaGlmdCgyKV19dmFyIEt0PW81LFg5PUhCLEtFPUo5LEs5PW81LERoPW81LHJfPVsiRGF0YSIsIkFsbCIsIkhlYWRlcnMiLCI/PyIsIj9EYXRhMiIsIj8/''@;'; + put 'put ''IiwiP0RhdGFIZWFkZXJzIiwiPz8iLCJUb3RhbHMiLCI/PyIsIj8/IiwiPz8iLCI/RGF0YVRvdGFscyIsIj8/IiwiPz8iLCI/PyIsIj9DdXJyZW50Il0sbDU9ezE6e246IlB0Z0V4cCIsZjpmdW5jdGlvbiB1RyhILHJlLFgpe3JldHVybiBILmwrKyxYJiYxMj09WC5iaWZmP1tILnJlYWRfc2hp''@;'; + put 'put ''ZnQoNCwiaSIpLDBdOltILnJlYWRfc2hpZnQoMiksSC5yZWFkX3NoaWZ0KFgmJjI9PVguYmlmZj8xOjIpXX19LDI6e246IlB0Z1RibCIsZjpfc30sMzp7bjoiUHRnQWRkIixmOmIxfSw0OntuOiJQdGdTdWIiLGY6YjF9LDU6e246IlB0Z011bCIsZjpiMX0sNjp7bjoiUHRnRGl2IixmOmIxfSw3''@;'; + put 'put ''OntuOiJQdGdQb3dlciIsZjpiMX0sODp7bjoiUHRnQ29uY2F0IixmOmIxfSw5OntuOiJQdGdMdCIsZjpiMX0sMTA6e246IlB0Z0xlIixmOmIxfSwxMTp7bjoiUHRnRXEiLGY6YjF9LDEyOntuOiJQdGdHZSIsZjpiMX0sMTM6e246IlB0Z0d0IixmOmIxfSwxNDp7bjoiUHRnTmUiLGY6YjF9LDE1''@;'; + put 'put ''OntuOiJQdGdJc2VjdCIsZjpiMX0sMTY6e246IlB0Z1VuaW9uIixmOmIxfSwxNzp7bjoiUHRnUmFuZ2UiLGY6YjF9LDE4OntuOiJQdGdVcGx1cyIsZjpiMX0sMTk6e246IlB0Z1VtaW51cyIsZjpiMX0sMjA6e246IlB0Z1BlcmNlbnQiLGY6YjF9LDIxOntuOiJQdGdQYXJlbiIsZjpiMX0sMjI6''@;'; + put 'put ''e246IlB0Z01pc3NBcmciLGY6YjF9LDIzOntuOiJQdGdTdHIiLGY6ZnVuY3Rpb24geEIoSCxyZSxYKXtyZXR1cm4gSC5sKyssemMoSCwwLFgpfX0sMjY6e246IlB0Z1NoZWV0IixmOmZ1bmN0aW9uIExkKEgscmUsWCl7cmV0dXJuIEgubCs9NSxILmwrPTIsSC5sKz0yPT1YLmJpZmY/MTo0LFsi''@;'; + put 'put ''UFRHU0hFRVQiXX19LDI3OntuOiJQdGdFbmRTaGVldCIsZjpmdW5jdGlvbiBfNihILHJlLFgpe3JldHVybiBILmwrPTI9PVguYmlmZj80OjUsWyJQVEdFTkRTSEVFVCJdfX0sMjg6e246IlB0Z0VyciIsZjpmdW5jdGlvbiBEZChIKXtyZXR1cm4gSC5sKyssTjFbSC5yZWFkX3NoaWZ0KDEpXX19''@;'; + put 'put ''LDI5OntuOiJQdGdCb29sIixmOmZ1bmN0aW9uIFVFKEgpe3JldHVybiBILmwrKywwIT09SC5yZWFkX3NoaWZ0KDEpfX0sMzA6e246IlB0Z0ludCIsZjpmdW5jdGlvbiBFQihIKXtyZXR1cm4gSC5sKyssSC5yZWFkX3NoaWZ0KDIpfX0sMzE6e246IlB0Z051bSIsZjpmdW5jdGlvbiBjRyhIKXty''@;'; + put 'put ''ZXR1cm4gSC5sKyssSTIoSCl9fSwzMjp7bjoiUHRnQXJyYXkiLGY6ZnVuY3Rpb24gWkUoSCxyZSxYKXt2YXIgd2U9KDk2JkhbSC5sKytdKT4+NTtyZXR1cm4gSC5sKz0yPT1YLmJpZmY/NjoxMj09WC5iaWZmPzE0OjcsW3dlXX19LDMzOntuOiJQdGdGdW5jIixmOmZ1bmN0aW9uIHFiKEgscmUs''@;'; + put 'put ''WCl7dmFyIHdlPSg5NiZIW0gubF0pPj41O0gubCs9MTt2YXIgeGU9SC5yZWFkX3NoaWZ0KFgmJlguYmlmZjw9Mz8xOjIpO3JldHVybltjX1t4ZV0sYzVbeGVdLHdlXX19LDM0OntuOiJQdGdGdW5jVmFyIixmOmZ1bmN0aW9uIGVfKEgscmUsWCl7dmFyIHdlPUhbSC5sKytdLHhlPUgucmVhZF9z''@;'; + put 'put ''aGlmdCgxKSxGZT1YJiZYLmJpZmY8PTM/Wzg4PT13ZT8tMTowLEgucmVhZF9zaGlmdCgxKV06ZnVuY3Rpb24gTUIoSCl7cmV0dXJuW0hbSC5sKzFdPj43LDMyNzY3JkgucmVhZF9zaGlmdCgyKV19KEgpO3JldHVyblt4ZSwoMD09PUZlWzBdP2M1OnVfKVtGZVsxXV1dfX0sMzU6e246IlB0Z05h''@;'; + put 'put ''bWUiLGY6ZnVuY3Rpb24gUTkoSCxyZSxYKXt2YXIgd2U9SC5yZWFkX3NoaWZ0KDEpPj4+NSYzLEZlPUgucmVhZF9zaGlmdCghWHx8WC5iaWZmPj04PzQ6Mik7c3dpdGNoKFguYmlmZil7Y2FzZSAyOkgubCs9NTticmVhaztjYXNlIDM6Y2FzZSA0OkgubCs9ODticmVhaztjYXNlIDU6SC5sKz0x''@;'; + put 'put ''Mn1yZXR1cm5bd2UsMCxGZV19fSwzNjp7bjoiUHRnUmVmIixmOmZ1bmN0aW9uIG41KEgscmUsWCl7dmFyIHdlPSg5NiZIW0gubF0pPj41O3JldHVybiBILmwrPTEsW3dlLE5FKEgsMCxYKV19fSwzNzp7bjoiUHRnQXJlYSIsZjpmdW5jdGlvbiB3QihILHJlLFgpe3JldHVyblsoOTYmSFtILmwr''@;'; + put 'put ''K10pPj41LE1tKEgsMCxYKV19fSwzODp7bjoiUHRnTWVtQXJlYSIsZjpmdW5jdGlvbiBEQihILHJlLFgpe3ZhciB3ZT1ILnJlYWRfc2hpZnQoMSk+Pj41JjM7cmV0dXJuIEgubCs9WCYmMj09WC5iaWZmPzM6NCxbd2UsSC5yZWFkX3NoaWZ0KFgmJjI9PVguYmlmZj8xOjIpXX19LDM5OntuOiJQ''@;'; + put 'put ''dGdNZW1FcnIiLGY6X3N9LDQwOntuOiJQdGdNZW1Ob01lbSIsZjpfc30sNDE6e246IlB0Z01lbUZ1bmMiLGY6ZnVuY3Rpb24gTEIoSCxyZSxYKXtyZXR1cm5bSC5yZWFkX3NoaWZ0KDEpPj4+NSYzLEgucmVhZF9zaGlmdChYJiYyPT1YLmJpZmY/MToyKV19fSw0Mjp7bjoiUHRnUmVmRXJyIixm''@;'; + put 'put ''OmZ1bmN0aW9uIE9CKEgscmUsWCl7dmFyIHdlPUgucmVhZF9zaGlmdCgxKT4+PjUmMztyZXR1cm4gSC5sKz00LFguYmlmZjw4JiZILmwtLSwxMj09WC5iaWZmJiYoSC5sKz0yKSxbd2VdfX0sNDM6e246IlB0Z0FyZWFFcnIiLGY6ZnVuY3Rpb24gSGEoSCxyZSxYKXt2YXIgd2U9KDk2JkhbSC5s''@;'; + put 'put ''KytdKT4+NTtyZXR1cm4gSC5sKz1YJiZYLmJpZmY+OD8xMjpYLmJpZmY8OD82OjgsW3dlXX19LDQ0OntuOiJQdGdSZWZOIixmOmZ1bmN0aW9uIGtzKEgscmUsWCl7dmFyIHdlPSg5NiZIW0gubF0pPj41O0gubCs9MTt2YXIgeGU9ZnVuY3Rpb24gakUoSCxyZSxYKXt2YXIgd2U9WCYmWC5iaWZm''@;'; + put 'put ''P1guYmlmZjo4O2lmKHdlPj0yJiZ3ZTw9NSlyZXR1cm4gZnVuY3Rpb24geUIoSCl7dmFyIHJlPUgucmVhZF9zaGlmdCgyKSxYPUgucmVhZF9zaGlmdCgxKSx3ZT0oMzI3NjgmcmUpPj4xNSx4ZT0oMTYzODQmcmUpPj4xNDtyZXR1cm4gcmUmPTE2MzgzLDE9PXdlJiZyZT49ODE5MiYmKHJlLT0x''@;'; + put 'put ''NjM4NCksMT09eGUmJlg+PTEyOCYmKFgtPTI1Nikse3I6cmUsYzpYLGNSZWw6eGUsclJlbDp3ZX19KEgpO3ZhciB4ZT1ILnJlYWRfc2hpZnQod2U+PTEyPzQ6MiksRmU9SC5yZWFkX3NoaWZ0KDIpLFplPSgxNjM4NCZGZSk+PjE0LGplPSgzMjc2OCZGZSk+PjE1O2lmKEZlJj0xNjM4MywxPT1q''@;'; + put 'put ''ZSlmb3IoO3hlPjUyNDI4NzspeGUtPTEwNDg1NzY7aWYoMT09WmUpZm9yKDtGZT44MTkxOylGZS09MTYzODQ7cmV0dXJue3I6eGUsYzpGZSxjUmVsOlplLHJSZWw6amV9fShILDAsWCk7cmV0dXJuW3dlLHhlXX19LDQ1OntuOiJQdGdBcmVhTiIsZjpmdW5jdGlvbiAkYihILHJlLFgpe3ZhciB3''@;'; + put 'put ''ZT0oOTYmSFtILmwrK10pPj41LHhlPWZ1bmN0aW9uIHZCKEgscmUsWCl7aWYoWC5iaWZmPDgpcmV0dXJuIEtiKEgpO3ZhciB3ZT1ILnJlYWRfc2hpZnQoMTI9PVguYmlmZj80OjIpLHhlPUgucmVhZF9zaGlmdCgxMj09WC5iaWZmPzQ6MiksRmU9aHUoSCwyKSxaZT1odShILDIpO3JldHVybntz''@;'; + put 'put ''OntyOndlLGM6RmVbMF0sY1JlbDpGZVsxXSxyUmVsOkZlWzJdfSxlOntyOnhlLGM6WmVbMF0sY1JlbDpaZVsxXSxyUmVsOlplWzJdfX19KEgsMCxYKTtyZXR1cm5bd2UseGVdfX0sNDY6e246IlB0Z01lbUFyZWFOIixmOmZ1bmN0aW9uIHE5KEgpe3JldHVybltILnJlYWRfc2hpZnQoMSk+Pj41''@;'; + put 'put ''JjMsSC5yZWFkX3NoaWZ0KDIpXX19LDQ3OntuOiJQdGdNZW1Ob01lbU4iLGY6ZnVuY3Rpb24gYTUoSCl7cmV0dXJuW0gucmVhZF9zaGlmdCgxKT4+PjUmMyxILnJlYWRfc2hpZnQoMildfX0sNTc6e246IlB0Z05hbWVYIixmOmZ1bmN0aW9uIElCKEgscmUsWCl7cmV0dXJuIDU9PVguYmlmZj9m''@;'; + put 'put ''dW5jdGlvbiBKRShIKXt2YXIgcmU9SC5yZWFkX3NoaWZ0KDEpPj4+NSYzLFg9SC5yZWFkX3NoaWZ0KDIsImkiKTtILmwrPTg7dmFyIHdlPUgucmVhZF9zaGlmdCgyKTtyZXR1cm4gSC5sKz0xMixbcmUsWCx3ZV19KEgpOltILnJlYWRfc2hpZnQoMSk+Pj41JjMsSC5yZWFkX3NoaWZ0KDIpLEgu''@;'; + put 'put ''cmVhZF9zaGlmdCg0KV19fSw1ODp7bjoiUHRnUmVmM2QiLGY6ZnVuY3Rpb24gU0IoSCxyZSxYKXt2YXIgd2U9KDk2JkhbSC5sXSk+PjU7SC5sKz0xO3ZhciB4ZT1ILnJlYWRfc2hpZnQoMik7cmV0dXJuIFgmJjU9PVguYmlmZiYmKEgubCs9MTIpLFt3ZSx4ZSxORShILDAsWCldfX0sNTk6e246''@;'; + put 'put ''IlB0Z0FyZWEzZCIsZjpmdW5jdGlvbiBiQihILHJlLFgpe3ZhciB3ZT0oOTYmSFtILmwrK10pPj41LHhlPUgucmVhZF9zaGlmdCgyLCJpIik7aWYoWCYmNT09PVguYmlmZilILmwrPTEyO3JldHVyblt3ZSx4ZSxNbShILDAsWCldfX0sNjA6e246IlB0Z1JlZkVycjNkIixmOmZ1bmN0aW9uIFJC''@;'; + put 'put ''KEgscmUsWCl7dmFyIHdlPSg5NiZIW0gubCsrXSk+PjUseGU9SC5yZWFkX3NoaWZ0KDIpLEZlPTQ7aWYoWClzd2l0Y2goWC5iaWZmKXtjYXNlIDU6RmU9MTU7YnJlYWs7Y2FzZSAxMjpGZT02fXJldHVybiBILmwrPUZlLFt3ZSx4ZV19fSw2MTp7bjoiUHRnQXJlYUVycjNkIixmOmZ1bmN0aW9u''@;'; + put 'put ''IHV0KEgscmUsWCl7dmFyIHdlPSg5NiZIW0gubCsrXSk+PjUseGU9SC5yZWFkX3NoaWZ0KDIpLEZlPTg7aWYoWClzd2l0Y2goWC5iaWZmKXtjYXNlIDU6SC5sKz0xMixGZT02O2JyZWFrO2Nhc2UgMTI6RmU9MTJ9cmV0dXJuIEgubCs9RmUsW3dlLHhlXX19LDI1NTp7fX0sb189ezY0OjMyLDk2''@;'; + put 'put ''OjMyLDY1OjMzLDk3OjMzLDY2OjM0LDk4OjM0LDY3OjM1LDk5OjM1LDY4OjM2LDEwMDozNiw2OTozNywxMDE6MzcsNzA6MzgsMTAyOjM4LDcxOjM5LDEwMzozOSw3Mjo0MCwxMDQ6NDAsNzM6NDEsMTA1OjQxLDc0OjQyLDEwNjo0Miw3NTo0MywxMDc6NDMsNzY6NDQsMTA4OjQ0LDc3OjQ1LDEw''@;'; + put 'put ''OTo0NSw3ODo0NiwxMTA6NDYsNzk6NDcsMTExOjQ3LDg4OjM0LDEyMDozNCw4OTo1NywxMjE6NTcsOTA6NTgsMTIyOjU4LDkxOjU5LDEyMzo1OSw5Mjo2MCwxMjQ6NjAsOTM6NjEsMTI1OjYxfTshZnVuY3Rpb24oKXtmb3IodmFyIEggaW4gb18pbDVbSF09bDVbb19bSF1dfSgpO3ZhciBFbT17''@;'; + put 'put ''MTp7bjoiUHRnRWxmTGVsIixmOkhCfSwyOntuOiJQdGdFbGZSdyIsZjpLOX0sMzp7bjoiUHRnRWxmQ29sIixmOnRffSw2OntuOiJQdGdFbGZSd1YiLGY6RGh9LDc6e246IlB0Z0VsZkNvbFYiLGY6RkJ9LDEwOntuOiJQdGdFbGZSYWRpY2FsIixmOkt0fSwxMTp7bjoiUHRnRWxmUmFkaWNhbFMi''@;'; + put 'put ''LGY6S0V9LDEzOntuOiJQdGdFbGZDb2xTIixmOmZHfSwxNTp7bjoiUHRnRWxmQ29sU1YiLGY6bl99LDE2OntuOiJQdGdFbGZSYWRpY2FsTGVsIixmOlg5fSwyNTp7bjoiUHRnTGlzdCIsZjpmdW5jdGlvbiAkOShIKXtILmwrPTI7dmFyIHJlPUgucmVhZF9zaGlmdCgyKSxYPUgucmVhZF9zaGlm''@;'; + put 'put ''dCgyKSx3ZT1ILnJlYWRfc2hpZnQoNCkseGU9SC5yZWFkX3NoaWZ0KDIpLEZlPUgucmVhZF9zaGlmdCgyKTtyZXR1cm57aXh0aTpyZSxjb2x0eXBlOjMmWCxydDpyX1tYPj4yJjMxXSxpZHg6d2UsYzp4ZSxDOkZlfX19LDI5OntuOiJQdGdTeE5hbWUiLGY6ZnVuY3Rpb24gaV8oSCl7cmV0dXJu''@;'; + put 'put ''IEgubCs9MixbSC5yZWFkX3NoaWZ0KDQpXX19LDI1NTp7fX0sX2Y9ezA6e246IlB0Z0F0dHJOb29wIixmOmZ1bmN0aW9uICRFKEgpe3JldHVybiBILmwrPTQsWzAsMF19fSwxOntuOiJQdGdBdHRyU2VtaSIsZjpmdW5jdGlvbiBrQihILHJlLFgpe3ZhciB3ZT0yNTUmSFtILmwrMV0/MTowO3Jl''@;'; + put 'put ''dHVybiBILmwrPVgmJjI9PVguYmlmZj8zOjQsW3dlXX19LDI6e246IlB0Z0F0dHJJZiIsZjpmdW5jdGlvbiBHRShILHJlLFgpe3ZhciB3ZT0yNTUmSFtILmwrMV0/MTowO3JldHVybiBILmwrPTIsW3dlLEgucmVhZF9zaGlmdChYJiYyPT1YLmJpZmY/MToyKV19fSw0OntuOiJQdGdBdHRyQ2hv''@;'; + put 'put ''b3NlIixmOmZ1bmN0aW9uIENCKEgscmUsWCl7SC5sKz0yO2Zvcih2YXIgd2U9SC5yZWFkX3NoaWZ0KFgmJjI9PVguYmlmZj8xOjIpLHhlPVtdLEZlPTA7RmU8PXdlOysrRmUpeGUucHVzaChILnJlYWRfc2hpZnQoWCYmMj09WC5iaWZmPzE6MikpO3JldHVybiB4ZX19LDg6e246IlB0Z0F0dHJH''@;'; + put 'put ''b3RvIixmOmZ1bmN0aW9uIHpFKEgscmUsWCl7dmFyIHdlPTI1NSZIW0gubCsxXT8xOjA7cmV0dXJuIEgubCs9Mixbd2UsSC5yZWFkX3NoaWZ0KFgmJjI9PVguYmlmZj8xOjIpXX19LDE2OntuOiJQdGdBdHRyU3VtIixmOmZ1bmN0aW9uIHNHKEgscmUsWCl7SC5sKz1YJiYyPT1YLmJpZmY/Mzo0''@;'; + put 'put ''fX0sMzI6e246IlB0Z0F0dHJCYXhjZWwiLGY6ZnVuY3Rpb24gX0IoSCl7dmFyIHJlPTEmSFtILmwrMV07cmV0dXJuIEgubCs9NCxbcmUsMV19fSw2NDp7bjoiUHRnQXR0clNwYWNlIixmOmZ1bmN0aW9uIGxHKEgpe3JldHVybiBILnJlYWRfc2hpZnQoMiksSWQoSCl9fSw2NTp7bjoiUHRnQXR0''@;'; + put 'put ''clNwYWNlU2VtaSIsZjpmdW5jdGlvbiBZRShIKXtyZXR1cm4gSC5yZWFkX3NoaWZ0KDIpLElkKEgpfX0sMTI4OntuOiJQdGdBdHRySWZFcnJvciIsZjpmdW5jdGlvbiBXRShIKXt2YXIgcmU9MjU1JkhbSC5sKzFdPzE6MDtyZXR1cm4gSC5sKz0yLFtyZSxILnJlYWRfc2hpZnQoMildfX0sMjU1''@;'; + put 'put ''Ont9fTtmdW5jdGlvbiBPZChILHJlLFgsd2UseGUpe2lmKHdlLmJpZmY8OClyZXR1cm4gX3MoSCxyZSk7Zm9yKHZhciBGZT1ILmwrcmUsWmU9W10samU9MDtqZSE9PVgubGVuZ3RoOysramUpc3dpdGNoKFhbamVdWzBdKXtjYXNlIlB0Z0FycmF5IjpYW2plXVsxXT1RRShILDAsd2UpLFplLnB1''@;'; + put 'put ''c2goWFtqZV1bMV0pO2JyZWFrO2Nhc2UiUHRnTWVtQXJlYSI6WFtqZV1bMl09VEIoSCwwLHdlKSxaZS5wdXNoKFhbamVdWzJdKTticmVhaztjYXNlIlB0Z0V4cCI6d2UmJjEyPT13ZS5iaWZmJiYoWFtqZV1bMV1bMV09SC5yZWFkX3NoaWZ0KDQpLFplLnB1c2goWFtqZV1bMV0pKTticmVhaztj''@;'; + put 'put ''YXNlIlB0Z0xpc3QiOmNhc2UiUHRnRWxmUmFkaWNhbFMiOmNhc2UiUHRnRWxmQ29sUyI6Y2FzZSJQdGdFbGZDb2xTViI6dGhyb3ciVW5zdXBwb3J0ZWQgIitYW2plXVswXX1yZXR1cm4gcmU9RmUtSC5sLCF4ZSYmMCE9PXJlJiZaZS5wdXNoKF9zKEgscmUpKSxaZX1mdW5jdGlvbiBqNChILHJl''@;'; + put 'put ''LFgpe2Zvcih2YXIgeGUsRmUsd2U9SC5sK3JlLFplPVtdO3dlIT1ILmw7KXJlPXdlLUgubCx4ZT1sNVtGZT1IW0gubF1dLCgyND09PUZlfHwyNT09PUZlKSYmKHhlPSgyND09PUZlP0VtOl9mKVtIW0gubCsxXV0pLHhlJiZ4ZS5mP1plLnB1c2goW3hlLm4seGUuZihILHJlLFgpXSk6X3MoSCxy''@;'; + put 'put ''ZSk7cmV0dXJuIFplfWZ1bmN0aW9uIGFfKEgpe2Zvcih2YXIgcmU9W10sWD0wO1g8SC5sZW5ndGg7KytYKXtmb3IodmFyIHdlPUhbWF0seGU9W10sRmU9MDtGZTx3ZS5sZW5ndGg7KytGZSl7dmFyIFplPXdlW0ZlXTt4ZS5wdXNoKFplPzI9PT1aZVswXT8nIicrWmVbMV0ucmVwbGFjZSgvIi9n''@;'; + put 'put ''LCciIicpKyciJzpaZVsxXToiIil9cmUucHVzaCh4ZS5qb2luKCIsIikpfXJldHVybiByZS5qb2luKCI7Iil9X2ZbMzNdPV9mWzMyXTt2YXIgcUU9e1B0Z0FkZDoiKyIsUHRnQ29uY2F0OiImIixQdGdEaXY6Ii8iLFB0Z0VxOiI9IixQdGdHZToiPj0iLFB0Z0d0OiI+IixQdGdMZToiPD0iLFB0''@;'; + put 'put ''Z0x0OiI8IixQdGdNdWw6IioiLFB0Z05lOiI8PiIsUHRnUG93ZXI6Il4iLFB0Z1N1YjoiLSJ9LGVBPW5ldyBSZWdFeHAoL1teXHdcdTRFMDAtXHU5RkZGXHUzMDQwLVx1MzBGRl0vKTtmdW5jdGlvbiBleChILHJlLFgpe2lmKCFIKXJldHVybiJTSDMzVEpTRVJSMCI7aWYoWC5iaWZmPjgmJigh''@;'; + put 'put ''SC5YVEl8fCFILlhUSVtyZV0pKXJldHVybiBILlNoZWV0TmFtZXNbcmVdO2lmKCFILlhUSSlyZXR1cm4iU0gzM1RKU0VSUjYiO3ZhciB3ZT1ILlhUSVtyZV07aWYoWC5iaWZmPDgpcmV0dXJuIHJlPjFlNCYmKHJlLT02NTUzNikscmU8MCYmKHJlPS1yZSksMD09cmU/IiI6SC5YVElbcmUtMV07''@;'; + put 'put ''aWYoIXdlKXJldHVybiJTSDMzVEpTRVJSMSI7dmFyIHhlPSIiO2lmKFguYmlmZj44KXN3aXRjaChIW3dlWzBdXVswXSl7Y2FzZSAzNTc6cmV0dXJuIHhlPS0xPT13ZVsxXT8iI1JFRiI6SC5TaGVldE5hbWVzW3dlWzFdXSx3ZVsxXT09d2VbMl0/eGU6eGUrIjoiK0guU2hlZXROYW1lc1t3ZVsy''@;'; + put 'put ''XV07Y2FzZSAzNTg6cmV0dXJuIG51bGwhPVguU0lEP0guU2hlZXROYW1lc1tYLlNJRF06IlNIMzNUSlNTQU1FIitIW3dlWzBdXVswXTtkZWZhdWx0OnJldHVybiJTSDMzVEpTU1JDIitIW3dlWzBdXVswXX1zd2l0Y2goSFt3ZVswXV1bMF1bMF0pe2Nhc2UgMTAyNTpyZXR1cm4geGU9LTE9PXdl''@;'; + put 'put ''WzFdPyIjUkVGIjpILlNoZWV0TmFtZXNbd2VbMV1dfHwiU0gzM1RKU0VSUjMiLHdlWzFdPT13ZVsyXT94ZTp4ZSsiOiIrSC5TaGVldE5hbWVzW3dlWzJdXTtjYXNlIDE0ODQ5OnJldHVybiBIW3dlWzBdXS5zbGljZSgxKS5tYXAoZnVuY3Rpb24oRmUpe3JldHVybiBGZS5OYW1lfSkuam9pbigi''@;'; + put 'put ''OzsiKTtkZWZhdWx0OnJldHVybiBIW3dlWzBdXVswXVszXT8oeGU9LTE9PXdlWzFdPyIjUkVGIjpIW3dlWzBdXVswXVszXVt3ZVsxXV18fCJTSDMzVEpTRVJSNCIsd2VbMV09PXdlWzJdP3hlOnhlKyI6IitIW3dlWzBdXVswXVszXVt3ZVsyXV0pOiJTSDMzVEpTRVJSMiJ9fWZ1bmN0aW9uIGxf''@;'; + put 'put ''KEgscmUsWCl7cmV0dXJuIGZ1bmN0aW9uIE5CKEgscmUpe2lmKCEoSHx8cmUmJnJlLmJpZmY8PTUmJnJlLmJpZmY+PTIpKXRocm93IG5ldyBFcnJvcigiZW1wdHkgc2hlZXQgbmFtZSIpO3JldHVybi8jUkVGLy50ZXN0KEgpP0g6ZUEudGVzdChIKT8iJyIrSCsiJyI6SH0oZXgoSCxyZSxYKSxY''@;'; + put 'put ''KX1mdW5jdGlvbiBXMShILHJlLFgsd2UseGUsRmUpe3ZhciBNdCx4dCxSdCxDbixaZT14ZSYmeGUuYmlmZnx8OCxqZT1GZSYmbnVsbCE9cmU/cmU6e3M6e2M6MCxyOjB9LGU6e2M6MCxyOjB9fSxZZT1bXSxVdD0wLG5uPTAsRHQ9IiI7aWYoIUhbMF18fCFIWzBdWzBdKXJldHVybiIiO2Zvcih2''@;'; + put 'put ''YXIgenQ9LTEsUG49IiIsVG49MCxPbj1IWzBdLmxlbmd0aDtUbjxPbjsrK1RuKXt2YXIgWW49SFswXVtUbl07c3dpdGNoKFluWzBdKXtjYXNlIlB0Z1VtaW51cyI6WWUucHVzaCgiLSIrWWUucG9wKCkpO2JyZWFrO2Nhc2UiUHRnVXBsdXMiOlllLnB1c2goIisiK1llLnBvcCgpKTticmVhaztj''@;'; + put 'put ''YXNlIlB0Z1BlcmNlbnQiOlllLnB1c2goWWUucG9wKCkrIiUiKTticmVhaztjYXNlIlB0Z0FkZCI6Y2FzZSJQdGdDb25jYXQiOmNhc2UiUHRnRGl2IjpjYXNlIlB0Z0VxIjpjYXNlIlB0Z0dlIjpjYXNlIlB0Z0d0IjpjYXNlIlB0Z0xlIjpjYXNlIlB0Z0x0IjpjYXNlIlB0Z011bCI6Y2FzZSJQ''@;'; + put 'put ''dGdOZSI6Y2FzZSJQdGdQb3dlciI6Y2FzZSJQdGdTdWIiOmlmKE10PVllLnBvcCgpLHh0PVllLnBvcCgpLHp0Pj0wKXtzd2l0Y2goSFswXVt6dF1bMV1bMF0pe2Nhc2UgMDpQbj1lcigiICIsSFswXVt6dF1bMV1bMV0pO2JyZWFrO2Nhc2UgMTpQbj1lcigiXHIiLEhbMF1benRdWzFdWzFdKTti''@;'; + put 'put ''cmVhaztkZWZhdWx0OmlmKFBuPSIiLHhlLldURil0aHJvdyBuZXcgRXJyb3IoIlVuZXhwZWN0ZWQgUHRnQXR0clNwYWNlVHlwZSAiK0hbMF1benRdWzFdWzBdKX14dCs9UG4senQ9LTF9WWUucHVzaCh4dCtxRVtZblswXV0rTXQpO2JyZWFrO2Nhc2UiUHRnSXNlY3QiOk10PVllLnBvcCgpLHh0''@;'; + put 'put ''PVllLnBvcCgpLFllLnB1c2goeHQrIiAiK010KTticmVhaztjYXNlIlB0Z1VuaW9uIjpNdD1ZZS5wb3AoKSx4dD1ZZS5wb3AoKSxZZS5wdXNoKHh0KyIsIitNdCk7YnJlYWs7Y2FzZSJQdGdSYW5nZSI6TXQ9WWUucG9wKCkseHQ9WWUucG9wKCksWWUucHVzaCh4dCsiOiIrTXQpO2JyZWFrO2Nh''@;'; + put 'put ''c2UiUHRnQXR0ckNob29zZSI6Y2FzZSJQdGdBdHRyR290byI6Y2FzZSJQdGdBdHRySWYiOmNhc2UiUHRnQXR0cklmRXJyb3IiOmNhc2UiUHRnQXR0ckJheGNlbCI6Y2FzZSJQdGdBdHRyU2VtaSI6Y2FzZSJQdGdNZW1BcmVhIjpjYXNlIlB0Z1RibCI6Y2FzZSJQdGdNZW1FcnIiOmNhc2UiUHRn''@;'; + put 'put ''TWVtQXJlYU4iOmNhc2UiUHRnTWVtTm9NZW1OIjpjYXNlIlB0Z0F0dHJOb29wIjpjYXNlIlB0Z1NoZWV0IjpjYXNlIlB0Z0VuZFNoZWV0IjpjYXNlIlB0Z01lbUZ1bmMiOmNhc2UiUHRnTWVtTm9NZW0iOmJyZWFrO2Nhc2UiUHRnUmVmIjpSdD11MShZblsxXVsxXSxqZSx4ZSksWWUucHVzaChw''@;'; + put 'put ''MyhSdCxaZSkpO2JyZWFrO2Nhc2UiUHRnUmVmTiI6UnQ9WD91MShZblsxXVsxXSxYLHhlKTpZblsxXVsxXSxZZS5wdXNoKHAzKFJ0LFplKSk7YnJlYWs7Y2FzZSJQdGdSZWYzZCI6VXQ9WW5bMV1bMV0sUnQ9dTEoWW5bMV1bMl0samUseGUpLER0PWxfKHdlLFV0LHhlKSxZZS5wdXNoKER0KyIh''@;'; + put 'put ''IitwMyhSdCxaZSkpO2JyZWFrO2Nhc2UiUHRnRnVuYyI6Y2FzZSJQdGdGdW5jVmFyIjp2YXIgYWk9WW5bMV1bMF0seXI9WW5bMV1bMV07YWl8fChhaT0wKTt2YXIgYXI9MD09KGFpJj0xMjcpP1tdOlllLnNsaWNlKC1haSk7WWUubGVuZ3RoLT1haSwiVXNlciI9PT15ciYmKHlyPWFyLnNoaWZ0''@;'; + put 'put ''KCkpLFllLnB1c2goeXIrIigiK2FyLmpvaW4oIiwiKSsiKSIpO2JyZWFrO2Nhc2UiUHRnQm9vbCI6WWUucHVzaChZblsxXT8iVFJVRSI6IkZBTFNFIik7YnJlYWs7Y2FzZSJQdGdJbnQiOmNhc2UiUHRnTnVtIjpZZS5wdXNoKFN0cmluZyhZblsxXSkpO2JyZWFrO2Nhc2UiUHRnU3RyIjpZZS5w''@;'; + put 'put ''dXNoKCciJytZblsxXS5yZXBsYWNlKC8iL2csJyIiJykrJyInKTticmVhaztjYXNlIlB0Z0VyciI6WWUucHVzaChZblsxXSk7YnJlYWs7Y2FzZSJQdGdBcmVhTiI6Q249bWwoWW5bMV1bMV0sWD97czpYfTpqZSx4ZSksWWUucHVzaChZdShDbix4ZSkpO2JyZWFrO2Nhc2UiUHRnQXJlYSI6Q249''@;'; + put 'put ''bWwoWW5bMV1bMV0samUseGUpLFllLnB1c2goWXUoQ24seGUpKTticmVhaztjYXNlIlB0Z0FyZWEzZCI6VXQ9WW5bMV1bMV0sQ249bWwoWW5bMV1bMl0samUseGUpLER0PWxfKHdlLFV0LHhlKSxZZS5wdXNoKER0KyIhIitZdShDbix4ZSkpO2JyZWFrO2Nhc2UiUHRnQXR0clN1bSI6WWUucHVz''@;'; + put 'put ''aCgiU1VNKCIrWWUucG9wKCkrIikiKTticmVhaztjYXNlIlB0Z05hbWUiOnZhciBHcj0od2UubmFtZXN8fFtdKVsobm49WW5bMV1bMl0pLTFdfHwod2VbMF18fFtdKVtubl0senI9R3I/R3IuTmFtZToiU0gzM1RKU05BTUUiK1N0cmluZyhubik7enIgaW4gaXgmJih6cj1peFt6cl0pLFllLnB1''@;'; + put 'put ''c2goenIpO2JyZWFrO2Nhc2UiUHRnTmFtZVgiOnZhciBvaSxxcj1ZblsxXVsxXTtpZihubj1ZblsxXVsyXSwhKHhlLmJpZmY8PTUpKXt2YXIgY3I9IiI7aWYoMTQ4NDk9PSgod2VbcXJdfHxbXSlbMF18fFtdKVswXXx8KDEwMjU9PSgod2VbcXJdfHxbXSlbMF18fFtdKVswXT93ZVtxcl1bbm5d''@;'; + put 'put ''JiZ3ZVtxcl1bbm5dLml0YWI+MCYmKGNyPXdlLlNoZWV0TmFtZXNbd2VbcXJdW25uXS5pdGFiLTFdKyIhIik6Y3I9d2UuU2hlZXROYW1lc1tubi0xXSsiISIpLHdlW3FyXSYmd2VbcXJdW25uXSljcis9d2VbcXJdW25uXS5OYW1lO2Vsc2UgaWYod2VbMF0mJndlWzBdW25uXSljcis9d2VbMF1b''@;'; + put 'put ''bm5dLk5hbWU7ZWxzZXt2YXIgdjA9KGV4KHdlLHFyLHhlKXx8IiIpLnNwbGl0KCI7OyIpO3YwW25uLTFdP2NyPXYwW25uLTFdOmNyKz0iU0gzM1RKU0VSUlgifVllLnB1c2goY3IpO2JyZWFrfXFyPDAmJihxcj0tcXIpLHdlW3FyXSYmKG9pPXdlW3FyXVtubl0pLG9pfHwob2k9e05hbWU6IlNI''@;'; + put 'put ''MzNUSlNFUlJZIn0pLFllLnB1c2gob2kuTmFtZSk7YnJlYWs7Y2FzZSJQdGdQYXJlbiI6dmFyIFVpPSIoIix0bz0iKSI7aWYoenQ+PTApe3N3aXRjaChQbj0iIixIWzBdW3p0XVsxXVswXSl7Y2FzZSAyOlVpPWVyKCIgIixIWzBdW3p0XVsxXVsxXSkrVWk7YnJlYWs7Y2FzZSAzOlVpPWVyKCJc''@;'; + put 'put ''ciIsSFswXVt6dF1bMV1bMV0pK1VpO2JyZWFrO2Nhc2UgNDp0bz1lcigiICIsSFswXVt6dF1bMV1bMV0pK3RvO2JyZWFrO2Nhc2UgNTp0bz1lcigiXHIiLEhbMF1benRdWzFdWzFdKSt0bzticmVhaztkZWZhdWx0OmlmKHhlLldURil0aHJvdyBuZXcgRXJyb3IoIlVuZXhwZWN0ZWQgUHRnQXR0''@;'; + put 'put ''clNwYWNlVHlwZSAiK0hbMF1benRdWzFdWzBdKX16dD0tMX1ZZS5wdXNoKFVpK1llLnBvcCgpK3RvKTticmVhaztjYXNlIlB0Z1JlZkVyciI6Y2FzZSJQdGdBcmVhRXJyIjpjYXNlIlB0Z0FyZWFFcnIzZCI6Y2FzZSJQdGdSZWZFcnIzZCI6WWUucHVzaCgiI1JFRiEiKTticmVhaztjYXNlIlB0''@;'; + put 'put ''Z0V4cCI6dmFyIHdpPXtjOlguYyxyOlgucn07aWYod2Uuc2hhcmVkZltZMChSdD17YzpZblsxXVsxXSxyOlluWzFdWzBdfSldKXt2YXIgWXI9d2Uuc2hhcmVkZltZMChSdCldO1llLnB1c2goVzEoWXIsamUsd2ksd2UseGUpKX1lbHNle3ZhciBFaT0hMTtmb3IoTXQ9MDtNdCE9d2UuYXJyYXlm''@;'; + put 'put ''Lmxlbmd0aDsrK010KWlmKCEoUnQuYzwoeHQ9d2UuYXJyYXlmW010XSlbMF0ucy5jfHxSdC5jPnh0WzBdLmUuY3x8UnQucjx4dFswXS5zLnJ8fFJ0LnI+eHRbMF0uZS5yKSl7WWUucHVzaChXMSh4dFsxXSxqZSx3aSx3ZSx4ZSkpLEVpPSEwO2JyZWFrfUVpfHxZZS5wdXNoKFluWzFdKX1icmVh''@;'; + put 'put ''aztjYXNlIlB0Z0FycmF5IjpZZS5wdXNoKCJ7IithXyhZblsxXSkrIn0iKTticmVhaztjYXNlIlB0Z0F0dHJTcGFjZSI6Y2FzZSJQdGdBdHRyU3BhY2VTZW1pIjp6dD1UbjticmVhaztjYXNlIlB0Z01pc3NBcmciOlllLnB1c2goIiIpO2JyZWFrO2Nhc2UiUHRnTGlzdCI6WWUucHVzaCgiVGFi''@;'; + put 'put ''bGUiK1luWzFdLmlkeCsiWyMiK1luWzFdLnJ0KyJdIik7YnJlYWs7Y2FzZSJQdGdFbGZDb2wiOmNhc2UiUHRnRWxmQ29sUyI6Y2FzZSJQdGdFbGZDb2xTViI6Y2FzZSJQdGdFbGZDb2xWIjpjYXNlIlB0Z0VsZkxlbCI6Y2FzZSJQdGdFbGZSYWRpY2FsIjpjYXNlIlB0Z0VsZlJhZGljYWxMZWwi''@;'; + put 'put ''OmNhc2UiUHRnRWxmUmFkaWNhbFMiOmNhc2UiUHRnRWxmUnciOmNhc2UiUHRnRWxmUndWIjp0aHJvdyBuZXcgRXJyb3IoIlVuc3VwcG9ydGVkIEVMRnMiKTtkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiVW5yZWNvZ25pemVkIEZvcm11bGEgVG9rZW46ICIrU3RyaW5nKFluKSl9aWYoMyE9eGUu''@;'; + put 'put ''YmlmZiYmenQ+PTAmJi0xPT1bIlB0Z0F0dHJTcGFjZSIsIlB0Z0F0dHJTcGFjZVNlbWkiLCJQdGdBdHRyR290byJdLmluZGV4T2YoSFswXVtUbl1bMF0pKXt2YXIgTnI9ITA7c3dpdGNoKChZbj1IWzBdW3p0XSlbMV1bMF0pe2Nhc2UgNDpOcj0hMTtjYXNlIDA6UG49ZXIoIiAiLFluWzFdWzFd''@;'; + put 'put ''KTticmVhaztjYXNlIDU6TnI9ITE7Y2FzZSAxOlBuPWVyKCJcciIsWW5bMV1bMV0pO2JyZWFrO2RlZmF1bHQ6aWYoUG49IiIseGUuV1RGKXRocm93IG5ldyBFcnJvcigiVW5leHBlY3RlZCBQdGdBdHRyU3BhY2VUeXBlICIrWW5bMV1bMF0pfVllLnB1c2goKE5yP1BuOiIiKStZZS5wb3AoKSso''@;'; + put 'put ''TnI/IiI6UG4pKSx6dD0tMX19aWYoWWUubGVuZ3RoPjEmJnhlLldURil0aHJvdyBuZXcgRXJyb3IoImJhZCBmb3JtdWxhIHN0YWNrIik7cmV0dXJuIFllWzBdfWZ1bmN0aW9uIGhHKEgscmUsWCl7dmFyIEZlLHdlPUgubCtyZSx4ZT0yPT1YLmJpZmY/MToyLFplPUgucmVhZF9zaGlmdCh4ZSk7''@;'; + put 'put ''aWYoNjU1MzU9PVplKXJldHVybltbXSxfcyhILHJlLTIpXTt2YXIgamU9ajQoSCxaZSxYKTtyZXR1cm4gcmUhPT1aZSt4ZSYmKEZlPU9kKEgscmUtWmUteGUsamUsWCkpLEgubD13ZSxbamUsRmVdfWZ1bmN0aW9uIHM1KEgscmUsWCl7dmFyIHhlLHdlPUgubCtyZSxGZT1ILnJlYWRfc2hpZnQo''@;'; + put 'put ''MiksWmU9ajQoSCxGZSxYKTtyZXR1cm4gNjU1MzU9PUZlP1tbXSxfcyhILHJlLTIpXToocmUhPT1GZSsyJiYoeGU9T2QoSCx3ZS1GZS0yLFplLFgpKSxbWmUseGVdKX1mdW5jdGlvbiB1NShILHJlLFgpe3ZhciB3ZT1ILmwrcmUseGU9QWMoSCk7Mj09WC5iaWZmJiYrK0gubDt2YXIgRmU9ZnVu''@;'; + put 'put ''Y3Rpb24gdHgoSCl7dmFyIHJlO2lmKDY1NTM1IT09QnMoSCxILmwrNikpcmV0dXJuW0kyKEgpLCJuIl07c3dpdGNoKEhbSC5sXSl7Y2FzZSAwOnJldHVybiBILmwrPTgsWyJTdHJpbmciLCJzIl07Y2FzZSAxOnJldHVybiByZT0xPT09SFtILmwrMl0sSC5sKz04LFtyZSwiYiJdO2Nhc2UgMjpy''@;'; + put 'put ''ZXR1cm4gcmU9SFtILmwrMl0sSC5sKz04LFtyZSwiZSJdO2Nhc2UgMzpyZXR1cm4gSC5sKz04LFsiIiwicyJdfXJldHVybltdfShIKSxaZT1ILnJlYWRfc2hpZnQoMSk7MiE9WC5iaWZmJiYoSC5yZWFkX3NoaWZ0KDEpLFguYmlmZj49NSYmSC5yZWFkX3NoaWZ0KDQpKTt2YXIgamU9ZnVuY3Rp''@;'; + put 'put ''b24geG0oSCxyZSxYKXt2YXIgRmUsd2U9SC5sK3JlLHhlPTI9PVguYmlmZj8xOjIsWmU9SC5yZWFkX3NoaWZ0KHhlKTtpZig2NTUzNT09WmUpcmV0dXJuW1tdLF9zKEgscmUtMildO3ZhciBqZT1qNChILFplLFgpO3JldHVybiByZSE9PVplK3hlJiYoRmU9T2QoSCxyZS1aZS14ZSxqZSxYKSks''@;'; + put 'put ''SC5sPXdlLFtqZSxGZV19KEgsd2UtSC5sLFgpO3JldHVybntjZWxsOnhlLHZhbDpGZVswXSxmb3JtdWxhOmplLHNoYXJlZDpaZT4+MyYxLHR0OkZlWzFdfX1mdW5jdGlvbiBuQShILHJlLFgpe3ZhciB3ZT1ILnJlYWRfc2hpZnQoNCkseGU9ajQoSCx3ZSxYKSxGZT1ILnJlYWRfc2hpZnQoNCk7''@;'; + put 'put ''cmV0dXJuW3hlLEZlPjA/T2QoSCxGZSx4ZSxYLCEwKTpudWxsXX12YXIgcEc9bkEsc189bkEsakI9bkEsWkI9ZnVuY3Rpb24gSmYoSCxyZSxYKXt2YXIgd2U9SC5yZWFkX3NoaWZ0KDQpLHhlPUgucmVhZF9zaGlmdCg0KSxGZT1qNChILHdlLFgpO3JldHVybltGZSx4ZT4wP09kKEgseGUsRmUs''@;'; + put 'put ''WCwhMCk6bnVsbF19LGdHPW5BLG1HPW5BO2Z1bmN0aW9uIG54KEgpe2lmKCgwfEgpPT1IJiZIPE1hdGgucG93KDIsMTYpJiZIPj0wKXt2YXIgcmU9UmkoMTEpO3JldHVybiByZS53cml0ZV9zaGlmdCg0LDMpLHJlLndyaXRlX3NoaWZ0KDEsMzApLHJlLndyaXRlX3NoaWZ0KDIsSCkscmUud3Jp''@;'; + put 'put ''dGVfc2hpZnQoNCwwKSxyZX12YXIgWD1SaSgxNyk7cmV0dXJuIFgud3JpdGVfc2hpZnQoNCwxMSksWC53cml0ZV9zaGlmdCgxLDMxKSxYLndyaXRlX3NoaWZ0KDgsSCksWC53cml0ZV9zaGlmdCg0LDApLFh9ZnVuY3Rpb24gckEoSCl7dmFyIHJlPVJpKDcpO3JlLndyaXRlX3NoaWZ0KDQsMysy''@;'; + put 'put ''KkgubGVuZ3RoKSxyZS53cml0ZV9zaGlmdCgxLDIzKSxyZS53cml0ZV9zaGlmdCgyLEgubGVuZ3RoKTt2YXIgWD1SaSgyKkgubGVuZ3RoKTtYLndyaXRlX3NoaWZ0KDIqSC5sZW5ndGgsSCwidXRmMTZsZSIpO3ZhciB3ZT1SaSg0KTtyZXR1cm4gd2Uud3JpdGVfc2hpZnQoNCwwKSxWKFtyZSxY''@;'; + put 'put ''LHdlXSl9ZnVuY3Rpb24gVG0oSCl7aWYoSC5tYXRjaCgvXiMoRElWXC8wIXxHRVRUSU5HX0RBVEF8TlwvQXxOQU1FXD98TlVMTCF8TlVNIXxSRUYhfFZBTFVFISkkLykpcmV0dXJuIGZ1bmN0aW9uIFo0KEgpe3ZhciByZT1SaSgxMCk7cmV0dXJuIHJlLndyaXRlX3NoaWZ0KDQsMikscmUud3Jp''@;'; + put 'put ''dGVfc2hpZnQoMSwyOCkscmUud3JpdGVfc2hpZnQoMSxIKSxyZS53cml0ZV9zaGlmdCg0LDApLHJlfSgrX2hbSF0pO2lmKEgubWF0Y2goL15cJD8oPzpbQS1XXVtBLVpdezJ9fFhbQS1FXVtBLVpdfFhGW0EtRF18W0EtWl17MSwyfSlcJD8oPzoxMFswLTNdXGR7NH18MTA0WzAtN11cZHszfXwx''@;'; + put 'put ''MDQ4WzAtNF1cZHsyfXwxMDQ4NVswLTZdXGR8MTA0ODU3WzAtNl18WzEtOV1cZHswLDV9KSQvKSlyZXR1cm4gZnVuY3Rpb24gcngoSCl7dmFyIHJlPXVsKEgpLFg9UmkoMTUpO3JldHVybiBYLndyaXRlX3NoaWZ0KDQsNyksWC53cml0ZV9zaGlmdCgxLDM2KSxYLndyaXRlX3NoaWZ0KDQscmUu''@;'; + put 'put ''ciksWC53cml0ZV9zaGlmdCgyLHJlLmN8KCIkIj09SC5jaGFyQXQoMCk/MDoxKTw8MTR8KEgubWF0Y2goL1wkXGQvKT8wOjEpPDwxNSksWC53cml0ZV9zaGlmdCg0LDApLFh9KEgpO2lmKEgubWF0Y2goL14iLioiJC8pKXJldHVybiByQShIKTt0aHJvdyJGb3JtdWxhIHwiK0grInwgbm90IHN1''@;'; + put 'put ''cHBvcnRlZCBmb3IgWExTQiJ9dmFyIHVfPXswOiJCRUVQIiwxOiJPUEVOIiwyOiJPUEVOLkxJTktTIiwzOiJDTE9TRS5BTEwiLDQ6IlNBVkUiLDU6IlNBVkUuQVMiLDY6IkZJTEUuREVMRVRFIiw3OiJQQUdFLlNFVFVQIiw4OiJQUklOVCIsOToiUFJJTlRFUi5TRVRVUCIsMTA6IlFVSVQiLDEx''@;'; + put 'put ''OiJORVcuV0lORE9XIiwxMjoiQVJSQU5HRS5BTEwiLDEzOiJXSU5ET1cuU0laRSIsMTQ6IldJTkRPVy5NT1ZFIiwxNToiRlVMTCIsMTY6IkNMT1NFIiwxNzoiUlVOIiwyMjoiU0VULlBSSU5ULkFSRUEiLDIzOiJTRVQuUFJJTlQuVElUTEVTIiwyNDoiU0VULlBBR0UuQlJFQUsiLDI1OiJSRU1P''@;'; + put 'put ''VkUuUEFHRS5CUkVBSyIsMjY6IkZPTlQiLDI3OiJESVNQTEFZIiwyODoiUFJPVEVDVC5ET0NVTUVOVCIsMjk6IlBSRUNJU0lPTiIsMzA6IkExLlIxQzEiLDMxOiJDQUxDVUxBVEUuTk9XIiwzMjoiQ0FMQ1VMQVRJT04iLDM0OiJEQVRBLkZJTkQiLDM1OiJFWFRSQUNUIiwzNjoiREFUQS5ERUxF''@;'; + put 'put ''VEUiLDM3OiJTRVQuREFUQUJBU0UiLDM4OiJTRVQuQ1JJVEVSSUEiLDM5OiJTT1JUIiw0MDoiREFUQS5TRVJJRVMiLDQxOiJUQUJMRSIsNDI6IkZPUk1BVC5OVU1CRVIiLDQzOiJBTElHTk1FTlQiLDQ0OiJTVFlMRSIsNDU6IkJPUkRFUiIsNDY6IkNFTEwuUFJPVEVDVElPTiIsNDc6IkNPTFVN''@;'; + put 'put ''Ti5XSURUSCIsNDg6IlVORE8iLDQ5OiJDVVQiLDUwOiJDT1BZIiw1MToiUEFTVEUiLDUyOiJDTEVBUiIsNTM6IlBBU1RFLlNQRUNJQUwiLDU0OiJFRElULkRFTEVURSIsNTU6IklOU0VSVCIsNTY6IkZJTEwuUklHSFQiLDU3OiJGSUxMLkRPV04iLDYxOiJERUZJTkUuTkFNRSIsNjI6IkNSRUFU''@;'; + put 'put ''RS5OQU1FUyIsNjM6IkZPUk1VTEEuR09UTyIsNjQ6IkZPUk1VTEEuRklORCIsNjU6IlNFTEVDVC5MQVNULkNFTEwiLDY2OiJTSE9XLkFDVElWRS5DRUxMIiw2NzoiR0FMTEVSWS5BUkVBIiw2ODoiR0FMTEVSWS5CQVIiLDY5OiJHQUxMRVJZLkNPTFVNTiIsNzA6IkdBTExFUlkuTElORSIsNzE6''@;'; + put 'put ''IkdBTExFUlkuUElFIiw3MjoiR0FMTEVSWS5TQ0FUVEVSIiw3MzoiQ09NQklOQVRJT04iLDc0OiJQUkVGRVJSRUQiLDc1OiJBREQuT1ZFUkxBWSIsNzY6IkdSSURMSU5FUyIsNzc6IlNFVC5QUkVGRVJSRUQiLDc4OiJBWEVTIiw3OToiTEVHRU5EIiw4MDoiQVRUQUNILlRFWFQiLDgxOiJBREQu''@;'; + put 'put ''QVJST1ciLDgyOiJTRUxFQ1QuQ0hBUlQiLDgzOiJTRUxFQ1QuUExPVC5BUkVBIiw4NDoiUEFUVEVSTlMiLDg1OiJNQUlOLkNIQVJUIiw4NjoiT1ZFUkxBWSIsODc6IlNDQUxFIiw4ODoiRk9STUFULkxFR0VORCIsODk6IkZPUk1BVC5URVhUIiw5MDoiRURJVC5SRVBFQVQiLDkxOiJQQVJTRSIs''@;'; + put 'put ''OTI6IkpVU1RJRlkiLDkzOiJISURFIiw5NDoiVU5ISURFIiw5NToiV09SS1NQQUNFIiw5NjoiRk9STVVMQSIsOTc6IkZPUk1VTEEuRklMTCIsOTg6IkZPUk1VTEEuQVJSQVkiLDk5OiJEQVRBLkZJTkQuTkVYVCIsMTAwOiJEQVRBLkZJTkQuUFJFViIsMTAxOiJGT1JNVUxBLkZJTkQuTkVYVCIs''@;'; + put 'put ''MTAyOiJGT1JNVUxBLkZJTkQuUFJFViIsMTAzOiJBQ1RJVkFURSIsMTA0OiJBQ1RJVkFURS5ORVhUIiwxMDU6IkFDVElWQVRFLlBSRVYiLDEwNjoiVU5MT0NLRUQuTkVYVCIsMTA3OiJVTkxPQ0tFRC5QUkVWIiwxMDg6IkNPUFkuUElDVFVSRSIsMTA5OiJTRUxFQ1QiLDExMDoiREVMRVRFLk5B''@;'; + put 'put ''TUUiLDExMToiREVMRVRFLkZPUk1BVCIsMTEyOiJWTElORSIsMTEzOiJITElORSIsMTE0OiJWUEFHRSIsMTE1OiJIUEFHRSIsMTE2OiJWU0NST0xMIiwxMTc6IkhTQ1JPTEwiLDExODoiQUxFUlQiLDExOToiTkVXIiwxMjA6IkNBTkNFTC5DT1BZIiwxMjE6IlNIT1cuQ0xJUEJPQVJEIiwxMjI6''@;'; + put 'put ''Ik1FU1NBR0UiLDEyNDoiUEFTVEUuTElOSyIsMTI1OiJBUFAuQUNUSVZBVEUiLDEyNjoiREVMRVRFLkFSUk9XIiwxMjc6IlJPVy5IRUlHSFQiLDEyODoiRk9STUFULk1PVkUiLDEyOToiRk9STUFULlNJWkUiLDEzMDoiRk9STVVMQS5SRVBMQUNFIiwxMzE6IlNFTkQuS0VZUyIsMTMyOiJTRUxF''@;'; + put 'put ''Q1QuU1BFQ0lBTCIsMTMzOiJBUFBMWS5OQU1FUyIsMTM0OiJSRVBMQUNFLkZPTlQiLDEzNToiRlJFRVpFLlBBTkVTIiwxMzY6IlNIT1cuSU5GTyIsMTM3OiJTUExJVCIsMTM4OiJPTi5XSU5ET1ciLDEzOToiT04uREFUQSIsMTQwOiJESVNBQkxFLklOUFVUIiwxNDI6Ik9VVExJTkUiLDE0Mzoi''@;'; + put 'put ''TElTVC5OQU1FUyIsMTQ0OiJGSUxFLkNMT1NFIiwxNDU6IlNBVkUuV09SS0JPT0siLDE0NjoiREFUQS5GT1JNIiwxNDc6IkNPUFkuQ0hBUlQiLDE0ODoiT04uVElNRSIsMTQ5OiJXQUlUIiwxNTA6IkZPUk1BVC5GT05UIiwxNTE6IkZJTEwuVVAiLDE1MjoiRklMTC5MRUZUIiwxNTM6IkRFTEVU''@;'; + put 'put ''RS5PVkVSTEFZIiwxNTU6IlNIT1JULk1FTlVTIiwxNTk6IlNFVC5VUERBVEUuU1RBVFVTIiwxNjE6IkNPTE9SLlBBTEVUVEUiLDE2MjoiREVMRVRFLlNUWUxFIiwxNjM6IldJTkRPVy5SRVNUT1JFIiwxNjQ6IldJTkRPVy5NQVhJTUlaRSIsMTY2OiJDSEFOR0UuTElOSyIsMTY3OiJDQUxDVUxB''@;'; + put 'put ''VEUuRE9DVU1FTlQiLDE2ODoiT04uS0VZIiwxNjk6IkFQUC5SRVNUT1JFIiwxNzA6IkFQUC5NT1ZFIiwxNzE6IkFQUC5TSVpFIiwxNzI6IkFQUC5NSU5JTUlaRSIsMTczOiJBUFAuTUFYSU1JWkUiLDE3NDoiQlJJTkcuVE8uRlJPTlQiLDE3NToiU0VORC5UTy5CQUNLIiwxODU6Ik1BSU4uQ0hB''@;'; + put 'put ''UlQuVFlQRSIsMTg2OiJPVkVSTEFZLkNIQVJULlRZUEUiLDE4NzoiU0VMRUNULkVORCIsMTg4OiJPUEVOLk1BSUwiLDE4OToiU0VORC5NQUlMIiwxOTA6IlNUQU5EQVJELkZPTlQiLDE5MToiQ09OU09MSURBVEUiLDE5MjoiU09SVC5TUEVDSUFMIiwxOTM6IkdBTExFUlkuM0QuQVJFQSIsMTk0''@;'; + put 'put ''OiJHQUxMRVJZLjNELkNPTFVNTiIsMTk1OiJHQUxMRVJZLjNELkxJTkUiLDE5NjoiR0FMTEVSWS4zRC5QSUUiLDE5NzoiVklFVy4zRCIsMTk4OiJHT0FMLlNFRUsiLDE5OToiV09SS0dST1VQIiwyMDA6IkZJTEwuR1JPVVAiLDIwMToiVVBEQVRFLkxJTksiLDIwMjoiUFJPTU9URSIsMjAzOiJE''@;'; + put 'put ''RU1PVEUiLDIwNDoiU0hPVy5ERVRBSUwiLDIwNjoiVU5HUk9VUCIsMjA3OiJPQkpFQ1QuUFJPUEVSVElFUyIsMjA4OiJTQVZFLk5FVy5PQkpFQ1QiLDIwOToiU0hBUkUiLDIxMDoiU0hBUkUuTkFNRSIsMjExOiJEVVBMSUNBVEUiLDIxMjoiQVBQTFkuU1RZTEUiLDIxMzoiQVNTSUdOLlRPLk9C''@;'; + put 'put ''SkVDVCIsMjE0OiJPQkpFQ1QuUFJPVEVDVElPTiIsMjE1OiJISURFLk9CSkVDVCIsMjE2OiJTRVQuRVhUUkFDVCIsMjE3OiJDUkVBVEUuUFVCTElTSEVSIiwyMTg6IlNVQlNDUklCRS5UTyIsMjE5OiJBVFRSSUJVVEVTIiwyMjA6IlNIT1cuVE9PTEJBUiIsMjIyOiJQUklOVC5QUkVWSUVXIiwy''@;'; + put 'put ''MjM6IkVESVQuQ09MT1IiLDIyNDoiU0hPVy5MRVZFTFMiLDIyNToiRk9STUFULk1BSU4iLDIyNjoiRk9STUFULk9WRVJMQVkiLDIyNzoiT04uUkVDQUxDIiwyMjg6IkVESVQuU0VSSUVTIiwyMjk6IkRFRklORS5TVFlMRSIsMjQwOiJMSU5FLlBSSU5UIiwyNDM6IkVOVEVSLkRBVEEiLDI0OToi''@;'; + put 'put ''R0FMTEVSWS5SQURBUiIsMjUwOiJNRVJHRS5TVFlMRVMiLDI1MToiRURJVElPTi5PUFRJT05TIiwyNTI6IlBBU1RFLlBJQ1RVUkUiLDI1MzoiUEFTVEUuUElDVFVSRS5MSU5LIiwyNTQ6IlNQRUxMSU5HIiwyNTY6IlpPT00iLDI1OToiSU5TRVJULk9CSkVDVCIsMjYwOiJXSU5ET1cuTUlOSU1J''@;'; + put 'put ''WkUiLDI2NToiU09VTkQuTk9URSIsMjY2OiJTT1VORC5QTEFZIiwyNjc6IkZPUk1BVC5TSEFQRSIsMjY4OiJFWFRFTkQuUE9MWUdPTiIsMjY5OiJGT1JNQVQuQVVUTyIsMjcyOiJHQUxMRVJZLjNELkJBUiIsMjczOiJHQUxMRVJZLjNELlNVUkZBQ0UiLDI3NDoiRklMTC5BVVRPIiwyNzY6IkNV''@;'; + put 'put ''U1RPTUlaRS5UT09MQkFSIiwyNzc6IkFERC5UT09MIiwyNzg6IkVESVQuT0JKRUNUIiwyNzk6Ik9OLkRPVUJMRUNMSUNLIiwyODA6Ik9OLkVOVFJZIiwyODE6IldPUktCT09LLkFERCIsMjgyOiJXT1JLQk9PSy5NT1ZFIiwyODM6IldPUktCT09LLkNPUFkiLDI4NDoiV09SS0JPT0suT1BUSU9O''@;'; + put 'put ''UyIsMjg1OiJTQVZFLldPUktTUEFDRSIsMjg4OiJDSEFSVC5XSVpBUkQiLDI4OToiREVMRVRFLlRPT0wiLDI5MDoiTU9WRS5UT09MIiwyOTE6IldPUktCT09LLlNFTEVDVCIsMjkyOiJXT1JLQk9PSy5BQ1RJVkFURSIsMjkzOiJBU1NJR04uVE8uVE9PTCIsMjk1OiJDT1BZLlRPT0wiLDI5Njoi''@;'; + put 'put ''UkVTRVQuVE9PTCIsMjk3OiJDT05TVFJBSU4uTlVNRVJJQyIsMjk4OiJQQVNURS5UT09MIiwzMDI6IldPUktCT09LLk5FVyIsMzA1OiJTQ0VOQVJJTy5DRUxMUyIsMzA2OiJTQ0VOQVJJTy5ERUxFVEUiLDMwNzoiU0NFTkFSSU8uQUREIiwzMDg6IlNDRU5BUklPLkVESVQiLDMwOToiU0NFTkFS''@;'; + put 'put ''SU8uU0hPVyIsMzEwOiJTQ0VOQVJJTy5TSE9XLk5FWFQiLDMxMToiU0NFTkFSSU8uU1VNTUFSWSIsMzEyOiJQSVZPVC5UQUJMRS5XSVpBUkQiLDMxMzoiUElWT1QuRklFTEQuUFJPUEVSVElFUyIsMzE0OiJQSVZPVC5GSUVMRCIsMzE1OiJQSVZPVC5JVEVNIiwzMTY6IlBJVk9ULkFERC5GSUVM''@;'; + put 'put ''RFMiLDMxODoiT1BUSU9OUy5DQUxDVUxBVElPTiIsMzE5OiJPUFRJT05TLkVESVQiLDMyMDoiT1BUSU9OUy5WSUVXIiwzMjE6IkFERElOLk1BTkFHRVIiLDMyMjoiTUVOVS5FRElUT1IiLDMyMzoiQVRUQUNILlRPT0xCQVJTIiwzMjQ6IlZCQUFjdGl2YXRlIiwzMjU6Ik9QVElPTlMuQ0hBUlQi''@;'; + put 'put ''LDMyODoiVkJBLklOU0VSVC5GSUxFIiwzMzA6IlZCQS5QUk9DRURVUkUuREVGSU5JVElPTiIsMzM2OiJST1VUSU5HLlNMSVAiLDMzODoiUk9VVEUuRE9DVU1FTlQiLDMzOToiTUFJTC5MT0dPTiIsMzQyOiJJTlNFUlQuUElDVFVSRSIsMzQzOiJFRElULlRPT0wiLDM0NDoiR0FMTEVSWS5ET1VH''@;'; + put 'put ''SE5VVCIsMzUwOiJDSEFSVC5UUkVORCIsMzUyOiJQSVZPVC5JVEVNLlBST1BFUlRJRVMiLDM1NDoiV09SS0JPT0suSU5TRVJUIiwzNTU6Ik9QVElPTlMuVFJBTlNJVElPTiIsMzU2OiJPUFRJT05TLkdFTkVSQUwiLDM3MDoiRklMVEVSLkFEVkFOQ0VEIiwzNzM6Ik1BSUwuQURELk1BSUxFUiIs''@;'; + put 'put ''Mzc0OiJNQUlMLkRFTEVURS5NQUlMRVIiLDM3NToiTUFJTC5SRVBMWSIsMzc2OiJNQUlMLlJFUExZLkFMTCIsMzc3OiJNQUlMLkZPUldBUkQiLDM3ODoiTUFJTC5ORVhULkxFVFRFUiIsMzc5OiJEQVRBLkxBQkVMIiwzODA6IklOU0VSVC5USVRMRSIsMzgxOiJGT05ULlBST1BFUlRJRVMiLDM4''@;'; + put 'put ''MjoiTUFDUk8uT1BUSU9OUyIsMzgzOiJXT1JLQk9PSy5ISURFIiwzODQ6IldPUktCT09LLlVOSElERSIsMzg1OiJXT1JLQk9PSy5ERUxFVEUiLDM4NjoiV09SS0JPT0suTkFNRSIsMzg4OiJHQUxMRVJZLkNVU1RPTSIsMzkwOiJBREQuQ0hBUlQuQVVUT0ZPUk1BVCIsMzkxOiJERUxFVEUuQ0hB''@;'; + put 'put ''UlQuQVVUT0ZPUk1BVCIsMzkyOiJDSEFSVC5BREQuREFUQSIsMzkzOiJBVVRPLk9VVExJTkUiLDM5NDoiVEFCLk9SREVSIiwzOTU6IlNIT1cuRElBTE9HIiwzOTY6IlNFTEVDVC5BTEwiLDM5NzoiVU5HUk9VUC5TSEVFVFMiLDM5ODoiU1VCVE9UQUwuQ1JFQVRFIiwzOTk6IlNVQlRPVEFMLlJF''@;'; + put 'put ''TU9WRSIsNDAwOiJSRU5BTUUuT0JKRUNUIiw0MTI6IldPUktCT09LLlNDUk9MTCIsNDEzOiJXT1JLQk9PSy5ORVhUIiw0MTQ6IldPUktCT09LLlBSRVYiLDQxNToiV09SS0JPT0suVEFCLlNQTElUIiw0MTY6IkZVTEwuU0NSRUVOIiw0MTc6IldPUktCT09LLlBST1RFQ1QiLDQyMDoiU0NST0xM''@;'; + put 'put ''QkFSLlBST1BFUlRJRVMiLDQyMToiUElWT1QuU0hPVy5QQUdFUyIsNDIyOiJURVhULlRPLkNPTFVNTlMiLDQyMzoiRk9STUFULkNIQVJUVFlQRSIsNDI0OiJMSU5LLkZPUk1BVCIsNDI1OiJUUkFDRVIuRElTUExBWSIsNDMwOiJUUkFDRVIuTkFWSUdBVEUiLDQzMToiVFJBQ0VSLkNMRUFSIiw0''@;'; + put 'put ''MzI6IlRSQUNFUi5FUlJPUiIsNDMzOiJQSVZPVC5GSUVMRC5HUk9VUCIsNDM0OiJQSVZPVC5GSUVMRC5VTkdST1VQIiw0MzU6IkNIRUNLQk9YLlBST1BFUlRJRVMiLDQzNjoiTEFCRUwuUFJPUEVSVElFUyIsNDM3OiJMSVNUQk9YLlBST1BFUlRJRVMiLDQzODoiRURJVEJPWC5QUk9QRVJUSUVT''@;'; + put 'put ''Iiw0Mzk6IlBJVk9ULlJFRlJFU0giLDQ0MDoiTElOSy5DT01CTyIsNDQxOiJPUEVOLlRFWFQiLDQ0MjoiSElERS5ESUFMT0ciLDQ0MzoiU0VULkRJQUxPRy5GT0NVUyIsNDQ0OiJFTkFCTEUuT0JKRUNUIiw0NDU6IlBVU0hCVVRUT04uUFJPUEVSVElFUyIsNDQ2OiJTRVQuRElBTE9HLkRFRkFV''@;'; + put 'put ''TFQiLDQ0NzoiRklMVEVSIiw0NDg6IkZJTFRFUi5TSE9XLkFMTCIsNDQ5OiJDTEVBUi5PVVRMSU5FIiw0NTA6IkZVTkNUSU9OLldJWkFSRCIsNDUxOiJBREQuTElTVC5JVEVNIiw0NTI6IlNFVC5MSVNULklURU0iLDQ1MzoiUkVNT1ZFLkxJU1QuSVRFTSIsNDU0OiJTRUxFQ1QuTElTVC5JVEVN''@;'; + put 'put ''Iiw0NTU6IlNFVC5DT05UUk9MLlZBTFVFIiw0NTY6IlNBVkUuQ09QWS5BUyIsNDU4OiJPUFRJT05TLkxJU1RTLkFERCIsNDU5OiJPUFRJT05TLkxJU1RTLkRFTEVURSIsNDYwOiJTRVJJRVMuQVhFUyIsNDYxOiJTRVJJRVMuWCIsNDYyOiJTRVJJRVMuWSIsNDYzOiJFUlJPUkJBUi5YIiw0NjQ6''@;'; + put 'put ''IkVSUk9SQkFSLlkiLDQ2NToiRk9STUFULkNIQVJUIiw0NjY6IlNFUklFUy5PUkRFUiIsNDY3OiJNQUlMLkxPR09GRiIsNDY4OiJDTEVBUi5ST1VUSU5HLlNMSVAiLDQ2OToiQVBQLkFDVElWQVRFLk1JQ1JPU09GVCIsNDcwOiJNQUlMLkVESVQuTUFJTEVSIiw0NzE6Ik9OLlNIRUVUIiw0NzI6''@;'; + put 'put ''IlNUQU5EQVJELldJRFRIIiw0NzM6IlNDRU5BUklPLk1FUkdFIiw0NzQ6IlNVTU1BUlkuSU5GTyIsNDc1OiJGSU5ELkZJTEUiLDQ3NjoiQUNUSVZFLkNFTEwuRk9OVCIsNDc3OiJFTkFCTEUuVElQV0laQVJEIiw0Nzg6IlZCQS5NQUtFLkFERElOIiw0ODA6IklOU0VSVERBVEFUQUJMRSIsNDgx''@;'; + put 'put ''OiJXT1JLR1JPVVAuT1BUSU9OUyIsNDgyOiJNQUlMLlNFTkQuTUFJTEVSIiw0ODU6IkFVVE9DT1JSRUNUIiw0ODk6IlBPU1QuRE9DVU1FTlQiLDQ5MToiUElDS0xJU1QiLDQ5MzoiVklFVy5TSE9XIiw0OTQ6IlZJRVcuREVGSU5FIiw0OTU6IlZJRVcuREVMRVRFIiw1MDk6IlNIRUVULkJBQ0tH''@;'; + put 'put ''Uk9VTkQiLDUxMDoiSU5TRVJULk1BUC5PQkpFQ1QiLDUxMToiT1BUSU9OUy5NRU5PTk8iLDUxNzoiTVNPQ0hFQ0tTIiw1MTg6Ik5PUk1BTCIsNTE5OiJMQVlPVVQiLDUyMDoiUk0uUFJJTlQuQVJFQSIsNTIxOiJDTEVBUi5QUklOVC5BUkVBIiw1MjI6IkFERC5QUklOVC5BUkVBIiw1MjM6Ik1P''@;'; + put 'put ''VkUuQlJLIiw1NDU6IkhJREVDVVJSLk5PVEUiLDU0NjoiSElERUFMTC5OT1RFUyIsNTQ3OiJERUxFVEUuTk9URSIsNTQ4OiJUUkFWRVJTRS5OT1RFUyIsNTQ5OiJBQ1RJVkFURS5OT1RFUyIsNjIwOiJQUk9URUNULlJFVklTSU9OUyIsNjIxOiJVTlBST1RFQ1QuUkVWSVNJT05TIiw2NDc6Ik9Q''@;'; + put 'put ''VElPTlMuTUUiLDY1MzoiV0VCLlBVQkxJU0giLDY2NzoiTkVXV0VCUVVFUlkiLDY3MzoiUElWT1QuVEFCTEUuQ0hBUlQiLDc1MzoiT1BUSU9OUy5TQVZFIiw3NTU6Ik9QVElPTlMuU1BFTEwiLDgwODoiSElERUFMTC5JTktBTk5PVFMifSxjNT17MDoiQ09VTlQiLDE6IklGIiwyOiJJU05BIiwz''@;'; + put 'put ''OiJJU0VSUk9SIiw0OiJTVU0iLDU6IkFWRVJBR0UiLDY6Ik1JTiIsNzoiTUFYIiw4OiJST1ciLDk6IkNPTFVNTiIsMTA6Ik5BIiwxMToiTlBWIiwxMjoiU1RERVYiLDEzOiJET0xMQVIiLDE0OiJGSVhFRCIsMTU6IlNJTiIsMTY6IkNPUyIsMTc6IlRBTiIsMTg6IkFUQU4iLDE5OiJQSSIsMjA6''@;'; + put 'put ''IlNRUlQiLDIxOiJFWFAiLDIyOiJMTiIsMjM6IkxPRzEwIiwyNDoiQUJTIiwyNToiSU5UIiwyNjoiU0lHTiIsMjc6IlJPVU5EIiwyODoiTE9PS1VQIiwyOToiSU5ERVgiLDMwOiJSRVBUIiwzMToiTUlEIiwzMjoiTEVOIiwzMzoiVkFMVUUiLDM0OiJUUlVFIiwzNToiRkFMU0UiLDM2OiJBTkQi''@;'; + put 'put ''LDM3OiJPUiIsMzg6Ik5PVCIsMzk6Ik1PRCIsNDA6IkRDT1VOVCIsNDE6IkRTVU0iLDQyOiJEQVZFUkFHRSIsNDM6IkRNSU4iLDQ0OiJETUFYIiw0NToiRFNUREVWIiw0NjoiVkFSIiw0NzoiRFZBUiIsNDg6IlRFWFQiLDQ5OiJMSU5FU1QiLDUwOiJUUkVORCIsNTE6IkxPR0VTVCIsNTI6IkdS''@;'; + put 'put ''T1dUSCIsNTM6IkdPVE8iLDU0OiJIQUxUIiw1NToiUkVUVVJOIiw1NjoiUFYiLDU3OiJGViIsNTg6Ik5QRVIiLDU5OiJQTVQiLDYwOiJSQVRFIiw2MToiTUlSUiIsNjI6IklSUiIsNjM6IlJBTkQiLDY0OiJNQVRDSCIsNjU6IkRBVEUiLDY2OiJUSU1FIiw2NzoiREFZIiw2ODoiTU9OVEgiLDY5''@;'; + put 'put ''OiJZRUFSIiw3MDoiV0VFS0RBWSIsNzE6IkhPVVIiLDcyOiJNSU5VVEUiLDczOiJTRUNPTkQiLDc0OiJOT1ciLDc1OiJBUkVBUyIsNzY6IlJPV1MiLDc3OiJDT0xVTU5TIiw3ODoiT0ZGU0VUIiw3OToiQUJTUkVGIiw4MDoiUkVMUkVGIiw4MToiQVJHVU1FTlQiLDgyOiJTRUFSQ0giLDgzOiJU''@;'; + put 'put ''UkFOU1BPU0UiLDg0OiJFUlJPUiIsODU6IlNURVAiLDg2OiJUWVBFIiw4NzoiRUNITyIsODg6IlNFVC5OQU1FIiw4OToiQ0FMTEVSIiw5MDoiREVSRUYiLDkxOiJXSU5ET1dTIiw5MjoiU0VSSUVTIiw5MzoiRE9DVU1FTlRTIiw5NDoiQUNUSVZFLkNFTEwiLDk1OiJTRUxFQ1RJT04iLDk2OiJS''@;'; + put 'put ''RVNVTFQiLDk3OiJBVEFOMiIsOTg6IkFTSU4iLDk5OiJBQ09TIiwxMDA6IkNIT09TRSIsMTAxOiJITE9PS1VQIiwxMDI6IlZMT09LVVAiLDEwMzoiTElOS1MiLDEwNDoiSU5QVVQiLDEwNToiSVNSRUYiLDEwNjoiR0VULkZPUk1VTEEiLDEwNzoiR0VULk5BTUUiLDEwODoiU0VULlZBTFVFIiwx''@;'; + put 'put ''MDk6IkxPRyIsMTEwOiJFWEVDIiwxMTE6IkNIQVIiLDExMjoiTE9XRVIiLDExMzoiVVBQRVIiLDExNDoiUFJPUEVSIiwxMTU6IkxFRlQiLDExNjoiUklHSFQiLDExNzoiRVhBQ1QiLDExODoiVFJJTSIsMTE5OiJSRVBMQUNFIiwxMjA6IlNVQlNUSVRVVEUiLDEyMToiQ09ERSIsMTIyOiJOQU1F''@;'; + put 'put ''UyIsMTIzOiJESVJFQ1RPUlkiLDEyNDoiRklORCIsMTI1OiJDRUxMIiwxMjY6IklTRVJSIiwxMjc6IklTVEVYVCIsMTI4OiJJU05VTUJFUiIsMTI5OiJJU0JMQU5LIiwxMzA6IlQiLDEzMToiTiIsMTMyOiJGT1BFTiIsMTMzOiJGQ0xPU0UiLDEzNDoiRlNJWkUiLDEzNToiRlJFQURMTiIsMTM2''@;'; + put 'put ''OiJGUkVBRCIsMTM3OiJGV1JJVEVMTiIsMTM4OiJGV1JJVEUiLDEzOToiRlBPUyIsMTQwOiJEQVRFVkFMVUUiLDE0MToiVElNRVZBTFVFIiwxNDI6IlNMTiIsMTQzOiJTWUQiLDE0NDoiRERCIiwxNDU6IkdFVC5ERUYiLDE0NjoiUkVGVEVYVCIsMTQ3OiJURVhUUkVGIiwxNDg6IklORElSRUNU''@;'; + put 'put ''IiwxNDk6IlJFR0lTVEVSIiwxNTA6IkNBTEwiLDE1MToiQURELkJBUiIsMTUyOiJBREQuTUVOVSIsMTUzOiJBREQuQ09NTUFORCIsMTU0OiJFTkFCTEUuQ09NTUFORCIsMTU1OiJDSEVDSy5DT01NQU5EIiwxNTY6IlJFTkFNRS5DT01NQU5EIiwxNTc6IlNIT1cuQkFSIiwxNTg6IkRFTEVURS5N''@;'; + put 'put ''RU5VIiwxNTk6IkRFTEVURS5DT01NQU5EIiwxNjA6IkdFVC5DSEFSVC5JVEVNIiwxNjE6IkRJQUxPRy5CT1giLDE2MjoiQ0xFQU4iLDE2MzoiTURFVEVSTSIsMTY0OiJNSU5WRVJTRSIsMTY1OiJNTVVMVCIsMTY2OiJGSUxFUyIsMTY3OiJJUE1UIiwxNjg6IlBQTVQiLDE2OToiQ09VTlRBIiwx''@;'; + put 'put ''NzA6IkNBTkNFTC5LRVkiLDE3MToiRk9SIiwxNzI6IldISUxFIiwxNzM6IkJSRUFLIiwxNzQ6Ik5FWFQiLDE3NToiSU5JVElBVEUiLDE3NjoiUkVRVUVTVCIsMTc3OiJQT0tFIiwxNzg6IkVYRUNVVEUiLDE3OToiVEVSTUlOQVRFIiwxODA6IlJFU1RBUlQiLDE4MToiSEVMUCIsMTgyOiJHRVQu''@;'; + put 'put ''QkFSIiwxODM6IlBST0RVQ1QiLDE4NDoiRkFDVCIsMTg1OiJHRVQuQ0VMTCIsMTg2OiJHRVQuV09SS1NQQUNFIiwxODc6IkdFVC5XSU5ET1ciLDE4ODoiR0VULkRPQ1VNRU5UIiwxODk6IkRQUk9EVUNUIiwxOTA6IklTTk9OVEVYVCIsMTkxOiJHRVQuTk9URSIsMTkyOiJOT1RFIiwxOTM6IlNU''@;'; + put 'put ''REVWUCIsMTk0OiJWQVJQIiwxOTU6IkRTVERFVlAiLDE5NjoiRFZBUlAiLDE5NzoiVFJVTkMiLDE5ODoiSVNMT0dJQ0FMIiwxOTk6IkRDT1VOVEEiLDIwMDoiREVMRVRFLkJBUiIsMjAxOiJVTlJFR0lTVEVSIiwyMDQ6IlVTRE9MTEFSIiwyMDU6IkZJTkRCIiwyMDY6IlNFQVJDSEIiLDIwNzoi''@;'; + put 'put ''UkVQTEFDRUIiLDIwODoiTEVGVEIiLDIwOToiUklHSFRCIiwyMTA6Ik1JREIiLDIxMToiTEVOQiIsMjEyOiJST1VORFVQIiwyMTM6IlJPVU5ERE9XTiIsMjE0OiJBU0MiLDIxNToiREJDUyIsMjE2OiJSQU5LIiwyMTk6IkFERFJFU1MiLDIyMDoiREFZUzM2MCIsMjIxOiJUT0RBWSIsMjIyOiJW''@;'; + put 'put ''REIiLDIyMzoiRUxTRSIsMjI0OiJFTFNFLklGIiwyMjU6IkVORC5JRiIsMjI2OiJGT1IuQ0VMTCIsMjI3OiJNRURJQU4iLDIyODoiU1VNUFJPRFVDVCIsMjI5OiJTSU5IIiwyMzA6IkNPU0giLDIzMToiVEFOSCIsMjMyOiJBU0lOSCIsMjMzOiJBQ09TSCIsMjM0OiJBVEFOSCIsMjM1OiJER0VU''@;'; + put 'put ''IiwyMzY6IkNSRUFURS5PQkpFQ1QiLDIzNzoiVk9MQVRJTEUiLDIzODoiTEFTVC5FUlJPUiIsMjM5OiJDVVNUT00uVU5ETyIsMjQwOiJDVVNUT00uUkVQRUFUIiwyNDE6IkZPUk1VTEEuQ09OVkVSVCIsMjQyOiJHRVQuTElOSy5JTkZPIiwyNDM6IlRFWFQuQk9YIiwyNDQ6IklORk8iLDI0NToi''@;'; + put 'put ''R1JPVVAiLDI0NjoiR0VULk9CSkVDVCIsMjQ3OiJEQiIsMjQ4OiJQQVVTRSIsMjUxOiJSRVNVTUUiLDI1MjoiRlJFUVVFTkNZIiwyNTM6IkFERC5UT09MQkFSIiwyNTQ6IkRFTEVURS5UT09MQkFSIiwyNTU6IlVzZXIiLDI1NjoiUkVTRVQuVE9PTEJBUiIsMjU3OiJFVkFMVUFURSIsMjU4OiJH''@;'; + put 'put ''RVQuVE9PTEJBUiIsMjU5OiJHRVQuVE9PTCIsMjYwOiJTUEVMTElORy5DSEVDSyIsMjYxOiJFUlJPUi5UWVBFIiwyNjI6IkFQUC5USVRMRSIsMjYzOiJXSU5ET1cuVElUTEUiLDI2NDoiU0FWRS5UT09MQkFSIiwyNjU6IkVOQUJMRS5UT09MIiwyNjY6IlBSRVNTLlRPT0wiLDI2NzoiUkVHSVNU''@;'; + put 'put ''RVIuSUQiLDI2ODoiR0VULldPUktCT09LIiwyNjk6IkFWRURFViIsMjcwOiJCRVRBRElTVCIsMjcxOiJHQU1NQUxOIiwyNzI6IkJFVEFJTlYiLDI3MzoiQklOT01ESVNUIiwyNzQ6IkNISURJU1QiLDI3NToiQ0hJSU5WIiwyNzY6IkNPTUJJTiIsMjc3OiJDT05GSURFTkNFIiwyNzg6IkNSSVRC''@;'; + put 'put ''SU5PTSIsMjc5OiJFVkVOIiwyODA6IkVYUE9ORElTVCIsMjgxOiJGRElTVCIsMjgyOiJGSU5WIiwyODM6IkZJU0hFUiIsMjg0OiJGSVNIRVJJTlYiLDI4NToiRkxPT1IiLDI4NjoiR0FNTUFESVNUIiwyODc6IkdBTU1BSU5WIiwyODg6IkNFSUxJTkciLDI4OToiSFlQR0VPTURJU1QiLDI5MDoi''@;'; + put 'put ''TE9HTk9STURJU1QiLDI5MToiTE9HSU5WIiwyOTI6Ik5FR0JJTk9NRElTVCIsMjkzOiJOT1JNRElTVCIsMjk0OiJOT1JNU0RJU1QiLDI5NToiTk9STUlOViIsMjk2OiJOT1JNU0lOViIsMjk3OiJTVEFOREFSRElaRSIsMjk4OiJPREQiLDI5OToiUEVSTVVUIiwzMDA6IlBPSVNTT04iLDMwMToi''@;'; + put 'put ''VERJU1QiLDMwMjoiV0VJQlVMTCIsMzAzOiJTVU1YTVkyIiwzMDQ6IlNVTVgyTVkyIiwzMDU6IlNVTVgyUFkyIiwzMDY6IkNISVRFU1QiLDMwNzoiQ09SUkVMIiwzMDg6IkNPVkFSIiwzMDk6IkZPUkVDQVNUIiwzMTA6IkZURVNUIiwzMTE6IklOVEVSQ0VQVCIsMzEyOiJQRUFSU09OIiwzMTM6''@;'; + put 'put ''IlJTUSIsMzE0OiJTVEVZWCIsMzE1OiJTTE9QRSIsMzE2OiJUVEVTVCIsMzE3OiJQUk9CIiwzMTg6IkRFVlNRIiwzMTk6IkdFT01FQU4iLDMyMDoiSEFSTUVBTiIsMzIxOiJTVU1TUSIsMzIyOiJLVVJUIiwzMjM6IlNLRVciLDMyNDoiWlRFU1QiLDMyNToiTEFSR0UiLDMyNjoiU01BTEwiLDMy''@;'; + put 'put ''NzoiUVVBUlRJTEUiLDMyODoiUEVSQ0VOVElMRSIsMzI5OiJQRVJDRU5UUkFOSyIsMzMwOiJNT0RFIiwzMzE6IlRSSU1NRUFOIiwzMzI6IlRJTlYiLDMzNDoiTU9WSUUuQ09NTUFORCIsMzM1OiJHRVQuTU9WSUUiLDMzNjoiQ09OQ0FURU5BVEUiLDMzNzoiUE9XRVIiLDMzODoiUElWT1QuQURE''@;'; + put 'put ''LkRBVEEiLDMzOToiR0VULlBJVk9ULlRBQkxFIiwzNDA6IkdFVC5QSVZPVC5GSUVMRCIsMzQxOiJHRVQuUElWT1QuSVRFTSIsMzQyOiJSQURJQU5TIiwzNDM6IkRFR1JFRVMiLDM0NDoiU1VCVE9UQUwiLDM0NToiU1VNSUYiLDM0NjoiQ09VTlRJRiIsMzQ3OiJDT1VOVEJMQU5LIiwzNDg6IlND''@;'; + put 'put ''RU5BUklPLkdFVCIsMzQ5OiJPUFRJT05TLkxJU1RTLkdFVCIsMzUwOiJJU1BNVCIsMzUxOiJEQVRFRElGIiwzNTI6IkRBVEVTVFJJTkciLDM1MzoiTlVNQkVSU1RSSU5HIiwzNTQ6IlJPTUFOIiwzNTU6Ik9QRU4uRElBTE9HIiwzNTY6IlNBVkUuRElBTE9HIiwzNTc6IlZJRVcuR0VUIiwzNTg6''@;'; + put 'put ''IkdFVFBJVk9UREFUQSIsMzU5OiJIWVBFUkxJTksiLDM2MDoiUEhPTkVUSUMiLDM2MToiQVZFUkFHRUEiLDM2MjoiTUFYQSIsMzYzOiJNSU5BIiwzNjQ6IlNUREVWUEEiLDM2NToiVkFSUEEiLDM2NjoiU1RERVZBIiwzNjc6IlZBUkEiLDM2ODoiQkFIVFRFWFQiLDM2OToiVEhBSURBWU9GV0VF''@;'; + put 'put ''SyIsMzcwOiJUSEFJRElHSVQiLDM3MToiVEhBSU1PTlRIT0ZZRUFSIiwzNzI6IlRIQUlOVU1TT1VORCIsMzczOiJUSEFJTlVNU1RSSU5HIiwzNzQ6IlRIQUlTVFJJTkdMRU5HVEgiLDM3NToiSVNUSEFJRElHSVQiLDM3NjoiUk9VTkRCQUhURE9XTiIsMzc3OiJST1VOREJBSFRVUCIsMzc4OiJU''@;'; + put 'put ''SEFJWUVBUiIsMzc5OiJSVEQiLDM4MDoiQ1VCRVZBTFVFIiwzODE6IkNVQkVNRU1CRVIiLDM4MjoiQ1VCRU1FTUJFUlBST1BFUlRZIiwzODM6IkNVQkVSQU5LRURNRU1CRVIiLDM4NDoiSEVYMkJJTiIsMzg1OiJIRVgyREVDIiwzODY6IkhFWDJPQ1QiLDM4NzoiREVDMkJJTiIsMzg4OiJERUMy''@;'; + put 'put ''SEVYIiwzODk6IkRFQzJPQ1QiLDM5MDoiT0NUMkJJTiIsMzkxOiJPQ1QySEVYIiwzOTI6Ik9DVDJERUMiLDM5MzoiQklOMkRFQyIsMzk0OiJCSU4yT0NUIiwzOTU6IkJJTjJIRVgiLDM5NjoiSU1TVUIiLDM5NzoiSU1ESVYiLDM5ODoiSU1QT1dFUiIsMzk5OiJJTUFCUyIsNDAwOiJJTVNRUlQi''@;'; + put 'put ''LDQwMToiSU1MTiIsNDAyOiJJTUxPRzIiLDQwMzoiSU1MT0cxMCIsNDA0OiJJTVNJTiIsNDA1OiJJTUNPUyIsNDA2OiJJTUVYUCIsNDA3OiJJTUFSR1VNRU5UIiw0MDg6IklNQ09OSlVHQVRFIiw0MDk6IklNQUdJTkFSWSIsNDEwOiJJTVJFQUwiLDQxMToiQ09NUExFWCIsNDEyOiJJTVNVTSIs''@;'; + put 'put ''NDEzOiJJTVBST0RVQ1QiLDQxNDoiU0VSSUVTU1VNIiw0MTU6IkZBQ1RET1VCTEUiLDQxNjoiU1FSVFBJIiw0MTc6IlFVT1RJRU5UIiw0MTg6IkRFTFRBIiw0MTk6IkdFU1RFUCIsNDIwOiJJU0VWRU4iLDQyMToiSVNPREQiLDQyMjoiTVJPVU5EIiw0MjM6IkVSRiIsNDI0OiJFUkZDIiw0MjU6''@;'; + put 'put ''IkJFU1NFTEoiLDQyNjoiQkVTU0VMSyIsNDI3OiJCRVNTRUxZIiw0Mjg6IkJFU1NFTEkiLDQyOToiWElSUiIsNDMwOiJYTlBWIiw0MzE6IlBSSUNFTUFUIiw0MzI6IllJRUxETUFUIiw0MzM6IklOVFJBVEUiLDQzNDoiUkVDRUlWRUQiLDQzNToiRElTQyIsNDM2OiJQUklDRURJU0MiLDQzNzoi''@;'; + put 'put ''WUlFTERESVNDIiw0Mzg6IlRCSUxMRVEiLDQzOToiVEJJTExQUklDRSIsNDQwOiJUQklMTFlJRUxEIiw0NDE6IlBSSUNFIiw0NDI6IllJRUxEIiw0NDM6IkRPTExBUkRFIiw0NDQ6IkRPTExBUkZSIiw0NDU6Ik5PTUlOQUwiLDQ0NjoiRUZGRUNUIiw0NDc6IkNVTVBSSU5DIiw0NDg6IkNVTUlQ''@;'; + put 'put ''TVQiLDQ0OToiRURBVEUiLDQ1MDoiRU9NT05USCIsNDUxOiJZRUFSRlJBQyIsNDUyOiJDT1VQREFZQlMiLDQ1MzoiQ09VUERBWVMiLDQ1NDoiQ09VUERBWVNOQyIsNDU1OiJDT1VQTkNEIiw0NTY6IkNPVVBOVU0iLDQ1NzoiQ09VUFBDRCIsNDU4OiJEVVJBVElPTiIsNDU5OiJNRFVSQVRJT04i''@;'; + put 'put ''LDQ2MDoiT0RETFBSSUNFIiw0NjE6Ik9ERExZSUVMRCIsNDYyOiJPRERGUFJJQ0UiLDQ2MzoiT0RERllJRUxEIiw0NjQ6IlJBTkRCRVRXRUVOIiw0NjU6IldFRUtOVU0iLDQ2NjoiQU1PUkRFR1JDIiw0Njc6IkFNT1JMSU5DIiw0Njg6IkNPTlZFUlQiLDcyNDoiU0hFRVRKUyIsNDY5OiJBQ0NS''@;'; + put 'put ''SU5UIiw0NzA6IkFDQ1JJTlRNIiw0NzE6IldPUktEQVkiLDQ3MjoiTkVUV09SS0RBWVMiLDQ3MzoiR0NEIiw0NzQ6Ik1VTFRJTk9NSUFMIiw0NzU6IkxDTSIsNDc2OiJGVlNDSEVEVUxFIiw0Nzc6IkNVQkVLUElNRU1CRVIiLDQ3ODoiQ1VCRVNFVCIsNDc5OiJDVUJFU0VUQ09VTlQiLDQ4MDoi''@;'; + put 'put ''SUZFUlJPUiIsNDgxOiJDT1VOVElGUyIsNDgyOiJTVU1JRlMiLDQ4MzoiQVZFUkFHRUlGIiw0ODQ6IkFWRVJBR0VJRlMifSxjXz17MjoxLDM6MSwxMDowLDE1OjEsMTY6MSwxNzoxLDE4OjEsMTk6MCwyMDoxLDIxOjEsMjI6MSwyMzoxLDI0OjEsMjU6MSwyNjoxLDI3OjIsMzA6MiwzMTozLDMy''@;'; + put 'put ''OjEsMzM6MSwzNDowLDM1OjAsMzg6MSwzOToyLDQwOjMsNDE6Myw0MjozLDQzOjMsNDQ6Myw0NTozLDQ3OjMsNDg6Miw1MzoxLDYxOjMsNjM6MCw2NTozLDY2OjMsNjc6MSw2ODoxLDY5OjEsNzA6MSw3MToxLDcyOjEsNzM6MSw3NDowLDc1OjEsNzY6MSw3NzoxLDc5OjIsODA6Miw4MzoxLDg1''@;'; + put 'put ''OjAsODY6MSw4OTowLDkwOjEsOTQ6MCw5NTowLDk3OjIsOTg6MSw5OToxLDEwMTozLDEwMjozLDEwNToxLDEwNjoxLDEwODoyLDExMToxLDExMjoxLDExMzoxLDExNDoxLDExNzoyLDExODoxLDExOTo0LDEyMToxLDEyNjoxLDEyNzoxLDEyODoxLDEyOToxLDEzMDoxLDEzMToxLDEzMzoxLDEz''@;'; + put 'put ''NDoxLDEzNToxLDEzNjoyLDEzNzoyLDEzODoyLDE0MDoxLDE0MToxLDE0MjozLDE0Mzo0LDE0NDo0LDE2MToxLDE2MjoxLDE2MzoxLDE2NDoxLDE2NToyLDE3MjoxLDE3NToyLDE3NjoyLDE3NzozLDE3ODoyLDE3OToxLDE4NDoxLDE4NjoxLDE4OTozLDE5MDoxLDE5NTozLDE5NjozLDE5Nzox''@;'; + put 'put ''LDE5ODoxLDE5OTozLDIwMToxLDIwNzo0LDIxMDozLDIxMToxLDIxMjoyLDIxMzoyLDIxNDoxLDIxNToxLDIyNTowLDIyOToxLDIzMDoxLDIzMToxLDIzMjoxLDIzMzoxLDIzNDoxLDIzNTozLDI0NDoxLDI0Nzo0LDI1MjoyLDI1NzoxLDI2MToxLDI3MToxLDI3Mzo0LDI3NDoyLDI3NToyLDI3''@;'; + put 'put ''NjoyLDI3NzozLDI3ODozLDI3OToxLDI4MDozLDI4MTozLDI4MjozLDI4MzoxLDI4NDoxLDI4NToyLDI4Njo0LDI4NzozLDI4ODoyLDI4OTo0LDI5MDozLDI5MTozLDI5MjozLDI5Mzo0LDI5NDoxLDI5NTozLDI5NjoxLDI5NzozLDI5ODoxLDI5OToyLDMwMDozLDMwMTozLDMwMjo0LDMwMzoy''@;'; + put 'put ''LDMwNDoyLDMwNToyLDMwNjoyLDMwNzoyLDMwODoyLDMwOTozLDMxMDoyLDMxMToyLDMxMjoyLDMxMzoyLDMxNDoyLDMxNToyLDMxNjo0LDMyNToyLDMyNjoyLDMyNzoyLDMyODoyLDMzMToyLDMzMjoyLDMzNzoyLDM0MjoxLDM0MzoxLDM0NjoyLDM0NzoxLDM1MDo0LDM1MTozLDM1MjoxLDM1''@;'; + put 'put ''MzoyLDM2MDoxLDM2ODoxLDM2OToxLDM3MDoxLDM3MToxLDM3MjoxLDM3MzoxLDM3NDoxLDM3NToxLDM3NjoxLDM3NzoxLDM3ODoxLDM4MjozLDM4NToxLDM5MjoxLDM5MzoxLDM5NjoyLDM5NzoyLDM5ODoyLDM5OToxLDQwMDoxLDQwMToxLDQwMjoxLDQwMzoxLDQwNDoxLDQwNToxLDQwNjox''@;'; + put 'put ''LDQwNzoxLDQwODoxLDQwOToxLDQxMDoxLDQxNDo0LDQxNToxLDQxNjoxLDQxNzoyLDQyMDoxLDQyMToxLDQyMjoyLDQyNDoxLDQyNToyLDQyNjoyLDQyNzoyLDQyODoyLDQzMDozLDQzODozLDQzOTozLDQ0MDozLDQ0MzoyLDQ0NDoyLDQ0NToyLDQ0NjoyLDQ0Nzo2LDQ0ODo2LDQ0OToyLDQ1''@;'; + put 'put ''MDoyLDQ2NDoyLDQ2ODozLDQ3NjoyLDQ3OToxLDQ4MDoyLDY1NTM1OjB9LGl4PXsiX3hsZm4uQUNPVCI6IkFDT1QiLCJfeGxmbi5BQ09USCI6IkFDT1RIIiwiX3hsZm4uQUdHUkVHQVRFIjoiQUdHUkVHQVRFIiwiX3hsZm4uQVJBQklDIjoiQVJBQklDIiwiX3hsZm4uQVZFUkFHRUlGIjoiQVZF''@;'; + put 'put ''UkFHRUlGIiwiX3hsZm4uQVZFUkFHRUlGUyI6IkFWRVJBR0VJRlMiLCJfeGxmbi5CQVNFIjoiQkFTRSIsIl94bGZuLkJFVEEuRElTVCI6IkJFVEEuRElTVCIsIl94bGZuLkJFVEEuSU5WIjoiQkVUQS5JTlYiLCJfeGxmbi5CSU5PTS5ESVNUIjoiQklOT00uRElTVCIsIl94bGZuLkJJTk9NLkRJ''@;'; + put 'put ''U1QuUkFOR0UiOiJCSU5PTS5ESVNULlJBTkdFIiwiX3hsZm4uQklOT00uSU5WIjoiQklOT00uSU5WIiwiX3hsZm4uQklUQU5EIjoiQklUQU5EIiwiX3hsZm4uQklUTFNISUZUIjoiQklUTFNISUZUIiwiX3hsZm4uQklUT1IiOiJCSVRPUiIsIl94bGZuLkJJVFJTSElGVCI6IkJJVFJTSElGVCIs''@;'; + put 'put ''Il94bGZuLkJJVFhPUiI6IkJJVFhPUiIsIl94bGZuLkNFSUxJTkcuTUFUSCI6IkNFSUxJTkcuTUFUSCIsIl94bGZuLkNFSUxJTkcuUFJFQ0lTRSI6IkNFSUxJTkcuUFJFQ0lTRSIsIl94bGZuLkNISVNRLkRJU1QiOiJDSElTUS5ESVNUIiwiX3hsZm4uQ0hJU1EuRElTVC5SVCI6IkNISVNRLkRJ''@;'; + put 'put ''U1QuUlQiLCJfeGxmbi5DSElTUS5JTlYiOiJDSElTUS5JTlYiLCJfeGxmbi5DSElTUS5JTlYuUlQiOiJDSElTUS5JTlYuUlQiLCJfeGxmbi5DSElTUS5URVNUIjoiQ0hJU1EuVEVTVCIsIl94bGZuLkNPTUJJTkEiOiJDT01CSU5BIiwiX3hsZm4uQ09OQ0FUIjoiQ09OQ0FUIiwiX3hsZm4uQ09O''@;'; + put 'put ''RklERU5DRS5OT1JNIjoiQ09ORklERU5DRS5OT1JNIiwiX3hsZm4uQ09ORklERU5DRS5UIjoiQ09ORklERU5DRS5UIiwiX3hsZm4uQ09UIjoiQ09UIiwiX3hsZm4uQ09USCI6IkNPVEgiLCJfeGxmbi5DT1VOVElGUyI6IkNPVU5USUZTIiwiX3hsZm4uQ09WQVJJQU5DRS5QIjoiQ09WQVJJQU5D''@;'; + put 'put ''RS5QIiwiX3hsZm4uQ09WQVJJQU5DRS5TIjoiQ09WQVJJQU5DRS5TIiwiX3hsZm4uQ1NDIjoiQ1NDIiwiX3hsZm4uQ1NDSCI6IkNTQ0giLCJfeGxmbi5EQVlTIjoiREFZUyIsIl94bGZuLkRFQ0lNQUwiOiJERUNJTUFMIiwiX3hsZm4uRUNNQS5DRUlMSU5HIjoiRUNNQS5DRUlMSU5HIiwiX3hs''@;'; + put 'put ''Zm4uRVJGLlBSRUNJU0UiOiJFUkYuUFJFQ0lTRSIsIl94bGZuLkVSRkMuUFJFQ0lTRSI6IkVSRkMuUFJFQ0lTRSIsIl94bGZuLkVYUE9OLkRJU1QiOiJFWFBPTi5ESVNUIiwiX3hsZm4uRi5ESVNUIjoiRi5ESVNUIiwiX3hsZm4uRi5ESVNULlJUIjoiRi5ESVNULlJUIiwiX3hsZm4uRi5JTlYi''@;'; + put 'put ''OiJGLklOViIsIl94bGZuLkYuSU5WLlJUIjoiRi5JTlYuUlQiLCJfeGxmbi5GLlRFU1QiOiJGLlRFU1QiLCJfeGxmbi5GSUxURVJYTUwiOiJGSUxURVJYTUwiLCJfeGxmbi5GTE9PUi5NQVRIIjoiRkxPT1IuTUFUSCIsIl94bGZuLkZMT09SLlBSRUNJU0UiOiJGTE9PUi5QUkVDSVNFIiwiX3hs''@;'; + put 'put ''Zm4uRk9SRUNBU1QuRVRTIjoiRk9SRUNBU1QuRVRTIiwiX3hsZm4uRk9SRUNBU1QuRVRTLkNPTkZJTlQiOiJGT1JFQ0FTVC5FVFMuQ09ORklOVCIsIl94bGZuLkZPUkVDQVNULkVUUy5TRUFTT05BTElUWSI6IkZPUkVDQVNULkVUUy5TRUFTT05BTElUWSIsIl94bGZuLkZPUkVDQVNULkVUUy5T''@;'; + put 'put ''VEFUIjoiRk9SRUNBU1QuRVRTLlNUQVQiLCJfeGxmbi5GT1JFQ0FTVC5MSU5FQVIiOiJGT1JFQ0FTVC5MSU5FQVIiLCJfeGxmbi5GT1JNVUxBVEVYVCI6IkZPUk1VTEFURVhUIiwiX3hsZm4uR0FNTUEiOiJHQU1NQSIsIl94bGZuLkdBTU1BLkRJU1QiOiJHQU1NQS5ESVNUIiwiX3hsZm4uR0FN''@;'; + put 'put ''TUEuSU5WIjoiR0FNTUEuSU5WIiwiX3hsZm4uR0FNTUFMTi5QUkVDSVNFIjoiR0FNTUFMTi5QUkVDSVNFIiwiX3hsZm4uR0FVU1MiOiJHQVVTUyIsIl94bGZuLkhZUEdFT00uRElTVCI6IkhZUEdFT00uRElTVCIsIl94bGZuLklGRVJST1IiOiJJRkVSUk9SIiwiX3hsZm4uSUZOQSI6IklGTkEi''@;'; + put 'put ''LCJfeGxmbi5JRlMiOiJJRlMiLCJfeGxmbi5JTUNPU0giOiJJTUNPU0giLCJfeGxmbi5JTUNPVCI6IklNQ09UIiwiX3hsZm4uSU1DU0MiOiJJTUNTQyIsIl94bGZuLklNQ1NDSCI6IklNQ1NDSCIsIl94bGZuLklNU0VDIjoiSU1TRUMiLCJfeGxmbi5JTVNFQ0giOiJJTVNFQ0giLCJfeGxmbi5J''@;'; + put 'put ''TVNJTkgiOiJJTVNJTkgiLCJfeGxmbi5JTVRBTiI6IklNVEFOIiwiX3hsZm4uSVNGT1JNVUxBIjoiSVNGT1JNVUxBIiwiX3hsZm4uSVNPLkNFSUxJTkciOiJJU08uQ0VJTElORyIsIl94bGZuLklTT1dFRUtOVU0iOiJJU09XRUVLTlVNIiwiX3hsZm4uTE9HTk9STS5ESVNUIjoiTE9HTk9STS5E''@;'; + put 'put ''SVNUIiwiX3hsZm4uTE9HTk9STS5JTlYiOiJMT0dOT1JNLklOViIsIl94bGZuLk1BWElGUyI6Ik1BWElGUyIsIl94bGZuLk1JTklGUyI6Ik1JTklGUyIsIl94bGZuLk1PREUuTVVMVCI6Ik1PREUuTVVMVCIsIl94bGZuLk1PREUuU05HTCI6Ik1PREUuU05HTCIsIl94bGZuLk1VTklUIjoiTVVO''@;'; + put 'put ''SVQiLCJfeGxmbi5ORUdCSU5PTS5ESVNUIjoiTkVHQklOT00uRElTVCIsIl94bGZuLk5FVFdPUktEQVlTLklOVEwiOiJORVRXT1JLREFZUy5JTlRMIiwiX3hsZm4uTklHQklOT00iOiJOSUdCSU5PTSIsIl94bGZuLk5PUk0uRElTVCI6Ik5PUk0uRElTVCIsIl94bGZuLk5PUk0uSU5WIjoiTk9S''@;'; + put 'put ''TS5JTlYiLCJfeGxmbi5OT1JNLlMuRElTVCI6Ik5PUk0uUy5ESVNUIiwiX3hsZm4uTk9STS5TLklOViI6Ik5PUk0uUy5JTlYiLCJfeGxmbi5OVU1CRVJWQUxVRSI6Ik5VTUJFUlZBTFVFIiwiX3hsZm4uUERVUkFUSU9OIjoiUERVUkFUSU9OIiwiX3hsZm4uUEVSQ0VOVElMRS5FWEMiOiJQRVJD''@;'; + put 'put ''RU5USUxFLkVYQyIsIl94bGZuLlBFUkNFTlRJTEUuSU5DIjoiUEVSQ0VOVElMRS5JTkMiLCJfeGxmbi5QRVJDRU5UUkFOSy5FWEMiOiJQRVJDRU5UUkFOSy5FWEMiLCJfeGxmbi5QRVJDRU5UUkFOSy5JTkMiOiJQRVJDRU5UUkFOSy5JTkMiLCJfeGxmbi5QRVJNVVRBVElPTkEiOiJQRVJNVVRB''@;'; + put 'put ''VElPTkEiLCJfeGxmbi5QSEkiOiJQSEkiLCJfeGxmbi5QT0lTU09OLkRJU1QiOiJQT0lTU09OLkRJU1QiLCJfeGxmbi5RVUFSVElMRS5FWEMiOiJRVUFSVElMRS5FWEMiLCJfeGxmbi5RVUFSVElMRS5JTkMiOiJRVUFSVElMRS5JTkMiLCJfeGxmbi5RVUVSWVNUUklORyI6IlFVRVJZU1RSSU5H''@;'; + put 'put ''IiwiX3hsZm4uUkFOSy5BVkciOiJSQU5LLkFWRyIsIl94bGZuLlJBTksuRVEiOiJSQU5LLkVRIiwiX3hsZm4uUlJJIjoiUlJJIiwiX3hsZm4uU0VDIjoiU0VDIiwiX3hsZm4uU0VDSCI6IlNFQ0giLCJfeGxmbi5TSEVFVCI6IlNIRUVUIiwiX3hsZm4uU0hFRVRTIjoiU0hFRVRTIiwiX3hsZm4u''@;'; + put 'put ''U0tFVy5QIjoiU0tFVy5QIiwiX3hsZm4uU1RERVYuUCI6IlNUREVWLlAiLCJfeGxmbi5TVERFVi5TIjoiU1RERVYuUyIsIl94bGZuLlNVTUlGUyI6IlNVTUlGUyIsIl94bGZuLlNXSVRDSCI6IlNXSVRDSCIsIl94bGZuLlQuRElTVCI6IlQuRElTVCIsIl94bGZuLlQuRElTVC4yVCI6IlQuRElT''@;'; + put 'put ''VC4yVCIsIl94bGZuLlQuRElTVC5SVCI6IlQuRElTVC5SVCIsIl94bGZuLlQuSU5WIjoiVC5JTlYiLCJfeGxmbi5ULklOVi4yVCI6IlQuSU5WLjJUIiwiX3hsZm4uVC5URVNUIjoiVC5URVNUIiwiX3hsZm4uVEVYVEpPSU4iOiJURVhUSk9JTiIsIl94bGZuLlVOSUNIQVIiOiJVTklDSEFSIiwi''@;'; + put 'put ''X3hsZm4uVU5JQ09ERSI6IlVOSUNPREUiLCJfeGxmbi5WQVIuUCI6IlZBUi5QIiwiX3hsZm4uVkFSLlMiOiJWQVIuUyIsIl94bGZuLldFQlNFUlZJQ0UiOiJXRUJTRVJWSUNFIiwiX3hsZm4uV0VJQlVMTC5ESVNUIjoiV0VJQlVMTC5ESVNUIiwiX3hsZm4uV09SS0RBWS5JTlRMIjoiV09SS0RB''@;'; + put 'put ''WS5JTlRMIiwiX3hsZm4uWE9SIjoiWE9SIiwiX3hsZm4uWi5URVNUIjoiWi5URVNUIn07ZnVuY3Rpb24gTGgoSCl7cmV0dXJuIm9mOiI9PUguc2xpY2UoMCwzKSYmKEg9SC5zbGljZSgzKSksNjE9PUguY2hhckNvZGVBdCgwKSYmNjE9PShIPUguc2xpY2UoMSkpLmNoYXJDb2RlQXQoMCkmJihI''@;'; + put 'put ''PUguc2xpY2UoMSkpLChIPShIPShIPUgucmVwbGFjZSgvQ09NXC5NSUNST1NPRlRcLi9nLCIiKSkucmVwbGFjZSgvXFsoKD86XC5bQS1aXStbMC05XSspKD86OlwuW0EtWl0rWzAtOV0rKT8pXF0vZyxmdW5jdGlvbihyZSxYKXtyZXR1cm4gWC5yZXBsYWNlKC9cLi9nLCIiKX0pKS5yZXBsYWNl''@;'; + put 'put ''KC9cWy4oI1tBLVpdKls/IV0pXF0vZywiJDEiKSkucmVwbGFjZSgvWzt+XS9nLCIsIikucmVwbGFjZSgvXHwvZywiOyIpfWZ1bmN0aW9uIG94KEgpe3JldHVybigib2Y6PSIrSC5yZXBsYWNlKFNtLCIkMVsuJDIkMyQ0JDVdIikucmVwbGFjZSgvXF06XFsvZywiOiIpKS5yZXBsYWNlKC87L2cs''@;'; + put 'put ''InwiKS5yZXBsYWNlKC8sL2csIjsiKX1mdW5jdGlvbiBmXyhIKXt2YXIgcmU9SC5zcGxpdCgiOiIpO3JldHVybltyZVswXS5zcGxpdCgiLiIpWzBdLHJlWzBdLnNwbGl0KCIuIilbMV0rKHJlLmxlbmd0aD4xPyI6IisocmVbMV0uc3BsaXQoIi4iKVsxXXx8cmVbMV0uc3BsaXQoIi4iKVswXSk6''@;'; + put 'put ''IiIpXX1mdW5jdGlvbiBoXyhIKXtyZXR1cm4gSC5yZXBsYWNlKC9cLi8sIiEiKX12YXIgUmQ9e30sVWM9e307cHQuV1M9WyJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzL3dvcmtzaGVldCIsImh0dHA6Ly9wdXJsLm9j''@;'; + put 'put ''bGMub3JnL29veG1sL29mZmljZURvY3VtZW50L3JlbGF0aW9uc2hpcHMvd29ya3NoZWV0Il07dmFyIGY1PSJ1bmRlZmluZWQiIT10eXBlb2YgTWFwO2Z1bmN0aW9uIEM2KEgscmUsWCx3ZSl7dmFyIHhlPTAsRmU9SC5sZW5ndGg7aWYod2Upe2lmKGY1P3dlLmhhcyhyZSk6T2JqZWN0LnByb3Rv''@;'; + put 'put ''dHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHdlLHJlKSlmb3IodmFyIFplPWY1P3dlLmdldChyZSk6d2VbcmVdO3hlPFplLmxlbmd0aDsrK3hlKWlmKEhbWmVbeGVdXS50PT09cmUmJighSFtaZVt4ZV1dLnImJiFYfHxIW1plW3hlXV0ucj09WCkpcmV0dXJuIEguQ291bnQrKyxaZVt4ZV19ZWxz''@;'; + put 'put ''ZSBmb3IoO3hlPEZlOysreGUpaWYoSFt4ZV0udD09PXJlJiYoIUhbeGVdLnImJiFYfHxIW3hlXS5yPT1YKSlyZXR1cm4gSC5Db3VudCsrLHhlO3JldHVybiBIW0ZlXT17dDpyZSxyOlh9LEguQ291bnQrKyxILlVuaXF1ZSsrLHdlJiYoZjU/KHdlLmhhcyhyZSl8fHdlLnNldChyZSxbXSksd2Uu''@;'; + put 'put ''Z2V0KHJlKS5wdXNoKEZlKSk6KE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh3ZSxyZSl8fCh3ZVtyZV09W10pLHdlW3JlXS5wdXNoKEZlKSkpLEZlfWZ1bmN0aW9uIGs2KEgscmUpe3ZhciBYPXttaW46SCsxLG1heDpIKzF9LHdlPUsyO2lmKCFyZSlyZXR1cm4gcmU7dmFy''@;'; + put 'put ''IHhlPS0xO3JldHVybiByZS5hdXRvJiYoWC5iZXN0Rml0PTEscmUuYmVzdHdpZHRoJiYoeGU9cmUuYmVzdHdpZHRoKSxkZWxldGUgcmUuYmVzdHdpZHRoKSxudWxsIT1yZS53cHg/eGU9VDkocmUud3B4KTpudWxsIT1yZS53Y2g/eGU9cmUud2NoOm51bGwhPXJlLndpZHRoJiYoWC5jdXN0b21X''@;'; + put 'put ''aWR0aD0xKSx4ZT4tMT8oWC53aWR0aD1fYih4ZSksWC5jdXN0b21XaWR0aD0xKTpudWxsIT1yZS53aWR0aCYmKFgud2lkdGg9cmUud2lkdGgpLHJlLmhpZGRlbiYmKFguaGlkZGVuPSEwKSxYLmJlc3RGaXQmJmRlbGV0ZSBYLmN1c3RvbVdpZHRoLEsyPXdlLG51bGwhPXJlLmxldmVsJiYoWC5v''@;'; + put 'put ''dXRsaW5lTGV2ZWw9WC5sZXZlbD1yZS5sZXZlbCksbnVsbCE9cmUuc3R5bGUmJihYLnN0eWxlPXJlLnN0eWxlKSxYfWZ1bmN0aW9uIFM2KEgscmUsWCl7dmFyIHdlPXZzKEhbIiFyZWYiXSkseGU9MCxGZT1IWyIhbWVyZ2VzIl18fFtdLFplPUFycmF5LmlzQXJyYXkoSCk7ZTpmb3IodmFyIGpl''@;'; + put 'put ''PTA7amU8PXdlLmUucjsrK2plKXtmb3IodmFyIFllPTA7WWU8RmUubGVuZ3RoOysrWWUpaWYoRmVbWWVdLnMucjw9amUmJmplPD1GZVtZZV0uZS5yJiZGZVtZZV0ucy5jPD1YJiZYPD1GZVtZZV0uZS5jKWNvbnRpbnVlIGU7dmFyIE10PVplPyhIW2plXXx8W10pW1hdOkhbWTAoe3I6amUsYzpY''@;'; + put 'put ''fSldO2lmKE10KXt2YXIgeHQ9MTtpZihNdC5zJiYoeHQ9dm0oTXQucykvQ2IuQ2FsaWJyaVsxMl18fDEpLE10LncpeGU9TWF0aC5tYXgoeGUsTXQudy5sZW5ndGgqeHQpO2Vsc2Ugc3dpdGNoKE10LnQpe2Nhc2UiYiI6Y2FzZSJlIjp4ZT1NYXRoLm1heCh4ZSw1Knh0KTticmVhaztjYXNlInMi''@;'; + put 'put ''OnhlPU1hdGgubWF4KHhlLE10LnYubGVuZ3RoKnh0KjEuMnwwKTticmVhaztjYXNlIm4iOm1kKE10LE10LnYpLHhlPU1hdGgubWF4KHhlLFN0cmluZyhNdC53fHxNdC52KS5sZW5ndGgqeHQpO2JyZWFrO2Nhc2UiZCI6eGU9TWF0aC5tYXgoeGUsOCp4dCl9fX14ZTwxJiYoeGU9MSkscmUuYmVz''@;'; + put 'put ''dHdpZHRoPXhlfWZ1bmN0aW9uIEJkKEgscmUpe2lmKEgpe3ZhciBYPVsuNywuNywuNzUsLjc1LC4zLC4zXTsieGxtbCI9PXJlJiYoWD1bMSwxLDEsMSwuNSwuNV0pLG51bGw9PUgubGVmdCYmKEgubGVmdD1YWzBdKSxudWxsPT1ILnJpZ2h0JiYoSC5yaWdodD1YWzFdKSxudWxsPT1ILnRvcCYm''@;'; + put 'put ''KEgudG9wPVhbMl0pLG51bGw9PUguYm90dG9tJiYoSC5ib3R0b209WFszXSksbnVsbD09SC5oZWFkZXImJihILmhlYWRlcj1YWzRdKSxudWxsPT1ILmZvb3RlciYmKEguZm9vdGVyPVhbNV0pfX1mdW5jdGlvbiB6NChILHJlKXtmb3IodmFyIFg9b24ocmUpLHdlPTA7d2U8SC5sZW5ndGg7Kyt3''@;'; + put 'put ''ZSl7dmFyIHhlPSEwLEZlPUhbd2VdO2lmKEZlJiZYLmxlbmd0aD09b24oRmUpLmxlbmd0aCYmKFguZm9yRWFjaChmdW5jdGlvbihaZSl7aWYoeGUpe2lmKG51bGw9PT1yZVtaZV0hPShudWxsPT09RmVbWmVdKSlyZXR1cm4gdm9pZCh4ZT0hMSk7aWYoIm9iamVjdCI9PXR5cGVvZiByZVtaZV0p''@;'; + put 'put ''aWYoWyJjb2xvciIsImZnQ29sb3IiLCJiZ0NvbG9yIl0uaW5kZXhPZihaZSk+LTEpe2lmKF8zKHJlW1plXSxGZVtaZV0pKXJldHVybiB2b2lkKHhlPSExKX1lbHNle2lmKCEoWyJsZWZ0IiwicmlnaHQiLCJ0b3AiLCJib3R0b20iXS5pbmRleE9mKFplKT4tMSkpcmV0dXJuIHZvaWQoeGU9ITEp''@;'; + put 'put ''O2lmKHg5KHJlW1plXSxGZVtaZV0pKXJldHVybiB2b2lkKHhlPSExKX1pZihyZVtaZV0hPUZlW1plXSlyZXR1cm4gdm9pZCh4ZT0hMSl9fSkseGUpKXJldHVybiB3ZX1yZXR1cm4gSFtILmxlbmd0aF09bG4ocmUpLEgubGVuZ3RoLTF9ZnVuY3Rpb24gWTEoSCxyZSxYLHdlKXt2YXIgeGU9d2Uu''@;'; + put 'put ''cmV2c3NmW251bGwhPVguej9YLno6IkdlbmVyYWwiXSxGZT02MCxaZT1ILmxlbmd0aDtpZihudWxsPT14ZSYmd2Uuc3NmKWZvcig7RmU8MzkyOysrRmUpaWYobnVsbD09d2Uuc3NmW0ZlXSl7Ri5sb2FkKFgueixGZSksd2Uuc3NmW0ZlXT1YLnosd2UucmV2c3NmW1guel09eGU9RmU7YnJlYWt9''@;'; + put 'put ''dmFyIGplPTAsWWU9MCxNdD0wLHh0PTA7aWYod2UuY2VsbFN0eWxlcyl7aWYoWC5zKXtpZih3ZS5Gb250cyl7WC5zLmNvbG9yfHwoWC5zLmNvbG9yPXt0aGVtZToxLHJnYjoiMDAwMDAwIn0pO2Zvcih2YXIgUnQ9KFgucy5ib2xkPzE6MCl8KFgucy5pdGFsaWM/MjowKXwoWC5zLnN0cmlrZT80''@;'; + put 'put ''OjApfChYLnMuc2hhZG93Pzg6MCk7amU8d2UuRm9udHMubGVuZ3RoOysramUpe3ZhciBVdD13ZS5Gb250c1tqZV07aWYobnVsbD09VXQuZm9udGhhc2gmJihVdC5mb250aGFzaD0oVXQuYm9sZD8xOjApfChVdC5pdGFsaWM/MjowKXwoVXQuc3RyaWtlPzQ6MCl8KFV0LnNoYWRvdz84OjApKSwh''@;'; + put 'put ''KFJ0IT1VdC5mb250aGFzaHx8ISFYLnMuY29sb3IhPSEhVXQuY29sb3J8fFgucy52YWxpZ24hPVV0LnZhbGlnbnx8KFgucy5zenx8VXQuc3opJiYoWC5zLnN6fHwxMikhPShVdC5zenx8MTIpfHxYLnMubmFtZSYmWC5zLm5hbWUhPVV0Lm5hbWV8fChYLnMudW5kZXJsaW5lfHwwKSE9KFV0LnVu''@;'; + put 'put ''ZGVybGluZXx8MCl8fFgucy5jb2xvciYmXzMoWC5zLmNvbG9yLFV0LmNvbG9yKSkpYnJlYWt9amU9PXdlLkZvbnRzLmxlbmd0aCYmKHdlLkZvbnRzLnB1c2goe3N6Olgucy5zenx8MTIsY29sb3I6WC5zLmNvbG9yfHx7dGhlbWU6MSxyZ2I6IjAwMDAwMCJ9LG5hbWU6WC5zLm5hbWV8fCJDYWxp''@;'; + put 'put ''YnJpIixmYW1pbHk6WC5zLmZhbWlseXx8MixzY2hlbWU6WC5zLnNjaGVtZSxib2xkOlgucy5ib2xkLGl0YWxpYzpYLnMuaXRhbGljLHN0cmlrZTpYLnMuc3RyaWtlLHNoYWRvdzpYLnMuc2hhZG93LHZhbGlnbjpYLnMudmFsaWduLHVuZGVybGluZTpYLnMudW5kZXJsaW5lfSksMT09d2UuRm9u''@;'; + put 'put ''dHMubGVuZ3RoJiZTMyh3ZS5Gb250c1swXSkpfWlmKHdlLkZpbGxzKXtmb3IoO1llPHdlLkZpbGxzLmxlbmd0aDsrK1llKXt2YXIgbm49d2UuRmlsbHNbWWVdO2lmKCEhWC5zLnN0b3BzPT0hIW5uLnN0b3BzKXtpZihYLnMuc3RvcHMpe2lmKFgucy5hbmdsZSE9bm4uYW5nbGUpY29udGludWU7''@;'; + put 'put ''dmFyIENuPSEwO2lmKFgucy5zdG9wcy5mb3JFYWNoKGZ1bmN0aW9uKFRuLE9uKXtfMyhUbixubi5zdG9wc1tPbl0pJiYoQ249ITEpLFRuLnYhPW5uLnN0b3BzW09uXS52JiYoQ249ITEpfSksIUNuKWNvbnRpbnVlfWVsc2V7aWYobnVsbD09WC5zLnBhdHRlcm5UeXBlJiZYLnMuZmdDb2xvciYm''@;'; + put 'put ''KFgucy5wYXR0ZXJuVHlwZT0ic29saWQiKSxudWxsPT1YLnMucGF0dGVyblR5cGUpYnJlYWs7aWYoWC5zLnBhdHRlcm5UeXBlIT1ubi5wYXR0ZXJuVHlwZXx8XzMoWC5zLmZnQ29sb3Isbm4uZmdDb2xvcil8fF8zKFgucy5iZ0NvbG9yLG5uLmJnQ29sb3IpKWNvbnRpbnVlfWJyZWFrfX1pZihZ''@;'; + put 'put ''ZT09d2UuRmlsbHMubGVuZ3RoKXt2YXIgRHQ9e307WC5zLnN0b3BzPyhudWxsIT1YLnMuYW5nbGUmJihEdC5hbmdsZT1YLnMuYW5nbGUpLER0LnN0b3BzPVtdLFgucy5zdG9wcy5mb3JFYWNoKGZ1bmN0aW9uKFRuKXtEdC5zdG9wcy5wdXNoKGxuKFRuKSl9KSk6RHQ9e3BhdHRlcm5UeXBlOlgu''@;'; + put 'put ''cy5wYXR0ZXJuVHlwZSxmZ0NvbG9yOlgucy5mZ0NvbG9yLGJnQ29sb3I6WC5zLmJnQ29sb3J9LHdlLkZpbGxzLnB1c2goRHQpfX1pZih3ZS5Cb3JkZXJzKXtmb3IoO010PHdlLkJvcmRlcnMubGVuZ3RoOysrTXQpe3ZhciB6dD13ZS5Cb3JkZXJzW010XSxQbj0idG9wIjtpZihYLnNbUG5dKXtp''@;'; + put 'put ''ZighenRbUG5dfHxYLnNbUG5dLnN0eWxlIT16dFtQbl0uc3R5bGV8fF8zKFguc1tQbl0uY29sb3IsenRbUG5dLmNvbG9yKSljb250aW51ZX1lbHNlIGlmKG51bGwhPXp0W1BuXSljb250aW51ZTtpZihYLnNbUG49ImJvdHRvbSJdKXtpZighenRbUG5dfHxYLnNbUG5dLnN0eWxlIT16dFtQbl0u''@;'; + put 'put ''c3R5bGV8fF8zKFguc1tQbl0uY29sb3IsenRbUG5dLmNvbG9yKSljb250aW51ZX1lbHNlIGlmKG51bGwhPXp0W1BuXSljb250aW51ZTtpZihYLnNbUG49ImxlZnQiXSl7aWYoIXp0W1BuXXx8WC5zW1BuXS5zdHlsZSE9enRbUG5dLnN0eWxlfHxfMyhYLnNbUG5dLmNvbG9yLHp0W1BuXS5jb2xv''@;'; + put 'put ''cikpY29udGludWV9ZWxzZSBpZihudWxsIT16dFtQbl0pY29udGludWU7aWYoWC5zW1BuPSJyaWdodCJdKXtpZighenRbUG5dfHxYLnNbUG5dLnN0eWxlIT16dFtQbl0uc3R5bGV8fF8zKFguc1tQbl0uY29sb3IsenRbUG5dLmNvbG9yKSljb250aW51ZX1lbHNlIGlmKG51bGwhPXp0W1BuXSlj''@;'; + put 'put ''b250aW51ZTticmVha31NdD09d2UuQm9yZGVycy5sZW5ndGgmJndlLkJvcmRlcnMucHVzaCh7dG9wOlgucy50b3AmJmxuKFgucy50b3ApfHx2b2lkIDAsYm90dG9tOlgucy5ib3R0b20mJmxuKFgucy5ib3R0b20pfHx2b2lkIDAsbGVmdDpYLnMubGVmdCYmbG4oWC5zLmxlZnQpfHx2b2lkIDAs''@;'; + put 'put ''cmlnaHQ6WC5zLnJpZ2h0JiZsbihYLnMucmlnaHQpfHx2b2lkIDB9KX1pZihyZSYmWC5zLnN0eWxlJiYiTm9ybWFsIiE9PVgucy5zdHlsZSl7Zm9yKHh0PTE7eHQ8cmUubGVuZ3RoJiZyZVt4dF0ubmFtZSE9WC5zLnN0eWxlOysreHQpO3h0PT1yZS5sZW5ndGgmJnJlLnB1c2goe25hbWU6WC5z''@;'; + put 'put ''LnN0eWxlLG51bUZtdElkOnhlLGZvbnRJZDpqZSxmaWxsSWQ6WWUsYm9yZGVySWQ6TXR9KX19Zm9yKEZlPTA7RmUhPVplOysrRmUpaWYoSFtGZV0ubnVtRm10SWQ9PXhlJiZIW0ZlXS5mb250SWQ9PWplJiZIW0ZlXS5maWxsSWQ9PVllJiZIW0ZlXS5ib3JkZXJJZD09TXQmJkhbRmVdLnhmSWQ9''@;'; + put 'put ''PXh0KXtpZihYLnMmJlgucy5hbGlnbm1lbnQpe2lmKCFIW0ZlXS5hbGlnbm1lbnQpY29udGludWU7aWYoWC5zLmFsaWdubWVudC5ob3Jpem9udGFsIT1IW0ZlXS5hbGlnbm1lbnQuaG9yaXpvbnRhbHx8WC5zLmFsaWdubWVudC52ZXJ0aWNhbCE9SFtGZV0uYWxpZ25tZW50LnZlcnRpY2FsfHxY''@;'; + put 'put ''LnMuYWxpZ25tZW50LndyYXBUZXh0IT1IW0ZlXS5hbGlnbm1lbnQud3JhcFRleHR8fFgucy5hbGlnbm1lbnQuc2hyaW5rVG9GaXQhPUhbRmVdLmFsaWdubWVudC5zaHJpbmtUb0ZpdHx8WC5zLmFsaWdubWVudC50ZXh0Um90YXRpb24hPUhbRmVdLmFsaWdubWVudC50ZXh0Um90YXRpb258fFgu''@;'; + put 'put ''cy5hbGlnbm1lbnQuaW5kZW50IT1IW0ZlXS5hbGlnbm1lbnQuaW5kZW50KWNvbnRpbnVlfWVsc2UgaWYoSFtGZV0uYWxpZ25tZW50KWNvbnRpbnVlO2lmKFgucyl7aWYoISFYLnMuaGlkZGVuPT0oIUhbRmVdLnByb3RlY3Rpb258fCFIW0ZlXS5wcm90ZWN0aW9uLmhpZGRlbil8fCEhWC5zLmVk''@;'; + put 'put ''aXRhYmxlPT0oIUhbRmVdLnByb3RlY3Rpb258fCFIW0ZlXS5wcm90ZWN0aW9uLmVkaXRhYmxlKSljb250aW51ZX1lbHNlIGlmKEhbRmVdLnByb3RlY3Rpb24pY29udGludWU7cmV0dXJuIEZlfX1lbHNlIGZvcihGZT0wO0ZlIT1aZTsrK0ZlKWlmKEhbRmVdLm51bUZtdElkPT09eGUpcmV0dXJu''@;'; + put 'put ''IEZlO3JldHVybiBIW1plXT17bnVtRm10SWQ6eGUsZm9udElkOmplLGZpbGxJZDpZZSxib3JkZXJJZDpNdCx4ZklkOnh0LGFwcGx5TnVtYmVyRm9ybWF0OjF9LGplPjAmJihIW1plXS5hcHBseUZvbnQ9MSksWWU+MCYmKEhbWmVdLmFwcGx5RmlsbD0xKSxNdD4wJiYoSFtaZV0uYXBwbHlCb3Jk''@;'; + put 'put ''ZXI9MSksIXJlJiZYLnMmJlgucy5zdHlsZSYmIk5vcm1hbCIhPVgucy5zdHlsZSYmKEhbWmVdLnN0eWxlPVgucy5zdHlsZSksWC5zJiZYLnMuYWxpZ25tZW50JiYoSFtaZV0uYWxpZ25tZW50PXt9LFsiaG9yaXpvbnRhbCIsInZlcnRpY2FsIiwid3JhcFRleHQiLCJzaHJpbmtUb0ZpdCIsImlu''@;'; + put 'put ''ZGVudCIsInRleHRSb3RhdGlvbiJdLmZvckVhY2goZnVuY3Rpb24oVG4pe251bGwhPVgucy5hbGlnbm1lbnRbVG5dJiYoSFtaZV0uYWxpZ25tZW50W1RuXT1YLnMuYWxpZ25tZW50W1RuXSl9KSksWC5zJiZYLnMuaGlkZGVuJiYoSFtaZV0ucHJvdGVjdGlvbnx8KEhbWmVdLnByb3RlY3Rpb249''@;'; + put 'put ''e30pLEhbWmVdLnByb3RlY3Rpb24uaGlkZGVuPSEwKSxYLnMmJlgucy5lZGl0YWJsZSYmKEhbWmVdLnByb3RlY3Rpb258fChIW1plXS5wcm90ZWN0aW9uPXt9KSxIW1plXS5wcm90ZWN0aW9uLmVkaXRhYmxlPSEwKSxaZX1mdW5jdGlvbiBkNShILHJlLFgsd2UseGUsRmUsWmUsamUpeyJkIj09''@;'; + put 'put ''PUgudCYmInN0cmluZyI9PXR5cGVvZiBILnYmJihILnY9ZG4oSC52KSk7dHJ5e0ZlLmNlbGxORiYmKEguej1GLl90YWJsZVtyZV0pfWNhdGNoKE10KXtpZihGZS5XVEYpdGhyb3cgTXR9aWYoKCFGZXx8ITEhPT1GZS5jZWxsVGV4dCkmJiJ6IiE9SC50KXRyeXtpZihudWxsPT1GLl90YWJsZVty''@;'; + put 'put ''ZV0mJkYubG9hZChEZVtyZV18fCJHZW5lcmFsIixyZSksImUiPT09SC50KUgudz1ILnd8fE4xW0gudl07ZWxzZSBpZigwPT09cmUpaWYoIm4iPT09SC50KUgudz0oMHxILnYpPT09SC52P0YuX2dlbmVyYWxfaW50KEgudik6Ri5fZ2VuZXJhbF9udW0oSC52KTtlbHNlIGlmKCJkIj09PUgudCl7''@;'; + put 'put ''dmFyIFllPWZ0KEgudik7SC53PSgwfFllKT09PVllP0YuX2dlbmVyYWxfaW50KFllKTpGLl9nZW5lcmFsX251bShZZSl9ZWxzZXtpZih2b2lkIDA9PT1ILnYpcmV0dXJuIiI7SC53PUYuX2dlbmVyYWwoSC52LFVjKX1lbHNlIEgudz1GLmZvcm1hdChyZSwiZCI9PT1ILnQ/ZnQoSC52KTpILnYs''@;'; + put 'put ''VWMpfWNhdGNoKE10KXtpZihGZS5XVEYpdGhyb3cgTXR9aWYoRmUuY2VsbFN0eWxlcyYmamUpe2lmKEgucz17fSxudWxsIT1YJiZqZS5GaWxscyl0cnl7Ym4oSC5zLGplLkZpbGxzW1hdKX1jYXRjaChNdCl7aWYoRmUuV1RGKXRocm93IE10fWlmKG51bGwhPXdlJiZqZS5Gb250cyl0cnl7Ym4o''@;'; + put 'put ''SC5zLGplLkZvbnRzW3dlXSl9Y2F0Y2goTXQpe2lmKEZlLldURil0aHJvdyBNdH1pZihudWxsIT14ZSYmamUuQm9yZGVycyl0cnl7Ym4oSC5zLGplLkJvcmRlcnNbeGVdKX1jYXRjaChNdCl7aWYoRmUuV1RGKXRocm93IE10fX19ZnVuY3Rpb24gaUEoSCxyZSxYKXtpZihIJiZIWyIhcmVmIl0p''@;'; + put 'put ''e3ZhciB3ZT1GbyhIWyIhcmVmIl0pO2lmKHdlLmUuYzx3ZS5zLmN8fHdlLmUucjx3ZS5zLnIpdGhyb3cgbmV3IEVycm9yKCJCYWQgcmFuZ2UgKCIrWCsiKTogIitIWyIhcmVmIl0pfX12YXIgcF89LzwoPzpcdzopP21lcmdlQ2VsbCByZWY9IltBLVowLTk6XSsiXHMqW1wvXT8+L2csZ189Lzwo''@;'; + put 'put ''Pzpcdys6KT9zaGVldERhdGFbXj5dKj4oW1xzXFNdKik8XC8oPzpcdys6KT9zaGVldERhdGE+LyxheD0vPCg/Olx3Oik/aHlwZXJsaW5rIFtePl0qPi9nbSxtXz0vIihcdyo6XHcqKSIvLHpCPS88KD86XHc6KT9jb2xcYltePl0qW1wvXT8+L2csdkc9LzwoPzpcdzopP2NvbnRyb2xcYltePl0q''@;'; + put 'put ''W1wvXT8+L2csb0E9LzwoPzpcdzopP2F1dG9GaWx0ZXJbXj5dKihbXC9dfD4oW1xzXFNdKik8XC8oPzpcdzopP2F1dG9GaWx0ZXIpPi9nLHZfPS88KD86XHc6KT9wYWdlTWFyZ2luc1tePl0qXC8+L2csQV89LzwoPzpcdzopP3NoZWV0UHJcYig/OltePmEtel1bXj5dKik/XC8+LyxhQT0vPCg/''@;'; + put 'put ''Olx3Oik/c2hlZXRQcm90ZWN0aW9uXGIoPzpbXj5hLXpdW14+XSopP1wvPi8sSW09LzwoPzpcdzopP3NoZWV0UHJbXj5dKig/OltcL118PihbXHNcU10qKTxcLyg/Olx3Oik/c2hlZXRQcik+LyxHQj0vPCg/Olx3Oik/c2hlZXRWaWV3c1tePl0qKD86W1wvXXw+KFtcc1xTXSopPFwvKD86XHc6''@;'; + put 'put ''KT9zaGVldFZpZXdzKT4vLGVjPS88KD86XHcrOik/ZGF0YVZhbGlkYXRpb25zW14+XSooPzpbXC9dfD4oW1xzXFNdKj8pPFwvKD86XHcrOik/ZGF0YVZhbGlkYXRpb25zKT4vLERtPS88KD86XHcrOik/Y29uZGl0aW9uYWxGb3JtYXR0aW5nXGJbXj5dKig/OltcL118PihbXHNcU10qPyk8XC8o''@;'; + put 'put ''Pzpcdys6KT9jb25kaXRpb25hbEZvcm1hdHRpbmcpPi9nLExtPS88KD86XHc6KT9zaGVldEZvcm1hdFByW14+XSpcLz4vLEFHPS88KD86XHcrOik/dGFibGVQYXJ0cy4qPz4oW1xzXFNdKj8pPFwvKD86XHcrOik/dGFibGVQYXJ0cz4vLFdCPS88KD86XHc6KT9wYWdlU2V0dXBbXj5dKlwvPi8s''@;'; + put 'put ''eV89LzwoPzpcdzopP3Jvd0JyZWFrc1tePl0qKD86W1wvXXw+KFtcc1xTXSopPFwvKD86XHc6KT9yb3dCcmVha3MpPi8sbEE9LzwoPzpcdzopP2NvbEJyZWFrc1tePl0qKD86W1wvXXw+KFtcc1xTXSopPFwvKD86XHc6KT9jb2xCcmVha3MpPi8sc0E9LzwoPzpcdzopP2hlYWRlckZvb3Rlclte''@;'; + put 'put ''Pl0qKD86W1wvXXw+KFtcc1xTXSopPFwvKD86XHc6KT9oZWFkZXJGb290ZXIpPi8sbHg9LzwoPzpcdzopP3ByaW50T3B0aW9uc1xiW14+XC9dKlwvPi87dmFyIF8xPS88KD86XHc6KT90YWJsZVBhcnRcYlteXC8+XSpbXC9dPz4vZztmdW5jdGlvbiBPbShILHJlLFgsd2Upe3ZhciB4ZT1lbihI''@;'; + put 'put ''KTtYLlNoZWV0c1t3ZV18fChYLlNoZWV0c1t3ZV09e30pLHhlLmNvZGVOYW1lJiYoWC5TaGVldHNbd2VdLkNvZGVOYW1lPXhlLmNvZGVOYW1lKX12YXIgYl89LzwoPzpcdzopP3RhYkNvbG9yW14+XSpbXC9dPz4vLHN4PS88KD86XHc6KT9wYWdlU2V0VXBQcltePl0qW1wvXT8+LyxjQT0vPCg/''@;'; + put 'put ''Olx3Oik/b3V0bGluZVByW14+XSpbXC9dPz4vLF9fPXtkaXNwbGF5ZWQ6ImFzRGlzcGxheWVkIixlbmQ6ImF0RW5kIixub25lOiJub25lIn0sQ189dHQoX18pLF8yPXtkaXNwbGF5ZWQ6ImRpc3BsYXllZCIsbm9uZToiYmxhbmsiLGRhc2g6ImRhc2giLCJuL2EiOiJOQSJ9LGZBPXR0KF8yKSxo''@;'; + put 'put ''QT0vPCg/Olx3Oik/YnJrW14+XSpcLz4vZyxNXz1bIm9iamVjdHMiLCJzY2VuYXJpb3MiLCJzZWxlY3RMb2NrZWRDZWxscyIsInNlbGVjdFVubG9ja2VkQ2VsbHMiXSxwQT1bImZvcm1hdENvbHVtbnMiLCJmb3JtYXRSb3dzIiwiZm9ybWF0Q2VsbHMiLCJpbnNlcnRDb2x1bW5zIiwiaW5zZXJ0''@;'; + put 'put ''Um93cyIsImluc2VydEh5cGVybGlua3MiLCJkZWxldGVDb2x1bW5zIiwiZGVsZXRlUm93cyIsInNvcnQiLCJhdXRvRmlsdGVyIiwicGl2b3RUYWJsZXMiXTtmdW5jdGlvbiBQbShIKXt2YXIgcmU9e307cmV0dXJuWyJsZWZ0IiwicmlnaHQiLCJ0b3AiLCJib3R0b20iLCJoZWFkZXIiLCJmb290''@;'; + put 'put ''ZXIiXS5mb3JFYWNoKGZ1bmN0aW9uKFgpe0hbWF0mJihyZVtYXT1wYXJzZUZsb2F0KEhbWF0pKX0pLHJlfXZhciBSaD17Q3VzdG9tOiJjdXN0b20iLERhdGU6ImRhdGUiLFRpbWU6InRpbWUiLExlbmd0aDoidGV4dExlbmd0aCIsTGlzdDoibGlzdCIsRGVjaW1hbDoiZGVjaW1hbCIsV2hvbGU6''@;'; + put 'put ''Indob2xlIixBbnk6Im5vbmUifSxwNT10dChSaCksRzQ9e0lOOiJiZXR3ZWVuIixPVDoibm90QmV0d2VlbiIsRVE6ImVxdWFsIixORToibm90RXF1YWwiLEdUOiJncmVhdGVyVGhhbiIsTFQ6Imxlc3NUaGFuIixHRToiZ3JlYXRlclRoYW5PckVxdWFsIixMRToibGVzc1RoYW5PckVxdWFsIn0s''@;'; + put 'put ''TTY9dHQoRzQpO2Z1bmN0aW9uIHZBKEgscmUsWCl7dmFyIHdlPVtdLHhlPXt9LEZlPSIiLFplPSExLGplPTAsWWU9MDtyZXR1cm4gSC5yZXBsYWNlKEd0LGZ1bmN0aW9uKE10LHh0KXt2YXIgUnQ9ZW4oTXQpO3N3aXRjaChJbihSdFswXSkpe2Nhc2UiPGRhdGFWYWxpZGF0aW9ucyI6Y2FzZSI8''@;'; + put 'put ''ZGF0YVZhbGlkYXRpb25zPiI6Y2FzZSI8L2RhdGFWYWxpZGF0aW9ucz4iOmJyZWFrO2Nhc2UiPGRhdGFWYWxpZGF0aW9uIjp4ZT17dDpwNVtSdC50eXBlfHwibm9uZSJdLHJlZjooRmU9UnQuc3FyZWYpP0ZlLmluZGV4T2YoIiAiKT4tMT9GZTpGbyhGZSk6IiJ9LFJ0Lm9wZXJhdG9yJiYoeGUu''@;'; + put 'put ''b3A9TTZbUnQub3BlcmF0b3JdKSx4ZS5ibGFuaz0hIVJ0LmFsbG93QmxhbmsmJkRpKFJ0LmFsbG93QmxhbmspLCghUnQuc2hvd0lucHV0TWVzc2FnZXx8IURpKFJ0LnNob3dJbnB1dE1lc3NhZ2UpKSYmKHhlLmlucHV0PSExKSxSdC5wcm9tcHRUaXRsZSYmKCh4ZS5pbnB1dHx8KHhlLmlucHV0''@;'; + put 'put ''PXt9KSkudGl0bGU9Z3IoUnQucHJvbXB0VGl0bGUpKSxSdC5wcm9tcHQmJigoeGUuaW5wdXR8fCh4ZS5pbnB1dD17fSkpLm1lc3NhZ2U9Z3IoUnQucHJvbXB0KSksKCFSdC5zaG93RXJyb3JNZXNzYWdlfHwhRGkoUnQuc2hvd0Vycm9yTWVzc2FnZSkpJiYoeGUuZXJyb3I9ITEpLFJ0LmVycm9y''@;'; + put 'put ''VGl0bGUmJigoeGUuZXJyb3J8fCh4ZS5lcnJvcj17fSkpLnRpdGxlPWdyKFJ0LmVycm9yVGl0bGUpKSxSdC5lcnJvciYmKCh4ZS5lcnJvcnx8KHhlLmVycm9yPXt9KSkubWVzc2FnZT1ncihSdC5lcnJvcikpLHhlLmVycm9yP3hlLmVycm9yLnN0eWxlPVJ0LmVycm9yU3R5bGV8fCJzdG9wIjpS''@;'; + put 'put ''dC5lcnJvclN0eWxlJiYoeGUuZXJyb3I9e3N0eWxlOlJ0LmVycm9yU3R5bGV9KSx4ZS50JiZ3ZS5wdXNoKHhlKTticmVhaztjYXNlIjxkYXRhVmFsaWRhdGlvbi8+IjpjYXNlIjwvZGF0YVZhbGlkYXRpb24+IjpicmVhaztjYXNlIjxzcXJlZj4iOlllPXh0K010Lmxlbmd0aDticmVhaztjYXNl''@;'; + put 'put ''Ijwvc3FyZWY+IjpGZT1ILnNsaWNlKFllLHh0KSx4ZS5yZWY9RmU/RmUuaW5kZXhPZigiICIpPi0xP0ZlOkZvKEZlKToiIjticmVhaztjYXNlIjxmPiI6Y2FzZSI8Zm9ybXVsYTEiOmNhc2UiPGZvcm11bGExPiI6Y2FzZSI8Zm9ybXVsYTIiOmNhc2UiPGZvcm11bGEyPiI6amU9eHQrTXQubGVu''@;'; + put 'put ''Z3RoO2JyZWFrO2Nhc2UiPC9mb3JtdWxhMT4iOmNhc2UiPC9mb3JtdWxhMj4iOmlmKFgpYnJlYWs7Y2FzZSI8L2Y+Ijp2YXIgVXQ9Z3IoVzAoSC5zbGljZShqZSx4dCkpKTtzd2l0Y2goeGUudCl7Y2FzZSJMaXN0IjppZih4ZS5sfHx4ZS5mKWJyZWFrO2lmKDM0PT1VdC5jaGFyQ29kZUF0KDAp''@;'; + put 'put ''KXt4ZS5sPVV0LnNsaWNlKDEsLTEpLnNwbGl0KCIsIik7YnJlYWt9Y2FzZSJDdXN0b20iOm51bGw9PXhlLmYmJih4ZS5mPVV0KTticmVhaztjYXNlIkRhdGUiOmNhc2UiRGVjaW1hbCI6Y2FzZSJMZW5ndGgiOmNhc2UiVGltZSI6Y2FzZSJXaG9sZSI6eGUub3B8fCh4ZS5vcD0iSU4iKSxudWxs''@;'; + put 'put ''PT14ZS52P3hlLnY9aXNOYU4oK1V0KT9VdDorVXQ6KHhlLm1pbj14ZS52LHhlLm1heD1pc05hTigrVXQpP1V0OitVdCxkZWxldGUgeGUudil9YnJlYWs7Y2FzZSI8ZXh0THN0IjpjYXNlIjxleHRMc3Q+IjpjYXNlIjwvZXh0THN0PiI6YnJlYWs7Y2FzZSI8ZXh0IjpaZT0hMDticmVhaztjYXNl''@;'; + put 'put ''IjwvZXh0PiI6WmU9ITE7YnJlYWs7ZGVmYXVsdDppZihyZSYmcmUuV1RGJiYhWmUpdGhyb3cgbmV3IEVycm9yKCJ1bnJlY29nbml6ZWQgIitSdFswXSsiIGluIGRhdGEgdmFsaWRhdGlvbiIpfXJldHVybiBNdH0pLHdlfXZhciBBQT17SU46ImNvbnRhaW5zVGV4dCIsT1Q6Im5vdENvbnRhaW5z''@;'; + put 'put ''VGV4dCIsU1Q6ImJlZ2luc1dpdGgiLE5EOiJlbmRzV2l0aCJ9LExfPXR0KEFBKSx5QT17TE06Imxhc3RNb250aCIsTFM6Imxhc3Q3RGF5cyIsTFc6Imxhc3RXZWVrIixOTToibmV4dE1vbnRoIixOVzoibmV4dFdlZWsiLFRNOiJ0aGlzTW9udGgiLFRXOiJ0aGlzV2VlayIsVEQ6InRvZGF5IixU''@;'; + put 'put ''TzoidG9tb3Jyb3ciLFlTOiJ5ZXN0ZXJkYXkifSxGbT10dCh5QSk7ZnVuY3Rpb24gSG0oSCl7dmFyIHJlPXt9O3JldHVybiBudWxsIT1ILnZhbCYmKGlzTmFOKCtILnZhbCk/cmUuZj1ILnZhbDpyZS52PStILnZhbCkscmUudD1ILnR5cGUscmV9ZnVuY3Rpb24gUGQoSCl7cmV0dXJuIF9pKCJj''@;'; + put 'put ''ZnZvIixudWxsLHt0eXBlOkgudCx2YWw6bnVsbCE9SC52P0gudjpScihILmYpfSl9ZnVuY3Rpb24gT18oSCxyZSxYLHdlKXt2YXIgeGU9SG0oSCk7cmV0dXJuIHhlLmNvbG9yPUUzKHJlLFgsd2UpLHhlfWZ1bmN0aW9uIGR4KEgscmUsWCx3ZSx4ZSl7dmFyIEZlPShILm1hdGNoKC9zcXJlZj0i''@;'; + put 'put ''KFtcdzokIF0qKSIvKXx8W10pWzFdO3JldHVybiBmdW5jdGlvbiB3RyhILHJlLFgsd2UseGUsRmUpe3ZhciBaZT0hMSxqZT1bXSxZZT17ZjpbXX0sTXQ9MCx4dD0wLFJ0PXtjZnZvczpbXSxjb2xvcnM6W119LFV0PXt9LG5uPS0xLENuPTAsRHQ9IiI7cmV0dXJuIEgucmVwbGFjZShHdCxmdW5j''@;'; + put 'put ''dGlvbih6dCxQbil7dmFyIFRuPWVuKHp0KTtzd2l0Y2goSW4oVG5bMF0pKXtjYXNlIjxjb25kaXRpb25hbEZvcm1hdHRpbmciOmNhc2UiPC9jb25kaXRpb25hbEZvcm1hdHRpbmc+IjpicmVhaztjYXNlIjxjZlJ1bGUiOmNhc2UiPGNmUnVsZT4iOmlmKHh0PVBuLFV0PVRuLFllPXtyZWY6cmUs''@;'; + put 'put ''ZjpbXX0sIXp0Lm1hdGNoKC9cLz4vKSlicmVhaztjYXNlIjwvY2ZSdWxlPiI6c3dpdGNoKFV0LmR4ZklkJiZ4ZSYmeGUuRFhGJiYoWWUucz14ZS5EWEZbK1V0LmR4ZklkXSksVXQudHlwZSl7Y2FzZSJkdXBsaWNhdGVWYWx1ZXMiOlllLnQ9ImR1cCI7YnJlYWs7Y2FzZSJ1bmlxdWVWYWx1ZXMi''@;'; + put 'put ''OlllLnQ9InVuaXF1ZSI7YnJlYWs7Y2FzZSJjb250YWluc0JsYW5rcyI6WWUudD0iYmxhbmsiLFllLnY9ITA7YnJlYWs7Y2FzZSJub3RDb250YWluc0JsYW5rcyI6WWUudD0iYmxhbmsiLFllLnY9ITE7YnJlYWs7Y2FzZSJjb250YWluc0Vycm9ycyI6WWUudD0iZXJyb3IiLFllLnY9ITA7YnJl''@;'; + put 'put ''YWs7Y2FzZSJub3RDb250YWluc0Vycm9ycyI6WWUudD0iZXJyb3IiLFllLnY9ITE7YnJlYWs7Y2FzZSJjZWxsSXMiOnN3aXRjaChVdC5vcGVyYXRvcil7Y2FzZSJjb250YWluc1RleHQiOmNhc2Uibm90Q29udGFpbnMiOmNhc2UiYmVnaW5zV2l0aCI6Y2FzZSJlbmRzV2l0aCI6aWYoWWUudD0i''@;'; + put 'put ''dGV4dCIsWWUub3A9TF9bVXQub3BlcmF0b3JdLG51bGw9PVV0LnRleHQpdGhyb3cgbmV3IEVycm9yKCJDRiBUZXh0IFJ1bGUgIitZZS5vcCsiIG1pc3NpbmcgdGV4dCIpO1llLnY9VXQudGV4dCxZZS5mPVllLmZbMF0sbnVsbD09WWUuZiYmZGVsZXRlIFllLmY7YnJlYWs7ZGVmYXVsdDpZZS50''@;'; + put 'put ''PSJ2YWwiLFllLm9wPU02W1V0Lm9wZXJhdG9yXSwxPT1ZZS5mLmxlbmd0aD9pc05hTigrWWUuZlswXSk/WWUuZj1ZZS5mWzBdOihZZS52PStZZS5mWzBdLGRlbGV0ZSBZZS5mKTooWWUubWluPWlzTmFOKCtZZS5mWzBdKT9ZZS5mWzBdOitZZS5mWzBdLFllLm1heD1pc05hTigrWWUuZlsxXSk/''@;'; + put 'put ''WWUuZlsxXTorWWUuZlsxXSxkZWxldGUgWWUuZil9YnJlYWs7Y2FzZSJleHByZXNzaW9uIjpZZS50PSJmb3JtdWxhIixZZS5mPVllLmZbMF07YnJlYWs7Y2FzZSJjb250YWluc1RleHQiOmNhc2Uibm90Q29udGFpbnNUZXh0IjpjYXNlImJlZ2luc1dpdGgiOmNhc2UiZW5kc1dpdGgiOmlmKFll''@;'; + put 'put ''LnQ9InRleHQiLFllLm9wPUxfW1V0LnR5cGVdLG51bGw9PVV0LnRleHQmJlllLmYubGVuZ3RoPDIpdGhyb3cgbmV3IEVycm9yKCJDRiBUZXh0IFJ1bGUgIitZZS5vcCsiIG1pc3NpbmcgdGV4dCIpO1llLnY9bnVsbCE9VXQudGV4dD9VdC50ZXh0OlllLmZbMV0ubWF0Y2goLyIuKiIvKT9ZZS5m''@;'; + put 'put ''WzFdLnNsaWNlKDEsLTEpOlllLmZbMV0sWWUuZj1ZZS5mWzBdLG51bGw9PVllLmYmJmRlbGV0ZSBZZS5mO2JyZWFrO2Nhc2UiY29sb3JTY2FsZSI6aWYoWWUudD0ic2NhbGUiLCFZZS5jb2xvclNjYWxlKXRocm93IG5ldyBFcnJvcigibWlzc2luZyBjb2xvclNjYWxlIik7WWUuY21pbj1PXygo''@;'; + put 'put ''UnQ9WWUuY29sb3JTY2FsZSkuY2Z2b3NbMF0sUnQuY29sb3JzWzBdLHhlLHdlKSwzPT1SdC5jZnZvcy5sZW5ndGgmJihZZS5jbWlkPU9fKFJ0LmNmdm9zWzFdLFJ0LmNvbG9yc1sxXSx4ZSx3ZSkpLFllLmNtYXg9T18oUnQuY2Z2b3NbUnQuY2Z2b3MubGVuZ3RoLTFdLFJ0LmNvbG9yc1tSdC5j''@;'; + put 'put ''ZnZvcy5sZW5ndGgtMV0seGUsd2UpO2JyZWFrO2Nhc2UiZGF0YUJhciI6aWYoWWUudD0iYmFyIiwhWWUuZGF0YUJhcil0aHJvdyBuZXcgRXJyb3IoIm1pc3NpbmcgZGF0YUJhciIpOyhSdD1ZZS5kYXRhQmFyKS5jb2xvcnNbMF0mJihZZS5jb2xvcj1FMyhSdC5jb2xvcnNbMF0seGUsd2UpKSxZ''@;'; + put 'put ''ZS5jbWluPUhtKFJ0LmNmdm9zWzBdKSxZZS5jbWF4PUhtKFJ0LmNmdm9zWzFdKTticmVhaztjYXNlImljb25TZXQiOmlmKFllLnQ9Imljb24iLCFZZS5pY29uU2V0KXRocm93IG5ldyBFcnJvcigibWlzc2luZyBpY29uU2V0Iik7WWUudGhyZXNoPShSdD1ZZS5pY29uU2V0KS5jZnZvcy5tYXAo''@;'; + put 'put ''ZnVuY3Rpb24oT24pe3JldHVybiBIbShPbil9KSxZZS52PVJ0LnRhZyYmUnQudGFnLmljb25TZXR8fCIzVHJhZmZpY0xpZ2h0czEiLFllLnJldj1EaShSdC50YWcucmV2ZXJzZXx8ImZhbHNlIiksWWUucGN0PURpKFJ0LnRhZy5wZXJjZW50fHwidHJ1ZSIpLFllLmhpZGRlbj0hRGkoUnQudGFn''@;'; + put 'put ''LnNob3dWYWx1ZXx8InRydWUiKTticmVhaztjYXNlInRpbWVQZXJpb2QiOlllLnQ9ImRhdGUiLFllLm9wPUZtW1V0LnRpbWVQZXJpb2RdO2JyZWFrO2Nhc2UiYWJvdmVBdmVyYWdlIjpZZS50PSJhdmciLFllLm9wPSIwIj09VXQuYWJvdmVBdmVyYWdlPyJMIjoiRyIsWWUub3ArPVV0LnN0ZERl''@;'; + put 'put ''dj9VdC5zdGREZXY6RGkoVXQuZXF1YWxBdmVyYWdlfHwiMCIpPyJFIjoiVCI7YnJlYWs7Y2FzZSJ0b3AxMCI6WWUudD0icmFuayIsWWUub3A9KERpKFV0LmJvdHRvbXx8IjAiKT8iQiI6IlQiKSsoRGkoVXQucGVyY2VudHx8IjAiKT8iUCI6IlYiKSxZZS52PStVdC5yYW5rO2JyZWFrO2RlZmF1''@;'; + put 'put ''bHQ6dGhyb3ciVW5zdXBwb3J0ZWQgQ0YgVHlwZSAiK1V0LnR5cGV9aWYoZGVsZXRlIFllLmNvbG9yU2NhbGUsZGVsZXRlIFllLmRhdGFCYXIsZGVsZXRlIFllLmljb25TZXQsIVllLnQpdGhyb3cgY29uc29sZS5sb2coSC5zbGljZSh4dCxQbit6dC5sZW5ndGgpKSwiYmFkIENGIHJ1bGUiO251''@;'; + put 'put ''bGwhPVllLmYmJiFZZS5mLmxlbmd0aCYmZGVsZXRlIFllLmYsWWUuZGVsfHxqZS5wdXNoKFllKTticmVhaztjYXNlIjxmb3JtdWxhIjpjYXNlIjxmb3JtdWxhPiI6TXQ9UG4renQubGVuZ3RoO2JyZWFrO2Nhc2UiPC9mb3JtdWxhPiI6WWUuZi5wdXNoKGdyKEguc2xpY2UoTXQsUG4pKSk7YnJl''@;'; + put 'put ''YWs7Y2FzZSI8ZiI6Y2FzZSI8Zj4iOk10PVBuK3p0Lmxlbmd0aDticmVhaztjYXNlIjwvZj4iOlllLmYucHVzaChncihILnNsaWNlKE10LFBuKSkpO2JyZWFrO2Nhc2UiPHNxcmVmPiI6Q249UG4renQubGVuZ3RoO2JyZWFrO2Nhc2UiPC9zcXJlZj4iOkR0PUguc2xpY2UoQ24sUG4pLHJlPUR0''@;'; + put 'put ''P0R0LmluZGV4T2YoIiAiKT4tMT9EdDpGbyhEdCk6IiIsWWUucmVmPXJlLGplLmZvckVhY2goZnVuY3Rpb24oT24pe09uLnJlZj1yZX0pO2JyZWFrO2Nhc2UiPGNvbG9yU2NhbGUiOmNhc2UiPGNvbG9yU2NhbGU+IjpjYXNlIjxkYXRhQmFyIjpjYXNlIjxkYXRhQmFyPiI6Y2FzZSI8aWNvblNl''@;'; + put 'put ''dCI6Y2FzZSI8aWNvblNldD4iOlJ0PXtjZnZvczpbXSxjb2xvcnM6W10sdGFnOlRufSxNdD1Qbit6dC5sZW5ndGg7YnJlYWs7Y2FzZSI8L2NvbG9yU2NhbGU+IjpZZS5jb2xvclNjYWxlPVJ0O2JyZWFrO2Nhc2UiPC9kYXRhQmFyPiI6WWUuZGF0YUJhcj1SdDticmVhaztjYXNlIjwvaWNvblNl''@;'; + put 'put ''dD4iOlllLmljb25TZXQ9UnQ7YnJlYWs7Y2FzZSI8Y2Z2byI6Y2FzZSI8Y2Z2by8+IjpSdC5jZnZvcy5wdXNoKFRuKTticmVhaztjYXNlIjwvY2Z2bz4iOmJyZWFrO2Nhc2UiPGNvbG9yIjpSdC5jb2xvcnMucHVzaChUbik7YnJlYWs7Y2FzZSI8L2NvbG9yPiI6Y2FzZSI8ZXh0THN0IjpjYXNl''@;'; + put 'put ''IjxleHRMc3Q+IjpjYXNlIjwvZXh0THN0PiI6YnJlYWs7Y2FzZSI8ZXh0IjpaZT0hMDticmVhaztjYXNlIjwvZXh0PiI6WmU9ITE7YnJlYWs7Y2FzZSI8bmVnYXRpdmVGaWxsQ29sb3IiOmNhc2UiPGF4aXNDb2xvciI6Y2FzZSI8Ym9yZGVyQ29sb3IiOmNhc2UiPG5lZ2F0aXZlQm9yZGVyQ29s''@;'; + put 'put ''b3IiOmNhc2UiPGNmSWNvbiI6WWUuZGVsPSEwO2JyZWFrO2Nhc2UiPGR4Zj4iOlplPSEwLG5uPVBuO2JyZWFrO2Nhc2UiPC9keGY+IjpaZT0hMSxZZS5zPXA2KEguc2xpY2Uobm4sUG4renQubGVuZ3RoKSx4ZSx3ZSxYKTticmVhaztkZWZhdWx0OmlmKFgmJlguV1RGKXtpZihGZSlicmVhaztp''@;'; + put 'put ''ZighWmUpdGhyb3cgbmV3IEVycm9yKCJ1bnJlY29nbml6ZWQgIitUblswXSsiIGluIGNvbmRmbXQiKX19cmV0dXJuIHp0fSksamV9KEgsRmUscmUsWCx3ZSx4ZSl9dmFyIGd4PS88KD86XHc6KT9zaGVldFZpZXcoPzpbXj5hLXpdW14+XSopP1wvPz4vZztmdW5jdGlvbiBEbyhILHJlKXt2YXIg''@;'; + put 'put ''WD0wLHdlPTAseGU9MCxGZT0wO2lmKCFyZXx8IXJlLkNlbGxYZilyZXR1cm4gbnVsbDt2YXIgWmU9cmUuQ2VsbFhmW0hdO251bGwhPVplJiYobnVsbCE9WmUubnVtRm10SWQmJihYPVplLm51bUZtdElkKSxudWxsIT1aZS5maWxsSWQmJih3ZT1aZS5maWxsSWQpLG51bGwhPVplLmZvbnRJZCYm''@;'; + put 'put ''KHhlPVplLmZvbnRJZCksbnVsbCE9WmUuYm9yZGVySWQmJihGZT1aZS5ib3JkZXJJZCkpO3ZhciBqZT17dDoieiJ9O3RyeXtkNShqZSxYLHdlLHhlLEZlLHtXVEY6MSxjZWxsU3R5bGVzOiEwfSwwLHJlKX1jYXRjaChZZSl7fXJldHVybiBqZS5zfWZ1bmN0aW9uIEpCKEgscmUsWCx3ZSl7aWYo''@;'; + put 'put ''dm9pZCAwPT09SC52JiZ2b2lkIDA9PT1ILmYmJm51bGw9PUgucyYmIUguY3x8InoiPT09SC50JiYhSC5jJiYhd2Uuc2hlZXRTdHVicylyZXR1cm4iIjt2YXIgeGU9IiIsRmU9SC50LFplPUgudjtpZigieiIhPT1ILnQpc3dpdGNoKEgudCl7Y2FzZSJiIjp4ZT1ILnY/IjEiOiIwIjticmVhaztj''@;'; + put 'put ''YXNlIm4iOnhlPSIiK0gudjticmVhaztjYXNlImUiOnhlPU4xW0gudl07YnJlYWs7Y2FzZSJkIjp3ZSYmd2UuY2VsbERhdGVzP3hlPWRuKEgudiwtMSkudG9JU09TdHJpbmcoKTooKEg9bG4oSCkpLnQ9Im4iLHhlPSIiKyhILnY9ZnQoZG4oSC52KSkpKSx2b2lkIDA9PT1ILnomJihILno9Ri5f''@;'; + put 'put ''dGFibGVbMTRdKTticmVhaztkZWZhdWx0OnhlPUgudn12YXIgamU9InoiPT1ILnQ/IiI6c2EoInYiLFJyKHhlKSksWWU9e3I6cmV9LE10PXdlP1kxKHdlLmNlbGxYZnMsd2UuY2VsbFN0eWxlWGZzLEgsd2UpOjA7c3dpdGNoKDAhPT1NdCYmKFllLnM9TXQpLEgudCl7Y2FzZSJuIjpjYXNlInoi''@;'; + put 'put ''OmJyZWFrO2Nhc2UiZCI6WWUudD0iZCI7YnJlYWs7Y2FzZSJiIjpZZS50PSJiIjticmVhaztjYXNlImUiOlllLnQ9ImUiO2JyZWFrO2RlZmF1bHQ6aWYobnVsbD09SC52KXtkZWxldGUgSC50O2JyZWFrfWlmKHdlJiZ3ZS5ib29rU1NUKXtqZT1zYSgidiIsIiIrQzYod2UuU3RyaW5ncyxILnYs''@;'; + put 'put ''SC5SP0gucj11NihILlIpOm51bGwsd2UucmV2U3RyaW5ncykpLFllLnQ9InMiO2JyZWFrfUFycmF5LmlzQXJyYXkoSC5SKT8oamU9Ijxpcz4iK3U2KEguUikrIjwvaXM+IixZZS50PSJpbmxpbmVTdHIiKTpZZS50PSJzdHIifWlmKEgudCE9RmUmJihILnQ9RmUsSC52PVplKSxILmYpe3ZhciB4''@;'; + put 'put ''dD1ILkYmJkguRi5zbGljZSgwLHJlLmxlbmd0aCk9PXJlP3t0OiJhcnJheSIscmVmOkguRn06bnVsbDtqZT1faSgiZiIsUnIoSC5mKSx4dCkrKG51bGwhPUgudj9qZToiIil9cmV0dXJuIEgubCYmWFsiIWxpbmtzIl0ucHVzaChbcmUsSC5sXSksSC5jJiZYWyIhY29tbWVudHMiXS5wdXNoKFty''@;'; + put 'put ''ZSxILmNdKSxfaSgiYyIsamUsWWUpfXZhciBSXz1mdW5jdGlvbigpe3ZhciBIPS88KD86XHcrOik/Y1sgXC8+XS8scmU9LzxcLyg/Olx3KzopP3Jvdz4vLFg9L3I9WyInXShbXiInXSopWyInXS8sd2U9LzwoPzpcdys6KT9pcz4oW1xTXHNdKj8pPFwvKD86XHcrOik/aXM+Lyx4ZT0vcmVmPVsi''@;'; + put 'put ''J10oW14iJ10qKVsiJ10vLEZlPVFpKCJ2IiksWmU9UWkoImYiKTtyZXR1cm4gZnVuY3Rpb24oWWUsTXQseHQsUnQsVXQsbm4sQ24pe2Zvcih2YXIgeXIsYXIscXIsb2ksQTAsRHQ9MCx6dD0iIixQbj1bXSxUbj1bXSxPbj0wLFluPTAsTXI9MCxhaT0iIixHcj0wLHpyPTAsY3I9MCxkaT0wLHYw''@;'; + put 'put ''PTAsVWk9MCx0bz1BcnJheS5pc0FycmF5KENuLkNlbGxYZiksd2k9W10sWXI9W10sRWk9QXJyYXkuaXNBcnJheSh4dCksaGk9W10sTnI9e30sa2k9ITEsTjA9WWUuc3BsaXQocmUpLHQwPSEhUnQuc2hlZXRTdHVicyxpbz0hIVJ0LmNlbGxIVE1MLG9hPSEoITE9PT1SdC5jZWxsVGV4dCYmIVJ0''@;'; + put 'put ''LmNlbGxORiYmIVJ0LmNlbGxTdHlsZXMpLCQwPTAsTmE9TjAubGVuZ3RoOyQwIT1OYTsrKyQwKXt2YXIgam89KHp0PU4wWyQwXS50cmltKCkpLmxlbmd0aDtpZigwIT09am8pe3ZhciB3YT0wO2U6Zm9yKER0PTA7RHQ8am87KytEdClzd2l0Y2goenRbRHRdKXtjYXNlIj4iOmlmKCIvIiE9enRb''@;'; + put 'put ''RHQtMV0peysrRHQ7YnJlYWsgZX1SdC5jZWxsU3R5bGVzJiZudWxsIT0oYXI9ZW4oenQuc2xpY2Uod2EsRHQpLCEwKSkuciYmcGFyc2VJbnQoYXIuciwxMCkmJihHcj1wYXJzZUludChhci5yLDEwKSxOcj17fSxraT0hMSxhci5odCYmKGtpPSEwLE5yLmhwdD1wYXJzZUZsb2F0KGFyLmh0KSxO''@;'; + put 'put ''ci5ocHg9QWYoTnIuaHB0KSksYXIuZHlEZXNjZW50JiYoa2k9ITAsTnIuZHlEZXNjZW50PWFyLmR5RGVzY2VudCksIjEiPT1hci5oaWRkZW4mJihraT0hMCxOci5oaWRkZW49ITApLG51bGwhPWFyLm91dGxpbmVMZXZlbCYmKGtpPSEwLE5yLmxldmVsPSthci5vdXRsaW5lTGV2ZWwpLGFyLnMm''@;'; + put 'put ''JkNuJiZDbi5DZWxsWGYmJihraT0hMCxOci5zPURvKGFyLnMsQ24pKSxraSYmKGhpW0dyLTFdPU5yKSk7YnJlYWs7Y2FzZSI8Ijp3YT1EdH1pZih3YT49RHQpYnJlYWs7aWYoR3I9bnVsbCE9KGFyPWVuKHp0LnNsaWNlKHdhLER0KSwhMCkpLnI/cGFyc2VJbnQoYXIuciwxMCk6R3IrMSx6cj0t''@;'; + put 'put ''MSwhKFJ0LnNoZWV0Um93cyYmUnQuc2hlZXRSb3dzPEdyKSl7UnQubm9kaW18fChVdC5zLnI+R3ItMSYmKFV0LnMucj1Hci0xKSxVdC5lLnI8R3ItMSYmKFV0LmUucj1Hci0xKSk7dmFyIGFvPXt0OiJyb3ciLHJvdzpbXSxSOkdyLTEsaWR4Ok10fTtSdC5jZWxsU3R5bGVzJiYoTnI9e30sa2k9''@;'; + put 'put ''ITEsYXIuaHQmJihraT0hMCxOci5ocHQ9cGFyc2VGbG9hdChhci5odCksTnIuaHB4PUFmKE5yLmhwdCkpLGFyLmR5RGVzY2VudCYmKGtpPSEwLE5yLmR5RGVzY2VudD1hci5keURlc2NlbnQpLCIxIj09YXIuaGlkZGVuJiYoa2k9ITAsTnIuaGlkZGVuPSEwKSxudWxsIT1hci5vdXRsaW5lTGV2''@;'; + put 'put ''ZWwmJihraT0hMCxOci5sZXZlbD0rYXIub3V0bGluZUxldmVsKSxhci5zJiYoa2k9ITAsTnIucz1Ebyhhci5zLENuKSksa2kmJihSdC5jYWxsYmFjaz9hby5wcm9wcz1OcjpoaVtHci0xXT1OcikpLFBuPXp0LnNsaWNlKER0KS5zcGxpdChIKTtmb3IodmFyIHgwPTA7eDAhPVBuLmxlbmd0aCYm''@;'; + put 'put ''IjwiPT1Qblt4MF0udHJpbSgpLmNoYXJBdCgwKTsrK3gwKTtmb3IoUG49UG4uc2xpY2UoeDApLER0PTA7RHQhPVBuLmxlbmd0aDsrK0R0KWlmKDAhPT0oenQ9UG5bRHRdLnRyaW0oKSkubGVuZ3RoKXtpZihUbj16dC5tYXRjaChYKSxPbj1EdCxZbj0wLE1yPTAsenQ9IjxjICIrKCI8Ij09enQu''@;'; + put 'put ''c2xpY2UoMCwxKT8iPiI6IiIpK3p0LG51bGwhPVRuJiYyPT09VG4ubGVuZ3RoKXtmb3IoT249MCxhaT1UblsxXSxZbj0wO1luIT1haS5sZW5ndGgmJiEoKE1yPWFpLmNoYXJDb2RlQXQoWW4pLTY0KTwxfHxNcj4yNik7KytZbilPbj0yNipPbitNcjt6cj0tLU9ufWVsc2UrK3pyO2ZvcihZbj0w''@;'; + put 'put ''O1luIT16dC5sZW5ndGgmJjYyIT09enQuY2hhckNvZGVBdChZbik7KytZbik7aWYoKytZbiwoYXI9ZW4oenQuc2xpY2UoMCxZbiksITApKS5yfHwoYXIucj1ZMCh7cjpHci0xLGM6enJ9KSkseXI9e3Q6IiJ9LG51bGwhPShUbj0oYWk9enQuc2xpY2UoWW4pKS5tYXRjaChGZSkpJiYiIiE9PVRu''@;'; + put 'put ''WzFdJiYoeXIudj1ncihUblsxXSkpLFJ0LmNlbGxGb3JtdWxhKXtpZihudWxsIT0oVG49YWkubWF0Y2goWmUpKSYmIiIhPT1UblsxXSl7aWYoeXIuZj1ncihXMChUblsxXSkpLnJlcGxhY2UoL1xyXG4vZywiXG4iKSxSdC54bGZufHwoeXIuZj1YYih5ci5mKSksVG5bMF0uaW5kZXhPZigndD0i''@;'; + put 'put ''YXJyYXkiJyk+LTEpeXIuRj0oYWkubWF0Y2goeGUpfHxbXSlbMV0seXIuRi5pbmRleE9mKCI6Iik+LTEmJndpLnB1c2goW0ZvKHlyLkYpLHlyLkZdKTtlbHNlIGlmKFRuWzBdLmluZGV4T2YoJ3Q9InNoYXJlZCInKT4tMSl7b2k9ZW4oVG5bMF0pO3ZhciBoMD1ncihXMChUblsxXSkpO1J0Lnhs''@;'; + put 'put ''Zm58fChoMD1YYihoMCkpLFlyW3BhcnNlSW50KG9pLnNpLDEwKV09W29pLGgwLGFyLnJdfX1lbHNlKFRuPWFpLm1hdGNoKC88ZltePl0qXC8+LykpJiZZclsob2k9ZW4oVG5bMF0pKS5zaV0mJih5ci5mPVY0KFlyW29pLnNpXVsxXSxZcltvaS5zaV1bMl0sYXIucikpO3ZhciBqcj11bChhci5y''@;'; + put 'put ''KTtmb3IoWW49MDtZbjx3aS5sZW5ndGg7KytZbilqci5yPj13aVtZbl1bMF0ucy5yJiZqci5yPD13aVtZbl1bMF0uZS5yJiZqci5jPj13aVtZbl1bMF0ucy5jJiZqci5jPD13aVtZbl1bMF0uZS5jJiYoeXIuRj13aVtZbl1bMV0pfWlmKG51bGw9PWFyLnQmJnZvaWQgMD09PXlyLnYpaWYoeXIu''@;'; + put 'put ''Znx8eXIuRil5ci52PTAseXIudD0ibiI7ZWxzZXtpZighdDApY29udGludWU7eXIudD0ieiJ9ZWxzZSB5ci50PWFyLnR8fCJuIjtzd2l0Y2goVXQucy5jPnpyJiYoVXQucy5jPXpyKSxVdC5lLmM8enImJihVdC5lLmM9enIpLHlyLnQpe2Nhc2UibiI6aWYoIiI9PXlyLnZ8fG51bGw9PXlyLnYp''@;'; + put 'put ''e2lmKCF0MCljb250aW51ZTt5ci50PSJ6In1lbHNlIHlyLnY9cGFyc2VGbG9hdCh5ci52KTticmVhaztjYXNlInMiOmlmKHZvaWQgMD09PXlyLnYpe2lmKCF0MCljb250aW51ZTt5ci50PSJ6In1lbHNlIHFyPVJkW3BhcnNlSW50KHlyLnYsMTApXSx5ci52PXFyLnQseXIucj1xci5yLHFyLlIm''@;'; + put 'put ''Jih5ci5SPXFyLlIpLGlvJiYoeXIuaD1xci5oKTticmVhaztjYXNlInN0ciI6eXIudD0icyIseXIudj1udWxsIT15ci52P1cwKHlyLnYpOiIiLGlvJiYoeXIuaD1uMCh5ci52KSk7YnJlYWs7Y2FzZSJpbmxpbmVTdHIiOlRuPWFpLm1hdGNoKHdlKSx5ci50PSJzIixudWxsIT1UbiYmKHFyPSR1''@;'; + put 'put ''KFRuWzFdKSk/KHlyLnY9cXIudCxxci5SJiYoeXIuUj1xci5SKSxpbyYmKHlyLmg9cXIuaCkpOnlyLnY9IiI7YnJlYWs7Y2FzZSJiIjp5ci52PURpKHlyLnYpO2JyZWFrO2Nhc2UiZCI6UnQuY2VsbERhdGVzP3lyLnY9ZG4oeXIudiwxKTooeXIudj1mdChkbih5ci52LDEpKSx5ci50PSJuIik7''@;'; + put 'put ''YnJlYWs7Y2FzZSJlIjohMSE9PVJ0LmNlbGxUZXh0JiYoeXIudz15ci52KSx5ci52PV9oW3lyLnZdfWlmKG9hKXtjcj1kaT12MD1VaT0wLEEwPW51bGwsdG8mJnZvaWQgMCE9PWFyLnMmJm51bGwhPShBMD1Dbi5DZWxsWGZbYXIuc10pJiYobnVsbCE9QTAubnVtRm10SWQmJihjcj1BMC5udW1G''@;'; + put 'put ''bXRJZCksUnQuY2VsbFN0eWxlcyYmKG51bGwhPUEwLmZpbGxJZCYmKGRpPUEwLmZpbGxJZCksbnVsbCE9QTAuZm9udElkJiYodjA9QTAuZm9udElkKSxudWxsIT1BMC5ib3JkZXJJZCYmKFVpPUEwLmJvcmRlcklkKSkpO3RyeXtkNSh5cixjcixkaSx2MCxVaSxSdCwwLENuKX1jYXRjaCh2byl7''@;'; + put 'put ''fVJ0LmNlbGxTdHlsZXMmJnlyLnMmJihBMCYmQTAuYWxpZ25tZW50JiYoeXIucy5hbGlnbm1lbnQ9bG4oQTAuYWxpZ25tZW50KSksQTAmJkEwLnByb3RlY3Rpb24mJihudWxsIT1BMC5wcm90ZWN0aW9uLmhpZGRlbiYmKHlyLnMuaGlkZGVuPUEwLnByb3RlY3Rpb24uaGlkZGVuKSxudWxsIT1B''@;'; + put 'put ''MC5wcm90ZWN0aW9uLmVkaXRhYmxlJiYoeXIucy5lZGl0YWJsZT1BMC5wcm90ZWN0aW9uLmVkaXRhYmxlKSksQTAmJkEwLnN0eWxlJiYoeXIucy5zdHlsZT1BMC5zdHlsZSkpLFJ0LmNlbGxEYXRlcyYmdG8mJiJuIj09eXIudCYmRi5pc19kYXRlKEYuX3RhYmxlW2NyXSkmJih5ci50PSJkIix5''@;'; + put 'put ''ci52PUh0KHlyLnYpKX12YXIgSGk7UnQubm9kaW0mJihIaT11bChhci5yKSxVdC5zLnI+SGkuciYmKFV0LnMucj1IaS5yKSxVdC5lLnI8SGkuciYmKFV0LmUucj1IaS5yKSksUnQuY2FsbGJhY2s/KEhpPXVsKGFyLnIpLGFvLnJvd1tIaS5jXT15cik6RWk/KHh0WyhIaT11bChhci5yKSkucl18''@;'; + put 'put ''fCh4dFtIaS5yXT1bXSkseHRbSGkucl1bSGkuY109eXIpOnh0W2FyLnJdPXlyfVJ0LmNhbGxiYWNrJiZSdC5jYWxsYmFjayhhbyl9fX10MCYmIVJ0LmNhbGxiYWNrJiZEbygwLENuKSxoaS5sZW5ndGg+MCYmKHh0WyIhcm93cyJdPWhpKX19KCksWEI9X2koIndvcmtzaGVldCIsbnVsbCx7eG1s''@;'; + put 'put ''bnM6WDAubWFpblswXSwieG1sbnM6ciI6WDAuciwieG1sbnM6eDE0YWMiOiJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL29mZmljZS9zcHJlYWRzaGVldG1sLzIwMDkvOS9hYyIsInhtbG5zOm1jIjoiaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL21hcmt1cC1jb21wYXRp''@;'; + put 'put ''YmlsaXR5LzIwMDYiLCJtYzpJZ25vcmFibGUiOiJ4MTRhYyJ9KTtmdW5jdGlvbiBLQihILHJlLFgsd2Upe3ZhciBaZSx4ZT1bY24sWEJdLGplPSIiLFllPVguU2hlZXRzW1guU2hlZXROYW1lc1tIXV07bnVsbD09WWUmJihZZT17fSk7dmFyIE10PVllWyIhcmVmIl18fCJBMSIseHQ9Rm8oTXQp''@;'; + put 'put ''O2lmKHh0LmUuYz4xNjM4M3x8eHQuZS5yPjEwNDg1NzUpe2lmKHJlLldURil0aHJvdyBuZXcgRXJyb3IoIlJhbmdlICIrTXQrIiBleGNlZWRzIGZvcm1hdCBsaW1pdCBBMTpYRkQxMDQ4NTc2Iik7eHQuZS5jPU1hdGgubWluKHh0LmUuYywxNjM4MykseHQuZS5yPU1hdGgubWluKHh0LmUuYywx''@;'; + put 'put ''MDQ4NTc1KSxNdD1mYSh4dCl9d2V8fCh3ZT17fSksWWVbIiFjb21tZW50cyJdPVtdO3ZhciBSdD1bXSxVdD1ZZVsiIXByaW50Il07aWYoZnVuY3Rpb24gdmwoSCxyZSxYLHdlLHhlKXt2YXIgRmU9ITEsWmU9e30samU9bnVsbDtpZigieGxzeCIhPT13ZS5ib29rVHlwZSYmcmUudmJhcmF3KXt2''@;'; + put 'put ''YXIgWWU9cmUuU2hlZXROYW1lc1tYXTt0cnl7cmUuV29ya2Jvb2smJihZZT1yZS5Xb3JrYm9vay5TaGVldHNbWF0uQ29kZU5hbWV8fFllKX1jYXRjaChVdCl7fUZlPSEwLFplLmNvZGVOYW1lPVJyKFllKX1IJiZIWyIhY29uZGZtdCJdJiYoWmUuZW5hYmxlRm9ybWF0Q29uZGl0aW9uc0NhbGN1''@;'; + put 'put ''bGF0aW9uPSIxIiksSCYmSFsiIXRhYmNvbG9yIl0mJihqZT0oamV8fCIiKSsnPHRhYkNvbG9yIHJnYj0iRkYnK0xvKEhbIiF0YWJjb2xvciJdLnJnYikrJyIvPicpO3ZhciBNdD0hMSx4dD17fTtpZigoKChIfHx7fSlbIiFwcmludCJdfHx7fSkucHJvcHN8fHt9KS5maXQmJihNdD0hMCx4dC5m''@;'; + put 'put ''aXRUb1BhZ2U9MSksTXQmJihqZT0oamV8fCIiKStfaSgicGFnZVNldFVwUHIiLG51bGwseHQpKSxIJiZIWyIhb3V0bGluZSJdKXt2YXIgUnQ9e3N1bW1hcnlCZWxvdzoxLHN1bW1hcnlSaWdodDoxfTtIWyIhb3V0bGluZSJdLmFib3ZlJiYoUnQuc3VtbWFyeUJlbG93PTApLEhbIiFvdXRsaW5l''@;'; + put 'put ''Il0ubGVmdCYmKFJ0LnN1bW1hcnlSaWdodD0wKSxqZT0oamV8fCIiKStfaSgib3V0bGluZVByIixudWxsLFJ0KX0hRmUmJiFqZXx8KHhlW3hlLmxlbmd0aF09X2koInNoZWV0UHIiLGplLFplKSl9KFllLFgsSCxyZSx4ZSkseGVbeGUubGVuZ3RoXT1faSgiZGltZW5zaW9uIixudWxsLHtyZWY6''@;'; + put 'put ''TXR9KSx4ZVt4ZS5sZW5ndGhdPWZ1bmN0aW9uIG14KEgscmUsWCx3ZSl7dmFyIHhlPXt3b3JrYm9va1ZpZXdJZDoiMCJ9O2lmKCgoKHdlfHx7fSkuV29ya2Jvb2t8fHt9KS5WaWV3c3x8W10pLmxlbmd0aCl7dmFyIEZlPXdlLldvcmtib29rLlZpZXdzLFplPUZlW1hdfHxGZVswXTt4ZS5yaWdo''@;'; + put 'put ''dFRvTGVmdD1aZS5SVEw/IjEiOiIwIixaZS56b29tJiYoeGUuem9vbVNjYWxlPVplLnpvb20pLG51bGwhPVplLmdyaWQmJih4ZS5zaG93R3JpZExpbmVzPVplLmdyaWQpLFplLnZpZXcmJih4ZS52aWV3PVplLnZpZXcpfW51bGwhPUhbIiFncmlkbGluZXMiXSYmKHhlLnNob3dHcmlkTGluZXM9''@;'; + put 'put ''ISFIWyIhZ3JpZGxpbmVzIl0pO3ZhciBqZT0iIixZZT17cjowLGM6MH07aWYoSFsiIXNlbCJdKXtpZighKFllPUhbIiFzZWwiXS5jZWxsKSl7aWYoIUhbIiFzZWwiXS5yYW5nZSl0aHJvdyBuZXcgRXJyb3IoIk11c3Qgc3BlY2lmeSBhIHNlbGVjdGlvbiBjZWxsIG9yIHJhbmdlIik7WWU9dnMo''@;'; + put 'put ''SFsiIXNlbCJdLnJhbmdlLnJlcGxhY2UoL1xzLiokLywiIikpLnN9InN0cmluZyI9PXR5cGVvZiBZZSYmKFllPXVsKFllKSl9dmFyIHh0PUhbIiFmcmVlemUiXT8ic3RyaW5nIj09dHlwZW9mIEhbIiFmcmVlemUiXT91bChIWyIhZnJlZXplIl0pOkhbIiFmcmVlemUiXTp7YzowLHI6MH07aWYo''@;'; + put 'put ''SFsiIWZyZWV6ZSJdKXt2YXIgUnQ9WTAoeHQpLFV0PXtzdGF0ZToiZnJvemVuIix4U3BsaXQ6eHQuYyx5U3BsaXQ6eHQucix0b3BMZWZ0Q2VsbDpSdH07SFsiIXNlbCJdJiYoVXQuYWN0aXZlUGFuZT0oWWUucj49eHQuciYmeHQucj4wPyJib3R0b20iOiJ0b3AiKSsoWWUuYz49eHQuYyYmeHQu''@;'; + put 'put ''Yz4wPyJSaWdodCI6IkxlZnQiKSksamU9X2koInBhbmUiLG51bGwsVXQpfWlmKEhbIiFzZWwiXSl7dmFyIG5uPXthY3RpdmVDZWxsOiJzdHJpbmciPT10eXBlb2YgWWU/WWU6WTAoWWUpfTtubi5zcXJlZj1IWyIhc2VsIl0ucmFuZ2U/SFsiIXNlbCJdLnJhbmdlOm5uLmFjdGl2ZUNlbGwrIjoi''@;'; + put 'put ''K25uLmFjdGl2ZUNlbGwsamUrPV9pKCJzZWxlY3Rpb24iLG51bGwsbm4pLEhbIiFmcmVlemUiXSYmKHh0LmM+MCYmKG5uLnBhbmU9InRvcFJpZ2h0IixqZSs9X2koInNlbGVjdGlvbiIsbnVsbCxubikpLHh0LnI+MCYmKG5uLnBhbmU9ImJvdHRvbUxlZnQiLGplKz1faSgic2VsZWN0aW9uIixu''@;'; + put 'put ''dWxsLG5uKSkseHQuYz4wJiZ4dC5yPjAmJihubi5wYW5lPSJib3R0b21SaWdodCIsamUrPV9pKCJzZWxlY3Rpb24iLG51bGwsbm4pKSl9cmV0dXJuIF9pKCJzaGVldFZpZXdzIixfaSgic2hlZXRWaWV3IixqZXx8bnVsbCx4ZSkse30pfShZZSwwLEgsWCkscmUuc2hlZXRGb3JtYXQpe3ZhciBu''@;'; + put 'put ''bj17ZGVmYXVsdFJvd0hlaWdodDpyZS5zaGVldEZvcm1hdC5kZWZhdWx0Um93SGVpZ2h0fHwiMTYiLGJhc2VDb2xXaWR0aDpyZS5zaGVldEZvcm1hdC5iYXNlQ29sV2lkdGh8fCIxMCJ9O251bGwhPXJlLnNoZWV0Rm9ybWF0Lm91dGxpbmVMZXZlbFJvdyYmKG5uLm91dGxpbmVMZXZlbFJvdz1y''@;'; + put 'put ''ZS5zaGVldEZvcm1hdC5vdXRsaW5lTGV2ZWxSb3cpLHhlW3hlLmxlbmd0aF09X2koInNoZWV0Rm9ybWF0UHIiLG51bGwsbm4pfWVsc2UgaWYoWWVbIiFzaGVldEZvcm1hdCJdKXt2YXIgQ249e30sRHQ9ITE7WWVbIiFzaGVldEZvcm1hdCJdLnJvdyYmKFllWyIhc2hlZXRGb3JtYXQiXS5yb3cu''@;'; + put 'put ''aHB0PyhEdD0hMCxDbi5kZWZhdWx0Um93SGVpZ2h0PVllWyIhc2hlZXRGb3JtYXQiXS5yb3cuaHB0LENuLmN1c3RvbUhlaWdodD0xKTpZZVsiIXNoZWV0Rm9ybWF0Il0ucm93LmhweD8oRHQ9ITAsQ24uZGVmYXVsdFJvd0hlaWdodD1UaChZZVsiIXNoZWV0Rm9ybWF0Il0ucm93LmhweCksQ24u''@;'; + put 'put ''Y3VzdG9tSGVpZ2h0PTEpOigwPT09WWVbIiFzaGVldEZvcm1hdCJdLnJvdy5ocHR8fDA9PT1ZZVsiIXNoZWV0Rm9ybWF0Il0ucm93LmhweHx8WWVbIiFzaGVldEZvcm1hdCJdLnJvdy5oaWRkZW4pJiYoRHQ9ITAsQ24uZGVmYXVsdFJvd0hlaWdodD1Dbi5kZWZhdWx0Um93SGVpZ2h0fHwxNixD''@;'; + put 'put ''bi5jdXN0b21IZWlnaHQ9MSxDbi56ZXJvSGVpZ2h0PTEpLFllWyIhc2hlZXRGb3JtYXQiXS5keURlc2NlbnQmJihDblsieDE0YWM6ZHlEZXNjZW50Il09WWVbIiFzaGVldEZvcm1hdCJdLmR5RGVzY2VudCkpLFllWyIhc2hlZXRGb3JtYXQiXS5jb2wmJihZZVsiIXNoZWV0Rm9ybWF0Il0uY29s''@;'; + put 'put ''LndjaHx8eWMoWWVbIiFzaGVldEZvcm1hdCJdLmNvbCksQ24uZGVmYXVsdENvbFdpZHRoPVllWyIhc2hlZXRGb3JtYXQiXS5jb2wud2NoKzUvSzJ8fDAsRHQ9ITApLG51bGw9PUNuLmRlZmF1bHRSb3dIZWlnaHQmJihDbi5kZWZhdWx0Um93SGVpZ2h0PTE2KSxudWxsPT1Dbi5kZWZhdWx0Q29s''@;'; + put 'put ''V2lkdGgmJihDbi5kZWZhdWx0Q29sV2lkdGg9MTApLENuLm91dGxpbmVMZXZlbFJvdz1Dbi5vdXRsaW5lTGV2ZWxSb3d8fDcsRHQmJih4ZVt4ZS5sZW5ndGhdPV9pKCJzaGVldEZvcm1hdFByIixudWxsLENuKSl9bnVsbCE9WWVbIiFjb2xzIl0mJlllWyIhY29scyJdLmxlbmd0aD4wJiYoeGVb''@;'; + put 'put ''eGUubGVuZ3RoXT1mdW5jdGlvbiB4XyhILHJlLFgpe2Zvcih2YXIgeGUsd2U9WyI8Y29scz4iXSxGZT0wO0ZlIT1yZS5sZW5ndGg7KytGZSlpZih4ZT1yZVtGZV0pe2lmKHhlLmF1dG8mJlM2KEgseGUsRmUpLHhlLnN8fHhlLnope3ZhciBaZT17dDoieiJ9O251bGwhPXhlLnMmJihaZS5zPXhl''@;'; + put 'put ''LnMpLG51bGwhPXhlLnomJihaZS56PXhlLnopLHhlLnN0eWxlPVkxKFguY2VsbFhmcyxYLmNlbGxTdHlsZVhmcyxaZSxYKX13ZVt3ZS5sZW5ndGhdPV9pKCJjb2wiLG51bGwsazYoRmUseGUpKX1yZXR1cm4gd2Vbd2UubGVuZ3RoXT0iPC9jb2xzPiIsd2Uuam9pbigiIil9KFllLFllWyIhY29s''@;'; + put 'put ''cyJdLHJlKSkseGVbWmU9eGUubGVuZ3RoXT0iPHNoZWV0RGF0YS8+IixZZVsiIWxpbmtzIl09W10sbnVsbCE9WWVbIiFyZWYiXSYmKGplPWZ1bmN0aW9uIHZ4KEgscmUsWCx3ZSl7dmFyIFllLHp0LHhlPVtdLEZlPVtdLFplPUZvKEhbIiFyZWYiXSksamU9IiIsTXQ9IiIseHQ9W10sUnQ9MCxV''@;'; + put 'put ''dD0wLG5uPUhbIiFyb3dzIl0sQ249QXJyYXkuaXNBcnJheShIKSxEdD17cjpNdH0sUG49LTE7Zm9yKFV0PVplLnMuYztVdDw9WmUuZS5jOysrVXQpeHRbVXRdPV9hKFV0KTtmb3IoUnQ9WmUucy5yO1J0PD1aZS5lLnI7KytSdCl7Zm9yKEZlPVtdLE10PVhhKFJ0KSxVdD1aZS5zLmM7VXQ8PVpl''@;'; + put 'put ''LmUuYzsrK1V0KXtZZT14dFtVdF0rTXQ7dmFyIFRuPUNuPyhIW1J0XXx8W10pW1V0XTpIW1llXTt2b2lkIDAhPT1UbiYmbnVsbCE9KGplPUpCKFRuLFllLEgscmUpKSYmRmUucHVzaChqZSl9KEZlLmxlbmd0aD4wfHxubiYmbm5bUnRdKSYmKER0PXtyOk10fSxubiYmbm5bUnRdJiYoKHp0PW5u''@;'; + put 'put ''W1J0XSkuaGlkZGVuJiYoRHQuaGlkZGVuPTEpLFBuPS0xLHp0LmhweD9Qbj1UaCh6dC5ocHgpOnp0LmhwdCYmKFBuPXp0LmhwdCksUG4+LTEmJihEdC5odD1QbixEdC5jdXN0b21IZWlnaHQ9MSksenQubGV2ZWwmJihEdC5vdXRsaW5lTGV2ZWw9enQubGV2ZWwpLHp0LmR5RGVzY2VudCYmKER0''@;'; + put 'put ''WyJ4MTRhYzpkeURlc2NlbnQiXT16dC5keURlc2NlbnQpLHp0LnMmJihEdC5zPVkxKHJlLmNlbGxYZnMscmUuY2VsbFN0eWxlWGZzLHt0OiJ6IixzOnp0LnN9LHJlKSxEdC5jdXN0b21Gb3JtYXQ9MSkpLHhlW3hlLmxlbmd0aF09X2koInJvdyIsRmUuam9pbigiIiksRHQpKX1pZihubilmb3Io''@;'; + put 'put ''O1J0PG5uLmxlbmd0aDsrK1J0KW5uJiZubltSdF0mJihEdD17cjpSdCsxfSwoenQ9bm5bUnRdKS5oaWRkZW4mJihEdC5oaWRkZW49MSksUG49LTEsenQuaHB4P1BuPVRoKHp0LmhweCk6enQuaHB0JiYoUG49enQuaHB0KSxQbj4tMSYmKER0Lmh0PVBuLER0LmN1c3RvbUhlaWdodD0xKSx6dC5s''@;'; + put 'put ''ZXZlbCYmKER0Lm91dGxpbmVMZXZlbD16dC5sZXZlbCkseGVbeGUubGVuZ3RoXT1faSgicm93IiwiIixEdCkpO3JldHVybiB4ZS5qb2luKCIiKX0oWWUscmUpLGplLmxlbmd0aD4wJiYoeGVbeGUubGVuZ3RoXT1qZSkpLHhlLmxlbmd0aD5aZSsxJiYoeGVbeGUubGVuZ3RoXT0iPC9zaGVldERh''@;'; + put 'put ''dGE+Iix4ZVtaZV09eGVbWmVdLnJlcGxhY2UoIi8+IiwiPiIpKSxZZVsiIXByb3RlY3QiXSYmKHhlW3hlLmxlbmd0aF09ZnVuY3Rpb24gRV8oSCl7dmFyIHJlPXtzaGVldDoxfTtyZXR1cm4gTV8uZm9yRWFjaChmdW5jdGlvbihYKXtudWxsIT1IW1hdJiZIW1hdJiYocmVbWF09IjEiKX0pLHBB''@;'; + put 'put ''LmZvckVhY2goZnVuY3Rpb24oWCl7bnVsbCE9SFtYXSYmIUhbWF0mJihyZVtYXT0iMCIpfSksSC5wYXNzd29yZD9yZS5wYXNzd29yZD1TOShILnBhc3N3b3JkKS50b1N0cmluZygxNikudG9VcHBlckNhc2UoKTpILmVuY3J5cHRpb24mJihyZS5hbGdvcml0aG1OYW1lPUguZW5jcnlwdGlvbi5h''@;'; + put 'put ''bGdvLHJlLmhhc2hWYWx1ZT1ILmVuY3J5cHRpb24uaGFzaCxyZS5zYWx0VmFsdWU9SC5lbmNyeXB0aW9uLnNhbHQscmUuc3BpbkNvdW50PUguZW5jcnlwdGlvbi5zcGluKSxfaSgic2hlZXRQcm90ZWN0aW9uIixudWxsLHJlKX0oWWVbIiFwcm90ZWN0Il0pKSxudWxsIT1ZZVsiIWF1dG9maWx0''@;'; + put 'put ''ZXIiXSYmKHhlW3hlLmxlbmd0aF09ZnVuY3Rpb24gSV8oSCxyZSxYLHdlKXt2YXIgeGU9InN0cmluZyI9PXR5cGVvZiBILnJlZj9ILnJlZjpmYShILnJlZik7WC5Xb3JrYm9va3x8KFguV29ya2Jvb2s9e1NoZWV0czpbXX0pLFguV29ya2Jvb2suTmFtZXN8fChYLldvcmtib29rLk5hbWVzPVtd''@;'; + put 'put ''KTt2YXIgRmU9WC5Xb3JrYm9vay5OYW1lcyxaZT12cyh4ZSk7WmUucy5yPT1aZS5lLnImJihaZS5lLnI9dnMocmVbIiFyZWYiXSkuZS5yLHhlPWZhKFplKSk7Zm9yKHZhciBqZT0wO2plPEZlLmxlbmd0aDsrK2plKXt2YXIgWWU9RmVbamVdO2lmKCJfeGxubS5fRmlsdGVyRGF0YWJhc2UiPT1Z''@;'; + put 'put ''ZS5OYW1lJiZZZS5TaGVldD09d2Upe1llLlJlZj0iJyIrWC5TaGVldE5hbWVzW3dlXSsiJyEiK3hlO2JyZWFrfX1yZXR1cm4gamU9PUZlLmxlbmd0aCYmRmUucHVzaCh7TmFtZToiX3hsbm0uX0ZpbHRlckRhdGFiYXNlIixTaGVldDp3ZSxSZWY6IiciK1guU2hlZXROYW1lc1t3ZV0rIichIit4''@;'; + put 'put ''ZX0pLF9pKCJhdXRvRmlsdGVyIixudWxsLHtyZWY6eGV9KX0oWWVbIiFhdXRvZmlsdGVyIl0sWWUsWCxIKSksbnVsbCE9WWVbIiFtZXJnZXMiXSYmWWVbIiFtZXJnZXMiXS5sZW5ndGg+MCYmKHhlW3hlLmxlbmd0aF09ZnVuY3Rpb24gd18oSCl7aWYoMD09PUgubGVuZ3RoKXJldHVybiIiO2Zv''@;'; + put 'put ''cih2YXIgcmU9JzxtZXJnZUNlbGxzIGNvdW50PSInK0gubGVuZ3RoKyciPicsWD0wO1ghPUgubGVuZ3RoOysrWClyZSs9JzxtZXJnZUNlbGwgcmVmPSInK2ZhKEhbWF0pKyciLz4nO3JldHVybiByZSsiPC9tZXJnZUNlbGxzPiJ9KFllWyIhbWVyZ2VzIl0pKSxZZVsiIWNvbmRmbXQiXSYmKHhl''@;'; + put 'put ''W3hlLmxlbmd0aF09ZnVuY3Rpb24gcHgoSCxyZSl7cmV0dXJuIEgubWFwKGZ1bmN0aW9uKFgsd2Upe3JldHVybiBmdW5jdGlvbiBRQihILHJlLFgpe3ZhciB3ZT1ILnM/ejQoWC5EWEYsSC5zKTotMSx4ZT0ic3RyaW5nIj09dHlwZW9mIEgucmVmP0gucmVmOmZhKEgucmVmKSxaZT1Gbyh4ZS5y''@;'; + put 'put ''ZXBsYWNlKC9ccy4qJC8sIiIpKS5zO1plLnI8MCYmKFplLnI9MCksWmUuYzwwJiYoWmUuYz0wKTt2YXIgamU9IiIsWWU9e3ByaW9yaXR5OnJlKzF9O3N3aXRjaCh3ZT4tMSYmKFllLmR4ZklkPXdlKSxILnQpe2Nhc2UidW5pcXVlIjpZZS50eXBlPSJ1bmlxdWVWYWx1ZXMiO2JyZWFrO2Nhc2Ui''@;'; + put 'put ''ZHVwIjpZZS50eXBlPSJkdXBsaWNhdGVWYWx1ZXMiO2JyZWFrO2Nhc2UiYmxhbmsiOlllLnR5cGU9KEgudj8iYyI6Im5vdEMiKSsib250YWluc0JsYW5rcyIsamU9Ijxmb3JtdWxhPkxFTihUUklNKCIrWTAoWmUpKyIpKSIrKEgudj8iPSI6IiZndDsiKSsiMDwvZm9ybXVsYT4iO2JyZWFrO2Nh''@;'; + put 'put ''c2UiZXJyb3IiOlllLnR5cGU9KEgudj8iYyI6Im5vdEMiKSsib250YWluc0Vycm9ycyI7YnJlYWs7Y2FzZSJmb3JtdWxhIjpZZS50eXBlPSJleHByZXNzaW9uIixqZT1faSgiZm9ybXVsYSIsUnIoSC5mKSx7fSk7YnJlYWs7Y2FzZSJkYXRlIjpZZS50eXBlPSJ0aW1lUGVyaW9kIixZZS50aW1l''@;'; + put 'put ''UGVyaW9kPXlBW0gub3BdO2JyZWFrO2Nhc2UidGV4dCI6c3dpdGNoKFllLnR5cGU9WWUub3BlcmF0b3I9QUFbSC5vcF0sWWUudGV4dD1ILnYsSC5vcCl7Y2FzZSJJTiI6amU9Jzxmb3JtdWxhPk5PVChJU0VSUk9SKFNFQVJDSCgiJytScihILnYpKyciLCcrWTAoWmUpKyIpKSk8L2Zvcm11bGE+''@;'; + put 'put ''IjticmVhaztjYXNlIk9UIjpqZT0nPGZvcm11bGE+SVNFUlJPUihTRUFSQ0goIicrUnIoSC52KSsnIiwnK1kwKFplKSsiKSk8L2Zvcm11bGE+IjticmVhaztjYXNlIlNUIjpqZT0iPGZvcm11bGE+TEVGVCgiK1kwKFplKSsnLExFTigiJytScihILnYpKyciKSk9IicrUnIoSC52KSsnIjwvZm9y''@;'; + put 'put ''bXVsYT4nO2JyZWFrO2Nhc2UiTkQiOmplPSI8Zm9ybXVsYT5SSUdIVCgiK1kwKFplKSsnLExFTigiJytScihILnYpKyciKSk9IicrUnIoSC52KSsnIjwvZm9ybXVsYT4nfWJyZWFrO2Nhc2UidmFsIjpZZS50eXBlPSJjZWxsSXMiLFllLm9wZXJhdG9yPUc0W0gub3BdLGplPW51bGwhPUgubWlu''@;'; + put 'put ''P19pKCJmb3JtdWxhIixScihTdHJpbmcoSC5taW4pKSx7fSkrX2koImZvcm11bGEiLFJyKFN0cmluZyhILm1heCkpLHt9KTpfaSgiZm9ybXVsYSIsUnIobnVsbCE9SC52P1N0cmluZygic3RyaW5nIj09dHlwZW9mIEgudj8nIicrSC52LnJlcGxhY2UoLyIvZywnIiInKSsnIic6SC52KTpILmYp''@;'; + put 'put ''LHt9KTticmVhaztjYXNlImF2ZyI6c3dpdGNoKFllLnR5cGU9ImFib3ZlQXZlcmFnZSIsWWUuYWJvdmVBdmVyYWdlPSJMIj09SC5vcC5jaGFyQXQoMCk/IjAiOiIxIixILm9wLmNoYXJBdCgxKSl7Y2FzZSJUIjpZZS5lcXVhbEF2ZXJhZ2U9IjAiO2JyZWFrO2Nhc2UiRSI6WWUuZXF1YWxBdmVy''@;'; + put 'put ''YWdlPSIxIjticmVhaztkZWZhdWx0OlllLnN0ZERldj1ILm9wLmNoYXJBdCgxKX1icmVhaztjYXNlInJhbmsiOlllLnR5cGU9InRvcDEwIixZZS5ib3R0b209IkIiPT1ILm9wLmNoYXJBdCgwKT8iMSI6IjAiLFllLnBlcmNlbnQ9IlAiPT1ILm9wLmNoYXJBdCgxKT8iMSI6IjAiLFllLnJhbms9''@;'; + put 'put ''SC52O2JyZWFrO2Nhc2UiaWNvbiI6WWUudHlwZT0iaWNvblNldCI7dmFyIE10PXtpY29uU2V0OkgudixwZXJjZW50OkgucGN0PyJ0cnVlIjoiZmFsc2UifTtILnJldiYmKE10LnJldmVyc2U9InRydWUiKSxILmhpZGRlbiYmKE10LnNob3dWYWx1ZT0iZmFsc2UiKSxqZT1faSgiaWNvblNldCIs''@;'; + put 'put ''SC50aHJlc2gubWFwKFBkKS5qb2luKCIiKSxNdCk7YnJlYWs7Y2FzZSJzY2FsZSI6WWUudHlwZT0iY29sb3JTY2FsZSIsamUrPVBkKEguY21pbiksSC5jbWlkJiYoamUrPVBkKEguY21pZCkpLGplKz1QZChILmNtYXgpLGplKz1YcyhILmNtaW4uY29sb3IpLEguY21pZCYmKGplKz1YcyhILmNt''@;'; + put 'put ''aWQuY29sb3IpKSxqZT1faSgiY29sb3JTY2FsZSIsamUrPVhzKEguY21heC5jb2xvcikse30pO2JyZWFrO2Nhc2UiYmFyIjpZZS50eXBlPSJkYXRhQmFyIixqZSs9UGQoSC5jbWluKSxqZSs9UGQoSC5jbWF4KSxqZT1faSgiZGF0YUJhciIsamUrPVhzKEguY29sb3IpLHt9KTticmVhaztkZWZh''@;'; + put 'put ''dWx0OnRocm93IGNvbnNvbGUubG9nKEgpLCJDRiBtaXNzaW5nIHR5cGUgIitILnR9cmV0dXJuJzxjb25kaXRpb25hbEZvcm1hdHRpbmcgc3FyZWY9IicreGUrJyI+JytfaSgiY2ZSdWxlIiwiIj09amU/bnVsbDpqZSxZZSkrIjwvY29uZGl0aW9uYWxGb3JtYXR0aW5nPiJ9KFgsd2UscmUpfSku''@;'; + put 'put ''am9pbigiIil9KFllWyIhY29uZGZtdCJdLHJlKSksWWVbIiF2YWxpZGF0aW9ucyJdJiYoeGVbeGUubGVuZ3RoXT1mdW5jdGlvbiBEXyhIKXtpZighSHx8MD09SC5sZW5ndGgpcmV0dXJuIiI7Zm9yKHZhciByZT1bXSxYPTAsd2U9MDt3ZTxILmxlbmd0aDsrK3dlKXt2YXIgeGU9SFt3ZV0sRmU9''@;'; + put 'put ''UmhbeGUudF07aWYoeGUucmVmJiYoInN0cmluZyIhPXR5cGVvZiB4ZS5yZWZ8fC0xIT14ZS5yZWYuaW5kZXhPZigiICIpfHwoeGUucmVmPUZvKHhlLnJlZikseGUucmVmLnMmJiEoeGUucmVmLnMuYzwwKSkpKXsrK1g7dmFyIFplPXt0eXBlOkZlLGFsbG93Qmxhbms6KygwIT14ZS5ibGFuayks''@;'; + put 'put ''c2hvd0lucHV0TWVzc2FnZTorKDAhPXhlLmlucHV0KSxzaG93RXJyb3JNZXNzYWdlOisoMCE9eGUuZXJyb3IpLHNxcmVmOiJzdHJpbmciPT10eXBlb2YgeGUucmVmP3hlLnJlZjpmYSh4ZS5yZWYpfTtpZih4ZS5pbnB1dCYmKHhlLmlucHV0LnRpdGxlJiYoWmUucHJvbXB0VGl0bGU9bGkoeGUu''@;'; + put 'put ''aW5wdXQudGl0bGUpKSx4ZS5pbnB1dC5tZXNzYWdlJiYoWmUucHJvbXB0PWxpKHhlLmlucHV0Lm1lc3NhZ2UpKSkseGUuZXJyb3ImJih4ZS5lcnJvci50aXRsZSYmKFplLmVycm9yVGl0bGU9bGkoeGUuZXJyb3IudGl0bGUpKSx4ZS5lcnJvci5tZXNzYWdlJiYoWmUuZXJyb3I9bGkoeGUuZXJy''@;'; + put 'put ''b3IubWVzc2FnZSkpLHhlLmVycm9yLnN0eWxlJiYoWmUuZXJyb3JTdHlsZT14ZS5lcnJvci5zdHlsZSkpLCFGZSl0aHJvdyBuZXcgRXJyb3IoIkJhZCB2YWxpZGF0aW9uOiB1bnJlY29nbml6ZWQgdHlwZSAiK3hlLnQpO3ZhciBqZT0iIjtzd2l0Y2goeGUudCl7Y2FzZSJBbnkiOmJyZWFrO2Nh''@;'; + put 'put ''c2UiTGlzdCI6Y2FzZSJDdXN0b20iOmlmKHhlLmwpe2lmKHhlLmwuam9pbigiLCIpLmxlbmd0aD4yNTApdGhyb3cgbmV3IEVycm9yKCJEViBsZW5ndGggPiAyNTAgdHJpZ2dlcnMgY29ycnVwdGlvbiBlcnJvcnMgaW4gRXhjZWwuICBVc2UgYSBsb29rdXAgdGFibGUiKTtqZT0nPGZvcm11bGEx''@;'; + put 'put ''PiInK1JyKHhlLmwuam9pbigiLCIpKSsnIjwvZm9ybXVsYTE+J31lbHNlIGplPSI8Zm9ybXVsYTE+IitScih4ZS5mKSsiPC9mb3JtdWxhMT4iO2JyZWFrO2Nhc2UiRGF0ZSI6Y2FzZSJUaW1lIjpjYXNlIkRlY2ltYWwiOmNhc2UiTGVuZ3RoIjpjYXNlIldob2xlIjppZighRzRbeGUub3BdKXRo''@;'; + put 'put ''cm93IG5ldyBFcnJvcigiQmFkIERhdGEgVmFsaWRhdGlvbiB0eXBlICIreGUub3ArIiBmb3IgIit4ZS50KTtpZihaZS5vcGVyYXRvcj1HNFt4ZS5vcF0sbnVsbCE9eGUudilqZT0iPGZvcm11bGExPiIrUnIoU3RyaW5nKHhlLnYgaW5zdGFuY2VvZiBEYXRlP2Z0KHhlLnYpOnhlLnYpKSsiPC9m''@;'; + put 'put ''b3JtdWxhMT4iO2Vsc2V7aWYobnVsbD09eGUubWlufHxudWxsPT14ZS5tYXgpdGhyb3cgbmV3IEVycm9yKCJCYWQgRGF0YSBWYWxpZGF0aW9uOiBgdmAgb3IgYG1pbmArYG1heGAgcmVxdWlyZWQgZm9yIFR5cGUgIit4ZS50KTtqZT0iPGZvcm11bGExPiIrUnIoU3RyaW5nKHhlLm1pbiBpbnN0''@;'; + put 'put ''YW5jZW9mIERhdGU/ZnQoeGUubWluKTp4ZS5taW4pKSsiPC9mb3JtdWxhMT48Zm9ybXVsYTI+IitScihTdHJpbmcoeGUubWF4IGluc3RhbmNlb2YgRGF0ZT9mdCh4ZS5tYXgpOnhlLm1heCkpKyI8L2Zvcm11bGEyPiJ9fXJlLnB1c2goX2koImRhdGFWYWxpZGF0aW9uIixqZXx8bnVsbCxaZSkp''@;'; + put 'put ''fX1yZXR1cm4gWD4wPyc8ZGF0YVZhbGlkYXRpb25zIGNvdW50PSInK1grJyI+JytyZS5qb2luKCIiKSsiPC9kYXRhVmFsaWRhdGlvbnM+IjoiIn0oWWVbIiF2YWxpZGF0aW9ucyJdKSk7dmFyIFBuLHp0PS0xLFRuPS0xO2lmKFllWyIhbGlua3MiXS5sZW5ndGg+MCYmKHhlW3hlLmxlbmd0aF09''@;'; + put 'put ''IjxoeXBlcmxpbmtzPiIsWWVbIiFsaW5rcyJdLmZvckVhY2goZnVuY3Rpb24oeXIpeyF5clsxXS5UYXJnZXR8fChQbj17cmVmOnlyWzBdfSwiIyIhPXlyWzFdLlRhcmdldC5jaGFyQXQoMCkmJihUbj1YdCh3ZSwtMSxScih5clsxXS5UYXJnZXQpLnJlcGxhY2UoLyMuKiQvLCIiKSxwdC5ITElO''@;'; + put 'put ''SyksUG5bInI6aWQiXT0icklkIitUbiksKHp0PXlyWzFdLlRhcmdldC5pbmRleE9mKCIjIikpPi0xJiYoUG4ubG9jYXRpb249UnIoeXJbMV0uVGFyZ2V0LnNsaWNlKHp0KzEpKSkseXJbMV0uVG9vbHRpcCYmKFBuLnRvb2x0aXA9UnIoeXJbMV0uVG9vbHRpcCkpLHhlW3hlLmxlbmd0aF09X2ko''@;'; + put 'put ''Imh5cGVybGluayIsbnVsbCxQbikpfSkseGVbeGUubGVuZ3RoXT0iPC9oeXBlcmxpbmtzPiIpLGRlbGV0ZSBZZVsiIWxpbmtzIl0sVXQpe3ZhciBPbj1mdW5jdGlvbiBrXyhIKXtpZihILnByb3BzKXt2YXIgcmU9e30sWD1ILnByb3BzO3JldHVybiBYLmdyaWRsaW5lcyYmKHJlLmdyaWRMaW5l''@;'; + put 'put ''cz1yZS5ncmlkTGluZXNTZXQ9MSksWC5oZWFkaW5ncyYmKHJlLmhlYWRpbmdzPTEpLFguY2VudGVyWCYmKHJlLmhvcml6b250YWxDZW50ZXJlZD0xKSxYLmNlbnRlclkmJihyZS52ZXJ0aWNhbENlbnRlcmVkPTEpLF9pKCJwcmludE9wdGlvbnMiLG51bGwscmUpfXJldHVybiIifShVdCk7T24u''@;'; + put 'put ''bGVuZ3RoJiYoeGVbeGUubGVuZ3RoXT1Pbil9aWYoKG51bGwhPVllWyIhbWFyZ2lucyJdfHxVdCYmVXQubWFyZ2lucykmJih4ZVt4ZS5sZW5ndGhdPWZ1bmN0aW9uIHlHKEgpe3JldHVybiBCZChIKSxfaSgicGFnZU1hcmdpbnMiLG51bGwsSCl9KFllWyIhbWFyZ2lucyJdfHxVdC5tYXJnaW5z''@;'; + put 'put ''KSksVXQpe3ZhciBZbj1mdW5jdGlvbiB1eChIKXtpZihILnByb3BzKXt2YXIgcmU9e30sWD1ILnByb3BzO2lmKFgub3JpZW50YXRpb24mJihyZS5vcmllbnRhdGlvbj1YLm9yaWVudGF0aW9uKSxYLnNjYWxlJiYocmUuc2NhbGU9WC5zY2FsZSksWC5maXQmJihudWxsIT1YLmZpdC5oZWlnaHQm''@;'; + put 'put ''JihyZS5maXRUb0hlaWdodD1YLmZpdC5oZWlnaHQpLG51bGwhPVguZml0LndpZHRoJiYocmUuZml0VG9XaWR0aD1YLmZpdC53aWR0aCkpLFguZHBpJiYocmUuaG9yaXpvbnRhbERwaT1yZS52ZXJ0aWNhbERwaT1YLmRwaSksbnVsbCE9WC5maXJzdCYmKHJlLmZpcnN0UGFnZU51bWJlcj1YLmZp''@;'; + put 'put ''cnN0LHJlLnVzZUZpcnN0UGFnZU51bWJlcj0xKSxYLmJ3JiYocmUuYmxhY2tBbmRXaGl0ZT0xKSxYLmRyYWZ0JiYocmUuZHJhZnQ9MSksWC5jb21tZW50cyYmKHJlLmNlbGxDb21tZW50cz1fX1tYLmNvbW1lbnRzXXx8Im5vbmUiKSxYLmVycm9ycyYmKHJlLmVycm9ycz1fMltYLmVycm9yc118''@;'; + put 'put ''fCJub25lIiksWC5wYXBlcilzd2l0Y2godHlwZW9mIFgucGFwZXIpe2Nhc2UibnVtYmVyIjpyZS5wYXBlclNpemU9WC5wYXBlcjticmVhaztjYXNlInN0cmluZyI6UGJbWC5wYXBlcl0/cmUucGFwZXJTaXplPVBiW1gucGFwZXJdOitYLnBhcGVyJiYocmUucGFwZXJTaXplPStYLnBhcGVyKTti''@;'; + put 'put ''cmVhaztjYXNlIm9iamVjdCI6aWYoIVgucGFwZXIuaGVpZ2h0fHwhWC5wYXBlci53aWR0aCl0aHJvdyJDdXN0b20gUGFwZXIgU2l6ZSBtdXN0IGluY2x1ZGUgd2lkdGggYW5kIGhlaWdodCEiO3JlLnBhcGVySGVpZ2h0PVgucGFwZXIuaGVpZ2h0LHJlLnBhcGVyV2lkdGg9WC5wYXBlci53aWR0''@;'; + put 'put ''aH1yZXR1cm5bMSwhMCwidHJ1ZSIsIm92ZXIiXS5pbmRleE9mKFgub3JkZXIpPi0xJiYocmUucGFnZU9yZGVyPSJvdmVyVGhlbkRvd24iKSxfaSgicGFnZVNldHVwIixudWxsLHJlKX1yZXR1cm4iIn0oVXQpO1luLmxlbmd0aCYmKHhlW3hlLmxlbmd0aF09WW4pLFluPWZ1bmN0aW9uIG1BKEgp''@;'; + put 'put ''e3ZhciByZT1bXSxYPSIiLHdlPSIiLHhlPSIiLEZlPSIiLFplPSIiLGplPSIiLFllPSIiLE10PUkzKEguaGVhZGVyKTtNdC5sZW5ndGgmJih3ZT1NdFswXSxqZT1NdFsxXSxGZT1NdFsyXSk7dmFyIHh0PUkzKEguZm9vdGVyKTtyZXR1cm4geHQubGVuZ3RoJiYoeGU9eHRbMF0sWWU9eHRbMV0s''@;'; + put 'put ''WmU9eHRbMl0pLHdlJiZyZS5wdXNoKCI8b2RkSGVhZGVyPiIrUnIod2UpKyI8L29kZEhlYWRlcj4iKSx4ZSYmcmUucHVzaCgiPG9kZEZvb3Rlcj4iK1JyKHhlKSsiPC9vZGRGb290ZXI+IiksKFplIT14ZXx8RmUhPXdlKSYmKFgrPScgZGlmZmVyZW50T2RkRXZlbj0iMSInLHJlLnB1c2goIjxl''@;'; + put 'put ''dmVuSGVhZGVyPiIrUnIoRmUpKyI8L2V2ZW5IZWFkZXI+IikscmUucHVzaCgiPGV2ZW5Gb290ZXI+IitScihaZSkrIjwvZXZlbkZvb3Rlcj4iKSksKFllIT14ZXx8amUhPXdlKSYmKFgrPScgZGlmZmVyZW50Rmlyc3Q9IjEiJyxyZS5wdXNoKCI8Zmlyc3RIZWFkZXI+IitScihqZSkrIjwvZmly''@;'; + put 'put ''c3RIZWFkZXI+IikscmUucHVzaCgiPGZpcnN0Rm9vdGVyPiIrUnIoWWUpKyI8L2ZpcnN0Rm9vdGVyPiIpKSxyZS5sZW5ndGg/IjxoZWFkZXJGb290ZXIiK1grIj4iK3JlLmpvaW4oIiIpKyI8L2hlYWRlckZvb3Rlcj4iOiIifShVdCksWW4ubGVuZ3RoJiYoeGVbeGUubGVuZ3RoXT1Zbil9aWYo''@;'; + put 'put ''KG51bGwhPVllWyIhcm93QnJlYWtzIl18fFV0JiZVdC5yb3dCcmVha3MpJiYoeGVbeGUubGVuZ3RoXT1mdW5jdGlvbiBSbShIKXtpZigwPT1ILmxlbmd0aClyZXR1cm4iIjtmb3IodmFyIHJlPVsnPHJvd0JyZWFrcyBjb3VudD0iJytILmxlbmd0aCsnIiBtYW51YWxCcmVha0NvdW50PSInK0gu''@;'; + put 'put ''bGVuZ3RoKyciPiddLFg9MDtYPEgubGVuZ3RoOysrWClyZS5wdXNoKCc8YnJrIGlkPSInK0hbWF0uUisnIiBtYW49IjEiLz4nKTtyZXR1cm4gcmUuam9pbigiIikrIjwvcm93QnJlYWtzPiJ9KFllWyIhcm93QnJlYWtzIl18fFV0LnJvd0JyZWFrcykpLChudWxsIT1ZZVsiIWNvbEJyZWFrcyJd''@;'; + put 'put ''fHxVdCYmVXQuY29sQnJlYWtzKSYmKHhlW3hlLmxlbmd0aF09ZnVuY3Rpb24gQm0oSCl7aWYoMD09SC5sZW5ndGgpcmV0dXJuIiI7Zm9yKHZhciByZT1bJzxjb2xCcmVha3MgY291bnQ9IicrSC5sZW5ndGgrJyIgbWFudWFsQnJlYWtDb3VudD0iJytILmxlbmd0aCsnIj4nXSxYPTA7WDxILmxl''@;'; + put 'put ''bmd0aDsrK1gpcmUucHVzaCgnPGJyayBpZD0iJytIW1hdLkMrJyIgbWFuPSIxIi8+Jyk7cmV0dXJuIHJlLmpvaW4oIiIpKyI8L2NvbEJyZWFrcz4ifShZZVsiIWNvbEJyZWFrcyJdfHxVdC5jb2xCcmVha3MpKSwoIXJlfHxyZS5pZ25vcmVFQ3x8bnVsbD09cmUuaWdub3JlRUMpJiYoeGVbeGUu''@;'; + put 'put ''bGVuZ3RoXT1zYSgiaWdub3JlZEVycm9ycyIsX2koImlnbm9yZWRFcnJvciIsbnVsbCx7bnVtYmVyU3RvcmVkQXNUZXh0OjEsc3FyZWY6TXR9KSkpLFllWyIhY2hhcnRzIl0mJlJ0LnB1c2guYXBwbHkoUnQsWWVbIiFjaGFydHMiXSksWWVbIiFpbWFnZXMiXSYmUnQucHVzaC5hcHBseShSdCxZ''@;'; + put 'put ''ZVsiIWltYWdlcyJdKSxZZVsiIXNoYXBlcyJdJiZSdC5wdXNoLmFwcGx5KFJ0LFllWyIhc2hhcGVzIl0pLFJ0Lmxlbmd0aD4wJiYoVG49WHQod2UsLTEsIi4uL2RyYXdpbmdzL2RyYXdpbmciKyhIKzEpKyIueG1sIixwdC5EUkFXKSx4ZVt4ZS5sZW5ndGhdPV9pKCJkcmF3aW5nIixudWxsLHsi''@;'; + put 'put ''cjppZCI6InJJZCIrVG59KSxZZVsiIWRyYXdpbmciXT1SdCksKFllWyIhY29tbWVudHMiXS5sZW5ndGg+MHx8KFllWyIhY29udHJvbHMiXXx8W10pLmxlbmd0aD4wKSYmKFRuPVh0KHdlLC0xLCIuLi9kcmF3aW5ncy92bWxEcmF3aW5nIisoSCsxKSsiLnZtbCIscHQuVk1MKSx4ZVt4ZS5sZW5n''@;'; + put 'put ''dGhdPV9pKCJsZWdhY3lEcmF3aW5nIixudWxsLHsicjppZCI6InJJZCIrVG59KSxZZVsiIWxlZ2FjeSJdPVRuKSxZZVsiIXByaW50Il0mJlllWyIhcHJpbnQiXS5pbWFnZXMpe3ZhciBNcj1ZZVsiIXByaW50Il0uaW1hZ2VzLGFpPTA7WyJoZWFkZXIiLCJmb290ZXIiXS5mb3JFYWNoKGZ1bmN0''@;'; + put 'put ''aW9uKHlyKXshTXJbeXJdfHxbIm9kZCIsImV2ZW4iLCJmaXJzdCJdLmZvckVhY2goZnVuY3Rpb24oYXIpeyFNclt5cl1bYXJdfHxbImxlZnQiLCJyaWdodCIsImNlbnRlciJdLmZvckVhY2goZnVuY3Rpb24oR3Ipe2lmKEFycmF5LmlzQXJyYXkoTXJbeXJdW2FyXVtHcl0pKWZvcih2YXIgenI9''@;'; + put 'put ''MDt6cjxNclt5cl1bYXJdW0dyXS5sZW5ndGg7Kyt6cilNclt5cl1bYXJdW0dyXVt6cl0mJihNclt5cl1bYXJdW0dyXVt6cl0uX2NudD1haSsrKX0pfSl9KSxhaT4wJiYoVG49WHQod2UsLTEsIi4uL2RyYXdpbmdzL3ZtbERyYXdpbmciKyhIKzEpKyJIRi52bWwiLHB0LlZNTCkseGVbeGUubGVu''@;'; + put 'put ''Z3RoXT1faSgibGVnYWN5RHJhd2luZ0hGIixudWxsLHsicjppZCI6InJJZCIrVG59KSxZZVsiIWxlZ2FjeUhGIl09VG4pfXJldHVybihZZVsiIXRhYmxlcyJdfHxbXSkubGVuZ3RoPjAmJih4ZVt4ZS5sZW5ndGhdPSc8dGFibGVQYXJ0cyBjb3VudD0iJytZZVsiIXRhYmxlcyJdLmxlbmd0aCsn''@;'; + put 'put ''Ij4nLFllWyIhdGFibGVzIl0uZm9yRWFjaChmdW5jdGlvbih5cixhcil7VG49WHQod2UsLTEsIi4uL3RhYmxlcy90YWJsZSIrKEgrMSkrIl8iK2FyKyIueG1sIixwdC5UQUJMRSkseGVbeGUubGVuZ3RoXT0nPHRhYmxlUGFydCByOmlkPSJySWQnK1RuKyciLz4nfSkseGVbeGUubGVuZ3RoXT0i''@;'; + put 'put ''PC90YWJsZVBhcnRzPiIpLHhlLmxlbmd0aD4xJiYoeGVbeGUubGVuZ3RoXT0iPC93b3Jrc2hlZXQ+Iix4ZVsxXT14ZVsxXS5yZXBsYWNlKCIvPiIsIj4iKSkseGUuam9pbigiIil9ZnVuY3Rpb24gZVAoSCxyZSxYLHdlKXt2YXIgeGU9ZnVuY3Rpb24gcUIoSCxyZSxYKXt2YXIgd2U9UmkoMTQ1''@;'; + put 'put ''KSx4ZT0oWFsiIXJvd3MiXXx8W10pW0hdfHx7fTt3ZS53cml0ZV9zaGlmdCg0LEgpLHdlLndyaXRlX3NoaWZ0KDQsMCk7dmFyIEZlPTMyMDt4ZS5ocHg/RmU9MjAqVGgoeGUuaHB4KTp4ZS5ocHQmJihGZT0yMCp4ZS5ocHQpLHdlLndyaXRlX3NoaWZ0KDIsRmUpLHdlLndyaXRlX3NoaWZ0KDEs''@;'; + put 'put ''MCk7dmFyIFplPTA7eGUubGV2ZWwmJihaZXw9eGUubGV2ZWwpLHhlLmhpZGRlbiYmKFplfD0xNiksKHhlLmhweHx8eGUuaHB0KSYmKFplfD0zMiksd2Uud3JpdGVfc2hpZnQoMSxaZSksd2Uud3JpdGVfc2hpZnQoMSwwKTt2YXIgamU9MCxZZT13ZS5sO3dlLmwrPTQ7Zm9yKHZhciBNdD17cjpI''@;'; + put 'put ''LGM6MH0seHQ9MDt4dDwxNjsrK3h0KWlmKCEocmUucy5jPnh0KzE8PDEwfHxyZS5lLmM8eHQ8PDEwKSl7Zm9yKHZhciBSdD0tMSxVdD0tMSxubj14dDw8MTA7bm48eHQrMTw8MTA7KytubilNdC5jPW5uLChBcnJheS5pc0FycmF5KFgpPyhYW010LnJdfHxbXSlbTXQuY106WFtZMChNdCldKSYm''@;'; + put 'put ''KFJ0PDAmJihSdD1ubiksVXQ9bm4pO1J0PDB8fCgrK2plLHdlLndyaXRlX3NoaWZ0KDQsUnQpLHdlLndyaXRlX3NoaWZ0KDQsVXQpKX12YXIgRHQ9d2UubDtyZXR1cm4gd2UubD1ZZSx3ZS53cml0ZV9zaGlmdCg0LGplKSx3ZS5sPUR0LHdlLmxlbmd0aD53ZS5sP3dlLnNsaWNlKDAsd2UubCk6''@;'; + put 'put ''d2V9KHdlLFgscmUpOyh4ZS5sZW5ndGg+MTd8fChyZVsiIXJvd3MiXXx8W10pW3dlXSkmJkMwKEgsIkJydFJvd0hkciIseGUpfXZhciBXND13aCxFNj1HcDtmdW5jdGlvbiBVNChIKXtyZXR1cm5bTTQoSCksSTIoSCksIm4iXX12YXIgX3g9d2gseWE9R3AsYmk9WyJsZWZ0IiwicmlnaHQiLCJ0''@;'; + put 'put ''b3AiLCJib3R0b20iLCJoZWFkZXIiLCJmb290ZXIiXSxqbT1bIkFueSIsIldob2xlIiwiRGVjaW1hbCIsIkxpc3QiLCJEYXRlIiwiVGltZSIsIkxlbmd0aCIsIkN1c3RvbSJdLF9BPVsiSU4iLCJPVCIsIkVRIiwiTkUiLCJHVCIsIkxUIiwiR0UiLCJMRSJdO2Z1bmN0aW9uIE5pKEgpe3ZhciBy''@;'; + put 'put ''ZT1SaSg0KSxYPVtyZV0sd2U9am0uaW5kZXhPZihILnQpO2lmKHdlPDApdGhyb3cgbmV3IEVycm9yKCJCYWQgdmFsaWRhdGlvbjogdW5yZWNvZ25pemVkIHR5cGUgIitILnQpO3ZhciBGZT1fQS5pbmRleE9mKEgub3ApO3N3aXRjaCh3ZSl7Y2FzZSAwOmNhc2UgMzpjYXNlIDc6RmU9MDticmVh''@;'; + put 'put ''aztkZWZhdWx0OmlmKC0xPT1GZSl0aHJvdyBuZXcgRXJyb3IoIkJhZCBEYXRhIFZhbGlkYXRpb24gdHlwZSAiK0gub3ArIiBmb3IgIitILnQpfXJlLndyaXRlX3NoaWZ0KDEsMHx3ZSkscmUud3JpdGVfc2hpZnQoMSwxKSxyZS53cml0ZV9zaGlmdCgxLDEyfEZlPDw0KSxyZS53cml0ZV9zaGlm''@;'; + put 'put ''dCgxLDApLFgucHVzaChmdW5jdGlvbiB1OShIKXt2YXIgcmU9SC5zcGxpdCgvXHMqLFxzKi8pLFg9UmkoNCk7WC53cml0ZV9zaGlmdCg0LHJlLmxlbmd0aCk7dmFyIHdlPVtYXTtyZXR1cm4gcmUuZm9yRWFjaChmdW5jdGlvbih4ZSl7d2UucHVzaChHcChGbyh4ZSkpKX0pLFYod2UpfSgic3Ry''@;'; + put 'put ''aW5nIj09dHlwZW9mIEgucmVmP0gucmVmOmZhKEgucmVmKSkpO3ZhciBaZT1SaSgxNik7WmUud3JpdGVfc2hpZnQoNCw0Mjk0OTY3Mjk1KSxaZS53cml0ZV9zaGlmdCg0LDQyOTQ5NjcyOTUpLFplLndyaXRlX3NoaWZ0KDQsNDI5NDk2NzI5NSksWmUud3JpdGVfc2hpZnQoNCw0Mjk0OTY3Mjk1''@;'; + put 'put ''KSxYLnB1c2goWmUpO3ZhciBqZT1SaSg4KTtqZS53cml0ZV9zaGlmdCg0LDApLGplLndyaXRlX3NoaWZ0KDQsMCk7dmFyIFllPTE7c3dpdGNoKEgudCl7Y2FzZSJBbnkiOlgucHVzaChqZSksWC5wdXNoKGplKTticmVhaztjYXNlIkRlY2ltYWwiOmNhc2UiTGVuZ3RoIjpjYXNlIldob2xlIjpp''@;'; + put 'put ''ZihudWxsIT1ILnZ8fG51bGwhPUguZilYLnB1c2goIm51bWJlciI9PXR5cGVvZiBILnY/bngoSC52KTpUbShudWxsPT1ILnY/SC5mOkgudikpO2Vsc2V7aWYobnVsbD09SC5taW58fG51bGw9PUgubWF4KXRocm93IlVuc3VwcG9ydGVkIERhdGEgVmFsaWRhdGlvbjogYHZgIG9yIGBtaW5gK2Bt''@;'; + put 'put ''YXhgIHJlcXVpcmVkIGZvciBUeXBlICIrSC50O1gucHVzaCgibnVtYmVyIj09dHlwZW9mIEgubWluP254KEgubWluKTpUbShILm1pbikpLFgucHVzaCgibnVtYmVyIj09dHlwZW9mIEgubWF4P254KEgubWF4KTpUbShILm1heCkpLFllPTJ9YnJlYWs7Y2FzZSJMaXN0IjppZihudWxsIT1ILmwp''@;'; + put 'put ''e1gucHVzaChyQShILmwuam9pbigiLCIpKSk7YnJlYWt9Y2FzZSJDdXN0b20iOmlmKCJudWxsIiE9SC5mKXtYLnB1c2goVG0oSC5mKSk7YnJlYWt9dGhyb3ciVW5zdXBwb3J0ZWQgRGF0YSBWYWxpZGF0aW9uOiBgZmAiKygiTGlzdCI9PUgudD8iIG9yIGBsYCI6IiIpKyIgcmVxdWlyZWQgZm9y''@;'; + put 'put ''IFR5cGUgIitILnQ7ZGVmYXVsdDp0aHJvdyJYTFNCIGRvZXMgbm90IHN1cHBvcnQgRGF0YSBWYWxpZGF0aW9uIHR5cGUgIitILnR9cmV0dXJuIDE9PVllJiZYLnB1c2goamUpLFYoWCl9ZnVuY3Rpb24gWm0oSCxyZSxYLHdlLHhlLEZlLFplKXtpZih2b2lkIDA9PT1yZS52JiZudWxsPT1yZS5z''@;'; + put 'put ''fHwieiI9PT1yZS50JiYheGUuc2hlZXRTdHVicylyZXR1cm4hMTt2YXIgamU9IiI7c3dpdGNoKHJlLnQpe2Nhc2UiYiI6amU9cmUudj8iMSI6IjAiO2JyZWFrO2Nhc2UiZCI6KHJlPWxuKHJlKSkuej1yZS56fHxGLl90YWJsZVsxNF0scmUudj1mdChkbihyZS52KSkscmUudD0ibiI7YnJlYWs7''@;'; + put 'put ''Y2FzZSJuIjpjYXNlImUiOmplPSIiK3JlLnY7YnJlYWs7ZGVmYXVsdDpqZT1yZS52fXZhciBZZT17cjpYLGM6d2V9O3N3aXRjaChZZS5zPVkxKHhlLmNlbGxYZnMseGUuY2VsbFN0eWxlWGZzLHJlLHhlKSxyZS5sJiZGZVsiIWxpbmtzIl0ucHVzaChbWTAoWWUpLHJlLmxdKSxyZS5jJiZGZVsi''@;'; + put 'put ''IWNvbW1lbnRzIl0ucHVzaChbWTAoWWUpLHJlLmNdKSxyZS50KXtjYXNlInMiOmNhc2Uic3RyIjppZih4ZS5ib29rU1NUKXtpZihqZT1DNih4ZS5TdHJpbmdzLHJlLnYscmUuUj9yZS5yPXU2KHJlLlIpOm51bGwseGUucmV2U3RyaW5ncykscmUuUilmb3IodmFyIE10PTA7TXQ8cmUuUi5sZW5n''@;'; + put 'put ''dGg7KytNdClyZS5SW010XS5zJiZZMSh4ZS5jZWxsWGZzLHhlLmNlbGxTdHlsZVhmcyx7dDoibiIsdjowLHM6cmUuUltNdF0uc30seGUpO1llLnQ9InMiLFllLnY9amUsWmU/QzAoSCwiQnJ0U2hvcnRJc3N0IixmdW5jdGlvbiBZNChILHJlLFgpe3JldHVybiBudWxsPT1YJiYoWD1SaSg4KSks''@;'; + put 'put ''QWgocmUsWCksWC53cml0ZV9zaGlmdCg0LHJlLnYpLFh9KDAsWWUpKTpDMChILCJCcnRDZWxsSXNzdCIsZnVuY3Rpb24gSGQoSCxyZSxYKXtyZXR1cm4gbnVsbD09WCYmKFg9UmkoMTIpKSxTNChyZSxYKSxYLndyaXRlX3NoaWZ0KDQscmUudiksWH0oMCxZZSkpfWVsc2UgWWUudD0ic3RyIixa''@;'; + put 'put ''ZT9DMChILCJCcnRTaG9ydFN0IixmdW5jdGlvbiBQXyhILHJlLFgpe3JldHVybiBudWxsPT1YJiYoWD1SaSg4KzQqSC52Lmxlbmd0aCkpLEFoKHJlLFgpLGx1KEgudixYKSxYLmxlbmd0aD5YLmw/WC5zbGljZSgwLFgubCk6WH0ocmUsWWUpKTpDMChILCJCcnRDZWxsU3QiLGZ1bmN0aW9uIHk1''@;'; + put 'put ''KEgscmUsWCl7cmV0dXJuIG51bGw9PVgmJihYPVJpKDEyKzQqSC52Lmxlbmd0aCkpLFM0KHJlLFgpLGx1KEgudixYKSxYLmxlbmd0aD5YLmw/WC5zbGljZSgwLFgubCk6WH0ocmUsWWUpKTtyZXR1cm4hMDtjYXNlIm4iOnJldHVybiByZS52PT0oMHxyZS52KSYmcmUudj4tMWUzJiZyZS52PDFl''@;'; + put 'put ''Mz9aZT9DMChILCJCcnRTaG9ydFJrIixmdW5jdGlvbiBOZChILHJlLFgpe3JldHVybiBudWxsPT1YJiYoWD1SaSg4KSksQWgocmUsWCkseE0oSC52LFgpLFh9KHJlLFllKSk6QzAoSCwiQnJ0Q2VsbFJrIixmdW5jdGlvbiBCaChILHJlLFgpe3JldHVybiBudWxsPT1YJiYoWD1SaSgxMikpLFM0''@;'; + put 'put ''KHJlLFgpLHhNKEgudixYKSxYfShyZSxZZSkpOlplP0MwKEgsIkJydFNob3J0UmVhbCIsZnVuY3Rpb24gQTUoSCxyZSxYKXtyZXR1cm4gbnVsbD09WCYmKFg9UmkoMTIpKSxBaChyZSxYKSx1ZihILnYsWCksWH0ocmUsWWUpKTpDMChILCJCcnRDZWxsUmVhbCIsZnVuY3Rpb24gdjUoSCxyZSxY''@;'; + put 'put ''KXtyZXR1cm4gbnVsbD09WCYmKFg9UmkoMTYpKSxTNChyZSxYKSx1ZihILnYsWCksWH0ocmUsWWUpKSwhMDtjYXNlImIiOnJldHVybiBZZS50PSJiIixaZT9DMChILCJCcnRTaG9ydEJvb2wiLGZ1bmN0aW9uIHdBKEgscmUsWCl7cmV0dXJuIG51bGw9PVgmJihYPVJpKDUpKSxBaChyZSxYKSxY''@;'; + put 'put ''LndyaXRlX3NoaWZ0KDEsSC52PzE6MCksWH0ocmUsWWUpKTpDMChILCJCcnRDZWxsQm9vbCIsZnVuY3Rpb24gdGMoSCxyZSxYKXtyZXR1cm4gbnVsbD09WCYmKFg9UmkoOSkpLFM0KHJlLFgpLFgud3JpdGVfc2hpZnQoMSxILnY/MTowKSxYfShyZSxZZSkpLCEwO2Nhc2UiZSI6cmV0dXJuIFll''@;'; + put 'put ''LnQ9ImUiLFplP0MwKEgsIkJydFNob3J0RXJyb3IiLGZ1bmN0aW9uIG01KEgscmUsWCl7cmV0dXJuIG51bGw9PVgmJihYPVJpKDgpKSxBaChyZSxYKSxYLndyaXRlX3NoaWZ0KDEsSC52KSxYLndyaXRlX3NoaWZ0KDIsMCksWC53cml0ZV9zaGlmdCgxLDApLFh9KHJlLFllKSk6QzAoSCwiQnJ0''@;'; + put 'put ''Q2VsbEVycm9yIixmdW5jdGlvbiBHaShILHJlLFgpe3JldHVybiBudWxsPT1YJiYoWD1SaSg5KSksUzQocmUsWCksWC53cml0ZV9zaGlmdCgxLEgudiksWH0ocmUsWWUpKSwhMH1yZXR1cm4gWmU/QzAoSCwiQnJ0U2hvcnRCbGFuayIsZnVuY3Rpb24gTDMoSCxyZSxYKXtyZXR1cm4gbnVsbD09''@;'; + put 'put ''WCYmKFg9UmkoNCkpLEFoKHJlLFgpfSgwLFllKSk6QzAoSCwiQnJ0Q2VsbEJsYW5rIixmdW5jdGlvbiBCXyhILHJlLFgpe3JldHVybiBudWxsPT1YJiYoWD1SaSg4KSksUzQocmUsWCl9KDAsWWUpKSwhMH1mdW5jdGlvbiBUeChILHJlLFgsd2Upe3ZhciB4ZT1KMigpLEZlPVguU2hlZXROYW1l''@;'; + put 'put ''c1tIXSxaZT1YLlNoZWV0c1tGZV18fHt9LGplPUZlO3RyeXtYJiZYLldvcmtib29rJiYoamU9WC5Xb3JrYm9vay5TaGVldHNbSF0uQ29kZU5hbWV8fGplKX1jYXRjaChNdCl7fXZhciBZZT1GbyhaZVsiIXJlZiJdfHwiQTEiKTtpZihZZS5lLmM+MTYzODN8fFllLmUucj4xMDQ4NTc1KXtpZihy''@;'; + put 'put ''ZS5XVEYpdGhyb3cgbmV3IEVycm9yKCJSYW5nZSAiKyhaZVsiIXJlZiJdfHwiQTEiKSsiIGV4Y2VlZHMgZm9ybWF0IGxpbWl0IEExOlhGRDEwNDg1NzYiKTtZZS5lLmM9TWF0aC5taW4oWWUuZS5jLDE2MzgzKSxZZS5lLnI9TWF0aC5taW4oWWUuZS5jLDEwNDg1NzUpfXJldHVybiBaZVsiIWxp''@;'; + put 'put ''bmtzIl09W10sWmVbIiFjb21tZW50cyJdPVtdLEMwKHhlLCJCcnRCZWdpblNoZWV0IiksKFgudmJhcmF3fHxaZVsiIW91dGxpbmUiXSkmJkMwKHhlLCJCcnRXc1Byb3AiLGZ1bmN0aW9uIG5QKEgscmUsWCl7bnVsbD09WCYmKFg9UmkoODQrNCpILmxlbmd0aCkpO3ZhciB3ZT0xOTI7cmUmJihy''@;'; + put 'put ''ZS5hYm92ZSYmKHdlJj0tNjUpLHJlLmxlZnQmJih3ZSY9LTEyOSkpLFgud3JpdGVfc2hpZnQoMSx3ZSk7Zm9yKHZhciB4ZT0xO3hlPDM7Kyt4ZSlYLndyaXRlX3NoaWZ0KDEsMCk7cmV0dXJuIGpmKHthdXRvOjF9LFgpLFgud3JpdGVfc2hpZnQoLTQsLTEpLFgud3JpdGVfc2hpZnQoLTQsLTEp''@;'; + put 'put ''LEVNKEgsWCksWC5zbGljZSgwLFgubCl9KGplLFplWyIhb3V0bGluZSJdKSksQzAoeGUsIkJydFdzRGltIixFNihZZSkpLGZ1bmN0aW9uIHh4KEgscmUsWCl7QzAoSCwiQnJ0QmVnaW5Xc1ZpZXdzIiksQzAoSCwiQnJ0QmVnaW5Xc1ZpZXciLGZ1bmN0aW9uIEduKEgscmUsWCl7bnVsbD09WCYm''@;'; + put 'put ''KFg9UmkoMzApKTt2YXIgd2U9OTI0O3JldHVybigoKHJlfHx7fSkuVmlld3N8fFtdKVswXXx8e30pLlJUTCYmKHdlfD0zMiksbnIoSFsiIWdyaWRsaW5lcyJdKSYmKHdlJj0tNSksbnIoKCgocmV8fHt9KS5WaWV3c3x8W10pWzBdfHx7fSkuZ3JpZCkmJih3ZSY9LTUpLFgud3JpdGVfc2hpZnQo''@;'; + put 'put ''Mix3ZSksWC53cml0ZV9zaGlmdCg0LDApLFgud3JpdGVfc2hpZnQoNCwwKSxYLndyaXRlX3NoaWZ0KDQsMCksWC53cml0ZV9zaGlmdCgxLDApLFgud3JpdGVfc2hpZnQoMSwwKSxYLndyaXRlX3NoaWZ0KDIsMCksWC53cml0ZV9zaGlmdCgyLDEwMCksWC53cml0ZV9zaGlmdCgyLDApLFgud3Jp''@;'; + put 'put ''dGVfc2hpZnQoMiwwKSxYLndyaXRlX3NoaWZ0KDIsMCksWC53cml0ZV9zaGlmdCg0LDApLFh9KHJlLFgpKSxyZVsiIWZyZWV6ZSJdJiZDMChILCJCcnRQYW5lIixmdW5jdGlvbiBsdChIKXt2YXIgcmU9dWwoSFsiIWZyZWV6ZSJdKSxYPVJpKDI5KTtyZXR1cm4gWC53cml0ZV9zaGlmdCg4LHJl''@;'; + put 'put ''LmMsImYiKSxYLndyaXRlX3NoaWZ0KDgscmUuciwiZiIpLFgud3JpdGVfc2hpZnQoNCxyZS5yKSxYLndyaXRlX3NoaWZ0KDQscmUuYyksWC53cml0ZV9zaGlmdCg0LDApLFgud3JpdGVfc2hpZnQoMSwzKSxYfShyZSkpLHJlWyIhc2VsIl0mJkMwKEgsIkJydFNlbCIsZnVuY3Rpb24gdzUoSCxy''@;'; + put 'put ''ZSl7dmFyIFg9UmkoMzYpLHdlPUguY2VsbDtpZighd2Upe2lmKCFILnJhbmdlKXRocm93IG5ldyBFcnJvcigiTXVzdCBzcGVjaWZ5IGEgc2VsZWN0aW9uIGNlbGwgb3IgcmFuZ2UiKTt3ZT1ZMCh2cyhILnJhbmdlLnJlcGxhY2UoL1xzLiokLywiIikpLnMpfXZhciB4ZT0ic3RyaW5nIj09dHlw''@;'; + put 'put ''ZW9mIHdlP3VsKHdlKTp3ZTtpZihyZSl7dmFyIEZlPSJzdHJpbmciPT10eXBlb2YgcmU/dWwocmUpOnJlO1gud3JpdGVfc2hpZnQoNCx4ZS5yPj1GZS5yJiZ4ZS5jPj1GZS5jPzA6eGUucj49RmUuciYmeGUuYzxGZS5jPzI6eGUucjxGZS5yJiZ4ZS5jPj1GZS5jPzE6Myl9ZWxzZSBYLndyaXRl''@;'; + put 'put ''X3NoaWZ0KDQsMyk7cmV0dXJuIFgud3JpdGVfc2hpZnQoNCx4ZS5yKSxYLndyaXRlX3NoaWZ0KDQseGUuYyksWC53cml0ZV9zaGlmdCg0LDApLFgud3JpdGVfc2hpZnQoNCwxKSxYLndyaXRlX3NoaWZ0KDQseGUuciksWC53cml0ZV9zaGlmdCg0LHhlLnIpLFgud3JpdGVfc2hpZnQoNCx4ZS5j''@;'; + put 'put ''KSxYLndyaXRlX3NoaWZ0KDQseGUuYyksWH0ocmVbIiFzZWwiXSxyZVsiIWZyZWV6ZSJdKSksQzAoSCwiQnJ0RW5kV3NWaWV3IiksQzAoSCwiQnJ0RW5kV3NWaWV3cyIpfSh4ZSxaZSxYLldvcmtib29rKSxmdW5jdGlvbiBRNChILHJlKXshcmV8fCFyZVsiIWNvbHMiXXx8KEMwKEgsIkJydEJl''@;'; + put 'put ''Z2luQ29sSW5mb3MiKSxyZVsiIWNvbHMiXS5mb3JFYWNoKGZ1bmN0aW9uKFgsd2Upe1gmJkMwKEgsIkJydENvbEluZm8iLGZ1bmN0aW9uIGYxKEgscmUsWCl7bnVsbD09WCYmKFg9UmkoMTgpKTt2YXIgd2U9azYoSCxyZSk7WC53cml0ZV9zaGlmdCgtNCxIKSxYLndyaXRlX3NoaWZ0KC00LEgp''@;'; + put 'put ''LFgud3JpdGVfc2hpZnQoNCwyNTYqKHdlLndpZHRofHwxMCkpLFgud3JpdGVfc2hpZnQoNCwwKTt2YXIgeGU9MDtyZXR1cm4gcmUuaGlkZGVuJiYoeGV8PTEpLCJudW1iZXIiPT10eXBlb2Ygd2Uud2lkdGgmJih4ZXw9MikscmUubGV2ZWwmJih4ZXw9cmUubGV2ZWw8PDgpLFgud3JpdGVfc2hp''@;'; + put 'put ''ZnQoMix4ZSksWH0od2UsWCkpfSksQzAoSCwiQnJ0RW5kQ29sSW5mb3MiKSl9KHhlLFplKSxmdW5jdGlvbiBqXyhILHJlLFgsd2Upe3ZhciB4ZT1GbyhyZVsiIXJlZiJdfHwiQTEiKSxaZT0iIixqZT1bXTtDMChILCJCcnRCZWdpblNoZWV0RGF0YSIpO3ZhciBZZT1BcnJheS5pc0FycmF5KHJl''@;'; + put 'put ''KSxNdD14ZS5lLnI7cmVbIiFyb3dzIl0mJihNdD1NYXRoLm1heCh4ZS5lLnIscmVbIiFyb3dzIl0ubGVuZ3RoLTEpKTtmb3IodmFyIHh0PXhlLnMucjt4dDw9TXQ7Kyt4dCl7WmU9WGEoeHQpLGVQKEgscmUseGUseHQpO3ZhciBSdD0hMTtpZih4dDw9eGUuZS5yKWZvcih2YXIgVXQ9eGUucy5j''@;'; + put 'put ''O1V0PD14ZS5lLmM7KytVdCl7eHQ9PT14ZS5zLnImJihqZVtVdF09X2EoVXQpKTt2YXIgbm49WWU/KHJlW3h0XXx8W10pW1V0XTpyZVtqZVtVdF0rWmVdO1J0PSEhbm4mJlptKEgsbm4seHQsVXQsd2UscmUsUnQpfX1DMChILCJCcnRFbmRTaGVldERhdGEiKX0oeGUsWmUsMCxyZSksZnVuY3Rp''@;'; + put 'put ''b24gc1AoSCxyZSl7IXJlWyIhcHJvdGVjdCJdfHxDMChILCJCcnRTaGVldFByb3RlY3Rpb24iLGZ1bmN0aW9uIGFQKEgscmUpe3JldHVybiBudWxsPT1yZSYmKHJlPVJpKDY2KSkscmUud3JpdGVfc2hpZnQoMixILnBhc3N3b3JkP1M5KEgucGFzc3dvcmQpOjApLHJlLndyaXRlX3NoaWZ0KDQs''@;'; + put 'put ''MSksW1sib2JqZWN0cyIsITFdLFsic2NlbmFyaW9zIiwhMV0sWyJmb3JtYXRDZWxscyIsITBdLFsiZm9ybWF0Q29sdW1ucyIsITBdLFsiZm9ybWF0Um93cyIsITBdLFsiaW5zZXJ0Q29sdW1ucyIsITBdLFsiaW5zZXJ0Um93cyIsITBdLFsiaW5zZXJ0SHlwZXJsaW5rcyIsITBdLFsiZGVsZXRl''@;'; + put 'put ''Q29sdW1ucyIsITBdLFsiZGVsZXRlUm93cyIsITBdLFsic2VsZWN0TG9ja2VkQ2VsbHMiLCExXSxbInNvcnQiLCEwXSxbImF1dG9GaWx0ZXIiLCEwXSxbInBpdm90VGFibGVzIiwhMF0sWyJzZWxlY3RVbmxvY2tlZENlbGxzIiwhMV1dLmZvckVhY2goZnVuY3Rpb24oWCl7cmUud3JpdGVfc2hp''@;'; + put 'put ''ZnQoNCxYWzFdP251bGw9PUhbWFswXV18fEhbWFswXV0/MDoxOm51bGwhPUhbWFswXV0mJkhbWFswXV0/MDoxKX0pLHJlfShyZVsiIXByb3RlY3QiXSkpfSh4ZSxaZSksZnVuY3Rpb24gem0oSCxyZSxYLHdlKXtpZihyZVsiIWF1dG9maWx0ZXIiXSl7dmFyIHhlPXJlWyIhYXV0b2ZpbHRlciJd''@;'; + put 'put ''LEZlPSJzdHJpbmciPT10eXBlb2YgeGUucmVmP3hlLnJlZjpmYSh4ZS5yZWYpO1guV29ya2Jvb2t8fChYLldvcmtib29rPXtTaGVldHM6W119KSxYLldvcmtib29rLk5hbWVzfHwoWC5Xb3JrYm9vay5OYW1lcz1bXSk7dmFyIFplPVguV29ya2Jvb2suTmFtZXMsamU9dnMoRmUpO2plLnMucj09''@;'; + put 'put ''amUuZS5yJiYoamUuZS5yPXZzKHJlWyIhcmVmIl0pLmUucixGZT1mYShqZSkpO2Zvcih2YXIgWWU9MDtZZTxaZS5sZW5ndGg7KytZZSl7dmFyIE10PVplW1llXTtpZigiX3hsbm0uX0ZpbHRlckRhdGFiYXNlIj09TXQuTmFtZSYmTXQuU2hlZXQ9PXdlKXtNdC5SZWY9IiciK1guU2hlZXROYW1l''@;'; + put 'put ''c1t3ZV0rIichIitGZTticmVha319WWU9PVplLmxlbmd0aCYmWmUucHVzaCh7TmFtZToiX3hsbm0uX0ZpbHRlckRhdGFiYXNlIixTaGVldDp3ZSxSZWY6IiciK1guU2hlZXROYW1lc1t3ZV0rIichIitGZX0pLEMwKEgsIkJydEJlZ2luQUZpbHRlciIsR3AoRm8oRmUpKSksQzAoSCwiQnJ0RW5k''@;'; + put 'put ''QUZpbHRlciIpfX0oeGUsWmUsWCxIKSxmdW5jdGlvbiBreChILHJlKXshcmV8fCFyZVsiIW1lcmdlcyJdfHwoQzAoSCwiQnJ0QmVnaW5NZXJnZUNlbGxzIixmdW5jdGlvbiBUdChILHJlKXtyZXR1cm4gbnVsbD09cmUmJihyZT1SaSg0KSkscmUud3JpdGVfc2hpZnQoNCxIKSxyZX0ocmVbIiFt''@;'; + put 'put ''ZXJnZXMiXS5sZW5ndGgpKSxyZVsiIW1lcmdlcyJdLmZvckVhY2goZnVuY3Rpb24oWCl7QzAoSCwiQnJ0TWVyZ2VDZWxsIix5YShYKSl9KSxDMChILCJCcnRFbmRNZXJnZUNlbGxzIikpfSh4ZSxaZSksZnVuY3Rpb24gdVAoSCxyZSl7aWYocmUpe0MwKEgsIkJydEJlZ2luRFZhbHMiLGZ1bmN0''@;'; + put 'put ''aW9uIFZfKEgscmUpe251bGw9PXJlJiYocmU9UmkoMTgpKSxyZS53cml0ZV9zaGlmdCgyLDApLHJlLndyaXRlX3NoaWZ0KDQsMCkscmUud3JpdGVfc2hpZnQoNCwwKSxyZS53cml0ZV9zaGlmdCg0LDApO2Zvcih2YXIgWD0wLHdlPTA7d2U8SC5sZW5ndGg7Kyt3ZSkoKEhbd2VdfHx7fSkucmVm''@;'; + put 'put ''fHx7fSkucyYmSFt3ZV0ucmVmLnMuYzwwfHwrK1g7cmV0dXJuIHJlLndyaXRlX3NoaWZ0KDQsWCkscmV9KHJlKSk7Zm9yKHZhciBYPTA7WDxyZS5sZW5ndGg7KytYKSgocmVbWF18fHt9KS5yZWZ8fHt9KS5zJiZyZVtYXS5yZWYucy5jPDB8fEMwKEgsIkJydERWYWwiLE5pKHJlW1hdKSk7QzAo''@;'; + put 'put ''SCwiQnJ0RW5kRFZhbHMiKX19KHhlLFplWyIhdmFsaWRhdGlvbnMiXSksZnVuY3Rpb24gTXgoSCxyZSxYKXtyZVsiIWxpbmtzIl0uZm9yRWFjaChmdW5jdGlvbih3ZSl7aWYod2VbMV0uVGFyZ2V0KXt2YXIgeGU9WHQoWCwtMSx3ZVsxXS5UYXJnZXQucmVwbGFjZSgvIy4qJC8sIiIpLHB0LkhM''@;'; + put 'put ''SU5LKTtDMChILCJCcnRITGluayIsZnVuY3Rpb24gb1AoSCxyZSl7dmFyIFg9UmkoNTArNCooSFsxXS5UYXJnZXQubGVuZ3RoKyhIWzFdLlRvb2x0aXB8fCIiKS5sZW5ndGgpKTtHcCh7czp1bChIWzBdKSxlOnVsKEhbMF0pfSxYKSx6cCgicklkIityZSxYKTt2YXIgd2U9SFsxXS5UYXJnZXQu''@;'; + put 'put ''aW5kZXhPZigiIyIpO3JldHVybiBsdSgoLTE9PXdlPyIiOkhbMV0uVGFyZ2V0LnNsaWNlKHdlKzEpKXx8IiIsWCksbHUoSFsxXS5Ub29sdGlwfHwiIixYKSxsdSgiIixYKSxYLnNsaWNlKDAsWC5sKX0od2UseGUpKX19KSxkZWxldGUgcmVbIiFsaW5rcyJdfSh4ZSxaZSx3ZSksWmVbIiFtYXJn''@;'; + put 'put ''aW5zIl0mJkMwKHhlLCJCcnRNYXJnaW5zIixmdW5jdGlvbiBDeChILHJlKXtyZXR1cm4gbnVsbD09cmUmJihyZT1SaSg0OCkpLEJkKEgpLGJpLmZvckVhY2goZnVuY3Rpb24oWCl7dWYoSFtYXSxyZSl9KSxyZX0oWmVbIiFtYXJnaW5zIl0pKSwoIXJlfHxyZS5pZ25vcmVFQ3x8bnVsbD09cmUu''@;'; + put 'put ''aWdub3JlRUMpJiZmdW5jdGlvbiBTeChILHJlKXshcmV8fCFyZVsiIXJlZiJdfHwoQzAoSCwiQnJ0QmVnaW5DZWxsSWdub3JlRUNzIiksQzAoSCwiQnJ0Q2VsbElnbm9yZUVDIixmdW5jdGlvbiBOXyhIKXt2YXIgcmU9UmkoMjQpO3JldHVybiByZS53cml0ZV9zaGlmdCg0LDQpLHJlLndyaXRl''@;'; + put 'put ''X3NoaWZ0KDQsMSksR3AoSCxyZSkscmV9KEZvKHJlWyIhcmVmIl0pKSksQzAoSCwiQnJ0RW5kQ2VsbElnbm9yZUVDcyIpKX0oeGUsWmUpLGZ1bmN0aW9uIEV4KEgscmUsWCx3ZSl7aWYocmVbIiFjb21tZW50cyJdLmxlbmd0aD4wKXt2YXIgeGU9WHQod2UsLTEsIi4uL2RyYXdpbmdzL3ZtbERy''@;'; + put 'put ''YXdpbmciKyhYKzEpKyIudm1sIixwdC5WTUwpO0MwKEgsIkJydExlZ2FjeURyYXdpbmciLHpwKCJySWQiK3hlKSkscmVbIiFsZWdhY3kiXT14ZX19KHhlLFplLEgsd2UpLEMwKHhlLCJCcnRFbmRTaGVldCIpLHhlLmVuZCgpfWZ1bmN0aW9uIFpfKEgpe3ZhciB3ZSxyZT1bXSxYPUgubWF0Y2go''@;'; + put 'put ''L148YzpudW1DYWNoZT4vKTsoSC5tYXRjaCgvPGM6cHQgaWR4PSIoXGQqKSI+KC4qPyk8XC9jOnB0Pi9nbSl8fFtdKS5mb3JFYWNoKGZ1bmN0aW9uKEZlKXt2YXIgWmU9RmUubWF0Y2goLzxjOnB0IGlkeD0iKFxkKj8pIj48Yzp2PiguKik8XC9jOnY+PFwvYzpwdD4vKTshWmV8fChyZVsrWmVb''@;'; + put 'put ''MV1dPVg/K1plWzJdOlplWzJdKX0pO3ZhciB4ZT1ncigoSC5tYXRjaCgvPGM6Zm9ybWF0Q29kZT4oW1xzXFNdKj8pPFwvYzpmb3JtYXRDb2RlPi8pfHxbIiIsIkdlbmVyYWwiXSlbMV0pO3JldHVybihILm1hdGNoKC88YzpmPiguKj8pPFwvYzpmPi9nbSl8fFtdKS5mb3JFYWNoKGZ1bmN0aW9u''@;'; + put 'put ''KEZlKXt3ZT1GZS5yZXBsYWNlKC88Lio/Pi9nLCIiKX0pLFtyZSx4ZSx3ZV19cHQuQ0hBUlQ9Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L3JlbGF0aW9uc2hpcHMvY2hhcnQiLHB0LkNIQVJURVg9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29m''@;'; + put 'put ''dC5jb20vb2ZmaWNlLzIwMTQvcmVsYXRpb25zaGlwcy9jaGFydEV4Ijt2YXIgRHg9LzwoPzpcdys6KT9jaGFydD4oW1xzXFNdKj8pPFwvKD86XHcrOik/Y2hhcnQ+LyxjUD0vPCg/Olx3KzopP3Bsb3RBcmVhPihbXHNcU10qPyk8XC8oPzpcdys6KT9wbG90QXJlYT4vLEx4PS88KD86XHcrOik/''@;'; + put 'put ''bGVnZW5kPihbXHNcU10qPyk8XC8oPzpcdys6KT9sZWdlbmQ+LyxmUD0vPCg/Olx3KzopP3RpdGxlPihbXHNcU10qPyk8XC8oPzpcdys6KT90aXRsZT4vO2Z1bmN0aW9uIE94KEgscmUsWCx3ZSx4ZSxGZSxaZSxqZSl7dmFyIFllPUZlfHx7IiF0eXBlIjoiY2hhcnQifTtpZighSClyZXR1cm4g''@;'; + put 'put ''RmU7WmUmJlplLkFuY2hvciYmKFllWyIhcG9zIl09eWYoWmUuQW5jaG9yLGplKSxZZVsiIXBvc1R5cGUiXT1aZS5BbmNob3IudHlwZS5yZXBsYWNlKC9BbmNob3IvLCIiKSxZZVsiIWFic3BvcyJdPXlmKFplLkFuY2hvcixqZSksWWVbIiFyZWxwb3MiXT1PYihaZS5BbmNob3IsamUpKSxZZVsi''@;'; + put 'put ''IXBsb3QiXT1bXTt2YXIgTXQ9IiIseHQ9IiIsUnQ9SC5tYXRjaChEeCk7UnQ/KE10PUguc2xpY2UoMCxSdC5pbmRleCkseHQ9SC5zbGljZShSdC5pbmRleCtSdFswXS5sZW5ndGgpKTpNdD14dD1IO3ZhciBVdD1bXSxubj1NdC5tYXRjaCgvPGM6bGFuZy4qPz4vKXx8SC5tYXRjaCgvPGM6bGFu''@;'; + put 'put ''Zy4qPz4vKXx8eHQubWF0Y2goLzxjOmxhbmcuKj8+Lyk7cmV0dXJuIG5uJiYoWWVbIiFsYW5nIl09KGVuKG5uWzBdKXx8e30pLnZhbHx8ImVuLVVTIiksUnQmJigoVXQ9UnRbMV0ubWF0Y2goZlApKSYmZnVuY3Rpb24gSXgoSCxyZSl7dmFyIFg9IiI7SC5tYXRjaCgvPGM6cmljaD4vKSYmSC5y''@;'; + put 'put ''ZXBsYWNlKC88YTp0PihbXHNcU10qPyk8XC9hOnQ+L2csZnVuY3Rpb24od2UseGUpe1grPXhlfSkscmVbIiF0aXRsZSJdPVh8fCJDaGFydCBUaXRsZSJ9KFV0WzFdLFllKSxmdW5jdGlvbiBoUChILHJlKXtpZihIKXt2YXIgWD0wLHdlPTAseGU9IkEiLEZlPXtzOntyOjJlNixjOjJlNn0sZTp7''@;'; + put 'put ''cjowLGM6MH19O0gucmVwbGFjZShSeCxmdW5jdGlvbihaZSxqZSl7dmFyIFllPXt0OmplLGM6WCx3OjAsc2VyOltdfSxNdD1bXSx4dD0oWmUubWF0Y2goLzxjOnNlci8pfHxbXSkuaW5kZXgsUnQ9eHQ/WmUuc2xpY2UoMCx4dCk6WmU7InNjYXR0ZXIiPT1qZSYmKE10PVplLm1hdGNoKC88Yzpz''@;'; + put 'put ''Y2F0dGVyU3R5bGUoW15cLz5dKilcLz4vbSkpJiZlbihNdFswXSksImJhciI9PWplJiYoTXQ9WmUubWF0Y2goLzxjOmJhckRpcihbXlwvPl0qKVwvPi9tKSkmJihZZS5iYXJEaXI9ImJhciI9PWVuKE10WzBdKS52YWw/ImgiOiJ2IiksKE10PVJ0Lm1hdGNoKC88Yzpncm91cGluZyhbXlwvPl0q''@;'; + put 'put ''KVwvPi9tKSkmJihZZS5ncm91cGluZz1lbihNdFswXSkudmFsfHwic3RhbmRhcmQiKSwoWmUubWF0Y2goYjUpfHxbXSkuZm9yRWFjaChmdW5jdGlvbihubil7dmFyIENuPVtdLER0PXt9LHp0PVtdO2lmKG5uLm1hdGNoKC88Yzp0eD4vKSl7dmFyIFBuPVpfKChubi5tYXRjaCgvPGM6dHg+KFtc''@;'; + put 'put ''c1xTXSo/KTxcL2M6dHg+Lyl8fFtdKVsxXXx8IiIpfHxbXTtQblswXSYmUG5bMF1bMF0mJihEdC5uYW1lPVBuWzBdWzBdKSxQblsyXSYmKER0Lm5hbWVyZWY9UG5bMl0pfVsieFZhbCIsInlWYWwiLCJjYXQiLCJ2YWwiLCJidWJibGVTaXplIl0uZm9yRWFjaChmdW5jdGlvbihUbil7dmFyIFlu''@;'; + put 'put ''LE9uPW5uLm1hdGNoKG5ldyBSZWdFeHAoIjxjOiIrVG4rIj5bXFxzXFxTXSo/PFxcL2M6IitUbisiPiIsImdtIikpO09uJiYoKE9uWzBdLm1hdGNoKC88YzpmPiguKj8pPFwvYzpmPi9nbSl8fFtdKS5mb3JFYWNoKGZ1bmN0aW9uKE1yKXtZbj1Nci5yZXBsYWNlKC88Lio/Pi9nLCIiKX0pLChP''@;'; + put 'put ''blswXS5tYXRjaCgvPGM6KD86XHcqKUNhY2hlPltcc1xTXSo/PFwvYzooPzpcdyopQ2FjaGU+L2dtKXx8W10pLmZvckVhY2goZnVuY3Rpb24oTXIpe3ZhciBhaT1aXyhNcik7RmUucy5yPUZlLnMuYz0wLEZlLmUuYz1YLHhlPV9hKFgpLGFpWzBdLmZvckVhY2goZnVuY3Rpb24oeXIsYXIpe3Jl''@;'; + put 'put ''W3hlK1hhKGFyKV09e3Q6Im51bWJlciI9PXR5cGVvZiB5cj8ibiI6InMiLHY6eXIsejphaVsxXX0sd2U9YXJ9KSxGZS5lLnI8d2UmJihGZS5lLnI9d2UpLCsrWCxZZS53KyssQ24ucHVzaChUbiksKGFpWzJdfHxZbikmJnp0LnB1c2goYWlbMl18fFluKSwidmFsIj09VG4mJihEdC56PWFpWzFd''@;'; + put 'put ''fHwiR2VuZXJhbCIpfSkpfSksKE10PVplLm1hdGNoKC88YzpzbW9vdGgoW15cLz5dKilcLz4vbSkpJiYoRHQuc21vb3RoPW51bGw9PWVuKE10WzBdKS52YWx8fERpKGVuKE10WzBdKS52YWwpKSxEdC5jb2xzPUNuLER0LnJhbmdlcz16dCxZZS5zZXIucHVzaChEdCl9KSwiZG91Z2hudXQiPT1q''@;'; + put 'put ''ZSYmKE10PVplLm1hdGNoKC88Yzpob2xlU2l6ZShbXlwvPl0qKVwvPi9tKSkmJihZZS5ob2xlPShlbihNdFswXSkudmFsfHwxMCkvMTAwKSxyZVsiIXBsb3QiXS5wdXNoKFllKX0pLFg+MCYmKHJlWyIhcmVmIl09ZmEoRmUpKX19KChSdFsxXS5tYXRjaChjUCl8fFtdKVsxXSxZZSksbnVsbCE9''@;'; + put 'put ''KFV0PVJ0WzFdLm1hdGNoKEx4KSkmJmZ1bmN0aW9uIFUxKEgscmUpe3ZhciBYO3JlWyIhbGVnZW5kIl09e3BvczoiciJ9LChYPUgubWF0Y2goLzxjOmxlZ2VuZFBvcyhbXlwvPl0qKVwvPi9tKSkmJihyZVsiIWxlZ2VuZCJdLnBvcz1lbihYWzBdKS52YWx8fCJyIil9KFV0WzBdLFllKSksWWV9''@;'; + put 'put ''dmFyIFJ4PS88YzooKD86YXJlYXxsaW5lfHN0b2NrfHJhZGFyfHNjYXR0ZXJ8cGllfGRvdWdobnV0fGJhcnxvZlBpZXxzdXJmYWNlfGJ1YmJsZSkoPzozRCk/KUNoYXJ0W14+XSo+KFtcc1xTXSo/KTxcL2M6KD86YXJlYXxsaW5lfHN0b2NrfHJhZGFyfHNjYXR0ZXJ8cGllfGRvdWdobnV0fGJh''@;'; + put 'put ''cnxvZlBpZXxzdXJmYWNlfGJ1YmJsZSkoPzozRCk/Q2hhcnQ+L2dtLGI1PS88YzpzZXI+KFtcc1xTXSo/KTxcL2M6c2VyPi9nbTtwdC5DUz0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL29mZmljZURvY3VtZW50LzIwMDYvcmVsYXRpb25zaGlwcy9jaGFydHNoZWV0Ijt2YXIg''@;'; + put 'put ''ZFA9X2koImNoYXJ0c2hlZXQiLG51bGwse3htbG5zOlgwLm1haW5bMF0sInhtbG5zOnIiOlgwLnJ9KTtmdW5jdGlvbiBwUChILHJlLFgsd2Upe3ZhciB4ZT1bY24sZFBdO3JldHVybiB4ZS5wdXNoKCI8c2hlZXRQci8+IikseGUucHVzaCgnPHNoZWV0Vmlld3M+PHNoZWV0VmlldyB6b29tU2Nh''@;'; + put 'put ''bGU9IjEwMCIgd29ya2Jvb2tWaWV3SWQ9IjAiIHpvb21Ub0ZpdD0iMSIvPjwvc2hlZXRWaWV3cz4nKSx4ZVt4ZS5sZW5ndGhdPV9pKCJkcmF3aW5nIixudWxsLHsicjppZCI6InJJZDEifSksWHQod2UsLTEsIi4uL2RyYXdpbmdzL2RyYXdpbmciKyhIKzEpKyIueG1sIixwdC5EUkFXKSx4ZS5s''@;'; + put 'put ''ZW5ndGg+MiYmKHhlW3hlLmxlbmd0aF09IjwvY2hhcnRzaGVldD4iLHhlWzFdPXhlWzFdLnJlcGxhY2UoIi8+IiwiPiIpKSx4ZS5qb2luKCIiKX1mdW5jdGlvbiBSMygpe3ZhciBIPUoyKCk7cmV0dXJuIEMwKEgsIkJydEJlZ2luU2hlZXQiKSxDMChILCJCcnRFbmRTaGVldCIpLEguZW5kKCl9''@;'; + put 'put ''dmFyIEZpPVtbImFsbG93UmVmcmVzaFF1ZXJ5IiwhMSwiYm9vbCJdLFsiYXV0b0NvbXByZXNzUGljdHVyZXMiLCEwLCJib29sIl0sWyJiYWNrdXBGaWxlIiwhMSwiYm9vbCJdLFsiY2hlY2tDb21wYXRpYmlsaXR5IiwhMSwiYm9vbCJdLFsiQ29kZU5hbWUiLCIiXSxbImRhdGUxOTA0IiwhMSwi''@;'; + put 'put ''Ym9vbCJdLFsiZGVmYXVsdFRoZW1lVmVyc2lvbiIsMCwiaW50Il0sWyJmaWx0ZXJQcml2YWN5IiwhMSwiYm9vbCJdLFsiaGlkZVBpdm90RmllbGRMaXN0IiwhMSwiYm9vbCJdLFsicHJvbXB0ZWRTb2x1dGlvbnMiLCExLCJib29sIl0sWyJwdWJsaXNoSXRlbXMiLCExLCJib29sIl0sWyJyZWZy''@;'; + put 'put ''ZXNoQWxsQ29ubmVjdGlvbnMiLCExLCJib29sIl0sWyJzYXZlRXh0ZXJuYWxMaW5rVmFsdWVzIiwhMCwiYm9vbCJdLFsic2hvd0JvcmRlclVuc2VsZWN0ZWRUYWJsZXMiLCEwLCJib29sIl0sWyJzaG93SW5rQW5ub3RhdGlvbiIsITAsImJvb2wiXSxbInNob3dPYmplY3RzIiwiYWxsIl0sWyJz''@;'; + put 'put ''aG93UGl2b3RDaGFydEZpbHRlciIsITEsImJvb2wiXSxbInVwZGF0ZUxpbmtzIiwidXNlclNldCJdXSxCMz1bWyJhY3RpdmVUYWIiLDAsImludCJdLFsiYXV0b0ZpbHRlckRhdGVHcm91cGluZyIsITAsImJvb2wiXSxbImZpcnN0U2hlZXQiLDAsImludCJdLFsibWluaW1pemVkIiwhMSwiYm9v''@;'; + put 'put ''bCJdLFsic2hvd0hvcml6b250YWxTY3JvbGwiLCEwLCJib29sIl0sWyJzaG93U2hlZXRUYWJzIiwhMCwiYm9vbCJdLFsic2hvd1ZlcnRpY2FsU2Nyb2xsIiwhMCwiYm9vbCJdLFsidGFiUmF0aW8iLDYwMCwiaW50Il0sWyJ2aXNpYmlsaXR5IiwidmlzaWJsZSJdXSxtUD1bXSxGeD1bWyJjYWxj''@;'; + put 'put ''Q29tcGxldGVkIiwidHJ1ZSJdLFsiY2FsY01vZGUiLCJhdXRvIl0sWyJjYWxjT25TYXZlIiwidHJ1ZSJdLFsiY29uY3VycmVudENhbGMiLCJ0cnVlIl0sWyJmdWxsQ2FsY09uTG9hZCIsImZhbHNlIl0sWyJmdWxsUHJlY2lzaW9uIiwidHJ1ZSJdLFsiaXRlcmF0ZSIsImZhbHNlIl0sWyJpdGVy''@;'; + put 'put ''YXRlQ291bnQiLCIxMDAiXSxbIml0ZXJhdGVEZWx0YSIsIjAuMDAxIl0sWyJyZWZNb2RlIiwiQTEiXV07ZnVuY3Rpb24gUGgoSCxyZSl7Zm9yKHZhciBYPTA7WCE9SC5sZW5ndGg7KytYKWZvcih2YXIgd2U9SFtYXSx4ZT0wO3hlIT1yZS5sZW5ndGg7Kyt4ZSl7dmFyIEZlPXJlW3hlXTtpZihu''@;'; + put 'put ''dWxsPT13ZVtGZVswXV0pd2VbRmVbMF1dPUZlWzFdO2Vsc2Ugc3dpdGNoKEZlWzJdKXtjYXNlImJvb2wiOiJzdHJpbmciPT10eXBlb2Ygd2VbRmVbMF1dJiYod2VbRmVbMF1dPURpKHdlW0ZlWzBdXSkpO2JyZWFrO2Nhc2UiaW50Ijoic3RyaW5nIj09dHlwZW9mIHdlW0ZlWzBdXSYmKHdlW0Zl''@;'; + put 'put ''WzBdXT1wYXJzZUludCh3ZVtGZVswXV0sMTApKX19fWZ1bmN0aW9uICRmKEgscmUpe2Zvcih2YXIgWD0wO1ghPXJlLmxlbmd0aDsrK1gpe3ZhciB3ZT1yZVtYXTtpZihudWxsPT1IW3dlWzBdXSlIW3dlWzBdXT13ZVsxXTtlbHNlIHN3aXRjaCh3ZVsyXSl7Y2FzZSJib29sIjoic3RyaW5nIj09''@;'; + put 'put ''dHlwZW9mIEhbd2VbMF1dJiYoSFt3ZVswXV09RGkoSFt3ZVswXV0pKTticmVhaztjYXNlImludCI6InN0cmluZyI9PXR5cGVvZiBIW3dlWzBdXSYmKEhbd2VbMF1dPXBhcnNlSW50KEhbd2VbMF1dLDEwKSl9fX1mdW5jdGlvbiBxZihIKXskZihILldCUHJvcHMsRmkpLCRmKEguQ2FsY1ByLEZ4''@;'; + put 'put ''KSxQaChILldCVmlldyxCMyksUGgoSC5TaGVldHMsbVApLFVjLmRhdGUxOTA0PURpKEguV0JQcm9wcy5kYXRlMTkwNCl9dmFyIE54PSJdWyo/L1xcIi5zcGxpdCgiIik7ZnVuY3Rpb24gVngoSCxyZSl7aWYoSC5sZW5ndGg+MzEpe2lmKHJlKXJldHVybiExO3Rocm93IG5ldyBFcnJvcigiU2hl''@;'; + put 'put ''ZXQgbmFtZXMgY2Fubm90IGV4Y2VlZCAzMSBjaGFycyIpfXZhciBYPSEwO3JldHVybiBOeC5mb3JFYWNoKGZ1bmN0aW9uKHdlKXtpZigtMSE9SC5pbmRleE9mKHdlKSl7aWYoIXJlKXRocm93IG5ldyBFcnJvcigiU2hlZXQgbmFtZSBjYW5ub3QgY29udGFpbiA6IFxcIC8gPyAqIFsgXSIpO1g9''@;'; + put 'put ''ITF9fSksWH12YXIgang9Lzxcdys6d29ya2Jvb2svLHp4PV9pKCJ3b3JrYm9vayIsbnVsbCx7eG1sbnM6WDAubWFpblswXSwieG1sbnM6ciI6WDAucn0pO2Z1bmN0aW9uIHlQKEgscmUpe3ZhciBYPXJlfHx7fSx3ZT1bY25dO3dlW3dlLmxlbmd0aF09eng7dmFyIHhlPUguV29ya2Jvb2smJihI''@;'; + put 'put ''Lldvcmtib29rLk5hbWVzfHxbXSkubGVuZ3RoPjA7SC5Xb3JrYm9vayYmSC5Xb3JrYm9vay5Nb2RpZnkmJih3ZVt3ZS5sZW5ndGhdPWZ1bmN0aW9uIF81KEgpe3ZhciByZT17fTtyZXR1cm4gSC53YXJuJiYocmUucmVhZE9ubHlSZWNvbW1lbmRlZD0xKSxyZS51c2VyTmFtZT1ILnVzZXJ8fCJT''@;'; + put 'put ''aGVldCBKUyIsSC5lbmNyeXB0aW9uJiYoSC5lbmNyeXB0aW9uLmFsZ28mJihyZS5hbGdvcml0aG1OYW1lPUguZW5jcnlwdGlvbi5hbGdvKSxILmVuY3J5cHRpb24uaGFzaCYmKHJlLmhhc2hWYWx1ZT1ILmVuY3J5cHRpb24uaGFzaCksSC5lbmNyeXB0aW9uLnNhbHQmJihyZS5zYWx0VmFsdWU9''@;'; + put 'put ''SC5lbmNyeXB0aW9uLnNhbHQpLEguZW5jcnlwdGlvbi5zcGluJiYocmUuc3BpbkNvdW50PUguZW5jcnlwdGlvbi5zcGluKSksX2koImZpbGVTaGFyaW5nIixudWxsLHJlKX0oSC5Xb3JrYm9vay5Nb2RpZnkpKTt2YXIgRmU9e2NvZGVOYW1lOiJUaGlzV29ya2Jvb2sifTtILldvcmtib29rJiZI''@;'; + put 'put ''Lldvcmtib29rLldCUHJvcHMmJihGaS5mb3JFYWNoKGZ1bmN0aW9uKE10KXtudWxsIT1ILldvcmtib29rLldCUHJvcHNbTXRbMF1dJiZILldvcmtib29rLldCUHJvcHNbTXRbMF1dIT1NdFsxXSYmKEZlW010WzBdXT1ILldvcmtib29rLldCUHJvcHNbTXRbMF1dKX0pLEguV29ya2Jvb2suV0JQ''@;'; + put 'put ''cm9wcy5Db2RlTmFtZSYmKEZlLmNvZGVOYW1lPUguV29ya2Jvb2suV0JQcm9wcy5Db2RlTmFtZSxkZWxldGUgRmUuQ29kZU5hbWUpKSx3ZVt3ZS5sZW5ndGhdPV9pKCJ3b3JrYm9va1ByIixudWxsLEZlKSxILldvcmtib29rJiZILldvcmtib29rLlByb3RlY3Rpb24mJih3ZVt3ZS5sZW5ndGhd''@;'; + put 'put ''PWZ1bmN0aW9uIFp4KEgpe3ZhciByZT17fTtyZXR1cm4gSC5sb2NrU3RydWN0dXJlJiYocmUubG9ja1N0cnVjdHVyZT0xKSxILmxvY2tXaW5kb3dzJiYocmUubG9ja1dpbmRvd3M9MSksSC5lbmNyeXB0aW9uJiYoSC5lbmNyeXB0aW9uLmFsZ28mJihyZS53b3JrYm9va0FsZ29yaXRobU5hbWU9''@;'; + put 'put ''SC5lbmNyeXB0aW9uLmFsZ28pLEguZW5jcnlwdGlvbi5oYXNoJiYocmUud29ya2Jvb2tIYXNoVmFsdWU9SC5lbmNyeXB0aW9uLmhhc2gpLEguZW5jcnlwdGlvbi5zYWx0JiYocmUud29ya2Jvb2tTYWx0VmFsdWU9SC5lbmNyeXB0aW9uLnNhbHQpLEguZW5jcnlwdGlvbi5zcGluJiYocmUud29y''@;'; + put 'put ''a2Jvb2tTcGluQ291bnQ9SC5lbmNyeXB0aW9uLnNwaW4pKSxfaSgid29ya2Jvb2tQcm90ZWN0aW9uIixudWxsLHJlKX0oSC5Xb3JrYm9vay5Qcm90ZWN0aW9uKSk7dmFyIFplPUguV29ya2Jvb2smJkguV29ya2Jvb2suU2hlZXRzfHxbXSxqZT0wO2lmKFplJiZaZVswXSYmWmVbMF0uSGlkZGVu''@;'; + put 'put ''KXtmb3Iod2Vbd2UubGVuZ3RoXT0iPGJvb2tWaWV3cz4iLGplPTA7amUhPUguU2hlZXROYW1lcy5sZW5ndGgmJlplW2plXSYmWmVbamVdLkhpZGRlbjsrK2plKTtqZT09SC5TaGVldE5hbWVzLmxlbmd0aCYmKGplPTApLHdlW3dlLmxlbmd0aF09Jzx3b3JrYm9va1ZpZXcgZmlyc3RTaGVldD0i''@;'; + put 'put ''JytqZSsnIiBhY3RpdmVUYWI9IicramUrJyIvPicsd2Vbd2UubGVuZ3RoXT0iPC9ib29rVmlld3M+In1mb3Iod2Vbd2UubGVuZ3RoXT0iPHNoZWV0cz4iLGplPTA7amUhPUguU2hlZXROYW1lcy5sZW5ndGg7KytqZSl7dmFyIFllPXtuYW1lOlJyKEguU2hlZXROYW1lc1tqZV0uc2xpY2UoMCwz''@;'; + put 'put ''MSkpfTtpZihZZS5zaGVldElkPSIiKyhqZSsxKSxZZVsicjppZCJdPSJySWQiKyhqZSsxKSxaZVtqZV0pc3dpdGNoKFplW2plXS5IaWRkZW4pe2Nhc2UgMTpZZS5zdGF0ZT0iaGlkZGVuIjticmVhaztjYXNlIDI6WWUuc3RhdGU9InZlcnlIaWRkZW4ifXdlW3dlLmxlbmd0aF09X2koInNoZWV0''@;'; + put 'put ''IixudWxsLFllKX1yZXR1cm4gd2Vbd2UubGVuZ3RoXT0iPC9zaGVldHM+IixILkV4dGVybmFsV0ImJkguRXh0ZXJuYWxXQi5sZW5ndGgmJih3ZVt3ZS5sZW5ndGhdPSI8ZXh0ZXJuYWxSZWZlcmVuY2VzPiIsKEguRXh0ZXJuYWxXQnx8W10pLmZvckVhY2goZnVuY3Rpb24oTXQseHQpe3ZhciBS''@;'; + put 'put ''dD1YdChYLndicmVscywtMSwiZXh0ZXJuYWxMaW5rcy9leHRlcm5hbExpbmsiKyh4dCsxKSsiLnhtbCIscHQuWExJTkspO3dlW3dlLmxlbmd0aF09JzxleHRlcm5hbFJlZmVyZW5jZSByOmlkPSJySWQnK1J0KyciLz4nfSksd2Vbd2UubGVuZ3RoXT0iPC9leHRlcm5hbFJlZmVyZW5jZXM+Iiks''@;'; + put 'put ''eGUmJih3ZVt3ZS5sZW5ndGhdPSI8ZGVmaW5lZE5hbWVzPiIsSC5Xb3JrYm9vayYmSC5Xb3JrYm9vay5OYW1lcyYmSC5Xb3JrYm9vay5OYW1lcy5mb3JFYWNoKGZ1bmN0aW9uKE10KXt2YXIgeHQ9e25hbWU6TXQuTmFtZX07TXQuQ29tbWVudCYmKHh0LmNvbW1lbnQ9TXQuQ29tbWVudCksbnVs''@;'; + put 'put ''bCE9TXQuU2hlZXQmJih4dC5sb2NhbFNoZWV0SWQ9IiIrTXQuU2hlZXQpLE10LkhpZGRlbiYmKHh0LmhpZGRlbj0iMSIpLE10LlJlZiYmKHdlW3dlLmxlbmd0aF09X2koImRlZmluZWROYW1lIixScihNdC5SZWYpLHh0KSl9KSx3ZVt3ZS5sZW5ndGhdPSI8L2RlZmluZWROYW1lcz4iKSxYJiZY''@;'; + put 'put ''LnBpdm90cyYmWC5waXZvdHMubGVuZ3RoPjAmJih3ZS5wdXNoKCI8cGl2b3RDYWNoZXM+IiksWC5waXZvdHMuZm9yRWFjaChmdW5jdGlvbihNdCx4dCl7d2UucHVzaCgnPHBpdm90Q2FjaGUgY2FjaGVJZD0iJysoeHQrMSkrJyIgcjppZD0icklkJytNdFsyXSsnIi8+Jyl9KSx3ZS5wdXNoKCI8''@;'; + put 'put ''L3Bpdm90Q2FjaGVzPiIpKSx3ZS5sZW5ndGg+MiYmKHdlW3dlLmxlbmd0aF09Ijwvd29ya2Jvb2s+Iix3ZVsxXT13ZVsxXS5yZXBsYWNlKCIvPiIsIj4iKSksd2Uuam9pbigiIil9ZnVuY3Rpb24gV18oSCxyZSl7cmV0dXJuIHJlfHwocmU9UmkoMTI3KSkscmUud3JpdGVfc2hpZnQoNCxILkhp''@;'; + put 'put ''ZGRlbikscmUud3JpdGVfc2hpZnQoNCxILmlUYWJJRCksenAoSC5zdHJSZWxJRCxyZSksbHUoSC5uYW1lLnNsaWNlKDAsMzEpLHJlKSxyZS5sZW5ndGg+cmUubD9yZS5zbGljZSgwLHJlLmwpOnJlfWZ1bmN0aW9uIEdtKEgscmUpe3ZhciBYPXt9O3JldHVybiBILnJlYWRfc2hpZnQoNCksWC5B''@;'; + put 'put ''cmNoSUQ9SC5yZWFkX3NoaWZ0KDQpLEgubCs9cmUtOCxYfWZ1bmN0aW9uIFlfKEgscmUpe3ZhciBYPUoyKCk7cmV0dXJuIEMwKFgsIkJydEJlZ2luQm9vayIpLEMwKFgsIkJydEZpbGVWZXJzaW9uIixmdW5jdGlvbiBGaChILHJlKXtyZXx8KHJlPVJpKDEyNykpO2Zvcih2YXIgWD0wOzQhPVg7''@;'; + put 'put ''KytYKXJlLndyaXRlX3NoaWZ0KDQsMCk7cmV0dXJuIGx1KCJTaGVldEpTIixyZSksbHUoVS52ZXJzaW9uLHJlKSxsdShVLnZlcnNpb24scmUpLGx1KCI3MjYyIixyZSkscmUubGVuZ3RoPnJlLmw/cmUuc2xpY2UoMCxyZS5sKTpyZX0oKSksQzAoWCwiQnJ0V2JQcm9wIixmdW5jdGlvbiBMdShI''@;'; + put 'put ''LHJlKXtyZXx8KHJlPVJpKDcyKSk7dmFyIFg9MDtyZXR1cm4gSCYmSC5maWx0ZXJQcml2YWN5JiYoWHw9OCkscmUud3JpdGVfc2hpZnQoNCxYKSxyZS53cml0ZV9zaGlmdCg0LDApLEVNKEgmJkguQ29kZU5hbWV8fCJUaGlzV29ya2Jvb2siLHJlKSxyZS5zbGljZSgwLHJlLmwpfShILldvcmti''@;'; + put 'put ''b29rJiZILldvcmtib29rLldCUHJvcHN8fG51bGwpKSxmdW5jdGlvbiBrQShILHJlKXtpZihyZS5Xb3JrYm9vayYmcmUuV29ya2Jvb2suU2hlZXRzKXtmb3IodmFyIFg9cmUuV29ya2Jvb2suU2hlZXRzLHdlPTAseGU9LTEsRmU9LTE7d2U8WC5sZW5ndGg7Kyt3ZSkhWFt3ZV18fCFYW3dlXS5I''@;'; + put 'put ''aWRkZW4mJi0xPT14ZT94ZT13ZToxPT1YW3dlXS5IaWRkZW4mJi0xPT1GZSYmKEZlPXdlKTtGZT54ZXx8KEMwKEgsIkJydEJlZ2luQm9va1ZpZXdzIiksQzAoSCwiQnJ0Qm9va1ZpZXciLGZ1bmN0aW9uIGtmKEgscmUpe3JldHVybiByZXx8KHJlPVJpKDI5KSkscmUud3JpdGVfc2hpZnQoLTQs''@;'; + put 'put ''MCkscmUud3JpdGVfc2hpZnQoLTQsNDYwKSxyZS53cml0ZV9zaGlmdCg0LDI4ODAwKSxyZS53cml0ZV9zaGlmdCg0LDE3NjAwKSxyZS53cml0ZV9zaGlmdCg0LDUwMCkscmUud3JpdGVfc2hpZnQoNCxIKSxyZS53cml0ZV9zaGlmdCg0LEgpLHJlLndyaXRlX3NoaWZ0KDEsMTIwKSxyZS5sZW5n''@;'; + put 'put ''dGg+cmUubD9yZS5zbGljZSgwLHJlLmwpOnJlfSh4ZSkpLEMwKEgsIkJydEVuZEJvb2tWaWV3cyIpKX19KFgsSCksZnVuY3Rpb24gSmkoSCxyZSl7QzAoSCwiQnJ0QmVnaW5CdW5kbGVTaHMiKTtmb3IodmFyIFg9MDtYIT1yZS5TaGVldE5hbWVzLmxlbmd0aDsrK1gpQzAoSCwiQnJ0QnVuZGxl''@;'; + put 'put ''U2giLFdfKHtIaWRkZW46cmUuV29ya2Jvb2smJnJlLldvcmtib29rLlNoZWV0cyYmcmUuV29ya2Jvb2suU2hlZXRzW1hdJiZyZS5Xb3JrYm9vay5TaGVldHNbWF0uSGlkZGVufHwwLGlUYWJJRDpYKzEsc3RyUmVsSUQ6InJJZCIrKFgrMSksbmFtZTpyZS5TaGVldE5hbWVzW1hdfSkpO0MwKEgs''@;'; + put 'put ''IkJydEVuZEJ1bmRsZVNocyIpfShYLEgpLEMwKFgsIkJydEVuZEJvb2siKSxYLmVuZCgpfWZ1bmN0aW9uIFF4KEgscmUsWCx3ZSx4ZSl7cmV0dXJuKCIuYmluIj09PXJlLnNsaWNlKC00KT9UeDpLQikoSCxYLHdlLHhlKX1mdW5jdGlvbiBTUChILHJlLFgsd2UseGUpe3JldHVybigiLmJpbiI9''@;'; + put 'put ''PT1yZS5zbGljZSgtNCk/UjM6cFApKEgsWCx3ZSx4ZSl9ZnVuY3Rpb24gTVAoSCxyZSxYKXtyZXR1cm4oIi5iaW4iPT09cmUuc2xpY2UoLTQpP0xSOnFNKShILFgpfWZ1bmN0aW9uIEVQKEgscmUsWCl7cmV0dXJuKCIuYmluIj09PXJlLnNsaWNlKC00KT9VYjpXYikoSCxYKX12YXIgWF89Lyhb''@;'; + put 'put ''XHc6XSspPSgoPzoiKShbXiJdKikoPzoiKXwoPzonKShbXiddKikoPzonKSkvZyxYeD0vKFtcdzpdKyk9KCg/OiIpKD86W14iXSopKD86Iil8KD86JykoPzpbXiddKikoPzonKSkvO2Z1bmN0aW9uIG5jKEgscmUpe3ZhciBYPUguc3BsaXQoL1xzKy8pLHdlPVtdO2lmKHJlfHwod2VbMF09WFsw''@;'; + put 'put ''XSksMT09PVgubGVuZ3RoKXJldHVybiB3ZTt2YXIgRmUsWmUsWWUseGU9SC5tYXRjaChYXyk7aWYoeGUpZm9yKFllPTA7WWUhPXhlLmxlbmd0aDsrK1llKS0xPT09KFplPShGZT14ZVtZZV0ubWF0Y2goWHgpKVsxXS5pbmRleE9mKCI6IikpP3dlW0ZlWzFdXT1GZVsyXS5zbGljZSgxLEZlWzJd''@;'; + put 'put ''Lmxlbmd0aC0xKTp3ZVsieG1sbnM6Ij09PUZlWzFdLnNsaWNlKDAsNik/InhtbG5zIitGZVsxXS5zbGljZSg2KTpGZVsxXS5zbGljZShaZSsxKV09RmVbMl0uc2xpY2UoMSxGZVsyXS5sZW5ndGgtMSk7cmV0dXJuIHdlfWZ1bmN0aW9uIEt4KEgpe3ZhciBYPXt9O2lmKDE9PT1ILnNwbGl0KC9c''@;'; + put 'put ''cysvKS5sZW5ndGgpcmV0dXJuIFg7dmFyIHhlLEZlLGplLHdlPUgubWF0Y2goWF8pO2lmKHdlKWZvcihqZT0wO2plIT13ZS5sZW5ndGg7KytqZSktMT09PShGZT0oeGU9d2VbamVdLm1hdGNoKFh4KSlbMV0uaW5kZXhPZigiOiIpKT9YW3hlWzFdXT14ZVsyXS5zbGljZSgxLHhlWzJdLmxlbmd0''@;'; + put 'put ''aC0xKTpYWyJ4bWxuczoiPT09eGVbMV0uc2xpY2UoMCw2KT8ieG1sbnMiK3hlWzFdLnNsaWNlKDYpOnhlWzFdLnNsaWNlKEZlKzEpXT14ZVsyXS5zbGljZSgxLHhlWzJdLmxlbmd0aC0xKTtyZXR1cm4gWH1mdW5jdGlvbiBXbShIKXt2YXIgcmU9e307aWYoSC5EZWZhdWx0Um93SGVpZ2h0KXt2''@;'; + put 'put ''YXIgWD17aHB4OjQqcGFyc2VJbnQoSC5EZWZhdWx0Um93SGVpZ2h0KS8zfTtKOChYKSxyZS5yb3c9WH1pZihILkRlZmF1bHRDb2xXaWR0aCl7dmFyIHdlPXt3cHg6NCpwYXJzZUludChILkRlZmF1bHRDb2xXaWR0aCkvM307eWMod2UpLHJlLmNvbD13ZX1yZXR1cm4gcmV9ZnVuY3Rpb24gSGgo''@;'; + put 'put ''SCxyZSxYLHdlKXt2YXIgeGU9d2U7c3dpdGNoKChYWzBdLm1hdGNoKC9kdDpkdD0iKFtcdy5dKykiLyl8fFsiIiwiIl0pWzFdKXtjYXNlImJvb2xlYW4iOnhlPURpKHdlKTticmVhaztjYXNlImkyIjpjYXNlImludCI6eGU9cGFyc2VJbnQod2UsMTApO2JyZWFrO2Nhc2UicjQiOmNhc2UiZmxv''@;'; + put 'put ''YXQiOnhlPXBhcnNlRmxvYXQod2UpO2JyZWFrO2Nhc2UiZGF0ZSI6Y2FzZSJkYXRlVGltZS50eiI6eGU9ZG4od2UpO2JyZWFrO2Nhc2UiaTgiOmNhc2Uic3RyaW5nIjpjYXNlImZpeGVkIjpjYXNlInV1aWQiOmNhc2UiYmluLmJhc2U2NCI6YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3Io''@;'; + put 'put ''ImJhZCBjdXN0cHJvcDoiK1hbMF0pfUhbZ3IocmUpXT14ZX12YXIgS189ezA6Ik5vbmUiLDE6IlNpbmdsZSIsMjoiRG91YmxlIiwzMzoiU2luZ2xlQWNjb3VudGluZyIsMzQ6IkRvdWJsZUFjY291bnRpbmcifSxxeD1ldChLXyk7ZnVuY3Rpb24gZVQoSCxyZSxYLHdlKXtpZih3ZS5jZWxsU3R5''@;'; + put 'put ''bGVzKXtpZihYPVgucmVwbGFjZSgvXHMrL2csIiAiKSxyZS5JbnRlcmlvcil7dmFyIHhlPXJlLkludGVyaW9yO3hlLlBhdHRlcm4mJih4ZS5wYXR0ZXJuVHlwZT1WUlt4ZS5QYXR0ZXJuXXx8eGUuUGF0dGVybikseGUuQ29sb3ImJnhlLkNvbG9yLm1hdGNoKC8jWzAtOUEtRmEtZl0qLykmJih4''@;'; + put 'put ''ZS5mZ0NvbG9yPXtyZ2I6eGUuQ29sb3Iuc2xpY2UoMSl9KX0hZnVuY3Rpb24gRDYoSCl7IUguQm9yZGVyc3x8KEguQm9yZGVycy5mb3JFYWNoKGZ1bmN0aW9uKHJlKXt2YXIgWD1yZS5Qb3NpdGlvbi50b0xvd2VyQ2FzZSgpO0hbWF09e3N0eWxlOnRUKHJlLkxpbmVTdHlsZSwrcmUuV2VpZ2h0''@;'; + put 'put ''KSxjb2xvcjp7cmdiOihyZS5Db2xvcnx8IiMwMDAwMDAiKS5zbGljZSgxKX19fSksZGVsZXRlIEguQm9yZGVycyl9KHJlKTt2YXIgWmUsRmU9WC5tYXRjaCgvPCg/Olx3KzopP0ZvbnRcc1tePl0qPi8pO0ZlJiYoRGkoKFplPWVuKEZlWzBdKSkuQm9sZCkmJihyZS5Cb2xkPSEwKSxEaShaZS5J''@;'; + put 'put ''dGFsaWMpJiYocmUuSXRhbGljPSEwKSxEaShaZS5TdHJpa2VUaHJvdWdoKSYmKHJlLlN0cmlrZT0hMCksWmUuU2l6ZSYmKHJlLlNpemU9K1plLlNpemUpLHJlLkZvbnROYW1lPVplLkZvbnROYW1lP1plLkZvbnROYW1lOiJBcmlhbCIsWmUuVW5kZXJsaW5lJiYocmUuVW5kZXJsaW5lPXF4W1pl''@;'; + put 'put ''LlVuZGVybGluZV0pLFplLkNvbG9yJiYocmUuUkdCPVplLkNvbG9yLnNsaWNlKC02KSkpLHJlLkFsaWdubWVudCYmKHJlLmFsaWdubWVudD17fSxyZS5BbGlnbm1lbnQuVmVydGljYWwmJihyZS5hbGlnbm1lbnQudmVydGljYWw9cmUuQWxpZ25tZW50LlZlcnRpY2FsLnRvTG93ZXJDYXNlKCkp''@;'; + put 'put ''LHJlLkFsaWdubWVudC5Ib3Jpem9udGFsJiYocmUuYWxpZ25tZW50Lmhvcml6b250YWw9cmUuQWxpZ25tZW50Lkhvcml6b250YWwudG9Mb3dlckNhc2UoKSksRGkocmUuQWxpZ25tZW50LldyYXBUZXh0fHwiMCIpP3JlLmFsaWdubWVudC53cmFwVGV4dD0hMDpudWxsPT1yZS5BbGlnbm1lbnQu''@;'; + put 'put ''V3JhcFRleHQmJmRlbGV0ZSByZS5hbGlnbm1lbnQud3JhcFRleHQsRGkocmUuQWxpZ25tZW50LlNocmlua1RvRml0fHwiMCIpJiYocmUuYWxpZ25tZW50LnNocmlua1RvRml0PSEwKSwrcmUuQWxpZ25tZW50LkluZGVudCYmKHJlLmFsaWdubWVudC5pbmRlbnQ9K3JlLkFsaWdubWVudC5JbmRl''@;'; + put 'put ''bnR8fDApLCtyZS5BbGlnbm1lbnQuUm90YXRlJiYocmUuYWxpZ25tZW50LnRleHRSb3RhdGlvbj0rcmUuQWxpZ25tZW50LlJvdGF0ZXx8MCkpfUhbcmUuSURdPXJlLCgiRGVmYXVsdCI9PXJlLklEfHwiTm9ybWFsIj09cmUuTmFtZSkmJlMzKHJlKX1mdW5jdGlvbiB0VChILHJlKXtzd2l0Y2go''@;'; + put 'put ''SCl7Y2FzZSJOb25lIjpyZXR1cm4ibm9uZSI7Y2FzZSJEYXNoIjpyZXR1cm4iZGFzaGVkIjtjYXNlIkRvdCI6cmV0dXJuImRvdHRlZCI7Y2FzZSJEYXNoRG90IjpyZXR1cm4iZGFzaERvdCI7Y2FzZSJEYXNoRG90RG90IjpyZXR1cm4iZGFzaERvdERvdCI7Y2FzZSJTbGFudERhc2hEb3QiOnJl''@;'; + put 'put ''dHVybiJzbGFudERhc2hEb3QiO2Nhc2UiRG91YmxlIjpyZXR1cm4iZG91YmxlIjtjYXNlIkNvbnRpbnVvdXMiOnN3aXRjaCgrcmV8fDApe2Nhc2UgMDpyZXR1cm4iaGFpciI7Y2FzZSAxOnJldHVybiJ0aGluIjtjYXNlIDI6cmV0dXJuIm1lZGl1bSI7Y2FzZSAzOnJldHVybiJ0aGljayJ9cmV0''@;'; + put 'put ''dXJuInRoaW4ifXJldHVybiBIfWZ1bmN0aW9uICRfKEgscmUsWCx3ZSx4ZSxGZSxaZSxqZSxZZSxNdCl7dmFyIHh0PSJHZW5lcmFsIixSdD13ZS5TdHlsZUlELFV0PXt9O010PU10fHx7fTt2YXIgbm49W10sQ249MDtmb3Iodm9pZCAwPT09UnQmJmplJiYoUnQ9amUuU3R5bGVJRCksdm9pZCAw''@;'; + put 'put ''PT09UnQmJlplJiYoUnQ9WmUuU3R5bGVJRCk7dm9pZCAwIT09RmVbUnRdOyl7dmFyIER0PUZlW1J0XTtpZigiR2VuZXJhbCI9PXh0JiZEdC5uZiYmKHh0PUZlW1J0XS5uZiksRHQuSW50ZXJpb3ImJm5uLnB1c2goRmVbUnRdLkludGVyaW9yKSxEdC5hbGlnbm1lbnQmJihVdC5hbGlnbm1lbnR8''@;'; + put 'put ''fChVdC5hbGlnbm1lbnQ9bG4oRHQuYWxpZ25tZW50KSkpLG51bGw9PVV0LmJvbGQmJkR0LkJvbGQmJihVdC5ib2xkPSEwKSxudWxsPT1VdC5pdGFsaWMmJkR0Lkl0YWxpYyYmKFV0Lml0YWxpYz0hMCksbnVsbD09VXQuc3RyaWtlJiZEdC5TdHJpa2UmJihVdC5zdHJpa2U9ITApLG51bGw9PVV0''@;'; + put 'put ''LnN6JiZEdC5TaXplJiYoVXQuc3o9RHQuU2l6ZSksbnVsbD09VXQubmFtZSYmRHQuRm9udE5hbWUmJihVdC5uYW1lPUR0LkZvbnROYW1lKSxudWxsPT1VdC51bmRlcmxpbmUmJkR0LlVuZGVybGluZSYmKFV0LnVuZGVybGluZT1EdC5VbmRlcmxpbmUpLG51bGw9PVV0LmNvbG9yJiZEdC5SR0Im''@;'; + put 'put ''JihVdC5jb2xvcj17cmdiOkR0LlJHQn0pLFsidG9wIiwiYm90dG9tIiwibGVmdCIsInJpZ2h0Il0uZm9yRWFjaChmdW5jdGlvbihPbil7bnVsbD09VXRbT25dJiZEdFtPbl0mJihVdFtPbl09bG4oRHRbT25dKSl9KSwiRGVmYXVsdCI9PVJ0KWJyZWFrO1J0PUR0LlBhcmVudHx8IkRlZmF1bHQi''@;'; + put 'put ''fVV0Lm5hbWV8fChVdC5uYW1lPUZlLkRlZmF1bHQmJkZlLkRlZmF1bHQuRm9udE5hbWV8fCJBcmlhbCIpLFV0LnN6fHwoVXQuc3o9RmUuRGVmYXVsdCYmRmUuRGVmYXVsdC5TaXplfHwxMik7dmFyIHp0PSIiO2lmKEh8fHdlLkZvcm11bGF8fCJTdHJpbmciPT1YLlR5cGV8fCJOdW1iZXIiPT1Y''@;'; + put 'put ''LlR5cGUpc3dpdGNoKFguVHlwZSl7Y2FzZSJCb29sZWFuIjp3ZS50PSJiIix3ZS52PURpKEgpO2JyZWFrO2Nhc2UiU3RyaW5nIjp3ZS50PSJzIix6dD1tMChncihIKSksd2Uudj1ILmluZGV4T2YoIjwiKT4tMT9ncihyZXx8SCkucmVwbGFjZSgvPFteXSo/Pi9nLCIiKTp6dCxILmluZGV4T2Yo''@;'; + put 'put ''IjwiKT4tMSYmKHdlLlI9dXMuaHRtbF90b19ycyhncihIKSkpO2JyZWFrO2Nhc2UiRGF0ZVRpbWUiOiJaIiE9SC5zbGljZSgtMSkmJihIKz0iWiIpLHdlLnY9KGRuKEgpLW5ldyBEYXRlKERhdGUuVVRDKDE4OTksMTEsMzApKSkvODY0ZTUsd2UudiE9d2Uudj93ZS52PWdyKEgpOndlLnY8NjAm''@;'; + put 'put ''Jih3ZS52PXdlLnYtMSksKCF4dHx8IkdlbmVyYWwiPT14dCkmJih4dD0ieXl5eS1tbS1kZCIpO2Nhc2UiTnVtYmVyIjp2b2lkIDA9PT13ZS52JiYod2Uudj0rSCksd2UudHx8KHdlLnQ9Im4iKTticmVhaztjYXNlIkVycm9yIjp3ZS50PSJlIix3ZS52PV9oW0hdLCExIT09TXQuY2VsbFRleHQm''@;'; + put 'put ''Jih3ZS53PUgpO2JyZWFrO2RlZmF1bHQ6IiI9PUgmJiIiPT1yZT93ZS50PSJ6Ijood2UudD0icyIsenQ9bTAoZ3IoSCkpLHdlLnY9SC5pbmRleE9mKCI8Iik+LTE/Z3IocmV8fEgpLnJlcGxhY2UoLzxbXl0qPz4vZywiIik6enQsSC5pbmRleE9mKCI8Iik+LTEmJih3ZS5SPXVzLmh0bWxfdG9f''@;'; + put 'put ''cnMoZ3IoSCkpKSl9ZWxzZSB3ZS50PSJ6IixkZWxldGUgd2UudjtpZihmdW5jdGlvbiAkeChILHJlLFgpe2lmKCJ6IiE9PUgudCl7aWYoIVh8fCExIT09WC5jZWxsVGV4dCl0cnl7SC53PSJlIj09PUgudD9ILnd8fE4xW0gudl06IkdlbmVyYWwiPT09cmU/Im4iPT09SC50PygwfEgudik9PT1I''@;'; + put 'put ''LnY/Ri5fZ2VuZXJhbF9pbnQoSC52KTpGLl9nZW5lcmFsX251bShILnYpOkYuX2dlbmVyYWwoSC52KTpmdW5jdGlvbiBZbShILHJlKXt2YXIgWD1DZVtIXXx8Z3IoSCk7cmV0dXJuIkdlbmVyYWwiPT09WD9GLl9nZW5lcmFsKHJlKTpGLmZvcm1hdChYLHJlKX0ocmV8fCJHZW5lcmFsIixILnYp''@;'; + put 'put ''fWNhdGNoKEZlKXtpZihYLldURil0aHJvdyBGZX10cnl7dmFyIHdlPUNlW3JlXXx8cmV8fCJHZW5lcmFsIjtpZihYLmNlbGxORiYmKEguej13ZSksWC5jZWxsRGF0ZXMmJiJuIj09SC50JiZGLmlzX2RhdGUod2UpKXt2YXIgeGU9Ri5wYXJzZV9kYXRlX2NvZGUoSC52KTt4ZSYmKEgudD0iZCIs''@;'; + put 'put ''SC52PW5ldyBEYXRlKHhlLnkseGUubS0xLHhlLmQseGUuSCx4ZS5NLHhlLlMseGUudSkpfX1jYXRjaChGZSl7aWYoWC5XVEYpdGhyb3cgRmV9fX0od2UseHQsTXQpLCExIT09TXQuY2VsbEZvcm11bGEpaWYod2UuRm9ybXVsYSl7dmFyIFBuPWdyKHdlLkZvcm11bGEpOzYxPT1Qbi5jaGFyQ29k''@;'; + put 'put ''ZUF0KDApJiYoUG49UG4uc2xpY2UoMSkpLHdlLmY9RDMoUG4seGUpLGRlbGV0ZSB3ZS5Gb3JtdWxhLCJSQyI9PXdlLkFycmF5UmFuZ2U/d2UuRj1EMygiUkM6UkMiLHhlKTp3ZS5BcnJheVJhbmdlJiYod2UuRj1EMyh3ZS5BcnJheVJhbmdlLHhlKSxZZS5wdXNoKFtGbyh3ZS5GKSx3ZS5GXSkp''@;'; + put 'put ''fWVsc2UgZm9yKENuPTA7Q248WWUubGVuZ3RoOysrQ24peGUucj49WWVbQ25dWzBdLnMuciYmeGUucjw9WWVbQ25dWzBdLmUuciYmeGUuYz49WWVbQ25dWzBdLnMuYyYmeGUuYzw9WWVbQ25dWzBdLmUuYyYmKHdlLkY9WWVbQ25dWzFdKTtpZihNdC5jZWxsU3R5bGVzJiYobm4uZm9yRWFjaChm''@;'; + put 'put ''dW5jdGlvbihPbil7IVV0LnBhdHRlcm5UeXBlJiZPbi5wYXR0ZXJuVHlwZSYmKFV0LnBhdHRlcm5UeXBlPU9uLnBhdHRlcm5UeXBlKSwhVXQuZmdDb2xvciYmT24uZmdDb2xvciYmKFV0LmZnQ29sb3I9T24uZmdDb2xvcil9KSx3ZS5zPVV0KSx2b2lkIDAhPT13ZS5TdHlsZUlEJiYod2UuaXhm''@;'; + put 'put ''ZT13ZS5TdHlsZUlEKSx3ZS5SJiZ3ZS5zKXt2YXIgVG49bG4od2Uucyk7ZGVsZXRlIFRuLmJvbGQsZGVsZXRlIFRuLml0YWxpYyxkZWxldGUgVG4udW5kZXJsaW5lLGRlbGV0ZSBUbi5zdHJpa2Usd2UuUi5mb3JFYWNoKGZ1bmN0aW9uKE9uKXtPbi5zPWJuKGxuKFRuKSxPbi5zKX0pfX1mdW5j''@;'; + put 'put ''dGlvbiBQMyhIKXtILnQ9SC52fHwiIixILnQ9SC50LnJlcGxhY2UoL1xyXG4vZywiXG4iKS5yZXBsYWNlKC9cci9nLCJcbiIpLEgudj1ILnc9SC5peGZlPXZvaWQgMH1mdW5jdGlvbiBDNShIKXtpZihJZSYmQnVmZmVyLmlzQnVmZmVyKEgpKXJldHVybiBILnRvU3RyaW5nKCJ1dGY4Iik7aWYo''@;'; + put 'put ''InN0cmluZyI9PXR5cGVvZiBIKXJldHVybiBIO2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgVWludDhBcnJheSYmSCBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpcmV0dXJuIFcwKHRlKFAoSCkpKTt0aHJvdyBuZXcgRXJyb3IoIkJhZCBpbnB1dCBmb3JtYXQ6IGV4cGVjdGVkIEJ1ZmZlciBvciBzdHJp''@;'; + put 'put ''bmciKX12YXIgTmg9LzwoXC8/KShbXlxzPz48IVwvOl0qOnwpKFteXHM/PD46XC9cW10rKSg/Oltccz86PFwvXVtePl0qKT8+L2dtO2Z1bmN0aW9uIHFfKEgscmUpe3ZhciBYPXJlfHx7fSx3ZT1jZShDNShIKSk7KCJiaW5hcnkiPT1YLnR5cGV8fCJhcnJheSI9PVgudHlwZXx8ImJhc2U2NCI9''@;'; + put 'put ''PVgudHlwZSkmJih3ZT0idW5kZWZpbmVkIiE9dHlwZW9mIGNwdGFibGU/Y3B0YWJsZS51dGlscy5kZWNvZGUoNjUwMDEsSih3ZSkpOlcwKHdlKSk7dmFyIHhlPXdlLnNsaWNlKDAsMTAyNCkudG9Mb3dlckNhc2UoKSxGZT0hMTtpZigoMTAyMyZ4ZS5pbmRleE9mKCI+IikpPk1hdGgubWluKDEw''@;'; + put 'put ''MjMmeGUuaW5kZXhPZigiLCIpLDEwMjMmeGUuaW5kZXhPZigiOyIpKSl7dmFyIFplPWxuKFgpO3JldHVybiBaZS50eXBlPSJzdHJpbmciLEEzLnRvX3dvcmtib29rKHdlLFplKX1pZigtMT09eGUuaW5kZXhPZigiPD94bWwiKSYmWyJodG1sIiwidGFibGUiLCJoZWFkIiwibWV0YSIsInNjcmlw''@;'; + put 'put ''dCIsInN0eWxlIiwiZGl2Il0uZm9yRWFjaChmdW5jdGlvbihNYyl7eGUuaW5kZXhPZigiPCIrTWMpPj0wJiYoRmU9ITApfSksRmUpcmV0dXJuIHVzLnRvX3dvcmtib29rKHdlLFgpO3ZhciBqZSxNdCx3aSxZZT1bXSx4dD17fSxSdD1bXSxVdD1YLmRlbnNlP1tdOnt9LG5uPSIiLENuPXt9LER0''@;'; + put 'put ''PXt9LHp0PXt9LFBuPW5jKCc8RGF0YSBzczpUeXBlPSJTdHJpbmciPicpLFRuPTAsT249MCxZbj0wLE1yPXtzOntyOjJlNixjOjJlNn0sZTp7cjowLGM6MH19LGFpPXt9LHlyPXt9LGFyPSIiLEdyPTAsenI9W10scXI9e30sb2k9e30sY3I9MCxkaT1bXSx2MD17fSxVaT1bXSx0bz17fSxBMD1b''@;'; + put 'put ''XSxZcj0hMSxFaT1bXSxoaT1bXSxOcj17fSxraT0wLE4wPTAsdDA9e1NoZWV0czpbXSxXQlByb3BzOntkYXRlMTkwNDohMX19LGlvPXt9O05oLmxhc3RJbmRleD0wLHdlPXdlLnJlcGxhY2UoLzwhLS0oW1xzXFNdKj8pLS0+L2dtLCIiKTtmb3IodmFyIG9hPSIiO2plPU5oLmV4ZWMod2UpOylz''@;'; + put 'put ''d2l0Y2goamVbM109KG9hPWplWzNdKS50b0xvd2VyQ2FzZSgpKXtjYXNlImRhdGEiOmlmKCJkYXRhIj09b2Epe2lmKCIvIj09PWplWzFdKXtpZigoTXQ9WWUucG9wKCkpWzBdIT09amVbM10pdGhyb3cgbmV3IEVycm9yKCJCYWQgc3RhdGU6ICIrTXQuam9pbigifCIpKX1lbHNlIi8iIT09amVb''@;'; + put 'put ''MF0uY2hhckF0KGplWzBdLmxlbmd0aC0yKSYmWWUucHVzaChbamVbM10sITBdKTticmVha31pZihZZVtZZS5sZW5ndGgtMV1bMV0pYnJlYWs7Ii8iPT09amVbMV0/JF8od2Uuc2xpY2UoVG4samUuaW5kZXgpLGFyLFBuLCJjb21tZW50Ij09WWVbWWUubGVuZ3RoLTFdWzBdP3RvOkR0LHtjOk9u''@;'; + put 'put ''LHI6WW59LGFpLEEwW09uXSx6dCxFaSxYKTooYXI9IiIsUG49bmMoamVbMF0pLFRuPWplLmluZGV4K2plWzBdLmxlbmd0aCk7YnJlYWs7Y2FzZSJjZWxsIjppZigiLyI9PT1qZVsxXXx8Ii8+Ij09PWplWzBdLnNsaWNlKC0yKSl7aWYoIi8+Ij09PWplWzBdLnNsaWNlKC0yKSl7aWYoKER0PUt4''@;'; + put 'put ''KGplWzBdKSkuSW5kZXgmJihPbj0rRHQuSW5kZXgtMSksT248TXIucy5jJiYoTXIucy5jPU9uKSxPbj5Nci5lLmMmJihNci5lLmM9T24pLFVpPVtdLCFYLnNoZWV0U3R1YnMpeysrT247YnJlYWt9JF8oIiIsIiIse30sImNvbW1lbnQiPT1ZZVtZZS5sZW5ndGgtMV1bMF0/dG86RHQse2M6T24s''@;'; + put 'put ''cjpZbn0sYWksQTBbT25dLHp0LEVpLFgpfWlmKFVpLmxlbmd0aD4wJiYoRHQuYz1VaSksKCFYLnNoZWV0Um93c3x8WC5zaGVldFJvd3M+WW4pJiYodm9pZCAwIT09RHQudnx8WC5zaGVldFN0dWJzKSYmKFguZGVuc2U/KFV0W1luXXx8KFV0W1luXT1bXSksVXRbWW5dW09uXT1EdCk6VXRbX2Eo''@;'; + put 'put ''T24pK1hhKFluKV09RHQpLER0LkhSZWYmJihEdC5sPXtUYXJnZXQ6Z3IoRHQuSFJlZil9LER0LkhSZWZTY3JlZW5UaXAmJihEdC5sLlRvb2x0aXA9RHQuSFJlZlNjcmVlblRpcCksZGVsZXRlIER0LkhSZWYsZGVsZXRlIER0LkhSZWZTY3JlZW5UaXApLChEdC5NZXJnZUFjcm9zc3x8RHQuTWVy''@;'; + put 'put ''Z2VEb3duKSYmKGtpPU9uKygwfHBhcnNlSW50KER0Lk1lcmdlQWNyb3NzLDEwKSksTjA9WW4rKDB8cGFyc2VJbnQoRHQuTWVyZ2VEb3duLDEwKSksKGtpPk9ufHxOMD5ZbikmJnpyLnB1c2goe3M6e2M6T24scjpZbn0sZTp7YzpraSxyOk4wfX0pKSxYLnNoZWV0U3R1YnMpaWYoRHQuTWVyZ2VB''@;'; + put 'put ''Y3Jvc3N8fER0Lk1lcmdlRG93bil7Zm9yKHZhciAkMD1PbjskMDw9a2k7KyskMClmb3IodmFyIE5hPVluO05hPD1OMDsrK05hKSgkMD5Pbnx8TmE+WW4pJiYoWC5kZW5zZT8oVXRbTmFdfHwoVXRbTmFdPVtdKSxVdFtOYV1bJDBdPXt0OiJ6In0pOlV0W19hKCQwKStYYShOYSldPXt0OiJ6In0p''@;'; + put 'put ''O09uPWtpKzF9ZWxzZSsrT247ZWxzZSBEdC5NZXJnZUFjcm9zcz9Pbj1raSsxOisrT259ZWxzZShEdD1LeChqZVswXSkpLkluZGV4JiYoT249K0R0LkluZGV4LTEpLE9uPE1yLnMuYyYmKE1yLnMuYz1PbiksT24+TXIuZS5jJiYoTXIuZS5jPU9uKSwiLz4iPT09amVbMF0uc2xpY2UoLTIpJiYr''@;'; + put 'put ''K09uLFVpPVtdO2JyZWFrO2Nhc2Uicm93IjoiLyI9PT1qZVsxXXx8Ii8+Ij09PWplWzBdLnNsaWNlKC0yKT8oWW48TXIucy5yJiYoTXIucy5yPVluKSxZbj5Nci5lLnImJihNci5lLnI9WW4pLCIvPiI9PT1qZVswXS5zbGljZSgtMikmJih6dD1uYyhqZVswXSkpLkluZGV4JiYoWW49K3p0Lklu''@;'; + put 'put ''ZGV4LTEpLE9uPTAsKytZbik6KCh6dD1uYyhqZVswXSkpLkluZGV4JiYoWW49K3p0LkluZGV4LTEpLE5yPXt9LCgiMCI9PXp0LkF1dG9GaXRIZWlnaHR8fHp0LkhlaWdodCkmJihOci5ocHQ9cGFyc2VGbG9hdCh6dC5IZWlnaHQpLE5yLmhweD1BZihOci5ocHQpLGhpW1luXT1OciksIjEiPT16''@;'; + put 'put ''dC5IaWRkZW4mJihOci5oaWRkZW49ITAsaGlbWW5dPU5yKSk7YnJlYWs7Y2FzZSJ3b3Jrc2hlZXQiOmlmKCIvIj09PWplWzFdKXtpZigoTXQ9WWUucG9wKCkpWzBdIT09amVbM10pdGhyb3cgbmV3IEVycm9yKCJCYWQgc3RhdGU6ICIrTXQuam9pbigifCIpKTtSdC5wdXNoKG5uKSxNci5zLnI8''@;'; + put 'put ''PU1yLmUuciYmTXIucy5jPD1Nci5lLmMmJihVdFsiIXJlZiJdPWZhKE1yKSxYLnNoZWV0Um93cyYmWC5zaGVldFJvd3M8PU1yLmUuciYmKFV0WyIhZnVsbHJlZiJdPVV0WyIhcmVmIl0sTXIuZS5yPVguc2hlZXRSb3dzLTEsVXRbIiFyZWYiXT1mYShNcikpKSx6ci5sZW5ndGgmJihVdFsiIW1l''@;'; + put 'put ''cmdlcyJdPXpyKSxBMC5sZW5ndGg+MCYmKFV0WyIhY29scyJdPUEwKSxoaS5sZW5ndGg+MCYmKFV0WyIhcm93cyJdPWhpKSxDbiYmKFV0WyIhc2hlZXRGb3JtYXQiXT1XbShDbikpLHh0W25uXT1VdH1lbHNlIE1yPXtzOntyOjJlNixjOjJlNn0sZTp7cjowLGM6MH19LFluPU9uPTAsWWUucHVz''@;'; + put 'put ''aChbamVbM10sITFdKSxNdD1uYyhqZVswXSksbm49Z3IoTXQuTmFtZSksVXQ9WC5kZW5zZT9bXTp7fSx6cj1bXSxFaT1bXSxoaT1bXSx0MC5TaGVldHMucHVzaChpbz17bmFtZTpubixIaWRkZW46MH0pO2JyZWFrO2Nhc2UidGFibGUiOmlmKCIvIj09PWplWzFdKXtpZigoTXQ9WWUucG9wKCkp''@;'; + put 'put ''WzBdIT09amVbM10pdGhyb3cgbmV3IEVycm9yKCJCYWQgc3RhdGU6ICIrTXQuam9pbigifCIpKX1lbHNle2lmKCIvPiI9PWplWzBdLnNsaWNlKC0yKSlicmVhaztDbj1uYyhqZVswXSksWWUucHVzaChbamVbM10sITFdKSxBMD1bXSxZcj0hMX1icmVhaztjYXNlInN0eWxlIjoiLyI9PT1qZVsx''@;'; + put 'put ''XT9lVChhaSx5cixhcixYKTooeXI9bmMoamVbMF0pLGFyPSIiKTticmVhaztjYXNlIm51bWJlcmZvcm1hdCI6eXIubmY9Z3IobmMoamVbMF0pLkZvcm1hdHx8IkdlbmVyYWwiKSxDZVt5ci5uZl0mJih5ci5uZj1DZVt5ci5uZl0pO2Zvcih2YXIgam89MDszOTIhPWpvJiZGLl90YWJsZVtqb10h''@;'; + put 'put ''PXlyLm5mOysram8pO2lmKDM5Mj09am8pZm9yKGpvPTU3OzM5MiE9am87KytqbylpZihudWxsPT1GLl90YWJsZVtqb10pe0YubG9hZCh5ci5uZixqbyk7YnJlYWt9YnJlYWs7Y2FzZSJjb2x1bW4iOmlmKCJ0YWJsZSIhPT1ZZVtZZS5sZW5ndGgtMV1bMF18fCIvIj09PWplWzFdKWJyZWFrO2lm''@;'; + put 'put ''KCh3aT1uYyhqZVswXSkpLkhpZGRlbiYmKHdpLmhpZGRlbj0hMCxkZWxldGUgd2kuSGlkZGVuKSx3aS5XaWR0aD93aS53cHg9NCpwYXJzZUludCh3aS5XaWR0aCwxMCkvMzord2kuQXV0b0ZpdFdpZHRoJiYod2kuYXV0bz0xKSwhWXImJndpLndweD4xMCl7WXI9ITAsSzI9Njtmb3IodmFyIHdh''@;'; + put 'put ''PTA7d2E8QTAubGVuZ3RoOysrd2EpQTBbd2FdJiZ5YyhBMFt3YV0pfVlyJiZ5Yyh3aSksQTBbd2kuSW5kZXgtMXx8QTAubGVuZ3RoXT13aTtmb3IodmFyIGFvPTA7YW88K3dpLlNwYW47KythbylBMFtBMC5sZW5ndGhdPWxuKHdpKTticmVhaztjYXNlIm5hbWVkcmFuZ2UiOmlmKCIvIj09PWpl''@;'; + put 'put ''WzFdKWJyZWFrO3QwLk5hbWVzfHwodDAuTmFtZXM9W10pO3ZhciB4MD1lbihqZVswXSksaDA9e05hbWU6eDAuTmFtZSxSZWY6RDMoeDAuUmVmZXJzVG8uc2xpY2UoMSkse3I6MCxjOjB9KX07dDAuU2hlZXRzLmxlbmd0aD4wJiYoaDAuU2hlZXQ9dDAuU2hlZXRzLmxlbmd0aC0xKSx0MC5OYW1l''@;'; + put 'put ''cy5wdXNoKGgwKTticmVhaztjYXNlIm5hbWVkY2VsbCI6Y2FzZSJiIjpjYXNlImkiOmNhc2UidSI6Y2FzZSJzIjpjYXNlImVtIjpjYXNlImgyIjpjYXNlImgzIjpjYXNlInN1YiI6Y2FzZSJzdXAiOmNhc2Uic3BhbiI6Y2FzZSJwcm90ZWN0aW9uIjpjYXNlInBhcmFncmFwaHMiOmNhc2UibmFt''@;'; + put 'put ''ZSI6YnJlYWs7Y2FzZSJhbGlnbm1lbnQiOmlmKCFYLmNlbGxTdHlsZXN8fCIvIj09PWplWzFdKWJyZWFrO3lyLkFsaWdubWVudD1uYyhqZVswXSk7YnJlYWs7Y2FzZSJib3JkZXJzIjoiLyIhPT1qZVsxXSYmKHlyLkJvcmRlcnM9W10pO2JyZWFrO2Nhc2UiYm9yZGVyIjppZigiLyI9PT1qZVsx''@;'; + put 'put ''XSlicmVhazt5ci5Cb3JkZXJzfHwoeXIuQm9yZGVycz1bXSkseXIuQm9yZGVycy5wdXNoKG5jKGplWzBdKSk7YnJlYWs7Y2FzZSJmb250IjppZigiLz4iPT09amVbMF0uc2xpY2UoLTIpKXthcis9amVbMF07YnJlYWt9Ii8iPT09amVbMV0/YXIrPXdlLnNsaWNlKEdyLGplLmluZGV4K2plWzBd''@;'; + put 'put ''Lmxlbmd0aCk6R3I9amUuaW5kZXg7YnJlYWs7Y2FzZSJpbnRlcmlvciI6aWYoIVguY2VsbFN0eWxlc3x8Ii8iPT09amVbMV0pYnJlYWs7eXIuSW50ZXJpb3I9bmMoamVbMF0pO2JyZWFrO2Nhc2UiYXV0aG9yIjpjYXNlInRpdGxlIjpjYXNlImRlc2NyaXB0aW9uIjpjYXNlImNyZWF0ZWQiOmNh''@;'; + put 'put ''c2Uia2V5d29yZHMiOmNhc2Uic3ViamVjdCI6Y2FzZSJjYXRlZ29yeSI6Y2FzZSJjb21wYW55IjpjYXNlImxhc3RhdXRob3IiOmNhc2UibGFzdHNhdmVkIjpjYXNlImxhc3RwcmludGVkIjpjYXNlInZlcnNpb24iOmNhc2UicmV2aXNpb24iOmNhc2UidG90YWx0aW1lIjpjYXNlImh5cGVybGlu''@;'; + put 'put ''a2Jhc2UiOmNhc2UibWFuYWdlciI6Y2FzZSJjb250ZW50c3RhdHVzIjpjYXNlImlkZW50aWZpZXIiOmNhc2UibGFuZ3VhZ2UiOmNhc2UiYXBwbmFtZSI6aWYoIi8+Ij09PWplWzBdLnNsaWNlKC0yKSlicmVhazsiLyI9PT1qZVsxXT9xbChxcixvYSx3ZS5zbGljZShjcixqZS5pbmRleCkpOmNy''@;'; + put 'put ''PWplLmluZGV4K2plWzBdLmxlbmd0aDticmVhaztjYXNlInN0eWxlcyI6Y2FzZSJ3b3JrYm9vayI6aWYoIi8iPT09amVbMV0pe2lmKChNdD1ZZS5wb3AoKSlbMF0hPT1qZVszXSl0aHJvdyBuZXcgRXJyb3IoIkJhZCBzdGF0ZTogIitNdC5qb2luKCJ8IikpfWVsc2UgWWUucHVzaChbamVbM10s''@;'; + put 'put ''ITFdKTticmVhaztjYXNlImNvbW1lbnQiOmlmKCIvIj09PWplWzFdKXtpZigoTXQ9WWUucG9wKCkpWzBdIT09amVbM10pdGhyb3cgbmV3IEVycm9yKCJCYWQgc3RhdGU6ICIrTXQuam9pbigifCIpKTtQMyh0byksVWkucHVzaCh0byl9ZWxzZSBZZS5wdXNoKFtqZVszXSwhMV0pLHRvPXthOihN''@;'; + put 'put ''dD1uYyhqZVswXSkpLkF1dGhvcn07YnJlYWs7Y2FzZSJhdXRvZmlsdGVyIjppZigiLyI9PT1qZVsxXSl7aWYoKE10PVllLnBvcCgpKVswXSE9PWplWzNdKXRocm93IG5ldyBFcnJvcigiQmFkIHN0YXRlOiAiK010LmpvaW4oInwiKSl9ZWxzZSBpZigiLyIhPT1qZVswXS5jaGFyQXQoamVbMF0u''@;'; + put 'put ''bGVuZ3RoLTIpKXt2YXIganI9bmMoamVbMF0pO1V0WyIhYXV0b2ZpbHRlciJdPXtyZWY6RDMoanIuUmFuZ2UpLnJlcGxhY2UoL1wkL2csIiIpfSxZZS5wdXNoKFtqZVszXSwhMF0pfWJyZWFrO2Nhc2UiZGF0YXZhbGlkYXRpb24iOmlmKFV0WyIhdmFsaWRhdGlvbnMiXXx8KFV0WyIhdmFsaWRh''@;'; + put 'put ''dGlvbnMiXT1bXSksIi8iPT09amVbMV0pe2lmKChNdD1ZZS5wb3AoKSlbMF0hPT1qZVszXSl0aHJvdyBuZXcgRXJyb3IoIkJhZCBzdGF0ZTogIitNdC5qb2luKCJ8IikpfWVsc2UiLyIhPT1qZVswXS5jaGFyQXQoamVbMF0ubGVuZ3RoLTIpJiZZZS5wdXNoKFtqZVszXSwhMF0pLHYwPXt9O2Jy''@;'; + put 'put ''ZWFrO2Nhc2UicGl4ZWxzcGVyaW5jaCI6aWYoIi8iPT09amVbMV0pe3ZhciBIaT0rd2Uuc2xpY2UoVG4samUuaW5kZXgpOyg3Mj09SGl8fDk2PT1IaSkmJkMzKEhpKX1lbHNlIFRuPWplLmluZGV4K2plWzBdLmxlbmd0aDticmVhaztjYXNlImNvbXBvbmVudG9wdGlvbnMiOmNhc2UiZG9jdW1l''@;'; + put 'put ''bnRwcm9wZXJ0aWVzIjpjYXNlImN1c3RvbWRvY3VtZW50cHJvcGVydGllcyI6Y2FzZSJvZmZpY2Vkb2N1bWVudHNldHRpbmdzIjpjYXNlInBpdm90dGFibGUiOmNhc2UicGl2b3RjYWNoZSI6Y2FzZSJuYW1lcyI6Y2FzZSJtYXBpbmZvIjpjYXNlInBhZ2VicmVha3MiOmNhc2UicXVlcnl0YWJs''@;'; + put 'put ''ZSI6Y2FzZSJzb3J0aW5nIjpjYXNlInNjaGVtYSI6Y2FzZSJjb25kaXRpb25hbGZvcm1hdHRpbmciOmNhc2Uic21hcnR0YWd0eXBlIjpjYXNlInNtYXJ0dGFncyI6Y2FzZSJleGNlbHdvcmtib29rIjpjYXNlIndvcmtib29rb3B0aW9ucyI6Y2FzZSJ3b3Jrc2hlZXRvcHRpb25zIjppZigiLyI9''@;'; + put 'put ''PT1qZVsxXSl7aWYoKE10PVllLnBvcCgpKVswXSE9PWplWzNdKXRocm93IG5ldyBFcnJvcigiQmFkIHN0YXRlOiAiK010LmpvaW4oInwiKSl9ZWxzZSIvIiE9PWplWzBdLmNoYXJBdChqZVswXS5sZW5ndGgtMikmJlllLnB1c2goW2plWzNdLCEwXSk7YnJlYWs7ZGVmYXVsdDppZigwPT1ZZS5s''@;'; + put 'put ''ZW5ndGgmJiJkb2N1bWVudCI9PWplWzNdfHwwPT1ZZS5sZW5ndGgmJiJ1b2YiPT1qZVszXSlyZXR1cm4gaWMod2UsWCk7dmFyIHZvPSEwO3N3aXRjaChZZVtZZS5sZW5ndGgtMV1bMF0pe2Nhc2Uib2ZmaWNlZG9jdW1lbnRzZXR0aW5ncyI6c3dpdGNoKGplWzNdKXtjYXNlImFsbG93cG5nIjpj''@;'; + put 'put ''YXNlInJlbW92ZXBlcnNvbmFsaW5mb3JtYXRpb24iOmNhc2UiZG93bmxvYWRjb21wb25lbnRzIjpjYXNlImxvY2F0aW9ub2Zjb21wb25lbnRzIjpjYXNlImNvbG9ycyI6Y2FzZSJjb2xvciI6Y2FzZSJpbmRleCI6Y2FzZSJyZ2IiOmNhc2UidGFyZ2V0c2NyZWVuc2l6ZSI6Y2FzZSJyZWFkb25s''@;'; + put 'put ''eXJlY29tbWVuZGVkIjpicmVhaztkZWZhdWx0OnZvPSExfWJyZWFrO2Nhc2UiY29tcG9uZW50b3B0aW9ucyI6c3dpdGNoKGplWzNdKXtjYXNlInRvb2xiYXIiOmNhc2UiaGlkZW9mZmljZWxvZ28iOmNhc2Uic3ByZWFkc2hlZXRhdXRvZml0IjpjYXNlImxhYmVsIjpjYXNlImNhcHRpb24iOmNh''@;'; + put 'put ''c2UibWF4aGVpZ2h0IjpjYXNlIm1heHdpZHRoIjpjYXNlIm5leHRzaGVldG51bWJlciI6YnJlYWs7ZGVmYXVsdDp2bz0hMX1icmVhaztjYXNlImV4Y2Vsd29ya2Jvb2siOnN3aXRjaChqZVszXSl7Y2FzZSJkYXRlMTkwNCI6dDAuV0JQcm9wcy5kYXRlMTkwND0hMDticmVhaztjYXNlIndpbmRv''@;'; + put 'put ''d2hlaWdodCI6Y2FzZSJ3aW5kb3d3aWR0aCI6Y2FzZSJ3aW5kb3d0b3B4IjpjYXNlIndpbmRvd3RvcHkiOmNhc2UidGFicmF0aW8iOmNhc2UicHJvdGVjdHN0cnVjdHVyZSI6Y2FzZSJwcm90ZWN0d2luZG93IjpjYXNlInByb3RlY3R3aW5kb3dzIjpjYXNlImFjdGl2ZXNoZWV0IjpjYXNlImRp''@;'; + put 'put ''c3BsYXlpbmtub3RlcyI6Y2FzZSJmaXJzdHZpc2libGVzaGVldCI6Y2FzZSJzdXBib29rIjpjYXNlInNoZWV0bmFtZSI6Y2FzZSJzaGVldGluZGV4IjpjYXNlInNoZWV0aW5kZXhmaXJzdCI6Y2FzZSJzaGVldGluZGV4bGFzdCI6Y2FzZSJkbGwiOmNhc2UiYWNjZXB0bGFiZWxzaW5mb3JtdWxh''@;'; + put 'put ''cyI6Y2FzZSJkb25vdHNhdmVsaW5rdmFsdWVzIjpjYXNlIml0ZXJhdGlvbiI6Y2FzZSJtYXhpdGVyYXRpb25zIjpjYXNlIm1heGNoYW5nZSI6Y2FzZSJwYXRoIjpjYXNlInhjdCI6Y2FzZSJjb3VudCI6Y2FzZSJzZWxlY3RlZHNoZWV0cyI6Y2FzZSJjYWxjdWxhdGlvbiI6Y2FzZSJ1bmNhbGNl''@;'; + put 'put ''ZCI6Y2FzZSJzdGFydHVwcHJvbXB0IjpjYXNlImNybiI6Y2FzZSJleHRlcm5uYW1lIjpjYXNlImZvcm11bGEiOmNhc2UiY29sZmlyc3QiOmNhc2UiY29sbGFzdCI6Y2FzZSJ3YW50YWR2aXNlIjpjYXNlImJvb2xlYW4iOmNhc2UiZXJyb3IiOmNhc2UidGV4dCI6Y2FzZSJvbGUiOmNhc2Uibm9h''@;'; + put 'put ''dXRvcmVjb3ZlciI6Y2FzZSJwdWJsaXNob2JqZWN0cyI6Y2FzZSJkb25vdGNhbGN1bGF0ZWJlZm9yZXNhdmUiOmNhc2UibnVtYmVyIjpjYXNlInJlZm1vZGVyMWMxIjpjYXNlImVtYmVkc2F2ZXNtYXJ0dGFncyI6YnJlYWs7ZGVmYXVsdDp2bz0hMX1icmVhaztjYXNlIndvcmtib29rb3B0aW9u''@;'; + put 'put ''cyI6c3dpdGNoKGplWzNdKXtjYXNlIm93Y3ZlcnNpb24iOmNhc2UiaGVpZ2h0IjpjYXNlIndpZHRoIjpicmVhaztkZWZhdWx0OnZvPSExfWJyZWFrO2Nhc2Uid29ya3NoZWV0b3B0aW9ucyI6c3dpdGNoKGplWzNdKXtjYXNlInZpc2libGUiOmlmKCIvPiIhPT1qZVswXS5zbGljZSgtMikpaWYo''@;'; + put 'put ''Ii8iPT09amVbMV0pc3dpdGNoKHdlLnNsaWNlKGNyLGplLmluZGV4KSl7Y2FzZSJTaGVldEhpZGRlbiI6aW8uSGlkZGVuPTE7YnJlYWs7Y2FzZSJTaGVldFZlcnlIaWRkZW4iOmlvLkhpZGRlbj0yfWVsc2UgY3I9amUuaW5kZXgramVbMF0ubGVuZ3RoO2JyZWFrO2Nhc2UiaGVhZGVyIjpVdFsi''@;'; + put 'put ''IW1hcmdpbnMiXXx8QmQoVXRbIiFtYXJnaW5zIl09e30sInhsbWwiKSxVdFsiIW1hcmdpbnMiXS5oZWFkZXI9ZW4oamVbMF0pLk1hcmdpbjticmVhaztjYXNlImZvb3RlciI6VXRbIiFtYXJnaW5zIl18fEJkKFV0WyIhbWFyZ2lucyJdPXt9LCJ4bG1sIiksVXRbIiFtYXJnaW5zIl0uZm9vdGVy''@;'; + put 'put ''PWVuKGplWzBdKS5NYXJnaW47YnJlYWs7Y2FzZSJwYWdlbWFyZ2lucyI6dmFyIHhvPWVuKGplWzBdKTtVdFsiIW1hcmdpbnMiXXx8QmQoVXRbIiFtYXJnaW5zIl09e30sInhsbWwiKSx4by5Ub3AmJihVdFsiIW1hcmdpbnMiXS50b3A9eG8uVG9wKSx4by5MZWZ0JiYoVXRbIiFtYXJnaW5zIl0u''@;'; + put 'put ''bGVmdD14by5MZWZ0KSx4by5SaWdodCYmKFV0WyIhbWFyZ2lucyJdLnJpZ2h0PXhvLlJpZ2h0KSx4by5Cb3R0b20mJihVdFsiIW1hcmdpbnMiXS5ib3R0b209eG8uQm90dG9tKTticmVhaztjYXNlImRpc3BsYXlyaWdodHRvbGVmdCI6dDAuVmlld3N8fCh0MC5WaWV3cz1bXSksdDAuVmlld3Nb''@;'; + put 'put ''MF18fCh0MC5WaWV3c1swXT17fSksdDAuVmlld3NbMF0uUlRMPSEwO2JyZWFrO2Nhc2UiZnJlZXplcGFuZXMiOmNhc2UiZnJvemVubm9zcGxpdCI6Y2FzZSJhY3RpdmVyb3ciOmNhc2UiYWN0aXZlY29sIjpjYXNlInRvcHJvd2JvdHRvbXBhbmUiOmNhc2UibGVmdGNvbHVtbnJpZ2h0cGFuZSI6''@;'; + put 'put ''Y2FzZSJ1bnN5bmNlZCI6Y2FzZSJwcmludCI6Y2FzZSJwcmludGVycm9ycyI6Y2FzZSJwYW5lcyI6Y2FzZSJzY2FsZSI6Y2FzZSJwYW5lIjpjYXNlIm51bWJlciI6Y2FzZSJsYXlvdXQiOmNhc2UicGFnZXNldHVwIjpjYXNlInNlbGVjdGVkIjpjYXNlInByb3RlY3RvYmplY3RzIjpjYXNlImVu''@;'; + put 'put ''YWJsZXNlbGVjdGlvbiI6Y2FzZSJwcm90ZWN0c2NlbmFyaW9zIjpjYXNlInZhbGlkcHJpbnRlcmluZm8iOmNhc2UiaG9yaXpvbnRhbHJlc29sdXRpb24iOmNhc2UidmVydGljYWxyZXNvbHV0aW9uIjpjYXNlIm51bWJlcm9mY29waWVzIjpjYXNlImFjdGl2ZXBhbmUiOmNhc2UidG9wcm93dmlz''@;'; + put 'put ''aWJsZSI6Y2FzZSJsZWZ0Y29sdW1udmlzaWJsZSI6Y2FzZSJmaXR0b3BhZ2UiOmNhc2UicmFuZ2VzZWxlY3Rpb24iOmNhc2UicGFwZXJzaXplaW5kZXgiOmNhc2UicGFnZWxheW91dHpvb20iOmNhc2UicGFnZWJyZWFrem9vbSI6Y2FzZSJmaWx0ZXJvbiI6Y2FzZSJmaXR3aWR0aCI6Y2FzZSJm''@;'; + put 'put ''aXRoZWlnaHQiOmNhc2UiY29tbWVudHNsYXlvdXQiOmNhc2Uiem9vbSI6Y2FzZSJsZWZ0dG9yaWdodCI6Y2FzZSJncmlkbGluZXMiOmNhc2UiYWxsb3dzb3J0IjpjYXNlImFsbG93ZmlsdGVyIjpjYXNlImFsbG93aW5zZXJ0cm93cyI6Y2FzZSJhbGxvd2RlbGV0ZXJvd3MiOmNhc2UiYWxsb3dp''@;'; + put 'put ''bnNlcnRjb2xzIjpjYXNlImFsbG93ZGVsZXRlY29scyI6Y2FzZSJhbGxvd2luc2VydGh5cGVybGlua3MiOmNhc2UiYWxsb3dmb3JtYXRjZWxscyI6Y2FzZSJhbGxvd3NpemVjb2xzIjpjYXNlImFsbG93c2l6ZXJvd3MiOmNhc2UidGFiY29sb3JpbmRleCI6Y2FzZSJkb25vdGRpc3BsYXloZWFk''@;'; + put 'put ''aW5ncyI6Y2FzZSJzaG93cGFnZWxheW91dHpvb20iOmNhc2UiYmxhY2thbmR3aGl0ZSI6Y2FzZSJkb25vdGRpc3BsYXl6ZXJvcyI6Y2FzZSJkaXNwbGF5cGFnZWJyZWFrIjpjYXNlInJvd2NvbGhlYWRpbmdzIjpjYXNlImRvbm90ZGlzcGxheW91dGxpbmUiOmNhc2Uibm9vcmllbnRhdGlvbiI6''@;'; + put 'put ''Y2FzZSJhbGxvd3VzZXBpdm90dGFibGVzIjpjYXNlInplcm9oZWlnaHQiOmNhc2Uidmlld2FibGVyYW5nZSI6Y2FzZSJzZWxlY3Rpb24iOmNhc2UicHJvdGVjdGNvbnRlbnRzIjpicmVhaztjYXNlInNwbGl0aG9yaXpvbnRhbCI6Y2FzZSJzcGxpdHZlcnRpY2FsIjppZigiLz4iIT09amVbMF0u''@;'; + put 'put ''c2xpY2UoLTIpKWlmKCIvIj09amVbMV0pe1V0WyIhZnJlZXplIl18fChVdFsiIWZyZWV6ZSJdPSJBMSIpO3ZhciAkaT11bChVdFsiIWZyZWV6ZSJdKTsic3BsaXRob3Jpem9udGFsIj09amVbM10/JGkucj0rd2Uuc2xpY2UoY3IsamUuaW5kZXgpOiRpLmM9K3dlLnNsaWNlKGNyLGplLmluZGV4''@;'; + put 'put ''KSxVdFsiIWZyZWV6ZSJdPVkwKCRpKX1lbHNlIGNyPWplLmluZGV4K2plWzBdLmxlbmd0aDticmVhaztjYXNlImRvbm90ZGlzcGxheWdyaWRsaW5lcyI6VXRbIiFncmlkbGluZXMiXT0hMTticmVhaztjYXNlIm5vc3VtbWFyeXJvd3NiZWxvd2RldGFpbCI6VXRbIiFvdXRsaW5lIl18fChVdFsi''@;'; + put 'put ''IW91dGxpbmUiXT17fSksVXRbIiFvdXRsaW5lIl0uYWJvdmU9ITA7YnJlYWs7Y2FzZSJub3N1bW1hcnljb2x1bW5zcmlnaHRkZXRhaWwiOlV0WyIhb3V0bGluZSJdfHwoVXRbIiFvdXRsaW5lIl09e30pLFV0WyIhb3V0bGluZSJdLmxlZnQ9ITA7YnJlYWs7ZGVmYXVsdDp2bz0hMX1icmVhaztj''@;'; + put 'put ''YXNlInBpdm90dGFibGUiOmNhc2UicGl2b3RjYWNoZSI6c3dpdGNoKGplWzNdKXtjYXNlImltbWVkaWF0ZWl0ZW1zb25kcm9wIjpjYXNlInNob3dwYWdlbXVsdGlwbGVpdGVtbGFiZWwiOmNhc2UiY29tcGFjdHJvd2luZGVudCI6Y2FzZSJsb2NhdGlvbiI6Y2FzZSJwaXZvdGZpZWxkIjpjYXNl''@;'; + put 'put ''Im9yaWVudGF0aW9uIjpjYXNlImxheW91dGZvcm0iOmNhc2UibGF5b3V0c3VidG90YWxsb2NhdGlvbiI6Y2FzZSJsYXlvdXRjb21wYWN0cm93IjpjYXNlInBvc2l0aW9uIjpjYXNlInBpdm90aXRlbSI6Y2FzZSJkYXRhdHlwZSI6Y2FzZSJkYXRhZmllbGQiOmNhc2Uic291cmNlbmFtZSI6Y2Fz''@;'; + put 'put ''ZSJwYXJlbnRmaWVsZCI6Y2FzZSJwdGxpbmVpdGVtcyI6Y2FzZSJwdGxpbmVpdGVtIjpjYXNlImNvdW50b2ZzYW1laXRlbXMiOmNhc2UiaXRlbSI6Y2FzZSJpdGVtdHlwZSI6Y2FzZSJwdHNvdXJjZSI6Y2FzZSJjYWNoZWluZGV4IjpjYXNlImNvbnNvbGlkYXRpb25yZWZlcmVuY2UiOmNhc2Ui''@;'; + put 'put ''ZmlsZW5hbWUiOmNhc2UicmVmZXJlbmNlIjpjYXNlIm5vY29sdW1uZ3JhbmQiOmNhc2Uibm9yb3dncmFuZCI6Y2FzZSJibGFua2xpbmVhZnRlcml0ZW1zIjpjYXNlImhpZGRlbiI6Y2FzZSJzdWJ0b3RhbCI6Y2FzZSJiYXNlZmllbGQiOmNhc2UibWFwY2hpbGRpdGVtcyI6Y2FzZSJmdW5jdGlv''@;'; + put 'put ''biI6Y2FzZSJyZWZyZXNob25maWxlb3BlbiI6Y2FzZSJwcmludHNldHRpdGxlcyI6Y2FzZSJtZXJnZWxhYmVscyI6Y2FzZSJkZWZhdWx0dmVyc2lvbiI6Y2FzZSJyZWZyZXNobmFtZSI6Y2FzZSJyZWZyZXNoZGF0ZSI6Y2FzZSJyZWZyZXNoZGF0ZWNvcHkiOmNhc2UidmVyc2lvbmxhc3RyZWZy''@;'; + put 'put ''ZXNoIjpjYXNlInZlcnNpb25sYXN0dXBkYXRlIjpjYXNlInZlcnNpb251cGRhdGVhYmxlbWluIjpjYXNlInZlcnNpb25yZWZyZXNoYWJsZW1pbiI6Y2FzZSJjYWxjdWxhdGlvbiI6YnJlYWs7ZGVmYXVsdDp2bz0hMX1icmVhaztjYXNlInBhZ2VicmVha3MiOnN3aXRjaChqZVszXSl7Y2FzZSJj''@;'; + put 'put ''b2xicmVha3MiOmNhc2UiY29sYnJlYWsiOmNhc2Uicm93YnJlYWtzIjpjYXNlInJvd2JyZWFrIjpjYXNlImNvbHN0YXJ0IjpjYXNlImNvbGVuZCI6Y2FzZSJyb3dlbmQiOmJyZWFrO2RlZmF1bHQ6dm89ITF9YnJlYWs7Y2FzZSJhdXRvZmlsdGVyIjpzd2l0Y2goamVbM10pe2Nhc2UiYXV0b2Zp''@;'; + put 'put ''bHRlcmNvbHVtbiI6Y2FzZSJhdXRvZmlsdGVyY29uZGl0aW9uIjpjYXNlImF1dG9maWx0ZXJhbmQiOmNhc2UiYXV0b2ZpbHRlcm9yIjpicmVhaztkZWZhdWx0OnZvPSExfWJyZWFrO2Nhc2UicXVlcnl0YWJsZSI6c3dpdGNoKGplWzNdKXtjYXNlImlkIjpjYXNlImF1dG9mb3JtYXRmb250Ijpj''@;'; + put 'put ''YXNlImF1dG9mb3JtYXRwYXR0ZXJuIjpjYXNlInF1ZXJ5c291cmNlIjpjYXNlInF1ZXJ5dHlwZSI6Y2FzZSJlbmFibGVyZWRpcmVjdGlvbnMiOmNhc2UicmVmcmVzaGVkaW54bDkiOmNhc2UidXJsc3RyaW5nIjpjYXNlImh0bWx0YWJsZXMiOmNhc2UiY29ubmVjdGlvbiI6Y2FzZSJjb21tYW5k''@;'; + put 'put ''dGV4dCI6Y2FzZSJyZWZyZXNoaW5mbyI6Y2FzZSJub3RpdGxlcyI6Y2FzZSJuZXh0aWQiOmNhc2UiY29sdW1uaW5mbyI6Y2FzZSJvdmVyd3JpdGVjZWxscyI6Y2FzZSJkb25vdHByb21wdGZvcmZpbGUiOmNhc2UidGV4dHdpemFyZHNldHRpbmdzIjpjYXNlInNvdXJjZSI6Y2FzZSJudW1iZXIi''@;'; + put 'put ''OmNhc2UiZGVjaW1hbCI6Y2FzZSJ0aG91c2FuZHNlcGFyYXRvciI6Y2FzZSJ0cmFpbGluZ21pbnVzbnVtYmVycyI6Y2FzZSJmb3JtYXRzZXR0aW5ncyI6Y2FzZSJmaWVsZHR5cGUiOmNhc2UiZGVsaW1pdGVycyI6Y2FzZSJ0YWIiOmNhc2UiY29tbWEiOmNhc2UiYXV0b2Zvcm1hdG5hbWUiOmNh''@;'; + put 'put ''c2UidmVyc2lvbmxhc3RlZGl0IjpjYXNlInZlcnNpb25sYXN0cmVmcmVzaCI6YnJlYWs7ZGVmYXVsdDp2bz0hMX1icmVhaztjYXNlImRhdGF2YWxpZGF0aW9uIjpzd2l0Y2goamVbM10pe2Nhc2UicmFuZ2UiOnYwLnJlZj1qZTticmVhaztjYXNlInR5cGUiOmNhc2UibWluIjpjYXNlIm1heCI6''@;'; + put 'put ''Y2FzZSJzb3J0IjpjYXNlImRlc2NlbmRpbmciOmNhc2Uib3JkZXIiOmNhc2UiY2FzZXNlbnNpdGl2ZSI6Y2FzZSJ2YWx1ZSI6Y2FzZSJlcnJvcnN0eWxlIjpjYXNlImVycm9ybWVzc2FnZSI6Y2FzZSJlcnJvcnRpdGxlIjpjYXNlImlucHV0bWVzc2FnZSI6Y2FzZSJpbnB1dHRpdGxlIjpjYXNl''@;'; + put 'put ''ImNvbWJvaGlkZSI6Y2FzZSJpbnB1dGhpZGUiOmNhc2UiY29uZGl0aW9uIjpjYXNlInF1YWxpZmllciI6Y2FzZSJ1c2VibGFuayI6Y2FzZSJ2YWx1ZTEiOmNhc2UidmFsdWUyIjpjYXNlImZvcm1hdCI6Y2FzZSJjZWxscmFuZ2VsaXN0IjpicmVhaztkZWZhdWx0OnZvPSExfWJyZWFrO2Nhc2Ui''@;'; + put 'put ''c29ydGluZyI6Y2FzZSJjb25kaXRpb25hbGZvcm1hdHRpbmciOnN3aXRjaChqZVszXSl7Y2FzZSJyYW5nZSI6Y2FzZSJ0eXBlIjpjYXNlIm1pbiI6Y2FzZSJtYXgiOmNhc2Uic29ydCI6Y2FzZSJkZXNjZW5kaW5nIjpjYXNlIm9yZGVyIjpjYXNlImNhc2VzZW5zaXRpdmUiOmNhc2UidmFsdWUi''@;'; + put 'put ''OmNhc2UiZXJyb3JzdHlsZSI6Y2FzZSJlcnJvcm1lc3NhZ2UiOmNhc2UiZXJyb3J0aXRsZSI6Y2FzZSJjZWxscmFuZ2VsaXN0IjpjYXNlImlucHV0bWVzc2FnZSI6Y2FzZSJpbnB1dHRpdGxlIjpjYXNlImNvbWJvaGlkZSI6Y2FzZSJpbnB1dGhpZGUiOmNhc2UiY29uZGl0aW9uIjpjYXNlInF1''@;'; + put 'put ''YWxpZmllciI6Y2FzZSJ1c2VibGFuayI6Y2FzZSJ2YWx1ZTEiOmNhc2UidmFsdWUyIjpjYXNlImZvcm1hdCI6YnJlYWs7ZGVmYXVsdDp2bz0hMX1icmVhaztjYXNlIm1hcGluZm8iOmNhc2Uic2NoZW1hIjpjYXNlImRhdGEiOnN3aXRjaChqZVszXSl7Y2FzZSJtYXAiOmNhc2UiZW50cnkiOmNh''@;'; + put 'put ''c2UicmFuZ2UiOmNhc2UieHBhdGgiOmNhc2UiZmllbGQiOmNhc2UieHNkdHlwZSI6Y2FzZSJmaWx0ZXJvbiI6Y2FzZSJhZ2dyZWdhdGUiOmNhc2UiZWxlbWVudHR5cGUiOmNhc2UiYXR0cmlidXRldHlwZSI6Y2FzZSJzY2hlbWEiOmNhc2UiZWxlbWVudCI6Y2FzZSJjb21wbGV4dHlwZSI6Y2Fz''@;'; + put 'put ''ZSJkYXRhdHlwZSI6Y2FzZSJhbGwiOmNhc2UiYXR0cmlidXRlIjpjYXNlImV4dGVuZHMiOmNhc2Uicm93IjpicmVhaztkZWZhdWx0OnZvPSExfWJyZWFrO2Nhc2Uic21hcnR0YWdzIjpicmVhaztkZWZhdWx0OnZvPSExfWlmKHZvfHxqZVszXS5tYXRjaCgvIVxbQ0RBVEEvKSlicmVhaztpZigh''@;'; + put 'put ''WWVbWWUubGVuZ3RoLTFdWzFdKXRocm93IlVucmVjb2duaXplZCB0YWc6ICIramVbM10rInwiK1llLmpvaW4oInwiKTtpZigiY3VzdG9tZG9jdW1lbnRwcm9wZXJ0aWVzIj09PVllW1llLmxlbmd0aC0xXVswXSl7aWYoIi8+Ij09PWplWzBdLnNsaWNlKC0yKSlicmVhazsiLyI9PT1qZVsxXT9I''@;'; + put 'put ''aChvaSxvYSxkaSx3ZS5zbGljZShjcixqZS5pbmRleCkpOihkaT1qZSxjcj1qZS5pbmRleCtqZVswXS5sZW5ndGgpO2JyZWFrfWlmKFguV1RGKXRocm93IlVucmVjb2duaXplZCB0YWc6ICIramVbM10rInwiK1llLmpvaW4oInwiKX12YXIgbDI9e307cmV0dXJuIVguYm9va1NoZWV0cyYmIVgu''@;'; + put 'put ''Ym9va1Byb3BzJiYobDIuU2hlZXRzPXh0KSxsMi5TaGVldE5hbWVzPVJ0LGwyLldvcmtib29rPXQwLGwyLlNTRj1GLmdldF90YWJsZSgpLGwyLlByb3BzPXFyLGwyLkN1c3Rwcm9wcz1vaSxsMi5TaGVldHMmJmwyLlNoZWV0TmFtZXMuZm9yRWFjaChmdW5jdGlvbihNYyl7dmFyIHAyPWwyLlNo''@;'; + put 'put ''ZWV0c1tNY107cDJbIiFtZXJnZXMiXSYmcDJbIiFtZXJnZXMiXS5mb3JFYWNoKGZ1bmN0aW9uKHJyKXsic3RyaW5nIj09dHlwZW9mIHJyJiYocnI9VS51dGlscy5kZWNvZGVfcmFuZ2UocnIpKTt2YXIgSXI9VS51dGlscy5lbmNvZGVfY2VsbChyci5zKSxacj1BcnJheS5pc0FycmF5KHAyKT8o''@;'; + put 'put ''cDJbcnIucy5yXXx8W10pW3JyLnMuY106cDJbSXJdO1pyJiZaci5zJiYobnVsbCE9WnIucy50b3AmJmFjLnNoZWV0X3NldF9yYW5nZV9zdHlsZShwMixycix7dG9wOlpyLnMudG9wfSksbnVsbCE9WnIucy5ib3R0b20mJmFjLnNoZWV0X3NldF9yYW5nZV9zdHlsZShwMixycix7Ym90dG9tOlpy''@;'; + put 'put ''LnMuYm90dG9tfSksbnVsbCE9WnIucy5sZWZ0JiZhYy5zaGVldF9zZXRfcmFuZ2Vfc3R5bGUocDIscnIse2xlZnQ6WnIucy5sZWZ0fSksbnVsbCE9WnIucy5yaWdodCYmYWMuc2hlZXRfc2V0X3JhbmdlX3N0eWxlKHAyLHJyLHtyaWdodDpaci5zLnJpZ2h0fSkpfSl9KSxsMn1mdW5jdGlvbiBl''@;'; + put 'put ''QyhILHJlKXtzd2l0Y2goTWYocmU9cmV8fHt9KSxyZS50eXBlfHwiYmFzZTY0Iil7Y2FzZSJiYXNlNjQiOnJldHVybiBxXyhTZS5kZWNvZGUoSCkscmUpO2Nhc2UiYmluYXJ5IjpjYXNlImJ1ZmZlciI6Y2FzZSJmaWxlIjpyZXR1cm4gcV8oSCxyZSk7Y2FzZSJhcnJheSI6cmV0dXJuIHFfKHRl''@;'; + put 'put ''KEgpLHJlKX19ZnVuY3Rpb24gVFAoSCl7cmV0dXJuIF9pKCJOYW1lZFJhbmdlIixudWxsLHsic3M6TmFtZSI6SC5OYW1lLCJzczpSZWZlcnNUbyI6Ij0iK0hFKEguUmVmLHtyOjAsYzowfSl9KX1mdW5jdGlvbiBJUChILHJlLFgsd2UseGUsRmUsWmUpe2lmKCFIfHxudWxsPT1ILnYmJm51bGw9''@;'; + put 'put ''PUguZiYmIXdlLnNoZWV0U3R1YnMpcmV0dXJuIiI7dmFyIGplPXt9O2lmKEguZiYmKGplWyJzczpGb3JtdWxhIl09Ij0iK1JyKEhFKEguZixaZSkpKSxILkYmJkguRi5zbGljZSgwLHJlLmxlbmd0aCk9PXJlKXt2YXIgWWU9dWwoSC5GLnNsaWNlKHJlLmxlbmd0aCsxKSk7amVbInNzOkFycmF5''@;'; + put 'put ''UmFuZ2UiXT0iUkM6UiIrKFllLnI9PVplLnI/IiI6IlsiKyhZZS5yLVplLnIpKyJdIikrIkMiKyhZZS5jPT1aZS5jPyIiOiJbIisoWWUuYy1aZS5jKSsiXSIpfWlmKEgubCYmSC5sLlRhcmdldCYmKGplWyJzczpIUmVmIl09UnIoSC5sLlRhcmdldCksSC5sLlRvb2x0aXAmJihqZVsieDpIUmVm''@;'; + put 'put ''U2NyZWVuVGlwIl09UnIoSC5sLlRvb2x0aXApKSksWFsiIW1lcmdlcyJdKWZvcih2YXIgTXQ9WFsiIW1lcmdlcyJdLHh0PTA7eHQhPU10Lmxlbmd0aDsrK3h0KU10W3h0XS5zLmMhPVplLmN8fE10W3h0XS5zLnIhPVplLnJ8fChNdFt4dF0uZS5jPk10W3h0XS5zLmMmJihqZVsic3M6TWVyZ2VB''@;'; + put 'put ''Y3Jvc3MiXT1NdFt4dF0uZS5jLU10W3h0XS5zLmMpLE10W3h0XS5lLnI+TXRbeHRdLnMuciYmKGplWyJzczpNZXJnZURvd24iXT1NdFt4dF0uZS5yLU10W3h0XS5zLnIpKTt2YXIgUnQ9IiIsVXQ9IiI7c3dpdGNoKEgudCl7Y2FzZSJ6IjppZighd2Uuc2hlZXRTdHVicylyZXR1cm4iIjticmVh''@;'; + put 'put ''aztjYXNlIm4iOlJ0PSJOdW1iZXIiLFV0PVN0cmluZyhILnYpO2JyZWFrO2Nhc2UiYiI6UnQ9IkJvb2xlYW4iLFV0PUgudj8iMSI6IjAiO2JyZWFrO2Nhc2UiZSI6UnQ9IkVycm9yIixVdD1OMVtILnZdO2JyZWFrO2Nhc2UiZCI6UnQ9IkRhdGVUaW1lIixVdD1uZXcgRGF0ZShILnYpLnRvSVNP''@;'; + put 'put ''U3RyaW5nKCksbnVsbD09SC56JiYoSC56PUguenx8Ri5fdGFibGVbMTRdKTticmVhaztjYXNlInMiOlJ0PSJTdHJpbmciLFV0PWQwKEgudnx8IiIpfXZhciBubj1ZMSh3ZS5jZWxsWGZzLG51bGwsSCx3ZSk7amVbInNzOlN0eWxlSUQiXT0icyIrKDIxK25uKSxqZVsic3M6SW5kZXgiXT1aZS5j''@;'; + put 'put ''KzE7dmFyIENuPW51bGwhPUgudj9VdDoiIixEdD0ieiI9PUgudD8iIjpILlI/ZnVuY3Rpb24gclQoSCl7cmV0dXJuJzxzczpEYXRhIHNzOlR5cGU9IlN0cmluZyIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAiPicrSC5tYXAoZnVuY3Rpb24oWCl7dmFyIHdlPWQwKFgu''@;'; + put 'put ''dik7cmV0dXJuIFgucyYmKFgucy5ib2xkJiYod2U9IjxCPiIrd2UrIjwvQj4iKSxYLnMuaXRhbGljJiYod2U9IjxJPiIrd2UrIjwvST4iKSxYLnMuc3RyaWtlJiYod2U9IjxTPiIrd2UrIjwvUz4iKSxYLnMudW5kZXJsaW5lJiYod2U9IjxVPiIrd2UrIjwvVT4iKSwic3VwZXIiPT1YLnMudmFs''@;'; + put 'put ''aWduJiYod2U9IjxTdXA+Iit3ZSsiPC9TdXA+IiksInN1YiI9PVgucy52YWxpZ24mJih3ZT0iPFN1Yj4iK3dlKyI8L1N1Yj4iKSwoWC5zLm5hbWV8fFgucy5zenx8WC5zLmNvbG9yJiZudWxsIT1YLnMuY29sb3IucmdiKSYmKHdlPVsiPEZvbnQiLFgucy5uYW1lPycgaHRtbDpGYWNlPSInK1gu''@;'; + put 'put ''cy5uYW1lKyciJzoiIixYLnMuc3o/JyBodG1sOlNpemU9IicrWC5zLnN6KyciJzoiIixYLnMuY29sb3I/JyBodG1sOkNvbG9yPSIjJysoIjAwMDAwMCIrKCJudW1iZXIiPT10eXBlb2YgWC5zLmNvbG9yLnJnYj9YLnMuY29sb3IucmdiLnRvU3RyaW5nKDE2KTpYLnMuY29sb3IucmdiKSkuc2xp''@;'; + put 'put ''Y2UoLTYpKyciJzoiIiwiPiIsd2UsIjwvRm9udD4iXS5qb2luKCIiKSkpLHdlfSkuam9pbigiIikrIjwvRGF0YT4ifShILlIpOic8RGF0YSBzczpUeXBlPSInK1J0KyciPicrQ24rIjwvRGF0YT4iO3JldHVybihILmN8fFtdKS5sZW5ndGg+MCYmKER0Kz1mdW5jdGlvbiBNbyhIKXtyZXR1cm4g''@;'; + put 'put ''SC5tYXAoZnVuY3Rpb24ocmUpe3ZhciB3ZT1faSgic3M6RGF0YSIsZnVuY3Rpb24ocmUpe3JldHVybiByZS5yZXBsYWNlKC8oXHJcbnxbXHJcbl0pL2csIiYjMTA7Iil9KHJlLnR8fCIiKSx7eG1sbnM6Imh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAifSk7cmV0dXJuIF9pKCJDb21t''@;'; + put 'put ''ZW50Iix3ZSx7InNzOkF1dGhvciI6cmUuYX0pfSkuam9pbigiIil9KEguYykpLF9pKCJDZWxsIixEdCxqZSl9ZnVuY3Rpb24gRFAoSCxyZSl7dmFyIFg9JzxSb3cgc3M6SW5kZXg9IicrKEgrMSkrJyInO3JldHVybiByZSYmKHJlLmhweCYmIXJlLmhwdCYmKHJlLmhwdD1UaChyZS5ocHgpKSxy''@;'; + put 'put ''ZS5ocHQmJihYKz0nIHNzOkF1dG9GaXRIZWlnaHQ9IjAiIHNzOkhlaWdodD0iJytyZS5ocHQrJyInKSxyZS5oaWRkZW4mJihYKz0nIHNzOkhpZGRlbj0iMSInKSksWCsiPiJ9ZnVuY3Rpb24gTFAoSCxyZSxYKXt2YXIgd2U9W10sRmU9WC5TaGVldHNbWC5TaGVldE5hbWVzW0hdXSxaZT1GZT9m''@;'; + put 'put ''dW5jdGlvbiBuVChILHJlLFgsd2Upe2lmKCFIfHwhKCh3ZXx8e30pLldvcmtib29rfHx7fSkuTmFtZXMpcmV0dXJuIiI7Zm9yKHZhciB4ZT13ZS5Xb3JrYm9vay5OYW1lcyxGZT1bXSxaZT0wO1plPHhlLmxlbmd0aDsrK1plKXt2YXIgamU9eGVbWmVdO2plLlNoZWV0PT1YJiYoamUuTmFtZS5t''@;'; + put 'put ''YXRjaCgvXl94bGZuXC4vKXx8RmUucHVzaChUUChqZSkpKX1yZXR1cm4gRmUuam9pbigiIil9KEZlLDAsSCxYKToiIjtyZXR1cm4gWmUubGVuZ3RoPjAmJndlLnB1c2goIjxOYW1lcz4iK1plKyI8L05hbWVzPiIpLFplPUZlP2Z1bmN0aW9uIFM1KEgscmUsWCx3ZSl7aWYoIUhbIiFyZWYiXSly''@;'; + put 'put ''ZXR1cm4iIjt2YXIgeGU9Rm8oSFsiIXJlZiJdKSxGZT1IWyIhbWVyZ2VzIl18fFtdLFplPTAsamU9W107SFsiIWNvbHMiXSYmSFsiIWNvbHMiXS5mb3JFYWNoKGZ1bmN0aW9uKHp0LFBuKXt5Yyh6dCk7dmFyIFRuPSEhenQud2lkdGgsT249azYoUG4senQpLFluPXsic3M6SW5kZXgiOlBuKzF9''@;'; + put 'put ''O1RuJiYoWW5bInNzOldpZHRoIl09bW0oT24ud2lkdGgpKSx6dC5oaWRkZW4mJihZblsic3M6SGlkZGVuIl09IjEiKSxqZS5wdXNoKF9pKCJDb2x1bW4iLG51bGwsWW4pKX0pO2Zvcih2YXIgWWU9QXJyYXkuaXNBcnJheShIKSxNdD14ZS5zLnI7TXQ8PXhlLmUucjsrK010KXtmb3IodmFyIHh0''@;'; + put 'put ''PVtEUChNdCwoSFsiIXJvd3MiXXx8W10pW010XSldLFJ0PXhlLnMuYztSdDw9eGUuZS5jOysrUnQpe3ZhciBVdD0hMTtmb3IoWmU9MDtaZSE9RmUubGVuZ3RoOysrWmUpaWYoIShGZVtaZV0ucy5jPlJ0fHxGZVtaZV0ucy5yPk10fHxGZVtaZV0uZS5jPFJ0fHxGZVtaZV0uZS5yPE10KSl7KEZl''@;'; + put 'put ''W1plXS5zLmMhPVJ0fHxGZVtaZV0ucy5yIT1NdCkmJihVdD0hMCk7YnJlYWt9aWYoIVV0KXt2YXIgbm49e3I6TXQsYzpSdH0sQ249WTAobm4pO3h0LnB1c2goSVAoWWU/KEhbTXRdfHxbXSlbUnRdOkhbQ25dLENuLEgscmUsMCwwLG5uKSl9fXh0LnB1c2goIjwvUm93PiIpLHh0Lmxlbmd0aD4y''@;'; + put 'put ''JiZqZS5wdXNoKHh0LmpvaW4oIiIpKX1yZXR1cm4gamUuam9pbigiIil9KEZlLHJlKToiIixaZS5sZW5ndGg+MCYmd2UucHVzaCgiPFRhYmxlPiIrWmUrIjwvVGFibGU+Iiksd2UucHVzaChmdW5jdGlvbiBfRyhILHJlLFgsd2Upe2lmKCFIKXJldHVybiIiO3ZhciB4ZT1bXTtpZihIWyIhbWFy''@;'; + put 'put ''Z2lucyJdJiYoeGUucHVzaCgiPFBhZ2VTZXR1cD4iKSxIWyIhbWFyZ2lucyJdLmhlYWRlciYmeGUucHVzaChfaSgiSGVhZGVyIixudWxsLHsieDpNYXJnaW4iOkhbIiFtYXJnaW5zIl0uaGVhZGVyfSkpLEhbIiFtYXJnaW5zIl0uZm9vdGVyJiZ4ZS5wdXNoKF9pKCJGb290ZXIiLG51bGwseyJ4''@;'; + put 'put ''Ok1hcmdpbiI6SFsiIW1hcmdpbnMiXS5mb290ZXJ9KSkseGUucHVzaChfaSgiUGFnZU1hcmdpbnMiLG51bGwseyJ4OkJvdHRvbSI6SFsiIW1hcmdpbnMiXS5ib3R0b218fCIwLjc1IiwieDpMZWZ0IjpIWyIhbWFyZ2lucyJdLmxlZnR8fCIwLjciLCJ4OlJpZ2h0IjpIWyIhbWFyZ2lucyJdLnJp''@;'; + put 'put ''Z2h0fHwiMC43IiwieDpUb3AiOkhbIiFtYXJnaW5zIl0udG9wfHwiMC43NSJ9KSkseGUucHVzaCgiPC9QYWdlU2V0dXA+IikpLHdlJiZ3ZS5Xb3JrYm9vayYmd2UuV29ya2Jvb2suU2hlZXRzJiZ3ZS5Xb3JrYm9vay5TaGVldHNbWF0paWYod2UuV29ya2Jvb2suU2hlZXRzW1hdLkhpZGRlbil4''@;'; + put 'put ''ZS5wdXNoKF9pKCJWaXNpYmxlIiwxPT13ZS5Xb3JrYm9vay5TaGVldHNbWF0uSGlkZGVuPyJTaGVldEhpZGRlbiI6IlNoZWV0VmVyeUhpZGRlbiIse30pKTtlbHNle2Zvcih2YXIgRmU9MDtGZTxYJiYoIXdlLldvcmtib29rLlNoZWV0c1tGZV18fHdlLldvcmtib29rLlNoZWV0c1tGZV0uSGlk''@;'; + put 'put ''ZGVuKTsrK0ZlKTtGZT09WCYmeGUucHVzaCgiPFNlbGVjdGVkLz4iKX1pZigoKCgod2V8fHt9KS5Xb3JrYm9va3x8e30pLlZpZXdzfHxbXSlbMF18fHt9KS5SVEwmJnhlLnB1c2goIjxEaXNwbGF5UmlnaHRUb0xlZnQvPiIpLG5yKEhbIiFncmlkbGluZXMiXSkmJnhlLnB1c2goIjxEb05vdERp''@;'; + put 'put ''c3BsYXlHcmlkbGluZXMvPiIpLEhbIiFmcmVlemUiXSl7eGUucHVzaCgiPEZyZWV6ZVBhbmVzLz4iKSx4ZS5wdXNoKCI8RnJvemVuTm9TcGxpdC8+Iik7dmFyIFplPXVsKEhbIiFmcmVlemUiXSk7WmUucj4wJiYoeGUucHVzaChzYSgiU3BsaXRIb3Jpem9udGFsIiwiIitaZS5yKSkseGUucHVz''@;'; + put 'put ''aChzYSgiVG9wUm93Qm90dG9tUGFuZSIsIiIrWmUucikpKSxaZS5jPjAmJih4ZS5wdXNoKHNhKCJTcGxpdFZlcnRpY2FsIiwiIitaZS5jKSkseGUucHVzaChzYSgiTGVmdENvbHVtblJpZ2h0UGFuZSIsIiIrWmUuYykpKX1yZXR1cm4gSFsiIXByb3RlY3QiXSYmKHhlLnB1c2goc2EoIlByb3Rl''@;'; + put 'put ''Y3RDb250ZW50cyIsIlRydWUiKSksSFsiIXByb3RlY3QiXS5vYmplY3RzJiZ4ZS5wdXNoKHNhKCJQcm90ZWN0T2JqZWN0cyIsIlRydWUiKSksSFsiIXByb3RlY3QiXS5zY2VuYXJpb3MmJnhlLnB1c2goc2EoIlByb3RlY3RTY2VuYXJpb3MiLCJUcnVlIikpLG51bGw9PUhbIiFwcm90ZWN0Il0u''@;'; + put 'put ''c2VsZWN0TG9ja2VkQ2VsbHN8fEhbIiFwcm90ZWN0Il0uc2VsZWN0TG9ja2VkQ2VsbHM/bnVsbCE9SFsiIXByb3RlY3QiXS5zZWxlY3RVbmxvY2tlZENlbGxzJiYhSFsiIXByb3RlY3QiXS5zZWxlY3RVbmxvY2tlZENlbGxzJiZ4ZS5wdXNoKHNhKCJFbmFibGVTZWxlY3Rpb24iLCJVbmxvY2tl''@;'; + put 'put ''ZENlbGxzIikpOnhlLnB1c2goc2EoIkVuYWJsZVNlbGVjdGlvbiIsIk5vU2VsZWN0aW9uIikpLFtbImZvcm1hdENlbGxzIiwiQWxsb3dGb3JtYXRDZWxscyJdLFsiZm9ybWF0Q29sdW1ucyIsIkFsbG93U2l6ZUNvbHMiXSxbImZvcm1hdFJvd3MiLCJBbGxvd1NpemVSb3dzIl0sWyJpbnNlcnRD''@;'; + put 'put ''b2x1bW5zIiwiQWxsb3dJbnNlcnRDb2xzIl0sWyJpbnNlcnRSb3dzIiwiQWxsb3dJbnNlcnRSb3dzIl0sWyJpbnNlcnRIeXBlcmxpbmtzIiwiQWxsb3dJbnNlcnRIeXBlcmxpbmtzIl0sWyJkZWxldGVDb2x1bW5zIiwiQWxsb3dEZWxldGVDb2xzIl0sWyJkZWxldGVSb3dzIiwiQWxsb3dEZWxl''@;'; + put 'put ''dGVSb3dzIl0sWyJzb3J0IiwiQWxsb3dTb3J0Il0sWyJhdXRvRmlsdGVyIiwiQWxsb3dGaWx0ZXIiXSxbInBpdm90VGFibGVzIiwiQWxsb3dVc2VQaXZvdFRhYmxlcyJdXS5mb3JFYWNoKGZ1bmN0aW9uKGplKXtIWyIhcHJvdGVjdCJdW2plWzBdXSYmeGUucHVzaCgiPCIramVbMV0rIi8+Iil9''@;'; + put 'put ''KSksMD09eGUubGVuZ3RoPyIiOl9pKCJXb3Jrc2hlZXRPcHRpb25zIix4ZS5qb2luKCIiKSx7eG1sbnM6dWFfeH0pfShGZSwwLEgsWCkpLHdlLmpvaW4oIiIpfWZ1bmN0aW9uIFNBKEgscmUpe3JlfHwocmU9e30pLEguU1NGfHwoSC5TU0Y9Ri5nZXRfdGFibGUoKSksSC5TU0YmJih5ZShGKSxG''@;'; + put 'put ''LmxvYWRfdGFibGUoSC5TU0YpLHJlLnJldnNzZj1ldChILlNTRikscmUucmV2c3NmW0guU1NGWzY1NTM1XV09MCxyZS5zc2Y9SC5TU0YsSC5TdHlsZXM9e0ZvbnRzOnJlLkZvbnRzPVt7c3o6MTIsY29sb3I6e3RoZW1lOjEscmdiOiIwMDAwMDAifSxuYW1lOiJDYWxpYnJpIixmYW1pbHk6Mixz''@;'; + put 'put ''Y2hlbWU6Im1pbm9yIn1dLEZpbGxzOnJlLkZpbGxzPVt7cGF0dGVyblR5cGU6Im5vbmUifSx7cGF0dGVyblR5cGU6ImdyYXkxMjUifV0sQm9yZGVyczpyZS5Cb3JkZXJzPVt7fV19LHJlLmNlbGxYZnM9W10scmUuY2VsbFN0eWxlWGZzPVt7bmFtZToiTm9ybWFsIn1dLFkxKHJlLmNlbGxYZnMs''@;'; + put 'put ''bnVsbCx7fSx7cmV2c3NmOntHZW5lcmFsOjB9fSkpO3ZhciBYPVtdO1gucHVzaChmdW5jdGlvbiBrNShILHJlKXt2YXIgWD1bXTtyZXR1cm4gSC5Qcm9wcyYmWC5wdXNoKGZ1bmN0aW9uIGhhKEgscmUpe3ZhciBYPVtdO3JldHVybiBvbihlbykubWFwKGZ1bmN0aW9uKHdlKXtmb3IodmFyIHhl''@;'; + put 'put ''PTA7eGU8bGUubGVuZ3RoOysreGUpaWYobGVbeGVdWzFdPT13ZSlyZXR1cm4gbGVbeGVdO2Zvcih4ZT0wO3hlPG8yLmxlbmd0aDsrK3hlKWlmKG8yW3hlXVsxXT09d2UpcmV0dXJuIG8yW3hlXTt0aHJvdyB3ZX0pLmZvckVhY2goZnVuY3Rpb24od2Upe2lmKG51bGwhPUhbd2VbMV1dKXt2YXIg''@;'; + put 'put ''eGU9cmUmJnJlLlByb3BzJiZudWxsIT1yZS5Qcm9wc1t3ZVsxXV0/cmUuUHJvcHNbd2VbMV1dOkhbd2VbMV1dOyJkYXRlIj09PXdlWzJdJiYoeGU9bmV3IERhdGUoeGUpLnRvSVNPU3RyaW5nKCkucmVwbGFjZSgvXC5cZCpaLywiWiIpKSwibnVtYmVyIj09dHlwZW9mIHhlP3hlPVN0cmluZyh4''@;'; + put 'put ''ZSk6ITA9PT14ZXx8ITE9PT14ZT94ZT14ZT8iMSI6IjAiOnhlIGluc3RhbmNlb2YgRGF0ZSYmKHhlPW5ldyBEYXRlKHhlKS50b0lTT1N0cmluZygpLnJlcGxhY2UoL1wuXGQqWi8sIiIpKSxYLnB1c2goc2EoZW9bd2VbMV1dfHx3ZVsxXSx4ZSkpfX0pLF9pKCJEb2N1bWVudFByb3BlcnRpZXMi''@;'; + put 'put ''LFguam9pbigiIikse3htbG5zOnVhX299KX0oSC5Qcm9wcyxyZSkpLEguQ3VzdHByb3BzJiZYLnB1c2goZnVuY3Rpb24gRGEoSCxyZSl7dmFyIFg9WyJXb3Jrc2hlZXRzIiwiU2hlZXROYW1lcyJdLHdlPSJDdXN0b21Eb2N1bWVudFByb3BlcnRpZXMiLHhlPVtdO3JldHVybiBIJiZvbihIKS5m''@;'; + put 'put ''b3JFYWNoKGZ1bmN0aW9uKEZlKXtpZihPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoSCxGZSkpe2Zvcih2YXIgWmU9MDtaZTxsZS5sZW5ndGg7KytaZSlpZihGZT09bGVbWmVdWzFdKXJldHVybjtmb3IoWmU9MDtaZTxvMi5sZW5ndGg7KytaZSlpZihGZT09bzJbWmVdWzFd''@;'; + put 'put ''KXJldHVybjtmb3IoWmU9MDtaZTxYLmxlbmd0aDsrK1plKWlmKEZlPT1YW1plXSlyZXR1cm47dmFyIGplPUhbRmVdLFllPSJzdHJpbmciOyJudW1iZXIiPT10eXBlb2YgamU/KFllPSJmbG9hdCIsamU9U3RyaW5nKGplKSk6ITA9PT1qZXx8ITE9PT1qZT8oWWU9ImJvb2xlYW4iLGplPWplPyIx''@;'; + put 'put ''IjoiMCIpOmplPVN0cmluZyhqZSkseGUucHVzaChfaShNaShGZSksamUseyJkdDpkdCI6WWV9KSl9fSkscmUmJm9uKHJlKS5mb3JFYWNoKGZ1bmN0aW9uKEZlKXtpZihPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocmUsRmUpJiYoIUh8fCFPYmplY3QucHJvdG90eXBlLmhh''@;'; + put 'put ''c093blByb3BlcnR5LmNhbGwoSCxGZSkpKXt2YXIgWmU9cmVbRmVdLGplPSJzdHJpbmciOyJudW1iZXIiPT10eXBlb2YgWmU/KGplPSJmbG9hdCIsWmU9U3RyaW5nKFplKSk6ITA9PT1aZXx8ITE9PT1aZT8oamU9ImJvb2xlYW4iLFplPVplPyIxIjoiMCIpOlplIGluc3RhbmNlb2YgRGF0ZT8o''@;'; + put 'put ''amU9ImRhdGVUaW1lLnR6IixaZT1aZS50b0lTT1N0cmluZygpKTpaZT1TdHJpbmcoWmUpLHhlLnB1c2goX2koTWkoRmUpLFplLHsiZHQ6ZHQiOmplfSkpfX0pLCI8Iit3ZSsnIHhtbG5zPSInK3VhX28rJyI+Jyt4ZS5qb2luKCIiKSsiPC8iK3dlKyI+In0oSC5Qcm9wcyxILkN1c3Rwcm9wcykp''@;'; + put 'put ''LFguam9pbigiIil9KEgscmUpKSxYLnB1c2goIiIpLFgucHVzaCgiIiksWC5wdXNoKCIiKTtmb3IodmFyIHdlPTA7d2U8SC5TaGVldE5hbWVzLmxlbmd0aDsrK3dlKVgucHVzaChfaSgiV29ya3NoZWV0IixMUCh3ZSxyZSxIKSx7InNzOk5hbWUiOlJyKEguU2hlZXROYW1lc1t3ZV0pfSkpO3Jl''@;'; + put 'put ''dHVybiBYWzJdPWZ1bmN0aW9uIHJjKEgscmUpe3ZhciB3ZT1bWyc8U3R5bGUgc3M6SUQ9IkRlZmF1bHQiIHNzOk5hbWU9Ik5vcm1hbCI+JywnPEFsaWdubWVudCBzczpWZXJ0aWNhbD0iQm90dG9tIi8+JywiPEJvcmRlcnMvPiIsJzxGb250IHNzOkZvbnROYW1lPSJDYWxpYnJpIiB4OkZhbWls''@;'; + put 'put ''eT0iU3dpc3MiIHNzOlNpemU9IjEyIiBzczpDb2xvcj0iIzAwMDAwMCIvPicsIjxJbnRlcmlvci8+IiwiPE51bWJlckZvcm1hdC8+IiwiPFByb3RlY3Rpb24vPiIsIjwvU3R5bGU+Il0uam9pbigiIildO3JldHVybiByZS5jZWxsWGZzLmZvckVhY2goZnVuY3Rpb24oeGUsRmUpe3ZhciBaZT1b''@;'; + put 'put ''XTtpZih4ZS5hbGlnbm1lbnQpe3ZhciBqZT17fTt4ZS5hbGlnbm1lbnQuc2hyaW5rVG9GaXQmJihqZVsic3M6U2hyaW5rVG9GaXQiXT0iMSIpLHhlLmFsaWdubWVudC53cmFwVGV4dCYmKGplWyJzczpXcmFwVGV4dCJdPSIxIikseGUuYWxpZ25tZW50LnZlcnRpY2FsJiYoamVbInNzOlZlcnRp''@;'; + put 'put ''Y2FsIl09QW4oeGUuYWxpZ25tZW50LnZlcnRpY2FsKSkseGUuYWxpZ25tZW50Lmhvcml6b250YWwmJihqZVsic3M6SG9yaXpvbnRhbCJdPUFuKHhlLmFsaWdubWVudC5ob3Jpem9udGFsKSkseGUuYWxpZ25tZW50LmluZGVudCYmKGplWyJzczpJbmRlbnQiXT14ZS5hbGlnbm1lbnQuaW5kZW50''@;'; + put 'put ''KSx4ZS5hbGlnbm1lbnQudGV4dFJvdGF0aW9uJiYoamVbInNzOlJvdGF0ZSJdPXhlLmFsaWdubWVudC50ZXh0Um90YXRpb24pLFplLnB1c2goX2koIkFsaWdubWVudCIsbnVsbCxqZSkpfWU6aWYobnVsbCE9eGUuZm9udElkKXt2YXIgWWU9cmUuRm9udHNbeGUuZm9udElkXTtpZighWWUpYnJl''@;'; + put 'put ''YWsgZTt2YXIgTXQ9eyJzczpGb250TmFtZSI6IkNhbGlicmkiLCJzczpTaXplIjoiMTIifSx4dD0hMTtZZS5ib2xkJiYoeHQ9ITAsTXRbInNzOkJvbGQiXT0iMSIpLFllLml0YWxpYyYmKHh0PSEwLE10WyJzczpJdGFsaWMiXT0iMSIpLFllLnN0cmlrZSYmKHh0PSEwLE10WyJzczpTdHJpa2VU''@;'; + put 'put ''aHJvdWdoIl09IjEiKSxudWxsIT1ZZS51bmRlcmxpbmUmJih4dD0hMCxNdFsic3M6VW5kZXJsaW5lIl09S19bWWUudW5kZXJsaW5lXXx8KFllLnVuZGVybGluZT8iU2luZ2xlIjoiTm9uZSIpKSxudWxsIT1ZZS5zeiYmKHh0PSEwLE10WyJzczpTaXplIl09WWUuc3opLG51bGwhPVllLm5hbWUm''@;'; + put 'put ''Jih4dD0hMCxNdFsic3M6Rm9udE5hbWUiXT1ZZS5uYW1lKSxZZS5jb2xvciYmbnVsbCE9WWUuY29sb3IucmdiJiYoeHQ9ITAsTXRbInNzOkNvbG9yIl09IiMiKygibnVtYmVyIj09dHlwZW9mIFllLmNvbG9yLnJnYj8iMDAwMDAwIitZZS5jb2xvci5yZ2IudG9TdHJpbmcoMTYpOlllLmNvbG9y''@;'; + put 'put ''LnJnYikuc2xpY2UoLTYpKSxbInN1YiIsInN1cGVyIl0uaW5kZXhPZihZZS52YWxpZ24pPi0xJiYoTXRbInNzOlZlcnRpY2FsQWxpZ24iXT1BbihZZS52YWxpZ24pKyJzY3JpcHQiKSx4dCYmWmUucHVzaChfaSgiRm9udCIsbnVsbCxNdCkpfWU6aWYoeGUuZmlsbElkPjApe3ZhciBSdD1yZS5G''@;'; + put 'put ''aWxsc1t4ZS5maWxsSWRdO2lmKCFSdHx8IVJ0LmZnQ29sb3J8fG51bGw9PVJ0LmZnQ29sb3IucmdiKWJyZWFrIGU7WmUucHVzaChfaSgiSW50ZXJpb3IiLG51bGwseyJzczpQYXR0ZXJuIjpjRVtSdC5wYXR0ZXJuVHlwZV18fCJTb2xpZCIsInNzOkNvbG9yIjoiIyIrKCJudW1iZXIiPT10eXBl''@;'; + put 'put ''b2YgUnQuZmdDb2xvci5yZ2I/IjAwIitSdC5mZ0NvbG9yLnJnYi50b1N0cmluZygxNik6UnQuZmdDb2xvci5yZ2IpLnNsaWNlKC02KX0pKX1aZS5wdXNoKF9pKCJOdW1iZXJGb3JtYXQiLG51bGwseyJzczpGb3JtYXQiOlJyKEYuX3RhYmxlW3hlLm51bUZtdElkXSl9KSk7dmFyIFV0PXsic3M6''@;'; + put 'put ''SUQiOiJzIisoMjErRmUpfTt4ZS5zdHlsZSYmKFV0WyJzczpOYW1lIl09eGUuc3R5bGUpLHdlLnB1c2goX2koIlN0eWxlIixaZS5qb2luKCIiKSxVdCkpfSksX2koIlN0eWxlcyIsd2Uuam9pbigiIikpfSgwLHJlKSxYWzNdPWZ1bmN0aW9uIHRDKEgpe2lmKCEoKEh8fHt9KS5Xb3JrYm9va3x8''@;'; + put 'put ''e30pLk5hbWVzKXJldHVybiIiO2Zvcih2YXIgcmU9SC5Xb3JrYm9vay5OYW1lcyxYPVtdLHdlPTA7d2U8cmUubGVuZ3RoOysrd2Upe3ZhciB4ZT1yZVt3ZV07bnVsbD09eGUuU2hlZXQmJih4ZS5OYW1lLm1hdGNoKC9eX3hsZm5cLi8pfHxYLnB1c2goVFAoeGUpKSl9cmV0dXJuIF9pKCJOYW1l''@;'; + put 'put ''cyIsWC5qb2luKCIiKSl9KEgpLGNuK19pKCJXb3JrYm9vayIsWC5qb2luKCIiKSx7eG1sbnM6dWFfc3MsInhtbG5zOm8iOnVhX28sInhtbG5zOngiOnVhX3gsInhtbG5zOnNzIjp1YV9zcywieG1sbnM6ZHQiOiJ1dWlkOkMyRjQxMDEwLTY1QjMtMTFkMS1BMjlGLTAwQUEwMEMxNDg4MiIsInht''@;'; + put 'put ''bG5zOmh0bWwiOiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwIn0pfWZ1bmN0aW9uICQyKEgscmUsWCx3ZSl7dmFyIHhlPVgsRmU9W10sWmU9cmUuc2xpY2UocmUubCxyZS5sK3hlKTtpZih3ZSYmd2UuZW5jJiZ3ZS5lbmMuaW5zaXR1JiZaZS5sZW5ndGg+MClzd2l0Y2goSC5uKXtj''@;'; + put 'put ''YXNlIkJPRiI6Y2FzZSJGaWxlUGFzcyI6Y2FzZSJGaWxlTG9jayI6Y2FzZSJJbnRlcmZhY2VIZHIiOmNhc2UiUlJESW5mbyI6Y2FzZSJSUkRIZWFkIjpjYXNlIlVzckV4Y2wiOmNhc2UiRU9GIjp3ZS5lbmMuaW5zaXR1KFRlKHtsZW5ndGg6WmUubGVuZ3RofSksInNraXAiKTticmVhaztjYXNl''@;'; + put 'put ''IkJvdW5kU2hlZXQ4Ijp3ZS5lbmMuaW5zaXR1KFRlKHtsZW5ndGg6NH0pLCJza2lwIiksWmU9QnVmZmVyLmNvbmNhdChbQnVmZmVyLmZyb20oWmUuc2xpY2UoMCw0KSksQnVmZmVyLmZyb20od2UuZW5jLmluc2l0dShaZS5zbGljZSg0KSkpXSk7YnJlYWs7ZGVmYXVsdDpaZT13ZS5lbmMuaW5z''@;'; + put 'put ''aXR1KFplKX1BcnJheS5pc0FycmF5KHJlKSYmIUFycmF5LmlzQXJyYXkoWmUpJiYoWmU9QXJyYXkuZnJvbShaZSkpLEZlLnB1c2goWmUpLHJlLmwrPXhlO2Zvcih2YXIgamU9TmxbQnMocmUscmUubCldLFllPTA7bnVsbCE9amUmJiJDb250aW51ZSI9PT1qZS5uLnNsaWNlKDAsOCk7KXhlPUJz''@;'; + put 'put ''KHJlLHJlLmwrMiksWWU9cmUubCs0LHdlJiZ3ZS5lbmMmJndlLmVuYy5pbnNpdHUmJndlLmVuYy5pbnNpdHUoVGUoe2xlbmd0aDo0fSksInNraXAiKSwiQ29udGludWVGcnQiPT1qZS5uP1llKz00OiJDb250aW51ZUZydCI9PWplLm4uc2xpY2UoMCwxMSkmJihZZSs9MTIsd2UmJndlLmVuYyYm''@;'; + put 'put ''d2UuZW5jLmluc2l0dSYmd2UuZW5jLmluc2l0dShUZSh7bGVuZ3RoOjh9KSwic2tpcCIpKSxaZT1yZS5zbGljZShZZSxyZS5sKzQreGUpLHdlJiZ3ZS5lbmMmJndlLmVuYy5pbnNpdHUmJlplLmxlbmd0aD4wJiYoWmU9d2UuZW5jLmluc2l0dShaZSkpLEZlLnB1c2goWmUpLHJlLmwrPTQreGUs''@;'; + put 'put ''amU9TmxbQnMocmUscmUubCldO3ZhciBNdD1WKEZlKTtLbChNdCwwKTt2YXIgeHQ9MDtNdC5sZW5zPVtdO2Zvcih2YXIgUnQ9MDtSdDxGZS5sZW5ndGg7KytSdClNdC5sZW5zLnB1c2goeHQpLHh0Kz1GZVtSdF0ubGVuZ3RoO2lmKE10Lmxlbmd0aDxYKXRocm93IlhMUyBSZWNvcmQgIisoSCYm''@;'; + put 'put ''SC5ufHwiPz8iKSsiIFRydW5jYXRlZDogIitNdC5sZW5ndGgrIiA8ICIrWDtyZXR1cm4gSC5mKE10LE10Lmxlbmd0aCx3ZSl9ZnVuY3Rpb24gVmQoSCxyZSxYKXtpZigieiIhPT1ILnQmJkguWEYpe3ZhciB3ZT0wO3RyeXt3ZT1ILnp8fEguWEYubnVtRm10SWR8fDAscmUuY2VsbE5GJiYoSC56''@;'; + put 'put ''PUYuX3RhYmxlW3dlXSl9Y2F0Y2goRmUpe2lmKHJlLldURil0aHJvdyBGZX1pZighcmV8fCExIT09cmUuY2VsbFRleHQpdHJ5e0gudz0iZSI9PT1ILnQ/SC53fHxOMVtILnZdOjA9PT13ZXx8IkdlbmVyYWwiPT13ZT8ibiI9PT1ILnQ/KDB8SC52KT09PUgudj9GLl9nZW5lcmFsX2ludChILnYp''@;'; + put 'put ''OkYuX2dlbmVyYWxfbnVtKEgudik6Ri5fZ2VuZXJhbChILnYpOkYuZm9ybWF0KHdlLEgudix7ZGF0ZTE5MDQ6ISFYLGRhdGVORjpyZSYmcmUuZGF0ZU5GfSl9Y2F0Y2goRmUpe2lmKHJlLldURil0aHJvdyBGZX1pZihyZS5jZWxsRGF0ZXMmJndlJiYibiI9PUgudCYmRi5pc19kYXRlKEYuX3Rh''@;'; + put 'put ''YmxlW3dlXXx8U3RyaW5nKHdlKSkpe3ZhciB4ZT1GLnBhcnNlX2RhdGVfY29kZShILnYpO3hlJiYoSC50PSJkIixILnY9bmV3IERhdGUoeGUueSx4ZS5tLTEseGUuZCx4ZS5ILHhlLk0seGUuUyx4ZS51KSl9fX1mdW5jdGlvbiBNNShILHJlLFgpe3JldHVybnt2OkgsaXhmZTpyZSx0Olh9fXZh''@;'; + put 'put ''ciBpVD1mdW5jdGlvbihILHJlLFgpe3JlWyIhb2JqZWN0cyJdPUh9LEU1X1NJPSJlMDg1OWZmMmY5NGY2ODEwYWI5MTA4MDAyYjI3YjNkOSIsRTVfRFNJPSIwMmQ1Y2RkNTljMmUxYjEwOTM5NzA4MDAyYjJjZjlhZSI7ZnVuY3Rpb24gVW0oSCxyZSl7dmFyIFgsd2UseGUsRmU7aWYocmV8fChy''@;'; + put 'put ''ZT17fSksTWYocmUpLHEoKSxyZS5jb2RlcGFnZSYmVyhyZS5jb2RlcGFnZSksSC5GdWxsUGF0aHMpe2lmKG10LmZpbmQoSCwiL2VuY3J5cHRpb24iKSl0aHJvdyBuZXcgRXJyb3IoIkZpbGUgaXMgcGFzc3dvcmQtcHJvdGVjdGVkIik7WD1tdC5maW5kKEgsIiFDb21wT2JqIiksd2U9bXQuZmlu''@;'; + put 'put ''ZChILCIvV29ya2Jvb2siKXx8bXQuZmluZChILCIvQm9vayIpfWVsc2V7c3dpdGNoKHJlLnR5cGUpe2Nhc2UiYmFzZTY0IjpIPXooU2UuZGVjb2RlKEgpKTticmVhaztjYXNlImJpbmFyeSI6SD16KEgpO2JyZWFrO2Nhc2UiYnVmZmVyIjpicmVhaztjYXNlImFycmF5IjpBcnJheS5pc0FycmF5''@;'; + put 'put ''KEgpfHwoSD1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChIKSl9S2woSCwwKSx3ZT17Y29udGVudDpIfX1pZihYJiZmdW5jdGlvbiBNQShIKXt2YXIgcmU9e30sWD1ILmNvbnRlbnQ7aWYoWC5sPTI4LHJlLkFuc2lVc2VyVHlwZT1YLnJlYWRfc2hpZnQoMCwibHBzdHItYW5zaSIpLHJlLkFu''@;'; + put 'put ''c2lDbGlwYm9hcmRGb3JtYXQ9ZnVuY3Rpb24gbmIoSCl7cmV0dXJuIGM5KEgsMSl9KFgpLFgubGVuZ3RoLVgubDw9NClyZXR1cm4gcmU7dmFyIHdlPVgucmVhZF9zaGlmdCg0KTtpZigwPT13ZXx8d2U+NDB8fChYLmwtPTQscmUuUmVzZXJ2ZWQxPVgucmVhZF9zaGlmdCgwLCJscHN0ci1hbnNp''@;'; + put 'put ''IiksWC5sZW5ndGgtWC5sPD00KXx8MTkwNzUwNTY1MiE9PSh3ZT1YLnJlYWRfc2hpZnQoNCkpfHwocmUuVW5pY29kZUNsaXBib2FyZEZvcm1hdD1mdW5jdGlvbiBRZyhIKXtyZXR1cm4gYzkoSCwyKX0oWCksMD09KHdlPVgucmVhZF9zaGlmdCg0KSl8fHdlPjQwKSlyZXR1cm4gcmU7WC5sLT00''@;'; + put 'put ''LHJlLlJlc2VydmVkMj1YLnJlYWRfc2hpZnQoMCwibHB3c3RyIil9KFgpLHJlLmJvb2tQcm9wcyYmIXJlLmJvb2tTaGVldHMpeGU9e307ZWxzZXt2YXIgWmU9SWU/ImJ1ZmZlciI6ImFycmF5IjtpZih3ZSYmd2UuY29udGVudCl4ZT1mdW5jdGlvbiBPUChILHJlKXt2YXIgUnQsbm4sRHQsenQs''@;'; + put 'put ''T24sWW4sWD17b3B0czp7fX0sd2U9e30seGU9cmUuZGVuc2U/W106e30sRmU9e30sWmU9e30samU9bnVsbCxZZT1bXSxNdD0iIix4dD17fSxVdD0iIixQbj17fSxUbj1bXSxNcj1bXSxhaT1bXSx5cj17U2hlZXRzOltdLFdCUHJvcHM6e2RhdGUxOTA0OiExfSxWaWV3czpbe31dfSxhcj17fSxH''@;'; + put 'put ''cj17Rm9udHM6W119LHpyPWZ1bmN0aW9uKHAwKXtyZXR1cm4gcDA8OD91dVtwMF06cDA8NjQmJmFpW3AwLThdfHx1dVtwMF19LHFyPWZ1bmN0aW9uKHAwLFFsKXt2YXIgcTIsQWw9cDAuWEYuZGF0YTtBbCYmKEFsLnBhdHRlcm5UeXBlfHxudWxsIT1BbC5pY3ZGb3JlKSYmUWwmJlFsLmNlbGxT''@;'; + put 'put ''dHlsZXMmJihwMC5zPXt9LHAwLnMucGF0dGVyblR5cGU9QWwucGF0dGVyblR5cGUscDAuWEYuZm9udCYmYm4ocDAucyxwMC5YRi5mb250KSxBbC5mV3JhcCYmKChwMC5zLmFsaWdubWVudHx8KHAwLnMuYWxpZ25tZW50PXt9KSkud3JhcFRleHQ9ITApLEFsLmZTaHJpbmtUb0ZpdCYmKChwMC5z''@;'; + put 'put ''LmFsaWdubWVudHx8KHAwLnMuYWxpZ25tZW50PXt9KSkuc2hyaW5rVG9GaXQ9ITApLEFsLmhhbGlnbiYmKChwMC5zLmFsaWdubWVudHx8KHAwLnMuYWxpZ25tZW50PXt9KSkuaG9yaXpvbnRhbD1BbC5oYWxpZ24pLEFsLnZhbGlnbiYmKChwMC5zLmFsaWdubWVudHx8KHAwLnMuYWxpZ25tZW50''@;'; + put 'put ''PXt9KSkudmVydGljYWw9QWwudmFsaWduKSxBbC5jSW5kZW50JiYoKHAwLnMuYWxpZ25tZW50fHwocDAucy5hbGlnbm1lbnQ9e30pKS5pbmRlbnQ9QWwuY0luZGVudCksNjQhPUFsLmljdkZvcmUmJjY1IT1BbC5pY3ZCYWNrJiYoKHEyPWIzKHpyKEFsLmljdkZvcmUpKSkmJihwMC5zLmZnQ29s''@;'; + put 'put ''b3I9e3JnYjpxMn0pLChxMj1iMyh6cihBbC5pY3ZCYWNrKSkpJiYocDAucy5iZ0NvbG9yPXtyZ2I6cTJ9KSksWyJMZWZ0IiwiUmlnaHQiLCJUb3AiLCJCb3R0b20iXS5mb3JFYWNoKGZ1bmN0aW9uKGUxKXtBbFsiZGciK2UxXSYmKHAwLnNbZTEudG9Mb3dlckNhc2UoKV09e3N0eWxlOlQzW0Fs''@;'; + put 'put ''WyJkZyIrZTFdXSxjb2xvcjp7cmdiOmIzKHpyKEFsWyJpY3YiK2UxXSkpfX0pfSkpfSxvaT1mdW5jdGlvbihwMCxRbCxBbCl7aWYoIShOMD4xfHxBbC5zaGVldFJvd3MmJnAwLnI+PUFsLnNoZWV0Um93cykpe2lmKEFsLmNlbGxTdHlsZXMmJlFsLlhGJiZRbC5YRi5kYXRhJiZxcihRbCxBbCks''@;'; + put 'put ''ZGVsZXRlIFFsLml4ZmUsZGVsZXRlIFFsLlhGLFJ0PXAwLFV0PVkwKHAwKSwoIVplfHwhWmUuc3x8IVplLmUpJiYoWmU9e3M6e3I6MCxjOjB9LGU6e3I6MCxjOjB9fSkscDAucjxaZS5zLnImJihaZS5zLnI9cDAucikscDAuYzxaZS5zLmMmJihaZS5zLmM9cDAuYykscDAucisxPlplLmUuciYm''@;'; + put 'put ''KFplLmUucj1wMC5yKzEpLHAwLmMrMT5aZS5lLmMmJihaZS5lLmM9cDAuYysxKSxBbC5jZWxsRm9ybXVsYSYmUWwuZilmb3IodmFyIHEyPTA7cTI8VG4ubGVuZ3RoOysrcTIpaWYoIShUbltxMl1bMF0ucy5jPnAwLmN8fFRuW3EyXVswXS5zLnI+cDAucnx8VG5bcTJdWzBdLmUuYzxwMC5jfHxU''@;'; + put 'put ''bltxMl1bMF0uZS5yPHAwLnIpKXtRbC5GPWZhKFRuW3EyXVswXSksKFRuW3EyXVswXS5zLmMhPXAwLmN8fFRuW3EyXVswXS5zLnIhPXAwLnIpJiZkZWxldGUgUWwuZixRbC5mJiYoUWwuZj0iIitXMShUbltxMl1bMV0sWmUscDAsTnIsY3IpKTticmVha31BbC5kZW5zZT8oeGVbcDAucl18fCh4''@;'; + put 'put ''ZVtwMC5yXT1bXSkseGVbcDAucl1bcDAuY109UWwpOnhlW1V0XT1RbH19LGNyPXtlbmM6ITEsc2JjY2g6MCxzbmFtZXM6W10sc2hhcmVkZjpQbixhcnJheWY6VG4scnJ0YWJpZDpbXSxsYXN0dXNlcjoiIixiaWZmOjgsY29kZXBhZ2U6MCx3aW5sb2NrZWQ6MCxjZWxsU3R5bGVzOiEhcmUmJiEh''@;'; + put 'put ''cmUuY2VsbFN0eWxlcyxXVEY6ISFyZSYmISFyZS53dGZ9O2NyLnBhc3N3b3JkPXJlLnBhc3N3b3JkP3JlLnBhc3N3b3JkOiJWZWx2ZXRTd2VhdHNob3AiO3ZhciB2MCxkaT1udWxsLFVpPVtdLHRvPVtdLEEwPVtdLHdpPVtdLGhpPSExLE5yPVtdO05yLlNoZWV0TmFtZXM9Y3Iuc25hbWVzLE5y''@;'; + put 'put ''LnNoYXJlZGY9Y3Iuc2hhcmVkZixOci5hcnJheWY9Y3IuYXJyYXlmLE5yLm5hbWVzPVtdLE5yLlhUST1bXTt2YXIgJDAsa2k9IiIsTjA9MCx0MD0wLGlvPVtdLG9hPVtdO2NyLmNvZGVwYWdlPTEyMDAsZWUoMTIwMCk7Zm9yKHZhciBOYT0hMTtILmw8SC5sZW5ndGgtMTspe3ZhciBqbz1ILmws''@;'; + put 'put ''d2E9SC5yZWFkX3NoaWZ0KDIpO2lmKGNyJiZjci5lbmMmJmNyLmVuYy5pbnNpdHUmJmNyLmVuYy5pbnNpdHUoVGUoWzAsMF0pLCJoZWFkZXItMCIpLDA9PT13YSYmIkVPRiI9PT1raSlicmVhazt2YXIgYW89SC5sPT09SC5sZW5ndGg/MDpILnJlYWRfc2hpZnQoMik7Y3ImJmNyLmVuYyYmY3Iu''@;'; + put 'put ''ZW5jLmluc2l0dSYmY3IuZW5jLmluc2l0dShUZShbMCwwXSksImxlbmd0aC0wIik7dmFyIHgwPU5sW3dhXTtpZih4MCYmeDAuZil7aWYocmUuYm9va1NoZWV0cyYmIkJvdW5kU2hlZXQ4Ij09PWtpJiYiQm91bmRTaGVldDgiIT09eDAubilicmVhaztpZihraT14MC5uLDI9PT14MC5yfHwxMj09''@;'; + put 'put ''eDAucil7dmFyIGgwPUgucmVhZF9zaGlmdCgyKTtpZihhby09MixjciYmY3IuZW5jJiZjci5lbmMuaW5zaXR1JiZjci5lbmMuaW5zaXR1KFRlKFswLDBdKSksIWNyLmVuYyYmaDAhPT13YSYmKCgyNTUmaDApPDw4fGgwPj44KSE9PXdhKXRocm93IG5ldyBFcnJvcigicnQgbWlzbWF0Y2g6ICIr''@;'; + put 'put ''aDArIiE9Iit3YSk7MTI9PXgwLnImJihILmwrPTEwLGFvLT0xMCxjciYmY3IuZW5jJiZjci5lbmMuaW5zaXR1JiZjci5lbmMuaW5zaXR1KFRlKFswLDAsMCwwLDAsMCwwLDAsMCwwXSkpKX12YXIganI9JDIoeDAsSCxhbyxjciksSGk9eDAubjtpZigwPT1OMCYmIkJPRiIhPUhpKWNvbnRpbnVl''@;'; + put 'put ''O3N3aXRjaChIaSl7Y2FzZSJEYXRlMTkwNCI6WC5vcHRzLkRhdGUxOTA0PXlyLldCUHJvcHMuZGF0ZTE5MDQ9anI7YnJlYWs7Y2FzZSJXcml0ZVByb3RlY3QiOlgub3B0cy5Xcml0ZVByb3RlY3Q9ITA7YnJlYWs7Y2FzZSJGaWxlUGFzcyI6aWYoY3IuZW5jfHwoSC5sPTAsTjA9MCksY3IuZW5j''@;'; + put 'put ''PWpyLCFyZS5wYXNzd29yZCYmbnVsbD09anIudmFsaWQpdGhyb3cgbmV3IEVycm9yKCJGaWxlIGlzIHBhc3N3b3JkLXByb3RlY3RlZCIpO2lmKG51bGw9PWpyLnZhbGlkKXRocm93IG5ldyBFcnJvcigiRW5jcnlwdGlvbiBzY2hlbWUgdW5zdXBwb3J0ZWQiKTtpZighanIudmFsaWQpdGhyb3cg''@;'; + put 'put ''bmV3IEVycm9yKCJQYXNzd29yZCBpcyBpbmNvcnJlY3QiKTticmVhaztjYXNlIldyaXRlQWNjZXNzIjpjci5sYXN0dXNlcj1qcjticmVhaztjYXNlIkZpbGVTaGFyaW5nIjpjYXNlIlRlbXBsYXRlIjpjYXNlIkJvb2tCb29sIjpjYXNlIlVzZXNFTEZzIjpjYXNlIk1UUlNldHRpbmdzIjpjYXNl''@;'; + put 'put ''IlVuY2FsY2VkIjpjYXNlIkV4dFNTVCI6Y2FzZSJCb29rRXh0IjpjYXNlIlJpY2hUZXh0U3RyZWFtIjpjYXNlIkJrSGltIjpjYXNlIkluZGV4IjpjYXNlIlByb3Q0UmV2IjpjYXNlIlByb3Q0UmV2UGFzcyI6YnJlYWs7Y2FzZSJDb2RlUGFnZSI6dmFyIHZvPU51bWJlcihqcik7c3dpdGNoKHZv''@;'; + put 'put ''KXtjYXNlIDIxMDEwOnZvPTEyMDA7YnJlYWs7Y2FzZSAzMjc2ODp2bz0xZTQ7YnJlYWs7Y2FzZSAzMjc2OTp2bz0xMjUyfWVlKGNyLmNvZGVwYWdlPXZvKSxOYT0hMDticmVhaztjYXNlIlJSVGFiSWQiOmNyLnJydGFiaWQ9anI7YnJlYWs7Y2FzZSJXaW5Qcm90ZWN0Ijpjci53aW5sb2NrZWQ9''@;'; + put 'put ''anI7YnJlYWs7Y2FzZSJSZWZyZXNoQWxsIjpjYXNlIkNhbGNDb3VudCI6Y2FzZSJDYWxjRGVsdGEiOmNhc2UiQ2FsY0l0ZXIiOmNhc2UiQ2FsY01vZGUiOmNhc2UiQ2FsY1ByZWNpc2lvbiI6Y2FzZSJDYWxjU2F2ZVJlY2FsYyI6WC5vcHRzW0hpXT1qcjticmVhaztjYXNlIkNhbGNSZWZNb2Rl''@;'; + put 'put ''Ijpjci5DYWxjUmVmTW9kZT1qcjticmVhaztjYXNlIkZvcmNlRnVsbENhbGN1bGF0aW9uIjpYLm9wdHMuRnVsbENhbGM9anI7YnJlYWs7Y2FzZSJXc0Jvb2wiOmpyLmZEaWFsb2cmJih4ZVsiIXR5cGUiXT0iZGlhbG9nIiksanIuZkJlbG93fHwoKHhlWyIhb3V0bGluZSJdfHwoeGVbIiFvdXRs''@;'; + put 'put ''aW5lIl09e30pKS5hYm92ZT0hMCksanIuZlJpZ2h0fHwoKHhlWyIhb3V0bGluZSJdfHwoeGVbIiFvdXRsaW5lIl09e30pKS5sZWZ0PSEwKTticmVhaztjYXNlIlhGIjpqci5mb250PUdyLkZvbnRzW2pyLmlmbnQ8ND9qci5pZm50OmpyLmlmbnQtMV0sTXIucHVzaChqcik7YnJlYWs7Y2FzZSJT''@;'; + put 'put ''dXBCb29rIjpOci5wdXNoKFtqcl0pLE5yW05yLmxlbmd0aC0xXS5YVEk9W107YnJlYWs7Y2FzZSJFeHRlcm5OYW1lIjpOcltOci5sZW5ndGgtMV0ucHVzaChqcik7YnJlYWs7Y2FzZSJMYmwiOiQwPXtOYW1lOmpyLk5hbWUsUmVmOlcxKGpyLnJnY2UsWmUsbnVsbCxOcixjcil9LGpyLml0YWI+''@;'; + put 'put ''MCYmKCQwLlNoZWV0PWpyLml0YWItMSksTnIubmFtZXMucHVzaCgkMCksTnJbMF18fChOclswXT1bXSxOclswXS5YVEk9W10pLE5yW05yLmxlbmd0aC0xXS5wdXNoKGpyKSwiX3hsbm0uX0ZpbHRlckRhdGFiYXNlIj09anIuTmFtZSYmanIuaXRhYj4wJiZqci5yZ2NlJiZqci5yZ2NlWzBdJiZq''@;'; + put 'put ''ci5yZ2NlWzBdWzBdJiYiUHRnQXJlYTNkIj09anIucmdjZVswXVswXVswXSYmKG9hW2pyLml0YWItMV09e3JlZjpmYShqci5yZ2NlWzBdWzBdWzFdWzJdKX0pO2JyZWFrO2Nhc2UiRXh0ZXJuQ291bnQiOmNyLkV4dGVybkNvdW50PWpyO2JyZWFrO2Nhc2UiRXh0ZXJuU2hlZXQiOjA9PU5yLmxl''@;'; + put 'put ''bmd0aCYmKE5yWzBdPVtdLE5yWzBdLlhUST1bXSksTnJbTnIubGVuZ3RoLTFdLlhUST1OcltOci5sZW5ndGgtMV0uWFRJLmNvbmNhdChqciksTnIuWFRJPU5yLlhUSS5jb25jYXQoanIpO2JyZWFrO2Nhc2UiTmFtZUNtdCI6aWYoY3IuYmlmZjw4KWJyZWFrO251bGwhPSQwJiYoJDAuQ29tbWVu''@;'; + put 'put ''dD1qclsxXSk7YnJlYWs7Y2FzZSJQcm90ZWN0Ijp4ZVsiIXByb3RlY3QiXT1qcjticmVhaztjYXNlIlBhc3N3b3JkIjowIT09anImJmNyLldURiYmY29uc29sZS5lcnJvcigiUGFzc3dvcmQgdmVyaWZpZXI6ICIranIpO2JyZWFrO2Nhc2UiQm91bmRTaGVldDgiOkZlW2pyLnBvc109anIsY3Iu''@;'; + put 'put ''c25hbWVzLnB1c2goanIubmFtZSk7YnJlYWs7Y2FzZSJFT0YiOmlmKHhlWyIhZ3JpZGxpbmVzIl09IWRpfHxkaS5ncmlkLGRpPW51bGwsLS1OMClicmVhaztpZihaZS5lKXtpZihaZS5lLnI+MCYmWmUuZS5jPjApe2lmKFplLmUuci0tLFplLmUuYy0tLHhlWyIhcmVmIl09ZmEoWmUpLHJlLnNo''@;'; + put 'put ''ZWV0Um93cyYmcmUuc2hlZXRSb3dzPD1aZS5lLnIpe3ZhciB4bz1aZS5lLnI7WmUuZS5yPXJlLnNoZWV0Um93cy0xLHhlWyIhZnVsbHJlZiJdPXhlWyIhcmVmIl0seGVbIiFyZWYiXT1mYShaZSksWmUuZS5yPXhvfVplLmUucisrLFplLmUuYysrfVVpLmxlbmd0aD4wJiYoeGVbIiFtZXJnZXMi''@;'; + put 'put ''XT1VaSksdG8ubGVuZ3RoPjAmJmlUKHRvLHhlKSxBMC5sZW5ndGg+MCYmKHhlWyIhY29scyJdPUEwKSx3aS5sZW5ndGg+MCYmKHhlWyIhcm93cyJdPXdpKSx5ci5TaGVldHMucHVzaChhcil9IiI9PT1NdD94dD14ZTp3ZVtNdF09eGUseGU9cmUuZGVuc2U/W106e307YnJlYWs7Y2FzZSJCT0Yi''@;'; + put 'put ''OmlmKDg9PT1jci5iaWZmJiYoY3IuYmlmZj17OToyLDUyMTozLDEwMzM6NH1bd2FdfHx7NTEyOjIsNzY4OjMsMTAyNDo0LDEyODA6NSwxNTM2OjgsMjoyLDc6Mn1banIuQklGRlZlcl18fDgpLGNyLmJpZmZndWVzcz0wPT1qci5CSUZGVmVyLDA9PWpyLkJJRkZWZXImJjQwOTY9PWpyLmR0JiYo''@;'; + put 'put ''Y3IuYmlmZj01LE5hPSEwLGVlKGNyLmNvZGVwYWdlPTI4NTkxKSksOD09Y3IuYmlmZiYmMD09anIuQklGRlZlciYmMTY9PWpyLmR0JiYoY3IuYmlmZj0yKSxOMCsrKWJyZWFrO2lmKHhlPXJlLmRlbnNlP1tdOnt9LGNyLmJpZmY8OCYmIU5hJiYoTmE9ITAsZWUoY3IuY29kZXBhZ2U9cmUuY29k''@;'; + put 'put ''ZXBhZ2V8fDEyNTIpKSxjci5iaWZmPDV8fDA9PWpyLkJJRkZWZXImJjQwOTY9PWpyLmR0KXsiIj09PU10JiYoTXQ9IlNoZWV0MSIpLFplPXtzOntyOjAsYzowfSxlOntyOjAsYzowfX07dmFyICRpPXtwb3M6SC5sLWFvLG5hbWU6TXR9O0ZlWyRpLnBvc109JGksY3Iuc25hbWVzLnB1c2goTXQp''@;'; + put 'put ''fWVsc2UgTXQ9KEZlW2pvXXx8e25hbWU6IiJ9KS5uYW1lOzMyPT1qci5kdCYmKHhlWyIhdHlwZSJdPSJjaGFydCIpLDY0PT1qci5kdCYmKHhlWyIhdHlwZSJdPSJtYWNybyIpLFVpPVtdLHRvPVtdLGNyLmFycmF5Zj1Ubj1bXSxBMD1bXSx3aT1bXSxoaT0hMSxhcj17SGlkZGVuOihGZVtqb118''@;'; + put 'put ''fHtoczowfSkuaHMsbmFtZTpNdH07YnJlYWs7Y2FzZSJOdW1iZXIiOmNhc2UiQklGRjJOVU0iOmNhc2UiQklGRjJJTlQiOiJjaGFydCI9PXhlWyIhdHlwZSJdJiYocmUuZGVuc2U/KHhlW2pyLnJdfHxbXSlbanIuY106eGVbWTAoe2M6anIuYyxyOmpyLnJ9KV0pJiYrK2pyLmMsT249e2l4ZmU6''@;'; + put 'put ''anIuaXhmZSxYRjpNcltqci5peGZlXXx8e30sdjpqci52YWwsdDoibiJ9LHQwPjAmJihPbi56PWlvW09uLml4ZmU+PjgmNjNdKSxWZChPbixyZSxYLm9wdHMuRGF0ZTE5MDQpLG9pKHtjOmpyLmMscjpqci5yfSxPbixyZSk7YnJlYWs7Y2FzZSJCb29sRXJyIjpPbj17aXhmZTpqci5peGZlLFhG''@;'; + put 'put ''Ok1yW2pyLml4ZmVdLHY6anIudmFsLHQ6anIudH0sdDA+MCYmKE9uLno9aW9bT24uaXhmZT4+OCY2M10pLFZkKE9uLHJlLFgub3B0cy5EYXRlMTkwNCksb2koe2M6anIuYyxyOmpyLnJ9LE9uLHJlKTticmVhaztjYXNlIlJLIjpPbj17aXhmZTpqci5peGZlLFhGOk1yW2pyLml4ZmVdLHY6anIu''@;'; + put 'put ''cmtudW0sdDoibiJ9LHQwPjAmJihPbi56PWlvW09uLml4ZmU+PjgmNjNdKSxWZChPbixyZSxYLm9wdHMuRGF0ZTE5MDQpLG9pKHtjOmpyLmMscjpqci5yfSxPbixyZSk7YnJlYWs7Y2FzZSJNdWxSayI6Zm9yKHZhciBsMj1qci5jO2wyPD1qci5DOysrbDIpe3ZhciBNYz1qci5ya3JlY1tsMi1q''@;'; + put 'put ''ci5jXVswXTtPbj17aXhmZTpNYyxYRjpNcltNY10sdjpqci5ya3JlY1tsMi1qci5jXVsxXSx0OiJuIn0sdDA+MCYmKE9uLno9aW9bT24uaXhmZT4+OCY2M10pLFZkKE9uLHJlLFgub3B0cy5EYXRlMTkwNCksb2koe2M6bDIscjpqci5yfSxPbixyZSl9YnJlYWs7Y2FzZSJGb3JtdWxhIjppZigi''@;'; + put 'put ''U3RyaW5nIj09anIudmFsKXtqZT1qcjticmVha31pZigoT249TTUoanIudmFsLGpyLmNlbGwuaXhmZSxqci50dCkpLlhGPU1yW09uLml4ZmVdLHJlLmNlbGxGb3JtdWxhKXt2YXIgcDI9anIuZm9ybXVsYTtpZihwMiYmcDJbMF0mJnAyWzBdWzBdJiYiUHRnRXhwIj09cDJbMF1bMF1bMF0pe3Zh''@;'; + put 'put ''ciBycj1wMlswXVswXVsxXVswXSxJcj1wMlswXVswXVsxXVsxXSxacj1ZMCh7cjpycixjOklyfSk7UG5bWnJdP09uLmY9IiIrVzEoanIuZm9ybXVsYSxaZSxqci5jZWxsLE5yLGNyKTpPbi5GPSgocmUuZGVuc2U/KHhlW3JyXXx8W10pW0lyXTp4ZVtacl0pfHx7fSkuRn1lbHNlIE9uLmY9IiIr''@;'; + put 'put ''VzEoanIuZm9ybXVsYSxaZSxqci5jZWxsLE5yLGNyKX10MD4wJiYoT24uej1pb1tPbi5peGZlPj44JjYzXSksVmQoT24scmUsWC5vcHRzLkRhdGUxOTA0KSxvaShqci5jZWxsLE9uLHJlKSxqZT1qcjticmVhaztjYXNlIlN0cmluZyI6aWYoIWplKXRocm93IG5ldyBFcnJvcigiU3RyaW5nIHJl''@;'; + put 'put ''Y29yZCBleHBlY3RzIEZvcm11bGEiKTtqZS52YWw9anIsKE9uPU01KGpyLGplLmNlbGwuaXhmZSwicyIpKS5YRj1NcltPbi5peGZlXSxyZS5jZWxsRm9ybXVsYSYmKE9uLmY9IiIrVzEoamUuZm9ybXVsYSxaZSxqZS5jZWxsLE5yLGNyKSksdDA+MCYmKE9uLno9aW9bT24uaXhmZT4+OCY2M10p''@;'; + put 'put ''LFZkKE9uLHJlLFgub3B0cy5EYXRlMTkwNCksb2koamUuY2VsbCxPbixyZSksamU9bnVsbDticmVhaztjYXNlIkFycmF5IjpUbi5wdXNoKGpyKTt2YXIgcWk9WTAoanJbMF0ucyk7aWYobm49cmUuZGVuc2U/KHhlW2pyWzBdLnMucl18fFtdKVtqclswXS5zLmNdOnhlW3FpXSxyZS5jZWxsRm9y''@;'; + put 'put ''bXVsYSYmbm4pe2lmKCFqZXx8IXFpfHwhbm4pYnJlYWs7bm4uZj0iIitXMShqclsxXSxaZSxqclswXSxOcixjciksbm4uRj1mYShqclswXSl9YnJlYWs7Y2FzZSJTaHJGbWxhIjppZighcmUuY2VsbEZvcm11bGEpYnJlYWs7aWYoVXQpe2lmKCFqZSlicmVhaztQbltZMChqZS5jZWxsKV09anJb''@;'; + put 'put ''MF0sKChubj1yZS5kZW5zZT8oeGVbamUuY2VsbC5yXXx8W10pW2plLmNlbGwuY106eGVbWTAoamUuY2VsbCldKXx8e30pLmY9IiIrVzEoanJbMF0sWmUsUnQsTnIsY3IpfWJyZWFrO2Nhc2UiTGFiZWxTc3QiOk9uPU01KFllW2pyLmlzc3RdLnQsanIuaXhmZSwicyIpLFllW2pyLmlzc3RdLmgm''@;'; + put 'put ''JihPbi5oPVllW2pyLmlzc3RdLmgpLE9uLlhGPU1yW09uLml4ZmVdLHQwPjAmJihPbi56PWlvW09uLml4ZmU+PjgmNjNdKSxWZChPbixyZSxYLm9wdHMuRGF0ZTE5MDQpLG9pKHtjOmpyLmMscjpqci5yfSxPbixyZSksWWVbanIuaXNzdF0uUiYmKE9uLlI9WWVbanIuaXNzdF0uUi5tYXAoZnVu''@;'; + put 'put ''Y3Rpb24ocG8pe3ZhciBwMD1sbihwbyk7cmV0dXJuIHBvLnM9PUdyLkZvbnRzWzBdJiYocDAucz1Pbi5zKSxwMH0pKTticmVhaztjYXNlIkJsYW5rIjpyZS5zaGVldFN0dWJzJiYoT249e2l4ZmU6anIuaXhmZSxYRjpNcltqci5peGZlXSx0OiJ6In0sdDA+MCYmKE9uLno9aW9bT24uaXhmZT4+''@;'; + put 'put ''OCY2M10pLFZkKE9uLHJlLFgub3B0cy5EYXRlMTkwNCksb2koe2M6anIuYyxyOmpyLnJ9LE9uLHJlKSk7YnJlYWs7Y2FzZSJNdWxCbGFuayI6aWYocmUuc2hlZXRTdHVicylmb3IodmFyIHJpPWpyLmM7cmk8PWpyLkM7KytyaSl7dmFyIHIwPWpyLml4ZmVbcmktanIuY107T249e2l4ZmU6cjAs''@;'; + put 'put ''WEY6TXJbcjBdLHQ6InoifSx0MD4wJiYoT24uej1pb1tPbi5peGZlPj44JjYzXSksVmQoT24scmUsWC5vcHRzLkRhdGUxOTA0KSxvaSh7YzpyaSxyOmpyLnJ9LE9uLHJlKX1icmVhaztjYXNlIlJTdHJpbmciOmNhc2UiTGFiZWwiOmNhc2UiQklGRjJTVFIiOihPbj1NNShqci52YWwsanIuaXhm''@;'; + put 'put ''ZSwicyIpKS5YRj1NcltPbi5peGZlXSx0MD4wJiYoT24uej1pb1tPbi5peGZlPj44JjYzXSksVmQoT24scmUsWC5vcHRzLkRhdGUxOTA0KSxvaSh7Yzpqci5jLHI6anIucn0sT24scmUpO2JyZWFrO2Nhc2UiRGltZW5zaW9ucyI6MT09PU4wJiYoWmU9anIpO2JyZWFrO2Nhc2UiU1NUIjooWWU9''@;'; + put 'put ''anIpLmZvckVhY2goZnVuY3Rpb24ocG8pe3BvLl9SPyhwby5fUlswXSYmcG8uX1JbMF0uaWR4PjAmJnBvLl9SLnVuc2hpZnQoe2lkeDowLGlmbnQ6MH0pLHBvLlI9cG8uX1IubWFwKGZ1bmN0aW9uKHAwLFFsKXtyZXR1cm57dDoicyIsdjpwby50LnNsaWNlKHAwLmlkeCwocG8uX1JbUWwrMV18''@;'; + put 'put ''fHt9KS5pZHgpLHM6R3IuRm9udHNbcDAuaWZudDw0P3AwLmlmbnQ6cDAuaWZudC0xXX19KSxyZS5jZWxsSFRNTCYmKHBvLmg9aG0ocG8uUikpKTpyZS5jZWxsSFRNTCYmKHBvLmg9bjAocG8udCkpLGRlbGV0ZSBwby5fUn0pO2JyZWFrO2Nhc2UiRm9ybWF0IjppZig0PT1jci5iaWZmKXtpb1t0''@;'; + put 'put ''MCsrXT1qclsxXTtmb3IodmFyIHBpPTA7cGk8dDArMTYzJiZGLl90YWJsZVtwaV0hPWpyWzFdOysrcGkpO3BpPj0xNjMmJkYubG9hZChqclsxXSx0MCsxNjMpfWVsc2UgRi5sb2FkKGpyWzFdLGpyWzBdKTticmVhaztjYXNlIkJJRkYyRk9STUFUIjppb1t0MCsrXT1qcjtmb3IodmFyIGUwPTA7''@;'; + put 'put ''ZTA8dDArMTYzJiZGLl90YWJsZVtlMF0hPWpyOysrZTApO2UwPj0xNjMmJkYubG9hZChqcix0MCsxNjMpO2JyZWFrO2Nhc2UiTWVyZ2VDZWxscyI6VWk9VWkuY29uY2F0KGpyKTticmVhaztjYXNlIk9iaiI6dG9banIuY21vWzBdXT1jci5sYXN0b2JqPWpyO2JyZWFrO2Nhc2UiVHhPIjpjci5s''@;'; + put 'put ''YXN0b2JqLlR4Tz1qcjticmVhaztjYXNlIkltRGF0YSI6Y3IubGFzdG9iai5JbURhdGE9anI7YnJlYWs7Y2FzZSJITGluayI6Zm9yKHp0PWpyWzBdLnMucjt6dDw9anJbMF0uZS5yOysrenQpZm9yKER0PWpyWzBdLnMuYztEdDw9anJbMF0uZS5jOysrRHQpKG5uPXJlLmRlbnNlPyh4ZVt6dF18''@;'; + put 'put ''fFtdKVtEdF06eGVbWTAoe2M6RHQscjp6dH0pXSkmJihubi5sPWpyWzFdKTticmVhaztjYXNlIkhMaW5rVG9vbHRpcCI6Zm9yKHp0PWpyWzBdLnMucjt6dDw9anJbMF0uZS5yOysrenQpZm9yKER0PWpyWzBdLnMuYztEdDw9anJbMF0uZS5jOysrRHQpKG5uPXJlLmRlbnNlPyh4ZVt6dF18fFtd''@;'; + put 'put ''KVtEdF06eGVbWTAoe2M6RHQscjp6dH0pXSkmJm5uLmwmJihubi5sLlRvb2x0aXA9anJbMV0pO2JyZWFrO2Nhc2UiTm90ZSI6aWYoY3IuYmlmZjw9NSYmY3IuYmlmZj49MilicmVhaztubj1yZS5kZW5zZT8oeGVbanJbMF0ucl18fFtdKVtqclswXS5jXTp4ZVtZMChqclswXSldO3ZhciBPbz10''@;'; + put 'put ''b1tqclsyXV07bm58fChyZS5kZW5zZT8oeGVbanJbMF0ucl18fCh4ZVtqclswXS5yXT1bXSksbm49eGVbanJbMF0ucl1banJbMF0uY109e3Q6InoifSk6bm49eGVbWTAoanJbMF0pXT17dDoieiJ9LFplLmUucj1NYXRoLm1heChaZS5lLnIsanJbMF0uciksWmUucy5yPU1hdGgubWluKFplLnMu''@;'; + put 'put ''cixqclswXS5yKSxaZS5lLmM9TWF0aC5tYXgoWmUuZS5jLGpyWzBdLmMpLFplLnMuYz1NYXRoLm1pbihaZS5zLmMsanJbMF0uYykpLG5uLmN8fChubi5jPVtdKSxubi5jLnB1c2goe2E6anJbMV0sdDpPby5UeE8udH0pO2JyZWFrO2RlZmF1bHQ6c3dpdGNoKHgwLm4pe2Nhc2UiQ2xydENsaWVu''@;'; + put 'put ''dCI6Y2FzZSJIZWFkZXIiOmNhc2UiRm9vdGVyIjpjYXNlIkhDZW50ZXIiOmNhc2UiVkNlbnRlciI6Y2FzZSJQbHMiOmNhc2UiR0NXIjpjYXNlIkxIUmVjb3JkIjpjYXNlIkRCQ2VsbCI6Y2FzZSJFbnRFeFUyIjpjYXNlIlN4VmlldyI6Y2FzZSJTeHZkIjpjYXNlIlNYVkkiOmNhc2UiU1hWREV4''@;'; + put 'put ''IjpjYXNlIlN4SXZkIjpjYXNlIlNYU3RyaW5nIjpjYXNlIlN5bmMiOmNhc2UiQWRkaW4iOmNhc2UiU1hESSI6Y2FzZSJTWExJIjpjYXNlIlNYRXgiOmNhc2UiUXNpU1hUYWciOmNhc2UiRmVhdCI6Y2FzZSJGZWF0SGRyIjpjYXNlIkZlYXRIZHIxMSI6Y2FzZSJGZWF0dXJlMTEiOmNhc2UiRmVh''@;'; + put 'put ''dHVyZTEyIjpjYXNlIkxpc3QxMiI6Y2FzZSJSZWNhbGNJZCI6Y2FzZSJEeEdDb2wiOmNhc2UiRmJpIjpjYXNlIkZiaTIiOmNhc2UiR2VsRnJhbWUiOmNhc2UiWEZDUkMiOmNhc2UiU3R5bGUiOmNhc2UiU3R5bGVFeHQiOmNhc2UiU2NlbmFyaW9Qcm90ZWN0IjpjYXNlIk9ialByb3RlY3QiOmNh''@;'; + put 'put ''c2UiQ29uZEZtdDEyIjpjYXNlIlRhYmxlIjpjYXNlIlRhYmxlU3R5bGVzIjpjYXNlIlRhYmxlU3R5bGUiOmNhc2UiVGFibGVTdHlsZUVsZW1lbnQiOmNhc2UiU1hTdHJlYW1JRCI6Y2FzZSJTWFZTIjpjYXNlIkRDb25SZWYiOmNhc2UiU1hBZGRsIjpjYXNlIkRDb25CaW4iOmNhc2UiRENvbk5h''@;'; + put 'put ''bWUiOmNhc2UiU1hQSSI6Y2FzZSJTeEZvcm1hdCI6Y2FzZSJTeFNlbGVjdCI6Y2FzZSJTeFJ1bGUiOmNhc2UiU3hGaWx0IjpjYXNlIlN4SXRtIjpjYXNlIlN4RFhGIjpjYXNlIlNjZW5NYW4iOmNhc2UiRENvbiI6Y2FzZSJDZWxsV2F0Y2giOmNhc2UiUHJpbnRSb3dDb2wiOmNhc2UiUHJpbnRH''@;'; + put 'put ''cmlkIjpjYXNlIlByaW50U2l6ZSI6Y2FzZSJYQ1QiOmNhc2UiQ1JOIjpjYXNlIlNjbCI6Y2FzZSJTaGVldEV4dCI6Y2FzZSJTaGVldEV4dE9wdGlvbmFsIjpjYXNlIk9iTm9NYWNyb3MiOmNhc2UiT2JQcm9qIjpjYXNlIkdVSURUeXBlTGliIjpjYXNlIldPcHQiOmNhc2UiUGhvbmV0aWNJbmZv''@;'; + put 'put ''IjpjYXNlIk9sZU9iamVjdFNpemUiOmNhc2UiRFhGIjpjYXNlIkRYRk4iOmNhc2UiRFhGTjEyIjpjYXNlIkRYRk4xMkxpc3QiOmNhc2UiRFhGTjEyTm9DQiI6Y2FzZSJEdiI6Y2FzZSJEVmFsIjpjYXNlIkJSQUkiOmNhc2UiU2VyaWVzIjpjYXNlIlNlcmllc1RleHQiOmNhc2UiRENvbm4iOmNh''@;'; + put 'put ''c2UiRGJPclBhcmFtUXJ5IjpjYXNlIkRCUXVlcnlFeHQiOmNhc2UiT2xlRGJDb25uIjpjYXNlIkV4dFN0cmluZyI6Y2FzZSJJRm10UmVjb3JkIjpjYXNlIkNvbmRGbXQiOmNhc2UiQ0YiOmNhc2UiQ0YxMiI6Y2FzZSJDRkV4IjpjYXNlIkV4Y2VsOUZpbGUiOmNhc2UiVW5pdHMiOmNhc2UiSW50''@;'; + put 'put ''ZXJmYWNlSGRyIjpjYXNlIk1tcyI6Y2FzZSJJbnRlcmZhY2VFbmQiOmNhc2UiRFNGIjpjYXNlIkJ1aWx0SW5Gbkdyb3VwQ291bnQiOmNhc2UiV2luZG93MSI6Y2FzZSJIaWRlT2JqIjpjYXNlIkdyaWRTZXQiOmNhc2UiR3V0cyI6Y2FzZSJVc2VyQlZpZXciOmNhc2UiVXNlclNWaWV3QmVnaW4i''@;'; + put 'put ''OmNhc2UiVXNlclNWaWV3RW5kIjpjYXNlIkRlZkNvbFdpZHRoIjpjYXNlIkRlZmF1bHRSb3dIZWlnaHQiOmJyZWFrO2Nhc2UiWEZFeHQiOkxiKE1yW2pyLml4ZmVdLGpyLmV4dCk7YnJlYWs7Y2FzZSJDb2xJbmZvIjppZighY3IuY2VsbFN0eWxlcylicmVhaztmb3IoO2pyLmU+PWpyLnM7KUEw''@;'; + put 'put ''W2pyLmUtLV09e3dpZHRoOmpyLncvMjU2LGxldmVsOmpyLmxldmVsfHwwLGhpZGRlbjohISgxJmpyLmZsYWdzKX0saGl8fChoaT0hMCkseWMoQTBbanIuZSsxXSk7YnJlYWs7Y2FzZSJSb3ciOnZhciBrMD17fTtudWxsIT1qci5sZXZlbCYmKHdpW2pyLnJdPWswLGswLmxldmVsPWpyLmxldmVs''@;'; + put 'put ''KSxqci5oaWRkZW4mJih3aVtqci5yXT1rMCxrMC5oaWRkZW49ITApLGpyLmhwdCYmKHdpW2pyLnJdPWswLGswLmhwdD1qci5ocHQsazAuaHB4PUFmKGpyLmhwdCkpLGpyLml4ZmUmJih3aVtqci5yXT1rMCxxcihPbj17aXhmZTpqci5peGZlLFhGOk1yW2pyLml4ZmVdfHx7fSx2OjAsdDoibiJ9''@;'; + put 'put ''LHJlKSxrMC5zPU9uLnMpO2JyZWFrO2Nhc2UiTGVmdE1hcmdpbiI6Y2FzZSJSaWdodE1hcmdpbiI6Y2FzZSJUb3BNYXJnaW4iOmNhc2UiQm90dG9tTWFyZ2luIjp4ZVsiIW1hcmdpbnMiXXx8QmQoeGVbIiFtYXJnaW5zIl09e30pLHhlWyIhbWFyZ2lucyJdW0hpLnNsaWNlKDAsLTYpLnRvTG93''@;'; + put 'put ''ZXJDYXNlKCldPWpyO2JyZWFrO2Nhc2UiU2VsZWN0aW9uIjp4ZVsiIXNlbCJdPWpyO2JyZWFrO2Nhc2UiU2V0dXAiOnhlWyIhbWFyZ2lucyJdfHxCZCh4ZVsiIW1hcmdpbnMiXT17fSkseGVbIiFtYXJnaW5zIl0uaGVhZGVyPWpyLmhlYWRlcix4ZVsiIW1hcmdpbnMiXS5mb290ZXI9anIuZm9v''@;'; + put 'put ''dGVyO2JyZWFrO2Nhc2UiV2luZG93MiI6anIuUlRMJiYoeXIuVmlld3NbMF0uUlRMPSEwKSxkaT1qcjticmVhaztjYXNlIkNvdW50cnkiOlluPWpyO2JyZWFrO2Nhc2UiRm9udCI6anIuaWN2JiZ6cihqci5pY3YpJiYoanIuY29sb3I9e3JnYjpiMyh6cihqci5pY3YpKX0pLGRlbGV0ZSBqci5p''@;'; + put 'put ''Y3YsMD09R3IuRm9udHMubGVuZ3RoJiZTMyhqciksR3IuRm9udHMucHVzaChqcik7YnJlYWs7Y2FzZSJQYWxldHRlIjphaT1qcjticmVhaztjYXNlIlRoZW1lIjp2MD1qcjticmVhaztjYXNlIkNvZGVOYW1lIjpNdD9hci5Db2RlTmFtZT1qcnx8YXIubmFtZTp5ci5XQlByb3BzLkNvZGVOYW1l''@;'; + put 'put ''PWpyfHwiVGhpc1dvcmtib29rIjticmVhaztjYXNlIlBhbmUiOihkaXx8e30pLmZyb3plbiYmKHhlWyIhZnJlZXplIl09WTAoe3I6anIueXx8MCxjOmpyLnh8fDB9KSk7YnJlYWs7ZGVmYXVsdDpzd2l0Y2goeDAubil7Y2FzZSJEYXQiOmNhc2UiQmVnaW4iOmNhc2UiRW5kIjpjYXNlIlN0YXJ0''@;'; + put 'put ''QmxvY2siOmNhc2UiRW5kQmxvY2siOmNhc2UiRnJhbWUiOmNhc2UiQXJlYSI6Y2FzZSJBeGlzIjpjYXNlIkF4aXNMaW5lIjpjYXNlIlRpY2siOmNhc2UiQXhlc1VzZWQiOmNhc2UiQ3J0TGF5b3V0MTIiOmNhc2UiQ3J0TGF5b3V0MTJBIjpjYXNlIkNydExpbmsiOmNhc2UiQ3J0TGluZSI6Y2Fz''@;'; + put 'put ''ZSJDcnRNbEZydCI6Y2FzZSJDcnRNbEZydENvbnRpbnVlIjpjYXNlIkxpbmVGb3JtYXQiOmNhc2UiQXJlYUZvcm1hdCI6Y2FzZSJDaGFydCI6Y2FzZSJDaGFydDNkIjpjYXNlIkNoYXJ0M0RCYXJTaGFwZSI6Y2FzZSJDaGFydEZvcm1hdCI6Y2FzZSJDaGFydEZydEluZm8iOmNhc2UiUGxvdEFy''@;'; + put 'put ''ZWEiOmNhc2UiUGxvdEdyb3d0aCI6Y2FzZSJTZXJpZXNMaXN0IjpjYXNlIlNlclBhcmVudCI6Y2FzZSJTZXJBdXhUcmVuZCI6Y2FzZSJEYXRhRm9ybWF0IjpjYXNlIlNlclRvQ3J0IjpjYXNlIkZvbnRYIjpjYXNlIkNhdFNlclJhbmdlIjpjYXNlIkF4Y0V4dCI6Y2FzZSJTZXJGbXQiOmNhc2Ui''@;'; + put 'put ''U2h0UHJvcHMiOmNhc2UiRGVmYXVsdFRleHQiOmNhc2UiVGV4dCI6Y2FzZSJDYXRMYWIiOmNhc2UiRGF0YUxhYkV4dENvbnRlbnRzIjpjYXNlIkxlZ2VuZCI6Y2FzZSJMZWdlbmRFeGNlcHRpb24iOmNhc2UiUGllIjpjYXNlIlNjYXR0ZXIiOmNhc2UiUGllRm9ybWF0IjpjYXNlIk1hcmtlckZv''@;'; + put 'put ''cm1hdCI6Y2FzZSJTdGFydE9iamVjdCI6Y2FzZSJFbmRPYmplY3QiOmNhc2UiQWxSdW5zIjpjYXNlIk9iamVjdExpbmsiOmNhc2UiU0lJbmRleCI6Y2FzZSJBdHRhY2hlZExhYmVsIjpjYXNlIllNdWx0IjpjYXNlIkxpbmUiOmNhc2UiQmFyIjpjYXNlIlN1cmYiOmNhc2UiQXhpc1BhcmVudCI6''@;'; + put 'put ''Y2FzZSJQb3MiOmNhc2UiVmFsdWVSYW5nZSI6Y2FzZSJTWFZpZXdFeDkiOmNhc2UiU1hWaWV3TGluayI6Y2FzZSJQaXZvdENoYXJ0Qml0cyI6Y2FzZSJTQmFzZVJlZiI6Y2FzZSJUZXh0UHJvcHNTdHJlYW0iOmNhc2UiTG5FeHQiOmNhc2UiTWtyRXh0IjpjYXNlIkNydENvb3B0IjpjYXNlIlFz''@;'; + put 'put ''aSI6Y2FzZSJRc2lmIjpjYXNlIlFzaXIiOmNhc2UiUXNpU1hUYWciOmNhc2UiVHh0UXJ5IjpjYXNlIkZpbHRlck1vZGUiOmNhc2UiQXV0b0ZpbHRlciI6Y2FzZSJBdXRvRmlsdGVySW5mbyI6Y2FzZSJBdXRvRmlsdGVyMTIiOmNhc2UiRHJvcERvd25PYmpJZHMiOmNhc2UiU29ydCI6Y2FzZSJT''@;'; + put 'put ''b3J0RGF0YSI6Y2FzZSJTaGFwZVByb3BzU3RyZWFtIjpjYXNlIk1zb0RyYXdpbmciOmNhc2UiTXNvRHJhd2luZ0dyb3VwIjpjYXNlIk1zb0RyYXdpbmdTZWxlY3Rpb24iOmNhc2UiV2ViUHViIjpjYXNlIkF1dG9XZWJQdWIiOmNhc2UiSGVhZGVyRm9vdGVyIjpjYXNlIkhGUGljdHVyZSI6Y2Fz''@;'; + put 'put ''ZSJQTFYiOmNhc2UiSG9yaXpvbnRhbFBhZ2VCcmVha3MiOmNhc2UiVmVydGljYWxQYWdlQnJlYWtzIjpjYXNlIkJhY2t1cCI6Y2FzZSJDb21wcmVzc1BpY3R1cmVzIjpjYXNlIkNvbXBhdDEyIjpjYXNlIkNvbnRpbnVlIjpjYXNlIkNvbnRpbnVlRnJ0MTIiOmNhc2UiRnJ0Rm9udExpc3QiOmNh''@;'; + put 'put ''c2UiRnJ0V3JhcHBlciI6YnJlYWs7ZGVmYXVsdDpzd2l0Y2goeDAubil7Y2FzZSJUYWJJZENvbmYiOmNhc2UiUmFkYXIiOmNhc2UiUmFkYXJBcmVhIjpjYXNlIkRyb3BCYXIiOmNhc2UiSW50bCI6Y2FzZSJDb29yZExpc3QiOmNhc2UiU2VyQXV4RXJyQmFyIjpjYXNlIkJJRkYyRk9OVENMUiI6''@;'; + put 'put ''Y2FzZSJCSUZGMkZNVENOVCI6Y2FzZSJCSUZGMkZPTlRYVFJBIjpjYXNlIkJJRkYyWEYiOmNhc2UiQklGRjNYRiI6Y2FzZSJCSUZGNFhGIjpjYXNlIkJJRkYyWEZJTkRFWCI6Y2FzZSJCSUZGNEZNVENOVCI6Y2FzZSJCSUZGMlJPVyI6Y2FzZSJCSUZGMldJTkRPVzIiOmNhc2UiU0NFTkFSSU8i''@;'; + put 'put ''OmNhc2UiRENvbkJpbiI6Y2FzZSJQaWNGIjpjYXNlIkRhdGFMYWJFeHQiOmNhc2UiTGVsIjpjYXNlIkJvcFBvcCI6Y2FzZSJCb3BQb3BDdXN0b20iOmNhc2UiUmVhbFRpbWVEYXRhIjpjYXNlIk5hbWUiOmNhc2UiTEhOR3JhcGgiOmNhc2UiRm5Hcm91cE5hbWUiOmNhc2UiQWRkTWVudSI6Y2Fz''@;'; + put 'put ''ZSJMUHIiOmNhc2UiTGlzdE9iaiI6Y2FzZSJMaXN0RmllbGQiOmNhc2UiUlJTb3J0IjpjYXNlIkJpZ05hbWUiOmNhc2UiVG9vbGJhckhkciI6Y2FzZSJUb29sYmFyRW5kIjpjYXNlIkRERU9iak5hbWUiOmNhc2UiRlJUQXJjaElkJCI6YnJlYWs7ZGVmYXVsdDppZihyZS5XVEYpdGhyb3ciVW5y''@;'; + put 'put ''ZWNvZ25pemVkIFJlY29yZCAiK3gwLm59fX19fWVsc2UgSC5sKz1hbyxjciYmY3IuZW5jJiZjci5lbmMuaW5zaXR1JiZjci5lbmMuaW5zaXR1KFRlKHtsZW5ndGg6YW99KSl9cmV0dXJuIFguU2hlZXROYW1lcz1vbihGZSkuc29ydChmdW5jdGlvbihwbyxwMCl7cmV0dXJuIE51bWJlcihwbykt''@;'; + put 'put ''TnVtYmVyKHAwKX0pLm1hcChmdW5jdGlvbihwbyl7cmV0dXJuIEZlW3BvXS5uYW1lfSkscmUuYm9va1NoZWV0c3x8KFguU2hlZXRzPXdlKSwhWC5TaGVldE5hbWVzLmxlbmd0aCYmeHRbIiFyZWYiXT8oWC5TaGVldE5hbWVzLnB1c2goIlNoZWV0MSIpLFguU2hlZXRzJiYoWC5TaGVldHMuU2hl''@;'; + put 'put ''ZXQxPXh0KSk6WC5QcmVhbWJsZT14dCxYLlNoZWV0cyYmb2EuZm9yRWFjaChmdW5jdGlvbihwbyxwMCl7WC5TaGVldHNbWC5TaGVldE5hbWVzW3AwXV1bIiFhdXRvZmlsdGVyIl09cG99KSxYLlN0cmluZ3M9WWUsWC5TU0Y9Ri5nZXRfdGFibGUoKSxjci5lbmMmJihYLkVuY3J5cHRpb249Y3Iu''@;'; + put 'put ''ZW5jKSx2MCYmKFguVGhlbWVzPXYwKSxYLk1ldGFkYXRhPXt9LHZvaWQgMCE9PVluJiYoWC5NZXRhZGF0YS5Db3VudHJ5PVluKSxOci5uYW1lcy5sZW5ndGg+MCYmKHlyLk5hbWVzPU5yLm5hbWVzKSxYLldvcmtib29rPXlyLFh9KHdlLmNvbnRlbnQscmUpO2Vsc2UgaWYoKEZlPW10LmZpbmQo''@;'; + put 'put ''SCwiUGVyZmVjdE9mZmljZV9NQUlOIikpJiZGZS5jb250ZW50KXhlPUcxLnRvX3dvcmtib29rKEZlLmNvbnRlbnQsKHJlLnR5cGU9WmUscmUpKTtlbHNle2lmKCEoRmU9bXQuZmluZChILCJOYXRpdmVDb250ZW50X01BSU4iKSl8fCFGZS5jb250ZW50KXRocm93IG5ldyBFcnJvcigiQ2Fubm90''@;'; + put 'put ''IGZpbmQgV29ya2Jvb2sgc3RyZWFtIik7eGU9RzEudG9fd29ya2Jvb2soRmUuY29udGVudCwocmUudHlwZT1aZSxyZSkpfXJlLmJvb2tWQkEmJkguRnVsbFBhdGhzJiZtdC5maW5kKEgsIi9fVkJBX1BST0pFQ1RfQ1VSL1ZCQS9kaXIiKSYmKHhlLnZiYXJhdz1mdW5jdGlvbiBRYihIKXt2YXIg''@;'; + put 'put ''cmU9bXQudXRpbHMuY2ZiX25ldyh7cm9vdDoiUiJ9KTtyZXR1cm4gSC5GdWxsUGF0aHMuZm9yRWFjaChmdW5jdGlvbihYLHdlKXtpZigiLyIhPT1YLnNsaWNlKC0xKSYmWC5tYXRjaCgvX1ZCQV9QUk9KRUNUX0NVUi8pKXt2YXIgeGU9WC5yZXBsYWNlKC9eW15cL10qLywiUiIpLnJlcGxhY2Uo''@;'; + put 'put ''L1wvX1ZCQV9QUk9KRUNUX0NVUlx1MDAwMCovLCIiKTttdC51dGlscy5jZmJfYWRkKHJlLHhlLEguRmlsZUluZGV4W3dlXS5jb250ZW50KX19KSxtdC53cml0ZShyZSl9KEgpKX12YXIgamU9e307cmV0dXJuIEguRnVsbFBhdGhzJiZmdW5jdGlvbiBvVChILHJlLFgpe3ZhciB3ZT1tdC5maW5k''@;'; + put 'put ''KEgsIiFEb2N1bWVudFN1bW1hcnlJbmZvcm1hdGlvbiIpO2lmKHdlJiZ3ZS5zaXplPjApdHJ5e3ZhciB4ZT1iZCh3ZSxyYixFNV9EU0kpO2Zvcih2YXIgRmUgaW4geGUpcmVbRmVdPXhlW0ZlXX1jYXRjaChNdCl7aWYoWC5XVEYpdGhyb3cgTXR9dmFyIFplPW10LmZpbmQoSCwiIVN1bW1hcnlJ''@;'; + put 'put ''bmZvcm1hdGlvbiIpO2lmKFplJiZaZS5zaXplPjApdHJ5e3ZhciBqZT1iZChaZSxVcCxFNV9TSSk7Zm9yKHZhciBZZSBpbiBqZSludWxsPT1yZVtZZV0mJihyZVtZZV09amVbWWVdKX1jYXRjaChNdCl7aWYoWC5XVEYpdGhyb3cgTXR9cmUuSGVhZGluZ1BhaXJzJiZyZS5UaXRsZXNPZlBhcnRz''@;'; + put 'put ''JiYoQXMocmUuSGVhZGluZ1BhaXJzLHJlLlRpdGxlc09mUGFydHMscmUsWCksZGVsZXRlIHJlLkhlYWRpbmdQYWlycyxkZWxldGUgcmUuVGl0bGVzT2ZQYXJ0cyl9KEgsamUscmUpLHhlLlByb3BzPXhlLkN1c3Rwcm9wcz1qZSxyZS5ib29rRmlsZXMmJih4ZS5jZmI9SCkseGV9dmFyIHg1PXsw''@;'; + put 'put ''OntuOiJCcnRSb3dIZHIiLGY6ZnVuY3Rpb24gJEIoSCxyZSl7dmFyIFg9e30sd2U9SC5sK3JlO1gucj1ILnJlYWRfc2hpZnQoNCksSC5sKz00O3ZhciB4ZT1ILnJlYWRfc2hpZnQoMik7SC5sKz0xO3ZhciBGZT1ILnJlYWRfc2hpZnQoMSk7cmV0dXJuIEgubD13ZSw3JkZlJiYoWC5sZXZlbD03''@;'; + put 'put ''JkZlKSwxNiZGZSYmKFguaGlkZGVuPSEwKSwzMiZGZSYmKFguaHB0PXhlLzIwKSxYfX0sMTp7bjoiQnJ0Q2VsbEJsYW5rIixmOmZ1bmN0aW9uIHJQKEgpe3JldHVyblt2aChIKV19fSwyOntuOiJCcnRDZWxsUmsiLGY6ZnVuY3Rpb24gQXgoSCl7cmV0dXJuW3ZoKEgpLFdnKEgpLCJuIl19fSwz''@;'; + put 'put ''OntuOiJCcnRDZWxsRXJyb3IiLGY6ZnVuY3Rpb24gWGYoSCl7cmV0dXJuW3ZoKEgpLEgucmVhZF9zaGlmdCgxKSwiZSJdfX0sNDp7bjoiQnJ0Q2VsbEJvb2wiLGY6ZnVuY3Rpb24gTm0oSCl7cmV0dXJuW3ZoKEgpLEgucmVhZF9zaGlmdCgxKSwiYiJdfX0sNTp7bjoiQnJ0Q2VsbFJlYWwiLGY6''@;'; + put 'put ''ZnVuY3Rpb24gTzMoSCl7cmV0dXJuW3ZoKEgpLEkyKEgpLCJuIl19fSw2OntuOiJCcnRDZWxsU3QiLGY6ZnVuY3Rpb24gd3goSCl7cmV0dXJuW3ZoKEgpLHh1KEgpLCJzdHIiXX19LDc6e246IkJydENlbGxJc3N0IixmOmZ1bmN0aW9uIEtmKEgpe3JldHVyblt2aChIKSxILnJlYWRfc2hpZnQo''@;'; + put 'put ''NCksInMiXX19LDg6e246IkJydEZtbGFTdHJpbmciLGY6ZnVuY3Rpb24gcm4oSCxyZSxYKXt2YXIgd2U9SC5sK3JlLHhlPXZoKEgpO3hlLnI9WFsiIXJvdyJdO3ZhciBaZT1beGUseHUoSCksInN0ciJdO2lmKFguY2VsbEZvcm11bGEpe0gubCs9Mjt2YXIgamU9c18oSCx3ZS1ILmwsWCk7WmVb''@;'; + put 'put ''M109VzEoamUsbnVsbCx4ZSxYLnN1cGJvb2tzLFgpfWVsc2UgSC5sPXdlO3JldHVybiBaZX19LDk6e246IkJydEZtbGFOdW0iLGY6ZnVuY3Rpb24gYkEoSCxyZSxYKXt2YXIgd2U9SC5sK3JlLHhlPXZoKEgpO3hlLnI9WFsiIXJvdyJdO3ZhciBaZT1beGUsSTIoSCksIm4iXTtpZihYLmNlbGxG''@;'; + put 'put ''b3JtdWxhKXtILmwrPTI7dmFyIGplPXNfKEgsd2UtSC5sLFgpO1plWzNdPVcxKGplLG51bGwseGUsWC5zdXBib29rcyxYKX1lbHNlIEgubD13ZTtyZXR1cm4gWmV9fSwxMDp7bjoiQnJ0Rm1sYUJvb2wiLGY6ZnVuY3Rpb24gZHUoSCxyZSxYKXt2YXIgd2U9SC5sK3JlLHhlPXZoKEgpO3hlLnI9''@;'; + put 'put ''WFsiIXJvdyJdO3ZhciBaZT1beGUsSC5yZWFkX3NoaWZ0KDEpLCJiIl07aWYoWC5jZWxsRm9ybXVsYSl7SC5sKz0yO3ZhciBqZT1zXyhILHdlLUgubCxYKTtaZVszXT1XMShqZSxudWxsLHhlLFguc3VwYm9va3MsWCl9ZWxzZSBILmw9d2U7cmV0dXJuIFplfX0sMTE6e246IkJydEZtbGFFcnJv''@;'; + put 'put ''ciIsZjpmdW5jdGlvbiBfYyhILHJlLFgpe3ZhciB3ZT1ILmwrcmUseGU9dmgoSCk7eGUucj1YWyIhcm93Il07dmFyIFplPVt4ZSxILnJlYWRfc2hpZnQoMSksImUiXTtpZihYLmNlbGxGb3JtdWxhKXtILmwrPTI7dmFyIGplPXNfKEgsd2UtSC5sLFgpO1plWzNdPVcxKGplLG51bGwseGUsWC5z''@;'; + put 'put ''dXBib29rcyxYKX1lbHNlIEgubD13ZTtyZXR1cm4gWmV9fSwxMjp7bjoiQnJ0U2hvcnRCbGFuayIsZjpmdW5jdGlvbiBpUChIKXtyZXR1cm5bTTQoSCldfX0sMTM6e246IkJydFNob3J0UmsiLGY6ZnVuY3Rpb24geXgoSCl7cmV0dXJuW000KEgpLFdnKEgpLCJuIl19fSwxNDp7bjoiQnJ0U2hv''@;'; + put 'put ''cnRFcnJvciIsZjpmdW5jdGlvbiBnNShIKXtyZXR1cm5bTTQoSCksSC5yZWFkX3NoaWZ0KDEpLCJlIl19fSwxNTp7bjoiQnJ0U2hvcnRCb29sIixmOmZ1bmN0aW9uIHg2KEgpe3JldHVybltNNChIKSxILnJlYWRfc2hpZnQoMSksImIiXX19LDE2OntuOiJCcnRTaG9ydFJlYWwiLGY6VTR9LDE3''@;'; + put 'put ''OntuOiJCcnRTaG9ydFN0IixmOmZ1bmN0aW9uIGJ4KEgpe3JldHVybltNNChIKSx4dShIKSwic3RyIl19fSwxODp7bjoiQnJ0U2hvcnRJc3N0IixmOmZ1bmN0aW9uIFQ2KEgpe3JldHVybltNNChIKSxILnJlYWRfc2hpZnQoNCksInMiXX19LDE5OntuOiJCcnRTU1RJdGVtIixmOkNzfSwyMDp7''@;'; + put 'put ''bjoiQnJ0UENESU1pc3NpbmcifSwyMTp7bjoiQnJ0UENESU51bWJlciJ9LDIyOntuOiJCcnRQQ0RJQm9vbGVhbiJ9LDIzOntuOiJCcnRQQ0RJRXJyb3IifSwyNDp7bjoiQnJ0UENESVN0cmluZyJ9LDI1OntuOiJCcnRQQ0RJRGF0ZXRpbWUifSwyNjp7bjoiQnJ0UENESUluZGV4In0sMjc6e246''@;'; + put 'put ''IkJydFBDRElBTWlzc2luZyJ9LDI4OntuOiJCcnRQQ0RJQU51bWJlciJ9LDI5OntuOiJCcnRQQ0RJQUJvb2xlYW4ifSwzMDp7bjoiQnJ0UENESUFFcnJvciJ9LDMxOntuOiJCcnRQQ0RJQVN0cmluZyJ9LDMyOntuOiJCcnRQQ0RJQURhdGV0aW1lIn0sMzM6e246IkJydFBDUlJlY29yZCJ9LDM0''@;'; + put 'put ''OntuOiJCcnRQQ1JSZWNvcmREdCJ9LDM1OntuOiJCcnRGUlRCZWdpbiJ9LDM2OntuOiJCcnRGUlRFbmQifSwzNzp7bjoiQnJ0QUNCZWdpbiJ9LDM4OntuOiJCcnRBQ0VuZCJ9LDM5OntuOiJCcnROYW1lIixmOmZ1bmN0aW9uIFl0KEgscmUsWCl7dmFyIHdlPUgubCtyZTtILmwrPTQsSC5sKz0x''@;'; + put 'put ''O3ZhciB4ZT1ILnJlYWRfc2hpZnQoNCksRmU9YTkoSCksWmU9Z0coSCwwLFgpLGplPXloKEgpO0gubD13ZTt2YXIgWWU9e05hbWU6RmUsUHRnOlplfTtyZXR1cm4geGU8MjY4NDM1NDU1JiYoWWUuU2hlZXQ9eGUpLGplJiYoWWUuQ29tbWVudD1qZSksWWV9fSw0MDp7bjoiQnJ0SW5kZXhSb3dC''@;'; + put 'put ''bG9jayJ9LDQyOntuOiJCcnRJbmRleEJsb2NrIn0sNDM6e246IkJydEZvbnQiLGY6ZnVuY3Rpb24gdEcoSCxyZSxYKXt2YXIgd2U9e307d2Uuc3o9SC5yZWFkX3NoaWZ0KDIpLzIwO3ZhciB4ZT10YihIKTtzd2l0Y2goeGUuZkJvbGQmJih3ZS5ib2xkPTEpLHhlLmZJdGFsaWMmJih3ZS5pdGFs''@;'; + put 'put ''aWM9MSkseGUuZlVuZGVybGluZSYmKHdlLnVuZGVybGluZT0xKSx4ZS5mQ29uZGVuc2UmJih3ZS5jb25kZW5zZT0xKSx4ZS5mRXh0ZW5kJiYod2UuZXh0ZW5kPTEpLHhlLmZTaGFkb3cmJih3ZS5zaGFkb3c9MSkseGUuZk91dGxpbmUmJih3ZS5vdXRsaW5lPTEpLHhlLmZTdHJpa2VvdXQmJih3''@;'; + put 'put ''ZS5zdHJpa2U9MSksNzAwPT09SC5yZWFkX3NoaWZ0KDIpJiYod2UuYm9sZD0xKSxILnJlYWRfc2hpZnQoMikpe2Nhc2UgMTp3ZS52YWxpZ249InN1cGVyIjticmVhaztjYXNlIDI6d2UudmFsaWduPSJzdWIifXZhciBaZT1ILnJlYWRfc2hpZnQoMSk7MCE9WmUmJih3ZS51bmRlcmxpbmU9WmUp''@;'; + put 'put ''O3ZhciBqZT1ILnJlYWRfc2hpZnQoMSk7amU+MCYmKHdlLmZhbWlseT1qZSk7dmFyIFllPUgucmVhZF9zaGlmdCgxKTtzd2l0Y2goWWU+MCYmKHdlLmNoYXJzZXQ9WWUpLEgubCsrLHdlLmNvbG9yPVVnKEgpLEgucmVhZF9zaGlmdCgxKSl7Y2FzZSAxOndlLnNjaGVtZT0ibWFqb3IiO2JyZWFr''@;'; + put 'put ''O2Nhc2UgMjp3ZS5zY2hlbWU9Im1pbm9yIn1yZXR1cm4gd2UubmFtZT14dShIKSx3ZX19LDQ0OntuOiJCcnRGbXQiLGY6ZnVuY3Rpb24gSzgoSCxyZSl7cmV0dXJuW0gucmVhZF9zaGlmdCgyKSx4dShIKV19fSw0NTp7bjoiQnJ0RmlsbCIsZjpmdW5jdGlvbiBYUihILHJlKXt2YXIgWD1ILmwr''@;'; + put 'put ''cmUsd2U9e30seGU9SC5yZWFkX3NoaWZ0KDQpO2lmKDQwIT14ZSl7d2UucGF0dGVyblR5cGU9SlJbeGVdO3ZhciBGZT1VZyhIKTs2NCE9RmUuaW5kZXgmJih3ZS5mZ0NvbG9yPUZlKTt2YXIgWmU9VWcoSCk7NjUhPVplLmluZGV4JiYod2UuYmdDb2xvcj1aZSl9ZWxzZXtILmwrPTE2LEgucmVh''@;'; + put 'put ''ZF9zaGlmdCg0KSxJMihIKSxJMihIKSxJMihIKSxJMihIKSxJMihIKTtmb3IodmFyIGplPUgucmVhZF9zaGlmdCg0KSxZZT1bXSxNdD0wO010PGplOysrTXQpWWUucHVzaChuRyhIKSl9cmV0dXJuIEgubD1YLHdlfX0sNDY6e246IkJydEJvcmRlciIsZjpmdW5jdGlvbiBLUihIKXt2YXIgcmU9''@;'; + put 'put ''e307SC5yZWFkX3NoaWZ0KDEpO3ZhciBYPWc2KEgpOyJub25lIiE9WC5zdHlsZSYmKHJlLnRvcD1YKTt2YXIgd2U9ZzYoSCk7Im5vbmUiIT13ZS5zdHlsZSYmKHJlLmJvdHRvbT13ZSk7dmFyIHhlPWc2KEgpOyJub25lIiE9eGUuc3R5bGUmJihyZS5sZWZ0PXhlKTt2YXIgRmU9ZzYoSCk7Im5v''@;'; + put 'put ''bmUiIT1GZS5zdHlsZSYmKHJlLnJpZ2h0PUZlKTt2YXIgWmU9ZzYoSCk7cmV0dXJuIm5vbmUiIT1aZS5zdHlsZSYmKHJlLmRpYWc9WmUpLHJlfX0sNDc6e246IkJydFhGIixmOmZ1bmN0aW9uIEY0KEgscmUpe3ZhciBYPUgubCtyZSx3ZT17fSx4ZT1ILnJlYWRfc2hpZnQoMiksRmU9SC5yZWFk''@;'; + put 'put ''X3NoaWZ0KDIpLFplPUgucmVhZF9zaGlmdCgyKSxqZT1ILnJlYWRfc2hpZnQoMiksWWU9SC5yZWFkX3NoaWZ0KDIpLE10PUgucmVhZF9zaGlmdCgxKTtILnJlYWRfc2hpZnQoMSk7dmFyIHh0PUgucmVhZF9zaGlmdCgyKSxSdD1ILnJlYWRfc2hpZnQoMSk7SC5sPVgsd2UueGZJZD14ZSx3ZS5u''@;'; + put 'put ''dW1GbXRJZD1GZSx3ZS5mb250SWQ9WmUsd2UuZmlsbElkPWplLHdlLmJvcmRlcklkPVllLDEmUnQmJjAhPXdlLm51bUZtdElkJiYod2UuYXBwbHlOdW1iZXJGb3JtYXQ9ITApLHdlLmFsaWdubWVudD17fSxNdD4wJiYod2UuYWxpZ25tZW50LnRleHRSb3RhdGlvbj1NdCk7dmFyIFV0PSExO3Jl''@;'; + put 'put ''dHVybiA3Jnh0JiYoVXQ9ITAsd2UuYWxpZ25tZW50Lmhvcml6b250YWw9QjlbNyZ4dF0pLHdlLmFsaWdubWVudC52ZXJ0aWNhbD15bVt4dD4+PjMmN10sd2UuYWxpZ25tZW50LnZlcnRpY2FsJiYoVXQ9ITApLHh0Pj4+NiYxJiYod2UuYWxpZ25tZW50LndyYXBUZXh0PSEwKSx4dD4+PjgmMSYm''@;'; + put 'put ''KHdlLmFsaWdubWVudC5zaHJpbmtUb0ZpdD0hMCksVXR8fGRlbGV0ZSB3ZS5hbGlnbm1lbnQsNCZSdCYmVXQmJih3ZS5hcHBseUFsaWdubWVudD0hMCksd2V9fSw0ODp7bjoiQnJ0U3R5bGUifSw0OTp7bjoiQnJ0Q2VsbE1ldGEifSw1MDp7bjoiQnJ0VmFsdWVNZXRhIn0sNTE6e246IkJydE1k''@;'; + put 'put ''YiJ9LDUyOntuOiJCcnRCZWdpbkZtZCJ9LDUzOntuOiJCcnRFbmRGbWQifSw1NDp7bjoiQnJ0QmVnaW5NZHgifSw1NTp7bjoiQnJ0RW5kTWR4In0sNTY6e246IkJydEJlZ2luTWR4VHVwbGUifSw1Nzp7bjoiQnJ0RW5kTWR4VHVwbGUifSw1ODp7bjoiQnJ0TWR4TWJySXN0ciJ9LDU5OntuOiJC''@;'; + put 'put ''cnRTdHIifSw2MDp7bjoiQnJ0Q29sSW5mbyIsZjp2M30sNjI6e246IkJydENlbGxSU3RyaW5nIn0sNjM6e246IkJydENhbGNDaGFpbkl0ZW0kIixmOmZ1bmN0aW9uIEE2KEgpe3ZhciByZT17fTtyZS5pPUgucmVhZF9zaGlmdCg0KTt2YXIgWD17fTtYLnI9SC5yZWFkX3NoaWZ0KDQpLFguYz1I''@;'; + put 'put ''LnJlYWRfc2hpZnQoNCkscmUucj1ZMChYKTt2YXIgd2U9SC5yZWFkX3NoaWZ0KDEpO3JldHVybiAyJndlJiYocmUubD0iMSIpLDgmd2UmJihyZS5hPSIxIikscmV9fSw2NDp7bjoiQnJ0RFZhbCIsZjpmdW5jdGlvbiBKdChILHJlLFgpe3ZhciB3ZT1ILmwrcmUseGU9SC5yZWFkX3NoaWZ0KDQp''@;'; + put 'put ''LEZlPXM5KEgpLFplPXloKEgpLGplPXloKEgpLFllPXloKEgpLE10PXloKEgpLHh0PWpCKEgscmUsWCksUnQ9SC5sPHdlP2pCKEgscmUsWCk6bnVsbCxVdD0xNSZ4ZSxubj17dDpqbVtVdF0sc3FyZng6RmUsczpbWmUsamUsWWUsTXRdfTtyZXR1cm4geHQmJihubi5mMT14dCksUnQmJihubi5m''@;'; + put 'put ''Mj1SdCksMD09VXR8fDM9PVV0fHw3PT1VdHx8KG5uLm9wPV9BW3hlPj4yMCYxNV0pLG5ufX0sNjU6e246IkJydFN4dmNlbGxOdW0ifSw2Njp7bjoiQnJ0U3h2Y2VsbFN0ciJ9LDY3OntuOiJCcnRTeHZjZWxsQm9vbCJ9LDY4OntuOiJCcnRTeHZjZWxsRXJyIn0sNjk6e246IkJydFN4dmNlbGxE''@;'; + put 'put ''YXRlIn0sNzA6e246IkJydFN4dmNlbGxOaWwifSwxMjg6e246IkJydEZpbGVWZXJzaW9uIn0sMTI5OntuOiJCcnRCZWdpblNoZWV0In0sMTMwOntuOiJCcnRFbmRTaGVldCJ9LDEzMTp7bjoiQnJ0QmVnaW5Cb29rIixmOl9zLHA6MH0sMTMyOntuOiJCcnRFbmRCb29rIn0sMTMzOntuOiJCcnRC''@;'; + put 'put ''ZWdpbldzVmlld3MifSwxMzQ6e246IkJydEVuZFdzVmlld3MifSwxMzU6e246IkJydEJlZ2luQm9va1ZpZXdzIn0sMTM2OntuOiJCcnRFbmRCb29rVmlld3MifSwxMzc6e246IkJydEJlZ2luV3NWaWV3IixmOmZ1bmN0aW9uIEhfKEgpe3ZhciByZT1ILnJlYWRfc2hpZnQoMik7cmV0dXJuIEgu''@;'; + put 'put ''bCs9Mjgse1JUTDozMiZyZSxncmlkOiEhKDQmcmUpfX19LDEzODp7bjoiQnJ0RW5kV3NWaWV3In0sMTM5OntuOiJCcnRCZWdpbkNzVmlld3MifSwxNDA6e246IkJydEVuZENzVmlld3MifSwxNDE6e246IkJydEJlZ2luQ3NWaWV3In0sMTQyOntuOiJCcnRFbmRDc1ZpZXcifSwxNDM6e246IkJy''@;'; + put 'put ''dEJlZ2luQnVuZGxlU2hzIn0sMTQ0OntuOiJCcnRFbmRCdW5kbGVTaHMifSwxNDU6e246IkJydEJlZ2luU2hlZXREYXRhIn0sMTQ2OntuOiJCcnRFbmRTaGVldERhdGEifSwxNDc6e246IkJydFdzUHJvcCIsZjpmdW5jdGlvbiBGZChILHJlKXt2YXIgWD17fSx3ZT1IW0gubF07cmV0dXJuKytI''@;'; + put 'put ''LmwsWC5hYm92ZT0hKDY0JndlKSxYLmxlZnQ9ISgxMjgmd2UpLEgubCs9MTgsWC5uYW1lPWViKEgscmUtMTkpLFh9fSwxNDg6e246IkJydFdzRGltIixmOlc0LHA6MTZ9LDE1MTp7bjoiQnJ0UGFuZSIsZjpmdW5jdGlvbiBydChILHJlKXt2YXIgWD1ILmwrcmU7STIoSCksSTIoSCk7dmFyIHdl''@;'; + put 'put ''PUgucmVhZF9zaGlmdCg0LCJpIikseGU9SC5yZWFkX3NoaWZ0KDQsImkiKTtpZihILnJlYWRfc2hpZnQoNCksSC5yZWFkX3NoaWZ0KDEpLFghPUgubCl0aHJvdyBuZXcgRXJyb3IoIkJhZCBCcnRQYW5lOiAiK1grIiAhPSAiK0gubCk7cmV0dXJuW1kwKHtyOndlLGM6eGV9KV19fSwxNTI6e246''@;'; + put 'put ''IkJydFNlbCIsZjpmdW5jdGlvbiBDcihILHJlKXtyZXR1cm4gSC5yZWFkX3NoaWZ0KDQpLHtjZWxsOlkwKHtyOkgucmVhZF9zaGlmdCg0KSxjOkgucmVhZF9zaGlmdCg0KX0pfX19LDE1Mzp7bjoiQnJ0V2JQcm9wIixmOmZ1bmN0aW9uIENBKEgscmUpe3ZhciBYPXt9LHdlPUgucmVhZF9zaGlm''@;'; + put 'put ''dCg0KTtYLmRlZmF1bHRUaGVtZVZlcnNpb249SC5yZWFkX3NoaWZ0KDQpO3ZhciB4ZT1yZT44P3h1KEgpOiIiO3JldHVybiB4ZS5sZW5ndGg+MCYmKFguQ29kZU5hbWU9eGUpLFguYXV0b0NvbXByZXNzUGljdHVyZXM9ISEoNjU1MzYmd2UpLFguYmFja3VwRmlsZT0hISg2NCZ3ZSksWC5jaGVj''@;'; + put 'put ''a0NvbXBhdGliaWxpdHk9ISEoNDA5NiZ3ZSksWC5kYXRlMTkwND0hISgxJndlKSxYLmZpbHRlclByaXZhY3k9ISEoOCZ3ZSksWC5oaWRlUGl2b3RGaWVsZExpc3Q9ISEoMTAyNCZ3ZSksWC5wcm9tcHRlZFNvbHV0aW9ucz0hISgxNiZ3ZSksWC5wdWJsaXNoSXRlbXM9ISEoMjA0OCZ3ZSksWC5y''@;'; + put 'put ''ZWZyZXNoQWxsQ29ubmVjdGlvbnM9ISEoMjYyMTQ0JndlKSxYLnNhdmVFeHRlcm5hbExpbmtWYWx1ZXM9ISEoMTI4JndlKSxYLnNob3dCb3JkZXJVbnNlbGVjdGVkVGFibGVzPSEhKDQmd2UpLFguc2hvd0lua0Fubm90YXRpb249ISEoMzImd2UpLFguc2hvd09iamVjdHM9WyJhbGwiLCJwbGFj''@;'; + put 'put ''ZWhvbGRlcnMiLCJub25lIl1bd2U+PjEzJjNdLFguc2hvd1Bpdm90Q2hhcnRGaWx0ZXI9ISEoMzI3Njgmd2UpLFgudXBkYXRlTGlua3M9WyJ1c2VyU2V0IiwibmV2ZXIiLCJhbHdheXMiXVt3ZT4+OCYzXSxYfX0sMTU0OntuOiJCcnRXYkZhY3RvaWQifSwxNTU6e246IkJydEZpbGVSZWNvdmVy''@;'; + put 'put ''In0sMTU2OntuOiJCcnRCdW5kbGVTaCIsZjpmdW5jdGlvbiBHXyhILHJlKXt2YXIgWD17fTtyZXR1cm4gWC5IaWRkZW49SC5yZWFkX3NoaWZ0KDQpLFguaVRhYklEPUgucmVhZF9zaGlmdCg0KSxYLnN0clJlbElEPUdnKEgscmUtOCksWC5uYW1lPXh1KEgpLFh9fSwxNTc6e246IkJydENhbGNQ''@;'; + put 'put ''cm9wIn0sMTU4OntuOiJCcnRCb29rVmlldyJ9LDE1OTp7bjoiQnJ0QmVnaW5Tc3QiLGY6ZnVuY3Rpb24gZUUoSCl7cmV0dXJuW0gucmVhZF9zaGlmdCg0KSxILnJlYWRfc2hpZnQoNCldfX0sMTYwOntuOiJCcnRFbmRTc3QifSwxNjE6e246IkJydEJlZ2luQUZpbHRlciIsZjp3aH0sMTYyOntu''@;'; + put 'put ''OiJCcnRFbmRBRmlsdGVyIn0sMTYzOntuOiJCcnRCZWdpbkZpbHRlckNvbHVtbiJ9LDE2NDp7bjoiQnJ0RW5kRmlsdGVyQ29sdW1uIn0sMTY1OntuOiJCcnRCZWdpbkZpbHRlcnMifSwxNjY6e246IkJydEVuZEZpbHRlcnMifSwxNjc6e246IkJydEZpbHRlciJ9LDE2ODp7bjoiQnJ0Q29sb3JG''@;'; + put 'put ''aWx0ZXIifSwxNjk6e246IkJydEljb25GaWx0ZXIifSwxNzA6e246IkJydFRvcDEwRmlsdGVyIn0sMTcxOntuOiJCcnREeW5hbWljRmlsdGVyIn0sMTcyOntuOiJCcnRCZWdpbkN1c3RvbUZpbHRlcnMifSwxNzM6e246IkJydEVuZEN1c3RvbUZpbHRlcnMifSwxNzQ6e246IkJydEN1c3RvbUZp''@;'; + put 'put ''bHRlciJ9LDE3NTp7bjoiQnJ0QUZpbHRlckRhdGVHcm91cEl0ZW0ifSwxNzY6e246IkJydE1lcmdlQ2VsbCIsZjpfeH0sMTc3OntuOiJCcnRCZWdpbk1lcmdlQ2VsbHMifSwxNzg6e246IkJydEVuZE1lcmdlQ2VsbHMifSwxNzk6e246IkJydEJlZ2luUGl2b3RDYWNoZURlZiJ9LDE4MDp7bjoi''@;'; + put 'put ''QnJ0RW5kUGl2b3RDYWNoZURlZiJ9LDE4MTp7bjoiQnJ0QmVnaW5QQ0RGaWVsZHMifSwxODI6e246IkJydEVuZFBDREZpZWxkcyJ9LDE4Mzp7bjoiQnJ0QmVnaW5QQ0RGaWVsZCJ9LDE4NDp7bjoiQnJ0RW5kUENERmllbGQifSwxODU6e246IkJydEJlZ2luUENEU291cmNlIn0sMTg2OntuOiJC''@;'; + put 'put ''cnRFbmRQQ0RTb3VyY2UifSwxODc6e246IkJydEJlZ2luUENEU1JhbmdlIn0sMTg4OntuOiJCcnRFbmRQQ0RTUmFuZ2UifSwxODk6e246IkJydEJlZ2luUENERkF0YmwifSwxOTA6e246IkJydEVuZFBDREZBdGJsIn0sMTkxOntuOiJCcnRCZWdpblBDRElSdW4ifSwxOTI6e246IkJydEVuZFBD''@;'; + put 'put ''RElSdW4ifSwxOTM6e246IkJydEJlZ2luUGl2b3RDYWNoZVJlY29yZHMifSwxOTQ6e246IkJydEVuZFBpdm90Q2FjaGVSZWNvcmRzIn0sMTk1OntuOiJCcnRCZWdpblBDREhpZXJhcmNoaWVzIn0sMTk2OntuOiJCcnRFbmRQQ0RIaWVyYXJjaGllcyJ9LDE5Nzp7bjoiQnJ0QmVnaW5QQ0RIaWVy''@;'; + put 'put ''YXJjaHkifSwxOTg6e246IkJydEVuZFBDREhpZXJhcmNoeSJ9LDE5OTp7bjoiQnJ0QmVnaW5QQ0RIRmllbGRzVXNhZ2UifSwyMDA6e246IkJydEVuZFBDREhGaWVsZHNVc2FnZSJ9LDIwMTp7bjoiQnJ0QmVnaW5FeHRDb25uZWN0aW9uIn0sMjAyOntuOiJCcnRFbmRFeHRDb25uZWN0aW9uIn0s''@;'; + put 'put ''MjAzOntuOiJCcnRCZWdpbkVDRGJQcm9wcyJ9LDIwNDp7bjoiQnJ0RW5kRUNEYlByb3BzIn0sMjA1OntuOiJCcnRCZWdpbkVDT2xhcFByb3BzIn0sMjA2OntuOiJCcnRFbmRFQ09sYXBQcm9wcyJ9LDIwNzp7bjoiQnJ0QmVnaW5QQ0RTQ29uc29sIn0sMjA4OntuOiJCcnRFbmRQQ0RTQ29uc29s''@;'; + put 'put ''In0sMjA5OntuOiJCcnRCZWdpblBDRFNDUGFnZXMifSwyMTA6e246IkJydEVuZFBDRFNDUGFnZXMifSwyMTE6e246IkJydEJlZ2luUENEU0NQYWdlIn0sMjEyOntuOiJCcnRFbmRQQ0RTQ1BhZ2UifSwyMTM6e246IkJydEJlZ2luUENEU0NQSXRlbSJ9LDIxNDp7bjoiQnJ0RW5kUENEU0NQSXRl''@;'; + put 'put ''bSJ9LDIxNTp7bjoiQnJ0QmVnaW5QQ0RTQ1NldHMifSwyMTY6e246IkJydEVuZFBDRFNDU2V0cyJ9LDIxNzp7bjoiQnJ0QmVnaW5QQ0RTQ1NldCJ9LDIxODp7bjoiQnJ0RW5kUENEU0NTZXQifSwyMTk6e246IkJydEJlZ2luUENERkdyb3VwIn0sMjIwOntuOiJCcnRFbmRQQ0RGR3JvdXAifSwy''@;'; + put 'put ''MjE6e246IkJydEJlZ2luUENERkdJdGVtcyJ9LDIyMjp7bjoiQnJ0RW5kUENERkdJdGVtcyJ9LDIyMzp7bjoiQnJ0QmVnaW5QQ0RGR1JhbmdlIn0sMjI0OntuOiJCcnRFbmRQQ0RGR1JhbmdlIn0sMjI1OntuOiJCcnRCZWdpblBDREZHRGlzY3JldGUifSwyMjY6e246IkJydEVuZFBDREZHRGlz''@;'; + put 'put ''Y3JldGUifSwyMjc6e246IkJydEJlZ2luUENEU0RUdXBsZUNhY2hlIn0sMjI4OntuOiJCcnRFbmRQQ0RTRFR1cGxlQ2FjaGUifSwyMjk6e246IkJydEJlZ2luUENEU0RUQ0VudHJpZXMifSwyMzA6e246IkJydEVuZFBDRFNEVENFbnRyaWVzIn0sMjMxOntuOiJCcnRCZWdpblBDRFNEVENFTWVt''@;'; + put 'put ''YmVycyJ9LDIzMjp7bjoiQnJ0RW5kUENEU0RUQ0VNZW1iZXJzIn0sMjMzOntuOiJCcnRCZWdpblBDRFNEVENFTWVtYmVyIn0sMjM0OntuOiJCcnRFbmRQQ0RTRFRDRU1lbWJlciJ9LDIzNTp7bjoiQnJ0QmVnaW5QQ0RTRFRDUXVlcmllcyJ9LDIzNjp7bjoiQnJ0RW5kUENEU0RUQ1F1ZXJpZXMi''@;'; + put 'put ''fSwyMzc6e246IkJydEJlZ2luUENEU0RUQ1F1ZXJ5In0sMjM4OntuOiJCcnRFbmRQQ0RTRFRDUXVlcnkifSwyMzk6e246IkJydEJlZ2luUENEU0RUQ1NldHMifSwyNDA6e246IkJydEVuZFBDRFNEVENTZXRzIn0sMjQxOntuOiJCcnRCZWdpblBDRFNEVENTZXQifSwyNDI6e246IkJydEVuZFBD''@;'; + put 'put ''RFNEVENTZXQifSwyNDM6e246IkJydEJlZ2luUENEQ2FsY0l0ZW1zIn0sMjQ0OntuOiJCcnRFbmRQQ0RDYWxjSXRlbXMifSwyNDU6e246IkJydEJlZ2luUENEQ2FsY0l0ZW0ifSwyNDY6e246IkJydEVuZFBDRENhbGNJdGVtIn0sMjQ3OntuOiJCcnRCZWdpblBSdWxlIn0sMjQ4OntuOiJCcnRF''@;'; + put 'put ''bmRQUnVsZSJ9LDI0OTp7bjoiQnJ0QmVnaW5QUkZpbHRlcnMifSwyNTA6e246IkJydEVuZFBSRmlsdGVycyJ9LDI1MTp7bjoiQnJ0QmVnaW5QUkZpbHRlciJ9LDI1Mjp7bjoiQnJ0RW5kUFJGaWx0ZXIifSwyNTM6e246IkJydEJlZ2luUE5hbWVzIn0sMjU0OntuOiJCcnRFbmRQTmFtZXMifSwy''@;'; + put 'put ''NTU6e246IkJydEJlZ2luUE5hbWUifSwyNTY6e246IkJydEVuZFBOYW1lIn0sMjU3OntuOiJCcnRCZWdpblBOUGFpcnMifSwyNTg6e246IkJydEVuZFBOUGFpcnMifSwyNTk6e246IkJydEJlZ2luUE5QYWlyIn0sMjYwOntuOiJCcnRFbmRQTlBhaXIifSwyNjE6e246IkJydEJlZ2luRUNXZWJQ''@;'; + put 'put ''cm9wcyJ9LDI2Mjp7bjoiQnJ0RW5kRUNXZWJQcm9wcyJ9LDI2Mzp7bjoiQnJ0QmVnaW5FY1dwVGFibGVzIn0sMjY0OntuOiJCcnRFbmRFQ1dQVGFibGVzIn0sMjY1OntuOiJCcnRCZWdpbkVDUGFyYW1zIn0sMjY2OntuOiJCcnRFbmRFQ1BhcmFtcyJ9LDI2Nzp7bjoiQnJ0QmVnaW5FQ1BhcmFt''@;'; + put 'put ''In0sMjY4OntuOiJCcnRFbmRFQ1BhcmFtIn0sMjY5OntuOiJCcnRCZWdpblBDREtQSXMifSwyNzA6e246IkJydEVuZFBDREtQSXMifSwyNzE6e246IkJydEJlZ2luUENES1BJIn0sMjcyOntuOiJCcnRFbmRQQ0RLUEkifSwyNzM6e246IkJydEJlZ2luRGltcyJ9LDI3NDp7bjoiQnJ0RW5kRGlt''@;'; + put 'put ''cyJ9LDI3NTp7bjoiQnJ0QmVnaW5EaW0ifSwyNzY6e246IkJydEVuZERpbSJ9LDI3Nzp7bjoiQnJ0SW5kZXhQYXJ0RW5kIn0sMjc4OntuOiJCcnRCZWdpblN0eWxlU2hlZXQifSwyNzk6e246IkJydEVuZFN0eWxlU2hlZXQifSwyODA6e246IkJydEJlZ2luU1hWaWV3In0sMjgxOntuOiJCcnRF''@;'; + put 'put ''bmRTWFZJIn0sMjgyOntuOiJCcnRCZWdpblNYVkkifSwyODM6e246IkJydEJlZ2luU1hWSXMifSwyODQ6e246IkJydEVuZFNYVklzIn0sMjg1OntuOiJCcnRCZWdpblNYVkQifSwyODY6e246IkJydEVuZFNYVkQifSwyODc6e246IkJydEJlZ2luU1hWRHMifSwyODg6e246IkJydEVuZFNYVkRz''@;'; + put 'put ''In0sMjg5OntuOiJCcnRCZWdpblNYUEkifSwyOTA6e246IkJydEVuZFNYUEkifSwyOTE6e246IkJydEJlZ2luU1hQSXMifSwyOTI6e246IkJydEVuZFNYUElzIn0sMjkzOntuOiJCcnRCZWdpblNYREkifSwyOTQ6e246IkJydEVuZFNYREkifSwyOTU6e246IkJydEJlZ2luU1hESXMifSwyOTY6''@;'; + put 'put ''e246IkJydEVuZFNYRElzIn0sMjk3OntuOiJCcnRCZWdpblNYTEkifSwyOTg6e246IkJydEVuZFNYTEkifSwyOTk6e246IkJydEJlZ2luU1hMSVJ3cyJ9LDMwMDp7bjoiQnJ0RW5kU1hMSVJ3cyJ9LDMwMTp7bjoiQnJ0QmVnaW5TWExJQ29scyJ9LDMwMjp7bjoiQnJ0RW5kU1hMSUNvbHMifSwz''@;'; + put 'put ''MDM6e246IkJydEJlZ2luU1hGb3JtYXQifSwzMDQ6e246IkJydEVuZFNYRm9ybWF0In0sMzA1OntuOiJCcnRCZWdpblNYRm9ybWF0cyJ9LDMwNjp7bjoiQnJ0RW5kU3hGb3JtYXRzIn0sMzA3OntuOiJCcnRCZWdpblN4U2VsZWN0In0sMzA4OntuOiJCcnRFbmRTeFNlbGVjdCJ9LDMwOTp7bjoi''@;'; + put 'put ''QnJ0QmVnaW5JU1hWRFJ3cyJ9LDMxMDp7bjoiQnJ0RW5kSVNYVkRSd3MifSwzMTE6e246IkJydEJlZ2luSVNYVkRDb2xzIn0sMzEyOntuOiJCcnRFbmRJU1hWRENvbHMifSwzMTM6e246IkJydEVuZFNYTG9jYXRpb24ifSwzMTQ6e246IkJydEJlZ2luU1hMb2NhdGlvbiJ9LDMxNTp7bjoiQnJ0''@;'; + put 'put ''RW5kU1hWaWV3In0sMzE2OntuOiJCcnRCZWdpblNYVEhzIn0sMzE3OntuOiJCcnRFbmRTWFRIcyJ9LDMxODp7bjoiQnJ0QmVnaW5TWFRIIn0sMzE5OntuOiJCcnRFbmRTWFRIIn0sMzIwOntuOiJCcnRCZWdpbklTWFRIUndzIn0sMzIxOntuOiJCcnRFbmRJU1hUSFJ3cyJ9LDMyMjp7bjoiQnJ0''@;'; + put 'put ''QmVnaW5JU1hUSENvbHMifSwzMjM6e246IkJydEVuZElTWFRIQ29scyJ9LDMyNDp7bjoiQnJ0QmVnaW5TWFRETVBTIn0sMzI1OntuOiJCcnRFbmRTWFRETVBzIn0sMzI2OntuOiJCcnRCZWdpblNYVERNUCJ9LDMyNzp7bjoiQnJ0RW5kU1hURE1QIn0sMzI4OntuOiJCcnRCZWdpblNYVEhJdGVt''@;'; + put 'put ''cyJ9LDMyOTp7bjoiQnJ0RW5kU1hUSEl0ZW1zIn0sMzMwOntuOiJCcnRCZWdpblNYVEhJdGVtIn0sMzMxOntuOiJCcnRFbmRTWFRISXRlbSJ9LDMzMjp7bjoiQnJ0QmVnaW5NZXRhZGF0YSJ9LDMzMzp7bjoiQnJ0RW5kTWV0YWRhdGEifSwzMzQ6e246IkJydEJlZ2luRXNtZHRpbmZvIn0sMzM1''@;'; + put 'put ''OntuOiJCcnRNZHRpbmZvIn0sMzM2OntuOiJCcnRFbmRFc21kdGluZm8ifSwzMzc6e246IkJydEJlZ2luRXNtZGIifSwzMzg6e246IkJydEVuZEVzbWRiIn0sMzM5OntuOiJCcnRCZWdpbkVzZm1kIn0sMzQwOntuOiJCcnRFbmRFc2ZtZCJ9LDM0MTp7bjoiQnJ0QmVnaW5TaW5nbGVDZWxscyJ9''@;'; + put 'put ''LDM0Mjp7bjoiQnJ0RW5kU2luZ2xlQ2VsbHMifSwzNDM6e246IkJydEJlZ2luTGlzdCJ9LDM0NDp7bjoiQnJ0RW5kTGlzdCJ9LDM0NTp7bjoiQnJ0QmVnaW5MaXN0Q29scyJ9LDM0Njp7bjoiQnJ0RW5kTGlzdENvbHMifSwzNDc6e246IkJydEJlZ2luTGlzdENvbCJ9LDM0ODp7bjoiQnJ0RW5k''@;'; + put 'put ''TGlzdENvbCJ9LDM0OTp7bjoiQnJ0QmVnaW5MaXN0WG1sQ1ByIn0sMzUwOntuOiJCcnRFbmRMaXN0WG1sQ1ByIn0sMzUxOntuOiJCcnRMaXN0Q0NGbWxhIn0sMzUyOntuOiJCcnRMaXN0VHJGbWxhIn0sMzUzOntuOiJCcnRCZWdpbkV4dGVybmFscyJ9LDM1NDp7bjoiQnJ0RW5kRXh0ZXJuYWxz''@;'; + put 'put ''In0sMzU1OntuOiJCcnRTdXBCb29rU3JjIixmOkdnfSwzNTc6e246IkJydFN1cFNlbGYifSwzNTg6e246IkJydFN1cFNhbWUifSwzNTk6e246IkJydFN1cFRhYnMifSwzNjA6e246IkJydEJlZ2luU3VwQm9vayJ9LDM2MTp7bjoiQnJ0UGxhY2Vob2xkZXJOYW1lIn0sMzYyOntuOiJCcnRFeHRl''@;'; + put 'put ''cm5TaGVldCIsZjpWOH0sMzYzOntuOiJCcnRFeHRlcm5UYWJsZVN0YXJ0In0sMzY0OntuOiJCcnRFeHRlcm5UYWJsZUVuZCJ9LDM2Njp7bjoiQnJ0RXh0ZXJuUm93SGRyIn0sMzY3OntuOiJCcnRFeHRlcm5DZWxsQmxhbmsifSwzNjg6e246IkJydEV4dGVybkNlbGxSZWFsIn0sMzY5OntuOiJC''@;'; + put 'put ''cnRFeHRlcm5DZWxsQm9vbCJ9LDM3MDp7bjoiQnJ0RXh0ZXJuQ2VsbEVycm9yIn0sMzcxOntuOiJCcnRFeHRlcm5DZWxsU3RyaW5nIn0sMzcyOntuOiJCcnRCZWdpbkVzbWR4In0sMzczOntuOiJCcnRFbmRFc21keCJ9LDM3NDp7bjoiQnJ0QmVnaW5NZHhTZXQifSwzNzU6e246IkJydEVuZE1k''@;'; + put 'put ''eFNldCJ9LDM3Njp7bjoiQnJ0QmVnaW5NZHhNYnJQcm9wIn0sMzc3OntuOiJCcnRFbmRNZHhNYnJQcm9wIn0sMzc4OntuOiJCcnRCZWdpbk1keEtQSSJ9LDM3OTp7bjoiQnJ0RW5kTWR4S1BJIn0sMzgwOntuOiJCcnRCZWdpbkVzc3RyIn0sMzgxOntuOiJCcnRFbmRFc3N0ciJ9LDM4Mjp7bjoi''@;'; + put 'put ''QnJ0QmVnaW5QUkZJdGVtIn0sMzgzOntuOiJCcnRFbmRQUkZJdGVtIn0sMzg0OntuOiJCcnRCZWdpblBpdm90Q2FjaGVJRHMifSwzODU6e246IkJydEVuZFBpdm90Q2FjaGVJRHMifSwzODY6e246IkJydEJlZ2luUGl2b3RDYWNoZUlEIn0sMzg3OntuOiJCcnRFbmRQaXZvdENhY2hlSUQifSwz''@;'; + put 'put ''ODg6e246IkJydEJlZ2luSVNYVklzIn0sMzg5OntuOiJCcnRFbmRJU1hWSXMifSwzOTA6e246IkJydEJlZ2luQ29sSW5mb3MifSwzOTE6e246IkJydEVuZENvbEluZm9zIn0sMzkyOntuOiJCcnRCZWdpblJ3QnJrIn0sMzkzOntuOiJCcnRFbmRSd0JyayJ9LDM5NDp7bjoiQnJ0QmVnaW5Db2xC''@;'; + put 'put ''cmsifSwzOTU6e246IkJydEVuZENvbEJyayJ9LDM5Njp7bjoiQnJ0QnJrIn0sMzk3OntuOiJCcnRVc2VyQm9va1ZpZXcifSwzOTg6e246IkJydEluZm8ifSwzOTk6e246IkJydENVc3IifSw0MDA6e246IkJydFVzciJ9LDQwMTp7bjoiQnJ0QmVnaW5Vc2VycyJ9LDQwMzp7bjoiQnJ0RU9GIn0s''@;'; + put 'put ''NDA0OntuOiJCcnRVQ1IifSw0MDU6e246IkJydFJSSW5zRGVsIn0sNDA2OntuOiJCcnRSUkVuZEluc0RlbCJ9LDQwNzp7bjoiQnJ0UlJNb3ZlIn0sNDA4OntuOiJCcnRSUkVuZE1vdmUifSw0MDk6e246IkJydFJSQ2hnQ2VsbCJ9LDQxMDp7bjoiQnJ0UlJFbmRDaGdDZWxsIn0sNDExOntuOiJC''@;'; + put 'put ''cnRSUkhlYWRlciJ9LDQxMjp7bjoiQnJ0UlJVc2VyVmlldyJ9LDQxMzp7bjoiQnJ0UlJSZW5TaGVldCJ9LDQxNDp7bjoiQnJ0UlJJbnNlcnRTaCJ9LDQxNTp7bjoiQnJ0UlJEZWZOYW1lIn0sNDE2OntuOiJCcnRSUk5vdGUifSw0MTc6e246IkJydFJSQ29uZmxpY3QifSw0MTg6e246IkJydFJS''@;'; + put 'put ''VFFTSUYifSw0MTk6e246IkJydFJSRm9ybWF0In0sNDIwOntuOiJCcnRSUkVuZEZvcm1hdCJ9LDQyMTp7bjoiQnJ0UlJBdXRvRm10In0sNDIyOntuOiJCcnRCZWdpblVzZXJTaFZpZXdzIn0sNDIzOntuOiJCcnRCZWdpblVzZXJTaFZpZXcifSw0MjQ6e246IkJydEVuZFVzZXJTaFZpZXcifSw0''@;'; + put 'put ''MjU6e246IkJydEVuZFVzZXJTaFZpZXdzIn0sNDI2OntuOiJCcnRBcnJGbWxhIixmOmZ1bmN0aW9uIEYwKEgscmUsWCl7dmFyIHdlPUgubCtyZSx4ZT1sOShIKSxGZT1ILnJlYWRfc2hpZnQoMSksWmU9W3hlXTtpZihaZVsyXT1GZSxYLmNlbGxGb3JtdWxhKXt2YXIgamU9cEcoSCx3ZS1ILmws''@;'; + put 'put ''WCk7WmVbMV09amV9ZWxzZSBILmw9d2U7cmV0dXJuIFplfX0sNDI3OntuOiJCcnRTaHJGbWxhIixmOmZ1bmN0aW9uIEgwKEgscmUsWCl7dmFyIHdlPUgubCtyZSxGZT1bd2goSCwxNildO2lmKFguY2VsbEZvcm11bGEpe3ZhciBaZT1tRyhILHdlLUgubCxYKTtGZVsxXT1aZSxILmw9d2V9ZWxz''@;'; + put 'put ''ZSBILmw9d2U7cmV0dXJuIEZlfX0sNDI4OntuOiJCcnRUYWJsZSJ9LDQyOTp7bjoiQnJ0QmVnaW5FeHRDb25uZWN0aW9ucyJ9LDQzMDp7bjoiQnJ0RW5kRXh0Q29ubmVjdGlvbnMifSw0MzE6e246IkJydEJlZ2luUENEQ2FsY01lbXMifSw0MzI6e246IkJydEVuZFBDRENhbGNNZW1zIn0sNDMz''@;'; + put 'put ''OntuOiJCcnRCZWdpblBDRENhbGNNZW0ifSw0MzQ6e246IkJydEVuZFBDRENhbGNNZW0ifSw0MzU6e246IkJydEJlZ2luUENESEdMZXZlbHMifSw0MzY6e246IkJydEVuZFBDREhHTGV2ZWxzIn0sNDM3OntuOiJCcnRCZWdpblBDREhHTGV2ZWwifSw0Mzg6e246IkJydEVuZFBDREhHTGV2ZWwi''@;'; + put 'put ''fSw0Mzk6e246IkJydEJlZ2luUENESEdMR3JvdXBzIn0sNDQwOntuOiJCcnRFbmRQQ0RIR0xHcm91cHMifSw0NDE6e246IkJydEJlZ2luUENESEdMR3JvdXAifSw0NDI6e246IkJydEVuZFBDREhHTEdyb3VwIn0sNDQzOntuOiJCcnRCZWdpblBDREhHTEdNZW1iZXJzIn0sNDQ0OntuOiJCcnRF''@;'; + put 'put ''bmRQQ0RIR0xHTWVtYmVycyJ9LDQ0NTp7bjoiQnJ0QmVnaW5QQ0RIR0xHTWVtYmVyIn0sNDQ2OntuOiJCcnRFbmRQQ0RIR0xHTWVtYmVyIn0sNDQ3OntuOiJCcnRCZWdpblFTSSJ9LDQ0ODp7bjoiQnJ0RW5kUVNJIn0sNDQ5OntuOiJCcnRCZWdpblFTSVIifSw0NTA6e246IkJydEVuZFFTSVIi''@;'; + put 'put ''fSw0NTE6e246IkJydEJlZ2luRGVsZXRlZE5hbWVzIn0sNDUyOntuOiJCcnRFbmREZWxldGVkTmFtZXMifSw0NTM6e246IkJydEJlZ2luRGVsZXRlZE5hbWUifSw0NTQ6e246IkJydEVuZERlbGV0ZWROYW1lIn0sNDU1OntuOiJCcnRCZWdpblFTSUZzIn0sNDU2OntuOiJCcnRFbmRRU0lGcyJ9''@;'; + put 'put ''LDQ1Nzp7bjoiQnJ0QmVnaW5RU0lGIn0sNDU4OntuOiJCcnRFbmRRU0lGIn0sNDU5OntuOiJCcnRCZWdpbkF1dG9Tb3J0U2NvcGUifSw0NjA6e246IkJydEVuZEF1dG9Tb3J0U2NvcGUifSw0NjE6e246IkJydEJlZ2luQ29uZGl0aW9uYWxGb3JtYXR0aW5nIn0sNDYyOntuOiJCcnRFbmRDb25k''@;'; + put 'put ''aXRpb25hbEZvcm1hdHRpbmcifSw0NjM6e246IkJydEJlZ2luQ0ZSdWxlIn0sNDY0OntuOiJCcnRFbmRDRlJ1bGUifSw0NjU6e246IkJydEJlZ2luSWNvblNldCJ9LDQ2Njp7bjoiQnJ0RW5kSWNvblNldCJ9LDQ2Nzp7bjoiQnJ0QmVnaW5EYXRhYmFyIn0sNDY4OntuOiJCcnRFbmREYXRhYmFy''@;'; + put 'put ''In0sNDY5OntuOiJCcnRCZWdpbkNvbG9yU2NhbGUifSw0NzA6e246IkJydEVuZENvbG9yU2NhbGUifSw0NzE6e246IkJydENGVk8ifSw0NzI6e246IkJydEV4dGVyblZhbHVlTWV0YSJ9LDQ3Mzp7bjoiQnJ0QmVnaW5Db2xvclBhbGV0dGUifSw0NzQ6e246IkJydEVuZENvbG9yUGFsZXR0ZSJ9''@;'; + put 'put ''LDQ3NTp7bjoiQnJ0SW5kZXhlZENvbG9yIn0sNDc2OntuOiJCcnRNYXJnaW5zIixmOmZ1bmN0aW9uIFZtKEgpe3ZhciByZT17fTtyZXR1cm4gYmkuZm9yRWFjaChmdW5jdGlvbihYKXtyZVtYXT1JMihIKX0pLHJlfX0sNDc3OntuOiJCcnRQcmludE9wdGlvbnMifSw0Nzg6e246IkJydFBhZ2VT''@;'; + put 'put ''ZXR1cCJ9LDQ3OTp7bjoiQnJ0QmVnaW5IZWFkZXJGb290ZXIifSw0ODA6e246IkJydEVuZEhlYWRlckZvb3RlciJ9LDQ4MTp7bjoiQnJ0QmVnaW5TWENydEZvcm1hdCJ9LDQ4Mjp7bjoiQnJ0RW5kU1hDcnRGb3JtYXQifSw0ODM6e246IkJydEJlZ2luU1hDcnRGb3JtYXRzIn0sNDg0OntuOiJC''@;'; + put 'put ''cnRFbmRTWENydEZvcm1hdHMifSw0ODU6e246IkJydFdzRm10SW5mbyIsZjpmdW5jdGlvbiB0UChIKXt2YXIgcmU9e30sWD17fSx3ZT17fSx4ZT1ILnJlYWRfc2hpZnQoNCksRmU9SC5yZWFkX3NoaWZ0KDIpO3dlLndjaD14ZTw9NjU1MzY/eGUvMjU2OkZlO3ZhciBaZT1ILnJlYWRfc2hpZnQo''@;'; + put 'put ''Mik7WC5ocHQ9WmUvMjA7dmFyIGplPUgucmVhZF9zaGlmdCgyKTtyZXR1cm4gMiZqZSYmKFguaGlkZGVuPSEwKSw0JmplJiYocmUudG9wdGhpY2s9ITApLDgmamUmJihyZS5ib3R0aGljaz0hMCkscmUucm93b3V0bGluZT1ILnJlYWRfc2hpZnQoMSkscmUuY29sb3V0bGluZT1ILnJlYWRfc2hp''@;'; + put 'put ''ZnQoMSksSjgoWCkscmUucm93PVgseWMod2UpLHJlLmNvbD13ZSxyZX19LDQ4Njp7bjoiQnJ0QmVnaW5NZ3MifSw0ODc6e246IkJydEVuZE1HcyJ9LDQ4ODp7bjoiQnJ0QmVnaW5NR01hcHMifSw0ODk6e246IkJydEVuZE1HTWFwcyJ9LDQ5MDp7bjoiQnJ0QmVnaW5NRyJ9LDQ5MTp7bjoiQnJ0''@;'; + put 'put ''RW5kTUcifSw0OTI6e246IkJydEJlZ2luTWFwIn0sNDkzOntuOiJCcnRFbmRNYXAifSw0OTQ6e246IkJydEhMaW5rIixmOmZ1bmN0aW9uIEZfKEgscmUpe3ZhciBYPUgubCtyZSx3ZT13aChILDE2KSx4ZT15aChIKSxGZT14dShIKSxaZT14dShIKSxqZT14dShIKTtILmw9WDt2YXIgWWU9e3Jm''@;'; + put 'put ''eDp3ZSxyZWxJZDp4ZSxsb2M6RmUsZGlzcGxheTpqZX07cmV0dXJuIFplJiYoWWUuVG9vbHRpcD1aZSksWWV9fSw0OTU6e246IkJydEJlZ2luRENvbiJ9LDQ5Njp7bjoiQnJ0RW5kRENvbiJ9LDQ5Nzp7bjoiQnJ0QmVnaW5EUmVmcyJ9LDQ5ODp7bjoiQnJ0RW5kRFJlZnMifSw0OTk6e246IkJy''@;'; + put 'put ''dERSZWYifSw1MDA6e246IkJydEJlZ2luU2Nlbk1hbiJ9LDUwMTp7bjoiQnJ0RW5kU2Nlbk1hbiJ9LDUwMjp7bjoiQnJ0QmVnaW5TY3QifSw1MDM6e246IkJydEVuZFNjdCJ9LDUwNDp7bjoiQnJ0U2xjIn0sNTA1OntuOiJCcnRCZWdpbkRYRnMifSw1MDY6e246IkJydEVuZERYRnMifSw1MDc6''@;'; + put 'put ''e246IkJydERYRiJ9LDUwODp7bjoiQnJ0QmVnaW5UYWJsZVN0eWxlcyJ9LDUwOTp7bjoiQnJ0RW5kVGFibGVTdHlsZXMifSw1MTA6e246IkJydEJlZ2luVGFibGVTdHlsZSJ9LDUxMTp7bjoiQnJ0RW5kVGFibGVTdHlsZSJ9LDUxMjp7bjoiQnJ0VGFibGVTdHlsZUVsZW1lbnQifSw1MTM6e246''@;'; + put 'put ''IkJydFRhYmxlU3R5bGVDbGllbnQifSw1MTQ6e246IkJydEJlZ2luVm9sRGVwcyJ9LDUxNTp7bjoiQnJ0RW5kVm9sRGVwcyJ9LDUxNjp7bjoiQnJ0QmVnaW5Wb2xUeXBlIn0sNTE3OntuOiJCcnRFbmRWb2xUeXBlIn0sNTE4OntuOiJCcnRCZWdpblZvbE1haW4ifSw1MTk6e246IkJydEVuZFZv''@;'; + put 'put ''bE1haW4ifSw1MjA6e246IkJydEJlZ2luVm9sVG9waWMifSw1MjE6e246IkJydEVuZFZvbFRvcGljIn0sNTIyOntuOiJCcnRWb2xTdWJ0b3BpYyJ9LDUyMzp7bjoiQnJ0Vm9sUmVmIn0sNTI0OntuOiJCcnRWb2xOdW0ifSw1MjU6e246IkJydFZvbEVyciJ9LDUyNjp7bjoiQnJ0Vm9sU3RyIn0s''@;'; + put 'put ''NTI3OntuOiJCcnRWb2xCb29sIn0sNTI4OntuOiJCcnRCZWdpbkNhbGNDaGFpbiQifSw1Mjk6e246IkJydEVuZENhbGNDaGFpbiQifSw1MzA6e246IkJydEJlZ2luU29ydFN0YXRlIn0sNTMxOntuOiJCcnRFbmRTb3J0U3RhdGUifSw1MzI6e246IkJydEJlZ2luU29ydENvbmQifSw1MzM6e246''@;'; + put 'put ''IkJydEVuZFNvcnRDb25kIn0sNTM0OntuOiJCcnRCb29rUHJvdGVjdGlvbiJ9LDUzNTp7bjoiQnJ0U2hlZXRQcm90ZWN0aW9uIn0sNTM2OntuOiJCcnRSYW5nZVByb3RlY3Rpb24ifSw1Mzc6e246IkJydFBob25ldGljSW5mbyJ9LDUzODp7bjoiQnJ0QmVnaW5FQ1R4dFdpeiJ9LDUzOTp7bjoi''@;'; + put 'put ''QnJ0RW5kRUNUeHRXaXoifSw1NDA6e246IkJydEJlZ2luRUNUV0ZsZEluZm9Mc3QifSw1NDE6e246IkJydEVuZEVDVFdGbGRJbmZvTHN0In0sNTQyOntuOiJCcnRCZWdpbkVDVHdGbGRJbmZvIn0sNTQ4OntuOiJCcnRGaWxlU2hhcmluZyJ9LDU0OTp7bjoiQnJ0T2xlU2l6ZSJ9LDU1MDp7bjoi''@;'; + put 'put ''QnJ0RHJhd2luZyIsZjpHZ30sNTUxOntuOiJCcnRMZWdhY3lEcmF3aW5nIn0sNTUyOntuOiJCcnRMZWdhY3lEcmF3aW5nSEYifSw1NTM6e246IkJydFdlYk9wdCJ9LDU1NDp7bjoiQnJ0QmVnaW5XZWJQdWJJdGVtcyJ9LDU1NTp7bjoiQnJ0RW5kV2ViUHViSXRlbXMifSw1NTY6e246IkJydEJl''@;'; + put 'put ''Z2luV2ViUHViSXRlbSJ9LDU1Nzp7bjoiQnJ0RW5kV2ViUHViSXRlbSJ9LDU1ODp7bjoiQnJ0QmVnaW5TWENvbmRGbXQifSw1NTk6e246IkJydEVuZFNYQ29uZEZtdCJ9LDU2MDp7bjoiQnJ0QmVnaW5TWENvbmRGbXRzIn0sNTYxOntuOiJCcnRFbmRTWENvbmRGbXRzIn0sNTYyOntuOiJCcnRC''@;'; + put 'put ''a0hpbSJ9LDU2NDp7bjoiQnJ0Q29sb3IifSw1NjU6e246IkJydEJlZ2luSW5kZXhlZENvbG9ycyJ9LDU2Njp7bjoiQnJ0RW5kSW5kZXhlZENvbG9ycyJ9LDU2OTp7bjoiQnJ0QmVnaW5NUlVDb2xvcnMifSw1NzA6e246IkJydEVuZE1SVUNvbG9ycyJ9LDU3Mjp7bjoiQnJ0TVJVQ29sb3IifSw1''@;'; + put 'put ''NzM6e246IkJydEJlZ2luRFZhbHMifSw1NzQ6e246IkJydEVuZERWYWxzIn0sNTc3OntuOiJCcnRTdXBOYW1lU3RhcnQifSw1Nzg6e246IkJydFN1cE5hbWVWYWx1ZVN0YXJ0In0sNTc5OntuOiJCcnRTdXBOYW1lVmFsdWVFbmQifSw1ODA6e246IkJydFN1cE5hbWVOdW0ifSw1ODE6e246IkJy''@;'; + put 'put ''dFN1cE5hbWVFcnIifSw1ODI6e246IkJydFN1cE5hbWVTdCJ9LDU4Mzp7bjoiQnJ0U3VwTmFtZU5pbCJ9LDU4NDp7bjoiQnJ0U3VwTmFtZUJvb2wifSw1ODU6e246IkJydFN1cE5hbWVGbWxhIn0sNTg2OntuOiJCcnRTdXBOYW1lQml0cyJ9LDU4Nzp7bjoiQnJ0U3VwTmFtZUVuZCJ9LDU4ODp7''@;'; + put 'put ''bjoiQnJ0RW5kU3VwQm9vayJ9LDU4OTp7bjoiQnJ0Q2VsbFNtYXJ0VGFnUHJvcGVydHkifSw1OTA6e246IkJydEJlZ2luQ2VsbFNtYXJ0VGFnIn0sNTkxOntuOiJCcnRFbmRDZWxsU21hcnRUYWcifSw1OTI6e246IkJydEJlZ2luQ2VsbFNtYXJ0VGFncyJ9LDU5Mzp7bjoiQnJ0RW5kQ2VsbFNt''@;'; + put 'put ''YXJ0VGFncyJ9LDU5NDp7bjoiQnJ0QmVnaW5TbWFydFRhZ3MifSw1OTU6e246IkJydEVuZFNtYXJ0VGFncyJ9LDU5Njp7bjoiQnJ0U21hcnRUYWdUeXBlIn0sNTk3OntuOiJCcnRCZWdpblNtYXJ0VGFnVHlwZXMifSw1OTg6e246IkJydEVuZFNtYXJ0VGFnVHlwZXMifSw1OTk6e246IkJydEJl''@;'; + put 'put ''Z2luU1hGaWx0ZXJzIn0sNjAwOntuOiJCcnRFbmRTWEZpbHRlcnMifSw2MDE6e246IkJydEJlZ2luU1hGSUxURVIifSw2MDI6e246IkJydEVuZFNYRmlsdGVyIn0sNjAzOntuOiJCcnRCZWdpbkZpbGxzIn0sNjA0OntuOiJCcnRFbmRGaWxscyJ9LDYwNTp7bjoiQnJ0QmVnaW5DZWxsV2F0Y2hl''@;'; + put 'put ''cyJ9LDYwNjp7bjoiQnJ0RW5kQ2VsbFdhdGNoZXMifSw2MDc6e246IkJydENlbGxXYXRjaCJ9LDYwODp7bjoiQnJ0QmVnaW5DUkVycnMifSw2MDk6e246IkJydEVuZENSRXJycyJ9LDYxMDp7bjoiQnJ0Q3Jhc2hSZWNFcnIifSw2MTE6e246IkJydEJlZ2luRm9udHMifSw2MTI6e246IkJydEVu''@;'; + put 'put ''ZEZvbnRzIn0sNjEzOntuOiJCcnRCZWdpbkJvcmRlcnMifSw2MTQ6e246IkJydEVuZEJvcmRlcnMifSw2MTU6e246IkJydEJlZ2luRm10cyJ9LDYxNjp7bjoiQnJ0RW5kRm10cyJ9LDYxNzp7bjoiQnJ0QmVnaW5DZWxsWEZzIn0sNjE4OntuOiJCcnRFbmRDZWxsWEZzIn0sNjE5OntuOiJCcnRC''@;'; + put 'put ''ZWdpblN0eWxlcyJ9LDYyMDp7bjoiQnJ0RW5kU3R5bGVzIn0sNjI1OntuOiJCcnRCaWdOYW1lIn0sNjI2OntuOiJCcnRCZWdpbkNlbGxTdHlsZVhGcyJ9LDYyNzp7bjoiQnJ0RW5kQ2VsbFN0eWxlWEZzIn0sNjI4OntuOiJCcnRCZWdpbkNvbW1lbnRzIn0sNjI5OntuOiJCcnRFbmRDb21tZW50''@;'; + put 'put ''cyJ9LDYzMDp7bjoiQnJ0QmVnaW5Db21tZW50QXV0aG9ycyJ9LDYzMTp7bjoiQnJ0RW5kQ29tbWVudEF1dGhvcnMifSw2MzI6e246IkJydENvbW1lbnRBdXRob3IiLGY6YmZ9LDYzMzp7bjoiQnJ0QmVnaW5Db21tZW50TGlzdCJ9LDYzNDp7bjoiQnJ0RW5kQ29tbWVudExpc3QifSw2MzU6e246''@;'; + put 'put ''IkJydEJlZ2luQ29tbWVudCIsZjpmdW5jdGlvbiBXOShIKXt2YXIgcmU9e307cmUuaWF1dGhvcj1ILnJlYWRfc2hpZnQoNCk7dmFyIFg9d2goSCwxNik7cmV0dXJuIHJlLnJmeD1YLnMscmUucmVmPVkwKFgucyksSC5sKz0xNixyZX19LDYzNjp7bjoiQnJ0RW5kQ29tbWVudCJ9LDYzNzp7bjoi''@;'; + put 'put ''QnJ0Q29tbWVudFRleHQiLGY6VmZ9LDYzODp7bjoiQnJ0QmVnaW5PbGVPYmplY3RzIn0sNjM5OntuOiJCcnRPbGVPYmplY3QifSw2NDA6e246IkJydEVuZE9sZU9iamVjdHMifSw2NDE6e246IkJydEJlZ2luU3hydWxlcyJ9LDY0Mjp7bjoiQnJ0RW5kU3hSdWxlcyJ9LDY0Mzp7bjoiQnJ0QmVn''@;'; + put 'put ''aW5BY3RpdmVYQ29udHJvbHMifSw2NDQ6e246IkJydEFjdGl2ZVgifSw2NDU6e246IkJydEVuZEFjdGl2ZVhDb250cm9scyJ9LDY0Njp7bjoiQnJ0QmVnaW5QQ0RTRFRDRU1lbWJlcnNTb3J0QnkifSw2NDg6e246IkJydEJlZ2luQ2VsbElnbm9yZUVDcyJ9LDY0OTp7bjoiQnJ0Q2VsbElnbm9y''@;'; + put 'put ''ZUVDIn0sNjUwOntuOiJCcnRFbmRDZWxsSWdub3JlRUNzIn0sNjUxOntuOiJCcnRDc1Byb3AiLGY6ZnVuY3Rpb24gUHgoSCxyZSl7cmV0dXJuIEgubCs9MTAse25hbWU6eHUoSCl9fX0sNjUyOntuOiJCcnRDc1BhZ2VTZXR1cCJ9LDY1Mzp7bjoiQnJ0QmVnaW5Vc2VyQ3NWaWV3cyJ9LDY1NDp7''@;'; + put 'put ''bjoiQnJ0RW5kVXNlckNzVmlld3MifSw2NTU6e246IkJydEJlZ2luVXNlckNzVmlldyJ9LDY1Njp7bjoiQnJ0RW5kVXNlckNzVmlldyJ9LDY1Nzp7bjoiQnJ0QmVnaW5QY2RTRkNJRW50cmllcyJ9LDY1ODp7bjoiQnJ0RW5kUENEU0ZDSUVudHJpZXMifSw2NTk6e246IkJydFBDRFNGQ0lFbnRy''@;'; + put 'put ''eSJ9LDY2MDp7bjoiQnJ0QmVnaW5MaXN0UGFydHMifSw2NjE6e246IkJydExpc3RQYXJ0In0sNjYyOntuOiJCcnRFbmRMaXN0UGFydHMifSw2NjM6e246IkJydFNoZWV0Q2FsY1Byb3AifSw2NjQ6e246IkJydEJlZ2luRm5Hcm91cCJ9LDY2NTp7bjoiQnJ0Rm5Hcm91cCJ9LDY2Njp7bjoiQnJ0''@;'; + put 'put ''RW5kRm5Hcm91cCJ9LDY2Nzp7bjoiQnJ0U3VwQWRkaW4ifSw2Njg6e246IkJydFNYVERNUE9yZGVyIn0sNjY5OntuOiJCcnRDc1Byb3RlY3Rpb24ifSw2NzE6e246IkJydEJlZ2luV3NTb3J0TWFwIn0sNjcyOntuOiJCcnRFbmRXc1NvcnRNYXAifSw2NzM6e246IkJydEJlZ2luUlJTb3J0In0s''@;'; + put 'put ''Njc0OntuOiJCcnRFbmRSUlNvcnQifSw2NzU6e246IkJydFJSU29ydEl0ZW0ifSw2NzY6e246IkJydEZpbGVTaGFyaW5nSXNvIn0sNjc3OntuOiJCcnRCb29rUHJvdGVjdGlvbklzbyJ9LDY3ODp7bjoiQnJ0U2hlZXRQcm90ZWN0aW9uSXNvIn0sNjc5OntuOiJCcnRDc1Byb3RlY3Rpb25Jc28i''@;'; + put 'put ''fSw2ODA6e246IkJydFJhbmdlUHJvdGVjdGlvbklzbyJ9LDY4MTp7bjoiQnJ0RFZhbExpc3QifSwxMDI0OntuOiJCcnRSd0Rlc2NlbnQifSwxMDI1OntuOiJCcnRLbm93bkZvbnRzIn0sMTAyNjp7bjoiQnJ0QmVnaW5TWFR1cGxlU2V0In0sMTAyNzp7bjoiQnJ0RW5kU1hUdXBsZVNldCJ9LDEw''@;'; + put 'put ''Mjg6e246IkJydEJlZ2luU1hUdXBsZVNldEhlYWRlciJ9LDEwMjk6e246IkJydEVuZFNYVHVwbGVTZXRIZWFkZXIifSwxMDMwOntuOiJCcnRTWFR1cGxlU2V0SGVhZGVySXRlbSJ9LDEwMzE6e246IkJydEJlZ2luU1hUdXBsZVNldERhdGEifSwxMDMyOntuOiJCcnRFbmRTWFR1cGxlU2V0RGF0''@;'; + put 'put ''YSJ9LDEwMzM6e246IkJydEJlZ2luU1hUdXBsZVNldFJvdyJ9LDEwMzQ6e246IkJydEVuZFNYVHVwbGVTZXRSb3cifSwxMDM1OntuOiJCcnRTWFR1cGxlU2V0Um93SXRlbSJ9LDEwMzY6e246IkJydE5hbWVFeHQifSwxMDM3OntuOiJCcnRQQ0RIMTQifSwxMDM4OntuOiJCcnRCZWdpblBDRENh''@;'; + put 'put ''bGNNZW0xNCJ9LDEwMzk6e246IkJydEVuZFBDRENhbGNNZW0xNCJ9LDEwNDA6e246IkJydFNYVEgxNCJ9LDEwNDE6e246IkJydEJlZ2luU3BhcmtsaW5lR3JvdXAifSwxMDQyOntuOiJCcnRFbmRTcGFya2xpbmVHcm91cCJ9LDEwNDM6e246IkJydFNwYXJrbGluZSJ9LDEwNDQ6e246IkJydFNY''@;'; + put 'put ''REkxNCJ9LDEwNDU6e246IkJydFdzRm10SW5mb0V4MTQifSwxMDQ2OntuOiJCcnRCZWdpbkNvbmRpdGlvbmFsRm9ybWF0dGluZzE0In0sMTA0Nzp7bjoiQnJ0RW5kQ29uZGl0aW9uYWxGb3JtYXR0aW5nMTQifSwxMDQ4OntuOiJCcnRCZWdpbkNGUnVsZTE0In0sMTA0OTp7bjoiQnJ0RW5kQ0ZS''@;'; + put 'put ''dWxlMTQifSwxMDUwOntuOiJCcnRDRlZPMTQifSwxMDUxOntuOiJCcnRCZWdpbkRhdGFiYXIxNCJ9LDEwNTI6e246IkJydEJlZ2luSWNvblNldDE0In0sMTA1Mzp7bjoiQnJ0RFZhbDE0IixmOmZ1bmN0aW9uIGxQKEgscmUsWCl7dmFyIHdlPWZ1bmN0aW9uIHRyKEgscmUsWCl7dmFyIHdlPUgu''@;'; + put 'put ''cmVhZF9zaGlmdCg0KSx4ZT17fTtyZXR1cm4gMSZ3ZSYmKHhlLnJlZnM9ZnVuY3Rpb24gZWkoSCl7Zm9yKHZhciByZT1ILnJlYWRfc2hpZnQoNCksWD1bXTtyZS0tID4wOylYLnB1c2goWWkoSCkpO3JldHVybiBYfShIKSksMiZ3ZSYmKHhlLnNxcmVmcz1mdW5jdGlvbiBkYShIKXtmb3IodmFy''@;'; + put 'put ''IHJlPUgucmVhZF9zaGlmdCg0KSxYPVtdO3JlLS0gPjA7KVgucHVzaCh6YShIKSk7cmV0dXJuIFh9KEgpKSw0JndlJiYoeGUuZm9ybXVsYXM9ZnVuY3Rpb24gUHMoSCxyZSxYKXtmb3IodmFyIHdlPUgucmVhZF9zaGlmdCg0KSx4ZT1bXTt3ZS0tID4wOyl4ZS5wdXNoKEt1KEgsMCxYKSk7cmV0''@;'; + put 'put ''dXJuIHhlfShILDAsWCkpLDgmd2UmJih4ZS5yZWxJRD1mdW5jdGlvbiBUdShIKXt2YXIgcmU9SC5yZWFkX3NoaWZ0KDIpO3JldHVybiAwPT09cmU/IiI6SC5yZWFkX3NoaWZ0KHJlLCJ1dGYxNmxlIil9KEgpKSx4ZX0oSCwwLFgpLHhlPUgucmVhZF9zaGlmdCg0KSxGZT15aChIKSxaZT15aChI''@;'; + put 'put ''KSxqZT15aChIKSxZZT15aChIKSxNdD0od2UuZm9ybXVsYXN8fFtdKVswXSx4dD0od2UuZm9ybXVsYXN8fFtdKVsxXSxSdD0xNSZ4ZSxVdD17dDpqbVtSdF0sc3FyZng6d2Uuc3FyZWZzWzBdLHM6W0ZlLFplLGplLFllXX07cmV0dXJuIE10JiYoVXQuZjE9TXQpLHh0JiYoVXQuZjI9eHQpLDA9''@;'; + put 'put ''PVJ0fHwzPT1SdHx8Nz09UnR8fChVdC5vcD1fQVt4ZT4+MjAmMTVdKSxVdH19LDEwNTQ6e246IkJydEJlZ2luRFZhbHMxNCJ9LDEwNTU6e246IkJydENvbG9yMTQifSwxMDU2OntuOiJCcnRCZWdpblNwYXJrbGluZXMifSwxMDU3OntuOiJCcnRFbmRTcGFya2xpbmVzIn0sMTA1ODp7bjoiQnJ0''@;'; + put 'put ''QmVnaW5TcGFya2xpbmVHcm91cHMifSwxMDU5OntuOiJCcnRFbmRTcGFya2xpbmVHcm91cHMifSwxMDYxOntuOiJCcnRTWFZEMTQifSwxMDYyOntuOiJCcnRCZWdpblNYVmlldzE0In0sMTA2Mzp7bjoiQnJ0RW5kU1hWaWV3MTQifSwxMDY0OntuOiJCcnRCZWdpblNYVmlldzE2In0sMTA2NTp7''@;'; + put 'put ''bjoiQnJ0RW5kU1hWaWV3MTYifSwxMDY2OntuOiJCcnRCZWdpblBDRDE0In0sMTA2Nzp7bjoiQnJ0RW5kUENEMTQifSwxMDY4OntuOiJCcnRCZWdpbkV4dENvbm4xNCJ9LDEwNjk6e246IkJydEVuZEV4dENvbm4xNCJ9LDEwNzA6e246IkJydEJlZ2luU2xpY2VyQ2FjaGVJRHMifSwxMDcxOntu''@;'; + put 'put ''OiJCcnRFbmRTbGljZXJDYWNoZUlEcyJ9LDEwNzI6e246IkJydEJlZ2luU2xpY2VyQ2FjaGVJRCJ9LDEwNzM6e246IkJydEVuZFNsaWNlckNhY2hlSUQifSwxMDc1OntuOiJCcnRCZWdpblNsaWNlckNhY2hlIn0sMTA3Njp7bjoiQnJ0RW5kU2xpY2VyQ2FjaGUifSwxMDc3OntuOiJCcnRCZWdp''@;'; + put 'put ''blNsaWNlckNhY2hlRGVmIn0sMTA3ODp7bjoiQnJ0RW5kU2xpY2VyQ2FjaGVEZWYifSwxMDc5OntuOiJCcnRCZWdpblNsaWNlcnNFeCJ9LDEwODA6e246IkJydEVuZFNsaWNlcnNFeCJ9LDEwODE6e246IkJydEJlZ2luU2xpY2VyRXgifSwxMDgyOntuOiJCcnRFbmRTbGljZXJFeCJ9LDEwODM6''@;'; + put 'put ''e246IkJydEJlZ2luU2xpY2VyIn0sMTA4NDp7bjoiQnJ0RW5kU2xpY2VyIn0sMTA4NTp7bjoiQnJ0U2xpY2VyQ2FjaGVQaXZvdFRhYmxlcyJ9LDEwODY6e246IkJydEJlZ2luU2xpY2VyQ2FjaGVPbGFwSW1wbCJ9LDEwODc6e246IkJydEVuZFNsaWNlckNhY2hlT2xhcEltcGwifSwxMDg4Ontu''@;'; + put 'put ''OiJCcnRCZWdpblNsaWNlckNhY2hlTGV2ZWxzRGF0YSJ9LDEwODk6e246IkJydEVuZFNsaWNlckNhY2hlTGV2ZWxzRGF0YSJ9LDEwOTA6e246IkJydEJlZ2luU2xpY2VyQ2FjaGVMZXZlbERhdGEifSwxMDkxOntuOiJCcnRFbmRTbGljZXJDYWNoZUxldmVsRGF0YSJ9LDEwOTI6e246IkJydEJl''@;'; + put 'put ''Z2luU2xpY2VyQ2FjaGVTaVJhbmdlcyJ9LDEwOTM6e246IkJydEVuZFNsaWNlckNhY2hlU2lSYW5nZXMifSwxMDk0OntuOiJCcnRCZWdpblNsaWNlckNhY2hlU2lSYW5nZSJ9LDEwOTU6e246IkJydEVuZFNsaWNlckNhY2hlU2lSYW5nZSJ9LDEwOTY6e246IkJydFNsaWNlckNhY2hlT2xhcEl0''@;'; + put 'put ''ZW0ifSwxMDk3OntuOiJCcnRCZWdpblNsaWNlckNhY2hlU2VsZWN0aW9ucyJ9LDEwOTg6e246IkJydFNsaWNlckNhY2hlU2VsZWN0aW9uIn0sMTA5OTp7bjoiQnJ0RW5kU2xpY2VyQ2FjaGVTZWxlY3Rpb25zIn0sMTEwMDp7bjoiQnJ0QmVnaW5TbGljZXJDYWNoZU5hdGl2ZSJ9LDExMDE6e246''@;'; + put 'put ''IkJydEVuZFNsaWNlckNhY2hlTmF0aXZlIn0sMTEwMjp7bjoiQnJ0U2xpY2VyQ2FjaGVOYXRpdmVJdGVtIn0sMTEwMzp7bjoiQnJ0UmFuZ2VQcm90ZWN0aW9uMTQifSwxMTA0OntuOiJCcnRSYW5nZVByb3RlY3Rpb25Jc28xNCJ9LDExMDU6e246IkJydENlbGxJZ25vcmVFQzE0In0sMTExMTp7''@;'; + put 'put ''bjoiQnJ0TGlzdDE0In0sMTExMjp7bjoiQnJ0Q0ZJY29uIn0sMTExMzp7bjoiQnJ0QmVnaW5TbGljZXJDYWNoZXNQaXZvdENhY2hlSURzIn0sMTExNDp7bjoiQnJ0RW5kU2xpY2VyQ2FjaGVzUGl2b3RDYWNoZUlEcyJ9LDExMTU6e246IkJydEJlZ2luU2xpY2VycyJ9LDExMTY6e246IkJydEVu''@;'; + put 'put ''ZFNsaWNlcnMifSwxMTE3OntuOiJCcnRXYlByb3AxNCJ9LDExMTg6e246IkJydEJlZ2luU1hFZGl0In0sMTExOTp7bjoiQnJ0RW5kU1hFZGl0In0sMTEyMDp7bjoiQnJ0QmVnaW5TWEVkaXRzIn0sMTEyMTp7bjoiQnJ0RW5kU1hFZGl0cyJ9LDExMjI6e246IkJydEJlZ2luU1hDaGFuZ2UifSwx''@;'; + put 'put ''MTIzOntuOiJCcnRFbmRTWENoYW5nZSJ9LDExMjQ6e246IkJydEJlZ2luU1hDaGFuZ2VzIn0sMTEyNTp7bjoiQnJ0RW5kU1hDaGFuZ2VzIn0sMTEyNjp7bjoiQnJ0U1hUdXBsZUl0ZW1zIn0sMTEyODp7bjoiQnJ0QmVnaW5TbGljZXJTdHlsZSJ9LDExMjk6e246IkJydEVuZFNsaWNlclN0eWxl''@;'; + put 'put ''In0sMTEzMDp7bjoiQnJ0U2xpY2VyU3R5bGVFbGVtZW50In0sMTEzMTp7bjoiQnJ0QmVnaW5TdHlsZVNoZWV0RXh0MTQifSwxMTMyOntuOiJCcnRFbmRTdHlsZVNoZWV0RXh0MTQifSwxMTMzOntuOiJCcnRCZWdpblNsaWNlckNhY2hlc1Bpdm90Q2FjaGVJRCJ9LDExMzQ6e246IkJydEVuZFNs''@;'; + put 'put ''aWNlckNhY2hlc1Bpdm90Q2FjaGVJRCJ9LDExMzU6e246IkJydEJlZ2luQ29uZGl0aW9uYWxGb3JtYXR0aW5ncyJ9LDExMzY6e246IkJydEVuZENvbmRpdGlvbmFsRm9ybWF0dGluZ3MifSwxMTM3OntuOiJCcnRCZWdpblBDRENhbGNNZW1FeHQifSwxMTM4OntuOiJCcnRFbmRQQ0RDYWxjTWVt''@;'; + put 'put ''RXh0In0sMTEzOTp7bjoiQnJ0QmVnaW5QQ0RDYWxjTWVtc0V4dCJ9LDExNDA6e246IkJydEVuZFBDRENhbGNNZW1zRXh0In0sMTE0MTp7bjoiQnJ0UENERmllbGQxNCJ9LDExNDI6e246IkJydEJlZ2luU2xpY2VyU3R5bGVzIn0sMTE0Mzp7bjoiQnJ0RW5kU2xpY2VyU3R5bGVzIn0sMTE0NDp7''@;'; + put 'put ''bjoiQnJ0QmVnaW5TbGljZXJTdHlsZUVsZW1lbnRzIn0sMTE0NTp7bjoiQnJ0RW5kU2xpY2VyU3R5bGVFbGVtZW50cyJ9LDExNDY6e246IkJydENGUnVsZUV4dCJ9LDExNDc6e246IkJydEJlZ2luU1hDb25kRm10MTQifSwxMTQ4OntuOiJCcnRFbmRTWENvbmRGbXQxNCJ9LDExNDk6e246IkJy''@;'; + put 'put ''dEJlZ2luU1hDb25kRm10czE0In0sMTE1MDp7bjoiQnJ0RW5kU1hDb25kRm10czE0In0sMTE1Mjp7bjoiQnJ0QmVnaW5Tb3J0Q29uZDE0In0sMTE1Mzp7bjoiQnJ0RW5kU29ydENvbmQxNCJ9LDExNTQ6e246IkJydEVuZERWYWxzMTQifSwxMTU1OntuOiJCcnRFbmRJY29uU2V0MTQifSwxMTU2''@;'; + put 'put ''OntuOiJCcnRFbmREYXRhYmFyMTQifSwxMTU3OntuOiJCcnRCZWdpbkNvbG9yU2NhbGUxNCJ9LDExNTg6e246IkJydEVuZENvbG9yU2NhbGUxNCJ9LDExNTk6e246IkJydEJlZ2luU3hydWxlczE0In0sMTE2MDp7bjoiQnJ0RW5kU3hydWxlczE0In0sMTE2MTp7bjoiQnJ0QmVnaW5QUnVsZTE0''@;'; + put 'put ''In0sMTE2Mjp7bjoiQnJ0RW5kUFJ1bGUxNCJ9LDExNjM6e246IkJydEJlZ2luUFJGaWx0ZXJzMTQifSwxMTY0OntuOiJCcnRFbmRQUkZpbHRlcnMxNCJ9LDExNjU6e246IkJydEJlZ2luUFJGaWx0ZXIxNCJ9LDExNjY6e246IkJydEVuZFBSRmlsdGVyMTQifSwxMTY3OntuOiJCcnRCZWdpblBS''@;'; + put 'put ''Rkl0ZW0xNCJ9LDExNjg6e246IkJydEVuZFBSRkl0ZW0xNCJ9LDExNjk6e246IkJydEJlZ2luQ2VsbElnbm9yZUVDczE0In0sMTE3MDp7bjoiQnJ0RW5kQ2VsbElnbm9yZUVDczE0In0sMTE3MTp7bjoiQnJ0RHhmMTQifSwxMTcyOntuOiJCcnRCZWdpbkR4RjE0cyJ9LDExNzM6e246IkJydEVu''@;'; + put 'put ''ZER4ZjE0cyJ9LDExNzc6e246IkJydEZpbHRlcjE0In0sMTE3ODp7bjoiQnJ0QmVnaW5DdXN0b21GaWx0ZXJzMTQifSwxMTgwOntuOiJCcnRDdXN0b21GaWx0ZXIxNCJ9LDExODE6e246IkJydEljb25GaWx0ZXIxNCJ9LDExODI6e246IkJydFBpdm90Q2FjaGVDb25uZWN0aW9uTmFtZSJ9LDIw''@;'; + put 'put ''NDg6e246IkJydEJlZ2luRGVjb3VwbGVkUGl2b3RDYWNoZUlEcyJ9LDIwNDk6e246IkJydEVuZERlY291cGxlZFBpdm90Q2FjaGVJRHMifSwyMDUwOntuOiJCcnREZWNvdXBsZWRQaXZvdENhY2hlSUQifSwyMDUxOntuOiJCcnRCZWdpblBpdm90VGFibGVSZWZzIn0sMjA1Mjp7bjoiQnJ0RW5k''@;'; + put 'put ''UGl2b3RUYWJsZVJlZnMifSwyMDUzOntuOiJCcnRQaXZvdFRhYmxlUmVmIn0sMjA1NDp7bjoiQnJ0U2xpY2VyQ2FjaGVCb29rUGl2b3RUYWJsZXMifSwyMDU1OntuOiJCcnRCZWdpblN4dmNlbGxzIn0sMjA1Njp7bjoiQnJ0RW5kU3h2Y2VsbHMifSwyMDU3OntuOiJCcnRCZWdpblN4Um93In0s''@;'; + put 'put ''MjA1ODp7bjoiQnJ0RW5kU3hSb3cifSwyMDYwOntuOiJCcnRQY2RDYWxjTWVtMTUifSwyMDY3OntuOiJCcnRRc2kxNSJ9LDIwNjg6e246IkJydEJlZ2luV2ViRXh0ZW5zaW9ucyJ9LDIwNjk6e246IkJydEVuZFdlYkV4dGVuc2lvbnMifSwyMDcwOntuOiJCcnRXZWJFeHRlbnNpb24ifSwyMDcx''@;'; + put 'put ''OntuOiJCcnRBYnNQYXRoMTUifSwyMDcyOntuOiJCcnRCZWdpblBpdm90VGFibGVVSVNldHRpbmdzIn0sMjA3Mzp7bjoiQnJ0RW5kUGl2b3RUYWJsZVVJU2V0dGluZ3MifSwyMDc1OntuOiJCcnRUYWJsZVNsaWNlckNhY2hlSURzIn0sMjA3Njp7bjoiQnJ0VGFibGVTbGljZXJDYWNoZUlEIn0s''@;'; + put 'put ''MjA3Nzp7bjoiQnJ0QmVnaW5UYWJsZVNsaWNlckNhY2hlIn0sMjA3ODp7bjoiQnJ0RW5kVGFibGVTbGljZXJDYWNoZSJ9LDIwNzk6e246IkJydFN4RmlsdGVyMTUifSwyMDgwOntuOiJCcnRCZWdpblRpbWVsaW5lQ2FjaGVQaXZvdENhY2hlSURzIn0sMjA4MTp7bjoiQnJ0RW5kVGltZWxpbmVD''@;'; + put 'put ''YWNoZVBpdm90Q2FjaGVJRHMifSwyMDgyOntuOiJCcnRUaW1lbGluZUNhY2hlUGl2b3RDYWNoZUlEIn0sMjA4Mzp7bjoiQnJ0QmVnaW5UaW1lbGluZUNhY2hlSURzIn0sMjA4NDp7bjoiQnJ0RW5kVGltZWxpbmVDYWNoZUlEcyJ9LDIwODU6e246IkJydEJlZ2luVGltZWxpbmVDYWNoZUlEIn0s''@;'; + put 'put ''MjA4Njp7bjoiQnJ0RW5kVGltZWxpbmVDYWNoZUlEIn0sMjA4Nzp7bjoiQnJ0QmVnaW5UaW1lbGluZXNFeCJ9LDIwODg6e246IkJydEVuZFRpbWVsaW5lc0V4In0sMjA4OTp7bjoiQnJ0QmVnaW5UaW1lbGluZUV4In0sMjA5MDp7bjoiQnJ0RW5kVGltZWxpbmVFeCJ9LDIwOTE6e246IkJydFdv''@;'; + put 'put ''cmtCb29rUHIxNSJ9LDIwOTI6e246IkJydFBDREgxNSJ9LDIwOTM6e246IkJydEJlZ2luVGltZWxpbmVTdHlsZSJ9LDIwOTQ6e246IkJydEVuZFRpbWVsaW5lU3R5bGUifSwyMDk1OntuOiJCcnRUaW1lbGluZVN0eWxlRWxlbWVudCJ9LDIwOTY6e246IkJydEJlZ2luVGltZWxpbmVTdHlsZXNo''@;'; + put 'put ''ZWV0RXh0MTUifSwyMDk3OntuOiJCcnRFbmRUaW1lbGluZVN0eWxlc2hlZXRFeHQxNSJ9LDIwOTg6e246IkJydEJlZ2luVGltZWxpbmVTdHlsZXMifSwyMDk5OntuOiJCcnRFbmRUaW1lbGluZVN0eWxlcyJ9LDIxMDA6e246IkJydEJlZ2luVGltZWxpbmVTdHlsZUVsZW1lbnRzIn0sMjEwMTp7''@;'; + put 'put ''bjoiQnJ0RW5kVGltZWxpbmVTdHlsZUVsZW1lbnRzIn0sMjEwMjp7bjoiQnJ0RHhmMTUifSwyMTAzOntuOiJCcnRCZWdpbkR4ZnMxNSJ9LDIxMDQ6e246ImJydEVuZER4ZnMxNSJ9LDIxMDU6e246IkJydFNsaWNlckNhY2hlSGlkZUl0ZW1zV2l0aE5vRGF0YSJ9LDIxMDY6e246IkJydEJlZ2lu''@;'; + put 'put ''SXRlbVVuaXF1ZU5hbWVzIn0sMjEwNzp7bjoiQnJ0RW5kSXRlbVVuaXF1ZU5hbWVzIn0sMjEwODp7bjoiQnJ0SXRlbVVuaXF1ZU5hbWUifSwyMTA5OntuOiJCcnRCZWdpbkV4dENvbm4xNSJ9LDIxMTA6e246IkJydEVuZEV4dENvbm4xNSJ9LDIxMTE6e246IkJydEJlZ2luT2xlZGJQcjE1In0s''@;'; + put 'put ''MjExMjp7bjoiQnJ0RW5kT2xlZGJQcjE1In0sMjExMzp7bjoiQnJ0QmVnaW5EYXRhRmVlZFByMTUifSwyMTE0OntuOiJCcnRFbmREYXRhRmVlZFByMTUifSwyMTE1OntuOiJCcnRUZXh0UHIxNSJ9LDIxMTY6e246IkJydFJhbmdlUHIxNSJ9LDIxMTc6e246IkJydERiQ29tbWFuZDE1In0sMjEx''@;'; + put 'put ''ODp7bjoiQnJ0QmVnaW5EYlRhYmxlczE1In0sMjExOTp7bjoiQnJ0RW5kRGJUYWJsZXMxNSJ9LDIxMjA6e246IkJydERiVGFibGUxNSJ9LDIxMjE6e246IkJydEJlZ2luRGF0YU1vZGVsIn0sMjEyMjp7bjoiQnJ0RW5kRGF0YU1vZGVsIn0sMjEyMzp7bjoiQnJ0QmVnaW5Nb2RlbFRhYmxlcyJ9''@;'; + put 'put ''LDIxMjQ6e246IkJydEVuZE1vZGVsVGFibGVzIn0sMjEyNTp7bjoiQnJ0TW9kZWxUYWJsZSJ9LDIxMjY6e246IkJydEJlZ2luTW9kZWxSZWxhdGlvbnNoaXBzIn0sMjEyNzp7bjoiQnJ0RW5kTW9kZWxSZWxhdGlvbnNoaXBzIn0sMjEyODp7bjoiQnJ0TW9kZWxSZWxhdGlvbnNoaXAifSwyMTI5''@;'; + put 'put ''OntuOiJCcnRCZWdpbkVDVHh0V2l6MTUifSwyMTMwOntuOiJCcnRFbmRFQ1R4dFdpejE1In0sMjEzMTp7bjoiQnJ0QmVnaW5FQ1RXRmxkSW5mb0xzdDE1In0sMjEzMjp7bjoiQnJ0RW5kRUNUV0ZsZEluZm9Mc3QxNSJ9LDIxMzM6e246IkJydEJlZ2luRUNUV0ZsZEluZm8xNSJ9LDIxMzQ6e246''@;'; + put 'put ''IkJydEZpZWxkTGlzdEFjdGl2ZUl0ZW0ifSwyMTM1OntuOiJCcnRQaXZvdENhY2hlSWRWZXJzaW9uIn0sMjEzNjp7bjoiQnJ0U1hESTE1In0sMjEzNzp7bjoiQnJ0QmVnaW5Nb2RlbFRpbWVHcm91cGluZ3MifSwyMTM4OntuOiJCcnRFbmRNb2RlbFRpbWVHcm91cGluZ3MifSwyMTM5OntuOiJC''@;'; + put 'put ''cnRCZWdpbk1vZGVsVGltZUdyb3VwaW5nIn0sMjE0MDp7bjoiQnJ0RW5kTW9kZWxUaW1lR3JvdXBpbmcifSwyMTQxOntuOiJCcnRNb2RlbFRpbWVHcm91cGluZ0NhbGNDb2wifSwzMDcyOntuOiJCcnRVaWQifSwzMDczOntuOiJCcnRSZXZpc2lvblB0ciJ9LDUwOTU6e246IkJydEJlZ2luQ2Fs''@;'; + put 'put ''Y0ZlYXR1cmVzIn0sNTA5Njp7bjoiQnJ0RW5kQ2FsY0ZlYXR1cmVzIn0sNTA5Nzp7bjoiQnJ0Q2FsY0ZlYXR1cmUifSw2NTUzNTp7bjoiIn19LGxUPV90KHg1LCJuIik7bFQuQnJ0RlJUQXJjaElEJD0xNjt2YXIgTmw9ezY6e246IkZvcm11bGEiLGY6dTV9LDEwOntuOiJFT0YiLGY6Rmx9LDEy''@;'; + put 'put ''OntuOiJDYWxjQ291bnQiLGY6YzF9LDEzOntuOiJDYWxjTW9kZSIsZjpjMX0sMTQ6e246IkNhbGNQcmVjaXNpb24iLGY6dGF9LDE1OntuOiJDYWxjUmVmTW9kZSIsZjp0YX0sMTY6e246IkNhbGNEZWx0YSIsZjpJMn0sMTc6e246IkNhbGNJdGVyIixmOnRhfSwxODp7bjoiUHJvdGVjdCIsZjp0''@;'; + put 'put ''YX0sMTk6e246IlBhc3N3b3JkIixmOmMxfSwyMDp7bjoiSGVhZGVyIixmOkQ0fSwyMTp7bjoiRm9vdGVyIixmOkQ0fSwyMzp7bjoiRXh0ZXJuU2hlZXQiLGY6Vjh9LDI0OntuOiJMYmwiLGY6cGJ9LDI1OntuOiJXaW5Qcm90ZWN0IixmOnRhfSwyNjp7bjoiVmVydGljYWxQYWdlQnJlYWtzIn0s''@;'; + put 'put ''Mjc6e246Ikhvcml6b250YWxQYWdlQnJlYWtzIn0sMjg6e246Ik5vdGUiLGY6ZnVuY3Rpb24gbG0oSCxyZSxYKXtyZXR1cm4gZnVuY3Rpb24gdzkoSCxyZSxYKXtpZighKFguYmlmZjw4KSl7dmFyIHdlPUgucmVhZF9zaGlmdCgyKSx4ZT1ILnJlYWRfc2hpZnQoMiksRmU9SC5yZWFkX3NoaWZ0''@;'; + put 'put ''KDIpLFplPUgucmVhZF9zaGlmdCgyKSxqZT1kZihILDAsWCk7cmV0dXJuIFguYmlmZjw4JiZILnJlYWRfc2hpZnQoMSksW3tyOndlLGM6eGV9LGplLFplLEZlXX19KEgsMCxYKX19LDI5OntuOiJTZWxlY3Rpb24iLGY6ZnVuY3Rpb24gTWgoSCxyZSxYKXtyZXR1cm4gWCYmWC5iaWZmPDU/KEgu''@;'; + put 'put ''bCs9cmUse2NlbGw6e3I6MCxjOjB9fSk6KEgucmVhZF9zaGlmdCgxKSx7Y2VsbDpZMCh7cjpILnJlYWRfc2hpZnQoMiksYzpILnJlYWRfc2hpZnQoMil9KX0pfX0sMzQ6e246IkRhdGUxOTA0IixmOnRhfSwzNTp7bjoiRXh0ZXJuTmFtZSIsZjpaTX0sMzg6e246IkxlZnRNYXJnaW4iLGY6STJ9''@;'; + put 'put ''LDM5OntuOiJSaWdodE1hcmdpbiIsZjpJMn0sNDA6e246IlRvcE1hcmdpbiIsZjpJMn0sNDE6e246IkJvdHRvbU1hcmdpbiIsZjpJMn0sNDI6e246IlByaW50Um93Q29sIixmOnRhfSw0Mzp7bjoiUHJpbnRHcmlkIixmOnRhfSw0Nzp7bjoiRmlsZVBhc3MiLGY6ZnVuY3Rpb24gZ20oSCxyZSxY''@;'; + put 'put ''KXtpZihYLmVuYylyZXR1cm4gWC5lbmM7dmFyIHdlPXtUeXBlOlguYmlmZj49OD9ILnJlYWRfc2hpZnQoMik6MH07cmV0dXJuIHdlLlR5cGU/ZnVuY3Rpb24gbEUoSCxyZSxYLHdlKXt2YXIgeGU9d2V8fHt9O2lmKHhlLkluZm89SC5yZWFkX3NoaWZ0KDIpLEgubC09MiwxPT09eGUuSW5mbyl7''@;'; + put 'put ''aWYoeGUuRGF0YT1mdW5jdGlvbiBxeihIKXt2YXIgcmU9e30sWD1yZS5FbmNyeXB0aW9uVmVyc2lvbkluZm89dmYoSCw0KTtpZigxIT1YLk1ham9yfHwxIT1YLk1pbm9yKXRocm93InVucmVjb2duaXplZCB2ZXJzaW9uIGNvZGUgIitYLk1ham9yKyIgOiAiK1guTWlub3I7cmV0dXJuIHJlLlNh''@;'; + put 'put ''bHQ9SC5yZWFkX3NoaWZ0KDE2KSxyZS5FbmNyeXB0ZWRWZXJpZmllcj1ILnJlYWRfc2hpZnQoMTYpLHJlLkVuY3J5cHRlZFZlcmlmaWVySGFzaD1ILnJlYWRfc2hpZnQoMTYpLHJlfShIKSxYLnBhc3N3b3JkJiZ2b2lkIDAhPT1SNil7dmFyIEZlPVI2KFgucGFzc3dvcmQseGUuRGF0YS5TYWx0''@;'; + put 'put ''LCIwMDAwMDAwMCIpLFplPVRlKHhlLkRhdGEuRW5jcnlwdGVkVmVyaWZpZXIreGUuRGF0YS5FbmNyeXB0ZWRWZXJpZmllckhhc2gsImhleCIpLGplPXNvLnJjNChUZShGZSwiaGV4IikudG9TdHJpbmcoImJpbmFyeSIpLFplKTt3ZS52YWxpZD1zby5tZDUoamUuc2xpY2UoMCwxNikpPT1CdWZm''@;'; + put 'put ''ZXIuZnJvbShqZS5zbGljZSgxNikpLnRvU3RyaW5nKCJoZXgiKSx4ZS5EYXRhLktleT1GZSx3ZS5pbnNpdHU9ZnVuY3Rpb24gelAoSCxyZSl7dmFyIFg9bmV3IEFycmF5KDI1Niksd2U9MCx4ZT0wLEZlPTAsWmU9MDtmdW5jdGlvbiBqZShVdCl7Zm9yKHdlPTAseGU9MCxGZT0wLFplPTAseGU9''@;'; + put 'put ''MDsyNTYhPXhlOysreGUpWFt4ZV09eGU7Zm9yKEZlPTAseGU9MDsyNTYhPXhlOysreGUpe3RyeXtGZT1GZStYW3hlXStVdFt4ZSVVdC5sZW5ndGhdLmNoYXJDb2RlQXQoMCkmMjU1fWNhdGNoKG5uKXt0aHJvdyBjb25zb2xlLmxvZyh4ZSxVdFt4ZSVVdC5sZW5ndGhdKSxubn1aZT1YW3hlXSxY''@;'; + put 'put ''W3hlXT1YW0ZlXSxYW0ZlXT1aZX14ZT1GZT0wfWZ1bmN0aW9uIFllKFV0KXt2YXIgbm49aGUoVXQubGVuZ3RoKTtmb3Iod2U9MDt3ZSE9VXQubGVuZ3RoOysrd2UpWmU9WFt4ZT14ZSsxJjI1NV0sWFt4ZV09WFtGZT0oRmUrWFt4ZV0pJTI1Nl0sWFtGZV09WmUsbm5bd2VdPVV0W3dlXV5YW1hb''@;'; + put 'put ''eGVdK1hbRmVdJjI1NV07cmV0dXJuIEJ1ZmZlci5mcm9tKG5uKX12YXIgTXQ9SC5LZXkseHQ9MDtqZShUZShNdCwiaGV4IikudG9TdHJpbmcoImJpbmFyeSIpKTt2YXIgUnQ9MDtyZXR1cm4gZnVuY3Rpb24oVXQpe2lmKFJ0K1V0Lmxlbmd0aDwxMDI0KXJldHVybiBSdCs9VXQubGVuZ3RoLFll''@;'; + put 'put ''KFV0KTt2YXIgRHQ9MCx6dD1UZShVdC5zbGljZShEdCxEdCsoQ249MTAyNC1SdCkpKTtEdCs9Q24sUnQ9MDt2YXIgUG49WWUoenQpO2ZvcihEdD09VXQubGVuZ3RoJiYoKyt4dCxNdD1SNihyZSxILlNhbHQsSTUoeHQpKSxqZShUZShNdCwiaGV4IikudG9TdHJpbmcoImJpbmFyeSIpKSk7RHQ8''@;'; + put 'put ''VXQubGVuZ3RoOyl7Kyt4dCxNdD1SNihyZSxILlNhbHQsSTUoeHQpKSxqZShCdWZmZXIuZnJvbShNdCwiaGV4IikudG9TdHJpbmcoImJpbmFyeSIpKTt2YXIgQ249TWF0aC5taW4oMTAyNCxVdC5sZW5ndGgtRHQpO3p0PVRlKFV0LnNsaWNlKER0LER0K0NuKSksRHQrPUNuLFJ0PUNuLFBuPUJ1''@;'; + put 'put ''ZmZlci5jb25jYXQoW1BuLFllKHp0KV0pfXJldHVybiBQbn19KHhlLkRhdGEsWC5wYXNzd29yZCl9fWVsc2UgaWYoeGUuRGF0YT1mdW5jdGlvbiAkeihILHJlKXt2YXIgWD17fSx3ZT1YLkVuY3J5cHRpb25WZXJzaW9uSW5mbz12ZihILDQpO2lmKHJlLT00LDIhPXdlLk1pbm9yKXRocm93IG5l''@;'; + put 'put ''dyBFcnJvcigidW5yZWNvZ25pemVkIG1pbm9yIHZlcnNpb24gY29kZTogIit3ZS5NaW5vcik7aWYod2UuTWFqb3I+NHx8d2UuTWFqb3I8Mil0aHJvdyBuZXcgRXJyb3IoInVucmVjb2duaXplZCBtYWpvciB2ZXJzaW9uIGNvZGU6ICIrd2UuTWFqb3IpO1guRmxhZ3M9SC5yZWFkX3NoaWZ0KDQp''@;'; + put 'put ''LHJlLT00O3ZhciB4ZT1ILnJlYWRfc2hpZnQoNCk7cmV0dXJuIHJlLT00LFguRW5jcnlwdGlvbkhlYWRlcj1PUihILHhlKSxYLkVuY3J5cHRpb25WZXJpZmllcj1SUihILHJlLT14ZSksWH0oSCxyZSkseGUuRGF0YSYmeGUuRGF0YS5FbmNyeXB0aW9uSGVhZGVyJiYyNjYyNT09PXhlLkRhdGEu''@;'; + put 'put ''RW5jcnlwdGlvbkhlYWRlci5BbGdJRCYmWC5wYXNzd29yZCYmdm9pZCAwIT09SUEpe3ZhciBZZT1JQShYLnBhc3N3b3JkLHhlLkRhdGEuRW5jcnlwdGlvblZlcmlmaWVyLlNhbHQudG9TdHJpbmcoImhleCIpLCIwMDAwMDAwMCIpLE10PXhlLkRhdGEuRW5jcnlwdGlvbkhlYWRlci5LZXlTaXpl''@;'; + put 'put ''Pj4+Mzs1PT1NdHx8TXQ8WWUubGVuZ3RoJiYoWWU9WWUuc2xpY2UoMCxNdCkpO3ZhciB4dD1UZSh4ZS5EYXRhLkVuY3J5cHRpb25WZXJpZmllci5WZXJpZmllci50b1N0cmluZygiaGV4IikreGUuRGF0YS5FbmNyeXB0aW9uVmVyaWZpZXIuVmVyaWZpZXJIYXNoLnRvU3RyaW5nKCJoZXgiKSwi''@;'; + put 'put ''aGV4IiksUnQ9c28ucmM0KFllLnRvU3RyaW5nKCJiaW5hcnkiKSx4dCk7d2UudmFsaWQ9azIoUnQuc2xpY2UoMCxNdCksIlNIQTEiKS50b1N0cmluZygiaGV4Iik9PVJ0LnNsaWNlKE10KS50b1N0cmluZygiaGV4IikseGUuRGF0YS5LZXk9WWUsd2UudmFsaWQmJih3ZS5pbnNpdHU9ZnVuY3Rp''@;'; + put 'put ''b24gdzAoSCxyZSl7dmFyIFg9bmV3IEFycmF5KDI1Niksd2U9MCx4ZT0wLEZlPTAsWmU9MCxqZT1ILkVuY3J5cHRpb25IZWFkZXIuS2V5U2l6ZT4+PjM7ZnVuY3Rpb24gWWUobm4pe2Zvcihubj1CdWZmZXIuZnJvbShubi5zbGljZSgwLGplKSksd2U9MCx4ZT0wLEZlPTAsWmU9MCx4ZT0wOzI1''@;'; + put 'put ''NiE9eGU7Kyt4ZSlYW3hlXT14ZTtmb3IoRmU9MCx4ZT0wOzI1NiE9eGU7Kyt4ZSl7dmFyIENuPW5uW3hlJW5uLmxlbmd0aF07RmU9RmUrWFt4ZV0rKCJzdHJpbmciPT10eXBlb2YgQ24/Q24uY2hhckNvZGVBdCgwKTpDbikmMjU1LFplPVhbeGVdLFhbeGVdPVhbRmVdLFhbRmVdPVplfXhlPUZl''@;'; + put 'put ''PTB9ZnVuY3Rpb24gTXQobm4pe3ZhciBDbj1oZShubi5sZW5ndGgpO2Zvcih3ZT0wO3dlIT1ubi5sZW5ndGg7Kyt3ZSlaZT1YW3hlPXhlKzEmMjU1XSxYW3hlXT1YW0ZlPShGZStYW3hlXSklMjU2XSxYW0ZlXT1aZSxDblt3ZV09bm5bd2VdXlhbWFt4ZV0rWFtGZV0mMjU1XTtyZXR1cm4gQnVm''@;'; + put 'put ''ZmVyLmZyb20oQ24pfXZhciB4dD1ILktleSxSdD0wO1llKFRlKHh0LCJoZXgiKS50b1N0cmluZygiYmluYXJ5IikpO3ZhciBVdD0wO3JldHVybiBmdW5jdGlvbihubil7aWYoVXQrbm4ubGVuZ3RoPDEwMjQpcmV0dXJuIFV0Kz1ubi5sZW5ndGgsTXQobm4pO3ZhciBEdD0xMDI0LVV0LHp0PTAs''@;'; + put 'put ''UG49QnVmZmVyLmZyb20obm4uc2xpY2UoenQsenQrRHQpKTt6dCs9RHQsVXQ9MDt2YXIgVG49TXQoUG4pO2Zvcih6dD09bm4ubGVuZ3RoJiYoKytSdCx4dD1JQShyZSxILkVuY3J5cHRpb25WZXJpZmllci5TYWx0LEk1KFJ0KSksWWUoQnVmZmVyLmZyb20oeHQsImhleCIpLnRvU3RyaW5nKCJi''@;'; + put 'put ''aW5hcnkiKSkpO3p0PG5uLmxlbmd0aDspKytSdCx4dD1JQShyZSxILkVuY3J5cHRpb25WZXJpZmllci5TYWx0LEk1KFJ0KSksWWUoQnVmZmVyLmZyb20oeHQsImhleCIpLnRvU3RyaW5nKCJiaW5hcnkiKSksRHQ9TWF0aC5taW4oMTAyNCxubi5sZW5ndGgtenQpLFBuPUJ1ZmZlci5mcm9tKG5u''@;'; + put 'put ''LnNsaWNlKHp0LHp0K0R0KSksenQrPUR0LER0PDEwMjQmJihVdD1EdCksVG49QnVmZmVyLmNvbmNhdChbVG4sTXQoUG4pXSk7cmV0dXJuIFRufX0oeGUuRGF0YSxYLnBhc3N3b3JkKSl9cmV0dXJuIHhlfShILHJlLTIsWCx3ZSk6ZnVuY3Rpb24gRlIoSCxyZSxYLHdlKXt2YXIgeGU9e2tleTpj''@;'; + put 'put ''MShIKSx2ZXJpZmljYXRpb25CeXRlczpjMShIKX07WC5wYXNzd29yZCYmKHhlLnZlcmlmaWVyPVM5KFgucGFzc3dvcmQpKSx3ZS52YWxpZD14ZS52ZXJpZmljYXRpb25CeXRlcz09PXhlLnZlcmlmaWVyLHdlLnZhbGlkJiYod2UuaW5zaXR1PWZ1bmN0aW9uKEgscmUpe3ZhciBYPXJlfHwwLHdl''@;'; + put 'put ''PU05KEgpO3JldHVybiBmdW5jdGlvbih4ZSl7dmFyIEZlPWZ1bmN0aW9uKEgscmUsWCx3ZSx4ZSl7dmFyIEZlLFplO2Zvcih4ZXx8KHhlPXJlKSx3ZXx8KHdlPU05KCIiKSksRmU9MDtGZSE9cmUubGVuZ3RoOysrRmUpWmU9MjU1JigoWmU9cmVbRmVdKT4+NXxaZTw8MykseGVbRmVdPVplXj13''@;'; + put 'put ''ZVtYXSxYPVgrMSYxNTtyZXR1cm5beGUsWCx3ZV19KDAseGUsWCx3ZSk7cmV0dXJuIFg9RmVbMV0sRmVbMF19fShYLnBhc3N3b3JkLDApKX0oSCwwLFgsd2UpLHdlfX0sNDk6e246IkZvbnQiLGY6ZnVuY3Rpb24ga2QoSCxyZSxYKXt2YXIgd2U9e3N6OkgucmVhZF9zaGlmdCgyKS8yMH0seGU9''@;'; + put 'put ''dGIoSCk7eGUuZkJvbGQmJih3ZS5ib2xkPTEpLHhlLmZJdGFsaWMmJih3ZS5pdGFsaWM9MSkseGUuZlVuZGVybGluZSYmKHdlLnVuZGVybGluZT0xKSx4ZS5mQ29uZGVuc2UmJih3ZS5jb25kZW5zZT0xKSx4ZS5mRXh0ZW5kJiYod2UuZXh0ZW5kPTEpLHhlLmZTaGFkb3cmJih3ZS5zaGFkb3c9''@;'; + put 'put ''MSkseGUuZk91dGxpbmUmJih3ZS5vdXRsaW5lPTEpLHhlLmZTdHJpa2VvdXQmJih3ZS5zdHJpa2U9MSk7dmFyIEZlPVgmJlguYmlmZnx8ODtpZigyIT1GZSYmKHdlLmljdj1ILnJlYWRfc2hpZnQoMiksMyE9RmUmJjQhPUZlKSl7c3dpdGNoKDcwMD09PUgucmVhZF9zaGlmdCgyKSYmKHdlLmJv''@;'; + put 'put ''bGQ9MSksSC5yZWFkX3NoaWZ0KDIpKXtjYXNlIDE6d2UudmFsaWduPSJzdXBlciI7YnJlYWs7Y2FzZSAyOndlLnZhbGlnbj0ic3ViIn12YXIgamU9SC5yZWFkX3NoaWZ0KDEpOzAhPWplJiYod2UudW5kZXJsaW5lPWplKTt2YXIgWWU9SC5yZWFkX3NoaWZ0KDEpO1llPjAmJih3ZS5mYW1pbHk9''@;'; + put 'put ''WWUpO3ZhciBNdD1ILnJlYWRfc2hpZnQoMSk7TXQ+MCYmKHdlLmNoYXJzZXQ9TXQpLEgubCs9MX1yZXR1cm4gd2UubmFtZT16YyhILDAsWCksd2V9fSw1MTp7bjoiUHJpbnRTaXplIixmOmMxfSw2MDp7bjoiQ29udGludWUifSw2MTp7bjoiV2luZG93MSIsZjpmdW5jdGlvbiBybShIKXtyZXR1''@;'; + put 'put ''cm57UG9zOltILnJlYWRfc2hpZnQoMiksSC5yZWFkX3NoaWZ0KDIpXSxEaW06W0gucmVhZF9zaGlmdCgyKSxILnJlYWRfc2hpZnQoMildLEZsYWdzOkgucmVhZF9zaGlmdCgyKSxDdXJUYWI6SC5yZWFkX3NoaWZ0KDIpLEZpcnN0VGFiOkgucmVhZF9zaGlmdCgyKSxTZWxlY3RlZDpILnJlYWRf''@;'; + put 'put ''c2hpZnQoMiksVGFiUmF0aW86SC5yZWFkX3NoaWZ0KDIpfX19LDY0OntuOiJCYWNrdXAiLGY6dGF9LDY1OntuOiJQYW5lIixmOmZ1bmN0aW9uIENkKEgscmUsWCl7aWYoWCYmWC5iaWZmPDUpcmV0dXJue307dmFyIHdlPXt9O3JldHVybiB3ZS54PUgucmVhZF9zaGlmdCgyKSx3ZS55PUgucmVh''@;'; + put 'put ''ZF9zaGlmdCgyKSx3ZS5yd1RvcD1ILnJlYWRfc2hpZnQoMiksd2UuY29sTGVmdD1ILnJlYWRfc2hpZnQoMiksd2UucG5uQWNjdD1ILnJlYWRfc2hpZnQoMSksSC5yZWFkX3NoaWZ0KDEpLHdlfX0sNjY6e246IkNvZGVQYWdlIixmOmMxfSw3Nzp7bjoiUGxzIixmOl9zfSw4MDp7bjoiRENvbiJ9''@;'; + put 'put ''LDgxOntuOiJEQ29uUmVmIn0sODI6e246IkRDb25OYW1lIn0sODU6e246IkRlZkNvbFdpZHRoIixmOmMxfSw4OTp7bjoiWENUIn0sOTA6e246IkNSTiJ9LDkxOntuOiJGaWxlU2hhcmluZyJ9LDkyOntuOiJXcml0ZUFjY2VzcyIsZjpmdW5jdGlvbiBvNihILHJlLFgpe2lmKFguZW5jKXJldHVy''@;'; + put 'put ''biBILmwrPXJlLCIiO3ZhciB3ZT1ILmwseGU9ZGYoSCwwLFgpO3JldHVybiBILnJlYWRfc2hpZnQocmUrd2UtSC5sKSx4ZX19LDkzOntuOiJPYmoiLGY6ZnVuY3Rpb24gejEoSCxyZSxYKXtpZihYJiZYLmJpZmY8OClyZXR1cm4gZnVuY3Rpb24gbWYoSCxyZSxYKXtILmwrPTQ7dmFyIHdlPUgu''@;'; + put 'put ''cmVhZF9zaGlmdCgyKSx4ZT1ILnJlYWRfc2hpZnQoMiksRmU9SC5yZWFkX3NoaWZ0KDIpO0gubCs9MixILmwrPTIsSC5sKz0yLEgubCs9MixILmwrPTIsSC5sKz0yLEgubCs9MixILmwrPTIsSC5sKz0yLEgubCs9Njt2YXIgWmU9W107cmV0dXJuIFplLnB1c2goKGI5W3dlXXx8X3MpKEgscmUt''@;'; + put 'put ''PTM2LFgpKSx7Y21vOlt4ZSx3ZSxGZV0sZnQ6WmV9fShILHJlLFgpO3ZhciB3ZT12OShIKSx4ZT1mdW5jdGlvbiBYdShILHJlLFgpe2Zvcih2YXIgd2U9SC5sK3JlLHhlPVtdO0gubDx3ZTspe3ZhciBGZT1ILnJlYWRfc2hpZnQoMik7SC5sLT0yO3RyeXt4ZVtGZV09bm1bRmVdKEgsd2UtSC5s''@;'; + put 'put ''KX1jYXRjaChaZSl7cmV0dXJuIEgubD13ZSx4ZX19cmV0dXJuIEgubCE9d2UmJihILmw9d2UpLHhlfShILHJlLTIyKTtyZXR1cm57Y21vOndlLGZ0OnhlfX19LDk0OntuOiJVbmNhbGNlZCJ9LDk1OntuOiJDYWxjU2F2ZVJlY2FsYyIsZjp0YX0sOTY6e246IlRlbXBsYXRlIn0sOTc6e246Iklu''@;'; + put 'put ''dGwifSw5OTp7bjoiT2JqUHJvdGVjdCIsZjp0YX0sMTI1OntuOiJDb2xJbmZvIixmOnYzfSwxMjg6e246Ikd1dHMiLGY6ZnVuY3Rpb24gczYoSCl7SC5sKz00O3ZhciByZT1bSC5yZWFkX3NoaWZ0KDIpLEgucmVhZF9zaGlmdCgyKV07aWYoMCE9PXJlWzBdJiZyZVswXS0tLDAhPT1yZVsxXSYm''@;'; + put 'put ''cmVbMV0tLSxyZVswXT43fHxyZVsxXT43KXRocm93IG5ldyBFcnJvcigiQmFkIEd1dHRlcnM6ICIrcmUuam9pbigifCIpKTtyZXR1cm4gcmV9fSwxMjk6e246IldzQm9vbCIsZjpmdW5jdGlvbiBjYihILHJlLFgpe3ZhciB3ZT1YJiY4PT1YLmJpZmZ8fDI9PXJlP0gucmVhZF9zaGlmdCgyKToo''@;'; + put 'put ''SC5sKz1yZSwwKTtyZXR1cm57ZkRpYWxvZzoxNiZ3ZSxmQmVsb3c6NjQmd2UsZlJpZ2h0OjEyOCZ3ZX19fSwxMzA6e246IkdyaWRTZXQiLGY6YzF9LDEzMTp7bjoiSENlbnRlciIsZjp0YX0sMTMyOntuOiJWQ2VudGVyIixmOnRhfSwxMzM6e246IkJvdW5kU2hlZXQ4IixmOmZ1bmN0aW9uIFA4''@;'; + put 'put ''KEgscmUsWCl7dmFyIHdlPUgucmVhZF9zaGlmdCg0KSx4ZT0zJkgucmVhZF9zaGlmdCgxKSxGZT1ILnJlYWRfc2hpZnQoMSk7c3dpdGNoKEZlKXtjYXNlIDA6RmU9IldvcmtzaGVldCI7YnJlYWs7Y2FzZSAxOkZlPSJNYWNyb3NoZWV0IjticmVhaztjYXNlIDI6RmU9IkNoYXJ0c2hlZXQiO2Jy''@;'; + put 'put ''ZWFrO2Nhc2UgNjpGZT0iVkJBTW9kdWxlIn12YXIgWmU9emMoSCwwLFgpO3JldHVybiAwPT09WmUubGVuZ3RoJiYoWmU9IlNoZWV0MSIpLHtwb3M6d2UsaHM6eGUsZHQ6RmUsbmFtZTpaZX19fSwxMzQ6e246IldyaXRlUHJvdGVjdCJ9LDE0MDp7bjoiQ291bnRyeSIsZjpmdW5jdGlvbiBfOShI''@;'; + put 'put ''KXt2YXIgWCxyZT1bMCwwXTtyZXR1cm4gWD1ILnJlYWRfc2hpZnQoMikscmVbMF09WGdbWF18fFgsWD1ILnJlYWRfc2hpZnQoMikscmVbMV09WGdbWF18fFgscmV9fSwxNDE6e246IkhpZGVPYmoiLGY6YzF9LDE0NDp7bjoiU29ydCJ9LDE0Njp7bjoiUGFsZXR0ZSIsZjpmdW5jdGlvbiBTUihI''@;'; + put 'put ''KXtmb3IodmFyIHJlPUgucmVhZF9zaGlmdCgyKSxYPVtdO3JlLS0gPjA7KVgucHVzaChSOChIKSk7cmV0dXJuIFh9fSwxNTE6e246IlN5bmMifSwxNTI6e246IkxQciJ9LDE1Mzp7bjoiRHhHQ29sIn0sMTU0OntuOiJGbkdyb3VwTmFtZSJ9LDE1NTp7bjoiRmlsdGVyTW9kZSJ9LDE1Njp7bjoi''@;'; + put 'put ''QnVpbHRJbkZuR3JvdXBDb3VudCIsZjpjMX0sMTU3OntuOiJBdXRvRmlsdGVySW5mbyJ9LDE1ODp7bjoiQXV0b0ZpbHRlciJ9LDE2MDp7bjoiU2NsIixmOms5fSwxNjE6e246IlNldHVwIixmOmZ1bmN0aW9uIFFNKEgscmUpe3ZhciBYPXt9O3JldHVybiByZTwzMnx8KEgubCs9MTYsWC5oZWFk''@;'; + put 'put ''ZXI9STIoSCksWC5mb290ZXI9STIoSCksSC5sKz0yKSxYfX0sMTc0OntuOiJTY2VuTWFuIn0sMTc1OntuOiJTQ0VOQVJJTyJ9LDE3Njp7bjoiU3hWaWV3In0sMTc3OntuOiJTeHZkIn0sMTc4OntuOiJTWFZJIn0sMTgwOntuOiJTeEl2ZCJ9LDE4MTp7bjoiU1hMSSJ9LDE4Mjp7bjoiU1hQSSJ9''@;'; + put 'put ''LDE4NDp7bjoiRG9jUm91dGUifSwxODU6e246IlJlY2lwTmFtZSJ9LDE4OTp7bjoiTXVsUmsiLGY6ZnVuY3Rpb24gb20oSCxyZSl7Zm9yKHZhciBYPUgubCtyZS0yLHdlPUgucmVhZF9zaGlmdCgyKSx4ZT1ILnJlYWRfc2hpZnQoMiksRmU9W107SC5sPFg7KUZlLnB1c2godG0oSCkpO2lmKEgu''@;'; + put 'put ''bCE9PVgpdGhyb3cgbmV3IEVycm9yKCJNdWxSSyByZWFkIGVycm9yIik7dmFyIFplPUgucmVhZF9zaGlmdCgyKTtpZihGZS5sZW5ndGghPVplLXhlKzEpdGhyb3cgbmV3IEVycm9yKCJNdWxSSyBsZW5ndGggbWlzbWF0Y2giKTtyZXR1cm57cjp3ZSxjOnhlLEM6WmUscmtyZWM6RmV9fX0sMTkw''@;'; + put 'put ''OntuOiJNdWxCbGFuayIsZjpmdW5jdGlvbiBBUihILHJlKXtmb3IodmFyIFg9SC5sK3JlLTIsd2U9SC5yZWFkX3NoaWZ0KDIpLHhlPUgucmVhZF9zaGlmdCgyKSxGZT1bXTtILmw8WDspRmUucHVzaChILnJlYWRfc2hpZnQoMikpO2lmKEgubCE9PVgpdGhyb3cgbmV3IEVycm9yKCJNdWxCbGFu''@;'; + put 'put ''ayByZWFkIGVycm9yIik7dmFyIFplPUgucmVhZF9zaGlmdCgyKTtpZihGZS5sZW5ndGghPVplLXhlKzEpdGhyb3cgbmV3IEVycm9yKCJNdWxCbGFuayBsZW5ndGggbWlzbWF0Y2giKTtyZXR1cm57cjp3ZSxjOnhlLEM6WmUsaXhmZTpGZX19fSwxOTM6e246Ik1tcyIsZjpGbH0sMTk3OntuOiJT''@;'; + put 'put ''WERJIn0sMTk4OntuOiJTWERCIn0sMTk5OntuOiJTWEZEQiJ9LDIwMDp7bjoiU1hEQkIifSwyMDE6e246IlNYTnVtIn0sMjAyOntuOiJTeEJvb2wiLGY6dGF9LDIwMzp7bjoiU3hFcnIifSwyMDQ6e246IlNYSW50In0sMjA1OntuOiJTWFN0cmluZyJ9LDIwNjp7bjoiU1hEdHIifSwyMDc6e246''@;'; + put 'put ''IlN4TmlsIn0sMjA4OntuOiJTWFRibCJ9LDIwOTp7bjoiU1hUQlJHSUlUTSJ9LDIxMDp7bjoiU3hUYnBnIn0sMjExOntuOiJPYlByb2oifSwyMTM6e246IlNYU3RyZWFtSUQifSwyMTU6e246IkRCQ2VsbCJ9LDIxNjp7bjoiU1hSbmcifSwyMTc6e246IlN4SXN4b3BlciJ9LDIxODp7bjoiQm9v''@;'; + put 'put ''a0Jvb2wiLGY6YzF9LDIyMDp7bjoiRGJPclBhcmFtUXJ5In0sMjIxOntuOiJTY2VuYXJpb1Byb3RlY3QiLGY6dGF9LDIyMjp7bjoiT2xlT2JqZWN0U2l6ZSJ9LDIyNDp7bjoiWEYiLGY6ZnVuY3Rpb24gVk0oSCxyZSxYKXt2YXIgd2U9e307cmV0dXJuIHdlLmlmbnQ9SC5yZWFkX3NoaWZ0KDIp''@;'; + put 'put ''LHdlLm51bUZtdElkPUgucmVhZF9zaGlmdCgyKSx3ZS5mbGFncz1ILnJlYWRfc2hpZnQoMiksd2UuZlN0eWxlPXdlLmZsYWdzPj4yJjEsd2UuZGF0YT1mdW5jdGlvbiBkYihILHJlLFgsd2Upe3ZhciB4ZT17fSxGZT1ILnJlYWRfc2hpZnQoNCksWmU9SC5yZWFkX3NoaWZ0KDQpLGplPUgucmVh''@;'; + put 'put ''ZF9zaGlmdCg0KSxZZT1ILnJlYWRfc2hpZnQoMik7aWYoeGUucGF0dGVyblR5cGU9UXBbamU+PjI2XSwhd2UuY2VsbFN0eWxlcylyZXR1cm4geGU7dmFyIE10PTcmRmU7c3dpdGNoKE10KXtjYXNlIDE6eGUuaGFsaWduPSJsZWZ0IjticmVhaztjYXNlIDI6eGUuaGFsaWduPSJjZW50ZXIiO2Jy''@;'; + put 'put ''ZWFrO2Nhc2UgMzp4ZS5oYWxpZ249InJpZ2h0In1zd2l0Y2goeGUuZldyYXA9RmU+PjMmMSxNdD1GZT4+NCY3KXtjYXNlIDA6eGUudmFsaWduPSJ0b3AiO2JyZWFrO2Nhc2UgMTp4ZS52YWxpZ249ImNlbnRlciI7YnJlYWs7Y2FzZSAyOnhlLnZhbGlnbj0iYm90dG9tIn1yZXR1cm4geGUuZkp1''@;'; + put 'put ''c3RMYXN0PUZlPj43JjEseGUudHJvdD1GZT4+OCYyNTUseGUuY0luZGVudD1GZT4+MTYmMTUseGUuZlNocmlua1RvRml0PUZlPj4yMCYxLHhlLmlSZWFkT3JkZXI9RmU+PjIyJjIseGUuZkF0ck51bT1GZT4+MjYmMSx4ZS5mQXRyRm50PUZlPj4yNyYxLHhlLmZBdHJBbGM9RmU+PjI4JjEseGUu''@;'; + put 'put ''ZkF0ckJkcj1GZT4+MjkmMSx4ZS5mQXRyUGF0PUZlPj4zMCYxLHhlLmZBdHJQcm90PUZlPj4zMSYxLHhlLmRnTGVmdD0xNSZaZSx4ZS5kZ1JpZ2h0PVplPj40JjE1LHhlLmRnVG9wPVplPj44JjE1LHhlLmRnQm90dG9tPVplPj4xMiYxNSx4ZS5pY3ZMZWZ0PVplPj4xNiYxMjcseGUuaWN2Umln''@;'; + put 'put ''aHQ9WmU+PjIzJjEyNyx4ZS5ncmJpdERpYWc9WmU+PjMwJjMseGUuaWN2VG9wPTEyNyZqZSx4ZS5pY3ZCb3R0b209amU+PjcmMTI3LHhlLmljdkRpYWc9amU+PjE0JjEyNyx4ZS5kZ0RpYWc9amU+PjIxJjE1LHhlLmljdkZvcmU9MTI3JlllLHhlLmljdkJhY2s9WWU+PjcmMTI3LHhlLmZzeEJ1''@;'; + put 'put ''dHRvbj1ZZT4+MTQmMSx4ZX0oSCwwLDAsWCksd2V9fSwyMjU6e246IkludGVyZmFjZUhkciIsZjpmdW5jdGlvbiBpNihILHJlKXtyZXR1cm4gMD09PXJlfHxILnJlYWRfc2hpZnQoMiksMTIwMH19LDIyNjp7bjoiSW50ZXJmYWNlRW5kIixmOkZsfSwyMjc6e246IlNYVlMifSwyMjk6e246Ik1l''@;'; + put 'put ''cmdlQ2VsbHMiLGY6ZnVuY3Rpb24gX1IoSCxyZSl7Zm9yKHZhciBYPVtdLHdlPUgucmVhZF9zaGlmdCgyKTt3ZS0tOylYLnB1c2gobjYoSCkpO3JldHVybiBYfX0sMjMzOntuOiJCa0hpbSJ9LDIzNTp7bjoiTXNvRHJhd2luZ0dyb3VwIn0sMjM2OntuOiJNc29EcmF3aW5nIn0sMjM3OntuOiJN''@;'; + put 'put ''c29EcmF3aW5nU2VsZWN0aW9uIn0sMjM5OntuOiJQaG9uZXRpY0luZm8ifSwyNDA6e246IlN4UnVsZSJ9LDI0MTp7bjoiU1hFeCJ9LDI0Mjp7bjoiU3hGaWx0In0sMjQ0OntuOiJTeERYRiJ9LDI0NTp7bjoiU3hJdG0ifSwyNDY6e246IlN4TmFtZSJ9LDI0Nzp7bjoiU3hTZWxlY3QifSwyNDg6''@;'; + put 'put ''e246IlNYUGFpciJ9LDI0OTp7bjoiU3hGbWxhIn0sMjUxOntuOiJTeEZvcm1hdCJ9LDI1Mjp7bjoiU1NUIixmOmZ1bmN0aW9uIEE5KEgscmUpe2Zvcih2YXIgWD1ILmwrcmUsd2U9SC5yZWFkX3NoaWZ0KDQpLHhlPUgucmVhZF9zaGlmdCg0KSxGZT1bXSxaZT0wO1plIT14ZSYmSC5sPFg7Kyta''@;'; + put 'put ''ZSlGZS5wdXNoKGxiKEgpKTtyZXR1cm4gRmUuQ291bnQ9d2UsRmUuVW5pcXVlPXhlLEZlfX0sMjUzOntuOiJMYWJlbFNzdCIsZjpmdW5jdGlvbiBOTShIKXt2YXIgcmU9QWMoSCk7cmV0dXJuIHJlLmlzc3Q9SC5yZWFkX3NoaWZ0KDQpLHJlfX0sMjU1OntuOiJFeHRTU1QiLGY6ZnVuY3Rpb24g''@;'; + put 'put ''emUoSCxyZSl7dmFyIFg9e307cmV0dXJuIFguZHNzdD1ILnJlYWRfc2hpZnQoMiksSC5sKz1yZS0yLFh9fSwyNTY6e246IlNYVkRFeCJ9LDI1OTp7bjoiU1hGb3JtdWxhIn0sMjkwOntuOiJTWERCRXgifSwzMTE6e246IlJSREluc0RlbCJ9LDMxMjp7bjoiUlJESGVhZCJ9LDMxNTp7bjoiUlJE''@;'; + put 'put ''Q2hnQ2VsbCJ9LDMxNzp7bjoiUlJUYWJJZCIsZjpaY30sMzE4OntuOiJSUkRSZW5TaGVldCJ9LDMxOTp7bjoiUlJTb3J0In0sMzIwOntuOiJSUkRNb3ZlIn0sMzMwOntuOiJSUkZvcm1hdCJ9LDMzMTp7bjoiUlJBdXRvRm10In0sMzMzOntuOiJSUkluc2VydFNoIn0sMzM0OntuOiJSUkRNb3Zl''@;'; + put 'put ''QmVnaW4ifSwzMzU6e246IlJSRE1vdmVFbmQifSwzMzY6e246IlJSREluc0RlbEJlZ2luIn0sMzM3OntuOiJSUkRJbnNEZWxFbmQifSwzMzg6e246IlJSRENvbmZsaWN0In0sMzM5OntuOiJSUkREZWZOYW1lIn0sMzQwOntuOiJSUkRSc3RFdHhwIn0sMzUxOntuOiJMUm5nIn0sMzUyOntuOiJV''@;'; + put 'put ''c2VzRUxGcyIsZjp0YX0sMzUzOntuOiJEU0YiLGY6Rmx9LDQwMTp7bjoiQ1VzciJ9LDQwMjp7bjoiQ2JVc3IifSw0MDM6e246IlVzckluZm8ifSw0MDQ6e246IlVzckV4Y2wifSw0MDU6e246IkZpbGVMb2NrIn0sNDA2OntuOiJSUkRJbmZvIn0sNDA3OntuOiJCQ1VzcnMifSw0MDg6e246IlVz''@;'; + put 'put ''ckNoayJ9LDQyNTp7bjoiVXNlckJWaWV3In0sNDI2OntuOiJVc2VyU1ZpZXdCZWdpbiJ9LDQyNzp7bjoiVXNlclNWaWV3RW5kIn0sNDI4OntuOiJSUkRVc2VyVmlldyJ9LDQyOTp7bjoiUXNpIn0sNDMwOntuOiJTdXBCb29rIixmOmZ1bmN0aW9uIHdSKEgscmUsWCl7dmFyIHdlPUgubCtyZSx4''@;'; + put 'put ''ZT1ILnJlYWRfc2hpZnQoMiksRmU9SC5yZWFkX3NoaWZ0KDIpO2lmKFguc2JjY2g9RmUsMTAyNT09RmV8fDE0ODQ5PT1GZSlyZXR1cm5bRmUseGVdO2lmKEZlPDF8fEZlPjI1NSl0aHJvdyBuZXcgRXJyb3IoIlVuZXhwZWN0ZWQgU3VwQm9vayB0eXBlOiAiK0ZlKTtmb3IodmFyIFplPWN1KEgs''@;'; + put 'put ''RmUpLGplPVtdO3dlPkgubDspamUucHVzaCh4NChIKSk7cmV0dXJuW0ZlLHhlLFplLGplXX19LDQzMTp7bjoiUHJvdDRSZXYiLGY6dGF9LDQzMjp7bjoiQ29uZEZtdCJ9LDQzMzp7bjoiQ0YifSw0MzQ6e246IkRWYWwifSw0Mzc6e246IkRDb25CaW4ifSw0Mzg6e246IlR4TyIsZjpmdW5jdGlv''@;'; + put 'put ''biBHTShILHJlLFgpe3ZhciB3ZT1ILmwseGU9IiIsRmU9LTE7dHJ5e0gubCs9NCwtMT09WzAsNSw3LDExLDEyLDE0XS5pbmRleE9mKChYLmxhc3RvYmp8fHtjbW86WzAsMF19KS5jbW9bMV0pP0gubCs9NjpmdW5jdGlvbiBMOChIKXt2YXIgcmU9SC5yZWFkX3NoaWZ0KDEpO0gubCsrO3ZhciBY''@;'; + put 'put ''PUgucmVhZF9zaGlmdCgyKTtILmwrPTJ9KEgpO3ZhciBZZT1ILnJlYWRfc2hpZnQoMik7SC5yZWFkX3NoaWZ0KDIpLEZlPUgucmVhZF9zaGlmdCgyKTt2YXIgeHQ9SC5yZWFkX3NoaWZ0KDIpO0gubCs9eHQ7Zm9yKHZhciBSdD0xO1J0PEgubGVucy5sZW5ndGgtMTsrK1J0KXtpZihILmwtd2Uh''@;'; + put 'put ''PUgubGVuc1tSdF0pdGhyb3cgbmV3IEVycm9yKCJUeE86IGJhZCBjb250aW51ZSByZWNvcmQiKTt2YXIgVXQ9SFtILmxdO2lmKCh4ZSs9Y3UoSCxILmxlbnNbUnQrMV0tSC5sZW5zW1J0XS0xKSkubGVuZ3RoPj0oVXQ/WWU6MipZZSkpYnJlYWt9aWYoeGUubGVuZ3RoIT09WWUmJnhlLmxlbmd0''@;'; + put 'put ''aCE9PTIqWWUpdGhyb3cgbmV3IEVycm9yKCJjY2hUZXh0OiAiK1llKyIgIT0gIit4ZS5sZW5ndGgpO3JldHVybiBILmw9d2UrcmUse3Q6eGUsaWZudDpGZX19Y2F0Y2goQ24pe3JldHVybiBILmw9d2UrcmUse3Q6eGUsaWZudDpGZX19fX0sNDM5OntuOiJSZWZyZXNoQWxsIixmOnRhfSw0NDA6''@;'; + put 'put ''e246IkhMaW5rIixmOmZ1bmN0aW9uIEw0KEgscmUpe3ZhciBYPW42KEgpO0gubCs9MTY7dmFyIHdlPWZ1bmN0aW9uIGtoKEgscmUpe3ZhciBYPUgubCtyZSx3ZT1ILnJlYWRfc2hpZnQoNCk7aWYoMiE9PXdlKXRocm93IG5ldyBFcnJvcigiVW5yZWNvZ25pemVkIHN0cmVhbVZlcnNpb246ICIr''@;'; + put 'put ''d2UpO3ZhciB4ZT1ILnJlYWRfc2hpZnQoMik7SC5sKz0yO3ZhciBGZSxaZSxqZSxZZSx4dCxSdCxNdD0iIjsxNiZ4ZSYmKEZlPXFwKEgpKSwxMjgmeGUmJihaZT1xcChIKSksMjU3PT0oMjU3JnhlKSYmKGplPXFwKEgpKSwxPT0oMjU3JnhlKSYmKFllPWZ1bmN0aW9uIE84KEgscmUpe3ZhciBY''@;'; + put 'put ''PUgucmVhZF9zaGlmdCgxNik7c3dpdGNoKFgpe2Nhc2UiZTBjOWVhNzlmOWJhY2UxMThjODIwMGFhMDA0YmE5MGIiOnJldHVybiBmdW5jdGlvbiBGTShIKXt2YXIgcmU9SC5yZWFkX3NoaWZ0KDQpLFg9SC5sLHdlPSExO3JlPjI0JiYoSC5sKz1yZS0yNCwiNzk1ODgxZjQzYjFkN2Y0OGFmMmM4''@;'; + put 'put ''MjVkYzQ4NTI3NjMiPT09SC5yZWFkX3NoaWZ0KDE2KSYmKHdlPSEwKSxILmw9WCk7dmFyIHhlPUgucmVhZF9zaGlmdCgod2U/cmUtMjQ6cmUpPj4xLCJ1dGYxNmxlIikucmVwbGFjZShULCIiKTtyZXR1cm4gd2UmJihILmwrPTI0KSx4ZX0oSCk7Y2FzZSIwMzAzMDAwMDAwMDAwMDAwYzAwMDAw''@;'; + put 'put ''MDAwMDAwMDA0NiI6cmV0dXJuIGZ1bmN0aW9uICRwKEgpe2Zvcih2YXIgcmU9SC5yZWFkX3NoaWZ0KDIpLFg9IiI7cmUtLSA+MDspWCs9Ii4uLyI7dmFyIHdlPUgucmVhZF9zaGlmdCgwLCJscHN0ci1hbnNpIik7aWYoSC5sKz0yLDU3MDA1IT1ILnJlYWRfc2hpZnQoMikpdGhyb3cgbmV3IEVy''@;'; + put 'put ''cm9yKCJCYWQgRmlsZU1vbmlrZXIiKTtpZigwPT09SC5yZWFkX3NoaWZ0KDQpKXJldHVybiBYK3dlLnJlcGxhY2UoL1xcL2csIi8iKTt2YXIgRmU9SC5yZWFkX3NoaWZ0KDQpO2lmKDMhPUgucmVhZF9zaGlmdCgyKSl0aHJvdyBuZXcgRXJyb3IoIkJhZCBGaWxlTW9uaWtlciIpO3JldHVybiBY''@;'; + put 'put ''K0gucmVhZF9zaGlmdChGZT4+MSwidXRmMTZsZSIpLnJlcGxhY2UoVCwiIil9KEgpO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJVbnN1cHBvcnRlZCBNb25pa2VyICIrWCl9fShIKSksOCZ4ZSYmKE10PXFwKEgpKSwzMiZ4ZSYmKHh0PUgucmVhZF9zaGlmdCgxNikpLDY0JnhlJiYoUnQ9VDgo''@;'; + put 'put ''SCkpLEgubD1YO3ZhciBVdD1aZXx8amV8fFllfHwiIjtVdCYmTXQmJihVdCs9IiMiK010KSxVdHx8KFV0PSIjIitNdCksMiZ4ZSYmIi8iPT1VdC5jaGFyQXQoMCkmJiIvIiE9VXQuY2hhckF0KDEpJiYoVXQ9ImZpbGU6Ly8iK1V0KTt2YXIgbm49e1RhcmdldDpVdH07cmV0dXJuIHh0JiYobm4u''@;'; + put 'put ''Z3VpZD14dCksUnQmJihubi50aW1lPVJ0KSxGZSYmKG5uLlRvb2x0aXA9RmUpLG5ufShILHJlLTI0KTtyZXR1cm5bWCx3ZV19fSw0NDE6e246IkxlbCJ9LDQ0Mjp7bjoiQ29kZU5hbWUiLGY6eDR9LDQ0Mzp7bjoiU1hGREJUeXBlIn0sNDQ0OntuOiJQcm90NFJldlBhc3MiLGY6YzF9LDQ0NTp7''@;'; + put 'put ''bjoiT2JOb01hY3JvcyJ9LDQ0Njp7bjoiRHYifSw0NDg6e246IkV4Y2VsOUZpbGUiLGY6Rmx9LDQ0OTp7bjoiUmVjYWxjSWQiLGY6ZnVuY3Rpb24gRnMoSCl7cmV0dXJuIEgucmVhZF9zaGlmdCgyKSxILnJlYWRfc2hpZnQoNCl9LHI6Mn0sNDUwOntuOiJFbnRFeFUyIixmOkZsfSw1MTI6e246''@;'; + put 'put ''IkRpbWVuc2lvbnMiLGY6aW19LDUxMzp7bjoiQmxhbmsiLGY6eFJ9LDUxNTp7bjoiTnVtYmVyIixmOmZ1bmN0aW9uIEg4KEgscmUsWCl7WC5iaWZmZ3Vlc3MmJjI9PVguYmlmZiYmKFguYmlmZj01KTt2YXIgd2U9QWMoSCkseGU9STIoSCk7cmV0dXJuIHdlLnZhbD14ZSx3ZX19LDUxNjp7bjoi''@;'; + put 'put ''TGFiZWwiLGY6ZnVuY3Rpb24gbDYoSCxyZSxYKXtYLmJpZmZndWVzcyYmMj09WC5iaWZmJiYoWC5iaWZmPTUpO3ZhciB4ZT1BYyhIKTsyPT1YLmJpZmYmJkgubCsrO3ZhciBGZT14NChILDAsWCk7cmV0dXJuIHhlLnZhbD1GZSx4ZX19LDUxNzp7bjoiQm9vbEVyciIsZjphbX0sNTE5OntuOiJT''@;'; + put 'put ''dHJpbmciLGY6ejh9LDUyMDp7bjoiUm93IixmOmZ1bmN0aW9uIFZ0KEgpe3ZhciByZT17fTtyZS5yPUgucmVhZF9zaGlmdCgyKSxyZS5jPUgucmVhZF9zaGlmdCgyKSxyZS5jbnQ9SC5yZWFkX3NoaWZ0KDIpLXJlLmM7dmFyIFg9SC5yZWFkX3NoaWZ0KDIpO0gubCs9NDt2YXIgd2U9SC5yZWFk''@;'; + put 'put ''X3NoaWZ0KDEpO0gubCs9MTt2YXIgeGU9SC5yZWFkX3NoaWZ0KDIpO3JldHVybiByZS5peGZlPTQwOTUmeGUsNyZ3ZSYmKHJlLmxldmVsPTcmd2UpLDMyJndlJiYocmUuaGlkZGVuPSEwKSw2NCZ3ZSYmKHJlLmhwdD1YLzIwKSxyZX19LDUyMzp7bjoiSW5kZXgifSw1NDU6e246IkFycmF5Iixm''@;'; + put 'put ''OmdifSw1NDk6e246IkRlZmF1bHRSb3dIZWlnaHQiLGY6V2N9LDU2Njp7bjoiVGFibGUifSw1NzQ6e246IldpbmRvdzIiLGY6ZnVuY3Rpb24gcFIoSCxyZSxYKXtpZihYJiZYLmJpZmY+PTImJlguYmlmZjw1KXJldHVybnt9O3ZhciB3ZT1ILnJlYWRfc2hpZnQoMik7cmV0dXJue1JUTDo2NCZ3''@;'; + put 'put ''ZSxncmlkOiEhKDImd2UpLGZyb3plbjohISg4JndlKX19fSw2Mzg6e246IlJLIixmOmZ1bmN0aW9uIHZSKEgpe3ZhciByZT1ILnJlYWRfc2hpZnQoMiksWD1ILnJlYWRfc2hpZnQoMiksd2U9dG0oSCk7cmV0dXJue3I6cmUsYzpYLGl4ZmU6d2VbMF0scmtudW06d2VbMV19fX0sNjU5OntuOiJT''@;'; + put 'put ''dHlsZSIsZjpmdW5jdGlvbiBqTShILHJlLFgpe3JldHVybiBILmwrPXJlLHt9fX0sMTA0ODp7bjoiQmlnTmFtZSJ9LDEwNTQ6e246IkZvcm1hdCIsZjpmdW5jdGlvbiBtUihILHJlLFgpe3JldHVybltILnJlYWRfc2hpZnQoMiksZGYoSCwwLFgpXX19LDEwODQ6e246IkNvbnRpbnVlQmlnTmFt''@;'; + put 'put ''ZSJ9LDEyMTI6e246IlNockZtbGEiLGY6ZnVuY3Rpb24gQ2koSCxyZSxYKXt2YXIgd2U9VDQoSCk7SC5sKys7dmFyIHhlPUgucmVhZF9zaGlmdCgxKTtyZXR1cm5bczUoSCxyZS09OCxYKSx4ZSx3ZV19fSwyMDQ4OntuOiJITGlua1Rvb2x0aXAiLGY6ZnVuY3Rpb24gWU0oSCxyZSl7SC5yZWFk''@;'; + put 'put ''X3NoaWZ0KDIpO3ZhciBYPW42KEgpLHdlPUgucmVhZF9zaGlmdCgocmUtMTApLzIsImRiY3MtY29udCIpO3JldHVybltYLHdlPXdlLnJlcGxhY2UoVCwiIildfX0sMjA0OTp7bjoiV2ViUHViIn0sMjA1MDp7bjoiUXNpU1hUYWcifSwyMDUxOntuOiJEQlF1ZXJ5RXh0In0sMjA1Mjp7bjoiRXh0''@;'; + put 'put ''U3RyaW5nIn0sMjA1Mzp7bjoiVHh0UXJ5In0sMjA1NDp7bjoiUXNpciJ9LDIwNTU6e246IlFzaWYifSwyMDU2OntuOiJSUkRUUVNJRiJ9LDIwNTc6e246IkJPRiIsZjpEdX0sMjA1ODp7bjoiT2xlRGJDb25uIn0sMjA1OTp7bjoiV09wdCJ9LDIwNjA6e246IlNYVmlld0V4In0sMjA2MTp7bjoi''@;'; + put 'put ''U1hUSCJ9LDIwNjI6e246IlNYUElFeCJ9LDIwNjM6e246IlNYVkRURXgifSwyMDY0OntuOiJTWFZpZXdFeDkifSwyMDY2OntuOiJDb250aW51ZUZydCJ9LDIwNjc6e246IlJlYWxUaW1lRGF0YSJ9LDIxMjg6e246IkNoYXJ0RnJ0SW5mbyJ9LDIxMjk6e246IkZydFdyYXBwZXIifSwyMTMwOntu''@;'; + put 'put ''OiJTdGFydEJsb2NrIn0sMjEzMTp7bjoiRW5kQmxvY2sifSwyMTMyOntuOiJTdGFydE9iamVjdCJ9LDIxMzM6e246IkVuZE9iamVjdCJ9LDIxMzQ6e246IkNhdExhYiJ9LDIxMzU6e246IllNdWx0In0sMjEzNjp7bjoiU1hWaWV3TGluayJ9LDIxMzc6e246IlBpdm90Q2hhcnRCaXRzIn0sMjEz''@;'; + put 'put ''ODp7bjoiRnJ0Rm9udExpc3QifSwyMTQ2OntuOiJTaGVldEV4dCJ9LDIxNDc6e246IkJvb2tFeHQiLHI6MTJ9LDIxNDg6e246IlNYQWRkbCJ9LDIxNDk6e246IkNyRXJyIn0sMjE1MDp7bjoiSEZQaWN0dXJlIn0sMjE1MTp7bjoiRmVhdEhkciIsZjpGbH0sMjE1Mjp7bjoiRmVhdCJ9LDIxNTQ6''@;'; + put 'put ''e246IkRhdGFMYWJFeHQifSwyMTU1OntuOiJEYXRhTGFiRXh0Q29udGVudHMifSwyMTU2OntuOiJDZWxsV2F0Y2gifSwyMTYxOntuOiJGZWF0SGRyMTEifSwyMTYyOntuOiJGZWF0dXJlMTEifSwyMTY0OntuOiJEcm9wRG93bk9iaklkcyJ9LDIxNjU6e246IkNvbnRpbnVlRnJ0MTEifSwyMTY2''@;'; + put 'put ''OntuOiJEQ29ubiJ9LDIxNjc6e246Ikxpc3QxMiJ9LDIxNjg6e246IkZlYXR1cmUxMiJ9LDIxNjk6e246IkNvbmRGbXQxMiJ9LDIxNzA6e246IkNGMTIifSwyMTcxOntuOiJDRkV4In0sMjE3Mjp7bjoiWEZDUkMiLGY6ZnVuY3Rpb24gdW0oSCl7SC5sKz0yO3ZhciByZT17Y3hmczowLGNyYzow''@;'; + put 'put ''fTtyZXR1cm4gcmUuY3hmcz1ILnJlYWRfc2hpZnQoMikscmUuY3JjPUgucmVhZF9zaGlmdCg0KSxyZX0scjoxMn0sMjE3Mzp7bjoiWEZFeHQiLGY6ZnVuY3Rpb24gdUIoSCxyZSl7SC5sKz0yO3ZhciB3ZT1ILnJlYWRfc2hpZnQoMik7SC5sKz0yO2Zvcih2YXIgeGU9SC5yZWFkX3NoaWZ0KDIp''@;'; + put 'put ''LEZlPVtdO3hlLS0gPjA7KUZlLnB1c2goc0IoSCkpO3JldHVybntpeGZlOndlLGV4dDpGZX19LHI6MTJ9LDIxNzQ6e246IkF1dG9GaWx0ZXIxMiJ9LDIxNzU6e246IkNvbnRpbnVlRnJ0MTIifSwyMTgwOntuOiJNRFRJbmZvIn0sMjE4MTp7bjoiTURYU3RyIn0sMjE4Mjp7bjoiTURYVHVwbGUi''@;'; + put 'put ''fSwyMTgzOntuOiJNRFhTZXQifSwyMTg0OntuOiJNRFhQcm9wIn0sMjE4NTp7bjoiTURYS1BJIn0sMjE4Njp7bjoiTURCIn0sMjE4Nzp7bjoiUExWIn0sMjE4ODp7bjoiQ29tcGF0MTIiLGY6dGEscjoxMn0sMjE4OTp7bjoiRFhGIn0sMjE5MDp7bjoiVGFibGVTdHlsZXMiLHI6MTJ9LDIxOTE6''@;'; + put 'put ''e246IlRhYmxlU3R5bGUifSwyMTkyOntuOiJUYWJsZVN0eWxlRWxlbWVudCJ9LDIxOTQ6e246IlN0eWxlRXh0In0sMjE5NTp7bjoiTmFtZVB1Ymxpc2gifSwyMTk2OntuOiJOYW1lQ210IixmOmZ1bmN0aW9uIGJSKEgscmUsWCl7aWYoIShYLmJpZmY8OCkpe3ZhciB3ZT1ILnJlYWRfc2hpZnQo''@;'; + put 'put ''MikseGU9SC5yZWFkX3NoaWZ0KDIpO3JldHVybltjdShILHdlLFgpLGN1KEgseGUsWCldfUgubCs9cmV9LHI6MTJ9LDIxOTc6e246IlNvcnREYXRhIn0sMjE5ODp7bjoiVGhlbWUiLGY6ZnVuY3Rpb24gYUIoSCxyZSxYKXt2YXIgd2U9SC5sK3JlO2lmKDEyNDIyNiE9PUgucmVhZF9zaGlmdCg0''@;'; + put 'put ''KSl7aWYoIVguY2VsbFN0eWxlcylyZXR1cm4gdm9pZChILmw9d2UpO3ZhciBaZSxGZT1ILnNsaWNlKEgubCk7SC5sPXdlO3RyeXtaZT1tbihGZSx7dHlwZToiYXJyYXkifSl9Y2F0Y2goWWUpe3JldHVybn12YXIgamU9VW4oWmUsInRoZW1lL3RoZW1lL3RoZW1lMS54bWwiLCEwKTtpZihqZSly''@;'; + put 'put ''ZXR1cm4gRjkoamUsWCl9fSxyOjEyfSwyMTk5OntuOiJHVUlEVHlwZUxpYiJ9LDIyMDA6e246IkZuR3JwMTIifSwyMjAxOntuOiJOYW1lRm5HcnAxMiJ9LDIyMDI6e246Ik1UUlNldHRpbmdzIixmOmZ1bmN0aW9uIGgyKEgpe3JldHVyblswIT09SC5yZWFkX3NoaWZ0KDQpLDAhPT1ILnJlYWRf''@;'; + put 'put ''c2hpZnQoNCksSC5yZWFkX3NoaWZ0KDQpXX0scjoxMn0sMjIwMzp7bjoiQ29tcHJlc3NQaWN0dXJlcyIsZjpGbH0sMjIwNDp7bjoiSGVhZGVyRm9vdGVyIn0sMjIwNTp7bjoiQ3J0TGF5b3V0MTIifSwyMjA2OntuOiJDcnRNbEZydCJ9LDIyMDc6e246IkNydE1sRnJ0Q29udGludWUifSwyMjEx''@;'; + put 'put ''OntuOiJGb3JjZUZ1bGxDYWxjdWxhdGlvbiIsZjpmdW5jdGlvbiBSbihIKXt2YXIgcmU9ZnVuY3Rpb24gc2IoSCl7dmFyIHJlPUgucmVhZF9zaGlmdCgyKSxYPUgucmVhZF9zaGlmdCgyKTtyZXR1cm4gSC5sKz04LHt0eXBlOnJlLGZsYWdzOlh9fShIKTtpZigyMjExIT1yZS50eXBlKXRocm93''@;'; + put 'put ''IG5ldyBFcnJvcigiSW52YWxpZCBGdXR1cmUgUmVjb3JkICIrcmUudHlwZSk7cmV0dXJuIDAhPT1ILnJlYWRfc2hpZnQoNCl9fSwyMjEyOntuOiJTaGFwZVByb3BzU3RyZWFtIn0sMjIxMzp7bjoiVGV4dFByb3BzU3RyZWFtIn0sMjIxNDp7bjoiUmljaFRleHRTdHJlYW0ifSwyMjE1OntuOiJD''@;'; + put 'put ''cnRMYXlvdXQxMkEifSw0MDk3OntuOiJVbml0cyJ9LDQwOTg6e246IkNoYXJ0In0sNDA5OTp7bjoiU2VyaWVzIn0sNDEwMjp7bjoiRGF0YUZvcm1hdCJ9LDQxMDM6e246IkxpbmVGb3JtYXQifSw0MTA1OntuOiJNYXJrZXJGb3JtYXQifSw0MTA2OntuOiJBcmVhRm9ybWF0In0sNDEwNzp7bjoi''@;'; + put 'put ''UGllRm9ybWF0In0sNDEwODp7bjoiQXR0YWNoZWRMYWJlbCJ9LDQxMDk6e246IlNlcmllc1RleHQifSw0MTE2OntuOiJDaGFydEZvcm1hdCJ9LDQxMTc6e246IkxlZ2VuZCJ9LDQxMTg6e246IlNlcmllc0xpc3QifSw0MTE5OntuOiJCYXIifSw0MTIwOntuOiJMaW5lIn0sNDEyMTp7bjoiUGll''@;'; + put 'put ''In0sNDEyMjp7bjoiQXJlYSJ9LDQxMjM6e246IlNjYXR0ZXIifSw0MTI0OntuOiJDcnRMaW5lIn0sNDEyNTp7bjoiQXhpcyJ9LDQxMjY6e246IlRpY2sifSw0MTI3OntuOiJWYWx1ZVJhbmdlIn0sNDEyODp7bjoiQ2F0U2VyUmFuZ2UifSw0MTI5OntuOiJBeGlzTGluZSJ9LDQxMzA6e246IkNy''@;'; + put 'put ''dExpbmsifSw0MTMyOntuOiJEZWZhdWx0VGV4dCJ9LDQxMzM6e246IlRleHQifSw0MTM0OntuOiJGb250WCIsZjpjMX0sNDEzNTp7bjoiT2JqZWN0TGluayJ9LDQxNDY6e246IkZyYW1lIn0sNDE0Nzp7bjoiQmVnaW4ifSw0MTQ4OntuOiJFbmQifSw0MTQ5OntuOiJQbG90QXJlYSJ9LDQxNTQ6''@;'; + put 'put ''e246IkNoYXJ0M2QifSw0MTU2OntuOiJQaWNGIn0sNDE1Nzp7bjoiRHJvcEJhciJ9LDQxNTg6e246IlJhZGFyIn0sNDE1OTp7bjoiU3VyZiJ9LDQxNjA6e246IlJhZGFyQXJlYSJ9LDQxNjE6e246IkF4aXNQYXJlbnQifSw0MTYzOntuOiJMZWdlbmRFeGNlcHRpb24ifSw0MTY0OntuOiJTaHRQ''@;'; + put 'put ''cm9wcyIsZjpmdW5jdGlvbiBVeihILHJlLFgpe3ZhciB3ZT17YXJlYTohMX07aWYoNSE9WC5iaWZmKXJldHVybiBILmwrPXJlLHdlO3ZhciB4ZT1ILnJlYWRfc2hpZnQoMSk7cmV0dXJuIEgubCs9MywxNiZ4ZSYmKHdlLmFyZWE9ITApLHdlfX0sNDE2NTp7bjoiU2VyVG9DcnQifSw0MTY2Ontu''@;'; + put 'put ''OiJBeGVzVXNlZCJ9LDQxNjg6e246IlNCYXNlUmVmIn0sNDE3MDp7bjoiU2VyUGFyZW50In0sNDE3MTp7bjoiU2VyQXV4VHJlbmQifSw0MTc0OntuOiJJRm10UmVjb3JkIn0sNDE3NTp7bjoiUG9zIn0sNDE3Njp7bjoiQWxSdW5zIn0sNDE3Nzp7bjoiQlJBSSJ9LDQxODc6e246IlNlckF1eEVy''@;'; + put 'put ''ckJhciJ9LDQxODg6e246IkNscnRDbGllbnQiLGY6ZnVuY3Rpb24ga1IoSCl7Zm9yKHZhciByZT1ILnJlYWRfc2hpZnQoMiksWD1bXTtyZS0tID4wOylYLnB1c2goUjgoSCkpO3JldHVybiBYfX0sNDE4OTp7bjoiU2VyRm10In0sNDE5MTp7bjoiQ2hhcnQzREJhclNoYXBlIn0sNDE5Mjp7bjoi''@;'; + put 'put ''RmJpIn0sNDE5Mzp7bjoiQm9wUG9wIn0sNDE5NDp7bjoiQXhjRXh0In0sNDE5NTp7bjoiRGF0In0sNDE5Njp7bjoiUGxvdEdyb3d0aCJ9LDQxOTc6e246IlNJSW5kZXgifSw0MTk4OntuOiJHZWxGcmFtZSJ9LDQxOTk6e246IkJvcFBvcEN1c3RvbSJ9LDQyMDA6e246IkZiaTIifSwwOntuOiJE''@;'; + put 'put ''aW1lbnNpb25zIixmOmltfSwxOntuOiJCSUZGMkJMQU5LIn0sMjp7bjoiQklGRjJJTlQiLGY6ZnVuY3Rpb24gbWIoSCl7dmFyIHJlPUFjKEgpOysrSC5sO3ZhciBYPUgucmVhZF9zaGlmdCgyKTtyZXR1cm4gcmUudD0ibiIscmUudmFsPVgscmV9fSwzOntuOiJCSUZGMk5VTSIsZjpmdW5jdGlv''@;'; + put 'put ''biBYTShIKXt2YXIgcmU9QWMoSCk7KytILmw7dmFyIFg9STIoSCk7cmV0dXJuIHJlLnQ9Im4iLHJlLnZhbD1YLHJlfX0sNDp7bjoiQklGRjJTVFIiLGY6ZnVuY3Rpb24gUXooSCxyZSxYKXtYLmJpZmZndWVzcyYmNT09WC5iaWZmJiYoWC5iaWZmPTIpO3ZhciB3ZT1BYyhIKTsrK0gubDt2YXIg''@;'; + put 'put ''eGU9ZGYoSCwwLFgpO3JldHVybiB3ZS50PSJzdHIiLHdlLnZhbD14ZSx3ZX19LDU6e246IkJvb2xFcnIiLGY6YW19LDc6e246IlN0cmluZyIsZjpmdW5jdGlvbiBLTShIKXt2YXIgcmU9SC5yZWFkX3NoaWZ0KDEpO3JldHVybiAwPT09cmU/KEgubCsrLCIiKTpILnJlYWRfc2hpZnQocmUsInNi''@;'; + put 'put ''Y3MtY29udCIpfX0sODp7bjoiQklGRjJST1cifSw5OntuOiJCT0YiLGY6RHV9LDExOntuOiJJbmRleCJ9LDIyOntuOiJFeHRlcm5Db3VudCIsZjpjMX0sMzA6e246IkJJRkYyRk9STUFUIixmOlljfSwzMTp7bjoiQklGRjJGTVRDTlQifSwzMjp7bjoiQklGRjJDT0xJTkZPIn0sMzM6e246IkFy''@;'; + put 'put ''cmF5IixmOmdifSwzNjp7bjoiQ09MV0lEVEgifSwzNzp7bjoiRGVmYXVsdFJvd0hlaWdodCIsZjpXY30sNTA6e246IkJJRkYyRk9OVFhUUkEiLGY6ZnVuY3Rpb24gRzgoSCxyZSl7SC5sKz02LEgubCs9MixILmwrPTEsSC5sKz0zLEgubCs9MSxILmwrPXJlLTEzfX0sNjI6e246IkJJRkYyV0lO''@;'; + put 'put ''RE9XMiJ9LDUyOntuOiJEREVPYmpOYW1lIn0sNjc6e246IkJJRkYyWEYifSw2ODp7bjoiQklGRjJYRklOREVYIixmOmMxfSw2OTp7bjoiQklGRjJGT05UQ0xSIn0sODY6e246IkJJRkY0Rk1UQ05UIn0sMTI2OntuOiJSSyJ9LDEyNzp7bjoiSW1EYXRhIixmOmZ1bmN0aW9uIEpNKEgpe3ZhciBy''@;'; + put 'put ''ZT1ILnJlYWRfc2hpZnQoMiksWD1ILnJlYWRfc2hpZnQoMiksd2U9SC5yZWFkX3NoaWZ0KDQpLHhlPXtmbXQ6cmUsZW52OlgsbGVuOndlLGRhdGE6SC5zbGljZShILmwsSC5sK3dlKX07cmV0dXJuIEgubCs9d2UseGV9fSwxMzU6e246IkFkZGluIn0sMTM2OntuOiJFZGcifSwxMzc6e246IlB1''@;'; + put 'put ''YiJ9LDE0NTp7bjoiU3ViIn0sMTQ4OntuOiJMSFJlY29yZCJ9LDE0OTp7bjoiTEhOR3JhcGgifSwxNTA6e246IlNvdW5kIn0sMTY5OntuOiJDb29yZExpc3QifSwxNzE6e246IkdDVyJ9LDE4ODp7bjoiU2hyRm1sYSJ9LDE5MTp7bjoiVG9vbGJhckhkciJ9LDE5Mjp7bjoiVG9vbGJhckVuZCJ9''@;'; + put 'put ''LDE5NDp7bjoiQWRkTWVudSJ9LDE5NTp7bjoiRGVsTWVudSJ9LDIxNDp7bjoiUlN0cmluZyIsZjpmdW5jdGlvbiBjbShILHJlLFgpe3ZhciB3ZT1ILmwrcmUseGU9QWMoSCksRmU9SC5yZWFkX3NoaWZ0KDIpLFplPWN1KEgsRmUsWCk7cmV0dXJuIEgubD13ZSx4ZS50PSJzdHIiLHhlLnZhbD1a''@;'; + put 'put ''ZSx4ZX19LDIyMzp7bjoiVUREZXNjIn0sMjM0OntuOiJUYWJJZENvbmYifSwzNTQ6e246IlhMNU1vZGlmeSJ9LDQyMTp7bjoiRmlsZVNoYXJpbmcyIn0sNTE4OntuOiJGb3JtdWxhIixmOnU1fSw1MjE6e246IkJPRiIsZjpEdX0sNTM2OntuOiJMYmwiLGY6cGJ9LDU0Nzp7bjoiRXh0ZXJuTmFt''@;'; + put 'put ''ZSIsZjpaTX0sNTYxOntuOiJGb250In0sNTc5OntuOiJCSUZGM1hGIn0sMTAzMDp7bjoiRm9ybXVsYSIsZjp1NX0sMTAzMzp7bjoiQk9GIixmOkR1fSwxMDkxOntuOiJCSUZGNFhGIn0sMjE1Nzp7bjoiRmVhdEluZm8ifSwyMTYzOntuOiJGZWF0SW5mbzExIn0sMjE3Nzp7bjoiU1hBZGRsMTIi''@;'; + put 'put ''fSwyMjQwOntuOiJBdXRvV2ViUHViIn0sMjI0MTp7bjoiTGlzdE9iaiJ9LDIyNDI6e246Ikxpc3RGaWVsZCJ9LDIyNDM6e246Ikxpc3REViJ9LDIyNDQ6e246Ikxpc3RDb25kRm10In0sMjI0NTp7bjoiTGlzdENGIn0sMjI0Njp7bjoiRk1RcnkifSwyMjQ3OntuOiJGTVNRcnkifSwyMjQ4Ontu''@;'; + put 'put ''OiJQTFYifSwyMjQ5OntuOiJMbkV4dCJ9LDIyNTA6e246Ik1rckV4dCJ9LDIyNTE6e246IkNydENvb3B0In0sMjI2Mjp7bjoiRlJUQXJjaElkJCIscjoxMn0sMjkyODI6e319LEYzPV90KE5sLCJuIik7ZnVuY3Rpb24gczAoSCxyZSxYLHdlKXt2YXIgeGU9K3JlfHwrRjNbcmVdO2lmKCFpc05h''@;'; + put 'put ''Tih4ZSkpe3ZhciBGZT13ZXx8KFh8fFtdKS5sZW5ndGh8fDAsWmU9SC5uZXh0KDQpO1plLndyaXRlX3NoaWZ0KDIseGUpLFplLndyaXRlX3NoaWZ0KDIsRmUpLEZlPjAmJlQyKFgpJiZILnB1c2goWCl9fWZ1bmN0aW9uIGlzKEgscmUsWCl7cmV0dXJuIEh8fChIPVJpKDcpKSxILndyaXRlX3No''@;'; + put 'put ''aWZ0KDIscmUpLEgud3JpdGVfc2hpZnQoMixYKSxILndyaXRlX3NoaWZ0KDIsMCksSC53cml0ZV9zaGlmdCgxLDApLEh9ZnVuY3Rpb24gRUEoSCxyZSxYLHdlKXtpZihudWxsIT1yZS52KXN3aXRjaChyZS50KXtjYXNlImQiOmNhc2UibiI6dmFyIHhlPSJkIj09cmUudD9mdChkbihyZS52KSk6''@;'; + put 'put ''cmUudjtyZXR1cm4gdm9pZCh4ZT09KDB8eGUpJiZ4ZT49MCYmeGU8NjU1MzY/czAoSCwyLGZ1bmN0aW9uIElSKEgscmUsWCl7dmFyIHdlPVJpKDkpO3JldHVybiBpcyh3ZSxILHJlKSx3ZS53cml0ZV9zaGlmdCgyLFgpLHdlfShYLHdlLHhlKSk6czAoSCwzLGZ1bmN0aW9uIEp6KEgscmUsWCl7''@;'; + put 'put ''dmFyIHdlPVJpKDE1KTtyZXR1cm4gaXMod2UsSCxyZSksd2Uud3JpdGVfc2hpZnQoOCxYLCJmIiksd2V9KFgsd2UseGUpKSk7Y2FzZSJiIjpjYXNlImUiOnJldHVybiB2b2lkIHMwKEgsNSxmdW5jdGlvbiBDYyhILHJlLFgsd2Upe3ZhciB4ZT1SaSg5KTtyZXR1cm4gaXMoeGUsSCxyZSksWjEo''@;'; + put 'put ''WCx3ZXx8ImIiLHhlKSx4ZX0oWCx3ZSxyZS52LHJlLnQpKTtjYXNlInMiOmNhc2Uic3RyIjpyZXR1cm4gdm9pZCBzMChILDQsZnVuY3Rpb24gcHUoSCxyZSxYKXt2YXIgd2U9UmkoOCsyKlgubGVuZ3RoKTtyZXR1cm4gaXMod2UsSCxyZSksd2Uud3JpdGVfc2hpZnQoMSxYLmxlbmd0aCksd2Uu''@;'; + put 'put ''d3JpdGVfc2hpZnQoWC5sZW5ndGgsWCwic2JjcyIpLHdlLmw8d2UubGVuZ3RoP3dlLnNsaWNlKDAsd2UubCk6d2V9KFgsd2UsKHJlLnZ8fCIiKS5zbGljZSgwLDI1NSkpKX1zMChILDEsaXMobnVsbCxYLHdlKSl9ZnVuY3Rpb24gY1QoSCxyZSxYLHdlLHhlKXt2YXIgRmU9MTYrWTEoeGUuY2Vs''@;'; + put 'put ''bFhmcyx4ZS5jZWxsU3R5bGVYZnMscmUseGUpO2lmKG51bGwhPXJlLnZ8fHJlLmJmKWlmKHJlLmJmKXMwKEgsIkZvcm11bGEiLGZ1bmN0aW9uIGRHKEgscmUsWCx3ZSx4ZSl7dmFyIEZlPUdmKHJlLFgseGUpLFplPWZ1bmN0aW9uIFZCKEgpe2lmKG51bGw9PUgpe3ZhciByZT1SaSg4KTtyZXR1''@;'; + put 'put ''cm4gcmUud3JpdGVfc2hpZnQoMSwzKSxyZS53cml0ZV9zaGlmdCgxLDApLHJlLndyaXRlX3NoaWZ0KDIsMCkscmUud3JpdGVfc2hpZnQoMiwwKSxyZS53cml0ZV9zaGlmdCgyLDY1NTM1KSxyZX1yZXR1cm4gdWYoIm51bWJlciI9PXR5cGVvZiBIP0g6MCl9KEgudiksamU9UmkoNik7amUud3Jp''@;'; + put 'put ''dGVfc2hpZnQoMiwzMyksamUud3JpdGVfc2hpZnQoNCwwKTtmb3IodmFyIE10PVJpKEguYmYubGVuZ3RoKSx4dD0wO3h0PEguYmYubGVuZ3RoOysreHQpTXRbeHRdPUguYmZbeHRdO3JldHVybiBWKFtGZSxaZSxqZSxNdF0pfShyZSxYLHdlLDAsRmUpKTtlbHNlIHN3aXRjaChyZS50KXtjYXNl''@;'; + put 'put ''ImQiOmNhc2UibiI6czAoSCwiTnVtYmVyIixmdW5jdGlvbiBOOChILHJlLFgsd2Upe3ZhciB4ZT1SaSgxNCk7cmV0dXJuIEdmKEgscmUsd2UseGUpLHVmKFgseGUpLHhlfShYLHdlLCJkIj09cmUudD9mdChkbihyZS52KSk6cmUudixGZSkpO2JyZWFrO2Nhc2UiYiI6Y2FzZSJlIjpzMChILDUx''@;'; + put 'put ''NyxmdW5jdGlvbiB5UihILHJlLFgsd2UseGUsRmUpe3ZhciBaZT1SaSg4KTtyZXR1cm4gR2YoSCxyZSx3ZSxaZSksWjEoWCxGZSxaZSksWmV9KFgsd2UscmUudixGZSwwLHJlLnQpKTticmVhaztjYXNlInMiOmNhc2Uic3RyIjppZih4ZS5ib29rU1NUKXt2YXIgamU9QzYoeGUuU3RyaW5ncyxy''@;'; + put 'put ''ZS52LHJlLlI/cmUucj11NihyZS5SKTpudWxsLHhlLnJldlN0cmluZ3MpO2lmKHJlLlIpZm9yKHZhciBZZT0wO1llPHJlLlIubGVuZ3RoOysrWWUpcmUuUltZZV0ucyYmWTEoeGUuY2VsbFhmcyx4ZS5jZWxsU3R5bGVYZnMse3Q6Im4iLHY6MCxzOnJlLlJbWWVdLnN9LHhlKTtzMChILCJMYWJl''@;'; + put 'put ''bFNzdCIsZnVuY3Rpb24gZ1IoSCxyZSxYLHdlKXt2YXIgeGU9UmkoMTApO3JldHVybiBHZihILHJlLHdlLHhlKSx4ZS53cml0ZV9zaGlmdCg0LFgpLHhlfShYLHdlLGplLEZlKSl9ZWxzZSBzMChILCJMYWJlbCIsZnVuY3Rpb24gWXooSCxyZSxYLHdlLHhlKXt2YXIgRmU9IXhlfHw4PT14ZS5i''@;'; + put 'put ''aWZmLFplPVJpKCtGZSs4KygxK0ZlKSpYLmxlbmd0aCk7cmV0dXJuIEdmKEgscmUsd2UsWmUpLFplLndyaXRlX3NoaWZ0KDIsWC5sZW5ndGgpLEZlJiZaZS53cml0ZV9zaGlmdCgxLDEpLFplLndyaXRlX3NoaWZ0KCgxK0ZlKSpYLmxlbmd0aCxYLEZlPyJ1dGYxNmxlIjoic2JjcyIpLFplfShY''@;'; + put 'put ''LHdlLChyZS52fHwiIikuc2xpY2UoMCwyNTUpLEZlLHhlKSk7YnJlYWs7ZGVmYXVsdDpzMChILCJCbGFuayIsR2YoWCx3ZSxGZSkpfWVsc2UgczAoSCwiQmxhbmsiLEdmKFgsd2UsRmUpKX1mdW5jdGlvbiAkcihILHJlLFgpe3ZhciB4dCx3ZT1KMigpLHhlPVguU2hlZXROYW1lc1tIXSxGZT1Y''@;'; + put 'put ''LlNoZWV0c1t4ZV18fHt9LFplPShYfHx7fSkuV29ya2Jvb2t8fHt9LGplPShaZS5TaGVldHN8fFtdKVtIXXx8e30sWWU9QXJyYXkuaXNBcnJheShGZSksTXQ9OD09cmUuYmlmZixSdD0iIixVdD1bXSxubj1GbyhGZVsiIXJlZiJdfHwiQTEiKSxDbj1NdD82NTUzNjoxNjM4NDtpZihubi5lLmM+''@;'; + put 'put ''MjU1fHxubi5lLnI+PUNuKXtpZihyZS5XVEYpdGhyb3cgbmV3IEVycm9yKCJSYW5nZSAiKyhGZVsiIXJlZiJdfHwiQTEiKSsiIGV4Y2VlZHMgZm9ybWF0IGxpbWl0IEExOklWMTYzODQiKTtubi5lLmM9TWF0aC5taW4obm4uZS5jLDI1NSksbm4uZS5yPU1hdGgubWluKG5uLmUuYyxDbi0xKX1z''@;'; + put 'put ''MCh3ZSwyMDU3LGczKDAsMTYscmUpKSxzMCh3ZSwiQ2FsY01vZGUiLGhmKDEpKSxzMCh3ZSwiQ2FsY0NvdW50IixoZigxMDApKSxzMCh3ZSwiQ2FsY1JlZk1vZGUiLGoxKCEwKSksczAod2UsIkNhbGNJdGVyIixqMSghMSkpLHMwKHdlLCJDYWxjRGVsdGEiLHVmKC4wMDEpKSxzMCh3ZSwiQ2Fs''@;'; + put 'put ''Y1NhdmVSZWNhbGMiLGoxKCEwKSksczAod2UsIlByaW50Um93Q29sIixqMSghMSkpLHMwKHdlLCJQcmludEdyaWQiLGoxKCExKSksczAod2UsIkdyaWRTZXQiLGhmKDEpKSxzMCh3ZSwiR3V0cyIsZnVuY3Rpb24geTkoSCl7dmFyIHJlPVJpKDgpO3JldHVybiByZS53cml0ZV9zaGlmdCg0LDAp''@;'; + put 'put ''LHJlLndyaXRlX3NoaWZ0KDIsSFswXT9IWzBdKzE6MCkscmUud3JpdGVfc2hpZnQoMixIWzFdP0hbMV0rMTowKSxyZX0oWzAsMF0pKSxzMCh3ZSwiSENlbnRlciIsajEoITEpKSxzMCh3ZSwiVkNlbnRlciIsajEoITEpKTt2YXIgRHQ9RmVbIiFwcmludCJdJiZGZVsiIXByaW50Il0ubWFyZ2lu''@;'; + put 'put ''c3x8RmVbIiFtYXJnaW5zIl07RHQmJihudWxsIT1EdC5sZWZ0JiZzMCh3ZSwiTGVmdE1hcmdpbiIsdWYoRHQubGVmdCkpLG51bGwhPUR0LnJpZ2h0JiZzMCh3ZSwiUmlnaHRNYXJnaW4iLHVmKER0LnJpZ2h0KSksbnVsbCE9RHQudG9wJiZzMCh3ZSwiVG9wTWFyZ2luIix1ZihEdC50b3ApKSxu''@;'; + put 'put ''dWxsIT1EdC5ib3R0b20mJnMwKHdlLCJCb3R0b21NYXJnaW4iLHVmKER0LmJvdHRvbSkpLChudWxsIT1EdC5oZWFkZXJ8fG51bGwhPUR0LmZvb3RlcikmJnMwKHdlLCJTZXR1cCIsZnVuY3Rpb24gRVIoSCxyZSl7dmFyIFg9UmkoMzQpLHdlPSExLHhlPTcwO3JldHVybiJsYW5kc2NhcGUiPT0o''@;'; + put 'put ''cmUucHJvcHN8fHt9KS5vcmllbnRhdGlvbiYmKHdlPSEwLHhlJj0tNjcpLHdlJiYoeGUmPS01KSxYLndyaXRlX3NoaWZ0KDIsMSksWC53cml0ZV9zaGlmdCgyLDEwMCksWC53cml0ZV9zaGlmdCgyLDApLFgud3JpdGVfc2hpZnQoMiwwKSxYLndyaXRlX3NoaWZ0KDIsMCksWC53cml0ZV9zaGlm''@;'; + put 'put ''dCgxLHhlKSxYLndyaXRlX3NoaWZ0KDEsMCksWC53cml0ZV9zaGlmdCgyLDYwMCksWC53cml0ZV9zaGlmdCgyLDYwMCksdWYobnVsbD09SC5oZWFkZXI/LjU6SC5oZWFkZXIsWCksdWYobnVsbD09SC5mb290ZXI/LjU6SC5mb290ZXIsWCksWC53cml0ZV9zaGlmdCgyLDEpLFh9KER0LEZlWyIh''@;'; + put 'put ''cHJpbnQiXXx8e30pKSksTXQmJmZ1bmN0aW9uIHVUKEgscmUsWCl7aWYocmUpe3ZhciB3ZT0wO3JlLmZvckVhY2goZnVuY3Rpb24oeGUsRmUpeysrd2U8PTI1NiYmeGUmJih4ZS5hdXRvJiZTNihYLHhlLEZlKSxzMChILCJDb2xJbmZvIixmdW5jdGlvbiBNUihILHJlKXt2YXIgWD1SaSgxMik7''@;'; + put 'put ''WC53cml0ZV9zaGlmdCgyLHJlKSxYLndyaXRlX3NoaWZ0KDIscmUpLFgud3JpdGVfc2hpZnQoMiwyNTYqSC53aWR0aCksWC53cml0ZV9zaGlmdCgyLDApO3ZhciB3ZT0wO3JldHVybiBILmhpZGRlbiYmKHdlfD0xKSxYLndyaXRlX3NoaWZ0KDEsd2UpLFgud3JpdGVfc2hpZnQoMSx3ZT1ILmxl''@;'; + put 'put ''dmVsfHwwKSxYLndyaXRlX3NoaWZ0KDIsMCksWH0oazYoRmUseGUpLEZlKSkpfSl9fSh3ZSxGZVsiIWNvbHMiXSxGZSksczAod2UsIkRpbWVuc2lvbnMiLGZ1bmN0aW9uIEY4KEgscmUpe3ZhciBYPTghPXJlLmJpZmYmJnJlLmJpZmY/Mjo0LHdlPVJpKDIqWCs2KTtyZXR1cm4gd2Uud3JpdGVf''@;'; + put 'put ''c2hpZnQoWCxILnMuciksd2Uud3JpdGVfc2hpZnQoWCxILmUucisxKSx3ZS53cml0ZV9zaGlmdCgyLEgucy5jKSx3ZS53cml0ZV9zaGlmdCgyLEguZS5jKzEpLHdlLndyaXRlX3NoaWZ0KDIsMCksd2V9KG5uLHJlKSksTXQmJihGZVsiIWxpbmtzIl09W10pLEZlWyIhcm93cyJdJiZNdCYmRmVb''@;'; + put 'put ''IiFyb3dzIl0uZm9yRWFjaChmdW5jdGlvbihZbixNcil7Zm9yKHZhciBhaT1YYShNcikseXI9MjU2LGFyPTAsR3I9WW4ucz8xNitZMShyZS5jZWxsWGZzLHJlLmNlbGxTdHlsZVhmcyx7dDoibiIsdjowLHM6WW4uc30scmUpOjAsenI9bm4ucy5jO3pyPD1ubi5lLmM7Kyt6cikhKFllPyhGZVtN''@;'; + put 'put ''cl18fFtdKVt6cl06RmVbVXRbenJdK2FpXSl8fCh6cjx5ciYmKHlyPXpyKSx6cj5hciYmKGFyPXpyKSk7YXI8eXImJih5cj1hcj0wKSxzMCh3ZSwiUm93IixmdW5jdGlvbiBobihILHJlLFgpe3ZhciB3ZT1SaSgxNik7d2Uud3JpdGVfc2hpZnQoMixyZSksd2Uud3JpdGVfc2hpZnQoMixYWzBd''@;'; + put 'put ''KSx3ZS53cml0ZV9zaGlmdCgyLFhbMV0rMSksd2Uud3JpdGVfc2hpZnQoMiwyMCpILmhwdHx8MjAqVGgoSC5ocHgpfHwzMzApLHdlLndyaXRlX3NoaWZ0KDQsMCk7dmFyIHhlPTA7cmV0dXJuIHhlfD0wfEgubGV2ZWwsSC5oaWRkZW4mJih4ZXw9MzIpLHhlfD02NCxYWzJdJiYoeGV8PTEyOCks''@;'; + put 'put ''d2Uud3JpdGVfc2hpZnQoMSx4ZSksd2Uud3JpdGVfc2hpZnQoMSwxKSx3ZS53cml0ZV9zaGlmdCgyLFhbMl18fDApLHdlfShZbixNcixbeXIsYXIsR3JdKSl9KTtmb3IodmFyIHp0PW5uLnMucjt6dDw9bm4uZS5yOysrenQpe1J0PVhhKHp0KTtmb3IodmFyIFBuPW5uLnMuYztQbjw9bm4uZS5j''@;'; + put 'put ''OysrUG4pe3p0PT09bm4ucy5yJiYoVXRbUG5dPV9hKFBuKSkseHQ9VXRbUG5dK1J0O3ZhciBUbj1ZZT8oRmVbenRdfHxbXSlbUG5dOkZlW3h0XTshVG58fChjVCh3ZSxUbix6dCxQbixyZSksTXQmJlRuLmwmJkZlWyIhbGlua3MiXS5wdXNoKFt4dCxUbi5sXSkpfX12YXIgT249amUuQ29kZU5h''@;'; + put 'put ''bWV8fGplLm5hbWV8fHhlO3JldHVybihNdHx8NT09cmUuYmlmZiYmRmVbIiFmcmVlemUiXSkmJnMwKHdlLCJXaW5kb3cyIixmdW5jdGlvbiBnZihILHJlLFgsd2Upe3ZhciB4ZT13ZSYmd2UuYmlmZnx8OCxGZT1SaSg4PT14ZT8xODoxMCksWmU9MTcxODtyZXR1cm4gWD4wJiYoWmUmPS01MTMp''@;'; + put 'put ''LG5yKHJlWyIhZ3JpZGxpbmVzIl0pJiYoWmUmPS0zKSxyZVsiIWZyZWV6ZSJdJiYoWmV8PTgpLEgmJkguUlRMJiYoWmV8PTY0KSw1PT14ZSYmKFplPTQ0NiksRmUud3JpdGVfc2hpZnQoMixaZSksOD09eGU/KEZlLndyaXRlX3NoaWZ0KDQsMCksRmUud3JpdGVfc2hpZnQoNCw2NCksRmUud3Jp''@;'; + put 'put ''dGVfc2hpZnQoNCwwKSxGZS53cml0ZV9zaGlmdCg0LDApKTooRmUud3JpdGVfc2hpZnQoNCwwKSxGZS53cml0ZV9zaGlmdCg0LDApKSxGZX0oKFplLlZpZXdzfHxbXSlbMF0sRmUsSCkpLChNdHx8NT09cmUuYmlmZikmJkZlWyIhZnJlZXplIl0mJnMwKHdlLCJQYW5lIixmdW5jdGlvbiBmYihI''@;'; + put 'put ''KXsic3RyaW5nIj09dHlwZW9mIEgmJihIPXVsKEgpKTt2YXIgcmU9UmkoMTApO3JldHVybiByZS53cml0ZV9zaGlmdCgyLEguYykscmUud3JpdGVfc2hpZnQoMixILnIpLHJlLndyaXRlX3NoaWZ0KDIsSC5yKSxyZS53cml0ZV9zaGlmdCgyLEguYykscmUud3JpdGVfc2hpZnQoMSwzKSxyZS53''@;'; + put 'put ''cml0ZV9zaGlmdCgxLDApLHJlfShGZVsiIWZyZWV6ZSJdKSksTXQmJkZlWyIhc2VsIl0mJnMwKHdlLCJTZWxlY3Rpb24iLGZ1bmN0aW9uIFRSKEgscmUpe3ZhciBYPVJpKDE1KSx3ZT1ILmNlbGw7aWYoIXdlKXtpZighSC5yYW5nZSl0aHJvdyBuZXcgRXJyb3IoIk11c3Qgc3BlY2lmeSBhIHNl''@;'; + put 'put ''bGVjdGlvbiBjZWxsIG9yIHJhbmdlIik7d2U9WTAodnMoSC5yYW5nZS5yZXBsYWNlKC9ccy4qJC8sIiIpKS5zKX12YXIgeGU9InN0cmluZyI9PXR5cGVvZiB3ZT91bCh3ZSk6d2U7aWYocmUpe3ZhciBGZT0ic3RyaW5nIj09dHlwZW9mIHJlP3VsKHJlKTpyZTtYLndyaXRlX3NoaWZ0KDEseGUu''@;'; + put 'put ''cj49RmUuciYmeGUuYz49RmUuYz8wOnhlLnI+PUZlLnImJnhlLmM8RmUuYz8yOnhlLnI8RmUuciYmeGUuYz49RmUuYz8xOjMpfWVsc2UgWC53cml0ZV9zaGlmdCgxLDMpO3JldHVybiBYLndyaXRlX3NoaWZ0KDIseGUuciksWC53cml0ZV9zaGlmdCgyLHhlLmMpLFgud3JpdGVfc2hpZnQoMiww''@;'; + put 'put ''KSxYLndyaXRlX3NoaWZ0KDIsMSksZnVuY3Rpb24gcjYoSCxyZSl7cmV8fChyZT1SaSg2KSkscmUud3JpdGVfc2hpZnQoMixILnM/SC5zLnI6SC5yKSxyZS53cml0ZV9zaGlmdCgyLEguZT9ILmUucjpILnIpLHJlLndyaXRlX3NoaWZ0KDEsSC5zP0gucy5jOkguYykscmUud3JpdGVfc2hpZnQo''@;'; + put 'put ''MSxILmU/SC5lLmM6SC5jKX0oe3M6eGUsZTp4ZX0sWCksWH0oRmVbIiFzZWwiXSxGZVsiIWZyZWV6ZSJdKSksTXQmJihGZVsiIW1lcmdlcyJdfHxbXSkubGVuZ3RoJiZzMCh3ZSwiTWVyZ2VDZWxscyIsZnVuY3Rpb24gQ1IoSCl7dmFyIHJlPVJpKDIrOCpILmxlbmd0aCk7cmUud3JpdGVfc2hp''@;'; + put 'put ''ZnQoMixILmxlbmd0aCk7Zm9yKHZhciBYPTA7WDxILmxlbmd0aDsrK1gpSnUoSFtYXSxyZSk7cmV0dXJuIHJlfShGZVsiIW1lcmdlcyJdKSksTXQmJmZ1bmN0aW9uIHNUKEgscmUpe2Zvcih2YXIgWD0wO1g8cmVbIiFsaW5rcyJdLmxlbmd0aDsrK1gpe3ZhciB3ZT1yZVsiIWxpbmtzIl1bWF07''@;'; + put 'put ''czAoSCwiSExpbmsiLFdNKHdlKSksd2VbMV0uVG9vbHRpcCYmczAoSCwiSExpbmtUb29sdGlwIixzbSh3ZSkpfWRlbGV0ZSByZVsiIWxpbmtzIl19KHdlLEZlKSxzMCh3ZSwiQ29kZU5hbWUiLFByKE9uKSksTXQmJmZ1bmN0aW9uIEptKEgscmUpe3ZhciBYPVJpKDE5KTtYLndyaXRlX3NoaWZ0''@;'; + put 'put ''KDQsMjE1MSksWC53cml0ZV9zaGlmdCg0LDApLFgud3JpdGVfc2hpZnQoNCwwKSxYLndyaXRlX3NoaWZ0KDIsMyksWC53cml0ZV9zaGlmdCgxLDEpLFgud3JpdGVfc2hpZnQoNCwwKSxzMChILCJGZWF0SGRyIixYKSwoWD1SaSgzOSkpLndyaXRlX3NoaWZ0KDQsMjE1MiksWC53cml0ZV9zaGlm''@;'; + put 'put ''dCg0LDApLFgud3JpdGVfc2hpZnQoNCwwKSxYLndyaXRlX3NoaWZ0KDIsMyksWC53cml0ZV9zaGlmdCgxLDApLFgud3JpdGVfc2hpZnQoNCwwKSxYLndyaXRlX3NoaWZ0KDIsMSksWC53cml0ZV9zaGlmdCg0LDQpLFgud3JpdGVfc2hpZnQoMiwwKSxKdShGbyhyZVsiIXJlZiJdfHwiQTEiKSxY''@;'; + put 'put ''KSxYLndyaXRlX3NoaWZ0KDQsNCksczAoSCwiRmVhdCIsWCl9KHdlLEZlKSxzMCh3ZSwiRU9GIiksd2UuZW5kKCl9ZnVuY3Rpb24gbkMoSCxyZSxYKXt2YXIgd2U9SjIoKSx4ZT0oSHx8e30pLldvcmtib29rfHx7fSxGZT14ZS5TaGVldHN8fFtdLFplPXhlLldCUHJvcHN8fHt9LGplPTg9PVgu''@;'; + put 'put ''YmlmZixZZT01PT1YLmJpZmY7czAod2UsMjA1NyxnMygwLDUsWCkpLCJ4bGEiPT1YLmJvb2tUeXBlJiZzMCh3ZSwiQWRkaW4iKSxzMCh3ZSwiSW50ZXJmYWNlSGRyIixqZT9oZigxMjAwKTpudWxsKSxzMCh3ZSwiTW1zIixmdW5jdGlvbiBEOChILHJlKXtyZXx8KHJlPVJpKEgpKTtmb3IodmFy''@;'; + put 'put ''IFg9MDtYPEg7KytYKXJlLndyaXRlX3NoaWZ0KDEsMCk7cmV0dXJuIHJlfSgyKSksWWUmJnMwKHdlLCJUb29sYmFySGRyIiksWWUmJnMwKHdlLCJUb29sYmFyRW5kIiksczAod2UsIkludGVyZmFjZUVuZCIpLHMwKHdlLCJXcml0ZUFjY2VzcyIsZnVuY3Rpb24gYTYoSCxyZSl7dmFyIFg9IXJl''@;'; + put 'put ''fHw4PT1yZS5iaWZmLHdlPVJpKFg/MTEyOjU0KTtmb3Iod2Uud3JpdGVfc2hpZnQoOD09cmUuYmlmZj8yOjEsNyksWCYmd2Uud3JpdGVfc2hpZnQoMSwwKSx3ZS53cml0ZV9zaGlmdCg0LDg1OTAwNzA1OSksd2Uud3JpdGVfc2hpZnQoNCw1NDU4NTQ4fChYPzA6NTM2ODcwOTEyKSk7d2UubDx3''@;'; + put 'put ''ZS5sZW5ndGg7KXdlLndyaXRlX3NoaWZ0KDEsWD8wOjMyKTtyZXR1cm4gd2V9KDAsWCkpLHMwKHdlLCJDb2RlUGFnZSIsaGYoamU/MTIwMDoxMjUyKSksamUmJnMwKHdlLCJEU0YiLGhmKDApKSxqZSYmczAod2UsIkV4Y2VsOUZpbGUiKSxzMCh3ZSwiUlJUYWJJZCIsZnVuY3Rpb24gQzkoSCl7''@;'; + put 'put ''Zm9yKHZhciByZT1SaSgyKkgpLFg9MDtYPEg7KytYKXJlLndyaXRlX3NoaWZ0KDIsWCsxKTtyZXR1cm4gcmV9KEguU2hlZXROYW1lcy5sZW5ndGgpKSxqZSYmSC52YmFyYXcmJnMwKHdlLCJPYlByb2oiKSxqZSYmSC52YmFyYXcmJnMwKHdlLCJDb2RlTmFtZSIsUHIoWmUuQ29kZU5hbWV8fCJU''@;'; + put 'put ''aGlzV29ya2Jvb2siKSksczAod2UsIkJ1aWx0SW5Gbkdyb3VwQ291bnQiLGhmKDE3KSksczAod2UsIldpblByb3RlY3QiLGoxKCExKSksczAod2UsIlByb3RlY3QiLGoxKCExKSksczAod2UsIlBhc3N3b3JkIixoZigwKSksamUmJnMwKHdlLCJQcm90NFJldiIsajEoITEpKSxqZSYmczAod2Us''@;'; + put 'put ''IlByb3Q0UmV2UGFzcyIsaGYoMCkpLHMwKHdlLCJXaW5kb3cxIixmdW5jdGlvbiBXeigpe3ZhciBIPVJpKDE4KTtyZXR1cm4gSC53cml0ZV9zaGlmdCgyLDApLEgud3JpdGVfc2hpZnQoMiwwKSxILndyaXRlX3NoaWZ0KDIsMjkyODApLEgud3JpdGVfc2hpZnQoMiwxNzYwMCksSC53cml0ZV9z''@;'; + put 'put ''aGlmdCgyLDU2KSxILndyaXRlX3NoaWZ0KDIsMCksSC53cml0ZV9zaGlmdCgyLDApLEgud3JpdGVfc2hpZnQoMiwxKSxILndyaXRlX3NoaWZ0KDIsNTAwKSxIfSgpKSxzMCh3ZSwiQmFja3VwIixqMSghMSkpLHMwKHdlLCJIaWRlT2JqIixoZigwKSksczAod2UsIkRhdGUxOTA0IixqMSgidHJ1''@;'; + put 'put ''ZSI9PWZ1bmN0aW9uIEh4KEgpe3JldHVybiBILldvcmtib29rJiZILldvcmtib29rLldCUHJvcHMmJkRpKEguV29ya2Jvb2suV0JQcm9wcy5kYXRlMTkwNCk/InRydWUiOiJmYWxzZSJ9KEgpKSksczAod2UsIkNhbGNQcmVjaXNpb24iLGoxKCEwKSksamUmJnMwKHdlLCJSZWZyZXNoQWxsIixq''@;'; + put 'put ''MSghMSkpLHMwKHdlLCJCb29rQm9vbCIsaGYoMCkpLHV1PVF1KFswLDE2Nzc3MjE1LDE2NzExNjgwLDY1MjgwLDI1NSwxNjc3Njk2MCwxNjcxMTkzNSw2NTUzNSwwLDE2Nzc3MjE1LDE2NzExNjgwLDY1MjgwLDI1NSwxNjc3Njk2MCwxNjcxMTkzNSw2NTUzNV0pLGZ1bmN0aW9uIFFtKEgscmUs''@;'; + put 'put ''WCl7KCgocmV8fHt9KS5TdHlsZXN8fHt9KS5Gb250c3x8W3tzejoxMixjb2xvcjp7dGhlbWU6MX0sbmFtZToiQXJpYWwiLGZhbWlseToyLHNjaGVtZToibWlub3IifV0pLmZvckVhY2goZnVuY3Rpb24od2Upe3MwKEgsIkZvbnQiLGZ1bmN0aW9uIG0zKEgscmUpe3ZhciBYPUgubmFtZXx8IkFy''@;'; + put 'put ''aWFsIix3ZT1yZSYmNT09cmUuYmlmZixGZT1SaSh3ZT8xNStYLmxlbmd0aDoxNisyKlgubGVuZ3RoKTtGZS53cml0ZV9zaGlmdCgyLDIwKihILnN6fHwxMikpO3ZhciBaZT0wO3JldHVybiBILmJvbGQmJihaZXw9MSksSC5pdGFsaWMmJihaZXw9MiksSC5zdHJpa2UmJihaZXw9OCksSC5zaGFk''@;'; + put 'put ''b3cmJihaZXw9MzIpLEZlLndyaXRlX3NoaWZ0KDEsWmUpLEZlLndyaXRlX3NoaWZ0KDEsMCksRmUud3JpdGVfc2hpZnQoMixILmNvbG9yP1JiKEguY29sb3IsNjQpOjY0KSxGZS53cml0ZV9zaGlmdCgyLEguYm9sZD83MDA6NDAwKSxGZS53cml0ZV9zaGlmdCgyLCJzdXBlciI9PUgudmFsaWdu''@;'; + put 'put ''PzE6InN1YiI9PUgudmFsaWduPzI6MCksRmUud3JpdGVfc2hpZnQoMSxILnVuZGVybGluZXx8MCksRmUud3JpdGVfc2hpZnQoMSxGZS5mYW1pbHl8fDApLEZlLndyaXRlX3NoaWZ0KDEsRmUuY2hhcnNldHx8MCksRmUud3JpdGVfc2hpZnQoMSwwKSxGZS53cml0ZV9zaGlmdCgxLFgubGVuZ3Ro''@;'; + put 'put ''KSx3ZXx8RmUud3JpdGVfc2hpZnQoMSwxKSxGZS53cml0ZV9zaGlmdCgod2U/MToyKSpYLmxlbmd0aCxYLHdlPyJzYmNzIjoidXRmMTZsZSIpLEZlfSh3ZSxYKSl9KX0od2UsSCxYKSxmdW5jdGlvbiBGUChILHJlLFgpeyFyZXx8W1s1LDhdLFsyMywyNl0sWzQxLDQ0XSxbNTAsMzkyXV0uZm9y''@;'; + put 'put ''RWFjaChmdW5jdGlvbih3ZSl7Zm9yKHZhciB4ZT13ZVswXTt4ZTw9d2VbMV07Kyt4ZSludWxsIT1yZVt4ZV0mJnMwKEgsIkZvcm1hdCIsaGIoeGUscmVbeGVdLFgpKX0pfSh3ZSxILlNTRixYKSxmdW5jdGlvbiBIUChILHJlKXtmb3IodmFyIFg9MDtYPDE2OysrWClzMChILCJYRiIsU2goe251''@;'; + put 'put ''bUZtdElkOjAsc3R5bGU6ITB9LDAscmUpKTtyZS5jZWxsWGZzLmZvckVhY2goZnVuY3Rpb24od2Upe3MwKEgsIlhGIixTaCh3ZSwwLHJlKSl9KX0od2UsWCksczAod2UsIlBhbGV0dGUiLGZ1bmN0aW9uIFo4KEgpe3ZhciByZT1SaSgyMjYpO3JlLndyaXRlX3NoaWZ0KDIsNTYpO2Zvcih2YXIg''@;'; + put 'put ''WD0wO1g8NTY7KytYKXt2YXIgd2U9SFtYKzhdfHxLZ1tYKzhdO3JlLndyaXRlX3NoaWZ0KDEsd2VbMF0pLHJlLndyaXRlX3NoaWZ0KDEsd2VbMV0pLHJlLndyaXRlX3NoaWZ0KDEsd2VbMl0pLHJlLndyaXRlX3NoaWZ0KDEsMCl9cmV0dXJuIHJlfSh1dSkpLHV1PWxuKEtnKSxqZSYmczAod2Us''@;'; + put 'put ''IlVzZXNFTEZzIixqMSghMSkpO3ZhciB4dD13ZS5lbmQoKSxSdD1KMigpO2plJiZzMChSdCwiQ291bnRyeSIsZnVuY3Rpb24gVU0oSCl7cmV0dXJuIEh8fChIPVJpKDQpKSxILndyaXRlX3NoaWZ0KDIsMSksSC53cml0ZV9zaGlmdCgyLDEpLEh9KCkpLGplJiZYLlN0cmluZ3MmJmZ1bmN0aW9u''@;'; + put 'put ''IEJQKEgscmUsWCx3ZSl7dmFyIHhlPXdlfHwoWHx8W10pLmxlbmd0aHx8MDtpZih4ZTw9ODIyNClyZXR1cm4gczAoSCxyZSxYLHhlKTt2YXIgRmU9K3JlfHwrRjNbcmVdO2lmKCFpc05hTihGZSkpe2Zvcih2YXIgWmU9WC5wYXJ0c3x8W10samU9MCxZZT0wLE10PTA7TXQrKFplW2plXXx8ODIy''@;'; + put 'put ''NCk8PTgyMjQ7KU10Kz1aZVtqZV18fDgyMjQsamUrKzt2YXIgeHQ9SC5uZXh0KDQpO2Zvcih4dC53cml0ZV9zaGlmdCgyLEZlKSx4dC53cml0ZV9zaGlmdCgyLE10KSxILnB1c2goWC5zbGljZShZZSxZZStNdCkpLFllKz1NdDtZZTx4ZTspe2ZvcigoeHQ9SC5uZXh0KDQpKS53cml0ZV9zaGlm''@;'; + put 'put ''dCgyLDYwKSxNdD0wO010KyhaZVtqZV18fDgyMjQpPD04MjI0OylNdCs9WmVbamVdfHw4MjI0LGplKys7eHQud3JpdGVfc2hpZnQoMixNdCksSC5wdXNoKFguc2xpY2UoWWUsWWUrTXQpKSxZZSs9TXR9fX0oUnQsIlNTVCIsZnVuY3Rpb24gYmwoSCxyZSl7dmFyIFg9UmkoOCk7WC53cml0ZV9z''@;'; + put 'put ''aGlmdCg0LEguQ291bnQpLFgud3JpdGVfc2hpZnQoNCxILlVuaXF1ZSk7Zm9yKHZhciB3ZT1bXSx4ZT0wO3hlPEgubGVuZ3RoOysreGUpd2VbeGVdPUdjKEhbeGVdLHJlKTt2YXIgRmU9VihbWF0uY29uY2F0KHdlKSk7cmV0dXJuIEZlLnBhcnRzPVtYLmxlbmd0aF0uY29uY2F0KHdlLm1hcChm''@;'; + put 'put ''dW5jdGlvbihaZSl7cmV0dXJuIFplLmxlbmd0aH0pKSxGZX0oWC5TdHJpbmdzLFgpKSxzMChSdCwiRU9GIik7dmFyIFV0PVJ0LmVuZCgpLG5uPUoyKCksQ249MCxEdD0wO2ZvcihEdD0wO0R0PEguU2hlZXROYW1lcy5sZW5ndGg7KytEdClDbis9KGplPzEyOjExKSsoamU/MjoxKSpILlNoZWV0''@;'; + put 'put ''TmFtZXNbRHRdLmxlbmd0aDt2YXIgenQ9eHQubGVuZ3RoK0NuK1V0Lmxlbmd0aDtmb3IoRHQ9MDtEdDxILlNoZWV0TmFtZXMubGVuZ3RoOysrRHQpczAobm4sIkJvdW5kU2hlZXQ4IixXZih7cG9zOnp0LGhzOihGZVtEdF18fHt9KS5IaWRkZW58fDAsZHQ6MCxuYW1lOkguU2hlZXROYW1lc1tE''@;'; + put 'put ''dF19LFgpKSx6dCs9cmVbRHRdLmxlbmd0aDt2YXIgVG49bm4uZW5kKCk7aWYoQ24hPVRuLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoIkJTOCAiK0NuKyIgIT0gIitUbi5sZW5ndGgpO3ZhciBPbj1bXTtyZXR1cm4geHQubGVuZ3RoJiZPbi5wdXNoKHh0KSxUbi5sZW5ndGgmJk9uLnB1c2goVG4p''@;'; + put 'put ''LFV0Lmxlbmd0aCYmT24ucHVzaChVdCksdm4oW09uXSl9ZnVuY3Rpb24gWG0oSCxyZSl7dmFyIFg9cmV8fHt9O3N3aXRjaChYLmJpZmZ8fDIpe2Nhc2UgODpjYXNlIDU6cmV0dXJuIGZ1bmN0aW9uIE5QKEgscmUpe3ZhciBYPXJlfHx7fSx3ZT1bXTtDMyhyZSYmcmUuUFBJfHw5NiksSCYmIUgu''@;'; + put 'put ''U1NGJiYoSC5TU0Y9Ri5nZXRfdGFibGUoKSksSCYmSC5TU0YmJih5ZShGKSxGLmxvYWRfdGFibGUoSC5TU0YpLFgucmV2c3NmPWV0KEguU1NGKSxYLnJldnNzZltILlNTRls2NTUzNV1dPTAsWC5zc2Y9SC5TU0YpLEguU3R5bGVzPXtGb250czpYLkZvbnRzPVt7c3o6MTIsY29sb3I6e3RoZW1l''@;'; + put 'put ''OjEscmdiOiIwMDAwMDAifSxuYW1lOiJDYWxpYnJpIixmYW1pbHk6MixzY2hlbWU6Im1pbm9yIn1dLEZpbGxzOlguRmlsbHM9W3twYXR0ZXJuVHlwZToibm9uZSJ9LHtwYXR0ZXJuVHlwZToiZ3JheTEyNSJ9XSxCb3JkZXJzOlguQm9yZGVycz1be31dLERYRjpYLkRYRj1ILlN0eWxlcyYmSC5T''@;'; + put 'put ''dHlsZXMuRFhGfHxbXX0sUzMoWC5Gb250c1swXSksWC5TdHJpbmdzPVtdLFguU3RyaW5ncy5Db3VudD0wLFguU3RyaW5ncy5VbmlxdWU9MCxmNT9YLnJldlN0cmluZ3M9bmV3IE1hcDooWC5yZXZTdHJpbmdzPXt9LFgucmV2U3RyaW5ncy5mb289W10sZGVsZXRlIFgucmV2U3RyaW5ncy5mb28p''@;'; + put 'put ''LEgzKFgpLFguY2VsbFhmcz1bXSxYLmNlbGxTdHlsZVhmcz1be25hbWU6Ik5vcm1hbCJ9XSxZMShYLmNlbGxYZnMsWC5jZWxsU3R5bGVYZnMse30se3JldnNzZjp7R2VuZXJhbDowfX0pLEguUHJvcHN8fChILlByb3BzPXt9KTtmb3IodmFyIHhlPTA7eGU8SC5TaGVldE5hbWVzLmxlbmd0aDsr''@;'; + put 'put ''K3hlKXdlW3dlLmxlbmd0aF09JHIoeGUsWCxIKTtyZXR1cm4gd2UudW5zaGlmdChuQyhILHdlLFgpKSx2bihbd2VdKX0oSCxyZSk7Y2FzZSA0OmNhc2UgMzpjYXNlIDI6cmV0dXJuIGZ1bmN0aW9uIGVoKEgscmUpe2Zvcih2YXIgWD1yZXx8e30sd2U9SjIoKSx4ZT0wLEZlPTA7RmU8SC5TaGVl''@;'; + put 'put ''dE5hbWVzLmxlbmd0aDsrK0ZlKUguU2hlZXROYW1lc1tGZV09PVguc2hlZXQmJih4ZT1GZSk7aWYoMD09eGUmJlguc2hlZXQmJkguU2hlZXROYW1lc1swXSE9WC5zaGVldCl0aHJvdyBuZXcgRXJyb3IoIlNoZWV0IG5vdCBmb3VuZDogIitYLnNoZWV0KTtyZXR1cm4gczAod2UsND09WC5iaWZm''@;'; + put 'put ''PzEwMzM6Mz09WC5iaWZmPzUyMTo5LGczKDAsMTYsWCkpLGZ1bmN0aW9uIFBQKEgscmUsWCx3ZSl7dmFyIFplLHhlPUFycmF5LmlzQXJyYXkocmUpLEZlPUZvKHJlWyIhcmVmIl18fCJBMSIpLGplPSIiLFllPVtdO2lmKEZlLmUuYz4yNTV8fEZlLmUucj4xNjM4Myl7aWYod2UuV1RGKXRocm93''@;'; + put 'put ''IG5ldyBFcnJvcigiUmFuZ2UgIisocmVbIiFyZWYiXXx8IkExIikrIiBleGNlZWRzIGZvcm1hdCBsaW1pdCBBMTpJVjE2Mzg0Iik7RmUuZS5jPU1hdGgubWluKEZlLmUuYywyNTUpLEZlLmUucj1NYXRoLm1pbihGZS5lLmMsMTYzODMpLFplPWZhKEZlKX1mb3IodmFyIE10PUZlLnMucjtNdDw9''@;'; + put 'put ''RmUuZS5yOysrTXQpe2plPVhhKE10KTtmb3IodmFyIHh0PUZlLnMuYzt4dDw9RmUuZS5jOysreHQpe010PT09RmUucy5yJiYoWWVbeHRdPV9hKHh0KSksWmU9WWVbeHRdK2plO3ZhciBSdD14ZT8ocmVbTXRdfHxbXSlbeHRdOnJlW1plXTshUnR8fEVBKEgsUnQsTXQseHQpfX19KHdlLEguU2hl''@;'; + put 'put ''ZXRzW0guU2hlZXROYW1lc1t4ZV1dLDAsWCksczAod2UsMTApLHdlLmVuZCgpfShILHJlKX10aHJvdyBuZXcgRXJyb3IoImludmFsaWQgdHlwZSAiK1guYm9va1R5cGUrIiBmb3IgQklGRiIpfXZhciB1cz1mdW5jdGlvbigpe3ZhciBIPXtjZW50ZXJDb250aW51b3VzOiJjZW50ZXIiLGp1c3Rp''@;'; + put 'put ''Znk6ImxlZnQifTtmdW5jdGlvbiBYKFJ0LFV0KXt2YXIgbm49VXR8fHt9LENuPW5uLmRlbnNlP1tdOnt9LER0PShSdD1SdC5yZXBsYWNlKC88IS0tLio/LS0+L2csIiIpKS5tYXRjaCgvPHRhYmxlL2kpO2lmKCFEdCl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgSFRNTDogY291bGQgbm90IGZp''@;'; + put 'put ''bmQgPHRhYmxlPiIpO3ZhciB6dD1SdC5tYXRjaCgvPFwvdGFibGUvaSksUG49RHQuaW5kZXgsVG49enQmJnp0LmluZGV4fHxSdC5sZW5ndGgsT249ZnVuY3Rpb24gcXQoSCxyZSxYKXtpZih4cnx8InN0cmluZyI9PXR5cGVvZiByZSlyZXR1cm4gSC5zcGxpdChyZSk7Zm9yKHZhciB3ZT1ILnNw''@;'; + put 'put ''bGl0KHJlKSx4ZT1bd2VbMF1dLEZlPTE7RmU8d2UubGVuZ3RoOysrRmUpeGUucHVzaChYKSx4ZS5wdXNoKHdlW0ZlXSk7cmV0dXJuIHhlfShSdC5zbGljZShQbixUbiksLyg6Pzx0cltePl0qPikvaSwiPHRyPiIpLFluPS0xLE1yPTAsYWk9MCx5cj0wLGFyPXtzOntyOjFlNyxjOjFlN30sZTp7''@;'; + put 'put ''cjowLGM6MH19LEdyPVtdO2ZvcihQbj0wO1BuPE9uLmxlbmd0aDsrK1BuKXt2YXIgenI9T25bUG5dLnRyaW0oKSxxcj16ci5zbGljZSgwLDMpLnRvTG93ZXJDYXNlKCk7aWYoIjx0ciIhPXFyKXtpZigiPHRkIj09cXJ8fCI8dGgiPT1xcil7dmFyIG9pPXpyLnNwbGl0KC88XC90W2RoXT4vaSk7''@;'; + put 'put ''Zm9yKFRuPTA7VG48b2kubGVuZ3RoOysrVG4pe3ZhciBjcj1vaVtUbl0udHJpbSgpO2lmKGNyLm1hdGNoKC88dFtkaF0vaSkpe2Zvcih2YXIgZGk9Y3IsdjA9MDsiPCI9PWRpLmNoYXJBdCgwKSYmKHYwPWRpLmluZGV4T2YoIj4iKSk+LTE7KWRpPWRpLnNsaWNlKHYwKzEpO2Zvcih2YXIgVWk9''@;'; + put 'put ''MDtVaTxHci5sZW5ndGg7KytVaSl7dmFyIHRvPUdyW1VpXTt0by5zLmM9PU1yJiZ0by5zLnI8WW4mJlluPD10by5lLnImJihNcj10by5lLmMrMSxVaT0tMSl9dmFyIEEwPWVuKGNyLnNsaWNlKDAsY3IuaW5kZXhPZigiPiIpKSk7eXI9QTAuY29sc3Bhbj8rQTAuY29sc3BhbjoxLCgoYWk9K0Ew''@;'; + put 'put ''LnJvd3NwYW4pPjF8fHlyPjEpJiZHci5wdXNoKHtzOntyOlluLGM6TXJ9LGU6e3I6WW4rKGFpfHwxKS0xLGM6TXIreXItMX19KTt2YXIgd2k9QTAudHx8QTBbImRhdGEtdCJdfHwiIjtpZighZGkubGVuZ3RoKXtNcis9eXI7Y29udGludWV9aWYoZGk9TWEoZGkpLGFyLnMucj5ZbiYmKGFyLnMu''@;'; + put 'put ''cj1ZbiksYXIuZS5yPFluJiYoYXIuZS5yPVluKSxhci5zLmM+TXImJihhci5zLmM9TXIpLGFyLmUuYzxNciYmKGFyLmUuYz1NciksZGkubGVuZ3RoKXt2YXIgWXI9e3Q6InMiLHY6ZGl9O25uLnJhd3x8IWRpLnRyaW0oKS5sZW5ndGh8fCJzIj09d2l8fChZcj1GcihkaSxubikpLG5uLmRlbnNl''@;'; + put 'put ''PyhDbltZbl18fChDbltZbl09W10pLENuW1luXVtNcl09WXIpOkNuW1kwKHtyOlluLGM6TXJ9KV09WXIsTXIrPXlyfX19fX1lbHNle2lmKCsrWW4sbm4uc2hlZXRSb3dzJiZubi5zaGVldFJvd3M8PVluKXstLVluO2JyZWFrfU1yPTB9fXJldHVybiBDblsiIXJlZiJdPWZhKGFyKSxHci5sZW5n''@;'; + put 'put ''dGgmJihDblsiIW1lcmdlcyJdPUdyKSxDbn1mdW5jdGlvbiB4ZShSdCxVdCxubixDbixEdCx6dCl7dmFyIE9uLFBuPVJ0WyIhbWVyZ2VzIl18fFtdLFRuPVtdLFluPXtzdHlsZTpbXX0sTXI9ITE7ZnVuY3Rpb24gYWkoJDAsTmEsam8pe3ZhciB3YT0iIixhbz0wO2lmKE9uWyQwXSlzd2l0Y2go''@;'; + put 'put ''T25bJDBdLnN0eWxlKXtjYXNlInRoaW4iOmNhc2UiaGFpciI6d2E9InNvbGlkIixhbz0xO2JyZWFrO2Nhc2UibWVkaXVtIjp3YT0ic29saWQiLGFvPTI7YnJlYWs7Y2FzZSJ0aGljayI6d2E9InNvbGlkIixhbz0zO2JyZWFrO2Nhc2UiZG91YmxlIjp3YT0iZG91YmxlIixhbz0zO2JyZWFrO2Nh''@;'; + put 'put ''c2UiZG90dGVkIjpjYXNlImRhc2hEb3REb3QiOndhPSJkb3R0ZWQiLGFvPTE7YnJlYWs7Y2FzZSJtZWRpdW1EYXNoRG90RG90Ijp3YT0iZG90dGVkIixhbz0yO2JyZWFrO2Nhc2UiZGFzaGVkIjpjYXNlImRhc2hEb3QiOmNhc2Uic2xhbnREYXNoRG90Ijp3YT0iZGFzaGVkIixhbz0xO2JyZWFr''@;'; + put 'put ''O2Nhc2UibWVkaXVtRGFzaGVkIjpjYXNlIm1lZGl1bURhc2hEb3QiOndhPSJkYXNoZWQiLGFvPTJ9ZTppZigwPT1hbyl7c3dpdGNoKCQwKXtjYXNlInRvcCI6LS1OYTticmVhaztjYXNlImxlZnQiOi0tam87YnJlYWs7Y2FzZSJib3R0b20iOisrTmE7YnJlYWs7Y2FzZSJyaWdodCI6Kytqb312''@;'; + put 'put ''YXIgeDA9TmE+PTAmJmpvPj0wP0NuLmRlbnNlPyhSdFtOYV18fFtdKVtqb106UnRbWTAoe3I6TmEsYzpqb30pXTpudWxsO2lmKHgwKXtpZih4MC5zJiZ4MC5zW3t0b3A6ImJvdHRvbSIsYm90dG9tOiJ0b3AiLGxlZnQ6InJpZ2h0IixyaWdodDoibGVmdCJ9WyQwXV0pYnJlYWsgZTt4MC5zJiZ4''@;'; + put 'put ''MC5zLmZnQ29sb3ImJihhbz0xKX1Pbi5mZ0NvbG9yJiYoYW89MSksIXgwJiZNciYmMD09YW8mJihhbz0xKX0wIT1hbyYmYW8mJihZbi5zdHlsZS5wdXNoKCJib3JkZXItIiskMCsiLXN0eWxlOiIrKHdhfHwidHJhbnNwYXJlbnQiKSksWW4uc3R5bGUucHVzaCgiYm9yZGVyLSIrJDArIi13aWR0''@;'; + put 'put ''aDoiK2FvKyJweCIpLCIiPT13YT9Zbi5zdHlsZS5wdXNoKCJib3JkZXItIiskMCsiLWNvbG9yOiB0cmFuc3BhcmVudCIpOk9uWyQwXS5jb2xvciYmT25bJDBdLmNvbG9yLnJnYiYmWW4uc3R5bGUucHVzaCgiYm9yZGVyLSIrJDArIi1jb2xvcjojIitMbyhPblskMF0uY29sb3IucmdiKSkpfWZv''@;'; + put 'put ''cih2YXIgeXI9VXQucy5jO3lyPD1VdC5lLmM7Kyt5cil7Zm9yKHZhciBhcj0wLEdyPTAsenI9MDt6cjxQbi5sZW5ndGg7Kyt6cilpZighKFBuW3pyXS5zLnI+bm58fFBuW3pyXS5zLmM+eXJ8fFBuW3pyXS5lLnI8bm58fFBuW3pyXS5lLmM8eXIpKXtpZihQblt6cl0ucy5yPG5ufHxQblt6cl0u''@;'; + put 'put ''cy5jPHlyKXthcj0tMTticmVha31hcj1Qblt6cl0uZS5yLVBuW3pyXS5zLnIrMSxHcj1Qblt6cl0uZS5jLVBuW3pyXS5zLmMrMTticmVha31pZighKGFyPDApKXt2YXIgcXI9WTAoe3I6bm4sYzp5cn0pLG9pPUNuLmRlbnNlPyhSdFtubl18fFtdKVt5cl06UnRbcXJdO29pP01yPSExOihNcj0h''@;'; + put 'put ''MCxvaT17dDoieiIsczp7fX0pO3ZhciBjcj0ieiI9PW9pLnQ/IiI6b2kuaHx8bjAob2kud3x8KHkxKG9pKSxvaS53KXx8IiIpO2lmKFluPXtzdHlsZTpbXX0sT249b2kucyl7dmFyIGRpPTE7aWYoKCJzdXBlciI9PU9uLnZhbGlnbnx8InN1YiI9PU9uLnZhbGlnbikmJihkaT0uODMsY3I9X2ko''@;'; + put 'put ''InNwYW4iLGNyLHtzdHlsZToidmVydGljYWwtYWxpZ246ICIrT24udmFsaWdufSkpLFluLnN0eWxlLnB1c2goImZvbnQtd2VpZ2h0OiIrKE9uLmJvbGQ/NzAwOjQwMCkpLE9uLml0YWxpYyYmWW4uc3R5bGUucHVzaCgiZm9udC1zdHlsZTogaXRhbGljIiksKE9uLnVuZGVybGluZXx8T24uc3Ry''@;'; + put 'put ''aWtlKSYmWW4uc3R5bGUucHVzaCgidGV4dC1kZWNvcmF0aW9uOiIrKE9uLnVuZGVybGluZT8iIHVuZGVybGluZSI6IiIpKyhPbi5zdHJpa2U/IiBsaW5lLXRocm91Z2giOiIiKSksT24uY29sb3ImJk9uLmNvbG9yLnJnYiYmWW4uc3R5bGUucHVzaCgiY29sb3I6ICMiK0xvKE9uLmNvbG9yLnJn''@;'; + put 'put ''YikpLE9uLm5hbWUmJlluLnN0eWxlLnB1c2goImZvbnQtZmFtaWx5OiIrT24ubmFtZSsiLCBzYW5zLXNlcmlmIiksT24uc3omJlluLnN0eWxlLnB1c2goImZvbnQtc2l6ZToiK09uLnN6KmRpKyJwdCIpLG51bGwhPT1Pbi5wYXR0ZXJuVHlwZSYmT24uZmdDb2xvciYmT24uZmdDb2xvci5yZ2Im''@;'; + put 'put ''JlluLnN0eWxlLnB1c2goImJhY2tncm91bmQtY29sb3I6ICMiK0xvKE9uLmZnQ29sb3IucmdiKSksWyJ0b3AiLCJsZWZ0Il0uZm9yRWFjaChmdW5jdGlvbigkMCl7YWkoJDAsbm4seXIpfSksYXI+MXx8R3I+MSl7dmFyIHYwPVkwKHtyOm5uK2FyLTEsYzp5citHci0xfSksVWk9Q24uZGVuc2U/''@;'; + put 'put ''KFJ0W25uK2FyLTFdfHxbXSlbeXIrR3ItMV06UnRbdjBdLEEwPU9uO09uPVVpJiZVaS5zfHxPbixbImJvdHRvbSIsInJpZ2h0Il0uZm9yRWFjaChmdW5jdGlvbigkMCl7YWkoJDAsbm4seXIpfSksT249QTB9ZWxzZVsiYm90dG9tIiwicmlnaHQiXS5mb3JFYWNoKGZ1bmN0aW9uKCQwKXthaSgk''@;'; + put 'put ''MCxubix5cil9KTtpZihPbi5hbGlnbm1lbnQpe2lmKE9uLmFsaWdubWVudC5ob3Jpem9udGFsP1luLnN0eWxlLnB1c2goInRleHQtYWxpZ246ICIrKEhbT24uYWxpZ25tZW50Lmhvcml6b250YWxdfHxPbi5hbGlnbm1lbnQuaG9yaXpvbnRhbCkpOiJuIj09b2kudCYmWW4uc3R5bGUucHVzaCgi''@;'; + put 'put ''dGV4dC1hbGlnbjogcmlnaHQiKSxPbi5hbGlnbm1lbnQudmVydGljYWwpe3ZhciB3aT1Pbi5hbGlnbm1lbnQudmVydGljYWw7WW4uc3R5bGUucHVzaCgidmVydGljYWwtYWxpZ246ICIrKCJjZW50ZXIiPT13aT8ibWlkZGxlIjp3aSkpfWlmKE9uLmFsaWdubWVudC53cmFwVGV4dClZbi5zdHls''@;'; + put 'put ''ZS5wdXNoKCJ3aGl0ZS1zcGFjZTogcHJlLXdyYXAiKTtlbHNle3ZhciBZcj1Dbi5kZW5zZT8oUnRbbm5dfHxbXSlbeXIrMV06UnRbWTAoe3I6bm4sYzp5cisxfSldO1lyJiYieiIhPVlyLnQmJlluLnN0eWxlLnB1c2goIndoaXRlLXNwYWNlOiBwcmUtd3JhcCIpfX1lbHNlIm4iPT1vaS50JiZZ''@;'; + put 'put ''bi5zdHlsZS5wdXNoKCJ0ZXh0LWFsaWduOiByaWdodCIpO3ZhciBFaT0oKFJ0WyIhY29scyJdfHxbXSlbeXJdfHx7fSkud3B4O251bGw9PUVpJiYoRWk9KChSdFsiIXNoZWV0Rm9ybWF0Il18fHt9KS5jb2x8fHt9KS53cHgpfXZhciBoaT0wO2lmKEdyPD0xJiZhcjw9MSYmKGhpPSgoUnRbIiFj''@;'; + put 'put ''b2xzIl18fFtdKVt5cl18fHt9KS53cHgpJiZZbi5zdHlsZS5wdXNoKCJ3aWR0aDogIitoaSsicHgiKSxSdFsiIWNvbmRmbXQiXSYmRmUob2ksbm4seXIsUnRbIiFjb25kZm10Il0sWW4uc3R5bGUsUnQpLDA9PVluLnN0eWxlLmxlbmd0aD9kZWxldGUgWW4uc3R5bGU6WW4uc3R5bGU9WW4uc3R5''@;'; + put 'put ''bGUuam9pbigiOyIpLENuLmNzcyl7dmFyIE5yPUR0LmluZGV4T2YoWW4uc3R5bGUpOy0xPT1OciYmKER0LnB1c2goWW4uc3R5bGUpLE5yPUR0Lmxlbmd0aC0xKSxkZWxldGUgWW4uc3R5bGUsWW4uY2xhc3M9InNqcyIrKHp0fHwiIikrIi0iK05yfWFyPjEmJihZbi5yb3dzcGFuPWFyKSxHcj4x''@;'; + put 'put ''JiYoWW4uY29sc3Bhbj1HciksQ24uZWRpdGFibGU/Y3I9JzxzcGFuIGNvbnRlbnRlZGl0YWJsZT0idHJ1ZSI+JytjcisiPC9zcGFuPiI6b2kmJihZblsiZGF0YS10Il09b2kmJm9pLnR8fCJ6IixudWxsIT1vaS52JiYoWW5bImRhdGEtdiJdPW9pLnYpLG51bGwhPW9pLnomJihZblsiZGF0YS16''@;'; + put 'put ''Il09b2kueikpLFluLmlkPShDbi5pZHx8InNqcyIpKyItIitxcixUbi5wdXNoKF9pKCJ0ZCIsY3IsWW4pKX19dmFyIE4wLGtpPXtzdHlsZTpbXX07KE4wPVJ0WyIhc2hlZXRGb3JtYXQiXSkmJk4wLnJvdyYmKEo4KE4wLnJvdyksTjAucm93LmhweCYmKGtpLnN0eWxlLnB1c2goWyJoZWlnaHQi''@;'; + put 'put ''LE4wLnJvdy5ocHgrInB4Il0pLGtpLmhlaWdodD1NYXRoLnJvdW5kKE4wLnJvdy5ocHgpKSk7dmFyIHQwPVJ0WyIhcm93cyJdO2lmKHQwJiZ0MFtubl0pe3ZhciBpbz10MFtubl07aW8uaHB4JiYoa2kuc3R5bGUucHVzaChbImhlaWdodCIsK2lvLmhweCsicHgiXSksa2kuaGVpZ2h0PU1hdGgu''@;'; + put 'put ''cm91bmQoaW8uaHB4KSksaW8uaGlkZGVuJiZraS5zdHlsZS5wdXNoKFsiZGlzcGxheSIsIm5vbmUiXSl9dmFyIG9hPVtdO3JldHVybiBraS5zdHlsZT1raS5zdHlsZS5yZXZlcnNlKCkuZmlsdGVyKGZ1bmN0aW9uKCQwKXtyZXR1cm4hKG9hLmluZGV4T2YoJDBbMF0pPi0xfHwob2EucHVzaCgk''@;'; + put 'put ''MFswXSksMCkpfSkubWFwKGZ1bmN0aW9uKCQwKXtyZXR1cm4gJDBbMF0rIjoiKyQwWzFdfSksMD09a2kuc3R5bGUubGVuZ3RoP2RlbGV0ZSBraS5zdHlsZTpraS5zdHlsZT1raS5zdHlsZS5qb2luKCI7IiksX2koInRyIixUbi5qb2luKCIiKSxraSl9ZnVuY3Rpb24gRmUoUnQsVXQsbm4sQ24s''@;'; + put 'put ''RHQsenQpe0NuLmZvckVhY2goZnVuY3Rpb24oUG4pe2lmKFBuLl9yZWZ8fChQbi5fcmVmPSJzdHJpbmciPT10eXBlb2YgUG4ucmVmP3ZzKFBuLnJlZik6UG4ucmVmKSwhKFBuLl9yZWYucy5jPm5ufHxQbi5fcmVmLmUuYzxubnx8UG4uX3JlZi5zLnI+VXR8fFBuLl9yZWYuZS5yPFV0fHwic2Nh''@;'; + put 'put ''bGUiIT09UG4udCkpe2lmKCJuIiE9UnQudClyZXR1cm47dmFyIFRuO2lmKG51bGw9PVBuLl9taW4pe1BuLl92YWx1ZXM9W107Zm9yKHZhciBPbj1Qbi5fcmVmLnMucjtPbjw9UG4uX3JlZi5lLnI7KytPbilmb3IodmFyIFluPVBuLl9yZWYucy5jO1luPD1Qbi5fcmVmLmUuYzsrK1luKXt2YXIg''@;'; + put 'put ''TXI9QXJyYXkuaXNBcnJheSh6dCk/KHp0W09uXXx8W10pW1luXTp6dFtZMCh7cjpPbixjOllufSldO01yJiYibiI9PU1yLnQmJlBuLl92YWx1ZXMucHVzaChNci52KX1pZihQbi5fdmFsdWVzLnNvcnQoZnVuY3Rpb24oYWkseXIpe3JldHVybiBhaS15cn0pLFBuLl9taW49UG4uX3ZhbHVlc1sw''@;'; + put 'put ''XSxQbi5fbWF4PVBuLl92YWx1ZXMuc2xpY2UoLTEpWzBdLFBuLl9iYW5kPVBuLl9tYXgtUG4uX21pbixQbi5jbWlkKXtzd2l0Y2goUG4uY21pZC50KXtjYXNlIm51bSI6UG4uX21pZD1Qbi5jbWlkLnY7YnJlYWs7Y2FzZSJwZXJjZW50IjpQbi5fbWlkPVBuLmNtaWQudi8xMDAqUG4uX2JhbmQr''@;'; + put 'put ''UG4uX21pbjticmVhaztjYXNlInBlcmNlbnRpbGUiOlBuLl9taWQ9ZnVuY3Rpb24gcHIoSCxyZSl7aWYoMD09cmUpcmV0dXJuIEhbMF07aWYoMTAwPT1yZSlyZXR1cm4gSFtILmxlbmd0aC0xXTt2YXIgd2U9cmUvMTAwKihILmxlbmd0aC0xKSx4ZT13ZS1NYXRoLmZsb29yKHdlKTtyZXR1cm4g''@;'; + put 'put ''eGUqSFtNYXRoLmNlaWwod2UpXSsoMS14ZSkqSFtNYXRoLmZsb29yKHdlKV19KFBuLl92YWx1ZXMsUG4uY21pZC52KX1Qbi5fYmFuZGg9UG4uX21heC1Qbi5fbWlkLFBuLl9iYW5kbD1Qbi5fbWlkLVBuLl9taW59fShUbj1Qbi5jbWlkP1J0LnY+PVBuLl9taWQ/aDYoUG4uY21pZC5jb2xvcixQ''@;'; + put 'put ''bi5jbWF4LmNvbG9yLChSdC52LVBuLl9taWQpL1BuLl9iYW5kaCk6aDYoUG4uY21pbi5jb2xvcixQbi5jbWlkLmNvbG9yLChSdC52LVBuLl9taW4pL1BuLl9iYW5kbCk6aDYoUG4uY21pbi5jb2xvcixQbi5jbWF4LmNvbG9yLChSdC52LVBuLl9taW4pL1BuLl9iYW5kKSkmJkR0LnB1c2goImJh''@;'; + put 'put ''Y2tncm91bmQtY29sb3I6ICMiK1RuKX19KX1mdW5jdGlvbiBaZShSdCxVdCl7dmFyIG5uPXtzcGFuOlV0fHwxLHN0eWxlOiIifSxDbj1bXTtyZXR1cm4gUnQmJlJ0LndweCYmKG5uLndpZHRoPU1hdGgucm91bmQoNCpSdC53cHgvMyksQ24ucHVzaCgid2lkdGg6IisoUnQud3B4fHwwKSsicHgi''@;'; + put 'put ''KSksQ24ubGVuZ3RoPjAmJihubi5zdHlsZT1Dbi5qb2luKCI7IikpLF9pKCJjb2wiLG51bGwsbm4pfWZ1bmN0aW9uIGplKFJ0LFV0LG5uKXt2YXIgQ249e2JvcmRlcjowLGNlbGxwYWRkaW5nOjAsY2VsbHNwYWNpbmc6MCxzdHlsZTpbImJvcmRlci1jb2xsYXBzZTpjb2xsYXBzZSIsInRhYmxl''@;'; + put 'put ''LWxheW91dDpmaXhlZCJdLmpvaW4oIjsiKX07bm4mJm5uLmlkJiYoQ24uaWQ9bm4uaWQpO3ZhciBEdD1SdFsiIWNvbHMiXSx6dD1SdFsiIXNoZWV0Rm9ybWF0Il07aWYoUnQmJkR0KXtmb3IodmFyIFBuPTAsT249VXQucy5jO09uPD1VdC5lLmM7KytPbil7dmFyIFluPUR0W09uXTtQbis9WW4m''@;'; + put 'put ''JlluLndweD9Zbi53cHg6enQmJnp0LmNvbCYmenQuY29sLndweD96dC5jb2wud3B4OjUzfUNuLnN0eWxlKz0iO3dpZHRoOiIrUG4rInB4In12YXIgYWksTXI9WyI8dGFibGUiK3JsKENuKSsiPiJdO2lmKE1yLnB1c2goIjxzdHlsZT50ZCB7IHBhZGRpbmctdG9wOiAxcHg7IHBhZGRpbmctcmln''@;'; + put 'put ''aHQ6MXB4OyBwYWRkaW5nLWxlZnQ6MXB4OyB0ZXh0LWFsaWduOmdlbmVyYWw7IHZlcnRpY2FsLWFsaWduOmJvdHRvbTsgYm9yZGVyOjFweCBzb2xpZDsgYm9yZGVyLWNvbG9yOiIrKG5uJiZubi5ncmlkY29sb3I/bm4uZ3JpZGNvbG9yOm5yKFJ0WyIhZ3JpZGxpbmVzIl0pPyJ0cmFuc3BhcmVu''@;'; + put 'put ''dCI6ImJsYWNrIikrIjsgd2hpdGUtc3BhY2U6bm93cmFwOyB0ZXh0LW92ZXJmbG93OmVsbGlwc2lzfTwvc3R5bGU+IiksTXIucHVzaCgnPGNvbGdyb3VwIHNwYW49IicrKFV0LmUuYy1VdC5zLmMrMSkrJyI+JyksRHQpe2Zvcih2YXIgeXI9VXQucy5jO3lyPE1hdGgubWluKER0Lmxlbmd0aCxV''@;'; + put 'put ''dC5lLmMrMSk7Kyt5cikhKGFpPUR0W3lyXSkmJnp0JiZ6dC5jb2wmJihhaT16dC5jb2wpLGFpfHwoYWk9e3dweDo1M30pLE1yLnB1c2goWmUoYWksMSkpO1V0LmUuYy1VdC5zLmMrMT5EdC5sZW5ndGgmJihhaT1udWxsLHp0JiZ6dC5jb2wmJihhaT16dC5jb2wpLGFpfHwoYWk9e3dweDo1M30p''@;'; + put 'put ''LE1yLnB1c2goWmUoYWksVXQuZS5jLVV0LnMuYysxLUR0Lmxlbmd0aCkpKX1lbHNlIGFpPW51bGwsenQmJnp0LmNvbCYmKGFpPXp0LmNvbCksYWl8fChhaT17d3B4OjUzfSksTXIucHVzaChaZShhaSxVdC5lLmMtVXQucy5jKzEpKTtyZXR1cm4gTXIucHVzaCgiPC9jb2xncm91cD4iKSxNci5q''@;'; + put 'put ''b2luKCIiKX12YXIgWWU9JzxodG1sPjxoZWFkPjxtZXRhIGNoYXJzZXQ9InV0Zi04Ii8+PHRpdGxlPlNoZWV0SlMgVGFibGUgRXhwb3J0PC90aXRsZT48L2hlYWQ+PGJvZHk+JyxNdD0iPC9ib2R5PjwvaHRtbD4iO3JldHVybnt0b193b3JrYm9vazpmdW5jdGlvbiB3ZShSdCxVdCl7cmV0dXJu''@;'; + put 'put ''IHcxKFgoUnQsVXQpLFV0KX0sdG9fc2hlZXQ6WCxfcm93OnhlLEJFR0lOOlllLEVORDpNdCxfcHJlYW1ibGU6amUsaHRtbF90b19yczpmdW5jdGlvbiByZShSdCl7dmFyIFV0PVtdLG5uPXt9LENuPTA7cmV0dXJuIFJ0LnJlcGxhY2UoLzwoXC8/KShbXlxzPz4hXC86XSo6fCkoW15ccz8+Olwv''@;'; + put 'put ''XSspW14+XSo+L2dtLGZ1bmN0aW9uKER0LHp0LFBuLFRuLE9uKXt2YXIgTXI9SW4oZW4oRHQpWzBdKS5yZXBsYWNlKC9bPFwvPl0vZywiIiksYWk9UnQuc2xpY2UoQ24sT24pLnJlcGxhY2UoL1xzL2csIiAiKTtzd2l0Y2goYWkubGVuZ3RoPjAmJihVdC5wdXNoKHt0OiJzIix2OmFpLHM6bm59''@;'; + put 'put ''KSxubj1sbihubikpLE1yLnRvTG93ZXJDYXNlKCkpe2Nhc2UiYiI6Ii8iIT16dD9ubi5ib2xkPSEwOmRlbGV0ZSBubi5ib2xkO2JyZWFrO2Nhc2UiaSI6Ii8iIT16dD9ubi5pdGFsaWM9ITA6ZGVsZXRlIG5uLml0YWxpYzticmVhaztjYXNlInUiOiIvIiE9enQ/bm4udW5kZXJsaW5lPTE6ZGVs''@;'; + put 'put ''ZXRlIG5uLnVuZGVybGluZTticmVhaztjYXNlInMiOiIvIiE9enQ/bm4uc3RyaWtlPSEwOmRlbGV0ZSBubi5zdHJpa2V9cmV0dXJuIENuPU9uK0R0Lmxlbmd0aCxEdH0pLFV0fSxmcm9tX3NoZWV0OmZ1bmN0aW9uIHh0KFJ0LFV0KXt2YXIgbm49VXR8fHt9LER0PW51bGwhPW5uLmZvb3Rlcj9u''@;'; + put 'put ''bi5mb290ZXI6TXQsenQ9W251bGwhPW5uLmhlYWRlcj9ubi5oZWFkZXI6WWUsIiJdLFBuPVtdLFRuPShuZXcgRGF0ZSkudmFsdWVPZigpO1J0fHwoUnQ9e30pLFJ0WyIhcmVmIl18fChSdFsiIXJlZiJdPSJBMTpBMSIpO3ZhciBPbj12cyhSdFsiIXJlZiJdKTtpZihubi5kZW5zZT1BcnJheS5p''@;'; + put 'put ''c0FycmF5KFJ0KSxubi5za2lwZW5kKXt2YXIgWW49T24uZS5yO2U6Zm9yKDtZbj49T24ucy5yOy0tWW4pZm9yKHZhciBNcj1Pbi5lLmM7TXI+PU9uLnMuYzstLU1yKWlmKG51bGwhPSgobm4uZGVuc2U/KFJ0W1luXXx8W10pW01yXTpSdFtZMCh7cjpZbixjOk1yfSldKXx8e30pLnYpYnJlYWsg''@;'; + put 'put ''ZTtPbi5lLnI9WW47dmFyIGFpPU9uLmUuYztlOmZvcig7YWk+PU9uLnMuYzstLWFpKWZvcih2YXIgeXI9T24uZS5yO3lyPj1Pbi5zLnI7LS15cilpZihudWxsIT0oKG5uLmRlbnNlPyhSdFt5cl18fFtdKVthaV06UnRbWTAoe3I6eXIsYzphaX0pXSl8fHt9KS52KWJyZWFrIGU7T24uZS5jPWFp''@;'; + put 'put ''fXp0LnB1c2goamUoUnQsT24sbm4pKTtmb3IodmFyIGFyPU9uLnMucjthcjw9T24uZS5yOysrYXIpenQucHVzaCh4ZShSdCxPbixhcixubixQbixUbikpO3JldHVybiB6dC5wdXNoKCI8L3RhYmxlPiIrRHQpLG5uLmNzcyYmKHp0WzFdPSI8c3R5bGU+XG4iK1BuLm1hcChmdW5jdGlvbihHcix6''@;'; + put 'put ''cil7cmV0dXJuIi5zanMiK1RuKyItIit6cisiIHsiK0dyKyJ9In0pLmpvaW4oIlxuIikrIjwvc3R5bGU+IiksenQuam9pbigiIil9fX0oKTtmdW5jdGlvbiBRMChILHJlLFgpe3ZhciB3ZT17fTtpZigidW5kZWZpbmVkIj09dHlwZW9mIGdldENvbXB1dGVkU3R5bGUpcmV0dXJuIHdlO3ZhciB4''@;'; + put 'put ''ZT1nZXRDb21wdXRlZFN0eWxlKEgpO2lmKCg3MDA9PXhlWyJmb250LXdlaWdodCJdfHwiYm9sZCI9PXhlWyJmb250LXdlaWdodCJdKSYmKHdlLmJvbGQ9ITApLCh4ZVsiZm9udC1zdHlsZSJdfHwiIikubWF0Y2goL2l0YWxpYy8pJiYod2UuaXRhbGljPSEwKSwoeGVbInRleHQtZGVjb3JhdGlv''@;'; + put 'put ''biJdfHwiIikubWF0Y2goL3VuZGVybGluZS8pJiYod2UudW5kZXJsaW5lPTEpLCh4ZVsidGV4dC1kZWNvcmF0aW9uIl18fCIiKS5tYXRjaCgvbGluZS10aHJvdWdoLykmJih3ZS5zdHJpa2U9MSkscGFyc2VJbnQoeGVbImZvbnQtc2l6ZSJdKSYmKHdlLnN6PXBhcnNlRmxvYXQoeGVbImZvbnQt''@;'; + put 'put ''c2l6ZSJdKSooeGVbImZvbnQtc2l6ZSJdLm1hdGNoKC9weC8pPzMvNDoxKSkseGVbImZvbnQtZmFtaWx5Il0mJih3ZS5uYW1lPXhlWyJmb250LWZhbWlseSJdLnNwbGl0KCIsIilbMF0ucmVwbGFjZSgvXHMqIlxzKi9nLCIiKSkseGUuY29sb3Ipe3ZhciBGZT1YOCh4ZS5jb2xvci50b0xvd2Vy''@;'; + put 'put ''Q2FzZSgpLCEwKTtGZT49MCYmKHdlLmNvbG9yPXtyZ2I6RmV9KX1zd2l0Y2goeGVbInRleHQtdHJhbnNmb3JtIl0mJih3ZS50ZXh0X3RyYW5zZm9ybT14ZVsidGV4dC10cmFuc2Zvcm0iXS50b0xvd2VyQ2FzZSgpKSwibm9uZSIhPSh4ZVsidGV4dC1zaGFkb3ciXXx8Im5vbmUiKSYmKHdlLnNo''@;'; + put 'put ''YWRvdz0hMCkseGVbInRleHQtYWxpZ24iXSl7Y2FzZSJjZW50ZXIiOndlLmFsaWdubWVudD17aG9yaXpvbnRhbDoiY2VudGVyIn07YnJlYWs7Y2FzZSJyaWdodCI6d2UuYWxpZ25tZW50PXtob3Jpem9udGFsOiJyaWdodCJ9O2JyZWFrO2Nhc2UibGVmdCI6d2UuYWxpZ25tZW50PXtob3Jpem9u''@;'; + put 'put ''dGFsOiJsZWZ0In07YnJlYWs7Y2FzZSJqdXN0aWZ5Ijp3ZS5hbGlnbm1lbnQ9e2hvcml6b250YWw6Imp1c3RpZnkifX1zd2l0Y2goeGVbInZlcnRpY2FsLWFsaWduIl0pe2Nhc2UidG9wIjpjYXNlIm1pZGRsZSI6Y2FzZSJib3R0b20iOndlLmFsaWdubWVudHx8KHdlLmFsaWdubWVudD17fSks''@;'; + put 'put ''d2UuYWxpZ25tZW50LnZlcnRpY2FsPXhlWyJ2ZXJ0aWNhbC1hbGlnbiJdLCJtaWRkbGUiPT13ZS5hbGlnbm1lbnQudmVydGljYWwmJih3ZS5hbGlnbm1lbnQudmVydGljYWw9ImNlbnRlciIpO2JyZWFrO2Nhc2Uic3ViIjpjYXNlInN1cGVyIjp3ZS52YWxpZ249eGVbInZlcnRpY2FsLWFsaWdu''@;'; + put 'put ''Il0sd2Uuc3omJih3ZS5zei89LjgzKX12YXIgWmU9cmUmJmdldENvbXB1dGVkU3R5bGUocmUpO3JldHVybiBaZSYmWCYmcmUmJlsibGVmdCIsInJpZ2h0IiwidG9wIiwiYm90dG9tIl0uZm9yRWFjaChmdW5jdGlvbihqZSl7dmFyIFllPWplLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK2plLnNs''@;'; + put 'put ''aWNlKDEpLE10PVplWyJib3JkZXItIitqZSsiLXN0eWxlIl07aWYoKCJub25lIj09TXR8fCFNdCkmJihNdD1aZVsiYm9yZGVyIitZZSsiU3R5bGUiXSksIm5vbmUiIT1NdCYmTXQpe3ZhciB4dD1wYXJzZUludChaZVsiYm9yZGVyLSIramUrIi13aWR0aCJdfHxaZVsiYm9yZGVyIitZZSsiV2lk''@;'; + put 'put ''dGgiXSwxMCksUnQ9InRoaW4iO2lmKHh0PjApe3N3aXRjaChNdCl7Y2FzZSJkb3VibGUiOlJ0PSJkb3VibGUiO2JyZWFrO2Nhc2UiZGFzaGVkIjpSdD14dD49Mj8ibWVkaXVtRGFzaGVkIjoiZGFzaGVkIjticmVhaztjYXNlImRvdHRlZCI6UnQ9eHQ+PTI/Im1lZGl1bURhc2hEb3REb3QiOiJk''@;'; + put 'put ''b3R0ZWQiO2JyZWFrO2Nhc2Uic29saWQiOlJ0PXh0Pj0zPyJ0aGljayI6eHQ+PTI/Im1lZGl1bSI6InRoaW4ifWlmKHdlW2plXT17c3R5bGU6UnR9LFplWyJib3JkZXItIitqZSsiLWNvbG9yIl18fFplWyJib3JkZXIiK1llKyJDb2xvciJdKXt2YXIgVXQ9WDgoKFplWyJib3JkZXItIitqZSsi''@;'; + put 'put ''LWNvbG9yIl18fFplWyJib3JkZXIiK1llKyJDb2xvciJdKS50b0xvd2VyQ2FzZSgpLCEwKTtVdD49MCYmKHdlW2plXS5jb2xvcj17cmdiOlV0fSl9fX19KSx3ZX1mdW5jdGlvbiBDMihILHJlLFgpe3ZhciB3ZT1ILmNoaWxkTm9kZXM7aWYoMT09SC5ub2RlVHlwZSlzd2l0Y2goSC50YWdOYW1l''@;'; + put 'put ''LnRvTG93ZXJDYXNlKCkpe2Nhc2UicCI6cmUubGVuZ3RoPjAmJnJlLnB1c2goe3Q6InQiLHY6IlxuIixzOlh9KTticmVhaztjYXNlInNlbGVjdCI6cmV0dXJuIGZ1bmN0aW9uIHVvKEgscmUsWCl7cmUucHVzaCh7dDoidCIsdjpILmNoaWxkcmVuW0guc2VsZWN0ZWRJbmRleF0uaW5uZXJUZXh0''@;'; + put 'put ''LHM6WH0pfShILHJlLFgpfWlmKHdlLmxlbmd0aD4wKXt2YXIgeGU9UTAoSCxudWxsLCExKTtYJiYoWC51bmRlcmxpbmUmJih4ZS51bmRlcmxpbmU9WC51bmRlcmxpbmUpLFguc3RyaWtlJiYoeGUuc3RyaWtlPVguc3RyaWtlKSk7Zm9yKHZhciBGZT0wO0ZlPHdlLmxlbmd0aDsrK0ZlKXt0cnl7''@;'; + put 'put ''aWYod2VbRmVdLmdldEF0dHJpYnV0ZSgiYXJpYS1oaWRkZW4iKSljb250aW51ZX1jYXRjaChqZSl7fUMyKHdlW0ZlXSxyZSx4ZSl9ZGVsZXRlIHhlLnRleHRfdHJhbnNmb3JtfWVsc2UgaWYoMz09SC5ub2RlVHlwZSl7dmFyIFplPXt0OiJ0Iix2Okgubm9kZVZhbHVlLnJlcGxhY2UoL15bXG4g''@;'; + put 'put ''XSsvLCIgIikucmVwbGFjZSgvW1xuIF0rJC8sIiAiKSxzOlh9O3N3aXRjaChYLnRleHRfdHJhbnNmb3JtKXtjYXNlInVwcGVyY2FzZSI6WmUudj1aZS52LnRvVXBwZXJDYXNlKCk7YnJlYWs7Y2FzZSJsb3dlcmNhc2UiOlplLnY9WmUudi50b0xvd2VyQ2FzZSgpfShyZS5sZW5ndGg+MHx8WmUu''@;'; + put 'put ''diYmIiAiIT1aZS52KSYmcmUucHVzaChaZSl9ZWxzZSAxPT1ILm5vZGVUeXBlJiYiYnIiPT09SC50YWdOYW1lLnRvTG93ZXJDYXNlKCkmJnJlLnB1c2goe3Q6InQiLHY6IlxuIixzOlh9KX1mdW5jdGlvbiBMNihILHJlLFgsd2UseGUpe3ZhciBaZSxGZT1ILmlubmVySFRNTDtpZigidW5kZWZp''@;'; + put 'put ''bmVkIiE9dHlwZW9mIGdldENvbXB1dGVkU3R5bGUpc3dpdGNoKFplPWdldENvbXB1dGVkU3R5bGUoSCksKFplWyJ3aGl0ZS1zcGFjZSJdfHwiIikubWF0Y2goL3ByZS8pJiYoRmU9RmUucmVwbGFjZSgvXG4vZywiPGJyLz4iKSksKFplWyJ0ZXh0LXRyYW5zZm9ybSJdfHwiIikudG9Mb3dlckNh''@;'; + put 'put ''c2UoKSl7Y2FzZSJ1cHBlcmNhc2UiOkZlPUZlLnRvVXBwZXJDYXNlKCk7YnJlYWs7Y2FzZSJsb3dlcmNhc2UiOkZlPUZlLnRvTG93ZXJDYXNlKCl9dmFyIGplPWZ1bmN0aW9uIGZUKEgscmUsWCx3ZSl7dmFyIHhlPXt0OiJzIix2OnJlfSxGZT0iIjtpZihIKXtYPUguZ2V0QXR0cmlidXRlKCJk''@;'; + put 'put ''YXRhLXQiKXx8SC5nZXRBdHRyaWJ1dGUoInQiKTt2YXIgWmU9SC5nZXRBdHRyaWJ1dGUoImRhdGEtdiIpfHxILmdldEF0dHJpYnV0ZSgidiIpO2lmKG51bGwhPShGZT1ILmdldEF0dHJpYnV0ZSgiZGF0YS16Iil8fEguZ2V0QXR0cmlidXRlKCJ6IikpJiYoeGUuej1GZSksbnVsbCE9WCYmbnVs''@;'; + put 'put ''bCE9WmUpcmV0dXJuIHhlLnQ9WCx4ZS52PVplLHhlfXJldHVybiBudWxsIT1yZSYmKDA9PXJlLmxlbmd0aD94ZS50PVh8fCJ6Ijp3ZS5yYXd8fCFyZS50cmltKCkubGVuZ3RofHwicyI9PVh8fCh4ZT1GcihyZSx3ZSkpKSxGZSYmKHhlLno9RmUpLHhlfShILE1hKEZlKSxYLHhlKTtpZigidW5k''@;'; + put 'put ''ZWZpbmVkIiE9dHlwZW9mIGdldENvbXB1dGVkU3R5bGUmJihqZS5zPVEwKEgscmUseGUuYm9yZGVycyksZGVsZXRlIGplLnMudGV4dF90cmFuc2Zvcm0sSC5jaGlsZE5vZGVzLmxlbmd0aD4xfHwxPT1ILmNoaWxkTm9kZXMubGVuZ3RoJiYzIT1ILmNoaWxkTm9kZXNbMF0ubm9kZVR5cGUpKXN3''@;'; + put 'put ''aXRjaChDMihILGplLlI9W10sbnVsbCksamUuUiYmamUuUltqZS5SLmxlbmd0aC0xXSYmIlxuIj09amUuUltqZS5SLmxlbmd0aC0xXS52JiZqZS5SLmxlbmd0aC0tLChaZVsidGV4dC10cmFuc2Zvcm0iXXx8IiIpLnRvTG93ZXJDYXNlKCkpe2Nhc2UidXBwZXJjYXNlIjpqZS5SLmZvckVhY2go''@;'; + put 'put ''ZnVuY3Rpb24oVXQpe1V0LnY9VXQudi50b1VwcGVyQ2FzZSgpfSk7YnJlYWs7Y2FzZSJsb3dlcmNhc2UiOmplLlIuZm9yRWFjaChmdW5jdGlvbihVdCl7VXQudj1VdC52LnRvTG93ZXJDYXNlKCl9KX1pZigicyI9PWplLnQpe3ZhciBZZT1qZS52Lm1hdGNoKC9cbi8pOyFZZSYmamUuUiYmamUu''@;'; + put 'put ''Ui5mb3JFYWNoKGZ1bmN0aW9uKFV0KXsic3RyaW5nIj09dHlwZW9mIFV0LnYmJlV0LnYubWF0Y2goL1xuLykmJihZZT0hMCl9KSwicyI9PWplLnQmJlllJiYoamUuc3x8KGplLnM9e30pLGplLnMuYWxpZ25tZW50fHwoamUucy5hbGlnbm1lbnQ9e30pLGplLnMuYWxpZ25tZW50LndyYXBUZXh0''@;'; + put 'put ''PSEwKX1pZihyZSl7dmFyIE10PSIiLHh0PXJlLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJBIik7aWYoeHQmJnh0Lmxlbmd0aClmb3IodmFyIFJ0PTA7UnQ8eHQubGVuZ3RoJiYoIXh0W1J0XS5oYXNBdHRyaWJ1dGUoImhyZWYiKXx8IiMiPT0oTXQ9eHRbUnRdLmdldEF0dHJpYnV0ZSgiaHJlZiIp''@;'; + put 'put ''KS5jaGFyQXQoMCkpOysrUnQpO010JiYiIyIhPU10LmNoYXJBdCgwKSYmKGplLmw9e1RhcmdldDpNdH0pfXJldHVybiBqZX1mdW5jdGlvbiBWaChILHJlLFgpe3ZhciB4ZSx3ZT1yZS5yb3dzO2lmKCF3ZSl7aWYoWCYmbnVsbCE9WC5vcmlnaW4pdGhyb3ciVW5zdXBwb3J0ZWQgb3JpZ2luIHdo''@;'; + put 'put ''ZW4gIityZS50YWdOYW1lKyIgaXMgbm90IGEgVEFCTEUiO3JldHVybiBmdW5jdGlvbiBWUChILHJlLFgpe1g9SlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShYfHx7fSkpO3ZhciBGZT17czp7cjowLGM6MH0sZTp7cjowLGM6MH19O0hbIiFtZXJnZXMiXXx8KEhbIiFtZXJnZXMiXT1bXSk7Zm9y''@;'; + put 'put ''KHZhciBqZSxaZT1yZS5jaGlsZHJlbixZZT0wLE10PTA7TXQ8WmUubGVuZ3RoOysrTXQpe3ZhciBVdCx4dD1aZVtNdF0sUnQ9IiI7dHJ5eyJ1bmRlZmluZWQiIT10eXBlb2YgZ2V0Q29tcHV0ZWRTdHlsZT9VdD1nZXRDb21wdXRlZFN0eWxlOnh0Lm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcm''@;'; + put 'put ''JiJmdW5jdGlvbiI9PXR5cGVvZiB4dC5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUmJihVdD14dC5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUpfWNhdGNoKG5uKXt9aWYoIVV0fHwibm9uZSIhPVV0KHh0KS5kaXNwbGF5KXN3aXRj''@;'; + put 'put ''aCh4dC50YWdOYW1lLnRvVXBwZXJDYXNlKCkpe2Nhc2UiVEFCTEUiOlllPS0xLEhbIiFyZWYiXSYmKFgub3JpZ2luPS0xKSxWaChILHh0LFgpO2JyZWFrO2Nhc2UiQlIiOmNhc2UiSFIiOlllPS0xLEhbIiFyZWYiXT8oKysoRmU9dnMoSFsiIXJlZiJdKSkuZS5yLEhbIiFyZWYiXT1mYShGZSkp''@;'; + put 'put ''OkhbIiFyZWYiXT0iQTE6QTEiO2JyZWFrO2Nhc2UiRElWIjpjYXNlIlAiOmNhc2UiSDEiOmNhc2UiSDIiOmNhc2UiSDMiOmNhc2UiSDQiOmNhc2UiSDUiOmNhc2UiSDYiOlllPS0xLGplPUw2KHh0LG51bGwsIiIsMCxYKSxIWyIhcmVmIl0/KFgub3JpZ2luPS0xLGxmKEgsW1tqZV1dLFgpKToo''@;'; + put 'put ''SFsiIXJlZiJdPSJBMSIsQXJyYXkuaXNBcnJheShIKT8oSFswXXx8KEhbMF09W10pLEhbMF1bMF09amUpOkguQTE9amUpLEhbIiFyb3dzIl18fChIWyIhcm93cyJdPVtdKSxVdCYmKEZlPXZzKEhbIiFyZWYiXSksKFJ0PVV0KHh0KS5oZWlnaHQpJiYiYXV0byIhPVJ0JiYoSFsiIXJvd3MiXVtG''@;'; + put 'put ''ZS5lLnJdPXtocHQ6cGFyc2VJbnQoUnQsMTApfSkpO2JyZWFrO2Nhc2UiU1BBTiI6Y2FzZSJBIjpjYXNlIkIiOmNhc2UiRU0iOmNhc2UiSSI6Y2FzZSJGT05UIjpjYXNlIlMiOmNhc2UiU1VCIjpjYXNlIlNVUCI6Y2FzZSJVIjpqZT1MNih4dCxudWxsLCIiLDAsWCksSFsiIXJlZiJdfHwoSFsi''@;'; + put 'put ''IXJlZiJdPSJBMTpBMSIpLGxmKEgsW1tqZV1dLHtvcmlnaW46WTAoe3I6KFllPDA/MTowKSsoRmU9dnMoSFsiIXJlZiJdKSkuZS5yLGM6KytZZX0pfSk7YnJlYWs7Y2FzZSJETCI6Y2FzZSJVTCI6Y2FzZSJPTCI6WWU9LTEsY29uc29sZS5lcnJvcigiSFRNTCBDb252ZXJzaW9uIGRvZXMgbm90''@;'; + put 'put ''IHN1cHBvcnQgbGlzdCBlbGVtZW50ICIreHQudGFnTmFtZS50b1VwcGVyQ2FzZSgpKTticmVhaztkZWZhdWx0OlllPS0xLGNvbnNvbGUuZXJyb3IoIlNraXBwaW5nICIreHQudGFnTmFtZS50b1VwcGVyQ2FzZSgpKX19cmV0dXJuIEh9KEgscmUsWCl9dHJ5eyJ1bmRlZmluZWQiIT10eXBlb2Yg''@;'; + put 'put ''Z2V0Q29tcHV0ZWRTdHlsZT94ZT1nZXRDb21wdXRlZFN0eWxlOnJlLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcmJiJmdW5jdGlvbiI9PXR5cGVvZiByZS5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUmJih4ZT1yZS5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3''@;'; + put 'put ''LmdldENvbXB1dGVkU3R5bGUpfWNhdGNoKCQwKXt9dmFyIEZlPVh8fHt9LFplPTAsamU9MDtpZihudWxsIT1GZS5vcmlnaW4paWYoIm51bWJlciI9PXR5cGVvZiBGZS5vcmlnaW4pWmU9RmUub3JpZ2luO2Vsc2V7dmFyIFllPSJzdHJpbmciPT10eXBlb2YgRmUub3JpZ2luP3VsKEZlLm9yaWdp''@;'; + put 'put ''bik6RmUub3JpZ2luO1plPVllLnIsamU9WWUuY312YXIgTXQ9TWF0aC5taW4oRmUuc2hlZXRSb3dzfHwxZTcsd2UubGVuZ3RoKSx4dD17czp7cjowLGM6MH0sZTp7cjpaZSxjOmplfX07aWYoSFsiIXJlZiJdKXt2YXIgUnQ9dnMoSFsiIXJlZiJdKTt4dC5zLnI9TWF0aC5taW4oeHQucy5yLFJ0''@;'; + put 'put ''LnMucikseHQucy5jPU1hdGgubWluKHh0LnMuYyxSdC5zLmMpLHh0LmUucj1NYXRoLm1heCh4dC5lLnIsUnQuZS5yKSx4dC5lLmM9TWF0aC5tYXgoeHQuZS5jLFJ0LmUuYyksLTE9PVplJiYoeHQuZS5yPVplPVJ0LmUucisxKX12YXIgVXQ9W10sbm49MCxDbj1IWyIhcm93cyJdfHwoSFsiIXJv''@;'; + put 'put ''d3MiXT1bXSksRHQ9MCx6dD0wLFBuPTAsVG49MCxPbj0wLFluPTA7Zm9yKEhbIiFjb2xzIl18fChIWyIhY29scyJdPVtdKTtEdDx3ZS5sZW5ndGgmJnp0PE10OysrRHQpe2Zvcih2YXIgTXI9d2VbRHRdLGFpPU1yLnBhcmVudEVsZW1lbnQ7IlRBQkxFIiE9YWkudGFnTmFtZS50b1VwcGVyQ2Fz''@;'; + put 'put ''ZSgpOylhaT1haS5wYXJlbnRFbGVtZW50O2lmKGFpPT1yZSl7ZTppZih2b2lkIDAhPT14ZSl7dmFyIHlyPXhlKE1yKTtpZihudWxsPT15cilicmVhayBlO2lmKHlyLnN0eWxlfHwoeXIuc3R5bGU9e30pLEZlLmRpc3BsYXkmJiJub25lIj09KHlyLmRpc3BsYXl8fHlyLnN0eWxlLmRpc3BsYXkp''@;'; + put 'put ''KWNvbnRpbnVlOyJub25lIj09KHlyLmRpc3BsYXl8fHlyLnN0eWxlLmRpc3BsYXkpJiYoKENuW3p0XXx8KENuW3p0XT17fSkpLmhpZGRlbj0hMCl9dmFyIGFyPU1yLmNlbGxzO2ZvcihQbj1Ubj0wO1BuPGFyLmxlbmd0aDsrK1BuKXt2YXIgR3I9YXJbUG5dLHpyPW51bGw7aWYodm9pZCAwPT09''@;'; + put 'put ''eGV8fChudWxsPT16ciYmKHpyPXhlKEdyKSksenIuc3R5bGV8fCh6ci5zdHlsZT17fSksIUZlLmRpc3BsYXl8fG51bGw9PXpyfHwibm9uZSIhPSh6ci5kaXNwbGF5fHx6ci5zdHlsZS5kaXNwbGF5KSkpe2ZvcihZbj0rR3IuZ2V0QXR0cmlidXRlKCJjb2xzcGFuIil8fDEsbm49MDtubjxVdC5s''@;'; + put 'put ''ZW5ndGg7Kytubil7dmFyIHFyPVV0W25uXTtxci5zLmM9PVRuK2plJiZxci5zLnI8enQrWmUmJnp0K1plPD1xci5lLnImJihUbj1xci5lLmMrMS1qZSxubj0tMSl9KChPbj0rR3IuZ2V0QXR0cmlidXRlKCJyb3dzcGFuIil8fDEpPjF8fFluPjEpJiZVdC5wdXNoKHtzOntyOnp0K1plLGM6VG4r''@;'; + put 'put ''amV9LGU6e3I6enQrWmUrKE9ufHwxKS0xLGM6VG4ramUrKFlufHwxKS0xfX0pO3ZhciBvaT1Hci5nZXRBdHRyaWJ1dGUoInQiKXx8IiIsY3I9R3IuZ2V0QXR0cmlidXRlKCJiZ2NvbG9yIik7ZTppZih2b2lkIDAhPT14ZSl7aWYobnVsbD09enImJih6cj14ZShHcikpLG51bGw9PXpyKWJyZWFr''@;'; + put 'put ''IGU7aWYoenIuc3R5bGV8fCh6ci5zdHlsZT17fSksMT09WW4mJnpyLndpZHRoJiYoSFsiIWNvbHMiXVtUbitqZV09SFsiIWNvbHMiXVtUbitqZV18fHt9LHpyLndpZHRoLm1hdGNoKC9weC8pP0hbIiFjb2xzIl1bVG4ramVdLndweD1NYXRoLm1heChwYXJzZUludCh6ci53aWR0aCwxMCkrNSxI''@;'; + put 'put ''WyIhY29scyJdW1RuK2plXS53cHh8fDApOnpyLndpZHRoLm1hdGNoKC9wdC8pJiYoSFsiIWNvbHMiXVtUbitqZV0ud3B4PU1hdGgubWF4KDQqcGFyc2VJbnQoenIud2lkdGgsMTApLzMrNSxIWyIhY29scyJdW1RuK2plXS53cHh8fDApKSksT248PTEpe0NuW3p0K1plXXx8KENuW3p0K1plXT17''@;'; + put 'put ''fSk7dmFyIGRpPXpyLmhlaWdodDsoZGk9ZGkubWF0Y2goL3B0Lyk/QWYocGFyc2VJbnQoZGksMTApKTpwYXJzZUludChkaSwxMCkpPihDblt6dCtaZV0uaHB4fHxBZihDblt6dCtaZV0uaHB0KXx8MCkmJihkZWxldGUgQ25benQrWmVdLmhwdCxDblt6dCtaZV0uaHB4PWRpKX19dmFyIHYwPUdy''@;'; + put 'put ''O2lmKEdyLmZpcnN0RWxlbWVudENoaWxkJiYxPT1Hci5jaGlsZHJlbi5sZW5ndGgmJiJzcGFuIj09R3IuZmlyc3RFbGVtZW50Q2hpbGQubm9kZU5hbWUudG9Mb3dlckNhc2UoKSl7Zm9yKHZhciBVaT0wLHRvPUdyLmNoaWxkTm9kZXMsQTA9MDtBMDx0by5sZW5ndGg7KytBMCkzPT10b1tBMF0u''@;'; + put 'put ''bm9kZVR5cGUmJisrVWk7MD09VWkmJihHcj1Hci5maXJzdEVsZW1lbnRDaGlsZCl9dmFyIHdpPUw2KEdyLHYwLG9pLDAsRmUpO2lmKHpyKXt2YXIgWXI9eGUoR3IpO2lmKFlyJiYhWXIuc3R5bGUmJihZci5zdHlsZT17fSksKFlyJiZZclsiYmFja2dyb3VuZC1jb2xvciJdfHx6clsiYmFja2dy''@;'; + put 'put ''b3VuZC1jb2xvciJdKSYmKHdpLnN8fCh3aS5zPXt9KSwhd2kucy5mZ0NvbG9yKSl0cnl7dmFyIEVpPVlyJiZZclsiYmFja2dyb3VuZC1jb2xvciJdfHx6clsiYmFja2dyb3VuZC1jb2xvciJdO0VpLm1hdGNoKC9yZ2JhWyhdXHMqMC4qWyldL2kpJiYoRWk9enJbImJhY2tncm91bmQtY29sb3Ii''@;'; + put 'put ''XSk7dmFyIGhpPVg4KEVpLnRvTG93ZXJDYXNlKCksITApO2hpPj0wJiYod2kucy5mZ0NvbG9yPXtyZ2I6aGl9KX1jYXRjaCgkMCl7fXN3aXRjaCh6clsidmVydGljYWwtYWxpZ24iXSl7Y2FzZSJtaWRkbGUiOmNhc2UiYmFzZWxpbmUiOndpLnN8fCh3aS5zPXt9KSx3aS5zLmFsaWdubWVudHx8''@;'; + put 'put ''KHdpLnMuYWxpZ25tZW50PXt9KSx3aS5zLmFsaWdubWVudC52ZXJ0aWNhbD0iY2VudGVyIn19aWYoY3ImJih3aS5zfHwod2kucz17fSksIXdpLnMuZmdDb2xvcikpdHJ5e3ZhciBOcj1YOChjci50b0xvd2VyQ2FzZSgpLCEwKTtOcj49MCYmKHdpLnMuZmdDb2xvcj17cmdiOk5yfSl9Y2F0Y2go''@;'; + put 'put ''JDApe31pZihGZS5kZW5zZT8oSFt6dCtaZV18fChIW3p0K1plXT1bXSksSFt6dCtaZV1bVG4ramVdPXdpKTpIW1kwKHtjOlRuK2plLHI6enQrWmV9KV09d2ksT24+MXx8WW4+MSlmb3IodmFyIGtpPXp0O2tpPHp0K09uOysra2kpZm9yKHZhciBOMD1UbjtOMDxUbitZbjsrK04wKXp0PT1raSYm''@;'; + put 'put ''VG49PU4wfHwoRmUuZGVuc2U/KEhba2krWmVdfHwoSFtraStaZV09W10pLEhba2krWmVdW04wK2plXT17dDoieiIsczpsbih3aS5zfHx7fSl9KTpIW1kwKHtjOk4wK2plLHI6a2krWmV9KV09e3Q6InoiLHM6bG4od2kuc3x8e30pfSk7eHQuZS5jPFRuK2plJiYoeHQuZS5jPVRuK2plKSxUbis9''@;'; + put 'put ''WW59fSsrenR9fWlmKFV0Lmxlbmd0aCYmKEhbIiFtZXJnZXMiXT0oSFsiIW1lcmdlcyJdfHxbXSkuY29uY2F0KFV0KSkseHQuZS5yPU1hdGgubWF4KHh0LmUucix6dC0xK1plKSxIWyIhcmVmIl09ZmEoeHQpLHp0Pj1NdCYmKEhbIiFmdWxscmVmIl09ZmEoKHh0LmUucj13ZS5sZW5ndGgtRHQr''@;'; + put 'put ''enQtMStaZSx4dCkpKSxGZS5ib3JkZXJzKWZvcih6dD14dC5zLnI7enQ8PXh0LmUucjsrK3p0KWZvcihUbj14dC5zLmM7VG48PXh0LmUuYzsrK1RuKWlmKCFGZS5kZW5zZSl7dmFyIHQwPUhbWTAoe3I6enQsYzpUbn0pXTtpZighdDB8fCF0MC5zKWNvbnRpbnVlO2lmKHp0PjApe3ZhciBpbz1I''@;'; + put 'put ''W1kwKHtyOnp0LTEsYzpUbn0pXTtpbyYmaW8ucyYmaW8ucy5ib3R0b20mJmRlbGV0ZSB0MC5zLnRvcH1pZihUbj4wKXt2YXIgb2E9SFtZMCh7cjp6dCxjOlRuLTF9KV07b2EmJm9hLnMmJm9hLnMuYm90dG9tJiZkZWxldGUgdDAucy5sZWZ0fX1yZXR1cm4gSH1mdW5jdGlvbiByQyhILHJlKXty''@;'; + put 'put ''ZXR1cm4gVmgoKHJlfHx7fSkuZGVuc2U/W106e30sSCxyZSl9dmFyIGlDPWZ1bmN0aW9uKCl7dmFyIEg9ZnVuY3Rpb24od2UseGUsRmUpe3ZhciBaZT13ZS5yZXBsYWNlKC9bXHRcclxuXS9nLCIgIikudHJpbSgpLnJlcGxhY2UoLyArL2csIiAiKS5yZXBsYWNlKC88dGV4dDpzXC8+L2csIiAi''@;'; + put 'put ''KS5yZXBsYWNlKC88dGV4dDpzIHRleHQ6Yz0iKFxkKykiXC8+L2csZnVuY3Rpb24oeHQsUnQpe3JldHVybiBBcnJheShwYXJzZUludChSdCwxMCkrMSkuam9pbigiICIpfSkucmVwbGFjZSgvPHRleHQ6dGFiW14+XSpcLz4vZywiXHQiKS5yZXBsYWNlKC88dGV4dDpsaW5lLWJyZWFrXC8+L2cs''@;'; + put 'put ''IlxuIiksamU9Z3IoWmUucmVwbGFjZSgvPFtePl0qPi9nLCIiKSksWWU9W10sTXQ9MDtyZXR1cm4gWmUucmVwbGFjZSgvKDx0ZXh0OnNwYW4uKj8+KSguKj8pPFtcL110ZXh0OnNwYW4+L2csZnVuY3Rpb24oeHQsUnQsVXQsbm4pe25uIT1NdCYmWWUucHVzaCh7dDoicyIsdjpncihaZS5zbGlj''@;'; + put 'put ''ZShNdCxubikpfSk7dmFyIENuPXt0OiJzIix2OmdyKFV0KX0sRHQ9ZW4oUnQpWyJzdHlsZS1uYW1lIl07cmV0dXJuIER0JiZGZVtEdF0mJihDbi5zPWxuKEZlW0R0XSkpLFllLnB1c2goQ24pLE10PW5uK3h0Lmxlbmd0aCwiIn0pLE10PFplLmxlbmd0aCYmWWUucHVzaCh7dDoicyIsdjpnciha''@;'; + put 'put ''ZS5zbGljZShNdCkpfSksW2plLFllXX0scmU9e2RheTpbImQiLCJkZCJdLG1vbnRoOlsibSIsIm1tIl0seWVhcjpbInkiLCJ5eSJdLGhvdXJzOlsiaCIsImhoIl0sbWludXRlczpbIm0iLCJtbSJdLHNlY29uZHM6WyJzIiwic3MiXSwiYW0tcG0iOlsiQS9QIiwiQU0vUE0iXSwiZGF5LW9mLXdl''@;'; + put 'put ''ZWsiOlsiZGRkIiwiZGRkZCJdLGVyYTpbImUiLCJlZSJdLHF1YXJ0ZXI6WyJcXFFtIiwnbVxcInRoIHF1YXJ0ZXIiJ119LFg9ZnVuY3Rpb24od2UseGUpe3ZhciBGZT1lbih3ZS5zbGljZSgwLHdlLmluZGV4T2YoIj4iKSkpLFplPXdlLnNsaWNlKHdlLmluZGV4T2YoIj4iKSsxKSxqZT17bmFt''@;'; + put 'put ''ZTpGZS5uYW1lLGZhbWlseTpGZS5mYW1pbHl9O1tbInBhcmVudCIsInBhcmVudC1zdHlsZS1uYW1lIl0sWyJkYXRhbmFtZSIsImRhdGEtc3R5bGUtbmFtZSJdLFsibXBuYW1lIiwibWFzdGVyLXBhZ2UtbmFtZSJdXS5mb3JFYWNoKGZ1bmN0aW9uKE10KXtGZVtNdFsxXV0mJihqZVtNdFswXV09''@;'; + put 'put ''RmVbTXRbMV1dKX0pO3ZhciBZZT17fTtaZS5yZXBsYWNlKEd0LGZ1bmN0aW9uKE10KXt2YXIgeHQ9ZW4oTXQpO2lmKCI8c3R5bGU6dGV4dC1wcm9wZXJ0aWVzIj09PXh0WzBdKXtpZih4dFsiZm9udC13ZWlnaHQiXSYmKFllLmJvbGQ9KygiYm9sZCI9PXh0WyJmb250LXdlaWdodCJdfHwiNzAw''@;'; + put 'put ''Ij09eHRbImZvbnQtd2VpZ2h0Il0pKSwoIml0YWxpYyI9PXh0WyJmb250LXN0eWxlIl18fCJvYmxpcXVlIj09eHRbImZvbnQtc3R5bGUiXSkmJihZZS5pdGFsaWM9MSksIm5vbmUiIT0oeHRbInRleHQtdW5kZXJsaW5lLXN0eWxlIl18fCJub25lIik/WWUudW5kZXJsaW5lPSJkb3VibGUiPT14''@;'; + put 'put ''dFsidGV4dC11bmRlcmxpbmUtdHlwZSJdPzI6MTooeHRbInRleHQtdW5kZXJsaW5lLXN0eWxlIl18fCJub25lIj09eHRbInRleHQtdW5kZXJsaW5lLXR5cGUiXSkmJihZZS51bmRlcmxpbmU9MCksKHh0WyJmb250LXNpemUiXXx8IiIpLm1hdGNoKC9wdCQvKSYmKFllLnN6PSt4dFsiZm9udC1z''@;'; + put 'put ''aXplIl0ucmVwbGFjZSgicHQiLCIiKSksIm5vbmUiIT0oeHRbInRleHQtbGluZS10aHJvdWdoLXN0eWxlIl18fCJub25lIikmJihZZS5zdHJpa2U9MSkseHRbImZvbnQtbmFtZSJdJiYoWWUubmFtZT14dFsiZm9udC1uYW1lIl0pLHh0LmNvbG9yKXt2YXIgUnQ9WDgoeHQuY29sb3IsITApO1J0''@;'; + put 'put ''Pj0wJiYoWWUuY29sb3I9UnQpfXN3aXRjaCh4dFsidGV4dC1wb3NpdGlvbiJdKXtjYXNlInN1cGVyIjpZZS52YWxpZ249InN1cGVyIjticmVhaztjYXNlInN1YiI6WWUudmFsaWduPSJzdWIiO2JyZWFrO2RlZmF1bHQ6KHh0WyJ0ZXh0LXBvc2l0aW9uIl18fCIiKS5tYXRjaCgvJS8pJiYoWWUu''@;'; + put 'put ''dmFsaWduPSItIj09eHRbInRleHQtcG9zaXRpb24iXS5jaGFyQXQoMCk/InN1YiI6InN1cGVyIil9Im5vbmUiIT0oeHRbInRleHQtc2hhZG93Il18fCJub25lIikmJihZZS5zaGFkb3c9MSl9cmV0dXJuIiJ9KSx4ZVtGZS5uYW1lXT1ZZX07cmV0dXJuIGZ1bmN0aW9uKHhlLEZlKXt2YXIgTXQs''@;'; + put 'put ''eHQsQ24sRHQsT24sWW4sWmU9RmV8fHt9LGplPUM1KHhlKSxZZT1bXSxSdD17bmFtZToiIn0sVXQ9IiIsbm49MCx6dD17fSxQbj1bXSxUbj1aZS5kZW5zZT9bXTp7fSxNcj17dmFsdWU6IiJ9LGFpPSIiLHlyPTAsR3I9W10senI9LTEscXI9LTEsb2k9e3M6e3I6MWU2LGM6MWU3fSxlOntyOjAs''@;'; + put 'put ''YzowfX0sY3I9MCxkaT17fSx2MD1bXSxVaT17fSx0bz0wLEEwPTAsd2k9W10sWXI9MSxFaT0xLGhpPVtdLE5yPXtOYW1lczpbXX0sa2k9e30sTjA9WyIiLCIiXSx0MD1bXSxpbz17fSxvYT17fSwkMD0wLE5hPSIiLGpvPTAsd2E9ITEsYW89ITEseDA9MDtmb3IoTmgubGFzdEluZGV4PTAsamU9''@;'; + put 'put ''amUucmVwbGFjZSgvPCEtLShbXHNcU10qPyktLT4vZ20sIiIpLnJlcGxhY2UoLzwhRE9DVFlQRVteXFtdKlxbW15cXV0qXF0+L2dtLCIiKTtPbj1OaC5leGVjKGplKTspc3dpdGNoKE9uWzNdPU9uWzNdLnJlcGxhY2UoL18uKiQvLCIiKSl7Y2FzZSJ0YWJsZSI6Y2FzZSJcdTVkZTVcdTRmNWNc''@;'; + put 'put ''dTg4NjgiOiIvIj09PU9uWzFdPyhUblsiIXJlZiJdPW9pLmUuYz49b2kucy5jJiZvaS5lLnI+PW9pLnMucj9mYShvaSk6IkExOkExIixaZS5zaGVldFJvd3M+MCYmWmUuc2hlZXRSb3dzPD1vaS5lLnImJihUblsiIWZ1bGxyZWYiXT1UblsiIXJlZiJdLG9pLmUucj1aZS5zaGVldFJvd3MtMSxU''@;'; + put 'put ''blsiIXJlZiJdPWZhKG9pKSksdjAubGVuZ3RoJiYoVG5bIiFtZXJnZXMiXT12MCksd2kubGVuZ3RoJiYoVG5bIiFyb3dzIl09d2kpLENuLm5hbWU9Q24uXHU1NDBkXHU3OWYwfHxDbi5uYW1lLCJ1bmRlZmluZWQiIT10eXBlb2YgSlNPTiYmSlNPTi5zdHJpbmdpZnkoQ24pLFBuLnB1c2goQ24u''@;'; + put 'put ''bmFtZSksenRbQ24ubmFtZV09VG4sYW89ITEpOiIvIiE9PU9uWzBdLmNoYXJBdChPblswXS5sZW5ndGgtMikmJihDbj1lbihPblswXSwhMSksenI9cXI9LTEsb2kucy5yPW9pLnMuYz0xZTcsb2kuZS5yPW9pLmUuYz0wLFRuPVplLmRlbnNlP1tdOnt9LHYwPVtdLHdpPVtdLGFvPSEwKTticmVh''@;'; + put 'put ''aztjYXNlInRhYmxlLXJvdy1ncm91cCI6Ii8iPT09T25bMV0/LS1jcjorK2NyO2JyZWFrO2Nhc2UidGFibGUtcm93IjpjYXNlIlx1ODg0YyI6aWYoIi8iPT09T25bMV0pe3pyKz1ZcixZcj0xO2JyZWFrfWlmKChEdD1lbihPblswXSwhMSkpLlx1ODg0Y1x1NTNmNz96cj1EdC5cdTg4NGNcdTUz''@;'; + put 'put ''ZjctMTotMT09enImJih6cj0wKSwoWXI9K0R0WyJudW1iZXItcm93cy1yZXBlYXRlZCJdfHwxKTwxMClmb3IoeDA9MDt4MDxZcjsrK3gwKWNyPjAmJih3aVt6cit4MF09e2xldmVsOmNyfSk7cXI9LTE7YnJlYWs7Y2FzZSJjb3ZlcmVkLXRhYmxlLWNlbGwiOiIvIiE9PU9uWzFdJiYrK3FyLFpl''@;'; + put 'put ''LnNoZWV0U3R1YnMmJihaZS5kZW5zZT8oVG5benJdfHwoVG5benJdPVtdKSxUblt6cl1bcXJdPXt0OiJ6In0pOlRuW1kwKHtyOnpyLGM6cXJ9KV09e3Q6InoifSksYWk9IiIsR3I9W107YnJlYWs7Y2FzZSJ0YWJsZS1jZWxsIjpjYXNlIlx1NjU3MFx1NjM2ZSI6aWYoIi8iPT09T25bMF0uY2hh''@;'; + put 'put ''ckF0KE9uWzBdLmxlbmd0aC0yKSkrK3FyLE1yPWVuKE9uWzBdLCExKSxFaT1wYXJzZUludChNclsibnVtYmVyLWNvbHVtbnMtcmVwZWF0ZWQiXXx8IjEiLDEwKSxZbj17dDoieiIsdjpudWxsfSxNci5mb3JtdWxhJiYwIT1aZS5jZWxsRm9ybXVsYSYmKFluLmY9TGgoZ3IoTXIuZm9ybXVsYSkp''@;'; + put 'put ''KSwic3RyaW5nIj09KE1yLlx1NjU3MFx1NjM2ZVx1N2M3Ylx1NTc4Ynx8TXJbInZhbHVlLXR5cGUiXSkmJihZbi50PSJzIixZbi52PWdyKE1yWyJzdHJpbmctdmFsdWUiXXx8IiIpLFplLmRlbnNlPyhUblt6cl18fChUblt6cl09W10pLFRuW3pyXVtxcl09WW4pOlRuW1kwKHtyOnpyLGM6cXJ9''@;'; + put 'put ''KV09WW4pLHFyKz1FaS0xO2Vsc2UgaWYoIi8iIT09T25bMV0pe0VpPTE7dmFyIGgwPVlyP3pyK1lyLTE6enI7aWYoKytxcj5vaS5lLmMmJihvaS5lLmM9cXIpLHFyPG9pLnMuYyYmKG9pLnMuYz1xciksenI8b2kucy5yJiYob2kucy5yPXpyKSxoMD5vaS5lLnImJihvaS5lLnI9aDApLHQwPVtd''@;'; + put 'put ''LGlvPXt9LFluPXt0OihNcj1lbihPblswXSwhMSkpLlx1NjU3MFx1NjM2ZVx1N2M3Ylx1NTc4Ynx8TXJbInZhbHVlLXR5cGUiXSx2Om51bGx9LFplLmNlbGxGb3JtdWxhKWlmKE1yLmZvcm11bGEmJihNci5mb3JtdWxhPWdyKE1yLmZvcm11bGEpKSxNclsibnVtYmVyLW1hdHJpeC1jb2x1bW5z''@;'; + put 'put ''LXNwYW5uZWQiXSYmTXJbIm51bWJlci1tYXRyaXgtcm93cy1zcGFubmVkIl0mJih0bz1wYXJzZUludChNclsibnVtYmVyLW1hdHJpeC1yb3dzLXNwYW5uZWQiXSwxMCl8fDAsQTA9cGFyc2VJbnQoTXJbIm51bWJlci1tYXRyaXgtY29sdW1ucy1zcGFubmVkIl0sMTApfHwwLFluLkY9ZmEoVWk9''@;'; + put 'put ''e3M6e3I6enIsYzpxcn0sZTp7cjp6cit0by0xLGM6cXIrQTAtMX19KSxoaS5wdXNoKFtVaSxZbi5GXSkpLE1yLmZvcm11bGEpWW4uZj1MaChNci5mb3JtdWxhKTtlbHNlIGZvcih4MD0wO3gwPGhpLmxlbmd0aDsrK3gwKXpyPj1oaVt4MF1bMF0ucy5yJiZ6cjw9aGlbeDBdWzBdLmUuciYmcXI+''@;'; + put 'put ''PWhpW3gwXVswXS5zLmMmJnFyPD1oaVt4MF1bMF0uZS5jJiYoWW4uRj1oaVt4MF1bMV0pO3N3aXRjaCgoTXJbIm51bWJlci1jb2x1bW5zLXNwYW5uZWQiXXx8TXJbIm51bWJlci1yb3dzLXNwYW5uZWQiXSkmJih0bz1wYXJzZUludChNclsibnVtYmVyLXJvd3Mtc3Bhbm5lZCJdLDEwKXx8MCxB''@;'; + put 'put ''MD1wYXJzZUludChNclsibnVtYmVyLWNvbHVtbnMtc3Bhbm5lZCJdLDEwKXx8MCx2MC5wdXNoKFVpPXtzOntyOnpyLGM6cXJ9LGU6e3I6enIrdG8tMSxjOnFyK0EwLTF9fSkpLE1yWyJudW1iZXItY29sdW1ucy1yZXBlYXRlZCJdJiYoRWk9cGFyc2VJbnQoTXJbIm51bWJlci1jb2x1bW5zLXJl''@;'; + put 'put ''cGVhdGVkIl0sMTApKSxZbi50KXtjYXNlImJvb2xlYW4iOlluLnQ9ImIiLFluLnY9RGkoTXJbImJvb2xlYW4tdmFsdWUiXSk7YnJlYWs7Y2FzZSJmbG9hdCI6Y2FzZSJwZXJjZW50YWdlIjpjYXNlImN1cnJlbmN5IjpZbi50PSJuIixZbi52PXBhcnNlRmxvYXQoTXIudmFsdWUpO2JyZWFrO2Nh''@;'; + put 'put ''c2UiZGF0ZSI6WW4udD0iZCIsWW4udj1kbihNclsiZGF0ZS12YWx1ZSJdKSxaZS5jZWxsRGF0ZXN8fChZbi50PSJuIixZbi52PWZ0KFluLnYpKSxZbi56PSJtL2QveXkiO2JyZWFrO2Nhc2UidGltZSI6WW4udD0ibiIsWW4udj1qdChNclsidGltZS12YWx1ZSJdKS84NjQwMCxaZS5jZWxsRGF0''@;'; + put 'put ''ZXMmJihZbi50PSJkIixZbi52PUh0KFluLnYpKSxZbi56PSJISDpNTTpTUyI7YnJlYWs7Y2FzZSJudW1iZXIiOlluLnQ9Im4iLFluLnY9cGFyc2VGbG9hdChNci5cdTY1NzBcdTYzNmVcdTY1NzBcdTUwM2MpO2JyZWFrO2RlZmF1bHQ6aWYoInN0cmluZyIhPT1Zbi50JiYidGV4dCIhPT1Zbi50''@;'; + put 'put ''JiZZbi50KXRocm93IG5ldyBFcnJvcigiVW5zdXBwb3J0ZWQgdmFsdWUgdHlwZSAiK1luLnQpO1luLnQ9InMiLG51bGwhPU1yWyJzdHJpbmctdmFsdWUiXSYmKGFpPWdyKE1yWyJzdHJpbmctdmFsdWUiXSksR3I9W10pfX1lbHNle2lmKHdhPSExLCJzIj09PVluLnQmJihZbi52PWFpfHwiIixH''@;'; + put 'put ''ci5sZW5ndGgmJihZbi5SPUdyKSx3YT0wPT15ciksa2kuVGFyZ2V0JiYoWW4ubD1raSksdDAubGVuZ3RoPjAmJihZbi5jPXQwLHQwPVtdKSxhaSYmITEhPT1aZS5jZWxsVGV4dCYmKFluLnc9YWkpLHdhJiYoWW4udD0ieiIsZGVsZXRlIFluLnYpLFplLmNlbGxIVE1MJiYoWW4uaD1Zbi5SP2ht''@;'; + put 'put ''KFluLlIpOm4wKCIiK1luLnYpKSwoIXdhfHxaZS5zaGVldFN0dWJzKSYmIShaZS5zaGVldFJvd3MmJlplLnNoZWV0Um93czw9enIpKWZvcih2YXIganI9MDtqcjxZcjsrK2pyKXtpZihFaT1wYXJzZUludChNclsibnVtYmVyLWNvbHVtbnMtcmVwZWF0ZWQiXXx8IjEiLDEwKSxaZS5kZW5zZSlm''@;'; + put 'put ''b3IoVG5benIranJdfHwoVG5benIranJdPVtdKSxUblt6citqcl1bcXJdPTA9PWpyP1luOmxuKFluKTstLUVpPjA7KVRuW3pyK2pyXVtxcitFaV09bG4oWW4pO2Vsc2UgZm9yKFRuW1kwKHtyOnpyK2pyLGM6cXJ9KV09WW47LS1FaT4wOylUbltZMCh7cjp6citqcixjOnFyK0VpfSldPWxuKFlu''@;'; + put 'put ''KTtvaS5lLmM8PXFyJiYob2kuZS5jPXFyKX1xcis9KEVpPXBhcnNlSW50KE1yWyJudW1iZXItY29sdW1ucy1yZXBlYXRlZCJdfHwiMSIsMTApKS0xLEVpPTAsWW49e30sYWk9IiIsR3I9W119a2k9e307YnJlYWs7Y2FzZSJkb2N1bWVudCI6Y2FzZSJkb2N1bWVudC1jb250ZW50IjpjYXNlIlx1''@;'; + put 'put ''NzUzNVx1NWI1MFx1ODg2OFx1NjgzY1x1NjU4N1x1Njg2MyI6Y2FzZSJzcHJlYWRzaGVldCI6Y2FzZSJcdTRlM2JcdTRmNTMiOmNhc2Uic2NyaXB0cyI6Y2FzZSJzdHlsZXMiOmNhc2UiZm9udC1mYWNlLWRlY2xzIjpjYXNlIm1hc3Rlci1zdHlsZXMiOmlmKCIvIj09PU9uWzFdKXtpZigoTXQ9''@;'; + put 'put ''WWUucG9wKCkpWzBdIT09T25bM10pdGhyb3ciQmFkIHN0YXRlOiAiK010fWVsc2UiLyIhPT1PblswXS5jaGFyQXQoT25bMF0ubGVuZ3RoLTIpJiZZZS5wdXNoKFtPblszXSwhMF0pO2JyZWFrO2Nhc2UiYW5ub3RhdGlvbiI6aWYoIi8iPT09T25bMV0pe2lmKChNdD1ZZS5wb3AoKSlbMF0hPT1P''@;'; + put 'put ''blszXSl0aHJvdyJCYWQgc3RhdGU6ICIrTXQ7aW8udD1haSxHci5sZW5ndGgmJihpby5SPUdyKSxpby5hPU5hLHQwLnB1c2goaW8pfWVsc2UiLyIhPT1PblswXS5jaGFyQXQoT25bMF0ubGVuZ3RoLTIpJiZZZS5wdXNoKFtPblszXSwhMV0pO05hPSIiLGpvPTAsYWk9IiIseXI9MCxHcj1bXTti''@;'; + put 'put ''cmVhaztjYXNlImNyZWF0b3IiOiIvIj09PU9uWzFdP05hPWplLnNsaWNlKGpvLE9uLmluZGV4KTpqbz1Pbi5pbmRleCtPblswXS5sZW5ndGg7YnJlYWs7Y2FzZSJtZXRhIjpjYXNlIlx1NTE0M1x1NjU3MFx1NjM2ZSI6Y2FzZSJzZXR0aW5ncyI6Y2FzZSJjb25maWctaXRlbS1zZXQiOmNhc2Ui''@;'; + put 'put ''Y29uZmlnLWl0ZW0tbWFwLWluZGV4ZWQiOmNhc2UiY29uZmlnLWl0ZW0tbWFwLWVudHJ5IjpjYXNlImNvbmZpZy1pdGVtLW1hcC1uYW1lZCI6Y2FzZSJzaGFwZXMiOmNhc2UiZnJhbWUiOmNhc2UidGV4dC1ib3giOmNhc2UiaW1hZ2UiOmNhc2UiZGF0YS1waWxvdC10YWJsZXMiOmNhc2UibGlz''@;'; + put 'put ''dC1zdHlsZSI6Y2FzZSJmb3JtIjpjYXNlImRkZS1saW5rcyI6Y2FzZSJldmVudC1saXN0ZW5lcnMiOmNhc2UiY2hhcnQiOmlmKCIvIj09PU9uWzFdKXtpZigoTXQ9WWUucG9wKCkpWzBdIT09T25bM10pdGhyb3ciQmFkIHN0YXRlOiAiK010fWVsc2UiLyIhPT1PblswXS5jaGFyQXQoT25bMF0u''@;'; + put 'put ''bGVuZ3RoLTIpJiZZZS5wdXNoKFtPblszXSwhMV0pO2FpPSIiLHlyPTAsR3I9W107YnJlYWs7Y2FzZSJzY2llbnRpZmljLW51bWJlciI6Y2FzZSJjdXJyZW5jeS1zeW1ib2wiOmNhc2UiY3VycmVuY3ktc3R5bGUiOmNhc2Uic2NyaXB0IjpjYXNlImxpYnJhcmllcyI6Y2FzZSJhdXRvbWF0aWMt''@;'; + put 'put ''c3R5bGVzIjpjYXNlImRlZmF1bHQtc3R5bGUiOmNhc2UicGFnZS1sYXlvdXQiOmNhc2UibWFwIjpjYXNlImZvbnQtZmFjZSI6Y2FzZSJwYXJhZ3JhcGgtcHJvcGVydGllcyI6Y2FzZSJ0YWJsZS1wcm9wZXJ0aWVzIjpjYXNlInRhYmxlLWNvbHVtbi1wcm9wZXJ0aWVzIjpjYXNlInRhYmxlLXJv''@;'; + put 'put ''dy1wcm9wZXJ0aWVzIjpjYXNlInRhYmxlLWNlbGwtcHJvcGVydGllcyI6Y2FzZSJmcmFjdGlvbiI6Y2FzZSJib29sZWFuLXN0eWxlIjpjYXNlImJvb2xlYW4iOmNhc2UidGV4dC1zdHlsZSI6Y2FzZSJ0ZXh0LWNvbnRlbnQiOmNhc2UidGV4dC1wcm9wZXJ0aWVzIjpjYXNlImVtYmVkZGVkLXRl''@;'; + put 'put ''eHQiOmNhc2UiYm9keSI6Y2FzZSJcdTc1MzVcdTViNTBcdTg4NjhcdTY4M2MiOmNhc2UiZm9ybXMiOmNhc2UidGFibGUtY29sdW1uIjpjYXNlInRhYmxlLWhlYWRlci1yb3dzIjpjYXNlInRhYmxlLXJvd3MiOmNhc2UidGFibGUtY29sdW1uLWdyb3VwIjpjYXNlInRhYmxlLWhlYWRlci1jb2x1''@;'; + put 'put ''bW5zIjpjYXNlInRhYmxlLWNvbHVtbnMiOmNhc2UibnVsbC1kYXRlIjpjYXNlImdyYXBoaWMtcHJvcGVydGllcyI6Y2FzZSJjYWxjdWxhdGlvbi1zZXR0aW5ncyI6Y2FzZSJuYW1lZC1leHByZXNzaW9ucyI6Y2FzZSJsYWJlbC1yYW5nZSI6Y2FzZSJsYWJlbC1yYW5nZXMiOmNhc2UibmFtZWQt''@;'; + put 'put ''ZXhwcmVzc2lvbiI6Y2FzZSJzb3J0IjpjYXNlInNvcnQtYnkiOmNhc2Uic29ydC1ncm91cHMiOmNhc2UidGFiIjpjYXNlImxpbmUtYnJlYWsiOmNhc2Uic3BhbiI6Y2FzZSJzIjpjYXNlImRhdGUiOmNhc2Uib2JqZWN0IjpjYXNlInRpdGxlIjpjYXNlIlx1NjgwN1x1OTg5OCI6Y2FzZSJkZXNj''@;'; + put 'put ''IjpjYXNlImJpbmFyeS1kYXRhIjpjYXNlInRhYmxlLXNvdXJjZSI6Y2FzZSJzY2VuYXJpbyI6Y2FzZSJpdGVyYXRpb24iOmNhc2UiY29udGVudC12YWxpZGF0aW9ucyI6Y2FzZSJjb250ZW50LXZhbGlkYXRpb24iOmNhc2UiaGVscC1tZXNzYWdlIjpjYXNlImVycm9yLW1lc3NhZ2UiOmNhc2Ui''@;'; + put 'put ''ZGF0YWJhc2UtcmFuZ2VzIjpjYXNlImZpbHRlciI6Y2FzZSJmaWx0ZXItYW5kIjpjYXNlImZpbHRlci1vciI6Y2FzZSJmaWx0ZXItY29uZGl0aW9uIjpjYXNlImxpc3QtbGV2ZWwtc3R5bGUtYnVsbGV0IjpjYXNlImxpc3QtbGV2ZWwtc3R5bGUtbnVtYmVyIjpjYXNlImxpc3QtbGV2ZWwtcHJv''@;'; + put 'put ''cGVydGllcyI6Y2FzZSJzZW5kZXItZmlyc3RuYW1lIjpjYXNlInNlbmRlci1sYXN0bmFtZSI6Y2FzZSJzZW5kZXItaW5pdGlhbHMiOmNhc2Uic2VuZGVyLXRpdGxlIjpjYXNlInNlbmRlci1wb3NpdGlvbiI6Y2FzZSJzZW5kZXItZW1haWwiOmNhc2Uic2VuZGVyLXBob25lLXByaXZhdGUiOmNh''@;'; + put 'put ''c2Uic2VuZGVyLWZheCI6Y2FzZSJzZW5kZXItY29tcGFueSI6Y2FzZSJzZW5kZXItcGhvbmUtd29yayI6Y2FzZSJzZW5kZXItc3RyZWV0IjpjYXNlInNlbmRlci1jaXR5IjpjYXNlInNlbmRlci1wb3N0YWwtY29kZSI6Y2FzZSJzZW5kZXItY291bnRyeSI6Y2FzZSJzZW5kZXItc3RhdGUtb3It''@;'; + put 'put ''cHJvdmluY2UiOmNhc2UiYXV0aG9yLW5hbWUiOmNhc2UiYXV0aG9yLWluaXRpYWxzIjpjYXNlImNoYXB0ZXIiOmNhc2UiZmlsZS1uYW1lIjpjYXNlInRlbXBsYXRlLW5hbWUiOmNhc2Uic2hlZXQtbmFtZSI6Y2FzZSJldmVudC1saXN0ZW5lciI6Y2FzZSJpbml0aWFsLWNyZWF0b3IiOmNhc2Ui''@;'; + put 'put ''Y3JlYXRpb24tZGF0ZSI6Y2FzZSJwcmludC1kYXRlIjpjYXNlImdlbmVyYXRvciI6Y2FzZSJkb2N1bWVudC1zdGF0aXN0aWMiOmNhc2UidXNlci1kZWZpbmVkIjpjYXNlImVkaXRpbmctZHVyYXRpb24iOmNhc2UiZWRpdGluZy1jeWNsZXMiOmNhc2UiY29uZmlnLWl0ZW0iOmNhc2UicGFnZS1u''@;'; + put 'put ''dW1iZXIiOmNhc2UicGFnZS1jb3VudCI6Y2FzZSJ0aW1lIjpjYXNlImNlbGwtcmFuZ2Utc291cmNlIjpjYXNlImRldGVjdGl2ZSI6Y2FzZSJvcGVyYXRpb24iOmNhc2UiaGlnaGxpZ2h0ZWQtcmFuZ2UiOmNhc2UiZGF0YS1waWxvdC10YWJsZSI6Y2FzZSJzb3VyY2UtY2VsbC1yYW5nZSI6Y2Fz''@;'; + put 'put ''ZSJzb3VyY2Utc2VydmljZSI6Y2FzZSJkYXRhLXBpbG90LWZpZWxkIjpjYXNlImRhdGEtcGlsb3QtbGV2ZWwiOmNhc2UiZGF0YS1waWxvdC1zdWJ0b3RhbHMiOmNhc2UiZGF0YS1waWxvdC1zdWJ0b3RhbCI6Y2FzZSJkYXRhLXBpbG90LW1lbWJlcnMiOmNhc2UiZGF0YS1waWxvdC1tZW1iZXIi''@;'; + put 'put ''OmNhc2UiZGF0YS1waWxvdC1kaXNwbGF5LWluZm8iOmNhc2UiZGF0YS1waWxvdC1zb3J0LWluZm8iOmNhc2UiZGF0YS1waWxvdC1sYXlvdXQtaW5mbyI6Y2FzZSJkYXRhLXBpbG90LWZpZWxkLXJlZmVyZW5jZSI6Y2FzZSJkYXRhLXBpbG90LWdyb3VwcyI6Y2FzZSJkYXRhLXBpbG90LWdyb3Vw''@;'; + put 'put ''IjpjYXNlImRhdGEtcGlsb3QtZ3JvdXAtbWVtYmVyIjpjYXNlInJlY3QiOmNhc2UiZGRlLWNvbm5lY3Rpb24tZGVjbHMiOmNhc2UiZGRlLWNvbm5lY3Rpb24tZGVjbCI6Y2FzZSJkZGUtbGluayI6Y2FzZSJkZGUtc291cmNlIjpjYXNlInByb3BlcnRpZXMiOmNhc2UicHJvcGVydHkiOmNhc2Ui''@;'; + put 'put ''dGFibGUtcHJvdGVjdGlvbiI6Y2FzZSJkYXRhLXBpbG90LWdyYW5kLXRvdGFsIjpjYXNlIm9mZmljZS1kb2N1bWVudC1jb21tb24tYXR0cnMiOmJyZWFrO2Nhc2UibnVtYmVyLXN0eWxlIjpjYXNlInBlcmNlbnRhZ2Utc3R5bGUiOmNhc2UiZGF0ZS1zdHlsZSI6Y2FzZSJ0aW1lLXN0eWxlIjpp''@;'; + put 'put ''ZigiLyI9PT1PblsxXSl7aWYoZGlbUnQubmFtZV09VXQsKE10PVllLnBvcCgpKVswXSE9PU9uWzNdKXRocm93IkJhZCBzdGF0ZTogIitNdH1lbHNlIi8iIT09T25bMF0uY2hhckF0KE9uWzBdLmxlbmd0aC0yKSYmKFV0PSIiLFJ0PWVuKE9uWzBdLCExKSxZZS5wdXNoKFtPblszXSwhMF0pKTti''@;'; + put 'put ''cmVhaztjYXNlInN0eWxlIjoiLz4iPT09T25bMF0uc2xpY2UoLTIpP1goT25bMF0sb2EpOiIvIj09T25bMV0/WChqZS5zbGljZSgkMCxPbi5pbmRleCtPblswXS5sZW5ndGgpLG9hKTokMD1Pbi5pbmRleDticmVhaztjYXNlIm51bWJlciI6Y2FzZSJkYXkiOmNhc2UibW9udGgiOmNhc2UieWVh''@;'; + put 'put ''ciI6Y2FzZSJlcmEiOmNhc2UiZGF5LW9mLXdlZWsiOmNhc2Uid2Vlay1vZi15ZWFyIjpjYXNlInF1YXJ0ZXIiOmNhc2UiaG91cnMiOmNhc2UibWludXRlcyI6Y2FzZSJzZWNvbmRzIjpjYXNlImFtLXBtIjpzd2l0Y2goWWVbWWUubGVuZ3RoLTFdWzBdKXtjYXNlInRpbWUtc3R5bGUiOmNhc2Ui''@;'; + put 'put ''ZGF0ZS1zdHlsZSI6eHQ9ZW4oT25bMF0sITEpLFV0Kz1yZVtPblszXV1bImxvbmciPT09eHQuc3R5bGU/MTowXX1icmVhaztjYXNlInRleHQiOmlmKCIvPiI9PT1PblswXS5zbGljZSgtMikpYnJlYWs7aWYoIi8iPT09T25bMV0pc3dpdGNoKFllW1llLmxlbmd0aC0xXVswXSl7Y2FzZSJudW1i''@;'; + put 'put ''ZXItc3R5bGUiOmNhc2UiZGF0ZS1zdHlsZSI6Y2FzZSJ0aW1lLXN0eWxlIjpVdCs9amUuc2xpY2Uobm4sT24uaW5kZXgpfWVsc2Ugbm49T24uaW5kZXgrT25bMF0ubGVuZ3RoO2JyZWFrO2Nhc2UibmFtZWQtcmFuZ2UiOk4wPWZfKCh4dD1lbihPblswXSwhMSkpWyJjZWxsLXJhbmdlLWFkZHJl''@;'; + put 'put ''c3MiXSk7dmFyIEhpPXtOYW1lOnh0Lm5hbWUsUmVmOk4wWzBdKyIhIitOMFsxXX07YW8mJihIaS5TaGVldD1Qbi5sZW5ndGgpLE5yLk5hbWVzLnB1c2goSGkpO2JyZWFrO2Nhc2UicCI6Y2FzZSJcdTY1ODdcdTY3MmNcdTRlMzIiOmlmKFsibWFzdGVyLXN0eWxlcyJdLmluZGV4T2YoWWVbWWUu''@;'; + put 'put ''bGVuZ3RoLTFdWzBdKT4tMSlicmVhaztpZigiLyIhPT1PblsxXXx8TXImJk1yWyJzdHJpbmctdmFsdWUiXSllbihPblswXSwhMSkseXI9T24uaW5kZXgrT25bMF0ubGVuZ3RoO2Vsc2V7dmFyIHZvPUgoamUuc2xpY2UoeXIsT24uaW5kZXgpLDAsb2EpO2FpPShhaS5sZW5ndGg+MD9haSsiXG4i''@;'; + put 'put ''OiIiKSt2b1swXSxHcj12b1sxXX1icmVhaztjYXNlImRhdGFiYXNlLXJhbmdlIjppZigiLyI9PT1PblsxXSlicmVhazt0cnl7enRbKE4wPWZfKGVuKE9uWzBdKVsidGFyZ2V0LXJhbmdlLWFkZHJlc3MiXSkpWzBdXVsiIWF1dG9maWx0ZXIiXT17cmVmOk4wWzFdfX1jYXRjaCgkaSl7fWJyZWFr''@;'; + put 'put ''O2Nhc2UiYSI6aWYoIi8iIT09T25bMV0pe2lmKCEoa2k9ZW4oT25bMF0sITEpKS5ocmVmKWJyZWFrO2tpLlRhcmdldD1ncihraS5ocmVmKSxkZWxldGUga2kuaHJlZiwiIyI9PWtpLlRhcmdldC5jaGFyQXQoMCkmJmtpLlRhcmdldC5pbmRleE9mKCIuIik+LTE/KE4wPWZfKGtpLlRhcmdldC5z''@;'; + put 'put ''bGljZSgxKSksa2kuVGFyZ2V0PSIjIitOMFswXSsiISIrTjBbMV0pOmtpLlRhcmdldC5tYXRjaCgvXlwuXC5bXFxcL10vKSYmKGtpLlRhcmdldD1raS5UYXJnZXQuc2xpY2UoMykpfWJyZWFrO2RlZmF1bHQ6c3dpdGNoKE9uWzJdKXtjYXNlImRjOiI6Y2FzZSJjYWxjZXh0OiI6Y2FzZSJsb2V4''@;'; + put 'put ''dDoiOmNhc2Uib29vOiI6Y2FzZSJjaGFydG9vbzoiOmNhc2UiZHJhdzoiOmNhc2Uic3R5bGU6IjpjYXNlImNoYXJ0OiI6Y2FzZSJmb3JtOiI6Y2FzZSJ1b2Y6IjpjYXNlIlx1ODg2ODoiOmNhc2UiXHU1YjU3OiI6YnJlYWs7ZGVmYXVsdDppZihaZS5XVEYpdGhyb3cgbmV3IEVycm9yKE9uKX19''@;'; + put 'put ''dmFyIHhvPXtTaGVldHM6enQsU2hlZXROYW1lczpQbixXb3JrYm9vazpOcn07cmV0dXJuIFplLmJvb2tTaGVldHMmJmRlbGV0ZSB4by5TaGVldHMseG99fSgpO2Z1bmN0aW9uIGljKEgscmUpe3JldHVybiBpQyhILHJlKX12YXIgYUM9ZnVuY3Rpb24oKXt2YXIgSD1bIiAgPG9mZmljZTptYXN0''@;'; + put 'put ''ZXItc3R5bGVzPiIsJyAgICA8c3R5bGU6bWFzdGVyLXBhZ2Ugc3R5bGU6bmFtZT0ibXAxIiBzdHlsZTpwYWdlLWxheW91dC1uYW1lPSJtcDEiPicsIiAgICAgIDxzdHlsZTpoZWFkZXIvPiIsJyAgICAgIDxzdHlsZTpoZWFkZXItbGVmdCBzdHlsZTpkaXNwbGF5PSJmYWxzZSIvPicsIiAgICAg''@;'; + put 'put ''IDxzdHlsZTpmb290ZXIvPiIsJyAgICAgIDxzdHlsZTpmb290ZXItbGVmdCBzdHlsZTpkaXNwbGF5PSJmYWxzZSIvPicsIiAgICA8L3N0eWxlOm1hc3Rlci1wYWdlPiIsIiAgPC9vZmZpY2U6bWFzdGVyLXN0eWxlcz4iXS5qb2luKCJcbiIpLHJlPSI8b2ZmaWNlOmRvY3VtZW50LXN0eWxlcyAi''@;'; + put 'put ''K3JsKHsieG1sbnM6b2ZmaWNlIjoidXJuOm9hc2lzOm5hbWVzOnRjOm9wZW5kb2N1bWVudDp4bWxuczpvZmZpY2U6MS4wIiwieG1sbnM6dGFibGUiOiJ1cm46b2FzaXM6bmFtZXM6dGM6b3BlbmRvY3VtZW50OnhtbG5zOnRhYmxlOjEuMCIsInhtbG5zOnN0eWxlIjoidXJuOm9hc2lzOm5hbWVz''@;'; + put 'put ''OnRjOm9wZW5kb2N1bWVudDp4bWxuczpzdHlsZToxLjAiLCJ4bWxuczp0ZXh0IjoidXJuOm9hc2lzOm5hbWVzOnRjOm9wZW5kb2N1bWVudDp4bWxuczp0ZXh0OjEuMCIsInhtbG5zOmRyYXciOiJ1cm46b2FzaXM6bmFtZXM6dGM6b3BlbmRvY3VtZW50OnhtbG5zOmRyYXdpbmc6MS4wIiwieG1s''@;'; + put 'put ''bnM6Zm8iOiJ1cm46b2FzaXM6bmFtZXM6dGM6b3BlbmRvY3VtZW50OnhtbG5zOnhzbC1mby1jb21wYXRpYmxlOjEuMCIsInhtbG5zOnhsaW5rIjoiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIsInhtbG5zOmRjIjoiaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iLCJ4bWxu''@;'; + put 'put ''czpudW1iZXIiOiJ1cm46b2FzaXM6bmFtZXM6dGM6b3BlbmRvY3VtZW50OnhtbG5zOmRhdGFzdHlsZToxLjAiLCJ4bWxuczpzdmciOiJ1cm46b2FzaXM6bmFtZXM6dGM6b3BlbmRvY3VtZW50OnhtbG5zOnN2Zy1jb21wYXRpYmxlOjEuMCIsInhtbG5zOm9mIjoidXJuOm9hc2lzOm5hbWVzOnRj''@;'; + put 'put ''Om9wZW5kb2N1bWVudDp4bWxuczpvZjoxLjIiLCJvZmZpY2U6dmVyc2lvbiI6IjEuMiJ9KSsiPlxuIitIKyJcbjwvb2ZmaWNlOmRvY3VtZW50LXN0eWxlcz4iO3JldHVybiBmdW5jdGlvbigpe3JldHVybiBjbityZX19KCksSjQ9ZnVuY3Rpb24oKXt2YXIgSD1mdW5jdGlvbihqZSxZZSl7cmV0''@;'; + put 'put ''dXJuIFJyKGplKS5yZXBsYWNlKC8gICsvZyxmdW5jdGlvbihNdCl7cmV0dXJuJzx0ZXh0OnMgdGV4dDpjPSInK010Lmxlbmd0aCsnIi8+J30pLnJlcGxhY2UoL1x0L2csIjx0ZXh0OnRhYi8+IikucmVwbGFjZSgvXG4vZyxZZT8iPHRleHQ6bGluZS1icmVhay8+IjoiPC90ZXh0OnA+PHRleHQ6''@;'; + put 'put ''cD4iKS5yZXBsYWNlKC9eIC8sIjx0ZXh0OnMvPiIpLnJlcGxhY2UoLyAkLywiPHRleHQ6cy8+Iil9LHJlPWZ1bmN0aW9uKGplKXtyZXR1cm4gamUubWFwKGZ1bmN0aW9uKFllKXt2YXIgTXQ9IiI7cmV0dXJuIG51bGwhPVllLm9kcyYmKE10Kz0nIHRleHQ6c3R5bGUtbmFtZT0iVCcrWWUub2Rz''@;'; + put 'put ''KyciJyksWWUudj8iPHRleHQ6c3BhbiIrTXQrIj4iK0goWWUudiwhMCkrIjwvdGV4dDpzcGFuPiI6IiJ9KS5qb2luKCIiKX0sWD0iICAgICAgICAgIDx0YWJsZTp0YWJsZS1jZWxsIC8+XG4iLHhlPWZ1bmN0aW9uKGplLFllLE10KXt2YXIgeHQ9W107eHQucHVzaCgnICAgICAgPHRhYmxlOnRh''@;'; + put 'put ''YmxlIHRhYmxlOm5hbWU9IicrUnIoWWUuU2hlZXROYW1lc1tNdF0pKyciIHRhYmxlOnN0eWxlLW5hbWU9InRhMSI+XG4nKTt2YXIgUnQ9MCxVdD0wLG5uPXZzKGplWyIhcmVmIl18fCJBMSIpLENuPWplWyIhbWVyZ2VzIl18fFtdLER0PTAsenQ9QXJyYXkuaXNBcnJheShqZSk7aWYoamVbIiFj''@;'; + put 'put ''b2xzIl0pZm9yKFV0PTA7VXQ8PW5uLmUuYzsrK1V0KXh0LnB1c2goIiAgICAgICAgPHRhYmxlOnRhYmxlLWNvbHVtbiIrKGplWyIhY29scyJdW1V0XT8nIHRhYmxlOnN0eWxlLW5hbWU9ImNvJytqZVsiIWNvbHMiXVtVdF0ub2RzKyciJzoiIikrIj48L3RhYmxlOnRhYmxlLWNvbHVtbj5cbiIp''@;'; + put 'put ''O3ZhciBUbj1qZVsiIXJvd3MiXXx8W107Zm9yKFJ0PTA7UnQ8bm4ucy5yOysrUnQpeHQucHVzaCgiICAgICAgICA8dGFibGU6dGFibGUtcm93IisoVG5bUnRdPycgdGFibGU6c3R5bGUtbmFtZT0icm8nK1RuW1J0XS5vZHMrJyInOiIiKSsiPjwvdGFibGU6dGFibGUtcm93PlxuIik7Zm9yKDtS''@;'; + put 'put ''dDw9bm4uZS5yOysrUnQpe2Zvcih4dC5wdXNoKCIgICAgICAgIDx0YWJsZTp0YWJsZS1yb3ciKyhUbltSdF0/JyB0YWJsZTpzdHlsZS1uYW1lPSJybycrVG5bUnRdLm9kcysnIic6IiIpKyI+XG4iKSxVdD0wO1V0PG5uLnMuYzsrK1V0KXh0LnB1c2goWCk7Zm9yKDtVdDw9bm4uZS5jOysrVXQp''@;'; + put 'put ''e3ZhciBPbj0hMSxZbj17fSxNcj0iIjtmb3IoRHQ9MDtEdCE9Q24ubGVuZ3RoOysrRHQpaWYoIShDbltEdF0ucy5jPlV0fHxDbltEdF0ucy5yPlJ0fHxDbltEdF0uZS5jPFV0fHxDbltEdF0uZS5yPFJ0KSl7KENuW0R0XS5zLmMhPVV0fHxDbltEdF0ucy5yIT1SdCkmJihPbj0hMCksWW5bInRh''@;'; + put 'put ''YmxlOm51bWJlci1jb2x1bW5zLXNwYW5uZWQiXT1DbltEdF0uZS5jLUNuW0R0XS5zLmMrMSxZblsidGFibGU6bnVtYmVyLXJvd3Mtc3Bhbm5lZCJdPUNuW0R0XS5lLnItQ25bRHRdLnMucisxO2JyZWFrfWlmKE9uKXh0LnB1c2goIiAgICAgICAgICA8dGFibGU6Y292ZXJlZC10YWJsZS1jZWxs''@;'; + put 'put ''Lz5cbiIpO2Vsc2V7dmFyIGFpPVkwKHtyOlJ0LGM6VXR9KSx5cj16dD8oamVbUnRdfHxbXSlbVXRdOmplW2FpXTtpZih5ciYmeXIuZiYmKFluWyJ0YWJsZTpmb3JtdWxhIl09UnIob3goeXIuZikpLHlyLkYmJnlyLkYuc2xpY2UoMCxhaS5sZW5ndGgpPT1haSkpe3ZhciBhcj12cyh5ci5GKTtZ''@;'; + put 'put ''blsidGFibGU6bnVtYmVyLW1hdHJpeC1jb2x1bW5zLXNwYW5uZWQiXT1hci5lLmMtYXIucy5jKzEsWW5bInRhYmxlOm51bWJlci1tYXRyaXgtcm93cy1zcGFubmVkIl09YXIuZS5yLWFyLnMucisxfWlmKHlyKXtzd2l0Y2goeXIudCl7Y2FzZSJiIjpNcj15ci52PyJUUlVFIjoiRkFMU0UiLFlu''@;'; + put 'put ''WyJvZmZpY2U6dmFsdWUtdHlwZSJdPSJib29sZWFuIixZblsib2ZmaWNlOmJvb2xlYW4tdmFsdWUiXT15ci52PyJ0cnVlIjoiZmFsc2UiO2JyZWFrO2Nhc2UibiI6TXI9eXIud3x8U3RyaW5nKHlyLnZ8fDApLFluWyJvZmZpY2U6dmFsdWUtdHlwZSJdPSJmbG9hdCIsWW5bIm9mZmljZTp2YWx1''@;'; + put 'put ''ZSJdPXlyLnZ8fDA7YnJlYWs7Y2FzZSJzIjpjYXNlInN0ciI6TXI9eXIudixZblsib2ZmaWNlOnZhbHVlLXR5cGUiXT0ic3RyaW5nIjticmVhaztjYXNlImQiOk1yPXlyLnd8fGRuKHlyLnYpLnRvSVNPU3RyaW5nKCksWW5bIm9mZmljZTp2YWx1ZS10eXBlIl09ImRhdGUiLFluWyJvZmZpY2U6''@;'; + put 'put ''ZGF0ZS12YWx1ZSJdPWRuKHlyLnYpLnRvSVNPU3RyaW5nKCksWW5bInRhYmxlOnN0eWxlLW5hbWUiXT0iY2UxIjticmVhaztkZWZhdWx0Onh0LnB1c2goWCk7Y29udGludWV9bnVsbCE9eXIub2RzJiYhWW5bInRhYmxlOnN0eWxlLW5hbWUiXSYmKFluWyJ0YWJsZTpzdHlsZS1uYW1lIl09ImNl''@;'; + put 'put ''Iit5ci5vZHMpO3ZhciBHcj0heXIuUnx8eXIubCYmeXIubC5UYXJnZXQ/SChNcik6cmUoeXIuUik7aWYoeXIubCYmeXIubC5UYXJnZXQpe3ZhciB6cj15ci5sLlRhcmdldDsiIyIhPSh6cj0iIyI9PXpyLmNoYXJBdCgwKT8iIyIraF8oenIuc2xpY2UoMSkpOnpyKS5jaGFyQXQoMCkmJiF6ci5t''@;'; + put 'put ''YXRjaCgvXlx3KzovKSYmKHpyPSIuLi8iK3pyKSxHcj1faSgidGV4dDphIixHcix7InhsaW5rOmhyZWYiOnpyLnJlcGxhY2UoLyYvZywiJmFtcDsiKX0pfXh0LnB1c2goIiAgICAgICAgICAiK19pKCJ0YWJsZTp0YWJsZS1jZWxsIixfaSgidGV4dDpwIixHcix7fSksWW4pKyJcbiIpfWVsc2Ug''@;'; + put 'put ''eHQucHVzaChYKX19eHQucHVzaCgiICAgICAgICA8L3RhYmxlOnRhYmxlLXJvdz5cbiIpfXJldHVybiB4dC5wdXNoKCIgICAgICA8L3RhYmxlOnRhYmxlPlxuIikseHQuam9pbigiIil9LEZlPXtjZW50ZXI6ImNlbnRlciIsbGVmdDoic3RhcnQiLHJpZ2h0OiJlbmQifTtyZXR1cm4gZnVuY3Rp''@;'; + put 'put ''b24oWWUsTXQpe3ZhciB4dD1bY25dLFJ0PXJsKHsieG1sbnM6b2ZmaWNlIjoidXJuOm9hc2lzOm5hbWVzOnRjOm9wZW5kb2N1bWVudDp4bWxuczpvZmZpY2U6MS4wIiwieG1sbnM6dGFibGUiOiJ1cm46b2FzaXM6bmFtZXM6dGM6b3BlbmRvY3VtZW50OnhtbG5zOnRhYmxlOjEuMCIsInhtbG5z''@;'; + put 'put ''OnN0eWxlIjoidXJuOm9hc2lzOm5hbWVzOnRjOm9wZW5kb2N1bWVudDp4bWxuczpzdHlsZToxLjAiLCJ4bWxuczp0ZXh0IjoidXJuOm9hc2lzOm5hbWVzOnRjOm9wZW5kb2N1bWVudDp4bWxuczp0ZXh0OjEuMCIsInhtbG5zOmRyYXciOiJ1cm46b2FzaXM6bmFtZXM6dGM6b3BlbmRvY3VtZW50''@;'; + put 'put ''OnhtbG5zOmRyYXdpbmc6MS4wIiwieG1sbnM6Zm8iOiJ1cm46b2FzaXM6bmFtZXM6dGM6b3BlbmRvY3VtZW50OnhtbG5zOnhzbC1mby1jb21wYXRpYmxlOjEuMCIsInhtbG5zOnhsaW5rIjoiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIsInhtbG5zOmRjIjoiaHR0cDovL3B1cmwub3Jn''@;'; + put 'put ''L2RjL2VsZW1lbnRzLzEuMS8iLCJ4bWxuczptZXRhIjoidXJuOm9hc2lzOm5hbWVzOnRjOm9wZW5kb2N1bWVudDp4bWxuczptZXRhOjEuMCIsInhtbG5zOm51bWJlciI6InVybjpvYXNpczpuYW1lczp0YzpvcGVuZG9jdW1lbnQ6eG1sbnM6ZGF0YXN0eWxlOjEuMCIsInhtbG5zOnByZXNlbnRh''@;'; + put 'put ''dGlvbiI6InVybjpvYXNpczpuYW1lczp0YzpvcGVuZG9jdW1lbnQ6eG1sbnM6cHJlc2VudGF0aW9uOjEuMCIsInhtbG5zOnN2ZyI6InVybjpvYXNpczpuYW1lczp0YzpvcGVuZG9jdW1lbnQ6eG1sbnM6c3ZnLWNvbXBhdGlibGU6MS4wIiwieG1sbnM6Y2hhcnQiOiJ1cm46b2FzaXM6bmFtZXM6''@;'; + put 'put ''dGM6b3BlbmRvY3VtZW50OnhtbG5zOmNoYXJ0OjEuMCIsInhtbG5zOmRyM2QiOiJ1cm46b2FzaXM6bmFtZXM6dGM6b3BlbmRvY3VtZW50OnhtbG5zOmRyM2Q6MS4wIiwieG1sbnM6bWF0aCI6Imh0dHA6Ly93d3cudzMub3JnLzE5OTgvTWF0aC9NYXRoTUwiLCJ4bWxuczpmb3JtIjoidXJuOm9h''@;'; + put 'put ''c2lzOm5hbWVzOnRjOm9wZW5kb2N1bWVudDp4bWxuczpmb3JtOjEuMCIsInhtbG5zOnNjcmlwdCI6InVybjpvYXNpczpuYW1lczp0YzpvcGVuZG9jdW1lbnQ6eG1sbnM6c2NyaXB0OjEuMCIsInhtbG5zOm9vbyI6Imh0dHA6Ly9vcGVub2ZmaWNlLm9yZy8yMDA0L29mZmljZSIsInhtbG5zOm9v''@;'; + put 'put ''b3ciOiJodHRwOi8vb3Blbm9mZmljZS5vcmcvMjAwNC93cml0ZXIiLCJ4bWxuczpvb29jIjoiaHR0cDovL29wZW5vZmZpY2Uub3JnLzIwMDQvY2FsYyIsInhtbG5zOmRvbSI6Imh0dHA6Ly93d3cudzMub3JnLzIwMDEveG1sLWV2ZW50cyIsInhtbG5zOnhmb3JtcyI6Imh0dHA6Ly93d3cudzMu''@;'; + put 'put ''b3JnLzIwMDIveGZvcm1zIiwieG1sbnM6eHNkIjoiaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiLCJ4bWxuczp4c2kiOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIsInhtbG5zOnNoZWV0IjoidXJuOm9hc2lzOm5hbWVzOnRjOm9wZW5kb2N1bWVu''@;'; + put 'put ''dDpzaDMzdGpzOjEuMCIsInhtbG5zOnJwdCI6Imh0dHA6Ly9vcGVub2ZmaWNlLm9yZy8yMDA1L3JlcG9ydCIsInhtbG5zOm9mIjoidXJuOm9hc2lzOm5hbWVzOnRjOm9wZW5kb2N1bWVudDp4bWxuczpvZjoxLjIiLCJ4bWxuczp4aHRtbCI6Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwi''@;'; + put 'put ''LCJ4bWxuczpncmRkbCI6Imh0dHA6Ly93d3cudzMub3JnLzIwMDMvZy9kYXRhLXZpZXcjIiwieG1sbnM6dGFibGVvb28iOiJodHRwOi8vb3Blbm9mZmljZS5vcmcvMjAwOS90YWJsZSIsInhtbG5zOmRyYXdvb28iOiJodHRwOi8vb3Blbm9mZmljZS5vcmcvMjAxMC9kcmF3IiwieG1sbnM6Y2Fs''@;'; + put 'put ''Y2V4dCI6InVybjpvcmc6ZG9jdW1lbnRmb3VuZGF0aW9uOm5hbWVzOmV4cGVyaW1lbnRhbDpjYWxjOnhtbG5zOmNhbGNleHQ6MS4wIiwieG1sbnM6bG9leHQiOiJ1cm46b3JnOmRvY3VtZW50Zm91bmRhdGlvbjpuYW1lczpleHBlcmltZW50YWw6b2ZmaWNlOnhtbG5zOmxvZXh0OjEuMCIsInht''@;'; + put 'put ''bG5zOmZpZWxkIjoidXJuOm9wZW5vZmZpY2U6bmFtZXM6ZXhwZXJpbWVudGFsOm9vby1tcy1pbnRlcm9wOnhtbG5zOmZpZWxkOjEuMCIsInhtbG5zOmZvcm14IjoidXJuOm9wZW5vZmZpY2U6bmFtZXM6ZXhwZXJpbWVudGFsOm9veG1sLW9kZi1pbnRlcm9wOnhtbG5zOmZvcm06MS4wIiwieG1s''@;'; + put 'put ''bnM6Y3NzM3QiOiJodHRwOi8vd3d3LnczLm9yZy9UUi9jc3MzLXRleHQvIiwib2ZmaWNlOnZlcnNpb24iOiIxLjIifSksVXQ9cmwoeyJ4bWxuczpjb25maWciOiJ1cm46b2FzaXM6bmFtZXM6dGM6b3BlbmRvY3VtZW50OnhtbG5zOmNvbmZpZzoxLjAiLCJvZmZpY2U6bWltZXR5cGUiOiJhcHBs''@;'; + put 'put ''aWNhdGlvbi92bmQub2FzaXMub3BlbmRvY3VtZW50LnNwcmVhZHNoZWV0In0pOyJmb2RzIj09TXQuYm9va1R5cGU/KHh0LnB1c2goIjxvZmZpY2U6ZG9jdW1lbnQiK1J0K1V0KyI+XG4iKSx4dC5wdXNoKCRvKCkucmVwbGFjZSgvb2ZmaWNlOmRvY3VtZW50LW1ldGEvZywib2ZmaWNlOm1ldGEi''@;'; + put 'put ''KSkpOnh0LnB1c2goIjxvZmZpY2U6ZG9jdW1lbnQtY29udGVudCIrUnQrIj5cbiIpLGZ1bmN0aW9uKGplLFllKXt2YXIgTXQ9W10seHQ9e307TXQucHVzaCgiIDxvZmZpY2U6YXV0b21hdGljLXN0eWxlcz5cbiIpLE10LnB1c2goJyAgPG51bWJlcjpkYXRlLXN0eWxlIHN0eWxlOm5hbWU9Ik4z''@;'; + put 'put ''NyIgbnVtYmVyOmF1dG9tYXRpYy1vcmRlcj0idHJ1ZSI+XG4nKSxNdC5wdXNoKCcgICA8bnVtYmVyOm1vbnRoIG51bWJlcjpzdHlsZT0ibG9uZyIvPlxuJyksTXQucHVzaCgiICAgPG51bWJlcjp0ZXh0Pi88L251bWJlcjp0ZXh0PlxuIiksTXQucHVzaCgnICAgPG51bWJlcjpkYXkgbnVtYmVy''@;'; + put 'put ''OnN0eWxlPSJsb25nIi8+XG4nKSxNdC5wdXNoKCIgICA8bnVtYmVyOnRleHQ+LzwvbnVtYmVyOnRleHQ+XG4iKSxNdC5wdXNoKCIgICA8bnVtYmVyOnllYXIvPlxuIiksTXQucHVzaCgiICA8L251bWJlcjpkYXRlLXN0eWxlPlxuIik7dmFyIFJ0PTA7WWUuU2hlZXROYW1lcy5tYXAoZnVuY3Rp''@;'; + put 'put ''b24oRHQpe3JldHVybiBZZS5TaGVldHNbRHRdfSkuZm9yRWFjaChmdW5jdGlvbihEdCl7aWYoRHQmJkR0WyIhY29scyJdKWZvcih2YXIgenQ9MDt6dDxEdFsiIWNvbHMiXS5sZW5ndGg7Kyt6dClpZihEdFsiIWNvbHMiXVt6dF0pe3ZhciBQbj1EdFsiIWNvbHMiXVt6dF07aWYobnVsbD09UG4u''@;'; + put 'put ''d2lkdGgmJm51bGw9PVBuLndweCYmbnVsbD09UG4ud2NoKWNvbnRpbnVlO3ljKFBuKSxQbi5vZHM9UnQ7dmFyIFRuPUR0WyIhY29scyJdW3p0XS53cHgrInB4IjtNdC5wdXNoKCcgIDxzdHlsZTpzdHlsZSBzdHlsZTpuYW1lPSJjbycrUnQrJyIgc3R5bGU6ZmFtaWx5PSJ0YWJsZS1jb2x1bW4i''@;'; + put 'put ''PlxuJyksTXQucHVzaCgnICAgPHN0eWxlOnRhYmxlLWNvbHVtbi1wcm9wZXJ0aWVzIGZvOmJyZWFrLWJlZm9yZT0iYXV0byIgc3R5bGU6Y29sdW1uLXdpZHRoPSInK1RuKyciLz5cbicpLE10LnB1c2goIiAgPC9zdHlsZTpzdHlsZT5cbiIpLCsrUnR9fSk7dmFyIFV0PTA7WWUuU2hlZXROYW1l''@;'; + put 'put ''cy5tYXAoZnVuY3Rpb24oRHQpe3JldHVybiBZZS5TaGVldHNbRHRdfSkuZm9yRWFjaChmdW5jdGlvbihEdCl7aWYoRHQmJkR0WyIhcm93cyJdKWZvcih2YXIgenQ9MDt6dDxEdFsiIXJvd3MiXS5sZW5ndGg7Kyt6dClpZihEdFsiIXJvd3MiXVt6dF0pe0R0WyIhcm93cyJdW3p0XS5vZHM9VXQ7''@;'; + put 'put ''dmFyIFBuPUR0WyIhcm93cyJdW3p0XS5ocHgrInB4IjtNdC5wdXNoKCcgIDxzdHlsZTpzdHlsZSBzdHlsZTpuYW1lPSJybycrVXQrJyIgc3R5bGU6ZmFtaWx5PSJ0YWJsZS1yb3ciPlxuJyksTXQucHVzaCgnICAgPHN0eWxlOnRhYmxlLXJvdy1wcm9wZXJ0aWVzIGZvOmJyZWFrLWJlZm9yZT0i''@;'; + put 'put ''YXV0byIgc3R5bGU6cm93LWhlaWdodD0iJytQbisnIi8+XG4nKSxNdC5wdXNoKCIgIDwvc3R5bGU6c3R5bGU+XG4iKSwrK1V0fX0pLE10LnB1c2goJyAgPHN0eWxlOnN0eWxlIHN0eWxlOm5hbWU9InRhMSIgc3R5bGU6ZmFtaWx5PSJ0YWJsZSIgc3R5bGU6bWFzdGVyLXBhZ2UtbmFtZT0ibXAx''@;'; + put 'put ''Ij5cbicpLE10LnB1c2goJyAgIDxzdHlsZTp0YWJsZS1wcm9wZXJ0aWVzIHRhYmxlOmRpc3BsYXk9InRydWUiIHN0eWxlOndyaXRpbmctbW9kZT0ibHItdGIiLz5cbicpLE10LnB1c2goIiAgPC9zdHlsZTpzdHlsZT5cbiIpLE10LnB1c2goJyAgPHN0eWxlOnN0eWxlIHN0eWxlOm5hbWU9ImNl''@;'; + put 'put ''MSIgc3R5bGU6ZmFtaWx5PSJ0YWJsZS1jZWxsIiBzdHlsZTpwYXJlbnQtc3R5bGUtbmFtZT0iRGVmYXVsdCIgc3R5bGU6ZGF0YS1zdHlsZS1uYW1lPSJOMzciLz5cbicpO3ZhciBubj0yO1V0PTAsWWUuU2hlZXROYW1lcy5tYXAoZnVuY3Rpb24oRHQpe3JldHVybiBZZS5TaGVldHNbRHRdfSku''@;'; + put 'put ''Zm9yRWFjaChmdW5jdGlvbihEdCl7aWYoRHQpZm9yKHZhciB6dD0wLFBuPTAsVG49dnMoRHRbIiFyZWYiXSksT249QXJyYXkuaXNBcnJheShEdCk7enQ8PVRuLmUucjsrK3p0KWZvcihQbj0wO1BuPD1Ubi5lLmM7KytQbil7dmFyIFluPVkwKHtyOnp0LGM6UG59KSxNcj1Pbj8oRHRbenRdfHxb''@;'; + put 'put ''XSlbUG5dOkR0W1luXTtpZihNciYmKE1yLnN8fE1yLlIpKXt2YXIgYWk9W107TXIucyYmYWkucHVzaChbTXIsITBdKSxNci5SJiZNci5SLmZvckVhY2goZnVuY3Rpb24oeXIpe3lyJiZ5ci5zJiZhaS5wdXNoKFt5ciwhMV0pfSksYWkuZm9yRWFjaChmdW5jdGlvbih5cil7dmFyIGFyPXlyWzBd''@;'; + put 'put ''LEdyPWFyLnMsenI9IiIscXI9eyJzdHlsZTpuYW1lIjooeXJbMV0/ImNlIjoiVCIpK25uLCJzdHlsZTpmYW1pbHkiOnlyWzFdPyJ0YWJsZS1jZWxsIjoidGV4dCJ9O3lyWzFdJiYocXJbInN0eWxlOnBhcmVudC1zdHlsZS1uYW1lIl09IkRlZmF1bHQiLHFyWyJzdHlsZTpkYXRhLXN0eWxlLW5h''@;'; + put 'put ''bWUiXT0iTjAiKTt2YXIgb2k9e30sY3I9ITEsZGk9e30sdjA9ITEsVWk9e30sdG89ITE7aWYoR3IuY29sb3ImJihkaVsiZm86Y29sb3IiXT0iIyIrTG8oR3IuY29sb3IucmdiKSx2MD0hMCksR3Iuc3omJihkaVsiZm86Zm9udC1zaXplIl09R3Iuc3orInB0Iix2MD0hMCksR3IuYm9sZCYmKGRp''@;'; + put 'put ''WyJmbzpmb250LXdlaWdodCJdPSJib2xkIix2MD0hMCksR3IuaXRhbGljJiYoZGlbImZvOmZvbnQtc3R5bGUiXT0iaXRhbGljIix2MD0hMCksR3IubmFtZSYmKHh0W0dyLm5hbWVdfHwoeHRbR3IubmFtZV09R3IubmFtZS5tYXRjaCgvIC8pPyImYXBvczsiK0dyLm5hbWUrIiZhcG9zOyI6R3Iu''@;'; + put 'put ''bmFtZSksZGlbInN0eWxlOmZvbnQtbmFtZSJdPUdyLm5hbWUsdjA9ITApLEdyLnN0cmlrZSYmKGRpWyJzdHlsZTp0ZXh0LWxpbmUtdGhyb3VnaC1zdHlsZSJdPSJzb2xpZCIsZGlbInN0eWxlOnRleHQtbGluZS10aHJvdWdoLXR5cGUiXT0ic2luZ2xlIix2MD0hMCksR3IudW5kZXJsaW5lJiYo''@;'; + put 'put ''ZGlbInN0eWxlOnRleHQtdW5kZXJsaW5lLXN0eWxlIl09InNvbGlkIixkaVsic3R5bGU6dGV4dC11bmRlcmxpbmUtd2lkdGgiXT0iYXV0byIsZGlbInN0eWxlOnRleHQtdW5kZXJsaW5lLWNvbG9yIl09ImZvbnQtY29sb3IiLHYwPSEwKSx5clsxXSl7aWYoR3IuYWxpZ25tZW50KXt2YXIgQTA9''@;'; + put 'put ''R3IuYWxpZ25tZW50O0EwLndyYXBUZXh0JiYob2lbImZvOndyYXAtb3B0aW9uIl09IndyYXAiLGNyPSEwKSxBMC52ZXJ0aWNhbCYmKG9pWyJzdHlsZTp2ZXJ0aWNhbC1hbGlnbiJdPSJjZW50ZXIiPT1BMC52ZXJ0aWNhbD8ibWlkZGxlIjpBMC52ZXJ0aWNhbCxjcj0hMCksRmVbQTAuaG9yaXpv''@;'; + put 'put ''bnRhbF0mJihVaVsiZm86dGV4dC1hbGlnbiJdPUZlW0EwLmhvcml6b250YWxdLHRvPSEwKX1Hci5mZ0NvbG9yJiYob2lbImZvOmJhY2tncm91bmQtY29sb3IiXT0iIyIrTG8oR3IuZmdDb2xvci5yZ2IpLGNyPSEwKX1jciYmKHpyKz1faSgic3R5bGU6dGFibGUtY2VsbC1wcm9wZXJ0aWVzIixu''@;'; + put 'put ''dWxsLG9pKSksdjAmJih6cis9X2koInN0eWxlOnRleHQtcHJvcGVydGllcyIsbnVsbCxkaSkpLHRvJiYoenIrPV9pKCJzdHlsZTpwYXJhZ3JhcGgtcHJvcGVydGllcyIsbnVsbCxVaSkpLE10LnB1c2goIiAgIitfaSgic3R5bGU6c3R5bGUiLHpyLHFyKSsiXG4iKSxhci5vZHM9bm4sKytubn0p''@;'; + put 'put ''fX19KSxNdC5wdXNoKCIgPC9vZmZpY2U6YXV0b21hdGljLXN0eWxlcz5cbiIpO3ZhciBDbj0iIDxvZmZpY2U6Zm9udC1mYWNlLWRlY2xzPlxuIitvbih4dCkubWFwKGZ1bmN0aW9uKER0KXtyZXR1cm4nICA8c3R5bGU6Zm9udC1mYWNlIHN0eWxlOm5hbWU9IicrRHQrJyIgc3ZnOmZvbnQtZmFt''@;'; + put 'put ''aWx5PSInK3h0W0R0XSsnIi8+XG4nfSkuam9pbigiIikrIiA8L29mZmljZTpmb250LWZhY2UtZGVjbHM+XG4iO2plLnB1c2goQ24pLGplLnB1c2goTXQuam9pbigiIikpfSh4dCxZZSkseHQucHVzaCgiICA8b2ZmaWNlOmJvZHk+XG4iKSx4dC5wdXNoKCIgICAgPG9mZmljZTpzcHJlYWRzaGVl''@;'; + put 'put ''dD5cbiIpO2Zvcih2YXIgbm49MDtubiE9WWUuU2hlZXROYW1lcy5sZW5ndGg7Kytubil4dC5wdXNoKHhlKFllLlNoZWV0c1tZZS5TaGVldE5hbWVzW25uXV0sWWUsbm4pKTtyZXR1cm4geHQucHVzaCgiICAgIDwvb2ZmaWNlOnNwcmVhZHNoZWV0PlxuIikseHQucHVzaCgiICA8L29mZmljZTpi''@;'; + put 'put ''b2R5PlxuIikseHQucHVzaCgiZm9kcyI9PU10LmJvb2tUeXBlPyI8L29mZmljZTpkb2N1bWVudD4iOiI8L29mZmljZTpkb2N1bWVudC1jb250ZW50PiIpLHh0LmpvaW4oIiIpfX0oKTtmdW5jdGlvbiB4QShILHJlKXtpZigiZm9kcyI9PXJlLmJvb2tUeXBlKXJldHVybiBKNChILHJlKTt2YXIg''@;'; + put 'put ''WD1rcigpLHdlPSIiLHhlPVtdLEZlPVtdO3JldHVybiB6bihYLHdlPSJtaW1ldHlwZSIsImFwcGxpY2F0aW9uL3ZuZC5vYXNpcy5vcGVuZG9jdW1lbnQuc3ByZWFkc2hlZXQiKSx6bihYLHdlPSJjb250ZW50LnhtbCIsSjQoSCxyZSkpLHhlLnB1c2goW3dlLCJ0ZXh0L3htbCJdKSxGZS5wdXNo''@;'; + put 'put ''KFt3ZSwiQ29udGVudEZpbGUiXSksem4oWCx3ZT0ic3R5bGVzLnhtbCIsYUMoSCxyZSkpLHhlLnB1c2goW3dlLCJ0ZXh0L3htbCJdKSxGZS5wdXNoKFt3ZSwiU3R5bGVzRmlsZSJdKSx6bihYLHdlPSJtZXRhLnhtbCIsY24rJG8oKSkseGUucHVzaChbd2UsInRleHQveG1sIl0pLEZlLnB1c2go''@;'; + put 'put ''W3dlLCJNZXRhZGF0YUZpbGUiXSksem4oWCx3ZT0ibWFuaWZlc3QucmRmIixmdW5jdGlvbiBTaShIKXt2YXIgcmU9W2NuXTtyZS5wdXNoKCc8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPlxuJyk7Zm9yKHZhciBYPTA7WCE9''@;'; + put 'put ''SC5sZW5ndGg7KytYKXJlLnB1c2goXyhIW1hdWzBdLEhbWF1bMV0pKSxyZS5wdXNoKEFvKCIiLEhbWF1bMF0pKTtyZXR1cm4gcmUucHVzaChfKCIiLCJEb2N1bWVudCIsInBrZyIpKSxyZS5wdXNoKCI8L3JkZjpSREY+IikscmUuam9pbigiIil9KEZlKSkseGUucHVzaChbd2UsImFwcGxpY2F0''@;'; + put 'put ''aW9uL3JkZit4bWwiXSksem4oWCx3ZT0iTUVUQS1JTkYvbWFuaWZlc3QueG1sIixmdW5jdGlvbiBqbihIKXt2YXIgcmU9W2NuXTtyZS5wdXNoKCc8bWFuaWZlc3Q6bWFuaWZlc3QgeG1sbnM6bWFuaWZlc3Q9InVybjpvYXNpczpuYW1lczp0YzpvcGVuZG9jdW1lbnQ6eG1sbnM6bWFuaWZlc3Q6''@;'; + put 'put ''MS4wIiBtYW5pZmVzdDp2ZXJzaW9uPSIxLjIiPlxuJykscmUucHVzaCgnICA8bWFuaWZlc3Q6ZmlsZS1lbnRyeSBtYW5pZmVzdDpmdWxsLXBhdGg9Ii8iIG1hbmlmZXN0OnZlcnNpb249IjEuMiIgbWFuaWZlc3Q6bWVkaWEtdHlwZT0iYXBwbGljYXRpb24vdm5kLm9hc2lzLm9wZW5kb2N1bWVu''@;'; + put 'put ''dC5zcHJlYWRzaGVldCIvPlxuJyk7Zm9yKHZhciBYPTA7WDxILmxlbmd0aDsrK1gpcmUucHVzaCgnICA8bWFuaWZlc3Q6ZmlsZS1lbnRyeSBtYW5pZmVzdDpmdWxsLXBhdGg9IicrSFtYXVswXSsnIiBtYW5pZmVzdDptZWRpYS10eXBlPSInK0hbWF1bMV0rJyIvPlxuJyk7cmV0dXJuIHJlLnB1''@;'; + put 'put ''c2goIjwvbWFuaWZlc3Q6bWFuaWZlc3Q+IikscmUuam9pbigiIil9KHhlKSksWH1mdW5jdGlvbiBqaChIKXtyZXR1cm4gZnVuY3Rpb24oWCx3ZSl7dmFyIHhlPWZ1bmN0aW9uIGpQKEgscmUpe2lmKCFyZSlyZXR1cm4gMDt2YXIgWD1ILlNoZWV0TmFtZXMuaW5kZXhPZihyZSk7aWYoLTE9PVgp''@;'; + put 'put ''dGhyb3cgbmV3IEVycm9yKCJTaGVldCBub3QgZm91bmQ6ICIrcmUpO3JldHVybiBYfShYLHdlLnNoZWV0KTtyZXR1cm4gSC5mcm9tX3NoZWV0KFguU2hlZXRzW1guU2hlZXROYW1lc1t4ZV1dLHdlLFgpfX12YXIgamQ9amgodXMpLFRBPWpoKHtmcm9tX3NoZWV0Okw1fSksbEM9amgodm9pZCAw''@;'; + put 'put ''IT09Zm0/Zm06e30pLHNDPWpoKHZvaWQgMCE9PXZiP3ZiOnt9KSxzaT1qaCh2b2lkIDAhPT1BMz9BMzp7fSksWlA9amgodm9pZCAwIT09RTk/RTk6e30pLGhUPWpoKHtmcm9tX3NoZWV0Om1DfSksdUM9amgodm9pZCAwIT09WWY/WWY6e30pLFZsPWpoKHZvaWQgMCE9PSRNPyRNOnt9KSxIcz1M''@;'; + put 'put ''KDQxMzQ4KXx8InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cmJndpbmRvdy5jcnlwdG9Ccm93c2VyaWZ5O2lmKCFIcyl0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBmaW5kIGNyeXB0byBleHRlbnNpb25zISIpO3ZhciBjQz17U0hBNTEyOiJzaGE1MTIiLFNIQTI1Njoic2hhMjU2IixTSEEzODQ6''@;'; + put 'put ''InNoYTM4NCIsU0hBMToic2hhMSIsTUQ1OiJtZDUiLE1ENDoibWQ0IixNRDI6Im1kMiJ9O2Z1bmN0aW9uIGsyKEgscmUpe3N3aXRjaChyZT0ocmV8fCIiKS5yZXBsYWNlKC8tL2csIiIpKXtjYXNlIlNIQS01MTIiOmNhc2UiU0hBNTEyIjpyZXR1cm4gbmV3IEhzLmNyZWF0ZUhhc2goInNoYTUx''@;'; + put 'put ''MiIpLnVwZGF0ZShIKS5kaWdlc3QoKTtjYXNlIlNIQS0xIjpjYXNlIlNIQTEiOnJldHVybiBuZXcgSHMuY3JlYXRlSGFzaCgic2hhMSIpLnVwZGF0ZShIKS5kaWdlc3QoKTtjYXNlIk1EMiI6cmV0dXJuIG5ldyBIcy5jcmVhdGVIYXNoKCJtZDIiKS51cGRhdGUoSCkuZGlnZXN0KCk7ZGVmYXVs''@;'; + put 'put ''dDppZihjQ1tyZV0pcmV0dXJuIG5ldyBIcy5jcmVhdGVIYXNoKGNDW3JlXSkudXBkYXRlKEgpLmRpZ2VzdCgpO3Rocm93IG5ldyBFcnJvcigiVW5zdXBwb3J0ZWQgaGFzaCBhbGdvcml0aG0gIityZSl9fWZ1bmN0aW9uIE82KEgscmUsWCl7aWYoInJjMiI9PVgpdGhyb3ciVW5zdXBwb3J0ZWQg''@;'; + put 'put ''UkMyIjt2YXIgd2U9SHMuY3JlYXRlRGVjaXBoZXJpdihYfHwiYWVzLTI1Ni1jYmMiLEgscmUpO3JldHVybiB3ZS5zZXRBdXRvUGFkZGluZyghMSksd2V9ZnVuY3Rpb24gZFQoSCxyZSl7dmFyIFg9QnVmZmVyLmZyb20oSC5zYWx0LCJiYXNlNjQiKSx3ZT1ILmFsZ28seGU9azIoQnVmZmVyLmNv''@;'; + put 'put ''bmNhdChbWCxCdWZmZXIuZnJvbShjcHRhYmxlLnV0aWxzLmVuY29kZSgxMjAwLHJlKSldKSx3ZSksRmU9QnVmZmVyLmFsbG9jKDQpO0tsKEZlLDApO2Zvcih2YXIgWmU9MDtaZTxILnNwaW47KytaZSlGZS5sPTAsRmUud3JpdGVfc2hpZnQoNCxaZSkseGU9azIoQnVmZmVyLmNvbmNhdChbeGUs''@;'; + put 'put ''RmVdKSx3ZSk7dmFyIGplPUJ1ZmZlci5mcm9tKEguaGFzaCwiYmFzZTY0Iik7cmV0dXJuIDA9PXhlLmNvbXBhcmUoamUpfWZ1bmN0aW9uIExpKEgpe3ZhciByZT17YWxnbzoiU0hBLTUxMiIsc2FsdDoiVTJobFpYUktVeTVqYjIwdmVHeHplQT09IixzcGluOjFlM30sWD1CdWZmZXIuZnJvbShy''@;'; + put 'put ''ZS5zYWx0LCJiYXNlNjQiKSx3ZT1yZS5hbGdvLHhlPWsyKEJ1ZmZlci5jb25jYXQoW1gsQnVmZmVyLmZyb20oY3B0YWJsZS51dGlscy5lbmNvZGUoMTIwMCxIKSldKSx3ZSksRmU9QnVmZmVyLmFsbG9jKDQpO0tsKEZlLDApO2Zvcih2YXIgWmU9MDtaZTxyZS5zcGluOysrWmUpRmUubD0wLEZl''@;'; + put 'put ''LndyaXRlX3NoaWZ0KDQsWmUpLHhlPWsyKEJ1ZmZlci5jb25jYXQoW3hlLEZlXSksd2UpO3JldHVybiByZS5oYXNoPXhlLnRvU3RyaW5nKCJiYXNlNjQiKSxyZX1mdW5jdGlvbiBIbyhILHJlLFgsd2Upe3ZhciB4ZT1tdC51dGlscy5wcmVwX2Jsb2I7aWYoImh0dHA6Ly9zY2hlbWFzLm1pY3Jv''@;'; + put 'put ''c29mdC5jb20vb2ZmaWNlLzIwMDYva2V5RW5jcnlwdG9yL3Bhc3N3b3JkIiE9SC51cmkpdGhyb3cgbmV3IEVycm9yKCJVbnN1cHBvcnRlZCBFQ01BLTM3NiBBZ2lsZSBVUkkgIitILnVyaSk7dmFyIEZlPUguZW5jc1swXSxaZT1GZS5oYXNoQWxnb3JpdGhtLGplPSJhZXMtMjU2LWNiYyIsWWU9''@;'; + put 'put ''QnVmZmVyLmZyb20oRmUuc2FsdFZhbHVlLCJiYXNlNjQiKSxNdD1CdWZmZXIuZnJvbShILnNhbHRWYWx1ZSwiYmFzZTY0IikseHQ9K0ZlLmJsb2NrU2l6ZSxSdD0rRmUua2V5Qml0cz4+MyxVdD1rMihCdWZmZXIuY29uY2F0KFtZZSxCdWZmZXIuZnJvbShjcHRhYmxlLnV0aWxzLmVuY29kZSgx''@;'; + put 'put ''MjAwLFgpKV0pLFplKSxubj1CdWZmZXIuYWxsb2MoNCk7eGUobm4sMCk7Zm9yKHZhciBDbj0wO0NuPEZlLnNwaW5Db3VudDsrK0NuKW5uLmw9MCxubi53cml0ZV9zaGlmdCg0LENuKSxVdD1rMihCdWZmZXIuY29uY2F0KFtubixVdF0pLFplKTt2YXIgRHQ9ZnVuY3Rpb24ob2ksY3IsZGksdjAp''@;'; + put 'put ''e3ZhciBVaT1rMihCdWZmZXIuY29uY2F0KFtvaSxCdWZmZXIuZnJvbShbMjAsMTEwLDExLDIzMSwxNzEsMTcyLDIwOCwyMTRdKV0pLHYwKSx0bz1VaS5sZW5ndGg+PWRpP1VpLnNsaWNlKDAsZGkpOkJ1ZmZlci5hbGxvYyhkaSk7aWYoVWkubGVuZ3RoPGRpKXtmb3IodmFyIEEwPTA7QTA8VWku''@;'; + put 'put ''bGVuZ3RoOysrQTApdG9bQTBdPVVpW0EwXTtmb3IoO0EwPGRpOysrQTApdG9bQTBdPTU0fXJldHVybiB0b30oVXQsMCxSdCxaZSk7c3dpdGNoKEZlLmNpcGhlckFsZ29yaXRobSl7Y2FzZSJBRVMiOmlmKCJDaGFpbmluZ01vZGVDQkMiIT1GZS5jaXBoZXJDaGFpbmluZyl0aHJvdyBuZXcgRXJy''@;'; + put 'put ''b3IoIlVuc3VwcG9ydGVkIGNpcGhlciBjaGFpbmluZyAiK0ZlLmNpcGhlckNoYWluaW5nKTtqZT0iYWVzLSIrRmUua2V5Qml0cysiLWNiYyI7YnJlYWs7Y2FzZSJSQzIiOmplPSJyYzIiO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJVbnN1cHBvcnRlZCBjaXBoZXIgYWxnbyAiK0Zl''@;'; + put 'put ''LmNpcGhlckFsZ29yaXRobSl9WWU9ZnVuY3Rpb24ocXIpe2Zvcih2YXIgb2k9QnVmZmVyLmFsbG9jKHh0KSxjcj0wO2NyPHh0OysrY3Ipb2lbY3JdPWNyPHFyLmxlbmd0aD9xcltjcl06NTQ7cmV0dXJuIG9pfShZZSk7dmFyIHp0PUJ1ZmZlci5mcm9tKEZlLmVuY3J5cHRlZEtleVZhbHVlLCJi''@;'; + put 'put ''YXNlNjQiKSxQbj1PNihEdCxZZSxqZSkudXBkYXRlKHp0KSxUbj1PNihrMihCdWZmZXIuY29uY2F0KFtVdCxCdWZmZXIuZnJvbShbMjE1LDE3MCwxNSwxMDksNDgsOTcsNTIsNzhdKV0pLFplKS5zbGljZSgwLFJ0KSxZZSxqZSkudXBkYXRlKEJ1ZmZlci5mcm9tKEZlLmVuY3J5cHRlZFZlcmlm''@;'; + put 'put ''aWVySGFzaFZhbHVlLCJiYXNlNjQiKSksT249azIoTzYoazIoQnVmZmVyLmNvbmNhdChbVXQsQnVmZmVyLmZyb20oWzI1NCwxNjcsMjEwLDExOCw1OSw3NSwxNTgsMTIxXSldKSxaZSkuc2xpY2UoMCxSdCksWWUsamUpLnVwZGF0ZShCdWZmZXIuZnJvbShGZS5lbmNyeXB0ZWRWZXJpZmllckhh''@;'; + put 'put ''c2hJbnB1dCwiYmFzZTY0IikpLFplKSxZbj0rRmUuaGFzaFNpemV8fE1hdGgubWluKFRuLmxlbmd0aCxPbi5sZW5ndGgpO2lmKDAhPVRuLnNsaWNlKDAsWW4pLmNvbXBhcmUoT24uc2xpY2UoMCxZbikpKXRocm93IG5ldyBFcnJvcigiSW5jb3JyZWN0IFBhc3N3b3JkIik7eGUocmUsMCk7dmFy''@;'; + put 'put ''IE1yPXJlLnJlYWRfc2hpZnQoNCk7cmUubCs9NDt2YXIgYWk9W10seXI9QnVmZmVyLmNvbmNhdChbTXQsQnVmZmVyLmFsbG9jKDQpXSk7Zm9yKHhlKHlyKSxDbj0wO3JlLmw8cmUubGVuZ3RoOyl5ci5sPVllLmxlbmd0aCx5ci53cml0ZV9zaGlmdCg0LENuKSxhaS5wdXNoKE82KFBuLGsyKEJ1''@;'; + put 'put ''ZmZlci5mcm9tKHlyKSxaZSkuc2xpY2UoMCwxNiksamUpLnVwZGF0ZShCdWZmZXIuZnJvbShyZS5zbGljZShyZS5sLHJlLmwrNDA5NikpKSkscmUubCs9NDA5NiwrK0NuO3ZhciBHcj1CdWZmZXIuY29uY2F0KGFpKS5zbGljZSgwLE1yKSx6cj1sbih3ZSk7cmV0dXJuIHpyLnR5cGU9ImJ1ZmZl''@;'; + put 'put ''ciIsemQoR3IsenIpfWZ1bmN0aW9uIGtjKEgscmUsWCx3ZSl7dmFyIHhlPW10LnV0aWxzLnByZXBfYmxvYjtpZigiU3RkIiE9PUgudCl0aHJvdyBuZXcgRXJyb3IoIkVDTUEtMzc2IEJhZCBTdGFuZGFyZCBFbmNyeXB0aW9uIik7dmFyIEZlPUgudi5TYWx0LFplPUgudi5WZXJpZmllcixqZT1I''@;'; + put 'put ''LnYuVmVyaWZpZXJIYXNoO2lmKDM2IT1ILmguRmxhZ3MpdGhyb3cgbmV3IEVycm9yKCJFQ01BLTM3NiBTdGFuZGFyZCBFbmNyeXB0aW9uIGJhZCBGbGFncyIpO3ZhciBZZT0wLE10PSIiO3N3aXRjaChILmguQWxnSUQpe2Nhc2UgMjYxMjY6WWU9MTI4LE10PSJhZXMtMTI4LWVjYiI7YnJlYWs7''@;'; + put 'put ''Y2FzZSAyNjEyNzpZZT0xOTYsTXQ9ImFlcy0xOTItZWNiIjticmVhaztjYXNlIDI2MTI4OlllPTI1NixNdD0iYWVzLTI1Ni1lY2IiO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJFQ01BLTM3NiBCYWQgU3RhbmRhcmQgRW5jcnlwdGlvbiIpfWlmKDMyNzcyIT1ILmguQWxnSURIYXNo''@;'; + put 'put ''KXRocm93IG5ldyBFcnJvcigiRUNNQS0zNzYgQmFkIFN0YW5kYXJkIEVuY3J5cHRpb24iKTtpZihILmguS2V5U2l6ZSE9WWUpdGhyb3cgbmV3IEVycm9yKCJBbGdJRC9LZXlTaXplIG1pc21hdGNoIik7aWYoMjQhPUguaC5Qcm92aWRlclR5cGUpdGhyb3cgbmV3IEVycm9yKCJFQ01BLTM3NiB1''@;'; + put 'put ''bnN1cHBvcnRlZCBQcm92aWRlclR5cGUgIitILmguUHJvdmlkZXJUeXBlKTt2YXIgeHQ9Ik1pY3Jvc29mdCBFbmhhbmNlZCBSU0EgYW5kIEFFUyBDcnlwdG9ncmFwaGljIFByb3ZpZGVyIjtpZihILmguQ1NQTmFtZS5zbGljZSgwLHh0Lmxlbmd0aCkhPT14dCl0aHJvdyBuZXcgRXJyb3IoIlVu''@;'; + put 'put ''c3VwcG9ydGVkIENyeXB0byBQcm92aWRlciAiK0guaC5DU1BOYW1lKTt2YXIgUnQ9IlNIQS0xIixVdD1ZZT4+Myxubj1rMihCdWZmZXIuY29uY2F0KFtGZSxjcHRhYmxlLnV0aWxzLmVuY29kZSgxMjAwLFgpXSksUnQpLENuPUJ1ZmZlci5hbGxvYyg0KTt4ZShDbiwwKTtmb3IodmFyIER0PTA7''@;'; + put 'put ''RHQ8NWU0OysrRHQpQ24ubD0wLENuLndyaXRlX3NoaWZ0KDQsRHQpLG5uPWsyKEJ1ZmZlci5jb25jYXQoW0NuLG5uXSksUnQpO0NuLmw9MCxDbi53cml0ZV9zaGlmdCg0LDApO3ZhciBhaSxhcixHcix6cixQbj0oR3I9KGFyPWZ1bmN0aW9uKG9pLGNyLGRpKXtmb3IodmFyIHYwPUJ1ZmZlci5h''@;'; + put 'put ''bGxvYyg2NCksVWk9MDtVaTx2MC5sZW5ndGg7KytVaSl2MFtVaV09b2k7Zm9yKFVpPTA7VWk8Y3IubGVuZ3RoOysrVWkpdjBbVWldXj1jcltVaV07cmV0dXJuIGsyKHYwLGRpKX0pKDU0LGFpPWsyKEJ1ZmZlci5jb25jYXQoW25uLENuXSksUnQpLCJTSEEtMSIpLHpyPWFyKDkyLGFpLCJTSEEt''@;'; + put 'put ''MSIpLEJ1ZmZlci5jb25jYXQoW0dyLHpyXSkuc2xpY2UoMCxVdCkpO2lmKE82KFBuLEJ1ZmZlci5hbGxvYygwKSxNdCkudXBkYXRlKGplKS5zbGljZSgwLDIwKS5jb21wYXJlKGsyKE82KFBuLEJ1ZmZlci5hbGxvYygwKSxNdCkudXBkYXRlKFplKSxSdCkpKXRocm93IG5ldyBFcnJvcigiSW5j''@;'; + put 'put ''b3JyZWN0IFBhc3N3b3JkIik7eGUocmUsMCk7dmFyIFRuPXJlLnJlYWRfc2hpZnQoNCk7cmUubCs9NDt2YXIgT249W107Zm9yKER0PTA7cmUubDxyZS5sZW5ndGg7KU9uLnB1c2goTzYoUG4sQnVmZmVyLmFsbG9jKDApLE10KS51cGRhdGUocmUuc2xpY2UocmUubCxyZS5sKzQwOTYpKSkscmUu''@;'; + put 'put ''bCs9NDA5NiwrK0R0O3JldHVybiB6ZChCdWZmZXIuY29uY2F0KE9uKS5zbGljZSgwLFRuKSx3ZSl9ZnVuY3Rpb24gSTUoSCl7cmV0dXJuWygiMDAiKygyNTUmSCkudG9TdHJpbmcoMTYpKS5zbGljZSgtMiksKCIwMCIrKEg+Pj44JjI1NSkudG9TdHJpbmcoMTYpKS5zbGljZSgtMiksKCIwMCIr''@;'; + put 'put ''KEg+Pj4xNiYyNTUpLnRvU3RyaW5nKDE2KSkuc2xpY2UoLTIpLCgiMDAiKyhIPj4+MjQmMjU1KS50b1N0cmluZygxNikpLnNsaWNlKC0yKV0uam9pbigiIil9dmFyIFI2PWZ1bmN0aW9uKEgscmUsWCl7Zm9yKHZhciB3ZT0ic3RyaW5nIj09dHlwZW9mIHJlP0J1ZmZlci5mcm9tKHJlLCJoZXgi''@;'; + put 'put ''KTpyZSx4ZT0ic3RyaW5nIj09dHlwZW9mIEg/QnVmZmVyLmZyb20oY3B0YWJsZS51dGlscy5lbmNvZGUoMTIwMCxIKSk6SCxGZT0ic3RyaW5nIj09dHlwZW9mIFg/QnVmZmVyLmZyb20oWCwiaGV4Iik6WCxaZT1rMih4ZSwiTUQ1IiksamU9QnVmZmVyLmNvbmNhdChbWmUuc2xpY2UoMCw1KSx3''@;'; + put 'put ''ZV0pLFllPTA7WWU8NDsrK1llKWplPUJ1ZmZlci5jb25jYXQoW2plLGplXSk7dmFyIE10PWsyKGplLCJNRDUiKTtyZXR1cm4oazIoQnVmZmVyLmNvbmNhdChbTXQuc2xpY2UoMCw1KSxGZV0pLCJNRDUiKS50b1N0cmluZygiaGV4IikrIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw''@;'; + put 'put ''Iikuc2xpY2UoMCwzMil9LElBPWZ1bmN0aW9uKEgscmUsWCl7dmFyIHdlPSJzdHJpbmciPT10eXBlb2YgcmU/QnVmZmVyLmZyb20ocmUsImhleCIpOnJlLHhlPSJzdHJpbmciPT10eXBlb2YgSD9CdWZmZXIuZnJvbShjcHRhYmxlLnV0aWxzLmVuY29kZSgxMjAwLEgpKTpILEZlPSJzdHJpbmci''@;'; + put 'put ''PT10eXBlb2YgWD9CdWZmZXIuZnJvbShYLCJoZXgiKTpYLFplPWsyKEJ1ZmZlci5jb25jYXQoW3dlLHhlXSksIlNIQTEiKTtyZXR1cm4gazIoQnVmZmVyLmNvbmNhdChbWmUsRmVdKSwiU0hBMSIpfSxTZj1mdW5jdGlvbigpe2Z1bmN0aW9uIHJlKCl7fXJlLnByb3RvdHlwZS5idWlsZD1mdW5j''@;'; + put 'put ''dGlvbihEdCl7dGhpcy5faT0wO3ZhciB6dD10aGlzLl9idWlsZChEdCwiIik7cmV0dXJuIiI9PT16dD8iIjonPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI/PicrenR9LHJlLnByb3RvdHlwZS5fYnVpbGQ9ZnVuY3Rpb24oRHQsenQpe2lmKHRo''@;'; + put 'put ''aXMuX2krKyUxZTY9PTAmJih0aGlzLl9jPXp0WzBdKSxudWxsPT1EdHx8Im9iamVjdCIhPXR5cGVvZiBEdCYmImZ1bmN0aW9uIiE9dHlwZW9mIER0KW51bGwhPUR0JiYoenQrPWZ1bmN0aW9uIEgoRHQsenQpe3JldHVybiBudWxsPT1EdHx8KER0PUR0LnRvU3RyaW5nKCkucmVwbGFjZSgvJi9n''@;'; + put 'put ''LCImYW1wOyIpLnJlcGxhY2UoLzwvZywiJmx0OyIpLnJlcGxhY2UoLz4vZywiJmd0OyIpLHp0JiYoRHQ9RHQucmVwbGFjZSgvIi9nLCImcXVvdDsiKSkpLER0fShEdCkpO2Vsc2V7aWYoIUR0Lm5hbWUpdGhyb3cgbmV3IEVycm9yKCJYTUwgbm9kZSBkb2VzIG5vdCBoYXZlIG5hbWU6ICIrSlNP''@;'; + put 'put ''Ti5zdHJpbmdpZnkoRHQpKTt6dCs9IjwiK0R0Lm5hbWU7dmFyIFBuPXRoaXM7enQrPUR0LmF0dHJpYnV0ZXMmJnJsKER0LmF0dHJpYnV0ZXMpfHwiIixBcnJheS5pc0FycmF5KER0LmNoaWxkcmVuKSYmMCE9RHQuY2hpbGRyZW4ubGVuZ3RoPyh6dCs9Ij4iLER0LmNoaWxkcmVuLmZvckVhY2go''@;'; + put 'put ''ZnVuY3Rpb24oVG4pe3p0PVBuLl9idWlsZChUbix6dCl9KSx6dCs9IjwvIitEdC5uYW1lKyI+Iik6enQrPSIvPiJ9cmV0dXJuIHp0fTt2YXIgWD1CdWZmZXIuZnJvbShbNCwwLDQsMCw2NCwwLDAsMF0pLEZlPXtkYXRhSW50ZWdyaXR5OntobWFjS2V5OkJ1ZmZlci5mcm9tKFs5NSwxNzgsMTcz''@;'; + put 'put ''LDEsMTIsMTg1LDIyNSwyNDZdKSxobWFjVmFsdWU6QnVmZmVyLmZyb20oWzE2MCwxMDMsMTI3LDIsMTc4LDQ0LDEzMiw1MV0pfSxrZXk6QnVmZmVyLmZyb20oWzIwLDExMCwxMSwyMzEsMTcxLDE3MiwyMDgsMjE0XSksdmVyaWZpZXJIYXNoOntpbnB1dDpCdWZmZXIuZnJvbShbMjU0LDE2Nywy''@;'; + put 'put ''MTAsMTE4LDU5LDc1LDE1OCwxMjFdKSx2YWx1ZTpCdWZmZXIuZnJvbShbMjE1LDE3MCwxNSwxMDksNDgsOTcsNTIsNzhdKX19O2Z1bmN0aW9uIFplKER0LHp0LFBuLFRuLE9uLFluKXt2YXIgTXI9enQudG9Mb3dlckNhc2UoKSsiLSIrOCpUbi5sZW5ndGg7aWYoIkNoYWluaW5nTW9kZUNCQyIh''@;'; + put 'put ''PT1Qbil0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gY2lwaGVyIGNoYWluaW5nOiAiK1BuKTt2YXIgYWk9SHNbRHQ/ImNyZWF0ZUNpcGhlcml2IjoiY3JlYXRlRGVjaXBoZXJpdiJdKE1yKz0iLWNiYyIsVG4sT24pO2FpLnNldEF1dG9QYWRkaW5nKCExKTt2YXIgeXI9YWkudXBkYXRlKFluKSxh''@;'; + put 'put ''cj1beXJdO3RyeXt2YXIgR3I9YWkuZmluYWwoKTthci5wdXNoKEdyKX1jYXRjaCh6cil7fXJldHVybiBCdWZmZXIuY29uY2F0KGFyKX1mdW5jdGlvbiBqZShEdCl7RHQ9RHQudG9Mb3dlckNhc2UoKTt2YXIgenQ9W10uc2xpY2UuY2FsbChhcmd1bWVudHMsMSksUG49SHMuZ2V0SGFzaGVzKCk7''@;'; + put 'put ''aWYoUG4uaW5kZXhPZihEdCk8MCl0aHJvdyBuZXcgRXJyb3IoIlVuc3VwcG9ydGVkIGhhc2ggYWxnb3JpdGhtICIrRHQpO3ZhciBUbj1Icy5jcmVhdGVIYXNoKER0KTtyZXR1cm4gVG4udXBkYXRlKEJ1ZmZlci5jb25jYXQoenQpKSxUbi5kaWdlc3QoKX1mdW5jdGlvbiBZZShEdCx6dCxQbixU''@;'; + put 'put ''bil7Im51bWJlciI9PXR5cGVvZiBUbiYmKFRuPU10KFRuKSk7dmFyIE9uPWplKER0LHp0LFRuKTtpZihPbi5sZW5ndGg8UG4pe3ZhciBZbj1CdWZmZXIuYWxsb2MoUG4sNTQpO09uLmNvcHkoWW4pLE9uPVlufWVsc2UgT24ubGVuZ3RoPlBuJiYoT249T24uc2xpY2UoMCxQbikpO3JldHVybiBP''@;'; + put 'put ''bn1mdW5jdGlvbiBNdChEdCx6dCl7dmFyIFBuPUJ1ZmZlci5hbGxvYyh6dHx8NCk7cmV0dXJuIFBuLndyaXRlVUludDMyTEUoRHQsMCksUG59ZnVuY3Rpb24geHQoRHQsenQsUG4sVG4sT24sWW4pe2Zvcih2YXIgYWk9amUoenQsUG4sQnVmZmVyLmZyb20oRHQsInV0ZjE2bGUiKSkseXI9MDt5''@;'; + put 'put ''cjxUbjt5cisrKWFpPWplKHp0LE10KHlyKSxhaSk7dmFyIEdyPU9uLzg7aWYoKGFpPWplKHp0LGFpLFluKSkubGVuZ3RoPEdyKXt2YXIgenI9QnVmZmVyLmFsbG9jKEdyLDU0KTthaS5jb3B5KHpyKSxhaT16cn1lbHNlIGFpLmxlbmd0aD5HciYmKGFpPWFpLnNsaWNlKDAsR3IpKTtyZXR1cm4g''@;'; + put 'put ''YWl9cmV0dXJuIEhzLnJhbmRvbUJ5dGVzfHwoSHMucmFuZG9tQnl0ZXM9ZnVuY3Rpb24oRHQpe2Zvcih2YXIgenQ9QnVmZmVyLmFsbG9jKER0KSxQbj0wO1BuPER0OysrUG4penRbUG5dPU1hdGguZmxvb3IoMjU2Kk1hdGgucmFuZG9tKCkpO3JldHVybiB6dH0pLGZ1bmN0aW9uIENuKER0LHp0''@;'; + put 'put ''KXtpZigic3RyaW5nIj09dHlwZW9mIER0KXJldHVybiBDbihCdWZmZXIuZnJvbShEdCwiYmluYXJ5IiksenQpO3ZhciBQbj1Icy5yYW5kb21CeXRlcygzMiksVG49e3BhY2thZ2U6e2NpcGhlckFsZ29yaXRobToiQUVTIixjaXBoZXJDaGFpbmluZzoiQ2hhaW5pbmdNb2RlQ0JDIixzYWx0VmFs''@;'; + put 'put ''dWU6SHMucmFuZG9tQnl0ZXMoMTYpLGhhc2hBbGdvcml0aG06IlNIQTUxMiIsaGFzaFNpemU6NjQsYmxvY2tTaXplOjE2LGtleUJpdHM6OCpQbi5sZW5ndGh9LGtleTp7Y2lwaGVyQWxnb3JpdGhtOiJBRVMiLGNpcGhlckNoYWluaW5nOiJDaGFpbmluZ01vZGVDQkMiLHNhbHRWYWx1ZTpIcy5y''@;'; + put 'put ''YW5kb21CeXRlcygxNiksaGFzaEFsZ29yaXRobToiU0hBNTEyIixoYXNoU2l6ZTo2NCxibG9ja1NpemU6MTYsc3BpbkNvdW50OjEsa2V5Qml0czoyNTZ9fSxPbj1mdW5jdGlvbiBSdChEdCx6dCxQbixUbixPbixZbixNcixhaSl7Zm9yKHZhciB5cj1bXSxhcj1EdD8wOjgsR3I9MCx6cj0wLHFy''@;'; + put 'put ''PTA7cXI8YWkubGVuZ3RoOyl7KHFyPSh6cj1xcikrNDA5Nik+YWkubGVuZ3RoJiYocXI9YWkubGVuZ3RoKTt2YXIgb2k9YWkuc2xpY2UoenIrYXIscXIrYXIpLGNyPW9pLmxlbmd0aCVPbjtjciYmKG9pPUJ1ZmZlci5jb25jYXQoW29pLEJ1ZmZlci5hbGxvYyhPbi1jcildKSk7dmFyIHYwPVpl''@;'; + put 'put ''KER0LHp0LFBuLE1yLFllKFRuLFluLE9uLEdyKSxvaSk7eXIucHVzaCh2MCksR3IrK312YXIgVWk9QnVmZmVyLmNvbmNhdCh5cik7aWYoRHQpVWk9QnVmZmVyLmNvbmNhdChbTXQoYWkubGVuZ3RoLDgpLFVpXSk7ZWxzZXt2YXIgdG89YWkucmVhZFVJbnQzMkxFKDApO1VpPVVpLnNsaWNlKDAs''@;'; + put 'put ''dG8pfXJldHVybiBVaX0oITAsVG4ucGFja2FnZS5jaXBoZXJBbGdvcml0aG0sVG4ucGFja2FnZS5jaXBoZXJDaGFpbmluZyxUbi5wYWNrYWdlLmhhc2hBbGdvcml0aG0sVG4ucGFja2FnZS5ibG9ja1NpemUsVG4ucGFja2FnZS5zYWx0VmFsdWUsUG4sRHQpLFluPUhzLnJhbmRvbUJ5dGVzKDY0''@;'; + put 'put ''KSxNcj1ZZShUbi5wYWNrYWdlLmhhc2hBbGdvcml0aG0sVG4ucGFja2FnZS5zYWx0VmFsdWUsVG4ucGFja2FnZS5ibG9ja1NpemUsRmUuZGF0YUludGVncml0eS5obWFjS2V5KSxhaT1aZSghMCxUbi5wYWNrYWdlLmNpcGhlckFsZ29yaXRobSxUbi5wYWNrYWdlLmNpcGhlckNoYWluaW5nLFBu''@;'; + put 'put ''LE1yLFluKSx5cj1mdW5jdGlvbiBVdChEdCx6dCl7RHQ9RHQudG9Mb3dlckNhc2UoKTt2YXIgUG49W10uc2xpY2UuY2FsbChhcmd1bWVudHMsMik7aWYoSHMuZ2V0SGFzaGVzKCkuaW5kZXhPZihEdCk8MCl0aHJvdyBuZXcgRXJyb3IoIkhNQUMgYWxnb3JpdGhtICciK0R0KyInIG5vdCBzdXBw''@;'; + put 'put ''b3J0ZWQhIik7dmFyIE9uPUhzLmNyZWF0ZUhtYWMoRHQsenQpO3JldHVybiBPbi51cGRhdGUoQnVmZmVyLmNvbmNhdChQbikpLE9uLmRpZ2VzdCgpfShUbi5wYWNrYWdlLmhhc2hBbGdvcml0aG0sWW4sT24pLGFyPVllKFRuLnBhY2thZ2UuaGFzaEFsZ29yaXRobSxUbi5wYWNrYWdlLnNhbHRW''@;'; + put 'put ''YWx1ZSxUbi5wYWNrYWdlLmJsb2NrU2l6ZSxGZS5kYXRhSW50ZWdyaXR5LmhtYWNWYWx1ZSksR3I9WmUoITAsVG4ucGFja2FnZS5jaXBoZXJBbGdvcml0aG0sVG4ucGFja2FnZS5jaXBoZXJDaGFpbmluZyxQbixhcix5cik7VG4uZGF0YUludGVncml0eT17ZW5jcnlwdGVkSG1hY0tleTphaSxl''@;'; + put 'put ''bmNyeXB0ZWRIbWFjVmFsdWU6R3J9O3ZhciB6cj14dCh6dCxUbi5rZXkuaGFzaEFsZ29yaXRobSxUbi5rZXkuc2FsdFZhbHVlLFRuLmtleS5zcGluQ291bnQsVG4ua2V5LmtleUJpdHMsRmUua2V5KTtUbi5rZXkuZW5jcnlwdGVkS2V5VmFsdWU9WmUoITAsVG4ua2V5LmNpcGhlckFsZ29yaXRo''@;'; + put 'put ''bSxUbi5rZXkuY2lwaGVyQ2hhaW5pbmcsenIsVG4ua2V5LnNhbHRWYWx1ZSxQbik7dmFyIHFyPUhzLnJhbmRvbUJ5dGVzKDE2KSxvaT14dCh6dCxUbi5rZXkuaGFzaEFsZ29yaXRobSxUbi5rZXkuc2FsdFZhbHVlLFRuLmtleS5zcGluQ291bnQsVG4ua2V5LmtleUJpdHMsRmUudmVyaWZpZXJI''@;'; + put 'put ''YXNoLmlucHV0KTtUbi5rZXkuZW5jcnlwdGVkVmVyaWZpZXJIYXNoSW5wdXQ9WmUoITAsVG4ua2V5LmNpcGhlckFsZ29yaXRobSxUbi5rZXkuY2lwaGVyQ2hhaW5pbmcsb2ksVG4ua2V5LnNhbHRWYWx1ZSxxcik7dmFyIGNyPWplKFRuLmtleS5oYXNoQWxnb3JpdGhtLHFyKSxkaT14dCh6dCxU''@;'; + put 'put ''bi5rZXkuaGFzaEFsZ29yaXRobSxUbi5rZXkuc2FsdFZhbHVlLFRuLmtleS5zcGluQ291bnQsVG4ua2V5LmtleUJpdHMsRmUudmVyaWZpZXJIYXNoLnZhbHVlKTtUbi5rZXkuZW5jcnlwdGVkVmVyaWZpZXJIYXNoVmFsdWU9WmUoITAsVG4ua2V5LmNpcGhlckFsZ29yaXRobSxUbi5rZXkuY2lw''@;'; + put 'put ''aGVyQ2hhaW5pbmcsZGksVG4ua2V5LnNhbHRWYWx1ZSxjcik7dmFyIHYwPWZ1bmN0aW9uIG5uKER0KXt2YXIgenQ9e25hbWU6ImVuY3J5cHRpb24iLGF0dHJpYnV0ZXM6e3htbG5zOiJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL29mZmljZS8yMDA2L2VuY3J5cHRpb24iLCJ4bWxuczpw''@;'; + put 'put ''IjoiaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9vZmZpY2UvMjAwNi9rZXlFbmNyeXB0b3IvcGFzc3dvcmQiLCJ4bWxuczpjIjoiaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9vZmZpY2UvMjAwNi9rZXlFbmNyeXB0b3IvY2VydGlmaWNhdGUifSxjaGlsZHJlbjpbe25hbWU6Imtl''@;'; + put 'put ''eURhdGEiLGF0dHJpYnV0ZXM6e3NhbHRTaXplOkR0LnBhY2thZ2Uuc2FsdFZhbHVlLmxlbmd0aCxibG9ja1NpemU6RHQucGFja2FnZS5ibG9ja1NpemUsa2V5Qml0czpEdC5wYWNrYWdlLmtleUJpdHMsaGFzaFNpemU6RHQucGFja2FnZS5oYXNoU2l6ZSxjaXBoZXJBbGdvcml0aG06RHQucGFj''@;'; + put 'put ''a2FnZS5jaXBoZXJBbGdvcml0aG0sY2lwaGVyQ2hhaW5pbmc6RHQucGFja2FnZS5jaXBoZXJDaGFpbmluZyxoYXNoQWxnb3JpdGhtOkR0LnBhY2thZ2UuaGFzaEFsZ29yaXRobSxzYWx0VmFsdWU6RHQucGFja2FnZS5zYWx0VmFsdWUudG9TdHJpbmcoImJhc2U2NCIpfX0se25hbWU6ImRhdGFJ''@;'; + put 'put ''bnRlZ3JpdHkiLGF0dHJpYnV0ZXM6e2VuY3J5cHRlZEhtYWNLZXk6RHQuZGF0YUludGVncml0eS5lbmNyeXB0ZWRIbWFjS2V5LnRvU3RyaW5nKCJiYXNlNjQiKSxlbmNyeXB0ZWRIbWFjVmFsdWU6RHQuZGF0YUludGVncml0eS5lbmNyeXB0ZWRIbWFjVmFsdWUudG9TdHJpbmcoImJhc2U2NCIp''@;'; + put 'put ''fX0se25hbWU6ImtleUVuY3J5cHRvcnMiLGNoaWxkcmVuOlt7bmFtZToia2V5RW5jcnlwdG9yIixhdHRyaWJ1dGVzOnt1cmk6Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vb2ZmaWNlLzIwMDYva2V5RW5jcnlwdG9yL3Bhc3N3b3JkIn0sY2hpbGRyZW46W3tuYW1lOiJwOmVuY3J5cHRl''@;'; + put 'put ''ZEtleSIsYXR0cmlidXRlczp7c3BpbkNvdW50OkR0LmtleS5zcGluQ291bnQsc2FsdFNpemU6RHQua2V5LnNhbHRWYWx1ZS5sZW5ndGgsYmxvY2tTaXplOkR0LmtleS5ibG9ja1NpemUsa2V5Qml0czpEdC5rZXkua2V5Qml0cyxoYXNoU2l6ZTpEdC5rZXkuaGFzaFNpemUsY2lwaGVyQWxnb3Jp''@;'; + put 'put ''dGhtOkR0LmtleS5jaXBoZXJBbGdvcml0aG0sY2lwaGVyQ2hhaW5pbmc6RHQua2V5LmNpcGhlckNoYWluaW5nLGhhc2hBbGdvcml0aG06RHQua2V5Lmhhc2hBbGdvcml0aG0sc2FsdFZhbHVlOkR0LmtleS5zYWx0VmFsdWUudG9TdHJpbmcoImJhc2U2NCIpLGVuY3J5cHRlZFZlcmlmaWVySGFz''@;'; + put 'put ''aElucHV0OkR0LmtleS5lbmNyeXB0ZWRWZXJpZmllckhhc2hJbnB1dC50b1N0cmluZygiYmFzZTY0IiksZW5jcnlwdGVkVmVyaWZpZXJIYXNoVmFsdWU6RHQua2V5LmVuY3J5cHRlZFZlcmlmaWVySGFzaFZhbHVlLnRvU3RyaW5nKCJiYXNlNjQiKSxlbmNyeXB0ZWRLZXlWYWx1ZTpEdC5rZXku''@;'; + put 'put ''ZW5jcnlwdGVkS2V5VmFsdWUudG9TdHJpbmcoImJhc2U2NCIpfX1dfV19XX0sVG49KG5ldyByZSkuYnVpbGQoenQpO3JldHVybiBCdWZmZXIuY29uY2F0KFtYLEJ1ZmZlci5mcm9tKFRuLCJ1dGY4IildKX0oVG4pLFVpPW10LnV0aWxzLmNmYl9uZXcoKTtyZXR1cm4gbXQudXRpbHMuY2ZiX2Fk''@;'; + put 'put ''ZChVaSwiRW5jcnlwdGlvbkluZm8iLHYwKSxtdC51dGlscy5jZmJfYWRkKFVpLCJFbmNyeXB0ZWRQYWNrYWdlIixPbiksVWl9fSgpO2Z1bmN0aW9uIFMwKEgpe3JldHVybiBmdW5jdGlvbihYKXtmb3IodmFyIHdlPTA7d2UhPUgubGVuZ3RoOysrd2Upe3ZhciB4ZT1IW3dlXTt2b2lkIDA9PT1Y''@;'; + put 'put ''W3hlWzBdXSYmKFhbeGVbMF1dPXhlWzFdKSwibiI9PT14ZVsyXSYmKFhbeGVbMF1dPU51bWJlcihYW3hlWzBdXSkpfX19dmFyIE1mPWZ1bmN0aW9uKEgpe1MwKFtbImNlbGxORiIsITFdLFsiY2VsbEhUTUwiLCEwXSxbImNlbGxGb3JtdWxhIiwhMF0sWyJjZWxsU3R5bGVzIiwhMV0sWyJjZWxs''@;'; + put 'put ''VGV4dCIsITBdLFsiY2VsbERhdGVzIiwhMV0sWyJzaGVldFN0dWJzIiwhMV0sWyJzaGVldFJvd3MiLDAsIm4iXSxbImJvb2tEZXBzIiwhMV0sWyJib29rU2hlZXRzIiwhMV0sWyJib29rUHJvcHMiLCExXSxbImJvb2tGaWxlcyIsITFdLFsiYm9va1ZCQSIsITFdLFsicGFzc3dvcmQiLCIiXSxb''@;'; + put 'put ''IldURiIsITFdXSkoSCksSC5ib29rSW1hZ2VzJiYoSC5jZWxsU3R5bGVzPSEwKX0sSDM9UzAoW1siY2VsbERhdGVzIiwhMV0sWyJib29rU1NUIiwhMV0sWyJib29rVHlwZSIsInhsc3giXSxbImNvbXByZXNzaW9uIiwhMV0sWyJXVEYiLCExXV0pO2Z1bmN0aW9uIFNzKEgpe3JldHVybiBwdC5X''@;'; + put 'put ''Uy5pbmRleE9mKEgpPi0xPyJzaGVldCI6cHQuQ1MmJkg9PXB0LkNTPyJjaGFydCI6cHQuRFMmJkg9PXB0LkRTPyJkaWFsb2ciOnB0Lk1TJiZIPT1wdC5NUz8ibWFjcm8iOkgmJkgubGVuZ3RoP0g6InNoZWV0In12YXIgRDU9W107ZnVuY3Rpb24gWDQoSCxyZSxYLHdlLHhlLEZlLFplLGplLFll''@;'; + put 'put ''LE10LHh0LFJ0KXt0cnl7RmVbd2VdPVB0KFVuKEgsWCwhMCkscmUpO3ZhciBubixVdD1zbihILHJlKTtzd2l0Y2goamUpe2Nhc2Uic2hlZXQiOm5uPWZ1bmN0aW9uIFd4KEgscmUsWCx3ZSx4ZSxGZSxaZSxqZSl7cmV0dXJuIi5iaW4iPT09cmUuc2xpY2UoLTQpP2Z1bmN0aW9uIEk2KEgscmUs''@;'; + put 'put ''WCx3ZSx4ZSxGZSxaZSl7aWYoIUgpcmV0dXJuIEg7dmFyIGplPXJlfHx7fTt3ZXx8KHdlPXsiIWlkIjp7fX0pO3ZhciBNdCxDbixEdCx6dCxQbixUbixPbixZbixNcixhaSxZZT1qZS5kZW5zZT9bXTp7fSx4dD17czp7cjoyZTYsYzoyZTZ9LGU6e3I6MCxjOjB9fSxSdD1bXSxVdD0hMSxubj0h''@;'; + put 'put ''MSx5cj1bXTtqZS5iaWZmPTEyLGplWyIhcm93Il09MDt2YXIgYXI9MCxHcj0hMSx6cj1bXSxxcj17fSxvaT1qZS5zdXBib29rc3x8eGUuc3VwYm9va3N8fFtbXV07aWYob2kuc2hhcmVkZj1xcixvaS5hcnJheWY9enIsb2kuU2hlZXROYW1lcz14ZS5TaGVldE5hbWVzfHx4ZS5TaGVldHMubWFw''@;'; + put 'put ''KGZ1bmN0aW9uKEEwKXtyZXR1cm4gQTAubmFtZX0pLCFqZS5zdXBib29rcyYmKGplLnN1cGJvb2tzPW9pLHhlLk5hbWVzKSlmb3IodmFyIGNyPTA7Y3I8eGUuTmFtZXMubGVuZ3RoOysrY3Ipb2lbMF1bY3IrMV09eGUuTmFtZXNbY3JdO3ZhciBkaT1bXSx2MD1bXSxVaT0hMTtpZih4NVsxNl09''@;'; + put 'put ''e246IkJydFNob3J0UmVhbCIsZjpVNH0sSDEoSCxmdW5jdGlvbih3aSxZcixFaSl7aWYoIW5uKXN3aXRjaChFaSl7Y2FzZSAxNDg6TXQ9d2k7YnJlYWs7Y2FzZSAwOkNuPXdpLGplLnNoZWV0Um93cyYmamUuc2hlZXRSb3dzPD1Dbi5yJiYobm49ITApLE1yPVhhKFBuPUNuLnIpLGplWyIhcm93''@;'; + put 'put ''Il09Q24uciwod2kuaGlkZGVufHx3aS5ocHR8fG51bGwhPXdpLmxldmVsKSYmKHdpLmhwdCYmKHdpLmhweD1BZih3aS5ocHQpKSx2MFt3aS5yXT13aSk7YnJlYWs7Y2FzZSAyOmNhc2UgMzpjYXNlIDQ6Y2FzZSA1OmNhc2UgNjpjYXNlIDc6Y2FzZSA4OmNhc2UgOTpjYXNlIDEwOmNhc2UgMTE6''@;'; + put 'put ''Y2FzZSAxMzpjYXNlIDE0OmNhc2UgMTU6Y2FzZSAxNjpjYXNlIDE3OmNhc2UgMTg6c3dpdGNoKER0PXt0OndpWzJdfSx3aVsyXSl7Y2FzZSJuIjpEdC52PXdpWzFdO2JyZWFrO2Nhc2UicyI6RHQudj0oWW49UmRbd2lbMV1dKS50LGplLmNlbGxTdHlsZXMmJihEdC5SPWZ1bmN0aW9uIFh6KEgs''@;'; + put 'put ''cmUpe2lmKEguUilyZXR1cm4gSC5SO2lmKHJlJiZyZS5Gb250cyYmKDEhPUguci5sZW5ndGh8fDAhPUguclswXS5pY2gpKXtILlI9W107dmFyIFg9MCx3ZT1ILnJbWF0seGU9SC5yW1grMV07Zm9yKHdlLmljaD4wJiZILlIucHVzaCh7dDoicyIsdjpILnQuc2xpY2UoMCx3ZS5pY2gpfSk7WDxI''@;'; + put 'put ''LnIubGVuZ3RoLTE7KytYKUguUi5wdXNoKHt0OiJzIix2OkgudC5zbGljZSgod2U9SC5yW1hdKS5pY2gsKHhlPUgucltYKzFdKS5pY2gpLHM6cmUuRm9udHNbd2UuaWZudF19KTtyZXR1cm4gSC5SLnB1c2goe3Q6InMiLHY6SC50LnNsaWNlKCh4ZXx8d2UpLmljaCksczpyZS5Gb250c1soeGV8''@;'; + put 'put ''fHdlKS5pZm50XX0pLEguUn19KFluLFplKSk7YnJlYWs7Y2FzZSJiIjpEdC52PSEhd2lbMV07YnJlYWs7Y2FzZSJlIjpEdC52PXdpWzFdLCExIT09amUuY2VsbFRleHQmJihEdC53PU4xW0R0LnZdKTticmVhaztjYXNlInN0ciI6RHQudD0icyIsRHQudj13aVsxXX1pZigoenQ9WmUuQ2VsbFhm''@;'; + put 'put ''W3dpWzBdLmlTdHlsZVJlZl0pJiZkNShEdCx6dC5udW1GbXRJZCx6dC5maWxsSWQsenQuZm9udElkLHp0LmJvcmRlcklkLGplLDAsWmUpLGplLmNlbGxTdHlsZXMmJkR0LnMmJnp0LmFsaWdubWVudCYmKER0LnMuYWxpZ25tZW50PWxuKHp0LmFsaWdubWVudCkpLFRuPS0xPT13aVswXS5jP1Ru''@;'; + put 'put ''KzE6d2lbMF0uYyxqZS5kZW5zZT8oWWVbUG5dfHwoWWVbUG5dPVtdKSxZZVtQbl1bVG5dPUR0KTpZZVtfYShUbikrTXJdPUR0LGplLmNlbGxGb3JtdWxhKXtmb3IoR3I9ITEsYXI9MDthcjx6ci5sZW5ndGg7Kythcil7dmFyIGhpPXpyW2FyXTtDbi5yPj1oaVswXS5zLnImJkNuLnI8PWhpWzBd''@;'; + put 'put ''LmUuciYmVG4+PWhpWzBdLnMuYyYmVG48PWhpWzBdLmUuYyYmKER0LkY9ZmEoaGlbMF0pLEdyPSEwKX0hR3ImJndpLmxlbmd0aD4zJiYoRHQuZj13aVszXSl9aWYoeHQucy5yPkNuLnImJih4dC5zLnI9Q24ucikseHQucy5jPlRuJiYoeHQucy5jPVRuKSx4dC5lLnI8Q24uciYmKHh0LmUucj1D''@;'; + put 'put ''bi5yKSx4dC5lLmM8VG4mJih4dC5lLmM9VG4pLGplLmNlbGxEYXRlcyYmenQmJiJuIj09RHQudCYmRi5pc19kYXRlKEYuX3RhYmxlW3p0Lm51bUZtdElkXSkpe3ZhciBOcj1GLnBhcnNlX2RhdGVfY29kZShEdC52KTtOciYmKER0LnQ9ImQiLER0LnY9bmV3IERhdGUoTnIueSxOci5tLTEsTnIu''@;'; + put 'put ''ZCxOci5ILE5yLk0sTnIuUyxOci51KSl9YnJlYWs7Y2FzZSAxOmNhc2UgMTI6aWYoIWplLnNoZWV0U3R1YnN8fFV0KWJyZWFrO0R0PXt0OiJ6Iix2OnZvaWQgMH0sVG49LTE9PXdpWzBdLmM/VG4rMTp3aVswXS5jLCh6dD1aZS5DZWxsWGZbd2lbMF0uaVN0eWxlUmVmXSkmJmQ1KER0LHp0Lm51''@;'; + put 'put ''bUZtdElkLHp0LmZpbGxJZCx6dC5mb250SWQsenQuYm9yZGVySWQsamUsMCxaZSksamUuY2VsbFN0eWxlcyYmRHQucyYmenQuYWxpZ25tZW50JiYoRHQucy5hbGlnbm1lbnQ9bG4oenQuYWxpZ25tZW50KSksamUuZGVuc2U/KFllW1BuXXx8KFllW1BuXT1bXSksWWVbUG5dW1RuXT1EdCk6WWVb''@;'; + put 'put ''X2EoVG4pK01yXT1EdCx4dC5zLnI+Q24uciYmKHh0LnMucj1Dbi5yKSx4dC5zLmM+VG4mJih4dC5zLmM9VG4pLHh0LmUucjxDbi5yJiYoeHQuZS5yPUNuLnIpLHh0LmUuYzxUbiYmKHh0LmUuYz1Ubik7YnJlYWs7Y2FzZSAxNzY6eXIucHVzaCh3aSk7YnJlYWs7Y2FzZSA0OTQ6dmFyIGtpPXdl''@;'; + put 'put ''WyIhaWQiXVt3aS5yZWxJZF07Zm9yKGtpPyh3aS5UYXJnZXQ9a2kuVGFyZ2V0LHdpLmxvYyYmKHdpLlRhcmdldCs9IiMiK3dpLmxvYyksd2kuUmVsPWtpKToiIj09d2kucmVsSWQmJih3aS5UYXJnZXQ9IiMiK3dpLmxvYyksUG49d2kucmZ4LnMucjtQbjw9d2kucmZ4LmUucjsrK1BuKWZvcihU''@;'; + put 'put ''bj13aS5yZngucy5jO1RuPD13aS5yZnguZS5jOysrVG4pamUuZGVuc2U/KFllW1BuXXx8KFllW1BuXT1bXSksWWVbUG5dW1RuXXx8KFllW1BuXVtUbl09e3Q6InoiLHY6dm9pZCAwfSksWWVbUG5dW1RuXS5sPXdpKTooT249WTAoe2M6VG4scjpQbn0pLFllW09uXXx8KFllW09uXT17dDoieiIs''@;'; + put 'put ''djp2b2lkIDB9KSxZZVtPbl0ubD13aSk7YnJlYWs7Y2FzZSA0MjY6aWYoIWplLmNlbGxGb3JtdWxhKWJyZWFrO3pyLnB1c2god2kpLChhaT1qZS5kZW5zZT9ZZVtQbl1bVG5dOlllW19hKFRuKStNcl0pLmY9VzEod2lbMV0seHQse3I6Q24ucixjOlRufSxvaSxqZSksYWkuRj1mYSh3aVswXSk7''@;'; + put 'put ''YnJlYWs7Y2FzZSA0Mjc6aWYoIWplLmNlbGxGb3JtdWxhKWJyZWFrO3FyW1kwKHdpWzBdLnMpXT13aVsxXSwoYWk9amUuZGVuc2U/WWVbUG5dW1RuXTpZZVtfYShUbikrTXJdKS5mPVcxKHdpWzFdLHh0LHtyOkNuLnIsYzpUbn0sb2ksamUpO2JyZWFrO2Nhc2UgNjA6aWYoIWplLmNlbGxTdHls''@;'; + put 'put ''ZXMpYnJlYWs7Zm9yKDt3aS5lPj13aS5zOylkaVt3aS5lLS1dPXt3aWR0aDp3aS53LzI1NixoaWRkZW46ISEoMSZ3aS5mbGFncyksbGV2ZWw6d2kubGV2ZWx9LFVpfHwoVWk9ITApLHljKGRpW3dpLmUrMV0pO2JyZWFrO2Nhc2UgMTYxOlllWyIhYXV0b2ZpbHRlciJdPXtyZWY6ZmEod2kpfTti''@;'; + put 'put ''cmVhaztjYXNlIDQ3NjpZZVsiIW1hcmdpbnMiXT13aTticmVhaztjYXNlIDE0Nzp4ZS5TaGVldHNbWF18fCh4ZS5TaGVldHNbWF09e30pLHdpLm5hbWUmJih4ZS5TaGVldHNbWF0uQ29kZU5hbWU9d2kubmFtZSksKHdpLmFib3ZlfHx3aS5sZWZ0KSYmKFllWyIhb3V0bGluZSJdPXthYm92ZTp3''@;'; + put 'put ''aS5hYm92ZSxsZWZ0OndpLmxlZnR9KTticmVhaztjYXNlIDEzNzp4ZS5WaWV3c3x8KHhlLlZpZXdzPVt7fV0pLHhlLlZpZXdzWzBdfHwoeGUuVmlld3NbMF09e30pLHdpLlJUTCYmKHhlLlZpZXdzWzBdLlJUTD0hMCksd2kuZ3JpZHx8KHhlLlZpZXdzWzBdLmdyaWQ9ITEsWWVbIiFncmlkbGlu''@;'; + put 'put ''ZXMiXT0hMSk7YnJlYWs7Y2FzZSA0ODU6WWVbIiFzaGVldEZvcm1hdCJdPXdpO2JyZWFrO2Nhc2UgNjQ6Y2FzZSAxMDUzOiFmdW5jdGlvbiBLMChILHJlLFgsd2Upe2lmKHJlKXt2YXIgeGU9e3JlZjpyZS5zcXJmeCx0OnJlLnR9O3JlLm9wJiYoeGUub3A9cmUub3ApO3ZhciBGZT0iIixaZT0i''@;'; + put 'put ''IixqZT1yZS5zcXJmeD8ic3RyaW5nIj09dHlwZW9mIHJlLnNxcmZ4P0ZvKHJlLnNxcmZ4LnNwbGl0KCIsIilbMF0pOnJlLnNxcmZ4Om51bGw7aWYocmUuZjEmJihGZT1XMShyZS5mMSxqZSxudWxsLFgsd2UsITApKSxyZS5mMiYmKFplPVcxKHJlLmYyLGplLG51bGwsWCx3ZSwhMCkpLHJlLm9w''@;'; + put 'put ''JiZbIklOIiwiT1QiXS5pbmRleE9mKHJlLm9wKT49LTEpeGUubWluPUZlLHhlLm1heD1aZTtlbHNlIGlmKHJlLm9wKXhlLnY9RmU7ZWxzZSB0cnl7c3dpdGNoKHJlLnQpe2Nhc2UiTGlzdCI6aWYoIlB0Z1N0ciI9PT1yZS5mMVswXVswXVswXSYmMT09cmUuZjFbMF0ubGVuZ3RoKXt4ZS5sPXJl''@;'; + put 'put ''LmYxWzBdWzBdWzFdLnNwbGl0KCIsIik7YnJlYWt9Y2FzZSJDdXN0b20iOnhlLmY9RmV9fWNhdGNoKFllKXt9SFsiIXZhbGlkYXRpb25zIl18fChIWyIhdmFsaWRhdGlvbnMiXT1bXSksSFsiIXZhbGlkYXRpb25zIl0ucHVzaCh4ZSl9fShZZSx3aSxvaSxqZSk7YnJlYWs7Y2FzZSAxNTE6WWVb''@;'; + put 'put ''IiFmcmVlemUiXT13aVswXTticmVhaztjYXNlIDE1MjpZZVsiIXNlbCJdPXdpO2JyZWFrO2Nhc2UgMTc1OmNhc2UgNjQ0OmNhc2UgNjI1OmNhc2UgNTYyOmNhc2UgMzk2OmNhc2UgMTExMjpjYXNlIDExNDY6Y2FzZSA0NzE6Y2FzZSAxMDUwOmNhc2UgNjQ5OmNhc2UgMTEwNTpjYXNlIDQ5OmNh''@;'; + put 'put ''c2UgNTg5OmNhc2UgNjA3OmNhc2UgNTY0OmNhc2UgMTA1NTpjYXNlIDE2ODpjYXNlIDE3NDpjYXNlIDExODA6Y2FzZSA0OTk6Y2FzZSA1MDc6Y2FzZSA1NTA6Y2FzZSAxNzE6Y2FzZSAxNjc6Y2FzZSAxMTc3OmNhc2UgMTY5OmNhc2UgMTE4MTpjYXNlIDU1MTpjYXNlIDU1MjpjYXNlIDY2MTpj''@;'; + put 'put ''YXNlIDYzOTpjYXNlIDQ3ODpjYXNlIDUzNzpjYXNlIDQ3NzpjYXNlIDUzNjpjYXNlIDExMDM6Y2FzZSA2ODA6Y2FzZSAxMTA0OmNhc2UgMTAyNDpjYXNlIDY2MzpjYXNlIDUzNTpjYXNlIDY3ODpjYXNlIDUwNDpjYXNlIDEwNDM6Y2FzZSA0Mjg6Y2FzZSAxNzA6Y2FzZSAzMDcyOmNhc2UgNTA6''@;'; + put 'put ''Y2FzZSAyMDcwOmNhc2UgMTA0NTpicmVhaztjYXNlIDM1OlV0PSEwO2JyZWFrO2Nhc2UgMzY6VXQ9ITE7YnJlYWs7Y2FzZSAzNzpSdC5wdXNoKFlyKSxVdD0hMDticmVhaztjYXNlIDM4OlJ0LnBvcCgpLFV0PSExO2JyZWFrO2RlZmF1bHQ6aWYoISgoWXJ8fCIiKS5pbmRleE9mKCJCZWdpbiIp''@;'; + put 'put ''PjApJiYhKChZcnx8IiIpLmluZGV4T2YoIkVuZCIpPjApJiYoIVV0fHxqZS5XVEYmJiJCcnRBQ0JlZ2luIiE9UnRbUnQubGVuZ3RoLTFdKSl0aHJvdyBuZXcgRXJyb3IoIlVuZXhwZWN0ZWQgcmVjb3JkICIrRWkrIiAiK1lyKX19LGplKSxkZWxldGUgamUuc3VwYm9va3MsZGVsZXRlIGplWyIh''@;'; + put 'put ''cm93Il0sIVllWyIhcmVmIl0mJih4dC5zLnI8MmU2fHxNdCYmKE10LmUucj4wfHxNdC5lLmM+MHx8TXQucy5yPjB8fE10LnMuYz4wKSkmJihZZVsiIXJlZiJdPWZhKE10fHx4dCkpLGplLnNoZWV0Um93cyYmWWVbIiFyZWYiXSl7dmFyIHRvPUZvKFllWyIhcmVmIl0pO2plLnNoZWV0Um93czw9''@;'; + put 'put ''K3RvLmUuciYmKHRvLmUucj1qZS5zaGVldFJvd3MtMSx0by5lLnI+eHQuZS5yJiYodG8uZS5yPXh0LmUuciksdG8uZS5yPHRvLnMuciYmKHRvLnMucj10by5lLnIpLHRvLmUuYz54dC5lLmMmJih0by5lLmM9eHQuZS5jKSx0by5lLmM8dG8ucy5jJiYodG8ucy5jPXRvLmUuYyksWWVbIiFmdWxs''@;'; + put 'put ''cmVmIl09WWVbIiFyZWYiXSxZZVsiIXJlZiJdPWZhKHRvKSl9cmV0dXJuIHlyLmxlbmd0aD4wJiYoWWVbIiFtZXJnZXMiXT15ciksZGkubGVuZ3RoPjAmJihZZVsiIWNvbHMiXT1kaSksdjAubGVuZ3RoPjAmJihZZVsiIXJvd3MiXT12MCksWWV9KEgsd2UsWCx4ZSxGZSwwLGplKTpmdW5jdGlv''@;'; + put 'put ''biBiMihILHJlLFgsd2UseGUsRmUsWmUpe2lmKCFIKXJldHVybiBIO3dlfHwod2U9eyIhaWQiOnt9fSk7dmFyIGplPXJlLmRlbnNlP1tdOnt9LFllPXtzOntyOjJlNixjOjJlNn0sZTp7cjowLGM6MH19LE10PSIiLHh0PSIiLFJ0PUgubWF0Y2goZ18pO1J0PyhNdD1ILnNsaWNlKDAsUnQuaW5k''@;'; + put 'put ''ZXgpLHh0PUguc2xpY2UoUnQuaW5kZXgrUnRbMF0ubGVuZ3RoKSk6TXQ9eHQ9SDt2YXIgVXQ9eHQubGFzdEluZGV4T2YoImV4dExzdCIpLENuPSgtMT09VXR8fHh0LnNsaWNlKFV0KSxNdC5tYXRjaChBXykpO0NuP09tKENuWzBdLDAseGUsWCk6KENuPU10Lm1hdGNoKEltKSkmJmZ1bmN0aW9u''@;'; + put 'put ''IE9oKEgscmUsWCx3ZSx4ZSxGZSxaZSl7T20oSC5zbGljZSgwLEguaW5kZXhPZigiPiIpKSwwLHdlLHhlKTt2YXIgamU9cmUubWF0Y2goYl8pO2lmKGplKXt2YXIgTXQ9RTMoZW4oamVbMF0pLEZlLFplKTtYWyIhdGFiY29sb3IiXT1NdH1pZigoamU9cmUubWF0Y2goc3gpKSYmZW4oamVbMF0p''@;'; + put 'put ''LmZpdFRvUGFnZSYmKFhbIiFwcmludCJdfHwoWFsiIXByaW50Il09e30pLFhbIiFwcmludCJdLnByb3BzfHwoWFsiIXByaW50Il0ucHJvcHM9e30pLFhbIiFwcmludCJdLnByb3BzLmZpdHx8KFhbIiFwcmludCJdLnByb3BzLmZpdD17fSksbnVsbD09WFsiIXByaW50Il0ucHJvcHMuZml0Lmhl''@;'; + put 'put ''aWdodCYmKFhbIiFwcmludCJdLnByb3BzLmZpdC5oZWlnaHQ9MSksbnVsbD09WFsiIXByaW50Il0ucHJvcHMuZml0LndpZHRoJiYoWFsiIXByaW50Il0ucHJvcHMuZml0LndpZHRoPTEpKSxqZT1yZS5tYXRjaChjQSkpe1hbIiFvdXRsaW5lIl09e307dmFyIFJ0PWVuKGplWzBdKTtSdC5zdW1t''@;'; + put 'put ''YXJ5QmVsb3cmJihYWyIhb3V0bGluZSJdLmFib3ZlPSFEaShSdC5zdW1tYXJ5QmVsb3cpKSxSdC5zdW1tYXJ5UmlnaHQmJihYWyIhb3V0bGluZSJdLmxlZnQ9IURpKFJ0LnN1bW1hcnlSaWdodCkpfX0oQ25bMF0sQ25bMV18fCIiLGplLHhlLFgsWmUsRmUpO3ZhciBEdD0oTXQubWF0Y2goLzwo''@;'; + put 'put ''Pzpcdyo6KT9kaW1lbnNpb24vKXx8e2luZGV4Oi0xfSkuaW5kZXg7aWYoRHQ+MCl7dmFyIHp0PU10LnNsaWNlKER0LER0KzUwKS5tYXRjaChtXyk7enQmJighcmV8fCFyZS5ub2RpbSkmJmZ1bmN0aW9uIGRfKEgscmUpe3ZhciBYPUZvKHJlKTtYLnMucjw9WC5lLnImJlgucy5jPD1YLmUuYyYm''@;'; + put 'put ''WC5zLnI+PTAmJlgucy5jPj0wJiYoSFsiIXJlZiJdPWZhKFgpKX0oamUsenRbMV0pfXZhciBQbj1NdC5tYXRjaChHQik7UG4mJlBuWzFdJiZmdW5jdGlvbiBiRyhILHJlLFgsd2Upe1guVmlld3N8fChYLlZpZXdzPVt7fV0pO3ZhciB4ZT0wO0gucmVwbGFjZShneCxmdW5jdGlvbihGZSxaZSl7''@;'; + put 'put ''dmFyIGplPWVuKEZlKTtpZihYLlZpZXdzW3dlXXx8KFguVmlld3Nbd2VdPXt9KSxEaShqZS5yaWdodFRvTGVmdCkmJihYLlZpZXdzW3dlXS5SVEw9ITApLGplLnNob3dHcmlkTGluZXMmJihYLlZpZXdzW3dlXS5ncmlkPURpKGplLnNob3dHcmlkTGluZXMpLG51bGw9PXJlWyIhZ3JpZGxpbmVz''@;'; + put 'put ''Il0mJihyZVsiIWdyaWRsaW5lcyJdPURpKGplLnNob3dHcmlkTGluZXMpKSksK2plLnpvb21TY2FsZSYmKFguVmlld3Nbd2VdLnpvb209K2plLnpvb21TY2FsZSksamUudmlldyYmKFguVmlld3Nbd2VdLnZpZXc9amUudmlldyksMT09Kyt4ZSYmIi8+IiE9RmUuc2xpY2UoLTIpKXt2YXIgWWU9''@;'; + put 'put ''SC5zbGljZShaZStGZS5sZW5ndGgpLE10PVllLm1hdGNoKC88XC8oPzpcdzopP3NoZWV0Vmlldyg/OltePmEtel1bXj5dKik/XC8/Pi8pO2lmKCFNdClyZXR1cm4iIjt2YXIgeHQ9KFllPVllLnNsaWNlKDAsTXQuaW5kZXgpKS5tYXRjaCgvPCg/Olx3Oik/cGFuZSg/OltePmEtel1bXj5dKik/''@;'; + put 'put ''XC8/Pi8pO2lmKHh0KXt2YXIgUnQ9ZW4oeHRbMF0pOyJmcm96ZW4iPT1SdC5zdGF0ZT9yZVsiIWZyZWV6ZSJdPV9hKCtSdC54U3BsaXR8fDApK1hhKCtSdC55U3BsaXR8fDApOlJ0LnRvcExlZnRDZWxsJiYocmVbIiFmcmVlemUiXT1SdC50b3BMZWZ0Q2VsbCl9dmFyIFV0PVllLm1hdGNoKC88''@;'; + put 'put ''KD86XHc6KT9zZWxlY3Rpb24oPzpbXj5hLXpdW14+XSopP1wvPz4vKTtpZihVdCl7dmFyIG5uPWVuKFV0WzBdKTtpZihubi5hY3RpdmVDZWxsJiYocmVbIiFzZWwiXT17Y2VsbDpubi5hY3RpdmVDZWxsfSksbm4uc3FyZWYpe3ZhciBDbj1ubi5zcXJlZi5yZXBsYWNlKC9ccy4qJC8sIiIpO3Jl''@;'; + put 'put ''WyIhc2VsIl18fChyZVsiIXNlbCJdPXtjZWxsOlkwKHZzKENuKS5zKX0pLHJlWyIhc2VsIl0ucmFuZ2U9bm4uc3FyZWZ9fX1yZXR1cm4iIn0pfShQblsxXSxqZSx4ZSxYKTt2YXIgVG49TXQubWF0Y2goTG0pLE9uPVtdO2lmKHJlLmNlbGxTdHlsZXMpe3ZhciBZbj1NdC5tYXRjaCh6Qik7WW4m''@;'; + put 'put ''JmZ1bmN0aW9uIGh4KEgscmUsWCl7Zm9yKHZhciB3ZT0hMSx4ZT0wO3hlIT1yZS5sZW5ndGg7Kyt4ZSl7dmFyIEZlPWVuKHJlW3hlXSwhMCk7RmUuaGlkZGVuJiYoRmUuaGlkZGVuPURpKEZlLmhpZGRlbikpO3ZhciBaZT1wYXJzZUludChGZS5taW4sMTApLTEsamU9cGFyc2VJbnQoRmUubWF4''@;'; + put 'put ''LDEwKS0xO2ZvcihGZS5vdXRsaW5lTGV2ZWwmJihGZS5sZXZlbD0rRmUub3V0bGluZUxldmVsfHwwKSxkZWxldGUgRmUubWluLGRlbGV0ZSBGZS5tYXgsRmUud2lkdGg9K0ZlLndpZHRoLCF3ZSYmRmUud2lkdGgmJih3ZT0hMCkseWMoRmUpLEZlLnN0eWxlJiYoRmUucz1EbyhGZS5zdHlsZSxY''@;'; + put 'put ''KSk7WmU8PWplOylIW1plKytdPWxuKEZlKX19KE9uLFluLFplKX1pZihSdCYmUl8oUnRbMV0sWCxqZSxyZSxZZSxGZSxaZSkscmUuY2FsbGJhY2spcmV0dXJuIGplO3ZhciBNcj14dC5tYXRjaChhQSk7TXImJihqZVsiIXByb3RlY3QiXT1mdW5jdGlvbiBVQihIKXt2YXIgcmU9ZW4oSCwhMCwh''@;'; + put 'put ''MCksWD17fTtpZihEaShyZS5zaGVldCkpcmV0dXJuIE1fLmZvckVhY2goZnVuY3Rpb24od2Upe1hbd2VdPW51bGwhPXJlW3dlXSYmRGkocmVbd2VdKX0pLHBBLmZvckVhY2goZnVuY3Rpb24od2Upe1hbd2VdPW51bGw9PXJlW3dlXXx8RGkocmVbd2VdKX0pLHJlLmFsZ29yaXRobU5hbWUmJihY''@;'; + put 'put ''LmVuY3J5cHRpb249e2FsZ286cmUuYWxnb3JpdGhtTmFtZSxoYXNoOnJlLmhhc2hWYWx1ZSxzYWx0OnJlLnNhbHRWYWx1ZSxzcGluOityZS5zcGluQ291bnR8fDFlNX0pLFh9KE1yWzBdKSk7dmFyIGFpPXh0Lm1hdGNoKG9BKTthaSYmKGplWyIhYXV0b2ZpbHRlciJdPWZ1bmN0aW9uIFRfKEgp''@;'; + put 'put ''e3JldHVybntyZWY6KEgubWF0Y2goL3JlZj0iKFteIl0qKSIvKXx8W10pWzFdfX0oYWlbMF0pKTt2YXIgeXI9W10sYXI9eHQubWF0Y2gocF8pO2lmKGFyKWZvcihEdD0wO0R0IT1hci5sZW5ndGg7KytEdCl5cltEdF09Rm8oYXJbRHRdLnNsaWNlKGFyW0R0XS5pbmRleE9mKCciJykrMSkpO3Zh''@;'; + put 'put ''ciBHcj0oLTE9PVV0P3h0Onh0LnNsaWNlKDAsVXQpKS5tYXRjaChEbSk7R3ImJihqZVsiIWNvbmRmbXQiXT1bXS5jb25jYXQuYXBwbHkoW10sR3IubWFwKGZ1bmN0aW9uKFlyKXtyZXR1cm4gZHgoWXIscmUsRmUsWmUpfSkpKSxVdD4tMSYmKEdyPXh0LnNsaWNlKFV0KS5tYXRjaChEbSkpJiYo''@;'; + put 'put ''amVbIiFjb25kZm10Il18fChqZVsiIWNvbmRmbXQiXT1bXSksamVbIiFjb25kZm10Il09amVbIiFjb25kZm10Il0uY29uY2F0LmFwcGx5KGplWyIhY29uZGZtdCJdLEdyLm1hcChmdW5jdGlvbihZcil7cmV0dXJuIGR4KFlyLHJlLEZlLFplLCEwKX0pKSk7dmFyIHpyPSgtMT09VXQ/eHQ6eHQu''@;'; + put 'put ''c2xpY2UoMCxVdCkpLm1hdGNoKGVjKTt6ciYmKGplWyIhdmFsaWRhdGlvbnMiXT12QSh6clswXSxyZSkpLFV0Pi0xJiYoenI9eHQuc2xpY2UoVXQpLm1hdGNoKGVjKSkmJihqZVsiIXZhbGlkYXRpb25zIl18fChqZVsiIXZhbGlkYXRpb25zIl09W10pLGplWyIhdmFsaWRhdGlvbnMiXT1qZVsi''@;'; + put 'put ''IXZhbGlkYXRpb25zIl0uY29uY2F0KHZBKHpyWzBdLHJlLCEwKSkpO3ZhciBxcj14dC5tYXRjaChheCk7cXImJmZ1bmN0aW9uIGZ4KEgscmUsWCl7Zm9yKHZhciB3ZT1BcnJheS5pc0FycmF5KEgpLHhlPTA7eGUhPXJlLmxlbmd0aDsrK3hlKXt2YXIgRmU9ZW4oVzAocmVbeGVdKSwhMCk7aWYo''@;'; + put 'put ''IUZlLnJlZilyZXR1cm47dmFyIFplPSgoWHx8e30pWyIhaWQiXXx8W10pW0ZlLmlkXTtaZT8oRmUuVGFyZ2V0PVplLlRhcmdldCxGZS5sb2NhdGlvbiYmKEZlLlRhcmdldCs9IiMiK2dyKEZlLmxvY2F0aW9uKSkpOihGZS5UYXJnZXQ9IiMiK2dyKEZlLmxvY2F0aW9uKSxaZT17VGFyZ2V0OkZl''@;'; + put 'put ''LlRhcmdldCxUYXJnZXRNb2RlOiJJbnRlcm5hbCJ9KSxGZS5SZWw9WmUsRmUudG9vbHRpcCYmKEZlLlRvb2x0aXA9RmUudG9vbHRpcCxkZWxldGUgRmUudG9vbHRpcCk7Zm9yKHZhciBqZT1GbyhGZS5yZWYpLFllPWplLnMucjtZZTw9amUuZS5yOysrWWUpZm9yKHZhciBNdD1qZS5zLmM7TXQ8''@;'; + put 'put ''PWplLmUuYzsrK010KXt2YXIgeHQ9WTAoe2M6TXQscjpZZX0pO3dlPyhIW1llXXx8KEhbWWVdPVtdKSxIW1llXVtNdF18fChIW1llXVtNdF09e3Q6InoiLHY6dm9pZCAwfSksSFtZZV1bTXRdLmw9RmUpOihIW3h0XXx8KEhbeHRdPXt0OiJ6Iix2OnZvaWQgMH0pLEhbeHRdLmw9RmUpfX19KGpl''@;'; + put 'put ''LHFyLHdlKTt2YXIgb2k9eHQubWF0Y2gobHgpO29pJiZmdW5jdGlvbiBjeChILHJlKXt2YXIgWD1lbihILCExLCEwKTtyZVsiIXByaW50Il18fChyZVsiIXByaW50Il09e30pLHJlWyIhcHJpbnQiXS5wcm9wc3x8KHJlWyIhcHJpbnQiXS5wcm9wcz17fSk7dmFyIHdlPXJlWyIhcHJpbnQiXS5w''@;'; + put 'put ''cm9wcztYLmdyaWRMaW5lcyYmKHdlLmdyaWRsaW5lcz1EaShYLmdyaWRMaW5lcykpLG51bGwhPVguaG9yaXpvbnRhbENlbnRlcmVkJiYod2UuY2VudGVyWD1EaShYLmhvcml6b250YWxDZW50ZXJlZCkpLG51bGwhPVgudmVydGljYWxDZW50ZXJlZCYmKHdlLmNlbnRlclk9RGkoWC52ZXJ0aWNh''@;'; + put 'put ''bENlbnRlcmVkKSl9KG9pWzBdLGplKTt2YXIgY3I9eHQubWF0Y2godl8pO2NyJiYoKGplWyIhcHJpbnQiXXx8KGplWyIhcHJpbnQiXT17fSkpLm1hcmdpbnM9amVbIiFtYXJnaW5zIl09UG0oZW4oY3JbMF0pKSk7dmFyIGRpPXh0Lm1hdGNoKFdCKTtkaSYmZnVuY3Rpb24gWUIoSCxyZSl7dmFy''@;'; + put 'put ''IFg9ZW4oSCwhMSwhMCk7ZGVsZXRlIFguaWQsZGVsZXRlIFhbMF0scmVbIiFwcmludCJdfHwocmVbIiFwcmludCJdPXt9KSxyZVsiIXByaW50Il0ucHJvcHN8fChyZVsiIXByaW50Il0ucHJvcHM9e30pO3ZhciB3ZT1yZVsiIXByaW50Il0ucHJvcHM7WC5vcmllbnRhdGlvbiYmKHdlLm9yaWVu''@;'; + put 'put ''dGF0aW9uPVgub3JpZW50YXRpb24pLFguc2NhbGUmJih3ZS5zY2FsZT0rWC5zY2FsZSksK1guZml0VG9IZWlnaHQ+PTAmJigod2UuZml0fHwod2UuZml0PXt9KSkuaGVpZ2h0PStYLmZpdFRvSGVpZ2h0KSwrWC5maXRUb1dpZHRoPj0wJiYoKHdlLmZpdHx8KHdlLmZpdD17fSkpLndpZHRoPStY''@;'; + put 'put ''LmZpdFRvV2lkdGgpLFgucGFwZXJIZWlnaHQmJlgucGFwZXJXaWR0aD93ZS5wYXBlcj17d2lkdGg6WC5wYXBlcldpZHRoLGhlaWdodDpYLnBhcGVySGVpZ2h0fTpYLnBhcGVyU2l6ZSYmKHdlLnBhcGVyPWo5W3dlLnBhcGVyPStYLnBhcGVyU2l6ZV18fHdlLnBhcGVyKSxYLmhvcml6b250YWxE''@;'; + put 'put ''cGk/d2UuZHBpPStYLmhvcml6b250YWxEcGk6WC52ZXJ0aWNhbERwaSYmKHdlLmRwaT0rWC52ZXJ0aWNhbERwaSksImF1dG9tYXRpYyIhPShYLmZpcnN0UGFnZU51bWJlcnx8ImF1dG9tYXRpYyIpJiYod2UuZmlyc3Q9K1guZmlyc3RQYWdlTnVtYmVyKSxEaShYLmJsYWNrQW5kV2hpdGUpJiYo''@;'; + put 'put ''d2UuYnc9ITApLERpKFguZHJhZnQpJiYod2UuZHJhZnQ9ITApLCJvdmVyVGhlbkRvd24iPT1YLnBhZ2VPcmRlciYmKHdlLm9yZGVyPSJvdmVyIiksQ19bWC5jZWxsQ29tbWVudHNdJiYod2UuY29tbWVudHM9Q19bWC5jZWxsQ29tbWVudHNdKSxmQVtYLmVycm9yc10mJih3ZS5lcnJvcnM9ZkFb''@;'; + put 'put ''WC5lcnJvcnNdKX0oZGlbMF0samUpO3ZhciB2MD14dC5tYXRjaChzQSk7djAmJmZ1bmN0aW9uIGdBKEgscmUpe2lmKHJlWyIhcHJpbnQiXXx8KHJlWyIhcHJpbnQiXT17fSksSFsxXSl7dmFyIFg9IiIsd2U9MDtIWzFdLnJlcGxhY2UoR3QsZnVuY3Rpb24oeGUsRmUpe2lmKCIvIiE9eGUuY2hh''@;'; + put 'put ''ckF0KDEpKVg9eGUuc2xpY2UoMSwtMSksd2U9RmUreGUubGVuZ3RoO2Vsc2UgaWYoWCl7dmFyIFplPVgubWF0Y2goL0hlYWRlci8pPyJoZWFkZXIiOiJmb290ZXIiLGplPVgucmVwbGFjZSgvSGVhZGVyfEZvb3Rlci8sIiIpO1g9IiIscmVbIiFwcmludCJdW1plXXx8KHJlWyIhcHJpbnQiXVta''@;'; + put 'put ''ZV09e30pLHJlWyIhcHJpbnQiXVtaZV1bamVdPWdyKFcwKEhbMV0uc2xpY2Uod2UsRmUpKSl9fSl9fSh2MCxqZSk7dmFyIFVpPXh0Lm1hdGNoKHlfKTtVaSYmKChqZVsiIXByaW50Il18fChqZVsiIXByaW50Il09e30pKS5yb3dCcmVha3M9amVbIiFyb3dCcmVha3MiXT1mdW5jdGlvbiBTXyhI''@;'; + put 'put ''KXt2YXIgcmU9W107cmV0dXJuKEgubWF0Y2goaEEpfHxbXSkuZm9yRWFjaChmdW5jdGlvbihYKXt2YXIgd2U9ZW4oWCk7cmUucHVzaCh7Ujord2UuaWR9KX0pLHJlfShVaVswXSkpO3ZhciB0bz14dC5tYXRjaChsQSk7dG8mJigoamVbIiFwcmludCJdfHwoamVbIiFwcmludCJdPXt9KSkuY29s''@;'; + put 'put ''QnJlYWtzPWplWyIhY29sQnJlYWtzIl09ZnVuY3Rpb24gZEEoSCl7dmFyIHJlPVtdO3JldHVybihILm1hdGNoKGhBKXx8W10pLmZvckVhY2goZnVuY3Rpb24oWCl7dmFyIHdlPWVuKFgpO3JlLnB1c2goe0M6K3dlLmlkfSl9KSxyZX0odG9bMF0pKTt2YXIgQTA9W107aWYoKEEwPXh0Lm1hdGNo''@;'; + put 'put ''KC9kcmF3aW5nIHI6aWQ9IiguKj8pIi8pKSYmKGplWyIhcmVsIl09QTBbMV0pLChBMD14dC5tYXRjaCgvbGVnYWN5RHJhd2luZyByOmlkPSIoLio/KSIvKSkmJihqZVsiIWxlZ3JlbCJdPUEwWzFdKSwoQTA9eHQubWF0Y2godkcpKSYmKGplWyIhY3RybGlkIl09QTAubWFwKGZ1bmN0aW9uKFly''@;'; + put 'put ''KXtyZXR1cm4gZW4oWXIpfSkpLChBMD14dC5tYXRjaChBRykpJiZmdW5jdGlvbiB1QShILHJlKXtIWyIhdGFibGVyZWZzIl18fChIWyIhdGFibGVyZWZzIl09W10pLChyZS5tYXRjaChfMSl8fFtdKS5mb3JFYWNoKGZ1bmN0aW9uKFgpe0hbIiF0YWJsZXJlZnMiXS5wdXNoKGVuKFgpLmlkKX0p''@;'; + put 'put ''fShqZSxBMFsxXSkscmUmJnJlLm5vZGltJiYoWWUucy5jPVllLnMucj0wKSwhamVbIiFyZWYiXSYmWWUuZS5jPj1ZZS5zLmMmJlllLmUucj49WWUucy5yJiYoamVbIiFyZWYiXT1mYShZZSkpLHJlLnNoZWV0Um93cz4wJiZqZVsiIXJlZiJdKXt2YXIgd2k9Rm8oamVbIiFyZWYiXSk7cmUuc2hl''@;'; + put 'put ''ZXRSb3dzPD0rd2kuZS5yJiYod2kuZS5yPXJlLnNoZWV0Um93cy0xLHdpLmUucj5ZZS5lLnImJih3aS5lLnI9WWUuZS5yKSx3aS5lLnI8d2kucy5yJiYod2kucy5yPXdpLmUuciksd2kuZS5jPlllLmUuYyYmKHdpLmUuYz1ZZS5lLmMpLHdpLmUuYzx3aS5zLmMmJih3aS5zLmM9d2kuZS5jKSxq''@;'; + put 'put ''ZVsiIWZ1bGxyZWYiXT1qZVsiIXJlZiJdLGplWyIhcmVmIl09ZmEod2kpKX1yZXR1cm4gVG4mJihqZVsiIXNoZWV0Rm9ybWF0Il09ZnVuY3Rpb24gQ2YoSCl7dmFyIHJlPXt9LFg9e30sd2U9ITEseGU9e30sRmU9ITE7cmV0dXJuIEguZGVmYXVsdFJvd0hlaWdodCYmKHdlPSEwLFguaHB0PXBh''@;'; + put 'put ''cnNlRmxvYXQoSC5kZWZhdWx0Um93SGVpZ2h0KSksSC56ZXJvSGVpZ2h0JiYod2U9ITAsWC5oaWRkZW49RGkoSC56ZXJvSGVpZ2h0KSksSC5iYXNlQ29sV2lkdGg/KEZlPSEwLHhlLndjaD1wYXJzZUZsb2F0KEguYmFzZUNvbFdpZHRoKSk6SC5kZWZhdWx0Q29sV2lkdGgmJihGZT0hMCx4ZS53''@;'; + put 'put ''Y2g9cGFyc2VGbG9hdChILmRlZmF1bHRDb2xXaWR0aCktNS9LMiksSC5vdXRsaW5lTGV2ZWxDb2wmJihyZS5jb2xvdXRsaW5lPXBhcnNlSW50KEgub3V0bGluZUxldmVsQ29sKSksSC5vdXRsaW5lTGV2ZWxSb3cmJihyZS5yb3dvdXRsaW5lPXBhcnNlSW50KEgub3V0bGluZUxldmVsUm93KSks''@;'; + put 'put ''SC50aGlja0JvdHRvbSYmKHJlLmJvdHRoaWNrPURpKEgudGhpY2tCb3R0b20pKSxILnRoaWNrVG9wJiYocmUudG9wdGhpY2s9RGkoSC50aGlja1RvcCkpLEguZHlEZXNjZW50JiYocmUuZHlEZXNjZW50PXBhcnNlRmxvYXQoSC5keURlc2NlbnQpKSx3ZSYmKEo4KFgpLHJlLnJvdz1YKSxGZSYm''@;'; + put 'put ''KHljKHhlKSxyZS5jb2w9eGUpLHJlfShlbihUblswXSkpKSxPbi5sZW5ndGg+MCYmKGplWyIhY29scyJdPU9uKSx5ci5sZW5ndGg+MCYmKGplWyIhbWVyZ2VzIl09eXIpLHdlWyIhaWQiXVtqZVsiIXJlbCJdXSYmKGplWyIhZHJhd2VsIl09d2VbIiFpZCJdW2plWyIhcmVsIl1dKSx3ZVsiIWlk''@;'; + put 'put ''Il1bamVbIiFsZWdyZWwiXV0mJihqZVsiIWxlZ2RyYXdlbCJdPXdlWyIhaWQiXVtqZVsiIWxlZ3JlbCJdXSksKGplWyIhY3RybGlkIl18fFtdKS5mb3JFYWNoKGZ1bmN0aW9uKFlyKXtZci5yZWw9d2VbIiFpZCJdW1lyLmlkXX0pLG51bGw9PWplWyIhZ3JpZGxpbmVzIl0mJihqZVsiIWdyaWRs''@;'; + put 'put ''aW5lcyJdPSEwKSxqZX0oSCx3ZSxYLHhlLEZlLFplLGplKX0oVXQscmUseGUsWWUsRmVbd2VdLE10LHh0LFJ0KTticmVhaztjYXNlImNoYXJ0Ijpubj1mdW5jdGlvbiBVXyhILHJlLFgsd2UseGUsRmUsWmUsamUpe3JldHVybiIuYmluIj09PXJlLnNsaWNlKC00KT9mdW5jdGlvbiBnUChILHJl''@;'; + put 'put ''LFgsd2UseGUpe2lmKCFIKXJldHVybiBIO3dlfHwod2U9eyIhaWQiOnt9fSk7dmFyIEZlPXsiIXR5cGUiOiJjaGFydCIsIiFkcmF3ZWwiOm51bGwsIiFyZWwiOiIifSxaZT1bXSxqZT0hMTtyZXR1cm4gSDEoSCxmdW5jdGlvbihNdCx4dCxSdCl7c3dpdGNoKFJ0KXtjYXNlIDU1MDpGZVsiIXJl''@;'; + put 'put ''bCJdPU10O2JyZWFrO2Nhc2UgNjUxOnhlLlNoZWV0c1tYXXx8KHhlLlNoZWV0c1tYXT17fSksTXQubmFtZSYmKHhlLlNoZWV0c1tYXS5Db2RlTmFtZT1NdC5uYW1lKTticmVhaztjYXNlIDU2MjpjYXNlIDY1MjpjYXNlIDY2OTpjYXNlIDY3OTpjYXNlIDU1MTpjYXNlIDU1MjpjYXNlIDQ3Njpj''@;'; + put 'put ''YXNlIDMwNzI6YnJlYWs7Y2FzZSAzNTpqZT0hMDticmVhaztjYXNlIDM2OmplPSExO2JyZWFrO2Nhc2UgMzc6WmUucHVzaCh4dCk7YnJlYWs7Y2FzZSAzODpaZS5wb3AoKTticmVhaztkZWZhdWx0OmlmKCh4dHx8IiIpLmluZGV4T2YoIkJlZ2luIik+MClaZS5wdXNoKHh0KTtlbHNlIGlmKCh4''@;'; + put 'put ''dHx8IiIpLmluZGV4T2YoIkVuZCIpPjApWmUucG9wKCk7ZWxzZSBpZighamV8fHJlLldURil0aHJvdyBuZXcgRXJyb3IoIlVuZXhwZWN0ZWQgcmVjb3JkICIrUnQrIiAiK3h0KX19LHJlKSx3ZVsiIWlkIl1bRmVbIiFyZWwiXV0mJihGZVsiIWRyYXdlbCJdPXdlWyIhaWQiXVtGZVsiIXJlbCJd''@;'; + put 'put ''XSksRmV9KEgsd2UsWCx4ZSxGZSk6ZnVuY3Rpb24gQngoSCxyZSxYLHdlLHhlKXtpZighSClyZXR1cm4gSDt3ZXx8KHdlPXsiIWlkIjp7fX0pO3ZhciBaZSxGZT17IiF0eXBlIjoiY2hhcnQiLCIhZHJhd2VsIjpudWxsLCIhcmVsIjoiIn0samU9SC5tYXRjaChBXyk7amUmJk9tKGplWzBdLDAs''@;'; + put 'put ''eGUsWCk7dmFyIFllPUgubWF0Y2godl8pO3JldHVybiBZZSYmKEZlWyIhbWFyZ2lucyJdPVBtKGVuKFllWzBdKSkpLChaZT1ILm1hdGNoKC9kcmF3aW5nIHI6aWQ9IiguKj8pIi8pKSYmKEZlWyIhcmVsIl09WmVbMV0pLHdlWyIhaWQiXVtGZVsiIXJlbCJdXSYmKEZlWyIhZHJhd2VsIl09d2Vb''@;'; + put 'put ''IiFpZCJdW0ZlWyIhcmVsIl1dKSxGZX0oSCwwLFgseGUsRmUpfShVdCxyZSx4ZSxZZSxGZVt3ZV0sTXQpO2JyZWFrO2Nhc2UibWFjcm8iOm5uPWZ1bmN0aW9uIFFfKEgscmUsWCx3ZSx4ZSxGZSxaZSxqZSl7cmV0dXJuIHJlLnNsaWNlKC00KSx7IiF0eXBlIjoibWFjcm8ifX0oMCxyZSk7YnJl''@;'; + put 'put ''YWs7Y2FzZSJkaWFsb2ciOm5uPWZ1bmN0aW9uIHdQKEgscmUsWCx3ZSx4ZSxGZSxaZSxqZSl7cmV0dXJuIHJlLnNsaWNlKC00KSx7IiF0eXBlIjoiZGlhbG9nIn19KDAscmUpO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJVbnJlY29nbml6ZWQgc2hlZXQgdHlwZSAiK2plKX1pZihZ''@;'; + put 'put ''ZS5jYWxsYmFjaylyZXR1cm47WmVbd2VdPW5uLGZ1bmN0aW9uIEdQKEgscmUsWCx3ZSx4ZSxGZSxaZSxqZSl7aWYoSCYmSFsiIWRyYXdlbCJdKXt2YXIgWWU9dW4oSFsiIWRyYXdlbCJdLlRhcmdldCx3ZSksTXQ9SXQoWWUpLHh0PWZ1bmN0aW9uIExFKEgscmUsWCx3ZSx4ZSl7dmFyIEZlPXtj''@;'; + put 'put ''aGFydHM6W10saW1hZ2VzOltdLHNoYXBlczpbXX07aWYoIUgpcmV0dXJuIEZlO3ZhciBaZT14ZXx8e307cmV0dXJuKEgubWF0Y2goLzxbXjxdKj8oYWJzb2x1dGVBbmNob3J8b25lQ2VsbEFuY2hvcnx0d29DZWxsQW5jaG9yKS4qPyhhYnNvbHV0ZUFuY2hvcnxvbmVDZWxsQW5jaG9yfHR3b0Nl''@;'; + put 'put ''bGxBbmNob3IpLio/Pi9nKXx8W10pLmZvckVhY2goZnVuY3Rpb24oamUpe3ZhciBZZT0iIixNdD17dHlwZToiIn0seHQ9e30sUnQ9ITAsVXQ9ITEsbm49ITEsQ249ITEsRHQ9e3M6e319LHp0PS0xLFBuPVtdLFRuPVtdLE9uPXtzOnthbGlnbm1lbnQ6e2hvcml6b250YWw6ImNlbnRlciIsdmVy''@;'; + put 'put ''dGljYWw6ImNlbnRlciJ9fX0sWW49IiIsTXI9LTEseXI9e307amUucmVwbGFjZShHdCxmdW5jdGlvbihhcixHcil7UG49bnVsbDt2YXIgenI9ZW4oYXIpLHFyPUluKHpyWzBdKS5yZXBsYWNlKC9bXC9dPz4kLywiIik7c3dpdGNoKHFyKXtjYXNlIjxjbGllbnREYXRhIjpicmVhaztjYXNlIjxh''@;'; + put 'put ''YnNvbHV0ZUFuY2hvciI6Y2FzZSI8b25lQ2VsbEFuY2hvciI6Y2FzZSI8dHdvQ2VsbEFuY2hvciI6TXQudHlwZT1Jbih6clswXSkucmVwbGFjZSgvWzw+XS9nLCIiKTticmVhaztjYXNlIjwvYWJzb2x1dGVBbmNob3IiOmNhc2UiPC9vbmVDZWxsQW5jaG9yIjpjYXNlIjwvdHdvQ2VsbEFuY2hv''@;'; + put 'put ''ciI6YnJlYWs7Y2FzZSI8cG9zIjpNdC5wb3M9e3g6K3pyLngseTorenIueX07YnJlYWs7Y2FzZSI8ZXh0IjpSdCYmKE10LmV4dD17eDorenIuY3gseTorenIuY3l9KTticmVhaztjYXNlIjxmcm9tIjpjYXNlIjx0byI6eHQ9e307YnJlYWs7Y2FzZSI8L2Zyb20iOlJ0JiYoTXQuZnJvbT14dCk7''@;'; + put 'put ''YnJlYWs7Y2FzZSI8L3RvIjpSdCYmKE10LnRvPXh0KTticmVhaztjYXNlIjxjb2wiOmNhc2UiPGNvbE9mZiI6Y2FzZSI8cm93IjpjYXNlIjxyb3dPZmYiOnp0PUdyK2FyLmxlbmd0aDticmVhaztjYXNlIjwvY29sIjp4dC5jPStqZS5zbGljZSh6dCxHcik7YnJlYWs7Y2FzZSI8L2NvbE9mZiI6''@;'; + put 'put ''eHQuY09mZj0ramUuc2xpY2UoenQsR3IpO2JyZWFrO2Nhc2UiPC9yb3ciOnh0LnI9K2plLnNsaWNlKHp0LEdyKTticmVhaztjYXNlIjwvcm93T2ZmIjp4dC5yT2ZmPStqZS5zbGljZSh6dCxHcik7YnJlYWs7Y2FzZSI8c3AiOlllPSJzaGFwZSIsT24uQW5jaG9yPU10LEZlLnNoYXBlcy5wdXNo''@;'; + put 'put ''KE9uKSxSdD0hMTticmVhaztjYXNlIjwvc3AiOlJ0PSEwO2JyZWFrO2Nhc2UiPGdyYXBoaWNGcmFtZSI6WWU9ImdyYXBoaWMiLFJ0PSExO2JyZWFrO2Nhc2UiPC9ncmFwaGljRnJhbWUiOlJ0PSEwO2JyZWFrO2Nhc2UiPHBpYyI6WWU9InBpY3R1cmUiLFJ0PSExO2JyZWFrO2Nhc2UiPC9waWMi''@;'; + put 'put ''OlJ0PSEwO2JyZWFrO2Nhc2UiPGdycFNwIjpZZT0iZ3JvdXBzaGFwZSIsUnQ9ITE7YnJlYWs7Y2FzZSI8L2dycFNwIjpSdD0hMDticmVhaztjYXNlIjxncmFwaGljIjpjYXNlIjwvZ3JhcGhpYyI6Y2FzZSI8eGZybSI6Y2FzZSI8L3hmcm0iOmNhc2UiPG9mZiI6YnJlYWs7Y2FzZSI8Z3JhcGhp''@;'; + put 'put ''Y0RhdGEiOlV0PSEwO2JyZWFrO2Nhc2UiPC9ncmFwaGljRGF0YSI6VXQ9ITE7YnJlYWs7Y2FzZSI8YmxpcEZpbGwiOlV0PSEwO2JyZWFrO2Nhc2UiPC9ibGlwRmlsbCI6VXQ9ITE7YnJlYWs7Y2FzZSI8L2JsaXAiOmJyZWFrO2Nhc2UiPHNyY1JlY3QiOlV0PSEwO2JyZWFrO2Nhc2UiPC9zcmNS''@;'; + put 'put ''ZWN0IjpVdD0hMTticmVhaztjYXNlIjxub0ZpbGwiOmlmKG5uKWJyZWFrOyI8c3BQciI9PVRuLnNsaWNlKC0xKVswXSYmKE9uLnMuZmdDb2xvcj1udWxsKTticmVhaztjYXNlIjwvc29saWRGaWxsIjppZihubnx8Q24pYnJlYWs7IjxzcFByIj09VG4uc2xpY2UoLTIpWzBdP09uLnMuZmdDb2xv''@;'; + put 'put ''cj15cjoiPHJQciI9PVRuLnNsaWNlKC0yKVswXSYmVG4uaW5kZXhPZigiPHR4Qm9keSIpPi0xJiYoRHQucy5jb2xvcj15cikseXI9e30sQ249ITE7YnJlYWs7Y2FzZSI8cHJzdEdlb20iOiJzaGFwZSI9PVllJiYoT25bIiFzaGFwZSJdPXpyLnByc3QpO2JyZWFrO2Nhc2UiPC9wcnN0R2VvbSI6''@;'; + put 'put ''Y2FzZSI8YXZMc3QiOmJyZWFrO2Nhc2UiPHR4Qm9keSI6VXQ9ITAsT24uUj1bXTticmVhaztjYXNlIjwvdHhCb2R5IjpVdD0hMTticmVhaztjYXNlIjxib2R5UHIiOk9uLnMuYWxpZ25tZW50LnZlcnRpY2FsPURFW3pyLmFuY2hvcnx8InQiXXx8InRvcCI7YnJlYWs7Y2FzZSI8bHN0U3R5bGUi''@;'; + put 'put ''OmJyZWFrO2Nhc2UiPHQiOk1yPUdyK2FyLmxlbmd0aDticmVhaztjYXNlIjxiciI6Y2FzZSI8YnIvPiI6WW4rPSJcbiI7YnJlYWs7Y2FzZSI8L3QiOlluKz1qZS5zbGljZShNcixHcik7YnJlYWs7Y2FzZSI8cFByIjpPbi5zLmFsaWdubWVudC5ob3Jpem9udGFsfHwoT24ucy5hbGlnbm1lbnQu''@;'; + put 'put ''aG9yaXpvbnRhbD1IYlt6ci5hbGdufHwibCJdfHwibGVmdCIpLFRuLmluZGV4T2YoIjx0eEJvZHkiKT4tMSYmKER0LnMuYWxpZ25tZW50Lmhvcml6b250YWw9SGJbenIuYWxnbnx8ImwiXXx8ImxlZnQiKTticmVhaztjYXNlIjxyUHIiOnpyLnN6JiZUbi5pbmRleE9mKCI8dHhCb2R5Iik+LTEm''@;'; + put 'put ''JihPbi5zLnN6PUR0LnMuc3o9K3pyLnN6LzEwMCk7YnJlYWs7Y2FzZSI8cCI6WW49IiIsRHQ9e3Q6InMiLHY6IiIsczp7YWxpZ25tZW50Ont9fX07YnJlYWs7Y2FzZSI8L3AiOiJzaGFwZSI9PVllJiZUbi5pbmRleE9mKCI8dHhCb2R5Iik+LTEmJihPbi52PShPbi52fHwiIikrWW4sRHQudj1Z''@;'; + put 'put ''bixPbi5SLnB1c2goRHQpKTticmVhaztjYXNlIjxsYXRpbiI6enIudHlwZWZhY2UmJlRuLmluZGV4T2YoIjx0eEJvZHkiKT4tMSYmKER0LnMubmFtZT16ci50eXBlZmFjZSk7YnJlYWs7Y2FzZSI8c3R5bGUiOlV0PSEwLG5uPSEwO2JyZWFrO2Nhc2UiPC9zdHlsZSI6VXQ9ITEsbm49ITE7YnJl''@;'; + put 'put ''YWs7Y2FzZSI8bG5SZWYiOmNhc2UiPGZpbGxSZWYiOmNhc2UiPGVmZmVjdFJlZiI6Y2FzZSI8Zm9udFJlZiI6YnJlYWs7Y2FzZSI8L2ZpbGxSZWYiOiFubiYmInNoYXBlIj09WWUmJihPbi5zLmZnQ29sb3I9eXIpLHlyPXt9O2JyZWFrO2Nhc2UiPC9mb250UmVmIjohbm4mJiJzaGFwZSI9PVll''@;'; + put 'put ''JiYoT24ucy5jb2xvcj15cikseXI9e307YnJlYWs7Y2FzZSI8c2NoZW1lQ2xyIjp2YXIgb2k9e2JnMToibHQxIixiZzI6Imx0MiIsdHgxOiJkazEiLHR4MjoiZGsyIn1benIudmFsXXx8enIudmFsLGNyPSgod2UudGhlbWVFbGVtZW50c3x8e30pLmNsclNjaGVtZXx8W10pLmZpbmQoZnVuY3Rp''@;'; + put 'put ''b24odjApe3JldHVybiB2MC5uYW1lPT1vaX0pO2NyP3lyLnJnYj1jci5yZ2I6Q249ITA7YnJlYWs7Y2FzZSI8c2NyZ2JDbHIiOkNuPSEwO2JyZWFrO2Nhc2UiPHNyZ2JDbHIiOnlyLnJnYj16ci52YWwuc2xpY2UoLTYpO2JyZWFrO2Nhc2UiPGhzbENsciI6Y2FzZSI8c3lzQ2xyIjpjYXNlIjxw''@;'; + put 'put ''cnN0Q2xyIjpDbj0hMDticmVhaztjYXNlIjxjaGFydCI6UG49RmUuY2hhcnRzO3ZhciBkaT16ci5pZDtjYXNlIjxibGlwIjpQbnx8KFBuPUZlLmltYWdlcyxkaT16ci5lbWJlZCksUG4ucHVzaCh7QW5jaG9yOk10LFRhcmdldDoocmVbIiFpZCJdW2RpXXx8e30pLlRhcmdldH0pLHpyLmxpbmsm''@;'; + put 'put ''JihQbltQbi5sZW5ndGgtMV0uTGluaz0ocmVbIiFpZCJdW3pyLmxpbmtdfHx7fSkuVGFyZ2V0KTticmVhaztjYXNlIjxncnBTcFByIjpVdD0hMDticmVhaztjYXNlIjwvZ3JwU3BQciI6VXQ9ITE7YnJlYWs7Y2FzZSI8bnZHcnBTcFByIjpVdD0hMDticmVhaztjYXNlIjwvbnZHcnBTcFByIjpV''@;'; + put 'put ''dD0hMTticmVhaztjYXNlIjxzcFByIjpVdD0hMDticmVhaztjYXNlIjwvc3BQciI6VXQ9ITE7YnJlYWs7Y2FzZSI8c3RyZXRjaCI6Y2FzZSI8L3N0cmV0Y2giOmNhc2UiPGZpbGxSZWN0IjpjYXNlIjxudkdyYXBoaWNGcmFtZVByIjpjYXNlIjwvbnZHcmFwaGljRnJhbWVQciI6Y2FzZSI8Y052''@;'; + put 'put ''R3JhcGhpY0ZyYW1lUHIiOmNhc2UiPC9jTnZHcmFwaGljRnJhbWVQciI6Y2FzZSI8Z3JhcGhpY0ZyYW1lTG9ja3MiOmNhc2UiPG52UGljUHIiOmNhc2UiPC9udlBpY1ByIjpjYXNlIjxjTnZQaWNQciI6Y2FzZSI8L2NOdlBpY1ByIjpjYXNlIjxwaWNMb2NrcyI6Y2FzZSI8Y052R3JwU3BQciI6''@;'; + put 'put ''Y2FzZSI8L2NOdkdycFNwUHIiOmNhc2UiPGdycFNwTG9ja3MiOmNhc2UiPG52U3BQciI6Y2FzZSI8L252U3BQciI6Y2FzZSI8Y052U3BQciI6Y2FzZSI8L2NOdlNwUHIiOmNhc2UiPHNwTG9ja3MiOmJyZWFrO2Nhc2UiPGNOdlByIjpVdD0hMDticmVhaztjYXNlIjwvY052UHIiOlV0PSExO2Jy''@;'; + put 'put ''ZWFrO2Nhc2UiPGN4blNwIjpVdD0hMDticmVhaztjYXNlIjwvY3huU3AiOlV0PSExO2JyZWFrO2Nhc2UiPGNOdkN4blNwUHIiOlV0PSEwO2JyZWFrO2Nhc2UiPC9jTnZDeG5TcFByIjpVdD0hMTticmVhaztjYXNlIjxudkN4blNwUHIiOmNhc2UiPC9udkN4blNwUHIiOmJyZWFrO2Nhc2UiPGV4''@;'; + put 'put ''dExzdCI6VXQ9ITAsbm49ITA7YnJlYWs7Y2FzZSI8L2V4dExzdCI6VXQ9ITEsbm49ITE7YnJlYWs7Y2FzZSI8L2V4dCI6YnJlYWs7ZGVmYXVsdDppZihaZSYmWmUuV1RGJiYhVXQpdGhyb3cgbmV3IEVycm9yKCJ1bnJlY29nbml6ZWQgIit6clswXSsiIGluIGRyYXdpbmciKX1yZXR1cm4iPC8i''@;'; + put 'put ''PT1xci5zbGljZSgwLDIpP1RuLnBvcCgpOiIvPiIhPWFyLnNsaWNlKGFyLmxlbmd0aC0yKSYmVG4ucHVzaChxciksIiJ9KX0pLEZlfShVbihYLFllLCEwKSxQdChVbihYLE10LCEwKSxZZSksMCxqZSx4ZSk7aWYoeHQpe2lmKHh0LmNoYXJ0cylmb3IodmFyIFJ0PTA7UnQ8eHQuY2hhcnRzLmxl''@;'; + put 'put ''bmd0aDsrK1J0KXt2YXIgVXQ9eHQuY2hhcnRzW1J0XSxubj11bihVdC5UYXJnZXQsWWUpLENuPUl0KG5uKSxEdD0iY2hhcnQiPT1yZSYmMD09UnQsenQ9T3goVW4oWCxubiwhMCksMCwwLFB0KFVuKFgsQ24sITApLG5uKSwwLER0P0g6bnVsbCxVdCxEdD9udWxsOkgpO0R0fHwoSFsiIWNoYXJ0''@;'; + put 'put ''cyJdfHwoSFsiIWNoYXJ0cyJdPVtdKSxIWyIhY2hhcnRzIl0ucHVzaCh6dCkpfWlmKHhlLmJvb2tJbWFnZXMmJnh0LmltYWdlcylmb3IodmFyIFBuPTA7UG48eHQuaW1hZ2VzLmxlbmd0aDsrK1BuKXt2YXIgVG49eHQuaW1hZ2VzW1BuXSxPbj17IiF0eXBlIjoiaW1hZ2UiLCIhcG9zIjokOChU''@;'; + put 'put ''bi5BbmNob3IpLCIhcG9zVHlwZSI6VG4uQW5jaG9yLnR5cGUucmVwbGFjZSgvQW5jaG9yLywiIiksIiFhYnNwb3MiOnlmKFRuLkFuY2hvcixIKSwiIXJlbHBvcyI6T2IoVG4uQW5jaG9yLEgpfTtpZihUbi5UYXJnZXQmJihPblsiIXBhdGgiXT11bihUbi5UYXJnZXQsWWUpLE9uWyIhZGF0YSJd''@;'; + put 'put ''PXNuKFgsT25bIiFwYXRoIl0pLE9uWyIhZGF0YXR5cGUiXT0ic3RyaW5nIj09dHlwZW9mIE9uWyIhZGF0YSJdPyJiaW5hcnkiOiJidWZmZXIiKSxUbi5MaW5rJiYoT25bIiFkYXRhdHlwZSJdfHwoT25bIiFkYXRhdHlwZSJdPSJyZW1vdGUiKSxPblsiIWxpbmsiXT1Ubi5MaW5rKSwhT25bIiFk''@;'; + put 'put ''YXRhdHlwZSJdKXRocm93IkltYWdlIGRhdGEgY2Fubm90IGJlIGZvdW5kIjtIWyIhaW1hZ2VzIl18fChIWyIhaW1hZ2VzIl09W10pLEhbIiFpbWFnZXMiXS5wdXNoKE9uKX12YXIgWW4sTXI7aWYoeHQuc2hhcGVzKWZvcih2YXIgeXI9MDt5cjx4dC5zaGFwZXMubGVuZ3RoOysreXIpTXI9eyIh''@;'; + put 'put ''dHlwZSI6InNoYXBlIiwiIXBvcyI6eWYoKFluPXh0LnNoYXBlc1t5cl0pLkFuY2hvcixIKSwiIXBvc1R5cGUiOlluLkFuY2hvci50eXBlLnJlcGxhY2UoL0FuY2hvci8sIiIpLCIhYWJzcG9zIjp5ZihZbi5BbmNob3IsSCksIiFyZWxwb3MiOk9iKFluLkFuY2hvcixIKX0sWyJ2IiwiIXNoYXBl''@;'; + put 'put ''IiwicyIsIlIiXS5mb3JFYWNoKGFpKSxIWyIhc2hhcGVzIl18fChIWyIhc2hhcGVzIl09W10pLEhbIiFzaGFwZXMiXS5wdXNoKE1yKX19ZnVuY3Rpb24gYWkoYXIpe1luW2FyXSYmKE1yW2FyXT1Zblthcl0pfX0obm4samUsSCxyZSxZZSwwLDAseHQpO3ZhciBDbj1bXTtyZXR1cm4gRmUmJkZl''@;'; + put 'put ''W3dlXSYmb24oRmVbd2VdKS5mb3JFYWNoKGZ1bmN0aW9uKER0KXtpZihGZVt3ZV1bRHRdLlR5cGU9PXB0LkNNTlQpe3ZhciB6dD11bihGZVt3ZV1bRHRdLlRhcmdldCxyZSk7aWYoIShDbj1mdW5jdGlvbiBDUChILHJlLFgpe3JldHVybiIuYmluIj09PXJlLnNsaWNlKC00KT9mdW5jdGlvbiBZ''@;'; + put 'put ''YihILHJlKXt2YXIgWD1bXSx3ZT1bXSx4ZT17fSxGZT0hMTtyZXR1cm4gSDEoSCxmdW5jdGlvbihqZSxZZSxNdCl7c3dpdGNoKE10KXtjYXNlIDYzMjp3ZS5wdXNoKGplKTticmVhaztjYXNlIDYzNTp4ZT1qZTticmVhaztjYXNlIDYzNzp4ZS50PWplLnQseGUuaD1qZS5oLHhlLnI9amUucjti''@;'; + put 'put ''cmVhaztjYXNlIDYzNjppZih4ZS5hdXRob3I9d2VbeGUuaWF1dGhvcl0sZGVsZXRlIHhlLmlhdXRob3IscmUuc2hlZXRSb3dzJiZ4ZS5yZngmJnJlLnNoZWV0Um93czw9eGUucmZ4LnIpYnJlYWs7eGUudHx8KHhlLnQ9IiIpLGRlbGV0ZSB4ZS5yZngsWC5wdXNoKHhlKTticmVhaztjYXNlIDMw''@;'; + put 'put ''NzI6Y2FzZSAzNzpjYXNlIDM4OmJyZWFrO2Nhc2UgMzU6RmU9ITA7YnJlYWs7Y2FzZSAzNjpGZT0hMTticmVhaztkZWZhdWx0OmlmKCEoKFllfHwiIikuaW5kZXhPZigiQmVnaW4iKT4wKSYmISgoWWV8fCIiKS5pbmRleE9mKCJFbmQiKT4wKSYmKCFGZXx8cmUuV1RGKSl0aHJvdyBuZXcgRXJy''@;'; + put 'put ''b3IoIlVuZXhwZWN0ZWQgcmVjb3JkICIrTXQrIiAiK1llKX19KSxYfShILFgpOmZ1bmN0aW9uIFJFKEgscmUpe2lmKEgubWF0Y2goLzwoPzpcdys6KT9jb21tZW50cyAqXC8+LykpcmV0dXJuW107dmFyIFg9W10sd2U9W10seGU9SC5tYXRjaCgvPCg/Olx3KzopP2F1dGhvcnM+KFtcc1xTXSop''@;'; + put 'put ''PFwvKD86XHcrOik/YXV0aG9ycz4vKTt4ZSYmeGVbMV0mJnhlWzFdLnNwbGl0KC88XC9cdyo6P2F1dGhvcj4vKS5mb3JFYWNoKGZ1bmN0aW9uKFplKXtpZigiIiE9PVplJiYiIiE9PVplLnRyaW0oKSl7dmFyIGplPVplLm1hdGNoKC88KD86XHcrOik/YXV0aG9yW14+XSo+KC4qKS8pO2plJiZY''@;'; + put 'put ''LnB1c2goamVbMV0pfX0pO3ZhciBGZT1ILm1hdGNoKC88KD86XHcrOik/Y29tbWVudExpc3Q+KFtcc1xTXSopPFwvKD86XHcrOik/Y29tbWVudExpc3Q+Lyk7cmV0dXJuIEZlJiZGZVsxXSYmRmVbMV0uc3BsaXQoLzxcL1x3Kjo/Y29tbWVudD4vKS5mb3JFYWNoKGZ1bmN0aW9uKFplKXtpZigi''@;'; + put 'put ''IiE9PVplJiYiIiE9PVplLnRyaW0oKSl7dmFyIGplPVplLm1hdGNoKC88KD86XHcrOik/Y29tbWVudFtePl0qPi8pO2lmKGplKXt2YXIgWWU9ZW4oamVbMF0pLE10PXthdXRob3I6WWUuYXV0aG9ySWQmJlhbWWUuYXV0aG9ySWRdfHwic2hlZXRqc2dob3N0IixyZWY6WWUucmVmLGd1aWQ6WWUu''@;'; + put 'put ''Z3VpZH0seHQ9dWwoWWUucmVmKTtpZighKHJlLnNoZWV0Um93cyYmcmUuc2hlZXRSb3dzPD14dC5yKSl7dmFyIFJ0PVplLm1hdGNoKC88KD86XHcrOik/dGV4dD4oW1xzXFNdKik8XC8oPzpcdys6KT90ZXh0Pi8pLFV0PSEhUnQmJiEhUnRbMV0mJiR1KFJ0WzFdKXx8e3I6IiIsdDoiIixoOiIi''@;'; + put 'put ''fTtNdC5yPVV0LnIsIjx0PjwvdD4iPT1VdC5yJiYoVXQudD1VdC5oPSIiKSxNdC50PShVdC50fHwiIikucmVwbGFjZSgvXHJcbi9nLCJcbiIpLnJlcGxhY2UoL1xyL2csIlxuIikscmUuY2VsbEhUTUwmJihNdC5oPVV0LmgpLHdlLnB1c2goTXQpfX19fSksd2V9KEgsWCl9KHNuKEgsenQsITAp''@;'; + put 'put ''LHp0LFllKSl8fCFDbi5sZW5ndGgpcmV0dXJuOyFmdW5jdGlvbiBHOShILHJlKXt2YXIgd2UsWD1BcnJheS5pc0FycmF5KEgpO3JlLmZvckVhY2goZnVuY3Rpb24oeGUpe3ZhciBGZT11bCh4ZS5yZWYpO2lmKFg/KEhbRmUucl18fChIW0ZlLnJdPVtdKSx3ZT1IW0ZlLnJdW0ZlLmNdKTp3ZT1I''@;'; + put 'put ''W3hlLnJlZl0sIXdlKXt3ZT17dDoieiJ9LFg/SFtGZS5yXVtGZS5jXT13ZTpIW3hlLnJlZl09d2U7dmFyIFplPUZvKEhbIiFyZWYiXXx8IkJEV0dPMTAwMDAwMTpBMSIpO1plLnMucj5GZS5yJiYoWmUucy5yPUZlLnIpLFplLmUucjxGZS5yJiYoWmUuZS5yPUZlLnIpLFplLnMuYz5GZS5jJiYo''@;'; + put 'put ''WmUucy5jPUZlLmMpLFplLmUuYzxGZS5jJiYoWmUuZS5jPUZlLmMpO3ZhciBqZT1mYShaZSk7amUhPT1IWyIhcmVmIl0mJihIWyIhcmVmIl09amUpfXdlLmN8fCh3ZS5jPVtdKTt2YXIgWWU9e2E6eGUuYXV0aG9yLHQ6eGUudCxyOnhlLnJ9O1llLnImJiJzdHJpbmciPT10eXBlb2YgWWUuciYm''@;'; + put 'put ''KFllLlI9VzgoWWUucikpLHhlLmgmJihZZS5oPXhlLmgpLHdlLmMucHVzaChZZSl9KX0obm4sQ24pfX0pLGZ1bmN0aW9uIHBUKEgscmUsWCx3ZSx4ZSxGZSxaZSl7IUh8fCFIWyIhdGFibGVyZWZzIl18fCFYfHwhWFsiIWlkIl18fChIWyIhdGFibGVzIl09W10sSFsiIXRhYmxlcmVmcyJdLmZv''@;'; + put 'put ''ckVhY2goZnVuY3Rpb24oamUpe3ZhciBZZT1YWyIhaWQiXVtqZV07aWYoWWUmJlllLlRhcmdldCl7dmFyIE10PXVuKFllLlRhcmdldCx3ZSk7dm9pZCAwIT09WjkmJlo5KHNuKHJlLE10LCEwKSxILHhlLDAsWmUpfX0pLGRlbGV0ZSBIWyIhdGFibGVyZWZzIl0pfShubixILEZlW3dlXSxyZSxS''@;'; + put 'put ''dCwwLFllKSwidW5kZWZpbmVkIiE9dHlwZW9mIHBhcnNlX3NoZWV0X3Bpdm90JiZENS5wdXNoKFtubixILEZlW3dlXSxyZSx7U2hlZXRzOlplfSxSdCxZZV0pLGZ1bmN0aW9uIFdQKEgscmUsWCx3ZSx4ZSxGZSxaZSxqZSl7aWYoSCYmSFsiIWxlZ2RyYXdlbCJdKXt2YXIgWWU9dW4oSFsiIWxl''@;'; + put 'put ''Z2RyYXdlbCJdLlRhcmdldCx3ZSksTXQ9VW4oWCxZZSwhMCk7TXQmJmZ1bmN0aW9uIGpiKEgscmUsWCl7dmFyIHdlPTA7KEgubWF0Y2goZEIpfHxbXSkuZm9yRWFjaChmdW5jdGlvbih4ZSl7dmFyIFBuLFRuLE9uLFluLE1yLGFpLHlyLGFyLEZlPSIiLFplPSEwLGplPSIiLFllPS0xLE10PXt9''@;'; + put 'put ''LHh0PXt9LFJ0PXt9LFV0PS0xLG5uPS0xLENuPSIiLER0PSIiLHp0PSIiLEdyPSExLHpyPSExO3N3aXRjaCh4ZS5yZXBsYWNlKEd0LGZ1bmN0aW9uKGNyLGRpKXt2YXIgdjA9ZW4oY3IpO3N3aXRjaChJbih2MFswXSkpe2Nhc2UiPHNoYXBlIjp2MC5maWxsY29sb3ImJihNdC5jb2xvcjE9djAu''@;'; + put 'put ''ZmlsbGNvbG9yKSx2MC5zdHJva2Vjb2xvciYmKFJ0LmNvbG9yPXYwLnN0cm9rZWNvbG9yKTticmVhaztjYXNlIjxmaWxsIjpjYXNlIjxmaWxsPiI6Ijx2OmZpbGwiPT12MFswXSYmKHYwLmNvbG9yMiYmKE10LmNvbG9yMj12MC5jb2xvcjIpLHYwLnR5cGUmJihNdC50eXBlPXYwLnR5cGUpKTti''@;'; + put 'put ''cmVhaztjYXNlIjwvZmlsbD4iOmNhc2UiPGxvY2siOmNhc2UiPGxvY2svPiI6YnJlYWs7Y2FzZSI8c2hhZG93Ijp2MC5jb2xvciYmKHh0LmNvbG9yPXYwLmNvbG9yKSx2MC5vbiYmKHh0Lm9uPXYwLm9uKTticmVhaztjYXNlIjxDbGllbnREYXRhIjp2MC5PYmplY3RUeXBlJiYoRmU9djAuT2Jq''@;'; + put 'put ''ZWN0VHlwZSk7YnJlYWs7Y2FzZSI8VmlzaWJsZSI6Y2FzZSI8VmlzaWJsZS8+IjpaZT0hMTticmVhaztjYXNlIjxBbmNob3IiOmNhc2UiPEFuY2hvcj4iOmNhc2UiPFJvdyI6Y2FzZSI8Um93PiI6Y2FzZSI8Q29sdW1uIjpjYXNlIjxDb2x1bW4+IjpjYXNlIjxGbWxhTWFjcm8iOmNhc2UiPEZt''@;'; + put 'put ''bGFNYWNybz4iOmNhc2UiPEZtbGFMaW5rIjpjYXNlIjxGbWxhTGluaz4iOmNhc2UiPEZtbGFSYW5nZSI6Y2FzZSI8Rm1sYVJhbmdlPiI6Y2FzZSI8U2VsVHlwZSI6Y2FzZSI8U2VsVHlwZT4iOmNhc2UiPFZhbCI6Y2FzZSI8VmFsPiI6Y2FzZSI8TWluIjpjYXNlIjxNaW4+IjpjYXNlIjxNYXgi''@;'; + put 'put ''OmNhc2UiPE1heD4iOmNhc2UiPEluYyI6Y2FzZSI8SW5jPiI6Y2FzZSI8UGFnZSI6Y2FzZSI8UGFnZT4iOmNhc2UiPENoZWNrZWQiOmNhc2UiPENoZWNrZWQ+IjpjYXNlIjx0ZXh0Ym94IjpjYXNlIjx0ZXh0Ym94PiI6WWU9ZGkrY3IubGVuZ3RoO2JyZWFrO2Nhc2UiPC9BbmNob3I+IjpqZT14''@;'; + put 'put ''ZS5zbGljZShZZSxkaSkudHJpbSgpO2JyZWFrO2Nhc2UiPC9Sb3c+IjpVdD0reGUuc2xpY2UoWWUsZGkpLnRyaW0oKTticmVhaztjYXNlIjwvQ29sdW1uPiI6bm49K3hlLnNsaWNlKFllLGRpKS50cmltKCk7YnJlYWs7Y2FzZSI8L0ZtbGFNYWNybz4iOkNuPXhlLnNsaWNlKFllLGRpKS50cmlt''@;'; + put 'put ''KCk7YnJlYWs7Y2FzZSI8L0ZtbGFMaW5rPiI6RHQ9eGUuc2xpY2UoWWUsZGkpLnRyaW0oKTticmVhaztjYXNlIjwvRm1sYVJhbmdlPiI6eXI9eGUuc2xpY2UoWWUsZGkpLnRyaW0oKTticmVhaztjYXNlIjwvU2VsVHlwZT4iOmFyPXhlLnNsaWNlKFllLGRpKS50cmltKCk7YnJlYWs7Y2FzZSI8''@;'; + put 'put ''L1ZhbD4iOlBuPSt4ZS5zbGljZShZZSxkaSkudHJpbSgpO2JyZWFrO2Nhc2UiPC9NaW4+IjpUbj0reGUuc2xpY2UoWWUsZGkpLnRyaW0oKTticmVhaztjYXNlIjwvTWF4PiI6T249K3hlLnNsaWNlKFllLGRpKS50cmltKCk7YnJlYWs7Y2FzZSI8L0luYz4iOlluPSt4ZS5zbGljZShZZSxkaSku''@;'; + put 'put ''dHJpbSgpO2JyZWFrO2Nhc2UiPC9QYWdlPiI6TXI9K3hlLnNsaWNlKFllLGRpKS50cmltKCk7YnJlYWs7Y2FzZSI8L0NoZWNrZWQ+IjphaT0reGUuc2xpY2UoWWUsZGkpLnRyaW0oKTticmVhaztjYXNlIjwvdGV4dGJveD4iOnp0PXhlLnNsaWNlKFllLGRpKS50cmltKCk7YnJlYWs7Y2FzZSI8''@;'; + put 'put ''TW92ZVdpdGhDZWxscy8+IjpjYXNlIjxNb3ZlV2l0aENlbGxzPiI6R3I9ITA7YnJlYWs7Y2FzZSI8U2l6ZVdpdGhDZWxscy8+IjpjYXNlIjxTaXplV2l0aENlbGxzPiI6enI9ITB9cmV0dXJuIiJ9KSxGZSl7Y2FzZSJOb3RlIjp2YXIgcXI9YWMuc2hlZXRfZ2V0X2NlbGwocmUsVXQ+PTAmJm5u''@;'; + put 'put ''Pj0wP1kwKHtyOlV0LGM6bm59KTpYW3dlXS5yZWYpO3FyLmMmJihxci5jLmhpZGRlbj1aZSxqZSYmKHFyLmMucmF3YW5jaG9yPWplLFRFKGplLHFyLmMpLGZCKHFyLmNbIiFwb3MiXSwyKiEhR3IrISF6cixyZSkpLE10LmNvbG9yMSYmKHFyLmMuZmlsbD1NdCkseHQuY29sb3ImJihxci5jLnNo''@;'; + put 'put ''YWRvdz14dCksUnQuY29sb3ImJihxci5jLnN0cm9rZT1SdCkpLCsrd2U7YnJlYWs7Y2FzZSJCdXR0b24iOmNhc2UiR0JveCI6Y2FzZSJEcm9wIjpjYXNlIkxhYmVsIjpjYXNlIkNoZWNrYm94IjpjYXNlIlNjcm9sbCI6Y2FzZSJMaXN0IjpjYXNlIlJhZGlvIjpjYXNlIlNwaW4iOmNhc2UiRWRp''@;'; + put 'put ''dCI6cmVbIiFjb250cm9scyJdfHwocmVbIiFjb250cm9scyJdPVtdKTt2YXIgb2k9eyIhdHlwZSI6RmV9O2plJiZURShqZSxvaSksQ24mJihvaS5tYWNybz1Dbi5yZXBsYWNlKCJbMF0hIiwiIikpLER0JiYob2kubGluaz1EdCksIlNjcm9sbCI9PUZlfHwiU3BpbiI9PUZlPyhudWxsPT1QbiYm''@;'; + put 'put ''KFBuPTApLG51bGw9PVRuJiYoVG49MCksbnVsbD09T24mJihPbj0zZTQpLG51bGw9PVluJiYoWW49MSksIlNjcm9sbCI9PUZlJiZudWxsPT1NciYmKE1yPTEwKSk6IlJhZGlvIj09RmV8fCJDaGVja2JveCI9PUZlPyhudWxsPT1haSYmKGFpPTApLFBuPWFpKTooIkxpc3QiPT1GZXx8IkRyb3Ai''@;'; + put 'put ''PT1GZSkmJihudWxsIT15ciYmKG9pLnJlZj15ciksbnVsbD09YXImJihhcj0iU2luZ2xlIiksIkxpc3QiPT1GZSYmKG9pLnNlbD1hcikpLG51bGwhPVBuJiYob2kudmFsPVBuKSxudWxsIT1UbiYmKG9pLm1pbj1UbiksbnVsbCE9T24mJihvaS5tYXg9T24pLG51bGwhPVluJiYob2kuc3RlcD1Z''@;'; + put 'put ''biksbnVsbCE9TXImJihvaS5wYWdlPU1yKSx6dCYmKG9pLnQ9enQucmVwbGFjZSgvXHMqPFtcc1xTXSo/PlxzKi9nLCIiKSkscmVbIiFjb250cm9scyJdLnB1c2gob2kpfX0pfShXMChNdCksSCxqZXx8W10pLEhbIiFMRFAiXT1ZZSxIWyIhY3RybGlkIl0mJkhbIiFjdHJsaWQiXS5mb3JFYWNo''@;'; + put 'put ''KGZ1bmN0aW9uKHh0KXtpZih4dC5yZWwmJnh0LnJlbC5UYXJnZXQpe3ZhciBSdD11bih4dC5yZWwuVGFyZ2V0LHdlKTt4dC5wYXRoPVJ0LGRlbGV0ZSB4dC5yZWx9fSl9fShubiwwLEgscmUsMCwwLDAsQ24pLG5ufWNhdGNoKER0KXtpZihZZS5XVEYpdGhyb3cgRHR9fWZ1bmN0aW9uIGgxKEgp''@;'; + put 'put ''e3JldHVybiIvIj09SC5jaGFyQXQoMCk/SC5zbGljZSgxKTpIfWZ1bmN0aW9uIEttKEgscmUpe2lmKEQ1PVtdLE1mKHJlPXJlfHx7fSksS24oSCwiTUVUQS1JTkYvbWFuaWZlc3QueG1sIil8fEtuKEgsIm9iamVjdGRhdGEueG1sIikpcmV0dXJuIGZ1bmN0aW9uIG9DKEgscmUpe3JlPXJlfHx7''@;'; + put 'put ''fSxLbihILCJNRVRBLUlORi9tYW5pZmVzdC54bWwiKSYmZnVuY3Rpb24gUGkoSCxyZSl7Zm9yKHZhciB3ZSx4ZSxYPUM1KEgpO3dlPU5oLmV4ZWMoWCk7KXN3aXRjaCh3ZVszXSl7Y2FzZSJtYW5pZmVzdCI6YnJlYWs7Y2FzZSJmaWxlLWVudHJ5IjppZigiLyI9PSh4ZT1lbih3ZVswXSwhMSkp''@;'; + put 'put ''LnBhdGgmJiJhcHBsaWNhdGlvbi92bmQub2FzaXMub3BlbmRvY3VtZW50LnNwcmVhZHNoZWV0IiE9PXhlLnR5cGUpdGhyb3cgbmV3IEVycm9yKCJUaGlzIE9wZW5Eb2N1bWVudCBpcyBub3QgYSBzcHJlYWRzaGVldCIpO2JyZWFrO2Nhc2UiZW5jcnlwdGlvbi1kYXRhIjpjYXNlImFsZ29yaXRo''@;'; + put 'put ''bSI6Y2FzZSJzdGFydC1rZXktZ2VuZXJhdGlvbiI6Y2FzZSJrZXktZGVyaXZhdGlvbiI6dGhyb3cgbmV3IEVycm9yKCJVbnN1cHBvcnRlZCBPRFMgRW5jcnlwdGlvbiIpO2RlZmF1bHQ6aWYocmUmJnJlLldURil0aHJvdyB3ZX19KHNuKEgsIk1FVEEtSU5GL21hbmlmZXN0LnhtbCIpLHJlKTt2''@;'; + put 'put ''YXIgWD1VbihILCJjb250ZW50LnhtbCIpO2lmKCFYKXRocm93IG5ldyBFcnJvcigiTWlzc2luZyBjb250ZW50LnhtbCBpbiBPRFMgLyBVT0YgZmlsZSIpO3ZhciB3ZT1pQyhXMChYKSxyZSk7cmV0dXJuIEtuKEgsIm1ldGEueG1sIikmJih3ZS5Qcm9wcz1scyhzbihILCJtZXRhLnhtbCIpKSks''@;'; + put 'put ''d2V9KEgscmUpO2lmKEtuKEgsIkluZGV4L0RvY3VtZW50Lml3YSIpKXRocm93IG5ldyBFcnJvcigiVW5zdXBwb3J0ZWQgTlVNQkVSUyBmaWxlIik7dmFyIEZlLFplLFg9ZnVuY3Rpb24gdG4oSCl7Zm9yKHZhciByZT1ILkZ1bGxQYXRoc3x8b24oSC5maWxlcyksWD1bXSx3ZT0wO3dlPHJlLmxl''@;'; + put 'put ''bmd0aDsrK3dlKSIvIiE9cmVbd2VdLnNsaWNlKC0xKSYmWC5wdXNoKHJlW3dlXSk7cmV0dXJuIFguc29ydCgpfShIKSx3ZT1mdW5jdGlvbiBpYihIKXt2YXIgcmU9e3dvcmtib29rczpbXSxzaGVldHM6W10sY2hhcnRzOltdLGRpYWxvZ3M6W10sbWFjcm9zOltdLHJlbHM6W10sc3RyczpbXSxj''@;'; + put 'put ''b21tZW50czpbXSxsaW5rczpbXSxjb3JlcHJvcHM6W10sZXh0cHJvcHM6W10sY3VzdHByb3BzOltdLHRoZW1lczpbXSxzdHlsZXM6W10sY2FsY2NoYWluczpbXSx2YmE6W10sZHJhd2luZ3M6W10scGl2b3RzOltdLHBpdm90Y2FjaGVzOltdLHBpdm90cmVjb3JkczpbXSxkYXRhbW9kZWxzOltd''@;'; + put 'put ''LGNoYXJ0b2JqczpbXSxjaGFydHN0eWxlczpbXSxjaGFydGNvbG9yczpbXSxjaGFydGV4czpbXSx0YWJsZXM6W10sY29ubnM6W10sY3RybHByb3BzOltdLGN1c3RvbXhtbHByb3BzOltdLFRPRE86W10seG1sbnM6IiJ9O2lmKCFIfHwhSC5tYXRjaClyZXR1cm4gcmU7dmFyIFg9e307aWYoKEgu''@;'; + put 'put ''bWF0Y2goR3QpfHxbXSkuZm9yRWFjaChmdW5jdGlvbih3ZSl7dmFyIHhlPWVuKHdlKTtzd2l0Y2goeGVbMF0ucmVwbGFjZShrbiwiPCIpKXtjYXNlIjw/eG1sIjpicmVhaztjYXNlIjxUeXBlcyI6cmUueG1sbnM9eGVbInhtbG5zIisoeGVbMF0ubWF0Y2goLzwoXHcrKTovKXx8WyIiLCIiXSlb''@;'; + put 'put ''MV1dO2JyZWFrO2Nhc2UiPERlZmF1bHQiOlhbeGUuRXh0ZW5zaW9uLnRvTG93ZXJDYXNlKCldPXhlLkNvbnRlbnRUeXBlO2JyZWFrO2Nhc2UiPE92ZXJyaWRlIjp2b2lkIDAhPT1yZVtBZFt4ZS5Db250ZW50VHlwZV1dJiZyZVtBZFt4ZS5Db250ZW50VHlwZV1dLnB1c2goeGUuUGFydE5hbWUp''@;'; + put 'put ''fX0pLHJlLnhtbG5zIT09WDAuQ1QpdGhyb3cgbmV3IEVycm9yKCJVbmtub3duIE5hbWVzcGFjZTogIityZS54bWxucyk7cmV0dXJuIHJlLmNhbGNjaGFpbj1yZS5jYWxjY2hhaW5zLmxlbmd0aD4wP3JlLmNhbGNjaGFpbnNbMF06IiIscmUuc3N0PXJlLnN0cnMubGVuZ3RoPjA/cmUuc3Ryc1sw''@;'; + put 'put ''XToiIixyZS5zdHlsZT1yZS5zdHlsZXMubGVuZ3RoPjA/cmUuc3R5bGVzWzBdOiIiLHJlLmNvbm49cmUuY29ubnMubGVuZ3RoPjA/cmUuY29ubnNbMF06IiIscmUuZGVmYXVsdHM9WCxkZWxldGUgcmUuY2FsY2NoYWlucyxyZX0oVW4oSCwiW0NvbnRlbnRfVHlwZXNdLnhtbCIpKSx4ZT0hMTtp''@;'; + put 'put ''ZigwPT09d2Uud29ya2Jvb2tzLmxlbmd0aCYmc24oSCxaZT0ieGwvd29ya2Jvb2sueG1sIiwhMCkmJndlLndvcmtib29rcy5wdXNoKFplKSwwPT09d2Uud29ya2Jvb2tzLmxlbmd0aCl7aWYoIXNuKEgsWmU9InhsL3dvcmtib29rLmJpbiIsITApKXRocm93IG5ldyBFcnJvcigiQ291bGQgbm90''@;'; + put 'put ''IGZpbmQgd29ya2Jvb2siKTt3ZS53b3JrYm9va3MucHVzaChaZSkseGU9ITB9ImJpbiI9PXdlLndvcmtib29rc1swXS5zbGljZSgtMykmJih4ZT0hMCk7dmFyIGplPXt9LFllPXt9O2lmKCFyZS5ib29rU2hlZXRzJiYhcmUuYm9va1Byb3BzKXtpZihSZD1bXSx3ZS5zc3QpdHJ5e1JkPWZ1bmN0''@;'; + put 'put ''aW9uIF9QKEgscmUsWCl7cmV0dXJuIi5iaW4iPT09cmUuc2xpY2UoLTQpP2Z1bmN0aW9uIHhoKEgscmUpe3ZhciBYPVtdLHdlPSExO3JldHVybiBIMShILGZ1bmN0aW9uKEZlLFplLGplKXtzd2l0Y2goamUpe2Nhc2UgMTU5OlguQ291bnQ9RmVbMF0sWC5VbmlxdWU9RmVbMV07YnJlYWs7Y2Fz''@;'; + put 'put ''ZSAxOTpYLnB1c2goRmUpO2JyZWFrO2Nhc2UgMTYwOnJldHVybiEwO2Nhc2UgMzU6d2U9ITA7YnJlYWs7Y2FzZSAzNjp3ZT0hMTticmVhaztkZWZhdWx0OmlmKFplLmluZGV4T2YoIkJlZ2luIik+MHx8WmUuaW5kZXhPZigiRW5kIiksIXdlfHxyZS5XVEYpdGhyb3cgbmV3IEVycm9yKCJVbmV4''@;'; + put 'put ''cGVjdGVkIHJlY29yZCAiK2plKyIgIitaZSl9fSksWH0oSCxYKTpmdW5jdGlvbiBXbyhILHJlKXt2YXIgWD1bXSx3ZT0iIjtpZighSClyZXR1cm4gWDt2YXIgeGU9SC5tYXRjaChrYSk7aWYoeGUpe3dlPXhlWzJdLnJlcGxhY2UoeTMsIiIpLnNwbGl0KFFmKTtmb3IodmFyIEZlPTA7RmUhPXdl''@;'; + put 'put ''Lmxlbmd0aDsrK0ZlKXt2YXIgWmU9JHUod2VbRmVdLnRyaW0oKSxyZSk7bnVsbCE9WmUmJihYW1gubGVuZ3RoXT1aZSl9eGU9ZW4oeGVbMV0pLFguQ291bnQ9eGUuY291bnQsWC5VbmlxdWU9eGUudW5pcXVlQ291bnR9cmV0dXJuIFh9KEgsWCl9KHNuKEgsaDEod2Uuc3N0KSksd2Uuc3N0LHJl''@;'; + put 'put ''KX1jYXRjaChoaSl7aWYocmUuV1RGKXRocm93IGhpfXJlLmNlbGxTdHlsZXMmJndlLnRoZW1lcy5sZW5ndGgmJihqZT1mdW5jdGlvbiBZeChILHJlLFgpe3JldHVybiBGOShILFgpfShVbihILHdlLnRoZW1lc1swXS5yZXBsYWNlKC9eXC8vLCIiKSwhMCl8fCIiLDAscmUpKSx3ZS5zdHlsZSYm''@;'; + put 'put ''KFllPWZ1bmN0aW9uIGJQKEgscmUsWCx3ZSl7cmV0dXJuIi5iaW4iPT09cmUuc2xpY2UoLTQpP2Z1bmN0aW9uIGJFKEgscmUsWCl7dmFyIHdlPXtOdW1iZXJGbXQ6W119O2Zvcih2YXIgeGUgaW4gRi5fdGFibGUpd2UuTnVtYmVyRm10W3hlXT1GLl90YWJsZVt4ZV07d2UuQ2VsbFhmPVtdLHdl''@;'; + put 'put ''LkZvbnRzPVtdLHdlLkZpbGxzPVtdLHdlLkJvcmRlcnM9W107dmFyIEZlPVtdLFplPSExO3JldHVybiBIMShILGZ1bmN0aW9uKFllLE10LHh0KXtzd2l0Y2goeHQpe2Nhc2UgNDQ6d2UuTnVtYmVyRm10W1llWzBdXT1ZZVsxXSxGLmxvYWQoWWVbMV0sWWVbMF0pO2JyZWFrO2Nhc2UgNDM6d20o''@;'; + put 'put ''WWUuY29sb3IscmUpLHdlLkZvbnRzLnB1c2goWWUpO2JyZWFrO2Nhc2UgMTAyNTpjYXNlIDQ4OmNhc2UgNTA3OmNhc2UgNTcyOmNhc2UgNDc1OmNhc2UgMTE3MTpjYXNlIDIxMDI6Y2FzZSAxMTMwOmNhc2UgNTEyOmNhc2UgMjA5NTpjYXNlIDMwNzI6YnJlYWs7Y2FzZSA0NTpZZS5mZ0NvbG9y''@;'; + put 'put ''JiZ3bShZZS5mZ0NvbG9yLHJlKSxZZS5iZ0NvbG9yJiZ3bShZZS5iZ0NvbG9yLHJlKSx3ZS5GaWxscy5wdXNoKFllKTticmVhaztjYXNlIDQ2OlsidG9wIiwiYm90dG9tIiwibGVmdCIsInJpZ2h0IiwiZGlhZyJdLmZvckVhY2goZnVuY3Rpb24oUnQpe1llW1J0XSYmWWVbUnRdLmNvbG9yJiZ3''@;'; + put 'put ''bShZZVtSdF0uY29sb3IscmUpfSksd2UuQm9yZGVycy5wdXNoKFllKTticmVhaztjYXNlIDQ3OiJCcnRCZWdpbkNlbGxYRnMiPT1GZVtGZS5sZW5ndGgtMV0mJndlLkNlbGxYZi5wdXNoKFllKTticmVhaztjYXNlIDM1OlplPSEwO2JyZWFrO2Nhc2UgMzY6WmU9ITE7YnJlYWs7Y2FzZSAzNzpG''@;'; + put 'put ''ZS5wdXNoKE10KSxaZT0hMDticmVhaztjYXNlIDM4OkZlLnBvcCgpLFplPSExO2JyZWFrO2RlZmF1bHQ6aWYoKE10fHwiIikuaW5kZXhPZigiQmVnaW4iKT4wKUZlLnB1c2goTXQpO2Vsc2UgaWYoKE10fHwiIikuaW5kZXhPZigiRW5kIik+MClGZS5wb3AoKTtlbHNlIGlmKCFaZXx8WC5XVEYm''@;'; + put 'put ''JiJCcnRBQ0JlZ2luIiE9RmVbRmUubGVuZ3RoLTFdKXRocm93IG5ldyBFcnJvcigiVW5leHBlY3RlZCByZWNvcmQgIit4dCsiICIrTXQpfX0pLCh3ZS5Gb250c3x8W10pWzBdJiZTMyh3ZS5Gb250c1swXSksd2V9KEgsWCx3ZSk6UjkoSCxYLHdlKX0oc24oSCxoMSh3ZS5zdHlsZSkpLHdlLnN0''@;'; + put 'put ''eWxlLGplLHJlKSl9dmFyIE10PXdlLmxpbmtzLm1hcChmdW5jdGlvbihoaSl7dHJ5e3ZhciBOcj1QdChVbihILEl0KGgxKGhpKSkpLGhpKTtyZXR1cm4gZnVuY3Rpb24gSl8oSCxyZSxYLHdlKXtyZXR1cm4iLmJpbiI9PT1YLnNsaWNlKC00KT9mdW5jdGlvbiB3ZihILHJlLFgsd2Upe2lmKCFI''@;'; + put 'put ''KXJldHVybiBIO3ZhciB4ZT13ZXx8e30sRmU9ITE7SDEoSCxmdW5jdGlvbihZZSxNdCx4dCl7c3dpdGNoKHh0KXtjYXNlIDM1OTpjYXNlIDM2MzpjYXNlIDM2NDpjYXNlIDM2NjpjYXNlIDM2NzpjYXNlIDM2ODpjYXNlIDM2OTpjYXNlIDM3MDpjYXNlIDM3MTpjYXNlIDQ3MjpjYXNlIDU3Nzpj''@;'; + put 'put ''YXNlIDU3ODpjYXNlIDU3OTpjYXNlIDU4MDpjYXNlIDU4MTpjYXNlIDU4MjpjYXNlIDU4MzpjYXNlIDU4NDpjYXNlIDU4NTpjYXNlIDU4NjpjYXNlIDU4NzpicmVhaztjYXNlIDM1OkZlPSEwO2JyZWFrO2Nhc2UgMzY6RmU9ITE7YnJlYWs7ZGVmYXVsdDppZighKChNdHx8IiIpLmluZGV4T2Yo''@;'; + put 'put ''IkJlZ2luIik+MCkmJiEoKE10fHwiIikuaW5kZXhPZigiRW5kIik+MCkmJighRmV8fHhlLldURikpdGhyb3cgbmV3IEVycm9yKCJVbmV4cGVjdGVkIHJlY29yZCAiK3h0LnRvU3RyaW5nKDE2KSsiICIrTXQpfX0seGUpfShILDAsMCx3ZSk6ZnVuY3Rpb24gSDQoSCxyZSxYLHdlKXt2YXIgeGU9''@;'; + put 'put ''d2V8fHt9LEZlPXtTaGVldE5hbWVzOltdLFNoZWV0czp7fX0samU9ITEsWWU9e30sTXQ9LTEseHQ9LTEsUnQ9e3M6e3I6MCxjOjB9LGU6e3I6LTEsYzotMX19LFV0PXt9LG5uPTA7cmV0dXJuKEh8fCIiKS5yZXBsYWNlKEd0LGZ1bmN0aW9uKENuLER0KXt2YXIgenQ9ZW4oQ24pO3N3aXRjaChJ''@;'; + put 'put ''bih6dFswXSkpe2Nhc2UiPD94bWwiOmNhc2UiPGV4dGVybmFsTGluayI6Y2FzZSI8L2V4dGVybmFsTGluaz4iOmNhc2UiPC9leHRlcm5hbEJvb2s+IjpjYXNlIjxzaGVldE5hbWVzIjpjYXNlIjxzaGVldE5hbWVzPiI6Y2FzZSI8L3NoZWV0TmFtZXM+IjpjYXNlIjxzaGVldERhdGFTZXQ+Ijpj''@;'; + put 'put ''YXNlIjxzaGVldERhdGFTZXQvPiI6Y2FzZSI8L3NoZWV0RGF0YVNldD4iOmNhc2UiPC9yb3c+IjpicmVhaztjYXNlIjxleHRlcm5hbEJvb2siOmNhc2UiPGV4dGVybmFsQm9vaz4iOkZlLlRhcmdldD1yZVsiIWlkIl1benQuaWRdLlRhcmdldCxGZS5NaXNzaW5nPXJlWyIhaWQiXVt6dC5pZF0u''@;'; + put 'put ''VHlwZT09cHQuWE1JU1M7YnJlYWs7Y2FzZSI8c2hlZXROYW1lIjpGZS5TaGVldE5hbWVzLnB1c2goZ3IoVzAoenQudmFsKSkpO2JyZWFrO2Nhc2UiPHNoZWV0RGF0YSI6WWU9e30sRmUuU2hlZXRzW0ZlLlNoZWV0TmFtZXNbenQuc2hlZXRJZF1dPURpKHp0LnJlZnJlc2hFcnJvcnx8IjAiKT9u''@;'; + put 'put ''dWxsOlllO2JyZWFrO2Nhc2UiPC9zaGVldERhdGE+IjpSdC5lLmM+PTAmJihZZVsiIXJlZiJdPWZhKFJ0KSk7YnJlYWs7Y2FzZSI8cm93IjpjYXNlIjxyb3c+Ijp6dC5yP010PXBhcnNlSW50KHp0LnIsMTApLTE6TXQrKyx4dD0tMTticmVhaztjYXNlIjxjZWxsIjpjYXNlIjxjZWxsPiI6enQu''@;'; + put 'put ''cj94dD11bCh6dC5yKS5jOisreHQsVXQudD16dC50fHwibiIsInN0ciI9PVV0LnQmJihVdC50PSJzIik7YnJlYWs7Y2FzZSI8L2NlbGw+IjpSdC5lLnI8TXQmJihSdC5lLnI9TXQpLFJ0LmUuYzx4dCYmKFJ0LmUuYz14dCksWWVbWTAoe3I6TXQsYzp4dH0pXT1VdCxVdD17fTticmVhaztjYXNl''@;'; + put 'put ''Ijx2IjpjYXNlIjx2PiI6bm49Q24ubGVuZ3RoK0R0O2JyZWFrO2Nhc2UiPC92PiI6dmFyIFBuPWdyKEguc2xpY2Uobm4sRHQpKTtVdC52PSJuIj09VXQudD9wYXJzZUZsb2F0KFBuKTpQbjticmVhaztjYXNlIjx2Lz4iOlV0LnY9IiI7YnJlYWs7Y2FzZSI8ZGVmaW5lZE5hbWVzPiI6amU9ITA7''@;'; + put 'put ''YnJlYWs7Y2FzZSI8L2RlZmluZWROYW1lcz4iOmplPSExO2JyZWFrO2RlZmF1bHQ6aWYoIWplJiZ4ZS5XVEYpdGhyb3cidW5yZWNvZ25pemVkICIrenRbMF0rIiBpbiBleHRlcm5hbCBsaW5rIn19KSxGZX0oSCxyZSwwLHdlKX0oc24oSCxoMShoaSkpLE5yLGhpLHJlKX1jYXRjaChraSl7fX0p''@;'; + put 'put ''LHh0PWZ1bmN0aW9uIEd4KEgscmUsWCl7cmV0dXJuIi5iaW4iPT09cmUuc2xpY2UoLTQpP2Z1bmN0aW9uIGppKEgscmUpe3ZhciBYPXtBcHBWZXJzaW9uOnt9LFdCUHJvcHM6e30sV0JWaWV3OltdLFNoZWV0czpbXSxDYWxjUHI6e30seG1sbnM6IiJ9LHdlPVtdLHhlPSExO3JlfHwocmU9e30p''@;'; + put 'put ''LHJlLmJpZmY9MTI7dmFyIEZlPVtdLFplPVtbXV07cmV0dXJuIFplLlNoZWV0TmFtZXM9W10sWmUuWFRJPVtdLHg1WzE2XT17bjoiQnJ0RlJUQXJjaElEJCIsZjpHbX0sSDEoSCxmdW5jdGlvbihZZSxNdCx4dCl7c3dpdGNoKHh0KXtjYXNlIDE1NjpaZS5TaGVldE5hbWVzLnB1c2goWWUubmFt''@;'; + put 'put ''ZSksWC5TaGVldHMucHVzaChZZSk7YnJlYWs7Y2FzZSAxNTM6WC5XQlByb3BzPVllO2JyZWFrO2Nhc2UgMzk6bnVsbCE9WWUuU2hlZXQmJihyZS5TSUQ9WWUuU2hlZXQpLFllLlJlZj1XMShZZS5QdGcsbnVsbCxudWxsLFplLHJlKSxkZWxldGUgcmUuU0lELGRlbGV0ZSBZZS5QdGcsRmUucHVz''@;'; + put 'put ''aChZZSk7YnJlYWs7Y2FzZSAxMDM2OmNhc2UgMzYxOmNhc2UgMjA3MTpjYXNlIDE1ODpjYXNlIDE0MzpjYXNlIDY2NDpjYXNlIDM1MzpjYXNlIDMwNzI6Y2FzZSAzMDczOmNhc2UgNTM0OmNhc2UgNjc3OmNhc2UgMTU3OmNhc2UgNjEwOmNhc2UgMjA1MDpjYXNlIDE1NTpjYXNlIDU0ODpjYXNl''@;'; + put 'put ''IDY3NjpjYXNlIDEyODpjYXNlIDY2NTpjYXNlIDIxMjg6Y2FzZSAyMTI1OmNhc2UgNTQ5OmNhc2UgMjA1MzpjYXNlIDU5NjpjYXNlIDIwNzY6Y2FzZSAyMDc1OmNhc2UgMjA4MjpjYXNlIDM5NzpjYXNlIDE1NDpjYXNlIDExMTc6Y2FzZSA1NTM6Y2FzZSAyMDkxOmNhc2UgMTY6YnJlYWs7Y2Fz''@;'; + put 'put ''ZSAzNTc6Y2FzZSAzNTg6Y2FzZSAzNTU6Y2FzZSA2Njc6WmVbMF0ubGVuZ3RoP1plLnB1c2goW3h0LFllXSk6WmVbMF09W3h0LFllXSxaZVtaZS5sZW5ndGgtMV0uWFRJPVtdO2JyZWFrO2Nhc2UgMzYyOjA9PT1aZS5sZW5ndGgmJihaZVswXT1bXSxaZVswXS5YVEk9W10pLFplW1plLmxlbmd0''@;'; + put 'put ''aC0xXS5YVEk9WmVbWmUubGVuZ3RoLTFdLlhUSS5jb25jYXQoWWUpLFplLlhUST1aZS5YVEkuY29uY2F0KFllKTticmVhaztjYXNlIDM1OmNhc2UgMzc6d2UucHVzaChNdCkseGU9ITA7YnJlYWs7Y2FzZSAzNjpjYXNlIDM4OndlLnBvcCgpLHhlPSExO2JyZWFrO2RlZmF1bHQ6aWYoISgoTXR8''@;'; + put 'put ''fCIiKS5pbmRleE9mKCJCZWdpbiIpPjApJiYhKChNdHx8IiIpLmluZGV4T2YoIkVuZCIpPjApJiYoIXhlfHxyZS5XVEYmJiJCcnRBQ0JlZ2luIiE9d2Vbd2UubGVuZ3RoLTFdJiYiQnJ0RlJUQmVnaW4iIT13ZVt3ZS5sZW5ndGgtMV0pKXRocm93IG5ldyBFcnJvcigiVW5leHBlY3RlZCByZWNv''@;'; + put 'put ''cmQgIit4dCsiICIrTXQpfX0scmUpLHFmKFgpLFguTmFtZXM9RmUsWC5zdXBib29rcz1aZSxYfShILFgpOmZ1bmN0aW9uIHpfKEgscmUpe2lmKCFIKXRocm93IG5ldyBFcnJvcigiQ291bGQgbm90IGZpbmQgZmlsZSIpO3ZhciBYPXtBcHBWZXJzaW9uOnt9LFdCUHJvcHM6e30sV0JWaWV3Oltd''@;'; + put 'put ''LFNoZWV0czpbXSxDYWxjUHI6e30sTmFtZXM6W10sRXh0ZXJuOltdLHhtbG5zOiIifSx3ZT0hMSx4ZT0ieG1sbnMiLEZlPXt9LFplPTA7aWYoSC5yZXBsYWNlKEd0LGZ1bmN0aW9uKFllLE10KXt2YXIgeHQ9ZW4oWWUpO3N3aXRjaChJbih4dFswXSkpe2Nhc2UiPD94bWwiOmNhc2UiPC93b3Jr''@;'; + put 'put ''Ym9vaz4iOmNhc2UiPGZpbGVWZXJzaW9uLz4iOmNhc2UiPC9maWxlVmVyc2lvbj4iOmNhc2UiPGZpbGVTaGFyaW5nLz4iOmNhc2UiPC93b3JrYm9va1ByPiI6Y2FzZSI8d29ya2Jvb2tQcm90ZWN0aW9uLz4iOmNhc2UiPGJvb2tWaWV3cyI6Y2FzZSI8Ym9va1ZpZXdzPiI6Y2FzZSI8L2Jvb2tW''@;'; + put 'put ''aWV3cz4iOmNhc2UiPC93b3JrYm9va1ZpZXc+IjpjYXNlIjxzaGVldHMiOmNhc2UiPHNoZWV0cz4iOmNhc2UiPC9zaGVldHM+IjpjYXNlIjwvc2hlZXQ+IjpjYXNlIjxmdW5jdGlvbkdyb3VwcyI6Y2FzZSI8ZnVuY3Rpb25Hcm91cHMvPiI6Y2FzZSI8ZnVuY3Rpb25Hcm91cCI6Y2FzZSI8ZXh0''@;'; + put 'put ''ZXJuYWxSZWZlcmVuY2VzIjpjYXNlIjwvZXh0ZXJuYWxSZWZlcmVuY2VzPiI6Y2FzZSI8ZXh0ZXJuYWxSZWZlcmVuY2VzPiI6Y2FzZSI8ZGVmaW5lZE5hbWVzLz4iOmNhc2UiPGRlZmluZWROYW1lLz4iOmNhc2UiPC9jYWxjUHI+IjpjYXNlIjxvbGVTaXplIjpjYXNlIjxjdXN0b21Xb3JrYm9v''@;'; + put 'put ''a1ZpZXdzPiI6Y2FzZSI8L2N1c3RvbVdvcmtib29rVmlld3M+IjpjYXNlIjxjdXN0b21Xb3JrYm9va1ZpZXdzIjpjYXNlIjxjdXN0b21Xb3JrYm9va1ZpZXciOmNhc2UiPC9jdXN0b21Xb3JrYm9va1ZpZXc+IjpjYXNlIjxwaXZvdENhY2hlcz4iOmNhc2UiPC9waXZvdENhY2hlcz4iOmNhc2Ui''@;'; + put 'put ''PHBpdm90Q2FjaGVzIjpjYXNlIjxwaXZvdENhY2hlIjpjYXNlIjxzbWFydFRhZ1ByIjpjYXNlIjxzbWFydFRhZ1ByLz4iOmNhc2UiPHNtYXJ0VGFnVHlwZXMiOmNhc2UiPHNtYXJ0VGFnVHlwZXM+IjpjYXNlIjwvc21hcnRUYWdUeXBlcz4iOmNhc2UiPHNtYXJ0VGFnVHlwZSI6Y2FzZSI8d2Vi''@;'; + put 'put ''UHVibGlzaGluZyI6Y2FzZSI8d2ViUHVibGlzaGluZy8+IjpjYXNlIjxmaWxlUmVjb3ZlcnlQciI6Y2FzZSI8ZmlsZVJlY292ZXJ5UHIvPiI6Y2FzZSI8d2ViUHVibGlzaE9iamVjdHM+IjpjYXNlIjx3ZWJQdWJsaXNoT2JqZWN0cyI6Y2FzZSI8L3dlYlB1Ymxpc2hPYmplY3RzPiI6Y2FzZSI8''@;'; + put 'put ''d2ViUHVibGlzaE9iamVjdCI6Y2FzZSI8ZXh0THN0IjpjYXNlIjxleHRMc3Q+IjpjYXNlIjwvZXh0THN0PiI6Y2FzZSI8ZXh0THN0Lz4iOmNhc2UiPEFyY2hJRCI6Y2FzZSI8cmV2aXNpb25QdHIiOmJyZWFrO2Nhc2UiPHdvcmtib29rIjpZZS5tYXRjaChqeCkmJih4ZT0ieG1sbnMiK1llLm1h''@;'; + put 'put ''dGNoKC88KFx3Kyk6LylbMV0pLFgueG1sbnM9eHRbeGVdO2JyZWFrO2Nhc2UiPGZpbGVWZXJzaW9uIjpkZWxldGUgeHRbMF0sWC5BcHBWZXJzaW9uPXh0O2JyZWFrO2Nhc2UiPGZpbGVTaGFyaW5nIjpYLk1vZGlmeT17dXNlcjp4dC51c2VyTmFtZSx3YXJuOkRpKHh0LnJlYWRPbmx5UmVjb21t''@;'; + put 'put ''ZW5kZWR8fCJmYWxzZSIpfSwoeHQuYWxnb3JpdGhtTmFtZXx8eHQuaGFzaFZhbHVlfHx4dC5zYWx0VmFsdWV8fHh0LnNwaW5Db3VudCkmJihYLk1vZGlmeS5lbmNyeXB0aW9uPXthbGdvOnh0LmFsZ29yaXRobU5hbWUsaGFzaDp4dC5oYXNoVmFsdWUsc2FsdDp4dC5zYWx0VmFsdWUsc3Bpbjor''@;'; + put 'put ''eHQuc3BpbkNvdW50fHwxZTV9KTticmVhaztjYXNlIjx3b3JrYm9va1ByIjpjYXNlIjx3b3JrYm9va1ByLz4iOkZpLmZvckVhY2goZnVuY3Rpb24oVXQpe2lmKG51bGwhPXh0W1V0WzBdXSlzd2l0Y2goVXRbMl0pe2Nhc2UiYm9vbCI6WC5XQlByb3BzW1V0WzBdXT1EaSh4dFtVdFswXV0pO2Jy''@;'; + put 'put ''ZWFrO2Nhc2UiaW50IjpYLldCUHJvcHNbVXRbMF1dPXBhcnNlSW50KHh0W1V0WzBdXSwxMCk7YnJlYWs7ZGVmYXVsdDpYLldCUHJvcHNbVXRbMF1dPXh0W1V0WzBdXX19KSx4dC5jb2RlTmFtZSYmKFguV0JQcm9wcy5Db2RlTmFtZT1XMCh4dC5jb2RlTmFtZSkpO2JyZWFrO2Nhc2UiPHdvcmti''@;'; + put 'put ''b29rUHJvdGVjdGlvbiI6dmFyIFJ0PVguUHJvdGVjdGlvbnx8e307UnQubG9ja1N0cnVjdHVyZT1EaSh4dC5sb2NrU3RydWN0dXJlfHwiZmFsc2UiKSxSdC5sb2NrV2luZG93cz1EaSh4dC5sb2NrV2luZG93c3x8ImZhbHNlIikseHQud29ya2Jvb2tBbGdvcml0aG1OYW1lJiYoUnQuZW5jcnlw''@;'; + put 'put ''dGlvbj17YWxnbzp4dC53b3JrYm9va0FsZ29yaXRobU5hbWUsaGFzaDp4dC53b3JrYm9va0hhc2hWYWx1ZSxzYWx0Onh0Lndvcmtib29rU2FsdFZhbHVlLHNwaW46K3h0Lndvcmtib29rU3BpbkNvdW50fHwxZTV9KSxYLlByb3RlY3Rpb249UnQ7YnJlYWs7Y2FzZSI8d29ya2Jvb2tWaWV3Ijpj''@;'; + put 'put ''YXNlIjx3b3JrYm9va1ZpZXcvPiI6ZGVsZXRlIHh0WzBdLFguV0JWaWV3LnB1c2goeHQpO2JyZWFrO2Nhc2UiPHNoZWV0Ijpzd2l0Y2goeHQuc3RhdGUpe2Nhc2UiaGlkZGVuIjp4dC5IaWRkZW49MTticmVhaztjYXNlInZlcnlIaWRkZW4iOnh0LkhpZGRlbj0yO2JyZWFrO2RlZmF1bHQ6eHQu''@;'; + put 'put ''SGlkZGVuPTB9ZGVsZXRlIHh0LnN0YXRlLHh0Lm5hbWU9Z3IoVzAoeHQubmFtZSkpLGRlbGV0ZSB4dFswXSxYLlNoZWV0cy5wdXNoKHh0KTticmVhaztjYXNlIjxleHRlcm5hbFJlZmVyZW5jZSI6WC5FeHRlcm4ucHVzaCh4dC5pZCk7YnJlYWs7Y2FzZSI8ZGVmaW5lZE5hbWVzPiI6Y2FzZSI8''@;'; + put 'put ''ZGVmaW5lZE5hbWVzIjpjYXNlIjxleHQiOmNhc2UiPEFsdGVybmF0ZUNvbnRlbnQiOmNhc2UiPEFsdGVybmF0ZUNvbnRlbnQ+Ijp3ZT0hMDticmVhaztjYXNlIjwvZGVmaW5lZE5hbWVzPiI6Y2FzZSI8L2V4dD4iOmNhc2UiPC9BbHRlcm5hdGVDb250ZW50PiI6d2U9ITE7YnJlYWs7Y2FzZSI8''@;'; + put 'put ''ZGVmaW5lZE5hbWUiOihGZT17fSkuTmFtZT1XMCh4dC5uYW1lKSx4dC5jb21tZW50JiYoRmUuQ29tbWVudD14dC5jb21tZW50KSx4dC5sb2NhbFNoZWV0SWQmJihGZS5TaGVldD0reHQubG9jYWxTaGVldElkKSxEaSh4dC5oaWRkZW58fCIwIikmJihGZS5IaWRkZW49ITApLFplPU10K1llLmxl''@;'; + put 'put ''bmd0aDticmVhaztjYXNlIjwvZGVmaW5lZE5hbWU+IjpGZS5SZWY9Z3IoVzAoSC5zbGljZShaZSxNdCkpKSxYLk5hbWVzLnB1c2goRmUpO2JyZWFrO2Nhc2UiPGNhbGNQciI6Y2FzZSI8Y2FsY1ByLz4iOmRlbGV0ZSB4dFswXSxYLkNhbGNQcj14dDticmVhaztkZWZhdWx0OmlmKCF3ZSYmcmUu''@;'; + put 'put ''V1RGKXRocm93IG5ldyBFcnJvcigidW5yZWNvZ25pemVkICIreHRbMF0rIiBpbiB3b3JrYm9vayIpfXJldHVybiBZZX0pLC0xPT09WDAubWFpbi5pbmRleE9mKFgueG1sbnMpKXRocm93IG5ldyBFcnJvcigiVW5rbm93biBOYW1lc3BhY2U6ICIrWC54bWxucyk7cmV0dXJuIHFmKFgpLFh9KEgs''@;'; + put 'put ''WCl9KHNuKEgsaDEod2Uud29ya2Jvb2tzWzBdKSksd2Uud29ya2Jvb2tzWzBdLHJlKSxSdD17fSxVdD0iIjt3ZS5jb3JlcHJvcHMubGVuZ3RoJiYoKFV0PXNuKEgsaDEod2UuY29yZXByb3BzWzBdKSwhMCkpJiYoUnQ9bHMoVXQpKSwwIT09d2UuZXh0cHJvcHMubGVuZ3RoJiYoVXQ9c24oSCxo''@;'; + put 'put ''MSh3ZS5leHRwcm9wc1swXSksITApKSYmZnVuY3Rpb24gT00oSCxyZSxYKXt2YXIgd2U9e307cmV8fChyZT17fSksSD1XMChIKSxvMi5mb3JFYWNoKGZ1bmN0aW9uKHhlKXt2YXIgRmU9KEgubWF0Y2goUWkoeGVbMF0pKXx8W10pWzFdO3N3aXRjaCh4ZVsyXSl7Y2FzZSJzdHJpbmciOkZlJiYo''@;'; + put 'put ''cmVbeGVbMV1dPWdyKEZlKSk7YnJlYWs7Y2FzZSJib29sIjpyZVt4ZVsxXV09InRydWUiPT09RmU7YnJlYWs7Y2FzZSJyYXciOnZhciBaZT1ILm1hdGNoKG5ldyBSZWdFeHAoIjwiK3hlWzBdKyJbXj5dKj4oW1xcc1xcU10qPyk8LyIreGVbMF0rIj4iKSk7WmUmJlplLmxlbmd0aD4wJiYod2Vb''@;'; + put 'put ''eGVbMV1dPVplWzFdKX19KSx3ZS5IZWFkaW5nUGFpcnMmJndlLlRpdGxlc09mUGFydHMmJkFzKHdlLkhlYWRpbmdQYWlycyx3ZS5UaXRsZXNPZlBhcnRzLHJlLFgpfShVdCxSdCxyZSkpO3ZhciBubj17fTsoIXJlLmJvb2tTaGVldHN8fHJlLmJvb2tQcm9wcykmJjAhPT13ZS5jdXN0cHJvcHMu''@;'; + put 'put ''bGVuZ3RoJiYoVXQ9VW4oSCxoMSh3ZS5jdXN0cHJvcHNbMF0pLCEwKSkmJihubj1mdW5jdGlvbiBvYihILHJlKXt2YXIgWD17fSx3ZT0iIix4ZT1ILm1hdGNoKGc5KTtpZih4ZSlmb3IodmFyIEZlPTA7RmUhPXhlLmxlbmd0aDsrK0ZlKXt2YXIgWmU9eGVbRmVdLGplPWVuKFplKTtzd2l0Y2go''@;'; + put 'put ''amVbMF0pe2Nhc2UiPD94bWwiOmNhc2UiPFByb3BlcnRpZXMiOmJyZWFrO2Nhc2UiPHByb3BlcnR5Ijp3ZT1ncihqZS5uYW1lKTticmVhaztjYXNlIjwvcHJvcGVydHk+Ijp3ZT1udWxsO2JyZWFrO2RlZmF1bHQ6aWYoMD09PVplLmluZGV4T2YoIjx2dDoiKSl7dmFyIFllPVplLnNwbGl0KCI+''@;'; + put 'put ''IiksTXQ9WWVbMF0uc2xpY2UoNCkseHQ9WWVbMV07c3dpdGNoKE10KXtjYXNlImxwc3RyIjpjYXNlImJzdHIiOmNhc2UibHB3c3RyIjpjYXNlImN5IjpjYXNlImVycm9yIjpYW3dlXT1ncih4dCk7YnJlYWs7Y2FzZSJib29sIjpYW3dlXT1EaSh4dCk7YnJlYWs7Y2FzZSJpMSI6Y2FzZSJpMiI6''@;'; + put 'put ''Y2FzZSJpNCI6Y2FzZSJpOCI6Y2FzZSJpbnQiOmNhc2UidWludCI6WFt3ZV09cGFyc2VJbnQoeHQsMTApO2JyZWFrO2Nhc2UicjQiOmNhc2UicjgiOmNhc2UiZGVjaW1hbCI6WFt3ZV09cGFyc2VGbG9hdCh4dCk7YnJlYWs7Y2FzZSJmaWxldGltZSI6Y2FzZSJkYXRlIjpYW3dlXT1kbih4dCk7''@;'; + put 'put ''YnJlYWs7ZGVmYXVsdDppZigiLyI9PU10LnNsaWNlKC0xKSlicmVhaztyZS5XVEYmJiJ1bmRlZmluZWQiIT10eXBlb2YgY29uc29sZSYmY29uc29sZS53YXJuKCJVbmV4cGVjdGVkIixaZSxNdCxZZSl9fWVsc2UgaWYoIjwvIiE9PVplLnNsaWNlKDAsMikmJnJlLldURil0aHJvdyBuZXcgRXJy''@;'; + put 'put ''b3IoWmUpfX1yZXR1cm4gWH0oVXQscmUpKTt2YXIgQ249e307aWYoKHJlLmJvb2tTaGVldHN8fHJlLmJvb2tQcm9wcykmJih4dC5TaGVldHM/RmU9eHQuU2hlZXRzLm1hcChmdW5jdGlvbihOcil7cmV0dXJuIE5yLm5hbWV9KTpSdC5Xb3Jrc2hlZXRzJiZSdC5TaGVldE5hbWVzLmxlbmd0aD4w''@;'; + put 'put ''JiYoRmU9UnQuU2hlZXROYW1lcykscmUuYm9va1Byb3BzJiYoQ24uUHJvcHM9UnQsQ24uQ3VzdHByb3BzPW5uKSxyZS5ib29rU2hlZXRzJiZ2b2lkIDAhPT1GZSYmKENuLlNoZWV0TmFtZXM9RmUpLHJlLmJvb2tTaGVldHM/Q24uU2hlZXROYW1lczpyZS5ib29rUHJvcHMpKXJldHVybiBDbjtG''@;'; + put 'put ''ZT17fTt2YXIgRHQ9e307cmUuYm9va0RlcHMmJndlLmNhbGNjaGFpbiYmKER0PWZ1bmN0aW9uIFV4KEgscmUsWCl7cmV0dXJuIi5iaW4iPT09cmUuc2xpY2UoLTQpP2Z1bmN0aW9uIEZiKEgscmUsWCl7dmFyIHdlPVtdO3JldHVybiBIMShILGZ1bmN0aW9uKFplLGplLFllKXtpZig2Mz09PVll''@;'; + put 'put ''KXdlLnB1c2goWmUpO2Vsc2UgaWYoISgoamV8fCIiKS5pbmRleE9mKCJCZWdpbiIpPjB8fChqZXx8IiIpLmluZGV4T2YoIkVuZCIpPjApKXRocm93IG5ldyBFcnJvcigiVW5leHBlY3RlZCByZWNvcmQgIitZZSsiICIramUpfSksd2V9KEgpOmZ1bmN0aW9uIElFKEgpe3ZhciByZT1bXTtpZigh''@;'; + put 'put ''SClyZXR1cm4gcmU7dmFyIFg9MTtyZXR1cm4oSC5tYXRjaChHdCl8fFtdKS5mb3JFYWNoKGZ1bmN0aW9uKHdlKXt2YXIgeGU9ZW4od2UpO3N3aXRjaCh4ZVswXSl7Y2FzZSI8P3htbCI6Y2FzZSI8Y2FsY0NoYWluIjpjYXNlIjxjYWxjQ2hhaW4+IjpjYXNlIjwvY2FsY0NoYWluPiI6YnJlYWs7''@;'; + put 'put ''Y2FzZSI8YyI6ZGVsZXRlIHhlWzBdLHhlLmk/WD14ZS5pOnhlLmk9WCxyZS5wdXNoKHhlKX19KSxyZX0oSCl9KHNuKEgsaDEod2UuY2FsY2NoYWluKSksd2UuY2FsY2NoYWluKSk7dmFyIFRuLE9uLHp0PTAsUG49e30sWW49eHQuU2hlZXRzO1J0LldvcmtzaGVldHM9WW4ubGVuZ3RoLFJ0LlNo''@;'; + put 'put ''ZWV0TmFtZXM9W107Zm9yKHZhciBNcj0wO01yIT1Zbi5sZW5ndGg7KytNcilSdC5TaGVldE5hbWVzW01yXT1ZbltNcl0ubmFtZTt2YXIgYWk9eGU/ImJpbiI6InhtbCIseXI9d2Uud29ya2Jvb2tzWzBdLmxhc3RJbmRleE9mKCIvIiksYXI9KHdlLndvcmtib29rc1swXS5zbGljZSgwLHlyKzEp''@;'; + put 'put ''KyJfcmVscy8iK3dlLndvcmtib29rc1swXS5zbGljZSh5cisxKSsiLnJlbHMiKS5yZXBsYWNlKC9eXC8vLCIiKTtLbihILGFyKXx8KGFyPSJ4bC9fcmVscy93b3JrYm9vay4iK2FpKyIucmVscyIpO3ZhciBHcj1QdChVbihILGFyLCEwKSxhciksenI9R3IscXI9W107R3ImJih4dCYmeHQuRXh0''@;'; + put 'put ''ZXJuJiZ4dC5FeHRlcm4ubGVuZ3RoJiZ4dC5FeHRlcm4uZm9yRWFjaChmdW5jdGlvbihoaSxOcil7dmFyIE4wPSgiL3hsLyIrR3JbIiFpZCJdW2hpXS5UYXJnZXQpLnJlcGxhY2UoL1tcL11bXC9dL2csIi8iKSx0MD13ZS5saW5rcy5pbmRleE9mKE4wKTt0MD4tMSYmKHFyW05yXT1NdFt0MF0p''@;'; + put 'put ''fSkseHQmJmRlbGV0ZSB4dC5FeHRlcm4pLEdyJiYoR3I9ZnVuY3Rpb24gTnMoSCxyZSl7aWYoIUgpcmV0dXJuIDA7dHJ5e0g9cmUubWFwKGZ1bmN0aW9uKHdlKXtyZXR1cm4gd2UuaWR8fCh3ZS5pZD13ZS5zdHJSZWxJRCksW3dlLm5hbWUsSFsiIWlkIl1bd2UuaWRdLlRhcmdldCxTcyhIWyIh''@;'; + put 'put ''aWQiXVt3ZS5pZF0uVHlwZSldfSl9Y2F0Y2goWCl7cmV0dXJuIG51bGx9cmV0dXJuIEgmJjAhPT1ILmxlbmd0aD9IOm51bGx9KEdyLHh0LlNoZWV0cykpO3ZhciBvaT1LbihILCJ4bC93b3Jrc2hlZXRzL3NoZWV0LnhtbCIpPzE6MCxjcj1bXSxkaT1bXTtlOmZvcih6dD0wO3p0IT1SdC5Xb3Jr''@;'; + put 'put ''c2hlZXRzOysrenQpe3ZhciB2MD0ic2hlZXQiO2lmKEdyJiZHclt6dF0/KFRuPSJ4bC8iK0dyW3p0XVsxXS5yZXBsYWNlKC9bXC9dP3hsXC8vLCIiKSxLbihILFRuKXx8KFRuPUdyW3p0XVsxXSksS24oSCxUbil8fChUbj1hci5yZXBsYWNlKC9fcmVsc1wvLiokLywiIikrR3JbenRdWzFdKSx2''@;'; + put 'put ''MD1Hclt6dF1bMl0pOlRuPShUbj0ieGwvd29ya3NoZWV0cy9zaGVldCIrKHp0KzEtb2kpKyIuIithaSkucmVwbGFjZSgvc2hlZXQwXC4vLCJzaGVldC4iKSxPbj1Ubi5yZXBsYWNlKC9eKC4qKShcLykoW15cL10qKSQvLCIkMS9fcmVscy8kMy5yZWxzIiksY3IucHVzaChUbikscmUmJm51bGwh''@;'; + put 'put ''PXJlLnNoZWV0cylzd2l0Y2godHlwZW9mIHJlLnNoZWV0cyl7Y2FzZSJudW1iZXIiOmlmKHp0IT1yZS5zaGVldHMpY29udGludWUgZTticmVhaztjYXNlInN0cmluZyI6aWYoUnQuU2hlZXROYW1lc1t6dF0udG9Mb3dlckNhc2UoKSE9cmUuc2hlZXRzLnRvTG93ZXJDYXNlKCkpY29udGludWUg''@;'; + put 'put ''ZTticmVhaztkZWZhdWx0OmlmKEFycmF5LmlzQXJyYXkmJkFycmF5LmlzQXJyYXkocmUuc2hlZXRzKSl7Zm9yKHZhciBVaT0wLHRvPTA7dG8hPXJlLnNoZWV0cy5sZW5ndGg7Kyt0bykibnVtYmVyIj09dHlwZW9mIHJlLnNoZWV0c1t0b10mJnJlLnNoZWV0c1t0b109PXp0JiYoVWk9MSksInN0''@;'; + put 'put ''cmluZyI9PXR5cGVvZiByZS5zaGVldHNbdG9dJiZyZS5zaGVldHNbdG9dLnRvTG93ZXJDYXNlKCk9PVJ0LlNoZWV0TmFtZXNbenRdLnRvTG93ZXJDYXNlKCkmJihVaT0xKTtpZighVWkpY29udGludWUgZX19aWYoIXJlLnNraXBQYXJzZSl7dmFyIEEwPVg0KEgsVG4sT24sUnQuU2hlZXROYW1l''@;'; + put 'put ''c1t6dF0senQsUG4sRmUsdjAscmUseHQsamUsWWUpO0EwJiZBMFsiIUxEUCJdJiYoZGlbenRdPUEwWyIhTERQIl0sZGVsZXRlIEEwWyIhTERQIl0pfX1pZigidW5kZWZpbmVkIiE9dHlwZW9mIHBhcnNlX3NoZWV0X3Bpdm90KWZvcih6dD0wO3p0PEQ1Lmxlbmd0aDsrK3p0KXBhcnNlX3NoZWV0''@;'; + put 'put ''X3Bpdm90LmFwcGx5KG51bGwsRDVbenRdKTtpZihDbj17RGlyZWN0b3J5OndlLFdvcmtib29rOnh0LFByb3BzOlJ0LEN1c3Rwcm9wczpubixEZXBzOkR0LFNoZWV0czpGZSxTaGVldE5hbWVzOlJ0LlNoZWV0TmFtZXMsU3RyaW5nczpSZCxTdHlsZXM6WWUsVGhlbWVzOmplLFNTRjpGLmdldF90''@;'; + put 'put ''YWJsZSgpfSwhcmUuc2tpcFBhcnNlKXtpZihmdW5jdGlvbiBCYihIKXshSHx8IUguV29ya2Jvb2t8fCFILldvcmtib29rLk5hbWVzfHxILldvcmtib29rLk5hbWVzLmZvckVhY2goZnVuY3Rpb24ocmUpe2lmKHJlLk5hbWUmJiJfeGxubS4iPT1yZS5OYW1lLnNsaWNlKDAsNikmJigiX3hsbm0u''@;'; + put 'put ''UHJpbnRfQXJlYSI9PXJlLk5hbWV8fCJfeGxubS5QcmludF9UaXRsZXMiPT1yZS5OYW1lKSl7dmFyIFg9SC5TaGVldHNbSC5TaGVldE5hbWVzW3JlLlNoZWV0XV07aWYoWCl7WFsiIXByaW50Il18fChYWyIhcHJpbnQiXT17fSksWFsiIXByaW50Il0ucHJvcHN8fChYWyIhcHJpbnQiXS5wcm9w''@;'; + put 'put ''cz17fSk7dmFyIHdlPVhbIiFwcmludCJdLHhlPXJlLlJlZjtpZigiX3hsbm0uUHJpbnRfQXJlYSI9PXJlLk5hbWUpe3hlLmluZGV4T2YoIiEiKT4tMSYmKHhlPXhlLnNsaWNlKHhlLmluZGV4T2YoIiEiKSsxKSk7dmFyIEZlPUZvKHhlPXhlLnJlcGxhY2UoL1skXS9nLCIiKSk7d2UuYXJlYT1G''@;'; + put 'put ''ZX1lbHNlIl94bG5tLlByaW50X1RpdGxlcyI9PXJlLk5hbWUmJih3ZS50aXRsZXM9e3M6e3I6LTEsYzotMX0sZTp7cjotMSxjOi0xfX0seGUuc3BsaXQoIiwiKS5mb3JFYWNoKGZ1bmN0aW9uKFplKXt2YXIgWWU9dnMoWmUuc2xpY2UoWmUuaW5kZXhPZigiISIpKzEpLnJlcGxhY2UoL1skXS9n''@;'; + put 'put ''LCIiKSk7WWUucy5jPi0xJiYod2UudGl0bGVzLnMuYz1ZZS5zLmMpLFllLmUuYz4tMSYmKHdlLnRpdGxlcy5lLmM9WWUuZS5jKSxZZS5zLnI+LTEmJih3ZS50aXRsZXMucy5yPVllLnMuciksWWUuZS5yPi0xJiYod2UudGl0bGVzLmUucj1ZZS5lLnIpfSkpfX19KX0oQ24pLHJlJiZyZS5ib29r''@;'; + put 'put ''RmlsZXMmJihDbi5rZXlzPVgsQ24uZmlsZXM9SC5maWxlcykscmUmJnJlLmJvb2tWQkEmJih3ZS52YmEubGVuZ3RoPjA/Q24udmJhcmF3PXNuKEgsaDEod2UudmJhWzBdKSwhMCk6d2UuZGVmYXVsdHMmJiJhcHBsaWNhdGlvbi92bmQubXMtb2ZmaWNlLnZiYVByb2plY3QiPT09d2UuZGVmYXVs''@;'; + put 'put ''dHMuYmluJiYoQ24udmJhcmF3PXNuKEgsInhsL3ZiYVByb2plY3QuYmluIiwhMCkpKSx6ciYmenJbIiFpZCJdKXtmb3IodmFyIHdpPVtdLFlyPTE7WXI8PTEwMjQ7KytZcikhenJbIiFpZCJdWyJySWQiK1lyXXx8IXpyWyIhaWQiXVsicklkIitZcl0uVHlwZXx8L2N1c3RvbVhtbCQvLnRlc3Qo''@;'; + put 'put ''enJbIiFpZCJdWyJySWQiK1lyXS5UeXBlKSYmd2kucHVzaCh1bih6clsiIWlkIl1bInJJZCIrWXJdLlRhcmdldCx3ZS53b3JrYm9va3NbMF0pKTt3aS5sZW5ndGg+MCYmKENuLkN1c3RvbVhNTD1bXSx3aS5mb3JFYWNoKGZ1bmN0aW9uKGhpKXt2YXIgTnI9e2RhdGE6VW4oSCxoMShoaSkpfSxr''@;'; + put 'put ''aT1JdChoaSk7dHJ5e3ZhciBOMD1QdChVbihILGgxKGtpKSwhMCksa2kpO2lmKE4wKWZvcih2YXIgdDA9MTt0MDw9MTAyNDsrK3QwKSFOMFsiIWlkIl1bInJJZCIrdDBdfHwhTjBbIiFpZCJdWyJySWQiK3QwXS5UeXBlfHwvY3VzdG9tWG1sUHJvcHMkLy50ZXN0KE4wWyIhaWQiXVsicklkIit0''@;'; + put 'put ''MF0uVHlwZSkmJihOci5wcm9wcz1VbihILGgxKHVuKE4wWyIhaWQiXVsicklkIit0MF0uVGFyZ2V0LGhpKSkpKX1jYXRjaChpbyl7fUNuLkN1c3RvbVhNTC5wdXNoKE5yKX0pKX12YXIgRWk9d24oSCwieGwvbW9kZWwvaXRlbS5kYXRhIiwhMCk7RWkmJihDbi5tb2RlbD1FaSksd2UuY29ubiYm''@;'; + put 'put ''KENuLmNvbm49c24oSCxoMSh3ZS5jb25uKSwhMCkpLHFyLmxlbmd0aCYmKENuLkV4dGVybmFsV0I9cXIpLHh0JiYoeHQuUFBJPVI0KX1yZXR1cm4gcmUudGVtcGxhdGUmJihDbi5fd3NwYXRocz1jcixDbi5fc3R5cGF0aD1oMSh3ZS5zdHlsZXx8IiIpLENuLl93YnBhdGg9aDEod2Uud29ya2Jv''@;'; + put 'put ''b2tzWzBdfHwieGwvd29ya2Jvb2sueG1sIiksQ24uX3ZtbHBhdGhzPWRpLENuLl93YnJlbHNwYXRoPWFyLENuLl9jdD1VbihILCJbQ29udGVudF9UeXBlc10ueG1sIiksQ24uZmlsZXM9SC5maWxlcyksQ259ZnVuY3Rpb24gJG0oSCxyZSl7dmFyIFg9cmV8fHt9O1gucGFzc3dvcmR8fChYLnBh''@;'; + put 'put ''c3N3b3JkPSJWZWx2ZXRTd2VhdHNob3AiKTt2YXIgd2U9Ildvcmtib29rIix4ZT1tdC5maW5kKEgsd2UpO3RyeXtpZighKHhlPW10LmZpbmQoSCx3ZT0iLyFEYXRhU3BhY2VzL1ZlcnNpb24iKSl8fCF4ZS5jb250ZW50KXRocm93IG5ldyBFcnJvcigiRUNNQS0zNzYgRW5jcnlwdGVkIGZpbGUg''@;'; + put 'put ''bWlzc2luZyAiK3dlKTtpZihmdW5jdGlvbiByRShIKXt2YXIgcmU9e307cmUuaWQ9SC5yZWFkX3NoaWZ0KDAsImxwcDQiKSxyZS5SPXZmKEgsNCkscmUuVT12ZihILDQpLHJlLlc9dmYoSCw0KX0oeGUuY29udGVudCksISh4ZT1tdC5maW5kKEgsd2U9Ii8hRGF0YVNwYWNlcy9EYXRhU3BhY2VN''@;'; + put 'put ''YXAiKSl8fCF4ZS5jb250ZW50KXRocm93IG5ldyBFcnJvcigiRUNNQS0zNzYgRW5jcnlwdGVkIGZpbGUgbWlzc2luZyAiK3dlKTt2YXIgRmU9ZnVuY3Rpb24gcG0oSCl7dmFyIHJlPVtdO0gubCs9NDtmb3IodmFyIFg9SC5yZWFkX3NoaWZ0KDQpO1gtLSA+MDspcmUucHVzaCh3MyhIKSk7cmV0''@;'; + put 'put ''dXJuIHJlfSh4ZS5jb250ZW50KTtpZigxIT09RmUubGVuZ3RofHwxIT09RmVbMF0uY29tcHMubGVuZ3RofHwwIT09RmVbMF0uY29tcHNbMF0udHx8IlN0cm9uZ0VuY3J5cHRpb25EYXRhU3BhY2UiIT09RmVbMF0ubmFtZXx8IkVuY3J5cHRlZFBhY2thZ2UiIT09RmVbMF0uY29tcHNbMF0udil0''@;'; + put 'put ''aHJvdyBuZXcgRXJyb3IoIkVDTUEtMzc2IEVuY3J5cHRlZCBmaWxlIGJhZCAiK3dlKTtpZighKHhlPW10LmZpbmQoSCx3ZT0iLyFEYXRhU3BhY2VzL0RhdGFTcGFjZUluZm8vU3Ryb25nRW5jcnlwdGlvbkRhdGFTcGFjZSIpKXx8IXhlLmNvbnRlbnQpdGhyb3cgbmV3IEVycm9yKCJFQ01BLTM3''@;'; + put 'put ''NiBFbmNyeXB0ZWQgZmlsZSBtaXNzaW5nICIrd2UpO3ZhciBaZT1mdW5jdGlvbiBpRShIKXt2YXIgcmU9W107SC5sKz00O2Zvcih2YXIgWD1ILnJlYWRfc2hpZnQoNCk7WC0tID4wOylyZS5wdXNoKEgucmVhZF9zaGlmdCgwLCJscHA0IikpO3JldHVybiByZX0oeGUuY29udGVudCk7aWYoMSE9''@;'; + put 'put ''WmUubGVuZ3RofHwiU3Ryb25nRW5jcnlwdGlvblRyYW5zZm9ybSIhPVplWzBdKXRocm93IG5ldyBFcnJvcigiRUNNQS0zNzYgRW5jcnlwdGVkIGZpbGUgYmFkICIrd2UpO2lmKCEoeGU9bXQuZmluZChILHdlPSIvIURhdGFTcGFjZXMvVHJhbnNmb3JtSW5mby9TdHJvbmdFbmNyeXB0aW9uVHJh''@;'; + put 'put ''bnNmb3JtLyFQcmltYXJ5IikpfHwheGUuY29udGVudCl0aHJvdyBuZXcgRXJyb3IoIkVDTUEtMzc2IEVuY3J5cHRlZCBmaWxlIG1pc3NpbmcgIit3ZSk7IWZ1bmN0aW9uIGFFKEgpe3ZhciByZT1mdW5jdGlvbiBvRShIKXt2YXIgcmU9e307cmV0dXJuIEgucmVhZF9zaGlmdCg0KSxILmwrPTQs''@;'; + put 'put ''cmUuaWQ9SC5yZWFkX3NoaWZ0KDAsImxwcDQiKSxyZS5uYW1lPUgucmVhZF9zaGlmdCgwLCJscHA0IikscmUuUj12ZihILDQpLHJlLlU9dmYoSCw0KSxyZS5XPXZmKEgsNCkscmV9KEgpO2lmKHJlLmVuYW1lPUgucmVhZF9zaGlmdCgwLCI4bHBwNCIpLHJlLmJsa3N6PUgucmVhZF9zaGlmdCg0''@;'; + put 'put ''KSxyZS5jbW9kZT1ILnJlYWRfc2hpZnQoNCksNCE9SC5yZWFkX3NoaWZ0KDQpKXRocm93IG5ldyBFcnJvcigiQmFkICFQcmltYXJ5IHJlY29yZCIpO3JldHVybiByZX0oeGUuY29udGVudCl9Y2F0Y2goWWUpe31pZighKHhlPW10LmZpbmQoSCx3ZT0iL0VuY3J5cHRpb25JbmZvIikpfHwheGUu''@;'; + put 'put ''Y29udGVudCl0aHJvdyBuZXcgRXJyb3IoIkVDTUEtMzc2IEVuY3J5cHRlZCBmaWxlIG1pc3NpbmcgIit3ZSk7dmFyIGplPWZ1bmN0aW9uIEt6KEgpe3ZhciByZT12ZihIKTtzd2l0Y2gocmUuTWlub3Ipe2Nhc2UgMjpyZXR1cm5bcmUuTWlub3IseWIoSCldO2Nhc2UgMzpyZXR1cm5bcmUuTWlu''@;'; + put 'put ''b3Isd2IoKV07Y2FzZSA0OnJldHVybltyZS5NaW5vcixiYihIKV19dGhyb3cgbmV3IEVycm9yKCJFQ01BLTM3NiBFbmNyeXB0ZWQgZmlsZSB1bnJlY29nbml6ZWQgVmVyc2lvbjogIityZS5NaW5vcil9KHhlLmNvbnRlbnQpO2lmKCEoeGU9bXQuZmluZChILHdlPSIvRW5jcnlwdGVkUGFja2Fn''@;'; + put 'put ''ZSIpKXx8IXhlLmNvbnRlbnQpdGhyb3cgbmV3IEVycm9yKCJFQ01BLTM3NiBFbmNyeXB0ZWQgZmlsZSBtaXNzaW5nICIrd2UpO2lmKDQ9PWplWzBdJiZ2b2lkIDAhPT1IbylyZXR1cm4gSG8oamVbMV0seGUuY29udGVudCxYLnBhc3N3b3JkfHwiIixYKTtpZigyPT1qZVswXSYmdm9pZCAwIT09''@;'; + put 'put ''a2MpcmV0dXJuIGtjKGplWzFdLHhlLmNvbnRlbnQsWC5wYXNzd29yZHx8IiIsWCk7dGhyb3cgbmV3IEVycm9yKCJGaWxlIGlzIHBhc3N3b3JkLXByb3RlY3RlZCIpfWZ1bmN0aW9uIFpkKEgscmUpe2lmKCFyZS50ZW1wbGF0ZSl7aWYoIm9kcyI9PXJlLmJvb2tUeXBlKXJldHVybiB4QShILHJl''@;'; + put 'put ''KTtDMyhyZSYmcmUuUFBJfHw5NiksSCYmIUguU1NGJiYoSC5TU0Y9Ri5nZXRfdGFibGUoKSksSCYmSC5TU0YmJih5ZShGKSxGLmxvYWRfdGFibGUoSC5TU0YpLHJlLnJldnNzZj1ldChILlNTRikscmUucmV2c3NmW0guU1NGWzY1NTM1XV09MCxyZS5zc2Y9SC5TU0YpLEguU3R5bGVzPXtGb250''@;'; + put 'put ''czpyZS5Gb250cz1be3N6OjEyLGNvbG9yOnt0aGVtZToxLHJnYjoiMDAwMDAwIn0sbmFtZToiQ2FsaWJyaSIsZmFtaWx5OjIsc2NoZW1lOiJtaW5vciJ9XSxGaWxsczpyZS5GaWxscz1be3BhdHRlcm5UeXBlOiJub25lIn0se3BhdHRlcm5UeXBlOiJncmF5MTI1In1dLEJvcmRlcnM6cmUuQm9y''@;'; + put 'put ''ZGVycz1be31dLERYRjpyZS5EWEY9SC5TdHlsZXMmJkguU3R5bGVzLkRYRnx8W10sVGFibGU6cmUuVGFibGU9SC5TdHlsZXMmJkguU3R5bGVzLlRhYmxlfHxbXX0scmUub3ZlcnJpZGVNRFc/SzI9cmUub3ZlcnJpZGVNRFc6UzMocmUuRm9udHNbMF0pLHJlLnJlbHM9e30scmUud2JyZWxzPXt9''@;'; + put 'put ''LHJlLlN0cmluZ3M9W10scmUuU3RyaW5ncy5Db3VudD0wLHJlLlN0cmluZ3MuVW5pcXVlPTAsZjU/cmUucmV2U3RyaW5ncz1uZXcgTWFwOihyZS5yZXZTdHJpbmdzPXt9LHJlLnJldlN0cmluZ3MuZm9vPVtdLGRlbGV0ZSByZS5yZXZTdHJpbmdzLmZvbyk7dmFyIFg9Inhsc2IiPT1yZS5ib29r''@;'; + put 'put ''VHlwZT8iYmluIjoieG1sIix3ZT1nQi5pbmRleE9mKHJlLmJvb2tUeXBlKT4tMSx4ZT17d29ya2Jvb2tzOltdLHNoZWV0czpbXSxjaGFydHM6W10sZGlhbG9nczpbXSxtYWNyb3M6W10scmVsczpbXSxzdHJzOltdLGNvbW1lbnRzOltdLGxpbmtzOltdLGNvcmVwcm9wczpbXSxleHRwcm9wczpb''@;'; + put 'put ''XSxjdXN0cHJvcHM6W10sdGhlbWVzOltdLHN0eWxlczpbXSxjYWxjY2hhaW5zOltdLHZiYTpbXSxkcmF3aW5nczpbXSxwaXZvdHM6W10scGl2b3RjYWNoZXM6W10scGl2b3RyZWNvcmRzOltdLGRhdGFtb2RlbHM6W10sY2hhcnRvYmpzOltdLGNoYXJ0c3R5bGVzOltdLGNoYXJ0Y29sb3JzOltd''@;'; + put 'put ''LGNoYXJ0ZXhzOltdLHRhYmxlczpbXSxjb25uczpbXSxjdHJscHJvcHM6W10sY3VzdG9teG1scHJvcHM6W10sVE9ETzpbXSx4bWxuczoiIn07SDMocmU9cmV8fHt9KTt2YXIgRmU9a3IoKSxaZT0iIixqZT0wO2lmKHJlLmNlbGxYZnM9W10scmUuY2VsbFN0eWxlWGZzPVt7bmFtZToiTm9ybWFs''@;'; + put 'put ''In1dLFkxKHJlLmNlbGxYZnMscmUuY2VsbFN0eWxlWGZzLHt9LHtyZXZzc2Y6e0dlbmVyYWw6MH19KSxILlByb3BzfHwoSC5Qcm9wcz17fSksem4oRmUsWmU9ImRvY1Byb3BzL2NvcmUueG1sIixmdW5jdGlvbiBpMihILHJlKXt2YXIgWD1yZXx8e30sd2U9W2NuLE1uXSx4ZT17fTtpZighSCYm''@;'; + put 'put ''IVguUHJvcHMpcmV0dXJuIHdlLmpvaW4oIiIpO0gmJihudWxsIT1ILkNyZWF0ZWREYXRlJiZ4bigiZGN0ZXJtczpjcmVhdGVkIiwic3RyaW5nIj09dHlwZW9mIEguQ3JlYXRlZERhdGU/SC5DcmVhdGVkRGF0ZTpVMChILkNyZWF0ZWREYXRlLFguV1RGKSx7InhzaTp0eXBlIjoiZGN0ZXJtczpX''@;'; + put 'put ''M0NEVEYifSx3ZSx4ZSksbnVsbCE9SC5Nb2RpZmllZERhdGUmJnhuKCJkY3Rlcm1zOm1vZGlmaWVkIiwic3RyaW5nIj09dHlwZW9mIEguTW9kaWZpZWREYXRlP0guTW9kaWZpZWREYXRlOlUwKEguTW9kaWZpZWREYXRlLFguV1RGKSx7InhzaTp0eXBlIjoiZGN0ZXJtczpXM0NEVEYifSx3ZSx4''@;'; + put 'put ''ZSkpO2Zvcih2YXIgRmU9MDtGZSE9bGUubGVuZ3RoOysrRmUpe3ZhciBaZT1sZVtGZV0samU9WC5Qcm9wcyYmbnVsbCE9WC5Qcm9wc1taZVsxXV0/WC5Qcm9wc1taZVsxXV06SD9IW1plWzFdXTpudWxsOyEwPT09amU/amU9IjEiOiExPT09amU/amU9IjAiOiJudW1iZXIiPT10eXBlb2YgamUm''@;'; + put 'put ''JihqZT1TdHJpbmcoamUpKSxudWxsIT1qZSYmeG4oWmVbMF0samUsbnVsbCx3ZSx4ZSl9cmV0dXJuIHdlLmxlbmd0aD4yJiYod2Vbd2UubGVuZ3RoXT0iPC9jcDpjb3JlUHJvcGVydGllcz4iLHdlWzFdPXdlWzFdLnJlcGxhY2UoIi8+IiwiPiIpKSx3ZS5qb2luKCIiKX0oSC5Qcm9wcyxyZSkp''@;'; + put 'put ''LHhlLmNvcmVwcm9wcy5wdXNoKFplKSxYdChyZS5yZWxzLDIsWmUscHQuQ09SRV9QUk9QUyksWmU9ImRvY1Byb3BzL2FwcC54bWwiLCFILlByb3BzfHwhSC5Qcm9wcy5TaGVldE5hbWVzKWlmKEguV29ya2Jvb2smJkguV29ya2Jvb2suU2hlZXRzKXtmb3IodmFyIFllPVtdLE10PTA7TXQ8SC5T''@;'; + put 'put ''aGVldE5hbWVzLmxlbmd0aDsrK010KTIhPShILldvcmtib29rLlNoZWV0c1tNdF18fHt9KS5IaWRkZW4mJlllLnB1c2goSC5TaGVldE5hbWVzW010XSk7SC5Qcm9wcy5TaGVldE5hbWVzPVllfWVsc2UgSC5Qcm9wcy5TaGVldE5hbWVzPUguU2hlZXROYW1lcztILlByb3BzLldvcmtzaGVldHM9''@;'; + put 'put ''SC5Qcm9wcy5TaGVldE5hbWVzLmxlbmd0aCx6bihGZSxaZSxmdW5jdGlvbiBwOShIKXt2YXIgcmU9W10sWD1faTtyZXR1cm4gSHx8KEg9e30pLEguQXBwbGljYXRpb249IlNoZWV0SlMiLHJlW3JlLmxlbmd0aF09Y24scmVbcmUubGVuZ3RoXT1STSxvMi5mb3JFYWNoKGZ1bmN0aW9uKHdlKXtp''@;'; + put 'put ''Zih2b2lkIDAhPT1IW3dlWzFdXSl7dmFyIHhlO3N3aXRjaCh3ZVsyXSl7Y2FzZSJzdHJpbmciOnhlPVJyKFN0cmluZyhIW3dlWzFdXSkpO2JyZWFrO2Nhc2UiYm9vbCI6eGU9SFt3ZVsxXV0/InRydWUiOiJmYWxzZSJ9dm9pZCAwIT09eGUmJihyZVtyZS5sZW5ndGhdPVgod2VbMF0seGUpKX19''@;'; + put 'put ''KSxyZVtyZS5sZW5ndGhdPVgoIkhlYWRpbmdQYWlycyIsWCgidnQ6dmVjdG9yIixYKCJ2dDp2YXJpYW50IiwiPHZ0Omxwc3RyPldvcmtzaGVldHM8L3Z0Omxwc3RyPiIpK1goInZ0OnZhcmlhbnQiLFgoInZ0Omk0IixTdHJpbmcoSC5Xb3Jrc2hlZXRzKSkpLHtzaXplOjIsYmFzZVR5cGU6InZh''@;'; + put 'put ''cmlhbnQifSkpLHJlW3JlLmxlbmd0aF09WCgiVGl0bGVzT2ZQYXJ0cyIsWCgidnQ6dmVjdG9yIixILlNoZWV0TmFtZXMubWFwKGZ1bmN0aW9uKHdlKXtyZXR1cm4iPHZ0Omxwc3RyPiIrUnIod2UpKyI8L3Z0Omxwc3RyPiJ9KS5qb2luKCIiKSx7c2l6ZTpILldvcmtzaGVldHMsYmFzZVR5cGU6''@;'; + put 'put ''Imxwc3RyIn0pKSxyZS5sZW5ndGg+MiYmKHJlW3JlLmxlbmd0aF09IjwvUHJvcGVydGllcz4iLHJlWzFdPXJlWzFdLnJlcGxhY2UoIi8+IiwiPiIpKSxyZS5qb2luKCIiKX0oSC5Qcm9wcykpLHhlLmV4dHByb3BzLnB1c2goWmUpLFh0KHJlLnJlbHMsMyxaZSxwdC5FWFRfUFJPUFMpLEguQ3Vz''@;'; + put 'put ''dHByb3BzIT09SC5Qcm9wcyYmb24oSC5DdXN0cHJvcHN8fHt9KS5sZW5ndGg+MCYmKHpuKEZlLFplPSJkb2NQcm9wcy9jdXN0b20ueG1sIixmdW5jdGlvbiBjZihIKXt2YXIgcmU9W2NuLERuXTtpZighSClyZXR1cm4gcmUuam9pbigiIik7dmFyIFg9MTtyZXR1cm4gb24oSCkuZm9yRWFjaChm''@;'; + put 'put ''dW5jdGlvbih4ZSl7KytYLHJlW3JlLmxlbmd0aF09X2koInByb3BlcnR5IixmdW5jdGlvbiBScyhILHJlKXtzd2l0Y2godHlwZW9mIEgpe2Nhc2Uic3RyaW5nIjp2YXIgWD1faSgidnQ6bHB3c3RyIixScihIKSk7cmV0dXJuIHJlJiYoWD1YLnJlcGxhY2UoLyZxdW90Oy9nLCJfeDAwMjJfIikp''@;'; + put 'put ''LFg7Y2FzZSJudW1iZXIiOnJldHVybiBfaSgoMHxIKT09SD8idnQ6aTQiOiJ2dDpyOCIsUnIoU3RyaW5nKEgpKSk7Y2FzZSJib29sZWFuIjpyZXR1cm4gX2koInZ0OmJvb2wiLEg/InRydWUiOiJmYWxzZSIpfWlmKEggaW5zdGFuY2VvZiBEYXRlKXJldHVybiBfaSgidnQ6ZmlsZXRpbWUiLFUw''@;'; + put 'put ''KEgpKTt0aHJvdyBuZXcgRXJyb3IoIlVuYWJsZSB0byBzZXJpYWxpemUgIitIKX0oSFt4ZV0sITApLHtmbXRpZDoie0Q1Q0RENTA1LTJFOUMtMTAxQi05Mzk3LTA4MDAyQjJDRjlBRX0iLHBpZDpYLG5hbWU6UnIoeGUpfSl9KSxyZS5sZW5ndGg+MiYmKHJlW3JlLmxlbmd0aF09IjwvUHJvcGVy''@;'; + put 'put ''dGllcz4iLHJlWzFdPXJlWzFdLnJlcGxhY2UoIi8+IiwiPiIpKSxyZS5qb2luKCIiKX0oSC5DdXN0cHJvcHMpKSx4ZS5jdXN0cHJvcHMucHVzaChaZSksWHQocmUucmVscyw0LFplLHB0LkNVU1RfUFJPUFMpKTt2YXIgeHQ9W10sUnQ9W107Zm9yKGplPTE7amU8PUguU2hlZXROYW1lcy5sZW5n''@;'; + put 'put ''dGg7KytqZSl7dmFyIENuPXsiIWlkIjp7fX0sRHQ9SC5TaGVldHNbSC5TaGVldE5hbWVzW2plLTFdXSx6dD0oRHR8fHt9KVsiIXR5cGUiXXx8InNoZWV0Ijtzd2l0Y2goenQpe2Nhc2UiY2hhcnQiOmlmKCJ1bmRlZmluZWQiIT10eXBlb2Ygd3JpdGVfZHJhd2luZ18pe3puKEZlLFplPSJ4bC9j''@;'; + put 'put ''aGFydHNoZWV0cy9zaGVldCIramUrIi4iK1gsU1AoamUtMSxaZSxyZSxILENuKSkseGUuY2hhcnRzLnB1c2goWmUpLFh0KHJlLndicmVscywtMSwiY2hhcnRzaGVldHMvc2hlZXQiK2plKyIuIitYLHB0LkNTKTticmVha31kZWZhdWx0OnpuKEZlLFplPSJ4bC93b3Jrc2hlZXRzL3NoZWV0Iitq''@;'; + put 'put ''ZSsiLiIrWCxReChqZS0xLFplLHJlLEgsQ24pKSx4ZS5zaGVldHMucHVzaChaZSksWHQocmUud2JyZWxzLC0xLCJ3b3Jrc2hlZXRzL3NoZWV0IitqZSsiLiIrWCxwdC5XU1swXSl9aWYoRHQpeyJjaGFydCI9PXp0JiYhRHRbIiFwb3MiXSYmKER0WyIhcG9zIl09e3g6MCx5OjAsdzo5MDAsaDo2''@;'; + put 'put ''MDB9KTt2YXIgUG49RHRbIiFjb21tZW50cyJdLFRuPSExO2lmKFBuJiZQbi5sZW5ndGg+MCl7dmFyIE9uPSJ4bC9jb21tZW50cyIramUrIi4iK1g7em4oRmUsT24sRVAoUG4sT24scmUpKSx4ZS5jb21tZW50cy5wdXNoKE9uKSxYdChDbiwtMSwiLi4vY29tbWVudHMiK2plKyIuIitYLHB0LkNN''@;'; + put 'put ''TlQpLFRuPSEwfShEdFsiIWNvbnRyb2xzIl18fFtdKS5sZW5ndGg+MCYmKFRuPSEwKSxEdFsiIWxlZ2FjeSJdJiZUbiYmem4oRmUsInhsL2RyYXdpbmdzL3ZtbERyYXdpbmciK2plKyIudm1sIixaYihqZSxEdFsiIWNvbW1lbnRzIl0sRHRbIiFjb250cm9scyJdLER0KSksRHRbIiFsZWdhY3lI''@;'; + put 'put ''RiJdJiZDbShGZSwwLGplLER0WyIhcHJpbnQiXS5pbWFnZXMpO3ZhciBZbj0oImNoYXJ0Ij09RHRbIiF0eXBlIl0/W0R0XTpEdFsiIWNoYXJ0cyJdfHxbXSkuY29uY2F0KChEdFsiIWltYWdlcyJdfHxbXSkubWFwKGZ1bmN0aW9uKE1yKXtyZXR1cm4gTXJbIiF0eXBlIl18fChNclsiIXR5cGUi''@;'; + put 'put ''XT0iaW1hZ2UiKSxNcn0pKS5jb25jYXQoKER0WyIhc2hhcGVzIl18fFtdKS5tYXAoZnVuY3Rpb24oTXIpe3JldHVybiBNclsiIXR5cGUiXXx8KE1yWyIhdHlwZSJdPSJzaGFwZSIpLE1yfSkpO1luJiZZbi5sZW5ndGgmJigidW5kZWZpbmVkIiE9dHlwZW9mIHdyaXRlX2RyYXdpbmdfP3dyaXRl''@;'; + put 'put ''X2RyYXdpbmdfKEZlLHhlLGplLER0LFluKTooem4oRmUsInhsL2RyYXdpbmdzL2RyYXdpbmciK2plKyIueG1sIixOYigpKSx4ZS5kcmF3aW5ncy5wdXNoKCJ4bC9kcmF3aW5ncy9kcmF3aW5nIitqZSsiLnhtbCIpKSksZGVsZXRlIER0WyIhY29tbWVudHMiXSxkZWxldGUgRHRbIiFsZWdhY3ki''@;'; + put 'put ''XSxkZWxldGUgRHRbIiFsZWdhY3lIRiJdfUR0JiZEdFsiIXBpdm90cyJdJiYieG1sIj09WCYmInVuZGVmaW5lZCIhPXR5cGVvZiB3cml0ZV9waXZvdF94bWwmJkR0WyIhcGl2b3RzIl0uZm9yRWFjaChubiksQ25bIiFpZCJdLnJJZDEmJnpuKEZlLEl0KFplKSxpdChDbikpLER0JiZEdFsiIXRh''@;'; + put 'put ''YmxlcyJdJiYieG1sIj09WCYmdm9pZCAwIT09VmImJkR0WyIhdGFibGVzIl0uZm9yRWFjaChVdCl9cmV0dXJuIG51bGwhPXJlLlN0cmluZ3MmJnJlLlN0cmluZ3MubGVuZ3RoPjAmJih6bihGZSxaZT0ieGwvc2hhcmVkU3RyaW5ncy4iK1gsTVAocmUuU3RyaW5ncyxaZSxyZSkpLHhlLnN0cnMu''@;'; + put 'put ''cHVzaChaZSksWHQocmUud2JyZWxzLC0xLCJzaGFyZWRTdHJpbmdzLiIrWCxwdC5TU1QpKSwieG1sIj09WCYmInVuZGVmaW5lZCIhPXR5cGVvZiB3cml0ZV9waXZvdF94bWwmJndyaXRlX3Bpdm90X3htbCh4dCxILEZlLHhlLHJlKSwieG1sIj09WCYmdm9pZCAwIT09VmImJlZiKFJ0LEgsRmUs''@;'; + put 'put ''eGUpLCJ4bWwiPT1YJiYoSC5FeHRlcm5hbFdCfHxbXSkubGVuZ3RoJiZmdW5jdGlvbiB3NihILHJlLFgpe1gubGlua3N8fChYLmxpbmtzPVtdKSxILkV4dGVybmFsV0ImJkguRXh0ZXJuYWxXQi5mb3JFYWNoKGZ1bmN0aW9uKHdlLHhlKXt2YXIgRmU9Ii94bC9leHRlcm5hbExpbmtzL19yZWxz''@;'; + put 'put ''L2V4dGVybmFsTGluayIrKHhlKzEpKyIueG1sLnJlbHMiLFplPXt9O1h0KFplLC0xLHdlLlRhcmdldCx3ZS5NaXNzaW5nP3B0LlhNSVNTOnB0LlhQQVRIKSx6bihyZSxoMShGZSksaXQoWmUpKTt2YXIgamU9Ii94bC9leHRlcm5hbExpbmtzL2V4dGVybmFsTGluayIrKHhlKzEpKyIueG1sIjtY''@;'; + put 'put ''LmxpbmtzLnB1c2goamUpLHpuKHJlLGgxKGplKSxmdW5jdGlvbiB0NShIKXt2YXIgcmU9W2NuLHk2XTtyZXR1cm4oSC5TaGVldE5hbWVzfHxbXSkubGVuZ3RoJiYocmUucHVzaCgnPGV4dGVybmFsQm9vayB4bWxuczpyPSJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNl''@;'; + put 'put ''RG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzIiByOmlkPSJySWQxIj4nKSxyZS5wdXNoKCI8c2hlZXROYW1lcz4iKSxILlNoZWV0TmFtZXMuZm9yRWFjaChmdW5jdGlvbihYKXtyZS5wdXNoKCc8c2hlZXROYW1lIHZhbD0iJytScihYKSsnIi8+Jyl9KSxyZS5wdXNoKCI8L3NoZWV0TmFtZXM+''@;'; + put 'put ''IikscmUucHVzaCgiPHNoZWV0RGF0YVNldD4iKSxILlNoZWV0TmFtZXMuZm9yRWFjaChmdW5jdGlvbihYLHdlKXt2YXIgeGU9SC5TaGVldHNbWF0sRmU9e3NoZWV0SWQ6d2V9LFplPW51bGw7aWYobnVsbD09eGUpRmUucmVmcmVzaEVycm9yPTE7ZWxzZSBpZih4ZVsiIXJlZiJdKXt2YXIgamU9''@;'; + put 'put ''dnMoeGVbIiFyZWYiXSk7WmU9IiI7Zm9yKHZhciBZZT1qZS5zLnI7WWU8PWplLmUucjsrK1llKXtmb3IodmFyIE10PSIiLHh0PWplLnMuYzt4dDw9amUuZS5jOysreHQpe3ZhciBSdD1ZMCh7cjpZZSxjOnh0fSk7IXhlW1J0XXx8KE10fHwoTXQ9Jzxyb3cgcj0iJysoWWUrMSkrJyI+JyksTXQr''@;'; + put 'put ''PSc8Y2VsbCByPSInK1J0KyciJysoeGVbUnRdLnQ/JyB0PSInK3hlW1J0XS50KyciJzoiIikrIj48dj4iK1JyKHhlW1J0XS52KSsiPC92PjwvY2VsbD4iKX1NdCYmKFplKz1NdCsiPC9yb3c+Iil9fXJlLnB1c2goX2koInNoZWV0RGF0YSIsWmUsRmUpKX0pLHJlLnB1c2goIjwvc2hlZXREYXRh''@;'; + put 'put ''U2V0PiIpLHJlLnB1c2goIjwvZXh0ZXJuYWxCb29rPiIpKSxyZS5sZW5ndGg+MiYmKHJlW3JlLmxlbmd0aF09IjwvZXh0ZXJuYWxMaW5rPiIscmVbMV09cmVbMV0ucmVwbGFjZSgiLz4iLCI+IikpLHJlLmpvaW4oIiIpfSh3ZSkpfSl9KEgsRmUseGUpLCJ4bWwiPT1YJiZmdW5jdGlvbiBWOShI''@;'; + put 'put ''KXt2YXIgcmUsWDtILldvcmtib29rfHwoSC5Xb3JrYm9vaz17TmFtZXM6W119KSxILldvcmtib29rLk5hbWVzfHwoSC5Xb3JrYm9vay5OYW1lcz1bXSk7Zm9yKHZhciB3ZT1ILldvcmtib29rLk5hbWVzLHhlPTA7eGU8SC5TaGVldE5hbWVzLmxlbmd0aDsrK3hlKXt2YXIgRmU9SC5TaGVldE5h''@;'; + put 'put ''bWVzW3hlXSxaZT1ILlNoZWV0c1tGZV07aWYoWmUmJlplWyIhcHJpbnQiXSl7dmFyIGplPSInIitGZSsiJyEiLFllPVplWyIhcHJpbnQiXTtpZihZZSl7dmFyIE10PSEocmU9WWUuYXJlYSkseHQ9IShYPVllLnRpdGxlcyksUnQ9cmU/InN0cmluZyI9PXR5cGVvZiByZT9yZTpmYShyZSk6IiI7''@;'; + put 'put ''aWYocmUmJih3ZS5mb3JFYWNoKGZ1bmN0aW9uKG5uKXtubi5TaGVldD09eGUmJiFNdCYmIl94bG5tLlByaW50X0FyZWEiPT1ubi5OYW1lJiYoTXQ9ITAsbm4uUmVmPWplK1J0KX0pLE10fHx3ZS5wdXNoKHtOYW1lOiJfeGxubS5QcmludF9BcmVhIixSZWY6amUrUnQsU2hlZXQ6eGV9KSksWCl7''@;'; + put 'put ''dmFyIFV0PSIiO1gucy5jPi0xJiZYLmUuYz4tMSYmKFV0Kz1qZStfYShYLnMuYykrIjoiK19hKFguZS5jKSsiLCIpLFgucy5yPi0xJiZYLmUucj4tMSYmKFV0Kz1qZStYYShYLnMucikrIjoiK1hhKFguZS5yKSsiLCIpLFV0PVV0LnNsaWNlKDAsLTEpLHdlLmZvckVhY2goZnVuY3Rpb24obm4p''@;'; + put 'put ''e25uLlNoZWV0PT14ZSYmIXh0JiYiX3hsbm0uUHJpbnRfVGl0bGVzIj09bm4uTmFtZSYmKE10PSEwLG5uLlJlZj1VdCl9KSx4dHx8d2UucHVzaCh7TmFtZToiX3hsbm0uUHJpbnRfVGl0bGVzIixSZWY6VXQsU2hlZXQ6eGV9KX19fX19KEgpLHpuKEZlLFplPSJ4bC93b3JrYm9vay4iK1gsZnVu''@;'; + put 'put ''Y3Rpb24ga1AoSCxyZSxYKXtyZXR1cm4oIi5iaW4iPT09cmUuc2xpY2UoLTQpP1lfOnlQKShILFgpfShILFplLHJlKSkseGUud29ya2Jvb2tzLnB1c2goWmUpLFh0KHJlLnJlbHMsMSxaZSxwdC5XQiksem4oRmUsWmU9InhsL3RoZW1lL3RoZW1lMS54bWwiLEg5KEguVGhlbWVzLHJlKSkseGUu''@;'; + put 'put ''dGhlbWVzLnB1c2goWmUpLFh0KHJlLndicmVscywtMSwidGhlbWUvdGhlbWUxLnhtbCIscHQuVEhFTUUpLHpuKEZlLFplPSJ4bC9zdHlsZXMuIitYLGZ1bmN0aW9uIEp4KEgscmUsWCl7cmV0dXJuKCIuYmluIj09PXJlLnNsaWNlKC00KT9rRTpVUikoSCxYKX0oSCxaZSxyZSkpLHhlLnN0eWxl''@;'; + put 'put ''cy5wdXNoKFplKSxYdChyZS53YnJlbHMsLTEsInN0eWxlcy4iK1gscHQuU1RZKSxILnZiYXJhdyYmd2UmJih6bihGZSxaZT0ieGwvdmJhUHJvamVjdC5iaW4iLEgudmJhcmF3KSx4ZS52YmEucHVzaChaZSksWHQocmUud2JyZWxzLC0xLCJ2YmFQcm9qZWN0LmJpbiIscHQuVkJBKSksSC5tb2Rl''@;'; + put 'put ''bCYmSC5tb2RlbC5sZW5ndGgmJih6bihGZSwieGwvbW9kZWwvaXRlbS5kYXRhIixILm1vZGVsKSxYdChyZS53YnJlbHMsLTEsIm1vZGVsL2l0ZW0uZGF0YSIscHQuUFdSUEQpKSxILmNvbm4mJih6bihGZSwieGwvY29ubmVjdGlvbnMueG1sIixILmNvbm4pLHhlLmNvbm5zLnB1c2goIi94bC9j''@;'; + put 'put ''b25uZWN0aW9ucy54bWwiKSxYdChyZS53YnJlbHMsLTEsImNvbm5lY3Rpb25zLnhtbCIscHQuQ09OTikpLEguQ3VzdG9tWE1MJiZILkN1c3RvbVhNTC5mb3JFYWNoKGZ1bmN0aW9uKE1yLGFpKXtpZih6bihGZSwiY3VzdG9tWG1sL2l0ZW0iKyhhaSsxKSsiLnhtbCIsTXIuZGF0YSksWHQocmUu''@;'; + put 'put ''d2JyZWxzLC0xLCIuLi9jdXN0b21YbWwvaXRlbSIrKGFpKzEpKyIueG1sIixwdC5DWE1MKSxNci5wcm9wcyl7em4oRmUsImN1c3RvbVhtbC9pdGVtUHJvcHMiKyhhaSsxKSsiLnhtbCIsTXIucHJvcHMpLHhlLmN1c3RvbXhtbHByb3BzLnB1c2goIi9jdXN0b21YbWwvaXRlbVByb3BzIisoYWkr''@;'; + put 'put ''MSkrIi54bWwiKTt2YXIgeXI9e307WHQoeXIsLTEsIml0ZW1Qcm9wcyIrKGFpKzEpKyIueG1sIixwdC5DWE1MUCksem4oRmUsImN1c3RvbVhtbC9fcmVscy9pdGVtIisoYWkrMSkrIi54bWwucmVscyIsaXQoeXIpKX19KSx6bihGZSwiW0NvbnRlbnRfVHlwZXNdLnhtbCIsZnVuY3Rpb24gTE0o''@;'; + put 'put ''SCxyZSxYKXt2YXIgeGUsd2U9W107WHx8KHdlW3dlLmxlbmd0aF09Y24sd2Vbd2UubGVuZ3RoXT1mMix3ZT13ZS5jb25jYXQoZFIpKTt2YXIgRmU9ZnVuY3Rpb24oWWUpe0hbWWVdJiZIW1llXS5sZW5ndGg+MCYmKHdlW3dlLmxlbmd0aF09X2koIk92ZXJyaWRlIixudWxsLHtQYXJ0TmFtZToo''@;'; + put 'put ''Ii8iPT0oeGU9SFtZZV1bMF0pWzBdPyIiOiIvIikreGUsQ29udGVudFR5cGU6Q2FbWWVdW3JlLmJvb2tUeXBlfHwieGxzeCJdfSkpfSxaZT1mdW5jdGlvbihZZSl7KEhbWWVdfHxbXSkuZm9yRWFjaChmdW5jdGlvbihNdCl7d2Vbd2UubGVuZ3RoXT1faSgiT3ZlcnJpZGUiLG51bGwse1BhcnRO''@;'; + put 'put ''YW1lOigiLyI9PU10WzBdPyIiOiIvIikrTXQsQ29udGVudFR5cGU6Q2FbWWVdW3JlLmJvb2tUeXBlfHwieGxzeCJdfSl9KX0samU9ZnVuY3Rpb24oWWUpeyhIW1llXXx8W10pLmZvckVhY2goZnVuY3Rpb24oTXQpe3dlW3dlLmxlbmd0aF09X2koIk92ZXJyaWRlIixudWxsLHtQYXJ0TmFtZToo''@;'; + put 'put ''Ii8iPT1NdFswXT8iIjoiLyIpK010LENvbnRlbnRUeXBlOiRnW1llXVswXX0pfSl9O3JldHVybiBGZSgid29ya2Jvb2tzIiksWmUoInNoZWV0cyIpLFplKCJjaGFydHMiKSxqZSgidGhlbWVzIiksWyJzdHJzIiwic3R5bGVzIiwiY29ubnMiXS5mb3JFYWNoKEZlKSxbImNvcmVwcm9wcyIsImV4''@;'; + put 'put ''dHByb3BzIiwiY3VzdHByb3BzIl0uZm9yRWFjaChqZSksamUoInZiYSIpLGplKCJjb21tZW50cyIpLGplKCJkcmF3aW5ncyIpLFplKCJ0YWJsZXMiKSxaZSgicGl2b3RzIiksWmUoInBpdm90Y2FjaGVzIiksWmUoInBpdm90cmVjb3JkcyIpLGplKCJkYXRhbW9kZWxzIiksamUoImN0cmxwcm9w''@;'; + put 'put ''cyIpLGplKCJjaGFydG9ianMiKSxqZSgiY2hhcnRzdHlsZXMiKSxqZSgiY2hhcnRjb2xvcnMiKSxqZSgiY2hhcnRleHMiKSxaZSgibGlua3MiKSxqZSgiY3VzdG9teG1scHJvcHMiKSwhWCYmd2UubGVuZ3RoPjImJih3ZVt3ZS5sZW5ndGhdPSI8L1R5cGVzPiIsd2VbMV09d2VbMV0ucmVwbGFj''@;'; + put 'put ''ZSgiLz4iLCI+IikpLHdlLmpvaW4oIiIpfSh4ZSxyZSkpLHpuKEZlLCJfcmVscy8ucmVscyIsaXQocmUucmVscykpLHpuKEZlLCJ4bC9fcmVscy93b3JrYm9vay4iK1grIi5yZWxzIixpdChyZS53YnJlbHMpKSxkZWxldGUgcmUuRm9udHMsZGVsZXRlIHJlLkZpbGxzLGRlbGV0ZSByZS5Cb3Jk''@;'; + put 'put ''ZXJzLGRlbGV0ZSByZS5yZXZzc2YsZGVsZXRlIHJlLnNzZixGZX1mdW5jdGlvbiBVdChNcixhaSl7UnQucHVzaChbamUtMSxhaSxNcl0pfWZ1bmN0aW9uIG5uKE1yKXt4dC5wdXNoKFtqZS0xLE1yXSksWHQoQ24sLTEsIi4uL3Bpdm90VGFibGVzL3Bpdm90VGFibGUiK3h0Lmxlbmd0aCsiLiIr''@;'; + put 'put ''WCxwdC5QSVZPVCl9fWZ1bmN0aW9uIGZDKEgscmUpe3ZhciBYPSIiO3N3aXRjaCgocmV8fHt9KS50eXBlfHwiYmFzZTY0Iil7Y2FzZSJidWZmZXIiOmNhc2UiYXJyYXkiOnJldHVybltIWzBdLEhbMV0sSFsyXSxIWzNdLEhbNF0sSFs1XSxIWzZdLEhbN11dO2Nhc2UiYmFzZTY0IjpYPVNlLmRl''@;'; + put 'put ''Y29kZShILnNsaWNlKDAsMTIpKTticmVhaztjYXNlImJpbmFyeSI6WD1IO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJVbnJlY29nbml6ZWQgdHlwZSAiKyhyZSYmcmUudHlwZXx8InVuZGVmaW5lZCIpKX1yZXR1cm5bWC5jaGFyQ29kZUF0KDApLFguY2hhckNvZGVBdCgxKSxYLmNo''@;'; + put 'put ''YXJDb2RlQXQoMiksWC5jaGFyQ29kZUF0KDMpLFguY2hhckNvZGVBdCg0KSxYLmNoYXJDb2RlQXQoNSksWC5jaGFyQ29kZUF0KDYpLFguY2hhckNvZGVBdCg3KV19ZnVuY3Rpb24gaG8oSCxyZSl7dmFyIFg9MDtlOmZvcig7WDxILmxlbmd0aDspc3dpdGNoKEguY2hhckNvZGVBdChYKSl7Y2Fz''@;'; + put 'put ''ZSAxMDpjYXNlIDEzOmNhc2UgMzI6KytYO2JyZWFrO2Nhc2UgNjA6cmV0dXJuIGVDKEguc2xpY2UoWCkscmUpO2RlZmF1bHQ6YnJlYWsgZX1yZXR1cm4gQTMudG9fd29ya2Jvb2soSCxyZSl9ZnVuY3Rpb24gVjMoSCxyZSxYLHdlKXtyZXR1cm4gd2U/KFgudHlwZT0ic3RyaW5nIixBMy50b193''@;'; + put 'put ''b3JrYm9vayhILFgpKTpBMy50b193b3JrYm9vayhyZSxYKX1mdW5jdGlvbiB6ZChILHJlKXt2YXIgWD1GLmdldGxvY2FsZSgpO3llKEYpLEYuc2V0bG9jYWxlKFgpLHEoKTt2YXIgd2U9cmV8fHt9O2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgQXJyYXlCdWZmZXImJkggaW5zdGFuY2VvZiBBcnJh''@;'; + put 'put ''eUJ1ZmZlcilyZXR1cm4gemQobmV3IFVpbnQ4QXJyYXkoSCksKCh3ZT1sbih3ZSkpLnR5cGU9ImFycmF5Iix3ZSkpO3ZhciBGZSx4ZT1ILFplPSExO2lmKEMzKFI0PXdlLlBQSXx8OTYpLHdlLmNlbGxTdHlsZXMmJih3ZS5jZWxsTkY9ITAsd2Uuc2hlZXRTdHVicz0hMCksVWM9e30sd2UuZGF0''@;'; + put 'put ''ZU5GJiYoVWMuZGF0ZU5GPXdlLmRhdGVORiksd2UudHlwZXx8KHdlLnR5cGU9SWUmJkJ1ZmZlci5pc0J1ZmZlcihIKT8iYnVmZmVyIjoiYmFzZTY0IiksImZpbGUiPT13ZS50eXBlJiYod2UudHlwZT1JZT8iYnVmZmVyIjoiYmluYXJ5Iix4ZT1mdW5jdGlvbiBCdChIKXtpZih2b2lkIDAhPT12''@;'; + put 'put ''dClyZXR1cm4gdnQucmVhZEZpbGVTeW5jKEgpO2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgJCYmInVuZGVmaW5lZCIhPXR5cGVvZiBGaWxlJiYidW5kZWZpbmVkIiE9dHlwZW9mIEZvbGRlcil0cnl7dmFyIHJlPUZpbGUoSCk7cmUub3BlbigiciIpLHJlLmVuY29kaW5nPSJiaW5hcnkiO3ZhciBY''@;'; + put 'put ''PXJlLnJlYWQoKTtyZXR1cm4gcmUuY2xvc2UoKSxYfWNhdGNoKHdlKXtpZighd2UubWVzc2FnZXx8IXdlLm1lc3NhZ2UubWF0Y2goL29uc3RydWN0LykpdGhyb3cgd2V9dGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgYWNjZXNzIGZpbGUgIitIKX0oSCkpLCJzdHJpbmciPT13ZS50eXBlJiYoWmU9''@;'; + put 'put ''ITAsd2UudHlwZT0iYmluYXJ5Iix3ZS5jb2RlcGFnZT02NTAwMSx4ZT1mdW5jdGlvbiBHbyhIKXtyZXR1cm4gSC5tYXRjaCgvW15ceDAwLVx4N0ZdLyk/RW8oSCk6SH0oSCkpLCJhcnJheSI9PXdlLnR5cGUmJiJ1bmRlZmluZWQiIT10eXBlb2YgVWludDhBcnJheSYmSCBpbnN0YW5jZW9mIFVp''@;'; + put 'put ''bnQ4QXJyYXkmJiJ1bmRlZmluZWQiIT10eXBlb2YgQXJyYXlCdWZmZXIpe3ZhciBqZT1uZXcgQXJyYXlCdWZmZXIoMyksWWU9bmV3IFVpbnQ4QXJyYXkoamUpO2lmKFllLmZvbz0iYmFyIiwhWWUuZm9vKXJldHVybih3ZT1sbih3ZSkpLnR5cGU9ImFycmF5Iix6ZChQKHhlKSx3ZSl9c3dpdGNo''@;'; + put 'put ''KChGZT1mQyh4ZSx3ZSkpWzBdKXtjYXNlIDIwODppZigyMDc9PT1GZVsxXSYmMTc9PT1GZVsyXSYmMjI0PT09RmVbM10mJjE2MT09PUZlWzRdJiYxNzc9PT1GZVs1XSYmMjY9PT1GZVs2XSYmMjI1PT09RmVbN10pcmV0dXJuIGZ1bmN0aW9uIG9jKEgscmUpe3JldHVybiBtdC5maW5kKEgsIkVu''@;'; + put 'put ''Y3J5cHRlZFBhY2thZ2UiKT8kbShILHJlKTpVbShILHJlKX0obXQucmVhZCh4ZSx3ZSksd2UpO2JyZWFrO2Nhc2UgOTppZihGZVsxXTw9OClyZXR1cm4gVW0oeGUsd2UpO2JyZWFrO2Nhc2UgNjA6cmV0dXJuIGVDKHhlLHdlKTtjYXNlIDczOmlmKDczPT09RmVbMV0mJjQyPT09RmVbMl0mJjA9''@;'; + put 'put ''PT1GZVszXSl0aHJvdyBuZXcgRXJyb3IoIlRJRkYgSW1hZ2UgRmlsZSBpcyBub3QgYSBzcHJlYWRzaGVldCIpO2lmKDY4PT09RmVbMV0pcmV0dXJuIGZ1bmN0aW9uIEFiKEgscmUpe3ZhciBYPXJlfHx7fSx3ZT0hIVguV1RGO1guV1RGPSEwO3RyeXt2YXIgeGU9Zm0udG9fd29ya2Jvb2soSCxY''@;'; + put 'put ''KTtyZXR1cm4gWC5XVEY9d2UseGV9Y2F0Y2goRmUpe2lmKFguV1RGPXdlLCFGZS5tZXNzYWdlLm1hdGNoKC9TWUxLIGJhZCByZWNvcmQgSUQvKSYmd2UpdGhyb3cgRmU7cmV0dXJuIEEzLnRvX3dvcmtib29rKEgscmUpfX0oeGUsd2UpO2JyZWFrO2Nhc2UgODQ6aWYoNjU9PT1GZVsxXSYmNjY9''@;'; + put 'put ''PT1GZVsyXSYmNzY9PT1GZVszXSlyZXR1cm4gdmIudG9fd29ya2Jvb2soeGUsd2UpO2JyZWFrO2Nhc2UgODA6cmV0dXJuIDc1PT09RmVbMV0mJkZlWzJdPDkmJkZlWzNdPDk/ZnVuY3Rpb24gWVAoSCxyZSl7dmFyIHdlPUgseGU9cmV8fHt9O3JldHVybiB4ZS50eXBlfHwoeGUudHlwZT1JZSYm''@;'; + put 'put ''QnVmZmVyLmlzQnVmZmVyKEgpPyJidWZmZXIiOiJiYXNlNjQiKSxLbShtbih3ZSx4ZSkseGUpfSh4ZSx3ZSk6VjMoSCx4ZSx3ZSxaZSk7Y2FzZSAyMzk6cmV0dXJuIDYwPT09RmVbM10/ZUMoeGUsd2UpOlYzKEgseGUsd2UsWmUpO2Nhc2UgMjU1OmlmKDI1ND09PUZlWzFdKXJldHVybiBmdW5j''@;'; + put 'put ''dGlvbiBDMShILHJlKXt2YXIgWD1IO3JldHVybiJiYXNlNjQiPT1yZS50eXBlJiYoWD1TZS5kZWNvZGUoWCkpLFg9Y3B0YWJsZS51dGlscy5kZWNvZGUoMTIwMCxYLnNsaWNlKDIpLCJzdHIiKSxyZS50eXBlPSJiaW5hcnkiLGhvKFgscmUpfSh4ZSx3ZSk7YnJlYWs7Y2FzZSAwOmlmKDA9PT1G''@;'; + put 'put ''ZVsxXSYmRmVbMl0+PTImJjA9PT1GZVszXSlyZXR1cm4gRzEudG9fd29ya2Jvb2soeGUsd2UpO2JyZWFrO2Nhc2UgMzpjYXNlIDEzMTpjYXNlIDEzOTpjYXNlIDE0MDpyZXR1cm4gWWYudG9fd29ya2Jvb2soeGUsd2UpO2Nhc2UgMTIzOmlmKDkyPT09RmVbMV0mJjExND09PUZlWzJdJiYxMTY9''@;'; + put 'put ''PT1GZVszXSlyZXR1cm4gRTkudG9fd29ya2Jvb2soeGUsd2UpO2JyZWFrO2Nhc2UgMTA6Y2FzZSAxMzpjYXNlIDMyOnJldHVybiBmdW5jdGlvbiBOMyhILHJlKXt2YXIgWD0iIix3ZT1mQyhILHJlKTtzd2l0Y2gocmUudHlwZSl7Y2FzZSJiYXNlNjQiOlg9U2UuZGVjb2RlKEgpO2JyZWFrO2Nh''@;'; + put 'put ''c2UiYmluYXJ5IjpYPUg7YnJlYWs7Y2FzZSJidWZmZXIiOlg9SC50b1N0cmluZygiYmluYXJ5Iik7YnJlYWs7Y2FzZSJhcnJheSI6WD15bihIKTticmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiVW5yZWNvZ25pemVkIHR5cGUgIityZS50eXBlKX1yZXR1cm4gMjM5PT13ZVswXSYmMTg3''@;'; + put 'put ''PT13ZVsxXSYmMTkxPT13ZVsyXSYmKFg9VzAoWCkpLGhvKFgscmUpfSh4ZSx3ZSl9cmV0dXJuIFlmLnZlcnNpb25zLmluZGV4T2YoRmVbMF0pPi0xJiZGZVsyXTw9MTImJkZlWzNdPD0zMT9ZZi50b193b3JrYm9vayh4ZSx3ZSk6VjMoSCx4ZSx3ZSxaZSl9ZnVuY3Rpb24gZTcoSCxyZSl7dmFy''@;'; + put 'put ''IFg9cmV8fHt9O3JldHVybiBYLnR5cGU9ImZpbGUiLHpkKEgsWCl9ZnVuY3Rpb24gU2MoSCxyZSl7c3dpdGNoKHJlLnR5cGUpe2Nhc2UiYmFzZTY0IjpjYXNlImJpbmFyeSI6YnJlYWs7Y2FzZSJidWZmZXIiOmNhc2UiYXJyYXkiOnJlLnR5cGU9IiI7YnJlYWs7Y2FzZSJmaWxlIjpyZXR1cm4g''@;'; + put 'put ''aHQocmUuZmlsZSxtdC53cml0ZShILHt0eXBlOkllPyJidWZmZXIiOiIifSkpO2Nhc2Uic3RyaW5nIjp0aHJvdyBuZXcgRXJyb3IoIidzdHJpbmcnIG91dHB1dCB0eXBlIGludmFsaWQgZm9yICciK3JlLmJvb2tUeXBlKyInIGZpbGVzIik7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIlVucmVj''@;'; + put 'put ''b2duaXplZCB0eXBlICIrcmUudHlwZSl9cmV0dXJuIG10LndyaXRlKEgscmUpfWZ1bmN0aW9uIGozKEgscmUsWCl7WHx8KFg9IiIpO3ZhciB3ZT1YK0g7c3dpdGNoKHJlLnR5cGUpe2Nhc2UiYmFzZTY0IjpyZXR1cm4gU2UuZW5jb2RlKEVvKHdlKSk7Y2FzZSJiaW5hcnkiOnJldHVybiBFbyh3''@;'; + put 'put ''ZSk7Y2FzZSJzdHJpbmciOnJldHVybiBIO2Nhc2UiZmlsZSI6cmV0dXJuIGh0KHJlLmZpbGUsd2UsInV0ZjgiKTtjYXNlImJ1ZmZlciI6cmV0dXJuIEllP1RlKHdlLCJ1dGY4Iik6ajMod2Use3R5cGU6ImJpbmFyeSJ9KS5zcGxpdCgiIikubWFwKGZ1bmN0aW9uKHhlKXtyZXR1cm4geGUuY2hh''@;'; + put 'put ''ckNvZGVBdCgwKX0pfXRocm93IG5ldyBFcnJvcigiVW5yZWNvZ25pemVkIHR5cGUgIityZS50eXBlKX1mdW5jdGlvbiBkQyhILHJlKXtzd2l0Y2gocmUudHlwZSl7Y2FzZSJzdHJpbmciOmNhc2UiYmFzZTY0IjpjYXNlImJpbmFyeSI6Zm9yKHZhciBYPSIiLHdlPTA7d2U8SC5sZW5ndGg7Kyt3''@;'; + put 'put ''ZSlYKz1TdHJpbmcuZnJvbUNoYXJDb2RlKEhbd2VdKTtyZXR1cm4iYmFzZTY0Ij09cmUudHlwZT9TZS5lbmNvZGUoWCk6InN0cmluZyI9PXJlLnR5cGU/VzAoWCk6WDtjYXNlImZpbGUiOnJldHVybiBodChyZS5maWxlLEgpO2Nhc2UiYnVmZmVyIjpyZXR1cm4gSDtkZWZhdWx0OnRocm93IG5l''@;'; + put 'put ''dyBFcnJvcigiVW5yZWNvZ25pemVkIHR5cGUgIityZS50eXBlKX19ZnVuY3Rpb24gbjcoSCxyZSl7cSgpLGZ1bmN0aW9uIEFQKEgpe2lmKCFIfHwhSC5TaGVldE5hbWVzfHwhSC5TaGVldHMpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIFdvcmtib29rIik7aWYoIUguU2hlZXROYW1lcy5sZW5n''@;'; + put 'put ''dGgpdGhyb3cgbmV3IEVycm9yKCJXb3JrYm9vayBpcyBlbXB0eSIpOyFmdW5jdGlvbiB2UChILHJlLFgpe0guZm9yRWFjaChmdW5jdGlvbih3ZSx4ZSl7Vngod2UpO2Zvcih2YXIgRmU9MDtGZTx4ZTsrK0ZlKWlmKHdlPT1IW0ZlXSl0aHJvdyBuZXcgRXJyb3IoIkR1cGxpY2F0ZSBTaGVldCBO''@;'; + put 'put ''YW1lOiAiK3dlKTtpZihYKXt2YXIgWmU9cmUmJnJlW3hlXSYmcmVbeGVdLkNvZGVOYW1lfHx3ZTtpZig5NT09WmUuY2hhckNvZGVBdCgwKSYmWmUubGVuZ3RoPjIyKXRocm93IG5ldyBFcnJvcigiQmFkIENvZGUgTmFtZTogV29ya3NoZWV0IitaZSl9fSl9KEguU2hlZXROYW1lcyxILldvcmti''@;'; + put 'put ''b29rJiZILldvcmtib29rLlNoZWV0c3x8W10sISFILnZiYXJhdyk7Zm9yKHZhciBYPTA7WDxILlNoZWV0TmFtZXMubGVuZ3RoOysrWClpQShILlNoZWV0c1tILlNoZWV0TmFtZXNbWF1dLDAsWCl9KEgpO3ZhciBYPXJlfHx7fTtpZihYLmNlbGxTdHlsZXMmJihYLmNlbGxORj0hMCxYLnNoZWV0''@;'; + put 'put ''U3R1YnM9ITApLCJhcnJheSI9PVgudHlwZSl7WC50eXBlPSJiaW5hcnkiO3ZhciB3ZT1uNyhILFgpO3JldHVybiBYLnR5cGU9ImFycmF5IixuZSh3ZSl9c3dpdGNoKFguYm9va1R5cGV8fCJ4bHNiIil7Y2FzZSJ4bWwiOmNhc2UieGxtbCI6cmV0dXJuIGozKFNBKEgsWCksWCk7Y2FzZSJzbGsi''@;'; + put 'put ''OmNhc2Uic3lsayI6cmV0dXJuIGozKGxDKEgsWCksWCk7Y2FzZSJodG0iOmNhc2UiaHRtbCI6cmV0dXJuIGozKGpkKEgsWCksWCk7Y2FzZSJ0eHQiOnJldHVybiBmdW5jdGlvbiBoQyhILHJlKXtzd2l0Y2gocmUudHlwZSl7Y2FzZSJiYXNlNjQiOnJldHVybiBTZS5lbmNvZGUoSCk7Y2FzZSJi''@;'; + put 'put ''aW5hcnkiOmNhc2Uic3RyaW5nIjpyZXR1cm4gSDtjYXNlImZpbGUiOnJldHVybiBodChyZS5maWxlLEgsImJpbmFyeSIpO2Nhc2UiYnVmZmVyIjpyZXR1cm4gSWU/VGUoSCwiYmluYXJ5Iik6SC5zcGxpdCgiIikubWFwKGZ1bmN0aW9uKFgpe3JldHVybiBYLmNoYXJDb2RlQXQoMCl9KX10aHJv''@;'; + put 'put ''dyBuZXcgRXJyb3IoIlVucmVjb2duaXplZCB0eXBlICIrcmUudHlwZSl9KGhUKEgsWCksWCk7Y2FzZSJjc3YiOnJldHVybiBqMyhUQShILFgpLFgsIlx1ZmVmZiIpO2Nhc2UiZGlmIjpyZXR1cm4gajMoc0MoSCxYKSxYKTtjYXNlImRiZiI6cmV0dXJuIGRDKHVDKEgsWCksWCk7Y2FzZSJwcm4i''@;'; + put 'put ''OnJldHVybiBqMyhzaShILFgpLFgpO2Nhc2UicnRmIjpyZXR1cm4gajMoWlAoSCxYKSxYKTtjYXNlImV0aCI6cmV0dXJuIGozKFZsKEgsWCksWCk7Y2FzZSJmb2RzIjpyZXR1cm4gajMoeEEoSCxYKSxYKTtjYXNlImJpZmYyIjpYLmJpZmZ8fChYLmJpZmY9Mik7Y2FzZSJiaWZmMyI6WC5iaWZm''@;'; + put 'put ''fHwoWC5iaWZmPTMpO2Nhc2UiYmlmZjQiOnJldHVybiBYLmJpZmZ8fChYLmJpZmY9NCksZEMoWG0oSCxYKSxYKTtjYXNlImJpZmY1IjpYLmJpZmZ8fChYLmJpZmY9NSk7Y2FzZSJiaWZmOCI6Y2FzZSJ4bGEiOmNhc2UieGxzIjpyZXR1cm4gWC5iaWZmfHwoWC5iaWZmPTgpLGZ1bmN0aW9uIERB''@;'; + put 'put ''KEgscmUpe3ZhciBYPXJlfHx7fTtyZXR1cm4gU2MoZnVuY3Rpb24gUlAoSCxyZSl7dmFyIFg9cmV8fHt9LHdlPW10LnV0aWxzLmNmYl9uZXcoe3Jvb3Q6IlIifSkseGU9Ii9Xb3JrYm9vayI7c3dpdGNoKFguYm9va1R5cGV8fCJ4bHMiKXtjYXNlInhscyI6WC5ib29rVHlwZT0iYmlmZjgiO2Nh''@;'; + put 'put ''c2UieGxhIjpYLmJvb2tUeXBlfHwoWC5ib29rVHlwZT0ieGxhIik7Y2FzZSJiaWZmOCI6eGU9Ii9Xb3JrYm9vayIsWC5iaWZmPTg7YnJlYWs7Y2FzZSJiaWZmNSI6eGU9Ii9Cb29rIixYLmJpZmY9NTticmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiaW52YWxpZCB0eXBlICIrWC5ib29r''@;'; + put 'put ''VHlwZSsiIGZvciBYTFMgQ0ZCIil9cmV0dXJuIG10LnV0aWxzLmNmYl9hZGQod2UseGUsWG0oSCxYKSksOD09WC5iaWZmJiYoSC5Qcm9wc3x8SC5DdXN0cHJvcHMpJiZmdW5jdGlvbiBhVChILHJlKXt2YXIgWmUsWD1bXSx3ZT1bXSx4ZT1bXSxGZT0wO2lmKEguUHJvcHMpZm9yKFplPW9uKEgu''@;'; + put 'put ''UHJvcHMpLEZlPTA7RmU8WmUubGVuZ3RoOysrRmUpKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh2YyxaZVtGZV0pP1g6T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGQ5LFplW0ZlXSk/d2U6eGUpLnB1c2goW1plW0ZlXSxILlByb3BzW1plW0ZlXV1d''@;'; + put 'put ''KTtpZihILkN1c3Rwcm9wcylmb3IoWmU9b24oSC5DdXN0cHJvcHMpLEZlPTA7RmU8WmUubGVuZ3RoOysrRmUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKEguUHJvcHN8fHt9LFplW0ZlXSl8fChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodmMsWmVb''@;'; + put 'put ''RmVdKT9YOk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChkOSxaZVtGZV0pP3dlOnhlKS5wdXNoKFtaZVtGZV0sSC5DdXN0cHJvcHNbWmVbRmVdXV0pO3ZhciBqZT1bXTtmb3IoRmU9MDtGZTx4ZS5sZW5ndGg7KytGZSlJOC5pbmRleE9mKHhlW0ZlXVswXSk+LTF8fG51bGwh''@;'; + put 'put ''PXhlW0ZlXVsxXSYmamUucHVzaCh4ZVtGZV0pO3dlLmxlbmd0aCYmbXQudXRpbHMuY2ZiX2FkZChyZSwiL1x4MDVTdW1tYXJ5SW5mb3JtYXRpb24iLGEwKHdlLEU1X1NJLGQ5LFVwKSksKFgubGVuZ3RofHxqZS5sZW5ndGgpJiZtdC51dGlscy5jZmJfYWRkKHJlLCIvXHgwNURvY3VtZW50U3Vt''@;'; + put 'put ''bWFyeUluZm9ybWF0aW9uIixhMChYLEU1X0RTSSx2YyxyYixqZS5sZW5ndGg/amU6bnVsbCwiMDVkNWNkZDU5YzJlMWIxMDkzOTcwODAwMmIyY2Y5YWUiKSl9KEgsd2UpLDg9PVguYmlmZiYmSC52YmFyYXcmJmZ1bmN0aW9uIGttKEgscmUpe3JlLkZ1bGxQYXRocy5mb3JFYWNoKGZ1bmN0aW9u''@;'; + put 'put ''KFgsd2Upe2lmKDAhPXdlKXt2YXIgeGU9WC5yZXBsYWNlKC9bXlwvXSpbXC9dLywiL19WQkFfUFJPSkVDVF9DVVIvIik7Ii8iIT09eGUuc2xpY2UoLTEpJiZtdC51dGlscy5jZmJfYWRkKEgseGUscmUuRmlsZUluZGV4W3dlXS5jb250ZW50KX19KX0od2UsbXQucmVhZChILnZiYXJhdyx7dHlw''@;'; + put 'put ''ZToic3RyaW5nIj09dHlwZW9mIEgudmJhcmF3PyJiaW5hcnkiOiJidWZmZXIifSkpLHdlfShILFgpLFgpfShILFgpO2Nhc2UieGxzeCI6Y2FzZSJ4bHNtIjpjYXNlInhsYW0iOmNhc2UieGxzYiI6Y2FzZSJvZHMiOnJldHVybiBmdW5jdGlvbiB0NyhILHJlKXt2YXIgWD1yZXx8e30sd2U9WmQo''@;'; + put 'put ''SCxYKSx4ZT17fTtpZihYLmNvbXByZXNzaW9uJiYoeGUuY29tcHJlc3Npb249IkRFRkxBVEUiKSxYLnBhc3N3b3JkKXhlLnR5cGU9SWU/Im5vZGVidWZmZXIiOiJzdHJpbmciO2Vsc2Ugc3dpdGNoKFgudHlwZSl7Y2FzZSJiYXNlNjQiOnhlLnR5cGU9ImJhc2U2NCI7YnJlYWs7Y2FzZSJiaW5h''@;'; + put 'put ''cnkiOnhlLnR5cGU9InN0cmluZyI7YnJlYWs7Y2FzZSJzdHJpbmciOnRocm93IG5ldyBFcnJvcigiJ3N0cmluZycgb3V0cHV0IHR5cGUgaW52YWxpZCBmb3IgJyIrWC5ib29rVHlwZSsiJyBmaWxlcyIpO2Nhc2UiYnVmZmVyIjpjYXNlImZpbGUiOnhlLnR5cGU9SWU/Im5vZGVidWZmZXIiOiJz''@;'; + put 'put ''dHJpbmciO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJVbnJlY29nbml6ZWQgdHlwZSAiK1gudHlwZSl9dmFyIEZlPXdlLkZ1bGxQYXRocz9tdC53cml0ZSh3ZSx7ZmlsZVR5cGU6InppcCIsdHlwZTp7bm9kZWJ1ZmZlcjoiYnVmZmVyIixzdHJpbmc6ImJpbmFyeSJ9W3hlLnR5cGVd''@;'; + put 'put ''fHx4ZS50eXBlfSk6d2UuZ2VuZXJhdGUoeGUpO3JldHVybiBYLnBhc3N3b3JkJiZ2b2lkIDAhPT1TZj9TYyhTZihGZSxYLnBhc3N3b3JkKSxYKToiZmlsZSI9PT1YLnR5cGU/aHQoWC5maWxlLEZlKToic3RyaW5nIj09WC50eXBlP1cwKEZlKTpGZX0oSCxYKTtkZWZhdWx0OnRocm93IG5ldyBF''@;'; + put 'put ''cnJvcigiVW5yZWNvZ25pemVkIGJvb2tUeXBlIHwiK1guYm9va1R5cGUrInwiKX19ZnVuY3Rpb24gcEMoSCl7aWYoIUguYm9va1R5cGUpe3ZhciBYPUguZmlsZS5zbGljZShILmZpbGUubGFzdEluZGV4T2YoIi4iKSkudG9Mb3dlckNhc2UoKTtYLm1hdGNoKC9eXC5bYS16XSskLykmJihILmJv''@;'; + put 'put ''b2tUeXBlPVguc2xpY2UoMSkpLEguYm9va1R5cGU9e3hsczoiYmlmZjgiLGh0bToiaHRtbCIsc2xrOiJzeWxrIixzb2NpYWxjYWxjOiJldGgiLFNoMzN0SlM6IldURiJ9W0guYm9va1R5cGVdfHxILmJvb2tUeXBlfX1mdW5jdGlvbiBnQyhILHJlLFgpe3ZhciB3ZT1YfHx7fTtyZXR1cm4gd2Uu''@;'; + put 'put ''dHlwZT0iZmlsZSIsd2UuZmlsZT1yZSxwQyh3ZSksbjcoSCx3ZSl9ZnVuY3Rpb24gSzQoSCxyZSxYLHdlLHhlLEZlLFplLGplKXt2YXIgWWU9WGEoWCksTXQ9amUuZGVmdmFsLHh0PWplLnJhdyxSdD0hMCxVdD0xPT09eGU/W106e307aWYoMSE9PXhlKWlmKE9iamVjdC5kZWZpbmVQcm9wZXJ0''@;'; + put 'put ''eSl0cnl7T2JqZWN0LmRlZmluZVByb3BlcnR5KFV0LCJfX3Jvd051bV9fIix7dmFsdWU6WCxlbnVtZXJhYmxlOiExfSl9Y2F0Y2goenQpe1V0Ll9fcm93TnVtX189WH1lbHNlIFV0Ll9fcm93TnVtX189WDtpZighWmV8fEhbWF0pZm9yKHZhciBubj1yZS5zLmM7bm48PXJlLmUuYzsrK25uKXt2''@;'; + put 'put ''YXIgQ249WmU/SFtYXVtubl06SFt3ZVtubl0rWWVdO2lmKHZvaWQgMCE9PUNuJiZ2b2lkIDAhPT1Dbi50KXt2YXIgRHQ9Q24udjtzd2l0Y2goQ24udCl7Y2FzZSJ6IjppZihudWxsPT1EdClicmVhaztjb250aW51ZTtjYXNlImUiOkR0PTA9PUR0P251bGw6dm9pZCAwO2JyZWFrO2Nhc2UicyI6''@;'; + put 'put ''Y2FzZSJkIjpjYXNlImIiOmNhc2UibiI6YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoInVucmVjb2duaXplZCB0eXBlICIrQ24udCl9aWYobnVsbCE9RmVbbm5dKXtpZihudWxsPT1EdClpZigiZSI9PUNuLnQmJm51bGw9PT1EdClVdFtGZVtubl1dPW51bGw7ZWxzZSBpZih2b2lkIDAh''@;'; + put 'put ''PT1NdClVdFtGZVtubl1dPU10O2Vsc2V7aWYoIXh0fHxudWxsIT09RHQpY29udGludWU7VXRbRmVbbm5dXT1udWxsfWVsc2UgVXRbRmVbbm5dXT14dD9EdDp5MShDbixEdCxqZSk7bnVsbCE9RHQmJihSdD0hMSl9fWVsc2V7aWYodm9pZCAwPT09TXQpY29udGludWU7bnVsbCE9RmVbbm5dJiYo''@;'; + put 'put ''VXRbRmVbbm5dXT1NdCl9fXJldHVybntyb3c6VXQsaXNlbXB0eTpSdH19ZnVuY3Rpb24gTEEoSCxyZSl7aWYobnVsbD09SHx8bnVsbD09SFsiIXJlZiJdKXJldHVybltdO3ZhciBYPXt0OiJuIix2OjB9LHdlPTAseGU9MSxGZT1bXSxaZT0wLGplPSIiLFllPUpTT04ucGFyc2UoJ3sicyI6eyJy''@;'; + put 'put ''IjowLCJjIjowfSwiZSI6eyJyIjowLCJjIjowfX0nKSxNdD1yZXx8e30seHQ9bnVsbCE9TXQucmFuZ2U/TXQucmFuZ2U6SFsiIXJlZiJdO3N3aXRjaCgxPT09TXQuaGVhZGVyP3dlPTE6IkEiPT09TXQuaGVhZGVyP3dlPTI6QXJyYXkuaXNBcnJheShNdC5oZWFkZXIpP3dlPTM6bnVsbD09TXQu''@;'; + put 'put ''aGVhZGVyJiYod2U9MCksdHlwZW9mIHh0KXtjYXNlInN0cmluZyI6WWU9Rm8oeHQpO2JyZWFrO2Nhc2UibnVtYmVyIjooWWU9Rm8oSFsiIXJlZiJdKSkucy5yPXh0O2JyZWFrO2RlZmF1bHQ6WWU9eHR9d2U+MCYmKHhlPTApO3ZhciBSdD1YYShZZS5zLnIpLFV0PVtdLG5uPVtdLENuPTAsRHQ9''@;'; + put 'put ''MCx6dD1BcnJheS5pc0FycmF5KEgpLFBuPVllLnMucixUbj0wLE9uPTA7Zm9yKHp0JiYhSFtQbl0mJihIW1BuXT1bXSksVG49WWUucy5jO1RuPD1ZZS5lLmM7KytUbilzd2l0Y2goVXRbVG5dPV9hKFRuKSxYPXp0P0hbUG5dW1RuXTpIW1V0W1RuXStSdF0sd2Upe2Nhc2UgMTpGZVtUbl09VG4t''@;'; + put 'put ''WWUucy5jO2JyZWFrO2Nhc2UgMjpGZVtUbl09VXRbVG5dO2JyZWFrO2Nhc2UgMzpGZVtUbl09TXQuaGVhZGVyW1RuLVllLnMuY107YnJlYWs7ZGVmYXVsdDpmb3IobnVsbD09WCYmKFg9SlNPTi5wYXJzZSgneyJ3IjogIl9fRU1QVFkiLCAidCI6ICJzIn0nKSksamU9WmU9eTEoWCxudWxsLE10''@;'; + put 'put ''KSxEdD0wLE9uPTA7T248RmUubGVuZ3RoOysrT24pRmVbT25dPT1qZSYmKGplPVplKyJfIisgKytEdCk7RmVbVG5dPWplfWZvcihQbj1ZZS5zLnIreGU7UG48PVllLmUucjsrK1BuKXt2YXIgWW49SzQoSCxZZSxQbixVdCx3ZSxGZSx6dCxNdCk7KCExPT09WW4uaXNlbXB0eXx8KDE9PT13ZT8h''@;'; + put 'put ''MSE9PU10LmJsYW5rcm93czpNdC5ibGFua3Jvd3MpKSYmKG5uW0NuKytdPVluLnJvdyl9cmV0dXJuIG5uLmxlbmd0aD1Dbixubn12YXIgQjY9LyIvZztmdW5jdGlvbiB0aShILHJlLFgsd2UseGUsRmUsWmUsamUpe2Zvcih2YXIgWWU9ITAsTXQ9W10seHQ9IiIsUnQ9WGEoWCksVXQ9cmUucy5j''@;'; + put 'put ''O1V0PD1yZS5lLmM7KytVdClpZih3ZVtVdF0pe3ZhciBubj1qZS5kZW5zZT8oSFtYXXx8W10pW1V0XTpIW3dlW1V0XStSdF07aWYobnVsbD09bm4peHQ9IiI7ZWxzZSBpZihudWxsIT1ubi52KXtZZT0hMSx4dD0iIit5MShubixudWxsLGplKTtmb3IodmFyIENuPTAsRHQ9MDtDbiE9PXh0Lmxl''@;'; + put 'put ''bmd0aDsrK0NuKWlmKChEdD14dC5jaGFyQ29kZUF0KENuKSk9PT14ZXx8RHQ9PT1GZXx8MzQ9PT1EdCl7eHQ9JyInK3h0LnJlcGxhY2UoQjYsJyIiJykrJyInO2JyZWFrfSJJRCI9PXh0JiYoeHQ9JyJJRCInKX1lbHNlIG51bGw9PW5uLmZ8fG5uLkY/eHQ9IiI6KFllPSExLCh4dD0iPSIrbm4u''@;'; + put 'put ''ZikuaW5kZXhPZigiLCIpPj0wJiYoeHQ9JyInK3h0LnJlcGxhY2UoQjYsJyIiJykrJyInKSk7TXQucHVzaCh4dCl9cmV0dXJuITE9PT1qZS5ibGFua3Jvd3MmJlllP251bGw6TXQuam9pbihaZSl9ZnVuY3Rpb24gTDUoSCxyZSl7dmFyIFg9W10sd2U9bnVsbD09cmU/e306cmU7aWYobnVsbD09''@;'; + put 'put ''SHx8bnVsbD09SFsiIXJlZiJdKXJldHVybiIiO3ZhciB4ZT1GbyhIWyIhcmVmIl0pLEZlPXZvaWQgMCE9PXdlLkZTP3dlLkZTOiIsIixaZT1GZS5jaGFyQ29kZUF0KDApLGplPXZvaWQgMCE9PXdlLlJTP3dlLlJTOiJcbiIsWWU9amUuY2hhckNvZGVBdCgwKSxNdD1uZXcgUmVnRXhwKCgifCI9''@;'; + put 'put ''PUZlPyJcXHwiOkZlKSsiKyQiKSx4dD0iIixSdD1bXTt3ZS5kZW5zZT1BcnJheS5pc0FycmF5KEgpO2Zvcih2YXIgVXQ9d2Uuc2tpcEhpZGRlbiYmSFsiIWNvbHMiXXx8W10sbm49d2Uuc2tpcEhpZGRlbiYmSFsiIXJvd3MiXXx8W10sQ249eGUucy5jO0NuPD14ZS5lLmM7KytDbikoVXRbQ25d''@;'; + put 'put ''fHx7fSkuaGlkZGVufHwoUnRbQ25dPV9hKENuKSk7Zm9yKHZhciBEdD14ZS5zLnI7RHQ8PXhlLmUucjsrK0R0KShubltEdF18fHt9KS5oaWRkZW58fG51bGwhPSh4dD10aShILHhlLER0LFJ0LFplLFllLEZlLHdlKSkmJih3ZS5zdHJpcCYmKHh0PXh0LnJlcGxhY2UoTXQsIiIpKSxYLnB1c2go''@;'; + put 'put ''eHQramUpKTtyZXR1cm4gZGVsZXRlIHdlLmRlbnNlLFguam9pbigiIil9ZnVuY3Rpb24gbUMoSCxyZSl7cmV8fChyZT17fSkscmUuRlM9Ilx0IixyZS5SUz0iXG4iO3ZhciBYPUw1KEgscmUpO2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgY3B0YWJsZXx8InN0cmluZyI9PXJlLnR5cGUpcmV0dXJu''@;'; + put 'put ''IFg7dmFyIHdlPWNwdGFibGUudXRpbHMuZW5jb2RlKDEyMDAsWCwic3RyIik7cmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUoMjU1KStTdHJpbmcuZnJvbUNoYXJDb2RlKDI1NCkrd2V9ZnVuY3Rpb24gdkMoSCl7dmFyIFgscmU9IiIsd2U9IiI7aWYobnVsbD09SHx8bnVsbD09SFsiIXJlZiJd''@;'; + put 'put ''KXJldHVybltdO3ZhciBqZSx4ZT1GbyhIWyIhcmVmIl0pLEZlPSIiLFplPVtdLFllPVtdLE10PUFycmF5LmlzQXJyYXkoSCk7Zm9yKGplPXhlLnMuYztqZTw9eGUuZS5jOysramUpWmVbamVdPV9hKGplKTtmb3IodmFyIHh0PXhlLnMucjt4dDw9eGUuZS5yOysreHQpZm9yKEZlPVhhKHh0KSxq''@;'; + put 'put ''ZT14ZS5zLmM7amU8PXhlLmUuYzsrK2plKWlmKHJlPVplW2plXStGZSx3ZT0iIix2b2lkIDAhPT0oWD1NdD8oSFt4dF18fFtdKVtqZV06SFtyZV0pKXtpZihudWxsIT1YLkYpe2lmKHJlPVguRiwhWC5mKWNvbnRpbnVlO3dlPVguZiwtMT09cmUuaW5kZXhPZigiOiIpJiYocmU9cmUrIjoiK3Jl''@;'; + put 'put ''KX1pZihudWxsIT1YLmYpd2U9WC5mO2Vsc2V7aWYoInoiPT1YLnQpY29udGludWU7aWYoIm4iPT1YLnQmJm51bGwhPVgudil3ZT0iIitYLnY7ZWxzZSBpZigiYiI9PVgudCl3ZT1YLnY/IlRSVUUiOiJGQUxTRSI7ZWxzZSBpZih2b2lkIDAhPT1YLncpd2U9IiciK1gudztlbHNle2lmKHZvaWQg''@;'; + put 'put ''MD09PVgudiljb250aW51ZTt3ZT0icyI9PVgudD8iJyIrWC52OiIiK1gudn19WWVbWWUubGVuZ3RoXT1yZSsiPSIrd2V9cmV0dXJuIFllfWZ1bmN0aW9uIGdUKEgscmUsWCl7dmFyIHdlPVh8fHt9LHhlPSshd2Uuc2tpcEhlYWRlcixGZT1IfHx7fSxaZT0wLGplPTA7aWYoRmUmJm51bGwhPXdl''@;'; + put 'put ''Lm9yaWdpbilpZigibnVtYmVyIj09dHlwZW9mIHdlLm9yaWdpbilaZT13ZS5vcmlnaW47ZWxzZXt2YXIgWWU9InN0cmluZyI9PXR5cGVvZiB3ZS5vcmlnaW4/dWwod2Uub3JpZ2luKTp3ZS5vcmlnaW47WmU9WWUucixqZT1ZZS5jfXZhciBNdCx4dD1KU09OLnBhcnNlKCd7InMiOiB7ImMiOjAs''@;'; + put 'put ''ICJyIjowfSwgImUiOiB7ImMiOjAsICJyIjowfX0nKTtpZih4dC5lLmM9amUseHQuZS5yPVplK3JlLmxlbmd0aC0xK3hlLEZlWyIhcmVmIl0pe3ZhciBSdD1GbyhGZVsiIXJlZiJdKTt4dC5lLmM9TWF0aC5tYXgoeHQuZS5jLFJ0LmUuYykseHQuZS5yPU1hdGgubWF4KHh0LmUucixSdC5lLnIp''@;'; + put 'put ''LC0xPT1aZSYmKHh0LmUucj0oWmU9UnQuZS5yKzEpK3JlLmxlbmd0aC0xK3hlKX1lbHNlLTE9PVplJiYoWmU9MCx4dC5lLnI9cmUubGVuZ3RoLTEreGUpO3ZhciBVdD13ZS5oZWFkZXJ8fFtdLG5uPTA7cmUuZm9yRWFjaChmdW5jdGlvbihEdCx6dCl7b24oRHQpLmZvckVhY2goZnVuY3Rpb24o''@;'; + put 'put ''UG4pey0xPT0obm49VXQuaW5kZXhPZihQbikpJiYoVXRbbm49VXQubGVuZ3RoXT1Qbik7dmFyIFRuPUR0W1BuXSxPbj0ieiIsWW49IiIsTXI9WTAoe2M6amUrbm4scjpaZSt6dCt4ZX0pO2lmKE10PWFjLnNoZWV0X2dldF9jZWxsKEZlLE1yKSwhVG58fCJvYmplY3QiIT10eXBlb2YgVG58fFRu''@;'; + put 'put ''IGluc3RhbmNlb2YgRGF0ZSl7aWYoIm51bWJlciI9PXR5cGVvZiBUbj9Pbj0ibiI6ImJvb2xlYW4iPT10eXBlb2YgVG4/T249ImIiOiJzdHJpbmciPT10eXBlb2YgVG4/T249InMiOlRuIGluc3RhbmNlb2YgRGF0ZT8oT249ImQiLHdlLmNlbGxEYXRlc3x8KE9uPSJuIixUbj1mdChUbikpLFlu''@;'; + put 'put ''PU10LnomJkYuaXNfZGF0ZShNdC56KT9NdC56OndlLmRhdGVORnx8Ri5fdGFibGVbMTRdKTpudWxsPT09VG4mJndlLm51bGxFcnJvciYmKE9uPSJlIixUbj0wKSxNdD8oTXQudD1PbixNdC52PVRuLGRlbGV0ZSBNdC53LGRlbGV0ZSBNdC5SLFluJiYoTXQuej1ZbikpOkZlW01yXT1NdD17dDpP''@;'; + put 'put ''bix2OlRufSxZbiYmKE10Lno9WW4pLE10JiZNdC5oKXRyeXtpZihNdC5SPXVzLmh0bWxfdG9fcnMoTXQuaCksIU10LnYpe010LnY9IiI7Zm9yKHZhciBhaT0wO2FpPE10LlIubGVuZ3RoOysrYWkpTXQudis9TXQuUlthaV0udnx8IiJ9fWNhdGNoKHlyKXt9fWVsc2UgRmVbTXJdPVRufSl9KSx4''@;'; + put 'put ''dC5lLmM9TWF0aC5tYXgoeHQuZS5jLGplK1V0Lmxlbmd0aC0xKTt2YXIgQ249WGEoWmUpO2lmKHhlKWZvcihubj0wO25uPFV0Lmxlbmd0aDsrK25uKUZlW19hKG5uK2plKStDbl09e3Q6InMiLHY6VXRbbm5dfTtyZXR1cm4gRmVbIiFyZWYiXT1mYSh4dCksRmV9dmFyIGFjPXtlbmNvZGVfY29s''@;'; + put 'put ''Ol9hLGVuY29kZV9yb3c6WGEsZW5jb2RlX2NlbGw6WTAsZW5jb2RlX3JhbmdlOmZhLGRlY29kZV9jb2w6bWgsZGVjb2RlX3JvdzphcyxzcGxpdF9jZWxsOmZ1bmN0aW9uIHNsKEgpe3JldHVybiBILnJlcGxhY2UoLyhcJD9bQS1aXSopKFwkP1xkKikvLCIkMSwkMiIpLnNwbGl0KCIsIil9LGRl''@;'; + put 'put ''Y29kZV9jZWxsOnVsLGRlY29kZV9yYW5nZTp2cyxmb3JtYXRfY2VsbDp5MSxnZXRfZm9ybXVsYWU6dkMsbWFrZV9jc3Y6TDUsbWFrZV9qc29uOkxBLG1ha2VfZm9ybXVsYWU6dkMsaHRtbF90b19yczp1cy5odG1sX3RvX3JzLHNoZWV0X2FkZF9hb2E6bGYsc2hlZXRfYWRkX2pzb246Z1Qsc2hl''@;'; + put 'put ''ZXRfYWRkX2RvbTpWaCxhb2FfdG9fc2hlZXQ6dmQsanNvbl90b19zaGVldDpmdW5jdGlvbiBDRyhILHJlKXtyZXR1cm4gZ1QobnVsbCxILHJlKX0sdGFibGVfdG9fc2hlZXQ6ckMsdGFibGVfdG9fYm9vazpmdW5jdGlvbiBUNShILHJlKXtyZXR1cm4gdzEockMoSCxyZSkscmUpfSxzaGVldF90''@;'; + put 'put ''b19jc3Y6TDUsc2hlZXRfdG9fdHh0Om1DLHNoZWV0X3RvX2pzb246TEEsc2hlZXRfdG9faHRtbDp1cy5mcm9tX3NoZWV0LHNoZWV0X3RvX2Zvcm11bGFlOnZDLHNoZWV0X3RvX3Jvd19vYmplY3RfYXJyYXk6TEF9O2Z1bmN0aW9uIFZzKEgscmUsWCx3ZSx4ZSl7dmFyIEZlO2lmKEguc3R5bGUm''@;'; + put 'put ''JiEoSC5fcmFuZ2UmJihGZT0ic3RyaW5nIj09dHlwZW9mIEguX3JhbmdlP1UudXRpbHMuZGVjb2RlX3JhbmdlKEguX3JhbmdlKTpILl9yYW5nZSxYLmM+RmUuZS5jfHxYLmM8RmUucy5jfHxYLnI+RmUuZS5yfHxYLnI8RmUucy5yKSkmJkZlKXt2YXIgWmU9SC5zdHlsZS5zdHlsZTtpZihaZSl7''@;'; + put 'put ''WmUud2hvbGVUYWJsZSYmYWMuYXBwbHlfc3R5bGVfZGVsdGEod2UsWmUud2hvbGVUYWJsZSk7ZTppZihaZS5oZWFkZXJSb3cpaWYoeGUpe2lmKFguciE9RmUucy5yKWJyZWFrIGU7bnIoSC5zdHlsZS5jb2xoZWFkKXx8YWMuYXBwbHlfc3R5bGVfZGVsdGEod2UsWmUuaGVhZGVyUm93KX1lbHNl''@;'; + put 'put ''e2lmKFguciE9RmUucy5yKWJyZWFrIGU7bnIoSC5oZWFkZXIpfHxhYy5hcHBseV9zdHlsZV9kZWx0YSh3ZSxaZS5oZWFkZXJSb3cpfX19fXZvaWQgMCE9PWRUJiYoYWMudGVzdF9wYXNzd29yZD1kVCksdm9pZCAwIT09TGkmJihhYy5oYXNoX3Bhc3N3b3JkPUxpKSxhYy5zaGVldF9zZXRfcmFu''@;'; + put 'put ''Z2Vfc3R5bGU9ZnVuY3Rpb24oSCxyZSxYKXtpZihYKXt2YXIgd2U9InN0cmluZyI9PXR5cGVvZiByZT9GbyhyZSk6cmU7bnVsbCE9d2UuciYmbnVsbCE9d2UuYyYmKHdlPXtzOndlLGU6d2V9KTt2YXIgamUseGU9d2Uucy5yLEZlPTAsWmU9IiIsWWU9dnMoSFsiIXJlZiJdfHwiQTEiKTtZZS5z''@;'; + put 'put ''LnI+d2Uucy5yJiYoWWUucy5yPXdlLnMuciksWWUucy5jPndlLnMuYyYmKFllLnMuYz13ZS5zLmMpLFllLmUucjx3ZS5lLnImJihZZS5lLnI9d2UuZS5yKSxZZS5lLmM8d2UuZS5jJiYoWWUuZS5jPXdlLmUuYyksSFsiIXJlZiJdPWZhKFllKTtmb3IodmFyIHh0PUFycmF5LmlzQXJyYXkoSCk7''@;'; + put 'put ''eGU8PXdlLmUucjsrK3hlKWZvcihGZT13ZS5zLmM7RmU8PXdlLmUuYzsrK0ZlKXh0PyhIW3hlXXx8KEhbeGVdPVtdKSxIW3hlXVtGZV18fChIW3hlXVtGZV09e3Q6InoifSksamU9SFt4ZV1bRmVdKTooSFtaZT1ZMCh7cjp4ZSxjOkZlfSldfHwoSFtaZV09e3Q6InoifSksamU9SFtaZV0pLGpl''@;'; + put 'put ''LnN8fChqZS5zPXt9KSxPYmplY3Qua2V5cyhYKS5mb3JFYWNoKE10KSxqZS5zLnBhdHRlcm5UeXBlJiYhamUucy5mZ0NvbG9yJiYoZGVsZXRlIGplLnMucGF0dGVyblR5cGUsZGVsZXRlIGplLnMuYmdDb2xvciksKGplLnMuZmdDb2xvcnx8amUucy5iZ0NvbG9yKSYmIm5vbmUiPT0oamUucy5w''@;'; + put 'put ''YXR0ZXJuVHlwZXx8Im5vbmUiKSYmKGplLnMucGF0dGVyblR5cGU9InNvbGlkIik7aWYoeGU9d2Uucy5yLFgudG9wfHxudWxsPT09WC50b3ApZm9yKEZlPXdlLnMuYztGZTw9d2UuZS5jOysrRmUpe2lmKHh0KXtpZighSFt4ZV0pY29udGludWU7amU9SFt4ZV1bRmVdfWVsc2UgWmU9WTAoe3I6''@;'; + put 'put ''eGUsYzpGZX0pLGplPUhbWmVdOyFqZXx8KG51bGw9PT1YLnRvcD9kZWxldGUgamUucy50b3A6amUucy50b3A9bG4oWC50b3ApKX1pZih4ZT13ZS5lLnIsWC5ib3R0b218fG51bGw9PT1YLmJvdHRvbSlmb3IoRmU9d2Uucy5jO0ZlPD13ZS5lLmM7KytGZSl7aWYoeHQpe2lmKCFIW3hlXSljb250''@;'; + put 'put ''aW51ZTtqZT1IW3hlXVtGZV19ZWxzZSBaZT1ZMCh7cjp4ZSxjOkZlfSksamU9SFtaZV07IWplfHwobnVsbD09PVguYm90dG9tP2RlbGV0ZSBqZS5zLmJvdHRvbTpqZS5zLmJvdHRvbT1sbihYLmJvdHRvbSkpfWlmKEZlPXdlLnMuYyxYLmxlZnR8fG51bGw9PT1YLmxlZnQpZm9yKHhlPXdlLnMu''@;'; + put 'put ''cjt4ZTw9d2UuZS5yOysreGUpe2lmKHh0KXtpZighSFt4ZV0pY29udGludWU7amU9SFt4ZV1bRmVdfWVsc2UgWmU9WTAoe3I6eGUsYzpGZX0pLGplPUhbWmVdOyFqZXx8KG51bGw9PT1YLmxlZnQ/ZGVsZXRlIGplLnMubGVmdDpqZS5zLmxlZnQ9bG4oWC5sZWZ0KSl9aWYoRmU9d2UuZS5jLFgu''@;'; + put 'put ''cmlnaHR8fG51bGw9PT1YLnJpZ2h0KWZvcih4ZT13ZS5zLnI7eGU8PXdlLmUucjsrK3hlKXtpZih4dCl7aWYoIUhbeGVdKWNvbnRpbnVlO2plPUhbeGVdW0ZlXX1lbHNlIFplPVkwKHtyOnhlLGM6RmV9KSxqZT1IW1plXTshamV8fChudWxsPT09WC5yaWdodD9kZWxldGUgamUucy5yaWdodDpq''@;'; + put 'put ''ZS5zLnJpZ2h0PWxuKFgucmlnaHQpKX19ZnVuY3Rpb24gTXQoUnQpe2lmKCJ0b3AiIT1SdCYmImJvdHRvbSIhPVJ0JiYibGVmdCIhPVJ0JiYicmlnaHQiIT1SdCl7aWYoInoiPT1SdClyZXR1cm4gdm9pZChqZS56PVgueik7aWYoImFsaWdubWVudCI9PVJ0KXJldHVybiB2b2lkKGplLnNbUnRd''@;'; + put 'put ''P09iamVjdC5rZXlzKFhbUnRdKS5mb3JFYWNoKGZ1bmN0aW9uKFV0KXtqZS5zW1J0XVtVdF09WFtSdF1bVXRdfSk6amUuc1tSdF09bG4oWFtSdF0pKTtpZigiaW5jb2wiPT1SdClyZXR1cm4gRmU+d2Uucy5jJiYobnVsbD09PVgubGVmdD9kZWxldGUgamUucy5sZWZ0OmplLnMubGVmdD0ib2Jq''@;'; + put 'put ''ZWN0Ij09dHlwZW9mIFhbUnRdP2xuKFhbUnRdKTpYW1J0XSksdm9pZChGZTx3ZS5lLmMmJihudWxsPT09WC5yaWdodD9kZWxldGUgamUucy5yaWdodDpqZS5zLnJpZ2h0PSJvYmplY3QiPT10eXBlb2YgWFtSdF0/bG4oWFtSdF0pOlhbUnRdKSk7aWYoImlucm93Ij09UnQpcmV0dXJuIHhlPndl''@;'; + put 'put ''LnMuciYmKG51bGw9PT1YLnRvcD9kZWxldGUgamUucy50b3A6amUucy50b3A9Im9iamVjdCI9PXR5cGVvZiBYW1J0XT9sbihYW1J0XSk6WFtSdF0pLHZvaWQoeGU8d2UuZS5yJiYobnVsbD09PVguYm90dG9tP2RlbGV0ZSBqZS5zLmJvdHRvbTpqZS5zLmJvdHRvbT0ib2JqZWN0Ij09dHlwZW9m''@;'; + put 'put ''IFhbUnRdP2xuKFhbUnRdKTpYW1J0XSkpO251bGw9PT1YW1J0XT9kZWxldGUgamUuc1tSdF06amUuc1tSdF09WFtSdF0mJkFycmF5LmlzQXJyYXkoWFtSdF0pP1hbUnRdLnNsaWNlKCkubWFwKGZ1bmN0aW9uKFV0KXtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIFV0P2xuKFV0KTpVdH0pOiJvYmpl''@;'; + put 'put ''Y3QiPT10eXBlb2YgWFtSdF0/bG4oWFtSdF0pOlhbUnRdfX19LGFjLmFwcGx5X3N0eWxlX2RlbHRhPWZ1bmN0aW9uKEgscmUpe1sic3oiLCJib2xkIiwiaXRhbGljIiwidW5kZXJsaW5lIiwic3RyaWtlIiwibmFtZSIsInZhbGlnbiJdLmZvckVhY2goZnVuY3Rpb24oWCl7dmFyIHdlPVg7ImJn''@;'; + put 'put ''Q29sb3IiPT1YP3dlPSJmZ0NvbG9yIjoiZmdDb2xvciI9PVgmJih3ZT0iYmdDb2xvciIpLE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChyZSxYKSYmKG51bGw9PT1yZVtYXT9kZWxldGUgSFt3ZV06bnVsbCE9cmVbWF0mJihIW3dlXT1yZVtYXSkpfSksWyJsZWZ0Iiwicmln''@;'; + put 'put ''aHQiLCJ0b3AiLCJib3R0b20iLCJhbGlnbm1lbnQiLCJwcm90ZWN0aW9uIiwiY29sb3IiLCJmZ0NvbG9yIiwiYmdDb2xvciJdLmZvckVhY2goZnVuY3Rpb24oWCl7T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHJlLFgpJiYobnVsbD09PXJlW1hdP2RlbGV0ZSBIW1hdOm51''@;'; + put 'put ''bGwhPXJlW1hdJiYoSFtYXT1sbihyZVtYXSkpKX0pfSxhYy5nZXRfY29tcHV0ZWRfc3R5bGU9ZnVuY3Rpb24oSCxyZSl7InN0cmluZyI9PXR5cGVvZiByZSYmKHJlPVUudXRpbHMuZGVjb2RlX2NlbGwocmUpKTt2YXIgWD1BcnJheS5pc0FycmF5KEgpPyhIW3JlLnJdfHxbXSlbcmUuY106SFtV''@;'; + put 'put ''LnV0aWxzLmVuY29kZV9jZWxsKHJlKV0sd2U9bG4oWCYmWC5zfHx7fSk7cmV0dXJuIEhbIiF0YWJsZXMiXSYmSFsiIXRhYmxlcyJdLmZvckVhY2goZnVuY3Rpb24oeGUpe1ZzKHhlLDAscmUsd2UpfSksSFsiIXBpdm90cyJdJiZIWyIhcGl2b3RzIl0uZm9yRWFjaChmdW5jdGlvbih4ZSl7VnMo''@;'; + put 'put ''eGUsMCxyZSx3ZSwhMCl9KSx3ZX07dmFyIFozPXt9O2FjLmNlbGxfYXJyYXlfdG9fY3N2X3Jvdz1mdW5jdGlvbihILHJlKXt2YXIgWD1udWxsPT1yZT97fTpyZSx3ZT12b2lkIDAhPT1YLkZTP1guRlM6IiwiLHhlPXdlLmNoYXJDb2RlQXQoMCksRmU9dm9pZCAwIT09WC5SUz9YLlJTOiJcbiIs''@;'; + put 'put ''WmU9RmUuY2hhckNvZGVBdCgwKSxqZT1aM1t3ZV18fChaM1t3ZV09bmV3IFJlZ0V4cCgoInwiPT13ZT8iXFx8Ijp3ZSkrIiskIikpLFllPWZ1bmN0aW9uIEdkKEgscmUsWCx3ZSx4ZSl7Zm9yKHZhciBGZT0hMCxaZT1bXSxqZT0iIixZZT0wO1llPD1ILmxlbmd0aC0xOysrWWUpe3ZhciBNdD1I''@;'; + put 'put ''W1llXTtpZihudWxsPT1NdClqZT0iIjtlbHNlIGlmKG51bGwhPU10LnYpe0ZlPSExLGplPSIiK3kxKE10LG51bGwseGUpO2Zvcih2YXIgeHQ9MCxSdD0wO3h0IT09amUubGVuZ3RoOysreHQpaWYoKFJ0PWplLmNoYXJDb2RlQXQoeHQpKT09PXJlfHxSdD09PVh8fDM0PT09UnQpe2plPSciJytq''@;'; + put 'put ''ZS5yZXBsYWNlKEI2LCciIicpKyciJzticmVha30iSUQiPT1qZSYmKGplPSciSUQiJyl9ZWxzZSBudWxsPT1NdC5mfHxNdC5GP2plPSIiOihGZT0hMSwoamU9Ij0iK010LmYpLmluZGV4T2YoIiwiKT49MCYmKGplPSciJytqZS5yZXBsYWNlKEI2LCciIicpKyciJykpO1plLnB1c2goamUpfXJl''@;'; + put 'put ''dHVybiExPT09eGUuYmxhbmtyb3dzJiZGZT9udWxsOlplLmpvaW4od2UpfShILHhlLFplLHdlLFgpO3JldHVybiBYLnN0cmlwJiYoWWU9WWUucmVwbGFjZShqZSwiIikpLFllK0ZlfSxmdW5jdGlvbihIKXtmdW5jdGlvbiBYKEZlLFplLGplKXtyZXR1cm4gbnVsbCE9RmVbWmVdP0ZlW1plXTpG''@;'; + put 'put ''ZVtaZV09amV9ZnVuY3Rpb24gd2UoRmUsWmUsamUpe2lmKCJzdHJpbmciPT10eXBlb2YgWmUpe2lmKEFycmF5LmlzQXJyYXkoRmUpKXt2YXIgWWU9dWwoWmUpO3JldHVybiBGZVtZZS5yXXx8KEZlW1llLnJdPVtdKSxGZVtZZS5yXVtZZS5jXXx8KEZlW1llLnJdW1llLmNdPXt0OiJ6In0pfXJl''@;'; + put 'put ''dHVybiBGZVtaZV18fChGZVtaZV09e3Q6InoifSl9cmV0dXJuIHdlKEZlLFkwKCJudW1iZXIiIT10eXBlb2YgWmU/WmU6e3I6WmUsYzpqZXx8MH0pKX1ILmNvbnN0cz1ILmNvbnN0c3x8e30sSC5zaGVldF9nZXRfY2VsbD13ZSxILmJvb2tfbmV3PWZ1bmN0aW9uKCl7cmV0dXJue1NoZWV0TmFt''@;'; + put 'put ''ZXM6W10sU2hlZXRzOnt9fX0sSC5ib29rX2FwcGVuZF9zaGVldD1mdW5jdGlvbihGZSxaZSxqZSl7aWYoIWplKWZvcih2YXIgWWU9MTtZZTw9NjU1MzUmJi0xIT1GZS5TaGVldE5hbWVzLmluZGV4T2YoamU9IlNoZWV0IitZZSk7KytZZSk7aWYoVngoamUpLEZlLlNoZWV0TmFtZXMuaW5kZXhP''@;'; + put 'put ''ZihqZSk+PTApdGhyb3cgbmV3IEVycm9yKCJXb3Jrc2hlZXQgd2l0aCBuYW1lIHwiK2plKyJ8IGFscmVhZHkgZXhpc3RzISIpO0ZlLlNoZWV0TmFtZXMucHVzaChqZSksRmUuU2hlZXRzW2plXT1aZX0sSC5ib29rX3NldF9zaGVldF92aXNpYmlsaXR5PWZ1bmN0aW9uKEZlLFplLGplKXtYKEZl''@;'; + put 'put ''LCJXb3JrYm9vayIse30pLFgoRmUuV29ya2Jvb2ssIlNoZWV0cyIsW10pO3ZhciBZZT1mdW5jdGlvbiB4ZShGZSxaZSl7aWYoIm51bWJlciI9PXR5cGVvZiBaZSl7aWYoWmU+PTAmJkZlLlNoZWV0TmFtZXMubGVuZ3RoPlplKXJldHVybiBaZTt0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBmaW5k''@;'; + put 'put ''IHNoZWV0ICMgIitaZSl9aWYoInN0cmluZyI9PXR5cGVvZiBaZSl7dmFyIGplPUZlLlNoZWV0TmFtZXMuaW5kZXhPZihaZSk7aWYoamU+LTEpcmV0dXJuIGplO3Rocm93IG5ldyBFcnJvcigiQ2Fubm90IGZpbmQgc2hlZXQgbmFtZSB8IitaZSsifCIpfXRocm93IG5ldyBFcnJvcigiQ2Fubm90''@;'; + put 'put ''IGZpbmQgc2hlZXQgfCIrWmUrInwiKX0oRmUsWmUpO3N3aXRjaChYKEZlLldvcmtib29rLlNoZWV0cyxZZSx7fSksamUpe2Nhc2UgMDpjYXNlIDE6Y2FzZSAyOmJyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJCYWQgc2hlZXQgdmlzaWJpbGl0eSBzZXR0aW5nICIramUpfUZlLldvcmti''@;'; + put 'put ''b29rLlNoZWV0c1tZZV0uSGlkZGVuPWplfSxmdW5jdGlvbiByZShGZSl7RmUuZm9yRWFjaChmdW5jdGlvbihaZSl7SC5jb25zdHNbWmVbMF1dPVplWzFdfSl9KFtbIlNIRUVUX1ZJU0lCTEUiLDBdLFsiU0hFRVRfSElEREVOIiwxXSxbIlNIRUVUX1ZFUllfSElEREVOIiwyXV0pLEguY2VsbF9z''@;'; + put 'put ''ZXRfbnVtYmVyX2Zvcm1hdD1mdW5jdGlvbihGZSxaZSl7cmV0dXJuIEZlLno9WmUsRmV9LEguY2VsbF9zZXRfaHlwZXJsaW5rPWZ1bmN0aW9uKEZlLFplLGplKXtyZXR1cm4gWmU/KEZlLmw9e1RhcmdldDpaZX0samUmJihGZS5sLlRvb2x0aXA9amUpLEZlLnN8fChGZS5zPXt9KSxGZS5zLmNv''@;'; + put 'put ''bG9yPXt0aGVtZToxMH0pOihkZWxldGUgRmUubCxGZS5zJiZGZS5zLmNvbG9yJiYxMD09RmUucy5jb2xvci50aGVtZSYmZGVsZXRlIEZlLnMuY29sb3IpLEZlfSxILmNlbGxfc2V0X2ludGVybmFsX2xpbms9ZnVuY3Rpb24oRmUsWmUsamUpe3JldHVybiBILmNlbGxfc2V0X2h5cGVybGluayhG''@;'; + put 'put ''ZSwiIyIrWmUsamUpfSxILmNlbGxfYWRkX2NvbW1lbnQ9ZnVuY3Rpb24oRmUsWmUsamUpe0ZlLmN8fChGZS5jPVtdKSxGZS5jLnB1c2goe3Q6WmUsYTpqZXx8IlNoZWV0SlMifSl9LEguc2hlZXRfc2V0X2FycmF5X2Zvcm11bGE9ZnVuY3Rpb24oRmUsWmUsamUpe2Zvcih2YXIgWWU9InN0cmlu''@;'; + put 'put ''ZyIhPXR5cGVvZiBaZT9aZTpGbyhaZSksTXQ9InN0cmluZyI9PXR5cGVvZiBaZT9aZTpmYShaZSkseHQ9WWUucy5yO3h0PD1ZZS5lLnI7Kyt4dClmb3IodmFyIFJ0PVllLnMuYztSdDw9WWUuZS5jOysrUnQpe3ZhciBVdD13ZShGZSx4dCxSdCk7VXQudD0ibiIsVXQuRj1NdCxkZWxldGUgVXQu''@;'; + put 'put ''dix4dD09WWUucy5yJiZSdD09WWUucy5jJiYoVXQuZj1qZSl9cmV0dXJuIEZlfX0oYWMpLEllJiZmdW5jdGlvbigpe3ZhciBIPUwoMjk1KS5SZWFkYWJsZTtVLnN0cmVhbT17dG9fanNvbjpmdW5jdGlvbih4ZSxGZSl7dmFyIFplPUgoe29iamVjdE1vZGU6ITB9KTtpZihudWxsPT14ZXx8bnVs''@;'; + put 'put ''bD09eGVbIiFyZWYiXSlyZXR1cm4gWmUucHVzaChudWxsKSxaZTt2YXIgamU9e3Q6Im4iLHY6MH0sWWU9MCxNdD0xLHh0PVtdLFJ0PTAsVXQ9IiIsbm49e3M6e3I6MCxjOjB9LGU6e3I6MCxjOjB9fSxDbj1GZXx8e30sRHQ9bnVsbCE9Q24ucmFuZ2U/Q24ucmFuZ2U6eGVbIiFyZWYiXTtzd2l0''@;'; + put 'put ''Y2goMT09PUNuLmhlYWRlcj9ZZT0xOiJBIj09PUNuLmhlYWRlcj9ZZT0yOkFycmF5LmlzQXJyYXkoQ24uaGVhZGVyKSYmKFllPTMpLHR5cGVvZiBEdCl7Y2FzZSJzdHJpbmciOm5uPUZvKER0KTticmVhaztjYXNlIm51bWJlciI6KG5uPUZvKHhlWyIhcmVmIl0pKS5zLnI9RHQ7YnJlYWs7ZGVm''@;'; + put 'put ''YXVsdDpubj1EdH1ZZT4wJiYoTXQ9MCk7dmFyIHp0PVhhKG5uLnMuciksUG49W10sVG49MCxPbj1BcnJheS5pc0FycmF5KHhlKSxZbj1ubi5zLnIsTXI9MCxhaT0wO2ZvcihPbiYmIXhlW1luXSYmKHhlW1luXT1bXSksTXI9bm4ucy5jO01yPD1ubi5lLmM7KytNcilzd2l0Y2goUG5bTXJdPV9h''@;'; + put 'put ''KE1yKSxqZT1Pbj94ZVtZbl1bTXJdOnhlW1BuW01yXSt6dF0sWWUpe2Nhc2UgMTp4dFtNcl09TXItbm4ucy5jO2JyZWFrO2Nhc2UgMjp4dFtNcl09UG5bTXJdO2JyZWFrO2Nhc2UgMzp4dFtNcl09Q24uaGVhZGVyW01yLW5uLnMuY107YnJlYWs7ZGVmYXVsdDpmb3IobnVsbD09amUmJihqZT17''@;'; + put 'put ''dzoiX19FTVBUWSIsdDoicyJ9KSxVdD1SdD15MShqZSxudWxsLENuKSxUbj0wLGFpPTA7YWk8eHQubGVuZ3RoOysrYWkpeHRbYWldPT1VdCYmKFV0PVJ0KyJfIisgKytUbik7eHRbTXJdPVV0fXJldHVybiBZbj1ubi5zLnIrTXQsWmUuX3JlYWQ9ZnVuY3Rpb24oKXtpZihZbj5ubi5lLnIpcmV0''@;'; + put 'put ''dXJuIFplLnB1c2gobnVsbCk7Zm9yKDtZbjw9bm4uZS5yOyl7dmFyIHlyPUs0KHhlLG5uLFluLFBuLFllLHh0LE9uLENuKTtpZigrK1luLCExPT09eXIuaXNlbXB0eXx8KDE9PT1ZZT8hMSE9PUNuLmJsYW5rcm93czpDbi5ibGFua3Jvd3MpKXtaZS5wdXNoKHlyLnJvdyk7YnJlYWt9fX0sWmV9''@;'; + put 'put ''LHRvX2h0bWw6ZnVuY3Rpb24oeGUsRmUpe3ZhciBaZT1IKCksamU9RmV8fHt9LE10PW51bGwhPWplLmZvb3Rlcj9qZS5mb290ZXI6dXMuRU5EO1plLnB1c2gobnVsbCE9amUuaGVhZGVyP2plLmhlYWRlcjp1cy5CRUdJTik7dmFyIHh0PXZzKHhlWyIhcmVmIl0pO2plLmRlbnNlPUFycmF5Lmlz''@;'; + put 'put ''QXJyYXkoeGUpLFplLnB1c2godXMuX3ByZWFtYmxlKHhlLHh0LGplKSk7dmFyIFJ0PXh0LnMucixVdD0hMSxubj1bXTtyZXR1cm4gWmUuX3JlYWQ9ZnVuY3Rpb24oKXtpZihSdD54dC5lLnIpcmV0dXJuIFV0fHwoVXQ9ITAsWmUucHVzaCgiPC90YWJsZT4iK010KSksWmUucHVzaChudWxsKTtm''@;'; + put 'put ''b3IoO1J0PD14dC5lLnI7KXtaZS5wdXNoKHVzLl9yb3coeGUseHQsUnQsamUsbm4sIiIpKSwrK1J0O2JyZWFrfX0sWmV9LHRvX2NzdjpmdW5jdGlvbih4ZSxGZSl7dmFyIFplPUgoKSxqZT1udWxsPT1GZT97fTpGZTtpZihudWxsPT14ZXx8bnVsbD09eGVbIiFyZWYiXSlyZXR1cm4gWmUucHVz''@;'; + put 'put ''aChudWxsKSxaZTt2YXIgWWU9Rm8oeGVbIiFyZWYiXSksTXQ9dm9pZCAwIT09amUuRlM/amUuRlM6IiwiLHh0PU10LmNoYXJDb2RlQXQoMCksUnQ9dm9pZCAwIT09amUuUlM/amUuUlM6IlxuIixVdD1SdC5jaGFyQ29kZUF0KDApLG5uPW5ldyBSZWdFeHAoKCJ8Ij09TXQ/IlxcfCI6TXQpKyIr''@;'; + put 'put ''JCIpLENuPSIiLER0PVtdO2plLmRlbnNlPUFycmF5LmlzQXJyYXkoeGUpO2Zvcih2YXIgenQ9amUuc2tpcEhpZGRlbiYmeGVbIiFjb2xzIl18fFtdLFBuPWplLnNraXBIaWRkZW4mJnhlWyIhcm93cyJdfHxbXSxUbj1ZZS5zLmM7VG48PVllLmUuYzsrK1RuKSh6dFtUbl18fHt9KS5oaWRkZW58''@;'; + put 'put ''fChEdFtUbl09X2EoVG4pKTt2YXIgT249WWUucy5yLFluPSExO3JldHVybiBaZS5fcmVhZD1mdW5jdGlvbigpe2lmKCFZbilyZXR1cm4gWW49ITAsWmUucHVzaCgiXHVmZWZmIik7Zm9yKDtPbjw9WWUuZS5yOylpZigrK09uLCEoUG5bT24tMV18fHt9KS5oaWRkZW4mJm51bGwhPShDbj10aSh4''@;'; + put 'put ''ZSxZZSxPbi0xLER0LHh0LFV0LE10LGplKSkpe2plLnN0cmlwJiYoQ249Q24ucmVwbGFjZShubiwiIikpLFplLnB1c2goQ24rUnQpO2JyZWFrfXJldHVybiBPbj5ZZS5lLnI/WmUucHVzaChudWxsKTp2b2lkIDB9LFplfX19KCksdm9pZCAwIT09VW0mJihVLnBhcnNlX3hsc2NmYj1VbSksVS5w''@;'; + put 'put ''YXJzZV96aXA9S20sVS5yZWFkPXpkLFUucmVhZEZpbGU9ZTcsVS5yZWFkRmlsZVN5bmM9ZTcsVS53cml0ZT1uNyxVLndyaXRlRmlsZT1nQyxVLndyaXRlRmlsZVN5bmM9Z0MsVS53cml0ZUZpbGVBc3luYz1mdW5jdGlvbiBVUChILHJlLFgsd2Upe3ZhciB4ZT1YfHx7fTt4ZS50eXBlPSJmaWxl''@;'; + put 'put ''Iix4ZS5maWxlPUgscEMoeGUpLHhlLnR5cGU9ImJ1ZmZlciI7dmFyIEZlPXdlO3JldHVybiBGZSBpbnN0YW5jZW9mIEZ1bmN0aW9ufHwoRmU9WCksdnQud3JpdGVGaWxlKEgsbjcocmUseGUpLEZlKX0sVS5zZXRfZGF0ZV9zdHlsZT1mdW5jdGlvbiB5dChIKXtzd2l0Y2goSCl7Y2FzZSAwOkdl''@;'; + put 'put ''KCk7YnJlYWs7Y2FzZSAxOiFmdW5jdGlvbiBVZSgpe3ZhciBIPW5ldyBEYXRlO0N0PUx0LmdldFRpbWUoKSs2ZTQqKEguZ2V0VGltZXpvbmVPZmZzZXQoKS1MdC5nZXRUaW1lem9uZU9mZnNldCgpKTt2YXIgcmU9SC5nZXRUaW1lem9uZU9mZnNldCgpO2Z0PWZ1bmN0aW9uKHdlLHhlKXt2YXIg''@;'; + put 'put ''RmU9d2UuZ2V0VGltZSgpO3JldHVybiB4ZSYmKEZlLT0xMjYzMTY4ZTUpLChGZS0oTHQuZ2V0VGltZSgpKzZlNCood2UuZ2V0VGltZXpvbmVPZmZzZXQoKS1MdC5nZXRUaW1lem9uZU9mZnNldCgpKSkpLzg2NGU1fSxIdD1mdW5jdGlvbih3ZSl7dmFyIHhlPW5ldyBEYXRlO3JldHVybiB4ZS5z''@;'; + put 'put ''ZXRUaW1lKDI0KndlKjYwKjYwKjFlMytDdCkseGUuZ2V0VGltZXpvbmVPZmZzZXQoKSE9PXJlJiZ4ZS5zZXRUaW1lKHhlLmdldFRpbWUoKSs2ZTQqKHhlLmdldFRpbWV6b25lT2Zmc2V0KCktcmUpKSx4ZX19KCl9fSxVLnV0aWxzPWFjLFUuU1NGPUYsdm9pZCAwIT09bXQmJihVLkNGQj1tdCl9''@;'; + put 'put ''KEplKX0sODc5Nzc6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO2NvbnN0IG1lPUplO21lLmJpZ251bT1MKDEzODU0KSxtZS5kZWZpbmU9TCgzOTUxNikuZGVmaW5lLG1lLmJhc2U9TCg4NzgxMyksbWUuY29uc3RhbnRzPUwoNTQ1OSksbWUuZGVjb2RlcnM9TCg3MDE5NiksbWUuZW5jb2RlcnM9''@;'; + put 'put ''TCgyMTEzMSl9LDM5NTE2OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijtjb25zdCBtZT1MKDIxMTMxKSxCPUwoNzAxOTYpLEU9TCg4Mzg5NCk7ZnVuY3Rpb24gVShRLFope3RoaXMubmFtZT1RLHRoaXMuYm9keT1aLHRoaXMuZGVjb2RlcnM9e30sdGhpcy5lbmNvZGVycz17fX1KZS5kZWZpbmU9''@;'; + put 'put ''ZnVuY3Rpb24oWixpZSl7cmV0dXJuIG5ldyBVKFosaWUpfSxVLnByb3RvdHlwZS5fY3JlYXRlTmFtZWQ9ZnVuY3Rpb24oWil7Y29uc3QgaWU9dGhpcy5uYW1lO2Z1bmN0aW9uIGFlKFkpe3RoaXMuX2luaXROYW1lZChZLGllKX1yZXR1cm4gRShhZSxaKSxhZS5wcm90b3R5cGUuX2luaXROYW1l''@;'; + put 'put ''ZD1mdW5jdGlvbihXLE4pe1ouY2FsbCh0aGlzLFcsTil9LG5ldyBhZSh0aGlzKX0sVS5wcm90b3R5cGUuX2dldERlY29kZXI9ZnVuY3Rpb24oWil7cmV0dXJuIHRoaXMuZGVjb2RlcnMuaGFzT3duUHJvcGVydHkoWj1afHwiZGVyIil8fCh0aGlzLmRlY29kZXJzW1pdPXRoaXMuX2NyZWF0ZU5h''@;'; + put 'put ''bWVkKEJbWl0pKSx0aGlzLmRlY29kZXJzW1pdfSxVLnByb3RvdHlwZS5kZWNvZGU9ZnVuY3Rpb24oWixpZSxhZSl7cmV0dXJuIHRoaXMuX2dldERlY29kZXIoaWUpLmRlY29kZShaLGFlKX0sVS5wcm90b3R5cGUuX2dldEVuY29kZXI9ZnVuY3Rpb24oWil7cmV0dXJuIHRoaXMuZW5jb2RlcnMu''@;'; + put 'put ''aGFzT3duUHJvcGVydHkoWj1afHwiZGVyIil8fCh0aGlzLmVuY29kZXJzW1pdPXRoaXMuX2NyZWF0ZU5hbWVkKG1lW1pdKSksdGhpcy5lbmNvZGVyc1taXX0sVS5wcm90b3R5cGUuZW5jb2RlPWZ1bmN0aW9uKFosaWUsYWUpe3JldHVybiB0aGlzLl9nZXRFbmNvZGVyKGllKS5lbmNvZGUoWixh''@;'; + put 'put ''ZSl9fSwxMjc2OTooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7Y29uc3QgbWU9TCg4Mzg5NCksQj1MKDQ5MTkpLmIsRT1MKDYyMDM4KS5CdWZmZXI7ZnVuY3Rpb24gTWUoUSxaKXtCLmNhbGwodGhpcyxaKSxFLmlzQnVmZmVyKFEpPyh0aGlzLmJhc2U9USx0aGlzLm9mZnNldD0wLHRoaXMubGVu''@;'; + put 'put ''Z3RoPVEubGVuZ3RoKTp0aGlzLmVycm9yKCJJbnB1dCBub3QgQnVmZmVyIil9ZnVuY3Rpb24gVShRLFope2lmKEFycmF5LmlzQXJyYXkoUSkpdGhpcy5sZW5ndGg9MCx0aGlzLnZhbHVlPVEubWFwKGZ1bmN0aW9uKGllKXtyZXR1cm4gVS5pc0VuY29kZXJCdWZmZXIoaWUpfHwoaWU9bmV3IFUo''@;'; + put 'put ''aWUsWikpLHRoaXMubGVuZ3RoKz1pZS5sZW5ndGgsaWV9LHRoaXMpO2Vsc2UgaWYoIm51bWJlciI9PXR5cGVvZiBRKXtpZighKDA8PVEmJlE8PTI1NSkpcmV0dXJuIFouZXJyb3IoIm5vbi1ieXRlIEVuY29kZXJCdWZmZXIgdmFsdWUiKTt0aGlzLnZhbHVlPVEsdGhpcy5sZW5ndGg9MX1lbHNl''@;'; + put 'put ''IGlmKCJzdHJpbmciPT10eXBlb2YgUSl0aGlzLnZhbHVlPVEsdGhpcy5sZW5ndGg9RS5ieXRlTGVuZ3RoKFEpO2Vsc2V7aWYoIUUuaXNCdWZmZXIoUSkpcmV0dXJuIFouZXJyb3IoIlVuc3VwcG9ydGVkIHR5cGU6ICIrdHlwZW9mIFEpO3RoaXMudmFsdWU9USx0aGlzLmxlbmd0aD1RLmxlbmd0''@;'; + put 'put ''aH19bWUoTWUsQiksSmUuQz1NZSxNZS5pc0RlY29kZXJCdWZmZXI9ZnVuY3Rpb24oWil7cmV0dXJuIFogaW5zdGFuY2VvZiBNZXx8Im9iamVjdCI9PXR5cGVvZiBaJiZFLmlzQnVmZmVyKFouYmFzZSkmJiJEZWNvZGVyQnVmZmVyIj09PVouY29uc3RydWN0b3IubmFtZSYmIm51bWJlciI9PXR5''@;'; + put 'put ''cGVvZiBaLm9mZnNldCYmIm51bWJlciI9PXR5cGVvZiBaLmxlbmd0aCYmImZ1bmN0aW9uIj09dHlwZW9mIFouc2F2ZSYmImZ1bmN0aW9uIj09dHlwZW9mIFoucmVzdG9yZSYmImZ1bmN0aW9uIj09dHlwZW9mIFouaXNFbXB0eSYmImZ1bmN0aW9uIj09dHlwZW9mIFoucmVhZFVJbnQ4JiYiZnVu''@;'; + put 'put ''Y3Rpb24iPT10eXBlb2YgWi5za2lwJiYiZnVuY3Rpb24iPT10eXBlb2YgWi5yYXd9LE1lLnByb3RvdHlwZS5zYXZlPWZ1bmN0aW9uKCl7cmV0dXJue29mZnNldDp0aGlzLm9mZnNldCxyZXBvcnRlcjpCLnByb3RvdHlwZS5zYXZlLmNhbGwodGhpcyl9fSxNZS5wcm90b3R5cGUucmVzdG9yZT1m''@;'; + put 'put ''dW5jdGlvbihaKXtjb25zdCBpZT1uZXcgTWUodGhpcy5iYXNlKTtyZXR1cm4gaWUub2Zmc2V0PVoub2Zmc2V0LGllLmxlbmd0aD10aGlzLm9mZnNldCx0aGlzLm9mZnNldD1aLm9mZnNldCxCLnByb3RvdHlwZS5yZXN0b3JlLmNhbGwodGhpcyxaLnJlcG9ydGVyKSxpZX0sTWUucHJvdG90eXBl''@;'; + put 'put ''LmlzRW1wdHk9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5vZmZzZXQ9PT10aGlzLmxlbmd0aH0sTWUucHJvdG90eXBlLnJlYWRVSW50OD1mdW5jdGlvbihaKXtyZXR1cm4gdGhpcy5vZmZzZXQrMTw9dGhpcy5sZW5ndGg/dGhpcy5iYXNlLnJlYWRVSW50OCh0aGlzLm9mZnNldCsrLCEwKTp0aGlz''@;'; + put 'put ''LmVycm9yKFp8fCJEZWNvZGVyQnVmZmVyIG92ZXJydW4iKX0sTWUucHJvdG90eXBlLnNraXA9ZnVuY3Rpb24oWixpZSl7aWYoISh0aGlzLm9mZnNldCtaPD10aGlzLmxlbmd0aCkpcmV0dXJuIHRoaXMuZXJyb3IoaWV8fCJEZWNvZGVyQnVmZmVyIG92ZXJydW4iKTtjb25zdCBhZT1uZXcgTWUo''@;'; + put 'put ''dGhpcy5iYXNlKTtyZXR1cm4gYWUuX3JlcG9ydGVyU3RhdGU9dGhpcy5fcmVwb3J0ZXJTdGF0ZSxhZS5vZmZzZXQ9dGhpcy5vZmZzZXQsYWUubGVuZ3RoPXRoaXMub2Zmc2V0K1osdGhpcy5vZmZzZXQrPVosYWV9LE1lLnByb3RvdHlwZS5yYXc9ZnVuY3Rpb24oWil7cmV0dXJuIHRoaXMuYmFz''@;'; + put 'put ''ZS5zbGljZShaP1oub2Zmc2V0OnRoaXMub2Zmc2V0LHRoaXMubGVuZ3RoKX0sSmUuUj1VLFUuaXNFbmNvZGVyQnVmZmVyPWZ1bmN0aW9uKFope3JldHVybiBaIGluc3RhbmNlb2YgVXx8Im9iamVjdCI9PXR5cGVvZiBaJiYiRW5jb2RlckJ1ZmZlciI9PT1aLmNvbnN0cnVjdG9yLm5hbWUmJiJu''@;'; + put 'put ''dW1iZXIiPT10eXBlb2YgWi5sZW5ndGgmJiJmdW5jdGlvbiI9PXR5cGVvZiBaLmpvaW59LFUucHJvdG90eXBlLmpvaW49ZnVuY3Rpb24oWixpZSl7cmV0dXJuIFp8fChaPUUuYWxsb2ModGhpcy5sZW5ndGgpKSxpZXx8KGllPTApLDA9PT10aGlzLmxlbmd0aHx8KEFycmF5LmlzQXJyYXkodGhp''@;'; + put 'put ''cy52YWx1ZSk/dGhpcy52YWx1ZS5mb3JFYWNoKGZ1bmN0aW9uKGFlKXthZS5qb2luKFosaWUpLGllKz1hZS5sZW5ndGh9KTooIm51bWJlciI9PXR5cGVvZiB0aGlzLnZhbHVlP1pbaWVdPXRoaXMudmFsdWU6InN0cmluZyI9PXR5cGVvZiB0aGlzLnZhbHVlP1oud3JpdGUodGhpcy52YWx1ZSxp''@;'; + put 'put ''ZSk6RS5pc0J1ZmZlcih0aGlzLnZhbHVlKSYmdGhpcy52YWx1ZS5jb3B5KFosaWUpLGllKz10aGlzLmxlbmd0aCkpLFp9fSw4NzgxMzooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7Y29uc3QgbWU9SmU7bWUuUmVwb3J0ZXI9TCg0OTE5KS5iLG1lLkRlY29kZXJCdWZmZXI9TCgxMjc2OSkuQyxt''@;'; + put 'put ''ZS5FbmNvZGVyQnVmZmVyPUwoMTI3NjkpLlIsbWUuTm9kZT1MKDMxNDMwKX0sMzE0MzA6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO2NvbnN0IG1lPUwoNDkxOSkuYixCPUwoMTI3NjkpLlIsRT1MKDEyNzY5KS5DLE1lPUwoMzIzOTEpLFU9WyJzZXEiLCJzZXFvZiIsInNldCIsInNldG9mIiwi''@;'; + put 'put ''b2JqaWQiLCJib29sIiwiZ2VudGltZSIsInV0Y3RpbWUiLCJudWxsXyIsImVudW0iLCJpbnQiLCJvYmpEZXNjIiwiYml0c3RyIiwiYm1wc3RyIiwiY2hhcnN0ciIsImdlbnN0ciIsImdyYXBoc3RyIiwiaWE1c3RyIiwiaXNvNjQ2c3RyIiwibnVtc3RyIiwib2N0c3RyIiwicHJpbnRzdHIiLCJ0''@;'; + put 'put ''NjFzdHIiLCJ1bmlzdHIiLCJ1dGY4c3RyIiwidmlkZW9zdHIiXSxRPVsia2V5Iiwib2JqIiwidXNlIiwib3B0aW9uYWwiLCJleHBsaWNpdCIsImltcGxpY2l0IiwiZGVmIiwiY2hvaWNlIiwiYW55IiwiY29udGFpbnMiXS5jb25jYXQoVSk7ZnVuY3Rpb24gaWUoWSxXLE4pe2NvbnN0IGVlPXt9''@;'; + put 'put ''O3RoaXMuX2Jhc2VTdGF0ZT1lZSxlZS5uYW1lPU4sZWUuZW5jPVksZWUucGFyZW50PVd8fG51bGwsZWUuY2hpbGRyZW49bnVsbCxlZS50YWc9bnVsbCxlZS5hcmdzPW51bGwsZWUucmV2ZXJzZUFyZ3M9bnVsbCxlZS5jaG9pY2U9bnVsbCxlZS5vcHRpb25hbD0hMSxlZS5hbnk9ITEsZWUub2Jq''@;'; + put 'put ''PSExLGVlLnVzZT1udWxsLGVlLnVzZURlY29kZXI9bnVsbCxlZS5rZXk9bnVsbCxlZS5kZWZhdWx0PW51bGwsZWUuZXhwbGljaXQ9bnVsbCxlZS5pbXBsaWNpdD1udWxsLGVlLmNvbnRhaW5zPW51bGwsZWUucGFyZW50fHwoZWUuY2hpbGRyZW49W10sdGhpcy5fd3JhcCgpKX1YZS5leHBvcnRz''@;'; + put 'put ''PWllO2NvbnN0IGFlPVsiZW5jIiwicGFyZW50IiwiY2hpbGRyZW4iLCJ0YWciLCJhcmdzIiwicmV2ZXJzZUFyZ3MiLCJjaG9pY2UiLCJvcHRpb25hbCIsImFueSIsIm9iaiIsInVzZSIsImFsdGVyZWRVc2UiLCJrZXkiLCJkZWZhdWx0IiwiZXhwbGljaXQiLCJpbXBsaWNpdCIsImNvbnRhaW5z''@;'; + put 'put ''Il07aWUucHJvdG90eXBlLmNsb25lPWZ1bmN0aW9uKCl7Y29uc3QgVz10aGlzLl9iYXNlU3RhdGUsTj17fTthZS5mb3JFYWNoKGZ1bmN0aW9uKHEpe05bcV09V1txXX0pO2NvbnN0IGVlPW5ldyB0aGlzLmNvbnN0cnVjdG9yKE4ucGFyZW50KTtyZXR1cm4gZWUuX2Jhc2VTdGF0ZT1OLGVlfSxp''@;'; + put 'put ''ZS5wcm90b3R5cGUuX3dyYXA9ZnVuY3Rpb24oKXtjb25zdCBXPXRoaXMuX2Jhc2VTdGF0ZTtRLmZvckVhY2goZnVuY3Rpb24oTil7dGhpc1tOXT1mdW5jdGlvbigpe2NvbnN0IHE9bmV3IHRoaXMuY29uc3RydWN0b3IodGhpcyk7cmV0dXJuIFcuY2hpbGRyZW4ucHVzaChxKSxxW05dLmFwcGx5''@;'; + put 'put ''KHEsYXJndW1lbnRzKX19LHRoaXMpfSxpZS5wcm90b3R5cGUuX2luaXQ9ZnVuY3Rpb24oVyl7Y29uc3QgTj10aGlzLl9iYXNlU3RhdGU7TWUobnVsbD09PU4ucGFyZW50KSxXLmNhbGwodGhpcyksTi5jaGlsZHJlbj1OLmNoaWxkcmVuLmZpbHRlcihmdW5jdGlvbihlZSl7cmV0dXJuIGVlLl9i''@;'; + put 'put ''YXNlU3RhdGUucGFyZW50PT09dGhpc30sdGhpcyksTWUuZXF1YWwoTi5jaGlsZHJlbi5sZW5ndGgsMSwiUm9vdCBub2RlIGNhbiBoYXZlIG9ubHkgb25lIGNoaWxkIil9LGllLnByb3RvdHlwZS5fdXNlQXJncz1mdW5jdGlvbihXKXtjb25zdCBOPXRoaXMuX2Jhc2VTdGF0ZSxlZT1XLmZpbHRl''@;'; + put 'put ''cihmdW5jdGlvbihxKXtyZXR1cm4gcSBpbnN0YW5jZW9mIHRoaXMuY29uc3RydWN0b3J9LHRoaXMpO1c9Vy5maWx0ZXIoZnVuY3Rpb24ocSl7cmV0dXJuIShxIGluc3RhbmNlb2YgdGhpcy5jb25zdHJ1Y3Rvcil9LHRoaXMpLDAhPT1lZS5sZW5ndGgmJihNZShudWxsPT09Ti5jaGlsZHJlbiks''@;'; + put 'put ''Ti5jaGlsZHJlbj1lZSxlZS5mb3JFYWNoKGZ1bmN0aW9uKHEpe3EuX2Jhc2VTdGF0ZS5wYXJlbnQ9dGhpc30sdGhpcykpLDAhPT1XLmxlbmd0aCYmKE1lKG51bGw9PT1OLmFyZ3MpLE4uYXJncz1XLE4ucmV2ZXJzZUFyZ3M9Vy5tYXAoZnVuY3Rpb24ocSl7aWYoIm9iamVjdCIhPXR5cGVvZiBx''@;'; + put 'put ''fHxxLmNvbnN0cnVjdG9yIT09T2JqZWN0KXJldHVybiBxO2NvbnN0IEo9e307cmV0dXJuIE9iamVjdC5rZXlzKHEpLmZvckVhY2goZnVuY3Rpb24oc2Upe3NlPT0oMHxzZSkmJihzZXw9MCksSltxW3NlXV09c2V9KSxKfSkpfSxbIl9wZWVrVGFnIiwiX2RlY29kZVRhZyIsIl91c2UiLCJfZGVj''@;'; + put 'put ''b2RlU3RyIiwiX2RlY29kZU9iamlkIiwiX2RlY29kZVRpbWUiLCJfZGVjb2RlTnVsbCIsIl9kZWNvZGVJbnQiLCJfZGVjb2RlQm9vbCIsIl9kZWNvZGVMaXN0IiwiX2VuY29kZUNvbXBvc2l0ZSIsIl9lbmNvZGVTdHIiLCJfZW5jb2RlT2JqaWQiLCJfZW5jb2RlVGltZSIsIl9lbmNvZGVOdWxs''@;'; + put 'put ''IiwiX2VuY29kZUludCIsIl9lbmNvZGVCb29sIl0uZm9yRWFjaChmdW5jdGlvbihZKXtpZS5wcm90b3R5cGVbWV09ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoWSsiIG5vdCBpbXBsZW1lbnRlZCBmb3IgZW5jb2Rpbmc6ICIrdGhpcy5fYmFzZVN0YXRlLmVuYyl9fSksVS5mb3JFYWNoKGZ1''@;'; + put 'put ''bmN0aW9uKFkpe2llLnByb3RvdHlwZVtZXT1mdW5jdGlvbigpe2NvbnN0IE49dGhpcy5fYmFzZVN0YXRlLGVlPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cyk7cmV0dXJuIE1lKG51bGw9PT1OLnRhZyksTi50YWc9WSx0aGlzLl91c2VBcmdzKGVlKSx0aGlzfX0pLGllLnBy''@;'; + put 'put ''b3RvdHlwZS51c2U9ZnVuY3Rpb24oVyl7TWUoVyk7Y29uc3QgTj10aGlzLl9iYXNlU3RhdGU7cmV0dXJuIE1lKG51bGw9PT1OLnVzZSksTi51c2U9Vyx0aGlzfSxpZS5wcm90b3R5cGUub3B0aW9uYWw9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYmFzZVN0YXRlLm9wdGlvbmFsPSEwLHRoaXN9''@;'; + put 'put ''LGllLnByb3RvdHlwZS5kZWY9ZnVuY3Rpb24oVyl7Y29uc3QgTj10aGlzLl9iYXNlU3RhdGU7cmV0dXJuIE1lKG51bGw9PT1OLmRlZmF1bHQpLE4uZGVmYXVsdD1XLE4ub3B0aW9uYWw9ITAsdGhpc30saWUucHJvdG90eXBlLmV4cGxpY2l0PWZ1bmN0aW9uKFcpe2NvbnN0IE49dGhpcy5fYmFz''@;'; + put 'put ''ZVN0YXRlO3JldHVybiBNZShudWxsPT09Ti5leHBsaWNpdCYmbnVsbD09PU4uaW1wbGljaXQpLE4uZXhwbGljaXQ9Vyx0aGlzfSxpZS5wcm90b3R5cGUuaW1wbGljaXQ9ZnVuY3Rpb24oVyl7Y29uc3QgTj10aGlzLl9iYXNlU3RhdGU7cmV0dXJuIE1lKG51bGw9PT1OLmV4cGxpY2l0JiZudWxs''@;'; + put 'put ''PT09Ti5pbXBsaWNpdCksTi5pbXBsaWNpdD1XLHRoaXN9LGllLnByb3RvdHlwZS5vYmo9ZnVuY3Rpb24oKXtjb25zdCBXPXRoaXMuX2Jhc2VTdGF0ZSxOPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cyk7cmV0dXJuIFcub2JqPSEwLDAhPT1OLmxlbmd0aCYmdGhpcy5fdXNl''@;'; + put 'put ''QXJncyhOKSx0aGlzfSxpZS5wcm90b3R5cGUua2V5PWZ1bmN0aW9uKFcpe2NvbnN0IE49dGhpcy5fYmFzZVN0YXRlO3JldHVybiBNZShudWxsPT09Ti5rZXkpLE4ua2V5PVcsdGhpc30saWUucHJvdG90eXBlLmFueT1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9iYXNlU3RhdGUuYW55PSEwLHRo''@;'; + put 'put ''aXN9LGllLnByb3RvdHlwZS5jaG9pY2U9ZnVuY3Rpb24oVyl7Y29uc3QgTj10aGlzLl9iYXNlU3RhdGU7cmV0dXJuIE1lKG51bGw9PT1OLmNob2ljZSksTi5jaG9pY2U9Vyx0aGlzLl91c2VBcmdzKE9iamVjdC5rZXlzKFcpLm1hcChmdW5jdGlvbihlZSl7cmV0dXJuIFdbZWVdfSkpLHRoaXN9''@;'; + put 'put ''LGllLnByb3RvdHlwZS5jb250YWlucz1mdW5jdGlvbihXKXtjb25zdCBOPXRoaXMuX2Jhc2VTdGF0ZTtyZXR1cm4gTWUobnVsbD09PU4udXNlKSxOLmNvbnRhaW5zPVcsdGhpc30saWUucHJvdG90eXBlLl9kZWNvZGU9ZnVuY3Rpb24oVyxOKXtjb25zdCBlZT10aGlzLl9iYXNlU3RhdGU7aWYo''@;'; + put 'put ''bnVsbD09PWVlLnBhcmVudClyZXR1cm4gVy53cmFwUmVzdWx0KGVlLmNoaWxkcmVuWzBdLl9kZWNvZGUoVyxOKSk7bGV0IG9lLHE9ZWUuZGVmYXVsdCxKPSEwLHNlPW51bGw7aWYobnVsbCE9PWVlLmtleSYmKHNlPVcuZW50ZXJLZXkoZWUua2V5KSksZWUub3B0aW9uYWwpe2xldCBjZT1udWxs''@;'; + put 'put ''O2lmKG51bGwhPT1lZS5leHBsaWNpdD9jZT1lZS5leHBsaWNpdDpudWxsIT09ZWUuaW1wbGljaXQ/Y2U9ZWUuaW1wbGljaXQ6bnVsbCE9PWVlLnRhZyYmKGNlPWVlLnRhZyksbnVsbCE9PWNlfHxlZS5hbnkpe2lmKEo9dGhpcy5fcGVla1RhZyhXLGNlLGVlLmFueSksVy5pc0Vycm9yKEopKXJl''@;'; + put 'put ''dHVybiBKfWVsc2V7Y29uc3QgZGU9Vy5zYXZlKCk7dHJ5e251bGw9PT1lZS5jaG9pY2U/dGhpcy5fZGVjb2RlR2VuZXJpYyhlZS50YWcsVyxOKTp0aGlzLl9kZWNvZGVDaG9pY2UoVyxOKSxKPSEwfWNhdGNoKHZlKXtKPSExfVcucmVzdG9yZShkZSl9fWlmKGVlLm9iaiYmSiYmKG9lPVcuZW50''@;'; + put 'put ''ZXJPYmplY3QoKSksSil7aWYobnVsbCE9PWVlLmV4cGxpY2l0KXtjb25zdCBkZT10aGlzLl9kZWNvZGVUYWcoVyxlZS5leHBsaWNpdCk7aWYoVy5pc0Vycm9yKGRlKSlyZXR1cm4gZGU7Vz1kZX1jb25zdCBjZT1XLm9mZnNldDtpZihudWxsPT09ZWUudXNlJiZudWxsPT09ZWUuY2hvaWNlKXts''@;'; + put 'put ''ZXQgZGU7ZWUuYW55JiYoZGU9Vy5zYXZlKCkpO2NvbnN0IHZlPXRoaXMuX2RlY29kZVRhZyhXLG51bGwhPT1lZS5pbXBsaWNpdD9lZS5pbXBsaWNpdDplZS50YWcsZWUuYW55KTtpZihXLmlzRXJyb3IodmUpKXJldHVybiB2ZTtlZS5hbnk/cT1XLnJhdyhkZSk6Vz12ZX1pZihOJiZOLnRyYWNr''@;'; + put 'put ''JiZudWxsIT09ZWUudGFnJiZOLnRyYWNrKFcucGF0aCgpLGNlLFcubGVuZ3RoLCJ0YWdnZWQiKSxOJiZOLnRyYWNrJiZudWxsIT09ZWUudGFnJiZOLnRyYWNrKFcucGF0aCgpLFcub2Zmc2V0LFcubGVuZ3RoLCJjb250ZW50IiksZWUuYW55fHwocT1udWxsPT09ZWUuY2hvaWNlP3RoaXMuX2Rl''@;'; + put 'put ''Y29kZUdlbmVyaWMoZWUudGFnLFcsTik6dGhpcy5fZGVjb2RlQ2hvaWNlKFcsTikpLFcuaXNFcnJvcihxKSlyZXR1cm4gcTtpZighZWUuYW55JiZudWxsPT09ZWUuY2hvaWNlJiZudWxsIT09ZWUuY2hpbGRyZW4mJmVlLmNoaWxkcmVuLmZvckVhY2goZnVuY3Rpb24odmUpe3ZlLl9kZWNvZGUo''@;'; + put 'put ''VyxOKX0pLGVlLmNvbnRhaW5zJiYoIm9jdHN0ciI9PT1lZS50YWd8fCJiaXRzdHIiPT09ZWUudGFnKSl7Y29uc3QgZGU9bmV3IEUocSk7cT10aGlzLl9nZXRVc2UoZWUuY29udGFpbnMsVy5fcmVwb3J0ZXJTdGF0ZS5vYmopLl9kZWNvZGUoZGUsTil9fXJldHVybiBlZS5vYmomJkomJihxPVcu''@;'; + put 'put ''bGVhdmVPYmplY3Qob2UpKSxudWxsPT09ZWUua2V5fHxudWxsPT09cSYmITAhPT1KP251bGwhPT1zZSYmVy5leGl0S2V5KHNlKTpXLmxlYXZlS2V5KHNlLGVlLmtleSxxKSxxfSxpZS5wcm90b3R5cGUuX2RlY29kZUdlbmVyaWM9ZnVuY3Rpb24oVyxOLGVlKXtjb25zdCBxPXRoaXMuX2Jhc2VT''@;'; + put 'put ''dGF0ZTtyZXR1cm4ic2VxIj09PVd8fCJzZXQiPT09Vz9udWxsOiJzZXFvZiI9PT1XfHwic2V0b2YiPT09Vz90aGlzLl9kZWNvZGVMaXN0KE4sVyxxLmFyZ3NbMF0sZWUpOi9zdHIkLy50ZXN0KFcpP3RoaXMuX2RlY29kZVN0cihOLFcsZWUpOiJvYmppZCI9PT1XJiZxLmFyZ3M/dGhpcy5fZGVj''@;'; + put 'put ''b2RlT2JqaWQoTixxLmFyZ3NbMF0scS5hcmdzWzFdLGVlKToib2JqaWQiPT09Vz90aGlzLl9kZWNvZGVPYmppZChOLG51bGwsbnVsbCxlZSk6ImdlbnRpbWUiPT09V3x8InV0Y3RpbWUiPT09Vz90aGlzLl9kZWNvZGVUaW1lKE4sVyxlZSk6Im51bGxfIj09PVc/dGhpcy5fZGVjb2RlTnVsbChO''@;'; + put 'put ''LGVlKToiYm9vbCI9PT1XP3RoaXMuX2RlY29kZUJvb2woTixlZSk6Im9iakRlc2MiPT09Vz90aGlzLl9kZWNvZGVTdHIoTixXLGVlKToiaW50Ij09PVd8fCJlbnVtIj09PVc/dGhpcy5fZGVjb2RlSW50KE4scS5hcmdzJiZxLmFyZ3NbMF0sZWUpOm51bGwhPT1xLnVzZT90aGlzLl9nZXRVc2Uo''@;'; + put 'put ''cS51c2UsTi5fcmVwb3J0ZXJTdGF0ZS5vYmopLl9kZWNvZGUoTixlZSk6Ti5lcnJvcigidW5rbm93biB0YWc6ICIrVyl9LGllLnByb3RvdHlwZS5fZ2V0VXNlPWZ1bmN0aW9uKFcsTil7Y29uc3QgZWU9dGhpcy5fYmFzZVN0YXRlO3JldHVybiBlZS51c2VEZWNvZGVyPXRoaXMuX3VzZShXLE4p''@;'; + put 'put ''LE1lKG51bGw9PT1lZS51c2VEZWNvZGVyLl9iYXNlU3RhdGUucGFyZW50KSxlZS51c2VEZWNvZGVyPWVlLnVzZURlY29kZXIuX2Jhc2VTdGF0ZS5jaGlsZHJlblswXSxlZS5pbXBsaWNpdCE9PWVlLnVzZURlY29kZXIuX2Jhc2VTdGF0ZS5pbXBsaWNpdCYmKGVlLnVzZURlY29kZXI9ZWUudXNl''@;'; + put 'put ''RGVjb2Rlci5jbG9uZSgpLGVlLnVzZURlY29kZXIuX2Jhc2VTdGF0ZS5pbXBsaWNpdD1lZS5pbXBsaWNpdCksZWUudXNlRGVjb2Rlcn0saWUucHJvdG90eXBlLl9kZWNvZGVDaG9pY2U9ZnVuY3Rpb24oVyxOKXtjb25zdCBlZT10aGlzLl9iYXNlU3RhdGU7bGV0IHE9bnVsbCxKPSExO3JldHVy''@;'; + put 'put ''biBPYmplY3Qua2V5cyhlZS5jaG9pY2UpLnNvbWUoZnVuY3Rpb24oc2Upe2NvbnN0IG9lPVcuc2F2ZSgpLGNlPWVlLmNob2ljZVtzZV07dHJ5e2NvbnN0IGRlPWNlLl9kZWNvZGUoVyxOKTtpZihXLmlzRXJyb3IoZGUpKXJldHVybiExO3E9e3R5cGU6c2UsdmFsdWU6ZGV9LEo9ITB9Y2F0Y2go''@;'; + put 'put ''ZGUpe3JldHVybiBXLnJlc3RvcmUob2UpLCExfXJldHVybiEwfSx0aGlzKSxKP3E6Vy5lcnJvcigiQ2hvaWNlIG5vdCBtYXRjaGVkIil9LGllLnByb3RvdHlwZS5fY3JlYXRlRW5jb2RlckJ1ZmZlcj1mdW5jdGlvbihXKXtyZXR1cm4gbmV3IEIoVyx0aGlzLnJlcG9ydGVyKX0saWUucHJvdG90''@;'; + put 'put ''eXBlLl9lbmNvZGU9ZnVuY3Rpb24oVyxOLGVlKXtjb25zdCBxPXRoaXMuX2Jhc2VTdGF0ZTtpZihudWxsIT09cS5kZWZhdWx0JiZxLmRlZmF1bHQ9PT1XKXJldHVybjtjb25zdCBKPXRoaXMuX2VuY29kZVZhbHVlKFcsTixlZSk7cmV0dXJuIHZvaWQgMD09PUp8fHRoaXMuX3NraXBEZWZhdWx0''@;'; + put 'put ''KEosTixlZSk/dm9pZCAwOkp9LGllLnByb3RvdHlwZS5fZW5jb2RlVmFsdWU9ZnVuY3Rpb24oVyxOLGVlKXtjb25zdCBxPXRoaXMuX2Jhc2VTdGF0ZTtpZihudWxsPT09cS5wYXJlbnQpcmV0dXJuIHEuY2hpbGRyZW5bMF0uX2VuY29kZShXLE58fG5ldyBtZSk7bGV0IEo9bnVsbDtpZih0aGlz''@;'; + put 'put ''LnJlcG9ydGVyPU4scS5vcHRpb25hbCYmdm9pZCAwPT09Vyl7aWYobnVsbD09PXEuZGVmYXVsdClyZXR1cm47Vz1xLmRlZmF1bHR9bGV0IHNlPW51bGwsb2U9ITE7aWYocS5hbnkpSj10aGlzLl9jcmVhdGVFbmNvZGVyQnVmZmVyKFcpO2Vsc2UgaWYocS5jaG9pY2UpSj10aGlzLl9lbmNvZGVD''@;'; + put 'put ''aG9pY2UoVyxOKTtlbHNlIGlmKHEuY29udGFpbnMpc2U9dGhpcy5fZ2V0VXNlKHEuY29udGFpbnMsZWUpLl9lbmNvZGUoVyxOKSxvZT0hMDtlbHNlIGlmKHEuY2hpbGRyZW4pc2U9cS5jaGlsZHJlbi5tYXAoZnVuY3Rpb24oY2Upe2lmKCJudWxsXyI9PT1jZS5fYmFzZVN0YXRlLnRhZylyZXR1''@;'; + put 'put ''cm4gY2UuX2VuY29kZShudWxsLE4sVyk7aWYobnVsbD09PWNlLl9iYXNlU3RhdGUua2V5KXJldHVybiBOLmVycm9yKCJDaGlsZCBzaG91bGQgaGF2ZSBhIGtleSIpO2NvbnN0IGRlPU4uZW50ZXJLZXkoY2UuX2Jhc2VTdGF0ZS5rZXkpO2lmKCJvYmplY3QiIT10eXBlb2YgVylyZXR1cm4gTi5l''@;'; + put 'put ''cnJvcigiQ2hpbGQgZXhwZWN0ZWQsIGJ1dCBpbnB1dCBpcyBub3Qgb2JqZWN0Iik7Y29uc3QgdmU9Y2UuX2VuY29kZShXW2NlLl9iYXNlU3RhdGUua2V5XSxOLFcpO3JldHVybiBOLmxlYXZlS2V5KGRlKSx2ZX0sdGhpcykuZmlsdGVyKGZ1bmN0aW9uKGNlKXtyZXR1cm4gY2V9KSxzZT10aGlz''@;'; + put 'put ''Ll9jcmVhdGVFbmNvZGVyQnVmZmVyKHNlKTtlbHNlIGlmKCJzZXFvZiI9PT1xLnRhZ3x8InNldG9mIj09PXEudGFnKXtpZighcS5hcmdzfHwxIT09cS5hcmdzLmxlbmd0aClyZXR1cm4gTi5lcnJvcigiVG9vIG1hbnkgYXJncyBmb3IgOiAiK3EudGFnKTtpZighQXJyYXkuaXNBcnJheShXKSly''@;'; + put 'put ''ZXR1cm4gTi5lcnJvcigic2Vxb2Yvc2V0b2YsIGJ1dCBkYXRhIGlzIG5vdCBBcnJheSIpO2NvbnN0IGNlPXRoaXMuY2xvbmUoKTtjZS5fYmFzZVN0YXRlLmltcGxpY2l0PW51bGwsc2U9dGhpcy5fY3JlYXRlRW5jb2RlckJ1ZmZlcihXLm1hcChmdW5jdGlvbihkZSl7cmV0dXJuIHRoaXMuX2dl''@;'; + put 'put ''dFVzZSh0aGlzLl9iYXNlU3RhdGUuYXJnc1swXSxXKS5fZW5jb2RlKGRlLE4pfSxjZSkpfWVsc2UgbnVsbCE9PXEudXNlP0o9dGhpcy5fZ2V0VXNlKHEudXNlLGVlKS5fZW5jb2RlKFcsTik6KHNlPXRoaXMuX2VuY29kZVByaW1pdGl2ZShxLnRhZyxXKSxvZT0hMCk7aWYoIXEuYW55JiZudWxs''@;'; + put 'put ''PT09cS5jaG9pY2Upe2NvbnN0IGNlPW51bGwhPT1xLmltcGxpY2l0P3EuaW1wbGljaXQ6cS50YWcsZGU9bnVsbD09PXEuaW1wbGljaXQ/InVuaXZlcnNhbCI6ImNvbnRleHQiO251bGw9PT1jZT9udWxsPT09cS51c2UmJk4uZXJyb3IoIlRhZyBjb3VsZCBiZSBvbWl0dGVkIG9ubHkgZm9yIC51''@;'; + put 'put ''c2UoKSIpOm51bGw9PT1xLnVzZSYmKEo9dGhpcy5fZW5jb2RlQ29tcG9zaXRlKGNlLG9lLGRlLHNlKSl9cmV0dXJuIG51bGwhPT1xLmV4cGxpY2l0JiYoSj10aGlzLl9lbmNvZGVDb21wb3NpdGUocS5leHBsaWNpdCwhMSwiY29udGV4dCIsSikpLEp9LGllLnByb3RvdHlwZS5fZW5jb2RlQ2hv''@;'; + put 'put ''aWNlPWZ1bmN0aW9uKFcsTil7Y29uc3QgZWU9dGhpcy5fYmFzZVN0YXRlLHE9ZWUuY2hvaWNlW1cudHlwZV07cmV0dXJuIHF8fE1lKCExLFcudHlwZSsiIG5vdCBmb3VuZCBpbiAiK0pTT04uc3RyaW5naWZ5KE9iamVjdC5rZXlzKGVlLmNob2ljZSkpKSxxLl9lbmNvZGUoVy52YWx1ZSxOKX0s''@;'; + put 'put ''aWUucHJvdG90eXBlLl9lbmNvZGVQcmltaXRpdmU9ZnVuY3Rpb24oVyxOKXtjb25zdCBlZT10aGlzLl9iYXNlU3RhdGU7aWYoL3N0ciQvLnRlc3QoVykpcmV0dXJuIHRoaXMuX2VuY29kZVN0cihOLFcpO2lmKCJvYmppZCI9PT1XJiZlZS5hcmdzKXJldHVybiB0aGlzLl9lbmNvZGVPYmppZChO''@;'; + put 'put ''LGVlLnJldmVyc2VBcmdzWzBdLGVlLmFyZ3NbMV0pO2lmKCJvYmppZCI9PT1XKXJldHVybiB0aGlzLl9lbmNvZGVPYmppZChOLG51bGwsbnVsbCk7aWYoImdlbnRpbWUiPT09V3x8InV0Y3RpbWUiPT09VylyZXR1cm4gdGhpcy5fZW5jb2RlVGltZShOLFcpO2lmKCJudWxsXyI9PT1XKXJldHVy''@;'; + put 'put ''biB0aGlzLl9lbmNvZGVOdWxsKCk7aWYoImludCI9PT1XfHwiZW51bSI9PT1XKXJldHVybiB0aGlzLl9lbmNvZGVJbnQoTixlZS5hcmdzJiZlZS5yZXZlcnNlQXJnc1swXSk7aWYoImJvb2wiPT09VylyZXR1cm4gdGhpcy5fZW5jb2RlQm9vbChOKTtpZigib2JqRGVzYyI9PT1XKXJldHVybiB0''@;'; + put 'put ''aGlzLl9lbmNvZGVTdHIoTixXKTt0aHJvdyBuZXcgRXJyb3IoIlVuc3VwcG9ydGVkIHRhZzogIitXKX0saWUucHJvdG90eXBlLl9pc051bXN0cj1mdW5jdGlvbihXKXtyZXR1cm4vXlswLTkgXSokLy50ZXN0KFcpfSxpZS5wcm90b3R5cGUuX2lzUHJpbnRzdHI9ZnVuY3Rpb24oVyl7cmV0dXJu''@;'; + put 'put ''L15bQS1aYS16MC05ICcoKSssLS4vOj0/XSokLy50ZXN0KFcpfX0sNDkxOTooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7Y29uc3QgbWU9TCg4Mzg5NCk7ZnVuY3Rpb24gQihNZSl7dGhpcy5fcmVwb3J0ZXJTdGF0ZT17b2JqOm51bGwscGF0aDpbXSxvcHRpb25zOk1lfHx7fSxlcnJvcnM6W119''@;'; + put 'put ''fWZ1bmN0aW9uIEUoTWUsVSl7dGhpcy5wYXRoPU1lLHRoaXMucmV0aHJvdyhVKX1KZS5iPUIsQi5wcm90b3R5cGUuaXNFcnJvcj1mdW5jdGlvbihVKXtyZXR1cm4gVSBpbnN0YW5jZW9mIEV9LEIucHJvdG90eXBlLnNhdmU9ZnVuY3Rpb24oKXtjb25zdCBVPXRoaXMuX3JlcG9ydGVyU3RhdGU7''@;'; + put 'put ''cmV0dXJue29iajpVLm9iaixwYXRoTGVuOlUucGF0aC5sZW5ndGh9fSxCLnByb3RvdHlwZS5yZXN0b3JlPWZ1bmN0aW9uKFUpe2NvbnN0IFE9dGhpcy5fcmVwb3J0ZXJTdGF0ZTtRLm9iaj1VLm9iaixRLnBhdGg9US5wYXRoLnNsaWNlKDAsVS5wYXRoTGVuKX0sQi5wcm90b3R5cGUuZW50ZXJL''@;'; + put 'put ''ZXk9ZnVuY3Rpb24oVSl7cmV0dXJuIHRoaXMuX3JlcG9ydGVyU3RhdGUucGF0aC5wdXNoKFUpfSxCLnByb3RvdHlwZS5leGl0S2V5PWZ1bmN0aW9uKFUpe2NvbnN0IFE9dGhpcy5fcmVwb3J0ZXJTdGF0ZTtRLnBhdGg9US5wYXRoLnNsaWNlKDAsVS0xKX0sQi5wcm90b3R5cGUubGVhdmVLZXk9''@;'; + put 'put ''ZnVuY3Rpb24oVSxRLFope2NvbnN0IGllPXRoaXMuX3JlcG9ydGVyU3RhdGU7dGhpcy5leGl0S2V5KFUpLG51bGwhPT1pZS5vYmomJihpZS5vYmpbUV09Wil9LEIucHJvdG90eXBlLnBhdGg9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcmVwb3J0ZXJTdGF0ZS5wYXRoLmpvaW4oIi8iKX0sQi5w''@;'; + put 'put ''cm90b3R5cGUuZW50ZXJPYmplY3Q9ZnVuY3Rpb24oKXtjb25zdCBVPXRoaXMuX3JlcG9ydGVyU3RhdGUsUT1VLm9iajtyZXR1cm4gVS5vYmo9e30sUX0sQi5wcm90b3R5cGUubGVhdmVPYmplY3Q9ZnVuY3Rpb24oVSl7Y29uc3QgUT10aGlzLl9yZXBvcnRlclN0YXRlLFo9US5vYmo7cmV0dXJu''@;'; + put 'put ''IFEub2JqPVUsWn0sQi5wcm90b3R5cGUuZXJyb3I9ZnVuY3Rpb24oVSl7bGV0IFE7Y29uc3QgWj10aGlzLl9yZXBvcnRlclN0YXRlLGllPVUgaW5zdGFuY2VvZiBFO2lmKFE9aWU/VTpuZXcgRShaLnBhdGgubWFwKGZ1bmN0aW9uKGFlKXtyZXR1cm4iWyIrSlNPTi5zdHJpbmdpZnkoYWUpKyJd''@;'; + put 'put ''In0pLmpvaW4oIiIpLFUubWVzc2FnZXx8VSxVLnN0YWNrKSwhWi5vcHRpb25zLnBhcnRpYWwpdGhyb3cgUTtyZXR1cm4gaWV8fFouZXJyb3JzLnB1c2goUSksUX0sQi5wcm90b3R5cGUud3JhcFJlc3VsdD1mdW5jdGlvbihVKXtjb25zdCBRPXRoaXMuX3JlcG9ydGVyU3RhdGU7cmV0dXJuIFEu''@;'; + put 'put ''b3B0aW9ucy5wYXJ0aWFsP3tyZXN1bHQ6dGhpcy5pc0Vycm9yKFUpP251bGw6VSxlcnJvcnM6US5lcnJvcnN9OlV9LG1lKEUsRXJyb3IpLEUucHJvdG90eXBlLnJldGhyb3c9ZnVuY3Rpb24oVSl7aWYodGhpcy5tZXNzYWdlPVUrIiBhdDogIisodGhpcy5wYXRofHwiKHNoYWxsb3cpIiksRXJy''@;'; + put 'put ''b3IuY2FwdHVyZVN0YWNrVHJhY2UmJkVycm9yLmNhcHR1cmVTdGFja1RyYWNlKHRoaXMsRSksIXRoaXMuc3RhY2spdHJ5e3Rocm93IG5ldyBFcnJvcih0aGlzLm1lc3NhZ2UpfWNhdGNoKFEpe3RoaXMuc3RhY2s9US5zdGFja31yZXR1cm4gdGhpc319LDI1NDk2OihYZSxKZSk9PnsidXNlIHN0''@;'; + put 'put ''cmljdCI7ZnVuY3Rpb24gTChtZSl7Y29uc3QgQj17fTtyZXR1cm4gT2JqZWN0LmtleXMobWUpLmZvckVhY2goZnVuY3Rpb24oRSl7KDB8RSk9PUUmJihFfD0wKSxCW21lW0VdXT1FfSksQn1KZS50YWdDbGFzcz17MDoidW5pdmVyc2FsIiwxOiJhcHBsaWNhdGlvbiIsMjoiY29udGV4dCIsMzoi''@;'; + put 'put ''cHJpdmF0ZSJ9LEplLnRhZ0NsYXNzQnlOYW1lPUwoSmUudGFnQ2xhc3MpLEplLnRhZz17MDoiZW5kIiwxOiJib29sIiwyOiJpbnQiLDM6ImJpdHN0ciIsNDoib2N0c3RyIiw1OiJudWxsXyIsNjoib2JqaWQiLDc6Im9iakRlc2MiLDg6ImV4dGVybmFsIiw5OiJyZWFsIiwxMDoiZW51bSIsMTE6''@;'; + put 'put ''ImVtYmVkIiwxMjoidXRmOHN0ciIsMTM6InJlbGF0aXZlT2lkIiwxNjoic2VxIiwxNzoic2V0IiwxODoibnVtc3RyIiwxOToicHJpbnRzdHIiLDIwOiJ0NjFzdHIiLDIxOiJ2aWRlb3N0ciIsMjI6ImlhNXN0ciIsMjM6InV0Y3RpbWUiLDI0OiJnZW50aW1lIiwyNToiZ3JhcGhzdHIiLDI2OiJp''@;'; + put 'put ''c282NDZzdHIiLDI3OiJnZW5zdHIiLDI4OiJ1bmlzdHIiLDI5OiJjaGFyc3RyIiwzMDoiYm1wc3RyIn0sSmUudGFnQnlOYW1lPUwoSmUudGFnKX0sNTQ1OTooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7Y29uc3QgbWU9SmU7bWUuX3JldmVyc2U9ZnVuY3Rpb24oRSl7Y29uc3QgTWU9e307cmV0''@;'; + put 'put ''dXJuIE9iamVjdC5rZXlzKEUpLmZvckVhY2goZnVuY3Rpb24oVSl7KDB8VSk9PVUmJihVfD0wKSxNZVtFW1VdXT1VfSksTWV9LG1lLmRlcj1MKDI1NDk2KX0sODcxMjc6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO2NvbnN0IG1lPUwoODM4OTQpLEI9TCgxMzg1NCksRT1MKDEyNzY5KS5DLE1l''@;'; + put 'put ''PUwoMzE0MzApLFU9TCgyNTQ5Nik7ZnVuY3Rpb24gUShZKXt0aGlzLmVuYz0iZGVyIix0aGlzLm5hbWU9WS5uYW1lLHRoaXMuZW50aXR5PVksdGhpcy50cmVlPW5ldyBaLHRoaXMudHJlZS5faW5pdChZLmJvZHkpfWZ1bmN0aW9uIFooWSl7TWUuY2FsbCh0aGlzLCJkZXIiLFkpfWZ1bmN0aW9u''@;'; + put 'put ''IGllKFksVyl7bGV0IE49WS5yZWFkVUludDgoVyk7aWYoWS5pc0Vycm9yKE4pKXJldHVybiBOO2NvbnN0IGVlPVUudGFnQ2xhc3NbTj4+Nl0scT0wPT0oMzImTik7aWYoMzE9PSgzMSZOKSl7bGV0IHNlPU47Zm9yKE49MDsxMjg9PSgxMjgmc2UpOyl7aWYoc2U9WS5yZWFkVUludDgoVyksWS5p''@;'; + put 'put ''c0Vycm9yKHNlKSlyZXR1cm4gc2U7Tjw8PTcsTnw9MTI3JnNlfX1lbHNlIE4mPTMxO3JldHVybntjbHM6ZWUscHJpbWl0aXZlOnEsdGFnOk4sdGFnU3RyOlUudGFnW05dfX1mdW5jdGlvbiBhZShZLFcsTil7bGV0IGVlPVkucmVhZFVJbnQ4KE4pO2lmKFkuaXNFcnJvcihlZSkpcmV0dXJuIGVl''@;'; + put 'put ''O2lmKCFXJiYxMjg9PT1lZSlyZXR1cm4gbnVsbDtpZigwPT0oMTI4JmVlKSlyZXR1cm4gZWU7Y29uc3QgcT0xMjcmZWU7aWYocT40KXJldHVybiBZLmVycm9yKCJsZW5ndGggb2N0ZWN0IGlzIHRvbyBsb25nIik7ZWU9MDtmb3IobGV0IEo9MDtKPHE7SisrKXtlZTw8PTg7Y29uc3Qgc2U9WS5y''@;'; + put 'put ''ZWFkVUludDgoTik7aWYoWS5pc0Vycm9yKHNlKSlyZXR1cm4gc2U7ZWV8PXNlfXJldHVybiBlZX1YZS5leHBvcnRzPVEsUS5wcm90b3R5cGUuZGVjb2RlPWZ1bmN0aW9uKFcsTil7cmV0dXJuIEUuaXNEZWNvZGVyQnVmZmVyKFcpfHwoVz1uZXcgRShXLE4pKSx0aGlzLnRyZWUuX2RlY29kZShX''@;'; + put 'put ''LE4pfSxtZShaLE1lKSxaLnByb3RvdHlwZS5fcGVla1RhZz1mdW5jdGlvbihXLE4sZWUpe2lmKFcuaXNFbXB0eSgpKXJldHVybiExO2NvbnN0IHE9Vy5zYXZlKCksSj1pZShXLCdGYWlsZWQgdG8gcGVlayB0YWc6ICInK04rJyInKTtyZXR1cm4gVy5pc0Vycm9yKEopP0o6KFcucmVzdG9yZShx''@;'; + put 'put ''KSxKLnRhZz09PU58fEoudGFnU3RyPT09Tnx8Si50YWdTdHIrIm9mIj09PU58fGVlKX0sWi5wcm90b3R5cGUuX2RlY29kZVRhZz1mdW5jdGlvbihXLE4sZWUpe2NvbnN0IHE9aWUoVywnRmFpbGVkIHRvIGRlY29kZSB0YWcgb2YgIicrTisnIicpO2lmKFcuaXNFcnJvcihxKSlyZXR1cm4gcTts''@;'; + put 'put ''ZXQgSj1hZShXLHEucHJpbWl0aXZlLCdGYWlsZWQgdG8gZ2V0IGxlbmd0aCBvZiAiJytOKyciJyk7aWYoVy5pc0Vycm9yKEopKXJldHVybiBKO2lmKCFlZSYmcS50YWchPT1OJiZxLnRhZ1N0ciE9PU4mJnEudGFnU3RyKyJvZiIhPT1OKXJldHVybiBXLmVycm9yKCdGYWlsZWQgdG8gbWF0Y2gg''@;'; + put 'put ''dGFnOiAiJytOKyciJyk7aWYocS5wcmltaXRpdmV8fG51bGwhPT1KKXJldHVybiBXLnNraXAoSiwnRmFpbGVkIHRvIG1hdGNoIGJvZHkgb2Y6ICInK04rJyInKTtjb25zdCBzZT1XLnNhdmUoKSxvZT10aGlzLl9za2lwVW50aWxFbmQoVywnRmFpbGVkIHRvIHNraXAgaW5kZWZpbml0ZSBsZW5n''@;'; + put 'put ''dGggYm9keTogIicrdGhpcy50YWcrJyInKTtyZXR1cm4gVy5pc0Vycm9yKG9lKT9vZTooSj1XLm9mZnNldC1zZS5vZmZzZXQsVy5yZXN0b3JlKHNlKSxXLnNraXAoSiwnRmFpbGVkIHRvIG1hdGNoIGJvZHkgb2Y6ICInK04rJyInKSl9LFoucHJvdG90eXBlLl9za2lwVW50aWxFbmQ9ZnVuY3Rp''@;'; + put 'put ''b24oVyxOKXtmb3IoOzspe2NvbnN0IGVlPWllKFcsTik7aWYoVy5pc0Vycm9yKGVlKSlyZXR1cm4gZWU7Y29uc3QgcT1hZShXLGVlLnByaW1pdGl2ZSxOKTtpZihXLmlzRXJyb3IocSkpcmV0dXJuIHE7bGV0IEo7aWYoSj1lZS5wcmltaXRpdmV8fG51bGwhPT1xP1cuc2tpcChxKTp0aGlzLl9z''@;'; + put 'put ''a2lwVW50aWxFbmQoVyxOKSxXLmlzRXJyb3IoSikpcmV0dXJuIEo7aWYoImVuZCI9PT1lZS50YWdTdHIpYnJlYWt9fSxaLnByb3RvdHlwZS5fZGVjb2RlTGlzdD1mdW5jdGlvbihXLE4sZWUscSl7Y29uc3QgSj1bXTtmb3IoOyFXLmlzRW1wdHkoKTspe2NvbnN0IHNlPXRoaXMuX3BlZWtUYWco''@;'; + put 'put ''VywiZW5kIik7aWYoVy5pc0Vycm9yKHNlKSlyZXR1cm4gc2U7Y29uc3Qgb2U9ZWUuZGVjb2RlKFcsImRlciIscSk7aWYoVy5pc0Vycm9yKG9lKSYmc2UpYnJlYWs7Si5wdXNoKG9lKX1yZXR1cm4gSn0sWi5wcm90b3R5cGUuX2RlY29kZVN0cj1mdW5jdGlvbihXLE4pe2lmKCJiaXRzdHIiPT09''@;'; + put 'put ''Til7Y29uc3QgZWU9Vy5yZWFkVUludDgoKTtyZXR1cm4gVy5pc0Vycm9yKGVlKT9lZTp7dW51c2VkOmVlLGRhdGE6Vy5yYXcoKX19aWYoImJtcHN0ciI9PT1OKXtjb25zdCBlZT1XLnJhdygpO2lmKGVlLmxlbmd0aCUyPT0xKXJldHVybiBXLmVycm9yKCJEZWNvZGluZyBvZiBzdHJpbmcgdHlw''@;'; + put 'put ''ZTogYm1wc3RyIGxlbmd0aCBtaXNtYXRjaCIpO2xldCBxPSIiO2ZvcihsZXQgSj0wO0o8ZWUubGVuZ3RoLzI7SisrKXErPVN0cmluZy5mcm9tQ2hhckNvZGUoZWUucmVhZFVJbnQxNkJFKDIqSikpO3JldHVybiBxfWlmKCJudW1zdHIiPT09Til7Y29uc3QgZWU9Vy5yYXcoKS50b1N0cmluZygi''@;'; + put 'put ''YXNjaWkiKTtyZXR1cm4gdGhpcy5faXNOdW1zdHIoZWUpP2VlOlcuZXJyb3IoIkRlY29kaW5nIG9mIHN0cmluZyB0eXBlOiBudW1zdHIgdW5zdXBwb3J0ZWQgY2hhcmFjdGVycyIpfWlmKCJvY3RzdHIiPT09TilyZXR1cm4gVy5yYXcoKTtpZigib2JqRGVzYyI9PT1OKXJldHVybiBXLnJhdygp''@;'; + put 'put ''O2lmKCJwcmludHN0ciI9PT1OKXtjb25zdCBlZT1XLnJhdygpLnRvU3RyaW5nKCJhc2NpaSIpO3JldHVybiB0aGlzLl9pc1ByaW50c3RyKGVlKT9lZTpXLmVycm9yKCJEZWNvZGluZyBvZiBzdHJpbmcgdHlwZTogcHJpbnRzdHIgdW5zdXBwb3J0ZWQgY2hhcmFjdGVycyIpfXJldHVybi9zdHIk''@;'; + put 'put ''Ly50ZXN0KE4pP1cucmF3KCkudG9TdHJpbmcoKTpXLmVycm9yKCJEZWNvZGluZyBvZiBzdHJpbmcgdHlwZTogIitOKyIgdW5zdXBwb3J0ZWQiKX0sWi5wcm90b3R5cGUuX2RlY29kZU9iamlkPWZ1bmN0aW9uKFcsTixlZSl7bGV0IHE7Y29uc3QgSj1bXTtsZXQgc2U9MCxvZT0wO2Zvcig7IVcu''@;'; + put 'put ''aXNFbXB0eSgpOylvZT1XLnJlYWRVSW50OCgpLHNlPDw9NyxzZXw9MTI3Jm9lLDA9PSgxMjgmb2UpJiYoSi5wdXNoKHNlKSxzZT0wKTtpZigxMjgmb2UmJkoucHVzaChzZSkscT1lZT9KOltKWzBdLzQwfDAsSlswXSU0MF0uY29uY2F0KEouc2xpY2UoMSkpLE4pe2xldCB2ZT1OW3Euam9pbigi''@;'; + put 'put ''ICIpXTt2b2lkIDA9PT12ZSYmKHZlPU5bcS5qb2luKCIuIildKSx2b2lkIDAhPT12ZSYmKHE9dmUpfXJldHVybiBxfSxaLnByb3RvdHlwZS5fZGVjb2RlVGltZT1mdW5jdGlvbihXLE4pe2NvbnN0IGVlPVcucmF3KCkudG9TdHJpbmcoKTtsZXQgcSxKLHNlLG9lLGNlLGRlO2lmKCJnZW50aW1l''@;'; + put 'put ''Ij09PU4pcT0wfGVlLnNsaWNlKDAsNCksSj0wfGVlLnNsaWNlKDQsNiksc2U9MHxlZS5zbGljZSg2LDgpLG9lPTB8ZWUuc2xpY2UoOCwxMCksY2U9MHxlZS5zbGljZSgxMCwxMiksZGU9MHxlZS5zbGljZSgxMiwxNCk7ZWxzZXtpZigidXRjdGltZSIhPT1OKXJldHVybiBXLmVycm9yKCJEZWNv''@;'; + put 'put ''ZGluZyAiK04rIiB0aW1lIGlzIG5vdCBzdXBwb3J0ZWQgeWV0Iik7cT0wfGVlLnNsaWNlKDAsMiksSj0wfGVlLnNsaWNlKDIsNCksc2U9MHxlZS5zbGljZSg0LDYpLG9lPTB8ZWUuc2xpY2UoNiw4KSxjZT0wfGVlLnNsaWNlKDgsMTApLGRlPTB8ZWUuc2xpY2UoMTAsMTIpLHE9cTw3MD8yZTMr''@;'; + put 'put ''cToxOTAwK3F9cmV0dXJuIERhdGUuVVRDKHEsSi0xLHNlLG9lLGNlLGRlLDApfSxaLnByb3RvdHlwZS5fZGVjb2RlTnVsbD1mdW5jdGlvbigpe3JldHVybiBudWxsfSxaLnByb3RvdHlwZS5fZGVjb2RlQm9vbD1mdW5jdGlvbihXKXtjb25zdCBOPVcucmVhZFVJbnQ4KCk7cmV0dXJuIFcuaXNF''@;'; + put 'put ''cnJvcihOKT9OOjAhPT1OfSxaLnByb3RvdHlwZS5fZGVjb2RlSW50PWZ1bmN0aW9uKFcsTil7Y29uc3QgZWU9Vy5yYXcoKTtsZXQgcT1uZXcgQihlZSk7cmV0dXJuIE4mJihxPU5bcS50b1N0cmluZygxMCldfHxxKSxxfSxaLnByb3RvdHlwZS5fdXNlPWZ1bmN0aW9uKFcsTil7cmV0dXJuImZ1''@;'; + put 'put ''bmN0aW9uIj09dHlwZW9mIFcmJihXPVcoTikpLFcuX2dldERlY29kZXIoImRlciIpLnRyZWV9fSw3MDE5NjooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7Y29uc3QgbWU9SmU7bWUuZGVyPUwoODcxMjcpLG1lLnBlbT1MKDk5NjE3KX0sOTk2MTc6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO2Nv''@;'; + put 'put ''bnN0IG1lPUwoODM4OTQpLEI9TCg2MjAzOCkuQnVmZmVyLEU9TCg4NzEyNyk7ZnVuY3Rpb24gTWUoVSl7RS5jYWxsKHRoaXMsVSksdGhpcy5lbmM9InBlbSJ9bWUoTWUsRSksWGUuZXhwb3J0cz1NZSxNZS5wcm90b3R5cGUuZGVjb2RlPWZ1bmN0aW9uKFEsWil7Y29uc3QgaWU9US50b1N0cmlu''@;'; + put 'put ''ZygpLnNwbGl0KC9bXHJcbl0rL2cpLGFlPVoubGFiZWwudG9VcHBlckNhc2UoKSxZPS9eLS0tLS0oQkVHSU58RU5EKSAoW14tXSspLS0tLS0kLztsZXQgVz0tMSxOPS0xO2ZvcihsZXQgSj0wO0o8aWUubGVuZ3RoO0orKyl7Y29uc3Qgc2U9aWVbSl0ubWF0Y2goWSk7aWYobnVsbCE9PXNlJiZz''@;'; + put 'put ''ZVsyXT09PWFlKXtpZigtMSE9PVcpe2lmKCJFTkQiIT09c2VbMV0pYnJlYWs7Tj1KO2JyZWFrfWlmKCJCRUdJTiIhPT1zZVsxXSlicmVhaztXPUp9fWlmKC0xPT09V3x8LTE9PT1OKXRocm93IG5ldyBFcnJvcigiUEVNIHNlY3Rpb24gbm90IGZvdW5kIGZvcjogIithZSk7Y29uc3QgZWU9aWUu''@;'; + put 'put ''c2xpY2UoVysxLE4pLmpvaW4oIiIpO2VlLnJlcGxhY2UoL1teYS16MC05Ky89XSsvZ2ksIiIpO2NvbnN0IHE9Qi5mcm9tKGVlLCJiYXNlNjQiKTtyZXR1cm4gRS5wcm90b3R5cGUuZGVjb2RlLmNhbGwodGhpcyxxLFopfX0sMTYzNzQ6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO2NvbnN0IG1l''@;'; + put 'put ''PUwoODM4OTQpLEI9TCg2MjAzOCkuQnVmZmVyLEU9TCgzMTQzMCksTWU9TCgyNTQ5Nik7ZnVuY3Rpb24gVShhZSl7dGhpcy5lbmM9ImRlciIsdGhpcy5uYW1lPWFlLm5hbWUsdGhpcy5lbnRpdHk9YWUsdGhpcy50cmVlPW5ldyBRLHRoaXMudHJlZS5faW5pdChhZS5ib2R5KX1mdW5jdGlvbiBR''@;'; + put 'put ''KGFlKXtFLmNhbGwodGhpcywiZGVyIixhZSl9ZnVuY3Rpb24gWihhZSl7cmV0dXJuIGFlPDEwPyIwIithZTphZX1YZS5leHBvcnRzPVUsVS5wcm90b3R5cGUuZW5jb2RlPWZ1bmN0aW9uKFksVyl7cmV0dXJuIHRoaXMudHJlZS5fZW5jb2RlKFksVykuam9pbigpfSxtZShRLEUpLFEucHJvdG90''@;'; + put 'put ''eXBlLl9lbmNvZGVDb21wb3NpdGU9ZnVuY3Rpb24oWSxXLE4sZWUpe2NvbnN0IHE9ZnVuY3Rpb24gaWUoYWUsWSxXLE4pe2xldCBlZTtpZigic2Vxb2YiPT09YWU/YWU9InNlcSI6InNldG9mIj09PWFlJiYoYWU9InNldCIpLE1lLnRhZ0J5TmFtZS5oYXNPd25Qcm9wZXJ0eShhZSkpZWU9TWUu''@;'; + put 'put ''dGFnQnlOYW1lW2FlXTtlbHNle2lmKCJudW1iZXIiIT10eXBlb2YgYWV8fCgwfGFlKSE9PWFlKXJldHVybiBOLmVycm9yKCJVbmtub3duIHRhZzogIithZSk7ZWU9YWV9cmV0dXJuIGVlPj0zMT9OLmVycm9yKCJNdWx0aS1vY3RldCB0YWcgZW5jb2RpbmcgdW5zdXBwb3J0ZWQiKTooWXx8KGVl''@;'; + put 'put ''fD0zMiksZWV8PU1lLnRhZ0NsYXNzQnlOYW1lW1d8fCJ1bml2ZXJzYWwiXTw8NixlZSl9KFksVyxOLHRoaXMucmVwb3J0ZXIpO2lmKGVlLmxlbmd0aDwxMjgpe2NvbnN0IG9lPUIuYWxsb2MoMik7cmV0dXJuIG9lWzBdPXEsb2VbMV09ZWUubGVuZ3RoLHRoaXMuX2NyZWF0ZUVuY29kZXJCdWZm''@;'; + put 'put ''ZXIoW29lLGVlXSl9bGV0IEo9MTtmb3IobGV0IG9lPWVlLmxlbmd0aDtvZT49MjU2O29lPj49OClKKys7Y29uc3Qgc2U9Qi5hbGxvYygyK0opO3NlWzBdPXEsc2VbMV09MTI4fEo7Zm9yKGxldCBvZT0xK0osY2U9ZWUubGVuZ3RoO2NlPjA7b2UtLSxjZT4+PTgpc2Vbb2VdPTI1NSZjZTtyZXR1''@;'; + put 'put ''cm4gdGhpcy5fY3JlYXRlRW5jb2RlckJ1ZmZlcihbc2UsZWVdKX0sUS5wcm90b3R5cGUuX2VuY29kZVN0cj1mdW5jdGlvbihZLFcpe2lmKCJiaXRzdHIiPT09VylyZXR1cm4gdGhpcy5fY3JlYXRlRW5jb2RlckJ1ZmZlcihbMHxZLnVudXNlZCxZLmRhdGFdKTtpZigiYm1wc3RyIj09PVcpe2Nv''@;'; + put 'put ''bnN0IE49Qi5hbGxvYygyKlkubGVuZ3RoKTtmb3IobGV0IGVlPTA7ZWU8WS5sZW5ndGg7ZWUrKylOLndyaXRlVUludDE2QkUoWS5jaGFyQ29kZUF0KGVlKSwyKmVlKTtyZXR1cm4gdGhpcy5fY3JlYXRlRW5jb2RlckJ1ZmZlcihOKX1yZXR1cm4ibnVtc3RyIj09PVc/dGhpcy5faXNOdW1zdHIo''@;'; + put 'put ''WSk/dGhpcy5fY3JlYXRlRW5jb2RlckJ1ZmZlcihZKTp0aGlzLnJlcG9ydGVyLmVycm9yKCJFbmNvZGluZyBvZiBzdHJpbmcgdHlwZTogbnVtc3RyIHN1cHBvcnRzIG9ubHkgZGlnaXRzIGFuZCBzcGFjZSIpOiJwcmludHN0ciI9PT1XP3RoaXMuX2lzUHJpbnRzdHIoWSk/dGhpcy5fY3JlYXRl''@;'; + put 'put ''RW5jb2RlckJ1ZmZlcihZKTp0aGlzLnJlcG9ydGVyLmVycm9yKCJFbmNvZGluZyBvZiBzdHJpbmcgdHlwZTogcHJpbnRzdHIgc3VwcG9ydHMgb25seSBsYXRpbiB1cHBlciBhbmQgbG93ZXIgY2FzZSBsZXR0ZXJzLCBkaWdpdHMsIHNwYWNlLCBhcG9zdHJvcGhlLCBsZWZ0IGFuZCByaWd0aCBw''@;'; + put 'put ''YXJlbnRoZXNpcywgcGx1cyBzaWduLCBjb21tYSwgaHlwaGVuLCBkb3QsIHNsYXNoLCBjb2xvbiwgZXF1YWwgc2lnbiwgcXVlc3Rpb24gbWFyayIpOi9zdHIkLy50ZXN0KFcpfHwib2JqRGVzYyI9PT1XP3RoaXMuX2NyZWF0ZUVuY29kZXJCdWZmZXIoWSk6dGhpcy5yZXBvcnRlci5lcnJvcigi''@;'; + put 'put ''RW5jb2Rpbmcgb2Ygc3RyaW5nIHR5cGU6ICIrVysiIHVuc3VwcG9ydGVkIil9LFEucHJvdG90eXBlLl9lbmNvZGVPYmppZD1mdW5jdGlvbihZLFcsTil7aWYoInN0cmluZyI9PXR5cGVvZiBZKXtpZighVylyZXR1cm4gdGhpcy5yZXBvcnRlci5lcnJvcigic3RyaW5nIG9iamlkIGdpdmVuLCBi''@;'; + put 'put ''dXQgbm8gdmFsdWVzIG1hcCBmb3VuZCIpO2lmKCFXLmhhc093blByb3BlcnR5KFkpKXJldHVybiB0aGlzLnJlcG9ydGVyLmVycm9yKCJvYmppZCBub3QgZm91bmQgaW4gdmFsdWVzIG1hcCIpO1k9V1tZXS5zcGxpdCgvW1xzLl0rL2cpO2ZvcihsZXQgc2U9MDtzZTxZLmxlbmd0aDtzZSsrKVlb''@;'; + put 'put ''c2VdfD0wfWVsc2UgaWYoQXJyYXkuaXNBcnJheShZKSl7WT1ZLnNsaWNlKCk7Zm9yKGxldCBzZT0wO3NlPFkubGVuZ3RoO3NlKyspWVtzZV18PTB9aWYoIUFycmF5LmlzQXJyYXkoWSkpcmV0dXJuIHRoaXMucmVwb3J0ZXIuZXJyb3IoIm9iamlkKCkgc2hvdWxkIGJlIGVpdGhlciBhcnJheSBv''@;'; + put 'put ''ciBzdHJpbmcsIGdvdDogIitKU09OLnN0cmluZ2lmeShZKSk7aWYoIU4pe2lmKFlbMV0+PTQwKXJldHVybiB0aGlzLnJlcG9ydGVyLmVycm9yKCJTZWNvbmQgb2JqaWQgaWRlbnRpZmllciBPT0IiKTtZLnNwbGljZSgwLDIsNDAqWVswXStZWzFdKX1sZXQgZWU9MDtmb3IobGV0IHNlPTA7c2U8''@;'; + put 'put ''WS5sZW5ndGg7c2UrKyl7bGV0IG9lPVlbc2VdO2ZvcihlZSsrO29lPj0xMjg7b2U+Pj03KWVlKyt9Y29uc3QgcT1CLmFsbG9jKGVlKTtsZXQgSj1xLmxlbmd0aC0xO2ZvcihsZXQgc2U9WS5sZW5ndGgtMTtzZT49MDtzZS0tKXtsZXQgb2U9WVtzZV07Zm9yKHFbSi0tXT0xMjcmb2U7KG9lPj49''@;'; + put 'put ''Nyk+MDspcVtKLS1dPTEyOHwxMjcmb2V9cmV0dXJuIHRoaXMuX2NyZWF0ZUVuY29kZXJCdWZmZXIocSl9LFEucHJvdG90eXBlLl9lbmNvZGVUaW1lPWZ1bmN0aW9uKFksVyl7bGV0IE47Y29uc3QgZWU9bmV3IERhdGUoWSk7cmV0dXJuImdlbnRpbWUiPT09Vz9OPVtaKGVlLmdldFVUQ0Z1bGxZ''@;'; + put 'put ''ZWFyKCkpLFooZWUuZ2V0VVRDTW9udGgoKSsxKSxaKGVlLmdldFVUQ0RhdGUoKSksWihlZS5nZXRVVENIb3VycygpKSxaKGVlLmdldFVUQ01pbnV0ZXMoKSksWihlZS5nZXRVVENTZWNvbmRzKCkpLCJaIl0uam9pbigiIik6InV0Y3RpbWUiPT09Vz9OPVtaKGVlLmdldFVUQ0Z1bGxZZWFyKCkl''@;'; + put 'put ''MTAwKSxaKGVlLmdldFVUQ01vbnRoKCkrMSksWihlZS5nZXRVVENEYXRlKCkpLFooZWUuZ2V0VVRDSG91cnMoKSksWihlZS5nZXRVVENNaW51dGVzKCkpLFooZWUuZ2V0VVRDU2Vjb25kcygpKSwiWiJdLmpvaW4oIiIpOnRoaXMucmVwb3J0ZXIuZXJyb3IoIkVuY29kaW5nICIrVysiIHRpbWUg''@;'; + put 'put ''aXMgbm90IHN1cHBvcnRlZCB5ZXQiKSx0aGlzLl9lbmNvZGVTdHIoTiwib2N0c3RyIil9LFEucHJvdG90eXBlLl9lbmNvZGVOdWxsPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2NyZWF0ZUVuY29kZXJCdWZmZXIoIiIpfSxRLnByb3RvdHlwZS5fZW5jb2RlSW50PWZ1bmN0aW9uKFksVyl7aWYo''@;'; + put 'put ''InN0cmluZyI9PXR5cGVvZiBZKXtpZighVylyZXR1cm4gdGhpcy5yZXBvcnRlci5lcnJvcigiU3RyaW5nIGludCBvciBlbnVtIGdpdmVuLCBidXQgbm8gdmFsdWVzIG1hcCIpO2lmKCFXLmhhc093blByb3BlcnR5KFkpKXJldHVybiB0aGlzLnJlcG9ydGVyLmVycm9yKCJWYWx1ZXMgbWFwIGRv''@;'; + put 'put ''ZXNuJ3QgY29udGFpbjogIitKU09OLnN0cmluZ2lmeShZKSk7WT1XW1ldfWlmKCJudW1iZXIiIT10eXBlb2YgWSYmIUIuaXNCdWZmZXIoWSkpe2NvbnN0IHE9WS50b0FycmF5KCk7IVkuc2lnbiYmMTI4JnFbMF0mJnEudW5zaGlmdCgwKSxZPUIuZnJvbShxKX1pZihCLmlzQnVmZmVyKFkpKXts''@;'; + put 'put ''ZXQgcT1ZLmxlbmd0aDswPT09WS5sZW5ndGgmJnErKztjb25zdCBKPUIuYWxsb2MocSk7cmV0dXJuIFkuY29weShKKSwwPT09WS5sZW5ndGgmJihKWzBdPTApLHRoaXMuX2NyZWF0ZUVuY29kZXJCdWZmZXIoSil9aWYoWTwxMjgpcmV0dXJuIHRoaXMuX2NyZWF0ZUVuY29kZXJCdWZmZXIoWSk7''@;'; + put 'put ''aWYoWTwyNTYpcmV0dXJuIHRoaXMuX2NyZWF0ZUVuY29kZXJCdWZmZXIoWzAsWV0pO2xldCBOPTE7Zm9yKGxldCBxPVk7cT49MjU2O3E+Pj04KU4rKztjb25zdCBlZT1uZXcgQXJyYXkoTik7Zm9yKGxldCBxPWVlLmxlbmd0aC0xO3E+PTA7cS0tKWVlW3FdPTI1NSZZLFk+Pj04O3JldHVybiAx''@;'; + put 'put ''MjgmZWVbMF0mJmVlLnVuc2hpZnQoMCksdGhpcy5fY3JlYXRlRW5jb2RlckJ1ZmZlcihCLmZyb20oZWUpKX0sUS5wcm90b3R5cGUuX2VuY29kZUJvb2w9ZnVuY3Rpb24oWSl7cmV0dXJuIHRoaXMuX2NyZWF0ZUVuY29kZXJCdWZmZXIoWT8yNTU6MCl9LFEucHJvdG90eXBlLl91c2U9ZnVuY3Rp''@;'; + put 'put ''b24oWSxXKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgWSYmKFk9WShXKSksWS5fZ2V0RW5jb2RlcigiZGVyIikudHJlZX0sUS5wcm90b3R5cGUuX3NraXBEZWZhdWx0PWZ1bmN0aW9uKFksVyxOKXtjb25zdCBlZT10aGlzLl9iYXNlU3RhdGU7bGV0IHE7aWYobnVsbD09PWVlLmRlZmF1bHQp''@;'; + put 'put ''cmV0dXJuITE7Y29uc3QgSj1ZLmpvaW4oKTtpZih2b2lkIDA9PT1lZS5kZWZhdWx0QnVmZmVyJiYoZWUuZGVmYXVsdEJ1ZmZlcj10aGlzLl9lbmNvZGVWYWx1ZShlZS5kZWZhdWx0LFcsTikuam9pbigpKSxKLmxlbmd0aCE9PWVlLmRlZmF1bHRCdWZmZXIubGVuZ3RoKXJldHVybiExO2Zvcihx''@;'; + put 'put ''PTA7cTxKLmxlbmd0aDtxKyspaWYoSltxXSE9PWVlLmRlZmF1bHRCdWZmZXJbcV0pcmV0dXJuITE7cmV0dXJuITB9fSwyMTEzMTooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7Y29uc3QgbWU9SmU7bWUuZGVyPUwoMTYzNzQpLG1lLnBlbT1MKDM1MzApfSwzNTMwOihYZSxKZSxMKT0+eyJ1c2Ug''@;'; + put 'put ''c3RyaWN0Ijtjb25zdCBtZT1MKDgzODk0KSxCPUwoMTYzNzQpO2Z1bmN0aW9uIEUoTWUpe0IuY2FsbCh0aGlzLE1lKSx0aGlzLmVuYz0icGVtIn1tZShFLEIpLFhlLmV4cG9ydHM9RSxFLnByb3RvdHlwZS5lbmNvZGU9ZnVuY3Rpb24oVSxRKXtjb25zdCBpZT1CLnByb3RvdHlwZS5lbmNvZGUu''@;'; + put 'put ''Y2FsbCh0aGlzLFUpLnRvU3RyaW5nKCJiYXNlNjQiKSxhZT1bIi0tLS0tQkVHSU4gIitRLmxhYmVsKyItLS0tLSJdO2ZvcihsZXQgWT0wO1k8aWUubGVuZ3RoO1krPTY0KWFlLnB1c2goaWUuc2xpY2UoWSxZKzY0KSk7cmV0dXJuIGFlLnB1c2goIi0tLS0tRU5EICIrUS5sYWJlbCsiLS0tLS0i''@;'; + put 'put ''KSxhZS5qb2luKCJcbiIpfX0sMTM4NTQ6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lLEIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBFKGhlLE8pe2lmKCFoZSl0aHJvdyBuZXcgRXJyb3IoT3x8IkFzc2VydGlvbiBmYWlsZWQiKX1mdW5jdGlvbiBNZShoZSxPKXtoZS5zdXBlcl89Tzt2''@;'; + put 'put ''YXIgej1mdW5jdGlvbigpe307ei5wcm90b3R5cGU9Ty5wcm90b3R5cGUsaGUucHJvdG90eXBlPW5ldyB6LGhlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1oZX1mdW5jdGlvbiBVKGhlLE8seil7aWYoVS5pc0JOKGhlKSlyZXR1cm4gaGU7dGhpcy5uZWdhdGl2ZT0wLHRoaXMud29yZHM9bnVsbCx0''@;'; + put 'put ''aGlzLmxlbmd0aD0wLHRoaXMucmVkPW51bGwsbnVsbCE9PWhlJiYoKCJsZSI9PT1PfHwiYmUiPT09TykmJih6PU8sTz0xMCksdGhpcy5faW5pdChoZXx8MCxPfHwxMCx6fHwiYmUiKSl9dmFyIFE7Im9iamVjdCI9PXR5cGVvZiBtZT9tZS5leHBvcnRzPVU6Qi5CTj1VLFUuQk49VSxVLndvcmRT''@;'; + put 'put ''aXplPTI2O3RyeXtRPSJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiZ2b2lkIDAhPT13aW5kb3cuQnVmZmVyP3dpbmRvdy5CdWZmZXI6TCg4MDk1MCkuQnVmZmVyfWNhdGNoKGhlKXt9ZnVuY3Rpb24gWihoZSxPKXt2YXIgej1oZS5jaGFyQ29kZUF0KE8pO3JldHVybiB6Pj02NSYmejw9NzA/''@;'; + put 'put ''ei01NTp6Pj05NyYmejw9MTAyP3otODc6ei00OCYxNX1mdW5jdGlvbiBpZShoZSxPLHope3ZhciBuZT1aKGhlLHopO3JldHVybiB6LTE+PU8mJihuZXw9WihoZSx6LTEpPDw0KSxuZX1mdW5jdGlvbiBhZShoZSxPLHosbmUpe2Zvcih2YXIgdGU9MCx4PU1hdGgubWluKGhlLmxlbmd0aCx6KSxQ''@;'; + put 'put ''PU87UDx4O1ArKyl7dmFyIFY9aGUuY2hhckNvZGVBdChQKS00ODt0ZSo9bmUsdGUrPVY+PTQ5P1YtNDkrMTA6Vj49MTc/Vi0xNysxMDpWfXJldHVybiB0ZX1VLmlzQk49ZnVuY3Rpb24oTyl7cmV0dXJuIE8gaW5zdGFuY2VvZiBVfHxudWxsIT09TyYmIm9iamVjdCI9PXR5cGVvZiBPJiZPLmNv''@;'; + put 'put ''bnN0cnVjdG9yLndvcmRTaXplPT09VS53b3JkU2l6ZSYmQXJyYXkuaXNBcnJheShPLndvcmRzKX0sVS5tYXg9ZnVuY3Rpb24oTyx6KXtyZXR1cm4gTy5jbXAoeik+MD9POnp9LFUubWluPWZ1bmN0aW9uKE8seil7cmV0dXJuIE8uY21wKHopPDA/Tzp6fSxVLnByb3RvdHlwZS5faW5pdD1mdW5j''@;'; + put 'put ''dGlvbihPLHosbmUpe2lmKCJudW1iZXIiPT10eXBlb2YgTylyZXR1cm4gdGhpcy5faW5pdE51bWJlcihPLHosbmUpO2lmKCJvYmplY3QiPT10eXBlb2YgTylyZXR1cm4gdGhpcy5faW5pdEFycmF5KE8seixuZSk7ImhleCI9PT16JiYoej0xNiksRSh6PT09KDB8eikmJno+PTImJno8PTM2KTt2''@;'; + put 'put ''YXIgdGU9MDsiLSI9PT0oTz1PLnRvU3RyaW5nKCkucmVwbGFjZSgvXHMrL2csIiIpKVswXSYmKHRlKyssdGhpcy5uZWdhdGl2ZT0xKSx0ZTxPLmxlbmd0aCYmKDE2PT09ej90aGlzLl9wYXJzZUhleChPLHRlLG5lKToodGhpcy5fcGFyc2VCYXNlKE8seix0ZSksImxlIj09PW5lJiZ0aGlzLl9p''@;'; + put 'put ''bml0QXJyYXkodGhpcy50b0FycmF5KCkseixuZSkpKX0sVS5wcm90b3R5cGUuX2luaXROdW1iZXI9ZnVuY3Rpb24oTyx6LG5lKXtPPDAmJih0aGlzLm5lZ2F0aXZlPTEsTz0tTyksTzw2NzEwODg2ND8odGhpcy53b3Jkcz1bNjcxMDg4NjMmT10sdGhpcy5sZW5ndGg9MSk6Tzw0NTAzNTk5NjI3''@;'; + put 'put ''MzcwNDk2Pyh0aGlzLndvcmRzPVs2NzEwODg2MyZPLE8vNjcxMDg4NjQmNjcxMDg4NjNdLHRoaXMubGVuZ3RoPTIpOihFKE88OTAwNzE5OTI1NDc0MDk5MiksdGhpcy53b3Jkcz1bNjcxMDg4NjMmTyxPLzY3MTA4ODY0JjY3MTA4ODYzLDFdLHRoaXMubGVuZ3RoPTMpLCJsZSI9PT1uZSYmdGhp''@;'; + put 'put ''cy5faW5pdEFycmF5KHRoaXMudG9BcnJheSgpLHosbmUpfSxVLnByb3RvdHlwZS5faW5pdEFycmF5PWZ1bmN0aW9uKE8seixuZSl7aWYoRSgibnVtYmVyIj09dHlwZW9mIE8ubGVuZ3RoKSxPLmxlbmd0aDw9MClyZXR1cm4gdGhpcy53b3Jkcz1bMF0sdGhpcy5sZW5ndGg9MSx0aGlzO3RoaXMu''@;'; + put 'put ''bGVuZ3RoPU1hdGguY2VpbChPLmxlbmd0aC8zKSx0aGlzLndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCk7Zm9yKHZhciB0ZT0wO3RlPHRoaXMubGVuZ3RoO3RlKyspdGhpcy53b3Jkc1t0ZV09MDt2YXIgeCxQLFY9MDtpZigiYmUiPT09bmUpZm9yKHRlPU8ubGVuZ3RoLTEseD0wO3RlPj0w''@;'; + put 'put ''O3RlLT0zKXRoaXMud29yZHNbeF18PShQPU9bdGVdfE9bdGUtMV08PDh8T1t0ZS0yXTw8MTYpPDxWJjY3MTA4ODYzLHRoaXMud29yZHNbeCsxXT1QPj4+MjYtViY2NzEwODg2MywoVis9MjQpPj0yNiYmKFYtPTI2LHgrKyk7ZWxzZSBpZigibGUiPT09bmUpZm9yKHRlPTAseD0wO3RlPE8ubGVu''@;'; + put 'put ''Z3RoO3RlKz0zKXRoaXMud29yZHNbeF18PShQPU9bdGVdfE9bdGUrMV08PDh8T1t0ZSsyXTw8MTYpPDxWJjY3MTA4ODYzLHRoaXMud29yZHNbeCsxXT1QPj4+MjYtViY2NzEwODg2MywoVis9MjQpPj0yNiYmKFYtPTI2LHgrKyk7cmV0dXJuIHRoaXMuc3RyaXAoKX0sVS5wcm90b3R5cGUuX3Bh''@;'; + put 'put ''cnNlSGV4PWZ1bmN0aW9uKE8seixuZSl7dGhpcy5sZW5ndGg9TWF0aC5jZWlsKChPLmxlbmd0aC16KS82KSx0aGlzLndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCk7Zm9yKHZhciB0ZT0wO3RlPHRoaXMubGVuZ3RoO3RlKyspdGhpcy53b3Jkc1t0ZV09MDt2YXIgVix4PTAsUD0wO2lmKCJi''@;'; + put 'put ''ZSI9PT1uZSlmb3IodGU9Ty5sZW5ndGgtMTt0ZT49ejt0ZS09MilWPWllKE8seix0ZSk8PHgsdGhpcy53b3Jkc1tQXXw9NjcxMDg4NjMmVix4Pj0xOD8oeC09MTgsdGhpcy53b3Jkc1tQKz0xXXw9Vj4+PjI2KTp4Kz04O2Vsc2UgZm9yKHRlPShPLmxlbmd0aC16KSUyPT0wP3orMTp6O3RlPE8u''@;'; + put 'put ''bGVuZ3RoO3RlKz0yKVY9aWUoTyx6LHRlKTw8eCx0aGlzLndvcmRzW1BdfD02NzEwODg2MyZWLHg+PTE4Pyh4LT0xOCx0aGlzLndvcmRzW1ArPTFdfD1WPj4+MjYpOngrPTg7dGhpcy5zdHJpcCgpfSxVLnByb3RvdHlwZS5fcGFyc2VCYXNlPWZ1bmN0aW9uKE8seixuZSl7dGhpcy53b3Jkcz1b''@;'; + put 'put ''MF0sdGhpcy5sZW5ndGg9MTtmb3IodmFyIHRlPTAseD0xO3g8PTY3MTA4ODYzO3gqPXopdGUrKzt0ZS0tLHg9eC96fDA7Zm9yKHZhciBQPU8ubGVuZ3RoLW5lLFY9UCV0ZSxUPU1hdGgubWluKFAsUC1WKStuZSxTPTAsRj1uZTtGPFQ7Ris9dGUpUz1hZShPLEYsRit0ZSx6KSx0aGlzLmltdWxu''@;'; + put 'put ''KHgpLHRoaXMud29yZHNbMF0rUzw2NzEwODg2ND90aGlzLndvcmRzWzBdKz1TOnRoaXMuX2lhZGRuKFMpO2lmKDAhPT1WKXt2YXIgeWU9MTtmb3IoUz1hZShPLEYsTy5sZW5ndGgseiksRj0wO0Y8VjtGKyspeWUqPXo7dGhpcy5pbXVsbih5ZSksdGhpcy53b3Jkc1swXStTPDY3MTA4ODY0P3Ro''@;'; + put 'put ''aXMud29yZHNbMF0rPVM6dGhpcy5faWFkZG4oUyl9dGhpcy5zdHJpcCgpfSxVLnByb3RvdHlwZS5jb3B5PWZ1bmN0aW9uKE8pe08ud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoKTtmb3IodmFyIHo9MDt6PHRoaXMubGVuZ3RoO3orKylPLndvcmRzW3pdPXRoaXMud29yZHNbel07Ty5sZW5n''@;'; + put 'put ''dGg9dGhpcy5sZW5ndGgsTy5uZWdhdGl2ZT10aGlzLm5lZ2F0aXZlLE8ucmVkPXRoaXMucmVkfSxVLnByb3RvdHlwZS5jbG9uZT1mdW5jdGlvbigpe3ZhciBPPW5ldyBVKG51bGwpO3JldHVybiB0aGlzLmNvcHkoTyksT30sVS5wcm90b3R5cGUuX2V4cGFuZD1mdW5jdGlvbihPKXtmb3IoO3Ro''@;'; + put 'put ''aXMubGVuZ3RoPE87KXRoaXMud29yZHNbdGhpcy5sZW5ndGgrK109MDtyZXR1cm4gdGhpc30sVS5wcm90b3R5cGUuc3RyaXA9ZnVuY3Rpb24oKXtmb3IoO3RoaXMubGVuZ3RoPjEmJjA9PT10aGlzLndvcmRzW3RoaXMubGVuZ3RoLTFdOyl0aGlzLmxlbmd0aC0tO3JldHVybiB0aGlzLl9ub3Jt''@;'; + put 'put ''U2lnbigpfSxVLnByb3RvdHlwZS5fbm9ybVNpZ249ZnVuY3Rpb24oKXtyZXR1cm4gMT09PXRoaXMubGVuZ3RoJiYwPT09dGhpcy53b3Jkc1swXSYmKHRoaXMubmVnYXRpdmU9MCksdGhpc30sVS5wcm90b3R5cGUuaW5zcGVjdD1mdW5jdGlvbigpe3JldHVybih0aGlzLnJlZD8iPEJOLVI6ICI6''@;'; + put 'put ''IjxCTjogIikrdGhpcy50b1N0cmluZygxNikrIj4ifTt2YXIgWT1bIiIsIjAiLCIwMCIsIjAwMCIsIjAwMDAiLCIwMDAwMCIsIjAwMDAwMCIsIjAwMDAwMDAiLCIwMDAwMDAwMCIsIjAwMDAwMDAwMCIsIjAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMCIsIjAwMDAwMDAw''@;'; + put 'put ''MDAwMDAiLCIwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAw''@;'; + put 'put ''MDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiXSxXPVswLDAsMjUsMTYsMTIsMTEsMTAsOSw4LDgsNyw3LDcsNyw2LDYsNiw2LDYsNiw2LDUs''@;'; + put 'put ''NSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDVdLE49WzAsMCwzMzU1NDQzMiw0MzA0NjcyMSwxNjc3NzIxNiw0ODgyODEyNSw2MDQ2NjE3Niw0MDM1MzYwNywxNjc3NzIxNiw0MzA0NjcyMSwxZTcsMTk0ODcxNzEsMzU4MzE4MDgsNjI3NDg1MTcsNzUyOTUzNiwxMTM5MDYyNSwxNjc3NzIx''@;'; + put 'put ''NiwyNDEzNzU2OSwzNDAxMjIyNCw0NzA0NTg4MSw2NGU2LDQwODQxMDEsNTE1MzYzMiw2NDM2MzQzLDc5NjI2MjQsOTc2NTYyNSwxMTg4MTM3NiwxNDM0ODkwNywxNzIxMDM2OCwyMDUxMTE0OSwyNDNlNSwyODYyOTE1MSwzMzU1NDQzMiwzOTEzNTM5Myw0NTQzNTQyNCw1MjUyMTg3NSw2MDQ2''@;'; + put 'put ''NjE3Nl07ZnVuY3Rpb24gcShoZSxPLHope3oubmVnYXRpdmU9Ty5uZWdhdGl2ZV5oZS5uZWdhdGl2ZTt2YXIgbmU9aGUubGVuZ3RoK08ubGVuZ3RofDA7ei5sZW5ndGg9bmUsbmU9bmUtMXwwO3ZhciB0ZT0wfGhlLndvcmRzWzBdLHg9MHxPLndvcmRzWzBdLFA9dGUqeCxUPVAvNjcxMDg4NjR8''@;'; + put 'put ''MDt6LndvcmRzWzBdPTY3MTA4ODYzJlA7Zm9yKHZhciBTPTE7UzxuZTtTKyspe2Zvcih2YXIgRj1UPj4+MjYseWU9NjcxMDg4NjMmVCxDZT1NYXRoLm1pbihTLE8ubGVuZ3RoLTEpLERlPU1hdGgubWF4KDAsUy1oZS5sZW5ndGgrMSk7RGU8PUNlO0RlKyspRis9KFA9KHRlPTB8aGUud29yZHNb''@;'; + put 'put ''Uy1EZXwwXSkqKHg9MHxPLndvcmRzW0RlXSkreWUpLzY3MTA4ODY0fDAseWU9NjcxMDg4NjMmUDt6LndvcmRzW1NdPTB8eWUsVD0wfEZ9cmV0dXJuIDAhPT1UP3oud29yZHNbU109MHxUOnoubGVuZ3RoLS0sei5zdHJpcCgpfVUucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKE8seil7dmFy''@;'; + put 'put ''IG5lO2lmKHo9MHx6fHwxLDE2PT09KE89T3x8MTApfHwiaGV4Ij09PU8pe25lPSIiO2Zvcih2YXIgdGU9MCx4PTAsUD0wO1A8dGhpcy5sZW5ndGg7UCsrKXt2YXIgVj10aGlzLndvcmRzW1BdLFQ9KDE2Nzc3MjE1JihWPDx0ZXx4KSkudG9TdHJpbmcoMTYpO25lPTAhPSh4PVY+Pj4yNC10ZSYx''@;'; + put 'put ''Njc3NzIxNSl8fFAhPT10aGlzLmxlbmd0aC0xP1lbNi1ULmxlbmd0aF0rVCtuZTpUK25lLCh0ZSs9Mik+PTI2JiYodGUtPTI2LFAtLSl9Zm9yKDAhPT14JiYobmU9eC50b1N0cmluZygxNikrbmUpO25lLmxlbmd0aCV6IT0wOyluZT0iMCIrbmU7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlJiYo''@;'; + put 'put ''bmU9Ii0iK25lKSxuZX1pZihPPT09KDB8TykmJk8+PTImJk88PTM2KXt2YXIgUz1XW09dLEY9TltPXTtuZT0iIjt2YXIgeWU9dGhpcy5jbG9uZSgpO2Zvcih5ZS5uZWdhdGl2ZT0wOyF5ZS5pc1plcm8oKTspe3ZhciBDZT15ZS5tb2RuKEYpLnRvU3RyaW5nKE8pO25lPSh5ZT15ZS5pZGl2bihG''@;'; + put 'put ''KSkuaXNaZXJvKCk/Q2UrbmU6WVtTLUNlLmxlbmd0aF0rQ2UrbmV9Zm9yKHRoaXMuaXNaZXJvKCkmJihuZT0iMCIrbmUpO25lLmxlbmd0aCV6IT0wOyluZT0iMCIrbmU7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlJiYobmU9Ii0iK25lKSxuZX1FKCExLCJCYXNlIHNob3VsZCBiZSBiZXR3ZWVu''@;'; + put 'put ''IDIgYW5kIDM2Iil9LFUucHJvdG90eXBlLnRvTnVtYmVyPWZ1bmN0aW9uKCl7dmFyIE89dGhpcy53b3Jkc1swXTtyZXR1cm4gMj09PXRoaXMubGVuZ3RoP08rPTY3MTA4ODY0KnRoaXMud29yZHNbMV06Mz09PXRoaXMubGVuZ3RoJiYxPT09dGhpcy53b3Jkc1syXT9PKz00NTAzNTk5NjI3Mzcw''@;'; + put 'put ''NDk2KzY3MTA4ODY0KnRoaXMud29yZHNbMV06dGhpcy5sZW5ndGg+MiYmRSghMSwiTnVtYmVyIGNhbiBvbmx5IHNhZmVseSBzdG9yZSB1cCB0byA1MyBiaXRzIiksMCE9PXRoaXMubmVnYXRpdmU/LU86T30sVS5wcm90b3R5cGUudG9KU09OPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudG9TdHJp''@;'; + put 'put ''bmcoMTYpfSxVLnByb3RvdHlwZS50b0J1ZmZlcj1mdW5jdGlvbihPLHope3JldHVybiBFKHZvaWQgMCE9PVEpLHRoaXMudG9BcnJheUxpa2UoUSxPLHopfSxVLnByb3RvdHlwZS50b0FycmF5PWZ1bmN0aW9uKE8seil7cmV0dXJuIHRoaXMudG9BcnJheUxpa2UoQXJyYXksTyx6KX0sVS5wcm90''@;'; + put 'put ''b3R5cGUudG9BcnJheUxpa2U9ZnVuY3Rpb24oTyx6LG5lKXt2YXIgdGU9dGhpcy5ieXRlTGVuZ3RoKCkseD1uZXx8TWF0aC5tYXgoMSx0ZSk7RSh0ZTw9eCwiYnl0ZSBhcnJheSBsb25nZXIgdGhhbiBkZXNpcmVkIGxlbmd0aCIpLEUoeD4wLCJSZXF1ZXN0ZWQgYXJyYXkgbGVuZ3RoIDw9IDAi''@;'; + put 'put ''KSx0aGlzLnN0cmlwKCk7dmFyIFQsUyxQPSJsZSI9PT16LFY9bmV3IE8oeCksRj10aGlzLmNsb25lKCk7aWYoUCl7Zm9yKFM9MDshRi5pc1plcm8oKTtTKyspVD1GLmFuZGxuKDI1NSksRi5pdXNocm4oOCksVltTXT1UO2Zvcig7Uzx4O1MrKylWW1NdPTB9ZWxzZXtmb3IoUz0wO1M8eC10ZTtT''@;'; + put 'put ''KyspVltTXT0wO2ZvcihTPTA7IUYuaXNaZXJvKCk7UysrKVQ9Ri5hbmRsbigyNTUpLEYuaXVzaHJuKDgpLFZbeC1TLTFdPVR9cmV0dXJuIFZ9LFUucHJvdG90eXBlLl9jb3VudEJpdHM9TWF0aC5jbHozMj9mdW5jdGlvbihPKXtyZXR1cm4gMzItTWF0aC5jbHozMihPKX06ZnVuY3Rpb24oTyl7''@;'; + put 'put ''dmFyIHo9TyxuZT0wO3JldHVybiB6Pj00MDk2JiYobmUrPTEzLHo+Pj49MTMpLHo+PTY0JiYobmUrPTcsej4+Pj03KSx6Pj04JiYobmUrPTQsej4+Pj00KSx6Pj0yJiYobmUrPTIsej4+Pj0yKSxuZSt6fSxVLnByb3RvdHlwZS5femVyb0JpdHM9ZnVuY3Rpb24oTyl7aWYoMD09PU8pcmV0dXJu''@;'; + put 'put ''IDI2O3ZhciB6PU8sbmU9MDtyZXR1cm4gMD09KDgxOTEmeikmJihuZSs9MTMsej4+Pj0xMyksMD09KDEyNyZ6KSYmKG5lKz03LHo+Pj49NyksMD09KDE1JnopJiYobmUrPTQsej4+Pj00KSwwPT0oMyZ6KSYmKG5lKz0yLHo+Pj49MiksMD09KDEmeikmJm5lKyssbmV9LFUucHJvdG90eXBlLmJp''@;'; + put 'put ''dExlbmd0aD1mdW5jdGlvbigpe3ZhciB6PXRoaXMuX2NvdW50Qml0cyh0aGlzLndvcmRzW3RoaXMubGVuZ3RoLTFdKTtyZXR1cm4gMjYqKHRoaXMubGVuZ3RoLTEpK3p9LFUucHJvdG90eXBlLnplcm9CaXRzPWZ1bmN0aW9uKCl7aWYodGhpcy5pc1plcm8oKSlyZXR1cm4gMDtmb3IodmFyIE89''@;'; + put 'put ''MCx6PTA7ejx0aGlzLmxlbmd0aDt6Kyspe3ZhciBuZT10aGlzLl96ZXJvQml0cyh0aGlzLndvcmRzW3pdKTtpZihPKz1uZSwyNiE9PW5lKWJyZWFrfXJldHVybiBPfSxVLnByb3RvdHlwZS5ieXRlTGVuZ3RoPWZ1bmN0aW9uKCl7cmV0dXJuIE1hdGguY2VpbCh0aGlzLmJpdExlbmd0aCgpLzgp''@;'; + put 'put ''fSxVLnByb3RvdHlwZS50b1R3b3M9ZnVuY3Rpb24oTyl7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlP3RoaXMuYWJzKCkuaW5vdG4oTykuaWFkZG4oMSk6dGhpcy5jbG9uZSgpfSxVLnByb3RvdHlwZS5mcm9tVHdvcz1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy50ZXN0bihPLTEpP3RoaXMubm90''@;'; + put 'put ''bihPKS5pYWRkbigxKS5pbmVnKCk6dGhpcy5jbG9uZSgpfSxVLnByb3RvdHlwZS5pc05lZz1mdW5jdGlvbigpe3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZX0sVS5wcm90b3R5cGUubmVnPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pbmVnKCl9LFUucHJvdG90eXBlLmluZWc9ZnVu''@;'; + put 'put ''Y3Rpb24oKXtyZXR1cm4gdGhpcy5pc1plcm8oKXx8KHRoaXMubmVnYXRpdmVePTEpLHRoaXN9LFUucHJvdG90eXBlLml1b3I9ZnVuY3Rpb24oTyl7Zm9yKDt0aGlzLmxlbmd0aDxPLmxlbmd0aDspdGhpcy53b3Jkc1t0aGlzLmxlbmd0aCsrXT0wO2Zvcih2YXIgej0wO3o8Ty5sZW5ndGg7eisr''@;'; + put 'put ''KXRoaXMud29yZHNbel09dGhpcy53b3Jkc1t6XXxPLndvcmRzW3pdO3JldHVybiB0aGlzLnN0cmlwKCl9LFUucHJvdG90eXBlLmlvcj1mdW5jdGlvbihPKXtyZXR1cm4gRSgwPT0odGhpcy5uZWdhdGl2ZXxPLm5lZ2F0aXZlKSksdGhpcy5pdW9yKE8pfSxVLnByb3RvdHlwZS5vcj1mdW5jdGlv''@;'; + put 'put ''bihPKXtyZXR1cm4gdGhpcy5sZW5ndGg+Ty5sZW5ndGg/dGhpcy5jbG9uZSgpLmlvcihPKTpPLmNsb25lKCkuaW9yKHRoaXMpfSxVLnByb3RvdHlwZS51b3I9ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMubGVuZ3RoPk8ubGVuZ3RoP3RoaXMuY2xvbmUoKS5pdW9yKE8pOk8uY2xvbmUoKS5pdW9y''@;'; + put 'put ''KHRoaXMpfSxVLnByb3RvdHlwZS5pdWFuZD1mdW5jdGlvbihPKXt2YXIgejt6PXRoaXMubGVuZ3RoPk8ubGVuZ3RoP086dGhpcztmb3IodmFyIG5lPTA7bmU8ei5sZW5ndGg7bmUrKyl0aGlzLndvcmRzW25lXT10aGlzLndvcmRzW25lXSZPLndvcmRzW25lXTtyZXR1cm4gdGhpcy5sZW5ndGg9''@;'; + put 'put ''ei5sZW5ndGgsdGhpcy5zdHJpcCgpfSxVLnByb3RvdHlwZS5pYW5kPWZ1bmN0aW9uKE8pe3JldHVybiBFKDA9PSh0aGlzLm5lZ2F0aXZlfE8ubmVnYXRpdmUpKSx0aGlzLml1YW5kKE8pfSxVLnByb3RvdHlwZS5hbmQ9ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMubGVuZ3RoPk8ubGVuZ3RoP3Ro''@;'; + put 'put ''aXMuY2xvbmUoKS5pYW5kKE8pOk8uY2xvbmUoKS5pYW5kKHRoaXMpfSxVLnByb3RvdHlwZS51YW5kPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmxlbmd0aD5PLmxlbmd0aD90aGlzLmNsb25lKCkuaXVhbmQoTyk6Ty5jbG9uZSgpLml1YW5kKHRoaXMpfSxVLnByb3RvdHlwZS5pdXhvcj1mdW5j''@;'; + put 'put ''dGlvbihPKXt2YXIgeixuZTt0aGlzLmxlbmd0aD5PLmxlbmd0aD8oej10aGlzLG5lPU8pOih6PU8sbmU9dGhpcyk7Zm9yKHZhciB0ZT0wO3RlPG5lLmxlbmd0aDt0ZSsrKXRoaXMud29yZHNbdGVdPXoud29yZHNbdGVdXm5lLndvcmRzW3RlXTtpZih0aGlzIT09eilmb3IoO3RlPHoubGVuZ3Ro''@;'; + put 'put ''O3RlKyspdGhpcy53b3Jkc1t0ZV09ei53b3Jkc1t0ZV07cmV0dXJuIHRoaXMubGVuZ3RoPXoubGVuZ3RoLHRoaXMuc3RyaXAoKX0sVS5wcm90b3R5cGUuaXhvcj1mdW5jdGlvbihPKXtyZXR1cm4gRSgwPT0odGhpcy5uZWdhdGl2ZXxPLm5lZ2F0aXZlKSksdGhpcy5pdXhvcihPKX0sVS5wcm90''@;'; + put 'put ''b3R5cGUueG9yPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmxlbmd0aD5PLmxlbmd0aD90aGlzLmNsb25lKCkuaXhvcihPKTpPLmNsb25lKCkuaXhvcih0aGlzKX0sVS5wcm90b3R5cGUudXhvcj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5sZW5ndGg+Ty5sZW5ndGg/dGhpcy5jbG9uZSgpLml1''@;'; + put 'put ''eG9yKE8pOk8uY2xvbmUoKS5pdXhvcih0aGlzKX0sVS5wcm90b3R5cGUuaW5vdG49ZnVuY3Rpb24oTyl7RSgibnVtYmVyIj09dHlwZW9mIE8mJk8+PTApO3ZhciB6PTB8TWF0aC5jZWlsKE8vMjYpLG5lPU8lMjY7dGhpcy5fZXhwYW5kKHopLG5lPjAmJnotLTtmb3IodmFyIHRlPTA7dGU8ejt0''@;'; + put 'put ''ZSsrKXRoaXMud29yZHNbdGVdPTY3MTA4ODYzJn50aGlzLndvcmRzW3RlXTtyZXR1cm4gbmU+MCYmKHRoaXMud29yZHNbdGVdPX50aGlzLndvcmRzW3RlXSY2NzEwODg2Mz4+MjYtbmUpLHRoaXMuc3RyaXAoKX0sVS5wcm90b3R5cGUubm90bj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5jbG9u''@;'; + put 'put ''ZSgpLmlub3RuKE8pfSxVLnByb3RvdHlwZS5zZXRuPWZ1bmN0aW9uKE8seil7RSgibnVtYmVyIj09dHlwZW9mIE8mJk8+PTApO3ZhciBuZT1PLzI2fDAsdGU9TyUyNjtyZXR1cm4gdGhpcy5fZXhwYW5kKG5lKzEpLHRoaXMud29yZHNbbmVdPXo/dGhpcy53b3Jkc1tuZV18MTw8dGU6dGhpcy53''@;'; + put 'put ''b3Jkc1tuZV0mfigxPDx0ZSksdGhpcy5zdHJpcCgpfSxVLnByb3RvdHlwZS5pYWRkPWZ1bmN0aW9uKE8pe3ZhciB6LG5lLHRlO2lmKDAhPT10aGlzLm5lZ2F0aXZlJiYwPT09Ty5uZWdhdGl2ZSlyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLHo9dGhpcy5pc3ViKE8pLHRoaXMubmVnYXRpdmVePTEs''@;'; + put 'put ''dGhpcy5fbm9ybVNpZ24oKTtpZigwPT09dGhpcy5uZWdhdGl2ZSYmMCE9PU8ubmVnYXRpdmUpcmV0dXJuIE8ubmVnYXRpdmU9MCx6PXRoaXMuaXN1YihPKSxPLm5lZ2F0aXZlPTEsei5fbm9ybVNpZ24oKTt0aGlzLmxlbmd0aD5PLmxlbmd0aD8obmU9dGhpcyx0ZT1PKToobmU9Tyx0ZT10aGlz''@;'; + put 'put ''KTtmb3IodmFyIHg9MCxQPTA7UDx0ZS5sZW5ndGg7UCsrKXRoaXMud29yZHNbUF09NjcxMDg4NjMmKHo9KDB8bmUud29yZHNbUF0pKygwfHRlLndvcmRzW1BdKSt4KSx4PXo+Pj4yNjtmb3IoOzAhPT14JiZQPG5lLmxlbmd0aDtQKyspdGhpcy53b3Jkc1tQXT02NzEwODg2MyYoej0oMHxuZS53''@;'; + put 'put ''b3Jkc1tQXSkreCkseD16Pj4+MjY7aWYodGhpcy5sZW5ndGg9bmUubGVuZ3RoLDAhPT14KXRoaXMud29yZHNbdGhpcy5sZW5ndGhdPXgsdGhpcy5sZW5ndGgrKztlbHNlIGlmKG5lIT09dGhpcylmb3IoO1A8bmUubGVuZ3RoO1ArKyl0aGlzLndvcmRzW1BdPW5lLndvcmRzW1BdO3JldHVybiB0''@;'; + put 'put ''aGlzfSxVLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oTyl7dmFyIHo7cmV0dXJuIDAhPT1PLm5lZ2F0aXZlJiYwPT09dGhpcy5uZWdhdGl2ZT8oTy5uZWdhdGl2ZT0wLHo9dGhpcy5zdWIoTyksTy5uZWdhdGl2ZV49MSx6KTowPT09Ty5uZWdhdGl2ZSYmMCE9PXRoaXMubmVnYXRpdmU/KHRoaXMu''@;'; + put 'put ''bmVnYXRpdmU9MCx6PU8uc3ViKHRoaXMpLHRoaXMubmVnYXRpdmU9MSx6KTp0aGlzLmxlbmd0aD5PLmxlbmd0aD90aGlzLmNsb25lKCkuaWFkZChPKTpPLmNsb25lKCkuaWFkZCh0aGlzKX0sVS5wcm90b3R5cGUuaXN1Yj1mdW5jdGlvbihPKXtpZigwIT09Ty5uZWdhdGl2ZSl7Ty5uZWdhdGl2''@;'; + put 'put ''ZT0wO3ZhciB6PXRoaXMuaWFkZChPKTtyZXR1cm4gTy5uZWdhdGl2ZT0xLHouX25vcm1TaWduKCl9aWYoMCE9PXRoaXMubmVnYXRpdmUpcmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlzLmlhZGQoTyksdGhpcy5uZWdhdGl2ZT0xLHRoaXMuX25vcm1TaWduKCk7dmFyIHRlLHgsbmU9dGhpcy5j''@;'; + put 'put ''bXAoTyk7aWYoMD09PW5lKXJldHVybiB0aGlzLm5lZ2F0aXZlPTAsdGhpcy5sZW5ndGg9MSx0aGlzLndvcmRzWzBdPTAsdGhpcztuZT4wPyh0ZT10aGlzLHg9Tyk6KHRlPU8seD10aGlzKTtmb3IodmFyIFA9MCxWPTA7Vjx4Lmxlbmd0aDtWKyspUD0oej0oMHx0ZS53b3Jkc1tWXSktKDB8eC53''@;'; + put 'put ''b3Jkc1tWXSkrUCk+PjI2LHRoaXMud29yZHNbVl09NjcxMDg4NjMmejtmb3IoOzAhPT1QJiZWPHRlLmxlbmd0aDtWKyspUD0oej0oMHx0ZS53b3Jkc1tWXSkrUCk+PjI2LHRoaXMud29yZHNbVl09NjcxMDg4NjMmejtpZigwPT09UCYmVjx0ZS5sZW5ndGgmJnRlIT09dGhpcylmb3IoO1Y8dGUu''@;'; + put 'put ''bGVuZ3RoO1YrKyl0aGlzLndvcmRzW1ZdPXRlLndvcmRzW1ZdO3JldHVybiB0aGlzLmxlbmd0aD1NYXRoLm1heCh0aGlzLmxlbmd0aCxWKSx0ZSE9PXRoaXMmJih0aGlzLm5lZ2F0aXZlPTEpLHRoaXMuc3RyaXAoKX0sVS5wcm90b3R5cGUuc3ViPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmNs''@;'; + put 'put ''b25lKCkuaXN1YihPKX07dmFyIEo9ZnVuY3Rpb24oTyx6LG5lKXt2YXIgVCxTLEYsdGU9Ty53b3Jkcyx4PXoud29yZHMsUD1uZS53b3JkcyxWPTAseWU9MHx0ZVswXSxDZT04MTkxJnllLERlPXllPj4+MTMsUGU9MHx0ZVsxXSxRZT04MTkxJlBlLCRlPVBlPj4+MTMsZ3Q9MHx0ZVsyXSx3dD04''@;'; + put 'put ''MTkxJmd0LG10PWd0Pj4+MTMsdnQ9MHx0ZVszXSxBdD04MTkxJnZ0LGh0PXZ0Pj4+MTMsQnQ9MHx0ZVs0XSxvbj04MTkxJkJ0LF90PUJ0Pj4+MTMsdHQ9MHx0ZVs1XSxldD04MTkxJnR0LGF0PXR0Pj4+MTMsTHQ9MHx0ZVs2XSxDdD04MTkxJkx0LGZ0PUx0Pj4+MTMsSHQ9MHx0ZVs3XSxHZT04''@;'; + put 'put ''MTkxJkh0LFVlPUh0Pj4+MTMseXQ9MHx0ZVs4XSxqdD04MTkxJnl0LFF0PXl0Pj4+MTMsZ249MHx0ZVs5XSxkbj04MTkxJmduLHluPWduPj4+MTMsbG49MHx4WzBdLE5uPTgxOTEmbG4sYm49bG4+Pj4xMyxlcj0wfHhbMV0sc3I9ODE5MSZlcixYbj1lcj4+PjEzLEZyPTB8eFsyXSx4cj04MTkx''@;'; + put 'put ''JkZyLHF0PUZyPj4+MTMscHI9MHx4WzNdLG5yPTgxOTEmcHIsQW49cHI+Pj4xMyxxbj0wfHhbNF0sV3Q9ODE5MSZxbixwbj1xbj4+PjEzLEtuPTB8eFs1XSxOdD04MTkxJktuLHNuPUtuPj4+MTMsVW49MHx4WzZdLHduPTgxOTEmVW4sdG49VW4+Pj4xMyx6bj0wfHhbN10sVHI9ODE5MSZ6bixC''@;'; + put 'put ''bj16bj4+PjEzLGtyPTB8eFs4XSxtbj04MTkxJmtyLHVuPWtyPj4+MTMsY249MHx4WzldLF9uPTgxOTEmY24sR3Q9Y24+Pj4xMztuZS5uZWdhdGl2ZT1PLm5lZ2F0aXZlXnoubmVnYXRpdmUsbmUubGVuZ3RoPTE5O3ZhciBrbj0oVisoVD1NYXRoLmltdWwoQ2UsTm4pKXwwKSsoKDgxOTEmKFM9''@;'; + put 'put ''KFM9TWF0aC5pbXVsKENlLGJuKSkrTWF0aC5pbXVsKERlLE5uKXwwKSk8PDEzKXwwO1Y9KChGPU1hdGguaW11bChEZSxibikpKyhTPj4+MTMpfDApKyhrbj4+PjI2KXwwLGtuJj02NzEwODg2MyxUPU1hdGguaW11bChRZSxObiksUz0oUz1NYXRoLmltdWwoUWUsYm4pKStNYXRoLmltdWwoJGUs''@;'; + put 'put ''Tm4pfDAsRj1NYXRoLmltdWwoJGUsYm4pO3ZhciBWbj0oVisoVD1UK01hdGguaW11bChDZSxzcil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKENlLFhuKXwwKStNYXRoLmltdWwoRGUsc3IpfDApKTw8MTMpfDA7Vj0oKEY9RitNYXRoLmltdWwoRGUsWG4pfDApKyhTPj4+MTMpfDAp''@;'; + put 'put ''KyhWbj4+PjI2KXwwLFZuJj02NzEwODg2MyxUPU1hdGguaW11bCh3dCxObiksUz0oUz1NYXRoLmltdWwod3QsYm4pKStNYXRoLmltdWwobXQsTm4pfDAsRj1NYXRoLmltdWwobXQsYm4pLFQ9VCtNYXRoLmltdWwoUWUsc3IpfDAsUz0oUz1TK01hdGguaW11bChRZSxYbil8MCkrTWF0aC5pbXVs''@;'; + put 'put ''KCRlLHNyKXwwLEY9RitNYXRoLmltdWwoJGUsWG4pfDA7dmFyIGVuPShWKyhUPVQrTWF0aC5pbXVsKENlLHhyKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoQ2UscXQpfDApK01hdGguaW11bChEZSx4cil8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bChEZSxxdCl8MCkrKFM+''@;'; + put 'put ''Pj4xMyl8MCkrKGVuPj4+MjYpfDAsZW4mPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKEF0LE5uKSxTPShTPU1hdGguaW11bChBdCxibikpK01hdGguaW11bChodCxObil8MCxGPU1hdGguaW11bChodCxibiksVD1UK01hdGguaW11bCh3dCxzcil8MCxTPShTPVMrTWF0aC5pbXVsKHd0LFhuKXwwKStN''@;'; + put 'put ''YXRoLmltdWwobXQsc3IpfDAsRj1GK01hdGguaW11bChtdCxYbil8MCxUPVQrTWF0aC5pbXVsKFFlLHhyKXwwLFM9KFM9UytNYXRoLmltdWwoUWUscXQpfDApK01hdGguaW11bCgkZSx4cil8MCxGPUYrTWF0aC5pbXVsKCRlLHF0KXwwO3ZhciBJbj0oVisoVD1UK01hdGguaW11bChDZSxucil8''@;'; + put 'put ''MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKENlLEFuKXwwKStNYXRoLmltdWwoRGUsbnIpfDApKTw8MTMpfDA7Vj0oKEY9RitNYXRoLmltdWwoRGUsQW4pfDApKyhTPj4+MTMpfDApKyhJbj4+PjI2KXwwLEluJj02NzEwODg2MyxUPU1hdGguaW11bChvbixObiksUz0oUz1NYXRoLmlt''@;'; + put 'put ''dWwob24sYm4pKStNYXRoLmltdWwoX3QsTm4pfDAsRj1NYXRoLmltdWwoX3QsYm4pLFQ9VCtNYXRoLmltdWwoQXQsc3IpfDAsUz0oUz1TK01hdGguaW11bChBdCxYbil8MCkrTWF0aC5pbXVsKGh0LHNyKXwwLEY9RitNYXRoLmltdWwoaHQsWG4pfDAsVD1UK01hdGguaW11bCh3dCx4cil8MCxT''@;'; + put 'put ''PShTPVMrTWF0aC5pbXVsKHd0LHF0KXwwKStNYXRoLmltdWwobXQseHIpfDAsRj1GK01hdGguaW11bChtdCxxdCl8MCxUPVQrTWF0aC5pbXVsKFFlLG5yKXwwLFM9KFM9UytNYXRoLmltdWwoUWUsQW4pfDApK01hdGguaW11bCgkZSxucil8MCxGPUYrTWF0aC5pbXVsKCRlLEFuKXwwO3ZhciBK''@;'; + put 'put ''bj0oVisoVD1UK01hdGguaW11bChDZSxXdCl8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKENlLHBuKXwwKStNYXRoLmltdWwoRGUsV3QpfDApKTw8MTMpfDA7Vj0oKEY9RitNYXRoLmltdWwoRGUscG4pfDApKyhTPj4+MTMpfDApKyhKbj4+PjI2KXwwLEpuJj02NzEwODg2MyxUPU1h''@;'; + put 'put ''dGguaW11bChldCxObiksUz0oUz1NYXRoLmltdWwoZXQsYm4pKStNYXRoLmltdWwoYXQsTm4pfDAsRj1NYXRoLmltdWwoYXQsYm4pLFQ9VCtNYXRoLmltdWwob24sc3IpfDAsUz0oUz1TK01hdGguaW11bChvbixYbil8MCkrTWF0aC5pbXVsKF90LHNyKXwwLEY9RitNYXRoLmltdWwoX3QsWG4p''@;'; + put 'put ''fDAsVD1UK01hdGguaW11bChBdCx4cil8MCxTPShTPVMrTWF0aC5pbXVsKEF0LHF0KXwwKStNYXRoLmltdWwoaHQseHIpfDAsRj1GK01hdGguaW11bChodCxxdCl8MCxUPVQrTWF0aC5pbXVsKHd0LG5yKXwwLFM9KFM9UytNYXRoLmltdWwod3QsQW4pfDApK01hdGguaW11bChtdCxucil8MCxG''@;'; + put 'put ''PUYrTWF0aC5pbXVsKG10LEFuKXwwLFQ9VCtNYXRoLmltdWwoUWUsV3QpfDAsUz0oUz1TK01hdGguaW11bChRZSxwbil8MCkrTWF0aC5pbXVsKCRlLFd0KXwwLEY9RitNYXRoLmltdWwoJGUscG4pfDA7dmFyIG9yPShWKyhUPVQrTWF0aC5pbXVsKENlLE50KXwwKXwwKSsoKDgxOTEmKFM9KFM9''@;'; + put 'put ''UytNYXRoLmltdWwoQ2Usc24pfDApK01hdGguaW11bChEZSxOdCl8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bChEZSxzbil8MCkrKFM+Pj4xMyl8MCkrKG9yPj4+MjYpfDAsb3ImPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKEN0LE5uKSxTPShTPU1hdGguaW11bChDdCxibikpK01hdGguaW11''@;'; + put 'put ''bChmdCxObil8MCxGPU1hdGguaW11bChmdCxibiksVD1UK01hdGguaW11bChldCxzcil8MCxTPShTPVMrTWF0aC5pbXVsKGV0LFhuKXwwKStNYXRoLmltdWwoYXQsc3IpfDAsRj1GK01hdGguaW11bChhdCxYbil8MCxUPVQrTWF0aC5pbXVsKG9uLHhyKXwwLFM9KFM9UytNYXRoLmltdWwob24s''@;'; + put 'put ''cXQpfDApK01hdGguaW11bChfdCx4cil8MCxGPUYrTWF0aC5pbXVsKF90LHF0KXwwLFQ9VCtNYXRoLmltdWwoQXQsbnIpfDAsUz0oUz1TK01hdGguaW11bChBdCxBbil8MCkrTWF0aC5pbXVsKGh0LG5yKXwwLEY9RitNYXRoLmltdWwoaHQsQW4pfDAsVD1UK01hdGguaW11bCh3dCxXdCl8MCxT''@;'; + put 'put ''PShTPVMrTWF0aC5pbXVsKHd0LHBuKXwwKStNYXRoLmltdWwobXQsV3QpfDAsRj1GK01hdGguaW11bChtdCxwbil8MCxUPVQrTWF0aC5pbXVsKFFlLE50KXwwLFM9KFM9UytNYXRoLmltdWwoUWUsc24pfDApK01hdGguaW11bCgkZSxOdCl8MCxGPUYrTWF0aC5pbXVsKCRlLHNuKXwwO3ZhciBn''@;'; + put 'put ''cj0oVisoVD1UK01hdGguaW11bChDZSx3bil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKENlLHRuKXwwKStNYXRoLmltdWwoRGUsd24pfDApKTw8MTMpfDA7Vj0oKEY9RitNYXRoLmltdWwoRGUsdG4pfDApKyhTPj4+MTMpfDApKyhncj4+PjI2KXwwLGdyJj02NzEwODg2MyxUPU1h''@;'; + put 'put ''dGguaW11bChHZSxObiksUz0oUz1NYXRoLmltdWwoR2UsYm4pKStNYXRoLmltdWwoVWUsTm4pfDAsRj1NYXRoLmltdWwoVWUsYm4pLFQ9VCtNYXRoLmltdWwoQ3Qsc3IpfDAsUz0oUz1TK01hdGguaW11bChDdCxYbil8MCkrTWF0aC5pbXVsKGZ0LHNyKXwwLEY9RitNYXRoLmltdWwoZnQsWG4p''@;'; + put 'put ''fDAsVD1UK01hdGguaW11bChldCx4cil8MCxTPShTPVMrTWF0aC5pbXVsKGV0LHF0KXwwKStNYXRoLmltdWwoYXQseHIpfDAsRj1GK01hdGguaW11bChhdCxxdCl8MCxUPVQrTWF0aC5pbXVsKG9uLG5yKXwwLFM9KFM9UytNYXRoLmltdWwob24sQW4pfDApK01hdGguaW11bChfdCxucil8MCxG''@;'; + put 'put ''PUYrTWF0aC5pbXVsKF90LEFuKXwwLFQ9VCtNYXRoLmltdWwoQXQsV3QpfDAsUz0oUz1TK01hdGguaW11bChBdCxwbil8MCkrTWF0aC5pbXVsKGh0LFd0KXwwLEY9RitNYXRoLmltdWwoaHQscG4pfDAsVD1UK01hdGguaW11bCh3dCxOdCl8MCxTPShTPVMrTWF0aC5pbXVsKHd0LHNuKXwwKStN''@;'; + put 'put ''YXRoLmltdWwobXQsTnQpfDAsRj1GK01hdGguaW11bChtdCxzbil8MCxUPVQrTWF0aC5pbXVsKFFlLHduKXwwLFM9KFM9UytNYXRoLmltdWwoUWUsdG4pfDApK01hdGguaW11bCgkZSx3bil8MCxGPUYrTWF0aC5pbXVsKCRlLHRuKXwwO3ZhciBLcj0oVisoVD1UK01hdGguaW11bChDZSxUcil8''@;'; + put 'put ''MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKENlLEJuKXwwKStNYXRoLmltdWwoRGUsVHIpfDApKTw8MTMpfDA7Vj0oKEY9RitNYXRoLmltdWwoRGUsQm4pfDApKyhTPj4+MTMpfDApKyhLcj4+PjI2KXwwLEtyJj02NzEwODg2MyxUPU1hdGguaW11bChqdCxObiksUz0oUz1NYXRoLmlt''@;'; + put 'put ''dWwoanQsYm4pKStNYXRoLmltdWwoUXQsTm4pfDAsRj1NYXRoLmltdWwoUXQsYm4pLFQ9VCtNYXRoLmltdWwoR2Usc3IpfDAsUz0oUz1TK01hdGguaW11bChHZSxYbil8MCkrTWF0aC5pbXVsKFVlLHNyKXwwLEY9RitNYXRoLmltdWwoVWUsWG4pfDAsVD1UK01hdGguaW11bChDdCx4cil8MCxT''@;'; + put 'put ''PShTPVMrTWF0aC5pbXVsKEN0LHF0KXwwKStNYXRoLmltdWwoZnQseHIpfDAsRj1GK01hdGguaW11bChmdCxxdCl8MCxUPVQrTWF0aC5pbXVsKGV0LG5yKXwwLFM9KFM9UytNYXRoLmltdWwoZXQsQW4pfDApK01hdGguaW11bChhdCxucil8MCxGPUYrTWF0aC5pbXVsKGF0LEFuKXwwLFQ9VCtN''@;'; + put 'put ''YXRoLmltdWwob24sV3QpfDAsUz0oUz1TK01hdGguaW11bChvbixwbil8MCkrTWF0aC5pbXVsKF90LFd0KXwwLEY9RitNYXRoLmltdWwoX3QscG4pfDAsVD1UK01hdGguaW11bChBdCxOdCl8MCxTPShTPVMrTWF0aC5pbXVsKEF0LHNuKXwwKStNYXRoLmltdWwoaHQsTnQpfDAsRj1GK01hdGgu''@;'; + put 'put ''aW11bChodCxzbil8MCxUPVQrTWF0aC5pbXVsKHd0LHduKXwwLFM9KFM9UytNYXRoLmltdWwod3QsdG4pfDApK01hdGguaW11bChtdCx3bil8MCxGPUYrTWF0aC5pbXVsKG10LHRuKXwwLFQ9VCtNYXRoLmltdWwoUWUsVHIpfDAsUz0oUz1TK01hdGguaW11bChRZSxCbil8MCkrTWF0aC5pbXVs''@;'; + put 'put ''KCRlLFRyKXwwLEY9RitNYXRoLmltdWwoJGUsQm4pfDA7dmFyIFZyPShWKyhUPVQrTWF0aC5pbXVsKENlLG1uKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoQ2UsdW4pfDApK01hdGguaW11bChEZSxtbil8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bChEZSx1bil8MCkrKFM+''@;'; + put 'put ''Pj4xMyl8MCkrKFZyPj4+MjYpfDAsVnImPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGRuLE5uKSxTPShTPU1hdGguaW11bChkbixibikpK01hdGguaW11bCh5bixObil8MCxGPU1hdGguaW11bCh5bixibiksVD1UK01hdGguaW11bChqdCxzcil8MCxTPShTPVMrTWF0aC5pbXVsKGp0LFhuKXwwKStN''@;'; + put 'put ''YXRoLmltdWwoUXQsc3IpfDAsRj1GK01hdGguaW11bChRdCxYbil8MCxUPVQrTWF0aC5pbXVsKEdlLHhyKXwwLFM9KFM9UytNYXRoLmltdWwoR2UscXQpfDApK01hdGguaW11bChVZSx4cil8MCxGPUYrTWF0aC5pbXVsKFVlLHF0KXwwLFQ9VCtNYXRoLmltdWwoQ3QsbnIpfDAsUz0oUz1TK01h''@;'; + put 'put ''dGguaW11bChDdCxBbil8MCkrTWF0aC5pbXVsKGZ0LG5yKXwwLEY9RitNYXRoLmltdWwoZnQsQW4pfDAsVD1UK01hdGguaW11bChldCxXdCl8MCxTPShTPVMrTWF0aC5pbXVsKGV0LHBuKXwwKStNYXRoLmltdWwoYXQsV3QpfDAsRj1GK01hdGguaW11bChhdCxwbil8MCxUPVQrTWF0aC5pbXVs''@;'; + put 'put ''KG9uLE50KXwwLFM9KFM9UytNYXRoLmltdWwob24sc24pfDApK01hdGguaW11bChfdCxOdCl8MCxGPUYrTWF0aC5pbXVsKF90LHNuKXwwLFQ9VCtNYXRoLmltdWwoQXQsd24pfDAsUz0oUz1TK01hdGguaW11bChBdCx0bil8MCkrTWF0aC5pbXVsKGh0LHduKXwwLEY9RitNYXRoLmltdWwoaHQs''@;'; + put 'put ''dG4pfDAsVD1UK01hdGguaW11bCh3dCxUcil8MCxTPShTPVMrTWF0aC5pbXVsKHd0LEJuKXwwKStNYXRoLmltdWwobXQsVHIpfDAsRj1GK01hdGguaW11bChtdCxCbil8MCxUPVQrTWF0aC5pbXVsKFFlLG1uKXwwLFM9KFM9UytNYXRoLmltdWwoUWUsdW4pfDApK01hdGguaW11bCgkZSxtbil8''@;'; + put 'put ''MCxGPUYrTWF0aC5pbXVsKCRlLHVuKXwwO3ZhciBpaT0oVisoVD1UK01hdGguaW11bChDZSxfbil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKENlLEd0KXwwKStNYXRoLmltdWwoRGUsX24pfDApKTw8MTMpfDA7Vj0oKEY9RitNYXRoLmltdWwoRGUsR3QpfDApKyhTPj4+MTMpfDAp''@;'; + put 'put ''KyhpaT4+PjI2KXwwLGlpJj02NzEwODg2MyxUPU1hdGguaW11bChkbixzciksUz0oUz1NYXRoLmltdWwoZG4sWG4pKStNYXRoLmltdWwoeW4sc3IpfDAsRj1NYXRoLmltdWwoeW4sWG4pLFQ9VCtNYXRoLmltdWwoanQseHIpfDAsUz0oUz1TK01hdGguaW11bChqdCxxdCl8MCkrTWF0aC5pbXVs''@;'; + put 'put ''KFF0LHhyKXwwLEY9RitNYXRoLmltdWwoUXQscXQpfDAsVD1UK01hdGguaW11bChHZSxucil8MCxTPShTPVMrTWF0aC5pbXVsKEdlLEFuKXwwKStNYXRoLmltdWwoVWUsbnIpfDAsRj1GK01hdGguaW11bChVZSxBbil8MCxUPVQrTWF0aC5pbXVsKEN0LFd0KXwwLFM9KFM9UytNYXRoLmltdWwo''@;'; + put 'put ''Q3QscG4pfDApK01hdGguaW11bChmdCxXdCl8MCxGPUYrTWF0aC5pbXVsKGZ0LHBuKXwwLFQ9VCtNYXRoLmltdWwoZXQsTnQpfDAsUz0oUz1TK01hdGguaW11bChldCxzbil8MCkrTWF0aC5pbXVsKGF0LE50KXwwLEY9RitNYXRoLmltdWwoYXQsc24pfDAsVD1UK01hdGguaW11bChvbix3bil8''@;'; + put 'put ''MCxTPShTPVMrTWF0aC5pbXVsKG9uLHRuKXwwKStNYXRoLmltdWwoX3Qsd24pfDAsRj1GK01hdGguaW11bChfdCx0bil8MCxUPVQrTWF0aC5pbXVsKEF0LFRyKXwwLFM9KFM9UytNYXRoLmltdWwoQXQsQm4pfDApK01hdGguaW11bChodCxUcil8MCxGPUYrTWF0aC5pbXVsKGh0LEJuKXwwLFQ9''@;'; + put 'put ''VCtNYXRoLmltdWwod3QsbW4pfDAsUz0oUz1TK01hdGguaW11bCh3dCx1bil8MCkrTWF0aC5pbXVsKG10LG1uKXwwLEY9RitNYXRoLmltdWwobXQsdW4pfDA7dmFyIFJyPShWKyhUPVQrTWF0aC5pbXVsKFFlLF9uKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoUWUsR3QpfDApK01h''@;'; + put 'put ''dGguaW11bCgkZSxfbil8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bCgkZSxHdCl8MCkrKFM+Pj4xMyl8MCkrKFJyPj4+MjYpfDAsUnImPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGRuLHhyKSxTPShTPU1hdGguaW11bChkbixxdCkpK01hdGguaW11bCh5bix4cil8MCxGPU1hdGguaW11bCh5''@;'; + put 'put ''bixxdCksVD1UK01hdGguaW11bChqdCxucil8MCxTPShTPVMrTWF0aC5pbXVsKGp0LEFuKXwwKStNYXRoLmltdWwoUXQsbnIpfDAsRj1GK01hdGguaW11bChRdCxBbil8MCxUPVQrTWF0aC5pbXVsKEdlLFd0KXwwLFM9KFM9UytNYXRoLmltdWwoR2UscG4pfDApK01hdGguaW11bChVZSxXdCl8''@;'; + put 'put ''MCxGPUYrTWF0aC5pbXVsKFVlLHBuKXwwLFQ9VCtNYXRoLmltdWwoQ3QsTnQpfDAsUz0oUz1TK01hdGguaW11bChDdCxzbil8MCkrTWF0aC5pbXVsKGZ0LE50KXwwLEY9RitNYXRoLmltdWwoZnQsc24pfDAsVD1UK01hdGguaW11bChldCx3bil8MCxTPShTPVMrTWF0aC5pbXVsKGV0LHRuKXww''@;'; + put 'put ''KStNYXRoLmltdWwoYXQsd24pfDAsRj1GK01hdGguaW11bChhdCx0bil8MCxUPVQrTWF0aC5pbXVsKG9uLFRyKXwwLFM9KFM9UytNYXRoLmltdWwob24sQm4pfDApK01hdGguaW11bChfdCxUcil8MCxGPUYrTWF0aC5pbXVsKF90LEJuKXwwLFQ9VCtNYXRoLmltdWwoQXQsbW4pfDAsUz0oUz1T''@;'; + put 'put ''K01hdGguaW11bChBdCx1bil8MCkrTWF0aC5pbXVsKGh0LG1uKXwwLEY9RitNYXRoLmltdWwoaHQsdW4pfDA7dmFyIGxpPShWKyhUPVQrTWF0aC5pbXVsKHd0LF9uKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwod3QsR3QpfDApK01hdGguaW11bChtdCxfbil8MCkpPDwxMyl8MDtW''@;'; + put 'put ''PSgoRj1GK01hdGguaW11bChtdCxHdCl8MCkrKFM+Pj4xMyl8MCkrKGxpPj4+MjYpfDAsbGkmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGRuLG5yKSxTPShTPU1hdGguaW11bChkbixBbikpK01hdGguaW11bCh5bixucil8MCxGPU1hdGguaW11bCh5bixBbiksVD1UK01hdGguaW11bChqdCxXdCl8''@;'; + put 'put ''MCxTPShTPVMrTWF0aC5pbXVsKGp0LHBuKXwwKStNYXRoLmltdWwoUXQsV3QpfDAsRj1GK01hdGguaW11bChRdCxwbil8MCxUPVQrTWF0aC5pbXVsKEdlLE50KXwwLFM9KFM9UytNYXRoLmltdWwoR2Usc24pfDApK01hdGguaW11bChVZSxOdCl8MCxGPUYrTWF0aC5pbXVsKFVlLHNuKXwwLFQ9''@;'; + put 'put ''VCtNYXRoLmltdWwoQ3Qsd24pfDAsUz0oUz1TK01hdGguaW11bChDdCx0bil8MCkrTWF0aC5pbXVsKGZ0LHduKXwwLEY9RitNYXRoLmltdWwoZnQsdG4pfDAsVD1UK01hdGguaW11bChldCxUcil8MCxTPShTPVMrTWF0aC5pbXVsKGV0LEJuKXwwKStNYXRoLmltdWwoYXQsVHIpfDAsRj1GK01h''@;'; + put 'put ''dGguaW11bChhdCxCbil8MCxUPVQrTWF0aC5pbXVsKG9uLG1uKXwwLFM9KFM9UytNYXRoLmltdWwob24sdW4pfDApK01hdGguaW11bChfdCxtbil8MCxGPUYrTWF0aC5pbXVsKF90LHVuKXwwO3ZhciBNaT0oVisoVD1UK01hdGguaW11bChBdCxfbil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0''@;'; + put 'put ''aC5pbXVsKEF0LEd0KXwwKStNYXRoLmltdWwoaHQsX24pfDApKTw8MTMpfDA7Vj0oKEY9RitNYXRoLmltdWwoaHQsR3QpfDApKyhTPj4+MTMpfDApKyhNaT4+PjI2KXwwLE1pJj02NzEwODg2MyxUPU1hdGguaW11bChkbixXdCksUz0oUz1NYXRoLmltdWwoZG4scG4pKStNYXRoLmltdWwoeW4s''@;'; + put 'put ''V3QpfDAsRj1NYXRoLmltdWwoeW4scG4pLFQ9VCtNYXRoLmltdWwoanQsTnQpfDAsUz0oUz1TK01hdGguaW11bChqdCxzbil8MCkrTWF0aC5pbXVsKFF0LE50KXwwLEY9RitNYXRoLmltdWwoUXQsc24pfDAsVD1UK01hdGguaW11bChHZSx3bil8MCxTPShTPVMrTWF0aC5pbXVsKEdlLHRuKXww''@;'; + put 'put ''KStNYXRoLmltdWwoVWUsd24pfDAsRj1GK01hdGguaW11bChVZSx0bil8MCxUPVQrTWF0aC5pbXVsKEN0LFRyKXwwLFM9KFM9UytNYXRoLmltdWwoQ3QsQm4pfDApK01hdGguaW11bChmdCxUcil8MCxGPUYrTWF0aC5pbXVsKGZ0LEJuKXwwLFQ9VCtNYXRoLmltdWwoZXQsbW4pfDAsUz0oUz1T''@;'; + put 'put ''K01hdGguaW11bChldCx1bil8MCkrTWF0aC5pbXVsKGF0LG1uKXwwLEY9RitNYXRoLmltdWwoYXQsdW4pfDA7dmFyIG8wPShWKyhUPVQrTWF0aC5pbXVsKG9uLF9uKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwob24sR3QpfDApK01hdGguaW11bChfdCxfbil8MCkpPDwxMyl8MDtW''@;'; + put 'put ''PSgoRj1GK01hdGguaW11bChfdCxHdCl8MCkrKFM+Pj4xMyl8MCkrKG8wPj4+MjYpfDAsbzAmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGRuLE50KSxTPShTPU1hdGguaW11bChkbixzbikpK01hdGguaW11bCh5bixOdCl8MCxGPU1hdGguaW11bCh5bixzbiksVD1UK01hdGguaW11bChqdCx3bil8''@;'; + put 'put ''MCxTPShTPVMrTWF0aC5pbXVsKGp0LHRuKXwwKStNYXRoLmltdWwoUXQsd24pfDAsRj1GK01hdGguaW11bChRdCx0bil8MCxUPVQrTWF0aC5pbXVsKEdlLFRyKXwwLFM9KFM9UytNYXRoLmltdWwoR2UsQm4pfDApK01hdGguaW11bChVZSxUcil8MCxGPUYrTWF0aC5pbXVsKFVlLEJuKXwwLFQ9''@;'; + put 'put ''VCtNYXRoLmltdWwoQ3QsbW4pfDAsUz0oUz1TK01hdGguaW11bChDdCx1bil8MCkrTWF0aC5pbXVsKGZ0LG1uKXwwLEY9RitNYXRoLmltdWwoZnQsdW4pfDA7dmFyIG4wPShWKyhUPVQrTWF0aC5pbXVsKGV0LF9uKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoZXQsR3QpfDApK01h''@;'; + put 'put ''dGguaW11bChhdCxfbil8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bChhdCxHdCl8MCkrKFM+Pj4xMyl8MCkrKG4wPj4+MjYpfDAsbjAmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGRuLHduKSxTPShTPU1hdGguaW11bChkbix0bikpK01hdGguaW11bCh5bix3bil8MCxGPU1hdGguaW11bCh5''@;'; + put 'put ''bix0biksVD1UK01hdGguaW11bChqdCxUcil8MCxTPShTPVMrTWF0aC5pbXVsKGp0LEJuKXwwKStNYXRoLmltdWwoUXQsVHIpfDAsRj1GK01hdGguaW11bChRdCxCbil8MCxUPVQrTWF0aC5pbXVsKEdlLG1uKXwwLFM9KFM9UytNYXRoLmltdWwoR2UsdW4pfDApK01hdGguaW11bChVZSxtbil8''@;'; + put 'put ''MCxGPUYrTWF0aC5pbXVsKFVlLHVuKXwwO3ZhciBkMD0oVisoVD1UK01hdGguaW11bChDdCxfbil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKEN0LEd0KXwwKStNYXRoLmltdWwoZnQsX24pfDApKTw8MTMpfDA7Vj0oKEY9RitNYXRoLmltdWwoZnQsR3QpfDApKyhTPj4+MTMpfDAp''@;'; + put 'put ''KyhkMD4+PjI2KXwwLGQwJj02NzEwODg2MyxUPU1hdGguaW11bChkbixUciksUz0oUz1NYXRoLmltdWwoZG4sQm4pKStNYXRoLmltdWwoeW4sVHIpfDAsRj1NYXRoLmltdWwoeW4sQm4pLFQ9VCtNYXRoLmltdWwoanQsbW4pfDAsUz0oUz1TK01hdGguaW11bChqdCx1bil8MCkrTWF0aC5pbXVs''@;'; + put 'put ''KFF0LG1uKXwwLEY9RitNYXRoLmltdWwoUXQsdW4pfDA7dmFyIG0wPShWKyhUPVQrTWF0aC5pbXVsKEdlLF9uKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoR2UsR3QpfDApK01hdGguaW11bChVZSxfbil8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bChVZSxHdCl8MCkrKFM+''@;'; + put 'put ''Pj4xMyl8MCkrKG0wPj4+MjYpfDAsbTAmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGRuLG1uKSxTPShTPU1hdGguaW11bChkbix1bikpK01hdGguaW11bCh5bixtbil8MCxGPU1hdGguaW11bCh5bix1bik7dmFyIEcwPShWKyhUPVQrTWF0aC5pbXVsKGp0LF9uKXwwKXwwKSsoKDgxOTEmKFM9KFM9''@;'; + put 'put ''UytNYXRoLmltdWwoanQsR3QpfDApK01hdGguaW11bChRdCxfbil8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bChRdCxHdCl8MCkrKFM+Pj4xMyl8MCkrKEcwPj4+MjYpfDAsRzAmPTY3MTA4ODYzO3ZhciBEaT0oVisoVD1NYXRoLmltdWwoZG4sX24pKXwwKSsoKDgxOTEmKFM9KFM9TWF0''@;'; + put 'put ''aC5pbXVsKGRuLEd0KSkrTWF0aC5pbXVsKHluLF9uKXwwKSk8PDEzKXwwO3JldHVybiBWPSgoRj1NYXRoLmltdWwoeW4sR3QpKSsoUz4+PjEzKXwwKSsoRGk+Pj4yNil8MCxEaSY9NjcxMDg4NjMsUFswXT1rbixQWzFdPVZuLFBbMl09ZW4sUFszXT1JbixQWzRdPUpuLFBbNV09b3IsUFs2XT1n''@;'; + put 'put ''cixQWzddPUtyLFBbOF09VnIsUFs5XT1paSxQWzEwXT1ScixQWzExXT1saSxQWzEyXT1NaSxQWzEzXT1vMCxQWzE0XT1uMCxQWzE1XT1kMCxQWzE2XT1tMCxQWzE3XT1HMCxQWzE4XT1EaSwwIT09ViYmKFBbMTldPVYsbmUubGVuZ3RoKyspLG5lfTtmdW5jdGlvbiBvZShoZSxPLHope3JldHVy''@;'; + put 'put ''bihuZXcgY2UpLm11bHAoaGUsTyx6KX1mdW5jdGlvbiBjZShoZSxPKXt0aGlzLng9aGUsdGhpcy55PU99TWF0aC5pbXVsfHwoSj1xKSxVLnByb3RvdHlwZS5tdWxUbz1mdW5jdGlvbihPLHope3ZhciBuZSx0ZT10aGlzLmxlbmd0aCtPLmxlbmd0aDtyZXR1cm4gbmU9MTA9PT10aGlzLmxlbmd0''@;'; + put 'put ''aCYmMTA9PT1PLmxlbmd0aD9KKHRoaXMsTyx6KTp0ZTw2Mz9xKHRoaXMsTyx6KTp0ZTwxMDI0P2Z1bmN0aW9uIHNlKGhlLE8seil7ei5uZWdhdGl2ZT1PLm5lZ2F0aXZlXmhlLm5lZ2F0aXZlLHoubGVuZ3RoPWhlLmxlbmd0aCtPLmxlbmd0aDtmb3IodmFyIG5lPTAsdGU9MCx4PTA7eDx6Lmxl''@;'; + put 'put ''bmd0aC0xO3grKyl7dmFyIFA9dGU7dGU9MDtmb3IodmFyIFY9NjcxMDg4NjMmbmUsVD1NYXRoLm1pbih4LE8ubGVuZ3RoLTEpLFM9TWF0aC5tYXgoMCx4LWhlLmxlbmd0aCsxKTtTPD1UO1MrKyl7dmFyIERlPSgwfGhlLndvcmRzW3gtU10pKigwfE8ud29yZHNbU10pLFBlPTY3MTA4ODYzJkRl''@;'; + put 'put ''O1Y9NjcxMDg4NjMmKFBlPVBlK1Z8MCksdGUrPShQPShQPVArKERlLzY3MTA4ODY0fDApfDApKyhQZT4+PjI2KXwwKT4+PjI2LFAmPTY3MTA4ODYzfXoud29yZHNbeF09VixuZT1QLFA9dGV9cmV0dXJuIDAhPT1uZT96LndvcmRzW3hdPW5lOnoubGVuZ3RoLS0sei5zdHJpcCgpfSh0aGlzLE8s''@;'; + put 'put ''eik6b2UodGhpcyxPLHopLG5lfSxjZS5wcm90b3R5cGUubWFrZVJCVD1mdW5jdGlvbihPKXtmb3IodmFyIHo9bmV3IEFycmF5KE8pLG5lPVUucHJvdG90eXBlLl9jb3VudEJpdHMoTyktMSx0ZT0wO3RlPE87dGUrKyl6W3RlXT10aGlzLnJldkJpbih0ZSxuZSxPKTtyZXR1cm4gen0sY2UucHJv''@;'; + put 'put ''dG90eXBlLnJldkJpbj1mdW5jdGlvbihPLHosbmUpe2lmKDA9PT1PfHxPPT09bmUtMSlyZXR1cm4gTztmb3IodmFyIHRlPTAseD0wO3g8ejt4KyspdGV8PSgxJk8pPDx6LXgtMSxPPj49MTtyZXR1cm4gdGV9LGNlLnByb3RvdHlwZS5wZXJtdXRlPWZ1bmN0aW9uKE8seixuZSx0ZSx4LFApe2Zv''@;'; + put 'put ''cih2YXIgVj0wO1Y8UDtWKyspdGVbVl09eltPW1ZdXSx4W1ZdPW5lW09bVl1dfSxjZS5wcm90b3R5cGUudHJhbnNmb3JtPWZ1bmN0aW9uKE8seixuZSx0ZSx4LFApe3RoaXMucGVybXV0ZShQLE8seixuZSx0ZSx4KTtmb3IodmFyIFY9MTtWPHg7Vjw8PTEpZm9yKHZhciBUPVY8PDEsUz1NYXRo''@;'; + put 'put ''LmNvcygyKk1hdGguUEkvVCksRj1NYXRoLnNpbigyKk1hdGguUEkvVCkseWU9MDt5ZTx4O3llKz1UKWZvcih2YXIgQ2U9UyxEZT1GLFBlPTA7UGU8VjtQZSsrKXt2YXIgUWU9bmVbeWUrUGVdLCRlPXRlW3llK1BlXSxndD1uZVt5ZStQZStWXSx3dD10ZVt5ZStQZStWXSxtdD1DZSpndC1EZSp3''@;'; + put 'put ''dDt3dD1DZSp3dCtEZSpndCxuZVt5ZStQZV09UWUrKGd0PW10KSx0ZVt5ZStQZV09JGUrd3QsbmVbeWUrUGUrVl09UWUtZ3QsdGVbeWUrUGUrVl09JGUtd3QsUGUhPT1UJiYobXQ9UypDZS1GKkRlLERlPVMqRGUrRipDZSxDZT1tdCl9fSxjZS5wcm90b3R5cGUuZ3Vlc3NMZW4xM2I9ZnVuY3Rp''@;'; + put 'put ''b24oTyx6KXt2YXIgbmU9MXxNYXRoLm1heCh6LE8pLHRlPTEmbmUseD0wO2ZvcihuZT1uZS8yfDA7bmU7bmU+Pj49MSl4Kys7cmV0dXJuIDE8PHgrMSt0ZX0sY2UucHJvdG90eXBlLmNvbmp1Z2F0ZT1mdW5jdGlvbihPLHosbmUpe2lmKCEobmU8PTEpKWZvcih2YXIgdGU9MDt0ZTxuZS8yO3Rl''@;'; + put 'put ''Kyspe3ZhciB4PU9bdGVdO09bdGVdPU9bbmUtdGUtMV0sT1tuZS10ZS0xXT14LHg9elt0ZV0selt0ZV09LXpbbmUtdGUtMV0seltuZS10ZS0xXT0teH19LGNlLnByb3RvdHlwZS5ub3JtYWxpemUxM2I9ZnVuY3Rpb24oTyx6KXtmb3IodmFyIG5lPTAsdGU9MDt0ZTx6LzI7dGUrKyl7dmFyIHg9''@;'; + put 'put ''ODE5MipNYXRoLnJvdW5kKE9bMip0ZSsxXS96KStNYXRoLnJvdW5kKE9bMip0ZV0veikrbmU7T1t0ZV09NjcxMDg4NjMmeCxuZT14PDY3MTA4ODY0PzA6eC82NzEwODg2NHwwfXJldHVybiBPfSxjZS5wcm90b3R5cGUuY29udmVydDEzYj1mdW5jdGlvbihPLHosbmUsdGUpe2Zvcih2YXIgeD0w''@;'; + put 'put ''LFA9MDtQPHo7UCsrKW5lWzIqUF09ODE5MSYoeCs9MHxPW1BdKSxuZVsyKlArMV09ODE5MSYoeD4+Pj0xMykseD4+Pj0xMztmb3IoUD0yKno7UDx0ZTsrK1ApbmVbUF09MDtFKDA9PT14KSxFKDA9PSgtODE5MiZ4KSl9LGNlLnByb3RvdHlwZS5zdHViPWZ1bmN0aW9uKE8pe2Zvcih2YXIgej1u''@;'; + put 'put ''ZXcgQXJyYXkoTyksbmU9MDtuZTxPO25lKyspeltuZV09MDtyZXR1cm4gen0sY2UucHJvdG90eXBlLm11bHA9ZnVuY3Rpb24oTyx6LG5lKXt2YXIgdGU9Mip0aGlzLmd1ZXNzTGVuMTNiKE8ubGVuZ3RoLHoubGVuZ3RoKSx4PXRoaXMubWFrZVJCVCh0ZSksUD10aGlzLnN0dWIodGUpLFY9bmV3''@;'; + put 'put ''IEFycmF5KHRlKSxUPW5ldyBBcnJheSh0ZSksUz1uZXcgQXJyYXkodGUpLEY9bmV3IEFycmF5KHRlKSx5ZT1uZXcgQXJyYXkodGUpLENlPW5ldyBBcnJheSh0ZSksRGU9bmUud29yZHM7RGUubGVuZ3RoPXRlLHRoaXMuY29udmVydDEzYihPLndvcmRzLE8ubGVuZ3RoLFYsdGUpLHRoaXMuY29u''@;'; + put 'put ''dmVydDEzYih6LndvcmRzLHoubGVuZ3RoLEYsdGUpLHRoaXMudHJhbnNmb3JtKFYsUCxULFMsdGUseCksdGhpcy50cmFuc2Zvcm0oRixQLHllLENlLHRlLHgpO2Zvcih2YXIgUGU9MDtQZTx0ZTtQZSsrKXt2YXIgUWU9VFtQZV0qeWVbUGVdLVNbUGVdKkNlW1BlXTtTW1BlXT1UW1BlXSpDZVtQ''@;'; + put 'put ''ZV0rU1tQZV0qeWVbUGVdLFRbUGVdPVFlfXJldHVybiB0aGlzLmNvbmp1Z2F0ZShULFMsdGUpLHRoaXMudHJhbnNmb3JtKFQsUyxEZSxQLHRlLHgpLHRoaXMuY29uanVnYXRlKERlLFAsdGUpLHRoaXMubm9ybWFsaXplMTNiKERlLHRlKSxuZS5uZWdhdGl2ZT1PLm5lZ2F0aXZlXnoubmVnYXRp''@;'; + put 'put ''dmUsbmUubGVuZ3RoPU8ubGVuZ3RoK3oubGVuZ3RoLG5lLnN0cmlwKCl9LFUucHJvdG90eXBlLm11bD1mdW5jdGlvbihPKXt2YXIgej1uZXcgVShudWxsKTtyZXR1cm4gei53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgrTy5sZW5ndGgpLHRoaXMubXVsVG8oTyx6KX0sVS5wcm90b3R5cGUu''@;'; + put 'put ''bXVsZj1mdW5jdGlvbihPKXt2YXIgej1uZXcgVShudWxsKTtyZXR1cm4gei53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgrTy5sZW5ndGgpLG9lKHRoaXMsTyx6KX0sVS5wcm90b3R5cGUuaW11bD1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5jbG9uZSgpLm11bFRvKE8sdGhpcyl9LFUucHJv''@;'; + put 'put ''dG90eXBlLmltdWxuPWZ1bmN0aW9uKE8pe0UoIm51bWJlciI9PXR5cGVvZiBPKSxFKE88NjcxMDg4NjQpO2Zvcih2YXIgej0wLG5lPTA7bmU8dGhpcy5sZW5ndGg7bmUrKyl7dmFyIHRlPSgwfHRoaXMud29yZHNbbmVdKSpPLHg9KDY3MTA4ODYzJnRlKSsoNjcxMDg4NjMmeik7ej4+PTI2LHor''@;'; + put 'put ''PXRlLzY3MTA4ODY0fDAseis9eD4+PjI2LHRoaXMud29yZHNbbmVdPTY3MTA4ODYzJnh9cmV0dXJuIDAhPT16JiYodGhpcy53b3Jkc1tuZV09eix0aGlzLmxlbmd0aCsrKSx0aGlzfSxVLnByb3RvdHlwZS5tdWxuPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmNsb25lKCkuaW11bG4oTyl9LFUu''@;'; + put 'put ''cHJvdG90eXBlLnNxcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLm11bCh0aGlzKX0sVS5wcm90b3R5cGUuaXNxcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLmltdWwodGhpcy5jbG9uZSgpKX0sVS5wcm90b3R5cGUucG93PWZ1bmN0aW9uKE8pe3ZhciB6PWZ1bmN0aW9uIGVlKGhlKXtmb3IodmFy''@;'; + put 'put ''IE89bmV3IEFycmF5KGhlLmJpdExlbmd0aCgpKSx6PTA7ejxPLmxlbmd0aDt6Kyspe3ZhciB0ZT16JTI2O09bel09KGhlLndvcmRzW3ovMjZ8MF0mMTw8dGUpPj4+dGV9cmV0dXJuIE99KE8pO2lmKDA9PT16Lmxlbmd0aClyZXR1cm4gbmV3IFUoMSk7Zm9yKHZhciBuZT10aGlzLHRlPTA7dGU8''@;'; + put 'put ''ei5sZW5ndGgmJjA9PT16W3RlXTt0ZSsrLG5lPW5lLnNxcigpKTtpZigrK3RlPHoubGVuZ3RoKWZvcih2YXIgeD1uZS5zcXIoKTt0ZTx6Lmxlbmd0aDt0ZSsrLHg9eC5zcXIoKSkwIT09elt0ZV0mJihuZT1uZS5tdWwoeCkpO3JldHVybiBuZX0sVS5wcm90b3R5cGUuaXVzaGxuPWZ1bmN0aW9u''@;'; + put 'put ''KE8pe0UoIm51bWJlciI9PXR5cGVvZiBPJiZPPj0wKTt2YXIgeCx6PU8lMjYsbmU9KE8teikvMjYsdGU9NjcxMDg4NjM+Pj4yNi16PDwyNi16O2lmKDAhPT16KXt2YXIgUD0wO2Zvcih4PTA7eDx0aGlzLmxlbmd0aDt4Kyspe3ZhciBWPXRoaXMud29yZHNbeF0mdGU7dGhpcy53b3Jkc1t4XT0o''@;'; + put 'put ''MHx0aGlzLndvcmRzW3hdKS1WPDx6fFAsUD1WPj4+MjYten1QJiYodGhpcy53b3Jkc1t4XT1QLHRoaXMubGVuZ3RoKyspfWlmKDAhPT1uZSl7Zm9yKHg9dGhpcy5sZW5ndGgtMTt4Pj0wO3gtLSl0aGlzLndvcmRzW3grbmVdPXRoaXMud29yZHNbeF07Zm9yKHg9MDt4PG5lO3grKyl0aGlzLndv''@;'; + put 'put ''cmRzW3hdPTA7dGhpcy5sZW5ndGgrPW5lfXJldHVybiB0aGlzLnN0cmlwKCl9LFUucHJvdG90eXBlLmlzaGxuPWZ1bmN0aW9uKE8pe3JldHVybiBFKDA9PT10aGlzLm5lZ2F0aXZlKSx0aGlzLml1c2hsbihPKX0sVS5wcm90b3R5cGUuaXVzaHJuPWZ1bmN0aW9uKE8seixuZSl7dmFyIHRlO0Uo''@;'; + put 'put ''Im51bWJlciI9PXR5cGVvZiBPJiZPPj0wKSx0ZT16Pyh6LXolMjYpLzI2OjA7dmFyIHg9TyUyNixQPU1hdGgubWluKChPLXgpLzI2LHRoaXMubGVuZ3RoKSxWPTY3MTA4ODYzXjY3MTA4ODYzPj4+eDw8eCxUPW5lO2lmKHRlLT1QLHRlPU1hdGgubWF4KDAsdGUpLFQpe2Zvcih2YXIgUz0wO1M8''@;'; + put 'put ''UDtTKyspVC53b3Jkc1tTXT10aGlzLndvcmRzW1NdO1QubGVuZ3RoPVB9aWYoMCE9PVApaWYodGhpcy5sZW5ndGg+UClmb3IodGhpcy5sZW5ndGgtPVAsUz0wO1M8dGhpcy5sZW5ndGg7UysrKXRoaXMud29yZHNbU109dGhpcy53b3Jkc1tTK1BdO2Vsc2UgdGhpcy53b3Jkc1swXT0wLHRoaXMu''@;'; + put 'put ''bGVuZ3RoPTE7dmFyIEY9MDtmb3IoUz10aGlzLmxlbmd0aC0xO1M+PTAmJigwIT09Rnx8Uz49dGUpO1MtLSl7dmFyIHllPTB8dGhpcy53b3Jkc1tTXTt0aGlzLndvcmRzW1NdPUY8PDI2LXh8eWU+Pj54LEY9eWUmVn1yZXR1cm4gVCYmMCE9PUYmJihULndvcmRzW1QubGVuZ3RoKytdPUYpLDA9''@;'; + put 'put ''PT10aGlzLmxlbmd0aCYmKHRoaXMud29yZHNbMF09MCx0aGlzLmxlbmd0aD0xKSx0aGlzLnN0cmlwKCl9LFUucHJvdG90eXBlLmlzaHJuPWZ1bmN0aW9uKE8seixuZSl7cmV0dXJuIEUoMD09PXRoaXMubmVnYXRpdmUpLHRoaXMuaXVzaHJuKE8seixuZSl9LFUucHJvdG90eXBlLnNobG49ZnVu''@;'; + put 'put ''Y3Rpb24oTyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc2hsbihPKX0sVS5wcm90b3R5cGUudXNobG49ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pdXNobG4oTyl9LFUucHJvdG90eXBlLnNocm49ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc2hybihPKX0sVS5wcm90''@;'; + put 'put ''b3R5cGUudXNocm49ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pdXNocm4oTyl9LFUucHJvdG90eXBlLnRlc3RuPWZ1bmN0aW9uKE8pe0UoIm51bWJlciI9PXR5cGVvZiBPJiZPPj0wKTt2YXIgej1PJTI2LG5lPShPLXopLzI2O3JldHVybiEodGhpcy5sZW5ndGg8PW5lfHwhKHRo''@;'; + put 'put ''aXMud29yZHNbbmVdJjE8PHopKX0sVS5wcm90b3R5cGUuaW1hc2tuPWZ1bmN0aW9uKE8pe0UoIm51bWJlciI9PXR5cGVvZiBPJiZPPj0wKTt2YXIgej1PJTI2LG5lPShPLXopLzI2O3JldHVybiBFKDA9PT10aGlzLm5lZ2F0aXZlLCJpbWFza24gd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlIG51''@;'; + put 'put ''bWJlcnMiKSx0aGlzLmxlbmd0aDw9bmU/dGhpczooMCE9PXomJm5lKyssdGhpcy5sZW5ndGg9TWF0aC5taW4obmUsdGhpcy5sZW5ndGgpLDAhPT16JiYodGhpcy53b3Jkc1t0aGlzLmxlbmd0aC0xXSY9NjcxMDg4NjNeNjcxMDg4NjM+Pj56PDx6KSx0aGlzLnN0cmlwKCkpfSxVLnByb3RvdHlw''@;'; + put 'put ''ZS5tYXNrbj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmltYXNrbihPKX0sVS5wcm90b3R5cGUuaWFkZG49ZnVuY3Rpb24oTyl7cmV0dXJuIEUoIm51bWJlciI9PXR5cGVvZiBPKSxFKE88NjcxMDg4NjQpLE88MD90aGlzLmlzdWJuKC1PKTowIT09dGhpcy5uZWdhdGl2ZT8xPT09''@;'; + put 'put ''dGhpcy5sZW5ndGgmJigwfHRoaXMud29yZHNbMF0pPE8/KHRoaXMud29yZHNbMF09Ty0oMHx0aGlzLndvcmRzWzBdKSx0aGlzLm5lZ2F0aXZlPTAsdGhpcyk6KHRoaXMubmVnYXRpdmU9MCx0aGlzLmlzdWJuKE8pLHRoaXMubmVnYXRpdmU9MSx0aGlzKTp0aGlzLl9pYWRkbihPKX0sVS5wcm90''@;'; + put 'put ''b3R5cGUuX2lhZGRuPWZ1bmN0aW9uKE8pe3RoaXMud29yZHNbMF0rPU87Zm9yKHZhciB6PTA7ejx0aGlzLmxlbmd0aCYmdGhpcy53b3Jkc1t6XT49NjcxMDg4NjQ7eisrKXRoaXMud29yZHNbel0tPTY3MTA4ODY0LHo9PT10aGlzLmxlbmd0aC0xP3RoaXMud29yZHNbeisxXT0xOnRoaXMud29y''@;'; + put 'put ''ZHNbeisxXSsrO3JldHVybiB0aGlzLmxlbmd0aD1NYXRoLm1heCh0aGlzLmxlbmd0aCx6KzEpLHRoaXN9LFUucHJvdG90eXBlLmlzdWJuPWZ1bmN0aW9uKE8pe2lmKEUoIm51bWJlciI9PXR5cGVvZiBPKSxFKE88NjcxMDg4NjQpLE88MClyZXR1cm4gdGhpcy5pYWRkbigtTyk7aWYoMCE9PXRo''@;'; + put 'put ''aXMubmVnYXRpdmUpcmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlzLmlhZGRuKE8pLHRoaXMubmVnYXRpdmU9MSx0aGlzO2lmKHRoaXMud29yZHNbMF0tPU8sMT09PXRoaXMubGVuZ3RoJiZ0aGlzLndvcmRzWzBdPDApdGhpcy53b3Jkc1swXT0tdGhpcy53b3Jkc1swXSx0aGlzLm5lZ2F0aXZl''@;'; + put 'put ''PTE7ZWxzZSBmb3IodmFyIHo9MDt6PHRoaXMubGVuZ3RoJiZ0aGlzLndvcmRzW3pdPDA7eisrKXRoaXMud29yZHNbel0rPTY3MTA4ODY0LHRoaXMud29yZHNbeisxXS09MTtyZXR1cm4gdGhpcy5zdHJpcCgpfSxVLnByb3RvdHlwZS5hZGRuPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmNsb25l''@;'; + put 'put ''KCkuaWFkZG4oTyl9LFUucHJvdG90eXBlLnN1Ym49ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc3VibihPKX0sVS5wcm90b3R5cGUuaWFicz1mdW5jdGlvbigpe3JldHVybiB0aGlzLm5lZ2F0aXZlPTAsdGhpc30sVS5wcm90b3R5cGUuYWJzPWZ1bmN0aW9uKCl7cmV0dXJuIHRo''@;'; + put 'put ''aXMuY2xvbmUoKS5pYWJzKCl9LFUucHJvdG90eXBlLl9pc2hsbnN1Ym11bD1mdW5jdGlvbihPLHosbmUpe3ZhciB4O3RoaXMuX2V4cGFuZChPLmxlbmd0aCtuZSk7dmFyIFAsVj0wO2Zvcih4PTA7eDxPLmxlbmd0aDt4Kyspe1A9KDB8dGhpcy53b3Jkc1t4K25lXSkrVjt2YXIgVD0oMHxPLndv''@;'; + put 'put ''cmRzW3hdKSp6O1Y9KChQLT02NzEwODg2MyZUKT4+MjYpLShULzY3MTA4ODY0fDApLHRoaXMud29yZHNbeCtuZV09NjcxMDg4NjMmUH1mb3IoO3g8dGhpcy5sZW5ndGgtbmU7eCsrKVY9KFA9KDB8dGhpcy53b3Jkc1t4K25lXSkrVik+PjI2LHRoaXMud29yZHNbeCtuZV09NjcxMDg4NjMmUDtp''@;'; + put 'put ''ZigwPT09VilyZXR1cm4gdGhpcy5zdHJpcCgpO2ZvcihFKC0xPT09ViksVj0wLHg9MDt4PHRoaXMubGVuZ3RoO3grKylWPShQPS0oMHx0aGlzLndvcmRzW3hdKStWKT4+MjYsdGhpcy53b3Jkc1t4XT02NzEwODg2MyZQO3JldHVybiB0aGlzLm5lZ2F0aXZlPTEsdGhpcy5zdHJpcCgpfSxVLnBy''@;'; + put 'put ''b3RvdHlwZS5fd29yZERpdj1mdW5jdGlvbihPLHope3ZhciBuZSx0ZT10aGlzLmNsb25lKCkseD1PLFA9MHx4LndvcmRzW3gubGVuZ3RoLTFdOzAhPShuZT0yNi10aGlzLl9jb3VudEJpdHMoUCkpJiYoeD14LnVzaGxuKG5lKSx0ZS5pdXNobG4obmUpLFA9MHx4LndvcmRzW3gubGVuZ3RoLTFd''@;'; + put 'put ''KTt2YXIgUyxUPXRlLmxlbmd0aC14Lmxlbmd0aDtpZigibW9kIiE9PXopeyhTPW5ldyBVKG51bGwpKS5sZW5ndGg9VCsxLFMud29yZHM9bmV3IEFycmF5KFMubGVuZ3RoKTtmb3IodmFyIEY9MDtGPFMubGVuZ3RoO0YrKylTLndvcmRzW0ZdPTB9dmFyIHllPXRlLmNsb25lKCkuX2lzaGxuc3Vi''@;'; + put 'put ''bXVsKHgsMSxUKTswPT09eWUubmVnYXRpdmUmJih0ZT15ZSxTJiYoUy53b3Jkc1tUXT0xKSk7Zm9yKHZhciBDZT1ULTE7Q2U+PTA7Q2UtLSl7dmFyIERlPTY3MTA4ODY0KigwfHRlLndvcmRzW3gubGVuZ3RoK0NlXSkrKDB8dGUud29yZHNbeC5sZW5ndGgrQ2UtMV0pO2ZvcihEZT1NYXRoLm1p''@;'; + put 'put ''bihEZS9QfDAsNjcxMDg4NjMpLHRlLl9pc2hsbnN1Ym11bCh4LERlLENlKTswIT09dGUubmVnYXRpdmU7KURlLS0sdGUubmVnYXRpdmU9MCx0ZS5faXNobG5zdWJtdWwoeCwxLENlKSx0ZS5pc1plcm8oKXx8KHRlLm5lZ2F0aXZlXj0xKTtTJiYoUy53b3Jkc1tDZV09RGUpfXJldHVybiBTJiZT''@;'; + put 'put ''LnN0cmlwKCksdGUuc3RyaXAoKSwiZGl2IiE9PXomJjAhPT1uZSYmdGUuaXVzaHJuKG5lKSx7ZGl2OlN8fG51bGwsbW9kOnRlfX0sVS5wcm90b3R5cGUuZGl2bW9kPWZ1bmN0aW9uKE8seixuZSl7cmV0dXJuIEUoIU8uaXNaZXJvKCkpLHRoaXMuaXNaZXJvKCk/e2RpdjpuZXcgVSgwKSxtb2Q6''@;'; + put 'put ''bmV3IFUoMCl9OjAhPT10aGlzLm5lZ2F0aXZlJiYwPT09Ty5uZWdhdGl2ZT8oUD10aGlzLm5lZygpLmRpdm1vZChPLHopLCJtb2QiIT09eiYmKHRlPVAuZGl2Lm5lZygpKSwiZGl2IiE9PXomJih4PVAubW9kLm5lZygpLG5lJiYwIT09eC5uZWdhdGl2ZSYmeC5pYWRkKE8pKSx7ZGl2OnRlLG1v''@;'; + put 'put ''ZDp4fSk6MD09PXRoaXMubmVnYXRpdmUmJjAhPT1PLm5lZ2F0aXZlPyhQPXRoaXMuZGl2bW9kKE8ubmVnKCkseiksIm1vZCIhPT16JiYodGU9UC5kaXYubmVnKCkpLHtkaXY6dGUsbW9kOlAubW9kfSk6MCE9KHRoaXMubmVnYXRpdmUmTy5uZWdhdGl2ZSk/KFA9dGhpcy5uZWcoKS5kaXZtb2Qo''@;'; + put 'put ''Ty5uZWcoKSx6KSwiZGl2IiE9PXomJih4PVAubW9kLm5lZygpLG5lJiYwIT09eC5uZWdhdGl2ZSYmeC5pc3ViKE8pKSx7ZGl2OlAuZGl2LG1vZDp4fSk6Ty5sZW5ndGg+dGhpcy5sZW5ndGh8fHRoaXMuY21wKE8pPDA/e2RpdjpuZXcgVSgwKSxtb2Q6dGhpc306MT09PU8ubGVuZ3RoPyJkaXYi''@;'; + put 'put ''PT09ej97ZGl2OnRoaXMuZGl2bihPLndvcmRzWzBdKSxtb2Q6bnVsbH06Im1vZCI9PT16P3tkaXY6bnVsbCxtb2Q6bmV3IFUodGhpcy5tb2RuKE8ud29yZHNbMF0pKX06e2Rpdjp0aGlzLmRpdm4oTy53b3Jkc1swXSksbW9kOm5ldyBVKHRoaXMubW9kbihPLndvcmRzWzBdKSl9OnRoaXMuX3dv''@;'; + put 'put ''cmREaXYoTyx6KTt2YXIgdGUseCxQfSxVLnByb3RvdHlwZS5kaXY9ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuZGl2bW9kKE8sImRpdiIsITEpLmRpdn0sVS5wcm90b3R5cGUubW9kPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmRpdm1vZChPLCJtb2QiLCExKS5tb2R9LFUucHJvdG90eXBlLnVt''@;'; + put 'put ''b2Q9ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuZGl2bW9kKE8sIm1vZCIsITApLm1vZH0sVS5wcm90b3R5cGUuZGl2Um91bmQ9ZnVuY3Rpb24oTyl7dmFyIHo9dGhpcy5kaXZtb2QoTyk7aWYoei5tb2QuaXNaZXJvKCkpcmV0dXJuIHouZGl2O3ZhciBuZT0wIT09ei5kaXYubmVnYXRpdmU/ei5t''@;'; + put 'put ''b2QuaXN1YihPKTp6Lm1vZCx0ZT1PLnVzaHJuKDEpLHg9Ty5hbmRsbigxKSxQPW5lLmNtcCh0ZSk7cmV0dXJuIFA8MHx8MT09PXgmJjA9PT1QP3ouZGl2OjAhPT16LmRpdi5uZWdhdGl2ZT96LmRpdi5pc3VibigxKTp6LmRpdi5pYWRkbigxKX0sVS5wcm90b3R5cGUubW9kbj1mdW5jdGlvbihP''@;'; + put 'put ''KXtFKE88PTY3MTA4ODYzKTtmb3IodmFyIHo9KDE8PDI2KSVPLG5lPTAsdGU9dGhpcy5sZW5ndGgtMTt0ZT49MDt0ZS0tKW5lPSh6Km5lKygwfHRoaXMud29yZHNbdGVdKSklTztyZXR1cm4gbmV9LFUucHJvdG90eXBlLmlkaXZuPWZ1bmN0aW9uKE8pe0UoTzw9NjcxMDg4NjMpO2Zvcih2YXIg''@;'; + put 'put ''ej0wLG5lPXRoaXMubGVuZ3RoLTE7bmU+PTA7bmUtLSl7dmFyIHRlPSgwfHRoaXMud29yZHNbbmVdKSs2NzEwODg2NCp6O3RoaXMud29yZHNbbmVdPXRlL098MCx6PXRlJU99cmV0dXJuIHRoaXMuc3RyaXAoKX0sVS5wcm90b3R5cGUuZGl2bj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5jbG9u''@;'; + put 'put ''ZSgpLmlkaXZuKE8pfSxVLnByb3RvdHlwZS5lZ2NkPWZ1bmN0aW9uKE8pe0UoMD09PU8ubmVnYXRpdmUpLEUoIU8uaXNaZXJvKCkpO3ZhciB6PXRoaXMsbmU9Ty5jbG9uZSgpO3o9MCE9PXoubmVnYXRpdmU/ei51bW9kKE8pOnouY2xvbmUoKTtmb3IodmFyIHRlPW5ldyBVKDEpLHg9bmV3IFUo''@;'; + put 'put ''MCksUD1uZXcgVSgwKSxWPW5ldyBVKDEpLFQ9MDt6LmlzRXZlbigpJiZuZS5pc0V2ZW4oKTspei5pdXNocm4oMSksbmUuaXVzaHJuKDEpLCsrVDtmb3IodmFyIFM9bmUuY2xvbmUoKSxGPXouY2xvbmUoKTshei5pc1plcm8oKTspe2Zvcih2YXIgeWU9MCxDZT0xOzA9PSh6LndvcmRzWzBdJkNl''@;'; + put 'put ''KSYmeWU8MjY7Kyt5ZSxDZTw8PTEpO2lmKHllPjApZm9yKHouaXVzaHJuKHllKTt5ZS0tID4wOykodGUuaXNPZGQoKXx8eC5pc09kZCgpKSYmKHRlLmlhZGQoUykseC5pc3ViKEYpKSx0ZS5pdXNocm4oMSkseC5pdXNocm4oMSk7Zm9yKHZhciBEZT0wLFBlPTE7MD09KG5lLndvcmRzWzBdJlBl''@;'; + put 'put ''KSYmRGU8MjY7KytEZSxQZTw8PTEpO2lmKERlPjApZm9yKG5lLml1c2hybihEZSk7RGUtLSA+MDspKFAuaXNPZGQoKXx8Vi5pc09kZCgpKSYmKFAuaWFkZChTKSxWLmlzdWIoRikpLFAuaXVzaHJuKDEpLFYuaXVzaHJuKDEpO3ouY21wKG5lKT49MD8oei5pc3ViKG5lKSx0ZS5pc3ViKFApLHgu''@;'; + put 'put ''aXN1YihWKSk6KG5lLmlzdWIoeiksUC5pc3ViKHRlKSxWLmlzdWIoeCkpfXJldHVybnthOlAsYjpWLGdjZDpuZS5pdXNobG4oVCl9fSxVLnByb3RvdHlwZS5faW52bXA9ZnVuY3Rpb24oTyl7RSgwPT09Ty5uZWdhdGl2ZSksRSghTy5pc1plcm8oKSk7dmFyIHllLHo9dGhpcyxuZT1PLmNsb25l''@;'; + put 'put ''KCk7ej0wIT09ei5uZWdhdGl2ZT96LnVtb2QoTyk6ei5jbG9uZSgpO2Zvcih2YXIgdGU9bmV3IFUoMSkseD1uZXcgVSgwKSxQPW5lLmNsb25lKCk7ei5jbXBuKDEpPjAmJm5lLmNtcG4oMSk+MDspe2Zvcih2YXIgVj0wLFQ9MTswPT0oei53b3Jkc1swXSZUKSYmVjwyNjsrK1YsVDw8PTEpO2lm''@;'; + put 'put ''KFY+MClmb3Ioei5pdXNocm4oVik7Vi0tID4wOyl0ZS5pc09kZCgpJiZ0ZS5pYWRkKFApLHRlLml1c2hybigxKTtmb3IodmFyIFM9MCxGPTE7MD09KG5lLndvcmRzWzBdJkYpJiZTPDI2OysrUyxGPDw9MSk7aWYoUz4wKWZvcihuZS5pdXNocm4oUyk7Uy0tID4wOyl4LmlzT2RkKCkmJnguaWFk''@;'; + put 'put ''ZChQKSx4Lml1c2hybigxKTt6LmNtcChuZSk+PTA/KHouaXN1YihuZSksdGUuaXN1Yih4KSk6KG5lLmlzdWIoeikseC5pc3ViKHRlKSl9cmV0dXJuKHllPTA9PT16LmNtcG4oMSk/dGU6eCkuY21wbigwKTwwJiZ5ZS5pYWRkKE8pLHllfSxVLnByb3RvdHlwZS5nY2Q9ZnVuY3Rpb24oTyl7aWYo''@;'; + put 'put ''dGhpcy5pc1plcm8oKSlyZXR1cm4gTy5hYnMoKTtpZihPLmlzWmVybygpKXJldHVybiB0aGlzLmFicygpO3ZhciB6PXRoaXMuY2xvbmUoKSxuZT1PLmNsb25lKCk7ei5uZWdhdGl2ZT0wLG5lLm5lZ2F0aXZlPTA7Zm9yKHZhciB0ZT0wO3ouaXNFdmVuKCkmJm5lLmlzRXZlbigpO3RlKyspei5p''@;'; + put 'put ''dXNocm4oMSksbmUuaXVzaHJuKDEpO2Zvcig7Oyl7Zm9yKDt6LmlzRXZlbigpOyl6Lml1c2hybigxKTtmb3IoO25lLmlzRXZlbigpOyluZS5pdXNocm4oMSk7dmFyIHg9ei5jbXAobmUpO2lmKHg8MCl7dmFyIFA9ejt6PW5lLG5lPVB9ZWxzZSBpZigwPT09eHx8MD09PW5lLmNtcG4oMSkpYnJl''@;'; + put 'put ''YWs7ei5pc3ViKG5lKX1yZXR1cm4gbmUuaXVzaGxuKHRlKX0sVS5wcm90b3R5cGUuaW52bT1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5lZ2NkKE8pLmEudW1vZChPKX0sVS5wcm90b3R5cGUuaXNFdmVuPWZ1bmN0aW9uKCl7cmV0dXJuIDA9PSgxJnRoaXMud29yZHNbMF0pfSxVLnByb3RvdHlw''@;'; + put 'put ''ZS5pc09kZD1mdW5jdGlvbigpe3JldHVybiAxPT0oMSZ0aGlzLndvcmRzWzBdKX0sVS5wcm90b3R5cGUuYW5kbG49ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMud29yZHNbMF0mT30sVS5wcm90b3R5cGUuYmluY249ZnVuY3Rpb24oTyl7RSgibnVtYmVyIj09dHlwZW9mIE8pO3ZhciB6PU8lMjYs''@;'; + put 'put ''bmU9KE8teikvMjYsdGU9MTw8ejtpZih0aGlzLmxlbmd0aDw9bmUpcmV0dXJuIHRoaXMuX2V4cGFuZChuZSsxKSx0aGlzLndvcmRzW25lXXw9dGUsdGhpcztmb3IodmFyIHg9dGUsUD1uZTswIT09eCYmUDx0aGlzLmxlbmd0aDtQKyspe3ZhciBWPTB8dGhpcy53b3Jkc1tQXTt4PShWKz14KT4+''@;'; + put 'put ''PjI2LHRoaXMud29yZHNbUF09ViY9NjcxMDg4NjN9cmV0dXJuIDAhPT14JiYodGhpcy53b3Jkc1tQXT14LHRoaXMubGVuZ3RoKyspLHRoaXN9LFUucHJvdG90eXBlLmlzWmVybz1mdW5jdGlvbigpe3JldHVybiAxPT09dGhpcy5sZW5ndGgmJjA9PT10aGlzLndvcmRzWzBdfSxVLnByb3RvdHlw''@;'; + put 'put ''ZS5jbXBuPWZ1bmN0aW9uKE8pe3ZhciBuZSx6PU88MDtpZigwIT09dGhpcy5uZWdhdGl2ZSYmIXopcmV0dXJuLTE7aWYoMD09PXRoaXMubmVnYXRpdmUmJnopcmV0dXJuIDE7aWYodGhpcy5zdHJpcCgpLHRoaXMubGVuZ3RoPjEpbmU9MTtlbHNle3omJihPPS1PKSxFKE88PTY3MTA4ODYzLCJO''@;'; + put 'put ''dW1iZXIgaXMgdG9vIGJpZyIpO3ZhciB0ZT0wfHRoaXMud29yZHNbMF07bmU9dGU9PT1PPzA6dGU8Tz8tMToxfXJldHVybiAwIT09dGhpcy5uZWdhdGl2ZT8wfC1uZTpuZX0sVS5wcm90b3R5cGUuY21wPWZ1bmN0aW9uKE8pe2lmKDAhPT10aGlzLm5lZ2F0aXZlJiYwPT09Ty5uZWdhdGl2ZSly''@;'; + put 'put ''ZXR1cm4tMTtpZigwPT09dGhpcy5uZWdhdGl2ZSYmMCE9PU8ubmVnYXRpdmUpcmV0dXJuIDE7dmFyIHo9dGhpcy51Y21wKE8pO3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZT8wfC16Onp9LFUucHJvdG90eXBlLnVjbXA9ZnVuY3Rpb24oTyl7aWYodGhpcy5sZW5ndGg+Ty5sZW5ndGgpcmV0dXJu''@;'; + put 'put ''IDE7aWYodGhpcy5sZW5ndGg8Ty5sZW5ndGgpcmV0dXJuLTE7Zm9yKHZhciB6PTAsbmU9dGhpcy5sZW5ndGgtMTtuZT49MDtuZS0tKXt2YXIgdGU9MHx0aGlzLndvcmRzW25lXSx4PTB8Ty53b3Jkc1tuZV07aWYodGUhPT14KXt0ZTx4P3o9LTE6dGU+eCYmKHo9MSk7YnJlYWt9fXJldHVybiB6''@;'; + put 'put ''fSxVLnByb3RvdHlwZS5ndG49ZnVuY3Rpb24oTyl7cmV0dXJuIDE9PT10aGlzLmNtcG4oTyl9LFUucHJvdG90eXBlLmd0PWZ1bmN0aW9uKE8pe3JldHVybiAxPT09dGhpcy5jbXAoTyl9LFUucHJvdG90eXBlLmd0ZW49ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuY21wbihPKT49MH0sVS5wcm90''@;'; + put 'put ''b3R5cGUuZ3RlPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmNtcChPKT49MH0sVS5wcm90b3R5cGUubHRuPWZ1bmN0aW9uKE8pe3JldHVybi0xPT09dGhpcy5jbXBuKE8pfSxVLnByb3RvdHlwZS5sdD1mdW5jdGlvbihPKXtyZXR1cm4tMT09PXRoaXMuY21wKE8pfSxVLnByb3RvdHlwZS5sdGVu''@;'; + put 'put ''PWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmNtcG4oTyk8PTB9LFUucHJvdG90eXBlLmx0ZT1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5jbXAoTyk8PTB9LFUucHJvdG90eXBlLmVxbj1mdW5jdGlvbihPKXtyZXR1cm4gMD09PXRoaXMuY21wbihPKX0sVS5wcm90b3R5cGUuZXE9ZnVuY3Rpb24o''@;'; + put 'put ''Tyl7cmV0dXJuIDA9PT10aGlzLmNtcChPKX0sVS5yZWQ9ZnVuY3Rpb24oTyl7cmV0dXJuIG5ldyBUZShPKX0sVS5wcm90b3R5cGUudG9SZWQ9ZnVuY3Rpb24oTyl7cmV0dXJuIEUoIXRoaXMucmVkLCJBbHJlYWR5IGEgbnVtYmVyIGluIHJlZHVjdGlvbiBjb250ZXh0IiksRSgwPT09dGhpcy5u''@;'; + put 'put ''ZWdhdGl2ZSwicmVkIHdvcmtzIG9ubHkgd2l0aCBwb3NpdGl2ZXMiKSxPLmNvbnZlcnRUbyh0aGlzKS5fZm9yY2VSZWQoTyl9LFUucHJvdG90eXBlLmZyb21SZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gRSh0aGlzLnJlZCwiZnJvbVJlZCB3b3JrcyBvbmx5IHdpdGggbnVtYmVycyBpbiByZWR1Y3Rp''@;'; + put 'put ''b24gY29udGV4dCIpLHRoaXMucmVkLmNvbnZlcnRGcm9tKHRoaXMpfSxVLnByb3RvdHlwZS5fZm9yY2VSZWQ9ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMucmVkPU8sdGhpc30sVS5wcm90b3R5cGUuZm9yY2VSZWQ9ZnVuY3Rpb24oTyl7cmV0dXJuIEUoIXRoaXMucmVkLCJBbHJlYWR5IGEgbnVt''@;'; + put 'put ''YmVyIGluIHJlZHVjdGlvbiBjb250ZXh0IiksdGhpcy5fZm9yY2VSZWQoTyl9LFUucHJvdG90eXBlLnJlZEFkZD1mdW5jdGlvbihPKXtyZXR1cm4gRSh0aGlzLnJlZCwicmVkQWRkIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLmFkZCh0aGlzLE8pfSxVLnByb3RvdHlw''@;'; + put 'put ''ZS5yZWRJQWRkPWZ1bmN0aW9uKE8pe3JldHVybiBFKHRoaXMucmVkLCJyZWRJQWRkIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLmlhZGQodGhpcyxPKX0sVS5wcm90b3R5cGUucmVkU3ViPWZ1bmN0aW9uKE8pe3JldHVybiBFKHRoaXMucmVkLCJyZWRTdWIgd29ya3Mg''@;'; + put 'put ''b25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuc3ViKHRoaXMsTyl9LFUucHJvdG90eXBlLnJlZElTdWI9ZnVuY3Rpb24oTyl7cmV0dXJuIEUodGhpcy5yZWQsInJlZElTdWIgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuaXN1Yih0aGlzLE8pfSxVLnByb3Rv''@;'; + put 'put ''dHlwZS5yZWRTaGw9ZnVuY3Rpb24oTyl7cmV0dXJuIEUodGhpcy5yZWQsInJlZFNobCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5zaGwodGhpcyxPKX0sVS5wcm90b3R5cGUucmVkTXVsPWZ1bmN0aW9uKE8pe3JldHVybiBFKHRoaXMucmVkLCJyZWRNdWwgd29ya3Mg''@;'; + put 'put ''b25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTIodGhpcyxPKSx0aGlzLnJlZC5tdWwodGhpcyxPKX0sVS5wcm90b3R5cGUucmVkSU11bD1mdW5jdGlvbihPKXtyZXR1cm4gRSh0aGlzLnJlZCwicmVkTXVsIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMu''@;'; + put 'put ''cmVkLl92ZXJpZnkyKHRoaXMsTyksdGhpcy5yZWQuaW11bCh0aGlzLE8pfSxVLnByb3RvdHlwZS5yZWRTcXI9ZnVuY3Rpb24oKXtyZXR1cm4gRSh0aGlzLnJlZCwicmVkU3FyIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLnNx''@;'; + put 'put ''cih0aGlzKX0sVS5wcm90b3R5cGUucmVkSVNxcj1mdW5jdGlvbigpe3JldHVybiBFKHRoaXMucmVkLCJyZWRJU3FyIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLmlzcXIodGhpcyl9LFUucHJvdG90eXBlLnJlZFNxcnQ9ZnVu''@;'; + put 'put ''Y3Rpb24oKXtyZXR1cm4gRSh0aGlzLnJlZCwicmVkU3FydCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5zcXJ0KHRoaXMpfSxVLnByb3RvdHlwZS5yZWRJbnZtPWZ1bmN0aW9uKCl7cmV0dXJuIEUodGhpcy5yZWQsInJlZElu''@;'; + put 'put ''dm0gd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQuaW52bSh0aGlzKX0sVS5wcm90b3R5cGUucmVkTmVnPWZ1bmN0aW9uKCl7cmV0dXJuIEUodGhpcy5yZWQsInJlZE5lZyB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0''@;'; + put 'put ''aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5uZWcodGhpcyl9LFUucHJvdG90eXBlLnJlZFBvdz1mdW5jdGlvbihPKXtyZXR1cm4gRSh0aGlzLnJlZCYmIU8ucmVkLCJyZWRQb3cobm9ybWFsTnVtKSIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLnBvdyh0aGlzLE8p''@;'; + put 'put ''fTt2YXIgZGU9e2syNTY6bnVsbCxwMjI0Om51bGwscDE5MjpudWxsLHAyNTUxOTpudWxsfTtmdW5jdGlvbiB2ZShoZSxPKXt0aGlzLm5hbWU9aGUsdGhpcy5wPW5ldyBVKE8sMTYpLHRoaXMubj10aGlzLnAuYml0TGVuZ3RoKCksdGhpcy5rPW5ldyBVKDEpLml1c2hsbih0aGlzLm4pLmlzdWIo''@;'; + put 'put ''dGhpcy5wKSx0aGlzLnRtcD10aGlzLl90bXAoKX1mdW5jdGlvbiBBZSgpe3ZlLmNhbGwodGhpcywiazI1NiIsImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZlIGZmZmZmYzJmIil9ZnVuY3Rpb24ga2UoKXt2ZS5jYWxsKHRoaXMs''@;'; + put 'put ''InAyMjQiLCJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMSIpfWZ1bmN0aW9uIFNlKCl7dmUuY2FsbCh0aGlzLCJwMTkyIiwiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUgZmZmZmZmZmYgZmZmZmZmZmYiKX1m''@;'; + put 'put ''dW5jdGlvbiBJZSgpe3ZlLmNhbGwodGhpcywiMjU1MTkiLCI3ZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZmZmZmZmVkIil9ZnVuY3Rpb24gVGUoaGUpe2lmKCJzdHJpbmciPT10eXBlb2YgaGUpe3ZhciBPPVUuX3ByaW1lKGhlKTt0''@;'; + put 'put ''aGlzLm09Ty5wLHRoaXMucHJpbWU9T31lbHNlIEUoaGUuZ3RuKDEpLCJtb2R1bHVzIG11c3QgYmUgZ3JlYXRlciB0aGFuIDEiKSx0aGlzLm09aGUsdGhpcy5wcmltZT1udWxsfWZ1bmN0aW9uIEVlKGhlKXtUZS5jYWxsKHRoaXMsaGUpLHRoaXMuc2hpZnQ9dGhpcy5tLmJpdExlbmd0aCgpLHRo''@;'; + put 'put ''aXMuc2hpZnQlMjYhPTAmJih0aGlzLnNoaWZ0Kz0yNi10aGlzLnNoaWZ0JTI2KSx0aGlzLnI9bmV3IFUoMSkuaXVzaGxuKHRoaXMuc2hpZnQpLHRoaXMucjI9dGhpcy5pbW9kKHRoaXMuci5zcXIoKSksdGhpcy5yaW52PXRoaXMuci5faW52bXAodGhpcy5tKSx0aGlzLm1pbnY9dGhpcy5yaW52''@;'; + put 'put ''Lm11bCh0aGlzLnIpLmlzdWJuKDEpLmRpdih0aGlzLm0pLHRoaXMubWludj10aGlzLm1pbnYudW1vZCh0aGlzLnIpLHRoaXMubWludj10aGlzLnIuc3ViKHRoaXMubWludil9dmUucHJvdG90eXBlLl90bXA9ZnVuY3Rpb24oKXt2YXIgTz1uZXcgVShudWxsKTtyZXR1cm4gTy53b3Jkcz1uZXcg''@;'; + put 'put ''QXJyYXkoTWF0aC5jZWlsKHRoaXMubi8xMykpLE99LHZlLnByb3RvdHlwZS5pcmVkdWNlPWZ1bmN0aW9uKE8pe3ZhciBuZSx6PU87ZG97dGhpcy5zcGxpdCh6LHRoaXMudG1wKSxuZT0oej0oej10aGlzLmltdWxLKHopKS5pYWRkKHRoaXMudG1wKSkuYml0TGVuZ3RoKCl9d2hpbGUobmU+dGhp''@;'; + put 'put ''cy5uKTt2YXIgdGU9bmU8dGhpcy5uPy0xOnoudWNtcCh0aGlzLnApO3JldHVybiAwPT09dGU/KHoud29yZHNbMF09MCx6Lmxlbmd0aD0xKTp0ZT4wP3ouaXN1Yih0aGlzLnApOnZvaWQgMCE9PXouc3RyaXA/ei5zdHJpcCgpOnouX3N0cmlwKCksen0sdmUucHJvdG90eXBlLnNwbGl0PWZ1bmN0''@;'; + put 'put ''aW9uKE8seil7Ty5pdXNocm4odGhpcy5uLDAseil9LHZlLnByb3RvdHlwZS5pbXVsSz1mdW5jdGlvbihPKXtyZXR1cm4gTy5pbXVsKHRoaXMuayl9LE1lKEFlLHZlKSxBZS5wcm90b3R5cGUuc3BsaXQ9ZnVuY3Rpb24oTyx6KXtmb3IodmFyIHRlPU1hdGgubWluKE8ubGVuZ3RoLDkpLHg9MDt4''@;'; + put 'put ''PHRlO3grKyl6LndvcmRzW3hdPU8ud29yZHNbeF07aWYoei5sZW5ndGg9dGUsTy5sZW5ndGg8PTkpcmV0dXJuIE8ud29yZHNbMF09MCx2b2lkKE8ubGVuZ3RoPTEpO3ZhciBQPU8ud29yZHNbOV07Zm9yKHoud29yZHNbei5sZW5ndGgrK109NDE5NDMwMyZQLHg9MTA7eDxPLmxlbmd0aDt4Kysp''@;'; + put 'put ''e3ZhciBWPTB8Ty53b3Jkc1t4XTtPLndvcmRzW3gtMTBdPSg0MTk0MzAzJlYpPDw0fFA+Pj4yMixQPVZ9Ty53b3Jkc1t4LTEwXT1QPj4+PTIyLE8ubGVuZ3RoLT0wPT09UCYmTy5sZW5ndGg+MTA/MTA6OX0sQWUucHJvdG90eXBlLmltdWxLPWZ1bmN0aW9uKE8pe08ud29yZHNbTy5sZW5ndGhd''@;'; + put 'put ''PTAsTy53b3Jkc1tPLmxlbmd0aCsxXT0wLE8ubGVuZ3RoKz0yO2Zvcih2YXIgej0wLG5lPTA7bmU8Ty5sZW5ndGg7bmUrKyl7dmFyIHRlPTB8Ty53b3Jkc1tuZV07Ty53b3Jkc1tuZV09NjcxMDg4NjMmKHorPTk3Nyp0ZSksej02NCp0ZSsoei82NzEwODg2NHwwKX1yZXR1cm4gMD09PU8ud29y''@;'; + put 'put ''ZHNbTy5sZW5ndGgtMV0mJihPLmxlbmd0aC0tLDA9PT1PLndvcmRzW08ubGVuZ3RoLTFdJiZPLmxlbmd0aC0tKSxPfSxNZShrZSx2ZSksTWUoU2UsdmUpLE1lKEllLHZlKSxJZS5wcm90b3R5cGUuaW11bEs9ZnVuY3Rpb24oTyl7Zm9yKHZhciB6PTAsbmU9MDtuZTxPLmxlbmd0aDtuZSsrKXt2''@;'; + put 'put ''YXIgdGU9MTkqKDB8Ty53b3Jkc1tuZV0pK3oseD02NzEwODg2MyZ0ZTt0ZT4+Pj0yNixPLndvcmRzW25lXT14LHo9dGV9cmV0dXJuIDAhPT16JiYoTy53b3Jkc1tPLmxlbmd0aCsrXT16KSxPfSxVLl9wcmltZT1mdW5jdGlvbihPKXtpZihkZVtPXSlyZXR1cm4gZGVbT107dmFyIHo7aWYoImsy''@;'; + put 'put ''NTYiPT09Tyl6PW5ldyBBZTtlbHNlIGlmKCJwMjI0Ij09PU8pej1uZXcga2U7ZWxzZSBpZigicDE5MiI9PT1PKXo9bmV3IFNlO2Vsc2V7aWYoInAyNTUxOSIhPT1PKXRocm93IG5ldyBFcnJvcigiVW5rbm93biBwcmltZSAiK08pO3o9bmV3IEllfXJldHVybiBkZVtPXT16LHp9LFRlLnByb3Rv''@;'; + put 'put ''dHlwZS5fdmVyaWZ5MT1mdW5jdGlvbihPKXtFKDA9PT1PLm5lZ2F0aXZlLCJyZWQgd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlcyIpLEUoTy5yZWQsInJlZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKX0sVGUucHJvdG90eXBlLl92ZXJpZnkyPWZ1bmN0aW9uKE8seil7RSgwPT0oTy5u''@;'; + put 'put ''ZWdhdGl2ZXx6Lm5lZ2F0aXZlKSwicmVkIHdvcmtzIG9ubHkgd2l0aCBwb3NpdGl2ZXMiKSxFKE8ucmVkJiZPLnJlZD09PXoucmVkLCJyZWQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIil9LFRlLnByb3RvdHlwZS5pbW9kPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLnByaW1lP3RoaXMu''@;'; + put 'put ''cHJpbWUuaXJlZHVjZShPKS5fZm9yY2VSZWQodGhpcyk6Ty51bW9kKHRoaXMubSkuX2ZvcmNlUmVkKHRoaXMpfSxUZS5wcm90b3R5cGUubmVnPWZ1bmN0aW9uKE8pe3JldHVybiBPLmlzWmVybygpP08uY2xvbmUoKTp0aGlzLm0uc3ViKE8pLl9mb3JjZVJlZCh0aGlzKX0sVGUucHJvdG90eXBl''@;'; + put 'put ''LmFkZD1mdW5jdGlvbihPLHope3RoaXMuX3ZlcmlmeTIoTyx6KTt2YXIgbmU9Ty5hZGQoeik7cmV0dXJuIG5lLmNtcCh0aGlzLm0pPj0wJiZuZS5pc3ViKHRoaXMubSksbmUuX2ZvcmNlUmVkKHRoaXMpfSxUZS5wcm90b3R5cGUuaWFkZD1mdW5jdGlvbihPLHope3RoaXMuX3ZlcmlmeTIoTyx6''@;'; + put 'put ''KTt2YXIgbmU9Ty5pYWRkKHopO3JldHVybiBuZS5jbXAodGhpcy5tKT49MCYmbmUuaXN1Yih0aGlzLm0pLG5lfSxUZS5wcm90b3R5cGUuc3ViPWZ1bmN0aW9uKE8seil7dGhpcy5fdmVyaWZ5MihPLHopO3ZhciBuZT1PLnN1Yih6KTtyZXR1cm4gbmUuY21wbigwKTwwJiZuZS5pYWRkKHRoaXMu''@;'; + put 'put ''bSksbmUuX2ZvcmNlUmVkKHRoaXMpfSxUZS5wcm90b3R5cGUuaXN1Yj1mdW5jdGlvbihPLHope3RoaXMuX3ZlcmlmeTIoTyx6KTt2YXIgbmU9Ty5pc3ViKHopO3JldHVybiBuZS5jbXBuKDApPDAmJm5lLmlhZGQodGhpcy5tKSxuZX0sVGUucHJvdG90eXBlLnNobD1mdW5jdGlvbihPLHope3Jl''@;'; + put 'put ''dHVybiB0aGlzLl92ZXJpZnkxKE8pLHRoaXMuaW1vZChPLnVzaGxuKHopKX0sVGUucHJvdG90eXBlLmltdWw9ZnVuY3Rpb24oTyx6KXtyZXR1cm4gdGhpcy5fdmVyaWZ5MihPLHopLHRoaXMuaW1vZChPLmltdWwoeikpfSxUZS5wcm90b3R5cGUubXVsPWZ1bmN0aW9uKE8seil7cmV0dXJuIHRo''@;'; + put 'put ''aXMuX3ZlcmlmeTIoTyx6KSx0aGlzLmltb2QoTy5tdWwoeikpfSxUZS5wcm90b3R5cGUuaXNxcj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5pbXVsKE8sTy5jbG9uZSgpKX0sVGUucHJvdG90eXBlLnNxcj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5tdWwoTyxPKX0sVGUucHJvdG90eXBlLnNx''@;'; + put 'put ''cnQ9ZnVuY3Rpb24oTyl7aWYoTy5pc1plcm8oKSlyZXR1cm4gTy5jbG9uZSgpO3ZhciB6PXRoaXMubS5hbmRsbigzKTtpZihFKHolMj09MSksMz09PXope3ZhciBuZT10aGlzLm0uYWRkKG5ldyBVKDEpKS5pdXNocm4oMik7cmV0dXJuIHRoaXMucG93KE8sbmUpfWZvcih2YXIgdGU9dGhpcy5t''@;'; + put 'put ''LnN1Ym4oMSkseD0wOyF0ZS5pc1plcm8oKSYmMD09PXRlLmFuZGxuKDEpOyl4KyssdGUuaXVzaHJuKDEpO0UoIXRlLmlzWmVybygpKTt2YXIgUD1uZXcgVSgxKS50b1JlZCh0aGlzKSxWPVAucmVkTmVnKCksVD10aGlzLm0uc3VibigxKS5pdXNocm4oMSksUz10aGlzLm0uYml0TGVuZ3RoKCk7''@;'; + put 'put ''Zm9yKFM9bmV3IFUoMipTKlMpLnRvUmVkKHRoaXMpOzAhPT10aGlzLnBvdyhTLFQpLmNtcChWKTspUy5yZWRJQWRkKFYpO2Zvcih2YXIgRj10aGlzLnBvdyhTLHRlKSx5ZT10aGlzLnBvdyhPLHRlLmFkZG4oMSkuaXVzaHJuKDEpKSxDZT10aGlzLnBvdyhPLHRlKSxEZT14OzAhPT1DZS5jbXAo''@;'; + put 'put ''UCk7KXtmb3IodmFyIFBlPUNlLFFlPTA7MCE9PVBlLmNtcChQKTtRZSsrKVBlPVBlLnJlZFNxcigpO0UoUWU8RGUpO3ZhciAkZT10aGlzLnBvdyhGLG5ldyBVKDEpLml1c2hsbihEZS1RZS0xKSk7eWU9eWUucmVkTXVsKCRlKSxGPSRlLnJlZFNxcigpLENlPUNlLnJlZE11bChGKSxEZT1RZX1y''@;'; + put 'put ''ZXR1cm4geWV9LFRlLnByb3RvdHlwZS5pbnZtPWZ1bmN0aW9uKE8pe3ZhciB6PU8uX2ludm1wKHRoaXMubSk7cmV0dXJuIDAhPT16Lm5lZ2F0aXZlPyh6Lm5lZ2F0aXZlPTAsdGhpcy5pbW9kKHopLnJlZE5lZygpKTp0aGlzLmltb2Qoeil9LFRlLnByb3RvdHlwZS5wb3c9ZnVuY3Rpb24oTyx6''@;'; + put 'put ''KXtpZih6LmlzWmVybygpKXJldHVybiBuZXcgVSgxKS50b1JlZCh0aGlzKTtpZigwPT09ei5jbXBuKDEpKXJldHVybiBPLmNsb25lKCk7dmFyIHRlPW5ldyBBcnJheSgxNik7dGVbMF09bmV3IFUoMSkudG9SZWQodGhpcyksdGVbMV09Tztmb3IodmFyIHg9Mjt4PHRlLmxlbmd0aDt4KyspdGVb''@;'; + put 'put ''eF09dGhpcy5tdWwodGVbeC0xXSxPKTt2YXIgUD10ZVswXSxWPTAsVD0wLFM9ei5iaXRMZW5ndGgoKSUyNjtmb3IoMD09PVMmJihTPTI2KSx4PXoubGVuZ3RoLTE7eD49MDt4LS0pe2Zvcih2YXIgRj16LndvcmRzW3hdLHllPVMtMTt5ZT49MDt5ZS0tKXt2YXIgQ2U9Rj4+eWUmMTtQIT09dGVb''@;'; + put 'put ''MF0mJihQPXRoaXMuc3FyKFApKSwwIT09Q2V8fDAhPT1WPyhWPDw9MSxWfD1DZSwoND09KytUfHwwPT09eCYmMD09PXllKSYmKFA9dGhpcy5tdWwoUCx0ZVtWXSksVD0wLFY9MCkpOlQ9MH1TPTI2fXJldHVybiBQfSxUZS5wcm90b3R5cGUuY29udmVydFRvPWZ1bmN0aW9uKE8pe3ZhciB6PU8u''@;'; + put 'put ''dW1vZCh0aGlzLm0pO3JldHVybiB6PT09Tz96LmNsb25lKCk6en0sVGUucHJvdG90eXBlLmNvbnZlcnRGcm9tPWZ1bmN0aW9uKE8pe3ZhciB6PU8uY2xvbmUoKTtyZXR1cm4gei5yZWQ9bnVsbCx6fSxVLm1vbnQ9ZnVuY3Rpb24oTyl7cmV0dXJuIG5ldyBFZShPKX0sTWUoRWUsVGUpLEVlLnBy''@;'; + put 'put ''b3RvdHlwZS5jb252ZXJ0VG89ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuaW1vZChPLnVzaGxuKHRoaXMuc2hpZnQpKX0sRWUucHJvdG90eXBlLmNvbnZlcnRGcm9tPWZ1bmN0aW9uKE8pe3ZhciB6PXRoaXMuaW1vZChPLm11bCh0aGlzLnJpbnYpKTtyZXR1cm4gei5yZWQ9bnVsbCx6fSxFZS5w''@;'; + put 'put ''cm90b3R5cGUuaW11bD1mdW5jdGlvbihPLHope2lmKE8uaXNaZXJvKCl8fHouaXNaZXJvKCkpcmV0dXJuIE8ud29yZHNbMF09MCxPLmxlbmd0aD0xLE87dmFyIG5lPU8uaW11bCh6KSx0ZT1uZS5tYXNrbih0aGlzLnNoaWZ0KS5tdWwodGhpcy5taW52KS5pbWFza24odGhpcy5zaGlmdCkubXVs''@;'; + put 'put ''KHRoaXMubSkseD1uZS5pc3ViKHRlKS5pdXNocm4odGhpcy5zaGlmdCksUD14O3JldHVybiB4LmNtcCh0aGlzLm0pPj0wP1A9eC5pc3ViKHRoaXMubSk6eC5jbXBuKDApPDAmJihQPXguaWFkZCh0aGlzLm0pKSxQLl9mb3JjZVJlZCh0aGlzKX0sRWUucHJvdG90eXBlLm11bD1mdW5jdGlvbihP''@;'; + put 'put ''LHope2lmKE8uaXNaZXJvKCl8fHouaXNaZXJvKCkpcmV0dXJuIG5ldyBVKDApLl9mb3JjZVJlZCh0aGlzKTt2YXIgbmU9Ty5tdWwoeiksdGU9bmUubWFza24odGhpcy5zaGlmdCkubXVsKHRoaXMubWludikuaW1hc2tuKHRoaXMuc2hpZnQpLm11bCh0aGlzLm0pLHg9bmUuaXN1Yih0ZSkuaXVz''@;'; + put 'put ''aHJuKHRoaXMuc2hpZnQpLFA9eDtyZXR1cm4geC5jbXAodGhpcy5tKT49MD9QPXguaXN1Yih0aGlzLm0pOnguY21wbigwKTwwJiYoUD14LmlhZGQodGhpcy5tKSksUC5fZm9yY2VSZWQodGhpcyl9LEVlLnByb3RvdHlwZS5pbnZtPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmltb2QoTy5faW52''@;'; + put 'put ''bXAodGhpcy5tKS5tdWwodGhpcy5yMikpLl9mb3JjZVJlZCh0aGlzKX19KFhlPUwubm1kKFhlKSx0aGlzKX0sNDAzOTA6KFhlLEplKT0+eyFmdW5jdGlvbigpeyJ1c2Ugc3RyaWN0Ijtmb3IodmFyIEw9IkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4''@;'; + put 'put ''eXowMTIzNDU2Nzg5Ky8iLG1lPW5ldyBVaW50OEFycmF5KDI1NiksQj0wO0I8TC5sZW5ndGg7QisrKW1lW0wuY2hhckNvZGVBdChCKV09QjtKZS5jPWZ1bmN0aW9uKEUpe3ZhciBVLE1lPW5ldyBVaW50OEFycmF5KEUpLFE9TWUubGVuZ3RoLFo9IiI7Zm9yKFU9MDtVPFE7VSs9MylaKz1MW01l''@;'; + put 'put ''W1VdPj4yXSxaKz1MWygzJk1lW1VdKTw8NHxNZVtVKzFdPj40XSxaKz1MWygxNSZNZVtVKzFdKTw8MnxNZVtVKzJdPj42XSxaKz1MWzYzJk1lW1UrMl1dO3JldHVybiBRJTM9PTI/Wj1aLnN1YnN0cmluZygwLFoubGVuZ3RoLTEpKyI9IjpRJTM9PTEmJihaPVouc3Vic3RyaW5nKDAsWi5sZW5n''@;'; + put 'put ''dGgtMikrIj09IiksWn0sSmUuSj1mdW5jdGlvbihFKXt2YXIgUSxpZSxhZSxZLFcsTWU9Ljc1KkUubGVuZ3RoLFU9RS5sZW5ndGgsWj0wOyI9Ij09PUVbRS5sZW5ndGgtMV0mJihNZS0tLCI9Ij09PUVbRS5sZW5ndGgtMl0mJk1lLS0pO3ZhciBOPW5ldyBBcnJheUJ1ZmZlcihNZSksZWU9bmV3''@;'; + put 'put ''IFVpbnQ4QXJyYXkoTik7Zm9yKFE9MDtRPFU7USs9NClpZT1tZVtFLmNoYXJDb2RlQXQoUSldLGFlPW1lW0UuY2hhckNvZGVBdChRKzEpXSxZPW1lW0UuY2hhckNvZGVBdChRKzIpXSxXPW1lW0UuY2hhckNvZGVBdChRKzMpXSxlZVtaKytdPWllPDwyfGFlPj40LGVlW1orK109KDE1JmFlKTw8''@;'; + put 'put ''NHxZPj4yLGVlW1orK109KDMmWSk8PDZ8NjMmVztyZXR1cm4gTn19KCl9LDUzNDM6KFhlLEplKT0+eyJ1c2Ugc3RyaWN0IjtKZS5ieXRlTGVuZ3RoPWZ1bmN0aW9uIFooZWUpe3ZhciBxPVEoZWUpLHNlPXFbMV07cmV0dXJuIDMqKHFbMF0rc2UpLzQtc2V9LEplLnRvQnl0ZUFycmF5PWZ1bmN0''@;'; + put 'put ''aW9uIGFlKGVlKXt2YXIgcSxBZSxKPVEoZWUpLHNlPUpbMF0sb2U9SlsxXSxjZT1uZXcgQihmdW5jdGlvbiBpZShlZSxxLEope3JldHVybiAzKihxK0opLzQtSn0oMCxzZSxvZSkpLGRlPTAsdmU9b2U+MD9zZS00OnNlO2ZvcihBZT0wO0FlPHZlO0FlKz00KXE9bWVbZWUuY2hhckNvZGVBdChB''@;'; + put 'put ''ZSldPDwxOHxtZVtlZS5jaGFyQ29kZUF0KEFlKzEpXTw8MTJ8bWVbZWUuY2hhckNvZGVBdChBZSsyKV08PDZ8bWVbZWUuY2hhckNvZGVBdChBZSszKV0sY2VbZGUrK109cT4+MTYmMjU1LGNlW2RlKytdPXE+PjgmMjU1LGNlW2RlKytdPTI1NSZxO3JldHVybiAyPT09b2UmJihxPW1lW2VlLmNo''@;'; + put 'put ''YXJDb2RlQXQoQWUpXTw8MnxtZVtlZS5jaGFyQ29kZUF0KEFlKzEpXT4+NCxjZVtkZSsrXT0yNTUmcSksMT09PW9lJiYocT1tZVtlZS5jaGFyQ29kZUF0KEFlKV08PDEwfG1lW2VlLmNoYXJDb2RlQXQoQWUrMSldPDw0fG1lW2VlLmNoYXJDb2RlQXQoQWUrMildPj4yLGNlW2RlKytdPXE+Pjgm''@;'; + put 'put ''MjU1LGNlW2RlKytdPTI1NSZxKSxjZX0sSmUuZnJvbUJ5dGVBcnJheT1mdW5jdGlvbiBOKGVlKXtmb3IodmFyIHEsSj1lZS5sZW5ndGgsc2U9SiUzLG9lPVtdLGRlPTAsdmU9Si1zZTtkZTx2ZTtkZSs9MTYzODMpb2UucHVzaChXKGVlLGRlLGRlKzE2MzgzPnZlP3ZlOmRlKzE2MzgzKSk7cmV0''@;'; + put 'put ''dXJuIDE9PT1zZT9vZS5wdXNoKExbKHE9ZWVbSi0xXSk+PjJdK0xbcTw8NCY2M10rIj09Iik6Mj09PXNlJiZvZS5wdXNoKExbKHE9KGVlW0otMl08PDgpK2VlW0otMV0pPj4xMF0rTFtxPj40JjYzXStMW3E8PDImNjNdKyI9Iiksb2Uuam9pbigiIil9O2Zvcih2YXIgTD1bXSxtZT1bXSxCPSJ1''@;'; + put 'put ''bmRlZmluZWQiIT10eXBlb2YgVWludDhBcnJheT9VaW50OEFycmF5OkFycmF5LEU9IkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky8iLE1lPTAsVT1FLmxlbmd0aDtNZTxVOysrTWUpTFtNZV09RVtNZV0sbWVbRS5jaGFyQ29k''@;'; + put 'put ''ZUF0KE1lKV09TWU7ZnVuY3Rpb24gUShlZSl7dmFyIHE9ZWUubGVuZ3RoO2lmKHElND4wKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBzdHJpbmcuIExlbmd0aCBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgNCIpO3ZhciBKPWVlLmluZGV4T2YoIj0iKTtyZXR1cm4tMT09PUomJihKPXEpLFtKLEo9''@;'; + put 'put ''PT1xPzA6NC1KJTRdfWZ1bmN0aW9uIFkoZWUpe3JldHVybiBMW2VlPj4xOCY2M10rTFtlZT4+MTImNjNdK0xbZWU+PjYmNjNdK0xbNjMmZWVdfWZ1bmN0aW9uIFcoZWUscSxKKXtmb3IodmFyIG9lPVtdLGNlPXE7Y2U8SjtjZSs9MylvZS5wdXNoKFkoKGVlW2NlXTw8MTYmMTY3MTE2ODApKyhl''@;'; + put 'put ''ZVtjZSsxXTw8OCY2NTI4MCkrKDI1NSZlZVtjZSsyXSkpKTtyZXR1cm4gb2Uuam9pbigiIil9bWVbIi0iLmNoYXJDb2RlQXQoMCldPTYyLG1lWyJfIi5jaGFyQ29kZUF0KDApXT02M30sOTg1Mzg6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lLEIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlv''@;'; + put 'put ''biBFKG5lLHRlKXtpZighbmUpdGhyb3cgbmV3IEVycm9yKHRlfHwiQXNzZXJ0aW9uIGZhaWxlZCIpfWZ1bmN0aW9uIE1lKG5lLHRlKXtuZS5zdXBlcl89dGU7dmFyIHg9ZnVuY3Rpb24oKXt9O3gucHJvdG90eXBlPXRlLnByb3RvdHlwZSxuZS5wcm90b3R5cGU9bmV3IHgsbmUucHJvdG90eXBl''@;'; + put 'put ''LmNvbnN0cnVjdG9yPW5lfWZ1bmN0aW9uIFUobmUsdGUseCl7aWYoVS5pc0JOKG5lKSlyZXR1cm4gbmU7dGhpcy5uZWdhdGl2ZT0wLHRoaXMud29yZHM9bnVsbCx0aGlzLmxlbmd0aD0wLHRoaXMucmVkPW51bGwsbnVsbCE9PW5lJiYoKCJsZSI9PT10ZXx8ImJlIj09PXRlKSYmKHg9dGUsdGU9''@;'; + put 'put ''MTApLHRoaXMuX2luaXQobmV8fDAsdGV8fDEwLHh8fCJiZSIpKX12YXIgUTsib2JqZWN0Ij09dHlwZW9mIG1lP21lLmV4cG9ydHM9VTpCLkJOPVUsVS5CTj1VLFUud29yZFNpemU9MjY7dHJ5e1E9InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cmJnZvaWQgMCE9PXdpbmRvdy5CdWZmZXI/d2lu''@;'; + put 'put ''ZG93LkJ1ZmZlcjpMKDQ2NjAxKS5CdWZmZXJ9Y2F0Y2gobmUpe31mdW5jdGlvbiBaKG5lLHRlKXt2YXIgeD1uZS5jaGFyQ29kZUF0KHRlKTtyZXR1cm4geD49NDgmJng8PTU3P3gtNDg6eD49NjUmJng8PTcwP3gtNTU6eD49OTcmJng8PTEwMj94LTg3OnZvaWQgRSghMSwiSW52YWxpZCBjaGFy''@;'; + put 'put ''YWN0ZXIgaW4gIituZSl9ZnVuY3Rpb24gaWUobmUsdGUseCl7dmFyIFA9WihuZSx4KTtyZXR1cm4geC0xPj10ZSYmKFB8PVoobmUseC0xKTw8NCksUH1mdW5jdGlvbiBhZShuZSx0ZSx4LFApe2Zvcih2YXIgVj0wLFQ9MCxTPU1hdGgubWluKG5lLmxlbmd0aCx4KSxGPXRlO0Y8UztGKyspe3Zh''@;'; + put 'put ''ciB5ZT1uZS5jaGFyQ29kZUF0KEYpLTQ4O1YqPVAsVD15ZT49NDk/eWUtNDkrMTA6eWU+PTE3P3llLTE3KzEwOnllLEUoeWU+PTAmJlQ8UCwiSW52YWxpZCBjaGFyYWN0ZXIiKSxWKz1UfXJldHVybiBWfWZ1bmN0aW9uIFkobmUsdGUpe25lLndvcmRzPXRlLndvcmRzLG5lLmxlbmd0aD10ZS5s''@;'; + put 'put ''ZW5ndGgsbmUubmVnYXRpdmU9dGUubmVnYXRpdmUsbmUucmVkPXRlLnJlZH1pZihVLmlzQk49ZnVuY3Rpb24odGUpe3JldHVybiB0ZSBpbnN0YW5jZW9mIFV8fG51bGwhPT10ZSYmIm9iamVjdCI9PXR5cGVvZiB0ZSYmdGUuY29uc3RydWN0b3Iud29yZFNpemU9PT1VLndvcmRTaXplJiZBcnJh''@;'; + put 'put ''eS5pc0FycmF5KHRlLndvcmRzKX0sVS5tYXg9ZnVuY3Rpb24odGUseCl7cmV0dXJuIHRlLmNtcCh4KT4wP3RlOnh9LFUubWluPWZ1bmN0aW9uKHRlLHgpe3JldHVybiB0ZS5jbXAoeCk8MD90ZTp4fSxVLnByb3RvdHlwZS5faW5pdD1mdW5jdGlvbih0ZSx4LFApe2lmKCJudW1iZXIiPT10eXBl''@;'; + put 'put ''b2YgdGUpcmV0dXJuIHRoaXMuX2luaXROdW1iZXIodGUseCxQKTtpZigib2JqZWN0Ij09dHlwZW9mIHRlKXJldHVybiB0aGlzLl9pbml0QXJyYXkodGUseCxQKTsiaGV4Ij09PXgmJih4PTE2KSxFKHg9PT0oMHx4KSYmeD49MiYmeDw9MzYpO3ZhciBWPTA7Ii0iPT09KHRlPXRlLnRvU3RyaW5n''@;'; + put 'put ''KCkucmVwbGFjZSgvXHMrL2csIiIpKVswXSYmKFYrKyx0aGlzLm5lZ2F0aXZlPTEpLFY8dGUubGVuZ3RoJiYoMTY9PT14P3RoaXMuX3BhcnNlSGV4KHRlLFYsUCk6KHRoaXMuX3BhcnNlQmFzZSh0ZSx4LFYpLCJsZSI9PT1QJiZ0aGlzLl9pbml0QXJyYXkodGhpcy50b0FycmF5KCkseCxQKSkp''@;'; + put 'put ''fSxVLnByb3RvdHlwZS5faW5pdE51bWJlcj1mdW5jdGlvbih0ZSx4LFApe3RlPDAmJih0aGlzLm5lZ2F0aXZlPTEsdGU9LXRlKSx0ZTw2NzEwODg2ND8odGhpcy53b3Jkcz1bNjcxMDg4NjMmdGVdLHRoaXMubGVuZ3RoPTEpOnRlPDQ1MDM1OTk2MjczNzA0OTY/KHRoaXMud29yZHM9WzY3MTA4''@;'; + put 'put ''ODYzJnRlLHRlLzY3MTA4ODY0JjY3MTA4ODYzXSx0aGlzLmxlbmd0aD0yKTooRSh0ZTw5MDA3MTk5MjU0NzQwOTkyKSx0aGlzLndvcmRzPVs2NzEwODg2MyZ0ZSx0ZS82NzEwODg2NCY2NzEwODg2MywxXSx0aGlzLmxlbmd0aD0zKSwibGUiPT09UCYmdGhpcy5faW5pdEFycmF5KHRoaXMudG9B''@;'; + put 'put ''cnJheSgpLHgsUCl9LFUucHJvdG90eXBlLl9pbml0QXJyYXk9ZnVuY3Rpb24odGUseCxQKXtpZihFKCJudW1iZXIiPT10eXBlb2YgdGUubGVuZ3RoKSx0ZS5sZW5ndGg8PTApcmV0dXJuIHRoaXMud29yZHM9WzBdLHRoaXMubGVuZ3RoPTEsdGhpczt0aGlzLmxlbmd0aD1NYXRoLmNlaWwodGUu''@;'; + put 'put ''bGVuZ3RoLzMpLHRoaXMud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoKTtmb3IodmFyIFY9MDtWPHRoaXMubGVuZ3RoO1YrKyl0aGlzLndvcmRzW1ZdPTA7dmFyIFQsUyxGPTA7aWYoImJlIj09PVApZm9yKFY9dGUubGVuZ3RoLTEsVD0wO1Y+PTA7Vi09Myl0aGlzLndvcmRzW1RdfD0oUz10''@;'; + put 'put ''ZVtWXXx0ZVtWLTFdPDw4fHRlW1YtMl08PDE2KTw8RiY2NzEwODg2Myx0aGlzLndvcmRzW1QrMV09Uz4+PjI2LUYmNjcxMDg4NjMsKEYrPTI0KT49MjYmJihGLT0yNixUKyspO2Vsc2UgaWYoImxlIj09PVApZm9yKFY9MCxUPTA7Vjx0ZS5sZW5ndGg7Vis9Myl0aGlzLndvcmRzW1RdfD0oUz10''@;'; + put 'put ''ZVtWXXx0ZVtWKzFdPDw4fHRlW1YrMl08PDE2KTw8RiY2NzEwODg2Myx0aGlzLndvcmRzW1QrMV09Uz4+PjI2LUYmNjcxMDg4NjMsKEYrPTI0KT49MjYmJihGLT0yNixUKyspO3JldHVybiB0aGlzLl9zdHJpcCgpfSxVLnByb3RvdHlwZS5fcGFyc2VIZXg9ZnVuY3Rpb24odGUseCxQKXt0aGlz''@;'; + put 'put ''Lmxlbmd0aD1NYXRoLmNlaWwoKHRlLmxlbmd0aC14KS82KSx0aGlzLndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCk7Zm9yKHZhciBWPTA7Vjx0aGlzLmxlbmd0aDtWKyspdGhpcy53b3Jkc1tWXT0wO3ZhciBGLFQ9MCxTPTA7aWYoImJlIj09PVApZm9yKFY9dGUubGVuZ3RoLTE7Vj49eDtW''@;'; + put 'put ''LT0yKUY9aWUodGUseCxWKTw8VCx0aGlzLndvcmRzW1NdfD02NzEwODg2MyZGLFQ+PTE4PyhULT0xOCx0aGlzLndvcmRzW1MrPTFdfD1GPj4+MjYpOlQrPTg7ZWxzZSBmb3IoVj0odGUubGVuZ3RoLXgpJTI9PTA/eCsxOng7Vjx0ZS5sZW5ndGg7Vis9MilGPWllKHRlLHgsVik8PFQsdGhpcy53''@;'; + put 'put ''b3Jkc1tTXXw9NjcxMDg4NjMmRixUPj0xOD8oVC09MTgsdGhpcy53b3Jkc1tTKz0xXXw9Rj4+PjI2KTpUKz04O3RoaXMuX3N0cmlwKCl9LFUucHJvdG90eXBlLl9wYXJzZUJhc2U9ZnVuY3Rpb24odGUseCxQKXt0aGlzLndvcmRzPVswXSx0aGlzLmxlbmd0aD0xO2Zvcih2YXIgVj0wLFQ9MTtU''@;'; + put 'put ''PD02NzEwODg2MztUKj14KVYrKztWLS0sVD1UL3h8MDtmb3IodmFyIFM9dGUubGVuZ3RoLVAsRj1TJVYseWU9TWF0aC5taW4oUyxTLUYpK1AsQ2U9MCxEZT1QO0RlPHllO0RlKz1WKUNlPWFlKHRlLERlLERlK1YseCksdGhpcy5pbXVsbihUKSx0aGlzLndvcmRzWzBdK0NlPDY3MTA4ODY0P3Ro''@;'; + put 'put ''aXMud29yZHNbMF0rPUNlOnRoaXMuX2lhZGRuKENlKTtpZigwIT09Ril7dmFyIFBlPTE7Zm9yKENlPWFlKHRlLERlLHRlLmxlbmd0aCx4KSxEZT0wO0RlPEY7RGUrKylQZSo9eDt0aGlzLmltdWxuKFBlKSx0aGlzLndvcmRzWzBdK0NlPDY3MTA4ODY0P3RoaXMud29yZHNbMF0rPUNlOnRoaXMu''@;'; + put 'put ''X2lhZGRuKENlKX10aGlzLl9zdHJpcCgpfSxVLnByb3RvdHlwZS5jb3B5PWZ1bmN0aW9uKHRlKXt0ZS53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgpO2Zvcih2YXIgeD0wO3g8dGhpcy5sZW5ndGg7eCsrKXRlLndvcmRzW3hdPXRoaXMud29yZHNbeF07dGUubGVuZ3RoPXRoaXMubGVuZ3Ro''@;'; + put 'put ''LHRlLm5lZ2F0aXZlPXRoaXMubmVnYXRpdmUsdGUucmVkPXRoaXMucmVkfSxVLnByb3RvdHlwZS5fbW92ZT1mdW5jdGlvbih0ZSl7WSh0ZSx0aGlzKX0sVS5wcm90b3R5cGUuY2xvbmU9ZnVuY3Rpb24oKXt2YXIgdGU9bmV3IFUobnVsbCk7cmV0dXJuIHRoaXMuY29weSh0ZSksdGV9LFUucHJv''@;'; + put 'put ''dG90eXBlLl9leHBhbmQ9ZnVuY3Rpb24odGUpe2Zvcig7dGhpcy5sZW5ndGg8dGU7KXRoaXMud29yZHNbdGhpcy5sZW5ndGgrK109MDtyZXR1cm4gdGhpc30sVS5wcm90b3R5cGUuX3N0cmlwPWZ1bmN0aW9uKCl7Zm9yKDt0aGlzLmxlbmd0aD4xJiYwPT09dGhpcy53b3Jkc1t0aGlzLmxlbmd0''@;'; + put 'put ''aC0xXTspdGhpcy5sZW5ndGgtLTtyZXR1cm4gdGhpcy5fbm9ybVNpZ24oKX0sVS5wcm90b3R5cGUuX25vcm1TaWduPWZ1bmN0aW9uKCl7cmV0dXJuIDE9PT10aGlzLmxlbmd0aCYmMD09PXRoaXMud29yZHNbMF0mJih0aGlzLm5lZ2F0aXZlPTApLHRoaXN9LCJ1bmRlZmluZWQiIT10eXBlb2Yg''@;'; + put 'put ''U3ltYm9sJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sLmZvcil0cnl7VS5wcm90b3R5cGVbU3ltYm9sLmZvcigibm9kZWpzLnV0aWwuaW5zcGVjdC5jdXN0b20iKV09V31jYXRjaChuZSl7VS5wcm90b3R5cGUuaW5zcGVjdD1XfWVsc2UgVS5wcm90b3R5cGUuaW5zcGVjdD1XO2Z1bmN0aW9u''@;'; + put 'put ''IFcoKXtyZXR1cm4odGhpcy5yZWQ/IjxCTi1SOiAiOiI8Qk46ICIpK3RoaXMudG9TdHJpbmcoMTYpKyI+In12YXIgTj1bIiIsIjAiLCIwMCIsIjAwMCIsIjAwMDAiLCIwMDAwMCIsIjAwMDAwMCIsIjAwMDAwMDAiLCIwMDAwMDAwMCIsIjAwMDAwMDAwMCIsIjAwMDAwMDAwMDAiLCIwMDAwMDAw''@;'; + put 'put ''MDAwMCIsIjAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAw''@;'; + put 'put ''MDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiXSxlZT1bMCwwLDI1LDE2LDEyLDExLDEw''@;'; + put 'put ''LDksOCw4LDcsNyw3LDcsNiw2LDYsNiw2LDYsNiw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1XSxxPVswLDAsMzM1NTQ0MzIsNDMwNDY3MjEsMTY3NzcyMTYsNDg4MjgxMjUsNjA0NjYxNzYsNDAzNTM2MDcsMTY3NzcyMTYsNDMwNDY3MjEsMWU3LDE5NDg3MTcxLDM1ODMxODA4LDYy''@;'; + put 'put ''NzQ4NTE3LDc1Mjk1MzYsMTEzOTA2MjUsMTY3NzcyMTYsMjQxMzc1NjksMzQwMTIyMjQsNDcwNDU4ODEsNjRlNiw0MDg0MTAxLDUxNTM2MzIsNjQzNjM0Myw3OTYyNjI0LDk3NjU2MjUsMTE4ODEzNzYsMTQzNDg5MDcsMTcyMTAzNjgsMjA1MTExNDksMjQzZTUsMjg2MjkxNTEsMzM1NTQ0MzIs''@;'; + put 'put ''MzkxMzUzOTMsNDU0MzU0MjQsNTI1MjE4NzUsNjA0NjYxNzZdO2Z1bmN0aW9uIG9lKG5lLHRlLHgpe3gubmVnYXRpdmU9dGUubmVnYXRpdmVebmUubmVnYXRpdmU7dmFyIFA9bmUubGVuZ3RoK3RlLmxlbmd0aHwwO3gubGVuZ3RoPVAsUD1QLTF8MDt2YXIgVj0wfG5lLndvcmRzWzBdLFQ9MHx0''@;'; + put 'put ''ZS53b3Jkc1swXSxTPVYqVCx5ZT1TLzY3MTA4ODY0fDA7eC53b3Jkc1swXT02NzEwODg2MyZTO2Zvcih2YXIgQ2U9MTtDZTxQO0NlKyspe2Zvcih2YXIgRGU9eWU+Pj4yNixQZT02NzEwODg2MyZ5ZSxRZT1NYXRoLm1pbihDZSx0ZS5sZW5ndGgtMSksJGU9TWF0aC5tYXgoMCxDZS1uZS5sZW5n''@;'; + put 'put ''dGgrMSk7JGU8PVFlOyRlKyspRGUrPShTPShWPTB8bmUud29yZHNbQ2UtJGV8MF0pKihUPTB8dGUud29yZHNbJGVdKStQZSkvNjcxMDg4NjR8MCxQZT02NzEwODg2MyZTO3gud29yZHNbQ2VdPTB8UGUseWU9MHxEZX1yZXR1cm4gMCE9PXllP3gud29yZHNbQ2VdPTB8eWU6eC5sZW5ndGgtLSx4''@;'; + put 'put ''Ll9zdHJpcCgpfVUucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKHRlLHgpe3ZhciBQO2lmKHg9MHx4fHwxLDE2PT09KHRlPXRlfHwxMCl8fCJoZXgiPT09dGUpe1A9IiI7Zm9yKHZhciBWPTAsVD0wLFM9MDtTPHRoaXMubGVuZ3RoO1MrKyl7dmFyIEY9dGhpcy53b3Jkc1tTXSx5ZT0oMTY3''@;'; + put 'put ''NzcyMTUmKEY8PFZ8VCkpLnRvU3RyaW5nKDE2KTtUPUY+Pj4yNC1WJjE2Nzc3MjE1LChWKz0yKT49MjYmJihWLT0yNixTLS0pLFA9MCE9PVR8fFMhPT10aGlzLmxlbmd0aC0xP05bNi15ZS5sZW5ndGhdK3llK1A6eWUrUH1mb3IoMCE9PVQmJihQPVQudG9TdHJpbmcoMTYpK1ApO1AubGVuZ3Ro''@;'; + put 'put ''JXghPTA7KVA9IjAiK1A7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlJiYoUD0iLSIrUCksUH1pZih0ZT09PSgwfHRlKSYmdGU+PTImJnRlPD0zNil7dmFyIENlPWVlW3RlXSxEZT1xW3RlXTtQPSIiO3ZhciBQZT10aGlzLmNsb25lKCk7Zm9yKFBlLm5lZ2F0aXZlPTA7IVBlLmlzWmVybygpOyl7''@;'; + put 'put ''dmFyIFFlPVBlLm1vZHJuKERlKS50b1N0cmluZyh0ZSk7UD0oUGU9UGUuaWRpdm4oRGUpKS5pc1plcm8oKT9RZStQOk5bQ2UtUWUubGVuZ3RoXStRZStQfWZvcih0aGlzLmlzWmVybygpJiYoUD0iMCIrUCk7UC5sZW5ndGgleCE9MDspUD0iMCIrUDtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmUm''@;'; + put 'put ''JihQPSItIitQKSxQfUUoITEsIkJhc2Ugc2hvdWxkIGJlIGJldHdlZW4gMiBhbmQgMzYiKX0sVS5wcm90b3R5cGUudG9OdW1iZXI9ZnVuY3Rpb24oKXt2YXIgdGU9dGhpcy53b3Jkc1swXTtyZXR1cm4gMj09PXRoaXMubGVuZ3RoP3RlKz02NzEwODg2NCp0aGlzLndvcmRzWzFdOjM9PT10aGlz''@;'; + put 'put ''Lmxlbmd0aCYmMT09PXRoaXMud29yZHNbMl0/dGUrPTQ1MDM1OTk2MjczNzA0OTYrNjcxMDg4NjQqdGhpcy53b3Jkc1sxXTp0aGlzLmxlbmd0aD4yJiZFKCExLCJOdW1iZXIgY2FuIG9ubHkgc2FmZWx5IHN0b3JlIHVwIHRvIDUzIGJpdHMiKSwwIT09dGhpcy5uZWdhdGl2ZT8tdGU6dGV9LFUu''@;'; + put 'put ''cHJvdG90eXBlLnRvSlNPTj1mdW5jdGlvbigpe3JldHVybiB0aGlzLnRvU3RyaW5nKDE2LDIpfSxRJiYoVS5wcm90b3R5cGUudG9CdWZmZXI9ZnVuY3Rpb24odGUseCl7cmV0dXJuIHRoaXMudG9BcnJheUxpa2UoUSx0ZSx4KX0pLFUucHJvdG90eXBlLnRvQXJyYXk9ZnVuY3Rpb24odGUseCl7''@;'; + put 'put ''cmV0dXJuIHRoaXMudG9BcnJheUxpa2UoQXJyYXksdGUseCl9LFUucHJvdG90eXBlLnRvQXJyYXlMaWtlPWZ1bmN0aW9uKHRlLHgsUCl7dGhpcy5fc3RyaXAoKTt2YXIgVj10aGlzLmJ5dGVMZW5ndGgoKSxUPVB8fE1hdGgubWF4KDEsVik7RShWPD1ULCJieXRlIGFycmF5IGxvbmdlciB0aGFu''@;'; + put 'put ''IGRlc2lyZWQgbGVuZ3RoIiksRShUPjAsIlJlcXVlc3RlZCBhcnJheSBsZW5ndGggPD0gMCIpO3ZhciBTPWZ1bmN0aW9uKHRlLHgpe3JldHVybiB0ZS5hbGxvY1Vuc2FmZT90ZS5hbGxvY1Vuc2FmZSh4KTpuZXcgdGUoeCl9KHRlLFQpO3JldHVybiB0aGlzWyJfdG9BcnJheUxpa2UiKygibGUi''@;'; + put 'put ''PT09eD8iTEUiOiJCRSIpXShTLFYpLFN9LFUucHJvdG90eXBlLl90b0FycmF5TGlrZUxFPWZ1bmN0aW9uKHRlLHgpe2Zvcih2YXIgUD0wLFY9MCxUPTAsUz0wO1Q8dGhpcy5sZW5ndGg7VCsrKXt2YXIgRj10aGlzLndvcmRzW1RdPDxTfFY7dGVbUCsrXT0yNTUmRixQPHRlLmxlbmd0aCYmKHRl''@;'; + put 'put ''W1ArK109Rj4+OCYyNTUpLFA8dGUubGVuZ3RoJiYodGVbUCsrXT1GPj4xNiYyNTUpLDY9PT1TPyhQPHRlLmxlbmd0aCYmKHRlW1ArK109Rj4+MjQmMjU1KSxWPTAsUz0wKTooVj1GPj4+MjQsUys9Mil9aWYoUDx0ZS5sZW5ndGgpZm9yKHRlW1ArK109VjtQPHRlLmxlbmd0aDspdGVbUCsrXT0w''@;'; + put 'put ''fSxVLnByb3RvdHlwZS5fdG9BcnJheUxpa2VCRT1mdW5jdGlvbih0ZSx4KXtmb3IodmFyIFA9dGUubGVuZ3RoLTEsVj0wLFQ9MCxTPTA7VDx0aGlzLmxlbmd0aDtUKyspe3ZhciBGPXRoaXMud29yZHNbVF08PFN8Vjt0ZVtQLS1dPTI1NSZGLFA+PTAmJih0ZVtQLS1dPUY+PjgmMjU1KSxQPj0w''@;'; + put 'put ''JiYodGVbUC0tXT1GPj4xNiYyNTUpLDY9PT1TPyhQPj0wJiYodGVbUC0tXT1GPj4yNCYyNTUpLFY9MCxTPTApOihWPUY+Pj4yNCxTKz0yKX1pZihQPj0wKWZvcih0ZVtQLS1dPVY7UD49MDspdGVbUC0tXT0wfSxVLnByb3RvdHlwZS5fY291bnRCaXRzPU1hdGguY2x6MzI/ZnVuY3Rpb24odGUp''@;'; + put 'put ''e3JldHVybiAzMi1NYXRoLmNsejMyKHRlKX06ZnVuY3Rpb24odGUpe3ZhciB4PXRlLFA9MDtyZXR1cm4geD49NDA5NiYmKFArPTEzLHg+Pj49MTMpLHg+PTY0JiYoUCs9Nyx4Pj4+PTcpLHg+PTgmJihQKz00LHg+Pj49NCkseD49MiYmKFArPTIseD4+Pj0yKSxQK3h9LFUucHJvdG90eXBlLl96''@;'; + put 'put ''ZXJvQml0cz1mdW5jdGlvbih0ZSl7aWYoMD09PXRlKXJldHVybiAyNjt2YXIgeD10ZSxQPTA7cmV0dXJuIDA9PSg4MTkxJngpJiYoUCs9MTMseD4+Pj0xMyksMD09KDEyNyZ4KSYmKFArPTcseD4+Pj03KSwwPT0oMTUmeCkmJihQKz00LHg+Pj49NCksMD09KDMmeCkmJihQKz0yLHg+Pj49Miks''@;'; + put 'put ''MD09KDEmeCkmJlArKyxQfSxVLnByb3RvdHlwZS5iaXRMZW5ndGg9ZnVuY3Rpb24oKXt2YXIgeD10aGlzLl9jb3VudEJpdHModGhpcy53b3Jkc1t0aGlzLmxlbmd0aC0xXSk7cmV0dXJuIDI2Kih0aGlzLmxlbmd0aC0xKSt4fSxVLnByb3RvdHlwZS56ZXJvQml0cz1mdW5jdGlvbigpe2lmKHRo''@;'; + put 'put ''aXMuaXNaZXJvKCkpcmV0dXJuIDA7Zm9yKHZhciB0ZT0wLHg9MDt4PHRoaXMubGVuZ3RoO3grKyl7dmFyIFA9dGhpcy5femVyb0JpdHModGhpcy53b3Jkc1t4XSk7aWYodGUrPVAsMjYhPT1QKWJyZWFrfXJldHVybiB0ZX0sVS5wcm90b3R5cGUuYnl0ZUxlbmd0aD1mdW5jdGlvbigpe3JldHVy''@;'; + put 'put ''biBNYXRoLmNlaWwodGhpcy5iaXRMZW5ndGgoKS84KX0sVS5wcm90b3R5cGUudG9Ud29zPWZ1bmN0aW9uKHRlKXtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmU/dGhpcy5hYnMoKS5pbm90bih0ZSkuaWFkZG4oMSk6dGhpcy5jbG9uZSgpfSxVLnByb3RvdHlwZS5mcm9tVHdvcz1mdW5jdGlvbih0''@;'; + put 'put ''ZSl7cmV0dXJuIHRoaXMudGVzdG4odGUtMSk/dGhpcy5ub3RuKHRlKS5pYWRkbigxKS5pbmVnKCk6dGhpcy5jbG9uZSgpfSxVLnByb3RvdHlwZS5pc05lZz1mdW5jdGlvbigpe3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZX0sVS5wcm90b3R5cGUubmVnPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMu''@;'; + put 'put ''Y2xvbmUoKS5pbmVnKCl9LFUucHJvdG90eXBlLmluZWc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pc1plcm8oKXx8KHRoaXMubmVnYXRpdmVePTEpLHRoaXN9LFUucHJvdG90eXBlLml1b3I9ZnVuY3Rpb24odGUpe2Zvcig7dGhpcy5sZW5ndGg8dGUubGVuZ3RoOyl0aGlzLndvcmRzW3RoaXMu''@;'; + put 'put ''bGVuZ3RoKytdPTA7Zm9yKHZhciB4PTA7eDx0ZS5sZW5ndGg7eCsrKXRoaXMud29yZHNbeF09dGhpcy53b3Jkc1t4XXx0ZS53b3Jkc1t4XTtyZXR1cm4gdGhpcy5fc3RyaXAoKX0sVS5wcm90b3R5cGUuaW9yPWZ1bmN0aW9uKHRlKXtyZXR1cm4gRSgwPT0odGhpcy5uZWdhdGl2ZXx0ZS5uZWdh''@;'; + put 'put ''dGl2ZSkpLHRoaXMuaXVvcih0ZSl9LFUucHJvdG90eXBlLm9yPWZ1bmN0aW9uKHRlKXtyZXR1cm4gdGhpcy5sZW5ndGg+dGUubGVuZ3RoP3RoaXMuY2xvbmUoKS5pb3IodGUpOnRlLmNsb25lKCkuaW9yKHRoaXMpfSxVLnByb3RvdHlwZS51b3I9ZnVuY3Rpb24odGUpe3JldHVybiB0aGlzLmxl''@;'; + put 'put ''bmd0aD50ZS5sZW5ndGg/dGhpcy5jbG9uZSgpLml1b3IodGUpOnRlLmNsb25lKCkuaXVvcih0aGlzKX0sVS5wcm90b3R5cGUuaXVhbmQ9ZnVuY3Rpb24odGUpe3ZhciB4O3g9dGhpcy5sZW5ndGg+dGUubGVuZ3RoP3RlOnRoaXM7Zm9yKHZhciBQPTA7UDx4Lmxlbmd0aDtQKyspdGhpcy53b3Jk''@;'; + put 'put ''c1tQXT10aGlzLndvcmRzW1BdJnRlLndvcmRzW1BdO3JldHVybiB0aGlzLmxlbmd0aD14Lmxlbmd0aCx0aGlzLl9zdHJpcCgpfSxVLnByb3RvdHlwZS5pYW5kPWZ1bmN0aW9uKHRlKXtyZXR1cm4gRSgwPT0odGhpcy5uZWdhdGl2ZXx0ZS5uZWdhdGl2ZSkpLHRoaXMuaXVhbmQodGUpfSxVLnBy''@;'; + put 'put ''b3RvdHlwZS5hbmQ9ZnVuY3Rpb24odGUpe3JldHVybiB0aGlzLmxlbmd0aD50ZS5sZW5ndGg/dGhpcy5jbG9uZSgpLmlhbmQodGUpOnRlLmNsb25lKCkuaWFuZCh0aGlzKX0sVS5wcm90b3R5cGUudWFuZD1mdW5jdGlvbih0ZSl7cmV0dXJuIHRoaXMubGVuZ3RoPnRlLmxlbmd0aD90aGlzLmNs''@;'; + put 'put ''b25lKCkuaXVhbmQodGUpOnRlLmNsb25lKCkuaXVhbmQodGhpcyl9LFUucHJvdG90eXBlLml1eG9yPWZ1bmN0aW9uKHRlKXt2YXIgeCxQO3RoaXMubGVuZ3RoPnRlLmxlbmd0aD8oeD10aGlzLFA9dGUpOih4PXRlLFA9dGhpcyk7Zm9yKHZhciBWPTA7VjxQLmxlbmd0aDtWKyspdGhpcy53b3Jk''@;'; + put 'put ''c1tWXT14LndvcmRzW1ZdXlAud29yZHNbVl07aWYodGhpcyE9PXgpZm9yKDtWPHgubGVuZ3RoO1YrKyl0aGlzLndvcmRzW1ZdPXgud29yZHNbVl07cmV0dXJuIHRoaXMubGVuZ3RoPXgubGVuZ3RoLHRoaXMuX3N0cmlwKCl9LFUucHJvdG90eXBlLml4b3I9ZnVuY3Rpb24odGUpe3JldHVybiBF''@;'; + put 'put ''KDA9PSh0aGlzLm5lZ2F0aXZlfHRlLm5lZ2F0aXZlKSksdGhpcy5pdXhvcih0ZSl9LFUucHJvdG90eXBlLnhvcj1mdW5jdGlvbih0ZSl7cmV0dXJuIHRoaXMubGVuZ3RoPnRlLmxlbmd0aD90aGlzLmNsb25lKCkuaXhvcih0ZSk6dGUuY2xvbmUoKS5peG9yKHRoaXMpfSxVLnByb3RvdHlwZS51''@;'; + put 'put ''eG9yPWZ1bmN0aW9uKHRlKXtyZXR1cm4gdGhpcy5sZW5ndGg+dGUubGVuZ3RoP3RoaXMuY2xvbmUoKS5pdXhvcih0ZSk6dGUuY2xvbmUoKS5pdXhvcih0aGlzKX0sVS5wcm90b3R5cGUuaW5vdG49ZnVuY3Rpb24odGUpe0UoIm51bWJlciI9PXR5cGVvZiB0ZSYmdGU+PTApO3ZhciB4PTB8TWF0''@;'; + put 'put ''aC5jZWlsKHRlLzI2KSxQPXRlJTI2O3RoaXMuX2V4cGFuZCh4KSxQPjAmJngtLTtmb3IodmFyIFY9MDtWPHg7VisrKXRoaXMud29yZHNbVl09NjcxMDg4NjMmfnRoaXMud29yZHNbVl07cmV0dXJuIFA+MCYmKHRoaXMud29yZHNbVl09fnRoaXMud29yZHNbVl0mNjcxMDg4NjM+PjI2LVApLHRo''@;'; + put 'put ''aXMuX3N0cmlwKCl9LFUucHJvdG90eXBlLm5vdG49ZnVuY3Rpb24odGUpe3JldHVybiB0aGlzLmNsb25lKCkuaW5vdG4odGUpfSxVLnByb3RvdHlwZS5zZXRuPWZ1bmN0aW9uKHRlLHgpe0UoIm51bWJlciI9PXR5cGVvZiB0ZSYmdGU+PTApO3ZhciBQPXRlLzI2fDAsVj10ZSUyNjtyZXR1cm4g''@;'; + put 'put ''dGhpcy5fZXhwYW5kKFArMSksdGhpcy53b3Jkc1tQXT14P3RoaXMud29yZHNbUF18MTw8Vjp0aGlzLndvcmRzW1BdJn4oMTw8ViksdGhpcy5fc3RyaXAoKX0sVS5wcm90b3R5cGUuaWFkZD1mdW5jdGlvbih0ZSl7dmFyIHgsUCxWO2lmKDAhPT10aGlzLm5lZ2F0aXZlJiYwPT09dGUubmVnYXRp''@;'; + put 'put ''dmUpcmV0dXJuIHRoaXMubmVnYXRpdmU9MCx4PXRoaXMuaXN1Yih0ZSksdGhpcy5uZWdhdGl2ZV49MSx0aGlzLl9ub3JtU2lnbigpO2lmKDA9PT10aGlzLm5lZ2F0aXZlJiYwIT09dGUubmVnYXRpdmUpcmV0dXJuIHRlLm5lZ2F0aXZlPTAseD10aGlzLmlzdWIodGUpLHRlLm5lZ2F0aXZlPTEs''@;'; + put 'put ''eC5fbm9ybVNpZ24oKTt0aGlzLmxlbmd0aD50ZS5sZW5ndGg/KFA9dGhpcyxWPXRlKTooUD10ZSxWPXRoaXMpO2Zvcih2YXIgVD0wLFM9MDtTPFYubGVuZ3RoO1MrKyl0aGlzLndvcmRzW1NdPTY3MTA4ODYzJih4PSgwfFAud29yZHNbU10pKygwfFYud29yZHNbU10pK1QpLFQ9eD4+PjI2O2Zv''@;'; + put 'put ''cig7MCE9PVQmJlM8UC5sZW5ndGg7UysrKXRoaXMud29yZHNbU109NjcxMDg4NjMmKHg9KDB8UC53b3Jkc1tTXSkrVCksVD14Pj4+MjY7aWYodGhpcy5sZW5ndGg9UC5sZW5ndGgsMCE9PVQpdGhpcy53b3Jkc1t0aGlzLmxlbmd0aF09VCx0aGlzLmxlbmd0aCsrO2Vsc2UgaWYoUCE9PXRoaXMp''@;'; + put 'put ''Zm9yKDtTPFAubGVuZ3RoO1MrKyl0aGlzLndvcmRzW1NdPVAud29yZHNbU107cmV0dXJuIHRoaXN9LFUucHJvdG90eXBlLmFkZD1mdW5jdGlvbih0ZSl7dmFyIHg7cmV0dXJuIDAhPT10ZS5uZWdhdGl2ZSYmMD09PXRoaXMubmVnYXRpdmU/KHRlLm5lZ2F0aXZlPTAseD10aGlzLnN1Yih0ZSks''@;'; + put 'put ''dGUubmVnYXRpdmVePTEseCk6MD09PXRlLm5lZ2F0aXZlJiYwIT09dGhpcy5uZWdhdGl2ZT8odGhpcy5uZWdhdGl2ZT0wLHg9dGUuc3ViKHRoaXMpLHRoaXMubmVnYXRpdmU9MSx4KTp0aGlzLmxlbmd0aD50ZS5sZW5ndGg/dGhpcy5jbG9uZSgpLmlhZGQodGUpOnRlLmNsb25lKCkuaWFkZCh0''@;'; + put 'put ''aGlzKX0sVS5wcm90b3R5cGUuaXN1Yj1mdW5jdGlvbih0ZSl7aWYoMCE9PXRlLm5lZ2F0aXZlKXt0ZS5uZWdhdGl2ZT0wO3ZhciB4PXRoaXMuaWFkZCh0ZSk7cmV0dXJuIHRlLm5lZ2F0aXZlPTEseC5fbm9ybVNpZ24oKX1pZigwIT09dGhpcy5uZWdhdGl2ZSlyZXR1cm4gdGhpcy5uZWdhdGl2''@;'; + put 'put ''ZT0wLHRoaXMuaWFkZCh0ZSksdGhpcy5uZWdhdGl2ZT0xLHRoaXMuX25vcm1TaWduKCk7dmFyIFYsVCxQPXRoaXMuY21wKHRlKTtpZigwPT09UClyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLHRoaXMubGVuZ3RoPTEsdGhpcy53b3Jkc1swXT0wLHRoaXM7UD4wPyhWPXRoaXMsVD10ZSk6KFY9dGUs''@;'; + put 'put ''VD10aGlzKTtmb3IodmFyIFM9MCxGPTA7RjxULmxlbmd0aDtGKyspUz0oeD0oMHxWLndvcmRzW0ZdKS0oMHxULndvcmRzW0ZdKStTKT4+MjYsdGhpcy53b3Jkc1tGXT02NzEwODg2MyZ4O2Zvcig7MCE9PVMmJkY8Vi5sZW5ndGg7RisrKVM9KHg9KDB8Vi53b3Jkc1tGXSkrUyk+PjI2LHRoaXMu''@;'; + put 'put ''d29yZHNbRl09NjcxMDg4NjMmeDtpZigwPT09UyYmRjxWLmxlbmd0aCYmViE9PXRoaXMpZm9yKDtGPFYubGVuZ3RoO0YrKyl0aGlzLndvcmRzW0ZdPVYud29yZHNbRl07cmV0dXJuIHRoaXMubGVuZ3RoPU1hdGgubWF4KHRoaXMubGVuZ3RoLEYpLFYhPT10aGlzJiYodGhpcy5uZWdhdGl2ZT0x''@;'; + put 'put ''KSx0aGlzLl9zdHJpcCgpfSxVLnByb3RvdHlwZS5zdWI9ZnVuY3Rpb24odGUpe3JldHVybiB0aGlzLmNsb25lKCkuaXN1Yih0ZSl9O3ZhciBjZT1mdW5jdGlvbih0ZSx4LFApe3ZhciB5ZSxDZSxEZSxWPXRlLndvcmRzLFQ9eC53b3JkcyxTPVAud29yZHMsRj0wLFBlPTB8VlswXSxRZT04MTkx''@;'; + put 'put ''JlBlLCRlPVBlPj4+MTMsZ3Q9MHxWWzFdLHd0PTgxOTEmZ3QsbXQ9Z3Q+Pj4xMyx2dD0wfFZbMl0sQXQ9ODE5MSZ2dCxodD12dD4+PjEzLEJ0PTB8VlszXSxvbj04MTkxJkJ0LF90PUJ0Pj4+MTMsdHQ9MHxWWzRdLGV0PTgxOTEmdHQsYXQ9dHQ+Pj4xMyxMdD0wfFZbNV0sQ3Q9ODE5MSZMdCxm''@;'; + put 'put ''dD1MdD4+PjEzLEh0PTB8Vls2XSxHZT04MTkxJkh0LFVlPUh0Pj4+MTMseXQ9MHxWWzddLGp0PTgxOTEmeXQsUXQ9eXQ+Pj4xMyxnbj0wfFZbOF0sZG49ODE5MSZnbix5bj1nbj4+PjEzLGxuPTB8Vls5XSxObj04MTkxJmxuLGJuPWxuPj4+MTMsZXI9MHxUWzBdLHNyPTgxOTEmZXIsWG49ZXI+''@;'; + put 'put ''Pj4xMyxGcj0wfFRbMV0seHI9ODE5MSZGcixxdD1Gcj4+PjEzLHByPTB8VFsyXSxucj04MTkxJnByLEFuPXByPj4+MTMscW49MHxUWzNdLFd0PTgxOTEmcW4scG49cW4+Pj4xMyxLbj0wfFRbNF0sTnQ9ODE5MSZLbixzbj1Lbj4+PjEzLFVuPTB8VFs1XSx3bj04MTkxJlVuLHRuPVVuPj4+MTMs''@;'; + put 'put ''em49MHxUWzZdLFRyPTgxOTEmem4sQm49em4+Pj4xMyxrcj0wfFRbN10sbW49ODE5MSZrcix1bj1rcj4+PjEzLGNuPTB8VFs4XSxfbj04MTkxJmNuLEd0PWNuPj4+MTMsa249MHxUWzldLFZuPTgxOTEma24sZW49a24+Pj4xMztQLm5lZ2F0aXZlPXRlLm5lZ2F0aXZlXngubmVnYXRpdmUsUC5s''@;'; + put 'put ''ZW5ndGg9MTk7dmFyIEluPShGKyh5ZT1NYXRoLmltdWwoUWUsc3IpKXwwKSsoKDgxOTEmKENlPShDZT1NYXRoLmltdWwoUWUsWG4pKStNYXRoLmltdWwoJGUsc3IpfDApKTw8MTMpfDA7Rj0oKERlPU1hdGguaW11bCgkZSxYbikpKyhDZT4+PjEzKXwwKSsoSW4+Pj4yNil8MCxJbiY9NjcxMDg4''@;'; + put 'put ''NjMseWU9TWF0aC5pbXVsKHd0LHNyKSxDZT0oQ2U9TWF0aC5pbXVsKHd0LFhuKSkrTWF0aC5pbXVsKG10LHNyKXwwLERlPU1hdGguaW11bChtdCxYbik7dmFyIEpuPShGKyh5ZT15ZStNYXRoLmltdWwoUWUseHIpfDApfDApKygoODE5MSYoQ2U9KENlPUNlK01hdGguaW11bChRZSxxdCl8MCkr''@;'; + put 'put ''TWF0aC5pbXVsKCRlLHhyKXwwKSk8PDEzKXwwO0Y9KChEZT1EZStNYXRoLmltdWwoJGUscXQpfDApKyhDZT4+PjEzKXwwKSsoSm4+Pj4yNil8MCxKbiY9NjcxMDg4NjMseWU9TWF0aC5pbXVsKEF0LHNyKSxDZT0oQ2U9TWF0aC5pbXVsKEF0LFhuKSkrTWF0aC5pbXVsKGh0LHNyKXwwLERlPU1h''@;'; + put 'put ''dGguaW11bChodCxYbikseWU9eWUrTWF0aC5pbXVsKHd0LHhyKXwwLENlPShDZT1DZStNYXRoLmltdWwod3QscXQpfDApK01hdGguaW11bChtdCx4cil8MCxEZT1EZStNYXRoLmltdWwobXQscXQpfDA7dmFyIG9yPShGKyh5ZT15ZStNYXRoLmltdWwoUWUsbnIpfDApfDApKygoODE5MSYoQ2U9''@;'; + put 'put ''KENlPUNlK01hdGguaW11bChRZSxBbil8MCkrTWF0aC5pbXVsKCRlLG5yKXwwKSk8PDEzKXwwO0Y9KChEZT1EZStNYXRoLmltdWwoJGUsQW4pfDApKyhDZT4+PjEzKXwwKSsob3I+Pj4yNil8MCxvciY9NjcxMDg4NjMseWU9TWF0aC5pbXVsKG9uLHNyKSxDZT0oQ2U9TWF0aC5pbXVsKG9uLFhu''@;'; + put 'put ''KSkrTWF0aC5pbXVsKF90LHNyKXwwLERlPU1hdGguaW11bChfdCxYbikseWU9eWUrTWF0aC5pbXVsKEF0LHhyKXwwLENlPShDZT1DZStNYXRoLmltdWwoQXQscXQpfDApK01hdGguaW11bChodCx4cil8MCxEZT1EZStNYXRoLmltdWwoaHQscXQpfDAseWU9eWUrTWF0aC5pbXVsKHd0LG5yKXww''@;'; + put 'put ''LENlPShDZT1DZStNYXRoLmltdWwod3QsQW4pfDApK01hdGguaW11bChtdCxucil8MCxEZT1EZStNYXRoLmltdWwobXQsQW4pfDA7dmFyIGdyPShGKyh5ZT15ZStNYXRoLmltdWwoUWUsV3QpfDApfDApKygoODE5MSYoQ2U9KENlPUNlK01hdGguaW11bChRZSxwbil8MCkrTWF0aC5pbXVsKCRl''@;'; + put 'put ''LFd0KXwwKSk8PDEzKXwwO0Y9KChEZT1EZStNYXRoLmltdWwoJGUscG4pfDApKyhDZT4+PjEzKXwwKSsoZ3I+Pj4yNil8MCxnciY9NjcxMDg4NjMseWU9TWF0aC5pbXVsKGV0LHNyKSxDZT0oQ2U9TWF0aC5pbXVsKGV0LFhuKSkrTWF0aC5pbXVsKGF0LHNyKXwwLERlPU1hdGguaW11bChhdCxY''@;'; + put 'put ''bikseWU9eWUrTWF0aC5pbXVsKG9uLHhyKXwwLENlPShDZT1DZStNYXRoLmltdWwob24scXQpfDApK01hdGguaW11bChfdCx4cil8MCxEZT1EZStNYXRoLmltdWwoX3QscXQpfDAseWU9eWUrTWF0aC5pbXVsKEF0LG5yKXwwLENlPShDZT1DZStNYXRoLmltdWwoQXQsQW4pfDApK01hdGguaW11''@;'; + put 'put ''bChodCxucil8MCxEZT1EZStNYXRoLmltdWwoaHQsQW4pfDAseWU9eWUrTWF0aC5pbXVsKHd0LFd0KXwwLENlPShDZT1DZStNYXRoLmltdWwod3QscG4pfDApK01hdGguaW11bChtdCxXdCl8MCxEZT1EZStNYXRoLmltdWwobXQscG4pfDA7dmFyIEtyPShGKyh5ZT15ZStNYXRoLmltdWwoUWUs''@;'; + put 'put ''TnQpfDApfDApKygoODE5MSYoQ2U9KENlPUNlK01hdGguaW11bChRZSxzbil8MCkrTWF0aC5pbXVsKCRlLE50KXwwKSk8PDEzKXwwO0Y9KChEZT1EZStNYXRoLmltdWwoJGUsc24pfDApKyhDZT4+PjEzKXwwKSsoS3I+Pj4yNil8MCxLciY9NjcxMDg4NjMseWU9TWF0aC5pbXVsKEN0LHNyKSxD''@;'; + put 'put ''ZT0oQ2U9TWF0aC5pbXVsKEN0LFhuKSkrTWF0aC5pbXVsKGZ0LHNyKXwwLERlPU1hdGguaW11bChmdCxYbikseWU9eWUrTWF0aC5pbXVsKGV0LHhyKXwwLENlPShDZT1DZStNYXRoLmltdWwoZXQscXQpfDApK01hdGguaW11bChhdCx4cil8MCxEZT1EZStNYXRoLmltdWwoYXQscXQpfDAseWU9''@;'; + put 'put ''eWUrTWF0aC5pbXVsKG9uLG5yKXwwLENlPShDZT1DZStNYXRoLmltdWwob24sQW4pfDApK01hdGguaW11bChfdCxucil8MCxEZT1EZStNYXRoLmltdWwoX3QsQW4pfDAseWU9eWUrTWF0aC5pbXVsKEF0LFd0KXwwLENlPShDZT1DZStNYXRoLmltdWwoQXQscG4pfDApK01hdGguaW11bChodCxX''@;'; + put 'put ''dCl8MCxEZT1EZStNYXRoLmltdWwoaHQscG4pfDAseWU9eWUrTWF0aC5pbXVsKHd0LE50KXwwLENlPShDZT1DZStNYXRoLmltdWwod3Qsc24pfDApK01hdGguaW11bChtdCxOdCl8MCxEZT1EZStNYXRoLmltdWwobXQsc24pfDA7dmFyIFZyPShGKyh5ZT15ZStNYXRoLmltdWwoUWUsd24pfDAp''@;'; + put 'put ''fDApKygoODE5MSYoQ2U9KENlPUNlK01hdGguaW11bChRZSx0bil8MCkrTWF0aC5pbXVsKCRlLHduKXwwKSk8PDEzKXwwO0Y9KChEZT1EZStNYXRoLmltdWwoJGUsdG4pfDApKyhDZT4+PjEzKXwwKSsoVnI+Pj4yNil8MCxWciY9NjcxMDg4NjMseWU9TWF0aC5pbXVsKEdlLHNyKSxDZT0oQ2U9''@;'; + put 'put ''TWF0aC5pbXVsKEdlLFhuKSkrTWF0aC5pbXVsKFVlLHNyKXwwLERlPU1hdGguaW11bChVZSxYbikseWU9eWUrTWF0aC5pbXVsKEN0LHhyKXwwLENlPShDZT1DZStNYXRoLmltdWwoQ3QscXQpfDApK01hdGguaW11bChmdCx4cil8MCxEZT1EZStNYXRoLmltdWwoZnQscXQpfDAseWU9eWUrTWF0''@;'; + put 'put ''aC5pbXVsKGV0LG5yKXwwLENlPShDZT1DZStNYXRoLmltdWwoZXQsQW4pfDApK01hdGguaW11bChhdCxucil8MCxEZT1EZStNYXRoLmltdWwoYXQsQW4pfDAseWU9eWUrTWF0aC5pbXVsKG9uLFd0KXwwLENlPShDZT1DZStNYXRoLmltdWwob24scG4pfDApK01hdGguaW11bChfdCxXdCl8MCxE''@;'; + put 'put ''ZT1EZStNYXRoLmltdWwoX3QscG4pfDAseWU9eWUrTWF0aC5pbXVsKEF0LE50KXwwLENlPShDZT1DZStNYXRoLmltdWwoQXQsc24pfDApK01hdGguaW11bChodCxOdCl8MCxEZT1EZStNYXRoLmltdWwoaHQsc24pfDAseWU9eWUrTWF0aC5pbXVsKHd0LHduKXwwLENlPShDZT1DZStNYXRoLmlt''@;'; + put 'put ''dWwod3QsdG4pfDApK01hdGguaW11bChtdCx3bil8MCxEZT1EZStNYXRoLmltdWwobXQsdG4pfDA7dmFyIGlpPShGKyh5ZT15ZStNYXRoLmltdWwoUWUsVHIpfDApfDApKygoODE5MSYoQ2U9KENlPUNlK01hdGguaW11bChRZSxCbil8MCkrTWF0aC5pbXVsKCRlLFRyKXwwKSk8PDEzKXwwO0Y9''@;'; + put 'put ''KChEZT1EZStNYXRoLmltdWwoJGUsQm4pfDApKyhDZT4+PjEzKXwwKSsoaWk+Pj4yNil8MCxpaSY9NjcxMDg4NjMseWU9TWF0aC5pbXVsKGp0LHNyKSxDZT0oQ2U9TWF0aC5pbXVsKGp0LFhuKSkrTWF0aC5pbXVsKFF0LHNyKXwwLERlPU1hdGguaW11bChRdCxYbikseWU9eWUrTWF0aC5pbXVs''@;'; + put 'put ''KEdlLHhyKXwwLENlPShDZT1DZStNYXRoLmltdWwoR2UscXQpfDApK01hdGguaW11bChVZSx4cil8MCxEZT1EZStNYXRoLmltdWwoVWUscXQpfDAseWU9eWUrTWF0aC5pbXVsKEN0LG5yKXwwLENlPShDZT1DZStNYXRoLmltdWwoQ3QsQW4pfDApK01hdGguaW11bChmdCxucil8MCxEZT1EZStN''@;'; + put 'put ''YXRoLmltdWwoZnQsQW4pfDAseWU9eWUrTWF0aC5pbXVsKGV0LFd0KXwwLENlPShDZT1DZStNYXRoLmltdWwoZXQscG4pfDApK01hdGguaW11bChhdCxXdCl8MCxEZT1EZStNYXRoLmltdWwoYXQscG4pfDAseWU9eWUrTWF0aC5pbXVsKG9uLE50KXwwLENlPShDZT1DZStNYXRoLmltdWwob24s''@;'; + put 'put ''c24pfDApK01hdGguaW11bChfdCxOdCl8MCxEZT1EZStNYXRoLmltdWwoX3Qsc24pfDAseWU9eWUrTWF0aC5pbXVsKEF0LHduKXwwLENlPShDZT1DZStNYXRoLmltdWwoQXQsdG4pfDApK01hdGguaW11bChodCx3bil8MCxEZT1EZStNYXRoLmltdWwoaHQsdG4pfDAseWU9eWUrTWF0aC5pbXVs''@;'; + put 'put ''KHd0LFRyKXwwLENlPShDZT1DZStNYXRoLmltdWwod3QsQm4pfDApK01hdGguaW11bChtdCxUcil8MCxEZT1EZStNYXRoLmltdWwobXQsQm4pfDA7dmFyIFJyPShGKyh5ZT15ZStNYXRoLmltdWwoUWUsbW4pfDApfDApKygoODE5MSYoQ2U9KENlPUNlK01hdGguaW11bChRZSx1bil8MCkrTWF0''@;'; + put 'put ''aC5pbXVsKCRlLG1uKXwwKSk8PDEzKXwwO0Y9KChEZT1EZStNYXRoLmltdWwoJGUsdW4pfDApKyhDZT4+PjEzKXwwKSsoUnI+Pj4yNil8MCxSciY9NjcxMDg4NjMseWU9TWF0aC5pbXVsKGRuLHNyKSxDZT0oQ2U9TWF0aC5pbXVsKGRuLFhuKSkrTWF0aC5pbXVsKHluLHNyKXwwLERlPU1hdGgu''@;'; + put 'put ''aW11bCh5bixYbikseWU9eWUrTWF0aC5pbXVsKGp0LHhyKXwwLENlPShDZT1DZStNYXRoLmltdWwoanQscXQpfDApK01hdGguaW11bChRdCx4cil8MCxEZT1EZStNYXRoLmltdWwoUXQscXQpfDAseWU9eWUrTWF0aC5pbXVsKEdlLG5yKXwwLENlPShDZT1DZStNYXRoLmltdWwoR2UsQW4pfDAp''@;'; + put 'put ''K01hdGguaW11bChVZSxucil8MCxEZT1EZStNYXRoLmltdWwoVWUsQW4pfDAseWU9eWUrTWF0aC5pbXVsKEN0LFd0KXwwLENlPShDZT1DZStNYXRoLmltdWwoQ3QscG4pfDApK01hdGguaW11bChmdCxXdCl8MCxEZT1EZStNYXRoLmltdWwoZnQscG4pfDAseWU9eWUrTWF0aC5pbXVsKGV0LE50''@;'; + put 'put ''KXwwLENlPShDZT1DZStNYXRoLmltdWwoZXQsc24pfDApK01hdGguaW11bChhdCxOdCl8MCxEZT1EZStNYXRoLmltdWwoYXQsc24pfDAseWU9eWUrTWF0aC5pbXVsKG9uLHduKXwwLENlPShDZT1DZStNYXRoLmltdWwob24sdG4pfDApK01hdGguaW11bChfdCx3bil8MCxEZT1EZStNYXRoLmlt''@;'; + put 'put ''dWwoX3QsdG4pfDAseWU9eWUrTWF0aC5pbXVsKEF0LFRyKXwwLENlPShDZT1DZStNYXRoLmltdWwoQXQsQm4pfDApK01hdGguaW11bChodCxUcil8MCxEZT1EZStNYXRoLmltdWwoaHQsQm4pfDAseWU9eWUrTWF0aC5pbXVsKHd0LG1uKXwwLENlPShDZT1DZStNYXRoLmltdWwod3QsdW4pfDAp''@;'; + put 'put ''K01hdGguaW11bChtdCxtbil8MCxEZT1EZStNYXRoLmltdWwobXQsdW4pfDA7dmFyIGxpPShGKyh5ZT15ZStNYXRoLmltdWwoUWUsX24pfDApfDApKygoODE5MSYoQ2U9KENlPUNlK01hdGguaW11bChRZSxHdCl8MCkrTWF0aC5pbXVsKCRlLF9uKXwwKSk8PDEzKXwwO0Y9KChEZT1EZStNYXRo''@;'; + put 'put ''LmltdWwoJGUsR3QpfDApKyhDZT4+PjEzKXwwKSsobGk+Pj4yNil8MCxsaSY9NjcxMDg4NjMseWU9TWF0aC5pbXVsKE5uLHNyKSxDZT0oQ2U9TWF0aC5pbXVsKE5uLFhuKSkrTWF0aC5pbXVsKGJuLHNyKXwwLERlPU1hdGguaW11bChibixYbikseWU9eWUrTWF0aC5pbXVsKGRuLHhyKXwwLENl''@;'; + put 'put ''PShDZT1DZStNYXRoLmltdWwoZG4scXQpfDApK01hdGguaW11bCh5bix4cil8MCxEZT1EZStNYXRoLmltdWwoeW4scXQpfDAseWU9eWUrTWF0aC5pbXVsKGp0LG5yKXwwLENlPShDZT1DZStNYXRoLmltdWwoanQsQW4pfDApK01hdGguaW11bChRdCxucil8MCxEZT1EZStNYXRoLmltdWwoUXQs''@;'; + put 'put ''QW4pfDAseWU9eWUrTWF0aC5pbXVsKEdlLFd0KXwwLENlPShDZT1DZStNYXRoLmltdWwoR2UscG4pfDApK01hdGguaW11bChVZSxXdCl8MCxEZT1EZStNYXRoLmltdWwoVWUscG4pfDAseWU9eWUrTWF0aC5pbXVsKEN0LE50KXwwLENlPShDZT1DZStNYXRoLmltdWwoQ3Qsc24pfDApK01hdGgu''@;'; + put 'put ''aW11bChmdCxOdCl8MCxEZT1EZStNYXRoLmltdWwoZnQsc24pfDAseWU9eWUrTWF0aC5pbXVsKGV0LHduKXwwLENlPShDZT1DZStNYXRoLmltdWwoZXQsdG4pfDApK01hdGguaW11bChhdCx3bil8MCxEZT1EZStNYXRoLmltdWwoYXQsdG4pfDAseWU9eWUrTWF0aC5pbXVsKG9uLFRyKXwwLENl''@;'; + put 'put ''PShDZT1DZStNYXRoLmltdWwob24sQm4pfDApK01hdGguaW11bChfdCxUcil8MCxEZT1EZStNYXRoLmltdWwoX3QsQm4pfDAseWU9eWUrTWF0aC5pbXVsKEF0LG1uKXwwLENlPShDZT1DZStNYXRoLmltdWwoQXQsdW4pfDApK01hdGguaW11bChodCxtbil8MCxEZT1EZStNYXRoLmltdWwoaHQs''@;'; + put 'put ''dW4pfDAseWU9eWUrTWF0aC5pbXVsKHd0LF9uKXwwLENlPShDZT1DZStNYXRoLmltdWwod3QsR3QpfDApK01hdGguaW11bChtdCxfbil8MCxEZT1EZStNYXRoLmltdWwobXQsR3QpfDA7dmFyIE1pPShGKyh5ZT15ZStNYXRoLmltdWwoUWUsVm4pfDApfDApKygoODE5MSYoQ2U9KENlPUNlK01h''@;'; + put 'put ''dGguaW11bChRZSxlbil8MCkrTWF0aC5pbXVsKCRlLFZuKXwwKSk8PDEzKXwwO0Y9KChEZT1EZStNYXRoLmltdWwoJGUsZW4pfDApKyhDZT4+PjEzKXwwKSsoTWk+Pj4yNil8MCxNaSY9NjcxMDg4NjMseWU9TWF0aC5pbXVsKE5uLHhyKSxDZT0oQ2U9TWF0aC5pbXVsKE5uLHF0KSkrTWF0aC5p''@;'; + put 'put ''bXVsKGJuLHhyKXwwLERlPU1hdGguaW11bChibixxdCkseWU9eWUrTWF0aC5pbXVsKGRuLG5yKXwwLENlPShDZT1DZStNYXRoLmltdWwoZG4sQW4pfDApK01hdGguaW11bCh5bixucil8MCxEZT1EZStNYXRoLmltdWwoeW4sQW4pfDAseWU9eWUrTWF0aC5pbXVsKGp0LFd0KXwwLENlPShDZT1D''@;'; + put 'put ''ZStNYXRoLmltdWwoanQscG4pfDApK01hdGguaW11bChRdCxXdCl8MCxEZT1EZStNYXRoLmltdWwoUXQscG4pfDAseWU9eWUrTWF0aC5pbXVsKEdlLE50KXwwLENlPShDZT1DZStNYXRoLmltdWwoR2Usc24pfDApK01hdGguaW11bChVZSxOdCl8MCxEZT1EZStNYXRoLmltdWwoVWUsc24pfDAs''@;'; + put 'put ''eWU9eWUrTWF0aC5pbXVsKEN0LHduKXwwLENlPShDZT1DZStNYXRoLmltdWwoQ3QsdG4pfDApK01hdGguaW11bChmdCx3bil8MCxEZT1EZStNYXRoLmltdWwoZnQsdG4pfDAseWU9eWUrTWF0aC5pbXVsKGV0LFRyKXwwLENlPShDZT1DZStNYXRoLmltdWwoZXQsQm4pfDApK01hdGguaW11bChh''@;'; + put 'put ''dCxUcil8MCxEZT1EZStNYXRoLmltdWwoYXQsQm4pfDAseWU9eWUrTWF0aC5pbXVsKG9uLG1uKXwwLENlPShDZT1DZStNYXRoLmltdWwob24sdW4pfDApK01hdGguaW11bChfdCxtbil8MCxEZT1EZStNYXRoLmltdWwoX3QsdW4pfDAseWU9eWUrTWF0aC5pbXVsKEF0LF9uKXwwLENlPShDZT1D''@;'; + put 'put ''ZStNYXRoLmltdWwoQXQsR3QpfDApK01hdGguaW11bChodCxfbil8MCxEZT1EZStNYXRoLmltdWwoaHQsR3QpfDA7dmFyIG8wPShGKyh5ZT15ZStNYXRoLmltdWwod3QsVm4pfDApfDApKygoODE5MSYoQ2U9KENlPUNlK01hdGguaW11bCh3dCxlbil8MCkrTWF0aC5pbXVsKG10LFZuKXwwKSk8''@;'; + put 'put ''PDEzKXwwO0Y9KChEZT1EZStNYXRoLmltdWwobXQsZW4pfDApKyhDZT4+PjEzKXwwKSsobzA+Pj4yNil8MCxvMCY9NjcxMDg4NjMseWU9TWF0aC5pbXVsKE5uLG5yKSxDZT0oQ2U9TWF0aC5pbXVsKE5uLEFuKSkrTWF0aC5pbXVsKGJuLG5yKXwwLERlPU1hdGguaW11bChibixBbikseWU9eWUr''@;'; + put 'put ''TWF0aC5pbXVsKGRuLFd0KXwwLENlPShDZT1DZStNYXRoLmltdWwoZG4scG4pfDApK01hdGguaW11bCh5bixXdCl8MCxEZT1EZStNYXRoLmltdWwoeW4scG4pfDAseWU9eWUrTWF0aC5pbXVsKGp0LE50KXwwLENlPShDZT1DZStNYXRoLmltdWwoanQsc24pfDApK01hdGguaW11bChRdCxOdCl8''@;'; + put 'put ''MCxEZT1EZStNYXRoLmltdWwoUXQsc24pfDAseWU9eWUrTWF0aC5pbXVsKEdlLHduKXwwLENlPShDZT1DZStNYXRoLmltdWwoR2UsdG4pfDApK01hdGguaW11bChVZSx3bil8MCxEZT1EZStNYXRoLmltdWwoVWUsdG4pfDAseWU9eWUrTWF0aC5pbXVsKEN0LFRyKXwwLENlPShDZT1DZStNYXRo''@;'; + put 'put ''LmltdWwoQ3QsQm4pfDApK01hdGguaW11bChmdCxUcil8MCxEZT1EZStNYXRoLmltdWwoZnQsQm4pfDAseWU9eWUrTWF0aC5pbXVsKGV0LG1uKXwwLENlPShDZT1DZStNYXRoLmltdWwoZXQsdW4pfDApK01hdGguaW11bChhdCxtbil8MCxEZT1EZStNYXRoLmltdWwoYXQsdW4pfDAseWU9eWUr''@;'; + put 'put ''TWF0aC5pbXVsKG9uLF9uKXwwLENlPShDZT1DZStNYXRoLmltdWwob24sR3QpfDApK01hdGguaW11bChfdCxfbil8MCxEZT1EZStNYXRoLmltdWwoX3QsR3QpfDA7dmFyIG4wPShGKyh5ZT15ZStNYXRoLmltdWwoQXQsVm4pfDApfDApKygoODE5MSYoQ2U9KENlPUNlK01hdGguaW11bChBdCxl''@;'; + put 'put ''bil8MCkrTWF0aC5pbXVsKGh0LFZuKXwwKSk8PDEzKXwwO0Y9KChEZT1EZStNYXRoLmltdWwoaHQsZW4pfDApKyhDZT4+PjEzKXwwKSsobjA+Pj4yNil8MCxuMCY9NjcxMDg4NjMseWU9TWF0aC5pbXVsKE5uLFd0KSxDZT0oQ2U9TWF0aC5pbXVsKE5uLHBuKSkrTWF0aC5pbXVsKGJuLFd0KXww''@;'; + put 'put ''LERlPU1hdGguaW11bChibixwbikseWU9eWUrTWF0aC5pbXVsKGRuLE50KXwwLENlPShDZT1DZStNYXRoLmltdWwoZG4sc24pfDApK01hdGguaW11bCh5bixOdCl8MCxEZT1EZStNYXRoLmltdWwoeW4sc24pfDAseWU9eWUrTWF0aC5pbXVsKGp0LHduKXwwLENlPShDZT1DZStNYXRoLmltdWwo''@;'; + put 'put ''anQsdG4pfDApK01hdGguaW11bChRdCx3bil8MCxEZT1EZStNYXRoLmltdWwoUXQsdG4pfDAseWU9eWUrTWF0aC5pbXVsKEdlLFRyKXwwLENlPShDZT1DZStNYXRoLmltdWwoR2UsQm4pfDApK01hdGguaW11bChVZSxUcil8MCxEZT1EZStNYXRoLmltdWwoVWUsQm4pfDAseWU9eWUrTWF0aC5p''@;'; + put 'put ''bXVsKEN0LG1uKXwwLENlPShDZT1DZStNYXRoLmltdWwoQ3QsdW4pfDApK01hdGguaW11bChmdCxtbil8MCxEZT1EZStNYXRoLmltdWwoZnQsdW4pfDAseWU9eWUrTWF0aC5pbXVsKGV0LF9uKXwwLENlPShDZT1DZStNYXRoLmltdWwoZXQsR3QpfDApK01hdGguaW11bChhdCxfbil8MCxEZT1E''@;'; + put 'put ''ZStNYXRoLmltdWwoYXQsR3QpfDA7dmFyIGQwPShGKyh5ZT15ZStNYXRoLmltdWwob24sVm4pfDApfDApKygoODE5MSYoQ2U9KENlPUNlK01hdGguaW11bChvbixlbil8MCkrTWF0aC5pbXVsKF90LFZuKXwwKSk8PDEzKXwwO0Y9KChEZT1EZStNYXRoLmltdWwoX3QsZW4pfDApKyhDZT4+PjEz''@;'; + put 'put ''KXwwKSsoZDA+Pj4yNil8MCxkMCY9NjcxMDg4NjMseWU9TWF0aC5pbXVsKE5uLE50KSxDZT0oQ2U9TWF0aC5pbXVsKE5uLHNuKSkrTWF0aC5pbXVsKGJuLE50KXwwLERlPU1hdGguaW11bChibixzbikseWU9eWUrTWF0aC5pbXVsKGRuLHduKXwwLENlPShDZT1DZStNYXRoLmltdWwoZG4sdG4p''@;'; + put 'put ''fDApK01hdGguaW11bCh5bix3bil8MCxEZT1EZStNYXRoLmltdWwoeW4sdG4pfDAseWU9eWUrTWF0aC5pbXVsKGp0LFRyKXwwLENlPShDZT1DZStNYXRoLmltdWwoanQsQm4pfDApK01hdGguaW11bChRdCxUcil8MCxEZT1EZStNYXRoLmltdWwoUXQsQm4pfDAseWU9eWUrTWF0aC5pbXVsKEdl''@;'; + put 'put ''LG1uKXwwLENlPShDZT1DZStNYXRoLmltdWwoR2UsdW4pfDApK01hdGguaW11bChVZSxtbil8MCxEZT1EZStNYXRoLmltdWwoVWUsdW4pfDAseWU9eWUrTWF0aC5pbXVsKEN0LF9uKXwwLENlPShDZT1DZStNYXRoLmltdWwoQ3QsR3QpfDApK01hdGguaW11bChmdCxfbil8MCxEZT1EZStNYXRo''@;'; + put 'put ''LmltdWwoZnQsR3QpfDA7dmFyIG0wPShGKyh5ZT15ZStNYXRoLmltdWwoZXQsVm4pfDApfDApKygoODE5MSYoQ2U9KENlPUNlK01hdGguaW11bChldCxlbil8MCkrTWF0aC5pbXVsKGF0LFZuKXwwKSk8PDEzKXwwO0Y9KChEZT1EZStNYXRoLmltdWwoYXQsZW4pfDApKyhDZT4+PjEzKXwwKSso''@;'; + put 'put ''bTA+Pj4yNil8MCxtMCY9NjcxMDg4NjMseWU9TWF0aC5pbXVsKE5uLHduKSxDZT0oQ2U9TWF0aC5pbXVsKE5uLHRuKSkrTWF0aC5pbXVsKGJuLHduKXwwLERlPU1hdGguaW11bChibix0bikseWU9eWUrTWF0aC5pbXVsKGRuLFRyKXwwLENlPShDZT1DZStNYXRoLmltdWwoZG4sQm4pfDApK01h''@;'; + put 'put ''dGguaW11bCh5bixUcil8MCxEZT1EZStNYXRoLmltdWwoeW4sQm4pfDAseWU9eWUrTWF0aC5pbXVsKGp0LG1uKXwwLENlPShDZT1DZStNYXRoLmltdWwoanQsdW4pfDApK01hdGguaW11bChRdCxtbil8MCxEZT1EZStNYXRoLmltdWwoUXQsdW4pfDAseWU9eWUrTWF0aC5pbXVsKEdlLF9uKXww''@;'; + put 'put ''LENlPShDZT1DZStNYXRoLmltdWwoR2UsR3QpfDApK01hdGguaW11bChVZSxfbil8MCxEZT1EZStNYXRoLmltdWwoVWUsR3QpfDA7dmFyIEcwPShGKyh5ZT15ZStNYXRoLmltdWwoQ3QsVm4pfDApfDApKygoODE5MSYoQ2U9KENlPUNlK01hdGguaW11bChDdCxlbil8MCkrTWF0aC5pbXVsKGZ0''@;'; + put 'put ''LFZuKXwwKSk8PDEzKXwwO0Y9KChEZT1EZStNYXRoLmltdWwoZnQsZW4pfDApKyhDZT4+PjEzKXwwKSsoRzA+Pj4yNil8MCxHMCY9NjcxMDg4NjMseWU9TWF0aC5pbXVsKE5uLFRyKSxDZT0oQ2U9TWF0aC5pbXVsKE5uLEJuKSkrTWF0aC5pbXVsKGJuLFRyKXwwLERlPU1hdGguaW11bChibixC''@;'; + put 'put ''bikseWU9eWUrTWF0aC5pbXVsKGRuLG1uKXwwLENlPShDZT1DZStNYXRoLmltdWwoZG4sdW4pfDApK01hdGguaW11bCh5bixtbil8MCxEZT1EZStNYXRoLmltdWwoeW4sdW4pfDAseWU9eWUrTWF0aC5pbXVsKGp0LF9uKXwwLENlPShDZT1DZStNYXRoLmltdWwoanQsR3QpfDApK01hdGguaW11''@;'; + put 'put ''bChRdCxfbil8MCxEZT1EZStNYXRoLmltdWwoUXQsR3QpfDA7dmFyIERpPShGKyh5ZT15ZStNYXRoLmltdWwoR2UsVm4pfDApfDApKygoODE5MSYoQ2U9KENlPUNlK01hdGguaW11bChHZSxlbil8MCkrTWF0aC5pbXVsKFVlLFZuKXwwKSk8PDEzKXwwO0Y9KChEZT1EZStNYXRoLmltdWwoVWUs''@;'; + put 'put ''ZW4pfDApKyhDZT4+PjEzKXwwKSsoRGk+Pj4yNil8MCxEaSY9NjcxMDg4NjMseWU9TWF0aC5pbXVsKE5uLG1uKSxDZT0oQ2U9TWF0aC5pbXVsKE5uLHVuKSkrTWF0aC5pbXVsKGJuLG1uKXwwLERlPU1hdGguaW11bChibix1bikseWU9eWUrTWF0aC5pbXVsKGRuLF9uKXwwLENlPShDZT1DZStN''@;'; + put 'put ''YXRoLmltdWwoZG4sR3QpfDApK01hdGguaW11bCh5bixfbil8MCxEZT1EZStNYXRoLmltdWwoeW4sR3QpfDA7dmFyIFcwPShGKyh5ZT15ZStNYXRoLmltdWwoanQsVm4pfDApfDApKygoODE5MSYoQ2U9KENlPUNlK01hdGguaW11bChqdCxlbil8MCkrTWF0aC5pbXVsKFF0LFZuKXwwKSk8PDEz''@;'; + put 'put ''KXwwO0Y9KChEZT1EZStNYXRoLmltdWwoUXQsZW4pfDApKyhDZT4+PjEzKXwwKSsoVzA+Pj4yNil8MCxXMCY9NjcxMDg4NjMseWU9TWF0aC5pbXVsKE5uLF9uKSxDZT0oQ2U9TWF0aC5pbXVsKE5uLEd0KSkrTWF0aC5pbXVsKGJuLF9uKXwwLERlPU1hdGguaW11bChibixHdCk7dmFyIEVvPShG''@;'; + put 'put ''Kyh5ZT15ZStNYXRoLmltdWwoZG4sVm4pfDApfDApKygoODE5MSYoQ2U9KENlPUNlK01hdGguaW11bChkbixlbil8MCkrTWF0aC5pbXVsKHluLFZuKXwwKSk8PDEzKXwwO0Y9KChEZT1EZStNYXRoLmltdWwoeW4sZW4pfDApKyhDZT4+PjEzKXwwKSsoRW8+Pj4yNil8MCxFbyY9NjcxMDg4NjM7''@;'; + put 'put ''dmFyIHFvPShGKyh5ZT1NYXRoLmltdWwoTm4sVm4pKXwwKSsoKDgxOTEmKENlPShDZT1NYXRoLmltdWwoTm4sZW4pKStNYXRoLmltdWwoYm4sVm4pfDApKTw8MTMpfDA7cmV0dXJuIEY9KChEZT1NYXRoLmltdWwoYm4sZW4pKSsoQ2U+Pj4xMyl8MCkrKHFvPj4+MjYpfDAscW8mPTY3MTA4ODYz''@;'; + put 'put ''LFNbMF09SW4sU1sxXT1KbixTWzJdPW9yLFNbM109Z3IsU1s0XT1LcixTWzVdPVZyLFNbNl09aWksU1s3XT1ScixTWzhdPWxpLFNbOV09TWksU1sxMF09bzAsU1sxMV09bjAsU1sxMl09ZDAsU1sxM109bTAsU1sxNF09RzAsU1sxNV09RGksU1sxNl09VzAsU1sxN109RW8sU1sxOF09cW8sMCE9''@;'; + put 'put ''PUYmJihTWzE5XT1GLFAubGVuZ3RoKyspLFB9O2Z1bmN0aW9uIGRlKG5lLHRlLHgpe3gubmVnYXRpdmU9dGUubmVnYXRpdmVebmUubmVnYXRpdmUseC5sZW5ndGg9bmUubGVuZ3RoK3RlLmxlbmd0aDtmb3IodmFyIFA9MCxWPTAsVD0wO1Q8eC5sZW5ndGgtMTtUKyspe3ZhciBTPVY7Vj0wO2Zv''@;'; + put 'put ''cih2YXIgRj02NzEwODg2MyZQLHllPU1hdGgubWluKFQsdGUubGVuZ3RoLTEpLENlPU1hdGgubWF4KDAsVC1uZS5sZW5ndGgrMSk7Q2U8PXllO0NlKyspe3ZhciAkZT0oMHxuZS53b3Jkc1tULUNlXSkqKDB8dGUud29yZHNbQ2VdKSxndD02NzEwODg2MyYkZTtGPTY3MTA4ODYzJihndD1ndCtG''@;'; + put 'put ''fDApLFYrPShTPShTPVMrKCRlLzY3MTA4ODY0fDApfDApKyhndD4+PjI2KXwwKT4+PjI2LFMmPTY3MTA4ODYzfXgud29yZHNbVF09RixQPVMsUz1WfXJldHVybiAwIT09UD94LndvcmRzW1RdPVA6eC5sZW5ndGgtLSx4Ll9zdHJpcCgpfWZ1bmN0aW9uIHZlKG5lLHRlLHgpe3JldHVybiBkZShu''@;'; + put 'put ''ZSx0ZSx4KX1mdW5jdGlvbiBBZShuZSx0ZSl7dGhpcy54PW5lLHRoaXMueT10ZX1NYXRoLmltdWx8fChjZT1vZSksVS5wcm90b3R5cGUubXVsVG89ZnVuY3Rpb24odGUseCl7dmFyIFY9dGhpcy5sZW5ndGgrdGUubGVuZ3RoO3JldHVybiAxMD09PXRoaXMubGVuZ3RoJiYxMD09PXRlLmxlbmd0''@;'; + put 'put ''aD9jZSh0aGlzLHRlLHgpOlY8NjM/b2UodGhpcyx0ZSx4KTpWPDEwMjQ/ZGUodGhpcyx0ZSx4KTp2ZSh0aGlzLHRlLHgpfSxBZS5wcm90b3R5cGUubWFrZVJCVD1mdW5jdGlvbih0ZSl7Zm9yKHZhciB4PW5ldyBBcnJheSh0ZSksUD1VLnByb3RvdHlwZS5fY291bnRCaXRzKHRlKS0xLFY9MDtW''@;'; + put 'put ''PHRlO1YrKyl4W1ZdPXRoaXMucmV2QmluKFYsUCx0ZSk7cmV0dXJuIHh9LEFlLnByb3RvdHlwZS5yZXZCaW49ZnVuY3Rpb24odGUseCxQKXtpZigwPT09dGV8fHRlPT09UC0xKXJldHVybiB0ZTtmb3IodmFyIFY9MCxUPTA7VDx4O1QrKylWfD0oMSZ0ZSk8PHgtVC0xLHRlPj49MTtyZXR1cm4g''@;'; + put 'put ''Vn0sQWUucHJvdG90eXBlLnBlcm11dGU9ZnVuY3Rpb24odGUseCxQLFYsVCxTKXtmb3IodmFyIEY9MDtGPFM7RisrKVZbRl09eFt0ZVtGXV0sVFtGXT1QW3RlW0ZdXX0sQWUucHJvdG90eXBlLnRyYW5zZm9ybT1mdW5jdGlvbih0ZSx4LFAsVixULFMpe3RoaXMucGVybXV0ZShTLHRlLHgsUCxW''@;'; + put 'put ''LFQpO2Zvcih2YXIgRj0xO0Y8VDtGPDw9MSlmb3IodmFyIHllPUY8PDEsQ2U9TWF0aC5jb3MoMipNYXRoLlBJL3llKSxEZT1NYXRoLnNpbigyKk1hdGguUEkveWUpLFBlPTA7UGU8VDtQZSs9eWUpZm9yKHZhciBRZT1DZSwkZT1EZSxndD0wO2d0PEY7Z3QrKyl7dmFyIHd0PVBbUGUrZ3RdLG10''@;'; + put 'put ''PVZbUGUrZ3RdLHZ0PVBbUGUrZ3QrRl0sQXQ9VltQZStndCtGXSxodD1RZSp2dC0kZSpBdDtBdD1RZSpBdCskZSp2dCxQW1BlK2d0XT13dCsodnQ9aHQpLFZbUGUrZ3RdPW10K0F0LFBbUGUrZ3QrRl09d3QtdnQsVltQZStndCtGXT1tdC1BdCxndCE9PXllJiYoaHQ9Q2UqUWUtRGUqJGUsJGU9''@;'; + put 'put ''Q2UqJGUrRGUqUWUsUWU9aHQpfX0sQWUucHJvdG90eXBlLmd1ZXNzTGVuMTNiPWZ1bmN0aW9uKHRlLHgpe3ZhciBQPTF8TWF0aC5tYXgoeCx0ZSksVj0xJlAsVD0wO2ZvcihQPVAvMnwwO1A7UD4+Pj0xKVQrKztyZXR1cm4gMTw8VCsxK1Z9LEFlLnByb3RvdHlwZS5jb25qdWdhdGU9ZnVuY3Rp''@;'; + put 'put ''b24odGUseCxQKXtpZighKFA8PTEpKWZvcih2YXIgVj0wO1Y8UC8yO1YrKyl7dmFyIFQ9dGVbVl07dGVbVl09dGVbUC1WLTFdLHRlW1AtVi0xXT1ULFQ9eFtWXSx4W1ZdPS14W1AtVi0xXSx4W1AtVi0xXT0tVH19LEFlLnByb3RvdHlwZS5ub3JtYWxpemUxM2I9ZnVuY3Rpb24odGUseCl7Zm9y''@;'; + put 'put ''KHZhciBQPTAsVj0wO1Y8eC8yO1YrKyl7dmFyIFQ9ODE5MipNYXRoLnJvdW5kKHRlWzIqVisxXS94KStNYXRoLnJvdW5kKHRlWzIqVl0veCkrUDt0ZVtWXT02NzEwODg2MyZULFA9VDw2NzEwODg2ND8wOlQvNjcxMDg4NjR8MH1yZXR1cm4gdGV9LEFlLnByb3RvdHlwZS5jb252ZXJ0MTNiPWZ1''@;'; + put 'put ''bmN0aW9uKHRlLHgsUCxWKXtmb3IodmFyIFQ9MCxTPTA7Uzx4O1MrKylQWzIqU109ODE5MSYoVCs9MHx0ZVtTXSksUFsyKlMrMV09ODE5MSYoVD4+Pj0xMyksVD4+Pj0xMztmb3IoUz0yKng7UzxWOysrUylQW1NdPTA7RSgwPT09VCksRSgwPT0oLTgxOTImVCkpfSxBZS5wcm90b3R5cGUuc3R1''@;'; + put 'put ''Yj1mdW5jdGlvbih0ZSl7Zm9yKHZhciB4PW5ldyBBcnJheSh0ZSksUD0wO1A8dGU7UCsrKXhbUF09MDtyZXR1cm4geH0sQWUucHJvdG90eXBlLm11bHA9ZnVuY3Rpb24odGUseCxQKXt2YXIgVj0yKnRoaXMuZ3Vlc3NMZW4xM2IodGUubGVuZ3RoLHgubGVuZ3RoKSxUPXRoaXMubWFrZVJCVChW''@;'; + put 'put ''KSxTPXRoaXMuc3R1YihWKSxGPW5ldyBBcnJheShWKSx5ZT1uZXcgQXJyYXkoViksQ2U9bmV3IEFycmF5KFYpLERlPW5ldyBBcnJheShWKSxQZT1uZXcgQXJyYXkoViksUWU9bmV3IEFycmF5KFYpLCRlPVAud29yZHM7JGUubGVuZ3RoPVYsdGhpcy5jb252ZXJ0MTNiKHRlLndvcmRzLHRlLmxl''@;'; + put 'put ''bmd0aCxGLFYpLHRoaXMuY29udmVydDEzYih4LndvcmRzLHgubGVuZ3RoLERlLFYpLHRoaXMudHJhbnNmb3JtKEYsUyx5ZSxDZSxWLFQpLHRoaXMudHJhbnNmb3JtKERlLFMsUGUsUWUsVixUKTtmb3IodmFyIGd0PTA7Z3Q8VjtndCsrKXt2YXIgd3Q9eWVbZ3RdKlBlW2d0XS1DZVtndF0qUWVb''@;'; + put 'put ''Z3RdO0NlW2d0XT15ZVtndF0qUWVbZ3RdK0NlW2d0XSpQZVtndF0seWVbZ3RdPXd0fXJldHVybiB0aGlzLmNvbmp1Z2F0ZSh5ZSxDZSxWKSx0aGlzLnRyYW5zZm9ybSh5ZSxDZSwkZSxTLFYsVCksdGhpcy5jb25qdWdhdGUoJGUsUyxWKSx0aGlzLm5vcm1hbGl6ZTEzYigkZSxWKSxQLm5lZ2F0''@;'; + put 'put ''aXZlPXRlLm5lZ2F0aXZlXngubmVnYXRpdmUsUC5sZW5ndGg9dGUubGVuZ3RoK3gubGVuZ3RoLFAuX3N0cmlwKCl9LFUucHJvdG90eXBlLm11bD1mdW5jdGlvbih0ZSl7dmFyIHg9bmV3IFUobnVsbCk7cmV0dXJuIHgud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoK3RlLmxlbmd0aCksdGhp''@;'; + put 'put ''cy5tdWxUbyh0ZSx4KX0sVS5wcm90b3R5cGUubXVsZj1mdW5jdGlvbih0ZSl7dmFyIHg9bmV3IFUobnVsbCk7cmV0dXJuIHgud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoK3RlLmxlbmd0aCksdmUodGhpcyx0ZSx4KX0sVS5wcm90b3R5cGUuaW11bD1mdW5jdGlvbih0ZSl7cmV0dXJuIHRo''@;'; + put 'put ''aXMuY2xvbmUoKS5tdWxUbyh0ZSx0aGlzKX0sVS5wcm90b3R5cGUuaW11bG49ZnVuY3Rpb24odGUpe3ZhciB4PXRlPDA7eCYmKHRlPS10ZSksRSgibnVtYmVyIj09dHlwZW9mIHRlKSxFKHRlPDY3MTA4ODY0KTtmb3IodmFyIFA9MCxWPTA7Vjx0aGlzLmxlbmd0aDtWKyspe3ZhciBUPSgwfHRo''@;'; + put 'put ''aXMud29yZHNbVl0pKnRlLFM9KDY3MTA4ODYzJlQpKyg2NzEwODg2MyZQKTtQPj49MjYsUCs9VC82NzEwODg2NHwwLFArPVM+Pj4yNix0aGlzLndvcmRzW1ZdPTY3MTA4ODYzJlN9cmV0dXJuIDAhPT1QJiYodGhpcy53b3Jkc1tWXT1QLHRoaXMubGVuZ3RoKyspLHg/dGhpcy5pbmVnKCk6dGhp''@;'; + put 'put ''c30sVS5wcm90b3R5cGUubXVsbj1mdW5jdGlvbih0ZSl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pbXVsbih0ZSl9LFUucHJvdG90eXBlLnNxcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLm11bCh0aGlzKX0sVS5wcm90b3R5cGUuaXNxcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLmltdWwodGhpcy5j''@;'; + put 'put ''bG9uZSgpKX0sVS5wcm90b3R5cGUucG93PWZ1bmN0aW9uKHRlKXt2YXIgeD1mdW5jdGlvbiBzZShuZSl7Zm9yKHZhciB0ZT1uZXcgQXJyYXkobmUuYml0TGVuZ3RoKCkpLHg9MDt4PHRlLmxlbmd0aDt4KyspdGVbeF09bmUud29yZHNbeC8yNnwwXT4+PnglMjYmMTtyZXR1cm4gdGV9KHRlKTtp''@;'; + put 'put ''ZigwPT09eC5sZW5ndGgpcmV0dXJuIG5ldyBVKDEpO2Zvcih2YXIgUD10aGlzLFY9MDtWPHgubGVuZ3RoJiYwPT09eFtWXTtWKyssUD1QLnNxcigpKTtpZigrK1Y8eC5sZW5ndGgpZm9yKHZhciBUPVAuc3FyKCk7Vjx4Lmxlbmd0aDtWKyssVD1ULnNxcigpKTAhPT14W1ZdJiYoUD1QLm11bChU''@;'; + put 'put ''KSk7cmV0dXJuIFB9LFUucHJvdG90eXBlLml1c2hsbj1mdW5jdGlvbih0ZSl7RSgibnVtYmVyIj09dHlwZW9mIHRlJiZ0ZT49MCk7dmFyIFQseD10ZSUyNixQPSh0ZS14KS8yNixWPTY3MTA4ODYzPj4+MjYteDw8MjYteDtpZigwIT09eCl7dmFyIFM9MDtmb3IoVD0wO1Q8dGhpcy5sZW5ndGg7''@;'; + put 'put ''VCsrKXt2YXIgRj10aGlzLndvcmRzW1RdJlY7dGhpcy53b3Jkc1tUXT0oMHx0aGlzLndvcmRzW1RdKS1GPDx4fFMsUz1GPj4+MjYteH1TJiYodGhpcy53b3Jkc1tUXT1TLHRoaXMubGVuZ3RoKyspfWlmKDAhPT1QKXtmb3IoVD10aGlzLmxlbmd0aC0xO1Q+PTA7VC0tKXRoaXMud29yZHNbVCtQ''@;'; + put 'put ''XT10aGlzLndvcmRzW1RdO2ZvcihUPTA7VDxQO1QrKyl0aGlzLndvcmRzW1RdPTA7dGhpcy5sZW5ndGgrPVB9cmV0dXJuIHRoaXMuX3N0cmlwKCl9LFUucHJvdG90eXBlLmlzaGxuPWZ1bmN0aW9uKHRlKXtyZXR1cm4gRSgwPT09dGhpcy5uZWdhdGl2ZSksdGhpcy5pdXNobG4odGUpfSxVLnBy''@;'; + put 'put ''b3RvdHlwZS5pdXNocm49ZnVuY3Rpb24odGUseCxQKXt2YXIgVjtFKCJudW1iZXIiPT10eXBlb2YgdGUmJnRlPj0wKSxWPXg/KHgteCUyNikvMjY6MDt2YXIgVD10ZSUyNixTPU1hdGgubWluKCh0ZS1UKS8yNix0aGlzLmxlbmd0aCksRj02NzEwODg2M142NzEwODg2Mz4+PlQ8PFQseWU9UDtp''@;'; + put 'put ''ZihWLT1TLFY9TWF0aC5tYXgoMCxWKSx5ZSl7Zm9yKHZhciBDZT0wO0NlPFM7Q2UrKyl5ZS53b3Jkc1tDZV09dGhpcy53b3Jkc1tDZV07eWUubGVuZ3RoPVN9aWYoMCE9PVMpaWYodGhpcy5sZW5ndGg+Uylmb3IodGhpcy5sZW5ndGgtPVMsQ2U9MDtDZTx0aGlzLmxlbmd0aDtDZSsrKXRoaXMu''@;'; + put 'put ''d29yZHNbQ2VdPXRoaXMud29yZHNbQ2UrU107ZWxzZSB0aGlzLndvcmRzWzBdPTAsdGhpcy5sZW5ndGg9MTt2YXIgRGU9MDtmb3IoQ2U9dGhpcy5sZW5ndGgtMTtDZT49MCYmKDAhPT1EZXx8Q2U+PVYpO0NlLS0pe3ZhciBQZT0wfHRoaXMud29yZHNbQ2VdO3RoaXMud29yZHNbQ2VdPURlPDwy''@;'; + put 'put ''Ni1UfFBlPj4+VCxEZT1QZSZGfXJldHVybiB5ZSYmMCE9PURlJiYoeWUud29yZHNbeWUubGVuZ3RoKytdPURlKSwwPT09dGhpcy5sZW5ndGgmJih0aGlzLndvcmRzWzBdPTAsdGhpcy5sZW5ndGg9MSksdGhpcy5fc3RyaXAoKX0sVS5wcm90b3R5cGUuaXNocm49ZnVuY3Rpb24odGUseCxQKXty''@;'; + put 'put ''ZXR1cm4gRSgwPT09dGhpcy5uZWdhdGl2ZSksdGhpcy5pdXNocm4odGUseCxQKX0sVS5wcm90b3R5cGUuc2hsbj1mdW5jdGlvbih0ZSl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc2hsbih0ZSl9LFUucHJvdG90eXBlLnVzaGxuPWZ1bmN0aW9uKHRlKXtyZXR1cm4gdGhpcy5jbG9uZSgpLml1c2hs''@;'; + put 'put ''bih0ZSl9LFUucHJvdG90eXBlLnNocm49ZnVuY3Rpb24odGUpe3JldHVybiB0aGlzLmNsb25lKCkuaXNocm4odGUpfSxVLnByb3RvdHlwZS51c2hybj1mdW5jdGlvbih0ZSl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pdXNocm4odGUpfSxVLnByb3RvdHlwZS50ZXN0bj1mdW5jdGlvbih0ZSl7RSgi''@;'; + put 'put ''bnVtYmVyIj09dHlwZW9mIHRlJiZ0ZT49MCk7dmFyIHg9dGUlMjYsUD0odGUteCkvMjY7cmV0dXJuISh0aGlzLmxlbmd0aDw9UHx8ISh0aGlzLndvcmRzW1BdJjE8PHgpKX0sVS5wcm90b3R5cGUuaW1hc2tuPWZ1bmN0aW9uKHRlKXtFKCJudW1iZXIiPT10eXBlb2YgdGUmJnRlPj0wKTt2YXIg''@;'; + put 'put ''eD10ZSUyNixQPSh0ZS14KS8yNjtyZXR1cm4gRSgwPT09dGhpcy5uZWdhdGl2ZSwiaW1hc2tuIHdvcmtzIG9ubHkgd2l0aCBwb3NpdGl2ZSBudW1iZXJzIiksdGhpcy5sZW5ndGg8PVA/dGhpczooMCE9PXgmJlArKyx0aGlzLmxlbmd0aD1NYXRoLm1pbihQLHRoaXMubGVuZ3RoKSwwIT09eCYm''@;'; + put 'put ''KHRoaXMud29yZHNbdGhpcy5sZW5ndGgtMV0mPTY3MTA4ODYzXjY3MTA4ODYzPj4+eDw8eCksdGhpcy5fc3RyaXAoKSl9LFUucHJvdG90eXBlLm1hc2tuPWZ1bmN0aW9uKHRlKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmltYXNrbih0ZSl9LFUucHJvdG90eXBlLmlhZGRuPWZ1bmN0aW9uKHRlKXty''@;'; + put 'put ''ZXR1cm4gRSgibnVtYmVyIj09dHlwZW9mIHRlKSxFKHRlPDY3MTA4ODY0KSx0ZTwwP3RoaXMuaXN1Ym4oLXRlKTowIT09dGhpcy5uZWdhdGl2ZT8xPT09dGhpcy5sZW5ndGgmJigwfHRoaXMud29yZHNbMF0pPD10ZT8odGhpcy53b3Jkc1swXT10ZS0oMHx0aGlzLndvcmRzWzBdKSx0aGlzLm5l''@;'; + put 'put ''Z2F0aXZlPTAsdGhpcyk6KHRoaXMubmVnYXRpdmU9MCx0aGlzLmlzdWJuKHRlKSx0aGlzLm5lZ2F0aXZlPTEsdGhpcyk6dGhpcy5faWFkZG4odGUpfSxVLnByb3RvdHlwZS5faWFkZG49ZnVuY3Rpb24odGUpe3RoaXMud29yZHNbMF0rPXRlO2Zvcih2YXIgeD0wO3g8dGhpcy5sZW5ndGgmJnRo''@;'; + put 'put ''aXMud29yZHNbeF0+PTY3MTA4ODY0O3grKyl0aGlzLndvcmRzW3hdLT02NzEwODg2NCx4PT09dGhpcy5sZW5ndGgtMT90aGlzLndvcmRzW3grMV09MTp0aGlzLndvcmRzW3grMV0rKztyZXR1cm4gdGhpcy5sZW5ndGg9TWF0aC5tYXgodGhpcy5sZW5ndGgseCsxKSx0aGlzfSxVLnByb3RvdHlw''@;'; + put 'put ''ZS5pc3Vibj1mdW5jdGlvbih0ZSl7aWYoRSgibnVtYmVyIj09dHlwZW9mIHRlKSxFKHRlPDY3MTA4ODY0KSx0ZTwwKXJldHVybiB0aGlzLmlhZGRuKC10ZSk7aWYoMCE9PXRoaXMubmVnYXRpdmUpcmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlzLmlhZGRuKHRlKSx0aGlzLm5lZ2F0aXZlPTEs''@;'; + put 'put ''dGhpcztpZih0aGlzLndvcmRzWzBdLT10ZSwxPT09dGhpcy5sZW5ndGgmJnRoaXMud29yZHNbMF08MCl0aGlzLndvcmRzWzBdPS10aGlzLndvcmRzWzBdLHRoaXMubmVnYXRpdmU9MTtlbHNlIGZvcih2YXIgeD0wO3g8dGhpcy5sZW5ndGgmJnRoaXMud29yZHNbeF08MDt4KyspdGhpcy53b3Jk''@;'; + put 'put ''c1t4XSs9NjcxMDg4NjQsdGhpcy53b3Jkc1t4KzFdLT0xO3JldHVybiB0aGlzLl9zdHJpcCgpfSxVLnByb3RvdHlwZS5hZGRuPWZ1bmN0aW9uKHRlKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlhZGRuKHRlKX0sVS5wcm90b3R5cGUuc3Vibj1mdW5jdGlvbih0ZSl7cmV0dXJuIHRoaXMuY2xvbmUo''@;'; + put 'put ''KS5pc3Vibih0ZSl9LFUucHJvdG90eXBlLmlhYnM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLHRoaXN9LFUucHJvdG90eXBlLmFicz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmNsb25lKCkuaWFicygpfSxVLnByb3RvdHlwZS5faXNobG5zdWJtdWw9ZnVuY3Rpb24odGUseCxQ''@;'; + put 'put ''KXt2YXIgVDt0aGlzLl9leHBhbmQodGUubGVuZ3RoK1ApO3ZhciBTLEY9MDtmb3IoVD0wO1Q8dGUubGVuZ3RoO1QrKyl7Uz0oMHx0aGlzLndvcmRzW1QrUF0pK0Y7dmFyIHllPSgwfHRlLndvcmRzW1RdKSp4O0Y9KChTLT02NzEwODg2MyZ5ZSk+PjI2KS0oeWUvNjcxMDg4NjR8MCksdGhpcy53''@;'; + put 'put ''b3Jkc1tUK1BdPTY3MTA4ODYzJlN9Zm9yKDtUPHRoaXMubGVuZ3RoLVA7VCsrKUY9KFM9KDB8dGhpcy53b3Jkc1tUK1BdKStGKT4+MjYsdGhpcy53b3Jkc1tUK1BdPTY3MTA4ODYzJlM7aWYoMD09PUYpcmV0dXJuIHRoaXMuX3N0cmlwKCk7Zm9yKEUoLTE9PT1GKSxGPTAsVD0wO1Q8dGhpcy5s''@;'; + put 'put ''ZW5ndGg7VCsrKUY9KFM9LSgwfHRoaXMud29yZHNbVF0pK0YpPj4yNix0aGlzLndvcmRzW1RdPTY3MTA4ODYzJlM7cmV0dXJuIHRoaXMubmVnYXRpdmU9MSx0aGlzLl9zdHJpcCgpfSxVLnByb3RvdHlwZS5fd29yZERpdj1mdW5jdGlvbih0ZSx4KXt2YXIgUCxWPXRoaXMuY2xvbmUoKSxUPXRl''@;'; + put 'put ''LFM9MHxULndvcmRzW1QubGVuZ3RoLTFdOzAhPShQPTI2LXRoaXMuX2NvdW50Qml0cyhTKSkmJihUPVQudXNobG4oUCksVi5pdXNobG4oUCksUz0wfFQud29yZHNbVC5sZW5ndGgtMV0pO3ZhciBDZSx5ZT1WLmxlbmd0aC1ULmxlbmd0aDtpZigibW9kIiE9PXgpeyhDZT1uZXcgVShudWxsKSku''@;'; + put 'put ''bGVuZ3RoPXllKzEsQ2Uud29yZHM9bmV3IEFycmF5KENlLmxlbmd0aCk7Zm9yKHZhciBEZT0wO0RlPENlLmxlbmd0aDtEZSsrKUNlLndvcmRzW0RlXT0wfXZhciBQZT1WLmNsb25lKCkuX2lzaGxuc3VibXVsKFQsMSx5ZSk7MD09PVBlLm5lZ2F0aXZlJiYoVj1QZSxDZSYmKENlLndvcmRzW3ll''@;'; + put 'put ''XT0xKSk7Zm9yKHZhciBRZT15ZS0xO1FlPj0wO1FlLS0pe3ZhciAkZT02NzEwODg2NCooMHxWLndvcmRzW1QubGVuZ3RoK1FlXSkrKDB8Vi53b3Jkc1tULmxlbmd0aCtRZS0xXSk7Zm9yKCRlPU1hdGgubWluKCRlL1N8MCw2NzEwODg2MyksVi5faXNobG5zdWJtdWwoVCwkZSxRZSk7MCE9PVYu''@;'; + put 'put ''bmVnYXRpdmU7KSRlLS0sVi5uZWdhdGl2ZT0wLFYuX2lzaGxuc3VibXVsKFQsMSxRZSksVi5pc1plcm8oKXx8KFYubmVnYXRpdmVePTEpO0NlJiYoQ2Uud29yZHNbUWVdPSRlKX1yZXR1cm4gQ2UmJkNlLl9zdHJpcCgpLFYuX3N0cmlwKCksImRpdiIhPT14JiYwIT09UCYmVi5pdXNocm4oUCks''@;'; + put 'put ''e2RpdjpDZXx8bnVsbCxtb2Q6Vn19LFUucHJvdG90eXBlLmRpdm1vZD1mdW5jdGlvbih0ZSx4LFApe3JldHVybiBFKCF0ZS5pc1plcm8oKSksdGhpcy5pc1plcm8oKT97ZGl2Om5ldyBVKDApLG1vZDpuZXcgVSgwKX06MCE9PXRoaXMubmVnYXRpdmUmJjA9PT10ZS5uZWdhdGl2ZT8oUz10aGlz''@;'; + put 'put ''Lm5lZygpLmRpdm1vZCh0ZSx4KSwibW9kIiE9PXgmJihWPVMuZGl2Lm5lZygpKSwiZGl2IiE9PXgmJihUPVMubW9kLm5lZygpLFAmJjAhPT1ULm5lZ2F0aXZlJiZULmlhZGQodGUpKSx7ZGl2OlYsbW9kOlR9KTowPT09dGhpcy5uZWdhdGl2ZSYmMCE9PXRlLm5lZ2F0aXZlPyhTPXRoaXMuZGl2''@;'; + put 'put ''bW9kKHRlLm5lZygpLHgpLCJtb2QiIT09eCYmKFY9Uy5kaXYubmVnKCkpLHtkaXY6Vixtb2Q6Uy5tb2R9KTowIT0odGhpcy5uZWdhdGl2ZSZ0ZS5uZWdhdGl2ZSk/KFM9dGhpcy5uZWcoKS5kaXZtb2QodGUubmVnKCkseCksImRpdiIhPT14JiYoVD1TLm1vZC5uZWcoKSxQJiYwIT09VC5uZWdh''@;'; + put 'put ''dGl2ZSYmVC5pc3ViKHRlKSkse2RpdjpTLmRpdixtb2Q6VH0pOnRlLmxlbmd0aD50aGlzLmxlbmd0aHx8dGhpcy5jbXAodGUpPDA/e2RpdjpuZXcgVSgwKSxtb2Q6dGhpc306MT09PXRlLmxlbmd0aD8iZGl2Ij09PXg/e2Rpdjp0aGlzLmRpdm4odGUud29yZHNbMF0pLG1vZDpudWxsfToibW9k''@;'; + put 'put ''Ij09PXg/e2RpdjpudWxsLG1vZDpuZXcgVSh0aGlzLm1vZHJuKHRlLndvcmRzWzBdKSl9OntkaXY6dGhpcy5kaXZuKHRlLndvcmRzWzBdKSxtb2Q6bmV3IFUodGhpcy5tb2Rybih0ZS53b3Jkc1swXSkpfTp0aGlzLl93b3JkRGl2KHRlLHgpO3ZhciBWLFQsU30sVS5wcm90b3R5cGUuZGl2PWZ1''@;'; + put 'put ''bmN0aW9uKHRlKXtyZXR1cm4gdGhpcy5kaXZtb2QodGUsImRpdiIsITEpLmRpdn0sVS5wcm90b3R5cGUubW9kPWZ1bmN0aW9uKHRlKXtyZXR1cm4gdGhpcy5kaXZtb2QodGUsIm1vZCIsITEpLm1vZH0sVS5wcm90b3R5cGUudW1vZD1mdW5jdGlvbih0ZSl7cmV0dXJuIHRoaXMuZGl2bW9kKHRl''@;'; + put 'put ''LCJtb2QiLCEwKS5tb2R9LFUucHJvdG90eXBlLmRpdlJvdW5kPWZ1bmN0aW9uKHRlKXt2YXIgeD10aGlzLmRpdm1vZCh0ZSk7aWYoeC5tb2QuaXNaZXJvKCkpcmV0dXJuIHguZGl2O3ZhciBQPTAhPT14LmRpdi5uZWdhdGl2ZT94Lm1vZC5pc3ViKHRlKTp4Lm1vZCxWPXRlLnVzaHJuKDEpLFQ9''@;'; + put 'put ''dGUuYW5kbG4oMSksUz1QLmNtcChWKTtyZXR1cm4gUzwwfHwxPT09VCYmMD09PVM/eC5kaXY6MCE9PXguZGl2Lm5lZ2F0aXZlP3guZGl2LmlzdWJuKDEpOnguZGl2LmlhZGRuKDEpfSxVLnByb3RvdHlwZS5tb2Rybj1mdW5jdGlvbih0ZSl7dmFyIHg9dGU8MDt4JiYodGU9LXRlKSxFKHRlPD02''@;'; + put 'put ''NzEwODg2Myk7Zm9yKHZhciBQPSgxPDwyNikldGUsVj0wLFQ9dGhpcy5sZW5ndGgtMTtUPj0wO1QtLSlWPShQKlYrKDB8dGhpcy53b3Jkc1tUXSkpJXRlO3JldHVybiB4Py1WOlZ9LFUucHJvdG90eXBlLm1vZG49ZnVuY3Rpb24odGUpe3JldHVybiB0aGlzLm1vZHJuKHRlKX0sVS5wcm90b3R5''@;'; + put 'put ''cGUuaWRpdm49ZnVuY3Rpb24odGUpe3ZhciB4PXRlPDA7eCYmKHRlPS10ZSksRSh0ZTw9NjcxMDg4NjMpO2Zvcih2YXIgUD0wLFY9dGhpcy5sZW5ndGgtMTtWPj0wO1YtLSl7dmFyIFQ9KDB8dGhpcy53b3Jkc1tWXSkrNjcxMDg4NjQqUDt0aGlzLndvcmRzW1ZdPVQvdGV8MCxQPVQldGV9cmV0''@;'; + put 'put ''dXJuIHRoaXMuX3N0cmlwKCkseD90aGlzLmluZWcoKTp0aGlzfSxVLnByb3RvdHlwZS5kaXZuPWZ1bmN0aW9uKHRlKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlkaXZuKHRlKX0sVS5wcm90b3R5cGUuZWdjZD1mdW5jdGlvbih0ZSl7RSgwPT09dGUubmVnYXRpdmUpLEUoIXRlLmlzWmVybygpKTt2''@;'; + put 'put ''YXIgeD10aGlzLFA9dGUuY2xvbmUoKTt4PTAhPT14Lm5lZ2F0aXZlP3gudW1vZCh0ZSk6eC5jbG9uZSgpO2Zvcih2YXIgVj1uZXcgVSgxKSxUPW5ldyBVKDApLFM9bmV3IFUoMCksRj1uZXcgVSgxKSx5ZT0wO3guaXNFdmVuKCkmJlAuaXNFdmVuKCk7KXguaXVzaHJuKDEpLFAuaXVzaHJuKDEp''@;'; + put 'put ''LCsreWU7Zm9yKHZhciBDZT1QLmNsb25lKCksRGU9eC5jbG9uZSgpOyF4LmlzWmVybygpOyl7Zm9yKHZhciBQZT0wLFFlPTE7MD09KHgud29yZHNbMF0mUWUpJiZQZTwyNjsrK1BlLFFlPDw9MSk7aWYoUGU+MClmb3IoeC5pdXNocm4oUGUpO1BlLS0gPjA7KShWLmlzT2RkKCl8fFQuaXNPZGQo''@;'; + put 'put ''KSkmJihWLmlhZGQoQ2UpLFQuaXN1YihEZSkpLFYuaXVzaHJuKDEpLFQuaXVzaHJuKDEpO2Zvcih2YXIgJGU9MCxndD0xOzA9PShQLndvcmRzWzBdJmd0KSYmJGU8MjY7KyskZSxndDw8PTEpO2lmKCRlPjApZm9yKFAuaXVzaHJuKCRlKTskZS0tID4wOykoUy5pc09kZCgpfHxGLmlzT2RkKCkp''@;'; + put 'put ''JiYoUy5pYWRkKENlKSxGLmlzdWIoRGUpKSxTLml1c2hybigxKSxGLml1c2hybigxKTt4LmNtcChQKT49MD8oeC5pc3ViKFApLFYuaXN1YihTKSxULmlzdWIoRikpOihQLmlzdWIoeCksUy5pc3ViKFYpLEYuaXN1YihUKSl9cmV0dXJue2E6UyxiOkYsZ2NkOlAuaXVzaGxuKHllKX19LFUucHJv''@;'; + put 'put ''dG90eXBlLl9pbnZtcD1mdW5jdGlvbih0ZSl7RSgwPT09dGUubmVnYXRpdmUpLEUoIXRlLmlzWmVybygpKTt2YXIgUGUseD10aGlzLFA9dGUuY2xvbmUoKTt4PTAhPT14Lm5lZ2F0aXZlP3gudW1vZCh0ZSk6eC5jbG9uZSgpO2Zvcih2YXIgVj1uZXcgVSgxKSxUPW5ldyBVKDApLFM9UC5jbG9u''@;'; + put 'put ''ZSgpO3guY21wbigxKT4wJiZQLmNtcG4oMSk+MDspe2Zvcih2YXIgRj0wLHllPTE7MD09KHgud29yZHNbMF0meWUpJiZGPDI2OysrRix5ZTw8PTEpO2lmKEY+MClmb3IoeC5pdXNocm4oRik7Ri0tID4wOylWLmlzT2RkKCkmJlYuaWFkZChTKSxWLml1c2hybigxKTtmb3IodmFyIENlPTAsRGU9''@;'; + put 'put ''MTswPT0oUC53b3Jkc1swXSZEZSkmJkNlPDI2OysrQ2UsRGU8PD0xKTtpZihDZT4wKWZvcihQLml1c2hybihDZSk7Q2UtLSA+MDspVC5pc09kZCgpJiZULmlhZGQoUyksVC5pdXNocm4oMSk7eC5jbXAoUCk+PTA/KHguaXN1YihQKSxWLmlzdWIoVCkpOihQLmlzdWIoeCksVC5pc3ViKFYpKX1y''@;'; + put 'put ''ZXR1cm4oUGU9MD09PXguY21wbigxKT9WOlQpLmNtcG4oMCk8MCYmUGUuaWFkZCh0ZSksUGV9LFUucHJvdG90eXBlLmdjZD1mdW5jdGlvbih0ZSl7aWYodGhpcy5pc1plcm8oKSlyZXR1cm4gdGUuYWJzKCk7aWYodGUuaXNaZXJvKCkpcmV0dXJuIHRoaXMuYWJzKCk7dmFyIHg9dGhpcy5jbG9u''@;'; + put 'put ''ZSgpLFA9dGUuY2xvbmUoKTt4Lm5lZ2F0aXZlPTAsUC5uZWdhdGl2ZT0wO2Zvcih2YXIgVj0wO3guaXNFdmVuKCkmJlAuaXNFdmVuKCk7VisrKXguaXVzaHJuKDEpLFAuaXVzaHJuKDEpO2Zvcig7Oyl7Zm9yKDt4LmlzRXZlbigpOyl4Lml1c2hybigxKTtmb3IoO1AuaXNFdmVuKCk7KVAuaXVz''@;'; + put 'put ''aHJuKDEpO3ZhciBUPXguY21wKFApO2lmKFQ8MCl7dmFyIFM9eDt4PVAsUD1TfWVsc2UgaWYoMD09PVR8fDA9PT1QLmNtcG4oMSkpYnJlYWs7eC5pc3ViKFApfXJldHVybiBQLml1c2hsbihWKX0sVS5wcm90b3R5cGUuaW52bT1mdW5jdGlvbih0ZSl7cmV0dXJuIHRoaXMuZWdjZCh0ZSkuYS51''@;'; + put 'put ''bW9kKHRlKX0sVS5wcm90b3R5cGUuaXNFdmVuPWZ1bmN0aW9uKCl7cmV0dXJuIDA9PSgxJnRoaXMud29yZHNbMF0pfSxVLnByb3RvdHlwZS5pc09kZD1mdW5jdGlvbigpe3JldHVybiAxPT0oMSZ0aGlzLndvcmRzWzBdKX0sVS5wcm90b3R5cGUuYW5kbG49ZnVuY3Rpb24odGUpe3JldHVybiB0''@;'; + put 'put ''aGlzLndvcmRzWzBdJnRlfSxVLnByb3RvdHlwZS5iaW5jbj1mdW5jdGlvbih0ZSl7RSgibnVtYmVyIj09dHlwZW9mIHRlKTt2YXIgeD10ZSUyNixQPSh0ZS14KS8yNixWPTE8PHg7aWYodGhpcy5sZW5ndGg8PVApcmV0dXJuIHRoaXMuX2V4cGFuZChQKzEpLHRoaXMud29yZHNbUF18PVYsdGhp''@;'; + put 'put ''cztmb3IodmFyIFQ9VixTPVA7MCE9PVQmJlM8dGhpcy5sZW5ndGg7UysrKXt2YXIgRj0wfHRoaXMud29yZHNbU107VD0oRis9VCk+Pj4yNix0aGlzLndvcmRzW1NdPUYmPTY3MTA4ODYzfXJldHVybiAwIT09VCYmKHRoaXMud29yZHNbU109VCx0aGlzLmxlbmd0aCsrKSx0aGlzfSxVLnByb3Rv''@;'; + put 'put ''dHlwZS5pc1plcm89ZnVuY3Rpb24oKXtyZXR1cm4gMT09PXRoaXMubGVuZ3RoJiYwPT09dGhpcy53b3Jkc1swXX0sVS5wcm90b3R5cGUuY21wbj1mdW5jdGlvbih0ZSl7dmFyIFAseD10ZTwwO2lmKDAhPT10aGlzLm5lZ2F0aXZlJiYheClyZXR1cm4tMTtpZigwPT09dGhpcy5uZWdhdGl2ZSYm''@;'; + put 'put ''eClyZXR1cm4gMTtpZih0aGlzLl9zdHJpcCgpLHRoaXMubGVuZ3RoPjEpUD0xO2Vsc2V7eCYmKHRlPS10ZSksRSh0ZTw9NjcxMDg4NjMsIk51bWJlciBpcyB0b28gYmlnIik7dmFyIFY9MHx0aGlzLndvcmRzWzBdO1A9Vj09PXRlPzA6Vjx0ZT8tMToxfXJldHVybiAwIT09dGhpcy5uZWdhdGl2''@;'; + put 'put ''ZT8wfC1QOlB9LFUucHJvdG90eXBlLmNtcD1mdW5jdGlvbih0ZSl7aWYoMCE9PXRoaXMubmVnYXRpdmUmJjA9PT10ZS5uZWdhdGl2ZSlyZXR1cm4tMTtpZigwPT09dGhpcy5uZWdhdGl2ZSYmMCE9PXRlLm5lZ2F0aXZlKXJldHVybiAxO3ZhciB4PXRoaXMudWNtcCh0ZSk7cmV0dXJuIDAhPT10''@;'; + put 'put ''aGlzLm5lZ2F0aXZlPzB8LXg6eH0sVS5wcm90b3R5cGUudWNtcD1mdW5jdGlvbih0ZSl7aWYodGhpcy5sZW5ndGg+dGUubGVuZ3RoKXJldHVybiAxO2lmKHRoaXMubGVuZ3RoPHRlLmxlbmd0aClyZXR1cm4tMTtmb3IodmFyIHg9MCxQPXRoaXMubGVuZ3RoLTE7UD49MDtQLS0pe3ZhciBWPTB8''@;'; + put 'put ''dGhpcy53b3Jkc1tQXSxUPTB8dGUud29yZHNbUF07aWYoViE9PVQpe1Y8VD94PS0xOlY+VCYmKHg9MSk7YnJlYWt9fXJldHVybiB4fSxVLnByb3RvdHlwZS5ndG49ZnVuY3Rpb24odGUpe3JldHVybiAxPT09dGhpcy5jbXBuKHRlKX0sVS5wcm90b3R5cGUuZ3Q9ZnVuY3Rpb24odGUpe3JldHVy''@;'; + put 'put ''biAxPT09dGhpcy5jbXAodGUpfSxVLnByb3RvdHlwZS5ndGVuPWZ1bmN0aW9uKHRlKXtyZXR1cm4gdGhpcy5jbXBuKHRlKT49MH0sVS5wcm90b3R5cGUuZ3RlPWZ1bmN0aW9uKHRlKXtyZXR1cm4gdGhpcy5jbXAodGUpPj0wfSxVLnByb3RvdHlwZS5sdG49ZnVuY3Rpb24odGUpe3JldHVybi0x''@;'; + put 'put ''PT09dGhpcy5jbXBuKHRlKX0sVS5wcm90b3R5cGUubHQ9ZnVuY3Rpb24odGUpe3JldHVybi0xPT09dGhpcy5jbXAodGUpfSxVLnByb3RvdHlwZS5sdGVuPWZ1bmN0aW9uKHRlKXtyZXR1cm4gdGhpcy5jbXBuKHRlKTw9MH0sVS5wcm90b3R5cGUubHRlPWZ1bmN0aW9uKHRlKXtyZXR1cm4gdGhp''@;'; + put 'put ''cy5jbXAodGUpPD0wfSxVLnByb3RvdHlwZS5lcW49ZnVuY3Rpb24odGUpe3JldHVybiAwPT09dGhpcy5jbXBuKHRlKX0sVS5wcm90b3R5cGUuZXE9ZnVuY3Rpb24odGUpe3JldHVybiAwPT09dGhpcy5jbXAodGUpfSxVLnJlZD1mdW5jdGlvbih0ZSl7cmV0dXJuIG5ldyBPKHRlKX0sVS5wcm90''@;'; + put 'put ''b3R5cGUudG9SZWQ9ZnVuY3Rpb24odGUpe3JldHVybiBFKCF0aGlzLnJlZCwiQWxyZWFkeSBhIG51bWJlciBpbiByZWR1Y3Rpb24gY29udGV4dCIpLEUoMD09PXRoaXMubmVnYXRpdmUsInJlZCB3b3JrcyBvbmx5IHdpdGggcG9zaXRpdmVzIiksdGUuY29udmVydFRvKHRoaXMpLl9mb3JjZVJl''@;'; + put 'put ''ZCh0ZSl9LFUucHJvdG90eXBlLmZyb21SZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gRSh0aGlzLnJlZCwiZnJvbVJlZCB3b3JrcyBvbmx5IHdpdGggbnVtYmVycyBpbiByZWR1Y3Rpb24gY29udGV4dCIpLHRoaXMucmVkLmNvbnZlcnRGcm9tKHRoaXMpfSxVLnByb3RvdHlwZS5fZm9yY2VSZWQ9ZnVu''@;'; + put 'put ''Y3Rpb24odGUpe3JldHVybiB0aGlzLnJlZD10ZSx0aGlzfSxVLnByb3RvdHlwZS5mb3JjZVJlZD1mdW5jdGlvbih0ZSl7cmV0dXJuIEUoIXRoaXMucmVkLCJBbHJlYWR5IGEgbnVtYmVyIGluIHJlZHVjdGlvbiBjb250ZXh0IiksdGhpcy5fZm9yY2VSZWQodGUpfSxVLnByb3RvdHlwZS5yZWRB''@;'; + put 'put ''ZGQ9ZnVuY3Rpb24odGUpe3JldHVybiBFKHRoaXMucmVkLCJyZWRBZGQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuYWRkKHRoaXMsdGUpfSxVLnByb3RvdHlwZS5yZWRJQWRkPWZ1bmN0aW9uKHRlKXtyZXR1cm4gRSh0aGlzLnJlZCwicmVkSUFkZCB3b3JrcyBvbmx5''@;'; + put 'put ''IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5pYWRkKHRoaXMsdGUpfSxVLnByb3RvdHlwZS5yZWRTdWI9ZnVuY3Rpb24odGUpe3JldHVybiBFKHRoaXMucmVkLCJyZWRTdWIgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuc3ViKHRoaXMsdGUpfSxVLnByb3RvdHlw''@;'; + put 'put ''ZS5yZWRJU3ViPWZ1bmN0aW9uKHRlKXtyZXR1cm4gRSh0aGlzLnJlZCwicmVkSVN1YiB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5pc3ViKHRoaXMsdGUpfSxVLnByb3RvdHlwZS5yZWRTaGw9ZnVuY3Rpb24odGUpe3JldHVybiBFKHRoaXMucmVkLCJyZWRTaGwgd29y''@;'; + put 'put ''a3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuc2hsKHRoaXMsdGUpfSxVLnByb3RvdHlwZS5yZWRNdWw9ZnVuY3Rpb24odGUpe3JldHVybiBFKHRoaXMucmVkLCJyZWRNdWwgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTIodGhpcyx0ZSks''@;'; + put 'put ''dGhpcy5yZWQubXVsKHRoaXMsdGUpfSxVLnByb3RvdHlwZS5yZWRJTXVsPWZ1bmN0aW9uKHRlKXtyZXR1cm4gRSh0aGlzLnJlZCwicmVkTXVsIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkyKHRoaXMsdGUpLHRoaXMucmVkLmltdWwodGhpcyx0ZSl9LFUu''@;'; + put 'put ''cHJvdG90eXBlLnJlZFNxcj1mdW5jdGlvbigpe3JldHVybiBFKHRoaXMucmVkLCJyZWRTcXIgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQuc3FyKHRoaXMpfSxVLnByb3RvdHlwZS5yZWRJU3FyPWZ1bmN0aW9uKCl7cmV0dXJu''@;'; + put 'put ''IEUodGhpcy5yZWQsInJlZElTcXIgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQuaXNxcih0aGlzKX0sVS5wcm90b3R5cGUucmVkU3FydD1mdW5jdGlvbigpe3JldHVybiBFKHRoaXMucmVkLCJyZWRTcXJ0IHdvcmtzIG9ubHkg''@;'; + put 'put ''d2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLnNxcnQodGhpcyl9LFUucHJvdG90eXBlLnJlZEludm09ZnVuY3Rpb24oKXtyZXR1cm4gRSh0aGlzLnJlZCwicmVkSW52bSB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVy''@;'; + put 'put ''aWZ5MSh0aGlzKSx0aGlzLnJlZC5pbnZtKHRoaXMpfSxVLnByb3RvdHlwZS5yZWROZWc9ZnVuY3Rpb24oKXtyZXR1cm4gRSh0aGlzLnJlZCwicmVkTmVnIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLm5lZyh0aGlzKX0sVS5w''@;'; + put 'put ''cm90b3R5cGUucmVkUG93PWZ1bmN0aW9uKHRlKXtyZXR1cm4gRSh0aGlzLnJlZCYmIXRlLnJlZCwicmVkUG93KG5vcm1hbE51bSkiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5wb3codGhpcyx0ZSl9O3ZhciBrZT17azI1NjpudWxsLHAyMjQ6bnVsbCxwMTkyOm51bGwscDI1''@;'; + put 'put ''NTE5Om51bGx9O2Z1bmN0aW9uIFNlKG5lLHRlKXt0aGlzLm5hbWU9bmUsdGhpcy5wPW5ldyBVKHRlLDE2KSx0aGlzLm49dGhpcy5wLmJpdExlbmd0aCgpLHRoaXMuaz1uZXcgVSgxKS5pdXNobG4odGhpcy5uKS5pc3ViKHRoaXMucCksdGhpcy50bXA9dGhpcy5fdG1wKCl9ZnVuY3Rpb24gSWUo''@;'; + put 'put ''KXtTZS5jYWxsKHRoaXMsImsyNTYiLCJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZSBmZmZmZmMyZiIpfWZ1bmN0aW9uIFRlKCl7U2UuY2FsbCh0aGlzLCJwMjI0IiwiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZm''@;'; + put 'put ''ZmYgMDAwMDAwMDAgMDAwMDAwMDAgMDAwMDAwMDEiKX1mdW5jdGlvbiBFZSgpe1NlLmNhbGwodGhpcywicDE5MiIsImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZlIGZmZmZmZmZmIGZmZmZmZmZmIil9ZnVuY3Rpb24gaGUoKXtTZS5jYWxsKHRoaXMsIjI1NTE5IiwiN2ZmZmZm''@;'; + put 'put ''ZmZmZmZmZmZmZiBmZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZlZCIpfWZ1bmN0aW9uIE8obmUpe2lmKCJzdHJpbmciPT10eXBlb2YgbmUpe3ZhciB0ZT1VLl9wcmltZShuZSk7dGhpcy5tPXRlLnAsdGhpcy5wcmltZT10ZX1lbHNlIEUobmUuZ3RuKDEp''@;'; + put 'put ''LCJtb2R1bHVzIG11c3QgYmUgZ3JlYXRlciB0aGFuIDEiKSx0aGlzLm09bmUsdGhpcy5wcmltZT1udWxsfWZ1bmN0aW9uIHoobmUpe08uY2FsbCh0aGlzLG5lKSx0aGlzLnNoaWZ0PXRoaXMubS5iaXRMZW5ndGgoKSx0aGlzLnNoaWZ0JTI2IT0wJiYodGhpcy5zaGlmdCs9MjYtdGhpcy5zaGlm''@;'; + put 'put ''dCUyNiksdGhpcy5yPW5ldyBVKDEpLml1c2hsbih0aGlzLnNoaWZ0KSx0aGlzLnIyPXRoaXMuaW1vZCh0aGlzLnIuc3FyKCkpLHRoaXMucmludj10aGlzLnIuX2ludm1wKHRoaXMubSksdGhpcy5taW52PXRoaXMucmludi5tdWwodGhpcy5yKS5pc3VibigxKS5kaXYodGhpcy5tKSx0aGlzLm1p''@;'; + put 'put ''bnY9dGhpcy5taW52LnVtb2QodGhpcy5yKSx0aGlzLm1pbnY9dGhpcy5yLnN1Yih0aGlzLm1pbnYpfVNlLnByb3RvdHlwZS5fdG1wPWZ1bmN0aW9uKCl7dmFyIHRlPW5ldyBVKG51bGwpO3JldHVybiB0ZS53b3Jkcz1uZXcgQXJyYXkoTWF0aC5jZWlsKHRoaXMubi8xMykpLHRlfSxTZS5wcm90''@;'; + put 'put ''b3R5cGUuaXJlZHVjZT1mdW5jdGlvbih0ZSl7dmFyIFAseD10ZTtkb3t0aGlzLnNwbGl0KHgsdGhpcy50bXApLFA9KHg9KHg9dGhpcy5pbXVsSyh4KSkuaWFkZCh0aGlzLnRtcCkpLmJpdExlbmd0aCgpfXdoaWxlKFA+dGhpcy5uKTt2YXIgVj1QPHRoaXMubj8tMTp4LnVjbXAodGhpcy5wKTty''@;'; + put 'put ''ZXR1cm4gMD09PVY/KHgud29yZHNbMF09MCx4Lmxlbmd0aD0xKTpWPjA/eC5pc3ViKHRoaXMucCk6dm9pZCAwIT09eC5zdHJpcD94LnN0cmlwKCk6eC5fc3RyaXAoKSx4fSxTZS5wcm90b3R5cGUuc3BsaXQ9ZnVuY3Rpb24odGUseCl7dGUuaXVzaHJuKHRoaXMubiwwLHgpfSxTZS5wcm90b3R5''@;'; + put 'put ''cGUuaW11bEs9ZnVuY3Rpb24odGUpe3JldHVybiB0ZS5pbXVsKHRoaXMuayl9LE1lKEllLFNlKSxJZS5wcm90b3R5cGUuc3BsaXQ9ZnVuY3Rpb24odGUseCl7Zm9yKHZhciBQPTQxOTQzMDMsVj1NYXRoLm1pbih0ZS5sZW5ndGgsOSksVD0wO1Q8VjtUKyspeC53b3Jkc1tUXT10ZS53b3Jkc1tU''@;'; + put 'put ''XTtpZih4Lmxlbmd0aD1WLHRlLmxlbmd0aDw9OSlyZXR1cm4gdGUud29yZHNbMF09MCx2b2lkKHRlLmxlbmd0aD0xKTt2YXIgUz10ZS53b3Jkc1s5XTtmb3IoeC53b3Jkc1t4Lmxlbmd0aCsrXT1TJlAsVD0xMDtUPHRlLmxlbmd0aDtUKyspe3ZhciBGPTB8dGUud29yZHNbVF07dGUud29yZHNb''@;'; + put 'put ''VC0xMF09KEYmUCk8PDR8Uz4+PjIyLFM9Rn10ZS53b3Jkc1tULTEwXT1TPj4+PTIyLHRlLmxlbmd0aC09MD09PVMmJnRlLmxlbmd0aD4xMD8xMDo5fSxJZS5wcm90b3R5cGUuaW11bEs9ZnVuY3Rpb24odGUpe3RlLndvcmRzW3RlLmxlbmd0aF09MCx0ZS53b3Jkc1t0ZS5sZW5ndGgrMV09MCx0''@;'; + put 'put ''ZS5sZW5ndGgrPTI7Zm9yKHZhciB4PTAsUD0wO1A8dGUubGVuZ3RoO1ArKyl7dmFyIFY9MHx0ZS53b3Jkc1tQXTt0ZS53b3Jkc1tQXT02NzEwODg2MyYoeCs9OTc3KlYpLHg9NjQqVisoeC82NzEwODg2NHwwKX1yZXR1cm4gMD09PXRlLndvcmRzW3RlLmxlbmd0aC0xXSYmKHRlLmxlbmd0aC0t''@;'; + put 'put ''LDA9PT10ZS53b3Jkc1t0ZS5sZW5ndGgtMV0mJnRlLmxlbmd0aC0tKSx0ZX0sTWUoVGUsU2UpLE1lKEVlLFNlKSxNZShoZSxTZSksaGUucHJvdG90eXBlLmltdWxLPWZ1bmN0aW9uKHRlKXtmb3IodmFyIHg9MCxQPTA7UDx0ZS5sZW5ndGg7UCsrKXt2YXIgVj0xOSooMHx0ZS53b3Jkc1tQXSkr''@;'; + put 'put ''eCxUPTY3MTA4ODYzJlY7Vj4+Pj0yNix0ZS53b3Jkc1tQXT1ULHg9Vn1yZXR1cm4gMCE9PXgmJih0ZS53b3Jkc1t0ZS5sZW5ndGgrK109eCksdGV9LFUuX3ByaW1lPWZ1bmN0aW9uKHRlKXtpZihrZVt0ZV0pcmV0dXJuIGtlW3RlXTt2YXIgeDtpZigiazI1NiI9PT10ZSl4PW5ldyBJZTtlbHNl''@;'; + put 'put ''IGlmKCJwMjI0Ij09PXRlKXg9bmV3IFRlO2Vsc2UgaWYoInAxOTIiPT09dGUpeD1uZXcgRWU7ZWxzZXtpZigicDI1NTE5IiE9PXRlKXRocm93IG5ldyBFcnJvcigiVW5rbm93biBwcmltZSAiK3RlKTt4PW5ldyBoZX1yZXR1cm4ga2VbdGVdPXgseH0sTy5wcm90b3R5cGUuX3ZlcmlmeTE9ZnVu''@;'; + put 'put ''Y3Rpb24odGUpe0UoMD09PXRlLm5lZ2F0aXZlLCJyZWQgd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlcyIpLEUodGUucmVkLCJyZWQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIil9LE8ucHJvdG90eXBlLl92ZXJpZnkyPWZ1bmN0aW9uKHRlLHgpe0UoMD09KHRlLm5lZ2F0aXZlfHgubmVn''@;'; + put 'put ''YXRpdmUpLCJyZWQgd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlcyIpLEUodGUucmVkJiZ0ZS5yZWQ9PT14LnJlZCwicmVkIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpfSxPLnByb3RvdHlwZS5pbW9kPWZ1bmN0aW9uKHRlKXtyZXR1cm4gdGhpcy5wcmltZT90aGlzLnByaW1lLmlyZWR1''@;'; + put 'put ''Y2UodGUpLl9mb3JjZVJlZCh0aGlzKTooWSh0ZSx0ZS51bW9kKHRoaXMubSkuX2ZvcmNlUmVkKHRoaXMpKSx0ZSl9LE8ucHJvdG90eXBlLm5lZz1mdW5jdGlvbih0ZSl7cmV0dXJuIHRlLmlzWmVybygpP3RlLmNsb25lKCk6dGhpcy5tLnN1Yih0ZSkuX2ZvcmNlUmVkKHRoaXMpfSxPLnByb3Rv''@;'; + put 'put ''dHlwZS5hZGQ9ZnVuY3Rpb24odGUseCl7dGhpcy5fdmVyaWZ5Mih0ZSx4KTt2YXIgUD10ZS5hZGQoeCk7cmV0dXJuIFAuY21wKHRoaXMubSk+PTAmJlAuaXN1Yih0aGlzLm0pLFAuX2ZvcmNlUmVkKHRoaXMpfSxPLnByb3RvdHlwZS5pYWRkPWZ1bmN0aW9uKHRlLHgpe3RoaXMuX3ZlcmlmeTIo''@;'; + put 'put ''dGUseCk7dmFyIFA9dGUuaWFkZCh4KTtyZXR1cm4gUC5jbXAodGhpcy5tKT49MCYmUC5pc3ViKHRoaXMubSksUH0sTy5wcm90b3R5cGUuc3ViPWZ1bmN0aW9uKHRlLHgpe3RoaXMuX3ZlcmlmeTIodGUseCk7dmFyIFA9dGUuc3ViKHgpO3JldHVybiBQLmNtcG4oMCk8MCYmUC5pYWRkKHRoaXMu''@;'; + put 'put ''bSksUC5fZm9yY2VSZWQodGhpcyl9LE8ucHJvdG90eXBlLmlzdWI9ZnVuY3Rpb24odGUseCl7dGhpcy5fdmVyaWZ5Mih0ZSx4KTt2YXIgUD10ZS5pc3ViKHgpO3JldHVybiBQLmNtcG4oMCk8MCYmUC5pYWRkKHRoaXMubSksUH0sTy5wcm90b3R5cGUuc2hsPWZ1bmN0aW9uKHRlLHgpe3JldHVy''@;'; + put 'put ''biB0aGlzLl92ZXJpZnkxKHRlKSx0aGlzLmltb2QodGUudXNobG4oeCkpfSxPLnByb3RvdHlwZS5pbXVsPWZ1bmN0aW9uKHRlLHgpe3JldHVybiB0aGlzLl92ZXJpZnkyKHRlLHgpLHRoaXMuaW1vZCh0ZS5pbXVsKHgpKX0sTy5wcm90b3R5cGUubXVsPWZ1bmN0aW9uKHRlLHgpe3JldHVybiB0''@;'; + put 'put ''aGlzLl92ZXJpZnkyKHRlLHgpLHRoaXMuaW1vZCh0ZS5tdWwoeCkpfSxPLnByb3RvdHlwZS5pc3FyPWZ1bmN0aW9uKHRlKXtyZXR1cm4gdGhpcy5pbXVsKHRlLHRlLmNsb25lKCkpfSxPLnByb3RvdHlwZS5zcXI9ZnVuY3Rpb24odGUpe3JldHVybiB0aGlzLm11bCh0ZSx0ZSl9LE8ucHJvdG90''@;'; + put 'put ''eXBlLnNxcnQ9ZnVuY3Rpb24odGUpe2lmKHRlLmlzWmVybygpKXJldHVybiB0ZS5jbG9uZSgpO3ZhciB4PXRoaXMubS5hbmRsbigzKTtpZihFKHglMj09MSksMz09PXgpe3ZhciBQPXRoaXMubS5hZGQobmV3IFUoMSkpLml1c2hybigyKTtyZXR1cm4gdGhpcy5wb3codGUsUCl9Zm9yKHZhciBW''@;'; + put 'put ''PXRoaXMubS5zdWJuKDEpLFQ9MDshVi5pc1plcm8oKSYmMD09PVYuYW5kbG4oMSk7KVQrKyxWLml1c2hybigxKTtFKCFWLmlzWmVybygpKTt2YXIgUz1uZXcgVSgxKS50b1JlZCh0aGlzKSxGPVMucmVkTmVnKCkseWU9dGhpcy5tLnN1Ym4oMSkuaXVzaHJuKDEpLENlPXRoaXMubS5iaXRMZW5n''@;'; + put 'put ''dGgoKTtmb3IoQ2U9bmV3IFUoMipDZSpDZSkudG9SZWQodGhpcyk7MCE9PXRoaXMucG93KENlLHllKS5jbXAoRik7KUNlLnJlZElBZGQoRik7Zm9yKHZhciBEZT10aGlzLnBvdyhDZSxWKSxQZT10aGlzLnBvdyh0ZSxWLmFkZG4oMSkuaXVzaHJuKDEpKSxRZT10aGlzLnBvdyh0ZSxWKSwkZT1U''@;'; + put 'put ''OzAhPT1RZS5jbXAoUyk7KXtmb3IodmFyIGd0PVFlLHd0PTA7MCE9PWd0LmNtcChTKTt3dCsrKWd0PWd0LnJlZFNxcigpO0Uod3Q8JGUpO3ZhciBtdD10aGlzLnBvdyhEZSxuZXcgVSgxKS5pdXNobG4oJGUtd3QtMSkpO1BlPVBlLnJlZE11bChtdCksRGU9bXQucmVkU3FyKCksUWU9UWUucmVk''@;'; + put 'put ''TXVsKERlKSwkZT13dH1yZXR1cm4gUGV9LE8ucHJvdG90eXBlLmludm09ZnVuY3Rpb24odGUpe3ZhciB4PXRlLl9pbnZtcCh0aGlzLm0pO3JldHVybiAwIT09eC5uZWdhdGl2ZT8oeC5uZWdhdGl2ZT0wLHRoaXMuaW1vZCh4KS5yZWROZWcoKSk6dGhpcy5pbW9kKHgpfSxPLnByb3RvdHlwZS5w''@;'; + put 'put ''b3c9ZnVuY3Rpb24odGUseCl7aWYoeC5pc1plcm8oKSlyZXR1cm4gbmV3IFUoMSkudG9SZWQodGhpcyk7aWYoMD09PXguY21wbigxKSlyZXR1cm4gdGUuY2xvbmUoKTt2YXIgVj1uZXcgQXJyYXkoMTYpO1ZbMF09bmV3IFUoMSkudG9SZWQodGhpcyksVlsxXT10ZTtmb3IodmFyIFQ9MjtUPFYu''@;'; + put 'put ''bGVuZ3RoO1QrKylWW1RdPXRoaXMubXVsKFZbVC0xXSx0ZSk7dmFyIFM9VlswXSxGPTAseWU9MCxDZT14LmJpdExlbmd0aCgpJTI2O2ZvcigwPT09Q2UmJihDZT0yNiksVD14Lmxlbmd0aC0xO1Q+PTA7VC0tKXtmb3IodmFyIERlPXgud29yZHNbVF0sUGU9Q2UtMTtQZT49MDtQZS0tKXt2YXIg''@;'; + put 'put ''UWU9RGU+PlBlJjE7UyE9PVZbMF0mJihTPXRoaXMuc3FyKFMpKSwwIT09UWV8fDAhPT1GPyhGPDw9MSxGfD1RZSwoND09Kyt5ZXx8MD09PVQmJjA9PT1QZSkmJihTPXRoaXMubXVsKFMsVltGXSkseWU9MCxGPTApKTp5ZT0wfUNlPTI2fXJldHVybiBTfSxPLnByb3RvdHlwZS5jb252ZXJ0VG89''@;'; + put 'put ''ZnVuY3Rpb24odGUpe3ZhciB4PXRlLnVtb2QodGhpcy5tKTtyZXR1cm4geD09PXRlP3guY2xvbmUoKTp4fSxPLnByb3RvdHlwZS5jb252ZXJ0RnJvbT1mdW5jdGlvbih0ZSl7dmFyIHg9dGUuY2xvbmUoKTtyZXR1cm4geC5yZWQ9bnVsbCx4fSxVLm1vbnQ9ZnVuY3Rpb24odGUpe3JldHVybiBu''@;'; + put 'put ''ZXcgeih0ZSl9LE1lKHosTyksei5wcm90b3R5cGUuY29udmVydFRvPWZ1bmN0aW9uKHRlKXtyZXR1cm4gdGhpcy5pbW9kKHRlLnVzaGxuKHRoaXMuc2hpZnQpKX0sei5wcm90b3R5cGUuY29udmVydEZyb209ZnVuY3Rpb24odGUpe3ZhciB4PXRoaXMuaW1vZCh0ZS5tdWwodGhpcy5yaW52KSk7''@;'; + put 'put ''cmV0dXJuIHgucmVkPW51bGwseH0sei5wcm90b3R5cGUuaW11bD1mdW5jdGlvbih0ZSx4KXtpZih0ZS5pc1plcm8oKXx8eC5pc1plcm8oKSlyZXR1cm4gdGUud29yZHNbMF09MCx0ZS5sZW5ndGg9MSx0ZTt2YXIgUD10ZS5pbXVsKHgpLFY9UC5tYXNrbih0aGlzLnNoaWZ0KS5tdWwodGhpcy5t''@;'; + put 'put ''aW52KS5pbWFza24odGhpcy5zaGlmdCkubXVsKHRoaXMubSksVD1QLmlzdWIoVikuaXVzaHJuKHRoaXMuc2hpZnQpLFM9VDtyZXR1cm4gVC5jbXAodGhpcy5tKT49MD9TPVQuaXN1Yih0aGlzLm0pOlQuY21wbigwKTwwJiYoUz1ULmlhZGQodGhpcy5tKSksUy5fZm9yY2VSZWQodGhpcyl9LHou''@;'; + put 'put ''cHJvdG90eXBlLm11bD1mdW5jdGlvbih0ZSx4KXtpZih0ZS5pc1plcm8oKXx8eC5pc1plcm8oKSlyZXR1cm4gbmV3IFUoMCkuX2ZvcmNlUmVkKHRoaXMpO3ZhciBQPXRlLm11bCh4KSxWPVAubWFza24odGhpcy5zaGlmdCkubXVsKHRoaXMubWludikuaW1hc2tuKHRoaXMuc2hpZnQpLm11bCh0''@;'; + put 'put ''aGlzLm0pLFQ9UC5pc3ViKFYpLml1c2hybih0aGlzLnNoaWZ0KSxTPVQ7cmV0dXJuIFQuY21wKHRoaXMubSk+PTA/Uz1ULmlzdWIodGhpcy5tKTpULmNtcG4oMCk8MCYmKFM9VC5pYWRkKHRoaXMubSkpLFMuX2ZvcmNlUmVkKHRoaXMpfSx6LnByb3RvdHlwZS5pbnZtPWZ1bmN0aW9uKHRlKXty''@;'; + put 'put ''ZXR1cm4gdGhpcy5pbW9kKHRlLl9pbnZtcCh0aGlzLm0pLm11bCh0aGlzLnIyKSkuX2ZvcmNlUmVkKHRoaXMpfX0oWGU9TC5ubWQoWGUpLHRoaXMpfSwzNzk1MDooWGUsSmUsTCk9Pnt2YXIgbWU7ZnVuY3Rpb24gQihNZSl7dGhpcy5yYW5kPU1lfWlmKFhlLmV4cG9ydHM9ZnVuY3Rpb24oVSl7''@;'; + put 'put ''cmV0dXJuIG1lfHwobWU9bmV3IEIobnVsbCkpLG1lLmdlbmVyYXRlKFUpfSxYZS5leHBvcnRzLlJhbmQ9QixCLnByb3RvdHlwZS5nZW5lcmF0ZT1mdW5jdGlvbihVKXtyZXR1cm4gdGhpcy5fcmFuZChVKX0sQi5wcm90b3R5cGUuX3JhbmQ9ZnVuY3Rpb24oVSl7aWYodGhpcy5yYW5kLmdldEJ5''@;'; + put 'put ''dGVzKXJldHVybiB0aGlzLnJhbmQuZ2V0Qnl0ZXMoVSk7Zm9yKHZhciBRPW5ldyBVaW50OEFycmF5KFUpLFo9MDtaPFEubGVuZ3RoO1orKylRW1pdPXRoaXMucmFuZC5nZXRCeXRlKCk7cmV0dXJuIFF9LCJvYmplY3QiPT10eXBlb2Ygc2VsZilzZWxmLmNyeXB0byYmc2VsZi5jcnlwdG8uZ2V0''@;'; + put 'put ''UmFuZG9tVmFsdWVzP0IucHJvdG90eXBlLl9yYW5kPWZ1bmN0aW9uKFUpe3ZhciBRPW5ldyBVaW50OEFycmF5KFUpO3JldHVybiBzZWxmLmNyeXB0by5nZXRSYW5kb21WYWx1ZXMoUSksUX06c2VsZi5tc0NyeXB0byYmc2VsZi5tc0NyeXB0by5nZXRSYW5kb21WYWx1ZXM/Qi5wcm90b3R5cGUu''@;'; + put 'put ''X3JhbmQ9ZnVuY3Rpb24oVSl7dmFyIFE9bmV3IFVpbnQ4QXJyYXkoVSk7cmV0dXJuIHNlbGYubXNDcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKFEpLFF9OiJvYmplY3QiPT10eXBlb2Ygd2luZG93JiYoQi5wcm90b3R5cGUuX3JhbmQ9ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoIk5vdCBpbXBs''@;'; + put 'put ''ZW1lbnRlZCB5ZXQiKX0pO2Vsc2UgdHJ5e3ZhciBFPUwoNDEzNDgpO2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBFLnJhbmRvbUJ5dGVzKXRocm93IG5ldyBFcnJvcigiTm90IHN1cHBvcnRlZCIpO0IucHJvdG90eXBlLl9yYW5kPWZ1bmN0aW9uKFUpe3JldHVybiBFLnJhbmRvbUJ5dGVzKFUpfX1j''@;'; + put 'put ''YXRjaChNZSl7fX0sNDE4OTk6KFhlLEplLEwpPT57dmFyIG1lPUwoNzM1MDIpLkJ1ZmZlcjtmdW5jdGlvbiBCKGllKXttZS5pc0J1ZmZlcihpZSl8fChpZT1tZS5mcm9tKGllKSk7Zm9yKHZhciBhZT1pZS5sZW5ndGgvNHwwLFk9bmV3IEFycmF5KGFlKSxXPTA7VzxhZTtXKyspWVtXXT1pZS5y''@;'; + put 'put ''ZWFkVUludDMyQkUoNCpXKTtyZXR1cm4gWX1mdW5jdGlvbiBFKGllKXtmb3IoOzA8aWUubGVuZ3RoO2llKyspaWVbMF09MH1mdW5jdGlvbiBNZShpZSxhZSxZLFcsTil7Zm9yKHZhciBBZSxrZSxTZSxJZSxlZT1ZWzBdLHE9WVsxXSxKPVlbMl0sc2U9WVszXSxvZT1pZVswXV5hZVswXSxjZT1p''@;'; + put 'put ''ZVsxXV5hZVsxXSxkZT1pZVsyXV5hZVsyXSx2ZT1pZVszXV5hZVszXSxUZT00LEVlPTE7RWU8TjtFZSsrKUFlPWVlW29lPj4+MjRdXnFbY2U+Pj4xNiYyNTVdXkpbZGU+Pj44JjI1NV1ec2VbMjU1JnZlXV5hZVtUZSsrXSxrZT1lZVtjZT4+PjI0XV5xW2RlPj4+MTYmMjU1XV5KW3ZlPj4+OCYy''@;'; + put 'put ''NTVdXnNlWzI1NSZvZV1eYWVbVGUrK10sU2U9ZWVbZGU+Pj4yNF1ecVt2ZT4+PjE2JjI1NV1eSltvZT4+PjgmMjU1XV5zZVsyNTUmY2VdXmFlW1RlKytdLEllPWVlW3ZlPj4+MjRdXnFbb2U+Pj4xNiYyNTVdXkpbY2U+Pj44JjI1NV1ec2VbMjU1JmRlXV5hZVtUZSsrXSxvZT1BZSxjZT1rZSxk''@;'; + put 'put ''ZT1TZSx2ZT1JZTtyZXR1cm4gQWU9KFdbb2U+Pj4yNF08PDI0fFdbY2U+Pj4xNiYyNTVdPDwxNnxXW2RlPj4+OCYyNTVdPDw4fFdbMjU1JnZlXSleYWVbVGUrK10sa2U9KFdbY2U+Pj4yNF08PDI0fFdbZGU+Pj4xNiYyNTVdPDwxNnxXW3ZlPj4+OCYyNTVdPDw4fFdbMjU1Jm9lXSleYWVbVGUr''@;'; + put 'put ''K10sU2U9KFdbZGU+Pj4yNF08PDI0fFdbdmU+Pj4xNiYyNTVdPDwxNnxXW29lPj4+OCYyNTVdPDw4fFdbMjU1JmNlXSleYWVbVGUrK10sSWU9KFdbdmU+Pj4yNF08PDI0fFdbb2U+Pj4xNiYyNTVdPDwxNnxXW2NlPj4+OCYyNTVdPDw4fFdbMjU1JmRlXSleYWVbVGUrK10sW0FlPj4+PTAsa2U+''@;'; + put 'put ''Pj49MCxTZT4+Pj0wLEllPj4+PTBdfXZhciBVPVswLDEsMiw0LDgsMTYsMzIsNjQsMTI4LDI3LDU0XSxRPWZ1bmN0aW9uKCl7Zm9yKHZhciBpZT1uZXcgQXJyYXkoMjU2KSxhZT0wO2FlPDI1NjthZSsrKWllW2FlXT1hZTwxMjg/YWU8PDE6YWU8PDFeMjgzO2Zvcih2YXIgWT1bXSxXPVtdLE49''@;'; + put 'put ''W1tdLFtdLFtdLFtdXSxlZT1bW10sW10sW10sW11dLHE9MCxKPTAsc2U9MDtzZTwyNTY7KytzZSl7dmFyIG9lPUpeSjw8MV5KPDwyXko8PDNeSjw8NDtZW3FdPW9lPW9lPj4+OF4yNTUmb2VeOTksV1tvZV09cTt2YXIgY2U9aWVbcV0sZGU9aWVbY2VdLHZlPWllW2RlXSxBZT0yNTcqaWVbb2Vd''@;'; + put 'put ''XjE2ODQzMDA4Km9lO05bMF1bcV09QWU8PDI0fEFlPj4+OCxOWzFdW3FdPUFlPDwxNnxBZT4+PjE2LE5bMl1bcV09QWU8PDh8QWU+Pj4yNCxOWzNdW3FdPUFlLGVlWzBdW29lXT0oQWU9MTY4NDMwMDkqdmVeNjU1MzcqZGVeMjU3KmNlXjE2ODQzMDA4KnEpPDwyNHxBZT4+PjgsZWVbMV1bb2Vd''@;'; + put 'put ''PUFlPDwxNnxBZT4+PjE2LGVlWzJdW29lXT1BZTw8OHxBZT4+PjI0LGVlWzNdW29lXT1BZSwwPT09cT9xPUo9MToocT1jZV5pZVtpZVtpZVt2ZV5jZV1dXSxKXj1pZVtpZVtKXV0pfXJldHVybntTQk9YOlksSU5WX1NCT1g6VyxTVUJfTUlYOk4sSU5WX1NVQl9NSVg6ZWV9fSgpO2Z1bmN0aW9u''@;'; + put 'put ''IFooaWUpe3RoaXMuX2tleT1CKGllKSx0aGlzLl9yZXNldCgpfVouYmxvY2tTaXplPTE2LFoua2V5U2l6ZT0zMixaLnByb3RvdHlwZS5ibG9ja1NpemU9Wi5ibG9ja1NpemUsWi5wcm90b3R5cGUua2V5U2l6ZT1aLmtleVNpemUsWi5wcm90b3R5cGUuX3Jlc2V0PWZ1bmN0aW9uKCl7Zm9yKHZh''@;'; + put 'put ''ciBpZT10aGlzLl9rZXksYWU9aWUubGVuZ3RoLFk9YWUrNixXPTQqKFkrMSksTj1bXSxlZT0wO2VlPGFlO2VlKyspTltlZV09aWVbZWVdO2ZvcihlZT1hZTtlZTxXO2VlKyspe3ZhciBxPU5bZWUtMV07ZWUlYWU9PTA/KHE9US5TQk9YWyhxPXE8PDh8cT4+PjI0KT4+PjI0XTw8MjR8US5TQk9Y''@;'; + put 'put ''W3E+Pj4xNiYyNTVdPDwxNnxRLlNCT1hbcT4+PjgmMjU1XTw8OHxRLlNCT1hbMjU1JnFdLHFePVVbZWUvYWV8MF08PDI0KTphZT42JiZlZSVhZT09NCYmKHE9US5TQk9YW3E+Pj4yNF08PDI0fFEuU0JPWFtxPj4+MTYmMjU1XTw8MTZ8US5TQk9YW3E+Pj44JjI1NV08PDh8US5TQk9YWzI1NSZx''@;'; + put 'put ''XSksTltlZV09TltlZS1hZV1ecX1mb3IodmFyIEo9W10sc2U9MDtzZTxXO3NlKyspe3ZhciBvZT1XLXNlLGNlPU5bb2UtKHNlJTQ/MDo0KV07SltzZV09c2U8NHx8b2U8PTQ/Y2U6US5JTlZfU1VCX01JWFswXVtRLlNCT1hbY2U+Pj4yNF1dXlEuSU5WX1NVQl9NSVhbMV1bUS5TQk9YW2NlPj4+''@;'; + put 'put ''MTYmMjU1XV1eUS5JTlZfU1VCX01JWFsyXVtRLlNCT1hbY2U+Pj44JjI1NV1dXlEuSU5WX1NVQl9NSVhbM11bUS5TQk9YWzI1NSZjZV1dfXRoaXMuX25Sb3VuZHM9WSx0aGlzLl9rZXlTY2hlZHVsZT1OLHRoaXMuX2ludktleVNjaGVkdWxlPUp9LFoucHJvdG90eXBlLmVuY3J5cHRCbG9ja1Jh''@;'; + put 'put ''dz1mdW5jdGlvbihpZSl7cmV0dXJuIE1lKGllPUIoaWUpLHRoaXMuX2tleVNjaGVkdWxlLFEuU1VCX01JWCxRLlNCT1gsdGhpcy5fblJvdW5kcyl9LFoucHJvdG90eXBlLmVuY3J5cHRCbG9jaz1mdW5jdGlvbihpZSl7dmFyIGFlPXRoaXMuZW5jcnlwdEJsb2NrUmF3KGllKSxZPW1lLmFsbG9j''@;'; + put 'put ''VW5zYWZlKDE2KTtyZXR1cm4gWS53cml0ZVVJbnQzMkJFKGFlWzBdLDApLFkud3JpdGVVSW50MzJCRShhZVsxXSw0KSxZLndyaXRlVUludDMyQkUoYWVbMl0sOCksWS53cml0ZVVJbnQzMkJFKGFlWzNdLDEyKSxZfSxaLnByb3RvdHlwZS5kZWNyeXB0QmxvY2s9ZnVuY3Rpb24oaWUpe3ZhciBh''@;'; + put 'put ''ZT0oaWU9QihpZSkpWzFdO2llWzFdPWllWzNdLGllWzNdPWFlO3ZhciBZPU1lKGllLHRoaXMuX2ludktleVNjaGVkdWxlLFEuSU5WX1NVQl9NSVgsUS5JTlZfU0JPWCx0aGlzLl9uUm91bmRzKSxXPW1lLmFsbG9jVW5zYWZlKDE2KTtyZXR1cm4gVy53cml0ZVVJbnQzMkJFKFlbMF0sMCksVy53''@;'; + put 'put ''cml0ZVVJbnQzMkJFKFlbM10sNCksVy53cml0ZVVJbnQzMkJFKFlbMl0sOCksVy53cml0ZVVJbnQzMkJFKFlbMV0sMTIpLFd9LFoucHJvdG90eXBlLnNjcnViPWZ1bmN0aW9uKCl7RSh0aGlzLl9rZXlTY2hlZHVsZSksRSh0aGlzLl9pbnZLZXlTY2hlZHVsZSksRSh0aGlzLl9rZXkpfSxYZS5l''@;'; + put 'put ''eHBvcnRzLkFFUz1afSw2OTM4MjooWGUsSmUsTCk9Pnt2YXIgbWU9TCg0MTg5OSksQj1MKDczNTAyKS5CdWZmZXIsRT1MKDYxMDUyKSxNZT1MKDgzODk0KSxVPUwoNjg4NTcpLFE9TCg1ODc4OSksWj1MKDc5NjgpO2Z1bmN0aW9uIFkoVyxOLGVlLHEpe0UuY2FsbCh0aGlzKTt2YXIgSj1CLmFs''@;'; + put 'put ''bG9jKDQsMCk7dGhpcy5fY2lwaGVyPW5ldyBtZS5BRVMoTik7dmFyIHNlPXRoaXMuX2NpcGhlci5lbmNyeXB0QmxvY2soSik7dGhpcy5fZ2hhc2g9bmV3IFUoc2UpLGVlPWZ1bmN0aW9uIGFlKFcsTixlZSl7aWYoMTI9PT1OLmxlbmd0aClyZXR1cm4gVy5fZmluSUQ9Qi5jb25jYXQoW04sQi5m''@;'; + put 'put ''cm9tKFswLDAsMCwxXSldKSxCLmNvbmNhdChbTixCLmZyb20oWzAsMCwwLDJdKV0pO3ZhciBxPW5ldyBVKGVlKSxKPU4ubGVuZ3RoLHNlPUolMTY7cS51cGRhdGUoTiksc2UmJnEudXBkYXRlKEIuYWxsb2Moc2U9MTYtc2UsMCkpLHEudXBkYXRlKEIuYWxsb2MoOCwwKSk7dmFyIG9lPTgqSixj''@;'; + put 'put ''ZT1CLmFsbG9jKDgpO2NlLndyaXRlVUludEJFKG9lLDAsOCkscS51cGRhdGUoY2UpLFcuX2ZpbklEPXEuc3RhdGU7dmFyIGRlPUIuZnJvbShXLl9maW5JRCk7cmV0dXJuIFooZGUpLGRlfSh0aGlzLGVlLHNlKSx0aGlzLl9wcmV2PUIuZnJvbShlZSksdGhpcy5fY2FjaGU9Qi5hbGxvY1Vuc2Fm''@;'; + put 'put ''ZSgwKSx0aGlzLl9zZWNDYWNoZT1CLmFsbG9jVW5zYWZlKDApLHRoaXMuX2RlY3J5cHQ9cSx0aGlzLl9hbGVuPTAsdGhpcy5fbGVuPTAsdGhpcy5fbW9kZT1XLHRoaXMuX2F1dGhUYWc9bnVsbCx0aGlzLl9jYWxsZWQ9ITF9TWUoWSxFKSxZLnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKFcp''@;'; + put 'put ''e2lmKCF0aGlzLl9jYWxsZWQmJnRoaXMuX2FsZW4pe3ZhciBOPTE2LXRoaXMuX2FsZW4lMTY7TjwxNiYmKE49Qi5hbGxvYyhOLDApLHRoaXMuX2doYXNoLnVwZGF0ZShOKSl9dGhpcy5fY2FsbGVkPSEwO3ZhciBlZT10aGlzLl9tb2RlLmVuY3J5cHQodGhpcyxXKTtyZXR1cm4gdGhpcy5fZ2hh''@;'; + put 'put ''c2gudXBkYXRlKHRoaXMuX2RlY3J5cHQ/VzplZSksdGhpcy5fbGVuKz1XLmxlbmd0aCxlZX0sWS5wcm90b3R5cGUuX2ZpbmFsPWZ1bmN0aW9uKCl7aWYodGhpcy5fZGVjcnlwdCYmIXRoaXMuX2F1dGhUYWcpdGhyb3cgbmV3IEVycm9yKCJVbnN1cHBvcnRlZCBzdGF0ZSBvciB1bmFibGUgdG8g''@;'; + put 'put ''YXV0aGVudGljYXRlIGRhdGEiKTt2YXIgVz1RKHRoaXMuX2doYXNoLmZpbmFsKDgqdGhpcy5fYWxlbiw4KnRoaXMuX2xlbiksdGhpcy5fY2lwaGVyLmVuY3J5cHRCbG9jayh0aGlzLl9maW5JRCkpO2lmKHRoaXMuX2RlY3J5cHQmJmZ1bmN0aW9uIGllKFcsTil7dmFyIGVlPTA7Vy5sZW5ndGgh''@;'; + put 'put ''PT1OLmxlbmd0aCYmZWUrKztmb3IodmFyIHE9TWF0aC5taW4oVy5sZW5ndGgsTi5sZW5ndGgpLEo9MDtKPHE7KytKKWVlKz1XW0pdXk5bSl07cmV0dXJuIGVlfShXLHRoaXMuX2F1dGhUYWcpKXRocm93IG5ldyBFcnJvcigiVW5zdXBwb3J0ZWQgc3RhdGUgb3IgdW5hYmxlIHRvIGF1dGhlbnRp''@;'; + put 'put ''Y2F0ZSBkYXRhIik7dGhpcy5fYXV0aFRhZz1XLHRoaXMuX2NpcGhlci5zY3J1YigpfSxZLnByb3RvdHlwZS5nZXRBdXRoVGFnPWZ1bmN0aW9uKCl7aWYodGhpcy5fZGVjcnlwdHx8IUIuaXNCdWZmZXIodGhpcy5fYXV0aFRhZykpdGhyb3cgbmV3IEVycm9yKCJBdHRlbXB0aW5nIHRvIGdldCBh''@;'; + put 'put ''dXRoIHRhZyBpbiB1bnN1cHBvcnRlZCBzdGF0ZSIpO3JldHVybiB0aGlzLl9hdXRoVGFnfSxZLnByb3RvdHlwZS5zZXRBdXRoVGFnPWZ1bmN0aW9uKE4pe2lmKCF0aGlzLl9kZWNyeXB0KXRocm93IG5ldyBFcnJvcigiQXR0ZW1wdGluZyB0byBzZXQgYXV0aCB0YWcgaW4gdW5zdXBwb3J0ZWQg''@;'; + put 'put ''c3RhdGUiKTt0aGlzLl9hdXRoVGFnPU59LFkucHJvdG90eXBlLnNldEFBRD1mdW5jdGlvbihOKXtpZih0aGlzLl9jYWxsZWQpdGhyb3cgbmV3IEVycm9yKCJBdHRlbXB0aW5nIHRvIHNldCBBQUQgaW4gdW5zdXBwb3J0ZWQgc3RhdGUiKTt0aGlzLl9naGFzaC51cGRhdGUoTiksdGhpcy5fYWxl''@;'; + put 'put ''bis9Ti5sZW5ndGh9LFhlLmV4cG9ydHM9WX0sODQzMzA6KFhlLEplLEwpPT57dmFyIG1lPUwoOTY5MDApLEI9TCgzNDQ0MiksRT1MKDQ0OTQ2KTtKZS5jcmVhdGVDaXBoZXI9SmUuQ2lwaGVyPW1lLmNyZWF0ZUNpcGhlcixKZS5jcmVhdGVDaXBoZXJpdj1KZS5DaXBoZXJpdj1tZS5jcmVhdGVD''@;'; + put 'put ''aXBoZXJpdixKZS5jcmVhdGVEZWNpcGhlcj1KZS5EZWNpcGhlcj1CLmNyZWF0ZURlY2lwaGVyLEplLmNyZWF0ZURlY2lwaGVyaXY9SmUuRGVjaXBoZXJpdj1CLmNyZWF0ZURlY2lwaGVyaXYsSmUubGlzdENpcGhlcnM9SmUuZ2V0Q2lwaGVycz1mdW5jdGlvbiBNZSgpe3JldHVybiBPYmplY3Qu''@;'; + put 'put ''a2V5cyhFKX19LDM0NDQyOihYZSxKZSxMKT0+e3ZhciBtZT1MKDY5MzgyKSxCPUwoNzM1MDIpLkJ1ZmZlcixFPUwoMjkxNzEpLE1lPUwoMzg0NDEpLFU9TCg2MTA1MiksUT1MKDQxODk5KSxaPUwoNDAzNDcpO2Z1bmN0aW9uIGFlKHEsSixzZSl7VS5jYWxsKHRoaXMpLHRoaXMuX2NhY2hlPW5l''@;'; + put 'put ''dyBZLHRoaXMuX2xhc3Q9dm9pZCAwLHRoaXMuX2NpcGhlcj1uZXcgUS5BRVMoSiksdGhpcy5fcHJldj1CLmZyb20oc2UpLHRoaXMuX21vZGU9cSx0aGlzLl9hdXRvcGFkZGluZz0hMH1mdW5jdGlvbiBZKCl7dGhpcy5jYWNoZT1CLmFsbG9jVW5zYWZlKDApfWZ1bmN0aW9uIE4ocSxKLHNlKXt2''@;'; + put 'put ''YXIgb2U9RVtxLnRvTG93ZXJDYXNlKCldO2lmKCFvZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJpbnZhbGlkIHN1aXRlIHR5cGUiKTtpZigic3RyaW5nIj09dHlwZW9mIHNlJiYoc2U9Qi5mcm9tKHNlKSksIkdDTSIhPT1vZS5tb2RlJiZzZS5sZW5ndGghPT1vZS5pdil0aHJvdyBuZXcgVHlwZUVy''@;'; + put 'put ''cm9yKCJpbnZhbGlkIGl2IGxlbmd0aCAiK3NlLmxlbmd0aCk7aWYoInN0cmluZyI9PXR5cGVvZiBKJiYoSj1CLmZyb20oSikpLEoubGVuZ3RoIT09b2Uua2V5LzgpdGhyb3cgbmV3IFR5cGVFcnJvcigiaW52YWxpZCBrZXkgbGVuZ3RoICIrSi5sZW5ndGgpO3JldHVybiJzdHJlYW0iPT09b2Uu''@;'; + put 'put ''dHlwZT9uZXcgTWUob2UubW9kdWxlLEosc2UsITApOiJhdXRoIj09PW9lLnR5cGU/bmV3IG1lKG9lLm1vZHVsZSxKLHNlLCEwKTpuZXcgYWUob2UubW9kdWxlLEosc2UpfUwoODM4OTQpKGFlLFUpLGFlLnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKHEpe3RoaXMuX2NhY2hlLmFkZChxKTtm''@;'; + put 'put ''b3IodmFyIEosc2Usb2U9W107Sj10aGlzLl9jYWNoZS5nZXQodGhpcy5fYXV0b3BhZGRpbmcpOylzZT10aGlzLl9tb2RlLmRlY3J5cHQodGhpcyxKKSxvZS5wdXNoKHNlKTtyZXR1cm4gQi5jb25jYXQob2UpfSxhZS5wcm90b3R5cGUuX2ZpbmFsPWZ1bmN0aW9uKCl7dmFyIHE9dGhpcy5fY2Fj''@;'; + put 'put ''aGUuZmx1c2goKTtpZih0aGlzLl9hdXRvcGFkZGluZylyZXR1cm4gZnVuY3Rpb24gVyhxKXt2YXIgSj1xWzE1XTtpZihKPDF8fEo+MTYpdGhyb3cgbmV3IEVycm9yKCJ1bmFibGUgdG8gZGVjcnlwdCBkYXRhIik7Zm9yKHZhciBzZT0tMTsrK3NlPEo7KWlmKHFbc2UrKDE2LUopXSE9PUopdGhy''@;'; + put 'put ''b3cgbmV3IEVycm9yKCJ1bmFibGUgdG8gZGVjcnlwdCBkYXRhIik7aWYoMTYhPT1KKXJldHVybiBxLnNsaWNlKDAsMTYtSil9KHRoaXMuX21vZGUuZGVjcnlwdCh0aGlzLHEpKTtpZihxKXRocm93IG5ldyBFcnJvcigiZGF0YSBub3QgbXVsdGlwbGUgb2YgYmxvY2sgbGVuZ3RoIil9LGFlLnBy''@;'; + put 'put ''b3RvdHlwZS5zZXRBdXRvUGFkZGluZz1mdW5jdGlvbihxKXtyZXR1cm4gdGhpcy5fYXV0b3BhZGRpbmc9ISFxLHRoaXN9LFkucHJvdG90eXBlLmFkZD1mdW5jdGlvbihxKXt0aGlzLmNhY2hlPUIuY29uY2F0KFt0aGlzLmNhY2hlLHFdKX0sWS5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKHEpe3Zh''@;'; + put 'put ''ciBKO2lmKHEpe2lmKHRoaXMuY2FjaGUubGVuZ3RoPjE2KXJldHVybiBKPXRoaXMuY2FjaGUuc2xpY2UoMCwxNiksdGhpcy5jYWNoZT10aGlzLmNhY2hlLnNsaWNlKDE2KSxKfWVsc2UgaWYodGhpcy5jYWNoZS5sZW5ndGg+PTE2KXJldHVybiBKPXRoaXMuY2FjaGUuc2xpY2UoMCwxNiksdGhp''@;'; + put 'put ''cy5jYWNoZT10aGlzLmNhY2hlLnNsaWNlKDE2KSxKO3JldHVybiBudWxsfSxZLnByb3RvdHlwZS5mbHVzaD1mdW5jdGlvbigpe2lmKHRoaXMuY2FjaGUubGVuZ3RoKXJldHVybiB0aGlzLmNhY2hlfSxKZS5jcmVhdGVEZWNpcGhlcj1mdW5jdGlvbiBlZShxLEope3ZhciBzZT1FW3EudG9Mb3dl''@;'; + put 'put ''ckNhc2UoKV07aWYoIXNlKXRocm93IG5ldyBUeXBlRXJyb3IoImludmFsaWQgc3VpdGUgdHlwZSIpO3ZhciBvZT1aKEosITEsc2Uua2V5LHNlLml2KTtyZXR1cm4gTihxLG9lLmtleSxvZS5pdil9LEplLmNyZWF0ZURlY2lwaGVyaXY9Tn0sOTY5MDA6KFhlLEplLEwpPT57dmFyIG1lPUwoMjkx''@;'; + put 'put ''NzEpLEI9TCg2OTM4MiksRT1MKDczNTAyKS5CdWZmZXIsTWU9TCgzODQ0MSksVT1MKDYxMDUyKSxRPUwoNDE4OTkpLFo9TCg0MDM0Nyk7ZnVuY3Rpb24gYWUocSxKLHNlKXtVLmNhbGwodGhpcyksdGhpcy5fY2FjaGU9bmV3IFcsdGhpcy5fY2lwaGVyPW5ldyBRLkFFUyhKKSx0aGlzLl9wcmV2''@;'; + put 'put ''PUUuZnJvbShzZSksdGhpcy5fbW9kZT1xLHRoaXMuX2F1dG9wYWRkaW5nPSEwfUwoODM4OTQpKGFlLFUpLGFlLnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKHEpe3RoaXMuX2NhY2hlLmFkZChxKTtmb3IodmFyIEosc2Usb2U9W107Sj10aGlzLl9jYWNoZS5nZXQoKTspc2U9dGhpcy5fbW9k''@;'; + put 'put ''ZS5lbmNyeXB0KHRoaXMsSiksb2UucHVzaChzZSk7cmV0dXJuIEUuY29uY2F0KG9lKX07dmFyIFk9RS5hbGxvYygxNiwxNik7ZnVuY3Rpb24gVygpe3RoaXMuY2FjaGU9RS5hbGxvY1Vuc2FmZSgwKX1mdW5jdGlvbiBOKHEsSixzZSl7dmFyIG9lPW1lW3EudG9Mb3dlckNhc2UoKV07aWYoIW9l''@;'; + put 'put ''KXRocm93IG5ldyBUeXBlRXJyb3IoImludmFsaWQgc3VpdGUgdHlwZSIpO2lmKCJzdHJpbmciPT10eXBlb2YgSiYmKEo9RS5mcm9tKEopKSxKLmxlbmd0aCE9PW9lLmtleS84KXRocm93IG5ldyBUeXBlRXJyb3IoImludmFsaWQga2V5IGxlbmd0aCAiK0oubGVuZ3RoKTtpZigic3RyaW5nIj09''@;'; + put 'put ''dHlwZW9mIHNlJiYoc2U9RS5mcm9tKHNlKSksIkdDTSIhPT1vZS5tb2RlJiZzZS5sZW5ndGghPT1vZS5pdil0aHJvdyBuZXcgVHlwZUVycm9yKCJpbnZhbGlkIGl2IGxlbmd0aCAiK3NlLmxlbmd0aCk7cmV0dXJuInN0cmVhbSI9PT1vZS50eXBlP25ldyBNZShvZS5tb2R1bGUsSixzZSk6ImF1''@;'; + put 'put ''dGgiPT09b2UudHlwZT9uZXcgQihvZS5tb2R1bGUsSixzZSk6bmV3IGFlKG9lLm1vZHVsZSxKLHNlKX1hZS5wcm90b3R5cGUuX2ZpbmFsPWZ1bmN0aW9uKCl7dmFyIHE9dGhpcy5fY2FjaGUuZmx1c2goKTtpZih0aGlzLl9hdXRvcGFkZGluZylyZXR1cm4gcT10aGlzLl9tb2RlLmVuY3J5cHQo''@;'; + put 'put ''dGhpcyxxKSx0aGlzLl9jaXBoZXIuc2NydWIoKSxxO2lmKCFxLmVxdWFscyhZKSl0aHJvdyB0aGlzLl9jaXBoZXIuc2NydWIoKSxuZXcgRXJyb3IoImRhdGEgbm90IG11bHRpcGxlIG9mIGJsb2NrIGxlbmd0aCIpfSxhZS5wcm90b3R5cGUuc2V0QXV0b1BhZGRpbmc9ZnVuY3Rpb24ocSl7cmV0''@;'; + put 'put ''dXJuIHRoaXMuX2F1dG9wYWRkaW5nPSEhcSx0aGlzfSxXLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24ocSl7dGhpcy5jYWNoZT1FLmNvbmNhdChbdGhpcy5jYWNoZSxxXSl9LFcucHJvdG90eXBlLmdldD1mdW5jdGlvbigpe2lmKHRoaXMuY2FjaGUubGVuZ3RoPjE1KXt2YXIgcT10aGlzLmNhY2hl''@;'; + put 'put ''LnNsaWNlKDAsMTYpO3JldHVybiB0aGlzLmNhY2hlPXRoaXMuY2FjaGUuc2xpY2UoMTYpLHF9cmV0dXJuIG51bGx9LFcucHJvdG90eXBlLmZsdXNoPWZ1bmN0aW9uKCl7Zm9yKHZhciBxPTE2LXRoaXMuY2FjaGUubGVuZ3RoLEo9RS5hbGxvY1Vuc2FmZShxKSxzZT0tMTsrK3NlPHE7KUoud3Jp''@;'; + put 'put ''dGVVSW50OChxLHNlKTtyZXR1cm4gRS5jb25jYXQoW3RoaXMuY2FjaGUsSl0pfSxKZS5jcmVhdGVDaXBoZXJpdj1OLEplLmNyZWF0ZUNpcGhlcj1mdW5jdGlvbiBlZShxLEope3ZhciBzZT1tZVtxLnRvTG93ZXJDYXNlKCldO2lmKCFzZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJpbnZhbGlkIHN1''@;'; + put 'put ''aXRlIHR5cGUiKTt2YXIgb2U9WihKLCExLHNlLmtleSxzZS5pdik7cmV0dXJuIE4ocSxvZS5rZXksb2UuaXYpfX0sNjg4NTc6KFhlLEplLEwpPT57dmFyIG1lPUwoNzM1MDIpLkJ1ZmZlcixCPW1lLmFsbG9jKDE2LDApO2Z1bmN0aW9uIE1lKFEpe3ZhciBaPW1lLmFsbG9jVW5zYWZlKDE2KTty''@;'; + put 'put ''ZXR1cm4gWi53cml0ZVVJbnQzMkJFKFFbMF0+Pj4wLDApLFoud3JpdGVVSW50MzJCRShRWzFdPj4+MCw0KSxaLndyaXRlVUludDMyQkUoUVsyXT4+PjAsOCksWi53cml0ZVVJbnQzMkJFKFFbM10+Pj4wLDEyKSxafWZ1bmN0aW9uIFUoUSl7dGhpcy5oPVEsdGhpcy5zdGF0ZT1tZS5hbGxvYygx''@;'; + put 'put ''NiwwKSx0aGlzLmNhY2hlPW1lLmFsbG9jVW5zYWZlKDApfVUucHJvdG90eXBlLmdoYXNoPWZ1bmN0aW9uKFEpe2Zvcih2YXIgWj0tMTsrK1o8US5sZW5ndGg7KXRoaXMuc3RhdGVbWl1ePVFbWl07dGhpcy5fbXVsdGlwbHkoKX0sVS5wcm90b3R5cGUuX211bHRpcGx5PWZ1bmN0aW9uKCl7Zm9y''@;'; + put 'put ''KHZhciBpZSxZLFE9ZnVuY3Rpb24gRShRKXtyZXR1cm5bUS5yZWFkVUludDMyQkUoMCksUS5yZWFkVUludDMyQkUoNCksUS5yZWFkVUludDMyQkUoOCksUS5yZWFkVUludDMyQkUoMTIpXX0odGhpcy5oKSxaPVswLDAsMCwwXSxXPS0xOysrVzwxMjg7KXtmb3IoMCE9KHRoaXMuc3RhdGVbfn4o''@;'; + put 'put ''Vy84KV0mMTw8Ny1XJTgpJiYoWlswXV49UVswXSxaWzFdXj1RWzFdLFpbMl1ePVFbMl0sWlszXV49UVszXSksWT0wIT0oMSZRWzNdKSxpZT0zO2llPjA7aWUtLSlRW2llXT1RW2llXT4+PjF8KDEmUVtpZS0xXSk8PDMxO1FbMF09UVswXT4+PjEsWSYmKFFbMF09UVswXV4yMjU8PDI0KX10aGlz''@;'; + put 'put ''LnN0YXRlPU1lKFopfSxVLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24oUSl7dGhpcy5jYWNoZT1tZS5jb25jYXQoW3RoaXMuY2FjaGUsUV0pO2Zvcih2YXIgWjt0aGlzLmNhY2hlLmxlbmd0aD49MTY7KVo9dGhpcy5jYWNoZS5zbGljZSgwLDE2KSx0aGlzLmNhY2hlPXRoaXMuY2FjaGUuc2xp''@;'; + put 'put ''Y2UoMTYpLHRoaXMuZ2hhc2goWil9LFUucHJvdG90eXBlLmZpbmFsPWZ1bmN0aW9uKFEsWil7cmV0dXJuIHRoaXMuY2FjaGUubGVuZ3RoJiZ0aGlzLmdoYXNoKG1lLmNvbmNhdChbdGhpcy5jYWNoZSxCXSwxNikpLHRoaXMuZ2hhc2goTWUoWzAsUSwwLFpdKSksdGhpcy5zdGF0ZX0sWGUuZXhw''@;'; + put 'put ''b3J0cz1VfSw3OTY4OlhlPT57WGUuZXhwb3J0cz1mdW5jdGlvbiBKZShMKXtmb3IodmFyIEIsbWU9TC5sZW5ndGg7bWUtLTspe2lmKDI1NSE9PShCPUwucmVhZFVJbnQ4KG1lKSkpe0IrKyxMLndyaXRlVUludDgoQixtZSk7YnJlYWt9TC53cml0ZVVJbnQ4KDAsbWUpfX19LDY0OTAzOihYZSxK''@;'; + put 'put ''ZSxMKT0+e3ZhciBtZT1MKDU4Nzg5KTtKZS5lbmNyeXB0PWZ1bmN0aW9uKEIsRSl7dmFyIE1lPW1lKEUsQi5fcHJldik7cmV0dXJuIEIuX3ByZXY9Qi5fY2lwaGVyLmVuY3J5cHRCbG9jayhNZSksQi5fcHJldn0sSmUuZGVjcnlwdD1mdW5jdGlvbihCLEUpe3ZhciBNZT1CLl9wcmV2O0IuX3By''@;'; + put 'put ''ZXY9RTt2YXIgVT1CLl9jaXBoZXIuZGVjcnlwdEJsb2NrKEUpO3JldHVybiBtZShVLE1lKX19LDU5ODg1OihYZSxKZSxMKT0+e3ZhciBtZT1MKDczNTAyKS5CdWZmZXIsQj1MKDU4Nzg5KTtmdW5jdGlvbiBFKE1lLFUsUSl7dmFyIFo9VS5sZW5ndGgsaWU9QihVLE1lLl9jYWNoZSk7cmV0dXJu''@;'; + put 'put ''IE1lLl9jYWNoZT1NZS5fY2FjaGUuc2xpY2UoWiksTWUuX3ByZXY9bWUuY29uY2F0KFtNZS5fcHJldixRP1U6aWVdKSxpZX1KZS5lbmNyeXB0PWZ1bmN0aW9uKE1lLFUsUSl7Zm9yKHZhciBpZSxaPW1lLmFsbG9jVW5zYWZlKDApO1UubGVuZ3RoOyl7aWYoMD09PU1lLl9jYWNoZS5sZW5ndGgm''@;'; + put 'put ''JihNZS5fY2FjaGU9TWUuX2NpcGhlci5lbmNyeXB0QmxvY2soTWUuX3ByZXYpLE1lLl9wcmV2PW1lLmFsbG9jVW5zYWZlKDApKSwhKE1lLl9jYWNoZS5sZW5ndGg8PVUubGVuZ3RoKSl7Wj1tZS5jb25jYXQoW1osRShNZSxVLFEpXSk7YnJlYWt9Wj1tZS5jb25jYXQoW1osRShNZSxVLnNsaWNl''@;'; + put 'put ''KDAsaWU9TWUuX2NhY2hlLmxlbmd0aCksUSldKSxVPVUuc2xpY2UoaWUpfXJldHVybiBafX0sODY1MzE6KFhlLEplLEwpPT57dmFyIG1lPUwoNzM1MDIpLkJ1ZmZlcjtmdW5jdGlvbiBCKE1lLFUsUSl7Zm9yKHZhciBXLE4saWU9LTEsWT0wOysraWU8ODspWSs9KDEyOCYoTj1NZS5fY2lwaGVy''@;'; + put 'put ''LmVuY3J5cHRCbG9jayhNZS5fcHJldilbMF1eKFc9VSYxPDw3LWllPzEyODowKSkpPj5pZSU4LE1lLl9wcmV2PUUoTWUuX3ByZXYsUT9XOk4pO3JldHVybiBZfWZ1bmN0aW9uIEUoTWUsVSl7dmFyIFE9TWUubGVuZ3RoLFo9LTEsaWU9bWUuYWxsb2NVbnNhZmUoTWUubGVuZ3RoKTtmb3IoTWU9''@;'; + put 'put ''bWUuY29uY2F0KFtNZSxtZS5mcm9tKFtVXSldKTsrK1o8UTspaWVbWl09TWVbWl08PDF8TWVbWisxXT4+NztyZXR1cm4gaWV9SmUuZW5jcnlwdD1mdW5jdGlvbihNZSxVLFEpe2Zvcih2YXIgWj1VLmxlbmd0aCxpZT1tZS5hbGxvY1Vuc2FmZShaKSxhZT0tMTsrK2FlPFo7KWllW2FlXT1CKE1l''@;'; + put 'put ''LFVbYWVdLFEpO3JldHVybiBpZX19LDIxNjQxOihYZSxKZSxMKT0+e3ZhciBtZT1MKDczNTAyKS5CdWZmZXI7ZnVuY3Rpb24gQihFLE1lLFUpe3ZhciBaPUUuX2NpcGhlci5lbmNyeXB0QmxvY2soRS5fcHJldilbMF1eTWU7cmV0dXJuIEUuX3ByZXY9bWUuY29uY2F0KFtFLl9wcmV2LnNsaWNl''@;'; + put 'put ''KDEpLG1lLmZyb20oW1U/TWU6Wl0pXSksWn1KZS5lbmNyeXB0PWZ1bmN0aW9uKEUsTWUsVSl7Zm9yKHZhciBRPU1lLmxlbmd0aCxaPW1lLmFsbG9jVW5zYWZlKFEpLGllPS0xOysraWU8UTspWltpZV09QihFLE1lW2llXSxVKTtyZXR1cm4gWn19LDExMTUwOihYZSxKZSxMKT0+e3ZhciBtZT1M''@;'; + put 'put ''KDU4Nzg5KSxCPUwoNzM1MDIpLkJ1ZmZlcixFPUwoNzk2OCk7ZnVuY3Rpb24gTWUoUSl7dmFyIFo9US5fY2lwaGVyLmVuY3J5cHRCbG9ja1JhdyhRLl9wcmV2KTtyZXR1cm4gRShRLl9wcmV2KSxafUplLmVuY3J5cHQ9ZnVuY3Rpb24oUSxaKXt2YXIgaWU9TWF0aC5jZWlsKFoubGVuZ3RoLzE2''@;'; + put 'put ''KSxhZT1RLl9jYWNoZS5sZW5ndGg7US5fY2FjaGU9Qi5jb25jYXQoW1EuX2NhY2hlLEIuYWxsb2NVbnNhZmUoMTYqaWUpXSk7Zm9yKHZhciBZPTA7WTxpZTtZKyspe3ZhciBXPU1lKFEpLE49YWUrMTYqWTtRLl9jYWNoZS53cml0ZVVJbnQzMkJFKFdbMF0sTiswKSxRLl9jYWNoZS53cml0ZVVJ''@;'; + put 'put ''bnQzMkJFKFdbMV0sTis0KSxRLl9jYWNoZS53cml0ZVVJbnQzMkJFKFdbMl0sTis4KSxRLl9jYWNoZS53cml0ZVVJbnQzMkJFKFdbM10sTisxMil9dmFyIGVlPVEuX2NhY2hlLnNsaWNlKDAsWi5sZW5ndGgpO3JldHVybiBRLl9jYWNoZT1RLl9jYWNoZS5zbGljZShaLmxlbmd0aCksbWUoWixl''@;'; + put 'put ''ZSl9fSwyMTcwNDooWGUsSmUpPT57SmUuZW5jcnlwdD1mdW5jdGlvbihMLG1lKXtyZXR1cm4gTC5fY2lwaGVyLmVuY3J5cHRCbG9jayhtZSl9LEplLmRlY3J5cHQ9ZnVuY3Rpb24oTCxtZSl7cmV0dXJuIEwuX2NpcGhlci5kZWNyeXB0QmxvY2sobWUpfX0sMjkxNzE6KFhlLEplLEwpPT57dmFy''@;'; + put 'put ''IG1lPXtFQ0I6TCgyMTcwNCksQ0JDOkwoNjQ5MDMpLENGQjpMKDU5ODg1KSxDRkI4OkwoMjE2NDEpLENGQjE6TCg4NjUzMSksT0ZCOkwoODY4MTYpLENUUjpMKDExMTUwKSxHQ006TCgxMTE1MCl9LEI9TCg0NDk0Nik7Zm9yKHZhciBFIGluIEIpQltFXS5tb2R1bGU9bWVbQltFXS5tb2RlXTtY''@;'; + put 'put ''ZS5leHBvcnRzPUJ9LDg2ODE2OihYZSxKZSxMKT0+e3ZhciBtZT1MKDU4Nzg5KTtmdW5jdGlvbiBCKEUpe3JldHVybiBFLl9wcmV2PUUuX2NpcGhlci5lbmNyeXB0QmxvY2soRS5fcHJldiksRS5fcHJldn1KZS5lbmNyeXB0PWZ1bmN0aW9uKEUsTWUpe2Zvcig7RS5fY2FjaGUubGVuZ3RoPE1l''@;'; + put 'put ''Lmxlbmd0aDspRS5fY2FjaGU9QnVmZmVyLmNvbmNhdChbRS5fY2FjaGUsQihFKV0pO3ZhciBVPUUuX2NhY2hlLnNsaWNlKDAsTWUubGVuZ3RoKTtyZXR1cm4gRS5fY2FjaGU9RS5fY2FjaGUuc2xpY2UoTWUubGVuZ3RoKSxtZShNZSxVKX19LDM4NDQxOihYZSxKZSxMKT0+e3ZhciBtZT1MKDQx''@;'; + put 'put ''ODk5KSxCPUwoNzM1MDIpLkJ1ZmZlcixFPUwoNjEwNTIpO2Z1bmN0aW9uIFUoUSxaLGllLGFlKXtFLmNhbGwodGhpcyksdGhpcy5fY2lwaGVyPW5ldyBtZS5BRVMoWiksdGhpcy5fcHJldj1CLmZyb20oaWUpLHRoaXMuX2NhY2hlPUIuYWxsb2NVbnNhZmUoMCksdGhpcy5fc2VjQ2FjaGU9Qi5h''@;'; + put 'put ''bGxvY1Vuc2FmZSgwKSx0aGlzLl9kZWNyeXB0PWFlLHRoaXMuX21vZGU9UX1MKDgzODk0KShVLEUpLFUucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24oUSl7cmV0dXJuIHRoaXMuX21vZGUuZW5jcnlwdCh0aGlzLFEsdGhpcy5fZGVjcnlwdCl9LFUucHJvdG90eXBlLl9maW5hbD1mdW5jdGlv''@;'; + put 'put ''bigpe3RoaXMuX2NpcGhlci5zY3J1YigpfSxYZS5leHBvcnRzPVV9LDU1MjU1OihYZSxKZSxMKT0+e3ZhciBtZT1MKDkwMDQpLEI9TCg4NDMzMCksRT1MKDI5MTcxKSxNZT1MKDUxMTE1KSxVPUwoNDAzNDcpO2Z1bmN0aW9uIGllKFcsTixlZSl7aWYoVz1XLnRvTG93ZXJDYXNlKCksRVtXXSly''@;'; + put 'put ''ZXR1cm4gQi5jcmVhdGVDaXBoZXJpdihXLE4sZWUpO2lmKE1lW1ddKXJldHVybiBuZXcgbWUoe2tleTpOLGl2OmVlLG1vZGU6V30pO3Rocm93IG5ldyBUeXBlRXJyb3IoImludmFsaWQgc3VpdGUgdHlwZSIpfWZ1bmN0aW9uIGFlKFcsTixlZSl7aWYoVz1XLnRvTG93ZXJDYXNlKCksRVtXXSly''@;'; + put 'put ''ZXR1cm4gQi5jcmVhdGVEZWNpcGhlcml2KFcsTixlZSk7aWYoTWVbV10pcmV0dXJuIG5ldyBtZSh7a2V5Ok4saXY6ZWUsbW9kZTpXLGRlY3J5cHQ6ITB9KTt0aHJvdyBuZXcgVHlwZUVycm9yKCJpbnZhbGlkIHN1aXRlIHR5cGUiKX1KZS5jcmVhdGVDaXBoZXI9SmUuQ2lwaGVyPWZ1bmN0aW9u''@;'; + put 'put ''IFEoVyxOKXt2YXIgZWUscTtpZihXPVcudG9Mb3dlckNhc2UoKSxFW1ddKWVlPUVbV10ua2V5LHE9RVtXXS5pdjtlbHNle2lmKCFNZVtXXSl0aHJvdyBuZXcgVHlwZUVycm9yKCJpbnZhbGlkIHN1aXRlIHR5cGUiKTtlZT04Kk1lW1ddLmtleSxxPU1lW1ddLml2fXZhciBKPVUoTiwhMSxlZSxx''@;'; + put 'put ''KTtyZXR1cm4gaWUoVyxKLmtleSxKLml2KX0sSmUuY3JlYXRlQ2lwaGVyaXY9SmUuQ2lwaGVyaXY9aWUsSmUuY3JlYXRlRGVjaXBoZXI9SmUuRGVjaXBoZXI9ZnVuY3Rpb24gWihXLE4pe3ZhciBlZSxxO2lmKFc9Vy50b0xvd2VyQ2FzZSgpLEVbV10pZWU9RVtXXS5rZXkscT1FW1ddLml2O2Vs''@;'; + put 'put ''c2V7aWYoIU1lW1ddKXRocm93IG5ldyBUeXBlRXJyb3IoImludmFsaWQgc3VpdGUgdHlwZSIpO2VlPTgqTWVbV10ua2V5LHE9TWVbV10uaXZ9dmFyIEo9VShOLCExLGVlLHEpO3JldHVybiBhZShXLEoua2V5LEouaXYpfSxKZS5jcmVhdGVEZWNpcGhlcml2PUplLkRlY2lwaGVyaXY9YWUsSmUu''@;'; + put 'put ''bGlzdENpcGhlcnM9SmUuZ2V0Q2lwaGVycz1mdW5jdGlvbiBZKCl7cmV0dXJuIE9iamVjdC5rZXlzKE1lKS5jb25jYXQoQi5nZXRDaXBoZXJzKCkpfX0sOTAwNDooWGUsSmUsTCk9Pnt2YXIgbWU9TCg2MTA1MiksQj1MKDczNjg0KSxFPUwoODM4OTQpLE1lPUwoNzM1MDIpLkJ1ZmZlcixVPXsi''@;'; + put 'put ''ZGVzLWVkZTMtY2JjIjpCLkNCQy5pbnN0YW50aWF0ZShCLkVERSksImRlcy1lZGUzIjpCLkVERSwiZGVzLWVkZS1jYmMiOkIuQ0JDLmluc3RhbnRpYXRlKEIuRURFKSwiZGVzLWVkZSI6Qi5FREUsImRlcy1jYmMiOkIuQ0JDLmluc3RhbnRpYXRlKEIuREVTKSwiZGVzLWVjYiI6Qi5ERVN9O2Z1''@;'; + put 'put ''bmN0aW9uIFEoWil7bWUuY2FsbCh0aGlzKTt2YXIgWSxpZT1aLm1vZGUudG9Mb3dlckNhc2UoKSxhZT1VW2llXTtZPVouZGVjcnlwdD8iZGVjcnlwdCI6ImVuY3J5cHQiO3ZhciBXPVoua2V5O01lLmlzQnVmZmVyKFcpfHwoVz1NZS5mcm9tKFcpKSwoImRlcy1lZGUiPT09aWV8fCJkZXMtZWRl''@;'; + put 'put ''LWNiYyI9PT1pZSkmJihXPU1lLmNvbmNhdChbVyxXLnNsaWNlKDAsOCldKSk7dmFyIE49Wi5pdjtNZS5pc0J1ZmZlcihOKXx8KE49TWUuZnJvbShOKSksdGhpcy5fZGVzPWFlLmNyZWF0ZSh7a2V5OlcsaXY6Tix0eXBlOll9KX1VLmRlcz1VWyJkZXMtY2JjIl0sVS5kZXMzPVVbImRlcy1lZGUz''@;'; + put 'put ''LWNiYyJdLFhlLmV4cG9ydHM9USxFKFEsbWUpLFEucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24oWil7cmV0dXJuIE1lLmZyb20odGhpcy5fZGVzLnVwZGF0ZShaKSl9LFEucHJvdG90eXBlLl9maW5hbD1mdW5jdGlvbigpe3JldHVybiBNZS5mcm9tKHRoaXMuX2Rlcy5maW5hbCgpKX19LDUx''@;'; + put 'put ''MTE1OihYZSxKZSk9PntKZVsiZGVzLWVjYiJdPXtrZXk6OCxpdjowfSxKZVsiZGVzLWNiYyJdPUplLmRlcz17a2V5OjgsaXY6OH0sSmVbImRlcy1lZGUzLWNiYyJdPUplLmRlczM9e2tleToyNCxpdjo4fSxKZVsiZGVzLWVkZTMiXT17a2V5OjI0LGl2OjB9LEplWyJkZXMtZWRlLWNiYyJdPXtr''@;'; + put 'put ''ZXk6MTYsaXY6OH0sSmVbImRlcy1lZGUiXT17a2V5OjE2LGl2OjB9fSw4NDY2OihYZSxKZSxMKT0+e3ZhciBtZT1MKDk4NTM4KSxCPUwoNTM3NTMpO2Z1bmN0aW9uIE1lKFEpe3ZhciBpZSxaPVEubW9kdWx1cy5ieXRlTGVuZ3RoKCk7ZG97aWU9bmV3IG1lKEIoWikpfXdoaWxlKGllLmNtcChR''@;'; + put 'put ''Lm1vZHVsdXMpPj0wfHwhaWUudW1vZChRLnByaW1lMSl8fCFpZS51bW9kKFEucHJpbWUyKSk7cmV0dXJuIGllfWZ1bmN0aW9uIFUoUSxaKXt2YXIgaWU9ZnVuY3Rpb24gRShRKXt2YXIgWj1NZShRKTtyZXR1cm57YmxpbmRlcjpaLnRvUmVkKG1lLm1vbnQoUS5tb2R1bHVzKSkucmVkUG93KG5l''@;'; + put 'put ''dyBtZShRLnB1YmxpY0V4cG9uZW50KSkuZnJvbVJlZCgpLHVuYmxpbmRlcjpaLmludm0oUS5tb2R1bHVzKX19KFopLGFlPVoubW9kdWx1cy5ieXRlTGVuZ3RoKCksWT1uZXcgbWUoUSkubXVsKGllLmJsaW5kZXIpLnVtb2QoWi5tb2R1bHVzKSxXPVkudG9SZWQobWUubW9udChaLnByaW1lMSkp''@;'; + put 'put ''LE49WS50b1JlZChtZS5tb250KFoucHJpbWUyKSksZWU9Wi5jb2VmZmljaWVudCxxPVoucHJpbWUxLEo9Wi5wcmltZTIsc2U9Vy5yZWRQb3coWi5leHBvbmVudDEpLmZyb21SZWQoKSxvZT1OLnJlZFBvdyhaLmV4cG9uZW50MikuZnJvbVJlZCgpLGNlPXNlLmlzdWIob2UpLmltdWwoZWUpLnVt''@;'; + put 'put ''b2QocSkuaW11bChKKTtyZXR1cm4gb2UuaWFkZChjZSkuaW11bChpZS51bmJsaW5kZXIpLnVtb2QoWi5tb2R1bHVzKS50b0FycmF5TGlrZShCdWZmZXIsImJlIixhZSl9VS5nZXRyPU1lLFhlLmV4cG9ydHM9VX0sODc3OTM6KFhlLEplLEwpPT57WGUuZXhwb3J0cz1MKDc1MjA3KX0sMzkyMzoo''@;'; + put 'put ''WGUsSmUsTCk9Pnt2YXIgbWU9TCg4NDQ2KS5CdWZmZXIsQj1MKDk2Mzg2KSxFPUwoNjU2ODUpLE1lPUwoODM4OTQpLFU9TCg3OTk0NyksUT1MKDM5NDYpLFo9TCg3NTIwNyk7ZnVuY3Rpb24gaWUoTil7RS5Xcml0YWJsZS5jYWxsKHRoaXMpO3ZhciBlZT1aW05dO2lmKCFlZSl0aHJvdyBuZXcg''@;'; + put 'put ''RXJyb3IoIlVua25vd24gbWVzc2FnZSBkaWdlc3QiKTt0aGlzLl9oYXNoVHlwZT1lZS5oYXNoLHRoaXMuX2hhc2g9QihlZS5oYXNoKSx0aGlzLl90YWc9ZWUuaWQsdGhpcy5fc2lnblR5cGU9ZWUuc2lnbn1mdW5jdGlvbiBhZShOKXtFLldyaXRhYmxlLmNhbGwodGhpcyk7dmFyIGVlPVpbTl07''@;'; + put 'put ''aWYoIWVlKXRocm93IG5ldyBFcnJvcigiVW5rbm93biBtZXNzYWdlIGRpZ2VzdCIpO3RoaXMuX2hhc2g9QihlZS5oYXNoKSx0aGlzLl90YWc9ZWUuaWQsdGhpcy5fc2lnblR5cGU9ZWUuc2lnbn1mdW5jdGlvbiBZKE4pe3JldHVybiBuZXcgaWUoTil9ZnVuY3Rpb24gVyhOKXtyZXR1cm4gbmV3''@;'; + put 'put ''IGFlKE4pfU9iamVjdC5rZXlzKFopLmZvckVhY2goZnVuY3Rpb24oTil7WltOXS5pZD1tZS5mcm9tKFpbTl0uaWQsImhleCIpLFpbTi50b0xvd2VyQ2FzZSgpXT1aW05dfSksTWUoaWUsRS5Xcml0YWJsZSksaWUucHJvdG90eXBlLl93cml0ZT1mdW5jdGlvbihlZSxxLEope3RoaXMuX2hhc2gu''@;'; + put 'put ''dXBkYXRlKGVlKSxKKCl9LGllLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24oZWUscSl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBlZSYmKGVlPW1lLmZyb20oZWUscSkpLHRoaXMuX2hhc2gudXBkYXRlKGVlKSx0aGlzfSxpZS5wcm90b3R5cGUuc2lnbj1mdW5jdGlvbihlZSxxKXt0aGlzLmVu''@;'; + put 'put ''ZCgpO3ZhciBKPXRoaXMuX2hhc2guZGlnZXN0KCksc2U9VShKLGVlLHRoaXMuX2hhc2hUeXBlLHRoaXMuX3NpZ25UeXBlLHRoaXMuX3RhZyk7cmV0dXJuIHE/c2UudG9TdHJpbmcocSk6c2V9LE1lKGFlLEUuV3JpdGFibGUpLGFlLnByb3RvdHlwZS5fd3JpdGU9ZnVuY3Rpb24oZWUscSxKKXt0''@;'; + put 'put ''aGlzLl9oYXNoLnVwZGF0ZShlZSksSigpfSxhZS5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKGVlLHEpe3JldHVybiJzdHJpbmciPT10eXBlb2YgZWUmJihlZT1tZS5mcm9tKGVlLHEpKSx0aGlzLl9oYXNoLnVwZGF0ZShlZSksdGhpc30sYWUucHJvdG90eXBlLnZlcmlmeT1mdW5jdGlvbihl''@;'; + put 'put ''ZSxxLEopeyJzdHJpbmciPT10eXBlb2YgcSYmKHE9bWUuZnJvbShxLEopKSx0aGlzLmVuZCgpO3ZhciBzZT10aGlzLl9oYXNoLmRpZ2VzdCgpO3JldHVybiBRKHEsc2UsZWUsdGhpcy5fc2lnblR5cGUsdGhpcy5fdGFnKX0sWGUuZXhwb3J0cz17U2lnbjpZLFZlcmlmeTpXLGNyZWF0ZVNpZ246''@;'; + put 'put ''WSxjcmVhdGVWZXJpZnk6V319LDc5OTQ3OihYZSxKZSxMKT0+e3ZhciBtZT1MKDg0NDYpLkJ1ZmZlcixCPUwoNzQ1MjkpLEU9TCg4NDY2KSxNZT1MKDU3NzE1KS5lYyxVPUwoOTg1MzgpLFE9TCgyMjc3MiksWj1MKDEzMDgpO2Z1bmN0aW9uIE4ob2UsY2UsZGUsdmUpe2lmKChvZT1tZS5mcm9t''@;'; + put 'put ''KG9lLnRvQXJyYXkoKSkpLmxlbmd0aDxjZS5ieXRlTGVuZ3RoKCkpe3ZhciBBZT1tZS5hbGxvYyhjZS5ieXRlTGVuZ3RoKCktb2UubGVuZ3RoKTtvZT1tZS5jb25jYXQoW0FlLG9lXSl9dmFyIGtlPWRlLmxlbmd0aCxTZT1mdW5jdGlvbiBxKG9lLGNlKXtvZT0ob2U9ZWUob2UsY2UpKS5tb2Qo''@;'; + put 'put ''Y2UpO3ZhciBkZT1tZS5mcm9tKG9lLnRvQXJyYXkoKSk7aWYoZGUubGVuZ3RoPGNlLmJ5dGVMZW5ndGgoKSl7dmFyIHZlPW1lLmFsbG9jKGNlLmJ5dGVMZW5ndGgoKS1kZS5sZW5ndGgpO2RlPW1lLmNvbmNhdChbdmUsZGVdKX1yZXR1cm4gZGV9KGRlLGNlKSxJZT1tZS5hbGxvYyhrZSk7SWUu''@;'; + put 'put ''ZmlsbCgxKTt2YXIgVGU9bWUuYWxsb2Moa2UpO3JldHVybiBUZT1CKHZlLFRlKS51cGRhdGUoSWUpLnVwZGF0ZShtZS5mcm9tKFswXSkpLnVwZGF0ZShvZSkudXBkYXRlKFNlKS5kaWdlc3QoKSxJZT1CKHZlLFRlKS51cGRhdGUoSWUpLmRpZ2VzdCgpLHtrOlRlPUIodmUsVGUpLnVwZGF0ZShJ''@;'; + put 'put ''ZSkudXBkYXRlKG1lLmZyb20oWzFdKSkudXBkYXRlKG9lKS51cGRhdGUoU2UpLmRpZ2VzdCgpLHY6SWU9Qih2ZSxUZSkudXBkYXRlKEllKS5kaWdlc3QoKX19ZnVuY3Rpb24gZWUob2UsY2Upe3ZhciBkZT1uZXcgVShvZSksdmU9KG9lLmxlbmd0aDw8MyktY2UuYml0TGVuZ3RoKCk7cmV0dXJu''@;'; + put 'put ''IHZlPjAmJmRlLmlzaHJuKHZlKSxkZX1mdW5jdGlvbiBKKG9lLGNlLGRlKXt2YXIgdmUsQWU7ZG97Zm9yKHZlPW1lLmFsbG9jKDApOzgqdmUubGVuZ3RoPG9lLmJpdExlbmd0aCgpOyljZS52PUIoZGUsY2UuaykudXBkYXRlKGNlLnYpLmRpZ2VzdCgpLHZlPW1lLmNvbmNhdChbdmUsY2Uudl0p''@;'; + put 'put ''O0FlPWVlKHZlLG9lKSxjZS5rPUIoZGUsY2UuaykudXBkYXRlKGNlLnYpLnVwZGF0ZShtZS5mcm9tKFswXSkpLmRpZ2VzdCgpLGNlLnY9QihkZSxjZS5rKS51cGRhdGUoY2UudikuZGlnZXN0KCl9d2hpbGUoLTEhPT1BZS5jbXAob2UpKTtyZXR1cm4gQWV9ZnVuY3Rpb24gc2Uob2UsY2UsZGUs''@;'; + put 'put ''dmUpe3JldHVybiBvZS50b1JlZChVLm1vbnQoZGUpKS5yZWRQb3coY2UpLmZyb21SZWQoKS5tb2QodmUpfVhlLmV4cG9ydHM9ZnVuY3Rpb24gaWUob2UsY2UsZGUsdmUsQWUpe3ZhciBrZT1RKGNlKTtpZihrZS5jdXJ2ZSl7aWYoImVjZHNhIiE9PXZlJiYiZWNkc2EvcnNhIiE9PXZlKXRocm93''@;'; + put 'put ''IG5ldyBFcnJvcigid3JvbmcgcHJpdmF0ZSBrZXkgdHlwZSIpO3JldHVybiBmdW5jdGlvbiBhZShvZSxjZSl7dmFyIGRlPVpbY2UuY3VydmUuam9pbigiLiIpXTtpZighZGUpdGhyb3cgbmV3IEVycm9yKCJ1bmtub3duIGN1cnZlICIrY2UuY3VydmUuam9pbigiLiIpKTt2YXIga2U9bmV3IE1l''@;'; + put 'put ''KGRlKS5rZXlGcm9tUHJpdmF0ZShjZS5wcml2YXRlS2V5KS5zaWduKG9lKTtyZXR1cm4gbWUuZnJvbShrZS50b0RFUigpKX0ob2Usa2UpfWlmKCJkc2EiPT09a2UudHlwZSl7aWYoImRzYSIhPT12ZSl0aHJvdyBuZXcgRXJyb3IoIndyb25nIHByaXZhdGUga2V5IHR5cGUiKTtyZXR1cm4gZnVu''@;'; + put 'put ''Y3Rpb24gWShvZSxjZSxkZSl7Zm9yKHZhciBUZSx2ZT1jZS5wYXJhbXMucHJpdl9rZXksQWU9Y2UucGFyYW1zLnAsa2U9Y2UucGFyYW1zLnEsU2U9Y2UucGFyYW1zLmcsSWU9bmV3IFUoMCksRWU9ZWUob2Usa2UpLm1vZChrZSksaGU9ITEsTz1OKHZlLGtlLG9lLGRlKTshMT09PWhlOylJZT1z''@;'; + put 'put ''ZShTZSxUZT1KKGtlLE8sZGUpLEFlLGtlKSwwPT09KGhlPVRlLmludm0oa2UpLmltdWwoRWUuYWRkKHZlLm11bChJZSkpKS5tb2Qoa2UpKS5jbXBuKDApJiYoaGU9ITEsSWU9bmV3IFUoMCkpO3JldHVybiBmdW5jdGlvbiBXKG9lLGNlKXtvZT1vZS50b0FycmF5KCksY2U9Y2UudG9BcnJheSgp''@;'; + put 'put ''LDEyOCZvZVswXSYmKG9lPVswXS5jb25jYXQob2UpKSwxMjgmY2VbMF0mJihjZT1bMF0uY29uY2F0KGNlKSk7dmFyIHZlPVs0OCxvZS5sZW5ndGgrY2UubGVuZ3RoKzQsMixvZS5sZW5ndGhdO3JldHVybiB2ZT12ZS5jb25jYXQob2UsWzIsY2UubGVuZ3RoXSxjZSksbWUuZnJvbSh2ZSl9KEll''@;'; + put 'put ''LGhlKX0ob2Usa2UsZGUpfWlmKCJyc2EiIT09dmUmJiJlY2RzYS9yc2EiIT09dmUpdGhyb3cgbmV3IEVycm9yKCJ3cm9uZyBwcml2YXRlIGtleSB0eXBlIik7b2U9bWUuY29uY2F0KFtBZSxvZV0pO2Zvcih2YXIgU2U9a2UubW9kdWx1cy5ieXRlTGVuZ3RoKCksSWU9WzAsMV07b2UubGVuZ3Ro''@;'; + put 'put ''K0llLmxlbmd0aCsxPFNlOylJZS5wdXNoKDI1NSk7SWUucHVzaCgwKTtmb3IodmFyIFRlPS0xOysrVGU8b2UubGVuZ3RoOylJZS5wdXNoKG9lW1RlXSk7cmV0dXJuIEUoSWUsa2UpfSxYZS5leHBvcnRzLmdldEtleT1OLFhlLmV4cG9ydHMubWFrZUtleT1KfSwzOTQ2OihYZSxKZSxMKT0+e3Zh''@;'; + put 'put ''ciBtZT1MKDg0NDYpLkJ1ZmZlcixCPUwoOTg1MzgpLEU9TCg1NzcxNSkuZWMsTWU9TCgyMjc3MiksVT1MKDEzMDgpO2Z1bmN0aW9uIGFlKFksVyl7aWYoWS5jbXBuKDApPD0wKXRocm93IG5ldyBFcnJvcigiaW52YWxpZCBzaWciKTtpZihZLmNtcChXKT49Vyl0aHJvdyBuZXcgRXJyb3IoImlu''@;'; + put 'put ''dmFsaWQgc2lnIil9WGUuZXhwb3J0cz1mdW5jdGlvbiBRKFksVyxOLGVlLHEpe3ZhciBKPU1lKE4pO2lmKCJlYyI9PT1KLnR5cGUpe2lmKCJlY2RzYSIhPT1lZSYmImVjZHNhL3JzYSIhPT1lZSl0aHJvdyBuZXcgRXJyb3IoIndyb25nIHB1YmxpYyBrZXkgdHlwZSIpO3JldHVybiBmdW5jdGlv''@;'; + put 'put ''biBaKFksVyxOKXt2YXIgZWU9VVtOLmRhdGEuYWxnb3JpdGhtLmN1cnZlLmpvaW4oIi4iKV07aWYoIWVlKXRocm93IG5ldyBFcnJvcigidW5rbm93biBjdXJ2ZSAiK04uZGF0YS5hbGdvcml0aG0uY3VydmUuam9pbigiLiIpKTtyZXR1cm4gbmV3IEUoZWUpLnZlcmlmeShXLFksTi5kYXRhLnN1''@;'; + put 'put ''YmplY3RQcml2YXRlS2V5LmRhdGEpfShZLFcsSil9aWYoImRzYSI9PT1KLnR5cGUpe2lmKCJkc2EiIT09ZWUpdGhyb3cgbmV3IEVycm9yKCJ3cm9uZyBwdWJsaWMga2V5IHR5cGUiKTtyZXR1cm4gZnVuY3Rpb24gaWUoWSxXLE4pe3ZhciBlZT1OLmRhdGEucCxxPU4uZGF0YS5xLEo9Ti5kYXRh''@;'; + put 'put ''Lmcsc2U9Ti5kYXRhLnB1Yl9rZXksb2U9TWUuc2lnbmF0dXJlLmRlY29kZShZLCJkZXIiKSxjZT1vZS5zLGRlPW9lLnI7YWUoY2UscSksYWUoZGUscSk7dmFyIHZlPUIubW9udChlZSksQWU9Y2UuaW52bShxKTtyZXR1cm4gMD09PUoudG9SZWQodmUpLnJlZFBvdyhuZXcgQihXKS5tdWwoQWUp''@;'; + put 'put ''Lm1vZChxKSkuZnJvbVJlZCgpLm11bChzZS50b1JlZCh2ZSkucmVkUG93KGRlLm11bChBZSkubW9kKHEpKS5mcm9tUmVkKCkpLm1vZChlZSkubW9kKHEpLmNtcChkZSl9KFksVyxKKX1pZigicnNhIiE9PWVlJiYiZWNkc2EvcnNhIiE9PWVlKXRocm93IG5ldyBFcnJvcigid3JvbmcgcHVibGlj''@;'; + put 'put ''IGtleSB0eXBlIik7Vz1tZS5jb25jYXQoW3EsV10pO2Zvcih2YXIgc2U9Si5tb2R1bHVzLmJ5dGVMZW5ndGgoKSxvZT1bMV0sY2U9MDtXLmxlbmd0aCtvZS5sZW5ndGgrMjxzZTspb2UucHVzaCgyNTUpLGNlKys7b2UucHVzaCgwKTtmb3IodmFyIGRlPS0xOysrZGU8Vy5sZW5ndGg7KW9lLnB1''@;'; + put 'put ''c2goV1tkZV0pO29lPW1lLmZyb20ob2UpO3ZhciB2ZT1CLm1vbnQoSi5tb2R1bHVzKTtZPShZPW5ldyBCKFkpLnRvUmVkKHZlKSkucmVkUG93KG5ldyBCKEoucHVibGljRXhwb25lbnQpKSxZPW1lLmZyb20oWS5mcm9tUmVkKCkudG9BcnJheSgpKTt2YXIgQWU9Y2U8OD8xOjA7Zm9yKHNlPU1h''@;'; + put 'put ''dGgubWluKFkubGVuZ3RoLG9lLmxlbmd0aCksWS5sZW5ndGghPT1vZS5sZW5ndGgmJihBZT0xKSxkZT0tMTsrK2RlPHNlOylBZXw9WVtkZV1eb2VbZGVdO3JldHVybiAwPT09QWV9fSw4NDQ2OihYZSxKZSxMKT0+e3ZhciBtZT1MKDkzMTcyKSxCPW1lLkJ1ZmZlcjtmdW5jdGlvbiBFKFUsUSl7''@;'; + put 'put ''Zm9yKHZhciBaIGluIFUpUVtaXT1VW1pdfWZ1bmN0aW9uIE1lKFUsUSxaKXtyZXR1cm4gQihVLFEsWil9Qi5mcm9tJiZCLmFsbG9jJiZCLmFsbG9jVW5zYWZlJiZCLmFsbG9jVW5zYWZlU2xvdz9YZS5leHBvcnRzPW1lOihFKG1lLEplKSxKZS5CdWZmZXI9TWUpLE1lLnByb3RvdHlwZT1PYmpl''@;'; + put 'put ''Y3QuY3JlYXRlKEIucHJvdG90eXBlKSxFKEIsTWUpLE1lLmZyb209ZnVuY3Rpb24oVSxRLFope2lmKCJudW1iZXIiPT10eXBlb2YgVSl0aHJvdyBuZXcgVHlwZUVycm9yKCJBcmd1bWVudCBtdXN0IG5vdCBiZSBhIG51bWJlciIpO3JldHVybiBCKFUsUSxaKX0sTWUuYWxsb2M9ZnVuY3Rpb24o''@;'; + put 'put ''VSxRLFope2lmKCJudW1iZXIiIT10eXBlb2YgVSl0aHJvdyBuZXcgVHlwZUVycm9yKCJBcmd1bWVudCBtdXN0IGJlIGEgbnVtYmVyIik7dmFyIGllPUIoVSk7cmV0dXJuIHZvaWQgMCE9PVE/InN0cmluZyI9PXR5cGVvZiBaP2llLmZpbGwoUSxaKTppZS5maWxsKFEpOmllLmZpbGwoMCksaWV9''@;'; + put 'put ''LE1lLmFsbG9jVW5zYWZlPWZ1bmN0aW9uKFUpe2lmKCJudW1iZXIiIT10eXBlb2YgVSl0aHJvdyBuZXcgVHlwZUVycm9yKCJBcmd1bWVudCBtdXN0IGJlIGEgbnVtYmVyIik7cmV0dXJuIEIoVSl9LE1lLmFsbG9jVW5zYWZlU2xvdz1mdW5jdGlvbihVKXtpZigibnVtYmVyIiE9dHlwZW9mIFUp''@;'; + put 'put ''dGhyb3cgbmV3IFR5cGVFcnJvcigiQXJndW1lbnQgbXVzdCBiZSBhIG51bWJlciIpO3JldHVybiBtZS5TbG93QnVmZmVyKFUpfX0sNTg3ODk6WGU9PntYZS5leHBvcnRzPWZ1bmN0aW9uKEwsbWUpe2Zvcih2YXIgQj1NYXRoLm1pbihMLmxlbmd0aCxtZS5sZW5ndGgpLEU9bmV3IEJ1ZmZlcihC''@;'; + put 'put ''KSxNZT0wO01lPEI7KytNZSlFW01lXT1MW01lXV5tZVtNZV07cmV0dXJuIEV9fSw5MzE3MjooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoNTM0MyksQj1MKDQ4NDYxKSxFPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wuZm9yP1N5''@;'; + put 'put ''bWJvbC5mb3IoIm5vZGVqcy51dGlsLmluc3BlY3QuY3VzdG9tIik6bnVsbDtKZS5CdWZmZXI9WixKZS5TbG93QnVmZmVyPWZ1bmN0aW9uIGNlKF90KXtyZXR1cm4rX3QhPV90JiYoX3Q9MCksWi5hbGxvYygrX3QpfSxKZS5JTlNQRUNUX01BWF9CWVRFUz01MDt2YXIgTWU9MjE0NzQ4MzY0Nztm''@;'; + put 'put ''dW5jdGlvbiBRKF90KXtpZihfdD5NZSl0aHJvdyBuZXcgUmFuZ2VFcnJvcignVGhlIHZhbHVlICInK190KyciIGlzIGludmFsaWQgZm9yIG9wdGlvbiAic2l6ZSInKTt2YXIgdHQ9bmV3IFVpbnQ4QXJyYXkoX3QpO3JldHVybiBPYmplY3Quc2V0UHJvdG90eXBlT2YodHQsWi5wcm90b3R5cGUp''@;'; + put 'put ''LHR0fWZ1bmN0aW9uIFooX3QsdHQsZXQpe2lmKCJudW1iZXIiPT10eXBlb2YgX3Qpe2lmKCJzdHJpbmciPT10eXBlb2YgdHQpdGhyb3cgbmV3IFR5cGVFcnJvcignVGhlICJzdHJpbmciIGFyZ3VtZW50IG11c3QgYmUgb2YgdHlwZSBzdHJpbmcuIFJlY2VpdmVkIHR5cGUgbnVtYmVyJyk7cmV0''@;'; + put 'put ''dXJuIFcoX3QpfXJldHVybiBpZShfdCx0dCxldCl9ZnVuY3Rpb24gaWUoX3QsdHQsZXQpe2lmKCJzdHJpbmciPT10eXBlb2YgX3QpcmV0dXJuIGZ1bmN0aW9uIE4oX3QsdHQpe2lmKCgic3RyaW5nIiE9dHlwZW9mIHR0fHwiIj09PXR0KSYmKHR0PSJ1dGY4IiksIVouaXNFbmNvZGluZyh0dCkp''@;'; + put 'put ''dGhyb3cgbmV3IFR5cGVFcnJvcigiVW5rbm93biBlbmNvZGluZzogIit0dCk7dmFyIGV0PTB8ZGUoX3QsdHQpLGF0PVEoZXQpLEx0PWF0LndyaXRlKF90LHR0KTtyZXR1cm4gTHQhPT1ldCYmKGF0PWF0LnNsaWNlKDAsTHQpKSxhdH0oX3QsdHQpO2lmKEFycmF5QnVmZmVyLmlzVmlldyhfdCkp''@;'; + put 'put ''cmV0dXJuIGZ1bmN0aW9uIHEoX3Qpe2lmKGh0KF90LFVpbnQ4QXJyYXkpKXt2YXIgdHQ9bmV3IFVpbnQ4QXJyYXkoX3QpO3JldHVybiBKKHR0LmJ1ZmZlcix0dC5ieXRlT2Zmc2V0LHR0LmJ5dGVMZW5ndGgpfXJldHVybiBlZShfdCl9KF90KTtpZihudWxsPT1fdCl0aHJvdyBuZXcgVHlwZUVy''@;'; + put 'put ''cm9yKCJUaGUgZmlyc3QgYXJndW1lbnQgbXVzdCBiZSBvbmUgb2YgdHlwZSBzdHJpbmcsIEJ1ZmZlciwgQXJyYXlCdWZmZXIsIEFycmF5LCBvciBBcnJheS1saWtlIE9iamVjdC4gUmVjZWl2ZWQgdHlwZSAiK3R5cGVvZiBfdCk7aWYoaHQoX3QsQXJyYXlCdWZmZXIpfHxfdCYmaHQoX3QuYnVm''@;'; + put 'put ''ZmVyLEFycmF5QnVmZmVyKXx8InVuZGVmaW5lZCIhPXR5cGVvZiBTaGFyZWRBcnJheUJ1ZmZlciYmKGh0KF90LFNoYXJlZEFycmF5QnVmZmVyKXx8X3QmJmh0KF90LmJ1ZmZlcixTaGFyZWRBcnJheUJ1ZmZlcikpKXJldHVybiBKKF90LHR0LGV0KTtpZigibnVtYmVyIj09dHlwZW9mIF90KXRo''@;'; + put 'put ''cm93IG5ldyBUeXBlRXJyb3IoJ1RoZSAidmFsdWUiIGFyZ3VtZW50IG11c3Qgbm90IGJlIG9mIHR5cGUgbnVtYmVyLiBSZWNlaXZlZCB0eXBlIG51bWJlcicpO3ZhciBhdD1fdC52YWx1ZU9mJiZfdC52YWx1ZU9mKCk7aWYobnVsbCE9YXQmJmF0IT09X3QpcmV0dXJuIFouZnJvbShhdCx0dCxl''@;'; + put 'put ''dCk7dmFyIEx0PWZ1bmN0aW9uIHNlKF90KXtpZihaLmlzQnVmZmVyKF90KSl7dmFyIHR0PTB8b2UoX3QubGVuZ3RoKSxldD1RKHR0KTtyZXR1cm4gMD09PWV0Lmxlbmd0aHx8X3QuY29weShldCwwLDAsdHQpLGV0fXJldHVybiB2b2lkIDAhPT1fdC5sZW5ndGg/Im51bWJlciIhPXR5cGVvZiBf''@;'; + put 'put ''dC5sZW5ndGh8fEJ0KF90Lmxlbmd0aCk/USgwKTplZShfdCk6IkJ1ZmZlciI9PT1fdC50eXBlJiZBcnJheS5pc0FycmF5KF90LmRhdGEpP2VlKF90LmRhdGEpOnZvaWQgMH0oX3QpO2lmKEx0KXJldHVybiBMdDtpZigidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmbnVsbCE9U3ltYm9sLnRv''@;'; + put 'put ''UHJpbWl0aXZlJiYiZnVuY3Rpb24iPT10eXBlb2YgX3RbU3ltYm9sLnRvUHJpbWl0aXZlXSlyZXR1cm4gWi5mcm9tKF90W1N5bWJvbC50b1ByaW1pdGl2ZV0oInN0cmluZyIpLHR0LGV0KTt0aHJvdyBuZXcgVHlwZUVycm9yKCJUaGUgZmlyc3QgYXJndW1lbnQgbXVzdCBiZSBvbmUgb2YgdHlw''@;'; + put 'put ''ZSBzdHJpbmcsIEJ1ZmZlciwgQXJyYXlCdWZmZXIsIEFycmF5LCBvciBBcnJheS1saWtlIE9iamVjdC4gUmVjZWl2ZWQgdHlwZSAiK3R5cGVvZiBfdCl9ZnVuY3Rpb24gYWUoX3Qpe2lmKCJudW1iZXIiIT10eXBlb2YgX3QpdGhyb3cgbmV3IFR5cGVFcnJvcignInNpemUiIGFyZ3VtZW50IG11''@;'; + put 'put ''c3QgYmUgb2YgdHlwZSBudW1iZXInKTtpZihfdDwwKXRocm93IG5ldyBSYW5nZUVycm9yKCdUaGUgdmFsdWUgIicrX3QrJyIgaXMgaW52YWxpZCBmb3Igb3B0aW9uICJzaXplIicpfWZ1bmN0aW9uIFcoX3Qpe3JldHVybiBhZShfdCksUShfdDwwPzA6MHxvZShfdCkpfWZ1bmN0aW9uIGVlKF90''@;'; + put 'put ''KXtmb3IodmFyIHR0PV90Lmxlbmd0aDwwPzA6MHxvZShfdC5sZW5ndGgpLGV0PVEodHQpLGF0PTA7YXQ8dHQ7YXQrPTEpZXRbYXRdPTI1NSZfdFthdF07cmV0dXJuIGV0fWZ1bmN0aW9uIEooX3QsdHQsZXQpe2lmKHR0PDB8fF90LmJ5dGVMZW5ndGg8dHQpdGhyb3cgbmV3IFJhbmdlRXJyb3Io''@;'; + put 'put ''JyJvZmZzZXQiIGlzIG91dHNpZGUgb2YgYnVmZmVyIGJvdW5kcycpO2lmKF90LmJ5dGVMZW5ndGg8dHQrKGV0fHwwKSl0aHJvdyBuZXcgUmFuZ2VFcnJvcignImxlbmd0aCIgaXMgb3V0c2lkZSBvZiBidWZmZXIgYm91bmRzJyk7dmFyIGF0O3JldHVybiBhdD12b2lkIDA9PT10dCYmdm9pZCAw''@;'; + put 'put ''PT09ZXQ/bmV3IFVpbnQ4QXJyYXkoX3QpOnZvaWQgMD09PWV0P25ldyBVaW50OEFycmF5KF90LHR0KTpuZXcgVWludDhBcnJheShfdCx0dCxldCksT2JqZWN0LnNldFByb3RvdHlwZU9mKGF0LFoucHJvdG90eXBlKSxhdH1mdW5jdGlvbiBvZShfdCl7aWYoX3Q+PU1lKXRocm93IG5ldyBSYW5n''@;'; + put 'put ''ZUVycm9yKCJBdHRlbXB0IHRvIGFsbG9jYXRlIEJ1ZmZlciBsYXJnZXIgdGhhbiBtYXhpbXVtIHNpemU6IDB4IitNZS50b1N0cmluZygxNikrIiBieXRlcyIpO3JldHVybiAwfF90fWZ1bmN0aW9uIGRlKF90LHR0KXtpZihaLmlzQnVmZmVyKF90KSlyZXR1cm4gX3QubGVuZ3RoO2lmKEFycmF5''@;'; + put 'put ''QnVmZmVyLmlzVmlldyhfdCl8fGh0KF90LEFycmF5QnVmZmVyKSlyZXR1cm4gX3QuYnl0ZUxlbmd0aDtpZigic3RyaW5nIiE9dHlwZW9mIF90KXRocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSAic3RyaW5nIiBhcmd1bWVudCBtdXN0IGJlIG9uZSBvZiB0eXBlIHN0cmluZywgQnVmZmVyLCBvciBB''@;'; + put 'put ''cnJheUJ1ZmZlci4gUmVjZWl2ZWQgdHlwZSAnK3R5cGVvZiBfdCk7dmFyIGV0PV90Lmxlbmd0aCxhdD1hcmd1bWVudHMubGVuZ3RoPjImJiEwPT09YXJndW1lbnRzWzJdO2lmKCFhdCYmMD09PWV0KXJldHVybiAwO2Zvcih2YXIgTHQ9ITE7Oylzd2l0Y2godHQpe2Nhc2UiYXNjaWkiOmNhc2Ui''@;'; + put 'put ''bGF0aW4xIjpjYXNlImJpbmFyeSI6cmV0dXJuIGV0O2Nhc2UidXRmOCI6Y2FzZSJ1dGYtOCI6cmV0dXJuIGd0KF90KS5sZW5ndGg7Y2FzZSJ1Y3MyIjpjYXNlInVjcy0yIjpjYXNlInV0ZjE2bGUiOmNhc2UidXRmLTE2bGUiOnJldHVybiAyKmV0O2Nhc2UiaGV4IjpyZXR1cm4gZXQ+Pj4xO2Nh''@;'; + put 'put ''c2UiYmFzZTY0IjpyZXR1cm4gdnQoX3QpLmxlbmd0aDtkZWZhdWx0OmlmKEx0KXJldHVybiBhdD8tMTpndChfdCkubGVuZ3RoO3R0PSgiIit0dCkudG9Mb3dlckNhc2UoKSxMdD0hMH19ZnVuY3Rpb24gdmUoX3QsdHQsZXQpe3ZhciBhdD0hMTtpZigodm9pZCAwPT09dHR8fHR0PDApJiYodHQ9''@;'; + put 'put ''MCksdHQ+dGhpcy5sZW5ndGh8fCgodm9pZCAwPT09ZXR8fGV0PnRoaXMubGVuZ3RoKSYmKGV0PXRoaXMubGVuZ3RoKSxldDw9MCl8fChldD4+Pj0wKTw9KHR0Pj4+PTApKXJldHVybiIiO2ZvcihfdHx8KF90PSJ1dGY4Iik7Oylzd2l0Y2goX3Qpe2Nhc2UiaGV4IjpyZXR1cm4gVCh0aGlzLHR0''@;'; + put 'put ''LGV0KTtjYXNlInV0ZjgiOmNhc2UidXRmLTgiOnJldHVybiBuZSh0aGlzLHR0LGV0KTtjYXNlImFzY2lpIjpyZXR1cm4gUCh0aGlzLHR0LGV0KTtjYXNlImxhdGluMSI6Y2FzZSJiaW5hcnkiOnJldHVybiBWKHRoaXMsdHQsZXQpO2Nhc2UiYmFzZTY0IjpyZXR1cm4geih0aGlzLHR0LGV0KTtj''@;'; + put 'put ''YXNlInVjczIiOmNhc2UidWNzLTIiOmNhc2UidXRmMTZsZSI6Y2FzZSJ1dGYtMTZsZSI6cmV0dXJuIFModGhpcyx0dCxldCk7ZGVmYXVsdDppZihhdCl0aHJvdyBuZXcgVHlwZUVycm9yKCJVbmtub3duIGVuY29kaW5nOiAiK190KTtfdD0oX3QrIiIpLnRvTG93ZXJDYXNlKCksYXQ9ITB9fWZ1''@;'; + put 'put ''bmN0aW9uIEFlKF90LHR0LGV0KXt2YXIgYXQ9X3RbdHRdO190W3R0XT1fdFtldF0sX3RbZXRdPWF0fWZ1bmN0aW9uIGtlKF90LHR0LGV0LGF0LEx0KXtpZigwPT09X3QubGVuZ3RoKXJldHVybi0xO2lmKCJzdHJpbmciPT10eXBlb2YgZXQ/KGF0PWV0LGV0PTApOmV0PjIxNDc0ODM2NDc/ZXQ9''@;'; + put 'put ''MjE0NzQ4MzY0NzpldDwtMjE0NzQ4MzY0OCYmKGV0PS0yMTQ3NDgzNjQ4KSxCdChldD0rZXQpJiYoZXQ9THQ/MDpfdC5sZW5ndGgtMSksZXQ8MCYmKGV0PV90Lmxlbmd0aCtldCksZXQ+PV90Lmxlbmd0aCl7aWYoTHQpcmV0dXJuLTE7ZXQ9X3QubGVuZ3RoLTF9ZWxzZSBpZihldDwwKXtpZigh''@;'; + put 'put ''THQpcmV0dXJuLTE7ZXQ9MH1pZigic3RyaW5nIj09dHlwZW9mIHR0JiYodHQ9Wi5mcm9tKHR0LGF0KSksWi5pc0J1ZmZlcih0dCkpcmV0dXJuIDA9PT10dC5sZW5ndGg/LTE6U2UoX3QsdHQsZXQsYXQsTHQpO2lmKCJudW1iZXIiPT10eXBlb2YgdHQpcmV0dXJuIHR0Jj0yNTUsImZ1bmN0aW9u''@;'; + put 'put ''Ij09dHlwZW9mIFVpbnQ4QXJyYXkucHJvdG90eXBlLmluZGV4T2Y/THQ/VWludDhBcnJheS5wcm90b3R5cGUuaW5kZXhPZi5jYWxsKF90LHR0LGV0KTpVaW50OEFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZi5jYWxsKF90LHR0LGV0KTpTZShfdCxbdHRdLGV0LGF0LEx0KTt0aHJvdyBuZXcg''@;'; + put 'put ''VHlwZUVycm9yKCJ2YWwgbXVzdCBiZSBzdHJpbmcsIG51bWJlciBvciBCdWZmZXIiKX1mdW5jdGlvbiBTZShfdCx0dCxldCxhdCxMdCl7dmFyIFVlLEN0PTEsZnQ9X3QubGVuZ3RoLEh0PXR0Lmxlbmd0aDtpZih2b2lkIDAhPT1hdCYmKCJ1Y3MyIj09PShhdD1TdHJpbmcoYXQpLnRvTG93ZXJD''@;'; + put 'put ''YXNlKCkpfHwidWNzLTIiPT09YXR8fCJ1dGYxNmxlIj09PWF0fHwidXRmLTE2bGUiPT09YXQpKXtpZihfdC5sZW5ndGg8Mnx8dHQubGVuZ3RoPDIpcmV0dXJuLTE7Q3Q9MixmdC89MixIdC89MixldC89Mn1mdW5jdGlvbiBHZShnbixkbil7cmV0dXJuIDE9PT1DdD9nbltkbl06Z24ucmVhZFVJ''@;'; + put 'put ''bnQxNkJFKGRuKkN0KX1pZihMdCl7dmFyIHl0PS0xO2ZvcihVZT1ldDtVZTxmdDtVZSsrKWlmKEdlKF90LFVlKT09PUdlKHR0LC0xPT09eXQ/MDpVZS15dCkpe2lmKC0xPT09eXQmJih5dD1VZSksVWUteXQrMT09PUh0KXJldHVybiB5dCpDdH1lbHNlLTEhPT15dCYmKFVlLT1VZS15dCkseXQ9''@;'; + put 'put ''LTF9ZWxzZSBmb3IoZXQrSHQ+ZnQmJihldD1mdC1IdCksVWU9ZXQ7VWU+PTA7VWUtLSl7Zm9yKHZhciBqdD0hMCxRdD0wO1F0PEh0O1F0KyspaWYoR2UoX3QsVWUrUXQpIT09R2UodHQsUXQpKXtqdD0hMTticmVha31pZihqdClyZXR1cm4gVWV9cmV0dXJuLTF9ZnVuY3Rpb24gSWUoX3QsdHQs''@;'; + put 'put ''ZXQsYXQpe2V0PU51bWJlcihldCl8fDA7dmFyIEx0PV90Lmxlbmd0aC1ldDthdD8oYXQ9TnVtYmVyKGF0KSk+THQmJihhdD1MdCk6YXQ9THQ7dmFyIEN0PXR0Lmxlbmd0aDthdD5DdC8yJiYoYXQ9Q3QvMik7Zm9yKHZhciBmdD0wO2Z0PGF0OysrZnQpe3ZhciBIdD1wYXJzZUludCh0dC5zdWJz''@;'; + put 'put ''dHIoMipmdCwyKSwxNik7aWYoQnQoSHQpKXJldHVybiBmdDtfdFtldCtmdF09SHR9cmV0dXJuIGZ0fWZ1bmN0aW9uIFRlKF90LHR0LGV0LGF0KXtyZXR1cm4gQXQoZ3QodHQsX3QubGVuZ3RoLWV0KSxfdCxldCxhdCl9ZnVuY3Rpb24gRWUoX3QsdHQsZXQsYXQpe3JldHVybiBBdChmdW5jdGlv''@;'; + put 'put ''biB3dChfdCl7Zm9yKHZhciB0dD1bXSxldD0wO2V0PF90Lmxlbmd0aDsrK2V0KXR0LnB1c2goMjU1Jl90LmNoYXJDb2RlQXQoZXQpKTtyZXR1cm4gdHR9KHR0KSxfdCxldCxhdCl9ZnVuY3Rpb24gaGUoX3QsdHQsZXQsYXQpe3JldHVybiBBdCh2dCh0dCksX3QsZXQsYXQpfWZ1bmN0aW9uIE8o''@;'; + put 'put ''X3QsdHQsZXQsYXQpe3JldHVybiBBdChmdW5jdGlvbiBtdChfdCx0dCl7Zm9yKHZhciBldCxhdCxDdD1bXSxmdD0wO2Z0PF90Lmxlbmd0aCYmISgodHQtPTIpPDApOysrZnQpYXQ9KGV0PV90LmNoYXJDb2RlQXQoZnQpKT4+OCxDdC5wdXNoKGV0JTI1NiksQ3QucHVzaChhdCk7cmV0dXJuIEN0''@;'; + put 'put ''fSh0dCxfdC5sZW5ndGgtZXQpLF90LGV0LGF0KX1mdW5jdGlvbiB6KF90LHR0LGV0KXtyZXR1cm4gbWUuZnJvbUJ5dGVBcnJheSgwPT09dHQmJmV0PT09X3QubGVuZ3RoP190Ol90LnNsaWNlKHR0LGV0KSl9ZnVuY3Rpb24gbmUoX3QsdHQsZXQpe2V0PU1hdGgubWluKF90Lmxlbmd0aCxldCk7''@;'; + put 'put ''Zm9yKHZhciBhdD1bXSxMdD10dDtMdDxldDspe3ZhciBHZSxVZSx5dCxqdCxDdD1fdFtMdF0sZnQ9bnVsbCxIdD1DdD4yMzk/NDpDdD4yMjM/MzpDdD4xOTE/MjoxO2lmKEx0K0h0PD1ldClzd2l0Y2goSHQpe2Nhc2UgMTpDdDwxMjgmJihmdD1DdCk7YnJlYWs7Y2FzZSAyOjEyOD09KDE5MiYo''@;'; + put 'put ''R2U9X3RbTHQrMV0pKSYmKGp0PSgzMSZDdCk8PDZ8NjMmR2UpPjEyNyYmKGZ0PWp0KTticmVhaztjYXNlIDM6VWU9X3RbTHQrMl0sMTI4PT0oMTkyJihHZT1fdFtMdCsxXSkpJiYxMjg9PSgxOTImVWUpJiYoanQ9KDE1JkN0KTw8MTJ8KDYzJkdlKTw8Nnw2MyZVZSk+MjA0NyYmKGp0PDU1Mjk2''@;'; + put 'put ''fHxqdD41NzM0MykmJihmdD1qdCk7YnJlYWs7Y2FzZSA0OlVlPV90W0x0KzJdLHl0PV90W0x0KzNdLDEyOD09KDE5MiYoR2U9X3RbTHQrMV0pKSYmMTI4PT0oMTkyJlVlKSYmMTI4PT0oMTkyJnl0KSYmKGp0PSgxNSZDdCk8PDE4fCg2MyZHZSk8PDEyfCg2MyZVZSk8PDZ8NjMmeXQpPjY1NTM1''@;'; + put 'put ''JiZqdDwxMTE0MTEyJiYoZnQ9anQpfW51bGw9PT1mdD8oZnQ9NjU1MzMsSHQ9MSk6ZnQ+NjU1MzUmJihhdC5wdXNoKChmdC09NjU1MzYpPj4+MTAmMTAyM3w1NTI5NiksZnQ9NTYzMjB8MTAyMyZmdCksYXQucHVzaChmdCksTHQrPUh0fXJldHVybiBmdW5jdGlvbiB4KF90KXt2YXIgdHQ9X3Qu''@;'; + put 'put ''bGVuZ3RoO2lmKHR0PD00MDk2KXJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KFN0cmluZyxfdCk7Zm9yKHZhciBldD0iIixhdD0wO2F0PHR0OylldCs9U3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShTdHJpbmcsX3Quc2xpY2UoYXQsYXQrPTQwOTYpKTtyZXR1cm4gZXR9KGF0KX1m''@;'; + put 'put ''dW5jdGlvbiBQKF90LHR0LGV0KXt2YXIgYXQ9IiI7ZXQ9TWF0aC5taW4oX3QubGVuZ3RoLGV0KTtmb3IodmFyIEx0PXR0O0x0PGV0OysrTHQpYXQrPVN0cmluZy5mcm9tQ2hhckNvZGUoMTI3Jl90W0x0XSk7cmV0dXJuIGF0fWZ1bmN0aW9uIFYoX3QsdHQsZXQpe3ZhciBhdD0iIjtldD1NYXRo''@;'; + put 'put ''Lm1pbihfdC5sZW5ndGgsZXQpO2Zvcih2YXIgTHQ9dHQ7THQ8ZXQ7KytMdClhdCs9U3RyaW5nLmZyb21DaGFyQ29kZShfdFtMdF0pO3JldHVybiBhdH1mdW5jdGlvbiBUKF90LHR0LGV0KXt2YXIgYXQ9X3QubGVuZ3RoOyghdHR8fHR0PDApJiYodHQ9MCksKCFldHx8ZXQ8MHx8ZXQ+YXQpJiYo''@;'; + put 'put ''ZXQ9YXQpO2Zvcih2YXIgTHQ9IiIsQ3Q9dHQ7Q3Q8ZXQ7KytDdClMdCs9b25bX3RbQ3RdXTtyZXR1cm4gTHR9ZnVuY3Rpb24gUyhfdCx0dCxldCl7Zm9yKHZhciBhdD1fdC5zbGljZSh0dCxldCksTHQ9IiIsQ3Q9MDtDdDxhdC5sZW5ndGgtMTtDdCs9MilMdCs9U3RyaW5nLmZyb21DaGFyQ29k''@;'; + put 'put ''ZShhdFtDdF0rMjU2KmF0W0N0KzFdKTtyZXR1cm4gTHR9ZnVuY3Rpb24gRihfdCx0dCxldCl7aWYoX3QlMSE9MHx8X3Q8MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigib2Zmc2V0IGlzIG5vdCB1aW50Iik7aWYoX3QrdHQ+ZXQpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIlRyeWluZyB0byBhY2Nlc3Mg''@;'; + put 'put ''YmV5b25kIGJ1ZmZlciBsZW5ndGgiKX1mdW5jdGlvbiB5ZShfdCx0dCxldCxhdCxMdCxDdCl7aWYoIVouaXNCdWZmZXIoX3QpKXRocm93IG5ldyBUeXBlRXJyb3IoJyJidWZmZXIiIGFyZ3VtZW50IG11c3QgYmUgYSBCdWZmZXIgaW5zdGFuY2UnKTtpZih0dD5MdHx8dHQ8Q3QpdGhyb3cgbmV3''@;'; + put 'put ''IFJhbmdlRXJyb3IoJyJ2YWx1ZSIgYXJndW1lbnQgaXMgb3V0IG9mIGJvdW5kcycpO2lmKGV0K2F0Pl90Lmxlbmd0aCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW5kZXggb3V0IG9mIHJhbmdlIil9ZnVuY3Rpb24gQ2UoX3QsdHQsZXQsYXQsTHQsQ3Qpe2lmKGV0K2F0Pl90Lmxlbmd0aCl0aHJv''@;'; + put 'put ''dyBuZXcgUmFuZ2VFcnJvcigiSW5kZXggb3V0IG9mIHJhbmdlIik7aWYoZXQ8MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW5kZXggb3V0IG9mIHJhbmdlIil9ZnVuY3Rpb24gRGUoX3QsdHQsZXQsYXQsTHQpe3JldHVybiB0dD0rdHQsZXQ+Pj49MCxMdHx8Q2UoX3QsMCxldCw0KSxCLndyaXRl''@;'; + put 'put ''KF90LHR0LGV0LGF0LDIzLDQpLGV0KzR9ZnVuY3Rpb24gUGUoX3QsdHQsZXQsYXQsTHQpe3JldHVybiB0dD0rdHQsZXQ+Pj49MCxMdHx8Q2UoX3QsMCxldCw4KSxCLndyaXRlKF90LHR0LGV0LGF0LDUyLDgpLGV0Kzh9SmUua01heExlbmd0aD1NZSwhKFouVFlQRURfQVJSQVlfU1VQUE9SVD1m''@;'; + put 'put ''dW5jdGlvbiBVKCl7dHJ5e3ZhciBfdD1uZXcgVWludDhBcnJheSgxKSx0dD17Zm9vOmZ1bmN0aW9uKCl7cmV0dXJuIDQyfX07cmV0dXJuIE9iamVjdC5zZXRQcm90b3R5cGVPZih0dCxVaW50OEFycmF5LnByb3RvdHlwZSksT2JqZWN0LnNldFByb3RvdHlwZU9mKF90LHR0KSw0Mj09PV90LmZv''@;'; + put 'put ''bygpfWNhdGNoKGV0KXtyZXR1cm4hMX19KCkpJiYidW5kZWZpbmVkIiE9dHlwZW9mIGNvbnNvbGUmJiJmdW5jdGlvbiI9PXR5cGVvZiBjb25zb2xlLmVycm9yJiZjb25zb2xlLmVycm9yKCJUaGlzIGJyb3dzZXIgbGFja3MgdHlwZWQgYXJyYXkgKFVpbnQ4QXJyYXkpIHN1cHBvcnQgd2hpY2gg''@;'; + put 'put ''aXMgcmVxdWlyZWQgYnkgYGJ1ZmZlcmAgdjUueC4gVXNlIGBidWZmZXJgIHY0LnggaWYgeW91IHJlcXVpcmUgb2xkIGJyb3dzZXIgc3VwcG9ydC4iKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoWi5wcm90b3R5cGUsInBhcmVudCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7aWYoWi5p''@;'; + put 'put ''c0J1ZmZlcih0aGlzKSlyZXR1cm4gdGhpcy5idWZmZXJ9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KFoucHJvdG90eXBlLCJvZmZzZXQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe2lmKFouaXNCdWZmZXIodGhpcykpcmV0dXJuIHRoaXMuYnl0ZU9mZnNldH19KSxaLnBvb2xTaXpl''@;'; + put 'put ''PTgxOTIsWi5mcm9tPWZ1bmN0aW9uKF90LHR0LGV0KXtyZXR1cm4gaWUoX3QsdHQsZXQpfSxPYmplY3Quc2V0UHJvdG90eXBlT2YoWi5wcm90b3R5cGUsVWludDhBcnJheS5wcm90b3R5cGUpLE9iamVjdC5zZXRQcm90b3R5cGVPZihaLFVpbnQ4QXJyYXkpLFouYWxsb2M9ZnVuY3Rpb24oX3Qs''@;'; + put 'put ''dHQsZXQpe3JldHVybiBmdW5jdGlvbiBZKF90LHR0LGV0KXtyZXR1cm4gYWUoX3QpLF90PD0wP1EoX3QpOnZvaWQgMCE9PXR0PyJzdHJpbmciPT10eXBlb2YgZXQ/UShfdCkuZmlsbCh0dCxldCk6UShfdCkuZmlsbCh0dCk6UShfdCl9KF90LHR0LGV0KX0sWi5hbGxvY1Vuc2FmZT1mdW5jdGlv''@;'; + put 'put ''bihfdCl7cmV0dXJuIFcoX3QpfSxaLmFsbG9jVW5zYWZlU2xvdz1mdW5jdGlvbihfdCl7cmV0dXJuIFcoX3QpfSxaLmlzQnVmZmVyPWZ1bmN0aW9uKHR0KXtyZXR1cm4gbnVsbCE9dHQmJiEwPT09dHQuX2lzQnVmZmVyJiZ0dCE9PVoucHJvdG90eXBlfSxaLmNvbXBhcmU9ZnVuY3Rpb24odHQs''@;'; + put 'put ''ZXQpe2lmKGh0KHR0LFVpbnQ4QXJyYXkpJiYodHQ9Wi5mcm9tKHR0LHR0Lm9mZnNldCx0dC5ieXRlTGVuZ3RoKSksaHQoZXQsVWludDhBcnJheSkmJihldD1aLmZyb20oZXQsZXQub2Zmc2V0LGV0LmJ5dGVMZW5ndGgpKSwhWi5pc0J1ZmZlcih0dCl8fCFaLmlzQnVmZmVyKGV0KSl0aHJvdyBu''@;'; + put 'put ''ZXcgVHlwZUVycm9yKCdUaGUgImJ1ZjEiLCAiYnVmMiIgYXJndW1lbnRzIG11c3QgYmUgb25lIG9mIHR5cGUgQnVmZmVyIG9yIFVpbnQ4QXJyYXknKTtpZih0dD09PWV0KXJldHVybiAwO2Zvcih2YXIgYXQ9dHQubGVuZ3RoLEx0PWV0Lmxlbmd0aCxDdD0wLGZ0PU1hdGgubWluKGF0LEx0KTtD''@;'; + put 'put ''dDxmdDsrK0N0KWlmKHR0W0N0XSE9PWV0W0N0XSl7YXQ9dHRbQ3RdLEx0PWV0W0N0XTticmVha31yZXR1cm4gYXQ8THQ/LTE6THQ8YXQ/MTowfSxaLmlzRW5jb2Rpbmc9ZnVuY3Rpb24odHQpe3N3aXRjaChTdHJpbmcodHQpLnRvTG93ZXJDYXNlKCkpe2Nhc2UiaGV4IjpjYXNlInV0ZjgiOmNh''@;'; + put 'put ''c2UidXRmLTgiOmNhc2UiYXNjaWkiOmNhc2UibGF0aW4xIjpjYXNlImJpbmFyeSI6Y2FzZSJiYXNlNjQiOmNhc2UidWNzMiI6Y2FzZSJ1Y3MtMiI6Y2FzZSJ1dGYxNmxlIjpjYXNlInV0Zi0xNmxlIjpyZXR1cm4hMDtkZWZhdWx0OnJldHVybiExfX0sWi5jb25jYXQ9ZnVuY3Rpb24odHQsZXQp''@;'; + put 'put ''e2lmKCFBcnJheS5pc0FycmF5KHR0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCcibGlzdCIgYXJndW1lbnQgbXVzdCBiZSBhbiBBcnJheSBvZiBCdWZmZXJzJyk7aWYoMD09PXR0Lmxlbmd0aClyZXR1cm4gWi5hbGxvYygwKTt2YXIgYXQ7aWYodm9pZCAwPT09ZXQpZm9yKGV0PTAsYXQ9MDthdDx0''@;'; + put 'put ''dC5sZW5ndGg7KythdClldCs9dHRbYXRdLmxlbmd0aDt2YXIgTHQ9Wi5hbGxvY1Vuc2FmZShldCksQ3Q9MDtmb3IoYXQ9MDthdDx0dC5sZW5ndGg7KythdCl7dmFyIGZ0PXR0W2F0XTtpZihodChmdCxVaW50OEFycmF5KSlDdCtmdC5sZW5ndGg+THQubGVuZ3RoP1ouZnJvbShmdCkuY29weShM''@;'; + put 'put ''dCxDdCk6VWludDhBcnJheS5wcm90b3R5cGUuc2V0LmNhbGwoTHQsZnQsQ3QpO2Vsc2V7aWYoIVouaXNCdWZmZXIoZnQpKXRocm93IG5ldyBUeXBlRXJyb3IoJyJsaXN0IiBhcmd1bWVudCBtdXN0IGJlIGFuIEFycmF5IG9mIEJ1ZmZlcnMnKTtmdC5jb3B5KEx0LEN0KX1DdCs9ZnQubGVuZ3Ro''@;'; + put 'put ''fXJldHVybiBMdH0sWi5ieXRlTGVuZ3RoPWRlLFoucHJvdG90eXBlLl9pc0J1ZmZlcj0hMCxaLnByb3RvdHlwZS5zd2FwMTY9ZnVuY3Rpb24oKXt2YXIgdHQ9dGhpcy5sZW5ndGg7aWYodHQlMiE9MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiQnVmZmVyIHNpemUgbXVzdCBiZSBhIG11bHRpcGxl''@;'; + put 'put ''IG9mIDE2LWJpdHMiKTtmb3IodmFyIGV0PTA7ZXQ8dHQ7ZXQrPTIpQWUodGhpcyxldCxldCsxKTtyZXR1cm4gdGhpc30sWi5wcm90b3R5cGUuc3dhcDMyPWZ1bmN0aW9uKCl7dmFyIHR0PXRoaXMubGVuZ3RoO2lmKHR0JTQhPTApdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkJ1ZmZlciBzaXplIG11''@;'; + put 'put ''c3QgYmUgYSBtdWx0aXBsZSBvZiAzMi1iaXRzIik7Zm9yKHZhciBldD0wO2V0PHR0O2V0Kz00KUFlKHRoaXMsZXQsZXQrMyksQWUodGhpcyxldCsxLGV0KzIpO3JldHVybiB0aGlzfSxaLnByb3RvdHlwZS5zd2FwNjQ9ZnVuY3Rpb24oKXt2YXIgdHQ9dGhpcy5sZW5ndGg7aWYodHQlOCE9MCl0''@;'; + put 'put ''aHJvdyBuZXcgUmFuZ2VFcnJvcigiQnVmZmVyIHNpemUgbXVzdCBiZSBhIG11bHRpcGxlIG9mIDY0LWJpdHMiKTtmb3IodmFyIGV0PTA7ZXQ8dHQ7ZXQrPTgpQWUodGhpcyxldCxldCs3KSxBZSh0aGlzLGV0KzEsZXQrNiksQWUodGhpcyxldCsyLGV0KzUpLEFlKHRoaXMsZXQrMyxldCs0KTty''@;'; + put 'put ''ZXR1cm4gdGhpc30sWi5wcm90b3R5cGUudG9Mb2NhbGVTdHJpbmc9Wi5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXt2YXIgdHQ9dGhpcy5sZW5ndGg7cmV0dXJuIDA9PT10dD8iIjowPT09YXJndW1lbnRzLmxlbmd0aD9uZSh0aGlzLDAsdHQpOnZlLmFwcGx5KHRoaXMsYXJndW1lbnRz''@;'; + put 'put ''KX0sWi5wcm90b3R5cGUuZXF1YWxzPWZ1bmN0aW9uKHR0KXtpZighWi5pc0J1ZmZlcih0dCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQXJndW1lbnQgbXVzdCBiZSBhIEJ1ZmZlciIpO3JldHVybiB0aGlzPT09dHR8fDA9PT1aLmNvbXBhcmUodGhpcyx0dCl9LFoucHJvdG90eXBlLmluc3BlY3Q9''@;'; + put 'put ''ZnVuY3Rpb24oKXt2YXIgdHQ9IiIsZXQ9SmUuSU5TUEVDVF9NQVhfQllURVM7cmV0dXJuIHR0PXRoaXMudG9TdHJpbmcoImhleCIsMCxldCkucmVwbGFjZSgvKC57Mn0pL2csIiQxICIpLnRyaW0oKSx0aGlzLmxlbmd0aD5ldCYmKHR0Kz0iIC4uLiAiKSwiPEJ1ZmZlciAiK3R0KyI+In0sRSYm''@;'; + put 'put ''KFoucHJvdG90eXBlW0VdPVoucHJvdG90eXBlLmluc3BlY3QpLFoucHJvdG90eXBlLmNvbXBhcmU9ZnVuY3Rpb24odHQsZXQsYXQsTHQsQ3Qpe2lmKGh0KHR0LFVpbnQ4QXJyYXkpJiYodHQ9Wi5mcm9tKHR0LHR0Lm9mZnNldCx0dC5ieXRlTGVuZ3RoKSksIVouaXNCdWZmZXIodHQpKXRocm93''@;'; + put 'put ''IG5ldyBUeXBlRXJyb3IoJ1RoZSAidGFyZ2V0IiBhcmd1bWVudCBtdXN0IGJlIG9uZSBvZiB0eXBlIEJ1ZmZlciBvciBVaW50OEFycmF5LiBSZWNlaXZlZCB0eXBlICcrdHlwZW9mIHR0KTtpZih2b2lkIDA9PT1ldCYmKGV0PTApLHZvaWQgMD09PWF0JiYoYXQ9dHQ/dHQubGVuZ3RoOjApLHZv''@;'; + put 'put ''aWQgMD09PUx0JiYoTHQ9MCksdm9pZCAwPT09Q3QmJihDdD10aGlzLmxlbmd0aCksZXQ8MHx8YXQ+dHQubGVuZ3RofHxMdDwwfHxDdD50aGlzLmxlbmd0aCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigib3V0IG9mIHJhbmdlIGluZGV4Iik7aWYoTHQ+PUN0JiZldD49YXQpcmV0dXJuIDA7aWYoTHQ+''@;'; + put 'put ''PUN0KXJldHVybi0xO2lmKGV0Pj1hdClyZXR1cm4gMTtpZih0aGlzPT09dHQpcmV0dXJuIDA7Zm9yKHZhciBmdD0oQ3Q+Pj49MCktKEx0Pj4+PTApLEh0PShhdD4+Pj0wKS0oZXQ+Pj49MCksR2U9TWF0aC5taW4oZnQsSHQpLFVlPXRoaXMuc2xpY2UoTHQsQ3QpLHl0PXR0LnNsaWNlKGV0LGF0''@;'; + put 'put ''KSxqdD0wO2p0PEdlOysranQpaWYoVWVbanRdIT09eXRbanRdKXtmdD1VZVtqdF0sSHQ9eXRbanRdO2JyZWFrfXJldHVybiBmdDxIdD8tMTpIdDxmdD8xOjB9LFoucHJvdG90eXBlLmluY2x1ZGVzPWZ1bmN0aW9uKHR0LGV0LGF0KXtyZXR1cm4tMSE9PXRoaXMuaW5kZXhPZih0dCxldCxhdCl9''@;'; + put 'put ''LFoucHJvdG90eXBlLmluZGV4T2Y9ZnVuY3Rpb24odHQsZXQsYXQpe3JldHVybiBrZSh0aGlzLHR0LGV0LGF0LCEwKX0sWi5wcm90b3R5cGUubGFzdEluZGV4T2Y9ZnVuY3Rpb24odHQsZXQsYXQpe3JldHVybiBrZSh0aGlzLHR0LGV0LGF0LCExKX0sWi5wcm90b3R5cGUud3JpdGU9ZnVuY3Rp''@;'; + put 'put ''b24odHQsZXQsYXQsTHQpe2lmKHZvaWQgMD09PWV0KUx0PSJ1dGY4IixhdD10aGlzLmxlbmd0aCxldD0wO2Vsc2UgaWYodm9pZCAwPT09YXQmJiJzdHJpbmciPT10eXBlb2YgZXQpTHQ9ZXQsYXQ9dGhpcy5sZW5ndGgsZXQ9MDtlbHNle2lmKCFpc0Zpbml0ZShldCkpdGhyb3cgbmV3IEVycm9y''@;'; + put 'put ''KCJCdWZmZXIud3JpdGUoc3RyaW5nLCBlbmNvZGluZywgb2Zmc2V0WywgbGVuZ3RoXSkgaXMgbm8gbG9uZ2VyIHN1cHBvcnRlZCIpO2V0Pj4+PTAsaXNGaW5pdGUoYXQpPyhhdD4+Pj0wLHZvaWQgMD09PUx0JiYoTHQ9InV0ZjgiKSk6KEx0PWF0LGF0PXZvaWQgMCl9dmFyIEN0PXRoaXMubGVu''@;'; + put 'put ''Z3RoLWV0O2lmKCh2b2lkIDA9PT1hdHx8YXQ+Q3QpJiYoYXQ9Q3QpLHR0Lmxlbmd0aD4wJiYoYXQ8MHx8ZXQ8MCl8fGV0PnRoaXMubGVuZ3RoKXRocm93IG5ldyBSYW5nZUVycm9yKCJBdHRlbXB0IHRvIHdyaXRlIG91dHNpZGUgYnVmZmVyIGJvdW5kcyIpO0x0fHwoTHQ9InV0ZjgiKTtmb3Io''@;'; + put 'put ''dmFyIGZ0PSExOzspc3dpdGNoKEx0KXtjYXNlImhleCI6cmV0dXJuIEllKHRoaXMsdHQsZXQsYXQpO2Nhc2UidXRmOCI6Y2FzZSJ1dGYtOCI6cmV0dXJuIFRlKHRoaXMsdHQsZXQsYXQpO2Nhc2UiYXNjaWkiOmNhc2UibGF0aW4xIjpjYXNlImJpbmFyeSI6cmV0dXJuIEVlKHRoaXMsdHQsZXQs''@;'; + put 'put ''YXQpO2Nhc2UiYmFzZTY0IjpyZXR1cm4gaGUodGhpcyx0dCxldCxhdCk7Y2FzZSJ1Y3MyIjpjYXNlInVjcy0yIjpjYXNlInV0ZjE2bGUiOmNhc2UidXRmLTE2bGUiOnJldHVybiBPKHRoaXMsdHQsZXQsYXQpO2RlZmF1bHQ6aWYoZnQpdGhyb3cgbmV3IFR5cGVFcnJvcigiVW5rbm93biBlbmNv''@;'; + put 'put ''ZGluZzogIitMdCk7THQ9KCIiK0x0KS50b0xvd2VyQ2FzZSgpLGZ0PSEwfX0sWi5wcm90b3R5cGUudG9KU09OPWZ1bmN0aW9uKCl7cmV0dXJue3R5cGU6IkJ1ZmZlciIsZGF0YTpBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbCh0aGlzLl9hcnJ8fHRoaXMsMCl9fSxaLnByb3RvdHlwZS5zbGlj''@;'; + put 'put ''ZT1mdW5jdGlvbih0dCxldCl7dmFyIGF0PXRoaXMubGVuZ3RoOyh0dD1+fnR0KTwwPyh0dCs9YXQpPDAmJih0dD0wKTp0dD5hdCYmKHR0PWF0KSwoZXQ9dm9pZCAwPT09ZXQ/YXQ6fn5ldCk8MD8oZXQrPWF0KTwwJiYoZXQ9MCk6ZXQ+YXQmJihldD1hdCksZXQ8dHQmJihldD10dCk7dmFyIEx0''@;'; + put 'put ''PXRoaXMuc3ViYXJyYXkodHQsZXQpO3JldHVybiBPYmplY3Quc2V0UHJvdG90eXBlT2YoTHQsWi5wcm90b3R5cGUpLEx0fSxaLnByb3RvdHlwZS5yZWFkVWludExFPVoucHJvdG90eXBlLnJlYWRVSW50TEU9ZnVuY3Rpb24odHQsZXQsYXQpe3R0Pj4+PTAsZXQ+Pj49MCxhdHx8Rih0dCxldCx0''@;'; + put 'put ''aGlzLmxlbmd0aCk7Zm9yKHZhciBMdD10aGlzW3R0XSxDdD0xLGZ0PTA7KytmdDxldCYmKEN0Kj0yNTYpOylMdCs9dGhpc1t0dCtmdF0qQ3Q7cmV0dXJuIEx0fSxaLnByb3RvdHlwZS5yZWFkVWludEJFPVoucHJvdG90eXBlLnJlYWRVSW50QkU9ZnVuY3Rpb24odHQsZXQsYXQpe3R0Pj4+PTAs''@;'; + put 'put ''ZXQ+Pj49MCxhdHx8Rih0dCxldCx0aGlzLmxlbmd0aCk7Zm9yKHZhciBMdD10aGlzW3R0Ky0tZXRdLEN0PTE7ZXQ+MCYmKEN0Kj0yNTYpOylMdCs9dGhpc1t0dCstLWV0XSpDdDtyZXR1cm4gTHR9LFoucHJvdG90eXBlLnJlYWRVaW50OD1aLnByb3RvdHlwZS5yZWFkVUludDg9ZnVuY3Rpb24o''@;'; + put 'put ''dHQsZXQpe3JldHVybiB0dD4+Pj0wLGV0fHxGKHR0LDEsdGhpcy5sZW5ndGgpLHRoaXNbdHRdfSxaLnByb3RvdHlwZS5yZWFkVWludDE2TEU9Wi5wcm90b3R5cGUucmVhZFVJbnQxNkxFPWZ1bmN0aW9uKHR0LGV0KXtyZXR1cm4gdHQ+Pj49MCxldHx8Rih0dCwyLHRoaXMubGVuZ3RoKSx0aGlz''@;'; + put 'put ''W3R0XXx0aGlzW3R0KzFdPDw4fSxaLnByb3RvdHlwZS5yZWFkVWludDE2QkU9Wi5wcm90b3R5cGUucmVhZFVJbnQxNkJFPWZ1bmN0aW9uKHR0LGV0KXtyZXR1cm4gdHQ+Pj49MCxldHx8Rih0dCwyLHRoaXMubGVuZ3RoKSx0aGlzW3R0XTw8OHx0aGlzW3R0KzFdfSxaLnByb3RvdHlwZS5yZWFk''@;'; + put 'put ''VWludDMyTEU9Wi5wcm90b3R5cGUucmVhZFVJbnQzMkxFPWZ1bmN0aW9uKHR0LGV0KXtyZXR1cm4gdHQ+Pj49MCxldHx8Rih0dCw0LHRoaXMubGVuZ3RoKSwodGhpc1t0dF18dGhpc1t0dCsxXTw8OHx0aGlzW3R0KzJdPDwxNikrMTY3NzcyMTYqdGhpc1t0dCszXX0sWi5wcm90b3R5cGUucmVh''@;'; + put 'put ''ZFVpbnQzMkJFPVoucHJvdG90eXBlLnJlYWRVSW50MzJCRT1mdW5jdGlvbih0dCxldCl7cmV0dXJuIHR0Pj4+PTAsZXR8fEYodHQsNCx0aGlzLmxlbmd0aCksMTY3NzcyMTYqdGhpc1t0dF0rKHRoaXNbdHQrMV08PDE2fHRoaXNbdHQrMl08PDh8dGhpc1t0dCszXSl9LFoucHJvdG90eXBlLnJl''@;'; + put 'put ''YWRJbnRMRT1mdW5jdGlvbih0dCxldCxhdCl7dHQ+Pj49MCxldD4+Pj0wLGF0fHxGKHR0LGV0LHRoaXMubGVuZ3RoKTtmb3IodmFyIEx0PXRoaXNbdHRdLEN0PTEsZnQ9MDsrK2Z0PGV0JiYoQ3QqPTI1Nik7KUx0Kz10aGlzW3R0K2Z0XSpDdDtyZXR1cm4gTHQ+PShDdCo9MTI4KSYmKEx0LT1N''@;'; + put 'put ''YXRoLnBvdygyLDgqZXQpKSxMdH0sWi5wcm90b3R5cGUucmVhZEludEJFPWZ1bmN0aW9uKHR0LGV0LGF0KXt0dD4+Pj0wLGV0Pj4+PTAsYXR8fEYodHQsZXQsdGhpcy5sZW5ndGgpO2Zvcih2YXIgTHQ9ZXQsQ3Q9MSxmdD10aGlzW3R0Ky0tTHRdO0x0PjAmJihDdCo9MjU2KTspZnQrPXRoaXNb''@;'; + put 'put ''dHQrLS1MdF0qQ3Q7cmV0dXJuIGZ0Pj0oQ3QqPTEyOCkmJihmdC09TWF0aC5wb3coMiw4KmV0KSksZnR9LFoucHJvdG90eXBlLnJlYWRJbnQ4PWZ1bmN0aW9uKHR0LGV0KXtyZXR1cm4gdHQ+Pj49MCxldHx8Rih0dCwxLHRoaXMubGVuZ3RoKSwxMjgmdGhpc1t0dF0/LTEqKDI1NS10aGlzW3R0''@;'; + put 'put ''XSsxKTp0aGlzW3R0XX0sWi5wcm90b3R5cGUucmVhZEludDE2TEU9ZnVuY3Rpb24odHQsZXQpe3R0Pj4+PTAsZXR8fEYodHQsMix0aGlzLmxlbmd0aCk7dmFyIGF0PXRoaXNbdHRdfHRoaXNbdHQrMV08PDg7cmV0dXJuIDMyNzY4JmF0PzQyOTQ5MDE3NjB8YXQ6YXR9LFoucHJvdG90eXBlLnJl''@;'; + put 'put ''YWRJbnQxNkJFPWZ1bmN0aW9uKHR0LGV0KXt0dD4+Pj0wLGV0fHxGKHR0LDIsdGhpcy5sZW5ndGgpO3ZhciBhdD10aGlzW3R0KzFdfHRoaXNbdHRdPDw4O3JldHVybiAzMjc2OCZhdD80Mjk0OTAxNzYwfGF0OmF0fSxaLnByb3RvdHlwZS5yZWFkSW50MzJMRT1mdW5jdGlvbih0dCxldCl7cmV0''@;'; + put 'put ''dXJuIHR0Pj4+PTAsZXR8fEYodHQsNCx0aGlzLmxlbmd0aCksdGhpc1t0dF18dGhpc1t0dCsxXTw8OHx0aGlzW3R0KzJdPDwxNnx0aGlzW3R0KzNdPDwyNH0sWi5wcm90b3R5cGUucmVhZEludDMyQkU9ZnVuY3Rpb24odHQsZXQpe3JldHVybiB0dD4+Pj0wLGV0fHxGKHR0LDQsdGhpcy5sZW5n''@;'; + put 'put ''dGgpLHRoaXNbdHRdPDwyNHx0aGlzW3R0KzFdPDwxNnx0aGlzW3R0KzJdPDw4fHRoaXNbdHQrM119LFoucHJvdG90eXBlLnJlYWRGbG9hdExFPWZ1bmN0aW9uKHR0LGV0KXtyZXR1cm4gdHQ+Pj49MCxldHx8Rih0dCw0LHRoaXMubGVuZ3RoKSxCLnJlYWQodGhpcyx0dCwhMCwyMyw0KX0sWi5w''@;'; + put 'put ''cm90b3R5cGUucmVhZEZsb2F0QkU9ZnVuY3Rpb24odHQsZXQpe3JldHVybiB0dD4+Pj0wLGV0fHxGKHR0LDQsdGhpcy5sZW5ndGgpLEIucmVhZCh0aGlzLHR0LCExLDIzLDQpfSxaLnByb3RvdHlwZS5yZWFkRG91YmxlTEU9ZnVuY3Rpb24odHQsZXQpe3JldHVybiB0dD4+Pj0wLGV0fHxGKHR0''@;'; + put 'put ''LDgsdGhpcy5sZW5ndGgpLEIucmVhZCh0aGlzLHR0LCEwLDUyLDgpfSxaLnByb3RvdHlwZS5yZWFkRG91YmxlQkU9ZnVuY3Rpb24odHQsZXQpe3JldHVybiB0dD4+Pj0wLGV0fHxGKHR0LDgsdGhpcy5sZW5ndGgpLEIucmVhZCh0aGlzLHR0LCExLDUyLDgpfSxaLnByb3RvdHlwZS53cml0ZVVp''@;'; + put 'put ''bnRMRT1aLnByb3RvdHlwZS53cml0ZVVJbnRMRT1mdW5jdGlvbih0dCxldCxhdCxMdCl7dHQ9K3R0LGV0Pj4+PTAsYXQ+Pj49MCxMdHx8eWUodGhpcyx0dCxldCxhdCxNYXRoLnBvdygyLDgqYXQpLTEsMCk7dmFyIGZ0PTEsSHQ9MDtmb3IodGhpc1tldF09MjU1JnR0OysrSHQ8YXQmJihmdCo9''@;'; + put 'put ''MjU2KTspdGhpc1tldCtIdF09dHQvZnQmMjU1O3JldHVybiBldCthdH0sWi5wcm90b3R5cGUud3JpdGVVaW50QkU9Wi5wcm90b3R5cGUud3JpdGVVSW50QkU9ZnVuY3Rpb24odHQsZXQsYXQsTHQpe3R0PSt0dCxldD4+Pj0wLGF0Pj4+PTAsTHR8fHllKHRoaXMsdHQsZXQsYXQsTWF0aC5wb3co''@;'; + put 'put ''Miw4KmF0KS0xLDApO3ZhciBmdD1hdC0xLEh0PTE7Zm9yKHRoaXNbZXQrZnRdPTI1NSZ0dDstLWZ0Pj0wJiYoSHQqPTI1Nik7KXRoaXNbZXQrZnRdPXR0L0h0JjI1NTtyZXR1cm4gZXQrYXR9LFoucHJvdG90eXBlLndyaXRlVWludDg9Wi5wcm90b3R5cGUud3JpdGVVSW50OD1mdW5jdGlvbih0''@;'; + put 'put ''dCxldCxhdCl7cmV0dXJuIHR0PSt0dCxldD4+Pj0wLGF0fHx5ZSh0aGlzLHR0LGV0LDEsMjU1LDApLHRoaXNbZXRdPTI1NSZ0dCxldCsxfSxaLnByb3RvdHlwZS53cml0ZVVpbnQxNkxFPVoucHJvdG90eXBlLndyaXRlVUludDE2TEU9ZnVuY3Rpb24odHQsZXQsYXQpe3JldHVybiB0dD0rdHQs''@;'; + put 'put ''ZXQ+Pj49MCxhdHx8eWUodGhpcyx0dCxldCwyLDY1NTM1LDApLHRoaXNbZXRdPTI1NSZ0dCx0aGlzW2V0KzFdPXR0Pj4+OCxldCsyfSxaLnByb3RvdHlwZS53cml0ZVVpbnQxNkJFPVoucHJvdG90eXBlLndyaXRlVUludDE2QkU9ZnVuY3Rpb24odHQsZXQsYXQpe3JldHVybiB0dD0rdHQsZXQ+''@;'; + put 'put ''Pj49MCxhdHx8eWUodGhpcyx0dCxldCwyLDY1NTM1LDApLHRoaXNbZXRdPXR0Pj4+OCx0aGlzW2V0KzFdPTI1NSZ0dCxldCsyfSxaLnByb3RvdHlwZS53cml0ZVVpbnQzMkxFPVoucHJvdG90eXBlLndyaXRlVUludDMyTEU9ZnVuY3Rpb24odHQsZXQsYXQpe3JldHVybiB0dD0rdHQsZXQ+Pj49''@;'; + put 'put ''MCxhdHx8eWUodGhpcyx0dCxldCw0LDQyOTQ5NjcyOTUsMCksdGhpc1tldCszXT10dD4+PjI0LHRoaXNbZXQrMl09dHQ+Pj4xNix0aGlzW2V0KzFdPXR0Pj4+OCx0aGlzW2V0XT0yNTUmdHQsZXQrNH0sWi5wcm90b3R5cGUud3JpdGVVaW50MzJCRT1aLnByb3RvdHlwZS53cml0ZVVJbnQzMkJF''@;'; + put 'put ''PWZ1bmN0aW9uKHR0LGV0LGF0KXtyZXR1cm4gdHQ9K3R0LGV0Pj4+PTAsYXR8fHllKHRoaXMsdHQsZXQsNCw0Mjk0OTY3Mjk1LDApLHRoaXNbZXRdPXR0Pj4+MjQsdGhpc1tldCsxXT10dD4+PjE2LHRoaXNbZXQrMl09dHQ+Pj44LHRoaXNbZXQrM109MjU1JnR0LGV0KzR9LFoucHJvdG90eXBl''@;'; + put 'put ''LndyaXRlSW50TEU9ZnVuY3Rpb24odHQsZXQsYXQsTHQpe2lmKHR0PSt0dCxldD4+Pj0wLCFMdCl7dmFyIEN0PU1hdGgucG93KDIsOCphdC0xKTt5ZSh0aGlzLHR0LGV0LGF0LEN0LTEsLUN0KX12YXIgZnQ9MCxIdD0xLEdlPTA7Zm9yKHRoaXNbZXRdPTI1NSZ0dDsrK2Z0PGF0JiYoSHQqPTI1''@;'; + put 'put ''Nik7KXR0PDAmJjA9PT1HZSYmMCE9PXRoaXNbZXQrZnQtMV0mJihHZT0xKSx0aGlzW2V0K2Z0XT0odHQvSHQ+PjApLUdlJjI1NTtyZXR1cm4gZXQrYXR9LFoucHJvdG90eXBlLndyaXRlSW50QkU9ZnVuY3Rpb24odHQsZXQsYXQsTHQpe2lmKHR0PSt0dCxldD4+Pj0wLCFMdCl7dmFyIEN0PU1h''@;'; + put 'put ''dGgucG93KDIsOCphdC0xKTt5ZSh0aGlzLHR0LGV0LGF0LEN0LTEsLUN0KX12YXIgZnQ9YXQtMSxIdD0xLEdlPTA7Zm9yKHRoaXNbZXQrZnRdPTI1NSZ0dDstLWZ0Pj0wJiYoSHQqPTI1Nik7KXR0PDAmJjA9PT1HZSYmMCE9PXRoaXNbZXQrZnQrMV0mJihHZT0xKSx0aGlzW2V0K2Z0XT0odHQv''@;'; + put 'put ''SHQ+PjApLUdlJjI1NTtyZXR1cm4gZXQrYXR9LFoucHJvdG90eXBlLndyaXRlSW50OD1mdW5jdGlvbih0dCxldCxhdCl7cmV0dXJuIHR0PSt0dCxldD4+Pj0wLGF0fHx5ZSh0aGlzLHR0LGV0LDEsMTI3LC0xMjgpLHR0PDAmJih0dD0yNTUrdHQrMSksdGhpc1tldF09MjU1JnR0LGV0KzF9LFou''@;'; + put 'put ''cHJvdG90eXBlLndyaXRlSW50MTZMRT1mdW5jdGlvbih0dCxldCxhdCl7cmV0dXJuIHR0PSt0dCxldD4+Pj0wLGF0fHx5ZSh0aGlzLHR0LGV0LDIsMzI3NjcsLTMyNzY4KSx0aGlzW2V0XT0yNTUmdHQsdGhpc1tldCsxXT10dD4+PjgsZXQrMn0sWi5wcm90b3R5cGUud3JpdGVJbnQxNkJFPWZ1''@;'; + put 'put ''bmN0aW9uKHR0LGV0LGF0KXtyZXR1cm4gdHQ9K3R0LGV0Pj4+PTAsYXR8fHllKHRoaXMsdHQsZXQsMiwzMjc2NywtMzI3NjgpLHRoaXNbZXRdPXR0Pj4+OCx0aGlzW2V0KzFdPTI1NSZ0dCxldCsyfSxaLnByb3RvdHlwZS53cml0ZUludDMyTEU9ZnVuY3Rpb24odHQsZXQsYXQpe3JldHVybiB0''@;'; + put 'put ''dD0rdHQsZXQ+Pj49MCxhdHx8eWUodGhpcyx0dCxldCw0LDIxNDc0ODM2NDcsLTIxNDc0ODM2NDgpLHRoaXNbZXRdPTI1NSZ0dCx0aGlzW2V0KzFdPXR0Pj4+OCx0aGlzW2V0KzJdPXR0Pj4+MTYsdGhpc1tldCszXT10dD4+PjI0LGV0KzR9LFoucHJvdG90eXBlLndyaXRlSW50MzJCRT1mdW5j''@;'; + put 'put ''dGlvbih0dCxldCxhdCl7cmV0dXJuIHR0PSt0dCxldD4+Pj0wLGF0fHx5ZSh0aGlzLHR0LGV0LDQsMjE0NzQ4MzY0NywtMjE0NzQ4MzY0OCksdHQ8MCYmKHR0PTQyOTQ5NjcyOTUrdHQrMSksdGhpc1tldF09dHQ+Pj4yNCx0aGlzW2V0KzFdPXR0Pj4+MTYsdGhpc1tldCsyXT10dD4+PjgsdGhp''@;'; + put 'put ''c1tldCszXT0yNTUmdHQsZXQrNH0sWi5wcm90b3R5cGUud3JpdGVGbG9hdExFPWZ1bmN0aW9uKHR0LGV0LGF0KXtyZXR1cm4gRGUodGhpcyx0dCxldCwhMCxhdCl9LFoucHJvdG90eXBlLndyaXRlRmxvYXRCRT1mdW5jdGlvbih0dCxldCxhdCl7cmV0dXJuIERlKHRoaXMsdHQsZXQsITEsYXQp''@;'; + put 'put ''fSxaLnByb3RvdHlwZS53cml0ZURvdWJsZUxFPWZ1bmN0aW9uKHR0LGV0LGF0KXtyZXR1cm4gUGUodGhpcyx0dCxldCwhMCxhdCl9LFoucHJvdG90eXBlLndyaXRlRG91YmxlQkU9ZnVuY3Rpb24odHQsZXQsYXQpe3JldHVybiBQZSh0aGlzLHR0LGV0LCExLGF0KX0sWi5wcm90b3R5cGUuY29w''@;'; + put 'put ''eT1mdW5jdGlvbih0dCxldCxhdCxMdCl7aWYoIVouaXNCdWZmZXIodHQpKXRocm93IG5ldyBUeXBlRXJyb3IoImFyZ3VtZW50IHNob3VsZCBiZSBhIEJ1ZmZlciIpO2lmKGF0fHwoYXQ9MCksIUx0JiYwIT09THQmJihMdD10aGlzLmxlbmd0aCksZXQ+PXR0Lmxlbmd0aCYmKGV0PXR0Lmxlbmd0''@;'; + put 'put ''aCksZXR8fChldD0wKSxMdD4wJiZMdDxhdCYmKEx0PWF0KSxMdD09PWF0fHwwPT09dHQubGVuZ3RofHwwPT09dGhpcy5sZW5ndGgpcmV0dXJuIDA7aWYoZXQ8MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigidGFyZ2V0U3RhcnQgb3V0IG9mIGJvdW5kcyIpO2lmKGF0PDB8fGF0Pj10aGlzLmxlbmd0''@;'; + put 'put ''aCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW5kZXggb3V0IG9mIHJhbmdlIik7aWYoTHQ8MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigic291cmNlRW5kIG91dCBvZiBib3VuZHMiKTtMdD50aGlzLmxlbmd0aCYmKEx0PXRoaXMubGVuZ3RoKSx0dC5sZW5ndGgtZXQ8THQtYXQmJihMdD10dC5sZW5n''@;'; + put 'put ''dGgtZXQrYXQpO3ZhciBDdD1MdC1hdDtyZXR1cm4gdGhpcz09PXR0JiYiZnVuY3Rpb24iPT10eXBlb2YgVWludDhBcnJheS5wcm90b3R5cGUuY29weVdpdGhpbj90aGlzLmNvcHlXaXRoaW4oZXQsYXQsTHQpOlVpbnQ4QXJyYXkucHJvdG90eXBlLnNldC5jYWxsKHR0LHRoaXMuc3ViYXJyYXko''@;'; + put 'put ''YXQsTHQpLGV0KSxDdH0sWi5wcm90b3R5cGUuZmlsbD1mdW5jdGlvbih0dCxldCxhdCxMdCl7aWYoInN0cmluZyI9PXR5cGVvZiB0dCl7aWYoInN0cmluZyI9PXR5cGVvZiBldD8oTHQ9ZXQsZXQ9MCxhdD10aGlzLmxlbmd0aCk6InN0cmluZyI9PXR5cGVvZiBhdCYmKEx0PWF0LGF0PXRoaXMu''@;'; + put 'put ''bGVuZ3RoKSx2b2lkIDAhPT1MdCYmInN0cmluZyIhPXR5cGVvZiBMdCl0aHJvdyBuZXcgVHlwZUVycm9yKCJlbmNvZGluZyBtdXN0IGJlIGEgc3RyaW5nIik7aWYoInN0cmluZyI9PXR5cGVvZiBMdCYmIVouaXNFbmNvZGluZyhMdCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiVW5rbm93biBlbmNv''@;'; + put 'put ''ZGluZzogIitMdCk7aWYoMT09PXR0Lmxlbmd0aCl7dmFyIEN0PXR0LmNoYXJDb2RlQXQoMCk7KCJ1dGY4Ij09PUx0JiZDdDwxMjh8fCJsYXRpbjEiPT09THQpJiYodHQ9Q3QpfX1lbHNlIm51bWJlciI9PXR5cGVvZiB0dD90dCY9MjU1OiJib29sZWFuIj09dHlwZW9mIHR0JiYodHQ9TnVtYmVy''@;'; + put 'put ''KHR0KSk7aWYoZXQ8MHx8dGhpcy5sZW5ndGg8ZXR8fHRoaXMubGVuZ3RoPGF0KXRocm93IG5ldyBSYW5nZUVycm9yKCJPdXQgb2YgcmFuZ2UgaW5kZXgiKTtpZihhdDw9ZXQpcmV0dXJuIHRoaXM7dmFyIGZ0O2lmKGV0Pj4+PTAsYXQ9dm9pZCAwPT09YXQ/dGhpcy5sZW5ndGg6YXQ+Pj4wLHR0''@;'; + put 'put ''fHwodHQ9MCksIm51bWJlciI9PXR5cGVvZiB0dClmb3IoZnQ9ZXQ7ZnQ8YXQ7KytmdCl0aGlzW2Z0XT10dDtlbHNle3ZhciBIdD1aLmlzQnVmZmVyKHR0KT90dDpaLmZyb20odHQsTHQpLEdlPUh0Lmxlbmd0aDtpZigwPT09R2UpdGhyb3cgbmV3IFR5cGVFcnJvcignVGhlIHZhbHVlICInK3R0''@;'; + put 'put ''KyciIGlzIGludmFsaWQgZm9yIGFyZ3VtZW50ICJ2YWx1ZSInKTtmb3IoZnQ9MDtmdDxhdC1ldDsrK2Z0KXRoaXNbZnQrZXRdPUh0W2Z0JUdlXX1yZXR1cm4gdGhpc307dmFyIFFlPS9bXisvMC05QS1aYS16LV9dL2c7ZnVuY3Rpb24gZ3QoX3QsdHQpe3R0PXR0fHwxLzA7Zm9yKHZhciBldCxh''@;'; + put 'put ''dD1fdC5sZW5ndGgsTHQ9bnVsbCxDdD1bXSxmdD0wO2Z0PGF0OysrZnQpe2lmKChldD1fdC5jaGFyQ29kZUF0KGZ0KSk+NTUyOTUmJmV0PDU3MzQ0KXtpZighTHQpe2lmKGV0PjU2MzE5KXsodHQtPTMpPi0xJiZDdC5wdXNoKDIzOSwxOTEsMTg5KTtjb250aW51ZX1pZihmdCsxPT09YXQpeyh0''@;'; + put 'put ''dC09Myk+LTEmJkN0LnB1c2goMjM5LDE5MSwxODkpO2NvbnRpbnVlfUx0PWV0O2NvbnRpbnVlfWlmKGV0PDU2MzIwKXsodHQtPTMpPi0xJiZDdC5wdXNoKDIzOSwxOTEsMTg5KSxMdD1ldDtjb250aW51ZX1ldD02NTUzNisoTHQtNTUyOTY8PDEwfGV0LTU2MzIwKX1lbHNlIEx0JiYodHQtPTMp''@;'; + put 'put ''Pi0xJiZDdC5wdXNoKDIzOSwxOTEsMTg5KTtpZihMdD1udWxsLGV0PDEyOCl7aWYoKHR0LT0xKTwwKWJyZWFrO0N0LnB1c2goZXQpfWVsc2UgaWYoZXQ8MjA0OCl7aWYoKHR0LT0yKTwwKWJyZWFrO0N0LnB1c2goZXQ+PjZ8MTkyLDYzJmV0fDEyOCl9ZWxzZSBpZihldDw2NTUzNil7aWYoKHR0''@;'; + put 'put ''LT0zKTwwKWJyZWFrO0N0LnB1c2goZXQ+PjEyfDIyNCxldD4+NiY2M3wxMjgsNjMmZXR8MTI4KX1lbHNle2lmKCEoZXQ8MTExNDExMikpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIGNvZGUgcG9pbnQiKTtpZigodHQtPTQpPDApYnJlYWs7Q3QucHVzaChldD4+MTh8MjQwLGV0Pj4xMiY2M3wx''@;'; + put 'put ''MjgsZXQ+PjYmNjN8MTI4LDYzJmV0fDEyOCl9fXJldHVybiBDdH1mdW5jdGlvbiB2dChfdCl7cmV0dXJuIG1lLnRvQnl0ZUFycmF5KGZ1bmN0aW9uICRlKF90KXtpZigoX3Q9KF90PV90LnNwbGl0KCI9IilbMF0pLnRyaW0oKS5yZXBsYWNlKFFlLCIiKSkubGVuZ3RoPDIpcmV0dXJuIiI7Zm9y''@;'; + put 'put ''KDtfdC5sZW5ndGglNCE9MDspX3QrPSI9IjtyZXR1cm4gX3R9KF90KSl9ZnVuY3Rpb24gQXQoX3QsdHQsZXQsYXQpe2Zvcih2YXIgTHQ9MDtMdDxhdCYmIShMdCtldD49dHQubGVuZ3RofHxMdD49X3QubGVuZ3RoKTsrK0x0KXR0W0x0K2V0XT1fdFtMdF07cmV0dXJuIEx0fWZ1bmN0aW9uIGh0''@;'; + put 'put ''KF90LHR0KXtyZXR1cm4gX3QgaW5zdGFuY2VvZiB0dHx8bnVsbCE9X3QmJm51bGwhPV90LmNvbnN0cnVjdG9yJiZudWxsIT1fdC5jb25zdHJ1Y3Rvci5uYW1lJiZfdC5jb25zdHJ1Y3Rvci5uYW1lPT09dHQubmFtZX1mdW5jdGlvbiBCdChfdCl7cmV0dXJuIF90IT1fdH12YXIgb249ZnVuY3Rp''@;'; + put 'put ''b24oKXtmb3IodmFyIF90PSIwMTIzNDU2Nzg5YWJjZGVmIix0dD1uZXcgQXJyYXkoMjU2KSxldD0wO2V0PDE2OysrZXQpZm9yKHZhciBhdD0xNipldCxMdD0wO0x0PDE2OysrTHQpdHRbYXQrTHRdPV90W2V0XStfdFtMdF07cmV0dXJuIHR0fSgpfSw2MTA1MjooWGUsSmUsTCk9Pnt2YXIgbWU9''@;'; + put 'put ''TCg3MzUwMikuQnVmZmVyLEI9TCgyOTUpLlRyYW5zZm9ybSxFPUwoNzMwNTQpLnM7ZnVuY3Rpb24gVShRKXtCLmNhbGwodGhpcyksdGhpcy5oYXNoTW9kZT0ic3RyaW5nIj09dHlwZW9mIFEsdGhpcy5oYXNoTW9kZT90aGlzW1FdPXRoaXMuX2ZpbmFsT3JEaWdlc3Q6dGhpcy5maW5hbD10aGlz''@;'; + put 'put ''Ll9maW5hbE9yRGlnZXN0LHRoaXMuX2ZpbmFsJiYodGhpcy5fX2ZpbmFsPXRoaXMuX2ZpbmFsLHRoaXMuX2ZpbmFsPW51bGwpLHRoaXMuX2RlY29kZXI9bnVsbCx0aGlzLl9lbmNvZGluZz1udWxsfUwoODM4OTQpKFUsQiksVS5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKFEsWixpZSl7InN0''@;'; + put 'put ''cmluZyI9PXR5cGVvZiBRJiYoUT1tZS5mcm9tKFEsWikpO3ZhciBhZT10aGlzLl91cGRhdGUoUSk7cmV0dXJuIHRoaXMuaGFzaE1vZGU/dGhpczooaWUmJihhZT10aGlzLl90b1N0cmluZyhhZSxpZSkpLGFlKX0sVS5wcm90b3R5cGUuc2V0QXV0b1BhZGRpbmc9ZnVuY3Rpb24oKXt9LFUucHJv''@;'; + put 'put ''dG90eXBlLmdldEF1dGhUYWc9ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoInRyeWluZyB0byBnZXQgYXV0aCB0YWcgaW4gdW5zdXBwb3J0ZWQgc3RhdGUiKX0sVS5wcm90b3R5cGUuc2V0QXV0aFRhZz1mdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcigidHJ5aW5nIHRvIHNldCBhdXRoIHRh''@;'; + put 'put ''ZyBpbiB1bnN1cHBvcnRlZCBzdGF0ZSIpfSxVLnByb3RvdHlwZS5zZXRBQUQ9ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoInRyeWluZyB0byBzZXQgYWFkIGluIHVuc3VwcG9ydGVkIHN0YXRlIil9LFUucHJvdG90eXBlLl90cmFuc2Zvcm09ZnVuY3Rpb24oUSxaLGllKXt2YXIgYWU7dHJ5''@;'; + put 'put ''e3RoaXMuaGFzaE1vZGU/dGhpcy5fdXBkYXRlKFEpOnRoaXMucHVzaCh0aGlzLl91cGRhdGUoUSkpfWNhdGNoKFkpe2FlPVl9ZmluYWxseXtpZShhZSl9fSxVLnByb3RvdHlwZS5fZmx1c2g9ZnVuY3Rpb24oUSl7dmFyIFo7dHJ5e3RoaXMucHVzaCh0aGlzLl9fZmluYWwoKSl9Y2F0Y2goaWUp''@;'; + put 'put ''e1o9aWV9UShaKX0sVS5wcm90b3R5cGUuX2ZpbmFsT3JEaWdlc3Q9ZnVuY3Rpb24oUSl7dmFyIFo9dGhpcy5fX2ZpbmFsKCl8fG1lLmFsbG9jKDApO3JldHVybiBRJiYoWj10aGlzLl90b1N0cmluZyhaLFEsITApKSxafSxVLnByb3RvdHlwZS5fdG9TdHJpbmc9ZnVuY3Rpb24oUSxaLGllKXtp''@;'; + put 'put ''Zih0aGlzLl9kZWNvZGVyfHwodGhpcy5fZGVjb2Rlcj1uZXcgRShaKSx0aGlzLl9lbmNvZGluZz1aKSx0aGlzLl9lbmNvZGluZyE9PVopdGhyb3cgbmV3IEVycm9yKCJjYW4ndCBzd2l0Y2ggZW5jb2RpbmdzIik7dmFyIGFlPXRoaXMuX2RlY29kZXIud3JpdGUoUSk7cmV0dXJuIGllJiYoYWUr''@;'; + put 'put ''PXRoaXMuX2RlY29kZXIuZW5kKCkpLGFlfSxYZS5leHBvcnRzPVV9LDc0NzQ2OihYZSxKZSxMKT0+e3ZhciBtZT1MKDU3NzE1KSxCPUwoNDY0MjIpO1hlLmV4cG9ydHM9ZnVuY3Rpb24oWil7cmV0dXJuIG5ldyBNZShaKX07dmFyIEU9e3NlY3AyNTZrMTp7bmFtZToic2VjcDI1NmsxIixieXRl''@;'; + put 'put ''TGVuZ3RoOjMyfSxzZWNwMjI0cjE6e25hbWU6InAyMjQiLGJ5dGVMZW5ndGg6Mjh9LHByaW1lMjU2djE6e25hbWU6InAyNTYiLGJ5dGVMZW5ndGg6MzJ9LHByaW1lMTkydjE6e25hbWU6InAxOTIiLGJ5dGVMZW5ndGg6MjR9LGVkMjU1MTk6e25hbWU6ImVkMjU1MTkiLGJ5dGVMZW5ndGg6MzJ9''@;'; + put 'put ''LHNlY3AzODRyMTp7bmFtZToicDM4NCIsYnl0ZUxlbmd0aDo0OH0sc2VjcDUyMXIxOntuYW1lOiJwNTIxIixieXRlTGVuZ3RoOjY2fX07ZnVuY3Rpb24gTWUoUSl7dGhpcy5jdXJ2ZVR5cGU9RVtRXSx0aGlzLmN1cnZlVHlwZXx8KHRoaXMuY3VydmVUeXBlPXtuYW1lOlF9KSx0aGlzLmN1cnZl''@;'; + put 'put ''PW5ldyBtZS5lYyh0aGlzLmN1cnZlVHlwZS5uYW1lKSx0aGlzLmtleXM9dm9pZCAwfWZ1bmN0aW9uIFUoUSxaLGllKXtBcnJheS5pc0FycmF5KFEpfHwoUT1RLnRvQXJyYXkoKSk7dmFyIGFlPW5ldyBCdWZmZXIoUSk7aWYoaWUmJmFlLmxlbmd0aDxpZSl7dmFyIFk9bmV3IEJ1ZmZlcihpZS1h''@;'; + put 'put ''ZS5sZW5ndGgpO1kuZmlsbCgwKSxhZT1CdWZmZXIuY29uY2F0KFtZLGFlXSl9cmV0dXJuIFo/YWUudG9TdHJpbmcoWik6YWV9RS5wMjI0PUUuc2VjcDIyNHIxLEUucDI1Nj1FLnNlY3AyNTZyMT1FLnByaW1lMjU2djEsRS5wMTkyPUUuc2VjcDE5MnIxPUUucHJpbWUxOTJ2MSxFLnAzODQ9RS5z''@;'; + put 'put ''ZWNwMzg0cjEsRS5wNTIxPUUuc2VjcDUyMXIxLE1lLnByb3RvdHlwZS5nZW5lcmF0ZUtleXM9ZnVuY3Rpb24oUSxaKXtyZXR1cm4gdGhpcy5rZXlzPXRoaXMuY3VydmUuZ2VuS2V5UGFpcigpLHRoaXMuZ2V0UHVibGljS2V5KFEsWil9LE1lLnByb3RvdHlwZS5jb21wdXRlU2VjcmV0PWZ1bmN0''@;'; + put 'put ''aW9uKFEsWixpZSl7cmV0dXJuIFo9Wnx8InV0ZjgiLEJ1ZmZlci5pc0J1ZmZlcihRKXx8KFE9bmV3IEJ1ZmZlcihRLFopKSxVKHRoaXMuY3VydmUua2V5RnJvbVB1YmxpYyhRKS5nZXRQdWJsaWMoKS5tdWwodGhpcy5rZXlzLmdldFByaXZhdGUoKSkuZ2V0WCgpLGllLHRoaXMuY3VydmVUeXBl''@;'; + put 'put ''LmJ5dGVMZW5ndGgpfSxNZS5wcm90b3R5cGUuZ2V0UHVibGljS2V5PWZ1bmN0aW9uKFEsWil7dmFyIGllPXRoaXMua2V5cy5nZXRQdWJsaWMoImNvbXByZXNzZWQiPT09WiwhMCk7cmV0dXJuImh5YnJpZCI9PT1aJiYoaWVbMF09aWVbaWUubGVuZ3RoLTFdJTI/Nzo2KSxVKGllLFEpfSxNZS5w''@;'; + put 'put ''cm90b3R5cGUuZ2V0UHJpdmF0ZUtleT1mdW5jdGlvbihRKXtyZXR1cm4gVSh0aGlzLmtleXMuZ2V0UHJpdmF0ZSgpLFEpfSxNZS5wcm90b3R5cGUuc2V0UHVibGljS2V5PWZ1bmN0aW9uKFEsWil7cmV0dXJuIFo9Wnx8InV0ZjgiLEJ1ZmZlci5pc0J1ZmZlcihRKXx8KFE9bmV3IEJ1ZmZlcihR''@;'; + put 'put ''LFopKSx0aGlzLmtleXMuX2ltcG9ydFB1YmxpYyhRKSx0aGlzfSxNZS5wcm90b3R5cGUuc2V0UHJpdmF0ZUtleT1mdW5jdGlvbihRLFope1o9Wnx8InV0ZjgiLEJ1ZmZlci5pc0J1ZmZlcihRKXx8KFE9bmV3IEJ1ZmZlcihRLFopKTt2YXIgaWU9bmV3IEIoUSk7cmV0dXJuIGllPWllLnRvU3Ry''@;'; + put 'put ''aW5nKDE2KSx0aGlzLmtleXM9dGhpcy5jdXJ2ZS5nZW5LZXlQYWlyKCksdGhpcy5rZXlzLl9pbXBvcnRQcml2YXRlKGllKSx0aGlzfX0sNDY0MjI6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lLEIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBFKGhlLE8pe2lmKCFoZSl0aHJvdyBuZXcg''@;'; + put 'put ''RXJyb3IoT3x8IkFzc2VydGlvbiBmYWlsZWQiKX1mdW5jdGlvbiBNZShoZSxPKXtoZS5zdXBlcl89Tzt2YXIgej1mdW5jdGlvbigpe307ei5wcm90b3R5cGU9Ty5wcm90b3R5cGUsaGUucHJvdG90eXBlPW5ldyB6LGhlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1oZX1mdW5jdGlvbiBVKGhlLE8s''@;'; + put 'put ''eil7aWYoVS5pc0JOKGhlKSlyZXR1cm4gaGU7dGhpcy5uZWdhdGl2ZT0wLHRoaXMud29yZHM9bnVsbCx0aGlzLmxlbmd0aD0wLHRoaXMucmVkPW51bGwsbnVsbCE9PWhlJiYoKCJsZSI9PT1PfHwiYmUiPT09TykmJih6PU8sTz0xMCksdGhpcy5faW5pdChoZXx8MCxPfHwxMCx6fHwiYmUiKSl9''@;'; + put 'put ''dmFyIFE7Im9iamVjdCI9PXR5cGVvZiBtZT9tZS5leHBvcnRzPVU6Qi5CTj1VLFUuQk49VSxVLndvcmRTaXplPTI2O3RyeXtRPSJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiZ2b2lkIDAhPT13aW5kb3cuQnVmZmVyP3dpbmRvdy5CdWZmZXI6TCg4NjIzKS5CdWZmZXJ9Y2F0Y2goaGUpe31m''@;'; + put 'put ''dW5jdGlvbiBaKGhlLE8pe3ZhciB6PWhlLmNoYXJDb2RlQXQoTyk7cmV0dXJuIHo+PTY1JiZ6PD03MD96LTU1Ono+PTk3JiZ6PD0xMDI/ei04Nzp6LTQ4JjE1fWZ1bmN0aW9uIGllKGhlLE8seil7dmFyIG5lPVooaGUseik7cmV0dXJuIHotMT49TyYmKG5lfD1aKGhlLHotMSk8PDQpLG5lfWZ1''@;'; + put 'put ''bmN0aW9uIGFlKGhlLE8seixuZSl7Zm9yKHZhciB0ZT0wLHg9TWF0aC5taW4oaGUubGVuZ3RoLHopLFA9TztQPHg7UCsrKXt2YXIgVj1oZS5jaGFyQ29kZUF0KFApLTQ4O3RlKj1uZSx0ZSs9Vj49NDk/Vi00OSsxMDpWPj0xNz9WLTE3KzEwOlZ9cmV0dXJuIHRlfVUuaXNCTj1mdW5jdGlvbihP''@;'; + put 'put ''KXtyZXR1cm4gTyBpbnN0YW5jZW9mIFV8fG51bGwhPT1PJiYib2JqZWN0Ij09dHlwZW9mIE8mJk8uY29uc3RydWN0b3Iud29yZFNpemU9PT1VLndvcmRTaXplJiZBcnJheS5pc0FycmF5KE8ud29yZHMpfSxVLm1heD1mdW5jdGlvbihPLHope3JldHVybiBPLmNtcCh6KT4wP086en0sVS5taW49''@;'; + put 'put ''ZnVuY3Rpb24oTyx6KXtyZXR1cm4gTy5jbXAoeik8MD9POnp9LFUucHJvdG90eXBlLl9pbml0PWZ1bmN0aW9uKE8seixuZSl7aWYoIm51bWJlciI9PXR5cGVvZiBPKXJldHVybiB0aGlzLl9pbml0TnVtYmVyKE8seixuZSk7aWYoIm9iamVjdCI9PXR5cGVvZiBPKXJldHVybiB0aGlzLl9pbml0''@;'; + put 'put ''QXJyYXkoTyx6LG5lKTsiaGV4Ij09PXomJih6PTE2KSxFKHo9PT0oMHx6KSYmej49MiYmejw9MzYpO3ZhciB0ZT0wOyItIj09PShPPU8udG9TdHJpbmcoKS5yZXBsYWNlKC9ccysvZywiIikpWzBdJiYodGUrKyx0aGlzLm5lZ2F0aXZlPTEpLHRlPE8ubGVuZ3RoJiYoMTY9PT16P3RoaXMuX3Bh''@;'; + put 'put ''cnNlSGV4KE8sdGUsbmUpOih0aGlzLl9wYXJzZUJhc2UoTyx6LHRlKSwibGUiPT09bmUmJnRoaXMuX2luaXRBcnJheSh0aGlzLnRvQXJyYXkoKSx6LG5lKSkpfSxVLnByb3RvdHlwZS5faW5pdE51bWJlcj1mdW5jdGlvbihPLHosbmUpe088MCYmKHRoaXMubmVnYXRpdmU9MSxPPS1PKSxPPDY3''@;'; + put 'put ''MTA4ODY0Pyh0aGlzLndvcmRzPVs2NzEwODg2MyZPXSx0aGlzLmxlbmd0aD0xKTpPPDQ1MDM1OTk2MjczNzA0OTY/KHRoaXMud29yZHM9WzY3MTA4ODYzJk8sTy82NzEwODg2NCY2NzEwODg2M10sdGhpcy5sZW5ndGg9Mik6KEUoTzw5MDA3MTk5MjU0NzQwOTkyKSx0aGlzLndvcmRzPVs2NzEw''@;'; + put 'put ''ODg2MyZPLE8vNjcxMDg4NjQmNjcxMDg4NjMsMV0sdGhpcy5sZW5ndGg9MyksImxlIj09PW5lJiZ0aGlzLl9pbml0QXJyYXkodGhpcy50b0FycmF5KCkseixuZSl9LFUucHJvdG90eXBlLl9pbml0QXJyYXk9ZnVuY3Rpb24oTyx6LG5lKXtpZihFKCJudW1iZXIiPT10eXBlb2YgTy5sZW5ndGgp''@;'; + put 'put ''LE8ubGVuZ3RoPD0wKXJldHVybiB0aGlzLndvcmRzPVswXSx0aGlzLmxlbmd0aD0xLHRoaXM7dGhpcy5sZW5ndGg9TWF0aC5jZWlsKE8ubGVuZ3RoLzMpLHRoaXMud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoKTtmb3IodmFyIHRlPTA7dGU8dGhpcy5sZW5ndGg7dGUrKyl0aGlzLndvcmRz''@;'; + put 'put ''W3RlXT0wO3ZhciB4LFAsVj0wO2lmKCJiZSI9PT1uZSlmb3IodGU9Ty5sZW5ndGgtMSx4PTA7dGU+PTA7dGUtPTMpdGhpcy53b3Jkc1t4XXw9KFA9T1t0ZV18T1t0ZS0xXTw8OHxPW3RlLTJdPDwxNik8PFYmNjcxMDg4NjMsdGhpcy53b3Jkc1t4KzFdPVA+Pj4yNi1WJjY3MTA4ODYzLChWKz0y''@;'; + put 'put ''NCk+PTI2JiYoVi09MjYseCsrKTtlbHNlIGlmKCJsZSI9PT1uZSlmb3IodGU9MCx4PTA7dGU8Ty5sZW5ndGg7dGUrPTMpdGhpcy53b3Jkc1t4XXw9KFA9T1t0ZV18T1t0ZSsxXTw8OHxPW3RlKzJdPDwxNik8PFYmNjcxMDg4NjMsdGhpcy53b3Jkc1t4KzFdPVA+Pj4yNi1WJjY3MTA4ODYzLChW''@;'; + put 'put ''Kz0yNCk+PTI2JiYoVi09MjYseCsrKTtyZXR1cm4gdGhpcy5zdHJpcCgpfSxVLnByb3RvdHlwZS5fcGFyc2VIZXg9ZnVuY3Rpb24oTyx6LG5lKXt0aGlzLmxlbmd0aD1NYXRoLmNlaWwoKE8ubGVuZ3RoLXopLzYpLHRoaXMud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoKTtmb3IodmFyIHRl''@;'; + put 'put ''PTA7dGU8dGhpcy5sZW5ndGg7dGUrKyl0aGlzLndvcmRzW3RlXT0wO3ZhciBWLHg9MCxQPTA7aWYoImJlIj09PW5lKWZvcih0ZT1PLmxlbmd0aC0xO3RlPj16O3RlLT0yKVY9aWUoTyx6LHRlKTw8eCx0aGlzLndvcmRzW1BdfD02NzEwODg2MyZWLHg+PTE4Pyh4LT0xOCx0aGlzLndvcmRzW1Ar''@;'; + put 'put ''PTFdfD1WPj4+MjYpOngrPTg7ZWxzZSBmb3IodGU9KE8ubGVuZ3RoLXopJTI9PTA/eisxOno7dGU8Ty5sZW5ndGg7dGUrPTIpVj1pZShPLHosdGUpPDx4LHRoaXMud29yZHNbUF18PTY3MTA4ODYzJlYseD49MTg/KHgtPTE4LHRoaXMud29yZHNbUCs9MV18PVY+Pj4yNik6eCs9ODt0aGlzLnN0''@;'; + put 'put ''cmlwKCl9LFUucHJvdG90eXBlLl9wYXJzZUJhc2U9ZnVuY3Rpb24oTyx6LG5lKXt0aGlzLndvcmRzPVswXSx0aGlzLmxlbmd0aD0xO2Zvcih2YXIgdGU9MCx4PTE7eDw9NjcxMDg4NjM7eCo9eil0ZSsrO3RlLS0seD14L3p8MDtmb3IodmFyIFA9Ty5sZW5ndGgtbmUsVj1QJXRlLFQ9TWF0aC5t''@;'; + put 'put ''aW4oUCxQLVYpK25lLFM9MCxGPW5lO0Y8VDtGKz10ZSlTPWFlKE8sRixGK3RlLHopLHRoaXMuaW11bG4oeCksdGhpcy53b3Jkc1swXStTPDY3MTA4ODY0P3RoaXMud29yZHNbMF0rPVM6dGhpcy5faWFkZG4oUyk7aWYoMCE9PVYpe3ZhciB5ZT0xO2ZvcihTPWFlKE8sRixPLmxlbmd0aCx6KSxG''@;'; + put 'put ''PTA7RjxWO0YrKyl5ZSo9ejt0aGlzLmltdWxuKHllKSx0aGlzLndvcmRzWzBdK1M8NjcxMDg4NjQ/dGhpcy53b3Jkc1swXSs9Uzp0aGlzLl9pYWRkbihTKX10aGlzLnN0cmlwKCl9LFUucHJvdG90eXBlLmNvcHk9ZnVuY3Rpb24oTyl7Ty53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgpO2Zv''@;'; + put 'put ''cih2YXIgej0wO3o8dGhpcy5sZW5ndGg7eisrKU8ud29yZHNbel09dGhpcy53b3Jkc1t6XTtPLmxlbmd0aD10aGlzLmxlbmd0aCxPLm5lZ2F0aXZlPXRoaXMubmVnYXRpdmUsTy5yZWQ9dGhpcy5yZWR9LFUucHJvdG90eXBlLmNsb25lPWZ1bmN0aW9uKCl7dmFyIE89bmV3IFUobnVsbCk7cmV0''@;'; + put 'put ''dXJuIHRoaXMuY29weShPKSxPfSxVLnByb3RvdHlwZS5fZXhwYW5kPWZ1bmN0aW9uKE8pe2Zvcig7dGhpcy5sZW5ndGg8TzspdGhpcy53b3Jkc1t0aGlzLmxlbmd0aCsrXT0wO3JldHVybiB0aGlzfSxVLnByb3RvdHlwZS5zdHJpcD1mdW5jdGlvbigpe2Zvcig7dGhpcy5sZW5ndGg+MSYmMD09''@;'; + put 'put ''PXRoaXMud29yZHNbdGhpcy5sZW5ndGgtMV07KXRoaXMubGVuZ3RoLS07cmV0dXJuIHRoaXMuX25vcm1TaWduKCl9LFUucHJvdG90eXBlLl9ub3JtU2lnbj1mdW5jdGlvbigpe3JldHVybiAxPT09dGhpcy5sZW5ndGgmJjA9PT10aGlzLndvcmRzWzBdJiYodGhpcy5uZWdhdGl2ZT0wKSx0aGlz''@;'; + put 'put ''fSxVLnByb3RvdHlwZS5pbnNwZWN0PWZ1bmN0aW9uKCl7cmV0dXJuKHRoaXMucmVkPyI8Qk4tUjogIjoiPEJOOiAiKSt0aGlzLnRvU3RyaW5nKDE2KSsiPiJ9O3ZhciBZPVsiIiwiMCIsIjAwIiwiMDAwIiwiMDAwMCIsIjAwMDAwIiwiMDAwMDAwIiwiMDAwMDAwMCIsIjAwMDAwMDAwIiwiMDAw''@;'; + put 'put ''MDAwMDAwIiwiMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAw''@;'; + put 'put ''MDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAw''@;'; + put 'put ''MDAwMCJdLFc9WzAsMCwyNSwxNiwxMiwxMSwxMCw5LDgsOCw3LDcsNyw3LDYsNiw2LDYsNiw2LDYsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNV0sTj1bMCwwLDMzNTU0NDMyLDQzMDQ2NzIxLDE2Nzc3MjE2LDQ4ODI4MTI1LDYwNDY2MTc2LDQwMzUzNjA3LDE2Nzc3MjE2LDQzMDQ2''@;'; + put 'put ''NzIxLDFlNywxOTQ4NzE3MSwzNTgzMTgwOCw2Mjc0ODUxNyw3NTI5NTM2LDExMzkwNjI1LDE2Nzc3MjE2LDI0MTM3NTY5LDM0MDEyMjI0LDQ3MDQ1ODgxLDY0ZTYsNDA4NDEwMSw1MTUzNjMyLDY0MzYzNDMsNzk2MjYyNCw5NzY1NjI1LDExODgxMzc2LDE0MzQ4OTA3LDE3MjEwMzY4LDIwNTEx''@;'; + put 'put ''MTQ5LDI0M2U1LDI4NjI5MTUxLDMzNTU0NDMyLDM5MTM1MzkzLDQ1NDM1NDI0LDUyNTIxODc1LDYwNDY2MTc2XTtmdW5jdGlvbiBxKGhlLE8seil7ei5uZWdhdGl2ZT1PLm5lZ2F0aXZlXmhlLm5lZ2F0aXZlO3ZhciBuZT1oZS5sZW5ndGgrTy5sZW5ndGh8MDt6Lmxlbmd0aD1uZSxuZT1uZS0x''@;'; + put 'put ''fDA7dmFyIHRlPTB8aGUud29yZHNbMF0seD0wfE8ud29yZHNbMF0sUD10ZSp4LFQ9UC82NzEwODg2NHwwO3oud29yZHNbMF09NjcxMDg4NjMmUDtmb3IodmFyIFM9MTtTPG5lO1MrKyl7Zm9yKHZhciBGPVQ+Pj4yNix5ZT02NzEwODg2MyZULENlPU1hdGgubWluKFMsTy5sZW5ndGgtMSksRGU9''@;'; + put 'put ''TWF0aC5tYXgoMCxTLWhlLmxlbmd0aCsxKTtEZTw9Q2U7RGUrKylGKz0oUD0odGU9MHxoZS53b3Jkc1tTLURlfDBdKSooeD0wfE8ud29yZHNbRGVdKSt5ZSkvNjcxMDg4NjR8MCx5ZT02NzEwODg2MyZQO3oud29yZHNbU109MHx5ZSxUPTB8Rn1yZXR1cm4gMCE9PVQ/ei53b3Jkc1tTXT0wfFQ6''@;'; + put 'put ''ei5sZW5ndGgtLSx6LnN0cmlwKCl9VS5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oTyx6KXt2YXIgbmU7aWYoej0wfHp8fDEsMTY9PT0oTz1PfHwxMCl8fCJoZXgiPT09Tyl7bmU9IiI7Zm9yKHZhciB0ZT0wLHg9MCxQPTA7UDx0aGlzLmxlbmd0aDtQKyspe3ZhciBWPXRoaXMud29yZHNb''@;'; + put 'put ''UF0sVD0oMTY3NzcyMTUmKFY8PHRlfHgpKS50b1N0cmluZygxNik7bmU9MCE9KHg9Vj4+PjI0LXRlJjE2Nzc3MjE1KXx8UCE9PXRoaXMubGVuZ3RoLTE/WVs2LVQubGVuZ3RoXStUK25lOlQrbmUsKHRlKz0yKT49MjYmJih0ZS09MjYsUC0tKX1mb3IoMCE9PXgmJihuZT14LnRvU3RyaW5nKDE2''@;'; + put 'put ''KStuZSk7bmUubGVuZ3RoJXohPTA7KW5lPSIwIituZTtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmUmJihuZT0iLSIrbmUpLG5lfWlmKE89PT0oMHxPKSYmTz49MiYmTzw9MzYpe3ZhciBTPVdbT10sRj1OW09dO25lPSIiO3ZhciB5ZT10aGlzLmNsb25lKCk7Zm9yKHllLm5lZ2F0aXZlPTA7IXll''@;'; + put 'put ''LmlzWmVybygpOyl7dmFyIENlPXllLm1vZG4oRikudG9TdHJpbmcoTyk7bmU9KHllPXllLmlkaXZuKEYpKS5pc1plcm8oKT9DZStuZTpZW1MtQ2UubGVuZ3RoXStDZStuZX1mb3IodGhpcy5pc1plcm8oKSYmKG5lPSIwIituZSk7bmUubGVuZ3RoJXohPTA7KW5lPSIwIituZTtyZXR1cm4gMCE9''@;'; + put 'put ''PXRoaXMubmVnYXRpdmUmJihuZT0iLSIrbmUpLG5lfUUoITEsIkJhc2Ugc2hvdWxkIGJlIGJldHdlZW4gMiBhbmQgMzYiKX0sVS5wcm90b3R5cGUudG9OdW1iZXI9ZnVuY3Rpb24oKXt2YXIgTz10aGlzLndvcmRzWzBdO3JldHVybiAyPT09dGhpcy5sZW5ndGg/Tys9NjcxMDg4NjQqdGhpcy53''@;'; + put 'put ''b3Jkc1sxXTozPT09dGhpcy5sZW5ndGgmJjE9PT10aGlzLndvcmRzWzJdP08rPTQ1MDM1OTk2MjczNzA0OTYrNjcxMDg4NjQqdGhpcy53b3Jkc1sxXTp0aGlzLmxlbmd0aD4yJiZFKCExLCJOdW1iZXIgY2FuIG9ubHkgc2FmZWx5IHN0b3JlIHVwIHRvIDUzIGJpdHMiKSwwIT09dGhpcy5uZWdh''@;'; + put 'put ''dGl2ZT8tTzpPfSxVLnByb3RvdHlwZS50b0pTT049ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50b1N0cmluZygxNil9LFUucHJvdG90eXBlLnRvQnVmZmVyPWZ1bmN0aW9uKE8seil7cmV0dXJuIEUodm9pZCAwIT09USksdGhpcy50b0FycmF5TGlrZShRLE8seil9LFUucHJvdG90eXBlLnRvQXJy''@;'; + put 'put ''YXk9ZnVuY3Rpb24oTyx6KXtyZXR1cm4gdGhpcy50b0FycmF5TGlrZShBcnJheSxPLHopfSxVLnByb3RvdHlwZS50b0FycmF5TGlrZT1mdW5jdGlvbihPLHosbmUpe3ZhciB0ZT10aGlzLmJ5dGVMZW5ndGgoKSx4PW5lfHxNYXRoLm1heCgxLHRlKTtFKHRlPD14LCJieXRlIGFycmF5IGxvbmdl''@;'; + put 'put ''ciB0aGFuIGRlc2lyZWQgbGVuZ3RoIiksRSh4PjAsIlJlcXVlc3RlZCBhcnJheSBsZW5ndGggPD0gMCIpLHRoaXMuc3RyaXAoKTt2YXIgVCxTLFA9ImxlIj09PXosVj1uZXcgTyh4KSxGPXRoaXMuY2xvbmUoKTtpZihQKXtmb3IoUz0wOyFGLmlzWmVybygpO1MrKylUPUYuYW5kbG4oMjU1KSxG''@;'; + put 'put ''Lml1c2hybig4KSxWW1NdPVQ7Zm9yKDtTPHg7UysrKVZbU109MH1lbHNle2ZvcihTPTA7Uzx4LXRlO1MrKylWW1NdPTA7Zm9yKFM9MDshRi5pc1plcm8oKTtTKyspVD1GLmFuZGxuKDI1NSksRi5pdXNocm4oOCksVlt4LVMtMV09VH1yZXR1cm4gVn0sVS5wcm90b3R5cGUuX2NvdW50Qml0cz1N''@;'; + put 'put ''YXRoLmNsejMyP2Z1bmN0aW9uKE8pe3JldHVybiAzMi1NYXRoLmNsejMyKE8pfTpmdW5jdGlvbihPKXt2YXIgej1PLG5lPTA7cmV0dXJuIHo+PTQwOTYmJihuZSs9MTMsej4+Pj0xMyksej49NjQmJihuZSs9Nyx6Pj4+PTcpLHo+PTgmJihuZSs9NCx6Pj4+PTQpLHo+PTImJihuZSs9Mix6Pj4+''@;'; + put 'put ''PTIpLG5lK3p9LFUucHJvdG90eXBlLl96ZXJvQml0cz1mdW5jdGlvbihPKXtpZigwPT09TylyZXR1cm4gMjY7dmFyIHo9TyxuZT0wO3JldHVybiAwPT0oODE5MSZ6KSYmKG5lKz0xMyx6Pj4+PTEzKSwwPT0oMTI3JnopJiYobmUrPTcsej4+Pj03KSwwPT0oMTUmeikmJihuZSs9NCx6Pj4+PTQp''@;'; + put 'put ''LDA9PSgzJnopJiYobmUrPTIsej4+Pj0yKSwwPT0oMSZ6KSYmbmUrKyxuZX0sVS5wcm90b3R5cGUuYml0TGVuZ3RoPWZ1bmN0aW9uKCl7dmFyIHo9dGhpcy5fY291bnRCaXRzKHRoaXMud29yZHNbdGhpcy5sZW5ndGgtMV0pO3JldHVybiAyNioodGhpcy5sZW5ndGgtMSkren0sVS5wcm90b3R5''@;'; + put 'put ''cGUuemVyb0JpdHM9ZnVuY3Rpb24oKXtpZih0aGlzLmlzWmVybygpKXJldHVybiAwO2Zvcih2YXIgTz0wLHo9MDt6PHRoaXMubGVuZ3RoO3orKyl7dmFyIG5lPXRoaXMuX3plcm9CaXRzKHRoaXMud29yZHNbel0pO2lmKE8rPW5lLDI2IT09bmUpYnJlYWt9cmV0dXJuIE99LFUucHJvdG90eXBl''@;'; + put 'put ''LmJ5dGVMZW5ndGg9ZnVuY3Rpb24oKXtyZXR1cm4gTWF0aC5jZWlsKHRoaXMuYml0TGVuZ3RoKCkvOCl9LFUucHJvdG90eXBlLnRvVHdvcz1mdW5jdGlvbihPKXtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmU/dGhpcy5hYnMoKS5pbm90bihPKS5pYWRkbigxKTp0aGlzLmNsb25lKCl9LFUucHJv''@;'; + put 'put ''dG90eXBlLmZyb21Ud29zPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLnRlc3RuKE8tMSk/dGhpcy5ub3RuKE8pLmlhZGRuKDEpLmluZWcoKTp0aGlzLmNsb25lKCl9LFUucHJvdG90eXBlLmlzTmVnPWZ1bmN0aW9uKCl7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlfSxVLnByb3RvdHlwZS5uZWc9''@;'; + put 'put ''ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmluZWcoKX0sVS5wcm90b3R5cGUuaW5lZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmlzWmVybygpfHwodGhpcy5uZWdhdGl2ZV49MSksdGhpc30sVS5wcm90b3R5cGUuaXVvcj1mdW5jdGlvbihPKXtmb3IoO3RoaXMubGVuZ3RoPE8ubGVu''@;'; + put 'put ''Z3RoOyl0aGlzLndvcmRzW3RoaXMubGVuZ3RoKytdPTA7Zm9yKHZhciB6PTA7ejxPLmxlbmd0aDt6KyspdGhpcy53b3Jkc1t6XT10aGlzLndvcmRzW3pdfE8ud29yZHNbel07cmV0dXJuIHRoaXMuc3RyaXAoKX0sVS5wcm90b3R5cGUuaW9yPWZ1bmN0aW9uKE8pe3JldHVybiBFKDA9PSh0aGlz''@;'; + put 'put ''Lm5lZ2F0aXZlfE8ubmVnYXRpdmUpKSx0aGlzLml1b3IoTyl9LFUucHJvdG90eXBlLm9yPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmxlbmd0aD5PLmxlbmd0aD90aGlzLmNsb25lKCkuaW9yKE8pOk8uY2xvbmUoKS5pb3IodGhpcyl9LFUucHJvdG90eXBlLnVvcj1mdW5jdGlvbihPKXtyZXR1''@;'; + put 'put ''cm4gdGhpcy5sZW5ndGg+Ty5sZW5ndGg/dGhpcy5jbG9uZSgpLml1b3IoTyk6Ty5jbG9uZSgpLml1b3IodGhpcyl9LFUucHJvdG90eXBlLml1YW5kPWZ1bmN0aW9uKE8pe3ZhciB6O3o9dGhpcy5sZW5ndGg+Ty5sZW5ndGg/Tzp0aGlzO2Zvcih2YXIgbmU9MDtuZTx6Lmxlbmd0aDtuZSsrKXRo''@;'; + put 'put ''aXMud29yZHNbbmVdPXRoaXMud29yZHNbbmVdJk8ud29yZHNbbmVdO3JldHVybiB0aGlzLmxlbmd0aD16Lmxlbmd0aCx0aGlzLnN0cmlwKCl9LFUucHJvdG90eXBlLmlhbmQ9ZnVuY3Rpb24oTyl7cmV0dXJuIEUoMD09KHRoaXMubmVnYXRpdmV8Ty5uZWdhdGl2ZSkpLHRoaXMuaXVhbmQoTyl9''@;'; + put 'put ''LFUucHJvdG90eXBlLmFuZD1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5sZW5ndGg+Ty5sZW5ndGg/dGhpcy5jbG9uZSgpLmlhbmQoTyk6Ty5jbG9uZSgpLmlhbmQodGhpcyl9LFUucHJvdG90eXBlLnVhbmQ9ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMubGVuZ3RoPk8ubGVuZ3RoP3RoaXMuY2xv''@;'; + put 'put ''bmUoKS5pdWFuZChPKTpPLmNsb25lKCkuaXVhbmQodGhpcyl9LFUucHJvdG90eXBlLml1eG9yPWZ1bmN0aW9uKE8pe3ZhciB6LG5lO3RoaXMubGVuZ3RoPk8ubGVuZ3RoPyh6PXRoaXMsbmU9Tyk6KHo9TyxuZT10aGlzKTtmb3IodmFyIHRlPTA7dGU8bmUubGVuZ3RoO3RlKyspdGhpcy53b3Jk''@;'; + put 'put ''c1t0ZV09ei53b3Jkc1t0ZV1ebmUud29yZHNbdGVdO2lmKHRoaXMhPT16KWZvcig7dGU8ei5sZW5ndGg7dGUrKyl0aGlzLndvcmRzW3RlXT16LndvcmRzW3RlXTtyZXR1cm4gdGhpcy5sZW5ndGg9ei5sZW5ndGgsdGhpcy5zdHJpcCgpfSxVLnByb3RvdHlwZS5peG9yPWZ1bmN0aW9uKE8pe3Jl''@;'; + put 'put ''dHVybiBFKDA9PSh0aGlzLm5lZ2F0aXZlfE8ubmVnYXRpdmUpKSx0aGlzLml1eG9yKE8pfSxVLnByb3RvdHlwZS54b3I9ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMubGVuZ3RoPk8ubGVuZ3RoP3RoaXMuY2xvbmUoKS5peG9yKE8pOk8uY2xvbmUoKS5peG9yKHRoaXMpfSxVLnByb3RvdHlwZS51''@;'; + put 'put ''eG9yPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmxlbmd0aD5PLmxlbmd0aD90aGlzLmNsb25lKCkuaXV4b3IoTyk6Ty5jbG9uZSgpLml1eG9yKHRoaXMpfSxVLnByb3RvdHlwZS5pbm90bj1mdW5jdGlvbihPKXtFKCJudW1iZXIiPT10eXBlb2YgTyYmTz49MCk7dmFyIHo9MHxNYXRoLmNlaWwo''@;'; + put 'put ''Ty8yNiksbmU9TyUyNjt0aGlzLl9leHBhbmQoeiksbmU+MCYmei0tO2Zvcih2YXIgdGU9MDt0ZTx6O3RlKyspdGhpcy53b3Jkc1t0ZV09NjcxMDg4NjMmfnRoaXMud29yZHNbdGVdO3JldHVybiBuZT4wJiYodGhpcy53b3Jkc1t0ZV09fnRoaXMud29yZHNbdGVdJjY3MTA4ODYzPj4yNi1uZSks''@;'; + put 'put ''dGhpcy5zdHJpcCgpfSxVLnByb3RvdHlwZS5ub3RuPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmNsb25lKCkuaW5vdG4oTyl9LFUucHJvdG90eXBlLnNldG49ZnVuY3Rpb24oTyx6KXtFKCJudW1iZXIiPT10eXBlb2YgTyYmTz49MCk7dmFyIG5lPU8vMjZ8MCx0ZT1PJTI2O3JldHVybiB0aGlz''@;'; + put 'put ''Ll9leHBhbmQobmUrMSksdGhpcy53b3Jkc1tuZV09ej90aGlzLndvcmRzW25lXXwxPDx0ZTp0aGlzLndvcmRzW25lXSZ+KDE8PHRlKSx0aGlzLnN0cmlwKCl9LFUucHJvdG90eXBlLmlhZGQ9ZnVuY3Rpb24oTyl7dmFyIHosbmUsdGU7aWYoMCE9PXRoaXMubmVnYXRpdmUmJjA9PT1PLm5lZ2F0''@;'; + put 'put ''aXZlKXJldHVybiB0aGlzLm5lZ2F0aXZlPTAsej10aGlzLmlzdWIoTyksdGhpcy5uZWdhdGl2ZV49MSx0aGlzLl9ub3JtU2lnbigpO2lmKDA9PT10aGlzLm5lZ2F0aXZlJiYwIT09Ty5uZWdhdGl2ZSlyZXR1cm4gTy5uZWdhdGl2ZT0wLHo9dGhpcy5pc3ViKE8pLE8ubmVnYXRpdmU9MSx6Ll9u''@;'; + put 'put ''b3JtU2lnbigpO3RoaXMubGVuZ3RoPk8ubGVuZ3RoPyhuZT10aGlzLHRlPU8pOihuZT1PLHRlPXRoaXMpO2Zvcih2YXIgeD0wLFA9MDtQPHRlLmxlbmd0aDtQKyspdGhpcy53b3Jkc1tQXT02NzEwODg2MyYoej0oMHxuZS53b3Jkc1tQXSkrKDB8dGUud29yZHNbUF0pK3gpLHg9ej4+PjI2O2Zv''@;'; + put 'put ''cig7MCE9PXgmJlA8bmUubGVuZ3RoO1ArKyl0aGlzLndvcmRzW1BdPTY3MTA4ODYzJih6PSgwfG5lLndvcmRzW1BdKSt4KSx4PXo+Pj4yNjtpZih0aGlzLmxlbmd0aD1uZS5sZW5ndGgsMCE9PXgpdGhpcy53b3Jkc1t0aGlzLmxlbmd0aF09eCx0aGlzLmxlbmd0aCsrO2Vsc2UgaWYobmUhPT10''@;'; + put 'put ''aGlzKWZvcig7UDxuZS5sZW5ndGg7UCsrKXRoaXMud29yZHNbUF09bmUud29yZHNbUF07cmV0dXJuIHRoaXN9LFUucHJvdG90eXBlLmFkZD1mdW5jdGlvbihPKXt2YXIgejtyZXR1cm4gMCE9PU8ubmVnYXRpdmUmJjA9PT10aGlzLm5lZ2F0aXZlPyhPLm5lZ2F0aXZlPTAsej10aGlzLnN1YihP''@;'; + put 'put ''KSxPLm5lZ2F0aXZlXj0xLHopOjA9PT1PLm5lZ2F0aXZlJiYwIT09dGhpcy5uZWdhdGl2ZT8odGhpcy5uZWdhdGl2ZT0wLHo9Ty5zdWIodGhpcyksdGhpcy5uZWdhdGl2ZT0xLHopOnRoaXMubGVuZ3RoPk8ubGVuZ3RoP3RoaXMuY2xvbmUoKS5pYWRkKE8pOk8uY2xvbmUoKS5pYWRkKHRoaXMp''@;'; + put 'put ''fSxVLnByb3RvdHlwZS5pc3ViPWZ1bmN0aW9uKE8pe2lmKDAhPT1PLm5lZ2F0aXZlKXtPLm5lZ2F0aXZlPTA7dmFyIHo9dGhpcy5pYWRkKE8pO3JldHVybiBPLm5lZ2F0aXZlPTEsei5fbm9ybVNpZ24oKX1pZigwIT09dGhpcy5uZWdhdGl2ZSlyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLHRoaXMu''@;'; + put 'put ''aWFkZChPKSx0aGlzLm5lZ2F0aXZlPTEsdGhpcy5fbm9ybVNpZ24oKTt2YXIgdGUseCxuZT10aGlzLmNtcChPKTtpZigwPT09bmUpcmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlzLmxlbmd0aD0xLHRoaXMud29yZHNbMF09MCx0aGlzO25lPjA/KHRlPXRoaXMseD1PKToodGU9Tyx4PXRoaXMp''@;'; + put 'put ''O2Zvcih2YXIgUD0wLFY9MDtWPHgubGVuZ3RoO1YrKylQPSh6PSgwfHRlLndvcmRzW1ZdKS0oMHx4LndvcmRzW1ZdKStQKT4+MjYsdGhpcy53b3Jkc1tWXT02NzEwODg2MyZ6O2Zvcig7MCE9PVAmJlY8dGUubGVuZ3RoO1YrKylQPSh6PSgwfHRlLndvcmRzW1ZdKStQKT4+MjYsdGhpcy53b3Jk''@;'; + put 'put ''c1tWXT02NzEwODg2MyZ6O2lmKDA9PT1QJiZWPHRlLmxlbmd0aCYmdGUhPT10aGlzKWZvcig7Vjx0ZS5sZW5ndGg7VisrKXRoaXMud29yZHNbVl09dGUud29yZHNbVl07cmV0dXJuIHRoaXMubGVuZ3RoPU1hdGgubWF4KHRoaXMubGVuZ3RoLFYpLHRlIT09dGhpcyYmKHRoaXMubmVnYXRpdmU9''@;'; + put 'put ''MSksdGhpcy5zdHJpcCgpfSxVLnByb3RvdHlwZS5zdWI9ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc3ViKE8pfTt2YXIgSj1mdW5jdGlvbihPLHosbmUpe3ZhciBULFMsRix0ZT1PLndvcmRzLHg9ei53b3JkcyxQPW5lLndvcmRzLFY9MCx5ZT0wfHRlWzBdLENlPTgxOTEmeWUs''@;'; + put 'put ''RGU9eWU+Pj4xMyxQZT0wfHRlWzFdLFFlPTgxOTEmUGUsJGU9UGU+Pj4xMyxndD0wfHRlWzJdLHd0PTgxOTEmZ3QsbXQ9Z3Q+Pj4xMyx2dD0wfHRlWzNdLEF0PTgxOTEmdnQsaHQ9dnQ+Pj4xMyxCdD0wfHRlWzRdLG9uPTgxOTEmQnQsX3Q9QnQ+Pj4xMyx0dD0wfHRlWzVdLGV0PTgxOTEmdHQs''@;'; + put 'put ''YXQ9dHQ+Pj4xMyxMdD0wfHRlWzZdLEN0PTgxOTEmTHQsZnQ9THQ+Pj4xMyxIdD0wfHRlWzddLEdlPTgxOTEmSHQsVWU9SHQ+Pj4xMyx5dD0wfHRlWzhdLGp0PTgxOTEmeXQsUXQ9eXQ+Pj4xMyxnbj0wfHRlWzldLGRuPTgxOTEmZ24seW49Z24+Pj4xMyxsbj0wfHhbMF0sTm49ODE5MSZsbixi''@;'; + put 'put ''bj1sbj4+PjEzLGVyPTB8eFsxXSxzcj04MTkxJmVyLFhuPWVyPj4+MTMsRnI9MHx4WzJdLHhyPTgxOTEmRnIscXQ9RnI+Pj4xMyxwcj0wfHhbM10sbnI9ODE5MSZwcixBbj1wcj4+PjEzLHFuPTB8eFs0XSxXdD04MTkxJnFuLHBuPXFuPj4+MTMsS249MHx4WzVdLE50PTgxOTEmS24sc249S24+''@;'; + put 'put ''Pj4xMyxVbj0wfHhbNl0sd249ODE5MSZVbix0bj1Vbj4+PjEzLHpuPTB8eFs3XSxUcj04MTkxJnpuLEJuPXpuPj4+MTMsa3I9MHx4WzhdLG1uPTgxOTEma3IsdW49a3I+Pj4xMyxjbj0wfHhbOV0sX249ODE5MSZjbixHdD1jbj4+PjEzO25lLm5lZ2F0aXZlPU8ubmVnYXRpdmVeei5uZWdhdGl2''@;'; + put 'put ''ZSxuZS5sZW5ndGg9MTk7dmFyIGtuPShWKyhUPU1hdGguaW11bChDZSxObikpfDApKygoODE5MSYoUz0oUz1NYXRoLmltdWwoQ2UsYm4pKStNYXRoLmltdWwoRGUsTm4pfDApKTw8MTMpfDA7Vj0oKEY9TWF0aC5pbXVsKERlLGJuKSkrKFM+Pj4xMyl8MCkrKGtuPj4+MjYpfDAsa24mPTY3MTA4''@;'; + put 'put ''ODYzLFQ9TWF0aC5pbXVsKFFlLE5uKSxTPShTPU1hdGguaW11bChRZSxibikpK01hdGguaW11bCgkZSxObil8MCxGPU1hdGguaW11bCgkZSxibik7dmFyIFZuPShWKyhUPVQrTWF0aC5pbXVsKENlLHNyKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoQ2UsWG4pfDApK01hdGguaW11''@;'; + put 'put ''bChEZSxzcil8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bChEZSxYbil8MCkrKFM+Pj4xMyl8MCkrKFZuPj4+MjYpfDAsVm4mPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKHd0LE5uKSxTPShTPU1hdGguaW11bCh3dCxibikpK01hdGguaW11bChtdCxObil8MCxGPU1hdGguaW11bChtdCxibiks''@;'; + put 'put ''VD1UK01hdGguaW11bChRZSxzcil8MCxTPShTPVMrTWF0aC5pbXVsKFFlLFhuKXwwKStNYXRoLmltdWwoJGUsc3IpfDAsRj1GK01hdGguaW11bCgkZSxYbil8MDt2YXIgZW49KFYrKFQ9VCtNYXRoLmltdWwoQ2UseHIpfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bChDZSxxdCl8MCkr''@;'; + put 'put ''TWF0aC5pbXVsKERlLHhyKXwwKSk8PDEzKXwwO1Y9KChGPUYrTWF0aC5pbXVsKERlLHF0KXwwKSsoUz4+PjEzKXwwKSsoZW4+Pj4yNil8MCxlbiY9NjcxMDg4NjMsVD1NYXRoLmltdWwoQXQsTm4pLFM9KFM9TWF0aC5pbXVsKEF0LGJuKSkrTWF0aC5pbXVsKGh0LE5uKXwwLEY9TWF0aC5pbXVs''@;'; + put 'put ''KGh0LGJuKSxUPVQrTWF0aC5pbXVsKHd0LHNyKXwwLFM9KFM9UytNYXRoLmltdWwod3QsWG4pfDApK01hdGguaW11bChtdCxzcil8MCxGPUYrTWF0aC5pbXVsKG10LFhuKXwwLFQ9VCtNYXRoLmltdWwoUWUseHIpfDAsUz0oUz1TK01hdGguaW11bChRZSxxdCl8MCkrTWF0aC5pbXVsKCRlLHhy''@;'; + put 'put ''KXwwLEY9RitNYXRoLmltdWwoJGUscXQpfDA7dmFyIEluPShWKyhUPVQrTWF0aC5pbXVsKENlLG5yKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoQ2UsQW4pfDApK01hdGguaW11bChEZSxucil8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bChEZSxBbil8MCkrKFM+Pj4xMyl8''@;'; + put 'put ''MCkrKEluPj4+MjYpfDAsSW4mPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKG9uLE5uKSxTPShTPU1hdGguaW11bChvbixibikpK01hdGguaW11bChfdCxObil8MCxGPU1hdGguaW11bChfdCxibiksVD1UK01hdGguaW11bChBdCxzcil8MCxTPShTPVMrTWF0aC5pbXVsKEF0LFhuKXwwKStNYXRoLmlt''@;'; + put 'put ''dWwoaHQsc3IpfDAsRj1GK01hdGguaW11bChodCxYbil8MCxUPVQrTWF0aC5pbXVsKHd0LHhyKXwwLFM9KFM9UytNYXRoLmltdWwod3QscXQpfDApK01hdGguaW11bChtdCx4cil8MCxGPUYrTWF0aC5pbXVsKG10LHF0KXwwLFQ9VCtNYXRoLmltdWwoUWUsbnIpfDAsUz0oUz1TK01hdGguaW11''@;'; + put 'put ''bChRZSxBbil8MCkrTWF0aC5pbXVsKCRlLG5yKXwwLEY9RitNYXRoLmltdWwoJGUsQW4pfDA7dmFyIEpuPShWKyhUPVQrTWF0aC5pbXVsKENlLFd0KXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoQ2UscG4pfDApK01hdGguaW11bChEZSxXdCl8MCkpPDwxMyl8MDtWPSgoRj1GK01h''@;'; + put 'put ''dGguaW11bChEZSxwbil8MCkrKFM+Pj4xMyl8MCkrKEpuPj4+MjYpfDAsSm4mPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGV0LE5uKSxTPShTPU1hdGguaW11bChldCxibikpK01hdGguaW11bChhdCxObil8MCxGPU1hdGguaW11bChhdCxibiksVD1UK01hdGguaW11bChvbixzcil8MCxTPShTPVMr''@;'; + put 'put ''TWF0aC5pbXVsKG9uLFhuKXwwKStNYXRoLmltdWwoX3Qsc3IpfDAsRj1GK01hdGguaW11bChfdCxYbil8MCxUPVQrTWF0aC5pbXVsKEF0LHhyKXwwLFM9KFM9UytNYXRoLmltdWwoQXQscXQpfDApK01hdGguaW11bChodCx4cil8MCxGPUYrTWF0aC5pbXVsKGh0LHF0KXwwLFQ9VCtNYXRoLmlt''@;'; + put 'put ''dWwod3QsbnIpfDAsUz0oUz1TK01hdGguaW11bCh3dCxBbil8MCkrTWF0aC5pbXVsKG10LG5yKXwwLEY9RitNYXRoLmltdWwobXQsQW4pfDAsVD1UK01hdGguaW11bChRZSxXdCl8MCxTPShTPVMrTWF0aC5pbXVsKFFlLHBuKXwwKStNYXRoLmltdWwoJGUsV3QpfDAsRj1GK01hdGguaW11bCgk''@;'; + put 'put ''ZSxwbil8MDt2YXIgb3I9KFYrKFQ9VCtNYXRoLmltdWwoQ2UsTnQpfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bChDZSxzbil8MCkrTWF0aC5pbXVsKERlLE50KXwwKSk8PDEzKXwwO1Y9KChGPUYrTWF0aC5pbXVsKERlLHNuKXwwKSsoUz4+PjEzKXwwKSsob3I+Pj4yNil8MCxvciY9''@;'; + put 'put ''NjcxMDg4NjMsVD1NYXRoLmltdWwoQ3QsTm4pLFM9KFM9TWF0aC5pbXVsKEN0LGJuKSkrTWF0aC5pbXVsKGZ0LE5uKXwwLEY9TWF0aC5pbXVsKGZ0LGJuKSxUPVQrTWF0aC5pbXVsKGV0LHNyKXwwLFM9KFM9UytNYXRoLmltdWwoZXQsWG4pfDApK01hdGguaW11bChhdCxzcil8MCxGPUYrTWF0''@;'; + put 'put ''aC5pbXVsKGF0LFhuKXwwLFQ9VCtNYXRoLmltdWwob24seHIpfDAsUz0oUz1TK01hdGguaW11bChvbixxdCl8MCkrTWF0aC5pbXVsKF90LHhyKXwwLEY9RitNYXRoLmltdWwoX3QscXQpfDAsVD1UK01hdGguaW11bChBdCxucil8MCxTPShTPVMrTWF0aC5pbXVsKEF0LEFuKXwwKStNYXRoLmlt''@;'; + put 'put ''dWwoaHQsbnIpfDAsRj1GK01hdGguaW11bChodCxBbil8MCxUPVQrTWF0aC5pbXVsKHd0LFd0KXwwLFM9KFM9UytNYXRoLmltdWwod3QscG4pfDApK01hdGguaW11bChtdCxXdCl8MCxGPUYrTWF0aC5pbXVsKG10LHBuKXwwLFQ9VCtNYXRoLmltdWwoUWUsTnQpfDAsUz0oUz1TK01hdGguaW11''@;'; + put 'put ''bChRZSxzbil8MCkrTWF0aC5pbXVsKCRlLE50KXwwLEY9RitNYXRoLmltdWwoJGUsc24pfDA7dmFyIGdyPShWKyhUPVQrTWF0aC5pbXVsKENlLHduKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoQ2UsdG4pfDApK01hdGguaW11bChEZSx3bil8MCkpPDwxMyl8MDtWPSgoRj1GK01h''@;'; + put 'put ''dGguaW11bChEZSx0bil8MCkrKFM+Pj4xMyl8MCkrKGdyPj4+MjYpfDAsZ3ImPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKEdlLE5uKSxTPShTPU1hdGguaW11bChHZSxibikpK01hdGguaW11bChVZSxObil8MCxGPU1hdGguaW11bChVZSxibiksVD1UK01hdGguaW11bChDdCxzcil8MCxTPShTPVMr''@;'; + put 'put ''TWF0aC5pbXVsKEN0LFhuKXwwKStNYXRoLmltdWwoZnQsc3IpfDAsRj1GK01hdGguaW11bChmdCxYbil8MCxUPVQrTWF0aC5pbXVsKGV0LHhyKXwwLFM9KFM9UytNYXRoLmltdWwoZXQscXQpfDApK01hdGguaW11bChhdCx4cil8MCxGPUYrTWF0aC5pbXVsKGF0LHF0KXwwLFQ9VCtNYXRoLmlt''@;'; + put 'put ''dWwob24sbnIpfDAsUz0oUz1TK01hdGguaW11bChvbixBbil8MCkrTWF0aC5pbXVsKF90LG5yKXwwLEY9RitNYXRoLmltdWwoX3QsQW4pfDAsVD1UK01hdGguaW11bChBdCxXdCl8MCxTPShTPVMrTWF0aC5pbXVsKEF0LHBuKXwwKStNYXRoLmltdWwoaHQsV3QpfDAsRj1GK01hdGguaW11bCho''@;'; + put 'put ''dCxwbil8MCxUPVQrTWF0aC5pbXVsKHd0LE50KXwwLFM9KFM9UytNYXRoLmltdWwod3Qsc24pfDApK01hdGguaW11bChtdCxOdCl8MCxGPUYrTWF0aC5pbXVsKG10LHNuKXwwLFQ9VCtNYXRoLmltdWwoUWUsd24pfDAsUz0oUz1TK01hdGguaW11bChRZSx0bil8MCkrTWF0aC5pbXVsKCRlLHdu''@;'; + put 'put ''KXwwLEY9RitNYXRoLmltdWwoJGUsdG4pfDA7dmFyIEtyPShWKyhUPVQrTWF0aC5pbXVsKENlLFRyKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoQ2UsQm4pfDApK01hdGguaW11bChEZSxUcil8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bChEZSxCbil8MCkrKFM+Pj4xMyl8''@;'; + put 'put ''MCkrKEtyPj4+MjYpfDAsS3ImPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGp0LE5uKSxTPShTPU1hdGguaW11bChqdCxibikpK01hdGguaW11bChRdCxObil8MCxGPU1hdGguaW11bChRdCxibiksVD1UK01hdGguaW11bChHZSxzcil8MCxTPShTPVMrTWF0aC5pbXVsKEdlLFhuKXwwKStNYXRoLmlt''@;'; + put 'put ''dWwoVWUsc3IpfDAsRj1GK01hdGguaW11bChVZSxYbil8MCxUPVQrTWF0aC5pbXVsKEN0LHhyKXwwLFM9KFM9UytNYXRoLmltdWwoQ3QscXQpfDApK01hdGguaW11bChmdCx4cil8MCxGPUYrTWF0aC5pbXVsKGZ0LHF0KXwwLFQ9VCtNYXRoLmltdWwoZXQsbnIpfDAsUz0oUz1TK01hdGguaW11''@;'; + put 'put ''bChldCxBbil8MCkrTWF0aC5pbXVsKGF0LG5yKXwwLEY9RitNYXRoLmltdWwoYXQsQW4pfDAsVD1UK01hdGguaW11bChvbixXdCl8MCxTPShTPVMrTWF0aC5pbXVsKG9uLHBuKXwwKStNYXRoLmltdWwoX3QsV3QpfDAsRj1GK01hdGguaW11bChfdCxwbil8MCxUPVQrTWF0aC5pbXVsKEF0LE50''@;'; + put 'put ''KXwwLFM9KFM9UytNYXRoLmltdWwoQXQsc24pfDApK01hdGguaW11bChodCxOdCl8MCxGPUYrTWF0aC5pbXVsKGh0LHNuKXwwLFQ9VCtNYXRoLmltdWwod3Qsd24pfDAsUz0oUz1TK01hdGguaW11bCh3dCx0bil8MCkrTWF0aC5pbXVsKG10LHduKXwwLEY9RitNYXRoLmltdWwobXQsdG4pfDAs''@;'; + put 'put ''VD1UK01hdGguaW11bChRZSxUcil8MCxTPShTPVMrTWF0aC5pbXVsKFFlLEJuKXwwKStNYXRoLmltdWwoJGUsVHIpfDAsRj1GK01hdGguaW11bCgkZSxCbil8MDt2YXIgVnI9KFYrKFQ9VCtNYXRoLmltdWwoQ2UsbW4pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bChDZSx1bil8MCkr''@;'; + put 'put ''TWF0aC5pbXVsKERlLG1uKXwwKSk8PDEzKXwwO1Y9KChGPUYrTWF0aC5pbXVsKERlLHVuKXwwKSsoUz4+PjEzKXwwKSsoVnI+Pj4yNil8MCxWciY9NjcxMDg4NjMsVD1NYXRoLmltdWwoZG4sTm4pLFM9KFM9TWF0aC5pbXVsKGRuLGJuKSkrTWF0aC5pbXVsKHluLE5uKXwwLEY9TWF0aC5pbXVs''@;'; + put 'put ''KHluLGJuKSxUPVQrTWF0aC5pbXVsKGp0LHNyKXwwLFM9KFM9UytNYXRoLmltdWwoanQsWG4pfDApK01hdGguaW11bChRdCxzcil8MCxGPUYrTWF0aC5pbXVsKFF0LFhuKXwwLFQ9VCtNYXRoLmltdWwoR2UseHIpfDAsUz0oUz1TK01hdGguaW11bChHZSxxdCl8MCkrTWF0aC5pbXVsKFVlLHhy''@;'; + put 'put ''KXwwLEY9RitNYXRoLmltdWwoVWUscXQpfDAsVD1UK01hdGguaW11bChDdCxucil8MCxTPShTPVMrTWF0aC5pbXVsKEN0LEFuKXwwKStNYXRoLmltdWwoZnQsbnIpfDAsRj1GK01hdGguaW11bChmdCxBbil8MCxUPVQrTWF0aC5pbXVsKGV0LFd0KXwwLFM9KFM9UytNYXRoLmltdWwoZXQscG4p''@;'; + put 'put ''fDApK01hdGguaW11bChhdCxXdCl8MCxGPUYrTWF0aC5pbXVsKGF0LHBuKXwwLFQ9VCtNYXRoLmltdWwob24sTnQpfDAsUz0oUz1TK01hdGguaW11bChvbixzbil8MCkrTWF0aC5pbXVsKF90LE50KXwwLEY9RitNYXRoLmltdWwoX3Qsc24pfDAsVD1UK01hdGguaW11bChBdCx3bil8MCxTPShT''@;'; + put 'put ''PVMrTWF0aC5pbXVsKEF0LHRuKXwwKStNYXRoLmltdWwoaHQsd24pfDAsRj1GK01hdGguaW11bChodCx0bil8MCxUPVQrTWF0aC5pbXVsKHd0LFRyKXwwLFM9KFM9UytNYXRoLmltdWwod3QsQm4pfDApK01hdGguaW11bChtdCxUcil8MCxGPUYrTWF0aC5pbXVsKG10LEJuKXwwLFQ9VCtNYXRo''@;'; + put 'put ''LmltdWwoUWUsbW4pfDAsUz0oUz1TK01hdGguaW11bChRZSx1bil8MCkrTWF0aC5pbXVsKCRlLG1uKXwwLEY9RitNYXRoLmltdWwoJGUsdW4pfDA7dmFyIGlpPShWKyhUPVQrTWF0aC5pbXVsKENlLF9uKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoQ2UsR3QpfDApK01hdGguaW11''@;'; + put 'put ''bChEZSxfbil8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bChEZSxHdCl8MCkrKFM+Pj4xMyl8MCkrKGlpPj4+MjYpfDAsaWkmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGRuLHNyKSxTPShTPU1hdGguaW11bChkbixYbikpK01hdGguaW11bCh5bixzcil8MCxGPU1hdGguaW11bCh5bixYbiks''@;'; + put 'put ''VD1UK01hdGguaW11bChqdCx4cil8MCxTPShTPVMrTWF0aC5pbXVsKGp0LHF0KXwwKStNYXRoLmltdWwoUXQseHIpfDAsRj1GK01hdGguaW11bChRdCxxdCl8MCxUPVQrTWF0aC5pbXVsKEdlLG5yKXwwLFM9KFM9UytNYXRoLmltdWwoR2UsQW4pfDApK01hdGguaW11bChVZSxucil8MCxGPUYr''@;'; + put 'put ''TWF0aC5pbXVsKFVlLEFuKXwwLFQ9VCtNYXRoLmltdWwoQ3QsV3QpfDAsUz0oUz1TK01hdGguaW11bChDdCxwbil8MCkrTWF0aC5pbXVsKGZ0LFd0KXwwLEY9RitNYXRoLmltdWwoZnQscG4pfDAsVD1UK01hdGguaW11bChldCxOdCl8MCxTPShTPVMrTWF0aC5pbXVsKGV0LHNuKXwwKStNYXRo''@;'; + put 'put ''LmltdWwoYXQsTnQpfDAsRj1GK01hdGguaW11bChhdCxzbil8MCxUPVQrTWF0aC5pbXVsKG9uLHduKXwwLFM9KFM9UytNYXRoLmltdWwob24sdG4pfDApK01hdGguaW11bChfdCx3bil8MCxGPUYrTWF0aC5pbXVsKF90LHRuKXwwLFQ9VCtNYXRoLmltdWwoQXQsVHIpfDAsUz0oUz1TK01hdGgu''@;'; + put 'put ''aW11bChBdCxCbil8MCkrTWF0aC5pbXVsKGh0LFRyKXwwLEY9RitNYXRoLmltdWwoaHQsQm4pfDAsVD1UK01hdGguaW11bCh3dCxtbil8MCxTPShTPVMrTWF0aC5pbXVsKHd0LHVuKXwwKStNYXRoLmltdWwobXQsbW4pfDAsRj1GK01hdGguaW11bChtdCx1bil8MDt2YXIgUnI9KFYrKFQ9VCtN''@;'; + put 'put ''YXRoLmltdWwoUWUsX24pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bChRZSxHdCl8MCkrTWF0aC5pbXVsKCRlLF9uKXwwKSk8PDEzKXwwO1Y9KChGPUYrTWF0aC5pbXVsKCRlLEd0KXwwKSsoUz4+PjEzKXwwKSsoUnI+Pj4yNil8MCxSciY9NjcxMDg4NjMsVD1NYXRoLmltdWwoZG4s''@;'; + put 'put ''eHIpLFM9KFM9TWF0aC5pbXVsKGRuLHF0KSkrTWF0aC5pbXVsKHluLHhyKXwwLEY9TWF0aC5pbXVsKHluLHF0KSxUPVQrTWF0aC5pbXVsKGp0LG5yKXwwLFM9KFM9UytNYXRoLmltdWwoanQsQW4pfDApK01hdGguaW11bChRdCxucil8MCxGPUYrTWF0aC5pbXVsKFF0LEFuKXwwLFQ9VCtNYXRo''@;'; + put 'put ''LmltdWwoR2UsV3QpfDAsUz0oUz1TK01hdGguaW11bChHZSxwbil8MCkrTWF0aC5pbXVsKFVlLFd0KXwwLEY9RitNYXRoLmltdWwoVWUscG4pfDAsVD1UK01hdGguaW11bChDdCxOdCl8MCxTPShTPVMrTWF0aC5pbXVsKEN0LHNuKXwwKStNYXRoLmltdWwoZnQsTnQpfDAsRj1GK01hdGguaW11''@;'; + put 'put ''bChmdCxzbil8MCxUPVQrTWF0aC5pbXVsKGV0LHduKXwwLFM9KFM9UytNYXRoLmltdWwoZXQsdG4pfDApK01hdGguaW11bChhdCx3bil8MCxGPUYrTWF0aC5pbXVsKGF0LHRuKXwwLFQ9VCtNYXRoLmltdWwob24sVHIpfDAsUz0oUz1TK01hdGguaW11bChvbixCbil8MCkrTWF0aC5pbXVsKF90''@;'; + put 'put ''LFRyKXwwLEY9RitNYXRoLmltdWwoX3QsQm4pfDAsVD1UK01hdGguaW11bChBdCxtbil8MCxTPShTPVMrTWF0aC5pbXVsKEF0LHVuKXwwKStNYXRoLmltdWwoaHQsbW4pfDAsRj1GK01hdGguaW11bChodCx1bil8MDt2YXIgbGk9KFYrKFQ9VCtNYXRoLmltdWwod3QsX24pfDApfDApKygoODE5''@;'; + put 'put ''MSYoUz0oUz1TK01hdGguaW11bCh3dCxHdCl8MCkrTWF0aC5pbXVsKG10LF9uKXwwKSk8PDEzKXwwO1Y9KChGPUYrTWF0aC5pbXVsKG10LEd0KXwwKSsoUz4+PjEzKXwwKSsobGk+Pj4yNil8MCxsaSY9NjcxMDg4NjMsVD1NYXRoLmltdWwoZG4sbnIpLFM9KFM9TWF0aC5pbXVsKGRuLEFuKSkr''@;'; + put 'put ''TWF0aC5pbXVsKHluLG5yKXwwLEY9TWF0aC5pbXVsKHluLEFuKSxUPVQrTWF0aC5pbXVsKGp0LFd0KXwwLFM9KFM9UytNYXRoLmltdWwoanQscG4pfDApK01hdGguaW11bChRdCxXdCl8MCxGPUYrTWF0aC5pbXVsKFF0LHBuKXwwLFQ9VCtNYXRoLmltdWwoR2UsTnQpfDAsUz0oUz1TK01hdGgu''@;'; + put 'put ''aW11bChHZSxzbil8MCkrTWF0aC5pbXVsKFVlLE50KXwwLEY9RitNYXRoLmltdWwoVWUsc24pfDAsVD1UK01hdGguaW11bChDdCx3bil8MCxTPShTPVMrTWF0aC5pbXVsKEN0LHRuKXwwKStNYXRoLmltdWwoZnQsd24pfDAsRj1GK01hdGguaW11bChmdCx0bil8MCxUPVQrTWF0aC5pbXVsKGV0''@;'; + put 'put ''LFRyKXwwLFM9KFM9UytNYXRoLmltdWwoZXQsQm4pfDApK01hdGguaW11bChhdCxUcil8MCxGPUYrTWF0aC5pbXVsKGF0LEJuKXwwLFQ9VCtNYXRoLmltdWwob24sbW4pfDAsUz0oUz1TK01hdGguaW11bChvbix1bil8MCkrTWF0aC5pbXVsKF90LG1uKXwwLEY9RitNYXRoLmltdWwoX3QsdW4p''@;'; + put 'put ''fDA7dmFyIE1pPShWKyhUPVQrTWF0aC5pbXVsKEF0LF9uKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoQXQsR3QpfDApK01hdGguaW11bChodCxfbil8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bChodCxHdCl8MCkrKFM+Pj4xMyl8MCkrKE1pPj4+MjYpfDAsTWkmPTY3MTA4''@;'; + put 'put ''ODYzLFQ9TWF0aC5pbXVsKGRuLFd0KSxTPShTPU1hdGguaW11bChkbixwbikpK01hdGguaW11bCh5bixXdCl8MCxGPU1hdGguaW11bCh5bixwbiksVD1UK01hdGguaW11bChqdCxOdCl8MCxTPShTPVMrTWF0aC5pbXVsKGp0LHNuKXwwKStNYXRoLmltdWwoUXQsTnQpfDAsRj1GK01hdGguaW11''@;'; + put 'put ''bChRdCxzbil8MCxUPVQrTWF0aC5pbXVsKEdlLHduKXwwLFM9KFM9UytNYXRoLmltdWwoR2UsdG4pfDApK01hdGguaW11bChVZSx3bil8MCxGPUYrTWF0aC5pbXVsKFVlLHRuKXwwLFQ9VCtNYXRoLmltdWwoQ3QsVHIpfDAsUz0oUz1TK01hdGguaW11bChDdCxCbil8MCkrTWF0aC5pbXVsKGZ0''@;'; + put 'put ''LFRyKXwwLEY9RitNYXRoLmltdWwoZnQsQm4pfDAsVD1UK01hdGguaW11bChldCxtbil8MCxTPShTPVMrTWF0aC5pbXVsKGV0LHVuKXwwKStNYXRoLmltdWwoYXQsbW4pfDAsRj1GK01hdGguaW11bChhdCx1bil8MDt2YXIgbzA9KFYrKFQ9VCtNYXRoLmltdWwob24sX24pfDApfDApKygoODE5''@;'; + put 'put ''MSYoUz0oUz1TK01hdGguaW11bChvbixHdCl8MCkrTWF0aC5pbXVsKF90LF9uKXwwKSk8PDEzKXwwO1Y9KChGPUYrTWF0aC5pbXVsKF90LEd0KXwwKSsoUz4+PjEzKXwwKSsobzA+Pj4yNil8MCxvMCY9NjcxMDg4NjMsVD1NYXRoLmltdWwoZG4sTnQpLFM9KFM9TWF0aC5pbXVsKGRuLHNuKSkr''@;'; + put 'put ''TWF0aC5pbXVsKHluLE50KXwwLEY9TWF0aC5pbXVsKHluLHNuKSxUPVQrTWF0aC5pbXVsKGp0LHduKXwwLFM9KFM9UytNYXRoLmltdWwoanQsdG4pfDApK01hdGguaW11bChRdCx3bil8MCxGPUYrTWF0aC5pbXVsKFF0LHRuKXwwLFQ9VCtNYXRoLmltdWwoR2UsVHIpfDAsUz0oUz1TK01hdGgu''@;'; + put 'put ''aW11bChHZSxCbil8MCkrTWF0aC5pbXVsKFVlLFRyKXwwLEY9RitNYXRoLmltdWwoVWUsQm4pfDAsVD1UK01hdGguaW11bChDdCxtbil8MCxTPShTPVMrTWF0aC5pbXVsKEN0LHVuKXwwKStNYXRoLmltdWwoZnQsbW4pfDAsRj1GK01hdGguaW11bChmdCx1bil8MDt2YXIgbjA9KFYrKFQ9VCtN''@;'; + put 'put ''YXRoLmltdWwoZXQsX24pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bChldCxHdCl8MCkrTWF0aC5pbXVsKGF0LF9uKXwwKSk8PDEzKXwwO1Y9KChGPUYrTWF0aC5pbXVsKGF0LEd0KXwwKSsoUz4+PjEzKXwwKSsobjA+Pj4yNil8MCxuMCY9NjcxMDg4NjMsVD1NYXRoLmltdWwoZG4s''@;'; + put 'put ''d24pLFM9KFM9TWF0aC5pbXVsKGRuLHRuKSkrTWF0aC5pbXVsKHluLHduKXwwLEY9TWF0aC5pbXVsKHluLHRuKSxUPVQrTWF0aC5pbXVsKGp0LFRyKXwwLFM9KFM9UytNYXRoLmltdWwoanQsQm4pfDApK01hdGguaW11bChRdCxUcil8MCxGPUYrTWF0aC5pbXVsKFF0LEJuKXwwLFQ9VCtNYXRo''@;'; + put 'put ''LmltdWwoR2UsbW4pfDAsUz0oUz1TK01hdGguaW11bChHZSx1bil8MCkrTWF0aC5pbXVsKFVlLG1uKXwwLEY9RitNYXRoLmltdWwoVWUsdW4pfDA7dmFyIGQwPShWKyhUPVQrTWF0aC5pbXVsKEN0LF9uKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoQ3QsR3QpfDApK01hdGguaW11''@;'; + put 'put ''bChmdCxfbil8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bChmdCxHdCl8MCkrKFM+Pj4xMyl8MCkrKGQwPj4+MjYpfDAsZDAmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGRuLFRyKSxTPShTPU1hdGguaW11bChkbixCbikpK01hdGguaW11bCh5bixUcil8MCxGPU1hdGguaW11bCh5bixCbiks''@;'; + put 'put ''VD1UK01hdGguaW11bChqdCxtbil8MCxTPShTPVMrTWF0aC5pbXVsKGp0LHVuKXwwKStNYXRoLmltdWwoUXQsbW4pfDAsRj1GK01hdGguaW11bChRdCx1bil8MDt2YXIgbTA9KFYrKFQ9VCtNYXRoLmltdWwoR2UsX24pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bChHZSxHdCl8MCkr''@;'; + put 'put ''TWF0aC5pbXVsKFVlLF9uKXwwKSk8PDEzKXwwO1Y9KChGPUYrTWF0aC5pbXVsKFVlLEd0KXwwKSsoUz4+PjEzKXwwKSsobTA+Pj4yNil8MCxtMCY9NjcxMDg4NjMsVD1NYXRoLmltdWwoZG4sbW4pLFM9KFM9TWF0aC5pbXVsKGRuLHVuKSkrTWF0aC5pbXVsKHluLG1uKXwwLEY9TWF0aC5pbXVs''@;'; + put 'put ''KHluLHVuKTt2YXIgRzA9KFYrKFQ9VCtNYXRoLmltdWwoanQsX24pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bChqdCxHdCl8MCkrTWF0aC5pbXVsKFF0LF9uKXwwKSk8PDEzKXwwO1Y9KChGPUYrTWF0aC5pbXVsKFF0LEd0KXwwKSsoUz4+PjEzKXwwKSsoRzA+Pj4yNil8MCxHMCY9''@;'; + put 'put ''NjcxMDg4NjM7dmFyIERpPShWKyhUPU1hdGguaW11bChkbixfbikpfDApKygoODE5MSYoUz0oUz1NYXRoLmltdWwoZG4sR3QpKStNYXRoLmltdWwoeW4sX24pfDApKTw8MTMpfDA7cmV0dXJuIFY9KChGPU1hdGguaW11bCh5bixHdCkpKyhTPj4+MTMpfDApKyhEaT4+PjI2KXwwLERpJj02NzEw''@;'; + put 'put ''ODg2MyxQWzBdPWtuLFBbMV09Vm4sUFsyXT1lbixQWzNdPUluLFBbNF09Sm4sUFs1XT1vcixQWzZdPWdyLFBbN109S3IsUFs4XT1WcixQWzldPWlpLFBbMTBdPVJyLFBbMTFdPWxpLFBbMTJdPU1pLFBbMTNdPW8wLFBbMTRdPW4wLFBbMTVdPWQwLFBbMTZdPW0wLFBbMTddPUcwLFBbMThdPURp''@;'; + put 'put ''LDAhPT1WJiYoUFsxOV09VixuZS5sZW5ndGgrKyksbmV9O2Z1bmN0aW9uIG9lKGhlLE8seil7cmV0dXJuKG5ldyBjZSkubXVscChoZSxPLHopfWZ1bmN0aW9uIGNlKGhlLE8pe3RoaXMueD1oZSx0aGlzLnk9T31NYXRoLmltdWx8fChKPXEpLFUucHJvdG90eXBlLm11bFRvPWZ1bmN0aW9uKE8s''@;'; + put 'put ''eil7dmFyIG5lLHRlPXRoaXMubGVuZ3RoK08ubGVuZ3RoO3JldHVybiBuZT0xMD09PXRoaXMubGVuZ3RoJiYxMD09PU8ubGVuZ3RoP0oodGhpcyxPLHopOnRlPDYzP3EodGhpcyxPLHopOnRlPDEwMjQ/ZnVuY3Rpb24gc2UoaGUsTyx6KXt6Lm5lZ2F0aXZlPU8ubmVnYXRpdmVeaGUubmVnYXRp''@;'; + put 'put ''dmUsei5sZW5ndGg9aGUubGVuZ3RoK08ubGVuZ3RoO2Zvcih2YXIgbmU9MCx0ZT0wLHg9MDt4PHoubGVuZ3RoLTE7eCsrKXt2YXIgUD10ZTt0ZT0wO2Zvcih2YXIgVj02NzEwODg2MyZuZSxUPU1hdGgubWluKHgsTy5sZW5ndGgtMSksUz1NYXRoLm1heCgwLHgtaGUubGVuZ3RoKzEpO1M8PVQ7''@;'; + put 'put ''UysrKXt2YXIgRGU9KDB8aGUud29yZHNbeC1TXSkqKDB8Ty53b3Jkc1tTXSksUGU9NjcxMDg4NjMmRGU7Vj02NzEwODg2MyYoUGU9UGUrVnwwKSx0ZSs9KFA9KFA9UCsoRGUvNjcxMDg4NjR8MCl8MCkrKFBlPj4+MjYpfDApPj4+MjYsUCY9NjcxMDg4NjN9ei53b3Jkc1t4XT1WLG5lPVAsUD10''@;'; + put 'put ''ZX1yZXR1cm4gMCE9PW5lP3oud29yZHNbeF09bmU6ei5sZW5ndGgtLSx6LnN0cmlwKCl9KHRoaXMsTyx6KTpvZSh0aGlzLE8seiksbmV9LGNlLnByb3RvdHlwZS5tYWtlUkJUPWZ1bmN0aW9uKE8pe2Zvcih2YXIgej1uZXcgQXJyYXkoTyksbmU9VS5wcm90b3R5cGUuX2NvdW50Qml0cyhPKS0x''@;'; + put 'put ''LHRlPTA7dGU8Tzt0ZSsrKXpbdGVdPXRoaXMucmV2QmluKHRlLG5lLE8pO3JldHVybiB6fSxjZS5wcm90b3R5cGUucmV2QmluPWZ1bmN0aW9uKE8seixuZSl7aWYoMD09PU98fE89PT1uZS0xKXJldHVybiBPO2Zvcih2YXIgdGU9MCx4PTA7eDx6O3grKyl0ZXw9KDEmTyk8PHoteC0xLE8+Pj0x''@;'; + put 'put ''O3JldHVybiB0ZX0sY2UucHJvdG90eXBlLnBlcm11dGU9ZnVuY3Rpb24oTyx6LG5lLHRlLHgsUCl7Zm9yKHZhciBWPTA7VjxQO1YrKyl0ZVtWXT16W09bVl1dLHhbVl09bmVbT1tWXV19LGNlLnByb3RvdHlwZS50cmFuc2Zvcm09ZnVuY3Rpb24oTyx6LG5lLHRlLHgsUCl7dGhpcy5wZXJtdXRl''@;'; + put 'put ''KFAsTyx6LG5lLHRlLHgpO2Zvcih2YXIgVj0xO1Y8eDtWPDw9MSlmb3IodmFyIFQ9Vjw8MSxTPU1hdGguY29zKDIqTWF0aC5QSS9UKSxGPU1hdGguc2luKDIqTWF0aC5QSS9UKSx5ZT0wO3llPHg7eWUrPVQpZm9yKHZhciBDZT1TLERlPUYsUGU9MDtQZTxWO1BlKyspe3ZhciBRZT1uZVt5ZStQ''@;'; + put 'put ''ZV0sJGU9dGVbeWUrUGVdLGd0PW5lW3llK1BlK1ZdLHd0PXRlW3llK1BlK1ZdLG10PUNlKmd0LURlKnd0O3d0PUNlKnd0K0RlKmd0LG5lW3llK1BlXT1RZSsoZ3Q9bXQpLHRlW3llK1BlXT0kZSt3dCxuZVt5ZStQZStWXT1RZS1ndCx0ZVt5ZStQZStWXT0kZS13dCxQZSE9PVQmJihtdD1TKkNl''@;'; + put 'put ''LUYqRGUsRGU9UypEZStGKkNlLENlPW10KX19LGNlLnByb3RvdHlwZS5ndWVzc0xlbjEzYj1mdW5jdGlvbihPLHope3ZhciBuZT0xfE1hdGgubWF4KHosTyksdGU9MSZuZSx4PTA7Zm9yKG5lPW5lLzJ8MDtuZTtuZT4+Pj0xKXgrKztyZXR1cm4gMTw8eCsxK3RlfSxjZS5wcm90b3R5cGUuY29u''@;'; + put 'put ''anVnYXRlPWZ1bmN0aW9uKE8seixuZSl7aWYoIShuZTw9MSkpZm9yKHZhciB0ZT0wO3RlPG5lLzI7dGUrKyl7dmFyIHg9T1t0ZV07T1t0ZV09T1tuZS10ZS0xXSxPW25lLXRlLTFdPXgseD16W3RlXSx6W3RlXT0teltuZS10ZS0xXSx6W25lLXRlLTFdPS14fX0sY2UucHJvdG90eXBlLm5vcm1h''@;'; + put 'put ''bGl6ZTEzYj1mdW5jdGlvbihPLHope2Zvcih2YXIgbmU9MCx0ZT0wO3RlPHovMjt0ZSsrKXt2YXIgeD04MTkyKk1hdGgucm91bmQoT1syKnRlKzFdL3opK01hdGgucm91bmQoT1syKnRlXS96KStuZTtPW3RlXT02NzEwODg2MyZ4LG5lPXg8NjcxMDg4NjQ/MDp4LzY3MTA4ODY0fDB9cmV0dXJu''@;'; + put 'put ''IE99LGNlLnByb3RvdHlwZS5jb252ZXJ0MTNiPWZ1bmN0aW9uKE8seixuZSx0ZSl7Zm9yKHZhciB4PTAsUD0wO1A8ejtQKyspbmVbMipQXT04MTkxJih4Kz0wfE9bUF0pLG5lWzIqUCsxXT04MTkxJih4Pj4+PTEzKSx4Pj4+PTEzO2ZvcihQPTIqejtQPHRlOysrUCluZVtQXT0wO0UoMD09PXgp''@;'; + put 'put ''LEUoMD09KC04MTkyJngpKX0sY2UucHJvdG90eXBlLnN0dWI9ZnVuY3Rpb24oTyl7Zm9yKHZhciB6PW5ldyBBcnJheShPKSxuZT0wO25lPE87bmUrKyl6W25lXT0wO3JldHVybiB6fSxjZS5wcm90b3R5cGUubXVscD1mdW5jdGlvbihPLHosbmUpe3ZhciB0ZT0yKnRoaXMuZ3Vlc3NMZW4xM2Io''@;'; + put 'put ''Ty5sZW5ndGgsei5sZW5ndGgpLHg9dGhpcy5tYWtlUkJUKHRlKSxQPXRoaXMuc3R1Yih0ZSksVj1uZXcgQXJyYXkodGUpLFQ9bmV3IEFycmF5KHRlKSxTPW5ldyBBcnJheSh0ZSksRj1uZXcgQXJyYXkodGUpLHllPW5ldyBBcnJheSh0ZSksQ2U9bmV3IEFycmF5KHRlKSxEZT1uZS53b3JkcztE''@;'; + put 'put ''ZS5sZW5ndGg9dGUsdGhpcy5jb252ZXJ0MTNiKE8ud29yZHMsTy5sZW5ndGgsVix0ZSksdGhpcy5jb252ZXJ0MTNiKHoud29yZHMsei5sZW5ndGgsRix0ZSksdGhpcy50cmFuc2Zvcm0oVixQLFQsUyx0ZSx4KSx0aGlzLnRyYW5zZm9ybShGLFAseWUsQ2UsdGUseCk7Zm9yKHZhciBQZT0wO1Bl''@;'; + put 'put ''PHRlO1BlKyspe3ZhciBRZT1UW1BlXSp5ZVtQZV0tU1tQZV0qQ2VbUGVdO1NbUGVdPVRbUGVdKkNlW1BlXStTW1BlXSp5ZVtQZV0sVFtQZV09UWV9cmV0dXJuIHRoaXMuY29uanVnYXRlKFQsUyx0ZSksdGhpcy50cmFuc2Zvcm0oVCxTLERlLFAsdGUseCksdGhpcy5jb25qdWdhdGUoRGUsUCx0''@;'; + put 'put ''ZSksdGhpcy5ub3JtYWxpemUxM2IoRGUsdGUpLG5lLm5lZ2F0aXZlPU8ubmVnYXRpdmVeei5uZWdhdGl2ZSxuZS5sZW5ndGg9Ty5sZW5ndGgrei5sZW5ndGgsbmUuc3RyaXAoKX0sVS5wcm90b3R5cGUubXVsPWZ1bmN0aW9uKE8pe3ZhciB6PW5ldyBVKG51bGwpO3JldHVybiB6LndvcmRzPW5l''@;'; + put 'put ''dyBBcnJheSh0aGlzLmxlbmd0aCtPLmxlbmd0aCksdGhpcy5tdWxUbyhPLHopfSxVLnByb3RvdHlwZS5tdWxmPWZ1bmN0aW9uKE8pe3ZhciB6PW5ldyBVKG51bGwpO3JldHVybiB6LndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCtPLmxlbmd0aCksb2UodGhpcyxPLHopfSxVLnByb3RvdHlw''@;'; + put 'put ''ZS5pbXVsPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmNsb25lKCkubXVsVG8oTyx0aGlzKX0sVS5wcm90b3R5cGUuaW11bG49ZnVuY3Rpb24oTyl7RSgibnVtYmVyIj09dHlwZW9mIE8pLEUoTzw2NzEwODg2NCk7Zm9yKHZhciB6PTAsbmU9MDtuZTx0aGlzLmxlbmd0aDtuZSsrKXt2YXIgdGU9''@;'; + put 'put ''KDB8dGhpcy53b3Jkc1tuZV0pKk8seD0oNjcxMDg4NjMmdGUpKyg2NzEwODg2MyZ6KTt6Pj49MjYseis9dGUvNjcxMDg4NjR8MCx6Kz14Pj4+MjYsdGhpcy53b3Jkc1tuZV09NjcxMDg4NjMmeH1yZXR1cm4gMCE9PXomJih0aGlzLndvcmRzW25lXT16LHRoaXMubGVuZ3RoKyspLHRoaXN9LFUu''@;'; + put 'put ''cHJvdG90eXBlLm11bG49ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pbXVsbihPKX0sVS5wcm90b3R5cGUuc3FyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXVsKHRoaXMpfSxVLnByb3RvdHlwZS5pc3FyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW11bCh0aGlzLmNsb25lKCkp''@;'; + put 'put ''fSxVLnByb3RvdHlwZS5wb3c9ZnVuY3Rpb24oTyl7dmFyIHo9ZnVuY3Rpb24gZWUoaGUpe2Zvcih2YXIgTz1uZXcgQXJyYXkoaGUuYml0TGVuZ3RoKCkpLHo9MDt6PE8ubGVuZ3RoO3orKyl7dmFyIHRlPXolMjY7T1t6XT0oaGUud29yZHNbei8yNnwwXSYxPDx0ZSk+Pj50ZX1yZXR1cm4gT30o''@;'; + put 'put ''Tyk7aWYoMD09PXoubGVuZ3RoKXJldHVybiBuZXcgVSgxKTtmb3IodmFyIG5lPXRoaXMsdGU9MDt0ZTx6Lmxlbmd0aCYmMD09PXpbdGVdO3RlKyssbmU9bmUuc3FyKCkpO2lmKCsrdGU8ei5sZW5ndGgpZm9yKHZhciB4PW5lLnNxcigpO3RlPHoubGVuZ3RoO3RlKysseD14LnNxcigpKTAhPT16''@;'; + put 'put ''W3RlXSYmKG5lPW5lLm11bCh4KSk7cmV0dXJuIG5lfSxVLnByb3RvdHlwZS5pdXNobG49ZnVuY3Rpb24oTyl7RSgibnVtYmVyIj09dHlwZW9mIE8mJk8+PTApO3ZhciB4LHo9TyUyNixuZT0oTy16KS8yNix0ZT02NzEwODg2Mz4+PjI2LXo8PDI2LXo7aWYoMCE9PXope3ZhciBQPTA7Zm9yKHg9''@;'; + put 'put ''MDt4PHRoaXMubGVuZ3RoO3grKyl7dmFyIFY9dGhpcy53b3Jkc1t4XSZ0ZTt0aGlzLndvcmRzW3hdPSgwfHRoaXMud29yZHNbeF0pLVY8PHp8UCxQPVY+Pj4yNi16fVAmJih0aGlzLndvcmRzW3hdPVAsdGhpcy5sZW5ndGgrKyl9aWYoMCE9PW5lKXtmb3IoeD10aGlzLmxlbmd0aC0xO3g+PTA7''@;'; + put 'put ''eC0tKXRoaXMud29yZHNbeCtuZV09dGhpcy53b3Jkc1t4XTtmb3IoeD0wO3g8bmU7eCsrKXRoaXMud29yZHNbeF09MDt0aGlzLmxlbmd0aCs9bmV9cmV0dXJuIHRoaXMuc3RyaXAoKX0sVS5wcm90b3R5cGUuaXNobG49ZnVuY3Rpb24oTyl7cmV0dXJuIEUoMD09PXRoaXMubmVnYXRpdmUpLHRo''@;'; + put 'put ''aXMuaXVzaGxuKE8pfSxVLnByb3RvdHlwZS5pdXNocm49ZnVuY3Rpb24oTyx6LG5lKXt2YXIgdGU7RSgibnVtYmVyIj09dHlwZW9mIE8mJk8+PTApLHRlPXo/KHoteiUyNikvMjY6MDt2YXIgeD1PJTI2LFA9TWF0aC5taW4oKE8teCkvMjYsdGhpcy5sZW5ndGgpLFY9NjcxMDg4NjNeNjcxMDg4''@;'; + put 'put ''NjM+Pj54PDx4LFQ9bmU7aWYodGUtPVAsdGU9TWF0aC5tYXgoMCx0ZSksVCl7Zm9yKHZhciBTPTA7UzxQO1MrKylULndvcmRzW1NdPXRoaXMud29yZHNbU107VC5sZW5ndGg9UH1pZigwIT09UClpZih0aGlzLmxlbmd0aD5QKWZvcih0aGlzLmxlbmd0aC09UCxTPTA7Uzx0aGlzLmxlbmd0aDtT''@;'; + put 'put ''KyspdGhpcy53b3Jkc1tTXT10aGlzLndvcmRzW1MrUF07ZWxzZSB0aGlzLndvcmRzWzBdPTAsdGhpcy5sZW5ndGg9MTt2YXIgRj0wO2ZvcihTPXRoaXMubGVuZ3RoLTE7Uz49MCYmKDAhPT1GfHxTPj10ZSk7Uy0tKXt2YXIgeWU9MHx0aGlzLndvcmRzW1NdO3RoaXMud29yZHNbU109Rjw8MjYt''@;'; + put 'put ''eHx5ZT4+PngsRj15ZSZWfXJldHVybiBUJiYwIT09RiYmKFQud29yZHNbVC5sZW5ndGgrK109RiksMD09PXRoaXMubGVuZ3RoJiYodGhpcy53b3Jkc1swXT0wLHRoaXMubGVuZ3RoPTEpLHRoaXMuc3RyaXAoKX0sVS5wcm90b3R5cGUuaXNocm49ZnVuY3Rpb24oTyx6LG5lKXtyZXR1cm4gRSgw''@;'; + put 'put ''PT09dGhpcy5uZWdhdGl2ZSksdGhpcy5pdXNocm4oTyx6LG5lKX0sVS5wcm90b3R5cGUuc2hsbj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlzaGxuKE8pfSxVLnByb3RvdHlwZS51c2hsbj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5jbG9uZSgpLml1c2hsbihPKX0sVS5wcm90''@;'; + put 'put ''b3R5cGUuc2hybj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlzaHJuKE8pfSxVLnByb3RvdHlwZS51c2hybj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5jbG9uZSgpLml1c2hybihPKX0sVS5wcm90b3R5cGUudGVzdG49ZnVuY3Rpb24oTyl7RSgibnVtYmVyIj09dHlwZW9mIE8m''@;'; + put 'put ''Jk8+PTApO3ZhciB6PU8lMjYsbmU9KE8teikvMjY7cmV0dXJuISh0aGlzLmxlbmd0aDw9bmV8fCEodGhpcy53b3Jkc1tuZV0mMTw8eikpfSxVLnByb3RvdHlwZS5pbWFza249ZnVuY3Rpb24oTyl7RSgibnVtYmVyIj09dHlwZW9mIE8mJk8+PTApO3ZhciB6PU8lMjYsbmU9KE8teikvMjY7cmV0''@;'; + put 'put ''dXJuIEUoMD09PXRoaXMubmVnYXRpdmUsImltYXNrbiB3b3JrcyBvbmx5IHdpdGggcG9zaXRpdmUgbnVtYmVycyIpLHRoaXMubGVuZ3RoPD1uZT90aGlzOigwIT09eiYmbmUrKyx0aGlzLmxlbmd0aD1NYXRoLm1pbihuZSx0aGlzLmxlbmd0aCksMCE9PXomJih0aGlzLndvcmRzW3RoaXMubGVu''@;'; + put 'put ''Z3RoLTFdJj02NzEwODg2M142NzEwODg2Mz4+Pno8PHopLHRoaXMuc3RyaXAoKSl9LFUucHJvdG90eXBlLm1hc2tuPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmNsb25lKCkuaW1hc2tuKE8pfSxVLnByb3RvdHlwZS5pYWRkbj1mdW5jdGlvbihPKXtyZXR1cm4gRSgibnVtYmVyIj09dHlwZW9m''@;'; + put 'put ''IE8pLEUoTzw2NzEwODg2NCksTzwwP3RoaXMuaXN1Ym4oLU8pOjAhPT10aGlzLm5lZ2F0aXZlPzE9PT10aGlzLmxlbmd0aCYmKDB8dGhpcy53b3Jkc1swXSk8Tz8odGhpcy53b3Jkc1swXT1PLSgwfHRoaXMud29yZHNbMF0pLHRoaXMubmVnYXRpdmU9MCx0aGlzKToodGhpcy5uZWdhdGl2ZT0w''@;'; + put 'put ''LHRoaXMuaXN1Ym4oTyksdGhpcy5uZWdhdGl2ZT0xLHRoaXMpOnRoaXMuX2lhZGRuKE8pfSxVLnByb3RvdHlwZS5faWFkZG49ZnVuY3Rpb24oTyl7dGhpcy53b3Jkc1swXSs9Tztmb3IodmFyIHo9MDt6PHRoaXMubGVuZ3RoJiZ0aGlzLndvcmRzW3pdPj02NzEwODg2NDt6KyspdGhpcy53b3Jk''@;'; + put 'put ''c1t6XS09NjcxMDg4NjQsej09PXRoaXMubGVuZ3RoLTE/dGhpcy53b3Jkc1t6KzFdPTE6dGhpcy53b3Jkc1t6KzFdKys7cmV0dXJuIHRoaXMubGVuZ3RoPU1hdGgubWF4KHRoaXMubGVuZ3RoLHorMSksdGhpc30sVS5wcm90b3R5cGUuaXN1Ym49ZnVuY3Rpb24oTyl7aWYoRSgibnVtYmVyIj09''@;'; + put 'put ''dHlwZW9mIE8pLEUoTzw2NzEwODg2NCksTzwwKXJldHVybiB0aGlzLmlhZGRuKC1PKTtpZigwIT09dGhpcy5uZWdhdGl2ZSlyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLHRoaXMuaWFkZG4oTyksdGhpcy5uZWdhdGl2ZT0xLHRoaXM7aWYodGhpcy53b3Jkc1swXS09TywxPT09dGhpcy5sZW5ndGgm''@;'; + put 'put ''JnRoaXMud29yZHNbMF08MCl0aGlzLndvcmRzWzBdPS10aGlzLndvcmRzWzBdLHRoaXMubmVnYXRpdmU9MTtlbHNlIGZvcih2YXIgej0wO3o8dGhpcy5sZW5ndGgmJnRoaXMud29yZHNbel08MDt6KyspdGhpcy53b3Jkc1t6XSs9NjcxMDg4NjQsdGhpcy53b3Jkc1t6KzFdLT0xO3JldHVybiB0''@;'; + put 'put ''aGlzLnN0cmlwKCl9LFUucHJvdG90eXBlLmFkZG49ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pYWRkbihPKX0sVS5wcm90b3R5cGUuc3Vibj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlzdWJuKE8pfSxVLnByb3RvdHlwZS5pYWJzPWZ1bmN0aW9uKCl7cmV0dXJu''@;'; + put 'put ''IHRoaXMubmVnYXRpdmU9MCx0aGlzfSxVLnByb3RvdHlwZS5hYnM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlhYnMoKX0sVS5wcm90b3R5cGUuX2lzaGxuc3VibXVsPWZ1bmN0aW9uKE8seixuZSl7dmFyIHg7dGhpcy5fZXhwYW5kKE8ubGVuZ3RoK25lKTt2YXIgUCxWPTA7Zm9y''@;'; + put 'put ''KHg9MDt4PE8ubGVuZ3RoO3grKyl7UD0oMHx0aGlzLndvcmRzW3grbmVdKStWO3ZhciBUPSgwfE8ud29yZHNbeF0pKno7Vj0oKFAtPTY3MTA4ODYzJlQpPj4yNiktKFQvNjcxMDg4NjR8MCksdGhpcy53b3Jkc1t4K25lXT02NzEwODg2MyZQfWZvcig7eDx0aGlzLmxlbmd0aC1uZTt4KyspVj0o''@;'; + put 'put ''UD0oMHx0aGlzLndvcmRzW3grbmVdKStWKT4+MjYsdGhpcy53b3Jkc1t4K25lXT02NzEwODg2MyZQO2lmKDA9PT1WKXJldHVybiB0aGlzLnN0cmlwKCk7Zm9yKEUoLTE9PT1WKSxWPTAseD0wO3g8dGhpcy5sZW5ndGg7eCsrKVY9KFA9LSgwfHRoaXMud29yZHNbeF0pK1YpPj4yNix0aGlzLndv''@;'; + put 'put ''cmRzW3hdPTY3MTA4ODYzJlA7cmV0dXJuIHRoaXMubmVnYXRpdmU9MSx0aGlzLnN0cmlwKCl9LFUucHJvdG90eXBlLl93b3JkRGl2PWZ1bmN0aW9uKE8seil7dmFyIG5lLHRlPXRoaXMuY2xvbmUoKSx4PU8sUD0wfHgud29yZHNbeC5sZW5ndGgtMV07MCE9KG5lPTI2LXRoaXMuX2NvdW50Qml0''@;'; + put 'put ''cyhQKSkmJih4PXgudXNobG4obmUpLHRlLml1c2hsbihuZSksUD0wfHgud29yZHNbeC5sZW5ndGgtMV0pO3ZhciBTLFQ9dGUubGVuZ3RoLXgubGVuZ3RoO2lmKCJtb2QiIT09eil7KFM9bmV3IFUobnVsbCkpLmxlbmd0aD1UKzEsUy53b3Jkcz1uZXcgQXJyYXkoUy5sZW5ndGgpO2Zvcih2YXIg''@;'; + put 'put ''Rj0wO0Y8Uy5sZW5ndGg7RisrKVMud29yZHNbRl09MH12YXIgeWU9dGUuY2xvbmUoKS5faXNobG5zdWJtdWwoeCwxLFQpOzA9PT15ZS5uZWdhdGl2ZSYmKHRlPXllLFMmJihTLndvcmRzW1RdPTEpKTtmb3IodmFyIENlPVQtMTtDZT49MDtDZS0tKXt2YXIgRGU9NjcxMDg4NjQqKDB8dGUud29y''@;'; + put 'put ''ZHNbeC5sZW5ndGgrQ2VdKSsoMHx0ZS53b3Jkc1t4Lmxlbmd0aCtDZS0xXSk7Zm9yKERlPU1hdGgubWluKERlL1B8MCw2NzEwODg2MyksdGUuX2lzaGxuc3VibXVsKHgsRGUsQ2UpOzAhPT10ZS5uZWdhdGl2ZTspRGUtLSx0ZS5uZWdhdGl2ZT0wLHRlLl9pc2hsbnN1Ym11bCh4LDEsQ2UpLHRl''@;'; + put 'put ''LmlzWmVybygpfHwodGUubmVnYXRpdmVePTEpO1MmJihTLndvcmRzW0NlXT1EZSl9cmV0dXJuIFMmJlMuc3RyaXAoKSx0ZS5zdHJpcCgpLCJkaXYiIT09eiYmMCE9PW5lJiZ0ZS5pdXNocm4obmUpLHtkaXY6U3x8bnVsbCxtb2Q6dGV9fSxVLnByb3RvdHlwZS5kaXZtb2Q9ZnVuY3Rpb24oTyx6''@;'; + put 'put ''LG5lKXtyZXR1cm4gRSghTy5pc1plcm8oKSksdGhpcy5pc1plcm8oKT97ZGl2Om5ldyBVKDApLG1vZDpuZXcgVSgwKX06MCE9PXRoaXMubmVnYXRpdmUmJjA9PT1PLm5lZ2F0aXZlPyhQPXRoaXMubmVnKCkuZGl2bW9kKE8seiksIm1vZCIhPT16JiYodGU9UC5kaXYubmVnKCkpLCJkaXYiIT09''@;'; + put 'put ''eiYmKHg9UC5tb2QubmVnKCksbmUmJjAhPT14Lm5lZ2F0aXZlJiZ4LmlhZGQoTykpLHtkaXY6dGUsbW9kOnh9KTowPT09dGhpcy5uZWdhdGl2ZSYmMCE9PU8ubmVnYXRpdmU/KFA9dGhpcy5kaXZtb2QoTy5uZWcoKSx6KSwibW9kIiE9PXomJih0ZT1QLmRpdi5uZWcoKSkse2Rpdjp0ZSxtb2Q6''@;'; + put 'put ''UC5tb2R9KTowIT0odGhpcy5uZWdhdGl2ZSZPLm5lZ2F0aXZlKT8oUD10aGlzLm5lZygpLmRpdm1vZChPLm5lZygpLHopLCJkaXYiIT09eiYmKHg9UC5tb2QubmVnKCksbmUmJjAhPT14Lm5lZ2F0aXZlJiZ4LmlzdWIoTykpLHtkaXY6UC5kaXYsbW9kOnh9KTpPLmxlbmd0aD50aGlzLmxlbmd0''@;'; + put 'put ''aHx8dGhpcy5jbXAoTyk8MD97ZGl2Om5ldyBVKDApLG1vZDp0aGlzfToxPT09Ty5sZW5ndGg/ImRpdiI9PT16P3tkaXY6dGhpcy5kaXZuKE8ud29yZHNbMF0pLG1vZDpudWxsfToibW9kIj09PXo/e2RpdjpudWxsLG1vZDpuZXcgVSh0aGlzLm1vZG4oTy53b3Jkc1swXSkpfTp7ZGl2OnRoaXMu''@;'; + put 'put ''ZGl2bihPLndvcmRzWzBdKSxtb2Q6bmV3IFUodGhpcy5tb2RuKE8ud29yZHNbMF0pKX06dGhpcy5fd29yZERpdihPLHopO3ZhciB0ZSx4LFB9LFUucHJvdG90eXBlLmRpdj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5kaXZtb2QoTywiZGl2IiwhMSkuZGl2fSxVLnByb3RvdHlwZS5tb2Q9ZnVu''@;'; + put 'put ''Y3Rpb24oTyl7cmV0dXJuIHRoaXMuZGl2bW9kKE8sIm1vZCIsITEpLm1vZH0sVS5wcm90b3R5cGUudW1vZD1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5kaXZtb2QoTywibW9kIiwhMCkubW9kfSxVLnByb3RvdHlwZS5kaXZSb3VuZD1mdW5jdGlvbihPKXt2YXIgej10aGlzLmRpdm1vZChPKTtp''@;'; + put 'put ''Zih6Lm1vZC5pc1plcm8oKSlyZXR1cm4gei5kaXY7dmFyIG5lPTAhPT16LmRpdi5uZWdhdGl2ZT96Lm1vZC5pc3ViKE8pOnoubW9kLHRlPU8udXNocm4oMSkseD1PLmFuZGxuKDEpLFA9bmUuY21wKHRlKTtyZXR1cm4gUDwwfHwxPT09eCYmMD09PVA/ei5kaXY6MCE9PXouZGl2Lm5lZ2F0aXZl''@;'; + put 'put ''P3ouZGl2LmlzdWJuKDEpOnouZGl2LmlhZGRuKDEpfSxVLnByb3RvdHlwZS5tb2RuPWZ1bmN0aW9uKE8pe0UoTzw9NjcxMDg4NjMpO2Zvcih2YXIgej0oMTw8MjYpJU8sbmU9MCx0ZT10aGlzLmxlbmd0aC0xO3RlPj0wO3RlLS0pbmU9KHoqbmUrKDB8dGhpcy53b3Jkc1t0ZV0pKSVPO3JldHVy''@;'; + put 'put ''biBuZX0sVS5wcm90b3R5cGUuaWRpdm49ZnVuY3Rpb24oTyl7RShPPD02NzEwODg2Myk7Zm9yKHZhciB6PTAsbmU9dGhpcy5sZW5ndGgtMTtuZT49MDtuZS0tKXt2YXIgdGU9KDB8dGhpcy53b3Jkc1tuZV0pKzY3MTA4ODY0Kno7dGhpcy53b3Jkc1tuZV09dGUvT3wwLHo9dGUlT31yZXR1cm4g''@;'; + put 'put ''dGhpcy5zdHJpcCgpfSxVLnByb3RvdHlwZS5kaXZuPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmNsb25lKCkuaWRpdm4oTyl9LFUucHJvdG90eXBlLmVnY2Q9ZnVuY3Rpb24oTyl7RSgwPT09Ty5uZWdhdGl2ZSksRSghTy5pc1plcm8oKSk7dmFyIHo9dGhpcyxuZT1PLmNsb25lKCk7ej0wIT09''@;'; + put 'put ''ei5uZWdhdGl2ZT96LnVtb2QoTyk6ei5jbG9uZSgpO2Zvcih2YXIgdGU9bmV3IFUoMSkseD1uZXcgVSgwKSxQPW5ldyBVKDApLFY9bmV3IFUoMSksVD0wO3ouaXNFdmVuKCkmJm5lLmlzRXZlbigpOyl6Lml1c2hybigxKSxuZS5pdXNocm4oMSksKytUO2Zvcih2YXIgUz1uZS5jbG9uZSgpLEY9''@;'; + put 'put ''ei5jbG9uZSgpOyF6LmlzWmVybygpOyl7Zm9yKHZhciB5ZT0wLENlPTE7MD09KHoud29yZHNbMF0mQ2UpJiZ5ZTwyNjsrK3llLENlPDw9MSk7aWYoeWU+MClmb3Ioei5pdXNocm4oeWUpO3llLS0gPjA7KSh0ZS5pc09kZCgpfHx4LmlzT2RkKCkpJiYodGUuaWFkZChTKSx4LmlzdWIoRikpLHRl''@;'; + put 'put ''Lml1c2hybigxKSx4Lml1c2hybigxKTtmb3IodmFyIERlPTAsUGU9MTswPT0obmUud29yZHNbMF0mUGUpJiZEZTwyNjsrK0RlLFBlPDw9MSk7aWYoRGU+MClmb3IobmUuaXVzaHJuKERlKTtEZS0tID4wOykoUC5pc09kZCgpfHxWLmlzT2RkKCkpJiYoUC5pYWRkKFMpLFYuaXN1YihGKSksUC5p''@;'; + put 'put ''dXNocm4oMSksVi5pdXNocm4oMSk7ei5jbXAobmUpPj0wPyh6LmlzdWIobmUpLHRlLmlzdWIoUCkseC5pc3ViKFYpKToobmUuaXN1Yih6KSxQLmlzdWIodGUpLFYuaXN1Yih4KSl9cmV0dXJue2E6UCxiOlYsZ2NkOm5lLml1c2hsbihUKX19LFUucHJvdG90eXBlLl9pbnZtcD1mdW5jdGlvbihP''@;'; + put 'put ''KXtFKDA9PT1PLm5lZ2F0aXZlKSxFKCFPLmlzWmVybygpKTt2YXIgeWUsej10aGlzLG5lPU8uY2xvbmUoKTt6PTAhPT16Lm5lZ2F0aXZlP3oudW1vZChPKTp6LmNsb25lKCk7Zm9yKHZhciB0ZT1uZXcgVSgxKSx4PW5ldyBVKDApLFA9bmUuY2xvbmUoKTt6LmNtcG4oMSk+MCYmbmUuY21wbigx''@;'; + put 'put ''KT4wOyl7Zm9yKHZhciBWPTAsVD0xOzA9PSh6LndvcmRzWzBdJlQpJiZWPDI2OysrVixUPDw9MSk7aWYoVj4wKWZvcih6Lml1c2hybihWKTtWLS0gPjA7KXRlLmlzT2RkKCkmJnRlLmlhZGQoUCksdGUuaXVzaHJuKDEpO2Zvcih2YXIgUz0wLEY9MTswPT0obmUud29yZHNbMF0mRikmJlM8MjY7''@;'; + put 'put ''KytTLEY8PD0xKTtpZihTPjApZm9yKG5lLml1c2hybihTKTtTLS0gPjA7KXguaXNPZGQoKSYmeC5pYWRkKFApLHguaXVzaHJuKDEpO3ouY21wKG5lKT49MD8oei5pc3ViKG5lKSx0ZS5pc3ViKHgpKToobmUuaXN1Yih6KSx4LmlzdWIodGUpKX1yZXR1cm4oeWU9MD09PXouY21wbigxKT90ZTp4''@;'; + put 'put ''KS5jbXBuKDApPDAmJnllLmlhZGQoTykseWV9LFUucHJvdG90eXBlLmdjZD1mdW5jdGlvbihPKXtpZih0aGlzLmlzWmVybygpKXJldHVybiBPLmFicygpO2lmKE8uaXNaZXJvKCkpcmV0dXJuIHRoaXMuYWJzKCk7dmFyIHo9dGhpcy5jbG9uZSgpLG5lPU8uY2xvbmUoKTt6Lm5lZ2F0aXZlPTAs''@;'; + put 'put ''bmUubmVnYXRpdmU9MDtmb3IodmFyIHRlPTA7ei5pc0V2ZW4oKSYmbmUuaXNFdmVuKCk7dGUrKyl6Lml1c2hybigxKSxuZS5pdXNocm4oMSk7Zm9yKDs7KXtmb3IoO3ouaXNFdmVuKCk7KXouaXVzaHJuKDEpO2Zvcig7bmUuaXNFdmVuKCk7KW5lLml1c2hybigxKTt2YXIgeD16LmNtcChuZSk7''@;'; + put 'put ''aWYoeDwwKXt2YXIgUD16O3o9bmUsbmU9UH1lbHNlIGlmKDA9PT14fHwwPT09bmUuY21wbigxKSlicmVhazt6LmlzdWIobmUpfXJldHVybiBuZS5pdXNobG4odGUpfSxVLnByb3RvdHlwZS5pbnZtPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmVnY2QoTykuYS51bW9kKE8pfSxVLnByb3RvdHlw''@;'; + put 'put ''ZS5pc0V2ZW49ZnVuY3Rpb24oKXtyZXR1cm4gMD09KDEmdGhpcy53b3Jkc1swXSl9LFUucHJvdG90eXBlLmlzT2RkPWZ1bmN0aW9uKCl7cmV0dXJuIDE9PSgxJnRoaXMud29yZHNbMF0pfSxVLnByb3RvdHlwZS5hbmRsbj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy53b3Jkc1swXSZPfSxVLnBy''@;'; + put 'put ''b3RvdHlwZS5iaW5jbj1mdW5jdGlvbihPKXtFKCJudW1iZXIiPT10eXBlb2YgTyk7dmFyIHo9TyUyNixuZT0oTy16KS8yNix0ZT0xPDx6O2lmKHRoaXMubGVuZ3RoPD1uZSlyZXR1cm4gdGhpcy5fZXhwYW5kKG5lKzEpLHRoaXMud29yZHNbbmVdfD10ZSx0aGlzO2Zvcih2YXIgeD10ZSxQPW5l''@;'; + put 'put ''OzAhPT14JiZQPHRoaXMubGVuZ3RoO1ArKyl7dmFyIFY9MHx0aGlzLndvcmRzW1BdO3g9KFYrPXgpPj4+MjYsdGhpcy53b3Jkc1tQXT1WJj02NzEwODg2M31yZXR1cm4gMCE9PXgmJih0aGlzLndvcmRzW1BdPXgsdGhpcy5sZW5ndGgrKyksdGhpc30sVS5wcm90b3R5cGUuaXNaZXJvPWZ1bmN0''@;'; + put 'put ''aW9uKCl7cmV0dXJuIDE9PT10aGlzLmxlbmd0aCYmMD09PXRoaXMud29yZHNbMF19LFUucHJvdG90eXBlLmNtcG49ZnVuY3Rpb24oTyl7dmFyIG5lLHo9TzwwO2lmKDAhPT10aGlzLm5lZ2F0aXZlJiYheilyZXR1cm4tMTtpZigwPT09dGhpcy5uZWdhdGl2ZSYmeilyZXR1cm4gMTtpZih0aGlz''@;'; + put 'put ''LnN0cmlwKCksdGhpcy5sZW5ndGg+MSluZT0xO2Vsc2V7eiYmKE89LU8pLEUoTzw9NjcxMDg4NjMsIk51bWJlciBpcyB0b28gYmlnIik7dmFyIHRlPTB8dGhpcy53b3Jkc1swXTtuZT10ZT09PU8/MDp0ZTxPPy0xOjF9cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlPzB8LW5lOm5lfSxVLnByb3Rv''@;'; + put 'put ''dHlwZS5jbXA9ZnVuY3Rpb24oTyl7aWYoMCE9PXRoaXMubmVnYXRpdmUmJjA9PT1PLm5lZ2F0aXZlKXJldHVybi0xO2lmKDA9PT10aGlzLm5lZ2F0aXZlJiYwIT09Ty5uZWdhdGl2ZSlyZXR1cm4gMTt2YXIgej10aGlzLnVjbXAoTyk7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlPzB8LXo6en0s''@;'; + put 'put ''VS5wcm90b3R5cGUudWNtcD1mdW5jdGlvbihPKXtpZih0aGlzLmxlbmd0aD5PLmxlbmd0aClyZXR1cm4gMTtpZih0aGlzLmxlbmd0aDxPLmxlbmd0aClyZXR1cm4tMTtmb3IodmFyIHo9MCxuZT10aGlzLmxlbmd0aC0xO25lPj0wO25lLS0pe3ZhciB0ZT0wfHRoaXMud29yZHNbbmVdLHg9MHxP''@;'; + put 'put ''LndvcmRzW25lXTtpZih0ZSE9PXgpe3RlPHg/ej0tMTp0ZT54JiYoej0xKTticmVha319cmV0dXJuIHp9LFUucHJvdG90eXBlLmd0bj1mdW5jdGlvbihPKXtyZXR1cm4gMT09PXRoaXMuY21wbihPKX0sVS5wcm90b3R5cGUuZ3Q9ZnVuY3Rpb24oTyl7cmV0dXJuIDE9PT10aGlzLmNtcChPKX0s''@;'; + put 'put ''VS5wcm90b3R5cGUuZ3Rlbj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5jbXBuKE8pPj0wfSxVLnByb3RvdHlwZS5ndGU9ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuY21wKE8pPj0wfSxVLnByb3RvdHlwZS5sdG49ZnVuY3Rpb24oTyl7cmV0dXJuLTE9PT10aGlzLmNtcG4oTyl9LFUucHJvdG90''@;'; + put 'put ''eXBlLmx0PWZ1bmN0aW9uKE8pe3JldHVybi0xPT09dGhpcy5jbXAoTyl9LFUucHJvdG90eXBlLmx0ZW49ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuY21wbihPKTw9MH0sVS5wcm90b3R5cGUubHRlPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmNtcChPKTw9MH0sVS5wcm90b3R5cGUuZXFuPWZ1''@;'; + put 'put ''bmN0aW9uKE8pe3JldHVybiAwPT09dGhpcy5jbXBuKE8pfSxVLnByb3RvdHlwZS5lcT1mdW5jdGlvbihPKXtyZXR1cm4gMD09PXRoaXMuY21wKE8pfSxVLnJlZD1mdW5jdGlvbihPKXtyZXR1cm4gbmV3IFRlKE8pfSxVLnByb3RvdHlwZS50b1JlZD1mdW5jdGlvbihPKXtyZXR1cm4gRSghdGhp''@;'; + put 'put ''cy5yZWQsIkFscmVhZHkgYSBudW1iZXIgaW4gcmVkdWN0aW9uIGNvbnRleHQiKSxFKDA9PT10aGlzLm5lZ2F0aXZlLCJyZWQgd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlcyIpLE8uY29udmVydFRvKHRoaXMpLl9mb3JjZVJlZChPKX0sVS5wcm90b3R5cGUuZnJvbVJlZD1mdW5jdGlvbigpe3Jl''@;'; + put 'put ''dHVybiBFKHRoaXMucmVkLCJmcm9tUmVkIHdvcmtzIG9ubHkgd2l0aCBudW1iZXJzIGluIHJlZHVjdGlvbiBjb250ZXh0IiksdGhpcy5yZWQuY29udmVydEZyb20odGhpcyl9LFUucHJvdG90eXBlLl9mb3JjZVJlZD1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5yZWQ9Tyx0aGlzfSxVLnByb3Rv''@;'; + put 'put ''dHlwZS5mb3JjZVJlZD1mdW5jdGlvbihPKXtyZXR1cm4gRSghdGhpcy5yZWQsIkFscmVhZHkgYSBudW1iZXIgaW4gcmVkdWN0aW9uIGNvbnRleHQiKSx0aGlzLl9mb3JjZVJlZChPKX0sVS5wcm90b3R5cGUucmVkQWRkPWZ1bmN0aW9uKE8pe3JldHVybiBFKHRoaXMucmVkLCJyZWRBZGQgd29y''@;'; + put 'put ''a3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuYWRkKHRoaXMsTyl9LFUucHJvdG90eXBlLnJlZElBZGQ9ZnVuY3Rpb24oTyl7cmV0dXJuIEUodGhpcy5yZWQsInJlZElBZGQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuaWFkZCh0aGlzLE8pfSxVLnBy''@;'; + put 'put ''b3RvdHlwZS5yZWRTdWI9ZnVuY3Rpb24oTyl7cmV0dXJuIEUodGhpcy5yZWQsInJlZFN1YiB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5zdWIodGhpcyxPKX0sVS5wcm90b3R5cGUucmVkSVN1Yj1mdW5jdGlvbihPKXtyZXR1cm4gRSh0aGlzLnJlZCwicmVkSVN1YiB3''@;'; + put 'put ''b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5pc3ViKHRoaXMsTyl9LFUucHJvdG90eXBlLnJlZFNobD1mdW5jdGlvbihPKXtyZXR1cm4gRSh0aGlzLnJlZCwicmVkU2hsIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLnNobCh0aGlzLE8pfSxVLnBy''@;'; + put 'put ''b3RvdHlwZS5yZWRNdWw9ZnVuY3Rpb24oTyl7cmV0dXJuIEUodGhpcy5yZWQsInJlZE11bCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5Mih0aGlzLE8pLHRoaXMucmVkLm11bCh0aGlzLE8pfSxVLnByb3RvdHlwZS5yZWRJTXVsPWZ1bmN0aW9uKE8pe3Jl''@;'; + put 'put ''dHVybiBFKHRoaXMucmVkLCJyZWRNdWwgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTIodGhpcyxPKSx0aGlzLnJlZC5pbXVsKHRoaXMsTyl9LFUucHJvdG90eXBlLnJlZFNxcj1mdW5jdGlvbigpe3JldHVybiBFKHRoaXMucmVkLCJyZWRTcXIgd29ya3Mg''@;'; + put 'put ''b25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQuc3FyKHRoaXMpfSxVLnByb3RvdHlwZS5yZWRJU3FyPWZ1bmN0aW9uKCl7cmV0dXJuIEUodGhpcy5yZWQsInJlZElTcXIgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQu''@;'; + put 'put ''X3ZlcmlmeTEodGhpcyksdGhpcy5yZWQuaXNxcih0aGlzKX0sVS5wcm90b3R5cGUucmVkU3FydD1mdW5jdGlvbigpe3JldHVybiBFKHRoaXMucmVkLCJyZWRTcXJ0IHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLnNxcnQodGhp''@;'; + put 'put ''cyl9LFUucHJvdG90eXBlLnJlZEludm09ZnVuY3Rpb24oKXtyZXR1cm4gRSh0aGlzLnJlZCwicmVkSW52bSB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5pbnZtKHRoaXMpfSxVLnByb3RvdHlwZS5yZWROZWc9ZnVuY3Rpb24o''@;'; + put 'put ''KXtyZXR1cm4gRSh0aGlzLnJlZCwicmVkTmVnIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLm5lZyh0aGlzKX0sVS5wcm90b3R5cGUucmVkUG93PWZ1bmN0aW9uKE8pe3JldHVybiBFKHRoaXMucmVkJiYhTy5yZWQsInJlZFBv''@;'; + put 'put ''dyhub3JtYWxOdW0pIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQucG93KHRoaXMsTyl9O3ZhciBkZT17azI1NjpudWxsLHAyMjQ6bnVsbCxwMTkyOm51bGwscDI1NTE5Om51bGx9O2Z1bmN0aW9uIHZlKGhlLE8pe3RoaXMubmFtZT1oZSx0aGlzLnA9bmV3IFUoTywxNiksdGhp''@;'; + put 'put ''cy5uPXRoaXMucC5iaXRMZW5ndGgoKSx0aGlzLms9bmV3IFUoMSkuaXVzaGxuKHRoaXMubikuaXN1Yih0aGlzLnApLHRoaXMudG1wPXRoaXMuX3RtcCgpfWZ1bmN0aW9uIEFlKCl7dmUuY2FsbCh0aGlzLCJrMjU2IiwiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZm''@;'; + put 'put ''ZmYgZmZmZmZmZmYgZmZmZmZmZmUgZmZmZmZjMmYiKX1mdW5jdGlvbiBrZSgpe3ZlLmNhbGwodGhpcywicDIyNCIsImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIDAwMDAwMDAwIDAwMDAwMDAwIDAwMDAwMDAxIil9ZnVuY3Rpb24gU2UoKXt2ZS5jYWxsKHRoaXMsInAxOTIi''@;'; + put 'put ''LCJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZSBmZmZmZmZmZiBmZmZmZmZmZiIpfWZ1bmN0aW9uIEllKCl7dmUuY2FsbCh0aGlzLCIyNTUxOSIsIjdmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZWQiKX1m''@;'; + put 'put ''dW5jdGlvbiBUZShoZSl7aWYoInN0cmluZyI9PXR5cGVvZiBoZSl7dmFyIE89VS5fcHJpbWUoaGUpO3RoaXMubT1PLnAsdGhpcy5wcmltZT1PfWVsc2UgRShoZS5ndG4oMSksIm1vZHVsdXMgbXVzdCBiZSBncmVhdGVyIHRoYW4gMSIpLHRoaXMubT1oZSx0aGlzLnByaW1lPW51bGx9ZnVuY3Rp''@;'; + put 'put ''b24gRWUoaGUpe1RlLmNhbGwodGhpcyxoZSksdGhpcy5zaGlmdD10aGlzLm0uYml0TGVuZ3RoKCksdGhpcy5zaGlmdCUyNiE9MCYmKHRoaXMuc2hpZnQrPTI2LXRoaXMuc2hpZnQlMjYpLHRoaXMucj1uZXcgVSgxKS5pdXNobG4odGhpcy5zaGlmdCksdGhpcy5yMj10aGlzLmltb2QodGhpcy5y''@;'; + put 'put ''LnNxcigpKSx0aGlzLnJpbnY9dGhpcy5yLl9pbnZtcCh0aGlzLm0pLHRoaXMubWludj10aGlzLnJpbnYubXVsKHRoaXMucikuaXN1Ym4oMSkuZGl2KHRoaXMubSksdGhpcy5taW52PXRoaXMubWludi51bW9kKHRoaXMuciksdGhpcy5taW52PXRoaXMuci5zdWIodGhpcy5taW52KX12ZS5wcm90''@;'; + put 'put ''b3R5cGUuX3RtcD1mdW5jdGlvbigpe3ZhciBPPW5ldyBVKG51bGwpO3JldHVybiBPLndvcmRzPW5ldyBBcnJheShNYXRoLmNlaWwodGhpcy5uLzEzKSksT30sdmUucHJvdG90eXBlLmlyZWR1Y2U9ZnVuY3Rpb24oTyl7dmFyIG5lLHo9Tztkb3t0aGlzLnNwbGl0KHosdGhpcy50bXApLG5lPSh6''@;'; + put 'put ''PSh6PXRoaXMuaW11bEsoeikpLmlhZGQodGhpcy50bXApKS5iaXRMZW5ndGgoKX13aGlsZShuZT50aGlzLm4pO3ZhciB0ZT1uZTx0aGlzLm4/LTE6ei51Y21wKHRoaXMucCk7cmV0dXJuIDA9PT10ZT8oei53b3Jkc1swXT0wLHoubGVuZ3RoPTEpOnRlPjA/ei5pc3ViKHRoaXMucCk6dm9pZCAw''@;'; + put 'put ''IT09ei5zdHJpcD96LnN0cmlwKCk6ei5fc3RyaXAoKSx6fSx2ZS5wcm90b3R5cGUuc3BsaXQ9ZnVuY3Rpb24oTyx6KXtPLml1c2hybih0aGlzLm4sMCx6KX0sdmUucHJvdG90eXBlLmltdWxLPWZ1bmN0aW9uKE8pe3JldHVybiBPLmltdWwodGhpcy5rKX0sTWUoQWUsdmUpLEFlLnByb3RvdHlw''@;'; + put 'put ''ZS5zcGxpdD1mdW5jdGlvbihPLHope2Zvcih2YXIgdGU9TWF0aC5taW4oTy5sZW5ndGgsOSkseD0wO3g8dGU7eCsrKXoud29yZHNbeF09Ty53b3Jkc1t4XTtpZih6Lmxlbmd0aD10ZSxPLmxlbmd0aDw9OSlyZXR1cm4gTy53b3Jkc1swXT0wLHZvaWQoTy5sZW5ndGg9MSk7dmFyIFA9Ty53b3Jk''@;'; + put 'put ''c1s5XTtmb3Ioei53b3Jkc1t6Lmxlbmd0aCsrXT00MTk0MzAzJlAseD0xMDt4PE8ubGVuZ3RoO3grKyl7dmFyIFY9MHxPLndvcmRzW3hdO08ud29yZHNbeC0xMF09KDQxOTQzMDMmVik8PDR8UD4+PjIyLFA9Vn1PLndvcmRzW3gtMTBdPVA+Pj49MjIsTy5sZW5ndGgtPTA9PT1QJiZPLmxlbmd0''@;'; + put 'put ''aD4xMD8xMDo5fSxBZS5wcm90b3R5cGUuaW11bEs9ZnVuY3Rpb24oTyl7Ty53b3Jkc1tPLmxlbmd0aF09MCxPLndvcmRzW08ubGVuZ3RoKzFdPTAsTy5sZW5ndGgrPTI7Zm9yKHZhciB6PTAsbmU9MDtuZTxPLmxlbmd0aDtuZSsrKXt2YXIgdGU9MHxPLndvcmRzW25lXTtPLndvcmRzW25lXT02''@;'; + put 'put ''NzEwODg2MyYoeis9OTc3KnRlKSx6PTY0KnRlKyh6LzY3MTA4ODY0fDApfXJldHVybiAwPT09Ty53b3Jkc1tPLmxlbmd0aC0xXSYmKE8ubGVuZ3RoLS0sMD09PU8ud29yZHNbTy5sZW5ndGgtMV0mJk8ubGVuZ3RoLS0pLE99LE1lKGtlLHZlKSxNZShTZSx2ZSksTWUoSWUsdmUpLEllLnByb3Rv''@;'; + put 'put ''dHlwZS5pbXVsSz1mdW5jdGlvbihPKXtmb3IodmFyIHo9MCxuZT0wO25lPE8ubGVuZ3RoO25lKyspe3ZhciB0ZT0xOSooMHxPLndvcmRzW25lXSkreix4PTY3MTA4ODYzJnRlO3RlPj4+PTI2LE8ud29yZHNbbmVdPXgsej10ZX1yZXR1cm4gMCE9PXomJihPLndvcmRzW08ubGVuZ3RoKytdPXop''@;'; + put 'put ''LE99LFUuX3ByaW1lPWZ1bmN0aW9uKE8pe2lmKGRlW09dKXJldHVybiBkZVtPXTt2YXIgejtpZigiazI1NiI9PT1PKXo9bmV3IEFlO2Vsc2UgaWYoInAyMjQiPT09Tyl6PW5ldyBrZTtlbHNlIGlmKCJwMTkyIj09PU8pej1uZXcgU2U7ZWxzZXtpZigicDI1NTE5IiE9PU8pdGhyb3cgbmV3IEVy''@;'; + put 'put ''cm9yKCJVbmtub3duIHByaW1lICIrTyk7ej1uZXcgSWV9cmV0dXJuIGRlW09dPXosen0sVGUucHJvdG90eXBlLl92ZXJpZnkxPWZ1bmN0aW9uKE8pe0UoMD09PU8ubmVnYXRpdmUsInJlZCB3b3JrcyBvbmx5IHdpdGggcG9zaXRpdmVzIiksRShPLnJlZCwicmVkIHdvcmtzIG9ubHkgd2l0aCBy''@;'; + put 'put ''ZWQgbnVtYmVycyIpfSxUZS5wcm90b3R5cGUuX3ZlcmlmeTI9ZnVuY3Rpb24oTyx6KXtFKDA9PShPLm5lZ2F0aXZlfHoubmVnYXRpdmUpLCJyZWQgd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlcyIpLEUoTy5yZWQmJk8ucmVkPT09ei5yZWQsInJlZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJl''@;'; + put 'put ''cnMiKX0sVGUucHJvdG90eXBlLmltb2Q9ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMucHJpbWU/dGhpcy5wcmltZS5pcmVkdWNlKE8pLl9mb3JjZVJlZCh0aGlzKTpPLnVtb2QodGhpcy5tKS5fZm9yY2VSZWQodGhpcyl9LFRlLnByb3RvdHlwZS5uZWc9ZnVuY3Rpb24oTyl7cmV0dXJuIE8uaXNa''@;'; + put 'put ''ZXJvKCk/Ty5jbG9uZSgpOnRoaXMubS5zdWIoTykuX2ZvcmNlUmVkKHRoaXMpfSxUZS5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKE8seil7dGhpcy5fdmVyaWZ5MihPLHopO3ZhciBuZT1PLmFkZCh6KTtyZXR1cm4gbmUuY21wKHRoaXMubSk+PTAmJm5lLmlzdWIodGhpcy5tKSxuZS5fZm9yY2VS''@;'; + put 'put ''ZWQodGhpcyl9LFRlLnByb3RvdHlwZS5pYWRkPWZ1bmN0aW9uKE8seil7dGhpcy5fdmVyaWZ5MihPLHopO3ZhciBuZT1PLmlhZGQoeik7cmV0dXJuIG5lLmNtcCh0aGlzLm0pPj0wJiZuZS5pc3ViKHRoaXMubSksbmV9LFRlLnByb3RvdHlwZS5zdWI9ZnVuY3Rpb24oTyx6KXt0aGlzLl92ZXJp''@;'; + put 'put ''ZnkyKE8seik7dmFyIG5lPU8uc3ViKHopO3JldHVybiBuZS5jbXBuKDApPDAmJm5lLmlhZGQodGhpcy5tKSxuZS5fZm9yY2VSZWQodGhpcyl9LFRlLnByb3RvdHlwZS5pc3ViPWZ1bmN0aW9uKE8seil7dGhpcy5fdmVyaWZ5MihPLHopO3ZhciBuZT1PLmlzdWIoeik7cmV0dXJuIG5lLmNtcG4o''@;'; + put 'put ''MCk8MCYmbmUuaWFkZCh0aGlzLm0pLG5lfSxUZS5wcm90b3R5cGUuc2hsPWZ1bmN0aW9uKE8seil7cmV0dXJuIHRoaXMuX3ZlcmlmeTEoTyksdGhpcy5pbW9kKE8udXNobG4oeikpfSxUZS5wcm90b3R5cGUuaW11bD1mdW5jdGlvbihPLHope3JldHVybiB0aGlzLl92ZXJpZnkyKE8seiksdGhp''@;'; + put 'put ''cy5pbW9kKE8uaW11bCh6KSl9LFRlLnByb3RvdHlwZS5tdWw9ZnVuY3Rpb24oTyx6KXtyZXR1cm4gdGhpcy5fdmVyaWZ5MihPLHopLHRoaXMuaW1vZChPLm11bCh6KSl9LFRlLnByb3RvdHlwZS5pc3FyPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmltdWwoTyxPLmNsb25lKCkpfSxUZS5wcm90''@;'; + put 'put ''b3R5cGUuc3FyPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLm11bChPLE8pfSxUZS5wcm90b3R5cGUuc3FydD1mdW5jdGlvbihPKXtpZihPLmlzWmVybygpKXJldHVybiBPLmNsb25lKCk7dmFyIHo9dGhpcy5tLmFuZGxuKDMpO2lmKEUoeiUyPT0xKSwzPT09eil7dmFyIG5lPXRoaXMubS5hZGQo''@;'; + put 'put ''bmV3IFUoMSkpLml1c2hybigyKTtyZXR1cm4gdGhpcy5wb3coTyxuZSl9Zm9yKHZhciB0ZT10aGlzLm0uc3VibigxKSx4PTA7IXRlLmlzWmVybygpJiYwPT09dGUuYW5kbG4oMSk7KXgrKyx0ZS5pdXNocm4oMSk7RSghdGUuaXNaZXJvKCkpO3ZhciBQPW5ldyBVKDEpLnRvUmVkKHRoaXMpLFY9''@;'; + put 'put ''UC5yZWROZWcoKSxUPXRoaXMubS5zdWJuKDEpLml1c2hybigxKSxTPXRoaXMubS5iaXRMZW5ndGgoKTtmb3IoUz1uZXcgVSgyKlMqUykudG9SZWQodGhpcyk7MCE9PXRoaXMucG93KFMsVCkuY21wKFYpOylTLnJlZElBZGQoVik7Zm9yKHZhciBGPXRoaXMucG93KFMsdGUpLHllPXRoaXMucG93''@;'; + put 'put ''KE8sdGUuYWRkbigxKS5pdXNocm4oMSkpLENlPXRoaXMucG93KE8sdGUpLERlPXg7MCE9PUNlLmNtcChQKTspe2Zvcih2YXIgUGU9Q2UsUWU9MDswIT09UGUuY21wKFApO1FlKyspUGU9UGUucmVkU3FyKCk7RShRZTxEZSk7dmFyICRlPXRoaXMucG93KEYsbmV3IFUoMSkuaXVzaGxuKERlLVFl''@;'; + put 'put ''LTEpKTt5ZT15ZS5yZWRNdWwoJGUpLEY9JGUucmVkU3FyKCksQ2U9Q2UucmVkTXVsKEYpLERlPVFlfXJldHVybiB5ZX0sVGUucHJvdG90eXBlLmludm09ZnVuY3Rpb24oTyl7dmFyIHo9Ty5faW52bXAodGhpcy5tKTtyZXR1cm4gMCE9PXoubmVnYXRpdmU/KHoubmVnYXRpdmU9MCx0aGlzLmlt''@;'; + put 'put ''b2QoeikucmVkTmVnKCkpOnRoaXMuaW1vZCh6KX0sVGUucHJvdG90eXBlLnBvdz1mdW5jdGlvbihPLHope2lmKHouaXNaZXJvKCkpcmV0dXJuIG5ldyBVKDEpLnRvUmVkKHRoaXMpO2lmKDA9PT16LmNtcG4oMSkpcmV0dXJuIE8uY2xvbmUoKTt2YXIgdGU9bmV3IEFycmF5KDE2KTt0ZVswXT1u''@;'; + put 'put ''ZXcgVSgxKS50b1JlZCh0aGlzKSx0ZVsxXT1PO2Zvcih2YXIgeD0yO3g8dGUubGVuZ3RoO3grKyl0ZVt4XT10aGlzLm11bCh0ZVt4LTFdLE8pO3ZhciBQPXRlWzBdLFY9MCxUPTAsUz16LmJpdExlbmd0aCgpJTI2O2ZvcigwPT09UyYmKFM9MjYpLHg9ei5sZW5ndGgtMTt4Pj0wO3gtLSl7Zm9y''@;'; + put 'put ''KHZhciBGPXoud29yZHNbeF0seWU9Uy0xO3llPj0wO3llLS0pe3ZhciBDZT1GPj55ZSYxO1AhPT10ZVswXSYmKFA9dGhpcy5zcXIoUCkpLDAhPT1DZXx8MCE9PVY/KFY8PD0xLFZ8PUNlLCg0PT0rK1R8fDA9PT14JiYwPT09eWUpJiYoUD10aGlzLm11bChQLHRlW1ZdKSxUPTAsVj0wKSk6VD0w''@;'; + put 'put ''fVM9MjZ9cmV0dXJuIFB9LFRlLnByb3RvdHlwZS5jb252ZXJ0VG89ZnVuY3Rpb24oTyl7dmFyIHo9Ty51bW9kKHRoaXMubSk7cmV0dXJuIHo9PT1PP3ouY2xvbmUoKTp6fSxUZS5wcm90b3R5cGUuY29udmVydEZyb209ZnVuY3Rpb24oTyl7dmFyIHo9Ty5jbG9uZSgpO3JldHVybiB6LnJlZD1u''@;'; + put 'put ''dWxsLHp9LFUubW9udD1mdW5jdGlvbihPKXtyZXR1cm4gbmV3IEVlKE8pfSxNZShFZSxUZSksRWUucHJvdG90eXBlLmNvbnZlcnRUbz1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5pbW9kKE8udXNobG4odGhpcy5zaGlmdCkpfSxFZS5wcm90b3R5cGUuY29udmVydEZyb209ZnVuY3Rpb24oTyl7''@;'; + put 'put ''dmFyIHo9dGhpcy5pbW9kKE8ubXVsKHRoaXMucmludikpO3JldHVybiB6LnJlZD1udWxsLHp9LEVlLnByb3RvdHlwZS5pbXVsPWZ1bmN0aW9uKE8seil7aWYoTy5pc1plcm8oKXx8ei5pc1plcm8oKSlyZXR1cm4gTy53b3Jkc1swXT0wLE8ubGVuZ3RoPTEsTzt2YXIgbmU9Ty5pbXVsKHopLHRl''@;'; + put 'put ''PW5lLm1hc2tuKHRoaXMuc2hpZnQpLm11bCh0aGlzLm1pbnYpLmltYXNrbih0aGlzLnNoaWZ0KS5tdWwodGhpcy5tKSx4PW5lLmlzdWIodGUpLml1c2hybih0aGlzLnNoaWZ0KSxQPXg7cmV0dXJuIHguY21wKHRoaXMubSk+PTA/UD14LmlzdWIodGhpcy5tKTp4LmNtcG4oMCk8MCYmKFA9eC5p''@;'; + put 'put ''YWRkKHRoaXMubSkpLFAuX2ZvcmNlUmVkKHRoaXMpfSxFZS5wcm90b3R5cGUubXVsPWZ1bmN0aW9uKE8seil7aWYoTy5pc1plcm8oKXx8ei5pc1plcm8oKSlyZXR1cm4gbmV3IFUoMCkuX2ZvcmNlUmVkKHRoaXMpO3ZhciBuZT1PLm11bCh6KSx0ZT1uZS5tYXNrbih0aGlzLnNoaWZ0KS5tdWwo''@;'; + put 'put ''dGhpcy5taW52KS5pbWFza24odGhpcy5zaGlmdCkubXVsKHRoaXMubSkseD1uZS5pc3ViKHRlKS5pdXNocm4odGhpcy5zaGlmdCksUD14O3JldHVybiB4LmNtcCh0aGlzLm0pPj0wP1A9eC5pc3ViKHRoaXMubSk6eC5jbXBuKDApPDAmJihQPXguaWFkZCh0aGlzLm0pKSxQLl9mb3JjZVJlZCh0''@;'; + put 'put ''aGlzKX0sRWUucHJvdG90eXBlLmludm09ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuaW1vZChPLl9pbnZtcCh0aGlzLm0pLm11bCh0aGlzLnIyKSkuX2ZvcmNlUmVkKHRoaXMpfX0oWGU9TC5ubWQoWGUpLHRoaXMpfSw5NjM4NjooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoODM4''@;'; + put 'put ''OTQpLEI9TCg4MDk1KSxFPUwoNzU2MzQpLE1lPUwoOTUyNDQpLFU9TCg2MTA1Mik7ZnVuY3Rpb24gUShaKXtVLmNhbGwodGhpcywiZGlnZXN0IiksdGhpcy5faGFzaD1afW1lKFEsVSksUS5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbihaKXt0aGlzLl9oYXNoLnVwZGF0ZShaKX0sUS5wcm90''@;'; + put 'put ''b3R5cGUuX2ZpbmFsPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2hhc2guZGlnZXN0KCl9LFhlLmV4cG9ydHM9ZnVuY3Rpb24oaWUpe3JldHVybiJtZDUiPT09KGllPWllLnRvTG93ZXJDYXNlKCkpP25ldyBCOiJybWQxNjAiPT09aWV8fCJyaXBlbWQxNjAiPT09aWU/bmV3IEU6bmV3IFEoTWUo''@;'; + put 'put ''aWUpKX19LDU1NjQwOihYZSxKZSxMKT0+e3ZhciBtZT1MKDgwOTUpO1hlLmV4cG9ydHM9ZnVuY3Rpb24oQil7cmV0dXJuKG5ldyBtZSkudXBkYXRlKEIpLmRpZ2VzdCgpfX0sNzQ1Mjk6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDgzODk0KSxCPUwoNzMwOSksRT1MKDYxMDUy''@;'; + put 'put ''KSxNZT1MKDczNTAyKS5CdWZmZXIsVT1MKDU1NjQwKSxRPUwoNzU2MzQpLFo9TCg5NTI0NCksaWU9TWUuYWxsb2MoMTI4KTtmdW5jdGlvbiBhZShZLFcpe0UuY2FsbCh0aGlzLCJkaWdlc3QiKSwic3RyaW5nIj09dHlwZW9mIFcmJihXPU1lLmZyb20oVykpO3ZhciBOPSJzaGE1MTIiPT09WXx8''@;'; + put 'put ''InNoYTM4NCI9PT1ZPzEyODo2NDt0aGlzLl9hbGc9WSx0aGlzLl9rZXk9VyxXLmxlbmd0aD5OP1c9KCJybWQxNjAiPT09WT9uZXcgUTpaKFkpKS51cGRhdGUoVykuZGlnZXN0KCk6Vy5sZW5ndGg8TiYmKFc9TWUuY29uY2F0KFtXLGllXSxOKSk7Zm9yKHZhciBxPXRoaXMuX2lwYWQ9TWUuYWxs''@;'; + put 'put ''b2NVbnNhZmUoTiksSj10aGlzLl9vcGFkPU1lLmFsbG9jVW5zYWZlKE4pLHNlPTA7c2U8TjtzZSsrKXFbc2VdPTU0Xldbc2VdLEpbc2VdPTkyXldbc2VdO3RoaXMuX2hhc2g9InJtZDE2MCI9PT1ZP25ldyBROlooWSksdGhpcy5faGFzaC51cGRhdGUocSl9bWUoYWUsRSksYWUucHJvdG90eXBl''@;'; + put 'put ''Ll91cGRhdGU9ZnVuY3Rpb24oWSl7dGhpcy5faGFzaC51cGRhdGUoWSl9LGFlLnByb3RvdHlwZS5fZmluYWw9ZnVuY3Rpb24oKXt2YXIgWT10aGlzLl9oYXNoLmRpZ2VzdCgpO3JldHVybigicm1kMTYwIj09PXRoaXMuX2FsZz9uZXcgUTpaKHRoaXMuX2FsZykpLnVwZGF0ZSh0aGlzLl9vcGFk''@;'; + put 'put ''KS51cGRhdGUoWSkuZGlnZXN0KCl9LFhlLmV4cG9ydHM9ZnVuY3Rpb24oVyxOKXtyZXR1cm4icm1kMTYwIj09PShXPVcudG9Mb3dlckNhc2UoKSl8fCJyaXBlbWQxNjAiPT09Vz9uZXcgYWUoInJtZDE2MCIsTik6Im1kNSI9PT1XP25ldyBCKFUsTik6bmV3IGFlKFcsTil9fSw3MzA5OihYZSxK''@;'; + put 'put ''ZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCg4Mzg5NCksQj1MKDczNTAyKS5CdWZmZXIsRT1MKDYxMDUyKSxNZT1CLmFsbG9jKDEyOCksVT02NDtmdW5jdGlvbiBRKFosaWUpe0UuY2FsbCh0aGlzLCJkaWdlc3QiKSwic3RyaW5nIj09dHlwZW9mIGllJiYoaWU9Qi5mcm9tKGllKSksdGhp''@;'; + put 'put ''cy5fYWxnPVosdGhpcy5fa2V5PWllLGllLmxlbmd0aD5VP2llPVooaWUpOmllLmxlbmd0aDxVJiYoaWU9Qi5jb25jYXQoW2llLE1lXSxVKSk7Zm9yKHZhciBhZT10aGlzLl9pcGFkPUIuYWxsb2NVbnNhZmUoVSksWT10aGlzLl9vcGFkPUIuYWxsb2NVbnNhZmUoVSksVz0wO1c8VTtXKyspYWVb''@;'; + put 'put ''V109NTReaWVbV10sWVtXXT05Ml5pZVtXXTt0aGlzLl9oYXNoPVthZV19bWUoUSxFKSxRLnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKFope3RoaXMuX2hhc2gucHVzaChaKX0sUS5wcm90b3R5cGUuX2ZpbmFsPWZ1bmN0aW9uKCl7dmFyIFo9dGhpcy5fYWxnKEIuY29uY2F0KHRoaXMuX2hh''@;'; + put 'put ''c2gpKTtyZXR1cm4gdGhpcy5fYWxnKEIuY29uY2F0KFt0aGlzLl9vcGFkLFpdKSl9LFhlLmV4cG9ydHM9UX0sNDEzNDg6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO0plLnJhbmRvbUJ5dGVzPUplLnJuZz1KZS5wc2V1ZG9SYW5kb21CeXRlcz1KZS5wcm5nPUwoNTM3NTMpLEplLmNyZWF0ZUhh''@;'; + put 'put ''c2g9SmUuSGFzaD1MKDk2Mzg2KSxKZS5jcmVhdGVIbWFjPUplLkhtYWM9TCg3NDUyOSk7dmFyIG1lPUwoODc3OTMpLEI9T2JqZWN0LmtleXMobWUpLEU9WyJzaGExIiwic2hhMjI0Iiwic2hhMjU2Iiwic2hhMzg0Iiwic2hhNTEyIiwibWQ1Iiwicm1kMTYwIl0uY29uY2F0KEIpO0plLmdldEhh''@;'; + put 'put ''c2hlcz1mdW5jdGlvbigpe3JldHVybiBFfTt2YXIgTWU9TCg5OTM1Nyk7SmUucGJrZGYyPU1lLnBia2RmMixKZS5wYmtkZjJTeW5jPU1lLnBia2RmMlN5bmM7dmFyIFU9TCg1NTI1NSk7SmUuQ2lwaGVyPVUuQ2lwaGVyLEplLmNyZWF0ZUNpcGhlcj1VLmNyZWF0ZUNpcGhlcixKZS5DaXBoZXJp''@;'; + put 'put ''dj1VLkNpcGhlcml2LEplLmNyZWF0ZUNpcGhlcml2PVUuY3JlYXRlQ2lwaGVyaXYsSmUuRGVjaXBoZXI9VS5EZWNpcGhlcixKZS5jcmVhdGVEZWNpcGhlcj1VLmNyZWF0ZURlY2lwaGVyLEplLkRlY2lwaGVyaXY9VS5EZWNpcGhlcml2LEplLmNyZWF0ZURlY2lwaGVyaXY9VS5jcmVhdGVEZWNp''@;'; + put 'put ''cGhlcml2LEplLmdldENpcGhlcnM9VS5nZXRDaXBoZXJzLEplLmxpc3RDaXBoZXJzPVUubGlzdENpcGhlcnM7dmFyIFE9TCg5ODgyOSk7SmUuRGlmZmllSGVsbG1hbkdyb3VwPVEuRGlmZmllSGVsbG1hbkdyb3VwLEplLmNyZWF0ZURpZmZpZUhlbGxtYW5Hcm91cD1RLmNyZWF0ZURpZmZpZUhl''@;'; + put 'put ''bGxtYW5Hcm91cCxKZS5nZXREaWZmaWVIZWxsbWFuPVEuZ2V0RGlmZmllSGVsbG1hbixKZS5jcmVhdGVEaWZmaWVIZWxsbWFuPVEuY3JlYXRlRGlmZmllSGVsbG1hbixKZS5EaWZmaWVIZWxsbWFuPVEuRGlmZmllSGVsbG1hbjt2YXIgWj1MKDM5MjMpO0plLmNyZWF0ZVNpZ249Wi5jcmVhdGVT''@;'; + put 'put ''aWduLEplLlNpZ249Wi5TaWduLEplLmNyZWF0ZVZlcmlmeT1aLmNyZWF0ZVZlcmlmeSxKZS5WZXJpZnk9Wi5WZXJpZnksSmUuY3JlYXRlRUNESD1MKDc0NzQ2KTt2YXIgaWU9TCg2MzcwMSk7SmUucHVibGljRW5jcnlwdD1pZS5wdWJsaWNFbmNyeXB0LEplLnByaXZhdGVFbmNyeXB0PWllLnBy''@;'; + put 'put ''aXZhdGVFbmNyeXB0LEplLnB1YmxpY0RlY3J5cHQ9aWUucHVibGljRGVjcnlwdCxKZS5wcml2YXRlRGVjcnlwdD1pZS5wcml2YXRlRGVjcnlwdDt2YXIgYWU9TCgxNDI3NSk7SmUucmFuZG9tRmlsbD1hZS5yYW5kb21GaWxsLEplLnJhbmRvbUZpbGxTeW5jPWFlLnJhbmRvbUZpbGxTeW5jLEpl''@;'; + put 'put ''LmNyZWF0ZUNyZWRlbnRpYWxzPWZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKFsic29ycnksIGNyZWF0ZUNyZWRlbnRpYWxzIGlzIG5vdCBpbXBsZW1lbnRlZCB5ZXQiLCJ3ZSBhY2NlcHQgcHVsbCByZXF1ZXN0cyIsImh0dHBzOi8vZ2l0aHViLmNvbS9jcnlwdG8tYnJvd3NlcmlmeS9jcnlw''@;'; + put 'put ''dG8tYnJvd3NlcmlmeSJdLmpvaW4oIlxuIikpfSxKZS5jb25zdGFudHM9e0RIX0NIRUNLX1BfTk9UX1NBRkVfUFJJTUU6MixESF9DSEVDS19QX05PVF9QUklNRToxLERIX1VOQUJMRV9UT19DSEVDS19HRU5FUkFUT1I6NCxESF9OT1RfU1VJVEFCTEVfR0VORVJBVE9SOjgsTlBOX0VOQUJMRUQ6''@;'; + put 'put ''MSxBTFBOX0VOQUJMRUQ6MSxSU0FfUEtDUzFfUEFERElORzoxLFJTQV9TU0xWMjNfUEFERElORzoyLFJTQV9OT19QQURESU5HOjMsUlNBX1BLQ1MxX09BRVBfUEFERElORzo0LFJTQV9YOTMxX1BBRERJTkc6NSxSU0FfUEtDUzFfUFNTX1BBRERJTkc6NixQT0lOVF9DT05WRVJTSU9OX0NPTVBS''@;'; + put 'put ''RVNTRUQ6MixQT0lOVF9DT05WRVJTSU9OX1VOQ09NUFJFU1NFRDo0LFBPSU5UX0NPTlZFUlNJT05fSFlCUklEOjZ9fSw2NzU4NTpmdW5jdGlvbihYZSxKZSl7dmFyIG1lLEUsTWUsVSxRLFosaWUsYWUsWSxXLE4scSxMO1hlLmV4cG9ydHM9KEw9THx8KG1lPU1hdGgsRT1PYmplY3QuY3JlYXRl''@;'; + put 'put ''fHxmdW5jdGlvbigpe2Z1bmN0aW9uIEooKXt9cmV0dXJuIGZ1bmN0aW9uKHNlKXt2YXIgb2U7cmV0dXJuIEoucHJvdG90eXBlPXNlLG9lPW5ldyBKLEoucHJvdG90eXBlPW51bGwsb2V9fSgpLFU9KE1lPXt9KS5saWI9e30sUT1VLkJhc2U9e2V4dGVuZDpmdW5jdGlvbihKKXt2YXIgc2U9RSh0''@;'; + put 'put ''aGlzKTtyZXR1cm4gSiYmc2UubWl4SW4oSiksKCFzZS5oYXNPd25Qcm9wZXJ0eSgiaW5pdCIpfHx0aGlzLmluaXQ9PT1zZS5pbml0KSYmKHNlLmluaXQ9ZnVuY3Rpb24oKXtzZS4kc3VwZXIuaW5pdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9KSxzZS5pbml0LnByb3RvdHlwZT1zZSxzZS4kc3Vw''@;'; + put 'put ''ZXI9dGhpcyxzZX0sY3JlYXRlOmZ1bmN0aW9uKCl7dmFyIEo9dGhpcy5leHRlbmQoKTtyZXR1cm4gSi5pbml0LmFwcGx5KEosYXJndW1lbnRzKSxKfSxpbml0OmZ1bmN0aW9uKCl7fSxtaXhJbjpmdW5jdGlvbihKKXtmb3IodmFyIHNlIGluIEopSi5oYXNPd25Qcm9wZXJ0eShzZSkmJih0aGlz''@;'; + put 'put ''W3NlXT1KW3NlXSk7Si5oYXNPd25Qcm9wZXJ0eSgidG9TdHJpbmciKSYmKHRoaXMudG9TdHJpbmc9Si50b1N0cmluZyl9LGNsb25lOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW5pdC5wcm90b3R5cGUuZXh0ZW5kKHRoaXMpfX0sWj1VLldvcmRBcnJheT1RLmV4dGVuZCh7aW5pdDpmdW5jdGlv''@;'; + put 'put ''bihKLHNlKXtKPXRoaXMud29yZHM9Snx8W10sdGhpcy5zaWdCeXRlcz1udWxsIT1zZT9zZTo0KkoubGVuZ3RofSx0b1N0cmluZzpmdW5jdGlvbihKKXtyZXR1cm4oSnx8YWUpLnN0cmluZ2lmeSh0aGlzKX0sY29uY2F0OmZ1bmN0aW9uKEope3ZhciBzZT10aGlzLndvcmRzLG9lPUoud29yZHMs''@;'; + put 'put ''Y2U9dGhpcy5zaWdCeXRlcyxkZT1KLnNpZ0J5dGVzO2lmKHRoaXMuY2xhbXAoKSxjZSU0KWZvcih2YXIgdmU9MDt2ZTxkZTt2ZSsrKXNlW2NlK3ZlPj4+Ml18PShvZVt2ZT4+PjJdPj4+MjQtdmUlNCo4JjI1NSk8PDI0LShjZSt2ZSklNCo4O2Vsc2UgZm9yKHZlPTA7dmU8ZGU7dmUrPTQpc2Vb''@;'; + put 'put ''Y2UrdmU+Pj4yXT1vZVt2ZT4+PjJdO3JldHVybiB0aGlzLnNpZ0J5dGVzKz1kZSx0aGlzfSxjbGFtcDpmdW5jdGlvbigpe3ZhciBKPXRoaXMud29yZHMsc2U9dGhpcy5zaWdCeXRlcztKW3NlPj4+Ml0mPTQyOTQ5NjcyOTU8PDMyLXNlJTQqOCxKLmxlbmd0aD1tZS5jZWlsKHNlLzQpfSxjbG9u''@;'; + put 'put ''ZTpmdW5jdGlvbigpe3ZhciBKPVEuY2xvbmUuY2FsbCh0aGlzKTtyZXR1cm4gSi53b3Jkcz10aGlzLndvcmRzLnNsaWNlKDApLEp9LHJhbmRvbTpmdW5jdGlvbihKKXtmb3IodmFyIGRlLHNlPVtdLG9lPWZ1bmN0aW9uKGtlKXt2YXIgU2U9OTg3NjU0MzIxLEllPTQyOTQ5NjcyOTU7cmV0dXJu''@;'; + put 'put ''IGZ1bmN0aW9uKCl7dmFyIFRlPSgoU2U9MzY5NjkqKDY1NTM1JlNlKSsoU2U+PjE2KSZJZSk8PDE2KSsoa2U9MThlMyooNjU1MzUma2UpKyhrZT4+MTYpJkllKSZJZTtyZXR1cm4gVGUvPTQyOTQ5NjcyOTYsKFRlKz0uNSkqKG1lLnJhbmRvbSgpPi41PzE6LTEpfX0sY2U9MDtjZTxKO2NlKz00''@;'; + put 'put ''KXt2YXIgdmU9b2UoNDI5NDk2NzI5NiooZGV8fG1lLnJhbmRvbSgpKSk7ZGU9OTg3NjU0MDcxKnZlKCksc2UucHVzaCg0Mjk0OTY3Mjk2KnZlKCl8MCl9cmV0dXJuIG5ldyBaLmluaXQoc2UsSil9fSksaWU9TWUuZW5jPXt9LGFlPWllLkhleD17c3RyaW5naWZ5OmZ1bmN0aW9uKEope2Zvcih2''@;'; + put 'put ''YXIgc2U9Si53b3JkcyxvZT1KLnNpZ0J5dGVzLGNlPVtdLGRlPTA7ZGU8b2U7ZGUrKyl7dmFyIHZlPXNlW2RlPj4+Ml0+Pj4yNC1kZSU0KjgmMjU1O2NlLnB1c2goKHZlPj4+NCkudG9TdHJpbmcoMTYpKSxjZS5wdXNoKCgxNSZ2ZSkudG9TdHJpbmcoMTYpKX1yZXR1cm4gY2Uuam9pbigiIil9''@;'; + put 'put ''LHBhcnNlOmZ1bmN0aW9uKEope2Zvcih2YXIgc2U9Si5sZW5ndGgsb2U9W10sY2U9MDtjZTxzZTtjZSs9MilvZVtjZT4+PjNdfD1wYXJzZUludChKLnN1YnN0cihjZSwyKSwxNik8PDI0LWNlJTgqNDtyZXR1cm4gbmV3IFouaW5pdChvZSxzZS8yKX19LFk9aWUuTGF0aW4xPXtzdHJpbmdpZnk6''@;'; + put 'put ''ZnVuY3Rpb24oSil7Zm9yKHZhciBzZT1KLndvcmRzLG9lPUouc2lnQnl0ZXMsY2U9W10sZGU9MDtkZTxvZTtkZSsrKWNlLnB1c2goU3RyaW5nLmZyb21DaGFyQ29kZShzZVtkZT4+PjJdPj4+MjQtZGUlNCo4JjI1NSkpO3JldHVybiBjZS5qb2luKCIiKX0scGFyc2U6ZnVuY3Rpb24oSil7Zm9y''@;'; + put 'put ''KHZhciBzZT1KLmxlbmd0aCxvZT1bXSxjZT0wO2NlPHNlO2NlKyspb2VbY2U+Pj4yXXw9KDI1NSZKLmNoYXJDb2RlQXQoY2UpKTw8MjQtY2UlNCo4O3JldHVybiBuZXcgWi5pbml0KG9lLHNlKX19LFc9aWUuVXRmOD17c3RyaW5naWZ5OmZ1bmN0aW9uKEope3RyeXtyZXR1cm4gZGVjb2RlVVJJ''@;'; + put 'put ''Q29tcG9uZW50KGVzY2FwZShZLnN0cmluZ2lmeShKKSkpfWNhdGNoKHNlKXt0aHJvdyBuZXcgRXJyb3IoIk1hbGZvcm1lZCBVVEYtOCBkYXRhIil9fSxwYXJzZTpmdW5jdGlvbihKKXtyZXR1cm4gWS5wYXJzZSh1bmVzY2FwZShlbmNvZGVVUklDb21wb25lbnQoSikpKX19LE49VS5CdWZmZXJl''@;'; + put 'put ''ZEJsb2NrQWxnb3JpdGhtPVEuZXh0ZW5kKHtyZXNldDpmdW5jdGlvbigpe3RoaXMuX2RhdGE9bmV3IFouaW5pdCx0aGlzLl9uRGF0YUJ5dGVzPTB9LF9hcHBlbmQ6ZnVuY3Rpb24oSil7InN0cmluZyI9PXR5cGVvZiBKJiYoSj1XLnBhcnNlKEopKSx0aGlzLl9kYXRhLmNvbmNhdChKKSx0aGlz''@;'; + put 'put ''Ll9uRGF0YUJ5dGVzKz1KLnNpZ0J5dGVzfSxfcHJvY2VzczpmdW5jdGlvbihKKXt2YXIgc2U9dGhpcy5fZGF0YSxvZT1zZS53b3JkcyxjZT1zZS5zaWdCeXRlcyxkZT10aGlzLmJsb2NrU2l6ZSxBZT1jZS8oNCpkZSksa2U9KEFlPUo/bWUuY2VpbChBZSk6bWUubWF4KCgwfEFlKS10aGlzLl9t''@;'; + put 'put ''aW5CdWZmZXJTaXplLDApKSpkZSxTZT1tZS5taW4oNCprZSxjZSk7aWYoa2Upe2Zvcih2YXIgSWU9MDtJZTxrZTtJZSs9ZGUpdGhpcy5fZG9Qcm9jZXNzQmxvY2sob2UsSWUpO3ZhciBUZT1vZS5zcGxpY2UoMCxrZSk7c2Uuc2lnQnl0ZXMtPVNlfXJldHVybiBuZXcgWi5pbml0KFRlLFNlKX0s''@;'; + put 'put ''Y2xvbmU6ZnVuY3Rpb24oKXt2YXIgSj1RLmNsb25lLmNhbGwodGhpcyk7cmV0dXJuIEouX2RhdGE9dGhpcy5fZGF0YS5jbG9uZSgpLEp9LF9taW5CdWZmZXJTaXplOjB9KSxVLkhhc2hlcj1OLmV4dGVuZCh7Y2ZnOlEuZXh0ZW5kKCksaW5pdDpmdW5jdGlvbihKKXt0aGlzLmNmZz10aGlzLmNm''@;'; + put 'put ''Zy5leHRlbmQoSiksdGhpcy5yZXNldCgpfSxyZXNldDpmdW5jdGlvbigpe04ucmVzZXQuY2FsbCh0aGlzKSx0aGlzLl9kb1Jlc2V0KCl9LHVwZGF0ZTpmdW5jdGlvbihKKXtyZXR1cm4gdGhpcy5fYXBwZW5kKEopLHRoaXMuX3Byb2Nlc3MoKSx0aGlzfSxmaW5hbGl6ZTpmdW5jdGlvbihKKXty''@;'; + put 'put ''ZXR1cm4gSiYmdGhpcy5fYXBwZW5kKEopLHRoaXMuX2RvRmluYWxpemUoKX0sYmxvY2tTaXplOjE2LF9jcmVhdGVIZWxwZXI6ZnVuY3Rpb24oSil7cmV0dXJuIGZ1bmN0aW9uKHNlLG9lKXtyZXR1cm4gbmV3IEouaW5pdChvZSkuZmluYWxpemUoc2UpfX0sX2NyZWF0ZUhtYWNIZWxwZXI6ZnVu''@;'; + put 'put ''Y3Rpb24oSil7cmV0dXJuIGZ1bmN0aW9uKHNlLG9lKXtyZXR1cm4gbmV3IHEuSE1BQy5pbml0KEosb2UpLmZpbmFsaXplKHNlKX19fSkscT1NZS5hbGdvPXt9LE1lKSxMKX0sOTQ5MzpmdW5jdGlvbihYZSxKZSxMKXt2YXIgbWU7WGUuZXhwb3J0cz0obWU9TCg2NzU4NSksZnVuY3Rpb24oQil7''@;'; + put 'put ''dmFyIEU9bWUsTWU9RS5saWIsVT1NZS5Xb3JkQXJyYXksUT1NZS5IYXNoZXIsWj1FLmFsZ28saWU9W107IWZ1bmN0aW9uKCl7Zm9yKHZhciBxPTA7cTw2NDtxKyspaWVbcV09NDI5NDk2NzI5NipCLmFicyhCLnNpbihxKzEpKXwwfSgpO3ZhciBhZT1aLk1ENT1RLmV4dGVuZCh7X2RvUmVzZXQ6''@;'; + put 'put ''ZnVuY3Rpb24oKXt0aGlzLl9oYXNoPW5ldyBVLmluaXQoWzE3MzI1ODQxOTMsNDAyMzIzMzQxNywyNTYyMzgzMTAyLDI3MTczMzg3OF0pfSxfZG9Qcm9jZXNzQmxvY2s6ZnVuY3Rpb24ocSxKKXtmb3IodmFyIHNlPTA7c2U8MTY7c2UrKyl7dmFyIG9lPUorc2UsY2U9cVtvZV07cVtvZV09MTY3''@;'; + put 'put ''MTE5MzUmKGNlPDw4fGNlPj4+MjQpfDQyNzgyNTUzNjAmKGNlPDwyNHxjZT4+PjgpfXZhciBkZT10aGlzLl9oYXNoLndvcmRzLHZlPXFbSiswXSxBZT1xW0orMV0sa2U9cVtKKzJdLFNlPXFbSiszXSxJZT1xW0orNF0sVGU9cVtKKzVdLEVlPXFbSis2XSxoZT1xW0orN10sTz1xW0orOF0sej1x''@;'; + put 'put ''W0orOV0sbmU9cVtKKzEwXSx0ZT1xW0orMTFdLHg9cVtKKzEyXSxQPXFbSisxM10sVj1xW0orMTRdLFQ9cVtKKzE1XSxTPWRlWzBdLEY9ZGVbMV0seWU9ZGVbMl0sQ2U9ZGVbM107Uz1ZKFMsRix5ZSxDZSx2ZSw3LGllWzBdKSxDZT1ZKENlLFMsRix5ZSxBZSwxMixpZVsxXSkseWU9WSh5ZSxD''@;'; + put 'put ''ZSxTLEYsa2UsMTcsaWVbMl0pLEY9WShGLHllLENlLFMsU2UsMjIsaWVbM10pLFM9WShTLEYseWUsQ2UsSWUsNyxpZVs0XSksQ2U9WShDZSxTLEYseWUsVGUsMTIsaWVbNV0pLHllPVkoeWUsQ2UsUyxGLEVlLDE3LGllWzZdKSxGPVkoRix5ZSxDZSxTLGhlLDIyLGllWzddKSxTPVkoUyxGLHll''@;'; + put 'put ''LENlLE8sNyxpZVs4XSksQ2U9WShDZSxTLEYseWUseiwxMixpZVs5XSkseWU9WSh5ZSxDZSxTLEYsbmUsMTcsaWVbMTBdKSxGPVkoRix5ZSxDZSxTLHRlLDIyLGllWzExXSksUz1ZKFMsRix5ZSxDZSx4LDcsaWVbMTJdKSxDZT1ZKENlLFMsRix5ZSxQLDEyLGllWzEzXSkseWU9WSh5ZSxDZSxT''@;'; + put 'put ''LEYsViwxNyxpZVsxNF0pLFM9VyhTLEY9WShGLHllLENlLFMsVCwyMixpZVsxNV0pLHllLENlLEFlLDUsaWVbMTZdKSxDZT1XKENlLFMsRix5ZSxFZSw5LGllWzE3XSkseWU9Vyh5ZSxDZSxTLEYsdGUsMTQsaWVbMThdKSxGPVcoRix5ZSxDZSxTLHZlLDIwLGllWzE5XSksUz1XKFMsRix5ZSxD''@;'; + put 'put ''ZSxUZSw1LGllWzIwXSksQ2U9VyhDZSxTLEYseWUsbmUsOSxpZVsyMV0pLHllPVcoeWUsQ2UsUyxGLFQsMTQsaWVbMjJdKSxGPVcoRix5ZSxDZSxTLEllLDIwLGllWzIzXSksUz1XKFMsRix5ZSxDZSx6LDUsaWVbMjRdKSxDZT1XKENlLFMsRix5ZSxWLDksaWVbMjVdKSx5ZT1XKHllLENlLFMs''@;'; + put 'put ''RixTZSwxNCxpZVsyNl0pLEY9VyhGLHllLENlLFMsTywyMCxpZVsyN10pLFM9VyhTLEYseWUsQ2UsUCw1LGllWzI4XSksQ2U9VyhDZSxTLEYseWUsa2UsOSxpZVsyOV0pLHllPVcoeWUsQ2UsUyxGLGhlLDE0LGllWzMwXSksUz1OKFMsRj1XKEYseWUsQ2UsUyx4LDIwLGllWzMxXSkseWUsQ2Us''@;'; + put 'put ''VGUsNCxpZVszMl0pLENlPU4oQ2UsUyxGLHllLE8sMTEsaWVbMzNdKSx5ZT1OKHllLENlLFMsRix0ZSwxNixpZVszNF0pLEY9TihGLHllLENlLFMsViwyMyxpZVszNV0pLFM9TihTLEYseWUsQ2UsQWUsNCxpZVszNl0pLENlPU4oQ2UsUyxGLHllLEllLDExLGllWzM3XSkseWU9Tih5ZSxDZSxT''@;'; + put 'put ''LEYsaGUsMTYsaWVbMzhdKSxGPU4oRix5ZSxDZSxTLG5lLDIzLGllWzM5XSksUz1OKFMsRix5ZSxDZSxQLDQsaWVbNDBdKSxDZT1OKENlLFMsRix5ZSx2ZSwxMSxpZVs0MV0pLHllPU4oeWUsQ2UsUyxGLFNlLDE2LGllWzQyXSksRj1OKEYseWUsQ2UsUyxFZSwyMyxpZVs0M10pLFM9TihTLEYs''@;'; + put 'put ''eWUsQ2Useiw0LGllWzQ0XSksQ2U9TihDZSxTLEYseWUseCwxMSxpZVs0NV0pLHllPU4oeWUsQ2UsUyxGLFQsMTYsaWVbNDZdKSxTPWVlKFMsRj1OKEYseWUsQ2UsUyxrZSwyMyxpZVs0N10pLHllLENlLHZlLDYsaWVbNDhdKSxDZT1lZShDZSxTLEYseWUsaGUsMTAsaWVbNDldKSx5ZT1lZSh5''@;'; + put 'put ''ZSxDZSxTLEYsViwxNSxpZVs1MF0pLEY9ZWUoRix5ZSxDZSxTLFRlLDIxLGllWzUxXSksUz1lZShTLEYseWUsQ2UseCw2LGllWzUyXSksQ2U9ZWUoQ2UsUyxGLHllLFNlLDEwLGllWzUzXSkseWU9ZWUoeWUsQ2UsUyxGLG5lLDE1LGllWzU0XSksRj1lZShGLHllLENlLFMsQWUsMjEsaWVbNTVd''@;'; + put 'put ''KSxTPWVlKFMsRix5ZSxDZSxPLDYsaWVbNTZdKSxDZT1lZShDZSxTLEYseWUsVCwxMCxpZVs1N10pLHllPWVlKHllLENlLFMsRixFZSwxNSxpZVs1OF0pLEY9ZWUoRix5ZSxDZSxTLFAsMjEsaWVbNTldKSxTPWVlKFMsRix5ZSxDZSxJZSw2LGllWzYwXSksQ2U9ZWUoQ2UsUyxGLHllLHRlLDEw''@;'; + put 'put ''LGllWzYxXSkseWU9ZWUoeWUsQ2UsUyxGLGtlLDE1LGllWzYyXSksRj1lZShGLHllLENlLFMseiwyMSxpZVs2M10pLGRlWzBdPWRlWzBdK1N8MCxkZVsxXT1kZVsxXStGfDAsZGVbMl09ZGVbMl0reWV8MCxkZVszXT1kZVszXStDZXwwfSxfZG9GaW5hbGl6ZTpmdW5jdGlvbigpe3ZhciBxPXRo''@;'; + put 'put ''aXMuX2RhdGEsSj1xLndvcmRzLHNlPTgqdGhpcy5fbkRhdGFCeXRlcyxvZT04KnEuc2lnQnl0ZXM7SltvZT4+PjVdfD0xMjg8PDI0LW9lJTMyO3ZhciBjZT1CLmZsb29yKHNlLzQyOTQ5NjcyOTYpLGRlPXNlO0pbMTUrKG9lKzY0Pj4+OTw8NCldPTE2NzExOTM1JihjZTw8OHxjZT4+PjI0KXw0''@;'; + put 'put ''Mjc4MjU1MzYwJihjZTw8MjR8Y2U+Pj44KSxKWzE0KyhvZSs2ND4+Pjk8PDQpXT0xNjcxMTkzNSYoZGU8PDh8ZGU+Pj4yNCl8NDI3ODI1NTM2MCYoZGU8PDI0fGRlPj4+OCkscS5zaWdCeXRlcz00KihKLmxlbmd0aCsxKSx0aGlzLl9wcm9jZXNzKCk7Zm9yKHZhciB2ZT10aGlzLl9oYXNoLEFl''@;'; + put 'put ''PXZlLndvcmRzLGtlPTA7a2U8NDtrZSsrKXt2YXIgU2U9QWVba2VdO0FlW2tlXT0xNjcxMTkzNSYoU2U8PDh8U2U+Pj4yNCl8NDI3ODI1NTM2MCYoU2U8PDI0fFNlPj4+OCl9cmV0dXJuIHZlfSxjbG9uZTpmdW5jdGlvbigpe3ZhciBxPVEuY2xvbmUuY2FsbCh0aGlzKTtyZXR1cm4gcS5faGFz''@;'; + put 'put ''aD10aGlzLl9oYXNoLmNsb25lKCkscX19KTtmdW5jdGlvbiBZKHEsSixzZSxvZSxjZSxkZSx2ZSl7dmFyIEFlPXErKEomc2V8fkomb2UpK2NlK3ZlO3JldHVybihBZTw8ZGV8QWU+Pj4zMi1kZSkrSn1mdW5jdGlvbiBXKHEsSixzZSxvZSxjZSxkZSx2ZSl7dmFyIEFlPXErKEomb2V8c2Umfm9l''@;'; + put 'put ''KStjZSt2ZTtyZXR1cm4oQWU8PGRlfEFlPj4+MzItZGUpK0p9ZnVuY3Rpb24gTihxLEosc2Usb2UsY2UsZGUsdmUpe3ZhciBBZT1xKyhKXnNlXm9lKStjZSt2ZTtyZXR1cm4oQWU8PGRlfEFlPj4+MzItZGUpK0p9ZnVuY3Rpb24gZWUocSxKLHNlLG9lLGNlLGRlLHZlKXt2YXIgQWU9cSsoc2Ve''@;'; + put 'put ''KEp8fm9lKSkrY2UrdmU7cmV0dXJuKEFlPDxkZXxBZT4+PjMyLWRlKStKfUUuTUQ1PVEuX2NyZWF0ZUhlbHBlcihhZSksRS5IbWFjTUQ1PVEuX2NyZWF0ZUhtYWNIZWxwZXIoYWUpfShNYXRoKSxtZS5NRDUpfSw1Mjc4NjooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7TC5kKEplLHtCODooKT0+''@;'; + put 'put ''U2UsSWw6KCk9PkIsSjU6KCk9Pk1lLFNVOigpPT5rZSxTczooKT0+SWUsWW06KCk9Pm5lLFpQOigpPT5kZSx4VjooKT0+RX0pO3ZhciBtZT1MKDY4ODg0KTtmdW5jdGlvbiBCKCl7fXZhciBFPS43LE1lPTEvRSxVPSJcXHMqKFsrLV0/XFxkKylcXHMqIixRPSJcXHMqKFsrLV0/XFxkKlxcLj9c''@;'; + put 'put ''XGQrKD86W2VFXVsrLV0/XFxkKyk/KVxccyoiLFo9IlxccyooWystXT9cXGQqXFwuP1xcZCsoPzpbZUVdWystXT9cXGQrKT8pJVxccyoiLGllPS9eIyhbMC05YS1mXXszLDh9KSQvLGFlPW5ldyBSZWdFeHAoIl5yZ2JcXCgiK1tVLFUsVV0rIlxcKSQiKSxZPW5ldyBSZWdFeHAoIl5yZ2JcXCgi''@;'; + put 'put ''K1taLFosWl0rIlxcKSQiKSxXPW5ldyBSZWdFeHAoIl5yZ2JhXFwoIitbVSxVLFUsUV0rIlxcKSQiKSxOPW5ldyBSZWdFeHAoIl5yZ2JhXFwoIitbWixaLFosUV0rIlxcKSQiKSxlZT1uZXcgUmVnRXhwKCJeaHNsXFwoIitbUSxaLFpdKyJcXCkkIikscT1uZXcgUmVnRXhwKCJeaHNsYVxcKCIr''@;'; + put 'put ''W1EsWixaLFFdKyJcXCkkIiksSj17YWxpY2VibHVlOjE1NzkyMzgzLGFudGlxdWV3aGl0ZToxNjQ0NDM3NSxhcXVhOjY1NTM1LGFxdWFtYXJpbmU6ODM4ODU2NCxhenVyZToxNTc5NDE3NSxiZWlnZToxNjExOTI2MCxiaXNxdWU6MTY3NzAyNDQsYmxhY2s6MCxibGFuY2hlZGFsbW9uZDoxNjc3''@;'; + put 'put ''MjA0NSxibHVlOjI1NSxibHVldmlvbGV0OjkwNTUyMDIsYnJvd246MTA4MjQyMzQsYnVybHl3b29kOjE0NTk2MjMxLGNhZGV0Ymx1ZTo2MjY2NTI4LGNoYXJ0cmV1c2U6ODM4ODM1MixjaG9jb2xhdGU6MTM3ODk0NzAsY29yYWw6MTY3NDQyNzIsY29ybmZsb3dlcmJsdWU6NjU5MTk4MSxjb3Ju''@;'; + put 'put ''c2lsazoxNjc3NTM4OCxjcmltc29uOjE0NDIzMTAwLGN5YW46NjU1MzUsZGFya2JsdWU6MTM5LGRhcmtjeWFuOjM1NzIzLGRhcmtnb2xkZW5yb2Q6MTIwOTI5MzksZGFya2dyYXk6MTExMTkwMTcsZGFya2dyZWVuOjI1NjAwLGRhcmtncmV5OjExMTE5MDE3LGRhcmtraGFraToxMjQzMzI1OSxk''@;'; + put 'put ''YXJrbWFnZW50YTo5MTA5NjQzLGRhcmtvbGl2ZWdyZWVuOjU1OTc5OTksZGFya29yYW5nZToxNjc0NzUyMCxkYXJrb3JjaGlkOjEwMDQwMDEyLGRhcmtyZWQ6OTEwOTUwNCxkYXJrc2FsbW9uOjE1MzA4NDEwLGRhcmtzZWFncmVlbjo5NDE5OTE5LGRhcmtzbGF0ZWJsdWU6NDczNDM0NyxkYXJr''@;'; + put 'put ''c2xhdGVncmF5OjMxMDA0OTUsZGFya3NsYXRlZ3JleTozMTAwNDk1LGRhcmt0dXJxdW9pc2U6NTI5NDUsZGFya3Zpb2xldDo5Njk5NTM5LGRlZXBwaW5rOjE2NzE2OTQ3LGRlZXBza3libHVlOjQ5MTUxLGRpbWdyYXk6NjkwODI2NSxkaW1ncmV5OjY5MDgyNjUsZG9kZ2VyYmx1ZToyMDAzMTk5''@;'; + put 'put ''LGZpcmVicmljazoxMTY3NDE0NixmbG9yYWx3aGl0ZToxNjc3NTkyMCxmb3Jlc3RncmVlbjoyMjYzODQyLGZ1Y2hzaWE6MTY3MTE5MzUsZ2FpbnNib3JvOjE0NDc0NDYwLGdob3N0d2hpdGU6MTYzMTY2NzEsZ29sZDoxNjc2NjcyMCxnb2xkZW5yb2Q6MTQzMjkxMjAsZ3JheTo4NDIxNTA0LGdy''@;'; + put 'put ''ZWVuOjMyNzY4LGdyZWVueWVsbG93OjExNDAzMDU1LGdyZXk6ODQyMTUwNCxob25leWRldzoxNTc5NDE2MCxob3RwaW5rOjE2NzM4NzQwLGluZGlhbnJlZDoxMzQ1ODUyNCxpbmRpZ286NDkxNTMzMCxpdm9yeToxNjc3NzIwMCxraGFraToxNTc4NzY2MCxsYXZlbmRlcjoxNTEzMjQxMCxsYXZl''@;'; + put 'put ''bmRlcmJsdXNoOjE2NzczMzY1LGxhd25ncmVlbjo4MTkwOTc2LGxlbW9uY2hpZmZvbjoxNjc3NTg4NSxsaWdodGJsdWU6MTEzOTMyNTQsbGlnaHRjb3JhbDoxNTc2MTUzNixsaWdodGN5YW46MTQ3NDU1OTksbGlnaHRnb2xkZW5yb2R5ZWxsb3c6MTY0NDgyMTAsbGlnaHRncmF5OjEzODgyMzIz''@;'; + put 'put ''LGxpZ2h0Z3JlZW46OTQ5ODI1NixsaWdodGdyZXk6MTM4ODIzMjMsbGlnaHRwaW5rOjE2NzU4NDY1LGxpZ2h0c2FsbW9uOjE2NzUyNzYyLGxpZ2h0c2VhZ3JlZW46MjE0Mjg5MCxsaWdodHNreWJsdWU6ODkwMDM0NixsaWdodHNsYXRlZ3JheTo3ODMzNzUzLGxpZ2h0c2xhdGVncmV5Ojc4MzM3''@;'; + put 'put ''NTMsbGlnaHRzdGVlbGJsdWU6MTE1ODQ3MzQsbGlnaHR5ZWxsb3c6MTY3NzcxODQsbGltZTo2NTI4MCxsaW1lZ3JlZW46MzMyOTMzMCxsaW5lbjoxNjQ0NTY3MCxtYWdlbnRhOjE2NzExOTM1LG1hcm9vbjo4Mzg4NjA4LG1lZGl1bWFxdWFtYXJpbmU6NjczNzMyMixtZWRpdW1ibHVlOjIwNSxt''@;'; + put 'put ''ZWRpdW1vcmNoaWQ6MTIyMTE2NjcsbWVkaXVtcHVycGxlOjk2NjI2ODMsbWVkaXVtc2VhZ3JlZW46Mzk3ODA5NyxtZWRpdW1zbGF0ZWJsdWU6ODA4Nzc5MCxtZWRpdW1zcHJpbmdncmVlbjo2NDE1NCxtZWRpdW10dXJxdW9pc2U6NDc3MjMwMCxtZWRpdW12aW9sZXRyZWQ6MTMwNDcxNzMsbWlk''@;'; + put 'put ''bmlnaHRibHVlOjE2NDQ5MTIsbWludGNyZWFtOjE2MTIxODUwLG1pc3R5cm9zZToxNjc3MDI3Myxtb2NjYXNpbjoxNjc3MDIyOSxuYXZham93aGl0ZToxNjc2ODY4NSxuYXZ5OjEyOCxvbGRsYWNlOjE2NjQzNTU4LG9saXZlOjg0MjEzNzYsb2xpdmVkcmFiOjcwNDg3Mzksb3JhbmdlOjE2NzUz''@;'; + put 'put ''OTIwLG9yYW5nZXJlZDoxNjcyOTM0NCxvcmNoaWQ6MTQzMTU3MzQscGFsZWdvbGRlbnJvZDoxNTY1NzEzMCxwYWxlZ3JlZW46MTAwMjU4ODAscGFsZXR1cnF1b2lzZToxMTUyOTk2NixwYWxldmlvbGV0cmVkOjE0MzgxMjAzLHBhcGF5YXdoaXA6MTY3NzMwNzcscGVhY2hwdWZmOjE2NzY3Njcz''@;'; + put 'put ''LHBlcnU6MTM0Njg5OTEscGluazoxNjc2MTAzNSxwbHVtOjE0NTI0NjM3LHBvd2RlcmJsdWU6MTE1OTE5MTAscHVycGxlOjgzODg3MzYscmViZWNjYXB1cnBsZTo2Njk3ODgxLHJlZDoxNjcxMTY4MCxyb3N5YnJvd246MTIzNTc1MTkscm95YWxibHVlOjQyODY5NDUsc2FkZGxlYnJvd246OTEy''@;'; + put 'put ''NzE4NyxzYWxtb246MTY0MTY4ODIsc2FuZHlicm93bjoxNjAzMjg2NCxzZWFncmVlbjozMDUwMzI3LHNlYXNoZWxsOjE2Nzc0NjM4LHNpZW5uYToxMDUwNjc5NyxzaWx2ZXI6MTI2MzIyNTYsc2t5Ymx1ZTo4OTAwMzMxLHNsYXRlYmx1ZTo2OTcwMDYxLHNsYXRlZ3JheTo3MzcyOTQ0LHNsYXRl''@;'; + put 'put ''Z3JleTo3MzcyOTQ0LHNub3c6MTY3NzU5MzAsc3ByaW5nZ3JlZW46NjU0MDcsc3RlZWxibHVlOjQ2MjA5ODAsdGFuOjEzODA4NzgwLHRlYWw6MzI4OTYsdGhpc3RsZToxNDIwNDg4OCx0b21hdG86MTY3MzcwOTUsdHVycXVvaXNlOjQyNTE4NTYsdmlvbGV0OjE1NjMxMDg2LHdoZWF0OjE2MTEz''@;'; + put 'put ''MzMxLHdoaXRlOjE2Nzc3MjE1LHdoaXRlc21va2U6MTYxMTkyODUseWVsbG93OjE2Nzc2OTYwLHllbGxvd2dyZWVuOjEwMTQ1MDc0fTtmdW5jdGlvbiBzZSgpe3JldHVybiB0aGlzLnJnYigpLmZvcm1hdEhleCgpfWZ1bmN0aW9uIGNlKCl7cmV0dXJuIHRoaXMucmdiKCkuZm9ybWF0UmdiKCl9''@;'; + put 'put ''ZnVuY3Rpb24gZGUoUCl7dmFyIFYsVDtyZXR1cm4gUD0oUCsiIikudHJpbSgpLnRvTG93ZXJDYXNlKCksKFY9aWUuZXhlYyhQKSk/KFQ9VlsxXS5sZW5ndGgsVj1wYXJzZUludChWWzFdLDE2KSw2PT09VD92ZShWKTozPT09VD9uZXcgSWUoVj4+OCYxNXxWPj40JjI0MCxWPj40JjE1fDI0MCZW''@;'; + put 'put ''LCgxNSZWKTw8NHwxNSZWLDEpOjg9PT1UP0FlKFY+PjI0JjI1NSxWPj4xNiYyNTUsVj4+OCYyNTUsKDI1NSZWKS8yNTUpOjQ9PT1UP0FlKFY+PjEyJjE1fFY+PjgmMjQwLFY+PjgmMTV8Vj4+NCYyNDAsVj4+NCYxNXwyNDAmViwoKDE1JlYpPDw0fDE1JlYpLzI1NSk6bnVsbCk6KFY9YWUuZXhl''@;'; + put 'put ''YyhQKSk/bmV3IEllKFZbMV0sVlsyXSxWWzNdLDEpOihWPVkuZXhlYyhQKSk/bmV3IEllKDI1NSpWWzFdLzEwMCwyNTUqVlsyXS8xMDAsMjU1KlZbM10vMTAwLDEpOihWPVcuZXhlYyhQKSk/QWUoVlsxXSxWWzJdLFZbM10sVls0XSk6KFY9Ti5leGVjKFApKT9BZSgyNTUqVlsxXS8xMDAsMjU1''@;'; + put 'put ''KlZbMl0vMTAwLDI1NSpWWzNdLzEwMCxWWzRdKTooVj1lZS5leGVjKFApKT9PKFZbMV0sVlsyXS8xMDAsVlszXS8xMDAsMSk6KFY9cS5leGVjKFApKT9PKFZbMV0sVlsyXS8xMDAsVlszXS8xMDAsVls0XSk6Si5oYXNPd25Qcm9wZXJ0eShQKT92ZShKW1BdKToidHJhbnNwYXJlbnQiPT09UD9u''@;'; + put 'put ''ZXcgSWUoTmFOLE5hTixOYU4sMCk6bnVsbH1mdW5jdGlvbiB2ZShQKXtyZXR1cm4gbmV3IEllKFA+PjE2JjI1NSxQPj44JjI1NSwyNTUmUCwxKX1mdW5jdGlvbiBBZShQLFYsVCxTKXtyZXR1cm4gUzw9MCYmKFA9Vj1UPU5hTiksbmV3IEllKFAsVixULFMpfWZ1bmN0aW9uIGtlKFApe3JldHVy''@;'; + put 'put ''biBQIGluc3RhbmNlb2YgQnx8KFA9ZGUoUCkpLFA/bmV3IEllKChQPVAucmdiKCkpLnIsUC5nLFAuYixQLm9wYWNpdHkpOm5ldyBJZX1mdW5jdGlvbiBTZShQLFYsVCxTKXtyZXR1cm4gMT09PWFyZ3VtZW50cy5sZW5ndGg/a2UoUCk6bmV3IEllKFAsVixULG51bGw9PVM/MTpTKX1mdW5jdGlv''@;'; + put 'put ''biBJZShQLFYsVCxTKXt0aGlzLnI9K1AsdGhpcy5nPStWLHRoaXMuYj0rVCx0aGlzLm9wYWNpdHk9K1N9ZnVuY3Rpb24gVGUoKXtyZXR1cm4iIyIraGUodGhpcy5yKStoZSh0aGlzLmcpK2hlKHRoaXMuYil9ZnVuY3Rpb24gRWUoKXt2YXIgUD10aGlzLm9wYWNpdHk7cmV0dXJuKDE9PT0oUD1p''@;'; + put 'put ''c05hTihQKT8xOk1hdGgubWF4KDAsTWF0aC5taW4oMSxQKSkpPyJyZ2IoIjoicmdiYSgiKStNYXRoLm1heCgwLE1hdGgubWluKDI1NSxNYXRoLnJvdW5kKHRoaXMucil8fDApKSsiLCAiK01hdGgubWF4KDAsTWF0aC5taW4oMjU1LE1hdGgucm91bmQodGhpcy5nKXx8MCkpKyIsICIrTWF0aC5t''@;'; + put 'put ''YXgoMCxNYXRoLm1pbigyNTUsTWF0aC5yb3VuZCh0aGlzLmIpfHwwKSkrKDE9PT1QPyIpIjoiLCAiK1ArIikiKX1mdW5jdGlvbiBoZShQKXtyZXR1cm4oKFA9TWF0aC5tYXgoMCxNYXRoLm1pbigyNTUsTWF0aC5yb3VuZChQKXx8MCkpKTwxNj8iMCI6IiIpK1AudG9TdHJpbmcoMTYpfWZ1bmN0''@;'; + put 'put ''aW9uIE8oUCxWLFQsUyl7cmV0dXJuIFM8PTA/UD1WPVQ9TmFOOlQ8PTB8fFQ+PTE/UD1WPU5hTjpWPD0wJiYoUD1OYU4pLG5ldyB0ZShQLFYsVCxTKX1mdW5jdGlvbiB6KFApe2lmKFAgaW5zdGFuY2VvZiB0ZSlyZXR1cm4gbmV3IHRlKFAuaCxQLnMsUC5sLFAub3BhY2l0eSk7aWYoUCBpbnN0''@;'; + put 'put ''YW5jZW9mIEJ8fChQPWRlKFApKSwhUClyZXR1cm4gbmV3IHRlO2lmKFAgaW5zdGFuY2VvZiB0ZSlyZXR1cm4gUDt2YXIgVj0oUD1QLnJnYigpKS5yLzI1NSxUPVAuZy8yNTUsUz1QLmIvMjU1LEY9TWF0aC5taW4oVixULFMpLHllPU1hdGgubWF4KFYsVCxTKSxDZT1OYU4sRGU9eWUtRixQZT0o''@;'; + put 'put ''eWUrRikvMjtyZXR1cm4gRGU/KENlPVY9PT15ZT8oVC1TKS9EZSs2KihUPFMpOlQ9PT15ZT8oUy1WKS9EZSsyOihWLVQpL0RlKzQsRGUvPVBlPC41P3llK0Y6Mi15ZS1GLENlKj02MCk6RGU9UGU+MCYmUGU8MT8wOkNlLG5ldyB0ZShDZSxEZSxQZSxQLm9wYWNpdHkpfWZ1bmN0aW9uIG5lKFAs''@;'; + put 'put ''VixULFMpe3JldHVybiAxPT09YXJndW1lbnRzLmxlbmd0aD96KFApOm5ldyB0ZShQLFYsVCxudWxsPT1TPzE6Uyl9ZnVuY3Rpb24gdGUoUCxWLFQsUyl7dGhpcy5oPStQLHRoaXMucz0rVix0aGlzLmw9K1QsdGhpcy5vcGFjaXR5PStTfWZ1bmN0aW9uIHgoUCxWLFQpe3JldHVybiAyNTUqKFA8''@;'; + put 'put ''NjA/VisoVC1WKSpQLzYwOlA8MTgwP1Q6UDwyNDA/VisoVC1WKSooMjQwLVApLzYwOlYpfSgwLG1lLlopKEIsZGUse2NvcHk6ZnVuY3Rpb24oUCl7cmV0dXJuIE9iamVjdC5hc3NpZ24obmV3IHRoaXMuY29uc3RydWN0b3IsdGhpcyxQKX0sZGlzcGxheWFibGU6ZnVuY3Rpb24oKXtyZXR1cm4g''@;'; + put 'put ''dGhpcy5yZ2IoKS5kaXNwbGF5YWJsZSgpfSxoZXg6c2UsZm9ybWF0SGV4OnNlLGZvcm1hdEhzbDpmdW5jdGlvbiBvZSgpe3JldHVybiB6KHRoaXMpLmZvcm1hdEhzbCgpfSxmb3JtYXRSZ2I6Y2UsdG9TdHJpbmc6Y2V9KSwoMCxtZS5aKShJZSxTZSwoMCxtZS5sKShCLHticmlnaHRlcjpmdW5j''@;'; + put 'put ''dGlvbihQKXtyZXR1cm4gUD1udWxsPT1QP01lOk1hdGgucG93KE1lLFApLG5ldyBJZSh0aGlzLnIqUCx0aGlzLmcqUCx0aGlzLmIqUCx0aGlzLm9wYWNpdHkpfSxkYXJrZXI6ZnVuY3Rpb24oUCl7cmV0dXJuIFA9bnVsbD09UD9FOk1hdGgucG93KEUsUCksbmV3IEllKHRoaXMucipQLHRoaXMu''@;'; + put 'put ''ZypQLHRoaXMuYipQLHRoaXMub3BhY2l0eSl9LHJnYjpmdW5jdGlvbigpe3JldHVybiB0aGlzfSxkaXNwbGF5YWJsZTpmdW5jdGlvbigpe3JldHVybi0uNTw9dGhpcy5yJiZ0aGlzLnI8MjU1LjUmJi0uNTw9dGhpcy5nJiZ0aGlzLmc8MjU1LjUmJi0uNTw9dGhpcy5iJiZ0aGlzLmI8MjU1LjUm''@;'; + put 'put ''JjA8PXRoaXMub3BhY2l0eSYmdGhpcy5vcGFjaXR5PD0xfSxoZXg6VGUsZm9ybWF0SGV4OlRlLGZvcm1hdFJnYjpFZSx0b1N0cmluZzpFZX0pKSwoMCxtZS5aKSh0ZSxuZSwoMCxtZS5sKShCLHticmlnaHRlcjpmdW5jdGlvbihQKXtyZXR1cm4gUD1udWxsPT1QP01lOk1hdGgucG93KE1lLFAp''@;'; + put 'put ''LG5ldyB0ZSh0aGlzLmgsdGhpcy5zLHRoaXMubCpQLHRoaXMub3BhY2l0eSl9LGRhcmtlcjpmdW5jdGlvbihQKXtyZXR1cm4gUD1udWxsPT1QP0U6TWF0aC5wb3coRSxQKSxuZXcgdGUodGhpcy5oLHRoaXMucyx0aGlzLmwqUCx0aGlzLm9wYWNpdHkpfSxyZ2I6ZnVuY3Rpb24oKXt2YXIgUD10''@;'; + put 'put ''aGlzLmglMzYwKzM2MCoodGhpcy5oPDApLFY9aXNOYU4oUCl8fGlzTmFOKHRoaXMucyk/MDp0aGlzLnMsVD10aGlzLmwsUz1UKyhUPC41P1Q6MS1UKSpWLEY9MipULVM7cmV0dXJuIG5ldyBJZSh4KFA+PTI0MD9QLTI0MDpQKzEyMCxGLFMpLHgoUCxGLFMpLHgoUDwxMjA/UCsyNDA6UC0xMjAs''@;'; + put 'put ''RixTKSx0aGlzLm9wYWNpdHkpfSxkaXNwbGF5YWJsZTpmdW5jdGlvbigpe3JldHVybigwPD10aGlzLnMmJnRoaXMuczw9MXx8aXNOYU4odGhpcy5zKSkmJjA8PXRoaXMubCYmdGhpcy5sPD0xJiYwPD10aGlzLm9wYWNpdHkmJnRoaXMub3BhY2l0eTw9MX0sZm9ybWF0SHNsOmZ1bmN0aW9uKCl7''@;'; + put 'put ''dmFyIFA9dGhpcy5vcGFjaXR5O3JldHVybigxPT09KFA9aXNOYU4oUCk/MTpNYXRoLm1heCgwLE1hdGgubWluKDEsUCkpKT8iaHNsKCI6ImhzbGEoIikrKHRoaXMuaHx8MCkrIiwgIisxMDAqKHRoaXMuc3x8MCkrIiUsICIrMTAwKih0aGlzLmx8fDApKyIlIisoMT09PVA/IikiOiIsICIrUCsi''@;'; + put 'put ''KSIpfX0pKX0sNjg4ODQ6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG1lKEUsTWUsVSl7RS5wcm90b3R5cGU9TWUucHJvdG90eXBlPVUsVS5jb25zdHJ1Y3Rvcj1FfWZ1bmN0aW9uIEIoRSxNZSl7dmFyIFU9T2JqZWN0LmNyZWF0ZShFLnByb3RvdHlwZSk7Zm9yKHZhciBRIGlu''@;'; + put 'put ''IE1lKVVbUV09TWVbUV07cmV0dXJuIFV9TC5kKEplLHtaOigpPT5tZSxsOigpPT5CfSl9LDI1OTIyOihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0IjtMLmQoSmUse1o6KCk9Plp9KTt2YXIgbWU9e3ZhbHVlOmZ1bmN0aW9uKCl7fX07ZnVuY3Rpb24gQigpe2Zvcih2YXIgVyxpZT0wLGFlPWFyZ3Vt''@;'; + put 'put ''ZW50cy5sZW5ndGgsWT17fTtpZTxhZTsrK2llKXtpZighKFc9YXJndW1lbnRzW2llXSsiIil8fFcgaW4gWXx8L1tccy5dLy50ZXN0KFcpKXRocm93IG5ldyBFcnJvcigiaWxsZWdhbCB0eXBlOiAiK1cpO1lbV109W119cmV0dXJuIG5ldyBFKFkpfWZ1bmN0aW9uIEUoaWUpe3RoaXMuXz1pZX1m''@;'; + put 'put ''dW5jdGlvbiBNZShpZSxhZSl7cmV0dXJuIGllLnRyaW0oKS5zcGxpdCgvXnxccysvKS5tYXAoZnVuY3Rpb24oWSl7dmFyIFc9IiIsTj1ZLmluZGV4T2YoIi4iKTtpZihOPj0wJiYoVz1ZLnNsaWNlKE4rMSksWT1ZLnNsaWNlKDAsTikpLFkmJiFhZS5oYXNPd25Qcm9wZXJ0eShZKSl0aHJvdyBu''@;'; + put 'put ''ZXcgRXJyb3IoInVua25vd24gdHlwZTogIitZKTtyZXR1cm57dHlwZTpZLG5hbWU6V319KX1mdW5jdGlvbiBVKGllLGFlKXtmb3IodmFyIE4sWT0wLFc9aWUubGVuZ3RoO1k8VzsrK1kpaWYoKE49aWVbWV0pLm5hbWU9PT1hZSlyZXR1cm4gTi52YWx1ZX1mdW5jdGlvbiBRKGllLGFlLFkpe2Zv''@;'; + put 'put ''cih2YXIgVz0wLE49aWUubGVuZ3RoO1c8TjsrK1cpaWYoaWVbV10ubmFtZT09PWFlKXtpZVtXXT1tZSxpZT1pZS5zbGljZSgwLFcpLmNvbmNhdChpZS5zbGljZShXKzEpKTticmVha31yZXR1cm4gbnVsbCE9WSYmaWUucHVzaCh7bmFtZTphZSx2YWx1ZTpZfSksaWV9RS5wcm90b3R5cGU9Qi5w''@;'; + put 'put ''cm90b3R5cGU9e2NvbnN0cnVjdG9yOkUsb246ZnVuY3Rpb24oaWUsYWUpe3ZhciBOLFk9dGhpcy5fLFc9TWUoaWUrIiIsWSksZWU9LTEscT1XLmxlbmd0aDtpZighKGFyZ3VtZW50cy5sZW5ndGg8Mikpe2lmKG51bGwhPWFlJiYiZnVuY3Rpb24iIT10eXBlb2YgYWUpdGhyb3cgbmV3IEVycm9y''@;'; + put 'put ''KCJpbnZhbGlkIGNhbGxiYWNrOiAiK2FlKTtmb3IoOysrZWU8cTspaWYoTj0oaWU9V1tlZV0pLnR5cGUpWVtOXT1RKFlbTl0saWUubmFtZSxhZSk7ZWxzZSBpZihudWxsPT1hZSlmb3IoTiBpbiBZKVlbTl09UShZW05dLGllLm5hbWUsbnVsbCk7cmV0dXJuIHRoaXN9Zm9yKDsrK2VlPHE7KWlm''@;'; + put 'put ''KChOPShpZT1XW2VlXSkudHlwZSkmJihOPVUoWVtOXSxpZS5uYW1lKSkpcmV0dXJuIE59LGNvcHk6ZnVuY3Rpb24oKXt2YXIgaWU9e30sYWU9dGhpcy5fO2Zvcih2YXIgWSBpbiBhZSlpZVtZXT1hZVtZXS5zbGljZSgpO3JldHVybiBuZXcgRShpZSl9LGNhbGw6ZnVuY3Rpb24oaWUsYWUpe2lm''@;'; + put 'put ''KChOPWFyZ3VtZW50cy5sZW5ndGgtMik+MClmb3IodmFyIE4sZWUsWT1uZXcgQXJyYXkoTiksVz0wO1c8TjsrK1cpWVtXXT1hcmd1bWVudHNbVysyXTtpZighdGhpcy5fLmhhc093blByb3BlcnR5KGllKSl0aHJvdyBuZXcgRXJyb3IoInVua25vd24gdHlwZTogIitpZSk7Zm9yKFc9MCxOPShl''@;'; + put 'put ''ZT10aGlzLl9baWVdKS5sZW5ndGg7VzxOOysrVyllZVtXXS52YWx1ZS5hcHBseShhZSxZKX0sYXBwbHk6ZnVuY3Rpb24oaWUsYWUsWSl7aWYoIXRoaXMuXy5oYXNPd25Qcm9wZXJ0eShpZSkpdGhyb3cgbmV3IEVycm9yKCJ1bmtub3duIHR5cGU6ICIraWUpO2Zvcih2YXIgVz10aGlzLl9baWVd''@;'; + put 'put ''LE49MCxlZT1XLmxlbmd0aDtOPGVlOysrTilXW05dLnZhbHVlLmFwcGx5KGFlLFkpfX07Y29uc3QgWj1CfSw4NTEwNjooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7TC5yKEplKSxMLmQoSmUse2Rpc3BhdGNoOigpPT5tZS5afSk7dmFyIG1lPUwoMjU5MjIpfSw2NTk5MDooWGUsSmUsTCk9Pnsi''@;'; + put 'put ''dXNlIHN0cmljdCI7ZnVuY3Rpb24gQihUZSxFZSl7aWYoKGhlPShUZT1FZT9UZS50b0V4cG9uZW50aWFsKEVlLTEpOlRlLnRvRXhwb25lbnRpYWwoKSkuaW5kZXhPZigiZSIpKTwwKXJldHVybiBudWxsO3ZhciBoZSxPPVRlLnNsaWNlKDAsaGUpO3JldHVybltPLmxlbmd0aD4xP09bMF0rTy5z''@;'; + put 'put ''bGljZSgyKTpPLCtUZS5zbGljZShoZSsxKV19ZnVuY3Rpb24gRShUZSl7cmV0dXJuKFRlPUIoTWF0aC5hYnMoVGUpKSk/VGVbMV06TmFOfUwucihKZSksTC5kKEplLHtGb3JtYXRTcGVjaWZpZXI6KCk9PmllLGZvcm1hdDooKT0+ZGUsZm9ybWF0RGVmYXVsdExvY2FsZTooKT0+QWUsZm9ybWF0''@;'; + put 'put ''TG9jYWxlOigpPT5vZSxmb3JtYXRQcmVmaXg6KCk9PnZlLGZvcm1hdFNwZWNpZmllcjooKT0+WixwcmVjaXNpb25GaXhlZDooKT0+a2UscHJlY2lzaW9uUHJlZml4OigpPT5TZSxwcmVjaXNpb25Sb3VuZDooKT0+SWV9KTt2YXIgWSxRPS9eKD86KC4pPyhbPD49Xl0pKT8oWytcLSggXSk/KFsk''@;'; + put 'put ''I10pPygwKT8oXGQrKT8oLCk/KFwuXGQrKT8ofik/KFthLXolXSk/JC9pO2Z1bmN0aW9uIFooVGUpe2lmKCEoRWU9US5leGVjKFRlKSkpdGhyb3cgbmV3IEVycm9yKCJpbnZhbGlkIGZvcm1hdDogIitUZSk7dmFyIEVlO3JldHVybiBuZXcgaWUoe2ZpbGw6RWVbMV0sYWxpZ246RWVbMl0sc2ln''@;'; + put 'put ''bjpFZVszXSxzeW1ib2w6RWVbNF0semVybzpFZVs1XSx3aWR0aDpFZVs2XSxjb21tYTpFZVs3XSxwcmVjaXNpb246RWVbOF0mJkVlWzhdLnNsaWNlKDEpLHRyaW06RWVbOV0sdHlwZTpFZVsxMF19KX1mdW5jdGlvbiBpZShUZSl7dGhpcy5maWxsPXZvaWQgMD09PVRlLmZpbGw/IiAiOlRlLmZp''@;'; + put 'put ''bGwrIiIsdGhpcy5hbGlnbj12b2lkIDA9PT1UZS5hbGlnbj8iPiI6VGUuYWxpZ24rIiIsdGhpcy5zaWduPXZvaWQgMD09PVRlLnNpZ24/Ii0iOlRlLnNpZ24rIiIsdGhpcy5zeW1ib2w9dm9pZCAwPT09VGUuc3ltYm9sPyIiOlRlLnN5bWJvbCsiIix0aGlzLnplcm89ISFUZS56ZXJvLHRoaXMu''@;'; + put 'put ''d2lkdGg9dm9pZCAwPT09VGUud2lkdGg/dm9pZCAwOitUZS53aWR0aCx0aGlzLmNvbW1hPSEhVGUuY29tbWEsdGhpcy5wcmVjaXNpb249dm9pZCAwPT09VGUucHJlY2lzaW9uP3ZvaWQgMDorVGUucHJlY2lzaW9uLHRoaXMudHJpbT0hIVRlLnRyaW0sdGhpcy50eXBlPXZvaWQgMD09PVRlLnR5''@;'; + put 'put ''cGU/IiI6VGUudHlwZSsiIn1mdW5jdGlvbiBOKFRlLEVlKXt2YXIgaGU9QihUZSxFZSk7aWYoIWhlKXJldHVybiBUZSsiIjt2YXIgTz1oZVswXSx6PWhlWzFdO3JldHVybiB6PDA/IjAuIituZXcgQXJyYXkoLXopLmpvaW4oIjAiKStPOk8ubGVuZ3RoPnorMT9PLnNsaWNlKDAseisxKSsiLiIr''@;'; + put 'put ''Ty5zbGljZSh6KzEpOk8rbmV3IEFycmF5KHotTy5sZW5ndGgrMikuam9pbigiMCIpfVoucHJvdG90eXBlPWllLnByb3RvdHlwZSxpZS5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maWxsK3RoaXMuYWxpZ24rdGhpcy5zaWduK3RoaXMuc3ltYm9sKyh0aGlzLnpl''@;'; + put 'put ''cm8/IjAiOiIiKSsodm9pZCAwPT09dGhpcy53aWR0aD8iIjpNYXRoLm1heCgxLDB8dGhpcy53aWR0aCkpKyh0aGlzLmNvbW1hPyIsIjoiIikrKHZvaWQgMD09PXRoaXMucHJlY2lzaW9uPyIiOiIuIitNYXRoLm1heCgwLDB8dGhpcy5wcmVjaXNpb24pKSsodGhpcy50cmltPyJ+IjoiIikrdGhp''@;'; + put 'put ''cy50eXBlfTtjb25zdCBlZT17IiUiOmZ1bmN0aW9uKFRlLEVlKXtyZXR1cm4oMTAwKlRlKS50b0ZpeGVkKEVlKX0sYjpmdW5jdGlvbihUZSl7cmV0dXJuIE1hdGgucm91bmQoVGUpLnRvU3RyaW5nKDIpfSxjOmZ1bmN0aW9uKFRlKXtyZXR1cm4gVGUrIiJ9LGQ6ZnVuY3Rpb24gbWUoVGUpe3Jl''@;'; + put 'put ''dHVybiBNYXRoLmFicyhUZT1NYXRoLnJvdW5kKFRlKSk+PTFlMjE/VGUudG9Mb2NhbGVTdHJpbmcoImVuIikucmVwbGFjZSgvLC9nLCIiKTpUZS50b1N0cmluZygxMCl9LGU6ZnVuY3Rpb24oVGUsRWUpe3JldHVybiBUZS50b0V4cG9uZW50aWFsKEVlKX0sZjpmdW5jdGlvbihUZSxFZSl7cmV0''@;'; + put 'put ''dXJuIFRlLnRvRml4ZWQoRWUpfSxnOmZ1bmN0aW9uKFRlLEVlKXtyZXR1cm4gVGUudG9QcmVjaXNpb24oRWUpfSxvOmZ1bmN0aW9uKFRlKXtyZXR1cm4gTWF0aC5yb3VuZChUZSkudG9TdHJpbmcoOCl9LHA6ZnVuY3Rpb24oVGUsRWUpe3JldHVybiBOKDEwMCpUZSxFZSl9LHI6TixzOmZ1bmN0''@;'; + put 'put ''aW9uIFcoVGUsRWUpe3ZhciBoZT1CKFRlLEVlKTtpZighaGUpcmV0dXJuIFRlKyIiO3ZhciBPPWhlWzBdLHo9aGVbMV0sbmU9ei0oWT0zKk1hdGgubWF4KC04LE1hdGgubWluKDgsTWF0aC5mbG9vcih6LzMpKSkpKzEsdGU9Ty5sZW5ndGg7cmV0dXJuIG5lPT09dGU/TzpuZT50ZT9PK25ldyBB''@;'; + put 'put ''cnJheShuZS10ZSsxKS5qb2luKCIwIik6bmU+MD9PLnNsaWNlKDAsbmUpKyIuIitPLnNsaWNlKG5lKToiMC4iK25ldyBBcnJheSgxLW5lKS5qb2luKCIwIikrQihUZSxNYXRoLm1heCgwLEVlK25lLTEpKVswXX0sWDpmdW5jdGlvbihUZSl7cmV0dXJuIE1hdGgucm91bmQoVGUpLnRvU3RyaW5n''@;'; + put 'put ''KDE2KS50b1VwcGVyQ2FzZSgpfSx4OmZ1bmN0aW9uKFRlKXtyZXR1cm4gTWF0aC5yb3VuZChUZSkudG9TdHJpbmcoMTYpfX07ZnVuY3Rpb24gcShUZSl7cmV0dXJuIFRlfXZhciBjZSxkZSx2ZSxKPUFycmF5LnByb3RvdHlwZS5tYXAsc2U9WyJ5IiwieiIsImEiLCJmIiwicCIsIm4iLCJceGI1''@;'; + put 'put ''IiwibSIsIiIsImsiLCJNIiwiRyIsIlQiLCJQIiwiRSIsIloiLCJZIl07ZnVuY3Rpb24gb2UoVGUpe3ZhciBFZT12b2lkIDA9PT1UZS5ncm91cGluZ3x8dm9pZCAwPT09VGUudGhvdXNhbmRzP3E6ZnVuY3Rpb24gTWUoVGUsRWUpe3JldHVybiBmdW5jdGlvbihoZSxPKXtmb3IodmFyIHo9aGUu''@;'; + put 'put ''bGVuZ3RoLG5lPVtdLHRlPTAseD1UZVswXSxQPTA7ej4wJiZ4PjAmJihQK3grMT5PJiYoeD1NYXRoLm1heCgxLE8tUCkpLG5lLnB1c2goaGUuc3Vic3RyaW5nKHotPXgseit4KSksISgoUCs9eCsxKT5PKSk7KXg9VGVbdGU9KHRlKzEpJVRlLmxlbmd0aF07cmV0dXJuIG5lLnJldmVyc2UoKS5q''@;'; + put 'put ''b2luKEVlKX19KEouY2FsbChUZS5ncm91cGluZyxOdW1iZXIpLFRlLnRob3VzYW5kcysiIiksaGU9dm9pZCAwPT09VGUuY3VycmVuY3k/IiI6VGUuY3VycmVuY3lbMF0rIiIsTz12b2lkIDA9PT1UZS5jdXJyZW5jeT8iIjpUZS5jdXJyZW5jeVsxXSsiIix6PXZvaWQgMD09PVRlLmRlY2ltYWw/''@;'; + put 'put ''Ii4iOlRlLmRlY2ltYWwrIiIsbmU9dm9pZCAwPT09VGUubnVtZXJhbHM/cTpmdW5jdGlvbiBVKFRlKXtyZXR1cm4gZnVuY3Rpb24oRWUpe3JldHVybiBFZS5yZXBsYWNlKC9bMC05XS9nLGZ1bmN0aW9uKGhlKXtyZXR1cm4gVGVbK2hlXX0pfX0oSi5jYWxsKFRlLm51bWVyYWxzLFN0cmluZykp''@;'; + put 'put ''LHRlPXZvaWQgMD09PVRlLnBlcmNlbnQ/IiUiOlRlLnBlcmNlbnQrIiIseD12b2lkIDA9PT1UZS5taW51cz8iLSI6VGUubWludXMrIiIsUD12b2lkIDA9PT1UZS5uYW4/Ik5hTiI6VGUubmFuKyIiO2Z1bmN0aW9uIFYoUyl7dmFyIEY9KFM9WihTKSkuZmlsbCx5ZT1TLmFsaWduLENlPVMuc2ln''@;'; + put 'put ''bixEZT1TLnN5bWJvbCxQZT1TLnplcm8sUWU9Uy53aWR0aCwkZT1TLmNvbW1hLGd0PVMucHJlY2lzaW9uLHd0PVMudHJpbSxtdD1TLnR5cGU7Im4iPT09bXQ/KCRlPSEwLG10PSJnIik6ZWVbbXRdfHwodm9pZCAwPT09Z3QmJihndD0xMiksd3Q9ITAsbXQ9ImciKSwoUGV8fCIwIj09PUYmJiI9''@;'; + put 'put ''Ij09PXllKSYmKFBlPSEwLEY9IjAiLHllPSI9Iik7dmFyIHZ0PSIkIj09PURlP2hlOiIjIj09PURlJiYvW2JveFhdLy50ZXN0KG10KT8iMCIrbXQudG9Mb3dlckNhc2UoKToiIixBdD0iJCI9PT1EZT9POi9bJXBdLy50ZXN0KG10KT90ZToiIixodD1lZVttdF0sQnQ9L1tkZWZncHJzJV0vLnRl''@;'; + put 'put ''c3QobXQpO2Z1bmN0aW9uIG9uKF90KXt2YXIgYXQsTHQsQ3QsdHQ9dnQsZXQ9QXQ7aWYoImMiPT09bXQpZXQ9aHQoX3QpK2V0LF90PSIiO2Vsc2V7dmFyIGZ0PShfdD0rX3QpPDB8fDEvX3Q8MDtpZihfdD1pc05hTihfdCk/UDpodChNYXRoLmFicyhfdCksZ3QpLHd0JiYoX3Q9ZnVuY3Rpb24g''@;'; + put 'put ''YWUoVGUpe2U6Zm9yKHZhciB6LEVlPVRlLmxlbmd0aCxoZT0xLE89LTE7aGU8RWU7KytoZSlzd2l0Y2goVGVbaGVdKXtjYXNlIi4iOk89ej1oZTticmVhaztjYXNlIjAiOjA9PT1PJiYoTz1oZSksej1oZTticmVhaztkZWZhdWx0OmlmKCErVGVbaGVdKWJyZWFrIGU7Tz4wJiYoTz0wKX1yZXR1''@;'; + put 'put ''cm4gTz4wP1RlLnNsaWNlKDAsTykrVGUuc2xpY2UoeisxKTpUZX0oX3QpKSxmdCYmMD09K190JiYiKyIhPT1DZSYmKGZ0PSExKSx0dD0oZnQ/IigiPT09Q2U/Q2U6eDoiLSI9PT1DZXx8IigiPT09Q2U/IiI6Q2UpK3R0LGV0PSgicyI9PT1tdD9zZVs4K1kvM106IiIpK2V0KyhmdCYmIigiPT09''@;'; + put 'put ''Q2U/IikiOiIiKSxCdClmb3IoYXQ9LTEsTHQ9X3QubGVuZ3RoOysrYXQ8THQ7KWlmKDQ4PihDdD1fdC5jaGFyQ29kZUF0KGF0KSl8fEN0PjU3KXtldD0oNDY9PT1DdD96K190LnNsaWNlKGF0KzEpOl90LnNsaWNlKGF0KSkrZXQsX3Q9X3Quc2xpY2UoMCxhdCk7YnJlYWt9fSRlJiYhUGUmJihf''@;'; + put 'put ''dD1FZShfdCwxLzApKTt2YXIgSHQ9dHQubGVuZ3RoK190Lmxlbmd0aCtldC5sZW5ndGgsR2U9SHQ8UWU/bmV3IEFycmF5KFFlLUh0KzEpLmpvaW4oRik6IiI7c3dpdGNoKCRlJiZQZSYmKF90PUVlKEdlK190LEdlLmxlbmd0aD9RZS1ldC5sZW5ndGg6MS8wKSxHZT0iIikseWUpe2Nhc2UiPCI6''@;'; + put 'put ''X3Q9dHQrX3QrZXQrR2U7YnJlYWs7Y2FzZSI9IjpfdD10dCtHZStfdCtldDticmVhaztjYXNlIl4iOl90PUdlLnNsaWNlKDAsSHQ9R2UubGVuZ3RoPj4xKSt0dCtfdCtldCtHZS5zbGljZShIdCk7YnJlYWs7ZGVmYXVsdDpfdD1HZSt0dCtfdCtldH1yZXR1cm4gbmUoX3QpfXJldHVybiBndD12''@;'; + put 'put ''b2lkIDA9PT1ndD82Oi9bZ3Byc10vLnRlc3QobXQpP01hdGgubWF4KDEsTWF0aC5taW4oMjEsZ3QpKTpNYXRoLm1heCgwLE1hdGgubWluKDIwLGd0KSksb24udG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gUysiIn0sb259cmV0dXJue2Zvcm1hdDpWLGZvcm1hdFByZWZpeDpmdW5jdGlvbiBU''@;'; + put 'put ''KFMsRil7dmFyIHllPVYoKChTPVooUykpLnR5cGU9ImYiLFMpKSxDZT0zKk1hdGgubWF4KC04LE1hdGgubWluKDgsTWF0aC5mbG9vcihFKEYpLzMpKSksRGU9TWF0aC5wb3coMTAsLUNlKSxQZT1zZVs4K0NlLzNdO3JldHVybiBmdW5jdGlvbihRZSl7cmV0dXJuIHllKERlKlFlKStQZX19fX1m''@;'; + put 'put ''dW5jdGlvbiBBZShUZSl7cmV0dXJuIGNlPW9lKFRlKSxkZT1jZS5mb3JtYXQsdmU9Y2UuZm9ybWF0UHJlZml4LGNlfWZ1bmN0aW9uIGtlKFRlKXtyZXR1cm4gTWF0aC5tYXgoMCwtRShNYXRoLmFicyhUZSkpKX1mdW5jdGlvbiBTZShUZSxFZSl7cmV0dXJuIE1hdGgubWF4KDAsMypNYXRoLm1h''@;'; + put 'put ''eCgtOCxNYXRoLm1pbig4LE1hdGguZmxvb3IoRShFZSkvMykpKS1FKE1hdGguYWJzKFRlKSkpfWZ1bmN0aW9uIEllKFRlLEVlKXtyZXR1cm4gVGU9TWF0aC5hYnMoVGUpLEVlPU1hdGguYWJzKEVlKS1UZSxNYXRoLm1heCgwLEUoRWUpLUUoVGUpKSsxfUFlKHtkZWNpbWFsOiIuIix0aG91c2Fu''@;'; + put 'put ''ZHM6IiwiLGdyb3VwaW5nOlszXSxjdXJyZW5jeTpbIiQiLCIiXSxtaW51czoiLSJ9KX0sOTkyMTpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUsQixFLE1lLFUsUSxaLGllLGFlLFkpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBXKG1uKXt2YXIgdW49e30sY249bW4ubm9kZSgpLm5vZGVO''@;'; + put 'put ''YW1lO3VuLnRhZz1jbiwiI3RleHQiPT1jbj91bi50ZXh0PW1uLnRleHQoKToiI2NvbW1lbnQiPT1jbiYmKHVuLmNvbW1lbnQ9bW4udGV4dCgpKSx1bi5hdHRyaWJ1dGVzPXt9O3ZhciBfbj1tbi5ub2RlKCkuYXR0cmlidXRlcztpZihfbilmb3IodmFyIEd0PTA7R3Q8X24ubGVuZ3RoO0d0Kysp''@;'; + put 'put ''e3ZhciBrbj1fbltHdF07dW4uYXR0cmlidXRlc1trbi5uYW1lXT1rbi52YWx1ZX12YXIgb3IsSW49bW4ubm9kZSgpLnRyYW5zZm9ybTtpZihJbiYmMCE9SW4uYmFzZVZhbC5udW1iZXJPZkl0ZW1zKXt2YXIgSm49SW4uYmFzZVZhbC5jb25zb2xpZGF0ZSgpLm1hdHJpeDt1bi50cmFuc2xhdGlv''@;'; + put 'put ''bj17eDpKbi5lLHk6Sm4uZn0sdW4uc2NhbGU9Sm4uYX1pZigiZWxsaXBzZSI9PWNuJiYodW4uY2VudGVyPXt4OnVuLmF0dHJpYnV0ZXMuY3gseTp1bi5hdHRyaWJ1dGVzLmN5fSksInBvbHlnb24iPT1jbil7dmFyIGdyPShvcj1tbi5hdHRyKCJwb2ludHMiKS5zcGxpdCgiICIpKS5tYXAoZnVu''@;'; + put 'put ''Y3Rpb24objApe3JldHVybiBuMC5zcGxpdCgiLCIpWzBdfSksS3I9b3IubWFwKGZ1bmN0aW9uKG4wKXtyZXR1cm4gbjAuc3BsaXQoIiwiKVsxXX0pLFZyPU1hdGgubWluLmFwcGx5KG51bGwsZ3IpLGlpPU1hdGgubWF4LmFwcGx5KG51bGwsZ3IpLFJyPU1hdGgubWluLmFwcGx5KG51bGwsS3Ip''@;'; + put 'put ''LGxpPU1hdGgubWF4LmFwcGx5KG51bGwsS3IpO3VuLmJib3g9e3g6VnIseTpScix3aWR0aDppaS1WcixoZWlnaHQ6bGktUnJ9LHVuLmNlbnRlcj17eDooVnIraWkpLzIseTooUnIrbGkpLzJ9fXJldHVybiJwYXRoIj09Y24mJigob3I9bW4uYXR0cigiZCIpLnNwbGl0KC9bQS1aIF0vKSkuc2hp''@;'; + put 'put ''ZnQoKSxncj1vci5tYXAoZnVuY3Rpb24oY2Epe3JldHVybitjYS5zcGxpdCgiLCIpWzBdfSksS3I9b3IubWFwKGZ1bmN0aW9uKGNhKXtyZXR1cm4rY2Euc3BsaXQoIiwiKVsxXX0pLFZyPU1hdGgubWluLmFwcGx5KG51bGwsZ3IpLGlpPU1hdGgubWF4LmFwcGx5KG51bGwsZ3IpLFJyPU1hdGgu''@;'; + put 'put ''bWluLmFwcGx5KG51bGwsS3IpLGxpPU1hdGgubWF4LmFwcGx5KG51bGwsS3IpLHVuLmJib3g9e3g6VnIseTpScix3aWR0aDppaS1WcixoZWlnaHQ6bGktUnJ9LHVuLmNlbnRlcj17eDooVnIraWkpLzIseTooUnIrbGkpLzJ9LHVuLnRvdGFsTGVuZ3RoPW1uLm5vZGUoKS5nZXRUb3RhbExlbmd0''@;'; + put 'put ''aCgpKSwidGV4dCI9PWNuJiYodW4uY2VudGVyPXt4Om1uLmF0dHIoIngiKSx5Om1uLmF0dHIoInkiKX0pLCIjdGV4dCI9PWNuP3VuLnRleHQ9bW4udGV4dCgpOiIjY29tbWVudCI9PWNuJiYodW4uY29tbWVudD1tbi50ZXh0KCkpLHVufWZ1bmN0aW9uIE4obW4pe3ZhciB1bj1XKG1uKTtyZXR1''@;'; + put 'put ''cm4gdW4uY2hpbGRyZW49W10sQi5zZWxlY3RBbGwobW4ubm9kZSgpLmNoaWxkTm9kZXMpLmVhY2goZnVuY3Rpb24oKXt2YXIgX249TihCLnNlbGVjdCh0aGlzKSk7X24ucGFyZW50PXVuLHVuLmNoaWxkcmVuLnB1c2goX24pfSksdW59ZnVuY3Rpb24gZWUobW4pe3JldHVybiIjdGV4dCI9PW1u''@;'; + put 'put ''LnRhZz9kb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiIik6IiNjb21tZW50Ij09bW4udGFnP2RvY3VtZW50LmNyZWF0ZUNvbW1lbnQobW4uY29tbWVudCk6ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsbW4udGFnKX1mdW5jdGlvbiBxKG1uKXt2''@;'; + put 'put ''YXIgdW49ZWUobW4pLGNuPUIuc2VsZWN0KHVuKSxfbj1tbi5hdHRyaWJ1dGVzLEd0PSEwLGtuPSExLFZuPXZvaWQgMDt0cnl7Zm9yKHZhciBJbixlbj1PYmplY3Qua2V5cyhfbilbU3ltYm9sLml0ZXJhdG9yXSgpOyEoR3Q9KEluPWVuLm5leHQoKSkuZG9uZSk7R3Q9ITApe3ZhciBKbj1Jbi52''@;'; + put 'put ''YWx1ZTtjbi5hdHRyKEpuLF9uW0puXSl9fWNhdGNoKGdyKXtrbj0hMCxWbj1ncn1maW5hbGx5e3RyeXshR3QmJmVuLnJldHVybiYmZW4ucmV0dXJuKCl9ZmluYWxseXtpZihrbil0aHJvdyBWbn19cmV0dXJuIHVufWZ1bmN0aW9uIEoobW4sdW4pe3ZhciBjbj1CLnNlbGVjdChtbi5ub2RlKCku''@;'; + put 'put ''cGFyZW50Tm9kZSksX249cSh1biksR3Q9Y24uaW5zZXJ0KGZ1bmN0aW9uKCl7cmV0dXJuIF9ufSxmdW5jdGlvbigpe3JldHVybiBtbi5ub2RlKCl9KTtyZXR1cm4gbW4ucmVtb3ZlKCksR3R9ZnVuY3Rpb24gb2UobW4sdW4peyhmdW5jdGlvbiBzZShtbix1bil7bW4uZGF0dW0odW4pLG1uLmRh''@;'; + put 'put ''dGEoW3VuXSxmdW5jdGlvbihjbil7cmV0dXJuIGNuLmtleX0pfSkobW4sdW4pLEIuc2VsZWN0QWxsKG1uLm5vZGUoKS5jaGlsZE5vZGVzKS5lYWNoKGZ1bmN0aW9uKF9uLEd0KXtvZShCLnNlbGVjdCh0aGlzKSx1bi5jaGlsZHJlbltHdF0pfSl9ZnVuY3Rpb24gY2UobW4sdW4pe3ZhciBjbj1t''@;'; + put 'put ''bi5zZWxlY3RBbGwoZnVuY3Rpb24oKXtyZXR1cm4gbW4ubm9kZSgpLmNoaWxkTm9kZXN9KSxfbj0oY249Y24uZGF0YShmdW5jdGlvbihWbil7cmV0dXJuIFZuLmNoaWxkcmVufSxmdW5jdGlvbihWbil7cmV0dXJuIFZuLnRhZysiLSIrdW59KSkuZW50ZXIoKS5hcHBlbmQoZnVuY3Rpb24oVm4p''@;'; + put 'put ''e3JldHVybiBlZShWbil9KSxHdD1jbi5leGl0KCk7R3Q9R3QucmVtb3ZlKCksY249X24ubWVyZ2UoY24pO3ZhciBrbj17fTtjbi5lYWNoKGZ1bmN0aW9uKFZuKXt2YXIgZW49Vm4udGFnO251bGw9PWtuW2VuXSYmKGtuW2VuXT0wKTt2YXIgSW49a25bZW5dKys7ZGUuY2FsbCh0aGlzLFZuLElu''@;'; + put 'put ''KX0pfWZ1bmN0aW9uIGRlKG1uKXt2YXIgdW49YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOjAsY249Qi5zZWxlY3QodGhpcyksR3Q9bW4uYXR0cmlidXRlcyxrbj1jbi5ub2RlKCkuYXR0cmlidXRlcztpZihrbilmb3IodmFyIFZuPTA7Vm48''@;'; + put 'put ''a24ubGVuZ3RoO1ZuKyspe3ZhciBlbj1rbltWbl0sSW49ZW4ubmFtZTtpZigieG1sbnMiIT1Jbi5zcGxpdCgiOiIpWzBdJiZlbi5uYW1lc3BhY2VVUkkpe3ZhciBKbj1lbi5uYW1lc3BhY2VVUkkuc3BsaXQoIi8iKTtJbj1KbltKbi5sZW5ndGgtMV0rIjoiK0lufUluIGluIEd0fHwoR3RbSW5d''@;'; + put 'put ''PW51bGwpfXZhciBncj0hMCxLcj0hMSxWcj12b2lkIDA7dHJ5e2Zvcih2YXIgUnIsaWk9T2JqZWN0LmtleXMoR3QpW1N5bWJvbC5pdGVyYXRvcl0oKTshKGdyPShScj1paS5uZXh0KCkpLmRvbmUpO2dyPSEwKXt2YXIgbGk9UnIudmFsdWU7Y24uYXR0cihsaSxHdFtsaV0pfX1jYXRjaChNaSl7''@;'; + put 'put ''S3I9ITAsVnI9TWl9ZmluYWxseXt0cnl7IWdyJiZpaS5yZXR1cm4mJmlpLnJldHVybigpfWZpbmFsbHl7aWYoS3IpdGhyb3cgVnJ9fW1uLnRleHQmJmNuLnRleHQobW4udGV4dCksY2UoY24sdW4pfWZ1bmN0aW9uIHZlKG1uKXtyZXR1cm4gT2JqZWN0LmFzc2lnbih7fSxtbil9ZnVuY3Rpb24g''@;'; + put 'put ''QWUobW4pe3JldHVybiBNYXRoLnJvdW5kKDFlNCptbikvMWU0fWZ1bmN0aW9uIFNlKCl7dmFyIGNuPUIuc2VsZWN0KHRoaXMuX3NlbGVjdGlvbi5ub2RlKCkucXVlcnlTZWxlY3Rvcigic3ZnIikpO2lmKDA9PWNuLnNpemUoKSlyZXR1cm4gdGhpczt0aGlzLl96b29tU2VsZWN0aW9uPWNuO3Zh''@;'; + put 'put ''ciBfbj1aLnpvb20oKS5zY2FsZUV4dGVudCh0aGlzLl9vcHRpb25zLnpvb21TY2FsZUV4dGVudCkudHJhbnNsYXRlRXh0ZW50KHRoaXMuX29wdGlvbnMuem9vbVRyYW5zbGF0ZUV4dGVudCkuaW50ZXJwb2xhdGUoUS5pbnRlcnBvbGF0ZSkub24oInpvb20iLGZ1bmN0aW9uIG1uKCl7Qi5zZWxl''@;'; + put 'put ''Y3QoY24ubm9kZSgpLnF1ZXJ5U2VsZWN0b3IoImciKSkuYXR0cigidHJhbnNmb3JtIixCLmV2ZW50LnRyYW5zZm9ybSl9KTt0aGlzLl96b29tQmVoYXZpb3I9X247dmFyIEd0PUIuc2VsZWN0KGNuLm5vZGUoKS5xdWVyeVNlbGVjdG9yKCJnIikpO3JldHVybiBjbi5jYWxsKF9uKSx0aGlzLl9h''@;'; + put 'put ''Y3RpdmV8fFRlLmNhbGwodGhpcyxHdCksdGhpcy5fb3JpZ2luYWxUcmFuc2Zvcm09Wi56b29tVHJhbnNmb3JtKGNuLm5vZGUoKSksdGhpc31mdW5jdGlvbiBJZShtbil7dmFyIHVuPXRoaXMuX3RyYW5zbGF0aW9uLGNuPXRoaXMuX3NjYWxlLF9uPW1uLmRhdHVtKCkudHJhbnNsYXRpb24sR3Q9''@;'; + put 'put ''bW4uZGF0dW0oKS5zY2FsZSxrbj1aLnpvb21UcmFuc2Zvcm0odGhpcy5fem9vbVNlbGVjdGlvbi5ub2RlKCkpO3JldHVybiB1biYmKGtuPShrbj1rbi5zY2FsZSgxL2NuKSkudHJhbnNsYXRlKC11bi54LC11bi55KSksKGtuPWtuLnRyYW5zbGF0ZShfbi54LF9uLnkpKS5zY2FsZShHdCl9ZnVu''@;'; + put 'put ''Y3Rpb24gVGUobW4pe3RoaXMuX3pvb21CZWhhdmlvci50cmFuc2Zvcm0odGhpcy5fem9vbVNlbGVjdGlvbixJZS5jYWxsKHRoaXMsbW4pKSx0aGlzLl90cmFuc2xhdGlvbj1tbi5kYXR1bSgpLnRyYW5zbGF0aW9uLHRoaXMuX3NjYWxlPW1uLmRhdHVtKCkuc2NhbGUsdGhpcy5fb3JpZ2luYWxU''@;'; + put 'put ''cmFuc2Zvcm09Wi56b29tSWRlbnRpdHkudHJhbnNsYXRlKG1uLmRhdHVtKCkudHJhbnNsYXRpb24ueCxtbi5kYXR1bSgpLnRyYW5zbGF0aW9uLnkpLnNjYWxlKG1uLmRhdHVtKCkuc2NhbGUpfWZ1bmN0aW9uIHRlKG1uLHVuKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgY249bW4ubWFwKGZ1bmN0''@;'; + put 'put ''aW9uKF9uKXtyZXR1cm4gUS5pbnRlcnBvbGF0ZShbX25bMF1bMF0sX25bMF1bMV1dLFtfblsxXVswXSxfblsxXVsxXV0pfSk7cmV0dXJuIGZ1bmN0aW9uKF9uKXtyZXR1cm4gX248MT8iTSIrY24ubWFwKGZ1bmN0aW9uKEd0KXtyZXR1cm4gR3QoX24pfSkuam9pbigiTCIpOnVufX19ZnVuY3Rp''@;'; + put 'put ''b24gVihtbil7cmV0dXJuImVkZ2UiPT1tbi5hdHRyaWJ1dGVzLmNsYXNzfHwiYSI9PW1uLnRhZyYmImciPT1tbi5wYXJlbnQudGFnJiYiZWRnZSI9PW1uLnBhcmVudC5wYXJlbnQuYXR0cmlidXRlcy5jbGFzc31mdW5jdGlvbiBUKG1uKXtyZXR1cm4gbW4ucGFyZW50JiZWKG1uLnBhcmVudCl9''@;'; + put 'put ''ZnVuY3Rpb24gQ2UobW4pe3ZhciB1bj10aGlzLl90cmFuc2l0aW9uLGNuPXRoaXMuX29wdGlvbnMuZmFkZSYmbnVsbCE9dW4sX249dGhpcy5fb3B0aW9ucy50d2VlblBhdGhzLEd0PXRoaXMuX29wdGlvbnMudHdlZW5TaGFwZXMsa249dGhpcy5fb3B0aW9ucy5jb252ZXJ0RXF1YWxTaWRlZFBv''@;'; + put 'put ''bHlnb25zLFZuPXRoaXMuX29wdGlvbnMuZ3Jvd0VudGVyaW5nRWRnZXMmJm51bGwhPXVuLGVuPXRoaXMuX2F0dHJpYnV0ZXIsSW49dGhpcztmdW5jdGlvbiBvcihScil7dmFyIGxpPUIuc2VsZWN0KHRoaXMpO2lmKCJzdmciPT1Sci50YWcpe3ZhciBNaT1Jbi5fb3B0aW9ucztpZihudWxsIT1N''@;'; + put 'put ''aS53aWR0aHx8bnVsbCE9TWkuaGVpZ2h0KXt2YXIgbzA9TWkud2lkdGgsbjA9TWkuaGVpZ2h0O251bGw9PW8wP28wPTQqUnIuYXR0cmlidXRlcy53aWR0aC5yZXBsYWNlKCJwdCIsIiIpLzM6KGxpLmF0dHIoIndpZHRoIixvMCksUnIuYXR0cmlidXRlcy53aWR0aD1vMCksbnVsbD09bjA/bjA9''@;'; + put 'put ''NCpSci5hdHRyaWJ1dGVzLmhlaWdodC5yZXBsYWNlKCJwdCIsIiIpLzM6KGxpLmF0dHIoImhlaWdodCIsbjApLFJyLmF0dHJpYnV0ZXMuaGVpZ2h0PW4wKSxNaS5maXR8fChsaS5hdHRyKCJ2aWV3Qm94IiwiMCAwICIrMypvMC80L01pLnNjYWxlKyIgIiszKm4wLzQvTWkuc2NhbGUpLFJyLmF0''@;'; + put 'put ''dHJpYnV0ZXMudmlld0JveD0iMCAwICIrMypvMC80L01pLnNjYWxlKyIgIiszKm4wLzQvTWkuc2NhbGUpfTEhPU1pLnNjYWxlJiYoTWkuZml0fHxudWxsPT1NaS53aWR0aCYmbnVsbD09TWkuaGVpZ2h0KSYmKG8wPVJyLmF0dHJpYnV0ZXMudmlld0JveC5zcGxpdCgiICIpWzJdLG4wPVJyLmF0''@;'; + put 'put ''dHJpYnV0ZXMudmlld0JveC5zcGxpdCgiICIpWzNdLGxpLmF0dHIoInZpZXdCb3giLCIwIDAgIitvMC9NaS5zY2FsZSsiICIrbjAvTWkuc2NhbGUpLFJyLmF0dHJpYnV0ZXMudmlld0JveD0iMCAwICIrbzAvTWkuc2NhbGUrIiAiK24wL01pLnNjYWxlKX1lbiYmbGkuZWFjaChlbik7dmFyIGQw''@;'; + put 'put ''PVJyLnRhZyxtMD1Sci5hdHRyaWJ1dGVzLEcwPWxpLm5vZGUoKS5hdHRyaWJ1dGVzO2lmKEcwKWZvcih2YXIgRGk9MDtEaTxHMC5sZW5ndGg7RGkrKyl7dmFyIFcwPUcwW0RpXSxFbz1XMC5uYW1lO2lmKCJ4bWxucyIhPUVvLnNwbGl0KCI6IilbMF0mJlcwLm5hbWVzcGFjZVVSSSl7dmFyIHFv''@;'; + put 'put ''PVcwLm5hbWVzcGFjZVVSSS5zcGxpdCgiLyIpO0VvPXFvW3FvLmxlbmd0aC0xXSsiOiIrRW99RW8gaW4gbTB8fChtMFtFb109bnVsbCl9dmFyIGxsPSExLFFpPSExO2lmKEd0JiZ1bil7aWYoKCJwb2x5Z29uIj09dGhpcy5ub2RlTmFtZXx8ImVsbGlwc2UiPT10aGlzLm5vZGVOYW1lKSYmUnIu''@;'; + put 'put ''YWx0ZXJuYXRpdmVPbGQmJihRaT0hMCksKCJwb2x5Z29uIj09ZDB8fCJlbGxpcHNlIj09ZDApJiZSci5hbHRlcm5hdGl2ZU5ldyYmKGxsPSEwKSwicG9seWdvbiI9PXRoaXMubm9kZU5hbWUmJiJwb2x5Z29uIj09ZDApe3ZhciBNYT1XKGxpKTtpZigha24pe3ZhciBnbD1NYS5hdHRyaWJ1dGVz''@;'; + put 'put ''LnBvaW50cy5zcGxpdCgiICIpLmxlbmd0aDsoQWk9UnIuYXR0cmlidXRlcy5wb2ludHMpLnNwbGl0KCIgIikubGVuZ3RoPT1nbCYmKGxsPSExLFFpPSExKX19aWYoUWkpe3ZhciBzYT1KKGxpLFJyLmFsdGVybmF0aXZlT2xkKTtzYS5kYXRhKFtScl0sZnVuY3Rpb24oKXtyZXR1cm4gUnIua2V5''@;'; + put 'put ''fSksbGk9c2F9bGwmJihkMD0icGF0aCIsbTA9UnIuYWx0ZXJuYXRpdmVOZXcuYXR0cmlidXRlcyl9dmFyIF9pPWxpO2lmKHVuJiYoX2k9X2kudHJhbnNpdGlvbih1biksY24mJl9pLmZpbHRlcihmdW5jdGlvbihRMil7cmV0dXJuIiMiPT1RMi50YWdbMF0/bnVsbDp0aGlzfSkuc3R5bGUoIm9w''@;'; + put 'put ''YWNpdHkiLDEpLF9pLmZpbHRlcihmdW5jdGlvbihRMil7cmV0dXJuIiMiPT1RMi50YWdbMF0/bnVsbDp0aGlzfSkub24oImVuZCIsZnVuY3Rpb24oKXtCLnNlbGVjdCh0aGlzKS5hdHRyKCJzdHlsZSIsbnVsbCl9KSksVm4mJiJwYXRoIj09ZDAmJlJyLm9mZnNldCl7dmFyIEhjPVJyLnRvdGFs''@;'; + put 'put ''TGVuZ3RoO2xpLmF0dHIoInN0cm9rZS1kYXNoYXJyYXkiLEhjKyIgIitIYykuYXR0cigic3Ryb2tlLWRhc2hvZmZzZXQiLEhjKS5hdHRyKCJ0cmFuc2Zvcm0iLCJ0cmFuc2xhdGUoIitSci5vZmZzZXQueCsiLCIrUnIub2Zmc2V0LnkrIikiKSxtMFsic3Ryb2tlLWRhc2hvZmZzZXQiXT0wLG0w''@;'; + put 'put ''LnRyYW5zZm9ybT0idHJhbnNsYXRlKDAsMCkiLF9pLmF0dHIoInN0cm9rZS1kYXNob2Zmc2V0IixtMFsic3Ryb2tlLWRhc2hvZmZzZXQiXSkuYXR0cigidHJhbnNmb3JtIixtMC50cmFuc2Zvcm0pLm9uKCJzdGFydCIsZnVuY3Rpb24oKXtCLnNlbGVjdCh0aGlzKS5zdHlsZSgib3BhY2l0eSIs''@;'; + put 'put ''bnVsbCl9KS5vbigiZW5kIixmdW5jdGlvbigpe0Iuc2VsZWN0KHRoaXMpLmF0dHIoInN0cm9rZS1kYXNob2Zmc2V0IixudWxsKS5hdHRyKCJzdHJva2UtZGFzaGFycmF5IixudWxsKS5hdHRyKCJ0cmFuc2Zvcm0iLG51bGwpfSl9aWYoVm4mJiJwb2x5Z29uIj09ZDAmJlQoUnIpJiZSci5vZmZz''@;'; + put 'put ''ZXQpe3ZhciBScz1CLnNlbGVjdChsaS5ub2RlKCkucGFyZW50Tm9kZS5xdWVyeVNlbGVjdG9yKCJwYXRoIikpLFgwPVJzLm5vZGUoKS5nZXRQb2ludEF0TGVuZ3RoKDApLHVhPVJzLm5vZGUoKS5nZXRQb2ludEF0TGVuZ3RoKFJyLnRvdGFsTGVuZ3RoKSxqMD1Scy5ub2RlKCkuZ2V0UG9pbnRB''@;'; + put 'put ''dExlbmd0aChSci50b3RhbExlbmd0aC0xKSxCbD0xODAqTWF0aC5hdGFuMih1YS55LWowLnksdWEueC1qMC54KS9NYXRoLlBJLHZuPVgwLngtdWEueCtSci5vZmZzZXQueCxfMD1YMC55LXVhLnkrUnIub2Zmc2V0Lnk7bGkuYXR0cigidHJhbnNmb3JtIiwidHJhbnNsYXRlKCIrdm4rIiwiK18w''@;'; + put 'put ''KyIpIiksX2kuYXR0clR3ZWVuKCJ0cmFuc2Zvcm0iLGZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKFEyKXt2YXIgczE9UnMubm9kZSgpLmdldFBvaW50QXRMZW5ndGgoUnIudG90YWxMZW5ndGgqUTIpLFowPVJzLm5vZGUoKS5nZXRQb2ludEF0TGVuZ3RoKFJyLnRvdGFsTGVuZ3RoKlEyKzEp''@;'; + put 'put ''LGZpPTE4MCpNYXRoLmF0YW4yKFowLnktczEueSxaMC54LXMxLngpL01hdGguUEktQmw7cmV0dXJuInRyYW5zbGF0ZSgiKyh2bj1zMS54LXVhLngrUnIub2Zmc2V0LngqKDEtUTIpKSsiLCIrKF8wPXMxLnktdWEueStSci5vZmZzZXQueSooMS1RMikpKyIpIHJvdGF0ZSgiK2ZpKyIgIit1YS54''@;'; + put 'put ''KyIgIit1YS55KyIpIn19KS5vbigic3RhcnQiLGZ1bmN0aW9uKCl7Qi5zZWxlY3QodGhpcykuc3R5bGUoIm9wYWNpdHkiLG51bGwpfSkub24oImVuZCIsZnVuY3Rpb24oKXtCLnNlbGVjdCh0aGlzKS5hdHRyKCJ0cmFuc2Zvcm0iLG51bGwpfSl9dmFyIGdjPV9uJiZ1biYmInBhdGgiPT1kMCYm''@;'; + put 'put ''bnVsbCE9bGkuYXR0cigiZCIpLGdkPSEwLEIxPSExLGF1PXZvaWQgMDt0cnl7Zm9yKHZhciBtYyxQMT1PYmplY3Qua2V5cyhtMClbU3ltYm9sLml0ZXJhdG9yXSgpOyEoZ2Q9KG1jPVAxLm5leHQoKSkuZG9uZSk7Z2Q9ITApe3ZhciB4Mj1tYy52YWx1ZSxQbD1tMFt4Ml07aWYoZ2MmJiJkIj09''@;'; + put 'put ''eDIpe3ZhciBBaTsoQWk9KFJyLmFsdGVybmF0aXZlT2xkfHxScikucG9pbnRzKSYmX2kuYXR0clR3ZWVuKCJkIix0ZShBaSxQbCkpfWVsc2V7aWYoInRyYW5zZm9ybSI9PXgyJiZSci50cmFuc2xhdGlvbilpZih1bil7dmFyIGQzPV9pLm9uKCJlbmQiKTtfaS5vbigic3RhcnQiLGZ1bmN0aW9u''@;'; + put 'put ''KCl7SW4uX3pvb21CZWhhdmlvciYmX2kudHdlZW4oImF0dHIudHJhbnNmb3JtIixmdW5jdGlvbigpe3ZhciBRMj10aGlzO3JldHVybiBmdW5jdGlvbihzMSl7UTIuc2V0QXR0cmlidXRlKCJ0cmFuc2Zvcm0iLFEuaW50ZXJwb2xhdGVUcmFuc2Zvcm1TdmcoWi56b29tVHJhbnNmb3JtKEluLl96''@;'; + put 'put ''b29tU2VsZWN0aW9uLm5vZGUoKSkudG9TdHJpbmcoKSxJZS5jYWxsKEluLGxpKS50b1N0cmluZygpKShzMSkpfX0pfSkub24oImVuZCIsZnVuY3Rpb24oKXtkMy5jYWxsKHRoaXMpLEluLl96b29tQmVoYXZpb3ImJlRlLmNhbGwoSW4sbGkpfSl9ZWxzZSBJbi5fem9vbUJlaGF2aW9yJiYoUGw9''@;'; + put 'put ''SWUuY2FsbChJbixsaSkudG9TdHJpbmcoKSk7X2kuYXR0cih4MixQbCl9fX1jYXRjaChRMil7QjE9ITAsYXU9UTJ9ZmluYWxseXt0cnl7IWdkJiZQMS5yZXR1cm4mJlAxLnJldHVybigpfWZpbmFsbHl7aWYoQjEpdGhyb3cgYXV9fWxsJiZfaS5vbigiZW5kIixmdW5jdGlvbihRMixzMSxaMCl7''@;'; + put 'put ''SihzYT1CLnNlbGVjdCh0aGlzKSxRMikuZGF0YShbUTJdLGZ1bmN0aW9uKCl7cmV0dXJuIFEyLmtleX0pfSksUnIudGV4dCYmX2kudGV4dChSci50ZXh0KSxmdW5jdGlvbiBKbihScil7dmFyIGxpPVJyLnNlbGVjdEFsbChmdW5jdGlvbigpe3JldHVybiBSci5ub2RlKCkuY2hpbGROb2Rlc30p''@;'; + put 'put ''LE1pPShsaT1saS5kYXRhKGZ1bmN0aW9uKGQwKXtyZXR1cm4gZDAuY2hpbGRyZW59LGZ1bmN0aW9uKGQwKXtyZXR1cm4gZDAua2V5fSkpLmVudGVyKCkuYXBwZW5kKGZ1bmN0aW9uKGQwKXt2YXIgbTA9ZWUoZDApO3JldHVybiIjdGV4dCI9PWQwLnRhZyYmY24mJihtMC5ub2RlVmFsdWU9ZDAu''@;'; + put 'put ''dGV4dCksbTB9KTsoY258fFZuJiZWKFJyLmRhdHVtKCkpKSYmTWkuZmlsdGVyKGZ1bmN0aW9uKGQwKXtyZXR1cm4iIyI9PWQwLnRhZ1swXT9udWxsOnRoaXN9KS5lYWNoKGZ1bmN0aW9uKGQwKXt2YXIgbTA9Qi5zZWxlY3QodGhpcyksRzA9ITAsRGk9ITEsVzA9dm9pZCAwO3RyeXtmb3IodmFy''@;'; + put 'put ''IHFvLEVvPU9iamVjdC5rZXlzKGQwLmF0dHJpYnV0ZXMpW1N5bWJvbC5pdGVyYXRvcl0oKTshKEcwPShxbz1Fby5uZXh0KCkpLmRvbmUpO0cwPSEwKXt2YXIgY2E9cW8udmFsdWU7bTAuYXR0cihjYSxkMC5hdHRyaWJ1dGVzW2NhXSl9fWNhdGNoKFFpKXtEaT0hMCxXMD1RaX1maW5hbGx5e3Ry''@;'; + put 'put ''eXshRzAmJkVvLnJldHVybiYmRW8ucmV0dXJuKCl9ZmluYWxseXtpZihEaSl0aHJvdyBXMH19fSkuZmlsdGVyKGZ1bmN0aW9uKGQwKXtyZXR1cm4ic3ZnIj09ZDAudGFnfHwiZyI9PWQwLnRhZz9udWxsOnRoaXN9KS5zdHlsZSgib3BhY2l0eSIsMCk7dmFyIG4wPWxpLmV4aXQoKTtlbiYmbjAu''@;'; + put 'put ''ZWFjaChlbiksdW4mJihuMD1uMC50cmFuc2l0aW9uKHVuKSxjbiYmbjAuZmlsdGVyKGZ1bmN0aW9uKGQwKXtyZXR1cm4iIyI9PWQwLnRhZ1swXT9udWxsOnRoaXN9KS5zdHlsZSgib3BhY2l0eSIsMCkpLG4wPW4wLnJlbW92ZSgpLChsaT1NaS5tZXJnZShsaSkpLmVhY2gob3IpfShsaSl9dmFy''@;'; + put 'put ''IGdyPXRoaXMuX3NlbGVjdGlvbjtpZihudWxsIT11bil7dmFyIEtyPXRoaXMuX2pvYnM7aWYoSW4uX2FjdGl2ZSlyZXR1cm4gS3IucHVzaChudWxsKSx0aGlzO2dyLnRyYW5zaXRpb24odW4pLnRyYW5zaXRpb24oKS5kdXJhdGlvbigwKS5vbigiZW5kIixmdW5jdGlvbigpe0luLl9hY3RpdmU9''@;'; + put 'put ''ITEsMCE9S3IubGVuZ3RoJiYoS3Iuc2hpZnQoKSxJbi5yZW5kZXIoKSl9KSx0aGlzLl9hY3RpdmU9ITB9bnVsbCE9dW4mJmdyLnRyYW5zaXRpb24odW4pLm9uKCJzdGFydCIsZnVuY3Rpb24oKXtJbi5fZGlzcGF0Y2guY2FsbCgidHJhbnNpdGlvblN0YXJ0IixJbil9KS5vbigiZW5kIixmdW5j''@;'; + put 'put ''dGlvbigpe0luLl9kaXNwYXRjaC5jYWxsKCJ0cmFuc2l0aW9uRW5kIixJbil9KS50cmFuc2l0aW9uKCkuZHVyYXRpb24oMCkub24oInN0YXJ0IixmdW5jdGlvbigpe0luLl9kaXNwYXRjaC5jYWxsKCJyZXN0b3JlRW5kIixJbiksSW4uX2Rpc3BhdGNoLmNhbGwoImVuZCIsSW4pLG1uJiZtbi5j''@;'; + put 'put ''YWxsKEluKX0pO3ZhciBWcj10aGlzLl9kYXRhLGlpPWdyLnNlbGVjdEFsbCgic3ZnIikuZGF0YShbVnJdLGZ1bmN0aW9uKFJyKXtyZXR1cm4gUnIua2V5fSk7cmV0dXJuIGlpPWlpLmVudGVyKCkuYXBwZW5kKCJzdmciKS5tZXJnZShpaSksb3IuY2FsbChpaS5ub2RlKCksVnIpLHRoaXMuX29w''@;'; + put 'put ''dGlvbnMuem9vbSYmIXRoaXMuX3pvb21CZWhhdmlvciYmU2UuY2FsbCh0aGlzKSxJbi5fZGlzcGF0Y2guY2FsbCgicmVuZGVyRW5kIixJbiksbnVsbD09dW4mJih0aGlzLl9kaXNwYXRjaC5jYWxsKCJlbmQiLHRoaXMpLG1uJiZtbi5jYWxsKHRoaXMpKSx0aGlzfWZ1bmN0aW9uIERlKG1uLHVu''@;'; + put 'put ''KXtpZigicG9seWdvbiI9PW1uLnRhZyl7KGNuPXZlKG1uKSkudGFnPSJwYXRoIjt2YXIgR3Q9dmUoX249bW4uYXR0cmlidXRlcyksa249X24ucG9pbnRzO2lmKCJwb2x5Z29uIj09dW4udGFnKXsoVm49bW4uYmJveCkuY3g9Vm4ueCtWbi53aWR0aC8yLFZuLmN5PVZuLnkrVm4uaGVpZ2h0LzI7''@;'; + put 'put ''Zm9yKHZhciBJbj1fbi5wb2ludHMuc3BsaXQoIiAiKSxKbj1Jbi5tYXAoZnVuY3Rpb24oTWEpe3ZhciBubD1NYS5zcGxpdCgiLCIpO3JldHVybltubFswXS1Wbi5jeCxubFsxXS1Wbi5jeV19KSxvcj1KbltKbi5sZW5ndGgtMV1bMF0sZ3I9Sm5bSm4ubGVuZ3RoLTFdWzFdLEtyPTA7S3I8Sm4u''@;'; + put 'put ''bGVuZ3RoO0tyKyssb3I9VnIsZ3I9aWkpe3ZhciBScj0oVnI9Sm5bS3JdWzBdKS1vcjtpZigwIT0obGk9KGlpPUpuW0tyXVsxXSktZ3IpJiYwPD0oTWk9b3ItZ3IqUnIvbGkpJiZNaTwxLzAmJihvcjw9TWkmJk1pPD1Wcnx8VnI8PU1pJiZNaTw9b3IpKWJyZWFrfXZhciBvMD1bW1ZuLmN4K01p''@;'; + put 'put ''LFZuLmN5KzBdLmpvaW4oIiwiKV07a249KG8wPShvMD1vMC5jb25jYXQoSW4uc2xpY2UoS3IpKSkuY29uY2F0KEluLnNsaWNlKDAsS3IpKSkuam9pbigiICIpfUd0LmQ9Ik0iK2tuKyJ6IixkZWxldGUgR3QucG9pbnRzLGNuLmF0dHJpYnV0ZXM9R3R9ZWxzZXt2YXIgY247KGNuPXZlKG1uKSku''@;'; + put 'put ''dGFnPSJwYXRoIixHdD12ZShfbj1tbi5hdHRyaWJ1dGVzKTt2YXIgX24sVnIsaWksTWksbjA9X24uY3gsZDA9X24uY3ksbTA9X24ucngsRzA9X24ucnk7aWYoInBvbHlnb24iPT11bi50YWcpe3ZhciBWbjsoVm49dW4uYmJveCkuY3g9Vm4ueCtWbi53aWR0aC8yLFZuLmN5PVZuLnkrVm4uaGVp''@;'; + put 'put ''Z2h0LzI7dmFyIERpPXVuLmF0dHJpYnV0ZXMucG9pbnRzLnNwbGl0KCIgIilbMF0uc3BsaXQoIiwiKSxsaT0oUnI9RGlbMF0tVm4uY3gsRGlbMV0tVm4uY3kpLHFvPU1hdGguc3FydChNYXRoLnBvdyhSciwyKStNYXRoLnBvdyhsaSwyKSksY2E9UnIvcW8sbGw9LWxpL3FvfWVsc2UgY2E9MSxs''@;'; + put 'put ''bD0wO0d0LmQ9Ik0gIituMCsiICIrZDArIiBtICIrKFZyPW0wKmNhKSsiLCIrKGlpPS1HMCpsbCkrIiBhICIrbTArIiwiK0cwKyIgMCAxLDAgIisoUnI9KE1pPW0wKi1jYSktVnIpKyIsIisobGk9LUcwKi1sbC1paSkrIiBhICIrbTArIiwiK0cwKyIgMCAxLDAgIistUnIrIiwiKy1saSsieiIs''@;'; + put 'put ''ZGVsZXRlIEd0LmN4LGRlbGV0ZSBHdC5jeSxkZWxldGUgR3QucngsZGVsZXRlIEd0LnJ5LGNuLmF0dHJpYnV0ZXM9R3R9cmV0dXJuIGNufWZ1bmN0aW9uICRlKCl7aWYobnVsbD09dGhpcy5fd29ya2VyKWllKCIiKSx0aGlzLl9kaXNwYXRjaC5jYWxsKCJpbml0RW5kIix0aGlzKTtlbHNle3Zh''@;'; + put 'put ''ciBtbj10aGlzLl92aXpVUkwsdW49dGhpczt0aGlzLl93b3JrZXIub25tZXNzYWdlPWZ1bmN0aW9uKGNuKXt1bi5fZGlzcGF0Y2guY2FsbCgiaW5pdEVuZCIsdGhpcyl9LG1uLm1hdGNoKC9eaHR0cHM/OlwvXC98XlwvXC8vaSl8fChtbj1uZXcgd2luZG93LlVSTChtbixkb2N1bWVudC5sb2Nh''@;'; + put 'put ''dGlvbi5ocmVmKS5ocmVmKSx0aGlzLl93b3JrZXIucG9zdE1lc3NhZ2Uoe2RvdDoiIix2aXpVUkw6bW59KX19aWU9aWUmJmllLmhhc093blByb3BlcnR5KCJkZWZhdWx0Iik/aWUuZGVmYXVsdDppZTt2YXIgdG4sZG49ZnVuY3Rpb24obW4sdW4sY24pe3JldHVybiB1biBpbiBtbj9PYmplY3Qu''@;'; + put 'put ''ZGVmaW5lUHJvcGVydHkobW4sdW4se3ZhbHVlOmNuLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6bW5bdW5dPWNuLG1ufSx5bj1mdW5jdGlvbihtbil7aWYoQXJyYXkuaXNBcnJheShtbikpe2Zvcih2YXIgdW49MCxjbj1BcnJheShtbi5sZW5ndGgpO3VuPG1u''@;'; + put 'put ''Lmxlbmd0aDt1bisrKWNuW3VuXT1tblt1bl07cmV0dXJuIGNufXJldHVybiBBcnJheS5mcm9tKG1uKX07ZnVuY3Rpb24gTm4obW4sdW4sY24sX24pe3ZhciBHdD1bbW4qY24tKHVuPS11bikqKF9uPS1fbiksbW4qX24rdW4qY25dO3JldHVyblttbj1HdFswXSx1bj0tKHVuPUd0WzFdKV19ZnVu''@;'; + put 'put ''Y3Rpb24gc3IobW4sdW4sY24sX24sR3Qsa24sVm4pe3ZhciBJbj1OKG5yKGtuKSk7bW4uZGF0YShbSW5dKSxkZS5jYWxsKG1uLm5vZGUoKSxJbiksWG4obW4sdW4sY24sX24sR3Qsa24sVm4pfWZ1bmN0aW9uIFhuKG1uLHVuLGNuLF9uLEd0LGtuLFZuKXt2YXIgZW49Vm4uc2hvcnRlbmluZ3x8''@;'; + put 'put ''MCxncj1bWzAsLTMuNV0sWzEwLDBdLFswLDMuNV0sWzAsLTMuNV1dLEtyPV9uLXVuLFZyPUd0LWNuLGlpPU1hdGguc3FydChLcipLcitWcipWcik7aWYoMD09aWkpdmFyIFJyPTEsbGk9MDtlbHNlIFJyPUtyL2lpLGxpPVZyL2lpO2lmKF9uPXVuKyhpaS1lbi0xMC0uMTc0KSpScixHdD1jbiso''@;'; + put 'put ''aWktZW4tMTAtLjE3NCkqbGksa24uVVJMfHxrbi50b29sdGlwKXZhciBNaT1tbi5zZWxlY3RXaXRob3V0RGF0YVByb3BhZ2F0aW9uKCJnIikuc2VsZWN0V2l0aG91dERhdGFQcm9wYWdhdGlvbigiYSIpLG8wPU1pLnNlbGVjdFdpdGhvdXREYXRhUHJvcGFnYXRpb24oInBhdGgiKSxuMD1NaS5z''@;'; + put 'put ''ZWxlY3RXaXRob3V0RGF0YVByb3BhZ2F0aW9uKCJwb2x5Z29uIik7ZWxzZSBvMD1tbi5zZWxlY3RXaXRob3V0RGF0YVByb3BhZ2F0aW9uKCJwYXRoIiksbjA9bW4uc2VsZWN0V2l0aG91dERhdGFQcm9wYWdhdGlvbigicG9seWdvbiIpO3ZhciBkMD1ZLnBhdGgoKTtkMC5tb3ZlVG8odW4sY24p''@;'; + put 'put ''LGQwLmxpbmVUbyhfbixHdCksbzAuYXR0cigiZCIsZDApLF9uPXVuKyhpaS1lbi0xMCkqUnIsR3Q9Y24rKGlpLWVuLTEwKSpsaTtmb3IodmFyIG0wPTA7bTA8Z3IubGVuZ3RoO20wKyspZ3JbbTBdPU5uKChHMD1nclttMF0pWzBdLEcwWzFdLFJyLGxpKTtmb3IobTA9MDttMDxnci5sZW5ndGg7''@;'; + put 'put ''bTArKylnclttMF09W19uKyhHMD1nclttMF0pWzBdLEd0K0cwWzFdXTt2YXIgRGk9W107Zm9yKG0wPTA7bTA8Z3IubGVuZ3RoO20wKyspe3ZhciBHMDtEaS5wdXNoKChHMD1nclttMF0pLmpvaW4oIiwiKSl9dmFyIFcwPURpLmpvaW4oIiAiKTtyZXR1cm4gbjAuYXR0cigicG9pbnRzIixXMCks''@;'; + put 'put ''dGhpc31mdW5jdGlvbiB4cigpe3JldHVybiB0aGlzLl9kcmF3bkVkZ2U/KHRoaXMuX2RyYXduRWRnZS5nLnJlbW92ZSgpLHRoaXMuX2RyYXduRWRnZT1udWxsLHRoaXMpOnRoaXN9ZnVuY3Rpb24gcHIoKXtyZXR1cm4gdGhpcy5fZHJhd25FZGdlP3RoaXMuX2RyYXduRWRnZS5nOkIuc2VsZWN0''@;'; + put 'put ''KG51bGwpfWZ1bmN0aW9uIG5yKG1uKXt2YXIgdW49IiIsY249ITAsX249ITEsR3Q9dm9pZCAwO3RyeXtmb3IodmFyIFZuLGtuPU9iamVjdC5rZXlzKG1uKVtTeW1ib2wuaXRlcmF0b3JdKCk7IShjbj0oVm49a24ubmV4dCgpKS5kb25lKTtjbj0hMCl7dmFyIGVuPVZuLnZhbHVlO251bGwhPW1u''@;'; + put 'put ''W2VuXSYmKHVuKz0nICInK2VuKyciPSInK21uW2VuXSsnIicpfX1jYXRjaChpaSl7X249ITAsR3Q9aWl9ZmluYWxseXt0cnl7IWNuJiZrbi5yZXR1cm4mJmtuLnJldHVybigpfWZpbmFsbHl7aWYoX24pdGhyb3cgR3R9fXZhciBKbj1pZSgiZGlncmFwaCB7YSAtPiBiIFsiK3VuKyJdfSIse2Zv''@;'; + put 'put ''cm1hdDoic3ZnIn0pLGdyPShuZXcgd2luZG93LkRPTVBhcnNlcikucGFyc2VGcm9tU3RyaW5nKEpuLCJpbWFnZS9zdmcreG1sIik7cmV0dXJuIEIuc2VsZWN0KGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSkuYXBwZW5kKGZ1bmN0aW9uKCl7cmV0dXJuIGdyLmRvY3VtZW50RWxl''@;'; + put 'put ''bWVudH0pLnNlbGVjdCgiLmVkZ2UiKX1mdW5jdGlvbiBXdChtbix1bixjbixfbixHdCxrbil7dmFyIGVuPU4od24oX24sR3QpKTtyZXR1cm4gbW4uZGF0YShbZW5dKSxkZS5jYWxsKG1uLm5vZGUoKSxlbikscG4obW4sdW4sY24sR3QpLHRoaXN9ZnVuY3Rpb24gcG4obW4sdW4sY24sX24sR3Qp''@;'; + put 'put ''e2lmKF9uLlVSTHx8X24udG9vbHRpcCl2YXIga249bW4uc2VsZWN0V2l0aG91dERhdGFQcm9wYWdhdGlvbigiZyIpLnNlbGVjdFdpdGhvdXREYXRhUHJvcGFnYXRpb24oImEiKTtlbHNlIGtuPW1uO3ZhciBWbj1rbi5zZWxlY3RBbGwoImVsbGlwc2UscG9seWdvbixwYXRoLHBvbHlsaW5lIiks''@;'; + put 'put ''ZW49bW4uc2VsZWN0V2l0aG91dERhdGFQcm9wYWdhdGlvbigidGV4dCIpO2lmKDAhPVZuLnNpemUoKSl7dmFyIEluPVZuLm5vZGUoKS5nZXRCQm94KCk7SW4uY3g9SW4ueCtJbi53aWR0aC8yLEluLmN5PUluLnkrSW4uaGVpZ2h0LzJ9ZWxzZSAwIT1lbi5zaXplKCkmJihJbj17eDorZW4uYXR0''@;'; + put 'put ''cigieCIpLHk6K2VuLmF0dHIoInkiKSx3aWR0aDowLGhlaWdodDowLGN4Oitlbi5hdHRyKCJ4IiksY3k6K2VuLmF0dHIoInkiKX0pO3JldHVybiBWbi5lYWNoKGZ1bmN0aW9uKEpuLG9yKXt2YXIgZ3I9Qi5zZWxlY3QodGhpcyk7aWYoZ3IuYXR0cigiY3giKSlnci5hdHRyKCJjeCIsQWUodW4p''@;'; + put 'put ''KS5hdHRyKCJjeSIsQWUoY24pKTtlbHNlIGlmKGdyLmF0dHIoInBvaW50cyIpKXt2YXIgS3I9Z3IuYXR0cigicG9pbnRzIikudHJpbSgpO2dyLmF0dHIoInBvaW50cyIsZnVuY3Rpb24gUGUoa24sdW4sY24pe3ZhciBHdCxfbj0oR3Q9a24uc3BsaXQoIiAiKSkubWFwKGZ1bmN0aW9uKFZuKXty''@;'; + put 'put ''ZXR1cm4gVm4uc3BsaXQoIiwiKX0pO3JldHVybiBfbj1HdC5tYXAoZnVuY3Rpb24oVm4pe3JldHVybltBZSgrdW4rICtWbi5zcGxpdCgiLCIpWzBdKSxBZSgrY24rICtWbi5zcGxpdCgiLCIpWzFdKV19KSwoa249KEd0PV9uLm1hcChmdW5jdGlvbihWbil7cmV0dXJuIFZuLmpvaW4oIiwiKX0p''@;'; + put 'put ''KS5qb2luKCIgIikpLnJlcGxhY2UoLy0wXC4vZywiLS4iKS5yZXBsYWNlKC8gMFwuL2csIiAuIil9KEtyLHVuLUluLmN4LGNuLUluLmN5KSl9ZWxzZXt2YXIgVnI9Z3IuYXR0cigiZCIpO2dyLmF0dHIoImQiLGZ1bmN0aW9uIFFlKG1uLHVuLGNuKXsoa249bW4uc3BsaXQoL1tBLVogXS8pKS5z''@;'; + put 'put ''aGlmdCgpO3ZhciBfbj1tbi5zcGxpdCgvW15bQS1aIF0rLyksa249KGtuLm1hcChmdW5jdGlvbihWbil7cmV0dXJuIFZuLnNwbGl0KCIsIil9KSxrbi5tYXAoZnVuY3Rpb24oVm4pe3JldHVybltBZSgrdW4rICtWbi5zcGxpdCgiLCIpWzBdKSxBZSgrY24rICtWbi5zcGxpdCgiLCIpWzFdKV19''@;'; + put 'put ''KS5tYXAoZnVuY3Rpb24oVm4pe3JldHVybiBWbi5qb2luKCIsIil9KSk7cmV0dXJuKG1uPV9uLnJlZHVjZShmdW5jdGlvbihWbixlbixJbil7cmV0dXJuIFZuLmNvbmNhdChlbixrbltJbl0pfSxbXSkuam9pbigiIikpLnJlcGxhY2UoLy0wXC4vZywiLS4iKS5yZXBsYWNlKC8gMFwuL2csIiAu''@;'; + put 'put ''Iil9KFZyLHVuLUluLmN4LGNuLUluLmN5KSl9fSksMCE9ZW4uc2l6ZSgpJiZlbi5hdHRyKCJ4IixBZSgrZW4uYXR0cigieCIpK3VuLUluLmN4KSkuYXR0cigieSIsQWUoK2VuLmF0dHIoInkiKStjbi1Jbi5jeSkpLHRoaXN9ZnVuY3Rpb24gTnQoKXtpZighdGhpcy5fZHJhd25Ob2RlKXJldHVy''@;'; + put 'put ''biB0aGlzO3ZhciBtbj10aGlzLl9kcmF3bk5vZGUuZztyZXR1cm4gbW4uZW1wdHkoKXx8bW4ucmVtb3ZlKCksdGhpcy5fZHJhd25Ob2RlPW51bGwsdGhpc31mdW5jdGlvbiBVbigpe3JldHVybiB0aGlzLl9kcmF3bk5vZGU/dGhpcy5fZHJhd25Ob2RlLmc6Qi5zZWxlY3QobnVsbCl9ZnVuY3Rp''@;'; + put 'put ''b24gd24obW4sdW4pe3ZhciBjbj0iIixfbj0hMCxHdD0hMSxrbj12b2lkIDA7dHJ5e2Zvcih2YXIgZW4sVm49T2JqZWN0LmtleXModW4pW1N5bWJvbC5pdGVyYXRvcl0oKTshKF9uPShlbj1Wbi5uZXh0KCkpLmRvbmUpO19uPSEwKXt2YXIgSW49ZW4udmFsdWU7bnVsbCE9dW5bSW5dJiYoY24r''@;'; + put 'put ''PScgIicrSW4rJyI9IicrdW5bSW5dKyciJyl9fWNhdGNoKFJyKXtHdD0hMCxrbj1Scn1maW5hbGx5e3RyeXshX24mJlZuLnJldHVybiYmVm4ucmV0dXJuKCl9ZmluYWxseXtpZihHdCl0aHJvdyBrbn19dmFyIG9yPWllKCdncmFwaCB7IicrbW4rJyIgWycrY24rIl19Iix7Zm9ybWF0OiJzdmci''@;'; + put 'put ''fSksS3I9KG5ldyB3aW5kb3cuRE9NUGFyc2VyKS5wYXJzZUZyb21TdHJpbmcob3IsImltYWdlL3N2Zyt4bWwiKTtyZXR1cm4gQi5zZWxlY3QoZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpKS5hcHBlbmQoZnVuY3Rpb24oKXtyZXR1cm4gS3IuZG9jdW1lbnRFbGVtZW50fSkuc2Vs''@;'; + put 'put ''ZWN0KCIubm9kZSIpfWZ1bmN0aW9uIHpuKG1uLHVuKXtpZih0aGlzLl9vcHRpb25zPXt1c2VXb3JrZXI6ITAsZW5naW5lOiJkb3QiLHRvdGFsTWVtb3J5OnZvaWQgMCxrZXlNb2RlOiJ0aXRsZSIsZmFkZTohMCx0d2VlblBhdGhzOiEwLHR3ZWVuU2hhcGVzOiEwLGNvbnZlcnRFcXVhbFNpZGVk''@;'; + put 'put ''UG9seWdvbnM6ITAsdHdlZW5QcmVjaXNpb246MSxncm93RW50ZXJpbmdFZGdlczohMCx6b29tOiEwLHpvb21TY2FsZUV4dGVudDpbLjEsMTBdLHpvb21UcmFuc2xhdGVFeHRlbnQ6W1stMS8wLC0xLzBdLFsxLzAsMS8wXV0sd2lkdGg6bnVsbCxoZWlnaHQ6bnVsbCxzY2FsZToxLGZpdDohMX0s''@;'; + put 'put ''dW4gaW5zdGFuY2VvZiBPYmplY3Qpe3ZhciBjbj0hMCxfbj0hMSxHdD12b2lkIDA7dHJ5e2Zvcih2YXIgVm4sa249T2JqZWN0LmtleXModW4pW1N5bWJvbC5pdGVyYXRvcl0oKTshKGNuPShWbj1rbi5uZXh0KCkpLmRvbmUpO2NuPSEwKXt2YXIgZW49Vm4udmFsdWU7dGhpcy5fb3B0aW9uc1tl''@;'; + put 'put ''bl09dW5bZW5dfX1jYXRjaChpaSl7X249ITAsR3Q9aWl9ZmluYWxseXt0cnl7IWNuJiZrbi5yZXR1cm4mJmtuLnJldHVybigpfWZpbmFsbHl7aWYoX24pdGhyb3cgR3R9fX1lbHNlImJvb2xlYW4iPT10eXBlb2YgdW4mJih0aGlzLl9vcHRpb25zLnVzZVdvcmtlcj11bik7dmFyIEluPXRoaXMu''@;'; + put 'put ''X29wdGlvbnMudXNlV29ya2VyO2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgV29ya2VyJiYoSW49ITEpLEluKXt2YXIgb3I9Qi5zZWxlY3RBbGwoInNjcmlwdCIpLmZpbHRlcihmdW5jdGlvbigpe3JldHVybiJqYXZhc2NyaXB0L3dvcmtlciI9PUIuc2VsZWN0KHRoaXMpLmF0dHIoInR5cGUiKXx8''@;'; + put 'put ''Qi5zZWxlY3QodGhpcykuYXR0cigic3JjIikmJkIuc2VsZWN0KHRoaXMpLmF0dHIoInNyYyIpLm1hdGNoKC8uKlwvdml6LmpzJC8pfSk7MD09b3Iuc2l6ZSgpPyhjb25zb2xlLndhcm4oJ05vIHNjcmlwdCB0YWcgb2YgdHlwZSAiamF2YXNjcmlwdC93b3JrZXIiIHdhcyBmb3VuZCBhbmQgInVz''@;'; + put 'put ''ZVdvcmtlciIgaXMgdHJ1ZS4gTm90IHVzaW5nIHdlYiB3b3JrZXIuJyksSW49ITEpOih0aGlzLl92aXpVUkw9b3IuYXR0cigic3JjIiksdGhpcy5fdml6VVJMfHwoY29uc29sZS53YXJuKCdObyAic3JjIiBhdHRyaWJ1dGUgb2Ygd2FzIGZvdW5kIG9uIHRoZSAiamF2YXNjcmlwdC93b3JrZXIi''@;'; + put 'put ''IHNjcmlwdCB0YWcgYW5kICJ1c2VXb3JrZXIiIGlzIHRydWUuIE5vdCB1c2luZyB3ZWIgd29ya2VyLicpLEluPSExKSl9aWYoSW4pe3ZhciBLcj1uZXcgQmxvYihbJ1xuICAgICAgICAgICAgb25tZXNzYWdlID0gZnVuY3Rpb24oZXZlbnQpIHtcbiAgICAgICAgICAgICAgICBpZiAoZXZlbnQu''@;'; + put 'put ''ZGF0YS52aXpVUkwpIHtcbiAgICAgICAgICAgICAgICAgICAgaW1wb3J0U2NyaXB0cyhldmVudC5kYXRhLnZpelVSTCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBzdmcgPSBWaXooZXZlbnQuZGF0YS5kb3QsIGV2''@;'; + put 'put ''ZW50LmRhdGEub3B0aW9ucyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhdGNoKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgIHBvc3RNZXNzYWdlKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICJlcnJvciIsXG4gICAgICAgICAgICAgICAgICAg''@;'; + put 'put ''ICAgICBlcnJvcjogZXJyb3IubWVzc2FnZSxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHN2Zykge1xuICAgICAgICAgICAgICAgICAgICBwb3N0TWVzc2FnZSh7XG4g''@;'; + put 'put ''ICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAiZG9uZSIsXG4gICAgICAgICAgICAgICAgICAgICAgICBzdmc6IHN2ZyxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcG9zdE1lc3NhZ2Uoe1xuICAgICAg''@;'; + put 'put ''ICAgICAgICAgICAgICAgICAgdHlwZTogInNraXAiLFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICddKSxWcj13aW5kb3cuVVJMLmNyZWF0ZU9iamVjdFVSTChLcik7dGhpcy5fd29ya2VyPW5ldyBXb3JrZXIoVnIp''@;'; + put 'put ''fXRoaXMuX3NlbGVjdGlvbj1tbix0aGlzLl9hY3RpdmU9ITEsdGhpcy5fYnVzeT0hMSx0aGlzLl9qb2JzPVtdLHRoaXMuX3F1ZXVlPVtdLHRoaXMuX2tleU1vZGVzPW5ldyBTZXQoWyJ0aXRsZSIsImlkIiwidGFnLWluZGV4IiwiaW5kZXgiXSksdGhpcy5faW1hZ2VzPVtdLHRoaXMuX3RyYW5z''@;'; + put 'put ''bGF0aW9uPXZvaWQgMCx0aGlzLl9zY2FsZT12b2lkIDAsdGhpcy5fZXZlbnRUeXBlcz1bImluaXRFbmQiLCJzdGFydCIsImxheW91dFN0YXJ0IiwibGF5b3V0RW5kIiwiZGF0YUV4dHJhY3RFbmQiLCJkYXRhUHJvY2Vzc1Bhc3MxRW5kIiwiZGF0YVByb2Nlc3NQYXNzMkVuZCIsImRhdGFQcm9j''@;'; + put 'put ''ZXNzRW5kIiwicmVuZGVyU3RhcnQiLCJyZW5kZXJFbmQiLCJ0cmFuc2l0aW9uU3RhcnQiLCJ0cmFuc2l0aW9uRW5kIiwicmVzdG9yZUVuZCIsImVuZCJdLHRoaXMuX2Rpc3BhdGNoPUUuZGlzcGF0Y2guYXBwbHkodm9pZCAwLHluKHRoaXMuX2V2ZW50VHlwZXMpKSwkZS5jYWxsKHRoaXMpLG1u''@;'; + put 'put ''Lm5vZGUoKS5fX2dyYXBodml6X189dGhpc31mdW5jdGlvbiBUcihtbix1bil7cmV0dXJuIEIuc2VsZWN0KG1uKS5ncmFwaHZpeih1bil9em4ucHJvdG90eXBlPVRyLnByb3RvdHlwZT0oZG4odG49e2NvbnN0cnVjdG9yOnpuLGVuZ2luZTpmdW5jdGlvbihtbil7cmV0dXJuIHRoaXMuX29wdGlv''@;'; + put 'put ''bnMuZW5naW5lPW1uLHRoaXN9LGFkZEltYWdlOmZ1bmN0aW9uKG1uLHVuLGNuKXtyZXR1cm4gdGhpcy5faW1hZ2VzLnB1c2goe3BhdGg6bW4sd2lkdGg6dW4saGVpZ2h0OmNufSksdGhpc30sdG90YWxNZW1vcnk6ZnVuY3Rpb24obW4pe3JldHVybiB0aGlzLl9vcHRpb25zLnRvdGFsTWVtb3J5''@;'; + put 'put ''PW1uLHRoaXN9LGtleU1vZGU6ZnVuY3Rpb24obW4pe2lmKCF0aGlzLl9rZXlNb2Rlcy5oYXMobW4pKXRocm93IEVycm9yKCJJbGxlZ2FsIGtleU1vZGU6ICIrbW4pO2lmKG1uIT10aGlzLl9vcHRpb25zLmtleU1vZGUmJm51bGwhPXRoaXMuX2RhdGEpdGhyb3cgRXJyb3IoIlRvbyBsYXRlIHRv''@;'; + put 'put ''IGNoYW5nZSBrZXlNb2RlIik7cmV0dXJuIHRoaXMuX29wdGlvbnMua2V5TW9kZT1tbix0aGlzfSxmYWRlOmZ1bmN0aW9uKG1uKXtyZXR1cm4gdGhpcy5fb3B0aW9ucy5mYWRlPW1uLHRoaXN9LHR3ZWVuUGF0aHM6ZnVuY3Rpb24obW4pe3JldHVybiB0aGlzLl9vcHRpb25zLnR3ZWVuUGF0aHM9''@;'; + put 'put ''bW4sdGhpc30sdHdlZW5TaGFwZXM6ZnVuY3Rpb24obW4pe3JldHVybiB0aGlzLl9vcHRpb25zLnR3ZWVuU2hhcGVzPW1uLG1uJiYodGhpcy5fb3B0aW9ucy50d2VlblBhdGhzPSEwKSx0aGlzfSxjb252ZXJ0RXF1YWxTaWRlZFBvbHlnb25zOmZ1bmN0aW9uKG1uKXtyZXR1cm4gdGhpcy5fb3B0''@;'; + put 'put ''aW9ucy5jb252ZXJ0RXF1YWxTaWRlZFBvbHlnb25zPW1uLHRoaXN9LHR3ZWVuUHJlY2lzaW9uOmZ1bmN0aW9uKG1uKXtyZXR1cm4gdGhpcy5fb3B0aW9ucy50d2VlblByZWNpc2lvbj1tbix0aGlzfSxncm93RW50ZXJpbmdFZGdlczpmdW5jdGlvbihtbil7cmV0dXJuIHRoaXMuX29wdGlvbnMu''@;'; + put 'put ''Z3Jvd0VudGVyaW5nRWRnZXM9bW4sdGhpc30sem9vbTpmdW5jdGlvbihtbil7cmV0dXJuIHRoaXMuX29wdGlvbnMuem9vbT1tbix0aGlzLl9vcHRpb25zLnpvb20mJiF0aGlzLl96b29tQmVoYXZpb3ImJlNlLmNhbGwodGhpcyksdGhpc30scmVzZXRab29tOmZ1bmN0aW9uIEVlKG1uKXt2YXIg''@;'; + put 'put ''dW49dGhpcy5fem9vbVNlbGVjdGlvbjtyZXR1cm4gbW4mJih1bj11bi50cmFuc2l0aW9uKG1uKSksdW4uY2FsbCh0aGlzLl96b29tQmVoYXZpb3IudHJhbnNmb3JtLHRoaXMuX29yaWdpbmFsVHJhbnNmb3JtKSx0aGlzfSx6b29tQmVoYXZpb3I6ZnVuY3Rpb24geigpe3JldHVybiB0aGlzLl96''@;'; + put 'put ''b29tQmVoYXZpb3J8fG51bGx9LHpvb21TZWxlY3Rpb246ZnVuY3Rpb24gbmUoKXtyZXR1cm4gdGhpcy5fem9vbVNlbGVjdGlvbnx8bnVsbH0sem9vbVNjYWxlRXh0ZW50OmZ1bmN0aW9uIGhlKG1uKXtyZXR1cm4gdGhpcy5fb3B0aW9ucy56b29tU2NhbGVFeHRlbnQ9bW4sdGhpc30sem9vbVRy''@;'; + put 'put ''YW5zbGF0ZUV4dGVudDpmdW5jdGlvbiBPKG1uKXtyZXR1cm4gdGhpcy5fb3B0aW9ucy56b29tVHJhbnNsYXRlRXh0ZW50PW1uLHRoaXN9LHJlbmRlcjpmdW5jdGlvbihtbil7cmV0dXJuIHRoaXMuX2J1c3k/KHRoaXMuX3F1ZXVlLnB1c2godGhpcy5yZW5kZXIuYmluZCh0aGlzLG1uKSksdGhp''@;'; + put 'put ''cyk6KHRoaXMuX2Rpc3BhdGNoLmNhbGwoInJlbmRlclN0YXJ0Iix0aGlzKSx0aGlzLl90cmFuc2l0aW9uRmFjdG9yeT9VLnRpbWVvdXQoZnVuY3Rpb24oKXt0aGlzLl90cmFuc2l0aW9uPU1lLnRyYW5zaXRpb24odGhpcy5fdHJhbnNpdGlvbkZhY3RvcnkoKSksQ2UuY2FsbCh0aGlzLG1uKX0u''@;'; + put 'put ''YmluZCh0aGlzKSwwKTpDZS5jYWxsKHRoaXMsbW4pLHRoaXMpfSxkb3Q6ZnVuY3Rpb24obW4sdW4pe3ZhciBjbj10aGlzLF9uPXRoaXMuX3dvcmtlcixHdD10aGlzLl9vcHRpb25zLmVuZ2luZSxrbj10aGlzLl9pbWFnZXMsVm49dGhpcy5fb3B0aW9ucy50b3RhbE1lbW9yeSxlbj10aGlzLl9v''@;'; + put 'put ''cHRpb25zLmtleU1vZGUsSW49dGhpcy5fb3B0aW9ucy50d2VlblBhdGhzLEpuPXRoaXMuX29wdGlvbnMudHdlZW5TaGFwZXM7aWYoInN0cmluZyI9PXR5cGVvZiB0aGlzLl9vcHRpb25zLnR3ZWVuUHJlY2lzaW9uJiZ0aGlzLl9vcHRpb25zLnR3ZWVuUHJlY2lzaW9uLmluY2x1ZGVzKCIlIikp''@;'; + put 'put ''dmFyIG9yPSt0aGlzLl9vcHRpb25zLnR3ZWVuUHJlY2lzaW9uLnNwbGl0KCIlIilbMF0vMTAwLGdyPXRoaXMuX29wdGlvbnMudHdlZW5QcmVjaXNpb24uaW5jbHVkZXMoIiUiKTtlbHNlIG9yPXRoaXMuX29wdGlvbnMudHdlZW5QcmVjaXNpb24sZ3I9ITE7dmFyIEtyPXRoaXMuX29wdGlvbnMu''@;'; + put 'put ''Z3Jvd0VudGVyaW5nRWRnZXMsVnI9e30saWk9dGhpcy5fZGljdGlvbmFyeXx8e30sUnI9e30sbGk9dGhpcy5fbm9kZURpY3Rpb25hcnl8fHt9O2Z1bmN0aW9uIE1pKFFpLE1hKXt2YXIgbmw9UWkudGFnO2lmKCJpbmRleCI9PWVuKVFpLmtleT1NYTtlbHNlIGlmKCIjIiE9bmxbMF0paWYoImlk''@;'; + put 'put ''Ij09ZW4pUWkua2V5PVFpLmF0dHJpYnV0ZXMuaWQ7ZWxzZSBpZigidGl0bGUiPT1lbil7dmFyIGdsPVFpLmNoaWxkcmVuLmZpbmQoZnVuY3Rpb24oQWkpe3JldHVybiJ0aXRsZSI9PUFpLnRhZ30pO2dsJiYoUWkua2V5PWdsLmNoaWxkcmVuLmxlbmd0aD4wP2dsLmNoaWxkcmVuWzBdLnRleHQ6''@;'; + put 'put ''IiIpfW51bGw9PVFpLmtleSYmKEpuJiYoImVsbGlwc2UiPT1ubHx8InBvbHlnb24iPT1ubCkmJihubD0icGF0aCIpLFFpLmtleT1ubCsiLSIrTWEpfWZ1bmN0aW9uIG8wKFFpLE1hKXtRaS5pZD0oTWE/TWEuaWQrIi4iOiIiKStRaS5rZXl9ZnVuY3Rpb24gbjAoUWkpe1ZyW1FpLmlkXT1RaX1m''@;'; + put 'put ''dW5jdGlvbiBkMChRaSxNYSl7Sm4mJlFpLmlkIGluIGlpJiYoInBvbHlnb24iPT1NYS50YWd8fCJlbGxpcHNlIj09TWEudGFnfHwicGF0aCI9PU1hLnRhZykmJihNYS50YWchPVFpLnRhZ3x8InBvbHlnb24iPT1RaS50YWcpJiYoInBhdGgiIT1NYS50YWcmJihRaS5hbHRlcm5hdGl2ZU9sZD1E''@;'; + put 'put ''ZShNYSxRaSkpLCJwYXRoIiE9UWkudGFnJiYoUWkuYWx0ZXJuYXRpdmVOZXc9RGUoUWksTWEpKSl9ZnVuY3Rpb24gbTAoUWksTWEpe2lmKEluJiZNYSYmKCJwYXRoIj09TWEudGFnfHxRaS5hbHRlcm5hdGl2ZU9sZCYmInBhdGgiPT1RaS5hbHRlcm5hdGl2ZU9sZC50YWcpKXt2YXIgbmw9KFFp''@;'; + put 'put ''LmFsdGVybmF0aXZlTmV3fHxRaSkuYXR0cmlidXRlcy5kO2lmKFFpLmFsdGVybmF0aXZlT2xkKXZhciBnbD1xKFFpLmFsdGVybmF0aXZlT2xkKTtlbHNlIGdsPXEoTWEpOyhRaS5hbHRlcm5hdGl2ZU9sZHx8KFFpLmFsdGVybmF0aXZlT2xkPXt9KSkucG9pbnRzPWZ1bmN0aW9uIHgobW4sdW4s''@;'; + put 'put ''Y24sX24pe2Zvcih2YXIgR3Q9bW4sa249R3QuY2xvbmVOb2RlKCksVm49R3QuZ2V0VG90YWxMZW5ndGgoKSxlbj0oa24uc2V0QXR0cmlidXRlKCJkIix1biksa24pLmdldFRvdGFsTGVuZ3RoKCksSW49WzBdLEpuPTAsb3I9X24/Y246Y24vTWF0aC5tYXgoVm4sZW4pOyhKbis9b3IpPDE7KUlu''@;'; + put 'put ''LnB1c2goSm4pO3JldHVybiBJbi5wdXNoKDEpLEluLm1hcChmdW5jdGlvbihLcil7dmFyIFZyPUd0LmdldFBvaW50QXRMZW5ndGgoS3IqVm4pLGlpPWtuLmdldFBvaW50QXRMZW5ndGgoS3IqZW4pO3JldHVybltbVnIueCxWci55XSxbaWkueCxpaS55XV19KX0oZ2wsbmwsb3IsZ3IpfX1mdW5j''@;'; + put 'put ''dGlvbiBHMChRaSl7dmFyIG5sPWFyZ3VtZW50c1syXTtNaShRaSxhcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06MCksbzAoUWksbmwpO3ZhciBBaT1paVtRaS5pZF07bjAoUWkpLGQwKFFpLEFpKSxtMChRaSxBaSk7dmFyIHZpPXt9O1FpLmNo''@;'; + put 'put ''aWxkcmVuLmZvckVhY2goZnVuY3Rpb24oYjApe3ZhciBzYT1iMC50YWc7KCJlbGxpcHNlIj09c2F8fCJwb2x5Z29uIj09c2EpJiYoc2E9InBhdGgiKSxudWxsPT12aVtzYV0mJih2aVtzYV09MCksRzAoYjAsdmlbc2FdKyssUWkpfSl9ZnVuY3Rpb24gRW8oUWkpeyhmdW5jdGlvbiBEaShRaSl7''@;'; + put 'put ''aWYoS3ImJlFpLnBhcmVudCYmIm5vZGUiPT1RaS5wYXJlbnQuYXR0cmlidXRlcy5jbGFzcyYmInRpdGxlIj09UWkudGFnKXtpZihRaS5jaGlsZHJlbi5sZW5ndGg+MCl2YXIgZ2w9UWkuY2hpbGRyZW5bMF0udGV4dDtlbHNlIGdsPSIiO1JyW2dsXT1RaS5wYXJlbnR9fSkoUWkpLGZ1bmN0aW9u''@;'; + put 'put ''IFcwKFFpKXt2YXIgbmw9UWkudGFnO2lmKEtyJiYhaWlbUWkuaWRdJiZRaS5wYXJlbnQmJlQoUWkpJiYoInBhdGgiPT1ubHx8InBvbHlnb24iPT1ubCkpe2lmKCJwb2x5Z29uIj09bmwpe3ZhciBBaT1RaS5wYXJlbnQuY2hpbGRyZW4uZmluZChmdW5jdGlvbihCbCl7cmV0dXJuInBhdGgiPT1C''@;'; + put 'put ''bC50YWd9KTtRaS50b3RhbExlbmd0aD1BaS50b3RhbExlbmd0aH12YXIgYjA9ZnVuY3Rpb24gRihtbil7cmV0dXJuIGZ1bmN0aW9uIFMobW4pe3JldHVybiJlZGdlIj09bW4ucGFyZW50LmF0dHJpYnV0ZXMuY2xhc3M/bW4ucGFyZW50Om1uLnBhcmVudC5wYXJlbnQucGFyZW50fShtbikuY2hp''@;'; + put 'put ''bGRyZW4uZmluZChmdW5jdGlvbih1bil7cmV0dXJuInRpdGxlIj09dW4udGFnfSl9KFFpKS5jaGlsZHJlblswXSxzYT1iMC50ZXh0LnNwbGl0KCItPiIpOzIhPXNhLmxlbmd0aCYmKHNhPWIwLnRleHQuc3BsaXQoIi0tIikpO3ZhciBybD1zYVswXSxfaT1ScltybF0sb3U9bGlbcmxdO2lmKG91''@;'; + put 'put ''KXtpZigoVTA9X2kuY2hpbGRyZW4uZmluZEluZGV4KGZ1bmN0aW9uKEJsLHZuKXtyZXR1cm4iZyI9PUJsLnRhZ30pKT49MCl7dmFyIEhjPV9pLmNoaWxkcmVuW1UwXS5jaGlsZHJlbi5maW5kSW5kZXgoZnVuY3Rpb24oQmwsdm4pe3JldHVybiJhIj09QmwudGFnfSk7X2k9X2kuY2hpbGRyZW5b''@;'; + put 'put ''VTBdLmNoaWxkcmVuW0hjXX0oVTA9b3UuY2hpbGRyZW4uZmluZEluZGV4KGZ1bmN0aW9uKEJsLHZuKXtyZXR1cm4iZyI9PUJsLnRhZ30pKT49MCYmKEhjPW91LmNoaWxkcmVuW1UwXS5jaGlsZHJlbi5maW5kSW5kZXgoZnVuY3Rpb24odm4sXzApe3JldHVybiJhIj09dm4udGFnfSksb3U9b3Uu''@;'; + put 'put ''Y2hpbGRyZW5bVTBdLmNoaWxkcmVuW0hjXSk7Zm9yKHZhciBScz1faS5jaGlsZHJlbixVMD0wO1UwPFJzLmxlbmd0aDtVMCsrKWlmKCJwb2x5Z29uIj09UnNbVTBdLnRhZ3x8ImVsbGlwc2UiPT1Sc1tVMF0udGFnfHwicGF0aCI9PVJzW1UwXS50YWd8fCJ0ZXh0Ij09UnNbVTBdLnRhZyl7dmFy''@;'; + put 'put ''IFgwPVJzW1UwXTticmVha312YXIgdWE9b3UuY2hpbGRyZW47Zm9yKFUwPTA7VTA8dWEubGVuZ3RoO1UwKyspaWYoInBvbHlnb24iPT11YVtVMF0udGFnfHwiZWxsaXBzZSI9PXVhW1UwXS50YWd8fCJwYXRoIj09dWFbVTBdLnRhZ3x8InRleHQiPT11YVtVMF0udGFnKXt2YXIgajA9dWFbVTBd''@;'; + put 'put ''O2JyZWFrfVFpLm9mZnNldD1qMCYmWDA/e3g6ajAuY2VudGVyLngtWDAuY2VudGVyLngseTpqMC5jZW50ZXIueS1YMC5jZW50ZXIueX06e3g6MCx5OjB9fX19KFFpKSxRaS5jaGlsZHJlbi5mb3JFYWNoKGZ1bmN0aW9uKE1hKXtFbyhNYSl9KX10aGlzLl9kaXNwYXRjaC5jYWxsKCJzdGFydCIs''@;'; + put 'put ''dGhpcyksdGhpcy5fYnVzeT0hMCx0aGlzLl9kaXNwYXRjaC5jYWxsKCJsYXlvdXRTdGFydCIsdGhpcyk7dmFyIHFvPXtmb3JtYXQ6InN2ZyIsZW5naW5lOkd0LGltYWdlczprbix0b3RhbE1lbW9yeTpWbn07aWYodGhpcy5fd29ya2VyKV9uLnBvc3RNZXNzYWdlKHtkb3Q6bW4sb3B0aW9uczpx''@;'; + put 'put ''b30pLF9uLm9ubWVzc2FnZT1mdW5jdGlvbihRaSl7c3dpdGNoKFFpLmRhdGEudHlwZSl7Y2FzZSJkb25lIjpyZXR1cm4gbGwuY2FsbChjbixRaS5kYXRhLnN2Zyk7Y2FzZSJlcnJvciI6aWYoIWNuLl9vbmVycm9yKXRocm93IFFpLmRhdGEuZXJyb3I7Y24uX29uZXJyb3IoUWkuZGF0YS5lcnJv''@;'; + put 'put ''cil9fTtlbHNle3RyeXt2YXIgY2E9aWUobW4scW8pfWNhdGNoKFFpKXtpZihjbi5fb25lcnJvcilyZXR1cm4gY24uX29uZXJyb3IoUWkubWVzc2FnZSksdGhpczt0aHJvdyBRaS5tZXNzYWdlfWxsLmNhbGwodGhpcyxjYSl9ZnVuY3Rpb24gbGwoUWkpe3RoaXMuX2Rpc3BhdGNoLmNhbGwoImxh''@;'; + put 'put ''eW91dEVuZCIsdGhpcyk7dmFyIE1hPUIuc2VsZWN0KGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSkuYXBwZW5kKCJkaXYiKSxnbD0obmV3IHdpbmRvdy5ET01QYXJzZXIpLnBhcnNlRnJvbVN0cmluZyhRaSwiaW1hZ2Uvc3ZnK3htbCIpO01hLmFwcGVuZChmdW5jdGlvbigpe3Jl''@;'; + put 'put ''dHVybiBnbC5kb2N1bWVudEVsZW1lbnR9KTt2YXIgdmk9TihNYS5zZWxlY3QoInN2ZyIpKTt0aGlzLl9kaXNwYXRjaC5jYWxsKCJkYXRhRXh0cmFjdEVuZCIsdGhpcyksRzAodmkpLHRoaXMuX2Rpc3BhdGNoLmNhbGwoImRhdGFQcm9jZXNzUGFzczFFbmQiLHRoaXMpLEVvKHZpKSx0aGlzLl9k''@;'; + put 'put ''aXNwYXRjaC5jYWxsKCJkYXRhUHJvY2Vzc1Bhc3MyRW5kIix0aGlzKSx0aGlzLl9kYXRhPXZpLHRoaXMuX2RpY3Rpb25hcnk9VnIsdGhpcy5fbm9kZURpY3Rpb25hcnk9UnIsdGhpcy5fZXh0cmFjdERhdGE9ZnVuY3Rpb24oc2EscmwsX2kpe3ZhciBvdT1OKHNhKTtyZXR1cm4gRzAob3Uscmws''@;'; + put 'put ''X2kpLEVvKG91KSxvdX0sdGhpcy5fYnVzeT0hMSx0aGlzLl9kaXNwYXRjaC5jYWxsKCJkYXRhUHJvY2Vzc0VuZCIsdGhpcyksdW4mJnVuLmNhbGwodGhpcyksdGhpcy5fcXVldWUubGVuZ3RoPjAmJnRoaXMuX3F1ZXVlLnNoaWZ0KCkuY2FsbCh0aGlzKX1yZXR1cm4gdGhpc30sZGF0YTpmdW5j''@;'; + put 'put ''dGlvbigpe3JldHVybiB0aGlzLl9kYXRhfHxudWxsfSxyZW5kZXJEb3Q6ZnVuY3Rpb24obW4sdW4pe3ZhciBjbj10aGlzO3JldHVybiB0aGlzLmRvdChtbixmdW5jdGlvbiBfbigpe2NuLnJlbmRlcih1bil9KSx0aGlzfSx0cmFuc2l0aW9uOmZ1bmN0aW9uKG1uKXtyZXR1cm4gbW4gaW5zdGFu''@;'; + put 'put ''Y2VvZiBGdW5jdGlvbj90aGlzLl90cmFuc2l0aW9uRmFjdG9yeT1tbjp0aGlzLl90cmFuc2l0aW9uPU1lLnRyYW5zaXRpb24obW4pLHRoaXN9LGFjdGl2ZTpmdW5jdGlvbiB2dChtbil7dmFyIGNuPXRoaXMuX3NlbGVjdGlvbi5zZWxlY3RXaXRob3V0RGF0YVByb3BhZ2F0aW9uKCJzdmciKTty''@;'; + put 'put ''ZXR1cm4gMCE9Y24uc2l6ZSgpP01lLmFjdGl2ZShjbi5ub2RlKCksbW4pOm51bGx9LG9wdGlvbnM6ZnVuY3Rpb24obW4pe2lmKHZvaWQgMD09PW1uKXJldHVybiBPYmplY3QuYXNzaWduKHt9LHRoaXMuX29wdGlvbnMpO3ZhciB1bj0hMCxjbj0hMSxfbj12b2lkIDA7dHJ5e2Zvcih2YXIga24s''@;'; + put 'put ''R3Q9T2JqZWN0LmtleXMobW4pW1N5bWJvbC5pdGVyYXRvcl0oKTshKHVuPShrbj1HdC5uZXh0KCkpLmRvbmUpO3VuPSEwKXt2YXIgVm49a24udmFsdWU7dGhpcy5fb3B0aW9uc1tWbl09bW5bVm5dfX1jYXRjaChlbil7Y249ITAsX249ZW59ZmluYWxseXt0cnl7IXVuJiZHdC5yZXR1cm4mJkd0''@;'; + put 'put ''LnJldHVybigpfWZpbmFsbHl7aWYoY24pdGhyb3cgX259fXJldHVybiB0aGlzfSx3aWR0aDpmdW5jdGlvbihtbil7cmV0dXJuIHRoaXMuX29wdGlvbnMud2lkdGg9bW4sdGhpc30saGVpZ2h0OmZ1bmN0aW9uKG1uKXtyZXR1cm4gdGhpcy5fb3B0aW9ucy5oZWlnaHQ9bW4sdGhpc30sc2NhbGU6''@;'; + put 'put ''ZnVuY3Rpb24obW4pe3JldHVybiB0aGlzLl9vcHRpb25zLnNjYWxlPW1uLHRoaXN9LGZpdDpmdW5jdGlvbihtbil7cmV0dXJuIHRoaXMuX29wdGlvbnMuZml0PW1uLHRoaXN9LGF0dHJpYnV0ZXI6ZnVuY3Rpb24obW4pe3JldHVybiB0aGlzLl9hdHRyaWJ1dGVyPW1uLHRoaXN9LG9uOmZ1bmN0''@;'; + put 'put ''aW9uKG1uLHVuKXtyZXR1cm4gdGhpcy5fZGlzcGF0Y2gub24obW4sdW4pLHRoaXN9LG9uZXJyb3I6ZnVuY3Rpb24obW4pe3JldHVybiB0aGlzLl9vbmVycm9yPW1uLHRoaXN9LGxvZ0V2ZW50czpmdW5jdGlvbihtbil7dmFyIHVuPXRoaXMsY249RGF0ZS5ub3coKSxfbj17fSxHdD10aGlzLl9l''@;'; + put 'put ''dmVudFR5cGVzLGtuPU1hdGgubWF4LmFwcGx5KE1hdGgseW4oR3QubWFwKGZ1bmN0aW9uKGdyKXtyZXR1cm4gZ3IubGVuZ3RofSkpKSxWbj1mdW5jdGlvbihLcil7dmFyIFZyPUd0W0tyXTtfbltWcl09W10sSW49dW4sdW4ub24oVnIrIi5sb2ciLG1uP2Z1bmN0aW9uKCl7dmFyIGlpPURhdGUu''@;'; + put 'put ''bm93KCksUnI9X25bVnJdLmxlbmd0aDtfbltWcl0ucHVzaChpaSk7dmFyIGxpPSIiO2lmKGxpKz0iRXZlbnQgIixsaSs9YWUuZm9ybWF0KCIgPjIiKShLcikrIiAiLGxpKz1WcisiICIucmVwZWF0KGtuLVZyLmxlbmd0aCksbGkrPWFlLmZvcm1hdCgiID41IikoaWktY24pKyIgIiwiaW5pdEVu''@;'; + put 'put ''ZCIhPVZyJiYobGkrPWFlLmZvcm1hdCgiID41IikoaWktX24uc3RhcnRbUnJdKSksImRhdGFQcm9jZXNzRW5kIj09VnImJihsaSs9IiBwcmVwYXJlICAgICAgICAgICAgICAgICAiK2FlLmZvcm1hdCgiID41IikoaWktX24ubGF5b3V0RW5kW1JyXSkpLCJyZW5kZXJFbmQiPT1WciYmSW4uX3Ry''@;'; + put 'put ''YW5zaXRpb24mJihsaSs9IiB0cmFuc2l0aW9uIHN0YXJ0IG1hcmdpbiAiK2FlLmZvcm1hdCgiID41IikoSW4uX3RyYW5zaXRpb24uZGVsYXkoKS0oaWktX24ucmVuZGVyU3RhcnRbUnJdKSksSm49SW4uX3RyYW5zaXRpb24uZGVsYXkoKSxvcj1Jbi5fdHJhbnNpdGlvbi5kdXJhdGlvbigpKSwi''@;'; + put 'put ''dHJhbnNpdGlvblN0YXJ0Ij09VnIpe3ZhciBNaT1paS1fbi5yZW5kZXJTdGFydFtScl07bGkrPSIgdHJhbnNpdGlvbiBkZWxheSAgICAgICAgIithZS5mb3JtYXQoIiA+NSIpKGlpLV9uLnJlbmRlclN0YXJ0W1JyXSksbGkrPSIgZXhwZWN0ZWQgIithZS5mb3JtYXQoIiA+NSIpKEpuKSxsaSs9''@;'; + put 'put ''IiBkaWZmICIrYWUuZm9ybWF0KCIgPjUiKShNaS1Kbil9aWYoInRyYW5zaXRpb25FbmQiPT1Wcil7dmFyIG8wPWlpLV9uLnRyYW5zaXRpb25TdGFydFtScl07bGkrPSIgdHJhbnNpdGlvbiBkdXJhdGlvbiAgICAgIithZS5mb3JtYXQoIiA+NSIpKG8wKSxsaSs9IiBleHBlY3RlZCAiK2FlLmZv''@;'; + put 'put ''cm1hdCgiID41Iikob3IpLGxpKz0iIGRpZmYgIithZS5mb3JtYXQoIiA+NSIpKG8wLW9yKX1jb25zb2xlLmxvZyhsaSksY249aWl9Om51bGwpfTtmb3IodmFyIGVuIGluIEd0KXt2YXIgSW4sSm4sb3I7Vm4oZW4pfXJldHVybiB0aGlzfSxkcmF3RWRnZTpmdW5jdGlvbiBibihtbix1bixjbixf''@;'; + put 'put ''bixHdCl7dmFyIGtuPWFyZ3VtZW50cy5sZW5ndGg+NSYmdm9pZCAwIT09YXJndW1lbnRzWzVdP2FyZ3VtZW50c1s1XTp7fTtpZigoR3Q9T2JqZWN0LmFzc2lnbih7fSxHdCkpLnN0eWxlJiZHdC5zdHlsZS5pbmNsdWRlcygiaW52aXMiKSl2YXIgVm49Qi5zZWxlY3QobnVsbCk7ZWxzZXt2YXIg''@;'; + put 'put ''Sm49dGhpcy5fc2VsZWN0aW9uLnNlbGVjdFdpdGhvdXREYXRhUHJvcGFnYXRpb24oInN2ZyIpLnNlbGVjdFdpdGhvdXREYXRhUHJvcGFnYXRpb24oImciKSxncj1OKG5yKEd0KSk7Vm49Sm4uYXBwZW5kKCJnIikuZGF0YShbZ3JdKSxkZS5jYWxsKFZuLm5vZGUoKSxnciksc3IoVm4sbW4sdW4s''@;'; + put 'put ''Y24sX24sR3Qsa24pfXJldHVybiB0aGlzLl9kcmF3bkVkZ2U9e2c6Vm4seDE6bW4seTE6dW4seDI6Y24seTI6X24sYXR0cmlidXRlczpHdH0sdGhpc30sdXBkYXRlRHJhd25FZGdlOmZ1bmN0aW9uIGVyKG1uLHVuLGNuLF9uKXt2YXIgR3Q9YXJndW1lbnRzLmxlbmd0aD40JiZ2b2lkIDAhPT1h''@;'; + put 'put ''cmd1bWVudHNbNF0/YXJndW1lbnRzWzRdOnt9LGtuPWFyZ3VtZW50cy5sZW5ndGg+NSYmdm9pZCAwIT09YXJndW1lbnRzWzVdP2FyZ3VtZW50c1s1XTp7fTtpZighdGhpcy5fZHJhd25FZGdlKXRocm93IEVycm9yKCJObyBlZGdlIGhhcyBiZWVuIGRyYXduIik7dmFyIFZuPXRoaXMuX2RyYXdu''@;'; + put 'put ''RWRnZS5nO3JldHVybiBHdD1PYmplY3QuYXNzaWduKHRoaXMuX2RyYXduRWRnZS5hdHRyaWJ1dGVzLEd0KSx0aGlzLl9kcmF3bkVkZ2UueDE9bW4sdGhpcy5fZHJhd25FZGdlLnkxPXVuLHRoaXMuX2RyYXduRWRnZS54Mj1jbix0aGlzLl9kcmF3bkVkZ2UueTI9X24sIVZuLmVtcHR5KCl8fEd0''@;'; + put 'put ''LnN0eWxlJiZHdC5zdHlsZS5pbmNsdWRlcygiaW52aXMiKXx8KFZuPXRoaXMuX3NlbGVjdGlvbi5zZWxlY3RXaXRob3V0RGF0YVByb3BhZ2F0aW9uKCJzdmciKS5zZWxlY3RXaXRob3V0RGF0YVByb3BhZ2F0aW9uKCJnIikuYXBwZW5kKCJnIiksdGhpcy5fZHJhd25FZGdlLmc9Vm4pLFZuLmVt''@;'; + put 'put ''cHR5KCl8fHNyKFZuLG1uLHVuLGNuLF9uLEd0LGtuKSx0aGlzfSxtb3ZlRHJhd25FZGdlRW5kUG9pbnQ6ZnVuY3Rpb24gRnIobW4sdW4pe3ZhciBjbj1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06e307aWYoIXRoaXMuX2RyYXduRWRnZSl0''@;'; + put 'put ''aHJvdyBFcnJvcigiTm8gZWRnZSBoYXMgYmVlbiBkcmF3biIpO3ZhciBfbj10aGlzLl9kcmF3bkVkZ2UuZyxHdD10aGlzLl9kcmF3bkVkZ2UueDEsa249dGhpcy5fZHJhd25FZGdlLnkxLFZuPXRoaXMuX2RyYXduRWRnZS5hdHRyaWJ1dGVzO3JldHVybiB0aGlzLl9kcmF3bkVkZ2UueDI9bW4s''@;'; + put 'put ''dGhpcy5fZHJhd25FZGdlLnkyPXVuLFhuKF9uLEd0LGtuLG1uLHVuLFZuLGNuKSx0aGlzfSxpbnNlcnREcmF3bkVkZ2U6ZnVuY3Rpb24gcXQobW4pe2lmKCF0aGlzLl9kcmF3bkVkZ2UpdGhyb3cgRXJyb3IoIk5vIGVkZ2UgaGFzIGJlZW4gZHJhd24iKTt2YXIgdW49dGhpcy5fZHJhd25FZGdl''@;'; + put 'put ''Lmc7aWYodW4uZW1wdHkoKSlyZXR1cm4gdGhpczt1bi5zZWxlY3RXaXRob3V0RGF0YVByb3BhZ2F0aW9uKCJ0aXRsZSIpLnRleHQobW4pO3ZhciBWbj10aGlzLl9zZWxlY3Rpb24uc2VsZWN0V2l0aG91dERhdGFQcm9wYWdhdGlvbigic3ZnIikuc2VsZWN0V2l0aG91dERhdGFQcm9wYWdhdGlv''@;'; + put 'put ''bigiZyIpLGVuPVZuLmRhdHVtKCksSW49dGhpcy5fZXh0cmFjdERhdGEodW4sZW4uY2hpbGRyZW4ubGVuZ3RoLFZuLmRhdHVtKCkpO3JldHVybiBlbi5jaGlsZHJlbi5wdXNoKEluKSxvZSh1bixJbiksdGhpcy5fZHJhd25FZGdlPW51bGwsdGhpc30scmVtb3ZlRHJhd25FZGdlOnhyfSwicmVt''@;'; + put 'put ''b3ZlRHJhd25FZGdlIix4ciksZG4odG4sImRyYXduRWRnZVNlbGVjdGlvbiIscHIpLGRuKHRuLCJkcmF3bkVkZ2VTZWxlY3Rpb24iLHByKSxkbih0biwiZHJhd05vZGUiLGZ1bmN0aW9uIEFuKG1uLHVuLGNuKXt2YXIgX249YXJndW1lbnRzLmxlbmd0aD4zJiZ2b2lkIDAhPT1hcmd1bWVudHNb''@;'; + put 'put ''M10/YXJndW1lbnRzWzNdOnt9LEd0PWFyZ3VtZW50cy5sZW5ndGg+NCYmdm9pZCAwIT09YXJndW1lbnRzWzRdP2FyZ3VtZW50c1s0XTp7fTtpZigoX249T2JqZWN0LmFzc2lnbih7fSxfbikpLnN0eWxlJiZfbi5zdHlsZS5pbmNsdWRlcygiaW52aXMiKSl2YXIga249Qi5zZWxlY3QobnVsbCk7''@;'; + put 'put ''ZWxzZXt2YXIgSW49dGhpcy5fc2VsZWN0aW9uLnNlbGVjdFdpdGhvdXREYXRhUHJvcGFnYXRpb24oInN2ZyIpLnNlbGVjdFdpdGhvdXREYXRhUHJvcGFnYXRpb24oImciKSxvcj1OKHduKGNuLF9uKSk7a249SW4uYXBwZW5kKCJnIikuZGF0YShbb3JdKSxkZS5jYWxsKGtuLm5vZGUoKSxvciks''@;'; + put 'put ''V3Qoa24sbW4sdW4sY24sX24sR3QpfXJldHVybiB0aGlzLl9kcmF3bk5vZGU9e2c6a24sbm9kZUlkOmNuLHg6bW4seTp1bixhdHRyaWJ1dGVzOl9ufSx0aGlzfSksZG4odG4sInVwZGF0ZURyYXduTm9kZSIsZnVuY3Rpb24gcW4obW4sdW4sY24pe3ZhciBfbj1hcmd1bWVudHMubGVuZ3RoPjMm''@;'; + put 'put ''JnZvaWQgMCE9PWFyZ3VtZW50c1szXT9hcmd1bWVudHNbM106e30sR3Q9YXJndW1lbnRzLmxlbmd0aD40JiZ2b2lkIDAhPT1hcmd1bWVudHNbNF0/YXJndW1lbnRzWzRdOnt9O2lmKCF0aGlzLl9kcmF3bk5vZGUpdGhyb3cgRXJyb3IoIk5vIG5vZGUgaGFzIGJlZW4gZHJhd24iKTt2YXIga249''@;'; + put 'put ''dGhpcy5fZHJhd25Ob2RlLmc7cmV0dXJuIG51bGw9PWNuJiYoY249dGhpcy5fZHJhd25Ob2RlLm5vZGVJZCksX249T2JqZWN0LmFzc2lnbih0aGlzLl9kcmF3bk5vZGUuYXR0cmlidXRlcyxfbiksdGhpcy5fZHJhd25Ob2RlLm5vZGVJZD1jbix0aGlzLl9kcmF3bk5vZGUueD1tbix0aGlzLl9k''@;'; + put 'put ''cmF3bk5vZGUueT11biwha24uZW1wdHkoKXx8X24uc3R5bGUmJl9uLnN0eWxlLmluY2x1ZGVzKCJpbnZpcyIpfHwoa249dGhpcy5fc2VsZWN0aW9uLnNlbGVjdFdpdGhvdXREYXRhUHJvcGFnYXRpb24oInN2ZyIpLnNlbGVjdFdpdGhvdXREYXRhUHJvcGFnYXRpb24oImciKS5hcHBlbmQoImci''@;'; + put 'put ''KSx0aGlzLl9kcmF3bk5vZGUuZz1rbiksa24uZW1wdHkoKXx8V3Qoa24sbW4sdW4sY24sX24sR3QpLHRoaXN9KSxkbih0biwibW92ZURyYXduTm9kZSIsZnVuY3Rpb24gS24obW4sdW4pe2lmKCF0aGlzLl9kcmF3bk5vZGUpdGhyb3cgRXJyb3IoIk5vIG5vZGUgaGFzIGJlZW4gZHJhd24iKTt2''@;'; + put 'put ''YXIgX249dGhpcy5fZHJhd25Ob2RlLmcsR3Q9dGhpcy5fZHJhd25Ob2RlLmF0dHJpYnV0ZXM7cmV0dXJuIHRoaXMuX2RyYXduTm9kZS54PW1uLHRoaXMuX2RyYXduTm9kZS55PXVuLF9uLmVtcHR5KCl8fHBuKF9uLG1uLHVuLEd0KSx0aGlzfSksZG4odG4sImluc2VydERyYXduTm9kZSIsZnVu''@;'; + put 'put ''Y3Rpb24gc24obW4pe2lmKCF0aGlzLl9kcmF3bk5vZGUpdGhyb3cgRXJyb3IoIk5vIG5vZGUgaGFzIGJlZW4gZHJhd24iKTtudWxsPT1tbiYmKG1uPXRoaXMuX2RyYXduTm9kZS5ub2RlSWQpO3ZhciB1bj10aGlzLl9kcmF3bk5vZGUuZztpZih1bi5lbXB0eSgpKXJldHVybiB0aGlzO3ZhciBj''@;'; + put 'put ''bj10aGlzLl9kcmF3bk5vZGUuYXR0cmlidXRlcztpZih1bi5zZWxlY3RXaXRob3V0RGF0YVByb3BhZ2F0aW9uKCJ0aXRsZSIpLnRleHQobW4pLGNuLlVSTHx8Y24udG9vbHRpcCl2YXIga249dW4uc2VsZWN0V2l0aG91dERhdGFQcm9wYWdhdGlvbigiZyIpLnNlbGVjdFdpdGhvdXREYXRhUHJv''@;'; + put 'put ''cGFnYXRpb24oImEiKSxlbj0oa24uc2VsZWN0V2l0aG91dERhdGFQcm9wYWdhdGlvbigiZWxsaXBzZSxwb2x5Z29uLHBhdGgscG9seWxpbmUiKSxrbi5zZWxlY3RXaXRob3V0RGF0YVByb3BhZ2F0aW9uKCJ0ZXh0IikpO2Vsc2UgdW4uc2VsZWN0V2l0aG91dERhdGFQcm9wYWdhdGlvbigiZWxs''@;'; + put 'put ''aXBzZSxwb2x5Z29uLHBhdGgscG9seWxpbmUiKSxlbj11bi5zZWxlY3RXaXRob3V0RGF0YVByb3BhZ2F0aW9uKCJ0ZXh0Iik7ZW4udGV4dChjbi5sYWJlbHx8bW4pO3ZhciBvcj10aGlzLl9zZWxlY3Rpb24uc2VsZWN0V2l0aG91dERhdGFQcm9wYWdhdGlvbigic3ZnIikuc2VsZWN0V2l0aG91''@;'; + put 'put ''dERhdGFQcm9wYWdhdGlvbigiZyIpLGdyPW9yLmRhdHVtKCksS3I9dGhpcy5fZXh0cmFjdERhdGEodW4sZ3IuY2hpbGRyZW4ubGVuZ3RoLG9yLmRhdHVtKCkpO3JldHVybiBnci5jaGlsZHJlbi5wdXNoKEtyKSxvZSh1bixLciksdGhpcy5fZHJhd25Ob2RlPW51bGwsdGhpc30pLGRuKHRuLCJy''@;'; + put 'put ''ZW1vdmVEcmF3bk5vZGUiLE50KSxkbih0biwicmVtb3ZlRHJhd25Ob2RlIixOdCksZG4odG4sImRyYXduTm9kZVNlbGVjdGlvbiIsVW4pLGRuKHRuLCJkcmF3bk5vZGVTZWxlY3Rpb24iLFVuKSx0bik7Qi5zZWxlY3Rpb24ucHJvdG90eXBlLmdyYXBodml6PWZ1bmN0aW9uKG1uKXt2YXIgdW49''@;'; + put 'put ''dGhpcy5ub2RlKCkuX19ncmFwaHZpel9fO3JldHVybiB1bj8odW4ub3B0aW9ucyhtbiksdW4uX2Rpc3BhdGNoLmNhbGwoImluaXRFbmQiLHRoaXMpKTp1bj1uZXcgem4odGhpcyxtbiksdW59LEIuc2VsZWN0aW9uLnByb3RvdHlwZS5zZWxlY3RXaXRob3V0RGF0YVByb3BhZ2F0aW9uPWZ1bmN0''@;'; + put 'put ''aW9uKG1uKXtyZXR1cm4gQi5zZWxlY3QodGhpcy5zaXplKCk+MD90aGlzLm5vZGUoKS5xdWVyeVNlbGVjdG9yKG1uKTpudWxsKX0sbWUuZ3JhcGh2aXo9VHIsT2JqZWN0LmRlZmluZVByb3BlcnR5KG1lLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KX0oSmUsTCg2OTQxNSksTCg4NTEwNiksTCg0''@;'; + put 'put ''MDgyMiksTCg1Njg0MiksTCgyMTc1OSksTCg3NTgyNyksTCgyOTAzNSksTCg2NTk5MCksTCgzODE4NCkpfSwxNjcxMjooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbWUoRSxNZSxVLFEsWil7dmFyIGllPUUqRSxhZT1pZSpFO3JldHVybigoMS0zKkUrMyppZS1hZSkqTWUrKDQt''@;'; + put 'put ''NippZSszKmFlKSpVKygxKzMqRSszKmllLTMqYWUpKlErYWUqWikvNn1mdW5jdGlvbiBCKEUpe3ZhciBNZT1FLmxlbmd0aC0xO3JldHVybiBmdW5jdGlvbihVKXt2YXIgUT1VPD0wP1U9MDpVPj0xPyhVPTEsTWUtMSk6TWF0aC5mbG9vcihVKk1lKSxaPUVbUV0saWU9RVtRKzFdO3JldHVybiBt''@;'; + put 'put ''ZSgoVS1RL01lKSpNZSxRPjA/RVtRLTFdOjIqWi1pZSxaLGllLFE8TWUtMT9FW1ErMl06MippZS1aKX19TC5kKEplLHtaOigpPT5CLHQ6KCk9Pm1lfSl9LDY4NTIzOihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0IjtMLmQoSmUse1o6KCk9PkJ9KTt2YXIgbWU9TCgxNjcxMik7ZnVuY3Rpb24gQihF''@;'; + put 'put ''KXt2YXIgTWU9RS5sZW5ndGg7cmV0dXJuIGZ1bmN0aW9uKFUpe3ZhciBRPU1hdGguZmxvb3IoKChVJT0xKTwwPysrVTpVKSpNZSk7cmV0dXJuKDAsbWUudCkoKFUtUS9NZSkqTWUsRVsoUStNZS0xKSVNZV0sRVtRJU1lXSxFWyhRKzEpJU1lXSxFWyhRKzIpJU1lXSl9fX0sMzUxNDc6KFhlLEpl''@;'; + put 'put ''LEwpPT57InVzZSBzdHJpY3QiO0wuZChKZSx7WlA6KCk9PlEsd3g6KCk9Pk1lLHlpOigpPT5VfSk7dmFyIG1lPUwoNDc5MjcpO2Z1bmN0aW9uIEIoWixpZSl7cmV0dXJuIGZ1bmN0aW9uKGFlKXtyZXR1cm4gWithZSppZX19ZnVuY3Rpb24gTWUoWixpZSl7dmFyIGFlPWllLVo7cmV0dXJuIGFl''@;'; + put 'put ''P0IoWixhZT4xODB8fGFlPC0xODA/YWUtMzYwKk1hdGgucm91bmQoYWUvMzYwKTphZSk6KDAsbWUuWikoaXNOYU4oWik/aWU6Wil9ZnVuY3Rpb24gVShaKXtyZXR1cm4gMT09KFo9K1opP1E6ZnVuY3Rpb24oaWUsYWUpe3JldHVybiBhZS1pZT9mdW5jdGlvbiBFKFosaWUsYWUpe3JldHVybiBa''@;'; + put 'put ''PU1hdGgucG93KFosYWUpLGllPU1hdGgucG93KGllLGFlKS1aLGFlPTEvYWUsZnVuY3Rpb24oWSl7cmV0dXJuIE1hdGgucG93KForWSppZSxhZSl9fShpZSxhZSxaKTooMCxtZS5aKShpc05hTihpZSk/YWU6aWUpfX1mdW5jdGlvbiBRKFosaWUpe3ZhciBhZT1pZS1aO3JldHVybiBhZT9CKFos''@;'; + put 'put ''YWUpOigwLG1lLlopKGlzTmFOKFopP2llOlopfX0sNDc5Mjc6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG1lKEIpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBCfX1MLmQoSmUse1o6KCk9Pm1lfSl9LDIxNzU5OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0IjtMLnIoSmUpLEwu''@;'; + put 'put ''ZChKZSx7aW50ZXJwb2xhdGU6KCk9Pk4saW50ZXJwb2xhdGVBcnJheTooKT0+VSxpbnRlcnBvbGF0ZUJhc2lzOigpPT5lZS5aLGludGVycG9sYXRlQmFzaXNDbG9zZWQ6KCk9PnEuWixpbnRlcnBvbGF0ZUN1YmVoZWxpeDooKT0+UXQsaW50ZXJwb2xhdGVDdWJlaGVsaXhMb25nOigpPT5nbixp''@;'; + put 'put ''bnRlcnBvbGF0ZURhdGU6KCk9PlosaW50ZXJwb2xhdGVEaXNjcmV0ZTooKT0+SixpbnRlcnBvbGF0ZUhjbDooKT0+QnQsaW50ZXJwb2xhdGVIY2xMb25nOigpPT5vbixpbnRlcnBvbGF0ZUhzbDooKT0+a2UsaW50ZXJwb2xhdGVIc2xMb25nOigpPT5TZSxpbnRlcnBvbGF0ZUh1ZTooKT0+b2Us''@;'; + put 'put ''aW50ZXJwb2xhdGVMYWI6KCk9PkF0LGludGVycG9sYXRlTnVtYmVyOigpPT5pZS5aLGludGVycG9sYXRlTnVtYmVyQXJyYXk6KCk9PkUsaW50ZXJwb2xhdGVPYmplY3Q6KCk9PmFlLGludGVycG9sYXRlUmdiOigpPT5CLlpQLGludGVycG9sYXRlUmdiQmFzaXM6KCk9PkIuaEQsaW50ZXJwb2xh''@;'; + put 'put ''dGVSZ2JCYXNpc0Nsb3NlZDooKT0+Qi5ZRCxpbnRlcnBvbGF0ZVJvdW5kOigpPT5jZSxpbnRlcnBvbGF0ZVN0cmluZzooKT0+WS5aLGludGVycG9sYXRlVHJhbnNmb3JtQ3NzOigpPT5kZS5ZLGludGVycG9sYXRlVHJhbnNmb3JtU3ZnOigpPT5kZS53LGludGVycG9sYXRlWm9vbTooKT0+dmUu''@;'; + put 'put ''WixwaWVjZXdpc2U6KCk9PmRuLHF1YW50aXplOigpPT55bn0pO3ZhciBtZT1MKDUyNzg2KSxCPUwoODY4MTEpO2Z1bmN0aW9uIEUobG4sTm4pe05ufHwoTm49W10pO3ZhciBzcixibj1sbj9NYXRoLm1pbihObi5sZW5ndGgsbG4ubGVuZ3RoKTowLGVyPU5uLnNsaWNlKCk7cmV0dXJuIGZ1bmN0''@;'; + put 'put ''aW9uKFhuKXtmb3Ioc3I9MDtzcjxibjsrK3NyKWVyW3NyXT1sbltzcl0qKDEtWG4pK05uW3NyXSpYbjtyZXR1cm4gZXJ9fWZ1bmN0aW9uIE1lKGxuKXtyZXR1cm4gQXJyYXlCdWZmZXIuaXNWaWV3KGxuKSYmIShsbiBpbnN0YW5jZW9mIERhdGFWaWV3KX1mdW5jdGlvbiBVKGxuLE5uKXtyZXR1''@;'; + put 'put ''cm4oTWUoTm4pP0U6USkobG4sTm4pfWZ1bmN0aW9uIFEobG4sTm4pe3ZhciBGcixibj1Obj9Obi5sZW5ndGg6MCxlcj1sbj9NYXRoLm1pbihibixsbi5sZW5ndGgpOjAsc3I9bmV3IEFycmF5KGVyKSxYbj1uZXcgQXJyYXkoYm4pO2ZvcihGcj0wO0ZyPGVyOysrRnIpc3JbRnJdPU4obG5bRnJd''@;'; + put 'put ''LE5uW0ZyXSk7Zm9yKDtGcjxibjsrK0ZyKVhuW0ZyXT1ObltGcl07cmV0dXJuIGZ1bmN0aW9uKHhyKXtmb3IoRnI9MDtGcjxlcjsrK0ZyKVhuW0ZyXT1zcltGcl0oeHIpO3JldHVybiBYbn19ZnVuY3Rpb24gWihsbixObil7dmFyIGJuPW5ldyBEYXRlO3JldHVybiBsbj0rbG4sTm49K05uLGZ1''@;'; + put 'put ''bmN0aW9uKGVyKXtyZXR1cm4gYm4uc2V0VGltZShsbiooMS1lcikrTm4qZXIpLGJufX12YXIgaWU9TCg2NzM4KTtmdW5jdGlvbiBhZShsbixObil7dmFyIHNyLGJuPXt9LGVyPXt9O2ZvcihzciBpbihudWxsPT09bG58fCJvYmplY3QiIT10eXBlb2YgbG4pJiYobG49e30pLChudWxsPT09Tm58''@;'; + put 'put ''fCJvYmplY3QiIT10eXBlb2YgTm4pJiYoTm49e30pLE5uKXNyIGluIGxuP2JuW3NyXT1OKGxuW3NyXSxObltzcl0pOmVyW3NyXT1Obltzcl07cmV0dXJuIGZ1bmN0aW9uKFhuKXtmb3Ioc3IgaW4gYm4pZXJbc3JdPWJuW3NyXShYbik7cmV0dXJuIGVyfX12YXIgWT1MKDIzMDk2KSxXPUwoNDc5''@;'; + put 'put ''MjcpO2Z1bmN0aW9uIE4obG4sTm4pe3ZhciBlcixibj10eXBlb2YgTm47cmV0dXJuIG51bGw9PU5ufHwiYm9vbGVhbiI9PT1ibj8oMCxXLlopKE5uKTooIm51bWJlciI9PT1ibj9pZS5aOiJzdHJpbmciPT09Ym4/KGVyPSgwLG1lLlpQKShObikpPyhObj1lcixCLlpQKTpZLlo6Tm4gaW5zdGFu''@;'; + put 'put ''Y2VvZiBtZS5aUD9CLlpQOk5uIGluc3RhbmNlb2YgRGF0ZT9aOk1lKE5uKT9FOkFycmF5LmlzQXJyYXkoTm4pP1E6ImZ1bmN0aW9uIiE9dHlwZW9mIE5uLnZhbHVlT2YmJiJmdW5jdGlvbiIhPXR5cGVvZiBObi50b1N0cmluZ3x8aXNOYU4oTm4pP2FlOmllLlopKGxuLE5uKX12YXIgZWU9TCgx''@;'; + put 'put ''NjcxMikscT1MKDY4NTIzKTtmdW5jdGlvbiBKKGxuKXt2YXIgTm49bG4ubGVuZ3RoO3JldHVybiBmdW5jdGlvbihibil7cmV0dXJuIGxuW01hdGgubWF4KDAsTWF0aC5taW4oTm4tMSxNYXRoLmZsb29yKGJuKk5uKSkpXX19dmFyIHNlPUwoMzUxNDcpO2Z1bmN0aW9uIG9lKGxuLE5uKXt2YXIg''@;'; + put 'put ''Ym49KDAsc2Uud3gpKCtsbiwrTm4pO3JldHVybiBmdW5jdGlvbihlcil7dmFyIHNyPWJuKGVyKTtyZXR1cm4gc3ItMzYwKk1hdGguZmxvb3Ioc3IvMzYwKX19ZnVuY3Rpb24gY2UobG4sTm4pe3JldHVybiBsbj0rbG4sTm49K05uLGZ1bmN0aW9uKGJuKXtyZXR1cm4gTWF0aC5yb3VuZChsbioo''@;'; + put 'put ''MS1ibikrTm4qYm4pfX12YXIgZGU9TCg3NTM0OSksdmU9TCg3NjI1Nyk7ZnVuY3Rpb24gQWUobG4pe3JldHVybiBmdW5jdGlvbihObixibil7dmFyIGVyPWxuKChObj0oMCxtZS5ZbSkoTm4pKS5oLChibj0oMCxtZS5ZbSkoYm4pKS5oKSxzcj0oMCxzZS5aUCkoTm4ucyxibi5zKSxYbj0oMCxz''@;'; + put 'put ''ZS5aUCkoTm4ubCxibi5sKSxGcj0oMCxzZS5aUCkoTm4ub3BhY2l0eSxibi5vcGFjaXR5KTtyZXR1cm4gZnVuY3Rpb24oeHIpe3JldHVybiBObi5oPWVyKHhyKSxObi5zPXNyKHhyKSxObi5sPVhuKHhyKSxObi5vcGFjaXR5PUZyKHhyKSxObisiIn19fWNvbnN0IGtlPUFlKHNlLnd4KTt2YXIg''@;'; + put 'put ''U2U9QWUoc2UuWlApLEllPUwoNjg4ODQpLFRlPU1hdGguUEkvMTgwLEVlPTE4MC9NYXRoLlBJLE89Ljk2NDIyLHRlPTQvMjkseD02LzI5LFA9Myp4Kng7ZnVuY3Rpb24gVChsbil7aWYobG4gaW5zdGFuY2VvZiB5ZSlyZXR1cm4gbmV3IHllKGxuLmwsbG4uYSxsbi5iLGxuLm9wYWNpdHkpO2lm''@;'; + put 'put ''KGxuIGluc3RhbmNlb2YgbXQpcmV0dXJuIHZ0KGxuKTtsbiBpbnN0YW5jZW9mIG1lLlNzfHwobG49KDAsbWUuU1UpKGxuKSk7dmFyIFhuLEZyLE5uPVFlKGxuLnIpLGJuPVFlKGxuLmcpLGVyPVFlKGxuLmIpLHNyPUNlKCguMjIyNTA0NSpObisuNzE2ODc4NipibisuMDYwNjE2OSplcikvMSk7''@;'; + put 'put ''cmV0dXJuIE5uPT09Ym4mJmJuPT09ZXI/WG49RnI9c3I6KFhuPUNlKCguNDM2MDc0NypObisuMzg1MDY0OSpibisuMTQzMDgwNCplcikvTyksRnI9Q2UoKC4wMTM5MzIyKk5uKy4wOTcxMDQ1KmJuKy43MTQxNzMzKmVyKS8uODI1MjEpKSxuZXcgeWUoMTE2KnNyLTE2LDUwMCooWG4tc3IpLDIw''@;'; + put 'put ''MCooc3ItRnIpLGxuLm9wYWNpdHkpfWZ1bmN0aW9uIEYobG4sTm4sYm4sZXIpe3JldHVybiAxPT09YXJndW1lbnRzLmxlbmd0aD9UKGxuKTpuZXcgeWUobG4sTm4sYm4sbnVsbD09ZXI/MTplcil9ZnVuY3Rpb24geWUobG4sTm4sYm4sZXIpe3RoaXMubD0rbG4sdGhpcy5hPStObix0aGlzLmI9''@;'; + put 'put ''K2JuLHRoaXMub3BhY2l0eT0rZXJ9ZnVuY3Rpb24gQ2UobG4pe3JldHVybiBsbj4uMDA4ODU2NDUxNjc5MDM1NjMxP01hdGgucG93KGxuLDEvMyk6bG4vUCt0ZX1mdW5jdGlvbiBEZShsbil7cmV0dXJuIGxuPng/bG4qbG4qbG46UCoobG4tdGUpfWZ1bmN0aW9uIFBlKGxuKXtyZXR1cm4gMjU1''@;'; + put 'put ''Kihsbjw9LjAwMzEzMDg/MTIuOTIqbG46MS4wNTUqTWF0aC5wb3cobG4sMS8yLjQpLS4wNTUpfWZ1bmN0aW9uIFFlKGxuKXtyZXR1cm4obG4vPTI1NSk8PS4wNDA0NT9sbi8xMi45MjpNYXRoLnBvdygobG4rLjA1NSkvMS4wNTUsMi40KX1mdW5jdGlvbiAkZShsbil7aWYobG4gaW5zdGFuY2Vv''@;'; + put 'put ''ZiBtdClyZXR1cm4gbmV3IG10KGxuLmgsbG4uYyxsbi5sLGxuLm9wYWNpdHkpO2lmKGxuIGluc3RhbmNlb2YgeWV8fChsbj1UKGxuKSksMD09PWxuLmEmJjA9PT1sbi5iKXJldHVybiBuZXcgbXQoTmFOLDA8bG4ubCYmbG4ubDwxMDA/MDpOYU4sbG4ubCxsbi5vcGFjaXR5KTt2YXIgTm49TWF0''@;'; + put 'put ''aC5hdGFuMihsbi5iLGxuLmEpKkVlO3JldHVybiBuZXcgbXQoTm48MD9ObiszNjA6Tm4sTWF0aC5zcXJ0KGxuLmEqbG4uYStsbi5iKmxuLmIpLGxuLmwsbG4ub3BhY2l0eSl9ZnVuY3Rpb24gd3QobG4sTm4sYm4sZXIpe3JldHVybiAxPT09YXJndW1lbnRzLmxlbmd0aD8kZShsbik6bmV3IG10''@;'; + put 'put ''KGxuLE5uLGJuLG51bGw9PWVyPzE6ZXIpfWZ1bmN0aW9uIG10KGxuLE5uLGJuLGVyKXt0aGlzLmg9K2xuLHRoaXMuYz0rTm4sdGhpcy5sPStibix0aGlzLm9wYWNpdHk9K2VyfWZ1bmN0aW9uIHZ0KGxuKXtpZihpc05hTihsbi5oKSlyZXR1cm4gbmV3IHllKGxuLmwsMCwwLGxuLm9wYWNpdHkp''@;'; + put 'put ''O3ZhciBObj1sbi5oKlRlO3JldHVybiBuZXcgeWUobG4ubCxNYXRoLmNvcyhObikqbG4uYyxNYXRoLnNpbihObikqbG4uYyxsbi5vcGFjaXR5KX1mdW5jdGlvbiBBdChsbixObil7dmFyIGJuPSgwLHNlLlpQKSgobG49RihsbikpLmwsKE5uPUYoTm4pKS5sKSxlcj0oMCxzZS5aUCkobG4uYSxO''@;'; + put 'put ''bi5hKSxzcj0oMCxzZS5aUCkobG4uYixObi5iKSxYbj0oMCxzZS5aUCkobG4ub3BhY2l0eSxObi5vcGFjaXR5KTtyZXR1cm4gZnVuY3Rpb24oRnIpe3JldHVybiBsbi5sPWJuKEZyKSxsbi5hPWVyKEZyKSxsbi5iPXNyKEZyKSxsbi5vcGFjaXR5PVhuKEZyKSxsbisiIn19ZnVuY3Rpb24gaHQo''@;'; + put 'put ''bG4pe3JldHVybiBmdW5jdGlvbihObixibil7dmFyIGVyPWxuKChObj13dChObikpLmgsKGJuPXd0KGJuKSkuaCksc3I9KDAsc2UuWlApKE5uLmMsYm4uYyksWG49KDAsc2UuWlApKE5uLmwsYm4ubCksRnI9KDAsc2UuWlApKE5uLm9wYWNpdHksYm4ub3BhY2l0eSk7cmV0dXJuIGZ1bmN0aW9u''@;'; + put 'put ''KHhyKXtyZXR1cm4gTm4uaD1lcih4ciksTm4uYz1zcih4ciksTm4ubD1Ybih4ciksTm4ub3BhY2l0eT1Gcih4ciksTm4rIiJ9fX0oMCxJZS5aKSh5ZSxGLCgwLEllLmwpKG1lLklsLHticmlnaHRlcjpmdW5jdGlvbihsbil7cmV0dXJuIG5ldyB5ZSh0aGlzLmwrMTgqKG51bGw9PWxuPzE6bG4p''@;'; + put 'put ''LHRoaXMuYSx0aGlzLmIsdGhpcy5vcGFjaXR5KX0sZGFya2VyOmZ1bmN0aW9uKGxuKXtyZXR1cm4gbmV3IHllKHRoaXMubC0xOCoobnVsbD09bG4/MTpsbiksdGhpcy5hLHRoaXMuYix0aGlzLm9wYWNpdHkpfSxyZ2I6ZnVuY3Rpb24oKXt2YXIgbG49KHRoaXMubCsxNikvMTE2LE5uPWlzTmFO''@;'; + put 'put ''KHRoaXMuYSk/bG46bG4rdGhpcy5hLzUwMCxibj1pc05hTih0aGlzLmIpP2xuOmxuLXRoaXMuYi8yMDA7cmV0dXJuIE5uPU8qRGUoTm4pLGxuPTEqRGUobG4pLGJuPS44MjUyMSpEZShibiksbmV3IG1lLlNzKFBlKDMuMTMzODU2MSpObi0xLjYxNjg2NjcqbG4tLjQ5MDYxNDYqYm4pLFBlKC0u''@;'; + put 'put ''OTc4NzY4NCpObisxLjkxNjE0MTUqbG4rLjAzMzQ1NCpibiksUGUoLjA3MTk0NTMqTm4tLjIyODk5MTQqbG4rMS40MDUyNDI3KmJuKSx0aGlzLm9wYWNpdHkpfX0pKSwoMCxJZS5aKShtdCx3dCwoMCxJZS5sKShtZS5JbCx7YnJpZ2h0ZXI6ZnVuY3Rpb24obG4pe3JldHVybiBuZXcgbXQodGhp''@;'; + put 'put ''cy5oLHRoaXMuYyx0aGlzLmwrMTgqKG51bGw9PWxuPzE6bG4pLHRoaXMub3BhY2l0eSl9LGRhcmtlcjpmdW5jdGlvbihsbil7cmV0dXJuIG5ldyBtdCh0aGlzLmgsdGhpcy5jLHRoaXMubC0xOCoobnVsbD09bG4/MTpsbiksdGhpcy5vcGFjaXR5KX0scmdiOmZ1bmN0aW9uKCl7cmV0dXJuIHZ0''@;'; + put 'put ''KHRoaXMpLnJnYigpfX0pKTtjb25zdCBCdD1odChzZS53eCk7dmFyIG9uPWh0KHNlLlpQKSx0dD0xLjc4Mjc3LGV0PS0uMjkyMjcsYXQ9LS45MDY0OSxMdD0xLjk3Mjk0LEN0PUx0KmF0LGZ0PUx0KnR0LEh0PXR0KmV0LSAtLjE0ODYxKmF0O2Z1bmN0aW9uIEdlKGxuKXtpZihsbiBpbnN0YW5j''@;'; + put 'put ''ZW9mIHl0KXJldHVybiBuZXcgeXQobG4uaCxsbi5zLGxuLmwsbG4ub3BhY2l0eSk7bG4gaW5zdGFuY2VvZiBtZS5Tc3x8KGxuPSgwLG1lLlNVKShsbikpO3ZhciBibj1sbi5nLzI1NSxlcj1sbi5iLzI1NSxzcj0oSHQqZXIrQ3QqKGxuLnIvMjU1KS1mdCpibikvKEh0K0N0LWZ0KSxYbj1lci1z''@;'; + put 'put ''cixGcj0oTHQqKGJuLXNyKS1ldCpYbikvYXQseHI9TWF0aC5zcXJ0KEZyKkZyK1huKlhuKS8oTHQqc3IqKDEtc3IpKSxxdD14cj9NYXRoLmF0YW4yKEZyLFhuKSpFZS0xMjA6TmFOO3JldHVybiBuZXcgeXQocXQ8MD9xdCszNjA6cXQseHIsc3IsbG4ub3BhY2l0eSl9ZnVuY3Rpb24gVWUobG4s''@;'; + put 'put ''Tm4sYm4sZXIpe3JldHVybiAxPT09YXJndW1lbnRzLmxlbmd0aD9HZShsbik6bmV3IHl0KGxuLE5uLGJuLG51bGw9PWVyPzE6ZXIpfWZ1bmN0aW9uIHl0KGxuLE5uLGJuLGVyKXt0aGlzLmg9K2xuLHRoaXMucz0rTm4sdGhpcy5sPStibix0aGlzLm9wYWNpdHk9K2VyfWZ1bmN0aW9uIGp0KGxu''@;'; + put 'put ''KXtyZXR1cm4gZnVuY3Rpb24gTm4oYm4pe2Z1bmN0aW9uIGVyKHNyLFhuKXt2YXIgRnI9bG4oKHNyPVVlKHNyKSkuaCwoWG49VWUoWG4pKS5oKSx4cj0oMCxzZS5aUCkoc3IucyxYbi5zKSxxdD0oMCxzZS5aUCkoc3IubCxYbi5sKSxwcj0oMCxzZS5aUCkoc3Iub3BhY2l0eSxYbi5vcGFjaXR5''@;'; + put 'put ''KTtyZXR1cm4gZnVuY3Rpb24obnIpe3JldHVybiBzci5oPUZyKG5yKSxzci5zPXhyKG5yKSxzci5sPXF0KE1hdGgucG93KG5yLGJuKSksc3Iub3BhY2l0eT1wcihuciksc3IrIiJ9fXJldHVybiBibj0rYm4sZXIuZ2FtbWE9Tm4sZXJ9KDEpfSgwLEllLlopKHl0LFVlLCgwLEllLmwpKG1lLkls''@;'; + put 'put ''LHticmlnaHRlcjpmdW5jdGlvbihsbil7cmV0dXJuIGxuPW51bGw9PWxuP21lLko1Ok1hdGgucG93KG1lLko1LGxuKSxuZXcgeXQodGhpcy5oLHRoaXMucyx0aGlzLmwqbG4sdGhpcy5vcGFjaXR5KX0sZGFya2VyOmZ1bmN0aW9uKGxuKXtyZXR1cm4gbG49bnVsbD09bG4/bWUueFY6TWF0aC5w''@;'; + put 'put ''b3cobWUueFYsbG4pLG5ldyB5dCh0aGlzLmgsdGhpcy5zLHRoaXMubCpsbix0aGlzLm9wYWNpdHkpfSxyZ2I6ZnVuY3Rpb24oKXt2YXIgbG49aXNOYU4odGhpcy5oKT8wOih0aGlzLmgrMTIwKSpUZSxObj0rdGhpcy5sLGJuPWlzTmFOKHRoaXMucyk/MDp0aGlzLnMqTm4qKDEtTm4pLGVyPU1h''@;'; + put 'put ''dGguY29zKGxuKSxzcj1NYXRoLnNpbihsbik7cmV0dXJuIG5ldyBtZS5TcygyNTUqKE5uK2JuKigtLjE0ODYxKmVyK3R0KnNyKSksMjU1KihObitibiooZXQqZXIrYXQqc3IpKSwyNTUqKE5uK2JuKihMdCplcikpLHRoaXMub3BhY2l0eSl9fSkpO2NvbnN0IFF0PWp0KHNlLnd4KTt2YXIgZ249''@;'; + put 'put ''anQoc2UuWlApO2Z1bmN0aW9uIGRuKGxuLE5uKXtmb3IodmFyIGJuPTAsZXI9Tm4ubGVuZ3RoLTEsc3I9Tm5bMF0sWG49bmV3IEFycmF5KGVyPDA/MDplcik7Ym48ZXI7KVhuW2JuXT1sbihzcixzcj1OblsrK2JuXSk7cmV0dXJuIGZ1bmN0aW9uKEZyKXt2YXIgeHI9TWF0aC5tYXgoMCxNYXRo''@;'; + put 'put ''Lm1pbihlci0xLE1hdGguZmxvb3IoRnIqPWVyKSkpO3JldHVybiBYblt4cl0oRnIteHIpfX1mdW5jdGlvbiB5bihsbixObil7Zm9yKHZhciBibj1uZXcgQXJyYXkoTm4pLGVyPTA7ZXI8Tm47Kytlcilibltlcl09bG4oZXIvKE5uLTEpKTtyZXR1cm4gYm59fSw2NzM4OihYZSxKZSxMKT0+eyJ1''@;'; + put 'put ''c2Ugc3RyaWN0IjtmdW5jdGlvbiBtZShCLEUpe3JldHVybiBCPStCLEU9K0UsZnVuY3Rpb24oTWUpe3JldHVybiBCKigxLU1lKStFKk1lfX1MLmQoSmUse1o6KCk9Pm1lfSl9LDg2ODExOihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0IjtMLmQoSmUse1lEOigpPT5pZSxaUDooKT0+VSxoRDooKT0+''@;'; + put 'put ''Wn0pO3ZhciBtZT1MKDUyNzg2KSxCPUwoMTY3MTIpLEU9TCg2ODUyMyksTWU9TCgzNTE0Nyk7Y29uc3QgVT1mdW5jdGlvbiBhZShZKXt2YXIgVz0oMCxNZS55aSkoWSk7ZnVuY3Rpb24gTihlZSxxKXt2YXIgSj1XKChlZT0oMCxtZS5COCkoZWUpKS5yLChxPSgwLG1lLkI4KShxKSkuciksc2U9''@;'; + put 'put ''VyhlZS5nLHEuZyksb2U9VyhlZS5iLHEuYiksY2U9KDAsTWUuWlApKGVlLm9wYWNpdHkscS5vcGFjaXR5KTtyZXR1cm4gZnVuY3Rpb24oZGUpe3JldHVybiBlZS5yPUooZGUpLGVlLmc9c2UoZGUpLGVlLmI9b2UoZGUpLGVlLm9wYWNpdHk9Y2UoZGUpLGVlKyIifX1yZXR1cm4gTi5nYW1tYT1h''@;'; + put 'put ''ZSxOfSgxKTtmdW5jdGlvbiBRKGFlKXtyZXR1cm4gZnVuY3Rpb24oWSl7dmFyIEosc2UsVz1ZLmxlbmd0aCxOPW5ldyBBcnJheShXKSxlZT1uZXcgQXJyYXkoVykscT1uZXcgQXJyYXkoVyk7Zm9yKEo9MDtKPFc7KytKKXNlPSgwLG1lLkI4KShZW0pdKSxOW0pdPXNlLnJ8fDAsZWVbSl09c2Uu''@;'; + put 'put ''Z3x8MCxxW0pdPXNlLmJ8fDA7cmV0dXJuIE49YWUoTiksZWU9YWUoZWUpLHE9YWUocSksc2Uub3BhY2l0eT0xLGZ1bmN0aW9uKG9lKXtyZXR1cm4gc2Uucj1OKG9lKSxzZS5nPWVlKG9lKSxzZS5iPXEob2UpLHNlKyIifX19dmFyIFo9UShCLlopLGllPVEoRS5aKX0sMjMwOTY6KFhlLEplLEwp''@;'; + put 'put ''PT57InVzZSBzdHJpY3QiO0wuZChKZSx7WjooKT0+UX0pO3ZhciBtZT1MKDY3MzgpLEI9L1stK10/KD86XGQrXC4/XGQqfFwuP1xkKykoPzpbZUVdWy0rXT9cZCspPy9nLEU9bmV3IFJlZ0V4cChCLnNvdXJjZSwiZyIpO2Z1bmN0aW9uIFEoWixpZSl7dmFyIFksVyxOLGFlPUIubGFzdEluZGV4''@;'; + put 'put ''PUUubGFzdEluZGV4PTAsZWU9LTEscT1bXSxKPVtdO2ZvcihaKz0iIixpZSs9IiI7KFk9Qi5leGVjKFopKSYmKFc9RS5leGVjKGllKSk7KShOPVcuaW5kZXgpPmFlJiYoTj1pZS5zbGljZShhZSxOKSxxW2VlXT9xW2VlXSs9TjpxWysrZWVdPU4pLChZPVlbMF0pPT09KFc9V1swXSk/cVtlZV0/''@;'; + put 'put ''cVtlZV0rPVc6cVsrK2VlXT1XOihxWysrZWVdPW51bGwsSi5wdXNoKHtpOmVlLHg6KDAsbWUuWikoWSxXKX0pKSxhZT1FLmxhc3RJbmRleDtyZXR1cm4gYWU8aWUubGVuZ3RoJiYoTj1pZS5zbGljZShhZSkscVtlZV0/cVtlZV0rPU46cVsrK2VlXT1OKSxxLmxlbmd0aDwyP0pbMF0/ZnVuY3Rp''@;'; + put 'put ''b24gVShaKXtyZXR1cm4gZnVuY3Rpb24oaWUpe3JldHVybiBaKGllKSsiIn19KEpbMF0ueCk6ZnVuY3Rpb24gTWUoWil7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIFp9fShpZSk6KGllPUoubGVuZ3RoLGZ1bmN0aW9uKHNlKXtmb3IodmFyIGNlLG9lPTA7b2U8aWU7KytvZSlxWyhjZT1KW29l''@;'; + put 'put ''XSkuaV09Y2UueChzZSk7cmV0dXJuIHEuam9pbigiIil9KX19LDc1MzQ5OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0IjtMLmQoSmUse1k6KCk9Pk4sdzooKT0+ZWV9KTt2YXIgVSxRLFosaWUsbWU9TCg2NzM4KSxCPTE4MC9NYXRoLlBJLEU9e3RyYW5zbGF0ZVg6MCx0cmFuc2xhdGVZOjAscm90''@;'; + put 'put ''YXRlOjAsc2tld1g6MCxzY2FsZVg6MSxzY2FsZVk6MX07ZnVuY3Rpb24gTWUocSxKLHNlLG9lLGNlLGRlKXt2YXIgdmUsQWUsa2U7cmV0dXJuKHZlPU1hdGguc3FydChxKnErSipKKSkmJihxLz12ZSxKLz12ZSksKGtlPXEqc2UrSipvZSkmJihzZS09cSprZSxvZS09SiprZSksKEFlPU1hdGgu''@;'; + put 'put ''c3FydChzZSpzZStvZSpvZSkpJiYoc2UvPUFlLG9lLz1BZSxrZS89QWUpLHEqb2U8SipzZSYmKHE9LXEsSj0tSixrZT0ta2UsdmU9LXZlKSx7dHJhbnNsYXRlWDpjZSx0cmFuc2xhdGVZOmRlLHJvdGF0ZTpNYXRoLmF0YW4yKEoscSkqQixza2V3WDpNYXRoLmF0YW4oa2UpKkIsc2NhbGVYOnZl''@;'; + put 'put ''LHNjYWxlWTpBZX19ZnVuY3Rpb24gVyhxLEosc2Usb2Upe2Z1bmN0aW9uIGNlKFNlKXtyZXR1cm4gU2UubGVuZ3RoP1NlLnBvcCgpKyIgIjoiIn1yZXR1cm4gZnVuY3Rpb24oU2UsSWUpe3ZhciBUZT1bXSxFZT1bXTtyZXR1cm4gU2U9cShTZSksSWU9cShJZSksZnVuY3Rpb24gZGUoU2UsSWUs''@;'; + put 'put ''VGUsRWUsaGUsTyl7aWYoU2UhPT1UZXx8SWUhPT1FZSl7dmFyIHo9aGUucHVzaCgidHJhbnNsYXRlKCIsbnVsbCxKLG51bGwsc2UpO08ucHVzaCh7aTp6LTQseDooMCxtZS5aKShTZSxUZSl9LHtpOnotMix4OigwLG1lLlopKEllLEVlKX0pfWVsc2UoVGV8fEVlKSYmaGUucHVzaCgidHJhbnNs''@;'; + put 'put ''YXRlKCIrVGUrSitFZStzZSl9KFNlLnRyYW5zbGF0ZVgsU2UudHJhbnNsYXRlWSxJZS50cmFuc2xhdGVYLEllLnRyYW5zbGF0ZVksVGUsRWUpLGZ1bmN0aW9uIHZlKFNlLEllLFRlLEVlKXtTZSE9PUllPyhTZS1JZT4xODA/SWUrPTM2MDpJZS1TZT4xODAmJihTZSs9MzYwKSxFZS5wdXNoKHtp''@;'; + put 'put ''OlRlLnB1c2goY2UoVGUpKyJyb3RhdGUoIixudWxsLG9lKS0yLHg6KDAsbWUuWikoU2UsSWUpfSkpOkllJiZUZS5wdXNoKGNlKFRlKSsicm90YXRlKCIrSWUrb2UpfShTZS5yb3RhdGUsSWUucm90YXRlLFRlLEVlKSxmdW5jdGlvbiBBZShTZSxJZSxUZSxFZSl7U2UhPT1JZT9FZS5wdXNoKHtp''@;'; + put 'put ''OlRlLnB1c2goY2UoVGUpKyJza2V3WCgiLG51bGwsb2UpLTIseDooMCxtZS5aKShTZSxJZSl9KTpJZSYmVGUucHVzaChjZShUZSkrInNrZXdYKCIrSWUrb2UpfShTZS5za2V3WCxJZS5za2V3WCxUZSxFZSksZnVuY3Rpb24ga2UoU2UsSWUsVGUsRWUsaGUsTyl7aWYoU2UhPT1UZXx8SWUhPT1F''@;'; + put 'put ''ZSl7dmFyIHo9aGUucHVzaChjZShoZSkrInNjYWxlKCIsbnVsbCwiLCIsbnVsbCwiKSIpO08ucHVzaCh7aTp6LTQseDooMCxtZS5aKShTZSxUZSl9LHtpOnotMix4OigwLG1lLlopKEllLEVlKX0pfWVsc2UoMSE9PVRlfHwxIT09RWUpJiZoZS5wdXNoKGNlKGhlKSsic2NhbGUoIitUZSsiLCIr''@;'; + put 'put ''RWUrIikiKX0oU2Uuc2NhbGVYLFNlLnNjYWxlWSxJZS5zY2FsZVgsSWUuc2NhbGVZLFRlLEVlKSxTZT1JZT1udWxsLGZ1bmN0aW9uKGhlKXtmb3IodmFyIG5lLE89LTEsej1FZS5sZW5ndGg7KytPPHo7KVRlWyhuZT1FZVtPXSkuaV09bmUueChoZSk7cmV0dXJuIFRlLmpvaW4oIiIpfX19dmFy''@;'; + put 'put ''IE49VyhmdW5jdGlvbiBhZShxKXtyZXR1cm4ibm9uZSI9PT1xP0U6KFV8fChVPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpLFE9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LFo9ZG9jdW1lbnQuZGVmYXVsdFZpZXcpLFUuc3R5bGUudHJhbnNmb3JtPXEscT1aLmdldENvbXB1dGVkU3R5''@;'; + put 'put ''bGUoUS5hcHBlbmRDaGlsZChVKSxudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKCJ0cmFuc2Zvcm0iKSxRLnJlbW92ZUNoaWxkKFUpLE1lKCsocT1xLnNsaWNlKDcsLTEpLnNwbGl0KCIsIikpWzBdLCtxWzFdLCtxWzJdLCtxWzNdLCtxWzRdLCtxWzVdKSl9LCJweCwgIiwicHgpIiwiZGVnKSIpLGVl''@;'; + put 'put ''PVcoZnVuY3Rpb24gWShxKXtyZXR1cm4gbnVsbCE9cSYmKGllfHwoaWU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsImciKSksaWUuc2V0QXR0cmlidXRlKCJ0cmFuc2Zvcm0iLHEpLHE9aWUudHJhbnNmb3JtLmJhc2VWYWwuY29uc29saWRh''@;'; + put 'put ''dGUoKSk/TWUoKHE9cS5tYXRyaXgpLmEscS5iLHEuYyxxLmQscS5lLHEuZik6RX0sIiwgIiwiKSIsIikiKX0sNzYyNTc6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO0wuZChKZSx7WjooKT0+aWV9KTt2YXIgbWU9TWF0aC5TUVJUMjtmdW5jdGlvbiBVKGFlKXtyZXR1cm4oKGFlPU1hdGguZXhw''@;'; + put 'put ''KGFlKSkrMS9hZSkvMn1mdW5jdGlvbiBpZShhZSxZKXt2YXIgdmUsQWUsVz1hZVswXSxOPWFlWzFdLGVlPWFlWzJdLHNlPVlbMl0sb2U9WVswXS1XLGNlPVlbMV0tTixkZT1vZSpvZStjZSpjZTtpZihkZTwxZS0xMilBZT1NYXRoLmxvZyhzZS9lZSkvbWUsdmU9ZnVuY3Rpb24oaGUpe3JldHVy''@;'; + put 'put ''bltXK2hlKm9lLE4raGUqY2UsZWUqTWF0aC5leHAobWUqaGUqQWUpXX07ZWxzZXt2YXIga2U9TWF0aC5zcXJ0KGRlKSxTZT0oc2Uqc2UtZWUqZWUrNCpkZSkvKDIqZWUqMiprZSksSWU9KHNlKnNlLWVlKmVlLTQqZGUpLygyKnNlKjIqa2UpLFRlPU1hdGgubG9nKE1hdGguc3FydChTZSpTZSsx''@;'; + put 'put ''KS1TZSksRWU9TWF0aC5sb2coTWF0aC5zcXJ0KEllKkllKzEpLUllKTtBZT0oRWUtVGUpL21lLHZlPWZ1bmN0aW9uKGhlKXt2YXIgTz1oZSpBZSx6PVUoVGUpLG5lPWVlLygyKmtlKSooeipmdW5jdGlvbiBaKGFlKXtyZXR1cm4oKGFlPU1hdGguZXhwKDIqYWUpKS0xKS8oYWUrMSl9KG1lKk8r''@;'; + put 'put ''VGUpLWZ1bmN0aW9uIFEoYWUpe3JldHVybigoYWU9TWF0aC5leHAoYWUpKS0xL2FlKS8yfShUZSkpO3JldHVybltXK25lKm9lLE4rbmUqY2UsZWUqei9VKG1lKk8rVGUpXX19cmV0dXJuIHZlLmR1cmF0aW9uPTFlMypBZSx2ZX19LDM4MTg0OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0IjtMLnIo''@;'; + put 'put ''SmUpLEwuZChKZSx7cGF0aDooKT0+Wn0pO3ZhciBtZT1NYXRoLlBJLEI9MiptZSxFPTFlLTYsTWU9Qi1FO2Z1bmN0aW9uIFUoKXt0aGlzLl94MD10aGlzLl95MD10aGlzLl94MT10aGlzLl95MT1udWxsLHRoaXMuXz0iIn1mdW5jdGlvbiBRKCl7cmV0dXJuIG5ldyBVfVUucHJvdG90eXBlPVEu''@;'; + put 'put ''cHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpVLG1vdmVUbzpmdW5jdGlvbihpZSxhZSl7dGhpcy5fKz0iTSIrKHRoaXMuX3gwPXRoaXMuX3gxPStpZSkrIiwiKyh0aGlzLl95MD10aGlzLl95MT0rYWUpfSxjbG9zZVBhdGg6ZnVuY3Rpb24oKXtudWxsIT09dGhpcy5feDEmJih0aGlzLl94MT10aGlz''@;'; + put 'put ''Ll94MCx0aGlzLl95MT10aGlzLl95MCx0aGlzLl8rPSJaIil9LGxpbmVUbzpmdW5jdGlvbihpZSxhZSl7dGhpcy5fKz0iTCIrKHRoaXMuX3gxPStpZSkrIiwiKyh0aGlzLl95MT0rYWUpfSxxdWFkcmF0aWNDdXJ2ZVRvOmZ1bmN0aW9uKGllLGFlLFksVyl7dGhpcy5fKz0iUSIrICtpZSsiLCIr''@;'; + put 'put ''ICthZSsiLCIrKHRoaXMuX3gxPStZKSsiLCIrKHRoaXMuX3kxPStXKX0sYmV6aWVyQ3VydmVUbzpmdW5jdGlvbihpZSxhZSxZLFcsTixlZSl7dGhpcy5fKz0iQyIrICtpZSsiLCIrICthZSsiLCIrICtZKyIsIisgK1crIiwiKyh0aGlzLl94MT0rTikrIiwiKyh0aGlzLl95MT0rZWUpfSxhcmNU''@;'; + put 'put ''bzpmdW5jdGlvbihpZSxhZSxZLFcsTil7dmFyIGVlPXRoaXMuX3gxLHE9dGhpcy5feTEsSj0oWT0rWSktKGllPStpZSksc2U9KFc9K1cpLShhZT0rYWUpLG9lPWVlLWllLGNlPXEtYWUsZGU9b2Uqb2UrY2UqY2U7aWYoKE49K04pPDApdGhyb3cgbmV3IEVycm9yKCJuZWdhdGl2ZSByYWRpdXM6''@;'; + put 'put ''ICIrTik7aWYobnVsbD09PXRoaXMuX3gxKXRoaXMuXys9Ik0iKyh0aGlzLl94MT1pZSkrIiwiKyh0aGlzLl95MT1hZSk7ZWxzZSBpZihkZT5FKWlmKE1hdGguYWJzKGNlKkotc2Uqb2UpPkUmJk4pe3ZhciB2ZT1ZLWVlLEFlPVctcSxrZT1KKkorc2Uqc2UsU2U9dmUqdmUrQWUqQWUsSWU9TWF0''@;'; + put 'put ''aC5zcXJ0KGtlKSxUZT1NYXRoLnNxcnQoZGUpLEVlPU4qTWF0aC50YW4oKG1lLU1hdGguYWNvcygoa2UrZGUtU2UpLygyKkllKlRlKSkpLzIpLGhlPUVlL1RlLE89RWUvSWU7TWF0aC5hYnMoaGUtMSk+RSYmKHRoaXMuXys9IkwiKyhpZStoZSpvZSkrIiwiKyhhZStoZSpjZSkpLHRoaXMuXys9''@;'; + put 'put ''IkEiK04rIiwiK04rIiwwLDAsIisgKyhjZSp2ZT5vZSpBZSkrIiwiKyh0aGlzLl94MT1pZStPKkopKyIsIisodGhpcy5feTE9YWUrTypzZSl9ZWxzZSB0aGlzLl8rPSJMIisodGhpcy5feDE9aWUpKyIsIisodGhpcy5feTE9YWUpfSxhcmM6ZnVuY3Rpb24oaWUsYWUsWSxXLE4sZWUpe2llPStp''@;'; + put 'put ''ZSxhZT0rYWUsZWU9ISFlZTt2YXIgcT0oWT0rWSkqTWF0aC5jb3MoVyksSj1ZKk1hdGguc2luKFcpLHNlPWllK3Esb2U9YWUrSixjZT0xXmVlLGRlPWVlP1ctTjpOLVc7aWYoWTwwKXRocm93IG5ldyBFcnJvcigibmVnYXRpdmUgcmFkaXVzOiAiK1kpO251bGw9PT10aGlzLl94MT90aGlzLl8r''@;'; + put 'put ''PSJNIitzZSsiLCIrb2U6KE1hdGguYWJzKHRoaXMuX3gxLXNlKT5FfHxNYXRoLmFicyh0aGlzLl95MS1vZSk+RSkmJih0aGlzLl8rPSJMIitzZSsiLCIrb2UpLFkmJihkZTwwJiYoZGU9ZGUlQitCKSxkZT5NZT90aGlzLl8rPSJBIitZKyIsIitZKyIsMCwxLCIrY2UrIiwiKyhpZS1xKSsiLCIr''@;'; + put 'put ''KGFlLUopKyJBIitZKyIsIitZKyIsMCwxLCIrY2UrIiwiKyh0aGlzLl94MT1zZSkrIiwiKyh0aGlzLl95MT1vZSk6ZGU+RSYmKHRoaXMuXys9IkEiK1krIiwiK1krIiwwLCIrICsoZGU+PW1lKSsiLCIrY2UrIiwiKyh0aGlzLl94MT1pZStZKk1hdGguY29zKE4pKSsiLCIrKHRoaXMuX3kxPWFl''@;'; + put 'put ''K1kqTWF0aC5zaW4oTikpKSl9LHJlY3Q6ZnVuY3Rpb24oaWUsYWUsWSxXKXt0aGlzLl8rPSJNIisodGhpcy5feDA9dGhpcy5feDE9K2llKSsiLCIrKHRoaXMuX3kwPXRoaXMuX3kxPSthZSkrImgiKyArWSsidiIrICtXKyJoIistWSsiWiJ9LHRvU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIHRo''@;'; + put 'put ''aXMuX319O2NvbnN0IFo9UX0sNzUwMDooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7TC5kKEplLHtaOigpPT5VfSk7dmFyIG1lPUwoMzYxNzUpLEI9TCg1MzUxNyk7ZnVuY3Rpb24gRShRKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgWj10aGlzLm93bmVyRG9jdW1lbnQsaWU9dGhpcy5uYW1lc3Bh''@;'; + put 'put ''Y2VVUkk7cmV0dXJuIGllPT09Qi5QJiZaLmRvY3VtZW50RWxlbWVudC5uYW1lc3BhY2VVUkk9PT1CLlA/Wi5jcmVhdGVFbGVtZW50KFEpOlouY3JlYXRlRWxlbWVudE5TKGllLFEpfX1mdW5jdGlvbiBNZShRKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5vd25lckRvY3VtZW50LmNy''@;'; + put 'put ''ZWF0ZUVsZW1lbnROUyhRLnNwYWNlLFEubG9jYWwpfX1mdW5jdGlvbiBVKFEpe3ZhciBaPSgwLG1lLlopKFEpO3JldHVybihaLmxvY2FsP01lOkUpKFopfX0sNjk0MTU6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO0wucihKZSksTC5kKEplLHtjbGllbnRQb2ludDooKT0+Vy5aLGNyZWF0ZToo''@;'; + put 'put ''KT0+RSxjcmVhdG9yOigpPT5tZS5aLGN1c3RvbUV2ZW50OigpPT5BZS5fSCxldmVudDooKT0+QWUuQixsb2NhbDooKT0+VSxtYXRjaGVyOigpPT5aLlosbW91c2U6KCk9PmllLlosbmFtZXNwYWNlOigpPT5hZS5aLG5hbWVzcGFjZXM6KCk9PlkuWixzZWxlY3Q6KCk9PkIuWixzZWxlY3RBbGw6''@;'; + put 'put ''KCk9PmVlLHNlbGVjdGlvbjooKT0+Ti5aUCxzZWxlY3RvcjooKT0+cS5aLHNlbGVjdG9yQWxsOigpPT5KLlosc3R5bGU6KCk9PnNlLlMsdG91Y2g6KCk9Pm9lLlosdG91Y2hlczooKT0+ZGUsd2luZG93OigpPT52ZS5afSk7dmFyIG1lPUwoNzUwMCksQj1MKDUyMDE2KTtmdW5jdGlvbiBFKGtl''@;'; + put 'put ''KXtyZXR1cm4oMCxCLlopKCgwLG1lLlopKGtlKS5jYWxsKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCkpfXZhciBNZT0wO2Z1bmN0aW9uIFUoKXtyZXR1cm4gbmV3IFF9ZnVuY3Rpb24gUSgpe3RoaXMuXz0iQCIrKCsrTWUpLnRvU3RyaW5nKDM2KX1RLnByb3RvdHlwZT1VLnByb3RvdHlwZT17''@;'; + put 'put ''Y29uc3RydWN0b3I6USxnZXQ6ZnVuY3Rpb24oa2Upe2Zvcih2YXIgU2U9dGhpcy5fOyEoU2UgaW4ga2UpOylpZighKGtlPWtlLnBhcmVudE5vZGUpKXJldHVybjtyZXR1cm4ga2VbU2VdfSxzZXQ6ZnVuY3Rpb24oa2UsU2Upe3JldHVybiBrZVt0aGlzLl9dPVNlfSxyZW1vdmU6ZnVuY3Rpb24o''@;'; + put 'put ''a2Upe3JldHVybiB0aGlzLl8gaW4ga2UmJmRlbGV0ZSBrZVt0aGlzLl9dfSx0b1N0cmluZzpmdW5jdGlvbigpe3JldHVybiB0aGlzLl99fTt2YXIgWj1MKDk3OTA1KSxpZT1MKDY2MDczKSxhZT1MKDM2MTc1KSxZPUwoNTM1MTcpLFc9TCgyNTk0MSksTj1MKDgyNzAwKTtmdW5jdGlvbiBlZShr''@;'; + put 'put ''ZSl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBrZT9uZXcgTi5ZMShbZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChrZSldLFtkb2N1bWVudC5kb2N1bWVudEVsZW1lbnRdKTpuZXcgTi5ZMShbbnVsbD09a2U/W106a2VdLE4uSnopfXZhciBxPUwoMjk3NDIpLEo9TCgzMjAzNyksc2U9TCgyNDQ3''@;'; + put 'put ''Niksb2U9TCgzMDI1NiksY2U9TCg3NTgxOSk7ZnVuY3Rpb24gZGUoa2UsU2Upe251bGw9PVNlJiYoU2U9KDAsY2UuWikoKS50b3VjaGVzKTtmb3IodmFyIEllPTAsVGU9U2U/U2UubGVuZ3RoOjAsRWU9bmV3IEFycmF5KFRlKTtJZTxUZTsrK0llKUVlW0llXT0oMCxXLlopKGtlLFNlW0llXSk7''@;'; + put 'put ''cmV0dXJuIEVlfXZhciB2ZT1MKDI0NDIpLEFlPUwoNjE3NDYpfSw5NzkwNTooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbWUoQil7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWF0Y2hlcyhCKX19TC5kKEplLHtaOigpPT5tZX0pfSw2NjA3MzooWGUsSmUsTCk9Pnsi''@;'; + put 'put ''dXNlIHN0cmljdCI7TC5kKEplLHtaOigpPT5FfSk7dmFyIG1lPUwoNzU4MTkpLEI9TCgyNTk0MSk7ZnVuY3Rpb24gRShNZSl7dmFyIFU9KDAsbWUuWikoKTtyZXR1cm4gVS5jaGFuZ2VkVG91Y2hlcyYmKFU9VS5jaGFuZ2VkVG91Y2hlc1swXSksKDAsQi5aKShNZSxVKX19LDM2MTc1OihYZSxK''@;'; + put 'put ''ZSxMKT0+eyJ1c2Ugc3RyaWN0IjtMLmQoSmUse1o6KCk9PkJ9KTt2YXIgbWU9TCg1MzUxNyk7ZnVuY3Rpb24gQihFKXt2YXIgTWU9RSs9IiIsVT1NZS5pbmRleE9mKCI6Iik7cmV0dXJuIFU+PTAmJiJ4bWxucyIhPT0oTWU9RS5zbGljZSgwLFUpKSYmKEU9RS5zbGljZShVKzEpKSxtZS5aLmhh''@;'; + put 'put ''c093blByb3BlcnR5KE1lKT97c3BhY2U6bWUuWltNZV0sbG9jYWw6RX06RX19LDUzNTE3OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0IjtMLmQoSmUse1A6KCk9Pm1lLFo6KCk9PkJ9KTt2YXIgbWU9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiO2NvbnN0IEI9e3N2ZzoiaHR0cDovL3d3''@;'; + put 'put ''dy53My5vcmcvMjAwMC9zdmciLHhodG1sOm1lLHhsaW5rOiJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIix4bWw6Imh0dHA6Ly93d3cudzMub3JnL1hNTC8xOTk4L25hbWVzcGFjZSIseG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAveG1sbnMvIn19LDI1OTQxOihYZSxKZSxMKT0+''@;'; + put 'put ''eyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBtZShCLEUpe3ZhciBNZT1CLm93bmVyU1ZHRWxlbWVudHx8QjtpZihNZS5jcmVhdGVTVkdQb2ludCl7dmFyIFU9TWUuY3JlYXRlU1ZHUG9pbnQoKTtyZXR1cm4gVS54PUUuY2xpZW50WCxVLnk9RS5jbGllbnRZLFsoVT1VLm1hdHJpeFRyYW5zZm9ybShC''@;'; + put 'put ''LmdldFNjcmVlbkNUTSgpLmludmVyc2UoKSkpLngsVS55XX12YXIgUT1CLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3JldHVybltFLmNsaWVudFgtUS5sZWZ0LUIuY2xpZW50TGVmdCxFLmNsaWVudFktUS50b3AtQi5jbGllbnRUb3BdfUwuZChKZSx7WjooKT0+bWV9KX0sNTIwMTY6KFhlLEpl''@;'; + put 'put ''LEwpPT57InVzZSBzdHJpY3QiO0wuZChKZSx7WjooKT0+Qn0pO3ZhciBtZT1MKDgyNzAwKTtmdW5jdGlvbiBCKEUpe3JldHVybiJzdHJpbmciPT10eXBlb2YgRT9uZXcgbWUuWTEoW1tkb2N1bWVudC5xdWVyeVNlbGVjdG9yKEUpXV0sW2RvY3VtZW50LmRvY3VtZW50RWxlbWVudF0pOm5ldyBt''@;'; + put 'put ''ZS5ZMShbW0VdXSxtZS5Keil9fSw4MjcwMDooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7TC5kKEplLHtZMTooKT0+bnIsWlA6KCk9PnFuLEp6OigpPT5wcn0pO3ZhciBtZT1MKDI5NzQyKSxFPUwoMzIwMzcpLFU9TCg5NzkwNSk7ZnVuY3Rpb24gWihXdCl7cmV0dXJuIG5ldyBBcnJheShXdC5s''@;'; + put 'put ''ZW5ndGgpfWZ1bmN0aW9uIGFlKFd0LHBuKXt0aGlzLm93bmVyRG9jdW1lbnQ9V3Qub3duZXJEb2N1bWVudCx0aGlzLm5hbWVzcGFjZVVSST1XdC5uYW1lc3BhY2VVUkksdGhpcy5fbmV4dD1udWxsLHRoaXMuX3BhcmVudD1XdCx0aGlzLl9fZGF0YV9fPXBufWZ1bmN0aW9uIE4oV3QscG4sS24s''@;'; + put 'put ''TnQsc24sVW4pe2Zvcih2YXIgdG4sd249MCx6bj1wbi5sZW5ndGgsVHI9VW4ubGVuZ3RoO3duPFRyOysrd24pKHRuPXBuW3duXSk/KHRuLl9fZGF0YV9fPVVuW3duXSxOdFt3bl09dG4pOktuW3duXT1uZXcgYWUoV3QsVW5bd25dKTtmb3IoO3duPHpuOysrd24pKHRuPXBuW3duXSkmJihzblt3''@;'; + put 'put ''bl09dG4pfWZ1bmN0aW9uIGVlKFd0LHBuLEtuLE50LHNuLFVuLHduKXt2YXIgdG4sem4sdW4sVHI9e30sQm49cG4ubGVuZ3RoLGtyPVVuLmxlbmd0aCxtbj1uZXcgQXJyYXkoQm4pO2Zvcih0bj0wO3RuPEJuOysrdG4pKHpuPXBuW3RuXSkmJihtblt0bl09dW49IiQiK3duLmNhbGwoem4sem4u''@;'; + put 'put ''X19kYXRhX18sdG4scG4pLHVuIGluIFRyP3NuW3RuXT16bjpUclt1bl09em4pO2Zvcih0bj0wO3RuPGtyOysrdG4pKHpuPVRyW3VuPSIkIit3bi5jYWxsKFd0LFVuW3RuXSx0bixVbildKT8oTnRbdG5dPXpuLHpuLl9fZGF0YV9fPVVuW3RuXSxUclt1bl09bnVsbCk6S25bdG5dPW5ldyBhZShX''@;'; + put 'put ''dCxVblt0bl0pO2Zvcih0bj0wO3RuPEJuOysrdG4pKHpuPXBuW3RuXSkmJlRyW21uW3RuXV09PT16biYmKHNuW3RuXT16bil9ZnVuY3Rpb24gdmUoV3QscG4pe3JldHVybiBXdDxwbj8tMTpXdD5wbj8xOld0Pj1wbj8wOk5hTn1hZS5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOmFlLGFwcGVuZENo''@;'; + put 'put ''aWxkOmZ1bmN0aW9uKFd0KXtyZXR1cm4gdGhpcy5fcGFyZW50Lmluc2VydEJlZm9yZShXdCx0aGlzLl9uZXh0KX0saW5zZXJ0QmVmb3JlOmZ1bmN0aW9uKFd0LHBuKXtyZXR1cm4gdGhpcy5fcGFyZW50Lmluc2VydEJlZm9yZShXdCxwbil9LHF1ZXJ5U2VsZWN0b3I6ZnVuY3Rpb24oV3Qpe3Jl''@;'; + put 'put ''dHVybiB0aGlzLl9wYXJlbnQucXVlcnlTZWxlY3RvcihXdCl9LHF1ZXJ5U2VsZWN0b3JBbGw6ZnVuY3Rpb24oV3Qpe3JldHVybiB0aGlzLl9wYXJlbnQucXVlcnlTZWxlY3RvckFsbChXdCl9fTt2YXIgaGU9TCgzNjE3NSk7ZnVuY3Rpb24gTyhXdCl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5y''@;'; + put 'put ''ZW1vdmVBdHRyaWJ1dGUoV3QpfX1mdW5jdGlvbiB6KFd0KXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnJlbW92ZUF0dHJpYnV0ZU5TKFd0LnNwYWNlLFd0LmxvY2FsKX19ZnVuY3Rpb24gbmUoV3QscG4pe3JldHVybiBmdW5jdGlvbigpe3RoaXMuc2V0QXR0cmlidXRlKFd0LHBuKX19ZnVuY3Rp''@;'; + put 'put ''b24gdGUoV3QscG4pe3JldHVybiBmdW5jdGlvbigpe3RoaXMuc2V0QXR0cmlidXRlTlMoV3Quc3BhY2UsV3QubG9jYWwscG4pfX1mdW5jdGlvbiB4KFd0LHBuKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgS249cG4uYXBwbHkodGhpcyxhcmd1bWVudHMpO251bGw9PUtuP3RoaXMucmVtb3ZlQXR0''@;'; + put 'put ''cmlidXRlKFd0KTp0aGlzLnNldEF0dHJpYnV0ZShXdCxLbil9fWZ1bmN0aW9uIFAoV3QscG4pe3JldHVybiBmdW5jdGlvbigpe3ZhciBLbj1wbi5hcHBseSh0aGlzLGFyZ3VtZW50cyk7bnVsbD09S24/dGhpcy5yZW1vdmVBdHRyaWJ1dGVOUyhXdC5zcGFjZSxXdC5sb2NhbCk6dGhpcy5zZXRB''@;'; + put 'put ''dHRyaWJ1dGVOUyhXdC5zcGFjZSxXdC5sb2NhbCxLbil9fXZhciBUPUwoMjQ0NzYpO2Z1bmN0aW9uIFMoV3Qpe3JldHVybiBmdW5jdGlvbigpe2RlbGV0ZSB0aGlzW1d0XX19ZnVuY3Rpb24gRihXdCxwbil7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpc1tXdF09cG59fWZ1bmN0aW9uIHllKFd0LHBu''@;'; + put 'put ''KXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgS249cG4uYXBwbHkodGhpcyxhcmd1bWVudHMpO251bGw9PUtuP2RlbGV0ZSB0aGlzW1d0XTp0aGlzW1d0XT1Lbn19ZnVuY3Rpb24gRGUoV3Qpe3JldHVybiBXdC50cmltKCkuc3BsaXQoL158XHMrLyl9ZnVuY3Rpb24gUGUoV3Qpe3JldHVybiBXdC5j''@;'; + put 'put ''bGFzc0xpc3R8fG5ldyBRZShXdCl9ZnVuY3Rpb24gUWUoV3Qpe3RoaXMuX25vZGU9V3QsdGhpcy5fbmFtZXM9RGUoV3QuZ2V0QXR0cmlidXRlKCJjbGFzcyIpfHwiIil9ZnVuY3Rpb24gJGUoV3QscG4pe2Zvcih2YXIgS249UGUoV3QpLE50PS0xLHNuPXBuLmxlbmd0aDsrK050PHNuOylLbi5h''@;'; + put 'put ''ZGQocG5bTnRdKX1mdW5jdGlvbiBndChXdCxwbil7Zm9yKHZhciBLbj1QZShXdCksTnQ9LTEsc249cG4ubGVuZ3RoOysrTnQ8c247KUtuLnJlbW92ZShwbltOdF0pfWZ1bmN0aW9uIHd0KFd0KXtyZXR1cm4gZnVuY3Rpb24oKXskZSh0aGlzLFd0KX19ZnVuY3Rpb24gbXQoV3Qpe3JldHVybiBm''@;'; + put 'put ''dW5jdGlvbigpe2d0KHRoaXMsV3QpfX1mdW5jdGlvbiB2dChXdCxwbil7cmV0dXJuIGZ1bmN0aW9uKCl7KHBuLmFwcGx5KHRoaXMsYXJndW1lbnRzKT8kZTpndCkodGhpcyxXdCl9fWZ1bmN0aW9uIGh0KCl7dGhpcy50ZXh0Q29udGVudD0iIn1mdW5jdGlvbiBCdChXdCl7cmV0dXJuIGZ1bmN0''@;'; + put 'put ''aW9uKCl7dGhpcy50ZXh0Q29udGVudD1XdH19ZnVuY3Rpb24gb24oV3Qpe3JldHVybiBmdW5jdGlvbigpe3ZhciBwbj1XdC5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dGhpcy50ZXh0Q29udGVudD1udWxsPT1wbj8iIjpwbn19ZnVuY3Rpb24gdHQoKXt0aGlzLmlubmVySFRNTD0iIn1mdW5jdGlv''@;'; + put 'put ''biBldChXdCl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5pbm5lckhUTUw9V3R9fWZ1bmN0aW9uIGF0KFd0KXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgcG49V3QuYXBwbHkodGhpcyxhcmd1bWVudHMpO3RoaXMuaW5uZXJIVE1MPW51bGw9PXBuPyIiOnBufX1mdW5jdGlvbiBDdCgpe3RoaXMubmV4''@;'; + put 'put ''dFNpYmxpbmcmJnRoaXMucGFyZW50Tm9kZS5hcHBlbmRDaGlsZCh0aGlzKX1mdW5jdGlvbiBIdCgpe3RoaXMucHJldmlvdXNTaWJsaW5nJiZ0aGlzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHRoaXMsdGhpcy5wYXJlbnROb2RlLmZpcnN0Q2hpbGQpfVFlLnByb3RvdHlwZT17YWRkOmZ1bmN0''@;'; + put 'put ''aW9uKFd0KXt0aGlzLl9uYW1lcy5pbmRleE9mKFd0KTwwJiYodGhpcy5fbmFtZXMucHVzaChXdCksdGhpcy5fbm9kZS5zZXRBdHRyaWJ1dGUoImNsYXNzIix0aGlzLl9uYW1lcy5qb2luKCIgIikpKX0scmVtb3ZlOmZ1bmN0aW9uKFd0KXt2YXIgcG49dGhpcy5fbmFtZXMuaW5kZXhPZihXdCk7''@;'; + put 'put ''cG4+PTAmJih0aGlzLl9uYW1lcy5zcGxpY2UocG4sMSksdGhpcy5fbm9kZS5zZXRBdHRyaWJ1dGUoImNsYXNzIix0aGlzLl9uYW1lcy5qb2luKCIgIikpKX0sY29udGFpbnM6ZnVuY3Rpb24oV3Qpe3JldHVybiB0aGlzLl9uYW1lcy5pbmRleE9mKFd0KT49MH19O3ZhciBVZT1MKDc1MDApO2Z1''@;'; + put 'put ''bmN0aW9uIGp0KCl7cmV0dXJuIG51bGx9ZnVuY3Rpb24gZ24oKXt2YXIgV3Q9dGhpcy5wYXJlbnROb2RlO1d0JiZXdC5yZW1vdmVDaGlsZCh0aGlzKX1mdW5jdGlvbiB5bigpe3ZhciBXdD10aGlzLmNsb25lTm9kZSghMSkscG49dGhpcy5wYXJlbnROb2RlO3JldHVybiBwbj9wbi5pbnNlcnRC''@;'; + put 'put ''ZWZvcmUoV3QsdGhpcy5uZXh0U2libGluZyk6V3R9ZnVuY3Rpb24gbG4oKXt2YXIgV3Q9dGhpcy5jbG9uZU5vZGUoITApLHBuPXRoaXMucGFyZW50Tm9kZTtyZXR1cm4gcG4/cG4uaW5zZXJ0QmVmb3JlKFd0LHRoaXMubmV4dFNpYmxpbmcpOld0fXZhciBlcj1MKDYxNzQ2KSxzcj1MKDI0NDIp''@;'; + put 'put ''O2Z1bmN0aW9uIFhuKFd0LHBuLEtuKXt2YXIgTnQ9KDAsc3IuWikoV3QpLHNuPU50LkN1c3RvbUV2ZW50OyJmdW5jdGlvbiI9PXR5cGVvZiBzbj9zbj1uZXcgc24ocG4sS24pOihzbj1OdC5kb2N1bWVudC5jcmVhdGVFdmVudCgiRXZlbnQiKSxLbj8oc24uaW5pdEV2ZW50KHBuLEtuLmJ1YmJs''@;'; + put 'put ''ZXMsS24uY2FuY2VsYWJsZSksc24uZGV0YWlsPUtuLmRldGFpbCk6c24uaW5pdEV2ZW50KHBuLCExLCExKSksV3QuZGlzcGF0Y2hFdmVudChzbil9ZnVuY3Rpb24gRnIoV3QscG4pe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBYbih0aGlzLFd0LHBuKX19ZnVuY3Rpb24geHIoV3QscG4pe3Jl''@;'; + put 'put ''dHVybiBmdW5jdGlvbigpe3JldHVybiBYbih0aGlzLFd0LHBuLmFwcGx5KHRoaXMsYXJndW1lbnRzKSl9fXZhciBwcj1bbnVsbF07ZnVuY3Rpb24gbnIoV3QscG4pe3RoaXMuX2dyb3Vwcz1XdCx0aGlzLl9wYXJlbnRzPXBufWZ1bmN0aW9uIEFuKCl7cmV0dXJuIG5ldyBucihbW2RvY3VtZW50''@;'; + put 'put ''LmRvY3VtZW50RWxlbWVudF1dLHByKX1uci5wcm90b3R5cGU9QW4ucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpucixzZWxlY3Q6ZnVuY3Rpb24gQihXdCl7ImZ1bmN0aW9uIiE9dHlwZW9mIFd0JiYoV3Q9KDAsbWUuWikoV3QpKTtmb3IodmFyIHBuPXRoaXMuX2dyb3VwcyxLbj1wbi5sZW5ndGgs''@;'; + put 'put ''TnQ9bmV3IEFycmF5KEtuKSxzbj0wO3NuPEtuOysrc24pZm9yKHZhciB6bixUcixVbj1wbltzbl0sd249VW4ubGVuZ3RoLHRuPU50W3NuXT1uZXcgQXJyYXkod24pLEJuPTA7Qm48d247KytCbikoem49VW5bQm5dKSYmKFRyPVd0LmNhbGwoem4sem4uX19kYXRhX18sQm4sVW4pKSYmKCJfX2Rh''@;'; + put 'put ''dGFfXyJpbiB6biYmKFRyLl9fZGF0YV9fPXpuLl9fZGF0YV9fKSx0bltCbl09VHIpO3JldHVybiBuZXcgbnIoTnQsdGhpcy5fcGFyZW50cyl9LHNlbGVjdEFsbDpmdW5jdGlvbiBNZShXdCl7ImZ1bmN0aW9uIiE9dHlwZW9mIFd0JiYoV3Q9KDAsRS5aKShXdCkpO2Zvcih2YXIgcG49dGhpcy5f''@;'; + put 'put ''Z3JvdXBzLEtuPXBuLmxlbmd0aCxOdD1bXSxzbj1bXSxVbj0wO1VuPEtuOysrVW4pZm9yKHZhciB6bix3bj1wbltVbl0sdG49d24ubGVuZ3RoLFRyPTA7VHI8dG47KytUcikoem49d25bVHJdKSYmKE50LnB1c2goV3QuY2FsbCh6bix6bi5fX2RhdGFfXyxUcix3bikpLHNuLnB1c2goem4pKTty''@;'; + put 'put ''ZXR1cm4gbmV3IG5yKE50LHNuKX0sZmlsdGVyOmZ1bmN0aW9uIFEoV3QpeyJmdW5jdGlvbiIhPXR5cGVvZiBXdCYmKFd0PSgwLFUuWikoV3QpKTtmb3IodmFyIHBuPXRoaXMuX2dyb3VwcyxLbj1wbi5sZW5ndGgsTnQ9bmV3IEFycmF5KEtuKSxzbj0wO3NuPEtuOysrc24pZm9yKHZhciB6bixV''@;'; + put 'put ''bj1wbltzbl0sd249VW4ubGVuZ3RoLHRuPU50W3NuXT1bXSxUcj0wO1RyPHduOysrVHIpKHpuPVVuW1RyXSkmJld0LmNhbGwoem4sem4uX19kYXRhX18sVHIsVW4pJiZ0bi5wdXNoKHpuKTtyZXR1cm4gbmV3IG5yKE50LHRoaXMuX3BhcmVudHMpfSxkYXRhOmZ1bmN0aW9uIHEoV3QscG4pe2lm''@;'; + put 'put ''KCFXdClyZXR1cm4gdW49bmV3IEFycmF5KHRoaXMuc2l6ZSgpKSxUcj0tMSx0aGlzLmVhY2goZnVuY3Rpb24ob3Ipe3VuWysrVHJdPW9yfSksdW47dmFyIEtuPXBuP2VlOk4sTnQ9dGhpcy5fcGFyZW50cyxzbj10aGlzLl9ncm91cHM7ImZ1bmN0aW9uIiE9dHlwZW9mIFd0JiYoV3Q9ZnVuY3Rp''@;'; + put 'put ''b24gWShXdCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIFd0fX0oV3QpKTtmb3IodmFyIFVuPXNuLmxlbmd0aCx3bj1uZXcgQXJyYXkoVW4pLHRuPW5ldyBBcnJheShVbiksem49bmV3IEFycmF5KFVuKSxUcj0wO1RyPFVuOysrVHIpe3ZhciBCbj1OdFtUcl0sa3I9c25bVHJdLG1uPWtyLmxl''@;'; + put 'put ''bmd0aCx1bj1XdC5jYWxsKEJuLEJuJiZCbi5fX2RhdGFfXyxUcixOdCksY249dW4ubGVuZ3RoLF9uPXRuW1RyXT1uZXcgQXJyYXkoY24pLEd0PXduW1RyXT1uZXcgQXJyYXkoY24pO0tuKEJuLGtyLF9uLEd0LHpuW1RyXT1uZXcgQXJyYXkobW4pLHVuLHBuKTtmb3IodmFyIEluLEpuLFZuPTAs''@;'; + put 'put ''ZW49MDtWbjxjbjsrK1ZuKWlmKEluPV9uW1ZuXSl7Zm9yKFZuPj1lbiYmKGVuPVZuKzEpOyEoSm49R3RbZW5dKSYmKytlbjxjbjspO0luLl9uZXh0PUpufHxudWxsfX1yZXR1cm4od249bmV3IG5yKHduLE50KSkuX2VudGVyPXRuLHduLl9leGl0PXpuLHdufSxlbnRlcjpmdW5jdGlvbiBpZSgp''@;'; + put 'put ''e3JldHVybiBuZXcgbnIodGhpcy5fZW50ZXJ8fHRoaXMuX2dyb3Vwcy5tYXAoWiksdGhpcy5fcGFyZW50cyl9LGV4aXQ6ZnVuY3Rpb24gSigpe3JldHVybiBuZXcgbnIodGhpcy5fZXhpdHx8dGhpcy5fZ3JvdXBzLm1hcChaKSx0aGlzLl9wYXJlbnRzKX0sam9pbjpmdW5jdGlvbiBzZShXdCxw''@;'; + put 'put ''bixLbil7dmFyIE50PXRoaXMuZW50ZXIoKSxzbj10aGlzLFVuPXRoaXMuZXhpdCgpO3JldHVybiBOdD0iZnVuY3Rpb24iPT10eXBlb2YgV3Q/V3QoTnQpOk50LmFwcGVuZChXdCsiIiksbnVsbCE9cG4mJihzbj1wbihzbikpLG51bGw9PUtuP1VuLnJlbW92ZSgpOktuKFVuKSxOdCYmc24/TnQu''@;'; + put 'put ''bWVyZ2Uoc24pLm9yZGVyKCk6c259LG1lcmdlOmZ1bmN0aW9uIG9lKFd0KXtmb3IodmFyIHBuPXRoaXMuX2dyb3VwcyxLbj1XdC5fZ3JvdXBzLE50PXBuLmxlbmd0aCxVbj1NYXRoLm1pbihOdCxLbi5sZW5ndGgpLHduPW5ldyBBcnJheShOdCksdG49MDt0bjxVbjsrK3RuKWZvcih2YXIgbW4s''@;'; + put 'put ''em49cG5bdG5dLFRyPUtuW3RuXSxCbj16bi5sZW5ndGgsa3I9d25bdG5dPW5ldyBBcnJheShCbiksdW49MDt1bjxCbjsrK3VuKShtbj16blt1bl18fFRyW3VuXSkmJihrclt1bl09bW4pO2Zvcig7dG48TnQ7Kyt0bil3blt0bl09cG5bdG5dO3JldHVybiBuZXcgbnIod24sdGhpcy5fcGFyZW50''@;'; + put 'put ''cyl9LG9yZGVyOmZ1bmN0aW9uIGNlKCl7Zm9yKHZhciBXdD10aGlzLl9ncm91cHMscG49LTEsS249V3QubGVuZ3RoOysrcG48S247KWZvcih2YXIgd24sTnQ9V3RbcG5dLHNuPU50Lmxlbmd0aC0xLFVuPU50W3NuXTstLXNuPj0wOykod249TnRbc25dKSYmKFVuJiY0XnduLmNvbXBhcmVEb2N1''@;'; + put 'put ''bWVudFBvc2l0aW9uKFVuKSYmVW4ucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUod24sVW4pLFVuPXduKTtyZXR1cm4gdGhpc30sc29ydDpmdW5jdGlvbiBkZShXdCl7ZnVuY3Rpb24gcG4oa3IsbW4pe3JldHVybiBrciYmbW4/V3Qoa3IuX19kYXRhX18sbW4uX19kYXRhX18pOiFrci0hbW59V3R8''@;'; + put 'put ''fChXdD12ZSk7Zm9yKHZhciBLbj10aGlzLl9ncm91cHMsTnQ9S24ubGVuZ3RoLHNuPW5ldyBBcnJheShOdCksVW49MDtVbjxOdDsrK1VuKXtmb3IodmFyIFRyLHduPUtuW1VuXSx0bj13bi5sZW5ndGgsem49c25bVW5dPW5ldyBBcnJheSh0biksQm49MDtCbjx0bjsrK0JuKShUcj13bltCbl0p''@;'; + put 'put ''JiYoem5bQm5dPVRyKTt6bi5zb3J0KHBuKX1yZXR1cm4gbmV3IG5yKHNuLHRoaXMuX3BhcmVudHMpLm9yZGVyKCl9LGNhbGw6ZnVuY3Rpb24gQWUoKXt2YXIgV3Q9YXJndW1lbnRzWzBdO3JldHVybiBhcmd1bWVudHNbMF09dGhpcyxXdC5hcHBseShudWxsLGFyZ3VtZW50cyksdGhpc30sbm9k''@;'; + put 'put ''ZXM6ZnVuY3Rpb24ga2UoKXt2YXIgV3Q9bmV3IEFycmF5KHRoaXMuc2l6ZSgpKSxwbj0tMTtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7V3RbKytwbl09dGhpc30pLFd0fSxub2RlOmZ1bmN0aW9uIFNlKCl7Zm9yKHZhciBXdD10aGlzLl9ncm91cHMscG49MCxLbj1XdC5sZW5ndGg7cG48''@;'; + put 'put ''S247Kytwbilmb3IodmFyIE50PVd0W3BuXSxzbj0wLFVuPU50Lmxlbmd0aDtzbjxVbjsrK3NuKXt2YXIgd249TnRbc25dO2lmKHduKXJldHVybiB3bn1yZXR1cm4gbnVsbH0sc2l6ZTpmdW5jdGlvbiBJZSgpe3ZhciBXdD0wO3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXsrK1d0fSksV3R9''@;'; + put 'put ''LGVtcHR5OmZ1bmN0aW9uIFRlKCl7cmV0dXJuIXRoaXMubm9kZSgpfSxlYWNoOmZ1bmN0aW9uIEVlKFd0KXtmb3IodmFyIHBuPXRoaXMuX2dyb3VwcyxLbj0wLE50PXBuLmxlbmd0aDtLbjxOdDsrK0tuKWZvcih2YXIgdG4sc249cG5bS25dLFVuPTAsd249c24ubGVuZ3RoO1VuPHduOysrVW4p''@;'; + put 'put ''KHRuPXNuW1VuXSkmJld0LmNhbGwodG4sdG4uX19kYXRhX18sVW4sc24pO3JldHVybiB0aGlzfSxhdHRyOmZ1bmN0aW9uIFYoV3QscG4pe3ZhciBLbj0oMCxoZS5aKShXdCk7aWYoYXJndW1lbnRzLmxlbmd0aDwyKXt2YXIgTnQ9dGhpcy5ub2RlKCk7cmV0dXJuIEtuLmxvY2FsP050LmdldEF0''@;'; + put 'put ''dHJpYnV0ZU5TKEtuLnNwYWNlLEtuLmxvY2FsKTpOdC5nZXRBdHRyaWJ1dGUoS24pfXJldHVybiB0aGlzLmVhY2goKG51bGw9PXBuP0tuLmxvY2FsP3o6TzoiZnVuY3Rpb24iPT10eXBlb2YgcG4/S24ubG9jYWw/UDp4OktuLmxvY2FsP3RlOm5lKShLbixwbikpfSxzdHlsZTpULloscHJvcGVy''@;'; + put 'put ''dHk6ZnVuY3Rpb24gQ2UoV3QscG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPjE/dGhpcy5lYWNoKChudWxsPT1wbj9TOiJmdW5jdGlvbiI9PXR5cGVvZiBwbj95ZTpGKShXdCxwbikpOnRoaXMubm9kZSgpW1d0XX0sY2xhc3NlZDpmdW5jdGlvbiBBdChXdCxwbil7dmFyIEtuPURlKFd0KyIi''@;'; + put 'put ''KTtpZihhcmd1bWVudHMubGVuZ3RoPDIpe2Zvcih2YXIgTnQ9UGUodGhpcy5ub2RlKCkpLHNuPS0xLFVuPUtuLmxlbmd0aDsrK3NuPFVuOylpZighTnQuY29udGFpbnMoS25bc25dKSlyZXR1cm4hMTtyZXR1cm4hMH1yZXR1cm4gdGhpcy5lYWNoKCgiZnVuY3Rpb24iPT10eXBlb2YgcG4/dnQ6''@;'; + put 'put ''cG4/d3Q6bXQpKEtuLHBuKSl9LHRleHQ6ZnVuY3Rpb24gX3QoV3Qpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3RoaXMuZWFjaChudWxsPT1XdD9odDooImZ1bmN0aW9uIj09dHlwZW9mIFd0P29uOkJ0KShXdCkpOnRoaXMubm9kZSgpLnRleHRDb250ZW50fSxodG1sOmZ1bmN0aW9uIEx0KFd0''@;'; + put 'put ''KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD90aGlzLmVhY2gobnVsbD09V3Q/dHQ6KCJmdW5jdGlvbiI9PXR5cGVvZiBXdD9hdDpldCkoV3QpKTp0aGlzLm5vZGUoKS5pbm5lckhUTUx9LHJhaXNlOmZ1bmN0aW9uIGZ0KCl7cmV0dXJuIHRoaXMuZWFjaChDdCl9LGxvd2VyOmZ1bmN0aW9uIEdl''@;'; + put 'put ''KCl7cmV0dXJuIHRoaXMuZWFjaChIdCl9LGFwcGVuZDpmdW5jdGlvbiB5dChXdCl7dmFyIHBuPSJmdW5jdGlvbiI9PXR5cGVvZiBXdD9XdDooMCxVZS5aKShXdCk7cmV0dXJuIHRoaXMuc2VsZWN0KGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYXBwZW5kQ2hpbGQocG4uYXBwbHkodGhpcyxhcmd1''@;'; + put 'put ''bWVudHMpKX0pfSxpbnNlcnQ6ZnVuY3Rpb24gUXQoV3QscG4pe3ZhciBLbj0iZnVuY3Rpb24iPT10eXBlb2YgV3Q/V3Q6KDAsVWUuWikoV3QpLE50PW51bGw9PXBuP2p0OiJmdW5jdGlvbiI9PXR5cGVvZiBwbj9wbjooMCxtZS5aKShwbik7cmV0dXJuIHRoaXMuc2VsZWN0KGZ1bmN0aW9uKCl7''@;'; + put 'put ''cmV0dXJuIHRoaXMuaW5zZXJ0QmVmb3JlKEtuLmFwcGx5KHRoaXMsYXJndW1lbnRzKSxOdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fG51bGwpfSl9LHJlbW92ZTpmdW5jdGlvbiBkbigpe3JldHVybiB0aGlzLmVhY2goZ24pfSxjbG9uZTpmdW5jdGlvbiBObihXdCl7cmV0dXJuIHRoaXMuc2Vs''@;'; + put 'put ''ZWN0KFd0P2xuOnluKX0sZGF0dW06ZnVuY3Rpb24gYm4oV3Qpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3RoaXMucHJvcGVydHkoIl9fZGF0YV9fIixXdCk6dGhpcy5ub2RlKCkuX19kYXRhX199LG9uOmVyLlpQLGRpc3BhdGNoOmZ1bmN0aW9uIHF0KFd0LHBuKXtyZXR1cm4gdGhpcy5lYWNo''@;'; + put 'put ''KCgiZnVuY3Rpb24iPT10eXBlb2YgcG4/eHI6RnIpKFd0LHBuKSl9fTtjb25zdCBxbj1Bbn0sNjE3NDY6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO0wuZChKZSx7QjooKT0+QixaUDooKT0+YWUsX0g6KCk9Pll9KTt2YXIgbWU9e30sQj1udWxsO2Z1bmN0aW9uIE1lKFcsTixlZSl7cmV0dXJu''@;'; + put 'put ''IFc9VShXLE4sZWUpLGZ1bmN0aW9uKHEpe3ZhciBKPXEucmVsYXRlZFRhcmdldDsoIUp8fEohPT10aGlzJiYhKDgmSi5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbih0aGlzKSkpJiZXLmNhbGwodGhpcyxxKX19ZnVuY3Rpb24gVShXLE4sZWUpe3JldHVybiBmdW5jdGlvbihxKXt2YXIgSj1CO0I9''@;'; + put 'put ''cTt0cnl7Vy5jYWxsKHRoaXMsdGhpcy5fX2RhdGFfXyxOLGVlKX1maW5hbGx5e0I9Sn19fWZ1bmN0aW9uIFEoVyl7cmV0dXJuIFcudHJpbSgpLnNwbGl0KC9efFxzKy8pLm1hcChmdW5jdGlvbihOKXt2YXIgZWU9IiIscT1OLmluZGV4T2YoIi4iKTtyZXR1cm4gcT49MCYmKGVlPU4uc2xpY2Uo''@;'; + put 'put ''cSsxKSxOPU4uc2xpY2UoMCxxKSkse3R5cGU6TixuYW1lOmVlfX0pfWZ1bmN0aW9uIFooVyl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIE49dGhpcy5fX29uO2lmKE4pe2Zvcih2YXIgc2UsZWU9MCxxPS0xLEo9Ti5sZW5ndGg7ZWU8SjsrK2VlKXNlPU5bZWVdLFcudHlwZSYmc2UudHlwZSE9PVcu''@;'; + put 'put ''dHlwZXx8c2UubmFtZSE9PVcubmFtZT9OWysrcV09c2U6dGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKHNlLnR5cGUsc2UubGlzdGVuZXIsc2UuY2FwdHVyZSk7KytxP04ubGVuZ3RoPXE6ZGVsZXRlIHRoaXMuX19vbn19fWZ1bmN0aW9uIGllKFcsTixlZSl7dmFyIHE9bWUuaGFzT3duUHJvcGVy''@;'; + put 'put ''dHkoVy50eXBlKT9NZTpVO3JldHVybiBmdW5jdGlvbihKLHNlLG9lKXt2YXIgZGUsY2U9dGhpcy5fX29uLHZlPXEoTixzZSxvZSk7aWYoY2UpZm9yKHZhciBBZT0wLGtlPWNlLmxlbmd0aDtBZTxrZTsrK0FlKWlmKChkZT1jZVtBZV0pLnR5cGU9PT1XLnR5cGUmJmRlLm5hbWU9PT1XLm5hbWUp''@;'; + put 'put ''cmV0dXJuIHRoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcihkZS50eXBlLGRlLmxpc3RlbmVyLGRlLmNhcHR1cmUpLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcihkZS50eXBlLGRlLmxpc3RlbmVyPXZlLGRlLmNhcHR1cmU9ZWUpLHZvaWQoZGUudmFsdWU9Tik7dGhpcy5hZGRFdmVudExpc3RlbmVyKFcu''@;'; + put 'put ''dHlwZSx2ZSxlZSksZGU9e3R5cGU6Vy50eXBlLG5hbWU6Vy5uYW1lLHZhbHVlOk4sbGlzdGVuZXI6dmUsY2FwdHVyZTplZX0sY2U/Y2UucHVzaChkZSk6dGhpcy5fX29uPVtkZV19fWZ1bmN0aW9uIGFlKFcsTixlZSl7dmFyIEosb2UscT1RKFcrIiIpLHNlPXEubGVuZ3RoO2lmKCEoYXJndW1l''@;'; + put 'put ''bnRzLmxlbmd0aDwyKSl7Zm9yKGNlPU4/aWU6WixudWxsPT1lZSYmKGVlPSExKSxKPTA7SjxzZTsrK0opdGhpcy5lYWNoKGNlKHFbSl0sTixlZSkpO3JldHVybiB0aGlzfXZhciBjZT10aGlzLm5vZGUoKS5fX29uO2lmKGNlKWZvcih2YXIgQWUsZGU9MCx2ZT1jZS5sZW5ndGg7ZGU8dmU7Kytk''@;'; + put 'put ''ZSlmb3IoSj0wLEFlPWNlW2RlXTtKPHNlOysrSilpZigob2U9cVtKXSkudHlwZT09PUFlLnR5cGUmJm9lLm5hbWU9PT1BZS5uYW1lKXJldHVybiBBZS52YWx1ZX1mdW5jdGlvbiBZKFcsTixlZSxxKXt2YXIgSj1CO1cuc291cmNlRXZlbnQ9QixCPVc7dHJ5e3JldHVybiBOLmFwcGx5KGVlLHEp''@;'; + put 'put ''fWZpbmFsbHl7Qj1KfX0idW5kZWZpbmVkIiE9dHlwZW9mIGRvY3VtZW50JiYoIm9ubW91c2VlbnRlciJpbiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnR8fChtZT17bW91c2VlbnRlcjoibW91c2VvdmVyIixtb3VzZWxlYXZlOiJtb3VzZW91dCJ9KSl9LDI0NDc2OihYZSxKZSxMKT0+eyJ1c2Ug''@;'; + put 'put ''c3RyaWN0IjtMLmQoSmUse1M6KCk9PlEsWjooKT0+VX0pO3ZhciBtZT1MKDI0NDIpO2Z1bmN0aW9uIEIoWil7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5zdHlsZS5yZW1vdmVQcm9wZXJ0eShaKX19ZnVuY3Rpb24gRShaLGllLGFlKXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnN0eWxlLnNldFBy''@;'; + put 'put ''b3BlcnR5KFosaWUsYWUpfX1mdW5jdGlvbiBNZShaLGllLGFlKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgWT1pZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7bnVsbD09WT90aGlzLnN0eWxlLnJlbW92ZVByb3BlcnR5KFopOnRoaXMuc3R5bGUuc2V0UHJvcGVydHkoWixZLGFlKX19ZnVuY3Rpb24g''@;'; + put 'put ''VShaLGllLGFlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD4xP3RoaXMuZWFjaCgobnVsbD09aWU/QjoiZnVuY3Rpb24iPT10eXBlb2YgaWU/TWU6RSkoWixpZSxudWxsPT1hZT8iIjphZSkpOlEodGhpcy5ub2RlKCksWil9ZnVuY3Rpb24gUShaLGllKXtyZXR1cm4gWi5zdHlsZS5nZXRQcm9w''@;'; + put 'put ''ZXJ0eVZhbHVlKGllKXx8KDAsbWUuWikoWikuZ2V0Q29tcHV0ZWRTdHlsZShaLG51bGwpLmdldFByb3BlcnR5VmFsdWUoaWUpfX0sMjk3NDI6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG1lKCl7fWZ1bmN0aW9uIEIoRSl7cmV0dXJuIG51bGw9PUU/bWU6ZnVuY3Rpb24oKXty''@;'; + put 'put ''ZXR1cm4gdGhpcy5xdWVyeVNlbGVjdG9yKEUpfX1MLmQoSmUse1o6KCk9PkJ9KX0sMzIwMzc6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG1lKCl7cmV0dXJuW119ZnVuY3Rpb24gQihFKXtyZXR1cm4gbnVsbD09RT9tZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnF1ZXJ5U2Vs''@;'; + put 'put ''ZWN0b3JBbGwoRSl9fUwuZChKZSx7WjooKT0+Qn0pfSw3NTgxOTooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7TC5kKEplLHtaOigpPT5CfSk7dmFyIG1lPUwoNjE3NDYpO2Z1bmN0aW9uIEIoKXtmb3IodmFyIE1lLEU9bWUuQjtNZT1FLnNvdXJjZUV2ZW50OylFPU1lO3JldHVybiBFfX0sMzAy''@;'; + put 'put ''NTY6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO0wuZChKZSx7WjooKT0+RX0pO3ZhciBtZT1MKDc1ODE5KSxCPUwoMjU5NDEpO2Z1bmN0aW9uIEUoTWUsVSxRKXthcmd1bWVudHMubGVuZ3RoPDMmJihRPVUsVT0oMCxtZS5aKSgpLmNoYW5nZWRUb3VjaGVzKTtmb3IodmFyIGFlLFo9MCxpZT1V''@;'; + put 'put ''P1UubGVuZ3RoOjA7WjxpZTsrK1opaWYoKGFlPVVbWl0pLmlkZW50aWZpZXI9PT1RKXJldHVybigwLEIuWikoTWUsYWUpO3JldHVybiBudWxsfX0sMjQ0MjooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbWUoQil7cmV0dXJuIEIub3duZXJEb2N1bWVudCYmQi5vd25lckRvY3Vt''@;'; + put 'put ''ZW50LmRlZmF1bHRWaWV3fHxCLmRvY3VtZW50JiZCfHxCLmRlZmF1bHRWaWV3fUwuZChKZSx7WjooKT0+bWV9KX0sNTY4NDI6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO0wucihKZSksTC5kKEplLHtpbnRlcnZhbDooKT0+RSxub3c6KCk9Pm1lLnpPLHRpbWVvdXQ6KCk9PkIuWix0aW1lcjoo''@;'; + put 'put ''KT0+bWUuSFQsdGltZXJGbHVzaDooKT0+bWUuUjh9KTt2YXIgbWU9TCg0OTE5NCksQj1MKDczMzM5KTtmdW5jdGlvbiBFKE1lLFUsUSl7dmFyIFo9bmV3IG1lLkI3LGllPVU7cmV0dXJuIG51bGw9PVU/KFoucmVzdGFydChNZSxVLFEpLFopOihVPStVLFE9bnVsbD09UT8oMCxtZS56TykoKTor''@;'; + put 'put ''USxaLnJlc3RhcnQoZnVuY3Rpb24gYWUoWSl7WSs9aWUsWi5yZXN0YXJ0KGFlLGllKz1VLFEpLE1lKFkpfSxVLFEpLFopfX0sNzMzMzk6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO0wuZChKZSx7WjooKT0+Qn0pO3ZhciBtZT1MKDQ5MTk0KTtmdW5jdGlvbiBCKEUsTWUsVSl7dmFyIFE9bmV3''@;'; + put 'put ''IG1lLkI3O3JldHVybiBRLnJlc3RhcnQoZnVuY3Rpb24oWil7US5zdG9wKCksRShaK01lKX0sTWU9bnVsbD09TWU/MDorTWUsVSksUX19LDQ5MTk0OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0IjtMLmQoSmUse0I3OigpPT5xLEhUOigpPT5KLFI4OigpPT5zZSx6TzooKT0+Tn0pO3ZhciBVLFEs''@;'; + put 'put ''bWU9MCxCPTAsRT0wLFo9MCxpZT0wLGFlPTAsWT0ib2JqZWN0Ij09dHlwZW9mIHBlcmZvcm1hbmNlJiZwZXJmb3JtYW5jZS5ub3c/cGVyZm9ybWFuY2U6RGF0ZSxXPSJvYmplY3QiPT10eXBlb2Ygd2luZG93JiZ3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lP3dpbmRvdy5yZXF1ZXN0QW5p''@;'; + put 'put ''bWF0aW9uRnJhbWUuYmluZCh3aW5kb3cpOmZ1bmN0aW9uKEFlKXtzZXRUaW1lb3V0KEFlLDE3KX07ZnVuY3Rpb24gTigpe3JldHVybiBpZXx8KFcoZWUpLGllPVkubm93KCkrYWUpfWZ1bmN0aW9uIGVlKCl7aWU9MH1mdW5jdGlvbiBxKCl7dGhpcy5fY2FsbD10aGlzLl90aW1lPXRoaXMuX25l''@;'; + put 'put ''eHQ9bnVsbH1mdW5jdGlvbiBKKEFlLGtlLFNlKXt2YXIgSWU9bmV3IHE7cmV0dXJuIEllLnJlc3RhcnQoQWUsa2UsU2UpLEllfWZ1bmN0aW9uIHNlKCl7TigpLCsrbWU7Zm9yKHZhciBrZSxBZT1VO0FlOykoa2U9aWUtQWUuX3RpbWUpPj0wJiZBZS5fY2FsbC5jYWxsKG51bGwsa2UpLEFlPUFl''@;'; + put 'put ''Ll9uZXh0Oy0tbWV9ZnVuY3Rpb24gb2UoKXtpZT0oWj1ZLm5vdygpKSthZSxtZT1CPTA7dHJ5e3NlKCl9ZmluYWxseXttZT0wLGZ1bmN0aW9uIGRlKCl7Zm9yKHZhciBBZSxTZSxrZT1VLEllPTEvMDtrZTspa2UuX2NhbGw/KEllPmtlLl90aW1lJiYoSWU9a2UuX3RpbWUpLEFlPWtlLGtlPWtl''@;'; + put 'put ''Ll9uZXh0KTooU2U9a2UuX25leHQsa2UuX25leHQ9bnVsbCxrZT1BZT9BZS5fbmV4dD1TZTpVPVNlKTtRPUFlLHZlKEllKX0oKSxpZT0wfX1mdW5jdGlvbiBjZSgpe3ZhciBBZT1ZLm5vdygpLGtlPUFlLVo7a2U+MWUzJiYoYWUtPWtlLFo9QWUpfWZ1bmN0aW9uIHZlKEFlKXttZXx8KEImJihC''@;'; + put 'put ''PWNsZWFyVGltZW91dChCKSksQWUtaWU+MjQ/KEFlPDEvMCYmKEI9c2V0VGltZW91dChvZSxBZS1ZLm5vdygpLWFlKSksRSYmKEU9Y2xlYXJJbnRlcnZhbChFKSkpOihFfHwoWj1ZLm5vdygpLEU9c2V0SW50ZXJ2YWwoY2UsMWUzKSksbWU9MSxXKG9lKSkpfXEucHJvdG90eXBlPUoucHJvdG90''@;'; + put 'put ''eXBlPXtjb25zdHJ1Y3RvcjpxLHJlc3RhcnQ6ZnVuY3Rpb24oQWUsa2UsU2Upe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBBZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJjYWxsYmFjayBpcyBub3QgYSBmdW5jdGlvbiIpO1NlPShudWxsPT1TZT9OKCk6K1NlKSsobnVsbD09a2U/MDora2UpLCF0aGlz''@;'; + put 'put ''Ll9uZXh0JiZRIT09dGhpcyYmKFE/US5fbmV4dD10aGlzOlU9dGhpcyxRPXRoaXMpLHRoaXMuX2NhbGw9QWUsdGhpcy5fdGltZT1TZSx2ZSgpfSxzdG9wOmZ1bmN0aW9uKCl7dGhpcy5fY2FsbCYmKHRoaXMuX2NhbGw9bnVsbCx0aGlzLl90aW1lPTEvMCx2ZSgpKX19fSw0MDgyMjooWGUsSmUs''@;'; + put 'put ''TCk9PnsidXNlIHN0cmljdCI7TC5yKEplKSxMLmQoSmUse2FjdGl2ZTooKT0+X24saW50ZXJydXB0OigpPT5kZSx0cmFuc2l0aW9uOigpPT5Vbn0pO3ZhciBtZT1MKDgyNzAwKSxCPUwoMjU5MjIpLEU9TCg0OTE5NCksTWU9TCg3MzMzOSksVT0oMCxCLlopKCJzdGFydCIsImVuZCIsImNhbmNl''@;'; + put 'put ''bCIsImludGVycnVwdCIpLFE9W107ZnVuY3Rpb24gcShHdCxrbixWbixlbixJbixKbil7dmFyIG9yPUd0Ll9fdHJhbnNpdGlvbjtpZihvcil7aWYoVm4gaW4gb3IpcmV0dXJufWVsc2UgR3QuX190cmFuc2l0aW9uPXt9OyFmdW5jdGlvbiBjZShHdCxrbixWbil7dmFyIEluLGVuPUd0Ll9fdHJh''@;'; + put 'put ''bnNpdGlvbjtmdW5jdGlvbiBvcihWcil7dmFyIGlpLFJyLGxpLE1pO2lmKDEhPT1Wbi5zdGF0ZSlyZXR1cm4gS3IoKTtmb3IoaWkgaW4gZW4paWYoKE1pPWVuW2lpXSkubmFtZT09PVZuLm5hbWUpe2lmKDM9PT1NaS5zdGF0ZSlyZXR1cm4oMCxNZS5aKShvcik7ND09PU1pLnN0YXRlPyhNaS5z''@;'; + put 'put ''dGF0ZT02LE1pLnRpbWVyLnN0b3AoKSxNaS5vbi5jYWxsKCJpbnRlcnJ1cHQiLEd0LEd0Ll9fZGF0YV9fLE1pLmluZGV4LE1pLmdyb3VwKSxkZWxldGUgZW5baWldKToraWk8a24mJihNaS5zdGF0ZT02LE1pLnRpbWVyLnN0b3AoKSxNaS5vbi5jYWxsKCJjYW5jZWwiLEd0LEd0Ll9fZGF0YV9f''@;'; + put 'put ''LE1pLmluZGV4LE1pLmdyb3VwKSxkZWxldGUgZW5baWldKX1pZigoMCxNZS5aKShmdW5jdGlvbigpezM9PT1Wbi5zdGF0ZSYmKFZuLnN0YXRlPTQsVm4udGltZXIucmVzdGFydChncixWbi5kZWxheSxWbi50aW1lKSxncihWcikpfSksVm4uc3RhdGU9MixWbi5vbi5jYWxsKCJzdGFydCIsR3Qs''@;'; + put 'put ''R3QuX19kYXRhX18sVm4uaW5kZXgsVm4uZ3JvdXApLDI9PT1Wbi5zdGF0ZSl7Zm9yKFZuLnN0YXRlPTMsSW49bmV3IEFycmF5KGxpPVZuLnR3ZWVuLmxlbmd0aCksaWk9MCxScj0tMTtpaTxsaTsrK2lpKShNaT1Wbi50d2VlbltpaV0udmFsdWUuY2FsbChHdCxHdC5fX2RhdGFfXyxWbi5pbmRl''@;'; + put 'put ''eCxWbi5ncm91cCkpJiYoSW5bKytScl09TWkpO0luLmxlbmd0aD1ScisxfX1mdW5jdGlvbiBncihWcil7Zm9yKHZhciBpaT1WcjxWbi5kdXJhdGlvbj9Wbi5lYXNlLmNhbGwobnVsbCxWci9Wbi5kdXJhdGlvbik6KFZuLnRpbWVyLnJlc3RhcnQoS3IpLFZuLnN0YXRlPTUsMSksUnI9LTEsbGk9''@;'; + put 'put ''SW4ubGVuZ3RoOysrUnI8bGk7KUluW1JyXS5jYWxsKEd0LGlpKTs1PT09Vm4uc3RhdGUmJihWbi5vbi5jYWxsKCJlbmQiLEd0LEd0Ll9fZGF0YV9fLFZuLmluZGV4LFZuLmdyb3VwKSxLcigpKX1mdW5jdGlvbiBLcigpe2Zvcih2YXIgVnIgaW4gVm4uc3RhdGU9NixWbi50aW1lci5zdG9wKCks''@;'; + put 'put ''ZGVsZXRlIGVuW2tuXSxlbilyZXR1cm47ZGVsZXRlIEd0Ll9fdHJhbnNpdGlvbn1lbltrbl09Vm4sVm4udGltZXI9KDAsRS5IVCkoZnVuY3Rpb24gSm4oVnIpe1ZuLnN0YXRlPTEsVm4udGltZXIucmVzdGFydChvcixWbi5kZWxheSxWbi50aW1lKSxWbi5kZWxheTw9VnImJm9yKFZyLVZuLmRl''@;'; + put 'put ''bGF5KX0sMCxWbi50aW1lKX0oR3QsVm4se25hbWU6a24saW5kZXg6ZW4sZ3JvdXA6SW4sb246VSx0d2VlbjpRLHRpbWU6Sm4udGltZSxkZWxheTpKbi5kZWxheSxkdXJhdGlvbjpKbi5kdXJhdGlvbixlYXNlOkpuLmVhc2UsdGltZXI6bnVsbCxzdGF0ZTowfSl9ZnVuY3Rpb24gSihHdCxrbil7''@;'; + put 'put ''dmFyIFZuPW9lKEd0LGtuKTtpZihWbi5zdGF0ZT4wKXRocm93IG5ldyBFcnJvcigidG9vIGxhdGU7IGFscmVhZHkgc2NoZWR1bGVkIik7cmV0dXJuIFZufWZ1bmN0aW9uIHNlKEd0LGtuKXt2YXIgVm49b2UoR3Qsa24pO2lmKFZuLnN0YXRlPjMpdGhyb3cgbmV3IEVycm9yKCJ0b28gbGF0ZTsg''@;'; + put 'put ''YWxyZWFkeSBydW5uaW5nIik7cmV0dXJuIFZufWZ1bmN0aW9uIG9lKEd0LGtuKXt2YXIgVm49R3QuX190cmFuc2l0aW9uO2lmKCFWbnx8IShWbj1Wbltrbl0pKXRocm93IG5ldyBFcnJvcigidHJhbnNpdGlvbiBub3QgZm91bmQiKTtyZXR1cm4gVm59ZnVuY3Rpb24gZGUoR3Qsa24pe3ZhciBl''@;'; + put 'put ''bixJbixvcixWbj1HdC5fX3RyYW5zaXRpb24sSm49ITA7aWYoVm4pe2ZvcihvciBpbiBrbj1udWxsPT1rbj9udWxsOmtuKyIiLFZuKShlbj1Wbltvcl0pLm5hbWU9PT1rbj8oSW49ZW4uc3RhdGU+MiYmZW4uc3RhdGU8NSxlbi5zdGF0ZT02LGVuLnRpbWVyLnN0b3AoKSxlbi5vbi5jYWxsKElu''@;'; + put 'put ''PyJpbnRlcnJ1cHQiOiJjYW5jZWwiLEd0LEd0Ll9fZGF0YV9fLGVuLmluZGV4LGVuLmdyb3VwKSxkZWxldGUgVm5bb3JdKTpKbj0hMTtKbiYmZGVsZXRlIEd0Ll9fdHJhbnNpdGlvbn19dmFyIEFlPUwoNzUzNDkpLGtlPUwoMzYxNzUpO2Z1bmN0aW9uIFNlKEd0LGtuKXt2YXIgVm4sZW47cmV0''@;'; + put 'put ''dXJuIGZ1bmN0aW9uKCl7dmFyIEluPXNlKHRoaXMsR3QpLEpuPUluLnR3ZWVuO2lmKEpuIT09Vm4pZm9yKHZhciBvcj0wLGdyPShlbj1Wbj1KbikubGVuZ3RoO29yPGdyOysrb3IpaWYoZW5bb3JdLm5hbWU9PT1rbil7KGVuPWVuLnNsaWNlKCkpLnNwbGljZShvciwxKTticmVha31Jbi50d2Vl''@;'; + put 'put ''bj1lbn19ZnVuY3Rpb24gSWUoR3Qsa24sVm4pe3ZhciBlbixJbjtpZigiZnVuY3Rpb24iIT10eXBlb2YgVm4pdGhyb3cgbmV3IEVycm9yO3JldHVybiBmdW5jdGlvbigpe3ZhciBKbj1zZSh0aGlzLEd0KSxvcj1Kbi50d2VlbjtpZihvciE9PWVuKXtJbj0oZW49b3IpLnNsaWNlKCk7Zm9yKHZh''@;'; + put 'put ''ciBncj17bmFtZTprbix2YWx1ZTpWbn0sS3I9MCxWcj1Jbi5sZW5ndGg7S3I8VnI7KytLcilpZihJbltLcl0ubmFtZT09PWtuKXtJbltLcl09Z3I7YnJlYWt9S3I9PT1WciYmSW4ucHVzaChncil9Sm4udHdlZW49SW59fWZ1bmN0aW9uIEVlKEd0LGtuLFZuKXt2YXIgZW49R3QuX2lkO3JldHVy''@;'; + put 'put ''biBHdC5lYWNoKGZ1bmN0aW9uKCl7dmFyIEluPXNlKHRoaXMsZW4pOyhJbi52YWx1ZXx8KEluLnZhbHVlPXt9KSlba25dPVZuLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0pLGZ1bmN0aW9uKEluKXtyZXR1cm4gb2UoSW4sZW4pLnZhbHVlW2tuXX19dmFyIGhlPUwoNTI3ODYpLE89TCg2NzM4KSx6''@;'; + put 'put ''PUwoODY4MTEpLG5lPUwoMjMwOTYpO2Z1bmN0aW9uIHRlKEd0LGtuKXt2YXIgVm47cmV0dXJuKCJudW1iZXIiPT10eXBlb2Yga24/Ty5aOmtuIGluc3RhbmNlb2YgaGUuWlA/ei5aUDooVm49KDAsaGUuWlApKGtuKSk/KGtuPVZuLHouWlApOm5lLlopKEd0LGtuKX1mdW5jdGlvbiB4KEd0KXty''@;'; + put 'put ''ZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnJlbW92ZUF0dHJpYnV0ZShHdCl9fWZ1bmN0aW9uIFAoR3Qpe3JldHVybiBmdW5jdGlvbigpe3RoaXMucmVtb3ZlQXR0cmlidXRlTlMoR3Quc3BhY2UsR3QubG9jYWwpfX1mdW5jdGlvbiBWKEd0LGtuLFZuKXt2YXIgZW4sSm4sSW49Vm4rIiI7cmV0dXJu''@;'; + put 'put ''IGZ1bmN0aW9uKCl7dmFyIG9yPXRoaXMuZ2V0QXR0cmlidXRlKEd0KTtyZXR1cm4gb3I9PT1Jbj9udWxsOm9yPT09ZW4/Sm46Sm49a24oZW49b3IsVm4pfX1mdW5jdGlvbiBUKEd0LGtuLFZuKXt2YXIgZW4sSm4sSW49Vm4rIiI7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG9yPXRoaXMuZ2V0QXR0''@;'; + put 'put ''cmlidXRlTlMoR3Quc3BhY2UsR3QubG9jYWwpO3JldHVybiBvcj09PUluP251bGw6b3I9PT1lbj9KbjpKbj1rbihlbj1vcixWbil9fWZ1bmN0aW9uIFMoR3Qsa24sVm4pe3ZhciBlbixJbixKbjtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgb3IsS3IsZ3I9Vm4odGhpcyk7cmV0dXJuIG51bGw9PWdy''@;'; + put 'put ''P3ZvaWQgdGhpcy5yZW1vdmVBdHRyaWJ1dGUoR3QpOihvcj10aGlzLmdldEF0dHJpYnV0ZShHdCkpPT09KEtyPWdyKyIiKT9udWxsOm9yPT09ZW4mJktyPT09SW4/Sm46KEluPUtyLEpuPWtuKGVuPW9yLGdyKSl9fWZ1bmN0aW9uIEYoR3Qsa24sVm4pe3ZhciBlbixJbixKbjtyZXR1cm4gZnVu''@;'; + put 'put ''Y3Rpb24oKXt2YXIgb3IsS3IsZ3I9Vm4odGhpcyk7cmV0dXJuIG51bGw9PWdyP3ZvaWQgdGhpcy5yZW1vdmVBdHRyaWJ1dGVOUyhHdC5zcGFjZSxHdC5sb2NhbCk6KG9yPXRoaXMuZ2V0QXR0cmlidXRlTlMoR3Quc3BhY2UsR3QubG9jYWwpKT09PShLcj1ncisiIik/bnVsbDpvcj09PWVuJiZL''@;'; + put 'put ''cj09PUluP0puOihJbj1LcixKbj1rbihlbj1vcixncikpfX1mdW5jdGlvbiBDZShHdCxrbil7cmV0dXJuIGZ1bmN0aW9uKFZuKXt0aGlzLnNldEF0dHJpYnV0ZShHdCxrbi5jYWxsKHRoaXMsVm4pKX19ZnVuY3Rpb24gRGUoR3Qsa24pe3JldHVybiBmdW5jdGlvbihWbil7dGhpcy5zZXRBdHRy''@;'; + put 'put ''aWJ1dGVOUyhHdC5zcGFjZSxHdC5sb2NhbCxrbi5jYWxsKHRoaXMsVm4pKX19ZnVuY3Rpb24gUGUoR3Qsa24pe3ZhciBWbixlbjtmdW5jdGlvbiBJbigpe3ZhciBKbj1rbi5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIEpuIT09ZW4mJihWbj0oZW49Sm4pJiZEZShHdCxKbikpLFZufXJl''@;'; + put 'put ''dHVybiBJbi5fdmFsdWU9a24sSW59ZnVuY3Rpb24gUWUoR3Qsa24pe3ZhciBWbixlbjtmdW5jdGlvbiBJbigpe3ZhciBKbj1rbi5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIEpuIT09ZW4mJihWbj0oZW49Sm4pJiZDZShHdCxKbikpLFZufXJldHVybiBJbi5fdmFsdWU9a24sSW59ZnVu''@;'; + put 'put ''Y3Rpb24gZ3QoR3Qsa24pe3JldHVybiBmdW5jdGlvbigpe0oodGhpcyxHdCkuZGVsYXk9K2tuLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19ZnVuY3Rpb24gd3QoR3Qsa24pe3JldHVybiBrbj0ra24sZnVuY3Rpb24oKXtKKHRoaXMsR3QpLmRlbGF5PWtufX1mdW5jdGlvbiB2dChHdCxrbil7cmV0''@;'; + put 'put ''dXJuIGZ1bmN0aW9uKCl7c2UodGhpcyxHdCkuZHVyYXRpb249K2tuLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19ZnVuY3Rpb24gQXQoR3Qsa24pe3JldHVybiBrbj0ra24sZnVuY3Rpb24oKXtzZSh0aGlzLEd0KS5kdXJhdGlvbj1rbn19ZnVuY3Rpb24gQnQoR3Qsa24pe2lmKCJmdW5jdGlvbiIh''@;'; + put 'put ''PXR5cGVvZiBrbil0aHJvdyBuZXcgRXJyb3I7cmV0dXJuIGZ1bmN0aW9uKCl7c2UodGhpcyxHdCkuZWFzZT1rbn19dmFyIF90PUwoOTc5MDUpO2Z1bmN0aW9uIEx0KEd0LGtuLFZuKXt2YXIgZW4sSW4sSm49ZnVuY3Rpb24gYXQoR3Qpe3JldHVybihHdCsiIikudHJpbSgpLnNwbGl0KC9efFxz''@;'; + put 'put ''Ky8pLmV2ZXJ5KGZ1bmN0aW9uKGtuKXt2YXIgVm49a24uaW5kZXhPZigiLiIpO3JldHVybiBWbj49MCYmKGtuPWtuLnNsaWNlKDAsVm4pKSwha258fCJzdGFydCI9PT1rbn0pfShrbik/SjpzZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgb3I9Sm4odGhpcyxHdCksZ3I9b3Iub247Z3IhPT1lbiYm''@;'; + put 'put ''KEluPShlbj1ncikuY29weSgpKS5vbihrbixWbiksb3Iub249SW59fXZhciBHZT1MKDI5NzQyKSx5dD1MKDMyMDM3KSxRdD1tZS5aUC5wcm90b3R5cGUuY29uc3RydWN0b3IsZG49TCgyNDQ3Nik7ZnVuY3Rpb24gbG4oR3Qpe3JldHVybiBmdW5jdGlvbigpe3RoaXMuc3R5bGUucmVtb3ZlUHJv''@;'; + put 'put ''cGVydHkoR3QpfX1mdW5jdGlvbiBYbihHdCxrbixWbil7cmV0dXJuIGZ1bmN0aW9uKGVuKXt0aGlzLnN0eWxlLnNldFByb3BlcnR5KEd0LGtuLmNhbGwodGhpcyxlbiksVm4pfX1mdW5jdGlvbiBGcihHdCxrbixWbil7dmFyIGVuLEluO2Z1bmN0aW9uIEpuKCl7dmFyIG9yPWtuLmFwcGx5KHRo''@;'; + put 'put ''aXMsYXJndW1lbnRzKTtyZXR1cm4gb3IhPT1JbiYmKGVuPShJbj1vcikmJlhuKEd0LG9yLFZuKSksZW59cmV0dXJuIEpuLl92YWx1ZT1rbixKbn1mdW5jdGlvbiBBbihHdCl7cmV0dXJuIGZ1bmN0aW9uKGtuKXt0aGlzLnRleHRDb250ZW50PUd0LmNhbGwodGhpcyxrbil9fWZ1bmN0aW9uIHFu''@;'; + put 'put ''KEd0KXt2YXIga24sVm47ZnVuY3Rpb24gZW4oKXt2YXIgSW49R3QuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBJbiE9PVZuJiYoa249KFZuPUluKSYmQW4oSW4pKSxrbn1yZXR1cm4gZW4uX3ZhbHVlPUd0LGVufXZhciBOdD0wO2Z1bmN0aW9uIHNuKEd0LGtuLFZuLGVuKXt0aGlzLl9n''@;'; + put 'put ''cm91cHM9R3QsdGhpcy5fcGFyZW50cz1rbix0aGlzLl9uYW1lPVZuLHRoaXMuX2lkPWVufWZ1bmN0aW9uIFVuKEd0KXtyZXR1cm4oMCxtZS5aUCkoKS50cmFuc2l0aW9uKEd0KX1mdW5jdGlvbiB3bigpe3JldHVybisrTnR9dmFyIHRuPW1lLlpQLnByb3RvdHlwZTtzbi5wcm90b3R5cGU9VW4u''@;'; + put 'put ''cHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpzbixzZWxlY3Q6ZnVuY3Rpb24gVWUoR3Qpe3ZhciBrbj10aGlzLl9uYW1lLFZuPXRoaXMuX2lkOyJmdW5jdGlvbiIhPXR5cGVvZiBHdCYmKEd0PSgwLEdlLlopKEd0KSk7Zm9yKHZhciBlbj10aGlzLl9ncm91cHMsSW49ZW4ubGVuZ3RoLEpuPW5ldyBB''@;'; + put 'put ''cnJheShJbiksb3I9MDtvcjxJbjsrK29yKWZvcih2YXIgaWksUnIsZ3I9ZW5bb3JdLEtyPWdyLmxlbmd0aCxWcj1Kbltvcl09bmV3IEFycmF5KEtyKSxsaT0wO2xpPEtyOysrbGkpKGlpPWdyW2xpXSkmJihScj1HdC5jYWxsKGlpLGlpLl9fZGF0YV9fLGxpLGdyKSkmJigiX19kYXRhX18iaW4g''@;'; + put 'put ''aWkmJihSci5fX2RhdGFfXz1paS5fX2RhdGFfXyksVnJbbGldPVJyLHEoVnJbbGldLGtuLFZuLGxpLFZyLG9lKGlpLFZuKSkpO3JldHVybiBuZXcgc24oSm4sdGhpcy5fcGFyZW50cyxrbixWbil9LHNlbGVjdEFsbDpmdW5jdGlvbiBqdChHdCl7dmFyIGtuPXRoaXMuX25hbWUsVm49dGhpcy5f''@;'; + put 'put ''aWQ7ImZ1bmN0aW9uIiE9dHlwZW9mIEd0JiYoR3Q9KDAseXQuWikoR3QpKTtmb3IodmFyIGVuPXRoaXMuX2dyb3VwcyxJbj1lbi5sZW5ndGgsSm49W10sb3I9W10sZ3I9MDtncjxJbjsrK2dyKWZvcih2YXIgaWksS3I9ZW5bZ3JdLFZyPUtyLmxlbmd0aCxScj0wO1JyPFZyOysrUnIpaWYoaWk9''@;'; + put 'put ''S3JbUnJdKXtmb3IodmFyIE1pLGxpPUd0LmNhbGwoaWksaWkuX19kYXRhX18sUnIsS3IpLG8wPW9lKGlpLFZuKSxuMD0wLGQwPWxpLmxlbmd0aDtuMDxkMDsrK24wKShNaT1saVtuMF0pJiZxKE1pLGtuLFZuLG4wLGxpLG8wKTtKbi5wdXNoKGxpKSxvci5wdXNoKGlpKX1yZXR1cm4gbmV3IHNu''@;'; + put 'put ''KEpuLG9yLGtuLFZuKX0sZmlsdGVyOmZ1bmN0aW9uIHR0KEd0KXsiZnVuY3Rpb24iIT10eXBlb2YgR3QmJihHdD0oMCxfdC5aKShHdCkpO2Zvcih2YXIga249dGhpcy5fZ3JvdXBzLFZuPWtuLmxlbmd0aCxlbj1uZXcgQXJyYXkoVm4pLEluPTA7SW48Vm47KytJbilmb3IodmFyIEtyLEpuPWtu''@;'; + put 'put ''W0luXSxvcj1Kbi5sZW5ndGgsZ3I9ZW5bSW5dPVtdLFZyPTA7VnI8b3I7KytWcikoS3I9Sm5bVnJdKSYmR3QuY2FsbChLcixLci5fX2RhdGFfXyxWcixKbikmJmdyLnB1c2goS3IpO3JldHVybiBuZXcgc24oZW4sdGhpcy5fcGFyZW50cyx0aGlzLl9uYW1lLHRoaXMuX2lkKX0sbWVyZ2U6ZnVu''@;'; + put 'put ''Y3Rpb24gZXQoR3Qpe2lmKEd0Ll9pZCE9PXRoaXMuX2lkKXRocm93IG5ldyBFcnJvcjtmb3IodmFyIGtuPXRoaXMuX2dyb3VwcyxWbj1HdC5fZ3JvdXBzLGVuPWtuLmxlbmd0aCxKbj1NYXRoLm1pbihlbixWbi5sZW5ndGgpLG9yPW5ldyBBcnJheShlbiksZ3I9MDtncjxKbjsrK2dyKWZvcih2''@;'; + put 'put ''YXIgbGksS3I9a25bZ3JdLFZyPVZuW2dyXSxpaT1Lci5sZW5ndGgsUnI9b3JbZ3JdPW5ldyBBcnJheShpaSksTWk9MDtNaTxpaTsrK01pKShsaT1LcltNaV18fFZyW01pXSkmJihScltNaV09bGkpO2Zvcig7Z3I8ZW47Kytncilvcltncl09a25bZ3JdO3JldHVybiBuZXcgc24ob3IsdGhpcy5f''@;'; + put 'put ''cGFyZW50cyx0aGlzLl9uYW1lLHRoaXMuX2lkKX0sc2VsZWN0aW9uOmZ1bmN0aW9uIGduKCl7cmV0dXJuIG5ldyBRdCh0aGlzLl9ncm91cHMsdGhpcy5fcGFyZW50cyl9LHRyYW5zaXRpb246ZnVuY3Rpb24gcG4oKXtmb3IodmFyIEd0PXRoaXMuX25hbWUsa249dGhpcy5faWQsVm49d24oKSxl''@;'; + put 'put ''bj10aGlzLl9ncm91cHMsSW49ZW4ubGVuZ3RoLEpuPTA7Sm48SW47KytKbilmb3IodmFyIEtyLG9yPWVuW0puXSxncj1vci5sZW5ndGgsVnI9MDtWcjxncjsrK1ZyKWlmKEtyPW9yW1ZyXSl7dmFyIGlpPW9lKEtyLGtuKTtxKEtyLEd0LFZuLFZyLG9yLHt0aW1lOmlpLnRpbWUraWkuZGVsYXkr''@;'; + put 'put ''aWkuZHVyYXRpb24sZGVsYXk6MCxkdXJhdGlvbjppaS5kdXJhdGlvbixlYXNlOmlpLmVhc2V9KX1yZXR1cm4gbmV3IHNuKGVuLHRoaXMuX3BhcmVudHMsR3QsVm4pfSxjYWxsOnRuLmNhbGwsbm9kZXM6dG4ubm9kZXMsbm9kZTp0bi5ub2RlLHNpemU6dG4uc2l6ZSxlbXB0eTp0bi5lbXB0eSxl''@;'; + put 'put ''YWNoOnRuLmVhY2gsb246ZnVuY3Rpb24gQ3QoR3Qsa24pe3ZhciBWbj10aGlzLl9pZDtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aDwyP29lKHRoaXMubm9kZSgpLFZuKS5vbi5vbihHdCk6dGhpcy5lYWNoKEx0KFZuLEd0LGtuKSl9LGF0dHI6ZnVuY3Rpb24geWUoR3Qsa24pe3ZhciBWbj0oMCxr''@;'; + put 'put ''ZS5aKShHdCksZW49InRyYW5zZm9ybSI9PT1Wbj9BZS53OnRlO3JldHVybiB0aGlzLmF0dHJUd2VlbihHdCwiZnVuY3Rpb24iPT10eXBlb2Yga24/KFZuLmxvY2FsP0Y6UykoVm4sZW4sRWUodGhpcywiYXR0ci4iK0d0LGtuKSk6bnVsbD09a24/KFZuLmxvY2FsP1A6eCkoVm4pOihWbi5sb2Nh''@;'; + put 'put ''bD9UOlYpKFZuLGVuLGtuKSl9LGF0dHJUd2VlbjpmdW5jdGlvbiAkZShHdCxrbil7dmFyIFZuPSJhdHRyLiIrR3Q7aWYoYXJndW1lbnRzLmxlbmd0aDwyKXJldHVybihWbj10aGlzLnR3ZWVuKFZuKSkmJlZuLl92YWx1ZTtpZihudWxsPT1rbilyZXR1cm4gdGhpcy50d2VlbihWbixudWxsKTtp''@;'; + put 'put ''ZigiZnVuY3Rpb24iIT10eXBlb2Yga24pdGhyb3cgbmV3IEVycm9yO3ZhciBlbj0oMCxrZS5aKShHdCk7cmV0dXJuIHRoaXMudHdlZW4oVm4sKGVuLmxvY2FsP1BlOlFlKShlbixrbikpfSxzdHlsZTpmdW5jdGlvbiBzcihHdCxrbixWbil7dmFyIGVuPSJ0cmFuc2Zvcm0iPT0oR3QrPSIiKT9B''@;'; + put 'put ''ZS5ZOnRlO3JldHVybiBudWxsPT1rbj90aGlzLnN0eWxlVHdlZW4oR3QsZnVuY3Rpb24geW4oR3Qsa24pe3ZhciBWbixlbixJbjtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgSm49KDAsZG4uUykodGhpcyxHdCksb3I9KHRoaXMuc3R5bGUucmVtb3ZlUHJvcGVydHkoR3QpLCgwLGRuLlMpKHRoaXMs''@;'; + put 'put ''R3QpKTtyZXR1cm4gSm49PT1vcj9udWxsOkpuPT09Vm4mJm9yPT09ZW4/SW46SW49a24oVm49Sm4sZW49b3IpfX0oR3QsZW4pKS5vbigiZW5kLnN0eWxlLiIrR3QsbG4oR3QpKToiZnVuY3Rpb24iPT10eXBlb2Yga24/dGhpcy5zdHlsZVR3ZWVuKEd0LGZ1bmN0aW9uIGJuKEd0LGtuLFZuKXt2''@;'; + put 'put ''YXIgZW4sSW4sSm47cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG9yPSgwLGRuLlMpKHRoaXMsR3QpLGdyPVZuKHRoaXMpLEtyPWdyKyIiO3JldHVybiBudWxsPT1nciYmKHRoaXMuc3R5bGUucmVtb3ZlUHJvcGVydHkoR3QpLEtyPWdyPSgwLGRuLlMpKHRoaXMsR3QpKSxvcj09PUtyP251bGw6b3I9''@;'; + put 'put ''PT1lbiYmS3I9PT1Jbj9KbjooSW49S3IsSm49a24oZW49b3IsZ3IpKX19KEd0LGVuLEVlKHRoaXMsInN0eWxlLiIrR3Qsa24pKSkuZWFjaChmdW5jdGlvbiBlcihHdCxrbil7dmFyIFZuLGVuLEluLGdyLEpuPSJzdHlsZS4iK2tuLG9yPSJlbmQuIitKbjtyZXR1cm4gZnVuY3Rpb24oKXt2YXIg''@;'; + put 'put ''S3I9c2UodGhpcyxHdCksVnI9S3Iub24saWk9bnVsbD09S3IudmFsdWVbSm5dP2dyfHwoZ3I9bG4oa24pKTp2b2lkIDA7KFZyIT09Vm58fEluIT09aWkpJiYoZW49KFZuPVZyKS5jb3B5KCkpLm9uKG9yLEluPWlpKSxLci5vbj1lbn19KHRoaXMuX2lkLEd0KSk6dGhpcy5zdHlsZVR3ZWVuKEd0''@;'; + put 'put ''LGZ1bmN0aW9uIE5uKEd0LGtuLFZuKXt2YXIgZW4sSm4sSW49Vm4rIiI7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG9yPSgwLGRuLlMpKHRoaXMsR3QpO3JldHVybiBvcj09PUluP251bGw6b3I9PT1lbj9KbjpKbj1rbihlbj1vcixWbil9fShHdCxlbixrbiksVm4pLm9uKCJlbmQuc3R5bGUuIitH''@;'; + put 'put ''dCxudWxsKX0sc3R5bGVUd2VlbjpmdW5jdGlvbiB4cihHdCxrbixWbil7dmFyIGVuPSJzdHlsZS4iKyhHdCs9IiIpO2lmKGFyZ3VtZW50cy5sZW5ndGg8MilyZXR1cm4oZW49dGhpcy50d2VlbihlbikpJiZlbi5fdmFsdWU7aWYobnVsbD09a24pcmV0dXJuIHRoaXMudHdlZW4oZW4sbnVsbCk7''@;'; + put 'put ''aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGtuKXRocm93IG5ldyBFcnJvcjtyZXR1cm4gdGhpcy50d2VlbihlbixGcihHdCxrbixudWxsPT1Wbj8iIjpWbikpfSx0ZXh0OmZ1bmN0aW9uIG5yKEd0KXtyZXR1cm4gdGhpcy50d2VlbigidGV4dCIsImZ1bmN0aW9uIj09dHlwZW9mIEd0P2Z1bmN0aW9u''@;'; + put 'put ''IHByKEd0KXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIga249R3QodGhpcyk7dGhpcy50ZXh0Q29udGVudD1udWxsPT1rbj8iIjprbn19KEVlKHRoaXMsInRleHQiLEd0KSk6ZnVuY3Rpb24gcXQoR3Qpe3JldHVybiBmdW5jdGlvbigpe3RoaXMudGV4dENvbnRlbnQ9R3R9fShudWxsPT1HdD8iIjpH''@;'; + put 'put ''dCsiIikpfSx0ZXh0VHdlZW46ZnVuY3Rpb24gV3QoR3Qpe3ZhciBrbj0idGV4dCI7aWYoYXJndW1lbnRzLmxlbmd0aDwxKXJldHVybihrbj10aGlzLnR3ZWVuKGtuKSkmJmtuLl92YWx1ZTtpZihudWxsPT1HdClyZXR1cm4gdGhpcy50d2VlbihrbixudWxsKTtpZigiZnVuY3Rpb24iIT10eXBl''@;'; + put 'put ''b2YgR3QpdGhyb3cgbmV3IEVycm9yO3JldHVybiB0aGlzLnR3ZWVuKGtuLHFuKEd0KSl9LHJlbW92ZTpmdW5jdGlvbiBIdCgpe3JldHVybiB0aGlzLm9uKCJlbmQucmVtb3ZlIixmdW5jdGlvbiBmdChHdCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGtuPXRoaXMucGFyZW50Tm9kZTtmb3IodmFy''@;'; + put 'put ''IFZuIGluIHRoaXMuX190cmFuc2l0aW9uKWlmKCtWbiE9PUd0KXJldHVybjtrbiYma24ucmVtb3ZlQ2hpbGQodGhpcyl9fSh0aGlzLl9pZCkpfSx0d2VlbjpmdW5jdGlvbiBUZShHdCxrbil7dmFyIFZuPXRoaXMuX2lkO2lmKEd0Kz0iIixhcmd1bWVudHMubGVuZ3RoPDIpe2Zvcih2YXIgb3Is''@;'; + put 'put ''ZW49b2UodGhpcy5ub2RlKCksVm4pLnR3ZWVuLEluPTAsSm49ZW4ubGVuZ3RoO0luPEpuOysrSW4paWYoKG9yPWVuW0luXSkubmFtZT09PUd0KXJldHVybiBvci52YWx1ZTtyZXR1cm4gbnVsbH1yZXR1cm4gdGhpcy5lYWNoKChudWxsPT1rbj9TZTpJZSkoVm4sR3Qsa24pKX0sZGVsYXk6ZnVu''@;'; + put 'put ''Y3Rpb24gbXQoR3Qpe3ZhciBrbj10aGlzLl9pZDtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD90aGlzLmVhY2goKCJmdW5jdGlvbiI9PXR5cGVvZiBHdD9ndDp3dCkoa24sR3QpKTpvZSh0aGlzLm5vZGUoKSxrbikuZGVsYXl9LGR1cmF0aW9uOmZ1bmN0aW9uIGh0KEd0KXt2YXIga249dGhpcy5f''@;'; + put 'put ''aWQ7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dGhpcy5lYWNoKCgiZnVuY3Rpb24iPT10eXBlb2YgR3Q/dnQ6QXQpKGtuLEd0KSk6b2UodGhpcy5ub2RlKCksa24pLmR1cmF0aW9ufSxlYXNlOmZ1bmN0aW9uIG9uKEd0KXt2YXIga249dGhpcy5faWQ7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/''@;'; + put 'put ''dGhpcy5lYWNoKEJ0KGtuLEd0KSk6b2UodGhpcy5ub2RlKCksa24pLmVhc2V9LGVuZDpmdW5jdGlvbiBLbigpe3ZhciBHdCxrbixWbj10aGlzLGVuPVZuLl9pZCxJbj1Wbi5zaXplKCk7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKEpuLG9yKXt2YXIgZ3I9e3ZhbHVlOm9yfSxLcj17dmFs''@;'; + put 'put ''dWU6ZnVuY3Rpb24oKXswPT0tLUluJiZKbigpfX07Vm4uZWFjaChmdW5jdGlvbigpe3ZhciBWcj1zZSh0aGlzLGVuKSxpaT1Wci5vbjtpaSE9PUd0JiYoKGtuPShHdD1paSkuY29weSgpKS5fLmNhbmNlbC5wdXNoKGdyKSxrbi5fLmludGVycnVwdC5wdXNoKGdyKSxrbi5fLmVuZC5wdXNoKEty''@;'; + put 'put ''KSksVnIub249a259KX0pfX07dmFyIGtyPXt0aW1lOm51bGwsZGVsYXk6MCxkdXJhdGlvbjoyNTAsZWFzZTpmdW5jdGlvbiBCbihHdCl7cmV0dXJuKChHdCo9Mik8PTE/R3QqR3QqR3Q6KEd0LT0yKSpHdCpHdCsyKS8yfX07ZnVuY3Rpb24gbW4oR3Qsa24pe2Zvcih2YXIgVm47IShWbj1HdC5f''@;'; + put 'put ''X3RyYW5zaXRpb24pfHwhKFZuPVZuW2tuXSk7KWlmKCEoR3Q9R3QucGFyZW50Tm9kZSkpcmV0dXJuIGtyLnRpbWU9KDAsRS56TykoKSxrcjtyZXR1cm4gVm59bWUuWlAucHJvdG90eXBlLmludGVycnVwdD1mdW5jdGlvbiB2ZShHdCl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe2RlKHRo''@;'; + put 'put ''aXMsR3QpfSl9LG1lLlpQLnByb3RvdHlwZS50cmFuc2l0aW9uPWZ1bmN0aW9uIHVuKEd0KXt2YXIga24sVm47R3QgaW5zdGFuY2VvZiBzbj8oa249R3QuX2lkLEd0PUd0Ll9uYW1lKTooa249d24oKSwoVm49a3IpLnRpbWU9KDAsRS56TykoKSxHdD1udWxsPT1HdD9udWxsOkd0KyIiKTtmb3Io''@;'; + put 'put ''dmFyIGVuPXRoaXMuX2dyb3VwcyxJbj1lbi5sZW5ndGgsSm49MDtKbjxJbjsrK0puKWZvcih2YXIgS3Isb3I9ZW5bSm5dLGdyPW9yLmxlbmd0aCxWcj0wO1ZyPGdyOysrVnIpKEtyPW9yW1ZyXSkmJnEoS3IsR3Qsa24sVnIsb3IsVm58fG1uKEtyLGtuKSk7cmV0dXJuIG5ldyBzbihlbix0aGlz''@;'; + put 'put ''Ll9wYXJlbnRzLEd0LGtuKX07dmFyIGNuPVtudWxsXTtmdW5jdGlvbiBfbihHdCxrbil7dmFyIGVuLEluLFZuPUd0Ll9fdHJhbnNpdGlvbjtpZihWbilmb3IoSW4gaW4ga249bnVsbD09a24/bnVsbDprbisiIixWbilpZigoZW49Vm5bSW5dKS5zdGF0ZT4xJiZlbi5uYW1lPT09a24pcmV0dXJu''@;'; + put 'put ''IG5ldyBzbihbW0d0XV0sY24sa24sK0luKTtyZXR1cm4gbnVsbH19LDc1ODI3OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0IjtMLnIoSmUpLEwuZChKZSx7em9vbTooKT0+VGUsem9vbUlkZW50aXR5OigpPT5KLHpvb21UcmFuc2Zvcm06KCk9PnNlfSk7dmFyIG1lPUwoMjU5MjIpLEI9TCg1MjAx''@;'; + put 'put ''NiksRT1MKDYxNzQ2KTtmdW5jdGlvbiBVKCl7RS5CLnByZXZlbnREZWZhdWx0KCksRS5CLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpfWZ1bmN0aW9uIFEoRWUpe3ZhciBoZT1FZS5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsTz0oMCxCLlopKEVlKS5vbigiZHJhZ3N0YXJ0LmRyYWciLFUs''@;'; + put 'put ''ITApOyJvbnNlbGVjdHN0YXJ0ImluIGhlP08ub24oInNlbGVjdHN0YXJ0LmRyYWciLFUsITApOihoZS5fX25vc2VsZWN0PWhlLnN0eWxlLk1velVzZXJTZWxlY3QsaGUuc3R5bGUuTW96VXNlclNlbGVjdD0ibm9uZSIpfWZ1bmN0aW9uIFooRWUsaGUpe3ZhciBPPUVlLmRvY3VtZW50LmRvY3Vt''@;'; + put 'put ''ZW50RWxlbWVudCx6PSgwLEIuWikoRWUpLm9uKCJkcmFnc3RhcnQuZHJhZyIsbnVsbCk7aGUmJih6Lm9uKCJjbGljay5kcmFnIixVLCEwKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ei5vbigiY2xpY2suZHJhZyIsbnVsbCl9LDApKSwib25zZWxlY3RzdGFydCJpbiBPP3oub24oInNlbGVjdHN0''@;'; + put 'put ''YXJ0LmRyYWciLG51bGwpOihPLnN0eWxlLk1velVzZXJTZWxlY3Q9Ty5fX25vc2VsZWN0LGRlbGV0ZSBPLl9fbm9zZWxlY3QpfXZhciBpZT1MKDc2MjU3KSxhZT1MKDY2MDczKSxZPUwoMzAyNTYpLFc9TCg0MDgyMik7ZnVuY3Rpb24gTihFZSl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIEVl''@;'; + put 'put ''fX1mdW5jdGlvbiBlZShFZSxoZSxPKXt0aGlzLnRhcmdldD1FZSx0aGlzLnR5cGU9aGUsdGhpcy50cmFuc2Zvcm09T31mdW5jdGlvbiBxKEVlLGhlLE8pe3RoaXMuaz1FZSx0aGlzLng9aGUsdGhpcy55PU99cS5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOnEsc2NhbGU6ZnVuY3Rpb24oRWUpe3Jl''@;'; + put 'put ''dHVybiAxPT09RWU/dGhpczpuZXcgcSh0aGlzLmsqRWUsdGhpcy54LHRoaXMueSl9LHRyYW5zbGF0ZTpmdW5jdGlvbihFZSxoZSl7cmV0dXJuIDA9PT1FZSYwPT09aGU/dGhpczpuZXcgcSh0aGlzLmssdGhpcy54K3RoaXMuaypFZSx0aGlzLnkrdGhpcy5rKmhlKX0sYXBwbHk6ZnVuY3Rpb24o''@;'; + put 'put ''RWUpe3JldHVybltFZVswXSp0aGlzLmsrdGhpcy54LEVlWzFdKnRoaXMuayt0aGlzLnldfSxhcHBseVg6ZnVuY3Rpb24oRWUpe3JldHVybiBFZSp0aGlzLmsrdGhpcy54fSxhcHBseVk6ZnVuY3Rpb24oRWUpe3JldHVybiBFZSp0aGlzLmsrdGhpcy55fSxpbnZlcnQ6ZnVuY3Rpb24oRWUpe3Jl''@;'; + put 'put ''dHVyblsoRWVbMF0tdGhpcy54KS90aGlzLmssKEVlWzFdLXRoaXMueSkvdGhpcy5rXX0saW52ZXJ0WDpmdW5jdGlvbihFZSl7cmV0dXJuKEVlLXRoaXMueCkvdGhpcy5rfSxpbnZlcnRZOmZ1bmN0aW9uKEVlKXtyZXR1cm4oRWUtdGhpcy55KS90aGlzLmt9LHJlc2NhbGVYOmZ1bmN0aW9uKEVl''@;'; + put 'put ''KXtyZXR1cm4gRWUuY29weSgpLmRvbWFpbihFZS5yYW5nZSgpLm1hcCh0aGlzLmludmVydFgsdGhpcykubWFwKEVlLmludmVydCxFZSkpfSxyZXNjYWxlWTpmdW5jdGlvbihFZSl7cmV0dXJuIEVlLmNvcHkoKS5kb21haW4oRWUucmFuZ2UoKS5tYXAodGhpcy5pbnZlcnRZLHRoaXMpLm1hcChF''@;'; + put 'put ''ZS5pbnZlcnQsRWUpKX0sdG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4idHJhbnNsYXRlKCIrdGhpcy54KyIsIit0aGlzLnkrIikgc2NhbGUoIit0aGlzLmsrIikifX07dmFyIEo9bmV3IHEoMSwwLDApO2Z1bmN0aW9uIHNlKEVlKXtmb3IoOyFFZS5fX3pvb207KWlmKCEoRWU9RWUucGFyZW50''@;'; + put 'put ''Tm9kZSkpcmV0dXJuIEo7cmV0dXJuIEVlLl9fem9vbX1mdW5jdGlvbiBvZSgpe0UuQi5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKX1mdW5jdGlvbiBjZSgpe0UuQi5wcmV2ZW50RGVmYXVsdCgpLEUuQi5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKX1mdW5jdGlvbiBkZSgpe3JldHVybiFF''@;'; + put 'put ''LkIuY3RybEtleSYmIUUuQi5idXR0b259ZnVuY3Rpb24gdmUoKXt2YXIgRWU9dGhpcztyZXR1cm4gRWUgaW5zdGFuY2VvZiBTVkdFbGVtZW50PyhFZT1FZS5vd25lclNWR0VsZW1lbnR8fEVlKS5oYXNBdHRyaWJ1dGUoInZpZXdCb3giKT9bWyhFZT1FZS52aWV3Qm94LmJhc2VWYWwpLngsRWUu''@;'; + put 'put ''eV0sW0VlLngrRWUud2lkdGgsRWUueStFZS5oZWlnaHRdXTpbWzAsMF0sW0VlLndpZHRoLmJhc2VWYWwudmFsdWUsRWUuaGVpZ2h0LmJhc2VWYWwudmFsdWVdXTpbWzAsMF0sW0VlLmNsaWVudFdpZHRoLEVlLmNsaWVudEhlaWdodF1dfWZ1bmN0aW9uIEFlKCl7cmV0dXJuIHRoaXMuX196b29t''@;'; + put 'put ''fHxKfWZ1bmN0aW9uIGtlKCl7cmV0dXJuLUUuQi5kZWx0YVkqKDE9PT1FLkIuZGVsdGFNb2RlPy4wNTpFLkIuZGVsdGFNb2RlPzE6LjAwMil9ZnVuY3Rpb24gU2UoKXtyZXR1cm4gbmF2aWdhdG9yLm1heFRvdWNoUG9pbnRzfHwib250b3VjaHN0YXJ0ImluIHRoaXN9ZnVuY3Rpb24gSWUoRWUs''@;'; + put 'put ''aGUsTyl7dmFyIHo9RWUuaW52ZXJ0WChoZVswXVswXSktT1swXVswXSxuZT1FZS5pbnZlcnRYKGhlWzFdWzBdKS1PWzFdWzBdLHRlPUVlLmludmVydFkoaGVbMF1bMV0pLU9bMF1bMV0seD1FZS5pbnZlcnRZKGhlWzFdWzFdKS1PWzFdWzFdO3JldHVybiBFZS50cmFuc2xhdGUobmU+ej8oeitu''@;'; + put 'put ''ZSkvMjpNYXRoLm1pbigwLHopfHxNYXRoLm1heCgwLG5lKSx4PnRlPyh0ZSt4KS8yOk1hdGgubWluKDAsdGUpfHxNYXRoLm1heCgwLHgpKX1mdW5jdGlvbiBUZSgpe3ZhciBTLEYsRWU9ZGUsaGU9dmUsTz1JZSx6PWtlLG5lPVNlLHRlPVswLDEvMF0seD1bWy0xLzAsLTEvMF0sWzEvMCwxLzBd''@;'; + put 'put ''XSxQPTI1MCxWPWllLlosVD0oMCxtZS5aKSgic3RhcnQiLCJ6b29tIiwiZW5kIiksRGU9MDtmdW5jdGlvbiBQZShldCl7ZXQucHJvcGVydHkoIl9fem9vbSIsQWUpLm9uKCJ3aGVlbC56b29tIixBdCkub24oIm1vdXNlZG93bi56b29tIixodCkub24oImRibGNsaWNrLnpvb20iLEJ0KS5maWx0''@;'; + put 'put ''ZXIobmUpLm9uKCJ0b3VjaHN0YXJ0Lnpvb20iLG9uKS5vbigidG91Y2htb3ZlLnpvb20iLF90KS5vbigidG91Y2hlbmQuem9vbSB0b3VjaGNhbmNlbC56b29tIix0dCkuc3R5bGUoInRvdWNoLWFjdGlvbiIsIm5vbmUiKS5zdHlsZSgiLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yIiwicmdi''@;'; + put 'put ''YSgwLDAsMCwwKSIpfWZ1bmN0aW9uIFFlKGV0LGF0KXtyZXR1cm4oYXQ9TWF0aC5tYXgodGVbMF0sTWF0aC5taW4odGVbMV0sYXQpKSk9PT1ldC5rP2V0Om5ldyBxKGF0LGV0LngsZXQueSl9ZnVuY3Rpb24gJGUoZXQsYXQsTHQpe3ZhciBDdD1hdFswXS1MdFswXSpldC5rLGZ0PWF0WzFdLUx0''@;'; + put 'put ''WzFdKmV0Lms7cmV0dXJuIEN0PT09ZXQueCYmZnQ9PT1ldC55P2V0Om5ldyBxKGV0LmssQ3QsZnQpfWZ1bmN0aW9uIGd0KGV0KXtyZXR1cm5bKCtldFswXVswXSsgK2V0WzFdWzBdKS8yLCgrZXRbMF1bMV0rICtldFsxXVsxXSkvMl19ZnVuY3Rpb24gd3QoZXQsYXQsTHQpe2V0Lm9uKCJzdGFy''@;'; + put 'put ''dC56b29tIixmdW5jdGlvbigpe210KHRoaXMsYXJndW1lbnRzKS5zdGFydCgpfSkub24oImludGVycnVwdC56b29tIGVuZC56b29tIixmdW5jdGlvbigpe210KHRoaXMsYXJndW1lbnRzKS5lbmQoKX0pLnR3ZWVuKCJ6b29tIixmdW5jdGlvbigpe3ZhciBDdD10aGlzLGZ0PWFyZ3VtZW50cyxI''@;'; + put 'put ''dD1tdChDdCxmdCksR2U9aGUuYXBwbHkoQ3QsZnQpLFVlPW51bGw9PUx0P2d0KEdlKToiZnVuY3Rpb24iPT10eXBlb2YgTHQ/THQuYXBwbHkoQ3QsZnQpOkx0LHl0PU1hdGgubWF4KEdlWzFdWzBdLUdlWzBdWzBdLEdlWzFdWzFdLUdlWzBdWzFdKSxqdD1DdC5fX3pvb20sUXQ9ImZ1bmN0aW9u''@;'; + put 'put ''Ij09dHlwZW9mIGF0P2F0LmFwcGx5KEN0LGZ0KTphdCxnbj1WKGp0LmludmVydChVZSkuY29uY2F0KHl0L2p0LmspLFF0LmludmVydChVZSkuY29uY2F0KHl0L1F0LmspKTtyZXR1cm4gZnVuY3Rpb24oZG4pe2lmKDE9PT1kbilkbj1RdDtlbHNle3ZhciB5bj1nbihkbiksbG49eXQveW5bMl07''@;'; + put 'put ''ZG49bmV3IHEobG4sVWVbMF0teW5bMF0qbG4sVWVbMV0teW5bMV0qbG4pfUh0Lnpvb20obnVsbCxkbil9fSl9ZnVuY3Rpb24gbXQoZXQsYXQsTHQpe3JldHVybiFMdCYmZXQuX196b29taW5nfHxuZXcgdnQoZXQsYXQpfWZ1bmN0aW9uIHZ0KGV0LGF0KXt0aGlzLnRoYXQ9ZXQsdGhpcy5hcmdz''@;'; + put 'put ''PWF0LHRoaXMuYWN0aXZlPTAsdGhpcy5leHRlbnQ9aGUuYXBwbHkoZXQsYXQpLHRoaXMudGFwcz0wfWZ1bmN0aW9uIEF0KCl7aWYoRWUuYXBwbHkodGhpcyxhcmd1bWVudHMpKXt2YXIgZXQ9bXQodGhpcyxhcmd1bWVudHMpLGF0PXRoaXMuX196b29tLEx0PU1hdGgubWF4KHRlWzBdLE1hdGgu''@;'; + put 'put ''bWluKHRlWzFdLGF0LmsqTWF0aC5wb3coMix6LmFwcGx5KHRoaXMsYXJndW1lbnRzKSkpKSxDdD0oMCxhZS5aKSh0aGlzKTtpZihldC53aGVlbCkoZXQubW91c2VbMF1bMF0hPT1DdFswXXx8ZXQubW91c2VbMF1bMV0hPT1DdFsxXSkmJihldC5tb3VzZVsxXT1hdC5pbnZlcnQoZXQubW91c2Vb''@;'; + put 'put ''MF09Q3QpKSxjbGVhclRpbWVvdXQoZXQud2hlZWwpO2Vsc2V7aWYoYXQuaz09PUx0KXJldHVybjtldC5tb3VzZT1bQ3QsYXQuaW52ZXJ0KEN0KV0sKDAsVy5pbnRlcnJ1cHQpKHRoaXMpLGV0LnN0YXJ0KCl9Y2UoKSxldC53aGVlbD1zZXRUaW1lb3V0KGZ0LDE1MCksZXQuem9vbSgibW91c2Ui''@;'; + put 'put ''LE8oJGUoUWUoYXQsTHQpLGV0Lm1vdXNlWzBdLGV0Lm1vdXNlWzFdKSxldC5leHRlbnQseCkpfWZ1bmN0aW9uIGZ0KCl7ZXQud2hlZWw9bnVsbCxldC5lbmQoKX19ZnVuY3Rpb24gaHQoKXtpZighRiYmRWUuYXBwbHkodGhpcyxhcmd1bWVudHMpKXt2YXIgZXQ9bXQodGhpcyxhcmd1bWVudHMs''@;'; + put 'put ''ITApLGF0PSgwLEIuWikoRS5CLnZpZXcpLm9uKCJtb3VzZW1vdmUuem9vbSIsSHQsITApLm9uKCJtb3VzZXVwLnpvb20iLEdlLCEwKSxMdD0oMCxhZS5aKSh0aGlzKSxDdD1FLkIuY2xpZW50WCxmdD1FLkIuY2xpZW50WTtRKEUuQi52aWV3KSxvZSgpLGV0Lm1vdXNlPVtMdCx0aGlzLl9fem9v''@;'; + put 'put ''bS5pbnZlcnQoTHQpXSwoMCxXLmludGVycnVwdCkodGhpcyksZXQuc3RhcnQoKX1mdW5jdGlvbiBIdCgpe2lmKGNlKCksIWV0Lm1vdmVkKXt2YXIgVWU9RS5CLmNsaWVudFgtQ3QseXQ9RS5CLmNsaWVudFktZnQ7ZXQubW92ZWQ9VWUqVWUreXQqeXQ+RGV9ZXQuem9vbSgibW91c2UiLE8oJGUo''@;'; + put 'put ''ZXQudGhhdC5fX3pvb20sZXQubW91c2VbMF09KDAsYWUuWikoZXQudGhhdCksZXQubW91c2VbMV0pLGV0LmV4dGVudCx4KSl9ZnVuY3Rpb24gR2UoKXthdC5vbigibW91c2Vtb3ZlLnpvb20gbW91c2V1cC56b29tIixudWxsKSxaKEUuQi52aWV3LGV0Lm1vdmVkKSxjZSgpLGV0LmVuZCgpfX1m''@;'; + put 'put ''dW5jdGlvbiBCdCgpe2lmKEVlLmFwcGx5KHRoaXMsYXJndW1lbnRzKSl7dmFyIGV0PXRoaXMuX196b29tLGF0PSgwLGFlLlopKHRoaXMpLEx0PWV0LmludmVydChhdCksQ3Q9ZXQuayooRS5CLnNoaWZ0S2V5Py41OjIpLGZ0PU8oJGUoUWUoZXQsQ3QpLGF0LEx0KSxoZS5hcHBseSh0aGlzLGFy''@;'; + put 'put ''Z3VtZW50cykseCk7Y2UoKSxQPjA/KDAsQi5aKSh0aGlzKS50cmFuc2l0aW9uKCkuZHVyYXRpb24oUCkuY2FsbCh3dCxmdCxhdCk6KDAsQi5aKSh0aGlzKS5jYWxsKFBlLnRyYW5zZm9ybSxmdCl9fWZ1bmN0aW9uIG9uKCl7aWYoRWUuYXBwbHkodGhpcyxhcmd1bWVudHMpKXt2YXIgQ3QsZnQs''@;'; + put 'put ''SHQsR2UsZXQ9RS5CLnRvdWNoZXMsYXQ9ZXQubGVuZ3RoLEx0PW10KHRoaXMsYXJndW1lbnRzLEUuQi5jaGFuZ2VkVG91Y2hlcy5sZW5ndGg9PT1hdCk7Zm9yKG9lKCksZnQ9MDtmdDxhdDsrK2Z0KUdlPVtHZT0oMCxZLlopKHRoaXMsZXQsKEh0PWV0W2Z0XSkuaWRlbnRpZmllciksdGhpcy5f''@;'; + put 'put ''X3pvb20uaW52ZXJ0KEdlKSxIdC5pZGVudGlmaWVyXSxMdC50b3VjaDA/IUx0LnRvdWNoMSYmTHQudG91Y2gwWzJdIT09R2VbMl0mJihMdC50b3VjaDE9R2UsTHQudGFwcz0wKTooTHQudG91Y2gwPUdlLEN0PSEwLEx0LnRhcHM9MSshIVMpO1MmJihTPWNsZWFyVGltZW91dChTKSksQ3QmJihM''@;'; + put 'put ''dC50YXBzPDImJihTPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtTPW51bGx9LDUwMCkpLCgwLFcuaW50ZXJydXB0KSh0aGlzKSxMdC5zdGFydCgpKX19ZnVuY3Rpb24gX3QoKXtpZih0aGlzLl9fem9vbWluZyl7dmFyIEN0LGZ0LEh0LEdlLGV0PW10KHRoaXMsYXJndW1lbnRzKSxhdD1FLkIuY2hh''@;'; + put 'put ''bmdlZFRvdWNoZXMsTHQ9YXQubGVuZ3RoO2ZvcihjZSgpLFMmJihTPWNsZWFyVGltZW91dChTKSksZXQudGFwcz0wLEN0PTA7Q3Q8THQ7KytDdClIdD0oMCxZLlopKHRoaXMsYXQsKGZ0PWF0W0N0XSkuaWRlbnRpZmllciksZXQudG91Y2gwJiZldC50b3VjaDBbMl09PT1mdC5pZGVudGlmaWVy''@;'; + put 'put ''P2V0LnRvdWNoMFswXT1IdDpldC50b3VjaDEmJmV0LnRvdWNoMVsyXT09PWZ0LmlkZW50aWZpZXImJihldC50b3VjaDFbMF09SHQpO2lmKGZ0PWV0LnRoYXQuX196b29tLGV0LnRvdWNoMSl7dmFyIFVlPWV0LnRvdWNoMFswXSx5dD1ldC50b3VjaDBbMV0sanQ9ZXQudG91Y2gxWzBdLFF0PWV0''@;'; + put 'put ''LnRvdWNoMVsxXSxnbj0oZ249anRbMF0tVWVbMF0pKmduKyhnbj1qdFsxXS1VZVsxXSkqZ24sZG49KGRuPVF0WzBdLXl0WzBdKSpkbisoZG49UXRbMV0teXRbMV0pKmRuO2Z0PVFlKGZ0LE1hdGguc3FydChnbi9kbikpLEh0PVsoVWVbMF0ranRbMF0pLzIsKFVlWzFdK2p0WzFdKS8yXSxHZT1b''@;'; + put 'put ''KHl0WzBdK1F0WzBdKS8yLCh5dFsxXStRdFsxXSkvMl19ZWxzZXtpZighZXQudG91Y2gwKXJldHVybjtIdD1ldC50b3VjaDBbMF0sR2U9ZXQudG91Y2gwWzFdfWV0Lnpvb20oInRvdWNoIixPKCRlKGZ0LEh0LEdlKSxldC5leHRlbnQseCkpfX1mdW5jdGlvbiB0dCgpe2lmKHRoaXMuX196b29t''@;'; + put 'put ''aW5nKXt2YXIgQ3QsZnQsZXQ9bXQodGhpcyxhcmd1bWVudHMpLGF0PUUuQi5jaGFuZ2VkVG91Y2hlcyxMdD1hdC5sZW5ndGg7Zm9yKG9lKCksRiYmY2xlYXJUaW1lb3V0KEYpLEY9c2V0VGltZW91dChmdW5jdGlvbigpe0Y9bnVsbH0sNTAwKSxDdD0wO0N0PEx0OysrQ3QpZnQ9YXRbQ3RdLGV0''@;'; + put 'put ''LnRvdWNoMCYmZXQudG91Y2gwWzJdPT09ZnQuaWRlbnRpZmllcj9kZWxldGUgZXQudG91Y2gwOmV0LnRvdWNoMSYmZXQudG91Y2gxWzJdPT09ZnQuaWRlbnRpZmllciYmZGVsZXRlIGV0LnRvdWNoMTtpZihldC50b3VjaDEmJiFldC50b3VjaDAmJihldC50b3VjaDA9ZXQudG91Y2gxLGRlbGV0''@;'; + put 'put ''ZSBldC50b3VjaDEpLGV0LnRvdWNoMClldC50b3VjaDBbMV09dGhpcy5fX3pvb20uaW52ZXJ0KGV0LnRvdWNoMFswXSk7ZWxzZSBpZihldC5lbmQoKSwyPT09ZXQudGFwcyl7dmFyIEh0PSgwLEIuWikodGhpcykub24oImRibGNsaWNrLnpvb20iKTtIdCYmSHQuYXBwbHkodGhpcyxhcmd1bWVu''@;'; + put 'put ''dHMpfX19cmV0dXJuIFBlLnRyYW5zZm9ybT1mdW5jdGlvbihldCxhdCxMdCl7dmFyIEN0PWV0LnNlbGVjdGlvbj9ldC5zZWxlY3Rpb24oKTpldDtDdC5wcm9wZXJ0eSgiX196b29tIixBZSksZXQhPT1DdD93dChldCxhdCxMdCk6Q3QuaW50ZXJydXB0KCkuZWFjaChmdW5jdGlvbigpe210KHRo''@;'; + put 'put ''aXMsYXJndW1lbnRzKS5zdGFydCgpLnpvb20obnVsbCwiZnVuY3Rpb24iPT10eXBlb2YgYXQ/YXQuYXBwbHkodGhpcyxhcmd1bWVudHMpOmF0KS5lbmQoKX0pfSxQZS5zY2FsZUJ5PWZ1bmN0aW9uKGV0LGF0LEx0KXtQZS5zY2FsZVRvKGV0LGZ1bmN0aW9uKCl7dmFyIEN0PXRoaXMuX196b29t''@;'; + put 'put ''LmssZnQ9ImZ1bmN0aW9uIj09dHlwZW9mIGF0P2F0LmFwcGx5KHRoaXMsYXJndW1lbnRzKTphdDtyZXR1cm4gQ3QqZnR9LEx0KX0sUGUuc2NhbGVUbz1mdW5jdGlvbihldCxhdCxMdCl7UGUudHJhbnNmb3JtKGV0LGZ1bmN0aW9uKCl7dmFyIEN0PWhlLmFwcGx5KHRoaXMsYXJndW1lbnRzKSxm''@;'; + put 'put ''dD10aGlzLl9fem9vbSxIdD1udWxsPT1MdD9ndChDdCk6ImZ1bmN0aW9uIj09dHlwZW9mIEx0P0x0LmFwcGx5KHRoaXMsYXJndW1lbnRzKTpMdCxHZT1mdC5pbnZlcnQoSHQpLFVlPSJmdW5jdGlvbiI9PXR5cGVvZiBhdD9hdC5hcHBseSh0aGlzLGFyZ3VtZW50cyk6YXQ7cmV0dXJuIE8oJGUo''@;'; + put 'put ''UWUoZnQsVWUpLEh0LEdlKSxDdCx4KX0sTHQpfSxQZS50cmFuc2xhdGVCeT1mdW5jdGlvbihldCxhdCxMdCl7UGUudHJhbnNmb3JtKGV0LGZ1bmN0aW9uKCl7cmV0dXJuIE8odGhpcy5fX3pvb20udHJhbnNsYXRlKCJmdW5jdGlvbiI9PXR5cGVvZiBhdD9hdC5hcHBseSh0aGlzLGFyZ3VtZW50''@;'; + put 'put ''cyk6YXQsImZ1bmN0aW9uIj09dHlwZW9mIEx0P0x0LmFwcGx5KHRoaXMsYXJndW1lbnRzKTpMdCksaGUuYXBwbHkodGhpcyxhcmd1bWVudHMpLHgpfSl9LFBlLnRyYW5zbGF0ZVRvPWZ1bmN0aW9uKGV0LGF0LEx0LEN0KXtQZS50cmFuc2Zvcm0oZXQsZnVuY3Rpb24oKXt2YXIgZnQ9aGUuYXBw''@;'; + put 'put ''bHkodGhpcyxhcmd1bWVudHMpLEh0PXRoaXMuX196b29tLEdlPW51bGw9PUN0P2d0KGZ0KToiZnVuY3Rpb24iPT10eXBlb2YgQ3Q/Q3QuYXBwbHkodGhpcyxhcmd1bWVudHMpOkN0O3JldHVybiBPKEoudHJhbnNsYXRlKEdlWzBdLEdlWzFdKS5zY2FsZShIdC5rKS50cmFuc2xhdGUoImZ1bmN0''@;'; + put 'put ''aW9uIj09dHlwZW9mIGF0Py1hdC5hcHBseSh0aGlzLGFyZ3VtZW50cyk6LWF0LCJmdW5jdGlvbiI9PXR5cGVvZiBMdD8tTHQuYXBwbHkodGhpcyxhcmd1bWVudHMpOi1MdCksZnQseCl9LEN0KX0sdnQucHJvdG90eXBlPXtzdGFydDpmdW5jdGlvbigpe3JldHVybiAxPT0rK3RoaXMuYWN0aXZl''@;'; + put 'put ''JiYodGhpcy50aGF0Ll9fem9vbWluZz10aGlzLHRoaXMuZW1pdCgic3RhcnQiKSksdGhpc30sem9vbTpmdW5jdGlvbihldCxhdCl7cmV0dXJuIHRoaXMubW91c2UmJiJtb3VzZSIhPT1ldCYmKHRoaXMubW91c2VbMV09YXQuaW52ZXJ0KHRoaXMubW91c2VbMF0pKSx0aGlzLnRvdWNoMCYmInRv''@;'; + put 'put ''dWNoIiE9PWV0JiYodGhpcy50b3VjaDBbMV09YXQuaW52ZXJ0KHRoaXMudG91Y2gwWzBdKSksdGhpcy50b3VjaDEmJiJ0b3VjaCIhPT1ldCYmKHRoaXMudG91Y2gxWzFdPWF0LmludmVydCh0aGlzLnRvdWNoMVswXSkpLHRoaXMudGhhdC5fX3pvb209YXQsdGhpcy5lbWl0KCJ6b29tIiksdGhp''@;'; + put 'put ''c30sZW5kOmZ1bmN0aW9uKCl7cmV0dXJuIDA9PS0tdGhpcy5hY3RpdmUmJihkZWxldGUgdGhpcy50aGF0Ll9fem9vbWluZyx0aGlzLmVtaXQoImVuZCIpKSx0aGlzfSxlbWl0OmZ1bmN0aW9uKGV0KXsoMCxFLl9IKShuZXcgZWUoUGUsZXQsdGhpcy50aGF0Ll9fem9vbSksVC5hcHBseSxULFtl''@;'; + put 'put ''dCx0aGlzLnRoYXQsdGhpcy5hcmdzXSl9fSxQZS53aGVlbERlbHRhPWZ1bmN0aW9uKGV0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oej0iZnVuY3Rpb24iPT10eXBlb2YgZXQ/ZXQ6TigrZXQpLFBlKTp6fSxQZS5maWx0ZXI9ZnVuY3Rpb24oZXQpe3JldHVybiBhcmd1bWVudHMubGVuZ3Ro''@;'; + put 'put ''PyhFZT0iZnVuY3Rpb24iPT10eXBlb2YgZXQ/ZXQ6TighIWV0KSxQZSk6RWV9LFBlLnRvdWNoYWJsZT1mdW5jdGlvbihldCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG5lPSJmdW5jdGlvbiI9PXR5cGVvZiBldD9ldDpOKCEhZXQpLFBlKTpuZX0sUGUuZXh0ZW50PWZ1bmN0aW9uKGV0KXty''@;'; + put 'put ''ZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaGU9ImZ1bmN0aW9uIj09dHlwZW9mIGV0P2V0Ok4oW1srZXRbMF1bMF0sK2V0WzBdWzFdXSxbK2V0WzFdWzBdLCtldFsxXVsxXV1dKSxQZSk6aGV9LFBlLnNjYWxlRXh0ZW50PWZ1bmN0aW9uKGV0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odGVb''@;'; + put 'put ''MF09K2V0WzBdLHRlWzFdPStldFsxXSxQZSk6W3RlWzBdLHRlWzFdXX0sUGUudHJhbnNsYXRlRXh0ZW50PWZ1bmN0aW9uKGV0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oeFswXVswXT0rZXRbMF1bMF0seFsxXVswXT0rZXRbMV1bMF0seFswXVsxXT0rZXRbMF1bMV0seFsxXVsxXT0rZXRb''@;'; + put 'put ''MV1bMV0sUGUpOltbeFswXVswXSx4WzBdWzFdXSxbeFsxXVswXSx4WzFdWzFdXV19LFBlLmNvbnN0cmFpbj1mdW5jdGlvbihldCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KE89ZXQsUGUpOk99LFBlLmR1cmF0aW9uPWZ1bmN0aW9uKGV0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oUD0r''@;'; + put 'put ''ZXQsUGUpOlB9LFBlLmludGVycG9sYXRlPWZ1bmN0aW9uKGV0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oVj1ldCxQZSk6Vn0sUGUub249ZnVuY3Rpb24oKXt2YXIgZXQ9VC5vbi5hcHBseShULGFyZ3VtZW50cyk7cmV0dXJuIGV0PT09VD9QZTpldH0sUGUuY2xpY2tEaXN0YW5jZT1mdW5j''@;'; + put 'put ''dGlvbihldCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KERlPShldD0rZXQpKmV0LFBlKTpNYXRoLnNxcnQoRGUpfSxQZX1zZS5wcm90b3R5cGU9cS5wcm90b3R5cGV9LDczNjg0OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0IjtKZS51dGlscz1MKDc3NDUxKSxKZS5DaXBoZXI9TCgzODE3MCks''@;'; + put 'put ''SmUuREVTPUwoNDYzMSksSmUuQ0JDPUwoNzk0NTQpLEplLkVERT1MKDIxODYyKX0sNzk0NTQ6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDMyMzkxKSxCPUwoODM4OTQpLEU9e307ZnVuY3Rpb24gTWUoUSl7bWUuZXF1YWwoUS5sZW5ndGgsOCwiSW52YWxpZCBJViBsZW5ndGgi''@;'; + put 'put ''KSx0aGlzLml2PW5ldyBBcnJheSg4KTtmb3IodmFyIFo9MDtaPHRoaXMuaXYubGVuZ3RoO1orKyl0aGlzLml2W1pdPVFbWl19SmUuaW5zdGFudGlhdGU9ZnVuY3Rpb24gVShRKXtmdW5jdGlvbiBaKFcpe1EuY2FsbCh0aGlzLFcpLHRoaXMuX2NiY0luaXQoKX1CKFosUSk7Zm9yKHZhciBpZT1P''@;'; + put 'put ''YmplY3Qua2V5cyhFKSxhZT0wO2FlPGllLmxlbmd0aDthZSsrKXt2YXIgWT1pZVthZV07Wi5wcm90b3R5cGVbWV09RVtZXX1yZXR1cm4gWi5jcmVhdGU9ZnVuY3Rpb24oTil7cmV0dXJuIG5ldyBaKE4pfSxafSxFLl9jYmNJbml0PWZ1bmN0aW9uKCl7dmFyIFo9bmV3IE1lKHRoaXMub3B0aW9u''@;'; + put 'put ''cy5pdik7dGhpcy5fY2JjU3RhdGU9Wn0sRS5fdXBkYXRlPWZ1bmN0aW9uKFosaWUsYWUsWSl7dmFyIE49dGhpcy5jb25zdHJ1Y3Rvci5zdXBlcl8ucHJvdG90eXBlLGVlPXRoaXMuX2NiY1N0YXRlLml2O2lmKCJlbmNyeXB0Ij09PXRoaXMudHlwZSl7Zm9yKHZhciBxPTA7cTx0aGlzLmJsb2Nr''@;'; + put 'put ''U2l6ZTtxKyspZWVbcV1ePVpbaWUrcV07Zm9yKE4uX3VwZGF0ZS5jYWxsKHRoaXMsZWUsMCxhZSxZKSxxPTA7cTx0aGlzLmJsb2NrU2l6ZTtxKyspZWVbcV09YWVbWStxXX1lbHNle2ZvcihOLl91cGRhdGUuY2FsbCh0aGlzLFosaWUsYWUsWSkscT0wO3E8dGhpcy5ibG9ja1NpemU7cSsrKWFl''@;'; + put 'put ''W1krcV1ePWVlW3FdO2ZvcihxPTA7cTx0aGlzLmJsb2NrU2l6ZTtxKyspZWVbcV09WltpZStxXX19fSwzODE3MDooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoMzIzOTEpO2Z1bmN0aW9uIEIoRSl7dGhpcy5vcHRpb25zPUUsdGhpcy50eXBlPXRoaXMub3B0aW9ucy50eXBlLHRo''@;'; + put 'put ''aXMuYmxvY2tTaXplPTgsdGhpcy5faW5pdCgpLHRoaXMuYnVmZmVyPW5ldyBBcnJheSh0aGlzLmJsb2NrU2l6ZSksdGhpcy5idWZmZXJPZmY9MH1YZS5leHBvcnRzPUIsQi5wcm90b3R5cGUuX2luaXQ9ZnVuY3Rpb24oKXt9LEIucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbihNZSl7cmV0dXJu''@;'; + put 'put ''IDA9PT1NZS5sZW5ndGg/W106ImRlY3J5cHQiPT09dGhpcy50eXBlP3RoaXMuX3VwZGF0ZURlY3J5cHQoTWUpOnRoaXMuX3VwZGF0ZUVuY3J5cHQoTWUpfSxCLnByb3RvdHlwZS5fYnVmZmVyPWZ1bmN0aW9uKE1lLFUpe2Zvcih2YXIgUT1NYXRoLm1pbih0aGlzLmJ1ZmZlci5sZW5ndGgtdGhp''@;'; + put 'put ''cy5idWZmZXJPZmYsTWUubGVuZ3RoLVUpLFo9MDtaPFE7WisrKXRoaXMuYnVmZmVyW3RoaXMuYnVmZmVyT2ZmK1pdPU1lW1UrWl07cmV0dXJuIHRoaXMuYnVmZmVyT2ZmKz1RLFF9LEIucHJvdG90eXBlLl9mbHVzaEJ1ZmZlcj1mdW5jdGlvbihNZSxVKXtyZXR1cm4gdGhpcy5fdXBkYXRlKHRo''@;'; + put 'put ''aXMuYnVmZmVyLDAsTWUsVSksdGhpcy5idWZmZXJPZmY9MCx0aGlzLmJsb2NrU2l6ZX0sQi5wcm90b3R5cGUuX3VwZGF0ZUVuY3J5cHQ9ZnVuY3Rpb24oTWUpe3ZhciBVPTAsUT0wLGllPW5ldyBBcnJheSgoKHRoaXMuYnVmZmVyT2ZmK01lLmxlbmd0aCkvdGhpcy5ibG9ja1NpemV8MCkqdGhp''@;'; + put 'put ''cy5ibG9ja1NpemUpOzAhPT10aGlzLmJ1ZmZlck9mZiYmKFUrPXRoaXMuX2J1ZmZlcihNZSxVKSx0aGlzLmJ1ZmZlck9mZj09PXRoaXMuYnVmZmVyLmxlbmd0aCYmKFErPXRoaXMuX2ZsdXNoQnVmZmVyKGllLFEpKSk7Zm9yKHZhciBhZT1NZS5sZW5ndGgtKE1lLmxlbmd0aC1VKSV0aGlzLmJs''@;'; + put 'put ''b2NrU2l6ZTtVPGFlO1UrPXRoaXMuYmxvY2tTaXplKXRoaXMuX3VwZGF0ZShNZSxVLGllLFEpLFErPXRoaXMuYmxvY2tTaXplO2Zvcig7VTxNZS5sZW5ndGg7VSsrLHRoaXMuYnVmZmVyT2ZmKyspdGhpcy5idWZmZXJbdGhpcy5idWZmZXJPZmZdPU1lW1VdO3JldHVybiBpZX0sQi5wcm90b3R5''@;'; + put 'put ''cGUuX3VwZGF0ZURlY3J5cHQ9ZnVuY3Rpb24oTWUpe2Zvcih2YXIgVT0wLFE9MCxaPU1hdGguY2VpbCgodGhpcy5idWZmZXJPZmYrTWUubGVuZ3RoKS90aGlzLmJsb2NrU2l6ZSktMSxpZT1uZXcgQXJyYXkoWip0aGlzLmJsb2NrU2l6ZSk7Wj4wO1otLSlVKz10aGlzLl9idWZmZXIoTWUsVSks''@;'; + put 'put ''USs9dGhpcy5fZmx1c2hCdWZmZXIoaWUsUSk7cmV0dXJuIFUrPXRoaXMuX2J1ZmZlcihNZSxVKSxpZX0sQi5wcm90b3R5cGUuZmluYWw9ZnVuY3Rpb24oTWUpe3ZhciBVLFE7cmV0dXJuIE1lJiYoVT10aGlzLnVwZGF0ZShNZSkpLFE9ImVuY3J5cHQiPT09dGhpcy50eXBlP3RoaXMuX2ZpbmFs''@;'; + put 'put ''RW5jcnlwdCgpOnRoaXMuX2ZpbmFsRGVjcnlwdCgpLFU/VS5jb25jYXQoUSk6UX0sQi5wcm90b3R5cGUuX3BhZD1mdW5jdGlvbihNZSxVKXtpZigwPT09VSlyZXR1cm4hMTtmb3IoO1U8TWUubGVuZ3RoOylNZVtVKytdPTA7cmV0dXJuITB9LEIucHJvdG90eXBlLl9maW5hbEVuY3J5cHQ9ZnVu''@;'; + put 'put ''Y3Rpb24oKXtpZighdGhpcy5fcGFkKHRoaXMuYnVmZmVyLHRoaXMuYnVmZmVyT2ZmKSlyZXR1cm5bXTt2YXIgTWU9bmV3IEFycmF5KHRoaXMuYmxvY2tTaXplKTtyZXR1cm4gdGhpcy5fdXBkYXRlKHRoaXMuYnVmZmVyLDAsTWUsMCksTWV9LEIucHJvdG90eXBlLl91bnBhZD1mdW5jdGlvbihN''@;'; + put 'put ''ZSl7cmV0dXJuIE1lfSxCLnByb3RvdHlwZS5fZmluYWxEZWNyeXB0PWZ1bmN0aW9uKCl7bWUuZXF1YWwodGhpcy5idWZmZXJPZmYsdGhpcy5ibG9ja1NpemUsIk5vdCBlbm91Z2ggZGF0YSB0byBkZWNyeXB0Iik7dmFyIE1lPW5ldyBBcnJheSh0aGlzLmJsb2NrU2l6ZSk7cmV0dXJuIHRoaXMu''@;'; + put 'put ''X2ZsdXNoQnVmZmVyKE1lLDApLHRoaXMuX3VucGFkKE1lKX19LDQ2MzE6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDMyMzkxKSxCPUwoODM4OTQpLEU9TCg3NzQ1MSksTWU9TCgzODE3MCk7ZnVuY3Rpb24gVSgpe3RoaXMudG1wPW5ldyBBcnJheSgyKSx0aGlzLmtleXM9bnVs''@;'; + put 'put ''bH1mdW5jdGlvbiBRKGllKXtNZS5jYWxsKHRoaXMsaWUpO3ZhciBhZT1uZXcgVTt0aGlzLl9kZXNTdGF0ZT1hZSx0aGlzLmRlcml2ZUtleXMoYWUsaWUua2V5KX1CKFEsTWUpLFhlLmV4cG9ydHM9USxRLmNyZWF0ZT1mdW5jdGlvbihhZSl7cmV0dXJuIG5ldyBRKGFlKX07dmFyIFo9WzEsMSwy''@;'; + put 'put ''LDIsMiwyLDIsMiwxLDIsMiwyLDIsMiwyLDFdO1EucHJvdG90eXBlLmRlcml2ZUtleXM9ZnVuY3Rpb24oYWUsWSl7YWUua2V5cz1uZXcgQXJyYXkoMzIpLG1lLmVxdWFsKFkubGVuZ3RoLHRoaXMuYmxvY2tTaXplLCJJbnZhbGlkIGtleSBsZW5ndGgiKTt2YXIgVz1FLnJlYWRVSW50MzJCRShZ''@;'; + put 'put ''LDApLE49RS5yZWFkVUludDMyQkUoWSw0KTtFLnBjMShXLE4sYWUudG1wLDApLFc9YWUudG1wWzBdLE49YWUudG1wWzFdO2Zvcih2YXIgZWU9MDtlZTxhZS5rZXlzLmxlbmd0aDtlZSs9Mil7dmFyIHE9WltlZT4+PjFdO1c9RS5yMjhzaGwoVyxxKSxOPUUucjI4c2hsKE4scSksRS5wYzIoVyxO''@;'; + put 'put ''LGFlLmtleXMsZWUpfX0sUS5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbihhZSxZLFcsTil7dmFyIGVlPXRoaXMuX2Rlc1N0YXRlLHE9RS5yZWFkVUludDMyQkUoYWUsWSksSj1FLnJlYWRVSW50MzJCRShhZSxZKzQpO0UuaXAocSxKLGVlLnRtcCwwKSxxPWVlLnRtcFswXSxKPWVlLnRtcFsx''@;'; + put 'put ''XSwiZW5jcnlwdCI9PT10aGlzLnR5cGU/dGhpcy5fZW5jcnlwdChlZSxxLEosZWUudG1wLDApOnRoaXMuX2RlY3J5cHQoZWUscSxKLGVlLnRtcCwwKSxKPWVlLnRtcFsxXSxFLndyaXRlVUludDMyQkUoVyxxPWVlLnRtcFswXSxOKSxFLndyaXRlVUludDMyQkUoVyxKLE4rNCl9LFEucHJvdG90''@;'; + put 'put ''eXBlLl9wYWQ9ZnVuY3Rpb24oYWUsWSl7Zm9yKHZhciBXPWFlLmxlbmd0aC1ZLE49WTtOPGFlLmxlbmd0aDtOKyspYWVbTl09VztyZXR1cm4hMH0sUS5wcm90b3R5cGUuX3VucGFkPWZ1bmN0aW9uKGFlKXtmb3IodmFyIFk9YWVbYWUubGVuZ3RoLTFdLFc9YWUubGVuZ3RoLVk7VzxhZS5sZW5n''@;'; + put 'put ''dGg7VysrKW1lLmVxdWFsKGFlW1ddLFkpO3JldHVybiBhZS5zbGljZSgwLGFlLmxlbmd0aC1ZKX0sUS5wcm90b3R5cGUuX2VuY3J5cHQ9ZnVuY3Rpb24oYWUsWSxXLE4sZWUpe2Zvcih2YXIgcT1ZLEo9VyxzZT0wO3NlPGFlLmtleXMubGVuZ3RoO3NlKz0yKXt2YXIgb2U9YWUua2V5c1tzZV0s''@;'; + put 'put ''Y2U9YWUua2V5c1tzZSsxXTtFLmV4cGFuZChKLGFlLnRtcCwwKTt2YXIgZGU9RS5zdWJzdGl0dXRlKG9lXj1hZS50bXBbMF0sY2VePWFlLnRtcFsxXSksQWU9SjtKPShxXkUucGVybXV0ZShkZSkpPj4+MCxxPUFlfUUucmlwKEoscSxOLGVlKX0sUS5wcm90b3R5cGUuX2RlY3J5cHQ9ZnVuY3Rp''@;'; + put 'put ''b24oYWUsWSxXLE4sZWUpe2Zvcih2YXIgcT1XLEo9WSxzZT1hZS5rZXlzLmxlbmd0aC0yO3NlPj0wO3NlLT0yKXt2YXIgb2U9YWUua2V5c1tzZV0sY2U9YWUua2V5c1tzZSsxXTtFLmV4cGFuZChxLGFlLnRtcCwwKTt2YXIgZGU9RS5zdWJzdGl0dXRlKG9lXj1hZS50bXBbMF0sY2VePWFlLnRt''@;'; + put 'put ''cFsxXSksQWU9cTtxPShKXkUucGVybXV0ZShkZSkpPj4+MCxKPUFlfUUucmlwKHEsSixOLGVlKX19LDIxODYyOihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCgzMjM5MSksQj1MKDgzODk0KSxFPUwoMzgxNzApLE1lPUwoNDYzMSk7ZnVuY3Rpb24gVShaLGllKXttZS5lcXVhbChp''@;'; + put 'put ''ZS5sZW5ndGgsMjQsIkludmFsaWQga2V5IGxlbmd0aCIpO3ZhciBhZT1pZS5zbGljZSgwLDgpLFk9aWUuc2xpY2UoOCwxNiksVz1pZS5zbGljZSgxNiwyNCk7dGhpcy5jaXBoZXJzPSJlbmNyeXB0Ij09PVo/W01lLmNyZWF0ZSh7dHlwZToiZW5jcnlwdCIsa2V5OmFlfSksTWUuY3JlYXRlKHt0''@;'; + put 'put ''eXBlOiJkZWNyeXB0IixrZXk6WX0pLE1lLmNyZWF0ZSh7dHlwZToiZW5jcnlwdCIsa2V5Old9KV06W01lLmNyZWF0ZSh7dHlwZToiZGVjcnlwdCIsa2V5Old9KSxNZS5jcmVhdGUoe3R5cGU6ImVuY3J5cHQiLGtleTpZfSksTWUuY3JlYXRlKHt0eXBlOiJkZWNyeXB0IixrZXk6YWV9KV19ZnVu''@;'; + put 'put ''Y3Rpb24gUShaKXtFLmNhbGwodGhpcyxaKTt2YXIgaWU9bmV3IFUodGhpcy50eXBlLHRoaXMub3B0aW9ucy5rZXkpO3RoaXMuX2VkZVN0YXRlPWllfUIoUSxFKSxYZS5leHBvcnRzPVEsUS5jcmVhdGU9ZnVuY3Rpb24oaWUpe3JldHVybiBuZXcgUShpZSl9LFEucHJvdG90eXBlLl91cGRhdGU9''@;'; + put 'put ''ZnVuY3Rpb24oaWUsYWUsWSxXKXt2YXIgTj10aGlzLl9lZGVTdGF0ZTtOLmNpcGhlcnNbMF0uX3VwZGF0ZShpZSxhZSxZLFcpLE4uY2lwaGVyc1sxXS5fdXBkYXRlKFksVyxZLFcpLE4uY2lwaGVyc1syXS5fdXBkYXRlKFksVyxZLFcpfSxRLnByb3RvdHlwZS5fcGFkPU1lLnByb3RvdHlwZS5f''@;'; + put 'put ''cGFkLFEucHJvdG90eXBlLl91bnBhZD1NZS5wcm90b3R5cGUuX3VucGFkfSw3NzQ1MTooWGUsSmUpPT57InVzZSBzdHJpY3QiO0plLnJlYWRVSW50MzJCRT1mdW5jdGlvbihNZSxVKXtyZXR1cm4oTWVbMCtVXTw8MjR8TWVbMStVXTw8MTZ8TWVbMitVXTw8OHxNZVszK1VdKT4+PjB9LEplLndy''@;'; + put 'put ''aXRlVUludDMyQkU9ZnVuY3Rpb24oTWUsVSxRKXtNZVswK1FdPVU+Pj4yNCxNZVsxK1FdPVU+Pj4xNiYyNTUsTWVbMitRXT1VPj4+OCYyNTUsTWVbMytRXT0yNTUmVX0sSmUuaXA9ZnVuY3Rpb24oTWUsVSxRLFope2Zvcih2YXIgaWU9MCxhZT0wLFk9NjtZPj0wO1ktPTIpe2Zvcih2YXIgVz0w''@;'; + put 'put ''O1c8PTI0O1crPTgpaWU8PD0xLGllfD1VPj4+VytZJjE7Zm9yKFc9MDtXPD0yNDtXKz04KWllPDw9MSxpZXw9TWU+Pj5XK1kmMX1mb3IoWT02O1k+PTA7WS09Mil7Zm9yKFc9MTtXPD0yNTtXKz04KWFlPDw9MSxhZXw9VT4+PlcrWSYxO2ZvcihXPTE7Vzw9MjU7Vys9OClhZTw8PTEsYWV8PU1l''@;'; + put 'put ''Pj4+VytZJjF9UVtaKzBdPWllPj4+MCxRW1orMV09YWU+Pj4wfSxKZS5yaXA9ZnVuY3Rpb24oTWUsVSxRLFope2Zvcih2YXIgaWU9MCxhZT0wLFk9MDtZPDQ7WSsrKWZvcih2YXIgVz0yNDtXPj0wO1ctPTgpaWU8PD0xLGllfD1VPj4+VytZJjEsaWU8PD0xLGllfD1NZT4+PlcrWSYxO2ZvcihZ''@;'; + put 'put ''PTQ7WTw4O1krKylmb3IoVz0yNDtXPj0wO1ctPTgpYWU8PD0xLGFlfD1VPj4+VytZJjEsYWU8PD0xLGFlfD1NZT4+PlcrWSYxO1FbWiswXT1pZT4+PjAsUVtaKzFdPWFlPj4+MH0sSmUucGMxPWZ1bmN0aW9uKE1lLFUsUSxaKXtmb3IodmFyIGllPTAsYWU9MCxZPTc7WT49NTtZLS0pe2Zvcih2''@;'; + put 'put ''YXIgVz0wO1c8PTI0O1crPTgpaWU8PD0xLGllfD1VPj5XK1kmMTtmb3IoVz0wO1c8PTI0O1crPTgpaWU8PD0xLGllfD1NZT4+VytZJjF9Zm9yKFc9MDtXPD0yNDtXKz04KWllPDw9MSxpZXw9VT4+VytZJjE7Zm9yKFk9MTtZPD0zO1krKyl7Zm9yKFc9MDtXPD0yNDtXKz04KWFlPDw9MSxhZXw9''@;'; + put 'put ''VT4+VytZJjE7Zm9yKFc9MDtXPD0yNDtXKz04KWFlPDw9MSxhZXw9TWU+PlcrWSYxfWZvcihXPTA7Vzw9MjQ7Vys9OClhZTw8PTEsYWV8PU1lPj5XK1kmMTtRW1orMF09aWU+Pj4wLFFbWisxXT1hZT4+PjB9LEplLnIyOHNobD1mdW5jdGlvbihNZSxVKXtyZXR1cm4gTWU8PFUmMjY4NDM1NDU1''@;'; + put 'put ''fE1lPj4+MjgtVX07dmFyIEw9WzE0LDExLDE3LDQsMjcsMjMsMjUsMCwxMywyMiw3LDE4LDUsOSwxNiwyNCwyLDIwLDEyLDIxLDEsOCwxNSwyNiwxNSw0LDI1LDE5LDksMSwyNiwxNiw1LDExLDIzLDgsMTIsNywxNywwLDIyLDMsMTAsMTQsNiwyMCwyNywyNF07SmUucGMyPWZ1bmN0aW9uKE1l''@;'; + put 'put ''LFUsUSxaKXtmb3IodmFyIGllPTAsYWU9MCxZPUwubGVuZ3RoPj4+MSxXPTA7VzxZO1crKylpZTw8PTEsaWV8PU1lPj4+TFtXXSYxO2ZvcihXPVk7VzxMLmxlbmd0aDtXKyspYWU8PD0xLGFlfD1VPj4+TFtXXSYxO1FbWiswXT1pZT4+PjAsUVtaKzFdPWFlPj4+MH0sSmUuZXhwYW5kPWZ1bmN0''@;'; + put 'put ''aW9uKE1lLFUsUSl7dmFyIFo9MCxpZT0wO1o9KDEmTWUpPDw1fE1lPj4+Mjc7Zm9yKHZhciBhZT0yMzthZT49MTU7YWUtPTQpWjw8PTYsWnw9TWU+Pj5hZSY2Mztmb3IoYWU9MTE7YWU+PTM7YWUtPTQpaWV8PU1lPj4+YWUmNjMsaWU8PD02O2llfD0oMzEmTWUpPDwxfE1lPj4+MzEsVVtRKzBd''@;'; + put 'put ''PVo+Pj4wLFVbUSsxXT1pZT4+PjB9O3ZhciBtZT1bMTQsMCw0LDE1LDEzLDcsMSw0LDIsMTQsMTUsMiwxMSwxMyw4LDEsMywxMCwxMCw2LDYsMTIsMTIsMTEsNSw5LDksNSwwLDMsNyw4LDQsMTUsMSwxMiwxNCw4LDgsMiwxMyw0LDYsOSwyLDEsMTEsNywxNSw1LDEyLDExLDksMyw3LDE0LDMs''@;'; + put 'put ''MTAsMTAsMCw1LDYsMCwxMywxNSwzLDEsMTMsOCw0LDE0LDcsNiwxNSwxMSwyLDMsOCw0LDE0LDksMTIsNywwLDIsMSwxMywxMCwxMiw2LDAsOSw1LDExLDEwLDUsMCwxMywxNCw4LDcsMTAsMTEsMSwxMCwzLDQsMTUsMTMsNCwxLDIsNSwxMSw4LDYsMTIsNyw2LDEyLDksMCwzLDUsMiwxNCwx''@;'; + put 'put ''NSw5LDEwLDEzLDAsNyw5LDAsMTQsOSw2LDMsMyw0LDE1LDYsNSwxMCwxLDIsMTMsOCwxMiw1LDcsMTQsMTEsMTIsNCwxMSwyLDE1LDgsMSwxMywxLDYsMTAsNCwxMyw5LDAsOCw2LDE1LDksMyw4LDAsNywxMSw0LDEsMTUsMiwxNCwxMiwzLDUsMTEsMTAsNSwxNCwyLDcsMTIsNywxMywxMyw4''@;'; + put 'put ''LDE0LDExLDMsNSwwLDYsNiwxNSw5LDAsMTAsMywxLDQsMiw3LDgsMiw1LDEyLDExLDEsMTIsMTAsNCwxNCwxNSw5LDEwLDMsNiwxNSw5LDAsMCw2LDEyLDEwLDExLDEsNywxMywxMyw4LDE1LDksMSw0LDMsNSwxNCwxMSw1LDEyLDIsNyw4LDIsNCwxNCwyLDE0LDEyLDExLDQsMiwxLDEyLDcs''@;'; + put 'put ''NCwxMCw3LDExLDEzLDYsMSw4LDUsNSwwLDMsMTUsMTUsMTAsMTMsMywwLDksMTQsOCw5LDYsNCwxMSwyLDgsMSwxMiwxMSw3LDEwLDEsMTMsMTQsNywyLDgsMTMsMTUsNiw5LDE1LDEyLDAsNSw5LDYsMTAsMyw0LDAsNSwxNCwzLDEyLDEwLDEsMTUsMTAsNCwxNSwyLDksNywyLDEyLDYsOSw4''@;'; + put 'put ''LDUsMCw2LDEzLDEsMywxMyw0LDE0LDE0LDAsNywxMSw1LDMsMTEsOCw5LDQsMTQsMywxNSwyLDUsMTIsMiw5LDgsNSwxMiwxNSwzLDEwLDcsMTEsMCwxNCw0LDEsMTAsNywxLDYsMTMsMCwxMSw4LDYsMTMsNCwxMywxMSwwLDIsMTEsMTQsNywxNSw0LDAsOSw4LDEsMTMsMTAsMywxNCwxMiwz''@;'; + put 'put ''LDksNSw3LDEyLDUsMiwxMCwxNSw2LDgsMSw2LDEsNiw0LDExLDExLDEzLDEzLDgsMTIsMSwzLDQsNywxMCwxNCw3LDEwLDksMTUsNSw2LDAsOCwxNSwwLDE0LDUsMiw5LDMsMiwxMiwxMywxLDIsMTUsOCwxMyw0LDgsNiwxMCwxNSwzLDExLDcsMSw0LDEwLDEyLDksNSwzLDYsMTQsMTEsNSww''@;'; + put 'put ''LDAsMTQsMTIsOSw3LDIsNywyLDExLDEsNCwxNCwxLDcsOSw0LDEyLDEwLDE0LDgsMiwxMywwLDE1LDYsMTIsMTAsOSwxMywwLDE1LDMsMyw1LDUsNiw4LDExXTtKZS5zdWJzdGl0dXRlPWZ1bmN0aW9uKE1lLFUpe2Zvcih2YXIgUT0wLFo9MDtaPDQ7WisrKVE8PD00LFF8PW1lWzY0KlorKE1l''@;'; + put 'put ''Pj4+MTgtNipaJjYzKV07Zm9yKFo9MDtaPDQ7WisrKVE8PD00LFF8PW1lWzI1Nis2NCpaKyhVPj4+MTgtNipaJjYzKV07cmV0dXJuIFE+Pj4wfTt2YXIgQj1bMTYsMjUsMTIsMTEsMywyMCw0LDE1LDMxLDE3LDksNiwyNywxNCwxLDIyLDMwLDI0LDgsMTgsMCw1LDI5LDIzLDEzLDE5LDIsMjYs''@;'; + put 'put ''MTAsMjEsMjgsN107SmUucGVybXV0ZT1mdW5jdGlvbihNZSl7Zm9yKHZhciBVPTAsUT0wO1E8Qi5sZW5ndGg7USsrKVU8PD0xLFV8PU1lPj4+QltRXSYxO3JldHVybiBVPj4+MH0sSmUucGFkU3BsaXQ9ZnVuY3Rpb24oTWUsVSxRKXtmb3IodmFyIFo9TWUudG9TdHJpbmcoMik7Wi5sZW5ndGg8''@;'; + put 'put ''VTspWj0iMCIrWjtmb3IodmFyIGllPVtdLGFlPTA7YWU8VTthZSs9USlpZS5wdXNoKFouc2xpY2UoYWUsYWUrUSkpO3JldHVybiBpZS5qb2luKCIgIil9fSw5ODgyOTooWGUsSmUsTCk9Pnt2YXIgbWU9TCg4NTU2MyksQj1MKDI5Nzk5KSxFPUwoMjE0MTkpLFU9e2JpbmFyeTohMCxoZXg6ITAs''@;'; + put 'put ''YmFzZTY0OiEwfTtKZS5EaWZmaWVIZWxsbWFuR3JvdXA9SmUuY3JlYXRlRGlmZmllSGVsbG1hbkdyb3VwPUplLmdldERpZmZpZUhlbGxtYW49ZnVuY3Rpb24gTWUoWil7dmFyIGllPW5ldyBCdWZmZXIoQltaXS5wcmltZSwiaGV4IiksYWU9bmV3IEJ1ZmZlcihCW1pdLmdlbiwiaGV4Iik7cmV0''@;'; + put 'put ''dXJuIG5ldyBFKGllLGFlKX0sSmUuY3JlYXRlRGlmZmllSGVsbG1hbj1KZS5EaWZmaWVIZWxsbWFuPWZ1bmN0aW9uIFEoWixpZSxhZSxZKXtyZXR1cm4gQnVmZmVyLmlzQnVmZmVyKGllKXx8dm9pZCAwPT09VVtpZV0/UShaLCJiaW5hcnkiLGllLGFlKTooaWU9aWV8fCJiaW5hcnkiLFk9WXx8''@;'; + put 'put ''ImJpbmFyeSIsYWU9YWV8fG5ldyBCdWZmZXIoWzJdKSxCdWZmZXIuaXNCdWZmZXIoYWUpfHwoYWU9bmV3IEJ1ZmZlcihhZSxZKSksIm51bWJlciI9PXR5cGVvZiBaP25ldyBFKG1lKFosYWUpLGFlLCEwKTooQnVmZmVyLmlzQnVmZmVyKFopfHwoWj1uZXcgQnVmZmVyKFosaWUpKSxuZXcgRSha''@;'; + put 'put ''LGFlLCEwKSkpfX0sMjE0MTk6KFhlLEplLEwpPT57dmFyIG1lPUwoODgzMTMpLEU9bmV3KEwoMTcwNzkpKSxNZT1uZXcgbWUoMjQpLFU9bmV3IG1lKDExKSxRPW5ldyBtZSgxMCksWj1uZXcgbWUoMyksaWU9bmV3IG1lKDcpLGFlPUwoODU1NjMpLFk9TCg1Mzc1Myk7ZnVuY3Rpb24gVyhvZSxj''@;'; + put 'put ''ZSl7cmV0dXJuIGNlPWNlfHwidXRmOCIsQnVmZmVyLmlzQnVmZmVyKG9lKXx8KG9lPW5ldyBCdWZmZXIob2UsY2UpKSx0aGlzLl9wdWI9bmV3IG1lKG9lKSx0aGlzfWZ1bmN0aW9uIE4ob2UsY2Upe3JldHVybiBjZT1jZXx8InV0ZjgiLEJ1ZmZlci5pc0J1ZmZlcihvZSl8fChvZT1uZXcgQnVm''@;'; + put 'put ''ZmVyKG9lLGNlKSksdGhpcy5fcHJpdj1uZXcgbWUob2UpLHRoaXN9WGUuZXhwb3J0cz1KO3ZhciBlZT17fTtmdW5jdGlvbiBKKG9lLGNlLGRlKXt0aGlzLnNldEdlbmVyYXRvcihjZSksdGhpcy5fX3ByaW1lPW5ldyBtZShvZSksdGhpcy5fcHJpbWU9bWUubW9udCh0aGlzLl9fcHJpbWUpLHRo''@;'; + put 'put ''aXMuX3ByaW1lTGVuPW9lLmxlbmd0aCx0aGlzLl9wdWI9dm9pZCAwLHRoaXMuX3ByaXY9dm9pZCAwLHRoaXMuX3ByaW1lQ29kZT12b2lkIDAsZGU/KHRoaXMuc2V0UHVibGljS2V5PVcsdGhpcy5zZXRQcml2YXRlS2V5PU4pOnRoaXMuX3ByaW1lQ29kZT04fWZ1bmN0aW9uIHNlKG9lLGNlKXt2''@;'; + put 'put ''YXIgZGU9bmV3IEJ1ZmZlcihvZS50b0FycmF5KCkpO3JldHVybiBjZT9kZS50b1N0cmluZyhjZSk6ZGV9T2JqZWN0LmRlZmluZVByb3BlcnR5KEoucHJvdG90eXBlLCJ2ZXJpZnlFcnJvciIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIm51bWJlciIhPXR5cGVvZiB0aGlz''@;'; + put 'put ''Ll9wcmltZUNvZGUmJih0aGlzLl9wcmltZUNvZGU9ZnVuY3Rpb24gcShvZSxjZSl7dmFyIGRlPWNlLnRvU3RyaW5nKCJoZXgiKSx2ZT1bZGUsb2UudG9TdHJpbmcoMTYpXS5qb2luKCJfIik7aWYodmUgaW4gZWUpcmV0dXJuIGVlW3ZlXTt2YXIga2UsQWU9MDtpZihvZS5pc0V2ZW4oKXx8IWFl''@;'; + put 'put ''LnNpbXBsZVNpZXZlfHwhYWUuZmVybWF0VGVzdChvZSl8fCFFLnRlc3Qob2UpKXJldHVybiBBZSs9MSxlZVt2ZV09QWUrPSIwMiI9PT1kZXx8IjA1Ij09PWRlPzg6NCxBZTtzd2l0Y2goRS50ZXN0KG9lLnNocm4oMSkpfHwoQWUrPTIpLGRlKXtjYXNlIjAyIjpvZS5tb2QoTWUpLmNtcChVKSYm''@;'; + put 'put ''KEFlKz04KTticmVhaztjYXNlIjA1Ijooa2U9b2UubW9kKFEpKS5jbXAoWikmJmtlLmNtcChpZSkmJihBZSs9OCk7YnJlYWs7ZGVmYXVsdDpBZSs9NH1yZXR1cm4gZWVbdmVdPUFlLEFlfSh0aGlzLl9fcHJpbWUsdGhpcy5fX2dlbikpLHRoaXMuX3ByaW1lQ29kZX19KSxKLnByb3RvdHlwZS5n''@;'; + put 'put ''ZW5lcmF0ZUtleXM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcHJpdnx8KHRoaXMuX3ByaXY9bmV3IG1lKFkodGhpcy5fcHJpbWVMZW4pKSksdGhpcy5fcHViPXRoaXMuX2dlbi50b1JlZCh0aGlzLl9wcmltZSkucmVkUG93KHRoaXMuX3ByaXYpLmZyb21SZWQoKSx0aGlzLmdldFB1YmxpY0tl''@;'; + put 'put ''eSgpfSxKLnByb3RvdHlwZS5jb21wdXRlU2VjcmV0PWZ1bmN0aW9uKG9lKXt2YXIgY2U9KG9lPShvZT1uZXcgbWUob2UpKS50b1JlZCh0aGlzLl9wcmltZSkpLnJlZFBvdyh0aGlzLl9wcml2KS5mcm9tUmVkKCksZGU9bmV3IEJ1ZmZlcihjZS50b0FycmF5KCkpLHZlPXRoaXMuZ2V0UHJpbWUo''@;'; + put 'put ''KTtpZihkZS5sZW5ndGg8dmUubGVuZ3RoKXt2YXIgQWU9bmV3IEJ1ZmZlcih2ZS5sZW5ndGgtZGUubGVuZ3RoKTtBZS5maWxsKDApLGRlPUJ1ZmZlci5jb25jYXQoW0FlLGRlXSl9cmV0dXJuIGRlfSxKLnByb3RvdHlwZS5nZXRQdWJsaWNLZXk9ZnVuY3Rpb24oY2Upe3JldHVybiBzZSh0aGlz''@;'; + put 'put ''Ll9wdWIsY2UpfSxKLnByb3RvdHlwZS5nZXRQcml2YXRlS2V5PWZ1bmN0aW9uKGNlKXtyZXR1cm4gc2UodGhpcy5fcHJpdixjZSl9LEoucHJvdG90eXBlLmdldFByaW1lPWZ1bmN0aW9uKG9lKXtyZXR1cm4gc2UodGhpcy5fX3ByaW1lLG9lKX0sSi5wcm90b3R5cGUuZ2V0R2VuZXJhdG9yPWZ1''@;'; + put 'put ''bmN0aW9uKG9lKXtyZXR1cm4gc2UodGhpcy5fZ2VuLG9lKX0sSi5wcm90b3R5cGUuc2V0R2VuZXJhdG9yPWZ1bmN0aW9uKG9lLGNlKXtyZXR1cm4gY2U9Y2V8fCJ1dGY4IixCdWZmZXIuaXNCdWZmZXIob2UpfHwob2U9bmV3IEJ1ZmZlcihvZSxjZSkpLHRoaXMuX19nZW49b2UsdGhpcy5fZ2Vu''@;'; + put 'put ''PW5ldyBtZShvZSksdGhpc319LDg1NTYzOihYZSxKZSxMKT0+e3ZhciBtZT1MKDUzNzUzKTtYZS5leHBvcnRzPUFlLEFlLnNpbXBsZVNpZXZlPWRlLEFlLmZlcm1hdFRlc3Q9dmU7dmFyIEI9TCg4ODMxMyksRT1uZXcgQigyNCksVT1uZXcoTCgxNzA3OSkpLFE9bmV3IEIoMSksWj1uZXcgQigy''@;'; + put 'put ''KSxpZT1uZXcgQig1KSxXPShuZXcgQigxNiksbmV3IEIoOCksbmV3IEIoMTApKSxOPW5ldyBCKDMpLHE9KG5ldyBCKDcpLG5ldyBCKDExKSksSj1uZXcgQig0KSxvZT0obmV3IEIoMTIpLG51bGwpO2Z1bmN0aW9uIGRlKGtlKXtmb3IodmFyIFNlPWZ1bmN0aW9uIGNlKCl7aWYobnVsbCE9PW9l''@;'; + put 'put ''KXJldHVybiBvZTt2YXIgU2U9W107U2VbMF09Mjtmb3IodmFyIEllPTEsVGU9MztUZTwxMDQ4NTc2O1RlKz0yKXtmb3IodmFyIEVlPU1hdGguY2VpbChNYXRoLnNxcnQoVGUpKSxoZT0wO2hlPEllJiZTZVtoZV08PUVlJiZUZSVTZVtoZV0hPTA7aGUrKyk7SWUhPT1oZSYmU2VbaGVdPD1FZXx8''@;'; + put 'put ''KFNlW0llKytdPVRlKX1yZXR1cm4gb2U9U2UsU2V9KCksSWU9MDtJZTxTZS5sZW5ndGg7SWUrKylpZigwPT09a2UubW9kbihTZVtJZV0pKXJldHVybiAwPT09a2UuY21wbihTZVtJZV0pO3JldHVybiEwfWZ1bmN0aW9uIHZlKGtlKXt2YXIgU2U9Qi5tb250KGtlKTtyZXR1cm4gMD09PVoudG9S''@;'; + put 'put ''ZWQoU2UpLnJlZFBvdyhrZS5zdWJuKDEpKS5mcm9tUmVkKCkuY21wbigxKX1mdW5jdGlvbiBBZShrZSxTZSl7aWYoa2U8MTYpcmV0dXJuIG5ldyBCKDI9PT1TZXx8NT09PVNlP1sxNDAsMTIzXTpbMTQwLDM5XSk7U2U9bmV3IEIoU2UpO2Zvcih2YXIgSWUsVGU7Oyl7Zm9yKEllPW5ldyBCKG1l''@;'; + put 'put ''KE1hdGguY2VpbChrZS84KSkpO0llLmJpdExlbmd0aCgpPmtlOylJZS5pc2hybigxKTtpZihJZS5pc0V2ZW4oKSYmSWUuaWFkZChRKSxJZS50ZXN0bigxKXx8SWUuaWFkZChaKSxTZS5jbXAoWikpe2lmKCFTZS5jbXAoaWUpKWZvcig7SWUubW9kKFcpLmNtcChOKTspSWUuaWFkZChKKX1lbHNl''@;'; + put 'put ''IGZvcig7SWUubW9kKEUpLmNtcChxKTspSWUuaWFkZChKKTtpZihkZShUZT1JZS5zaHJuKDEpKSYmZGUoSWUpJiZ2ZShUZSkmJnZlKEllKSYmVS50ZXN0KFRlKSYmVS50ZXN0KEllKSlyZXR1cm4gSWV9fX0sODgzMTM6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lLEIpeyJ1c2Ugc3Ry''@;'; + put 'put ''aWN0IjtmdW5jdGlvbiBFKGhlLE8pe2lmKCFoZSl0aHJvdyBuZXcgRXJyb3IoT3x8IkFzc2VydGlvbiBmYWlsZWQiKX1mdW5jdGlvbiBNZShoZSxPKXtoZS5zdXBlcl89Tzt2YXIgej1mdW5jdGlvbigpe307ei5wcm90b3R5cGU9Ty5wcm90b3R5cGUsaGUucHJvdG90eXBlPW5ldyB6LGhlLnBy''@;'; + put 'put ''b3RvdHlwZS5jb25zdHJ1Y3Rvcj1oZX1mdW5jdGlvbiBVKGhlLE8seil7aWYoVS5pc0JOKGhlKSlyZXR1cm4gaGU7dGhpcy5uZWdhdGl2ZT0wLHRoaXMud29yZHM9bnVsbCx0aGlzLmxlbmd0aD0wLHRoaXMucmVkPW51bGwsbnVsbCE9PWhlJiYoKCJsZSI9PT1PfHwiYmUiPT09TykmJih6PU8s''@;'; + put 'put ''Tz0xMCksdGhpcy5faW5pdChoZXx8MCxPfHwxMCx6fHwiYmUiKSl9dmFyIFE7Im9iamVjdCI9PXR5cGVvZiBtZT9tZS5leHBvcnRzPVU6Qi5CTj1VLFUuQk49VSxVLndvcmRTaXplPTI2O3RyeXtRPSJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiZ2b2lkIDAhPT13aW5kb3cuQnVmZmVyP3dp''@;'; + put 'put ''bmRvdy5CdWZmZXI6TCg3NzQ4KS5CdWZmZXJ9Y2F0Y2goaGUpe31mdW5jdGlvbiBaKGhlLE8pe3ZhciB6PWhlLmNoYXJDb2RlQXQoTyk7cmV0dXJuIHo+PTY1JiZ6PD03MD96LTU1Ono+PTk3JiZ6PD0xMDI/ei04Nzp6LTQ4JjE1fWZ1bmN0aW9uIGllKGhlLE8seil7dmFyIG5lPVooaGUseik7''@;'; + put 'put ''cmV0dXJuIHotMT49TyYmKG5lfD1aKGhlLHotMSk8PDQpLG5lfWZ1bmN0aW9uIGFlKGhlLE8seixuZSl7Zm9yKHZhciB0ZT0wLHg9TWF0aC5taW4oaGUubGVuZ3RoLHopLFA9TztQPHg7UCsrKXt2YXIgVj1oZS5jaGFyQ29kZUF0KFApLTQ4O3RlKj1uZSx0ZSs9Vj49NDk/Vi00OSsxMDpWPj0x''@;'; + put 'put ''Nz9WLTE3KzEwOlZ9cmV0dXJuIHRlfVUuaXNCTj1mdW5jdGlvbihPKXtyZXR1cm4gTyBpbnN0YW5jZW9mIFV8fG51bGwhPT1PJiYib2JqZWN0Ij09dHlwZW9mIE8mJk8uY29uc3RydWN0b3Iud29yZFNpemU9PT1VLndvcmRTaXplJiZBcnJheS5pc0FycmF5KE8ud29yZHMpfSxVLm1heD1mdW5j''@;'; + put 'put ''dGlvbihPLHope3JldHVybiBPLmNtcCh6KT4wP086en0sVS5taW49ZnVuY3Rpb24oTyx6KXtyZXR1cm4gTy5jbXAoeik8MD9POnp9LFUucHJvdG90eXBlLl9pbml0PWZ1bmN0aW9uKE8seixuZSl7aWYoIm51bWJlciI9PXR5cGVvZiBPKXJldHVybiB0aGlzLl9pbml0TnVtYmVyKE8seixuZSk7''@;'; + put 'put ''aWYoIm9iamVjdCI9PXR5cGVvZiBPKXJldHVybiB0aGlzLl9pbml0QXJyYXkoTyx6LG5lKTsiaGV4Ij09PXomJih6PTE2KSxFKHo9PT0oMHx6KSYmej49MiYmejw9MzYpO3ZhciB0ZT0wOyItIj09PShPPU8udG9TdHJpbmcoKS5yZXBsYWNlKC9ccysvZywiIikpWzBdJiYodGUrKyx0aGlzLm5l''@;'; + put 'put ''Z2F0aXZlPTEpLHRlPE8ubGVuZ3RoJiYoMTY9PT16P3RoaXMuX3BhcnNlSGV4KE8sdGUsbmUpOih0aGlzLl9wYXJzZUJhc2UoTyx6LHRlKSwibGUiPT09bmUmJnRoaXMuX2luaXRBcnJheSh0aGlzLnRvQXJyYXkoKSx6LG5lKSkpfSxVLnByb3RvdHlwZS5faW5pdE51bWJlcj1mdW5jdGlvbihP''@;'; + put 'put ''LHosbmUpe088MCYmKHRoaXMubmVnYXRpdmU9MSxPPS1PKSxPPDY3MTA4ODY0Pyh0aGlzLndvcmRzPVs2NzEwODg2MyZPXSx0aGlzLmxlbmd0aD0xKTpPPDQ1MDM1OTk2MjczNzA0OTY/KHRoaXMud29yZHM9WzY3MTA4ODYzJk8sTy82NzEwODg2NCY2NzEwODg2M10sdGhpcy5sZW5ndGg9Mik6''@;'; + put 'put ''KEUoTzw5MDA3MTk5MjU0NzQwOTkyKSx0aGlzLndvcmRzPVs2NzEwODg2MyZPLE8vNjcxMDg4NjQmNjcxMDg4NjMsMV0sdGhpcy5sZW5ndGg9MyksImxlIj09PW5lJiZ0aGlzLl9pbml0QXJyYXkodGhpcy50b0FycmF5KCkseixuZSl9LFUucHJvdG90eXBlLl9pbml0QXJyYXk9ZnVuY3Rpb24o''@;'; + put 'put ''Tyx6LG5lKXtpZihFKCJudW1iZXIiPT10eXBlb2YgTy5sZW5ndGgpLE8ubGVuZ3RoPD0wKXJldHVybiB0aGlzLndvcmRzPVswXSx0aGlzLmxlbmd0aD0xLHRoaXM7dGhpcy5sZW5ndGg9TWF0aC5jZWlsKE8ubGVuZ3RoLzMpLHRoaXMud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoKTtmb3Io''@;'; + put 'put ''dmFyIHRlPTA7dGU8dGhpcy5sZW5ndGg7dGUrKyl0aGlzLndvcmRzW3RlXT0wO3ZhciB4LFAsVj0wO2lmKCJiZSI9PT1uZSlmb3IodGU9Ty5sZW5ndGgtMSx4PTA7dGU+PTA7dGUtPTMpdGhpcy53b3Jkc1t4XXw9KFA9T1t0ZV18T1t0ZS0xXTw8OHxPW3RlLTJdPDwxNik8PFYmNjcxMDg4NjMs''@;'; + put 'put ''dGhpcy53b3Jkc1t4KzFdPVA+Pj4yNi1WJjY3MTA4ODYzLChWKz0yNCk+PTI2JiYoVi09MjYseCsrKTtlbHNlIGlmKCJsZSI9PT1uZSlmb3IodGU9MCx4PTA7dGU8Ty5sZW5ndGg7dGUrPTMpdGhpcy53b3Jkc1t4XXw9KFA9T1t0ZV18T1t0ZSsxXTw8OHxPW3RlKzJdPDwxNik8PFYmNjcxMDg4''@;'; + put 'put ''NjMsdGhpcy53b3Jkc1t4KzFdPVA+Pj4yNi1WJjY3MTA4ODYzLChWKz0yNCk+PTI2JiYoVi09MjYseCsrKTtyZXR1cm4gdGhpcy5zdHJpcCgpfSxVLnByb3RvdHlwZS5fcGFyc2VIZXg9ZnVuY3Rpb24oTyx6LG5lKXt0aGlzLmxlbmd0aD1NYXRoLmNlaWwoKE8ubGVuZ3RoLXopLzYpLHRoaXMu''@;'; + put 'put ''d29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoKTtmb3IodmFyIHRlPTA7dGU8dGhpcy5sZW5ndGg7dGUrKyl0aGlzLndvcmRzW3RlXT0wO3ZhciBWLHg9MCxQPTA7aWYoImJlIj09PW5lKWZvcih0ZT1PLmxlbmd0aC0xO3RlPj16O3RlLT0yKVY9aWUoTyx6LHRlKTw8eCx0aGlzLndvcmRzW1Bd''@;'; + put 'put ''fD02NzEwODg2MyZWLHg+PTE4Pyh4LT0xOCx0aGlzLndvcmRzW1ArPTFdfD1WPj4+MjYpOngrPTg7ZWxzZSBmb3IodGU9KE8ubGVuZ3RoLXopJTI9PTA/eisxOno7dGU8Ty5sZW5ndGg7dGUrPTIpVj1pZShPLHosdGUpPDx4LHRoaXMud29yZHNbUF18PTY3MTA4ODYzJlYseD49MTg/KHgtPTE4''@;'; + put 'put ''LHRoaXMud29yZHNbUCs9MV18PVY+Pj4yNik6eCs9ODt0aGlzLnN0cmlwKCl9LFUucHJvdG90eXBlLl9wYXJzZUJhc2U9ZnVuY3Rpb24oTyx6LG5lKXt0aGlzLndvcmRzPVswXSx0aGlzLmxlbmd0aD0xO2Zvcih2YXIgdGU9MCx4PTE7eDw9NjcxMDg4NjM7eCo9eil0ZSsrO3RlLS0seD14L3p8''@;'; + put 'put ''MDtmb3IodmFyIFA9Ty5sZW5ndGgtbmUsVj1QJXRlLFQ9TWF0aC5taW4oUCxQLVYpK25lLFM9MCxGPW5lO0Y8VDtGKz10ZSlTPWFlKE8sRixGK3RlLHopLHRoaXMuaW11bG4oeCksdGhpcy53b3Jkc1swXStTPDY3MTA4ODY0P3RoaXMud29yZHNbMF0rPVM6dGhpcy5faWFkZG4oUyk7aWYoMCE9''@;'; + put 'put ''PVYpe3ZhciB5ZT0xO2ZvcihTPWFlKE8sRixPLmxlbmd0aCx6KSxGPTA7RjxWO0YrKyl5ZSo9ejt0aGlzLmltdWxuKHllKSx0aGlzLndvcmRzWzBdK1M8NjcxMDg4NjQ/dGhpcy53b3Jkc1swXSs9Uzp0aGlzLl9pYWRkbihTKX10aGlzLnN0cmlwKCl9LFUucHJvdG90eXBlLmNvcHk9ZnVuY3Rp''@;'; + put 'put ''b24oTyl7Ty53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgpO2Zvcih2YXIgej0wO3o8dGhpcy5sZW5ndGg7eisrKU8ud29yZHNbel09dGhpcy53b3Jkc1t6XTtPLmxlbmd0aD10aGlzLmxlbmd0aCxPLm5lZ2F0aXZlPXRoaXMubmVnYXRpdmUsTy5yZWQ9dGhpcy5yZWR9LFUucHJvdG90eXBl''@;'; + put 'put ''LmNsb25lPWZ1bmN0aW9uKCl7dmFyIE89bmV3IFUobnVsbCk7cmV0dXJuIHRoaXMuY29weShPKSxPfSxVLnByb3RvdHlwZS5fZXhwYW5kPWZ1bmN0aW9uKE8pe2Zvcig7dGhpcy5sZW5ndGg8TzspdGhpcy53b3Jkc1t0aGlzLmxlbmd0aCsrXT0wO3JldHVybiB0aGlzfSxVLnByb3RvdHlwZS5z''@;'; + put 'put ''dHJpcD1mdW5jdGlvbigpe2Zvcig7dGhpcy5sZW5ndGg+MSYmMD09PXRoaXMud29yZHNbdGhpcy5sZW5ndGgtMV07KXRoaXMubGVuZ3RoLS07cmV0dXJuIHRoaXMuX25vcm1TaWduKCl9LFUucHJvdG90eXBlLl9ub3JtU2lnbj1mdW5jdGlvbigpe3JldHVybiAxPT09dGhpcy5sZW5ndGgmJjA9''@;'; + put 'put ''PT10aGlzLndvcmRzWzBdJiYodGhpcy5uZWdhdGl2ZT0wKSx0aGlzfSxVLnByb3RvdHlwZS5pbnNwZWN0PWZ1bmN0aW9uKCl7cmV0dXJuKHRoaXMucmVkPyI8Qk4tUjogIjoiPEJOOiAiKSt0aGlzLnRvU3RyaW5nKDE2KSsiPiJ9O3ZhciBZPVsiIiwiMCIsIjAwIiwiMDAwIiwiMDAwMCIsIjAw''@;'; + put 'put ''MDAwIiwiMDAwMDAwIiwiMDAwMDAwMCIsIjAwMDAwMDAwIiwiMDAwMDAwMDAwIiwiMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAw''@;'; + put 'put ''MDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAw''@;'; + put 'put ''MDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCJdLFc9WzAsMCwyNSwxNiwxMiwxMSwxMCw5LDgsOCw3LDcsNyw3LDYsNiw2LDYsNiw2LDYsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNV0sTj1bMCwwLDMzNTU0NDMyLDQzMDQ2NzIxLDE2Nzc3MjE2LDQ4''@;'; + put 'put ''ODI4MTI1LDYwNDY2MTc2LDQwMzUzNjA3LDE2Nzc3MjE2LDQzMDQ2NzIxLDFlNywxOTQ4NzE3MSwzNTgzMTgwOCw2Mjc0ODUxNyw3NTI5NTM2LDExMzkwNjI1LDE2Nzc3MjE2LDI0MTM3NTY5LDM0MDEyMjI0LDQ3MDQ1ODgxLDY0ZTYsNDA4NDEwMSw1MTUzNjMyLDY0MzYzNDMsNzk2MjYyNCw5''@;'; + put 'put ''NzY1NjI1LDExODgxMzc2LDE0MzQ4OTA3LDE3MjEwMzY4LDIwNTExMTQ5LDI0M2U1LDI4NjI5MTUxLDMzNTU0NDMyLDM5MTM1MzkzLDQ1NDM1NDI0LDUyNTIxODc1LDYwNDY2MTc2XTtmdW5jdGlvbiBxKGhlLE8seil7ei5uZWdhdGl2ZT1PLm5lZ2F0aXZlXmhlLm5lZ2F0aXZlO3ZhciBuZT1o''@;'; + put 'put ''ZS5sZW5ndGgrTy5sZW5ndGh8MDt6Lmxlbmd0aD1uZSxuZT1uZS0xfDA7dmFyIHRlPTB8aGUud29yZHNbMF0seD0wfE8ud29yZHNbMF0sUD10ZSp4LFQ9UC82NzEwODg2NHwwO3oud29yZHNbMF09NjcxMDg4NjMmUDtmb3IodmFyIFM9MTtTPG5lO1MrKyl7Zm9yKHZhciBGPVQ+Pj4yNix5ZT02''@;'; + put 'put ''NzEwODg2MyZULENlPU1hdGgubWluKFMsTy5sZW5ndGgtMSksRGU9TWF0aC5tYXgoMCxTLWhlLmxlbmd0aCsxKTtEZTw9Q2U7RGUrKylGKz0oUD0odGU9MHxoZS53b3Jkc1tTLURlfDBdKSooeD0wfE8ud29yZHNbRGVdKSt5ZSkvNjcxMDg4NjR8MCx5ZT02NzEwODg2MyZQO3oud29yZHNbU109''@;'; + put 'put ''MHx5ZSxUPTB8Rn1yZXR1cm4gMCE9PVQ/ei53b3Jkc1tTXT0wfFQ6ei5sZW5ndGgtLSx6LnN0cmlwKCl9VS5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oTyx6KXt2YXIgbmU7aWYoej0wfHp8fDEsMTY9PT0oTz1PfHwxMCl8fCJoZXgiPT09Tyl7bmU9IiI7Zm9yKHZhciB0ZT0wLHg9MCxQ''@;'; + put 'put ''PTA7UDx0aGlzLmxlbmd0aDtQKyspe3ZhciBWPXRoaXMud29yZHNbUF0sVD0oMTY3NzcyMTUmKFY8PHRlfHgpKS50b1N0cmluZygxNik7bmU9MCE9KHg9Vj4+PjI0LXRlJjE2Nzc3MjE1KXx8UCE9PXRoaXMubGVuZ3RoLTE/WVs2LVQubGVuZ3RoXStUK25lOlQrbmUsKHRlKz0yKT49MjYmJih0''@;'; + put 'put ''ZS09MjYsUC0tKX1mb3IoMCE9PXgmJihuZT14LnRvU3RyaW5nKDE2KStuZSk7bmUubGVuZ3RoJXohPTA7KW5lPSIwIituZTtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmUmJihuZT0iLSIrbmUpLG5lfWlmKE89PT0oMHxPKSYmTz49MiYmTzw9MzYpe3ZhciBTPVdbT10sRj1OW09dO25lPSIiO3Zh''@;'; + put 'put ''ciB5ZT10aGlzLmNsb25lKCk7Zm9yKHllLm5lZ2F0aXZlPTA7IXllLmlzWmVybygpOyl7dmFyIENlPXllLm1vZG4oRikudG9TdHJpbmcoTyk7bmU9KHllPXllLmlkaXZuKEYpKS5pc1plcm8oKT9DZStuZTpZW1MtQ2UubGVuZ3RoXStDZStuZX1mb3IodGhpcy5pc1plcm8oKSYmKG5lPSIwIitu''@;'; + put 'put ''ZSk7bmUubGVuZ3RoJXohPTA7KW5lPSIwIituZTtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmUmJihuZT0iLSIrbmUpLG5lfUUoITEsIkJhc2Ugc2hvdWxkIGJlIGJldHdlZW4gMiBhbmQgMzYiKX0sVS5wcm90b3R5cGUudG9OdW1iZXI9ZnVuY3Rpb24oKXt2YXIgTz10aGlzLndvcmRzWzBdO3Jl''@;'; + put 'put ''dHVybiAyPT09dGhpcy5sZW5ndGg/Tys9NjcxMDg4NjQqdGhpcy53b3Jkc1sxXTozPT09dGhpcy5sZW5ndGgmJjE9PT10aGlzLndvcmRzWzJdP08rPTQ1MDM1OTk2MjczNzA0OTYrNjcxMDg4NjQqdGhpcy53b3Jkc1sxXTp0aGlzLmxlbmd0aD4yJiZFKCExLCJOdW1iZXIgY2FuIG9ubHkgc2Fm''@;'; + put 'put ''ZWx5IHN0b3JlIHVwIHRvIDUzIGJpdHMiKSwwIT09dGhpcy5uZWdhdGl2ZT8tTzpPfSxVLnByb3RvdHlwZS50b0pTT049ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50b1N0cmluZygxNil9LFUucHJvdG90eXBlLnRvQnVmZmVyPWZ1bmN0aW9uKE8seil7cmV0dXJuIEUodm9pZCAwIT09USksdGhp''@;'; + put 'put ''cy50b0FycmF5TGlrZShRLE8seil9LFUucHJvdG90eXBlLnRvQXJyYXk9ZnVuY3Rpb24oTyx6KXtyZXR1cm4gdGhpcy50b0FycmF5TGlrZShBcnJheSxPLHopfSxVLnByb3RvdHlwZS50b0FycmF5TGlrZT1mdW5jdGlvbihPLHosbmUpe3ZhciB0ZT10aGlzLmJ5dGVMZW5ndGgoKSx4PW5lfHxN''@;'; + put 'put ''YXRoLm1heCgxLHRlKTtFKHRlPD14LCJieXRlIGFycmF5IGxvbmdlciB0aGFuIGRlc2lyZWQgbGVuZ3RoIiksRSh4PjAsIlJlcXVlc3RlZCBhcnJheSBsZW5ndGggPD0gMCIpLHRoaXMuc3RyaXAoKTt2YXIgVCxTLFA9ImxlIj09PXosVj1uZXcgTyh4KSxGPXRoaXMuY2xvbmUoKTtpZihQKXtm''@;'; + put 'put ''b3IoUz0wOyFGLmlzWmVybygpO1MrKylUPUYuYW5kbG4oMjU1KSxGLml1c2hybig4KSxWW1NdPVQ7Zm9yKDtTPHg7UysrKVZbU109MH1lbHNle2ZvcihTPTA7Uzx4LXRlO1MrKylWW1NdPTA7Zm9yKFM9MDshRi5pc1plcm8oKTtTKyspVD1GLmFuZGxuKDI1NSksRi5pdXNocm4oOCksVlt4LVMt''@;'; + put 'put ''MV09VH1yZXR1cm4gVn0sVS5wcm90b3R5cGUuX2NvdW50Qml0cz1NYXRoLmNsejMyP2Z1bmN0aW9uKE8pe3JldHVybiAzMi1NYXRoLmNsejMyKE8pfTpmdW5jdGlvbihPKXt2YXIgej1PLG5lPTA7cmV0dXJuIHo+PTQwOTYmJihuZSs9MTMsej4+Pj0xMyksej49NjQmJihuZSs9Nyx6Pj4+PTcp''@;'; + put 'put ''LHo+PTgmJihuZSs9NCx6Pj4+PTQpLHo+PTImJihuZSs9Mix6Pj4+PTIpLG5lK3p9LFUucHJvdG90eXBlLl96ZXJvQml0cz1mdW5jdGlvbihPKXtpZigwPT09TylyZXR1cm4gMjY7dmFyIHo9TyxuZT0wO3JldHVybiAwPT0oODE5MSZ6KSYmKG5lKz0xMyx6Pj4+PTEzKSwwPT0oMTI3JnopJiYo''@;'; + put 'put ''bmUrPTcsej4+Pj03KSwwPT0oMTUmeikmJihuZSs9NCx6Pj4+PTQpLDA9PSgzJnopJiYobmUrPTIsej4+Pj0yKSwwPT0oMSZ6KSYmbmUrKyxuZX0sVS5wcm90b3R5cGUuYml0TGVuZ3RoPWZ1bmN0aW9uKCl7dmFyIHo9dGhpcy5fY291bnRCaXRzKHRoaXMud29yZHNbdGhpcy5sZW5ndGgtMV0p''@;'; + put 'put ''O3JldHVybiAyNioodGhpcy5sZW5ndGgtMSkren0sVS5wcm90b3R5cGUuemVyb0JpdHM9ZnVuY3Rpb24oKXtpZih0aGlzLmlzWmVybygpKXJldHVybiAwO2Zvcih2YXIgTz0wLHo9MDt6PHRoaXMubGVuZ3RoO3orKyl7dmFyIG5lPXRoaXMuX3plcm9CaXRzKHRoaXMud29yZHNbel0pO2lmKE8r''@;'; + put 'put ''PW5lLDI2IT09bmUpYnJlYWt9cmV0dXJuIE99LFUucHJvdG90eXBlLmJ5dGVMZW5ndGg9ZnVuY3Rpb24oKXtyZXR1cm4gTWF0aC5jZWlsKHRoaXMuYml0TGVuZ3RoKCkvOCl9LFUucHJvdG90eXBlLnRvVHdvcz1mdW5jdGlvbihPKXtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmU/dGhpcy5hYnMo''@;'; + put 'put ''KS5pbm90bihPKS5pYWRkbigxKTp0aGlzLmNsb25lKCl9LFUucHJvdG90eXBlLmZyb21Ud29zPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLnRlc3RuKE8tMSk/dGhpcy5ub3RuKE8pLmlhZGRuKDEpLmluZWcoKTp0aGlzLmNsb25lKCl9LFUucHJvdG90eXBlLmlzTmVnPWZ1bmN0aW9uKCl7cmV0''@;'; + put 'put ''dXJuIDAhPT10aGlzLm5lZ2F0aXZlfSxVLnByb3RvdHlwZS5uZWc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmluZWcoKX0sVS5wcm90b3R5cGUuaW5lZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmlzWmVybygpfHwodGhpcy5uZWdhdGl2ZV49MSksdGhpc30sVS5wcm90b3R5cGUu''@;'; + put 'put ''aXVvcj1mdW5jdGlvbihPKXtmb3IoO3RoaXMubGVuZ3RoPE8ubGVuZ3RoOyl0aGlzLndvcmRzW3RoaXMubGVuZ3RoKytdPTA7Zm9yKHZhciB6PTA7ejxPLmxlbmd0aDt6KyspdGhpcy53b3Jkc1t6XT10aGlzLndvcmRzW3pdfE8ud29yZHNbel07cmV0dXJuIHRoaXMuc3RyaXAoKX0sVS5wcm90''@;'; + put 'put ''b3R5cGUuaW9yPWZ1bmN0aW9uKE8pe3JldHVybiBFKDA9PSh0aGlzLm5lZ2F0aXZlfE8ubmVnYXRpdmUpKSx0aGlzLml1b3IoTyl9LFUucHJvdG90eXBlLm9yPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmxlbmd0aD5PLmxlbmd0aD90aGlzLmNsb25lKCkuaW9yKE8pOk8uY2xvbmUoKS5pb3Io''@;'; + put 'put ''dGhpcyl9LFUucHJvdG90eXBlLnVvcj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5sZW5ndGg+Ty5sZW5ndGg/dGhpcy5jbG9uZSgpLml1b3IoTyk6Ty5jbG9uZSgpLml1b3IodGhpcyl9LFUucHJvdG90eXBlLml1YW5kPWZ1bmN0aW9uKE8pe3ZhciB6O3o9dGhpcy5sZW5ndGg+Ty5sZW5ndGg/''@;'; + put 'put ''Tzp0aGlzO2Zvcih2YXIgbmU9MDtuZTx6Lmxlbmd0aDtuZSsrKXRoaXMud29yZHNbbmVdPXRoaXMud29yZHNbbmVdJk8ud29yZHNbbmVdO3JldHVybiB0aGlzLmxlbmd0aD16Lmxlbmd0aCx0aGlzLnN0cmlwKCl9LFUucHJvdG90eXBlLmlhbmQ9ZnVuY3Rpb24oTyl7cmV0dXJuIEUoMD09KHRo''@;'; + put 'put ''aXMubmVnYXRpdmV8Ty5uZWdhdGl2ZSkpLHRoaXMuaXVhbmQoTyl9LFUucHJvdG90eXBlLmFuZD1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5sZW5ndGg+Ty5sZW5ndGg/dGhpcy5jbG9uZSgpLmlhbmQoTyk6Ty5jbG9uZSgpLmlhbmQodGhpcyl9LFUucHJvdG90eXBlLnVhbmQ9ZnVuY3Rpb24o''@;'; + put 'put ''Tyl7cmV0dXJuIHRoaXMubGVuZ3RoPk8ubGVuZ3RoP3RoaXMuY2xvbmUoKS5pdWFuZChPKTpPLmNsb25lKCkuaXVhbmQodGhpcyl9LFUucHJvdG90eXBlLml1eG9yPWZ1bmN0aW9uKE8pe3ZhciB6LG5lO3RoaXMubGVuZ3RoPk8ubGVuZ3RoPyh6PXRoaXMsbmU9Tyk6KHo9TyxuZT10aGlzKTtm''@;'; + put 'put ''b3IodmFyIHRlPTA7dGU8bmUubGVuZ3RoO3RlKyspdGhpcy53b3Jkc1t0ZV09ei53b3Jkc1t0ZV1ebmUud29yZHNbdGVdO2lmKHRoaXMhPT16KWZvcig7dGU8ei5sZW5ndGg7dGUrKyl0aGlzLndvcmRzW3RlXT16LndvcmRzW3RlXTtyZXR1cm4gdGhpcy5sZW5ndGg9ei5sZW5ndGgsdGhpcy5z''@;'; + put 'put ''dHJpcCgpfSxVLnByb3RvdHlwZS5peG9yPWZ1bmN0aW9uKE8pe3JldHVybiBFKDA9PSh0aGlzLm5lZ2F0aXZlfE8ubmVnYXRpdmUpKSx0aGlzLml1eG9yKE8pfSxVLnByb3RvdHlwZS54b3I9ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMubGVuZ3RoPk8ubGVuZ3RoP3RoaXMuY2xvbmUoKS5peG9y''@;'; + put 'put ''KE8pOk8uY2xvbmUoKS5peG9yKHRoaXMpfSxVLnByb3RvdHlwZS51eG9yPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmxlbmd0aD5PLmxlbmd0aD90aGlzLmNsb25lKCkuaXV4b3IoTyk6Ty5jbG9uZSgpLml1eG9yKHRoaXMpfSxVLnByb3RvdHlwZS5pbm90bj1mdW5jdGlvbihPKXtFKCJudW1i''@;'; + put 'put ''ZXIiPT10eXBlb2YgTyYmTz49MCk7dmFyIHo9MHxNYXRoLmNlaWwoTy8yNiksbmU9TyUyNjt0aGlzLl9leHBhbmQoeiksbmU+MCYmei0tO2Zvcih2YXIgdGU9MDt0ZTx6O3RlKyspdGhpcy53b3Jkc1t0ZV09NjcxMDg4NjMmfnRoaXMud29yZHNbdGVdO3JldHVybiBuZT4wJiYodGhpcy53b3Jk''@;'; + put 'put ''c1t0ZV09fnRoaXMud29yZHNbdGVdJjY3MTA4ODYzPj4yNi1uZSksdGhpcy5zdHJpcCgpfSxVLnByb3RvdHlwZS5ub3RuPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmNsb25lKCkuaW5vdG4oTyl9LFUucHJvdG90eXBlLnNldG49ZnVuY3Rpb24oTyx6KXtFKCJudW1iZXIiPT10eXBlb2YgTyYm''@;'; + put 'put ''Tz49MCk7dmFyIG5lPU8vMjZ8MCx0ZT1PJTI2O3JldHVybiB0aGlzLl9leHBhbmQobmUrMSksdGhpcy53b3Jkc1tuZV09ej90aGlzLndvcmRzW25lXXwxPDx0ZTp0aGlzLndvcmRzW25lXSZ+KDE8PHRlKSx0aGlzLnN0cmlwKCl9LFUucHJvdG90eXBlLmlhZGQ9ZnVuY3Rpb24oTyl7dmFyIHos''@;'; + put 'put ''bmUsdGU7aWYoMCE9PXRoaXMubmVnYXRpdmUmJjA9PT1PLm5lZ2F0aXZlKXJldHVybiB0aGlzLm5lZ2F0aXZlPTAsej10aGlzLmlzdWIoTyksdGhpcy5uZWdhdGl2ZV49MSx0aGlzLl9ub3JtU2lnbigpO2lmKDA9PT10aGlzLm5lZ2F0aXZlJiYwIT09Ty5uZWdhdGl2ZSlyZXR1cm4gTy5uZWdh''@;'; + put 'put ''dGl2ZT0wLHo9dGhpcy5pc3ViKE8pLE8ubmVnYXRpdmU9MSx6Ll9ub3JtU2lnbigpO3RoaXMubGVuZ3RoPk8ubGVuZ3RoPyhuZT10aGlzLHRlPU8pOihuZT1PLHRlPXRoaXMpO2Zvcih2YXIgeD0wLFA9MDtQPHRlLmxlbmd0aDtQKyspdGhpcy53b3Jkc1tQXT02NzEwODg2MyYoej0oMHxuZS53''@;'; + put 'put ''b3Jkc1tQXSkrKDB8dGUud29yZHNbUF0pK3gpLHg9ej4+PjI2O2Zvcig7MCE9PXgmJlA8bmUubGVuZ3RoO1ArKyl0aGlzLndvcmRzW1BdPTY3MTA4ODYzJih6PSgwfG5lLndvcmRzW1BdKSt4KSx4PXo+Pj4yNjtpZih0aGlzLmxlbmd0aD1uZS5sZW5ndGgsMCE9PXgpdGhpcy53b3Jkc1t0aGlz''@;'; + put 'put ''Lmxlbmd0aF09eCx0aGlzLmxlbmd0aCsrO2Vsc2UgaWYobmUhPT10aGlzKWZvcig7UDxuZS5sZW5ndGg7UCsrKXRoaXMud29yZHNbUF09bmUud29yZHNbUF07cmV0dXJuIHRoaXN9LFUucHJvdG90eXBlLmFkZD1mdW5jdGlvbihPKXt2YXIgejtyZXR1cm4gMCE9PU8ubmVnYXRpdmUmJjA9PT10''@;'; + put 'put ''aGlzLm5lZ2F0aXZlPyhPLm5lZ2F0aXZlPTAsej10aGlzLnN1YihPKSxPLm5lZ2F0aXZlXj0xLHopOjA9PT1PLm5lZ2F0aXZlJiYwIT09dGhpcy5uZWdhdGl2ZT8odGhpcy5uZWdhdGl2ZT0wLHo9Ty5zdWIodGhpcyksdGhpcy5uZWdhdGl2ZT0xLHopOnRoaXMubGVuZ3RoPk8ubGVuZ3RoP3Ro''@;'; + put 'put ''aXMuY2xvbmUoKS5pYWRkKE8pOk8uY2xvbmUoKS5pYWRkKHRoaXMpfSxVLnByb3RvdHlwZS5pc3ViPWZ1bmN0aW9uKE8pe2lmKDAhPT1PLm5lZ2F0aXZlKXtPLm5lZ2F0aXZlPTA7dmFyIHo9dGhpcy5pYWRkKE8pO3JldHVybiBPLm5lZ2F0aXZlPTEsei5fbm9ybVNpZ24oKX1pZigwIT09dGhp''@;'; + put 'put ''cy5uZWdhdGl2ZSlyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLHRoaXMuaWFkZChPKSx0aGlzLm5lZ2F0aXZlPTEsdGhpcy5fbm9ybVNpZ24oKTt2YXIgdGUseCxuZT10aGlzLmNtcChPKTtpZigwPT09bmUpcmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlzLmxlbmd0aD0xLHRoaXMud29yZHNbMF09''@;'; + put 'put ''MCx0aGlzO25lPjA/KHRlPXRoaXMseD1PKToodGU9Tyx4PXRoaXMpO2Zvcih2YXIgUD0wLFY9MDtWPHgubGVuZ3RoO1YrKylQPSh6PSgwfHRlLndvcmRzW1ZdKS0oMHx4LndvcmRzW1ZdKStQKT4+MjYsdGhpcy53b3Jkc1tWXT02NzEwODg2MyZ6O2Zvcig7MCE9PVAmJlY8dGUubGVuZ3RoO1Yr''@;'; + put 'put ''KylQPSh6PSgwfHRlLndvcmRzW1ZdKStQKT4+MjYsdGhpcy53b3Jkc1tWXT02NzEwODg2MyZ6O2lmKDA9PT1QJiZWPHRlLmxlbmd0aCYmdGUhPT10aGlzKWZvcig7Vjx0ZS5sZW5ndGg7VisrKXRoaXMud29yZHNbVl09dGUud29yZHNbVl07cmV0dXJuIHRoaXMubGVuZ3RoPU1hdGgubWF4KHRo''@;'; + put 'put ''aXMubGVuZ3RoLFYpLHRlIT09dGhpcyYmKHRoaXMubmVnYXRpdmU9MSksdGhpcy5zdHJpcCgpfSxVLnByb3RvdHlwZS5zdWI9ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc3ViKE8pfTt2YXIgSj1mdW5jdGlvbihPLHosbmUpe3ZhciBULFMsRix0ZT1PLndvcmRzLHg9ei53b3Jk''@;'; + put 'put ''cyxQPW5lLndvcmRzLFY9MCx5ZT0wfHRlWzBdLENlPTgxOTEmeWUsRGU9eWU+Pj4xMyxQZT0wfHRlWzFdLFFlPTgxOTEmUGUsJGU9UGU+Pj4xMyxndD0wfHRlWzJdLHd0PTgxOTEmZ3QsbXQ9Z3Q+Pj4xMyx2dD0wfHRlWzNdLEF0PTgxOTEmdnQsaHQ9dnQ+Pj4xMyxCdD0wfHRlWzRdLG9uPTgx''@;'; + put 'put ''OTEmQnQsX3Q9QnQ+Pj4xMyx0dD0wfHRlWzVdLGV0PTgxOTEmdHQsYXQ9dHQ+Pj4xMyxMdD0wfHRlWzZdLEN0PTgxOTEmTHQsZnQ9THQ+Pj4xMyxIdD0wfHRlWzddLEdlPTgxOTEmSHQsVWU9SHQ+Pj4xMyx5dD0wfHRlWzhdLGp0PTgxOTEmeXQsUXQ9eXQ+Pj4xMyxnbj0wfHRlWzldLGRuPTgx''@;'; + put 'put ''OTEmZ24seW49Z24+Pj4xMyxsbj0wfHhbMF0sTm49ODE5MSZsbixibj1sbj4+PjEzLGVyPTB8eFsxXSxzcj04MTkxJmVyLFhuPWVyPj4+MTMsRnI9MHx4WzJdLHhyPTgxOTEmRnIscXQ9RnI+Pj4xMyxwcj0wfHhbM10sbnI9ODE5MSZwcixBbj1wcj4+PjEzLHFuPTB8eFs0XSxXdD04MTkxJnFu''@;'; + put 'put ''LHBuPXFuPj4+MTMsS249MHx4WzVdLE50PTgxOTEmS24sc249S24+Pj4xMyxVbj0wfHhbNl0sd249ODE5MSZVbix0bj1Vbj4+PjEzLHpuPTB8eFs3XSxUcj04MTkxJnpuLEJuPXpuPj4+MTMsa3I9MHx4WzhdLG1uPTgxOTEma3IsdW49a3I+Pj4xMyxjbj0wfHhbOV0sX249ODE5MSZjbixHdD1j''@;'; + put 'put ''bj4+PjEzO25lLm5lZ2F0aXZlPU8ubmVnYXRpdmVeei5uZWdhdGl2ZSxuZS5sZW5ndGg9MTk7dmFyIGtuPShWKyhUPU1hdGguaW11bChDZSxObikpfDApKygoODE5MSYoUz0oUz1NYXRoLmltdWwoQ2UsYm4pKStNYXRoLmltdWwoRGUsTm4pfDApKTw8MTMpfDA7Vj0oKEY9TWF0aC5pbXVsKERl''@;'; + put 'put ''LGJuKSkrKFM+Pj4xMyl8MCkrKGtuPj4+MjYpfDAsa24mPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKFFlLE5uKSxTPShTPU1hdGguaW11bChRZSxibikpK01hdGguaW11bCgkZSxObil8MCxGPU1hdGguaW11bCgkZSxibik7dmFyIFZuPShWKyhUPVQrTWF0aC5pbXVsKENlLHNyKXwwKXwwKSsoKDgx''@;'; + put 'put ''OTEmKFM9KFM9UytNYXRoLmltdWwoQ2UsWG4pfDApK01hdGguaW11bChEZSxzcil8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bChEZSxYbil8MCkrKFM+Pj4xMyl8MCkrKFZuPj4+MjYpfDAsVm4mPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKHd0LE5uKSxTPShTPU1hdGguaW11bCh3dCxibikp''@;'; + put 'put ''K01hdGguaW11bChtdCxObil8MCxGPU1hdGguaW11bChtdCxibiksVD1UK01hdGguaW11bChRZSxzcil8MCxTPShTPVMrTWF0aC5pbXVsKFFlLFhuKXwwKStNYXRoLmltdWwoJGUsc3IpfDAsRj1GK01hdGguaW11bCgkZSxYbil8MDt2YXIgZW49KFYrKFQ9VCtNYXRoLmltdWwoQ2UseHIpfDAp''@;'; + put 'put ''fDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bChDZSxxdCl8MCkrTWF0aC5pbXVsKERlLHhyKXwwKSk8PDEzKXwwO1Y9KChGPUYrTWF0aC5pbXVsKERlLHF0KXwwKSsoUz4+PjEzKXwwKSsoZW4+Pj4yNil8MCxlbiY9NjcxMDg4NjMsVD1NYXRoLmltdWwoQXQsTm4pLFM9KFM9TWF0aC5pbXVs''@;'; + put 'put ''KEF0LGJuKSkrTWF0aC5pbXVsKGh0LE5uKXwwLEY9TWF0aC5pbXVsKGh0LGJuKSxUPVQrTWF0aC5pbXVsKHd0LHNyKXwwLFM9KFM9UytNYXRoLmltdWwod3QsWG4pfDApK01hdGguaW11bChtdCxzcil8MCxGPUYrTWF0aC5pbXVsKG10LFhuKXwwLFQ9VCtNYXRoLmltdWwoUWUseHIpfDAsUz0o''@;'; + put 'put ''Uz1TK01hdGguaW11bChRZSxxdCl8MCkrTWF0aC5pbXVsKCRlLHhyKXwwLEY9RitNYXRoLmltdWwoJGUscXQpfDA7dmFyIEluPShWKyhUPVQrTWF0aC5pbXVsKENlLG5yKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoQ2UsQW4pfDApK01hdGguaW11bChEZSxucil8MCkpPDwxMyl8''@;'; + put 'put ''MDtWPSgoRj1GK01hdGguaW11bChEZSxBbil8MCkrKFM+Pj4xMyl8MCkrKEluPj4+MjYpfDAsSW4mPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKG9uLE5uKSxTPShTPU1hdGguaW11bChvbixibikpK01hdGguaW11bChfdCxObil8MCxGPU1hdGguaW11bChfdCxibiksVD1UK01hdGguaW11bChBdCxz''@;'; + put 'put ''cil8MCxTPShTPVMrTWF0aC5pbXVsKEF0LFhuKXwwKStNYXRoLmltdWwoaHQsc3IpfDAsRj1GK01hdGguaW11bChodCxYbil8MCxUPVQrTWF0aC5pbXVsKHd0LHhyKXwwLFM9KFM9UytNYXRoLmltdWwod3QscXQpfDApK01hdGguaW11bChtdCx4cil8MCxGPUYrTWF0aC5pbXVsKG10LHF0KXww''@;'; + put 'put ''LFQ9VCtNYXRoLmltdWwoUWUsbnIpfDAsUz0oUz1TK01hdGguaW11bChRZSxBbil8MCkrTWF0aC5pbXVsKCRlLG5yKXwwLEY9RitNYXRoLmltdWwoJGUsQW4pfDA7dmFyIEpuPShWKyhUPVQrTWF0aC5pbXVsKENlLFd0KXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoQ2UscG4pfDAp''@;'; + put 'put ''K01hdGguaW11bChEZSxXdCl8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bChEZSxwbil8MCkrKFM+Pj4xMyl8MCkrKEpuPj4+MjYpfDAsSm4mPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGV0LE5uKSxTPShTPU1hdGguaW11bChldCxibikpK01hdGguaW11bChhdCxObil8MCxGPU1hdGguaW11''@;'; + put 'put ''bChhdCxibiksVD1UK01hdGguaW11bChvbixzcil8MCxTPShTPVMrTWF0aC5pbXVsKG9uLFhuKXwwKStNYXRoLmltdWwoX3Qsc3IpfDAsRj1GK01hdGguaW11bChfdCxYbil8MCxUPVQrTWF0aC5pbXVsKEF0LHhyKXwwLFM9KFM9UytNYXRoLmltdWwoQXQscXQpfDApK01hdGguaW11bChodCx4''@;'; + put 'put ''cil8MCxGPUYrTWF0aC5pbXVsKGh0LHF0KXwwLFQ9VCtNYXRoLmltdWwod3QsbnIpfDAsUz0oUz1TK01hdGguaW11bCh3dCxBbil8MCkrTWF0aC5pbXVsKG10LG5yKXwwLEY9RitNYXRoLmltdWwobXQsQW4pfDAsVD1UK01hdGguaW11bChRZSxXdCl8MCxTPShTPVMrTWF0aC5pbXVsKFFlLHBu''@;'; + put 'put ''KXwwKStNYXRoLmltdWwoJGUsV3QpfDAsRj1GK01hdGguaW11bCgkZSxwbil8MDt2YXIgb3I9KFYrKFQ9VCtNYXRoLmltdWwoQ2UsTnQpfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bChDZSxzbil8MCkrTWF0aC5pbXVsKERlLE50KXwwKSk8PDEzKXwwO1Y9KChGPUYrTWF0aC5pbXVs''@;'; + put 'put ''KERlLHNuKXwwKSsoUz4+PjEzKXwwKSsob3I+Pj4yNil8MCxvciY9NjcxMDg4NjMsVD1NYXRoLmltdWwoQ3QsTm4pLFM9KFM9TWF0aC5pbXVsKEN0LGJuKSkrTWF0aC5pbXVsKGZ0LE5uKXwwLEY9TWF0aC5pbXVsKGZ0LGJuKSxUPVQrTWF0aC5pbXVsKGV0LHNyKXwwLFM9KFM9UytNYXRoLmlt''@;'; + put 'put ''dWwoZXQsWG4pfDApK01hdGguaW11bChhdCxzcil8MCxGPUYrTWF0aC5pbXVsKGF0LFhuKXwwLFQ9VCtNYXRoLmltdWwob24seHIpfDAsUz0oUz1TK01hdGguaW11bChvbixxdCl8MCkrTWF0aC5pbXVsKF90LHhyKXwwLEY9RitNYXRoLmltdWwoX3QscXQpfDAsVD1UK01hdGguaW11bChBdCxu''@;'; + put 'put ''cil8MCxTPShTPVMrTWF0aC5pbXVsKEF0LEFuKXwwKStNYXRoLmltdWwoaHQsbnIpfDAsRj1GK01hdGguaW11bChodCxBbil8MCxUPVQrTWF0aC5pbXVsKHd0LFd0KXwwLFM9KFM9UytNYXRoLmltdWwod3QscG4pfDApK01hdGguaW11bChtdCxXdCl8MCxGPUYrTWF0aC5pbXVsKG10LHBuKXww''@;'; + put 'put ''LFQ9VCtNYXRoLmltdWwoUWUsTnQpfDAsUz0oUz1TK01hdGguaW11bChRZSxzbil8MCkrTWF0aC5pbXVsKCRlLE50KXwwLEY9RitNYXRoLmltdWwoJGUsc24pfDA7dmFyIGdyPShWKyhUPVQrTWF0aC5pbXVsKENlLHduKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoQ2UsdG4pfDAp''@;'; + put 'put ''K01hdGguaW11bChEZSx3bil8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bChEZSx0bil8MCkrKFM+Pj4xMyl8MCkrKGdyPj4+MjYpfDAsZ3ImPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKEdlLE5uKSxTPShTPU1hdGguaW11bChHZSxibikpK01hdGguaW11bChVZSxObil8MCxGPU1hdGguaW11''@;'; + put 'put ''bChVZSxibiksVD1UK01hdGguaW11bChDdCxzcil8MCxTPShTPVMrTWF0aC5pbXVsKEN0LFhuKXwwKStNYXRoLmltdWwoZnQsc3IpfDAsRj1GK01hdGguaW11bChmdCxYbil8MCxUPVQrTWF0aC5pbXVsKGV0LHhyKXwwLFM9KFM9UytNYXRoLmltdWwoZXQscXQpfDApK01hdGguaW11bChhdCx4''@;'; + put 'put ''cil8MCxGPUYrTWF0aC5pbXVsKGF0LHF0KXwwLFQ9VCtNYXRoLmltdWwob24sbnIpfDAsUz0oUz1TK01hdGguaW11bChvbixBbil8MCkrTWF0aC5pbXVsKF90LG5yKXwwLEY9RitNYXRoLmltdWwoX3QsQW4pfDAsVD1UK01hdGguaW11bChBdCxXdCl8MCxTPShTPVMrTWF0aC5pbXVsKEF0LHBu''@;'; + put 'put ''KXwwKStNYXRoLmltdWwoaHQsV3QpfDAsRj1GK01hdGguaW11bChodCxwbil8MCxUPVQrTWF0aC5pbXVsKHd0LE50KXwwLFM9KFM9UytNYXRoLmltdWwod3Qsc24pfDApK01hdGguaW11bChtdCxOdCl8MCxGPUYrTWF0aC5pbXVsKG10LHNuKXwwLFQ9VCtNYXRoLmltdWwoUWUsd24pfDAsUz0o''@;'; + put 'put ''Uz1TK01hdGguaW11bChRZSx0bil8MCkrTWF0aC5pbXVsKCRlLHduKXwwLEY9RitNYXRoLmltdWwoJGUsdG4pfDA7dmFyIEtyPShWKyhUPVQrTWF0aC5pbXVsKENlLFRyKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoQ2UsQm4pfDApK01hdGguaW11bChEZSxUcil8MCkpPDwxMyl8''@;'; + put 'put ''MDtWPSgoRj1GK01hdGguaW11bChEZSxCbil8MCkrKFM+Pj4xMyl8MCkrKEtyPj4+MjYpfDAsS3ImPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGp0LE5uKSxTPShTPU1hdGguaW11bChqdCxibikpK01hdGguaW11bChRdCxObil8MCxGPU1hdGguaW11bChRdCxibiksVD1UK01hdGguaW11bChHZSxz''@;'; + put 'put ''cil8MCxTPShTPVMrTWF0aC5pbXVsKEdlLFhuKXwwKStNYXRoLmltdWwoVWUsc3IpfDAsRj1GK01hdGguaW11bChVZSxYbil8MCxUPVQrTWF0aC5pbXVsKEN0LHhyKXwwLFM9KFM9UytNYXRoLmltdWwoQ3QscXQpfDApK01hdGguaW11bChmdCx4cil8MCxGPUYrTWF0aC5pbXVsKGZ0LHF0KXww''@;'; + put 'put ''LFQ9VCtNYXRoLmltdWwoZXQsbnIpfDAsUz0oUz1TK01hdGguaW11bChldCxBbil8MCkrTWF0aC5pbXVsKGF0LG5yKXwwLEY9RitNYXRoLmltdWwoYXQsQW4pfDAsVD1UK01hdGguaW11bChvbixXdCl8MCxTPShTPVMrTWF0aC5pbXVsKG9uLHBuKXwwKStNYXRoLmltdWwoX3QsV3QpfDAsRj1G''@;'; + put 'put ''K01hdGguaW11bChfdCxwbil8MCxUPVQrTWF0aC5pbXVsKEF0LE50KXwwLFM9KFM9UytNYXRoLmltdWwoQXQsc24pfDApK01hdGguaW11bChodCxOdCl8MCxGPUYrTWF0aC5pbXVsKGh0LHNuKXwwLFQ9VCtNYXRoLmltdWwod3Qsd24pfDAsUz0oUz1TK01hdGguaW11bCh3dCx0bil8MCkrTWF0''@;'; + put 'put ''aC5pbXVsKG10LHduKXwwLEY9RitNYXRoLmltdWwobXQsdG4pfDAsVD1UK01hdGguaW11bChRZSxUcil8MCxTPShTPVMrTWF0aC5pbXVsKFFlLEJuKXwwKStNYXRoLmltdWwoJGUsVHIpfDAsRj1GK01hdGguaW11bCgkZSxCbil8MDt2YXIgVnI9KFYrKFQ9VCtNYXRoLmltdWwoQ2UsbW4pfDAp''@;'; + put 'put ''fDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bChDZSx1bil8MCkrTWF0aC5pbXVsKERlLG1uKXwwKSk8PDEzKXwwO1Y9KChGPUYrTWF0aC5pbXVsKERlLHVuKXwwKSsoUz4+PjEzKXwwKSsoVnI+Pj4yNil8MCxWciY9NjcxMDg4NjMsVD1NYXRoLmltdWwoZG4sTm4pLFM9KFM9TWF0aC5pbXVs''@;'; + put 'put ''KGRuLGJuKSkrTWF0aC5pbXVsKHluLE5uKXwwLEY9TWF0aC5pbXVsKHluLGJuKSxUPVQrTWF0aC5pbXVsKGp0LHNyKXwwLFM9KFM9UytNYXRoLmltdWwoanQsWG4pfDApK01hdGguaW11bChRdCxzcil8MCxGPUYrTWF0aC5pbXVsKFF0LFhuKXwwLFQ9VCtNYXRoLmltdWwoR2UseHIpfDAsUz0o''@;'; + put 'put ''Uz1TK01hdGguaW11bChHZSxxdCl8MCkrTWF0aC5pbXVsKFVlLHhyKXwwLEY9RitNYXRoLmltdWwoVWUscXQpfDAsVD1UK01hdGguaW11bChDdCxucil8MCxTPShTPVMrTWF0aC5pbXVsKEN0LEFuKXwwKStNYXRoLmltdWwoZnQsbnIpfDAsRj1GK01hdGguaW11bChmdCxBbil8MCxUPVQrTWF0''@;'; + put 'put ''aC5pbXVsKGV0LFd0KXwwLFM9KFM9UytNYXRoLmltdWwoZXQscG4pfDApK01hdGguaW11bChhdCxXdCl8MCxGPUYrTWF0aC5pbXVsKGF0LHBuKXwwLFQ9VCtNYXRoLmltdWwob24sTnQpfDAsUz0oUz1TK01hdGguaW11bChvbixzbil8MCkrTWF0aC5pbXVsKF90LE50KXwwLEY9RitNYXRoLmlt''@;'; + put 'put ''dWwoX3Qsc24pfDAsVD1UK01hdGguaW11bChBdCx3bil8MCxTPShTPVMrTWF0aC5pbXVsKEF0LHRuKXwwKStNYXRoLmltdWwoaHQsd24pfDAsRj1GK01hdGguaW11bChodCx0bil8MCxUPVQrTWF0aC5pbXVsKHd0LFRyKXwwLFM9KFM9UytNYXRoLmltdWwod3QsQm4pfDApK01hdGguaW11bCht''@;'; + put 'put ''dCxUcil8MCxGPUYrTWF0aC5pbXVsKG10LEJuKXwwLFQ9VCtNYXRoLmltdWwoUWUsbW4pfDAsUz0oUz1TK01hdGguaW11bChRZSx1bil8MCkrTWF0aC5pbXVsKCRlLG1uKXwwLEY9RitNYXRoLmltdWwoJGUsdW4pfDA7dmFyIGlpPShWKyhUPVQrTWF0aC5pbXVsKENlLF9uKXwwKXwwKSsoKDgx''@;'; + put 'put ''OTEmKFM9KFM9UytNYXRoLmltdWwoQ2UsR3QpfDApK01hdGguaW11bChEZSxfbil8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bChEZSxHdCl8MCkrKFM+Pj4xMyl8MCkrKGlpPj4+MjYpfDAsaWkmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGRuLHNyKSxTPShTPU1hdGguaW11bChkbixYbikp''@;'; + put 'put ''K01hdGguaW11bCh5bixzcil8MCxGPU1hdGguaW11bCh5bixYbiksVD1UK01hdGguaW11bChqdCx4cil8MCxTPShTPVMrTWF0aC5pbXVsKGp0LHF0KXwwKStNYXRoLmltdWwoUXQseHIpfDAsRj1GK01hdGguaW11bChRdCxxdCl8MCxUPVQrTWF0aC5pbXVsKEdlLG5yKXwwLFM9KFM9UytNYXRo''@;'; + put 'put ''LmltdWwoR2UsQW4pfDApK01hdGguaW11bChVZSxucil8MCxGPUYrTWF0aC5pbXVsKFVlLEFuKXwwLFQ9VCtNYXRoLmltdWwoQ3QsV3QpfDAsUz0oUz1TK01hdGguaW11bChDdCxwbil8MCkrTWF0aC5pbXVsKGZ0LFd0KXwwLEY9RitNYXRoLmltdWwoZnQscG4pfDAsVD1UK01hdGguaW11bChl''@;'; + put 'put ''dCxOdCl8MCxTPShTPVMrTWF0aC5pbXVsKGV0LHNuKXwwKStNYXRoLmltdWwoYXQsTnQpfDAsRj1GK01hdGguaW11bChhdCxzbil8MCxUPVQrTWF0aC5pbXVsKG9uLHduKXwwLFM9KFM9UytNYXRoLmltdWwob24sdG4pfDApK01hdGguaW11bChfdCx3bil8MCxGPUYrTWF0aC5pbXVsKF90LHRu''@;'; + put 'put ''KXwwLFQ9VCtNYXRoLmltdWwoQXQsVHIpfDAsUz0oUz1TK01hdGguaW11bChBdCxCbil8MCkrTWF0aC5pbXVsKGh0LFRyKXwwLEY9RitNYXRoLmltdWwoaHQsQm4pfDAsVD1UK01hdGguaW11bCh3dCxtbil8MCxTPShTPVMrTWF0aC5pbXVsKHd0LHVuKXwwKStNYXRoLmltdWwobXQsbW4pfDAs''@;'; + put 'put ''Rj1GK01hdGguaW11bChtdCx1bil8MDt2YXIgUnI9KFYrKFQ9VCtNYXRoLmltdWwoUWUsX24pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bChRZSxHdCl8MCkrTWF0aC5pbXVsKCRlLF9uKXwwKSk8PDEzKXwwO1Y9KChGPUYrTWF0aC5pbXVsKCRlLEd0KXwwKSsoUz4+PjEzKXwwKSso''@;'; + put 'put ''UnI+Pj4yNil8MCxSciY9NjcxMDg4NjMsVD1NYXRoLmltdWwoZG4seHIpLFM9KFM9TWF0aC5pbXVsKGRuLHF0KSkrTWF0aC5pbXVsKHluLHhyKXwwLEY9TWF0aC5pbXVsKHluLHF0KSxUPVQrTWF0aC5pbXVsKGp0LG5yKXwwLFM9KFM9UytNYXRoLmltdWwoanQsQW4pfDApK01hdGguaW11bChR''@;'; + put 'put ''dCxucil8MCxGPUYrTWF0aC5pbXVsKFF0LEFuKXwwLFQ9VCtNYXRoLmltdWwoR2UsV3QpfDAsUz0oUz1TK01hdGguaW11bChHZSxwbil8MCkrTWF0aC5pbXVsKFVlLFd0KXwwLEY9RitNYXRoLmltdWwoVWUscG4pfDAsVD1UK01hdGguaW11bChDdCxOdCl8MCxTPShTPVMrTWF0aC5pbXVsKEN0''@;'; + put 'put ''LHNuKXwwKStNYXRoLmltdWwoZnQsTnQpfDAsRj1GK01hdGguaW11bChmdCxzbil8MCxUPVQrTWF0aC5pbXVsKGV0LHduKXwwLFM9KFM9UytNYXRoLmltdWwoZXQsdG4pfDApK01hdGguaW11bChhdCx3bil8MCxGPUYrTWF0aC5pbXVsKGF0LHRuKXwwLFQ9VCtNYXRoLmltdWwob24sVHIpfDAs''@;'; + put 'put ''Uz0oUz1TK01hdGguaW11bChvbixCbil8MCkrTWF0aC5pbXVsKF90LFRyKXwwLEY9RitNYXRoLmltdWwoX3QsQm4pfDAsVD1UK01hdGguaW11bChBdCxtbil8MCxTPShTPVMrTWF0aC5pbXVsKEF0LHVuKXwwKStNYXRoLmltdWwoaHQsbW4pfDAsRj1GK01hdGguaW11bChodCx1bil8MDt2YXIg''@;'; + put 'put ''bGk9KFYrKFQ9VCtNYXRoLmltdWwod3QsX24pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bCh3dCxHdCl8MCkrTWF0aC5pbXVsKG10LF9uKXwwKSk8PDEzKXwwO1Y9KChGPUYrTWF0aC5pbXVsKG10LEd0KXwwKSsoUz4+PjEzKXwwKSsobGk+Pj4yNil8MCxsaSY9NjcxMDg4NjMsVD1N''@;'; + put 'put ''YXRoLmltdWwoZG4sbnIpLFM9KFM9TWF0aC5pbXVsKGRuLEFuKSkrTWF0aC5pbXVsKHluLG5yKXwwLEY9TWF0aC5pbXVsKHluLEFuKSxUPVQrTWF0aC5pbXVsKGp0LFd0KXwwLFM9KFM9UytNYXRoLmltdWwoanQscG4pfDApK01hdGguaW11bChRdCxXdCl8MCxGPUYrTWF0aC5pbXVsKFF0LHBu''@;'; + put 'put ''KXwwLFQ9VCtNYXRoLmltdWwoR2UsTnQpfDAsUz0oUz1TK01hdGguaW11bChHZSxzbil8MCkrTWF0aC5pbXVsKFVlLE50KXwwLEY9RitNYXRoLmltdWwoVWUsc24pfDAsVD1UK01hdGguaW11bChDdCx3bil8MCxTPShTPVMrTWF0aC5pbXVsKEN0LHRuKXwwKStNYXRoLmltdWwoZnQsd24pfDAs''@;'; + put 'put ''Rj1GK01hdGguaW11bChmdCx0bil8MCxUPVQrTWF0aC5pbXVsKGV0LFRyKXwwLFM9KFM9UytNYXRoLmltdWwoZXQsQm4pfDApK01hdGguaW11bChhdCxUcil8MCxGPUYrTWF0aC5pbXVsKGF0LEJuKXwwLFQ9VCtNYXRoLmltdWwob24sbW4pfDAsUz0oUz1TK01hdGguaW11bChvbix1bil8MCkr''@;'; + put 'put ''TWF0aC5pbXVsKF90LG1uKXwwLEY9RitNYXRoLmltdWwoX3QsdW4pfDA7dmFyIE1pPShWKyhUPVQrTWF0aC5pbXVsKEF0LF9uKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoQXQsR3QpfDApK01hdGguaW11bChodCxfbil8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bChodCxH''@;'; + put 'put ''dCl8MCkrKFM+Pj4xMyl8MCkrKE1pPj4+MjYpfDAsTWkmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGRuLFd0KSxTPShTPU1hdGguaW11bChkbixwbikpK01hdGguaW11bCh5bixXdCl8MCxGPU1hdGguaW11bCh5bixwbiksVD1UK01hdGguaW11bChqdCxOdCl8MCxTPShTPVMrTWF0aC5pbXVsKGp0''@;'; + put 'put ''LHNuKXwwKStNYXRoLmltdWwoUXQsTnQpfDAsRj1GK01hdGguaW11bChRdCxzbil8MCxUPVQrTWF0aC5pbXVsKEdlLHduKXwwLFM9KFM9UytNYXRoLmltdWwoR2UsdG4pfDApK01hdGguaW11bChVZSx3bil8MCxGPUYrTWF0aC5pbXVsKFVlLHRuKXwwLFQ9VCtNYXRoLmltdWwoQ3QsVHIpfDAs''@;'; + put 'put ''Uz0oUz1TK01hdGguaW11bChDdCxCbil8MCkrTWF0aC5pbXVsKGZ0LFRyKXwwLEY9RitNYXRoLmltdWwoZnQsQm4pfDAsVD1UK01hdGguaW11bChldCxtbil8MCxTPShTPVMrTWF0aC5pbXVsKGV0LHVuKXwwKStNYXRoLmltdWwoYXQsbW4pfDAsRj1GK01hdGguaW11bChhdCx1bil8MDt2YXIg''@;'; + put 'put ''bzA9KFYrKFQ9VCtNYXRoLmltdWwob24sX24pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bChvbixHdCl8MCkrTWF0aC5pbXVsKF90LF9uKXwwKSk8PDEzKXwwO1Y9KChGPUYrTWF0aC5pbXVsKF90LEd0KXwwKSsoUz4+PjEzKXwwKSsobzA+Pj4yNil8MCxvMCY9NjcxMDg4NjMsVD1N''@;'; + put 'put ''YXRoLmltdWwoZG4sTnQpLFM9KFM9TWF0aC5pbXVsKGRuLHNuKSkrTWF0aC5pbXVsKHluLE50KXwwLEY9TWF0aC5pbXVsKHluLHNuKSxUPVQrTWF0aC5pbXVsKGp0LHduKXwwLFM9KFM9UytNYXRoLmltdWwoanQsdG4pfDApK01hdGguaW11bChRdCx3bil8MCxGPUYrTWF0aC5pbXVsKFF0LHRu''@;'; + put 'put ''KXwwLFQ9VCtNYXRoLmltdWwoR2UsVHIpfDAsUz0oUz1TK01hdGguaW11bChHZSxCbil8MCkrTWF0aC5pbXVsKFVlLFRyKXwwLEY9RitNYXRoLmltdWwoVWUsQm4pfDAsVD1UK01hdGguaW11bChDdCxtbil8MCxTPShTPVMrTWF0aC5pbXVsKEN0LHVuKXwwKStNYXRoLmltdWwoZnQsbW4pfDAs''@;'; + put 'put ''Rj1GK01hdGguaW11bChmdCx1bil8MDt2YXIgbjA9KFYrKFQ9VCtNYXRoLmltdWwoZXQsX24pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bChldCxHdCl8MCkrTWF0aC5pbXVsKGF0LF9uKXwwKSk8PDEzKXwwO1Y9KChGPUYrTWF0aC5pbXVsKGF0LEd0KXwwKSsoUz4+PjEzKXwwKSso''@;'; + put 'put ''bjA+Pj4yNil8MCxuMCY9NjcxMDg4NjMsVD1NYXRoLmltdWwoZG4sd24pLFM9KFM9TWF0aC5pbXVsKGRuLHRuKSkrTWF0aC5pbXVsKHluLHduKXwwLEY9TWF0aC5pbXVsKHluLHRuKSxUPVQrTWF0aC5pbXVsKGp0LFRyKXwwLFM9KFM9UytNYXRoLmltdWwoanQsQm4pfDApK01hdGguaW11bChR''@;'; + put 'put ''dCxUcil8MCxGPUYrTWF0aC5pbXVsKFF0LEJuKXwwLFQ9VCtNYXRoLmltdWwoR2UsbW4pfDAsUz0oUz1TK01hdGguaW11bChHZSx1bil8MCkrTWF0aC5pbXVsKFVlLG1uKXwwLEY9RitNYXRoLmltdWwoVWUsdW4pfDA7dmFyIGQwPShWKyhUPVQrTWF0aC5pbXVsKEN0LF9uKXwwKXwwKSsoKDgx''@;'; + put 'put ''OTEmKFM9KFM9UytNYXRoLmltdWwoQ3QsR3QpfDApK01hdGguaW11bChmdCxfbil8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bChmdCxHdCl8MCkrKFM+Pj4xMyl8MCkrKGQwPj4+MjYpfDAsZDAmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGRuLFRyKSxTPShTPU1hdGguaW11bChkbixCbikp''@;'; + put 'put ''K01hdGguaW11bCh5bixUcil8MCxGPU1hdGguaW11bCh5bixCbiksVD1UK01hdGguaW11bChqdCxtbil8MCxTPShTPVMrTWF0aC5pbXVsKGp0LHVuKXwwKStNYXRoLmltdWwoUXQsbW4pfDAsRj1GK01hdGguaW11bChRdCx1bil8MDt2YXIgbTA9KFYrKFQ9VCtNYXRoLmltdWwoR2UsX24pfDAp''@;'; + put 'put ''fDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bChHZSxHdCl8MCkrTWF0aC5pbXVsKFVlLF9uKXwwKSk8PDEzKXwwO1Y9KChGPUYrTWF0aC5pbXVsKFVlLEd0KXwwKSsoUz4+PjEzKXwwKSsobTA+Pj4yNil8MCxtMCY9NjcxMDg4NjMsVD1NYXRoLmltdWwoZG4sbW4pLFM9KFM9TWF0aC5pbXVs''@;'; + put 'put ''KGRuLHVuKSkrTWF0aC5pbXVsKHluLG1uKXwwLEY9TWF0aC5pbXVsKHluLHVuKTt2YXIgRzA9KFYrKFQ9VCtNYXRoLmltdWwoanQsX24pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bChqdCxHdCl8MCkrTWF0aC5pbXVsKFF0LF9uKXwwKSk8PDEzKXwwO1Y9KChGPUYrTWF0aC5pbXVs''@;'; + put 'put ''KFF0LEd0KXwwKSsoUz4+PjEzKXwwKSsoRzA+Pj4yNil8MCxHMCY9NjcxMDg4NjM7dmFyIERpPShWKyhUPU1hdGguaW11bChkbixfbikpfDApKygoODE5MSYoUz0oUz1NYXRoLmltdWwoZG4sR3QpKStNYXRoLmltdWwoeW4sX24pfDApKTw8MTMpfDA7cmV0dXJuIFY9KChGPU1hdGguaW11bCh5''@;'; + put 'put ''bixHdCkpKyhTPj4+MTMpfDApKyhEaT4+PjI2KXwwLERpJj02NzEwODg2MyxQWzBdPWtuLFBbMV09Vm4sUFsyXT1lbixQWzNdPUluLFBbNF09Sm4sUFs1XT1vcixQWzZdPWdyLFBbN109S3IsUFs4XT1WcixQWzldPWlpLFBbMTBdPVJyLFBbMTFdPWxpLFBbMTJdPU1pLFBbMTNdPW8wLFBbMTRd''@;'; + put 'put ''PW4wLFBbMTVdPWQwLFBbMTZdPW0wLFBbMTddPUcwLFBbMThdPURpLDAhPT1WJiYoUFsxOV09VixuZS5sZW5ndGgrKyksbmV9O2Z1bmN0aW9uIG9lKGhlLE8seil7cmV0dXJuKG5ldyBjZSkubXVscChoZSxPLHopfWZ1bmN0aW9uIGNlKGhlLE8pe3RoaXMueD1oZSx0aGlzLnk9T31NYXRoLmlt''@;'; + put 'put ''dWx8fChKPXEpLFUucHJvdG90eXBlLm11bFRvPWZ1bmN0aW9uKE8seil7dmFyIG5lLHRlPXRoaXMubGVuZ3RoK08ubGVuZ3RoO3JldHVybiBuZT0xMD09PXRoaXMubGVuZ3RoJiYxMD09PU8ubGVuZ3RoP0oodGhpcyxPLHopOnRlPDYzP3EodGhpcyxPLHopOnRlPDEwMjQ/ZnVuY3Rpb24gc2Uo''@;'; + put 'put ''aGUsTyx6KXt6Lm5lZ2F0aXZlPU8ubmVnYXRpdmVeaGUubmVnYXRpdmUsei5sZW5ndGg9aGUubGVuZ3RoK08ubGVuZ3RoO2Zvcih2YXIgbmU9MCx0ZT0wLHg9MDt4PHoubGVuZ3RoLTE7eCsrKXt2YXIgUD10ZTt0ZT0wO2Zvcih2YXIgVj02NzEwODg2MyZuZSxUPU1hdGgubWluKHgsTy5sZW5n''@;'; + put 'put ''dGgtMSksUz1NYXRoLm1heCgwLHgtaGUubGVuZ3RoKzEpO1M8PVQ7UysrKXt2YXIgRGU9KDB8aGUud29yZHNbeC1TXSkqKDB8Ty53b3Jkc1tTXSksUGU9NjcxMDg4NjMmRGU7Vj02NzEwODg2MyYoUGU9UGUrVnwwKSx0ZSs9KFA9KFA9UCsoRGUvNjcxMDg4NjR8MCl8MCkrKFBlPj4+MjYpfDAp''@;'; + put 'put ''Pj4+MjYsUCY9NjcxMDg4NjN9ei53b3Jkc1t4XT1WLG5lPVAsUD10ZX1yZXR1cm4gMCE9PW5lP3oud29yZHNbeF09bmU6ei5sZW5ndGgtLSx6LnN0cmlwKCl9KHRoaXMsTyx6KTpvZSh0aGlzLE8seiksbmV9LGNlLnByb3RvdHlwZS5tYWtlUkJUPWZ1bmN0aW9uKE8pe2Zvcih2YXIgej1uZXcg''@;'; + put 'put ''QXJyYXkoTyksbmU9VS5wcm90b3R5cGUuX2NvdW50Qml0cyhPKS0xLHRlPTA7dGU8Tzt0ZSsrKXpbdGVdPXRoaXMucmV2QmluKHRlLG5lLE8pO3JldHVybiB6fSxjZS5wcm90b3R5cGUucmV2QmluPWZ1bmN0aW9uKE8seixuZSl7aWYoMD09PU98fE89PT1uZS0xKXJldHVybiBPO2Zvcih2YXIg''@;'; + put 'put ''dGU9MCx4PTA7eDx6O3grKyl0ZXw9KDEmTyk8PHoteC0xLE8+Pj0xO3JldHVybiB0ZX0sY2UucHJvdG90eXBlLnBlcm11dGU9ZnVuY3Rpb24oTyx6LG5lLHRlLHgsUCl7Zm9yKHZhciBWPTA7VjxQO1YrKyl0ZVtWXT16W09bVl1dLHhbVl09bmVbT1tWXV19LGNlLnByb3RvdHlwZS50cmFuc2Zv''@;'; + put 'put ''cm09ZnVuY3Rpb24oTyx6LG5lLHRlLHgsUCl7dGhpcy5wZXJtdXRlKFAsTyx6LG5lLHRlLHgpO2Zvcih2YXIgVj0xO1Y8eDtWPDw9MSlmb3IodmFyIFQ9Vjw8MSxTPU1hdGguY29zKDIqTWF0aC5QSS9UKSxGPU1hdGguc2luKDIqTWF0aC5QSS9UKSx5ZT0wO3llPHg7eWUrPVQpZm9yKHZhciBD''@;'; + put 'put ''ZT1TLERlPUYsUGU9MDtQZTxWO1BlKyspe3ZhciBRZT1uZVt5ZStQZV0sJGU9dGVbeWUrUGVdLGd0PW5lW3llK1BlK1ZdLHd0PXRlW3llK1BlK1ZdLG10PUNlKmd0LURlKnd0O3d0PUNlKnd0K0RlKmd0LG5lW3llK1BlXT1RZSsoZ3Q9bXQpLHRlW3llK1BlXT0kZSt3dCxuZVt5ZStQZStWXT1R''@;'; + put 'put ''ZS1ndCx0ZVt5ZStQZStWXT0kZS13dCxQZSE9PVQmJihtdD1TKkNlLUYqRGUsRGU9UypEZStGKkNlLENlPW10KX19LGNlLnByb3RvdHlwZS5ndWVzc0xlbjEzYj1mdW5jdGlvbihPLHope3ZhciBuZT0xfE1hdGgubWF4KHosTyksdGU9MSZuZSx4PTA7Zm9yKG5lPW5lLzJ8MDtuZTtuZT4+Pj0x''@;'; + put 'put ''KXgrKztyZXR1cm4gMTw8eCsxK3RlfSxjZS5wcm90b3R5cGUuY29uanVnYXRlPWZ1bmN0aW9uKE8seixuZSl7aWYoIShuZTw9MSkpZm9yKHZhciB0ZT0wO3RlPG5lLzI7dGUrKyl7dmFyIHg9T1t0ZV07T1t0ZV09T1tuZS10ZS0xXSxPW25lLXRlLTFdPXgseD16W3RlXSx6W3RlXT0teltuZS10''@;'; + put 'put ''ZS0xXSx6W25lLXRlLTFdPS14fX0sY2UucHJvdG90eXBlLm5vcm1hbGl6ZTEzYj1mdW5jdGlvbihPLHope2Zvcih2YXIgbmU9MCx0ZT0wO3RlPHovMjt0ZSsrKXt2YXIgeD04MTkyKk1hdGgucm91bmQoT1syKnRlKzFdL3opK01hdGgucm91bmQoT1syKnRlXS96KStuZTtPW3RlXT02NzEwODg2''@;'; + put 'put ''MyZ4LG5lPXg8NjcxMDg4NjQ/MDp4LzY3MTA4ODY0fDB9cmV0dXJuIE99LGNlLnByb3RvdHlwZS5jb252ZXJ0MTNiPWZ1bmN0aW9uKE8seixuZSx0ZSl7Zm9yKHZhciB4PTAsUD0wO1A8ejtQKyspbmVbMipQXT04MTkxJih4Kz0wfE9bUF0pLG5lWzIqUCsxXT04MTkxJih4Pj4+PTEzKSx4Pj4+''@;'; + put 'put ''PTEzO2ZvcihQPTIqejtQPHRlOysrUCluZVtQXT0wO0UoMD09PXgpLEUoMD09KC04MTkyJngpKX0sY2UucHJvdG90eXBlLnN0dWI9ZnVuY3Rpb24oTyl7Zm9yKHZhciB6PW5ldyBBcnJheShPKSxuZT0wO25lPE87bmUrKyl6W25lXT0wO3JldHVybiB6fSxjZS5wcm90b3R5cGUubXVscD1mdW5j''@;'; + put 'put ''dGlvbihPLHosbmUpe3ZhciB0ZT0yKnRoaXMuZ3Vlc3NMZW4xM2IoTy5sZW5ndGgsei5sZW5ndGgpLHg9dGhpcy5tYWtlUkJUKHRlKSxQPXRoaXMuc3R1Yih0ZSksVj1uZXcgQXJyYXkodGUpLFQ9bmV3IEFycmF5KHRlKSxTPW5ldyBBcnJheSh0ZSksRj1uZXcgQXJyYXkodGUpLHllPW5ldyBB''@;'; + put 'put ''cnJheSh0ZSksQ2U9bmV3IEFycmF5KHRlKSxEZT1uZS53b3JkcztEZS5sZW5ndGg9dGUsdGhpcy5jb252ZXJ0MTNiKE8ud29yZHMsTy5sZW5ndGgsVix0ZSksdGhpcy5jb252ZXJ0MTNiKHoud29yZHMsei5sZW5ndGgsRix0ZSksdGhpcy50cmFuc2Zvcm0oVixQLFQsUyx0ZSx4KSx0aGlzLnRy''@;'; + put 'put ''YW5zZm9ybShGLFAseWUsQ2UsdGUseCk7Zm9yKHZhciBQZT0wO1BlPHRlO1BlKyspe3ZhciBRZT1UW1BlXSp5ZVtQZV0tU1tQZV0qQ2VbUGVdO1NbUGVdPVRbUGVdKkNlW1BlXStTW1BlXSp5ZVtQZV0sVFtQZV09UWV9cmV0dXJuIHRoaXMuY29uanVnYXRlKFQsUyx0ZSksdGhpcy50cmFuc2Zv''@;'; + put 'put ''cm0oVCxTLERlLFAsdGUseCksdGhpcy5jb25qdWdhdGUoRGUsUCx0ZSksdGhpcy5ub3JtYWxpemUxM2IoRGUsdGUpLG5lLm5lZ2F0aXZlPU8ubmVnYXRpdmVeei5uZWdhdGl2ZSxuZS5sZW5ndGg9Ty5sZW5ndGgrei5sZW5ndGgsbmUuc3RyaXAoKX0sVS5wcm90b3R5cGUubXVsPWZ1bmN0aW9u''@;'; + put 'put ''KE8pe3ZhciB6PW5ldyBVKG51bGwpO3JldHVybiB6LndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCtPLmxlbmd0aCksdGhpcy5tdWxUbyhPLHopfSxVLnByb3RvdHlwZS5tdWxmPWZ1bmN0aW9uKE8pe3ZhciB6PW5ldyBVKG51bGwpO3JldHVybiB6LndvcmRzPW5ldyBBcnJheSh0aGlzLmxl''@;'; + put 'put ''bmd0aCtPLmxlbmd0aCksb2UodGhpcyxPLHopfSxVLnByb3RvdHlwZS5pbXVsPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmNsb25lKCkubXVsVG8oTyx0aGlzKX0sVS5wcm90b3R5cGUuaW11bG49ZnVuY3Rpb24oTyl7RSgibnVtYmVyIj09dHlwZW9mIE8pLEUoTzw2NzEwODg2NCk7Zm9yKHZh''@;'; + put 'put ''ciB6PTAsbmU9MDtuZTx0aGlzLmxlbmd0aDtuZSsrKXt2YXIgdGU9KDB8dGhpcy53b3Jkc1tuZV0pKk8seD0oNjcxMDg4NjMmdGUpKyg2NzEwODg2MyZ6KTt6Pj49MjYseis9dGUvNjcxMDg4NjR8MCx6Kz14Pj4+MjYsdGhpcy53b3Jkc1tuZV09NjcxMDg4NjMmeH1yZXR1cm4gMCE9PXomJih0''@;'; + put 'put ''aGlzLndvcmRzW25lXT16LHRoaXMubGVuZ3RoKyspLHRoaXN9LFUucHJvdG90eXBlLm11bG49ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pbXVsbihPKX0sVS5wcm90b3R5cGUuc3FyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXVsKHRoaXMpfSxVLnByb3RvdHlwZS5pc3FyPWZ1''@;'; + put 'put ''bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW11bCh0aGlzLmNsb25lKCkpfSxVLnByb3RvdHlwZS5wb3c9ZnVuY3Rpb24oTyl7dmFyIHo9ZnVuY3Rpb24gZWUoaGUpe2Zvcih2YXIgTz1uZXcgQXJyYXkoaGUuYml0TGVuZ3RoKCkpLHo9MDt6PE8ubGVuZ3RoO3orKyl7dmFyIHRlPXolMjY7T1t6XT0o''@;'; + put 'put ''aGUud29yZHNbei8yNnwwXSYxPDx0ZSk+Pj50ZX1yZXR1cm4gT30oTyk7aWYoMD09PXoubGVuZ3RoKXJldHVybiBuZXcgVSgxKTtmb3IodmFyIG5lPXRoaXMsdGU9MDt0ZTx6Lmxlbmd0aCYmMD09PXpbdGVdO3RlKyssbmU9bmUuc3FyKCkpO2lmKCsrdGU8ei5sZW5ndGgpZm9yKHZhciB4PW5l''@;'; + put 'put ''LnNxcigpO3RlPHoubGVuZ3RoO3RlKysseD14LnNxcigpKTAhPT16W3RlXSYmKG5lPW5lLm11bCh4KSk7cmV0dXJuIG5lfSxVLnByb3RvdHlwZS5pdXNobG49ZnVuY3Rpb24oTyl7RSgibnVtYmVyIj09dHlwZW9mIE8mJk8+PTApO3ZhciB4LHo9TyUyNixuZT0oTy16KS8yNix0ZT02NzEwODg2''@;'; + put 'put ''Mz4+PjI2LXo8PDI2LXo7aWYoMCE9PXope3ZhciBQPTA7Zm9yKHg9MDt4PHRoaXMubGVuZ3RoO3grKyl7dmFyIFY9dGhpcy53b3Jkc1t4XSZ0ZTt0aGlzLndvcmRzW3hdPSgwfHRoaXMud29yZHNbeF0pLVY8PHp8UCxQPVY+Pj4yNi16fVAmJih0aGlzLndvcmRzW3hdPVAsdGhpcy5sZW5ndGgr''@;'; + put 'put ''Kyl9aWYoMCE9PW5lKXtmb3IoeD10aGlzLmxlbmd0aC0xO3g+PTA7eC0tKXRoaXMud29yZHNbeCtuZV09dGhpcy53b3Jkc1t4XTtmb3IoeD0wO3g8bmU7eCsrKXRoaXMud29yZHNbeF09MDt0aGlzLmxlbmd0aCs9bmV9cmV0dXJuIHRoaXMuc3RyaXAoKX0sVS5wcm90b3R5cGUuaXNobG49ZnVu''@;'; + put 'put ''Y3Rpb24oTyl7cmV0dXJuIEUoMD09PXRoaXMubmVnYXRpdmUpLHRoaXMuaXVzaGxuKE8pfSxVLnByb3RvdHlwZS5pdXNocm49ZnVuY3Rpb24oTyx6LG5lKXt2YXIgdGU7RSgibnVtYmVyIj09dHlwZW9mIE8mJk8+PTApLHRlPXo/KHoteiUyNikvMjY6MDt2YXIgeD1PJTI2LFA9TWF0aC5taW4o''@;'; + put 'put ''KE8teCkvMjYsdGhpcy5sZW5ndGgpLFY9NjcxMDg4NjNeNjcxMDg4NjM+Pj54PDx4LFQ9bmU7aWYodGUtPVAsdGU9TWF0aC5tYXgoMCx0ZSksVCl7Zm9yKHZhciBTPTA7UzxQO1MrKylULndvcmRzW1NdPXRoaXMud29yZHNbU107VC5sZW5ndGg9UH1pZigwIT09UClpZih0aGlzLmxlbmd0aD5Q''@;'; + put 'put ''KWZvcih0aGlzLmxlbmd0aC09UCxTPTA7Uzx0aGlzLmxlbmd0aDtTKyspdGhpcy53b3Jkc1tTXT10aGlzLndvcmRzW1MrUF07ZWxzZSB0aGlzLndvcmRzWzBdPTAsdGhpcy5sZW5ndGg9MTt2YXIgRj0wO2ZvcihTPXRoaXMubGVuZ3RoLTE7Uz49MCYmKDAhPT1GfHxTPj10ZSk7Uy0tKXt2YXIg''@;'; + put 'put ''eWU9MHx0aGlzLndvcmRzW1NdO3RoaXMud29yZHNbU109Rjw8MjYteHx5ZT4+PngsRj15ZSZWfXJldHVybiBUJiYwIT09RiYmKFQud29yZHNbVC5sZW5ndGgrK109RiksMD09PXRoaXMubGVuZ3RoJiYodGhpcy53b3Jkc1swXT0wLHRoaXMubGVuZ3RoPTEpLHRoaXMuc3RyaXAoKX0sVS5wcm90''@;'; + put 'put ''b3R5cGUuaXNocm49ZnVuY3Rpb24oTyx6LG5lKXtyZXR1cm4gRSgwPT09dGhpcy5uZWdhdGl2ZSksdGhpcy5pdXNocm4oTyx6LG5lKX0sVS5wcm90b3R5cGUuc2hsbj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlzaGxuKE8pfSxVLnByb3RvdHlwZS51c2hsbj1mdW5jdGlvbihP''@;'; + put 'put ''KXtyZXR1cm4gdGhpcy5jbG9uZSgpLml1c2hsbihPKX0sVS5wcm90b3R5cGUuc2hybj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlzaHJuKE8pfSxVLnByb3RvdHlwZS51c2hybj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5jbG9uZSgpLml1c2hybihPKX0sVS5wcm90b3R5cGUu''@;'; + put 'put ''dGVzdG49ZnVuY3Rpb24oTyl7RSgibnVtYmVyIj09dHlwZW9mIE8mJk8+PTApO3ZhciB6PU8lMjYsbmU9KE8teikvMjY7cmV0dXJuISh0aGlzLmxlbmd0aDw9bmV8fCEodGhpcy53b3Jkc1tuZV0mMTw8eikpfSxVLnByb3RvdHlwZS5pbWFza249ZnVuY3Rpb24oTyl7RSgibnVtYmVyIj09dHlw''@;'; + put 'put ''ZW9mIE8mJk8+PTApO3ZhciB6PU8lMjYsbmU9KE8teikvMjY7cmV0dXJuIEUoMD09PXRoaXMubmVnYXRpdmUsImltYXNrbiB3b3JrcyBvbmx5IHdpdGggcG9zaXRpdmUgbnVtYmVycyIpLHRoaXMubGVuZ3RoPD1uZT90aGlzOigwIT09eiYmbmUrKyx0aGlzLmxlbmd0aD1NYXRoLm1pbihuZSx0''@;'; + put 'put ''aGlzLmxlbmd0aCksMCE9PXomJih0aGlzLndvcmRzW3RoaXMubGVuZ3RoLTFdJj02NzEwODg2M142NzEwODg2Mz4+Pno8PHopLHRoaXMuc3RyaXAoKSl9LFUucHJvdG90eXBlLm1hc2tuPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmNsb25lKCkuaW1hc2tuKE8pfSxVLnByb3RvdHlwZS5pYWRk''@;'; + put 'put ''bj1mdW5jdGlvbihPKXtyZXR1cm4gRSgibnVtYmVyIj09dHlwZW9mIE8pLEUoTzw2NzEwODg2NCksTzwwP3RoaXMuaXN1Ym4oLU8pOjAhPT10aGlzLm5lZ2F0aXZlPzE9PT10aGlzLmxlbmd0aCYmKDB8dGhpcy53b3Jkc1swXSk8Tz8odGhpcy53b3Jkc1swXT1PLSgwfHRoaXMud29yZHNbMF0p''@;'; + put 'put ''LHRoaXMubmVnYXRpdmU9MCx0aGlzKToodGhpcy5uZWdhdGl2ZT0wLHRoaXMuaXN1Ym4oTyksdGhpcy5uZWdhdGl2ZT0xLHRoaXMpOnRoaXMuX2lhZGRuKE8pfSxVLnByb3RvdHlwZS5faWFkZG49ZnVuY3Rpb24oTyl7dGhpcy53b3Jkc1swXSs9Tztmb3IodmFyIHo9MDt6PHRoaXMubGVuZ3Ro''@;'; + put 'put ''JiZ0aGlzLndvcmRzW3pdPj02NzEwODg2NDt6KyspdGhpcy53b3Jkc1t6XS09NjcxMDg4NjQsej09PXRoaXMubGVuZ3RoLTE/dGhpcy53b3Jkc1t6KzFdPTE6dGhpcy53b3Jkc1t6KzFdKys7cmV0dXJuIHRoaXMubGVuZ3RoPU1hdGgubWF4KHRoaXMubGVuZ3RoLHorMSksdGhpc30sVS5wcm90''@;'; + put 'put ''b3R5cGUuaXN1Ym49ZnVuY3Rpb24oTyl7aWYoRSgibnVtYmVyIj09dHlwZW9mIE8pLEUoTzw2NzEwODg2NCksTzwwKXJldHVybiB0aGlzLmlhZGRuKC1PKTtpZigwIT09dGhpcy5uZWdhdGl2ZSlyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLHRoaXMuaWFkZG4oTyksdGhpcy5uZWdhdGl2ZT0xLHRo''@;'; + put 'put ''aXM7aWYodGhpcy53b3Jkc1swXS09TywxPT09dGhpcy5sZW5ndGgmJnRoaXMud29yZHNbMF08MCl0aGlzLndvcmRzWzBdPS10aGlzLndvcmRzWzBdLHRoaXMubmVnYXRpdmU9MTtlbHNlIGZvcih2YXIgej0wO3o8dGhpcy5sZW5ndGgmJnRoaXMud29yZHNbel08MDt6KyspdGhpcy53b3Jkc1t6''@;'; + put 'put ''XSs9NjcxMDg4NjQsdGhpcy53b3Jkc1t6KzFdLT0xO3JldHVybiB0aGlzLnN0cmlwKCl9LFUucHJvdG90eXBlLmFkZG49ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pYWRkbihPKX0sVS5wcm90b3R5cGUuc3Vibj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlzdWJu''@;'; + put 'put ''KE8pfSxVLnByb3RvdHlwZS5pYWJzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlzfSxVLnByb3RvdHlwZS5hYnM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlhYnMoKX0sVS5wcm90b3R5cGUuX2lzaGxuc3VibXVsPWZ1bmN0aW9uKE8seixuZSl7dmFyIHg7''@;'; + put 'put ''dGhpcy5fZXhwYW5kKE8ubGVuZ3RoK25lKTt2YXIgUCxWPTA7Zm9yKHg9MDt4PE8ubGVuZ3RoO3grKyl7UD0oMHx0aGlzLndvcmRzW3grbmVdKStWO3ZhciBUPSgwfE8ud29yZHNbeF0pKno7Vj0oKFAtPTY3MTA4ODYzJlQpPj4yNiktKFQvNjcxMDg4NjR8MCksdGhpcy53b3Jkc1t4K25lXT02''@;'; + put 'put ''NzEwODg2MyZQfWZvcig7eDx0aGlzLmxlbmd0aC1uZTt4KyspVj0oUD0oMHx0aGlzLndvcmRzW3grbmVdKStWKT4+MjYsdGhpcy53b3Jkc1t4K25lXT02NzEwODg2MyZQO2lmKDA9PT1WKXJldHVybiB0aGlzLnN0cmlwKCk7Zm9yKEUoLTE9PT1WKSxWPTAseD0wO3g8dGhpcy5sZW5ndGg7eCsr''@;'; + put 'put ''KVY9KFA9LSgwfHRoaXMud29yZHNbeF0pK1YpPj4yNix0aGlzLndvcmRzW3hdPTY3MTA4ODYzJlA7cmV0dXJuIHRoaXMubmVnYXRpdmU9MSx0aGlzLnN0cmlwKCl9LFUucHJvdG90eXBlLl93b3JkRGl2PWZ1bmN0aW9uKE8seil7dmFyIG5lLHRlPXRoaXMuY2xvbmUoKSx4PU8sUD0wfHgud29y''@;'; + put 'put ''ZHNbeC5sZW5ndGgtMV07MCE9KG5lPTI2LXRoaXMuX2NvdW50Qml0cyhQKSkmJih4PXgudXNobG4obmUpLHRlLml1c2hsbihuZSksUD0wfHgud29yZHNbeC5sZW5ndGgtMV0pO3ZhciBTLFQ9dGUubGVuZ3RoLXgubGVuZ3RoO2lmKCJtb2QiIT09eil7KFM9bmV3IFUobnVsbCkpLmxlbmd0aD1U''@;'; + put 'put ''KzEsUy53b3Jkcz1uZXcgQXJyYXkoUy5sZW5ndGgpO2Zvcih2YXIgRj0wO0Y8Uy5sZW5ndGg7RisrKVMud29yZHNbRl09MH12YXIgeWU9dGUuY2xvbmUoKS5faXNobG5zdWJtdWwoeCwxLFQpOzA9PT15ZS5uZWdhdGl2ZSYmKHRlPXllLFMmJihTLndvcmRzW1RdPTEpKTtmb3IodmFyIENlPVQt''@;'; + put 'put ''MTtDZT49MDtDZS0tKXt2YXIgRGU9NjcxMDg4NjQqKDB8dGUud29yZHNbeC5sZW5ndGgrQ2VdKSsoMHx0ZS53b3Jkc1t4Lmxlbmd0aCtDZS0xXSk7Zm9yKERlPU1hdGgubWluKERlL1B8MCw2NzEwODg2MyksdGUuX2lzaGxuc3VibXVsKHgsRGUsQ2UpOzAhPT10ZS5uZWdhdGl2ZTspRGUtLSx0''@;'; + put 'put ''ZS5uZWdhdGl2ZT0wLHRlLl9pc2hsbnN1Ym11bCh4LDEsQ2UpLHRlLmlzWmVybygpfHwodGUubmVnYXRpdmVePTEpO1MmJihTLndvcmRzW0NlXT1EZSl9cmV0dXJuIFMmJlMuc3RyaXAoKSx0ZS5zdHJpcCgpLCJkaXYiIT09eiYmMCE9PW5lJiZ0ZS5pdXNocm4obmUpLHtkaXY6U3x8bnVsbCxt''@;'; + put 'put ''b2Q6dGV9fSxVLnByb3RvdHlwZS5kaXZtb2Q9ZnVuY3Rpb24oTyx6LG5lKXtyZXR1cm4gRSghTy5pc1plcm8oKSksdGhpcy5pc1plcm8oKT97ZGl2Om5ldyBVKDApLG1vZDpuZXcgVSgwKX06MCE9PXRoaXMubmVnYXRpdmUmJjA9PT1PLm5lZ2F0aXZlPyhQPXRoaXMubmVnKCkuZGl2bW9kKE8s''@;'; + put 'put ''eiksIm1vZCIhPT16JiYodGU9UC5kaXYubmVnKCkpLCJkaXYiIT09eiYmKHg9UC5tb2QubmVnKCksbmUmJjAhPT14Lm5lZ2F0aXZlJiZ4LmlhZGQoTykpLHtkaXY6dGUsbW9kOnh9KTowPT09dGhpcy5uZWdhdGl2ZSYmMCE9PU8ubmVnYXRpdmU/KFA9dGhpcy5kaXZtb2QoTy5uZWcoKSx6KSwi''@;'; + put 'put ''bW9kIiE9PXomJih0ZT1QLmRpdi5uZWcoKSkse2Rpdjp0ZSxtb2Q6UC5tb2R9KTowIT0odGhpcy5uZWdhdGl2ZSZPLm5lZ2F0aXZlKT8oUD10aGlzLm5lZygpLmRpdm1vZChPLm5lZygpLHopLCJkaXYiIT09eiYmKHg9UC5tb2QubmVnKCksbmUmJjAhPT14Lm5lZ2F0aXZlJiZ4LmlzdWIoTykp''@;'; + put 'put ''LHtkaXY6UC5kaXYsbW9kOnh9KTpPLmxlbmd0aD50aGlzLmxlbmd0aHx8dGhpcy5jbXAoTyk8MD97ZGl2Om5ldyBVKDApLG1vZDp0aGlzfToxPT09Ty5sZW5ndGg/ImRpdiI9PT16P3tkaXY6dGhpcy5kaXZuKE8ud29yZHNbMF0pLG1vZDpudWxsfToibW9kIj09PXo/e2RpdjpudWxsLG1vZDpu''@;'; + put 'put ''ZXcgVSh0aGlzLm1vZG4oTy53b3Jkc1swXSkpfTp7ZGl2OnRoaXMuZGl2bihPLndvcmRzWzBdKSxtb2Q6bmV3IFUodGhpcy5tb2RuKE8ud29yZHNbMF0pKX06dGhpcy5fd29yZERpdihPLHopO3ZhciB0ZSx4LFB9LFUucHJvdG90eXBlLmRpdj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5kaXZt''@;'; + put 'put ''b2QoTywiZGl2IiwhMSkuZGl2fSxVLnByb3RvdHlwZS5tb2Q9ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuZGl2bW9kKE8sIm1vZCIsITEpLm1vZH0sVS5wcm90b3R5cGUudW1vZD1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5kaXZtb2QoTywibW9kIiwhMCkubW9kfSxVLnByb3RvdHlwZS5kaXZS''@;'; + put 'put ''b3VuZD1mdW5jdGlvbihPKXt2YXIgej10aGlzLmRpdm1vZChPKTtpZih6Lm1vZC5pc1plcm8oKSlyZXR1cm4gei5kaXY7dmFyIG5lPTAhPT16LmRpdi5uZWdhdGl2ZT96Lm1vZC5pc3ViKE8pOnoubW9kLHRlPU8udXNocm4oMSkseD1PLmFuZGxuKDEpLFA9bmUuY21wKHRlKTtyZXR1cm4gUDww''@;'; + put 'put ''fHwxPT09eCYmMD09PVA/ei5kaXY6MCE9PXouZGl2Lm5lZ2F0aXZlP3ouZGl2LmlzdWJuKDEpOnouZGl2LmlhZGRuKDEpfSxVLnByb3RvdHlwZS5tb2RuPWZ1bmN0aW9uKE8pe0UoTzw9NjcxMDg4NjMpO2Zvcih2YXIgej0oMTw8MjYpJU8sbmU9MCx0ZT10aGlzLmxlbmd0aC0xO3RlPj0wO3Rl''@;'; + put 'put ''LS0pbmU9KHoqbmUrKDB8dGhpcy53b3Jkc1t0ZV0pKSVPO3JldHVybiBuZX0sVS5wcm90b3R5cGUuaWRpdm49ZnVuY3Rpb24oTyl7RShPPD02NzEwODg2Myk7Zm9yKHZhciB6PTAsbmU9dGhpcy5sZW5ndGgtMTtuZT49MDtuZS0tKXt2YXIgdGU9KDB8dGhpcy53b3Jkc1tuZV0pKzY3MTA4ODY0''@;'; + put 'put ''Kno7dGhpcy53b3Jkc1tuZV09dGUvT3wwLHo9dGUlT31yZXR1cm4gdGhpcy5zdHJpcCgpfSxVLnByb3RvdHlwZS5kaXZuPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmNsb25lKCkuaWRpdm4oTyl9LFUucHJvdG90eXBlLmVnY2Q9ZnVuY3Rpb24oTyl7RSgwPT09Ty5uZWdhdGl2ZSksRSghTy5p''@;'; + put 'put ''c1plcm8oKSk7dmFyIHo9dGhpcyxuZT1PLmNsb25lKCk7ej0wIT09ei5uZWdhdGl2ZT96LnVtb2QoTyk6ei5jbG9uZSgpO2Zvcih2YXIgdGU9bmV3IFUoMSkseD1uZXcgVSgwKSxQPW5ldyBVKDApLFY9bmV3IFUoMSksVD0wO3ouaXNFdmVuKCkmJm5lLmlzRXZlbigpOyl6Lml1c2hybigxKSxu''@;'; + put 'put ''ZS5pdXNocm4oMSksKytUO2Zvcih2YXIgUz1uZS5jbG9uZSgpLEY9ei5jbG9uZSgpOyF6LmlzWmVybygpOyl7Zm9yKHZhciB5ZT0wLENlPTE7MD09KHoud29yZHNbMF0mQ2UpJiZ5ZTwyNjsrK3llLENlPDw9MSk7aWYoeWU+MClmb3Ioei5pdXNocm4oeWUpO3llLS0gPjA7KSh0ZS5pc09kZCgp''@;'; + put 'put ''fHx4LmlzT2RkKCkpJiYodGUuaWFkZChTKSx4LmlzdWIoRikpLHRlLml1c2hybigxKSx4Lml1c2hybigxKTtmb3IodmFyIERlPTAsUGU9MTswPT0obmUud29yZHNbMF0mUGUpJiZEZTwyNjsrK0RlLFBlPDw9MSk7aWYoRGU+MClmb3IobmUuaXVzaHJuKERlKTtEZS0tID4wOykoUC5pc09kZCgp''@;'; + put 'put ''fHxWLmlzT2RkKCkpJiYoUC5pYWRkKFMpLFYuaXN1YihGKSksUC5pdXNocm4oMSksVi5pdXNocm4oMSk7ei5jbXAobmUpPj0wPyh6LmlzdWIobmUpLHRlLmlzdWIoUCkseC5pc3ViKFYpKToobmUuaXN1Yih6KSxQLmlzdWIodGUpLFYuaXN1Yih4KSl9cmV0dXJue2E6UCxiOlYsZ2NkOm5lLml1''@;'; + put 'put ''c2hsbihUKX19LFUucHJvdG90eXBlLl9pbnZtcD1mdW5jdGlvbihPKXtFKDA9PT1PLm5lZ2F0aXZlKSxFKCFPLmlzWmVybygpKTt2YXIgeWUsej10aGlzLG5lPU8uY2xvbmUoKTt6PTAhPT16Lm5lZ2F0aXZlP3oudW1vZChPKTp6LmNsb25lKCk7Zm9yKHZhciB0ZT1uZXcgVSgxKSx4PW5ldyBV''@;'; + put 'put ''KDApLFA9bmUuY2xvbmUoKTt6LmNtcG4oMSk+MCYmbmUuY21wbigxKT4wOyl7Zm9yKHZhciBWPTAsVD0xOzA9PSh6LndvcmRzWzBdJlQpJiZWPDI2OysrVixUPDw9MSk7aWYoVj4wKWZvcih6Lml1c2hybihWKTtWLS0gPjA7KXRlLmlzT2RkKCkmJnRlLmlhZGQoUCksdGUuaXVzaHJuKDEpO2Zv''@;'; + put 'put ''cih2YXIgUz0wLEY9MTswPT0obmUud29yZHNbMF0mRikmJlM8MjY7KytTLEY8PD0xKTtpZihTPjApZm9yKG5lLml1c2hybihTKTtTLS0gPjA7KXguaXNPZGQoKSYmeC5pYWRkKFApLHguaXVzaHJuKDEpO3ouY21wKG5lKT49MD8oei5pc3ViKG5lKSx0ZS5pc3ViKHgpKToobmUuaXN1Yih6KSx4''@;'; + put 'put ''LmlzdWIodGUpKX1yZXR1cm4oeWU9MD09PXouY21wbigxKT90ZTp4KS5jbXBuKDApPDAmJnllLmlhZGQoTykseWV9LFUucHJvdG90eXBlLmdjZD1mdW5jdGlvbihPKXtpZih0aGlzLmlzWmVybygpKXJldHVybiBPLmFicygpO2lmKE8uaXNaZXJvKCkpcmV0dXJuIHRoaXMuYWJzKCk7dmFyIHo9''@;'; + put 'put ''dGhpcy5jbG9uZSgpLG5lPU8uY2xvbmUoKTt6Lm5lZ2F0aXZlPTAsbmUubmVnYXRpdmU9MDtmb3IodmFyIHRlPTA7ei5pc0V2ZW4oKSYmbmUuaXNFdmVuKCk7dGUrKyl6Lml1c2hybigxKSxuZS5pdXNocm4oMSk7Zm9yKDs7KXtmb3IoO3ouaXNFdmVuKCk7KXouaXVzaHJuKDEpO2Zvcig7bmUu''@;'; + put 'put ''aXNFdmVuKCk7KW5lLml1c2hybigxKTt2YXIgeD16LmNtcChuZSk7aWYoeDwwKXt2YXIgUD16O3o9bmUsbmU9UH1lbHNlIGlmKDA9PT14fHwwPT09bmUuY21wbigxKSlicmVhazt6LmlzdWIobmUpfXJldHVybiBuZS5pdXNobG4odGUpfSxVLnByb3RvdHlwZS5pbnZtPWZ1bmN0aW9uKE8pe3Jl''@;'; + put 'put ''dHVybiB0aGlzLmVnY2QoTykuYS51bW9kKE8pfSxVLnByb3RvdHlwZS5pc0V2ZW49ZnVuY3Rpb24oKXtyZXR1cm4gMD09KDEmdGhpcy53b3Jkc1swXSl9LFUucHJvdG90eXBlLmlzT2RkPWZ1bmN0aW9uKCl7cmV0dXJuIDE9PSgxJnRoaXMud29yZHNbMF0pfSxVLnByb3RvdHlwZS5hbmRsbj1m''@;'; + put 'put ''dW5jdGlvbihPKXtyZXR1cm4gdGhpcy53b3Jkc1swXSZPfSxVLnByb3RvdHlwZS5iaW5jbj1mdW5jdGlvbihPKXtFKCJudW1iZXIiPT10eXBlb2YgTyk7dmFyIHo9TyUyNixuZT0oTy16KS8yNix0ZT0xPDx6O2lmKHRoaXMubGVuZ3RoPD1uZSlyZXR1cm4gdGhpcy5fZXhwYW5kKG5lKzEpLHRo''@;'; + put 'put ''aXMud29yZHNbbmVdfD10ZSx0aGlzO2Zvcih2YXIgeD10ZSxQPW5lOzAhPT14JiZQPHRoaXMubGVuZ3RoO1ArKyl7dmFyIFY9MHx0aGlzLndvcmRzW1BdO3g9KFYrPXgpPj4+MjYsdGhpcy53b3Jkc1tQXT1WJj02NzEwODg2M31yZXR1cm4gMCE9PXgmJih0aGlzLndvcmRzW1BdPXgsdGhpcy5s''@;'; + put 'put ''ZW5ndGgrKyksdGhpc30sVS5wcm90b3R5cGUuaXNaZXJvPWZ1bmN0aW9uKCl7cmV0dXJuIDE9PT10aGlzLmxlbmd0aCYmMD09PXRoaXMud29yZHNbMF19LFUucHJvdG90eXBlLmNtcG49ZnVuY3Rpb24oTyl7dmFyIG5lLHo9TzwwO2lmKDAhPT10aGlzLm5lZ2F0aXZlJiYheilyZXR1cm4tMTtp''@;'; + put 'put ''ZigwPT09dGhpcy5uZWdhdGl2ZSYmeilyZXR1cm4gMTtpZih0aGlzLnN0cmlwKCksdGhpcy5sZW5ndGg+MSluZT0xO2Vsc2V7eiYmKE89LU8pLEUoTzw9NjcxMDg4NjMsIk51bWJlciBpcyB0b28gYmlnIik7dmFyIHRlPTB8dGhpcy53b3Jkc1swXTtuZT10ZT09PU8/MDp0ZTxPPy0xOjF9cmV0''@;'; + put 'put ''dXJuIDAhPT10aGlzLm5lZ2F0aXZlPzB8LW5lOm5lfSxVLnByb3RvdHlwZS5jbXA9ZnVuY3Rpb24oTyl7aWYoMCE9PXRoaXMubmVnYXRpdmUmJjA9PT1PLm5lZ2F0aXZlKXJldHVybi0xO2lmKDA9PT10aGlzLm5lZ2F0aXZlJiYwIT09Ty5uZWdhdGl2ZSlyZXR1cm4gMTt2YXIgej10aGlzLnVj''@;'; + put 'put ''bXAoTyk7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlPzB8LXo6en0sVS5wcm90b3R5cGUudWNtcD1mdW5jdGlvbihPKXtpZih0aGlzLmxlbmd0aD5PLmxlbmd0aClyZXR1cm4gMTtpZih0aGlzLmxlbmd0aDxPLmxlbmd0aClyZXR1cm4tMTtmb3IodmFyIHo9MCxuZT10aGlzLmxlbmd0aC0xO25l''@;'; + put 'put ''Pj0wO25lLS0pe3ZhciB0ZT0wfHRoaXMud29yZHNbbmVdLHg9MHxPLndvcmRzW25lXTtpZih0ZSE9PXgpe3RlPHg/ej0tMTp0ZT54JiYoej0xKTticmVha319cmV0dXJuIHp9LFUucHJvdG90eXBlLmd0bj1mdW5jdGlvbihPKXtyZXR1cm4gMT09PXRoaXMuY21wbihPKX0sVS5wcm90b3R5cGUu''@;'; + put 'put ''Z3Q9ZnVuY3Rpb24oTyl7cmV0dXJuIDE9PT10aGlzLmNtcChPKX0sVS5wcm90b3R5cGUuZ3Rlbj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5jbXBuKE8pPj0wfSxVLnByb3RvdHlwZS5ndGU9ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuY21wKE8pPj0wfSxVLnByb3RvdHlwZS5sdG49ZnVuY3Rp''@;'; + put 'put ''b24oTyl7cmV0dXJuLTE9PT10aGlzLmNtcG4oTyl9LFUucHJvdG90eXBlLmx0PWZ1bmN0aW9uKE8pe3JldHVybi0xPT09dGhpcy5jbXAoTyl9LFUucHJvdG90eXBlLmx0ZW49ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuY21wbihPKTw9MH0sVS5wcm90b3R5cGUubHRlPWZ1bmN0aW9uKE8pe3Jl''@;'; + put 'put ''dHVybiB0aGlzLmNtcChPKTw9MH0sVS5wcm90b3R5cGUuZXFuPWZ1bmN0aW9uKE8pe3JldHVybiAwPT09dGhpcy5jbXBuKE8pfSxVLnByb3RvdHlwZS5lcT1mdW5jdGlvbihPKXtyZXR1cm4gMD09PXRoaXMuY21wKE8pfSxVLnJlZD1mdW5jdGlvbihPKXtyZXR1cm4gbmV3IFRlKE8pfSxVLnBy''@;'; + put 'put ''b3RvdHlwZS50b1JlZD1mdW5jdGlvbihPKXtyZXR1cm4gRSghdGhpcy5yZWQsIkFscmVhZHkgYSBudW1iZXIgaW4gcmVkdWN0aW9uIGNvbnRleHQiKSxFKDA9PT10aGlzLm5lZ2F0aXZlLCJyZWQgd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlcyIpLE8uY29udmVydFRvKHRoaXMpLl9mb3JjZVJl''@;'; + put 'put ''ZChPKX0sVS5wcm90b3R5cGUuZnJvbVJlZD1mdW5jdGlvbigpe3JldHVybiBFKHRoaXMucmVkLCJmcm9tUmVkIHdvcmtzIG9ubHkgd2l0aCBudW1iZXJzIGluIHJlZHVjdGlvbiBjb250ZXh0IiksdGhpcy5yZWQuY29udmVydEZyb20odGhpcyl9LFUucHJvdG90eXBlLl9mb3JjZVJlZD1mdW5j''@;'; + put 'put ''dGlvbihPKXtyZXR1cm4gdGhpcy5yZWQ9Tyx0aGlzfSxVLnByb3RvdHlwZS5mb3JjZVJlZD1mdW5jdGlvbihPKXtyZXR1cm4gRSghdGhpcy5yZWQsIkFscmVhZHkgYSBudW1iZXIgaW4gcmVkdWN0aW9uIGNvbnRleHQiKSx0aGlzLl9mb3JjZVJlZChPKX0sVS5wcm90b3R5cGUucmVkQWRkPWZ1''@;'; + put 'put ''bmN0aW9uKE8pe3JldHVybiBFKHRoaXMucmVkLCJyZWRBZGQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuYWRkKHRoaXMsTyl9LFUucHJvdG90eXBlLnJlZElBZGQ9ZnVuY3Rpb24oTyl7cmV0dXJuIEUodGhpcy5yZWQsInJlZElBZGQgd29ya3Mgb25seSB3aXRoIHJl''@;'; + put 'put ''ZCBudW1iZXJzIiksdGhpcy5yZWQuaWFkZCh0aGlzLE8pfSxVLnByb3RvdHlwZS5yZWRTdWI9ZnVuY3Rpb24oTyl7cmV0dXJuIEUodGhpcy5yZWQsInJlZFN1YiB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5zdWIodGhpcyxPKX0sVS5wcm90b3R5cGUucmVkSVN1Yj1m''@;'; + put 'put ''dW5jdGlvbihPKXtyZXR1cm4gRSh0aGlzLnJlZCwicmVkSVN1YiB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5pc3ViKHRoaXMsTyl9LFUucHJvdG90eXBlLnJlZFNobD1mdW5jdGlvbihPKXtyZXR1cm4gRSh0aGlzLnJlZCwicmVkU2hsIHdvcmtzIG9ubHkgd2l0aCBy''@;'; + put 'put ''ZWQgbnVtYmVycyIpLHRoaXMucmVkLnNobCh0aGlzLE8pfSxVLnByb3RvdHlwZS5yZWRNdWw9ZnVuY3Rpb24oTyl7cmV0dXJuIEUodGhpcy5yZWQsInJlZE11bCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5Mih0aGlzLE8pLHRoaXMucmVkLm11bCh0aGlz''@;'; + put 'put ''LE8pfSxVLnByb3RvdHlwZS5yZWRJTXVsPWZ1bmN0aW9uKE8pe3JldHVybiBFKHRoaXMucmVkLCJyZWRNdWwgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTIodGhpcyxPKSx0aGlzLnJlZC5pbXVsKHRoaXMsTyl9LFUucHJvdG90eXBlLnJlZFNxcj1mdW5j''@;'; + put 'put ''dGlvbigpe3JldHVybiBFKHRoaXMucmVkLCJyZWRTcXIgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQuc3FyKHRoaXMpfSxVLnByb3RvdHlwZS5yZWRJU3FyPWZ1bmN0aW9uKCl7cmV0dXJuIEUodGhpcy5yZWQsInJlZElTcXIg''@;'; + put 'put ''d29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQuaXNxcih0aGlzKX0sVS5wcm90b3R5cGUucmVkU3FydD1mdW5jdGlvbigpe3JldHVybiBFKHRoaXMucmVkLCJyZWRTcXJ0IHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRo''@;'; + put 'put ''aXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLnNxcnQodGhpcyl9LFUucHJvdG90eXBlLnJlZEludm09ZnVuY3Rpb24oKXtyZXR1cm4gRSh0aGlzLnJlZCwicmVkSW52bSB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5p''@;'; + put 'put ''bnZtKHRoaXMpfSxVLnByb3RvdHlwZS5yZWROZWc9ZnVuY3Rpb24oKXtyZXR1cm4gRSh0aGlzLnJlZCwicmVkTmVnIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLm5lZyh0aGlzKX0sVS5wcm90b3R5cGUucmVkUG93PWZ1bmN0''@;'; + put 'put ''aW9uKE8pe3JldHVybiBFKHRoaXMucmVkJiYhTy5yZWQsInJlZFBvdyhub3JtYWxOdW0pIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQucG93KHRoaXMsTyl9O3ZhciBkZT17azI1NjpudWxsLHAyMjQ6bnVsbCxwMTkyOm51bGwscDI1NTE5Om51bGx9O2Z1bmN0aW9uIHZlKGhl''@;'; + put 'put ''LE8pe3RoaXMubmFtZT1oZSx0aGlzLnA9bmV3IFUoTywxNiksdGhpcy5uPXRoaXMucC5iaXRMZW5ndGgoKSx0aGlzLms9bmV3IFUoMSkuaXVzaGxuKHRoaXMubikuaXN1Yih0aGlzLnApLHRoaXMudG1wPXRoaXMuX3RtcCgpfWZ1bmN0aW9uIEFlKCl7dmUuY2FsbCh0aGlzLCJrMjU2IiwiZmZm''@;'; + put 'put ''ZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUgZmZmZmZjMmYiKX1mdW5jdGlvbiBrZSgpe3ZlLmNhbGwodGhpcywicDIyNCIsImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIDAwMDAwMDAwIDAwMDAwMDAwIDAwMDAw''@;'; + put 'put ''MDAxIil9ZnVuY3Rpb24gU2UoKXt2ZS5jYWxsKHRoaXMsInAxOTIiLCJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZSBmZmZmZmZmZiBmZmZmZmZmZiIpfWZ1bmN0aW9uIEllKCl7dmUuY2FsbCh0aGlzLCIyNTUxOSIsIjdmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZm''@;'; + put 'put ''ZiBmZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZWQiKX1mdW5jdGlvbiBUZShoZSl7aWYoInN0cmluZyI9PXR5cGVvZiBoZSl7dmFyIE89VS5fcHJpbWUoaGUpO3RoaXMubT1PLnAsdGhpcy5wcmltZT1PfWVsc2UgRShoZS5ndG4oMSksIm1vZHVsdXMgbXVzdCBiZSBncmVhdGVyIHRo''@;'; + put 'put ''YW4gMSIpLHRoaXMubT1oZSx0aGlzLnByaW1lPW51bGx9ZnVuY3Rpb24gRWUoaGUpe1RlLmNhbGwodGhpcyxoZSksdGhpcy5zaGlmdD10aGlzLm0uYml0TGVuZ3RoKCksdGhpcy5zaGlmdCUyNiE9MCYmKHRoaXMuc2hpZnQrPTI2LXRoaXMuc2hpZnQlMjYpLHRoaXMucj1uZXcgVSgxKS5pdXNo''@;'; + put 'put ''bG4odGhpcy5zaGlmdCksdGhpcy5yMj10aGlzLmltb2QodGhpcy5yLnNxcigpKSx0aGlzLnJpbnY9dGhpcy5yLl9pbnZtcCh0aGlzLm0pLHRoaXMubWludj10aGlzLnJpbnYubXVsKHRoaXMucikuaXN1Ym4oMSkuZGl2KHRoaXMubSksdGhpcy5taW52PXRoaXMubWludi51bW9kKHRoaXMuciks''@;'; + put 'put ''dGhpcy5taW52PXRoaXMuci5zdWIodGhpcy5taW52KX12ZS5wcm90b3R5cGUuX3RtcD1mdW5jdGlvbigpe3ZhciBPPW5ldyBVKG51bGwpO3JldHVybiBPLndvcmRzPW5ldyBBcnJheShNYXRoLmNlaWwodGhpcy5uLzEzKSksT30sdmUucHJvdG90eXBlLmlyZWR1Y2U9ZnVuY3Rpb24oTyl7dmFy''@;'; + put 'put ''IG5lLHo9Tztkb3t0aGlzLnNwbGl0KHosdGhpcy50bXApLG5lPSh6PSh6PXRoaXMuaW11bEsoeikpLmlhZGQodGhpcy50bXApKS5iaXRMZW5ndGgoKX13aGlsZShuZT50aGlzLm4pO3ZhciB0ZT1uZTx0aGlzLm4/LTE6ei51Y21wKHRoaXMucCk7cmV0dXJuIDA9PT10ZT8oei53b3Jkc1swXT0w''@;'; + put 'put ''LHoubGVuZ3RoPTEpOnRlPjA/ei5pc3ViKHRoaXMucCk6dm9pZCAwIT09ei5zdHJpcD96LnN0cmlwKCk6ei5fc3RyaXAoKSx6fSx2ZS5wcm90b3R5cGUuc3BsaXQ9ZnVuY3Rpb24oTyx6KXtPLml1c2hybih0aGlzLm4sMCx6KX0sdmUucHJvdG90eXBlLmltdWxLPWZ1bmN0aW9uKE8pe3JldHVy''@;'; + put 'put ''biBPLmltdWwodGhpcy5rKX0sTWUoQWUsdmUpLEFlLnByb3RvdHlwZS5zcGxpdD1mdW5jdGlvbihPLHope2Zvcih2YXIgdGU9TWF0aC5taW4oTy5sZW5ndGgsOSkseD0wO3g8dGU7eCsrKXoud29yZHNbeF09Ty53b3Jkc1t4XTtpZih6Lmxlbmd0aD10ZSxPLmxlbmd0aDw9OSlyZXR1cm4gTy53''@;'; + put 'put ''b3Jkc1swXT0wLHZvaWQoTy5sZW5ndGg9MSk7dmFyIFA9Ty53b3Jkc1s5XTtmb3Ioei53b3Jkc1t6Lmxlbmd0aCsrXT00MTk0MzAzJlAseD0xMDt4PE8ubGVuZ3RoO3grKyl7dmFyIFY9MHxPLndvcmRzW3hdO08ud29yZHNbeC0xMF09KDQxOTQzMDMmVik8PDR8UD4+PjIyLFA9Vn1PLndvcmRz''@;'; + put 'put ''W3gtMTBdPVA+Pj49MjIsTy5sZW5ndGgtPTA9PT1QJiZPLmxlbmd0aD4xMD8xMDo5fSxBZS5wcm90b3R5cGUuaW11bEs9ZnVuY3Rpb24oTyl7Ty53b3Jkc1tPLmxlbmd0aF09MCxPLndvcmRzW08ubGVuZ3RoKzFdPTAsTy5sZW5ndGgrPTI7Zm9yKHZhciB6PTAsbmU9MDtuZTxPLmxlbmd0aDtu''@;'; + put 'put ''ZSsrKXt2YXIgdGU9MHxPLndvcmRzW25lXTtPLndvcmRzW25lXT02NzEwODg2MyYoeis9OTc3KnRlKSx6PTY0KnRlKyh6LzY3MTA4ODY0fDApfXJldHVybiAwPT09Ty53b3Jkc1tPLmxlbmd0aC0xXSYmKE8ubGVuZ3RoLS0sMD09PU8ud29yZHNbTy5sZW5ndGgtMV0mJk8ubGVuZ3RoLS0pLE99''@;'; + put 'put ''LE1lKGtlLHZlKSxNZShTZSx2ZSksTWUoSWUsdmUpLEllLnByb3RvdHlwZS5pbXVsSz1mdW5jdGlvbihPKXtmb3IodmFyIHo9MCxuZT0wO25lPE8ubGVuZ3RoO25lKyspe3ZhciB0ZT0xOSooMHxPLndvcmRzW25lXSkreix4PTY3MTA4ODYzJnRlO3RlPj4+PTI2LE8ud29yZHNbbmVdPXgsej10''@;'; + put 'put ''ZX1yZXR1cm4gMCE9PXomJihPLndvcmRzW08ubGVuZ3RoKytdPXopLE99LFUuX3ByaW1lPWZ1bmN0aW9uKE8pe2lmKGRlW09dKXJldHVybiBkZVtPXTt2YXIgejtpZigiazI1NiI9PT1PKXo9bmV3IEFlO2Vsc2UgaWYoInAyMjQiPT09Tyl6PW5ldyBrZTtlbHNlIGlmKCJwMTkyIj09PU8pej1u''@;'; + put 'put ''ZXcgU2U7ZWxzZXtpZigicDI1NTE5IiE9PU8pdGhyb3cgbmV3IEVycm9yKCJVbmtub3duIHByaW1lICIrTyk7ej1uZXcgSWV9cmV0dXJuIGRlW09dPXosen0sVGUucHJvdG90eXBlLl92ZXJpZnkxPWZ1bmN0aW9uKE8pe0UoMD09PU8ubmVnYXRpdmUsInJlZCB3b3JrcyBvbmx5IHdpdGggcG9z''@;'; + put 'put ''aXRpdmVzIiksRShPLnJlZCwicmVkIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpfSxUZS5wcm90b3R5cGUuX3ZlcmlmeTI9ZnVuY3Rpb24oTyx6KXtFKDA9PShPLm5lZ2F0aXZlfHoubmVnYXRpdmUpLCJyZWQgd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlcyIpLEUoTy5yZWQmJk8ucmVk''@;'; + put 'put ''PT09ei5yZWQsInJlZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKX0sVGUucHJvdG90eXBlLmltb2Q9ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMucHJpbWU/dGhpcy5wcmltZS5pcmVkdWNlKE8pLl9mb3JjZVJlZCh0aGlzKTpPLnVtb2QodGhpcy5tKS5fZm9yY2VSZWQodGhpcyl9LFRl''@;'; + put 'put ''LnByb3RvdHlwZS5uZWc9ZnVuY3Rpb24oTyl7cmV0dXJuIE8uaXNaZXJvKCk/Ty5jbG9uZSgpOnRoaXMubS5zdWIoTykuX2ZvcmNlUmVkKHRoaXMpfSxUZS5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKE8seil7dGhpcy5fdmVyaWZ5MihPLHopO3ZhciBuZT1PLmFkZCh6KTtyZXR1cm4gbmUuY21w''@;'; + put 'put ''KHRoaXMubSk+PTAmJm5lLmlzdWIodGhpcy5tKSxuZS5fZm9yY2VSZWQodGhpcyl9LFRlLnByb3RvdHlwZS5pYWRkPWZ1bmN0aW9uKE8seil7dGhpcy5fdmVyaWZ5MihPLHopO3ZhciBuZT1PLmlhZGQoeik7cmV0dXJuIG5lLmNtcCh0aGlzLm0pPj0wJiZuZS5pc3ViKHRoaXMubSksbmV9LFRl''@;'; + put 'put ''LnByb3RvdHlwZS5zdWI9ZnVuY3Rpb24oTyx6KXt0aGlzLl92ZXJpZnkyKE8seik7dmFyIG5lPU8uc3ViKHopO3JldHVybiBuZS5jbXBuKDApPDAmJm5lLmlhZGQodGhpcy5tKSxuZS5fZm9yY2VSZWQodGhpcyl9LFRlLnByb3RvdHlwZS5pc3ViPWZ1bmN0aW9uKE8seil7dGhpcy5fdmVyaWZ5''@;'; + put 'put ''MihPLHopO3ZhciBuZT1PLmlzdWIoeik7cmV0dXJuIG5lLmNtcG4oMCk8MCYmbmUuaWFkZCh0aGlzLm0pLG5lfSxUZS5wcm90b3R5cGUuc2hsPWZ1bmN0aW9uKE8seil7cmV0dXJuIHRoaXMuX3ZlcmlmeTEoTyksdGhpcy5pbW9kKE8udXNobG4oeikpfSxUZS5wcm90b3R5cGUuaW11bD1mdW5j''@;'; + put 'put ''dGlvbihPLHope3JldHVybiB0aGlzLl92ZXJpZnkyKE8seiksdGhpcy5pbW9kKE8uaW11bCh6KSl9LFRlLnByb3RvdHlwZS5tdWw9ZnVuY3Rpb24oTyx6KXtyZXR1cm4gdGhpcy5fdmVyaWZ5MihPLHopLHRoaXMuaW1vZChPLm11bCh6KSl9LFRlLnByb3RvdHlwZS5pc3FyPWZ1bmN0aW9uKE8p''@;'; + put 'put ''e3JldHVybiB0aGlzLmltdWwoTyxPLmNsb25lKCkpfSxUZS5wcm90b3R5cGUuc3FyPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLm11bChPLE8pfSxUZS5wcm90b3R5cGUuc3FydD1mdW5jdGlvbihPKXtpZihPLmlzWmVybygpKXJldHVybiBPLmNsb25lKCk7dmFyIHo9dGhpcy5tLmFuZGxuKDMp''@;'; + put 'put ''O2lmKEUoeiUyPT0xKSwzPT09eil7dmFyIG5lPXRoaXMubS5hZGQobmV3IFUoMSkpLml1c2hybigyKTtyZXR1cm4gdGhpcy5wb3coTyxuZSl9Zm9yKHZhciB0ZT10aGlzLm0uc3VibigxKSx4PTA7IXRlLmlzWmVybygpJiYwPT09dGUuYW5kbG4oMSk7KXgrKyx0ZS5pdXNocm4oMSk7RSghdGUu''@;'; + put 'put ''aXNaZXJvKCkpO3ZhciBQPW5ldyBVKDEpLnRvUmVkKHRoaXMpLFY9UC5yZWROZWcoKSxUPXRoaXMubS5zdWJuKDEpLml1c2hybigxKSxTPXRoaXMubS5iaXRMZW5ndGgoKTtmb3IoUz1uZXcgVSgyKlMqUykudG9SZWQodGhpcyk7MCE9PXRoaXMucG93KFMsVCkuY21wKFYpOylTLnJlZElBZGQo''@;'; + put 'put ''Vik7Zm9yKHZhciBGPXRoaXMucG93KFMsdGUpLHllPXRoaXMucG93KE8sdGUuYWRkbigxKS5pdXNocm4oMSkpLENlPXRoaXMucG93KE8sdGUpLERlPXg7MCE9PUNlLmNtcChQKTspe2Zvcih2YXIgUGU9Q2UsUWU9MDswIT09UGUuY21wKFApO1FlKyspUGU9UGUucmVkU3FyKCk7RShRZTxEZSk7''@;'; + put 'put ''dmFyICRlPXRoaXMucG93KEYsbmV3IFUoMSkuaXVzaGxuKERlLVFlLTEpKTt5ZT15ZS5yZWRNdWwoJGUpLEY9JGUucmVkU3FyKCksQ2U9Q2UucmVkTXVsKEYpLERlPVFlfXJldHVybiB5ZX0sVGUucHJvdG90eXBlLmludm09ZnVuY3Rpb24oTyl7dmFyIHo9Ty5faW52bXAodGhpcy5tKTtyZXR1''@;'; + put 'put ''cm4gMCE9PXoubmVnYXRpdmU/KHoubmVnYXRpdmU9MCx0aGlzLmltb2QoeikucmVkTmVnKCkpOnRoaXMuaW1vZCh6KX0sVGUucHJvdG90eXBlLnBvdz1mdW5jdGlvbihPLHope2lmKHouaXNaZXJvKCkpcmV0dXJuIG5ldyBVKDEpLnRvUmVkKHRoaXMpO2lmKDA9PT16LmNtcG4oMSkpcmV0dXJu''@;'; + put 'put ''IE8uY2xvbmUoKTt2YXIgdGU9bmV3IEFycmF5KDE2KTt0ZVswXT1uZXcgVSgxKS50b1JlZCh0aGlzKSx0ZVsxXT1PO2Zvcih2YXIgeD0yO3g8dGUubGVuZ3RoO3grKyl0ZVt4XT10aGlzLm11bCh0ZVt4LTFdLE8pO3ZhciBQPXRlWzBdLFY9MCxUPTAsUz16LmJpdExlbmd0aCgpJTI2O2Zvcigw''@;'; + put 'put ''PT09UyYmKFM9MjYpLHg9ei5sZW5ndGgtMTt4Pj0wO3gtLSl7Zm9yKHZhciBGPXoud29yZHNbeF0seWU9Uy0xO3llPj0wO3llLS0pe3ZhciBDZT1GPj55ZSYxO1AhPT10ZVswXSYmKFA9dGhpcy5zcXIoUCkpLDAhPT1DZXx8MCE9PVY/KFY8PD0xLFZ8PUNlLCg0PT0rK1R8fDA9PT14JiYwPT09''@;'; + put 'put ''eWUpJiYoUD10aGlzLm11bChQLHRlW1ZdKSxUPTAsVj0wKSk6VD0wfVM9MjZ9cmV0dXJuIFB9LFRlLnByb3RvdHlwZS5jb252ZXJ0VG89ZnVuY3Rpb24oTyl7dmFyIHo9Ty51bW9kKHRoaXMubSk7cmV0dXJuIHo9PT1PP3ouY2xvbmUoKTp6fSxUZS5wcm90b3R5cGUuY29udmVydEZyb209ZnVu''@;'; + put 'put ''Y3Rpb24oTyl7dmFyIHo9Ty5jbG9uZSgpO3JldHVybiB6LnJlZD1udWxsLHp9LFUubW9udD1mdW5jdGlvbihPKXtyZXR1cm4gbmV3IEVlKE8pfSxNZShFZSxUZSksRWUucHJvdG90eXBlLmNvbnZlcnRUbz1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5pbW9kKE8udXNobG4odGhpcy5zaGlmdCkp''@;'; + put 'put ''fSxFZS5wcm90b3R5cGUuY29udmVydEZyb209ZnVuY3Rpb24oTyl7dmFyIHo9dGhpcy5pbW9kKE8ubXVsKHRoaXMucmludikpO3JldHVybiB6LnJlZD1udWxsLHp9LEVlLnByb3RvdHlwZS5pbXVsPWZ1bmN0aW9uKE8seil7aWYoTy5pc1plcm8oKXx8ei5pc1plcm8oKSlyZXR1cm4gTy53b3Jk''@;'; + put 'put ''c1swXT0wLE8ubGVuZ3RoPTEsTzt2YXIgbmU9Ty5pbXVsKHopLHRlPW5lLm1hc2tuKHRoaXMuc2hpZnQpLm11bCh0aGlzLm1pbnYpLmltYXNrbih0aGlzLnNoaWZ0KS5tdWwodGhpcy5tKSx4PW5lLmlzdWIodGUpLml1c2hybih0aGlzLnNoaWZ0KSxQPXg7cmV0dXJuIHguY21wKHRoaXMubSk+''@;'; + put 'put ''PTA/UD14LmlzdWIodGhpcy5tKTp4LmNtcG4oMCk8MCYmKFA9eC5pYWRkKHRoaXMubSkpLFAuX2ZvcmNlUmVkKHRoaXMpfSxFZS5wcm90b3R5cGUubXVsPWZ1bmN0aW9uKE8seil7aWYoTy5pc1plcm8oKXx8ei5pc1plcm8oKSlyZXR1cm4gbmV3IFUoMCkuX2ZvcmNlUmVkKHRoaXMpO3ZhciBu''@;'; + put 'put ''ZT1PLm11bCh6KSx0ZT1uZS5tYXNrbih0aGlzLnNoaWZ0KS5tdWwodGhpcy5taW52KS5pbWFza24odGhpcy5zaGlmdCkubXVsKHRoaXMubSkseD1uZS5pc3ViKHRlKS5pdXNocm4odGhpcy5zaGlmdCksUD14O3JldHVybiB4LmNtcCh0aGlzLm0pPj0wP1A9eC5pc3ViKHRoaXMubSk6eC5jbXBu''@;'; + put 'put ''KDApPDAmJihQPXguaWFkZCh0aGlzLm0pKSxQLl9mb3JjZVJlZCh0aGlzKX0sRWUucHJvdG90eXBlLmludm09ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuaW1vZChPLl9pbnZtcCh0aGlzLm0pLm11bCh0aGlzLnIyKSkuX2ZvcmNlUmVkKHRoaXMpfX0oWGU9TC5ubWQoWGUpLHRoaXMpfSw5Mjcz''@;'; + put 'put ''NTpmdW5jdGlvbihYZSl7WGUuZXhwb3J0cz1mdW5jdGlvbigpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBKZShmdCl7cmV0dXJuKEplPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKEh0KXtyZXR1cm4gdHlwZW9mIEh0''@;'; + put 'put ''fTpmdW5jdGlvbihIdCl7cmV0dXJuIEh0JiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZIdC5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmSHQhPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBIdH0pKGZ0KX1mdW5jdGlvbiBMKGZ0LEh0KXtyZXR1cm4oTD1PYmplY3Quc2V0UHJv''@;'; + put 'put ''dG90eXBlT2Z8fGZ1bmN0aW9uKFVlLHl0KXtyZXR1cm4gVWUuX19wcm90b19fPXl0LFVlfSkoZnQsSHQpfWZ1bmN0aW9uIG1lKCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBSZWZsZWN0fHwhUmVmbGVjdC5jb25zdHJ1Y3R8fFJlZmxlY3QuY29uc3RydWN0LnNoYW0pcmV0dXJuITE7aWYoImZ1''@;'; + put 'put ''bmN0aW9uIj09dHlwZW9mIFByb3h5KXJldHVybiEwO3RyeXtyZXR1cm4gQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10sZnVuY3Rpb24oKXt9KSksITB9Y2F0Y2goZnQpe3JldHVybiExfX1mdW5jdGlvbiBCKGZ0LEh0LEdlKXtyZXR1''@;'; + put 'put ''cm4oQj1tZSgpP1JlZmxlY3QuY29uc3RydWN0OmZ1bmN0aW9uKHl0LGp0LFF0KXt2YXIgZ249W251bGxdO2duLnB1c2guYXBwbHkoZ24sanQpO3ZhciB5bj1uZXcoRnVuY3Rpb24uYmluZC5hcHBseSh5dCxnbikpO3JldHVybiBRdCYmTCh5bixRdC5wcm90b3R5cGUpLHlufSkuYXBwbHkobnVs''@;'; + put 'put ''bCxhcmd1bWVudHMpfWZ1bmN0aW9uIEUoZnQpe3JldHVybiBmdW5jdGlvbiBNZShmdCl7aWYoQXJyYXkuaXNBcnJheShmdCkpcmV0dXJuIFooZnQpfShmdCl8fGZ1bmN0aW9uIFUoZnQpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZudWxsIT1mdFtTeW1ib2wuaXRlcmF0b3JdfHxu''@;'; + put 'put ''dWxsIT1mdFsiQEBpdGVyYXRvciJdKXJldHVybiBBcnJheS5mcm9tKGZ0KX0oZnQpfHxmdW5jdGlvbiBRKGZ0LEh0KXtpZihmdCl7aWYoInN0cmluZyI9PXR5cGVvZiBmdClyZXR1cm4gWihmdCxIdCk7dmFyIEdlPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChmdCkuc2xpY2UoOCwt''@;'; + put 'put ''MSk7aWYoIk9iamVjdCI9PT1HZSYmZnQuY29uc3RydWN0b3ImJihHZT1mdC5jb25zdHJ1Y3Rvci5uYW1lKSwiTWFwIj09PUdlfHwiU2V0Ij09PUdlKXJldHVybiBBcnJheS5mcm9tKGZ0KTtpZigiQXJndW1lbnRzIj09PUdlfHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0Fy''@;'; + put 'put ''cmF5JC8udGVzdChHZSkpcmV0dXJuIFooZnQsSHQpfX0oZnQpfHxmdW5jdGlvbiBpZSgpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBzcHJlYWQgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3Rz''@;'; + put 'put ''IG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfWZ1bmN0aW9uIFooZnQsSHQpeyhudWxsPT1IdHx8SHQ+ZnQubGVuZ3RoKSYmKEh0PWZ0Lmxlbmd0aCk7Zm9yKHZhciBHZT0wLFVlPW5ldyBBcnJheShIdCk7R2U8SHQ7R2UrKylVZVtHZV09ZnRbR2VdO3JldHVy''@;'; + put 'put ''biBVZX12YXIgYWU9T2JqZWN0Lmhhc093blByb3BlcnR5LFk9T2JqZWN0LnNldFByb3RvdHlwZU9mLFc9T2JqZWN0LmlzRnJvemVuLE49T2JqZWN0LmdldFByb3RvdHlwZU9mLGVlPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IscT1PYmplY3QuZnJlZXplLEo9T2JqZWN0LnNlYWws''@;'; + put 'put ''c2U9T2JqZWN0LmNyZWF0ZSxvZT0idW5kZWZpbmVkIiE9dHlwZW9mIFJlZmxlY3QmJlJlZmxlY3QsY2U9b2UuYXBwbHksZGU9b2UuY29uc3RydWN0O2NlfHwoY2U9ZnVuY3Rpb24oSHQsR2UsVWUpe3JldHVybiBIdC5hcHBseShHZSxVZSl9KSxxfHwocT1mdW5jdGlvbihIdCl7cmV0dXJuIEh0''@;'; + put 'put ''fSksSnx8KEo9ZnVuY3Rpb24oSHQpe3JldHVybiBIdH0pLGRlfHwoZGU9ZnVuY3Rpb24oSHQsR2Upe3JldHVybiBCKEh0LEUoR2UpKX0pO3ZhciB2ZT1uZShBcnJheS5wcm90b3R5cGUuZm9yRWFjaCksQWU9bmUoQXJyYXkucHJvdG90eXBlLnBvcCksa2U9bmUoQXJyYXkucHJvdG90eXBlLnB1''@;'; + put 'put ''c2gpLFNlPW5lKFN0cmluZy5wcm90b3R5cGUudG9Mb3dlckNhc2UpLEllPW5lKFN0cmluZy5wcm90b3R5cGUubWF0Y2gpLFRlPW5lKFN0cmluZy5wcm90b3R5cGUucmVwbGFjZSksRWU9bmUoU3RyaW5nLnByb3RvdHlwZS5pbmRleE9mKSxoZT1uZShTdHJpbmcucHJvdG90eXBlLnRyaW0pLE89''@;'; + put 'put ''bmUoUmVnRXhwLnByb3RvdHlwZS50ZXN0KSx6PWZ1bmN0aW9uIHRlKGZ0KXtyZXR1cm4gZnVuY3Rpb24oKXtmb3IodmFyIEh0PWFyZ3VtZW50cy5sZW5ndGgsR2U9bmV3IEFycmF5KEh0KSxVZT0wO1VlPEh0O1VlKyspR2VbVWVdPWFyZ3VtZW50c1tVZV07cmV0dXJuIGRlKGZ0LEdlKX19KFR5''@;'; + put 'put ''cGVFcnJvcik7ZnVuY3Rpb24gbmUoZnQpe3JldHVybiBmdW5jdGlvbihIdCl7Zm9yKHZhciBHZT1hcmd1bWVudHMubGVuZ3RoLFVlPW5ldyBBcnJheShHZT4xP0dlLTE6MCkseXQ9MTt5dDxHZTt5dCsrKVVlW3l0LTFdPWFyZ3VtZW50c1t5dF07cmV0dXJuIGNlKGZ0LEh0LFVlKX19ZnVuY3Rp''@;'; + put 'put ''b24geChmdCxIdCxHZSl7R2U9R2V8fFNlLFkmJlkoZnQsbnVsbCk7Zm9yKHZhciBVZT1IdC5sZW5ndGg7VWUtLTspe3ZhciB5dD1IdFtVZV07aWYoInN0cmluZyI9PXR5cGVvZiB5dCl7dmFyIGp0PUdlKHl0KTtqdCE9PXl0JiYoVyhIdCl8fChIdFtVZV09anQpLHl0PWp0KX1mdFt5dF09ITB9''@;'; + put 'put ''cmV0dXJuIGZ0fWZ1bmN0aW9uIFAoZnQpe3ZhciBHZSxIdD1zZShudWxsKTtmb3IoR2UgaW4gZnQpY2UoYWUsZnQsW0dlXSkmJihIdFtHZV09ZnRbR2VdKTtyZXR1cm4gSHR9ZnVuY3Rpb24gVihmdCxIdCl7Zm9yKDtudWxsIT09ZnQ7KXt2YXIgR2U9ZWUoZnQsSHQpO2lmKEdlKXtpZihHZS5n''@;'; + put 'put ''ZXQpcmV0dXJuIG5lKEdlLmdldCk7aWYoImZ1bmN0aW9uIj09dHlwZW9mIEdlLnZhbHVlKXJldHVybiBuZShHZS52YWx1ZSl9ZnQ9TihmdCl9cmV0dXJuIGZ1bmN0aW9uIFVlKHl0KXtyZXR1cm4gY29uc29sZS53YXJuKCJmYWxsYmFjayB2YWx1ZSBmb3IiLHl0KSxudWxsfX12YXIgVD1xKFsi''@;'; + put 'put ''YSIsImFiYnIiLCJhY3JvbnltIiwiYWRkcmVzcyIsImFyZWEiLCJhcnRpY2xlIiwiYXNpZGUiLCJhdWRpbyIsImIiLCJiZGkiLCJiZG8iLCJiaWciLCJibGluayIsImJsb2NrcXVvdGUiLCJib2R5IiwiYnIiLCJidXR0b24iLCJjYW52YXMiLCJjYXB0aW9uIiwiY2VudGVyIiwiY2l0ZSIsImNv''@;'; + put 'put ''ZGUiLCJjb2wiLCJjb2xncm91cCIsImNvbnRlbnQiLCJkYXRhIiwiZGF0YWxpc3QiLCJkZCIsImRlY29yYXRvciIsImRlbCIsImRldGFpbHMiLCJkZm4iLCJkaWFsb2ciLCJkaXIiLCJkaXYiLCJkbCIsImR0IiwiZWxlbWVudCIsImVtIiwiZmllbGRzZXQiLCJmaWdjYXB0aW9uIiwiZmlndXJl''@;'; + put 'put ''IiwiZm9udCIsImZvb3RlciIsImZvcm0iLCJoMSIsImgyIiwiaDMiLCJoNCIsImg1IiwiaDYiLCJoZWFkIiwiaGVhZGVyIiwiaGdyb3VwIiwiaHIiLCJodG1sIiwiaSIsImltZyIsImlucHV0IiwiaW5zIiwia2JkIiwibGFiZWwiLCJsZWdlbmQiLCJsaSIsIm1haW4iLCJtYXAiLCJtYXJrIiwi''@;'; + put 'put ''bWFycXVlZSIsIm1lbnUiLCJtZW51aXRlbSIsIm1ldGVyIiwibmF2Iiwibm9iciIsIm9sIiwib3B0Z3JvdXAiLCJvcHRpb24iLCJvdXRwdXQiLCJwIiwicGljdHVyZSIsInByZSIsInByb2dyZXNzIiwicSIsInJwIiwicnQiLCJydWJ5IiwicyIsInNhbXAiLCJzZWN0aW9uIiwic2VsZWN0Iiwi''@;'; + put 'put ''c2hhZG93Iiwic21hbGwiLCJzb3VyY2UiLCJzcGFjZXIiLCJzcGFuIiwic3RyaWtlIiwic3Ryb25nIiwic3R5bGUiLCJzdWIiLCJzdW1tYXJ5Iiwic3VwIiwidGFibGUiLCJ0Ym9keSIsInRkIiwidGVtcGxhdGUiLCJ0ZXh0YXJlYSIsInRmb290IiwidGgiLCJ0aGVhZCIsInRpbWUiLCJ0ciIs''@;'; + put 'put ''InRyYWNrIiwidHQiLCJ1IiwidWwiLCJ2YXIiLCJ2aWRlbyIsIndiciJdKSxTPXEoWyJzdmciLCJhIiwiYWx0Z2x5cGgiLCJhbHRnbHlwaGRlZiIsImFsdGdseXBoaXRlbSIsImFuaW1hdGVjb2xvciIsImFuaW1hdGVtb3Rpb24iLCJhbmltYXRldHJhbnNmb3JtIiwiY2lyY2xlIiwiY2xpcHBh''@;'; + put 'put ''dGgiLCJkZWZzIiwiZGVzYyIsImVsbGlwc2UiLCJmaWx0ZXIiLCJmb250IiwiZyIsImdseXBoIiwiZ2x5cGhyZWYiLCJoa2VybiIsImltYWdlIiwibGluZSIsImxpbmVhcmdyYWRpZW50IiwibWFya2VyIiwibWFzayIsIm1ldGFkYXRhIiwibXBhdGgiLCJwYXRoIiwicGF0dGVybiIsInBvbHln''@;'; + put 'put ''b24iLCJwb2x5bGluZSIsInJhZGlhbGdyYWRpZW50IiwicmVjdCIsInN0b3AiLCJzdHlsZSIsInN3aXRjaCIsInN5bWJvbCIsInRleHQiLCJ0ZXh0cGF0aCIsInRpdGxlIiwidHJlZiIsInRzcGFuIiwidmlldyIsInZrZXJuIl0pLEY9cShbImZlQmxlbmQiLCJmZUNvbG9yTWF0cml4IiwiZmVD''@;'; + put 'put ''b21wb25lbnRUcmFuc2ZlciIsImZlQ29tcG9zaXRlIiwiZmVDb252b2x2ZU1hdHJpeCIsImZlRGlmZnVzZUxpZ2h0aW5nIiwiZmVEaXNwbGFjZW1lbnRNYXAiLCJmZURpc3RhbnRMaWdodCIsImZlRmxvb2QiLCJmZUZ1bmNBIiwiZmVGdW5jQiIsImZlRnVuY0ciLCJmZUZ1bmNSIiwiZmVHYXVz''@;'; + put 'put ''c2lhbkJsdXIiLCJmZUltYWdlIiwiZmVNZXJnZSIsImZlTWVyZ2VOb2RlIiwiZmVNb3JwaG9sb2d5IiwiZmVPZmZzZXQiLCJmZVBvaW50TGlnaHQiLCJmZVNwZWN1bGFyTGlnaHRpbmciLCJmZVNwb3RMaWdodCIsImZlVGlsZSIsImZlVHVyYnVsZW5jZSJdKSx5ZT1xKFsiYW5pbWF0ZSIsImNv''@;'; + put 'put ''bG9yLXByb2ZpbGUiLCJjdXJzb3IiLCJkaXNjYXJkIiwiZmVkcm9wc2hhZG93IiwiZm9udC1mYWNlIiwiZm9udC1mYWNlLWZvcm1hdCIsImZvbnQtZmFjZS1uYW1lIiwiZm9udC1mYWNlLXNyYyIsImZvbnQtZmFjZS11cmkiLCJmb3JlaWdub2JqZWN0IiwiaGF0Y2giLCJoYXRjaHBhdGgiLCJt''@;'; + put 'put ''ZXNoIiwibWVzaGdyYWRpZW50IiwibWVzaHBhdGNoIiwibWVzaHJvdyIsIm1pc3NpbmctZ2x5cGgiLCJzY3JpcHQiLCJzZXQiLCJzb2xpZGNvbG9yIiwidW5rbm93biIsInVzZSJdKSxDZT1xKFsibWF0aCIsIm1lbmNsb3NlIiwibWVycm9yIiwibWZlbmNlZCIsIm1mcmFjIiwibWdseXBoIiwi''@;'; + put 'put ''bWkiLCJtbGFiZWxlZHRyIiwibW11bHRpc2NyaXB0cyIsIm1uIiwibW8iLCJtb3ZlciIsIm1wYWRkZWQiLCJtcGhhbnRvbSIsIm1yb290IiwibXJvdyIsIm1zIiwibXNwYWNlIiwibXNxcnQiLCJtc3R5bGUiLCJtc3ViIiwibXN1cCIsIm1zdWJzdXAiLCJtdGFibGUiLCJtdGQiLCJtdGV4dCIs''@;'; + put 'put ''Im10ciIsIm11bmRlciIsIm11bmRlcm92ZXIiXSksRGU9cShbIm1hY3Rpb24iLCJtYWxpZ25ncm91cCIsIm1hbGlnbm1hcmsiLCJtbG9uZ2RpdiIsIm1zY2FycmllcyIsIm1zY2FycnkiLCJtc2dyb3VwIiwibXN0YWNrIiwibXNsaW5lIiwibXNyb3ciLCJzZW1hbnRpY3MiLCJhbm5vdGF0aW9u''@;'; + put 'put ''IiwiYW5ub3RhdGlvbi14bWwiLCJtcHJlc2NyaXB0cyIsIm5vbmUiXSksUGU9cShbIiN0ZXh0Il0pLFFlPXEoWyJhY2NlcHQiLCJhY3Rpb24iLCJhbGlnbiIsImFsdCIsImF1dG9jYXBpdGFsaXplIiwiYXV0b2NvbXBsZXRlIiwiYXV0b3BpY3R1cmVpbnBpY3R1cmUiLCJhdXRvcGxheSIsImJh''@;'; + put 'put ''Y2tncm91bmQiLCJiZ2NvbG9yIiwiYm9yZGVyIiwiY2FwdHVyZSIsImNlbGxwYWRkaW5nIiwiY2VsbHNwYWNpbmciLCJjaGVja2VkIiwiY2l0ZSIsImNsYXNzIiwiY2xlYXIiLCJjb2xvciIsImNvbHMiLCJjb2xzcGFuIiwiY29udHJvbHMiLCJjb250cm9sc2xpc3QiLCJjb29yZHMiLCJjcm9z''@;'; + put 'put ''c29yaWdpbiIsImRhdGV0aW1lIiwiZGVjb2RpbmciLCJkZWZhdWx0IiwiZGlyIiwiZGlzYWJsZWQiLCJkaXNhYmxlcGljdHVyZWlucGljdHVyZSIsImRpc2FibGVyZW1vdGVwbGF5YmFjayIsImRvd25sb2FkIiwiZHJhZ2dhYmxlIiwiZW5jdHlwZSIsImVudGVya2V5aGludCIsImZhY2UiLCJm''@;'; + put 'put ''b3IiLCJoZWFkZXJzIiwiaGVpZ2h0IiwiaGlkZGVuIiwiaGlnaCIsImhyZWYiLCJocmVmbGFuZyIsImlkIiwiaW5wdXRtb2RlIiwiaW50ZWdyaXR5IiwiaXNtYXAiLCJraW5kIiwibGFiZWwiLCJsYW5nIiwibGlzdCIsImxvYWRpbmciLCJsb29wIiwibG93IiwibWF4IiwibWF4bGVuZ3RoIiwi''@;'; + put 'put ''bWVkaWEiLCJtZXRob2QiLCJtaW4iLCJtaW5sZW5ndGgiLCJtdWx0aXBsZSIsIm11dGVkIiwibmFtZSIsIm5vbmNlIiwibm9zaGFkZSIsIm5vdmFsaWRhdGUiLCJub3dyYXAiLCJvcGVuIiwib3B0aW11bSIsInBhdHRlcm4iLCJwbGFjZWhvbGRlciIsInBsYXlzaW5saW5lIiwicG9zdGVyIiwi''@;'; + put 'put ''cHJlbG9hZCIsInB1YmRhdGUiLCJyYWRpb2dyb3VwIiwicmVhZG9ubHkiLCJyZWwiLCJyZXF1aXJlZCIsInJldiIsInJldmVyc2VkIiwicm9sZSIsInJvd3MiLCJyb3dzcGFuIiwic3BlbGxjaGVjayIsInNjb3BlIiwic2VsZWN0ZWQiLCJzaGFwZSIsInNpemUiLCJzaXplcyIsInNwYW4iLCJz''@;'; + put 'put ''cmNsYW5nIiwic3RhcnQiLCJzcmMiLCJzcmNzZXQiLCJzdGVwIiwic3R5bGUiLCJzdW1tYXJ5IiwidGFiaW5kZXgiLCJ0aXRsZSIsInRyYW5zbGF0ZSIsInR5cGUiLCJ1c2VtYXAiLCJ2YWxpZ24iLCJ2YWx1ZSIsIndpZHRoIiwieG1sbnMiLCJzbG90Il0pLCRlPXEoWyJhY2NlbnQtaGVpZ2h0''@;'; + put 'put ''IiwiYWNjdW11bGF0ZSIsImFkZGl0aXZlIiwiYWxpZ25tZW50LWJhc2VsaW5lIiwiYXNjZW50IiwiYXR0cmlidXRlbmFtZSIsImF0dHJpYnV0ZXR5cGUiLCJhemltdXRoIiwiYmFzZWZyZXF1ZW5jeSIsImJhc2VsaW5lLXNoaWZ0IiwiYmVnaW4iLCJiaWFzIiwiYnkiLCJjbGFzcyIsImNsaXAi''@;'; + put 'put ''LCJjbGlwcGF0aHVuaXRzIiwiY2xpcC1wYXRoIiwiY2xpcC1ydWxlIiwiY29sb3IiLCJjb2xvci1pbnRlcnBvbGF0aW9uIiwiY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzIiwiY29sb3ItcHJvZmlsZSIsImNvbG9yLXJlbmRlcmluZyIsImN4IiwiY3kiLCJkIiwiZHgiLCJkeSIsImRpZmZ1''@;'; + put 'put ''c2Vjb25zdGFudCIsImRpcmVjdGlvbiIsImRpc3BsYXkiLCJkaXZpc29yIiwiZHVyIiwiZWRnZW1vZGUiLCJlbGV2YXRpb24iLCJlbmQiLCJmaWxsIiwiZmlsbC1vcGFjaXR5IiwiZmlsbC1ydWxlIiwiZmlsdGVyIiwiZmlsdGVydW5pdHMiLCJmbG9vZC1jb2xvciIsImZsb29kLW9wYWNpdHki''@;'; + put 'put ''LCJmb250LWZhbWlseSIsImZvbnQtc2l6ZSIsImZvbnQtc2l6ZS1hZGp1c3QiLCJmb250LXN0cmV0Y2giLCJmb250LXN0eWxlIiwiZm9udC12YXJpYW50IiwiZm9udC13ZWlnaHQiLCJmeCIsImZ5IiwiZzEiLCJnMiIsImdseXBoLW5hbWUiLCJnbHlwaHJlZiIsImdyYWRpZW50dW5pdHMiLCJn''@;'; + put 'put ''cmFkaWVudHRyYW5zZm9ybSIsImhlaWdodCIsImhyZWYiLCJpZCIsImltYWdlLXJlbmRlcmluZyIsImluIiwiaW4yIiwiayIsImsxIiwiazIiLCJrMyIsIms0Iiwia2VybmluZyIsImtleXBvaW50cyIsImtleXNwbGluZXMiLCJrZXl0aW1lcyIsImxhbmciLCJsZW5ndGhhZGp1c3QiLCJsZXR0''@;'; + put 'put ''ZXItc3BhY2luZyIsImtlcm5lbG1hdHJpeCIsImtlcm5lbHVuaXRsZW5ndGgiLCJsaWdodGluZy1jb2xvciIsImxvY2FsIiwibWFya2VyLWVuZCIsIm1hcmtlci1taWQiLCJtYXJrZXItc3RhcnQiLCJtYXJrZXJoZWlnaHQiLCJtYXJrZXJ1bml0cyIsIm1hcmtlcndpZHRoIiwibWFza2NvbnRl''@;'; + put 'put ''bnR1bml0cyIsIm1hc2t1bml0cyIsIm1heCIsIm1hc2siLCJtZWRpYSIsIm1ldGhvZCIsIm1vZGUiLCJtaW4iLCJuYW1lIiwibnVtb2N0YXZlcyIsIm9mZnNldCIsIm9wZXJhdG9yIiwib3BhY2l0eSIsIm9yZGVyIiwib3JpZW50Iiwib3JpZW50YXRpb24iLCJvcmlnaW4iLCJvdmVyZmxvdyIs''@;'; + put 'put ''InBhaW50LW9yZGVyIiwicGF0aCIsInBhdGhsZW5ndGgiLCJwYXR0ZXJuY29udGVudHVuaXRzIiwicGF0dGVybnRyYW5zZm9ybSIsInBhdHRlcm51bml0cyIsInBvaW50cyIsInByZXNlcnZlYWxwaGEiLCJwcmVzZXJ2ZWFzcGVjdHJhdGlvIiwicHJpbWl0aXZldW5pdHMiLCJyIiwicngiLCJy''@;'; + put 'put ''eSIsInJhZGl1cyIsInJlZngiLCJyZWZ5IiwicmVwZWF0Y291bnQiLCJyZXBlYXRkdXIiLCJyZXN0YXJ0IiwicmVzdWx0Iiwicm90YXRlIiwic2NhbGUiLCJzZWVkIiwic2hhcGUtcmVuZGVyaW5nIiwic3BlY3VsYXJjb25zdGFudCIsInNwZWN1bGFyZXhwb25lbnQiLCJzcHJlYWRtZXRob2Qi''@;'; + put 'put ''LCJzdGFydG9mZnNldCIsInN0ZGRldmlhdGlvbiIsInN0aXRjaHRpbGVzIiwic3RvcC1jb2xvciIsInN0b3Atb3BhY2l0eSIsInN0cm9rZS1kYXNoYXJyYXkiLCJzdHJva2UtZGFzaG9mZnNldCIsInN0cm9rZS1saW5lY2FwIiwic3Ryb2tlLWxpbmVqb2luIiwic3Ryb2tlLW1pdGVybGltaXQi''@;'; + put 'put ''LCJzdHJva2Utb3BhY2l0eSIsInN0cm9rZSIsInN0cm9rZS13aWR0aCIsInN0eWxlIiwic3VyZmFjZXNjYWxlIiwic3lzdGVtbGFuZ3VhZ2UiLCJ0YWJpbmRleCIsInRhcmdldHgiLCJ0YXJnZXR5IiwidHJhbnNmb3JtIiwidHJhbnNmb3JtLW9yaWdpbiIsInRleHQtYW5jaG9yIiwidGV4dC1k''@;'; + put 'put ''ZWNvcmF0aW9uIiwidGV4dC1yZW5kZXJpbmciLCJ0ZXh0bGVuZ3RoIiwidHlwZSIsInUxIiwidTIiLCJ1bmljb2RlIiwidmFsdWVzIiwidmlld2JveCIsInZpc2liaWxpdHkiLCJ2ZXJzaW9uIiwidmVydC1hZHYteSIsInZlcnQtb3JpZ2luLXgiLCJ2ZXJ0LW9yaWdpbi15Iiwid2lkdGgiLCJ3''@;'; + put 'put ''b3JkLXNwYWNpbmciLCJ3cmFwIiwid3JpdGluZy1tb2RlIiwieGNoYW5uZWxzZWxlY3RvciIsInljaGFubmVsc2VsZWN0b3IiLCJ4IiwieDEiLCJ4MiIsInhtbG5zIiwieSIsInkxIiwieTIiLCJ6Iiwiem9vbWFuZHBhbiJdKSxndD1xKFsiYWNjZW50IiwiYWNjZW50dW5kZXIiLCJhbGlnbiIs''@;'; + put 'put ''ImJldmVsbGVkIiwiY2xvc2UiLCJjb2x1bW5zYWxpZ24iLCJjb2x1bW5saW5lcyIsImNvbHVtbnNwYW4iLCJkZW5vbWFsaWduIiwiZGVwdGgiLCJkaXIiLCJkaXNwbGF5IiwiZGlzcGxheXN0eWxlIiwiZW5jb2RpbmciLCJmZW5jZSIsImZyYW1lIiwiaGVpZ2h0IiwiaHJlZiIsImlkIiwibGFy''@;'; + put 'put ''Z2VvcCIsImxlbmd0aCIsImxpbmV0aGlja25lc3MiLCJsc3BhY2UiLCJscXVvdGUiLCJtYXRoYmFja2dyb3VuZCIsIm1hdGhjb2xvciIsIm1hdGhzaXplIiwibWF0aHZhcmlhbnQiLCJtYXhzaXplIiwibWluc2l6ZSIsIm1vdmFibGVsaW1pdHMiLCJub3RhdGlvbiIsIm51bWFsaWduIiwib3Bl''@;'; + put 'put ''biIsInJvd2FsaWduIiwicm93bGluZXMiLCJyb3dzcGFjaW5nIiwicm93c3BhbiIsInJzcGFjZSIsInJxdW90ZSIsInNjcmlwdGxldmVsIiwic2NyaXB0bWluc2l6ZSIsInNjcmlwdHNpemVtdWx0aXBsaWVyIiwic2VsZWN0aW9uIiwic2VwYXJhdG9yIiwic2VwYXJhdG9ycyIsInN0cmV0Y2h5''@;'; + put 'put ''Iiwic3Vic2NyaXB0c2hpZnQiLCJzdXBzY3JpcHRzaGlmdCIsInN5bW1ldHJpYyIsInZvZmZzZXQiLCJ3aWR0aCIsInhtbG5zIl0pLHd0PXEoWyJ4bGluazpocmVmIiwieG1sOmlkIiwieGxpbms6dGl0bGUiLCJ4bWw6c3BhY2UiLCJ4bWxuczp4bGluayJdKSxtdD1KKC9ce1x7W1x3XFddKnxb''@;'; + put 'put ''XHdcV10qXH1cfS9nbSksdnQ9SigvPCVbXHdcV10qfFtcd1xXXSolPi9nbSksQXQ9SigvXmRhdGEtW1wtXHcuXHUwMEI3LVx1RkZGRl0vKSxodD1KKC9eYXJpYS1bXC1cd10rJC8pLEJ0PUooL14oPzooPzooPzpmfGh0KXRwcz98bWFpbHRvfHRlbHxjYWxsdG98Y2lkfHhtcHApOnxbXmEtel18''@;'; + put 'put ''W2EteisuXC1dKyg/OlteYS16Ky5cLTpdfCQpKS9pKSxvbj1KKC9eKD86XHcrc2NyaXB0fGRhdGEpOi9pKSxfdD1KKC9bXHUwMDAwLVx1MDAyMFx1MDBBMFx1MTY4MFx1MTgwRVx1MjAwMC1cdTIwMjlcdTIwNUZcdTMwMDBdL2cpLHR0PUooL15odG1sJC9pKSxldD1mdW5jdGlvbigpe3JldHVy''@;'; + put 'put ''biJ1bmRlZmluZWQiPT10eXBlb2Ygd2luZG93P251bGw6d2luZG93fSxhdD1mdW5jdGlvbihIdCxHZSl7aWYoIm9iamVjdCIhPT1KZShIdCl8fCJmdW5jdGlvbiIhPXR5cGVvZiBIdC5jcmVhdGVQb2xpY3kpcmV0dXJuIG51bGw7dmFyIFVlPW51bGwseXQ9ImRhdGEtdHQtcG9saWN5LXN1ZmZp''@;'; + put 'put ''eCI7R2UuY3VycmVudFNjcmlwdCYmR2UuY3VycmVudFNjcmlwdC5oYXNBdHRyaWJ1dGUoeXQpJiYoVWU9R2UuY3VycmVudFNjcmlwdC5nZXRBdHRyaWJ1dGUoeXQpKTt2YXIganQ9ImRvbXB1cmlmeSIrKFVlPyIjIitVZToiIik7dHJ5e3JldHVybiBIdC5jcmVhdGVQb2xpY3koanQse2NyZWF0''@;'; + put 'put ''ZUhUTUw6ZnVuY3Rpb24oZ24pe3JldHVybiBnbn0sY3JlYXRlU2NyaXB0VVJMOmZ1bmN0aW9uKGduKXtyZXR1cm4gZ259fSl9Y2F0Y2goUXQpe3JldHVybiBjb25zb2xlLndhcm4oIlRydXN0ZWRUeXBlcyBwb2xpY3kgIitqdCsiIGNvdWxkIG5vdCBiZSBjcmVhdGVkLiIpLG51bGx9fTtyZXR1''@;'; + put 'put ''cm4gZnVuY3Rpb24gTHQoKXt2YXIgZnQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOmV0KCksSHQ9ZnVuY3Rpb24oZmkpe3JldHVybiBMdChmaSl9O2lmKEh0LnZlcnNpb249IjIuMy4xMCIsSHQucmVtb3ZlZD1bXSwhZnR8fCFmdC5kb2N1''@;'; + put 'put ''bWVudHx8OSE9PWZ0LmRvY3VtZW50Lm5vZGVUeXBlKXJldHVybiBIdC5pc1N1cHBvcnRlZD0hMSxIdDt2YXIgR2U9ZnQuZG9jdW1lbnQsVWU9ZnQuZG9jdW1lbnQseXQ9ZnQuRG9jdW1lbnRGcmFnbWVudCxqdD1mdC5IVE1MVGVtcGxhdGVFbGVtZW50LFF0PWZ0Lk5vZGUsZ249ZnQuRWxlbWVu''@;'; + put 'put ''dCxkbj1mdC5Ob2RlRmlsdGVyLHluPWZ0Lk5hbWVkTm9kZU1hcCxsbj12b2lkIDA9PT15bj9mdC5OYW1lZE5vZGVNYXB8fGZ0Lk1vek5hbWVkQXR0ck1hcDp5bixObj1mdC5IVE1MRm9ybUVsZW1lbnQsYm49ZnQuRE9NUGFyc2VyLGVyPWZ0LnRydXN0ZWRUeXBlcyxzcj1nbi5wcm90b3R5cGUs''@;'; + put 'put ''WG49VihzciwiY2xvbmVOb2RlIiksRnI9VihzciwibmV4dFNpYmxpbmciKSx4cj1WKHNyLCJjaGlsZE5vZGVzIikscXQ9VihzciwicGFyZW50Tm9kZSIpO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBqdCl7dmFyIHByPVVlLmNyZWF0ZUVsZW1lbnQoInRlbXBsYXRlIik7cHIuY29udGVudCYmcHIu''@;'; + put 'put ''Y29udGVudC5vd25lckRvY3VtZW50JiYoVWU9cHIuY29udGVudC5vd25lckRvY3VtZW50KX12YXIgbnI9YXQoZXIsR2UpLEFuPW5yP25yLmNyZWF0ZUhUTUwoIiIpOiIiLFd0PVVlLmltcGxlbWVudGF0aW9uLHBuPVVlLmNyZWF0ZU5vZGVJdGVyYXRvcixLbj1VZS5jcmVhdGVEb2N1bWVudEZy''@;'; + put 'put ''YWdtZW50LE50PVVlLmdldEVsZW1lbnRzQnlUYWdOYW1lLHNuPUdlLmltcG9ydE5vZGUsVW49e307dHJ5e1VuPVAoVWUpLmRvY3VtZW50TW9kZT9VZS5kb2N1bWVudE1vZGU6e319Y2F0Y2goWjApe312YXIgd249e307SHQuaXNTdXBwb3J0ZWQ9ImZ1bmN0aW9uIj09dHlwZW9mIHF0JiZXdCYm''@;'; + put 'put ''dm9pZCAwIT09V3QuY3JlYXRlSFRNTERvY3VtZW50JiY5IT09VW47dmFyIHZpLHJsLHRuPW10LHpuPXZ0LFRyPUF0LEJuPWh0LGtyPW9uLG1uPV90LHVuPUJ0LGNuPW51bGwsX249eCh7fSxbXS5jb25jYXQoRShUKSxFKFMpLEUoRiksRShDZSksRShQZSkpKSxHdD1udWxsLGtuPXgoe30sW10u''@;'; + put 'put ''Y29uY2F0KEUoUWUpLEUoJGUpLEUoZ3QpLEUod3QpKSksVm49T2JqZWN0LnNlYWwoT2JqZWN0LmNyZWF0ZShudWxsLHt0YWdOYW1lQ2hlY2s6e3dyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMSxlbnVtZXJhYmxlOiEwLHZhbHVlOm51bGx9LGF0dHJpYnV0ZU5hbWVDaGVjazp7d3JpdGFibGU6''@;'; + put 'put ''ITAsY29uZmlndXJhYmxlOiExLGVudW1lcmFibGU6ITAsdmFsdWU6bnVsbH0sYWxsb3dDdXN0b21pemVkQnVpbHRJbkVsZW1lbnRzOnt3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITEsZW51bWVyYWJsZTohMCx2YWx1ZTohMX19KSksZW49bnVsbCxJbj1udWxsLEpuPSEwLG9yPSEwLGdyPSEx''@;'; + put 'put ''LEtyPSExLFZyPSExLGlpPSExLFJyPSExLGxpPSExLE1pPSExLG8wPSExLG4wPSEwLGQwPSEwLG0wPSExLEcwPXt9LERpPW51bGwsVzA9eCh7fSxbImFubm90YXRpb24teG1sIiwiYXVkaW8iLCJjb2xncm91cCIsImRlc2MiLCJmb3JlaWdub2JqZWN0IiwiaGVhZCIsImlmcmFtZSIsIm1hdGgi''@;'; + put 'put ''LCJtaSIsIm1uIiwibW8iLCJtcyIsIm10ZXh0Iiwibm9lbWJlZCIsIm5vZnJhbWVzIiwibm9zY3JpcHQiLCJwbGFpbnRleHQiLCJzY3JpcHQiLCJzdHlsZSIsInN2ZyIsInRlbXBsYXRlIiwidGhlYWQiLCJ0aXRsZSIsInZpZGVvIiwieG1wIl0pLEVvPW51bGwscW89eCh7fSxbImF1ZGlvIiwi''@;'; + put 'put ''dmlkZW8iLCJpbWciLCJzb3VyY2UiLCJpbWFnZSIsInRyYWNrIl0pLGNhPW51bGwsbGw9eCh7fSxbImFsdCIsImNsYXNzIiwiZm9yIiwiaWQiLCJsYWJlbCIsIm5hbWUiLCJwYXR0ZXJuIiwicGxhY2Vob2xkZXIiLCJyb2xlIiwic3VtbWFyeSIsInRpdGxlIiwidmFsdWUiLCJzdHlsZSIsInht''@;'; + put 'put ''bG5zIl0pLFFpPSJodHRwOi8vd3d3LnczLm9yZy8xOTk4L01hdGgvTWF0aE1MIixNYT0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLG5sPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIixnbD1ubCxBaT0hMSxiMD1bImFwcGxpY2F0aW9uL3hodG1sK3htbCIsInRleHQvaHRtbCJd''@;'; + put 'put ''LHNhPSJ0ZXh0L2h0bWwiLF9pPW51bGwsb3U9VWUuY3JlYXRlRWxlbWVudCgiZm9ybSIpLEhjPWZ1bmN0aW9uKGZpKXtyZXR1cm4gZmkgaW5zdGFuY2VvZiBSZWdFeHB8fGZpIGluc3RhbmNlb2YgRnVuY3Rpb259LFUwPWZ1bmN0aW9uKGZpKXtfaSYmX2k9PT1maXx8KCghZml8fCJvYmplY3Qi''@;'; + put 'put ''IT09SmUoZmkpKSYmKGZpPXt9KSxmaT1QKGZpKSx2aT12aT0tMT09PWIwLmluZGV4T2YoZmkuUEFSU0VSX01FRElBX1RZUEUpP3NhOmZpLlBBUlNFUl9NRURJQV9UWVBFLHJsPSJhcHBsaWNhdGlvbi94aHRtbCt4bWwiPT09dmk/ZnVuY3Rpb24oUjApe3JldHVybiBSMH06U2UsY249IkFMTE9X''@;'; + put 'put ''RURfVEFHUyJpbiBmaT94KHt9LGZpLkFMTE9XRURfVEFHUyxybCk6X24sR3Q9IkFMTE9XRURfQVRUUiJpbiBmaT94KHt9LGZpLkFMTE9XRURfQVRUUixybCk6a24sY2E9IkFERF9VUklfU0FGRV9BVFRSImluIGZpP3goUChsbCksZmkuQUREX1VSSV9TQUZFX0FUVFIscmwpOmxsLEVvPSJBRERf''@;'; + put 'put ''REFUQV9VUklfVEFHUyJpbiBmaT94KFAocW8pLGZpLkFERF9EQVRBX1VSSV9UQUdTLHJsKTpxbyxEaT0iRk9SQklEX0NPTlRFTlRTImluIGZpP3goe30sZmkuRk9SQklEX0NPTlRFTlRTLHJsKTpXMCxlbj0iRk9SQklEX1RBR1MiaW4gZmk/eCh7fSxmaS5GT1JCSURfVEFHUyxybCk6e30sSW49''@;'; + put 'put ''IkZPUkJJRF9BVFRSImluIGZpP3goe30sZmkuRk9SQklEX0FUVFIscmwpOnt9LEcwPSJVU0VfUFJPRklMRVMiaW4gZmkmJmZpLlVTRV9QUk9GSUxFUyxKbj0hMSE9PWZpLkFMTE9XX0FSSUFfQVRUUixvcj0hMSE9PWZpLkFMTE9XX0RBVEFfQVRUUixncj1maS5BTExPV19VTktOT1dOX1BST1RP''@;'; + put 'put ''Q09MU3x8ITEsS3I9ZmkuU0FGRV9GT1JfVEVNUExBVEVTfHwhMSxWcj1maS5XSE9MRV9ET0NVTUVOVHx8ITEsbGk9ZmkuUkVUVVJOX0RPTXx8ITEsTWk9ZmkuUkVUVVJOX0RPTV9GUkFHTUVOVHx8ITEsbzA9ZmkuUkVUVVJOX1RSVVNURURfVFlQRXx8ITEsUnI9ZmkuRk9SQ0VfQk9EWXx8ITEs''@;'; + put 'put ''bjA9ITEhPT1maS5TQU5JVElaRV9ET00sZDA9ITEhPT1maS5LRUVQX0NPTlRFTlQsbTA9ZmkuSU5fUExBQ0V8fCExLHVuPWZpLkFMTE9XRURfVVJJX1JFR0VYUHx8dW4sZ2w9ZmkuTkFNRVNQQUNFfHxubCxmaS5DVVNUT01fRUxFTUVOVF9IQU5ETElORyYmSGMoZmkuQ1VTVE9NX0VMRU1FTlRf''@;'; + put 'put ''SEFORExJTkcudGFnTmFtZUNoZWNrKSYmKFZuLnRhZ05hbWVDaGVjaz1maS5DVVNUT01fRUxFTUVOVF9IQU5ETElORy50YWdOYW1lQ2hlY2spLGZpLkNVU1RPTV9FTEVNRU5UX0hBTkRMSU5HJiZIYyhmaS5DVVNUT01fRUxFTUVOVF9IQU5ETElORy5hdHRyaWJ1dGVOYW1lQ2hlY2spJiYoVm4u''@;'; + put 'put ''YXR0cmlidXRlTmFtZUNoZWNrPWZpLkNVU1RPTV9FTEVNRU5UX0hBTkRMSU5HLmF0dHJpYnV0ZU5hbWVDaGVjayksZmkuQ1VTVE9NX0VMRU1FTlRfSEFORExJTkcmJiJib29sZWFuIj09dHlwZW9mIGZpLkNVU1RPTV9FTEVNRU5UX0hBTkRMSU5HLmFsbG93Q3VzdG9taXplZEJ1aWx0SW5FbGVt''@;'; + put 'put ''ZW50cyYmKFZuLmFsbG93Q3VzdG9taXplZEJ1aWx0SW5FbGVtZW50cz1maS5DVVNUT01fRUxFTUVOVF9IQU5ETElORy5hbGxvd0N1c3RvbWl6ZWRCdWlsdEluRWxlbWVudHMpLEtyJiYob3I9ITEpLE1pJiYobGk9ITApLEcwJiYoY249eCh7fSxFKFBlKSksR3Q9W10sITA9PT1HMC5odG1sJiYo''@;'; + put 'put ''eChjbixUKSx4KEd0LFFlKSksITA9PT1HMC5zdmcmJih4KGNuLFMpLHgoR3QsJGUpLHgoR3Qsd3QpKSwhMD09PUcwLnN2Z0ZpbHRlcnMmJih4KGNuLEYpLHgoR3QsJGUpLHgoR3Qsd3QpKSwhMD09PUcwLm1hdGhNbCYmKHgoY24sQ2UpLHgoR3QsZ3QpLHgoR3Qsd3QpKSksZmkuQUREX1RBR1Mm''@;'; + put 'put ''Jihjbj09PV9uJiYoY249UChjbikpLHgoY24sZmkuQUREX1RBR1MscmwpKSxmaS5BRERfQVRUUiYmKEd0PT09a24mJihHdD1QKEd0KSkseChHdCxmaS5BRERfQVRUUixybCkpLGZpLkFERF9VUklfU0FGRV9BVFRSJiZ4KGNhLGZpLkFERF9VUklfU0FGRV9BVFRSLHJsKSxmaS5GT1JCSURfQ09O''@;'; + put 'put ''VEVOVFMmJihEaT09PVcwJiYoRGk9UChEaSkpLHgoRGksZmkuRk9SQklEX0NPTlRFTlRTLHJsKSksZDAmJihjblsiI3RleHQiXT0hMCksVnImJngoY24sWyJodG1sIiwiaGVhZCIsImJvZHkiXSksY24udGFibGUmJih4KGNuLFsidGJvZHkiXSksZGVsZXRlIGVuLnRib2R5KSxxJiZxKGZpKSxf''@;'; + put 'put ''aT1maSl9LFJzPXgoe30sWyJtaSIsIm1vIiwibW4iLCJtcyIsIm10ZXh0Il0pLFgwPXgoe30sWyJmb3JlaWdub2JqZWN0IiwiZGVzYyIsInRpdGxlIiwiYW5ub3RhdGlvbi14bWwiXSksdWE9eCh7fSxbInRpdGxlIiwic3R5bGUiLCJmb250IiwiYSIsInNjcmlwdCJdKSxqMD14KHt9LFMpO3go''@;'; + put 'put ''ajAsRikseChqMCx5ZSk7dmFyIEJsPXgoe30sQ2UpO3goQmwsRGUpO3ZhciB2bj1mdW5jdGlvbihmaSl7dmFyIFIwPXF0KGZpKTsoIVIwfHwhUjAudGFnTmFtZSkmJihSMD17bmFtZXNwYWNlVVJJOm5sLHRhZ05hbWU6InRlbXBsYXRlIn0pO3ZhciBtbz1TZShmaS50YWdOYW1lKSxycz1TZShS''@;'; + put 'put ''MC50YWdOYW1lKTtyZXR1cm4gZmkubmFtZXNwYWNlVVJJPT09TWE/UjAubmFtZXNwYWNlVVJJPT09bmw/InN2ZyI9PT1tbzpSMC5uYW1lc3BhY2VVUkk9PT1RaT8ic3ZnIj09PW1vJiYoImFubm90YXRpb24teG1sIj09PXJzfHxSc1tyc10pOkJvb2xlYW4oajBbbW9dKTpmaS5uYW1lc3BhY2VV''@;'; + put 'put ''Ukk9PT1RaT9SMC5uYW1lc3BhY2VVUkk9PT1ubD8ibWF0aCI9PT1tbzpSMC5uYW1lc3BhY2VVUkk9PT1NYT8ibWF0aCI9PT1tbyYmWDBbcnNdOkJvb2xlYW4oQmxbbW9dKTpmaS5uYW1lc3BhY2VVUkk9PT1ubCYmIShSMC5uYW1lc3BhY2VVUkk9PT1NYSYmIVgwW3JzXXx8UjAubmFtZXNwYWNl''@;'; + put 'put ''VVJJPT09UWkmJiFSc1tyc10pJiYhQmxbbW9dJiYodWFbbW9dfHwhajBbbW9dKX0sXzA9ZnVuY3Rpb24oZmkpe2tlKEh0LnJlbW92ZWQse2VsZW1lbnQ6Zml9KTt0cnl7ZmkucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChmaSl9Y2F0Y2goUjApe3RyeXtmaS5vdXRlckhUTUw9QW59Y2F0Y2gobW8p''@;'; + put 'put ''e2ZpLnJlbW92ZSgpfX19LGdjPWZ1bmN0aW9uKGZpLFIwKXt0cnl7a2UoSHQucmVtb3ZlZCx7YXR0cmlidXRlOlIwLmdldEF0dHJpYnV0ZU5vZGUoZmkpLGZyb206UjB9KX1jYXRjaChtbyl7a2UoSHQucmVtb3ZlZCx7YXR0cmlidXRlOm51bGwsZnJvbTpSMH0pfWlmKFIwLnJlbW92ZUF0dHJp''@;'; + put 'put ''YnV0ZShmaSksImlzIj09PWZpJiYhR3RbZmldKWlmKGxpfHxNaSl0cnl7XzAoUjApfWNhdGNoKG1vKXt9ZWxzZSB0cnl7UjAuc2V0QXR0cmlidXRlKGZpLCIiKX1jYXRjaChtbyl7fX0sZ2Q9ZnVuY3Rpb24oZmkpe3ZhciBSMCxtbztpZihScilmaT0iPHJlbW92ZT48L3JlbW92ZT4iK2ZpO2Vs''@;'; + put 'put ''c2V7dmFyIHJzPUllKGZpLC9eW1xyXG5cdCBdKy8pO21vPXJzJiZyc1swXX0iYXBwbGljYXRpb24veGh0bWwreG1sIj09PXZpJiYoZmk9JzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj48aGVhZD48L2hlYWQ+PGJvZHk+JytmaSsiPC9ib2R5PjwvaHRtbD4iKTt2''@;'; + put 'put ''YXIgaHM9bnI/bnIuY3JlYXRlSFRNTChmaSk6Zmk7aWYoZ2w9PT1ubCl0cnl7UjA9KG5ldyBibikucGFyc2VGcm9tU3RyaW5nKGhzLHZpKX1jYXRjaChUMil7fWlmKCFSMHx8IVIwLmRvY3VtZW50RWxlbWVudCl7UjA9V3QuY3JlYXRlRG9jdW1lbnQoZ2wsInRlbXBsYXRlIixudWxsKTt0cnl7''@;'; + put 'put ''UjAuZG9jdW1lbnRFbGVtZW50LmlubmVySFRNTD1BaT8iIjpoc31jYXRjaChUMil7fX12YXIgbjI9UjAuYm9keXx8UjAuZG9jdW1lbnRFbGVtZW50O3JldHVybiBmaSYmbW8mJm4yLmluc2VydEJlZm9yZShVZS5jcmVhdGVUZXh0Tm9kZShtbyksbjIuY2hpbGROb2Rlc1swXXx8bnVsbCksZ2w9''@;'; + put 'put ''PT1ubD9OdC5jYWxsKFIwLFZyPyJodG1sIjoiYm9keSIpWzBdOlZyP1IwLmRvY3VtZW50RWxlbWVudDpuMn0sQjE9ZnVuY3Rpb24oZmkpe3JldHVybiBwbi5jYWxsKGZpLm93bmVyRG9jdW1lbnR8fGZpLGZpLGRuLlNIT1dfRUxFTUVOVHxkbi5TSE9XX0NPTU1FTlR8ZG4uU0hPV19URVhULG51''@;'; + put 'put ''bGwsITEpfSxhdT1mdW5jdGlvbihmaSl7cmV0dXJuIGZpIGluc3RhbmNlb2YgTm4mJigic3RyaW5nIiE9dHlwZW9mIGZpLm5vZGVOYW1lfHwic3RyaW5nIiE9dHlwZW9mIGZpLnRleHRDb250ZW50fHwiZnVuY3Rpb24iIT10eXBlb2YgZmkucmVtb3ZlQ2hpbGR8fCEoZmkuYXR0cmlidXRlcyBp''@;'; + put 'put ''bnN0YW5jZW9mIGxuKXx8ImZ1bmN0aW9uIiE9dHlwZW9mIGZpLnJlbW92ZUF0dHJpYnV0ZXx8ImZ1bmN0aW9uIiE9dHlwZW9mIGZpLnNldEF0dHJpYnV0ZXx8InN0cmluZyIhPXR5cGVvZiBmaS5uYW1lc3BhY2VVUkl8fCJmdW5jdGlvbiIhPXR5cGVvZiBmaS5pbnNlcnRCZWZvcmUpfSxQMT1m''@;'; + put 'put ''dW5jdGlvbihmaSl7cmV0dXJuIm9iamVjdCI9PT1KZShRdCk/ZmkgaW5zdGFuY2VvZiBRdDpmaSYmIm9iamVjdCI9PT1KZShmaSkmJiJudW1iZXIiPT10eXBlb2YgZmkubm9kZVR5cGUmJiJzdHJpbmciPT10eXBlb2YgZmkubm9kZU5hbWV9LG1jPWZ1bmN0aW9uKGZpLFIwLG1vKXshd25bZmld''@;'; + put 'put ''fHx2ZSh3bltmaV0sZnVuY3Rpb24ocnMpe3JzLmNhbGwoSHQsUjAsbW8sX2kpfSl9LHgyPWZ1bmN0aW9uKGZpKXt2YXIgUjA7aWYobWMoImJlZm9yZVNhbml0aXplRWxlbWVudHMiLGZpLG51bGwpLGF1KGZpKXx8TygvW1x1MDA4MC1cdUZGRkZdLyxmaS5ub2RlTmFtZSkpcmV0dXJuIF8wKGZp''@;'; + put 'put ''KSwhMDt2YXIgbW89cmwoZmkubm9kZU5hbWUpO2lmKG1jKCJ1cG9uU2FuaXRpemVFbGVtZW50IixmaSx7dGFnTmFtZTptbyxhbGxvd2VkVGFnczpjbn0pLGZpLmhhc0NoaWxkTm9kZXMoKSYmIVAxKGZpLmZpcnN0RWxlbWVudENoaWxkKSYmKCFQMShmaS5jb250ZW50KXx8IVAxKGZpLmNvbnRl''@;'; + put 'put ''bnQuZmlyc3RFbGVtZW50Q2hpbGQpKSYmTygvPFsvXHddL2csZmkuaW5uZXJIVE1MKSYmTygvPFsvXHddL2csZmkudGV4dENvbnRlbnQpfHwic2VsZWN0Ij09PW1vJiZPKC88dGVtcGxhdGUvaSxmaS5pbm5lckhUTUwpKXJldHVybiBfMChmaSksITA7aWYoIWNuW21vXXx8ZW5bbW9dKXtpZigh''@;'; + put 'put ''ZW5bbW9dJiZkMyhtbykmJihWbi50YWdOYW1lQ2hlY2sgaW5zdGFuY2VvZiBSZWdFeHAmJk8oVm4udGFnTmFtZUNoZWNrLG1vKXx8Vm4udGFnTmFtZUNoZWNrIGluc3RhbmNlb2YgRnVuY3Rpb24mJlZuLnRhZ05hbWVDaGVjayhtbykpKXJldHVybiExO2lmKGQwJiYhRGlbbW9dKXt2YXIgcnM9''@;'; + put 'put ''cXQoZmkpfHxmaS5wYXJlbnROb2RlLGhzPXhyKGZpKXx8ZmkuY2hpbGROb2RlcztpZihocyYmcnMpZm9yKHZhciBUMj1ocy5sZW5ndGgtMTtUMj49MDstLVQyKXJzLmluc2VydEJlZm9yZShYbihoc1tUMl0sITApLEZyKGZpKSl9cmV0dXJuIF8wKGZpKSwhMH1yZXR1cm4gZmkgaW5zdGFuY2Vv''@;'; + put 'put ''ZiBnbiYmIXZuKGZpKXx8KCJub3NjcmlwdCI9PT1tb3x8Im5vZW1iZWQiPT09bW8pJiZPKC88XC9ubyhzY3JpcHR8ZW1iZWQpL2ksZmkuaW5uZXJIVE1MKT8oXzAoZmkpLCEwKTooS3ImJjM9PT1maS5ub2RlVHlwZSYmKFIwPVRlKFIwPWZpLnRleHRDb250ZW50LHRuLCIgIiksUjA9VGUoUjAs''@;'; + put 'put ''em4sIiAiKSxmaS50ZXh0Q29udGVudCE9PVIwJiYoa2UoSHQucmVtb3ZlZCx7ZWxlbWVudDpmaS5jbG9uZU5vZGUoKX0pLGZpLnRleHRDb250ZW50PVIwKSksbWMoImFmdGVyU2FuaXRpemVFbGVtZW50cyIsZmksbnVsbCksITEpfSxQbD1mdW5jdGlvbihmaSxSMCxtbyl7aWYobjAmJigiaWQi''@;'; + put 'put ''PT09UjB8fCJuYW1lIj09PVIwKSYmKG1vIGluIFVlfHxtbyBpbiBvdSkpcmV0dXJuITE7aWYoKCFvcnx8SW5bUjBdfHwhTyhUcixSMCkpJiYoIUpufHwhTyhCbixSMCkpKWlmKCFHdFtSMF18fEluW1IwXSl7aWYoIShkMyhmaSkmJihWbi50YWdOYW1lQ2hlY2sgaW5zdGFuY2VvZiBSZWdFeHAm''@;'; + put 'put ''Jk8oVm4udGFnTmFtZUNoZWNrLGZpKXx8Vm4udGFnTmFtZUNoZWNrIGluc3RhbmNlb2YgRnVuY3Rpb24mJlZuLnRhZ05hbWVDaGVjayhmaSkpJiYoVm4uYXR0cmlidXRlTmFtZUNoZWNrIGluc3RhbmNlb2YgUmVnRXhwJiZPKFZuLmF0dHJpYnV0ZU5hbWVDaGVjayxSMCl8fFZuLmF0dHJpYnV0''@;'; + put 'put ''ZU5hbWVDaGVjayBpbnN0YW5jZW9mIEZ1bmN0aW9uJiZWbi5hdHRyaWJ1dGVOYW1lQ2hlY2soUjApKXx8ImlzIj09PVIwJiZWbi5hbGxvd0N1c3RvbWl6ZWRCdWlsdEluRWxlbWVudHMmJihWbi50YWdOYW1lQ2hlY2sgaW5zdGFuY2VvZiBSZWdFeHAmJk8oVm4udGFnTmFtZUNoZWNrLG1vKXx8''@;'; + put 'put ''Vm4udGFnTmFtZUNoZWNrIGluc3RhbmNlb2YgRnVuY3Rpb24mJlZuLnRhZ05hbWVDaGVjayhtbykpKSlyZXR1cm4hMX1lbHNlIGlmKCFjYVtSMF0mJiFPKHVuLFRlKG1vLG1uLCIiKSkmJigic3JjIiE9PVIwJiYieGxpbms6aHJlZiIhPT1SMCYmImhyZWYiIT09UjB8fCJzY3JpcHQiPT09Zml8''@;'; + put 'put ''fDAhPT1FZShtbywiZGF0YToiKXx8IUVvW2ZpXSkmJighZ3J8fE8oa3IsVGUobW8sbW4sIiIpKSkmJm1vKXJldHVybiExO3JldHVybiEwfSxkMz1mdW5jdGlvbihmaSl7cmV0dXJuIGZpLmluZGV4T2YoIi0iKT4wfSxRMj1mdW5jdGlvbihmaSl7dmFyIFIwLG1vLHJzLGhzO21jKCJiZWZvcmVT''@;'; + put 'put ''YW5pdGl6ZUF0dHJpYnV0ZXMiLGZpLG51bGwpO3ZhciBuMj1maS5hdHRyaWJ1dGVzO2lmKG4yKXt2YXIgVDI9e2F0dHJOYW1lOiIiLGF0dHJWYWx1ZToiIixrZWVwQXR0cjohMCxhbGxvd2VkQXR0cmlidXRlczpHdH07Zm9yKGhzPW4yLmxlbmd0aDtocy0tOyl7dmFyIEJzPShSMD1uMltoc10p''@;'; + put 'put ''Lm5hbWUsTmY9UjAubmFtZXNwYWNlVVJJO2lmKG1vPSJ2YWx1ZSI9PT1Ccz9SMC52YWx1ZTpoZShSMC52YWx1ZSkscnM9cmwoQnMpLFQyLmF0dHJOYW1lPXJzLFQyLmF0dHJWYWx1ZT1tbyxUMi5rZWVwQXR0cj0hMCxUMi5mb3JjZUtlZXBBdHRyPXZvaWQgMCxtYygidXBvblNhbml0aXplQXR0''@;'; + put 'put ''cmlidXRlIixmaSxUMiksbW89VDIuYXR0clZhbHVlLCFUMi5mb3JjZUtlZXBBdHRyJiYoZ2MoQnMsZmkpLFQyLmtlZXBBdHRyKSl7aWYoTygvXC8+L2ksbW8pKXtnYyhCcyxmaSk7Y29udGludWV9S3ImJihtbz1UZShtbyx0biwiICIpLG1vPVRlKG1vLHpuLCIgIikpO3ZhciBZbD1ybChmaS5u''@;'; + put 'put ''b2RlTmFtZSk7aWYoUGwoWWwscnMsbW8pKXtpZihuciYmIm9iamVjdCI9PT1KZShlcikmJiJmdW5jdGlvbiI9PXR5cGVvZiBlci5nZXRBdHRyaWJ1dGVUeXBlJiYhTmYpc3dpdGNoKGVyLmdldEF0dHJpYnV0ZVR5cGUoWWwscnMpKXtjYXNlIlRydXN0ZWRIVE1MIjptbz1uci5jcmVhdGVIVE1M''@;'; + put 'put ''KG1vKTticmVhaztjYXNlIlRydXN0ZWRTY3JpcHRVUkwiOm1vPW5yLmNyZWF0ZVNjcmlwdFVSTChtbyl9dHJ5e05mP2ZpLnNldEF0dHJpYnV0ZU5TKE5mLEJzLG1vKTpmaS5zZXRBdHRyaWJ1dGUoQnMsbW8pLEFlKEh0LnJlbW92ZWQpfWNhdGNoKE5jKXt9fX19bWMoImFmdGVyU2FuaXRpemVB''@;'; + put 'put ''dHRyaWJ1dGVzIixmaSxudWxsKX19LHMxPWZ1bmN0aW9uIFowKGZpKXt2YXIgUjAsbW89QjEoZmkpO2ZvcihtYygiYmVmb3JlU2FuaXRpemVTaGFkb3dET00iLGZpLG51bGwpO1IwPW1vLm5leHROb2RlKCk7KW1jKCJ1cG9uU2FuaXRpemVTaGFkb3dOb2RlIixSMCxudWxsKSwheDIoUjApJiYo''@;'; + put 'put ''UjAuY29udGVudCBpbnN0YW5jZW9mIHl0JiZaMChSMC5jb250ZW50KSxRMihSMCkpO21jKCJhZnRlclNhbml0aXplU2hhZG93RE9NIixmaSxudWxsKX07cmV0dXJuIEh0LnNhbml0aXplPWZ1bmN0aW9uKFowLGZpKXt2YXIgUjAsbW8scnMsaHMsbjI7aWYoKEFpPSFaMCkmJihaMD0iXHgzYyEt''@;'; + put 'put ''LVx4M2UiKSwic3RyaW5nIiE9dHlwZW9mIFowJiYhUDEoWjApKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgWjAudG9TdHJpbmcpdGhyb3cgeigidG9TdHJpbmcgaXMgbm90IGEgZnVuY3Rpb24iKTtpZigic3RyaW5nIiE9dHlwZW9mKFowPVowLnRvU3RyaW5nKCkpKXRocm93IHooImRpcnR5IGlz''@;'; + put 'put ''IG5vdCBhIHN0cmluZywgYWJvcnRpbmciKX1pZighSHQuaXNTdXBwb3J0ZWQpe2lmKCJvYmplY3QiPT09SmUoZnQudG9TdGF0aWNIVE1MKXx8ImZ1bmN0aW9uIj09dHlwZW9mIGZ0LnRvU3RhdGljSFRNTCl7aWYoInN0cmluZyI9PXR5cGVvZiBaMClyZXR1cm4gZnQudG9TdGF0aWNIVE1MKFow''@;'; + put 'put ''KTtpZihQMShaMCkpcmV0dXJuIGZ0LnRvU3RhdGljSFRNTChaMC5vdXRlckhUTUwpfXJldHVybiBaMH1pZihpaXx8VTAoZmkpLEh0LnJlbW92ZWQ9W10sInN0cmluZyI9PXR5cGVvZiBaMCYmKG0wPSExKSxtMCl7aWYoWjAubm9kZU5hbWUpe3ZhciBUMj1ybChaMC5ub2RlTmFtZSk7aWYoIWNu''@;'; + put 'put ''W1QyXXx8ZW5bVDJdKXRocm93IHooInJvb3Qgbm9kZSBpcyBmb3JiaWRkZW4gYW5kIGNhbm5vdCBiZSBzYW5pdGl6ZWQgaW4tcGxhY2UiKX19ZWxzZSBpZihaMCBpbnN0YW5jZW9mIFF0KTE9PT0obW89KFIwPWdkKCJceDNjIS0tLS1ceDNlIikpLm93bmVyRG9jdW1lbnQuaW1wb3J0Tm9kZSha''@;'; + put 'put ''MCwhMCkpLm5vZGVUeXBlJiYiQk9EWSI9PT1tby5ub2RlTmFtZXx8IkhUTUwiPT09bW8ubm9kZU5hbWU/UjA9bW86UjAuYXBwZW5kQ2hpbGQobW8pO2Vsc2V7aWYoIWxpJiYhS3ImJiFWciYmLTE9PT1aMC5pbmRleE9mKCI8IikpcmV0dXJuIG5yJiZvMD9uci5jcmVhdGVIVE1MKFowKTpaMDtp''@;'; + put 'put ''ZighKFIwPWdkKFowKSkpcmV0dXJuIGxpP251bGw6bzA/QW46IiJ9UjAmJlJyJiZfMChSMC5maXJzdENoaWxkKTtmb3IodmFyIFRpPUIxKG0wP1owOlIwKTtycz1UaS5uZXh0Tm9kZSgpOykzPT09cnMubm9kZVR5cGUmJnJzPT09aHN8fHgyKHJzKXx8KHJzLmNvbnRlbnQgaW5zdGFuY2VvZiB5''@;'; + put 'put ''dCYmczEocnMuY29udGVudCksUTIocnMpLGhzPXJzKTtpZihocz1udWxsLG0wKXJldHVybiBaMDtpZihsaSl7aWYoTWkpZm9yKG4yPUtuLmNhbGwoUjAub3duZXJEb2N1bWVudCk7UjAuZmlyc3RDaGlsZDspbjIuYXBwZW5kQ2hpbGQoUjAuZmlyc3RDaGlsZCk7ZWxzZSBuMj1SMDtyZXR1cm4g''@;'; + put 'put ''R3Quc2hhZG93cm9vdCYmKG4yPXNuLmNhbGwoR2UsbjIsITApKSxuMn12YXIgQnM9VnI/UjAub3V0ZXJIVE1MOlIwLmlubmVySFRNTDtyZXR1cm4gVnImJmNuWyIhZG9jdHlwZSJdJiZSMC5vd25lckRvY3VtZW50JiZSMC5vd25lckRvY3VtZW50LmRvY3R5cGUmJlIwLm93bmVyRG9jdW1lbnQu''@;'; + put 'put ''ZG9jdHlwZS5uYW1lJiZPKHR0LFIwLm93bmVyRG9jdW1lbnQuZG9jdHlwZS5uYW1lKSYmKEJzPSI8IURPQ1RZUEUgIitSMC5vd25lckRvY3VtZW50LmRvY3R5cGUubmFtZSsiPlxuIitCcyksS3ImJihCcz1UZShCcyx0biwiICIpLEJzPVRlKEJzLHpuLCIgIikpLG5yJiZvMD9uci5jcmVhdGVI''@;'; + put 'put ''VE1MKEJzKTpCc30sSHQuc2V0Q29uZmlnPWZ1bmN0aW9uKFowKXtVMChaMCksaWk9ITB9LEh0LmNsZWFyQ29uZmlnPWZ1bmN0aW9uKCl7X2k9bnVsbCxpaT0hMX0sSHQuaXNWYWxpZEF0dHJpYnV0ZT1mdW5jdGlvbihaMCxmaSxSMCl7X2l8fFUwKHt9KTt2YXIgbW89cmwoWjApLHJzPXJsKGZp''@;'; + put 'put ''KTtyZXR1cm4gUGwobW8scnMsUjApfSxIdC5hZGRIb29rPWZ1bmN0aW9uKFowLGZpKXsiZnVuY3Rpb24iPT10eXBlb2YgZmkmJih3bltaMF09d25bWjBdfHxbXSxrZSh3bltaMF0sZmkpKX0sSHQucmVtb3ZlSG9vaz1mdW5jdGlvbihaMCl7aWYod25bWjBdKXJldHVybiBBZSh3bltaMF0pfSxI''@;'; + put 'put ''dC5yZW1vdmVIb29rcz1mdW5jdGlvbihaMCl7d25bWjBdJiYod25bWjBdPVtdKX0sSHQucmVtb3ZlQWxsSG9va3M9ZnVuY3Rpb24oKXt3bj17fX0sSHR9KCl9KCl9LDU3NzE1OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9SmU7bWUudmVyc2lvbj1MKDE4NTk3KS5pOCxtZS51dGls''@;'; + put 'put ''cz1MKDYxOTcwKSxtZS5yYW5kPUwoMzc5NTApLG1lLmN1cnZlPUwoNDYyNzApLG1lLmN1cnZlcz1MKDUyOTE2KSxtZS5lYz1MKDY3NjI2KSxtZS5lZGRzYT1MKDgxODg1KX0sOTc5MDI6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDE3NDMzKSxCPUwoNjE5NzApLEU9Qi5nZXRO''@;'; + put 'put ''QUYsTWU9Qi5nZXRKU0YsVT1CLmFzc2VydDtmdW5jdGlvbiBRKGllLGFlKXt0aGlzLnR5cGU9aWUsdGhpcy5wPW5ldyBtZShhZS5wLDE2KSx0aGlzLnJlZD1hZS5wcmltZT9tZS5yZWQoYWUucHJpbWUpOm1lLm1vbnQodGhpcy5wKSx0aGlzLnplcm89bmV3IG1lKDApLnRvUmVkKHRoaXMucmVk''@;'; + put 'put ''KSx0aGlzLm9uZT1uZXcgbWUoMSkudG9SZWQodGhpcy5yZWQpLHRoaXMudHdvPW5ldyBtZSgyKS50b1JlZCh0aGlzLnJlZCksdGhpcy5uPWFlLm4mJm5ldyBtZShhZS5uLDE2KSx0aGlzLmc9YWUuZyYmdGhpcy5wb2ludEZyb21KU09OKGFlLmcsYWUuZ1JlZCksdGhpcy5fd25hZlQxPW5ldyBB''@;'; + put 'put ''cnJheSg0KSx0aGlzLl93bmFmVDI9bmV3IEFycmF5KDQpLHRoaXMuX3duYWZUMz1uZXcgQXJyYXkoNCksdGhpcy5fd25hZlQ0PW5ldyBBcnJheSg0KSx0aGlzLl9iaXRMZW5ndGg9dGhpcy5uP3RoaXMubi5iaXRMZW5ndGgoKTowO3ZhciBZPXRoaXMubiYmdGhpcy5wLmRpdih0aGlzLm4pOyFZ''@;'; + put 'put ''fHxZLmNtcG4oMTAwKT4wP3RoaXMucmVkTj1udWxsOih0aGlzLl9tYXh3ZWxsVHJpY2s9ITAsdGhpcy5yZWROPXRoaXMubi50b1JlZCh0aGlzLnJlZCkpfWZ1bmN0aW9uIFooaWUsYWUpe3RoaXMuY3VydmU9aWUsdGhpcy50eXBlPWFlLHRoaXMucHJlY29tcHV0ZWQ9bnVsbH1YZS5leHBvcnRz''@;'; + put 'put ''PVEsUS5wcm90b3R5cGUucG9pbnQ9ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoIk5vdCBpbXBsZW1lbnRlZCIpfSxRLnByb3RvdHlwZS52YWxpZGF0ZT1mdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcigiTm90IGltcGxlbWVudGVkIil9LFEucHJvdG90eXBlLl9maXhlZE5hZk11bD1mdW5j''@;'; + put 'put ''dGlvbihhZSxZKXtVKGFlLnByZWNvbXB1dGVkKTt2YXIgVz1hZS5fZ2V0RG91YmxlcygpLE49RShZLDEsdGhpcy5fYml0TGVuZ3RoKSxlZT0oMTw8Vy5zdGVwKzEpLShXLnN0ZXAlMj09MD8yOjEpO2VlLz0zO3ZhciBKLHNlLHE9W107Zm9yKEo9MDtKPE4ubGVuZ3RoO0orPVcuc3RlcCl7c2U9''@;'; + put 'put ''MDtmb3IodmFyIG9lPUorVy5zdGVwLTE7b2U+PUo7b2UtLSlzZT0oc2U8PDEpK05bb2VdO3EucHVzaChzZSl9Zm9yKHZhciBjZT10aGlzLmpwb2ludChudWxsLG51bGwsbnVsbCksZGU9dGhpcy5qcG9pbnQobnVsbCxudWxsLG51bGwpLHZlPWVlO3ZlPjA7dmUtLSl7Zm9yKEo9MDtKPHEubGVu''@;'; + put 'put ''Z3RoO0orKykoc2U9cVtKXSk9PT12ZT9kZT1kZS5taXhlZEFkZChXLnBvaW50c1tKXSk6c2U9PT0tdmUmJihkZT1kZS5taXhlZEFkZChXLnBvaW50c1tKXS5uZWcoKSkpO2NlPWNlLmFkZChkZSl9cmV0dXJuIGNlLnRvUCgpfSxRLnByb3RvdHlwZS5fd25hZk11bD1mdW5jdGlvbihhZSxZKXtm''@;'; + put 'put ''b3IodmFyIFc9NCxOPWFlLl9nZXROQUZQb2ludHMoVyksZWU9Ti5wb2ludHMscT1FKFksVz1OLnduZCx0aGlzLl9iaXRMZW5ndGgpLEo9dGhpcy5qcG9pbnQobnVsbCxudWxsLG51bGwpLHNlPXEubGVuZ3RoLTE7c2U+PTA7c2UtLSl7Zm9yKHZhciBvZT0wO3NlPj0wJiYwPT09cVtzZV07c2Ut''@;'; + put 'put ''LSlvZSsrO2lmKHNlPj0wJiZvZSsrLEo9Si5kYmxwKG9lKSxzZTwwKWJyZWFrO3ZhciBjZT1xW3NlXTtVKDAhPT1jZSksSj0iYWZmaW5lIj09PWFlLnR5cGU/Si5taXhlZEFkZChjZT4wP2VlW2NlLTE+PjFdOmVlWy1jZS0xPj4xXS5uZWcoKSk6Si5hZGQoY2U+MD9lZVtjZS0xPj4xXTplZVst''@;'; + put 'put ''Y2UtMT4+MV0ubmVnKCkpfXJldHVybiJhZmZpbmUiPT09YWUudHlwZT9KLnRvUCgpOkp9LFEucHJvdG90eXBlLl93bmFmTXVsQWRkPWZ1bmN0aW9uKGFlLFksVyxOLGVlKXt2YXIgY2UsZGUsdmUscT10aGlzLl93bmFmVDEsSj10aGlzLl93bmFmVDIsc2U9dGhpcy5fd25hZlQzLG9lPTA7Zm9y''@;'; + put 'put ''KGNlPTA7Y2U8TjtjZSsrKXt2YXIgQWU9KHZlPVlbY2VdKS5fZ2V0TkFGUG9pbnRzKGFlKTtxW2NlXT1BZS53bmQsSltjZV09QWUucG9pbnRzfWZvcihjZT1OLTE7Y2U+PTE7Y2UtPTIpe3ZhciBrZT1jZS0xLFNlPWNlO2lmKDE9PT1xW2tlXSYmMT09PXFbU2VdKXt2YXIgSWU9W1lba2VdLG51''@;'; + put 'put ''bGwsbnVsbCxZW1NlXV07MD09PVlba2VdLnkuY21wKFlbU2VdLnkpPyhJZVsxXT1ZW2tlXS5hZGQoWVtTZV0pLEllWzJdPVlba2VdLnRvSigpLm1peGVkQWRkKFlbU2VdLm5lZygpKSk6MD09PVlba2VdLnkuY21wKFlbU2VdLnkucmVkTmVnKCkpPyhJZVsxXT1ZW2tlXS50b0ooKS5taXhlZEFk''@;'; + put 'put ''ZChZW1NlXSksSWVbMl09WVtrZV0uYWRkKFlbU2VdLm5lZygpKSk6KEllWzFdPVlba2VdLnRvSigpLm1peGVkQWRkKFlbU2VdKSxJZVsyXT1ZW2tlXS50b0ooKS5taXhlZEFkZChZW1NlXS5uZWcoKSkpO3ZhciBUZT1bLTMsLTEsLTUsLTcsMCw3LDUsMSwzXSxFZT1NZShXW2tlXSxXW1NlXSk7''@;'; + put 'put ''Zm9yKG9lPU1hdGgubWF4KEVlWzBdLmxlbmd0aCxvZSksc2Vba2VdPW5ldyBBcnJheShvZSksc2VbU2VdPW5ldyBBcnJheShvZSksZGU9MDtkZTxvZTtkZSsrKXNlW2tlXVtkZV09VGVbMyooMSsoMHxFZVswXVtkZV0pKSsoMSsoMHxFZVsxXVtkZV0pKV0sc2VbU2VdW2RlXT0wLEpba2VdPUll''@;'; + put 'put ''fWVsc2Ugc2Vba2VdPUUoV1trZV0scVtrZV0sdGhpcy5fYml0TGVuZ3RoKSxzZVtTZV09RShXW1NlXSxxW1NlXSx0aGlzLl9iaXRMZW5ndGgpLG9lPU1hdGgubWF4KHNlW2tlXS5sZW5ndGgsb2UpLG9lPU1hdGgubWF4KHNlW1NlXS5sZW5ndGgsb2UpfXZhciB6PXRoaXMuanBvaW50KG51bGws''@;'; + put 'put ''bnVsbCxudWxsKSxuZT10aGlzLl93bmFmVDQ7Zm9yKGNlPW9lO2NlPj0wO2NlLS0pe2Zvcih2YXIgdGU9MDtjZT49MDspe3ZhciB4PSEwO2ZvcihkZT0wO2RlPE47ZGUrKyluZVtkZV09MHxzZVtkZV1bY2VdLDAhPT1uZVtkZV0mJih4PSExKTtpZigheClicmVhazt0ZSsrLGNlLS19aWYoY2U+''@;'; + put 'put ''PTAmJnRlKyssej16LmRibHAodGUpLGNlPDApYnJlYWs7Zm9yKGRlPTA7ZGU8TjtkZSsrKXt2YXIgUD1uZVtkZV07MCE9PVAmJihQPjA/dmU9SltkZV1bUC0xPj4xXTpQPDAmJih2ZT1KW2RlXVstUC0xPj4xXS5uZWcoKSksej0iYWZmaW5lIj09PXZlLnR5cGU/ei5taXhlZEFkZCh2ZSk6ei5h''@;'; + put 'put ''ZGQodmUpKX19Zm9yKGNlPTA7Y2U8TjtjZSsrKUpbY2VdPW51bGw7cmV0dXJuIGVlP3o6ei50b1AoKX0sUS5CYXNlUG9pbnQ9WixaLnByb3RvdHlwZS5lcT1mdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcigiTm90IGltcGxlbWVudGVkIil9LFoucHJvdG90eXBlLnZhbGlkYXRlPWZ1bmN0aW9u''@;'; + put 'put ''KCl7cmV0dXJuIHRoaXMuY3VydmUudmFsaWRhdGUodGhpcyl9LFEucHJvdG90eXBlLmRlY29kZVBvaW50PWZ1bmN0aW9uKGFlLFkpe2FlPUIudG9BcnJheShhZSxZKTt2YXIgVz10aGlzLnAuYnl0ZUxlbmd0aCgpO2lmKCg0PT09YWVbMF18fDY9PT1hZVswXXx8Nz09PWFlWzBdKSYmYWUubGVu''@;'; + put 'put ''Z3RoLTE9PTIqVylyZXR1cm4gNj09PWFlWzBdP1UoYWVbYWUubGVuZ3RoLTFdJTI9PTApOjc9PT1hZVswXSYmVShhZVthZS5sZW5ndGgtMV0lMj09MSksdGhpcy5wb2ludChhZS5zbGljZSgxLDErVyksYWUuc2xpY2UoMStXLDErMipXKSk7aWYoKDI9PT1hZVswXXx8Mz09PWFlWzBdKSYmYWUu''@;'; + put 'put ''bGVuZ3RoLTE9PT1XKXJldHVybiB0aGlzLnBvaW50RnJvbVgoYWUuc2xpY2UoMSwxK1cpLDM9PT1hZVswXSk7dGhyb3cgbmV3IEVycm9yKCJVbmtub3duIHBvaW50IGZvcm1hdCIpfSxaLnByb3RvdHlwZS5lbmNvZGVDb21wcmVzc2VkPWZ1bmN0aW9uKGFlKXtyZXR1cm4gdGhpcy5lbmNvZGUo''@;'; + put 'put ''YWUsITApfSxaLnByb3RvdHlwZS5fZW5jb2RlPWZ1bmN0aW9uKGFlKXt2YXIgWT10aGlzLmN1cnZlLnAuYnl0ZUxlbmd0aCgpLFc9dGhpcy5nZXRYKCkudG9BcnJheSgiYmUiLFkpO3JldHVybiBhZT9bdGhpcy5nZXRZKCkuaXNFdmVuKCk/MjozXS5jb25jYXQoVyk6WzRdLmNvbmNhdChXLHRo''@;'; + put 'put ''aXMuZ2V0WSgpLnRvQXJyYXkoImJlIixZKSl9LFoucHJvdG90eXBlLmVuY29kZT1mdW5jdGlvbihhZSxZKXtyZXR1cm4gQi5lbmNvZGUodGhpcy5fZW5jb2RlKFkpLGFlKX0sWi5wcm90b3R5cGUucHJlY29tcHV0ZT1mdW5jdGlvbihhZSl7aWYodGhpcy5wcmVjb21wdXRlZClyZXR1cm4gdGhp''@;'; + put 'put ''czt2YXIgWT17ZG91YmxlczpudWxsLG5hZjpudWxsLGJldGE6bnVsbH07cmV0dXJuIFkubmFmPXRoaXMuX2dldE5BRlBvaW50cyg4KSxZLmRvdWJsZXM9dGhpcy5fZ2V0RG91Ymxlcyg0LGFlKSxZLmJldGE9dGhpcy5fZ2V0QmV0YSgpLHRoaXMucHJlY29tcHV0ZWQ9WSx0aGlzfSxaLnByb3Rv''@;'; + put 'put ''dHlwZS5faGFzRG91Ymxlcz1mdW5jdGlvbihhZSl7aWYoIXRoaXMucHJlY29tcHV0ZWQpcmV0dXJuITE7dmFyIFk9dGhpcy5wcmVjb21wdXRlZC5kb3VibGVzO3JldHVybiEhWSYmWS5wb2ludHMubGVuZ3RoPj1NYXRoLmNlaWwoKGFlLmJpdExlbmd0aCgpKzEpL1kuc3RlcCl9LFoucHJvdG90''@;'; + put 'put ''eXBlLl9nZXREb3VibGVzPWZ1bmN0aW9uKGFlLFkpe2lmKHRoaXMucHJlY29tcHV0ZWQmJnRoaXMucHJlY29tcHV0ZWQuZG91YmxlcylyZXR1cm4gdGhpcy5wcmVjb21wdXRlZC5kb3VibGVzO2Zvcih2YXIgVz1bdGhpc10sTj10aGlzLGVlPTA7ZWU8WTtlZSs9YWUpe2Zvcih2YXIgcT0wO3E8''@;'; + put 'put ''YWU7cSsrKU49Ti5kYmwoKTtXLnB1c2goTil9cmV0dXJue3N0ZXA6YWUscG9pbnRzOld9fSxaLnByb3RvdHlwZS5fZ2V0TkFGUG9pbnRzPWZ1bmN0aW9uKGFlKXtpZih0aGlzLnByZWNvbXB1dGVkJiZ0aGlzLnByZWNvbXB1dGVkLm5hZilyZXR1cm4gdGhpcy5wcmVjb21wdXRlZC5uYWY7Zm9y''@;'; + put 'put ''KHZhciBZPVt0aGlzXSxXPSgxPDxhZSktMSxOPTE9PT1XP251bGw6dGhpcy5kYmwoKSxlZT0xO2VlPFc7ZWUrKylZW2VlXT1ZW2VlLTFdLmFkZChOKTtyZXR1cm57d25kOmFlLHBvaW50czpZfX0sWi5wcm90b3R5cGUuX2dldEJldGE9ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbH0sWi5wcm90b3R5''@;'; + put 'put ''cGUuZGJscD1mdW5jdGlvbihhZSl7Zm9yKHZhciBZPXRoaXMsVz0wO1c8YWU7VysrKVk9WS5kYmwoKTtyZXR1cm4gWX19LDEzODM1OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCg2MTk3MCksQj1MKDE3NDMzKSxFPUwoODM4OTQpLE1lPUwoOTc5MDIpLFU9bWUuYXNzZXJ0O2Z1''@;'; + put 'put ''bmN0aW9uIFEoaWUpe3RoaXMudHdpc3RlZD0xIT0oMHxpZS5hKSx0aGlzLm1PbmVBPXRoaXMudHdpc3RlZCYmLTE9PSgwfGllLmEpLHRoaXMuZXh0ZW5kZWQ9dGhpcy5tT25lQSxNZS5jYWxsKHRoaXMsImVkd2FyZHMiLGllKSx0aGlzLmE9bmV3IEIoaWUuYSwxNikudW1vZCh0aGlzLnJlZC5t''@;'; + put 'put ''KSx0aGlzLmE9dGhpcy5hLnRvUmVkKHRoaXMucmVkKSx0aGlzLmM9bmV3IEIoaWUuYywxNikudG9SZWQodGhpcy5yZWQpLHRoaXMuYzI9dGhpcy5jLnJlZFNxcigpLHRoaXMuZD1uZXcgQihpZS5kLDE2KS50b1JlZCh0aGlzLnJlZCksdGhpcy5kZD10aGlzLmQucmVkQWRkKHRoaXMuZCksVSgh''@;'; + put 'put ''dGhpcy50d2lzdGVkfHwwPT09dGhpcy5jLmZyb21SZWQoKS5jbXBuKDEpKSx0aGlzLm9uZUM9MT09KDB8aWUuYyl9ZnVuY3Rpb24gWihpZSxhZSxZLFcsTil7TWUuQmFzZVBvaW50LmNhbGwodGhpcyxpZSwicHJvamVjdGl2ZSIpLG51bGw9PT1hZSYmbnVsbD09PVkmJm51bGw9PT1XPyh0aGlz''@;'; + put 'put ''Lng9dGhpcy5jdXJ2ZS56ZXJvLHRoaXMueT10aGlzLmN1cnZlLm9uZSx0aGlzLno9dGhpcy5jdXJ2ZS5vbmUsdGhpcy50PXRoaXMuY3VydmUuemVybyx0aGlzLnpPbmU9ITApOih0aGlzLng9bmV3IEIoYWUsMTYpLHRoaXMueT1uZXcgQihZLDE2KSx0aGlzLno9Vz9uZXcgQihXLDE2KTp0aGlz''@;'; + put 'put ''LmN1cnZlLm9uZSx0aGlzLnQ9TiYmbmV3IEIoTiwxNiksdGhpcy54LnJlZHx8KHRoaXMueD10aGlzLngudG9SZWQodGhpcy5jdXJ2ZS5yZWQpKSx0aGlzLnkucmVkfHwodGhpcy55PXRoaXMueS50b1JlZCh0aGlzLmN1cnZlLnJlZCkpLHRoaXMuei5yZWR8fCh0aGlzLno9dGhpcy56LnRvUmVk''@;'; + put 'put ''KHRoaXMuY3VydmUucmVkKSksdGhpcy50JiYhdGhpcy50LnJlZCYmKHRoaXMudD10aGlzLnQudG9SZWQodGhpcy5jdXJ2ZS5yZWQpKSx0aGlzLnpPbmU9dGhpcy56PT09dGhpcy5jdXJ2ZS5vbmUsdGhpcy5jdXJ2ZS5leHRlbmRlZCYmIXRoaXMudCYmKHRoaXMudD10aGlzLngucmVkTXVsKHRo''@;'; + put 'put ''aXMueSksdGhpcy56T25lfHwodGhpcy50PXRoaXMudC5yZWRNdWwodGhpcy56LnJlZEludm0oKSkpKSl9RShRLE1lKSxYZS5leHBvcnRzPVEsUS5wcm90b3R5cGUuX211bEE9ZnVuY3Rpb24oYWUpe3JldHVybiB0aGlzLm1PbmVBP2FlLnJlZE5lZygpOnRoaXMuYS5yZWRNdWwoYWUpfSxRLnBy''@;'; + put 'put ''b3RvdHlwZS5fbXVsQz1mdW5jdGlvbihhZSl7cmV0dXJuIHRoaXMub25lQz9hZTp0aGlzLmMucmVkTXVsKGFlKX0sUS5wcm90b3R5cGUuanBvaW50PWZ1bmN0aW9uKGFlLFksVyxOKXtyZXR1cm4gdGhpcy5wb2ludChhZSxZLFcsTil9LFEucHJvdG90eXBlLnBvaW50RnJvbVg9ZnVuY3Rpb24o''@;'; + put 'put ''YWUsWSl7KGFlPW5ldyBCKGFlLDE2KSkucmVkfHwoYWU9YWUudG9SZWQodGhpcy5yZWQpKTt2YXIgVz1hZS5yZWRTcXIoKSxOPXRoaXMuYzIucmVkU3ViKHRoaXMuYS5yZWRNdWwoVykpLGVlPXRoaXMub25lLnJlZFN1Yih0aGlzLmMyLnJlZE11bCh0aGlzLmQpLnJlZE11bChXKSkscT1OLnJl''@;'; + put 'put ''ZE11bChlZS5yZWRJbnZtKCkpLEo9cS5yZWRTcXJ0KCk7aWYoMCE9PUoucmVkU3FyKCkucmVkU3ViKHEpLmNtcCh0aGlzLnplcm8pKXRocm93IG5ldyBFcnJvcigiaW52YWxpZCBwb2ludCIpO3ZhciBzZT1KLmZyb21SZWQoKS5pc09kZCgpO3JldHVybihZJiYhc2V8fCFZJiZzZSkmJihKPUou''@;'; + put 'put ''cmVkTmVnKCkpLHRoaXMucG9pbnQoYWUsSil9LFEucHJvdG90eXBlLnBvaW50RnJvbVk9ZnVuY3Rpb24oYWUsWSl7KGFlPW5ldyBCKGFlLDE2KSkucmVkfHwoYWU9YWUudG9SZWQodGhpcy5yZWQpKTt2YXIgVz1hZS5yZWRTcXIoKSxOPVcucmVkU3ViKHRoaXMuYzIpLGVlPVcucmVkTXVsKHRo''@;'; + put 'put ''aXMuZCkucmVkTXVsKHRoaXMuYzIpLnJlZFN1Yih0aGlzLmEpLHE9Ti5yZWRNdWwoZWUucmVkSW52bSgpKTtpZigwPT09cS5jbXAodGhpcy56ZXJvKSl7aWYoWSl0aHJvdyBuZXcgRXJyb3IoImludmFsaWQgcG9pbnQiKTtyZXR1cm4gdGhpcy5wb2ludCh0aGlzLnplcm8sYWUpfXZhciBKPXEu''@;'; + put 'put ''cmVkU3FydCgpO2lmKDAhPT1KLnJlZFNxcigpLnJlZFN1YihxKS5jbXAodGhpcy56ZXJvKSl0aHJvdyBuZXcgRXJyb3IoImludmFsaWQgcG9pbnQiKTtyZXR1cm4gSi5mcm9tUmVkKCkuaXNPZGQoKSE9PVkmJihKPUoucmVkTmVnKCkpLHRoaXMucG9pbnQoSixhZSl9LFEucHJvdG90eXBlLnZh''@;'; + put 'put ''bGlkYXRlPWZ1bmN0aW9uKGFlKXtpZihhZS5pc0luZmluaXR5KCkpcmV0dXJuITA7YWUubm9ybWFsaXplKCk7dmFyIFk9YWUueC5yZWRTcXIoKSxXPWFlLnkucmVkU3FyKCksTj1ZLnJlZE11bCh0aGlzLmEpLnJlZEFkZChXKSxlZT10aGlzLmMyLnJlZE11bCh0aGlzLm9uZS5yZWRBZGQodGhp''@;'; + put 'put ''cy5kLnJlZE11bChZKS5yZWRNdWwoVykpKTtyZXR1cm4gMD09PU4uY21wKGVlKX0sRShaLE1lLkJhc2VQb2ludCksUS5wcm90b3R5cGUucG9pbnRGcm9tSlNPTj1mdW5jdGlvbihhZSl7cmV0dXJuIFouZnJvbUpTT04odGhpcyxhZSl9LFEucHJvdG90eXBlLnBvaW50PWZ1bmN0aW9uKGFlLFks''@;'; + put 'put ''VyxOKXtyZXR1cm4gbmV3IFoodGhpcyxhZSxZLFcsTil9LFouZnJvbUpTT049ZnVuY3Rpb24oYWUsWSl7cmV0dXJuIG5ldyBaKGFlLFlbMF0sWVsxXSxZWzJdKX0sWi5wcm90b3R5cGUuaW5zcGVjdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmlzSW5maW5pdHkoKT8iPEVDIFBvaW50IEluZmlu''@;'; + put 'put ''aXR5PiI6IjxFQyBQb2ludCB4OiAiK3RoaXMueC5mcm9tUmVkKCkudG9TdHJpbmcoMTYsMikrIiB5OiAiK3RoaXMueS5mcm9tUmVkKCkudG9TdHJpbmcoMTYsMikrIiB6OiAiK3RoaXMuei5mcm9tUmVkKCkudG9TdHJpbmcoMTYsMikrIj4ifSxaLnByb3RvdHlwZS5pc0luZmluaXR5PWZ1bmN0''@;'; + put 'put ''aW9uKCl7cmV0dXJuIDA9PT10aGlzLnguY21wbigwKSYmKDA9PT10aGlzLnkuY21wKHRoaXMueil8fHRoaXMuek9uZSYmMD09PXRoaXMueS5jbXAodGhpcy5jdXJ2ZS5jKSl9LFoucHJvdG90eXBlLl9leHREYmw9ZnVuY3Rpb24oKXt2YXIgYWU9dGhpcy54LnJlZFNxcigpLFk9dGhpcy55LnJl''@;'; + put 'put ''ZFNxcigpLFc9dGhpcy56LnJlZFNxcigpO1c9Vy5yZWRJQWRkKFcpO3ZhciBOPXRoaXMuY3VydmUuX211bEEoYWUpLGVlPXRoaXMueC5yZWRBZGQodGhpcy55KS5yZWRTcXIoKS5yZWRJU3ViKGFlKS5yZWRJU3ViKFkpLHE9Ti5yZWRBZGQoWSksSj1xLnJlZFN1YihXKSxzZT1OLnJlZFN1YihZ''@;'; + put 'put ''KSxvZT1lZS5yZWRNdWwoSiksY2U9cS5yZWRNdWwoc2UpLGRlPWVlLnJlZE11bChzZSksdmU9Si5yZWRNdWwocSk7cmV0dXJuIHRoaXMuY3VydmUucG9pbnQob2UsY2UsdmUsZGUpfSxaLnByb3RvdHlwZS5fcHJvakRibD1mdW5jdGlvbigpe3ZhciBOLGVlLHEsSixzZSxvZSxhZT10aGlzLngu''@;'; + put 'put ''cmVkQWRkKHRoaXMueSkucmVkU3FyKCksWT10aGlzLngucmVkU3FyKCksVz10aGlzLnkucmVkU3FyKCk7aWYodGhpcy5jdXJ2ZS50d2lzdGVkKXt2YXIgY2U9KEo9dGhpcy5jdXJ2ZS5fbXVsQShZKSkucmVkQWRkKFcpO3RoaXMuek9uZT8oTj1hZS5yZWRTdWIoWSkucmVkU3ViKFcpLnJlZE11''@;'; + put 'put ''bChjZS5yZWRTdWIodGhpcy5jdXJ2ZS50d28pKSxlZT1jZS5yZWRNdWwoSi5yZWRTdWIoVykpLHE9Y2UucmVkU3FyKCkucmVkU3ViKGNlKS5yZWRTdWIoY2UpKTooc2U9dGhpcy56LnJlZFNxcigpLG9lPWNlLnJlZFN1YihzZSkucmVkSVN1YihzZSksTj1hZS5yZWRTdWIoWSkucmVkSVN1YihX''@;'; + put 'put ''KS5yZWRNdWwob2UpLGVlPWNlLnJlZE11bChKLnJlZFN1YihXKSkscT1jZS5yZWRNdWwob2UpKX1lbHNlIEo9WS5yZWRBZGQoVyksc2U9dGhpcy5jdXJ2ZS5fbXVsQyh0aGlzLnopLnJlZFNxcigpLG9lPUoucmVkU3ViKHNlKS5yZWRTdWIoc2UpLE49dGhpcy5jdXJ2ZS5fbXVsQyhhZS5yZWRJ''@;'; + put 'put ''U3ViKEopKS5yZWRNdWwob2UpLGVlPXRoaXMuY3VydmUuX211bEMoSikucmVkTXVsKFkucmVkSVN1YihXKSkscT1KLnJlZE11bChvZSk7cmV0dXJuIHRoaXMuY3VydmUucG9pbnQoTixlZSxxKX0sWi5wcm90b3R5cGUuZGJsPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXNJbmZpbml0eSgpP3Ro''@;'; + put 'put ''aXM6dGhpcy5jdXJ2ZS5leHRlbmRlZD90aGlzLl9leHREYmwoKTp0aGlzLl9wcm9qRGJsKCl9LFoucHJvdG90eXBlLl9leHRBZGQ9ZnVuY3Rpb24oYWUpe3ZhciBZPXRoaXMueS5yZWRTdWIodGhpcy54KS5yZWRNdWwoYWUueS5yZWRTdWIoYWUueCkpLFc9dGhpcy55LnJlZEFkZCh0aGlzLngp''@;'; + put 'put ''LnJlZE11bChhZS55LnJlZEFkZChhZS54KSksTj10aGlzLnQucmVkTXVsKHRoaXMuY3VydmUuZGQpLnJlZE11bChhZS50KSxlZT10aGlzLnoucmVkTXVsKGFlLnoucmVkQWRkKGFlLnopKSxxPVcucmVkU3ViKFkpLEo9ZWUucmVkU3ViKE4pLHNlPWVlLnJlZEFkZChOKSxvZT1XLnJlZEFkZChZ''@;'; + put 'put ''KSxjZT1xLnJlZE11bChKKSxkZT1zZS5yZWRNdWwob2UpLHZlPXEucmVkTXVsKG9lKSxBZT1KLnJlZE11bChzZSk7cmV0dXJuIHRoaXMuY3VydmUucG9pbnQoY2UsZGUsQWUsdmUpfSxaLnByb3RvdHlwZS5fcHJvakFkZD1mdW5jdGlvbihhZSl7dmFyIGRlLHZlLFk9dGhpcy56LnJlZE11bChh''@;'; + put 'put ''ZS56KSxXPVkucmVkU3FyKCksTj10aGlzLngucmVkTXVsKGFlLngpLGVlPXRoaXMueS5yZWRNdWwoYWUueSkscT10aGlzLmN1cnZlLmQucmVkTXVsKE4pLnJlZE11bChlZSksSj1XLnJlZFN1YihxKSxzZT1XLnJlZEFkZChxKSxvZT10aGlzLngucmVkQWRkKHRoaXMueSkucmVkTXVsKGFlLngu''@;'; + put 'put ''cmVkQWRkKGFlLnkpKS5yZWRJU3ViKE4pLnJlZElTdWIoZWUpLGNlPVkucmVkTXVsKEopLnJlZE11bChvZSk7cmV0dXJuIHRoaXMuY3VydmUudHdpc3RlZD8oZGU9WS5yZWRNdWwoc2UpLnJlZE11bChlZS5yZWRTdWIodGhpcy5jdXJ2ZS5fbXVsQShOKSkpLHZlPUoucmVkTXVsKHNlKSk6KGRl''@;'; + put 'put ''PVkucmVkTXVsKHNlKS5yZWRNdWwoZWUucmVkU3ViKE4pKSx2ZT10aGlzLmN1cnZlLl9tdWxDKEopLnJlZE11bChzZSkpLHRoaXMuY3VydmUucG9pbnQoY2UsZGUsdmUpfSxaLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oYWUpe3JldHVybiB0aGlzLmlzSW5maW5pdHkoKT9hZTphZS5pc0luZmlu''@;'; + put 'put ''aXR5KCk/dGhpczp0aGlzLmN1cnZlLmV4dGVuZGVkP3RoaXMuX2V4dEFkZChhZSk6dGhpcy5fcHJvakFkZChhZSl9LFoucHJvdG90eXBlLm11bD1mdW5jdGlvbihhZSl7cmV0dXJuIHRoaXMuX2hhc0RvdWJsZXMoYWUpP3RoaXMuY3VydmUuX2ZpeGVkTmFmTXVsKHRoaXMsYWUpOnRoaXMuY3Vy''@;'; + put 'put ''dmUuX3duYWZNdWwodGhpcyxhZSl9LFoucHJvdG90eXBlLm11bEFkZD1mdW5jdGlvbihhZSxZLFcpe3JldHVybiB0aGlzLmN1cnZlLl93bmFmTXVsQWRkKDEsW3RoaXMsWV0sW2FlLFddLDIsITEpfSxaLnByb3RvdHlwZS5qbXVsQWRkPWZ1bmN0aW9uKGFlLFksVyl7cmV0dXJuIHRoaXMuY3Vy''@;'; + put 'put ''dmUuX3duYWZNdWxBZGQoMSxbdGhpcyxZXSxbYWUsV10sMiwhMCl9LFoucHJvdG90eXBlLm5vcm1hbGl6ZT1mdW5jdGlvbigpe2lmKHRoaXMuek9uZSlyZXR1cm4gdGhpczt2YXIgYWU9dGhpcy56LnJlZEludm0oKTtyZXR1cm4gdGhpcy54PXRoaXMueC5yZWRNdWwoYWUpLHRoaXMueT10aGlz''@;'; + put 'put ''LnkucmVkTXVsKGFlKSx0aGlzLnQmJih0aGlzLnQ9dGhpcy50LnJlZE11bChhZSkpLHRoaXMuej10aGlzLmN1cnZlLm9uZSx0aGlzLnpPbmU9ITAsdGhpc30sWi5wcm90b3R5cGUubmVnPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY3VydmUucG9pbnQodGhpcy54LnJlZE5lZygpLHRoaXMueSx0''@;'; + put 'put ''aGlzLnosdGhpcy50JiZ0aGlzLnQucmVkTmVnKCkpfSxaLnByb3RvdHlwZS5nZXRYPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubm9ybWFsaXplKCksdGhpcy54LmZyb21SZWQoKX0sWi5wcm90b3R5cGUuZ2V0WT1mdW5jdGlvbigpe3JldHVybiB0aGlzLm5vcm1hbGl6ZSgpLHRoaXMueS5mcm9t''@;'; + put 'put ''UmVkKCl9LFoucHJvdG90eXBlLmVxPWZ1bmN0aW9uKGFlKXtyZXR1cm4gdGhpcz09PWFlfHwwPT09dGhpcy5nZXRYKCkuY21wKGFlLmdldFgoKSkmJjA9PT10aGlzLmdldFkoKS5jbXAoYWUuZ2V0WSgpKX0sWi5wcm90b3R5cGUuZXFYVG9QPWZ1bmN0aW9uKGFlKXt2YXIgWT1hZS50b1JlZCh0''@;'; + put 'put ''aGlzLmN1cnZlLnJlZCkucmVkTXVsKHRoaXMueik7aWYoMD09PXRoaXMueC5jbXAoWSkpcmV0dXJuITA7Zm9yKHZhciBXPWFlLmNsb25lKCksTj10aGlzLmN1cnZlLnJlZE4ucmVkTXVsKHRoaXMueik7Oyl7aWYoVy5pYWRkKHRoaXMuY3VydmUubiksVy5jbXAodGhpcy5jdXJ2ZS5wKT49MCly''@;'; + put 'put ''ZXR1cm4hMTtpZihZLnJlZElBZGQoTiksMD09PXRoaXMueC5jbXAoWSkpcmV0dXJuITB9fSxaLnByb3RvdHlwZS50b1A9Wi5wcm90b3R5cGUubm9ybWFsaXplLFoucHJvdG90eXBlLm1peGVkQWRkPVoucHJvdG90eXBlLmFkZH0sNDYyNzA6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBt''@;'; + put 'put ''ZT1KZTttZS5iYXNlPUwoOTc5MDIpLG1lLnNob3J0PUwoNDE3ODEpLG1lLm1vbnQ9TCg5NzA2NCksbWUuZWR3YXJkcz1MKDEzODM1KX0sOTcwNjQ6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDE3NDMzKSxCPUwoODM4OTQpLEU9TCg5NzkwMiksTWU9TCg2MTk3MCk7ZnVuY3Rp''@;'; + put 'put ''b24gVShaKXtFLmNhbGwodGhpcywibW9udCIsWiksdGhpcy5hPW5ldyBtZShaLmEsMTYpLnRvUmVkKHRoaXMucmVkKSx0aGlzLmI9bmV3IG1lKFouYiwxNikudG9SZWQodGhpcy5yZWQpLHRoaXMuaTQ9bmV3IG1lKDQpLnRvUmVkKHRoaXMucmVkKS5yZWRJbnZtKCksdGhpcy50d289bmV3IG1l''@;'; + put 'put ''KDIpLnRvUmVkKHRoaXMucmVkKSx0aGlzLmEyND10aGlzLmk0LnJlZE11bCh0aGlzLmEucmVkQWRkKHRoaXMudHdvKSl9ZnVuY3Rpb24gUShaLGllLGFlKXtFLkJhc2VQb2ludC5jYWxsKHRoaXMsWiwicHJvamVjdGl2ZSIpLG51bGw9PT1pZSYmbnVsbD09PWFlPyh0aGlzLng9dGhpcy5jdXJ2''@;'; + put 'put ''ZS5vbmUsdGhpcy56PXRoaXMuY3VydmUuemVybyk6KHRoaXMueD1uZXcgbWUoaWUsMTYpLHRoaXMuej1uZXcgbWUoYWUsMTYpLHRoaXMueC5yZWR8fCh0aGlzLng9dGhpcy54LnRvUmVkKHRoaXMuY3VydmUucmVkKSksdGhpcy56LnJlZHx8KHRoaXMuej10aGlzLnoudG9SZWQodGhpcy5jdXJ2''@;'; + put 'put ''ZS5yZWQpKSl9QihVLEUpLFhlLmV4cG9ydHM9VSxVLnByb3RvdHlwZS52YWxpZGF0ZT1mdW5jdGlvbihpZSl7dmFyIGFlPWllLm5vcm1hbGl6ZSgpLngsWT1hZS5yZWRTcXIoKSxXPVkucmVkTXVsKGFlKS5yZWRBZGQoWS5yZWRNdWwodGhpcy5hKSkucmVkQWRkKGFlKTtyZXR1cm4gMD09PVcu''@;'; + put 'put ''cmVkU3FydCgpLnJlZFNxcigpLmNtcChXKX0sQihRLEUuQmFzZVBvaW50KSxVLnByb3RvdHlwZS5kZWNvZGVQb2ludD1mdW5jdGlvbihpZSxhZSl7cmV0dXJuIHRoaXMucG9pbnQoTWUudG9BcnJheShpZSxhZSksMSl9LFUucHJvdG90eXBlLnBvaW50PWZ1bmN0aW9uKGllLGFlKXtyZXR1cm4g''@;'; + put 'put ''bmV3IFEodGhpcyxpZSxhZSl9LFUucHJvdG90eXBlLnBvaW50RnJvbUpTT049ZnVuY3Rpb24oaWUpe3JldHVybiBRLmZyb21KU09OKHRoaXMsaWUpfSxRLnByb3RvdHlwZS5wcmVjb21wdXRlPWZ1bmN0aW9uKCl7fSxRLnByb3RvdHlwZS5fZW5jb2RlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMu''@;'; + put 'put ''Z2V0WCgpLnRvQXJyYXkoImJlIix0aGlzLmN1cnZlLnAuYnl0ZUxlbmd0aCgpKX0sUS5mcm9tSlNPTj1mdW5jdGlvbihpZSxhZSl7cmV0dXJuIG5ldyBRKGllLGFlWzBdLGFlWzFdfHxpZS5vbmUpfSxRLnByb3RvdHlwZS5pbnNwZWN0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXNJbmZpbml0''@;'; + put 'put ''eSgpPyI8RUMgUG9pbnQgSW5maW5pdHk+IjoiPEVDIFBvaW50IHg6ICIrdGhpcy54LmZyb21SZWQoKS50b1N0cmluZygxNiwyKSsiIHo6ICIrdGhpcy56LmZyb21SZWQoKS50b1N0cmluZygxNiwyKSsiPiJ9LFEucHJvdG90eXBlLmlzSW5maW5pdHk9ZnVuY3Rpb24oKXtyZXR1cm4gMD09PXRo''@;'; + put 'put ''aXMuei5jbXBuKDApfSxRLnByb3RvdHlwZS5kYmw9ZnVuY3Rpb24oKXt2YXIgYWU9dGhpcy54LnJlZEFkZCh0aGlzLnopLnJlZFNxcigpLFc9dGhpcy54LnJlZFN1Yih0aGlzLnopLnJlZFNxcigpLE49YWUucmVkU3ViKFcpLGVlPWFlLnJlZE11bChXKSxxPU4ucmVkTXVsKFcucmVkQWRkKHRo''@;'; + put 'put ''aXMuY3VydmUuYTI0LnJlZE11bChOKSkpO3JldHVybiB0aGlzLmN1cnZlLnBvaW50KGVlLHEpfSxRLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoIk5vdCBzdXBwb3J0ZWQgb24gTW9udGdvbWVyeSBjdXJ2ZSIpfSxRLnByb3RvdHlwZS5kaWZmQWRkPWZ1bmN0aW9u''@;'; + put 'put ''KGllLGFlKXt2YXIgWT10aGlzLngucmVkQWRkKHRoaXMueiksVz10aGlzLngucmVkU3ViKHRoaXMueiksTj1pZS54LnJlZEFkZChpZS56KSxxPWllLngucmVkU3ViKGllLnopLnJlZE11bChZKSxKPU4ucmVkTXVsKFcpLHNlPWFlLnoucmVkTXVsKHEucmVkQWRkKEopLnJlZFNxcigpKSxvZT1h''@;'; + put 'put ''ZS54LnJlZE11bChxLnJlZElTdWIoSikucmVkU3FyKCkpO3JldHVybiB0aGlzLmN1cnZlLnBvaW50KHNlLG9lKX0sUS5wcm90b3R5cGUubXVsPWZ1bmN0aW9uKGllKXtmb3IodmFyIGFlPWllLmNsb25lKCksWT10aGlzLFc9dGhpcy5jdXJ2ZS5wb2ludChudWxsLG51bGwpLGVlPVtdOzAhPT1h''@;'; + put 'put ''ZS5jbXBuKDApO2FlLml1c2hybigxKSllZS5wdXNoKGFlLmFuZGxuKDEpKTtmb3IodmFyIHE9ZWUubGVuZ3RoLTE7cT49MDtxLS0pMD09PWVlW3FdPyhZPVkuZGlmZkFkZChXLHRoaXMpLFc9Vy5kYmwoKSk6KFc9WS5kaWZmQWRkKFcsdGhpcyksWT1ZLmRibCgpKTtyZXR1cm4gV30sUS5wcm90''@;'; + put 'put ''b3R5cGUubXVsQWRkPWZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKCJOb3Qgc3VwcG9ydGVkIG9uIE1vbnRnb21lcnkgY3VydmUiKX0sUS5wcm90b3R5cGUuanVtbEFkZD1mdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcigiTm90IHN1cHBvcnRlZCBvbiBNb250Z29tZXJ5IGN1cnZlIil9LFEu''@;'; + put 'put ''cHJvdG90eXBlLmVxPWZ1bmN0aW9uKGllKXtyZXR1cm4gMD09PXRoaXMuZ2V0WCgpLmNtcChpZS5nZXRYKCkpfSxRLnByb3RvdHlwZS5ub3JtYWxpemU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy54PXRoaXMueC5yZWRNdWwodGhpcy56LnJlZEludm0oKSksdGhpcy56PXRoaXMuY3VydmUub25l''@;'; + put 'put ''LHRoaXN9LFEucHJvdG90eXBlLmdldFg9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ub3JtYWxpemUoKSx0aGlzLnguZnJvbVJlZCgpfX0sNDE3ODE6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDYxOTcwKSxCPUwoMTc0MzMpLEU9TCg4Mzg5NCksTWU9TCg5NzkwMiksVT1tZS5h''@;'; + put 'put ''c3NlcnQ7ZnVuY3Rpb24gUShhZSl7TWUuY2FsbCh0aGlzLCJzaG9ydCIsYWUpLHRoaXMuYT1uZXcgQihhZS5hLDE2KS50b1JlZCh0aGlzLnJlZCksdGhpcy5iPW5ldyBCKGFlLmIsMTYpLnRvUmVkKHRoaXMucmVkKSx0aGlzLnRpbnY9dGhpcy50d28ucmVkSW52bSgpLHRoaXMuemVyb0E9MD09''@;'; + put 'put ''PXRoaXMuYS5mcm9tUmVkKCkuY21wbigwKSx0aGlzLnRocmVlQT0wPT09dGhpcy5hLmZyb21SZWQoKS5zdWIodGhpcy5wKS5jbXBuKC0zKSx0aGlzLmVuZG89dGhpcy5fZ2V0RW5kb21vcnBoaXNtKGFlKSx0aGlzLl9lbmRvV25hZlQxPW5ldyBBcnJheSg0KSx0aGlzLl9lbmRvV25hZlQyPW5l''@;'; + put 'put ''dyBBcnJheSg0KX1mdW5jdGlvbiBaKGFlLFksVyxOKXtNZS5CYXNlUG9pbnQuY2FsbCh0aGlzLGFlLCJhZmZpbmUiKSxudWxsPT09WSYmbnVsbD09PVc/KHRoaXMueD1udWxsLHRoaXMueT1udWxsLHRoaXMuaW5mPSEwKToodGhpcy54PW5ldyBCKFksMTYpLHRoaXMueT1uZXcgQihXLDE2KSxO''@;'; + put 'put ''JiYodGhpcy54LmZvcmNlUmVkKHRoaXMuY3VydmUucmVkKSx0aGlzLnkuZm9yY2VSZWQodGhpcy5jdXJ2ZS5yZWQpKSx0aGlzLngucmVkfHwodGhpcy54PXRoaXMueC50b1JlZCh0aGlzLmN1cnZlLnJlZCkpLHRoaXMueS5yZWR8fCh0aGlzLnk9dGhpcy55LnRvUmVkKHRoaXMuY3VydmUucmVk''@;'; + put 'put ''KSksdGhpcy5pbmY9ITEpfWZ1bmN0aW9uIGllKGFlLFksVyxOKXtNZS5CYXNlUG9pbnQuY2FsbCh0aGlzLGFlLCJqYWNvYmlhbiIpLG51bGw9PT1ZJiZudWxsPT09VyYmbnVsbD09PU4/KHRoaXMueD10aGlzLmN1cnZlLm9uZSx0aGlzLnk9dGhpcy5jdXJ2ZS5vbmUsdGhpcy56PW5ldyBCKDAp''@;'; + put 'put ''KToodGhpcy54PW5ldyBCKFksMTYpLHRoaXMueT1uZXcgQihXLDE2KSx0aGlzLno9bmV3IEIoTiwxNikpLHRoaXMueC5yZWR8fCh0aGlzLng9dGhpcy54LnRvUmVkKHRoaXMuY3VydmUucmVkKSksdGhpcy55LnJlZHx8KHRoaXMueT10aGlzLnkudG9SZWQodGhpcy5jdXJ2ZS5yZWQpKSx0aGlz''@;'; + put 'put ''LnoucmVkfHwodGhpcy56PXRoaXMuei50b1JlZCh0aGlzLmN1cnZlLnJlZCkpLHRoaXMuek9uZT10aGlzLno9PT10aGlzLmN1cnZlLm9uZX1FKFEsTWUpLFhlLmV4cG9ydHM9USxRLnByb3RvdHlwZS5fZ2V0RW5kb21vcnBoaXNtPWZ1bmN0aW9uKFkpe2lmKHRoaXMuemVyb0EmJnRoaXMuZyYm''@;'; + put 'put ''dGhpcy5uJiYxPT09dGhpcy5wLm1vZG4oMykpe3ZhciBXLE47aWYoWS5iZXRhKVc9bmV3IEIoWS5iZXRhLDE2KS50b1JlZCh0aGlzLnJlZCk7ZWxzZXt2YXIgZWU9dGhpcy5fZ2V0RW5kb1Jvb3RzKHRoaXMucCk7Vz0oVz1lZVswXS5jbXAoZWVbMV0pPDA/ZWVbMF06ZWVbMV0pLnRvUmVkKHRo''@;'; + put 'put ''aXMucmVkKX1pZihZLmxhbWJkYSlOPW5ldyBCKFkubGFtYmRhLDE2KTtlbHNle3ZhciBxPXRoaXMuX2dldEVuZG9Sb290cyh0aGlzLm4pOzA9PT10aGlzLmcubXVsKHFbMF0pLnguY21wKHRoaXMuZy54LnJlZE11bChXKSk/Tj1xWzBdOlUoMD09PXRoaXMuZy5tdWwoTj1xWzFdKS54LmNtcCh0''@;'; + put 'put ''aGlzLmcueC5yZWRNdWwoVykpKX1yZXR1cm57YmV0YTpXLGxhbWJkYTpOLGJhc2lzOlkuYmFzaXM/WS5iYXNpcy5tYXAoZnVuY3Rpb24oc2Upe3JldHVybnthOm5ldyBCKHNlLmEsMTYpLGI6bmV3IEIoc2UuYiwxNil9fSk6dGhpcy5fZ2V0RW5kb0Jhc2lzKE4pfX19LFEucHJvdG90eXBlLl9n''@;'; + put 'put ''ZXRFbmRvUm9vdHM9ZnVuY3Rpb24oWSl7dmFyIFc9WT09PXRoaXMucD90aGlzLnJlZDpCLm1vbnQoWSksTj1uZXcgQigyKS50b1JlZChXKS5yZWRJbnZtKCksZWU9Ti5yZWROZWcoKSxxPW5ldyBCKDMpLnRvUmVkKFcpLnJlZE5lZygpLnJlZFNxcnQoKS5yZWRNdWwoTik7cmV0dXJuW2VlLnJl''@;'; + put 'put ''ZEFkZChxKS5mcm9tUmVkKCksZWUucmVkU3ViKHEpLmZyb21SZWQoKV19LFEucHJvdG90eXBlLl9nZXRFbmRvQmFzaXM9ZnVuY3Rpb24oWSl7Zm9yKHZhciBjZSxkZSx2ZSxBZSxrZSxTZSxJZSxFZSxoZSxXPXRoaXMubi51c2hybihNYXRoLmZsb29yKHRoaXMubi5iaXRMZW5ndGgoKS8yKSks''@;'; + put 'put ''Tj1ZLGVlPXRoaXMubi5jbG9uZSgpLHE9bmV3IEIoMSksSj1uZXcgQigwKSxzZT1uZXcgQigwKSxvZT1uZXcgQigxKSxUZT0wOzAhPT1OLmNtcG4oMCk7KXt2YXIgTz1lZS5kaXYoTik7RWU9ZWUuc3ViKE8ubXVsKE4pKSxoZT1zZS5zdWIoTy5tdWwocSkpO3ZhciB6PW9lLnN1YihPLm11bChK''@;'; + put 'put ''KSk7aWYoIXZlJiZFZS5jbXAoVyk8MCljZT1JZS5uZWcoKSxkZT1xLHZlPUVlLm5lZygpLEFlPWhlO2Vsc2UgaWYodmUmJjI9PSsrVGUpYnJlYWs7SWU9RWUsZWU9TixOPUVlLHNlPXEscT1oZSxvZT1KLEo9en1rZT1FZS5uZWcoKSxTZT1oZTt2YXIgbmU9dmUuc3FyKCkuYWRkKEFlLnNxcigp''@;'; + put 'put ''KTtyZXR1cm4ga2Uuc3FyKCkuYWRkKFNlLnNxcigpKS5jbXAobmUpPj0wJiYoa2U9Y2UsU2U9ZGUpLHZlLm5lZ2F0aXZlJiYodmU9dmUubmVnKCksQWU9QWUubmVnKCkpLGtlLm5lZ2F0aXZlJiYoa2U9a2UubmVnKCksU2U9U2UubmVnKCkpLFt7YTp2ZSxiOkFlfSx7YTprZSxiOlNlfV19LFEu''@;'; + put 'put ''cHJvdG90eXBlLl9lbmRvU3BsaXQ9ZnVuY3Rpb24oWSl7dmFyIFc9dGhpcy5lbmRvLmJhc2lzLE49V1swXSxlZT1XWzFdLHE9ZWUuYi5tdWwoWSkuZGl2Um91bmQodGhpcy5uKSxKPU4uYi5uZWcoKS5tdWwoWSkuZGl2Um91bmQodGhpcy5uKSxzZT1xLm11bChOLmEpLG9lPUoubXVsKGVlLmEp''@;'; + put 'put ''LGNlPXEubXVsKE4uYiksZGU9Si5tdWwoZWUuYik7cmV0dXJue2sxOlkuc3ViKHNlKS5zdWIob2UpLGsyOmNlLmFkZChkZSkubmVnKCl9fSxRLnByb3RvdHlwZS5wb2ludEZyb21YPWZ1bmN0aW9uKFksVyl7KFk9bmV3IEIoWSwxNikpLnJlZHx8KFk9WS50b1JlZCh0aGlzLnJlZCkpO3ZhciBO''@;'; + put 'put ''PVkucmVkU3FyKCkucmVkTXVsKFkpLnJlZElBZGQoWS5yZWRNdWwodGhpcy5hKSkucmVkSUFkZCh0aGlzLmIpLGVlPU4ucmVkU3FydCgpO2lmKDAhPT1lZS5yZWRTcXIoKS5yZWRTdWIoTikuY21wKHRoaXMuemVybykpdGhyb3cgbmV3IEVycm9yKCJpbnZhbGlkIHBvaW50Iik7dmFyIHE9ZWUu''@;'; + put 'put ''ZnJvbVJlZCgpLmlzT2RkKCk7cmV0dXJuKFcmJiFxfHwhVyYmcSkmJihlZT1lZS5yZWROZWcoKSksdGhpcy5wb2ludChZLGVlKX0sUS5wcm90b3R5cGUudmFsaWRhdGU9ZnVuY3Rpb24oWSl7aWYoWS5pbmYpcmV0dXJuITA7dmFyIFc9WS54LE49WS55LGVlPXRoaXMuYS5yZWRNdWwoVykscT1X''@;'; + put 'put ''LnJlZFNxcigpLnJlZE11bChXKS5yZWRJQWRkKGVlKS5yZWRJQWRkKHRoaXMuYik7cmV0dXJuIDA9PT1OLnJlZFNxcigpLnJlZElTdWIocSkuY21wbigwKX0sUS5wcm90b3R5cGUuX2VuZG9XbmFmTXVsQWRkPWZ1bmN0aW9uKFksVyxOKXtmb3IodmFyIGVlPXRoaXMuX2VuZG9XbmFmVDEscT10''@;'; + put 'put ''aGlzLl9lbmRvV25hZlQyLEo9MDtKPFkubGVuZ3RoO0orKyl7dmFyIHNlPXRoaXMuX2VuZG9TcGxpdChXW0pdKSxvZT1ZW0pdLGNlPW9lLl9nZXRCZXRhKCk7c2UuazEubmVnYXRpdmUmJihzZS5rMS5pbmVnKCksb2U9b2UubmVnKCEwKSksc2UuazIubmVnYXRpdmUmJihzZS5rMi5pbmVnKCks''@;'; + put 'put ''Y2U9Y2UubmVnKCEwKSksZWVbMipKXT1vZSxlZVsyKkorMV09Y2UscVsyKkpdPXNlLmsxLHFbMipKKzFdPXNlLmsyfWZvcih2YXIgZGU9dGhpcy5fd25hZk11bEFkZCgxLGVlLHEsMipKLE4pLHZlPTA7dmU8MipKO3ZlKyspZWVbdmVdPW51bGwscVt2ZV09bnVsbDtyZXR1cm4gZGV9LEUoWixN''@;'; + put 'put ''ZS5CYXNlUG9pbnQpLFEucHJvdG90eXBlLnBvaW50PWZ1bmN0aW9uKFksVyxOKXtyZXR1cm4gbmV3IFoodGhpcyxZLFcsTil9LFEucHJvdG90eXBlLnBvaW50RnJvbUpTT049ZnVuY3Rpb24oWSxXKXtyZXR1cm4gWi5mcm9tSlNPTih0aGlzLFksVyl9LFoucHJvdG90eXBlLl9nZXRCZXRhPWZ1''@;'; + put 'put ''bmN0aW9uKCl7aWYodGhpcy5jdXJ2ZS5lbmRvKXt2YXIgWT10aGlzLnByZWNvbXB1dGVkO2lmKFkmJlkuYmV0YSlyZXR1cm4gWS5iZXRhO3ZhciBXPXRoaXMuY3VydmUucG9pbnQodGhpcy54LnJlZE11bCh0aGlzLmN1cnZlLmVuZG8uYmV0YSksdGhpcy55KTtpZihZKXt2YXIgTj10aGlzLmN1''@;'; + put 'put ''cnZlLGVlPWZ1bmN0aW9uKHEpe3JldHVybiBOLnBvaW50KHEueC5yZWRNdWwoTi5lbmRvLmJldGEpLHEueSl9O1kuYmV0YT1XLFcucHJlY29tcHV0ZWQ9e2JldGE6bnVsbCxuYWY6WS5uYWYmJnt3bmQ6WS5uYWYud25kLHBvaW50czpZLm5hZi5wb2ludHMubWFwKGVlKX0sZG91YmxlczpZLmRv''@;'; + put 'put ''dWJsZXMmJntzdGVwOlkuZG91Ymxlcy5zdGVwLHBvaW50czpZLmRvdWJsZXMucG9pbnRzLm1hcChlZSl9fX1yZXR1cm4gV319LFoucHJvdG90eXBlLnRvSlNPTj1mdW5jdGlvbigpe3JldHVybiB0aGlzLnByZWNvbXB1dGVkP1t0aGlzLngsdGhpcy55LHRoaXMucHJlY29tcHV0ZWQmJntkb3Vi''@;'; + put 'put ''bGVzOnRoaXMucHJlY29tcHV0ZWQuZG91YmxlcyYme3N0ZXA6dGhpcy5wcmVjb21wdXRlZC5kb3VibGVzLnN0ZXAscG9pbnRzOnRoaXMucHJlY29tcHV0ZWQuZG91Ymxlcy5wb2ludHMuc2xpY2UoMSl9LG5hZjp0aGlzLnByZWNvbXB1dGVkLm5hZiYme3duZDp0aGlzLnByZWNvbXB1dGVkLm5h''@;'; + put 'put ''Zi53bmQscG9pbnRzOnRoaXMucHJlY29tcHV0ZWQubmFmLnBvaW50cy5zbGljZSgxKX19XTpbdGhpcy54LHRoaXMueV19LFouZnJvbUpTT049ZnVuY3Rpb24oWSxXLE4peyJzdHJpbmciPT10eXBlb2YgVyYmKFc9SlNPTi5wYXJzZShXKSk7dmFyIGVlPVkucG9pbnQoV1swXSxXWzFdLE4pO2lm''@;'; + put 'put ''KCFXWzJdKXJldHVybiBlZTtmdW5jdGlvbiBxKHNlKXtyZXR1cm4gWS5wb2ludChzZVswXSxzZVsxXSxOKX12YXIgSj1XWzJdO3JldHVybiBlZS5wcmVjb21wdXRlZD17YmV0YTpudWxsLGRvdWJsZXM6Si5kb3VibGVzJiZ7c3RlcDpKLmRvdWJsZXMuc3RlcCxwb2ludHM6W2VlXS5jb25jYXQo''@;'; + put 'put ''Si5kb3VibGVzLnBvaW50cy5tYXAocSkpfSxuYWY6Si5uYWYmJnt3bmQ6Si5uYWYud25kLHBvaW50czpbZWVdLmNvbmNhdChKLm5hZi5wb2ludHMubWFwKHEpKX19LGVlfSxaLnByb3RvdHlwZS5pbnNwZWN0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXNJbmZpbml0eSgpPyI8RUMgUG9pbnQg''@;'; + put 'put ''SW5maW5pdHk+IjoiPEVDIFBvaW50IHg6ICIrdGhpcy54LmZyb21SZWQoKS50b1N0cmluZygxNiwyKSsiIHk6ICIrdGhpcy55LmZyb21SZWQoKS50b1N0cmluZygxNiwyKSsiPiJ9LFoucHJvdG90eXBlLmlzSW5maW5pdHk9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pbmZ9LFoucHJvdG90eXBl''@;'; + put 'put ''LmFkZD1mdW5jdGlvbihZKXtpZih0aGlzLmluZilyZXR1cm4gWTtpZihZLmluZilyZXR1cm4gdGhpcztpZih0aGlzLmVxKFkpKXJldHVybiB0aGlzLmRibCgpO2lmKHRoaXMubmVnKCkuZXEoWSkpcmV0dXJuIHRoaXMuY3VydmUucG9pbnQobnVsbCxudWxsKTtpZigwPT09dGhpcy54LmNtcChZ''@;'; + put 'put ''LngpKXJldHVybiB0aGlzLmN1cnZlLnBvaW50KG51bGwsbnVsbCk7dmFyIFc9dGhpcy55LnJlZFN1YihZLnkpOzAhPT1XLmNtcG4oMCkmJihXPVcucmVkTXVsKHRoaXMueC5yZWRTdWIoWS54KS5yZWRJbnZtKCkpKTt2YXIgTj1XLnJlZFNxcigpLnJlZElTdWIodGhpcy54KS5yZWRJU3ViKFku''@;'; + put 'put ''eCksZWU9Vy5yZWRNdWwodGhpcy54LnJlZFN1YihOKSkucmVkSVN1Yih0aGlzLnkpO3JldHVybiB0aGlzLmN1cnZlLnBvaW50KE4sZWUpfSxaLnByb3RvdHlwZS5kYmw9ZnVuY3Rpb24oKXtpZih0aGlzLmluZilyZXR1cm4gdGhpczt2YXIgWT10aGlzLnkucmVkQWRkKHRoaXMueSk7aWYoMD09''@;'; + put 'put ''PVkuY21wbigwKSlyZXR1cm4gdGhpcy5jdXJ2ZS5wb2ludChudWxsLG51bGwpO3ZhciBXPXRoaXMuY3VydmUuYSxOPXRoaXMueC5yZWRTcXIoKSxlZT1ZLnJlZEludm0oKSxxPU4ucmVkQWRkKE4pLnJlZElBZGQoTikucmVkSUFkZChXKS5yZWRNdWwoZWUpLEo9cS5yZWRTcXIoKS5yZWRJU3Vi''@;'; + put 'put ''KHRoaXMueC5yZWRBZGQodGhpcy54KSksc2U9cS5yZWRNdWwodGhpcy54LnJlZFN1YihKKSkucmVkSVN1Yih0aGlzLnkpO3JldHVybiB0aGlzLmN1cnZlLnBvaW50KEosc2UpfSxaLnByb3RvdHlwZS5nZXRYPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueC5mcm9tUmVkKCl9LFoucHJvdG90eXBl''@;'; + put 'put ''LmdldFk9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy55LmZyb21SZWQoKX0sWi5wcm90b3R5cGUubXVsPWZ1bmN0aW9uKFkpe3JldHVybiBZPW5ldyBCKFksMTYpLHRoaXMuaXNJbmZpbml0eSgpP3RoaXM6dGhpcy5faGFzRG91YmxlcyhZKT90aGlzLmN1cnZlLl9maXhlZE5hZk11bCh0aGlzLFkp''@;'; + put 'put ''OnRoaXMuY3VydmUuZW5kbz90aGlzLmN1cnZlLl9lbmRvV25hZk11bEFkZChbdGhpc10sW1ldKTp0aGlzLmN1cnZlLl93bmFmTXVsKHRoaXMsWSl9LFoucHJvdG90eXBlLm11bEFkZD1mdW5jdGlvbihZLFcsTil7dmFyIGVlPVt0aGlzLFddLHE9W1ksTl07cmV0dXJuIHRoaXMuY3VydmUuZW5k''@;'; + put 'put ''bz90aGlzLmN1cnZlLl9lbmRvV25hZk11bEFkZChlZSxxKTp0aGlzLmN1cnZlLl93bmFmTXVsQWRkKDEsZWUscSwyKX0sWi5wcm90b3R5cGUuam11bEFkZD1mdW5jdGlvbihZLFcsTil7dmFyIGVlPVt0aGlzLFddLHE9W1ksTl07cmV0dXJuIHRoaXMuY3VydmUuZW5kbz90aGlzLmN1cnZlLl9l''@;'; + put 'put ''bmRvV25hZk11bEFkZChlZSxxLCEwKTp0aGlzLmN1cnZlLl93bmFmTXVsQWRkKDEsZWUscSwyLCEwKX0sWi5wcm90b3R5cGUuZXE9ZnVuY3Rpb24oWSl7cmV0dXJuIHRoaXM9PT1ZfHx0aGlzLmluZj09PVkuaW5mJiYodGhpcy5pbmZ8fDA9PT10aGlzLnguY21wKFkueCkmJjA9PT10aGlzLnku''@;'; + put 'put ''Y21wKFkueSkpfSxaLnByb3RvdHlwZS5uZWc9ZnVuY3Rpb24oWSl7aWYodGhpcy5pbmYpcmV0dXJuIHRoaXM7dmFyIFc9dGhpcy5jdXJ2ZS5wb2ludCh0aGlzLngsdGhpcy55LnJlZE5lZygpKTtpZihZJiZ0aGlzLnByZWNvbXB1dGVkKXt2YXIgTj10aGlzLnByZWNvbXB1dGVkLGVlPWZ1bmN0''@;'; + put 'put ''aW9uKHEpe3JldHVybiBxLm5lZygpfTtXLnByZWNvbXB1dGVkPXtuYWY6Ti5uYWYmJnt3bmQ6Ti5uYWYud25kLHBvaW50czpOLm5hZi5wb2ludHMubWFwKGVlKX0sZG91YmxlczpOLmRvdWJsZXMmJntzdGVwOk4uZG91Ymxlcy5zdGVwLHBvaW50czpOLmRvdWJsZXMucG9pbnRzLm1hcChlZSl9''@;'; + put 'put ''fX1yZXR1cm4gV30sWi5wcm90b3R5cGUudG9KPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW5mP3RoaXMuY3VydmUuanBvaW50KG51bGwsbnVsbCxudWxsKTp0aGlzLmN1cnZlLmpwb2ludCh0aGlzLngsdGhpcy55LHRoaXMuY3VydmUub25lKX0sRShpZSxNZS5CYXNlUG9pbnQpLFEucHJvdG90''@;'; + put 'put ''eXBlLmpwb2ludD1mdW5jdGlvbihZLFcsTil7cmV0dXJuIG5ldyBpZSh0aGlzLFksVyxOKX0saWUucHJvdG90eXBlLnRvUD1mdW5jdGlvbigpe2lmKHRoaXMuaXNJbmZpbml0eSgpKXJldHVybiB0aGlzLmN1cnZlLnBvaW50KG51bGwsbnVsbCk7dmFyIFk9dGhpcy56LnJlZEludm0oKSxXPVku''@;'; + put 'put ''cmVkU3FyKCksTj10aGlzLngucmVkTXVsKFcpLGVlPXRoaXMueS5yZWRNdWwoVykucmVkTXVsKFkpO3JldHVybiB0aGlzLmN1cnZlLnBvaW50KE4sZWUpfSxpZS5wcm90b3R5cGUubmVnPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY3VydmUuanBvaW50KHRoaXMueCx0aGlzLnkucmVkTmVnKCks''@;'; + put 'put ''dGhpcy56KX0saWUucHJvdG90eXBlLmFkZD1mdW5jdGlvbihZKXtpZih0aGlzLmlzSW5maW5pdHkoKSlyZXR1cm4gWTtpZihZLmlzSW5maW5pdHkoKSlyZXR1cm4gdGhpczt2YXIgVz1ZLnoucmVkU3FyKCksTj10aGlzLnoucmVkU3FyKCksZWU9dGhpcy54LnJlZE11bChXKSxxPVkueC5yZWRN''@;'; + put 'put ''dWwoTiksSj10aGlzLnkucmVkTXVsKFcucmVkTXVsKFkueikpLHNlPVkueS5yZWRNdWwoTi5yZWRNdWwodGhpcy56KSksb2U9ZWUucmVkU3ViKHEpLGNlPUoucmVkU3ViKHNlKTtpZigwPT09b2UuY21wbigwKSlyZXR1cm4gMCE9PWNlLmNtcG4oMCk/dGhpcy5jdXJ2ZS5qcG9pbnQobnVsbCxu''@;'; + put 'put ''dWxsLG51bGwpOnRoaXMuZGJsKCk7dmFyIGRlPW9lLnJlZFNxcigpLHZlPWRlLnJlZE11bChvZSksQWU9ZWUucmVkTXVsKGRlKSxrZT1jZS5yZWRTcXIoKS5yZWRJQWRkKHZlKS5yZWRJU3ViKEFlKS5yZWRJU3ViKEFlKSxTZT1jZS5yZWRNdWwoQWUucmVkSVN1YihrZSkpLnJlZElTdWIoSi5y''@;'; + put 'put ''ZWRNdWwodmUpKSxJZT10aGlzLnoucmVkTXVsKFkueikucmVkTXVsKG9lKTtyZXR1cm4gdGhpcy5jdXJ2ZS5qcG9pbnQoa2UsU2UsSWUpfSxpZS5wcm90b3R5cGUubWl4ZWRBZGQ9ZnVuY3Rpb24oWSl7aWYodGhpcy5pc0luZmluaXR5KCkpcmV0dXJuIFkudG9KKCk7aWYoWS5pc0luZmluaXR5''@;'; + put 'put ''KCkpcmV0dXJuIHRoaXM7dmFyIFc9dGhpcy56LnJlZFNxcigpLE49dGhpcy54LGVlPVkueC5yZWRNdWwoVykscT10aGlzLnksSj1ZLnkucmVkTXVsKFcpLnJlZE11bCh0aGlzLnopLHNlPU4ucmVkU3ViKGVlKSxvZT1xLnJlZFN1YihKKTtpZigwPT09c2UuY21wbigwKSlyZXR1cm4gMCE9PW9l''@;'; + put 'put ''LmNtcG4oMCk/dGhpcy5jdXJ2ZS5qcG9pbnQobnVsbCxudWxsLG51bGwpOnRoaXMuZGJsKCk7dmFyIGNlPXNlLnJlZFNxcigpLGRlPWNlLnJlZE11bChzZSksdmU9Ti5yZWRNdWwoY2UpLEFlPW9lLnJlZFNxcigpLnJlZElBZGQoZGUpLnJlZElTdWIodmUpLnJlZElTdWIodmUpLGtlPW9lLnJl''@;'; + put 'put ''ZE11bCh2ZS5yZWRJU3ViKEFlKSkucmVkSVN1YihxLnJlZE11bChkZSkpLFNlPXRoaXMuei5yZWRNdWwoc2UpO3JldHVybiB0aGlzLmN1cnZlLmpwb2ludChBZSxrZSxTZSl9LGllLnByb3RvdHlwZS5kYmxwPWZ1bmN0aW9uKFkpe2lmKDA9PT1ZKXJldHVybiB0aGlzO2lmKHRoaXMuaXNJbmZp''@;'; + put 'put ''bml0eSgpKXJldHVybiB0aGlzO2lmKCFZKXJldHVybiB0aGlzLmRibCgpO3ZhciBXO2lmKHRoaXMuY3VydmUuemVyb0F8fHRoaXMuY3VydmUudGhyZWVBKXt2YXIgTj10aGlzO2ZvcihXPTA7VzxZO1crKylOPU4uZGJsKCk7cmV0dXJuIE59dmFyIGVlPXRoaXMuY3VydmUuYSxxPXRoaXMuY3Vy''@;'; + put 'put ''dmUudGludixKPXRoaXMueCxzZT10aGlzLnksb2U9dGhpcy56LGNlPW9lLnJlZFNxcigpLnJlZFNxcigpLGRlPXNlLnJlZEFkZChzZSk7Zm9yKFc9MDtXPFk7VysrKXt2YXIgdmU9Si5yZWRTcXIoKSxBZT1kZS5yZWRTcXIoKSxrZT1BZS5yZWRTcXIoKSxTZT12ZS5yZWRBZGQodmUpLnJlZElB''@;'; + put 'put ''ZGQodmUpLnJlZElBZGQoZWUucmVkTXVsKGNlKSksSWU9Si5yZWRNdWwoQWUpLFRlPVNlLnJlZFNxcigpLnJlZElTdWIoSWUucmVkQWRkKEllKSksRWU9SWUucmVkSVN1YihUZSksaGU9U2UucmVkTXVsKEVlKTtoZT1oZS5yZWRJQWRkKGhlKS5yZWRJU3ViKGtlKTt2YXIgTz1kZS5yZWRNdWwo''@;'; + put 'put ''b2UpO1crMTxZJiYoY2U9Y2UucmVkTXVsKGtlKSksSj1UZSxvZT1PLGRlPWhlfXJldHVybiB0aGlzLmN1cnZlLmpwb2ludChKLGRlLnJlZE11bChxKSxvZSl9LGllLnByb3RvdHlwZS5kYmw9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pc0luZmluaXR5KCk/dGhpczp0aGlzLmN1cnZlLnplcm9B''@;'; + put 'put ''P3RoaXMuX3plcm9EYmwoKTp0aGlzLmN1cnZlLnRocmVlQT90aGlzLl90aHJlZURibCgpOnRoaXMuX2RibCgpfSxpZS5wcm90b3R5cGUuX3plcm9EYmw9ZnVuY3Rpb24oKXt2YXIgWSxXLE47aWYodGhpcy56T25lKXt2YXIgZWU9dGhpcy54LnJlZFNxcigpLHE9dGhpcy55LnJlZFNxcigpLEo9''@;'; + put 'put ''cS5yZWRTcXIoKSxzZT10aGlzLngucmVkQWRkKHEpLnJlZFNxcigpLnJlZElTdWIoZWUpLnJlZElTdWIoSik7c2U9c2UucmVkSUFkZChzZSk7dmFyIG9lPWVlLnJlZEFkZChlZSkucmVkSUFkZChlZSksY2U9b2UucmVkU3FyKCkucmVkSVN1YihzZSkucmVkSVN1YihzZSksZGU9Si5yZWRJQWRk''@;'; + put 'put ''KEopO2RlPShkZT1kZS5yZWRJQWRkKGRlKSkucmVkSUFkZChkZSksWT1jZSxXPW9lLnJlZE11bChzZS5yZWRJU3ViKGNlKSkucmVkSVN1YihkZSksTj10aGlzLnkucmVkQWRkKHRoaXMueSl9ZWxzZXt2YXIgdmU9dGhpcy54LnJlZFNxcigpLEFlPXRoaXMueS5yZWRTcXIoKSxrZT1BZS5yZWRT''@;'; + put 'put ''cXIoKSxTZT10aGlzLngucmVkQWRkKEFlKS5yZWRTcXIoKS5yZWRJU3ViKHZlKS5yZWRJU3ViKGtlKTtTZT1TZS5yZWRJQWRkKFNlKTt2YXIgSWU9dmUucmVkQWRkKHZlKS5yZWRJQWRkKHZlKSxUZT1JZS5yZWRTcXIoKSxFZT1rZS5yZWRJQWRkKGtlKTtFZT0oRWU9RWUucmVkSUFkZChFZSkp''@;'; + put 'put ''LnJlZElBZGQoRWUpLFk9VGUucmVkSVN1YihTZSkucmVkSVN1YihTZSksVz1JZS5yZWRNdWwoU2UucmVkSVN1YihZKSkucmVkSVN1YihFZSksTj0oTj10aGlzLnkucmVkTXVsKHRoaXMueikpLnJlZElBZGQoTil9cmV0dXJuIHRoaXMuY3VydmUuanBvaW50KFksVyxOKX0saWUucHJvdG90eXBl''@;'; + put 'put ''Ll90aHJlZURibD1mdW5jdGlvbigpe3ZhciBZLFcsTjtpZih0aGlzLnpPbmUpe3ZhciBlZT10aGlzLngucmVkU3FyKCkscT10aGlzLnkucmVkU3FyKCksSj1xLnJlZFNxcigpLHNlPXRoaXMueC5yZWRBZGQocSkucmVkU3FyKCkucmVkSVN1YihlZSkucmVkSVN1YihKKTtzZT1zZS5yZWRJQWRk''@;'; + put 'put ''KHNlKTt2YXIgb2U9ZWUucmVkQWRkKGVlKS5yZWRJQWRkKGVlKS5yZWRJQWRkKHRoaXMuY3VydmUuYSksY2U9b2UucmVkU3FyKCkucmVkSVN1YihzZSkucmVkSVN1YihzZSk7WT1jZTt2YXIgZGU9Si5yZWRJQWRkKEopO2RlPShkZT1kZS5yZWRJQWRkKGRlKSkucmVkSUFkZChkZSksVz1vZS5y''@;'; + put 'put ''ZWRNdWwoc2UucmVkSVN1YihjZSkpLnJlZElTdWIoZGUpLE49dGhpcy55LnJlZEFkZCh0aGlzLnkpfWVsc2V7dmFyIHZlPXRoaXMuei5yZWRTcXIoKSxBZT10aGlzLnkucmVkU3FyKCksa2U9dGhpcy54LnJlZE11bChBZSksU2U9dGhpcy54LnJlZFN1Yih2ZSkucmVkTXVsKHRoaXMueC5yZWRB''@;'; + put 'put ''ZGQodmUpKTtTZT1TZS5yZWRBZGQoU2UpLnJlZElBZGQoU2UpO3ZhciBJZT1rZS5yZWRJQWRkKGtlKSxUZT0oSWU9SWUucmVkSUFkZChJZSkpLnJlZEFkZChJZSk7WT1TZS5yZWRTcXIoKS5yZWRJU3ViKFRlKSxOPXRoaXMueS5yZWRBZGQodGhpcy56KS5yZWRTcXIoKS5yZWRJU3ViKEFlKS5y''@;'; + put 'put ''ZWRJU3ViKHZlKTt2YXIgRWU9QWUucmVkU3FyKCk7RWU9KEVlPShFZT1FZS5yZWRJQWRkKEVlKSkucmVkSUFkZChFZSkpLnJlZElBZGQoRWUpLFc9U2UucmVkTXVsKEllLnJlZElTdWIoWSkpLnJlZElTdWIoRWUpfXJldHVybiB0aGlzLmN1cnZlLmpwb2ludChZLFcsTil9LGllLnByb3RvdHlw''@;'; + put 'put ''ZS5fZGJsPWZ1bmN0aW9uKCl7dmFyIFk9dGhpcy5jdXJ2ZS5hLFc9dGhpcy54LE49dGhpcy55LGVlPXRoaXMueixxPWVlLnJlZFNxcigpLnJlZFNxcigpLEo9Vy5yZWRTcXIoKSxzZT1OLnJlZFNxcigpLG9lPUoucmVkQWRkKEopLnJlZElBZGQoSikucmVkSUFkZChZLnJlZE11bChxKSksY2U9''@;'; + put 'put ''Vy5yZWRBZGQoVyksZGU9KGNlPWNlLnJlZElBZGQoY2UpKS5yZWRNdWwoc2UpLHZlPW9lLnJlZFNxcigpLnJlZElTdWIoZGUucmVkQWRkKGRlKSksQWU9ZGUucmVkSVN1Yih2ZSksa2U9c2UucmVkU3FyKCk7a2U9KGtlPShrZT1rZS5yZWRJQWRkKGtlKSkucmVkSUFkZChrZSkpLnJlZElBZGQo''@;'; + put 'put ''a2UpO3ZhciBTZT1vZS5yZWRNdWwoQWUpLnJlZElTdWIoa2UpLEllPU4ucmVkQWRkKE4pLnJlZE11bChlZSk7cmV0dXJuIHRoaXMuY3VydmUuanBvaW50KHZlLFNlLEllKX0saWUucHJvdG90eXBlLnRycGw9ZnVuY3Rpb24oKXtpZighdGhpcy5jdXJ2ZS56ZXJvQSlyZXR1cm4gdGhpcy5kYmwo''@;'; + put 'put ''KS5hZGQodGhpcyk7dmFyIFk9dGhpcy54LnJlZFNxcigpLFc9dGhpcy55LnJlZFNxcigpLE49dGhpcy56LnJlZFNxcigpLGVlPVcucmVkU3FyKCkscT1ZLnJlZEFkZChZKS5yZWRJQWRkKFkpLEo9cS5yZWRTcXIoKSxzZT10aGlzLngucmVkQWRkKFcpLnJlZFNxcigpLnJlZElTdWIoWSkucmVk''@;'; + put 'put ''SVN1YihlZSksb2U9KHNlPShzZT0oc2U9c2UucmVkSUFkZChzZSkpLnJlZEFkZChzZSkucmVkSUFkZChzZSkpLnJlZElTdWIoSikpLnJlZFNxcigpLGNlPWVlLnJlZElBZGQoZWUpO2NlPShjZT0oY2U9Y2UucmVkSUFkZChjZSkpLnJlZElBZGQoY2UpKS5yZWRJQWRkKGNlKTt2YXIgZGU9cS5y''@;'; + put 'put ''ZWRJQWRkKHNlKS5yZWRTcXIoKS5yZWRJU3ViKEopLnJlZElTdWIob2UpLnJlZElTdWIoY2UpLHZlPVcucmVkTXVsKGRlKTt2ZT0odmU9dmUucmVkSUFkZCh2ZSkpLnJlZElBZGQodmUpO3ZhciBBZT10aGlzLngucmVkTXVsKG9lKS5yZWRJU3ViKHZlKTtBZT0oQWU9QWUucmVkSUFkZChBZSkp''@;'; + put 'put ''LnJlZElBZGQoQWUpO3ZhciBrZT10aGlzLnkucmVkTXVsKGRlLnJlZE11bChjZS5yZWRJU3ViKGRlKSkucmVkSVN1YihzZS5yZWRNdWwob2UpKSk7a2U9KGtlPShrZT1rZS5yZWRJQWRkKGtlKSkucmVkSUFkZChrZSkpLnJlZElBZGQoa2UpO3ZhciBTZT10aGlzLnoucmVkQWRkKHNlKS5yZWRT''@;'; + put 'put ''cXIoKS5yZWRJU3ViKE4pLnJlZElTdWIob2UpO3JldHVybiB0aGlzLmN1cnZlLmpwb2ludChBZSxrZSxTZSl9LGllLnByb3RvdHlwZS5tdWw9ZnVuY3Rpb24oWSxXKXtyZXR1cm4gWT1uZXcgQihZLFcpLHRoaXMuY3VydmUuX3duYWZNdWwodGhpcyxZKX0saWUucHJvdG90eXBlLmVxPWZ1bmN0''@;'; + put 'put ''aW9uKFkpe2lmKCJhZmZpbmUiPT09WS50eXBlKXJldHVybiB0aGlzLmVxKFkudG9KKCkpO2lmKHRoaXM9PT1ZKXJldHVybiEwO3ZhciBXPXRoaXMuei5yZWRTcXIoKSxOPVkuei5yZWRTcXIoKTtpZigwIT09dGhpcy54LnJlZE11bChOKS5yZWRJU3ViKFkueC5yZWRNdWwoVykpLmNtcG4oMCkp''@;'; + put 'put ''cmV0dXJuITE7dmFyIGVlPVcucmVkTXVsKHRoaXMueikscT1OLnJlZE11bChZLnopO3JldHVybiAwPT09dGhpcy55LnJlZE11bChxKS5yZWRJU3ViKFkueS5yZWRNdWwoZWUpKS5jbXBuKDApfSxpZS5wcm90b3R5cGUuZXFYVG9QPWZ1bmN0aW9uKFkpe3ZhciBXPXRoaXMuei5yZWRTcXIoKSxO''@;'; + put 'put ''PVkudG9SZWQodGhpcy5jdXJ2ZS5yZWQpLnJlZE11bChXKTtpZigwPT09dGhpcy54LmNtcChOKSlyZXR1cm4hMDtmb3IodmFyIGVlPVkuY2xvbmUoKSxxPXRoaXMuY3VydmUucmVkTi5yZWRNdWwoVyk7Oyl7aWYoZWUuaWFkZCh0aGlzLmN1cnZlLm4pLGVlLmNtcCh0aGlzLmN1cnZlLnApPj0w''@;'; + put 'put ''KXJldHVybiExO2lmKE4ucmVkSUFkZChxKSwwPT09dGhpcy54LmNtcChOKSlyZXR1cm4hMH19LGllLnByb3RvdHlwZS5pbnNwZWN0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXNJbmZpbml0eSgpPyI8RUMgSlBvaW50IEluZmluaXR5PiI6IjxFQyBKUG9pbnQgeDogIit0aGlzLngudG9TdHJp''@;'; + put 'put ''bmcoMTYsMikrIiB5OiAiK3RoaXMueS50b1N0cmluZygxNiwyKSsiIHo6ICIrdGhpcy56LnRvU3RyaW5nKDE2LDIpKyI+In0saWUucHJvdG90eXBlLmlzSW5maW5pdHk9ZnVuY3Rpb24oKXtyZXR1cm4gMD09PXRoaXMuei5jbXBuKDApfX0sNTI5MTY6KFhlLEplLEwpPT57InVzZSBzdHJpY3Qi''@;'; + put 'put ''O3ZhciBpZSxtZT1KZSxCPUwoMzcwODQpLEU9TCg0NjI3MCksVT1MKDYxOTcwKS5hc3NlcnQ7ZnVuY3Rpb24gUShhZSl7dGhpcy5jdXJ2ZT0ic2hvcnQiPT09YWUudHlwZT9uZXcgRS5zaG9ydChhZSk6ImVkd2FyZHMiPT09YWUudHlwZT9uZXcgRS5lZHdhcmRzKGFlKTpuZXcgRS5tb250KGFl''@;'; + put 'put ''KSx0aGlzLmc9dGhpcy5jdXJ2ZS5nLHRoaXMubj10aGlzLmN1cnZlLm4sdGhpcy5oYXNoPWFlLmhhc2gsVSh0aGlzLmcudmFsaWRhdGUoKSwiSW52YWxpZCBjdXJ2ZSIpLFUodGhpcy5nLm11bCh0aGlzLm4pLmlzSW5maW5pdHkoKSwiSW52YWxpZCBjdXJ2ZSwgRypOICE9IE8iKX1mdW5jdGlv''@;'; + put 'put ''biBaKGFlLFkpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShtZSxhZSx7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7dmFyIFc9bmV3IFEoWSk7cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShtZSxhZSx7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAs''@;'; + put 'put ''dmFsdWU6V30pLFd9fSl9bWUuUHJlc2V0Q3VydmU9USxaKCJwMTkyIix7dHlwZToic2hvcnQiLHByaW1lOiJwMTkyIixwOiJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZSBmZmZmZmZmZiBmZmZmZmZmZiIsYToiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUg''@;'; + put 'put ''ZmZmZmZmZmYgZmZmZmZmZmMiLGI6IjY0MjEwNTE5IGU1OWM4MGU3IDBmYTdlOWFiIDcyMjQzMDQ5IGZlYjhkZWVjIGMxNDZiOWIxIixuOiJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiA5OWRlZjgzNiAxNDZiYzliMSBiNGQyMjgzMSIsaGFzaDpCLnNoYTI1NixnUmVkOiExLGc6WyIxODhk''@;'; + put 'put ''YTgwZSBiMDMwOTBmNiA3Y2JmMjBlYiA0M2ExODgwMCBmNGZmMGFmZCA4MmZmMTAxMiIsIjA3MTkyYjk1IGZmYzhkYTc4IDYzMTAxMWVkIDZiMjRjZGQ1IDczZjk3N2ExIDFlNzk0ODExIl19KSxaKCJwMjI0Iix7dHlwZToic2hvcnQiLHByaW1lOiJwMjI0IixwOiJmZmZmZmZmZiBmZmZmZmZm''@;'; + put 'put ''ZiBmZmZmZmZmZiBmZmZmZmZmZiAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMSIsYToiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUiLGI6ImI0MDUwYTg1IDBjMDRiM2FiIGY1NDEzMjU2IDUwNDRiMGI3IGQ3YmZkOGJhIDI3''@;'; + put 'put ''MGIzOTQzIDIzNTVmZmI0IixuOiJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmMTZhMiBlMGI4ZjAzZSAxM2RkMjk0NSA1YzVjMmEzZCIsaGFzaDpCLnNoYTI1NixnUmVkOiExLGc6WyJiNzBlMGNiZCA2YmI0YmY3ZiAzMjEzOTBiOSA0YTAzYzFkMyA1NmMyMTEyMiAzNDMyODBkNiAx''@;'; + put 'put ''MTVjMWQyMSIsImJkMzc2Mzg4IGI1ZjcyM2ZiIDRjMjJkZmU2IGNkNDM3NWEwIDVhMDc0NzY0IDQ0ZDU4MTk5IDg1MDA3ZTM0Il19KSxaKCJwMjU2Iix7dHlwZToic2hvcnQiLHByaW1lOm51bGwscDoiZmZmZmZmZmYgMDAwMDAwMDEgMDAwMDAwMDAgMDAwMDAwMDAgMDAwMDAwMDAgZmZmZmZm''@;'; + put 'put ''ZmYgZmZmZmZmZmYgZmZmZmZmZmYiLGE6ImZmZmZmZmZmIDAwMDAwMDAxIDAwMDAwMDAwIDAwMDAwMDAwIDAwMDAwMDAwIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZjIixiOiI1YWM2MzVkOCBhYTNhOTNlNyBiM2ViYmQ1NSA3Njk4ODZiYyA2NTFkMDZiMCBjYzUzYjBmNiAzYmNlM2MzZSAy''@;'; + put 'put ''N2QyNjA0YiIsbjoiZmZmZmZmZmYgMDAwMDAwMDAgZmZmZmZmZmYgZmZmZmZmZmYgYmNlNmZhYWQgYTcxNzllODQgZjNiOWNhYzIgZmM2MzI1NTEiLGhhc2g6Qi5zaGEyNTYsZ1JlZDohMSxnOlsiNmIxN2QxZjIgZTEyYzQyNDcgZjhiY2U2ZTUgNjNhNDQwZjIgNzcwMzdkODEgMmRlYjMzYTAg''@;'; + put 'put ''ZjRhMTM5NDUgZDg5OGMyOTYiLCI0ZmUzNDJlMiBmZTFhN2Y5YiA4ZWU3ZWI0YSA3YzBmOWUxNiAyYmNlMzM1NyA2YjMxNWVjZSBjYmI2NDA2OCAzN2JmNTFmNSJdfSksWigicDM4NCIse3R5cGU6InNob3J0IixwcmltZTpudWxsLHA6ImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZm''@;'; + put 'put ''ZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZlIGZmZmZmZmZmIDAwMDAwMDAwIDAwMDAwMDAwIGZmZmZmZmZmIixhOiJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZSBmZmZmZmZmZiAwMDAw''@;'; + put 'put ''MDAwMCAwMDAwMDAwMCBmZmZmZmZmYyIsYjoiYjMzMTJmYTcgZTIzZWU3ZTQgOTg4ZTA1NmIgZTNmODJkMTkgMTgxZDljNmUgZmU4MTQxMTIgMDMxNDA4OGYgNTAxMzg3NWEgYzY1NjM5OGQgOGEyZWQxOWQgMmE4NWM4ZWQgZDNlYzJhZWYiLG46ImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZm''@;'; + put 'put ''IGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGM3NjM0ZDgxIGY0MzcyZGRmIDU4MWEwZGIyIDQ4YjBhNzdhIGVjZWMxOTZhIGNjYzUyOTczIixoYXNoOkIuc2hhMzg0LGdSZWQ6ITEsZzpbImFhODdjYTIyIGJlOGIwNTM3IDhlYjFjNzFlIGYzMjBhZDc0IDZlMWQzYjYyIDhiYTc5Yjk4IDU5''@;'; + put 'put ''Zjc0MWUwIDgyNTQyYTM4IDU1MDJmMjVkIGJmNTUyOTZjIDNhNTQ1ZTM4IDcyNzYwYWI3IiwiMzYxN2RlNGEgOTYyNjJjNmYgNWQ5ZTk4YmYgOTI5MmRjMjkgZjhmNDFkYmQgMjg5YTE0N2MgZTlkYTMxMTMgYjVmMGI4YzAgMGE2MGIxY2UgMWQ3ZTgxOWQgN2E0MzFkN2MgOTBlYTBlNWYiXX0p''@;'; + put 'put ''LFooInA1MjEiLHt0eXBlOiJzaG9ydCIscHJpbWU6bnVsbCxwOiIwMDAwMDFmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBm''@;'; + put 'put ''ZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiIsYToiMDAwMDAxZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYg''@;'; + put 'put ''ZmZmZmZmZmYgZmZmZmZmZmMiLGI6IjAwMDAwMDUxIDk1M2ViOTYxIDhlMWM5YTFmIDkyOWEyMWEwIGI2ODU0MGVlIGEyZGE3MjViIDk5YjMxNWYzIGI4YjQ4OTkxIDhlZjEwOWUxIDU2MTkzOTUxIGVjN2U5MzdiIDE2NTJjMGJkIDNiYjFiZjA3IDM1NzNkZjg4IDNkMmMzNGYxIGVmNDUxZmQ0''@;'; + put 'put ''IDZiNTAzZjAwIixuOiIwMDAwMDFmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmYSA1MTg2ODc4MyBiZjJmOTY2YiA3ZmNjMDE0OCBmNzA5YTVkMCAzYmI1YzliOCA4OTljNDdhZSBiYjZmYjcxZSA5MTM4NjQw''@;'; + put 'put ''OSIsaGFzaDpCLnNoYTUxMixnUmVkOiExLGc6WyIwMDAwMDBjNiA4NThlMDZiNyAwNDA0ZTljZCA5ZTNlY2I2NiAyMzk1YjQ0MiA5YzY0ODEzOSAwNTNmYjUyMSBmODI4YWY2MCA2YjRkM2RiYSBhMTRiNWU3NyBlZmU3NTkyOCBmZTFkYzEyNyBhMmZmYThkZSAzMzQ4YjNjMSA4NTZhNDI5YiBm''@;'; + put 'put ''OTdlN2UzMSBjMmU1YmQ2NiIsIjAwMDAwMTE4IDM5Mjk2YTc4IDlhM2JjMDA0IDVjOGE1ZmI0IDJjN2QxYmQ5IDk4ZjU0NDQ5IDU3OWI0NDY4IDE3YWZiZDE3IDI3M2U2NjJjIDk3ZWU3Mjk5IDVlZjQyNjQwIGM1NTBiOTAxIDNmYWQwNzYxIDM1M2M3MDg2IGEyNzJjMjQwIDg4YmU5NDc2IDlm''@;'; + put 'put ''ZDE2NjUwIl19KSxaKCJjdXJ2ZTI1NTE5Iix7dHlwZToibW9udCIscHJpbWU6InAyNTUxOSIscDoiN2ZmZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZlZCIsYToiNzZkMDYiLGI6IjEiLG46IjEwMDAwMDAwMDAwMDAwMDAgMDAw''@;'; + put 'put ''MDAwMDAwMDAwMDAwMCAxNGRlZjlkZWEyZjc5Y2Q2IDU4MTI2MzFhNWNmNWQzZWQiLGhhc2g6Qi5zaGEyNTYsZ1JlZDohMSxnOlsiOSJdfSksWigiZWQyNTUxOSIse3R5cGU6ImVkd2FyZHMiLHByaW1lOiJwMjU1MTkiLHA6IjdmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZmZiBmZmZm''@;'; + put 'put ''ZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZWQiLGE6Ii0xIixjOiIxIixkOiI1MjAzNmNlZTJiNmZmZTczIDhjYzc0MDc5Nzc3OWU4OTggMDA3MDBhNGQ0MTQxZDhhYiA3NWViNGRjYTEzNTk3OGEzIixuOiIxMDAwMDAwMDAwMDAwMDAwIDAwMDAwMDAwMDAwMDAwMDAgMTRkZWY5ZGVhMmY3''@;'; + put 'put ''OWNkNiA1ODEyNjMxYTVjZjVkM2VkIixoYXNoOkIuc2hhMjU2LGdSZWQ6ITEsZzpbIjIxNjkzNmQzY2Q2ZTUzZmVjMGE0ZTIzMWZkZDZkYzVjNjkyY2M3NjA5NTI1YTdiMmM5NTYyZDYwOGYyNWQ1MWEiLCI2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2''@;'; + put 'put ''NjY2NjY2NjY2NjY2NjU4Il19KTt0cnl7aWU9TCgyNTE1MCl9Y2F0Y2goYWUpe2llPXZvaWQgMH1aKCJzZWNwMjU2azEiLHt0eXBlOiJzaG9ydCIscHJpbWU6ImsyNTYiLHA6ImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZlIGZm''@;'; + put 'put ''ZmZmYzJmIixhOiIwIixiOiI3IixuOiJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZSBiYWFlZGNlNiBhZjQ4YTAzYiBiZmQyNWU4YyBkMDM2NDE0MSIsaDoiMSIsaGFzaDpCLnNoYTI1NixiZXRhOiI3YWU5NmEyYjY1N2MwNzEwNmU2NDQ3OWVhYzM0MzRlOTljZjA0OTc1MTJm''@;'; + put 'put ''NTg5OTVjMTM5NmMyODcxOTUwMWVlIixsYW1iZGE6IjUzNjNhZDRjYzA1YzMwZTBhNTI2MWMwMjg4MTI2NDVhMTIyZTIyZWEyMDgxNjY3OGRmMDI5NjdjMWIyM2JkNzIiLGJhc2lzOlt7YToiMzA4NmQyMjFhN2Q0NmJjZGU4NmM5MGU0OTI4NGViMTUiLGI6Ii1lNDQzN2VkNjAxMGU4ODI4NmY1''@;'; + put 'put ''NDdmYTkwYWJmZTRjMyJ9LHthOiIxMTRjYTUwZjdhOGUyZjNmNjU3YzExMDhkOWQ0NGNmZDgiLGI6IjMwODZkMjIxYTdkNDZiY2RlODZjOTBlNDkyODRlYjE1In1dLGdSZWQ6ITEsZzpbIjc5YmU2NjdlZjlkY2JiYWM1NWEwNjI5NWNlODcwYjA3MDI5YmZjZGIyZGNlMjhkOTU5ZjI4MTViMTZm''@;'; + put 'put ''ODE3OTgiLCI0ODNhZGE3NzI2YTNjNDY1NWRhNGZiZmMwZTExMDhhOGZkMTdiNDQ4YTY4NTU0MTk5YzQ3ZDA4ZmZiMTBkNGI4IixpZV19KX0sNjc2MjY6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDE3NDMzKSxCPUwoNTI0MzgpLEU9TCg2MTk3MCksTWU9TCg1MjkxNiksVT1M''@;'; + put 'put ''KDM3OTUwKSxRPUUuYXNzZXJ0LFo9TCg5MTI1OSksaWU9TCg2NTk1Nyk7ZnVuY3Rpb24gYWUoWSl7aWYoISh0aGlzIGluc3RhbmNlb2YgYWUpKXJldHVybiBuZXcgYWUoWSk7InN0cmluZyI9PXR5cGVvZiBZJiYoUShPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoTWUsWSks''@;'; + put 'put ''IlVua25vd24gY3VydmUgIitZKSxZPU1lW1ldKSxZIGluc3RhbmNlb2YgTWUuUHJlc2V0Q3VydmUmJihZPXtjdXJ2ZTpZfSksdGhpcy5jdXJ2ZT1ZLmN1cnZlLmN1cnZlLHRoaXMubj10aGlzLmN1cnZlLm4sdGhpcy5uaD10aGlzLm4udXNocm4oMSksdGhpcy5nPXRoaXMuY3VydmUuZyx0aGlz''@;'; + put 'put ''Lmc9WS5jdXJ2ZS5nLHRoaXMuZy5wcmVjb21wdXRlKFkuY3VydmUubi5iaXRMZW5ndGgoKSsxKSx0aGlzLmhhc2g9WS5oYXNofHxZLmN1cnZlLmhhc2h9WGUuZXhwb3J0cz1hZSxhZS5wcm90b3R5cGUua2V5UGFpcj1mdW5jdGlvbihXKXtyZXR1cm4gbmV3IFoodGhpcyxXKX0sYWUucHJvdG90''@;'; + put 'put ''eXBlLmtleUZyb21Qcml2YXRlPWZ1bmN0aW9uKFcsTil7cmV0dXJuIFouZnJvbVByaXZhdGUodGhpcyxXLE4pfSxhZS5wcm90b3R5cGUua2V5RnJvbVB1YmxpYz1mdW5jdGlvbihXLE4pe3JldHVybiBaLmZyb21QdWJsaWModGhpcyxXLE4pfSxhZS5wcm90b3R5cGUuZ2VuS2V5UGFpcj1mdW5j''@;'; + put 'put ''dGlvbihXKXtXfHwoVz17fSk7Zm9yKHZhciBOPW5ldyBCKHtoYXNoOnRoaXMuaGFzaCxwZXJzOlcucGVycyxwZXJzRW5jOlcucGVyc0VuY3x8InV0ZjgiLGVudHJvcHk6Vy5lbnRyb3B5fHxVKHRoaXMuaGFzaC5obWFjU3RyZW5ndGgpLGVudHJvcHlFbmM6Vy5lbnRyb3B5JiZXLmVudHJvcHlF''@;'; + put 'put ''bmN8fCJ1dGY4Iixub25jZTp0aGlzLm4udG9BcnJheSgpfSksZWU9dGhpcy5uLmJ5dGVMZW5ndGgoKSxxPXRoaXMubi5zdWIobmV3IG1lKDIpKTs7KXt2YXIgSj1uZXcgbWUoTi5nZW5lcmF0ZShlZSkpO2lmKCEoSi5jbXAocSk+MCkpcmV0dXJuIEouaWFkZG4oMSksdGhpcy5rZXlGcm9tUHJp''@;'; + put 'put ''dmF0ZShKKX19LGFlLnByb3RvdHlwZS5fdHJ1bmNhdGVUb049ZnVuY3Rpb24oVyxOKXt2YXIgZWU9OCpXLmJ5dGVMZW5ndGgoKS10aGlzLm4uYml0TGVuZ3RoKCk7cmV0dXJuIGVlPjAmJihXPVcudXNocm4oZWUpKSwhTiYmVy5jbXAodGhpcy5uKT49MD9XLnN1Yih0aGlzLm4pOld9LGFlLnBy''@;'; + put 'put ''b3RvdHlwZS5zaWduPWZ1bmN0aW9uKFcsTixlZSxxKXsib2JqZWN0Ij09dHlwZW9mIGVlJiYocT1lZSxlZT1udWxsKSxxfHwocT17fSksTj10aGlzLmtleUZyb21Qcml2YXRlKE4sZWUpLFc9dGhpcy5fdHJ1bmNhdGVUb04obmV3IG1lKFcsMTYpKTtmb3IodmFyIEo9dGhpcy5uLmJ5dGVMZW5n''@;'; + put 'put ''dGgoKSxzZT1OLmdldFByaXZhdGUoKS50b0FycmF5KCJiZSIsSiksb2U9Vy50b0FycmF5KCJiZSIsSiksY2U9bmV3IEIoe2hhc2g6dGhpcy5oYXNoLGVudHJvcHk6c2Usbm9uY2U6b2UscGVyczpxLnBlcnMscGVyc0VuYzpxLnBlcnNFbmN8fCJ1dGY4In0pLGRlPXRoaXMubi5zdWIobmV3IG1l''@;'; + put 'put ''KDEpKSx2ZT0wOzt2ZSsrKXt2YXIgQWU9cS5rP3Euayh2ZSk6bmV3IG1lKGNlLmdlbmVyYXRlKHRoaXMubi5ieXRlTGVuZ3RoKCkpKTtpZighKChBZT10aGlzLl90cnVuY2F0ZVRvTihBZSwhMCkpLmNtcG4oMSk8PTB8fEFlLmNtcChkZSk+PTApKXt2YXIga2U9dGhpcy5nLm11bChBZSk7aWYo''@;'; + put 'put ''IWtlLmlzSW5maW5pdHkoKSl7dmFyIFNlPWtlLmdldFgoKSxJZT1TZS51bW9kKHRoaXMubik7aWYoMCE9PUllLmNtcG4oMCkpe3ZhciBUZT1BZS5pbnZtKHRoaXMubikubXVsKEllLm11bChOLmdldFByaXZhdGUoKSkuaWFkZChXKSk7aWYoMCE9PShUZT1UZS51bW9kKHRoaXMubikpLmNtcG4o''@;'; + put 'put ''MCkpe3ZhciBFZT0oa2UuZ2V0WSgpLmlzT2RkKCk/MTowKXwoMCE9PVNlLmNtcChJZSk/MjowKTtyZXR1cm4gcS5jYW5vbmljYWwmJlRlLmNtcCh0aGlzLm5oKT4wJiYoVGU9dGhpcy5uLnN1YihUZSksRWVePTEpLG5ldyBpZSh7cjpJZSxzOlRlLHJlY292ZXJ5UGFyYW06RWV9KX19fX19fSxh''@;'; + put 'put ''ZS5wcm90b3R5cGUudmVyaWZ5PWZ1bmN0aW9uKFcsTixlZSxxKXtXPXRoaXMuX3RydW5jYXRlVG9OKG5ldyBtZShXLDE2KSksZWU9dGhpcy5rZXlGcm9tUHVibGljKGVlLHEpO3ZhciBKPShOPW5ldyBpZShOLCJoZXgiKSkucixzZT1OLnM7aWYoSi5jbXBuKDEpPDB8fEouY21wKHRoaXMubik+''@;'; + put 'put ''PTB8fHNlLmNtcG4oMSk8MHx8c2UuY21wKHRoaXMubik+PTApcmV0dXJuITE7dmFyIHZlLG9lPXNlLmludm0odGhpcy5uKSxjZT1vZS5tdWwoVykudW1vZCh0aGlzLm4pLGRlPW9lLm11bChKKS51bW9kKHRoaXMubik7cmV0dXJuIHRoaXMuY3VydmUuX21heHdlbGxUcmljaz8hKHZlPXRoaXMu''@;'; + put 'put ''Zy5qbXVsQWRkKGNlLGVlLmdldFB1YmxpYygpLGRlKSkuaXNJbmZpbml0eSgpJiZ2ZS5lcVhUb1AoSik6ISh2ZT10aGlzLmcubXVsQWRkKGNlLGVlLmdldFB1YmxpYygpLGRlKSkuaXNJbmZpbml0eSgpJiYwPT09dmUuZ2V0WCgpLnVtb2QodGhpcy5uKS5jbXAoSil9LGFlLnByb3RvdHlwZS5y''@;'; + put 'put ''ZWNvdmVyUHViS2V5PWZ1bmN0aW9uKFksVyxOLGVlKXtRKCgzJk4pPT09TiwiVGhlIHJlY292ZXJ5IHBhcmFtIGlzIG1vcmUgdGhhbiB0d28gYml0cyIpLFc9bmV3IGllKFcsZWUpO3ZhciBxPXRoaXMubixKPW5ldyBtZShZKSxzZT1XLnIsb2U9Vy5zLGNlPTEmTixkZT1OPj4xO2lmKHNlLmNt''@;'; + put 'put ''cCh0aGlzLmN1cnZlLnAudW1vZCh0aGlzLmN1cnZlLm4pKT49MCYmZGUpdGhyb3cgbmV3IEVycm9yKCJVbmFibGUgdG8gZmluZCBzZW5jb25kIGtleSBjYW5kaW5hdGUiKTtzZT10aGlzLmN1cnZlLnBvaW50RnJvbVgoZGU/c2UuYWRkKHRoaXMuY3VydmUubik6c2UsY2UpO3ZhciB2ZT1XLnIu''@;'; + put 'put ''aW52bShxKSxBZT1xLnN1YihKKS5tdWwodmUpLnVtb2QocSksa2U9b2UubXVsKHZlKS51bW9kKHEpO3JldHVybiB0aGlzLmcubXVsQWRkKEFlLHNlLGtlKX0sYWUucHJvdG90eXBlLmdldEtleVJlY292ZXJ5UGFyYW09ZnVuY3Rpb24oWSxXLE4sZWUpe2lmKG51bGwhPT0oVz1uZXcgaWUoVyxl''@;'; + put 'put ''ZSkpLnJlY292ZXJ5UGFyYW0pcmV0dXJuIFcucmVjb3ZlcnlQYXJhbTtmb3IodmFyIHE9MDtxPDQ7cSsrKXt2YXIgSjt0cnl7Sj10aGlzLnJlY292ZXJQdWJLZXkoWSxXLHEpfWNhdGNoKHNlKXtjb250aW51ZX1pZihKLmVxKE4pKXJldHVybiBxfXRocm93IG5ldyBFcnJvcigiVW5hYmxlIHRv''@;'; + put 'put ''IGZpbmQgdmFsaWQgcmVjb3ZlcnkgZmFjdG9yIil9fSw5MTI1OTooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoMTc0MzMpLEU9TCg2MTk3MCkuYXNzZXJ0O2Z1bmN0aW9uIE1lKFUsUSl7dGhpcy5lYz1VLHRoaXMucHJpdj1udWxsLHRoaXMucHViPW51bGwsUS5wcml2JiZ0aGlz''@;'; + put 'put ''Ll9pbXBvcnRQcml2YXRlKFEucHJpdixRLnByaXZFbmMpLFEucHViJiZ0aGlzLl9pbXBvcnRQdWJsaWMoUS5wdWIsUS5wdWJFbmMpfVhlLmV4cG9ydHM9TWUsTWUuZnJvbVB1YmxpYz1mdW5jdGlvbihRLFosaWUpe3JldHVybiBaIGluc3RhbmNlb2YgTWU/WjpuZXcgTWUoUSx7cHViOloscHVi''@;'; + put 'put ''RW5jOmllfSl9LE1lLmZyb21Qcml2YXRlPWZ1bmN0aW9uKFEsWixpZSl7cmV0dXJuIFogaW5zdGFuY2VvZiBNZT9aOm5ldyBNZShRLHtwcml2OloscHJpdkVuYzppZX0pfSxNZS5wcm90b3R5cGUudmFsaWRhdGU9ZnVuY3Rpb24oKXt2YXIgUT10aGlzLmdldFB1YmxpYygpO3JldHVybiBRLmlz''@;'; + put 'put ''SW5maW5pdHkoKT97cmVzdWx0OiExLHJlYXNvbjoiSW52YWxpZCBwdWJsaWMga2V5In06US52YWxpZGF0ZSgpP1EubXVsKHRoaXMuZWMuY3VydmUubikuaXNJbmZpbml0eSgpP3tyZXN1bHQ6ITAscmVhc29uOm51bGx9OntyZXN1bHQ6ITEscmVhc29uOiJQdWJsaWMga2V5ICogTiAhPSBPIn06''@;'; + put 'put ''e3Jlc3VsdDohMSxyZWFzb246IlB1YmxpYyBrZXkgaXMgbm90IGEgcG9pbnQifX0sTWUucHJvdG90eXBlLmdldFB1YmxpYz1mdW5jdGlvbihRLFope3JldHVybiJzdHJpbmciPT10eXBlb2YgUSYmKFo9USxRPW51bGwpLHRoaXMucHVifHwodGhpcy5wdWI9dGhpcy5lYy5nLm11bCh0aGlzLnBy''@;'; + put 'put ''aXYpKSxaP3RoaXMucHViLmVuY29kZShaLFEpOnRoaXMucHVifSxNZS5wcm90b3R5cGUuZ2V0UHJpdmF0ZT1mdW5jdGlvbihRKXtyZXR1cm4iaGV4Ij09PVE/dGhpcy5wcml2LnRvU3RyaW5nKDE2LDIpOnRoaXMucHJpdn0sTWUucHJvdG90eXBlLl9pbXBvcnRQcml2YXRlPWZ1bmN0aW9uKFEs''@;'; + put 'put ''Wil7dGhpcy5wcml2PW5ldyBtZShRLFp8fDE2KSx0aGlzLnByaXY9dGhpcy5wcml2LnVtb2QodGhpcy5lYy5jdXJ2ZS5uKX0sTWUucHJvdG90eXBlLl9pbXBvcnRQdWJsaWM9ZnVuY3Rpb24oUSxaKXtpZihRLnh8fFEueSlyZXR1cm4ibW9udCI9PT10aGlzLmVjLmN1cnZlLnR5cGU/RShRLngs''@;'; + put 'put ''Ik5lZWQgeCBjb29yZGluYXRlIik6KCJzaG9ydCI9PT10aGlzLmVjLmN1cnZlLnR5cGV8fCJlZHdhcmRzIj09PXRoaXMuZWMuY3VydmUudHlwZSkmJkUoUS54JiZRLnksIk5lZWQgYm90aCB4IGFuZCB5IGNvb3JkaW5hdGUiKSx2b2lkKHRoaXMucHViPXRoaXMuZWMuY3VydmUucG9pbnQoUS54''@;'; + put 'put ''LFEueSkpO3RoaXMucHViPXRoaXMuZWMuY3VydmUuZGVjb2RlUG9pbnQoUSxaKX0sTWUucHJvdG90eXBlLmRlcml2ZT1mdW5jdGlvbihRKXtyZXR1cm4gUS52YWxpZGF0ZSgpfHxFKFEudmFsaWRhdGUoKSwicHVibGljIHBvaW50IG5vdCB2YWxpZGF0ZWQiKSxRLm11bCh0aGlzLnByaXYpLmdl''@;'; + put 'put ''dFgoKX0sTWUucHJvdG90eXBlLnNpZ249ZnVuY3Rpb24oUSxaLGllKXtyZXR1cm4gdGhpcy5lYy5zaWduKFEsdGhpcyxaLGllKX0sTWUucHJvdG90eXBlLnZlcmlmeT1mdW5jdGlvbihRLFope3JldHVybiB0aGlzLmVjLnZlcmlmeShRLFosdGhpcyl9LE1lLnByb3RvdHlwZS5pbnNwZWN0PWZ1''@;'; + put 'put ''bmN0aW9uKCl7cmV0dXJuIjxLZXkgcHJpdjogIisodGhpcy5wcml2JiZ0aGlzLnByaXYudG9TdHJpbmcoMTYsMikpKyIgcHViOiAiKyh0aGlzLnB1YiYmdGhpcy5wdWIuaW5zcGVjdCgpKSsiID4ifX0sNjU5NTc6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDE3NDMzKSxCPUwo''@;'; + put 'put ''NjE5NzApLEU9Qi5hc3NlcnQ7ZnVuY3Rpb24gTWUoYWUsWSl7aWYoYWUgaW5zdGFuY2VvZiBNZSlyZXR1cm4gYWU7dGhpcy5faW1wb3J0REVSKGFlLFkpfHwoRShhZS5yJiZhZS5zLCJTaWduYXR1cmUgd2l0aG91dCByIG9yIHMiKSx0aGlzLnI9bmV3IG1lKGFlLnIsMTYpLHRoaXMucz1uZXcg''@;'; + put 'put ''bWUoYWUucywxNiksdGhpcy5yZWNvdmVyeVBhcmFtPXZvaWQgMD09PWFlLnJlY292ZXJ5UGFyYW0/bnVsbDphZS5yZWNvdmVyeVBhcmFtKX1mdW5jdGlvbiBVKCl7dGhpcy5wbGFjZT0wfWZ1bmN0aW9uIFEoYWUsWSl7dmFyIFc9YWVbWS5wbGFjZSsrXTtpZighKDEyOCZXKSlyZXR1cm4gVzt2''@;'; + put 'put ''YXIgTj0xNSZXO2lmKDA9PT1OfHxOPjQpcmV0dXJuITE7Zm9yKHZhciBlZT0wLHE9MCxKPVkucGxhY2U7cTxOO3ErKyxKKyspZWU8PD04LGVlfD1hZVtKXSxlZT4+Pj0wO3JldHVybiEoZWU8PTEyNykmJihZLnBsYWNlPUosZWUpfWZ1bmN0aW9uIFooYWUpe2Zvcih2YXIgWT0wLFc9YWUubGVu''@;'; + put 'put ''Z3RoLTE7IWFlW1ldJiYhKDEyOCZhZVtZKzFdKSYmWTxXOylZKys7cmV0dXJuIDA9PT1ZP2FlOmFlLnNsaWNlKFkpfWZ1bmN0aW9uIGllKGFlLFkpe2lmKFk8MTI4KWFlLnB1c2goWSk7ZWxzZXt2YXIgVz0xKyhNYXRoLmxvZyhZKS9NYXRoLkxOMj4+PjMpO2ZvcihhZS5wdXNoKDEyOHxXKTst''@;'; + put 'put ''LVc7KWFlLnB1c2goWT4+PihXPDwzKSYyNTUpO2FlLnB1c2goWSl9fVhlLmV4cG9ydHM9TWUsTWUucHJvdG90eXBlLl9pbXBvcnRERVI9ZnVuY3Rpb24oWSxXKXtZPUIudG9BcnJheShZLFcpO3ZhciBOPW5ldyBVO2lmKDQ4IT09WVtOLnBsYWNlKytdKXJldHVybiExO3ZhciBlZT1RKFksTik7''@;'; + put 'put ''aWYoITE9PT1lZXx8ZWUrTi5wbGFjZSE9PVkubGVuZ3RofHwyIT09WVtOLnBsYWNlKytdKXJldHVybiExO3ZhciBxPVEoWSxOKTtpZighMT09PXEpcmV0dXJuITE7dmFyIEo9WS5zbGljZShOLnBsYWNlLHErTi5wbGFjZSk7aWYoTi5wbGFjZSs9cSwyIT09WVtOLnBsYWNlKytdKXJldHVybiEx''@;'; + put 'put ''O3ZhciBzZT1RKFksTik7aWYoITE9PT1zZXx8WS5sZW5ndGghPT1zZStOLnBsYWNlKXJldHVybiExO3ZhciBvZT1ZLnNsaWNlKE4ucGxhY2Usc2UrTi5wbGFjZSk7aWYoMD09PUpbMF0pe2lmKCEoMTI4JkpbMV0pKXJldHVybiExO0o9Si5zbGljZSgxKX1pZigwPT09b2VbMF0pe2lmKCEoMTI4''@;'; + put 'put ''Jm9lWzFdKSlyZXR1cm4hMTtvZT1vZS5zbGljZSgxKX1yZXR1cm4gdGhpcy5yPW5ldyBtZShKKSx0aGlzLnM9bmV3IG1lKG9lKSx0aGlzLnJlY292ZXJ5UGFyYW09bnVsbCwhMH0sTWUucHJvdG90eXBlLnRvREVSPWZ1bmN0aW9uKFkpe3ZhciBXPXRoaXMuci50b0FycmF5KCksTj10aGlzLnMu''@;'; + put 'put ''dG9BcnJheSgpO2ZvcigxMjgmV1swXSYmKFc9WzBdLmNvbmNhdChXKSksMTI4Jk5bMF0mJihOPVswXS5jb25jYXQoTikpLFc9WihXKSxOPVooTik7IShOWzBdfHwxMjgmTlsxXSk7KU49Ti5zbGljZSgxKTt2YXIgZWU9WzJdO2llKGVlLFcubGVuZ3RoKSwoZWU9ZWUuY29uY2F0KFcpKS5wdXNo''@;'; + put 'put ''KDIpLGllKGVlLE4ubGVuZ3RoKTt2YXIgcT1lZS5jb25jYXQoTiksSj1bNDhdO3JldHVybiBpZShKLHEubGVuZ3RoKSxKPUouY29uY2F0KHEpLEIuZW5jb2RlKEosWSl9fSw4MTg4NTooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoMzcwODQpLEI9TCg1MjkxNiksRT1MKDYxOTcw''@;'; + put 'put ''KSxNZT1FLmFzc2VydCxVPUUucGFyc2VCeXRlcyxRPUwoOTc1MzUpLFo9TCg4ODI0MSk7ZnVuY3Rpb24gaWUoYWUpe2lmKE1lKCJlZDI1NTE5Ij09PWFlLCJvbmx5IHRlc3RlZCB3aXRoIGVkMjU1MTkgc28gZmFyIiksISh0aGlzIGluc3RhbmNlb2YgaWUpKXJldHVybiBuZXcgaWUoYWUpO3Ro''@;'; + put 'put ''aXMuY3VydmU9YWU9QlthZV0uY3VydmUsdGhpcy5nPWFlLmcsdGhpcy5nLnByZWNvbXB1dGUoYWUubi5iaXRMZW5ndGgoKSsxKSx0aGlzLnBvaW50Q2xhc3M9YWUucG9pbnQoKS5jb25zdHJ1Y3Rvcix0aGlzLmVuY29kaW5nTGVuZ3RoPU1hdGguY2VpbChhZS5uLmJpdExlbmd0aCgpLzgpLHRo''@;'; + put 'put ''aXMuaGFzaD1tZS5zaGE1MTJ9WGUuZXhwb3J0cz1pZSxpZS5wcm90b3R5cGUuc2lnbj1mdW5jdGlvbihZLFcpe1k9VShZKTt2YXIgTj10aGlzLmtleUZyb21TZWNyZXQoVyksZWU9dGhpcy5oYXNoSW50KE4ubWVzc2FnZVByZWZpeCgpLFkpLHE9dGhpcy5nLm11bChlZSksSj10aGlzLmVuY29k''@;'; + put 'put ''ZVBvaW50KHEpLHNlPXRoaXMuaGFzaEludChKLE4ucHViQnl0ZXMoKSxZKS5tdWwoTi5wcml2KCkpLG9lPWVlLmFkZChzZSkudW1vZCh0aGlzLmN1cnZlLm4pO3JldHVybiB0aGlzLm1ha2VTaWduYXR1cmUoe1I6cSxTOm9lLFJlbmNvZGVkOkp9KX0saWUucHJvdG90eXBlLnZlcmlmeT1mdW5j''@;'; + put 'put ''dGlvbihZLFcsTil7WT1VKFkpLFc9dGhpcy5tYWtlU2lnbmF0dXJlKFcpO3ZhciBlZT10aGlzLmtleUZyb21QdWJsaWMoTikscT10aGlzLmhhc2hJbnQoVy5SZW5jb2RlZCgpLGVlLnB1YkJ5dGVzKCksWSksSj10aGlzLmcubXVsKFcuUygpKTtyZXR1cm4gVy5SKCkuYWRkKGVlLnB1YigpLm11''@;'; + put 'put ''bChxKSkuZXEoSil9LGllLnByb3RvdHlwZS5oYXNoSW50PWZ1bmN0aW9uKCl7Zm9yKHZhciBZPXRoaXMuaGFzaCgpLFc9MDtXPGFyZ3VtZW50cy5sZW5ndGg7VysrKVkudXBkYXRlKGFyZ3VtZW50c1tXXSk7cmV0dXJuIEUuaW50RnJvbUxFKFkuZGlnZXN0KCkpLnVtb2QodGhpcy5jdXJ2ZS5u''@;'; + put 'put ''KX0saWUucHJvdG90eXBlLmtleUZyb21QdWJsaWM9ZnVuY3Rpb24oWSl7cmV0dXJuIFEuZnJvbVB1YmxpYyh0aGlzLFkpfSxpZS5wcm90b3R5cGUua2V5RnJvbVNlY3JldD1mdW5jdGlvbihZKXtyZXR1cm4gUS5mcm9tU2VjcmV0KHRoaXMsWSl9LGllLnByb3RvdHlwZS5tYWtlU2lnbmF0dXJl''@;'; + put 'put ''PWZ1bmN0aW9uKFkpe3JldHVybiBZIGluc3RhbmNlb2YgWj9ZOm5ldyBaKHRoaXMsWSl9LGllLnByb3RvdHlwZS5lbmNvZGVQb2ludD1mdW5jdGlvbihZKXt2YXIgVz1ZLmdldFkoKS50b0FycmF5KCJsZSIsdGhpcy5lbmNvZGluZ0xlbmd0aCk7cmV0dXJuIFdbdGhpcy5lbmNvZGluZ0xlbmd0''@;'; + put 'put ''aC0xXXw9WS5nZXRYKCkuaXNPZGQoKT8xMjg6MCxXfSxpZS5wcm90b3R5cGUuZGVjb2RlUG9pbnQ9ZnVuY3Rpb24oWSl7dmFyIFc9KFk9RS5wYXJzZUJ5dGVzKFkpKS5sZW5ndGgtMSxOPVkuc2xpY2UoMCxXKS5jb25jYXQoLTEyOSZZW1ddKSxlZT0wIT0oMTI4JllbV10pLHE9RS5pbnRGcm9t''@;'; + put 'put ''TEUoTik7cmV0dXJuIHRoaXMuY3VydmUucG9pbnRGcm9tWShxLGVlKX0saWUucHJvdG90eXBlLmVuY29kZUludD1mdW5jdGlvbihZKXtyZXR1cm4gWS50b0FycmF5KCJsZSIsdGhpcy5lbmNvZGluZ0xlbmd0aCl9LGllLnByb3RvdHlwZS5kZWNvZGVJbnQ9ZnVuY3Rpb24oWSl7cmV0dXJuIEUu''@;'; + put 'put ''aW50RnJvbUxFKFkpfSxpZS5wcm90b3R5cGUuaXNQb2ludD1mdW5jdGlvbihZKXtyZXR1cm4gWSBpbnN0YW5jZW9mIHRoaXMucG9pbnRDbGFzc319LDk3NTM1OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCg2MTk3MCksQj1tZS5hc3NlcnQsRT1tZS5wYXJzZUJ5dGVzLE1lPW1l''@;'; + put 'put ''LmNhY2hlZFByb3BlcnR5O2Z1bmN0aW9uIFUoUSxaKXt0aGlzLmVkZHNhPVEsdGhpcy5fc2VjcmV0PUUoWi5zZWNyZXQpLFEuaXNQb2ludChaLnB1Yik/dGhpcy5fcHViPVoucHViOnRoaXMuX3B1YkJ5dGVzPUUoWi5wdWIpfVUuZnJvbVB1YmxpYz1mdW5jdGlvbihaLGllKXtyZXR1cm4gaWUg''@;'; + put 'put ''aW5zdGFuY2VvZiBVP2llOm5ldyBVKFose3B1YjppZX0pfSxVLmZyb21TZWNyZXQ9ZnVuY3Rpb24oWixpZSl7cmV0dXJuIGllIGluc3RhbmNlb2YgVT9pZTpuZXcgVShaLHtzZWNyZXQ6aWV9KX0sVS5wcm90b3R5cGUuc2VjcmV0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3NlY3JldH0sTWUo''@;'; + put 'put ''VSwicHViQnl0ZXMiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZWRkc2EuZW5jb2RlUG9pbnQodGhpcy5wdWIoKSl9KSxNZShVLCJwdWIiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3B1YkJ5dGVzP3RoaXMuZWRkc2EuZGVjb2RlUG9pbnQodGhpcy5fcHViQnl0ZXMpOnRoaXMuZWRkc2EuZy5t''@;'; + put 'put ''dWwodGhpcy5wcml2KCkpfSksTWUoVSwicHJpdkJ5dGVzIixmdW5jdGlvbigpe3ZhciBaPXRoaXMuZWRkc2EsaWU9dGhpcy5oYXNoKCksYWU9Wi5lbmNvZGluZ0xlbmd0aC0xLFk9aWUuc2xpY2UoMCxaLmVuY29kaW5nTGVuZ3RoKTtyZXR1cm4gWVswXSY9MjQ4LFlbYWVdJj0xMjcsWVthZV18''@;'; + put 'put ''PTY0LFl9KSxNZShVLCJwcml2IixmdW5jdGlvbigpe3JldHVybiB0aGlzLmVkZHNhLmRlY29kZUludCh0aGlzLnByaXZCeXRlcygpKX0pLE1lKFUsImhhc2giLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZWRkc2EuaGFzaCgpLnVwZGF0ZSh0aGlzLnNlY3JldCgpKS5kaWdlc3QoKX0pLE1lKFUs''@;'; + put 'put ''Im1lc3NhZ2VQcmVmaXgiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaGFzaCgpLnNsaWNlKHRoaXMuZWRkc2EuZW5jb2RpbmdMZW5ndGgpfSksVS5wcm90b3R5cGUuc2lnbj1mdW5jdGlvbihaKXtyZXR1cm4gQih0aGlzLl9zZWNyZXQsIktleVBhaXIgY2FuIG9ubHkgdmVyaWZ5IiksdGhpcy5l''@;'; + put 'put ''ZGRzYS5zaWduKFosdGhpcyl9LFUucHJvdG90eXBlLnZlcmlmeT1mdW5jdGlvbihaLGllKXtyZXR1cm4gdGhpcy5lZGRzYS52ZXJpZnkoWixpZSx0aGlzKX0sVS5wcm90b3R5cGUuZ2V0U2VjcmV0PWZ1bmN0aW9uKFope3JldHVybiBCKHRoaXMuX3NlY3JldCwiS2V5UGFpciBpcyBwdWJsaWMg''@;'; + put 'put ''b25seSIpLG1lLmVuY29kZSh0aGlzLnNlY3JldCgpLFopfSxVLnByb3RvdHlwZS5nZXRQdWJsaWM9ZnVuY3Rpb24oWil7cmV0dXJuIG1lLmVuY29kZSh0aGlzLnB1YkJ5dGVzKCksWil9LFhlLmV4cG9ydHM9VX0sODgyNDE6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDE3NDMz''@;'; + put 'put ''KSxCPUwoNjE5NzApLEU9Qi5hc3NlcnQsTWU9Qi5jYWNoZWRQcm9wZXJ0eSxVPUIucGFyc2VCeXRlcztmdW5jdGlvbiBRKFosaWUpe3RoaXMuZWRkc2E9Wiwib2JqZWN0IiE9dHlwZW9mIGllJiYoaWU9VShpZSkpLEFycmF5LmlzQXJyYXkoaWUpJiYoaWU9e1I6aWUuc2xpY2UoMCxaLmVuY29k''@;'; + put 'put ''aW5nTGVuZ3RoKSxTOmllLnNsaWNlKFouZW5jb2RpbmdMZW5ndGgpfSksRShpZS5SJiZpZS5TLCJTaWduYXR1cmUgd2l0aG91dCBSIG9yIFMiKSxaLmlzUG9pbnQoaWUuUikmJih0aGlzLl9SPWllLlIpLGllLlMgaW5zdGFuY2VvZiBtZSYmKHRoaXMuX1M9aWUuUyksdGhpcy5fUmVuY29kZWQ9''@;'; + put 'put ''QXJyYXkuaXNBcnJheShpZS5SKT9pZS5SOmllLlJlbmNvZGVkLHRoaXMuX1NlbmNvZGVkPUFycmF5LmlzQXJyYXkoaWUuUyk/aWUuUzppZS5TZW5jb2RlZH1NZShRLCJTIixmdW5jdGlvbigpe3JldHVybiB0aGlzLmVkZHNhLmRlY29kZUludCh0aGlzLlNlbmNvZGVkKCkpfSksTWUoUSwiUiIs''@;'; + put 'put ''ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lZGRzYS5kZWNvZGVQb2ludCh0aGlzLlJlbmNvZGVkKCkpfSksTWUoUSwiUmVuY29kZWQiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZWRkc2EuZW5jb2RlUG9pbnQodGhpcy5SKCkpfSksTWUoUSwiU2VuY29kZWQiLGZ1bmN0aW9uKCl7cmV0dXJuIHRo''@;'; + put 'put ''aXMuZWRkc2EuZW5jb2RlSW50KHRoaXMuUygpKX0pLFEucHJvdG90eXBlLnRvQnl0ZXM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZW5jb2RlZCgpLmNvbmNhdCh0aGlzLlNlbmNvZGVkKCkpfSxRLnByb3RvdHlwZS50b0hleD1mdW5jdGlvbigpe3JldHVybiBCLmVuY29kZSh0aGlzLnRvQnl0''@;'; + put 'put ''ZXMoKSwiaGV4IikudG9VcHBlckNhc2UoKX0sWGUuZXhwb3J0cz1RfSwyNTE1MDpYZT0+e1hlLmV4cG9ydHM9e2RvdWJsZXM6e3N0ZXA6NCxwb2ludHM6W1siZTYwZmNlOTNiNTllOWVjNTMwMTFhYWJjMjFjMjNlOTdiMmEzMTM2OWI4N2E1YWU5YzQ0ZWU4OWUyYTZkZWMwYSIsImY3ZTM1MDcz''@;'; + put 'put ''OTllNTk1OTI5ZGI5OWYzNGY1NzkzNzEwMTI5Njg5MWU0NGQyM2YwYmUxZjMyY2NlNjk2MTY4MjEiXSxbIjgyODIyNjMyMTJjNjA5ZDllYTJhNmUzZTE3MmRlMjM4ZDhjMzljYWJkNWFjMWNhMTA2NDZlMjNmZDVmNTE1MDgiLCIxMWY4YTgwOTg1NTdkZmU0NWU4MjU2ZTgzMGI2MGFjZTYyZDYx''@;'; + put 'put ''M2FjMmY3YjE3YmVkMzFiNmVhZmY2ZTI2Y2FmIl0sWyIxNzVlMTU5ZjcyOGI4NjVhNzJmOTljYzZjNmZjODQ2ZGUwYjkzODMzZmQyMjIyZWQ3M2ZjZTViNTUxZTViNzM5IiwiZDM1MDZlMGQ5ZTNjNzllYmE0ZWY5N2E1MWZmNzFmNWVhY2I1OTU1YWRkMjQzNDVjNmVmYTZmZmVlOWZlZDY5NSJd''@;'; + put 'put ''LFsiMzYzZDkwZDQ0N2IwMGM5Yzk5Y2VhYzA1YjYyNjJlZTA1MzQ0MWM3ZTU1NTUyZmZlNTI2YmFkOGY4M2ZmNDY0MCIsIjRlMjczYWRmYzczMjIyMTk1M2I0NDUzOTdmMzM2MzE0NWI5YTg5MDA4MTk5ZWNiNjIwMDNjN2YzYmVlOWRlOSJdLFsiOGI0YjVmMTY1ZGYzYzJiZThjNjI0NGI1Yjc0''@;'; + put 'put ''NTYzODg0M2U0YTc4MWExNWJjZDFiNjlmNzlhNTVkZmZkZjgwYyIsIjRhYWQwYTZmNjhkMzA4YjRiM2ZiZDc4MTNhYjBkYTA0ZjllMzM2NTQ2MTYyZWU1NmIzZWZmMGM2NWZkNGZkMzYiXSxbIjcyM2NiYWE2ZTVkYjk5NmQ2YmY3NzFjMDBiZDU0OGM3YjcwMGRiZmZhNmMwZTc3YmNiNjExNTky''@;'; + put 'put ''NTIzMmZjZGEiLCI5NmU4NjdiNTU5NWNjNDk4YTkyMTEzNzQ4ODgyNGQ2ZTI2NjBhMDY1Mzc3OTQ5NDgwMWRjMDY5ZDllYjM5ZjVmIl0sWyJlZWJmYTRkNDkzYmViZjk4YmE1ZmVlYzgxMmMyZDNiNTA5NDc5NjEyMzdhOTE5ODM5YTUzM2VjYTBlN2RkN2ZhIiwiNWQ5YThjYTM5NzBlZjBmMjY5''@;'; + put 'put ''ZWU3ZWRhZjE3ODA4OWQ5YWU0Y2RjM2E3MTFmNzEyZGRmZDRmZGFlMWRlODk5OSJdLFsiMTAwZjQ0ZGE2OTZlNzE2NzI3OTFkMGEwOWI3YmRlNDU5ZjEyMTVhMjliM2MwM2JmZWZkNzgzNWIzOWE0OGRiMCIsImNkZDllMTMxOTJhMDBiNzcyZWM4ZjMzMDBjMDkwNjY2YjdmZjRhMThmZjUxOTVh''@;'; + put 'put ''YzBmYmQ1Y2Q2MmJjNjVhMDkiXSxbImUxMDMxYmUyNjJjN2VkMWIxZGM5MjI3YTRhMDRjMDE3YTc3ZjhkNDQ2NGYzYjM4NTJjOGFjZGU2ZTUzNGZkMmQiLCI5ZDcwNjE5Mjg5NDA0MDVlNmJiNmE0MTc2NTk3NTM1YWYyOTJkZDQxOWUxY2VkNzlhNDRmMThmMjk0NTZhMDBkIl0sWyJmZWVhNmNh''@;'; + put 'put ''ZTQ2ZDU1YjUzMGFjMjgzOWYxNDNiZDdlYzVjZjhiMjY2YTQxZDZhZjUyZDVlNjg4ZDkwOTQ2OTZkIiwiZTU3YzZiNmM5N2RjZTFiYWIwNmU0ZTEyYmYzZWNkNWM5ODFjODk1N2NjNDE0NDJkMzE1NWRlYmYxODA5MDA4OCJdLFsiZGE2N2E5MWQ5MTA0OWNkY2IzNjdiZTRiZTZmZmNhM2NmZWVk''@;'; + put 'put ''NjU3ZDgwODU4M2RlMzNmYTk3OGJjMWVjNmNiMSIsIjliYWNhYTM1NDgxNjQyYmM0MWY0NjNmN2VjOTc4MGU1ZGVjN2FkYzUwOGY3NDBhMTdlOWVhOGUyN2E2OGJlMWQiXSxbIjUzOTA0ZmFhMGIzMzRjZGRhNmUwMDA5MzVlZjIyMTUxZWMwOGQwZjdiYjExMDY5ZjU3NTQ1Y2NjMWEzN2I3YzAi''@;'; + put 'put ''LCI1YmMwODdkMGJjODAxMDZkODhjOWVjY2FjMjBkM2MxYzEzOTk5OTgxZTE0NDM0Njk5ZGNiMDk2YjAyMjc3MWM4Il0sWyI4ZTdiY2QwYmQzNTk4M2E3NzE5Y2NhNzc2NGNhOTA2Nzc5YjUzYTA0M2E5YjhiY2FlZmY5NTlmNDNhZDg2MDQ3IiwiMTBiNzc3MGIyYTNkYTRiMzk0MDMxMDQyMGNh''@;'; + put 'put ''OTUxNDU3OWU4OGUyZTQ3ZmQ2OGIzZWExMDA0N2U4NDYwMzcyYSJdLFsiMzg1ZWVkMzRjMWNkZmYyMWU2ZDA4MTg2ODliODFiZGU3MWE3ZjRmMTgzOTdlNjY5MGE4NDFlMTU5OWM0Mzg2MiIsIjI4M2JlYmMzZThlYTIzZjU2NzAxZGUxOWU5ZWJmNDU3NmIzMDRlZWMyMDg2ZGM4Y2MwNDU4ZmU1''@;'; + put 'put ''NTQyZTU0NTMiXSxbIjZmOWQ5YjgwM2VjZjE5MTYzN2M3M2E0NDEzZGZhMTgwZmRkZjg0YTU5NDdmYmM5YzYwNmVkODZjM2ZhYzNhNyIsIjdjODBjNjhlNjAzMDU5YmE2OWI4ZTJhMzBlNDVjNGQ0N2VhNGRkMmY1YzI4MTAwMmQ4Njg5MDYwM2E4NDIxNjAiXSxbIjMzMjJkNDAxMjQzYzRlMjU4''@;'; + put 'put ''MmEyMTQ3YzEwNGQ2ZWNiZjc3NGQxNjNkYjBmNWU1MzEzYjdlMGU3NDJkMGU2YmQiLCI1NmU3MDc5N2U5NjY0ZWY1YmZiMDE5YmM0ZGRhZjliNzI4MDVmNjNlYTI4NzNhZjYyNGYzYTJlOTZjMjhiMmEwIl0sWyI4NTY3MmM3ZDJkZTBiN2RhMmJkMTc3MGQ4OTY2NTg2ODc0MWIzZjlhZjc2NDMz''@;'; + put 'put ''OTc3MjFkNzRkMjgxMzRhYjgzIiwiN2M0ODFiOWI1YjQzYjJlYjYzNzQwNDliZmE2MmMyZTVlNzdmMTdmY2M1Mjk4ZjQ0YzhlMzA5NGY3OTAzMTNhNiJdLFsiOTQ4YmY4MDliMTk4OGE0NmIwNmM5ZjE5MTk0MTNiMTBmOTIyNmM2MGY2Njg4MzJmZmQ5NTlhZjYwYzgyYTBhIiwiNTNhNTYyODU2''@;'; + put 'put ''ZGNiNjY0NmRjNmI3NGM1ZDFjMzQxOGM2ZDRkZmYwOGM5N2NkMmJlZDRjYjdmODhkOGM4ZTU4OSJdLFsiNjI2MGNlN2Y0NjE4MDFjMzRmMDY3Y2UwZjAyODczYThmMWIwZTQ0ZGZjNjk3NTJhY2NlY2Q4MTlmMzhmZDhlOCIsImJjMmRhODJiNmZhNWI1NzFhN2YwOTA0OTc3NmExZWY3ZWNkMjky''@;'; + put 'put ''MjM4MDUxYzE5OGMxYTg0ZTk1YjJiNGFlMTciXSxbImU1MDM3ZGUwYWZjMWQ4ZDQzZDgzNDg0MTRiYmY0MTAzMDQzZWM4ZjU3NWJmZGM0MzI5NTNjYzhkMjAzN2ZhMmQiLCI0NTcxNTM0YmFhOTRkM2I1ZjlmOThkMDlmYjk5MGJkZGJkNWY1YjAzZWM0ODFmMTBlMGU1ZGM4NDFkNzU1YmRhIl0s''@;'; + put 'put ''WyJlMDYzNzJiMGY0YTIwN2FkZjVlYTkwNWU4ZjE3NzFiNGU3ZThkYmQxYzZhNmM1YjcyNTg2NmEwYWU0ZmNlNzI1IiwiN2E5MDg5NzRiY2UxOGNmZTEyYTI3YmIyYWQ1YTQ4OGNkNzQ4NGE3Nzg3MTA0ODcwYjI3MDM0Zjk0ZWVlMzFkZCJdLFsiMjEzYzdhNzE1Y2Q1ZDQ1MzU4ZDBiYmY5ZGMw''@;'; + put 'put ''Y2UwMjIwNGIxMGJkZGUyYTNmNTg1NDBhZDY5MDhkMDU1OTc1NCIsIjRiNmRhZDBiNWFlNDYyNTA3MDEzYWQwNjI0NWJhMTkwYmI0ODUwZjVmMzZhN2VlZGRmZjJjMjc1MzRiNDU4ZjIiXSxbIjRlN2MyNzJhN2FmNGIzNGU4ZGJiOTM1MmE1NDE5YTg3ZTI4MzhjNzBhZGM2MmNkZGYwY2MzYTNi''@;'; + put 'put ''MDhmYmQ1M2MiLCIxNzc0OWM3NjZjOWQwYjE4ZTE2ZmQwOWY2ZGVmNjgxYjUzMGI5NjE0YmZmN2RkMzNlMGIzOTQxODE3ZGNhYWU2Il0sWyJmZWE3NGUzZGJlNzc4YjFiMTBmMjM4YWQ2MTY4NmFhNWM3NmUzZGIyYmU0MzA1NzYzMjQyN2UyODQwZmIyN2I2IiwiNmUwNTY4ZGI5YjBiMTMyOTdj''@;'; + put 'put ''ZjY3NGRlY2NiNmFmOTMxMjZiNTk2Yjk3M2Y3Yjc3NzAxZDNkYjdmMjNjYjk2ZiJdLFsiNzZlNjQxMTNmNjc3Y2YwZTEwYTI1NzBkNTk5OTY4ZDMxNTQ0ZTE3OWI3NjA0MzI5NTJjMDJhNDQxN2JkZGUzOSIsImM5MGRkZjhkZWU0ZTk1Y2Y1NzcwNjZkNzA2ODFmMGQzNWUyYTMzZDJiNTZkMjAz''@;'; + put 'put ''MmI0YjE3NTJkMTkwMWFjMDEiXSxbImM3MzhjNTZiMDNiMmFiZTFlODI4MWJhYTc0M2Y4ZjlhOGY3Y2M2NDNkZjI2Y2JlZTNhYjE1MDI0MmJjYmI4OTEiLCI4OTNmYjU3ODk1MWFkMjUzN2Y3MThmMmVhY2JmYmJiYjgyMzE0ZWVmNzg4MGNmZTkxN2U3MzVkOTY5OWE4NGMzIl0sWyJkODk1NjI2''@;'; + put 'put ''NTQ4YjY1YjgxZTI2NGM3NjM3Yzk3Mjg3N2QxZDcyZTVmM2E5MjUwMTQzNzJlOWY2NTg4ZjZjMTRiIiwiZmViZmFhMzhmMmJjN2VhZTcyOGVjNjA4MThjMzQwZWIwMzQyOGQ2MzJiYjA2N2UxNzkzNjNlZDc1ZDdkOTkxZiJdLFsiYjhkYTk0MDMyYTk1NzUxOGViMGY2NDMzNTcxZTg3NjFjZWZm''@;'; + put 'put ''YzczNjkzZTg0ZWRkNDkxNTBhNTY0ZjY3NmUwMyIsIjI4MDRkZmE0NDgwNWExZTRkN2M5OWNjOTc2MjgwOGIwOTJjYzU4NGQ5NWZmM2I1MTE0ODhlNGU3NGVmZGY2ZTciXSxbImU4MGZlYTE0NDQxZmIzM2E3ZDhhZGFiOTQ3NWQ3ZmFiMjAxOWVmZmI1MTU2YTc5MmYxYTExNzc4ZTNjMGRmNWQi''@;'; + put 'put ''LCJlZWQxZGU3ZjYzOGUwMDc3MWU4OTc2OGNhM2NhOTQ0NzJkMTU1ZTgwYWYzMjJlYTlmY2I0MjkxYjZhYzllYzc4Il0sWyJhMzAxNjk3YmRmY2Q3MDQzMTNiYTQ4ZTUxZDU2NzU0M2YyYTE4MjAzMWVmZDY5MTVkZGMwN2JiY2M0ZTE2MDcwIiwiNzM3MGY5MWNmYjY3ZTRmNTA4MTgwOWZhMjVk''@;'; + put 'put ''NDBmOWIxNzM1ZGJmN2MwYTExYTEzMGMwZDFhMDQxZTE3N2VhMSJdLFsiOTBhZDg1YjM4OWQ2YjkzNjQ2M2Y5ZDA1MTI2NzhkZTIwOGNjMzMwYjExMzA3ZmZmYWI3YWM2M2UzZmIwNGVkNCIsImU1MDdhMzYyMGEzODI2MWFmZmRjYmQ5NDI3MjIyYjgzOWFlZmFiZTE1ODI4OTRkOTkxZDRkNDhj''@;'; + put 'put ''YjZlZjE1MCJdLFsiOGY2OGI5ZDJmNjNiNWYzMzkyMzljMWFkOTgxZjE2MmVlODhjNTY3ODcyM2VhMzM1MWI3YjQ0NGM5ZWM0YzBkYSIsIjY2MmE5ZjJkYmEwNjM5ODZkZTFkOTBjMmI2YmUyMTVkYmJlYTJjZmU5NTUxMGJmZGYyM2NiZjc5NTAxZmZmODIiXSxbImU0ZjNmYjAxNzZhZjg1ZDY1''@;'; + put 'put ''ZmY5OWZmOTE5OGMzNjA5MWY0OGU4NjUwMzY4MWUzZTY2ODZmZDUwNTMyMzFlMTEiLCIxZTYzNjMzYWQwZWY0ZjFjMTY2MWE2ZDBlYTAyYjcyODZjYzdlNzRlYzk1MWQxYzk4MjJjMzg1NzZmZWI3M2JjIl0sWyI4YzAwZmE5YjE4ZWJmMzMxZWI5NjE1MzdhNDVhNDI2NmM3MDM0ZjJmMGQ0ZTFk''@;'; + put 'put ''MDcxNmZiNmVhZTIwZWFlMjllIiwiZWZhNDcyNjdmZWE1MjFhMWE5ZGMzNDNhMzczNmM5NzRjMmZhZGFmYTgxZTM2YzU0ZTdkMmE0YzY2NzAyNDE0YiJdLFsiZTdhMjZjZTY5ZGQ0ODI5ZjNlMTBjZWMwYTllOThlZDMxNDNkMDg0ZjMwOGI5MmMwOTk3ZmRkZmM2MGNiM2U0MSIsIjJhNzU4ZTMw''@;'; + put 'put ''MGZhNzk4NGI0NzFiMDA2YTFhYWZiYjE4ZDBhNmIyYzA0MjBlODNlMjBlOGE5NDIxY2YyY2ZkNTEiXSxbImI2NDU5ZTBlZTM2NjJlYzhkMjM1NDBjMjIzYmNiZGM1NzFjYmNiOTY3ZDc5NDI0ZjNjZjI5ZWIzZGU2YjgwZWYiLCI2N2M4NzZkMDZmM2UwNmRlMWRhZGYxNmU1NjYxZGIzYzRiM2Fl''@;'; + put 'put ''NmQ0OGUzNWIyZmYzMGJmMGI2MWE3MWJhNDUiXSxbImQ2OGE4MGM4MjgwYmI4NDA3OTMyMzRhYTExOGYwNjIzMWQ2ZjFmYzY3ZTczYzVhNWRlZGEwZjViNDk2OTQzZTgiLCJkYjhiYTlmZmY0YjU4NmQwMGM0YjFmOTE3N2IwZTI4YjViMGU3YjhmNzg0NTI5NWEyOTRjODQyNjZiMTMzMTIwIl0s''@;'; + put 'put ''WyIzMjRhZWQ3ZGY2NWM4MDQyNTJkYzAyNzA5MDdhMzBiMDk2MTJhZWI5NzM0NDljZWE0MDk1OTgwZmMyOGQzZDVkIiwiNjQ4YTM2NTc3NGI2MWYyZmYxMzBjMGMzNWFlYzFmNGYxOTIxM2IwYzdlMzMyODQzOTY3MjI0YWY5NmFiN2M4NCJdLFsiNGRmOWMxNDkxOWNkZTYxZjZkNTFkZmRiZTVm''@;'; + put 'put ''ZWU1ZGNlZWM0MTQzYmE4ZDFjYTg4OGU4YmQzNzNmZDA1NGM5NiIsIjM1ZWM1MTA5MmQ4NzI4MDUwOTc0YzIzYTFkODVkNGI1ZDUwNmNkYzI4ODQ5MDE5MmViYWMwNmNhZDEwZDVkIl0sWyI5YzM5MTlhODRhNDc0ODcwZmFlZDhhOWMxY2M2NjAyMTUyMzQ4OTA1NGQ3ZjAzMDhjYmZjOTljOGFj''@;'; + put 'put ''MWY5OGNkIiwiZGRiODRmMGY0YTRkZGQ1NzU4NGYwNDRiZjI2MGU2NDE5MDUzMjZmNzZjNjRjOGU2YmU3ZTVlMDNkNGZjNTk5ZCJdLFsiNjA1NzE3MGIxZGQxMmZkZjhkZTA1ZjI4MWQ4ZTA2YmI5MWUxNDkzYThiOTFkNGNjNWEyMTM4MjEyMGE5NTllNSIsIjlhMWFmMGIyNmE2YTQ4MDdhZGQ5''@;'; + put 'put ''YTJkYWY3MWRmMjYyNDY1MTUyYmMzZWUyNGM2NWU4OTliZTkzMjM4NWEyYTgiXSxbImE1NzZkZjhlMjNhMDg0MTE0MjE0MzlhNDUxOGRhMzE4ODBjZWYwZmJhN2Q0ZGYxMmIxYTY5NzNlZWNiOTQyNjYiLCI0MGE2YmYyMGU3NjY0MGIyYzkyYjk3YWZlNThjZDgyYzQzMmUxMGE3ZjUxNGQ5ZjNl''@;'; + put 'put ''ZThiZTExYWUxYjI4ZWM4Il0sWyI3Nzc4YTc4YzI4ZGVjM2UzMGEwNWZlOTYyOWRlOGMzOGJiMzBkMWY1Y2Y5YTNhMjA4Zjc2Mzg4OWJlNThhZDcxIiwiMzQ2MjZkOWFiNWE1YjIyZmY3MDk4ZTEyZjJmZjU4MDA4N2IzODQxMWZmMjRhYzU2M2I1MTNmYzFmZDlmNDNhYyJdLFsiOTI4OTU1ZWU2''@;'; + put 'put ''MzdhODQ0NjM3MjlmZDMwZTdhZmQyZWQ1Zjk2Mjc0ZTVhZDdlNWNiMDllZGE5YzA2ZDkwM2FjIiwiYzI1NjIxMDAzZDNmNDJhODI3Yjc4YTEzMDkzYTk1ZWVhYzNkMjZlZmE4YThkODNmYzUxODBlOTM1YmNkMDkxZiJdLFsiODVkMGZlZjNlYzZkYjEwOTM5OTA2NGYzYTBlM2IyODU1NjQ1YjRh''@;'; + put 'put ''OTA3YWQzNTQ1MjdhYWU3NTE2M2Q4Mjc1MSIsIjFmMDM2NDg0MTNhMzhjMGJlMjlkNDk2ZTU4MmNmNTY2M2U4NzUxZTk2ODc3MzMxNTgyYzIzN2EyNGViMWY5NjIiXSxbImZmMmIwZGNlOTdlZWNlOTdjMWM5YjYwNDE3OThiODVkZmRmYjZkODg4MmRhMjAzMDhmNTQwNDgyNDUyNjA4N2UiLCI0''@;'; + put 'put ''OTNkMTNmZWY1MjRiYTE4OGFmNGM0ZGM1NGQwNzkzNmM3YjdlZDZmYjkwZTJjZWIyYzk1MWUwMWYwYzI5OTA3Il0sWyI4MjdmYmJlNGIxZTg4MGVhOWVkMmIyZTYzMDFiMjEyYjU3ZjFlZTE0OGNkNmRkMjg3ODBlNWUyY2Y4NTZlMjQxIiwiYzYwZjljOTIzYzcyN2IwYjcxYmVmMmM2N2QxZDEy''@;'; + put 'put ''Njg3ZmY3YTYzMTg2OTAzMTY2ZDYwNWI2OGJhZWMyOTNlYyJdLFsiZWFhNjQ5ZjIxZjUxYmRiYWU3YmU0YWUzNGNlNmU1MjE3YTU4ZmRjZTdmNDdmOWFhN2YzYjU4ZmEyMTIwZTJiMyIsImJlMzI3OWVkNWJiYmIwM2FjNjlhODBmODk4NzlhYTVhMDFhNmI5NjVmMTNmN2U1OWQ0N2E1MzA1YmE1''@;'; + put 'put ''YWQ5M2QiXSxbImU0YTQyZDQzYzVjZjE2OWQ5MzkxZGY2ZGVjZjQyZWU1NDFiNmQ4ZjBjOWExMzc0MDFlMjM2MzJkZGEzNGQyNGYiLCI0ZDlmOTJlNzE2ZDFjNzM1MjZmYzk5Y2NmYjhhZDM0Y2U4ODZlZWRmYThkOGU0ZjEzYTdmNzEzMWRlYmE5NDE0Il0sWyIxZWM4MGZlZjM2MGNiZGQ5NTQx''@;'; + put 'put ''NjBmYWRhYjM1MmI2YjkyYjUzNTc2YTg4ZmVhNDk0NzE3M2I5ZDQzMDBiZjE5IiwiYWVlZmU5Mzc1NmI1MzQwZDJmM2E0OTU4YTdhYmJmNWUwMTQ2ZTc3ZjYyOTVhMDdiNjcxY2RjMWNjMTA3Y2VmZCJdLFsiMTQ2YTc3OGMwNDY3MGMyZjkxYjAwYWY0NjgwZGZhOGJjZTM0OTA3MTdkNThiYTg4''@;'; + put 'put ''OWRkYjU5MjgzNjY2NDJiZSIsImIzMThlMGVjMzM1NDAyOGFkZDY2OTgyN2Y5ZDRiMjg3MGFhYTk3MWQyZjdlNWVkMWQwYjI5NzQ4M2Q4M2VmZDAiXSxbImZhNTBjMGY2MWQyMmU1ZjA3ZTNhY2ViYjFhYTA3YjEyOGQwMDEyMjA5YTI4Yjk3NzZkNzZhODc5MzE4MGVlZjkiLCI2Yjg0YzY5MjIz''@;'; + put 'put ''OTdlYmE5YjcyY2QyODcyMjgxYTY4YTVlNjgzMjkzYTU3YTIxM2IzOGNkOGQ3ZDNmNGYyODExIl0sWyJkYTFkNjFkMGNhNzIxYTExYjFhNWJmNmI3ZDg4ZTg0MjFhMjg4YWI1ZDViYmE1MjIwZTUzZDMyYjVmMDY3ZWMyIiwiODE1N2Y1NWE3Yzk5MzA2Yzc5YzA3NjYxNjFjOTFlMjk2NmE3Mzg5''@;'; + put 'put ''OWQyNzliNDhhNjU1ZmJhMGYxYWQ4MzZmMSJdLFsiYThlMjgyZmYwYzk3MDY5MDcyMTVmZjk4ZThmZDQxNjYxNTMxMWRlMDQ0NmYxZTA2MmE3M2IwNjEwZDA2NGUxMyIsIjdmOTczNTViOGRiODFjMDlhYmZiN2YzYzViMjUxNTg4OGI2NzlhM2U1MGRkNmJkNmNlZjdjNzMxMTFmNGNjMGMiXSxb''@;'; + put 'put ''IjE3NGE1M2I5YzlhMjg1ODcyZDM5ZTU2ZTY5MTNjYWIxNWQ1OWIxZmE1MTI1MDhjMDIyZjM4MmRlODMxOTQ5N2MiLCJjY2M5ZGMzN2FiZmM5YzE2NTdiNDE1NWYyYzQ3ZjllNjY0NmIzYTFkOGNiOTg1NDM4M2RhMTNhYzA3OWFmYTczIl0sWyI5NTkzOTY5ODE5NDM3ODVjM2QzZTU3ZWRmNTAx''@;'; + put 'put ''OGNkYmUwMzllNzMwZTQ5MThiM2Q4ODRmZGZmMDk0NzViN2JhIiwiMmU3ZTU1Mjg4OGMzMzFkZDhiYTAzODZhNGI5Y2Q2ODQ5YzY1M2Y2NGM4NzA5Mzg1ZTliOGFiZjg3NTI0ZjJmZCJdLFsiZDJhNjNhNTBhZTQwMWU1NmQ2NDVhMTE1M2IxMDlhOGZjY2EwYTQzZDU2MWZiYTJkYmI1MTM0MGM5''@;'; + put 'put ''ZDgyYjE1MSIsImU4MmQ4NmZiNjQ0M2ZjYjc1NjVhZWU1OGIyOTQ4MjIwYTcwZjc1MGFmNDg0Y2E1MmQ0MTQyMTc0ZGNmODk0MDUiXSxbIjY0NTg3ZTIzMzU0NzFlYjg5MGVlNzg5NmQ3Y2ZkYzg2NmJhY2JkYmQzODM5MzE3YjM0MzZmOWI0NTYxN2UwNzMiLCJkOTlmY2RkNWJmNjkwMmUyYWU5''@;'; + put 'put ''NmRkNjQ0N2MyOTlhMTg1YjkwYTM5MTMzYWVhYjM1ODI5OWU1ZTlmYWY2NTg5Il0sWyI4NDgxYmRlMGU0ZTRkODg1YjNhNTQ2ZDNlNTQ5ZGUwNDJmMGFhNmNlYTI1MGU3ZmQzNThkNmM4NmRkNDVlNDU4IiwiMzhlZTdiOGNiYTU0MDRkZDg0YTI1YmYzOWNlY2IyY2E5MDBhNzljNDJiMjYyZTU1''@;'; + put 'put ''NmQ2NGIxYjU5Nzc5MDU3ZSJdLFsiMTM0NjRhNTdhNzgxMDJhYTYyYjY5NzlhZTgxN2Y0NjM3ZmZjZmVkM2M0YjFjZTMwYmNkNjMwM2Y2Y2FmNjY2YiIsIjY5YmUxNTkwMDQ2MTQ1ODBlZjdlNDMzNDUzY2NiMGNhNDhmMzAwYTgxZDA5NDJlMTNmNDk1YTkwN2Y2ZWNjMjciXSxbImJjNGE5ZGY1''@;'; + put 'put ''YjcxM2ZlMmU5YWVmNDMwYmNjMWRjOTdhMGNkOWNjZWRlMmYyODU4OGNhZGEzYTBkMmQ4M2YzNjYiLCJkM2E4MWNhNmU3ODVjMDYzODM5MzdhZGY0Yjc5OGNhYTZlOGE5ZmJmYTU0N2IxNmQ3NThkNjY2NTgxZjMzYzEiXSxbIjhjMjhhOTdiZjgyOThiYzBkMjNkOGM3NDk0NTJhMzJlNjk0YjY1''@;'; + put 'put ''ZTMwYTk0NzJhMzk1NGFiMzBmZTUzMjRjYWEiLCI0MGEzMDQ2M2EzMzA1MTkzMzc4ZmVkZjMxZjdjYzBlYjdhZTc4NGYwNDUxY2I5NDU5ZTcxZGM3M2NiZWY5NDgyIl0sWyI4ZWE5NjY2MTM5NTI3YThjMWRkOTRjZTRmMDcxZmQyM2M4YjM1MGM1YTRiYjMzNzQ4YzRiYTExMWZhY2NhZTAiLCI2''@;'; + put 'put ''MjBlZmFiYmM4ZWUyNzgyZTI0ZTdjMGNmYjk1YzVkNzM1Yjc4M2JlOWNmMGY4ZTk1NWFmMzRhMzBlNjJiOTQ1Il0sWyJkZDM2MjVmYWVmNWJhMDYwNzQ2Njk3MTZiYmQzNzg4ZDg5YmRkZTgxNTk1OTk2ODA5MmY3NmNjNGViOWE5Nzg3IiwiN2ExODhmYTM1MjBlMzBkNDYxZGEyNTAxMDQ1NzMx''@;'; + put 'put ''Y2E5NDE0NjE5ODI4ODMzOTU5MzdmNjhkMDBjNjQ0YTU3MyJdLFsiZjcxMGQ3OWQ5ZWI5NjIyOTdlNGY2MjMyYjQwZThmN2ZlYjJiYzYzODE0NjE0ZDY5MmMxMmRlNzUyNDA4MjIxZSIsImVhOThlNjcyMzJkM2IzMjk1ZDNiNTM1NTMyMTE1Y2NhYzg2MTJjNzIxODUxNjE3NTI2YWU0N2E5Yzc3''@;'; + put 'put ''YmZjODIiXV19LG5hZjp7d25kOjcscG9pbnRzOltbImY5MzA4YTAxOTI1OGMzMTA0OTM0NGY4NWY4OWQ1MjI5YjUzMWM4NDU4MzZmOTliMDg2MDFmMTEzYmNlMDM2ZjkiLCIzODhmN2IwZjYzMmRlODE0MGZlMzM3ZTYyYTM3ZjM1NjY1MDBhOTk5MzRjMjIzMWI2Y2I5ZmQ3NTg0YjhlNjcyIl0s''@;'; + put 'put ''WyIyZjhiZGU0ZDFhMDcyMDkzNTViNGE3MjUwYTVjNTEyOGU4OGI4NGJkZGM2MTlhYjdjYmE4ZDU2OWIyNDBlZmU0IiwiZDhhYzIyMjYzNmU1ZTNkNmQ0ZGJhOWRkYTZjOWM0MjZmNzg4MjcxYmFiMGQ2ODQwZGNhODdkM2FhNmFjNjJkNiJdLFsiNWNiZGYwNjQ2ZTVkYjRlYWEzOThmMzY1ZjJl''@;'; + put 'put ''YTdhMGUzZDQxOWI3ZTAzMzBlMzljZTkyYmRkZWRjYWM0ZjliYyIsIjZhZWJjYTQwYmEyNTU5NjBhMzE3OGQ2ZDg2MWE1NGRiYTgxM2QwYjgxM2ZkZTdiNWE1MDgyNjI4MDg3MjY0ZGEiXSxbImFjZDQ4NGUyZjBjN2Y2NTMwOWFkMTc4YTlmNTU5YWJkZTA5Nzk2OTc0YzU3ZTcxNGMzNWYxMTBk''@;'; + put 'put ''ZmMyN2NjYmUiLCJjYzMzODkyMWIwYTdkOWZkNjQzODA5NzE3NjNiNjFlOWFkZDg4OGE0Mzc1ZjhlMGYwNWNjMjYyYWM2NGY5YzM3Il0sWyI3NzRhZTdmODU4YTk0MTFlNWVmNDI0NmI3MGM2NWFhYzU2NDk5ODBiZTVjMTc4OTFiYmVjMTc4OTVkYTAwOGNiIiwiZDk4NGEwMzJlYjZiNWUxOTAy''@;'; + put 'put ''NDNkZDU2ZDdiN2IzNjUzNzJkYjFlMmRmZjlkNmE4MzAxZDc0YzljOTUzYzYxYiJdLFsiZjI4NzczYzJkOTc1Mjg4YmM3ZDFkMjA1YzM3NDg2NTFiMDc1ZmJjNjYxMGU1OGNkZGVlZGRmOGYxOTQwNWFhOCIsImFiMDkwMmU4ZDg4MGE4OTc1ODIxMmViNjVjZGFmNDczYTFhMDZkYTUyMWZhOTFm''@;'; + put 'put ''MjliNWNiNTJkYjAzZWQ4MSJdLFsiZDc5MjRkNGY3ZDQzZWE5NjVhNDY1YWUzMDk1ZmY0MTEzMWU1OTQ2ZjNjODVmNzllNDRhZGJjZjhlMjdlMDgwZSIsIjU4MWUyODcyYTg2YzcyYTY4Mzg0MmVjMjI4Y2M2ZGVmZWE0MGFmMmJkODk2ZDNhNWM1MDRkYzlmZjZhMjZiNTgiXSxbImRlZmRlYTRj''@;'; + put 'put ''ZGI2Nzc3NTBhNDIwZmVlODA3ZWFjZjIxZWI5ODk4YWU3OWI5NzY4NzY2ZTRmYWEwNGEyZDRhMzQiLCI0MjExYWIwNjk0NjM1MTY4ZTk5N2IwZWFkMmE5M2RhZWNlZDFmNGEwNGE5NWMwZjZjZmIxOTlmNjllNTZlYjc3Il0sWyIyYjRlYTBhNzk3YTQ0M2QyOTNlZjVjZmY0NDRmNDk3OWYwNmFj''@;'; + put 'put ''ZmViZDdlODZkMjc3NDc1NjU2MTM4Mzg1YjZjIiwiODVlODliYzAzNzk0NWQ5M2IzNDMwODNiNWExYzg2MTMxYTAxZjYwYzUwMjY5NzYzYjU3MGM4NTRlNWMwOWI3YSJdLFsiMzUyYmJmNGE0Y2RkMTI1NjRmOTNmYTMzMmNlMzMzMzAxZDlhZDQwMjcxZjgxMDcxODEzNDBhZWYyNWJlNTlkNSIs''@;'; + put 'put ''IjMyMWViNDA3NTM0OGY1MzRkNTljMTgyNTlkZGEzZTFmNGExYjNiMmU3MWIxMDM5YzY3YmQzZDhiY2Y4MTk5OGMiXSxbIjJmYTIxMDRkNmIzOGQxMWIwMjMwMDEwNTU5ODc5MTI0ZTQyYWI4ZGZlZmY1ZmYyOWRjOWNkYWRkNGVjYWNjM2YiLCIyZGUxMDY4Mjk1ZGQ4NjViNjQ1NjkzMzViZDVk''@;'; + put 'put ''ZDgwMTgxZDcwZWNmYzg4MjY0ODQyM2JhNzZiNTMyYjdkNjciXSxbIjkyNDgyNzliMDliNGQ2OGRhYjIxYTliMDY2ZWRkYTgzMjYzYzNkODRlMDk1NzJlMjY5Y2EwY2Q3ZjU0NTM3MTQiLCI3MzAxNmY3YmYyMzRhYWRlNWQxYWE3MWJkZWEyYjFmZjNmYzBkZTJhODg3OTEyZmZlNTRhMzJjZTk3''@;'; + put 'put ''Y2IzNDAyIl0sWyJkYWVkNGYyYmUzYThiZjI3OGU3MDEzMmZiMGJlYjc1MjJmNTcwZTE0NGJmNjE1YzA3ZTk5NmQ0NDNkZWU4NzI5IiwiYTY5ZGNlNGE3ZDZjOThlOGQ0YTFhY2E4N2VmOGQ3MDAzZjgzYzIzMGYzYWZhNzI2YWI0MGU1MjI5MGJlMWM1NSJdLFsiYzQ0ZDEyYzcwNjVkODEyZThh''@;'; + put 'put ''Y2YyOGQ3Y2JiMTlmOTAxMWVjZDllOWZkZjI4MWIwZTZhM2I1ZTg3ZDIyZTdkYiIsIjIxMTlhNDYwY2UzMjZjZGM3NmM0NTkyNmM5ODJmZGFjMGUxMDZlODYxZWRmNjFjNWEwMzkwNjNmMGUwZTY0ODIiXSxbIjZhMjQ1YmY2ZGM2OTg1MDRjODlhMjBjZmRlZDYwODUzMTUyYjY5NTMzNmMyODA2''@;'; + put 'put ''M2I2MWM2NWNiZDI2OWU2YjQiLCJlMDIyY2Y0MmMyYmQ0YTcwOGIzZjUxMjZmMTZhMjRhZDhiMzNiYTQ4ZDA0MjNiNmVmZDVlNjM0ODEwMGQ4YTgyIl0sWyIxNjk3ZmZhNmZkOWRlNjI3YzA3N2UzZDJmZTU0MTA4NGNlMTMzMDBiMGJlYzExNDZmOTVhZTU3ZjBkMGJkNmE1IiwiYjljMzk4ZjE4''@;'; + put 'put ''NjgwNmY1ZDI3NTYxNTA2ZTQ1NTc0MzNhMmNmMTUwMDllNDk4YWU3YWRlZTlkNjNkMDFiMjM5NiJdLFsiNjA1YmRiMDE5OTgxNzE4Yjk4NmQwZjA3ZTgzNGNiMGQ5ZGViODM2MGZmYjdmNjFkZjk4MjM0NWVmMjdhNzQ3OSIsIjI5NzJkMmRlNGY4ZDIwNjgxYTc4ZDkzZWM5NmZlMjNjMjZiZmFl''@;'; + put 'put ''ODRmYjE0ZGI0M2IwMWUxZTkwNTZiOGM0OSJdLFsiNjJkMTRkYWI0MTUwYmY0OTc0MDJmZGM0NWEyMTVlMTBkY2IwMWMzNTQ5NTliMTBjZmUzMWM3ZTlkODdmZjMzZCIsIjgwZmMwNmJkOGNjNWIwMTA5ODA4OGExOTUwZWVkMGRiMDFhYTEzMjk2N2FiNDcyMjM1ZjU2NDI0ODNiMjVlYWYiXSxb''@;'; + put 'put ''IjgwYzYwYWQwMDQwZjI3ZGFkZTViNGIwNmM0MDhlNTZiMmM1MGU5ZjU2YjliOGI0MjVlNTU1YzJmODYzMDhiNmYiLCIxYzM4MzAzZjFjYzVjMzBmMjZlNjZiYWQ3ZmU3MmY3MGE2NWVlZDRjYmU3MDI0ZWIxYWEwMWY1NjQzMGJkNTdhIl0sWyI3YTkzNzVhZDYxNjdhZDU0YWE3NGM2MzQ4Y2M1''@;'; + put 'put ''NGQzNDRjYzVkYzk0ODdkODQ3MDQ5ZDVlYWJiMGZhMDNjOGZiIiwiZDBlM2ZhOWVjYTg3MjY5MDk1NTllMGQ3OTI2OTA0NmJkYzU5ZWExMGM3MGNlMmIwMmQ0OTllYzIyNGRjN2Y3Il0sWyJkNTI4ZWNkOWI2OTZiNTRjOTA3YTllZDA0NTQ0N2E3OWJiNDA4ZWMzOWI2OGRmNTA0YmI1MWY0NTli''@;'; + put 'put ''YzNmZmM5IiwiZWVjZjQxMjUzMTM2ZTVmOTk5NjZmMjE4ODFmZDY1NmViYzQzNDU0MDVjNTIwZGJjMDYzNDY1YjUyMTQwOTkzMyJdLFsiNDkzNzBhNGI1ZjQzNDEyZWEyNWY1MTRlOGVjZGFkMDUyNjYxMTVlNGE3ZWNiMTM4NzIzMTgwOGY4YjQ1OTYzIiwiNzU4ZjNmNDFhZmQ2ZWQ0MjhiMzA4''@;'; + put 'put ''MWIwNTEyZmQ2MmE1NGMzZjNhZmJiNWI2NzY0YjY1MzA1MmExMjk0OWM5YSJdLFsiNzdmMjMwOTM2ZWU4OGNiYmQ3M2RmOTMwZDY0NzAyZWY4ODFkODExZTBlMTQ5OGUyZjFjMTNlYjFmYzM0NWQ3NCIsIjk1OGVmNDJhNzg4NmI2NDAwYTA4MjY2ZTliYTFiMzc4OTZjOTUzMzBkOTcwNzdjYmJl''@;'; + put 'put ''OGViM2M3NjcxYzYwZDYiXSxbImYyZGFjOTkxY2M0Y2U0YjllYTQ0ODg3ZTVjN2MwYmNlNThjODAwNzRhYjlkNGRiYWViMjg1MzFiNzczOWY1MzAiLCJlMGRlZGM5YjNiMmY4ZGFkNGRhMWYzMmRlYzI1MzFkZjllYjVmYmViMDU5OGU0ZmQxYTExN2RiYTcwM2EzYzM3Il0sWyI0NjNiM2Q5ZjY2''@;'; + put 'put ''MjYyMWZiMWI0YmU4ZmJiZTI1MjAxMjVhMjE2Y2RmYzlkYWUzZGViY2JhNDg1MGM2OTBkNDViIiwiNWVkNDMwZDc4YzI5NmMzNTQzMTE0MzA2ZGQ4NjIyZDdjNjIyZTI3Yzk3MGExZGUzMWNiMzc3YjAxYWY3MzA3ZSJdLFsiZjE2ZjgwNDI0NGU0NmUyYTA5MjMyZDRhZmYzYjU5OTc2Yjk4ZmFj''@;'; + put 'put ''MTQzMjhhMmQxYTMyNDk2YjQ5OTk4ZjI0NyIsImNlZGFiZDliODIyMDNmN2UxM2QyMDZmY2RmNGUzM2Q5MmE2YzUzYzI2ZTVjY2UyNmQ2NTc5OTYyYzRlMzFkZjYiXSxbImNhZjc1NDI3MmRjODQ1NjNiMDM1MmI3YTE0MzExYWY1NWQyNDUzMTVhY2UyN2M2NTM2OWUxNWY3MTUxZDQxZDEiLCJj''@;'; + put 'put ''YjQ3NDY2MGVmMzVmNWYyYTQxYjY0M2ZhNWU0NjA1NzVmNGZhOWI3OTYyMjMyYTVjMzJmOTA4MzE4YTA0NDc2Il0sWyIyNjAwY2E0YjI4MmNiOTg2Zjg1ZDBmMTcwOTk3OWQ4YjQ0YTA5YzA3Y2I4NmQ3YzEyNDQ5N2JjODZmMDgyMTIwIiwiNDExOWI4ODc1M2MxNWJkNmE2OTNiMDNmY2RkYmI0''@;'; + put 'put ''NWQ1YWM2YmU3NGFiNWYwZWY0NGIwYmU5NDc1YTdlNGI0MCJdLFsiNzYzNWNhNzJkN2U4NDMyYzMzOGVjNTNjZDEyMjIwYmMwMWM0ODY4NWUyNGY3ZGM4YzYwMmE3NzQ2OTk4ZTQzNSIsIjkxYjY0OTYwOTQ4OWQ2MTNkMWQ1ZTU5MGY3OGU2ZDc0ZWNmYzA2MWQ1NzA0OGJhZDllNzZmMzAyYzVi''@;'; + put 'put ''OWM2MSJdLFsiNzU0ZTMyMzlmMzI1NTcwY2RiYmY0YTg3ZGVlZThhNjZiN2YyYjMzNDc5ZDQ2OGZiYzFhNTA3NDNiZjU2Y2MxOCIsIjY3M2ZiODZlNWJkYTMwZmIzY2QwZWQzMDRlYTQ5YTAyM2VlMzNkMDE5N2E2OTVkMGM1ZDk4MDkzYzUzNjY4MyJdLFsiZTNlNmJkMTA3MWExZTk2YWZmNTc4''@;'; + put 'put ''NTljODJkNTcwZjAzMzA4MDA2NjFkMWM5NTJmOWZlMjY5NDY5MWQ5YjllOCIsIjU5YzllMGJiYTM5NGU3NmY0MGMwYWE1ODM3OWEzY2I2YTVhMjI4Mzk5M2U5MGM0MTY3MDAyYWY0OTIwZTM3ZjUiXSxbIjE4NmI0ODNkMDU2YTAzMzgyNmFlNzNkODhmNzMyOTg1YzRjY2IxZjMyYmEzNWY0YjRj''@;'; + put 'put ''YzQ3ZmRjZjA0YWE2ZWIiLCIzYjk1MmQzMmM2N2NmNzdlMmUxNzQ0NmUyMDQxODBhYjIxZmI4MDkwODk1MTM4YjRhNGE3OTdmODZlODA4ODhiIl0sWyJkZjlkNzBhNmI5ODc2Y2U1NDRjOTg1NjFmNGJlNGY3MjU0NDJlNmQyYjczN2Q5YzkxYTgzMjE3MjRjZTA5NjNmIiwiNTVlYjJkYWZkODRk''@;'; + put 'put ''NmNjZDVmODYyYjc4NWRjMzlkNGFiMTU3MjIyNzIwZWY5ZGEyMTdiOGM0NWNmMmJhMjQxNyJdLFsiNWVkZDVjYzIzYzUxZTg3YTQ5N2NhODE1ZDVkY2UwZjhhYjUyNTU0Zjg0OWVkODk5NWRlNjRjNWYzNGNlNzE0MyIsImVmYWU5YzhkYmMxNDEzMDY2MWU4Y2VjMDMwYzg5YWQwYzEzYzY2YzBk''@;'; + put 'put ''MTdhMjkwNWNkYzcwNmFiNzM5OWE4NjgiXSxbIjI5MDc5OGMyYjY0NzY4MzBkYTEyZmUwMjI4N2U5ZTc3N2FhM2ZiYTFjMzU1YjE3YTcyMmQzNjJmODQ2MTRmYmEiLCJlMzhkYTc2ZGNkNDQwNjIxOTg4ZDAwYmNmNzlhZjI1ZDViMjljMDk0ZGIyYTIzMTQ2ZDAwM2FmZDQxOTQzZTdhIl0sWyJh''@;'; + put 'put ''ZjNjNDIzYTk1ZDlmNWIzMDU0NzU0ZWZhMTUwYWMzOWNkMjk1NTJmZTM2MDI1NzM2MmRmZGVjZWY0MDUzYjQ1IiwiZjk4YTNmZDgzMWViMmI3NDlhOTNiMGU2ZjM1Y2ZiNDBjOGNkNWFhNjY3YTE1NTgxYmMyZmVkZWQ0OThmZDljNiJdLFsiNzY2ZGJiMjRkMTM0ZTc0NWNjY2FhMjhjOTliZjI3''@;'; + put 'put ''NDkwNmJiNjZiMjZkY2Y5OGRmOGQyZmVkNTBkODg0MjQ5YSIsIjc0NGIxMTUyZWFjYmU1ZTM4ZGNjODg3OTgwZGEzOGI4OTc1ODRhNjVmYTA2Y2VkZDJjOTI0Zjk3Y2JhYzU5OTYiXSxbIjU5ZGJmNDZmOGM5NDc1OWJhMjEyNzdjMzM3ODRmNDE2NDVmN2I0NGY2YzU5NmE1OGNlOTJlNjY2MTkx''@;'; + put 'put ''YWJlM2UiLCJjNTM0YWQ0NDE3NWZiYzMwMGY0ZWE2Y2U2NDgzMDlhMDQyY2U3MzlhNzkxOTc5OGNkODVlMjE2YzRhMzA3ZjZlIl0sWyJmMTNhZGE5NTEwM2M0NTM3MzA1ZTY5MWU3NGU5YTRhOGRkNjQ3ZTcxMWE5NWU3M2NiNjJkYzYwMThjZmQ4N2I4IiwiZTEzODE3YjQ0ZWUxNGRlNjYzYmY0''@;'; + put 'put ''YmM4MDgzNDFmMzI2OTQ5ZTIxYTZhNzVjMjU3MDc3ODQxOWJkYWY1NzMzZCJdLFsiNzc1NGI0ZmEwZThhY2VkMDZkNDE2N2EyYzU5Y2NhNGNkYTE4NjljMDZlYmFkZmI2NDg4NTUwMDE1YTg4NTIyYyIsIjMwZTkzZTg2NGU2NjlkODIyMjRiOTY3YzMwMjBiOGZhOGQxZTRlMzUwYjZjYmNjNTM3''@;'; + put 'put ''YTQ4YjU3ODQxMTYzYTIiXSxbIjk0OGRjYWRmNTk5MGUwNDhhYTM4NzRkNDZhYmVmOWQ3MDE4NThmOTVkZTgwNDFkMmE2ODI4Yzk5ZTIyNjI1MTkiLCJlNDkxYTQyNTM3ZjZlNTk3ZDVkMjhhMzIyNGIxYmMyNWRmOTE1NGVmYmQyZWYxZDJjYmJhMmNhZTUzNDdkNTdlIl0sWyI3OTYyNDE0NDUw''@;'; + put 'put ''Yzc2YzE2ODljN2I0OGY4MjAyZWMzN2ZiMjI0Y2Y1YWMwYmZhMTU3MDMyOGE4YTNkN2M3N2FiIiwiMTAwYjYxMGVjNGZmYjQ3NjBkNWMxZmMxMzNlZjZmNmIxMjUwN2EwNTFmMDRhYzU3NjBhZmE1YjI5ZGI4MzQzNyJdLFsiMzUxNDA4NzgzNDk2NGI1NGIxNWIxNjA2NDRkOTE1NDg1YTE2OTc3''@;'; + put 'put ''MjI1Yjg4NDdiYjBkZDA4NTEzN2VjNDdjYSIsImVmMGFmYmIyMDU2MjA1NDQ4ZTE2NTJjNDhlODEyN2ZjNjAzOWU3N2MxNWMyMzc4YjdlN2QxNWEwZGUyOTMzMTEiXSxbImQzY2MzMGFkNmI0ODNlNGJjNzljZTJjOWRkOGJjNTQ5OTNlOTQ3ZWI4ZGY3ODdiNDQyOTQzZDNmN2I1MjdlYWYiLCI4''@;'; + put 'put ''YjM3OGEyMmQ4MjcyNzhkODljNWU5YmU4Zjk1MDhhZTNjMmFkNDYyOTAzNTg2MzBhZmIzNGRiMDRlZWRlMGE0Il0sWyIxNjI0ZDg0NzgwNzMyODYwY2UxYzc4ZmNiZmVmZTA4YjJiMjk4MjNkYjkxM2Y2NDkzOTc1YmEwZmY0ODQ3NjEwIiwiNjg2NTFjZjliNmRhOTAzZTA5MTQ0NDhjNmNkOWQ0''@;'; + put 'put ''Y2E4OTY4NzhmNTI4MmJlNGM4Y2MwNmUyYTQwNDA3ODU3NSJdLFsiNzMzY2U4MGRhOTU1YThhMjY5MDJjOTU2MzNlNjJhOTg1MTkyNDc0YjVhZjIwN2RhNmRmN2I0ZmQ1ZmM2MWNkNCIsImY1NDM1YTJiZDJiYWRmN2Q0ODVhNGQ4YjhkYjlmY2NlM2UxZWY4ZTAyMDFlNDU3OGM1NDY3M2JjMWRj''@;'; + put 'put ''NWVhMWQiXSxbIjE1ZDk0NDEyNTQ5NDUwNjRjZjFhMWMzM2JiZDNiNDlmODk2NmM1MDkyMTcxZTY5OWVmMjU4ZGZhYjgxYzA0NWMiLCJkNTZlYjMwYjY5NDYzZTcyMzRmNTEzN2I3M2I4NDE3NzQzNDgwMGJhY2ViZmM2ODVmYzM3YmJlOWVmZTQwNzBkIl0sWyJhMWQwZmNmMmVjOWRlNjc1YjYx''@;'; + put 'put ''MjEzNmU1Y2U3MGQyNzFjMjE0MTdjOWQyYjhhYWFhYzEzODU5OWQwNzE3OTQwIiwiZWRkNzdmNTBiY2I1YTNjYWIyZTkwNzM3MzA5NjY3ZjI2NDE0NjJhNTQwNzBmM2Q1MTkyMTJkMzljMTk3YTYyOSJdLFsiZTIyZmJlMTVjMGFmOGNjYzU3ODBjMDczNWY4NGRiZTlhNzkwYmFkZWU4MjQ1YzA2''@;'; + put 'put ''YzdjYTM3MzMxY2IzNjk4MCIsImE4NTViYWJhZDVjZDYwYzg4YjQzMGE2OWY1M2ExYTdhMzgyODkxNTQ5NjQ3OTliZTQzZDA2ZDc3ZDMxZGEwNiJdLFsiMzExMDkxZGQ5ODYwZThlMjBlZTEzNDczYzExNTVmNWY2OTYzNWUzOTQ3MDRlYWE3NDAwOTQ1MjI0NmNmYTliMyIsIjY2ZGI2NTZmODdk''@;'; + put 'put ''MWYwNGZmZmQxZjA0Nzg4YzA2ODMwODcxZWM1YTY0ZmVlZTY4NWJkODBmMGIxMjg2ZDgzNzQiXSxbIjM0YzFmZDA0ZDMwMWJlODliMzFjMDQ0MmQzZTZhYzI0ODgzOTI4YjQ1YTkzNDA3ODE4NjdkNDIzMmVjMmRiZGYiLCI5NDE0Njg1ZTk3YjFiNTk1NGJkNDZmNzMwMTc0MTM2ZDU3ZjFjZWVi''@;'; + put 'put ''NDg3NDQzZGM1MzIxODU3YmE3M2FiZWUiXSxbImYyMTllYTVkNmI1NDcwMWMxYzE0ZGU1YjU1N2ViNDJhOGQxM2YzYWJiY2QwOGFmZmNjMmE1ZTZiMDQ5YjhkNjMiLCI0Y2I5NTk1N2U4M2Q0MGIwZjczYWY0NTQ0Y2NjZjZiMWY0YjA4ZDNjMDdiMjdmYjhkOGMyOTYyYTQwMDc2NmQxIl0sWyJk''@;'; + put 'put ''N2I4NzQwZjc0YThmYmFhYjFmNjgzZGI4ZjQ1ZGUyNjU0M2E1NDkwYmNhNjI3MDg3MjM2OTEyNDY5YTBiNDQ4IiwiZmE3Nzk2ODEyOGQ5YzkyZWUxMDEwZjMzN2FkNDcxN2VmZjE1ZGI1ZWQzYzA0OWIzNDExZTAzMTVlYWE0NTkzYiJdLFsiMzJkMzFjMjIyZjhmNmYwZWY4NmY3Yzk4ZDNhMzMz''@;'; + put 'put ''NWVhZDViY2QzMmFiZGQ5NDI4OWZlNGQzMDkxYWE4MjRiZiIsIjVmMzAzMmY1ODkyMTU2ZTM5Y2NkM2Q3OTE1YjllMWRhMmU2ZGFjOWU2ZjI2ZTk2MTExOGQxNGI4NDYyZTE2NjEiXSxbIjc0NjFmMzcxOTE0YWIzMjY3MTA0NWExNTVkOTgzMWVhODc5M2Q3N2NkNTk1OTJjNDM0MGY4NmNiYzE4''@;'; + put 'put ''MzQ3YjUiLCI4ZWMwYmEyMzhiOTZiZWMwY2JkZGRjYWUwYWE0NDI1NDJlZWUxZmY1MGM5ODZlYTZiMzk4NDdiM2NjMDkyZmY2Il0sWyJlZTA3OWFkYjFkZjE4NjAwNzQzNTZhMjVhYTM4MjA2YTZkNzE2YjJjM2U2NzQ1M2QyODc2OThiYWQ3YjJiMmQ2IiwiOGRjMjQxMmFhZmUzYmU1YzRjNWYz''@;'; + put 'put ''N2UwZWNjNWY5ZjZhNDQ2OTg5YWYwNGM0ZTI1ZWJhYWM0NzllYzFjOGMxZSJdLFsiMTZlYzkzZTQ0N2VjODNmMDQ2N2IxODMwMmVlNjIwZjdlNjVkZTMzMTg3NGM5ZGM3MmJmZDg2MTZiYTlkYTZiNSIsIjVlNDYzMTE1MGU2MmZiNDBkMGU4YzJhN2NhNTgwNGEzOWQ1ODE4NmE1MGU0OTcxMzk2''@;'; + put 'put ''MjY3NzhlMjViMDY3NGQiXSxbImVhYTVmOTgwYzI0NWY2ZjAzODk3ODI5MGFmYTcwYjZiZDg4NTU4OTdmOThiNmFhNDg1Yjk2MDY1ZDUzN2JkOTkiLCJmNjVmNWQzZTI5MmMyZTA4MTlhNTI4MzkxYzk5NDYyNGQ3ODQ4NjlkN2U2ZWE2N2ZiMTgwNDEwMjRlZGMwN2RjIl0sWyI3OGM5NDA3NTQ0''@;'; + put 'put ''YWMxMzI2OTJlZTE5MTBhMDI0Mzk5NThhZTA0ODc3MTUxMzQyZWE5NmM0YjZiMzVhNDlmNTEiLCJmM2UwMzE5MTY5ZWI5Yjg1ZDU0MDQ3OTU1MzlhNWU2OGZhMWZiZDU4M2MwNjRkMjQ2MmI2NzVmMTk0YTNkZGI0Il0sWyI0OTRmNGJlMjE5YTFhNzcwMTZkY2Q4Mzg0MzFhZWEwMDAxY2RjOGFl''@;'; + put 'put ''N2E2ZmM2ODg3MjY1NzhkOTcwMjg1N2E1IiwiNDIyNDJhOTY5MjgzYTVmMzM5YmE3ZjA3NWUzNmJhMmFmOTI1Y2UzMGQ3NjdlZDZlNTVmNGIwMzE4ODBkNTYyYyJdLFsiYTU5OGE4MDMwZGE2ZDg2YzZiYzdmMmY1MTQ0ZWE1NDlkMjgyMTFlYTU4ZmFhNzBlYmY0YzFlNjY1YzFmZTliNSIsIjIw''@;'; + put 'put ''NGI1ZDZmODQ4MjJjMzA3ZTRiNGE3MTQwNzM3YWVjMjNmYzYzYjY1YjM1Zjg2YTEwMDI2ZGJkMmQ4NjRlNmIiXSxbImM0MTkxNjM2NWFiYjJiNWQwOTE5MmY1ZjJkYmVhZmVjMjA4ZjAyMGYxMjU3MGExODRkYmFkYzNlNTg1OTU5OTciLCI0ZjE0MzUxZDAwODdlZmE0OWQyNDViMzI4OTg0OTg5''@;'; + put 'put ''ZDVjYWY5NDUwZjM0YmZjMGVkMTZlOTZiNThmYTk5MTMiXSxbIjg0MWQ2MDYzYTU4NmZhNDc1YTcyNDYwNGRhMDNiYzViOTJhMmUwZDJlMGEzNmFjZmU0YzczYTU1MTQ3NDI4ODEiLCI3Mzg2N2Y1OWMwNjU5ZTgxOTA0ZjlhMWM3NTQzNjk4ZTYyNTYyZDY3NDRjMTY5Y2U3YTM2ZGUwMWE4ZDYx''@;'; + put 'put ''NTQiXSxbIjVlOTViYjM5OWE2OTcxZDM3NjAyNjk0N2Y4OWJkZTJmMjgyYjMzODEwOTI4YmU0ZGVkMTEyYWM0ZDcwZTIwZDUiLCIzOWYyM2YzNjY4MDkwODViZWViZmM3MTE4MTMxMzc3NWE5OWM5YWVkN2Q4YmEzOGIxNjEzODRjNzQ2MDEyODY1Il0sWyIzNmU0NjQxYTUzOTQ4ZmQ0NzZjMzlm''@;'; + put 'put ''OGE5OWZkOTc0ZTVlYzA3NTY0YjUzMTVkOGJmOTk0NzFiY2EwZWYyZjY2IiwiZDI0MjRiMWIxYWJlNGViODE2NDIyN2IwODVjOWFhOTQ1NmVhMTM0OTNmZDU2M2UwNmZkNTFjZjU2OTRjNzhmYyJdLFsiMzM2NTgxZWE3YmZiYmIyOTBjMTkxYTJmNTA3YTQxY2Y1NjQzODQyMTcwZTkxNGZhZWFi''@;'; + put 'put ''MjdjMmM1NzlmNzI2IiwiZWFkMTIxNjg1OTVmZTFiZTk5MjUyMTI5YjZlNTZiMzM5MWY3YWIxNDEwY2QxZTBlZjNkY2RjYWJkMmZkYTIyNCJdLFsiOGFiODk4MTZkYWRmZDZiNmExZjI2MzRmY2YwMGVjODQwMzc4MTAyNWVkNjg5MGM0ODQ5NzQyNzA2YmQ0M2VkZSIsIjZmZGNlZjA5ZjJmNmQw''@;'; + put 'put ''YTA0NGU2NTRhZWY2MjQxMzZmNTAzZDQ1OWMzZTg5ODQ1ODU4YTQ3YTkxMjljZGQyNGUiXSxbIjFlMzNmMWE3NDZjOWM1Nzc4MTMzMzQ0ZDkyOTlmY2FhMjBiMDkzOGU4YWNmZjI1NDRiYjQwMjg0YjhjNWZiOTQiLCI2MDY2MDI1N2RkMTFiM2FhOWM4ZWQ2MThkMjRlZGZmMjMwNmQzMjBmMWQw''@;'; + put 'put ''MzAxMGUzM2E3ZDIwNTdmM2IzYjYiXSxbIjg1YjdjMWRjYjNjZWMxYjdlZTdmMzBkZWQ3OWRkMjBhMGVkMWY0Y2MxOGNiY2ZjZmE0MTAzNjFmZDhmMDhmMzEiLCIzZDk4YTljZGQwMjZkZDQzZjM5MDQ4ZjI1YTg4NDdmNGZjYWZhZDE4OTVkN2E2MzNjNmZlZDNjMzVlOTk5NTExIl0sWyIyOWRm''@;'; + put 'put ''OWZiZDhkOWU0NjUwOTI3NWY0YjEyNWQ2ZDQ1ZDdmYmU5YTNiODc4YTdhZjg3MmEyODAwNjYxYWM1ZjUxIiwiYjRjNGZlOTljNzc1YTYwNmUyZDg4NjIxNzkxMzlmZmRhNjFkYzg2MWMwMTllNTVjZDI4NzZlYjJhMjdkODRiIl0sWyJhMGIxY2FlMDZiMGE4NDdhM2ZlYTZlNjcxYWFmOGFkZmRm''@;'; + put 'put ''ZTU4Y2EyZjc2ODEwNWM4MDgyYjJlNDQ5ZmNlMjUyIiwiYWU0MzQxMDJlZGRlMDk1OGVjNGIxOWQ5MTdhNmEyOGU2YjcyZGExODM0YWZmMGU2NTBmMDQ5NTAzYTI5NmNmMiJdLFsiNGU4Y2VhZmI5YjNlOWExMzZkYzdmZjY3ZTg0MDI5NWI0OTlkZmIzYjIxMzNlNGJhMTEzZjJlNGMwZTEyMWU1''@;'; + put 'put ''IiwiY2YyMTc0MTE4YzhiNmQ3YTRiNDhmNmQ1MzRjZTVjNzk0MjJjMDg2YTYzNDYwNTAyYjgyN2NlNjJhMzI2NjgzYyJdLFsiZDI0YTQ0ZTA0N2UxOWI2ZjVhZmI4MWM3Y2EyZjY5MDgwYTUwNzY2ODlhMDEwOTE5ZjQyNzI1YzJiNzg5YTMzYiIsIjZmYjhkNTU5MWI0NjZmOGZjNjNkYjUwZjFj''@;'; + put 'put ''MGYxYzY5MDEzZjk5Njg4N2I4MjQ0ZDJjZGVjNDE3YWZlYThmYTMiXSxbImVhMDE2MDZhN2E2YzljZGQyNDlmZGZjZmFjYjk5NTg0MDAxZWRkMjhhYmJhYjc3YjUxMDRlOThlOGUzYjM1ZDQiLCIzMjJhZjQ5MDhjNzMxMmIwY2ZiZmUzNjlmN2E3YjNjZGI3ZDQ0OTRiYzI4MjM3MDBjZmQ2NTIx''@;'; + put 'put ''ODhhM2VhOThkIl0sWyJhZjhhZGRiZjJiNjYxYzhhNmM2MzI4NjU1ZWI5NjY1MTI1MjAwN2Q4YzVlYTMxYmU0YWQxOTZkZThjZTIxMzFmIiwiNjc0OWU2N2MwMjliODVmNTJhMDM0ZWFmZDA5NjgzNmIyNTIwODE4NjgwZTI2YWM4ZjNkZmJjZGI3MTc0OTcwMCJdLFsiZTNhZTE5NzQ1NjZjYTA2''@;'; + put 'put ''Y2M1MTZkNDdlMGZiMTY1YTY3NGEzZGFiY2ZjYTE1ZTcyMmYwZTM0NTBmNDU4ODkiLCIyYWVhYmU3ZTQ1MzE1MTAxMTYyMTdmMDdiZjRkMDczMDBkZTk3ZTQ4NzRmODFmNTMzNDIwYTcyZWViMGJkNmE0Il0sWyI1OTFlZTM1NTMxM2Q5OTcyMWNmNjk5M2ZmZWQxZTNlMzAxOTkzZmYzZWQyNTg4''@;'; + put 'put ''MDIwNzVlYThjZWQzOTdlMjQ2IiwiYjBlYTU1OGExMTNjMzBiZWE2MGZjNDc3NTQ2MGM3OTAxZmYwYjA1M2QyNWNhMmJkZWVlOThmMWE0YmU1ZDE5NiJdLFsiMTEzOTZkNTVmZGE1NGM0OWYxOWFhOTczMThkOGRhNjFmYTg1ODRlNDdiMDg0OTQ1MDc3Y2YwMzI1NWI1Mjk4NCIsIjk5OGM3NGE4''@;'; + put 'put ''Y2Q0NWFjMDEyODlkNTgzM2E3YmViNDc0NGZmNTM2YjAxYjI1N2JlNGM1NzY3YmVhOTNlYTU3YTQiXSxbIjNjNWQyYTFiYTM5YzVhMTc5MDAwMDczOGM5ZTBjNDBiOGRjZGZkNTQ2ODc1NGI2NDA1NTQwMTU3ZTAxN2FhN2EiLCJiMjI4NDI3OTk5NWEzNGUyZjlkNGRlNzM5NmZjMThiODBmOWI4''@;'; + put 'put ''YjlmZGQyNzBmNjY2MWY3OWNhNGM4MWJkMjU3Il0sWyJjYzg3MDRiOGE2MGEwZGVmYTNhOTlhNzI5OWYyZTljM2ZiYzM5NWFmYjA0YWMwNzg0MjVlZjhhMTc5M2NjMDMwIiwiYmRkNDYwMzlmZWVkMTc4ODFkMWUwODYyZGIzNDdmOGNmMzk1Yjc0ZmM0YmNkYzRlOTQwYjc0ZTNhYzFmMWIxMyJd''@;'; + put 'put ''LFsiYzUzM2U0ZjdlYTg1NTVhYWNkOTc3N2FjNWNhZDI5Yjk3ZGQ0ZGVmY2NjNTNlZTdlYTIwNDExOWIyODg5YjE5NyIsIjZmMGEyNTZiYzVlZmRmNDI5YTJmYjYyNDJmMWE0M2EyZDliOTI1YmI0YTRiM2EyNmJiOGUwZjQ1ZWI1OTYwOTYiXSxbImMxNGY4ZjJjY2IyN2Q2ZjEwOWY2ZDA4ZDAz''@;'; + put 'put ''Y2M5NmE2OWJhOGMzNGVlYzA3YmJjZjU2NmQ0OGUzM2RhNjU5MyIsImMzNTlkNjkyM2JiMzk4ZjdmZDQ0NzNlMTZmZTFjMjg0NzViNzQwZGQwOTgwNzVlNmMwZTg2NDkxMTNkYzNhMzgiXSxbImE2Y2JjMzA0NmJjNmE0NTBiYWMyNDc4OWZhMTcxMTVhNGM5NzM5ZWQ3NWY4ZjIxY2U0NDFmNzJl''@;'; + put 'put ''MGI5MGU2ZWYiLCIyMWFlN2Y0NjgwZTg4OWJiMTMwNjE5ZTJjMGY5NWEzNjBjZWI1NzNjNzA2MDMxMzk4NjJhZmQ2MTdmYTliOWYiXSxbIjM0N2Q2ZDlhMDJjNDg5MjdlYmZiODZjMTM1OWIxY2FmMTMwYTNjMDI2N2QxMWNlNjM0NGIzOWY5OWQ0M2NjMzgiLCI2MGVhN2Y2MWEzNTM1MjRkMWM5''@;'; + put 'put ''ODdmNmVjZWM5MmYwODZkNTY1YWI2ODc4NzBjYjEyNjg5ZmYxZTMxYzc0NDQ4Il0sWyJkYTY1NDVkMjE4MWRiOGQ5ODNmN2RjYjM3NWVmNTg2NmQ0N2M2N2IxYmYzMWM4Y2Y4NTVlZjc0MzdiNzI2NTZhIiwiNDliOTY3MTVhYjY4NzhhNzllNzhmMDdjZTU2ODBjNWQ2NjczMDUxYjQ5MzViZDg5''@;'; + put 'put ''N2ZlYTgyNGI3N2RjMjA4YSJdLFsiYzQwNzQ3Y2M5ZDAxMmNiMWExM2I4MTQ4MzA5YzZkZTdlYzI1ZDY5NDVkNjU3MTQ2YjlkNTk5NGI4ZmViMTExMSIsIjVjYTU2MDc1M2JlMmExMmZjNmRlNmNhZjJjYjQ4OTU2NWRiOTM2MTU2Yjk1MTRlMWJiNWU4MzAzN2UwZmEyZDQiXSxbIjRlNDJjOGVj''@;'; + put 'put ''ODJjOTk3OThjY2YzYTYxMGJlODcwZTc4MzM4YzdmNzEzMzQ4YmQzNGM4MjAzZWY0MDM3ZjM1MDIiLCI3NTcxZDc0ZWU1ZTBmYjkyYTdhOGIzM2EwNzc4MzM0MWE1NDkyMTQ0Y2M1NGJjYzQwYTk0NDczNjkzNjA2NDM3Il0sWyIzNzc1YWI3MDg5YmM2YWY4MjNhYmEyZTFhZjcwYjIzNmQyNTFj''@;'; + put 'put ''YWRiMGM4Njc0MzI4NzUyMmExYjNiMGRlZGVhIiwiYmU1MmQxMDdiY2ZhMDlkOGJjYjk3MzZhODI4Y2ZhN2ZhYzhkYjE3YmY3YTc2YTJjNDJhZDk2MTQwOTAxOGNmNyJdLFsiY2VlMzFjYmY3ZTM0ZWMzNzlkOTRmYjgxNGQzZDc3NWFkOTU0NTk1ZDEzMTRiYTg4NDY5NTllM2U4MmY3NGUyNiIs''@;'; + put 'put ''IjhmZDY0YTE0YzA2YjU4OWMyNmI5NDdhZTJiY2Y2YmZhMDE0OWVmMGJlMTRlZDRkODBmNDQ4YTAxYzQzYjFjNmQiXSxbImI0ZjllYWVhMDliNjkxNzYxOWY2ZWE2YTRlYjU0NjRlZmRkYjU4ZmQ0NWIxZWJlZmNkYzFhMDFkMDhiNDc5ODYiLCIzOWU1Yzk5MjViNWE1NGIwNzQzM2E0ZjE4YzYx''@;'; + put 'put ''NzI2ZjhiYjEzMWMwMTJjYTU0MmViMjRhOGFjMDcyMDA2ODJhIl0sWyJkNDI2M2RmYzNkMmRmOTIzYTAxNzlhNDg5NjZkMzBjZTg0ZTI1MTVhZmMzZGNjYzFiNzc5MDc3OTJlYmNjNjBlIiwiNjJkZmFmMDdhMGY3OGZlYjMwZTMwZDYyOTU4NTNjZTE4OWUxMjc3NjBhZDZjZjdmYWUxNjRlMTIy''@;'; + put 'put ''YTIwOGQ1NCJdLFsiNDg0NTc1MjQ4MjBmYTY1YTRmOGQzNWViNjkzMDg1N2MwMDMyYWNjMGE0YTJkZTQyMjIzM2VlZGE4OTc2MTJjNCIsIjI1YTc0OGFiMzY3OTc5ZDk4NzMzYzM4YTFmYTFjMmU3ZGM2Y2MwN2RiMmQ2MGE5YWU3YTc2YWFhNDliZDBmNzciXSxbImRmZWVlZjE4ODExMDFmMmNi''@;'; + put 'put ''MTE2NDRmM2EyYWZkZmMyMDQ1ZTE5OTE5MTUyOTIzZjM2N2ExNzY3YzExY2NlZGEiLCJlY2ZiNzA1NmNmMWRlMDQyZjk0MjBiYWIzOTY3OTNjMGMzOTBiZGU3NGI0YmJkZmYxNmE4M2FlMDlhOWE3NTE3Il0sWyI2ZDdlZjZiMTc1NDNmODM3M2M1NzNmNDRlMWYzODk4MzVkODliY2JjNjA2MmNl''@;'; + put 'put ''ZDM2YzgyZGY4M2I4ZmFlODU5IiwiY2Q0NTBlYzMzNTQzODk4NmRmZWZhMTBjNTdmZWE5YmNjNTIxYTA5NTliMmQ4MGJiZjc0YjE5MGRjYTcxMmQxMCJdLFsiZTc1NjA1ZDU5MTAyYTVhMjY4NDUwMGQzYjk5MWYyZTNmM2M4OGI5MzIyNTU0NzAzNWFmMjVhZjY2ZTA0NTQxZiIsImY1YzU0NzU0''@;'; + put 'put ''YThmNzFlZTU0MGI5YjQ4NzI4NDczZTMxNGY3MjlhYzUzMDhiMDY5MzgzNjA5OTBlMmJmYWQxMjUiXSxbImViOTg2NjBmNGM0ZGZhYTA2YTJiZTQ1M2Q1MDIwYmM5OWEwYzJlNjBhYmUzODg0NTdkZDQzZmVmYjFlZDYyMGMiLCI2Y2I5YTg4NzZkOWNiODUyMDYwOWFmM2FkZDI2Y2QyMGEwYTdj''@;'; + put 'put ''ZDhhOTQxMTEzMWNlODVmNDQxMDAwOTkyMjNlIl0sWyIxM2U4N2IwMjdkODUxNGQzNTkzOWYyZTY4OTJiMTk5MjIxNTQ1OTY5NDE4ODgzMzZkYzM1NjNlM2I4ZGJhOTQyIiwiZmVmNWEzYzY4MDU5YTZkZWM1ZDYyNDExNGJmMWU5MWFhYzJiOWRhNTY4ZDZhYmViMjU3MGQ1NTY0NmI4YWRmMSJd''@;'; + put 'put ''LFsiZWUxNjMwMjZlOWZkNmZlMDE3YzM4ZjA2YTViZTZmYzEyNTQyNGIzNzFjZTI3MDhlN2JmNDQ5MTY5MWU1NzY0YSIsIjFhY2IyNTBmMjU1ZGQ2MWM0M2Q5NGNjYzY3MGQwZjU4ZjQ5YWUzZmExNWI5NjYyM2U1NDMwZGEwYWQ2YzYyYjIiXSxbImIyNjhmNWVmOWFkNTFlNGQ3OGRlM2E3NTBj''@;'; + put 'put ''MmRjODliMWU2MjZkNDM1MDU4Njc5OTk5MzJlNWRiMzNhZjNkODAiLCI1ZjMxMGQ0YjNjOTliOWViYjE5Zjc3ZDQxYzFkZWUwMThjZjBkMzRmZDQxOTE2MTQwMDNlOTQ1YTEyMTZlNDIzIl0sWyJmZjA3ZjMxMThhOWRmMDM1ZTlmYWQ4NWViNmM3YmZlNDJiMDJmMDFjYTk5Y2VlYTNiZjdmZmRi''@;'; + put 'put ''YTkzYzQ3NTBkIiwiNDM4MTM2ZDYwM2U4NThhM2E1YzQ0MGMzOGVjY2JhZGRjMWQyOTQyMTE0ZTJlZGRkNDc0MGQwOThjZWQxZjBkOCJdLFsiOGQ4Yjk4NTVjN2MwNTJhMzQxNDZmZDIwZmZiNjU4YmVhNGI5ZjY5ZTBkODI1ZWJlYzE2ZThjM2NlMmI1MjZhMSIsImNkYjU1OWVlZGMyZDc5Zjky''@;'; + put 'put ''NmJhZjQ0ZmI4NGVhNGQ0NGJjZjUwZmVlNTFkN2NlYjMwZTJlN2Y0NjMwMzY3NTgiXSxbIjUyZGIwYjUzODRkZmJmMDViZmE5ZDQ3MmQ3YWUyNmRmZTRiODUxY2VjYTkxYjFlYmE1NDI2MzE4MGRhMzJiNjMiLCJjM2I5OTdkMDUwZWU1ZDQyM2ViYWY2NmE2ZGI5ZjU3YjMxODBjOTAyODc1Njc5''@;'; + put 'put ''ZGU5MjRiNjlkODRhN2IzNzUiXSxbImU2MmY5NDkwZDNkNTFkYTYzOTVlZmQyNGU4MDkxOWNjN2QwZjI5YzNmM2ZhNDhjNmZmZjU0M2JlY2JkNDMzNTIiLCI2ZDg5YWQ3YmE0ODc2YjBiMjJjMmNhMjgwYzY4Mjg2MmYzNDJjODU5MWYxZGFmNTE3MGUwN2JmZDljY2FmYTdkIl0sWyI3ZjMwZWEy''@;'; + put 'put ''NDc2YjM5OWI0OTU3NTA5Yzg4Zjc3ZDAxOTFhZmEyZmY1Y2I3YjE0ZmQ2ZDhlN2Q2NWFhYWIxMTkzIiwiY2E1ZWY3ZDRiMjMxYzk0YzNiMTUzODlhNWY2MzExZTlkYWZmN2JiNjdiMTAzZTk4ODBlZjRiZmY2MzdhY2FlYyJdLFsiNTA5OGZmMWUxZDlmMTRmYjQ2YTIxMGZhZGE2YzkwM2ZlZjBm''@;'; + put 'put ''YjdiNGExZGQxZDlhYzYwYTAzNjE4MDBiN2EwMCIsIjk3MzExNDFkODFmYzhmODA4NGQzN2M2ZTc1NDIwMDZiM2VlMWI0MGQ2MGRmZTUzNjJhNWIxMzJmZDE3ZGRjMCJdLFsiMzJiNzhjN2RlOWVlNTEyYTcyODk1YmU2YjljYmVmYTZlMmYzYzRjY2NlNDQ1Yzk2YjlmMmM4MWUyNzc4YWQ1OCIs''@;'; + put 'put ''ImVlMTg0OWY1MTNkZjcxZTMyZWZjMzg5NmVlMjgyNjBjNzNiYjgwNTQ3YWUyMjc1YmE0OTcyMzc3OTRjODc1M2MiXSxbImUyY2I3NGZkZGM4ZTlmYmNkMDc2ZWVmMmE3YzcyYjBjZTM3ZDUwZjA4MjY5ZGZjMDc0YjU4MTU1MDU0N2E0ZjciLCJkM2FhMmVkNzFjOWRkMjI0N2E2MmRmMDYyNzM2''@;'; + put 'put ''ZWIwYmFkZGVhOWUzNjEyMmQyYmU4NjQxYWJjYjAwNWNjNGE0Il0sWyI4NDM4NDQ3NTY2ZDRkN2JlZGFkYzI5OTQ5NmFiMzU3NDI2MDA5YTM1ZjIzNWNiMTQxYmUwZDk5Y2QxMGFlM2E4IiwiYzRlMTAyMDkxNjk4MGE0ZGE1ZDAxYWM1ZTZhZDMzMDczNGVmMGQ3OTA2NjMxYzRmMjM5MDQyNmIy''@;'; + put 'put ''ZWRkNzkxZiJdLFsiNDE2MmQ0ODhiODk0MDIwMzliNTg0YzZmYzZjMzA4ODcwNTg3ZDljNDZmNjYwYjg3OGFiNjVjODJjNzExZDY3ZSIsIjY3MTYzZTkwMzIzNjI4OWY3NzZmMjJjMjVmYjhhM2FmYzE3MzJmMmI4NGI0ZTk1ZGJkYTQ3YWU1YTA4NTI2NDkiXSxbIjNmYWQzZmE4NGNhZjBmMzRm''@;'; + put 'put ''MGY4OWJmZDJkY2Y1NGZjMTc1ZDc2N2FlYzNlNTA2ODRmM2JhNGE0YmY1ZjY4M2QiLCJjZDFiYzdjYjZjYzQwN2JiMmYwY2E2NDdjNzE4YTczMGNmNzE4NzJlN2QwZDJhNTNmYTIwZWZjZGZlNjE4MjYiXSxbIjY3NGYyNjAwYTMwMDdhMDA1NjhjMWE3Y2UwNWQwODE2YzFmYjg0YmYxMzcwNzk4''@;'; + put 'put ''ZjFjNjk1MzJmYWViMWE4NmIiLCIyOTlkMjFmOTQxM2YzM2IzZWRmNDNiMjU3MDA0NTgwYjcwZGI1N2RhMGIxODIyNTllMDllZWNjNjllMGQzOGE1Il0sWyJkMzJmNGRhNTRhZGU3NGFiYjgxYjgxNWFkMWZiM2IyNjNkODJkNmM2OTI3MTRiY2ZmODdkMjliZDVlZTlmMDhmIiwiZjk0MjllNzM4''@;'; + put 'put ''YjhlNTNiOTY4ZTk5MDE2YzA1OTcwNzc4MmUxNGY0NTM1MzU5ZDU4MmZjNDE2OTEwYjNlZWE4NyJdLFsiMzBlNGU2NzA0MzUzODU1NTZlNTkzNjU3MTM1ODQ1ZDM2ZmJiNjkzMWY3MmIwOGNiMWVkOTU0ZjFlM2NlM2ZmNiIsIjQ2MmY5YmNlNjE5ODk4NjM4NDk5MzUwMTEzYmJjOWIxMGE4Nzhk''@;'; + put 'put ''MzVkYTcwNzQwZGM2OTVhNTU5ZWI4OGRiN2IiXSxbImJlMjA2MjAwM2M1MWNjMzAwNDY4MjkwNDMzMGU0ZGVlN2YzZGNkMTBiMDFlNTgwYmYxOTcxYjA0ZDRjYWQyOTciLCI2MjE4OGJjNDlkNjFlNTQyODU3M2Q0OGE3NGUxYzY1NWIxYzYxMDkwOTA1NjgyYTBkNTU1OGVkNzJkY2NiOWJjIl0s''@;'; + put 'put ''WyI5MzE0NDQyM2FjZTM0NTFlZDI5ZTBmYjlhYzJhZjIxMWNiNmU4NGE2MDFkZjU5OTNjNDE5ODU5ZmZmNWRmMDRhIiwiN2MxMGRmYjE2NGMzNDI1ZjVjNzFhM2Y5ZDc5OTIwMzhmMTA2NTIyNGY3MmJiOWQxZDkwMmE2ZDEzMDM3YjQ3YyJdLFsiYjAxNWY4MDQ0ZjVmY2JkY2YyMWNhMjZkNmMz''@;'; + put 'put ''NGZiODE5NzgyOTIwNWM3YjdkMmE3Y2I2NjQxOGMxNTdiMTEyYyIsImFiOGMxZTA4NmQwNGU4MTM3NDRhNjU1YjJkZjhkNWY4M2IzY2RjNmZhYTMwODhjMWQzYWVhMTQ1NGUzYTFkNWYiXSxbImQ1ZTllMWRhNjQ5ZDk3ZDg5ZTQ4NjgxMTdhNDY1YTNhNGY4YTE4ZGU1N2ExNDBkMzZiM2YyYWYz''@;'; + put 'put ''NDFhMjFiNTIiLCI0Y2IwNDQzN2YzOTFlZDczMTExYTEzY2MxZDRkZDBkYjE2OTM0NjVjMjI0MDQ4MGQ4OTU1ZTg1OTJmMjc0NDdhIl0sWyJkM2FlNDEwNDdkZDdjYTA2NWRiZjhlZDc3Yjk5MjQzOTk4MzAwNWNkNzJlMTZkNmY5OTZhNTMxNmQzNjk2NmJiIiwiYmQxYWViMjFhZDIyZWJiMjJh''@;'; + put 'put ''MTBmMDMwMzQxN2M2ZDk2NGY4Y2RkN2RmMGFjYTYxNGIxMGRjMTRkMTI1YWM0NiJdLFsiNDYzZTI3NjNkODg1Zjk1OGZjNjZjZGQyMjgwMGYwYTQ4NzE5N2QwYTgyZTM3N2I0OWY4MGFmODdjODk3YjA2NSIsImJmZWZhY2RiMGU1ZDBmZDdkZjNhMzExYTk0ZGUwNjJiMjZiODBjNjFmYmM5NzUw''@;'; + put 'put ''OGI3OTk5MjY3MWVmN2NhN2YiXSxbIjc5ODVmZGZkMTI3YzA1NjdjNmY1M2VjMWJiNjNlYzMxNThlNTk3YzQwYmZlNzQ3YzgzY2RkZmM5MTA2NDE5MTciLCI2MDNjMTJkYWYzZDk4NjJlZjJiMjVmZTFkZTI4OWFlZDI0ZWQyOTFlMGVjNjcwODcwM2E1YmQ1NjdmMzJlZDAzIl0sWyI3NGExYWQ2''@;'; + put 'put ''YjVmNzZlMzlkYjJkZDI0OTQxMGVhYzdmOTllNzRjNTljYjgzZDJkMGVkNWZmMTU0M2RhNzcwM2U5IiwiY2M2MTU3ZWYxOGM5YzYzY2Q2MTkzZDgzNjMxYmJlYTAwOTNlMDk2ODk0MmU4YzMzZDU3MzdmZDc5MGUwZGIwOCJdLFsiMzA2ODJhNTA3MDMzNzVmNjAyZDQxNjY2NGJhMTliN2ZjOWJh''@;'; + put 'put ''YjQyYzcyNzQ3NDYzYTcxZDA4OTZiMjJmNmRhMyIsIjU1M2UwNGY2YjAxOGI0ZmE2YzhmMzllN2YzMTFkMzE3NjI5MGQwZTBmMTljYTczZjE3NzE0ZDk5NzdhMjJmZjgiXSxbIjllMjE1OGYwZDdjMGQ1ZjI2YzM3OTFlZmVmYTc5NTk3NjU0ZTdhMmIyNDY0ZjUyYjFlZTZjMTM0Nzc2OWVmNTci''@;'; + put 'put ''LCI3MTJmY2RkMWI5MDUzZjA5MDAzYTM0ODFmYTc3NjJlOWZmZDdjOGVmMzVhMzg1MDllMmZiZjI2MjkwMDgzNzMiXSxbIjE3NmUyNjk4OWE0M2M5Y2ZlYmE0MDI5YzIwMjUzOGMyODE3MmU1NjZlM2M0ZmNlNzMyMjg1N2YzYmUzMjdkNjYiLCJlZDhjYzlkMDRiMjllYjg3N2QyNzBiNDg3OGRj''@;'; + put 'put ''NDNjMTlhZWZkMzFmNGVlZTA5ZWU3YjQ3ODM0YzFmYTRiMWMzIl0sWyI3NWQ0NmVmZWEzNzcxZTZlNjhhYmI4OWExM2FkNzQ3ZWNmMTg5MjM5M2RmYzRmMWI3MDA0Nzg4YzUwMzc0ZGE4IiwiOTg1MjM5MGE5OTUwNzY3OWZkMGI4NmZkMmIzOWE4NjhkN2VmYzIyMTUxMzQ2ZTFhM2NhNDcyNjU4''@;'; + put 'put ''NmE2YmVkOCJdLFsiODA5YTIwYzY3ZDY0OTAwZmZiNjk4YzRjODI1ZjZkNWYyMzEwZmIwNDUxYzg2OTM0NWI3MzE5ZjY0NTYwNTcyMSIsIjllOTk0OTgwZDk5MTdlMjJiNzZiMDYxOTI3ZmEwNDE0M2QwOTZjY2M1NDk2M2U2YTVlYmZhNWYzZjhlMjg2YzEiXSxbIjFiMzg5MDNhNDNmN2YxMTRl''@;'; + put 'put ''ZDQ1MDBiNGVhYzcwODNmZGVmZWNlMWNmMjljNjM1MjhkNTYzNDQ2Zjk3MmMxODAiLCI0MDM2ZWRjOTMxYTYwYWU4ODkzNTNmNzdmZDUzZGU0YTI3MDhiMjZiNmY1ZGE3MmFkMzM5NDExOWRhZjQwOGY5Il1dfX19LDYxOTcwOihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9SmUsQj1M''@;'; + put 'put ''KDE3NDMzKSxFPUwoMzIzOTEpLE1lPUwoNTgxOTUpO21lLmFzc2VydD1FLG1lLnRvQXJyYXk9TWUudG9BcnJheSxtZS56ZXJvMj1NZS56ZXJvMixtZS50b0hleD1NZS50b0hleCxtZS5lbmNvZGU9TWUuZW5jb2RlLG1lLmdldE5BRj1mdW5jdGlvbiBVKFksVyxOKXt2YXIgZWU9bmV3IEFycmF5''@;'; + put 'put ''KE1hdGgubWF4KFkuYml0TGVuZ3RoKCksTikrMSk7ZWUuZmlsbCgwKTtmb3IodmFyIHE9MTw8VysxLEo9WS5jbG9uZSgpLHNlPTA7c2U8ZWUubGVuZ3RoO3NlKyspe3ZhciBvZSxjZT1KLmFuZGxuKHEtMSk7Si5pc09kZCgpP0ouaXN1Ym4ob2U9Y2U+KHE+PjEpLTE/KHE+PjEpLWNlOmNlKTpv''@;'; + put 'put ''ZT0wLGVlW3NlXT1vZSxKLml1c2hybigxKX1yZXR1cm4gZWV9LG1lLmdldEpTRj1mdW5jdGlvbiBRKFksVyl7dmFyIE49W1tdLFtdXTtZPVkuY2xvbmUoKSxXPVcuY2xvbmUoKTtmb3IodmFyIEosZWU9MCxxPTA7WS5jbXBuKC1lZSk+MHx8Vy5jbXBuKC1xKT4wOyl7dmFyIGNlLGRlLHNlPVku''@;'; + put 'put ''YW5kbG4oMykrZWUmMyxvZT1XLmFuZGxuKDMpK3EmMzszPT09c2UmJihzZT0tMSksMz09PW9lJiYob2U9LTEpLGNlPTA9PSgxJnNlKT8wOjMhPShKPVkuYW5kbG4oNykrZWUmNykmJjUhPT1KfHwyIT09b2U/c2U6LXNlLE5bMF0ucHVzaChjZSksZGU9MD09KDEmb2UpPzA6MyE9KEo9Vy5hbmRs''@;'; + put 'put ''big3KStxJjcpJiY1IT09Snx8MiE9PXNlP29lOi1vZSxOWzFdLnB1c2goZGUpLDIqZWU9PT1jZSsxJiYoZWU9MS1lZSksMipxPT09ZGUrMSYmKHE9MS1xKSxZLml1c2hybigxKSxXLml1c2hybigxKX1yZXR1cm4gTn0sbWUuY2FjaGVkUHJvcGVydHk9ZnVuY3Rpb24gWihZLFcsTil7dmFyIGVl''@;'; + put 'put ''PSJfIitXO1kucHJvdG90eXBlW1ddPWZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgMCE9PXRoaXNbZWVdP3RoaXNbZWVdOnRoaXNbZWVdPU4uY2FsbCh0aGlzKX19LG1lLnBhcnNlQnl0ZXM9ZnVuY3Rpb24gaWUoWSl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBZP21lLnRvQXJyYXkoWSwiaGV4Iik6''@;'; + put 'put ''WX0sbWUuaW50RnJvbUxFPWZ1bmN0aW9uIGFlKFkpe3JldHVybiBuZXcgQihZLCJoZXgiLCJsZSIpfX0sMTc0MzM6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lLEIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBFKGhlLE8pe2lmKCFoZSl0aHJvdyBuZXcgRXJyb3IoT3x8IkFzc2VydGlv''@;'; + put 'put ''biBmYWlsZWQiKX1mdW5jdGlvbiBNZShoZSxPKXtoZS5zdXBlcl89Tzt2YXIgej1mdW5jdGlvbigpe307ei5wcm90b3R5cGU9Ty5wcm90b3R5cGUsaGUucHJvdG90eXBlPW5ldyB6LGhlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1oZX1mdW5jdGlvbiBVKGhlLE8seil7aWYoVS5pc0JOKGhlKSly''@;'; + put 'put ''ZXR1cm4gaGU7dGhpcy5uZWdhdGl2ZT0wLHRoaXMud29yZHM9bnVsbCx0aGlzLmxlbmd0aD0wLHRoaXMucmVkPW51bGwsbnVsbCE9PWhlJiYoKCJsZSI9PT1PfHwiYmUiPT09TykmJih6PU8sTz0xMCksdGhpcy5faW5pdChoZXx8MCxPfHwxMCx6fHwiYmUiKSl9dmFyIFE7Im9iamVjdCI9PXR5''@;'; + put 'put ''cGVvZiBtZT9tZS5leHBvcnRzPVU6Qi5CTj1VLFUuQk49VSxVLndvcmRTaXplPTI2O3RyeXtRPSJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiZ2b2lkIDAhPT13aW5kb3cuQnVmZmVyP3dpbmRvdy5CdWZmZXI6TCg4NTU2OCkuQnVmZmVyfWNhdGNoKGhlKXt9ZnVuY3Rpb24gWihoZSxPKXt2''@;'; + put 'put ''YXIgej1oZS5jaGFyQ29kZUF0KE8pO3JldHVybiB6Pj02NSYmejw9NzA/ei01NTp6Pj05NyYmejw9MTAyP3otODc6ei00OCYxNX1mdW5jdGlvbiBpZShoZSxPLHope3ZhciBuZT1aKGhlLHopO3JldHVybiB6LTE+PU8mJihuZXw9WihoZSx6LTEpPDw0KSxuZX1mdW5jdGlvbiBhZShoZSxPLHos''@;'; + put 'put ''bmUpe2Zvcih2YXIgdGU9MCx4PU1hdGgubWluKGhlLmxlbmd0aCx6KSxQPU87UDx4O1ArKyl7dmFyIFY9aGUuY2hhckNvZGVBdChQKS00ODt0ZSo9bmUsdGUrPVY+PTQ5P1YtNDkrMTA6Vj49MTc/Vi0xNysxMDpWfXJldHVybiB0ZX1VLmlzQk49ZnVuY3Rpb24oTyl7cmV0dXJuIE8gaW5zdGFu''@;'; + put 'put ''Y2VvZiBVfHxudWxsIT09TyYmIm9iamVjdCI9PXR5cGVvZiBPJiZPLmNvbnN0cnVjdG9yLndvcmRTaXplPT09VS53b3JkU2l6ZSYmQXJyYXkuaXNBcnJheShPLndvcmRzKX0sVS5tYXg9ZnVuY3Rpb24oTyx6KXtyZXR1cm4gTy5jbXAoeik+MD9POnp9LFUubWluPWZ1bmN0aW9uKE8seil7cmV0''@;'; + put 'put ''dXJuIE8uY21wKHopPDA/Tzp6fSxVLnByb3RvdHlwZS5faW5pdD1mdW5jdGlvbihPLHosbmUpe2lmKCJudW1iZXIiPT10eXBlb2YgTylyZXR1cm4gdGhpcy5faW5pdE51bWJlcihPLHosbmUpO2lmKCJvYmplY3QiPT10eXBlb2YgTylyZXR1cm4gdGhpcy5faW5pdEFycmF5KE8seixuZSk7Imhl''@;'; + put 'put ''eCI9PT16JiYoej0xNiksRSh6PT09KDB8eikmJno+PTImJno8PTM2KTt2YXIgdGU9MDsiLSI9PT0oTz1PLnRvU3RyaW5nKCkucmVwbGFjZSgvXHMrL2csIiIpKVswXSYmKHRlKyssdGhpcy5uZWdhdGl2ZT0xKSx0ZTxPLmxlbmd0aCYmKDE2PT09ej90aGlzLl9wYXJzZUhleChPLHRlLG5lKToo''@;'; + put 'put ''dGhpcy5fcGFyc2VCYXNlKE8seix0ZSksImxlIj09PW5lJiZ0aGlzLl9pbml0QXJyYXkodGhpcy50b0FycmF5KCkseixuZSkpKX0sVS5wcm90b3R5cGUuX2luaXROdW1iZXI9ZnVuY3Rpb24oTyx6LG5lKXtPPDAmJih0aGlzLm5lZ2F0aXZlPTEsTz0tTyksTzw2NzEwODg2ND8odGhpcy53b3Jk''@;'; + put 'put ''cz1bNjcxMDg4NjMmT10sdGhpcy5sZW5ndGg9MSk6Tzw0NTAzNTk5NjI3MzcwNDk2Pyh0aGlzLndvcmRzPVs2NzEwODg2MyZPLE8vNjcxMDg4NjQmNjcxMDg4NjNdLHRoaXMubGVuZ3RoPTIpOihFKE88OTAwNzE5OTI1NDc0MDk5MiksdGhpcy53b3Jkcz1bNjcxMDg4NjMmTyxPLzY3MTA4ODY0''@;'; + put 'put ''JjY3MTA4ODYzLDFdLHRoaXMubGVuZ3RoPTMpLCJsZSI9PT1uZSYmdGhpcy5faW5pdEFycmF5KHRoaXMudG9BcnJheSgpLHosbmUpfSxVLnByb3RvdHlwZS5faW5pdEFycmF5PWZ1bmN0aW9uKE8seixuZSl7aWYoRSgibnVtYmVyIj09dHlwZW9mIE8ubGVuZ3RoKSxPLmxlbmd0aDw9MClyZXR1''@;'; + put 'put ''cm4gdGhpcy53b3Jkcz1bMF0sdGhpcy5sZW5ndGg9MSx0aGlzO3RoaXMubGVuZ3RoPU1hdGguY2VpbChPLmxlbmd0aC8zKSx0aGlzLndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCk7Zm9yKHZhciB0ZT0wO3RlPHRoaXMubGVuZ3RoO3RlKyspdGhpcy53b3Jkc1t0ZV09MDt2YXIgeCxQLFY9''@;'; + put 'put ''MDtpZigiYmUiPT09bmUpZm9yKHRlPU8ubGVuZ3RoLTEseD0wO3RlPj0wO3RlLT0zKXRoaXMud29yZHNbeF18PShQPU9bdGVdfE9bdGUtMV08PDh8T1t0ZS0yXTw8MTYpPDxWJjY3MTA4ODYzLHRoaXMud29yZHNbeCsxXT1QPj4+MjYtViY2NzEwODg2MywoVis9MjQpPj0yNiYmKFYtPTI2LHgr''@;'; + put 'put ''Kyk7ZWxzZSBpZigibGUiPT09bmUpZm9yKHRlPTAseD0wO3RlPE8ubGVuZ3RoO3RlKz0zKXRoaXMud29yZHNbeF18PShQPU9bdGVdfE9bdGUrMV08PDh8T1t0ZSsyXTw8MTYpPDxWJjY3MTA4ODYzLHRoaXMud29yZHNbeCsxXT1QPj4+MjYtViY2NzEwODg2MywoVis9MjQpPj0yNiYmKFYtPTI2''@;'; + put 'put ''LHgrKyk7cmV0dXJuIHRoaXMuc3RyaXAoKX0sVS5wcm90b3R5cGUuX3BhcnNlSGV4PWZ1bmN0aW9uKE8seixuZSl7dGhpcy5sZW5ndGg9TWF0aC5jZWlsKChPLmxlbmd0aC16KS82KSx0aGlzLndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCk7Zm9yKHZhciB0ZT0wO3RlPHRoaXMubGVuZ3Ro''@;'; + put 'put ''O3RlKyspdGhpcy53b3Jkc1t0ZV09MDt2YXIgVix4PTAsUD0wO2lmKCJiZSI9PT1uZSlmb3IodGU9Ty5sZW5ndGgtMTt0ZT49ejt0ZS09MilWPWllKE8seix0ZSk8PHgsdGhpcy53b3Jkc1tQXXw9NjcxMDg4NjMmVix4Pj0xOD8oeC09MTgsdGhpcy53b3Jkc1tQKz0xXXw9Vj4+PjI2KTp4Kz04''@;'; + put 'put ''O2Vsc2UgZm9yKHRlPShPLmxlbmd0aC16KSUyPT0wP3orMTp6O3RlPE8ubGVuZ3RoO3RlKz0yKVY9aWUoTyx6LHRlKTw8eCx0aGlzLndvcmRzW1BdfD02NzEwODg2MyZWLHg+PTE4Pyh4LT0xOCx0aGlzLndvcmRzW1ArPTFdfD1WPj4+MjYpOngrPTg7dGhpcy5zdHJpcCgpfSxVLnByb3RvdHlw''@;'; + put 'put ''ZS5fcGFyc2VCYXNlPWZ1bmN0aW9uKE8seixuZSl7dGhpcy53b3Jkcz1bMF0sdGhpcy5sZW5ndGg9MTtmb3IodmFyIHRlPTAseD0xO3g8PTY3MTA4ODYzO3gqPXopdGUrKzt0ZS0tLHg9eC96fDA7Zm9yKHZhciBQPU8ubGVuZ3RoLW5lLFY9UCV0ZSxUPU1hdGgubWluKFAsUC1WKStuZSxTPTAs''@;'; + put 'put ''Rj1uZTtGPFQ7Ris9dGUpUz1hZShPLEYsRit0ZSx6KSx0aGlzLmltdWxuKHgpLHRoaXMud29yZHNbMF0rUzw2NzEwODg2ND90aGlzLndvcmRzWzBdKz1TOnRoaXMuX2lhZGRuKFMpO2lmKDAhPT1WKXt2YXIgeWU9MTtmb3IoUz1hZShPLEYsTy5sZW5ndGgseiksRj0wO0Y8VjtGKyspeWUqPXo7''@;'; + put 'put ''dGhpcy5pbXVsbih5ZSksdGhpcy53b3Jkc1swXStTPDY3MTA4ODY0P3RoaXMud29yZHNbMF0rPVM6dGhpcy5faWFkZG4oUyl9dGhpcy5zdHJpcCgpfSxVLnByb3RvdHlwZS5jb3B5PWZ1bmN0aW9uKE8pe08ud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoKTtmb3IodmFyIHo9MDt6PHRoaXMu''@;'; + put 'put ''bGVuZ3RoO3orKylPLndvcmRzW3pdPXRoaXMud29yZHNbel07Ty5sZW5ndGg9dGhpcy5sZW5ndGgsTy5uZWdhdGl2ZT10aGlzLm5lZ2F0aXZlLE8ucmVkPXRoaXMucmVkfSxVLnByb3RvdHlwZS5jbG9uZT1mdW5jdGlvbigpe3ZhciBPPW5ldyBVKG51bGwpO3JldHVybiB0aGlzLmNvcHkoTyks''@;'; + put 'put ''T30sVS5wcm90b3R5cGUuX2V4cGFuZD1mdW5jdGlvbihPKXtmb3IoO3RoaXMubGVuZ3RoPE87KXRoaXMud29yZHNbdGhpcy5sZW5ndGgrK109MDtyZXR1cm4gdGhpc30sVS5wcm90b3R5cGUuc3RyaXA9ZnVuY3Rpb24oKXtmb3IoO3RoaXMubGVuZ3RoPjEmJjA9PT10aGlzLndvcmRzW3RoaXMu''@;'; + put 'put ''bGVuZ3RoLTFdOyl0aGlzLmxlbmd0aC0tO3JldHVybiB0aGlzLl9ub3JtU2lnbigpfSxVLnByb3RvdHlwZS5fbm9ybVNpZ249ZnVuY3Rpb24oKXtyZXR1cm4gMT09PXRoaXMubGVuZ3RoJiYwPT09dGhpcy53b3Jkc1swXSYmKHRoaXMubmVnYXRpdmU9MCksdGhpc30sVS5wcm90b3R5cGUuaW5z''@;'; + put 'put ''cGVjdD1mdW5jdGlvbigpe3JldHVybih0aGlzLnJlZD8iPEJOLVI6ICI6IjxCTjogIikrdGhpcy50b1N0cmluZygxNikrIj4ifTt2YXIgWT1bIiIsIjAiLCIwMCIsIjAwMCIsIjAwMDAiLCIwMDAwMCIsIjAwMDAwMCIsIjAwMDAwMDAiLCIwMDAwMDAwMCIsIjAwMDAwMDAwMCIsIjAwMDAwMDAw''@;'; + put 'put ''MDAiLCIwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAi''@;'; + put 'put ''LCIwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiXSxXPVswLDAsMjUs''@;'; + put 'put ''MTYsMTIsMTEsMTAsOSw4LDgsNyw3LDcsNyw2LDYsNiw2LDYsNiw2LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDVdLE49WzAsMCwzMzU1NDQzMiw0MzA0NjcyMSwxNjc3NzIxNiw0ODgyODEyNSw2MDQ2NjE3Niw0MDM1MzYwNywxNjc3NzIxNiw0MzA0NjcyMSwxZTcsMTk0ODcxNzEs''@;'; + put 'put ''MzU4MzE4MDgsNjI3NDg1MTcsNzUyOTUzNiwxMTM5MDYyNSwxNjc3NzIxNiwyNDEzNzU2OSwzNDAxMjIyNCw0NzA0NTg4MSw2NGU2LDQwODQxMDEsNTE1MzYzMiw2NDM2MzQzLDc5NjI2MjQsOTc2NTYyNSwxMTg4MTM3NiwxNDM0ODkwNywxNzIxMDM2OCwyMDUxMTE0OSwyNDNlNSwyODYyOTE1''@;'; + put 'put ''MSwzMzU1NDQzMiwzOTEzNTM5Myw0NTQzNTQyNCw1MjUyMTg3NSw2MDQ2NjE3Nl07ZnVuY3Rpb24gcShoZSxPLHope3oubmVnYXRpdmU9Ty5uZWdhdGl2ZV5oZS5uZWdhdGl2ZTt2YXIgbmU9aGUubGVuZ3RoK08ubGVuZ3RofDA7ei5sZW5ndGg9bmUsbmU9bmUtMXwwO3ZhciB0ZT0wfGhlLndv''@;'; + put 'put ''cmRzWzBdLHg9MHxPLndvcmRzWzBdLFA9dGUqeCxUPVAvNjcxMDg4NjR8MDt6LndvcmRzWzBdPTY3MTA4ODYzJlA7Zm9yKHZhciBTPTE7UzxuZTtTKyspe2Zvcih2YXIgRj1UPj4+MjYseWU9NjcxMDg4NjMmVCxDZT1NYXRoLm1pbihTLE8ubGVuZ3RoLTEpLERlPU1hdGgubWF4KDAsUy1oZS5s''@;'; + put 'put ''ZW5ndGgrMSk7RGU8PUNlO0RlKyspRis9KFA9KHRlPTB8aGUud29yZHNbUy1EZXwwXSkqKHg9MHxPLndvcmRzW0RlXSkreWUpLzY3MTA4ODY0fDAseWU9NjcxMDg4NjMmUDt6LndvcmRzW1NdPTB8eWUsVD0wfEZ9cmV0dXJuIDAhPT1UP3oud29yZHNbU109MHxUOnoubGVuZ3RoLS0sei5zdHJp''@;'; + put 'put ''cCgpfVUucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKE8seil7dmFyIG5lO2lmKHo9MHx6fHwxLDE2PT09KE89T3x8MTApfHwiaGV4Ij09PU8pe25lPSIiO2Zvcih2YXIgdGU9MCx4PTAsUD0wO1A8dGhpcy5sZW5ndGg7UCsrKXt2YXIgVj10aGlzLndvcmRzW1BdLFQ9KDE2Nzc3MjE1JihW''@;'; + put 'put ''PDx0ZXx4KSkudG9TdHJpbmcoMTYpO25lPTAhPSh4PVY+Pj4yNC10ZSYxNjc3NzIxNSl8fFAhPT10aGlzLmxlbmd0aC0xP1lbNi1ULmxlbmd0aF0rVCtuZTpUK25lLCh0ZSs9Mik+PTI2JiYodGUtPTI2LFAtLSl9Zm9yKDAhPT14JiYobmU9eC50b1N0cmluZygxNikrbmUpO25lLmxlbmd0aCV6''@;'; + put 'put ''IT0wOyluZT0iMCIrbmU7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlJiYobmU9Ii0iK25lKSxuZX1pZihPPT09KDB8TykmJk8+PTImJk88PTM2KXt2YXIgUz1XW09dLEY9TltPXTtuZT0iIjt2YXIgeWU9dGhpcy5jbG9uZSgpO2Zvcih5ZS5uZWdhdGl2ZT0wOyF5ZS5pc1plcm8oKTspe3ZhciBD''@;'; + put 'put ''ZT15ZS5tb2RuKEYpLnRvU3RyaW5nKE8pO25lPSh5ZT15ZS5pZGl2bihGKSkuaXNaZXJvKCk/Q2UrbmU6WVtTLUNlLmxlbmd0aF0rQ2UrbmV9Zm9yKHRoaXMuaXNaZXJvKCkmJihuZT0iMCIrbmUpO25lLmxlbmd0aCV6IT0wOyluZT0iMCIrbmU7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlJiYo''@;'; + put 'put ''bmU9Ii0iK25lKSxuZX1FKCExLCJCYXNlIHNob3VsZCBiZSBiZXR3ZWVuIDIgYW5kIDM2Iil9LFUucHJvdG90eXBlLnRvTnVtYmVyPWZ1bmN0aW9uKCl7dmFyIE89dGhpcy53b3Jkc1swXTtyZXR1cm4gMj09PXRoaXMubGVuZ3RoP08rPTY3MTA4ODY0KnRoaXMud29yZHNbMV06Mz09PXRoaXMu''@;'; + put 'put ''bGVuZ3RoJiYxPT09dGhpcy53b3Jkc1syXT9PKz00NTAzNTk5NjI3MzcwNDk2KzY3MTA4ODY0KnRoaXMud29yZHNbMV06dGhpcy5sZW5ndGg+MiYmRSghMSwiTnVtYmVyIGNhbiBvbmx5IHNhZmVseSBzdG9yZSB1cCB0byA1MyBiaXRzIiksMCE9PXRoaXMubmVnYXRpdmU/LU86T30sVS5wcm90''@;'; + put 'put ''b3R5cGUudG9KU09OPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudG9TdHJpbmcoMTYpfSxVLnByb3RvdHlwZS50b0J1ZmZlcj1mdW5jdGlvbihPLHope3JldHVybiBFKHZvaWQgMCE9PVEpLHRoaXMudG9BcnJheUxpa2UoUSxPLHopfSxVLnByb3RvdHlwZS50b0FycmF5PWZ1bmN0aW9uKE8seil7''@;'; + put 'put ''cmV0dXJuIHRoaXMudG9BcnJheUxpa2UoQXJyYXksTyx6KX0sVS5wcm90b3R5cGUudG9BcnJheUxpa2U9ZnVuY3Rpb24oTyx6LG5lKXt2YXIgdGU9dGhpcy5ieXRlTGVuZ3RoKCkseD1uZXx8TWF0aC5tYXgoMSx0ZSk7RSh0ZTw9eCwiYnl0ZSBhcnJheSBsb25nZXIgdGhhbiBkZXNpcmVkIGxl''@;'; + put 'put ''bmd0aCIpLEUoeD4wLCJSZXF1ZXN0ZWQgYXJyYXkgbGVuZ3RoIDw9IDAiKSx0aGlzLnN0cmlwKCk7dmFyIFQsUyxQPSJsZSI9PT16LFY9bmV3IE8oeCksRj10aGlzLmNsb25lKCk7aWYoUCl7Zm9yKFM9MDshRi5pc1plcm8oKTtTKyspVD1GLmFuZGxuKDI1NSksRi5pdXNocm4oOCksVltTXT1U''@;'; + put 'put ''O2Zvcig7Uzx4O1MrKylWW1NdPTB9ZWxzZXtmb3IoUz0wO1M8eC10ZTtTKyspVltTXT0wO2ZvcihTPTA7IUYuaXNaZXJvKCk7UysrKVQ9Ri5hbmRsbigyNTUpLEYuaXVzaHJuKDgpLFZbeC1TLTFdPVR9cmV0dXJuIFZ9LFUucHJvdG90eXBlLl9jb3VudEJpdHM9TWF0aC5jbHozMj9mdW5jdGlv''@;'; + put 'put ''bihPKXtyZXR1cm4gMzItTWF0aC5jbHozMihPKX06ZnVuY3Rpb24oTyl7dmFyIHo9TyxuZT0wO3JldHVybiB6Pj00MDk2JiYobmUrPTEzLHo+Pj49MTMpLHo+PTY0JiYobmUrPTcsej4+Pj03KSx6Pj04JiYobmUrPTQsej4+Pj00KSx6Pj0yJiYobmUrPTIsej4+Pj0yKSxuZSt6fSxVLnByb3Rv''@;'; + put 'put ''dHlwZS5femVyb0JpdHM9ZnVuY3Rpb24oTyl7aWYoMD09PU8pcmV0dXJuIDI2O3ZhciB6PU8sbmU9MDtyZXR1cm4gMD09KDgxOTEmeikmJihuZSs9MTMsej4+Pj0xMyksMD09KDEyNyZ6KSYmKG5lKz03LHo+Pj49NyksMD09KDE1JnopJiYobmUrPTQsej4+Pj00KSwwPT0oMyZ6KSYmKG5lKz0y''@;'; + put 'put ''LHo+Pj49MiksMD09KDEmeikmJm5lKyssbmV9LFUucHJvdG90eXBlLmJpdExlbmd0aD1mdW5jdGlvbigpe3ZhciB6PXRoaXMuX2NvdW50Qml0cyh0aGlzLndvcmRzW3RoaXMubGVuZ3RoLTFdKTtyZXR1cm4gMjYqKHRoaXMubGVuZ3RoLTEpK3p9LFUucHJvdG90eXBlLnplcm9CaXRzPWZ1bmN0''@;'; + put 'put ''aW9uKCl7aWYodGhpcy5pc1plcm8oKSlyZXR1cm4gMDtmb3IodmFyIE89MCx6PTA7ejx0aGlzLmxlbmd0aDt6Kyspe3ZhciBuZT10aGlzLl96ZXJvQml0cyh0aGlzLndvcmRzW3pdKTtpZihPKz1uZSwyNiE9PW5lKWJyZWFrfXJldHVybiBPfSxVLnByb3RvdHlwZS5ieXRlTGVuZ3RoPWZ1bmN0''@;'; + put 'put ''aW9uKCl7cmV0dXJuIE1hdGguY2VpbCh0aGlzLmJpdExlbmd0aCgpLzgpfSxVLnByb3RvdHlwZS50b1R3b3M9ZnVuY3Rpb24oTyl7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlP3RoaXMuYWJzKCkuaW5vdG4oTykuaWFkZG4oMSk6dGhpcy5jbG9uZSgpfSxVLnByb3RvdHlwZS5mcm9tVHdvcz1m''@;'; + put 'put ''dW5jdGlvbihPKXtyZXR1cm4gdGhpcy50ZXN0bihPLTEpP3RoaXMubm90bihPKS5pYWRkbigxKS5pbmVnKCk6dGhpcy5jbG9uZSgpfSxVLnByb3RvdHlwZS5pc05lZz1mdW5jdGlvbigpe3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZX0sVS5wcm90b3R5cGUubmVnPWZ1bmN0aW9uKCl7cmV0dXJu''@;'; + put 'put ''IHRoaXMuY2xvbmUoKS5pbmVnKCl9LFUucHJvdG90eXBlLmluZWc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pc1plcm8oKXx8KHRoaXMubmVnYXRpdmVePTEpLHRoaXN9LFUucHJvdG90eXBlLml1b3I9ZnVuY3Rpb24oTyl7Zm9yKDt0aGlzLmxlbmd0aDxPLmxlbmd0aDspdGhpcy53b3Jkc1t0''@;'; + put 'put ''aGlzLmxlbmd0aCsrXT0wO2Zvcih2YXIgej0wO3o8Ty5sZW5ndGg7eisrKXRoaXMud29yZHNbel09dGhpcy53b3Jkc1t6XXxPLndvcmRzW3pdO3JldHVybiB0aGlzLnN0cmlwKCl9LFUucHJvdG90eXBlLmlvcj1mdW5jdGlvbihPKXtyZXR1cm4gRSgwPT0odGhpcy5uZWdhdGl2ZXxPLm5lZ2F0''@;'; + put 'put ''aXZlKSksdGhpcy5pdW9yKE8pfSxVLnByb3RvdHlwZS5vcj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5sZW5ndGg+Ty5sZW5ndGg/dGhpcy5jbG9uZSgpLmlvcihPKTpPLmNsb25lKCkuaW9yKHRoaXMpfSxVLnByb3RvdHlwZS51b3I9ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMubGVuZ3RoPk8u''@;'; + put 'put ''bGVuZ3RoP3RoaXMuY2xvbmUoKS5pdW9yKE8pOk8uY2xvbmUoKS5pdW9yKHRoaXMpfSxVLnByb3RvdHlwZS5pdWFuZD1mdW5jdGlvbihPKXt2YXIgejt6PXRoaXMubGVuZ3RoPk8ubGVuZ3RoP086dGhpcztmb3IodmFyIG5lPTA7bmU8ei5sZW5ndGg7bmUrKyl0aGlzLndvcmRzW25lXT10aGlz''@;'; + put 'put ''LndvcmRzW25lXSZPLndvcmRzW25lXTtyZXR1cm4gdGhpcy5sZW5ndGg9ei5sZW5ndGgsdGhpcy5zdHJpcCgpfSxVLnByb3RvdHlwZS5pYW5kPWZ1bmN0aW9uKE8pe3JldHVybiBFKDA9PSh0aGlzLm5lZ2F0aXZlfE8ubmVnYXRpdmUpKSx0aGlzLml1YW5kKE8pfSxVLnByb3RvdHlwZS5hbmQ9''@;'; + put 'put ''ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMubGVuZ3RoPk8ubGVuZ3RoP3RoaXMuY2xvbmUoKS5pYW5kKE8pOk8uY2xvbmUoKS5pYW5kKHRoaXMpfSxVLnByb3RvdHlwZS51YW5kPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmxlbmd0aD5PLmxlbmd0aD90aGlzLmNsb25lKCkuaXVhbmQoTyk6Ty5j''@;'; + put 'put ''bG9uZSgpLml1YW5kKHRoaXMpfSxVLnByb3RvdHlwZS5pdXhvcj1mdW5jdGlvbihPKXt2YXIgeixuZTt0aGlzLmxlbmd0aD5PLmxlbmd0aD8oej10aGlzLG5lPU8pOih6PU8sbmU9dGhpcyk7Zm9yKHZhciB0ZT0wO3RlPG5lLmxlbmd0aDt0ZSsrKXRoaXMud29yZHNbdGVdPXoud29yZHNbdGVd''@;'; + put 'put ''Xm5lLndvcmRzW3RlXTtpZih0aGlzIT09eilmb3IoO3RlPHoubGVuZ3RoO3RlKyspdGhpcy53b3Jkc1t0ZV09ei53b3Jkc1t0ZV07cmV0dXJuIHRoaXMubGVuZ3RoPXoubGVuZ3RoLHRoaXMuc3RyaXAoKX0sVS5wcm90b3R5cGUuaXhvcj1mdW5jdGlvbihPKXtyZXR1cm4gRSgwPT0odGhpcy5u''@;'; + put 'put ''ZWdhdGl2ZXxPLm5lZ2F0aXZlKSksdGhpcy5pdXhvcihPKX0sVS5wcm90b3R5cGUueG9yPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmxlbmd0aD5PLmxlbmd0aD90aGlzLmNsb25lKCkuaXhvcihPKTpPLmNsb25lKCkuaXhvcih0aGlzKX0sVS5wcm90b3R5cGUudXhvcj1mdW5jdGlvbihPKXty''@;'; + put 'put ''ZXR1cm4gdGhpcy5sZW5ndGg+Ty5sZW5ndGg/dGhpcy5jbG9uZSgpLml1eG9yKE8pOk8uY2xvbmUoKS5pdXhvcih0aGlzKX0sVS5wcm90b3R5cGUuaW5vdG49ZnVuY3Rpb24oTyl7RSgibnVtYmVyIj09dHlwZW9mIE8mJk8+PTApO3ZhciB6PTB8TWF0aC5jZWlsKE8vMjYpLG5lPU8lMjY7dGhp''@;'; + put 'put ''cy5fZXhwYW5kKHopLG5lPjAmJnotLTtmb3IodmFyIHRlPTA7dGU8ejt0ZSsrKXRoaXMud29yZHNbdGVdPTY3MTA4ODYzJn50aGlzLndvcmRzW3RlXTtyZXR1cm4gbmU+MCYmKHRoaXMud29yZHNbdGVdPX50aGlzLndvcmRzW3RlXSY2NzEwODg2Mz4+MjYtbmUpLHRoaXMuc3RyaXAoKX0sVS5w''@;'; + put 'put ''cm90b3R5cGUubm90bj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlub3RuKE8pfSxVLnByb3RvdHlwZS5zZXRuPWZ1bmN0aW9uKE8seil7RSgibnVtYmVyIj09dHlwZW9mIE8mJk8+PTApO3ZhciBuZT1PLzI2fDAsdGU9TyUyNjtyZXR1cm4gdGhpcy5fZXhwYW5kKG5lKzEpLHRo''@;'; + put 'put ''aXMud29yZHNbbmVdPXo/dGhpcy53b3Jkc1tuZV18MTw8dGU6dGhpcy53b3Jkc1tuZV0mfigxPDx0ZSksdGhpcy5zdHJpcCgpfSxVLnByb3RvdHlwZS5pYWRkPWZ1bmN0aW9uKE8pe3ZhciB6LG5lLHRlO2lmKDAhPT10aGlzLm5lZ2F0aXZlJiYwPT09Ty5uZWdhdGl2ZSlyZXR1cm4gdGhpcy5u''@;'; + put 'put ''ZWdhdGl2ZT0wLHo9dGhpcy5pc3ViKE8pLHRoaXMubmVnYXRpdmVePTEsdGhpcy5fbm9ybVNpZ24oKTtpZigwPT09dGhpcy5uZWdhdGl2ZSYmMCE9PU8ubmVnYXRpdmUpcmV0dXJuIE8ubmVnYXRpdmU9MCx6PXRoaXMuaXN1YihPKSxPLm5lZ2F0aXZlPTEsei5fbm9ybVNpZ24oKTt0aGlzLmxl''@;'; + put 'put ''bmd0aD5PLmxlbmd0aD8obmU9dGhpcyx0ZT1PKToobmU9Tyx0ZT10aGlzKTtmb3IodmFyIHg9MCxQPTA7UDx0ZS5sZW5ndGg7UCsrKXRoaXMud29yZHNbUF09NjcxMDg4NjMmKHo9KDB8bmUud29yZHNbUF0pKygwfHRlLndvcmRzW1BdKSt4KSx4PXo+Pj4yNjtmb3IoOzAhPT14JiZQPG5lLmxl''@;'; + put 'put ''bmd0aDtQKyspdGhpcy53b3Jkc1tQXT02NzEwODg2MyYoej0oMHxuZS53b3Jkc1tQXSkreCkseD16Pj4+MjY7aWYodGhpcy5sZW5ndGg9bmUubGVuZ3RoLDAhPT14KXRoaXMud29yZHNbdGhpcy5sZW5ndGhdPXgsdGhpcy5sZW5ndGgrKztlbHNlIGlmKG5lIT09dGhpcylmb3IoO1A8bmUubGVu''@;'; + put 'put ''Z3RoO1ArKyl0aGlzLndvcmRzW1BdPW5lLndvcmRzW1BdO3JldHVybiB0aGlzfSxVLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oTyl7dmFyIHo7cmV0dXJuIDAhPT1PLm5lZ2F0aXZlJiYwPT09dGhpcy5uZWdhdGl2ZT8oTy5uZWdhdGl2ZT0wLHo9dGhpcy5zdWIoTyksTy5uZWdhdGl2ZV49MSx6''@;'; + put 'put ''KTowPT09Ty5uZWdhdGl2ZSYmMCE9PXRoaXMubmVnYXRpdmU/KHRoaXMubmVnYXRpdmU9MCx6PU8uc3ViKHRoaXMpLHRoaXMubmVnYXRpdmU9MSx6KTp0aGlzLmxlbmd0aD5PLmxlbmd0aD90aGlzLmNsb25lKCkuaWFkZChPKTpPLmNsb25lKCkuaWFkZCh0aGlzKX0sVS5wcm90b3R5cGUuaXN1''@;'; + put 'put ''Yj1mdW5jdGlvbihPKXtpZigwIT09Ty5uZWdhdGl2ZSl7Ty5uZWdhdGl2ZT0wO3ZhciB6PXRoaXMuaWFkZChPKTtyZXR1cm4gTy5uZWdhdGl2ZT0xLHouX25vcm1TaWduKCl9aWYoMCE9PXRoaXMubmVnYXRpdmUpcmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlzLmlhZGQoTyksdGhpcy5uZWdh''@;'; + put 'put ''dGl2ZT0xLHRoaXMuX25vcm1TaWduKCk7dmFyIHRlLHgsbmU9dGhpcy5jbXAoTyk7aWYoMD09PW5lKXJldHVybiB0aGlzLm5lZ2F0aXZlPTAsdGhpcy5sZW5ndGg9MSx0aGlzLndvcmRzWzBdPTAsdGhpcztuZT4wPyh0ZT10aGlzLHg9Tyk6KHRlPU8seD10aGlzKTtmb3IodmFyIFA9MCxWPTA7''@;'; + put 'put ''Vjx4Lmxlbmd0aDtWKyspUD0oej0oMHx0ZS53b3Jkc1tWXSktKDB8eC53b3Jkc1tWXSkrUCk+PjI2LHRoaXMud29yZHNbVl09NjcxMDg4NjMmejtmb3IoOzAhPT1QJiZWPHRlLmxlbmd0aDtWKyspUD0oej0oMHx0ZS53b3Jkc1tWXSkrUCk+PjI2LHRoaXMud29yZHNbVl09NjcxMDg4NjMmejtp''@;'; + put 'put ''ZigwPT09UCYmVjx0ZS5sZW5ndGgmJnRlIT09dGhpcylmb3IoO1Y8dGUubGVuZ3RoO1YrKyl0aGlzLndvcmRzW1ZdPXRlLndvcmRzW1ZdO3JldHVybiB0aGlzLmxlbmd0aD1NYXRoLm1heCh0aGlzLmxlbmd0aCxWKSx0ZSE9PXRoaXMmJih0aGlzLm5lZ2F0aXZlPTEpLHRoaXMuc3RyaXAoKX0s''@;'; + put 'put ''VS5wcm90b3R5cGUuc3ViPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmNsb25lKCkuaXN1YihPKX07dmFyIEo9ZnVuY3Rpb24oTyx6LG5lKXt2YXIgVCxTLEYsdGU9Ty53b3Jkcyx4PXoud29yZHMsUD1uZS53b3JkcyxWPTAseWU9MHx0ZVswXSxDZT04MTkxJnllLERlPXllPj4+MTMsUGU9MHx0''@;'; + put 'put ''ZVsxXSxRZT04MTkxJlBlLCRlPVBlPj4+MTMsZ3Q9MHx0ZVsyXSx3dD04MTkxJmd0LG10PWd0Pj4+MTMsdnQ9MHx0ZVszXSxBdD04MTkxJnZ0LGh0PXZ0Pj4+MTMsQnQ9MHx0ZVs0XSxvbj04MTkxJkJ0LF90PUJ0Pj4+MTMsdHQ9MHx0ZVs1XSxldD04MTkxJnR0LGF0PXR0Pj4+MTMsTHQ9MHx0''@;'; + put 'put ''ZVs2XSxDdD04MTkxJkx0LGZ0PUx0Pj4+MTMsSHQ9MHx0ZVs3XSxHZT04MTkxJkh0LFVlPUh0Pj4+MTMseXQ9MHx0ZVs4XSxqdD04MTkxJnl0LFF0PXl0Pj4+MTMsZ249MHx0ZVs5XSxkbj04MTkxJmduLHluPWduPj4+MTMsbG49MHx4WzBdLE5uPTgxOTEmbG4sYm49bG4+Pj4xMyxlcj0wfHhb''@;'; + put 'put ''MV0sc3I9ODE5MSZlcixYbj1lcj4+PjEzLEZyPTB8eFsyXSx4cj04MTkxJkZyLHF0PUZyPj4+MTMscHI9MHx4WzNdLG5yPTgxOTEmcHIsQW49cHI+Pj4xMyxxbj0wfHhbNF0sV3Q9ODE5MSZxbixwbj1xbj4+PjEzLEtuPTB8eFs1XSxOdD04MTkxJktuLHNuPUtuPj4+MTMsVW49MHx4WzZdLHdu''@;'; + put 'put ''PTgxOTEmVW4sdG49VW4+Pj4xMyx6bj0wfHhbN10sVHI9ODE5MSZ6bixCbj16bj4+PjEzLGtyPTB8eFs4XSxtbj04MTkxJmtyLHVuPWtyPj4+MTMsY249MHx4WzldLF9uPTgxOTEmY24sR3Q9Y24+Pj4xMztuZS5uZWdhdGl2ZT1PLm5lZ2F0aXZlXnoubmVnYXRpdmUsbmUubGVuZ3RoPTE5O3Zh''@;'; + put 'put ''ciBrbj0oVisoVD1NYXRoLmltdWwoQ2UsTm4pKXwwKSsoKDgxOTEmKFM9KFM9TWF0aC5pbXVsKENlLGJuKSkrTWF0aC5pbXVsKERlLE5uKXwwKSk8PDEzKXwwO1Y9KChGPU1hdGguaW11bChEZSxibikpKyhTPj4+MTMpfDApKyhrbj4+PjI2KXwwLGtuJj02NzEwODg2MyxUPU1hdGguaW11bChR''@;'; + put 'put ''ZSxObiksUz0oUz1NYXRoLmltdWwoUWUsYm4pKStNYXRoLmltdWwoJGUsTm4pfDAsRj1NYXRoLmltdWwoJGUsYm4pO3ZhciBWbj0oVisoVD1UK01hdGguaW11bChDZSxzcil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKENlLFhuKXwwKStNYXRoLmltdWwoRGUsc3IpfDApKTw8MTMp''@;'; + put 'put ''fDA7Vj0oKEY9RitNYXRoLmltdWwoRGUsWG4pfDApKyhTPj4+MTMpfDApKyhWbj4+PjI2KXwwLFZuJj02NzEwODg2MyxUPU1hdGguaW11bCh3dCxObiksUz0oUz1NYXRoLmltdWwod3QsYm4pKStNYXRoLmltdWwobXQsTm4pfDAsRj1NYXRoLmltdWwobXQsYm4pLFQ9VCtNYXRoLmltdWwoUWUs''@;'; + put 'put ''c3IpfDAsUz0oUz1TK01hdGguaW11bChRZSxYbil8MCkrTWF0aC5pbXVsKCRlLHNyKXwwLEY9RitNYXRoLmltdWwoJGUsWG4pfDA7dmFyIGVuPShWKyhUPVQrTWF0aC5pbXVsKENlLHhyKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoQ2UscXQpfDApK01hdGguaW11bChEZSx4cil8''@;'; + put 'put ''MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bChEZSxxdCl8MCkrKFM+Pj4xMyl8MCkrKGVuPj4+MjYpfDAsZW4mPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKEF0LE5uKSxTPShTPU1hdGguaW11bChBdCxibikpK01hdGguaW11bChodCxObil8MCxGPU1hdGguaW11bChodCxibiksVD1UK01hdGgu''@;'; + put 'put ''aW11bCh3dCxzcil8MCxTPShTPVMrTWF0aC5pbXVsKHd0LFhuKXwwKStNYXRoLmltdWwobXQsc3IpfDAsRj1GK01hdGguaW11bChtdCxYbil8MCxUPVQrTWF0aC5pbXVsKFFlLHhyKXwwLFM9KFM9UytNYXRoLmltdWwoUWUscXQpfDApK01hdGguaW11bCgkZSx4cil8MCxGPUYrTWF0aC5pbXVs''@;'; + put 'put ''KCRlLHF0KXwwO3ZhciBJbj0oVisoVD1UK01hdGguaW11bChDZSxucil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKENlLEFuKXwwKStNYXRoLmltdWwoRGUsbnIpfDApKTw8MTMpfDA7Vj0oKEY9RitNYXRoLmltdWwoRGUsQW4pfDApKyhTPj4+MTMpfDApKyhJbj4+PjI2KXwwLElu''@;'; + put 'put ''Jj02NzEwODg2MyxUPU1hdGguaW11bChvbixObiksUz0oUz1NYXRoLmltdWwob24sYm4pKStNYXRoLmltdWwoX3QsTm4pfDAsRj1NYXRoLmltdWwoX3QsYm4pLFQ9VCtNYXRoLmltdWwoQXQsc3IpfDAsUz0oUz1TK01hdGguaW11bChBdCxYbil8MCkrTWF0aC5pbXVsKGh0LHNyKXwwLEY9RitN''@;'; + put 'put ''YXRoLmltdWwoaHQsWG4pfDAsVD1UK01hdGguaW11bCh3dCx4cil8MCxTPShTPVMrTWF0aC5pbXVsKHd0LHF0KXwwKStNYXRoLmltdWwobXQseHIpfDAsRj1GK01hdGguaW11bChtdCxxdCl8MCxUPVQrTWF0aC5pbXVsKFFlLG5yKXwwLFM9KFM9UytNYXRoLmltdWwoUWUsQW4pfDApK01hdGgu''@;'; + put 'put ''aW11bCgkZSxucil8MCxGPUYrTWF0aC5pbXVsKCRlLEFuKXwwO3ZhciBKbj0oVisoVD1UK01hdGguaW11bChDZSxXdCl8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKENlLHBuKXwwKStNYXRoLmltdWwoRGUsV3QpfDApKTw8MTMpfDA7Vj0oKEY9RitNYXRoLmltdWwoRGUscG4pfDAp''@;'; + put 'put ''KyhTPj4+MTMpfDApKyhKbj4+PjI2KXwwLEpuJj02NzEwODg2MyxUPU1hdGguaW11bChldCxObiksUz0oUz1NYXRoLmltdWwoZXQsYm4pKStNYXRoLmltdWwoYXQsTm4pfDAsRj1NYXRoLmltdWwoYXQsYm4pLFQ9VCtNYXRoLmltdWwob24sc3IpfDAsUz0oUz1TK01hdGguaW11bChvbixYbil8''@;'; + put 'put ''MCkrTWF0aC5pbXVsKF90LHNyKXwwLEY9RitNYXRoLmltdWwoX3QsWG4pfDAsVD1UK01hdGguaW11bChBdCx4cil8MCxTPShTPVMrTWF0aC5pbXVsKEF0LHF0KXwwKStNYXRoLmltdWwoaHQseHIpfDAsRj1GK01hdGguaW11bChodCxxdCl8MCxUPVQrTWF0aC5pbXVsKHd0LG5yKXwwLFM9KFM9''@;'; + put 'put ''UytNYXRoLmltdWwod3QsQW4pfDApK01hdGguaW11bChtdCxucil8MCxGPUYrTWF0aC5pbXVsKG10LEFuKXwwLFQ9VCtNYXRoLmltdWwoUWUsV3QpfDAsUz0oUz1TK01hdGguaW11bChRZSxwbil8MCkrTWF0aC5pbXVsKCRlLFd0KXwwLEY9RitNYXRoLmltdWwoJGUscG4pfDA7dmFyIG9yPShW''@;'; + put 'put ''KyhUPVQrTWF0aC5pbXVsKENlLE50KXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoQ2Usc24pfDApK01hdGguaW11bChEZSxOdCl8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bChEZSxzbil8MCkrKFM+Pj4xMyl8MCkrKG9yPj4+MjYpfDAsb3ImPTY3MTA4ODYzLFQ9TWF0aC5p''@;'; + put 'put ''bXVsKEN0LE5uKSxTPShTPU1hdGguaW11bChDdCxibikpK01hdGguaW11bChmdCxObil8MCxGPU1hdGguaW11bChmdCxibiksVD1UK01hdGguaW11bChldCxzcil8MCxTPShTPVMrTWF0aC5pbXVsKGV0LFhuKXwwKStNYXRoLmltdWwoYXQsc3IpfDAsRj1GK01hdGguaW11bChhdCxYbil8MCxU''@;'; + put 'put ''PVQrTWF0aC5pbXVsKG9uLHhyKXwwLFM9KFM9UytNYXRoLmltdWwob24scXQpfDApK01hdGguaW11bChfdCx4cil8MCxGPUYrTWF0aC5pbXVsKF90LHF0KXwwLFQ9VCtNYXRoLmltdWwoQXQsbnIpfDAsUz0oUz1TK01hdGguaW11bChBdCxBbil8MCkrTWF0aC5pbXVsKGh0LG5yKXwwLEY9RitN''@;'; + put 'put ''YXRoLmltdWwoaHQsQW4pfDAsVD1UK01hdGguaW11bCh3dCxXdCl8MCxTPShTPVMrTWF0aC5pbXVsKHd0LHBuKXwwKStNYXRoLmltdWwobXQsV3QpfDAsRj1GK01hdGguaW11bChtdCxwbil8MCxUPVQrTWF0aC5pbXVsKFFlLE50KXwwLFM9KFM9UytNYXRoLmltdWwoUWUsc24pfDApK01hdGgu''@;'; + put 'put ''aW11bCgkZSxOdCl8MCxGPUYrTWF0aC5pbXVsKCRlLHNuKXwwO3ZhciBncj0oVisoVD1UK01hdGguaW11bChDZSx3bil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKENlLHRuKXwwKStNYXRoLmltdWwoRGUsd24pfDApKTw8MTMpfDA7Vj0oKEY9RitNYXRoLmltdWwoRGUsdG4pfDAp''@;'; + put 'put ''KyhTPj4+MTMpfDApKyhncj4+PjI2KXwwLGdyJj02NzEwODg2MyxUPU1hdGguaW11bChHZSxObiksUz0oUz1NYXRoLmltdWwoR2UsYm4pKStNYXRoLmltdWwoVWUsTm4pfDAsRj1NYXRoLmltdWwoVWUsYm4pLFQ9VCtNYXRoLmltdWwoQ3Qsc3IpfDAsUz0oUz1TK01hdGguaW11bChDdCxYbil8''@;'; + put 'put ''MCkrTWF0aC5pbXVsKGZ0LHNyKXwwLEY9RitNYXRoLmltdWwoZnQsWG4pfDAsVD1UK01hdGguaW11bChldCx4cil8MCxTPShTPVMrTWF0aC5pbXVsKGV0LHF0KXwwKStNYXRoLmltdWwoYXQseHIpfDAsRj1GK01hdGguaW11bChhdCxxdCl8MCxUPVQrTWF0aC5pbXVsKG9uLG5yKXwwLFM9KFM9''@;'; + put 'put ''UytNYXRoLmltdWwob24sQW4pfDApK01hdGguaW11bChfdCxucil8MCxGPUYrTWF0aC5pbXVsKF90LEFuKXwwLFQ9VCtNYXRoLmltdWwoQXQsV3QpfDAsUz0oUz1TK01hdGguaW11bChBdCxwbil8MCkrTWF0aC5pbXVsKGh0LFd0KXwwLEY9RitNYXRoLmltdWwoaHQscG4pfDAsVD1UK01hdGgu''@;'; + put 'put ''aW11bCh3dCxOdCl8MCxTPShTPVMrTWF0aC5pbXVsKHd0LHNuKXwwKStNYXRoLmltdWwobXQsTnQpfDAsRj1GK01hdGguaW11bChtdCxzbil8MCxUPVQrTWF0aC5pbXVsKFFlLHduKXwwLFM9KFM9UytNYXRoLmltdWwoUWUsdG4pfDApK01hdGguaW11bCgkZSx3bil8MCxGPUYrTWF0aC5pbXVs''@;'; + put 'put ''KCRlLHRuKXwwO3ZhciBLcj0oVisoVD1UK01hdGguaW11bChDZSxUcil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKENlLEJuKXwwKStNYXRoLmltdWwoRGUsVHIpfDApKTw8MTMpfDA7Vj0oKEY9RitNYXRoLmltdWwoRGUsQm4pfDApKyhTPj4+MTMpfDApKyhLcj4+PjI2KXwwLEty''@;'; + put 'put ''Jj02NzEwODg2MyxUPU1hdGguaW11bChqdCxObiksUz0oUz1NYXRoLmltdWwoanQsYm4pKStNYXRoLmltdWwoUXQsTm4pfDAsRj1NYXRoLmltdWwoUXQsYm4pLFQ9VCtNYXRoLmltdWwoR2Usc3IpfDAsUz0oUz1TK01hdGguaW11bChHZSxYbil8MCkrTWF0aC5pbXVsKFVlLHNyKXwwLEY9RitN''@;'; + put 'put ''YXRoLmltdWwoVWUsWG4pfDAsVD1UK01hdGguaW11bChDdCx4cil8MCxTPShTPVMrTWF0aC5pbXVsKEN0LHF0KXwwKStNYXRoLmltdWwoZnQseHIpfDAsRj1GK01hdGguaW11bChmdCxxdCl8MCxUPVQrTWF0aC5pbXVsKGV0LG5yKXwwLFM9KFM9UytNYXRoLmltdWwoZXQsQW4pfDApK01hdGgu''@;'; + put 'put ''aW11bChhdCxucil8MCxGPUYrTWF0aC5pbXVsKGF0LEFuKXwwLFQ9VCtNYXRoLmltdWwob24sV3QpfDAsUz0oUz1TK01hdGguaW11bChvbixwbil8MCkrTWF0aC5pbXVsKF90LFd0KXwwLEY9RitNYXRoLmltdWwoX3QscG4pfDAsVD1UK01hdGguaW11bChBdCxOdCl8MCxTPShTPVMrTWF0aC5p''@;'; + put 'put ''bXVsKEF0LHNuKXwwKStNYXRoLmltdWwoaHQsTnQpfDAsRj1GK01hdGguaW11bChodCxzbil8MCxUPVQrTWF0aC5pbXVsKHd0LHduKXwwLFM9KFM9UytNYXRoLmltdWwod3QsdG4pfDApK01hdGguaW11bChtdCx3bil8MCxGPUYrTWF0aC5pbXVsKG10LHRuKXwwLFQ9VCtNYXRoLmltdWwoUWUs''@;'; + put 'put ''VHIpfDAsUz0oUz1TK01hdGguaW11bChRZSxCbil8MCkrTWF0aC5pbXVsKCRlLFRyKXwwLEY9RitNYXRoLmltdWwoJGUsQm4pfDA7dmFyIFZyPShWKyhUPVQrTWF0aC5pbXVsKENlLG1uKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoQ2UsdW4pfDApK01hdGguaW11bChEZSxtbil8''@;'; + put 'put ''MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bChEZSx1bil8MCkrKFM+Pj4xMyl8MCkrKFZyPj4+MjYpfDAsVnImPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGRuLE5uKSxTPShTPU1hdGguaW11bChkbixibikpK01hdGguaW11bCh5bixObil8MCxGPU1hdGguaW11bCh5bixibiksVD1UK01hdGgu''@;'; + put 'put ''aW11bChqdCxzcil8MCxTPShTPVMrTWF0aC5pbXVsKGp0LFhuKXwwKStNYXRoLmltdWwoUXQsc3IpfDAsRj1GK01hdGguaW11bChRdCxYbil8MCxUPVQrTWF0aC5pbXVsKEdlLHhyKXwwLFM9KFM9UytNYXRoLmltdWwoR2UscXQpfDApK01hdGguaW11bChVZSx4cil8MCxGPUYrTWF0aC5pbXVs''@;'; + put 'put ''KFVlLHF0KXwwLFQ9VCtNYXRoLmltdWwoQ3QsbnIpfDAsUz0oUz1TK01hdGguaW11bChDdCxBbil8MCkrTWF0aC5pbXVsKGZ0LG5yKXwwLEY9RitNYXRoLmltdWwoZnQsQW4pfDAsVD1UK01hdGguaW11bChldCxXdCl8MCxTPShTPVMrTWF0aC5pbXVsKGV0LHBuKXwwKStNYXRoLmltdWwoYXQs''@;'; + put 'put ''V3QpfDAsRj1GK01hdGguaW11bChhdCxwbil8MCxUPVQrTWF0aC5pbXVsKG9uLE50KXwwLFM9KFM9UytNYXRoLmltdWwob24sc24pfDApK01hdGguaW11bChfdCxOdCl8MCxGPUYrTWF0aC5pbXVsKF90LHNuKXwwLFQ9VCtNYXRoLmltdWwoQXQsd24pfDAsUz0oUz1TK01hdGguaW11bChBdCx0''@;'; + put 'put ''bil8MCkrTWF0aC5pbXVsKGh0LHduKXwwLEY9RitNYXRoLmltdWwoaHQsdG4pfDAsVD1UK01hdGguaW11bCh3dCxUcil8MCxTPShTPVMrTWF0aC5pbXVsKHd0LEJuKXwwKStNYXRoLmltdWwobXQsVHIpfDAsRj1GK01hdGguaW11bChtdCxCbil8MCxUPVQrTWF0aC5pbXVsKFFlLG1uKXwwLFM9''@;'; + put 'put ''KFM9UytNYXRoLmltdWwoUWUsdW4pfDApK01hdGguaW11bCgkZSxtbil8MCxGPUYrTWF0aC5pbXVsKCRlLHVuKXwwO3ZhciBpaT0oVisoVD1UK01hdGguaW11bChDZSxfbil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKENlLEd0KXwwKStNYXRoLmltdWwoRGUsX24pfDApKTw8MTMp''@;'; + put 'put ''fDA7Vj0oKEY9RitNYXRoLmltdWwoRGUsR3QpfDApKyhTPj4+MTMpfDApKyhpaT4+PjI2KXwwLGlpJj02NzEwODg2MyxUPU1hdGguaW11bChkbixzciksUz0oUz1NYXRoLmltdWwoZG4sWG4pKStNYXRoLmltdWwoeW4sc3IpfDAsRj1NYXRoLmltdWwoeW4sWG4pLFQ9VCtNYXRoLmltdWwoanQs''@;'; + put 'put ''eHIpfDAsUz0oUz1TK01hdGguaW11bChqdCxxdCl8MCkrTWF0aC5pbXVsKFF0LHhyKXwwLEY9RitNYXRoLmltdWwoUXQscXQpfDAsVD1UK01hdGguaW11bChHZSxucil8MCxTPShTPVMrTWF0aC5pbXVsKEdlLEFuKXwwKStNYXRoLmltdWwoVWUsbnIpfDAsRj1GK01hdGguaW11bChVZSxBbil8''@;'; + put 'put ''MCxUPVQrTWF0aC5pbXVsKEN0LFd0KXwwLFM9KFM9UytNYXRoLmltdWwoQ3QscG4pfDApK01hdGguaW11bChmdCxXdCl8MCxGPUYrTWF0aC5pbXVsKGZ0LHBuKXwwLFQ9VCtNYXRoLmltdWwoZXQsTnQpfDAsUz0oUz1TK01hdGguaW11bChldCxzbil8MCkrTWF0aC5pbXVsKGF0LE50KXwwLEY9''@;'; + put 'put ''RitNYXRoLmltdWwoYXQsc24pfDAsVD1UK01hdGguaW11bChvbix3bil8MCxTPShTPVMrTWF0aC5pbXVsKG9uLHRuKXwwKStNYXRoLmltdWwoX3Qsd24pfDAsRj1GK01hdGguaW11bChfdCx0bil8MCxUPVQrTWF0aC5pbXVsKEF0LFRyKXwwLFM9KFM9UytNYXRoLmltdWwoQXQsQm4pfDApK01h''@;'; + put 'put ''dGguaW11bChodCxUcil8MCxGPUYrTWF0aC5pbXVsKGh0LEJuKXwwLFQ9VCtNYXRoLmltdWwod3QsbW4pfDAsUz0oUz1TK01hdGguaW11bCh3dCx1bil8MCkrTWF0aC5pbXVsKG10LG1uKXwwLEY9RitNYXRoLmltdWwobXQsdW4pfDA7dmFyIFJyPShWKyhUPVQrTWF0aC5pbXVsKFFlLF9uKXww''@;'; + put 'put ''KXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoUWUsR3QpfDApK01hdGguaW11bCgkZSxfbil8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bCgkZSxHdCl8MCkrKFM+Pj4xMyl8MCkrKFJyPj4+MjYpfDAsUnImPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGRuLHhyKSxTPShTPU1hdGguaW11''@;'; + put 'put ''bChkbixxdCkpK01hdGguaW11bCh5bix4cil8MCxGPU1hdGguaW11bCh5bixxdCksVD1UK01hdGguaW11bChqdCxucil8MCxTPShTPVMrTWF0aC5pbXVsKGp0LEFuKXwwKStNYXRoLmltdWwoUXQsbnIpfDAsRj1GK01hdGguaW11bChRdCxBbil8MCxUPVQrTWF0aC5pbXVsKEdlLFd0KXwwLFM9''@;'; + put 'put ''KFM9UytNYXRoLmltdWwoR2UscG4pfDApK01hdGguaW11bChVZSxXdCl8MCxGPUYrTWF0aC5pbXVsKFVlLHBuKXwwLFQ9VCtNYXRoLmltdWwoQ3QsTnQpfDAsUz0oUz1TK01hdGguaW11bChDdCxzbil8MCkrTWF0aC5pbXVsKGZ0LE50KXwwLEY9RitNYXRoLmltdWwoZnQsc24pfDAsVD1UK01h''@;'; + put 'put ''dGguaW11bChldCx3bil8MCxTPShTPVMrTWF0aC5pbXVsKGV0LHRuKXwwKStNYXRoLmltdWwoYXQsd24pfDAsRj1GK01hdGguaW11bChhdCx0bil8MCxUPVQrTWF0aC5pbXVsKG9uLFRyKXwwLFM9KFM9UytNYXRoLmltdWwob24sQm4pfDApK01hdGguaW11bChfdCxUcil8MCxGPUYrTWF0aC5p''@;'; + put 'put ''bXVsKF90LEJuKXwwLFQ9VCtNYXRoLmltdWwoQXQsbW4pfDAsUz0oUz1TK01hdGguaW11bChBdCx1bil8MCkrTWF0aC5pbXVsKGh0LG1uKXwwLEY9RitNYXRoLmltdWwoaHQsdW4pfDA7dmFyIGxpPShWKyhUPVQrTWF0aC5pbXVsKHd0LF9uKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmlt''@;'; + put 'put ''dWwod3QsR3QpfDApK01hdGguaW11bChtdCxfbil8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bChtdCxHdCl8MCkrKFM+Pj4xMyl8MCkrKGxpPj4+MjYpfDAsbGkmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGRuLG5yKSxTPShTPU1hdGguaW11bChkbixBbikpK01hdGguaW11bCh5bixucil8''@;'; + put 'put ''MCxGPU1hdGguaW11bCh5bixBbiksVD1UK01hdGguaW11bChqdCxXdCl8MCxTPShTPVMrTWF0aC5pbXVsKGp0LHBuKXwwKStNYXRoLmltdWwoUXQsV3QpfDAsRj1GK01hdGguaW11bChRdCxwbil8MCxUPVQrTWF0aC5pbXVsKEdlLE50KXwwLFM9KFM9UytNYXRoLmltdWwoR2Usc24pfDApK01h''@;'; + put 'put ''dGguaW11bChVZSxOdCl8MCxGPUYrTWF0aC5pbXVsKFVlLHNuKXwwLFQ9VCtNYXRoLmltdWwoQ3Qsd24pfDAsUz0oUz1TK01hdGguaW11bChDdCx0bil8MCkrTWF0aC5pbXVsKGZ0LHduKXwwLEY9RitNYXRoLmltdWwoZnQsdG4pfDAsVD1UK01hdGguaW11bChldCxUcil8MCxTPShTPVMrTWF0''@;'; + put 'put ''aC5pbXVsKGV0LEJuKXwwKStNYXRoLmltdWwoYXQsVHIpfDAsRj1GK01hdGguaW11bChhdCxCbil8MCxUPVQrTWF0aC5pbXVsKG9uLG1uKXwwLFM9KFM9UytNYXRoLmltdWwob24sdW4pfDApK01hdGguaW11bChfdCxtbil8MCxGPUYrTWF0aC5pbXVsKF90LHVuKXwwO3ZhciBNaT0oVisoVD1U''@;'; + put 'put ''K01hdGguaW11bChBdCxfbil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKEF0LEd0KXwwKStNYXRoLmltdWwoaHQsX24pfDApKTw8MTMpfDA7Vj0oKEY9RitNYXRoLmltdWwoaHQsR3QpfDApKyhTPj4+MTMpfDApKyhNaT4+PjI2KXwwLE1pJj02NzEwODg2MyxUPU1hdGguaW11bChk''@;'; + put 'put ''bixXdCksUz0oUz1NYXRoLmltdWwoZG4scG4pKStNYXRoLmltdWwoeW4sV3QpfDAsRj1NYXRoLmltdWwoeW4scG4pLFQ9VCtNYXRoLmltdWwoanQsTnQpfDAsUz0oUz1TK01hdGguaW11bChqdCxzbil8MCkrTWF0aC5pbXVsKFF0LE50KXwwLEY9RitNYXRoLmltdWwoUXQsc24pfDAsVD1UK01h''@;'; + put 'put ''dGguaW11bChHZSx3bil8MCxTPShTPVMrTWF0aC5pbXVsKEdlLHRuKXwwKStNYXRoLmltdWwoVWUsd24pfDAsRj1GK01hdGguaW11bChVZSx0bil8MCxUPVQrTWF0aC5pbXVsKEN0LFRyKXwwLFM9KFM9UytNYXRoLmltdWwoQ3QsQm4pfDApK01hdGguaW11bChmdCxUcil8MCxGPUYrTWF0aC5p''@;'; + put 'put ''bXVsKGZ0LEJuKXwwLFQ9VCtNYXRoLmltdWwoZXQsbW4pfDAsUz0oUz1TK01hdGguaW11bChldCx1bil8MCkrTWF0aC5pbXVsKGF0LG1uKXwwLEY9RitNYXRoLmltdWwoYXQsdW4pfDA7dmFyIG8wPShWKyhUPVQrTWF0aC5pbXVsKG9uLF9uKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmlt''@;'; + put 'put ''dWwob24sR3QpfDApK01hdGguaW11bChfdCxfbil8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bChfdCxHdCl8MCkrKFM+Pj4xMyl8MCkrKG8wPj4+MjYpfDAsbzAmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGRuLE50KSxTPShTPU1hdGguaW11bChkbixzbikpK01hdGguaW11bCh5bixOdCl8''@;'; + put 'put ''MCxGPU1hdGguaW11bCh5bixzbiksVD1UK01hdGguaW11bChqdCx3bil8MCxTPShTPVMrTWF0aC5pbXVsKGp0LHRuKXwwKStNYXRoLmltdWwoUXQsd24pfDAsRj1GK01hdGguaW11bChRdCx0bil8MCxUPVQrTWF0aC5pbXVsKEdlLFRyKXwwLFM9KFM9UytNYXRoLmltdWwoR2UsQm4pfDApK01h''@;'; + put 'put ''dGguaW11bChVZSxUcil8MCxGPUYrTWF0aC5pbXVsKFVlLEJuKXwwLFQ9VCtNYXRoLmltdWwoQ3QsbW4pfDAsUz0oUz1TK01hdGguaW11bChDdCx1bil8MCkrTWF0aC5pbXVsKGZ0LG1uKXwwLEY9RitNYXRoLmltdWwoZnQsdW4pfDA7dmFyIG4wPShWKyhUPVQrTWF0aC5pbXVsKGV0LF9uKXww''@;'; + put 'put ''KXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoZXQsR3QpfDApK01hdGguaW11bChhdCxfbil8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bChhdCxHdCl8MCkrKFM+Pj4xMyl8MCkrKG4wPj4+MjYpfDAsbjAmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGRuLHduKSxTPShTPU1hdGguaW11''@;'; + put 'put ''bChkbix0bikpK01hdGguaW11bCh5bix3bil8MCxGPU1hdGguaW11bCh5bix0biksVD1UK01hdGguaW11bChqdCxUcil8MCxTPShTPVMrTWF0aC5pbXVsKGp0LEJuKXwwKStNYXRoLmltdWwoUXQsVHIpfDAsRj1GK01hdGguaW11bChRdCxCbil8MCxUPVQrTWF0aC5pbXVsKEdlLG1uKXwwLFM9''@;'; + put 'put ''KFM9UytNYXRoLmltdWwoR2UsdW4pfDApK01hdGguaW11bChVZSxtbil8MCxGPUYrTWF0aC5pbXVsKFVlLHVuKXwwO3ZhciBkMD0oVisoVD1UK01hdGguaW11bChDdCxfbil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKEN0LEd0KXwwKStNYXRoLmltdWwoZnQsX24pfDApKTw8MTMp''@;'; + put 'put ''fDA7Vj0oKEY9RitNYXRoLmltdWwoZnQsR3QpfDApKyhTPj4+MTMpfDApKyhkMD4+PjI2KXwwLGQwJj02NzEwODg2MyxUPU1hdGguaW11bChkbixUciksUz0oUz1NYXRoLmltdWwoZG4sQm4pKStNYXRoLmltdWwoeW4sVHIpfDAsRj1NYXRoLmltdWwoeW4sQm4pLFQ9VCtNYXRoLmltdWwoanQs''@;'; + put 'put ''bW4pfDAsUz0oUz1TK01hdGguaW11bChqdCx1bil8MCkrTWF0aC5pbXVsKFF0LG1uKXwwLEY9RitNYXRoLmltdWwoUXQsdW4pfDA7dmFyIG0wPShWKyhUPVQrTWF0aC5pbXVsKEdlLF9uKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoR2UsR3QpfDApK01hdGguaW11bChVZSxfbil8''@;'; + put 'put ''MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bChVZSxHdCl8MCkrKFM+Pj4xMyl8MCkrKG0wPj4+MjYpfDAsbTAmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGRuLG1uKSxTPShTPU1hdGguaW11bChkbix1bikpK01hdGguaW11bCh5bixtbil8MCxGPU1hdGguaW11bCh5bix1bik7dmFyIEcwPShW''@;'; + put 'put ''KyhUPVQrTWF0aC5pbXVsKGp0LF9uKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoanQsR3QpfDApK01hdGguaW11bChRdCxfbil8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bChRdCxHdCl8MCkrKFM+Pj4xMyl8MCkrKEcwPj4+MjYpfDAsRzAmPTY3MTA4ODYzO3ZhciBEaT0o''@;'; + put 'put ''VisoVD1NYXRoLmltdWwoZG4sX24pKXwwKSsoKDgxOTEmKFM9KFM9TWF0aC5pbXVsKGRuLEd0KSkrTWF0aC5pbXVsKHluLF9uKXwwKSk8PDEzKXwwO3JldHVybiBWPSgoRj1NYXRoLmltdWwoeW4sR3QpKSsoUz4+PjEzKXwwKSsoRGk+Pj4yNil8MCxEaSY9NjcxMDg4NjMsUFswXT1rbixQWzFd''@;'; + put 'put ''PVZuLFBbMl09ZW4sUFszXT1JbixQWzRdPUpuLFBbNV09b3IsUFs2XT1ncixQWzddPUtyLFBbOF09VnIsUFs5XT1paSxQWzEwXT1ScixQWzExXT1saSxQWzEyXT1NaSxQWzEzXT1vMCxQWzE0XT1uMCxQWzE1XT1kMCxQWzE2XT1tMCxQWzE3XT1HMCxQWzE4XT1EaSwwIT09ViYmKFBbMTldPVYs''@;'; + put 'put ''bmUubGVuZ3RoKyspLG5lfTtmdW5jdGlvbiBvZShoZSxPLHope3JldHVybihuZXcgY2UpLm11bHAoaGUsTyx6KX1mdW5jdGlvbiBjZShoZSxPKXt0aGlzLng9aGUsdGhpcy55PU99TWF0aC5pbXVsfHwoSj1xKSxVLnByb3RvdHlwZS5tdWxUbz1mdW5jdGlvbihPLHope3ZhciBuZSx0ZT10aGlz''@;'; + put 'put ''Lmxlbmd0aCtPLmxlbmd0aDtyZXR1cm4gbmU9MTA9PT10aGlzLmxlbmd0aCYmMTA9PT1PLmxlbmd0aD9KKHRoaXMsTyx6KTp0ZTw2Mz9xKHRoaXMsTyx6KTp0ZTwxMDI0P2Z1bmN0aW9uIHNlKGhlLE8seil7ei5uZWdhdGl2ZT1PLm5lZ2F0aXZlXmhlLm5lZ2F0aXZlLHoubGVuZ3RoPWhlLmxl''@;'; + put 'put ''bmd0aCtPLmxlbmd0aDtmb3IodmFyIG5lPTAsdGU9MCx4PTA7eDx6Lmxlbmd0aC0xO3grKyl7dmFyIFA9dGU7dGU9MDtmb3IodmFyIFY9NjcxMDg4NjMmbmUsVD1NYXRoLm1pbih4LE8ubGVuZ3RoLTEpLFM9TWF0aC5tYXgoMCx4LWhlLmxlbmd0aCsxKTtTPD1UO1MrKyl7dmFyIERlPSgwfGhl''@;'; + put 'put ''LndvcmRzW3gtU10pKigwfE8ud29yZHNbU10pLFBlPTY3MTA4ODYzJkRlO1Y9NjcxMDg4NjMmKFBlPVBlK1Z8MCksdGUrPShQPShQPVArKERlLzY3MTA4ODY0fDApfDApKyhQZT4+PjI2KXwwKT4+PjI2LFAmPTY3MTA4ODYzfXoud29yZHNbeF09VixuZT1QLFA9dGV9cmV0dXJuIDAhPT1uZT96''@;'; + put 'put ''LndvcmRzW3hdPW5lOnoubGVuZ3RoLS0sei5zdHJpcCgpfSh0aGlzLE8seik6b2UodGhpcyxPLHopLG5lfSxjZS5wcm90b3R5cGUubWFrZVJCVD1mdW5jdGlvbihPKXtmb3IodmFyIHo9bmV3IEFycmF5KE8pLG5lPVUucHJvdG90eXBlLl9jb3VudEJpdHMoTyktMSx0ZT0wO3RlPE87dGUrKyl6''@;'; + put 'put ''W3RlXT10aGlzLnJldkJpbih0ZSxuZSxPKTtyZXR1cm4gen0sY2UucHJvdG90eXBlLnJldkJpbj1mdW5jdGlvbihPLHosbmUpe2lmKDA9PT1PfHxPPT09bmUtMSlyZXR1cm4gTztmb3IodmFyIHRlPTAseD0wO3g8ejt4KyspdGV8PSgxJk8pPDx6LXgtMSxPPj49MTtyZXR1cm4gdGV9LGNlLnBy''@;'; + put 'put ''b3RvdHlwZS5wZXJtdXRlPWZ1bmN0aW9uKE8seixuZSx0ZSx4LFApe2Zvcih2YXIgVj0wO1Y8UDtWKyspdGVbVl09eltPW1ZdXSx4W1ZdPW5lW09bVl1dfSxjZS5wcm90b3R5cGUudHJhbnNmb3JtPWZ1bmN0aW9uKE8seixuZSx0ZSx4LFApe3RoaXMucGVybXV0ZShQLE8seixuZSx0ZSx4KTtm''@;'; + put 'put ''b3IodmFyIFY9MTtWPHg7Vjw8PTEpZm9yKHZhciBUPVY8PDEsUz1NYXRoLmNvcygyKk1hdGguUEkvVCksRj1NYXRoLnNpbigyKk1hdGguUEkvVCkseWU9MDt5ZTx4O3llKz1UKWZvcih2YXIgQ2U9UyxEZT1GLFBlPTA7UGU8VjtQZSsrKXt2YXIgUWU9bmVbeWUrUGVdLCRlPXRlW3llK1BlXSxn''@;'; + put 'put ''dD1uZVt5ZStQZStWXSx3dD10ZVt5ZStQZStWXSxtdD1DZSpndC1EZSp3dDt3dD1DZSp3dCtEZSpndCxuZVt5ZStQZV09UWUrKGd0PW10KSx0ZVt5ZStQZV09JGUrd3QsbmVbeWUrUGUrVl09UWUtZ3QsdGVbeWUrUGUrVl09JGUtd3QsUGUhPT1UJiYobXQ9UypDZS1GKkRlLERlPVMqRGUrRipD''@;'; + put 'put ''ZSxDZT1tdCl9fSxjZS5wcm90b3R5cGUuZ3Vlc3NMZW4xM2I9ZnVuY3Rpb24oTyx6KXt2YXIgbmU9MXxNYXRoLm1heCh6LE8pLHRlPTEmbmUseD0wO2ZvcihuZT1uZS8yfDA7bmU7bmU+Pj49MSl4Kys7cmV0dXJuIDE8PHgrMSt0ZX0sY2UucHJvdG90eXBlLmNvbmp1Z2F0ZT1mdW5jdGlvbihP''@;'; + put 'put ''LHosbmUpe2lmKCEobmU8PTEpKWZvcih2YXIgdGU9MDt0ZTxuZS8yO3RlKyspe3ZhciB4PU9bdGVdO09bdGVdPU9bbmUtdGUtMV0sT1tuZS10ZS0xXT14LHg9elt0ZV0selt0ZV09LXpbbmUtdGUtMV0seltuZS10ZS0xXT0teH19LGNlLnByb3RvdHlwZS5ub3JtYWxpemUxM2I9ZnVuY3Rpb24o''@;'; + put 'put ''Tyx6KXtmb3IodmFyIG5lPTAsdGU9MDt0ZTx6LzI7dGUrKyl7dmFyIHg9ODE5MipNYXRoLnJvdW5kKE9bMip0ZSsxXS96KStNYXRoLnJvdW5kKE9bMip0ZV0veikrbmU7T1t0ZV09NjcxMDg4NjMmeCxuZT14PDY3MTA4ODY0PzA6eC82NzEwODg2NHwwfXJldHVybiBPfSxjZS5wcm90b3R5cGUu''@;'; + put 'put ''Y29udmVydDEzYj1mdW5jdGlvbihPLHosbmUsdGUpe2Zvcih2YXIgeD0wLFA9MDtQPHo7UCsrKW5lWzIqUF09ODE5MSYoeCs9MHxPW1BdKSxuZVsyKlArMV09ODE5MSYoeD4+Pj0xMykseD4+Pj0xMztmb3IoUD0yKno7UDx0ZTsrK1ApbmVbUF09MDtFKDA9PT14KSxFKDA9PSgtODE5MiZ4KSl9''@;'; + put 'put ''LGNlLnByb3RvdHlwZS5zdHViPWZ1bmN0aW9uKE8pe2Zvcih2YXIgej1uZXcgQXJyYXkoTyksbmU9MDtuZTxPO25lKyspeltuZV09MDtyZXR1cm4gen0sY2UucHJvdG90eXBlLm11bHA9ZnVuY3Rpb24oTyx6LG5lKXt2YXIgdGU9Mip0aGlzLmd1ZXNzTGVuMTNiKE8ubGVuZ3RoLHoubGVuZ3Ro''@;'; + put 'put ''KSx4PXRoaXMubWFrZVJCVCh0ZSksUD10aGlzLnN0dWIodGUpLFY9bmV3IEFycmF5KHRlKSxUPW5ldyBBcnJheSh0ZSksUz1uZXcgQXJyYXkodGUpLEY9bmV3IEFycmF5KHRlKSx5ZT1uZXcgQXJyYXkodGUpLENlPW5ldyBBcnJheSh0ZSksRGU9bmUud29yZHM7RGUubGVuZ3RoPXRlLHRoaXMu''@;'; + put 'put ''Y29udmVydDEzYihPLndvcmRzLE8ubGVuZ3RoLFYsdGUpLHRoaXMuY29udmVydDEzYih6LndvcmRzLHoubGVuZ3RoLEYsdGUpLHRoaXMudHJhbnNmb3JtKFYsUCxULFMsdGUseCksdGhpcy50cmFuc2Zvcm0oRixQLHllLENlLHRlLHgpO2Zvcih2YXIgUGU9MDtQZTx0ZTtQZSsrKXt2YXIgUWU9''@;'; + put 'put ''VFtQZV0qeWVbUGVdLVNbUGVdKkNlW1BlXTtTW1BlXT1UW1BlXSpDZVtQZV0rU1tQZV0qeWVbUGVdLFRbUGVdPVFlfXJldHVybiB0aGlzLmNvbmp1Z2F0ZShULFMsdGUpLHRoaXMudHJhbnNmb3JtKFQsUyxEZSxQLHRlLHgpLHRoaXMuY29uanVnYXRlKERlLFAsdGUpLHRoaXMubm9ybWFsaXpl''@;'; + put 'put ''MTNiKERlLHRlKSxuZS5uZWdhdGl2ZT1PLm5lZ2F0aXZlXnoubmVnYXRpdmUsbmUubGVuZ3RoPU8ubGVuZ3RoK3oubGVuZ3RoLG5lLnN0cmlwKCl9LFUucHJvdG90eXBlLm11bD1mdW5jdGlvbihPKXt2YXIgej1uZXcgVShudWxsKTtyZXR1cm4gei53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5n''@;'; + put 'put ''dGgrTy5sZW5ndGgpLHRoaXMubXVsVG8oTyx6KX0sVS5wcm90b3R5cGUubXVsZj1mdW5jdGlvbihPKXt2YXIgej1uZXcgVShudWxsKTtyZXR1cm4gei53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgrTy5sZW5ndGgpLG9lKHRoaXMsTyx6KX0sVS5wcm90b3R5cGUuaW11bD1mdW5jdGlvbihP''@;'; + put 'put ''KXtyZXR1cm4gdGhpcy5jbG9uZSgpLm11bFRvKE8sdGhpcyl9LFUucHJvdG90eXBlLmltdWxuPWZ1bmN0aW9uKE8pe0UoIm51bWJlciI9PXR5cGVvZiBPKSxFKE88NjcxMDg4NjQpO2Zvcih2YXIgej0wLG5lPTA7bmU8dGhpcy5sZW5ndGg7bmUrKyl7dmFyIHRlPSgwfHRoaXMud29yZHNbbmVd''@;'; + put 'put ''KSpPLHg9KDY3MTA4ODYzJnRlKSsoNjcxMDg4NjMmeik7ej4+PTI2LHorPXRlLzY3MTA4ODY0fDAseis9eD4+PjI2LHRoaXMud29yZHNbbmVdPTY3MTA4ODYzJnh9cmV0dXJuIDAhPT16JiYodGhpcy53b3Jkc1tuZV09eix0aGlzLmxlbmd0aCsrKSx0aGlzfSxVLnByb3RvdHlwZS5tdWxuPWZ1''@;'; + put 'put ''bmN0aW9uKE8pe3JldHVybiB0aGlzLmNsb25lKCkuaW11bG4oTyl9LFUucHJvdG90eXBlLnNxcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLm11bCh0aGlzKX0sVS5wcm90b3R5cGUuaXNxcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLmltdWwodGhpcy5jbG9uZSgpKX0sVS5wcm90b3R5cGUucG93''@;'; + put 'put ''PWZ1bmN0aW9uKE8pe3ZhciB6PWZ1bmN0aW9uIGVlKGhlKXtmb3IodmFyIE89bmV3IEFycmF5KGhlLmJpdExlbmd0aCgpKSx6PTA7ejxPLmxlbmd0aDt6Kyspe3ZhciB0ZT16JTI2O09bel09KGhlLndvcmRzW3ovMjZ8MF0mMTw8dGUpPj4+dGV9cmV0dXJuIE99KE8pO2lmKDA9PT16Lmxlbmd0''@;'; + put 'put ''aClyZXR1cm4gbmV3IFUoMSk7Zm9yKHZhciBuZT10aGlzLHRlPTA7dGU8ei5sZW5ndGgmJjA9PT16W3RlXTt0ZSsrLG5lPW5lLnNxcigpKTtpZigrK3RlPHoubGVuZ3RoKWZvcih2YXIgeD1uZS5zcXIoKTt0ZTx6Lmxlbmd0aDt0ZSsrLHg9eC5zcXIoKSkwIT09elt0ZV0mJihuZT1uZS5tdWwo''@;'; + put 'put ''eCkpO3JldHVybiBuZX0sVS5wcm90b3R5cGUuaXVzaGxuPWZ1bmN0aW9uKE8pe0UoIm51bWJlciI9PXR5cGVvZiBPJiZPPj0wKTt2YXIgeCx6PU8lMjYsbmU9KE8teikvMjYsdGU9NjcxMDg4NjM+Pj4yNi16PDwyNi16O2lmKDAhPT16KXt2YXIgUD0wO2Zvcih4PTA7eDx0aGlzLmxlbmd0aDt4''@;'; + put 'put ''Kyspe3ZhciBWPXRoaXMud29yZHNbeF0mdGU7dGhpcy53b3Jkc1t4XT0oMHx0aGlzLndvcmRzW3hdKS1WPDx6fFAsUD1WPj4+MjYten1QJiYodGhpcy53b3Jkc1t4XT1QLHRoaXMubGVuZ3RoKyspfWlmKDAhPT1uZSl7Zm9yKHg9dGhpcy5sZW5ndGgtMTt4Pj0wO3gtLSl0aGlzLndvcmRzW3gr''@;'; + put 'put ''bmVdPXRoaXMud29yZHNbeF07Zm9yKHg9MDt4PG5lO3grKyl0aGlzLndvcmRzW3hdPTA7dGhpcy5sZW5ndGgrPW5lfXJldHVybiB0aGlzLnN0cmlwKCl9LFUucHJvdG90eXBlLmlzaGxuPWZ1bmN0aW9uKE8pe3JldHVybiBFKDA9PT10aGlzLm5lZ2F0aXZlKSx0aGlzLml1c2hsbihPKX0sVS5w''@;'; + put 'put ''cm90b3R5cGUuaXVzaHJuPWZ1bmN0aW9uKE8seixuZSl7dmFyIHRlO0UoIm51bWJlciI9PXR5cGVvZiBPJiZPPj0wKSx0ZT16Pyh6LXolMjYpLzI2OjA7dmFyIHg9TyUyNixQPU1hdGgubWluKChPLXgpLzI2LHRoaXMubGVuZ3RoKSxWPTY3MTA4ODYzXjY3MTA4ODYzPj4+eDw8eCxUPW5lO2lm''@;'; + put 'put ''KHRlLT1QLHRlPU1hdGgubWF4KDAsdGUpLFQpe2Zvcih2YXIgUz0wO1M8UDtTKyspVC53b3Jkc1tTXT10aGlzLndvcmRzW1NdO1QubGVuZ3RoPVB9aWYoMCE9PVApaWYodGhpcy5sZW5ndGg+UClmb3IodGhpcy5sZW5ndGgtPVAsUz0wO1M8dGhpcy5sZW5ndGg7UysrKXRoaXMud29yZHNbU109''@;'; + put 'put ''dGhpcy53b3Jkc1tTK1BdO2Vsc2UgdGhpcy53b3Jkc1swXT0wLHRoaXMubGVuZ3RoPTE7dmFyIEY9MDtmb3IoUz10aGlzLmxlbmd0aC0xO1M+PTAmJigwIT09Rnx8Uz49dGUpO1MtLSl7dmFyIHllPTB8dGhpcy53b3Jkc1tTXTt0aGlzLndvcmRzW1NdPUY8PDI2LXh8eWU+Pj54LEY9eWUmVn1y''@;'; + put 'put ''ZXR1cm4gVCYmMCE9PUYmJihULndvcmRzW1QubGVuZ3RoKytdPUYpLDA9PT10aGlzLmxlbmd0aCYmKHRoaXMud29yZHNbMF09MCx0aGlzLmxlbmd0aD0xKSx0aGlzLnN0cmlwKCl9LFUucHJvdG90eXBlLmlzaHJuPWZ1bmN0aW9uKE8seixuZSl7cmV0dXJuIEUoMD09PXRoaXMubmVnYXRpdmUp''@;'; + put 'put ''LHRoaXMuaXVzaHJuKE8seixuZSl9LFUucHJvdG90eXBlLnNobG49ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc2hsbihPKX0sVS5wcm90b3R5cGUudXNobG49ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pdXNobG4oTyl9LFUucHJvdG90eXBlLnNocm49ZnVuY3Rp''@;'; + put 'put ''b24oTyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc2hybihPKX0sVS5wcm90b3R5cGUudXNocm49ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pdXNocm4oTyl9LFUucHJvdG90eXBlLnRlc3RuPWZ1bmN0aW9uKE8pe0UoIm51bWJlciI9PXR5cGVvZiBPJiZPPj0wKTt2YXIgej1PJTI2''@;'; + put 'put ''LG5lPShPLXopLzI2O3JldHVybiEodGhpcy5sZW5ndGg8PW5lfHwhKHRoaXMud29yZHNbbmVdJjE8PHopKX0sVS5wcm90b3R5cGUuaW1hc2tuPWZ1bmN0aW9uKE8pe0UoIm51bWJlciI9PXR5cGVvZiBPJiZPPj0wKTt2YXIgej1PJTI2LG5lPShPLXopLzI2O3JldHVybiBFKDA9PT10aGlzLm5l''@;'; + put 'put ''Z2F0aXZlLCJpbWFza24gd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlIG51bWJlcnMiKSx0aGlzLmxlbmd0aDw9bmU/dGhpczooMCE9PXomJm5lKyssdGhpcy5sZW5ndGg9TWF0aC5taW4obmUsdGhpcy5sZW5ndGgpLDAhPT16JiYodGhpcy53b3Jkc1t0aGlzLmxlbmd0aC0xXSY9NjcxMDg4NjNe''@;'; + put 'put ''NjcxMDg4NjM+Pj56PDx6KSx0aGlzLnN0cmlwKCkpfSxVLnByb3RvdHlwZS5tYXNrbj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmltYXNrbihPKX0sVS5wcm90b3R5cGUuaWFkZG49ZnVuY3Rpb24oTyl7cmV0dXJuIEUoIm51bWJlciI9PXR5cGVvZiBPKSxFKE88NjcxMDg4NjQp''@;'; + put 'put ''LE88MD90aGlzLmlzdWJuKC1PKTowIT09dGhpcy5uZWdhdGl2ZT8xPT09dGhpcy5sZW5ndGgmJigwfHRoaXMud29yZHNbMF0pPE8/KHRoaXMud29yZHNbMF09Ty0oMHx0aGlzLndvcmRzWzBdKSx0aGlzLm5lZ2F0aXZlPTAsdGhpcyk6KHRoaXMubmVnYXRpdmU9MCx0aGlzLmlzdWJuKE8pLHRo''@;'; + put 'put ''aXMubmVnYXRpdmU9MSx0aGlzKTp0aGlzLl9pYWRkbihPKX0sVS5wcm90b3R5cGUuX2lhZGRuPWZ1bmN0aW9uKE8pe3RoaXMud29yZHNbMF0rPU87Zm9yKHZhciB6PTA7ejx0aGlzLmxlbmd0aCYmdGhpcy53b3Jkc1t6XT49NjcxMDg4NjQ7eisrKXRoaXMud29yZHNbel0tPTY3MTA4ODY0LHo9''@;'; + put 'put ''PT10aGlzLmxlbmd0aC0xP3RoaXMud29yZHNbeisxXT0xOnRoaXMud29yZHNbeisxXSsrO3JldHVybiB0aGlzLmxlbmd0aD1NYXRoLm1heCh0aGlzLmxlbmd0aCx6KzEpLHRoaXN9LFUucHJvdG90eXBlLmlzdWJuPWZ1bmN0aW9uKE8pe2lmKEUoIm51bWJlciI9PXR5cGVvZiBPKSxFKE88Njcx''@;'; + put 'put ''MDg4NjQpLE88MClyZXR1cm4gdGhpcy5pYWRkbigtTyk7aWYoMCE9PXRoaXMubmVnYXRpdmUpcmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlzLmlhZGRuKE8pLHRoaXMubmVnYXRpdmU9MSx0aGlzO2lmKHRoaXMud29yZHNbMF0tPU8sMT09PXRoaXMubGVuZ3RoJiZ0aGlzLndvcmRzWzBdPDAp''@;'; + put 'put ''dGhpcy53b3Jkc1swXT0tdGhpcy53b3Jkc1swXSx0aGlzLm5lZ2F0aXZlPTE7ZWxzZSBmb3IodmFyIHo9MDt6PHRoaXMubGVuZ3RoJiZ0aGlzLndvcmRzW3pdPDA7eisrKXRoaXMud29yZHNbel0rPTY3MTA4ODY0LHRoaXMud29yZHNbeisxXS09MTtyZXR1cm4gdGhpcy5zdHJpcCgpfSxVLnBy''@;'; + put 'put ''b3RvdHlwZS5hZGRuPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmNsb25lKCkuaWFkZG4oTyl9LFUucHJvdG90eXBlLnN1Ym49ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc3VibihPKX0sVS5wcm90b3R5cGUuaWFicz1mdW5jdGlvbigpe3JldHVybiB0aGlzLm5lZ2F0aXZlPTAs''@;'; + put 'put ''dGhpc30sVS5wcm90b3R5cGUuYWJzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pYWJzKCl9LFUucHJvdG90eXBlLl9pc2hsbnN1Ym11bD1mdW5jdGlvbihPLHosbmUpe3ZhciB4O3RoaXMuX2V4cGFuZChPLmxlbmd0aCtuZSk7dmFyIFAsVj0wO2Zvcih4PTA7eDxPLmxlbmd0aDt4''@;'; + put 'put ''Kyspe1A9KDB8dGhpcy53b3Jkc1t4K25lXSkrVjt2YXIgVD0oMHxPLndvcmRzW3hdKSp6O1Y9KChQLT02NzEwODg2MyZUKT4+MjYpLShULzY3MTA4ODY0fDApLHRoaXMud29yZHNbeCtuZV09NjcxMDg4NjMmUH1mb3IoO3g8dGhpcy5sZW5ndGgtbmU7eCsrKVY9KFA9KDB8dGhpcy53b3Jkc1t4''@;'; + put 'put ''K25lXSkrVik+PjI2LHRoaXMud29yZHNbeCtuZV09NjcxMDg4NjMmUDtpZigwPT09VilyZXR1cm4gdGhpcy5zdHJpcCgpO2ZvcihFKC0xPT09ViksVj0wLHg9MDt4PHRoaXMubGVuZ3RoO3grKylWPShQPS0oMHx0aGlzLndvcmRzW3hdKStWKT4+MjYsdGhpcy53b3Jkc1t4XT02NzEwODg2MyZQ''@;'; + put 'put ''O3JldHVybiB0aGlzLm5lZ2F0aXZlPTEsdGhpcy5zdHJpcCgpfSxVLnByb3RvdHlwZS5fd29yZERpdj1mdW5jdGlvbihPLHope3ZhciBuZSx0ZT10aGlzLmNsb25lKCkseD1PLFA9MHx4LndvcmRzW3gubGVuZ3RoLTFdOzAhPShuZT0yNi10aGlzLl9jb3VudEJpdHMoUCkpJiYoeD14LnVzaGxu''@;'; + put 'put ''KG5lKSx0ZS5pdXNobG4obmUpLFA9MHx4LndvcmRzW3gubGVuZ3RoLTFdKTt2YXIgUyxUPXRlLmxlbmd0aC14Lmxlbmd0aDtpZigibW9kIiE9PXopeyhTPW5ldyBVKG51bGwpKS5sZW5ndGg9VCsxLFMud29yZHM9bmV3IEFycmF5KFMubGVuZ3RoKTtmb3IodmFyIEY9MDtGPFMubGVuZ3RoO0Yr''@;'; + put 'put ''KylTLndvcmRzW0ZdPTB9dmFyIHllPXRlLmNsb25lKCkuX2lzaGxuc3VibXVsKHgsMSxUKTswPT09eWUubmVnYXRpdmUmJih0ZT15ZSxTJiYoUy53b3Jkc1tUXT0xKSk7Zm9yKHZhciBDZT1ULTE7Q2U+PTA7Q2UtLSl7dmFyIERlPTY3MTA4ODY0KigwfHRlLndvcmRzW3gubGVuZ3RoK0NlXSkr''@;'; + put 'put ''KDB8dGUud29yZHNbeC5sZW5ndGgrQ2UtMV0pO2ZvcihEZT1NYXRoLm1pbihEZS9QfDAsNjcxMDg4NjMpLHRlLl9pc2hsbnN1Ym11bCh4LERlLENlKTswIT09dGUubmVnYXRpdmU7KURlLS0sdGUubmVnYXRpdmU9MCx0ZS5faXNobG5zdWJtdWwoeCwxLENlKSx0ZS5pc1plcm8oKXx8KHRlLm5l''@;'; + put 'put ''Z2F0aXZlXj0xKTtTJiYoUy53b3Jkc1tDZV09RGUpfXJldHVybiBTJiZTLnN0cmlwKCksdGUuc3RyaXAoKSwiZGl2IiE9PXomJjAhPT1uZSYmdGUuaXVzaHJuKG5lKSx7ZGl2OlN8fG51bGwsbW9kOnRlfX0sVS5wcm90b3R5cGUuZGl2bW9kPWZ1bmN0aW9uKE8seixuZSl7cmV0dXJuIEUoIU8u''@;'; + put 'put ''aXNaZXJvKCkpLHRoaXMuaXNaZXJvKCk/e2RpdjpuZXcgVSgwKSxtb2Q6bmV3IFUoMCl9OjAhPT10aGlzLm5lZ2F0aXZlJiYwPT09Ty5uZWdhdGl2ZT8oUD10aGlzLm5lZygpLmRpdm1vZChPLHopLCJtb2QiIT09eiYmKHRlPVAuZGl2Lm5lZygpKSwiZGl2IiE9PXomJih4PVAubW9kLm5lZygp''@;'; + put 'put ''LG5lJiYwIT09eC5uZWdhdGl2ZSYmeC5pYWRkKE8pKSx7ZGl2OnRlLG1vZDp4fSk6MD09PXRoaXMubmVnYXRpdmUmJjAhPT1PLm5lZ2F0aXZlPyhQPXRoaXMuZGl2bW9kKE8ubmVnKCkseiksIm1vZCIhPT16JiYodGU9UC5kaXYubmVnKCkpLHtkaXY6dGUsbW9kOlAubW9kfSk6MCE9KHRoaXMu''@;'; + put 'put ''bmVnYXRpdmUmTy5uZWdhdGl2ZSk/KFA9dGhpcy5uZWcoKS5kaXZtb2QoTy5uZWcoKSx6KSwiZGl2IiE9PXomJih4PVAubW9kLm5lZygpLG5lJiYwIT09eC5uZWdhdGl2ZSYmeC5pc3ViKE8pKSx7ZGl2OlAuZGl2LG1vZDp4fSk6Ty5sZW5ndGg+dGhpcy5sZW5ndGh8fHRoaXMuY21wKE8pPDA/''@;'; + put 'put ''e2RpdjpuZXcgVSgwKSxtb2Q6dGhpc306MT09PU8ubGVuZ3RoPyJkaXYiPT09ej97ZGl2OnRoaXMuZGl2bihPLndvcmRzWzBdKSxtb2Q6bnVsbH06Im1vZCI9PT16P3tkaXY6bnVsbCxtb2Q6bmV3IFUodGhpcy5tb2RuKE8ud29yZHNbMF0pKX06e2Rpdjp0aGlzLmRpdm4oTy53b3Jkc1swXSks''@;'; + put 'put ''bW9kOm5ldyBVKHRoaXMubW9kbihPLndvcmRzWzBdKSl9OnRoaXMuX3dvcmREaXYoTyx6KTt2YXIgdGUseCxQfSxVLnByb3RvdHlwZS5kaXY9ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuZGl2bW9kKE8sImRpdiIsITEpLmRpdn0sVS5wcm90b3R5cGUubW9kPWZ1bmN0aW9uKE8pe3JldHVybiB0''@;'; + put 'put ''aGlzLmRpdm1vZChPLCJtb2QiLCExKS5tb2R9LFUucHJvdG90eXBlLnVtb2Q9ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuZGl2bW9kKE8sIm1vZCIsITApLm1vZH0sVS5wcm90b3R5cGUuZGl2Um91bmQ9ZnVuY3Rpb24oTyl7dmFyIHo9dGhpcy5kaXZtb2QoTyk7aWYoei5tb2QuaXNaZXJvKCkp''@;'; + put 'put ''cmV0dXJuIHouZGl2O3ZhciBuZT0wIT09ei5kaXYubmVnYXRpdmU/ei5tb2QuaXN1YihPKTp6Lm1vZCx0ZT1PLnVzaHJuKDEpLHg9Ty5hbmRsbigxKSxQPW5lLmNtcCh0ZSk7cmV0dXJuIFA8MHx8MT09PXgmJjA9PT1QP3ouZGl2OjAhPT16LmRpdi5uZWdhdGl2ZT96LmRpdi5pc3VibigxKTp6''@;'; + put 'put ''LmRpdi5pYWRkbigxKX0sVS5wcm90b3R5cGUubW9kbj1mdW5jdGlvbihPKXtFKE88PTY3MTA4ODYzKTtmb3IodmFyIHo9KDE8PDI2KSVPLG5lPTAsdGU9dGhpcy5sZW5ndGgtMTt0ZT49MDt0ZS0tKW5lPSh6Km5lKygwfHRoaXMud29yZHNbdGVdKSklTztyZXR1cm4gbmV9LFUucHJvdG90eXBl''@;'; + put 'put ''LmlkaXZuPWZ1bmN0aW9uKE8pe0UoTzw9NjcxMDg4NjMpO2Zvcih2YXIgej0wLG5lPXRoaXMubGVuZ3RoLTE7bmU+PTA7bmUtLSl7dmFyIHRlPSgwfHRoaXMud29yZHNbbmVdKSs2NzEwODg2NCp6O3RoaXMud29yZHNbbmVdPXRlL098MCx6PXRlJU99cmV0dXJuIHRoaXMuc3RyaXAoKX0sVS5w''@;'; + put 'put ''cm90b3R5cGUuZGl2bj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlkaXZuKE8pfSxVLnByb3RvdHlwZS5lZ2NkPWZ1bmN0aW9uKE8pe0UoMD09PU8ubmVnYXRpdmUpLEUoIU8uaXNaZXJvKCkpO3ZhciB6PXRoaXMsbmU9Ty5jbG9uZSgpO3o9MCE9PXoubmVnYXRpdmU/ei51bW9k''@;'; + put 'put ''KE8pOnouY2xvbmUoKTtmb3IodmFyIHRlPW5ldyBVKDEpLHg9bmV3IFUoMCksUD1uZXcgVSgwKSxWPW5ldyBVKDEpLFQ9MDt6LmlzRXZlbigpJiZuZS5pc0V2ZW4oKTspei5pdXNocm4oMSksbmUuaXVzaHJuKDEpLCsrVDtmb3IodmFyIFM9bmUuY2xvbmUoKSxGPXouY2xvbmUoKTshei5pc1pl''@;'; + put 'put ''cm8oKTspe2Zvcih2YXIgeWU9MCxDZT0xOzA9PSh6LndvcmRzWzBdJkNlKSYmeWU8MjY7Kyt5ZSxDZTw8PTEpO2lmKHllPjApZm9yKHouaXVzaHJuKHllKTt5ZS0tID4wOykodGUuaXNPZGQoKXx8eC5pc09kZCgpKSYmKHRlLmlhZGQoUykseC5pc3ViKEYpKSx0ZS5pdXNocm4oMSkseC5pdXNo''@;'; + put 'put ''cm4oMSk7Zm9yKHZhciBEZT0wLFBlPTE7MD09KG5lLndvcmRzWzBdJlBlKSYmRGU8MjY7KytEZSxQZTw8PTEpO2lmKERlPjApZm9yKG5lLml1c2hybihEZSk7RGUtLSA+MDspKFAuaXNPZGQoKXx8Vi5pc09kZCgpKSYmKFAuaWFkZChTKSxWLmlzdWIoRikpLFAuaXVzaHJuKDEpLFYuaXVzaHJu''@;'; + put 'put ''KDEpO3ouY21wKG5lKT49MD8oei5pc3ViKG5lKSx0ZS5pc3ViKFApLHguaXN1YihWKSk6KG5lLmlzdWIoeiksUC5pc3ViKHRlKSxWLmlzdWIoeCkpfXJldHVybnthOlAsYjpWLGdjZDpuZS5pdXNobG4oVCl9fSxVLnByb3RvdHlwZS5faW52bXA9ZnVuY3Rpb24oTyl7RSgwPT09Ty5uZWdhdGl2''@;'; + put 'put ''ZSksRSghTy5pc1plcm8oKSk7dmFyIHllLHo9dGhpcyxuZT1PLmNsb25lKCk7ej0wIT09ei5uZWdhdGl2ZT96LnVtb2QoTyk6ei5jbG9uZSgpO2Zvcih2YXIgdGU9bmV3IFUoMSkseD1uZXcgVSgwKSxQPW5lLmNsb25lKCk7ei5jbXBuKDEpPjAmJm5lLmNtcG4oMSk+MDspe2Zvcih2YXIgVj0w''@;'; + put 'put ''LFQ9MTswPT0oei53b3Jkc1swXSZUKSYmVjwyNjsrK1YsVDw8PTEpO2lmKFY+MClmb3Ioei5pdXNocm4oVik7Vi0tID4wOyl0ZS5pc09kZCgpJiZ0ZS5pYWRkKFApLHRlLml1c2hybigxKTtmb3IodmFyIFM9MCxGPTE7MD09KG5lLndvcmRzWzBdJkYpJiZTPDI2OysrUyxGPDw9MSk7aWYoUz4w''@;'; + put 'put ''KWZvcihuZS5pdXNocm4oUyk7Uy0tID4wOyl4LmlzT2RkKCkmJnguaWFkZChQKSx4Lml1c2hybigxKTt6LmNtcChuZSk+PTA/KHouaXN1YihuZSksdGUuaXN1Yih4KSk6KG5lLmlzdWIoeikseC5pc3ViKHRlKSl9cmV0dXJuKHllPTA9PT16LmNtcG4oMSk/dGU6eCkuY21wbigwKTwwJiZ5ZS5p''@;'; + put 'put ''YWRkKE8pLHllfSxVLnByb3RvdHlwZS5nY2Q9ZnVuY3Rpb24oTyl7aWYodGhpcy5pc1plcm8oKSlyZXR1cm4gTy5hYnMoKTtpZihPLmlzWmVybygpKXJldHVybiB0aGlzLmFicygpO3ZhciB6PXRoaXMuY2xvbmUoKSxuZT1PLmNsb25lKCk7ei5uZWdhdGl2ZT0wLG5lLm5lZ2F0aXZlPTA7Zm9y''@;'; + put 'put ''KHZhciB0ZT0wO3ouaXNFdmVuKCkmJm5lLmlzRXZlbigpO3RlKyspei5pdXNocm4oMSksbmUuaXVzaHJuKDEpO2Zvcig7Oyl7Zm9yKDt6LmlzRXZlbigpOyl6Lml1c2hybigxKTtmb3IoO25lLmlzRXZlbigpOyluZS5pdXNocm4oMSk7dmFyIHg9ei5jbXAobmUpO2lmKHg8MCl7dmFyIFA9ejt6''@;'; + put 'put ''PW5lLG5lPVB9ZWxzZSBpZigwPT09eHx8MD09PW5lLmNtcG4oMSkpYnJlYWs7ei5pc3ViKG5lKX1yZXR1cm4gbmUuaXVzaGxuKHRlKX0sVS5wcm90b3R5cGUuaW52bT1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5lZ2NkKE8pLmEudW1vZChPKX0sVS5wcm90b3R5cGUuaXNFdmVuPWZ1bmN0aW9u''@;'; + put 'put ''KCl7cmV0dXJuIDA9PSgxJnRoaXMud29yZHNbMF0pfSxVLnByb3RvdHlwZS5pc09kZD1mdW5jdGlvbigpe3JldHVybiAxPT0oMSZ0aGlzLndvcmRzWzBdKX0sVS5wcm90b3R5cGUuYW5kbG49ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMud29yZHNbMF0mT30sVS5wcm90b3R5cGUuYmluY249ZnVu''@;'; + put 'put ''Y3Rpb24oTyl7RSgibnVtYmVyIj09dHlwZW9mIE8pO3ZhciB6PU8lMjYsbmU9KE8teikvMjYsdGU9MTw8ejtpZih0aGlzLmxlbmd0aDw9bmUpcmV0dXJuIHRoaXMuX2V4cGFuZChuZSsxKSx0aGlzLndvcmRzW25lXXw9dGUsdGhpcztmb3IodmFyIHg9dGUsUD1uZTswIT09eCYmUDx0aGlzLmxl''@;'; + put 'put ''bmd0aDtQKyspe3ZhciBWPTB8dGhpcy53b3Jkc1tQXTt4PShWKz14KT4+PjI2LHRoaXMud29yZHNbUF09ViY9NjcxMDg4NjN9cmV0dXJuIDAhPT14JiYodGhpcy53b3Jkc1tQXT14LHRoaXMubGVuZ3RoKyspLHRoaXN9LFUucHJvdG90eXBlLmlzWmVybz1mdW5jdGlvbigpe3JldHVybiAxPT09''@;'; + put 'put ''dGhpcy5sZW5ndGgmJjA9PT10aGlzLndvcmRzWzBdfSxVLnByb3RvdHlwZS5jbXBuPWZ1bmN0aW9uKE8pe3ZhciBuZSx6PU88MDtpZigwIT09dGhpcy5uZWdhdGl2ZSYmIXopcmV0dXJuLTE7aWYoMD09PXRoaXMubmVnYXRpdmUmJnopcmV0dXJuIDE7aWYodGhpcy5zdHJpcCgpLHRoaXMubGVu''@;'; + put 'put ''Z3RoPjEpbmU9MTtlbHNle3omJihPPS1PKSxFKE88PTY3MTA4ODYzLCJOdW1iZXIgaXMgdG9vIGJpZyIpO3ZhciB0ZT0wfHRoaXMud29yZHNbMF07bmU9dGU9PT1PPzA6dGU8Tz8tMToxfXJldHVybiAwIT09dGhpcy5uZWdhdGl2ZT8wfC1uZTpuZX0sVS5wcm90b3R5cGUuY21wPWZ1bmN0aW9u''@;'; + put 'put ''KE8pe2lmKDAhPT10aGlzLm5lZ2F0aXZlJiYwPT09Ty5uZWdhdGl2ZSlyZXR1cm4tMTtpZigwPT09dGhpcy5uZWdhdGl2ZSYmMCE9PU8ubmVnYXRpdmUpcmV0dXJuIDE7dmFyIHo9dGhpcy51Y21wKE8pO3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZT8wfC16Onp9LFUucHJvdG90eXBlLnVjbXA9''@;'; + put 'put ''ZnVuY3Rpb24oTyl7aWYodGhpcy5sZW5ndGg+Ty5sZW5ndGgpcmV0dXJuIDE7aWYodGhpcy5sZW5ndGg8Ty5sZW5ndGgpcmV0dXJuLTE7Zm9yKHZhciB6PTAsbmU9dGhpcy5sZW5ndGgtMTtuZT49MDtuZS0tKXt2YXIgdGU9MHx0aGlzLndvcmRzW25lXSx4PTB8Ty53b3Jkc1tuZV07aWYodGUh''@;'; + put 'put ''PT14KXt0ZTx4P3o9LTE6dGU+eCYmKHo9MSk7YnJlYWt9fXJldHVybiB6fSxVLnByb3RvdHlwZS5ndG49ZnVuY3Rpb24oTyl7cmV0dXJuIDE9PT10aGlzLmNtcG4oTyl9LFUucHJvdG90eXBlLmd0PWZ1bmN0aW9uKE8pe3JldHVybiAxPT09dGhpcy5jbXAoTyl9LFUucHJvdG90eXBlLmd0ZW49''@;'; + put 'put ''ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuY21wbihPKT49MH0sVS5wcm90b3R5cGUuZ3RlPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmNtcChPKT49MH0sVS5wcm90b3R5cGUubHRuPWZ1bmN0aW9uKE8pe3JldHVybi0xPT09dGhpcy5jbXBuKE8pfSxVLnByb3RvdHlwZS5sdD1mdW5jdGlvbihP''@;'; + put 'put ''KXtyZXR1cm4tMT09PXRoaXMuY21wKE8pfSxVLnByb3RvdHlwZS5sdGVuPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmNtcG4oTyk8PTB9LFUucHJvdG90eXBlLmx0ZT1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5jbXAoTyk8PTB9LFUucHJvdG90eXBlLmVxbj1mdW5jdGlvbihPKXtyZXR1cm4g''@;'; + put 'put ''MD09PXRoaXMuY21wbihPKX0sVS5wcm90b3R5cGUuZXE9ZnVuY3Rpb24oTyl7cmV0dXJuIDA9PT10aGlzLmNtcChPKX0sVS5yZWQ9ZnVuY3Rpb24oTyl7cmV0dXJuIG5ldyBUZShPKX0sVS5wcm90b3R5cGUudG9SZWQ9ZnVuY3Rpb24oTyl7cmV0dXJuIEUoIXRoaXMucmVkLCJBbHJlYWR5IGEg''@;'; + put 'put ''bnVtYmVyIGluIHJlZHVjdGlvbiBjb250ZXh0IiksRSgwPT09dGhpcy5uZWdhdGl2ZSwicmVkIHdvcmtzIG9ubHkgd2l0aCBwb3NpdGl2ZXMiKSxPLmNvbnZlcnRUbyh0aGlzKS5fZm9yY2VSZWQoTyl9LFUucHJvdG90eXBlLmZyb21SZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gRSh0aGlzLnJlZCwi''@;'; + put 'put ''ZnJvbVJlZCB3b3JrcyBvbmx5IHdpdGggbnVtYmVycyBpbiByZWR1Y3Rpb24gY29udGV4dCIpLHRoaXMucmVkLmNvbnZlcnRGcm9tKHRoaXMpfSxVLnByb3RvdHlwZS5fZm9yY2VSZWQ9ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMucmVkPU8sdGhpc30sVS5wcm90b3R5cGUuZm9yY2VSZWQ9ZnVu''@;'; + put 'put ''Y3Rpb24oTyl7cmV0dXJuIEUoIXRoaXMucmVkLCJBbHJlYWR5IGEgbnVtYmVyIGluIHJlZHVjdGlvbiBjb250ZXh0IiksdGhpcy5fZm9yY2VSZWQoTyl9LFUucHJvdG90eXBlLnJlZEFkZD1mdW5jdGlvbihPKXtyZXR1cm4gRSh0aGlzLnJlZCwicmVkQWRkIHdvcmtzIG9ubHkgd2l0aCByZWQg''@;'; + put 'put ''bnVtYmVycyIpLHRoaXMucmVkLmFkZCh0aGlzLE8pfSxVLnByb3RvdHlwZS5yZWRJQWRkPWZ1bmN0aW9uKE8pe3JldHVybiBFKHRoaXMucmVkLCJyZWRJQWRkIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLmlhZGQodGhpcyxPKX0sVS5wcm90b3R5cGUucmVkU3ViPWZ1''@;'; + put 'put ''bmN0aW9uKE8pe3JldHVybiBFKHRoaXMucmVkLCJyZWRTdWIgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuc3ViKHRoaXMsTyl9LFUucHJvdG90eXBlLnJlZElTdWI9ZnVuY3Rpb24oTyl7cmV0dXJuIEUodGhpcy5yZWQsInJlZElTdWIgd29ya3Mgb25seSB3aXRoIHJl''@;'; + put 'put ''ZCBudW1iZXJzIiksdGhpcy5yZWQuaXN1Yih0aGlzLE8pfSxVLnByb3RvdHlwZS5yZWRTaGw9ZnVuY3Rpb24oTyl7cmV0dXJuIEUodGhpcy5yZWQsInJlZFNobCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5zaGwodGhpcyxPKX0sVS5wcm90b3R5cGUucmVkTXVsPWZ1''@;'; + put 'put ''bmN0aW9uKE8pe3JldHVybiBFKHRoaXMucmVkLCJyZWRNdWwgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTIodGhpcyxPKSx0aGlzLnJlZC5tdWwodGhpcyxPKX0sVS5wcm90b3R5cGUucmVkSU11bD1mdW5jdGlvbihPKXtyZXR1cm4gRSh0aGlzLnJlZCwi''@;'; + put 'put ''cmVkTXVsIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkyKHRoaXMsTyksdGhpcy5yZWQuaW11bCh0aGlzLE8pfSxVLnByb3RvdHlwZS5yZWRTcXI9ZnVuY3Rpb24oKXtyZXR1cm4gRSh0aGlzLnJlZCwicmVkU3FyIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVt''@;'; + put 'put ''YmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLnNxcih0aGlzKX0sVS5wcm90b3R5cGUucmVkSVNxcj1mdW5jdGlvbigpe3JldHVybiBFKHRoaXMucmVkLCJyZWRJU3FyIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRo''@;'; + put 'put ''aXMucmVkLmlzcXIodGhpcyl9LFUucHJvdG90eXBlLnJlZFNxcnQ9ZnVuY3Rpb24oKXtyZXR1cm4gRSh0aGlzLnJlZCwicmVkU3FydCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5zcXJ0KHRoaXMpfSxVLnByb3RvdHlwZS5y''@;'; + put 'put ''ZWRJbnZtPWZ1bmN0aW9uKCl7cmV0dXJuIEUodGhpcy5yZWQsInJlZEludm0gd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQuaW52bSh0aGlzKX0sVS5wcm90b3R5cGUucmVkTmVnPWZ1bmN0aW9uKCl7cmV0dXJuIEUodGhpcy5y''@;'; + put 'put ''ZWQsInJlZE5lZyB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5uZWcodGhpcyl9LFUucHJvdG90eXBlLnJlZFBvdz1mdW5jdGlvbihPKXtyZXR1cm4gRSh0aGlzLnJlZCYmIU8ucmVkLCJyZWRQb3cobm9ybWFsTnVtKSIpLHRo''@;'; + put 'put ''aXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLnBvdyh0aGlzLE8pfTt2YXIgZGU9e2syNTY6bnVsbCxwMjI0Om51bGwscDE5MjpudWxsLHAyNTUxOTpudWxsfTtmdW5jdGlvbiB2ZShoZSxPKXt0aGlzLm5hbWU9aGUsdGhpcy5wPW5ldyBVKE8sMTYpLHRoaXMubj10aGlzLnAuYml0TGVu''@;'; + put 'put ''Z3RoKCksdGhpcy5rPW5ldyBVKDEpLml1c2hsbih0aGlzLm4pLmlzdWIodGhpcy5wKSx0aGlzLnRtcD10aGlzLl90bXAoKX1mdW5jdGlvbiBBZSgpe3ZlLmNhbGwodGhpcywiazI1NiIsImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZm''@;'; + put 'put ''ZmZlIGZmZmZmYzJmIil9ZnVuY3Rpb24ga2UoKXt2ZS5jYWxsKHRoaXMsInAyMjQiLCJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMSIpfWZ1bmN0aW9uIFNlKCl7dmUuY2FsbCh0aGlzLCJwMTkyIiwiZmZmZmZmZmYgZmZmZmZm''@;'; + put 'put ''ZmYgZmZmZmZmZmYgZmZmZmZmZmUgZmZmZmZmZmYgZmZmZmZmZmYiKX1mdW5jdGlvbiBJZSgpe3ZlLmNhbGwodGhpcywiMjU1MTkiLCI3ZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZmZmZmZmVkIil9ZnVuY3Rpb24gVGUoaGUpe2lm''@;'; + put 'put ''KCJzdHJpbmciPT10eXBlb2YgaGUpe3ZhciBPPVUuX3ByaW1lKGhlKTt0aGlzLm09Ty5wLHRoaXMucHJpbWU9T31lbHNlIEUoaGUuZ3RuKDEpLCJtb2R1bHVzIG11c3QgYmUgZ3JlYXRlciB0aGFuIDEiKSx0aGlzLm09aGUsdGhpcy5wcmltZT1udWxsfWZ1bmN0aW9uIEVlKGhlKXtUZS5jYWxs''@;'; + put 'put ''KHRoaXMsaGUpLHRoaXMuc2hpZnQ9dGhpcy5tLmJpdExlbmd0aCgpLHRoaXMuc2hpZnQlMjYhPTAmJih0aGlzLnNoaWZ0Kz0yNi10aGlzLnNoaWZ0JTI2KSx0aGlzLnI9bmV3IFUoMSkuaXVzaGxuKHRoaXMuc2hpZnQpLHRoaXMucjI9dGhpcy5pbW9kKHRoaXMuci5zcXIoKSksdGhpcy5yaW52''@;'; + put 'put ''PXRoaXMuci5faW52bXAodGhpcy5tKSx0aGlzLm1pbnY9dGhpcy5yaW52Lm11bCh0aGlzLnIpLmlzdWJuKDEpLmRpdih0aGlzLm0pLHRoaXMubWludj10aGlzLm1pbnYudW1vZCh0aGlzLnIpLHRoaXMubWludj10aGlzLnIuc3ViKHRoaXMubWludil9dmUucHJvdG90eXBlLl90bXA9ZnVuY3Rp''@;'; + put 'put ''b24oKXt2YXIgTz1uZXcgVShudWxsKTtyZXR1cm4gTy53b3Jkcz1uZXcgQXJyYXkoTWF0aC5jZWlsKHRoaXMubi8xMykpLE99LHZlLnByb3RvdHlwZS5pcmVkdWNlPWZ1bmN0aW9uKE8pe3ZhciBuZSx6PU87ZG97dGhpcy5zcGxpdCh6LHRoaXMudG1wKSxuZT0oej0oej10aGlzLmltdWxLKHop''@;'; + put 'put ''KS5pYWRkKHRoaXMudG1wKSkuYml0TGVuZ3RoKCl9d2hpbGUobmU+dGhpcy5uKTt2YXIgdGU9bmU8dGhpcy5uPy0xOnoudWNtcCh0aGlzLnApO3JldHVybiAwPT09dGU/KHoud29yZHNbMF09MCx6Lmxlbmd0aD0xKTp0ZT4wP3ouaXN1Yih0aGlzLnApOnZvaWQgMCE9PXouc3RyaXA/ei5zdHJp''@;'; + put 'put ''cCgpOnouX3N0cmlwKCksen0sdmUucHJvdG90eXBlLnNwbGl0PWZ1bmN0aW9uKE8seil7Ty5pdXNocm4odGhpcy5uLDAseil9LHZlLnByb3RvdHlwZS5pbXVsSz1mdW5jdGlvbihPKXtyZXR1cm4gTy5pbXVsKHRoaXMuayl9LE1lKEFlLHZlKSxBZS5wcm90b3R5cGUuc3BsaXQ9ZnVuY3Rpb24o''@;'; + put 'put ''Tyx6KXtmb3IodmFyIHRlPU1hdGgubWluKE8ubGVuZ3RoLDkpLHg9MDt4PHRlO3grKyl6LndvcmRzW3hdPU8ud29yZHNbeF07aWYoei5sZW5ndGg9dGUsTy5sZW5ndGg8PTkpcmV0dXJuIE8ud29yZHNbMF09MCx2b2lkKE8ubGVuZ3RoPTEpO3ZhciBQPU8ud29yZHNbOV07Zm9yKHoud29yZHNb''@;'; + put 'put ''ei5sZW5ndGgrK109NDE5NDMwMyZQLHg9MTA7eDxPLmxlbmd0aDt4Kyspe3ZhciBWPTB8Ty53b3Jkc1t4XTtPLndvcmRzW3gtMTBdPSg0MTk0MzAzJlYpPDw0fFA+Pj4yMixQPVZ9Ty53b3Jkc1t4LTEwXT1QPj4+PTIyLE8ubGVuZ3RoLT0wPT09UCYmTy5sZW5ndGg+MTA/MTA6OX0sQWUucHJv''@;'; + put 'put ''dG90eXBlLmltdWxLPWZ1bmN0aW9uKE8pe08ud29yZHNbTy5sZW5ndGhdPTAsTy53b3Jkc1tPLmxlbmd0aCsxXT0wLE8ubGVuZ3RoKz0yO2Zvcih2YXIgej0wLG5lPTA7bmU8Ty5sZW5ndGg7bmUrKyl7dmFyIHRlPTB8Ty53b3Jkc1tuZV07Ty53b3Jkc1tuZV09NjcxMDg4NjMmKHorPTk3Nyp0''@;'; + put 'put ''ZSksej02NCp0ZSsoei82NzEwODg2NHwwKX1yZXR1cm4gMD09PU8ud29yZHNbTy5sZW5ndGgtMV0mJihPLmxlbmd0aC0tLDA9PT1PLndvcmRzW08ubGVuZ3RoLTFdJiZPLmxlbmd0aC0tKSxPfSxNZShrZSx2ZSksTWUoU2UsdmUpLE1lKEllLHZlKSxJZS5wcm90b3R5cGUuaW11bEs9ZnVuY3Rp''@;'; + put 'put ''b24oTyl7Zm9yKHZhciB6PTAsbmU9MDtuZTxPLmxlbmd0aDtuZSsrKXt2YXIgdGU9MTkqKDB8Ty53b3Jkc1tuZV0pK3oseD02NzEwODg2MyZ0ZTt0ZT4+Pj0yNixPLndvcmRzW25lXT14LHo9dGV9cmV0dXJuIDAhPT16JiYoTy53b3Jkc1tPLmxlbmd0aCsrXT16KSxPfSxVLl9wcmltZT1mdW5j''@;'; + put 'put ''dGlvbihPKXtpZihkZVtPXSlyZXR1cm4gZGVbT107dmFyIHo7aWYoImsyNTYiPT09Tyl6PW5ldyBBZTtlbHNlIGlmKCJwMjI0Ij09PU8pej1uZXcga2U7ZWxzZSBpZigicDE5MiI9PT1PKXo9bmV3IFNlO2Vsc2V7aWYoInAyNTUxOSIhPT1PKXRocm93IG5ldyBFcnJvcigiVW5rbm93biBwcmlt''@;'; + put 'put ''ZSAiK08pO3o9bmV3IEllfXJldHVybiBkZVtPXT16LHp9LFRlLnByb3RvdHlwZS5fdmVyaWZ5MT1mdW5jdGlvbihPKXtFKDA9PT1PLm5lZ2F0aXZlLCJyZWQgd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlcyIpLEUoTy5yZWQsInJlZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKX0sVGUu''@;'; + put 'put ''cHJvdG90eXBlLl92ZXJpZnkyPWZ1bmN0aW9uKE8seil7RSgwPT0oTy5uZWdhdGl2ZXx6Lm5lZ2F0aXZlKSwicmVkIHdvcmtzIG9ubHkgd2l0aCBwb3NpdGl2ZXMiKSxFKE8ucmVkJiZPLnJlZD09PXoucmVkLCJyZWQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIil9LFRlLnByb3RvdHlw''@;'; + put 'put ''ZS5pbW9kPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLnByaW1lP3RoaXMucHJpbWUuaXJlZHVjZShPKS5fZm9yY2VSZWQodGhpcyk6Ty51bW9kKHRoaXMubSkuX2ZvcmNlUmVkKHRoaXMpfSxUZS5wcm90b3R5cGUubmVnPWZ1bmN0aW9uKE8pe3JldHVybiBPLmlzWmVybygpP08uY2xvbmUoKTp0''@;'; + put 'put ''aGlzLm0uc3ViKE8pLl9mb3JjZVJlZCh0aGlzKX0sVGUucHJvdG90eXBlLmFkZD1mdW5jdGlvbihPLHope3RoaXMuX3ZlcmlmeTIoTyx6KTt2YXIgbmU9Ty5hZGQoeik7cmV0dXJuIG5lLmNtcCh0aGlzLm0pPj0wJiZuZS5pc3ViKHRoaXMubSksbmUuX2ZvcmNlUmVkKHRoaXMpfSxUZS5wcm90''@;'; + put 'put ''b3R5cGUuaWFkZD1mdW5jdGlvbihPLHope3RoaXMuX3ZlcmlmeTIoTyx6KTt2YXIgbmU9Ty5pYWRkKHopO3JldHVybiBuZS5jbXAodGhpcy5tKT49MCYmbmUuaXN1Yih0aGlzLm0pLG5lfSxUZS5wcm90b3R5cGUuc3ViPWZ1bmN0aW9uKE8seil7dGhpcy5fdmVyaWZ5MihPLHopO3ZhciBuZT1P''@;'; + put 'put ''LnN1Yih6KTtyZXR1cm4gbmUuY21wbigwKTwwJiZuZS5pYWRkKHRoaXMubSksbmUuX2ZvcmNlUmVkKHRoaXMpfSxUZS5wcm90b3R5cGUuaXN1Yj1mdW5jdGlvbihPLHope3RoaXMuX3ZlcmlmeTIoTyx6KTt2YXIgbmU9Ty5pc3ViKHopO3JldHVybiBuZS5jbXBuKDApPDAmJm5lLmlhZGQodGhp''@;'; + put 'put ''cy5tKSxuZX0sVGUucHJvdG90eXBlLnNobD1mdW5jdGlvbihPLHope3JldHVybiB0aGlzLl92ZXJpZnkxKE8pLHRoaXMuaW1vZChPLnVzaGxuKHopKX0sVGUucHJvdG90eXBlLmltdWw9ZnVuY3Rpb24oTyx6KXtyZXR1cm4gdGhpcy5fdmVyaWZ5MihPLHopLHRoaXMuaW1vZChPLmltdWwoeikp''@;'; + put 'put ''fSxUZS5wcm90b3R5cGUubXVsPWZ1bmN0aW9uKE8seil7cmV0dXJuIHRoaXMuX3ZlcmlmeTIoTyx6KSx0aGlzLmltb2QoTy5tdWwoeikpfSxUZS5wcm90b3R5cGUuaXNxcj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5pbXVsKE8sTy5jbG9uZSgpKX0sVGUucHJvdG90eXBlLnNxcj1mdW5jdGlv''@;'; + put 'put ''bihPKXtyZXR1cm4gdGhpcy5tdWwoTyxPKX0sVGUucHJvdG90eXBlLnNxcnQ9ZnVuY3Rpb24oTyl7aWYoTy5pc1plcm8oKSlyZXR1cm4gTy5jbG9uZSgpO3ZhciB6PXRoaXMubS5hbmRsbigzKTtpZihFKHolMj09MSksMz09PXope3ZhciBuZT10aGlzLm0uYWRkKG5ldyBVKDEpKS5pdXNocm4o''@;'; + put 'put ''Mik7cmV0dXJuIHRoaXMucG93KE8sbmUpfWZvcih2YXIgdGU9dGhpcy5tLnN1Ym4oMSkseD0wOyF0ZS5pc1plcm8oKSYmMD09PXRlLmFuZGxuKDEpOyl4KyssdGUuaXVzaHJuKDEpO0UoIXRlLmlzWmVybygpKTt2YXIgUD1uZXcgVSgxKS50b1JlZCh0aGlzKSxWPVAucmVkTmVnKCksVD10aGlz''@;'; + put 'put ''Lm0uc3VibigxKS5pdXNocm4oMSksUz10aGlzLm0uYml0TGVuZ3RoKCk7Zm9yKFM9bmV3IFUoMipTKlMpLnRvUmVkKHRoaXMpOzAhPT10aGlzLnBvdyhTLFQpLmNtcChWKTspUy5yZWRJQWRkKFYpO2Zvcih2YXIgRj10aGlzLnBvdyhTLHRlKSx5ZT10aGlzLnBvdyhPLHRlLmFkZG4oMSkuaXVz''@;'; + put 'put ''aHJuKDEpKSxDZT10aGlzLnBvdyhPLHRlKSxEZT14OzAhPT1DZS5jbXAoUCk7KXtmb3IodmFyIFBlPUNlLFFlPTA7MCE9PVBlLmNtcChQKTtRZSsrKVBlPVBlLnJlZFNxcigpO0UoUWU8RGUpO3ZhciAkZT10aGlzLnBvdyhGLG5ldyBVKDEpLml1c2hsbihEZS1RZS0xKSk7eWU9eWUucmVkTXVs''@;'; + put 'put ''KCRlKSxGPSRlLnJlZFNxcigpLENlPUNlLnJlZE11bChGKSxEZT1RZX1yZXR1cm4geWV9LFRlLnByb3RvdHlwZS5pbnZtPWZ1bmN0aW9uKE8pe3ZhciB6PU8uX2ludm1wKHRoaXMubSk7cmV0dXJuIDAhPT16Lm5lZ2F0aXZlPyh6Lm5lZ2F0aXZlPTAsdGhpcy5pbW9kKHopLnJlZE5lZygpKTp0''@;'; + put 'put ''aGlzLmltb2Qoeil9LFRlLnByb3RvdHlwZS5wb3c9ZnVuY3Rpb24oTyx6KXtpZih6LmlzWmVybygpKXJldHVybiBuZXcgVSgxKS50b1JlZCh0aGlzKTtpZigwPT09ei5jbXBuKDEpKXJldHVybiBPLmNsb25lKCk7dmFyIHRlPW5ldyBBcnJheSgxNik7dGVbMF09bmV3IFUoMSkudG9SZWQodGhp''@;'; + put 'put ''cyksdGVbMV09Tztmb3IodmFyIHg9Mjt4PHRlLmxlbmd0aDt4KyspdGVbeF09dGhpcy5tdWwodGVbeC0xXSxPKTt2YXIgUD10ZVswXSxWPTAsVD0wLFM9ei5iaXRMZW5ndGgoKSUyNjtmb3IoMD09PVMmJihTPTI2KSx4PXoubGVuZ3RoLTE7eD49MDt4LS0pe2Zvcih2YXIgRj16LndvcmRzW3hd''@;'; + put 'put ''LHllPVMtMTt5ZT49MDt5ZS0tKXt2YXIgQ2U9Rj4+eWUmMTtQIT09dGVbMF0mJihQPXRoaXMuc3FyKFApKSwwIT09Q2V8fDAhPT1WPyhWPDw9MSxWfD1DZSwoND09KytUfHwwPT09eCYmMD09PXllKSYmKFA9dGhpcy5tdWwoUCx0ZVtWXSksVD0wLFY9MCkpOlQ9MH1TPTI2fXJldHVybiBQfSxU''@;'; + put 'put ''ZS5wcm90b3R5cGUuY29udmVydFRvPWZ1bmN0aW9uKE8pe3ZhciB6PU8udW1vZCh0aGlzLm0pO3JldHVybiB6PT09Tz96LmNsb25lKCk6en0sVGUucHJvdG90eXBlLmNvbnZlcnRGcm9tPWZ1bmN0aW9uKE8pe3ZhciB6PU8uY2xvbmUoKTtyZXR1cm4gei5yZWQ9bnVsbCx6fSxVLm1vbnQ9ZnVu''@;'; + put 'put ''Y3Rpb24oTyl7cmV0dXJuIG5ldyBFZShPKX0sTWUoRWUsVGUpLEVlLnByb3RvdHlwZS5jb252ZXJ0VG89ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuaW1vZChPLnVzaGxuKHRoaXMuc2hpZnQpKX0sRWUucHJvdG90eXBlLmNvbnZlcnRGcm9tPWZ1bmN0aW9uKE8pe3ZhciB6PXRoaXMuaW1vZChP''@;'; + put 'put ''Lm11bCh0aGlzLnJpbnYpKTtyZXR1cm4gei5yZWQ9bnVsbCx6fSxFZS5wcm90b3R5cGUuaW11bD1mdW5jdGlvbihPLHope2lmKE8uaXNaZXJvKCl8fHouaXNaZXJvKCkpcmV0dXJuIE8ud29yZHNbMF09MCxPLmxlbmd0aD0xLE87dmFyIG5lPU8uaW11bCh6KSx0ZT1uZS5tYXNrbih0aGlzLnNo''@;'; + put 'put ''aWZ0KS5tdWwodGhpcy5taW52KS5pbWFza24odGhpcy5zaGlmdCkubXVsKHRoaXMubSkseD1uZS5pc3ViKHRlKS5pdXNocm4odGhpcy5zaGlmdCksUD14O3JldHVybiB4LmNtcCh0aGlzLm0pPj0wP1A9eC5pc3ViKHRoaXMubSk6eC5jbXBuKDApPDAmJihQPXguaWFkZCh0aGlzLm0pKSxQLl9m''@;'; + put 'put ''b3JjZVJlZCh0aGlzKX0sRWUucHJvdG90eXBlLm11bD1mdW5jdGlvbihPLHope2lmKE8uaXNaZXJvKCl8fHouaXNaZXJvKCkpcmV0dXJuIG5ldyBVKDApLl9mb3JjZVJlZCh0aGlzKTt2YXIgbmU9Ty5tdWwoeiksdGU9bmUubWFza24odGhpcy5zaGlmdCkubXVsKHRoaXMubWludikuaW1hc2tu''@;'; + put 'put ''KHRoaXMuc2hpZnQpLm11bCh0aGlzLm0pLHg9bmUuaXN1Yih0ZSkuaXVzaHJuKHRoaXMuc2hpZnQpLFA9eDtyZXR1cm4geC5jbXAodGhpcy5tKT49MD9QPXguaXN1Yih0aGlzLm0pOnguY21wbigwKTwwJiYoUD14LmlhZGQodGhpcy5tKSksUC5fZm9yY2VSZWQodGhpcyl9LEVlLnByb3RvdHlw''@;'; + put 'put ''ZS5pbnZtPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmltb2QoTy5faW52bXAodGhpcy5tKS5tdWwodGhpcy5yMikpLl9mb3JjZVJlZCh0aGlzKX19KFhlPUwubm1kKFhlKSx0aGlzKX0sNTkwNjk6WGU9PnsidXNlIHN0cmljdCI7dmFyIG1lLEplPSJvYmplY3QiPT10eXBlb2YgUmVmbGVjdD9S''@;'; + put 'put ''ZWZsZWN0Om51bGwsTD1KZSYmImZ1bmN0aW9uIj09dHlwZW9mIEplLmFwcGx5P0plLmFwcGx5OmZ1bmN0aW9uKHZlLEFlLGtlKXtyZXR1cm4gRnVuY3Rpb24ucHJvdG90eXBlLmFwcGx5LmNhbGwodmUsQWUsa2UpfTttZT1KZSYmImZ1bmN0aW9uIj09dHlwZW9mIEplLm93bktleXM/SmUub3du''@;'; + put 'put ''S2V5czpPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzP2Z1bmN0aW9uKHZlKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModmUpLmNvbmNhdChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHZlKSl9OmZ1bmN0aW9uKHZlKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3Bl''@;'; + put 'put ''cnR5TmFtZXModmUpfTt2YXIgRT1OdW1iZXIuaXNOYU58fGZ1bmN0aW9uKHZlKXtyZXR1cm4gdmUhPXZlfTtmdW5jdGlvbiBNZSgpe01lLmluaXQuY2FsbCh0aGlzKX1YZS5leHBvcnRzPU1lLFhlLmV4cG9ydHMub25jZT1mdW5jdGlvbiBzZShkZSx2ZSl7cmV0dXJuIG5ldyBQcm9taXNlKGZ1''@;'; + put 'put ''bmN0aW9uKEFlLGtlKXtmdW5jdGlvbiBTZShUZSl7ZGUucmVtb3ZlTGlzdGVuZXIodmUsSWUpLGtlKFRlKX1mdW5jdGlvbiBJZSgpeyJmdW5jdGlvbiI9PXR5cGVvZiBkZS5yZW1vdmVMaXN0ZW5lciYmZGUucmVtb3ZlTGlzdGVuZXIoImVycm9yIixTZSksQWUoW10uc2xpY2UuY2FsbChhcmd1''@;'; + put 'put ''bWVudHMpKX1jZShkZSx2ZSxJZSx7b25jZTohMH0pLCJlcnJvciIhPT12ZSYmZnVuY3Rpb24gb2UoZGUsdmUsQWUpeyJmdW5jdGlvbiI9PXR5cGVvZiBkZS5vbiYmY2UoZGUsImVycm9yIix2ZSxBZSl9KGRlLFNlLHtvbmNlOiEwfSl9KX0sTWUuRXZlbnRFbWl0dGVyPU1lLE1lLnByb3RvdHlw''@;'; + put 'put ''ZS5fZXZlbnRzPXZvaWQgMCxNZS5wcm90b3R5cGUuX2V2ZW50c0NvdW50PTAsTWUucHJvdG90eXBlLl9tYXhMaXN0ZW5lcnM9dm9pZCAwO3ZhciBVPTEwO2Z1bmN0aW9uIFEoZGUpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBkZSl0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgImxpc3RlbmVyIiBh''@;'; + put 'put ''cmd1bWVudCBtdXN0IGJlIG9mIHR5cGUgRnVuY3Rpb24uIFJlY2VpdmVkIHR5cGUgJyt0eXBlb2YgZGUpfWZ1bmN0aW9uIFooZGUpe3JldHVybiB2b2lkIDA9PT1kZS5fbWF4TGlzdGVuZXJzP01lLmRlZmF1bHRNYXhMaXN0ZW5lcnM6ZGUuX21heExpc3RlbmVyc31mdW5jdGlvbiBpZShkZSx2''@;'; + put 'put ''ZSxBZSxrZSl7dmFyIFNlLEllLFRlO2lmKFEoQWUpLHZvaWQgMD09PShJZT1kZS5fZXZlbnRzKT8oSWU9ZGUuX2V2ZW50cz1PYmplY3QuY3JlYXRlKG51bGwpLGRlLl9ldmVudHNDb3VudD0wKToodm9pZCAwIT09SWUubmV3TGlzdGVuZXImJihkZS5lbWl0KCJuZXdMaXN0ZW5lciIsdmUsQWUu''@;'; + put 'put ''bGlzdGVuZXI/QWUubGlzdGVuZXI6QWUpLEllPWRlLl9ldmVudHMpLFRlPUllW3ZlXSksdm9pZCAwPT09VGUpVGU9SWVbdmVdPUFlLCsrZGUuX2V2ZW50c0NvdW50O2Vsc2UgaWYoImZ1bmN0aW9uIj09dHlwZW9mIFRlP1RlPUllW3ZlXT1rZT9bQWUsVGVdOltUZSxBZV06a2U/VGUudW5zaGlm''@;'; + put 'put ''dChBZSk6VGUucHVzaChBZSksKFNlPVooZGUpKT4wJiZUZS5sZW5ndGg+U2UmJiFUZS53YXJuZWQpe1RlLndhcm5lZD0hMDt2YXIgRWU9bmV3IEVycm9yKCJQb3NzaWJsZSBFdmVudEVtaXR0ZXIgbWVtb3J5IGxlYWsgZGV0ZWN0ZWQuICIrVGUubGVuZ3RoKyIgIitTdHJpbmcodmUpKyIgbGlz''@;'; + put 'put ''dGVuZXJzIGFkZGVkLiBVc2UgZW1pdHRlci5zZXRNYXhMaXN0ZW5lcnMoKSB0byBpbmNyZWFzZSBsaW1pdCIpO0VlLm5hbWU9Ik1heExpc3RlbmVyc0V4Y2VlZGVkV2FybmluZyIsRWUuZW1pdHRlcj1kZSxFZS50eXBlPXZlLEVlLmNvdW50PVRlLmxlbmd0aCxmdW5jdGlvbiBCKGRlKXtjb25z''@;'; + put 'put ''b2xlJiZjb25zb2xlLndhcm4mJmNvbnNvbGUud2FybihkZSl9KEVlKX1yZXR1cm4gZGV9ZnVuY3Rpb24gYWUoKXtpZighdGhpcy5maXJlZClyZXR1cm4gdGhpcy50YXJnZXQucmVtb3ZlTGlzdGVuZXIodGhpcy50eXBlLHRoaXMud3JhcEZuKSx0aGlzLmZpcmVkPSEwLDA9PT1hcmd1bWVudHMu''@;'; + put 'put ''bGVuZ3RoP3RoaXMubGlzdGVuZXIuY2FsbCh0aGlzLnRhcmdldCk6dGhpcy5saXN0ZW5lci5hcHBseSh0aGlzLnRhcmdldCxhcmd1bWVudHMpfWZ1bmN0aW9uIFkoZGUsdmUsQWUpe3ZhciBrZT17ZmlyZWQ6ITEsd3JhcEZuOnZvaWQgMCx0YXJnZXQ6ZGUsdHlwZTp2ZSxsaXN0ZW5lcjpBZX0s''@;'; + put 'put ''U2U9YWUuYmluZChrZSk7cmV0dXJuIFNlLmxpc3RlbmVyPUFlLGtlLndyYXBGbj1TZSxTZX1mdW5jdGlvbiBXKGRlLHZlLEFlKXt2YXIga2U9ZGUuX2V2ZW50cztpZih2b2lkIDA9PT1rZSlyZXR1cm5bXTt2YXIgU2U9a2VbdmVdO3JldHVybiB2b2lkIDA9PT1TZT9bXToiZnVuY3Rpb24iPT10''@;'; + put 'put ''eXBlb2YgU2U/QWU/W1NlLmxpc3RlbmVyfHxTZV06W1NlXTpBZT9mdW5jdGlvbiBKKGRlKXtmb3IodmFyIHZlPW5ldyBBcnJheShkZS5sZW5ndGgpLEFlPTA7QWU8dmUubGVuZ3RoOysrQWUpdmVbQWVdPWRlW0FlXS5saXN0ZW5lcnx8ZGVbQWVdO3JldHVybiB2ZX0oU2UpOmVlKFNlLFNlLmxl''@;'; + put 'put ''bmd0aCl9ZnVuY3Rpb24gTihkZSl7dmFyIHZlPXRoaXMuX2V2ZW50cztpZih2b2lkIDAhPT12ZSl7dmFyIEFlPXZlW2RlXTtpZigiZnVuY3Rpb24iPT10eXBlb2YgQWUpcmV0dXJuIDE7aWYodm9pZCAwIT09QWUpcmV0dXJuIEFlLmxlbmd0aH1yZXR1cm4gMH1mdW5jdGlvbiBlZShkZSx2ZSl7''@;'; + put 'put ''Zm9yKHZhciBBZT1uZXcgQXJyYXkodmUpLGtlPTA7a2U8dmU7KytrZSlBZVtrZV09ZGVba2VdO3JldHVybiBBZX1mdW5jdGlvbiBjZShkZSx2ZSxBZSxrZSl7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGRlLm9uKWtlLm9uY2U/ZGUub25jZSh2ZSxBZSk6ZGUub24odmUsQWUpO2Vsc2V7aWYoImZ1''@;'; + put 'put ''bmN0aW9uIiE9dHlwZW9mIGRlLmFkZEV2ZW50TGlzdGVuZXIpdGhyb3cgbmV3IFR5cGVFcnJvcignVGhlICJlbWl0dGVyIiBhcmd1bWVudCBtdXN0IGJlIG9mIHR5cGUgRXZlbnRFbWl0dGVyLiBSZWNlaXZlZCB0eXBlICcrdHlwZW9mIGRlKTtkZS5hZGRFdmVudExpc3RlbmVyKHZlLGZ1bmN0''@;'; + put 'put ''aW9uIFNlKEllKXtrZS5vbmNlJiZkZS5yZW1vdmVFdmVudExpc3RlbmVyKHZlLFNlKSxBZShJZSl9KX19T2JqZWN0LmRlZmluZVByb3BlcnR5KE1lLCJkZWZhdWx0TWF4TGlzdGVuZXJzIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gVX0sc2V0OmZ1bmN0aW9uKGRlKXtp''@;'; + put 'put ''ZigibnVtYmVyIiE9dHlwZW9mIGRlfHxkZTwwfHxFKGRlKSl0aHJvdyBuZXcgUmFuZ2VFcnJvcignVGhlIHZhbHVlIG9mICJkZWZhdWx0TWF4TGlzdGVuZXJzIiBpcyBvdXQgb2YgcmFuZ2UuIEl0IG11c3QgYmUgYSBub24tbmVnYXRpdmUgbnVtYmVyLiBSZWNlaXZlZCAnK2RlKyIuIik7VT1k''@;'; + put 'put ''ZX19KSxNZS5pbml0PWZ1bmN0aW9uKCl7KHZvaWQgMD09PXRoaXMuX2V2ZW50c3x8dGhpcy5fZXZlbnRzPT09T2JqZWN0LmdldFByb3RvdHlwZU9mKHRoaXMpLl9ldmVudHMpJiYodGhpcy5fZXZlbnRzPU9iamVjdC5jcmVhdGUobnVsbCksdGhpcy5fZXZlbnRzQ291bnQ9MCksdGhpcy5fbWF4''@;'; + put 'put ''TGlzdGVuZXJzPXRoaXMuX21heExpc3RlbmVyc3x8dm9pZCAwfSxNZS5wcm90b3R5cGUuc2V0TWF4TGlzdGVuZXJzPWZ1bmN0aW9uKHZlKXtpZigibnVtYmVyIiE9dHlwZW9mIHZlfHx2ZTwwfHxFKHZlKSl0aHJvdyBuZXcgUmFuZ2VFcnJvcignVGhlIHZhbHVlIG9mICJuIiBpcyBvdXQgb2Yg''@;'; + put 'put ''cmFuZ2UuIEl0IG11c3QgYmUgYSBub24tbmVnYXRpdmUgbnVtYmVyLiBSZWNlaXZlZCAnK3ZlKyIuIik7cmV0dXJuIHRoaXMuX21heExpc3RlbmVycz12ZSx0aGlzfSxNZS5wcm90b3R5cGUuZ2V0TWF4TGlzdGVuZXJzPWZ1bmN0aW9uKCl7cmV0dXJuIFoodGhpcyl9LE1lLnByb3RvdHlwZS5l''@;'; + put 'put ''bWl0PWZ1bmN0aW9uKHZlKXtmb3IodmFyIEFlPVtdLGtlPTE7a2U8YXJndW1lbnRzLmxlbmd0aDtrZSsrKUFlLnB1c2goYXJndW1lbnRzW2tlXSk7dmFyIFNlPSJlcnJvciI9PT12ZSxJZT10aGlzLl9ldmVudHM7aWYodm9pZCAwIT09SWUpU2U9U2UmJnZvaWQgMD09PUllLmVycm9yO2Vsc2Ug''@;'; + put 'put ''aWYoIVNlKXJldHVybiExO2lmKFNlKXt2YXIgVGU7aWYoQWUubGVuZ3RoPjAmJihUZT1BZVswXSksVGUgaW5zdGFuY2VvZiBFcnJvcil0aHJvdyBUZTt2YXIgRWU9bmV3IEVycm9yKCJVbmhhbmRsZWQgZXJyb3IuIisoVGU/IiAoIitUZS5tZXNzYWdlKyIpIjoiIikpO3Rocm93IEVlLmNvbnRl''@;'; + put 'put ''eHQ9VGUsRWV9dmFyIGhlPUllW3ZlXTtpZih2b2lkIDA9PT1oZSlyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT10eXBlb2YgaGUpTChoZSx0aGlzLEFlKTtlbHNle3ZhciBPPWhlLmxlbmd0aCx6PWVlKGhlLE8pO2ZvcihrZT0wO2tlPE87KytrZSlMKHpba2VdLHRoaXMsQWUpfXJldHVybiEwfSxN''@;'; + put 'put ''ZS5wcm90b3R5cGUub249TWUucHJvdG90eXBlLmFkZExpc3RlbmVyPWZ1bmN0aW9uKHZlLEFlKXtyZXR1cm4gaWUodGhpcyx2ZSxBZSwhMSl9LE1lLnByb3RvdHlwZS5wcmVwZW5kTGlzdGVuZXI9ZnVuY3Rpb24odmUsQWUpe3JldHVybiBpZSh0aGlzLHZlLEFlLCEwKX0sTWUucHJvdG90eXBl''@;'; + put 'put ''Lm9uY2U9ZnVuY3Rpb24odmUsQWUpe3JldHVybiBRKEFlKSx0aGlzLm9uKHZlLFkodGhpcyx2ZSxBZSkpLHRoaXN9LE1lLnByb3RvdHlwZS5wcmVwZW5kT25jZUxpc3RlbmVyPWZ1bmN0aW9uKHZlLEFlKXtyZXR1cm4gUShBZSksdGhpcy5wcmVwZW5kTGlzdGVuZXIodmUsWSh0aGlzLHZlLEFl''@;'; + put 'put ''KSksdGhpc30sTWUucHJvdG90eXBlLm9mZj1NZS5wcm90b3R5cGUucmVtb3ZlTGlzdGVuZXI9ZnVuY3Rpb24odmUsQWUpe3ZhciBrZSxTZSxJZSxUZSxFZTtpZihRKEFlKSx2b2lkIDA9PT0oU2U9dGhpcy5fZXZlbnRzKSlyZXR1cm4gdGhpcztpZih2b2lkIDA9PT0oa2U9U2VbdmVdKSlyZXR1''@;'; + put 'put ''cm4gdGhpcztpZihrZT09PUFlfHxrZS5saXN0ZW5lcj09PUFlKTA9PS0tdGhpcy5fZXZlbnRzQ291bnQ/dGhpcy5fZXZlbnRzPU9iamVjdC5jcmVhdGUobnVsbCk6KGRlbGV0ZSBTZVt2ZV0sU2UucmVtb3ZlTGlzdGVuZXImJnRoaXMuZW1pdCgicmVtb3ZlTGlzdGVuZXIiLHZlLGtlLmxpc3Rl''@;'; + put 'put ''bmVyfHxBZSkpO2Vsc2UgaWYoImZ1bmN0aW9uIiE9dHlwZW9mIGtlKXtmb3IoSWU9LTEsVGU9a2UubGVuZ3RoLTE7VGU+PTA7VGUtLSlpZihrZVtUZV09PT1BZXx8a2VbVGVdLmxpc3RlbmVyPT09QWUpe0VlPWtlW1RlXS5saXN0ZW5lcixJZT1UZTticmVha31pZihJZTwwKXJldHVybiB0aGlz''@;'; + put 'put ''OzA9PT1JZT9rZS5zaGlmdCgpOmZ1bmN0aW9uIHEoZGUsdmUpe2Zvcig7dmUrMTxkZS5sZW5ndGg7dmUrKylkZVt2ZV09ZGVbdmUrMV07ZGUucG9wKCl9KGtlLEllKSwxPT09a2UubGVuZ3RoJiYoU2VbdmVdPWtlWzBdKSx2b2lkIDAhPT1TZS5yZW1vdmVMaXN0ZW5lciYmdGhpcy5lbWl0KCJy''@;'; + put 'put ''ZW1vdmVMaXN0ZW5lciIsdmUsRWV8fEFlKX1yZXR1cm4gdGhpc30sTWUucHJvdG90eXBlLnJlbW92ZUFsbExpc3RlbmVycz1mdW5jdGlvbih2ZSl7dmFyIEFlLGtlLFNlO2lmKHZvaWQgMD09PShrZT10aGlzLl9ldmVudHMpKXJldHVybiB0aGlzO2lmKHZvaWQgMD09PWtlLnJlbW92ZUxpc3Rl''@;'; + put 'put ''bmVyKXJldHVybiAwPT09YXJndW1lbnRzLmxlbmd0aD8odGhpcy5fZXZlbnRzPU9iamVjdC5jcmVhdGUobnVsbCksdGhpcy5fZXZlbnRzQ291bnQ9MCk6dm9pZCAwIT09a2VbdmVdJiYoMD09LS10aGlzLl9ldmVudHNDb3VudD90aGlzLl9ldmVudHM9T2JqZWN0LmNyZWF0ZShudWxsKTpkZWxl''@;'; + put 'put ''dGUga2VbdmVdKSx0aGlzO2lmKDA9PT1hcmd1bWVudHMubGVuZ3RoKXt2YXIgVGUsSWU9T2JqZWN0LmtleXMoa2UpO2ZvcihTZT0wO1NlPEllLmxlbmd0aDsrK1NlKSJyZW1vdmVMaXN0ZW5lciIhPT0oVGU9SWVbU2VdKSYmdGhpcy5yZW1vdmVBbGxMaXN0ZW5lcnMoVGUpO3JldHVybiB0aGlz''@;'; + put 'put ''LnJlbW92ZUFsbExpc3RlbmVycygicmVtb3ZlTGlzdGVuZXIiKSx0aGlzLl9ldmVudHM9T2JqZWN0LmNyZWF0ZShudWxsKSx0aGlzLl9ldmVudHNDb3VudD0wLHRoaXN9aWYoImZ1bmN0aW9uIj09dHlwZW9mKEFlPWtlW3ZlXSkpdGhpcy5yZW1vdmVMaXN0ZW5lcih2ZSxBZSk7ZWxzZSBpZih2''@;'; + put 'put ''b2lkIDAhPT1BZSlmb3IoU2U9QWUubGVuZ3RoLTE7U2U+PTA7U2UtLSl0aGlzLnJlbW92ZUxpc3RlbmVyKHZlLEFlW1NlXSk7cmV0dXJuIHRoaXN9LE1lLnByb3RvdHlwZS5saXN0ZW5lcnM9ZnVuY3Rpb24odmUpe3JldHVybiBXKHRoaXMsdmUsITApfSxNZS5wcm90b3R5cGUucmF3TGlzdGVu''@;'; + put 'put ''ZXJzPWZ1bmN0aW9uKHZlKXtyZXR1cm4gVyh0aGlzLHZlLCExKX0sTWUubGlzdGVuZXJDb3VudD1mdW5jdGlvbihkZSx2ZSl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIGRlLmxpc3RlbmVyQ291bnQ/ZGUubGlzdGVuZXJDb3VudCh2ZSk6Ti5jYWxsKGRlLHZlKX0sTWUucHJvdG90eXBlLmxp''@;'; + put 'put ''c3RlbmVyQ291bnQ9TixNZS5wcm90b3R5cGUuZXZlbnROYW1lcz1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9ldmVudHNDb3VudD4wP21lKHRoaXMuX2V2ZW50cyk6W119fSw0MDM0NzooWGUsSmUsTCk9Pnt2YXIgbWU9TCg3MzUwMikuQnVmZmVyLEI9TCg4MDk1KTtYZS5leHBvcnRzPWZ1bmN0''@;'; + put 'put ''aW9uIEUoTWUsVSxRLFope2lmKG1lLmlzQnVmZmVyKE1lKXx8KE1lPW1lLmZyb20oTWUsImJpbmFyeSIpKSxVJiYobWUuaXNCdWZmZXIoVSl8fChVPW1lLmZyb20oVSwiYmluYXJ5IikpLDghPT1VLmxlbmd0aCkpdGhyb3cgbmV3IFJhbmdlRXJyb3IoInNhbHQgc2hvdWxkIGJlIEJ1ZmZlciB3''@;'; + put 'put ''aXRoIDggYnl0ZSBsZW5ndGgiKTtmb3IodmFyIGllPVEvOCxhZT1tZS5hbGxvYyhpZSksWT1tZS5hbGxvYyhafHwwKSxXPW1lLmFsbG9jKDApO2llPjB8fFo+MDspe3ZhciBOPW5ldyBCO04udXBkYXRlKFcpLE4udXBkYXRlKE1lKSxVJiZOLnVwZGF0ZShVKSxXPU4uZGlnZXN0KCk7dmFyIGVl''@;'; + put 'put ''PTA7aWYoaWU+MCl7dmFyIHE9YWUubGVuZ3RoLWllO2VlPU1hdGgubWluKGllLFcubGVuZ3RoKSxXLmNvcHkoYWUscSwwLGVlKSxpZS09ZWV9aWYoZWU8Vy5sZW5ndGgmJlo+MCl7dmFyIEo9WS5sZW5ndGgtWixzZT1NYXRoLm1pbihaLFcubGVuZ3RoLWVlKTtXLmNvcHkoWSxKLGVlLGVlK3Nl''@;'; + put 'put ''KSxaLT1zZX19cmV0dXJuIFcuZmlsbCgwKSx7a2V5OmFlLGl2Oll9fX0sMjQ3MTU6WGU9PntYZS5leHBvcnRzPWZ1bmN0aW9uIEplKEwsbWUsQil7ZnVuY3Rpb24gRShRLFope2lmKCFtZVtRXSl7aWYoIUxbUV0pe2lmKE1lKXJldHVybiBNZShRLCEwKTt2YXIgYWU9bmV3IEVycm9yKCJDYW5u''@;'; + put 'put ''b3QgZmluZCBtb2R1bGUgJyIrUSsiJyIpO3Rocm93IGFlLmNvZGU9Ik1PRFVMRV9OT1RfRk9VTkQiLGFlfXZhciBZPW1lW1FdPXtleHBvcnRzOnt9fTtMW1FdWzBdLmNhbGwoWS5leHBvcnRzLGZ1bmN0aW9uKFcpe3JldHVybiBFKExbUV1bMV1bV118fFcpfSxZLFkuZXhwb3J0cyxKZSxMLG1l''@;'; + put 'put ''LEIpfXJldHVybiBtZVtRXS5leHBvcnRzfWZvcih2YXIgTWU9dm9pZCAwLFU9MDtVPEIubGVuZ3RoO1UrKylFKEJbVV0pO3JldHVybiBFfSh7MTpbZnVuY3Rpb24oSmUsTCxtZSl7IWZ1bmN0aW9uKEIpeyJ1c2Ugc3RyaWN0Ijt2YXIgRSxNZT0vXi0/KD86XGQrKD86XC5cZCopP3xcLlxkKyko''@;'; + put 'put ''PzplWystXT9cZCspPyQvaSxVPU1hdGguY2VpbCxRPU1hdGguZmxvb3IsWj0iW0JpZ051bWJlciBFcnJvcl0gIixpZT1aKyJOdW1iZXIgcHJpbWl0aXZlIGhhcyBtb3JlIHRoYW4gMTUgc2lnbmlmaWNhbnQgZGlnaXRzOiAiLGFlPTFlMTQsWT0xNCxXPTkwMDcxOTkyNTQ3NDA5OTEsTj1bMSwx''@;'; + put 'put ''MCwxMDAsMWUzLDFlNCwxZTUsMWU2LDFlNywxZTgsMWU5LDFlMTAsMWUxMSwxZTEyLDFlMTNdLGVlPTFlNyxxPTFlOTtmdW5jdGlvbiBKKGtlKXt2YXIgU2U9MHxrZTtyZXR1cm4gMDxrZXx8a2U9PT1TZT9TZTpTZS0xfWZ1bmN0aW9uIHNlKGtlKXtmb3IodmFyIFNlLEllLFRlPTEsRWU9a2Uu''@;'; + put 'put ''bGVuZ3RoLGhlPWtlWzBdKyIiO1RlPEVlOyl7Zm9yKFNlPWtlW1RlKytdKyIiLEllPVktU2UubGVuZ3RoO0llLS07U2U9IjAiK1NlKTtoZSs9U2V9Zm9yKEVlPWhlLmxlbmd0aDs0OD09PWhlLmNoYXJDb2RlQXQoLS1FZSk7KTtyZXR1cm4gaGUuc2xpY2UoMCxFZSsxfHwxKX1mdW5jdGlvbiBv''@;'; + put 'put ''ZShrZSxTZSl7dmFyIEllLFRlLEVlPWtlLmMsaGU9U2UuYyxPPWtlLnMsej1TZS5zLG5lPWtlLmUsdGU9U2UuZTtpZighT3x8IXopcmV0dXJuIG51bGw7aWYoVGU9aGUmJiFoZVswXSwoSWU9RWUmJiFFZVswXSl8fFRlKXJldHVybiBJZT9UZT8wOi16Ok87aWYoTyE9eilyZXR1cm4gTztpZihJ''@;'; + put 'put ''ZT1PPDAsVGU9bmU9PXRlLCFFZXx8IWhlKXJldHVybiBUZT8wOiFFZV5JZT8xOi0xO2lmKCFUZSlyZXR1cm4gdGU8bmVeSWU/MTotMTtmb3Ioej0obmU9RWUubGVuZ3RoKTwodGU9aGUubGVuZ3RoKT9uZTp0ZSxPPTA7Tzx6O08rKylpZihFZVtPXSE9aGVbT10pcmV0dXJuIEVlW09dPmhlW09d''@;'; + put 'put ''XkllPzE6LTE7cmV0dXJuIG5lPT10ZT8wOnRlPG5lXkllPzE6LTF9ZnVuY3Rpb24gY2Uoa2UsU2UsSWUsVGUpe2lmKGtlPFNlfHxJZTxrZXx8a2UhPT0oa2U8MD9VKGtlKTpRKGtlKSkpdGhyb3cgRXJyb3IoWisoVGV8fCJBcmd1bWVudCIpKygibnVtYmVyIj09dHlwZW9mIGtlP2tlPFNlfHxJ''@;'; + put 'put ''ZTxrZT8iIG91dCBvZiByYW5nZTogIjoiIG5vdCBhbiBpbnRlZ2VyOiAiOiIgbm90IGEgcHJpbWl0aXZlIG51bWJlcjogIikrU3RyaW5nKGtlKSl9ZnVuY3Rpb24gZGUoa2Upe3ZhciBTZT1rZS5jLmxlbmd0aC0xO3JldHVybiBKKGtlLmUvWSk9PVNlJiZrZS5jW1NlXSUyIT0wfWZ1bmN0aW9u''@;'; + put 'put ''IHZlKGtlLFNlKXtyZXR1cm4oMTxrZS5sZW5ndGg/a2UuY2hhckF0KDApKyIuIitrZS5zbGljZSgxKTprZSkrKFNlPDA/ImUiOiJlKyIpK1NlfWZ1bmN0aW9uIEFlKGtlLFNlLEllKXt2YXIgVGUsRWU7aWYoU2U8MCl7Zm9yKEVlPUllKyIuIjsrK1NlO0VlKz1JZSk7a2U9RWUra2V9ZWxzZSBp''@;'; + put 'put ''ZigrK1NlPihUZT1rZS5sZW5ndGgpKXtmb3IoRWU9SWUsU2UtPVRlOy0tU2U7RWUrPUllKTtrZSs9RWV9ZWxzZSBTZTxUZSYmKGtlPWtlLnNsaWNlKDAsU2UpKyIuIitrZS5zbGljZShTZSkpO3JldHVybiBrZX0oRT1mdW5jdGlvbiBrZShTZSl7dmFyIEllLFRlLEVlLGhlLE8seixuZSx0ZSx4''@;'; + put 'put ''LFAsVj12dC5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOnZ0LHRvU3RyaW5nOm51bGwsdmFsdWVPZjpudWxsfSxUPW5ldyB2dCgxKSxTPTIwLEY9NCx5ZT0tNyxDZT0yMSxEZT0tMWU3LFBlPTFlNyxRZT0hMSwkZT0xLGd0PTAsd3Q9e3ByZWZpeDoiIixncm91cFNpemU6MyxzZWNvbmRhcnlHcm91''@;'; + put 'put ''cFNpemU6MCxncm91cFNlcGFyYXRvcjoiLCIsZGVjaW1hbFNlcGFyYXRvcjoiLiIsZnJhY3Rpb25Hcm91cFNpemU6MCxmcmFjdGlvbkdyb3VwU2VwYXJhdG9yOiJceGEwIixzdWZmaXg6IiJ9LG10PSIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2Z1bmN0aW9uIHZ0KHR0''@;'; + put 'put ''LGV0KXt2YXIgYXQsTHQsQ3QsZnQsSHQsR2UsVWUseXQsanQ9dGhpcztpZighKGp0IGluc3RhbmNlb2YgdnQpKXJldHVybiBuZXcgdnQodHQsZXQpO2lmKG51bGw9PWV0KXtpZih0dCBpbnN0YW5jZW9mIHZ0KXJldHVybiBqdC5zPXR0LnMsanQuZT10dC5lLHZvaWQoanQuYz0odHQ9dHQuYyk/''@;'; + put 'put ''dHQuc2xpY2UoKTp0dCk7aWYoKEdlPSJudW1iZXIiPT10eXBlb2YgdHQpJiYwKnR0PT0wKXtpZihqdC5zPTEvdHQ8MD8odHQ9LXR0LC0xKToxLHR0PT09fn50dCl7Zm9yKGZ0PTAsSHQ9dHQ7MTA8PUh0O0h0Lz0xMCxmdCsrKTtyZXR1cm4ganQuZT1mdCx2b2lkKGp0LmM9W3R0XSl9eXQ9U3Ry''@;'; + put 'put ''aW5nKHR0KX1lbHNle2lmKHl0PVN0cmluZyh0dCksIU1lLnRlc3QoeXQpKXJldHVybiBFZShqdCx5dCxHZSk7anQucz00NT09eXQuY2hhckNvZGVBdCgwKT8oeXQ9eXQuc2xpY2UoMSksLTEpOjF9LTE8KGZ0PXl0LmluZGV4T2YoIi4iKSkmJih5dD15dC5yZXBsYWNlKCIuIiwiIikpLDA8KEh0''@;'; + put 'put ''PXl0LnNlYXJjaCgvZS9pKSk/KGZ0PDAmJihmdD1IdCksZnQrPSt5dC5zbGljZShIdCsxKSx5dD15dC5zdWJzdHJpbmcoMCxIdCkpOmZ0PDAmJihmdD15dC5sZW5ndGgpfWVsc2V7aWYoY2UoZXQsMixtdC5sZW5ndGgsIkJhc2UiKSx5dD1TdHJpbmcodHQpLDEwPT1ldClyZXR1cm4gb24oanQ9''@;'; + put 'put ''bmV3IHZ0KHR0IGluc3RhbmNlb2YgdnQ/dHQ6eXQpLFMranQuZSsxLEYpO2lmKEdlPSJudW1iZXIiPT10eXBlb2YgdHQpe2lmKDAqdHQhPTApcmV0dXJuIEVlKGp0LHl0LEdlLGV0KTtpZihqdC5zPTEvdHQ8MD8oeXQ9eXQuc2xpY2UoMSksLTEpOjEsdnQuREVCVUcmJjE1PHl0LnJlcGxhY2Uo''@;'; + put 'put ''L14wXC4wKnxcLi8sIiIpLmxlbmd0aCl0aHJvdyBFcnJvcihpZSt0dCk7R2U9ITF9ZWxzZSBqdC5zPTQ1PT09eXQuY2hhckNvZGVBdCgwKT8oeXQ9eXQuc2xpY2UoMSksLTEpOjE7Zm9yKGF0PW10LnNsaWNlKDAsZXQpLGZ0PUh0PTAsVWU9eXQubGVuZ3RoO0h0PFVlO0h0KyspaWYoYXQuaW5k''@;'; + put 'put ''ZXhPZihMdD15dC5jaGFyQXQoSHQpKTwwKXtpZigiLiI9PUx0KXtpZihmdDxIdCl7ZnQ9VWU7Y29udGludWV9fWVsc2UgaWYoIUN0JiYoeXQ9PXl0LnRvVXBwZXJDYXNlKCkmJih5dD15dC50b0xvd2VyQ2FzZSgpKXx8eXQ9PXl0LnRvTG93ZXJDYXNlKCkmJih5dD15dC50b1VwcGVyQ2FzZSgp''@;'; + put 'put ''KSkpe0N0PSEwLEh0PS0xLGZ0PTA7Y29udGludWV9cmV0dXJuIEVlKGp0LFN0cmluZyh0dCksR2UsZXQpfS0xPChmdD0oeXQ9VGUoeXQsZXQsMTAsanQucykpLmluZGV4T2YoIi4iKSk/eXQ9eXQucmVwbGFjZSgiLiIsIiIpOmZ0PXl0Lmxlbmd0aH1mb3IoSHQ9MDs0OD09PXl0LmNoYXJDb2Rl''@;'; + put 'put ''QXQoSHQpO0h0KyspO2ZvcihVZT15dC5sZW5ndGg7NDg9PT15dC5jaGFyQ29kZUF0KC0tVWUpOyk7aWYoeXQ9eXQuc2xpY2UoSHQsKytVZSkpe2lmKFVlLT1IdCxHZSYmdnQuREVCVUcmJjE1PFVlJiYoVzx0dHx8dHQhPT1RKHR0KSkpdGhyb3cgRXJyb3IoaWUranQucyp0dCk7aWYoUGU8KGZ0''@;'; + put 'put ''PWZ0LUh0LTEpKWp0LmM9anQuZT1udWxsO2Vsc2UgaWYoZnQ8RGUpanQuYz1banQuZT0wXTtlbHNle2lmKGp0LmU9ZnQsanQuYz1bXSxIdD0oZnQrMSklWSxmdDwwJiYoSHQrPVkpLEh0PFVlKXtmb3IoSHQmJmp0LmMucHVzaCgreXQuc2xpY2UoMCxIdCkpLFVlLT1ZO0h0PFVlOylqdC5jLnB1''@;'; + put 'put ''c2goK3l0LnNsaWNlKEh0LEh0Kz1ZKSk7eXQ9eXQuc2xpY2UoSHQpLEh0PVkteXQubGVuZ3RofWVsc2UgSHQtPVVlO2Zvcig7SHQtLTt5dCs9IjAiKTtqdC5jLnB1c2goK3l0KX19ZWxzZSBqdC5jPVtqdC5lPTBdfWZ1bmN0aW9uIEF0KHR0LGV0LGF0LEx0KXt2YXIgQ3QsZnQsSHQsR2UsVWU7''@;'; + put 'put ''aWYobnVsbD09YXQ/YXQ9RjpjZShhdCwwLDgpLCF0dC5jKXJldHVybiB0dC50b1N0cmluZygpO2lmKEN0PXR0LmNbMF0sSHQ9dHQuZSxudWxsPT1ldClVZT1zZSh0dC5jKSxVZT0xPT1MdHx8Mj09THQmJihIdDw9eWV8fENlPD1IdCk/dmUoVWUsSHQpOkFlKFVlLEh0LCIwIik7ZWxzZSBpZihm''@;'; + put 'put ''dD0odHQ9b24obmV3IHZ0KHR0KSxldCxhdCkpLmUsR2U9KFVlPXNlKHR0LmMpKS5sZW5ndGgsMT09THR8fDI9PUx0JiYoZXQ8PWZ0fHxmdDw9eWUpKXtmb3IoO0dlPGV0O1VlKz0iMCIsR2UrKyk7VWU9dmUoVWUsZnQpfWVsc2UgaWYoZXQtPUh0LFVlPUFlKFVlLGZ0LCIwIiksR2U8ZnQrMSl7''@;'; + put 'put ''aWYoMDwtLWV0KWZvcihVZSs9Ii4iO2V0LS07VWUrPSIwIik7fWVsc2UgaWYoMDwoZXQrPWZ0LUdlKSlmb3IoZnQrMT09R2UmJihVZSs9Ii4iKTtldC0tO1VlKz0iMCIpO3JldHVybiB0dC5zPDAmJkN0PyItIitVZTpVZX1mdW5jdGlvbiBodCh0dCxldCl7Zm9yKHZhciBhdCxMdD0xLEN0PW5l''@;'; + put 'put ''dyB2dCh0dFswXSk7THQ8dHQubGVuZ3RoO0x0Kyspe2lmKCEoYXQ9bmV3IHZ0KHR0W0x0XSkpLnMpe0N0PWF0O2JyZWFrfWV0LmNhbGwoQ3QsYXQpJiYoQ3Q9YXQpfXJldHVybiBDdH1mdW5jdGlvbiBCdCh0dCxldCxhdCl7Zm9yKHZhciBMdD0xLEN0PWV0Lmxlbmd0aDshZXRbLS1DdF07ZXQu''@;'; + put 'put ''cG9wKCkpO2ZvcihDdD1ldFswXTsxMDw9Q3Q7Q3QvPTEwLEx0KyspO3JldHVybiB0dC5jPShhdD1MdCthdCpZLTEpPlBlP3R0LmU9bnVsbDphdDxEZT9bdHQuZT0wXToodHQuZT1hdCxldCksdHR9ZnVuY3Rpb24gb24odHQsZXQsYXQsTHQpe3ZhciBDdCxmdCxIdCxHZSxVZSx5dCxqdCxRdD10''@;'; + put 'put ''dC5jLGduPU47aWYoUXQpe2U6e2ZvcihDdD0xLEdlPVF0WzBdOzEwPD1HZTtHZS89MTAsQ3QrKyk7aWYoKGZ0PWV0LUN0KTwwKWZ0Kz1ZLGp0PShVZT1RdFt5dD0wXSkvZ25bQ3QtKEh0PWV0KS0xXSUxMHwwO2Vsc2UgaWYoKHl0PVUoKGZ0KzEpL1kpKT49UXQubGVuZ3RoKXtpZighTHQpYnJl''@;'; + put 'put ''YWsgZTtmb3IoO1F0Lmxlbmd0aDw9eXQ7UXQucHVzaCgwKSk7VWU9anQ9MCxIdD0oZnQlPVkpLVkrKEN0PTEpfWVsc2V7Zm9yKFVlPUdlPVF0W3l0XSxDdD0xOzEwPD1HZTtHZS89MTAsQ3QrKyk7anQ9KEh0PShmdCU9WSktWStDdCk8MD8wOlVlL2duW0N0LUh0LTFdJTEwfDB9aWYoTHQ9THR8''@;'; + put 'put ''fGV0PDB8fG51bGwhPVF0W3l0KzFdfHwoSHQ8MD9VZTpVZSVnbltDdC1IdC0xXSksTHQ9YXQ8ND8oanR8fEx0KSYmKDA9PWF0fHxhdD09KHR0LnM8MD8zOjIpKTo1PGp0fHw1PT1qdCYmKDQ9PWF0fHxMdHx8Nj09YXQmJigwPGZ0PzA8SHQ/VWUvZ25bQ3QtSHRdOjA6UXRbeXQtMV0pJTEwJjF8''@;'; + put 'put ''fGF0PT0odHQuczwwPzg6NykpLGV0PDF8fCFRdFswXSlyZXR1cm4gUXQubGVuZ3RoPTAsTHQ/KFF0WzBdPWduWyhZLShldC09dHQuZSsxKSVZKSVZXSx0dC5lPS1ldHx8MCk6UXRbMF09dHQuZT0wLHR0O2lmKDA9PWZ0PyhRdC5sZW5ndGg9eXQsR2U9MSx5dC0tKTooUXQubGVuZ3RoPXl0KzEs''@;'; + put 'put ''R2U9Z25bWS1mdF0sUXRbeXRdPTA8SHQ/UShVZS9nbltDdC1IdF0lZ25bSHRdKSpHZTowKSxMdClmb3IoOzspe2lmKDA9PXl0KXtmb3IoZnQ9MSxIdD1RdFswXTsxMDw9SHQ7SHQvPTEwLGZ0KyspO2ZvcihIdD1RdFswXSs9R2UsR2U9MTsxMDw9SHQ7SHQvPTEwLEdlKyspO2Z0IT1HZSYmKHR0''@;'; + put 'put ''LmUrKyxRdFswXT09YWUmJihRdFswXT0xKSk7YnJlYWt9aWYoUXRbeXRdKz1HZSxRdFt5dF0hPWFlKWJyZWFrO1F0W3l0LS1dPTAsR2U9MX1mb3IoZnQ9UXQubGVuZ3RoOzA9PT1RdFstLWZ0XTtRdC5wb3AoKSk7fXR0LmU+UGU/dHQuYz10dC5lPW51bGw6dHQuZTxEZSYmKHR0LmM9W3R0LmU9''@;'; + put 'put ''MF0pfXJldHVybiB0dH1mdW5jdGlvbiBfdCh0dCl7dmFyIGV0LGF0PXR0LmU7cmV0dXJuIG51bGw9PT1hdD90dC50b1N0cmluZygpOihldD1zZSh0dC5jKSxldD1hdDw9eWV8fENlPD1hdD92ZShldCxhdCk6QWUoZXQsYXQsIjAiKSx0dC5zPDA/Ii0iK2V0OmV0KX1yZXR1cm4gdnQuY2xvbmU9''@;'; + put 'put ''a2UsdnQuUk9VTkRfVVA9MCx2dC5ST1VORF9ET1dOPTEsdnQuUk9VTkRfQ0VJTD0yLHZ0LlJPVU5EX0ZMT09SPTMsdnQuUk9VTkRfSEFMRl9VUD00LHZ0LlJPVU5EX0hBTEZfRE9XTj01LHZ0LlJPVU5EX0hBTEZfRVZFTj02LHZ0LlJPVU5EX0hBTEZfQ0VJTD03LHZ0LlJPVU5EX0hBTEZfRkxP''@;'; + put 'put ''T1I9OCx2dC5FVUNMSUQ9OSx2dC5jb25maWc9dnQuc2V0PWZ1bmN0aW9uKHR0KXt2YXIgZXQsYXQ7aWYobnVsbCE9dHQpe2lmKCJvYmplY3QiIT10eXBlb2YgdHQpdGhyb3cgRXJyb3IoWisiT2JqZWN0IGV4cGVjdGVkOiAiK3R0KTtpZih0dC5oYXNPd25Qcm9wZXJ0eShldD0iREVDSU1BTF9Q''@;'; + put 'put ''TEFDRVMiKSYmKGNlKGF0PXR0W2V0XSwwLHEsZXQpLFM9YXQpLHR0Lmhhc093blByb3BlcnR5KGV0PSJST1VORElOR19NT0RFIikmJihjZShhdD10dFtldF0sMCw4LGV0KSxGPWF0KSx0dC5oYXNPd25Qcm9wZXJ0eShldD0iRVhQT05FTlRJQUxfQVQiKSYmKChhdD10dFtldF0pJiZhdC5wb3A/''@;'; + put 'put ''KGNlKGF0WzBdLC1xLDAsZXQpLGNlKGF0WzFdLDAscSxldCkseWU9YXRbMF0sQ2U9YXRbMV0pOihjZShhdCwtcSxxLGV0KSx5ZT0tKENlPWF0PDA/LWF0OmF0KSkpLHR0Lmhhc093blByb3BlcnR5KGV0PSJSQU5HRSIpKWlmKChhdD10dFtldF0pJiZhdC5wb3ApY2UoYXRbMF0sLXEsLTEsZXQp''@;'; + put 'put ''LGNlKGF0WzFdLDEscSxldCksRGU9YXRbMF0sUGU9YXRbMV07ZWxzZXtpZihjZShhdCwtcSxxLGV0KSwhYXQpdGhyb3cgRXJyb3IoWitldCsiIGNhbm5vdCBiZSB6ZXJvOiAiK2F0KTtEZT0tKFBlPWF0PDA/LWF0OmF0KX1pZih0dC5oYXNPd25Qcm9wZXJ0eShldD0iQ1JZUFRPIikpe2lmKChh''@;'; + put 'put ''dD10dFtldF0pIT09ISFhdCl0aHJvdyBFcnJvcihaK2V0KyIgbm90IHRydWUgb3IgZmFsc2U6ICIrYXQpO2lmKGF0KXtpZigidW5kZWZpbmVkIj09dHlwZW9mIGNyeXB0b3x8IWNyeXB0b3x8IWNyeXB0by5nZXRSYW5kb21WYWx1ZXMmJiFjcnlwdG8ucmFuZG9tQnl0ZXMpdGhyb3cgUWU9IWF0''@;'; + put 'put ''LEVycm9yKForImNyeXB0byB1bmF2YWlsYWJsZSIpO1FlPWF0fWVsc2UgUWU9YXR9aWYodHQuaGFzT3duUHJvcGVydHkoZXQ9Ik1PRFVMT19NT0RFIikmJihjZShhdD10dFtldF0sMCw5LGV0KSwkZT1hdCksdHQuaGFzT3duUHJvcGVydHkoZXQ9IlBPV19QUkVDSVNJT04iKSYmKGNlKGF0PXR0''@;'; + put 'put ''W2V0XSwwLHEsZXQpLGd0PWF0KSx0dC5oYXNPd25Qcm9wZXJ0eShldD0iRk9STUFUIikpe2lmKCJvYmplY3QiIT10eXBlb2YoYXQ9dHRbZXRdKSl0aHJvdyBFcnJvcihaK2V0KyIgbm90IGFuIG9iamVjdDogIithdCk7d3Q9YXR9aWYodHQuaGFzT3duUHJvcGVydHkoZXQ9IkFMUEhBQkVUIikp''@;'; + put 'put ''e2lmKCJzdHJpbmciIT10eXBlb2YoYXQ9dHRbZXRdKXx8L14uJHxbKy0uXHNdfCguKS4qXDEvLnRlc3QoYXQpKXRocm93IEVycm9yKForZXQrIiBpbnZhbGlkOiAiK2F0KTttdD1hdH19cmV0dXJue0RFQ0lNQUxfUExBQ0VTOlMsUk9VTkRJTkdfTU9ERTpGLEVYUE9ORU5USUFMX0FUOlt5ZSxD''@;'; + put 'put ''ZV0sUkFOR0U6W0RlLFBlXSxDUllQVE86UWUsTU9EVUxPX01PREU6JGUsUE9XX1BSRUNJU0lPTjpndCxGT1JNQVQ6d3QsQUxQSEFCRVQ6bXR9fSx2dC5pc0JpZ051bWJlcj1mdW5jdGlvbih0dCl7cmV0dXJuIHR0IGluc3RhbmNlb2YgdnR8fHR0JiYhMD09PXR0Ll9pc0JpZ051bWJlcnx8ITF9''@;'; + put 'put ''LHZ0Lm1heGltdW09dnQubWF4PWZ1bmN0aW9uKCl7cmV0dXJuIGh0KGFyZ3VtZW50cyxWLmx0KX0sdnQubWluaW11bT12dC5taW49ZnVuY3Rpb24oKXtyZXR1cm4gaHQoYXJndW1lbnRzLFYuZ3QpfSx2dC5yYW5kb209KGhlPTkwMDcxOTkyNTQ3NDA5OTIsTz1NYXRoLnJhbmRvbSgpKmhlJjIw''@;'; + put 'put ''OTcxNTE/ZnVuY3Rpb24oKXtyZXR1cm4gUShNYXRoLnJhbmRvbSgpKmhlKX06ZnVuY3Rpb24oKXtyZXR1cm4gODM4ODYwOCooMTA3Mzc0MTgyNCpNYXRoLnJhbmRvbSgpfDApKyg4Mzg4NjA4Kk1hdGgucmFuZG9tKCl8MCl9LGZ1bmN0aW9uKHR0KXt2YXIgZXQsYXQsTHQsQ3QsZnQsSHQ9MCxH''@;'; + put 'put ''ZT1bXSxVZT1uZXcgdnQoVCk7aWYobnVsbD09dHQ/dHQ9UzpjZSh0dCwwLHEpLEN0PVUodHQvWSksUWUpaWYoY3J5cHRvLmdldFJhbmRvbVZhbHVlcyl7Zm9yKGV0PWNyeXB0by5nZXRSYW5kb21WYWx1ZXMobmV3IFVpbnQzMkFycmF5KEN0Kj0yKSk7SHQ8Q3Q7KTllMTU8PShmdD0xMzEwNzIq''@;'; + put 'put ''ZXRbSHRdKyhldFtIdCsxXT4+PjExKSk/KGF0PWNyeXB0by5nZXRSYW5kb21WYWx1ZXMobmV3IFVpbnQzMkFycmF5KDIpKSxldFtIdF09YXRbMF0sZXRbSHQrMV09YXRbMV0pOihHZS5wdXNoKGZ0JTFlMTQpLEh0Kz0yKTtIdD1DdC8yfWVsc2V7aWYoIWNyeXB0by5yYW5kb21CeXRlcyl0aHJv''@;'; + put 'put ''dyBRZT0hMSxFcnJvcihaKyJjcnlwdG8gdW5hdmFpbGFibGUiKTtmb3IoZXQ9Y3J5cHRvLnJhbmRvbUJ5dGVzKEN0Kj03KTtIdDxDdDspOWUxNTw9KGZ0PTI4MTQ3NDk3NjcxMDY1NiooMzEmZXRbSHRdKSsxMDk5NTExNjI3Nzc2KmV0W0h0KzFdKzQyOTQ5NjcyOTYqZXRbSHQrMl0rMTY3Nzcy''@;'; + put 'put ''MTYqZXRbSHQrM10rKGV0W0h0KzRdPDwxNikrKGV0W0h0KzVdPDw4KStldFtIdCs2XSk/Y3J5cHRvLnJhbmRvbUJ5dGVzKDcpLmNvcHkoZXQsSHQpOihHZS5wdXNoKGZ0JTFlMTQpLEh0Kz03KTtIdD1DdC83fWlmKCFRZSlmb3IoO0h0PEN0OykoZnQ9TygpKTw5ZTE1JiYoR2VbSHQrK109ZnQl''@;'; + put 'put ''MWUxNCk7Zm9yKEN0PUdlWy0tSHRdLHR0JT1ZLEN0JiZ0dCYmKEdlW0h0XT1RKEN0LyhmdD1OW1ktdHRdKSkqZnQpOzA9PT1HZVtIdF07R2UucG9wKCksSHQtLSk7aWYoSHQ8MClHZT1bTHQ9MF07ZWxzZXtmb3IoTHQ9LTE7MD09PUdlWzBdO0dlLnNwbGljZSgwLDEpLEx0LT1ZKTtmb3IoSHQ9''@;'; + put 'put ''MSxmdD1HZVswXTsxMDw9ZnQ7ZnQvPTEwLEh0KyspO0h0PFkmJihMdC09WS1IdCl9cmV0dXJuIFVlLmU9THQsVWUuYz1HZSxVZX0pLHZ0LnN1bT1mdW5jdGlvbigpe2Zvcih2YXIgdHQ9MSxldD1hcmd1bWVudHMsYXQ9bmV3IHZ0KGV0WzBdKTt0dDxldC5sZW5ndGg7KWF0PWF0LnBsdXMoZXRb''@;'; + put 'put ''dHQrK10pO3JldHVybiBhdH0sVGU9ZnVuY3Rpb24oKXt2YXIgdHQ9IjAxMjM0NTY3ODkiO2Z1bmN0aW9uIGV0KGF0LEx0LEN0LGZ0KXtmb3IodmFyIEh0LEdlLFVlPVswXSx5dD0wLGp0PWF0Lmxlbmd0aDt5dDxqdDspe2ZvcihHZT1VZS5sZW5ndGg7R2UtLTtVZVtHZV0qPUx0KTtmb3IoVWVb''@;'; + put 'put ''MF0rPWZ0LmluZGV4T2YoYXQuY2hhckF0KHl0KyspKSxIdD0wO0h0PFVlLmxlbmd0aDtIdCsrKVVlW0h0XT5DdC0xJiYobnVsbD09VWVbSHQrMV0mJihVZVtIdCsxXT0wKSxVZVtIdCsxXSs9VWVbSHRdL0N0fDAsVWVbSHRdJT1DdCl9cmV0dXJuIFVlLnJldmVyc2UoKX1yZXR1cm4gZnVuY3Rp''@;'; + put 'put ''b24oYXQsTHQsQ3QsZnQsSHQpe3ZhciBHZSxVZSx5dCxqdCxRdCxnbixkbix5bixsbj1hdC5pbmRleE9mKCIuIiksTm49Uyxibj1GO2ZvcigwPD1sbiYmKGp0PWd0LGd0PTAsYXQ9YXQucmVwbGFjZSgiLiIsIiIpLGduPSh5bj1uZXcgdnQoTHQpKS5wb3coYXQubGVuZ3RoLWxuKSxndD1qdCx5''@;'; + put 'put ''bi5jPWV0KEFlKHNlKGduLmMpLGduLmUsIjAiKSwxMCxDdCx0dCkseW4uZT15bi5jLmxlbmd0aCkseXQ9anQ9KGRuPWV0KGF0LEx0LEN0LEh0PyhHZT1tdCx0dCk6KEdlPXR0LG10KSkpLmxlbmd0aDswPT1kblstLWp0XTtkbi5wb3AoKSk7aWYoIWRuWzBdKXJldHVybiBHZS5jaGFyQXQoMCk7''@;'; + put 'put ''aWYobG48MD8tLXl0Oihnbi5jPWRuLGduLmU9eXQsZ24ucz1mdCxkbj0oZ249SWUoZ24seW4sTm4sYm4sQ3QpKS5jLFF0PWduLnIseXQ9Z24uZSksbG49ZG5bVWU9eXQrTm4rMV0sanQ9Q3QvMixRdD1RdHx8VWU8MHx8bnVsbCE9ZG5bVWUrMV0sUXQ9Ym48ND8obnVsbCE9bG58fFF0KSYmKDA9''@;'; + put 'put ''PWJufHxibj09KGduLnM8MD8zOjIpKTpqdDxsbnx8bG49PWp0JiYoND09Ym58fFF0fHw2PT1ibiYmMSZkbltVZS0xXXx8Ym49PShnbi5zPDA/ODo3KSksVWU8MXx8IWRuWzBdKWF0PVF0P0FlKEdlLmNoYXJBdCgxKSwtTm4sR2UuY2hhckF0KDApKTpHZS5jaGFyQXQoMCk7ZWxzZXtpZihkbi5s''@;'; + put 'put ''ZW5ndGg9VWUsUXQpZm9yKC0tQ3Q7KytkblstLVVlXT5DdDspZG5bVWVdPTAsVWV8fCgrK3l0LGRuPVsxXS5jb25jYXQoZG4pKTtmb3IoanQ9ZG4ubGVuZ3RoOyFkblstLWp0XTspO2Zvcihsbj0wLGF0PSIiO2xuPD1qdDthdCs9R2UuY2hhckF0KGRuW2xuKytdKSk7YXQ9QWUoYXQseXQsR2Uu''@;'; + put 'put ''Y2hhckF0KDApKX1yZXR1cm4gYXR9fSgpLEllPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdHQoTHQsQ3QsZnQpe3ZhciBIdCxHZSxVZSx5dCxqdD0wLFF0PUx0Lmxlbmd0aCxnbj1DdCVlZSxkbj1DdC9lZXwwO2ZvcihMdD1MdC5zbGljZSgpO1F0LS07KWp0PSgoR2U9Z24qKFVlPUx0W1F0XSVlZSkr''@;'; + put 'put ''KEh0PWRuKlVlKyh5dD1MdFtRdF0vZWV8MCkqZ24pJWVlKmVlK2p0KS9mdHwwKSsoSHQvZWV8MCkrZG4qeXQsTHRbUXRdPUdlJWZ0O3JldHVybiBqdCYmKEx0PVtqdF0uY29uY2F0KEx0KSksTHR9ZnVuY3Rpb24gZXQoTHQsQ3QsZnQsSHQpe3ZhciBHZSxVZTtpZihmdCE9SHQpVWU9SHQ8ZnQ/''@;'; + put 'put ''MTotMTtlbHNlIGZvcihHZT1VZT0wO0dlPGZ0O0dlKyspaWYoTHRbR2VdIT1DdFtHZV0pe1VlPUx0W0dlXT5DdFtHZV0/MTotMTticmVha31yZXR1cm4gVWV9ZnVuY3Rpb24gYXQoTHQsQ3QsZnQsSHQpe2Zvcih2YXIgR2U9MDtmdC0tOylMdFtmdF0tPUdlLEx0W2Z0XT0oR2U9THRbZnRdPEN0''@;'; + put 'put ''W2Z0XT8xOjApKkh0K0x0W2Z0XS1DdFtmdF07Zm9yKDshTHRbMF0mJjE8THQubGVuZ3RoO0x0LnNwbGljZSgwLDEpKTt9cmV0dXJuIGZ1bmN0aW9uKEx0LEN0LGZ0LEh0LEdlKXt2YXIgVWUseXQsanQsUXQsZ24sZG4seW4sbG4sTm4sYm4sZXIsc3IsWG4sRnIseHIscXQscHIsbnI9THQucz09''@;'; + put 'put ''Q3Qucz8xOi0xLEFuPUx0LmMscW49Q3QuYztpZighKEFuJiZBblswXSYmcW4mJnFuWzBdKSlyZXR1cm4gbmV3IHZ0KEx0LnMmJkN0LnMmJihBbj8hcW58fEFuWzBdIT1xblswXTpxbik/QW4mJjA9PUFuWzBdfHwhcW4/MCpucjpuci8wOk5hTik7Zm9yKE5uPShsbj1uZXcgdnQobnIpKS5jPVtd''@;'; + put 'put ''LG5yPWZ0Kyh5dD1MdC5lLUN0LmUpKzEsR2V8fChHZT1hZSx5dD1KKEx0LmUvWSktSihDdC5lL1kpLG5yPW5yL1l8MCksanQ9MDtxbltqdF09PShBbltqdF18fDApO2p0KyspO2lmKHFuW2p0XT4oQW5banRdfHwwKSYmeXQtLSxucjwwKU5uLnB1c2goMSksUXQ9ITA7ZWxzZXtmb3IoRnI9QW4u''@;'; + put 'put ''bGVuZ3RoLHF0PXFuLmxlbmd0aCxucis9MiwxPChnbj1RKEdlLyhxbltqdD0wXSsxKSkpJiYocW49dHQocW4sZ24sR2UpLEFuPXR0KEFuLGduLEdlKSxxdD1xbi5sZW5ndGgsRnI9QW4ubGVuZ3RoKSxYbj1xdCxlcj0oYm49QW4uc2xpY2UoMCxxdCkpLmxlbmd0aDtlcjxxdDtibltlcisrXT0w''@;'; + put 'put ''KTtwcj1xbi5zbGljZSgpLHByPVswXS5jb25jYXQocHIpLHhyPXFuWzBdLHFuWzFdPj1HZS8yJiZ4cisrO2Rve2lmKGduPTAsKFVlPWV0KHFuLGJuLHF0LGVyKSk8MCl7aWYoc3I9Ym5bMF0scXQhPWVyJiYoc3I9c3IqR2UrKGJuWzFdfHwwKSksMTwoZ249UShzci94cikpKWZvcihHZTw9Z24m''@;'; + put 'put ''Jihnbj1HZS0xKSx5bj0oZG49dHQocW4sZ24sR2UpKS5sZW5ndGgsZXI9Ym4ubGVuZ3RoOzE9PWV0KGRuLGJuLHluLGVyKTspZ24tLSxhdChkbixxdDx5bj9wcjpxbix5bixHZSkseW49ZG4ubGVuZ3RoLFVlPTE7ZWxzZSAwPT1nbiYmKFVlPWduPTEpLHluPShkbj1xbi5zbGljZSgpKS5sZW5n''@;'; + put 'put ''dGg7aWYoeW48ZXImJihkbj1bMF0uY29uY2F0KGRuKSksYXQoYm4sZG4sZXIsR2UpLGVyPWJuLmxlbmd0aCwtMT09VWUpZm9yKDtldChxbixibixxdCxlcik8MTspZ24rKyxhdChibixxdDxlcj9wcjpxbixlcixHZSksZXI9Ym4ubGVuZ3RofWVsc2UgMD09PVVlJiYoZ24rKyxibj1bMF0pO05u''@;'; + put 'put ''W2p0KytdPWduLGJuWzBdP2JuW2VyKytdPUFuW1huXXx8MDooYm49W0FuW1huXV0sZXI9MSl9d2hpbGUoKFhuKys8RnJ8fG51bGwhPWJuWzBdKSYmbnItLSk7UXQ9bnVsbCE9Ym5bMF0sTm5bMF18fE5uLnNwbGljZSgwLDEpfWlmKEdlPT1hZSl7Zm9yKGp0PTEsbnI9Tm5bMF07MTA8PW5yO25y''@;'; + put 'put ''Lz0xMCxqdCsrKTtvbihsbixmdCsobG4uZT1qdCt5dCpZLTEpKzEsSHQsUXQpfWVsc2UgbG4uZT15dCxsbi5yPStRdDtyZXR1cm4gbG59fSgpLHo9L14oLT8pMChbeGJvXSkoPz1cd1tcdy5dKiQpL2ksbmU9L14oW14uXSspXC4kLyx0ZT0vXlwuKFteLl0rKSQvLHg9L14tPyhJbmZpbml0eXxO''@;'; + put 'put ''YU4pJC8sUD0vXlxzKlwrKD89W1x3Ll0pfF5ccyt8XHMrJC9nLEVlPWZ1bmN0aW9uKHR0LGV0LGF0LEx0KXt2YXIgQ3QsZnQ9YXQ/ZXQ6ZXQucmVwbGFjZShQLCIiKTtpZih4LnRlc3QoZnQpKXR0LnM9aXNOYU4oZnQpP251bGw6ZnQ8MD8tMToxLHR0LmM9dHQuZT1udWxsO2Vsc2V7aWYoIWF0''@;'; + put 'put ''JiYoZnQ9ZnQucmVwbGFjZSh6LGZ1bmN0aW9uKEh0LEdlLFVlKXtyZXR1cm4gQ3Q9IngiPT0oVWU9VWUudG9Mb3dlckNhc2UoKSk/MTY6ImIiPT1VZT8yOjgsTHQmJkx0IT1DdD9IdDpHZX0pLEx0JiYoQ3Q9THQsZnQ9ZnQucmVwbGFjZShuZSwiJDEiKS5yZXBsYWNlKHRlLCIwLiQxIikpLGV0''@;'; + put 'put ''IT1mdCkpcmV0dXJuIG5ldyB2dChmdCxDdCk7aWYodnQuREVCVUcpdGhyb3cgRXJyb3IoWisiTm90IGEiKyhMdD8iIGJhc2UgIitMdDoiIikrIiBudW1iZXI6ICIrZXQpO3R0LmM9dHQuZT10dC5zPW51bGx9fSxWLmFic29sdXRlVmFsdWU9Vi5hYnM9ZnVuY3Rpb24oKXt2YXIgdHQ9bmV3IHZ0''@;'; + put 'put ''KHRoaXMpO3JldHVybiB0dC5zPDAmJih0dC5zPTEpLHR0fSxWLmNvbXBhcmVkVG89ZnVuY3Rpb24odHQsZXQpe3JldHVybiBvZSh0aGlzLG5ldyB2dCh0dCxldCkpfSxWLmRlY2ltYWxQbGFjZXM9Vi5kcD1mdW5jdGlvbih0dCxldCl7dmFyIGF0LEx0LEN0O2lmKG51bGwhPXR0KXJldHVybiBj''@;'; + put 'put ''ZSh0dCwwLHEpLG51bGw9PWV0P2V0PUY6Y2UoZXQsMCw4KSxvbihuZXcgdnQodGhpcyksdHQrdGhpcy5lKzEsZXQpO2lmKCEoYXQ9dGhpcy5jKSlyZXR1cm4gbnVsbDtpZihMdD0oKEN0PWF0Lmxlbmd0aC0xKS1KKHRoaXMuZS9ZKSkqWSxDdD1hdFtDdF0pZm9yKDtDdCUxMD09MDtDdC89MTAs''@;'; + put 'put ''THQtLSk7cmV0dXJuIEx0PDAmJihMdD0wKSxMdH0sVi5kaXZpZGVkQnk9Vi5kaXY9ZnVuY3Rpb24odHQsZXQpe3JldHVybiBJZSh0aGlzLG5ldyB2dCh0dCxldCksUyxGKX0sVi5kaXZpZGVkVG9JbnRlZ2VyQnk9Vi5pZGl2PWZ1bmN0aW9uKHR0LGV0KXtyZXR1cm4gSWUodGhpcyxuZXcgdnQo''@;'; + put 'put ''dHQsZXQpLDAsMSl9LFYuZXhwb25lbnRpYXRlZEJ5PVYucG93PWZ1bmN0aW9uKHR0LGV0KXt2YXIgYXQsTHQsQ3QsZnQsSHQsR2UsVWUseXQsanQ9dGhpcztpZigodHQ9bmV3IHZ0KHR0KSkuYyYmIXR0LmlzSW50ZWdlcigpKXRocm93IEVycm9yKForIkV4cG9uZW50IG5vdCBhbiBpbnRlZ2Vy''@;'; + put 'put ''OiAiK190KHR0KSk7aWYobnVsbCE9ZXQmJihldD1uZXcgdnQoZXQpKSxIdD0xNDx0dC5lLCFqdC5jfHwhanQuY1swXXx8MT09anQuY1swXSYmIWp0LmUmJjE9PWp0LmMubGVuZ3RofHwhdHQuY3x8IXR0LmNbMF0pcmV0dXJuIHl0PW5ldyB2dChNYXRoLnBvdygrX3QoanQpLEh0PzItZGUodHQp''@;'; + put 'put ''OitfdCh0dCkpKSxldD95dC5tb2QoZXQpOnl0O2lmKEdlPXR0LnM8MCxldCl7aWYoZXQuYz8hZXQuY1swXTohZXQucylyZXR1cm4gbmV3IHZ0KE5hTik7KEx0PSFHZSYmanQuaXNJbnRlZ2VyKCkmJmV0LmlzSW50ZWdlcigpKSYmKGp0PWp0Lm1vZChldCkpfWVsc2V7aWYoOTx0dC5lJiYoMDxq''@;'; + put 'put ''dC5lfHxqdC5lPC0xfHwoMD09anQuZT8xPGp0LmNbMF18fEh0JiYyNGU3PD1qdC5jWzFdOmp0LmNbMF08OGUxM3x8SHQmJmp0LmNbMF08PTk5OTk5NzVlNykpKXJldHVybiBmdD1qdC5zPDAmJmRlKHR0KT8tMDowLC0xPGp0LmUmJihmdD0xL2Z0KSxuZXcgdnQoR2U/MS9mdDpmdCk7Z3QmJihm''@;'; + put 'put ''dD1VKGd0L1krMikpfWZvcihVZT1IdD8oYXQ9bmV3IHZ0KC41KSxHZSYmKHR0LnM9MSksZGUodHQpKTooQ3Q9TWF0aC5hYnMoK190KHR0KSkpJTIseXQ9bmV3IHZ0KFQpOzspe2lmKFVlKXtpZighKHl0PXl0LnRpbWVzKGp0KSkuYylicmVhaztmdD95dC5jLmxlbmd0aD5mdCYmKHl0LmMubGVu''@;'; + put 'put ''Z3RoPWZ0KTpMdCYmKHl0PXl0Lm1vZChldCkpfWlmKEN0KXtpZigwPT09KEN0PVEoQ3QvMikpKWJyZWFrO1VlPUN0JTJ9ZWxzZSBpZihvbih0dD10dC50aW1lcyhhdCksdHQuZSsxLDEpLDE0PHR0LmUpVWU9ZGUodHQpO2Vsc2V7aWYoMD09KEN0PStfdCh0dCkpKWJyZWFrO1VlPUN0JTJ9anQ9''@;'; + put 'put ''anQudGltZXMoanQpLGZ0P2p0LmMmJmp0LmMubGVuZ3RoPmZ0JiYoanQuYy5sZW5ndGg9ZnQpOkx0JiYoanQ9anQubW9kKGV0KSl9cmV0dXJuIEx0P3l0OihHZSYmKHl0PVQuZGl2KHl0KSksZXQ/eXQubW9kKGV0KTpmdD9vbih5dCxndCxGLHZvaWQgMCk6eXQpfSxWLmludGVnZXJWYWx1ZT1m''@;'; + put 'put ''dW5jdGlvbih0dCl7dmFyIGV0PW5ldyB2dCh0aGlzKTtyZXR1cm4gbnVsbD09dHQ/dHQ9RjpjZSh0dCwwLDgpLG9uKGV0LGV0LmUrMSx0dCl9LFYuaXNFcXVhbFRvPVYuZXE9ZnVuY3Rpb24odHQsZXQpe3JldHVybiAwPT09b2UodGhpcyxuZXcgdnQodHQsZXQpKX0sVi5pc0Zpbml0ZT1mdW5j''@;'; + put 'put ''dGlvbigpe3JldHVybiEhdGhpcy5jfSxWLmlzR3JlYXRlclRoYW49Vi5ndD1mdW5jdGlvbih0dCxldCl7cmV0dXJuIDA8b2UodGhpcyxuZXcgdnQodHQsZXQpKX0sVi5pc0dyZWF0ZXJUaGFuT3JFcXVhbFRvPVYuZ3RlPWZ1bmN0aW9uKHR0LGV0KXtyZXR1cm4gMT09PShldD1vZSh0aGlzLG5l''@;'; + put 'put ''dyB2dCh0dCxldCkpKXx8MD09PWV0fSxWLmlzSW50ZWdlcj1mdW5jdGlvbigpe3JldHVybiEhdGhpcy5jJiZKKHRoaXMuZS9ZKT50aGlzLmMubGVuZ3RoLTJ9LFYuaXNMZXNzVGhhbj1WLmx0PWZ1bmN0aW9uKHR0LGV0KXtyZXR1cm4gb2UodGhpcyxuZXcgdnQodHQsZXQpKTwwfSxWLmlzTGVz''@;'; + put 'put ''c1RoYW5PckVxdWFsVG89Vi5sdGU9ZnVuY3Rpb24odHQsZXQpe3JldHVybi0xPT09KGV0PW9lKHRoaXMsbmV3IHZ0KHR0LGV0KSkpfHwwPT09ZXR9LFYuaXNOYU49ZnVuY3Rpb24oKXtyZXR1cm4hdGhpcy5zfSxWLmlzTmVnYXRpdmU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zPDB9LFYuaXNQ''@;'; + put 'put ''b3NpdGl2ZT1mdW5jdGlvbigpe3JldHVybiAwPHRoaXMuc30sVi5pc1plcm89ZnVuY3Rpb24oKXtyZXR1cm4hIXRoaXMuYyYmMD09dGhpcy5jWzBdfSxWLm1pbnVzPWZ1bmN0aW9uKHR0LGV0KXt2YXIgYXQsTHQsQ3QsZnQsSHQ9dGhpcyxHZT1IdC5zO2lmKGV0PSh0dD1uZXcgdnQodHQsZXQp''@;'; + put 'put ''KS5zLCFHZXx8IWV0KXJldHVybiBuZXcgdnQoTmFOKTtpZihHZSE9ZXQpcmV0dXJuIHR0LnM9LWV0LEh0LnBsdXModHQpO3ZhciBVZT1IdC5lL1kseXQ9dHQuZS9ZLGp0PUh0LmMsUXQ9dHQuYztpZighVWV8fCF5dCl7aWYoIWp0fHwhUXQpcmV0dXJuIGp0Pyh0dC5zPS1ldCx0dCk6bmV3IHZ0''@;'; + put 'put ''KFF0P0h0Ok5hTik7aWYoIWp0WzBdfHwhUXRbMF0pcmV0dXJuIFF0WzBdPyh0dC5zPS1ldCx0dCk6bmV3IHZ0KGp0WzBdP0h0OjM9PUY/LTA6MCl9aWYoVWU9SihVZSkseXQ9Sih5dCksanQ9anQuc2xpY2UoKSxHZT1VZS15dCl7Zm9yKChDdD0oZnQ9R2U8MCk/KEdlPS1HZSxqdCk6KHl0PVVl''@;'; + put 'put ''LFF0KSkucmV2ZXJzZSgpLGV0PUdlO2V0LS07Q3QucHVzaCgwKSk7Q3QucmV2ZXJzZSgpfWVsc2UgZm9yKEx0PShmdD0oR2U9anQubGVuZ3RoKTwoZXQ9UXQubGVuZ3RoKSk/R2U6ZXQsR2U9ZXQ9MDtldDxMdDtldCsrKWlmKGp0W2V0XSE9UXRbZXRdKXtmdD1qdFtldF08UXRbZXRdO2JyZWFr''@;'; + put 'put ''fWlmKGZ0JiYoQ3Q9anQsanQ9UXQsUXQ9Q3QsdHQucz0tdHQucyksMDwoZXQ9KEx0PVF0Lmxlbmd0aCktKGF0PWp0Lmxlbmd0aCkpKWZvcig7ZXQtLTtqdFthdCsrXT0wKTtmb3IoZXQ9YWUtMTtHZTxMdDspe2lmKGp0Wy0tTHRdPFF0W0x0XSl7Zm9yKGF0PUx0O2F0JiYhanRbLS1hdF07anRb''@;'; + put 'put ''YXRdPWV0KTstLWp0W2F0XSxqdFtMdF0rPWFlfWp0W0x0XS09UXRbTHRdfWZvcig7MD09anRbMF07anQuc3BsaWNlKDAsMSksLS15dCk7cmV0dXJuIGp0WzBdP0J0KHR0LGp0LHl0KToodHQucz0zPT1GPy0xOjEsdHQuYz1bdHQuZT0wXSx0dCl9LFYubW9kdWxvPVYubW9kPWZ1bmN0aW9uKHR0''@;'; + put 'put ''LGV0KXt2YXIgYXQsTHQsQ3Q9dGhpcztyZXR1cm4gdHQ9bmV3IHZ0KHR0LGV0KSwhQ3QuY3x8IXR0LnN8fHR0LmMmJiF0dC5jWzBdP25ldyB2dChOYU4pOiF0dC5jfHxDdC5jJiYhQ3QuY1swXT9uZXcgdnQoQ3QpOig5PT0kZT8oTHQ9dHQucyx0dC5zPTEsYXQ9SWUoQ3QsdHQsMCwzKSx0dC5z''@;'; + put 'put ''PUx0LGF0LnMqPUx0KTphdD1JZShDdCx0dCwwLCRlKSwodHQ9Q3QubWludXMoYXQudGltZXModHQpKSkuY1swXXx8MSE9JGV8fCh0dC5zPUN0LnMpLHR0KX0sVi5tdWx0aXBsaWVkQnk9Vi50aW1lcz1mdW5jdGlvbih0dCxldCl7dmFyIGF0LEx0LEN0LGZ0LEh0LEdlLFVlLHl0LGp0LFF0LGdu''@;'; + put 'put ''LGRuLHluLGxuLE5uLGJuPXRoaXMsZXI9Ym4uYyxzcj0odHQ9bmV3IHZ0KHR0LGV0KSkuYztpZighKGVyJiZzciYmZXJbMF0mJnNyWzBdKSlyZXR1cm4hYm4uc3x8IXR0LnN8fGVyJiYhZXJbMF0mJiFzcnx8c3ImJiFzclswXSYmIWVyP3R0LmM9dHQuZT10dC5zPW51bGw6KHR0LnMqPWJuLnMs''@;'; + put 'put ''ZXImJnNyPyh0dC5jPVswXSx0dC5lPTApOnR0LmM9dHQuZT1udWxsKSx0dDtmb3IoTHQ9Sihibi5lL1kpK0oodHQuZS9ZKSx0dC5zKj1ibi5zLChVZT1lci5sZW5ndGgpPChRdD1zci5sZW5ndGgpJiYoeW49ZXIsZXI9c3Isc3I9eW4sQ3Q9VWUsVWU9UXQsUXQ9Q3QpLEN0PVVlK1F0LHluPVtd''@;'; + put 'put ''O0N0LS07eW4ucHVzaCgwKSk7Zm9yKGxuPWFlLE5uPWVlLEN0PVF0OzA8PS0tQ3Q7KXtmb3IoYXQ9MCxnbj1zcltDdF0lTm4sZG49c3JbQ3RdL05ufDAsZnQ9Q3QrKEh0PVVlKTtDdDxmdDspYXQ9KCh5dD1nbiooeXQ9ZXJbLS1IdF0lTm4pKyhHZT1kbip5dCsoanQ9ZXJbSHRdL05ufDApKmdu''@;'; + put 'put ''KSVObipObit5bltmdF0rYXQpL2xufDApKyhHZS9ObnwwKStkbipqdCx5bltmdC0tXT15dCVsbjt5bltmdF09YXR9cmV0dXJuIGF0PysrTHQ6eW4uc3BsaWNlKDAsMSksQnQodHQseW4sTHQpfSxWLm5lZ2F0ZWQ9ZnVuY3Rpb24oKXt2YXIgdHQ9bmV3IHZ0KHRoaXMpO3JldHVybiB0dC5zPS10''@;'; + put 'put ''dC5zfHxudWxsLHR0fSxWLnBsdXM9ZnVuY3Rpb24odHQsZXQpe3ZhciBhdCxMdD10aGlzLEN0PUx0LnM7aWYoZXQ9KHR0PW5ldyB2dCh0dCxldCkpLnMsIUN0fHwhZXQpcmV0dXJuIG5ldyB2dChOYU4pO2lmKEN0IT1ldClyZXR1cm4gdHQucz0tZXQsTHQubWludXModHQpO3ZhciBmdD1MdC5l''@;'; + put 'put ''L1ksSHQ9dHQuZS9ZLEdlPUx0LmMsVWU9dHQuYztpZighZnR8fCFIdCl7aWYoIUdlfHwhVWUpcmV0dXJuIG5ldyB2dChDdC8wKTtpZighR2VbMF18fCFVZVswXSlyZXR1cm4gVWVbMF0/dHQ6bmV3IHZ0KEdlWzBdP0x0OjAqQ3QpfWlmKGZ0PUooZnQpLEh0PUooSHQpLEdlPUdlLnNsaWNlKCks''@;'; + put 'put ''Q3Q9ZnQtSHQpe2ZvcigoYXQ9MDxDdD8oSHQ9ZnQsVWUpOihDdD0tQ3QsR2UpKS5yZXZlcnNlKCk7Q3QtLTthdC5wdXNoKDApKTthdC5yZXZlcnNlKCl9Zm9yKChDdD1HZS5sZW5ndGgpLShldD1VZS5sZW5ndGgpPDAmJihhdD1VZSxVZT1HZSxHZT1hdCxldD1DdCksQ3Q9MDtldDspQ3Q9KEdl''@;'; + put 'put ''Wy0tZXRdPUdlW2V0XStVZVtldF0rQ3QpL2FlfDAsR2VbZXRdPWFlPT09R2VbZXRdPzA6R2VbZXRdJWFlO3JldHVybiBDdCYmKEdlPVtDdF0uY29uY2F0KEdlKSwrK0h0KSxCdCh0dCxHZSxIdCl9LFYucHJlY2lzaW9uPVYuc2Q9ZnVuY3Rpb24odHQsZXQpe3ZhciBhdCxMdCxDdDtpZihudWxs''@;'; + put 'put ''IT10dCYmdHQhPT0hIXR0KXJldHVybiBjZSh0dCwxLHEpLG51bGw9PWV0P2V0PUY6Y2UoZXQsMCw4KSxvbihuZXcgdnQodGhpcyksdHQsZXQpO2lmKCEoYXQ9dGhpcy5jKSlyZXR1cm4gbnVsbDtpZihMdD0oQ3Q9YXQubGVuZ3RoLTEpKlkrMSxDdD1hdFtDdF0pe2Zvcig7Q3QlMTA9PTA7Q3Qv''@;'; + put 'put ''PTEwLEx0LS0pO2ZvcihDdD1hdFswXTsxMDw9Q3Q7Q3QvPTEwLEx0KyspO31yZXR1cm4gdHQmJnRoaXMuZSsxPkx0JiYoTHQ9dGhpcy5lKzEpLEx0fSxWLnNoaWZ0ZWRCeT1mdW5jdGlvbih0dCl7cmV0dXJuIGNlKHR0LC1XLFcpLHRoaXMudGltZXMoIjFlIit0dCl9LFYuc3F1YXJlUm9vdD1W''@;'; + put 'put ''LnNxcnQ9ZnVuY3Rpb24oKXt2YXIgdHQsZXQsYXQsTHQsQ3QsZnQ9dGhpcyxIdD1mdC5jLEdlPWZ0LnMsVWU9ZnQuZSx5dD1TKzQsanQ9bmV3IHZ0KCIwLjUiKTtpZigxIT09R2V8fCFIdHx8IUh0WzBdKXJldHVybiBuZXcgdnQoIUdlfHxHZTwwJiYoIUh0fHxIdFswXSk/TmFOOkh0P2Z0OjEv''@;'; + put 'put ''MCk7aWYoKGF0PTA9PShHZT1NYXRoLnNxcnQoK190KGZ0KSkpfHxHZT09MS8wPygoKGV0PXNlKEh0KSkubGVuZ3RoK1VlKSUyPT0wJiYoZXQrPSIwIiksR2U9TWF0aC5zcXJ0KCtldCksVWU9SigoVWUrMSkvMiktKFVlPDB8fFVlJTIpLG5ldyB2dChldD1HZT09MS8wPyIxZSIrVWU6KGV0PUdl''@;'; + put 'put ''LnRvRXhwb25lbnRpYWwoKSkuc2xpY2UoMCxldC5pbmRleE9mKCJlIikrMSkrVWUpKTpuZXcgdnQoR2UrIiIpKS5jWzBdKWZvcigoR2U9KFVlPWF0LmUpK3l0KTwzJiYoR2U9MCk7OylpZihhdD1qdC50aW1lcygoQ3Q9YXQpLnBsdXMoSWUoZnQsQ3QseXQsMSkpKSxzZShDdC5jKS5zbGljZSgw''@;'; + put 'put ''LEdlKT09PShldD1zZShhdC5jKSkuc2xpY2UoMCxHZSkpe2lmKGF0LmU8VWUmJi0tR2UsIjk5OTkiIT0oZXQ9ZXQuc2xpY2UoR2UtMyxHZSsxKSkmJihMdHx8IjQ5OTkiIT1ldCkpeytldCYmKCtldC5zbGljZSgxKXx8IjUiIT1ldC5jaGFyQXQoMCkpfHwob24oYXQsYXQuZStTKzIsMSksdHQ9''@;'; + put 'put ''IWF0LnRpbWVzKGF0KS5lcShmdCkpO2JyZWFrfWlmKCFMdCYmKG9uKEN0LEN0LmUrUysyLDApLEN0LnRpbWVzKEN0KS5lcShmdCkpKXthdD1DdDticmVha315dCs9NCxHZSs9NCxMdD0xfXJldHVybiBvbihhdCxhdC5lK1MrMSxGLHR0KX0sVi50b0V4cG9uZW50aWFsPWZ1bmN0aW9uKHR0LGV0''@;'; + put 'put ''KXtyZXR1cm4gbnVsbCE9dHQmJihjZSh0dCwwLHEpLHR0KyspLEF0KHRoaXMsdHQsZXQsMSl9LFYudG9GaXhlZD1mdW5jdGlvbih0dCxldCl7cmV0dXJuIG51bGwhPXR0JiYoY2UodHQsMCxxKSx0dD10dCt0aGlzLmUrMSksQXQodGhpcyx0dCxldCl9LFYudG9Gb3JtYXQ9ZnVuY3Rpb24odHQs''@;'; + put 'put ''ZXQsYXQpe3ZhciBMdDtpZihudWxsPT1hdCludWxsIT10dCYmZXQmJiJvYmplY3QiPT10eXBlb2YgZXQ/KGF0PWV0LGV0PW51bGwpOnR0JiYib2JqZWN0Ij09dHlwZW9mIHR0PyhhdD10dCx0dD1ldD1udWxsKTphdD13dDtlbHNlIGlmKCJvYmplY3QiIT10eXBlb2YgYXQpdGhyb3cgRXJyb3Io''@;'; + put 'put ''WisiQXJndW1lbnQgbm90IGFuIG9iamVjdDogIithdCk7aWYoTHQ9dGhpcy50b0ZpeGVkKHR0LGV0KSx0aGlzLmMpe3ZhciBDdCxmdD1MdC5zcGxpdCgiLiIpLEh0PSthdC5ncm91cFNpemUsR2U9K2F0LnNlY29uZGFyeUdyb3VwU2l6ZSxVZT1hdC5ncm91cFNlcGFyYXRvcnx8IiIseXQ9ZnRb''@;'; + put 'put ''MF0sanQ9ZnRbMV0sUXQ9dGhpcy5zPDAsZ249UXQ/eXQuc2xpY2UoMSk6eXQsZG49Z24ubGVuZ3RoO2lmKEdlJiYoQ3Q9SHQsSHQ9R2UsZG4tPUdlPUN0KSwwPEh0JiYwPGRuKXtmb3IoeXQ9Z24uc3Vic3RyKDAsQ3Q9ZG4lSHR8fEh0KTtDdDxkbjtDdCs9SHQpeXQrPVVlK2duLnN1YnN0cihD''@;'; + put 'put ''dCxIdCk7MDxHZSYmKHl0Kz1VZStnbi5zbGljZShDdCkpLFF0JiYoeXQ9Ii0iK3l0KX1MdD1qdD95dCsoYXQuZGVjaW1hbFNlcGFyYXRvcnx8IiIpKygoR2U9K2F0LmZyYWN0aW9uR3JvdXBTaXplKT9qdC5yZXBsYWNlKG5ldyBSZWdFeHAoIlxcZHsiK0dlKyJ9XFxCIiwiZyIpLCIkJiIrKGF0''@;'; + put 'put ''LmZyYWN0aW9uR3JvdXBTZXBhcmF0b3J8fCIiKSk6anQpOnl0fXJldHVybihhdC5wcmVmaXh8fCIiKStMdCsoYXQuc3VmZml4fHwiIil9LFYudG9GcmFjdGlvbj1mdW5jdGlvbih0dCl7dmFyIGV0LGF0LEx0LEN0LGZ0LEh0LEdlLFVlLHl0LGp0LFF0LGduLGRuPXRoaXMseW49ZG4uYztpZihu''@;'; + put 'put ''dWxsIT10dCYmKCEoR2U9bmV3IHZ0KHR0KSkuaXNJbnRlZ2VyKCkmJihHZS5jfHwxIT09R2Uucyl8fEdlLmx0KFQpKSl0aHJvdyBFcnJvcihaKyJBcmd1bWVudCAiKyhHZS5pc0ludGVnZXIoKT8ib3V0IG9mIHJhbmdlOiAiOiJub3QgYW4gaW50ZWdlcjogIikrX3QoR2UpKTtpZigheW4pcmV0''@;'; + put 'put ''dXJuIG5ldyB2dChkbik7Zm9yKGV0PW5ldyB2dChUKSx5dD1hdD1uZXcgdnQoVCksTHQ9VWU9bmV3IHZ0KFQpLGduPXNlKHluKSxmdD1ldC5lPWduLmxlbmd0aC1kbi5lLTEsZXQuY1swXT1OWyhIdD1mdCVZKTwwP1krSHQ6SHRdLHR0PSF0dHx8MDxHZS5jb21wYXJlZFRvKGV0KT8wPGZ0P2V0''@;'; + put 'put ''Onl0OkdlLEh0PVBlLFBlPTEvMCxHZT1uZXcgdnQoZ24pLFVlLmNbMF09MDtqdD1JZShHZSxldCwwLDEpLDEhPShDdD1hdC5wbHVzKGp0LnRpbWVzKEx0KSkpLmNvbXBhcmVkVG8odHQpOylhdD1MdCxMdD1DdCx5dD1VZS5wbHVzKGp0LnRpbWVzKEN0PXl0KSksVWU9Q3QsZXQ9R2UubWludXMo''@;'; + put 'put ''anQudGltZXMoQ3Q9ZXQpKSxHZT1DdDtyZXR1cm4gQ3Q9SWUodHQubWludXMoYXQpLEx0LDAsMSksVWU9VWUucGx1cyhDdC50aW1lcyh5dCkpLGF0PWF0LnBsdXMoQ3QudGltZXMoTHQpKSxVZS5zPXl0LnM9ZG4ucyxRdD1JZSh5dCxMdCxmdCo9MixGKS5taW51cyhkbikuYWJzKCkuY29tcGFy''@;'; + put 'put ''ZWRUbyhJZShVZSxhdCxmdCxGKS5taW51cyhkbikuYWJzKCkpPDE/W3l0LEx0XTpbVWUsYXRdLFBlPUh0LFF0fSxWLnRvTnVtYmVyPWZ1bmN0aW9uKCl7cmV0dXJuK190KHRoaXMpfSxWLnRvUHJlY2lzaW9uPWZ1bmN0aW9uKHR0LGV0KXtyZXR1cm4gbnVsbCE9dHQmJmNlKHR0LDEscSksQXQo''@;'; + put 'put ''dGhpcyx0dCxldCwyKX0sVi50b1N0cmluZz1mdW5jdGlvbih0dCl7dmFyIGV0LGF0PXRoaXMsTHQ9YXQucyxDdD1hdC5lO3JldHVybiBudWxsPT09Q3Q/THQ/KGV0PSJJbmZpbml0eSIsTHQ8MCYmKGV0PSItIitldCkpOmV0PSJOYU4iOihldD1udWxsPT10dD9DdDw9eWV8fENlPD1DdD92ZShz''@;'; + put 'put ''ZShhdC5jKSxDdCk6QWUoc2UoYXQuYyksQ3QsIjAiKToxMD09PXR0P0FlKHNlKChhdD1vbihuZXcgdnQoYXQpLFMrQ3QrMSxGKSkuYyksYXQuZSwiMCIpOihjZSh0dCwyLG10Lmxlbmd0aCwiQmFzZSIpLFRlKEFlKHNlKGF0LmMpLEN0LCIwIiksMTAsdHQsTHQsITApKSxMdDwwJiZhdC5jWzBd''@;'; + put 'put ''JiYoZXQ9Ii0iK2V0KSksZXR9LFYudmFsdWVPZj1WLnRvSlNPTj1mdW5jdGlvbigpe3JldHVybiBfdCh0aGlzKX0sVi5faXNCaWdOdW1iZXI9ITAsImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3ImJihWW1N5bWJvbC50b1N0cmluZ1Rh''@;'; + put 'put ''Z109IkJpZ051bWJlciIsVltTeW1ib2wuZm9yKCJub2RlanMudXRpbC5pbnNwZWN0LmN1c3RvbSIpXT1WLnZhbHVlT2YpLG51bGwhPVNlJiZ2dC5zZXQoU2UpLHZ0fSgpKS5kZWZhdWx0PUUuQmlnTnVtYmVyPUUsdm9pZCAwIT09TCYmTC5leHBvcnRzP0wuZXhwb3J0cz1FOihCfHwoQj0idW5k''@;'; + put 'put ''ZWZpbmVkIiE9dHlwZW9mIHNlbGYmJnNlbGY/c2VsZjp3aW5kb3cpLEIuQmlnTnVtYmVyPUUpfSh0aGlzKX0se31dLDI6W2Z1bmN0aW9uKEplLEwsbWUpeyJ1c2Ugc3RyaWN0IjtMLmV4cG9ydHM9e2xhbmd1YWdlVGFnOiJlbi1VUyIsZGVsaW1pdGVyczp7dGhvdXNhbmRzOiIsIixkZWNpbWFs''@;'; + put 'put ''OiIuIn0sYWJicmV2aWF0aW9uczp7dGhvdXNhbmQ6ImsiLG1pbGxpb246Im0iLGJpbGxpb246ImIiLHRyaWxsaW9uOiJ0In0sc3BhY2VTZXBhcmF0ZWQ6ITEsb3JkaW5hbDpmdW5jdGlvbihCKXt2YXIgRT1CJTEwO3JldHVybiAxPT1+fihCJTEwMC8xMCk/InRoIjoxPT09RT8ic3QiOjI9PT1F''@;'; + put 'put ''PyJuZCI6Mz09PUU/InJkIjoidGgifSxjdXJyZW5jeTp7c3ltYm9sOiIkIixwb3NpdGlvbjoicHJlZml4Iixjb2RlOiJVU0QifSxjdXJyZW5jeUZvcm1hdDp7dGhvdXNhbmRTZXBhcmF0ZWQ6ITAsdG90YWxMZW5ndGg6NCxzcGFjZVNlcGFyYXRlZDohMH0sZm9ybWF0czp7Zm91ckRpZ2l0czp7''@;'; + put 'put ''dG90YWxMZW5ndGg6NCxzcGFjZVNlcGFyYXRlZDohMH0sZnVsbFdpdGhUd29EZWNpbWFsczp7b3V0cHV0OiJjdXJyZW5jeSIsdGhvdXNhbmRTZXBhcmF0ZWQ6ITAsbWFudGlzc2E6Mn0sZnVsbFdpdGhUd29EZWNpbWFsc05vQ3VycmVuY3k6e3Rob3VzYW5kU2VwYXJhdGVkOiEwLG1hbnRpc3Nh''@;'; + put 'put ''OjJ9LGZ1bGxXaXRoTm9EZWNpbWFsczp7b3V0cHV0OiJjdXJyZW5jeSIsdGhvdXNhbmRTZXBhcmF0ZWQ6ITAsbWFudGlzc2E6MH19fX0se31dLDM6W2Z1bmN0aW9uKEplLEwsbWUpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBCKEosc2Upe3JldHVybiBmdW5jdGlvbihvZSl7aWYoQXJyYXkuaXNB''@;'; + put 'put ''cnJheShvZSkpcmV0dXJuIG9lfShKKXx8ZnVuY3Rpb24ob2UsY2Upe3ZhciBkZT1bXSx2ZT0hMCxBZT0hMSxrZT12b2lkIDA7dHJ5e2Zvcih2YXIgU2UsSWU9b2VbU3ltYm9sLml0ZXJhdG9yXSgpOyEodmU9KFNlPUllLm5leHQoKSkuZG9uZSkmJihkZS5wdXNoKFNlLnZhbHVlKSwhY2V8fGRl''@;'; + put 'put ''Lmxlbmd0aCE9PWNlKTt2ZT0hMCk7fWNhdGNoKFRlKXtBZT0hMCxrZT1UZX1maW5hbGx5e3RyeXt2ZXx8bnVsbD09SWUucmV0dXJufHxJZS5yZXR1cm4oKX1maW5hbGx5e2lmKEFlKXRocm93IGtlfX1yZXR1cm4gZGV9KEosc2UpfHxmdW5jdGlvbigpe3Rocm93IG5ldyBUeXBlRXJyb3IoIklu''@;'; + put 'put ''dmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UiKX0oKX12YXIgRT1KZSgiLi9nbG9iYWxTdGF0ZSIpLE1lPUplKCIuL3ZhbGlkYXRpbmciKSxVPUplKCIuL3BhcnNpbmciKSxRPVsiQiIsIktCIiwiTUIiLCJHQiIsIlRCIiwiUEIiLCJFQiIsIlpCIiwi''@;'; + put 'put ''WUIiXSxaPXtnZW5lcmFsOntzY2FsZToxMDI0LHN1ZmZpeGVzOlEsbWFya2VyOiJiZCJ9LGJpbmFyeTp7c2NhbGU6MTAyNCxzdWZmaXhlczpbIkIiLCJLaUIiLCJNaUIiLCJHaUIiLCJUaUIiLCJQaUIiLCJFaUIiLCJaaUIiLCJZaUIiXSxtYXJrZXI6ImIifSxkZWNpbWFsOntzY2FsZToxZTMs''@;'; + put 'put ''c3VmZml4ZXM6USxtYXJrZXI6ImQifX0saWU9e3RvdGFsTGVuZ3RoOjAsY2hhcmFjdGVyaXN0aWM6MCxmb3JjZUF2ZXJhZ2U6ITEsYXZlcmFnZTohMSxtYW50aXNzYTotMSxvcHRpb25hbE1hbnRpc3NhOiEwLHRob3VzYW5kU2VwYXJhdGVkOiExLHNwYWNlU2VwYXJhdGVkOiExLG5lZ2F0aXZl''@;'; + put 'put ''OiJzaWduIixmb3JjZVNpZ246ITF9O2Z1bmN0aW9uIGFlKEope3ZhciBzZT0xPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e30sb2U9Mjxhcmd1bWVudHMubGVuZ3RoP2FyZ3VtZW50c1syXTp2b2lkIDA7aWYoInN0cmluZyI9PXR5cGVvZiBz''@;'; + put 'put ''ZSYmKHNlPVUucGFyc2VGb3JtYXQoc2UpKSwhTWUudmFsaWRhdGVGb3JtYXQoc2UpKXJldHVybiJFUlJPUjogaW52YWxpZCBmb3JtYXQiO3ZhciBjZT1zZS5wcmVmaXh8fCIiLGRlPXNlLnBvc3RmaXh8fCIiLHZlPWZ1bmN0aW9uKEFlLGtlLFNlKXtzd2l0Y2goa2Uub3V0cHV0KXtjYXNlImN1''@;'; + put 'put ''cnJlbmN5IjpyZXR1cm4gZnVuY3Rpb24obXQsdnQsQXQpe3ZhciBodD1BdC5jdXJyZW50Q3VycmVuY3koKSxCdD1PYmplY3QuYXNzaWduKHt9LGllLHZ0KSxvbj12b2lkIDAsX3Q9IiIsdHQ9ISFCdC50b3RhbExlbmd0aHx8ISFCdC5mb3JjZUF2ZXJhZ2V8fEJ0LmF2ZXJhZ2UsZXQ9dnQuY3Vy''@;'; + put 'put ''cmVuY3lQb3NpdGlvbnx8aHQucG9zaXRpb24sYXQ9dnQuY3VycmVuY3lTeW1ib2x8fGh0LnN5bWJvbDtCdC5zcGFjZVNlcGFyYXRlZCYmKF90PSIgIiksImluZml4Ij09PWV0JiYob249X3QrYXQrX3QpO3ZhciBMdD1lZSh7aW5zdGFuY2U6bXQscHJvdmlkZWRGb3JtYXQ6dnQsc3RhdGU6QXQs''@;'; + put 'put ''ZGVjaW1hbFNlcGFyYXRvcjpvbn0pO3JldHVybiJwcmVmaXgiPT09ZXQmJihMdD1tdC5fdmFsdWU8MCYmInNpZ24iPT09QnQubmVnYXRpdmU/Ii0iLmNvbmNhdChfdCkuY29uY2F0KGF0KS5jb25jYXQoTHQuc2xpY2UoMSkpOmF0K190K0x0KSxldCYmInBvc3RmaXgiIT09ZXR8fChMdD1MdCso''@;'; + put 'put ''X3Q9dHQ/IiI6X3QpK2F0KSxMdH0oQWUsa2U9cShrZSxFLmN1cnJlbnRDdXJyZW5jeURlZmF1bHRGb3JtYXQoKSksRSk7Y2FzZSJwZXJjZW50IjpyZXR1cm4ga2U9cShrZSxFLmN1cnJlbnRQZXJjZW50YWdlRGVmYXVsdEZvcm1hdCgpKSxBdD1FLEJ0PSh2dD1rZSkucHJlZml4U3ltYm9sLG9u''@;'; + put 'put ''PWVlKHtpbnN0YW5jZTpTZSgxMDAqQWUuX3ZhbHVlKSxwcm92aWRlZEZvcm1hdDp2dCxzdGF0ZTpBdH0pLF90PU9iamVjdC5hc3NpZ24oe30saWUsdnQpLEJ0PyIlIi5jb25jYXQoX3Quc3BhY2VTZXBhcmF0ZWQ/IiAiOiIiKS5jb25jYXQob24pOiIiLmNvbmNhdChvbikuY29uY2F0KF90LnNw''@;'; + put 'put ''YWNlU2VwYXJhdGVkPyIgIjoiIiwiJSIpO2Nhc2UiYnl0ZSI6cmV0dXJuIGtlPXEoa2UsRS5jdXJyZW50Qnl0ZURlZmF1bHRGb3JtYXQoKSksRj1FLHllPVNlLENlPShTPWtlKS5iYXNlfHwiYmluYXJ5IiwkZT0oUGU9WShBZS5fdmFsdWUsKERlPVpbQ2VdKS5zdWZmaXhlcyxEZS5zY2FsZSkp''@;'; + put 'put ''LnN1ZmZpeCxndD1lZSh7aW5zdGFuY2U6eWUoUGUudmFsdWUpLHByb3ZpZGVkRm9ybWF0OlMsc3RhdGU6RixkZWZhdWx0czpGLmN1cnJlbnRCeXRlRGVmYXVsdEZvcm1hdCgpfSksd3Q9Ri5jdXJyZW50QWJicmV2aWF0aW9ucygpLCIiLmNvbmNhdChndCkuY29uY2F0KHd0LnNwYWNlZD8iICI6''@;'; + put 'put ''IiIpLmNvbmNhdCgkZSk7Y2FzZSJ0aW1lIjpyZXR1cm4ga2U9cShrZSxFLmN1cnJlbnRUaW1lRGVmYXVsdEZvcm1hdCgpKSx0ZT1BZSx4PU1hdGguZmxvb3IodGUuX3ZhbHVlLzYwLzYwKSxQPU1hdGguZmxvb3IoKHRlLl92YWx1ZS02MCp4KjYwKS82MCksVj1NYXRoLnJvdW5kKHRlLl92YWx1''@;'; + put 'put ''ZS02MCp4KjYwLTYwKlApLCIiLmNvbmNhdCh4LCI6IikuY29uY2F0KFA8MTA/IjAiOiIiKS5jb25jYXQoUCwiOiIpLmNvbmNhdChWPDEwPyIwIjoiIikuY29uY2F0KFYpO2Nhc2Uib3JkaW5hbCI6cmV0dXJuIEllPUFlLFRlPWtlPXEoa2UsRS5jdXJyZW50T3JkaW5hbERlZmF1bHRGb3JtYXQo''@;'; + put 'put ''KSksaGU9KEVlPUUpLmN1cnJlbnRPcmRpbmFsKCksTz1PYmplY3QuYXNzaWduKHt9LGllLFRlKSx6PWVlKHtpbnN0YW5jZTpJZSxwcm92aWRlZEZvcm1hdDpUZSxzdGF0ZTpFZX0pLG5lPWhlKEllLl92YWx1ZSksIiIuY29uY2F0KHopLmNvbmNhdChPLnNwYWNlU2VwYXJhdGVkPyIgIjoiIiku''@;'; + put 'put ''Y29uY2F0KG5lKTtkZWZhdWx0OnJldHVybiBlZSh7aW5zdGFuY2U6QWUscHJvdmlkZWRGb3JtYXQ6a2UsbnVtYnJvOlNlfSl9dmFyIHZ0LEF0LEJ0LG9uLF90LEllLFRlLEVlLGhlLE8seixuZSx0ZSx4LFAsVixTLEYseWUsQ2UsRGUsUGUsJGUsZ3Qsd3R9KEosc2Usb2UpO3JldHVybih2ZT1j''@;'; + put 'put ''ZSt2ZSkrZGV9ZnVuY3Rpb24gWShKLHNlLG9lKXt2YXIgY2U9c2VbMF0sZGU9TWF0aC5hYnMoSik7aWYob2U8PWRlKXtmb3IodmFyIHZlPTE7dmU8c2UubGVuZ3RoOysrdmUpe3ZhciBBZT1NYXRoLnBvdyhvZSx2ZSksa2U9TWF0aC5wb3cob2UsdmUrMSk7aWYoQWU8PWRlJiZkZTxrZSl7Y2U9''@;'; + put 'put ''c2VbdmVdLEovPUFlO2JyZWFrfX1jZT09PXNlWzBdJiYoSi89TWF0aC5wb3cob2Usc2UubGVuZ3RoLTEpLGNlPXNlW3NlLmxlbmd0aC0xXSl9cmV0dXJue3ZhbHVlOkosc3VmZml4OmNlfX1mdW5jdGlvbiBXKEope2Zvcih2YXIgc2U9IiIsb2U9MDtvZTxKO29lKyspc2UrPSIwIjtyZXR1cm4g''@;'; + put 'put ''c2V9ZnVuY3Rpb24gZWUoSil7dmFyIHNlPUouaW5zdGFuY2Usb2U9Si5wcm92aWRlZEZvcm1hdCxjZT1KLnN0YXRlLGRlPXZvaWQgMD09PWNlP0U6Y2UsdmU9Si5kZWNpbWFsU2VwYXJhdG9yLEFlPUouZGVmYXVsdHMsa2U9dm9pZCAwPT09QWU/ZGUuY3VycmVudERlZmF1bHRzKCk6QWUsU2U9''@;'; + put 'put ''c2UuX3ZhbHVlO2lmKDA9PT1TZSYmZGUuaGFzWmVyb0Zvcm1hdCgpKXJldHVybiBkZS5nZXRaZXJvRm9ybWF0KCk7aWYoIWlzRmluaXRlKFNlKSlyZXR1cm4gU2UudG9TdHJpbmcoKTt2YXIgSWUsVGUsRWUsaGUsTyxuZSx0ZSx4PU9iamVjdC5hc3NpZ24oe30saWUsa2Usb2UpLFA9eC50b3Rh''@;'; + put 'put ''bExlbmd0aCxWPVA/MDp4LmNoYXJhY3RlcmlzdGljLFQ9eC5vcHRpb25hbENoYXJhY3RlcmlzdGljLFM9eC5mb3JjZUF2ZXJhZ2UsRj0hIVB8fCEhU3x8eC5hdmVyYWdlLHllPVA/LTE6RiYmdm9pZCAwPT09b2UubWFudGlzc2E/MDp4Lm1hbnRpc3NhLENlPSFQJiYodm9pZCAwPT09b2Uub3B0''@;'; + put 'put ''aW9uYWxNYW50aXNzYT8tMT09PXllOngub3B0aW9uYWxNYW50aXNzYSksRGU9eC50cmltTWFudGlzc2EsUGU9eC50aG91c2FuZFNlcGFyYXRlZCxRZT14LnNwYWNlU2VwYXJhdGVkLCRlPXgubmVnYXRpdmUsZ3Q9eC5mb3JjZVNpZ24sd3Q9eC5leHBvbmVudGlhbCxtdD0iIjtpZihGKXt2YXIg''@;'; + put 'put ''dnQ9ZnVuY3Rpb24odHQpe3ZhciBldD10dC52YWx1ZSxhdD10dC5mb3JjZUF2ZXJhZ2UsTHQ9dHQuYWJicmV2aWF0aW9ucyxDdD10dC5zcGFjZVNlcGFyYXRlZCxmdD12b2lkIDAhPT1DdCYmQ3QsSHQ9dHQudG90YWxMZW5ndGgsR2U9dm9pZCAwPT09SHQ/MDpIdCxVZT0iIix5dD1NYXRoLmFi''@;'; + put 'put ''cyhldCksanQ9LTE7aWYoeXQ+PU1hdGgucG93KDEwLDEyKSYmIWF0fHwidHJpbGxpb24iPT09YXQ/KFVlPUx0LnRyaWxsaW9uLGV0Lz1NYXRoLnBvdygxMCwxMikpOnl0PE1hdGgucG93KDEwLDEyKSYmeXQ+PU1hdGgucG93KDEwLDkpJiYhYXR8fCJiaWxsaW9uIj09PWF0PyhVZT1MdC5iaWxs''@;'; + put 'put ''aW9uLGV0Lz1NYXRoLnBvdygxMCw5KSk6eXQ8TWF0aC5wb3coMTAsOSkmJnl0Pj1NYXRoLnBvdygxMCw2KSYmIWF0fHwibWlsbGlvbiI9PT1hdD8oVWU9THQubWlsbGlvbixldC89TWF0aC5wb3coMTAsNikpOih5dDxNYXRoLnBvdygxMCw2KSYmeXQ+PU1hdGgucG93KDEwLDMpJiYhYXR8fCJ0''@;'; + put 'put ''aG91c2FuZCI9PT1hdCkmJihVZT1MdC50aG91c2FuZCxldC89TWF0aC5wb3coMTAsMykpLFVlJiYoVWU9KGZ0PyIgIjoiIikrVWUpLEdlKXt2YXIgUXQ9ZXQudG9TdHJpbmcoKS5zcGxpdCgiLiIpWzBdO2p0PU1hdGgubWF4KEdlLVF0Lmxlbmd0aCwwKX1yZXR1cm57dmFsdWU6ZXQsYWJicmV2''@;'; + put 'put ''aWF0aW9uOlVlLG1hbnRpc3NhUHJlY2lzaW9uOmp0fX0oe3ZhbHVlOlNlLGZvcmNlQXZlcmFnZTpTLGFiYnJldmlhdGlvbnM6ZGUuY3VycmVudEFiYnJldmlhdGlvbnMoKSxzcGFjZVNlcGFyYXRlZDpRZSx0b3RhbExlbmd0aDpQfSk7U2U9dnQudmFsdWUsbXQrPXZ0LmFiYnJldmlhdGlvbixQ''@;'; + put 'put ''JiYoeWU9dnQubWFudGlzc2FQcmVjaXNpb24pfWlmKHd0KXt2YXIgQXQ9KFRlPShJZT17dmFsdWU6U2UsY2hhcmFjdGVyaXN0aWNQcmVjaXNpb246Vn0pLnZhbHVlLGhlPXZvaWQgMD09PShFZT1JZS5jaGFyYWN0ZXJpc3RpY1ByZWNpc2lvbik/MDpFZSxuZT0oTz1CKFRlLnRvRXhwb25lbnRp''@;'; + put 'put ''YWwoKS5zcGxpdCgiZSIpLDIpKVsxXSx0ZT0rT1swXSxoZSYmMTxoZSYmKHRlKj1NYXRoLnBvdygxMCxoZS0xKSxuZT0wPD0obmU9K25lLShoZS0xKSk/IisiLmNvbmNhdChuZSk6bmUpLHt2YWx1ZTp0ZSxhYmJyZXZpYXRpb246ImUiLmNvbmNhdChuZSl9KTtTZT1BdC52YWx1ZSxtdD1BdC5h''@;'; + put 'put ''YmJyZXZpYXRpb24rbXR9dmFyIGh0LEJ0LG9uLF90PWZ1bmN0aW9uKHR0LGV0LGF0LEx0LEN0KXtpZigtMT09PUx0KXJldHVybiB0dDt2YXIgZnQ9ZnVuY3Rpb24gTihKLHNlKXtyZXR1cm4tMSE9PUoudG9TdHJpbmcoKS5pbmRleE9mKCJlIik/ZnVuY3Rpb24ob2UsY2Upe3ZhciBkZT1vZS50''@;'; + put 'put ''b1N0cmluZygpLHZlPUIoZGUuc3BsaXQoImUiKSwyKSxrZT12ZVsxXSxTZT1CKHZlWzBdLnNwbGl0KCIuIiksMiksSWU9U2VbMF0sVGU9U2VbMV0sRWU9dm9pZCAwPT09VGU/IiI6VGU7aWYoMDwra2UpZGU9SWUrRWUrVyhrZS1FZS5sZW5ndGgpO2Vsc2V7dmFyIGhlPSIuIjtoZT0rSWU8MD8i''@;'; + put 'put ''LTAiLmNvbmNhdChoZSk6IjAiLmNvbmNhdChoZSk7dmFyIE89KFcoLWtlLTEpK01hdGguYWJzKEllKStFZSkuc3Vic3RyKDAsY2UpO08ubGVuZ3RoPGNlJiYoTys9VyhjZS1PLmxlbmd0aCkpLGRlPWhlK099cmV0dXJuIDA8K2tlJiYwPGNlJiYoZGUrPSIuIi5jb25jYXQoVyhjZSkpKSxkZX0o''@;'; + put 'put ''SixzZSk6KE1hdGgucm91bmQoKyIiLmNvbmNhdChKLCJlKyIpLmNvbmNhdChzZSkpL01hdGgucG93KDEwLHNlKSkudG9GaXhlZChzZSl9KGV0LEx0KSxIdD1CKGZ0LnRvU3RyaW5nKCkuc3BsaXQoIi4iKSwyKSxHZT1IdFswXSxVZT1IdFsxXSx5dD12b2lkIDA9PT1VZT8iIjpVZTtpZih5dC5t''@;'; + put 'put ''YXRjaCgvXjArJC8pJiYoYXR8fEN0KSlyZXR1cm4gR2U7dmFyIGp0PXl0Lm1hdGNoKC8wKyQvKTtyZXR1cm4gQ3QmJmp0PyIiLmNvbmNhdChHZSwiLiIpLmNvbmNhdCh5dC50b1N0cmluZygpLnNsaWNlKDAsanQuaW5kZXgpKTpmdC50b1N0cmluZygpfShTZS50b1N0cmluZygpLFNlLENlLHll''@;'; + put 'put ''LERlKTtyZXR1cm4gX3Q9ZnVuY3Rpb24odHQsZXQsYXQsTHQsQ3Qpe3ZhciBmdD1MdC5jdXJyZW50RGVsaW1pdGVycygpLEh0PWZ0LnRob3VzYW5kcztDdD1DdHx8ZnQuZGVjaW1hbDt2YXIgR2U9ZnQudGhvdXNhbmRzU2l6ZXx8MyxVZT10dC50b1N0cmluZygpLHl0PVVlLnNwbGl0KCIuIilb''@;'; + put 'put ''MF0sanQ9VWUuc3BsaXQoIi4iKVsxXTtyZXR1cm4gYXQmJihldDwwJiYoeXQ9eXQuc2xpY2UoMSkpLGZ1bmN0aW9uKFF0LGduKXtmb3IodmFyIGRuPVtdLHluPTAsbG49UXQ7MDxsbjtsbi0tKXluPT09Z24mJihkbi51bnNoaWZ0KGxuKSx5bj0wKSx5bisrO3JldHVybiBkbn0oeXQubGVuZ3Ro''@;'; + put 'put ''LEdlKS5mb3JFYWNoKGZ1bmN0aW9uKFF0LGduKXt5dD15dC5zbGljZSgwLFF0K2duKStIdCt5dC5zbGljZShRdCtnbil9KSxldDwwJiYoeXQ9Ii0iLmNvbmNhdCh5dCkpKSxqdD95dCtDdCtqdDp5dH0oX3Q9ZnVuY3Rpb24odHQsZXQsYXQsTHQpe3ZhciBDdD10dCxmdD1CKEN0LnRvU3RyaW5n''@;'; + put 'put ''KCkuc3BsaXQoIi4iKSwyKSxIdD1mdFswXSxHZT1mdFsxXTtpZihIdC5tYXRjaCgvXi0/MCQvKSYmYXQpcmV0dXJuIEdlPyIiLmNvbmNhdChIdC5yZXBsYWNlKCIwIiwiIiksIi4iKS5jb25jYXQoR2UpOkh0LnJlcGxhY2UoIjAiLCIiKTtpZihIdC5sZW5ndGg8THQpZm9yKHZhciBVZT1MdC1I''@;'; + put 'put ''dC5sZW5ndGgseXQ9MDt5dDxVZTt5dCsrKUN0PSIwIi5jb25jYXQoQ3QpO3JldHVybiBDdC50b1N0cmluZygpfShfdCwwLFQsViksU2UsUGUsZGUsdmUpLChGfHx3dCkmJihfdCs9bXQpLChndHx8U2U8MCkmJihodD1fdCxvbj0kZSxfdD0wPT09KEJ0PVNlKT9odDowPT0raHQ/aHQucmVwbGFj''@;'; + put 'put ''ZSgiLSIsIiIpOjA8QnQ/IisiLmNvbmNhdChodCk6InNpZ24iPT09b24/aHQ6IigiLmNvbmNhdChodC5yZXBsYWNlKCItIiwiIiksIikiKSksX3R9ZnVuY3Rpb24gcShKLHNlKXtpZighSilyZXR1cm4gc2U7dmFyIG9lPU9iamVjdC5rZXlzKEopO3JldHVybiAxPT09b2UubGVuZ3RoJiYib3V0''@;'; + put 'put ''cHV0Ij09PW9lWzBdP3NlOkp9TC5leHBvcnRzPWZ1bmN0aW9uKEope3JldHVybntmb3JtYXQ6ZnVuY3Rpb24oKXtmb3IodmFyIHNlPWFyZ3VtZW50cy5sZW5ndGgsb2U9bmV3IEFycmF5KHNlKSxjZT0wO2NlPHNlO2NlKyspb2VbY2VdPWFyZ3VtZW50c1tjZV07cmV0dXJuIGFlLmFwcGx5KHZv''@;'; + put 'put ''aWQgMCxvZS5jb25jYXQoW0pdKSl9LGdldEJ5dGVVbml0OmZ1bmN0aW9uKCl7Zm9yKHZhciBzZT1hcmd1bWVudHMubGVuZ3RoLG9lPW5ldyBBcnJheShzZSksY2U9MDtjZTxzZTtjZSsrKW9lW2NlXT1hcmd1bWVudHNbY2VdO3JldHVybiBmdW5jdGlvbihkZSl7dmFyIHZlPVouZ2VuZXJhbDty''@;'; + put 'put ''ZXR1cm4gWShkZS5fdmFsdWUsdmUuc3VmZml4ZXMsdmUuc2NhbGUpLnN1ZmZpeH0uYXBwbHkodm9pZCAwLG9lLmNvbmNhdChbSl0pKX0sZ2V0QmluYXJ5Qnl0ZVVuaXQ6ZnVuY3Rpb24oKXtmb3IodmFyIHNlPWFyZ3VtZW50cy5sZW5ndGgsb2U9bmV3IEFycmF5KHNlKSxjZT0wO2NlPHNlO2Nl''@;'; + put 'put ''Kyspb2VbY2VdPWFyZ3VtZW50c1tjZV07cmV0dXJuIGZ1bmN0aW9uKGRlKXt2YXIgdmU9Wi5iaW5hcnk7cmV0dXJuIFkoZGUuX3ZhbHVlLHZlLnN1ZmZpeGVzLHZlLnNjYWxlKS5zdWZmaXh9LmFwcGx5KHZvaWQgMCxvZS5jb25jYXQoW0pdKSl9LGdldERlY2ltYWxCeXRlVW5pdDpmdW5jdGlv''@;'; + put 'put ''bigpe2Zvcih2YXIgc2U9YXJndW1lbnRzLmxlbmd0aCxvZT1uZXcgQXJyYXkoc2UpLGNlPTA7Y2U8c2U7Y2UrKylvZVtjZV09YXJndW1lbnRzW2NlXTtyZXR1cm4gZnVuY3Rpb24oZGUpe3ZhciB2ZT1aLmRlY2ltYWw7cmV0dXJuIFkoZGUuX3ZhbHVlLHZlLnN1ZmZpeGVzLHZlLnNjYWxlKS5z''@;'; + put 'put ''dWZmaXh9LmFwcGx5KHZvaWQgMCxvZS5jb25jYXQoW0pdKSl9LGZvcm1hdE9yRGVmYXVsdDpxfX19LHsiLi9nbG9iYWxTdGF0ZSI6NCwiLi9wYXJzaW5nIjo4LCIuL3ZhbGlkYXRpbmciOjEwfV0sNDpbZnVuY3Rpb24oSmUsTCxtZSl7InVzZSBzdHJpY3QiO3ZhciBCPUplKCIuL2VuLVVTIiks''@;'; + put 'put ''RT1KZSgiLi92YWxpZGF0aW5nIiksTWU9SmUoIi4vcGFyc2luZyIpLFU9e30sUT12b2lkIDAsWj17fSxpZT1udWxsLGFlPXt9O2Z1bmN0aW9uIFkoTil7UT1OfWZ1bmN0aW9uIFcoKXtyZXR1cm4gWltRXX1VLmxhbmd1YWdlcz1mdW5jdGlvbigpe3JldHVybiBPYmplY3QuYXNzaWduKHt9LFop''@;'; + put 'put ''fSxVLmN1cnJlbnRMYW5ndWFnZT1mdW5jdGlvbigpe3JldHVybiBRfSxVLmN1cnJlbnRDdXJyZW5jeT1mdW5jdGlvbigpe3JldHVybiBXKCkuY3VycmVuY3l9LFUuY3VycmVudEFiYnJldmlhdGlvbnM9ZnVuY3Rpb24oKXtyZXR1cm4gVygpLmFiYnJldmlhdGlvbnN9LFUuY3VycmVudERlbGlt''@;'; + put 'put ''aXRlcnM9ZnVuY3Rpb24oKXtyZXR1cm4gVygpLmRlbGltaXRlcnN9LFUuY3VycmVudE9yZGluYWw9ZnVuY3Rpb24oKXtyZXR1cm4gVygpLm9yZGluYWx9LFUuY3VycmVudERlZmF1bHRzPWZ1bmN0aW9uKCl7cmV0dXJuIE9iamVjdC5hc3NpZ24oe30sVygpLmRlZmF1bHRzLGFlKX0sVS5jdXJy''@;'; + put 'put ''ZW50T3JkaW5hbERlZmF1bHRGb3JtYXQ9ZnVuY3Rpb24oKXtyZXR1cm4gT2JqZWN0LmFzc2lnbih7fSxVLmN1cnJlbnREZWZhdWx0cygpLFcoKS5vcmRpbmFsRm9ybWF0KX0sVS5jdXJyZW50Qnl0ZURlZmF1bHRGb3JtYXQ9ZnVuY3Rpb24oKXtyZXR1cm4gT2JqZWN0LmFzc2lnbih7fSxVLmN1''@;'; + put 'put ''cnJlbnREZWZhdWx0cygpLFcoKS5ieXRlRm9ybWF0KX0sVS5jdXJyZW50UGVyY2VudGFnZURlZmF1bHRGb3JtYXQ9ZnVuY3Rpb24oKXtyZXR1cm4gT2JqZWN0LmFzc2lnbih7fSxVLmN1cnJlbnREZWZhdWx0cygpLFcoKS5wZXJjZW50YWdlRm9ybWF0KX0sVS5jdXJyZW50Q3VycmVuY3lEZWZh''@;'; + put 'put ''dWx0Rm9ybWF0PWZ1bmN0aW9uKCl7cmV0dXJuIE9iamVjdC5hc3NpZ24oe30sVS5jdXJyZW50RGVmYXVsdHMoKSxXKCkuY3VycmVuY3lGb3JtYXQpfSxVLmN1cnJlbnRUaW1lRGVmYXVsdEZvcm1hdD1mdW5jdGlvbigpe3JldHVybiBPYmplY3QuYXNzaWduKHt9LFUuY3VycmVudERlZmF1bHRz''@;'; + put 'put ''KCksVygpLnRpbWVGb3JtYXQpfSxVLnNldERlZmF1bHRzPWZ1bmN0aW9uKE4pe049TWUucGFyc2VGb3JtYXQoTiksRS52YWxpZGF0ZUZvcm1hdChOKSYmKGFlPU4pfSxVLmdldFplcm9Gb3JtYXQ9ZnVuY3Rpb24oKXtyZXR1cm4gaWV9LFUuc2V0WmVyb0Zvcm1hdD1mdW5jdGlvbihOKXtyZXR1''@;'; + put 'put ''cm4gaWU9InN0cmluZyI9PXR5cGVvZiBOP046bnVsbH0sVS5oYXNaZXJvRm9ybWF0PWZ1bmN0aW9uKCl7cmV0dXJuIG51bGwhPT1pZX0sVS5sYW5ndWFnZURhdGE9ZnVuY3Rpb24oTil7aWYoTil7aWYoWltOXSlyZXR1cm4gWltOXTt0aHJvdyBuZXcgRXJyb3IoJ1Vua25vd24gdGFnICInLmNv''@;'; + put 'put ''bmNhdChOLCciJykpfXJldHVybiBXKCl9LFUucmVnaXN0ZXJMYW5ndWFnZT1mdW5jdGlvbihOKXt2YXIgZWU9MTxhcmd1bWVudHMubGVuZ3RoJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0mJmFyZ3VtZW50c1sxXTtpZighRS52YWxpZGF0ZUxhbmd1YWdlKE4pKXRocm93IG5ldyBFcnJvcigiSW52''@;'; + put 'put ''YWxpZCBsYW5ndWFnZSBkYXRhIik7WltOLmxhbmd1YWdlVGFnXT1OLGVlJiZZKE4ubGFuZ3VhZ2VUYWcpfSxVLnNldExhbmd1YWdlPWZ1bmN0aW9uKE4pe3ZhciBlZT0xPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06Qi5sYW5ndWFnZVRhZztp''@;'; + put 'put ''ZighWltOXSl7dmFyIHE9Ti5zcGxpdCgiLSIpWzBdLEo9T2JqZWN0LmtleXMoWikuZmluZChmdW5jdGlvbihzZSl7cmV0dXJuIHNlLnNwbGl0KCItIilbMF09PT1xfSk7cmV0dXJuIFpbSl0/dm9pZCBZKEopOnZvaWQgWShlZSl9WShOKX0sVS5yZWdpc3Rlckxhbmd1YWdlKEIpLFE9Qi5sYW5n''@;'; + put 'put ''dWFnZVRhZyxMLmV4cG9ydHM9VX0seyIuL2VuLVVTIjoyLCIuL3BhcnNpbmciOjgsIi4vdmFsaWRhdGluZyI6MTB9XSw1OltmdW5jdGlvbihKZSxMLG1lKXsidXNlIHN0cmljdCI7TC5leHBvcnRzPWZ1bmN0aW9uKEIpe3JldHVybntsb2FkTGFuZ3VhZ2VzSW5Ob2RlOmZ1bmN0aW9uKEUpe3Jl''@;'; + put 'put ''dHVybiBNZT1CLHZvaWQgRS5mb3JFYWNoKGZ1bmN0aW9uKFUpe3ZhciBRPXZvaWQgMDt0cnl7UT1KZSgiLi4vbGFuZ3VhZ2VzLyIuY29uY2F0KFUpKX1jYXRjaChaKXtjb25zb2xlLmVycm9yKCdVbmFibGUgdG8gbG9hZCAiJy5jb25jYXQoVSwnIi4gTm8gbWF0Y2hpbmcgbGFuZ3VhZ2UgZmls''@;'; + put 'put ''ZSBmb3VuZC4nKSl9USYmTWUucmVnaXN0ZXJMYW5ndWFnZShRKX0pO3ZhciBNZX19fX0se31dLDY6W2Z1bmN0aW9uKEplLEwsbWUpeyJ1c2Ugc3RyaWN0Ijt2YXIgQj1KZSgiYmlnbnVtYmVyLmpzIik7ZnVuY3Rpb24gRShNZSxVLFEpe3ZhciBaPW5ldyBCKE1lLl92YWx1ZSksaWU9VTtyZXR1''@;'; + put 'put ''cm4gUS5pc051bWJybyhVKSYmKGllPVUuX3ZhbHVlKSxpZT1uZXcgQihpZSksTWUuX3ZhbHVlPVoubWludXMoaWUpLnRvTnVtYmVyKCksTWV9TC5leHBvcnRzPWZ1bmN0aW9uKE1lKXtyZXR1cm57YWRkOmZ1bmN0aW9uKFUsUSl7cmV0dXJuIGllPVEsYWU9TWUsWT1uZXcgQigoWj1VKS5fdmFs''@;'; + put 'put ''dWUpLFc9aWUsYWUuaXNOdW1icm8oaWUpJiYoVz1pZS5fdmFsdWUpLFc9bmV3IEIoVyksWi5fdmFsdWU9WS5wbHVzKFcpLnRvTnVtYmVyKCksWjt2YXIgWixpZSxhZSxZLFd9LHN1YnRyYWN0OmZ1bmN0aW9uKFUsUSl7cmV0dXJuIEUoVSxRLE1lKX0sbXVsdGlwbHk6ZnVuY3Rpb24oVSxRKXty''@;'; + put 'put ''ZXR1cm4gaWU9USxhZT1NZSxZPW5ldyBCKChaPVUpLl92YWx1ZSksVz1pZSxhZS5pc051bWJybyhpZSkmJihXPWllLl92YWx1ZSksVz1uZXcgQihXKSxaLl92YWx1ZT1ZLnRpbWVzKFcpLnRvTnVtYmVyKCksWjt2YXIgWixpZSxhZSxZLFd9LGRpdmlkZTpmdW5jdGlvbihVLFEpe3JldHVybiBp''@;'; + put 'put ''ZT1RLGFlPU1lLFk9bmV3IEIoKFo9VSkuX3ZhbHVlKSxXPWllLGFlLmlzTnVtYnJvKGllKSYmKFc9aWUuX3ZhbHVlKSxXPW5ldyBCKFcpLFouX3ZhbHVlPVkuZGl2aWRlZEJ5KFcpLnRvTnVtYmVyKCksWjt2YXIgWixpZSxhZSxZLFd9LHNldDpmdW5jdGlvbihVLFEpe3JldHVybiBaPVUsYWU9''@;'; + put 'put ''aWU9USxNZS5pc051bWJybyhpZSkmJihhZT1pZS5fdmFsdWUpLFouX3ZhbHVlPWFlLFo7dmFyIFosaWUsYWV9LGRpZmZlcmVuY2U6ZnVuY3Rpb24oVSxRKXtyZXR1cm4gWj1RLEUoYWU9KGllPU1lKShVLl92YWx1ZSksWixpZSksTWF0aC5hYnMoYWUuX3ZhbHVlKTt2YXIgWixpZSxhZX19fX0s''@;'; + put 'put ''eyJiaWdudW1iZXIuanMiOjF9XSw3OltmdW5jdGlvbihKZSxMLG1lKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gQihlZSxxKXtmb3IodmFyIEo9MDtKPHEubGVuZ3RoO0orKyl7dmFyIHNlPXFbSl07c2UuZW51bWVyYWJsZT1zZS5lbnVtZXJhYmxlfHwhMSxzZS5jb25maWd1cmFibGU9ITAsInZh''@;'; + put 'put ''bHVlImluIHNlJiYoc2Uud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlZSxzZS5rZXksc2UpfX12YXIgRT1KZSgiLi9nbG9iYWxTdGF0ZSIpLE1lPUplKCIuL3ZhbGlkYXRpbmciKSxVPUplKCIuL2xvYWRpbmciKShOKSxRPUplKCIuL3VuZm9ybWF0dGluZyIpLFo9SmUoIi4v''@;'; + put 'put ''Zm9ybWF0dGluZyIpKE4pLGllPUplKCIuL21hbmlwdWxhdGluZyIpKE4pLGFlPUplKCIuL3BhcnNpbmciKSxZPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZWUob2UpeyhmdW5jdGlvbihjZSxkZSl7aWYoIShjZSBpbnN0YW5jZW9mIGRlKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBh''@;'; + put 'put ''IGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0pKHRoaXMsZWUpLHRoaXMuX3ZhbHVlPW9lfXZhciBxLEo7cmV0dXJuIHE9ZWUsKEo9W3trZXk6ImNsb25lIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBOKHRoaXMuX3ZhbHVlKX19LHtrZXk6ImZvcm1hdCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4g''@;'; + put 'put ''Wi5mb3JtYXQodGhpcywwPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06e30pfX0se2tleToiZm9ybWF0Q3VycmVuY3kiLHZhbHVlOmZ1bmN0aW9uKG9lKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIG9lJiYob2U9YWUucGFyc2VGb3JtYXQob2Up''@;'; + put 'put ''KSwob2U9Wi5mb3JtYXRPckRlZmF1bHQob2UsRS5jdXJyZW50Q3VycmVuY3lEZWZhdWx0Rm9ybWF0KCkpKS5vdXRwdXQ9ImN1cnJlbmN5IixaLmZvcm1hdCh0aGlzLG9lKX19LHtrZXk6ImZvcm1hdFRpbWUiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIG9lPTA8YXJndW1lbnRzLmxlbmd0aCYmdm9p''@;'; + put 'put ''ZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp7fTtyZXR1cm4gb2Uub3V0cHV0PSJ0aW1lIixaLmZvcm1hdCh0aGlzLG9lKX19LHtrZXk6ImJpbmFyeUJ5dGVVbml0cyIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gWi5nZXRCaW5hcnlCeXRlVW5pdCh0aGlzKX19LHtrZXk6ImRlY2lt''@;'; + put 'put ''YWxCeXRlVW5pdHMiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIFouZ2V0RGVjaW1hbEJ5dGVVbml0KHRoaXMpfX0se2tleToiYnl0ZVVuaXRzIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBaLmdldEJ5dGVVbml0KHRoaXMpfX0se2tleToiZGlmZmVyZW5jZSIsdmFsdWU6ZnVuY3Rpb24ob2Up''@;'; + put 'put ''e3JldHVybiBpZS5kaWZmZXJlbmNlKHRoaXMsb2UpfX0se2tleToiYWRkIix2YWx1ZTpmdW5jdGlvbihvZSl7cmV0dXJuIGllLmFkZCh0aGlzLG9lKX19LHtrZXk6InN1YnRyYWN0Iix2YWx1ZTpmdW5jdGlvbihvZSl7cmV0dXJuIGllLnN1YnRyYWN0KHRoaXMsb2UpfX0se2tleToibXVsdGlw''@;'; + put 'put ''bHkiLHZhbHVlOmZ1bmN0aW9uKG9lKXtyZXR1cm4gaWUubXVsdGlwbHkodGhpcyxvZSl9fSx7a2V5OiJkaXZpZGUiLHZhbHVlOmZ1bmN0aW9uKG9lKXtyZXR1cm4gaWUuZGl2aWRlKHRoaXMsb2UpfX0se2tleToic2V0Iix2YWx1ZTpmdW5jdGlvbihvZSl7cmV0dXJuIGllLnNldCh0aGlzLFco''@;'; + put 'put ''b2UpKX19LHtrZXk6InZhbHVlIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLl92YWx1ZX19LHtrZXk6InZhbHVlT2YiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3ZhbHVlfX1dKSYmQihxLnByb3RvdHlwZSxKKSxlZX0oKTtmdW5jdGlvbiBXKGVlKXt2YXIgcT1lZTtyZXR1''@;'; + put 'put ''cm4gTi5pc051bWJybyhlZSk/cT1lZS5fdmFsdWU6InN0cmluZyI9PXR5cGVvZiBlZT9xPU4udW5mb3JtYXQoZWUpOmlzTmFOKGVlKSYmKHE9TmFOKSxxfWZ1bmN0aW9uIE4oZWUpe3JldHVybiBuZXcgWShXKGVlKSl9Ti52ZXJzaW9uPSIyLjEuMiIsTi5pc051bWJybz1mdW5jdGlvbihlZSl7''@;'; + put 'put ''cmV0dXJuIGVlIGluc3RhbmNlb2YgWX0sTi5sYW5ndWFnZT1FLmN1cnJlbnRMYW5ndWFnZSxOLnJlZ2lzdGVyTGFuZ3VhZ2U9RS5yZWdpc3Rlckxhbmd1YWdlLE4uc2V0TGFuZ3VhZ2U9RS5zZXRMYW5ndWFnZSxOLmxhbmd1YWdlcz1FLmxhbmd1YWdlcyxOLmxhbmd1YWdlRGF0YT1FLmxhbmd1''@;'; + put 'put ''YWdlRGF0YSxOLnplcm9Gb3JtYXQ9RS5zZXRaZXJvRm9ybWF0LE4uZGVmYXVsdEZvcm1hdD1FLmN1cnJlbnREZWZhdWx0cyxOLnNldERlZmF1bHRzPUUuc2V0RGVmYXVsdHMsTi5kZWZhdWx0Q3VycmVuY3lGb3JtYXQ9RS5jdXJyZW50Q3VycmVuY3lEZWZhdWx0Rm9ybWF0LE4udmFsaWRhdGU9''@;'; + put 'put ''TWUudmFsaWRhdGUsTi5sb2FkTGFuZ3VhZ2VzSW5Ob2RlPVUubG9hZExhbmd1YWdlc0luTm9kZSxOLnVuZm9ybWF0PVEudW5mb3JtYXQsTC5leHBvcnRzPU59LHsiLi9mb3JtYXR0aW5nIjozLCIuL2dsb2JhbFN0YXRlIjo0LCIuL2xvYWRpbmciOjUsIi4vbWFuaXB1bGF0aW5nIjo2LCIuL3Bh''@;'; + put 'put ''cnNpbmciOjgsIi4vdW5mb3JtYXR0aW5nIjo5LCIuL3ZhbGlkYXRpbmciOjEwfV0sODpbZnVuY3Rpb24oSmUsTCxtZSl7InVzZSBzdHJpY3QiO0wuZXhwb3J0cz17cGFyc2VGb3JtYXQ6ZnVuY3Rpb24oQil7dmFyIEUsTWUsVSxRLFosaWUsYWUsWSxXLE4sZWUscSxKLHNlLG9lLGNlLGRlLHZl''@;'; + put 'put ''LEFlLGtlLFNlPTE8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp7fTtyZXR1cm4ic3RyaW5nIiE9dHlwZW9mIEI/QjooTWU9U2UsWj1TZSxmdW5jdGlvbihJZSxUZSl7aWYoLTE9PT1JZS5pbmRleE9mKCIkIikpe2lmKC0xPT09SWUuaW5kZXhP''@;'; + put 'put ''ZigiJSIpKXJldHVybi0xIT09SWUuaW5kZXhPZigiYmQiKT8oVGUub3V0cHV0PSJieXRlIixUZS5iYXNlPSJnZW5lcmFsIik6LTEhPT1JZS5pbmRleE9mKCJiIik/KFRlLm91dHB1dD0iYnl0ZSIsVGUuYmFzZT0iYmluYXJ5Iik6LTEhPT1JZS5pbmRleE9mKCJkIik/KFRlLm91dHB1dD0iYnl0''@;'; + put 'put ''ZSIsVGUuYmFzZT0iZGVjaW1hbCIpOi0xPT09SWUuaW5kZXhPZigiOiIpPy0xIT09SWUuaW5kZXhPZigibyIpJiYoVGUub3V0cHV0PSJvcmRpbmFsIik6VGUub3V0cHV0PSJ0aW1lIjtUZS5vdXRwdXQ9InBlcmNlbnQifWVsc2UgVGUub3V0cHV0PSJjdXJyZW5jeSJ9KEI9KGllPShRPUI9KFU9''@;'; + put 'put ''KEU9QikubWF0Y2goL157KFtefV0qKX0vKSk/KE1lLnByZWZpeD1VWzFdLEUuc2xpY2UoVVswXS5sZW5ndGgpKTpFKS5tYXRjaCgveyhbXn1dKil9JC8pKT8oWi5wb3N0Zml4PWllWzFdLFEuc2xpY2UoMCwtaWVbMF0ubGVuZ3RoKSk6USxTZSksYWU9U2UsKFk9Qi5tYXRjaCgvWzEtOV0rWzAt''@;'; + put 'put ''OV0qLykpJiYoYWUudG90YWxMZW5ndGg9K1lbMF0pLFc9U2UsKE49Qi5zcGxpdCgiLiIpWzBdLm1hdGNoKC8wKy8pKSYmKFcuY2hhcmFjdGVyaXN0aWM9TlswXS5sZW5ndGgpLGZ1bmN0aW9uKEllLFRlKXtpZigtMSE9PUllLmluZGV4T2YoIi4iKSl7dmFyIEVlPUllLnNwbGl0KCIuIilbMF07''@;'; + put 'put ''VGUub3B0aW9uYWxDaGFyYWN0ZXJpc3RpYz0tMT09PUVlLmluZGV4T2YoIjAiKX19KEIsU2UpLGVlPVNlLC0xIT09Qi5pbmRleE9mKCJhIikmJihlZS5hdmVyYWdlPSEwKSxKPVNlLC0xIT09KHE9QikuaW5kZXhPZigiSyIpP0ouZm9yY2VBdmVyYWdlPSJ0aG91c2FuZCI6LTEhPT1xLmluZGV4''@;'; + put 'put ''T2YoIk0iKT9KLmZvcmNlQXZlcmFnZT0ibWlsbGlvbiI6LTEhPT1xLmluZGV4T2YoIkIiKT9KLmZvcmNlQXZlcmFnZT0iYmlsbGlvbiI6LTEhPT1xLmluZGV4T2YoIlQiKSYmKEouZm9yY2VBdmVyYWdlPSJ0cmlsbGlvbiIpLGZ1bmN0aW9uKEllLFRlKXt2YXIgRWU9SWUuc3BsaXQoIi4iKVsx''@;'; + put 'put ''XTtpZihFZSl7dmFyIGhlPUVlLm1hdGNoKC8wKy8pO2hlJiYoVGUubWFudGlzc2E9aGVbMF0ubGVuZ3RoKX19KEIsU2UpLG9lPVNlLChzZT1CKS5tYXRjaCgvXFtcLl0vKT9vZS5vcHRpb25hbE1hbnRpc3NhPSEwOnNlLm1hdGNoKC9cLi8pJiYob2Uub3B0aW9uYWxNYW50aXNzYT0hMSksY2U9''@;'; + put 'put ''U2UsLTEhPT1CLmluZGV4T2YoIiwiKSYmKGNlLnRob3VzYW5kU2VwYXJhdGVkPSEwKSxkZT1TZSwtMSE9PUIuaW5kZXhPZigiICIpJiYoZGUuc3BhY2VTZXBhcmF0ZWQ9ITApLEFlPVNlLCh2ZT1CKS5tYXRjaCgvXlwrP1woW14pXSpcKSQvKSYmKEFlLm5lZ2F0aXZlPSJwYXJlbnRoZXNpcyIp''@;'; + put 'put ''LHZlLm1hdGNoKC9eXCs/LS8pJiYoQWUubmVnYXRpdmU9InNpZ24iKSxrZT1TZSxCLm1hdGNoKC9eXCsvKSYmKGtlLmZvcmNlU2lnbj0hMCksU2UpfX19LHt9XSw5OltmdW5jdGlvbihKZSxMLG1lKXsidXNlIHN0cmljdCI7dmFyIEI9W3trZXk6IlppQiIsZmFjdG9yOk1hdGgucG93KDEwMjQs''@;'; + put 'put ''Nyl9LHtrZXk6IlpCIixmYWN0b3I6TWF0aC5wb3coMWUzLDcpfSx7a2V5OiJZaUIiLGZhY3RvcjpNYXRoLnBvdygxMDI0LDgpfSx7a2V5OiJZQiIsZmFjdG9yOk1hdGgucG93KDFlMyw4KX0se2tleToiVGlCIixmYWN0b3I6TWF0aC5wb3coMTAyNCw0KX0se2tleToiVEIiLGZhY3RvcjpNYXRo''@;'; + put 'put ''LnBvdygxZTMsNCl9LHtrZXk6IlBpQiIsZmFjdG9yOk1hdGgucG93KDEwMjQsNSl9LHtrZXk6IlBCIixmYWN0b3I6TWF0aC5wb3coMWUzLDUpfSx7a2V5OiJNaUIiLGZhY3RvcjpNYXRoLnBvdygxMDI0LDIpfSx7a2V5OiJNQiIsZmFjdG9yOk1hdGgucG93KDFlMywyKX0se2tleToiS2lCIixm''@;'; + put 'put ''YWN0b3I6TWF0aC5wb3coMTAyNCwxKX0se2tleToiS0IiLGZhY3RvcjpNYXRoLnBvdygxZTMsMSl9LHtrZXk6IkdpQiIsZmFjdG9yOk1hdGgucG93KDEwMjQsMyl9LHtrZXk6IkdCIixmYWN0b3I6TWF0aC5wb3coMWUzLDMpfSx7a2V5OiJFaUIiLGZhY3RvcjpNYXRoLnBvdygxMDI0LDYpfSx7''@;'; + put 'put ''a2V5OiJFQiIsZmFjdG9yOk1hdGgucG93KDFlMyw2KX0se2tleToiQiIsZmFjdG9yOjF9XTtmdW5jdGlvbiBFKFUpe3JldHVybiBVLnJlcGxhY2UoL1stL1xcXiQqKz8uKCl8W1xde31dL2csIlxcJCYiKX1MLmV4cG9ydHM9e3VuZm9ybWF0OmZ1bmN0aW9uKFUsUSl7dmFyIFosWT1KZSgiLi9n''@;'; + put 'put ''bG9iYWxTdGF0ZSIpLFc9WS5jdXJyZW50RGVsaW1pdGVycygpLE49WS5jdXJyZW50Q3VycmVuY3koKS5zeW1ib2wsZWU9WS5jdXJyZW50T3JkaW5hbCgpLHE9WS5nZXRaZXJvRm9ybWF0KCksSj1ZLmN1cnJlbnRBYmJyZXZpYXRpb25zKCksc2U9dm9pZCAwO2lmKCJzdHJpbmciPT10eXBlb2Yg''@;'; + put 'put ''VSlzZT1mdW5jdGlvbihvZSxjZSl7aWYoIW9lLmluZGV4T2YoIjoiKXx8IjoiPT09Y2UudGhvdXNhbmRzKXJldHVybiExO3ZhciBkZT1vZS5zcGxpdCgiOiIpO2lmKDMhPT1kZS5sZW5ndGgpcmV0dXJuITE7dmFyIEFlPStkZVsxXSxrZT0rZGVbMl07cmV0dXJuIWlzTmFOKCtkZVswXSkmJiFp''@;'; + put 'put ''c05hTihBZSkmJiFpc05hTihrZSl9KFUsVyk/KyhaPVUuc3BsaXQoIjoiKSlbMl0rNjAqK1pbMV0rMzYwMCorWlswXTpmdW5jdGlvbiBNZShVLFEpe3ZhciBaPTI8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXToiIixpZT0zPGFyZ3VtZW50cy5s''@;'; + put 'put ''ZW5ndGg/YXJndW1lbnRzWzNdOnZvaWQgMCxhZT00PGFyZ3VtZW50cy5sZW5ndGg/YXJndW1lbnRzWzRdOnZvaWQgMCxZPTU8YXJndW1lbnRzLmxlbmd0aD9hcmd1bWVudHNbNV06dm9pZCAwLFc9Njxhcmd1bWVudHMubGVuZ3RoP2FyZ3VtZW50c1s2XTp2b2lkIDA7aWYoIiIhPT1VKXJldHVy''@;'; + put 'put ''biBVPT09YWU/MDpmdW5jdGlvbiBOKGVlLHEpe3ZhciBKPTI8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXToiIixzZT0zPGFyZ3VtZW50cy5sZW5ndGg/YXJndW1lbnRzWzNdOnZvaWQgMCxvZT00PGFyZ3VtZW50cy5sZW5ndGg/YXJndW1lbnRz''@;'; + put 'put ''WzRdOnZvaWQgMCxjZT01PGFyZ3VtZW50cy5sZW5ndGg/YXJndW1lbnRzWzVdOnZvaWQgMCxkZT02PGFyZ3VtZW50cy5sZW5ndGg/YXJndW1lbnRzWzZdOnZvaWQgMDtpZighaXNOYU4oK2VlKSlyZXR1cm4rZWU7dmFyIHZlPSIiLEFlPWVlLnJlcGxhY2UoLyheW14oXSopXCgoLiopXCkoW14p''@;'; + put 'put ''XSokKS8sIiQxJDIkMyIpO2lmKEFlIT09ZWUpcmV0dXJuLTEqTihBZSxxLEosc2Usb2UsY2UsZGUpO2Zvcih2YXIga2U9MDtrZTxCLmxlbmd0aDtrZSsrKXt2YXIgU2U9QltrZV07aWYoKHZlPWVlLnJlcGxhY2UoU2Uua2V5LCIiKSkhPT1lZSlyZXR1cm4gTih2ZSxxLEosc2Usb2UsY2UsZGUp''@;'; + put 'put ''KlNlLmZhY3Rvcn1pZigodmU9ZWUucmVwbGFjZSgiJSIsIiIpKSE9PWVlKXJldHVybiBOKHZlLHEsSixzZSxvZSxjZSxkZSkvMTAwO3ZhciBJZT1wYXJzZUZsb2F0KGVlKTtpZighaXNOYU4oSWUpKXt2YXIgVGU9c2UoSWUpO2lmKFRlJiYiLiIhPT1UZSYmKHZlPWVlLnJlcGxhY2UobmV3IFJl''@;'; + put 'put ''Z0V4cCgiIi5jb25jYXQoRShUZSksIiQiKSksIiIpKSE9PWVlKXJldHVybiBOKHZlLHEsSixzZSxvZSxjZSxkZSk7dmFyIEVlPXt9O09iamVjdC5rZXlzKGNlKS5mb3JFYWNoKGZ1bmN0aW9uKFApe0VlW2NlW1BdXT1QfSk7Zm9yKHZhciBoZT1PYmplY3Qua2V5cyhFZSkuc29ydCgpLnJldmVy''@;'; + put 'put ''c2UoKSxPPWhlLmxlbmd0aCx6PTA7ejxPO3orKyl7dmFyIG5lPWhlW3pdLHRlPUVlW25lXTtpZigodmU9ZWUucmVwbGFjZShuZSwiIikpIT09ZWUpe3ZhciB4PXZvaWQgMDtzd2l0Y2godGUpe2Nhc2UidGhvdXNhbmQiOng9TWF0aC5wb3coMTAsMyk7YnJlYWs7Y2FzZSJtaWxsaW9uIjp4PU1h''@;'; + put 'put ''dGgucG93KDEwLDYpO2JyZWFrO2Nhc2UiYmlsbGlvbiI6eD1NYXRoLnBvdygxMCw5KTticmVhaztjYXNlInRyaWxsaW9uIjp4PU1hdGgucG93KDEwLDEyKX1yZXR1cm4gTih2ZSxxLEosc2Usb2UsY2UsZGUpKnh9fX19KGZ1bmN0aW9uKE4sZWUpe3ZhciBKPU4ucmVwbGFjZSgyPGFyZ3VtZW50''@;'; + put 'put ''cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06IiIsIiIpO3JldHVybihKPUoucmVwbGFjZShuZXcgUmVnRXhwKCIoWzAtOV0pIi5jb25jYXQoRShlZS50aG91c2FuZHMpLCIoWzAtOV0pIiksImciKSwiJDEkMiIpKS5yZXBsYWNlKGVlLmRlY2ltYWwsIi4iKX0o''@;'; + put 'put ''VSxRLFopLFEsWixpZSxhZSxZLFcpfShVLFcsTixlZSxxLEosUSk7ZWxzZXtpZigibnVtYmVyIiE9dHlwZW9mIFUpcmV0dXJuO3NlPVV9aWYodm9pZCAwIT09c2UpcmV0dXJuIHNlfX19LHsiLi9nbG9iYWxTdGF0ZSI6NH1dLDEwOltmdW5jdGlvbihKZSxMLG1lKXsidXNlIHN0cmljdCI7ZnVu''@;'; + put 'put ''Y3Rpb24gQihXKXtyZXR1cm4gZnVuY3Rpb24oTil7aWYoQXJyYXkuaXNBcnJheShOKSl7Zm9yKHZhciBlZT0wLHE9bmV3IEFycmF5KE4ubGVuZ3RoKTtlZTxOLmxlbmd0aDtlZSsrKXFbZWVdPU5bZWVdO3JldHVybiBxfX0oVyl8fGZ1bmN0aW9uKE4pe2lmKFN5bWJvbC5pdGVyYXRvciBpbiBP''@;'; + put 'put ''YmplY3QoTil8fCJbb2JqZWN0IEFyZ3VtZW50c10iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKE4pKXJldHVybiBBcnJheS5mcm9tKE4pfShXKXx8ZnVuY3Rpb24oKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gc3ByZWFkIG5vbi1pdGVyYWJsZSBp''@;'; + put 'put ''bnN0YW5jZSIpfSgpfWZ1bmN0aW9uIEUoVyl7cmV0dXJuKEU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oTil7cmV0dXJuIHR5cGVvZiBOfTpmdW5jdGlvbihOKXtyZXR1cm4gTiYmImZ1bmN0aW9uIj09dHlwZW9m''@;'; + put 'put ''IFN5bWJvbCYmTi5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmTiE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIE59KShXKX12YXIgTWU9SmUoIi4vdW5mb3JtYXR0aW5nIiksVT0vXlthLXpdezIsM30oLVthLXpBLVpdezR9KT8oLShbQS1aXXsyfXxbMC05XXszfSkpPyQvLFE9e291''@;'; + put 'put ''dHB1dDp7dHlwZToic3RyaW5nIix2YWxpZFZhbHVlczpbImN1cnJlbmN5IiwicGVyY2VudCIsImJ5dGUiLCJ0aW1lIiwib3JkaW5hbCIsIm51bWJlciJdfSxiYXNlOnt0eXBlOiJzdHJpbmciLHZhbGlkVmFsdWVzOlsiZGVjaW1hbCIsImJpbmFyeSIsImdlbmVyYWwiXSxyZXN0cmljdGlvbjpm''@;'; + put 'put ''dW5jdGlvbihXLE4pe3JldHVybiJieXRlIj09PU4ub3V0cHV0fSxtZXNzYWdlOiJgYmFzZWAgbXVzdCBiZSBwcm92aWRlZCBvbmx5IHdoZW4gdGhlIG91dHB1dCBpcyBgYnl0ZWAiLG1hbmRhdG9yeTpmdW5jdGlvbihXKXtyZXR1cm4iYnl0ZSI9PT1XLm91dHB1dH19LGNoYXJhY3RlcmlzdGlj''@;'; + put 'put ''Ont0eXBlOiJudW1iZXIiLHJlc3RyaWN0aW9uOmZ1bmN0aW9uKFcpe3JldHVybiAwPD1XfSxtZXNzYWdlOiJ2YWx1ZSBtdXN0IGJlIHBvc2l0aXZlIn0scHJlZml4OiJzdHJpbmciLHBvc3RmaXg6InN0cmluZyIsZm9yY2VBdmVyYWdlOnt0eXBlOiJzdHJpbmciLHZhbGlkVmFsdWVzOlsidHJp''@;'; + put 'put ''bGxpb24iLCJiaWxsaW9uIiwibWlsbGlvbiIsInRob3VzYW5kIl19LGF2ZXJhZ2U6ImJvb2xlYW4iLGN1cnJlbmN5UG9zaXRpb246e3R5cGU6InN0cmluZyIsdmFsaWRWYWx1ZXM6WyJwcmVmaXgiLCJpbmZpeCIsInBvc3RmaXgiXX0sY3VycmVuY3lTeW1ib2w6InN0cmluZyIsdG90YWxMZW5n''@;'; + put 'put ''dGg6e3R5cGU6Im51bWJlciIscmVzdHJpY3Rpb25zOlt7cmVzdHJpY3Rpb246ZnVuY3Rpb24oVyl7cmV0dXJuIDA8PVd9LG1lc3NhZ2U6InZhbHVlIG11c3QgYmUgcG9zaXRpdmUifSx7cmVzdHJpY3Rpb246ZnVuY3Rpb24oVyxOKXtyZXR1cm4hTi5leHBvbmVudGlhbH0sbWVzc2FnZToiYHRv''@;'; + put 'put ''dGFsTGVuZ3RoYCBpcyBpbmNvbXBhdGlibGUgd2l0aCBgZXhwb25lbnRpYWxgIn1dfSxtYW50aXNzYTp7dHlwZToibnVtYmVyIixyZXN0cmljdGlvbjpmdW5jdGlvbihXKXtyZXR1cm4gMDw9V30sbWVzc2FnZToidmFsdWUgbXVzdCBiZSBwb3NpdGl2ZSJ9LG9wdGlvbmFsTWFudGlzc2E6ImJv''@;'; + put 'put ''b2xlYW4iLHRyaW1NYW50aXNzYToiYm9vbGVhbiIsb3B0aW9uYWxDaGFyYWN0ZXJpc3RpYzoiYm9vbGVhbiIsdGhvdXNhbmRTZXBhcmF0ZWQ6ImJvb2xlYW4iLHNwYWNlU2VwYXJhdGVkOiJib29sZWFuIixhYmJyZXZpYXRpb25zOnt0eXBlOiJvYmplY3QiLGNoaWxkcmVuOnt0aG91c2FuZDoi''@;'; + put 'put ''c3RyaW5nIixtaWxsaW9uOiJzdHJpbmciLGJpbGxpb246InN0cmluZyIsdHJpbGxpb246InN0cmluZyJ9fSxuZWdhdGl2ZTp7dHlwZToic3RyaW5nIix2YWxpZFZhbHVlczpbInNpZ24iLCJwYXJlbnRoZXNpcyJdfSxmb3JjZVNpZ246ImJvb2xlYW4iLGV4cG9uZW50aWFsOnt0eXBlOiJib29s''@;'; + put 'put ''ZWFuIn0scHJlZml4U3ltYm9sOnt0eXBlOiJib29sZWFuIixyZXN0cmljdGlvbjpmdW5jdGlvbihXLE4pe3JldHVybiJwZXJjZW50Ij09PU4ub3V0cHV0fSxtZXNzYWdlOiJgcHJlZml4U3ltYm9sYCBjYW4gYmUgcHJvdmlkZWQgb25seSB3aGVuIHRoZSBvdXRwdXQgaXMgYHBlcmNlbnRgIn19''@;'; + put 'put ''LFo9e2xhbmd1YWdlVGFnOnt0eXBlOiJzdHJpbmciLG1hbmRhdG9yeTohMCxyZXN0cmljdGlvbjpmdW5jdGlvbihXKXtyZXR1cm4gVy5tYXRjaChVKX0sbWVzc2FnZToidGhlIGxhbmd1YWdlIHRhZyBtdXN0IGZvbGxvdyB0aGUgQkNQIDQ3IHNwZWNpZmljYXRpb24gKHNlZSBodHRwczovL3Rv''@;'; + put 'put ''b2xzLmllZnQub3JnL2h0bWwvYmNwNDcpIn0sZGVsaW1pdGVyczp7dHlwZToib2JqZWN0IixjaGlsZHJlbjp7dGhvdXNhbmRzOiJzdHJpbmciLGRlY2ltYWw6InN0cmluZyIsdGhvdXNhbmRzU2l6ZToibnVtYmVyIn0sbWFuZGF0b3J5OiEwfSxhYmJyZXZpYXRpb25zOnt0eXBlOiJvYmplY3Qi''@;'; + put 'put ''LGNoaWxkcmVuOnt0aG91c2FuZDp7dHlwZToic3RyaW5nIixtYW5kYXRvcnk6ITB9LG1pbGxpb246e3R5cGU6InN0cmluZyIsbWFuZGF0b3J5OiEwfSxiaWxsaW9uOnt0eXBlOiJzdHJpbmciLG1hbmRhdG9yeTohMH0sdHJpbGxpb246e3R5cGU6InN0cmluZyIsbWFuZGF0b3J5OiEwfX0sbWFu''@;'; + put 'put ''ZGF0b3J5OiEwfSxzcGFjZVNlcGFyYXRlZDoiYm9vbGVhbiIsb3JkaW5hbDp7dHlwZToiZnVuY3Rpb24iLG1hbmRhdG9yeTohMH0sY3VycmVuY3k6e3R5cGU6Im9iamVjdCIsY2hpbGRyZW46e3N5bWJvbDoic3RyaW5nIixwb3NpdGlvbjoic3RyaW5nIixjb2RlOiJzdHJpbmcifSxtYW5kYXRv''@;'; + put 'put ''cnk6ITB9LGRlZmF1bHRzOiJmb3JtYXQiLG9yZGluYWxGb3JtYXQ6ImZvcm1hdCIsYnl0ZUZvcm1hdDoiZm9ybWF0IixwZXJjZW50YWdlRm9ybWF0OiJmb3JtYXQiLGN1cnJlbmN5Rm9ybWF0OiJmb3JtYXQiLHRpbWVEZWZhdWx0czoiZm9ybWF0Iixmb3JtYXRzOnt0eXBlOiJvYmplY3QiLGNo''@;'; + put 'put ''aWxkcmVuOntmb3VyRGlnaXRzOnt0eXBlOiJmb3JtYXQiLG1hbmRhdG9yeTohMH0sZnVsbFdpdGhUd29EZWNpbWFsczp7dHlwZToiZm9ybWF0IixtYW5kYXRvcnk6ITB9LGZ1bGxXaXRoVHdvRGVjaW1hbHNOb0N1cnJlbmN5Ont0eXBlOiJmb3JtYXQiLG1hbmRhdG9yeTohMH0sZnVsbFdpdGhO''@;'; + put 'put ''b0RlY2ltYWxzOnt0eXBlOiJmb3JtYXQiLG1hbmRhdG9yeTohMH19fX07ZnVuY3Rpb24gaWUoVyl7cmV0dXJuISFNZS51bmZvcm1hdChXKX1mdW5jdGlvbiBhZShXLE4sZWUpe3ZhciBxPTM8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09YXJndW1lbnRzWzNdJiZhcmd1bWVudHNbM10sSj1P''@;'; + put 'put ''YmplY3Qua2V5cyhXKS5tYXAoZnVuY3Rpb24oc2Upe2lmKCFOW3NlXSlyZXR1cm4gY29uc29sZS5lcnJvcigiIi5jb25jYXQoZWUsIiBJbnZhbGlkIGtleTogIikuY29uY2F0KHNlKSksITE7dmFyIG9lPVdbc2VdLGNlPU5bc2VdO2lmKCJzdHJpbmciPT10eXBlb2YgY2UmJihjZT17dHlwZTpj''@;'; + put 'put ''ZX0pLCJmb3JtYXQiPT09Y2UudHlwZSl7aWYoIWFlKG9lLFEsIltWYWxpZGF0ZSAiLmNvbmNhdChzZSwiXSIpLCEwKSlyZXR1cm4hMX1lbHNlIGlmKEUob2UpIT09Y2UudHlwZSlyZXR1cm4gY29uc29sZS5lcnJvcigiIi5jb25jYXQoZWUsIiAiKS5jb25jYXQoc2UsJyB0eXBlIG1pc21hdGNo''@;'; + put 'put ''ZWQ6ICInKS5jb25jYXQoY2UudHlwZSwnIiBleHBlY3RlZCwgIicpLmNvbmNhdChFKG9lKSwnIiBwcm92aWRlZCcpKSwhMTtpZihjZS5yZXN0cmljdGlvbnMmJmNlLnJlc3RyaWN0aW9ucy5sZW5ndGgpZm9yKHZhciBkZT1jZS5yZXN0cmljdGlvbnMubGVuZ3RoLHZlPTA7dmU8ZGU7dmUrKyl7''@;'; + put 'put ''dmFyIEFlPWNlLnJlc3RyaWN0aW9uc1t2ZV0sU2U9QWUubWVzc2FnZTtpZighKDAsQWUucmVzdHJpY3Rpb24pKG9lLFcpKXJldHVybiBjb25zb2xlLmVycm9yKCIiLmNvbmNhdChlZSwiICIpLmNvbmNhdChzZSwiIGludmFsaWQgdmFsdWU6ICIpLmNvbmNhdChTZSkpLCExfXJldHVybiBjZS5y''@;'; + put 'put ''ZXN0cmljdGlvbiYmIWNlLnJlc3RyaWN0aW9uKG9lLFcpPyhjb25zb2xlLmVycm9yKCIiLmNvbmNhdChlZSwiICIpLmNvbmNhdChzZSwiIGludmFsaWQgdmFsdWU6ICIpLmNvbmNhdChjZS5tZXNzYWdlKSksITEpOmNlLnZhbGlkVmFsdWVzJiYtMT09PWNlLnZhbGlkVmFsdWVzLmluZGV4T2Yo''@;'; + put 'put ''b2UpPyhjb25zb2xlLmVycm9yKCIiLmNvbmNhdChlZSwiICIpLmNvbmNhdChzZSwiIGludmFsaWQgdmFsdWU6IG11c3QgYmUgYW1vbmcgIikuY29uY2F0KEpTT04uc3RyaW5naWZ5KGNlLnZhbGlkVmFsdWVzKSwnLCAiJykuY29uY2F0KG9lLCciIHByb3ZpZGVkJykpLCExKTohKGNlLmNoaWxk''@;'; + put 'put ''cmVuJiYhYWUob2UsY2UuY2hpbGRyZW4sIltWYWxpZGF0ZSAiLmNvbmNhdChzZSwiXSIpKSl9KTtyZXR1cm4gcXx8Si5wdXNoLmFwcGx5KEosQihPYmplY3Qua2V5cyhOKS5tYXAoZnVuY3Rpb24oc2Upe3ZhciBvZT1OW3NlXTtpZigic3RyaW5nIj09dHlwZW9mIG9lJiYob2U9e3R5cGU6b2V9''@;'; + put 'put ''KSxvZS5tYW5kYXRvcnkpe3ZhciBjZT1vZS5tYW5kYXRvcnk7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGNlJiYoY2U9Y2UoVykpLGNlJiZ2b2lkIDA9PT1XW3NlXSlyZXR1cm4gY29uc29sZS5lcnJvcigiIi5jb25jYXQoZWUsJyBNaXNzaW5nIG1hbmRhdG9yeSBrZXkgIicpLmNvbmNhdChzZSwn''@;'; + put 'put ''IicpKSwhMX1yZXR1cm4hMH0pKSksSi5yZWR1Y2UoZnVuY3Rpb24oc2Usb2Upe3JldHVybiBzZSYmb2V9LCEwKX1mdW5jdGlvbiBZKFcpe3JldHVybiBhZShXLFEsIltWYWxpZGF0ZSBmb3JtYXRdIil9TC5leHBvcnRzPXt2YWxpZGF0ZTpmdW5jdGlvbihXLE4pe3ZhciBlZT1pZShXKSxxPVko''@;'; + put 'put ''Tik7cmV0dXJuIGVlJiZxfSx2YWxpZGF0ZUZvcm1hdDpZLHZhbGlkYXRlSW5wdXQ6aWUsdmFsaWRhdGVMYW5ndWFnZTpmdW5jdGlvbihXKXtyZXR1cm4gYWUoVyxaLCJbVmFsaWRhdGUgbGFuZ3VhZ2VdIil9fX0seyIuL3VuZm9ybWF0dGluZyI6OX1dfSx7fSxbN10pKDcpfSwzOTY1MDooWGUs''@;'; + put 'put ''SmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoMTg0NDQpLkJ1ZmZlcixCPUwoNjU2ODUpLlRyYW5zZm9ybTtmdW5jdGlvbiBVKFEpe0IuY2FsbCh0aGlzKSx0aGlzLl9ibG9jaz1tZS5hbGxvY1Vuc2FmZShRKSx0aGlzLl9ibG9ja1NpemU9USx0aGlzLl9ibG9ja09mZnNldD0wLHRoaXMu''@;'; + put 'put ''X2xlbmd0aD1bMCwwLDAsMF0sdGhpcy5fZmluYWxpemVkPSExfUwoODM4OTQpKFUsQiksVS5wcm90b3R5cGUuX3RyYW5zZm9ybT1mdW5jdGlvbihRLFosaWUpe3ZhciBhZT1udWxsO3RyeXt0aGlzLnVwZGF0ZShRLFopfWNhdGNoKFkpe2FlPVl9aWUoYWUpfSxVLnByb3RvdHlwZS5fZmx1c2g9''@;'; + put 'put ''ZnVuY3Rpb24oUSl7dmFyIFo9bnVsbDt0cnl7dGhpcy5wdXNoKHRoaXMuZGlnZXN0KCkpfWNhdGNoKGllKXtaPWllfVEoWil9LFUucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbihRLFope2lmKGZ1bmN0aW9uIE1lKFEsWil7aWYoIW1lLmlzQnVmZmVyKFEpJiYic3RyaW5nIiE9dHlwZW9mIFEp''@;'; + put 'put ''dGhyb3cgbmV3IFR5cGVFcnJvcihaKyIgbXVzdCBiZSBhIHN0cmluZyBvciBhIGJ1ZmZlciIpfShRLCJEYXRhIiksdGhpcy5fZmluYWxpemVkKXRocm93IG5ldyBFcnJvcigiRGlnZXN0IGFscmVhZHkgY2FsbGVkIik7bWUuaXNCdWZmZXIoUSl8fChRPW1lLmZyb20oUSxaKSk7Zm9yKHZhciBp''@;'; + put 'put ''ZT10aGlzLl9ibG9jayxhZT0wO3RoaXMuX2Jsb2NrT2Zmc2V0K1EubGVuZ3RoLWFlPj10aGlzLl9ibG9ja1NpemU7KXtmb3IodmFyIFk9dGhpcy5fYmxvY2tPZmZzZXQ7WTx0aGlzLl9ibG9ja1NpemU7KWllW1krK109UVthZSsrXTt0aGlzLl91cGRhdGUoKSx0aGlzLl9ibG9ja09mZnNldD0w''@;'; + put 'put ''fWZvcig7YWU8US5sZW5ndGg7KWllW3RoaXMuX2Jsb2NrT2Zmc2V0KytdPVFbYWUrK107Zm9yKHZhciBXPTAsTj04KlEubGVuZ3RoO04+MDsrK1cpdGhpcy5fbGVuZ3RoW1ddKz1OLChOPXRoaXMuX2xlbmd0aFtXXS80Mjk0OTY3Mjk2fDApPjAmJih0aGlzLl9sZW5ndGhbV10tPTQyOTQ5Njcy''@;'; + put 'put ''OTYqTik7cmV0dXJuIHRoaXN9LFUucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoIl91cGRhdGUgaXMgbm90IGltcGxlbWVudGVkIil9LFUucHJvdG90eXBlLmRpZ2VzdD1mdW5jdGlvbihRKXtpZih0aGlzLl9maW5hbGl6ZWQpdGhyb3cgbmV3IEVycm9yKCJE''@;'; + put 'put ''aWdlc3QgYWxyZWFkeSBjYWxsZWQiKTt0aGlzLl9maW5hbGl6ZWQ9ITA7dmFyIFo9dGhpcy5fZGlnZXN0KCk7dm9pZCAwIT09USYmKFo9Wi50b1N0cmluZyhRKSksdGhpcy5fYmxvY2suZmlsbCgwKSx0aGlzLl9ibG9ja09mZnNldD0wO2Zvcih2YXIgaWU9MDtpZTw0OysraWUpdGhpcy5fbGVu''@;'; + put 'put ''Z3RoW2llXT0wO3JldHVybiBafSxVLnByb3RvdHlwZS5fZGlnZXN0PWZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKCJfZGlnZXN0IGlzIG5vdCBpbXBsZW1lbnRlZCIpfSxYZS5leHBvcnRzPVV9LDE4NDQ0OihYZSxKZSxMKT0+e3ZhciBtZT1MKDkzMTcyKSxCPW1lLkJ1ZmZlcjtmdW5jdGlv''@;'; + put 'put ''biBFKFUsUSl7Zm9yKHZhciBaIGluIFUpUVtaXT1VW1pdfWZ1bmN0aW9uIE1lKFUsUSxaKXtyZXR1cm4gQihVLFEsWil9Qi5mcm9tJiZCLmFsbG9jJiZCLmFsbG9jVW5zYWZlJiZCLmFsbG9jVW5zYWZlU2xvdz9YZS5leHBvcnRzPW1lOihFKG1lLEplKSxKZS5CdWZmZXI9TWUpLE1lLnByb3Rv''@;'; + put 'put ''dHlwZT1PYmplY3QuY3JlYXRlKEIucHJvdG90eXBlKSxFKEIsTWUpLE1lLmZyb209ZnVuY3Rpb24oVSxRLFope2lmKCJudW1iZXIiPT10eXBlb2YgVSl0aHJvdyBuZXcgVHlwZUVycm9yKCJBcmd1bWVudCBtdXN0IG5vdCBiZSBhIG51bWJlciIpO3JldHVybiBCKFUsUSxaKX0sTWUuYWxsb2M9''@;'; + put 'put ''ZnVuY3Rpb24oVSxRLFope2lmKCJudW1iZXIiIT10eXBlb2YgVSl0aHJvdyBuZXcgVHlwZUVycm9yKCJBcmd1bWVudCBtdXN0IGJlIGEgbnVtYmVyIik7dmFyIGllPUIoVSk7cmV0dXJuIHZvaWQgMCE9PVE/InN0cmluZyI9PXR5cGVvZiBaP2llLmZpbGwoUSxaKTppZS5maWxsKFEpOmllLmZp''@;'; + put 'put ''bGwoMCksaWV9LE1lLmFsbG9jVW5zYWZlPWZ1bmN0aW9uKFUpe2lmKCJudW1iZXIiIT10eXBlb2YgVSl0aHJvdyBuZXcgVHlwZUVycm9yKCJBcmd1bWVudCBtdXN0IGJlIGEgbnVtYmVyIik7cmV0dXJuIEIoVSl9LE1lLmFsbG9jVW5zYWZlU2xvdz1mdW5jdGlvbihVKXtpZigibnVtYmVyIiE9''@;'; + put 'put ''dHlwZW9mIFUpdGhyb3cgbmV3IFR5cGVFcnJvcigiQXJndW1lbnQgbXVzdCBiZSBhIG51bWJlciIpO3JldHVybiBtZS5TbG93QnVmZmVyKFUpfX0sMzcwODQ6KFhlLEplLEwpPT57dmFyIG1lPUplO21lLnV0aWxzPUwoMjkyOTkpLG1lLmNvbW1vbj1MKDMzODAwKSxtZS5zaGE9TCg1NDk2Miks''@;'; + put 'put ''bWUucmlwZW1kPUwoOTk0NTgpLG1lLmhtYWM9TCgxMjE5NCksbWUuc2hhMT1tZS5zaGEuc2hhMSxtZS5zaGEyNTY9bWUuc2hhLnNoYTI1NixtZS5zaGEyMjQ9bWUuc2hhLnNoYTIyNCxtZS5zaGEzODQ9bWUuc2hhLnNoYTM4NCxtZS5zaGE1MTI9bWUuc2hhLnNoYTUxMixtZS5yaXBlbWQxNjA9''@;'; + put 'put ''bWUucmlwZW1kLnJpcGVtZDE2MH0sMzM4MDA6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDI5Mjk5KSxCPUwoMzIzOTEpO2Z1bmN0aW9uIEUoKXt0aGlzLnBlbmRpbmc9bnVsbCx0aGlzLnBlbmRpbmdUb3RhbD0wLHRoaXMuYmxvY2tTaXplPXRoaXMuY29uc3RydWN0b3IuYmxv''@;'; + put 'put ''Y2tTaXplLHRoaXMub3V0U2l6ZT10aGlzLmNvbnN0cnVjdG9yLm91dFNpemUsdGhpcy5obWFjU3RyZW5ndGg9dGhpcy5jb25zdHJ1Y3Rvci5obWFjU3RyZW5ndGgsdGhpcy5wYWRMZW5ndGg9dGhpcy5jb25zdHJ1Y3Rvci5wYWRMZW5ndGgvOCx0aGlzLmVuZGlhbj0iYmlnIix0aGlzLl9kZWx0''@;'; + put 'put ''YTg9dGhpcy5ibG9ja1NpemUvOCx0aGlzLl9kZWx0YTMyPXRoaXMuYmxvY2tTaXplLzMyfUplLkJsb2NrSGFzaD1FLEUucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbihVLFEpe2lmKFU9bWUudG9BcnJheShVLFEpLHRoaXMucGVuZGluZz10aGlzLnBlbmRpbmc/dGhpcy5wZW5kaW5nLmNvbmNh''@;'; + put 'put ''dChVKTpVLHRoaXMucGVuZGluZ1RvdGFsKz1VLmxlbmd0aCx0aGlzLnBlbmRpbmcubGVuZ3RoPj10aGlzLl9kZWx0YTgpe3ZhciBaPShVPXRoaXMucGVuZGluZykubGVuZ3RoJXRoaXMuX2RlbHRhODt0aGlzLnBlbmRpbmc9VS5zbGljZShVLmxlbmd0aC1aLFUubGVuZ3RoKSwwPT09dGhpcy5w''@;'; + put 'put ''ZW5kaW5nLmxlbmd0aCYmKHRoaXMucGVuZGluZz1udWxsKSxVPW1lLmpvaW4zMihVLDAsVS5sZW5ndGgtWix0aGlzLmVuZGlhbik7Zm9yKHZhciBpZT0wO2llPFUubGVuZ3RoO2llKz10aGlzLl9kZWx0YTMyKXRoaXMuX3VwZGF0ZShVLGllLGllK3RoaXMuX2RlbHRhMzIpfXJldHVybiB0aGlz''@;'; + put 'put ''fSxFLnByb3RvdHlwZS5kaWdlc3Q9ZnVuY3Rpb24oVSl7cmV0dXJuIHRoaXMudXBkYXRlKHRoaXMuX3BhZCgpKSxCKG51bGw9PT10aGlzLnBlbmRpbmcpLHRoaXMuX2RpZ2VzdChVKX0sRS5wcm90b3R5cGUuX3BhZD1mdW5jdGlvbigpe3ZhciBVPXRoaXMucGVuZGluZ1RvdGFsLFE9dGhpcy5f''@;'; + put 'put ''ZGVsdGE4LFo9US0oVSt0aGlzLnBhZExlbmd0aCklUSxpZT1uZXcgQXJyYXkoWit0aGlzLnBhZExlbmd0aCk7aWVbMF09MTI4O2Zvcih2YXIgYWU9MTthZTxaO2FlKyspaWVbYWVdPTA7aWYoVTw8PTMsImJpZyI9PT10aGlzLmVuZGlhbil7Zm9yKHZhciBZPTg7WTx0aGlzLnBhZExlbmd0aDtZ''@;'; + put 'put ''KyspaWVbYWUrK109MDtpZVthZSsrXT0wLGllW2FlKytdPTAsaWVbYWUrK109MCxpZVthZSsrXT0wLGllW2FlKytdPVU+Pj4yNCYyNTUsaWVbYWUrK109VT4+PjE2JjI1NSxpZVthZSsrXT1VPj4+OCYyNTUsaWVbYWUrK109MjU1JlV9ZWxzZSBmb3IoaWVbYWUrK109MjU1JlUsaWVbYWUrK109''@;'; + put 'put ''VT4+PjgmMjU1LGllW2FlKytdPVU+Pj4xNiYyNTUsaWVbYWUrK109VT4+PjI0JjI1NSxpZVthZSsrXT0wLGllW2FlKytdPTAsaWVbYWUrK109MCxpZVthZSsrXT0wLFk9ODtZPHRoaXMucGFkTGVuZ3RoO1krKylpZVthZSsrXT0wO3JldHVybiBpZX19LDEyMTk0OihYZSxKZSxMKT0+eyJ1c2Ug''@;'; + put 'put ''c3RyaWN0Ijt2YXIgbWU9TCgyOTI5OSksQj1MKDMyMzkxKTtmdW5jdGlvbiBFKE1lLFUsUSl7aWYoISh0aGlzIGluc3RhbmNlb2YgRSkpcmV0dXJuIG5ldyBFKE1lLFUsUSk7dGhpcy5IYXNoPU1lLHRoaXMuYmxvY2tTaXplPU1lLmJsb2NrU2l6ZS84LHRoaXMub3V0U2l6ZT1NZS5vdXRTaXpl''@;'; + put 'put ''LzgsdGhpcy5pbm5lcj1udWxsLHRoaXMub3V0ZXI9bnVsbCx0aGlzLl9pbml0KG1lLnRvQXJyYXkoVSxRKSl9WGUuZXhwb3J0cz1FLEUucHJvdG90eXBlLl9pbml0PWZ1bmN0aW9uKFUpe1UubGVuZ3RoPnRoaXMuYmxvY2tTaXplJiYoVT0obmV3IHRoaXMuSGFzaCkudXBkYXRlKFUpLmRpZ2Vz''@;'; + put 'put ''dCgpKSxCKFUubGVuZ3RoPD10aGlzLmJsb2NrU2l6ZSk7Zm9yKHZhciBRPVUubGVuZ3RoO1E8dGhpcy5ibG9ja1NpemU7USsrKVUucHVzaCgwKTtmb3IoUT0wO1E8VS5sZW5ndGg7USsrKVVbUV1ePTU0O2Zvcih0aGlzLmlubmVyPShuZXcgdGhpcy5IYXNoKS51cGRhdGUoVSksUT0wO1E8VS5s''@;'; + put 'put ''ZW5ndGg7USsrKVVbUV1ePTEwNjt0aGlzLm91dGVyPShuZXcgdGhpcy5IYXNoKS51cGRhdGUoVSl9LEUucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbihVLFEpe3JldHVybiB0aGlzLmlubmVyLnVwZGF0ZShVLFEpLHRoaXN9LEUucHJvdG90eXBlLmRpZ2VzdD1mdW5jdGlvbihVKXtyZXR1cm4g''@;'; + put 'put ''dGhpcy5vdXRlci51cGRhdGUodGhpcy5pbm5lci5kaWdlc3QoKSksdGhpcy5vdXRlci5kaWdlc3QoVSl9fSw5OTQ1ODooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoMjkyOTkpLEI9TCgzMzgwMCksRT1tZS5yb3RsMzIsTWU9bWUuc3VtMzIsVT1tZS5zdW0zMl8zLFE9bWUuc3Vt''@;'; + put 'put ''MzJfNCxaPUIuQmxvY2tIYXNoO2Z1bmN0aW9uIGllKCl7aWYoISh0aGlzIGluc3RhbmNlb2YgaWUpKXJldHVybiBuZXcgaWU7Wi5jYWxsKHRoaXMpLHRoaXMuaD1bMTczMjU4NDE5Myw0MDIzMjMzNDE3LDI1NjIzODMxMDIsMjcxNzMzODc4LDMyODUzNzc1MjBdLHRoaXMuZW5kaWFuPSJsaXR0''@;'; + put 'put ''bGUifWZ1bmN0aW9uIGFlKHNlLG9lLGNlLGRlKXtyZXR1cm4gc2U8PTE1P29lXmNlXmRlOnNlPD0zMT9vZSZjZXx+b2UmZGU6c2U8PTQ3PyhvZXx+Y2UpXmRlOnNlPD02Mz9vZSZkZXxjZSZ+ZGU6b2VeKGNlfH5kZSl9ZnVuY3Rpb24gVyhzZSl7cmV0dXJuIHNlPD0xNT8xMzUyODI5OTI2OnNl''@;'; + put 'put ''PD0zMT8xNTQ4NjAzNjg0OnNlPD00Nz8xODM2MDcyNjkxOnNlPD02Mz8yMDUzOTk0MjE3OjB9bWUuaW5oZXJpdHMoaWUsWiksSmUucmlwZW1kMTYwPWllLGllLmJsb2NrU2l6ZT01MTIsaWUub3V0U2l6ZT0xNjAsaWUuaG1hY1N0cmVuZ3RoPTE5MixpZS5wYWRMZW5ndGg9NjQsaWUucHJvdG90''@;'; + put 'put ''eXBlLl91cGRhdGU9ZnVuY3Rpb24ob2UsY2Upe2Zvcih2YXIgZGU9dGhpcy5oWzBdLHZlPXRoaXMuaFsxXSxBZT10aGlzLmhbMl0sa2U9dGhpcy5oWzNdLFNlPXRoaXMuaFs0XSxJZT1kZSxUZT12ZSxFZT1BZSxoZT1rZSxPPVNlLHo9MDt6PDgwO3orKyl7dmFyIG5lPU1lKEUoUShkZSxhZSh6''@;'; + put 'put ''LHZlLEFlLGtlKSxvZVtOW3pdK2NlXSwoc2U9eik8PTE1PzA6c2U8PTMxPzE1MTg1MDAyNDk6c2U8PTQ3PzE4NTk3NzUzOTM6c2U8PTYzPzI0MDA5NTk3MDg6Mjg0MDg1MzgzOCkscVt6XSksU2UpO2RlPVNlLFNlPWtlLGtlPUUoQWUsMTApLEFlPXZlLHZlPW5lLG5lPU1lKEUoUShJZSxhZSg3''@;'; + put 'put ''OS16LFRlLEVlLGhlKSxvZVtlZVt6XStjZV0sVyh6KSksSlt6XSksTyksSWU9TyxPPWhlLGhlPUUoRWUsMTApLEVlPVRlLFRlPW5lfXZhciBzZTtuZT1VKHRoaXMuaFsxXSxBZSxoZSksdGhpcy5oWzFdPVUodGhpcy5oWzJdLGtlLE8pLHRoaXMuaFsyXT1VKHRoaXMuaFszXSxTZSxJZSksdGhp''@;'; + put 'put ''cy5oWzNdPVUodGhpcy5oWzRdLGRlLFRlKSx0aGlzLmhbNF09VSh0aGlzLmhbMF0sdmUsRWUpLHRoaXMuaFswXT1uZX0saWUucHJvdG90eXBlLl9kaWdlc3Q9ZnVuY3Rpb24ob2Upe3JldHVybiJoZXgiPT09b2U/bWUudG9IZXgzMih0aGlzLmgsImxpdHRsZSIpOm1lLnNwbGl0MzIodGhpcy5o''@;'; + put 'put ''LCJsaXR0bGUiKX07dmFyIE49WzAsMSwyLDMsNCw1LDYsNyw4LDksMTAsMTEsMTIsMTMsMTQsMTUsNyw0LDEzLDEsMTAsNiwxNSwzLDEyLDAsOSw1LDIsMTQsMTEsOCwzLDEwLDE0LDQsOSwxNSw4LDEsMiw3LDAsNiwxMywxMSw1LDEyLDEsOSwxMSwxMCwwLDgsMTIsNCwxMywzLDcsMTUsMTQs''@;'; + put 'put ''NSw2LDIsNCwwLDUsOSw3LDEyLDIsMTAsMTQsMSwzLDgsMTEsNiwxNSwxM10sZWU9WzUsMTQsNywwLDksMiwxMSw0LDEzLDYsMTUsOCwxLDEwLDMsMTIsNiwxMSwzLDcsMCwxMyw1LDEwLDE0LDE1LDgsMTIsNCw5LDEsMiwxNSw1LDEsMyw3LDE0LDYsOSwxMSw4LDEyLDIsMTAsMCw0LDEzLDgs''@;'; + put 'put ''Niw0LDEsMywxMSwxNSwwLDUsMTIsMiwxMyw5LDcsMTAsMTQsMTIsMTUsMTAsNCwxLDUsOCw3LDYsMiwxMywxNCwwLDMsOSwxMV0scT1bMTEsMTQsMTUsMTIsNSw4LDcsOSwxMSwxMywxNCwxNSw2LDcsOSw4LDcsNiw4LDEzLDExLDksNywxNSw3LDEyLDE1LDksMTEsNywxMywxMiwxMSwxMyw2''@;'; + put 'put ''LDcsMTQsOSwxMywxNSwxNCw4LDEzLDYsNSwxMiw3LDUsMTEsMTIsMTQsMTUsMTQsMTUsOSw4LDksMTQsNSw2LDgsNiw1LDEyLDksMTUsNSwxMSw2LDgsMTMsMTIsNSwxMiwxMywxNCwxMSw4LDUsNl0sSj1bOCw5LDksMTEsMTMsMTUsMTUsNSw3LDcsOCwxMSwxNCwxNCwxMiw2LDksMTMsMTUs''@;'; + put 'put ''NywxMiw4LDksMTEsNyw3LDEyLDcsNiwxNSwxMywxMSw5LDcsMTUsMTEsOCw2LDYsMTQsMTIsMTMsNSwxNCwxMywxMyw3LDUsMTUsNSw4LDExLDE0LDE0LDYsMTQsNiw5LDEyLDksMTIsNSwxNSw4LDgsNSwxMiw5LDEyLDUsMTQsNiw4LDEzLDYsNSwxNSwxMywxMSwxMV19LDU0OTYyOihYZSxK''@;'; + put 'put ''ZSxMKT0+eyJ1c2Ugc3RyaWN0IjtKZS5zaGExPUwoNTkwMDcpLEplLnNoYTIyND1MKDEwMDU1KSxKZS5zaGEyNTY9TCgxOTM0MiksSmUuc2hhMzg0PUwoODg2MzQpLEplLnNoYTUxMj1MKDcwMDM5KX0sNTkwMDc6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDI5Mjk5KSxCPUwo''@;'; + put 'put ''MzM4MDApLEU9TCgzMzExMyksTWU9bWUucm90bDMyLFU9bWUuc3VtMzIsUT1tZS5zdW0zMl81LFo9RS5mdF8xLGllPUIuQmxvY2tIYXNoLGFlPVsxNTE4NTAwMjQ5LDE4NTk3NzUzOTMsMjQwMDk1OTcwOCwzMzk1NDY5NzgyXTtmdW5jdGlvbiBZKCl7aWYoISh0aGlzIGluc3RhbmNlb2YgWSkp''@;'; + put 'put ''cmV0dXJuIG5ldyBZO2llLmNhbGwodGhpcyksdGhpcy5oPVsxNzMyNTg0MTkzLDQwMjMyMzM0MTcsMjU2MjM4MzEwMiwyNzE3MzM4NzgsMzI4NTM3NzUyMF0sdGhpcy5XPW5ldyBBcnJheSg4MCl9bWUuaW5oZXJpdHMoWSxpZSksWGUuZXhwb3J0cz1ZLFkuYmxvY2tTaXplPTUxMixZLm91dFNp''@;'; + put 'put ''emU9MTYwLFkuaG1hY1N0cmVuZ3RoPTgwLFkucGFkTGVuZ3RoPTY0LFkucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24oTixlZSl7Zm9yKHZhciBxPXRoaXMuVyxKPTA7SjwxNjtKKyspcVtKXT1OW2VlK0pdO2Zvcig7SjxxLmxlbmd0aDtKKyspcVtKXT1NZShxW0otM11ecVtKLThdXnFbSi0x''@;'; + put 'put ''NF1ecVtKLTE2XSwxKTt2YXIgc2U9dGhpcy5oWzBdLG9lPXRoaXMuaFsxXSxjZT10aGlzLmhbMl0sZGU9dGhpcy5oWzNdLHZlPXRoaXMuaFs0XTtmb3IoSj0wO0o8cS5sZW5ndGg7SisrKXt2YXIgQWU9fn4oSi8yMCksa2U9UShNZShzZSw1KSxaKEFlLG9lLGNlLGRlKSx2ZSxxW0pdLGFlW0Fl''@;'; + put 'put ''XSk7dmU9ZGUsZGU9Y2UsY2U9TWUob2UsMzApLG9lPXNlLHNlPWtlfXRoaXMuaFswXT1VKHRoaXMuaFswXSxzZSksdGhpcy5oWzFdPVUodGhpcy5oWzFdLG9lKSx0aGlzLmhbMl09VSh0aGlzLmhbMl0sY2UpLHRoaXMuaFszXT1VKHRoaXMuaFszXSxkZSksdGhpcy5oWzRdPVUodGhpcy5oWzRd''@;'; + put 'put ''LHZlKX0sWS5wcm90b3R5cGUuX2RpZ2VzdD1mdW5jdGlvbihOKXtyZXR1cm4iaGV4Ij09PU4/bWUudG9IZXgzMih0aGlzLmgsImJpZyIpOm1lLnNwbGl0MzIodGhpcy5oLCJiaWciKX19LDEwMDU1OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCgyOTI5OSksQj1MKDE5MzQyKTtm''@;'; + put 'put ''dW5jdGlvbiBFKCl7aWYoISh0aGlzIGluc3RhbmNlb2YgRSkpcmV0dXJuIG5ldyBFO0IuY2FsbCh0aGlzKSx0aGlzLmg9WzMyMzgzNzEwMzIsOTE0MTUwNjYzLDgxMjcwMjk5OSw0MTQ0OTEyNjk3LDQyOTA3NzU4NTcsMTc1MDYwMzAyNSwxNjk0MDc2ODM5LDMyMDQwNzU0MjhdfW1lLmluaGVy''@;'; + put 'put ''aXRzKEUsQiksWGUuZXhwb3J0cz1FLEUuYmxvY2tTaXplPTUxMixFLm91dFNpemU9MjI0LEUuaG1hY1N0cmVuZ3RoPTE5MixFLnBhZExlbmd0aD02NCxFLnByb3RvdHlwZS5fZGlnZXN0PWZ1bmN0aW9uKFUpe3JldHVybiJoZXgiPT09VT9tZS50b0hleDMyKHRoaXMuaC5zbGljZSgwLDcpLCJi''@;'; + put 'put ''aWciKTptZS5zcGxpdDMyKHRoaXMuaC5zbGljZSgwLDcpLCJiaWciKX19LDE5MzQyOihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCgyOTI5OSksQj1MKDMzODAwKSxFPUwoMzMxMTMpLE1lPUwoMzIzOTEpLFU9bWUuc3VtMzIsUT1tZS5zdW0zMl80LFo9bWUuc3VtMzJfNSxpZT1F''@;'; + put 'put ''LmNoMzIsYWU9RS5tYWozMixZPUUuczBfMjU2LFc9RS5zMV8yNTYsTj1FLmcwXzI1NixlZT1FLmcxXzI1NixxPUIuQmxvY2tIYXNoLEo9WzExMTYzNTI0MDgsMTg5OTQ0NzQ0MSwzMDQ5MzIzNDcxLDM5MjEwMDk1NzMsOTYxOTg3MTYzLDE1MDg5NzA5OTMsMjQ1MzYzNTc0OCwyODcwNzYzMjIx''@;'; + put 'put ''LDM2MjQzODEwODAsMzEwNTk4NDAxLDYwNzIyNTI3OCwxNDI2ODgxOTg3LDE5MjUwNzgzODgsMjE2MjA3ODIwNiwyNjE0ODg4MTAzLDMyNDgyMjI1ODAsMzgzNTM5MDQwMSw0MDIyMjI0Nzc0LDI2NDM0NzA3OCw2MDQ4MDc2MjgsNzcwMjU1OTgzLDEyNDkxNTAxMjIsMTU1NTA4MTY5MiwxOTk2''@;'; + put 'put ''MDY0OTg2LDI1NTQyMjA4ODIsMjgyMTgzNDM0OSwyOTUyOTk2ODA4LDMyMTAzMTM2NzEsMzMzNjU3MTg5MSwzNTg0NTI4NzExLDExMzkyNjk5MywzMzgyNDE4OTUsNjY2MzA3MjA1LDc3MzUyOTkxMiwxMjk0NzU3MzcyLDEzOTYxODIyOTEsMTY5NTE4MzcwMCwxOTg2NjYxMDUxLDIxNzcwMjYz''@;'; + put 'put ''NTAsMjQ1Njk1NjAzNywyNzMwNDg1OTIxLDI4MjAzMDI0MTEsMzI1OTczMDgwMCwzMzQ1NzY0NzcxLDM1MTYwNjU4MTcsMzYwMDM1MjgwNCw0MDk0NTcxOTA5LDI3NTQyMzM0NCw0MzAyMjc3MzQsNTA2OTQ4NjE2LDY1OTA2MDU1Niw4ODM5OTc4NzcsOTU4MTM5NTcxLDEzMjI4MjIyMTgsMTUz''@;'; + put 'put ''NzAwMjA2MywxNzQ3ODczNzc5LDE5NTU1NjIyMjIsMjAyNDEwNDgxNSwyMjI3NzMwNDUyLDIzNjE4NTI0MjQsMjQyODQzNjQ3NCwyNzU2NzM0MTg3LDMyMDQwMzE0NzksMzMyOTMyNTI5OF07ZnVuY3Rpb24gc2UoKXtpZighKHRoaXMgaW5zdGFuY2VvZiBzZSkpcmV0dXJuIG5ldyBzZTtxLmNh''@;'; + put 'put ''bGwodGhpcyksdGhpcy5oPVsxNzc5MDMzNzAzLDMxNDQxMzQyNzcsMTAxMzkwNDI0MiwyNzczNDgwNzYyLDEzNTk4OTMxMTksMjYwMDgyMjkyNCw1Mjg3MzQ2MzUsMTU0MTQ1OTIyNV0sdGhpcy5rPUosdGhpcy5XPW5ldyBBcnJheSg2NCl9bWUuaW5oZXJpdHMoc2UscSksWGUuZXhwb3J0cz1z''@;'; + put 'put ''ZSxzZS5ibG9ja1NpemU9NTEyLHNlLm91dFNpemU9MjU2LHNlLmhtYWNTdHJlbmd0aD0xOTIsc2UucGFkTGVuZ3RoPTY0LHNlLnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKGNlLGRlKXtmb3IodmFyIHZlPXRoaXMuVyxBZT0wO0FlPDE2O0FlKyspdmVbQWVdPWNlW2RlK0FlXTtmb3IoO0Fl''@;'; + put 'put ''PHZlLmxlbmd0aDtBZSsrKXZlW0FlXT1RKGVlKHZlW0FlLTJdKSx2ZVtBZS03XSxOKHZlW0FlLTE1XSksdmVbQWUtMTZdKTt2YXIga2U9dGhpcy5oWzBdLFNlPXRoaXMuaFsxXSxJZT10aGlzLmhbMl0sVGU9dGhpcy5oWzNdLEVlPXRoaXMuaFs0XSxoZT10aGlzLmhbNV0sTz10aGlzLmhbNl0s''@;'; + put 'put ''ej10aGlzLmhbN107Zm9yKE1lKHRoaXMuay5sZW5ndGg9PT12ZS5sZW5ndGgpLEFlPTA7QWU8dmUubGVuZ3RoO0FlKyspe3ZhciBuZT1aKHosVyhFZSksaWUoRWUsaGUsTyksdGhpcy5rW0FlXSx2ZVtBZV0pLHRlPVUoWShrZSksYWUoa2UsU2UsSWUpKTt6PU8sTz1oZSxoZT1FZSxFZT1VKFRl''@;'; + put 'put ''LG5lKSxUZT1JZSxJZT1TZSxTZT1rZSxrZT1VKG5lLHRlKX10aGlzLmhbMF09VSh0aGlzLmhbMF0sa2UpLHRoaXMuaFsxXT1VKHRoaXMuaFsxXSxTZSksdGhpcy5oWzJdPVUodGhpcy5oWzJdLEllKSx0aGlzLmhbM109VSh0aGlzLmhbM10sVGUpLHRoaXMuaFs0XT1VKHRoaXMuaFs0XSxFZSks''@;'; + put 'put ''dGhpcy5oWzVdPVUodGhpcy5oWzVdLGhlKSx0aGlzLmhbNl09VSh0aGlzLmhbNl0sTyksdGhpcy5oWzddPVUodGhpcy5oWzddLHopfSxzZS5wcm90b3R5cGUuX2RpZ2VzdD1mdW5jdGlvbihjZSl7cmV0dXJuImhleCI9PT1jZT9tZS50b0hleDMyKHRoaXMuaCwiYmlnIik6bWUuc3BsaXQzMih0''@;'; + put 'put ''aGlzLmgsImJpZyIpfX0sODg2MzQ6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDI5Mjk5KSxCPUwoNzAwMzkpO2Z1bmN0aW9uIEUoKXtpZighKHRoaXMgaW5zdGFuY2VvZiBFKSlyZXR1cm4gbmV3IEU7Qi5jYWxsKHRoaXMpLHRoaXMuaD1bMzQxODA3MDM2NSwzMjM4MzcxMDMy''@;'; + put 'put ''LDE2NTQyNzAyNTAsOTE0MTUwNjYzLDI0Mzg1MjkzNzAsODEyNzAyOTk5LDM1NTQ2MjM2MCw0MTQ0OTEyNjk3LDE3MzE0MDU0MTUsNDI5MDc3NTg1NywyMzk0MTgwMjMxLDE3NTA2MDMwMjUsMzY3NTAwODUyNSwxNjk0MDc2ODM5LDEyMDMwNjI4MTMsMzIwNDA3NTQyOF19bWUuaW5oZXJpdHMo''@;'; + put 'put ''RSxCKSxYZS5leHBvcnRzPUUsRS5ibG9ja1NpemU9MTAyNCxFLm91dFNpemU9Mzg0LEUuaG1hY1N0cmVuZ3RoPTE5MixFLnBhZExlbmd0aD0xMjgsRS5wcm90b3R5cGUuX2RpZ2VzdD1mdW5jdGlvbihVKXtyZXR1cm4iaGV4Ij09PVU/bWUudG9IZXgzMih0aGlzLmguc2xpY2UoMCwxMiksImJp''@;'; + put 'put ''ZyIpOm1lLnNwbGl0MzIodGhpcy5oLnNsaWNlKDAsMTIpLCJiaWciKX19LDcwMDM5OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCgyOTI5OSksQj1MKDMzODAwKSxFPUwoMzIzOTEpLE1lPW1lLnJvdHI2NF9oaSxVPW1lLnJvdHI2NF9sbyxRPW1lLnNocjY0X2hpLFo9bWUuc2hy''@;'; + put 'put ''NjRfbG8saWU9bWUuc3VtNjQsYWU9bWUuc3VtNjRfaGksWT1tZS5zdW02NF9sbyxXPW1lLnN1bTY0XzRfaGksTj1tZS5zdW02NF80X2xvLGVlPW1lLnN1bTY0XzVfaGkscT1tZS5zdW02NF81X2xvLEo9Qi5CbG9ja0hhc2gsc2U9WzExMTYzNTI0MDgsMzYwOTc2NzQ1OCwxODk5NDQ3NDQxLDYw''@;'; + put 'put ''Mjg5MTcyNSwzMDQ5MzIzNDcxLDM5NjQ0ODQzOTksMzkyMTAwOTU3MywyMTczMjk1NTQ4LDk2MTk4NzE2Myw0MDgxNjI4NDcyLDE1MDg5NzA5OTMsMzA1MzgzNDI2NSwyNDUzNjM1NzQ4LDI5Mzc2NzE1NzksMjg3MDc2MzIyMSwzNjY0NjA5NTYwLDM2MjQzODEwODAsMjczNDg4MzM5NCwzMTA1''@;'; + put 'put ''OTg0MDEsMTE2NDk5NjU0Miw2MDcyMjUyNzgsMTMyMzYxMDc2NCwxNDI2ODgxOTg3LDM1OTAzMDQ5OTQsMTkyNTA3ODM4OCw0MDY4MTgyMzgzLDIxNjIwNzgyMDYsOTkxMzM2MTEzLDI2MTQ4ODgxMDMsNjMzODAzMzE3LDMyNDgyMjI1ODAsMzQ3OTc3NDg2OCwzODM1MzkwNDAxLDI2NjY2MTM0''@;'; + put 'put ''NTgsNDAyMjIyNDc3NCw5NDQ3MTExMzksMjY0MzQ3MDc4LDIzNDEyNjI3NzMsNjA0ODA3NjI4LDIwMDc4MDA5MzMsNzcwMjU1OTgzLDE0OTU5OTA5MDEsMTI0OTE1MDEyMiwxODU2NDMxMjM1LDE1NTUwODE2OTIsMzE3NTIxODEzMiwxOTk2MDY0OTg2LDIxOTg5NTA4MzcsMjU1NDIyMDg4Miwz''@;'; + put 'put ''OTk5NzE5MzM5LDI4MjE4MzQzNDksNzY2Nzg0MDE2LDI5NTI5OTY4MDgsMjU2NjU5NDg3OSwzMjEwMzEzNjcxLDMyMDMzMzc5NTYsMzMzNjU3MTg5MSwxMDM0NDU3MDI2LDM1ODQ1Mjg3MTEsMjQ2Njk0ODkwMSwxMTM5MjY5OTMsMzc1ODMyNjM4MywzMzgyNDE4OTUsMTY4NzE3OTM2LDY2NjMw''@;'; + put 'put ''NzIwNSwxMTg4MTc5OTY0LDc3MzUyOTkxMiwxNTQ2MDQ1NzM0LDEyOTQ3NTczNzIsMTUyMjgwNTQ4NSwxMzk2MTgyMjkxLDI2NDM4MzM4MjMsMTY5NTE4MzcwMCwyMzQzNTI3MzkwLDE5ODY2NjEwNTEsMTAxNDQ3NzQ4MCwyMTc3MDI2MzUwLDEyMDY3NTkxNDIsMjQ1Njk1NjAzNywzNDQwNzc2''@;'; + put 'put ''MjcsMjczMDQ4NTkyMSwxMjkwODYzNDYwLDI4MjAzMDI0MTEsMzE1ODQ1NDI3MywzMjU5NzMwODAwLDM1MDU5NTI2NTcsMzM0NTc2NDc3MSwxMDYyMTcwMDgsMzUxNjA2NTgxNywzNjA2MDA4MzQ0LDM2MDAzNTI4MDQsMTQzMjcyNTc3Niw0MDk0NTcxOTA5LDE0NjcwMzE1OTQsMjc1NDIzMzQ0''@;'; + put 'put ''LDg1MTE2OTcyMCw0MzAyMjc3MzQsMzEwMDgyMzc1Miw1MDY5NDg2MTYsMTM2MzI1ODE5NSw2NTkwNjA1NTYsMzc1MDY4NTU5Myw4ODM5OTc4NzcsMzc4NTA1MDI4MCw5NTgxMzk1NzEsMzMxODMwNzQyNywxMzIyODIyMjE4LDM4MTI3MjM0MDMsMTUzNzAwMjA2MywyMDAzMDM0OTk1LDE3NDc4''@;'; + put 'put ''NzM3NzksMzYwMjAzNjg5OSwxOTU1NTYyMjIyLDE1NzU5OTAwMTIsMjAyNDEwNDgxNSwxMTI1NTkyOTI4LDIyMjc3MzA0NTIsMjcxNjkwNDMwNiwyMzYxODUyNDI0LDQ0Mjc3NjA0NCwyNDI4NDM2NDc0LDU5MzY5ODM0NCwyNzU2NzM0MTg3LDM3MzMxMTAyNDksMzIwNDAzMTQ3OSwyOTk5MzUx''@;'; + put 'put ''NTczLDMzMjkzMjUyOTgsMzgxNTkyMDQyNywzMzkxNTY5NjE0LDM5MjgzODM5MDAsMzUxNTI2NzI3MSw1NjYyODA3MTEsMzk0MDE4NzYwNiwzNDU0MDY5NTM0LDQxMTg2MzAyNzEsNDAwMDIzOTk5MiwxMTY0MTg0NzQsMTkxNDEzODU1NCwxNzQyOTI0MjEsMjczMTA1NTI3MCwyODkzODAzNTYs''@;'; + put 'put ''MzIwMzk5MzAwNiw0NjAzOTMyNjksMzIwNjIwMzE1LDY4NTQ3MTczMyw1ODc0OTY4MzYsODUyMTQyOTcxLDEwODY3OTI4NTEsMTAxNzAzNjI5OCwzNjU1NDMxMDAsMTEyNjAwMDU4MCwyNjE4Mjk3Njc2LDEyODgwMzM0NzAsMzQwOTg1NTE1OCwxNTAxNTA1OTQ4LDQyMzQ1MDk4NjYsMTYwNzE2''@;'; + put 'put ''NzkxNSw5ODcxNjc0NjgsMTgxNjQwMjMxNiwxMjQ2MTg5NTkxXTtmdW5jdGlvbiBvZSgpe2lmKCEodGhpcyBpbnN0YW5jZW9mIG9lKSlyZXR1cm4gbmV3IG9lO0ouY2FsbCh0aGlzKSx0aGlzLmg9WzE3NzkwMzM3MDMsNDA4OTIzNTcyMCwzMTQ0MTM0Mjc3LDIyMjc4NzM1OTUsMTAxMzkwNDI0''@;'; + put 'put ''Miw0MjcxMTc1NzIzLDI3NzM0ODA3NjIsMTU5NTc1MDEyOSwxMzU5ODkzMTE5LDI5MTc1NjUxMzcsMjYwMDgyMjkyNCw3MjU1MTExOTksNTI4NzM0NjM1LDQyMTUzODk1NDcsMTU0MTQ1OTIyNSwzMjcwMzMyMDldLHRoaXMuaz1zZSx0aGlzLlc9bmV3IEFycmF5KDE2MCl9ZnVuY3Rpb24gY2Uo''@;'; + put 'put ''bmUsdGUseCxQLFYpe3ZhciBUPW5lJnhefm5lJlY7cmV0dXJuIFQ8MCYmKFQrPTQyOTQ5NjcyOTYpLFR9ZnVuY3Rpb24gZGUobmUsdGUseCxQLFYsVCl7dmFyIFM9dGUmUF5+dGUmVDtyZXR1cm4gUzwwJiYoUys9NDI5NDk2NzI5NiksU31mdW5jdGlvbiB2ZShuZSx0ZSx4LFAsVil7dmFyIFQ9''@;'; + put 'put ''bmUmeF5uZSZWXngmVjtyZXR1cm4gVDwwJiYoVCs9NDI5NDk2NzI5NiksVH1mdW5jdGlvbiBBZShuZSx0ZSx4LFAsVixUKXt2YXIgUz10ZSZQXnRlJlReUCZUO3JldHVybiBTPDAmJihTKz00Mjk0OTY3Mjk2KSxTfWZ1bmN0aW9uIGtlKG5lLHRlKXt2YXIgVD1NZShuZSx0ZSwyOCleTWUodGUs''@;'; + put 'put ''bmUsMileTWUodGUsbmUsNyk7cmV0dXJuIFQ8MCYmKFQrPTQyOTQ5NjcyOTYpLFR9ZnVuY3Rpb24gU2UobmUsdGUpe3ZhciBUPVUobmUsdGUsMjgpXlUodGUsbmUsMileVSh0ZSxuZSw3KTtyZXR1cm4gVDwwJiYoVCs9NDI5NDk2NzI5NiksVH1mdW5jdGlvbiBJZShuZSx0ZSl7dmFyIFQ9TWUo''@;'; + put 'put ''bmUsdGUsMTQpXk1lKG5lLHRlLDE4KV5NZSh0ZSxuZSw5KTtyZXR1cm4gVDwwJiYoVCs9NDI5NDk2NzI5NiksVH1mdW5jdGlvbiBUZShuZSx0ZSl7dmFyIFQ9VShuZSx0ZSwxNCleVShuZSx0ZSwxOCleVSh0ZSxuZSw5KTtyZXR1cm4gVDwwJiYoVCs9NDI5NDk2NzI5NiksVH1mdW5jdGlvbiBF''@;'; + put 'put ''ZShuZSx0ZSl7dmFyIFQ9TWUobmUsdGUsMSleTWUobmUsdGUsOCleUShuZSx0ZSw3KTtyZXR1cm4gVDwwJiYoVCs9NDI5NDk2NzI5NiksVH1mdW5jdGlvbiBoZShuZSx0ZSl7dmFyIFQ9VShuZSx0ZSwxKV5VKG5lLHRlLDgpXloobmUsdGUsNyk7cmV0dXJuIFQ8MCYmKFQrPTQyOTQ5NjcyOTYp''@;'; + put 'put ''LFR9ZnVuY3Rpb24gTyhuZSx0ZSl7dmFyIFQ9TWUobmUsdGUsMTkpXk1lKHRlLG5lLDI5KV5RKG5lLHRlLDYpO3JldHVybiBUPDAmJihUKz00Mjk0OTY3Mjk2KSxUfWZ1bmN0aW9uIHoobmUsdGUpe3ZhciBUPVUobmUsdGUsMTkpXlUodGUsbmUsMjkpXloobmUsdGUsNik7cmV0dXJuIFQ8MCYm''@;'; + put 'put ''KFQrPTQyOTQ5NjcyOTYpLFR9bWUuaW5oZXJpdHMob2UsSiksWGUuZXhwb3J0cz1vZSxvZS5ibG9ja1NpemU9MTAyNCxvZS5vdXRTaXplPTUxMixvZS5obWFjU3RyZW5ndGg9MTkyLG9lLnBhZExlbmd0aD0xMjgsb2UucHJvdG90eXBlLl9wcmVwYXJlQmxvY2s9ZnVuY3Rpb24odGUseCl7Zm9y''@;'; + put 'put ''KHZhciBQPXRoaXMuVyxWPTA7VjwzMjtWKyspUFtWXT10ZVt4K1ZdO2Zvcig7VjxQLmxlbmd0aDtWKz0yKXt2YXIgVD1PKFBbVi00XSxQW1YtM10pLFM9eihQW1YtNF0sUFtWLTNdKSxGPVBbVi0xNF0seWU9UFtWLTEzXSxDZT1FZShQW1YtMzBdLFBbVi0yOV0pLERlPWhlKFBbVi0zMF0sUFtW''@;'; + put 'put ''LTI5XSksUGU9UFtWLTMyXSxRZT1QW1YtMzFdO1BbVl09VyhULFMsRix5ZSxDZSxEZSxQZSxRZSksUFtWKzFdPU4oVCxTLEYseWUsQ2UsRGUsUGUsUWUpfX0sb2UucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24odGUseCl7dGhpcy5fcHJlcGFyZUJsb2NrKHRlLHgpO3ZhciBQPXRoaXMuVyxW''@;'; + put 'put ''PXRoaXMuaFswXSxUPXRoaXMuaFsxXSxTPXRoaXMuaFsyXSxGPXRoaXMuaFszXSx5ZT10aGlzLmhbNF0sQ2U9dGhpcy5oWzVdLERlPXRoaXMuaFs2XSxQZT10aGlzLmhbN10sUWU9dGhpcy5oWzhdLCRlPXRoaXMuaFs5XSxndD10aGlzLmhbMTBdLHd0PXRoaXMuaFsxMV0sbXQ9dGhpcy5oWzEy''@;'; + put 'put ''XSx2dD10aGlzLmhbMTNdLEF0PXRoaXMuaFsxNF0saHQ9dGhpcy5oWzE1XTtFKHRoaXMuay5sZW5ndGg9PT1QLmxlbmd0aCk7Zm9yKHZhciBCdD0wO0J0PFAubGVuZ3RoO0J0Kz0yKXt2YXIgb249QXQsX3Q9aHQsdHQ9SWUoUWUsJGUpLGV0PVRlKFFlLCRlKSxhdD1jZShRZSwwLGd0LDAsbXQp''@;'; + put 'put ''LEx0PWRlKDAsJGUsMCx3dCwwLHZ0KSxDdD10aGlzLmtbQnRdLGZ0PXRoaXMua1tCdCsxXSxIdD1QW0J0XSxHZT1QW0J0KzFdLFVlPWVlKG9uLF90LHR0LGV0LGF0LEx0LEN0LGZ0LEh0LEdlKSx5dD1xKG9uLF90LHR0LGV0LGF0LEx0LEN0LGZ0LEh0LEdlKTtvbj1rZShWLFQpLF90PVNlKFYs''@;'; + put 'put ''VCksdHQ9dmUoViwwLFMsMCx5ZSksZXQ9QWUoMCxULDAsRiwwLENlKTt2YXIganQ9YWUob24sX3QsdHQsZXQpLFF0PVkob24sX3QsdHQsZXQpO0F0PW10LGh0PXZ0LG10PWd0LHZ0PXd0LGd0PVFlLHd0PSRlLFFlPWFlKERlLFBlLFVlLHl0KSwkZT1ZKFBlLFBlLFVlLHl0KSxEZT15ZSxQZT1D''@;'; + put 'put ''ZSx5ZT1TLENlPUYsUz1WLEY9VCxWPWFlKFVlLHl0LGp0LFF0KSxUPVkoVWUseXQsanQsUXQpfWllKHRoaXMuaCwwLFYsVCksaWUodGhpcy5oLDIsUyxGKSxpZSh0aGlzLmgsNCx5ZSxDZSksaWUodGhpcy5oLDYsRGUsUGUpLGllKHRoaXMuaCw4LFFlLCRlKSxpZSh0aGlzLmgsMTAsZ3Qsd3Qp''@;'; + put 'put ''LGllKHRoaXMuaCwxMixtdCx2dCksaWUodGhpcy5oLDE0LEF0LGh0KX0sb2UucHJvdG90eXBlLl9kaWdlc3Q9ZnVuY3Rpb24odGUpe3JldHVybiJoZXgiPT09dGU/bWUudG9IZXgzMih0aGlzLmgsImJpZyIpOm1lLnNwbGl0MzIodGhpcy5oLCJiaWciKX19LDMzMTEzOihYZSxKZSxMKT0+eyJ1''@;'; + put 'put ''c2Ugc3RyaWN0Ijt2YXIgQj1MKDI5Mjk5KS5yb3RyMzI7ZnVuY3Rpb24gTWUoVyxOLGVlKXtyZXR1cm4gVyZOXn5XJmVlfWZ1bmN0aW9uIFUoVyxOLGVlKXtyZXR1cm4gVyZOXlcmZWVeTiZlZX1mdW5jdGlvbiBRKFcsTixlZSl7cmV0dXJuIFdeTl5lZX1KZS5mdF8xPWZ1bmN0aW9uIEUoVyxO''@;'; + put 'put ''LGVlLHEpe3JldHVybiAwPT09Vz9NZShOLGVlLHEpOjE9PT1XfHwzPT09Vz9RKE4sZWUscSk6Mj09PVc/VShOLGVlLHEpOnZvaWQgMH0sSmUuY2gzMj1NZSxKZS5tYWozMj1VLEplLnAzMj1RLEplLnMwXzI1Nj1mdW5jdGlvbiBaKFcpe3JldHVybiBCKFcsMileQihXLDEzKV5CKFcsMjIpfSxK''@;'; + put 'put ''ZS5zMV8yNTY9ZnVuY3Rpb24gaWUoVyl7cmV0dXJuIEIoVyw2KV5CKFcsMTEpXkIoVywyNSl9LEplLmcwXzI1Nj1mdW5jdGlvbiBhZShXKXtyZXR1cm4gQihXLDcpXkIoVywxOCleVz4+PjN9LEplLmcxXzI1Nj1mdW5jdGlvbiBZKFcpe3JldHVybiBCKFcsMTcpXkIoVywxOSleVz4+PjEwfX0s''@;'; + put 'put ''MjkyOTk6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDMyMzkxKSxCPUwoODM4OTQpO2Z1bmN0aW9uIEUoeixuZSl7cmV0dXJuISg1NTI5NiE9KDY0NTEyJnouY2hhckNvZGVBdChuZSkpfHxuZTwwfHxuZSsxPj16Lmxlbmd0aCkmJjU2MzIwPT0oNjQ1MTImei5jaGFyQ29kZUF0''@;'; + put 'put ''KG5lKzEpKX1mdW5jdGlvbiBRKHope3JldHVybih6Pj4+MjR8ej4+PjgmNjUyODB8ejw8OCYxNjcxMTY4MHwoMjU1JnopPDwyNCk+Pj4wfWZ1bmN0aW9uIGllKHope3JldHVybiAxPT09ei5sZW5ndGg/IjAiK3o6en1mdW5jdGlvbiBhZSh6KXtyZXR1cm4gNz09PXoubGVuZ3RoPyIwIit6OjY9''@;'; + put 'put ''PT16Lmxlbmd0aD8iMDAiK3o6NT09PXoubGVuZ3RoPyIwMDAiK3o6ND09PXoubGVuZ3RoPyIwMDAwIit6OjM9PT16Lmxlbmd0aD8iMDAwMDAiK3o6Mj09PXoubGVuZ3RoPyIwMDAwMDAiK3o6MT09PXoubGVuZ3RoPyIwMDAwMDAwIit6Onp9SmUuaW5oZXJpdHM9QixKZS50b0FycmF5PWZ1bmN0''@;'; + put 'put ''aW9uIE1lKHosbmUpe2lmKEFycmF5LmlzQXJyYXkoeikpcmV0dXJuIHouc2xpY2UoKTtpZigheilyZXR1cm5bXTt2YXIgdGU9W107aWYoInN0cmluZyI9PXR5cGVvZiB6KWlmKG5lKXtpZigiaGV4Ij09PW5lKWZvcigoej16LnJlcGxhY2UoL1teYS16MC05XSsvZ2ksIiIpKS5sZW5ndGglMiE9''@;'; + put 'put ''MCYmKHo9IjAiK3opLFA9MDtQPHoubGVuZ3RoO1ArPTIpdGUucHVzaChwYXJzZUludCh6W1BdK3pbUCsxXSwxNikpfWVsc2UgZm9yKHZhciB4PTAsUD0wO1A8ei5sZW5ndGg7UCsrKXt2YXIgVj16LmNoYXJDb2RlQXQoUCk7VjwxMjg/dGVbeCsrXT1WOlY8MjA0OD8odGVbeCsrXT1WPj42fDE5''@;'; + put 'put ''Mix0ZVt4KytdPTYzJlZ8MTI4KTpFKHosUCk/KFY9NjU1MzYrKCgxMDIzJlYpPDwxMCkrKDEwMjMmei5jaGFyQ29kZUF0KCsrUCkpLHRlW3grK109Vj4+MTh8MjQwLHRlW3grK109Vj4+MTImNjN8MTI4LHRlW3grK109Vj4+NiY2M3wxMjgsdGVbeCsrXT02MyZWfDEyOCk6KHRlW3grK109Vj4+''@;'; + put 'put ''MTJ8MjI0LHRlW3grK109Vj4+NiY2M3wxMjgsdGVbeCsrXT02MyZWfDEyOCl9ZWxzZSBmb3IoUD0wO1A8ei5sZW5ndGg7UCsrKXRlW1BdPTB8eltQXTtyZXR1cm4gdGV9LEplLnRvSGV4PWZ1bmN0aW9uIFUoeil7Zm9yKHZhciBuZT0iIix0ZT0wO3RlPHoubGVuZ3RoO3RlKyspbmUrPWllKHpb''@;'; + put 'put ''dGVdLnRvU3RyaW5nKDE2KSk7cmV0dXJuIG5lfSxKZS5odG9ubD1RLEplLnRvSGV4MzI9ZnVuY3Rpb24gWih6LG5lKXtmb3IodmFyIHRlPSIiLHg9MDt4PHoubGVuZ3RoO3grKyl7dmFyIFA9elt4XTsibGl0dGxlIj09PW5lJiYoUD1RKFApKSx0ZSs9YWUoUC50b1N0cmluZygxNikpfXJldHVy''@;'; + put 'put ''biB0ZX0sSmUuemVybzI9aWUsSmUuemVybzg9YWUsSmUuam9pbjMyPWZ1bmN0aW9uIFkoeixuZSx0ZSx4KXt2YXIgUD10ZS1uZTttZShQJTQ9PTApO2Zvcih2YXIgVj1uZXcgQXJyYXkoUC80KSxUPTAsUz1uZTtUPFYubGVuZ3RoO1QrKyxTKz00KVZbVF09KCJiaWciPT09eD96W1NdPDwyNHx6''@;'; + put 'put ''W1MrMV08PDE2fHpbUysyXTw8OHx6W1MrM106eltTKzNdPDwyNHx6W1MrMl08PDE2fHpbUysxXTw8OHx6W1NdKT4+PjA7cmV0dXJuIFZ9LEplLnNwbGl0MzI9ZnVuY3Rpb24gVyh6LG5lKXtmb3IodmFyIHRlPW5ldyBBcnJheSg0KnoubGVuZ3RoKSx4PTAsUD0wO3g8ei5sZW5ndGg7eCsrLFAr''@;'; + put 'put ''PTQpe3ZhciBWPXpbeF07ImJpZyI9PT1uZT8odGVbUF09Vj4+PjI0LHRlW1ArMV09Vj4+PjE2JjI1NSx0ZVtQKzJdPVY+Pj44JjI1NSx0ZVtQKzNdPTI1NSZWKToodGVbUCszXT1WPj4+MjQsdGVbUCsyXT1WPj4+MTYmMjU1LHRlW1ArMV09Vj4+PjgmMjU1LHRlW1BdPTI1NSZWKX1yZXR1cm4g''@;'; + put 'put ''dGV9LEplLnJvdHIzMj1mdW5jdGlvbiBOKHosbmUpe3JldHVybiB6Pj4+bmV8ejw8MzItbmV9LEplLnJvdGwzMj1mdW5jdGlvbiBlZSh6LG5lKXtyZXR1cm4gejw8bmV8ej4+PjMyLW5lfSxKZS5zdW0zMj1mdW5jdGlvbiBxKHosbmUpe3JldHVybiB6K25lPj4+MH0sSmUuc3VtMzJfMz1mdW5j''@;'; + put 'put ''dGlvbiBKKHosbmUsdGUpe3JldHVybiB6K25lK3RlPj4+MH0sSmUuc3VtMzJfND1mdW5jdGlvbiBzZSh6LG5lLHRlLHgpe3JldHVybiB6K25lK3RlK3g+Pj4wfSxKZS5zdW0zMl81PWZ1bmN0aW9uIG9lKHosbmUsdGUseCxQKXtyZXR1cm4geituZSt0ZSt4K1A+Pj4wfSxKZS5zdW02ND1mdW5j''@;'; + put 'put ''dGlvbiBjZSh6LG5lLHRlLHgpe3ZhciBUPXgreltuZSsxXT4+PjA7eltuZV09KFQ8eD8xOjApK3RlK3pbbmVdPj4+MCx6W25lKzFdPVR9LEplLnN1bTY0X2hpPWZ1bmN0aW9uIGRlKHosbmUsdGUseCl7cmV0dXJuKG5lK3g+Pj4wPG5lPzE6MCkreit0ZT4+PjB9LEplLnN1bTY0X2xvPWZ1bmN0''@;'; + put 'put ''aW9uIHZlKHosbmUsdGUseCl7cmV0dXJuIG5lK3g+Pj4wfSxKZS5zdW02NF80X2hpPWZ1bmN0aW9uIEFlKHosbmUsdGUseCxQLFYsVCxTKXt2YXIgRj0wLHllPW5lO3JldHVybiBGKz0oeWU9eWUreD4+PjApPG5lPzE6MCxGKz0oeWU9eWUrVj4+PjApPFY/MTowLHordGUrUCtUKyhGKz0oeWU9''@;'; + put 'put ''eWUrUz4+PjApPFM/MTowKT4+PjB9LEplLnN1bTY0XzRfbG89ZnVuY3Rpb24ga2UoeixuZSx0ZSx4LFAsVixULFMpe3JldHVybiBuZSt4K1YrUz4+PjB9LEplLnN1bTY0XzVfaGk9ZnVuY3Rpb24gU2UoeixuZSx0ZSx4LFAsVixULFMsRix5ZSl7dmFyIENlPTAsRGU9bmU7cmV0dXJuIENlKz0o''@;'; + put 'put ''RGU9RGUreD4+PjApPG5lPzE6MCxDZSs9KERlPURlK1Y+Pj4wKTxWPzE6MCxDZSs9KERlPURlK1M+Pj4wKTxTPzE6MCx6K3RlK1ArVCtGKyhDZSs9KERlPURlK3llPj4+MCk8eWU/MTowKT4+PjB9LEplLnN1bTY0XzVfbG89ZnVuY3Rpb24gSWUoeixuZSx0ZSx4LFAsVixULFMsRix5ZSl7cmV0''@;'; + put 'put ''dXJuIG5lK3grVitTK3llPj4+MH0sSmUucm90cjY0X2hpPWZ1bmN0aW9uIFRlKHosbmUsdGUpe3JldHVybihuZTw8MzItdGV8ej4+PnRlKT4+PjB9LEplLnJvdHI2NF9sbz1mdW5jdGlvbiBFZSh6LG5lLHRlKXtyZXR1cm4oejw8MzItdGV8bmU+Pj50ZSk+Pj4wfSxKZS5zaHI2NF9oaT1mdW5j''@;'; + put 'put ''dGlvbiBoZSh6LG5lLHRlKXtyZXR1cm4gej4+PnRlfSxKZS5zaHI2NF9sbz1mdW5jdGlvbiBPKHosbmUsdGUpe3JldHVybih6PDwzMi10ZXxuZT4+PnRlKT4+PjB9fSw1MjQzODooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoMzcwODQpLEI9TCg1ODE5NSksRT1MKDMyMzkxKTtm''@;'; + put 'put ''dW5jdGlvbiBNZShVKXtpZighKHRoaXMgaW5zdGFuY2VvZiBNZSkpcmV0dXJuIG5ldyBNZShVKTt0aGlzLmhhc2g9VS5oYXNoLHRoaXMucHJlZFJlc2lzdD0hIVUucHJlZFJlc2lzdCx0aGlzLm91dExlbj10aGlzLmhhc2gub3V0U2l6ZSx0aGlzLm1pbkVudHJvcHk9VS5taW5FbnRyb3B5fHx0''@;'; + put 'put ''aGlzLmhhc2guaG1hY1N0cmVuZ3RoLHRoaXMuX3Jlc2VlZD1udWxsLHRoaXMucmVzZWVkSW50ZXJ2YWw9bnVsbCx0aGlzLks9bnVsbCx0aGlzLlY9bnVsbDt2YXIgUT1CLnRvQXJyYXkoVS5lbnRyb3B5LFUuZW50cm9weUVuY3x8ImhleCIpLFo9Qi50b0FycmF5KFUubm9uY2UsVS5ub25jZUVu''@;'; + put 'put ''Y3x8ImhleCIpLGllPUIudG9BcnJheShVLnBlcnMsVS5wZXJzRW5jfHwiaGV4Iik7RShRLmxlbmd0aD49dGhpcy5taW5FbnRyb3B5LzgsIk5vdCBlbm91Z2ggZW50cm9weS4gTWluaW11bSBpczogIit0aGlzLm1pbkVudHJvcHkrIiBiaXRzIiksdGhpcy5faW5pdChRLFosaWUpfVhlLmV4cG9y''@;'; + put 'put ''dHM9TWUsTWUucHJvdG90eXBlLl9pbml0PWZ1bmN0aW9uKFEsWixpZSl7dmFyIGFlPVEuY29uY2F0KFopLmNvbmNhdChpZSk7dGhpcy5LPW5ldyBBcnJheSh0aGlzLm91dExlbi84KSx0aGlzLlY9bmV3IEFycmF5KHRoaXMub3V0TGVuLzgpO2Zvcih2YXIgWT0wO1k8dGhpcy5WLmxlbmd0aDtZ''@;'; + put 'put ''KyspdGhpcy5LW1ldPTAsdGhpcy5WW1ldPTE7dGhpcy5fdXBkYXRlKGFlKSx0aGlzLl9yZXNlZWQ9MSx0aGlzLnJlc2VlZEludGVydmFsPTI4MTQ3NDk3NjcxMDY1Nn0sTWUucHJvdG90eXBlLl9obWFjPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBtZS5obWFjKHRoaXMuaGFzaCx0aGlzLkspfSxN''@;'; + put 'put ''ZS5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbihRKXt2YXIgWj10aGlzLl9obWFjKCkudXBkYXRlKHRoaXMuVikudXBkYXRlKFswXSk7USYmKFo9Wi51cGRhdGUoUSkpLHRoaXMuSz1aLmRpZ2VzdCgpLHRoaXMuVj10aGlzLl9obWFjKCkudXBkYXRlKHRoaXMuVikuZGlnZXN0KCksUSYmKHRo''@;'; + put 'put ''aXMuSz10aGlzLl9obWFjKCkudXBkYXRlKHRoaXMuVikudXBkYXRlKFsxXSkudXBkYXRlKFEpLmRpZ2VzdCgpLHRoaXMuVj10aGlzLl9obWFjKCkudXBkYXRlKHRoaXMuVikuZGlnZXN0KCkpfSxNZS5wcm90b3R5cGUucmVzZWVkPWZ1bmN0aW9uKFEsWixpZSxhZSl7InN0cmluZyIhPXR5cGVv''@;'; + put 'put ''ZiBaJiYoYWU9aWUsaWU9WixaPW51bGwpLFE9Qi50b0FycmF5KFEsWiksaWU9Qi50b0FycmF5KGllLGFlKSxFKFEubGVuZ3RoPj10aGlzLm1pbkVudHJvcHkvOCwiTm90IGVub3VnaCBlbnRyb3B5LiBNaW5pbXVtIGlzOiAiK3RoaXMubWluRW50cm9weSsiIGJpdHMiKSx0aGlzLl91cGRhdGUo''@;'; + put 'put ''US5jb25jYXQoaWV8fFtdKSksdGhpcy5fcmVzZWVkPTF9LE1lLnByb3RvdHlwZS5nZW5lcmF0ZT1mdW5jdGlvbihRLFosaWUsYWUpe2lmKHRoaXMuX3Jlc2VlZD50aGlzLnJlc2VlZEludGVydmFsKXRocm93IG5ldyBFcnJvcigiUmVzZWVkIGlzIHJlcXVpcmVkIik7InN0cmluZyIhPXR5cGVv''@;'; + put 'put ''ZiBaJiYoYWU9aWUsaWU9WixaPW51bGwpLGllJiYoaWU9Qi50b0FycmF5KGllLGFlfHwiaGV4IiksdGhpcy5fdXBkYXRlKGllKSk7Zm9yKHZhciBZPVtdO1kubGVuZ3RoPFE7KXRoaXMuVj10aGlzLl9obWFjKCkudXBkYXRlKHRoaXMuVikuZGlnZXN0KCksWT1ZLmNvbmNhdCh0aGlzLlYpO3Zh''@;'; + put 'put ''ciBXPVkuc2xpY2UoMCxRKTtyZXR1cm4gdGhpcy5fdXBkYXRlKGllKSx0aGlzLl9yZXNlZWQrKyxCLmVuY29kZShXLFopfX0sNDY5Nzg6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDYyMDM4KS5CdWZmZXI7SmUuX2RiY3M9YWU7Zm9yKHZhciBCPS0xLE1lPS0xMCxVPS0xZTMs''@;'; + put 'put ''UT1uZXcgQXJyYXkoMjU2KSxpZT0wO2llPDI1NjtpZSsrKVFbaWVdPUI7ZnVuY3Rpb24gYWUoZWUscSl7aWYodGhpcy5lbmNvZGluZ05hbWU9ZWUuZW5jb2RpbmdOYW1lLCFlZSl0aHJvdyBuZXcgRXJyb3IoIkRCQ1MgY29kZWMgaXMgY2FsbGVkIHdpdGhvdXQgdGhlIGRhdGEuIik7aWYoIWVl''@;'; + put 'put ''LnRhYmxlKXRocm93IG5ldyBFcnJvcigiRW5jb2RpbmcgJyIrdGhpcy5lbmNvZGluZ05hbWUrIicgaGFzIG5vIGRhdGEuIik7dmFyIEo9ZWUudGFibGUoKTt0aGlzLmRlY29kZVRhYmxlcz1bXSx0aGlzLmRlY29kZVRhYmxlc1swXT1RLnNsaWNlKDApLHRoaXMuZGVjb2RlVGFibGVTZXE9W107''@;'; + put 'put ''Zm9yKHZhciBzZT0wO3NlPEoubGVuZ3RoO3NlKyspdGhpcy5fYWRkRGVjb2RlQ2h1bmsoSltzZV0pO3RoaXMuZGVmYXVsdENoYXJVbmljb2RlPXEuZGVmYXVsdENoYXJVbmljb2RlLHRoaXMuZW5jb2RlVGFibGU9W10sdGhpcy5lbmNvZGVUYWJsZVNlcT1bXTt2YXIgb2U9e307aWYoZWUuZW5j''@;'; + put 'put ''b2RlU2tpcFZhbHMpZm9yKHNlPTA7c2U8ZWUuZW5jb2RlU2tpcFZhbHMubGVuZ3RoO3NlKyspe3ZhciBjZT1lZS5lbmNvZGVTa2lwVmFsc1tzZV07aWYoIm51bWJlciI9PXR5cGVvZiBjZSlvZVtjZV09ITA7ZWxzZSBmb3IodmFyIGRlPWNlLmZyb207ZGU8PWNlLnRvO2RlKyspb2VbZGVdPSEw''@;'; + put 'put ''fWlmKHRoaXMuX2ZpbGxFbmNvZGVUYWJsZSgwLDAsb2UpLGVlLmVuY29kZUFkZClmb3IodmFyIHZlIGluIGVlLmVuY29kZUFkZClPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZWUuZW5jb2RlQWRkLHZlKSYmdGhpcy5fc2V0RW5jb2RlQ2hhcih2ZS5jaGFyQ29kZUF0KDAp''@;'; + put 'put ''LGVlLmVuY29kZUFkZFt2ZV0pO2lmKHRoaXMuZGVmQ2hhclNCPXRoaXMuZW5jb2RlVGFibGVbMF1bcS5kZWZhdWx0Q2hhclNpbmdsZUJ5dGUuY2hhckNvZGVBdCgwKV0sdGhpcy5kZWZDaGFyU0I9PT1CJiYodGhpcy5kZWZDaGFyU0I9dGhpcy5lbmNvZGVUYWJsZVswXVsiPyJdKSx0aGlzLmRl''@;'; + put 'put ''ZkNoYXJTQj09PUImJih0aGlzLmRlZkNoYXJTQj0iPyIuY2hhckNvZGVBdCgwKSksImZ1bmN0aW9uIj09dHlwZW9mIGVlLmdiMTgwMzApe3RoaXMuZ2IxODAzMD1lZS5nYjE4MDMwKCk7dmFyIEFlPXRoaXMuZGVjb2RlVGFibGVzLmxlbmd0aCxrZT10aGlzLmRlY29kZVRhYmxlc1tBZV09US5z''@;'; + put 'put ''bGljZSgwKSxTZT10aGlzLmRlY29kZVRhYmxlcy5sZW5ndGgsSWU9dGhpcy5kZWNvZGVUYWJsZXNbU2VdPVEuc2xpY2UoMCk7Zm9yKHNlPTEyOTtzZTw9MjU0O3NlKyspe3ZhciBFZT10aGlzLmRlY29kZVRhYmxlc1tVLXRoaXMuZGVjb2RlVGFibGVzWzBdW3NlXV07Zm9yKGRlPTQ4O2RlPD01''@;'; + put 'put ''NztkZSsrKUVlW2RlXT1VLUFlfWZvcihzZT0xMjk7c2U8PTI1NDtzZSsrKWtlW3NlXT1VLVNlO2ZvcihzZT00ODtzZTw9NTc7c2UrKylJZVtzZV09LTJ9fWZ1bmN0aW9uIFkoZWUscSl7dGhpcy5sZWFkU3Vycm9nYXRlPS0xLHRoaXMuc2VxT2JqPXZvaWQgMCx0aGlzLmVuY29kZVRhYmxlPXEu''@;'; + put 'put ''ZW5jb2RlVGFibGUsdGhpcy5lbmNvZGVUYWJsZVNlcT1xLmVuY29kZVRhYmxlU2VxLHRoaXMuZGVmYXVsdENoYXJTaW5nbGVCeXRlPXEuZGVmQ2hhclNCLHRoaXMuZ2IxODAzMD1xLmdiMTgwMzB9ZnVuY3Rpb24gVyhlZSxxKXt0aGlzLm5vZGVJZHg9MCx0aGlzLnByZXZCdWY9bWUuYWxsb2Mo''@;'; + put 'put ''MCksdGhpcy5kZWNvZGVUYWJsZXM9cS5kZWNvZGVUYWJsZXMsdGhpcy5kZWNvZGVUYWJsZVNlcT1xLmRlY29kZVRhYmxlU2VxLHRoaXMuZGVmYXVsdENoYXJVbmljb2RlPXEuZGVmYXVsdENoYXJVbmljb2RlLHRoaXMuZ2IxODAzMD1xLmdiMTgwMzB9ZnVuY3Rpb24gTihlZSxxKXtpZihlZVsw''@;'; + put 'put ''XT5xKXJldHVybi0xO2Zvcih2YXIgSj0wLHNlPWVlLmxlbmd0aDtKPHNlLTE7KXt2YXIgb2U9SitNYXRoLmZsb29yKChzZS1KKzEpLzIpO2VlW29lXTw9cT9KPW9lOnNlPW9lfXJldHVybiBKfWFlLnByb3RvdHlwZS5lbmNvZGVyPVksYWUucHJvdG90eXBlLmRlY29kZXI9VyxhZS5wcm90b3R5''@;'; + put 'put ''cGUuX2dldERlY29kZVRyaWVOb2RlPWZ1bmN0aW9uKGVlKXtmb3IodmFyIHE9W107ZWU+MDtlZT4+PTgpcS5wdXNoKDI1NSZlZSk7MD09cS5sZW5ndGgmJnEucHVzaCgwKTtmb3IodmFyIEo9dGhpcy5kZWNvZGVUYWJsZXNbMF0sc2U9cS5sZW5ndGgtMTtzZT4wO3NlLS0pe3ZhciBvZT1KW3Fb''@;'; + put 'put ''c2VdXTtpZihvZT09QilKW3Fbc2VdXT1VLXRoaXMuZGVjb2RlVGFibGVzLmxlbmd0aCx0aGlzLmRlY29kZVRhYmxlcy5wdXNoKEo9US5zbGljZSgwKSk7ZWxzZXtpZighKG9lPD1VKSl0aHJvdyBuZXcgRXJyb3IoIk92ZXJ3cml0ZSBieXRlIGluICIrdGhpcy5lbmNvZGluZ05hbWUrIiwgYWRk''@;'; + put 'put ''cjogIitlZS50b1N0cmluZygxNikpO0o9dGhpcy5kZWNvZGVUYWJsZXNbVS1vZV19fXJldHVybiBKfSxhZS5wcm90b3R5cGUuX2FkZERlY29kZUNodW5rPWZ1bmN0aW9uKGVlKXt2YXIgcT1wYXJzZUludChlZVswXSwxNiksSj10aGlzLl9nZXREZWNvZGVUcmllTm9kZShxKTtxJj0yNTU7Zm9y''@;'; + put 'put ''KHZhciBzZT0xO3NlPGVlLmxlbmd0aDtzZSsrKXt2YXIgb2U9ZWVbc2VdO2lmKCJzdHJpbmciPT10eXBlb2Ygb2UpZm9yKHZhciBjZT0wO2NlPG9lLmxlbmd0aDspe3ZhciBkZT1vZS5jaGFyQ29kZUF0KGNlKyspO2lmKDU1Mjk2PD1kZSYmZGU8NTYzMjApe3ZhciB2ZT1vZS5jaGFyQ29kZUF0''@;'; + put 'put ''KGNlKyspO2lmKCEoNTYzMjA8PXZlJiZ2ZTw1NzM0NCkpdGhyb3cgbmV3IEVycm9yKCJJbmNvcnJlY3Qgc3Vycm9nYXRlIHBhaXIgaW4gIit0aGlzLmVuY29kaW5nTmFtZSsiIGF0IGNodW5rICIrZWVbMF0pO0pbcSsrXT02NTUzNisxMDI0KihkZS01NTI5NikrKHZlLTU2MzIwKX1lbHNlIGlm''@;'; + put 'put ''KDQwODA8ZGUmJmRlPD00MDk1KXtmb3IodmFyIEFlPTQwOTUtZGUrMixrZT1bXSxTZT0wO1NlPEFlO1NlKyspa2UucHVzaChvZS5jaGFyQ29kZUF0KGNlKyspKTtKW3ErK109TWUtdGhpcy5kZWNvZGVUYWJsZVNlcS5sZW5ndGgsdGhpcy5kZWNvZGVUYWJsZVNlcS5wdXNoKGtlKX1lbHNlIEpb''@;'; + put 'put ''cSsrXT1kZX1lbHNle2lmKCJudW1iZXIiIT10eXBlb2Ygb2UpdGhyb3cgbmV3IEVycm9yKCJJbmNvcnJlY3QgdHlwZSAnIit0eXBlb2Ygb2UrIicgZ2l2ZW4gaW4gIit0aGlzLmVuY29kaW5nTmFtZSsiIGF0IGNodW5rICIrZWVbMF0pO3ZhciBJZT1KW3EtMV0rMTtmb3IoY2U9MDtjZTxvZTtj''@;'; + put 'put ''ZSsrKUpbcSsrXT1JZSsrfX1pZihxPjI1NSl0aHJvdyBuZXcgRXJyb3IoIkluY29ycmVjdCBjaHVuayBpbiAiK3RoaXMuZW5jb2RpbmdOYW1lKyIgYXQgYWRkciAiK2VlWzBdKyI6IHRvbyBsb25nIitxKX0sYWUucHJvdG90eXBlLl9nZXRFbmNvZGVCdWNrZXQ9ZnVuY3Rpb24oZWUpe3ZhciBx''@;'; + put 'put ''PWVlPj44O3JldHVybiB2b2lkIDA9PT10aGlzLmVuY29kZVRhYmxlW3FdJiYodGhpcy5lbmNvZGVUYWJsZVtxXT1RLnNsaWNlKDApKSx0aGlzLmVuY29kZVRhYmxlW3FdfSxhZS5wcm90b3R5cGUuX3NldEVuY29kZUNoYXI9ZnVuY3Rpb24oZWUscSl7dmFyIEo9dGhpcy5fZ2V0RW5jb2RlQnVj''@;'; + put 'put ''a2V0KGVlKSxzZT0yNTUmZWU7SltzZV08PU1lP3RoaXMuZW5jb2RlVGFibGVTZXFbTWUtSltzZV1dWy0xXT1xOkpbc2VdPT1CJiYoSltzZV09cSl9LGFlLnByb3RvdHlwZS5fc2V0RW5jb2RlU2VxdWVuY2U9ZnVuY3Rpb24oZWUscSl7dmFyIGNlLEo9ZWVbMF0sc2U9dGhpcy5fZ2V0RW5jb2Rl''@;'; + put 'put ''QnVja2V0KEopLG9lPTI1NSZKO3NlW29lXTw9TWU/Y2U9dGhpcy5lbmNvZGVUYWJsZVNlcVtNZS1zZVtvZV1dOihjZT17fSxzZVtvZV0hPT1CJiYoY2VbLTFdPXNlW29lXSksc2Vbb2VdPU1lLXRoaXMuZW5jb2RlVGFibGVTZXEubGVuZ3RoLHRoaXMuZW5jb2RlVGFibGVTZXEucHVzaChjZSkp''@;'; + put 'put ''O2Zvcih2YXIgZGU9MTtkZTxlZS5sZW5ndGgtMTtkZSsrKXt2YXIgdmU9Y2VbSl07Im9iamVjdCI9PXR5cGVvZiB2ZT9jZT12ZTooY2U9Y2VbSl09e30sdm9pZCAwIT09dmUmJihjZVstMV09dmUpKX1jZVtKPWVlW2VlLmxlbmd0aC0xXV09cX0sYWUucHJvdG90eXBlLl9maWxsRW5jb2RlVGFi''@;'; + put 'put ''bGU9ZnVuY3Rpb24oZWUscSxKKXtmb3IodmFyIHNlPXRoaXMuZGVjb2RlVGFibGVzW2VlXSxvZT0wO29lPDI1NjtvZSsrKXt2YXIgY2U9c2Vbb2VdLGRlPXErb2U7SltkZV18fChjZT49MD90aGlzLl9zZXRFbmNvZGVDaGFyKGNlLGRlKTpjZTw9VT90aGlzLl9maWxsRW5jb2RlVGFibGUoVS1j''@;'; + put 'put ''ZSxkZTw8OCxKKTpjZTw9TWUmJnRoaXMuX3NldEVuY29kZVNlcXVlbmNlKHRoaXMuZGVjb2RlVGFibGVTZXFbTWUtY2VdLGRlKSl9fSxZLnByb3RvdHlwZS53cml0ZT1mdW5jdGlvbihlZSl7Zm9yKHZhciBxPW1lLmFsbG9jKGVlLmxlbmd0aCoodGhpcy5nYjE4MDMwPzQ6MykpLEo9dGhpcy5s''@;'; + put 'put ''ZWFkU3Vycm9nYXRlLHNlPXRoaXMuc2VxT2JqLG9lPS0xLGNlPTAsZGU9MDs7KXtpZigtMT09PW9lKXtpZihjZT09ZWUubGVuZ3RoKWJyZWFrO3ZhciB2ZT1lZS5jaGFyQ29kZUF0KGNlKyspfWVsc2UgdmU9b2Usb2U9LTE7aWYoNTUyOTY8PXZlJiZ2ZTw1NzM0NClpZih2ZTw1NjMyMCl7aWYo''@;'; + put 'put ''LTE9PT1KKXtKPXZlO2NvbnRpbnVlfUo9dmUsdmU9Qn1lbHNlLTEhPT1KPyh2ZT02NTUzNisxMDI0KihKLTU1Mjk2KSsodmUtNTYzMjApLEo9LTEpOnZlPUI7ZWxzZS0xIT09SiYmKG9lPXZlLHZlPUIsSj0tMSk7dmFyIEFlPUI7aWYodm9pZCAwIT09c2UmJnZlIT1CKXt2YXIga2U9c2VbdmVd''@;'; + put 'put ''O2lmKCJvYmplY3QiPT10eXBlb2Yga2Upe3NlPWtlO2NvbnRpbnVlfSJudW1iZXIiPT10eXBlb2Yga2U/QWU9a2U6bnVsbD09a2UmJnZvaWQgMCE9PShrZT1zZVstMV0pJiYoQWU9a2Usb2U9dmUpLHNlPXZvaWQgMH1lbHNlIGlmKHZlPj0wKXt2YXIgU2U9dGhpcy5lbmNvZGVUYWJsZVt2ZT4+''@;'; + put 'put ''OF07aWYodm9pZCAwIT09U2UmJihBZT1TZVsyNTUmdmVdKSxBZTw9TWUpe3NlPXRoaXMuZW5jb2RlVGFibGVTZXFbTWUtQWVdO2NvbnRpbnVlfWlmKEFlPT1CJiZ0aGlzLmdiMTgwMzApe3ZhciBJZT1OKHRoaXMuZ2IxODAzMC51Q2hhcnMsdmUpO2lmKC0xIT1JZSl7QWU9dGhpcy5nYjE4MDMw''@;'; + put 'put ''LmdiQ2hhcnNbSWVdKyh2ZS10aGlzLmdiMTgwMzAudUNoYXJzW0llXSkscVtkZSsrXT0xMjkrTWF0aC5mbG9vcihBZS8xMjYwMCksQWUlPTEyNjAwLHFbZGUrK109NDgrTWF0aC5mbG9vcihBZS8xMjYwKSxBZSU9MTI2MCxxW2RlKytdPTEyOStNYXRoLmZsb29yKEFlLzEwKSxxW2RlKytdPTQ4''@;'; + put 'put ''KyhBZSU9MTApO2NvbnRpbnVlfX19QWU9PT1CJiYoQWU9dGhpcy5kZWZhdWx0Q2hhclNpbmdsZUJ5dGUpLEFlPDI1Nj9xW2RlKytdPUFlOkFlPDY1NTM2PyhxW2RlKytdPUFlPj44LHFbZGUrK109MjU1JkFlKToocVtkZSsrXT1BZT4+MTYscVtkZSsrXT1BZT4+OCYyNTUscVtkZSsrXT0yNTUm''@;'; + put 'put ''QWUpfXJldHVybiB0aGlzLnNlcU9iaj1zZSx0aGlzLmxlYWRTdXJyb2dhdGU9SixxLnNsaWNlKDAsZGUpfSxZLnByb3RvdHlwZS5lbmQ9ZnVuY3Rpb24oKXtpZigtMSE9PXRoaXMubGVhZFN1cnJvZ2F0ZXx8dm9pZCAwIT09dGhpcy5zZXFPYmope3ZhciBlZT1tZS5hbGxvYygxMCkscT0wO2lm''@;'; + put 'put ''KHRoaXMuc2VxT2JqKXt2YXIgSj10aGlzLnNlcU9ialstMV07dm9pZCAwIT09SiYmKEo8MjU2P2VlW3ErK109SjooZWVbcSsrXT1KPj44LGVlW3ErK109MjU1JkopKSx0aGlzLnNlcU9iaj12b2lkIDB9cmV0dXJuLTEhPT10aGlzLmxlYWRTdXJyb2dhdGUmJihlZVtxKytdPXRoaXMuZGVmYXVs''@;'; + put 'put ''dENoYXJTaW5nbGVCeXRlLHRoaXMubGVhZFN1cnJvZ2F0ZT0tMSksZWUuc2xpY2UoMCxxKX19LFkucHJvdG90eXBlLmZpbmRJZHg9TixXLnByb3RvdHlwZS53cml0ZT1mdW5jdGlvbihlZSl7dmFyIHE9bWUuYWxsb2MoMiplZS5sZW5ndGgpLEo9dGhpcy5ub2RlSWR4LHNlPXRoaXMucHJldkJ1''@;'; + put 'put ''ZixvZT10aGlzLnByZXZCdWYubGVuZ3RoLGNlPS10aGlzLnByZXZCdWYubGVuZ3RoO29lPjAmJihzZT1tZS5jb25jYXQoW3NlLGVlLnNsaWNlKDAsMTApXSkpO2Zvcih2YXIgdmU9MCxBZT0wO3ZlPGVlLmxlbmd0aDt2ZSsrKXt2YXIgZGUsa2U9dmU+PTA/ZWVbdmVdOnNlW3ZlK29lXTtpZigh''@;'; + put 'put ''KChkZT10aGlzLmRlY29kZVRhYmxlc1tKXVtrZV0pPj0wKSlpZihkZT09PUIpdmU9Y2UsZGU9dGhpcy5kZWZhdWx0Q2hhclVuaWNvZGUuY2hhckNvZGVBdCgwKTtlbHNlIGlmKC0yPT09ZGUpe3ZhciBTZT1jZT49MD9lZS5zbGljZShjZSx2ZSsxKTpzZS5zbGljZShjZStvZSx2ZSsxK29lKSxJ''@;'; + put 'put ''ZT0xMjYwMCooU2VbMF0tMTI5KSsxMjYwKihTZVsxXS00OCkrMTAqKFNlWzJdLTEyOSkrKFNlWzNdLTQ4KSxUZT1OKHRoaXMuZ2IxODAzMC5nYkNoYXJzLEllKTtkZT10aGlzLmdiMTgwMzAudUNoYXJzW1RlXStJZS10aGlzLmdiMTgwMzAuZ2JDaGFyc1tUZV19ZWxzZXtpZihkZTw9VSl7Sj1V''@;'; + put 'put ''LWRlO2NvbnRpbnVlfWlmKCEoZGU8PU1lKSl0aHJvdyBuZXcgRXJyb3IoImljb252LWxpdGUgaW50ZXJuYWwgZXJyb3I6IGludmFsaWQgZGVjb2RpbmcgdGFibGUgdmFsdWUgIitkZSsiIGF0ICIrSisiLyIra2UpO2Zvcih2YXIgRWU9dGhpcy5kZWNvZGVUYWJsZVNlcVtNZS1kZV0saGU9MDto''@;'; + put 'put ''ZTxFZS5sZW5ndGgtMTtoZSsrKXFbQWUrK109MjU1JihkZT1FZVtoZV0pLHFbQWUrK109ZGU+Pjg7ZGU9RWVbRWUubGVuZ3RoLTFdfWlmKGRlPjY1NTM1KXtkZS09NjU1MzY7dmFyIE89NTUyOTYrTWF0aC5mbG9vcihkZS8xMDI0KTtxW0FlKytdPTI1NSZPLHFbQWUrK109Tz4+OCxkZT01NjMy''@;'; + put 'put ''MCtkZSUxMDI0fXFbQWUrK109MjU1JmRlLHFbQWUrK109ZGU+PjgsSj0wLGNlPXZlKzF9cmV0dXJuIHRoaXMubm9kZUlkeD1KLHRoaXMucHJldkJ1Zj1jZT49MD9lZS5zbGljZShjZSk6c2Uuc2xpY2UoY2Urb2UpLHEuc2xpY2UoMCxBZSkudG9TdHJpbmcoInVjczIiKX0sVy5wcm90b3R5cGUu''@;'; + put 'put ''ZW5kPWZ1bmN0aW9uKCl7Zm9yKHZhciBlZT0iIjt0aGlzLnByZXZCdWYubGVuZ3RoPjA7KXtlZSs9dGhpcy5kZWZhdWx0Q2hhclVuaWNvZGU7dmFyIHE9dGhpcy5wcmV2QnVmLnNsaWNlKDEpO3RoaXMucHJldkJ1Zj1tZS5hbGxvYygwKSx0aGlzLm5vZGVJZHg9MCxxLmxlbmd0aD4wJiYoZWUr''@;'; + put 'put ''PXRoaXMud3JpdGUocSkpfXJldHVybiB0aGlzLm5vZGVJZHg9MCxlZX19LDQ5NTA0OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0IjtYZS5leHBvcnRzPXtzaGlmdGppczp7dHlwZToiX2RiY3MiLHRhYmxlOmZ1bmN0aW9uKCl7cmV0dXJuIEwoMjcwMTQpfSxlbmNvZGVBZGQ6eyJceGE1Ijo5Miwi''@;'; + put 'put ''XHUyMDNlIjoxMjZ9LGVuY29kZVNraXBWYWxzOlt7ZnJvbTo2MDczNix0bzo2MzgwOH1dfSxjc3NoaWZ0amlzOiJzaGlmdGppcyIsbXNrYW5qaToic2hpZnRqaXMiLHNqaXM6InNoaWZ0amlzIix3aW5kb3dzMzFqOiJzaGlmdGppcyIsbXMzMWo6InNoaWZ0amlzIix4c2ppczoic2hpZnRqaXMi''@;'; + put 'put ''LHdpbmRvd3M5MzI6InNoaWZ0amlzIixtczkzMjoic2hpZnRqaXMiLDkzMjoic2hpZnRqaXMiLGNwOTMyOiJzaGlmdGppcyIsZXVjanA6e3R5cGU6Il9kYmNzIix0YWJsZTpmdW5jdGlvbigpe3JldHVybiBMKDMxNTMyKX0sZW5jb2RlQWRkOnsiXHhhNSI6OTIsIlx1MjAzZSI6MTI2fX0sZ2Iy''@;'; + put 'put ''MzEyOiJjcDkzNiIsZ2IyMzEyODA6ImNwOTM2IixnYjIzMTIxOTgwOiJjcDkzNiIsY3NnYjIzMTI6ImNwOTM2Iixjc2lzbzU4Z2IyMzEyODA6ImNwOTM2IixldWNjbjoiY3A5MzYiLHdpbmRvd3M5MzY6ImNwOTM2IixtczkzNjoiY3A5MzYiLDkzNjoiY3A5MzYiLGNwOTM2Ont0eXBlOiJfZGJj''@;'; + put 'put ''cyIsdGFibGU6ZnVuY3Rpb24oKXtyZXR1cm4gTCgxMzMzNil9fSxnYms6e3R5cGU6Il9kYmNzIix0YWJsZTpmdW5jdGlvbigpe3JldHVybiBMKDEzMzM2KS5jb25jYXQoTCg0NDM0NikpfX0seGdiazoiZ2JrIixpc29pcjU4OiJnYmsiLGdiMTgwMzA6e3R5cGU6Il9kYmNzIix0YWJsZTpmdW5j''@;'; + put 'put ''dGlvbigpe3JldHVybiBMKDEzMzM2KS5jb25jYXQoTCg0NDM0NikpfSxnYjE4MDMwOmZ1bmN0aW9uKCl7cmV0dXJuIEwoMzYyNTgpfSxlbmNvZGVTa2lwVmFsczpbMTI4XSxlbmNvZGVBZGQ6eyJcdTIwYWMiOjQxNjk5fX0sY2hpbmVzZToiZ2IxODAzMCIsd2luZG93czk0OToiY3A5NDkiLG1z''@;'; + put 'put ''OTQ5OiJjcDk0OSIsOTQ5OiJjcDk0OSIsY3A5NDk6e3R5cGU6Il9kYmNzIix0YWJsZTpmdW5jdGlvbigpe3JldHVybiBMKDc3MzQ4KX19LGNzZXVja3I6ImNwOTQ5Iixjc2tzYzU2MDExOTg3OiJjcDk0OSIsZXVja3I6ImNwOTQ5Iixpc29pcjE0OToiY3A5NDkiLGtvcmVhbjoiY3A5NDkiLGtz''@;'; + put 'put ''YzU2MDExOTg3OiJjcDk0OSIsa3NjNTYwMTE5ODk6ImNwOTQ5Iixrc2M1NjAxOiJjcDk0OSIsd2luZG93czk1MDoiY3A5NTAiLG1zOTUwOiJjcDk1MCIsOTUwOiJjcDk1MCIsY3A5NTA6e3R5cGU6Il9kYmNzIix0YWJsZTpmdW5jdGlvbigpe3JldHVybiBMKDc0Mjg0KX19LGJpZzU6ImJpZzVo''@;'; + put 'put ''a3NjcyIsYmlnNWhrc2NzOnt0eXBlOiJfZGJjcyIsdGFibGU6ZnVuY3Rpb24oKXtyZXR1cm4gTCg3NDI4NCkuY29uY2F0KEwoNjM0ODApKX0sZW5jb2RlU2tpcFZhbHM6WzQxNjc2XX0sY25iaWc1OiJiaWc1aGtzY3MiLGNzYmlnNToiYmlnNWhrc2NzIix4eGJpZzU6ImJpZzVoa3NjcyJ9fSw3''@;'; + put 'put ''OTcxNDooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7Zm9yKHZhciBtZT1bTCg1NjkxNyksTCg4MjYwNiksTCg5Mzc2MCksTCgyODc3OCksTCg0MTMxMyksTCg2ODYxOSksTCg3NDExNCksTCg0Njk3OCksTCg0OTUwNCldLEI9MDtCPG1lLmxlbmd0aDtCKyspe3ZhciBFPW1lW0JdO2Zvcih2YXIg''@;'; + put 'put ''TWUgaW4gRSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoRSxNZSkmJihKZVtNZV09RVtNZV0pfX0sNTY5MTc6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDYyMDM4KS5CdWZmZXI7ZnVuY3Rpb24gQihhZSxZKXt0aGlzLmVuYz1hZS5lbmNvZGluZ05hbWUs''@;'; + put 'put ''dGhpcy5ib21Bd2FyZT1hZS5ib21Bd2FyZSwiYmFzZTY0Ij09PXRoaXMuZW5jP3RoaXMuZW5jb2Rlcj1ROiJjZXN1OCI9PT10aGlzLmVuYyYmKHRoaXMuZW5jPSJ1dGY4Iix0aGlzLmVuY29kZXI9WiwiXHV7MWY0YTl9IiE9PW1lLmZyb20oImVkYTBiZGVkYjJhOSIsImhleCIpLnRvU3RyaW5n''@;'; + put 'put ''KCkmJih0aGlzLmRlY29kZXI9aWUsdGhpcy5kZWZhdWx0Q2hhclVuaWNvZGU9WS5kZWZhdWx0Q2hhclVuaWNvZGUpKX1YZS5leHBvcnRzPXt1dGY4Ont0eXBlOiJfaW50ZXJuYWwiLGJvbUF3YXJlOiEwfSxjZXN1ODp7dHlwZToiX2ludGVybmFsIixib21Bd2FyZTohMH0sdW5pY29kZTExdXRm''@;'; + put 'put ''ODoidXRmOCIsdWNzMjp7dHlwZToiX2ludGVybmFsIixib21Bd2FyZTohMH0sdXRmMTZsZToidWNzMiIsYmluYXJ5Ont0eXBlOiJfaW50ZXJuYWwifSxiYXNlNjQ6e3R5cGU6Il9pbnRlcm5hbCJ9LGhleDp7dHlwZToiX2ludGVybmFsIn0sX2ludGVybmFsOkJ9LEIucHJvdG90eXBlLmVuY29k''@;'; + put 'put ''ZXI9VSxCLnByb3RvdHlwZS5kZWNvZGVyPU1lO3ZhciBFPUwoNzMwNTQpLnM7ZnVuY3Rpb24gTWUoYWUsWSl7RS5jYWxsKHRoaXMsWS5lbmMpfWZ1bmN0aW9uIFUoYWUsWSl7dGhpcy5lbmM9WS5lbmN9ZnVuY3Rpb24gUShhZSxZKXt0aGlzLnByZXZTdHI9IiJ9ZnVuY3Rpb24gWihhZSxZKXt9''@;'; + put 'put ''ZnVuY3Rpb24gaWUoYWUsWSl7dGhpcy5hY2M9MCx0aGlzLmNvbnRCeXRlcz0wLHRoaXMuYWNjQnl0ZXM9MCx0aGlzLmRlZmF1bHRDaGFyVW5pY29kZT1ZLmRlZmF1bHRDaGFyVW5pY29kZX1FLnByb3RvdHlwZS5lbmR8fChFLnByb3RvdHlwZS5lbmQ9ZnVuY3Rpb24oKXt9KSxNZS5wcm90b3R5''@;'; + put 'put ''cGU9RS5wcm90b3R5cGUsVS5wcm90b3R5cGUud3JpdGU9ZnVuY3Rpb24oYWUpe3JldHVybiBtZS5mcm9tKGFlLHRoaXMuZW5jKX0sVS5wcm90b3R5cGUuZW5kPWZ1bmN0aW9uKCl7fSxRLnByb3RvdHlwZS53cml0ZT1mdW5jdGlvbihhZSl7dmFyIFk9KGFlPXRoaXMucHJldlN0cithZSkubGVu''@;'; + put 'put ''Z3RoLWFlLmxlbmd0aCU0O3JldHVybiB0aGlzLnByZXZTdHI9YWUuc2xpY2UoWSksYWU9YWUuc2xpY2UoMCxZKSxtZS5mcm9tKGFlLCJiYXNlNjQiKX0sUS5wcm90b3R5cGUuZW5kPWZ1bmN0aW9uKCl7cmV0dXJuIG1lLmZyb20odGhpcy5wcmV2U3RyLCJiYXNlNjQiKX0sWi5wcm90b3R5cGUu''@;'; + put 'put ''d3JpdGU9ZnVuY3Rpb24oYWUpe2Zvcih2YXIgWT1tZS5hbGxvYygzKmFlLmxlbmd0aCksVz0wLE49MDtOPGFlLmxlbmd0aDtOKyspe3ZhciBlZT1hZS5jaGFyQ29kZUF0KE4pO2VlPDEyOD9ZW1crK109ZWU6ZWU8MjA0OD8oWVtXKytdPTE5MisoZWU+Pj42KSxZW1crK109MTI4Kyg2MyZlZSkp''@;'; + put 'put ''OihZW1crK109MjI0KyhlZT4+PjEyKSxZW1crK109MTI4KyhlZT4+PjYmNjMpLFlbVysrXT0xMjgrKDYzJmVlKSl9cmV0dXJuIFkuc2xpY2UoMCxXKX0sWi5wcm90b3R5cGUuZW5kPWZ1bmN0aW9uKCl7fSxpZS5wcm90b3R5cGUud3JpdGU9ZnVuY3Rpb24oYWUpe2Zvcih2YXIgWT10aGlzLmFj''@;'; + put 'put ''YyxXPXRoaXMuY29udEJ5dGVzLE49dGhpcy5hY2NCeXRlcyxlZT0iIixxPTA7cTxhZS5sZW5ndGg7cSsrKXt2YXIgSj1hZVtxXTsxMjghPSgxOTImSik/KFc+MCYmKGVlKz10aGlzLmRlZmF1bHRDaGFyVW5pY29kZSxXPTApLEo8MTI4P2VlKz1TdHJpbmcuZnJvbUNoYXJDb2RlKEopOko8MjI0''@;'; + put 'put ''PyhZPTMxJkosVz0xLE49MSk6SjwyNDA/KFk9MTUmSixXPTIsTj0xKTplZSs9dGhpcy5kZWZhdWx0Q2hhclVuaWNvZGUpOlc+MD8oWT1ZPDw2fDYzJkosTisrLDA9PS0tVyYmKGVlKz0yPT09TiYmWTwxMjgmJlk+MHx8Mz09PU4mJlk8MjA0OD90aGlzLmRlZmF1bHRDaGFyVW5pY29kZTpTdHJp''@;'; + put 'put ''bmcuZnJvbUNoYXJDb2RlKFkpKSk6ZWUrPXRoaXMuZGVmYXVsdENoYXJVbmljb2RlfXJldHVybiB0aGlzLmFjYz1ZLHRoaXMuY29udEJ5dGVzPVcsdGhpcy5hY2NCeXRlcz1OLGVlfSxpZS5wcm90b3R5cGUuZW5kPWZ1bmN0aW9uKCl7dmFyIGFlPTA7cmV0dXJuIHRoaXMuY29udEJ5dGVzPjAm''@;'; + put 'put ''JihhZSs9dGhpcy5kZWZhdWx0Q2hhclVuaWNvZGUpLGFlfX0sNDEzMTM6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDYyMDM4KS5CdWZmZXI7ZnVuY3Rpb24gQihVLFEpe2lmKCFVKXRocm93IG5ldyBFcnJvcigiU0JDUyBjb2RlYyBpcyBjYWxsZWQgd2l0aG91dCB0aGUgZGF0''@;'; + put 'put ''YS4iKTtpZighVS5jaGFyc3x8MTI4IT09VS5jaGFycy5sZW5ndGgmJjI1NiE9PVUuY2hhcnMubGVuZ3RoKXRocm93IG5ldyBFcnJvcigiRW5jb2RpbmcgJyIrVS50eXBlKyInIGhhcyBpbmNvcnJlY3QgJ2NoYXJzJyAobXVzdCBiZSBvZiBsZW4gMTI4IG9yIDI1NikiKTtpZigxMjg9PT1VLmNo''@;'; + put 'put ''YXJzLmxlbmd0aCl7Zm9yKHZhciBaPSIiLGllPTA7aWU8MTI4O2llKyspWis9U3RyaW5nLmZyb21DaGFyQ29kZShpZSk7VS5jaGFycz1aK1UuY2hhcnN9dGhpcy5kZWNvZGVCdWY9bWUuZnJvbShVLmNoYXJzLCJ1Y3MyIik7dmFyIGFlPW1lLmFsbG9jKDY1NTM2LFEuZGVmYXVsdENoYXJTaW5n''@;'; + put 'put ''bGVCeXRlLmNoYXJDb2RlQXQoMCkpO2ZvcihpZT0wO2llPFUuY2hhcnMubGVuZ3RoO2llKyspYWVbVS5jaGFycy5jaGFyQ29kZUF0KGllKV09aWU7dGhpcy5lbmNvZGVCdWY9YWV9ZnVuY3Rpb24gRShVLFEpe3RoaXMuZW5jb2RlQnVmPVEuZW5jb2RlQnVmfWZ1bmN0aW9uIE1lKFUsUSl7dGhp''@;'; + put 'put ''cy5kZWNvZGVCdWY9US5kZWNvZGVCdWZ9SmUuX3NiY3M9QixCLnByb3RvdHlwZS5lbmNvZGVyPUUsQi5wcm90b3R5cGUuZGVjb2Rlcj1NZSxFLnByb3RvdHlwZS53cml0ZT1mdW5jdGlvbihVKXtmb3IodmFyIFE9bWUuYWxsb2MoVS5sZW5ndGgpLFo9MDtaPFUubGVuZ3RoO1orKylRW1pdPXRo''@;'; + put 'put ''aXMuZW5jb2RlQnVmW1UuY2hhckNvZGVBdChaKV07cmV0dXJuIFF9LEUucHJvdG90eXBlLmVuZD1mdW5jdGlvbigpe30sTWUucHJvdG90eXBlLndyaXRlPWZ1bmN0aW9uKFUpe2Zvcih2YXIgUT10aGlzLmRlY29kZUJ1ZixaPW1lLmFsbG9jKDIqVS5sZW5ndGgpLGllPTAsYWU9MCxZPTA7WTxV''@;'; + put 'put ''Lmxlbmd0aDtZKyspWlthZT0yKlldPVFbaWU9MipVW1ldXSxaW2FlKzFdPVFbaWUrMV07cmV0dXJuIFoudG9TdHJpbmcoInVjczIiKX0sTWUucHJvdG90eXBlLmVuZD1mdW5jdGlvbigpe319LDc0MTE0OlhlPT57InVzZSBzdHJpY3QiO1hlLmV4cG9ydHM9ezQzNzoiY3A0MzciLDczNzoiY3A3''@;'; + put 'put ''MzciLDc3NToiY3A3NzUiLDg1MDoiY3A4NTAiLDg1MjoiY3A4NTIiLDg1NToiY3A4NTUiLDg1NjoiY3A4NTYiLDg1NzoiY3A4NTciLDg1ODoiY3A4NTgiLDg2MDoiY3A4NjAiLDg2MToiY3A4NjEiLDg2MjoiY3A4NjIiLDg2MzoiY3A4NjMiLDg2NDoiY3A4NjQiLDg2NToiY3A4NjUiLDg2Njoi''@;'; + put 'put ''Y3A4NjYiLDg2OToiY3A4NjkiLDg3NDoid2luZG93czg3NCIsOTIyOiJjcDkyMiIsMTA0NjoiY3AxMDQ2IiwxMTI0OiJjcDExMjQiLDExMjU6ImNwMTEyNSIsMTEyOToiY3AxMTI5IiwxMTMzOiJjcDExMzMiLDExNjE6ImNwMTE2MSIsMTE2MjoiY3AxMTYyIiwxMTYzOiJjcDExNjMiLDEyNTA6''@;'; + put 'put ''IndpbmRvd3MxMjUwIiwxMjUxOiJ3aW5kb3dzMTI1MSIsMTI1Mjoid2luZG93czEyNTIiLDEyNTM6IndpbmRvd3MxMjUzIiwxMjU0OiJ3aW5kb3dzMTI1NCIsMTI1NToid2luZG93czEyNTUiLDEyNTY6IndpbmRvd3MxMjU2IiwxMjU3OiJ3aW5kb3dzMTI1NyIsMTI1ODoid2luZG93czEyNTgi''@;'; + put 'put ''LDI4NTkxOiJpc284ODU5MSIsMjg1OTI6Imlzbzg4NTkyIiwyODU5MzoiaXNvODg1OTMiLDI4NTk0OiJpc284ODU5NCIsMjg1OTU6Imlzbzg4NTk1IiwyODU5NjoiaXNvODg1OTYiLDI4NTk3OiJpc284ODU5NyIsMjg1OTg6Imlzbzg4NTk4IiwyODU5OToiaXNvODg1OTkiLDI4NjAwOiJpc284''@;'; + put 'put ''ODU5MTAiLDI4NjAxOiJpc284ODU5MTEiLDI4NjAzOiJpc284ODU5MTMiLDI4NjA0OiJpc284ODU5MTQiLDI4NjA1OiJpc284ODU5MTUiLDI4NjA2OiJpc284ODU5MTYiLHdpbmRvd3M4NzQ6e3R5cGU6Il9zYmNzIixjaGFyczoiXHUyMGFjXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUyMDI2''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUyMDE4XHUyMDE5XHUyMDFjXHUyMDFkXHUyMDIyXHUyMDEzXHUyMDE0XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHhhMFx1MGUw''@;'; + put 'put ''MVx1MGUwMlx1MGUwM1x1MGUwNFx1MGUwNVx1MGUwNlx1MGUwN1x1MGUwOFx1MGUwOVx1MGUwYVx1MGUwYlx1MGUwY1x1MGUwZFx1MGUwZVx1MGUwZlx1MGUxMFx1MGUxMVx1MGUxMlx1MGUxM1x1MGUxNFx1MGUxNVx1MGUxNlx1MGUxN1x1MGUxOFx1MGUxOVx1MGUxYVx1MGUxYlx1MGUxY1x1''@;'; + put 'put ''MGUxZFx1MGUxZVx1MGUxZlx1MGUyMFx1MGUyMVx1MGUyMlx1MGUyM1x1MGUyNFx1MGUyNVx1MGUyNlx1MGUyN1x1MGUyOFx1MGUyOVx1MGUyYVx1MGUyYlx1MGUyY1x1MGUyZFx1MGUyZVx1MGUyZlx1MGUzMFx1MGUzMVx1MGUzMlx1MGUzM1x1MGUzNFx1MGUzNVx1MGUzNlx1MGUzN1x1MGUz''@;'; + put 'put ''OFx1MGUzOVx1MGUzYVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MGUzZlx1MGU0MFx1MGU0MVx1MGU0Mlx1MGU0M1x1MGU0NFx1MGU0NVx1MGU0Nlx1MGU0N1x1MGU0OFx1MGU0OVx1MGU0YVx1MGU0Ylx1MGU0Y1x1MGU0ZFx1MGU0ZVx1MGU0Zlx1MGU1MFx1MGU1MVx1MGU1Mlx1MGU1M1x1''@;'; + put 'put ''MGU1NFx1MGU1NVx1MGU1Nlx1MGU1N1x1MGU1OFx1MGU1OVx1MGU1YVx1MGU1Ylx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZCJ9LHdpbjg3NDoid2luZG93czg3NCIsY3A4NzQ6IndpbmRvd3M4NzQiLHdpbmRvd3MxMjUwOnt0eXBlOiJfc2JjcyIsY2hhcnM6Ilx1MjBhY1x1ZmZmZFx1MjAxYVx1''@;'; + put 'put ''ZmZmZFx1MjAxZVx1MjAyNlx1MjAyMFx1MjAyMVx1ZmZmZFx1MjAzMFx1MDE2MFx1MjAzOVx1MDE1YVx1MDE2NFx1MDE3ZFx1MDE3OVx1ZmZmZFx1MjAxOFx1MjAxOVx1MjAxY1x1MjAxZFx1MjAyMlx1MjAxM1x1MjAxNFx1ZmZmZFx1MjEyMlx1MDE2MVx1MjAzYVx1MDE1Ylx1MDE2NVx1MDE3''@;'; + put 'put ''ZVx1MDE3YVx4YTBcdTAyYzdcdTAyZDhcdTAxNDFceGE0XHUwMTA0XHhhNlx4YTdceGE4XHhhOVx1MDE1ZVx4YWJceGFjXHhhZFx4YWVcdTAxN2JceGIwXHhiMVx1MDJkYlx1MDE0Mlx4YjRceGI1XHhiNlx4YjdceGI4XHUwMTA1XHUwMTVmXHhiYlx1MDEzZFx1MDJkZFx1MDEzZVx1MDE3Y1x1''@;'; + put 'put ''MDE1NFx4YzFceGMyXHUwMTAyXHhjNFx1MDEzOVx1MDEwNlx4YzdcdTAxMGNceGM5XHUwMTE4XHhjYlx1MDExYVx4Y2RceGNlXHUwMTBlXHUwMTEwXHUwMTQzXHUwMTQ3XHhkM1x4ZDRcdTAxNTBceGQ2XHhkN1x1MDE1OFx1MDE2ZVx4ZGFcdTAxNzBceGRjXHhkZFx1MDE2Mlx4ZGZcdTAxNTVc''@;'; + put 'put ''eGUxXHhlMlx1MDEwM1x4ZTRcdTAxM2FcdTAxMDdceGU3XHUwMTBkXHhlOVx1MDExOVx4ZWJcdTAxMWJceGVkXHhlZVx1MDEwZlx1MDExMVx1MDE0NFx1MDE0OFx4ZjNceGY0XHUwMTUxXHhmNlx4ZjdcdTAxNTlcdTAxNmZceGZhXHUwMTcxXHhmY1x4ZmRcdTAxNjNcdTAyZDkifSx3aW4xMjUw''@;'; + put 'put ''OiJ3aW5kb3dzMTI1MCIsY3AxMjUwOiJ3aW5kb3dzMTI1MCIsd2luZG93czEyNTE6e3R5cGU6Il9zYmNzIixjaGFyczoiXHUwNDAyXHUwNDAzXHUyMDFhXHUwNDUzXHUyMDFlXHUyMDI2XHUyMDIwXHUyMDIxXHUyMGFjXHUyMDMwXHUwNDA5XHUyMDM5XHUwNDBhXHUwNDBjXHUwNDBiXHUwNDBm''@;'; + put 'put ''XHUwNDUyXHUyMDE4XHUyMDE5XHUyMDFjXHUyMDFkXHUyMDIyXHUyMDEzXHUyMDE0XHVmZmZkXHUyMTIyXHUwNDU5XHUyMDNhXHUwNDVhXHUwNDVjXHUwNDViXHUwNDVmXHhhMFx1MDQwZVx1MDQ1ZVx1MDQwOFx4YTRcdTA0OTBceGE2XHhhN1x1MDQwMVx4YTlcdTA0MDRceGFiXHhhY1x4YWRc''@;'; + put 'put ''eGFlXHUwNDA3XHhiMFx4YjFcdTA0MDZcdTA0NTZcdTA0OTFceGI1XHhiNlx4YjdcdTA0NTFcdTIxMTZcdTA0NTRceGJiXHUwNDU4XHUwNDA1XHUwNDU1XHUwNDU3XHUwNDEwXHUwNDExXHUwNDEyXHUwNDEzXHUwNDE0XHUwNDE1XHUwNDE2XHUwNDE3XHUwNDE4XHUwNDE5XHUwNDFhXHUwNDFi''@;'; + put 'put ''XHUwNDFjXHUwNDFkXHUwNDFlXHUwNDFmXHUwNDIwXHUwNDIxXHUwNDIyXHUwNDIzXHUwNDI0XHUwNDI1XHUwNDI2XHUwNDI3XHUwNDI4XHUwNDI5XHUwNDJhXHUwNDJiXHUwNDJjXHUwNDJkXHUwNDJlXHUwNDJmXHUwNDMwXHUwNDMxXHUwNDMyXHUwNDMzXHUwNDM0XHUwNDM1XHUwNDM2XHUw''@;'; + put 'put ''NDM3XHUwNDM4XHUwNDM5XHUwNDNhXHUwNDNiXHUwNDNjXHUwNDNkXHUwNDNlXHUwNDNmXHUwNDQwXHUwNDQxXHUwNDQyXHUwNDQzXHUwNDQ0XHUwNDQ1XHUwNDQ2XHUwNDQ3XHUwNDQ4XHUwNDQ5XHUwNDRhXHUwNDRiXHUwNDRjXHUwNDRkXHUwNDRlXHUwNDRmIn0sd2luMTI1MToid2luZG93''@;'; + put 'put ''czEyNTEiLGNwMTI1MToid2luZG93czEyNTEiLHdpbmRvd3MxMjUyOnt0eXBlOiJfc2JjcyIsY2hhcnM6Ilx1MjBhY1x1ZmZmZFx1MjAxYVx1MDE5Mlx1MjAxZVx1MjAyNlx1MjAyMFx1MjAyMVx1MDJjNlx1MjAzMFx1MDE2MFx1MjAzOVx1MDE1Mlx1ZmZmZFx1MDE3ZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''MjAxOFx1MjAxOVx1MjAxY1x1MjAxZFx1MjAyMlx1MjAxM1x1MjAxNFx1MDJkY1x1MjEyMlx1MDE2MVx1MjAzYVx1MDE1M1x1ZmZmZFx1MDE3ZVx1MDE3OFx4YTBceGExXHhhMlx4YTNceGE0XHhhNVx4YTZceGE3XHhhOFx4YTlceGFhXHhhYlx4YWNceGFkXHhhZVx4YWZceGIwXHhiMVx4YjJc''@;'; + put 'put ''eGIzXHhiNFx4YjVceGI2XHhiN1x4YjhceGI5XHhiYVx4YmJceGJjXHhiZFx4YmVceGJmXHhjMFx4YzFceGMyXHhjM1x4YzRceGM1XHhjNlx4YzdceGM4XHhjOVx4Y2FceGNiXHhjY1x4Y2RceGNlXHhjZlx4ZDBceGQxXHhkMlx4ZDNceGQ0XHhkNVx4ZDZceGQ3XHhkOFx4ZDlceGRhXHhkYlx4''@;'; + put 'put ''ZGNceGRkXHhkZVx4ZGZceGUwXHhlMVx4ZTJceGUzXHhlNFx4ZTVceGU2XHhlN1x4ZThceGU5XHhlYVx4ZWJceGVjXHhlZFx4ZWVceGVmXHhmMFx4ZjFceGYyXHhmM1x4ZjRceGY1XHhmNlx4ZjdceGY4XHhmOVx4ZmFceGZiXHhmY1x4ZmRceGZlXHhmZiJ9LHdpbjEyNTI6IndpbmRvd3MxMjUy''@;'; + put 'put ''IixjcDEyNTI6IndpbmRvd3MxMjUyIix3aW5kb3dzMTI1Mzp7dHlwZToiX3NiY3MiLGNoYXJzOiJcdTIwYWNcdWZmZmRcdTIwMWFcdTAxOTJcdTIwMWVcdTIwMjZcdTIwMjBcdTIwMjFcdWZmZmRcdTIwMzBcdWZmZmRcdTIwMzlcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTIwMThc''@;'; + put 'put ''dTIwMTlcdTIwMWNcdTIwMWRcdTIwMjJcdTIwMTNcdTIwMTRcdWZmZmRcdTIxMjJcdWZmZmRcdTIwM2FcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRceGEwXHUwMzg1XHUwMzg2XHhhM1x4YTRceGE1XHhhNlx4YTdceGE4XHhhOVx1ZmZmZFx4YWJceGFjXHhhZFx4YWVcdTIwMTVceGIwXHhiMVx4''@;'; + put 'put ''YjJceGIzXHUwMzg0XHhiNVx4YjZceGI3XHUwMzg4XHUwMzg5XHUwMzhhXHhiYlx1MDM4Y1x4YmRcdTAzOGVcdTAzOGZcdTAzOTBcdTAzOTFcdTAzOTJcdTAzOTNcdTAzOTRcdTAzOTVcdTAzOTZcdTAzOTdcdTAzOThcdTAzOTlcdTAzOWFcdTAzOWJcdTAzOWNcdTAzOWRcdTAzOWVcdTAzOWZc''@;'; + put 'put ''dTAzYTBcdTAzYTFcdWZmZmRcdTAzYTNcdTAzYTRcdTAzYTVcdTAzYTZcdTAzYTdcdTAzYThcdTAzYTlcdTAzYWFcdTAzYWJcdTAzYWNcdTAzYWRcdTAzYWVcdTAzYWZcdTAzYjBcdTAzYjFcdTAzYjJcdTAzYjNcdTAzYjRcdTAzYjVcdTAzYjZcdTAzYjdcdTAzYjhcdTAzYjlcdTAzYmFcdTAz''@;'; + put 'put ''YmJcdTAzYmNcdTAzYmRcdTAzYmVcdTAzYmZcdTAzYzBcdTAzYzFcdTAzYzJcdTAzYzNcdTAzYzRcdTAzYzVcdTAzYzZcdTAzYzdcdTAzYzhcdTAzYzlcdTAzY2FcdTAzY2JcdTAzY2NcdTAzY2RcdTAzY2VcdWZmZmQifSx3aW4xMjUzOiJ3aW5kb3dzMTI1MyIsY3AxMjUzOiJ3aW5kb3dzMTI1''@;'; + put 'put ''MyIsd2luZG93czEyNTQ6e3R5cGU6Il9zYmNzIixjaGFyczoiXHUyMGFjXHVmZmZkXHUyMDFhXHUwMTkyXHUyMDFlXHUyMDI2XHUyMDIwXHUyMDIxXHUwMmM2XHUyMDMwXHUwMTYwXHUyMDM5XHUwMTUyXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUyMDE4XHUyMDE5XHUyMDFjXHUyMDFkXHUy''@;'; + put 'put ''MDIyXHUyMDEzXHUyMDE0XHUwMmRjXHUyMTIyXHUwMTYxXHUyMDNhXHUwMTUzXHVmZmZkXHVmZmZkXHUwMTc4XHhhMFx4YTFceGEyXHhhM1x4YTRceGE1XHhhNlx4YTdceGE4XHhhOVx4YWFceGFiXHhhY1x4YWRceGFlXHhhZlx4YjBceGIxXHhiMlx4YjNceGI0XHhiNVx4YjZceGI3XHhiOFx4''@;'; + put 'put ''YjlceGJhXHhiYlx4YmNceGJkXHhiZVx4YmZceGMwXHhjMVx4YzJceGMzXHhjNFx4YzVceGM2XHhjN1x4YzhceGM5XHhjYVx4Y2JceGNjXHhjZFx4Y2VceGNmXHUwMTFlXHhkMVx4ZDJceGQzXHhkNFx4ZDVceGQ2XHhkN1x4ZDhceGQ5XHhkYVx4ZGJceGRjXHUwMTMwXHUwMTVlXHhkZlx4ZTBc''@;'; + put 'put ''eGUxXHhlMlx4ZTNceGU0XHhlNVx4ZTZceGU3XHhlOFx4ZTlceGVhXHhlYlx4ZWNceGVkXHhlZVx4ZWZcdTAxMWZceGYxXHhmMlx4ZjNceGY0XHhmNVx4ZjZceGY3XHhmOFx4ZjlceGZhXHhmYlx4ZmNcdTAxMzFcdTAxNWZceGZmIn0sd2luMTI1NDoid2luZG93czEyNTQiLGNwMTI1NDoid2lu''@;'; + put 'put ''ZG93czEyNTQiLHdpbmRvd3MxMjU1Ont0eXBlOiJfc2JjcyIsY2hhcnM6Ilx1MjBhY1x1ZmZmZFx1MjAxYVx1MDE5Mlx1MjAxZVx1MjAyNlx1MjAyMFx1MjAyMVx1MDJjNlx1MjAzMFx1ZmZmZFx1MjAzOVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MjAxOFx1MjAxOVx1MjAxY1x1''@;'; + put 'put ''MjAxZFx1MjAyMlx1MjAxM1x1MjAxNFx1MDJkY1x1MjEyMlx1ZmZmZFx1MjAzYVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx4YTBceGExXHhhMlx4YTNcdTIwYWFceGE1XHhhNlx4YTdceGE4XHhhOVx4ZDdceGFiXHhhY1x4YWRceGFlXHhhZlx4YjBceGIxXHhiMlx4YjNceGI0XHhiNVx4YjZc''@;'; + put 'put ''eGI3XHhiOFx4YjlceGY3XHhiYlx4YmNceGJkXHhiZVx4YmZcdTA1YjBcdTA1YjFcdTA1YjJcdTA1YjNcdTA1YjRcdTA1YjVcdTA1YjZcdTA1YjdcdTA1YjhcdTA1YjlcdTA1YmFcdTA1YmJcdTA1YmNcdTA1YmRcdTA1YmVcdTA1YmZcdTA1YzBcdTA1YzFcdTA1YzJcdTA1YzNcdTA1ZjBcdTA1''@;'; + put 'put ''ZjFcdTA1ZjJcdTA1ZjNcdTA1ZjRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTA1ZDBcdTA1ZDFcdTA1ZDJcdTA1ZDNcdTA1ZDRcdTA1ZDVcdTA1ZDZcdTA1ZDdcdTA1ZDhcdTA1ZDlcdTA1ZGFcdTA1ZGJcdTA1ZGNcdTA1ZGRcdTA1ZGVcdTA1ZGZcdTA1ZTBc''@;'; + put 'put ''dTA1ZTFcdTA1ZTJcdTA1ZTNcdTA1ZTRcdTA1ZTVcdTA1ZTZcdTA1ZTdcdTA1ZThcdTA1ZTlcdTA1ZWFcdWZmZmRcdWZmZmRcdTIwMGVcdTIwMGZcdWZmZmQifSx3aW4xMjU1OiJ3aW5kb3dzMTI1NSIsY3AxMjU1OiJ3aW5kb3dzMTI1NSIsd2luZG93czEyNTY6e3R5cGU6Il9zYmNzIixjaGFy''@;'; + put 'put ''czoiXHUyMGFjXHUwNjdlXHUyMDFhXHUwMTkyXHUyMDFlXHUyMDI2XHUyMDIwXHUyMDIxXHUwMmM2XHUyMDMwXHUwNjc5XHUyMDM5XHUwMTUyXHUwNjg2XHUwNjk4XHUwNjg4XHUwNmFmXHUyMDE4XHUyMDE5XHUyMDFjXHUyMDFkXHUyMDIyXHUyMDEzXHUyMDE0XHUwNmE5XHUyMTIyXHUwNjkx''@;'; + put 'put ''XHUyMDNhXHUwMTUzXHUyMDBjXHUyMDBkXHUwNmJhXHhhMFx1MDYwY1x4YTJceGEzXHhhNFx4YTVceGE2XHhhN1x4YThceGE5XHUwNmJlXHhhYlx4YWNceGFkXHhhZVx4YWZceGIwXHhiMVx4YjJceGIzXHhiNFx4YjVceGI2XHhiN1x4YjhceGI5XHUwNjFiXHhiYlx4YmNceGJkXHhiZVx1MDYx''@;'; + put 'put ''Zlx1MDZjMVx1MDYyMVx1MDYyMlx1MDYyM1x1MDYyNFx1MDYyNVx1MDYyNlx1MDYyN1x1MDYyOFx1MDYyOVx1MDYyYVx1MDYyYlx1MDYyY1x1MDYyZFx1MDYyZVx1MDYyZlx1MDYzMFx1MDYzMVx1MDYzMlx1MDYzM1x1MDYzNFx1MDYzNVx1MDYzNlx4ZDdcdTA2MzdcdTA2MzhcdTA2MzlcdTA2''@;'; + put 'put ''M2FcdTA2NDBcdTA2NDFcdTA2NDJcdTA2NDNceGUwXHUwNjQ0XHhlMlx1MDY0NVx1MDY0Nlx1MDY0N1x1MDY0OFx4ZTdceGU4XHhlOVx4ZWFceGViXHUwNjQ5XHUwNjRhXHhlZVx4ZWZcdTA2NGJcdTA2NGNcdTA2NGRcdTA2NGVceGY0XHUwNjRmXHUwNjUwXHhmN1x1MDY1MVx4ZjlcdTA2NTJc''@;'; + put 'put ''eGZiXHhmY1x1MjAwZVx1MjAwZlx1MDZkMiJ9LHdpbjEyNTY6IndpbmRvd3MxMjU2IixjcDEyNTY6IndpbmRvd3MxMjU2Iix3aW5kb3dzMTI1Nzp7dHlwZToiX3NiY3MiLGNoYXJzOiJcdTIwYWNcdWZmZmRcdTIwMWFcdWZmZmRcdTIwMWVcdTIwMjZcdTIwMjBcdTIwMjFcdWZmZmRcdTIwMzBc''@;'; + put 'put ''dWZmZmRcdTIwMzlcdWZmZmRceGE4XHUwMmM3XHhiOFx1ZmZmZFx1MjAxOFx1MjAxOVx1MjAxY1x1MjAxZFx1MjAyMlx1MjAxM1x1MjAxNFx1ZmZmZFx1MjEyMlx1ZmZmZFx1MjAzYVx1ZmZmZFx4YWZcdTAyZGJcdWZmZmRceGEwXHVmZmZkXHhhMlx4YTNceGE0XHVmZmZkXHhhNlx4YTdceGQ4''@;'; + put 'put ''XHhhOVx1MDE1Nlx4YWJceGFjXHhhZFx4YWVceGM2XHhiMFx4YjFceGIyXHhiM1x4YjRceGI1XHhiNlx4YjdceGY4XHhiOVx1MDE1N1x4YmJceGJjXHhiZFx4YmVceGU2XHUwMTA0XHUwMTJlXHUwMTAwXHUwMTA2XHhjNFx4YzVcdTAxMThcdTAxMTJcdTAxMGNceGM5XHUwMTc5XHUwMTE2XHUw''@;'; + put 'put ''MTIyXHUwMTM2XHUwMTJhXHUwMTNiXHUwMTYwXHUwMTQzXHUwMTQ1XHhkM1x1MDE0Y1x4ZDVceGQ2XHhkN1x1MDE3Mlx1MDE0MVx1MDE1YVx1MDE2YVx4ZGNcdTAxN2JcdTAxN2RceGRmXHUwMTA1XHUwMTJmXHUwMTAxXHUwMTA3XHhlNFx4ZTVcdTAxMTlcdTAxMTNcdTAxMGRceGU5XHUwMTdh''@;'; + put 'put ''XHUwMTE3XHUwMTIzXHUwMTM3XHUwMTJiXHUwMTNjXHUwMTYxXHUwMTQ0XHUwMTQ2XHhmM1x1MDE0ZFx4ZjVceGY2XHhmN1x1MDE3M1x1MDE0Mlx1MDE1Ylx1MDE2Ylx4ZmNcdTAxN2NcdTAxN2VcdTAyZDkifSx3aW4xMjU3OiJ3aW5kb3dzMTI1NyIsY3AxMjU3OiJ3aW5kb3dzMTI1NyIsd2lu''@;'; + put 'put ''ZG93czEyNTg6e3R5cGU6Il9zYmNzIixjaGFyczoiXHUyMGFjXHVmZmZkXHUyMDFhXHUwMTkyXHUyMDFlXHUyMDI2XHUyMDIwXHUyMDIxXHUwMmM2XHUyMDMwXHVmZmZkXHUyMDM5XHUwMTUyXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUyMDE4XHUyMDE5XHUyMDFjXHUyMDFkXHUyMDIyXHUy''@;'; + put 'put ''MDEzXHUyMDE0XHUwMmRjXHUyMTIyXHVmZmZkXHUyMDNhXHUwMTUzXHVmZmZkXHVmZmZkXHUwMTc4XHhhMFx4YTFceGEyXHhhM1x4YTRceGE1XHhhNlx4YTdceGE4XHhhOVx4YWFceGFiXHhhY1x4YWRceGFlXHhhZlx4YjBceGIxXHhiMlx4YjNceGI0XHhiNVx4YjZceGI3XHhiOFx4YjlceGJh''@;'; + put 'put ''XHhiYlx4YmNceGJkXHhiZVx4YmZceGMwXHhjMVx4YzJcdTAxMDJceGM0XHhjNVx4YzZceGM3XHhjOFx4YzlceGNhXHhjYlx1MDMwMFx4Y2RceGNlXHhjZlx1MDExMFx4ZDFcdTAzMDlceGQzXHhkNFx1MDFhMFx4ZDZceGQ3XHhkOFx4ZDlceGRhXHhkYlx4ZGNcdTAxYWZcdTAzMDNceGRmXHhl''@;'; + put 'put ''MFx4ZTFceGUyXHUwMTAzXHhlNFx4ZTVceGU2XHhlN1x4ZThceGU5XHhlYVx4ZWJcdTAzMDFceGVkXHhlZVx4ZWZcdTAxMTFceGYxXHUwMzIzXHhmM1x4ZjRcdTAxYTFceGY2XHhmN1x4ZjhceGY5XHhmYVx4ZmJceGZjXHUwMWIwXHUyMGFiXHhmZiJ9LHdpbjEyNTg6IndpbmRvd3MxMjU4Iixj''@;'; + put 'put ''cDEyNTg6IndpbmRvd3MxMjU4Iixpc284ODU5MTp7dHlwZToiX3NiY3MiLGNoYXJzOiJceDgwXHg4MVx4ODJceDgzXHg4NFx4ODVceDg2XHg4N1x4ODhceDg5XHg4YVx4OGJceDhjXHg4ZFx4OGVceDhmXHg5MFx4OTFceDkyXHg5M1x4OTRceDk1XHg5Nlx4OTdceDk4XHg5OVx4OWFceDliXHg5''@;'; + put 'put ''Y1x4OWRceDllXHg5Zlx4YTBceGExXHhhMlx4YTNceGE0XHhhNVx4YTZceGE3XHhhOFx4YTlceGFhXHhhYlx4YWNceGFkXHhhZVx4YWZceGIwXHhiMVx4YjJceGIzXHhiNFx4YjVceGI2XHhiN1x4YjhceGI5XHhiYVx4YmJceGJjXHhiZFx4YmVceGJmXHhjMFx4YzFceGMyXHhjM1x4YzRceGM1''@;'; + put 'put ''XHhjNlx4YzdceGM4XHhjOVx4Y2FceGNiXHhjY1x4Y2RceGNlXHhjZlx4ZDBceGQxXHhkMlx4ZDNceGQ0XHhkNVx4ZDZceGQ3XHhkOFx4ZDlceGRhXHhkYlx4ZGNceGRkXHhkZVx4ZGZceGUwXHhlMVx4ZTJceGUzXHhlNFx4ZTVceGU2XHhlN1x4ZThceGU5XHhlYVx4ZWJceGVjXHhlZFx4ZWVc''@;'; + put 'put ''eGVmXHhmMFx4ZjFceGYyXHhmM1x4ZjRceGY1XHhmNlx4ZjdceGY4XHhmOVx4ZmFceGZiXHhmY1x4ZmRceGZlXHhmZiJ9LGNwMjg1OTE6Imlzbzg4NTkxIixpc284ODU5Mjp7dHlwZToiX3NiY3MiLGNoYXJzOiJceDgwXHg4MVx4ODJceDgzXHg4NFx4ODVceDg2XHg4N1x4ODhceDg5XHg4YVx4''@;'; + put 'put ''OGJceDhjXHg4ZFx4OGVceDhmXHg5MFx4OTFceDkyXHg5M1x4OTRceDk1XHg5Nlx4OTdceDk4XHg5OVx4OWFceDliXHg5Y1x4OWRceDllXHg5Zlx4YTBcdTAxMDRcdTAyZDhcdTAxNDFceGE0XHUwMTNkXHUwMTVhXHhhN1x4YThcdTAxNjBcdTAxNWVcdTAxNjRcdTAxNzlceGFkXHUwMTdkXHUw''@;'; + put 'put ''MTdiXHhiMFx1MDEwNVx1MDJkYlx1MDE0Mlx4YjRcdTAxM2VcdTAxNWJcdTAyYzdceGI4XHUwMTYxXHUwMTVmXHUwMTY1XHUwMTdhXHUwMmRkXHUwMTdlXHUwMTdjXHUwMTU0XHhjMVx4YzJcdTAxMDJceGM0XHUwMTM5XHUwMTA2XHhjN1x1MDEwY1x4YzlcdTAxMThceGNiXHUwMTFhXHhjZFx4''@;'; + put 'put ''Y2VcdTAxMGVcdTAxMTBcdTAxNDNcdTAxNDdceGQzXHhkNFx1MDE1MFx4ZDZceGQ3XHUwMTU4XHUwMTZlXHhkYVx1MDE3MFx4ZGNceGRkXHUwMTYyXHhkZlx1MDE1NVx4ZTFceGUyXHUwMTAzXHhlNFx1MDEzYVx1MDEwN1x4ZTdcdTAxMGRceGU5XHUwMTE5XHhlYlx1MDExYlx4ZWRceGVlXHUw''@;'; + put 'put ''MTBmXHUwMTExXHUwMTQ0XHUwMTQ4XHhmM1x4ZjRcdTAxNTFceGY2XHhmN1x1MDE1OVx1MDE2Zlx4ZmFcdTAxNzFceGZjXHhmZFx1MDE2M1x1MDJkOSJ9LGNwMjg1OTI6Imlzbzg4NTkyIixpc284ODU5Mzp7dHlwZToiX3NiY3MiLGNoYXJzOiJceDgwXHg4MVx4ODJceDgzXHg4NFx4ODVceDg2''@;'; + put 'put ''XHg4N1x4ODhceDg5XHg4YVx4OGJceDhjXHg4ZFx4OGVceDhmXHg5MFx4OTFceDkyXHg5M1x4OTRceDk1XHg5Nlx4OTdceDk4XHg5OVx4OWFceDliXHg5Y1x4OWRceDllXHg5Zlx4YTBcdTAxMjZcdTAyZDhceGEzXHhhNFx1ZmZmZFx1MDEyNFx4YTdceGE4XHUwMTMwXHUwMTVlXHUwMTFlXHUw''@;'; + put 'put ''MTM0XHhhZFx1ZmZmZFx1MDE3Ylx4YjBcdTAxMjdceGIyXHhiM1x4YjRceGI1XHUwMTI1XHhiN1x4YjhcdTAxMzFcdTAxNWZcdTAxMWZcdTAxMzVceGJkXHVmZmZkXHUwMTdjXHhjMFx4YzFceGMyXHVmZmZkXHhjNFx1MDEwYVx1MDEwOFx4YzdceGM4XHhjOVx4Y2FceGNiXHhjY1x4Y2RceGNl''@;'; + put 'put ''XHhjZlx1ZmZmZFx4ZDFceGQyXHhkM1x4ZDRcdTAxMjBceGQ2XHhkN1x1MDExY1x4ZDlceGRhXHhkYlx4ZGNcdTAxNmNcdTAxNWNceGRmXHhlMFx4ZTFceGUyXHVmZmZkXHhlNFx1MDEwYlx1MDEwOVx4ZTdceGU4XHhlOVx4ZWFceGViXHhlY1x4ZWRceGVlXHhlZlx1ZmZmZFx4ZjFceGYyXHhm''@;'; + put 'put ''M1x4ZjRcdTAxMjFceGY2XHhmN1x1MDExZFx4ZjlceGZhXHhmYlx4ZmNcdTAxNmRcdTAxNWRcdTAyZDkifSxjcDI4NTkzOiJpc284ODU5MyIsaXNvODg1OTQ6e3R5cGU6Il9zYmNzIixjaGFyczoiXHg4MFx4ODFceDgyXHg4M1x4ODRceDg1XHg4Nlx4ODdceDg4XHg4OVx4OGFceDhiXHg4Y1x4''@;'; + put 'put ''OGRceDhlXHg4Zlx4OTBceDkxXHg5Mlx4OTNceDk0XHg5NVx4OTZceDk3XHg5OFx4OTlceDlhXHg5Ylx4OWNceDlkXHg5ZVx4OWZceGEwXHUwMTA0XHUwMTM4XHUwMTU2XHhhNFx1MDEyOFx1MDEzYlx4YTdceGE4XHUwMTYwXHUwMTEyXHUwMTIyXHUwMTY2XHhhZFx1MDE3ZFx4YWZceGIwXHUw''@;'; + put 'put ''MTA1XHUwMmRiXHUwMTU3XHhiNFx1MDEyOVx1MDEzY1x1MDJjN1x4YjhcdTAxNjFcdTAxMTNcdTAxMjNcdTAxNjdcdTAxNGFcdTAxN2VcdTAxNGJcdTAxMDBceGMxXHhjMlx4YzNceGM0XHhjNVx4YzZcdTAxMmVcdTAxMGNceGM5XHUwMTE4XHhjYlx1MDExNlx4Y2RceGNlXHUwMTJhXHUwMTEw''@;'; + put 'put ''XHUwMTQ1XHUwMTRjXHUwMTM2XHhkNFx4ZDVceGQ2XHhkN1x4ZDhcdTAxNzJceGRhXHhkYlx4ZGNcdTAxNjhcdTAxNmFceGRmXHUwMTAxXHhlMVx4ZTJceGUzXHhlNFx4ZTVceGU2XHUwMTJmXHUwMTBkXHhlOVx1MDExOVx4ZWJcdTAxMTdceGVkXHhlZVx1MDEyYlx1MDExMVx1MDE0Nlx1MDE0''@;'; + put 'put ''ZFx1MDEzN1x4ZjRceGY1XHhmNlx4ZjdceGY4XHUwMTczXHhmYVx4ZmJceGZjXHUwMTY5XHUwMTZiXHUwMmQ5In0sY3AyODU5NDoiaXNvODg1OTQiLGlzbzg4NTk1Ont0eXBlOiJfc2JjcyIsY2hhcnM6Ilx4ODBceDgxXHg4Mlx4ODNceDg0XHg4NVx4ODZceDg3XHg4OFx4ODlceDhhXHg4Ylx4''@;'; + put 'put ''OGNceDhkXHg4ZVx4OGZceDkwXHg5MVx4OTJceDkzXHg5NFx4OTVceDk2XHg5N1x4OThceDk5XHg5YVx4OWJceDljXHg5ZFx4OWVceDlmXHhhMFx1MDQwMVx1MDQwMlx1MDQwM1x1MDQwNFx1MDQwNVx1MDQwNlx1MDQwN1x1MDQwOFx1MDQwOVx1MDQwYVx1MDQwYlx1MDQwY1x4YWRcdTA0MGVc''@;'; + put 'put ''dTA0MGZcdTA0MTBcdTA0MTFcdTA0MTJcdTA0MTNcdTA0MTRcdTA0MTVcdTA0MTZcdTA0MTdcdTA0MThcdTA0MTlcdTA0MWFcdTA0MWJcdTA0MWNcdTA0MWRcdTA0MWVcdTA0MWZcdTA0MjBcdTA0MjFcdTA0MjJcdTA0MjNcdTA0MjRcdTA0MjVcdTA0MjZcdTA0MjdcdTA0MjhcdTA0MjlcdTA0''@;'; + put 'put ''MmFcdTA0MmJcdTA0MmNcdTA0MmRcdTA0MmVcdTA0MmZcdTA0MzBcdTA0MzFcdTA0MzJcdTA0MzNcdTA0MzRcdTA0MzVcdTA0MzZcdTA0MzdcdTA0MzhcdTA0MzlcdTA0M2FcdTA0M2JcdTA0M2NcdTA0M2RcdTA0M2VcdTA0M2ZcdTA0NDBcdTA0NDFcdTA0NDJcdTA0NDNcdTA0NDRcdTA0NDVc''@;'; + put 'put ''dTA0NDZcdTA0NDdcdTA0NDhcdTA0NDlcdTA0NGFcdTA0NGJcdTA0NGNcdTA0NGRcdTA0NGVcdTA0NGZcdTIxMTZcdTA0NTFcdTA0NTJcdTA0NTNcdTA0NTRcdTA0NTVcdTA0NTZcdTA0NTdcdTA0NThcdTA0NTlcdTA0NWFcdTA0NWJcdTA0NWNceGE3XHUwNDVlXHUwNDVmIn0sY3AyODU5NToi''@;'; + put 'put ''aXNvODg1OTUiLGlzbzg4NTk2Ont0eXBlOiJfc2JjcyIsY2hhcnM6Ilx4ODBceDgxXHg4Mlx4ODNceDg0XHg4NVx4ODZceDg3XHg4OFx4ODlceDhhXHg4Ylx4OGNceDhkXHg4ZVx4OGZceDkwXHg5MVx4OTJceDkzXHg5NFx4OTVceDk2XHg5N1x4OThceDk5XHg5YVx4OWJceDljXHg5ZFx4OWVc''@;'; + put 'put ''eDlmXHhhMFx1ZmZmZFx1ZmZmZFx1ZmZmZFx4YTRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTA2MGNceGFkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUwNjFi''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHUwNjFmXHVmZmZkXHUwNjIxXHUwNjIyXHUwNjIzXHUwNjI0XHUwNjI1XHUwNjI2XHUwNjI3XHUwNjI4XHUwNjI5XHUwNjJhXHUwNjJiXHUwNjJjXHUwNjJkXHUwNjJlXHUwNjJmXHUwNjMwXHUwNjMxXHUwNjMyXHUwNjMzXHUwNjM0XHUwNjM1XHUwNjM2XHUw''@;'; + put 'put ''NjM3XHUwNjM4XHUwNjM5XHUwNjNhXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUwNjQwXHUwNjQxXHUwNjQyXHUwNjQzXHUwNjQ0XHUwNjQ1XHUwNjQ2XHUwNjQ3XHUwNjQ4XHUwNjQ5XHUwNjRhXHUwNjRiXHUwNjRjXHUwNjRkXHUwNjRlXHUwNjRmXHUwNjUwXHUwNjUxXHUwNjUy''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkIn0sY3AyODU5NjoiaXNvODg1OTYiLGlzbzg4NTk3Ont0eXBlOiJfc2JjcyIsY2hhcnM6Ilx4ODBceDgxXHg4Mlx4ODNceDg0XHg4NVx4ODZceDg3XHg4''@;'; + put 'put ''OFx4ODlceDhhXHg4Ylx4OGNceDhkXHg4ZVx4OGZceDkwXHg5MVx4OTJceDkzXHg5NFx4OTVceDk2XHg5N1x4OThceDk5XHg5YVx4OWJceDljXHg5ZFx4OWVceDlmXHhhMFx1MjAxOFx1MjAxOVx4YTNcdTIwYWNcdTIwYWZceGE2XHhhN1x4YThceGE5XHUwMzdhXHhhYlx4YWNceGFkXHVmZmZk''@;'; + put 'put ''XHUyMDE1XHhiMFx4YjFceGIyXHhiM1x1MDM4NFx1MDM4NVx1MDM4Nlx4YjdcdTAzODhcdTAzODlcdTAzOGFceGJiXHUwMzhjXHhiZFx1MDM4ZVx1MDM4Zlx1MDM5MFx1MDM5MVx1MDM5Mlx1MDM5M1x1MDM5NFx1MDM5NVx1MDM5Nlx1MDM5N1x1MDM5OFx1MDM5OVx1MDM5YVx1MDM5Ylx1MDM5''@;'; + put 'put ''Y1x1MDM5ZFx1MDM5ZVx1MDM5Zlx1MDNhMFx1MDNhMVx1ZmZmZFx1MDNhM1x1MDNhNFx1MDNhNVx1MDNhNlx1MDNhN1x1MDNhOFx1MDNhOVx1MDNhYVx1MDNhYlx1MDNhY1x1MDNhZFx1MDNhZVx1MDNhZlx1MDNiMFx1MDNiMVx1MDNiMlx1MDNiM1x1MDNiNFx1MDNiNVx1MDNiNlx1MDNiN1x1''@;'; + put 'put ''MDNiOFx1MDNiOVx1MDNiYVx1MDNiYlx1MDNiY1x1MDNiZFx1MDNiZVx1MDNiZlx1MDNjMFx1MDNjMVx1MDNjMlx1MDNjM1x1MDNjNFx1MDNjNVx1MDNjNlx1MDNjN1x1MDNjOFx1MDNjOVx1MDNjYVx1MDNjYlx1MDNjY1x1MDNjZFx1MDNjZVx1ZmZmZCJ9LGNwMjg1OTc6Imlzbzg4NTk3Iixp''@;'; + put 'put ''c284ODU5ODp7dHlwZToiX3NiY3MiLGNoYXJzOiJceDgwXHg4MVx4ODJceDgzXHg4NFx4ODVceDg2XHg4N1x4ODhceDg5XHg4YVx4OGJceDhjXHg4ZFx4OGVceDhmXHg5MFx4OTFceDkyXHg5M1x4OTRceDk1XHg5Nlx4OTdceDk4XHg5OVx4OWFceDliXHg5Y1x4OWRceDllXHg5Zlx4YTBcdWZm''@;'; + put 'put ''ZmRceGEyXHhhM1x4YTRceGE1XHhhNlx4YTdceGE4XHhhOVx4ZDdceGFiXHhhY1x4YWRceGFlXHhhZlx4YjBceGIxXHhiMlx4YjNceGI0XHhiNVx4YjZceGI3XHhiOFx4YjlceGY3XHhiYlx4YmNceGJkXHhiZVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MjAxN1x1MDVkMFx1MDVkMVx1''@;'; + put 'put ''MDVkMlx1MDVkM1x1MDVkNFx1MDVkNVx1MDVkNlx1MDVkN1x1MDVkOFx1MDVkOVx1MDVkYVx1MDVkYlx1MDVkY1x1MDVkZFx1MDVkZVx1MDVkZlx1MDVlMFx1MDVlMVx1MDVlMlx1MDVlM1x1MDVlNFx1MDVlNVx1MDVlNlx1MDVlN1x1MDVlOFx1MDVlOVx1MDVlYVx1ZmZmZFx1ZmZmZFx1MjAw''@;'; + put 'put ''ZVx1MjAwZlx1ZmZmZCJ9LGNwMjg1OTg6Imlzbzg4NTk4Iixpc284ODU5OTp7dHlwZToiX3NiY3MiLGNoYXJzOiJceDgwXHg4MVx4ODJceDgzXHg4NFx4ODVceDg2XHg4N1x4ODhceDg5XHg4YVx4OGJceDhjXHg4ZFx4OGVceDhmXHg5MFx4OTFceDkyXHg5M1x4OTRceDk1XHg5Nlx4OTdceDk4''@;'; + put 'put ''XHg5OVx4OWFceDliXHg5Y1x4OWRceDllXHg5Zlx4YTBceGExXHhhMlx4YTNceGE0XHhhNVx4YTZceGE3XHhhOFx4YTlceGFhXHhhYlx4YWNceGFkXHhhZVx4YWZceGIwXHhiMVx4YjJceGIzXHhiNFx4YjVceGI2XHhiN1x4YjhceGI5XHhiYVx4YmJceGJjXHhiZFx4YmVceGJmXHhjMFx4YzFc''@;'; + put 'put ''eGMyXHhjM1x4YzRceGM1XHhjNlx4YzdceGM4XHhjOVx4Y2FceGNiXHhjY1x4Y2RceGNlXHhjZlx1MDExZVx4ZDFceGQyXHhkM1x4ZDRceGQ1XHhkNlx4ZDdceGQ4XHhkOVx4ZGFceGRiXHhkY1x1MDEzMFx1MDE1ZVx4ZGZceGUwXHhlMVx4ZTJceGUzXHhlNFx4ZTVceGU2XHhlN1x4ZThceGU5''@;'; + put 'put ''XHhlYVx4ZWJceGVjXHhlZFx4ZWVceGVmXHUwMTFmXHhmMVx4ZjJceGYzXHhmNFx4ZjVceGY2XHhmN1x4ZjhceGY5XHhmYVx4ZmJceGZjXHUwMTMxXHUwMTVmXHhmZiJ9LGNwMjg1OTk6Imlzbzg4NTk5Iixpc284ODU5MTA6e3R5cGU6Il9zYmNzIixjaGFyczoiXHg4MFx4ODFceDgyXHg4M1x4''@;'; + put 'put ''ODRceDg1XHg4Nlx4ODdceDg4XHg4OVx4OGFceDhiXHg4Y1x4OGRceDhlXHg4Zlx4OTBceDkxXHg5Mlx4OTNceDk0XHg5NVx4OTZceDk3XHg5OFx4OTlceDlhXHg5Ylx4OWNceDlkXHg5ZVx4OWZceGEwXHUwMTA0XHUwMTEyXHUwMTIyXHUwMTJhXHUwMTI4XHUwMTM2XHhhN1x1MDEzYlx1MDEx''@;'; + put 'put ''MFx1MDE2MFx1MDE2Nlx1MDE3ZFx4YWRcdTAxNmFcdTAxNGFceGIwXHUwMTA1XHUwMTEzXHUwMTIzXHUwMTJiXHUwMTI5XHUwMTM3XHhiN1x1MDEzY1x1MDExMVx1MDE2MVx1MDE2N1x1MDE3ZVx1MjAxNVx1MDE2Ylx1MDE0Ylx1MDEwMFx4YzFceGMyXHhjM1x4YzRceGM1XHhjNlx1MDEyZVx1''@;'; + put 'put ''MDEwY1x4YzlcdTAxMThceGNiXHUwMTE2XHhjZFx4Y2VceGNmXHhkMFx1MDE0NVx1MDE0Y1x4ZDNceGQ0XHhkNVx4ZDZcdTAxNjhceGQ4XHUwMTcyXHhkYVx4ZGJceGRjXHhkZFx4ZGVceGRmXHUwMTAxXHhlMVx4ZTJceGUzXHhlNFx4ZTVceGU2XHUwMTJmXHUwMTBkXHhlOVx1MDExOVx4ZWJc''@;'; + put 'put ''dTAxMTdceGVkXHhlZVx4ZWZceGYwXHUwMTQ2XHUwMTRkXHhmM1x4ZjRceGY1XHhmNlx1MDE2OVx4ZjhcdTAxNzNceGZhXHhmYlx4ZmNceGZkXHhmZVx1MDEzOCJ9LGNwMjg2MDA6Imlzbzg4NTkxMCIsaXNvODg1OTExOnt0eXBlOiJfc2JjcyIsY2hhcnM6Ilx4ODBceDgxXHg4Mlx4ODNceDg0''@;'; + put 'put ''XHg4NVx4ODZceDg3XHg4OFx4ODlceDhhXHg4Ylx4OGNceDhkXHg4ZVx4OGZceDkwXHg5MVx4OTJceDkzXHg5NFx4OTVceDk2XHg5N1x4OThceDk5XHg5YVx4OWJceDljXHg5ZFx4OWVceDlmXHhhMFx1MGUwMVx1MGUwMlx1MGUwM1x1MGUwNFx1MGUwNVx1MGUwNlx1MGUwN1x1MGUwOFx1MGUw''@;'; + put 'put ''OVx1MGUwYVx1MGUwYlx1MGUwY1x1MGUwZFx1MGUwZVx1MGUwZlx1MGUxMFx1MGUxMVx1MGUxMlx1MGUxM1x1MGUxNFx1MGUxNVx1MGUxNlx1MGUxN1x1MGUxOFx1MGUxOVx1MGUxYVx1MGUxYlx1MGUxY1x1MGUxZFx1MGUxZVx1MGUxZlx1MGUyMFx1MGUyMVx1MGUyMlx1MGUyM1x1MGUyNFx1''@;'; + put 'put ''MGUyNVx1MGUyNlx1MGUyN1x1MGUyOFx1MGUyOVx1MGUyYVx1MGUyYlx1MGUyY1x1MGUyZFx1MGUyZVx1MGUyZlx1MGUzMFx1MGUzMVx1MGUzMlx1MGUzM1x1MGUzNFx1MGUzNVx1MGUzNlx1MGUzN1x1MGUzOFx1MGUzOVx1MGUzYVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MGUzZlx1MGU0''@;'; + put 'put ''MFx1MGU0MVx1MGU0Mlx1MGU0M1x1MGU0NFx1MGU0NVx1MGU0Nlx1MGU0N1x1MGU0OFx1MGU0OVx1MGU0YVx1MGU0Ylx1MGU0Y1x1MGU0ZFx1MGU0ZVx1MGU0Zlx1MGU1MFx1MGU1MVx1MGU1Mlx1MGU1M1x1MGU1NFx1MGU1NVx1MGU1Nlx1MGU1N1x1MGU1OFx1MGU1OVx1MGU1YVx1MGU1Ylx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZCJ9LGNwMjg2MDE6Imlzbzg4NTkxMSIsaXNvODg1OTEzOnt0eXBlOiJfc2JjcyIsY2hhcnM6Ilx4ODBceDgxXHg4Mlx4ODNceDg0XHg4NVx4ODZceDg3XHg4OFx4ODlceDhhXHg4Ylx4OGNceDhkXHg4ZVx4OGZceDkwXHg5MVx4OTJceDkzXHg5NFx4OTVc''@;'; + put 'put ''eDk2XHg5N1x4OThceDk5XHg5YVx4OWJceDljXHg5ZFx4OWVceDlmXHhhMFx1MjAxZFx4YTJceGEzXHhhNFx1MjAxZVx4YTZceGE3XHhkOFx4YTlcdTAxNTZceGFiXHhhY1x4YWRceGFlXHhjNlx4YjBceGIxXHhiMlx4YjNcdTIwMWNceGI1XHhiNlx4YjdceGY4XHhiOVx1MDE1N1x4YmJceGJj''@;'; + put 'put ''XHhiZFx4YmVceGU2XHUwMTA0XHUwMTJlXHUwMTAwXHUwMTA2XHhjNFx4YzVcdTAxMThcdTAxMTJcdTAxMGNceGM5XHUwMTc5XHUwMTE2XHUwMTIyXHUwMTM2XHUwMTJhXHUwMTNiXHUwMTYwXHUwMTQzXHUwMTQ1XHhkM1x1MDE0Y1x4ZDVceGQ2XHhkN1x1MDE3Mlx1MDE0MVx1MDE1YVx1MDE2''@;'; + put 'put ''YVx4ZGNcdTAxN2JcdTAxN2RceGRmXHUwMTA1XHUwMTJmXHUwMTAxXHUwMTA3XHhlNFx4ZTVcdTAxMTlcdTAxMTNcdTAxMGRceGU5XHUwMTdhXHUwMTE3XHUwMTIzXHUwMTM3XHUwMTJiXHUwMTNjXHUwMTYxXHUwMTQ0XHUwMTQ2XHhmM1x1MDE0ZFx4ZjVceGY2XHhmN1x1MDE3M1x1MDE0Mlx1''@;'; + put 'put ''MDE1Ylx1MDE2Ylx4ZmNcdTAxN2NcdTAxN2VcdTIwMTkifSxjcDI4NjAzOiJpc284ODU5MTMiLGlzbzg4NTkxNDp7dHlwZToiX3NiY3MiLGNoYXJzOiJceDgwXHg4MVx4ODJceDgzXHg4NFx4ODVceDg2XHg4N1x4ODhceDg5XHg4YVx4OGJceDhjXHg4ZFx4OGVceDhmXHg5MFx4OTFceDkyXHg5''@;'; + put 'put ''M1x4OTRceDk1XHg5Nlx4OTdceDk4XHg5OVx4OWFceDliXHg5Y1x4OWRceDllXHg5Zlx4YTBcdTFlMDJcdTFlMDNceGEzXHUwMTBhXHUwMTBiXHUxZTBhXHhhN1x1MWU4MFx4YTlcdTFlODJcdTFlMGJcdTFlZjJceGFkXHhhZVx1MDE3OFx1MWUxZVx1MWUxZlx1MDEyMFx1MDEyMVx1MWU0MFx1''@;'; + put 'put ''MWU0MVx4YjZcdTFlNTZcdTFlODFcdTFlNTdcdTFlODNcdTFlNjBcdTFlZjNcdTFlODRcdTFlODVcdTFlNjFceGMwXHhjMVx4YzJceGMzXHhjNFx4YzVceGM2XHhjN1x4YzhceGM5XHhjYVx4Y2JceGNjXHhjZFx4Y2VceGNmXHUwMTc0XHhkMVx4ZDJceGQzXHhkNFx4ZDVceGQ2XHUxZTZhXHhk''@;'; + put 'put ''OFx4ZDlceGRhXHhkYlx4ZGNceGRkXHUwMTc2XHhkZlx4ZTBceGUxXHhlMlx4ZTNceGU0XHhlNVx4ZTZceGU3XHhlOFx4ZTlceGVhXHhlYlx4ZWNceGVkXHhlZVx4ZWZcdTAxNzVceGYxXHhmMlx4ZjNceGY0XHhmNVx4ZjZcdTFlNmJceGY4XHhmOVx4ZmFceGZiXHhmY1x4ZmRcdTAxNzdceGZm''@;'; + put 'put ''In0sY3AyODYwNDoiaXNvODg1OTE0Iixpc284ODU5MTU6e3R5cGU6Il9zYmNzIixjaGFyczoiXHg4MFx4ODFceDgyXHg4M1x4ODRceDg1XHg4Nlx4ODdceDg4XHg4OVx4OGFceDhiXHg4Y1x4OGRceDhlXHg4Zlx4OTBceDkxXHg5Mlx4OTNceDk0XHg5NVx4OTZceDk3XHg5OFx4OTlceDlhXHg5''@;'; + put 'put ''Ylx4OWNceDlkXHg5ZVx4OWZceGEwXHhhMVx4YTJceGEzXHUyMGFjXHhhNVx1MDE2MFx4YTdcdTAxNjFceGE5XHhhYVx4YWJceGFjXHhhZFx4YWVceGFmXHhiMFx4YjFceGIyXHhiM1x1MDE3ZFx4YjVceGI2XHhiN1x1MDE3ZVx4YjlceGJhXHhiYlx1MDE1Mlx1MDE1M1x1MDE3OFx4YmZceGMw''@;'; + put 'put ''XHhjMVx4YzJceGMzXHhjNFx4YzVceGM2XHhjN1x4YzhceGM5XHhjYVx4Y2JceGNjXHhjZFx4Y2VceGNmXHhkMFx4ZDFceGQyXHhkM1x4ZDRceGQ1XHhkNlx4ZDdceGQ4XHhkOVx4ZGFceGRiXHhkY1x4ZGRceGRlXHhkZlx4ZTBceGUxXHhlMlx4ZTNceGU0XHhlNVx4ZTZceGU3XHhlOFx4ZTlc''@;'; + put 'put ''eGVhXHhlYlx4ZWNceGVkXHhlZVx4ZWZceGYwXHhmMVx4ZjJceGYzXHhmNFx4ZjVceGY2XHhmN1x4ZjhceGY5XHhmYVx4ZmJceGZjXHhmZFx4ZmVceGZmIn0sY3AyODYwNToiaXNvODg1OTE1Iixpc284ODU5MTY6e3R5cGU6Il9zYmNzIixjaGFyczoiXHg4MFx4ODFceDgyXHg4M1x4ODRceDg1''@;'; + put 'put ''XHg4Nlx4ODdceDg4XHg4OVx4OGFceDhiXHg4Y1x4OGRceDhlXHg4Zlx4OTBceDkxXHg5Mlx4OTNceDk0XHg5NVx4OTZceDk3XHg5OFx4OTlceDlhXHg5Ylx4OWNceDlkXHg5ZVx4OWZceGEwXHUwMTA0XHUwMTA1XHUwMTQxXHUyMGFjXHUyMDFlXHUwMTYwXHhhN1x1MDE2MVx4YTlcdTAyMThc''@;'; + put 'put ''eGFiXHUwMTc5XHhhZFx1MDE3YVx1MDE3Ylx4YjBceGIxXHUwMTBjXHUwMTQyXHUwMTdkXHUyMDFkXHhiNlx4YjdcdTAxN2VcdTAxMGRcdTAyMTlceGJiXHUwMTUyXHUwMTUzXHUwMTc4XHUwMTdjXHhjMFx4YzFceGMyXHUwMTAyXHhjNFx1MDEwNlx4YzZceGM3XHhjOFx4YzlceGNhXHhjYlx4''@;'; + put 'put ''Y2NceGNkXHhjZVx4Y2ZcdTAxMTBcdTAxNDNceGQyXHhkM1x4ZDRcdTAxNTBceGQ2XHUwMTVhXHUwMTcwXHhkOVx4ZGFceGRiXHhkY1x1MDExOFx1MDIxYVx4ZGZceGUwXHhlMVx4ZTJcdTAxMDNceGU0XHUwMTA3XHhlNlx4ZTdceGU4XHhlOVx4ZWFceGViXHhlY1x4ZWRceGVlXHhlZlx1MDEx''@;'; + put 'put ''MVx1MDE0NFx4ZjJceGYzXHhmNFx1MDE1MVx4ZjZcdTAxNWJcdTAxNzFceGY5XHhmYVx4ZmJceGZjXHUwMTE5XHUwMjFiXHhmZiJ9LGNwMjg2MDY6Imlzbzg4NTkxNiIsY3A0Mzc6e3R5cGU6Il9zYmNzIixjaGFyczoiXHhjN1x4ZmNceGU5XHhlMlx4ZTRceGUwXHhlNVx4ZTdceGVhXHhlYlx4''@;'; + put 'put ''ZThceGVmXHhlZVx4ZWNceGM0XHhjNVx4YzlceGU2XHhjNlx4ZjRceGY2XHhmMlx4ZmJceGY5XHhmZlx4ZDZceGRjXHhhMlx4YTNceGE1XHUyMGE3XHUwMTkyXHhlMVx4ZWRceGYzXHhmYVx4ZjFceGQxXHhhYVx4YmFceGJmXHUyMzEwXHhhY1x4YmRceGJjXHhhMVx4YWJceGJiXHUyNTkxXHUy''@;'; + put 'put ''NTkyXHUyNTkzXHUyNTAyXHUyNTI0XHUyNTYxXHUyNTYyXHUyNTU2XHUyNTU1XHUyNTYzXHUyNTUxXHUyNTU3XHUyNTVkXHUyNTVjXHUyNTViXHUyNTEwXHUyNTE0XHUyNTM0XHUyNTJjXHUyNTFjXHUyNTAwXHUyNTNjXHUyNTVlXHUyNTVmXHUyNTVhXHUyNTU0XHUyNTY5XHUyNTY2XHUyNTYw''@;'; + put 'put ''XHUyNTUwXHUyNTZjXHUyNTY3XHUyNTY4XHUyNTY0XHUyNTY1XHUyNTU5XHUyNTU4XHUyNTUyXHUyNTUzXHUyNTZiXHUyNTZhXHUyNTE4XHUyNTBjXHUyNTg4XHUyNTg0XHUyNThjXHUyNTkwXHUyNTgwXHUwM2IxXHhkZlx1MDM5M1x1MDNjMFx1MDNhM1x1MDNjM1x4YjVcdTAzYzRcdTAzYTZc''@;'; + put 'put ''dTAzOThcdTAzYTlcdTAzYjRcdTIyMWVcdTAzYzZcdTAzYjVcdTIyMjlcdTIyNjFceGIxXHUyMjY1XHUyMjY0XHUyMzIwXHUyMzIxXHhmN1x1MjI0OFx4YjBcdTIyMTlceGI3XHUyMjFhXHUyMDdmXHhiMlx1MjVhMFx4YTAifSxpYm00Mzc6ImNwNDM3Iixjc2libTQzNzoiY3A0MzciLGNwNzM3''@;'; + put 'put ''Ont0eXBlOiJfc2JjcyIsY2hhcnM6Ilx1MDM5MVx1MDM5Mlx1MDM5M1x1MDM5NFx1MDM5NVx1MDM5Nlx1MDM5N1x1MDM5OFx1MDM5OVx1MDM5YVx1MDM5Ylx1MDM5Y1x1MDM5ZFx1MDM5ZVx1MDM5Zlx1MDNhMFx1MDNhMVx1MDNhM1x1MDNhNFx1MDNhNVx1MDNhNlx1MDNhN1x1MDNhOFx1MDNh''@;'; + put 'put ''OVx1MDNiMVx1MDNiMlx1MDNiM1x1MDNiNFx1MDNiNVx1MDNiNlx1MDNiN1x1MDNiOFx1MDNiOVx1MDNiYVx1MDNiYlx1MDNiY1x1MDNiZFx1MDNiZVx1MDNiZlx1MDNjMFx1MDNjMVx1MDNjM1x1MDNjMlx1MDNjNFx1MDNjNVx1MDNjNlx1MDNjN1x1MDNjOFx1MjU5MVx1MjU5Mlx1MjU5M1x1''@;'; + put 'put ''MjUwMlx1MjUyNFx1MjU2MVx1MjU2Mlx1MjU1Nlx1MjU1NVx1MjU2M1x1MjU1MVx1MjU1N1x1MjU1ZFx1MjU1Y1x1MjU1Ylx1MjUxMFx1MjUxNFx1MjUzNFx1MjUyY1x1MjUxY1x1MjUwMFx1MjUzY1x1MjU1ZVx1MjU1Zlx1MjU1YVx1MjU1NFx1MjU2OVx1MjU2Nlx1MjU2MFx1MjU1MFx1MjU2''@;'; + put 'put ''Y1x1MjU2N1x1MjU2OFx1MjU2NFx1MjU2NVx1MjU1OVx1MjU1OFx1MjU1Mlx1MjU1M1x1MjU2Ylx1MjU2YVx1MjUxOFx1MjUwY1x1MjU4OFx1MjU4NFx1MjU4Y1x1MjU5MFx1MjU4MFx1MDNjOVx1MDNhY1x1MDNhZFx1MDNhZVx1MDNjYVx1MDNhZlx1MDNjY1x1MDNjZFx1MDNjYlx1MDNjZVx1''@;'; + put 'put ''MDM4Nlx1MDM4OFx1MDM4OVx1MDM4YVx1MDM4Y1x1MDM4ZVx1MDM4Zlx4YjFcdTIyNjVcdTIyNjRcdTAzYWFcdTAzYWJceGY3XHUyMjQ4XHhiMFx1MjIxOVx4YjdcdTIyMWFcdTIwN2ZceGIyXHUyNWEwXHhhMCJ9LGlibTczNzoiY3A3MzciLGNzaWJtNzM3OiJjcDczNyIsY3A3NzU6e3R5cGU6''@;'; + put 'put ''Il9zYmNzIixjaGFyczoiXHUwMTA2XHhmY1x4ZTlcdTAxMDFceGU0XHUwMTIzXHhlNVx1MDEwN1x1MDE0Mlx1MDExM1x1MDE1Nlx1MDE1N1x1MDEyYlx1MDE3OVx4YzRceGM1XHhjOVx4ZTZceGM2XHUwMTRkXHhmNlx1MDEyMlx4YTJcdTAxNWFcdTAxNWJceGQ2XHhkY1x4ZjhceGEzXHhkOFx4''@;'; + put 'put ''ZDdceGE0XHUwMTAwXHUwMTJhXHhmM1x1MDE3Ylx1MDE3Y1x1MDE3YVx1MjAxZFx4YTZceGE5XHhhZVx4YWNceGJkXHhiY1x1MDE0MVx4YWJceGJiXHUyNTkxXHUyNTkyXHUyNTkzXHUyNTAyXHUyNTI0XHUwMTA0XHUwMTBjXHUwMTE4XHUwMTE2XHUyNTYzXHUyNTUxXHUyNTU3XHUyNTVkXHUw''@;'; + put 'put ''MTJlXHUwMTYwXHUyNTEwXHUyNTE0XHUyNTM0XHUyNTJjXHUyNTFjXHUyNTAwXHUyNTNjXHUwMTcyXHUwMTZhXHUyNTVhXHUyNTU0XHUyNTY5XHUyNTY2XHUyNTYwXHUyNTUwXHUyNTZjXHUwMTdkXHUwMTA1XHUwMTBkXHUwMTE5XHUwMTE3XHUwMTJmXHUwMTYxXHUwMTczXHUwMTZiXHUwMTdl''@;'; + put 'put ''XHUyNTE4XHUyNTBjXHUyNTg4XHUyNTg0XHUyNThjXHUyNTkwXHUyNTgwXHhkM1x4ZGZcdTAxNGNcdTAxNDNceGY1XHhkNVx4YjVcdTAxNDRcdTAxMzZcdTAxMzdcdTAxM2JcdTAxM2NcdTAxNDZcdTAxMTJcdTAxNDVcdTIwMTlceGFkXHhiMVx1MjAxY1x4YmVceGI2XHhhN1x4ZjdcdTIwMWVc''@;'; + put 'put ''eGIwXHUyMjE5XHhiN1x4YjlceGIzXHhiMlx1MjVhMFx4YTAifSxpYm03NzU6ImNwNzc1Iixjc2libTc3NToiY3A3NzUiLGNwODUwOnt0eXBlOiJfc2JjcyIsY2hhcnM6Ilx4YzdceGZjXHhlOVx4ZTJceGU0XHhlMFx4ZTVceGU3XHhlYVx4ZWJceGU4XHhlZlx4ZWVceGVjXHhjNFx4YzVceGM5''@;'; + put 'put ''XHhlNlx4YzZceGY0XHhmNlx4ZjJceGZiXHhmOVx4ZmZceGQ2XHhkY1x4ZjhceGEzXHhkOFx4ZDdcdTAxOTJceGUxXHhlZFx4ZjNceGZhXHhmMVx4ZDFceGFhXHhiYVx4YmZceGFlXHhhY1x4YmRceGJjXHhhMVx4YWJceGJiXHUyNTkxXHUyNTkyXHUyNTkzXHUyNTAyXHUyNTI0XHhjMVx4YzJc''@;'; + put 'put ''eGMwXHhhOVx1MjU2M1x1MjU1MVx1MjU1N1x1MjU1ZFx4YTJceGE1XHUyNTEwXHUyNTE0XHUyNTM0XHUyNTJjXHUyNTFjXHUyNTAwXHUyNTNjXHhlM1x4YzNcdTI1NWFcdTI1NTRcdTI1NjlcdTI1NjZcdTI1NjBcdTI1NTBcdTI1NmNceGE0XHhmMFx4ZDBceGNhXHhjYlx4YzhcdTAxMzFceGNk''@;'; + put 'put ''XHhjZVx4Y2ZcdTI1MThcdTI1MGNcdTI1ODhcdTI1ODRceGE2XHhjY1x1MjU4MFx4ZDNceGRmXHhkNFx4ZDJceGY1XHhkNVx4YjVceGZlXHhkZVx4ZGFceGRiXHhkOVx4ZmRceGRkXHhhZlx4YjRceGFkXHhiMVx1MjAxN1x4YmVceGI2XHhhN1x4ZjdceGI4XHhiMFx4YThceGI3XHhiOVx4YjNc''@;'; + put 'put ''eGIyXHUyNWEwXHhhMCJ9LGlibTg1MDoiY3A4NTAiLGNzaWJtODUwOiJjcDg1MCIsY3A4NTI6e3R5cGU6Il9zYmNzIixjaGFyczoiXHhjN1x4ZmNceGU5XHhlMlx4ZTRcdTAxNmZcdTAxMDdceGU3XHUwMTQyXHhlYlx1MDE1MFx1MDE1MVx4ZWVcdTAxNzlceGM0XHUwMTA2XHhjOVx1MDEzOVx1''@;'; + put 'put ''MDEzYVx4ZjRceGY2XHUwMTNkXHUwMTNlXHUwMTVhXHUwMTViXHhkNlx4ZGNcdTAxNjRcdTAxNjVcdTAxNDFceGQ3XHUwMTBkXHhlMVx4ZWRceGYzXHhmYVx1MDEwNFx1MDEwNVx1MDE3ZFx1MDE3ZVx1MDExOFx1MDExOVx4YWNcdTAxN2FcdTAxMGNcdTAxNWZceGFiXHhiYlx1MjU5MVx1MjU5''@;'; + put 'put ''Mlx1MjU5M1x1MjUwMlx1MjUyNFx4YzFceGMyXHUwMTFhXHUwMTVlXHUyNTYzXHUyNTUxXHUyNTU3XHUyNTVkXHUwMTdiXHUwMTdjXHUyNTEwXHUyNTE0XHUyNTM0XHUyNTJjXHUyNTFjXHUyNTAwXHUyNTNjXHUwMTAyXHUwMTAzXHUyNTVhXHUyNTU0XHUyNTY5XHUyNTY2XHUyNTYwXHUyNTUw''@;'; + put 'put ''XHUyNTZjXHhhNFx1MDExMVx1MDExMFx1MDEwZVx4Y2JcdTAxMGZcdTAxNDdceGNkXHhjZVx1MDExYlx1MjUxOFx1MjUwY1x1MjU4OFx1MjU4NFx1MDE2Mlx1MDE2ZVx1MjU4MFx4ZDNceGRmXHhkNFx1MDE0M1x1MDE0NFx1MDE0OFx1MDE2MFx1MDE2MVx1MDE1NFx4ZGFcdTAxNTVcdTAxNzBc''@;'; + put 'put ''eGZkXHhkZFx1MDE2M1x4YjRceGFkXHUwMmRkXHUwMmRiXHUwMmM3XHUwMmQ4XHhhN1x4ZjdceGI4XHhiMFx4YThcdTAyZDlcdTAxNzFcdTAxNThcdTAxNTlcdTI1YTBceGEwIn0saWJtODUyOiJjcDg1MiIsY3NpYm04NTI6ImNwODUyIixjcDg1NTp7dHlwZToiX3NiY3MiLGNoYXJzOiJcdTA0''@;'; + put 'put ''NTJcdTA0MDJcdTA0NTNcdTA0MDNcdTA0NTFcdTA0MDFcdTA0NTRcdTA0MDRcdTA0NTVcdTA0MDVcdTA0NTZcdTA0MDZcdTA0NTdcdTA0MDdcdTA0NThcdTA0MDhcdTA0NTlcdTA0MDlcdTA0NWFcdTA0MGFcdTA0NWJcdTA0MGJcdTA0NWNcdTA0MGNcdTA0NWVcdTA0MGVcdTA0NWZcdTA0MGZc''@;'; + put 'put ''dTA0NGVcdTA0MmVcdTA0NGFcdTA0MmFcdTA0MzBcdTA0MTBcdTA0MzFcdTA0MTFcdTA0NDZcdTA0MjZcdTA0MzRcdTA0MTRcdTA0MzVcdTA0MTVcdTA0NDRcdTA0MjRcdTA0MzNcdTA0MTNceGFiXHhiYlx1MjU5MVx1MjU5Mlx1MjU5M1x1MjUwMlx1MjUyNFx1MDQ0NVx1MDQyNVx1MDQzOFx1''@;'; + put 'put ''MDQxOFx1MjU2M1x1MjU1MVx1MjU1N1x1MjU1ZFx1MDQzOVx1MDQxOVx1MjUxMFx1MjUxNFx1MjUzNFx1MjUyY1x1MjUxY1x1MjUwMFx1MjUzY1x1MDQzYVx1MDQxYVx1MjU1YVx1MjU1NFx1MjU2OVx1MjU2Nlx1MjU2MFx1MjU1MFx1MjU2Y1x4YTRcdTA0M2JcdTA0MWJcdTA0M2NcdTA0MWNc''@;'; + put 'put ''dTA0M2RcdTA0MWRcdTA0M2VcdTA0MWVcdTA0M2ZcdTI1MThcdTI1MGNcdTI1ODhcdTI1ODRcdTA0MWZcdTA0NGZcdTI1ODBcdTA0MmZcdTA0NDBcdTA0MjBcdTA0NDFcdTA0MjFcdTA0NDJcdTA0MjJcdTA0NDNcdTA0MjNcdTA0MzZcdTA0MTZcdTA0MzJcdTA0MTJcdTA0NGNcdTA0MmNcdTIx''@;'; + put 'put ''MTZceGFkXHUwNDRiXHUwNDJiXHUwNDM3XHUwNDE3XHUwNDQ4XHUwNDI4XHUwNDRkXHUwNDJkXHUwNDQ5XHUwNDI5XHUwNDQ3XHUwNDI3XHhhN1x1MjVhMFx4YTAifSxpYm04NTU6ImNwODU1Iixjc2libTg1NToiY3A4NTUiLGNwODU2Ont0eXBlOiJfc2JjcyIsY2hhcnM6Ilx1MDVkMFx1MDVk''@;'; + put 'put ''MVx1MDVkMlx1MDVkM1x1MDVkNFx1MDVkNVx1MDVkNlx1MDVkN1x1MDVkOFx1MDVkOVx1MDVkYVx1MDVkYlx1MDVkY1x1MDVkZFx1MDVkZVx1MDVkZlx1MDVlMFx1MDVlMVx1MDVlMlx1MDVlM1x1MDVlNFx1MDVlNVx1MDVlNlx1MDVlN1x1MDVlOFx1MDVlOVx1MDVlYVx1ZmZmZFx4YTNcdWZm''@;'; + put 'put ''ZmRceGQ3XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHhhZVx4YWNceGJkXHhiY1x1ZmZmZFx4YWJceGJiXHUyNTkxXHUyNTkyXHUyNTkzXHUyNTAyXHUyNTI0XHVmZmZkXHVmZmZkXHVmZmZkXHhhOVx1MjU2M1x1MjU1MVx1MjU1''@;'; + put 'put ''N1x1MjU1ZFx4YTJceGE1XHUyNTEwXHUyNTE0XHUyNTM0XHUyNTJjXHUyNTFjXHUyNTAwXHUyNTNjXHVmZmZkXHVmZmZkXHUyNTVhXHUyNTU0XHUyNTY5XHUyNTY2XHUyNTYwXHUyNTUwXHUyNTZjXHhhNFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1MjUxOFx1MjUwY1x1MjU4OFx1MjU4NFx4YTZcdWZmZmRcdTI1ODBcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRceGI1XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHhhZlx4YjRceGFkXHhiMVx1MjAxN1x4YmVceGI2XHhhN1x4Zjdc''@;'; + put 'put ''eGI4XHhiMFx4YThceGI3XHhiOVx4YjNceGIyXHUyNWEwXHhhMCJ9LGlibTg1NjoiY3A4NTYiLGNzaWJtODU2OiJjcDg1NiIsY3A4NTc6e3R5cGU6Il9zYmNzIixjaGFyczoiXHhjN1x4ZmNceGU5XHhlMlx4ZTRceGUwXHhlNVx4ZTdceGVhXHhlYlx4ZThceGVmXHhlZVx1MDEzMVx4YzRceGM1''@;'; + put 'put ''XHhjOVx4ZTZceGM2XHhmNFx4ZjZceGYyXHhmYlx4ZjlcdTAxMzBceGQ2XHhkY1x4ZjhceGEzXHhkOFx1MDE1ZVx1MDE1Zlx4ZTFceGVkXHhmM1x4ZmFceGYxXHhkMVx1MDExZVx1MDExZlx4YmZceGFlXHhhY1x4YmRceGJjXHhhMVx4YWJceGJiXHUyNTkxXHUyNTkyXHUyNTkzXHUyNTAyXHUy''@;'; + put 'put ''NTI0XHhjMVx4YzJceGMwXHhhOVx1MjU2M1x1MjU1MVx1MjU1N1x1MjU1ZFx4YTJceGE1XHUyNTEwXHUyNTE0XHUyNTM0XHUyNTJjXHUyNTFjXHUyNTAwXHUyNTNjXHhlM1x4YzNcdTI1NWFcdTI1NTRcdTI1NjlcdTI1NjZcdTI1NjBcdTI1NTBcdTI1NmNceGE0XHhiYVx4YWFceGNhXHhjYlx4''@;'; + put 'put ''YzhcdWZmZmRceGNkXHhjZVx4Y2ZcdTI1MThcdTI1MGNcdTI1ODhcdTI1ODRceGE2XHhjY1x1MjU4MFx4ZDNceGRmXHhkNFx4ZDJceGY1XHhkNVx4YjVcdWZmZmRceGQ3XHhkYVx4ZGJceGQ5XHhlY1x4ZmZceGFmXHhiNFx4YWRceGIxXHVmZmZkXHhiZVx4YjZceGE3XHhmN1x4YjhceGIwXHhh''@;'; + put 'put ''OFx4YjdceGI5XHhiM1x4YjJcdTI1YTBceGEwIn0saWJtODU3OiJjcDg1NyIsY3NpYm04NTc6ImNwODU3IixjcDg1ODp7dHlwZToiX3NiY3MiLGNoYXJzOiJceGM3XHhmY1x4ZTlceGUyXHhlNFx4ZTBceGU1XHhlN1x4ZWFceGViXHhlOFx4ZWZceGVlXHhlY1x4YzRceGM1XHhjOVx4ZTZceGM2''@;'; + put 'put ''XHhmNFx4ZjZceGYyXHhmYlx4ZjlceGZmXHhkNlx4ZGNceGY4XHhhM1x4ZDhceGQ3XHUwMTkyXHhlMVx4ZWRceGYzXHhmYVx4ZjFceGQxXHhhYVx4YmFceGJmXHhhZVx4YWNceGJkXHhiY1x4YTFceGFiXHhiYlx1MjU5MVx1MjU5Mlx1MjU5M1x1MjUwMlx1MjUyNFx4YzFceGMyXHhjMFx4YTlc''@;'; + put 'put ''dTI1NjNcdTI1NTFcdTI1NTdcdTI1NWRceGEyXHhhNVx1MjUxMFx1MjUxNFx1MjUzNFx1MjUyY1x1MjUxY1x1MjUwMFx1MjUzY1x4ZTNceGMzXHUyNTVhXHUyNTU0XHUyNTY5XHUyNTY2XHUyNTYwXHUyNTUwXHUyNTZjXHhhNFx4ZjBceGQwXHhjYVx4Y2JceGM4XHUyMGFjXHhjZFx4Y2VceGNm''@;'; + put 'put ''XHUyNTE4XHUyNTBjXHUyNTg4XHUyNTg0XHhhNlx4Y2NcdTI1ODBceGQzXHhkZlx4ZDRceGQyXHhmNVx4ZDVceGI1XHhmZVx4ZGVceGRhXHhkYlx4ZDlceGZkXHhkZFx4YWZceGI0XHhhZFx4YjFcdTIwMTdceGJlXHhiNlx4YTdceGY3XHhiOFx4YjBceGE4XHhiN1x4YjlceGIzXHhiMlx1MjVh''@;'; + put 'put ''MFx4YTAifSxpYm04NTg6ImNwODU4Iixjc2libTg1ODoiY3A4NTgiLGNwODYwOnt0eXBlOiJfc2JjcyIsY2hhcnM6Ilx4YzdceGZjXHhlOVx4ZTJceGUzXHhlMFx4YzFceGU3XHhlYVx4Y2FceGU4XHhjZFx4ZDRceGVjXHhjM1x4YzJceGM5XHhjMFx4YzhceGY0XHhmNVx4ZjJceGRhXHhmOVx4''@;'; + put 'put ''Y2NceGQ1XHhkY1x4YTJceGEzXHhkOVx1MjBhN1x4ZDNceGUxXHhlZFx4ZjNceGZhXHhmMVx4ZDFceGFhXHhiYVx4YmZceGQyXHhhY1x4YmRceGJjXHhhMVx4YWJceGJiXHUyNTkxXHUyNTkyXHUyNTkzXHUyNTAyXHUyNTI0XHUyNTYxXHUyNTYyXHUyNTU2XHUyNTU1XHUyNTYzXHUyNTUxXHUy''@;'; + put 'put ''NTU3XHUyNTVkXHUyNTVjXHUyNTViXHUyNTEwXHUyNTE0XHUyNTM0XHUyNTJjXHUyNTFjXHUyNTAwXHUyNTNjXHUyNTVlXHUyNTVmXHUyNTVhXHUyNTU0XHUyNTY5XHUyNTY2XHUyNTYwXHUyNTUwXHUyNTZjXHUyNTY3XHUyNTY4XHUyNTY0XHUyNTY1XHUyNTU5XHUyNTU4XHUyNTUyXHUyNTUz''@;'; + put 'put ''XHUyNTZiXHUyNTZhXHUyNTE4XHUyNTBjXHUyNTg4XHUyNTg0XHUyNThjXHUyNTkwXHUyNTgwXHUwM2IxXHhkZlx1MDM5M1x1MDNjMFx1MDNhM1x1MDNjM1x4YjVcdTAzYzRcdTAzYTZcdTAzOThcdTAzYTlcdTAzYjRcdTIyMWVcdTAzYzZcdTAzYjVcdTIyMjlcdTIyNjFceGIxXHUyMjY1XHUy''@;'; + put 'put ''MjY0XHUyMzIwXHUyMzIxXHhmN1x1MjI0OFx4YjBcdTIyMTlceGI3XHUyMjFhXHUyMDdmXHhiMlx1MjVhMFx4YTAifSxpYm04NjA6ImNwODYwIixjc2libTg2MDoiY3A4NjAiLGNwODYxOnt0eXBlOiJfc2JjcyIsY2hhcnM6Ilx4YzdceGZjXHhlOVx4ZTJceGU0XHhlMFx4ZTVceGU3XHhlYVx4''@;'; + put 'put ''ZWJceGU4XHhkMFx4ZjBceGRlXHhjNFx4YzVceGM5XHhlNlx4YzZceGY0XHhmNlx4ZmVceGZiXHhkZFx4ZmRceGQ2XHhkY1x4ZjhceGEzXHhkOFx1MjBhN1x1MDE5Mlx4ZTFceGVkXHhmM1x4ZmFceGMxXHhjZFx4ZDNceGRhXHhiZlx1MjMxMFx4YWNceGJkXHhiY1x4YTFceGFiXHhiYlx1MjU5''@;'; + put 'put ''MVx1MjU5Mlx1MjU5M1x1MjUwMlx1MjUyNFx1MjU2MVx1MjU2Mlx1MjU1Nlx1MjU1NVx1MjU2M1x1MjU1MVx1MjU1N1x1MjU1ZFx1MjU1Y1x1MjU1Ylx1MjUxMFx1MjUxNFx1MjUzNFx1MjUyY1x1MjUxY1x1MjUwMFx1MjUzY1x1MjU1ZVx1MjU1Zlx1MjU1YVx1MjU1NFx1MjU2OVx1MjU2Nlx1''@;'; + put 'put ''MjU2MFx1MjU1MFx1MjU2Y1x1MjU2N1x1MjU2OFx1MjU2NFx1MjU2NVx1MjU1OVx1MjU1OFx1MjU1Mlx1MjU1M1x1MjU2Ylx1MjU2YVx1MjUxOFx1MjUwY1x1MjU4OFx1MjU4NFx1MjU4Y1x1MjU5MFx1MjU4MFx1MDNiMVx4ZGZcdTAzOTNcdTAzYzBcdTAzYTNcdTAzYzNceGI1XHUwM2M0XHUw''@;'; + put 'put ''M2E2XHUwMzk4XHUwM2E5XHUwM2I0XHUyMjFlXHUwM2M2XHUwM2I1XHUyMjI5XHUyMjYxXHhiMVx1MjI2NVx1MjI2NFx1MjMyMFx1MjMyMVx4ZjdcdTIyNDhceGIwXHUyMjE5XHhiN1x1MjIxYVx1MjA3Zlx4YjJcdTI1YTBceGEwIn0saWJtODYxOiJjcDg2MSIsY3NpYm04NjE6ImNwODYxIixj''@;'; + put 'put ''cDg2Mjp7dHlwZToiX3NiY3MiLGNoYXJzOiJcdTA1ZDBcdTA1ZDFcdTA1ZDJcdTA1ZDNcdTA1ZDRcdTA1ZDVcdTA1ZDZcdTA1ZDdcdTA1ZDhcdTA1ZDlcdTA1ZGFcdTA1ZGJcdTA1ZGNcdTA1ZGRcdTA1ZGVcdTA1ZGZcdTA1ZTBcdTA1ZTFcdTA1ZTJcdTA1ZTNcdTA1ZTRcdTA1ZTVcdTA1ZTZc''@;'; + put 'put ''dTA1ZTdcdTA1ZThcdTA1ZTlcdTA1ZWFceGEyXHhhM1x4YTVcdTIwYTdcdTAxOTJceGUxXHhlZFx4ZjNceGZhXHhmMVx4ZDFceGFhXHhiYVx4YmZcdTIzMTBceGFjXHhiZFx4YmNceGExXHhhYlx4YmJcdTI1OTFcdTI1OTJcdTI1OTNcdTI1MDJcdTI1MjRcdTI1NjFcdTI1NjJcdTI1NTZcdTI1''@;'; + put 'put ''NTVcdTI1NjNcdTI1NTFcdTI1NTdcdTI1NWRcdTI1NWNcdTI1NWJcdTI1MTBcdTI1MTRcdTI1MzRcdTI1MmNcdTI1MWNcdTI1MDBcdTI1M2NcdTI1NWVcdTI1NWZcdTI1NWFcdTI1NTRcdTI1NjlcdTI1NjZcdTI1NjBcdTI1NTBcdTI1NmNcdTI1NjdcdTI1NjhcdTI1NjRcdTI1NjVcdTI1NTlc''@;'; + put 'put ''dTI1NThcdTI1NTJcdTI1NTNcdTI1NmJcdTI1NmFcdTI1MThcdTI1MGNcdTI1ODhcdTI1ODRcdTI1OGNcdTI1OTBcdTI1ODBcdTAzYjFceGRmXHUwMzkzXHUwM2MwXHUwM2EzXHUwM2MzXHhiNVx1MDNjNFx1MDNhNlx1MDM5OFx1MDNhOVx1MDNiNFx1MjIxZVx1MDNjNlx1MDNiNVx1MjIyOVx1''@;'; + put 'put ''MjI2MVx4YjFcdTIyNjVcdTIyNjRcdTIzMjBcdTIzMjFceGY3XHUyMjQ4XHhiMFx1MjIxOVx4YjdcdTIyMWFcdTIwN2ZceGIyXHUyNWEwXHhhMCJ9LGlibTg2MjoiY3A4NjIiLGNzaWJtODYyOiJjcDg2MiIsY3A4NjM6e3R5cGU6Il9zYmNzIixjaGFyczoiXHhjN1x4ZmNceGU5XHhlMlx4YzJc''@;'; + put 'put ''eGUwXHhiNlx4ZTdceGVhXHhlYlx4ZThceGVmXHhlZVx1MjAxN1x4YzBceGE3XHhjOVx4YzhceGNhXHhmNFx4Y2JceGNmXHhmYlx4ZjlceGE0XHhkNFx4ZGNceGEyXHhhM1x4ZDlceGRiXHUwMTkyXHhhNlx4YjRceGYzXHhmYVx4YThceGI4XHhiM1x4YWZceGNlXHUyMzEwXHhhY1x4YmRceGJj''@;'; + put 'put ''XHhiZVx4YWJceGJiXHUyNTkxXHUyNTkyXHUyNTkzXHUyNTAyXHUyNTI0XHUyNTYxXHUyNTYyXHUyNTU2XHUyNTU1XHUyNTYzXHUyNTUxXHUyNTU3XHUyNTVkXHUyNTVjXHUyNTViXHUyNTEwXHUyNTE0XHUyNTM0XHUyNTJjXHUyNTFjXHUyNTAwXHUyNTNjXHUyNTVlXHUyNTVmXHUyNTVhXHUy''@;'; + put 'put ''NTU0XHUyNTY5XHUyNTY2XHUyNTYwXHUyNTUwXHUyNTZjXHUyNTY3XHUyNTY4XHUyNTY0XHUyNTY1XHUyNTU5XHUyNTU4XHUyNTUyXHUyNTUzXHUyNTZiXHUyNTZhXHUyNTE4XHUyNTBjXHUyNTg4XHUyNTg0XHUyNThjXHUyNTkwXHUyNTgwXHUwM2IxXHhkZlx1MDM5M1x1MDNjMFx1MDNhM1x1''@;'; + put 'put ''MDNjM1x4YjVcdTAzYzRcdTAzYTZcdTAzOThcdTAzYTlcdTAzYjRcdTIyMWVcdTAzYzZcdTAzYjVcdTIyMjlcdTIyNjFceGIxXHUyMjY1XHUyMjY0XHUyMzIwXHUyMzIxXHhmN1x1MjI0OFx4YjBcdTIyMTlceGI3XHUyMjFhXHUyMDdmXHhiMlx1MjVhMFx4YTAifSxpYm04NjM6ImNwODYzIixj''@;'; + put 'put ''c2libTg2MzoiY3A4NjMiLGNwODY0Ont0eXBlOiJfc2JjcyIsY2hhcnM6IlwwXHgwMVx4MDJceDAzXHgwNFx4MDVceDA2XHgwN1xiXHRcblx2XGZcclx4MGVceDBmXHgxMFx4MTFceDEyXHgxM1x4MTRceDE1XHgxNlx4MTdceDE4XHgxOVx4MWFceDFiXHgxY1x4MWRceDFlXHgxZiAhXCIjJFx1''@;'; + put 'put ''MDY2YSYnKCkqKywtLi8wMTIzNDU2Nzg5Ojs8PT4/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaW1xcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9flx4N2ZceGIwXHhiN1x1MjIxOVx1MjIxYVx1MjU5Mlx1MjUwMFx1MjUwMlx1MjUzY1x1MjUyNFx1MjUyY1x1MjUxY1x1MjUz''@;'; + put 'put ''NFx1MjUxMFx1MjUwY1x1MjUxNFx1MjUxOFx1MDNiMlx1MjIxZVx1MDNjNlx4YjFceGJkXHhiY1x1MjI0OFx4YWJceGJiXHVmZWY3XHVmZWY4XHVmZmZkXHVmZmZkXHVmZWZiXHVmZWZjXHVmZmZkXHhhMFx4YWRcdWZlODJceGEzXHhhNFx1ZmU4NFx1ZmZmZFx1ZmZmZFx1ZmU4ZVx1ZmU4Zlx1''@;'; + put 'put ''ZmU5NVx1ZmU5OVx1MDYwY1x1ZmU5ZFx1ZmVhMVx1ZmVhNVx1MDY2MFx1MDY2MVx1MDY2Mlx1MDY2M1x1MDY2NFx1MDY2NVx1MDY2Nlx1MDY2N1x1MDY2OFx1MDY2OVx1ZmVkMVx1MDYxYlx1ZmViMVx1ZmViNVx1ZmViOVx1MDYxZlx4YTJcdWZlODBcdWZlODFcdWZlODNcdWZlODVcdWZlY2Fc''@;'; + put 'put ''dWZlOGJcdWZlOGRcdWZlOTFcdWZlOTNcdWZlOTdcdWZlOWJcdWZlOWZcdWZlYTNcdWZlYTdcdWZlYTlcdWZlYWJcdWZlYWRcdWZlYWZcdWZlYjNcdWZlYjdcdWZlYmJcdWZlYmZcdWZlYzFcdWZlYzVcdWZlY2JcdWZlY2ZceGE2XHhhY1x4ZjdceGQ3XHVmZWM5XHUwNjQwXHVmZWQzXHVmZWQ3''@;'; + put 'put ''XHVmZWRiXHVmZWRmXHVmZWUzXHVmZWU3XHVmZWViXHVmZWVkXHVmZWVmXHVmZWYzXHVmZWJkXHVmZWNjXHVmZWNlXHVmZWNkXHVmZWUxXHVmZTdkXHUwNjUxXHVmZWU1XHVmZWU5XHVmZWVjXHVmZWYwXHVmZWYyXHVmZWQwXHVmZWQ1XHVmZWY1XHVmZWY2XHVmZWRkXHVmZWQ5XHVmZWYxXHUy''@;'; + put 'put ''NWEwXHVmZmZkIn0saWJtODY0OiJjcDg2NCIsY3NpYm04NjQ6ImNwODY0IixjcDg2NTp7dHlwZToiX3NiY3MiLGNoYXJzOiJceGM3XHhmY1x4ZTlceGUyXHhlNFx4ZTBceGU1XHhlN1x4ZWFceGViXHhlOFx4ZWZceGVlXHhlY1x4YzRceGM1XHhjOVx4ZTZceGM2XHhmNFx4ZjZceGYyXHhmYlx4''@;'; + put 'put ''ZjlceGZmXHhkNlx4ZGNceGY4XHhhM1x4ZDhcdTIwYTdcdTAxOTJceGUxXHhlZFx4ZjNceGZhXHhmMVx4ZDFceGFhXHhiYVx4YmZcdTIzMTBceGFjXHhiZFx4YmNceGExXHhhYlx4YTRcdTI1OTFcdTI1OTJcdTI1OTNcdTI1MDJcdTI1MjRcdTI1NjFcdTI1NjJcdTI1NTZcdTI1NTVcdTI1NjNc''@;'; + put 'put ''dTI1NTFcdTI1NTdcdTI1NWRcdTI1NWNcdTI1NWJcdTI1MTBcdTI1MTRcdTI1MzRcdTI1MmNcdTI1MWNcdTI1MDBcdTI1M2NcdTI1NWVcdTI1NWZcdTI1NWFcdTI1NTRcdTI1NjlcdTI1NjZcdTI1NjBcdTI1NTBcdTI1NmNcdTI1NjdcdTI1NjhcdTI1NjRcdTI1NjVcdTI1NTlcdTI1NThcdTI1''@;'; + put 'put ''NTJcdTI1NTNcdTI1NmJcdTI1NmFcdTI1MThcdTI1MGNcdTI1ODhcdTI1ODRcdTI1OGNcdTI1OTBcdTI1ODBcdTAzYjFceGRmXHUwMzkzXHUwM2MwXHUwM2EzXHUwM2MzXHhiNVx1MDNjNFx1MDNhNlx1MDM5OFx1MDNhOVx1MDNiNFx1MjIxZVx1MDNjNlx1MDNiNVx1MjIyOVx1MjI2MVx4YjFc''@;'; + put 'put ''dTIyNjVcdTIyNjRcdTIzMjBcdTIzMjFceGY3XHUyMjQ4XHhiMFx1MjIxOVx4YjdcdTIyMWFcdTIwN2ZceGIyXHUyNWEwXHhhMCJ9LGlibTg2NToiY3A4NjUiLGNzaWJtODY1OiJjcDg2NSIsY3A4NjY6e3R5cGU6Il9zYmNzIixjaGFyczoiXHUwNDEwXHUwNDExXHUwNDEyXHUwNDEzXHUwNDE0''@;'; + put 'put ''XHUwNDE1XHUwNDE2XHUwNDE3XHUwNDE4XHUwNDE5XHUwNDFhXHUwNDFiXHUwNDFjXHUwNDFkXHUwNDFlXHUwNDFmXHUwNDIwXHUwNDIxXHUwNDIyXHUwNDIzXHUwNDI0XHUwNDI1XHUwNDI2XHUwNDI3XHUwNDI4XHUwNDI5XHUwNDJhXHUwNDJiXHUwNDJjXHUwNDJkXHUwNDJlXHUwNDJmXHUw''@;'; + put 'put ''NDMwXHUwNDMxXHUwNDMyXHUwNDMzXHUwNDM0XHUwNDM1XHUwNDM2XHUwNDM3XHUwNDM4XHUwNDM5XHUwNDNhXHUwNDNiXHUwNDNjXHUwNDNkXHUwNDNlXHUwNDNmXHUyNTkxXHUyNTkyXHUyNTkzXHUyNTAyXHUyNTI0XHUyNTYxXHUyNTYyXHUyNTU2XHUyNTU1XHUyNTYzXHUyNTUxXHUyNTU3''@;'; + put 'put ''XHUyNTVkXHUyNTVjXHUyNTViXHUyNTEwXHUyNTE0XHUyNTM0XHUyNTJjXHUyNTFjXHUyNTAwXHUyNTNjXHUyNTVlXHUyNTVmXHUyNTVhXHUyNTU0XHUyNTY5XHUyNTY2XHUyNTYwXHUyNTUwXHUyNTZjXHUyNTY3XHUyNTY4XHUyNTY0XHUyNTY1XHUyNTU5XHUyNTU4XHUyNTUyXHUyNTUzXHUy''@;'; + put 'put ''NTZiXHUyNTZhXHUyNTE4XHUyNTBjXHUyNTg4XHUyNTg0XHUyNThjXHUyNTkwXHUyNTgwXHUwNDQwXHUwNDQxXHUwNDQyXHUwNDQzXHUwNDQ0XHUwNDQ1XHUwNDQ2XHUwNDQ3XHUwNDQ4XHUwNDQ5XHUwNDRhXHUwNDRiXHUwNDRjXHUwNDRkXHUwNDRlXHUwNDRmXHUwNDAxXHUwNDUxXHUwNDA0''@;'; + put 'put ''XHUwNDU0XHUwNDA3XHUwNDU3XHUwNDBlXHUwNDVlXHhiMFx1MjIxOVx4YjdcdTIyMWFcdTIxMTZceGE0XHUyNWEwXHhhMCJ9LGlibTg2NjoiY3A4NjYiLGNzaWJtODY2OiJjcDg2NiIsY3A4Njk6e3R5cGU6Il9zYmNzIixjaGFyczoiXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHUwMzg2XHVmZmZkXHhiN1x4YWNceGE2XHUyMDE4XHUyMDE5XHUwMzg4XHUyMDE1XHUwMzg5XHUwMzhhXHUwM2FhXHUwMzhjXHVmZmZkXHVmZmZkXHUwMzhlXHUwM2FiXHhhOVx1MDM4Zlx4YjJceGIzXHUwM2FjXHhhM1x1MDNhZFx1MDNhZVx1MDNhZlx1MDNjYVx1MDM5MFx1MDNjY1x1''@;'; + put 'put ''MDNjZFx1MDM5MVx1MDM5Mlx1MDM5M1x1MDM5NFx1MDM5NVx1MDM5Nlx1MDM5N1x4YmRcdTAzOThcdTAzOTlceGFiXHhiYlx1MjU5MVx1MjU5Mlx1MjU5M1x1MjUwMlx1MjUyNFx1MDM5YVx1MDM5Ylx1MDM5Y1x1MDM5ZFx1MjU2M1x1MjU1MVx1MjU1N1x1MjU1ZFx1MDM5ZVx1MDM5Zlx1MjUx''@;'; + put 'put ''MFx1MjUxNFx1MjUzNFx1MjUyY1x1MjUxY1x1MjUwMFx1MjUzY1x1MDNhMFx1MDNhMVx1MjU1YVx1MjU1NFx1MjU2OVx1MjU2Nlx1MjU2MFx1MjU1MFx1MjU2Y1x1MDNhM1x1MDNhNFx1MDNhNVx1MDNhNlx1MDNhN1x1MDNhOFx1MDNhOVx1MDNiMVx1MDNiMlx1MDNiM1x1MjUxOFx1MjUwY1x1''@;'; + put 'put ''MjU4OFx1MjU4NFx1MDNiNFx1MDNiNVx1MjU4MFx1MDNiNlx1MDNiN1x1MDNiOFx1MDNiOVx1MDNiYVx1MDNiYlx1MDNiY1x1MDNiZFx1MDNiZVx1MDNiZlx1MDNjMFx1MDNjMVx1MDNjM1x1MDNjMlx1MDNjNFx1MDM4NFx4YWRceGIxXHUwM2M1XHUwM2M2XHUwM2M3XHhhN1x1MDNjOFx1MDM4''@;'; + put 'put ''NVx4YjBceGE4XHUwM2M5XHUwM2NiXHUwM2IwXHUwM2NlXHUyNWEwXHhhMCJ9LGlibTg2OToiY3A4NjkiLGNzaWJtODY5OiJjcDg2OSIsY3A5MjI6e3R5cGU6Il9zYmNzIixjaGFyczoiXHg4MFx4ODFceDgyXHg4M1x4ODRceDg1XHg4Nlx4ODdceDg4XHg4OVx4OGFceDhiXHg4Y1x4OGRceDhl''@;'; + put 'put ''XHg4Zlx4OTBceDkxXHg5Mlx4OTNceDk0XHg5NVx4OTZceDk3XHg5OFx4OTlceDlhXHg5Ylx4OWNceDlkXHg5ZVx4OWZceGEwXHhhMVx4YTJceGEzXHhhNFx4YTVceGE2XHhhN1x4YThceGE5XHhhYVx4YWJceGFjXHhhZFx4YWVcdTIwM2VceGIwXHhiMVx4YjJceGIzXHhiNFx4YjVceGI2XHhi''@;'; + put 'put ''N1x4YjhceGI5XHhiYVx4YmJceGJjXHhiZFx4YmVceGJmXHhjMFx4YzFceGMyXHhjM1x4YzRceGM1XHhjNlx4YzdceGM4XHhjOVx4Y2FceGNiXHhjY1x4Y2RceGNlXHhjZlx1MDE2MFx4ZDFceGQyXHhkM1x4ZDRceGQ1XHhkNlx4ZDdceGQ4XHhkOVx4ZGFceGRiXHhkY1x4ZGRcdTAxN2RceGRm''@;'; + put 'put ''XHhlMFx4ZTFceGUyXHhlM1x4ZTRceGU1XHhlNlx4ZTdceGU4XHhlOVx4ZWFceGViXHhlY1x4ZWRceGVlXHhlZlx1MDE2MVx4ZjFceGYyXHhmM1x4ZjRceGY1XHhmNlx4ZjdceGY4XHhmOVx4ZmFceGZiXHhmY1x4ZmRcdTAxN2VceGZmIn0saWJtOTIyOiJjcDkyMiIsY3NpYm05MjI6ImNwOTIy''@;'; + put 'put ''IixjcDEwNDY6e3R5cGU6Il9zYmNzIixjaGFyczoiXHVmZTg4XHhkN1x4ZjdcdWY4ZjZcdWY4ZjVcdWY4ZjRcdWY4ZjdcdWZlNzFceDg4XHUyNWEwXHUyNTAyXHUyNTAwXHUyNTEwXHUyNTBjXHUyNTE0XHUyNTE4XHVmZTc5XHVmZTdiXHVmZTdkXHVmZTdmXHVmZTc3XHVmZThhXHVmZWYwXHVm''@;'; + put 'put ''ZWYzXHVmZWYyXHVmZWNlXHVmZWNmXHVmZWQwXHVmZWY2XHVmZWY4XHVmZWZhXHVmZWZjXHhhMFx1ZjhmYVx1ZjhmOVx1ZjhmOFx4YTRcdWY4ZmJcdWZlOGJcdWZlOTFcdWZlOTdcdWZlOWJcdWZlOWZcdWZlYTNcdTA2MGNceGFkXHVmZWE3XHVmZWIzXHUwNjYwXHUwNjYxXHUwNjYyXHUwNjYz''@;'; + put 'put ''XHUwNjY0XHUwNjY1XHUwNjY2XHUwNjY3XHUwNjY4XHUwNjY5XHVmZWI3XHUwNjFiXHVmZWJiXHVmZWJmXHVmZWNhXHUwNjFmXHVmZWNiXHUwNjIxXHUwNjIyXHUwNjIzXHUwNjI0XHUwNjI1XHUwNjI2XHUwNjI3XHUwNjI4XHUwNjI5XHUwNjJhXHUwNjJiXHUwNjJjXHUwNjJkXHUwNjJlXHUw''@;'; + put 'put ''NjJmXHUwNjMwXHUwNjMxXHUwNjMyXHUwNjMzXHUwNjM0XHUwNjM1XHUwNjM2XHUwNjM3XHVmZWM3XHUwNjM5XHUwNjNhXHVmZWNjXHVmZTgyXHVmZTg0XHVmZThlXHVmZWQzXHUwNjQwXHUwNjQxXHUwNjQyXHUwNjQzXHUwNjQ0XHUwNjQ1XHUwNjQ2XHUwNjQ3XHUwNjQ4XHUwNjQ5XHUwNjRh''@;'; + put 'put ''XHUwNjRiXHUwNjRjXHUwNjRkXHUwNjRlXHUwNjRmXHUwNjUwXHUwNjUxXHUwNjUyXHVmZWQ3XHVmZWRiXHVmZWRmXHVmOGZjXHVmZWY1XHVmZWY3XHVmZWY5XHVmZWZiXHVmZWUzXHVmZWU3XHVmZWVjXHVmZWU5XHVmZmZkIn0saWJtMTA0NjoiY3AxMDQ2Iixjc2libTEwNDY6ImNwMTA0NiIs''@;'; + put 'put ''Y3AxMTI0Ont0eXBlOiJfc2JjcyIsY2hhcnM6Ilx4ODBceDgxXHg4Mlx4ODNceDg0XHg4NVx4ODZceDg3XHg4OFx4ODlceDhhXHg4Ylx4OGNceDhkXHg4ZVx4OGZceDkwXHg5MVx4OTJceDkzXHg5NFx4OTVceDk2XHg5N1x4OThceDk5XHg5YVx4OWJceDljXHg5ZFx4OWVceDlmXHhhMFx1MDQw''@;'; + put 'put ''MVx1MDQwMlx1MDQ5MFx1MDQwNFx1MDQwNVx1MDQwNlx1MDQwN1x1MDQwOFx1MDQwOVx1MDQwYVx1MDQwYlx1MDQwY1x4YWRcdTA0MGVcdTA0MGZcdTA0MTBcdTA0MTFcdTA0MTJcdTA0MTNcdTA0MTRcdTA0MTVcdTA0MTZcdTA0MTdcdTA0MThcdTA0MTlcdTA0MWFcdTA0MWJcdTA0MWNcdTA0''@;'; + put 'put ''MWRcdTA0MWVcdTA0MWZcdTA0MjBcdTA0MjFcdTA0MjJcdTA0MjNcdTA0MjRcdTA0MjVcdTA0MjZcdTA0MjdcdTA0MjhcdTA0MjlcdTA0MmFcdTA0MmJcdTA0MmNcdTA0MmRcdTA0MmVcdTA0MmZcdTA0MzBcdTA0MzFcdTA0MzJcdTA0MzNcdTA0MzRcdTA0MzVcdTA0MzZcdTA0MzdcdTA0Mzhc''@;'; + put 'put ''dTA0MzlcdTA0M2FcdTA0M2JcdTA0M2NcdTA0M2RcdTA0M2VcdTA0M2ZcdTA0NDBcdTA0NDFcdTA0NDJcdTA0NDNcdTA0NDRcdTA0NDVcdTA0NDZcdTA0NDdcdTA0NDhcdTA0NDlcdTA0NGFcdTA0NGJcdTA0NGNcdTA0NGRcdTA0NGVcdTA0NGZcdTIxMTZcdTA0NTFcdTA0NTJcdTA0OTFcdTA0''@;'; + put 'put ''NTRcdTA0NTVcdTA0NTZcdTA0NTdcdTA0NThcdTA0NTlcdTA0NWFcdTA0NWJcdTA0NWNceGE3XHUwNDVlXHUwNDVmIn0saWJtMTEyNDoiY3AxMTI0Iixjc2libTExMjQ6ImNwMTEyNCIsY3AxMTI1Ont0eXBlOiJfc2JjcyIsY2hhcnM6Ilx1MDQxMFx1MDQxMVx1MDQxMlx1MDQxM1x1MDQxNFx1''@;'; + put 'put ''MDQxNVx1MDQxNlx1MDQxN1x1MDQxOFx1MDQxOVx1MDQxYVx1MDQxYlx1MDQxY1x1MDQxZFx1MDQxZVx1MDQxZlx1MDQyMFx1MDQyMVx1MDQyMlx1MDQyM1x1MDQyNFx1MDQyNVx1MDQyNlx1MDQyN1x1MDQyOFx1MDQyOVx1MDQyYVx1MDQyYlx1MDQyY1x1MDQyZFx1MDQyZVx1MDQyZlx1MDQz''@;'; + put 'put ''MFx1MDQzMVx1MDQzMlx1MDQzM1x1MDQzNFx1MDQzNVx1MDQzNlx1MDQzN1x1MDQzOFx1MDQzOVx1MDQzYVx1MDQzYlx1MDQzY1x1MDQzZFx1MDQzZVx1MDQzZlx1MjU5MVx1MjU5Mlx1MjU5M1x1MjUwMlx1MjUyNFx1MjU2MVx1MjU2Mlx1MjU1Nlx1MjU1NVx1MjU2M1x1MjU1MVx1MjU1N1x1''@;'; + put 'put ''MjU1ZFx1MjU1Y1x1MjU1Ylx1MjUxMFx1MjUxNFx1MjUzNFx1MjUyY1x1MjUxY1x1MjUwMFx1MjUzY1x1MjU1ZVx1MjU1Zlx1MjU1YVx1MjU1NFx1MjU2OVx1MjU2Nlx1MjU2MFx1MjU1MFx1MjU2Y1x1MjU2N1x1MjU2OFx1MjU2NFx1MjU2NVx1MjU1OVx1MjU1OFx1MjU1Mlx1MjU1M1x1MjU2''@;'; + put 'put ''Ylx1MjU2YVx1MjUxOFx1MjUwY1x1MjU4OFx1MjU4NFx1MjU4Y1x1MjU5MFx1MjU4MFx1MDQ0MFx1MDQ0MVx1MDQ0Mlx1MDQ0M1x1MDQ0NFx1MDQ0NVx1MDQ0Nlx1MDQ0N1x1MDQ0OFx1MDQ0OVx1MDQ0YVx1MDQ0Ylx1MDQ0Y1x1MDQ0ZFx1MDQ0ZVx1MDQ0Zlx1MDQwMVx1MDQ1MVx1MDQ5MFx1''@;'; + put 'put ''MDQ5MVx1MDQwNFx1MDQ1NFx1MDQwNlx1MDQ1Nlx1MDQwN1x1MDQ1N1x4YjdcdTIyMWFcdTIxMTZceGE0XHUyNWEwXHhhMCJ9LGlibTExMjU6ImNwMTEyNSIsY3NpYm0xMTI1OiJjcDExMjUiLGNwMTEyOTp7dHlwZToiX3NiY3MiLGNoYXJzOiJceDgwXHg4MVx4ODJceDgzXHg4NFx4ODVceDg2''@;'; + put 'put ''XHg4N1x4ODhceDg5XHg4YVx4OGJceDhjXHg4ZFx4OGVceDhmXHg5MFx4OTFceDkyXHg5M1x4OTRceDk1XHg5Nlx4OTdceDk4XHg5OVx4OWFceDliXHg5Y1x4OWRceDllXHg5Zlx4YTBceGExXHhhMlx4YTNceGE0XHhhNVx4YTZceGE3XHUwMTUzXHhhOVx4YWFceGFiXHhhY1x4YWRceGFlXHhh''@;'; + put 'put ''Zlx4YjBceGIxXHhiMlx4YjNcdTAxNzhceGI1XHhiNlx4YjdcdTAxNTJceGI5XHhiYVx4YmJceGJjXHhiZFx4YmVceGJmXHhjMFx4YzFceGMyXHUwMTAyXHhjNFx4YzVceGM2XHhjN1x4YzhceGM5XHhjYVx4Y2JcdTAzMDBceGNkXHhjZVx4Y2ZcdTAxMTBceGQxXHUwMzA5XHhkM1x4ZDRcdTAx''@;'; + put 'put ''YTBceGQ2XHhkN1x4ZDhceGQ5XHhkYVx4ZGJceGRjXHUwMWFmXHUwMzAzXHhkZlx4ZTBceGUxXHhlMlx1MDEwM1x4ZTRceGU1XHhlNlx4ZTdceGU4XHhlOVx4ZWFceGViXHUwMzAxXHhlZFx4ZWVceGVmXHUwMTExXHhmMVx1MDMyM1x4ZjNceGY0XHUwMWExXHhmNlx4ZjdceGY4XHhmOVx4ZmFc''@;'; + put 'put ''eGZiXHhmY1x1MDFiMFx1MjBhYlx4ZmYifSxpYm0xMTI5OiJjcDExMjkiLGNzaWJtMTEyOToiY3AxMTI5IixjcDExMzM6e3R5cGU6Il9zYmNzIixjaGFyczoiXHg4MFx4ODFceDgyXHg4M1x4ODRceDg1XHg4Nlx4ODdceDg4XHg4OVx4OGFceDhiXHg4Y1x4OGRceDhlXHg4Zlx4OTBceDkxXHg5''@;'; + put 'put ''Mlx4OTNceDk0XHg5NVx4OTZceDk3XHg5OFx4OTlceDlhXHg5Ylx4OWNceDlkXHg5ZVx4OWZceGEwXHUwZTgxXHUwZTgyXHUwZTg0XHUwZTg3XHUwZTg4XHUwZWFhXHUwZThhXHUwZThkXHUwZTk0XHUwZTk1XHUwZTk2XHUwZTk3XHUwZTk5XHUwZTlhXHUwZTliXHUwZTljXHUwZTlkXHUwZTll''@;'; + put 'put ''XHUwZTlmXHUwZWExXHUwZWEyXHUwZWEzXHUwZWE1XHUwZWE3XHUwZWFiXHUwZWFkXHUwZWFlXHVmZmZkXHVmZmZkXHVmZmZkXHUwZWFmXHUwZWIwXHUwZWIyXHUwZWIzXHUwZWI0XHUwZWI1XHUwZWI2XHUwZWI3XHUwZWI4XHUwZWI5XHUwZWJjXHUwZWIxXHUwZWJiXHUwZWJkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHUwZWMwXHUwZWMxXHUwZWMyXHUwZWMzXHUwZWM0XHUwZWM4XHUwZWM5XHUwZWNhXHUwZWNiXHUwZWNjXHUwZWNkXHUwZWM2XHVmZmZkXHUwZWRjXHUwZWRkXHUyMGFkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUwZWQwXHUwZWQxXHUwZWQyXHUwZWQzXHUwZWQ0XHUwZWQ1XHUwZWQ2XHUwZWQ3XHUwZWQ4XHUwZWQ5XHVmZmZkXHVmZmZkXHhhMlx4YWNceGE2XHVmZmZkIn0saWJtMTEzMzoiY3AxMTMzIixjc2libTExMzM6ImNwMTEzMyIs''@;'; + put 'put ''Y3AxMTYxOnt0eXBlOiJfc2JjcyIsY2hhcnM6Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MGU0OFx1MGUwMVx1MGUwMlx1MGUwM1x1MGUwNFx1MGUwNVx1MGUwNlx1MGUwN1x1MGUwOFx1MGUwOVx1MGUwYVx1MGUwYlx1MGUwY1x1MGUwZFx1MGUwZVx1MGUwZlx1MGUxMFx1MGUxMVx1''@;'; + put 'put ''MGUxMlx1MGUxM1x1MGUxNFx1MGUxNVx1MGUxNlx1MGUxN1x1MGUxOFx1MGUxOVx1MGUxYVx1MGUxYlx1MGUxY1x1MGUxZFx1MGUxZVx1MGUxZlx1MGUyMFx1MGUyMVx1MGUyMlx1MGUyM1x1MGUyNFx1MGUyNVx1MGUyNlx1MGUyN1x1MGUyOFx1MGUyOVx1MGUyYVx1MGUyYlx1MGUyY1x1MGUy''@;'; + put 'put ''ZFx1MGUyZVx1MGUyZlx1MGUzMFx1MGUzMVx1MGUzMlx1MGUzM1x1MGUzNFx1MGUzNVx1MGUzNlx1MGUzN1x1MGUzOFx1MGUzOVx1MGUzYVx1MGU0OVx1MGU0YVx1MGU0Ylx1MjBhY1x1MGUzZlx1MGU0MFx1MGU0MVx1MGU0Mlx1MGU0M1x1MGU0NFx1MGU0NVx1MGU0Nlx1MGU0N1x1MGU0OFx1''@;'; + put 'put ''MGU0OVx1MGU0YVx1MGU0Ylx1MGU0Y1x1MGU0ZFx1MGU0ZVx1MGU0Zlx1MGU1MFx1MGU1MVx1MGU1Mlx1MGU1M1x1MGU1NFx1MGU1NVx1MGU1Nlx1MGU1N1x1MGU1OFx1MGU1OVx1MGU1YVx1MGU1Ylx4YTJceGFjXHhhNlx4YTAifSxpYm0xMTYxOiJjcDExNjEiLGNzaWJtMTE2MToiY3AxMTYx''@;'; + put 'put ''IixjcDExNjI6e3R5cGU6Il9zYmNzIixjaGFyczoiXHUyMGFjXHg4MVx4ODJceDgzXHg4NFx1MjAyNlx4ODZceDg3XHg4OFx4ODlceDhhXHg4Ylx4OGNceDhkXHg4ZVx4OGZceDkwXHUyMDE4XHUyMDE5XHUyMDFjXHUyMDFkXHUyMDIyXHUyMDEzXHUyMDE0XHg5OFx4OTlceDlhXHg5Ylx4OWNc''@;'; + put 'put ''eDlkXHg5ZVx4OWZceGEwXHUwZTAxXHUwZTAyXHUwZTAzXHUwZTA0XHUwZTA1XHUwZTA2XHUwZTA3XHUwZTA4XHUwZTA5XHUwZTBhXHUwZTBiXHUwZTBjXHUwZTBkXHUwZTBlXHUwZTBmXHUwZTEwXHUwZTExXHUwZTEyXHUwZTEzXHUwZTE0XHUwZTE1XHUwZTE2XHUwZTE3XHUwZTE4XHUwZTE5''@;'; + put 'put ''XHUwZTFhXHUwZTFiXHUwZTFjXHUwZTFkXHUwZTFlXHUwZTFmXHUwZTIwXHUwZTIxXHUwZTIyXHUwZTIzXHUwZTI0XHUwZTI1XHUwZTI2XHUwZTI3XHUwZTI4XHUwZTI5XHUwZTJhXHUwZTJiXHUwZTJjXHUwZTJkXHUwZTJlXHUwZTJmXHUwZTMwXHUwZTMxXHUwZTMyXHUwZTMzXHUwZTM0XHUw''@;'; + put 'put ''ZTM1XHUwZTM2XHUwZTM3XHUwZTM4XHUwZTM5XHUwZTNhXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUwZTNmXHUwZTQwXHUwZTQxXHUwZTQyXHUwZTQzXHUwZTQ0XHUwZTQ1XHUwZTQ2XHUwZTQ3XHUwZTQ4XHUwZTQ5XHUwZTRhXHUwZTRiXHUwZTRjXHUwZTRkXHUwZTRlXHUwZTRmXHUwZTUw''@;'; + put 'put ''XHUwZTUxXHUwZTUyXHUwZTUzXHUwZTU0XHUwZTU1XHUwZTU2XHUwZTU3XHUwZTU4XHUwZTU5XHUwZTVhXHUwZTViXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkIn0saWJtMTE2MjoiY3AxMTYyIixjc2libTExNjI6ImNwMTE2MiIsY3AxMTYzOnt0eXBlOiJfc2JjcyIsY2hhcnM6Ilx4ODBceDgx''@;'; + put 'put ''XHg4Mlx4ODNceDg0XHg4NVx4ODZceDg3XHg4OFx4ODlceDhhXHg4Ylx4OGNceDhkXHg4ZVx4OGZceDkwXHg5MVx4OTJceDkzXHg5NFx4OTVceDk2XHg5N1x4OThceDk5XHg5YVx4OWJceDljXHg5ZFx4OWVceDlmXHhhMFx4YTFceGEyXHhhM1x1MjBhY1x4YTVceGE2XHhhN1x1MDE1M1x4YTlc''@;'; + put 'put ''eGFhXHhhYlx4YWNceGFkXHhhZVx4YWZceGIwXHhiMVx4YjJceGIzXHUwMTc4XHhiNVx4YjZceGI3XHUwMTUyXHhiOVx4YmFceGJiXHhiY1x4YmRceGJlXHhiZlx4YzBceGMxXHhjMlx1MDEwMlx4YzRceGM1XHhjNlx4YzdceGM4XHhjOVx4Y2FceGNiXHUwMzAwXHhjZFx4Y2VceGNmXHUwMTEw''@;'; + put 'put ''XHhkMVx1MDMwOVx4ZDNceGQ0XHUwMWEwXHhkNlx4ZDdceGQ4XHhkOVx4ZGFceGRiXHhkY1x1MDFhZlx1MDMwM1x4ZGZceGUwXHhlMVx4ZTJcdTAxMDNceGU0XHhlNVx4ZTZceGU3XHhlOFx4ZTlceGVhXHhlYlx1MDMwMVx4ZWRceGVlXHhlZlx1MDExMVx4ZjFcdTAzMjNceGYzXHhmNFx1MDFh''@;'; + put 'put ''MVx4ZjZceGY3XHhmOFx4ZjlceGZhXHhmYlx4ZmNcdTAxYjBcdTIwYWJceGZmIn0saWJtMTE2MzoiY3AxMTYzIixjc2libTExNjM6ImNwMTE2MyIsbWFjY3JvYXRpYW46e3R5cGU6Il9zYmNzIixjaGFyczoiXHhjNFx4YzVceGM3XHhjOVx4ZDFceGQ2XHhkY1x4ZTFceGUwXHhlMlx4ZTRceGUz''@;'; + put 'put ''XHhlNVx4ZTdceGU5XHhlOFx4ZWFceGViXHhlZFx4ZWNceGVlXHhlZlx4ZjFceGYzXHhmMlx4ZjRceGY2XHhmNVx4ZmFceGY5XHhmYlx4ZmNcdTIwMjBceGIwXHhhMlx4YTNceGE3XHUyMDIyXHhiNlx4ZGZceGFlXHUwMTYwXHUyMTIyXHhiNFx4YThcdTIyNjBcdTAxN2RceGQ4XHUyMjFlXHhi''@;'; + put 'put ''MVx1MjI2NFx1MjI2NVx1MjIwNlx4YjVcdTIyMDJcdTIyMTFcdTIyMGZcdTAxNjFcdTIyMmJceGFhXHhiYVx1MjEyNlx1MDE3ZVx4ZjhceGJmXHhhMVx4YWNcdTIyMWFcdTAxOTJcdTIyNDhcdTAxMDZceGFiXHUwMTBjXHUyMDI2XHhhMFx4YzBceGMzXHhkNVx1MDE1Mlx1MDE1M1x1MDExMFx1''@;'; + put 'put ''MjAxNFx1MjAxY1x1MjAxZFx1MjAxOFx1MjAxOVx4ZjdcdTI1Y2FcdWZmZmRceGE5XHUyMDQ0XHhhNFx1MjAzOVx1MjAzYVx4YzZceGJiXHUyMDEzXHhiN1x1MjAxYVx1MjAxZVx1MjAzMFx4YzJcdTAxMDdceGMxXHUwMTBkXHhjOFx4Y2RceGNlXHhjZlx4Y2NceGQzXHhkNFx1MDExMVx4ZDJc''@;'; + put 'put ''eGRhXHhkYlx4ZDlcdTAxMzFcdTAyYzZcdTAyZGNceGFmXHUwM2MwXHhjYlx1MDJkYVx4YjhceGNhXHhlNlx1MDJjNyJ9LG1hY2N5cmlsbGljOnt0eXBlOiJfc2JjcyIsY2hhcnM6Ilx1MDQxMFx1MDQxMVx1MDQxMlx1MDQxM1x1MDQxNFx1MDQxNVx1MDQxNlx1MDQxN1x1MDQxOFx1MDQxOVx1''@;'; + put 'put ''MDQxYVx1MDQxYlx1MDQxY1x1MDQxZFx1MDQxZVx1MDQxZlx1MDQyMFx1MDQyMVx1MDQyMlx1MDQyM1x1MDQyNFx1MDQyNVx1MDQyNlx1MDQyN1x1MDQyOFx1MDQyOVx1MDQyYVx1MDQyYlx1MDQyY1x1MDQyZFx1MDQyZVx1MDQyZlx1MjAyMFx4YjBceGEyXHhhM1x4YTdcdTIwMjJceGI2XHUw''@;'; + put 'put ''NDA2XHhhZVx4YTlcdTIxMjJcdTA0MDJcdTA0NTJcdTIyNjBcdTA0MDNcdTA0NTNcdTIyMWVceGIxXHUyMjY0XHUyMjY1XHUwNDU2XHhiNVx1MjIwMlx1MDQwOFx1MDQwNFx1MDQ1NFx1MDQwN1x1MDQ1N1x1MDQwOVx1MDQ1OVx1MDQwYVx1MDQ1YVx1MDQ1OFx1MDQwNVx4YWNcdTIyMWFcdTAx''@;'; + put 'put ''OTJcdTIyNDhcdTIyMDZceGFiXHhiYlx1MjAyNlx4YTBcdTA0MGJcdTA0NWJcdTA0MGNcdTA0NWNcdTA0NTVcdTIwMTNcdTIwMTRcdTIwMWNcdTIwMWRcdTIwMThcdTIwMTlceGY3XHUyMDFlXHUwNDBlXHUwNDVlXHUwNDBmXHUwNDVmXHUyMTE2XHUwNDAxXHUwNDUxXHUwNDRmXHUwNDMwXHUw''@;'; + put 'put ''NDMxXHUwNDMyXHUwNDMzXHUwNDM0XHUwNDM1XHUwNDM2XHUwNDM3XHUwNDM4XHUwNDM5XHUwNDNhXHUwNDNiXHUwNDNjXHUwNDNkXHUwNDNlXHUwNDNmXHUwNDQwXHUwNDQxXHUwNDQyXHUwNDQzXHUwNDQ0XHUwNDQ1XHUwNDQ2XHUwNDQ3XHUwNDQ4XHUwNDQ5XHUwNDRhXHUwNDRiXHUwNDRj''@;'; + put 'put ''XHUwNDRkXHUwNDRlXHhhNCJ9LG1hY2dyZWVrOnt0eXBlOiJfc2JjcyIsY2hhcnM6Ilx4YzRceGI5XHhiMlx4YzlceGIzXHhkNlx4ZGNcdTAzODVceGUwXHhlMlx4ZTRcdTAzODRceGE4XHhlN1x4ZTlceGU4XHhlYVx4ZWJceGEzXHUyMTIyXHhlZVx4ZWZcdTIwMjJceGJkXHUyMDMwXHhmNFx4''@;'; + put 'put ''ZjZceGE2XHhhZFx4ZjlceGZiXHhmY1x1MjAyMFx1MDM5M1x1MDM5NFx1MDM5OFx1MDM5Ylx1MDM5ZVx1MDNhMFx4ZGZceGFlXHhhOVx1MDNhM1x1MDNhYVx4YTdcdTIyNjBceGIwXHUwMzg3XHUwMzkxXHhiMVx1MjI2NFx1MjI2NVx4YTVcdTAzOTJcdTAzOTVcdTAzOTZcdTAzOTdcdTAzOTlc''@;'; + put 'put ''dTAzOWFcdTAzOWNcdTAzYTZcdTAzYWJcdTAzYThcdTAzYTlcdTAzYWNcdTAzOWRceGFjXHUwMzlmXHUwM2ExXHUyMjQ4XHUwM2E0XHhhYlx4YmJcdTIwMjZceGEwXHUwM2E1XHUwM2E3XHUwMzg2XHUwMzg4XHUwMTUzXHUyMDEzXHUyMDE1XHUyMDFjXHUyMDFkXHUyMDE4XHUyMDE5XHhmN1x1''@;'; + put 'put ''MDM4OVx1MDM4YVx1MDM4Y1x1MDM4ZVx1MDNhZFx1MDNhZVx1MDNhZlx1MDNjY1x1MDM4Zlx1MDNjZFx1MDNiMVx1MDNiMlx1MDNjOFx1MDNiNFx1MDNiNVx1MDNjNlx1MDNiM1x1MDNiN1x1MDNiOVx1MDNiZVx1MDNiYVx1MDNiYlx1MDNiY1x1MDNiZFx1MDNiZlx1MDNjMFx1MDNjZVx1MDNj''@;'; + put 'put ''MVx1MDNjM1x1MDNjNFx1MDNiOFx1MDNjOVx1MDNjMlx1MDNjN1x1MDNjNVx1MDNiNlx1MDNjYVx1MDNjYlx1MDM5MFx1MDNiMFx1ZmZmZCJ9LG1hY2ljZWxhbmQ6e3R5cGU6Il9zYmNzIixjaGFyczoiXHhjNFx4YzVceGM3XHhjOVx4ZDFceGQ2XHhkY1x4ZTFceGUwXHhlMlx4ZTRceGUzXHhl''@;'; + put 'put ''NVx4ZTdceGU5XHhlOFx4ZWFceGViXHhlZFx4ZWNceGVlXHhlZlx4ZjFceGYzXHhmMlx4ZjRceGY2XHhmNVx4ZmFceGY5XHhmYlx4ZmNceGRkXHhiMFx4YTJceGEzXHhhN1x1MjAyMlx4YjZceGRmXHhhZVx4YTlcdTIxMjJceGI0XHhhOFx1MjI2MFx4YzZceGQ4XHUyMjFlXHhiMVx1MjI2NFx1''@;'; + put 'put ''MjI2NVx4YTVceGI1XHUyMjAyXHUyMjExXHUyMjBmXHUwM2MwXHUyMjJiXHhhYVx4YmFcdTIxMjZceGU2XHhmOFx4YmZceGExXHhhY1x1MjIxYVx1MDE5Mlx1MjI0OFx1MjIwNlx4YWJceGJiXHUyMDI2XHhhMFx4YzBceGMzXHhkNVx1MDE1Mlx1MDE1M1x1MjAxM1x1MjAxNFx1MjAxY1x1MjAx''@;'; + put 'put ''ZFx1MjAxOFx1MjAxOVx4ZjdcdTI1Y2FceGZmXHUwMTc4XHUyMDQ0XHhhNFx4ZDBceGYwXHhkZVx4ZmVceGZkXHhiN1x1MjAxYVx1MjAxZVx1MjAzMFx4YzJceGNhXHhjMVx4Y2JceGM4XHhjZFx4Y2VceGNmXHhjY1x4ZDNceGQ0XHVmZmZkXHhkMlx4ZGFceGRiXHhkOVx1MDEzMVx1MDJjNlx1''@;'; + put 'put ''MDJkY1x4YWZcdTAyZDhcdTAyZDlcdTAyZGFceGI4XHUwMmRkXHUwMmRiXHUwMmM3In0sbWFjcm9tYW46e3R5cGU6Il9zYmNzIixjaGFyczoiXHhjNFx4YzVceGM3XHhjOVx4ZDFceGQ2XHhkY1x4ZTFceGUwXHhlMlx4ZTRceGUzXHhlNVx4ZTdceGU5XHhlOFx4ZWFceGViXHhlZFx4ZWNceGVl''@;'; + put 'put ''XHhlZlx4ZjFceGYzXHhmMlx4ZjRceGY2XHhmNVx4ZmFceGY5XHhmYlx4ZmNcdTIwMjBceGIwXHhhMlx4YTNceGE3XHUyMDIyXHhiNlx4ZGZceGFlXHhhOVx1MjEyMlx4YjRceGE4XHUyMjYwXHhjNlx4ZDhcdTIyMWVceGIxXHUyMjY0XHUyMjY1XHhhNVx4YjVcdTIyMDJcdTIyMTFcdTIyMGZc''@;'; + put 'put ''dTAzYzBcdTIyMmJceGFhXHhiYVx1MjEyNlx4ZTZceGY4XHhiZlx4YTFceGFjXHUyMjFhXHUwMTkyXHUyMjQ4XHUyMjA2XHhhYlx4YmJcdTIwMjZceGEwXHhjMFx4YzNceGQ1XHUwMTUyXHUwMTUzXHUyMDEzXHUyMDE0XHUyMDFjXHUyMDFkXHUyMDE4XHUyMDE5XHhmN1x1MjVjYVx4ZmZcdTAx''@;'; + put 'put ''NzhcdTIwNDRceGE0XHUyMDM5XHUyMDNhXHVmYjAxXHVmYjAyXHUyMDIxXHhiN1x1MjAxYVx1MjAxZVx1MjAzMFx4YzJceGNhXHhjMVx4Y2JceGM4XHhjZFx4Y2VceGNmXHhjY1x4ZDNceGQ0XHVmZmZkXHhkMlx4ZGFceGRiXHhkOVx1MDEzMVx1MDJjNlx1MDJkY1x4YWZcdTAyZDhcdTAyZDlc''@;'; + put 'put ''dTAyZGFceGI4XHUwMmRkXHUwMmRiXHUwMmM3In0sbWFjcm9tYW5pYTp7dHlwZToiX3NiY3MiLGNoYXJzOiJceGM0XHhjNVx4YzdceGM5XHhkMVx4ZDZceGRjXHhlMVx4ZTBceGUyXHhlNFx4ZTNceGU1XHhlN1x4ZTlceGU4XHhlYVx4ZWJceGVkXHhlY1x4ZWVceGVmXHhmMVx4ZjNceGYyXHhm''@;'; + put 'put ''NFx4ZjZceGY1XHhmYVx4ZjlceGZiXHhmY1x1MjAyMFx4YjBceGEyXHhhM1x4YTdcdTIwMjJceGI2XHhkZlx4YWVceGE5XHUyMTIyXHhiNFx4YThcdTIyNjBcdTAxMDJcdTAxNWVcdTIyMWVceGIxXHUyMjY0XHUyMjY1XHhhNVx4YjVcdTIyMDJcdTIyMTFcdTIyMGZcdTAzYzBcdTIyMmJceGFh''@;'; + put 'put ''XHhiYVx1MjEyNlx1MDEwM1x1MDE1Zlx4YmZceGExXHhhY1x1MjIxYVx1MDE5Mlx1MjI0OFx1MjIwNlx4YWJceGJiXHUyMDI2XHhhMFx4YzBceGMzXHhkNVx1MDE1Mlx1MDE1M1x1MjAxM1x1MjAxNFx1MjAxY1x1MjAxZFx1MjAxOFx1MjAxOVx4ZjdcdTI1Y2FceGZmXHUwMTc4XHUyMDQ0XHhh''@;'; + put 'put ''NFx1MjAzOVx1MjAzYVx1MDE2Mlx1MDE2M1x1MjAyMVx4YjdcdTIwMWFcdTIwMWVcdTIwMzBceGMyXHhjYVx4YzFceGNiXHhjOFx4Y2RceGNlXHhjZlx4Y2NceGQzXHhkNFx1ZmZmZFx4ZDJceGRhXHhkYlx4ZDlcdTAxMzFcdTAyYzZcdTAyZGNceGFmXHUwMmQ4XHUwMmQ5XHUwMmRhXHhiOFx1''@;'; + put 'put ''MDJkZFx1MDJkYlx1MDJjNyJ9LG1hY3RoYWk6e3R5cGU6Il9zYmNzIixjaGFyczoiXHhhYlx4YmJcdTIwMjZcdWY4OGNcdWY4OGZcdWY4OTJcdWY4OTVcdWY4OThcdWY4OGJcdWY4OGVcdWY4OTFcdWY4OTRcdWY4OTdcdTIwMWNcdTIwMWRcdWY4OTlcdWZmZmRcdTIwMjJcdWY4ODRcdWY4ODlc''@;'; + put 'put ''dWY4ODVcdWY4ODZcdWY4ODdcdWY4ODhcdWY4OGFcdWY4OGRcdWY4OTBcdWY4OTNcdWY4OTZcdTIwMThcdTIwMTlcdWZmZmRceGEwXHUwZTAxXHUwZTAyXHUwZTAzXHUwZTA0XHUwZTA1XHUwZTA2XHUwZTA3XHUwZTA4XHUwZTA5XHUwZTBhXHUwZTBiXHUwZTBjXHUwZTBkXHUwZTBlXHUwZTBm''@;'; + put 'put ''XHUwZTEwXHUwZTExXHUwZTEyXHUwZTEzXHUwZTE0XHUwZTE1XHUwZTE2XHUwZTE3XHUwZTE4XHUwZTE5XHUwZTFhXHUwZTFiXHUwZTFjXHUwZTFkXHUwZTFlXHUwZTFmXHUwZTIwXHUwZTIxXHUwZTIyXHUwZTIzXHUwZTI0XHUwZTI1XHUwZTI2XHUwZTI3XHUwZTI4XHUwZTI5XHUwZTJhXHUw''@;'; + put 'put ''ZTJiXHUwZTJjXHUwZTJkXHUwZTJlXHUwZTJmXHUwZTMwXHUwZTMxXHUwZTMyXHUwZTMzXHUwZTM0XHUwZTM1XHUwZTM2XHUwZTM3XHUwZTM4XHUwZTM5XHUwZTNhXHVmZWZmXHUyMDBiXHUyMDEzXHUyMDE0XHUwZTNmXHUwZTQwXHUwZTQxXHUwZTQyXHUwZTQzXHUwZTQ0XHUwZTQ1XHUwZTQ2''@;'; + put 'put ''XHUwZTQ3XHUwZTQ4XHUwZTQ5XHUwZTRhXHUwZTRiXHUwZTRjXHUwZTRkXHUyMTIyXHUwZTRmXHUwZTUwXHUwZTUxXHUwZTUyXHUwZTUzXHUwZTU0XHUwZTU1XHUwZTU2XHUwZTU3XHUwZTU4XHUwZTU5XHhhZVx4YTlcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmQifSxtYWN0dXJraXNoOnt0eXBl''@;'; + put 'put ''OiJfc2JjcyIsY2hhcnM6Ilx4YzRceGM1XHhjN1x4YzlceGQxXHhkNlx4ZGNceGUxXHhlMFx4ZTJceGU0XHhlM1x4ZTVceGU3XHhlOVx4ZThceGVhXHhlYlx4ZWRceGVjXHhlZVx4ZWZceGYxXHhmM1x4ZjJceGY0XHhmNlx4ZjVceGZhXHhmOVx4ZmJceGZjXHUyMDIwXHhiMFx4YTJceGEzXHhh''@;'; + put 'put ''N1x1MjAyMlx4YjZceGRmXHhhZVx4YTlcdTIxMjJceGI0XHhhOFx1MjI2MFx4YzZceGQ4XHUyMjFlXHhiMVx1MjI2NFx1MjI2NVx4YTVceGI1XHUyMjAyXHUyMjExXHUyMjBmXHUwM2MwXHUyMjJiXHhhYVx4YmFcdTIxMjZceGU2XHhmOFx4YmZceGExXHhhY1x1MjIxYVx1MDE5Mlx1MjI0OFx1''@;'; + put 'put ''MjIwNlx4YWJceGJiXHUyMDI2XHhhMFx4YzBceGMzXHhkNVx1MDE1Mlx1MDE1M1x1MjAxM1x1MjAxNFx1MjAxY1x1MjAxZFx1MjAxOFx1MjAxOVx4ZjdcdTI1Y2FceGZmXHUwMTc4XHUwMTFlXHUwMTFmXHUwMTMwXHUwMTMxXHUwMTVlXHUwMTVmXHUyMDIxXHhiN1x1MjAxYVx1MjAxZVx1MjAz''@;'; + put 'put ''MFx4YzJceGNhXHhjMVx4Y2JceGM4XHhjZFx4Y2VceGNmXHhjY1x4ZDNceGQ0XHVmZmZkXHhkMlx4ZGFceGRiXHhkOVx1ZmZmZFx1MDJjNlx1MDJkY1x4YWZcdTAyZDhcdTAyZDlcdTAyZGFceGI4XHUwMmRkXHUwMmRiXHUwMmM3In0sbWFjdWtyYWluZTp7dHlwZToiX3NiY3MiLGNoYXJzOiJc''@;'; + put 'put ''dTA0MTBcdTA0MTFcdTA0MTJcdTA0MTNcdTA0MTRcdTA0MTVcdTA0MTZcdTA0MTdcdTA0MThcdTA0MTlcdTA0MWFcdTA0MWJcdTA0MWNcdTA0MWRcdTA0MWVcdTA0MWZcdTA0MjBcdTA0MjFcdTA0MjJcdTA0MjNcdTA0MjRcdTA0MjVcdTA0MjZcdTA0MjdcdTA0MjhcdTA0MjlcdTA0MmFcdTA0''@;'; + put 'put ''MmJcdTA0MmNcdTA0MmRcdTA0MmVcdTA0MmZcdTIwMjBceGIwXHUwNDkwXHhhM1x4YTdcdTIwMjJceGI2XHUwNDA2XHhhZVx4YTlcdTIxMjJcdTA0MDJcdTA0NTJcdTIyNjBcdTA0MDNcdTA0NTNcdTIyMWVceGIxXHUyMjY0XHUyMjY1XHUwNDU2XHhiNVx1MDQ5MVx1MDQwOFx1MDQwNFx1MDQ1''@;'; + put 'put ''NFx1MDQwN1x1MDQ1N1x1MDQwOVx1MDQ1OVx1MDQwYVx1MDQ1YVx1MDQ1OFx1MDQwNVx4YWNcdTIyMWFcdTAxOTJcdTIyNDhcdTIyMDZceGFiXHhiYlx1MjAyNlx4YTBcdTA0MGJcdTA0NWJcdTA0MGNcdTA0NWNcdTA0NTVcdTIwMTNcdTIwMTRcdTIwMWNcdTIwMWRcdTIwMThcdTIwMTlceGY3''@;'; + put 'put ''XHUyMDFlXHUwNDBlXHUwNDVlXHUwNDBmXHUwNDVmXHUyMTE2XHUwNDAxXHUwNDUxXHUwNDRmXHUwNDMwXHUwNDMxXHUwNDMyXHUwNDMzXHUwNDM0XHUwNDM1XHUwNDM2XHUwNDM3XHUwNDM4XHUwNDM5XHUwNDNhXHUwNDNiXHUwNDNjXHUwNDNkXHUwNDNlXHUwNDNmXHUwNDQwXHUwNDQxXHUw''@;'; + put 'put ''NDQyXHUwNDQzXHUwNDQ0XHUwNDQ1XHUwNDQ2XHUwNDQ3XHUwNDQ4XHUwNDQ5XHUwNDRhXHUwNDRiXHUwNDRjXHUwNDRkXHUwNDRlXHhhNCJ9LGtvaThyOnt0eXBlOiJfc2JjcyIsY2hhcnM6Ilx1MjUwMFx1MjUwMlx1MjUwY1x1MjUxMFx1MjUxNFx1MjUxOFx1MjUxY1x1MjUyNFx1MjUyY1x1''@;'; + put 'put ''MjUzNFx1MjUzY1x1MjU4MFx1MjU4NFx1MjU4OFx1MjU4Y1x1MjU5MFx1MjU5MVx1MjU5Mlx1MjU5M1x1MjMyMFx1MjVhMFx1MjIxOVx1MjIxYVx1MjI0OFx1MjI2NFx1MjI2NVx4YTBcdTIzMjFceGIwXHhiMlx4YjdceGY3XHUyNTUwXHUyNTUxXHUyNTUyXHUwNDUxXHUyNTUzXHUyNTU0XHUy''@;'; + put 'put ''NTU1XHUyNTU2XHUyNTU3XHUyNTU4XHUyNTU5XHUyNTVhXHUyNTViXHUyNTVjXHUyNTVkXHUyNTVlXHUyNTVmXHUyNTYwXHUyNTYxXHUwNDAxXHUyNTYyXHUyNTYzXHUyNTY0XHUyNTY1XHUyNTY2XHUyNTY3XHUyNTY4XHUyNTY5XHUyNTZhXHUyNTZiXHUyNTZjXHhhOVx1MDQ0ZVx1MDQzMFx1''@;'; + put 'put ''MDQzMVx1MDQ0Nlx1MDQzNFx1MDQzNVx1MDQ0NFx1MDQzM1x1MDQ0NVx1MDQzOFx1MDQzOVx1MDQzYVx1MDQzYlx1MDQzY1x1MDQzZFx1MDQzZVx1MDQzZlx1MDQ0Zlx1MDQ0MFx1MDQ0MVx1MDQ0Mlx1MDQ0M1x1MDQzNlx1MDQzMlx1MDQ0Y1x1MDQ0Ylx1MDQzN1x1MDQ0OFx1MDQ0ZFx1MDQ0''@;'; + put 'put ''OVx1MDQ0N1x1MDQ0YVx1MDQyZVx1MDQxMFx1MDQxMVx1MDQyNlx1MDQxNFx1MDQxNVx1MDQyNFx1MDQxM1x1MDQyNVx1MDQxOFx1MDQxOVx1MDQxYVx1MDQxYlx1MDQxY1x1MDQxZFx1MDQxZVx1MDQxZlx1MDQyZlx1MDQyMFx1MDQyMVx1MDQyMlx1MDQyM1x1MDQxNlx1MDQxMlx1MDQyY1x1''@;'; + put 'put ''MDQyYlx1MDQxN1x1MDQyOFx1MDQyZFx1MDQyOVx1MDQyN1x1MDQyYSJ9LGtvaTh1Ont0eXBlOiJfc2JjcyIsY2hhcnM6Ilx1MjUwMFx1MjUwMlx1MjUwY1x1MjUxMFx1MjUxNFx1MjUxOFx1MjUxY1x1MjUyNFx1MjUyY1x1MjUzNFx1MjUzY1x1MjU4MFx1MjU4NFx1MjU4OFx1MjU4Y1x1MjU5''@;'; + put 'put ''MFx1MjU5MVx1MjU5Mlx1MjU5M1x1MjMyMFx1MjVhMFx1MjIxOVx1MjIxYVx1MjI0OFx1MjI2NFx1MjI2NVx4YTBcdTIzMjFceGIwXHhiMlx4YjdceGY3XHUyNTUwXHUyNTUxXHUyNTUyXHUwNDUxXHUwNDU0XHUyNTU0XHUwNDU2XHUwNDU3XHUyNTU3XHUyNTU4XHUyNTU5XHUyNTVhXHUyNTVi''@;'; + put 'put ''XHUwNDkxXHUyNTVkXHUyNTVlXHUyNTVmXHUyNTYwXHUyNTYxXHUwNDAxXHUwNDA0XHUyNTYzXHUwNDA2XHUwNDA3XHUyNTY2XHUyNTY3XHUyNTY4XHUyNTY5XHUyNTZhXHUwNDkwXHUyNTZjXHhhOVx1MDQ0ZVx1MDQzMFx1MDQzMVx1MDQ0Nlx1MDQzNFx1MDQzNVx1MDQ0NFx1MDQzM1x1MDQ0''@;'; + put 'put ''NVx1MDQzOFx1MDQzOVx1MDQzYVx1MDQzYlx1MDQzY1x1MDQzZFx1MDQzZVx1MDQzZlx1MDQ0Zlx1MDQ0MFx1MDQ0MVx1MDQ0Mlx1MDQ0M1x1MDQzNlx1MDQzMlx1MDQ0Y1x1MDQ0Ylx1MDQzN1x1MDQ0OFx1MDQ0ZFx1MDQ0OVx1MDQ0N1x1MDQ0YVx1MDQyZVx1MDQxMFx1MDQxMVx1MDQyNlx1''@;'; + put 'put ''MDQxNFx1MDQxNVx1MDQyNFx1MDQxM1x1MDQyNVx1MDQxOFx1MDQxOVx1MDQxYVx1MDQxYlx1MDQxY1x1MDQxZFx1MDQxZVx1MDQxZlx1MDQyZlx1MDQyMFx1MDQyMVx1MDQyMlx1MDQyM1x1MDQxNlx1MDQxMlx1MDQyY1x1MDQyYlx1MDQxN1x1MDQyOFx1MDQyZFx1MDQyOVx1MDQyN1x1MDQy''@;'; + put 'put ''YSJ9LGtvaThydTp7dHlwZToiX3NiY3MiLGNoYXJzOiJcdTI1MDBcdTI1MDJcdTI1MGNcdTI1MTBcdTI1MTRcdTI1MThcdTI1MWNcdTI1MjRcdTI1MmNcdTI1MzRcdTI1M2NcdTI1ODBcdTI1ODRcdTI1ODhcdTI1OGNcdTI1OTBcdTI1OTFcdTI1OTJcdTI1OTNcdTIzMjBcdTI1YTBcdTIyMTlc''@;'; + put 'put ''dTIyMWFcdTIyNDhcdTIyNjRcdTIyNjVceGEwXHUyMzIxXHhiMFx4YjJceGI3XHhmN1x1MjU1MFx1MjU1MVx1MjU1Mlx1MDQ1MVx1MDQ1NFx1MjU1NFx1MDQ1Nlx1MDQ1N1x1MjU1N1x1MjU1OFx1MjU1OVx1MjU1YVx1MjU1Ylx1MDQ5MVx1MDQ1ZVx1MjU1ZVx1MjU1Zlx1MjU2MFx1MjU2MVx1''@;'; + put 'put ''MDQwMVx1MDQwNFx1MjU2M1x1MDQwNlx1MDQwN1x1MjU2Nlx1MjU2N1x1MjU2OFx1MjU2OVx1MjU2YVx1MDQ5MFx1MDQwZVx4YTlcdTA0NGVcdTA0MzBcdTA0MzFcdTA0NDZcdTA0MzRcdTA0MzVcdTA0NDRcdTA0MzNcdTA0NDVcdTA0MzhcdTA0MzlcdTA0M2FcdTA0M2JcdTA0M2NcdTA0M2Rc''@;'; + put 'put ''dTA0M2VcdTA0M2ZcdTA0NGZcdTA0NDBcdTA0NDFcdTA0NDJcdTA0NDNcdTA0MzZcdTA0MzJcdTA0NGNcdTA0NGJcdTA0MzdcdTA0NDhcdTA0NGRcdTA0NDlcdTA0NDdcdTA0NGFcdTA0MmVcdTA0MTBcdTA0MTFcdTA0MjZcdTA0MTRcdTA0MTVcdTA0MjRcdTA0MTNcdTA0MjVcdTA0MThcdTA0''@;'; + put 'put ''MTlcdTA0MWFcdTA0MWJcdTA0MWNcdTA0MWRcdTA0MWVcdTA0MWZcdTA0MmZcdTA0MjBcdTA0MjFcdTA0MjJcdTA0MjNcdTA0MTZcdTA0MTJcdTA0MmNcdTA0MmJcdTA0MTdcdTA0MjhcdTA0MmRcdTA0MjlcdTA0MjdcdTA0MmEifSxrb2k4dDp7dHlwZToiX3NiY3MiLGNoYXJzOiJcdTA0OWJc''@;'; + put 'put ''dTA0OTNcdTIwMWFcdTA0OTJcdTIwMWVcdTIwMjZcdTIwMjBcdTIwMjFcdWZmZmRcdTIwMzBcdTA0YjNcdTIwMzlcdTA0YjJcdTA0YjdcdTA0YjZcdWZmZmRcdTA0OWFcdTIwMThcdTIwMTlcdTIwMWNcdTIwMWRcdTIwMjJcdTIwMTNcdTIwMTRcdWZmZmRcdTIxMjJcdWZmZmRcdTIwM2FcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTA0ZWZcdTA0ZWVcdTA0NTFceGE0XHUwNGUzXHhhNlx4YTdcdWZmZmRcdWZmZmRcdWZmZmRceGFiXHhhY1x4YWRceGFlXHVmZmZkXHhiMFx4YjFceGIyXHUwNDAxXHVmZmZkXHUwNGUyXHhiNlx4YjdcdWZmZmRcdTIxMTZcdWZmZmRceGJiXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHhhOVx1MDQ0ZVx1MDQzMFx1MDQzMVx1MDQ0Nlx1MDQzNFx1MDQzNVx1MDQ0NFx1MDQzM1x1MDQ0NVx1MDQzOFx1MDQzOVx1MDQzYVx1MDQzYlx1MDQzY1x1MDQzZFx1MDQzZVx1MDQzZlx1MDQ0Zlx1MDQ0MFx1MDQ0MVx1MDQ0Mlx1MDQ0M1x1MDQzNlx1MDQzMlx1''@;'; + put 'put ''MDQ0Y1x1MDQ0Ylx1MDQzN1x1MDQ0OFx1MDQ0ZFx1MDQ0OVx1MDQ0N1x1MDQ0YVx1MDQyZVx1MDQxMFx1MDQxMVx1MDQyNlx1MDQxNFx1MDQxNVx1MDQyNFx1MDQxM1x1MDQyNVx1MDQxOFx1MDQxOVx1MDQxYVx1MDQxYlx1MDQxY1x1MDQxZFx1MDQxZVx1MDQxZlx1MDQyZlx1MDQyMFx1MDQy''@;'; + put 'put ''MVx1MDQyMlx1MDQyM1x1MDQxNlx1MDQxMlx1MDQyY1x1MDQyYlx1MDQxN1x1MDQyOFx1MDQyZFx1MDQyOVx1MDQyN1x1MDQyYSJ9LGFybXNjaWk4Ont0eXBlOiJfc2JjcyIsY2hhcnM6Ilx4ODBceDgxXHg4Mlx4ODNceDg0XHg4NVx4ODZceDg3XHg4OFx4ODlceDhhXHg4Ylx4OGNceDhkXHg4''@;'; + put 'put ''ZVx4OGZceDkwXHg5MVx4OTJceDkzXHg5NFx4OTVceDk2XHg5N1x4OThceDk5XHg5YVx4OWJceDljXHg5ZFx4OWVceDlmXHhhMFx1ZmZmZFx1MDU4N1x1MDU4OSkoXHhiYlx4YWJcdTIwMTQuXHUwNTVkLC1cdTA1OGFcdTIwMjZcdTA1NWNcdTA1NWJcdTA1NWVcdTA1MzFcdTA1NjFcdTA1MzJc''@;'; + put 'put ''dTA1NjJcdTA1MzNcdTA1NjNcdTA1MzRcdTA1NjRcdTA1MzVcdTA1NjVcdTA1MzZcdTA1NjZcdTA1MzdcdTA1NjdcdTA1MzhcdTA1NjhcdTA1MzlcdTA1NjlcdTA1M2FcdTA1NmFcdTA1M2JcdTA1NmJcdTA1M2NcdTA1NmNcdTA1M2RcdTA1NmRcdTA1M2VcdTA1NmVcdTA1M2ZcdTA1NmZcdTA1''@;'; + put 'put ''NDBcdTA1NzBcdTA1NDFcdTA1NzFcdTA1NDJcdTA1NzJcdTA1NDNcdTA1NzNcdTA1NDRcdTA1NzRcdTA1NDVcdTA1NzVcdTA1NDZcdTA1NzZcdTA1NDdcdTA1NzdcdTA1NDhcdTA1NzhcdTA1NDlcdTA1NzlcdTA1NGFcdTA1N2FcdTA1NGJcdTA1N2JcdTA1NGNcdTA1N2NcdTA1NGRcdTA1N2Rc''@;'; + put 'put ''dTA1NGVcdTA1N2VcdTA1NGZcdTA1N2ZcdTA1NTBcdTA1ODBcdTA1NTFcdTA1ODFcdTA1NTJcdTA1ODJcdTA1NTNcdTA1ODNcdTA1NTRcdTA1ODRcdTA1NTVcdTA1ODVcdTA1NTZcdTA1ODZcdTA1NWFcdWZmZmQifSxyazEwNDg6e3R5cGU6Il9zYmNzIixjaGFyczoiXHUwNDAyXHUwNDAzXHUy''@;'; + put 'put ''MDFhXHUwNDUzXHUyMDFlXHUyMDI2XHUyMDIwXHUyMDIxXHUyMGFjXHUyMDMwXHUwNDA5XHUyMDM5XHUwNDBhXHUwNDlhXHUwNGJhXHUwNDBmXHUwNDUyXHUyMDE4XHUyMDE5XHUyMDFjXHUyMDFkXHUyMDIyXHUyMDEzXHUyMDE0XHVmZmZkXHUyMTIyXHUwNDU5XHUyMDNhXHUwNDVhXHUwNDli''@;'; + put 'put ''XHUwNGJiXHUwNDVmXHhhMFx1MDRiMFx1MDRiMVx1MDRkOFx4YTRcdTA0ZThceGE2XHhhN1x1MDQwMVx4YTlcdTA0OTJceGFiXHhhY1x4YWRceGFlXHUwNGFlXHhiMFx4YjFcdTA0MDZcdTA0NTZcdTA0ZTlceGI1XHhiNlx4YjdcdTA0NTFcdTIxMTZcdTA0OTNceGJiXHUwNGQ5XHUwNGEyXHUw''@;'; + put 'put ''NGEzXHUwNGFmXHUwNDEwXHUwNDExXHUwNDEyXHUwNDEzXHUwNDE0XHUwNDE1XHUwNDE2XHUwNDE3XHUwNDE4XHUwNDE5XHUwNDFhXHUwNDFiXHUwNDFjXHUwNDFkXHUwNDFlXHUwNDFmXHUwNDIwXHUwNDIxXHUwNDIyXHUwNDIzXHUwNDI0XHUwNDI1XHUwNDI2XHUwNDI3XHUwNDI4XHUwNDI5''@;'; + put 'put ''XHUwNDJhXHUwNDJiXHUwNDJjXHUwNDJkXHUwNDJlXHUwNDJmXHUwNDMwXHUwNDMxXHUwNDMyXHUwNDMzXHUwNDM0XHUwNDM1XHUwNDM2XHUwNDM3XHUwNDM4XHUwNDM5XHUwNDNhXHUwNDNiXHUwNDNjXHUwNDNkXHUwNDNlXHUwNDNmXHUwNDQwXHUwNDQxXHUwNDQyXHUwNDQzXHUwNDQ0XHUw''@;'; + put 'put ''NDQ1XHUwNDQ2XHUwNDQ3XHUwNDQ4XHUwNDQ5XHUwNDRhXHUwNDRiXHUwNDRjXHUwNDRkXHUwNDRlXHUwNDRmIn0sdGN2bjp7dHlwZToiX3NiY3MiLGNoYXJzOiJcMFx4ZGFcdTFlZTRceDAzXHUxZWVhXHUxZWVjXHUxZWVlXHgwN1xiXHRcblx2XGZcclx4MGVceDBmXHgxMFx1MWVlOFx1MWVm''@;'; + put 'put ''MFx1MWVmMlx1MWVmNlx1MWVmOFx4ZGRcdTFlZjRceDE4XHgxOVx4MWFceDFiXHgxY1x4MWRceDFlXHgxZiAhXCIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5ceDdmXHhj''@;'; + put 'put ''MFx1MWVhMlx4YzNceGMxXHUxZWEwXHUxZWI2XHUxZWFjXHhjOFx1MWViYVx1MWViY1x4YzlcdTFlYjhcdTFlYzZceGNjXHUxZWM4XHUwMTI4XHhjZFx1MWVjYVx4ZDJcdTFlY2VceGQ1XHhkM1x1MWVjY1x1MWVkOFx1MWVkY1x1MWVkZVx1MWVlMFx1MWVkYVx1MWVlMlx4ZDlcdTFlZTZcdTAx''@;'; + put 'put ''NjhceGEwXHUwMTAyXHhjMlx4Y2FceGQ0XHUwMWEwXHUwMWFmXHUwMTEwXHUwMTAzXHhlMlx4ZWFceGY0XHUwMWExXHUwMWIwXHUwMTExXHUxZWIwXHUwMzAwXHUwMzA5XHUwMzAzXHUwMzAxXHUwMzIzXHhlMFx1MWVhM1x4ZTNceGUxXHUxZWExXHUxZWIyXHUxZWIxXHUxZWIzXHUxZWI1XHUx''@;'; + put 'put ''ZWFmXHUxZWI0XHUxZWFlXHUxZWE2XHUxZWE4XHUxZWFhXHUxZWE0XHUxZWMwXHUxZWI3XHUxZWE3XHUxZWE5XHUxZWFiXHUxZWE1XHUxZWFkXHhlOFx1MWVjMlx1MWViYlx1MWViZFx4ZTlcdTFlYjlcdTFlYzFcdTFlYzNcdTFlYzVcdTFlYmZcdTFlYzdceGVjXHUxZWM5XHUxZWM0XHUxZWJl''@;'; + put 'put ''XHUxZWQyXHUwMTI5XHhlZFx1MWVjYlx4ZjJcdTFlZDRcdTFlY2ZceGY1XHhmM1x1MWVjZFx1MWVkM1x1MWVkNVx1MWVkN1x1MWVkMVx1MWVkOVx1MWVkZFx1MWVkZlx1MWVlMVx1MWVkYlx1MWVlM1x4ZjlcdTFlZDZcdTFlZTdcdTAxNjlceGZhXHUxZWU1XHUxZWViXHUxZWVkXHUxZWVmXHUx''@;'; + put 'put ''ZWU5XHUxZWYxXHUxZWYzXHUxZWY3XHUxZWY5XHhmZFx1MWVmNVx1MWVkMCJ9LGdlb3JnaWFuYWNhZGVteTp7dHlwZToiX3NiY3MiLGNoYXJzOiJceDgwXHg4MVx1MjAxYVx1MDE5Mlx1MjAxZVx1MjAyNlx1MjAyMFx1MjAyMVx1MDJjNlx1MjAzMFx1MDE2MFx1MjAzOVx1MDE1Mlx4OGRceDhl''@;'; + put 'put ''XHg4Zlx4OTBcdTIwMThcdTIwMTlcdTIwMWNcdTIwMWRcdTIwMjJcdTIwMTNcdTIwMTRcdTAyZGNcdTIxMjJcdTAxNjFcdTIwM2FcdTAxNTNceDlkXHg5ZVx1MDE3OFx4YTBceGExXHhhMlx4YTNceGE0XHhhNVx4YTZceGE3XHhhOFx4YTlceGFhXHhhYlx4YWNceGFkXHhhZVx4YWZceGIwXHhi''@;'; + put 'put ''MVx4YjJceGIzXHhiNFx4YjVceGI2XHhiN1x4YjhceGI5XHhiYVx4YmJceGJjXHhiZFx4YmVceGJmXHUxMGQwXHUxMGQxXHUxMGQyXHUxMGQzXHUxMGQ0XHUxMGQ1XHUxMGQ2XHUxMGQ3XHUxMGQ4XHUxMGQ5XHUxMGRhXHUxMGRiXHUxMGRjXHUxMGRkXHUxMGRlXHUxMGRmXHUxMGUwXHUxMGUx''@;'; + put 'put ''XHUxMGUyXHUxMGUzXHUxMGU0XHUxMGU1XHUxMGU2XHUxMGU3XHUxMGU4XHUxMGU5XHUxMGVhXHUxMGViXHUxMGVjXHUxMGVkXHUxMGVlXHUxMGVmXHUxMGYwXHUxMGYxXHUxMGYyXHUxMGYzXHUxMGY0XHUxMGY1XHUxMGY2XHhlN1x4ZThceGU5XHhlYVx4ZWJceGVjXHhlZFx4ZWVceGVmXHhm''@;'; + put 'put ''MFx4ZjFceGYyXHhmM1x4ZjRceGY1XHhmNlx4ZjdceGY4XHhmOVx4ZmFceGZiXHhmY1x4ZmRceGZlXHhmZiJ9LGdlb3JnaWFucHM6e3R5cGU6Il9zYmNzIixjaGFyczoiXHg4MFx4ODFcdTIwMWFcdTAxOTJcdTIwMWVcdTIwMjZcdTIwMjBcdTIwMjFcdTAyYzZcdTIwMzBcdTAxNjBcdTIwMzlc''@;'; + put 'put ''dTAxNTJceDhkXHg4ZVx4OGZceDkwXHUyMDE4XHUyMDE5XHUyMDFjXHUyMDFkXHUyMDIyXHUyMDEzXHUyMDE0XHUwMmRjXHUyMTIyXHUwMTYxXHUyMDNhXHUwMTUzXHg5ZFx4OWVcdTAxNzhceGEwXHhhMVx4YTJceGEzXHhhNFx4YTVceGE2XHhhN1x4YThceGE5XHhhYVx4YWJceGFjXHhhZFx4''@;'; + put 'put ''YWVceGFmXHhiMFx4YjFceGIyXHhiM1x4YjRceGI1XHhiNlx4YjdceGI4XHhiOVx4YmFceGJiXHhiY1x4YmRceGJlXHhiZlx1MTBkMFx1MTBkMVx1MTBkMlx1MTBkM1x1MTBkNFx1MTBkNVx1MTBkNlx1MTBmMVx1MTBkN1x1MTBkOFx1MTBkOVx1MTBkYVx1MTBkYlx1MTBkY1x1MTBmMlx1MTBk''@;'; + put 'put ''ZFx1MTBkZVx1MTBkZlx1MTBlMFx1MTBlMVx1MTBlMlx1MTBmM1x1MTBlM1x1MTBlNFx1MTBlNVx1MTBlNlx1MTBlN1x1MTBlOFx1MTBlOVx1MTBlYVx1MTBlYlx1MTBlY1x1MTBlZFx1MTBlZVx1MTBmNFx1MTBlZlx1MTBmMFx1MTBmNVx4ZTZceGU3XHhlOFx4ZTlceGVhXHhlYlx4ZWNceGVk''@;'; + put 'put ''XHhlZVx4ZWZceGYwXHhmMVx4ZjJceGYzXHhmNFx4ZjVceGY2XHhmN1x4ZjhceGY5XHhmYVx4ZmJceGZjXHhmZFx4ZmVceGZmIn0scHQxNTQ6e3R5cGU6Il9zYmNzIixjaGFyczoiXHUwNDk2XHUwNDkyXHUwNGVlXHUwNDkzXHUyMDFlXHUyMDI2XHUwNGI2XHUwNGFlXHUwNGIyXHUwNGFmXHUw''@;'; + put 'put ''NGEwXHUwNGUyXHUwNGEyXHUwNDlhXHUwNGJhXHUwNGI4XHUwNDk3XHUyMDE4XHUyMDE5XHUyMDFjXHUyMDFkXHUyMDIyXHUyMDEzXHUyMDE0XHUwNGIzXHUwNGI3XHUwNGExXHUwNGUzXHUwNGEzXHUwNDliXHUwNGJiXHUwNGI5XHhhMFx1MDQwZVx1MDQ1ZVx1MDQwOFx1MDRlOFx1MDQ5OFx1''@;'; + put 'put ''MDRiMFx4YTdcdTA0MDFceGE5XHUwNGQ4XHhhYlx4YWNcdTA0ZWZceGFlXHUwNDljXHhiMFx1MDRiMVx1MDQwNlx1MDQ1Nlx1MDQ5OVx1MDRlOVx4YjZceGI3XHUwNDUxXHUyMTE2XHUwNGQ5XHhiYlx1MDQ1OFx1MDRhYVx1MDRhYlx1MDQ5ZFx1MDQxMFx1MDQxMVx1MDQxMlx1MDQxM1x1MDQx''@;'; + put 'put ''NFx1MDQxNVx1MDQxNlx1MDQxN1x1MDQxOFx1MDQxOVx1MDQxYVx1MDQxYlx1MDQxY1x1MDQxZFx1MDQxZVx1MDQxZlx1MDQyMFx1MDQyMVx1MDQyMlx1MDQyM1x1MDQyNFx1MDQyNVx1MDQyNlx1MDQyN1x1MDQyOFx1MDQyOVx1MDQyYVx1MDQyYlx1MDQyY1x1MDQyZFx1MDQyZVx1MDQyZlx1''@;'; + put 'put ''MDQzMFx1MDQzMVx1MDQzMlx1MDQzM1x1MDQzNFx1MDQzNVx1MDQzNlx1MDQzN1x1MDQzOFx1MDQzOVx1MDQzYVx1MDQzYlx1MDQzY1x1MDQzZFx1MDQzZVx1MDQzZlx1MDQ0MFx1MDQ0MVx1MDQ0Mlx1MDQ0M1x1MDQ0NFx1MDQ0NVx1MDQ0Nlx1MDQ0N1x1MDQ0OFx1MDQ0OVx1MDQ0YVx1MDQ0''@;'; + put 'put ''Ylx1MDQ0Y1x1MDQ0ZFx1MDQ0ZVx1MDQ0ZiJ9LHZpc2NpaTp7dHlwZToiX3NiY3MiLGNoYXJzOiJcMFx4MDFcdTFlYjJceDAzXHgwNFx1MWViNFx1MWVhYVx4MDdcYlx0XG5cdlxmXHJceDBlXHgwZlx4MTBceDExXHgxMlx4MTNcdTFlZjZceDE1XHgxNlx4MTdceDE4XHUxZWY4XHgxYVx4MWJc''@;'; + put 'put ''eDFjXHgxZFx1MWVmNFx4MWYgIVwiIyQlJicoKSorLC0uLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpbXFxdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+XHg3Zlx1MWVhMFx1MWVhZVx1MWViMFx1MWViNlx1MWVhNFx1MWVhNlx1MWVhOFx1MWVh''@;'; + put 'put ''Y1x1MWViY1x1MWViOFx1MWViZVx1MWVjMFx1MWVjMlx1MWVjNFx1MWVjNlx1MWVkMFx1MWVkMlx1MWVkNFx1MWVkNlx1MWVkOFx1MWVlMlx1MWVkYVx1MWVkY1x1MWVkZVx1MWVjYVx1MWVjZVx1MWVjY1x1MWVjOFx1MWVlNlx1MDE2OFx1MWVlNFx1MWVmMlx4ZDVcdTFlYWZcdTFlYjFcdTFl''@;'; + put 'put ''YjdcdTFlYTVcdTFlYTdcdTFlYTlcdTFlYWRcdTFlYmRcdTFlYjlcdTFlYmZcdTFlYzFcdTFlYzNcdTFlYzVcdTFlYzdcdTFlZDFcdTFlZDNcdTFlZDVcdTFlZDdcdTFlZTBcdTAxYTBcdTFlZDlcdTFlZGRcdTFlZGZcdTFlY2JcdTFlZjBcdTFlZThcdTFlZWFcdTFlZWNcdTAxYTFcdTFlZGJc''@;'; + put 'put ''dTAxYWZceGMwXHhjMVx4YzJceGMzXHUxZWEyXHUwMTAyXHUxZWIzXHUxZWI1XHhjOFx4YzlceGNhXHUxZWJhXHhjY1x4Y2RcdTAxMjhcdTFlZjNcdTAxMTBcdTFlZTlceGQyXHhkM1x4ZDRcdTFlYTFcdTFlZjdcdTFlZWJcdTFlZWRceGQ5XHhkYVx1MWVmOVx1MWVmNVx4ZGRcdTFlZTFcdTAx''@;'; + put 'put ''YjBceGUwXHhlMVx4ZTJceGUzXHUxZWEzXHUwMTAzXHUxZWVmXHUxZWFiXHhlOFx4ZTlceGVhXHUxZWJiXHhlY1x4ZWRcdTAxMjlcdTFlYzlcdTAxMTFcdTFlZjFceGYyXHhmM1x4ZjRceGY1XHUxZWNmXHUxZWNkXHUxZWU1XHhmOVx4ZmFcdTAxNjlcdTFlZTdceGZkXHUxZWUzXHUxZWVlIn0s''@;'; + put 'put ''aXNvNjQ2Y246e3R5cGU6Il9zYmNzIixjaGFyczoiXDBceDAxXHgwMlx4MDNceDA0XHgwNVx4MDZceDA3XGJcdFxuXHZcZlxyXHgwZVx4MGZceDEwXHgxMVx4MTJceDEzXHgxNFx4MTVceDE2XHgxN1x4MThceDE5XHgxYVx4MWJceDFjXHgxZFx4MWVceDFmICFcIiNceGE1JSYnKCkqKywtLi8w''@;'; + put 'put ''MTIzNDU2Nzg5Ojs8PT4/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaW1xcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9XHUyMDNlXHg3Zlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZCJ9LGlzbzY0NmpwOnt0eXBlOiJfc2JjcyIsY2hhcnM6IlwwXHgwMVx4MDJceDAzXHgwNFx4MDVceDA2XHgwN1xiXHRcblx2XGZcclx4MGVceDBmXHgxMFx4MTFceDEyXHgxM1x4MTRceDE1XHgxNlx4MTdceDE4XHgxOVx4MWFceDFiXHgx''@;'; + put 'put ''Y1x4MWRceDFlXHgxZiAhXCIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltceGE1XV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9XHUyMDNlXHg3Zlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZCJ9LGhwcm9tYW44Ont0eXBlOiJfc2JjcyIsY2hhcnM6Ilx4ODBceDgxXHg4Mlx4ODNceDg0XHg4NVx4ODZceDg3XHg4OFx4ODlceDhhXHg4Ylx4OGNceDhkXHg4ZVx4OGZceDkw''@;'; + put 'put ''XHg5MVx4OTJceDkzXHg5NFx4OTVceDk2XHg5N1x4OThceDk5XHg5YVx4OWJceDljXHg5ZFx4OWVceDlmXHhhMFx4YzBceGMyXHhjOFx4Y2FceGNiXHhjZVx4Y2ZceGI0XHUwMmNiXHUwMmM2XHhhOFx1MDJkY1x4ZDlceGRiXHUyMGE0XHhhZlx4ZGRceGZkXHhiMFx4YzdceGU3XHhkMVx4ZjFc''@;'; + put 'put ''eGExXHhiZlx4YTRceGEzXHhhNVx4YTdcdTAxOTJceGEyXHhlMlx4ZWFceGY0XHhmYlx4ZTFceGU5XHhmM1x4ZmFceGUwXHhlOFx4ZjJceGY5XHhlNFx4ZWJceGY2XHhmY1x4YzVceGVlXHhkOFx4YzZceGU1XHhlZFx4ZjhceGU2XHhjNFx4ZWNceGQ2XHhkY1x4YzlceGVmXHhkZlx4ZDRceGMx''@;'; + put 'put ''XHhjM1x4ZTNceGQwXHhmMFx4Y2RceGNjXHhkM1x4ZDJceGQ1XHhmNVx1MDE2MFx1MDE2MVx4ZGFcdTAxNzhceGZmXHhkZVx4ZmVceGI3XHhiNVx4YjZceGJlXHUyMDE0XHhiY1x4YmRceGFhXHhiYVx4YWJcdTI1YTBceGJiXHhiMVx1ZmZmZCJ9LG1hY2ludG9zaDp7dHlwZToiX3NiY3MiLGNo''@;'; + put 'put ''YXJzOiJceGM0XHhjNVx4YzdceGM5XHhkMVx4ZDZceGRjXHhlMVx4ZTBceGUyXHhlNFx4ZTNceGU1XHhlN1x4ZTlceGU4XHhlYVx4ZWJceGVkXHhlY1x4ZWVceGVmXHhmMVx4ZjNceGYyXHhmNFx4ZjZceGY1XHhmYVx4ZjlceGZiXHhmY1x1MjAyMFx4YjBceGEyXHhhM1x4YTdcdTIwMjJceGI2''@;'; + put 'put ''XHhkZlx4YWVceGE5XHUyMTIyXHhiNFx4YThcdTIyNjBceGM2XHhkOFx1MjIxZVx4YjFcdTIyNjRcdTIyNjVceGE1XHhiNVx1MjIwMlx1MjIxMVx1MjIwZlx1MDNjMFx1MjIyYlx4YWFceGJhXHUyMTI2XHhlNlx4ZjhceGJmXHhhMVx4YWNcdTIyMWFcdTAxOTJcdTIyNDhcdTIyMDZceGFiXHhi''@;'; + put 'put ''Ylx1MjAyNlx4YTBceGMwXHhjM1x4ZDVcdTAxNTJcdTAxNTNcdTIwMTNcdTIwMTRcdTIwMWNcdTIwMWRcdTIwMThcdTIwMTlceGY3XHUyNWNhXHhmZlx1MDE3OFx1MjA0NFx4YTRcdTIwMzlcdTIwM2FcdWZiMDFcdWZiMDJcdTIwMjFceGI3XHUyMDFhXHUyMDFlXHUyMDMwXHhjMlx4Y2FceGMx''@;'; + put 'put ''XHhjYlx4YzhceGNkXHhjZVx4Y2ZceGNjXHhkM1x4ZDRcdWZmZmRceGQyXHhkYVx4ZGJceGQ5XHUwMTMxXHUwMmM2XHUwMmRjXHhhZlx1MDJkOFx1MDJkOVx1MDJkYVx4YjhcdTAyZGRcdTAyZGJcdTAyYzcifSxhc2NpaTp7dHlwZToiX3NiY3MiLGNoYXJzOiJcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmQifSx0aXM2MjA6e3R5cGU6Il9zYmNzIixjaGFyczoiXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUwZTAxXHUwZTAy''@;'; + put 'put ''XHUwZTAzXHUwZTA0XHUwZTA1XHUwZTA2XHUwZTA3XHUwZTA4XHUwZTA5XHUwZTBhXHUwZTBiXHUwZTBjXHUwZTBkXHUwZTBlXHUwZTBmXHUwZTEwXHUwZTExXHUwZTEyXHUwZTEzXHUwZTE0XHUwZTE1XHUwZTE2XHUwZTE3XHUwZTE4XHUwZTE5XHUwZTFhXHUwZTFiXHUwZTFjXHUwZTFkXHUw''@;'; + put 'put ''ZTFlXHUwZTFmXHUwZTIwXHUwZTIxXHUwZTIyXHUwZTIzXHUwZTI0XHUwZTI1XHUwZTI2XHUwZTI3XHUwZTI4XHUwZTI5XHUwZTJhXHUwZTJiXHUwZTJjXHUwZTJkXHUwZTJlXHUwZTJmXHUwZTMwXHUwZTMxXHUwZTMyXHUwZTMzXHUwZTM0XHUwZTM1XHUwZTM2XHUwZTM3XHUwZTM4XHUwZTM5''@;'; + put 'put ''XHUwZTNhXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUwZTNmXHUwZTQwXHUwZTQxXHUwZTQyXHUwZTQzXHUwZTQ0XHUwZTQ1XHUwZTQ2XHUwZTQ3XHUwZTQ4XHUwZTQ5XHUwZTRhXHUwZTRiXHUwZTRjXHUwZTRkXHUwZTRlXHUwZTRmXHUwZTUwXHUwZTUxXHUwZTUyXHUwZTUzXHUwZTU0XHUw''@;'; + put 'put ''ZTU1XHUwZTU2XHUwZTU3XHUwZTU4XHUwZTU5XHUwZTVhXHUwZTViXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkIn19fSw2ODYxOTpYZT0+eyJ1c2Ugc3RyaWN0IjtYZS5leHBvcnRzPXsxMDAyOToibWFjY2VudGV1cm8iLG1hY2NlbnRldXJvOnt0eXBlOiJfc2JjcyIsY2hhcnM6Ilx4YzRcdTAx''@;'; + put 'put ''MDBcdTAxMDFceGM5XHUwMTA0XHhkNlx4ZGNceGUxXHUwMTA1XHUwMTBjXHhlNFx1MDEwZFx1MDEwNlx1MDEwN1x4ZTlcdTAxNzlcdTAxN2FcdTAxMGVceGVkXHUwMTBmXHUwMTEyXHUwMTEzXHUwMTE2XHhmM1x1MDExN1x4ZjRceGY2XHhmNVx4ZmFcdTAxMWFcdTAxMWJceGZjXHUyMDIwXHhi''@;'; + put 'put ''MFx1MDExOFx4YTNceGE3XHUyMDIyXHhiNlx4ZGZceGFlXHhhOVx1MjEyMlx1MDExOVx4YThcdTIyNjBcdTAxMjNcdTAxMmVcdTAxMmZcdTAxMmFcdTIyNjRcdTIyNjVcdTAxMmJcdTAxMzZcdTIyMDJcdTIyMTFcdTAxNDJcdTAxM2JcdTAxM2NcdTAxM2RcdTAxM2VcdTAxMzlcdTAxM2FcdTAx''@;'; + put 'put ''NDVcdTAxNDZcdTAxNDNceGFjXHUyMjFhXHUwMTQ0XHUwMTQ3XHUyMjA2XHhhYlx4YmJcdTIwMjZceGEwXHUwMTQ4XHUwMTUwXHhkNVx1MDE1MVx1MDE0Y1x1MjAxM1x1MjAxNFx1MjAxY1x1MjAxZFx1MjAxOFx1MjAxOVx4ZjdcdTI1Y2FcdTAxNGRcdTAxNTRcdTAxNTVcdTAxNThcdTIwMzlc''@;'; + put 'put ''dTIwM2FcdTAxNTlcdTAxNTZcdTAxNTdcdTAxNjBcdTIwMWFcdTIwMWVcdTAxNjFcdTAxNWFcdTAxNWJceGMxXHUwMTY0XHUwMTY1XHhjZFx1MDE3ZFx1MDE3ZVx1MDE2YVx4ZDNceGQ0XHUwMTZiXHUwMTZlXHhkYVx1MDE2Zlx1MDE3MFx1MDE3MVx1MDE3Mlx1MDE3M1x4ZGRceGZkXHUwMTM3''@;'; + put 'put ''XHUwMTdiXHUwMTQxXHUwMTdjXHUwMTIyXHUwMmM3In0sODA4OiJjcDgwOCIsaWJtODA4OiJjcDgwOCIsY3A4MDg6e3R5cGU6Il9zYmNzIixjaGFyczoiXHUwNDEwXHUwNDExXHUwNDEyXHUwNDEzXHUwNDE0XHUwNDE1XHUwNDE2XHUwNDE3XHUwNDE4XHUwNDE5XHUwNDFhXHUwNDFiXHUwNDFj''@;'; + put 'put ''XHUwNDFkXHUwNDFlXHUwNDFmXHUwNDIwXHUwNDIxXHUwNDIyXHUwNDIzXHUwNDI0XHUwNDI1XHUwNDI2XHUwNDI3XHUwNDI4XHUwNDI5XHUwNDJhXHUwNDJiXHUwNDJjXHUwNDJkXHUwNDJlXHUwNDJmXHUwNDMwXHUwNDMxXHUwNDMyXHUwNDMzXHUwNDM0XHUwNDM1XHUwNDM2XHUwNDM3XHUw''@;'; + put 'put ''NDM4XHUwNDM5XHUwNDNhXHUwNDNiXHUwNDNjXHUwNDNkXHUwNDNlXHUwNDNmXHUyNTkxXHUyNTkyXHUyNTkzXHUyNTAyXHUyNTI0XHUyNTYxXHUyNTYyXHUyNTU2XHUyNTU1XHUyNTYzXHUyNTUxXHUyNTU3XHUyNTVkXHUyNTVjXHUyNTViXHUyNTEwXHUyNTE0XHUyNTM0XHUyNTJjXHUyNTFj''@;'; + put 'put ''XHUyNTAwXHUyNTNjXHUyNTVlXHUyNTVmXHUyNTVhXHUyNTU0XHUyNTY5XHUyNTY2XHUyNTYwXHUyNTUwXHUyNTZjXHUyNTY3XHUyNTY4XHUyNTY0XHUyNTY1XHUyNTU5XHUyNTU4XHUyNTUyXHUyNTUzXHUyNTZiXHUyNTZhXHUyNTE4XHUyNTBjXHUyNTg4XHUyNTg0XHUyNThjXHUyNTkwXHUy''@;'; + put 'put ''NTgwXHUwNDQwXHUwNDQxXHUwNDQyXHUwNDQzXHUwNDQ0XHUwNDQ1XHUwNDQ2XHUwNDQ3XHUwNDQ4XHUwNDQ5XHUwNDRhXHUwNDRiXHUwNDRjXHUwNDRkXHUwNDRlXHUwNDRmXHUwNDAxXHUwNDUxXHUwNDA0XHUwNDU0XHUwNDA3XHUwNDU3XHUwNDBlXHUwNDVlXHhiMFx1MjIxOVx4YjdcdTIy''@;'; + put 'put ''MWFcdTIxMTZcdTIwYWNcdTI1YTBceGEwIn0sbWlrOnt0eXBlOiJfc2JjcyIsY2hhcnM6Ilx1MDQxMFx1MDQxMVx1MDQxMlx1MDQxM1x1MDQxNFx1MDQxNVx1MDQxNlx1MDQxN1x1MDQxOFx1MDQxOVx1MDQxYVx1MDQxYlx1MDQxY1x1MDQxZFx1MDQxZVx1MDQxZlx1MDQyMFx1MDQyMVx1MDQy''@;'; + put 'put ''Mlx1MDQyM1x1MDQyNFx1MDQyNVx1MDQyNlx1MDQyN1x1MDQyOFx1MDQyOVx1MDQyYVx1MDQyYlx1MDQyY1x1MDQyZFx1MDQyZVx1MDQyZlx1MDQzMFx1MDQzMVx1MDQzMlx1MDQzM1x1MDQzNFx1MDQzNVx1MDQzNlx1MDQzN1x1MDQzOFx1MDQzOVx1MDQzYVx1MDQzYlx1MDQzY1x1MDQzZFx1''@;'; + put 'put ''MDQzZVx1MDQzZlx1MDQ0MFx1MDQ0MVx1MDQ0Mlx1MDQ0M1x1MDQ0NFx1MDQ0NVx1MDQ0Nlx1MDQ0N1x1MDQ0OFx1MDQ0OVx1MDQ0YVx1MDQ0Ylx1MDQ0Y1x1MDQ0ZFx1MDQ0ZVx1MDQ0Zlx1MjUxNFx1MjUzNFx1MjUyY1x1MjUxY1x1MjUwMFx1MjUzY1x1MjU2M1x1MjU1MVx1MjU1YVx1MjU1''@;'; + put 'put ''NFx1MjU2OVx1MjU2Nlx1MjU2MFx1MjU1MFx1MjU2Y1x1MjUxMFx1MjU5MVx1MjU5Mlx1MjU5M1x1MjUwMlx1MjUyNFx1MjExNlx4YTdcdTI1NTdcdTI1NWRcdTI1MThcdTI1MGNcdTI1ODhcdTI1ODRcdTI1OGNcdTI1OTBcdTI1ODBcdTAzYjFceGRmXHUwMzkzXHUwM2MwXHUwM2EzXHUwM2Mz''@;'; + put 'put ''XHhiNVx1MDNjNFx1MDNhNlx1MDM5OFx1MDNhOVx1MDNiNFx1MjIxZVx1MDNjNlx1MDNiNVx1MjIyOVx1MjI2MVx4YjFcdTIyNjVcdTIyNjRcdTIzMjBcdTIzMjFceGY3XHUyMjQ4XHhiMFx1MjIxOVx4YjdcdTIyMWFcdTIwN2ZceGIyXHUyNWEwXHhhMCJ9LGNwNzIwOnt0eXBlOiJfc2JjcyIs''@;'; + put 'put ''Y2hhcnM6Ilx4ODBceDgxXHhlOVx4ZTJceDg0XHhlMFx4ODZceGU3XHhlYVx4ZWJceGU4XHhlZlx4ZWVceDhkXHg4ZVx4OGZceDkwXHUwNjUxXHUwNjUyXHhmNFx4YTRcdTA2NDBceGZiXHhmOVx1MDYyMVx1MDYyMlx1MDYyM1x1MDYyNFx4YTNcdTA2MjVcdTA2MjZcdTA2MjdcdTA2MjhcdTA2''@;'; + put 'put ''MjlcdTA2MmFcdTA2MmJcdTA2MmNcdTA2MmRcdTA2MmVcdTA2MmZcdTA2MzBcdTA2MzFcdTA2MzJcdTA2MzNcdTA2MzRcdTA2MzVceGFiXHhiYlx1MjU5MVx1MjU5Mlx1MjU5M1x1MjUwMlx1MjUyNFx1MjU2MVx1MjU2Mlx1MjU1Nlx1MjU1NVx1MjU2M1x1MjU1MVx1MjU1N1x1MjU1ZFx1MjU1''@;'; + put 'put ''Y1x1MjU1Ylx1MjUxMFx1MjUxNFx1MjUzNFx1MjUyY1x1MjUxY1x1MjUwMFx1MjUzY1x1MjU1ZVx1MjU1Zlx1MjU1YVx1MjU1NFx1MjU2OVx1MjU2Nlx1MjU2MFx1MjU1MFx1MjU2Y1x1MjU2N1x1MjU2OFx1MjU2NFx1MjU2NVx1MjU1OVx1MjU1OFx1MjU1Mlx1MjU1M1x1MjU2Ylx1MjU2YVx1''@;'; + put 'put ''MjUxOFx1MjUwY1x1MjU4OFx1MjU4NFx1MjU4Y1x1MjU5MFx1MjU4MFx1MDYzNlx1MDYzN1x1MDYzOFx1MDYzOVx1MDYzYVx1MDY0MVx4YjVcdTA2NDJcdTA2NDNcdTA2NDRcdTA2NDVcdTA2NDZcdTA2NDdcdTA2NDhcdTA2NDlcdTA2NGFcdTIyNjFcdTA2NGJcdTA2NGNcdTA2NGRcdTA2NGVc''@;'; + put 'put ''dTA2NGZcdTA2NTBcdTIyNDhceGIwXHUyMjE5XHhiN1x1MjIxYVx1MjA3Zlx4YjJcdTI1YTBceGEwIn0sYXNjaWk4Yml0OiJhc2NpaSIsdXNhc2NpaToiYXNjaWkiLGFuc2l4MzQ6ImFzY2lpIixhbnNpeDM0MTk2ODoiYXNjaWkiLGFuc2l4MzQxOTg2OiJhc2NpaSIsY3Nhc2NpaToiYXNjaWki''@;'; + put 'put ''LGNwMzY3OiJhc2NpaSIsaWJtMzY3OiJhc2NpaSIsaXNvaXI2OiJhc2NpaSIsaXNvNjQ2dXM6ImFzY2lpIixpc282NDZpcnY6ImFzY2lpIix1czoiYXNjaWkiLGxhdGluMToiaXNvODg1OTEiLGxhdGluMjoiaXNvODg1OTIiLGxhdGluMzoiaXNvODg1OTMiLGxhdGluNDoiaXNvODg1OTQiLGxh''@;'; + put 'put ''dGluNToiaXNvODg1OTkiLGxhdGluNjoiaXNvODg1OTEwIixsYXRpbjc6Imlzbzg4NTkxMyIsbGF0aW44OiJpc284ODU5MTQiLGxhdGluOToiaXNvODg1OTE1IixsYXRpbjEwOiJpc284ODU5MTYiLGNzaXNvbGF0aW4xOiJpc284ODU5MSIsY3Npc29sYXRpbjI6Imlzbzg4NTkyIixjc2lzb2xh''@;'; + put 'put ''dGluMzoiaXNvODg1OTMiLGNzaXNvbGF0aW40OiJpc284ODU5NCIsY3Npc29sYXRpbmN5cmlsbGljOiJpc284ODU5NSIsY3Npc29sYXRpbmFyYWJpYzoiaXNvODg1OTYiLGNzaXNvbGF0aW5ncmVlazoiaXNvODg1OTciLGNzaXNvbGF0aW5oZWJyZXc6Imlzbzg4NTk4Iixjc2lzb2xhdGluNToi''@;'; + put 'put ''aXNvODg1OTkiLGNzaXNvbGF0aW42OiJpc284ODU5MTAiLGwxOiJpc284ODU5MSIsbDI6Imlzbzg4NTkyIixsMzoiaXNvODg1OTMiLGw0OiJpc284ODU5NCIsbDU6Imlzbzg4NTk5IixsNjoiaXNvODg1OTEwIixsNzoiaXNvODg1OTEzIixsODoiaXNvODg1OTE0IixsOToiaXNvODg1OTE1Iixs''@;'; + put 'put ''MTA6Imlzbzg4NTkxNiIsaXNvaXIxNDoiaXNvNjQ2anAiLGlzb2lyNTc6ImlzbzY0NmNuIixpc29pcjEwMDoiaXNvODg1OTEiLGlzb2lyMTAxOiJpc284ODU5MiIsaXNvaXIxMDk6Imlzbzg4NTkzIixpc29pcjExMDoiaXNvODg1OTQiLGlzb2lyMTQ0OiJpc284ODU5NSIsaXNvaXIxMjc6Imlz''@;'; + put 'put ''bzg4NTk2Iixpc29pcjEyNjoiaXNvODg1OTciLGlzb2lyMTM4OiJpc284ODU5OCIsaXNvaXIxNDg6Imlzbzg4NTk5Iixpc29pcjE1NzoiaXNvODg1OTEwIixpc29pcjE2NjoidGlzNjIwIixpc29pcjE3OToiaXNvODg1OTEzIixpc29pcjE5OToiaXNvODg1OTE0Iixpc29pcjIwMzoiaXNvODg1''@;'; + put 'put ''OTE1Iixpc29pcjIyNjoiaXNvODg1OTE2IixjcDgxOToiaXNvODg1OTEiLGlibTgxOToiaXNvODg1OTEiLGN5cmlsbGljOiJpc284ODU5NSIsYXJhYmljOiJpc284ODU5NiIsYXJhYmljODoiaXNvODg1OTYiLGVjbWExMTQ6Imlzbzg4NTk2Iixhc21vNzA4OiJpc284ODU5NiIsZ3JlZWs6Imlz''@;'; + put 'put ''bzg4NTk3IixncmVlazg6Imlzbzg4NTk3IixlY21hMTE4OiJpc284ODU5NyIsZWxvdDkyODoiaXNvODg1OTciLGhlYnJldzoiaXNvODg1OTgiLGhlYnJldzg6Imlzbzg4NTk4Iix0dXJraXNoOiJpc284ODU5OSIsdHVya2lzaDg6Imlzbzg4NTk5Iix0aGFpOiJpc284ODU5MTEiLHRoYWk4OiJp''@;'; + put 'put ''c284ODU5MTEiLGNlbHRpYzoiaXNvODg1OTE0IixjZWx0aWM4OiJpc284ODU5MTQiLGlzb2NlbHRpYzoiaXNvODg1OTE0Iix0aXM2MjAwOiJ0aXM2MjAiLHRpczYyMDI1MjkxOiJ0aXM2MjAiLHRpczYyMDI1MzMwOiJ0aXM2MjAiLDFlNDoibWFjcm9tYW4iLDEwMDA2OiJtYWNncmVlayIsMTAw''@;'; + put 'put ''MDc6Im1hY2N5cmlsbGljIiwxMDA3OToibWFjaWNlbGFuZCIsMTAwODE6Im1hY3R1cmtpc2giLGNzcGM4Y29kZXBhZ2U0Mzc6ImNwNDM3Iixjc3BjNzc1YmFsdGljOiJjcDc3NSIsY3NwYzg1MG11bHRpbGluZ3VhbDoiY3A4NTAiLGNzcGNwODUyOiJjcDg1MiIsY3NwYzg2MmxhdGluaGVicmV3''@;'; + put 'put ''OiJjcDg2MiIsY3BncjoiY3A4NjkiLG1zZWU6ImNwMTI1MCIsbXNjeXJsOiJjcDEyNTEiLG1zYW5zaToiY3AxMjUyIixtc2dyZWVrOiJjcDEyNTMiLG1zdHVyazoiY3AxMjU0Iixtc2hlYnI6ImNwMTI1NSIsbXNhcmFiOiJjcDEyNTYiLHdpbmJhbHRyaW06ImNwMTI1NyIsY3AyMDg2Njoia29p''@;'; + put 'put ''OHIiLDIwODY2OiJrb2k4ciIsaWJtODc4OiJrb2k4ciIsY3Nrb2k4cjoia29pOHIiLGNwMjE4NjY6ImtvaTh1IiwyMTg2Njoia29pOHUiLGlibTExNjg6ImtvaTh1IixzdHJrMTA0ODIwMDI6InJrMTA0OCIsdGN2bjU3MTI6InRjdm4iLHRjdm41NzEyMToidGN2biIsZ2IxOTg4ODA6ImlzbzY0''@;'; + put 'put ''NmNuIixjbjoiaXNvNjQ2Y24iLGNzaXNvMTRqaXNjNjIyMHJvOiJpc282NDZqcCIsamlzYzYyMjAxOTY5cm86ImlzbzY0NmpwIixqcDoiaXNvNjQ2anAiLGNzaHByb21hbjg6Imhwcm9tYW44IixyODoiaHByb21hbjgiLHJvbWFuODoiaHByb21hbjgiLHhyb21hbjg6Imhwcm9tYW44IixpYm0x''@;'; + put 'put ''MDUxOiJocHJvbWFuOCIsbWFjOiJtYWNpbnRvc2giLGNzbWFjaW50b3NoOiJtYWNpbnRvc2gifX0sOTM3NjA6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDYyMDM4KS5CdWZmZXI7ZnVuY3Rpb24gQigpe31mdW5jdGlvbiBFKCl7fWZ1bmN0aW9uIE1lKCl7dGhpcy5vdmVyZmxv''@;'; + put 'put ''d0J5dGU9LTF9ZnVuY3Rpb24gVShhZSxZKXt0aGlzLmljb252PVl9ZnVuY3Rpb24gUShhZSxZKXt2b2lkIDA9PT0oYWU9YWV8fHt9KS5hZGRCT00mJihhZS5hZGRCT009ITApLHRoaXMuZW5jb2Rlcj1ZLmljb252LmdldEVuY29kZXIoInV0Zi0xNmxlIixhZSl9ZnVuY3Rpb24gWihhZSxZKXt0''@;'; + put 'put ''aGlzLmRlY29kZXI9bnVsbCx0aGlzLmluaXRpYWxCeXRlcz1bXSx0aGlzLmluaXRpYWxCeXRlc0xlbj0wLHRoaXMub3B0aW9ucz1hZXx8e30sdGhpcy5pY29udj1ZLmljb252fWZ1bmN0aW9uIGllKGFlLFkpe3ZhciBXPVl8fCJ1dGYtMTZsZSI7aWYoYWUubGVuZ3RoPj0yKWlmKDI1ND09YWVb''@;'; + put 'put ''MF0mJjI1NT09YWVbMV0pVz0idXRmLTE2YmUiO2Vsc2UgaWYoMjU1PT1hZVswXSYmMjU0PT1hZVsxXSlXPSJ1dGYtMTZsZSI7ZWxzZXtmb3IodmFyIE49MCxlZT0wLHE9TWF0aC5taW4oYWUubGVuZ3RoLWFlLmxlbmd0aCUyLDY0KSxKPTA7SjxxO0orPTIpMD09PWFlW0pdJiYwIT09YWVbSisx''@;'; + put 'put ''XSYmZWUrKywwIT09YWVbSl0mJjA9PT1hZVtKKzFdJiZOKys7ZWU+Tj9XPSJ1dGYtMTZiZSI6ZWU8TiYmKFc9InV0Zi0xNmxlIil9cmV0dXJuIFd9SmUudXRmMTZiZT1CLEIucHJvdG90eXBlLmVuY29kZXI9RSxCLnByb3RvdHlwZS5kZWNvZGVyPU1lLEIucHJvdG90eXBlLmJvbUF3YXJlPSEw''@;'; + put 'put ''LEUucHJvdG90eXBlLndyaXRlPWZ1bmN0aW9uKGFlKXtmb3IodmFyIFk9bWUuZnJvbShhZSwidWNzMiIpLFc9MDtXPFkubGVuZ3RoO1crPTIpe3ZhciBOPVlbV107WVtXXT1ZW1crMV0sWVtXKzFdPU59cmV0dXJuIFl9LEUucHJvdG90eXBlLmVuZD1mdW5jdGlvbigpe30sTWUucHJvdG90eXBl''@;'; + put 'put ''LndyaXRlPWZ1bmN0aW9uKGFlKXtpZigwPT1hZS5sZW5ndGgpcmV0dXJuIiI7dmFyIFk9bWUuYWxsb2MoYWUubGVuZ3RoKzEpLFc9MCxOPTA7Zm9yKC0xIT09dGhpcy5vdmVyZmxvd0J5dGUmJihZWzBdPWFlWzBdLFlbMV09dGhpcy5vdmVyZmxvd0J5dGUsVz0xLE49Mik7VzxhZS5sZW5ndGgt''@;'; + put 'put ''MTtXKz0yLE4rPTIpWVtOXT1hZVtXKzFdLFlbTisxXT1hZVtXXTtyZXR1cm4gdGhpcy5vdmVyZmxvd0J5dGU9Vz09YWUubGVuZ3RoLTE/YWVbYWUubGVuZ3RoLTFdOi0xLFkuc2xpY2UoMCxOKS50b1N0cmluZygidWNzMiIpfSxNZS5wcm90b3R5cGUuZW5kPWZ1bmN0aW9uKCl7fSxKZS51dGYx''@;'; + put 'put ''Nj1VLFUucHJvdG90eXBlLmVuY29kZXI9USxVLnByb3RvdHlwZS5kZWNvZGVyPVosUS5wcm90b3R5cGUud3JpdGU9ZnVuY3Rpb24oYWUpe3JldHVybiB0aGlzLmVuY29kZXIud3JpdGUoYWUpfSxRLnByb3RvdHlwZS5lbmQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lbmNvZGVyLmVuZCgpfSxa''@;'; + put 'put ''LnByb3RvdHlwZS53cml0ZT1mdW5jdGlvbihhZSl7aWYoIXRoaXMuZGVjb2Rlcil7aWYodGhpcy5pbml0aWFsQnl0ZXMucHVzaChhZSksdGhpcy5pbml0aWFsQnl0ZXNMZW4rPWFlLmxlbmd0aCx0aGlzLmluaXRpYWxCeXRlc0xlbjwxNilyZXR1cm4iIjt2YXIgWT1pZShhZT1tZS5jb25jYXQo''@;'; + put 'put ''dGhpcy5pbml0aWFsQnl0ZXMpLHRoaXMub3B0aW9ucy5kZWZhdWx0RW5jb2RpbmcpO3RoaXMuZGVjb2Rlcj10aGlzLmljb252LmdldERlY29kZXIoWSx0aGlzLm9wdGlvbnMpLHRoaXMuaW5pdGlhbEJ5dGVzLmxlbmd0aD10aGlzLmluaXRpYWxCeXRlc0xlbj0wfXJldHVybiB0aGlzLmRlY29k''@;'; + put 'put ''ZXIud3JpdGUoYWUpfSxaLnByb3RvdHlwZS5lbmQ9ZnVuY3Rpb24oKXtpZighdGhpcy5kZWNvZGVyKXt2YXIgYWU9bWUuY29uY2F0KHRoaXMuaW5pdGlhbEJ5dGVzKSxZPWllKGFlLHRoaXMub3B0aW9ucy5kZWZhdWx0RW5jb2RpbmcpO3RoaXMuZGVjb2Rlcj10aGlzLmljb252LmdldERlY29k''@;'; + put 'put ''ZXIoWSx0aGlzLm9wdGlvbnMpO3ZhciBXPXRoaXMuZGVjb2Rlci53cml0ZShhZSksTj10aGlzLmRlY29kZXIuZW5kKCk7cmV0dXJuIE4/VytOOld9cmV0dXJuIHRoaXMuZGVjb2Rlci5lbmQoKX19LDgyNjA2OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCg2MjAzOCkuQnVmZmVy''@;'; + put 'put ''O2Z1bmN0aW9uIEIoYWUsWSl7dGhpcy5pY29udj1ZLHRoaXMuYm9tQXdhcmU9ITAsdGhpcy5pc0xFPWFlLmlzTEV9ZnVuY3Rpb24gRShhZSxZKXt0aGlzLmlzTEU9WS5pc0xFLHRoaXMuaGlnaFN1cnJvZ2F0ZT0wfWZ1bmN0aW9uIE1lKGFlLFkpe3RoaXMuaXNMRT1ZLmlzTEUsdGhpcy5iYWRD''@;'; + put 'put ''aGFyPVkuaWNvbnYuZGVmYXVsdENoYXJVbmljb2RlLmNoYXJDb2RlQXQoMCksdGhpcy5vdmVyZmxvdz1udWxsfWZ1bmN0aW9uIFUoYWUsWSl7dGhpcy5pY29udj1ZfWZ1bmN0aW9uIFEoYWUsWSl7dm9pZCAwPT09KGFlPWFlfHx7fSkuYWRkQk9NJiYoYWUuYWRkQk9NPSEwKSx0aGlzLmVuY29k''@;'; + put 'put ''ZXI9WS5pY29udi5nZXRFbmNvZGVyKGFlLmRlZmF1bHRFbmNvZGluZ3x8InV0Zi0zMmxlIixhZSl9ZnVuY3Rpb24gWihhZSxZKXt0aGlzLmRlY29kZXI9bnVsbCx0aGlzLmluaXRpYWxCeXRlcz1bXSx0aGlzLmluaXRpYWxCeXRlc0xlbj0wLHRoaXMub3B0aW9ucz1hZXx8e30sdGhpcy5pY29u''@;'; + put 'put ''dj1ZLmljb252fWZ1bmN0aW9uIGllKGFlLFkpe3ZhciBXPVl8fCJ1dGYtMzJsZSI7aWYoYWUubGVuZ3RoPj00KWlmKDY1Mjc5PT09YWUucmVhZFVJbnQzMkJFKDApKVc9InV0Zi0zMmJlIjtlbHNlIGlmKDY1Mjc5PT09YWUucmVhZFVJbnQzMkxFKDApKVc9InV0Zi0zMmxlIjtlbHNle2Zvcih2''@;'; + put 'put ''YXIgTj0wLGVlPTAscT0wLEo9MCxzZT1NYXRoLm1pbihhZS5sZW5ndGgtYWUubGVuZ3RoJTQsMTI4KSxvZT0wO29lPHNlO29lKz00KXt2YXIgY2U9YWVbb2VdLGRlPWFlW29lKzFdLHZlPWFlW29lKzJdLEFlPWFlW29lKzNdOygwIT09Y2V8fGRlPjE2KSYmKytlZSwoMCE9PUFlfHx2ZT4xNikm''@;'; + put 'put ''JisrTiwwPT09Y2UmJjA9PT1kZSYmMD09PXZlJiYwIT09QWUmJkorKywwIT09Y2UmJjA9PT1kZSYmMD09PXZlJiYwPT09QWUmJnErK31lZTxOP1c9InV0Zi0zMmJlIjpOPGVlJiYoVz0idXRmLTMybGUiKSxKPnE/Vz0idXRmLTMyYmUiOko8cSYmKFc9InV0Zi0zMmxlIil9cmV0dXJuIFd9SmUu''@;'; + put 'put ''X3V0ZjMyPUIsSmUudXRmMzJsZT17dHlwZToiX3V0ZjMyIixpc0xFOiEwfSxKZS51dGYzMmJlPXt0eXBlOiJfdXRmMzIiLGlzTEU6ITF9LEplLnVjczRsZT0idXRmMzJsZSIsSmUudWNzNGJlPSJ1dGYzMmJlIixCLnByb3RvdHlwZS5lbmNvZGVyPUUsQi5wcm90b3R5cGUuZGVjb2Rlcj1NZSxF''@;'; + put 'put ''LnByb3RvdHlwZS53cml0ZT1mdW5jdGlvbihhZSl7Zm9yKHZhciBZPW1lLmZyb20oYWUsInVjczIiKSxXPW1lLmFsbG9jKDIqWS5sZW5ndGgpLE49dGhpcy5pc0xFP1cud3JpdGVVSW50MzJMRTpXLndyaXRlVUludDMyQkUsZWU9MCxxPTA7cTxZLmxlbmd0aDtxKz0yKXt2YXIgSj1ZLnJlYWRV''@;'; + put 'put ''SW50MTZMRShxKSxzZT01NTI5Njw9SiYmSjw1NjMyMDtpZih0aGlzLmhpZ2hTdXJyb2dhdGUpe2lmKCFzZSYmNTYzMjA8PUomJko8NTczNDQpe04uY2FsbChXLDY1NTM2Kyh0aGlzLmhpZ2hTdXJyb2dhdGUtNTUyOTY8PDEwfEotNTYzMjApLGVlKSxlZSs9NCx0aGlzLmhpZ2hTdXJyb2dhdGU9''@;'; + put 'put ''MDtjb250aW51ZX1OLmNhbGwoVyx0aGlzLmhpZ2hTdXJyb2dhdGUsZWUpLGVlKz00fXNlP3RoaXMuaGlnaFN1cnJvZ2F0ZT1KOihOLmNhbGwoVyxKLGVlKSxlZSs9NCx0aGlzLmhpZ2hTdXJyb2dhdGU9MCl9cmV0dXJuIGVlPFcubGVuZ3RoJiYoVz1XLnNsaWNlKDAsZWUpKSxXfSxFLnByb3Rv''@;'; + put 'put ''dHlwZS5lbmQ9ZnVuY3Rpb24oKXtpZih0aGlzLmhpZ2hTdXJyb2dhdGUpe3ZhciBhZT1tZS5hbGxvYyg0KTtyZXR1cm4gdGhpcy5pc0xFP2FlLndyaXRlVUludDMyTEUodGhpcy5oaWdoU3Vycm9nYXRlLDApOmFlLndyaXRlVUludDMyQkUodGhpcy5oaWdoU3Vycm9nYXRlLDApLHRoaXMuaGln''@;'; + put 'put ''aFN1cnJvZ2F0ZT0wLGFlfX0sTWUucHJvdG90eXBlLndyaXRlPWZ1bmN0aW9uKGFlKXtpZigwPT09YWUubGVuZ3RoKXJldHVybiIiO3RoaXMub3ZlcmZsb3cmJihhZT1tZS5jb25jYXQoW3RoaXMub3ZlcmZsb3csYWVdKSk7dmFyIFk9YWUubGVuZ3RoLWFlLmxlbmd0aCU0O2FlLmxlbmd0aCE9''@;'; + put 'put ''PVk/KHRoaXMub3ZlcmZsb3c9YWUuc2xpY2UoWSksYWU9YWUuc2xpY2UoMCxZKSk6dGhpcy5vdmVyZmxvdz1udWxsO2Zvcih2YXIgVz1tZS5hbGxvYyhZKSxOPTAsZWU9MDtlZTxZO2VlKz00KXt2YXIgcT10aGlzLmlzTEU/YWUucmVhZFVJbnQzMkxFKGVlKTphZS5yZWFkVUludDMyQkUoZWUp''@;'; + put 'put ''O2lmKHE8NjU1MzYpVy53cml0ZVVJbnQxNkxFKHEsTiksTis9MjtlbHNlIGlmKHE+MTExNDExMSlXLndyaXRlVUludDE2TEUodGhpcy5iYWRDaGFyLE4pLE4rPTI7ZWxzZXt2YXIgc2U9NTYzMjArKDEwMjMmKHEtPTY1NTM2KSk7Vy53cml0ZVVJbnQxNkxFKDU1Mjk2fHE+PjEwLE4pLFcud3Jp''@;'; + put 'put ''dGVVSW50MTZMRShzZSxOKz0yKSxOKz0yfX1yZXR1cm4gVy5zbGljZSgwLE4pLnRvU3RyaW5nKCJ1Y3MyIil9LE1lLnByb3RvdHlwZS5lbmQ9ZnVuY3Rpb24oKXt0aGlzLm92ZXJmbG93PW51bGx9LEplLnV0ZjMyPVUsSmUudWNzND1VLFUucHJvdG90eXBlLmVuY29kZXI9USxVLnByb3RvdHlw''@;'; + put 'put ''ZS5kZWNvZGVyPVosUS5wcm90b3R5cGUud3JpdGU9ZnVuY3Rpb24oYWUpe3JldHVybiB0aGlzLmVuY29kZXIud3JpdGUoYWUpfSxRLnByb3RvdHlwZS5lbmQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lbmNvZGVyLmVuZCgpfSxaLnByb3RvdHlwZS53cml0ZT1mdW5jdGlvbihhZSl7aWYoIXRo''@;'; + put 'put ''aXMuZGVjb2Rlcil7aWYodGhpcy5pbml0aWFsQnl0ZXMucHVzaChhZSksdGhpcy5pbml0aWFsQnl0ZXNMZW4rPWFlLmxlbmd0aCx0aGlzLmluaXRpYWxCeXRlc0xlbjwzMilyZXR1cm4iIjt2YXIgVz1pZShtZS5jb25jYXQodGhpcy5pbml0aWFsQnl0ZXMpLHRoaXMub3B0aW9ucy5kZWZhdWx0''@;'; + put 'put ''RW5jb2RpbmcpO3RoaXMuZGVjb2Rlcj10aGlzLmljb252LmdldERlY29kZXIoVyx0aGlzLm9wdGlvbnMpLHRoaXMuaW5pdGlhbEJ5dGVzLmxlbmd0aD10aGlzLmluaXRpYWxCeXRlc0xlbj0wfXJldHVybiB0aGlzLmRlY29kZXIud3JpdGUoYWUpfSxaLnByb3RvdHlwZS5lbmQ9ZnVuY3Rpb24o''@;'; + put 'put ''KXtpZighdGhpcy5kZWNvZGVyKXt2YXIgYWU9bWUuY29uY2F0KHRoaXMuaW5pdGlhbEJ5dGVzKSxZPWllKGFlLHRoaXMub3B0aW9ucy5kZWZhdWx0RW5jb2RpbmcpO3RoaXMuZGVjb2Rlcj10aGlzLmljb252LmdldERlY29kZXIoWSx0aGlzLm9wdGlvbnMpO3ZhciBXPXRoaXMuZGVjb2Rlci53''@;'; + put 'put ''cml0ZShhZSksTj10aGlzLmRlY29kZXIuZW5kKCk7cmV0dXJuIE4/VytOOld9cmV0dXJuIHRoaXMuZGVjb2Rlci5lbmQoKX19LDI4Nzc4OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCg2MjAzOCkuQnVmZmVyO2Z1bmN0aW9uIEIoc2Usb2Upe3RoaXMuaWNvbnY9b2V9SmUudXRm''@;'; + put 'put ''Nz1CLEplLnVuaWNvZGUxMXV0Zjc9InV0ZjciLEIucHJvdG90eXBlLmVuY29kZXI9TWUsQi5wcm90b3R5cGUuZGVjb2Rlcj1VLEIucHJvdG90eXBlLmJvbUF3YXJlPSEwO3ZhciBFPS9bXkEtWmEtejAtOSdcKFwpLC1cLlwvOlw/IFxuXHJcdF0rL2c7ZnVuY3Rpb24gTWUoc2Usb2Upe3RoaXMu''@;'; + put 'put ''aWNvbnY9b2UuaWNvbnZ9ZnVuY3Rpb24gVShzZSxvZSl7dGhpcy5pY29udj1vZS5pY29udix0aGlzLmluQmFzZTY0PSExLHRoaXMuYmFzZTY0QWNjdW09IiJ9TWUucHJvdG90eXBlLndyaXRlPWZ1bmN0aW9uKHNlKXtyZXR1cm4gbWUuZnJvbShzZS5yZXBsYWNlKEUsZnVuY3Rpb24ob2Upe3Jl''@;'; + put 'put ''dHVybiIrIisoIisiPT09b2U/IiI6dGhpcy5pY29udi5lbmNvZGUob2UsInV0ZjE2LWJlIikudG9TdHJpbmcoImJhc2U2NCIpLnJlcGxhY2UoLz0rJC8sIiIpKSsiLSJ9LmJpbmQodGhpcykpKX0sTWUucHJvdG90eXBlLmVuZD1mdW5jdGlvbigpe307Zm9yKHZhciBRPS9bQS1aYS16MC05XC8r''@;'; + put 'put ''XS8sWj1bXSxpZT0wO2llPDI1NjtpZSsrKVpbaWVdPVEudGVzdChTdHJpbmcuZnJvbUNoYXJDb2RlKGllKSk7dmFyIGFlPSIrIi5jaGFyQ29kZUF0KDApLFk9Ii0iLmNoYXJDb2RlQXQoMCksVz0iJiIuY2hhckNvZGVBdCgwKTtmdW5jdGlvbiBOKHNlLG9lKXt0aGlzLmljb252PW9lfWZ1bmN0''@;'; + put 'put ''aW9uIGVlKHNlLG9lKXt0aGlzLmljb252PW9lLmljb252LHRoaXMuaW5CYXNlNjQ9ITEsdGhpcy5iYXNlNjRBY2N1bT1tZS5hbGxvYyg2KSx0aGlzLmJhc2U2NEFjY3VtSWR4PTB9ZnVuY3Rpb24gcShzZSxvZSl7dGhpcy5pY29udj1vZS5pY29udix0aGlzLmluQmFzZTY0PSExLHRoaXMuYmFz''@;'; + put 'put ''ZTY0QWNjdW09IiJ9VS5wcm90b3R5cGUud3JpdGU9ZnVuY3Rpb24oc2Upe2Zvcih2YXIgb2U9IiIsY2U9MCxkZT10aGlzLmluQmFzZTY0LHZlPXRoaXMuYmFzZTY0QWNjdW0sQWU9MDtBZTxzZS5sZW5ndGg7QWUrKylpZihkZSl7aWYoIVpbc2VbQWVdXSl7aWYoQWU9PWNlJiZzZVtBZV09PVkp''@;'; + put 'put ''b2UrPSIrIjtlbHNle3ZhciBrZT12ZStzZS5zbGljZShjZSxBZSkudG9TdHJpbmcoKTtvZSs9dGhpcy5pY29udi5kZWNvZGUobWUuZnJvbShrZSwiYmFzZTY0IiksInV0ZjE2LWJlIil9c2VbQWVdIT1ZJiZBZS0tLGNlPUFlKzEsZGU9ITEsdmU9IiJ9fWVsc2Ugc2VbQWVdPT1hZSYmKG9lKz10''@;'; + put 'put ''aGlzLmljb252LmRlY29kZShzZS5zbGljZShjZSxBZSksImFzY2lpIiksY2U9QWUrMSxkZT0hMCk7aWYoZGUpe3ZhciBTZT0oa2U9dmUrc2Uuc2xpY2UoY2UpLnRvU3RyaW5nKCkpLmxlbmd0aC1rZS5sZW5ndGglODt2ZT1rZS5zbGljZShTZSksa2U9a2Uuc2xpY2UoMCxTZSksb2UrPXRoaXMu''@;'; + put 'put ''aWNvbnYuZGVjb2RlKG1lLmZyb20oa2UsImJhc2U2NCIpLCJ1dGYxNi1iZSIpfWVsc2Ugb2UrPXRoaXMuaWNvbnYuZGVjb2RlKHNlLnNsaWNlKGNlKSwiYXNjaWkiKTtyZXR1cm4gdGhpcy5pbkJhc2U2ND1kZSx0aGlzLmJhc2U2NEFjY3VtPXZlLG9lfSxVLnByb3RvdHlwZS5lbmQ9ZnVuY3Rp''@;'; + put 'put ''b24oKXt2YXIgc2U9IiI7cmV0dXJuIHRoaXMuaW5CYXNlNjQmJnRoaXMuYmFzZTY0QWNjdW0ubGVuZ3RoPjAmJihzZT10aGlzLmljb252LmRlY29kZShtZS5mcm9tKHRoaXMuYmFzZTY0QWNjdW0sImJhc2U2NCIpLCJ1dGYxNi1iZSIpKSx0aGlzLmluQmFzZTY0PSExLHRoaXMuYmFzZTY0QWNj''@;'; + put 'put ''dW09IiIsc2V9LEplLnV0ZjdpbWFwPU4sTi5wcm90b3R5cGUuZW5jb2Rlcj1lZSxOLnByb3RvdHlwZS5kZWNvZGVyPXEsTi5wcm90b3R5cGUuYm9tQXdhcmU9ITAsZWUucHJvdG90eXBlLndyaXRlPWZ1bmN0aW9uKHNlKXtmb3IodmFyIG9lPXRoaXMuaW5CYXNlNjQsY2U9dGhpcy5iYXNlNjRB''@;'; + put 'put ''Y2N1bSxkZT10aGlzLmJhc2U2NEFjY3VtSWR4LHZlPW1lLmFsbG9jKDUqc2UubGVuZ3RoKzEwKSxBZT0wLGtlPTA7a2U8c2UubGVuZ3RoO2tlKyspe3ZhciBTZT1zZS5jaGFyQ29kZUF0KGtlKTszMjw9U2UmJlNlPD0xMjY/KG9lJiYoZGU+MCYmKEFlKz12ZS53cml0ZShjZS5zbGljZSgwLGRl''@;'; + put 'put ''KS50b1N0cmluZygiYmFzZTY0IikucmVwbGFjZSgvXC8vZywiLCIpLnJlcGxhY2UoLz0rJC8sIiIpLEFlKSxkZT0wKSx2ZVtBZSsrXT1ZLG9lPSExKSxvZXx8KHZlW0FlKytdPVNlLFNlPT09VyYmKHZlW0FlKytdPVkpKSk6KG9lfHwodmVbQWUrK109VyxvZT0hMCksb2UmJihjZVtkZSsrXT1T''@;'; + put 'put ''ZT4+OCxjZVtkZSsrXT0yNTUmU2UsZGU9PWNlLmxlbmd0aCYmKEFlKz12ZS53cml0ZShjZS50b1N0cmluZygiYmFzZTY0IikucmVwbGFjZSgvXC8vZywiLCIpLEFlKSxkZT0wKSkpfXJldHVybiB0aGlzLmluQmFzZTY0PW9lLHRoaXMuYmFzZTY0QWNjdW1JZHg9ZGUsdmUuc2xpY2UoMCxBZSl9''@;'; + put 'put ''LGVlLnByb3RvdHlwZS5lbmQ9ZnVuY3Rpb24oKXt2YXIgc2U9bWUuYWxsb2MoMTApLG9lPTA7cmV0dXJuIHRoaXMuaW5CYXNlNjQmJih0aGlzLmJhc2U2NEFjY3VtSWR4PjAmJihvZSs9c2Uud3JpdGUodGhpcy5iYXNlNjRBY2N1bS5zbGljZSgwLHRoaXMuYmFzZTY0QWNjdW1JZHgpLnRvU3Ry''@;'; + put 'put ''aW5nKCJiYXNlNjQiKS5yZXBsYWNlKC9cLy9nLCIsIikucmVwbGFjZSgvPSskLywiIiksb2UpLHRoaXMuYmFzZTY0QWNjdW1JZHg9MCksc2Vbb2UrK109WSx0aGlzLmluQmFzZTY0PSExKSxzZS5zbGljZSgwLG9lKX07dmFyIEo9Wi5zbGljZSgpO0pbIiwiLmNoYXJDb2RlQXQoMCldPSEwLHEu''@;'; + put 'put ''cHJvdG90eXBlLndyaXRlPWZ1bmN0aW9uKHNlKXtmb3IodmFyIG9lPSIiLGNlPTAsZGU9dGhpcy5pbkJhc2U2NCx2ZT10aGlzLmJhc2U2NEFjY3VtLEFlPTA7QWU8c2UubGVuZ3RoO0FlKyspaWYoZGUpe2lmKCFKW3NlW0FlXV0pe2lmKEFlPT1jZSYmc2VbQWVdPT1ZKW9lKz0iJiI7ZWxzZXt2''@;'; + put 'put ''YXIga2U9dmUrc2Uuc2xpY2UoY2UsQWUpLnRvU3RyaW5nKCkucmVwbGFjZSgvLC9nLCIvIik7b2UrPXRoaXMuaWNvbnYuZGVjb2RlKG1lLmZyb20oa2UsImJhc2U2NCIpLCJ1dGYxNi1iZSIpfXNlW0FlXSE9WSYmQWUtLSxjZT1BZSsxLGRlPSExLHZlPSIifX1lbHNlIHNlW0FlXT09VyYmKG9l''@;'; + put 'put ''Kz10aGlzLmljb252LmRlY29kZShzZS5zbGljZShjZSxBZSksImFzY2lpIiksY2U9QWUrMSxkZT0hMCk7aWYoZGUpe3ZhciBTZT0oa2U9dmUrc2Uuc2xpY2UoY2UpLnRvU3RyaW5nKCkucmVwbGFjZSgvLC9nLCIvIikpLmxlbmd0aC1rZS5sZW5ndGglODt2ZT1rZS5zbGljZShTZSksa2U9a2Uu''@;'; + put 'put ''c2xpY2UoMCxTZSksb2UrPXRoaXMuaWNvbnYuZGVjb2RlKG1lLmZyb20oa2UsImJhc2U2NCIpLCJ1dGYxNi1iZSIpfWVsc2Ugb2UrPXRoaXMuaWNvbnYuZGVjb2RlKHNlLnNsaWNlKGNlKSwiYXNjaWkiKTtyZXR1cm4gdGhpcy5pbkJhc2U2ND1kZSx0aGlzLmJhc2U2NEFjY3VtPXZlLG9lfSxx''@;'; + put 'put ''LnByb3RvdHlwZS5lbmQ9ZnVuY3Rpb24oKXt2YXIgc2U9IiI7cmV0dXJuIHRoaXMuaW5CYXNlNjQmJnRoaXMuYmFzZTY0QWNjdW0ubGVuZ3RoPjAmJihzZT10aGlzLmljb252LmRlY29kZShtZS5mcm9tKHRoaXMuYmFzZTY0QWNjdW0sImJhc2U2NCIpLCJ1dGYxNi1iZSIpKSx0aGlzLmluQmFz''@;'; + put 'put ''ZTY0PSExLHRoaXMuYmFzZTY0QWNjdW09IiIsc2V9fSw0NjA5OTooWGUsSmUpPT57InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG1lKEUsTWUpe3RoaXMuZW5jb2Rlcj1FLHRoaXMuYWRkQk9NPSEwfWZ1bmN0aW9uIEIoRSxNZSl7dGhpcy5kZWNvZGVyPUUsdGhpcy5wYXNzPSExLHRoaXMub3B0aW9u''@;'; + put 'put ''cz1NZXx8e319SmUuUHJlcGVuZEJPTT1tZSxtZS5wcm90b3R5cGUud3JpdGU9ZnVuY3Rpb24oRSl7cmV0dXJuIHRoaXMuYWRkQk9NJiYoRT0iXHVmZWZmIitFLHRoaXMuYWRkQk9NPSExKSx0aGlzLmVuY29kZXIud3JpdGUoRSl9LG1lLnByb3RvdHlwZS5lbmQ9ZnVuY3Rpb24oKXtyZXR1cm4g''@;'; + put 'put ''dGhpcy5lbmNvZGVyLmVuZCgpfSxKZS5TdHJpcEJPTT1CLEIucHJvdG90eXBlLndyaXRlPWZ1bmN0aW9uKEUpe3ZhciBNZT10aGlzLmRlY29kZXIud3JpdGUoRSk7cmV0dXJuIHRoaXMucGFzc3x8IU1lfHwoIlx1ZmVmZiI9PT1NZVswXSYmKE1lPU1lLnNsaWNlKDEpLCJmdW5jdGlvbiI9PXR5''@;'; + put 'put ''cGVvZiB0aGlzLm9wdGlvbnMuc3RyaXBCT00mJnRoaXMub3B0aW9ucy5zdHJpcEJPTSgpKSx0aGlzLnBhc3M9ITApLE1lfSxCLnByb3RvdHlwZS5lbmQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kZWNvZGVyLmVuZCgpfX0sNDE5MjU6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1M''@;'; + put 'put ''KDYyMDM4KS5CdWZmZXIsQj1MKDQ2MDk5KSxFPVhlLmV4cG9ydHM7RS5lbmNvZGluZ3M9bnVsbCxFLmRlZmF1bHRDaGFyVW5pY29kZT0iXHVmZmZkIixFLmRlZmF1bHRDaGFyU2luZ2xlQnl0ZT0iPyIsRS5lbmNvZGU9ZnVuY3Rpb24oWixpZSxhZSl7Wj0iIisoWnx8IiIpO3ZhciBZPUUuZ2V0''@;'; + put 'put ''RW5jb2RlcihpZSxhZSksVz1ZLndyaXRlKFopLE49WS5lbmQoKTtyZXR1cm4gTiYmTi5sZW5ndGg+MD9tZS5jb25jYXQoW1csTl0pOld9LEUuZGVjb2RlPWZ1bmN0aW9uKFosaWUsYWUpeyJzdHJpbmciPT10eXBlb2YgWiYmKEUuc2tpcERlY29kZVdhcm5pbmd8fChjb25zb2xlLmVycm9yKCJJ''@;'; + put 'put ''Y29udi1saXRlIHdhcm5pbmc6IGRlY29kZSgpLWluZyBzdHJpbmdzIGlzIGRlcHJlY2F0ZWQuIFJlZmVyIHRvIGh0dHBzOi8vZ2l0aHViLmNvbS9hc2h0dWNoa2luL2ljb252LWxpdGUvd2lraS9Vc2UtQnVmZmVycy13aGVuLWRlY29kaW5nIiksRS5za2lwRGVjb2RlV2FybmluZz0hMCksWj1t''@;'; + put 'put ''ZS5mcm9tKCIiKyhafHwiIiksImJpbmFyeSIpKTt2YXIgWT1FLmdldERlY29kZXIoaWUsYWUpLFc9WS53cml0ZShaKSxOPVkuZW5kKCk7cmV0dXJuIE4/VytOOld9LEUuZW5jb2RpbmdFeGlzdHM9ZnVuY3Rpb24oWil7dHJ5e3JldHVybiBFLmdldENvZGVjKFopLCEwfWNhdGNoKGllKXtyZXR1''@;'; + put 'put ''cm4hMX19LEUudG9FbmNvZGluZz1FLmVuY29kZSxFLmZyb21FbmNvZGluZz1FLmRlY29kZSxFLl9jb2RlY0RhdGFDYWNoZT17fSxFLmdldENvZGVjPWZ1bmN0aW9uKFope0UuZW5jb2RpbmdzfHwoRS5lbmNvZGluZ3M9TCg3OTcxNCkpO2Zvcih2YXIgaWU9RS5fY2Fub25pY2FsaXplRW5jb2Rp''@;'; + put 'put ''bmcoWiksYWU9e307Oyl7dmFyIFk9RS5fY29kZWNEYXRhQ2FjaGVbaWVdO2lmKFkpcmV0dXJuIFk7dmFyIFc9RS5lbmNvZGluZ3NbaWVdO3N3aXRjaCh0eXBlb2YgVyl7Y2FzZSJzdHJpbmciOmllPVc7YnJlYWs7Y2FzZSJvYmplY3QiOmZvcih2YXIgTiBpbiBXKWFlW05dPVdbTl07YWUuZW5j''@;'; + put 'put ''b2RpbmdOYW1lfHwoYWUuZW5jb2RpbmdOYW1lPWllKSxpZT1XLnR5cGU7YnJlYWs7Y2FzZSJmdW5jdGlvbiI6cmV0dXJuIGFlLmVuY29kaW5nTmFtZXx8KGFlLmVuY29kaW5nTmFtZT1pZSksWT1uZXcgVyhhZSxFKSxFLl9jb2RlY0RhdGFDYWNoZVthZS5lbmNvZGluZ05hbWVdPVksWTtkZWZh''@;'; + put 'put ''dWx0OnRocm93IG5ldyBFcnJvcigiRW5jb2Rpbmcgbm90IHJlY29nbml6ZWQ6ICciK1orIicgKHNlYXJjaGVkIGFzOiAnIitpZSsiJykiKX19fSxFLl9jYW5vbmljYWxpemVFbmNvZGluZz1mdW5jdGlvbihRKXtyZXR1cm4oIiIrUSkudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC86XGR7NH0kfFte''@;'; + put 'put ''MC05YS16XS9nLCIiKX0sRS5nZXRFbmNvZGVyPWZ1bmN0aW9uKFosaWUpe3ZhciBhZT1FLmdldENvZGVjKFopLFk9bmV3IGFlLmVuY29kZXIoaWUsYWUpO3JldHVybiBhZS5ib21Bd2FyZSYmaWUmJmllLmFkZEJPTSYmKFk9bmV3IEIuUHJlcGVuZEJPTShZLGllKSksWX0sRS5nZXREZWNvZGVy''@;'; + put 'put ''PWZ1bmN0aW9uKFosaWUpe3ZhciBhZT1FLmdldENvZGVjKFopLFk9bmV3IGFlLmRlY29kZXIoaWUsYWUpO3JldHVybiBhZS5ib21Bd2FyZSYmIShpZSYmITE9PT1pZS5zdHJpcEJPTSkmJihZPW5ldyBCLlN0cmlwQk9NKFksaWUpKSxZfTt2YXIgTWU9InVuZGVmaW5lZCIhPXR5cGVvZiBwcm9j''@;'; + put 'put ''ZXNzJiZwcm9jZXNzLnZlcnNpb25zJiZwcm9jZXNzLnZlcnNpb25zLm5vZGU7aWYoTWUpe3ZhciBVPU1lLnNwbGl0KCIuIikubWFwKE51bWJlcik7KFVbMF0+MHx8VVsxXT49MTApJiZMKDY5MzMxKShFKSxMKDE5NTI3KShFKX19LDQ4NDYxOihYZSxKZSk9PntKZS5yZWFkPWZ1bmN0aW9uKEws''@;'; + put 'put ''bWUsQixFLE1lKXt2YXIgVSxRLFo9OCpNZS1FLTEsaWU9KDE8PFopLTEsYWU9aWU+PjEsWT0tNyxXPUI/TWUtMTowLE49Qj8tMToxLGVlPUxbbWUrV107Zm9yKFcrPU4sVT1lZSYoMTw8LVkpLTEsZWU+Pj0tWSxZKz1aO1k+MDtVPTI1NipVK0xbbWUrV10sVys9TixZLT04KTtmb3IoUT1VJigx''@;'; + put 'put ''PDwtWSktMSxVPj49LVksWSs9RTtZPjA7UT0yNTYqUStMW21lK1ddLFcrPU4sWS09OCk7aWYoMD09PVUpVT0xLWFlO2Vsc2V7aWYoVT09PWllKXJldHVybiBRP05hTjoxLzAqKGVlPy0xOjEpO1ErPU1hdGgucG93KDIsRSksVS09YWV9cmV0dXJuKGVlPy0xOjEpKlEqTWF0aC5wb3coMixVLUUp''@;'; + put 'put ''fSxKZS53cml0ZT1mdW5jdGlvbihMLG1lLEIsRSxNZSxVKXt2YXIgUSxaLGllLGFlPTgqVS1NZS0xLFk9KDE8PGFlKS0xLFc9WT4+MSxOPTIzPT09TWU/TWF0aC5wb3coMiwtMjQpLU1hdGgucG93KDIsLTc3KTowLGVlPUU/MDpVLTEscT1FPzE6LTEsSj1tZTwwfHwwPT09bWUmJjEvbWU8MD8x''@;'; + put 'put ''OjA7Zm9yKG1lPU1hdGguYWJzKG1lKSxpc05hTihtZSl8fG1lPT09MS8wPyhaPWlzTmFOKG1lKT8xOjAsUT1ZKTooUT1NYXRoLmZsb29yKE1hdGgubG9nKG1lKS9NYXRoLkxOMiksbWUqKGllPU1hdGgucG93KDIsLVEpKTwxJiYoUS0tLGllKj0yKSwobWUrPVErVz49MT9OL2llOk4qTWF0aC5w''@;'; + put 'put ''b3coMiwxLVcpKSppZT49MiYmKFErKyxpZS89MiksUStXPj1ZPyhaPTAsUT1ZKTpRK1c+PTE/KFo9KG1lKmllLTEpKk1hdGgucG93KDIsTWUpLFErPVcpOihaPW1lKk1hdGgucG93KDIsVy0xKSpNYXRoLnBvdygyLE1lKSxRPTApKTtNZT49ODtMW0IrZWVdPTI1NSZaLGVlKz1xLFovPTI1NixN''@;'; + put 'put ''ZS09OCk7Zm9yKFE9UTw8TWV8WixhZSs9TWU7YWU+MDtMW0IrZWVdPTI1NSZRLGVlKz1xLFEvPTI1NixhZS09OCk7TFtCK2VlLXFdfD0xMjgqSn19LDgzODk0OlhlPT57WGUuZXhwb3J0cz0iZnVuY3Rpb24iPT10eXBlb2YgT2JqZWN0LmNyZWF0ZT9mdW5jdGlvbihMLG1lKXttZSYmKEwuc3Vw''@;'; + put 'put ''ZXJfPW1lLEwucHJvdG90eXBlPU9iamVjdC5jcmVhdGUobWUucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6TCxlbnVtZXJhYmxlOiExLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSl9OmZ1bmN0aW9uKEwsbWUpe2lmKG1lKXtMLnN1cGVyXz1tZTt2YXIgQj1mdW5jdGlvbigp''@;'; + put 'put ''e307Qi5wcm90b3R5cGU9bWUucHJvdG90eXBlLEwucHJvdG90eXBlPW5ldyBCLEwucHJvdG90eXBlLmNvbnN0cnVjdG9yPUx9fX0sODA5NTooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoODM4OTQpLEI9TCgzOTY1MCksRT1MKDczNTAyKS5CdWZmZXIsTWU9bmV3IEFycmF5KDE2''@;'; + put 'put ''KTtmdW5jdGlvbiBVKCl7Qi5jYWxsKHRoaXMsNjQpLHRoaXMuX2E9MTczMjU4NDE5Myx0aGlzLl9iPTQwMjMyMzM0MTcsdGhpcy5fYz0yNTYyMzgzMTAyLHRoaXMuX2Q9MjcxNzMzODc4fWZ1bmN0aW9uIFEoVyxOKXtyZXR1cm4gVzw8TnxXPj4+MzItTn1mdW5jdGlvbiBaKFcsTixlZSxxLEos''@;'; + put 'put ''c2Usb2Upe3JldHVybiBRKFcrKE4mZWV8fk4mcSkrSitzZXwwLG9lKStOfDB9ZnVuY3Rpb24gaWUoVyxOLGVlLHEsSixzZSxvZSl7cmV0dXJuIFEoVysoTiZxfGVlJn5xKStKK3NlfDAsb2UpK058MH1mdW5jdGlvbiBhZShXLE4sZWUscSxKLHNlLG9lKXtyZXR1cm4gUShXKyhOXmVlXnEpK0or''@;'; + put 'put ''c2V8MCxvZSkrTnwwfWZ1bmN0aW9uIFkoVyxOLGVlLHEsSixzZSxvZSl7cmV0dXJuIFEoVysoZWVeKE58fnEpKStKK3NlfDAsb2UpK058MH1tZShVLEIpLFUucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24oKXtmb3IodmFyIFc9TWUsTj0wO048MTY7KytOKVdbTl09dGhpcy5fYmxvY2sucmVh''@;'; + put 'put ''ZEludDMyTEUoNCpOKTt2YXIgZWU9dGhpcy5fYSxxPXRoaXMuX2IsSj10aGlzLl9jLHNlPXRoaXMuX2Q7ZWU9WihlZSxxLEosc2UsV1swXSwzNjE0MDkwMzYwLDcpLHNlPVooc2UsZWUscSxKLFdbMV0sMzkwNTQwMjcxMCwxMiksSj1aKEosc2UsZWUscSxXWzJdLDYwNjEwNTgxOSwxNykscT1a''@;'; + put 'put ''KHEsSixzZSxlZSxXWzNdLDMyNTA0NDE5NjYsMjIpLGVlPVooZWUscSxKLHNlLFdbNF0sNDExODU0ODM5OSw3KSxzZT1aKHNlLGVlLHEsSixXWzVdLDEyMDAwODA0MjYsMTIpLEo9WihKLHNlLGVlLHEsV1s2XSwyODIxNzM1OTU1LDE3KSxxPVoocSxKLHNlLGVlLFdbN10sNDI0OTI2MTMxMywy''@;'; + put 'put ''MiksZWU9WihlZSxxLEosc2UsV1s4XSwxNzcwMDM1NDE2LDcpLHNlPVooc2UsZWUscSxKLFdbOV0sMjMzNjU1Mjg3OSwxMiksSj1aKEosc2UsZWUscSxXWzEwXSw0Mjk0OTI1MjMzLDE3KSxxPVoocSxKLHNlLGVlLFdbMTFdLDIzMDQ1NjMxMzQsMjIpLGVlPVooZWUscSxKLHNlLFdbMTJdLDE4''@;'; + put 'put ''MDQ2MDM2ODIsNyksc2U9WihzZSxlZSxxLEosV1sxM10sNDI1NDYyNjE5NSwxMiksSj1aKEosc2UsZWUscSxXWzE0XSwyNzkyOTY1MDA2LDE3KSxlZT1pZShlZSxxPVoocSxKLHNlLGVlLFdbMTVdLDEyMzY1MzUzMjksMjIpLEosc2UsV1sxXSw0MTI5MTcwNzg2LDUpLHNlPWllKHNlLGVlLHEs''@;'; + put 'put ''SixXWzZdLDMyMjU0NjU2NjQsOSksSj1pZShKLHNlLGVlLHEsV1sxMV0sNjQzNzE3NzEzLDE0KSxxPWllKHEsSixzZSxlZSxXWzBdLDM5MjEwNjk5OTQsMjApLGVlPWllKGVlLHEsSixzZSxXWzVdLDM1OTM0MDg2MDUsNSksc2U9aWUoc2UsZWUscSxKLFdbMTBdLDM4MDE2MDgzLDkpLEo9aWUo''@;'; + put 'put ''SixzZSxlZSxxLFdbMTVdLDM2MzQ0ODg5NjEsMTQpLHE9aWUocSxKLHNlLGVlLFdbNF0sMzg4OTQyOTQ0OCwyMCksZWU9aWUoZWUscSxKLHNlLFdbOV0sNTY4NDQ2NDM4LDUpLHNlPWllKHNlLGVlLHEsSixXWzE0XSwzMjc1MTYzNjA2LDkpLEo9aWUoSixzZSxlZSxxLFdbM10sNDEwNzYwMzMz''@;'; + put 'put ''NSwxNCkscT1pZShxLEosc2UsZWUsV1s4XSwxMTYzNTMxNTAxLDIwKSxlZT1pZShlZSxxLEosc2UsV1sxM10sMjg1MDI4NTgyOSw1KSxzZT1pZShzZSxlZSxxLEosV1syXSw0MjQzNTYzNTEyLDkpLEo9aWUoSixzZSxlZSxxLFdbN10sMTczNTMyODQ3MywxNCksZWU9YWUoZWUscT1pZShxLEos''@;'; + put 'put ''c2UsZWUsV1sxMl0sMjM2ODM1OTU2MiwyMCksSixzZSxXWzVdLDQyOTQ1ODg3MzgsNCksc2U9YWUoc2UsZWUscSxKLFdbOF0sMjI3MjM5MjgzMywxMSksSj1hZShKLHNlLGVlLHEsV1sxMV0sMTgzOTAzMDU2MiwxNikscT1hZShxLEosc2UsZWUsV1sxNF0sNDI1OTY1Nzc0MCwyMyksZWU9YWUo''@;'; + put 'put ''ZWUscSxKLHNlLFdbMV0sMjc2Mzk3NTIzNiw0KSxzZT1hZShzZSxlZSxxLEosV1s0XSwxMjcyODkzMzUzLDExKSxKPWFlKEosc2UsZWUscSxXWzddLDQxMzk0Njk2NjQsMTYpLHE9YWUocSxKLHNlLGVlLFdbMTBdLDMyMDAyMzY2NTYsMjMpLGVlPWFlKGVlLHEsSixzZSxXWzEzXSw2ODEyNzkx''@;'; + put 'put ''NzQsNCksc2U9YWUoc2UsZWUscSxKLFdbMF0sMzkzNjQzMDA3NCwxMSksSj1hZShKLHNlLGVlLHEsV1szXSwzNTcyNDQ1MzE3LDE2KSxxPWFlKHEsSixzZSxlZSxXWzZdLDc2MDI5MTg5LDIzKSxlZT1hZShlZSxxLEosc2UsV1s5XSwzNjU0NjAyODA5LDQpLHNlPWFlKHNlLGVlLHEsSixXWzEy''@;'; + put 'put ''XSwzODczMTUxNDYxLDExKSxKPWFlKEosc2UsZWUscSxXWzE1XSw1MzA3NDI1MjAsMTYpLGVlPVkoZWUscT1hZShxLEosc2UsZWUsV1syXSwzMjk5NjI4NjQ1LDIzKSxKLHNlLFdbMF0sNDA5NjMzNjQ1Miw2KSxzZT1ZKHNlLGVlLHEsSixXWzddLDExMjY4OTE0MTUsMTApLEo9WShKLHNlLGVl''@;'; + put 'put ''LHEsV1sxNF0sMjg3ODYxMjM5MSwxNSkscT1ZKHEsSixzZSxlZSxXWzVdLDQyMzc1MzMyNDEsMjEpLGVlPVkoZWUscSxKLHNlLFdbMTJdLDE3MDA0ODU1NzEsNiksc2U9WShzZSxlZSxxLEosV1szXSwyMzk5OTgwNjkwLDEwKSxKPVkoSixzZSxlZSxxLFdbMTBdLDQyOTM5MTU3NzMsMTUpLHE9''@;'; + put 'put ''WShxLEosc2UsZWUsV1sxXSwyMjQwMDQ0NDk3LDIxKSxlZT1ZKGVlLHEsSixzZSxXWzhdLDE4NzMzMTMzNTksNiksc2U9WShzZSxlZSxxLEosV1sxNV0sNDI2NDM1NTU1MiwxMCksSj1ZKEosc2UsZWUscSxXWzZdLDI3MzQ3Njg5MTYsMTUpLHE9WShxLEosc2UsZWUsV1sxM10sMTMwOTE1MTY0''@;'; + put 'put ''OSwyMSksZWU9WShlZSxxLEosc2UsV1s0XSw0MTQ5NDQ0MjI2LDYpLHNlPVkoc2UsZWUscSxKLFdbMTFdLDMxNzQ3NTY5MTcsMTApLEo9WShKLHNlLGVlLHEsV1syXSw3MTg3ODcyNTksMTUpLHE9WShxLEosc2UsZWUsV1s5XSwzOTUxNDgxNzQ1LDIxKSx0aGlzLl9hPXRoaXMuX2ErZWV8MCx0''@;'; + put 'put ''aGlzLl9iPXRoaXMuX2IrcXwwLHRoaXMuX2M9dGhpcy5fYytKfDAsdGhpcy5fZD10aGlzLl9kK3NlfDB9LFUucHJvdG90eXBlLl9kaWdlc3Q9ZnVuY3Rpb24oKXt0aGlzLl9ibG9ja1t0aGlzLl9ibG9ja09mZnNldCsrXT0xMjgsdGhpcy5fYmxvY2tPZmZzZXQ+NTYmJih0aGlzLl9ibG9jay5m''@;'; + put 'put ''aWxsKDAsdGhpcy5fYmxvY2tPZmZzZXQsNjQpLHRoaXMuX3VwZGF0ZSgpLHRoaXMuX2Jsb2NrT2Zmc2V0PTApLHRoaXMuX2Jsb2NrLmZpbGwoMCx0aGlzLl9ibG9ja09mZnNldCw1NiksdGhpcy5fYmxvY2sud3JpdGVVSW50MzJMRSh0aGlzLl9sZW5ndGhbMF0sNTYpLHRoaXMuX2Jsb2NrLndy''@;'; + put 'put ''aXRlVUludDMyTEUodGhpcy5fbGVuZ3RoWzFdLDYwKSx0aGlzLl91cGRhdGUoKTt2YXIgVz1FLmFsbG9jVW5zYWZlKDE2KTtyZXR1cm4gVy53cml0ZUludDMyTEUodGhpcy5fYSwwKSxXLndyaXRlSW50MzJMRSh0aGlzLl9iLDQpLFcud3JpdGVJbnQzMkxFKHRoaXMuX2MsOCksVy53cml0ZUlu''@;'; + put 'put ''dDMyTEUodGhpcy5fZCwxMiksV30sWGUuZXhwb3J0cz1VfSwxNzA3OTooWGUsSmUsTCk9Pnt2YXIgbWU9TCgxMzc4KSxCPUwoMzc5NTApO2Z1bmN0aW9uIEUoTWUpe3RoaXMucmFuZD1NZXx8bmV3IEIuUmFuZH1YZS5leHBvcnRzPUUsRS5jcmVhdGU9ZnVuY3Rpb24oVSl7cmV0dXJuIG5ldyBF''@;'; + put 'put ''KFUpfSxFLnByb3RvdHlwZS5fcmFuZGJlbG93PWZ1bmN0aW9uKFUpe3ZhciBRPVUuYml0TGVuZ3RoKCksWj1NYXRoLmNlaWwoUS84KTtkb3t2YXIgaWU9bmV3IG1lKHRoaXMucmFuZC5nZW5lcmF0ZShaKSl9d2hpbGUoaWUuY21wKFUpPj0wKTtyZXR1cm4gaWV9LEUucHJvdG90eXBlLl9yYW5k''@;'; + put 'put ''cmFuZ2U9ZnVuY3Rpb24oVSxRKXt2YXIgWj1RLnN1YihVKTtyZXR1cm4gVS5hZGQodGhpcy5fcmFuZGJlbG93KFopKX0sRS5wcm90b3R5cGUudGVzdD1mdW5jdGlvbihVLFEsWil7dmFyIGllPVUuYml0TGVuZ3RoKCksYWU9bWUubW9udChVKSxZPW5ldyBtZSgxKS50b1JlZChhZSk7UXx8KFE9''@;'; + put 'put ''TWF0aC5tYXgoMSxpZS80OHwwKSk7Zm9yKHZhciBXPVUuc3VibigxKSxOPTA7IVcudGVzdG4oTik7TisrKTtmb3IodmFyIGVlPVUuc2hybihOKSxxPVcudG9SZWQoYWUpO1E+MDtRLS0pe3ZhciBzZT10aGlzLl9yYW5kcmFuZ2UobmV3IG1lKDIpLFcpO1omJlooc2UpO3ZhciBvZT1zZS50b1Jl''@;'; + put 'put ''ZChhZSkucmVkUG93KGVlKTtpZigwIT09b2UuY21wKFkpJiYwIT09b2UuY21wKHEpKXtmb3IodmFyIGNlPTE7Y2U8TjtjZSsrKXtpZigwPT09KG9lPW9lLnJlZFNxcigpKS5jbXAoWSkpcmV0dXJuITE7aWYoMD09PW9lLmNtcChxKSlicmVha31pZihjZT09PU4pcmV0dXJuITF9fXJldHVybiEw''@;'; + put 'put ''fSxFLnByb3RvdHlwZS5nZXREaXZpc29yPWZ1bmN0aW9uKFUsUSl7dmFyIFo9VS5iaXRMZW5ndGgoKSxpZT1tZS5tb250KFUpLGFlPW5ldyBtZSgxKS50b1JlZChpZSk7UXx8KFE9TWF0aC5tYXgoMSxaLzQ4fDApKTtmb3IodmFyIFk9VS5zdWJuKDEpLFc9MDshWS50ZXN0bihXKTtXKyspO2Zv''@;'; + put 'put ''cih2YXIgTj1VLnNocm4oVyksZWU9WS50b1JlZChpZSk7UT4wO1EtLSl7dmFyIHE9dGhpcy5fcmFuZHJhbmdlKG5ldyBtZSgyKSxZKSxKPVUuZ2NkKHEpO2lmKDAhPT1KLmNtcG4oMSkpcmV0dXJuIEo7dmFyIHNlPXEudG9SZWQoaWUpLnJlZFBvdyhOKTtpZigwIT09c2UuY21wKGFlKSYmMCE9''@;'; + put 'put ''PXNlLmNtcChlZSkpe2Zvcih2YXIgb2U9MTtvZTxXO29lKyspe2lmKDA9PT0oc2U9c2UucmVkU3FyKCkpLmNtcChhZSkpcmV0dXJuIHNlLmZyb21SZWQoKS5zdWJuKDEpLmdjZChVKTtpZigwPT09c2UuY21wKGVlKSlicmVha31pZihvZT09PVcpcmV0dXJuKHNlPXNlLnJlZFNxcigpKS5mcm9t''@;'; + put 'put ''UmVkKCkuc3VibigxKS5nY2QoVSl9fXJldHVybiExfX0sMTM3ODpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUsQil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIEUoaGUsTyl7aWYoIWhlKXRocm93IG5ldyBFcnJvcihPfHwiQXNzZXJ0aW9uIGZhaWxlZCIpfWZ1bmN0aW9uIE1lKGhlLE8p''@;'; + put 'put ''e2hlLnN1cGVyXz1PO3ZhciB6PWZ1bmN0aW9uKCl7fTt6LnByb3RvdHlwZT1PLnByb3RvdHlwZSxoZS5wcm90b3R5cGU9bmV3IHosaGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWhlfWZ1bmN0aW9uIFUoaGUsTyx6KXtpZihVLmlzQk4oaGUpKXJldHVybiBoZTt0aGlzLm5lZ2F0aXZlPTAsdGhp''@;'; + put 'put ''cy53b3Jkcz1udWxsLHRoaXMubGVuZ3RoPTAsdGhpcy5yZWQ9bnVsbCxudWxsIT09aGUmJigoImxlIj09PU98fCJiZSI9PT1PKSYmKHo9TyxPPTEwKSx0aGlzLl9pbml0KGhlfHwwLE98fDEwLHp8fCJiZSIpKX12YXIgUTsib2JqZWN0Ij09dHlwZW9mIG1lP21lLmV4cG9ydHM9VTpCLkJOPVUs''@;'; + put 'put ''VS5CTj1VLFUud29yZFNpemU9MjY7dHJ5e1E9InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cmJnZvaWQgMCE9PXdpbmRvdy5CdWZmZXI/d2luZG93LkJ1ZmZlcjpMKDU2NjE5KS5CdWZmZXJ9Y2F0Y2goaGUpe31mdW5jdGlvbiBaKGhlLE8pe3ZhciB6PWhlLmNoYXJDb2RlQXQoTyk7cmV0dXJu''@;'; + put 'put ''IHo+PTY1JiZ6PD03MD96LTU1Ono+PTk3JiZ6PD0xMDI/ei04Nzp6LTQ4JjE1fWZ1bmN0aW9uIGllKGhlLE8seil7dmFyIG5lPVooaGUseik7cmV0dXJuIHotMT49TyYmKG5lfD1aKGhlLHotMSk8PDQpLG5lfWZ1bmN0aW9uIGFlKGhlLE8seixuZSl7Zm9yKHZhciB0ZT0wLHg9TWF0aC5taW4o''@;'; + put 'put ''aGUubGVuZ3RoLHopLFA9TztQPHg7UCsrKXt2YXIgVj1oZS5jaGFyQ29kZUF0KFApLTQ4O3RlKj1uZSx0ZSs9Vj49NDk/Vi00OSsxMDpWPj0xNz9WLTE3KzEwOlZ9cmV0dXJuIHRlfVUuaXNCTj1mdW5jdGlvbihPKXtyZXR1cm4gTyBpbnN0YW5jZW9mIFV8fG51bGwhPT1PJiYib2JqZWN0Ij09''@;'; + put 'put ''dHlwZW9mIE8mJk8uY29uc3RydWN0b3Iud29yZFNpemU9PT1VLndvcmRTaXplJiZBcnJheS5pc0FycmF5KE8ud29yZHMpfSxVLm1heD1mdW5jdGlvbihPLHope3JldHVybiBPLmNtcCh6KT4wP086en0sVS5taW49ZnVuY3Rpb24oTyx6KXtyZXR1cm4gTy5jbXAoeik8MD9POnp9LFUucHJvdG90''@;'; + put 'put ''eXBlLl9pbml0PWZ1bmN0aW9uKE8seixuZSl7aWYoIm51bWJlciI9PXR5cGVvZiBPKXJldHVybiB0aGlzLl9pbml0TnVtYmVyKE8seixuZSk7aWYoIm9iamVjdCI9PXR5cGVvZiBPKXJldHVybiB0aGlzLl9pbml0QXJyYXkoTyx6LG5lKTsiaGV4Ij09PXomJih6PTE2KSxFKHo9PT0oMHx6KSYm''@;'; + put 'put ''ej49MiYmejw9MzYpO3ZhciB0ZT0wOyItIj09PShPPU8udG9TdHJpbmcoKS5yZXBsYWNlKC9ccysvZywiIikpWzBdJiYodGUrKyx0aGlzLm5lZ2F0aXZlPTEpLHRlPE8ubGVuZ3RoJiYoMTY9PT16P3RoaXMuX3BhcnNlSGV4KE8sdGUsbmUpOih0aGlzLl9wYXJzZUJhc2UoTyx6LHRlKSwibGUi''@;'; + put 'put ''PT09bmUmJnRoaXMuX2luaXRBcnJheSh0aGlzLnRvQXJyYXkoKSx6LG5lKSkpfSxVLnByb3RvdHlwZS5faW5pdE51bWJlcj1mdW5jdGlvbihPLHosbmUpe088MCYmKHRoaXMubmVnYXRpdmU9MSxPPS1PKSxPPDY3MTA4ODY0Pyh0aGlzLndvcmRzPVs2NzEwODg2MyZPXSx0aGlzLmxlbmd0aD0x''@;'; + put 'put ''KTpPPDQ1MDM1OTk2MjczNzA0OTY/KHRoaXMud29yZHM9WzY3MTA4ODYzJk8sTy82NzEwODg2NCY2NzEwODg2M10sdGhpcy5sZW5ndGg9Mik6KEUoTzw5MDA3MTk5MjU0NzQwOTkyKSx0aGlzLndvcmRzPVs2NzEwODg2MyZPLE8vNjcxMDg4NjQmNjcxMDg4NjMsMV0sdGhpcy5sZW5ndGg9Myks''@;'; + put 'put ''ImxlIj09PW5lJiZ0aGlzLl9pbml0QXJyYXkodGhpcy50b0FycmF5KCkseixuZSl9LFUucHJvdG90eXBlLl9pbml0QXJyYXk9ZnVuY3Rpb24oTyx6LG5lKXtpZihFKCJudW1iZXIiPT10eXBlb2YgTy5sZW5ndGgpLE8ubGVuZ3RoPD0wKXJldHVybiB0aGlzLndvcmRzPVswXSx0aGlzLmxlbmd0''@;'; + put 'put ''aD0xLHRoaXM7dGhpcy5sZW5ndGg9TWF0aC5jZWlsKE8ubGVuZ3RoLzMpLHRoaXMud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoKTtmb3IodmFyIHRlPTA7dGU8dGhpcy5sZW5ndGg7dGUrKyl0aGlzLndvcmRzW3RlXT0wO3ZhciB4LFAsVj0wO2lmKCJiZSI9PT1uZSlmb3IodGU9Ty5sZW5n''@;'; + put 'put ''dGgtMSx4PTA7dGU+PTA7dGUtPTMpdGhpcy53b3Jkc1t4XXw9KFA9T1t0ZV18T1t0ZS0xXTw8OHxPW3RlLTJdPDwxNik8PFYmNjcxMDg4NjMsdGhpcy53b3Jkc1t4KzFdPVA+Pj4yNi1WJjY3MTA4ODYzLChWKz0yNCk+PTI2JiYoVi09MjYseCsrKTtlbHNlIGlmKCJsZSI9PT1uZSlmb3IodGU9''@;'; + put 'put ''MCx4PTA7dGU8Ty5sZW5ndGg7dGUrPTMpdGhpcy53b3Jkc1t4XXw9KFA9T1t0ZV18T1t0ZSsxXTw8OHxPW3RlKzJdPDwxNik8PFYmNjcxMDg4NjMsdGhpcy53b3Jkc1t4KzFdPVA+Pj4yNi1WJjY3MTA4ODYzLChWKz0yNCk+PTI2JiYoVi09MjYseCsrKTtyZXR1cm4gdGhpcy5zdHJpcCgpfSxV''@;'; + put 'put ''LnByb3RvdHlwZS5fcGFyc2VIZXg9ZnVuY3Rpb24oTyx6LG5lKXt0aGlzLmxlbmd0aD1NYXRoLmNlaWwoKE8ubGVuZ3RoLXopLzYpLHRoaXMud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoKTtmb3IodmFyIHRlPTA7dGU8dGhpcy5sZW5ndGg7dGUrKyl0aGlzLndvcmRzW3RlXT0wO3ZhciBW''@;'; + put 'put ''LHg9MCxQPTA7aWYoImJlIj09PW5lKWZvcih0ZT1PLmxlbmd0aC0xO3RlPj16O3RlLT0yKVY9aWUoTyx6LHRlKTw8eCx0aGlzLndvcmRzW1BdfD02NzEwODg2MyZWLHg+PTE4Pyh4LT0xOCx0aGlzLndvcmRzW1ArPTFdfD1WPj4+MjYpOngrPTg7ZWxzZSBmb3IodGU9KE8ubGVuZ3RoLXopJTI9''@;'; + put 'put ''PTA/eisxOno7dGU8Ty5sZW5ndGg7dGUrPTIpVj1pZShPLHosdGUpPDx4LHRoaXMud29yZHNbUF18PTY3MTA4ODYzJlYseD49MTg/KHgtPTE4LHRoaXMud29yZHNbUCs9MV18PVY+Pj4yNik6eCs9ODt0aGlzLnN0cmlwKCl9LFUucHJvdG90eXBlLl9wYXJzZUJhc2U9ZnVuY3Rpb24oTyx6LG5l''@;'; + put 'put ''KXt0aGlzLndvcmRzPVswXSx0aGlzLmxlbmd0aD0xO2Zvcih2YXIgdGU9MCx4PTE7eDw9NjcxMDg4NjM7eCo9eil0ZSsrO3RlLS0seD14L3p8MDtmb3IodmFyIFA9Ty5sZW5ndGgtbmUsVj1QJXRlLFQ9TWF0aC5taW4oUCxQLVYpK25lLFM9MCxGPW5lO0Y8VDtGKz10ZSlTPWFlKE8sRixGK3Rl''@;'; + put 'put ''LHopLHRoaXMuaW11bG4oeCksdGhpcy53b3Jkc1swXStTPDY3MTA4ODY0P3RoaXMud29yZHNbMF0rPVM6dGhpcy5faWFkZG4oUyk7aWYoMCE9PVYpe3ZhciB5ZT0xO2ZvcihTPWFlKE8sRixPLmxlbmd0aCx6KSxGPTA7RjxWO0YrKyl5ZSo9ejt0aGlzLmltdWxuKHllKSx0aGlzLndvcmRzWzBd''@;'; + put 'put ''K1M8NjcxMDg4NjQ/dGhpcy53b3Jkc1swXSs9Uzp0aGlzLl9pYWRkbihTKX10aGlzLnN0cmlwKCl9LFUucHJvdG90eXBlLmNvcHk9ZnVuY3Rpb24oTyl7Ty53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgpO2Zvcih2YXIgej0wO3o8dGhpcy5sZW5ndGg7eisrKU8ud29yZHNbel09dGhpcy53''@;'; + put 'put ''b3Jkc1t6XTtPLmxlbmd0aD10aGlzLmxlbmd0aCxPLm5lZ2F0aXZlPXRoaXMubmVnYXRpdmUsTy5yZWQ9dGhpcy5yZWR9LFUucHJvdG90eXBlLmNsb25lPWZ1bmN0aW9uKCl7dmFyIE89bmV3IFUobnVsbCk7cmV0dXJuIHRoaXMuY29weShPKSxPfSxVLnByb3RvdHlwZS5fZXhwYW5kPWZ1bmN0''@;'; + put 'put ''aW9uKE8pe2Zvcig7dGhpcy5sZW5ndGg8TzspdGhpcy53b3Jkc1t0aGlzLmxlbmd0aCsrXT0wO3JldHVybiB0aGlzfSxVLnByb3RvdHlwZS5zdHJpcD1mdW5jdGlvbigpe2Zvcig7dGhpcy5sZW5ndGg+MSYmMD09PXRoaXMud29yZHNbdGhpcy5sZW5ndGgtMV07KXRoaXMubGVuZ3RoLS07cmV0''@;'; + put 'put ''dXJuIHRoaXMuX25vcm1TaWduKCl9LFUucHJvdG90eXBlLl9ub3JtU2lnbj1mdW5jdGlvbigpe3JldHVybiAxPT09dGhpcy5sZW5ndGgmJjA9PT10aGlzLndvcmRzWzBdJiYodGhpcy5uZWdhdGl2ZT0wKSx0aGlzfSxVLnByb3RvdHlwZS5pbnNwZWN0PWZ1bmN0aW9uKCl7cmV0dXJuKHRoaXMu''@;'; + put 'put ''cmVkPyI8Qk4tUjogIjoiPEJOOiAiKSt0aGlzLnRvU3RyaW5nKDE2KSsiPiJ9O3ZhciBZPVsiIiwiMCIsIjAwIiwiMDAwIiwiMDAwMCIsIjAwMDAwIiwiMDAwMDAwIiwiMDAwMDAwMCIsIjAwMDAwMDAwIiwiMDAwMDAwMDAwIiwiMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwIiwiMDAwMDAwMDAw''@;'; + put 'put ''MDAwIiwiMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAw''@;'; + put 'put ''MDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCJdLFc9WzAsMCwyNSwxNiwxMiwxMSwxMCw5LDgsOCw3LDcsNyw3LDYs''@;'; + put 'put ''Niw2LDYsNiw2LDYsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNV0sTj1bMCwwLDMzNTU0NDMyLDQzMDQ2NzIxLDE2Nzc3MjE2LDQ4ODI4MTI1LDYwNDY2MTc2LDQwMzUzNjA3LDE2Nzc3MjE2LDQzMDQ2NzIxLDFlNywxOTQ4NzE3MSwzNTgzMTgwOCw2Mjc0ODUxNyw3NTI5NTM2LDEx''@;'; + put 'put ''MzkwNjI1LDE2Nzc3MjE2LDI0MTM3NTY5LDM0MDEyMjI0LDQ3MDQ1ODgxLDY0ZTYsNDA4NDEwMSw1MTUzNjMyLDY0MzYzNDMsNzk2MjYyNCw5NzY1NjI1LDExODgxMzc2LDE0MzQ4OTA3LDE3MjEwMzY4LDIwNTExMTQ5LDI0M2U1LDI4NjI5MTUxLDMzNTU0NDMyLDM5MTM1MzkzLDQ1NDM1NDI0''@;'; + put 'put ''LDUyNTIxODc1LDYwNDY2MTc2XTtmdW5jdGlvbiBxKGhlLE8seil7ei5uZWdhdGl2ZT1PLm5lZ2F0aXZlXmhlLm5lZ2F0aXZlO3ZhciBuZT1oZS5sZW5ndGgrTy5sZW5ndGh8MDt6Lmxlbmd0aD1uZSxuZT1uZS0xfDA7dmFyIHRlPTB8aGUud29yZHNbMF0seD0wfE8ud29yZHNbMF0sUD10ZSp4''@;'; + put 'put ''LFQ9UC82NzEwODg2NHwwO3oud29yZHNbMF09NjcxMDg4NjMmUDtmb3IodmFyIFM9MTtTPG5lO1MrKyl7Zm9yKHZhciBGPVQ+Pj4yNix5ZT02NzEwODg2MyZULENlPU1hdGgubWluKFMsTy5sZW5ndGgtMSksRGU9TWF0aC5tYXgoMCxTLWhlLmxlbmd0aCsxKTtEZTw9Q2U7RGUrKylGKz0oUD0o''@;'; + put 'put ''dGU9MHxoZS53b3Jkc1tTLURlfDBdKSooeD0wfE8ud29yZHNbRGVdKSt5ZSkvNjcxMDg4NjR8MCx5ZT02NzEwODg2MyZQO3oud29yZHNbU109MHx5ZSxUPTB8Rn1yZXR1cm4gMCE9PVQ/ei53b3Jkc1tTXT0wfFQ6ei5sZW5ndGgtLSx6LnN0cmlwKCl9VS5wcm90b3R5cGUudG9TdHJpbmc9ZnVu''@;'; + put 'put ''Y3Rpb24oTyx6KXt2YXIgbmU7aWYoej0wfHp8fDEsMTY9PT0oTz1PfHwxMCl8fCJoZXgiPT09Tyl7bmU9IiI7Zm9yKHZhciB0ZT0wLHg9MCxQPTA7UDx0aGlzLmxlbmd0aDtQKyspe3ZhciBWPXRoaXMud29yZHNbUF0sVD0oMTY3NzcyMTUmKFY8PHRlfHgpKS50b1N0cmluZygxNik7bmU9MCE9''@;'; + put 'put ''KHg9Vj4+PjI0LXRlJjE2Nzc3MjE1KXx8UCE9PXRoaXMubGVuZ3RoLTE/WVs2LVQubGVuZ3RoXStUK25lOlQrbmUsKHRlKz0yKT49MjYmJih0ZS09MjYsUC0tKX1mb3IoMCE9PXgmJihuZT14LnRvU3RyaW5nKDE2KStuZSk7bmUubGVuZ3RoJXohPTA7KW5lPSIwIituZTtyZXR1cm4gMCE9PXRo''@;'; + put 'put ''aXMubmVnYXRpdmUmJihuZT0iLSIrbmUpLG5lfWlmKE89PT0oMHxPKSYmTz49MiYmTzw9MzYpe3ZhciBTPVdbT10sRj1OW09dO25lPSIiO3ZhciB5ZT10aGlzLmNsb25lKCk7Zm9yKHllLm5lZ2F0aXZlPTA7IXllLmlzWmVybygpOyl7dmFyIENlPXllLm1vZG4oRikudG9TdHJpbmcoTyk7bmU9''@;'; + put 'put ''KHllPXllLmlkaXZuKEYpKS5pc1plcm8oKT9DZStuZTpZW1MtQ2UubGVuZ3RoXStDZStuZX1mb3IodGhpcy5pc1plcm8oKSYmKG5lPSIwIituZSk7bmUubGVuZ3RoJXohPTA7KW5lPSIwIituZTtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmUmJihuZT0iLSIrbmUpLG5lfUUoITEsIkJhc2Ugc2hv''@;'; + put 'put ''dWxkIGJlIGJldHdlZW4gMiBhbmQgMzYiKX0sVS5wcm90b3R5cGUudG9OdW1iZXI9ZnVuY3Rpb24oKXt2YXIgTz10aGlzLndvcmRzWzBdO3JldHVybiAyPT09dGhpcy5sZW5ndGg/Tys9NjcxMDg4NjQqdGhpcy53b3Jkc1sxXTozPT09dGhpcy5sZW5ndGgmJjE9PT10aGlzLndvcmRzWzJdP08r''@;'; + put 'put ''PTQ1MDM1OTk2MjczNzA0OTYrNjcxMDg4NjQqdGhpcy53b3Jkc1sxXTp0aGlzLmxlbmd0aD4yJiZFKCExLCJOdW1iZXIgY2FuIG9ubHkgc2FmZWx5IHN0b3JlIHVwIHRvIDUzIGJpdHMiKSwwIT09dGhpcy5uZWdhdGl2ZT8tTzpPfSxVLnByb3RvdHlwZS50b0pTT049ZnVuY3Rpb24oKXtyZXR1''@;'; + put 'put ''cm4gdGhpcy50b1N0cmluZygxNil9LFUucHJvdG90eXBlLnRvQnVmZmVyPWZ1bmN0aW9uKE8seil7cmV0dXJuIEUodm9pZCAwIT09USksdGhpcy50b0FycmF5TGlrZShRLE8seil9LFUucHJvdG90eXBlLnRvQXJyYXk9ZnVuY3Rpb24oTyx6KXtyZXR1cm4gdGhpcy50b0FycmF5TGlrZShBcnJh''@;'; + put 'put ''eSxPLHopfSxVLnByb3RvdHlwZS50b0FycmF5TGlrZT1mdW5jdGlvbihPLHosbmUpe3ZhciB0ZT10aGlzLmJ5dGVMZW5ndGgoKSx4PW5lfHxNYXRoLm1heCgxLHRlKTtFKHRlPD14LCJieXRlIGFycmF5IGxvbmdlciB0aGFuIGRlc2lyZWQgbGVuZ3RoIiksRSh4PjAsIlJlcXVlc3RlZCBhcnJh''@;'; + put 'put ''eSBsZW5ndGggPD0gMCIpLHRoaXMuc3RyaXAoKTt2YXIgVCxTLFA9ImxlIj09PXosVj1uZXcgTyh4KSxGPXRoaXMuY2xvbmUoKTtpZihQKXtmb3IoUz0wOyFGLmlzWmVybygpO1MrKylUPUYuYW5kbG4oMjU1KSxGLml1c2hybig4KSxWW1NdPVQ7Zm9yKDtTPHg7UysrKVZbU109MH1lbHNle2Zv''@;'; + put 'put ''cihTPTA7Uzx4LXRlO1MrKylWW1NdPTA7Zm9yKFM9MDshRi5pc1plcm8oKTtTKyspVD1GLmFuZGxuKDI1NSksRi5pdXNocm4oOCksVlt4LVMtMV09VH1yZXR1cm4gVn0sVS5wcm90b3R5cGUuX2NvdW50Qml0cz1NYXRoLmNsejMyP2Z1bmN0aW9uKE8pe3JldHVybiAzMi1NYXRoLmNsejMyKE8p''@;'; + put 'put ''fTpmdW5jdGlvbihPKXt2YXIgej1PLG5lPTA7cmV0dXJuIHo+PTQwOTYmJihuZSs9MTMsej4+Pj0xMyksej49NjQmJihuZSs9Nyx6Pj4+PTcpLHo+PTgmJihuZSs9NCx6Pj4+PTQpLHo+PTImJihuZSs9Mix6Pj4+PTIpLG5lK3p9LFUucHJvdG90eXBlLl96ZXJvQml0cz1mdW5jdGlvbihPKXtp''@;'; + put 'put ''ZigwPT09TylyZXR1cm4gMjY7dmFyIHo9TyxuZT0wO3JldHVybiAwPT0oODE5MSZ6KSYmKG5lKz0xMyx6Pj4+PTEzKSwwPT0oMTI3JnopJiYobmUrPTcsej4+Pj03KSwwPT0oMTUmeikmJihuZSs9NCx6Pj4+PTQpLDA9PSgzJnopJiYobmUrPTIsej4+Pj0yKSwwPT0oMSZ6KSYmbmUrKyxuZX0s''@;'; + put 'put ''VS5wcm90b3R5cGUuYml0TGVuZ3RoPWZ1bmN0aW9uKCl7dmFyIHo9dGhpcy5fY291bnRCaXRzKHRoaXMud29yZHNbdGhpcy5sZW5ndGgtMV0pO3JldHVybiAyNioodGhpcy5sZW5ndGgtMSkren0sVS5wcm90b3R5cGUuemVyb0JpdHM9ZnVuY3Rpb24oKXtpZih0aGlzLmlzWmVybygpKXJldHVy''@;'; + put 'put ''biAwO2Zvcih2YXIgTz0wLHo9MDt6PHRoaXMubGVuZ3RoO3orKyl7dmFyIG5lPXRoaXMuX3plcm9CaXRzKHRoaXMud29yZHNbel0pO2lmKE8rPW5lLDI2IT09bmUpYnJlYWt9cmV0dXJuIE99LFUucHJvdG90eXBlLmJ5dGVMZW5ndGg9ZnVuY3Rpb24oKXtyZXR1cm4gTWF0aC5jZWlsKHRoaXMu''@;'; + put 'put ''Yml0TGVuZ3RoKCkvOCl9LFUucHJvdG90eXBlLnRvVHdvcz1mdW5jdGlvbihPKXtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmU/dGhpcy5hYnMoKS5pbm90bihPKS5pYWRkbigxKTp0aGlzLmNsb25lKCl9LFUucHJvdG90eXBlLmZyb21Ud29zPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLnRlc3Ru''@;'; + put 'put ''KE8tMSk/dGhpcy5ub3RuKE8pLmlhZGRuKDEpLmluZWcoKTp0aGlzLmNsb25lKCl9LFUucHJvdG90eXBlLmlzTmVnPWZ1bmN0aW9uKCl7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlfSxVLnByb3RvdHlwZS5uZWc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmluZWcoKX0sVS5wcm90''@;'; + put 'put ''b3R5cGUuaW5lZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmlzWmVybygpfHwodGhpcy5uZWdhdGl2ZV49MSksdGhpc30sVS5wcm90b3R5cGUuaXVvcj1mdW5jdGlvbihPKXtmb3IoO3RoaXMubGVuZ3RoPE8ubGVuZ3RoOyl0aGlzLndvcmRzW3RoaXMubGVuZ3RoKytdPTA7Zm9yKHZhciB6PTA7''@;'; + put 'put ''ejxPLmxlbmd0aDt6KyspdGhpcy53b3Jkc1t6XT10aGlzLndvcmRzW3pdfE8ud29yZHNbel07cmV0dXJuIHRoaXMuc3RyaXAoKX0sVS5wcm90b3R5cGUuaW9yPWZ1bmN0aW9uKE8pe3JldHVybiBFKDA9PSh0aGlzLm5lZ2F0aXZlfE8ubmVnYXRpdmUpKSx0aGlzLml1b3IoTyl9LFUucHJvdG90''@;'; + put 'put ''eXBlLm9yPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmxlbmd0aD5PLmxlbmd0aD90aGlzLmNsb25lKCkuaW9yKE8pOk8uY2xvbmUoKS5pb3IodGhpcyl9LFUucHJvdG90eXBlLnVvcj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5sZW5ndGg+Ty5sZW5ndGg/dGhpcy5jbG9uZSgpLml1b3IoTyk6''@;'; + put 'put ''Ty5jbG9uZSgpLml1b3IodGhpcyl9LFUucHJvdG90eXBlLml1YW5kPWZ1bmN0aW9uKE8pe3ZhciB6O3o9dGhpcy5sZW5ndGg+Ty5sZW5ndGg/Tzp0aGlzO2Zvcih2YXIgbmU9MDtuZTx6Lmxlbmd0aDtuZSsrKXRoaXMud29yZHNbbmVdPXRoaXMud29yZHNbbmVdJk8ud29yZHNbbmVdO3JldHVy''@;'; + put 'put ''biB0aGlzLmxlbmd0aD16Lmxlbmd0aCx0aGlzLnN0cmlwKCl9LFUucHJvdG90eXBlLmlhbmQ9ZnVuY3Rpb24oTyl7cmV0dXJuIEUoMD09KHRoaXMubmVnYXRpdmV8Ty5uZWdhdGl2ZSkpLHRoaXMuaXVhbmQoTyl9LFUucHJvdG90eXBlLmFuZD1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5sZW5n''@;'; + put 'put ''dGg+Ty5sZW5ndGg/dGhpcy5jbG9uZSgpLmlhbmQoTyk6Ty5jbG9uZSgpLmlhbmQodGhpcyl9LFUucHJvdG90eXBlLnVhbmQ9ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMubGVuZ3RoPk8ubGVuZ3RoP3RoaXMuY2xvbmUoKS5pdWFuZChPKTpPLmNsb25lKCkuaXVhbmQodGhpcyl9LFUucHJvdG90''@;'; + put 'put ''eXBlLml1eG9yPWZ1bmN0aW9uKE8pe3ZhciB6LG5lO3RoaXMubGVuZ3RoPk8ubGVuZ3RoPyh6PXRoaXMsbmU9Tyk6KHo9TyxuZT10aGlzKTtmb3IodmFyIHRlPTA7dGU8bmUubGVuZ3RoO3RlKyspdGhpcy53b3Jkc1t0ZV09ei53b3Jkc1t0ZV1ebmUud29yZHNbdGVdO2lmKHRoaXMhPT16KWZv''@;'; + put 'put ''cig7dGU8ei5sZW5ndGg7dGUrKyl0aGlzLndvcmRzW3RlXT16LndvcmRzW3RlXTtyZXR1cm4gdGhpcy5sZW5ndGg9ei5sZW5ndGgsdGhpcy5zdHJpcCgpfSxVLnByb3RvdHlwZS5peG9yPWZ1bmN0aW9uKE8pe3JldHVybiBFKDA9PSh0aGlzLm5lZ2F0aXZlfE8ubmVnYXRpdmUpKSx0aGlzLml1''@;'; + put 'put ''eG9yKE8pfSxVLnByb3RvdHlwZS54b3I9ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMubGVuZ3RoPk8ubGVuZ3RoP3RoaXMuY2xvbmUoKS5peG9yKE8pOk8uY2xvbmUoKS5peG9yKHRoaXMpfSxVLnByb3RvdHlwZS51eG9yPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmxlbmd0aD5PLmxlbmd0aD90''@;'; + put 'put ''aGlzLmNsb25lKCkuaXV4b3IoTyk6Ty5jbG9uZSgpLml1eG9yKHRoaXMpfSxVLnByb3RvdHlwZS5pbm90bj1mdW5jdGlvbihPKXtFKCJudW1iZXIiPT10eXBlb2YgTyYmTz49MCk7dmFyIHo9MHxNYXRoLmNlaWwoTy8yNiksbmU9TyUyNjt0aGlzLl9leHBhbmQoeiksbmU+MCYmei0tO2Zvcih2''@;'; + put 'put ''YXIgdGU9MDt0ZTx6O3RlKyspdGhpcy53b3Jkc1t0ZV09NjcxMDg4NjMmfnRoaXMud29yZHNbdGVdO3JldHVybiBuZT4wJiYodGhpcy53b3Jkc1t0ZV09fnRoaXMud29yZHNbdGVdJjY3MTA4ODYzPj4yNi1uZSksdGhpcy5zdHJpcCgpfSxVLnByb3RvdHlwZS5ub3RuPWZ1bmN0aW9uKE8pe3Jl''@;'; + put 'put ''dHVybiB0aGlzLmNsb25lKCkuaW5vdG4oTyl9LFUucHJvdG90eXBlLnNldG49ZnVuY3Rpb24oTyx6KXtFKCJudW1iZXIiPT10eXBlb2YgTyYmTz49MCk7dmFyIG5lPU8vMjZ8MCx0ZT1PJTI2O3JldHVybiB0aGlzLl9leHBhbmQobmUrMSksdGhpcy53b3Jkc1tuZV09ej90aGlzLndvcmRzW25l''@;'; + put 'put ''XXwxPDx0ZTp0aGlzLndvcmRzW25lXSZ+KDE8PHRlKSx0aGlzLnN0cmlwKCl9LFUucHJvdG90eXBlLmlhZGQ9ZnVuY3Rpb24oTyl7dmFyIHosbmUsdGU7aWYoMCE9PXRoaXMubmVnYXRpdmUmJjA9PT1PLm5lZ2F0aXZlKXJldHVybiB0aGlzLm5lZ2F0aXZlPTAsej10aGlzLmlzdWIoTyksdGhp''@;'; + put 'put ''cy5uZWdhdGl2ZV49MSx0aGlzLl9ub3JtU2lnbigpO2lmKDA9PT10aGlzLm5lZ2F0aXZlJiYwIT09Ty5uZWdhdGl2ZSlyZXR1cm4gTy5uZWdhdGl2ZT0wLHo9dGhpcy5pc3ViKE8pLE8ubmVnYXRpdmU9MSx6Ll9ub3JtU2lnbigpO3RoaXMubGVuZ3RoPk8ubGVuZ3RoPyhuZT10aGlzLHRlPU8p''@;'; + put 'put ''OihuZT1PLHRlPXRoaXMpO2Zvcih2YXIgeD0wLFA9MDtQPHRlLmxlbmd0aDtQKyspdGhpcy53b3Jkc1tQXT02NzEwODg2MyYoej0oMHxuZS53b3Jkc1tQXSkrKDB8dGUud29yZHNbUF0pK3gpLHg9ej4+PjI2O2Zvcig7MCE9PXgmJlA8bmUubGVuZ3RoO1ArKyl0aGlzLndvcmRzW1BdPTY3MTA4''@;'; + put 'put ''ODYzJih6PSgwfG5lLndvcmRzW1BdKSt4KSx4PXo+Pj4yNjtpZih0aGlzLmxlbmd0aD1uZS5sZW5ndGgsMCE9PXgpdGhpcy53b3Jkc1t0aGlzLmxlbmd0aF09eCx0aGlzLmxlbmd0aCsrO2Vsc2UgaWYobmUhPT10aGlzKWZvcig7UDxuZS5sZW5ndGg7UCsrKXRoaXMud29yZHNbUF09bmUud29y''@;'; + put 'put ''ZHNbUF07cmV0dXJuIHRoaXN9LFUucHJvdG90eXBlLmFkZD1mdW5jdGlvbihPKXt2YXIgejtyZXR1cm4gMCE9PU8ubmVnYXRpdmUmJjA9PT10aGlzLm5lZ2F0aXZlPyhPLm5lZ2F0aXZlPTAsej10aGlzLnN1YihPKSxPLm5lZ2F0aXZlXj0xLHopOjA9PT1PLm5lZ2F0aXZlJiYwIT09dGhpcy5u''@;'; + put 'put ''ZWdhdGl2ZT8odGhpcy5uZWdhdGl2ZT0wLHo9Ty5zdWIodGhpcyksdGhpcy5uZWdhdGl2ZT0xLHopOnRoaXMubGVuZ3RoPk8ubGVuZ3RoP3RoaXMuY2xvbmUoKS5pYWRkKE8pOk8uY2xvbmUoKS5pYWRkKHRoaXMpfSxVLnByb3RvdHlwZS5pc3ViPWZ1bmN0aW9uKE8pe2lmKDAhPT1PLm5lZ2F0''@;'; + put 'put ''aXZlKXtPLm5lZ2F0aXZlPTA7dmFyIHo9dGhpcy5pYWRkKE8pO3JldHVybiBPLm5lZ2F0aXZlPTEsei5fbm9ybVNpZ24oKX1pZigwIT09dGhpcy5uZWdhdGl2ZSlyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLHRoaXMuaWFkZChPKSx0aGlzLm5lZ2F0aXZlPTEsdGhpcy5fbm9ybVNpZ24oKTt2YXIg''@;'; + put 'put ''dGUseCxuZT10aGlzLmNtcChPKTtpZigwPT09bmUpcmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlzLmxlbmd0aD0xLHRoaXMud29yZHNbMF09MCx0aGlzO25lPjA/KHRlPXRoaXMseD1PKToodGU9Tyx4PXRoaXMpO2Zvcih2YXIgUD0wLFY9MDtWPHgubGVuZ3RoO1YrKylQPSh6PSgwfHRlLndv''@;'; + put 'put ''cmRzW1ZdKS0oMHx4LndvcmRzW1ZdKStQKT4+MjYsdGhpcy53b3Jkc1tWXT02NzEwODg2MyZ6O2Zvcig7MCE9PVAmJlY8dGUubGVuZ3RoO1YrKylQPSh6PSgwfHRlLndvcmRzW1ZdKStQKT4+MjYsdGhpcy53b3Jkc1tWXT02NzEwODg2MyZ6O2lmKDA9PT1QJiZWPHRlLmxlbmd0aCYmdGUhPT10''@;'; + put 'put ''aGlzKWZvcig7Vjx0ZS5sZW5ndGg7VisrKXRoaXMud29yZHNbVl09dGUud29yZHNbVl07cmV0dXJuIHRoaXMubGVuZ3RoPU1hdGgubWF4KHRoaXMubGVuZ3RoLFYpLHRlIT09dGhpcyYmKHRoaXMubmVnYXRpdmU9MSksdGhpcy5zdHJpcCgpfSxVLnByb3RvdHlwZS5zdWI9ZnVuY3Rpb24oTyl7''@;'; + put 'put ''cmV0dXJuIHRoaXMuY2xvbmUoKS5pc3ViKE8pfTt2YXIgSj1mdW5jdGlvbihPLHosbmUpe3ZhciBULFMsRix0ZT1PLndvcmRzLHg9ei53b3JkcyxQPW5lLndvcmRzLFY9MCx5ZT0wfHRlWzBdLENlPTgxOTEmeWUsRGU9eWU+Pj4xMyxQZT0wfHRlWzFdLFFlPTgxOTEmUGUsJGU9UGU+Pj4xMyxn''@;'; + put 'put ''dD0wfHRlWzJdLHd0PTgxOTEmZ3QsbXQ9Z3Q+Pj4xMyx2dD0wfHRlWzNdLEF0PTgxOTEmdnQsaHQ9dnQ+Pj4xMyxCdD0wfHRlWzRdLG9uPTgxOTEmQnQsX3Q9QnQ+Pj4xMyx0dD0wfHRlWzVdLGV0PTgxOTEmdHQsYXQ9dHQ+Pj4xMyxMdD0wfHRlWzZdLEN0PTgxOTEmTHQsZnQ9THQ+Pj4xMyxI''@;'; + put 'put ''dD0wfHRlWzddLEdlPTgxOTEmSHQsVWU9SHQ+Pj4xMyx5dD0wfHRlWzhdLGp0PTgxOTEmeXQsUXQ9eXQ+Pj4xMyxnbj0wfHRlWzldLGRuPTgxOTEmZ24seW49Z24+Pj4xMyxsbj0wfHhbMF0sTm49ODE5MSZsbixibj1sbj4+PjEzLGVyPTB8eFsxXSxzcj04MTkxJmVyLFhuPWVyPj4+MTMsRnI9''@;'; + put 'put ''MHx4WzJdLHhyPTgxOTEmRnIscXQ9RnI+Pj4xMyxwcj0wfHhbM10sbnI9ODE5MSZwcixBbj1wcj4+PjEzLHFuPTB8eFs0XSxXdD04MTkxJnFuLHBuPXFuPj4+MTMsS249MHx4WzVdLE50PTgxOTEmS24sc249S24+Pj4xMyxVbj0wfHhbNl0sd249ODE5MSZVbix0bj1Vbj4+PjEzLHpuPTB8eFs3''@;'; + put 'put ''XSxUcj04MTkxJnpuLEJuPXpuPj4+MTMsa3I9MHx4WzhdLG1uPTgxOTEma3IsdW49a3I+Pj4xMyxjbj0wfHhbOV0sX249ODE5MSZjbixHdD1jbj4+PjEzO25lLm5lZ2F0aXZlPU8ubmVnYXRpdmVeei5uZWdhdGl2ZSxuZS5sZW5ndGg9MTk7dmFyIGtuPShWKyhUPU1hdGguaW11bChDZSxObikp''@;'; + put 'put ''fDApKygoODE5MSYoUz0oUz1NYXRoLmltdWwoQ2UsYm4pKStNYXRoLmltdWwoRGUsTm4pfDApKTw8MTMpfDA7Vj0oKEY9TWF0aC5pbXVsKERlLGJuKSkrKFM+Pj4xMyl8MCkrKGtuPj4+MjYpfDAsa24mPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKFFlLE5uKSxTPShTPU1hdGguaW11bChRZSxibikp''@;'; + put 'put ''K01hdGguaW11bCgkZSxObil8MCxGPU1hdGguaW11bCgkZSxibik7dmFyIFZuPShWKyhUPVQrTWF0aC5pbXVsKENlLHNyKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoQ2UsWG4pfDApK01hdGguaW11bChEZSxzcil8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bChEZSxYbil8''@;'; + put 'put ''MCkrKFM+Pj4xMyl8MCkrKFZuPj4+MjYpfDAsVm4mPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKHd0LE5uKSxTPShTPU1hdGguaW11bCh3dCxibikpK01hdGguaW11bChtdCxObil8MCxGPU1hdGguaW11bChtdCxibiksVD1UK01hdGguaW11bChRZSxzcil8MCxTPShTPVMrTWF0aC5pbXVsKFFlLFhu''@;'; + put 'put ''KXwwKStNYXRoLmltdWwoJGUsc3IpfDAsRj1GK01hdGguaW11bCgkZSxYbil8MDt2YXIgZW49KFYrKFQ9VCtNYXRoLmltdWwoQ2UseHIpfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bChDZSxxdCl8MCkrTWF0aC5pbXVsKERlLHhyKXwwKSk8PDEzKXwwO1Y9KChGPUYrTWF0aC5pbXVs''@;'; + put 'put ''KERlLHF0KXwwKSsoUz4+PjEzKXwwKSsoZW4+Pj4yNil8MCxlbiY9NjcxMDg4NjMsVD1NYXRoLmltdWwoQXQsTm4pLFM9KFM9TWF0aC5pbXVsKEF0LGJuKSkrTWF0aC5pbXVsKGh0LE5uKXwwLEY9TWF0aC5pbXVsKGh0LGJuKSxUPVQrTWF0aC5pbXVsKHd0LHNyKXwwLFM9KFM9UytNYXRoLmlt''@;'; + put 'put ''dWwod3QsWG4pfDApK01hdGguaW11bChtdCxzcil8MCxGPUYrTWF0aC5pbXVsKG10LFhuKXwwLFQ9VCtNYXRoLmltdWwoUWUseHIpfDAsUz0oUz1TK01hdGguaW11bChRZSxxdCl8MCkrTWF0aC5pbXVsKCRlLHhyKXwwLEY9RitNYXRoLmltdWwoJGUscXQpfDA7dmFyIEluPShWKyhUPVQrTWF0''@;'; + put 'put ''aC5pbXVsKENlLG5yKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoQ2UsQW4pfDApK01hdGguaW11bChEZSxucil8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bChEZSxBbil8MCkrKFM+Pj4xMyl8MCkrKEluPj4+MjYpfDAsSW4mPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKG9uLE5u''@;'; + put 'put ''KSxTPShTPU1hdGguaW11bChvbixibikpK01hdGguaW11bChfdCxObil8MCxGPU1hdGguaW11bChfdCxibiksVD1UK01hdGguaW11bChBdCxzcil8MCxTPShTPVMrTWF0aC5pbXVsKEF0LFhuKXwwKStNYXRoLmltdWwoaHQsc3IpfDAsRj1GK01hdGguaW11bChodCxYbil8MCxUPVQrTWF0aC5p''@;'; + put 'put ''bXVsKHd0LHhyKXwwLFM9KFM9UytNYXRoLmltdWwod3QscXQpfDApK01hdGguaW11bChtdCx4cil8MCxGPUYrTWF0aC5pbXVsKG10LHF0KXwwLFQ9VCtNYXRoLmltdWwoUWUsbnIpfDAsUz0oUz1TK01hdGguaW11bChRZSxBbil8MCkrTWF0aC5pbXVsKCRlLG5yKXwwLEY9RitNYXRoLmltdWwo''@;'; + put 'put ''JGUsQW4pfDA7dmFyIEpuPShWKyhUPVQrTWF0aC5pbXVsKENlLFd0KXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoQ2UscG4pfDApK01hdGguaW11bChEZSxXdCl8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bChEZSxwbil8MCkrKFM+Pj4xMyl8MCkrKEpuPj4+MjYpfDAsSm4m''@;'; + put 'put ''PTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGV0LE5uKSxTPShTPU1hdGguaW11bChldCxibikpK01hdGguaW11bChhdCxObil8MCxGPU1hdGguaW11bChhdCxibiksVD1UK01hdGguaW11bChvbixzcil8MCxTPShTPVMrTWF0aC5pbXVsKG9uLFhuKXwwKStNYXRoLmltdWwoX3Qsc3IpfDAsRj1GK01h''@;'; + put 'put ''dGguaW11bChfdCxYbil8MCxUPVQrTWF0aC5pbXVsKEF0LHhyKXwwLFM9KFM9UytNYXRoLmltdWwoQXQscXQpfDApK01hdGguaW11bChodCx4cil8MCxGPUYrTWF0aC5pbXVsKGh0LHF0KXwwLFQ9VCtNYXRoLmltdWwod3QsbnIpfDAsUz0oUz1TK01hdGguaW11bCh3dCxBbil8MCkrTWF0aC5p''@;'; + put 'put ''bXVsKG10LG5yKXwwLEY9RitNYXRoLmltdWwobXQsQW4pfDAsVD1UK01hdGguaW11bChRZSxXdCl8MCxTPShTPVMrTWF0aC5pbXVsKFFlLHBuKXwwKStNYXRoLmltdWwoJGUsV3QpfDAsRj1GK01hdGguaW11bCgkZSxwbil8MDt2YXIgb3I9KFYrKFQ9VCtNYXRoLmltdWwoQ2UsTnQpfDApfDAp''@;'; + put 'put ''KygoODE5MSYoUz0oUz1TK01hdGguaW11bChDZSxzbil8MCkrTWF0aC5pbXVsKERlLE50KXwwKSk8PDEzKXwwO1Y9KChGPUYrTWF0aC5pbXVsKERlLHNuKXwwKSsoUz4+PjEzKXwwKSsob3I+Pj4yNil8MCxvciY9NjcxMDg4NjMsVD1NYXRoLmltdWwoQ3QsTm4pLFM9KFM9TWF0aC5pbXVsKEN0''@;'; + put 'put ''LGJuKSkrTWF0aC5pbXVsKGZ0LE5uKXwwLEY9TWF0aC5pbXVsKGZ0LGJuKSxUPVQrTWF0aC5pbXVsKGV0LHNyKXwwLFM9KFM9UytNYXRoLmltdWwoZXQsWG4pfDApK01hdGguaW11bChhdCxzcil8MCxGPUYrTWF0aC5pbXVsKGF0LFhuKXwwLFQ9VCtNYXRoLmltdWwob24seHIpfDAsUz0oUz1T''@;'; + put 'put ''K01hdGguaW11bChvbixxdCl8MCkrTWF0aC5pbXVsKF90LHhyKXwwLEY9RitNYXRoLmltdWwoX3QscXQpfDAsVD1UK01hdGguaW11bChBdCxucil8MCxTPShTPVMrTWF0aC5pbXVsKEF0LEFuKXwwKStNYXRoLmltdWwoaHQsbnIpfDAsRj1GK01hdGguaW11bChodCxBbil8MCxUPVQrTWF0aC5p''@;'; + put 'put ''bXVsKHd0LFd0KXwwLFM9KFM9UytNYXRoLmltdWwod3QscG4pfDApK01hdGguaW11bChtdCxXdCl8MCxGPUYrTWF0aC5pbXVsKG10LHBuKXwwLFQ9VCtNYXRoLmltdWwoUWUsTnQpfDAsUz0oUz1TK01hdGguaW11bChRZSxzbil8MCkrTWF0aC5pbXVsKCRlLE50KXwwLEY9RitNYXRoLmltdWwo''@;'; + put 'put ''JGUsc24pfDA7dmFyIGdyPShWKyhUPVQrTWF0aC5pbXVsKENlLHduKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoQ2UsdG4pfDApK01hdGguaW11bChEZSx3bil8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bChEZSx0bil8MCkrKFM+Pj4xMyl8MCkrKGdyPj4+MjYpfDAsZ3Im''@;'; + put 'put ''PTY3MTA4ODYzLFQ9TWF0aC5pbXVsKEdlLE5uKSxTPShTPU1hdGguaW11bChHZSxibikpK01hdGguaW11bChVZSxObil8MCxGPU1hdGguaW11bChVZSxibiksVD1UK01hdGguaW11bChDdCxzcil8MCxTPShTPVMrTWF0aC5pbXVsKEN0LFhuKXwwKStNYXRoLmltdWwoZnQsc3IpfDAsRj1GK01h''@;'; + put 'put ''dGguaW11bChmdCxYbil8MCxUPVQrTWF0aC5pbXVsKGV0LHhyKXwwLFM9KFM9UytNYXRoLmltdWwoZXQscXQpfDApK01hdGguaW11bChhdCx4cil8MCxGPUYrTWF0aC5pbXVsKGF0LHF0KXwwLFQ9VCtNYXRoLmltdWwob24sbnIpfDAsUz0oUz1TK01hdGguaW11bChvbixBbil8MCkrTWF0aC5p''@;'; + put 'put ''bXVsKF90LG5yKXwwLEY9RitNYXRoLmltdWwoX3QsQW4pfDAsVD1UK01hdGguaW11bChBdCxXdCl8MCxTPShTPVMrTWF0aC5pbXVsKEF0LHBuKXwwKStNYXRoLmltdWwoaHQsV3QpfDAsRj1GK01hdGguaW11bChodCxwbil8MCxUPVQrTWF0aC5pbXVsKHd0LE50KXwwLFM9KFM9UytNYXRoLmlt''@;'; + put 'put ''dWwod3Qsc24pfDApK01hdGguaW11bChtdCxOdCl8MCxGPUYrTWF0aC5pbXVsKG10LHNuKXwwLFQ9VCtNYXRoLmltdWwoUWUsd24pfDAsUz0oUz1TK01hdGguaW11bChRZSx0bil8MCkrTWF0aC5pbXVsKCRlLHduKXwwLEY9RitNYXRoLmltdWwoJGUsdG4pfDA7dmFyIEtyPShWKyhUPVQrTWF0''@;'; + put 'put ''aC5pbXVsKENlLFRyKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoQ2UsQm4pfDApK01hdGguaW11bChEZSxUcil8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bChEZSxCbil8MCkrKFM+Pj4xMyl8MCkrKEtyPj4+MjYpfDAsS3ImPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGp0LE5u''@;'; + put 'put ''KSxTPShTPU1hdGguaW11bChqdCxibikpK01hdGguaW11bChRdCxObil8MCxGPU1hdGguaW11bChRdCxibiksVD1UK01hdGguaW11bChHZSxzcil8MCxTPShTPVMrTWF0aC5pbXVsKEdlLFhuKXwwKStNYXRoLmltdWwoVWUsc3IpfDAsRj1GK01hdGguaW11bChVZSxYbil8MCxUPVQrTWF0aC5p''@;'; + put 'put ''bXVsKEN0LHhyKXwwLFM9KFM9UytNYXRoLmltdWwoQ3QscXQpfDApK01hdGguaW11bChmdCx4cil8MCxGPUYrTWF0aC5pbXVsKGZ0LHF0KXwwLFQ9VCtNYXRoLmltdWwoZXQsbnIpfDAsUz0oUz1TK01hdGguaW11bChldCxBbil8MCkrTWF0aC5pbXVsKGF0LG5yKXwwLEY9RitNYXRoLmltdWwo''@;'; + put 'put ''YXQsQW4pfDAsVD1UK01hdGguaW11bChvbixXdCl8MCxTPShTPVMrTWF0aC5pbXVsKG9uLHBuKXwwKStNYXRoLmltdWwoX3QsV3QpfDAsRj1GK01hdGguaW11bChfdCxwbil8MCxUPVQrTWF0aC5pbXVsKEF0LE50KXwwLFM9KFM9UytNYXRoLmltdWwoQXQsc24pfDApK01hdGguaW11bChodCxO''@;'; + put 'put ''dCl8MCxGPUYrTWF0aC5pbXVsKGh0LHNuKXwwLFQ9VCtNYXRoLmltdWwod3Qsd24pfDAsUz0oUz1TK01hdGguaW11bCh3dCx0bil8MCkrTWF0aC5pbXVsKG10LHduKXwwLEY9RitNYXRoLmltdWwobXQsdG4pfDAsVD1UK01hdGguaW11bChRZSxUcil8MCxTPShTPVMrTWF0aC5pbXVsKFFlLEJu''@;'; + put 'put ''KXwwKStNYXRoLmltdWwoJGUsVHIpfDAsRj1GK01hdGguaW11bCgkZSxCbil8MDt2YXIgVnI9KFYrKFQ9VCtNYXRoLmltdWwoQ2UsbW4pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bChDZSx1bil8MCkrTWF0aC5pbXVsKERlLG1uKXwwKSk8PDEzKXwwO1Y9KChGPUYrTWF0aC5pbXVs''@;'; + put 'put ''KERlLHVuKXwwKSsoUz4+PjEzKXwwKSsoVnI+Pj4yNil8MCxWciY9NjcxMDg4NjMsVD1NYXRoLmltdWwoZG4sTm4pLFM9KFM9TWF0aC5pbXVsKGRuLGJuKSkrTWF0aC5pbXVsKHluLE5uKXwwLEY9TWF0aC5pbXVsKHluLGJuKSxUPVQrTWF0aC5pbXVsKGp0LHNyKXwwLFM9KFM9UytNYXRoLmlt''@;'; + put 'put ''dWwoanQsWG4pfDApK01hdGguaW11bChRdCxzcil8MCxGPUYrTWF0aC5pbXVsKFF0LFhuKXwwLFQ9VCtNYXRoLmltdWwoR2UseHIpfDAsUz0oUz1TK01hdGguaW11bChHZSxxdCl8MCkrTWF0aC5pbXVsKFVlLHhyKXwwLEY9RitNYXRoLmltdWwoVWUscXQpfDAsVD1UK01hdGguaW11bChDdCxu''@;'; + put 'put ''cil8MCxTPShTPVMrTWF0aC5pbXVsKEN0LEFuKXwwKStNYXRoLmltdWwoZnQsbnIpfDAsRj1GK01hdGguaW11bChmdCxBbil8MCxUPVQrTWF0aC5pbXVsKGV0LFd0KXwwLFM9KFM9UytNYXRoLmltdWwoZXQscG4pfDApK01hdGguaW11bChhdCxXdCl8MCxGPUYrTWF0aC5pbXVsKGF0LHBuKXww''@;'; + put 'put ''LFQ9VCtNYXRoLmltdWwob24sTnQpfDAsUz0oUz1TK01hdGguaW11bChvbixzbil8MCkrTWF0aC5pbXVsKF90LE50KXwwLEY9RitNYXRoLmltdWwoX3Qsc24pfDAsVD1UK01hdGguaW11bChBdCx3bil8MCxTPShTPVMrTWF0aC5pbXVsKEF0LHRuKXwwKStNYXRoLmltdWwoaHQsd24pfDAsRj1G''@;'; + put 'put ''K01hdGguaW11bChodCx0bil8MCxUPVQrTWF0aC5pbXVsKHd0LFRyKXwwLFM9KFM9UytNYXRoLmltdWwod3QsQm4pfDApK01hdGguaW11bChtdCxUcil8MCxGPUYrTWF0aC5pbXVsKG10LEJuKXwwLFQ9VCtNYXRoLmltdWwoUWUsbW4pfDAsUz0oUz1TK01hdGguaW11bChRZSx1bil8MCkrTWF0''@;'; + put 'put ''aC5pbXVsKCRlLG1uKXwwLEY9RitNYXRoLmltdWwoJGUsdW4pfDA7dmFyIGlpPShWKyhUPVQrTWF0aC5pbXVsKENlLF9uKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoQ2UsR3QpfDApK01hdGguaW11bChEZSxfbil8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bChEZSxHdCl8''@;'; + put 'put ''MCkrKFM+Pj4xMyl8MCkrKGlpPj4+MjYpfDAsaWkmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGRuLHNyKSxTPShTPU1hdGguaW11bChkbixYbikpK01hdGguaW11bCh5bixzcil8MCxGPU1hdGguaW11bCh5bixYbiksVD1UK01hdGguaW11bChqdCx4cil8MCxTPShTPVMrTWF0aC5pbXVsKGp0LHF0''@;'; + put 'put ''KXwwKStNYXRoLmltdWwoUXQseHIpfDAsRj1GK01hdGguaW11bChRdCxxdCl8MCxUPVQrTWF0aC5pbXVsKEdlLG5yKXwwLFM9KFM9UytNYXRoLmltdWwoR2UsQW4pfDApK01hdGguaW11bChVZSxucil8MCxGPUYrTWF0aC5pbXVsKFVlLEFuKXwwLFQ9VCtNYXRoLmltdWwoQ3QsV3QpfDAsUz0o''@;'; + put 'put ''Uz1TK01hdGguaW11bChDdCxwbil8MCkrTWF0aC5pbXVsKGZ0LFd0KXwwLEY9RitNYXRoLmltdWwoZnQscG4pfDAsVD1UK01hdGguaW11bChldCxOdCl8MCxTPShTPVMrTWF0aC5pbXVsKGV0LHNuKXwwKStNYXRoLmltdWwoYXQsTnQpfDAsRj1GK01hdGguaW11bChhdCxzbil8MCxUPVQrTWF0''@;'; + put 'put ''aC5pbXVsKG9uLHduKXwwLFM9KFM9UytNYXRoLmltdWwob24sdG4pfDApK01hdGguaW11bChfdCx3bil8MCxGPUYrTWF0aC5pbXVsKF90LHRuKXwwLFQ9VCtNYXRoLmltdWwoQXQsVHIpfDAsUz0oUz1TK01hdGguaW11bChBdCxCbil8MCkrTWF0aC5pbXVsKGh0LFRyKXwwLEY9RitNYXRoLmlt''@;'; + put 'put ''dWwoaHQsQm4pfDAsVD1UK01hdGguaW11bCh3dCxtbil8MCxTPShTPVMrTWF0aC5pbXVsKHd0LHVuKXwwKStNYXRoLmltdWwobXQsbW4pfDAsRj1GK01hdGguaW11bChtdCx1bil8MDt2YXIgUnI9KFYrKFQ9VCtNYXRoLmltdWwoUWUsX24pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11''@;'; + put 'put ''bChRZSxHdCl8MCkrTWF0aC5pbXVsKCRlLF9uKXwwKSk8PDEzKXwwO1Y9KChGPUYrTWF0aC5pbXVsKCRlLEd0KXwwKSsoUz4+PjEzKXwwKSsoUnI+Pj4yNil8MCxSciY9NjcxMDg4NjMsVD1NYXRoLmltdWwoZG4seHIpLFM9KFM9TWF0aC5pbXVsKGRuLHF0KSkrTWF0aC5pbXVsKHluLHhyKXww''@;'; + put 'put ''LEY9TWF0aC5pbXVsKHluLHF0KSxUPVQrTWF0aC5pbXVsKGp0LG5yKXwwLFM9KFM9UytNYXRoLmltdWwoanQsQW4pfDApK01hdGguaW11bChRdCxucil8MCxGPUYrTWF0aC5pbXVsKFF0LEFuKXwwLFQ9VCtNYXRoLmltdWwoR2UsV3QpfDAsUz0oUz1TK01hdGguaW11bChHZSxwbil8MCkrTWF0''@;'; + put 'put ''aC5pbXVsKFVlLFd0KXwwLEY9RitNYXRoLmltdWwoVWUscG4pfDAsVD1UK01hdGguaW11bChDdCxOdCl8MCxTPShTPVMrTWF0aC5pbXVsKEN0LHNuKXwwKStNYXRoLmltdWwoZnQsTnQpfDAsRj1GK01hdGguaW11bChmdCxzbil8MCxUPVQrTWF0aC5pbXVsKGV0LHduKXwwLFM9KFM9UytNYXRo''@;'; + put 'put ''LmltdWwoZXQsdG4pfDApK01hdGguaW11bChhdCx3bil8MCxGPUYrTWF0aC5pbXVsKGF0LHRuKXwwLFQ9VCtNYXRoLmltdWwob24sVHIpfDAsUz0oUz1TK01hdGguaW11bChvbixCbil8MCkrTWF0aC5pbXVsKF90LFRyKXwwLEY9RitNYXRoLmltdWwoX3QsQm4pfDAsVD1UK01hdGguaW11bChB''@;'; + put 'put ''dCxtbil8MCxTPShTPVMrTWF0aC5pbXVsKEF0LHVuKXwwKStNYXRoLmltdWwoaHQsbW4pfDAsRj1GK01hdGguaW11bChodCx1bil8MDt2YXIgbGk9KFYrKFQ9VCtNYXRoLmltdWwod3QsX24pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bCh3dCxHdCl8MCkrTWF0aC5pbXVsKG10LF9u''@;'; + put 'put ''KXwwKSk8PDEzKXwwO1Y9KChGPUYrTWF0aC5pbXVsKG10LEd0KXwwKSsoUz4+PjEzKXwwKSsobGk+Pj4yNil8MCxsaSY9NjcxMDg4NjMsVD1NYXRoLmltdWwoZG4sbnIpLFM9KFM9TWF0aC5pbXVsKGRuLEFuKSkrTWF0aC5pbXVsKHluLG5yKXwwLEY9TWF0aC5pbXVsKHluLEFuKSxUPVQrTWF0''@;'; + put 'put ''aC5pbXVsKGp0LFd0KXwwLFM9KFM9UytNYXRoLmltdWwoanQscG4pfDApK01hdGguaW11bChRdCxXdCl8MCxGPUYrTWF0aC5pbXVsKFF0LHBuKXwwLFQ9VCtNYXRoLmltdWwoR2UsTnQpfDAsUz0oUz1TK01hdGguaW11bChHZSxzbil8MCkrTWF0aC5pbXVsKFVlLE50KXwwLEY9RitNYXRoLmlt''@;'; + put 'put ''dWwoVWUsc24pfDAsVD1UK01hdGguaW11bChDdCx3bil8MCxTPShTPVMrTWF0aC5pbXVsKEN0LHRuKXwwKStNYXRoLmltdWwoZnQsd24pfDAsRj1GK01hdGguaW11bChmdCx0bil8MCxUPVQrTWF0aC5pbXVsKGV0LFRyKXwwLFM9KFM9UytNYXRoLmltdWwoZXQsQm4pfDApK01hdGguaW11bChh''@;'; + put 'put ''dCxUcil8MCxGPUYrTWF0aC5pbXVsKGF0LEJuKXwwLFQ9VCtNYXRoLmltdWwob24sbW4pfDAsUz0oUz1TK01hdGguaW11bChvbix1bil8MCkrTWF0aC5pbXVsKF90LG1uKXwwLEY9RitNYXRoLmltdWwoX3QsdW4pfDA7dmFyIE1pPShWKyhUPVQrTWF0aC5pbXVsKEF0LF9uKXwwKXwwKSsoKDgx''@;'; + put 'put ''OTEmKFM9KFM9UytNYXRoLmltdWwoQXQsR3QpfDApK01hdGguaW11bChodCxfbil8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bChodCxHdCl8MCkrKFM+Pj4xMyl8MCkrKE1pPj4+MjYpfDAsTWkmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGRuLFd0KSxTPShTPU1hdGguaW11bChkbixwbikp''@;'; + put 'put ''K01hdGguaW11bCh5bixXdCl8MCxGPU1hdGguaW11bCh5bixwbiksVD1UK01hdGguaW11bChqdCxOdCl8MCxTPShTPVMrTWF0aC5pbXVsKGp0LHNuKXwwKStNYXRoLmltdWwoUXQsTnQpfDAsRj1GK01hdGguaW11bChRdCxzbil8MCxUPVQrTWF0aC5pbXVsKEdlLHduKXwwLFM9KFM9UytNYXRo''@;'; + put 'put ''LmltdWwoR2UsdG4pfDApK01hdGguaW11bChVZSx3bil8MCxGPUYrTWF0aC5pbXVsKFVlLHRuKXwwLFQ9VCtNYXRoLmltdWwoQ3QsVHIpfDAsUz0oUz1TK01hdGguaW11bChDdCxCbil8MCkrTWF0aC5pbXVsKGZ0LFRyKXwwLEY9RitNYXRoLmltdWwoZnQsQm4pfDAsVD1UK01hdGguaW11bChl''@;'; + put 'put ''dCxtbil8MCxTPShTPVMrTWF0aC5pbXVsKGV0LHVuKXwwKStNYXRoLmltdWwoYXQsbW4pfDAsRj1GK01hdGguaW11bChhdCx1bil8MDt2YXIgbzA9KFYrKFQ9VCtNYXRoLmltdWwob24sX24pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bChvbixHdCl8MCkrTWF0aC5pbXVsKF90LF9u''@;'; + put 'put ''KXwwKSk8PDEzKXwwO1Y9KChGPUYrTWF0aC5pbXVsKF90LEd0KXwwKSsoUz4+PjEzKXwwKSsobzA+Pj4yNil8MCxvMCY9NjcxMDg4NjMsVD1NYXRoLmltdWwoZG4sTnQpLFM9KFM9TWF0aC5pbXVsKGRuLHNuKSkrTWF0aC5pbXVsKHluLE50KXwwLEY9TWF0aC5pbXVsKHluLHNuKSxUPVQrTWF0''@;'; + put 'put ''aC5pbXVsKGp0LHduKXwwLFM9KFM9UytNYXRoLmltdWwoanQsdG4pfDApK01hdGguaW11bChRdCx3bil8MCxGPUYrTWF0aC5pbXVsKFF0LHRuKXwwLFQ9VCtNYXRoLmltdWwoR2UsVHIpfDAsUz0oUz1TK01hdGguaW11bChHZSxCbil8MCkrTWF0aC5pbXVsKFVlLFRyKXwwLEY9RitNYXRoLmlt''@;'; + put 'put ''dWwoVWUsQm4pfDAsVD1UK01hdGguaW11bChDdCxtbil8MCxTPShTPVMrTWF0aC5pbXVsKEN0LHVuKXwwKStNYXRoLmltdWwoZnQsbW4pfDAsRj1GK01hdGguaW11bChmdCx1bil8MDt2YXIgbjA9KFYrKFQ9VCtNYXRoLmltdWwoZXQsX24pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11''@;'; + put 'put ''bChldCxHdCl8MCkrTWF0aC5pbXVsKGF0LF9uKXwwKSk8PDEzKXwwO1Y9KChGPUYrTWF0aC5pbXVsKGF0LEd0KXwwKSsoUz4+PjEzKXwwKSsobjA+Pj4yNil8MCxuMCY9NjcxMDg4NjMsVD1NYXRoLmltdWwoZG4sd24pLFM9KFM9TWF0aC5pbXVsKGRuLHRuKSkrTWF0aC5pbXVsKHluLHduKXww''@;'; + put 'put ''LEY9TWF0aC5pbXVsKHluLHRuKSxUPVQrTWF0aC5pbXVsKGp0LFRyKXwwLFM9KFM9UytNYXRoLmltdWwoanQsQm4pfDApK01hdGguaW11bChRdCxUcil8MCxGPUYrTWF0aC5pbXVsKFF0LEJuKXwwLFQ9VCtNYXRoLmltdWwoR2UsbW4pfDAsUz0oUz1TK01hdGguaW11bChHZSx1bil8MCkrTWF0''@;'; + put 'put ''aC5pbXVsKFVlLG1uKXwwLEY9RitNYXRoLmltdWwoVWUsdW4pfDA7dmFyIGQwPShWKyhUPVQrTWF0aC5pbXVsKEN0LF9uKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoQ3QsR3QpfDApK01hdGguaW11bChmdCxfbil8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bChmdCxHdCl8''@;'; + put 'put ''MCkrKFM+Pj4xMyl8MCkrKGQwPj4+MjYpfDAsZDAmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGRuLFRyKSxTPShTPU1hdGguaW11bChkbixCbikpK01hdGguaW11bCh5bixUcil8MCxGPU1hdGguaW11bCh5bixCbiksVD1UK01hdGguaW11bChqdCxtbil8MCxTPShTPVMrTWF0aC5pbXVsKGp0LHVu''@;'; + put 'put ''KXwwKStNYXRoLmltdWwoUXQsbW4pfDAsRj1GK01hdGguaW11bChRdCx1bil8MDt2YXIgbTA9KFYrKFQ9VCtNYXRoLmltdWwoR2UsX24pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bChHZSxHdCl8MCkrTWF0aC5pbXVsKFVlLF9uKXwwKSk8PDEzKXwwO1Y9KChGPUYrTWF0aC5pbXVs''@;'; + put 'put ''KFVlLEd0KXwwKSsoUz4+PjEzKXwwKSsobTA+Pj4yNil8MCxtMCY9NjcxMDg4NjMsVD1NYXRoLmltdWwoZG4sbW4pLFM9KFM9TWF0aC5pbXVsKGRuLHVuKSkrTWF0aC5pbXVsKHluLG1uKXwwLEY9TWF0aC5pbXVsKHluLHVuKTt2YXIgRzA9KFYrKFQ9VCtNYXRoLmltdWwoanQsX24pfDApfDAp''@;'; + put 'put ''KygoODE5MSYoUz0oUz1TK01hdGguaW11bChqdCxHdCl8MCkrTWF0aC5pbXVsKFF0LF9uKXwwKSk8PDEzKXwwO1Y9KChGPUYrTWF0aC5pbXVsKFF0LEd0KXwwKSsoUz4+PjEzKXwwKSsoRzA+Pj4yNil8MCxHMCY9NjcxMDg4NjM7dmFyIERpPShWKyhUPU1hdGguaW11bChkbixfbikpfDApKygo''@;'; + put 'put ''ODE5MSYoUz0oUz1NYXRoLmltdWwoZG4sR3QpKStNYXRoLmltdWwoeW4sX24pfDApKTw8MTMpfDA7cmV0dXJuIFY9KChGPU1hdGguaW11bCh5bixHdCkpKyhTPj4+MTMpfDApKyhEaT4+PjI2KXwwLERpJj02NzEwODg2MyxQWzBdPWtuLFBbMV09Vm4sUFsyXT1lbixQWzNdPUluLFBbNF09Sm4s''@;'; + put 'put ''UFs1XT1vcixQWzZdPWdyLFBbN109S3IsUFs4XT1WcixQWzldPWlpLFBbMTBdPVJyLFBbMTFdPWxpLFBbMTJdPU1pLFBbMTNdPW8wLFBbMTRdPW4wLFBbMTVdPWQwLFBbMTZdPW0wLFBbMTddPUcwLFBbMThdPURpLDAhPT1WJiYoUFsxOV09VixuZS5sZW5ndGgrKyksbmV9O2Z1bmN0aW9uIG9l''@;'; + put 'put ''KGhlLE8seil7cmV0dXJuKG5ldyBjZSkubXVscChoZSxPLHopfWZ1bmN0aW9uIGNlKGhlLE8pe3RoaXMueD1oZSx0aGlzLnk9T31NYXRoLmltdWx8fChKPXEpLFUucHJvdG90eXBlLm11bFRvPWZ1bmN0aW9uKE8seil7dmFyIG5lLHRlPXRoaXMubGVuZ3RoK08ubGVuZ3RoO3JldHVybiBuZT0x''@;'; + put 'put ''MD09PXRoaXMubGVuZ3RoJiYxMD09PU8ubGVuZ3RoP0oodGhpcyxPLHopOnRlPDYzP3EodGhpcyxPLHopOnRlPDEwMjQ/ZnVuY3Rpb24gc2UoaGUsTyx6KXt6Lm5lZ2F0aXZlPU8ubmVnYXRpdmVeaGUubmVnYXRpdmUsei5sZW5ndGg9aGUubGVuZ3RoK08ubGVuZ3RoO2Zvcih2YXIgbmU9MCx0''@;'; + put 'put ''ZT0wLHg9MDt4PHoubGVuZ3RoLTE7eCsrKXt2YXIgUD10ZTt0ZT0wO2Zvcih2YXIgVj02NzEwODg2MyZuZSxUPU1hdGgubWluKHgsTy5sZW5ndGgtMSksUz1NYXRoLm1heCgwLHgtaGUubGVuZ3RoKzEpO1M8PVQ7UysrKXt2YXIgRGU9KDB8aGUud29yZHNbeC1TXSkqKDB8Ty53b3Jkc1tTXSks''@;'; + put 'put ''UGU9NjcxMDg4NjMmRGU7Vj02NzEwODg2MyYoUGU9UGUrVnwwKSx0ZSs9KFA9KFA9UCsoRGUvNjcxMDg4NjR8MCl8MCkrKFBlPj4+MjYpfDApPj4+MjYsUCY9NjcxMDg4NjN9ei53b3Jkc1t4XT1WLG5lPVAsUD10ZX1yZXR1cm4gMCE9PW5lP3oud29yZHNbeF09bmU6ei5sZW5ndGgtLSx6LnN0''@;'; + put 'put ''cmlwKCl9KHRoaXMsTyx6KTpvZSh0aGlzLE8seiksbmV9LGNlLnByb3RvdHlwZS5tYWtlUkJUPWZ1bmN0aW9uKE8pe2Zvcih2YXIgej1uZXcgQXJyYXkoTyksbmU9VS5wcm90b3R5cGUuX2NvdW50Qml0cyhPKS0xLHRlPTA7dGU8Tzt0ZSsrKXpbdGVdPXRoaXMucmV2QmluKHRlLG5lLE8pO3Jl''@;'; + put 'put ''dHVybiB6fSxjZS5wcm90b3R5cGUucmV2QmluPWZ1bmN0aW9uKE8seixuZSl7aWYoMD09PU98fE89PT1uZS0xKXJldHVybiBPO2Zvcih2YXIgdGU9MCx4PTA7eDx6O3grKyl0ZXw9KDEmTyk8PHoteC0xLE8+Pj0xO3JldHVybiB0ZX0sY2UucHJvdG90eXBlLnBlcm11dGU9ZnVuY3Rpb24oTyx6''@;'; + put 'put ''LG5lLHRlLHgsUCl7Zm9yKHZhciBWPTA7VjxQO1YrKyl0ZVtWXT16W09bVl1dLHhbVl09bmVbT1tWXV19LGNlLnByb3RvdHlwZS50cmFuc2Zvcm09ZnVuY3Rpb24oTyx6LG5lLHRlLHgsUCl7dGhpcy5wZXJtdXRlKFAsTyx6LG5lLHRlLHgpO2Zvcih2YXIgVj0xO1Y8eDtWPDw9MSlmb3IodmFy''@;'; + put 'put ''IFQ9Vjw8MSxTPU1hdGguY29zKDIqTWF0aC5QSS9UKSxGPU1hdGguc2luKDIqTWF0aC5QSS9UKSx5ZT0wO3llPHg7eWUrPVQpZm9yKHZhciBDZT1TLERlPUYsUGU9MDtQZTxWO1BlKyspe3ZhciBRZT1uZVt5ZStQZV0sJGU9dGVbeWUrUGVdLGd0PW5lW3llK1BlK1ZdLHd0PXRlW3llK1BlK1Zd''@;'; + put 'put ''LG10PUNlKmd0LURlKnd0O3d0PUNlKnd0K0RlKmd0LG5lW3llK1BlXT1RZSsoZ3Q9bXQpLHRlW3llK1BlXT0kZSt3dCxuZVt5ZStQZStWXT1RZS1ndCx0ZVt5ZStQZStWXT0kZS13dCxQZSE9PVQmJihtdD1TKkNlLUYqRGUsRGU9UypEZStGKkNlLENlPW10KX19LGNlLnByb3RvdHlwZS5ndWVz''@;'; + put 'put ''c0xlbjEzYj1mdW5jdGlvbihPLHope3ZhciBuZT0xfE1hdGgubWF4KHosTyksdGU9MSZuZSx4PTA7Zm9yKG5lPW5lLzJ8MDtuZTtuZT4+Pj0xKXgrKztyZXR1cm4gMTw8eCsxK3RlfSxjZS5wcm90b3R5cGUuY29uanVnYXRlPWZ1bmN0aW9uKE8seixuZSl7aWYoIShuZTw9MSkpZm9yKHZhciB0''@;'; + put 'put ''ZT0wO3RlPG5lLzI7dGUrKyl7dmFyIHg9T1t0ZV07T1t0ZV09T1tuZS10ZS0xXSxPW25lLXRlLTFdPXgseD16W3RlXSx6W3RlXT0teltuZS10ZS0xXSx6W25lLXRlLTFdPS14fX0sY2UucHJvdG90eXBlLm5vcm1hbGl6ZTEzYj1mdW5jdGlvbihPLHope2Zvcih2YXIgbmU9MCx0ZT0wO3RlPHov''@;'; + put 'put ''Mjt0ZSsrKXt2YXIgeD04MTkyKk1hdGgucm91bmQoT1syKnRlKzFdL3opK01hdGgucm91bmQoT1syKnRlXS96KStuZTtPW3RlXT02NzEwODg2MyZ4LG5lPXg8NjcxMDg4NjQ/MDp4LzY3MTA4ODY0fDB9cmV0dXJuIE99LGNlLnByb3RvdHlwZS5jb252ZXJ0MTNiPWZ1bmN0aW9uKE8seixuZSx0''@;'; + put 'put ''ZSl7Zm9yKHZhciB4PTAsUD0wO1A8ejtQKyspbmVbMipQXT04MTkxJih4Kz0wfE9bUF0pLG5lWzIqUCsxXT04MTkxJih4Pj4+PTEzKSx4Pj4+PTEzO2ZvcihQPTIqejtQPHRlOysrUCluZVtQXT0wO0UoMD09PXgpLEUoMD09KC04MTkyJngpKX0sY2UucHJvdG90eXBlLnN0dWI9ZnVuY3Rpb24o''@;'; + put 'put ''Tyl7Zm9yKHZhciB6PW5ldyBBcnJheShPKSxuZT0wO25lPE87bmUrKyl6W25lXT0wO3JldHVybiB6fSxjZS5wcm90b3R5cGUubXVscD1mdW5jdGlvbihPLHosbmUpe3ZhciB0ZT0yKnRoaXMuZ3Vlc3NMZW4xM2IoTy5sZW5ndGgsei5sZW5ndGgpLHg9dGhpcy5tYWtlUkJUKHRlKSxQPXRoaXMu''@;'; + put 'put ''c3R1Yih0ZSksVj1uZXcgQXJyYXkodGUpLFQ9bmV3IEFycmF5KHRlKSxTPW5ldyBBcnJheSh0ZSksRj1uZXcgQXJyYXkodGUpLHllPW5ldyBBcnJheSh0ZSksQ2U9bmV3IEFycmF5KHRlKSxEZT1uZS53b3JkcztEZS5sZW5ndGg9dGUsdGhpcy5jb252ZXJ0MTNiKE8ud29yZHMsTy5sZW5ndGgs''@;'; + put 'put ''Vix0ZSksdGhpcy5jb252ZXJ0MTNiKHoud29yZHMsei5sZW5ndGgsRix0ZSksdGhpcy50cmFuc2Zvcm0oVixQLFQsUyx0ZSx4KSx0aGlzLnRyYW5zZm9ybShGLFAseWUsQ2UsdGUseCk7Zm9yKHZhciBQZT0wO1BlPHRlO1BlKyspe3ZhciBRZT1UW1BlXSp5ZVtQZV0tU1tQZV0qQ2VbUGVdO1Nb''@;'; + put 'put ''UGVdPVRbUGVdKkNlW1BlXStTW1BlXSp5ZVtQZV0sVFtQZV09UWV9cmV0dXJuIHRoaXMuY29uanVnYXRlKFQsUyx0ZSksdGhpcy50cmFuc2Zvcm0oVCxTLERlLFAsdGUseCksdGhpcy5jb25qdWdhdGUoRGUsUCx0ZSksdGhpcy5ub3JtYWxpemUxM2IoRGUsdGUpLG5lLm5lZ2F0aXZlPU8ubmVn''@;'; + put 'put ''YXRpdmVeei5uZWdhdGl2ZSxuZS5sZW5ndGg9Ty5sZW5ndGgrei5sZW5ndGgsbmUuc3RyaXAoKX0sVS5wcm90b3R5cGUubXVsPWZ1bmN0aW9uKE8pe3ZhciB6PW5ldyBVKG51bGwpO3JldHVybiB6LndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCtPLmxlbmd0aCksdGhpcy5tdWxUbyhPLHop''@;'; + put 'put ''fSxVLnByb3RvdHlwZS5tdWxmPWZ1bmN0aW9uKE8pe3ZhciB6PW5ldyBVKG51bGwpO3JldHVybiB6LndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCtPLmxlbmd0aCksb2UodGhpcyxPLHopfSxVLnByb3RvdHlwZS5pbXVsPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmNsb25lKCkubXVsVG8o''@;'; + put 'put ''Tyx0aGlzKX0sVS5wcm90b3R5cGUuaW11bG49ZnVuY3Rpb24oTyl7RSgibnVtYmVyIj09dHlwZW9mIE8pLEUoTzw2NzEwODg2NCk7Zm9yKHZhciB6PTAsbmU9MDtuZTx0aGlzLmxlbmd0aDtuZSsrKXt2YXIgdGU9KDB8dGhpcy53b3Jkc1tuZV0pKk8seD0oNjcxMDg4NjMmdGUpKyg2NzEwODg2''@;'; + put 'put ''MyZ6KTt6Pj49MjYseis9dGUvNjcxMDg4NjR8MCx6Kz14Pj4+MjYsdGhpcy53b3Jkc1tuZV09NjcxMDg4NjMmeH1yZXR1cm4gMCE9PXomJih0aGlzLndvcmRzW25lXT16LHRoaXMubGVuZ3RoKyspLHRoaXN9LFUucHJvdG90eXBlLm11bG49ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuY2xvbmUo''@;'; + put 'put ''KS5pbXVsbihPKX0sVS5wcm90b3R5cGUuc3FyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXVsKHRoaXMpfSxVLnByb3RvdHlwZS5pc3FyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW11bCh0aGlzLmNsb25lKCkpfSxVLnByb3RvdHlwZS5wb3c9ZnVuY3Rpb24oTyl7dmFyIHo9ZnVuY3Rpb24g''@;'; + put 'put ''ZWUoaGUpe2Zvcih2YXIgTz1uZXcgQXJyYXkoaGUuYml0TGVuZ3RoKCkpLHo9MDt6PE8ubGVuZ3RoO3orKyl7dmFyIHRlPXolMjY7T1t6XT0oaGUud29yZHNbei8yNnwwXSYxPDx0ZSk+Pj50ZX1yZXR1cm4gT30oTyk7aWYoMD09PXoubGVuZ3RoKXJldHVybiBuZXcgVSgxKTtmb3IodmFyIG5l''@;'; + put 'put ''PXRoaXMsdGU9MDt0ZTx6Lmxlbmd0aCYmMD09PXpbdGVdO3RlKyssbmU9bmUuc3FyKCkpO2lmKCsrdGU8ei5sZW5ndGgpZm9yKHZhciB4PW5lLnNxcigpO3RlPHoubGVuZ3RoO3RlKysseD14LnNxcigpKTAhPT16W3RlXSYmKG5lPW5lLm11bCh4KSk7cmV0dXJuIG5lfSxVLnByb3RvdHlwZS5p''@;'; + put 'put ''dXNobG49ZnVuY3Rpb24oTyl7RSgibnVtYmVyIj09dHlwZW9mIE8mJk8+PTApO3ZhciB4LHo9TyUyNixuZT0oTy16KS8yNix0ZT02NzEwODg2Mz4+PjI2LXo8PDI2LXo7aWYoMCE9PXope3ZhciBQPTA7Zm9yKHg9MDt4PHRoaXMubGVuZ3RoO3grKyl7dmFyIFY9dGhpcy53b3Jkc1t4XSZ0ZTt0''@;'; + put 'put ''aGlzLndvcmRzW3hdPSgwfHRoaXMud29yZHNbeF0pLVY8PHp8UCxQPVY+Pj4yNi16fVAmJih0aGlzLndvcmRzW3hdPVAsdGhpcy5sZW5ndGgrKyl9aWYoMCE9PW5lKXtmb3IoeD10aGlzLmxlbmd0aC0xO3g+PTA7eC0tKXRoaXMud29yZHNbeCtuZV09dGhpcy53b3Jkc1t4XTtmb3IoeD0wO3g8''@;'; + put 'put ''bmU7eCsrKXRoaXMud29yZHNbeF09MDt0aGlzLmxlbmd0aCs9bmV9cmV0dXJuIHRoaXMuc3RyaXAoKX0sVS5wcm90b3R5cGUuaXNobG49ZnVuY3Rpb24oTyl7cmV0dXJuIEUoMD09PXRoaXMubmVnYXRpdmUpLHRoaXMuaXVzaGxuKE8pfSxVLnByb3RvdHlwZS5pdXNocm49ZnVuY3Rpb24oTyx6''@;'; + put 'put ''LG5lKXt2YXIgdGU7RSgibnVtYmVyIj09dHlwZW9mIE8mJk8+PTApLHRlPXo/KHoteiUyNikvMjY6MDt2YXIgeD1PJTI2LFA9TWF0aC5taW4oKE8teCkvMjYsdGhpcy5sZW5ndGgpLFY9NjcxMDg4NjNeNjcxMDg4NjM+Pj54PDx4LFQ9bmU7aWYodGUtPVAsdGU9TWF0aC5tYXgoMCx0ZSksVCl7''@;'; + put 'put ''Zm9yKHZhciBTPTA7UzxQO1MrKylULndvcmRzW1NdPXRoaXMud29yZHNbU107VC5sZW5ndGg9UH1pZigwIT09UClpZih0aGlzLmxlbmd0aD5QKWZvcih0aGlzLmxlbmd0aC09UCxTPTA7Uzx0aGlzLmxlbmd0aDtTKyspdGhpcy53b3Jkc1tTXT10aGlzLndvcmRzW1MrUF07ZWxzZSB0aGlzLndv''@;'; + put 'put ''cmRzWzBdPTAsdGhpcy5sZW5ndGg9MTt2YXIgRj0wO2ZvcihTPXRoaXMubGVuZ3RoLTE7Uz49MCYmKDAhPT1GfHxTPj10ZSk7Uy0tKXt2YXIgeWU9MHx0aGlzLndvcmRzW1NdO3RoaXMud29yZHNbU109Rjw8MjYteHx5ZT4+PngsRj15ZSZWfXJldHVybiBUJiYwIT09RiYmKFQud29yZHNbVC5s''@;'; + put 'put ''ZW5ndGgrK109RiksMD09PXRoaXMubGVuZ3RoJiYodGhpcy53b3Jkc1swXT0wLHRoaXMubGVuZ3RoPTEpLHRoaXMuc3RyaXAoKX0sVS5wcm90b3R5cGUuaXNocm49ZnVuY3Rpb24oTyx6LG5lKXtyZXR1cm4gRSgwPT09dGhpcy5uZWdhdGl2ZSksdGhpcy5pdXNocm4oTyx6LG5lKX0sVS5wcm90''@;'; + put 'put ''b3R5cGUuc2hsbj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlzaGxuKE8pfSxVLnByb3RvdHlwZS51c2hsbj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5jbG9uZSgpLml1c2hsbihPKX0sVS5wcm90b3R5cGUuc2hybj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlz''@;'; + put 'put ''aHJuKE8pfSxVLnByb3RvdHlwZS51c2hybj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5jbG9uZSgpLml1c2hybihPKX0sVS5wcm90b3R5cGUudGVzdG49ZnVuY3Rpb24oTyl7RSgibnVtYmVyIj09dHlwZW9mIE8mJk8+PTApO3ZhciB6PU8lMjYsbmU9KE8teikvMjY7cmV0dXJuISh0aGlzLmxl''@;'; + put 'put ''bmd0aDw9bmV8fCEodGhpcy53b3Jkc1tuZV0mMTw8eikpfSxVLnByb3RvdHlwZS5pbWFza249ZnVuY3Rpb24oTyl7RSgibnVtYmVyIj09dHlwZW9mIE8mJk8+PTApO3ZhciB6PU8lMjYsbmU9KE8teikvMjY7cmV0dXJuIEUoMD09PXRoaXMubmVnYXRpdmUsImltYXNrbiB3b3JrcyBvbmx5IHdp''@;'; + put 'put ''dGggcG9zaXRpdmUgbnVtYmVycyIpLHRoaXMubGVuZ3RoPD1uZT90aGlzOigwIT09eiYmbmUrKyx0aGlzLmxlbmd0aD1NYXRoLm1pbihuZSx0aGlzLmxlbmd0aCksMCE9PXomJih0aGlzLndvcmRzW3RoaXMubGVuZ3RoLTFdJj02NzEwODg2M142NzEwODg2Mz4+Pno8PHopLHRoaXMuc3RyaXAo''@;'; + put 'put ''KSl9LFUucHJvdG90eXBlLm1hc2tuPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmNsb25lKCkuaW1hc2tuKE8pfSxVLnByb3RvdHlwZS5pYWRkbj1mdW5jdGlvbihPKXtyZXR1cm4gRSgibnVtYmVyIj09dHlwZW9mIE8pLEUoTzw2NzEwODg2NCksTzwwP3RoaXMuaXN1Ym4oLU8pOjAhPT10aGlz''@;'; + put 'put ''Lm5lZ2F0aXZlPzE9PT10aGlzLmxlbmd0aCYmKDB8dGhpcy53b3Jkc1swXSk8Tz8odGhpcy53b3Jkc1swXT1PLSgwfHRoaXMud29yZHNbMF0pLHRoaXMubmVnYXRpdmU9MCx0aGlzKToodGhpcy5uZWdhdGl2ZT0wLHRoaXMuaXN1Ym4oTyksdGhpcy5uZWdhdGl2ZT0xLHRoaXMpOnRoaXMuX2lh''@;'; + put 'put ''ZGRuKE8pfSxVLnByb3RvdHlwZS5faWFkZG49ZnVuY3Rpb24oTyl7dGhpcy53b3Jkc1swXSs9Tztmb3IodmFyIHo9MDt6PHRoaXMubGVuZ3RoJiZ0aGlzLndvcmRzW3pdPj02NzEwODg2NDt6KyspdGhpcy53b3Jkc1t6XS09NjcxMDg4NjQsej09PXRoaXMubGVuZ3RoLTE/dGhpcy53b3Jkc1t6''@;'; + put 'put ''KzFdPTE6dGhpcy53b3Jkc1t6KzFdKys7cmV0dXJuIHRoaXMubGVuZ3RoPU1hdGgubWF4KHRoaXMubGVuZ3RoLHorMSksdGhpc30sVS5wcm90b3R5cGUuaXN1Ym49ZnVuY3Rpb24oTyl7aWYoRSgibnVtYmVyIj09dHlwZW9mIE8pLEUoTzw2NzEwODg2NCksTzwwKXJldHVybiB0aGlzLmlhZGRu''@;'; + put 'put ''KC1PKTtpZigwIT09dGhpcy5uZWdhdGl2ZSlyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLHRoaXMuaWFkZG4oTyksdGhpcy5uZWdhdGl2ZT0xLHRoaXM7aWYodGhpcy53b3Jkc1swXS09TywxPT09dGhpcy5sZW5ndGgmJnRoaXMud29yZHNbMF08MCl0aGlzLndvcmRzWzBdPS10aGlzLndvcmRzWzBd''@;'; + put 'put ''LHRoaXMubmVnYXRpdmU9MTtlbHNlIGZvcih2YXIgej0wO3o8dGhpcy5sZW5ndGgmJnRoaXMud29yZHNbel08MDt6KyspdGhpcy53b3Jkc1t6XSs9NjcxMDg4NjQsdGhpcy53b3Jkc1t6KzFdLT0xO3JldHVybiB0aGlzLnN0cmlwKCl9LFUucHJvdG90eXBlLmFkZG49ZnVuY3Rpb24oTyl7cmV0''@;'; + put 'put ''dXJuIHRoaXMuY2xvbmUoKS5pYWRkbihPKX0sVS5wcm90b3R5cGUuc3Vibj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlzdWJuKE8pfSxVLnByb3RvdHlwZS5pYWJzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlzfSxVLnByb3RvdHlwZS5hYnM9ZnVuY3Rp''@;'; + put 'put ''b24oKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlhYnMoKX0sVS5wcm90b3R5cGUuX2lzaGxuc3VibXVsPWZ1bmN0aW9uKE8seixuZSl7dmFyIHg7dGhpcy5fZXhwYW5kKE8ubGVuZ3RoK25lKTt2YXIgUCxWPTA7Zm9yKHg9MDt4PE8ubGVuZ3RoO3grKyl7UD0oMHx0aGlzLndvcmRzW3grbmVdKStW''@;'; + put 'put ''O3ZhciBUPSgwfE8ud29yZHNbeF0pKno7Vj0oKFAtPTY3MTA4ODYzJlQpPj4yNiktKFQvNjcxMDg4NjR8MCksdGhpcy53b3Jkc1t4K25lXT02NzEwODg2MyZQfWZvcig7eDx0aGlzLmxlbmd0aC1uZTt4KyspVj0oUD0oMHx0aGlzLndvcmRzW3grbmVdKStWKT4+MjYsdGhpcy53b3Jkc1t4K25l''@;'; + put 'put ''XT02NzEwODg2MyZQO2lmKDA9PT1WKXJldHVybiB0aGlzLnN0cmlwKCk7Zm9yKEUoLTE9PT1WKSxWPTAseD0wO3g8dGhpcy5sZW5ndGg7eCsrKVY9KFA9LSgwfHRoaXMud29yZHNbeF0pK1YpPj4yNix0aGlzLndvcmRzW3hdPTY3MTA4ODYzJlA7cmV0dXJuIHRoaXMubmVnYXRpdmU9MSx0aGlz''@;'; + put 'put ''LnN0cmlwKCl9LFUucHJvdG90eXBlLl93b3JkRGl2PWZ1bmN0aW9uKE8seil7dmFyIG5lLHRlPXRoaXMuY2xvbmUoKSx4PU8sUD0wfHgud29yZHNbeC5sZW5ndGgtMV07MCE9KG5lPTI2LXRoaXMuX2NvdW50Qml0cyhQKSkmJih4PXgudXNobG4obmUpLHRlLml1c2hsbihuZSksUD0wfHgud29y''@;'; + put 'put ''ZHNbeC5sZW5ndGgtMV0pO3ZhciBTLFQ9dGUubGVuZ3RoLXgubGVuZ3RoO2lmKCJtb2QiIT09eil7KFM9bmV3IFUobnVsbCkpLmxlbmd0aD1UKzEsUy53b3Jkcz1uZXcgQXJyYXkoUy5sZW5ndGgpO2Zvcih2YXIgRj0wO0Y8Uy5sZW5ndGg7RisrKVMud29yZHNbRl09MH12YXIgeWU9dGUuY2xv''@;'; + put 'put ''bmUoKS5faXNobG5zdWJtdWwoeCwxLFQpOzA9PT15ZS5uZWdhdGl2ZSYmKHRlPXllLFMmJihTLndvcmRzW1RdPTEpKTtmb3IodmFyIENlPVQtMTtDZT49MDtDZS0tKXt2YXIgRGU9NjcxMDg4NjQqKDB8dGUud29yZHNbeC5sZW5ndGgrQ2VdKSsoMHx0ZS53b3Jkc1t4Lmxlbmd0aCtDZS0xXSk7''@;'; + put 'put ''Zm9yKERlPU1hdGgubWluKERlL1B8MCw2NzEwODg2MyksdGUuX2lzaGxuc3VibXVsKHgsRGUsQ2UpOzAhPT10ZS5uZWdhdGl2ZTspRGUtLSx0ZS5uZWdhdGl2ZT0wLHRlLl9pc2hsbnN1Ym11bCh4LDEsQ2UpLHRlLmlzWmVybygpfHwodGUubmVnYXRpdmVePTEpO1MmJihTLndvcmRzW0NlXT1E''@;'; + put 'put ''ZSl9cmV0dXJuIFMmJlMuc3RyaXAoKSx0ZS5zdHJpcCgpLCJkaXYiIT09eiYmMCE9PW5lJiZ0ZS5pdXNocm4obmUpLHtkaXY6U3x8bnVsbCxtb2Q6dGV9fSxVLnByb3RvdHlwZS5kaXZtb2Q9ZnVuY3Rpb24oTyx6LG5lKXtyZXR1cm4gRSghTy5pc1plcm8oKSksdGhpcy5pc1plcm8oKT97ZGl2''@;'; + put 'put ''Om5ldyBVKDApLG1vZDpuZXcgVSgwKX06MCE9PXRoaXMubmVnYXRpdmUmJjA9PT1PLm5lZ2F0aXZlPyhQPXRoaXMubmVnKCkuZGl2bW9kKE8seiksIm1vZCIhPT16JiYodGU9UC5kaXYubmVnKCkpLCJkaXYiIT09eiYmKHg9UC5tb2QubmVnKCksbmUmJjAhPT14Lm5lZ2F0aXZlJiZ4LmlhZGQo''@;'; + put 'put ''TykpLHtkaXY6dGUsbW9kOnh9KTowPT09dGhpcy5uZWdhdGl2ZSYmMCE9PU8ubmVnYXRpdmU/KFA9dGhpcy5kaXZtb2QoTy5uZWcoKSx6KSwibW9kIiE9PXomJih0ZT1QLmRpdi5uZWcoKSkse2Rpdjp0ZSxtb2Q6UC5tb2R9KTowIT0odGhpcy5uZWdhdGl2ZSZPLm5lZ2F0aXZlKT8oUD10aGlz''@;'; + put 'put ''Lm5lZygpLmRpdm1vZChPLm5lZygpLHopLCJkaXYiIT09eiYmKHg9UC5tb2QubmVnKCksbmUmJjAhPT14Lm5lZ2F0aXZlJiZ4LmlzdWIoTykpLHtkaXY6UC5kaXYsbW9kOnh9KTpPLmxlbmd0aD50aGlzLmxlbmd0aHx8dGhpcy5jbXAoTyk8MD97ZGl2Om5ldyBVKDApLG1vZDp0aGlzfToxPT09''@;'; + put 'put ''Ty5sZW5ndGg/ImRpdiI9PT16P3tkaXY6dGhpcy5kaXZuKE8ud29yZHNbMF0pLG1vZDpudWxsfToibW9kIj09PXo/e2RpdjpudWxsLG1vZDpuZXcgVSh0aGlzLm1vZG4oTy53b3Jkc1swXSkpfTp7ZGl2OnRoaXMuZGl2bihPLndvcmRzWzBdKSxtb2Q6bmV3IFUodGhpcy5tb2RuKE8ud29yZHNb''@;'; + put 'put ''MF0pKX06dGhpcy5fd29yZERpdihPLHopO3ZhciB0ZSx4LFB9LFUucHJvdG90eXBlLmRpdj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5kaXZtb2QoTywiZGl2IiwhMSkuZGl2fSxVLnByb3RvdHlwZS5tb2Q9ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuZGl2bW9kKE8sIm1vZCIsITEpLm1vZH0s''@;'; + put 'put ''VS5wcm90b3R5cGUudW1vZD1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5kaXZtb2QoTywibW9kIiwhMCkubW9kfSxVLnByb3RvdHlwZS5kaXZSb3VuZD1mdW5jdGlvbihPKXt2YXIgej10aGlzLmRpdm1vZChPKTtpZih6Lm1vZC5pc1plcm8oKSlyZXR1cm4gei5kaXY7dmFyIG5lPTAhPT16LmRp''@;'; + put 'put ''di5uZWdhdGl2ZT96Lm1vZC5pc3ViKE8pOnoubW9kLHRlPU8udXNocm4oMSkseD1PLmFuZGxuKDEpLFA9bmUuY21wKHRlKTtyZXR1cm4gUDwwfHwxPT09eCYmMD09PVA/ei5kaXY6MCE9PXouZGl2Lm5lZ2F0aXZlP3ouZGl2LmlzdWJuKDEpOnouZGl2LmlhZGRuKDEpfSxVLnByb3RvdHlwZS5t''@;'; + put 'put ''b2RuPWZ1bmN0aW9uKE8pe0UoTzw9NjcxMDg4NjMpO2Zvcih2YXIgej0oMTw8MjYpJU8sbmU9MCx0ZT10aGlzLmxlbmd0aC0xO3RlPj0wO3RlLS0pbmU9KHoqbmUrKDB8dGhpcy53b3Jkc1t0ZV0pKSVPO3JldHVybiBuZX0sVS5wcm90b3R5cGUuaWRpdm49ZnVuY3Rpb24oTyl7RShPPD02NzEw''@;'; + put 'put ''ODg2Myk7Zm9yKHZhciB6PTAsbmU9dGhpcy5sZW5ndGgtMTtuZT49MDtuZS0tKXt2YXIgdGU9KDB8dGhpcy53b3Jkc1tuZV0pKzY3MTA4ODY0Kno7dGhpcy53b3Jkc1tuZV09dGUvT3wwLHo9dGUlT31yZXR1cm4gdGhpcy5zdHJpcCgpfSxVLnByb3RvdHlwZS5kaXZuPWZ1bmN0aW9uKE8pe3Jl''@;'; + put 'put ''dHVybiB0aGlzLmNsb25lKCkuaWRpdm4oTyl9LFUucHJvdG90eXBlLmVnY2Q9ZnVuY3Rpb24oTyl7RSgwPT09Ty5uZWdhdGl2ZSksRSghTy5pc1plcm8oKSk7dmFyIHo9dGhpcyxuZT1PLmNsb25lKCk7ej0wIT09ei5uZWdhdGl2ZT96LnVtb2QoTyk6ei5jbG9uZSgpO2Zvcih2YXIgdGU9bmV3''@;'; + put 'put ''IFUoMSkseD1uZXcgVSgwKSxQPW5ldyBVKDApLFY9bmV3IFUoMSksVD0wO3ouaXNFdmVuKCkmJm5lLmlzRXZlbigpOyl6Lml1c2hybigxKSxuZS5pdXNocm4oMSksKytUO2Zvcih2YXIgUz1uZS5jbG9uZSgpLEY9ei5jbG9uZSgpOyF6LmlzWmVybygpOyl7Zm9yKHZhciB5ZT0wLENlPTE7MD09''@;'; + put 'put ''KHoud29yZHNbMF0mQ2UpJiZ5ZTwyNjsrK3llLENlPDw9MSk7aWYoeWU+MClmb3Ioei5pdXNocm4oeWUpO3llLS0gPjA7KSh0ZS5pc09kZCgpfHx4LmlzT2RkKCkpJiYodGUuaWFkZChTKSx4LmlzdWIoRikpLHRlLml1c2hybigxKSx4Lml1c2hybigxKTtmb3IodmFyIERlPTAsUGU9MTswPT0o''@;'; + put 'put ''bmUud29yZHNbMF0mUGUpJiZEZTwyNjsrK0RlLFBlPDw9MSk7aWYoRGU+MClmb3IobmUuaXVzaHJuKERlKTtEZS0tID4wOykoUC5pc09kZCgpfHxWLmlzT2RkKCkpJiYoUC5pYWRkKFMpLFYuaXN1YihGKSksUC5pdXNocm4oMSksVi5pdXNocm4oMSk7ei5jbXAobmUpPj0wPyh6LmlzdWIobmUp''@;'; + put 'put ''LHRlLmlzdWIoUCkseC5pc3ViKFYpKToobmUuaXN1Yih6KSxQLmlzdWIodGUpLFYuaXN1Yih4KSl9cmV0dXJue2E6UCxiOlYsZ2NkOm5lLml1c2hsbihUKX19LFUucHJvdG90eXBlLl9pbnZtcD1mdW5jdGlvbihPKXtFKDA9PT1PLm5lZ2F0aXZlKSxFKCFPLmlzWmVybygpKTt2YXIgeWUsej10''@;'; + put 'put ''aGlzLG5lPU8uY2xvbmUoKTt6PTAhPT16Lm5lZ2F0aXZlP3oudW1vZChPKTp6LmNsb25lKCk7Zm9yKHZhciB0ZT1uZXcgVSgxKSx4PW5ldyBVKDApLFA9bmUuY2xvbmUoKTt6LmNtcG4oMSk+MCYmbmUuY21wbigxKT4wOyl7Zm9yKHZhciBWPTAsVD0xOzA9PSh6LndvcmRzWzBdJlQpJiZWPDI2''@;'; + put 'put ''OysrVixUPDw9MSk7aWYoVj4wKWZvcih6Lml1c2hybihWKTtWLS0gPjA7KXRlLmlzT2RkKCkmJnRlLmlhZGQoUCksdGUuaXVzaHJuKDEpO2Zvcih2YXIgUz0wLEY9MTswPT0obmUud29yZHNbMF0mRikmJlM8MjY7KytTLEY8PD0xKTtpZihTPjApZm9yKG5lLml1c2hybihTKTtTLS0gPjA7KXgu''@;'; + put 'put ''aXNPZGQoKSYmeC5pYWRkKFApLHguaXVzaHJuKDEpO3ouY21wKG5lKT49MD8oei5pc3ViKG5lKSx0ZS5pc3ViKHgpKToobmUuaXN1Yih6KSx4LmlzdWIodGUpKX1yZXR1cm4oeWU9MD09PXouY21wbigxKT90ZTp4KS5jbXBuKDApPDAmJnllLmlhZGQoTykseWV9LFUucHJvdG90eXBlLmdjZD1m''@;'; + put 'put ''dW5jdGlvbihPKXtpZih0aGlzLmlzWmVybygpKXJldHVybiBPLmFicygpO2lmKE8uaXNaZXJvKCkpcmV0dXJuIHRoaXMuYWJzKCk7dmFyIHo9dGhpcy5jbG9uZSgpLG5lPU8uY2xvbmUoKTt6Lm5lZ2F0aXZlPTAsbmUubmVnYXRpdmU9MDtmb3IodmFyIHRlPTA7ei5pc0V2ZW4oKSYmbmUuaXNF''@;'; + put 'put ''dmVuKCk7dGUrKyl6Lml1c2hybigxKSxuZS5pdXNocm4oMSk7Zm9yKDs7KXtmb3IoO3ouaXNFdmVuKCk7KXouaXVzaHJuKDEpO2Zvcig7bmUuaXNFdmVuKCk7KW5lLml1c2hybigxKTt2YXIgeD16LmNtcChuZSk7aWYoeDwwKXt2YXIgUD16O3o9bmUsbmU9UH1lbHNlIGlmKDA9PT14fHwwPT09''@;'; + put 'put ''bmUuY21wbigxKSlicmVhazt6LmlzdWIobmUpfXJldHVybiBuZS5pdXNobG4odGUpfSxVLnByb3RvdHlwZS5pbnZtPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmVnY2QoTykuYS51bW9kKE8pfSxVLnByb3RvdHlwZS5pc0V2ZW49ZnVuY3Rpb24oKXtyZXR1cm4gMD09KDEmdGhpcy53b3Jkc1sw''@;'; + put 'put ''XSl9LFUucHJvdG90eXBlLmlzT2RkPWZ1bmN0aW9uKCl7cmV0dXJuIDE9PSgxJnRoaXMud29yZHNbMF0pfSxVLnByb3RvdHlwZS5hbmRsbj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy53b3Jkc1swXSZPfSxVLnByb3RvdHlwZS5iaW5jbj1mdW5jdGlvbihPKXtFKCJudW1iZXIiPT10eXBlb2Yg''@;'; + put 'put ''Tyk7dmFyIHo9TyUyNixuZT0oTy16KS8yNix0ZT0xPDx6O2lmKHRoaXMubGVuZ3RoPD1uZSlyZXR1cm4gdGhpcy5fZXhwYW5kKG5lKzEpLHRoaXMud29yZHNbbmVdfD10ZSx0aGlzO2Zvcih2YXIgeD10ZSxQPW5lOzAhPT14JiZQPHRoaXMubGVuZ3RoO1ArKyl7dmFyIFY9MHx0aGlzLndvcmRz''@;'; + put 'put ''W1BdO3g9KFYrPXgpPj4+MjYsdGhpcy53b3Jkc1tQXT1WJj02NzEwODg2M31yZXR1cm4gMCE9PXgmJih0aGlzLndvcmRzW1BdPXgsdGhpcy5sZW5ndGgrKyksdGhpc30sVS5wcm90b3R5cGUuaXNaZXJvPWZ1bmN0aW9uKCl7cmV0dXJuIDE9PT10aGlzLmxlbmd0aCYmMD09PXRoaXMud29yZHNb''@;'; + put 'put ''MF19LFUucHJvdG90eXBlLmNtcG49ZnVuY3Rpb24oTyl7dmFyIG5lLHo9TzwwO2lmKDAhPT10aGlzLm5lZ2F0aXZlJiYheilyZXR1cm4tMTtpZigwPT09dGhpcy5uZWdhdGl2ZSYmeilyZXR1cm4gMTtpZih0aGlzLnN0cmlwKCksdGhpcy5sZW5ndGg+MSluZT0xO2Vsc2V7eiYmKE89LU8pLEUo''@;'; + put 'put ''Tzw9NjcxMDg4NjMsIk51bWJlciBpcyB0b28gYmlnIik7dmFyIHRlPTB8dGhpcy53b3Jkc1swXTtuZT10ZT09PU8/MDp0ZTxPPy0xOjF9cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlPzB8LW5lOm5lfSxVLnByb3RvdHlwZS5jbXA9ZnVuY3Rpb24oTyl7aWYoMCE9PXRoaXMubmVnYXRpdmUmJjA9''@;'; + put 'put ''PT1PLm5lZ2F0aXZlKXJldHVybi0xO2lmKDA9PT10aGlzLm5lZ2F0aXZlJiYwIT09Ty5uZWdhdGl2ZSlyZXR1cm4gMTt2YXIgej10aGlzLnVjbXAoTyk7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlPzB8LXo6en0sVS5wcm90b3R5cGUudWNtcD1mdW5jdGlvbihPKXtpZih0aGlzLmxlbmd0aD5P''@;'; + put 'put ''Lmxlbmd0aClyZXR1cm4gMTtpZih0aGlzLmxlbmd0aDxPLmxlbmd0aClyZXR1cm4tMTtmb3IodmFyIHo9MCxuZT10aGlzLmxlbmd0aC0xO25lPj0wO25lLS0pe3ZhciB0ZT0wfHRoaXMud29yZHNbbmVdLHg9MHxPLndvcmRzW25lXTtpZih0ZSE9PXgpe3RlPHg/ej0tMTp0ZT54JiYoej0xKTti''@;'; + put 'put ''cmVha319cmV0dXJuIHp9LFUucHJvdG90eXBlLmd0bj1mdW5jdGlvbihPKXtyZXR1cm4gMT09PXRoaXMuY21wbihPKX0sVS5wcm90b3R5cGUuZ3Q9ZnVuY3Rpb24oTyl7cmV0dXJuIDE9PT10aGlzLmNtcChPKX0sVS5wcm90b3R5cGUuZ3Rlbj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5jbXBu''@;'; + put 'put ''KE8pPj0wfSxVLnByb3RvdHlwZS5ndGU9ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuY21wKE8pPj0wfSxVLnByb3RvdHlwZS5sdG49ZnVuY3Rpb24oTyl7cmV0dXJuLTE9PT10aGlzLmNtcG4oTyl9LFUucHJvdG90eXBlLmx0PWZ1bmN0aW9uKE8pe3JldHVybi0xPT09dGhpcy5jbXAoTyl9LFUu''@;'; + put 'put ''cHJvdG90eXBlLmx0ZW49ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuY21wbihPKTw9MH0sVS5wcm90b3R5cGUubHRlPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmNtcChPKTw9MH0sVS5wcm90b3R5cGUuZXFuPWZ1bmN0aW9uKE8pe3JldHVybiAwPT09dGhpcy5jbXBuKE8pfSxVLnByb3RvdHlw''@;'; + put 'put ''ZS5lcT1mdW5jdGlvbihPKXtyZXR1cm4gMD09PXRoaXMuY21wKE8pfSxVLnJlZD1mdW5jdGlvbihPKXtyZXR1cm4gbmV3IFRlKE8pfSxVLnByb3RvdHlwZS50b1JlZD1mdW5jdGlvbihPKXtyZXR1cm4gRSghdGhpcy5yZWQsIkFscmVhZHkgYSBudW1iZXIgaW4gcmVkdWN0aW9uIGNvbnRleHQi''@;'; + put 'put ''KSxFKDA9PT10aGlzLm5lZ2F0aXZlLCJyZWQgd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlcyIpLE8uY29udmVydFRvKHRoaXMpLl9mb3JjZVJlZChPKX0sVS5wcm90b3R5cGUuZnJvbVJlZD1mdW5jdGlvbigpe3JldHVybiBFKHRoaXMucmVkLCJmcm9tUmVkIHdvcmtzIG9ubHkgd2l0aCBudW1i''@;'; + put 'put ''ZXJzIGluIHJlZHVjdGlvbiBjb250ZXh0IiksdGhpcy5yZWQuY29udmVydEZyb20odGhpcyl9LFUucHJvdG90eXBlLl9mb3JjZVJlZD1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5yZWQ9Tyx0aGlzfSxVLnByb3RvdHlwZS5mb3JjZVJlZD1mdW5jdGlvbihPKXtyZXR1cm4gRSghdGhpcy5yZWQs''@;'; + put 'put ''IkFscmVhZHkgYSBudW1iZXIgaW4gcmVkdWN0aW9uIGNvbnRleHQiKSx0aGlzLl9mb3JjZVJlZChPKX0sVS5wcm90b3R5cGUucmVkQWRkPWZ1bmN0aW9uKE8pe3JldHVybiBFKHRoaXMucmVkLCJyZWRBZGQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuYWRkKHRoaXMs''@;'; + put 'put ''Tyl9LFUucHJvdG90eXBlLnJlZElBZGQ9ZnVuY3Rpb24oTyl7cmV0dXJuIEUodGhpcy5yZWQsInJlZElBZGQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuaWFkZCh0aGlzLE8pfSxVLnByb3RvdHlwZS5yZWRTdWI9ZnVuY3Rpb24oTyl7cmV0dXJuIEUodGhpcy5yZWQs''@;'; + put 'put ''InJlZFN1YiB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5zdWIodGhpcyxPKX0sVS5wcm90b3R5cGUucmVkSVN1Yj1mdW5jdGlvbihPKXtyZXR1cm4gRSh0aGlzLnJlZCwicmVkSVN1YiB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5pc3ViKHRo''@;'; + put 'put ''aXMsTyl9LFUucHJvdG90eXBlLnJlZFNobD1mdW5jdGlvbihPKXtyZXR1cm4gRSh0aGlzLnJlZCwicmVkU2hsIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLnNobCh0aGlzLE8pfSxVLnByb3RvdHlwZS5yZWRNdWw9ZnVuY3Rpb24oTyl7cmV0dXJuIEUodGhpcy5yZWQs''@;'; + put 'put ''InJlZE11bCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5Mih0aGlzLE8pLHRoaXMucmVkLm11bCh0aGlzLE8pfSxVLnByb3RvdHlwZS5yZWRJTXVsPWZ1bmN0aW9uKE8pe3JldHVybiBFKHRoaXMucmVkLCJyZWRNdWwgd29ya3Mgb25seSB3aXRoIHJlZCBu''@;'; + put 'put ''dW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTIodGhpcyxPKSx0aGlzLnJlZC5pbXVsKHRoaXMsTyl9LFUucHJvdG90eXBlLnJlZFNxcj1mdW5jdGlvbigpe3JldHVybiBFKHRoaXMucmVkLCJyZWRTcXIgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhp''@;'; + put 'put ''cyksdGhpcy5yZWQuc3FyKHRoaXMpfSxVLnByb3RvdHlwZS5yZWRJU3FyPWZ1bmN0aW9uKCl7cmV0dXJuIEUodGhpcy5yZWQsInJlZElTcXIgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQuaXNxcih0aGlzKX0sVS5wcm90b3R5''@;'; + put 'put ''cGUucmVkU3FydD1mdW5jdGlvbigpe3JldHVybiBFKHRoaXMucmVkLCJyZWRTcXJ0IHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLnNxcnQodGhpcyl9LFUucHJvdG90eXBlLnJlZEludm09ZnVuY3Rpb24oKXtyZXR1cm4gRSh0''@;'; + put 'put ''aGlzLnJlZCwicmVkSW52bSB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5pbnZtKHRoaXMpfSxVLnByb3RvdHlwZS5yZWROZWc9ZnVuY3Rpb24oKXtyZXR1cm4gRSh0aGlzLnJlZCwicmVkTmVnIHdvcmtzIG9ubHkgd2l0aCBy''@;'; + put 'put ''ZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLm5lZyh0aGlzKX0sVS5wcm90b3R5cGUucmVkUG93PWZ1bmN0aW9uKE8pe3JldHVybiBFKHRoaXMucmVkJiYhTy5yZWQsInJlZFBvdyhub3JtYWxOdW0pIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5y''@;'; + put 'put ''ZWQucG93KHRoaXMsTyl9O3ZhciBkZT17azI1NjpudWxsLHAyMjQ6bnVsbCxwMTkyOm51bGwscDI1NTE5Om51bGx9O2Z1bmN0aW9uIHZlKGhlLE8pe3RoaXMubmFtZT1oZSx0aGlzLnA9bmV3IFUoTywxNiksdGhpcy5uPXRoaXMucC5iaXRMZW5ndGgoKSx0aGlzLms9bmV3IFUoMSkuaXVzaGxu''@;'; + put 'put ''KHRoaXMubikuaXN1Yih0aGlzLnApLHRoaXMudG1wPXRoaXMuX3RtcCgpfWZ1bmN0aW9uIEFlKCl7dmUuY2FsbCh0aGlzLCJrMjU2IiwiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUgZmZmZmZjMmYiKX1mdW5jdGlvbiBrZSgp''@;'; + put 'put ''e3ZlLmNhbGwodGhpcywicDIyNCIsImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIDAwMDAwMDAwIDAwMDAwMDAwIDAwMDAwMDAxIil9ZnVuY3Rpb24gU2UoKXt2ZS5jYWxsKHRoaXMsInAxOTIiLCJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZSBmZmZmZmZm''@;'; + put 'put ''ZiBmZmZmZmZmZiIpfWZ1bmN0aW9uIEllKCl7dmUuY2FsbCh0aGlzLCIyNTUxOSIsIjdmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZWQiKX1mdW5jdGlvbiBUZShoZSl7aWYoInN0cmluZyI9PXR5cGVvZiBoZSl7dmFyIE89''@;'; + put 'put ''VS5fcHJpbWUoaGUpO3RoaXMubT1PLnAsdGhpcy5wcmltZT1PfWVsc2UgRShoZS5ndG4oMSksIm1vZHVsdXMgbXVzdCBiZSBncmVhdGVyIHRoYW4gMSIpLHRoaXMubT1oZSx0aGlzLnByaW1lPW51bGx9ZnVuY3Rpb24gRWUoaGUpe1RlLmNhbGwodGhpcyxoZSksdGhpcy5zaGlmdD10aGlzLm0u''@;'; + put 'put ''Yml0TGVuZ3RoKCksdGhpcy5zaGlmdCUyNiE9MCYmKHRoaXMuc2hpZnQrPTI2LXRoaXMuc2hpZnQlMjYpLHRoaXMucj1uZXcgVSgxKS5pdXNobG4odGhpcy5zaGlmdCksdGhpcy5yMj10aGlzLmltb2QodGhpcy5yLnNxcigpKSx0aGlzLnJpbnY9dGhpcy5yLl9pbnZtcCh0aGlzLm0pLHRoaXMu''@;'; + put 'put ''bWludj10aGlzLnJpbnYubXVsKHRoaXMucikuaXN1Ym4oMSkuZGl2KHRoaXMubSksdGhpcy5taW52PXRoaXMubWludi51bW9kKHRoaXMuciksdGhpcy5taW52PXRoaXMuci5zdWIodGhpcy5taW52KX12ZS5wcm90b3R5cGUuX3RtcD1mdW5jdGlvbigpe3ZhciBPPW5ldyBVKG51bGwpO3JldHVy''@;'; + put 'put ''biBPLndvcmRzPW5ldyBBcnJheShNYXRoLmNlaWwodGhpcy5uLzEzKSksT30sdmUucHJvdG90eXBlLmlyZWR1Y2U9ZnVuY3Rpb24oTyl7dmFyIG5lLHo9Tztkb3t0aGlzLnNwbGl0KHosdGhpcy50bXApLG5lPSh6PSh6PXRoaXMuaW11bEsoeikpLmlhZGQodGhpcy50bXApKS5iaXRMZW5ndGgo''@;'; + put 'put ''KX13aGlsZShuZT50aGlzLm4pO3ZhciB0ZT1uZTx0aGlzLm4/LTE6ei51Y21wKHRoaXMucCk7cmV0dXJuIDA9PT10ZT8oei53b3Jkc1swXT0wLHoubGVuZ3RoPTEpOnRlPjA/ei5pc3ViKHRoaXMucCk6dm9pZCAwIT09ei5zdHJpcD96LnN0cmlwKCk6ei5fc3RyaXAoKSx6fSx2ZS5wcm90b3R5''@;'; + put 'put ''cGUuc3BsaXQ9ZnVuY3Rpb24oTyx6KXtPLml1c2hybih0aGlzLm4sMCx6KX0sdmUucHJvdG90eXBlLmltdWxLPWZ1bmN0aW9uKE8pe3JldHVybiBPLmltdWwodGhpcy5rKX0sTWUoQWUsdmUpLEFlLnByb3RvdHlwZS5zcGxpdD1mdW5jdGlvbihPLHope2Zvcih2YXIgdGU9TWF0aC5taW4oTy5s''@;'; + put 'put ''ZW5ndGgsOSkseD0wO3g8dGU7eCsrKXoud29yZHNbeF09Ty53b3Jkc1t4XTtpZih6Lmxlbmd0aD10ZSxPLmxlbmd0aDw9OSlyZXR1cm4gTy53b3Jkc1swXT0wLHZvaWQoTy5sZW5ndGg9MSk7dmFyIFA9Ty53b3Jkc1s5XTtmb3Ioei53b3Jkc1t6Lmxlbmd0aCsrXT00MTk0MzAzJlAseD0xMDt4''@;'; + put 'put ''PE8ubGVuZ3RoO3grKyl7dmFyIFY9MHxPLndvcmRzW3hdO08ud29yZHNbeC0xMF09KDQxOTQzMDMmVik8PDR8UD4+PjIyLFA9Vn1PLndvcmRzW3gtMTBdPVA+Pj49MjIsTy5sZW5ndGgtPTA9PT1QJiZPLmxlbmd0aD4xMD8xMDo5fSxBZS5wcm90b3R5cGUuaW11bEs9ZnVuY3Rpb24oTyl7Ty53''@;'; + put 'put ''b3Jkc1tPLmxlbmd0aF09MCxPLndvcmRzW08ubGVuZ3RoKzFdPTAsTy5sZW5ndGgrPTI7Zm9yKHZhciB6PTAsbmU9MDtuZTxPLmxlbmd0aDtuZSsrKXt2YXIgdGU9MHxPLndvcmRzW25lXTtPLndvcmRzW25lXT02NzEwODg2MyYoeis9OTc3KnRlKSx6PTY0KnRlKyh6LzY3MTA4ODY0fDApfXJl''@;'; + put 'put ''dHVybiAwPT09Ty53b3Jkc1tPLmxlbmd0aC0xXSYmKE8ubGVuZ3RoLS0sMD09PU8ud29yZHNbTy5sZW5ndGgtMV0mJk8ubGVuZ3RoLS0pLE99LE1lKGtlLHZlKSxNZShTZSx2ZSksTWUoSWUsdmUpLEllLnByb3RvdHlwZS5pbXVsSz1mdW5jdGlvbihPKXtmb3IodmFyIHo9MCxuZT0wO25lPE8u''@;'; + put 'put ''bGVuZ3RoO25lKyspe3ZhciB0ZT0xOSooMHxPLndvcmRzW25lXSkreix4PTY3MTA4ODYzJnRlO3RlPj4+PTI2LE8ud29yZHNbbmVdPXgsej10ZX1yZXR1cm4gMCE9PXomJihPLndvcmRzW08ubGVuZ3RoKytdPXopLE99LFUuX3ByaW1lPWZ1bmN0aW9uKE8pe2lmKGRlW09dKXJldHVybiBkZVtP''@;'; + put 'put ''XTt2YXIgejtpZigiazI1NiI9PT1PKXo9bmV3IEFlO2Vsc2UgaWYoInAyMjQiPT09Tyl6PW5ldyBrZTtlbHNlIGlmKCJwMTkyIj09PU8pej1uZXcgU2U7ZWxzZXtpZigicDI1NTE5IiE9PU8pdGhyb3cgbmV3IEVycm9yKCJVbmtub3duIHByaW1lICIrTyk7ej1uZXcgSWV9cmV0dXJuIGRlW09d''@;'; + put 'put ''PXosen0sVGUucHJvdG90eXBlLl92ZXJpZnkxPWZ1bmN0aW9uKE8pe0UoMD09PU8ubmVnYXRpdmUsInJlZCB3b3JrcyBvbmx5IHdpdGggcG9zaXRpdmVzIiksRShPLnJlZCwicmVkIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpfSxUZS5wcm90b3R5cGUuX3ZlcmlmeTI9ZnVuY3Rpb24o''@;'; + put 'put ''Tyx6KXtFKDA9PShPLm5lZ2F0aXZlfHoubmVnYXRpdmUpLCJyZWQgd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlcyIpLEUoTy5yZWQmJk8ucmVkPT09ei5yZWQsInJlZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKX0sVGUucHJvdG90eXBlLmltb2Q9ZnVuY3Rpb24oTyl7cmV0dXJuIHRo''@;'; + put 'put ''aXMucHJpbWU/dGhpcy5wcmltZS5pcmVkdWNlKE8pLl9mb3JjZVJlZCh0aGlzKTpPLnVtb2QodGhpcy5tKS5fZm9yY2VSZWQodGhpcyl9LFRlLnByb3RvdHlwZS5uZWc9ZnVuY3Rpb24oTyl7cmV0dXJuIE8uaXNaZXJvKCk/Ty5jbG9uZSgpOnRoaXMubS5zdWIoTykuX2ZvcmNlUmVkKHRoaXMp''@;'; + put 'put ''fSxUZS5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKE8seil7dGhpcy5fdmVyaWZ5MihPLHopO3ZhciBuZT1PLmFkZCh6KTtyZXR1cm4gbmUuY21wKHRoaXMubSk+PTAmJm5lLmlzdWIodGhpcy5tKSxuZS5fZm9yY2VSZWQodGhpcyl9LFRlLnByb3RvdHlwZS5pYWRkPWZ1bmN0aW9uKE8seil7dGhp''@;'; + put 'put ''cy5fdmVyaWZ5MihPLHopO3ZhciBuZT1PLmlhZGQoeik7cmV0dXJuIG5lLmNtcCh0aGlzLm0pPj0wJiZuZS5pc3ViKHRoaXMubSksbmV9LFRlLnByb3RvdHlwZS5zdWI9ZnVuY3Rpb24oTyx6KXt0aGlzLl92ZXJpZnkyKE8seik7dmFyIG5lPU8uc3ViKHopO3JldHVybiBuZS5jbXBuKDApPDAm''@;'; + put 'put ''Jm5lLmlhZGQodGhpcy5tKSxuZS5fZm9yY2VSZWQodGhpcyl9LFRlLnByb3RvdHlwZS5pc3ViPWZ1bmN0aW9uKE8seil7dGhpcy5fdmVyaWZ5MihPLHopO3ZhciBuZT1PLmlzdWIoeik7cmV0dXJuIG5lLmNtcG4oMCk8MCYmbmUuaWFkZCh0aGlzLm0pLG5lfSxUZS5wcm90b3R5cGUuc2hsPWZ1''@;'; + put 'put ''bmN0aW9uKE8seil7cmV0dXJuIHRoaXMuX3ZlcmlmeTEoTyksdGhpcy5pbW9kKE8udXNobG4oeikpfSxUZS5wcm90b3R5cGUuaW11bD1mdW5jdGlvbihPLHope3JldHVybiB0aGlzLl92ZXJpZnkyKE8seiksdGhpcy5pbW9kKE8uaW11bCh6KSl9LFRlLnByb3RvdHlwZS5tdWw9ZnVuY3Rpb24o''@;'; + put 'put ''Tyx6KXtyZXR1cm4gdGhpcy5fdmVyaWZ5MihPLHopLHRoaXMuaW1vZChPLm11bCh6KSl9LFRlLnByb3RvdHlwZS5pc3FyPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmltdWwoTyxPLmNsb25lKCkpfSxUZS5wcm90b3R5cGUuc3FyPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLm11bChPLE8pfSxU''@;'; + put 'put ''ZS5wcm90b3R5cGUuc3FydD1mdW5jdGlvbihPKXtpZihPLmlzWmVybygpKXJldHVybiBPLmNsb25lKCk7dmFyIHo9dGhpcy5tLmFuZGxuKDMpO2lmKEUoeiUyPT0xKSwzPT09eil7dmFyIG5lPXRoaXMubS5hZGQobmV3IFUoMSkpLml1c2hybigyKTtyZXR1cm4gdGhpcy5wb3coTyxuZSl9Zm9y''@;'; + put 'put ''KHZhciB0ZT10aGlzLm0uc3VibigxKSx4PTA7IXRlLmlzWmVybygpJiYwPT09dGUuYW5kbG4oMSk7KXgrKyx0ZS5pdXNocm4oMSk7RSghdGUuaXNaZXJvKCkpO3ZhciBQPW5ldyBVKDEpLnRvUmVkKHRoaXMpLFY9UC5yZWROZWcoKSxUPXRoaXMubS5zdWJuKDEpLml1c2hybigxKSxTPXRoaXMu''@;'; + put 'put ''bS5iaXRMZW5ndGgoKTtmb3IoUz1uZXcgVSgyKlMqUykudG9SZWQodGhpcyk7MCE9PXRoaXMucG93KFMsVCkuY21wKFYpOylTLnJlZElBZGQoVik7Zm9yKHZhciBGPXRoaXMucG93KFMsdGUpLHllPXRoaXMucG93KE8sdGUuYWRkbigxKS5pdXNocm4oMSkpLENlPXRoaXMucG93KE8sdGUpLERl''@;'; + put 'put ''PXg7MCE9PUNlLmNtcChQKTspe2Zvcih2YXIgUGU9Q2UsUWU9MDswIT09UGUuY21wKFApO1FlKyspUGU9UGUucmVkU3FyKCk7RShRZTxEZSk7dmFyICRlPXRoaXMucG93KEYsbmV3IFUoMSkuaXVzaGxuKERlLVFlLTEpKTt5ZT15ZS5yZWRNdWwoJGUpLEY9JGUucmVkU3FyKCksQ2U9Q2UucmVk''@;'; + put 'put ''TXVsKEYpLERlPVFlfXJldHVybiB5ZX0sVGUucHJvdG90eXBlLmludm09ZnVuY3Rpb24oTyl7dmFyIHo9Ty5faW52bXAodGhpcy5tKTtyZXR1cm4gMCE9PXoubmVnYXRpdmU/KHoubmVnYXRpdmU9MCx0aGlzLmltb2QoeikucmVkTmVnKCkpOnRoaXMuaW1vZCh6KX0sVGUucHJvdG90eXBlLnBv''@;'; + put 'put ''dz1mdW5jdGlvbihPLHope2lmKHouaXNaZXJvKCkpcmV0dXJuIG5ldyBVKDEpLnRvUmVkKHRoaXMpO2lmKDA9PT16LmNtcG4oMSkpcmV0dXJuIE8uY2xvbmUoKTt2YXIgdGU9bmV3IEFycmF5KDE2KTt0ZVswXT1uZXcgVSgxKS50b1JlZCh0aGlzKSx0ZVsxXT1PO2Zvcih2YXIgeD0yO3g8dGUu''@;'; + put 'put ''bGVuZ3RoO3grKyl0ZVt4XT10aGlzLm11bCh0ZVt4LTFdLE8pO3ZhciBQPXRlWzBdLFY9MCxUPTAsUz16LmJpdExlbmd0aCgpJTI2O2ZvcigwPT09UyYmKFM9MjYpLHg9ei5sZW5ndGgtMTt4Pj0wO3gtLSl7Zm9yKHZhciBGPXoud29yZHNbeF0seWU9Uy0xO3llPj0wO3llLS0pe3ZhciBDZT1G''@;'; + put 'put ''Pj55ZSYxO1AhPT10ZVswXSYmKFA9dGhpcy5zcXIoUCkpLDAhPT1DZXx8MCE9PVY/KFY8PD0xLFZ8PUNlLCg0PT0rK1R8fDA9PT14JiYwPT09eWUpJiYoUD10aGlzLm11bChQLHRlW1ZdKSxUPTAsVj0wKSk6VD0wfVM9MjZ9cmV0dXJuIFB9LFRlLnByb3RvdHlwZS5jb252ZXJ0VG89ZnVuY3Rp''@;'; + put 'put ''b24oTyl7dmFyIHo9Ty51bW9kKHRoaXMubSk7cmV0dXJuIHo9PT1PP3ouY2xvbmUoKTp6fSxUZS5wcm90b3R5cGUuY29udmVydEZyb209ZnVuY3Rpb24oTyl7dmFyIHo9Ty5jbG9uZSgpO3JldHVybiB6LnJlZD1udWxsLHp9LFUubW9udD1mdW5jdGlvbihPKXtyZXR1cm4gbmV3IEVlKE8pfSxN''@;'; + put 'put ''ZShFZSxUZSksRWUucHJvdG90eXBlLmNvbnZlcnRUbz1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5pbW9kKE8udXNobG4odGhpcy5zaGlmdCkpfSxFZS5wcm90b3R5cGUuY29udmVydEZyb209ZnVuY3Rpb24oTyl7dmFyIHo9dGhpcy5pbW9kKE8ubXVsKHRoaXMucmludikpO3JldHVybiB6LnJl''@;'; + put 'put ''ZD1udWxsLHp9LEVlLnByb3RvdHlwZS5pbXVsPWZ1bmN0aW9uKE8seil7aWYoTy5pc1plcm8oKXx8ei5pc1plcm8oKSlyZXR1cm4gTy53b3Jkc1swXT0wLE8ubGVuZ3RoPTEsTzt2YXIgbmU9Ty5pbXVsKHopLHRlPW5lLm1hc2tuKHRoaXMuc2hpZnQpLm11bCh0aGlzLm1pbnYpLmltYXNrbih0''@;'; + put 'put ''aGlzLnNoaWZ0KS5tdWwodGhpcy5tKSx4PW5lLmlzdWIodGUpLml1c2hybih0aGlzLnNoaWZ0KSxQPXg7cmV0dXJuIHguY21wKHRoaXMubSk+PTA/UD14LmlzdWIodGhpcy5tKTp4LmNtcG4oMCk8MCYmKFA9eC5pYWRkKHRoaXMubSkpLFAuX2ZvcmNlUmVkKHRoaXMpfSxFZS5wcm90b3R5cGUu''@;'; + put 'put ''bXVsPWZ1bmN0aW9uKE8seil7aWYoTy5pc1plcm8oKXx8ei5pc1plcm8oKSlyZXR1cm4gbmV3IFUoMCkuX2ZvcmNlUmVkKHRoaXMpO3ZhciBuZT1PLm11bCh6KSx0ZT1uZS5tYXNrbih0aGlzLnNoaWZ0KS5tdWwodGhpcy5taW52KS5pbWFza24odGhpcy5zaGlmdCkubXVsKHRoaXMubSkseD1u''@;'; + put 'put ''ZS5pc3ViKHRlKS5pdXNocm4odGhpcy5zaGlmdCksUD14O3JldHVybiB4LmNtcCh0aGlzLm0pPj0wP1A9eC5pc3ViKHRoaXMubSk6eC5jbXBuKDApPDAmJihQPXguaWFkZCh0aGlzLm0pKSxQLl9mb3JjZVJlZCh0aGlzKX0sRWUucHJvdG90eXBlLmludm09ZnVuY3Rpb24oTyl7cmV0dXJuIHRo''@;'; + put 'put ''aXMuaW1vZChPLl9pbnZtcCh0aGlzLm0pLm11bCh0aGlzLnIyKSkuX2ZvcmNlUmVkKHRoaXMpfX0oWGU9TC5ubWQoWGUpLHRoaXMpfSwzMjM5MTpYZT0+e2Z1bmN0aW9uIEplKEwsbWUpe2lmKCFMKXRocm93IG5ldyBFcnJvcihtZXx8IkFzc2VydGlvbiBmYWlsZWQiKX1YZS5leHBvcnRzPUpl''@;'; + put 'put ''LEplLmVxdWFsPWZ1bmN0aW9uKG1lLEIsRSl7aWYobWUhPUIpdGhyb3cgbmV3IEVycm9yKEV8fCJBc3NlcnRpb24gZmFpbGVkOiAiK21lKyIgIT0gIitCKX19LDU4MTk1OihYZSxKZSk9PnsidXNlIHN0cmljdCI7dmFyIEw9SmU7ZnVuY3Rpb24gQihNZSl7cmV0dXJuIDE9PT1NZS5sZW5ndGg/''@;'; + put 'put ''IjAiK01lOk1lfWZ1bmN0aW9uIEUoTWUpe2Zvcih2YXIgVT0iIixRPTA7UTxNZS5sZW5ndGg7USsrKVUrPUIoTWVbUV0udG9TdHJpbmcoMTYpKTtyZXR1cm4gVX1MLnRvQXJyYXk9ZnVuY3Rpb24gbWUoTWUsVSl7aWYoQXJyYXkuaXNBcnJheShNZSkpcmV0dXJuIE1lLnNsaWNlKCk7aWYoIU1l''@;'; + put 'put ''KXJldHVybltdO3ZhciBRPVtdO2lmKCJzdHJpbmciIT10eXBlb2YgTWUpe2Zvcih2YXIgWj0wO1o8TWUubGVuZ3RoO1orKylRW1pdPTB8TWVbWl07cmV0dXJuIFF9aWYoImhleCI9PT1VKWZvcigoTWU9TWUucmVwbGFjZSgvW15hLXowLTldKy9naSwiIikpLmxlbmd0aCUyIT0wJiYoTWU9IjAi''@;'; + put 'put ''K01lKSxaPTA7WjxNZS5sZW5ndGg7Wis9MilRLnB1c2gocGFyc2VJbnQoTWVbWl0rTWVbWisxXSwxNikpO2Vsc2UgZm9yKFo9MDtaPE1lLmxlbmd0aDtaKyspe3ZhciBpZT1NZS5jaGFyQ29kZUF0KFopLGFlPWllPj44LFk9MjU1JmllO2FlP1EucHVzaChhZSxZKTpRLnB1c2goWSl9cmV0dXJu''@;'; + put 'put ''IFF9LEwuemVybzI9QixMLnRvSGV4PUUsTC5lbmNvZGU9ZnVuY3Rpb24oVSxRKXtyZXR1cm4iaGV4Ij09PVE/RShVKTpVfX0sMjcwODg6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7bWUuZGVmaW5lTG9jYWxlKCJhZiIse21vbnRoczoiSmFudWFyaWVfRmVi''@;'; + put 'put ''cnVhcmllX01hYXJ0X0FwcmlsX01laV9KdW5pZV9KdWxpZV9BdWd1c3R1c19TZXB0ZW1iZXJfT2t0b2Jlcl9Ob3ZlbWJlcl9EZXNlbWJlciIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiSmFuX0ZlYl9NcnRfQXByX01laV9KdW5fSnVsX0F1Z19TZXBfT2t0X05vdl9EZXMiLnNwbGl0KCJfIiks''@;'; + put 'put ''d2Vla2RheXM6IlNvbmRhZ19NYWFuZGFnX0RpbnNkYWdfV29lbnNkYWdfRG9uZGVyZGFnX1ZyeWRhZ19TYXRlcmRhZyIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJTb25fTWFhX0Rpbl9Xb2VfRG9uX1ZyeV9TYXQiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46IlNvX01hX0RpX1dvX0RvX1Zy''@;'; + put 'put ''X1NhIi5zcGxpdCgiXyIpLG1lcmlkaWVtUGFyc2U6L3ZtfG5tL2ksaXNQTTpmdW5jdGlvbihFKXtyZXR1cm4vXm5tJC9pLnRlc3QoRSl9LG1lcmlkaWVtOmZ1bmN0aW9uKEUsTWUsVSl7cmV0dXJuIEU8MTI/VT8idm0iOiJWTSI6VT8ibm0iOiJOTSJ9LGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6''@;'; + put 'put ''bW0iLExUUzoiSEg6bW06c3MiLEw6IkREL01NL1lZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0gWVlZWSBISDptbSIsTExMTDoiZGRkZCwgRCBNTU1NIFlZWVkgSEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW1ZhbmRhZyBvbV0gTFQiLG5leHREYXk6IltNXHhmNHJlIG9tXSBM''@;'; + put 'put ''VCIsbmV4dFdlZWs6ImRkZGQgW29tXSBMVCIsbGFzdERheToiW0dpc3RlciBvbV0gTFQiLGxhc3RXZWVrOiJbTGFhc10gZGRkZCBbb21dIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJvb3IgJXMiLHBhc3Q6IiVzIGdlbGVkZSIsczoiJ24gcGFhciBzZWtvbmRlcyIs''@;'; + put 'put ''c3M6IiVkIHNla29uZGVzIixtOiInbiBtaW51dXQiLG1tOiIlZCBtaW51dGUiLGg6IiduIHV1ciIsaGg6IiVkIHVyZSIsZDoiJ24gZGFnIixkZDoiJWQgZGFlIixNOiInbiBtYWFuZCIsTU06IiVkIG1hYW5kZSIseToiJ24gamFhciIseXk6IiVkIGphYXIifSxkYXlPZk1vbnRoT3JkaW5hbFBh''@;'; + put 'put ''cnNlOi9cZHsxLDJ9KHN0ZXxkZSkvLG9yZGluYWw6ZnVuY3Rpb24oRSl7cmV0dXJuIEUrKDE9PT1FfHw4PT09RXx8RT49MjA/InN0ZSI6ImRlIil9LHdlZWs6e2RvdzoxLGRveTo0fX0pfShMKDE1NDM5KSl9LDUyNTAyOmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlvbihtZSl7InVzZSBzdHJp''@;'; + put 'put ''Y3QiO3ZhciBCPWZ1bmN0aW9uKFope3JldHVybiAwPT09Wj8wOjE9PT1aPzE6Mj09PVo/MjpaJTEwMD49MyYmWiUxMDA8PTEwPzM6WiUxMDA+PTExPzQ6NX0sRT17czpbIlx1MDYyM1x1MDY0Mlx1MDY0NCBcdTA2NDVcdTA2NDYgXHUwNjJiXHUwNjI3XHUwNjQ2XHUwNjRhXHUwNjI5IiwiXHUw''@;'; + put 'put ''NjJiXHUwNjI3XHUwNjQ2XHUwNjRhXHUwNjI5IFx1MDY0OFx1MDYyN1x1MDYyZFx1MDYyZlx1MDYyOSIsWyJcdTA2MmJcdTA2MjdcdTA2NDZcdTA2NGFcdTA2MmFcdTA2MjdcdTA2NDYiLCJcdTA2MmJcdTA2MjdcdTA2NDZcdTA2NGFcdTA2MmFcdTA2NGFcdTA2NDYiXSwiJWQgXHUwNjJiXHUw''@;'; + put 'put ''NjQ4XHUwNjI3XHUwNjQ2IiwiJWQgXHUwNjJiXHUwNjI3XHUwNjQ2XHUwNjRhXHUwNjI5IiwiJWQgXHUwNjJiXHUwNjI3XHUwNjQ2XHUwNjRhXHUwNjI5Il0sbTpbIlx1MDYyM1x1MDY0Mlx1MDY0NCBcdTA2NDVcdTA2NDYgXHUwNjJmXHUwNjQyXHUwNjRhXHUwNjQyXHUwNjI5IiwiXHUwNjJm''@;'; + put 'put ''XHUwNjQyXHUwNjRhXHUwNjQyXHUwNjI5IFx1MDY0OFx1MDYyN1x1MDYyZFx1MDYyZlx1MDYyOSIsWyJcdTA2MmZcdTA2NDJcdTA2NGFcdTA2NDJcdTA2MmFcdTA2MjdcdTA2NDYiLCJcdTA2MmZcdTA2NDJcdTA2NGFcdTA2NDJcdTA2MmFcdTA2NGFcdTA2NDYiXSwiJWQgXHUwNjJmXHUwNjQy''@;'; + put 'put ''XHUwNjI3XHUwNjI2XHUwNjQyIiwiJWQgXHUwNjJmXHUwNjQyXHUwNjRhXHUwNjQyXHUwNjI5IiwiJWQgXHUwNjJmXHUwNjQyXHUwNjRhXHUwNjQyXHUwNjI5Il0saDpbIlx1MDYyM1x1MDY0Mlx1MDY0NCBcdTA2NDVcdTA2NDYgXHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI5IiwiXHUwNjMzXHUw''@;'; + put 'put ''NjI3XHUwNjM5XHUwNjI5IFx1MDY0OFx1MDYyN1x1MDYyZFx1MDYyZlx1MDYyOSIsWyJcdTA2MzNcdTA2MjdcdTA2MzlcdTA2MmFcdTA2MjdcdTA2NDYiLCJcdTA2MzNcdTA2MjdcdTA2MzlcdTA2MmFcdTA2NGFcdTA2NDYiXSwiJWQgXHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI3XHUwNjJhIiwi''@;'; + put 'put ''JWQgXHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI5IiwiJWQgXHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI5Il0sZDpbIlx1MDYyM1x1MDY0Mlx1MDY0NCBcdTA2NDVcdTA2NDYgXHUwNjRhXHUwNjQ4XHUwNjQ1IiwiXHUwNjRhXHUwNjQ4XHUwNjQ1IFx1MDY0OFx1MDYyN1x1MDYyZFx1MDYyZiIsWyJc''@;'; + put 'put ''dTA2NGFcdTA2NDhcdTA2NDVcdTA2MjdcdTA2NDYiLCJcdTA2NGFcdTA2NDhcdTA2NDVcdTA2NGFcdTA2NDYiXSwiJWQgXHUwNjIzXHUwNjRhXHUwNjI3XHUwNjQ1IiwiJWQgXHUwNjRhXHUwNjQ4XHUwNjQ1XHUwNjRiXHUwNjI3IiwiJWQgXHUwNjRhXHUwNjQ4XHUwNjQ1Il0sTTpbIlx1MDYy''@;'; + put 'put ''M1x1MDY0Mlx1MDY0NCBcdTA2NDVcdTA2NDYgXHUwNjM0XHUwNjQ3XHUwNjMxIiwiXHUwNjM0XHUwNjQ3XHUwNjMxIFx1MDY0OFx1MDYyN1x1MDYyZFx1MDYyZiIsWyJcdTA2MzRcdTA2NDdcdTA2MzFcdTA2MjdcdTA2NDYiLCJcdTA2MzRcdTA2NDdcdTA2MzFcdTA2NGFcdTA2NDYiXSwiJWQg''@;'; + put 'put ''XHUwNjIzXHUwNjM0XHUwNjQ3XHUwNjMxIiwiJWQgXHUwNjM0XHUwNjQ3XHUwNjMxXHUwNjI3IiwiJWQgXHUwNjM0XHUwNjQ3XHUwNjMxIl0seTpbIlx1MDYyM1x1MDY0Mlx1MDY0NCBcdTA2NDVcdTA2NDYgXHUwNjM5XHUwNjI3XHUwNjQ1IiwiXHUwNjM5XHUwNjI3XHUwNjQ1IFx1MDY0OFx1''@;'; + put 'put ''MDYyN1x1MDYyZFx1MDYyZiIsWyJcdTA2MzlcdTA2MjdcdTA2NDVcdTA2MjdcdTA2NDYiLCJcdTA2MzlcdTA2MjdcdTA2NDVcdTA2NGFcdTA2NDYiXSwiJWQgXHUwNjIzXHUwNjM5XHUwNjQ4XHUwNjI3XHUwNjQ1IiwiJWQgXHUwNjM5XHUwNjI3XHUwNjQ1XHUwNjRiXHUwNjI3IiwiJWQgXHUw''@;'; + put 'put ''NjM5XHUwNjI3XHUwNjQ1Il19LE1lPWZ1bmN0aW9uKFope3JldHVybiBmdW5jdGlvbihpZSxhZSxZLFcpe3ZhciBOPUIoaWUpLGVlPUVbWl1bQihpZSldO3JldHVybiAyPT09TiYmKGVlPWVlW2FlPzA6MV0pLGVlLnJlcGxhY2UoLyVkL2ksaWUpfX0sVT1bIlx1MDYyY1x1MDYyN1x1MDY0Nlx1''@;'; + put 'put ''MDY0MVx1MDY0YSIsIlx1MDY0MVx1MDY0YVx1MDY0MVx1MDYzMVx1MDY0YSIsIlx1MDY0NVx1MDYyN1x1MDYzMVx1MDYzMyIsIlx1MDYyM1x1MDY0MVx1MDYzMVx1MDY0YVx1MDY0NCIsIlx1MDY0NVx1MDYyN1x1MDY0YSIsIlx1MDYyY1x1MDY0OFx1MDYyN1x1MDY0NiIsIlx1MDYyY1x1MDY0''@;'; + put 'put ''OFx1MDY0YVx1MDY0NFx1MDY0YVx1MDYyOSIsIlx1MDYyM1x1MDY0OFx1MDYyYSIsIlx1MDYzM1x1MDYyOFx1MDYyYVx1MDY0NVx1MDYyOFx1MDYzMSIsIlx1MDYyM1x1MDY0M1x1MDYyYVx1MDY0OFx1MDYyOFx1MDYzMSIsIlx1MDY0Nlx1MDY0OFx1MDY0MVx1MDY0NVx1MDYyOFx1MDYzMSIs''@;'; + put 'put ''Ilx1MDYyZlx1MDY0YVx1MDYzM1x1MDY0NVx1MDYyOFx1MDYzMSJdO21lLmRlZmluZUxvY2FsZSgiYXItZHoiLHttb250aHM6VSxtb250aHNTaG9ydDpVLHdlZWtkYXlzOiJcdTA2MjdcdTA2NDRcdTA2MjNcdTA2MmRcdTA2MmZfXHUwNjI3XHUwNjQ0XHUwNjI1XHUwNjJiXHUwNjQ2XHUwNjRh''@;'; + put 'put ''XHUwNjQ2X1x1MDYyN1x1MDY0NFx1MDYyYlx1MDY0NFx1MDYyN1x1MDYyYlx1MDYyN1x1MDYyMV9cdTA2MjdcdTA2NDRcdTA2MjNcdTA2MzFcdTA2MjhcdTA2MzlcdTA2MjdcdTA2MjFfXHUwNjI3XHUwNjQ0XHUwNjJlXHUwNjQ1XHUwNjRhXHUwNjMzX1x1MDYyN1x1MDY0NFx1MDYyY1x1MDY0''@;'; + put 'put ''NVx1MDYzOVx1MDYyOV9cdTA2MjdcdTA2NDRcdTA2MzNcdTA2MjhcdTA2MmEiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiXHUwNjIzXHUwNjJkXHUwNjJmX1x1MDYyNVx1MDYyYlx1MDY0Nlx1MDY0YVx1MDY0Nl9cdTA2MmJcdTA2NDRcdTA2MjdcdTA2MmJcdTA2MjdcdTA2MjFfXHUwNjIz''@;'; + put 'put ''XHUwNjMxXHUwNjI4XHUwNjM5XHUwNjI3XHUwNjIxX1x1MDYyZVx1MDY0NVx1MDY0YVx1MDYzM19cdTA2MmNcdTA2NDVcdTA2MzlcdTA2MjlfXHUwNjMzXHUwNjI4XHUwNjJhIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJcdTA2MmRfXHUwNjQ2X1x1MDYyYl9cdTA2MzFfXHUwNjJlX1x1MDYy''@;'; + put 'put ''Y19cdTA2MzMiLnNwbGl0KCJfIiksd2Vla2RheXNQYXJzZUV4YWN0OiEwLGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IkQvXHUyMDBmTS9cdTIwMGZZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVkgSEg6bW0iLExMTEw6ImRkZGQgRCBN''@;'; + put 'put ''TU1NIFlZWVkgSEg6bW0ifSxtZXJpZGllbVBhcnNlOi9cdTA2MzV8XHUwNjQ1Lyxpc1BNOmZ1bmN0aW9uKFope3JldHVybiJcdTA2NDUiPT09Wn0sbWVyaWRpZW06ZnVuY3Rpb24oWixpZSxhZSl7cmV0dXJuIFo8MTI/Ilx1MDYzNSI6Ilx1MDY0NSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbXHUw''@;'; + put 'put ''NjI3XHUwNjQ0XHUwNjRhXHUwNjQ4XHUwNjQ1IFx1MDYzOVx1MDY0Nlx1MDYyZiBcdTA2MjdcdTA2NDRcdTA2MzNcdTA2MjdcdTA2MzlcdTA2MjldIExUIixuZXh0RGF5OiJbXHUwNjNhXHUwNjJmXHUwNjRiXHUwNjI3IFx1MDYzOVx1MDY0Nlx1MDYyZiBcdTA2MjdcdTA2NDRcdTA2MzNcdTA2''@;'; + put 'put ''MjdcdTA2MzlcdTA2MjldIExUIixuZXh0V2VlazoiZGRkZCBbXHUwNjM5XHUwNjQ2XHUwNjJmIFx1MDYyN1x1MDY0NFx1MDYzM1x1MDYyN1x1MDYzOVx1MDYyOV0gTFQiLGxhc3REYXk6IltcdTA2MjNcdTA2NDVcdTA2MzMgXHUwNjM5XHUwNjQ2XHUwNjJmIFx1MDYyN1x1MDY0NFx1MDYzM1x1''@;'; + put 'put ''MDYyN1x1MDYzOVx1MDYyOV0gTFQiLGxhc3RXZWVrOiJkZGRkIFtcdTA2MzlcdTA2NDZcdTA2MmYgXHUwNjI3XHUwNjQ0XHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI5XSBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiXHUwNjI4XHUwNjM5XHUwNjJmICVzIixwYXN0OiJc''@;'; + put 'put ''dTA2NDVcdTA2NDZcdTA2MzAgJXMiLHM6TWUoInMiKSxzczpNZSgicyIpLG06TWUoIm0iKSxtbTpNZSgibSIpLGg6TWUoImgiKSxoaDpNZSgiaCIpLGQ6TWUoImQiKSxkZDpNZSgiZCIpLE06TWUoIk0iKSxNTTpNZSgiTSIpLHk6TWUoInkiKSx5eTpNZSgieSIpfSxwb3N0Zm9ybWF0OmZ1bmN0''@;'; + put 'put ''aW9uKFope3JldHVybiBaLnJlcGxhY2UoLywvZywiXHUwNjBjIil9LHdlZWs6e2RvdzowLGRveTo0fX0pfShMKDE1NDM5KSl9LDMwMTI4OmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlvbihtZSl7InVzZSBzdHJpY3QiO21lLmRlZmluZUxvY2FsZSgiYXIta3ciLHttb250aHM6Ilx1MDY0YVx1''@;'; + put 'put ''MDY0Nlx1MDYyN1x1MDY0YVx1MDYzMV9cdTA2NDFcdTA2MjhcdTA2MzFcdTA2MjdcdTA2NGFcdTA2MzFfXHUwNjQ1XHUwNjI3XHUwNjMxXHUwNjMzX1x1MDYyM1x1MDYyOFx1MDYzMVx1MDY0YVx1MDY0NF9cdTA2NDVcdTA2MjdcdTA2NGFfXHUwNjRhXHUwNjQ4XHUwNjQ2XHUwNjRhXHUwNjQ4''@;'; + put 'put ''X1x1MDY0YVx1MDY0OFx1MDY0NFx1MDY0YVx1MDY0OFx1MDYzMl9cdTA2M2FcdTA2MzRcdTA2MmFfXHUwNjM0XHUwNjJhXHUwNjQ2XHUwNjI4XHUwNjMxX1x1MDYyM1x1MDY0M1x1MDYyYVx1MDY0OFx1MDYyOFx1MDYzMV9cdTA2NDZcdTA2NDhcdTA2NDZcdTA2MjhcdTA2MzFfXHUwNjJmXHUw''@;'; + put 'put ''NjJjXHUwNjQ2XHUwNjI4XHUwNjMxIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJcdTA2NGFcdTA2NDZcdTA2MjdcdTA2NGFcdTA2MzFfXHUwNjQxXHUwNjI4XHUwNjMxXHUwNjI3XHUwNjRhXHUwNjMxX1x1MDY0NVx1MDYyN1x1MDYzMVx1MDYzM19cdTA2MjNcdTA2MjhcdTA2MzFcdTA2NGFc''@;'; + put 'put ''dTA2NDRfXHUwNjQ1XHUwNjI3XHUwNjRhX1x1MDY0YVx1MDY0OFx1MDY0Nlx1MDY0YVx1MDY0OF9cdTA2NGFcdTA2NDhcdTA2NDRcdTA2NGFcdTA2NDhcdTA2MzJfXHUwNjNhXHUwNjM0XHUwNjJhX1x1MDYzNFx1MDYyYVx1MDY0Nlx1MDYyOFx1MDYzMV9cdTA2MjNcdTA2NDNcdTA2MmFcdTA2''@;'; + put 'put ''NDhcdTA2MjhcdTA2MzFfXHUwNjQ2XHUwNjQ4XHUwNjQ2XHUwNjI4XHUwNjMxX1x1MDYyZlx1MDYyY1x1MDY0Nlx1MDYyOFx1MDYzMSIuc3BsaXQoIl8iKSx3ZWVrZGF5czoiXHUwNjI3XHUwNjQ0XHUwNjIzXHUwNjJkXHUwNjJmX1x1MDYyN1x1MDY0NFx1MDYyNVx1MDYyYVx1MDY0Nlx1MDY0''@;'; + put 'put ''YVx1MDY0Nl9cdTA2MjdcdTA2NDRcdTA2MmJcdTA2NDRcdTA2MjdcdTA2MmJcdTA2MjdcdTA2MjFfXHUwNjI3XHUwNjQ0XHUwNjIzXHUwNjMxXHUwNjI4XHUwNjM5XHUwNjI3XHUwNjIxX1x1MDYyN1x1MDY0NFx1MDYyZVx1MDY0NVx1MDY0YVx1MDYzM19cdTA2MjdcdTA2NDRcdTA2MmNcdTA2''@;'; + put 'put ''NDVcdTA2MzlcdTA2MjlfXHUwNjI3XHUwNjQ0XHUwNjMzXHUwNjI4XHUwNjJhIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6Ilx1MDYyN1x1MDYyZFx1MDYyZl9cdTA2MjdcdTA2MmFcdTA2NDZcdTA2NGFcdTA2NDZfXHUwNjJiXHUwNjQ0XHUwNjI3XHUwNjJiXHUwNjI3XHUwNjIxX1x1MDYy''@;'; + put 'put ''N1x1MDYzMVx1MDYyOFx1MDYzOVx1MDYyN1x1MDYyMV9cdTA2MmVcdTA2NDVcdTA2NGFcdTA2MzNfXHUwNjJjXHUwNjQ1XHUwNjM5XHUwNjI5X1x1MDYzM1x1MDYyOFx1MDYyYSIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiXHUwNjJkX1x1MDY0Nl9cdTA2MmJfXHUwNjMxX1x1MDYyZV9cdTA2''@;'; + put 'put ''MmNfXHUwNjMzIi5zcGxpdCgiXyIpLHdlZWtkYXlzUGFyc2VFeGFjdDohMCxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJERC9NTS9ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVkgSEg6bW0iLExMTEw6ImRkZGQgRCBNTU1NIFlZWVkg''@;'; + put 'put ''SEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW1x1MDYyN1x1MDY0NFx1MDY0YVx1MDY0OFx1MDY0NSBcdTA2MzlcdTA2NDRcdTA2NDkgXHUwNjI3XHUwNjQ0XHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI5XSBMVCIsbmV4dERheToiW1x1MDYzYVx1MDYyZlx1MDYyNyBcdTA2MzlcdTA2NDRcdTA2''@;'; + put 'put ''NDkgXHUwNjI3XHUwNjQ0XHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI5XSBMVCIsbmV4dFdlZWs6ImRkZGQgW1x1MDYzOVx1MDY0NFx1MDY0OSBcdTA2MjdcdTA2NDRcdTA2MzNcdTA2MjdcdTA2MzlcdTA2MjldIExUIixsYXN0RGF5OiJbXHUwNjIzXHUwNjQ1XHUwNjMzIFx1MDYzOVx1MDY0NFx1''@;'; + put 'put ''MDY0OSBcdTA2MjdcdTA2NDRcdTA2MzNcdTA2MjdcdTA2MzlcdTA2MjldIExUIixsYXN0V2VlazoiZGRkZCBbXHUwNjM5XHUwNjQ0XHUwNjQ5IFx1MDYyN1x1MDY0NFx1MDYzM1x1MDYyN1x1MDYzOVx1MDYyOV0gTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6Ilx1MDY0''@;'; + put 'put ''MVx1MDY0YSAlcyIscGFzdDoiXHUwNjQ1XHUwNjQ2XHUwNjMwICVzIixzOiJcdTA2MmJcdTA2NDhcdTA2MjdcdTA2NDYiLHNzOiIlZCBcdTA2MmJcdTA2MjdcdTA2NDZcdTA2NGFcdTA2MjkiLG06Ilx1MDYyZlx1MDY0Mlx1MDY0YVx1MDY0Mlx1MDYyOSIsbW06IiVkIFx1MDYyZlx1MDY0Mlx1''@;'; + put 'put ''MDYyN1x1MDYyNlx1MDY0MiIsaDoiXHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI5IixoaDoiJWQgXHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI3XHUwNjJhIixkOiJcdTA2NGFcdTA2NDhcdTA2NDUiLGRkOiIlZCBcdTA2MjNcdTA2NGFcdTA2MjdcdTA2NDUiLE06Ilx1MDYzNFx1MDY0N1x1MDYzMSIs''@;'; + put 'put ''TU06IiVkIFx1MDYyM1x1MDYzNFx1MDY0N1x1MDYzMSIseToiXHUwNjMzXHUwNjQ2XHUwNjI5Iix5eToiJWQgXHUwNjMzXHUwNjQ2XHUwNjQ4XHUwNjI3XHUwNjJhIn0sd2Vlazp7ZG93OjAsZG95OjEyfX0pfShMKDE1NDM5KSl9LDg0NTE5OmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlvbiht''@;'; + put 'put ''ZSl7InVzZSBzdHJpY3QiO3ZhciBCPXsxOiIxIiwyOiIyIiwzOiIzIiw0OiI0Iiw1OiI1Iiw2OiI2Iiw3OiI3Iiw4OiI4Iiw5OiI5IiwwOiIwIn0sRT1mdW5jdGlvbihpZSl7cmV0dXJuIDA9PT1pZT8wOjE9PT1pZT8xOjI9PT1pZT8yOmllJTEwMD49MyYmaWUlMTAwPD0xMD8zOmllJTEwMD49''@;'; + put 'put ''MTE/NDo1fSxNZT17czpbIlx1MDYyM1x1MDY0Mlx1MDY0NCBcdTA2NDVcdTA2NDYgXHUwNjJiXHUwNjI3XHUwNjQ2XHUwNjRhXHUwNjI5IiwiXHUwNjJiXHUwNjI3XHUwNjQ2XHUwNjRhXHUwNjI5IFx1MDY0OFx1MDYyN1x1MDYyZFx1MDYyZlx1MDYyOSIsWyJcdTA2MmJcdTA2MjdcdTA2NDZc''@;'; + put 'put ''dTA2NGFcdTA2MmFcdTA2MjdcdTA2NDYiLCJcdTA2MmJcdTA2MjdcdTA2NDZcdTA2NGFcdTA2MmFcdTA2NGFcdTA2NDYiXSwiJWQgXHUwNjJiXHUwNjQ4XHUwNjI3XHUwNjQ2IiwiJWQgXHUwNjJiXHUwNjI3XHUwNjQ2XHUwNjRhXHUwNjI5IiwiJWQgXHUwNjJiXHUwNjI3XHUwNjQ2XHUwNjRh''@;'; + put 'put ''XHUwNjI5Il0sbTpbIlx1MDYyM1x1MDY0Mlx1MDY0NCBcdTA2NDVcdTA2NDYgXHUwNjJmXHUwNjQyXHUwNjRhXHUwNjQyXHUwNjI5IiwiXHUwNjJmXHUwNjQyXHUwNjRhXHUwNjQyXHUwNjI5IFx1MDY0OFx1MDYyN1x1MDYyZFx1MDYyZlx1MDYyOSIsWyJcdTA2MmZcdTA2NDJcdTA2NGFcdTA2''@;'; + put 'put ''NDJcdTA2MmFcdTA2MjdcdTA2NDYiLCJcdTA2MmZcdTA2NDJcdTA2NGFcdTA2NDJcdTA2MmFcdTA2NGFcdTA2NDYiXSwiJWQgXHUwNjJmXHUwNjQyXHUwNjI3XHUwNjI2XHUwNjQyIiwiJWQgXHUwNjJmXHUwNjQyXHUwNjRhXHUwNjQyXHUwNjI5IiwiJWQgXHUwNjJmXHUwNjQyXHUwNjRhXHUw''@;'; + put 'put ''NjQyXHUwNjI5Il0saDpbIlx1MDYyM1x1MDY0Mlx1MDY0NCBcdTA2NDVcdTA2NDYgXHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI5IiwiXHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI5IFx1MDY0OFx1MDYyN1x1MDYyZFx1MDYyZlx1MDYyOSIsWyJcdTA2MzNcdTA2MjdcdTA2MzlcdTA2MmFcdTA2Mjdc''@;'; + put 'put ''dTA2NDYiLCJcdTA2MzNcdTA2MjdcdTA2MzlcdTA2MmFcdTA2NGFcdTA2NDYiXSwiJWQgXHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI3XHUwNjJhIiwiJWQgXHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI5IiwiJWQgXHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI5Il0sZDpbIlx1MDYyM1x1MDY0Mlx1MDY0''@;'; + put 'put ''NCBcdTA2NDVcdTA2NDYgXHUwNjRhXHUwNjQ4XHUwNjQ1IiwiXHUwNjRhXHUwNjQ4XHUwNjQ1IFx1MDY0OFx1MDYyN1x1MDYyZFx1MDYyZiIsWyJcdTA2NGFcdTA2NDhcdTA2NDVcdTA2MjdcdTA2NDYiLCJcdTA2NGFcdTA2NDhcdTA2NDVcdTA2NGFcdTA2NDYiXSwiJWQgXHUwNjIzXHUwNjRh''@;'; + put 'put ''XHUwNjI3XHUwNjQ1IiwiJWQgXHUwNjRhXHUwNjQ4XHUwNjQ1XHUwNjRiXHUwNjI3IiwiJWQgXHUwNjRhXHUwNjQ4XHUwNjQ1Il0sTTpbIlx1MDYyM1x1MDY0Mlx1MDY0NCBcdTA2NDVcdTA2NDYgXHUwNjM0XHUwNjQ3XHUwNjMxIiwiXHUwNjM0XHUwNjQ3XHUwNjMxIFx1MDY0OFx1MDYyN1x1''@;'; + put 'put ''MDYyZFx1MDYyZiIsWyJcdTA2MzRcdTA2NDdcdTA2MzFcdTA2MjdcdTA2NDYiLCJcdTA2MzRcdTA2NDdcdTA2MzFcdTA2NGFcdTA2NDYiXSwiJWQgXHUwNjIzXHUwNjM0XHUwNjQ3XHUwNjMxIiwiJWQgXHUwNjM0XHUwNjQ3XHUwNjMxXHUwNjI3IiwiJWQgXHUwNjM0XHUwNjQ3XHUwNjMxIl0s''@;'; + put 'put ''eTpbIlx1MDYyM1x1MDY0Mlx1MDY0NCBcdTA2NDVcdTA2NDYgXHUwNjM5XHUwNjI3XHUwNjQ1IiwiXHUwNjM5XHUwNjI3XHUwNjQ1IFx1MDY0OFx1MDYyN1x1MDYyZFx1MDYyZiIsWyJcdTA2MzlcdTA2MjdcdTA2NDVcdTA2MjdcdTA2NDYiLCJcdTA2MzlcdTA2MjdcdTA2NDVcdTA2NGFcdTA2''@;'; + put 'put ''NDYiXSwiJWQgXHUwNjIzXHUwNjM5XHUwNjQ4XHUwNjI3XHUwNjQ1IiwiJWQgXHUwNjM5XHUwNjI3XHUwNjQ1XHUwNjRiXHUwNjI3IiwiJWQgXHUwNjM5XHUwNjI3XHUwNjQ1Il19LFU9ZnVuY3Rpb24oaWUpe3JldHVybiBmdW5jdGlvbihhZSxZLFcsTil7dmFyIGVlPUUoYWUpLHE9TWVbaWVd''@;'; + put 'put ''W0UoYWUpXTtyZXR1cm4gMj09PWVlJiYocT1xW1k/MDoxXSkscS5yZXBsYWNlKC8lZC9pLGFlKX19LFE9WyJcdTA2NGFcdTA2NDZcdTA2MjdcdTA2NGFcdTA2MzEiLCJcdTA2NDFcdTA2MjhcdTA2MzFcdTA2MjdcdTA2NGFcdTA2MzEiLCJcdTA2NDVcdTA2MjdcdTA2MzFcdTA2MzMiLCJcdTA2''@;'; + put 'put ''MjNcdTA2MjhcdTA2MzFcdTA2NGFcdTA2NDQiLCJcdTA2NDVcdTA2MjdcdTA2NGFcdTA2NDgiLCJcdTA2NGFcdTA2NDhcdTA2NDZcdTA2NGFcdTA2NDgiLCJcdTA2NGFcdTA2NDhcdTA2NDRcdTA2NGFcdTA2NDgiLCJcdTA2MjNcdTA2M2FcdTA2MzNcdTA2MzdcdTA2MzMiLCJcdTA2MzNcdTA2''@;'; + put 'put ''MjhcdTA2MmFcdTA2NDVcdTA2MjhcdTA2MzEiLCJcdTA2MjNcdTA2NDNcdTA2MmFcdTA2NDhcdTA2MjhcdTA2MzEiLCJcdTA2NDZcdTA2NDhcdTA2NDFcdTA2NDVcdTA2MjhcdTA2MzEiLCJcdTA2MmZcdTA2NGFcdTA2MzNcdTA2NDVcdTA2MjhcdTA2MzEiXTttZS5kZWZpbmVMb2NhbGUoImFy''@;'; + put 'put ''LWx5Iix7bW9udGhzOlEsbW9udGhzU2hvcnQ6USx3ZWVrZGF5czoiXHUwNjI3XHUwNjQ0XHUwNjIzXHUwNjJkXHUwNjJmX1x1MDYyN1x1MDY0NFx1MDYyNVx1MDYyYlx1MDY0Nlx1MDY0YVx1MDY0Nl9cdTA2MjdcdTA2NDRcdTA2MmJcdTA2NDRcdTA2MjdcdTA2MmJcdTA2MjdcdTA2MjFfXHUw''@;'; + put 'put ''NjI3XHUwNjQ0XHUwNjIzXHUwNjMxXHUwNjI4XHUwNjM5XHUwNjI3XHUwNjIxX1x1MDYyN1x1MDY0NFx1MDYyZVx1MDY0NVx1MDY0YVx1MDYzM19cdTA2MjdcdTA2NDRcdTA2MmNcdTA2NDVcdTA2MzlcdTA2MjlfXHUwNjI3XHUwNjQ0XHUwNjMzXHUwNjI4XHUwNjJhIi5zcGxpdCgiXyIpLHdl''@;'; + put 'put ''ZWtkYXlzU2hvcnQ6Ilx1MDYyM1x1MDYyZFx1MDYyZl9cdTA2MjVcdTA2MmJcdTA2NDZcdTA2NGFcdTA2NDZfXHUwNjJiXHUwNjQ0XHUwNjI3XHUwNjJiXHUwNjI3XHUwNjIxX1x1MDYyM1x1MDYzMVx1MDYyOFx1MDYzOVx1MDYyN1x1MDYyMV9cdTA2MmVcdTA2NDVcdTA2NGFcdTA2MzNfXHUw''@;'; + put 'put ''NjJjXHUwNjQ1XHUwNjM5XHUwNjI5X1x1MDYzM1x1MDYyOFx1MDYyYSIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiXHUwNjJkX1x1MDY0Nl9cdTA2MmJfXHUwNjMxX1x1MDYyZV9cdTA2MmNfXHUwNjMzIi5zcGxpdCgiXyIpLHdlZWtkYXlzUGFyc2VFeGFjdDohMCxsb25nRGF0ZUZvcm1hdDp7''@;'; + put 'put ''TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJEL1x1MjAwZk0vXHUyMDBmWVlZWSIsTEw6IkQgTU1NTSBZWVlZIixMTEw6IkQgTU1NTSBZWVlZIEhIOm1tIixMTExMOiJkZGRkIEQgTU1NTSBZWVlZIEhIOm1tIn0sbWVyaWRpZW1QYXJzZTovXHUwNjM1fFx1MDY0NS8saXNQTTpmdW5jdGlv''@;'; + put 'put ''bihpZSl7cmV0dXJuIlx1MDY0NSI9PT1pZX0sbWVyaWRpZW06ZnVuY3Rpb24oaWUsYWUsWSl7cmV0dXJuIGllPDEyPyJcdTA2MzUiOiJcdTA2NDUifSxjYWxlbmRhcjp7c2FtZURheToiW1x1MDYyN1x1MDY0NFx1MDY0YVx1MDY0OFx1MDY0NSBcdTA2MzlcdTA2NDZcdTA2MmYgXHUwNjI3XHUw''@;'; + put 'put ''NjQ0XHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI5XSBMVCIsbmV4dERheToiW1x1MDYzYVx1MDYyZlx1MDY0Ylx1MDYyNyBcdTA2MzlcdTA2NDZcdTA2MmYgXHUwNjI3XHUwNjQ0XHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI5XSBMVCIsbmV4dFdlZWs6ImRkZGQgW1x1MDYzOVx1MDY0Nlx1MDYyZiBc''@;'; + put 'put ''dTA2MjdcdTA2NDRcdTA2MzNcdTA2MjdcdTA2MzlcdTA2MjldIExUIixsYXN0RGF5OiJbXHUwNjIzXHUwNjQ1XHUwNjMzIFx1MDYzOVx1MDY0Nlx1MDYyZiBcdTA2MjdcdTA2NDRcdTA2MzNcdTA2MjdcdTA2MzlcdTA2MjldIExUIixsYXN0V2VlazoiZGRkZCBbXHUwNjM5XHUwNjQ2XHUwNjJm''@;'; + put 'put ''IFx1MDYyN1x1MDY0NFx1MDYzM1x1MDYyN1x1MDYzOVx1MDYyOV0gTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6Ilx1MDYyOFx1MDYzOVx1MDYyZiAlcyIscGFzdDoiXHUwNjQ1XHUwNjQ2XHUwNjMwICVzIixzOlUoInMiKSxzczpVKCJzIiksbTpVKCJtIiksbW06VSgi''@;'; + put 'put ''bSIpLGg6VSgiaCIpLGhoOlUoImgiKSxkOlUoImQiKSxkZDpVKCJkIiksTTpVKCJNIiksTU06VSgiTSIpLHk6VSgieSIpLHl5OlUoInkiKX0scHJlcGFyc2U6ZnVuY3Rpb24oaWUpe3JldHVybiBpZS5yZXBsYWNlKC9cdTA2MGMvZywiLCIpfSxwb3N0Zm9ybWF0OmZ1bmN0aW9uKGllKXtyZXR1''@;'; + put 'put ''cm4gaWUucmVwbGFjZSgvXGQvZyxmdW5jdGlvbihhZSl7cmV0dXJuIEJbYWVdfSkucmVwbGFjZSgvLC9nLCJcdTA2MGMiKX0sd2Vlazp7ZG93OjYsZG95OjEyfX0pfShMKDE1NDM5KSl9LDY1NDQzOmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlvbihtZSl7InVzZSBzdHJpY3QiO21lLmRlZmlu''@;'; + put 'put ''ZUxvY2FsZSgiYXItbWEiLHttb250aHM6Ilx1MDY0YVx1MDY0Nlx1MDYyN1x1MDY0YVx1MDYzMV9cdTA2NDFcdTA2MjhcdTA2MzFcdTA2MjdcdTA2NGFcdTA2MzFfXHUwNjQ1XHUwNjI3XHUwNjMxXHUwNjMzX1x1MDYyM1x1MDYyOFx1MDYzMVx1MDY0YVx1MDY0NF9cdTA2NDVcdTA2MjdcdTA2''@;'; + put 'put ''NGFfXHUwNjRhXHUwNjQ4XHUwNjQ2XHUwNjRhXHUwNjQ4X1x1MDY0YVx1MDY0OFx1MDY0NFx1MDY0YVx1MDY0OFx1MDYzMl9cdTA2M2FcdTA2MzRcdTA2MmFfXHUwNjM0XHUwNjJhXHUwNjQ2XHUwNjI4XHUwNjMxX1x1MDYyM1x1MDY0M1x1MDYyYVx1MDY0OFx1MDYyOFx1MDYzMV9cdTA2NDZc''@;'; + put 'put ''dTA2NDhcdTA2NDZcdTA2MjhcdTA2MzFfXHUwNjJmXHUwNjJjXHUwNjQ2XHUwNjI4XHUwNjMxIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJcdTA2NGFcdTA2NDZcdTA2MjdcdTA2NGFcdTA2MzFfXHUwNjQxXHUwNjI4XHUwNjMxXHUwNjI3XHUwNjRhXHUwNjMxX1x1MDY0NVx1MDYyN1x1MDYz''@;'; + put 'put ''MVx1MDYzM19cdTA2MjNcdTA2MjhcdTA2MzFcdTA2NGFcdTA2NDRfXHUwNjQ1XHUwNjI3XHUwNjRhX1x1MDY0YVx1MDY0OFx1MDY0Nlx1MDY0YVx1MDY0OF9cdTA2NGFcdTA2NDhcdTA2NDRcdTA2NGFcdTA2NDhcdTA2MzJfXHUwNjNhXHUwNjM0XHUwNjJhX1x1MDYzNFx1MDYyYVx1MDY0Nlx1''@;'; + put 'put ''MDYyOFx1MDYzMV9cdTA2MjNcdTA2NDNcdTA2MmFcdTA2NDhcdTA2MjhcdTA2MzFfXHUwNjQ2XHUwNjQ4XHUwNjQ2XHUwNjI4XHUwNjMxX1x1MDYyZlx1MDYyY1x1MDY0Nlx1MDYyOFx1MDYzMSIuc3BsaXQoIl8iKSx3ZWVrZGF5czoiXHUwNjI3XHUwNjQ0XHUwNjIzXHUwNjJkXHUwNjJmX1x1''@;'; + put 'put ''MDYyN1x1MDY0NFx1MDYyNVx1MDYyYlx1MDY0Nlx1MDY0YVx1MDY0Nl9cdTA2MjdcdTA2NDRcdTA2MmJcdTA2NDRcdTA2MjdcdTA2MmJcdTA2MjdcdTA2MjFfXHUwNjI3XHUwNjQ0XHUwNjIzXHUwNjMxXHUwNjI4XHUwNjM5XHUwNjI3XHUwNjIxX1x1MDYyN1x1MDY0NFx1MDYyZVx1MDY0NVx1''@;'; + put 'put ''MDY0YVx1MDYzM19cdTA2MjdcdTA2NDRcdTA2MmNcdTA2NDVcdTA2MzlcdTA2MjlfXHUwNjI3XHUwNjQ0XHUwNjMzXHUwNjI4XHUwNjJhIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6Ilx1MDYyN1x1MDYyZFx1MDYyZl9cdTA2MjdcdTA2MmJcdTA2NDZcdTA2NGFcdTA2NDZfXHUwNjJiXHUw''@;'; + put 'put ''NjQ0XHUwNjI3XHUwNjJiXHUwNjI3XHUwNjIxX1x1MDYyN1x1MDYzMVx1MDYyOFx1MDYzOVx1MDYyN1x1MDYyMV9cdTA2MmVcdTA2NDVcdTA2NGFcdTA2MzNfXHUwNjJjXHUwNjQ1XHUwNjM5XHUwNjI5X1x1MDYzM1x1MDYyOFx1MDYyYSIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiXHUwNjJk''@;'; + put 'put ''X1x1MDY0Nl9cdTA2MmJfXHUwNjMxX1x1MDYyZV9cdTA2MmNfXHUwNjMzIi5zcGxpdCgiXyIpLHdlZWtkYXlzUGFyc2VFeGFjdDohMCxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJERC9NTS9ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZ''@;'; + put 'put ''WVkgSEg6bW0iLExMTEw6ImRkZGQgRCBNTU1NIFlZWVkgSEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW1x1MDYyN1x1MDY0NFx1MDY0YVx1MDY0OFx1MDY0NSBcdTA2MzlcdTA2NDRcdTA2NDkgXHUwNjI3XHUwNjQ0XHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI5XSBMVCIsbmV4dERheToiW1x1''@;'; + put 'put ''MDYzYVx1MDYyZlx1MDYyNyBcdTA2MzlcdTA2NDRcdTA2NDkgXHUwNjI3XHUwNjQ0XHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI5XSBMVCIsbmV4dFdlZWs6ImRkZGQgW1x1MDYzOVx1MDY0NFx1MDY0OSBcdTA2MjdcdTA2NDRcdTA2MzNcdTA2MjdcdTA2MzlcdTA2MjldIExUIixsYXN0RGF5OiJb''@;'; + put 'put ''XHUwNjIzXHUwNjQ1XHUwNjMzIFx1MDYzOVx1MDY0NFx1MDY0OSBcdTA2MjdcdTA2NDRcdTA2MzNcdTA2MjdcdTA2MzlcdTA2MjldIExUIixsYXN0V2VlazoiZGRkZCBbXHUwNjM5XHUwNjQ0XHUwNjQ5IFx1MDYyN1x1MDY0NFx1MDYzM1x1MDYyN1x1MDYzOVx1MDYyOV0gTFQiLHNhbWVFbHNl''@;'; + put 'put ''OiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6Ilx1MDY0MVx1MDY0YSAlcyIscGFzdDoiXHUwNjQ1XHUwNjQ2XHUwNjMwICVzIixzOiJcdTA2MmJcdTA2NDhcdTA2MjdcdTA2NDYiLHNzOiIlZCBcdTA2MmJcdTA2MjdcdTA2NDZcdTA2NGFcdTA2MjkiLG06Ilx1MDYyZlx1MDY0Mlx1MDY0YVx1''@;'; + put 'put ''MDY0Mlx1MDYyOSIsbW06IiVkIFx1MDYyZlx1MDY0Mlx1MDYyN1x1MDYyNlx1MDY0MiIsaDoiXHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI5IixoaDoiJWQgXHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI3XHUwNjJhIixkOiJcdTA2NGFcdTA2NDhcdTA2NDUiLGRkOiIlZCBcdTA2MjNcdTA2NGFcdTA2''@;'; + put 'put ''MjdcdTA2NDUiLE06Ilx1MDYzNFx1MDY0N1x1MDYzMSIsTU06IiVkIFx1MDYyM1x1MDYzNFx1MDY0N1x1MDYzMSIseToiXHUwNjMzXHUwNjQ2XHUwNjI5Iix5eToiJWQgXHUwNjMzXHUwNjQ2XHUwNjQ4XHUwNjI3XHUwNjJhIn0sd2Vlazp7ZG93OjEsZG95OjR9fSl9KEwoMTU0MzkpKX0sMTc2''@;'; + put 'put ''NDI6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7dmFyIEI9ezE6Ilx1MDY2MSIsMjoiXHUwNjYyIiwzOiJcdTA2NjMiLDQ6Ilx1MDY2NCIsNToiXHUwNjY1Iiw2OiJcdTA2NjYiLDc6Ilx1MDY2NyIsODoiXHUwNjY4Iiw5OiJcdTA2NjkiLDA6Ilx1MDY2MCJ9''@;'; + put 'put ''LEU9eyJcdTA2NjEiOiIxIiwiXHUwNjYyIjoiMiIsIlx1MDY2MyI6IjMiLCJcdTA2NjQiOiI0IiwiXHUwNjY1IjoiNSIsIlx1MDY2NiI6IjYiLCJcdTA2NjciOiI3IiwiXHUwNjY4IjoiOCIsIlx1MDY2OSI6IjkiLCJcdTA2NjAiOiIwIn07bWUuZGVmaW5lTG9jYWxlKCJhci1zYSIse21vbnRo''@;'; + put 'put ''czoiXHUwNjRhXHUwNjQ2XHUwNjI3XHUwNjRhXHUwNjMxX1x1MDY0MVx1MDYyOFx1MDYzMVx1MDYyN1x1MDY0YVx1MDYzMV9cdTA2NDVcdTA2MjdcdTA2MzFcdTA2MzNfXHUwNjIzXHUwNjI4XHUwNjMxXHUwNjRhXHUwNjQ0X1x1MDY0NVx1MDYyN1x1MDY0YVx1MDY0OF9cdTA2NGFcdTA2NDhc''@;'; + put 'put ''dTA2NDZcdTA2NGFcdTA2NDhfXHUwNjRhXHUwNjQ4XHUwNjQ0XHUwNjRhXHUwNjQ4X1x1MDYyM1x1MDYzYVx1MDYzM1x1MDYzN1x1MDYzM19cdTA2MzNcdTA2MjhcdTA2MmFcdTA2NDVcdTA2MjhcdTA2MzFfXHUwNjIzXHUwNjQzXHUwNjJhXHUwNjQ4XHUwNjI4XHUwNjMxX1x1MDY0Nlx1MDY0''@;'; + put 'put ''OFx1MDY0MVx1MDY0NVx1MDYyOFx1MDYzMV9cdTA2MmZcdTA2NGFcdTA2MzNcdTA2NDVcdTA2MjhcdTA2MzEiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6Ilx1MDY0YVx1MDY0Nlx1MDYyN1x1MDY0YVx1MDYzMV9cdTA2NDFcdTA2MjhcdTA2MzFcdTA2MjdcdTA2NGFcdTA2MzFfXHUwNjQ1XHUw''@;'; + put 'put ''NjI3XHUwNjMxXHUwNjMzX1x1MDYyM1x1MDYyOFx1MDYzMVx1MDY0YVx1MDY0NF9cdTA2NDVcdTA2MjdcdTA2NGFcdTA2NDhfXHUwNjRhXHUwNjQ4XHUwNjQ2XHUwNjRhXHUwNjQ4X1x1MDY0YVx1MDY0OFx1MDY0NFx1MDY0YVx1MDY0OF9cdTA2MjNcdTA2M2FcdTA2MzNcdTA2MzdcdTA2MzNf''@;'; + put 'put ''XHUwNjMzXHUwNjI4XHUwNjJhXHUwNjQ1XHUwNjI4XHUwNjMxX1x1MDYyM1x1MDY0M1x1MDYyYVx1MDY0OFx1MDYyOFx1MDYzMV9cdTA2NDZcdTA2NDhcdTA2NDFcdTA2NDVcdTA2MjhcdTA2MzFfXHUwNjJmXHUwNjRhXHUwNjMzXHUwNjQ1XHUwNjI4XHUwNjMxIi5zcGxpdCgiXyIpLHdlZWtk''@;'; + put 'put ''YXlzOiJcdTA2MjdcdTA2NDRcdTA2MjNcdTA2MmRcdTA2MmZfXHUwNjI3XHUwNjQ0XHUwNjI1XHUwNjJiXHUwNjQ2XHUwNjRhXHUwNjQ2X1x1MDYyN1x1MDY0NFx1MDYyYlx1MDY0NFx1MDYyN1x1MDYyYlx1MDYyN1x1MDYyMV9cdTA2MjdcdTA2NDRcdTA2MjNcdTA2MzFcdTA2MjhcdTA2Mzlc''@;'; + put 'put ''dTA2MjdcdTA2MjFfXHUwNjI3XHUwNjQ0XHUwNjJlXHUwNjQ1XHUwNjRhXHUwNjMzX1x1MDYyN1x1MDY0NFx1MDYyY1x1MDY0NVx1MDYzOVx1MDYyOV9cdTA2MjdcdTA2NDRcdTA2MzNcdTA2MjhcdTA2MmEiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiXHUwNjIzXHUwNjJkXHUwNjJmX1x1''@;'; + put 'put ''MDYyNVx1MDYyYlx1MDY0Nlx1MDY0YVx1MDY0Nl9cdTA2MmJcdTA2NDRcdTA2MjdcdTA2MmJcdTA2MjdcdTA2MjFfXHUwNjIzXHUwNjMxXHUwNjI4XHUwNjM5XHUwNjI3XHUwNjIxX1x1MDYyZVx1MDY0NVx1MDY0YVx1MDYzM19cdTA2MmNcdTA2NDVcdTA2MzlcdTA2MjlfXHUwNjMzXHUwNjI4''@;'; + put 'put ''XHUwNjJhIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJcdTA2MmRfXHUwNjQ2X1x1MDYyYl9cdTA2MzFfXHUwNjJlX1x1MDYyY19cdTA2MzMiLnNwbGl0KCJfIiksd2Vla2RheXNQYXJzZUV4YWN0OiEwLGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IkREL01N''@;'; + put 'put ''L1lZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0gWVlZWSBISDptbSIsTExMTDoiZGRkZCBEIE1NTU0gWVlZWSBISDptbSJ9LG1lcmlkaWVtUGFyc2U6L1x1MDYzNXxcdTA2NDUvLGlzUE06ZnVuY3Rpb24oVSl7cmV0dXJuIlx1MDY0NSI9PT1VfSxtZXJpZGllbTpmdW5jdGlvbihV''@;'; + put 'put ''LFEsWil7cmV0dXJuIFU8MTI/Ilx1MDYzNSI6Ilx1MDY0NSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbXHUwNjI3XHUwNjQ0XHUwNjRhXHUwNjQ4XHUwNjQ1IFx1MDYzOVx1MDY0NFx1MDY0OSBcdTA2MjdcdTA2NDRcdTA2MzNcdTA2MjdcdTA2MzlcdTA2MjldIExUIixuZXh0RGF5OiJbXHUwNjNh''@;'; + put 'put ''XHUwNjJmXHUwNjI3IFx1MDYzOVx1MDY0NFx1MDY0OSBcdTA2MjdcdTA2NDRcdTA2MzNcdTA2MjdcdTA2MzlcdTA2MjldIExUIixuZXh0V2VlazoiZGRkZCBbXHUwNjM5XHUwNjQ0XHUwNjQ5IFx1MDYyN1x1MDY0NFx1MDYzM1x1MDYyN1x1MDYzOVx1MDYyOV0gTFQiLGxhc3REYXk6IltcdTA2''@;'; + put 'put ''MjNcdTA2NDVcdTA2MzMgXHUwNjM5XHUwNjQ0XHUwNjQ5IFx1MDYyN1x1MDY0NFx1MDYzM1x1MDYyN1x1MDYzOVx1MDYyOV0gTFQiLGxhc3RXZWVrOiJkZGRkIFtcdTA2MzlcdTA2NDRcdTA2NDkgXHUwNjI3XHUwNjQ0XHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI5XSBMVCIsc2FtZUVsc2U6Ikwi''@;'; + put 'put ''fSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiXHUwNjQxXHUwNjRhICVzIixwYXN0OiJcdTA2NDVcdTA2NDZcdTA2MzAgJXMiLHM6Ilx1MDYyYlx1MDY0OFx1MDYyN1x1MDY0NiIsc3M6IiVkIFx1MDYyYlx1MDYyN1x1MDY0Nlx1MDY0YVx1MDYyOSIsbToiXHUwNjJmXHUwNjQyXHUwNjRhXHUwNjQy''@;'; + put 'put ''XHUwNjI5IixtbToiJWQgXHUwNjJmXHUwNjQyXHUwNjI3XHUwNjI2XHUwNjQyIixoOiJcdTA2MzNcdTA2MjdcdTA2MzlcdTA2MjkiLGhoOiIlZCBcdTA2MzNcdTA2MjdcdTA2MzlcdTA2MjdcdTA2MmEiLGQ6Ilx1MDY0YVx1MDY0OFx1MDY0NSIsZGQ6IiVkIFx1MDYyM1x1MDY0YVx1MDYyN1x1''@;'; + put 'put ''MDY0NSIsTToiXHUwNjM0XHUwNjQ3XHUwNjMxIixNTToiJWQgXHUwNjIzXHUwNjM0XHUwNjQ3XHUwNjMxIix5OiJcdTA2MzNcdTA2NDZcdTA2MjkiLHl5OiIlZCBcdTA2MzNcdTA2NDZcdTA2NDhcdTA2MjdcdTA2MmEifSxwcmVwYXJzZTpmdW5jdGlvbihVKXtyZXR1cm4gVS5yZXBsYWNlKC9b''@;'; + put 'put ''XHUwNjYxXHUwNjYyXHUwNjYzXHUwNjY0XHUwNjY1XHUwNjY2XHUwNjY3XHUwNjY4XHUwNjY5XHUwNjYwXS9nLGZ1bmN0aW9uKFEpe3JldHVybiBFW1FdfSkucmVwbGFjZSgvXHUwNjBjL2csIiwiKX0scG9zdGZvcm1hdDpmdW5jdGlvbihVKXtyZXR1cm4gVS5yZXBsYWNlKC9cZC9nLGZ1bmN0''@;'; + put 'put ''aW9uKFEpe3JldHVybiBCW1FdfSkucmVwbGFjZSgvLC9nLCJcdTA2MGMiKX0sd2Vlazp7ZG93OjAsZG95OjZ9fSl9KEwoMTU0MzkpKX0sNjg1OTI6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7bWUuZGVmaW5lTG9jYWxlKCJhci10biIse21vbnRoczoiXHUw''@;'; + put 'put ''NjJjXHUwNjI3XHUwNjQ2XHUwNjQxXHUwNjRhX1x1MDY0MVx1MDY0YVx1MDY0MVx1MDYzMVx1MDY0YV9cdTA2NDVcdTA2MjdcdTA2MzFcdTA2MzNfXHUwNjIzXHUwNjQxXHUwNjMxXHUwNjRhXHUwNjQ0X1x1MDY0NVx1MDYyN1x1MDY0YV9cdTA2MmNcdTA2NDhcdTA2MjdcdTA2NDZfXHUwNjJj''@;'; + put 'put ''XHUwNjQ4XHUwNjRhXHUwNjQ0XHUwNjRhXHUwNjI5X1x1MDYyM1x1MDY0OFx1MDYyYV9cdTA2MzNcdTA2MjhcdTA2MmFcdTA2NDVcdTA2MjhcdTA2MzFfXHUwNjIzXHUwNjQzXHUwNjJhXHUwNjQ4XHUwNjI4XHUwNjMxX1x1MDY0Nlx1MDY0OFx1MDY0MVx1MDY0NVx1MDYyOFx1MDYzMV9cdTA2''@;'; + put 'put ''MmZcdTA2NGFcdTA2MzNcdTA2NDVcdTA2MjhcdTA2MzEiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6Ilx1MDYyY1x1MDYyN1x1MDY0Nlx1MDY0MVx1MDY0YV9cdTA2NDFcdTA2NGFcdTA2NDFcdTA2MzFcdTA2NGFfXHUwNjQ1XHUwNjI3XHUwNjMxXHUwNjMzX1x1MDYyM1x1MDY0MVx1MDYzMVx1''@;'; + put 'put ''MDY0YVx1MDY0NF9cdTA2NDVcdTA2MjdcdTA2NGFfXHUwNjJjXHUwNjQ4XHUwNjI3XHUwNjQ2X1x1MDYyY1x1MDY0OFx1MDY0YVx1MDY0NFx1MDY0YVx1MDYyOV9cdTA2MjNcdTA2NDhcdTA2MmFfXHUwNjMzXHUwNjI4XHUwNjJhXHUwNjQ1XHUwNjI4XHUwNjMxX1x1MDYyM1x1MDY0M1x1MDYy''@;'; + put 'put ''YVx1MDY0OFx1MDYyOFx1MDYzMV9cdTA2NDZcdTA2NDhcdTA2NDFcdTA2NDVcdTA2MjhcdTA2MzFfXHUwNjJmXHUwNjRhXHUwNjMzXHUwNjQ1XHUwNjI4XHUwNjMxIi5zcGxpdCgiXyIpLHdlZWtkYXlzOiJcdTA2MjdcdTA2NDRcdTA2MjNcdTA2MmRcdTA2MmZfXHUwNjI3XHUwNjQ0XHUwNjI1''@;'; + put 'put ''XHUwNjJiXHUwNjQ2XHUwNjRhXHUwNjQ2X1x1MDYyN1x1MDY0NFx1MDYyYlx1MDY0NFx1MDYyN1x1MDYyYlx1MDYyN1x1MDYyMV9cdTA2MjdcdTA2NDRcdTA2MjNcdTA2MzFcdTA2MjhcdTA2MzlcdTA2MjdcdTA2MjFfXHUwNjI3XHUwNjQ0XHUwNjJlXHUwNjQ1XHUwNjRhXHUwNjMzX1x1MDYy''@;'; + put 'put ''N1x1MDY0NFx1MDYyY1x1MDY0NVx1MDYzOVx1MDYyOV9cdTA2MjdcdTA2NDRcdTA2MzNcdTA2MjhcdTA2MmEiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiXHUwNjIzXHUwNjJkXHUwNjJmX1x1MDYyNVx1MDYyYlx1MDY0Nlx1MDY0YVx1MDY0Nl9cdTA2MmJcdTA2NDRcdTA2MjdcdTA2MmJc''@;'; + put 'put ''dTA2MjdcdTA2MjFfXHUwNjIzXHUwNjMxXHUwNjI4XHUwNjM5XHUwNjI3XHUwNjIxX1x1MDYyZVx1MDY0NVx1MDY0YVx1MDYzM19cdTA2MmNcdTA2NDVcdTA2MzlcdTA2MjlfXHUwNjMzXHUwNjI4XHUwNjJhIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJcdTA2MmRfXHUwNjQ2X1x1MDYyYl9c''@;'; + put 'put ''dTA2MzFfXHUwNjJlX1x1MDYyY19cdTA2MzMiLnNwbGl0KCJfIiksd2Vla2RheXNQYXJzZUV4YWN0OiEwLGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IkREL01NL1lZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0gWVlZWSBISDptbSIsTExMTDoi''@;'; + put 'put ''ZGRkZCBEIE1NTU0gWVlZWSBISDptbSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbXHUwNjI3XHUwNjQ0XHUwNjRhXHUwNjQ4XHUwNjQ1IFx1MDYzOVx1MDY0NFx1MDY0OSBcdTA2MjdcdTA2NDRcdTA2MzNcdTA2MjdcdTA2MzlcdTA2MjldIExUIixuZXh0RGF5OiJbXHUwNjNhXHUwNjJmXHUwNjI3''@;'; + put 'put ''IFx1MDYzOVx1MDY0NFx1MDY0OSBcdTA2MjdcdTA2NDRcdTA2MzNcdTA2MjdcdTA2MzlcdTA2MjldIExUIixuZXh0V2VlazoiZGRkZCBbXHUwNjM5XHUwNjQ0XHUwNjQ5IFx1MDYyN1x1MDY0NFx1MDYzM1x1MDYyN1x1MDYzOVx1MDYyOV0gTFQiLGxhc3REYXk6IltcdTA2MjNcdTA2NDVcdTA2''@;'; + put 'put ''MzMgXHUwNjM5XHUwNjQ0XHUwNjQ5IFx1MDYyN1x1MDY0NFx1MDYzM1x1MDYyN1x1MDYzOVx1MDYyOV0gTFQiLGxhc3RXZWVrOiJkZGRkIFtcdTA2MzlcdTA2NDRcdTA2NDkgXHUwNjI3XHUwNjQ0XHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI5XSBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRp''@;'; + put 'put ''bWU6e2Z1dHVyZToiXHUwNjQxXHUwNjRhICVzIixwYXN0OiJcdTA2NDVcdTA2NDZcdTA2MzAgJXMiLHM6Ilx1MDYyYlx1MDY0OFx1MDYyN1x1MDY0NiIsc3M6IiVkIFx1MDYyYlx1MDYyN1x1MDY0Nlx1MDY0YVx1MDYyOSIsbToiXHUwNjJmXHUwNjQyXHUwNjRhXHUwNjQyXHUwNjI5IixtbToi''@;'; + put 'put ''JWQgXHUwNjJmXHUwNjQyXHUwNjI3XHUwNjI2XHUwNjQyIixoOiJcdTA2MzNcdTA2MjdcdTA2MzlcdTA2MjkiLGhoOiIlZCBcdTA2MzNcdTA2MjdcdTA2MzlcdTA2MjdcdTA2MmEiLGQ6Ilx1MDY0YVx1MDY0OFx1MDY0NSIsZGQ6IiVkIFx1MDYyM1x1MDY0YVx1MDYyN1x1MDY0NSIsTToiXHUw''@;'; + put 'put ''NjM0XHUwNjQ3XHUwNjMxIixNTToiJWQgXHUwNjIzXHUwNjM0XHUwNjQ3XHUwNjMxIix5OiJcdTA2MzNcdTA2NDZcdTA2MjkiLHl5OiIlZCBcdTA2MzNcdTA2NDZcdTA2NDhcdTA2MjdcdTA2MmEifSx3ZWVrOntkb3c6MSxkb3k6NH19KX0oTCgxNTQzOSkpfSwxNzAzODpmdW5jdGlvbihYZSxK''@;'; + put 'put ''ZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0Ijt2YXIgQj17MToiXHUwNjYxIiwyOiJcdTA2NjIiLDM6Ilx1MDY2MyIsNDoiXHUwNjY0Iiw1OiJcdTA2NjUiLDY6Ilx1MDY2NiIsNzoiXHUwNjY3Iiw4OiJcdTA2NjgiLDk6Ilx1MDY2OSIsMDoiXHUwNjYwIn0sRT17Ilx1MDY2MSI6IjEi''@;'; + put 'put ''LCJcdTA2NjIiOiIyIiwiXHUwNjYzIjoiMyIsIlx1MDY2NCI6IjQiLCJcdTA2NjUiOiI1IiwiXHUwNjY2IjoiNiIsIlx1MDY2NyI6IjciLCJcdTA2NjgiOiI4IiwiXHUwNjY5IjoiOSIsIlx1MDY2MCI6IjAifSxNZT1mdW5jdGlvbihhZSl7cmV0dXJuIDA9PT1hZT8wOjE9PT1hZT8xOjI9PT1h''@;'; + put 'put ''ZT8yOmFlJTEwMD49MyYmYWUlMTAwPD0xMD8zOmFlJTEwMD49MTE/NDo1fSxVPXtzOlsiXHUwNjIzXHUwNjQyXHUwNjQ0IFx1MDY0NVx1MDY0NiBcdTA2MmJcdTA2MjdcdTA2NDZcdTA2NGFcdTA2MjkiLCJcdTA2MmJcdTA2MjdcdTA2NDZcdTA2NGFcdTA2MjkgXHUwNjQ4XHUwNjI3XHUwNjJk''@;'; + put 'put ''XHUwNjJmXHUwNjI5IixbIlx1MDYyYlx1MDYyN1x1MDY0Nlx1MDY0YVx1MDYyYVx1MDYyN1x1MDY0NiIsIlx1MDYyYlx1MDYyN1x1MDY0Nlx1MDY0YVx1MDYyYVx1MDY0YVx1MDY0NiJdLCIlZCBcdTA2MmJcdTA2NDhcdTA2MjdcdTA2NDYiLCIlZCBcdTA2MmJcdTA2MjdcdTA2NDZcdTA2NGFc''@;'; + put 'put ''dTA2MjkiLCIlZCBcdTA2MmJcdTA2MjdcdTA2NDZcdTA2NGFcdTA2MjkiXSxtOlsiXHUwNjIzXHUwNjQyXHUwNjQ0IFx1MDY0NVx1MDY0NiBcdTA2MmZcdTA2NDJcdTA2NGFcdTA2NDJcdTA2MjkiLCJcdTA2MmZcdTA2NDJcdTA2NGFcdTA2NDJcdTA2MjkgXHUwNjQ4XHUwNjI3XHUwNjJkXHUw''@;'; + put 'put ''NjJmXHUwNjI5IixbIlx1MDYyZlx1MDY0Mlx1MDY0YVx1MDY0Mlx1MDYyYVx1MDYyN1x1MDY0NiIsIlx1MDYyZlx1MDY0Mlx1MDY0YVx1MDY0Mlx1MDYyYVx1MDY0YVx1MDY0NiJdLCIlZCBcdTA2MmZcdTA2NDJcdTA2MjdcdTA2MjZcdTA2NDIiLCIlZCBcdTA2MmZcdTA2NDJcdTA2NGFcdTA2''@;'; + put 'put ''NDJcdTA2MjkiLCIlZCBcdTA2MmZcdTA2NDJcdTA2NGFcdTA2NDJcdTA2MjkiXSxoOlsiXHUwNjIzXHUwNjQyXHUwNjQ0IFx1MDY0NVx1MDY0NiBcdTA2MzNcdTA2MjdcdTA2MzlcdTA2MjkiLCJcdTA2MzNcdTA2MjdcdTA2MzlcdTA2MjkgXHUwNjQ4XHUwNjI3XHUwNjJkXHUwNjJmXHUwNjI5''@;'; + put 'put ''IixbIlx1MDYzM1x1MDYyN1x1MDYzOVx1MDYyYVx1MDYyN1x1MDY0NiIsIlx1MDYzM1x1MDYyN1x1MDYzOVx1MDYyYVx1MDY0YVx1MDY0NiJdLCIlZCBcdTA2MzNcdTA2MjdcdTA2MzlcdTA2MjdcdTA2MmEiLCIlZCBcdTA2MzNcdTA2MjdcdTA2MzlcdTA2MjkiLCIlZCBcdTA2MzNcdTA2Mjdc''@;'; + put 'put ''dTA2MzlcdTA2MjkiXSxkOlsiXHUwNjIzXHUwNjQyXHUwNjQ0IFx1MDY0NVx1MDY0NiBcdTA2NGFcdTA2NDhcdTA2NDUiLCJcdTA2NGFcdTA2NDhcdTA2NDUgXHUwNjQ4XHUwNjI3XHUwNjJkXHUwNjJmIixbIlx1MDY0YVx1MDY0OFx1MDY0NVx1MDYyN1x1MDY0NiIsIlx1MDY0YVx1MDY0OFx1''@;'; + put 'put ''MDY0NVx1MDY0YVx1MDY0NiJdLCIlZCBcdTA2MjNcdTA2NGFcdTA2MjdcdTA2NDUiLCIlZCBcdTA2NGFcdTA2NDhcdTA2NDVcdTA2NGJcdTA2MjciLCIlZCBcdTA2NGFcdTA2NDhcdTA2NDUiXSxNOlsiXHUwNjIzXHUwNjQyXHUwNjQ0IFx1MDY0NVx1MDY0NiBcdTA2MzRcdTA2NDdcdTA2MzEi''@;'; + put 'put ''LCJcdTA2MzRcdTA2NDdcdTA2MzEgXHUwNjQ4XHUwNjI3XHUwNjJkXHUwNjJmIixbIlx1MDYzNFx1MDY0N1x1MDYzMVx1MDYyN1x1MDY0NiIsIlx1MDYzNFx1MDY0N1x1MDYzMVx1MDY0YVx1MDY0NiJdLCIlZCBcdTA2MjNcdTA2MzRcdTA2NDdcdTA2MzEiLCIlZCBcdTA2MzRcdTA2NDdcdTA2''@;'; + put 'put ''MzFcdTA2MjciLCIlZCBcdTA2MzRcdTA2NDdcdTA2MzEiXSx5OlsiXHUwNjIzXHUwNjQyXHUwNjQ0IFx1MDY0NVx1MDY0NiBcdTA2MzlcdTA2MjdcdTA2NDUiLCJcdTA2MzlcdTA2MjdcdTA2NDUgXHUwNjQ4XHUwNjI3XHUwNjJkXHUwNjJmIixbIlx1MDYzOVx1MDYyN1x1MDY0NVx1MDYyN1x1''@;'; + put 'put ''MDY0NiIsIlx1MDYzOVx1MDYyN1x1MDY0NVx1MDY0YVx1MDY0NiJdLCIlZCBcdTA2MjNcdTA2MzlcdTA2NDhcdTA2MjdcdTA2NDUiLCIlZCBcdTA2MzlcdTA2MjdcdTA2NDVcdTA2NGJcdTA2MjciLCIlZCBcdTA2MzlcdTA2MjdcdTA2NDUiXX0sUT1mdW5jdGlvbihhZSl7cmV0dXJuIGZ1bmN0''@;'; + put 'put ''aW9uKFksVyxOLGVlKXt2YXIgcT1NZShZKSxKPVVbYWVdW01lKFkpXTtyZXR1cm4gMj09PXEmJihKPUpbVz8wOjFdKSxKLnJlcGxhY2UoLyVkL2ksWSl9fSxaPVsiXHUwNjRhXHUwNjQ2XHUwNjI3XHUwNjRhXHUwNjMxIiwiXHUwNjQxXHUwNjI4XHUwNjMxXHUwNjI3XHUwNjRhXHUwNjMxIiwi''@;'; + put 'put ''XHUwNjQ1XHUwNjI3XHUwNjMxXHUwNjMzIiwiXHUwNjIzXHUwNjI4XHUwNjMxXHUwNjRhXHUwNjQ0IiwiXHUwNjQ1XHUwNjI3XHUwNjRhXHUwNjQ4IiwiXHUwNjRhXHUwNjQ4XHUwNjQ2XHUwNjRhXHUwNjQ4IiwiXHUwNjRhXHUwNjQ4XHUwNjQ0XHUwNjRhXHUwNjQ4IiwiXHUwNjIzXHUwNjNh''@;'; + put 'put ''XHUwNjMzXHUwNjM3XHUwNjMzIiwiXHUwNjMzXHUwNjI4XHUwNjJhXHUwNjQ1XHUwNjI4XHUwNjMxIiwiXHUwNjIzXHUwNjQzXHUwNjJhXHUwNjQ4XHUwNjI4XHUwNjMxIiwiXHUwNjQ2XHUwNjQ4XHUwNjQxXHUwNjQ1XHUwNjI4XHUwNjMxIiwiXHUwNjJmXHUwNjRhXHUwNjMzXHUwNjQ1XHUw''@;'; + put 'put ''NjI4XHUwNjMxIl07bWUuZGVmaW5lTG9jYWxlKCJhciIse21vbnRoczpaLG1vbnRoc1Nob3J0Olosd2Vla2RheXM6Ilx1MDYyN1x1MDY0NFx1MDYyM1x1MDYyZFx1MDYyZl9cdTA2MjdcdTA2NDRcdTA2MjVcdTA2MmJcdTA2NDZcdTA2NGFcdTA2NDZfXHUwNjI3XHUwNjQ0XHUwNjJiXHUwNjQ0''@;'; + put 'put ''XHUwNjI3XHUwNjJiXHUwNjI3XHUwNjIxX1x1MDYyN1x1MDY0NFx1MDYyM1x1MDYzMVx1MDYyOFx1MDYzOVx1MDYyN1x1MDYyMV9cdTA2MjdcdTA2NDRcdTA2MmVcdTA2NDVcdTA2NGFcdTA2MzNfXHUwNjI3XHUwNjQ0XHUwNjJjXHUwNjQ1XHUwNjM5XHUwNjI5X1x1MDYyN1x1MDY0NFx1MDYz''@;'; + put 'put ''M1x1MDYyOFx1MDYyYSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJcdTA2MjNcdTA2MmRcdTA2MmZfXHUwNjI1XHUwNjJiXHUwNjQ2XHUwNjRhXHUwNjQ2X1x1MDYyYlx1MDY0NFx1MDYyN1x1MDYyYlx1MDYyN1x1MDYyMV9cdTA2MjNcdTA2MzFcdTA2MjhcdTA2MzlcdTA2MjdcdTA2MjFf''@;'; + put 'put ''XHUwNjJlXHUwNjQ1XHUwNjRhXHUwNjMzX1x1MDYyY1x1MDY0NVx1MDYzOVx1MDYyOV9cdTA2MzNcdTA2MjhcdTA2MmEiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46Ilx1MDYyZF9cdTA2NDZfXHUwNjJiX1x1MDYzMV9cdTA2MmVfXHUwNjJjX1x1MDYzMyIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Bh''@;'; + put 'put ''cnNlRXhhY3Q6ITAsbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoiRC9cdTIwMGZNL1x1MjAwZllZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0gWVlZWSBISDptbSIsTExMTDoiZGRkZCBEIE1NTU0gWVlZWSBISDptbSJ9LG1lcmlkaWVtUGFyc2U6''@;'; + put 'put ''L1x1MDYzNXxcdTA2NDUvLGlzUE06ZnVuY3Rpb24oYWUpe3JldHVybiJcdTA2NDUiPT09YWV9LG1lcmlkaWVtOmZ1bmN0aW9uKGFlLFksVyl7cmV0dXJuIGFlPDEyPyJcdTA2MzUiOiJcdTA2NDUifSxjYWxlbmRhcjp7c2FtZURheToiW1x1MDYyN1x1MDY0NFx1MDY0YVx1MDY0OFx1MDY0NSBc''@;'; + put 'put ''dTA2MzlcdTA2NDZcdTA2MmYgXHUwNjI3XHUwNjQ0XHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI5XSBMVCIsbmV4dERheToiW1x1MDYzYVx1MDYyZlx1MDY0Ylx1MDYyNyBcdTA2MzlcdTA2NDZcdTA2MmYgXHUwNjI3XHUwNjQ0XHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI5XSBMVCIsbmV4dFdlZWs6''@;'; + put 'put ''ImRkZGQgW1x1MDYzOVx1MDY0Nlx1MDYyZiBcdTA2MjdcdTA2NDRcdTA2MzNcdTA2MjdcdTA2MzlcdTA2MjldIExUIixsYXN0RGF5OiJbXHUwNjIzXHUwNjQ1XHUwNjMzIFx1MDYzOVx1MDY0Nlx1MDYyZiBcdTA2MjdcdTA2NDRcdTA2MzNcdTA2MjdcdTA2MzlcdTA2MjldIExUIixsYXN0V2Vl''@;'; + put 'put ''azoiZGRkZCBbXHUwNjM5XHUwNjQ2XHUwNjJmIFx1MDYyN1x1MDY0NFx1MDYzM1x1MDYyN1x1MDYzOVx1MDYyOV0gTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6Ilx1MDYyOFx1MDYzOVx1MDYyZiAlcyIscGFzdDoiXHUwNjQ1XHUwNjQ2XHUwNjMwICVzIixzOlEoInMi''@;'; + put 'put ''KSxzczpRKCJzIiksbTpRKCJtIiksbW06USgibSIpLGg6USgiaCIpLGhoOlEoImgiKSxkOlEoImQiKSxkZDpRKCJkIiksTTpRKCJNIiksTU06USgiTSIpLHk6USgieSIpLHl5OlEoInkiKX0scHJlcGFyc2U6ZnVuY3Rpb24oYWUpe3JldHVybiBhZS5yZXBsYWNlKC9bXHUwNjYxXHUwNjYyXHUw''@;'; + put 'put ''NjYzXHUwNjY0XHUwNjY1XHUwNjY2XHUwNjY3XHUwNjY4XHUwNjY5XHUwNjYwXS9nLGZ1bmN0aW9uKFkpe3JldHVybiBFW1ldfSkucmVwbGFjZSgvXHUwNjBjL2csIiwiKX0scG9zdGZvcm1hdDpmdW5jdGlvbihhZSl7cmV0dXJuIGFlLnJlcGxhY2UoL1xkL2csZnVuY3Rpb24oWSl7cmV0dXJu''@;'; + put 'put ''IEJbWV19KS5yZXBsYWNlKC8sL2csIlx1MDYwYyIpfSx3ZWVrOntkb3c6Nixkb3k6MTJ9fSl9KEwoMTU0MzkpKX0sNTEyMTM6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7dmFyIEI9ezE6Ii1pbmNpIiw1OiItaW5jaSIsODoiLWluY2kiLDcwOiItaW5jaSIs''@;'; + put 'put ''ODA6Ii1pbmNpIiwyOiItbmNpIiw3OiItbmNpIiwyMDoiLW5jaSIsNTA6Ii1uY2kiLDM6Ii1ceGZjbmNceGZjIiw0OiItXHhmY25jXHhmYyIsMTAwOiItXHhmY25jXHhmYyIsNjoiLW5jXHUwMTMxIiw5OiItdW5jdSIsMTA6Ii11bmN1IiwzMDoiLXVuY3UiLDYwOiItXHUwMTMxbmNcdTAxMzEi''@;'; + put 'put ''LDkwOiItXHUwMTMxbmNcdTAxMzEifTttZS5kZWZpbmVMb2NhbGUoImF6Iix7bW9udGhzOiJ5YW52YXJfZmV2cmFsX21hcnRfYXByZWxfbWF5X2l5dW5faXl1bF9hdnF1c3Rfc2VudHlhYnJfb2t0eWFicl9ub3lhYnJfZGVrYWJyIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJ5YW5fZmV2X21h''@;'; + put 'put ''cl9hcHJfbWF5X2l5bl9peWxfYXZxX3Nlbl9va3Rfbm95X2RlayIuc3BsaXQoIl8iKSx3ZWVrZGF5czoiQmF6YXJfQmF6YXIgZXJ0XHUwMjU5c2lfXHhjN1x1MDI1OXJcdTAxNWZcdTAyNTluYlx1MDI1OSBheFx1MDE1ZmFtXHUwMTMxX1x4YzdcdTAyNTlyXHUwMTVmXHUwMjU5bmJcdTAyNTlf''@;'; + put 'put ''Q1x4ZmNtXHUwMjU5IGF4XHUwMTVmYW1cdTAxMzFfQ1x4ZmNtXHUwMjU5X1x1MDE1ZVx1MDI1OW5iXHUwMjU5Ii5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6IkJhel9CekVfXHhjN0F4X1x4YzdcdTAyNTlyX0NBeF9DXHhmY21fXHUwMTVlXHUwMjU5biIuc3BsaXQoIl8iKSx3ZWVrZGF5c01p''@;'; + put 'put ''bjoiQnpfQkVfXHhjN0FfXHhjN1x1MDI1OV9DQV9DXHhmY19cdTAxNWVcdTAyNTkiLnNwbGl0KCJfIiksd2Vla2RheXNQYXJzZUV4YWN0OiEwLGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IkRELk1NLllZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1N''@;'; + put 'put ''TU0gWVlZWSBISDptbSIsTExMTDoiZGRkZCwgRCBNTU1NIFlZWVkgSEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW2J1Z1x4ZmNuIHNhYXRdIExUIixuZXh0RGF5OiJbc2FiYWggc2FhdF0gTFQiLG5leHRXZWVrOiJbZ1x1MDI1OWxcdTAyNTluIGhcdTAyNTlmdFx1MDI1OV0gZGRkZCBbc2Fh''@;'; + put 'put ''dF0gTFQiLGxhc3REYXk6IltkXHhmY25cdTAyNTluXSBMVCIsbGFzdFdlZWs6IltrZVx4ZTdcdTAyNTluIGhcdTAyNTlmdFx1MDI1OV0gZGRkZCBbc2FhdF0gTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6IiVzIHNvbnJhIixwYXN0OiIlcyBcdTAyNTl2dlx1MDI1OWwi''@;'; + put 'put ''LHM6ImJpciBuZVx4ZTdcdTAyNTkgc2FuaXlcdTAyNTkiLHNzOiIlZCBzYW5peVx1MDI1OSIsbToiYmlyIGRcdTAyNTlxaXFcdTAyNTkiLG1tOiIlZCBkXHUwMjU5cWlxXHUwMjU5IixoOiJiaXIgc2FhdCIsaGg6IiVkIHNhYXQiLGQ6ImJpciBnXHhmY24iLGRkOiIlZCBnXHhmY24iLE06ImJp''@;'; + put 'put ''ciBheSIsTU06IiVkIGF5Iix5OiJiaXIgaWwiLHl5OiIlZCBpbCJ9LG1lcmlkaWVtUGFyc2U6L2dlY1x1MDI1OXxzXHUwMjU5aFx1MDI1OXJ8Z1x4ZmNuZFx4ZmN6fGF4XHUwMTVmYW0vLGlzUE06ZnVuY3Rpb24oTWUpe3JldHVybi9eKGdceGZjbmRceGZjenxheFx1MDE1ZmFtKSQvLnRlc3Qo''@;'; + put 'put ''TWUpfSxtZXJpZGllbTpmdW5jdGlvbihNZSxVLFEpe3JldHVybiBNZTw0PyJnZWNcdTAyNTkiOk1lPDEyPyJzXHUwMjU5aFx1MDI1OXIiOk1lPDE3PyJnXHhmY25kXHhmY3oiOiJheFx1MDE1ZmFtIn0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfS0oXHUwMTMxbmNcdTAxMzF8aW5j''@;'; + put 'put ''aXxuY2l8XHhmY25jXHhmY3xuY1x1MDEzMXx1bmN1KS8sb3JkaW5hbDpmdW5jdGlvbihNZSl7aWYoMD09PU1lKXJldHVybiBNZSsiLVx1MDEzMW5jXHUwMTMxIjt2YXIgVT1NZSUxMDtyZXR1cm4gTWUrKEJbVV18fEJbTWUlMTAwLVVdfHxCW01lPj0xMDA/MTAwOm51bGxdKX0sd2Vlazp7ZG93''@;'; + put 'put ''OjEsZG95Ojd9fSl9KEwoMTU0MzkpKX0sNjkxOTE6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gRShVLFEsWil7cmV0dXJuIm0iPT09Wj9RPyJcdTA0NDVcdTA0MzJcdTA0NTZcdTA0M2JcdTA0NTZcdTA0M2RcdTA0MzAiOiJcdTA0NDVcdTA0''@;'; + put 'put ''MzJcdTA0NTZcdTA0M2JcdTA0NTZcdTA0M2RcdTA0NDMiOiJoIj09PVo/UT8iXHUwNDMzXHUwNDMwXHUwNDM0XHUwNDM3XHUwNDU2XHUwNDNkXHUwNDMwIjoiXHUwNDMzXHUwNDMwXHUwNDM0XHUwNDM3XHUwNDU2XHUwNDNkXHUwNDQzIjpVKyIgIitmdW5jdGlvbiBCKFUsUSl7dmFyIFo9VS5z''@;'; + put 'put ''cGxpdCgiXyIpO3JldHVybiBRJTEwPT0xJiZRJTEwMCE9MTE/WlswXTpRJTEwPj0yJiZRJTEwPD00JiYoUSUxMDA8MTB8fFElMTAwPj0yMCk/WlsxXTpaWzJdfSh7c3M6UT8iXHUwNDQxXHUwNDM1XHUwNDNhXHUwNDQzXHUwNDNkXHUwNDM0XHUwNDMwX1x1MDQ0MVx1MDQzNVx1MDQzYVx1MDQ0''@;'; + put 'put ''M1x1MDQzZFx1MDQzNFx1MDQ0Yl9cdTA0NDFcdTA0MzVcdTA0M2FcdTA0NDNcdTA0M2RcdTA0MzQiOiJcdTA0NDFcdTA0MzVcdTA0M2FcdTA0NDNcdTA0M2RcdTA0MzRcdTA0NDNfXHUwNDQxXHUwNDM1XHUwNDNhXHUwNDQzXHUwNDNkXHUwNDM0XHUwNDRiX1x1MDQ0MVx1MDQzNVx1MDQzYVx1''@;'; + put 'put ''MDQ0M1x1MDQzZFx1MDQzNCIsbW06UT8iXHUwNDQ1XHUwNDMyXHUwNDU2XHUwNDNiXHUwNDU2XHUwNDNkXHUwNDMwX1x1MDQ0NVx1MDQzMlx1MDQ1Nlx1MDQzYlx1MDQ1Nlx1MDQzZFx1MDQ0Yl9cdTA0NDVcdTA0MzJcdTA0NTZcdTA0M2JcdTA0NTZcdTA0M2QiOiJcdTA0NDVcdTA0MzJcdTA0''@;'; + put 'put ''NTZcdTA0M2JcdTA0NTZcdTA0M2RcdTA0NDNfXHUwNDQ1XHUwNDMyXHUwNDU2XHUwNDNiXHUwNDU2XHUwNDNkXHUwNDRiX1x1MDQ0NVx1MDQzMlx1MDQ1Nlx1MDQzYlx1MDQ1Nlx1MDQzZCIsaGg6UT8iXHUwNDMzXHUwNDMwXHUwNDM0XHUwNDM3XHUwNDU2XHUwNDNkXHUwNDMwX1x1MDQzM1x1''@;'; + put 'put ''MDQzMFx1MDQzNFx1MDQzN1x1MDQ1Nlx1MDQzZFx1MDQ0Yl9cdTA0MzNcdTA0MzBcdTA0MzRcdTA0MzdcdTA0NTZcdTA0M2QiOiJcdTA0MzNcdTA0MzBcdTA0MzRcdTA0MzdcdTA0NTZcdTA0M2RcdTA0NDNfXHUwNDMzXHUwNDMwXHUwNDM0XHUwNDM3XHUwNDU2XHUwNDNkXHUwNDRiX1x1MDQz''@;'; + put 'put ''M1x1MDQzMFx1MDQzNFx1MDQzN1x1MDQ1Nlx1MDQzZCIsZGQ6Ilx1MDQzNFx1MDQzN1x1MDQzNVx1MDQzZFx1MDQ0Y19cdTA0MzRcdTA0M2RcdTA0NTZfXHUwNDM0XHUwNDM3XHUwNDUxXHUwNDNkIixNTToiXHUwNDNjXHUwNDM1XHUwNDQxXHUwNDRmXHUwNDQ2X1x1MDQzY1x1MDQzNVx1MDQ0''@;'; + put 'put ''MVx1MDQ0Zlx1MDQ0Nlx1MDQ0Yl9cdTA0M2NcdTA0MzVcdTA0NDFcdTA0NGZcdTA0NDZcdTA0MzBcdTA0NWUiLHl5OiJcdTA0MzNcdTA0M2VcdTA0MzRfXHUwNDMzXHUwNDMwXHUwNDM0XHUwNDRiX1x1MDQzM1x1MDQzMFx1MDQzNFx1MDQzZVx1MDQ1ZSJ9W1pdLCtVKX1tZS5kZWZpbmVMb2Nh''@;'; + put 'put ''bGUoImJlIix7bW9udGhzOntmb3JtYXQ6Ilx1MDQ0MVx1MDQ0Mlx1MDQ0M1x1MDQzNFx1MDQzN1x1MDQzNVx1MDQzZFx1MDQ0Zl9cdTA0M2JcdTA0NGVcdTA0NDJcdTA0MzBcdTA0MzNcdTA0MzBfXHUwNDQxXHUwNDMwXHUwNDNhXHUwNDMwXHUwNDMyXHUwNDU2XHUwNDNhXHUwNDMwX1x1MDQz''@;'; + put 'put ''YVx1MDQ0MFx1MDQzMFx1MDQ0MVx1MDQzMFx1MDQzMlx1MDQ1Nlx1MDQzYVx1MDQzMF9cdTA0NDJcdTA0NDBcdTA0MzBcdTA0NWVcdTA0M2RcdTA0NGZfXHUwNDQ3XHUwNDRkXHUwNDQwXHUwNDMyXHUwNDM1XHUwNDNkXHUwNDRmX1x1MDQzYlx1MDQ1Nlx1MDQzZlx1MDQzNVx1MDQzZFx1MDQ0''@;'; + put 'put ''Zl9cdTA0MzZcdTA0M2RcdTA0NTZcdTA0NWVcdTA0M2RcdTA0NGZfXHUwNDMyXHUwNDM1XHUwNDQwXHUwNDMwXHUwNDQxXHUwNDNkXHUwNDRmX1x1MDQzYVx1MDQzMFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQ0Ylx1MDQ0N1x1MDQzZFx1MDQ1Nlx1MDQzYVx1MDQzMF9cdTA0M2JcdTA0NTZcdTA0''@;'; + put 'put ''NDFcdTA0NDJcdTA0MzBcdTA0M2ZcdTA0MzBcdTA0MzRcdTA0MzBfXHUwNDQxXHUwNDNkXHUwNDM1XHUwNDM2XHUwNDNkXHUwNDRmIi5zcGxpdCgiXyIpLHN0YW5kYWxvbmU6Ilx1MDQ0MVx1MDQ0Mlx1MDQ0M1x1MDQzNFx1MDQzN1x1MDQzNVx1MDQzZFx1MDQ0Y19cdTA0M2JcdTA0NGVcdTA0''@;'; + put 'put ''NDJcdTA0NGJfXHUwNDQxXHUwNDMwXHUwNDNhXHUwNDMwXHUwNDMyXHUwNDU2XHUwNDNhX1x1MDQzYVx1MDQ0MFx1MDQzMFx1MDQ0MVx1MDQzMFx1MDQzMlx1MDQ1Nlx1MDQzYV9cdTA0NDJcdTA0NDBcdTA0MzBcdTA0MzJcdTA0MzVcdTA0M2RcdTA0NGNfXHUwNDQ3XHUwNDRkXHUwNDQwXHUw''@;'; + put 'put ''NDMyXHUwNDM1XHUwNDNkXHUwNDRjX1x1MDQzYlx1MDQ1Nlx1MDQzZlx1MDQzNVx1MDQzZFx1MDQ0Y19cdTA0MzZcdTA0M2RcdTA0NTZcdTA0MzJcdTA0MzVcdTA0M2RcdTA0NGNfXHUwNDMyXHUwNDM1XHUwNDQwXHUwNDMwXHUwNDQxXHUwNDM1XHUwNDNkXHUwNDRjX1x1MDQzYVx1MDQzMFx1''@;'; + put 'put ''MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQ0Ylx1MDQ0N1x1MDQzZFx1MDQ1Nlx1MDQzYV9cdTA0M2JcdTA0NTZcdTA0NDFcdTA0NDJcdTA0MzBcdTA0M2ZcdTA0MzBcdTA0MzRfXHUwNDQxXHUwNDNkXHUwNDM1XHUwNDM2XHUwNDMwXHUwNDNkXHUwNDRjIi5zcGxpdCgiXyIpfSxtb250aHNTaG9ydDoi''@;'; + put 'put ''XHUwNDQxXHUwNDQyXHUwNDQzXHUwNDM0X1x1MDQzYlx1MDQ0ZVx1MDQ0Ml9cdTA0NDFcdTA0MzBcdTA0M2FfXHUwNDNhXHUwNDQwXHUwNDMwXHUwNDQxX1x1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQzMl9cdTA0NDdcdTA0NGRcdTA0NDBcdTA0MzJfXHUwNDNiXHUwNDU2XHUwNDNmX1x1MDQzNlx1''@;'; + put 'put ''MDQzZFx1MDQ1Nlx1MDQzMl9cdTA0MzJcdTA0MzVcdTA0NDBfXHUwNDNhXHUwNDMwXHUwNDQxXHUwNDQyX1x1MDQzYlx1MDQ1Nlx1MDQ0MVx1MDQ0Ml9cdTA0NDFcdTA0M2RcdTA0MzVcdTA0MzYiLnNwbGl0KCJfIiksd2Vla2RheXM6e2Zvcm1hdDoiXHUwNDNkXHUwNDRmXHUwNDM0XHUwNDM3''@;'; + put 'put ''XHUwNDM1XHUwNDNiXHUwNDRlX1x1MDQzZlx1MDQzMFx1MDQzZFx1MDQ0Zlx1MDQzNFx1MDQzN1x1MDQzNVx1MDQzYlx1MDQzMFx1MDQzYV9cdTA0MzBcdTA0NWVcdTA0NDJcdTA0M2VcdTA0NDBcdTA0MzBcdTA0M2FfXHUwNDQxXHUwNDM1XHUwNDQwXHUwNDMwXHUwNDM0XHUwNDQzX1x1MDQ0''@;'; + put 'put ''N1x1MDQzMFx1MDQ0Nlx1MDQzMlx1MDQzNVx1MDQ0MF9cdTA0M2ZcdTA0NGZcdTA0NDJcdTA0M2RcdTA0NTZcdTA0NDZcdTA0NDNfXHUwNDQxXHUwNDQzXHUwNDMxXHUwNDNlXHUwNDQyXHUwNDQzIi5zcGxpdCgiXyIpLHN0YW5kYWxvbmU6Ilx1MDQzZFx1MDQ0Zlx1MDQzNFx1MDQzN1x1MDQz''@;'; + put 'put ''NVx1MDQzYlx1MDQ0Zl9cdTA0M2ZcdTA0MzBcdTA0M2RcdTA0NGZcdTA0MzRcdTA0MzdcdTA0MzVcdTA0M2JcdTA0MzBcdTA0M2FfXHUwNDMwXHUwNDVlXHUwNDQyXHUwNDNlXHUwNDQwXHUwNDMwXHUwNDNhX1x1MDQ0MVx1MDQzNVx1MDQ0MFx1MDQzMFx1MDQzNFx1MDQzMF9cdTA0NDdcdTA0''@;'; + put 'put ''MzBcdTA0NDZcdTA0MzJcdTA0MzVcdTA0NDBfXHUwNDNmXHUwNDRmXHUwNDQyXHUwNDNkXHUwNDU2XHUwNDQ2XHUwNDMwX1x1MDQ0MVx1MDQ0M1x1MDQzMVx1MDQzZVx1MDQ0Mlx1MDQzMCIuc3BsaXQoIl8iKSxpc0Zvcm1hdDovXFsgP1tcdTA0MjNcdTA0NDNcdTA0NWVdID8oPzpcdTA0M2Nc''@;'; + put 'put ''dTA0NTZcdTA0M2RcdTA0NDNcdTA0M2JcdTA0NDNcdTA0NGV8XHUwNDNkXHUwNDMwXHUwNDQxXHUwNDQyXHUwNDQzXHUwNDNmXHUwNDNkXHUwNDQzXHUwNDRlKT8gP1xdID9kZGRkL30sd2Vla2RheXNTaG9ydDoiXHUwNDNkXHUwNDM0X1x1MDQzZlx1MDQzZF9cdTA0MzBcdTA0NDJfXHUwNDQx''@;'; + put 'put ''XHUwNDQwX1x1MDQ0N1x1MDQ0Nl9cdTA0M2ZcdTA0NDJfXHUwNDQxXHUwNDMxIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJcdTA0M2RcdTA0MzRfXHUwNDNmXHUwNDNkX1x1MDQzMFx1MDQ0Ml9cdTA0NDFcdTA0NDBfXHUwNDQ3XHUwNDQ2X1x1MDQzZlx1MDQ0Ml9cdTA0NDFcdTA0MzEiLnNw''@;'; + put 'put ''bGl0KCJfIiksbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoiREQuTU0uWVlZWSIsTEw6IkQgTU1NTSBZWVlZIFx1MDQzMy4iLExMTDoiRCBNTU1NIFlZWVkgXHUwNDMzLiwgSEg6bW0iLExMTEw6ImRkZGQsIEQgTU1NTSBZWVlZIFx1MDQzMy4sIEhIOm1tIn0s''@;'; + put 'put ''Y2FsZW5kYXI6e3NhbWVEYXk6IltcdTA0MjFcdTA0NTFcdTA0M2RcdTA0M2RcdTA0NGYgXHUwNDVlXSBMVCIsbmV4dERheToiW1x1MDQxN1x1MDQzMFx1MDQ1ZVx1MDQ0Mlx1MDQ0MFx1MDQzMCBcdTA0NWVdIExUIixsYXN0RGF5OiJbXHUwNDIzXHUwNDQ3XHUwNDNlXHUwNDQwXHUwNDMwIFx1''@;'; + put 'put ''MDQ1ZV0gTFQiLG5leHRXZWVrOmZ1bmN0aW9uKCl7cmV0dXJuIltcdTA0MjNdIGRkZGQgW1x1MDQ1ZV0gTFQifSxsYXN0V2VlazpmdW5jdGlvbigpe3N3aXRjaCh0aGlzLmRheSgpKXtjYXNlIDA6Y2FzZSAzOmNhc2UgNTpjYXNlIDY6cmV0dXJuIltcdTA0MjMgXHUwNDNjXHUwNDU2XHUwNDNk''@;'; + put 'put ''XHUwNDQzXHUwNDNiXHUwNDQzXHUwNDRlXSBkZGRkIFtcdTA0NWVdIExUIjtjYXNlIDE6Y2FzZSAyOmNhc2UgNDpyZXR1cm4iW1x1MDQyMyBcdTA0M2NcdTA0NTZcdTA0M2RcdTA0NDNcdTA0M2JcdTA0NGJdIGRkZGQgW1x1MDQ1ZV0gTFQifX0sc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6''@;'; + put 'put ''e2Z1dHVyZToiXHUwNDNmXHUwNDQwXHUwNDMwXHUwNDM3ICVzIixwYXN0OiIlcyBcdTA0NDJcdTA0MzBcdTA0M2NcdTA0NDMiLHM6Ilx1MDQzZFx1MDQzNVx1MDQzYVx1MDQzMFx1MDQzYlx1MDQ0Y1x1MDQzYVx1MDQ1NiBcdTA0NDFcdTA0MzVcdTA0M2FcdTA0NDNcdTA0M2RcdTA0MzQiLG06''@;'; + put 'put ''RSxtbTpFLGg6RSxoaDpFLGQ6Ilx1MDQzNFx1MDQzN1x1MDQzNVx1MDQzZFx1MDQ0YyIsZGQ6RSxNOiJcdTA0M2NcdTA0MzVcdTA0NDFcdTA0NGZcdTA0NDYiLE1NOkUseToiXHUwNDMzXHUwNDNlXHUwNDM0Iix5eTpFfSxtZXJpZGllbVBhcnNlOi9cdTA0M2RcdTA0M2VcdTA0NDdcdTA0NGJ8''@;'; + put 'put ''XHUwNDQwXHUwNDMwXHUwNDNkXHUwNDU2XHUwNDQ2XHUwNDRifFx1MDQzNFx1MDQzZFx1MDQ0ZnxcdTA0MzJcdTA0MzVcdTA0NDdcdTA0MzBcdTA0NDBcdTA0MzAvLGlzUE06ZnVuY3Rpb24oVSl7cmV0dXJuL14oXHUwNDM0XHUwNDNkXHUwNDRmfFx1MDQzMlx1MDQzNVx1MDQ0N1x1MDQzMFx1''@;'; + put 'put ''MDQ0MFx1MDQzMCkkLy50ZXN0KFUpfSxtZXJpZGllbTpmdW5jdGlvbihVLFEsWil7cmV0dXJuIFU8ND8iXHUwNDNkXHUwNDNlXHUwNDQ3XHUwNDRiIjpVPDEyPyJcdTA0NDBcdTA0MzBcdTA0M2RcdTA0NTZcdTA0NDZcdTA0NGIiOlU8MTc/Ilx1MDQzNFx1MDQzZFx1MDQ0ZiI6Ilx1MDQzMlx1''@;'; + put 'put ''MDQzNVx1MDQ0N1x1MDQzMFx1MDQ0MFx1MDQzMCJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn0tKFx1MDQ1NnxcdTA0NGJ8XHUwNDMzXHUwNDMwKS8sb3JkaW5hbDpmdW5jdGlvbihVLFEpe3N3aXRjaChRKXtjYXNlIk0iOmNhc2UiZCI6Y2FzZSJEREQiOmNhc2UidyI6Y2FzZSJX''@;'; + put 'put ''IjpyZXR1cm4gVSUxMCE9MiYmVSUxMCE9M3x8VSUxMDA9PTEyfHxVJTEwMD09MTM/VSsiLVx1MDQ0YiI6VSsiLVx1MDQ1NiI7Y2FzZSJEIjpyZXR1cm4gVSsiLVx1MDQzM1x1MDQzMCI7ZGVmYXVsdDpyZXR1cm4gVX19LHdlZWs6e2RvdzoxLGRveTo3fX0pfShMKDE1NDM5KSl9LDkwMzIyOmZ1''@;'; + put 'put ''bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlvbihtZSl7InVzZSBzdHJpY3QiO21lLmRlZmluZUxvY2FsZSgiYmciLHttb250aHM6Ilx1MDQ0Zlx1MDQzZFx1MDQ0M1x1MDQzMFx1MDQ0MFx1MDQzOF9cdTA0NDRcdTA0MzVcdTA0MzJcdTA0NDBcdTA0NDNcdTA0MzBcdTA0NDBcdTA0MzhfXHUwNDNj''@;'; + put 'put ''XHUwNDMwXHUwNDQwXHUwNDQyX1x1MDQzMFx1MDQzZlx1MDQ0MFx1MDQzOFx1MDQzYl9cdTA0M2NcdTA0MzBcdTA0MzlfXHUwNDRlXHUwNDNkXHUwNDM4X1x1MDQ0ZVx1MDQzYlx1MDQzOF9cdTA0MzBcdTA0MzJcdTA0MzNcdTA0NDNcdTA0NDFcdTA0NDJfXHUwNDQxXHUwNDM1XHUwNDNmXHUw''@;'; + put 'put ''NDQyXHUwNDM1XHUwNDNjXHUwNDMyXHUwNDQwXHUwNDM4X1x1MDQzZVx1MDQzYVx1MDQ0Mlx1MDQzZVx1MDQzY1x1MDQzMlx1MDQ0MFx1MDQzOF9cdTA0M2RcdTA0M2VcdTA0MzVcdTA0M2NcdTA0MzJcdTA0NDBcdTA0MzhfXHUwNDM0XHUwNDM1XHUwNDNhXHUwNDM1XHUwNDNjXHUwNDMyXHUw''@;'; + put 'put ''NDQwXHUwNDM4Ii5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJcdTA0NGZcdTA0M2RcdTA0NDNfXHUwNDQ0XHUwNDM1XHUwNDMyX1x1MDQzY1x1MDQzMFx1MDQ0MF9cdTA0MzBcdTA0M2ZcdTA0NDBfXHUwNDNjXHUwNDMwXHUwNDM5X1x1MDQ0ZVx1MDQzZFx1MDQzOF9cdTA0NGVcdTA0M2JcdTA0''@;'; + put 'put ''MzhfXHUwNDMwXHUwNDMyXHUwNDMzX1x1MDQ0MVx1MDQzNVx1MDQzZl9cdTA0M2VcdTA0M2FcdTA0NDJfXHUwNDNkXHUwNDNlXHUwNDM1X1x1MDQzNFx1MDQzNVx1MDQzYSIuc3BsaXQoIl8iKSx3ZWVrZGF5czoiXHUwNDNkXHUwNDM1XHUwNDM0XHUwNDM1XHUwNDNiXHUwNDRmX1x1MDQzZlx1''@;'; + put 'put ''MDQzZVx1MDQzZFx1MDQzNVx1MDQzNFx1MDQzNVx1MDQzYlx1MDQzZFx1MDQzOFx1MDQzYV9cdTA0MzJcdTA0NDJcdTA0M2VcdTA0NDBcdTA0M2RcdTA0MzhcdTA0M2FfXHUwNDQxXHUwNDQwXHUwNDRmXHUwNDM0XHUwNDMwX1x1MDQ0N1x1MDQzNVx1MDQ0Mlx1MDQzMlx1MDQ0YVx1MDQ0MFx1''@;'; + put 'put ''MDQ0Mlx1MDQ0YVx1MDQzYV9cdTA0M2ZcdTA0MzVcdTA0NDJcdTA0NGFcdTA0M2FfXHUwNDQxXHUwNDRhXHUwNDMxXHUwNDNlXHUwNDQyXHUwNDMwIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6Ilx1MDQzZFx1MDQzNVx1MDQzNF9cdTA0M2ZcdTA0M2VcdTA0M2RfXHUwNDMyXHUwNDQyXHUw''@;'; + put 'put ''NDNlX1x1MDQ0MVx1MDQ0MFx1MDQ0Zl9cdTA0NDdcdTA0MzVcdTA0NDJfXHUwNDNmXHUwNDM1XHUwNDQyX1x1MDQ0MVx1MDQ0YVx1MDQzMSIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiXHUwNDNkXHUwNDM0X1x1MDQzZlx1MDQzZF9cdTA0MzJcdTA0NDJfXHUwNDQxXHUwNDQwX1x1MDQ0N1x1''@;'; + put 'put ''MDQ0Ml9cdTA0M2ZcdTA0NDJfXHUwNDQxXHUwNDMxIi5zcGxpdCgiXyIpLGxvbmdEYXRlRm9ybWF0OntMVDoiSDptbSIsTFRTOiJIOm1tOnNzIixMOiJELk1NLllZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0gWVlZWSBIOm1tIixMTExMOiJkZGRkLCBEIE1NTU0gWVlZWSBIOm1t''@;'; + put 'put ''In0sY2FsZW5kYXI6e3NhbWVEYXk6IltcdTA0MTRcdTA0M2RcdTA0MzVcdTA0NDEgXHUwNDMyXSBMVCIsbmV4dERheToiW1x1MDQyM1x1MDQ0Mlx1MDQ0MFx1MDQzNSBcdTA0MzJdIExUIixuZXh0V2VlazoiZGRkZCBbXHUwNDMyXSBMVCIsbGFzdERheToiW1x1MDQxMlx1MDQ0N1x1MDQzNVx1''@;'; + put 'put ''MDQ0MFx1MDQzMCBcdTA0MzJdIExUIixsYXN0V2VlazpmdW5jdGlvbigpe3N3aXRjaCh0aGlzLmRheSgpKXtjYXNlIDA6Y2FzZSAzOmNhc2UgNjpyZXR1cm4iW1x1MDQxY1x1MDQzOFx1MDQzZFx1MDQzMFx1MDQzYlx1MDQzMFx1MDQ0Mlx1MDQzMF0gZGRkZCBbXHUwNDMyXSBMVCI7Y2FzZSAx''@;'; + put 'put ''OmNhc2UgMjpjYXNlIDQ6Y2FzZSA1OnJldHVybiJbXHUwNDFjXHUwNDM4XHUwNDNkXHUwNDMwXHUwNDNiXHUwNDM4XHUwNDRmXSBkZGRkIFtcdTA0MzJdIExUIn19LHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6Ilx1MDQ0MVx1MDQzYlx1MDQzNVx1MDQzNCAlcyIscGFzdDoi''@;'; + put 'put ''XHUwNDNmXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDM4ICVzIixzOiJcdTA0M2RcdTA0NGZcdTA0M2FcdTA0M2VcdTA0M2JcdTA0M2FcdTA0M2UgXHUwNDQxXHUwNDM1XHUwNDNhXHUwNDQzXHUwNDNkXHUwNDM0XHUwNDM4IixzczoiJWQgXHUwNDQxXHUwNDM1XHUwNDNhXHUwNDQzXHUwNDNkXHUw''@;'; + put 'put ''NDM0XHUwNDM4IixtOiJcdTA0M2NcdTA0MzhcdTA0M2RcdTA0NDNcdTA0NDJcdTA0MzAiLG1tOiIlZCBcdTA0M2NcdTA0MzhcdTA0M2RcdTA0NDNcdTA0NDJcdTA0MzgiLGg6Ilx1MDQ0N1x1MDQzMFx1MDQ0MSIsaGg6IiVkIFx1MDQ0N1x1MDQzMFx1MDQ0MVx1MDQzMCIsZDoiXHUwNDM0XHUw''@;'; + put 'put ''NDM1XHUwNDNkIixkZDoiJWQgXHUwNDM0XHUwNDM1XHUwNDNkXHUwNDMwIix3OiJcdTA0NDFcdTA0MzVcdTA0MzRcdTA0M2NcdTA0MzhcdTA0NDZcdTA0MzAiLHd3OiIlZCBcdTA0NDFcdTA0MzVcdTA0MzRcdTA0M2NcdTA0MzhcdTA0NDZcdTA0MzgiLE06Ilx1MDQzY1x1MDQzNVx1MDQ0MVx1''@;'; + put 'put ''MDQzNVx1MDQ0NiIsTU06IiVkIFx1MDQzY1x1MDQzNVx1MDQ0MVx1MDQzNVx1MDQ0Nlx1MDQzMCIseToiXHUwNDMzXHUwNDNlXHUwNDM0XHUwNDM4XHUwNDNkXHUwNDMwIix5eToiJWQgXHUwNDMzXHUwNDNlXHUwNDM0XHUwNDM4XHUwNDNkXHUwNDM4In0sZGF5T2ZNb250aE9yZGluYWxQYXJz''@;'; + put 'put ''ZTovXGR7MSwyfS0oXHUwNDM1XHUwNDMyfFx1MDQzNVx1MDQzZHxcdTA0NDJcdTA0Mzh8XHUwNDMyXHUwNDM4fFx1MDQ0MFx1MDQzOHxcdTA0M2NcdTA0MzgpLyxvcmRpbmFsOmZ1bmN0aW9uKEUpe3ZhciBNZT1FJTEwLFU9RSUxMDA7cmV0dXJuIDA9PT1FP0UrIi1cdTA0MzVcdTA0MzIiOjA9''@;'; + put 'put ''PT1VP0UrIi1cdTA0MzVcdTA0M2QiOlU+MTAmJlU8MjA/RSsiLVx1MDQ0Mlx1MDQzOCI6MT09PU1lP0UrIi1cdTA0MzJcdTA0MzgiOjI9PT1NZT9FKyItXHUwNDQwXHUwNDM4Ijo3PT09TWV8fDg9PT1NZT9FKyItXHUwNDNjXHUwNDM4IjpFKyItXHUwNDQyXHUwNDM4In0sd2Vlazp7ZG93OjEs''@;'; + put 'put ''ZG95Ojd9fSl9KEwoMTU0MzkpKX0sMjgwNDI6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7bWUuZGVmaW5lTG9jYWxlKCJibSIse21vbnRoczoiWmFud3V5ZWthbG9fRmV3dXJ1eWVrYWxvX01hcmlzaWthbG9fQXdpcmlsaWthbG9fTVx1MDI1YmthbG9fWnV3''@;'; + put 'put ''XHUwMjVibmthbG9fWnVsdXlla2Fsb19VdGlrYWxvX1NcdTAyNWJ0YW5idXJ1a2Fsb19cdTAyNTRrdXRcdTAyNTRidXJ1a2Fsb19Ob3dhbmJ1cnVrYWxvX0Rlc2FuYnVydWthbG8iLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6Ilphbl9GZXdfTWFyX0F3aV9NXHUwMjViX1p1d19adWxfVXRpX1Nc''@;'; + put 'put ''dTAyNWJ0X1x1MDI1NGt1X05vd19EZXMiLnNwbGl0KCJfIiksd2Vla2RheXM6IkthcmlfTnRcdTAyNWJuXHUwMjVibl9UYXJhdGFfQXJhYmFfQWxhbWlzYV9KdW1hX1NpYmlyaSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJLYXJfTnRcdTAyNWJfVGFyX0FyYV9BbGFfSnVtX1NpYiIuc3Bs''@;'; + put 'put ''aXQoIl8iKSx3ZWVrZGF5c01pbjoiS2FfTnRfVGFfQXJfQWxfSnVfU2kiLnNwbGl0KCJfIiksbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoiREQvTU0vWVlZWSIsTEw6Ik1NTU0gW3RpbGVdIEQgW3Nhbl0gWVlZWSIsTExMOiJNTU1NIFt0aWxlXSBEIFtzYW5d''@;'; + put 'put ''IFlZWVkgW2xcdTAyNWJyXHUwMjViXSBISDptbSIsTExMTDoiZGRkZCBNTU1NIFt0aWxlXSBEIFtzYW5dIFlZWVkgW2xcdTAyNWJyXHUwMjViXSBISDptbSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbQmkgbFx1MDI1YnJcdTAyNWJdIExUIixuZXh0RGF5OiJbU2luaSBsXHUwMjViclx1MDI1Yl0g''@;'; + put 'put ''TFQiLG5leHRXZWVrOiJkZGRkIFtkb24gbFx1MDI1YnJcdTAyNWJdIExUIixsYXN0RGF5OiJbS3VudSBsXHUwMjViclx1MDI1Yl0gTFQiLGxhc3RXZWVrOiJkZGRkIFt0XHUwMjVibVx1MDI1Ym5lbiBsXHUwMjViclx1MDI1Yl0gTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1''@;'; + put 'put ''cmU6IiVzIGtcdTAyNTRuXHUwMjU0IixwYXN0OiJhIGJcdTAyNWIgJXMgYlx1MDI1NCIsczoic2FuZ2EgZGFtYSBkYW1hIixzczoic2Vrb25kaSAlZCIsbToibWluaXRpIGtlbGVuIixtbToibWluaXRpICVkIixoOiJsXHUwMjViclx1MDI1YiBrZWxlbiIsaGg6ImxcdTAyNWJyXHUwMjViICVk''@;'; + put 'put ''IixkOiJ0aWxlIGtlbGVuIixkZDoidGlsZSAlZCIsTToia2FsbyBrZWxlbiIsTU06ImthbG8gJWQiLHk6InNhbiBrZWxlbiIseXk6InNhbiAlZCJ9LHdlZWs6e2RvdzoxLGRveTo0fX0pfShMKDE1NDM5KSl9LDY1OTAzOmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlvbihtZSl7InVzZSBzdHJp''@;'; + put 'put ''Y3QiO3ZhciBCPXsxOiJcdTA5ZTciLDI6Ilx1MDllOCIsMzoiXHUwOWU5Iiw0OiJcdTA5ZWEiLDU6Ilx1MDllYiIsNjoiXHUwOWVjIiw3OiJcdTA5ZWQiLDg6Ilx1MDllZSIsOToiXHUwOWVmIiwwOiJcdTA5ZTYifSxFPXsiXHUwOWU3IjoiMSIsIlx1MDllOCI6IjIiLCJcdTA5ZTkiOiIzIiwi''@;'; + put 'put ''XHUwOWVhIjoiNCIsIlx1MDllYiI6IjUiLCJcdTA5ZWMiOiI2IiwiXHUwOWVkIjoiNyIsIlx1MDllZSI6IjgiLCJcdTA5ZWYiOiI5IiwiXHUwOWU2IjoiMCJ9O21lLmRlZmluZUxvY2FsZSgiYm4tYmQiLHttb250aHM6Ilx1MDk5Y1x1MDliZVx1MDlhOFx1MDljMVx1MDlkZlx1MDliZVx1MDli''@;'; + put 'put ''MFx1MDliZl9cdTA5YWJcdTA5YzdcdTA5YWNcdTA5Y2RcdTA5YjBcdTA5YzFcdTA5ZGZcdTA5YmVcdTA5YjBcdTA5YmZfXHUwOWFlXHUwOWJlXHUwOWIwXHUwOWNkXHUwOTlhX1x1MDk4Zlx1MDlhYVx1MDljZFx1MDliMFx1MDliZlx1MDliMl9cdTA5YWVcdTA5YzdfXHUwOTljXHUwOWMxXHUw''@;'; + put 'put ''OWE4X1x1MDk5Y1x1MDljMVx1MDliMlx1MDliZVx1MDk4N19cdTA5ODZcdTA5OTdcdTA5YjhcdTA5Y2RcdTA5OWZfXHUwOWI4XHUwOWM3XHUwOWFhXHUwOWNkXHUwOTlmXHUwOWM3XHUwOWFlXHUwOWNkXHUwOWFjXHUwOWIwX1x1MDk4NVx1MDk5NVx1MDljZFx1MDk5Zlx1MDljYlx1MDlhY1x1''@;'; + put 'put ''MDliMF9cdTA5YThcdTA5YWRcdTA5YzdcdTA5YWVcdTA5Y2RcdTA5YWNcdTA5YjBfXHUwOWExXHUwOWJmXHUwOWI4XHUwOWM3XHUwOWFlXHUwOWNkXHUwOWFjXHUwOWIwIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJcdTA5OWNcdTA5YmVcdTA5YThcdTA5YzFfXHUwOWFiXHUwOWM3XHUwOWFj''@;'; + put 'put ''XHUwOWNkXHUwOWIwXHUwOWMxX1x1MDlhZVx1MDliZVx1MDliMFx1MDljZFx1MDk5YV9cdTA5OGZcdTA5YWFcdTA5Y2RcdTA5YjBcdTA5YmZcdTA5YjJfXHUwOWFlXHUwOWM3X1x1MDk5Y1x1MDljMVx1MDlhOF9cdTA5OWNcdTA5YzFcdTA5YjJcdTA5YmVcdTA5ODdfXHUwOTg2XHUwOTk3XHUw''@;'; + put 'put ''OWI4XHUwOWNkXHUwOTlmX1x1MDliOFx1MDljN1x1MDlhYVx1MDljZFx1MDk5Zl9cdTA5ODVcdTA5OTVcdTA5Y2RcdTA5OWZcdTA5Y2JfXHUwOWE4XHUwOWFkXHUwOWM3X1x1MDlhMVx1MDliZlx1MDliOFx1MDljNyIuc3BsaXQoIl8iKSx3ZWVrZGF5czoiXHUwOWIwXHUwOWFjXHUwOWJmXHUw''@;'; + put 'put ''OWFjXHUwOWJlXHUwOWIwX1x1MDliOFx1MDljYlx1MDlhZVx1MDlhY1x1MDliZVx1MDliMF9cdTA5YWVcdTA5OTlcdTA5Y2RcdTA5OTdcdTA5YjJcdTA5YWNcdTA5YmVcdTA5YjBfXHUwOWFjXHUwOWMxXHUwOWE3XHUwOWFjXHUwOWJlXHUwOWIwX1x1MDlhY1x1MDljM1x1MDliOVx1MDliOFx1''@;'; + put 'put ''MDljZFx1MDlhYVx1MDlhNFx1MDliZlx1MDlhY1x1MDliZVx1MDliMF9cdTA5YjZcdTA5YzFcdTA5OTVcdTA5Y2RcdTA5YjBcdTA5YWNcdTA5YmVcdTA5YjBfXHUwOWI2XHUwOWE4XHUwOWJmXHUwOWFjXHUwOWJlXHUwOWIwIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6Ilx1MDliMFx1MDlh''@;'; + put 'put ''Y1x1MDliZl9cdTA5YjhcdTA5Y2JcdTA5YWVfXHUwOWFlXHUwOTk5XHUwOWNkXHUwOTk3XHUwOWIyX1x1MDlhY1x1MDljMVx1MDlhN19cdTA5YWNcdTA5YzNcdTA5YjlcdTA5YjhcdTA5Y2RcdTA5YWFcdTA5YTRcdTA5YmZfXHUwOWI2XHUwOWMxXHUwOTk1XHUwOWNkXHUwOWIwX1x1MDliNlx1''@;'; + put 'put ''MDlhOFx1MDliZiIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiXHUwOWIwXHUwOWFjXHUwOWJmX1x1MDliOFx1MDljYlx1MDlhZV9cdTA5YWVcdTA5OTlcdTA5Y2RcdTA5OTdcdTA5YjJfXHUwOWFjXHUwOWMxXHUwOWE3X1x1MDlhY1x1MDljM1x1MDliOV9cdTA5YjZcdTA5YzFcdTA5OTVcdTA5''@;'; + put 'put ''Y2RcdTA5YjBfXHUwOWI2XHUwOWE4XHUwOWJmIi5zcGxpdCgiXyIpLGxvbmdEYXRlRm9ybWF0OntMVDoiQSBoOm1tIFx1MDliOFx1MDlhZVx1MDlkZiIsTFRTOiJBIGg6bW06c3MgXHUwOWI4XHUwOWFlXHUwOWRmIixMOiJERC9NTS9ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1N''@;'; + put 'put ''IFlZWVksIEEgaDptbSBcdTA5YjhcdTA5YWVcdTA5ZGYiLExMTEw6ImRkZGQsIEQgTU1NTSBZWVlZLCBBIGg6bW0gXHUwOWI4XHUwOWFlXHUwOWRmIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltcdTA5ODZcdTA5OWNdIExUIixuZXh0RGF5OiJbXHUwOTg2XHUwOTk3XHUwOWJlXHUwOWFlXHUwOWMw''@;'; + put 'put ''XHUwOTk1XHUwOWJlXHUwOWIyXSBMVCIsbmV4dFdlZWs6ImRkZGQsIExUIixsYXN0RGF5OiJbXHUwOTk3XHUwOWE0XHUwOTk1XHUwOWJlXHUwOWIyXSBMVCIsbGFzdFdlZWs6IltcdTA5OTdcdTA5YTRdIGRkZGQsIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiIlcyBc''@;'; + put 'put ''dTA5YWFcdTA5YjBcdTA5YzciLHBhc3Q6IiVzIFx1MDk4Nlx1MDk5N1x1MDljNyIsczoiXHUwOTk1XHUwOWRmXHUwOWM3XHUwOTk1IFx1MDliOFx1MDljN1x1MDk5NVx1MDljN1x1MDlhOFx1MDljZFx1MDlhMSIsc3M6IiVkIFx1MDliOFx1MDljN1x1MDk5NVx1MDljN1x1MDlhOFx1MDljZFx1''@;'; + put 'put ''MDlhMSIsbToiXHUwOThmXHUwOTk1IFx1MDlhZVx1MDliZlx1MDlhOFx1MDliZlx1MDk5ZiIsbW06IiVkIFx1MDlhZVx1MDliZlx1MDlhOFx1MDliZlx1MDk5ZiIsaDoiXHUwOThmXHUwOTk1IFx1MDk5OFx1MDlhOFx1MDljZFx1MDk5Zlx1MDliZSIsaGg6IiVkIFx1MDk5OFx1MDlhOFx1MDlj''@;'; + put 'put ''ZFx1MDk5Zlx1MDliZSIsZDoiXHUwOThmXHUwOTk1IFx1MDlhNlx1MDliZlx1MDlhOCIsZGQ6IiVkIFx1MDlhNlx1MDliZlx1MDlhOCIsTToiXHUwOThmXHUwOTk1IFx1MDlhZVx1MDliZVx1MDliOCIsTU06IiVkIFx1MDlhZVx1MDliZVx1MDliOCIseToiXHUwOThmXHUwOTk1IFx1MDlhY1x1''@;'; + put 'put ''MDk5Ylx1MDliMCIseXk6IiVkIFx1MDlhY1x1MDk5Ylx1MDliMCJ9LHByZXBhcnNlOmZ1bmN0aW9uKFUpe3JldHVybiBVLnJlcGxhY2UoL1tcdTA5ZTdcdTA5ZThcdTA5ZTlcdTA5ZWFcdTA5ZWJcdTA5ZWNcdTA5ZWRcdTA5ZWVcdTA5ZWZcdTA5ZTZdL2csZnVuY3Rpb24oUSl7cmV0dXJuIEVb''@;'; + put 'put ''UV19KX0scG9zdGZvcm1hdDpmdW5jdGlvbihVKXtyZXR1cm4gVS5yZXBsYWNlKC9cZC9nLGZ1bmN0aW9uKFEpe3JldHVybiBCW1FdfSl9LG1lcmlkaWVtUGFyc2U6L1x1MDliMFx1MDliZVx1MDlhNHxcdTA5YWRcdTA5Y2JcdTA5YjB8XHUwOWI4XHUwOTk1XHUwOWJlXHUwOWIyfFx1MDlhNlx1''@;'; + put 'put ''MDljMVx1MDlhYVx1MDljMVx1MDliMHxcdTA5YWNcdTA5YmZcdTA5OTVcdTA5YmVcdTA5YjJ8XHUwOWI4XHUwOWE4XHUwOWNkXHUwOWE3XHUwOWNkXHUwOWFmXHUwOWJlfFx1MDliMFx1MDliZVx1MDlhNC8sbWVyaWRpZW1Ib3VyOmZ1bmN0aW9uKFUsUSl7cmV0dXJuIDEyPT09VSYmKFU9MCks''@;'; + put 'put ''Ilx1MDliMFx1MDliZVx1MDlhNCI9PT1RP1U8ND9VOlUrMTI6Ilx1MDlhZFx1MDljYlx1MDliMCI9PT1RfHwiXHUwOWI4XHUwOTk1XHUwOWJlXHUwOWIyIj09PVE/VToiXHUwOWE2XHUwOWMxXHUwOWFhXHUwOWMxXHUwOWIwIj09PVE/VT49Mz9VOlUrMTI6Ilx1MDlhY1x1MDliZlx1MDk5NVx1''@;'; + put 'put ''MDliZVx1MDliMiI9PT1RfHwiXHUwOWI4XHUwOWE4XHUwOWNkXHUwOWE3XHUwOWNkXHUwOWFmXHUwOWJlIj09PVE/VSsxMjp2b2lkIDB9LG1lcmlkaWVtOmZ1bmN0aW9uKFUsUSxaKXtyZXR1cm4gVTw0PyJcdTA5YjBcdTA5YmVcdTA5YTQiOlU8Nj8iXHUwOWFkXHUwOWNiXHUwOWIwIjpVPDEy''@;'; + put 'put ''PyJcdTA5YjhcdTA5OTVcdTA5YmVcdTA5YjIiOlU8MTU/Ilx1MDlhNlx1MDljMVx1MDlhYVx1MDljMVx1MDliMCI6VTwxOD8iXHUwOWFjXHUwOWJmXHUwOTk1XHUwOWJlXHUwOWIyIjpVPDIwPyJcdTA5YjhcdTA5YThcdTA5Y2RcdTA5YTdcdTA5Y2RcdTA5YWZcdTA5YmUiOiJcdTA5YjBcdTA5''@;'; + put 'put ''YmVcdTA5YTQifSx3ZWVrOntkb3c6MCxkb3k6Nn19KX0oTCgxNTQzOSkpfSw1OTYyMDpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0Ijt2YXIgQj17MToiXHUwOWU3IiwyOiJcdTA5ZTgiLDM6Ilx1MDllOSIsNDoiXHUwOWVhIiw1OiJcdTA5ZWIiLDY6Ilx1MDll''@;'; + put 'put ''YyIsNzoiXHUwOWVkIiw4OiJcdTA5ZWUiLDk6Ilx1MDllZiIsMDoiXHUwOWU2In0sRT17Ilx1MDllNyI6IjEiLCJcdTA5ZTgiOiIyIiwiXHUwOWU5IjoiMyIsIlx1MDllYSI6IjQiLCJcdTA5ZWIiOiI1IiwiXHUwOWVjIjoiNiIsIlx1MDllZCI6IjciLCJcdTA5ZWUiOiI4IiwiXHUwOWVmIjoi''@;'; + put 'put ''OSIsIlx1MDllNiI6IjAifTttZS5kZWZpbmVMb2NhbGUoImJuIix7bW9udGhzOiJcdTA5OWNcdTA5YmVcdTA5YThcdTA5YzFcdTA5ZGZcdTA5YmVcdTA5YjBcdTA5YmZfXHUwOWFiXHUwOWM3XHUwOWFjXHUwOWNkXHUwOWIwXHUwOWMxXHUwOWRmXHUwOWJlXHUwOWIwXHUwOWJmX1x1MDlhZVx1''@;'; + put 'put ''MDliZVx1MDliMFx1MDljZFx1MDk5YV9cdTA5OGZcdTA5YWFcdTA5Y2RcdTA5YjBcdTA5YmZcdTA5YjJfXHUwOWFlXHUwOWM3X1x1MDk5Y1x1MDljMVx1MDlhOF9cdTA5OWNcdTA5YzFcdTA5YjJcdTA5YmVcdTA5ODdfXHUwOTg2XHUwOTk3XHUwOWI4XHUwOWNkXHUwOTlmX1x1MDliOFx1MDlj''@;'; + put 'put ''N1x1MDlhYVx1MDljZFx1MDk5Zlx1MDljN1x1MDlhZVx1MDljZFx1MDlhY1x1MDliMF9cdTA5ODVcdTA5OTVcdTA5Y2RcdTA5OWZcdTA5Y2JcdTA5YWNcdTA5YjBfXHUwOWE4XHUwOWFkXHUwOWM3XHUwOWFlXHUwOWNkXHUwOWFjXHUwOWIwX1x1MDlhMVx1MDliZlx1MDliOFx1MDljN1x1MDlh''@;'; + put 'put ''ZVx1MDljZFx1MDlhY1x1MDliMCIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiXHUwOTljXHUwOWJlXHUwOWE4XHUwOWMxX1x1MDlhYlx1MDljN1x1MDlhY1x1MDljZFx1MDliMFx1MDljMV9cdTA5YWVcdTA5YmVcdTA5YjBcdTA5Y2RcdTA5OWFfXHUwOThmXHUwOWFhXHUwOWNkXHUwOWIwXHUw''@;'; + put 'put ''OWJmXHUwOWIyX1x1MDlhZVx1MDljN19cdTA5OWNcdTA5YzFcdTA5YThfXHUwOTljXHUwOWMxXHUwOWIyXHUwOWJlXHUwOTg3X1x1MDk4Nlx1MDk5N1x1MDliOFx1MDljZFx1MDk5Zl9cdTA5YjhcdTA5YzdcdTA5YWFcdTA5Y2RcdTA5OWZfXHUwOTg1XHUwOTk1XHUwOWNkXHUwOTlmXHUwOWNi''@;'; + put 'put ''X1x1MDlhOFx1MDlhZFx1MDljN19cdTA5YTFcdTA5YmZcdTA5YjhcdTA5YzciLnNwbGl0KCJfIiksd2Vla2RheXM6Ilx1MDliMFx1MDlhY1x1MDliZlx1MDlhY1x1MDliZVx1MDliMF9cdTA5YjhcdTA5Y2JcdTA5YWVcdTA5YWNcdTA5YmVcdTA5YjBfXHUwOWFlXHUwOTk5XHUwOWNkXHUwOTk3''@;'; + put 'put ''XHUwOWIyXHUwOWFjXHUwOWJlXHUwOWIwX1x1MDlhY1x1MDljMVx1MDlhN1x1MDlhY1x1MDliZVx1MDliMF9cdTA5YWNcdTA5YzNcdTA5YjlcdTA5YjhcdTA5Y2RcdTA5YWFcdTA5YTRcdTA5YmZcdTA5YWNcdTA5YmVcdTA5YjBfXHUwOWI2XHUwOWMxXHUwOTk1XHUwOWNkXHUwOWIwXHUwOWFj''@;'; + put 'put ''XHUwOWJlXHUwOWIwX1x1MDliNlx1MDlhOFx1MDliZlx1MDlhY1x1MDliZVx1MDliMCIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJcdTA5YjBcdTA5YWNcdTA5YmZfXHUwOWI4XHUwOWNiXHUwOWFlX1x1MDlhZVx1MDk5OVx1MDljZFx1MDk5N1x1MDliMl9cdTA5YWNcdTA5YzFcdTA5YTdf''@;'; + put 'put ''XHUwOWFjXHUwOWMzXHUwOWI5XHUwOWI4XHUwOWNkXHUwOWFhXHUwOWE0XHUwOWJmX1x1MDliNlx1MDljMVx1MDk5NVx1MDljZFx1MDliMF9cdTA5YjZcdTA5YThcdTA5YmYiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46Ilx1MDliMFx1MDlhY1x1MDliZl9cdTA5YjhcdTA5Y2JcdTA5YWVfXHUw''@;'; + put 'put ''OWFlXHUwOTk5XHUwOWNkXHUwOTk3XHUwOWIyX1x1MDlhY1x1MDljMVx1MDlhN19cdTA5YWNcdTA5YzNcdTA5YjlfXHUwOWI2XHUwOWMxXHUwOTk1XHUwOWNkXHUwOWIwX1x1MDliNlx1MDlhOFx1MDliZiIuc3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6IkEgaDptbSBcdTA5YjhcdTA5''@;'; + put 'put ''YWVcdTA5ZGYiLExUUzoiQSBoOm1tOnNzIFx1MDliOFx1MDlhZVx1MDlkZiIsTDoiREQvTU0vWVlZWSIsTEw6IkQgTU1NTSBZWVlZIixMTEw6IkQgTU1NTSBZWVlZLCBBIGg6bW0gXHUwOWI4XHUwOWFlXHUwOWRmIixMTExMOiJkZGRkLCBEIE1NTU0gWVlZWSwgQSBoOm1tIFx1MDliOFx1MDlh''@;'; + put 'put ''ZVx1MDlkZiJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbXHUwOTg2XHUwOTljXSBMVCIsbmV4dERheToiW1x1MDk4Nlx1MDk5N1x1MDliZVx1MDlhZVx1MDljMFx1MDk5NVx1MDliZVx1MDliMl0gTFQiLG5leHRXZWVrOiJkZGRkLCBMVCIsbGFzdERheToiW1x1MDk5N1x1MDlhNFx1MDk5NVx1MDli''@;'; + put 'put ''ZVx1MDliMl0gTFQiLGxhc3RXZWVrOiJbXHUwOTk3XHUwOWE0XSBkZGRkLCBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiJXMgXHUwOWFhXHUwOWIwXHUwOWM3IixwYXN0OiIlcyBcdTA5ODZcdTA5OTdcdTA5YzciLHM6Ilx1MDk5NVx1MDlkZlx1MDljN1x1MDk5NSBc''@;'; + put 'put ''dTA5YjhcdTA5YzdcdTA5OTVcdTA5YzdcdTA5YThcdTA5Y2RcdTA5YTEiLHNzOiIlZCBcdTA5YjhcdTA5YzdcdTA5OTVcdTA5YzdcdTA5YThcdTA5Y2RcdTA5YTEiLG06Ilx1MDk4Zlx1MDk5NSBcdTA5YWVcdTA5YmZcdTA5YThcdTA5YmZcdTA5OWYiLG1tOiIlZCBcdTA5YWVcdTA5YmZcdTA5''@;'; + put 'put ''YThcdTA5YmZcdTA5OWYiLGg6Ilx1MDk4Zlx1MDk5NSBcdTA5OThcdTA5YThcdTA5Y2RcdTA5OWZcdTA5YmUiLGhoOiIlZCBcdTA5OThcdTA5YThcdTA5Y2RcdTA5OWZcdTA5YmUiLGQ6Ilx1MDk4Zlx1MDk5NSBcdTA5YTZcdTA5YmZcdTA5YTgiLGRkOiIlZCBcdTA5YTZcdTA5YmZcdTA5YTgi''@;'; + put 'put ''LE06Ilx1MDk4Zlx1MDk5NSBcdTA5YWVcdTA5YmVcdTA5YjgiLE1NOiIlZCBcdTA5YWVcdTA5YmVcdTA5YjgiLHk6Ilx1MDk4Zlx1MDk5NSBcdTA5YWNcdTA5OWJcdTA5YjAiLHl5OiIlZCBcdTA5YWNcdTA5OWJcdTA5YjAifSxwcmVwYXJzZTpmdW5jdGlvbihVKXtyZXR1cm4gVS5yZXBsYWNl''@;'; + put 'put ''KC9bXHUwOWU3XHUwOWU4XHUwOWU5XHUwOWVhXHUwOWViXHUwOWVjXHUwOWVkXHUwOWVlXHUwOWVmXHUwOWU2XS9nLGZ1bmN0aW9uKFEpe3JldHVybiBFW1FdfSl9LHBvc3Rmb3JtYXQ6ZnVuY3Rpb24oVSl7cmV0dXJuIFUucmVwbGFjZSgvXGQvZyxmdW5jdGlvbihRKXtyZXR1cm4gQltRXX0p''@;'; + put 'put ''fSxtZXJpZGllbVBhcnNlOi9cdTA5YjBcdTA5YmVcdTA5YTR8XHUwOWI4XHUwOTk1XHUwOWJlXHUwOWIyfFx1MDlhNlx1MDljMVx1MDlhYVx1MDljMVx1MDliMHxcdTA5YWNcdTA5YmZcdTA5OTVcdTA5YmVcdTA5YjJ8XHUwOWIwXHUwOWJlXHUwOWE0LyxtZXJpZGllbUhvdXI6ZnVuY3Rpb24o''@;'; + put 'put ''VSxRKXtyZXR1cm4gMTI9PT1VJiYoVT0wKSwiXHUwOWIwXHUwOWJlXHUwOWE0Ij09PVEmJlU+PTR8fCJcdTA5YTZcdTA5YzFcdTA5YWFcdTA5YzFcdTA5YjAiPT09USYmVTw1fHwiXHUwOWFjXHUwOWJmXHUwOTk1XHUwOWJlXHUwOWIyIj09PVE/VSsxMjpVfSxtZXJpZGllbTpmdW5jdGlvbihV''@;'; + put 'put ''LFEsWil7cmV0dXJuIFU8ND8iXHUwOWIwXHUwOWJlXHUwOWE0IjpVPDEwPyJcdTA5YjhcdTA5OTVcdTA5YmVcdTA5YjIiOlU8MTc/Ilx1MDlhNlx1MDljMVx1MDlhYVx1MDljMVx1MDliMCI6VTwyMD8iXHUwOWFjXHUwOWJmXHUwOTk1XHUwOWJlXHUwOWIyIjoiXHUwOWIwXHUwOWJlXHUwOWE0''@;'; + put 'put ''In0sd2Vlazp7ZG93OjAsZG95OjZ9fSl9KEwoMTU0MzkpKX0sNjk2NDU6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7dmFyIEI9ezE6Ilx1MGYyMSIsMjoiXHUwZjIyIiwzOiJcdTBmMjMiLDQ6Ilx1MGYyNCIsNToiXHUwZjI1Iiw2OiJcdTBmMjYiLDc6Ilx1''@;'; + put 'put ''MGYyNyIsODoiXHUwZjI4Iiw5OiJcdTBmMjkiLDA6Ilx1MGYyMCJ9LEU9eyJcdTBmMjEiOiIxIiwiXHUwZjIyIjoiMiIsIlx1MGYyMyI6IjMiLCJcdTBmMjQiOiI0IiwiXHUwZjI1IjoiNSIsIlx1MGYyNiI6IjYiLCJcdTBmMjciOiI3IiwiXHUwZjI4IjoiOCIsIlx1MGYyOSI6IjkiLCJcdTBm''@;'; + put 'put ''MjAiOiIwIn07bWUuZGVmaW5lTG9jYWxlKCJibyIse21vbnRoczoiXHUwZjVmXHUwZmIzXHUwZjBiXHUwZjU2XHUwZjBiXHUwZjUxXHUwZjQ0XHUwZjBiXHUwZjU0XHUwZjdjX1x1MGY1Zlx1MGZiM1x1MGYwYlx1MGY1Nlx1MGYwYlx1MGY0Mlx1MGY0OVx1MGY3Mlx1MGY2Nlx1MGYwYlx1MGY1''@;'; + put 'put ''NF9cdTBmNWZcdTBmYjNcdTBmMGJcdTBmNTZcdTBmMGJcdTBmNDJcdTBmNjZcdTBmNzRcdTBmNThcdTBmMGJcdTBmNTRfXHUwZjVmXHUwZmIzXHUwZjBiXHUwZjU2XHUwZjBiXHUwZjU2XHUwZjVlXHUwZjcyXHUwZjBiXHUwZjU0X1x1MGY1Zlx1MGZiM1x1MGYwYlx1MGY1Nlx1MGYwYlx1MGY2''@;'; + put 'put ''M1x1MGY5NFx1MGYwYlx1MGY1NF9cdTBmNWZcdTBmYjNcdTBmMGJcdTBmNTZcdTBmMGJcdTBmNTFcdTBmYjJcdTBmNzRcdTBmNDJcdTBmMGJcdTBmNTRfXHUwZjVmXHUwZmIzXHUwZjBiXHUwZjU2XHUwZjBiXHUwZjU2XHUwZjUxXHUwZjc0XHUwZjUzXHUwZjBiXHUwZjU0X1x1MGY1Zlx1MGZi''@;'; + put 'put ''M1x1MGYwYlx1MGY1Nlx1MGYwYlx1MGY1Nlx1MGY2Mlx1MGY5Mlx1MGZiMVx1MGY1MVx1MGYwYlx1MGY1NF9cdTBmNWZcdTBmYjNcdTBmMGJcdTBmNTZcdTBmMGJcdTBmNTFcdTBmNDJcdTBmNzRcdTBmMGJcdTBmNTRfXHUwZjVmXHUwZmIzXHUwZjBiXHUwZjU2XHUwZjBiXHUwZjU2XHUwZjQ1''@;'; + put 'put ''XHUwZjc0XHUwZjBiXHUwZjU0X1x1MGY1Zlx1MGZiM1x1MGYwYlx1MGY1Nlx1MGYwYlx1MGY1Nlx1MGY0NVx1MGY3NFx1MGYwYlx1MGY0Mlx1MGY0NVx1MGY3Mlx1MGY0Mlx1MGYwYlx1MGY1NF9cdTBmNWZcdTBmYjNcdTBmMGJcdTBmNTZcdTBmMGJcdTBmNTZcdTBmNDVcdTBmNzRcdTBmMGJc''@;'; + put 'put ''dTBmNDJcdTBmNDlcdTBmNzJcdTBmNjZcdTBmMGJcdTBmNTQiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6Ilx1MGY1Zlx1MGZiM1x1MGYwYjFfXHUwZjVmXHUwZmIzXHUwZjBiMl9cdTBmNWZcdTBmYjNcdTBmMGIzX1x1MGY1Zlx1MGZiM1x1MGYwYjRfXHUwZjVmXHUwZmIzXHUwZjBiNV9cdTBm''@;'; + put 'put ''NWZcdTBmYjNcdTBmMGI2X1x1MGY1Zlx1MGZiM1x1MGYwYjdfXHUwZjVmXHUwZmIzXHUwZjBiOF9cdTBmNWZcdTBmYjNcdTBmMGI5X1x1MGY1Zlx1MGZiM1x1MGYwYjEwX1x1MGY1Zlx1MGZiM1x1MGYwYjExX1x1MGY1Zlx1MGZiM1x1MGYwYjEyIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0UmVn''@;'; + put 'put ''ZXg6L14oXHUwZjVmXHUwZmIzXHUwZjBiXGR7MSwyfSkvLG1vbnRoc1BhcnNlRXhhY3Q6ITAsd2Vla2RheXM6Ilx1MGY0Mlx1MGY1Zlx1MGY2MFx1MGYwYlx1MGY0OVx1MGY3Mlx1MGYwYlx1MGY1OFx1MGYwYl9cdTBmNDJcdTBmNWZcdTBmNjBcdTBmMGJcdTBmNWZcdTBmYjNcdTBmMGJcdTBm''@;'; + put 'put ''NTZcdTBmMGJfXHUwZjQyXHUwZjVmXHUwZjYwXHUwZjBiXHUwZjU4XHUwZjcyXHUwZjQyXHUwZjBiXHUwZjUxXHUwZjU4XHUwZjYyXHUwZjBiX1x1MGY0Mlx1MGY1Zlx1MGY2MFx1MGYwYlx1MGY2M1x1MGZiN1x1MGY0Mlx1MGYwYlx1MGY1NFx1MGYwYl9cdTBmNDJcdTBmNWZcdTBmNjBcdTBm''@;'; + put 'put ''MGJcdTBmNTVcdTBmNzRcdTBmNjJcdTBmMGJcdTBmNTZcdTBmNzRfXHUwZjQyXHUwZjVmXHUwZjYwXHUwZjBiXHUwZjU0XHUwZjBiXHUwZjY2XHUwZjQ0XHUwZjY2XHUwZjBiX1x1MGY0Mlx1MGY1Zlx1MGY2MFx1MGYwYlx1MGY2Nlx1MGZhNFx1MGY3YVx1MGY1M1x1MGYwYlx1MGY1NFx1MGYw''@;'; + put 'put ''YiIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJcdTBmNDlcdTBmNzJcdTBmMGJcdTBmNThcdTBmMGJfXHUwZjVmXHUwZmIzXHUwZjBiXHUwZjU2XHUwZjBiX1x1MGY1OFx1MGY3Mlx1MGY0Mlx1MGYwYlx1MGY1MVx1MGY1OFx1MGY2Mlx1MGYwYl9cdTBmNjNcdTBmYjdcdTBmNDJcdTBmMGJc''@;'; + put 'put ''dTBmNTRcdTBmMGJfXHUwZjU1XHUwZjc0XHUwZjYyXHUwZjBiXHUwZjU2XHUwZjc0X1x1MGY1NFx1MGYwYlx1MGY2Nlx1MGY0NFx1MGY2Nlx1MGYwYl9cdTBmNjZcdTBmYTRcdTBmN2FcdTBmNTNcdTBmMGJcdTBmNTRcdTBmMGIiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46Ilx1MGY0OVx1MGY3''@;'; + put 'put ''Ml9cdTBmNWZcdTBmYjNfXHUwZjU4XHUwZjcyXHUwZjQyX1x1MGY2M1x1MGZiN1x1MGY0Ml9cdTBmNTVcdTBmNzRcdTBmNjJfXHUwZjY2XHUwZjQ0XHUwZjY2X1x1MGY2Nlx1MGZhNFx1MGY3YVx1MGY1MyIuc3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6IkEgaDptbSIsTFRTOiJBIGg6''@;'; + put 'put ''bW06c3MiLEw6IkREL01NL1lZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0gWVlZWSwgQSBoOm1tIixMTExMOiJkZGRkLCBEIE1NTU0gWVlZWSwgQSBoOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltcdTBmNTFcdTBmNzJcdTBmMGJcdTBmNjJcdTBmNzJcdTBmNDRdIExUIixuZXh0''@;'; + put 'put ''RGF5OiJbXHUwZjY2XHUwZjQ0XHUwZjBiXHUwZjQ5XHUwZjcyXHUwZjUzXSBMVCIsbmV4dFdlZWs6IltcdTBmNTZcdTBmNTFcdTBmNzRcdTBmNTNcdTBmMGJcdTBmNTVcdTBmYjJcdTBmNDJcdTBmMGJcdTBmNjJcdTBmOTdcdTBmN2FcdTBmNjZcdTBmMGJcdTBmNThdLCBMVCIsbGFzdERheToi''@;'; + put 'put ''W1x1MGY0MVx1MGYwYlx1MGY2Nlx1MGY0NF0gTFQiLGxhc3RXZWVrOiJbXHUwZjU2XHUwZjUxXHUwZjc0XHUwZjUzXHUwZjBiXHUwZjU1XHUwZmIyXHUwZjQyXHUwZjBiXHUwZjU4XHUwZjUwXHUwZjYwXHUwZjBiXHUwZjU4XSBkZGRkLCBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6''@;'; + put 'put ''e2Z1dHVyZToiJXMgXHUwZjYzXHUwZjBiIixwYXN0OiIlcyBcdTBmNjZcdTBmOTRcdTBmNTNcdTBmMGJcdTBmNjMiLHM6Ilx1MGY2M1x1MGY1OFx1MGYwYlx1MGY2Nlx1MGY0NCIsc3M6IiVkIFx1MGY2Nlx1MGY5MFx1MGY2Mlx1MGYwYlx1MGY0Nlx1MGYwZCIsbToiXHUwZjY2XHUwZjkwXHUw''@;'; + put 'put ''ZjYyXHUwZjBiXHUwZjU4XHUwZjBiXHUwZjQyXHUwZjQ1XHUwZjcyXHUwZjQyIixtbToiJWQgXHUwZjY2XHUwZjkwXHUwZjYyXHUwZjBiXHUwZjU4IixoOiJcdTBmNDZcdTBmNzRcdTBmMGJcdTBmNWFcdTBmN2NcdTBmNTFcdTBmMGJcdTBmNDJcdTBmNDVcdTBmNzJcdTBmNDIiLGhoOiIlZCBc''@;'; + put 'put ''dTBmNDZcdTBmNzRcdTBmMGJcdTBmNWFcdTBmN2NcdTBmNTEiLGQ6Ilx1MGY0OVx1MGY3Mlx1MGY1M1x1MGYwYlx1MGY0Mlx1MGY0NVx1MGY3Mlx1MGY0MiIsZGQ6IiVkIFx1MGY0OVx1MGY3Mlx1MGY1M1x1MGYwYiIsTToiXHUwZjVmXHUwZmIzXHUwZjBiXHUwZjU2XHUwZjBiXHUwZjQyXHUw''@;'; + put 'put ''ZjQ1XHUwZjcyXHUwZjQyIixNTToiJWQgXHUwZjVmXHUwZmIzXHUwZjBiXHUwZjU2Iix5OiJcdTBmNjNcdTBmN2NcdTBmMGJcdTBmNDJcdTBmNDVcdTBmNzJcdTBmNDIiLHl5OiIlZCBcdTBmNjNcdTBmN2MifSxwcmVwYXJzZTpmdW5jdGlvbihVKXtyZXR1cm4gVS5yZXBsYWNlKC9bXHUwZjIx''@;'; + put 'put ''XHUwZjIyXHUwZjIzXHUwZjI0XHUwZjI1XHUwZjI2XHUwZjI3XHUwZjI4XHUwZjI5XHUwZjIwXS9nLGZ1bmN0aW9uKFEpe3JldHVybiBFW1FdfSl9LHBvc3Rmb3JtYXQ6ZnVuY3Rpb24oVSl7cmV0dXJuIFUucmVwbGFjZSgvXGQvZyxmdW5jdGlvbihRKXtyZXR1cm4gQltRXX0pfSxtZXJpZGll''@;'; + put 'put ''bVBhcnNlOi9cdTBmNThcdTBmNWFcdTBmNTNcdTBmMGJcdTBmNThcdTBmN2N8XHUwZjVlXHUwZjdjXHUwZjQyXHUwZjY2XHUwZjBiXHUwZjQwXHUwZjY2fFx1MGY0OVx1MGY3Mlx1MGY1M1x1MGYwYlx1MGY0Mlx1MGY3NFx1MGY0NHxcdTBmNTFcdTBmNDJcdTBmN2NcdTBmNDRcdTBmMGJcdTBm''@;'; + put 'put ''NTFcdTBmNDJ8XHUwZjU4XHUwZjVhXHUwZjUzXHUwZjBiXHUwZjU4XHUwZjdjLyxtZXJpZGllbUhvdXI6ZnVuY3Rpb24oVSxRKXtyZXR1cm4gMTI9PT1VJiYoVT0wKSwiXHUwZjU4XHUwZjVhXHUwZjUzXHUwZjBiXHUwZjU4XHUwZjdjIj09PVEmJlU+PTR8fCJcdTBmNDlcdTBmNzJcdTBmNTNc''@;'; + put 'put ''dTBmMGJcdTBmNDJcdTBmNzRcdTBmNDQiPT09USYmVTw1fHwiXHUwZjUxXHUwZjQyXHUwZjdjXHUwZjQ0XHUwZjBiXHUwZjUxXHUwZjQyIj09PVE/VSsxMjpVfSxtZXJpZGllbTpmdW5jdGlvbihVLFEsWil7cmV0dXJuIFU8ND8iXHUwZjU4XHUwZjVhXHUwZjUzXHUwZjBiXHUwZjU4XHUwZjdj''@;'; + put 'put ''IjpVPDEwPyJcdTBmNWVcdTBmN2NcdTBmNDJcdTBmNjZcdTBmMGJcdTBmNDBcdTBmNjYiOlU8MTc/Ilx1MGY0OVx1MGY3Mlx1MGY1M1x1MGYwYlx1MGY0Mlx1MGY3NFx1MGY0NCI6VTwyMD8iXHUwZjUxXHUwZjQyXHUwZjdjXHUwZjQ0XHUwZjBiXHUwZjUxXHUwZjQyIjoiXHUwZjU4XHUwZjVh''@;'; + put 'put ''XHUwZjUzXHUwZjBiXHUwZjU4XHUwZjdjIn0sd2Vlazp7ZG93OjAsZG95OjZ9fSl9KEwoMTU0MzkpKX0sNDUwMjA6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gQihKLHNlLG9lKXtyZXR1cm4gSisiICIrZnVuY3Rpb24gVShKLHNlKXtyZXR1''@;'; + put 'put ''cm4gMj09PXNlP2Z1bmN0aW9uIFEoSil7dmFyIHNlPXttOiJ2IixiOiJ2IixkOiJ6In07cmV0dXJuIHZvaWQgMD09PXNlW0ouY2hhckF0KDApXT9KOnNlW0ouY2hhckF0KDApXStKLnN1YnN0cmluZygxKX0oSik6Sn0oe21tOiJtdW51dGVubiIsTU06Im1peiIsZGQ6ImRldmV6aCJ9W29lXSxK''@;'; + put 'put ''KX1mdW5jdGlvbiBNZShKKXtyZXR1cm4gSj45P01lKEolMTApOkp9dmFyIFo9Wy9eZ2VuL2ksL15jW1x1MDJiY1wnXWh3ZS9pLC9ebWV1L2ksL15lYnIvaSwvXm1hZS9pLC9eKG1lenxldmUpL2ksL15nb3UvaSwvXmVvcy9pLC9eZ3dlL2ksL15oZXIvaSwvXmR1L2ksL15rZXIvaV0saWU9L14o''@;'; + put 'put ''Z2VudmVyfGNbXHUwMmJjXCddaHdldnJlcnxtZXVyemh8ZWJyZWx8bWFlfG1lemhldmVufGdvdWVyZXxlb3N0fGd3ZW5nb2xvfGhlcmV8ZHV8a2VyenV8Z2VufGNbXHUwMmJjXCddaHdlfG1ldXxlYnJ8bWFlfGV2ZXxnb3V8ZW9zfGd3ZXxoZXJ8ZHV8a2VyKS9pLGVlPVsvXlN1L2ksL15MdS9p''@;'; + put 'put ''LC9eTWUoW15yXXwkKS9pLC9eTWVyL2ksL15ZYS9pLC9eR3cvaSwvXlNhL2ldO21lLmRlZmluZUxvY2FsZSgiYnIiLHttb250aHM6IkdlbnZlcl9DXHUwMmJjaHdldnJlcl9NZXVyemhfRWJyZWxfTWFlX01lemhldmVuX0dvdWVyZV9Fb3N0X0d3ZW5nb2xvX0hlcmVfRHVfS2VyenUiLnNwbGl0''@;'; + put 'put ''KCJfIiksbW9udGhzU2hvcnQ6Ikdlbl9DXHUwMmJjaHdlX01ldV9FYnJfTWFlX0V2ZV9Hb3VfRW9zX0d3ZV9IZXJfRHVfS2VyIi5zcGxpdCgiXyIpLHdlZWtkYXlzOiJTdWxfTHVuX01ldXJ6aF9NZXJjXHUwMmJjaGVyX1lhb3VfR3dlbmVyX1NhZG9ybiIuc3BsaXQoIl8iKSx3ZWVrZGF5c1No''@;'; + put 'put ''b3J0OiJTdWxfTHVuX01ldV9NZXJfWWFvX0d3ZV9TYWQiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46IlN1X0x1X01lX01lcl9ZYV9Hd19TYSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1BhcnNlOmVlLGZ1bGxXZWVrZGF5c1BhcnNlOlsvXnN1bC9pLC9ebHVuL2ksL15tZXVyemgvaSwvXm1lcmNbXHUw''@;'; + put 'put ''MmJjXCddaGVyL2ksL155YW91L2ksL15nd2VuZXIvaSwvXnNhZG9ybi9pXSxzaG9ydFdlZWtkYXlzUGFyc2U6Wy9eU3VsL2ksL15MdW4vaSwvXk1ldS9pLC9eTWVyL2ksL15ZYW8vaSwvXkd3ZS9pLC9eU2FkL2ldLG1pbldlZWtkYXlzUGFyc2U6ZWUsbW9udGhzUmVnZXg6aWUsbW9udGhzU2hv''@;'; + put 'put ''cnRSZWdleDppZSxtb250aHNTdHJpY3RSZWdleDovXihnZW52ZXJ8Y1tcdTAyYmNcJ11od2V2cmVyfG1ldXJ6aHxlYnJlbHxtYWV8bWV6aGV2ZW58Z291ZXJlfGVvc3R8Z3dlbmdvbG98aGVyZXxkdXxrZXJ6dSkvaSxtb250aHNTaG9ydFN0cmljdFJlZ2V4Oi9eKGdlbnxjW1x1MDJiY1wnXWh3''@;'; + put 'put ''ZXxtZXV8ZWJyfG1hZXxldmV8Z291fGVvc3xnd2V8aGVyfGR1fGtlcikvaSxtb250aHNQYXJzZTpaLGxvbmdNb250aHNQYXJzZTpaLHNob3J0TW9udGhzUGFyc2U6Wixsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJERC9NTS9ZWVlZIixMTDoiRCBbYSB2aXpd''@;'; + put 'put ''IE1NTU0gWVlZWSIsTExMOiJEIFthIHZpel0gTU1NTSBZWVlZIEhIOm1tIixMTExMOiJkZGRkLCBEIFthIHZpel0gTU1NTSBZWVlZIEhIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltIaXppdiBkYV0gTFQiLG5leHREYXk6IltXYXJjXHUwMmJjaG9hemggZGFdIExUIixuZXh0V2VlazoiZGRk''@;'; + put 'put ''ZCBbZGFdIExUIixsYXN0RGF5OiJbRGVjXHUwMmJjaCBkYV0gTFQiLGxhc3RXZWVrOiJkZGRkIFtwYXNldCBkYV0gTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6ImEtYmVubiAlcyIscGFzdDoiJXMgXHUwMmJjem8iLHM6InVuIG5lYmV1ZCBzZWdvbmRlbm5vXHhmOSIs''@;'; + put 'put ''c3M6IiVkIGVpbGVubiIsbToidXIgdnVudXRlbm4iLG1tOkIsaDoidW4gZXVyIixoaDoiJWQgZXVyIixkOiJ1biBkZXZlemgiLGRkOkIsTToidXIgbWl6IixNTTpCLHk6InVyIGJsb2F6Iix5eTpmdW5jdGlvbiBFKEope3N3aXRjaChNZShKKSl7Y2FzZSAxOmNhc2UgMzpjYXNlIDQ6Y2FzZSA1''@;'; + put 'put ''OmNhc2UgOTpyZXR1cm4gSisiIGJsb2F6IjtkZWZhdWx0OnJldHVybiBKKyIgdmxvYXoifX19LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn0oYVx4ZjF8dmV0KS8sb3JkaW5hbDpmdW5jdGlvbihKKXtyZXR1cm4gSisoMT09PUo/ImFceGYxIjoidmV0Iil9LHdlZWs6e2RvdzoxLGRv''@;'; + put 'put ''eTo0fSxtZXJpZGllbVBhcnNlOi9hLm0ufGcubS4vLGlzUE06ZnVuY3Rpb24oSil7cmV0dXJuImcubS4iPT09Sn0sbWVyaWRpZW06ZnVuY3Rpb24oSixzZSxvZSl7cmV0dXJuIEo8MTI/ImEubS4iOiJnLm0uIn19KX0oTCgxNTQzOSkpfSw2NDc5MjpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rp''@;'; + put 'put ''b24obWUpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBCKE1lLFUsUSl7dmFyIFo9TWUrIiAiO3N3aXRjaChRKXtjYXNlInNzIjpyZXR1cm4gWisoMT09PU1lPyJzZWt1bmRhIjoyPT09TWV8fDM9PT1NZXx8ND09PU1lPyJzZWt1bmRlIjoic2VrdW5kaSIpO2Nhc2UibSI6cmV0dXJuIFU/ImplZG5h''@;'; + put 'put ''IG1pbnV0YSI6ImplZG5lIG1pbnV0ZSI7Y2FzZSJtbSI6cmV0dXJuIForKDE9PT1NZT8ibWludXRhIjoyPT09TWV8fDM9PT1NZXx8ND09PU1lPyJtaW51dGUiOiJtaW51dGEiKTtjYXNlImgiOnJldHVybiBVPyJqZWRhbiBzYXQiOiJqZWRub2cgc2F0YSI7Y2FzZSJoaCI6cmV0dXJuIForKDE9''@;'; + put 'put ''PT1NZT8ic2F0IjoyPT09TWV8fDM9PT1NZXx8ND09PU1lPyJzYXRhIjoic2F0aSIpO2Nhc2UiZGQiOnJldHVybiBaKygxPT09TWU/ImRhbiI6ImRhbmEiKTtjYXNlIk1NIjpyZXR1cm4gWisoMT09PU1lPyJtamVzZWMiOjI9PT1NZXx8Mz09PU1lfHw0PT09TWU/Im1qZXNlY2EiOiJtamVzZWNp''@;'; + put 'put ''Iik7Y2FzZSJ5eSI6cmV0dXJuIForKDE9PT1NZT8iZ29kaW5hIjoyPT09TWV8fDM9PT1NZXx8ND09PU1lPyJnb2RpbmUiOiJnb2RpbmEiKX19bWUuZGVmaW5lTG9jYWxlKCJicyIse21vbnRoczoiamFudWFyX2ZlYnJ1YXJfbWFydF9hcHJpbF9tYWpfanVuaV9qdWxpX2F1Z3VzdF9zZXB0ZW1i''@;'; + put 'put ''YXJfb2t0b2Jhcl9ub3ZlbWJhcl9kZWNlbWJhciIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiamFuLl9mZWIuX21hci5fYXByLl9tYWouX2p1bi5fanVsLl9hdWcuX3NlcC5fb2t0Ll9ub3YuX2RlYy4iLnNwbGl0KCJfIiksbW9udGhzUGFyc2VFeGFjdDohMCx3ZWVrZGF5czoibmVkamVsamFf''@;'; + put 'put ''cG9uZWRqZWxqYWtfdXRvcmFrX3NyaWplZGFfXHUwMTBkZXR2cnRha19wZXRha19zdWJvdGEiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoibmVkLl9wb24uX3V0by5fc3JpLl9cdTAxMGRldC5fcGV0Ll9zdWIuIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJuZV9wb191dF9zcl9cdTAxMGRl''@;'; + put 'put ''X3BlX3N1Ii5zcGxpdCgiXyIpLHdlZWtkYXlzUGFyc2VFeGFjdDohMCxsb25nRGF0ZUZvcm1hdDp7TFQ6Ikg6bW0iLExUUzoiSDptbTpzcyIsTDoiREQuTU0uWVlZWSIsTEw6IkQuIE1NTU0gWVlZWSIsTExMOiJELiBNTU1NIFlZWVkgSDptbSIsTExMTDoiZGRkZCwgRC4gTU1NTSBZWVlZIEg6''@;'; + put 'put ''bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW2RhbmFzIHVdIExUIixuZXh0RGF5OiJbc3V0cmEgdV0gTFQiLG5leHRXZWVrOmZ1bmN0aW9uKCl7c3dpdGNoKHRoaXMuZGF5KCkpe2Nhc2UgMDpyZXR1cm4iW3VdIFtuZWRqZWxqdV0gW3VdIExUIjtjYXNlIDM6cmV0dXJuIlt1XSBbc3JpamVkdV0g''@;'; + put 'put ''W3VdIExUIjtjYXNlIDY6cmV0dXJuIlt1XSBbc3Vib3R1XSBbdV0gTFQiO2Nhc2UgMTpjYXNlIDI6Y2FzZSA0OmNhc2UgNTpyZXR1cm4iW3VdIGRkZGQgW3VdIExUIn19LGxhc3REYXk6IltqdVx1MDEwZGVyIHVdIExUIixsYXN0V2VlazpmdW5jdGlvbigpe3N3aXRjaCh0aGlzLmRheSgpKXtj''@;'; + put 'put ''YXNlIDA6Y2FzZSAzOnJldHVybiJbcHJvXHUwMTYxbHVdIGRkZGQgW3VdIExUIjtjYXNlIDY6cmV0dXJuIltwcm9cdTAxNjFsZV0gW3N1Ym90ZV0gW3VdIExUIjtjYXNlIDE6Y2FzZSAyOmNhc2UgNDpjYXNlIDU6cmV0dXJuIltwcm9cdTAxNjFsaV0gZGRkZCBbdV0gTFQifX0sc2FtZUVsc2U6''@;'; + put 'put ''IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiemEgJXMiLHBhc3Q6InByaWplICVzIixzOiJwYXIgc2VrdW5kaSIsc3M6QixtOkIsbW06QixoOkIsaGg6QixkOiJkYW4iLGRkOkIsTToibWplc2VjIixNTTpCLHk6ImdvZGludSIseXk6Qn0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwy''@;'; + put 'put ''fVwuLyxvcmRpbmFsOiIlZC4iLHdlZWs6e2RvdzoxLGRveTo3fX0pfShMKDE1NDM5KSl9LDQ3OTgwOmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlvbihtZSl7InVzZSBzdHJpY3QiO21lLmRlZmluZUxvY2FsZSgiY2EiLHttb250aHM6e3N0YW5kYWxvbmU6ImdlbmVyX2ZlYnJlcl9tYXJceGU3''@;'; + put 'put ''X2FicmlsX21haWdfanVueV9qdWxpb2xfYWdvc3Rfc2V0ZW1icmVfb2N0dWJyZV9ub3ZlbWJyZV9kZXNlbWJyZSIuc3BsaXQoIl8iKSxmb3JtYXQ6ImRlIGdlbmVyX2RlIGZlYnJlcl9kZSBtYXJceGU3X2QnYWJyaWxfZGUgbWFpZ19kZSBqdW55X2RlIGp1bGlvbF9kJ2Fnb3N0X2RlIHNldGVt''@;'; + put 'put ''YnJlX2Qnb2N0dWJyZV9kZSBub3ZlbWJyZV9kZSBkZXNlbWJyZSIuc3BsaXQoIl8iKSxpc0Zvcm1hdDovRFtvRF0/KFxzKStNTU1NL30sbW9udGhzU2hvcnQ6Imdlbi5fZmVici5fbWFyXHhlN19hYnIuX21haWdfanVueV9qdWwuX2FnLl9zZXQuX29jdC5fbm92Ll9kZXMuIi5zcGxpdCgiXyIp''@;'; + put 'put ''LG1vbnRoc1BhcnNlRXhhY3Q6ITAsd2Vla2RheXM6ImRpdW1lbmdlX2RpbGx1bnNfZGltYXJ0c19kaW1lY3Jlc19kaWpvdXNfZGl2ZW5kcmVzX2Rpc3NhYnRlIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6ImRnLl9kbC5fZHQuX2RjLl9kai5fZHYuX2RzLiIuc3BsaXQoIl8iKSx3ZWVrZGF5''@;'; + put 'put ''c01pbjoiZGdfZGxfZHRfZGNfZGpfZHZfZHMiLnNwbGl0KCJfIiksd2Vla2RheXNQYXJzZUV4YWN0OiEwLGxvbmdEYXRlRm9ybWF0OntMVDoiSDptbSIsTFRTOiJIOm1tOnNzIixMOiJERC9NTS9ZWVlZIixMTDoiRCBNTU1NIFtkZV0gWVlZWSIsbGw6IkQgTU1NIFlZWVkiLExMTDoiRCBNTU1N''@;'; + put 'put ''IFtkZV0gWVlZWSBbYSBsZXNdIEg6bW0iLGxsbDoiRCBNTU0gWVlZWSwgSDptbSIsTExMTDoiZGRkZCBEIE1NTU0gW2RlXSBZWVlZIFthIGxlc10gSDptbSIsbGxsbDoiZGRkIEQgTU1NIFlZWVksIEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheTpmdW5jdGlvbigpe3JldHVybiJbYXZ1aSBhICIr''@;'; + put 'put ''KDEhPT10aGlzLmhvdXJzKCk/ImxlcyI6ImxhIikrIl0gTFQifSxuZXh0RGF5OmZ1bmN0aW9uKCl7cmV0dXJuIltkZW1ceGUwIGEgIisoMSE9PXRoaXMuaG91cnMoKT8ibGVzIjoibGEiKSsiXSBMVCJ9LG5leHRXZWVrOmZ1bmN0aW9uKCl7cmV0dXJuImRkZGQgW2EgIisoMSE9PXRoaXMuaG91''@;'; + put 'put ''cnMoKT8ibGVzIjoibGEiKSsiXSBMVCJ9LGxhc3REYXk6ZnVuY3Rpb24oKXtyZXR1cm4iW2FoaXIgYSAiKygxIT09dGhpcy5ob3VycygpPyJsZXMiOiJsYSIpKyJdIExUIn0sbGFzdFdlZWs6ZnVuY3Rpb24oKXtyZXR1cm4iW2VsXSBkZGRkIFtwYXNzYXQgYSAiKygxIT09dGhpcy5ob3Vycygp''@;'; + put 'put ''PyJsZXMiOiJsYSIpKyJdIExUIn0sc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiZCdhcXVceGVkICVzIixwYXN0OiJmYSAlcyIsczoidW5zIHNlZ29ucyIsc3M6IiVkIHNlZ29ucyIsbToidW4gbWludXQiLG1tOiIlZCBtaW51dHMiLGg6InVuYSBob3JhIixoaDoiJWQgaG9y''@;'; + put 'put ''ZXMiLGQ6InVuIGRpYSIsZGQ6IiVkIGRpZXMiLE06InVuIG1lcyIsTU06IiVkIG1lc29zIix5OiJ1biBhbnkiLHl5OiIlZCBhbnlzIn0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfShyfG58dHxceGU4fGEpLyxvcmRpbmFsOmZ1bmN0aW9uKEUsTWUpe3ZhciBVPTE9PT1FPyJyIjoy''@;'; + put 'put ''PT09RT8ibiI6Mz09PUU/InIiOjQ9PT1FPyJ0IjoiXHhlOCI7cmV0dXJuKCJ3Ij09PU1lfHwiVyI9PT1NZSkmJihVPSJhIiksRStVfSx3ZWVrOntkb3c6MSxkb3k6NH19KX0oTCgxNTQzOSkpfSw0NzMyMjpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0Ijt2YXIg''@;'; + put 'put ''Qj17Zm9ybWF0OiJsZWRlbl9ceGZhbm9yX2JcdTAxNTllemVuX2R1YmVuX2t2XHUwMTFidGVuX1x1MDEwZGVydmVuX1x1MDEwZGVydmVuZWNfc3JwZW5felx4ZTFcdTAxNTlceGVkX1x1MDE1OVx4ZWRqZW5fbGlzdG9wYWRfcHJvc2luZWMiLnNwbGl0KCJfIiksc3RhbmRhbG9uZToibGVkbmFf''@;'; + put 'put ''XHhmYW5vcmFfYlx1MDE1OWV6bmFfZHVibmFfa3ZcdTAxMWJ0bmFfXHUwMTBkZXJ2bmFfXHUwMTBkZXJ2ZW5jZV9zcnBuYV96XHhlMVx1MDE1OVx4ZWRfXHUwMTU5XHhlZGpuYV9saXN0b3BhZHVfcHJvc2luY2UiLnNwbGl0KCJfIil9LEU9ImxlZF9ceGZhbm9fYlx1MDE1OWVfZHViX2t2XHUw''@;'; + put 'put ''MTFiX1x1MDEwZHZuX1x1MDEwZHZjX3NycF96XHhlMVx1MDE1OV9cdTAxNTlceGVkal9saXNfcHJvIi5zcGxpdCgiXyIpLE1lPVsvXmxlZC9pLC9eXHhmYW5vL2ksL15iXHUwMTU5ZS9pLC9eZHViL2ksL15rdlx1MDExYi9pLC9eKFx1MDEwZHZufFx1MDEwZGVydmVuJHxcdTAxMGRlcnZuYSkv''@;'; + put 'put ''aSwvXihcdTAxMGR2Y3xcdTAxMGRlcnZlbmVjfFx1MDEwZGVydmVuY2UpL2ksL15zcnAvaSwvXnpceGUxXHUwMTU5L2ksL15cdTAxNTlceGVkai9pLC9ebGlzL2ksL15wcm8vaV0sVT0vXihsZWRlbnxceGZhbm9yfGJcdTAxNTllemVufGR1YmVufGt2XHUwMTFidGVufFx1MDEwZGVydmVuZWN8''@;'; + put 'put ''XHUwMTBkZXJ2ZW5jZXxcdTAxMGRlcnZlbnxcdTAxMGRlcnZuYXxzcnBlbnx6XHhlMVx1MDE1OVx4ZWR8XHUwMTU5XHhlZGplbnxsaXN0b3BhZHxwcm9zaW5lY3xsZWR8XHhmYW5vfGJcdTAxNTllfGR1Ynxrdlx1MDExYnxcdTAxMGR2bnxcdTAxMGR2Y3xzcnB8elx4ZTFcdTAxNTl8XHUwMTU5''@;'; + put 'put ''XHhlZGp8bGlzfHBybykvaTtmdW5jdGlvbiBRKGFlKXtyZXR1cm4gYWU+MSYmYWU8NSYmMSE9fn4oYWUvMTApfWZ1bmN0aW9uIFooYWUsWSxXLE4pe3ZhciBlZT1hZSsiICI7c3dpdGNoKFcpe2Nhc2UicyI6cmV0dXJuIFl8fE4/InBceGUxciBzZWt1bmQiOiJwXHhlMXIgc2VrdW5kYW1pIjtj''@;'; + put 'put ''YXNlInNzIjpyZXR1cm4gWXx8Tj9lZSsoUShhZSk/InNla3VuZHkiOiJzZWt1bmQiKTplZSsic2VrdW5kYW1pIjtjYXNlIm0iOnJldHVybiBZPyJtaW51dGEiOk4/Im1pbnV0dSI6Im1pbnV0b3UiO2Nhc2UibW0iOnJldHVybiBZfHxOP2VlKyhRKGFlKT8ibWludXR5IjoibWludXQiKTplZSsi''@;'; + put 'put ''bWludXRhbWkiO2Nhc2UiaCI6cmV0dXJuIFk/ImhvZGluYSI6Tj8iaG9kaW51IjoiaG9kaW5vdSI7Y2FzZSJoaCI6cmV0dXJuIFl8fE4/ZWUrKFEoYWUpPyJob2RpbnkiOiJob2RpbiIpOmVlKyJob2RpbmFtaSI7Y2FzZSJkIjpyZXR1cm4gWXx8Tj8iZGVuIjoiZG5lbSI7Y2FzZSJkZCI6cmV0''@;'; + put 'put ''dXJuIFl8fE4/ZWUrKFEoYWUpPyJkbnkiOiJkblx4ZWQiKTplZSsiZG55IjtjYXNlIk0iOnJldHVybiBZfHxOPyJtXHUwMTFic1x4ZWRjIjoibVx1MDExYnNceGVkY2VtIjtjYXNlIk1NIjpyZXR1cm4gWXx8Tj9lZSsoUShhZSk/Im1cdTAxMWJzXHhlZGNlIjoibVx1MDExYnNceGVkY1x1MDE2''@;'; + put 'put ''ZiIpOmVlKyJtXHUwMTFic1x4ZWRjaSI7Y2FzZSJ5IjpyZXR1cm4gWXx8Tj8icm9rIjoicm9rZW0iO2Nhc2UieXkiOnJldHVybiBZfHxOP2VlKyhRKGFlKT8icm9reSI6ImxldCIpOmVlKyJsZXR5In19bWUuZGVmaW5lTG9jYWxlKCJjcyIse21vbnRoczpCLG1vbnRoc1Nob3J0OkUsbW9udGhz''@;'; + put 'put ''UmVnZXg6VSxtb250aHNTaG9ydFJlZ2V4OlUsbW9udGhzU3RyaWN0UmVnZXg6L14obGVkZW58bGVkbmF8XHhmYW5vcmF8XHhmYW5vcnxiXHUwMTU5ZXplbnxiXHUwMTU5ZXpuYXxkdWJlbnxkdWJuYXxrdlx1MDExYnRlbnxrdlx1MDExYnRuYXxcdTAxMGRlcnZlbmVjfFx1MDEwZGVydmVuY2V8''@;'; + put 'put ''XHUwMTBkZXJ2ZW58XHUwMTBkZXJ2bmF8c3JwZW58c3JwbmF8elx4ZTFcdTAxNTlceGVkfFx1MDE1OVx4ZWRqZW58XHUwMTU5XHhlZGpuYXxsaXN0b3BhZHV8bGlzdG9wYWR8cHJvc2luZWN8cHJvc2luY2UpL2ksbW9udGhzU2hvcnRTdHJpY3RSZWdleDovXihsZWR8XHhmYW5vfGJcdTAxNTll''@;'; + put 'put ''fGR1Ynxrdlx1MDExYnxcdTAxMGR2bnxcdTAxMGR2Y3xzcnB8elx4ZTFcdTAxNTl8XHUwMTU5XHhlZGp8bGlzfHBybykvaSxtb250aHNQYXJzZTpNZSxsb25nTW9udGhzUGFyc2U6TWUsc2hvcnRNb250aHNQYXJzZTpNZSx3ZWVrZGF5czoibmVkXHUwMTFibGVfcG9uZFx1MDExYmxceGVkX1x4''@;'; + put 'put ''ZmF0ZXJceGZkX3N0XHUwMTU5ZWRhX1x1MDEwZHR2cnRla19wXHhlMXRla19zb2JvdGEiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoibmVfcG9fXHhmYXRfc3RfXHUwMTBkdF9wXHhlMV9zbyIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoibmVfcG9fXHhmYXRfc3RfXHUwMTBkdF9wXHhlMV9z''@;'; + put 'put ''byIuc3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6Ikg6bW0iLExUUzoiSDptbTpzcyIsTDoiREQuTU0uWVlZWSIsTEw6IkQuIE1NTU0gWVlZWSIsTExMOiJELiBNTU1NIFlZWVkgSDptbSIsTExMTDoiZGRkZCBELiBNTU1NIFlZWVkgSDptbSIsbDoiRC4gTS4gWVlZWSJ9LGNhbGVuZGFy''@;'; + put 'put ''OntzYW1lRGF5OiJbZG5lcyB2XSBMVCIsbmV4dERheToiW3pceGVkdHJhIHZdIExUIixuZXh0V2VlazpmdW5jdGlvbigpe3N3aXRjaCh0aGlzLmRheSgpKXtjYXNlIDA6cmV0dXJuIlt2IG5lZFx1MDExYmxpIHZdIExUIjtjYXNlIDE6Y2FzZSAyOnJldHVybiJbdl0gZGRkZCBbdl0gTFQiO2Nh''@;'; + put 'put ''c2UgMzpyZXR1cm4iW3ZlIHN0XHUwMTU5ZWR1IHZdIExUIjtjYXNlIDQ6cmV0dXJuIlt2ZSBcdTAxMGR0dnJ0ZWsgdl0gTFQiO2Nhc2UgNTpyZXR1cm4iW3YgcFx4ZTF0ZWsgdl0gTFQiO2Nhc2UgNjpyZXR1cm4iW3Ygc29ib3R1IHZdIExUIn19LGxhc3REYXk6Ilt2XHUwMTBkZXJhIHZdIExU''@;'; + put 'put ''IixsYXN0V2VlazpmdW5jdGlvbigpe3N3aXRjaCh0aGlzLmRheSgpKXtjYXNlIDA6cmV0dXJuIlttaW51bG91IG5lZFx1MDExYmxpIHZdIExUIjtjYXNlIDE6Y2FzZSAyOnJldHVybiJbbWludWxceGU5XSBkZGRkIFt2XSBMVCI7Y2FzZSAzOnJldHVybiJbbWludWxvdSBzdFx1MDE1OWVkdSB2''@;'; + put 'put ''XSBMVCI7Y2FzZSA0OmNhc2UgNTpyZXR1cm4iW21pbnVsXHhmZF0gZGRkZCBbdl0gTFQiO2Nhc2UgNjpyZXR1cm4iW21pbnVsb3Ugc29ib3R1IHZdIExUIn19LHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6InphICVzIixwYXN0OiJwXHUwMTU5ZWQgJXMiLHM6WixzczpaLG06''@;'; + put 'put ''WixtbTpaLGg6WixoaDpaLGQ6WixkZDpaLE06WixNTTpaLHk6Wix5eTpafSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9XC4vLG9yZGluYWw6IiVkLiIsd2Vlazp7ZG93OjEsZG95OjR9fSl9KEwoMTU0MzkpKX0sOTAzNjU6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsi''@;'; + put 'put ''dXNlIHN0cmljdCI7bWUuZGVmaW5lTG9jYWxlKCJjdiIse21vbnRoczoiXHUwNDNhXHUwNGQxXHUwNDQwXHUwNDNiXHUwNDMwXHUwNDQ3X1x1MDQzZFx1MDQzMFx1MDQ0MFx1MDRkMVx1MDQ0MV9cdTA0M2ZcdTA0NDNcdTA0NDhfXHUwNDMwXHUwNDNhXHUwNDMwX1x1MDQzY1x1MDQzMFx1MDQz''@;'; + put 'put ''OV9cdTA0YWJcdTA0ZDdcdTA0NDBcdTA0NDJcdTA0M2NcdTA0MzVfXHUwNDQzXHUwNDQyXHUwNGQxX1x1MDRhYlx1MDQ0M1x1MDQ0MFx1MDQzYlx1MDQzMF9cdTA0MzBcdTA0MzJcdTA0ZDFcdTA0M2RfXHUwNDRlXHUwNDNmXHUwNDMwX1x1MDQ0N1x1MDRmM1x1MDQzYV9cdTA0NDBcdTA0MzBc''@;'; + put 'put ''dTA0NDhcdTA0NDJcdTA0MzBcdTA0MzIiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6Ilx1MDQzYVx1MDRkMVx1MDQ0MF9cdTA0M2RcdTA0MzBcdTA0NDBfXHUwNDNmXHUwNDQzXHUwNDQ4X1x1MDQzMFx1MDQzYVx1MDQzMF9cdTA0M2NcdTA0MzBcdTA0MzlfXHUwNGFiXHUwNGQ3XHUwNDQwX1x1''@;'; + put 'put ''MDQ0M1x1MDQ0Mlx1MDRkMV9cdTA0YWJcdTA0NDNcdTA0NDBfXHUwNDMwXHUwNDMyXHUwNDNkX1x1MDQ0ZVx1MDQzZlx1MDQzMF9cdTA0NDdcdTA0ZjNcdTA0M2FfXHUwNDQwXHUwNDMwXHUwNDQ4Ii5zcGxpdCgiXyIpLHdlZWtkYXlzOiJcdTA0MzJcdTA0NGJcdTA0NDBcdTA0NDFcdTA0MzBc''@;'; + put 'put ''dTA0NDBcdTA0M2RcdTA0MzhcdTA0M2FcdTA0NDNcdTA0M2RfXHUwNDQyXHUwNDQzXHUwNDNkXHUwNDQyXHUwNDM4XHUwNDNhXHUwNDQzXHUwNDNkX1x1MDQ0Ylx1MDQ0Mlx1MDQzYlx1MDQzMFx1MDQ0MFx1MDQzOFx1MDQzYVx1MDQ0M1x1MDQzZF9cdTA0NGVcdTA0M2RcdTA0M2FcdTA0NDNc''@;'; + put 'put ''dTA0M2RfXHUwNDNhXHUwNGQ3XHUwNGFiXHUwNDNkXHUwNDM1XHUwNDQwXHUwNDNkXHUwNDM4XHUwNDNhXHUwNDQzXHUwNDNkX1x1MDQ0ZFx1MDQ0MFx1MDQzZFx1MDQzNVx1MDQzYVx1MDQ0M1x1MDQzZF9cdTA0NDhcdTA0ZDFcdTA0M2NcdTA0MzBcdTA0NDJcdTA0M2FcdTA0NDNcdTA0M2Qi''@;'; + put 'put ''LnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiXHUwNDMyXHUwNDRiXHUwNDQwX1x1MDQ0Mlx1MDQ0M1x1MDQzZF9cdTA0NGJcdTA0NDJcdTA0M2JfXHUwNDRlXHUwNDNkX1x1MDQzYVx1MDRkN1x1MDRhYl9cdTA0NGRcdTA0NDBcdTA0M2RfXHUwNDQ4XHUwNGQxXHUwNDNjIi5zcGxpdCgiXyIp''@;'; + put 'put ''LHdlZWtkYXlzTWluOiJcdTA0MzJcdTA0NDBfXHUwNDQyXHUwNDNkX1x1MDQ0Ylx1MDQ0Ml9cdTA0NGVcdTA0M2RfXHUwNDNhXHUwNGFiX1x1MDQ0ZFx1MDQ0MF9cdTA0NDhcdTA0M2MiLnNwbGl0KCJfIiksbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoiREQt''@;'; + put 'put ''TU0tWVlZWSIsTEw6IllZWVkgW1x1MDRhYlx1MDQ0M1x1MDQzYlx1MDQ0NVx1MDQzOF0gTU1NTSBbXHUwNDQzXHUwNDM5XHUwNGQxXHUwNDQ1XHUwNGQ3XHUwNDNkXSBEWy1cdTA0M2NcdTA0ZDdcdTA0NDhcdTA0ZDddIixMTEw6IllZWVkgW1x1MDRhYlx1MDQ0M1x1MDQzYlx1MDQ0NVx1MDQz''@;'; + put 'put ''OF0gTU1NTSBbXHUwNDQzXHUwNDM5XHUwNGQxXHUwNDQ1XHUwNGQ3XHUwNDNkXSBEWy1cdTA0M2NcdTA0ZDdcdTA0NDhcdTA0ZDddLCBISDptbSIsTExMTDoiZGRkZCwgWVlZWSBbXHUwNGFiXHUwNDQzXHUwNDNiXHUwNDQ1XHUwNDM4XSBNTU1NIFtcdTA0NDNcdTA0MzlcdTA0ZDFcdTA0NDVc''@;'; + put 'put ''dTA0ZDdcdTA0M2RdIERbLVx1MDQzY1x1MDRkN1x1MDQ0OFx1MDRkN10sIEhIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltcdTA0MWZcdTA0MzBcdTA0NGZcdTA0M2RdIExUIFtcdTA0NDFcdTA0MzVcdTA0NDVcdTA0MzVcdTA0NDJcdTA0NDBcdTA0MzVdIixuZXh0RGF5OiJbXHUwNDJiXHUw''@;'; + put 'put ''NDQwXHUwNDMwXHUwNDNkXSBMVCBbXHUwNDQxXHUwNDM1XHUwNDQ1XHUwNDM1XHUwNDQyXHUwNDQwXHUwNDM1XSIsbGFzdERheToiW1x1MDRkNlx1MDQzZFx1MDQzNVx1MDQ0MF0gTFQgW1x1MDQ0MVx1MDQzNVx1MDQ0NVx1MDQzNVx1MDQ0Mlx1MDQ0MFx1MDQzNV0iLG5leHRXZWVrOiJbXHUw''@;'; + put 'put ''NGFhXHUwNDM4XHUwNDQyXHUwNDM1XHUwNDQxXSBkZGRkIExUIFtcdTA0NDFcdTA0MzVcdTA0NDVcdTA0MzVcdTA0NDJcdTA0NDBcdTA0MzVdIixsYXN0V2VlazoiW1x1MDQxOFx1MDQ0MFx1MDQ0Mlx1MDQzZFx1MDRkN10gZGRkZCBMVCBbXHUwNDQxXHUwNDM1XHUwNDQ1XHUwNDM1XHUwNDQy''@;'; + put 'put ''XHUwNDQwXHUwNDM1XSIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTpmdW5jdGlvbihFKXtyZXR1cm4gRSsoL1x1MDQ0MVx1MDQzNVx1MDQ0NVx1MDQzNVx1MDQ0MiQvaS5leGVjKEUpPyJcdTA0NDBcdTA0MzVcdTA0M2QiOi9cdTA0YWJcdTA0NDNcdTA0M2IkL2kuZXhlYyhF''@;'; + put 'put ''KT8iXHUwNDQyXHUwNDMwXHUwNDNkIjoiXHUwNDQwXHUwNDMwXHUwNDNkIil9LHBhc3Q6IiVzIFx1MDQzYVx1MDQzMFx1MDQ0Zlx1MDQzYlx1MDQzYlx1MDQzMCIsczoiXHUwNDNmXHUwNGQ3XHUwNDQwLVx1MDQzOFx1MDQzYSBcdTA0YWJcdTA0MzVcdTA0M2FcdTA0M2FcdTA0NDNcdTA0M2Rc''@;'; + put 'put ''dTA0NDIiLHNzOiIlZCBcdTA0YWJcdTA0MzVcdTA0M2FcdTA0M2FcdTA0NDNcdTA0M2RcdTA0NDIiLG06Ilx1MDQzZlx1MDRkN1x1MDQ0MCBcdTA0M2NcdTA0MzhcdTA0M2RcdTA0NDNcdTA0NDIiLG1tOiIlZCBcdTA0M2NcdTA0MzhcdTA0M2RcdTA0NDNcdTA0NDIiLGg6Ilx1MDQzZlx1MDRk''@;'; + put 'put ''N1x1MDQ0MCBcdTA0NDFcdTA0MzVcdTA0NDVcdTA0MzVcdTA0NDIiLGhoOiIlZCBcdTA0NDFcdTA0MzVcdTA0NDVcdTA0MzVcdTA0NDIiLGQ6Ilx1MDQzZlx1MDRkN1x1MDQ0MCBcdTA0M2FcdTA0NDNcdTA0M2QiLGRkOiIlZCBcdTA0M2FcdTA0NDNcdTA0M2QiLE06Ilx1MDQzZlx1MDRkN1x1''@;'; + put 'put ''MDQ0MCBcdTA0NDNcdTA0MzlcdTA0ZDFcdTA0NDUiLE1NOiIlZCBcdTA0NDNcdTA0MzlcdTA0ZDFcdTA0NDUiLHk6Ilx1MDQzZlx1MDRkN1x1MDQ0MCBcdTA0YWJcdTA0NDNcdTA0M2IiLHl5OiIlZCBcdTA0YWJcdTA0NDNcdTA0M2IifSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9''@;'; + put 'put ''LVx1MDQzY1x1MDRkN1x1MDQ0OC8sb3JkaW5hbDoiJWQtXHUwNDNjXHUwNGQ3XHUwNDQ4Iix3ZWVrOntkb3c6MSxkb3k6N319KX0oTCgxNTQzOSkpfSwzMjA5MjpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0IjttZS5kZWZpbmVMb2NhbGUoImN5Iix7bW9udGhz''@;'; + put 'put ''OiJJb25hd3JfQ2h3ZWZyb3JfTWF3cnRoX0VicmlsbF9NYWlfTWVoZWZpbl9Hb3JmZmVubmFmX0F3c3RfTWVkaV9IeWRyZWZfVGFjaHdlZGRfUmhhZ2Z5ciIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiSW9uX0Nod2VfTWF3X0Vicl9NYWlfTWVoX0dvcl9Bd3NfTWVkX0h5ZF9UYWNoX1JoYWci''@;'; + put 'put ''LnNwbGl0KCJfIiksd2Vla2RheXM6IkR5ZGQgU3VsX0R5ZGQgTGx1bl9EeWRkIE1hd3J0aF9EeWRkIE1lcmNoZXJfRHlkZCBJYXVfRHlkZCBHd2VuZXJfRHlkZCBTYWR3cm4iLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiU3VsX0xsdW5fTWF3X01lcl9JYXVfR3dlX1NhZCIuc3BsaXQoIl8i''@;'; + put 'put ''KSx3ZWVrZGF5c01pbjoiU3VfTGxfTWFfTWVfSWFfR3dfU2EiLnNwbGl0KCJfIiksd2Vla2RheXNQYXJzZUV4YWN0OiEwLGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IkREL01NL1lZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0gWVlZWSBISDpt''@;'; + put 'put ''bSIsTExMTDoiZGRkZCwgRCBNTU1NIFlZWVkgSEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW0hlZGRpdyBhbV0gTFQiLG5leHREYXk6IltZZm9yeSBhbV0gTFQiLG5leHRXZWVrOiJkZGRkIFthbV0gTFQiLGxhc3REYXk6IltEZG9lIGFtXSBMVCIsbGFzdFdlZWs6ImRkZGQgW2Rpd2V0aGFm''@;'; + put 'put ''IGFtXSBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToibWV3biAlcyIscGFzdDoiJXMgeW4gXHhmNGwiLHM6InljaHlkaWcgZWlsaWFkYXUiLHNzOiIlZCBlaWxpYWQiLG06Im11bnVkIixtbToiJWQgbXVudWQiLGg6ImF3ciIsaGg6IiVkIGF3ciIsZDoiZGl3cm5vZCIs''@;'; + put 'put ''ZGQ6IiVkIGRpd3Jub2QiLE06Im1pcyIsTU06IiVkIG1pcyIseToiYmx3eWRkeW4iLHl5OiIlZCBmbHluZWRkIn0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfShmZWR8YWlufGFmfGlsfHlkZHxlZHxlZykvLG9yZGluYWw6ZnVuY3Rpb24oRSl7dmFyIFU9IiI7cmV0dXJuIEU+MjA/''@;'; + put 'put ''VT00MD09PUV8fDUwPT09RXx8NjA9PT1FfHw4MD09PUV8fDEwMD09PUU/ImZlZCI6ImFpbiI6RT4wJiYoVT1bIiIsImFmIiwiaWwiLCJ5ZGQiLCJ5ZGQiLCJlZCIsImVkIiwiZWQiLCJmZWQiLCJmZWQiLCJmZWQiLCJlZyIsImZlZCIsImVnIiwiZWciLCJmZWQiLCJlZyIsImVnIiwiZmVkIiwi''@;'; + put 'put ''ZWciLCJmZWQiXVtFXSksRStVfSx3ZWVrOntkb3c6MSxkb3k6NH19KX0oTCgxNTQzOSkpfSw3NzM4NzpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0IjttZS5kZWZpbmVMb2NhbGUoImRhIix7bW9udGhzOiJqYW51YXJfZmVicnVhcl9tYXJ0c19hcHJpbF9tYWpf''@;'; + put 'put ''anVuaV9qdWxpX2F1Z3VzdF9zZXB0ZW1iZXJfb2t0b2Jlcl9ub3ZlbWJlcl9kZWNlbWJlciIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiamFuX2ZlYl9tYXJfYXByX21hal9qdW5fanVsX2F1Z19zZXBfb2t0X25vdl9kZWMiLnNwbGl0KCJfIiksd2Vla2RheXM6InNceGY4bmRhZ19tYW5kYWdf''@;'; + put 'put ''dGlyc2RhZ19vbnNkYWdfdG9yc2RhZ19mcmVkYWdfbFx4ZjhyZGFnIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6InNceGY4bl9tYW5fdGlyX29uc190b3JfZnJlX2xceGY4ciIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoic1x4ZjhfbWFfdGlfb25fdG9fZnJfbFx4ZjgiLnNwbGl0KCJfIiks''@;'; + put 'put ''bG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoiREQuTU0uWVlZWSIsTEw6IkQuIE1NTU0gWVlZWSIsTExMOiJELiBNTU1NIFlZWVkgSEg6bW0iLExMTEw6ImRkZGQgW2QuXSBELiBNTU1NIFlZWVkgW2tsLl0gSEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW2kg''@;'; + put 'put ''ZGFnIGtsLl0gTFQiLG5leHREYXk6IltpIG1vcmdlbiBrbC5dIExUIixuZXh0V2VlazoicFx4ZTUgZGRkZCBba2wuXSBMVCIsbGFzdERheToiW2kgZ1x4ZTVyIGtsLl0gTFQiLGxhc3RXZWVrOiJbaV0gZGRkZFtzIGtsLl0gTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6''@;'; + put 'put ''Im9tICVzIixwYXN0OiIlcyBzaWRlbiIsczoiZlx4ZTUgc2VrdW5kZXIiLHNzOiIlZCBzZWt1bmRlciIsbToiZXQgbWludXQiLG1tOiIlZCBtaW51dHRlciIsaDoiZW4gdGltZSIsaGg6IiVkIHRpbWVyIixkOiJlbiBkYWciLGRkOiIlZCBkYWdlIixNOiJlbiBtXHhlNW5lZCIsTU06IiVkIG1c''@;'; + put 'put ''eGU1bmVkZXIiLHk6ImV0IFx4ZTVyIix5eToiJWQgXHhlNXIifSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9XC4vLG9yZGluYWw6IiVkLiIsd2Vlazp7ZG93OjEsZG95OjR9fSl9KEwoMTU0MzkpKX0sMjk0NTk6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0''@;'; + put 'put ''cmljdCI7ZnVuY3Rpb24gQihNZSxVLFEsWil7dmFyIGllPXttOlsiZWluZSBNaW51dGUiLCJlaW5lciBNaW51dGUiXSxoOlsiZWluZSBTdHVuZGUiLCJlaW5lciBTdHVuZGUiXSxkOlsiZWluIFRhZyIsImVpbmVtIFRhZyJdLGRkOltNZSsiIFRhZ2UiLE1lKyIgVGFnZW4iXSx3OlsiZWluZSBX''@;'; + put 'put ''b2NoZSIsImVpbmVyIFdvY2hlIl0sTTpbImVpbiBNb25hdCIsImVpbmVtIE1vbmF0Il0sTU06W01lKyIgTW9uYXRlIixNZSsiIE1vbmF0ZW4iXSx5OlsiZWluIEphaHIiLCJlaW5lbSBKYWhyIl0seXk6W01lKyIgSmFocmUiLE1lKyIgSmFocmVuIl19O3JldHVybiBVP2llW1FdWzBdOmllW1Fd''@;'; + put 'put ''WzFdfW1lLmRlZmluZUxvY2FsZSgiZGUtYXQiLHttb250aHM6IkpceGU0bm5lcl9GZWJydWFyX01ceGU0cnpfQXByaWxfTWFpX0p1bmlfSnVsaV9BdWd1c3RfU2VwdGVtYmVyX09rdG9iZXJfTm92ZW1iZXJfRGV6ZW1iZXIiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6IkpceGU0bi5fRmViLl9N''@;'; + put 'put ''XHhlNHJ6X0Fwci5fTWFpX0p1bmlfSnVsaV9BdWcuX1NlcC5fT2t0Ll9Ob3YuX0Rlei4iLnNwbGl0KCJfIiksbW9udGhzUGFyc2VFeGFjdDohMCx3ZWVrZGF5czoiU29ubnRhZ19Nb250YWdfRGllbnN0YWdfTWl0dHdvY2hfRG9ubmVyc3RhZ19GcmVpdGFnX1NhbXN0YWciLnNwbGl0KCJfIiks''@;'; + put 'put ''d2Vla2RheXNTaG9ydDoiU28uX01vLl9EaS5fTWkuX0RvLl9Gci5fU2EuIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJTb19Nb19EaV9NaV9Eb19Gcl9TYSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1BhcnNlRXhhY3Q6ITAsbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIs''@;'; + put 'put ''TDoiREQuTU0uWVlZWSIsTEw6IkQuIE1NTU0gWVlZWSIsTExMOiJELiBNTU1NIFlZWVkgSEg6bW0iLExMTEw6ImRkZGQsIEQuIE1NTU0gWVlZWSBISDptbSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbaGV1dGUgdW1dIExUIFtVaHJdIixzYW1lRWxzZToiTCIsbmV4dERheToiW21vcmdlbiB1bV0g''@;'; + put 'put ''TFQgW1Vocl0iLG5leHRXZWVrOiJkZGRkIFt1bV0gTFQgW1Vocl0iLGxhc3REYXk6IltnZXN0ZXJuIHVtXSBMVCBbVWhyXSIsbGFzdFdlZWs6IltsZXR6dGVuXSBkZGRkIFt1bV0gTFQgW1Vocl0ifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiaW4gJXMiLHBhc3Q6InZvciAlcyIsczoiZWluIHBh''@;'; + put 'put ''YXIgU2VrdW5kZW4iLHNzOiIlZCBTZWt1bmRlbiIsbTpCLG1tOiIlZCBNaW51dGVuIixoOkIsaGg6IiVkIFN0dW5kZW4iLGQ6QixkZDpCLHc6Qix3dzoiJWQgV29jaGVuIixNOkIsTU06Qix5OkIseXk6Qn0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfVwuLyxvcmRpbmFsOiIlZC4i''@;'; + put 'put ''LHdlZWs6e2RvdzoxLGRveTo0fX0pfShMKDE1NDM5KSl9LDY3MjQzOmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlvbihtZSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIEIoTWUsVSxRLFope3ZhciBpZT17bTpbImVpbmUgTWludXRlIiwiZWluZXIgTWludXRlIl0saDpbImVpbmUgU3R1bmRlIiwi''@;'; + put 'put ''ZWluZXIgU3R1bmRlIl0sZDpbImVpbiBUYWciLCJlaW5lbSBUYWciXSxkZDpbTWUrIiBUYWdlIixNZSsiIFRhZ2VuIl0sdzpbImVpbmUgV29jaGUiLCJlaW5lciBXb2NoZSJdLE06WyJlaW4gTW9uYXQiLCJlaW5lbSBNb25hdCJdLE1NOltNZSsiIE1vbmF0ZSIsTWUrIiBNb25hdGVuIl0seTpb''@;'; + put 'put ''ImVpbiBKYWhyIiwiZWluZW0gSmFociJdLHl5OltNZSsiIEphaHJlIixNZSsiIEphaHJlbiJdfTtyZXR1cm4gVT9pZVtRXVswXTppZVtRXVsxXX1tZS5kZWZpbmVMb2NhbGUoImRlLWNoIix7bW9udGhzOiJKYW51YXJfRmVicnVhcl9NXHhlNHJ6X0FwcmlsX01haV9KdW5pX0p1bGlfQXVndXN0''@;'; + put 'put ''X1NlcHRlbWJlcl9Pa3RvYmVyX05vdmVtYmVyX0RlemVtYmVyIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJKYW4uX0ZlYi5fTVx4ZTRyel9BcHIuX01haV9KdW5pX0p1bGlfQXVnLl9TZXAuX09rdC5fTm92Ll9EZXouIi5zcGxpdCgiXyIpLG1vbnRoc1BhcnNlRXhhY3Q6ITAsd2Vla2RheXM6''@;'; + put 'put ''IlNvbm50YWdfTW9udGFnX0RpZW5zdGFnX01pdHR3b2NoX0Rvbm5lcnN0YWdfRnJlaXRhZ19TYW1zdGFnIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6IlNvX01vX0RpX01pX0RvX0ZyX1NhIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJTb19Nb19EaV9NaV9Eb19Gcl9TYSIuc3BsaXQoIl8i''@;'; + put 'put ''KSx3ZWVrZGF5c1BhcnNlRXhhY3Q6ITAsbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoiREQuTU0uWVlZWSIsTEw6IkQuIE1NTU0gWVlZWSIsTExMOiJELiBNTU1NIFlZWVkgSEg6bW0iLExMTEw6ImRkZGQsIEQuIE1NTU0gWVlZWSBISDptbSJ9LGNhbGVuZGFy''@;'; + put 'put ''OntzYW1lRGF5OiJbaGV1dGUgdW1dIExUIFtVaHJdIixzYW1lRWxzZToiTCIsbmV4dERheToiW21vcmdlbiB1bV0gTFQgW1Vocl0iLG5leHRXZWVrOiJkZGRkIFt1bV0gTFQgW1Vocl0iLGxhc3REYXk6IltnZXN0ZXJuIHVtXSBMVCBbVWhyXSIsbGFzdFdlZWs6IltsZXR6dGVuXSBkZGRkIFt1''@;'; + put 'put ''bV0gTFQgW1Vocl0ifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiaW4gJXMiLHBhc3Q6InZvciAlcyIsczoiZWluIHBhYXIgU2VrdW5kZW4iLHNzOiIlZCBTZWt1bmRlbiIsbTpCLG1tOiIlZCBNaW51dGVuIixoOkIsaGg6IiVkIFN0dW5kZW4iLGQ6QixkZDpCLHc6Qix3dzoiJWQgV29jaGVuIixN''@;'; + put 'put ''OkIsTU06Qix5OkIseXk6Qn0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfVwuLyxvcmRpbmFsOiIlZC4iLHdlZWs6e2RvdzoxLGRveTo0fX0pfShMKDE1NDM5KSl9LDU0MzA3OmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlvbihtZSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIEIoTWUs''@;'; + put 'put ''VSxRLFope3ZhciBpZT17bTpbImVpbmUgTWludXRlIiwiZWluZXIgTWludXRlIl0saDpbImVpbmUgU3R1bmRlIiwiZWluZXIgU3R1bmRlIl0sZDpbImVpbiBUYWciLCJlaW5lbSBUYWciXSxkZDpbTWUrIiBUYWdlIixNZSsiIFRhZ2VuIl0sdzpbImVpbmUgV29jaGUiLCJlaW5lciBXb2NoZSJd''@;'; + put 'put ''LE06WyJlaW4gTW9uYXQiLCJlaW5lbSBNb25hdCJdLE1NOltNZSsiIE1vbmF0ZSIsTWUrIiBNb25hdGVuIl0seTpbImVpbiBKYWhyIiwiZWluZW0gSmFociJdLHl5OltNZSsiIEphaHJlIixNZSsiIEphaHJlbiJdfTtyZXR1cm4gVT9pZVtRXVswXTppZVtRXVsxXX1tZS5kZWZpbmVMb2NhbGUo''@;'; + put 'put ''ImRlIix7bW9udGhzOiJKYW51YXJfRmVicnVhcl9NXHhlNHJ6X0FwcmlsX01haV9KdW5pX0p1bGlfQXVndXN0X1NlcHRlbWJlcl9Pa3RvYmVyX05vdmVtYmVyX0RlemVtYmVyIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJKYW4uX0ZlYi5fTVx4ZTRyel9BcHIuX01haV9KdW5pX0p1bGlfQXVn''@;'; + put 'put ''Ll9TZXAuX09rdC5fTm92Ll9EZXouIi5zcGxpdCgiXyIpLG1vbnRoc1BhcnNlRXhhY3Q6ITAsd2Vla2RheXM6IlNvbm50YWdfTW9udGFnX0RpZW5zdGFnX01pdHR3b2NoX0Rvbm5lcnN0YWdfRnJlaXRhZ19TYW1zdGFnIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6IlNvLl9Nby5fRGkuX01p''@;'; + put 'put ''Ll9Eby5fRnIuX1NhLiIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiU29fTW9fRGlfTWlfRG9fRnJfU2EiLnNwbGl0KCJfIiksd2Vla2RheXNQYXJzZUV4YWN0OiEwLGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IkRELk1NLllZWVkiLExMOiJELiBNTU1NIFlZ''@;'; + put 'put ''WVkiLExMTDoiRC4gTU1NTSBZWVlZIEhIOm1tIixMTExMOiJkZGRkLCBELiBNTU1NIFlZWVkgSEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW2hldXRlIHVtXSBMVCBbVWhyXSIsc2FtZUVsc2U6IkwiLG5leHREYXk6Ilttb3JnZW4gdW1dIExUIFtVaHJdIixuZXh0V2VlazoiZGRkZCBbdW1d''@;'; + put 'put ''IExUIFtVaHJdIixsYXN0RGF5OiJbZ2VzdGVybiB1bV0gTFQgW1Vocl0iLGxhc3RXZWVrOiJbbGV0enRlbl0gZGRkZCBbdW1dIExUIFtVaHJdIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6ImluICVzIixwYXN0OiJ2b3IgJXMiLHM6ImVpbiBwYWFyIFNla3VuZGVuIixzczoiJWQgU2VrdW5kZW4i''@;'; + put 'put ''LG06QixtbToiJWQgTWludXRlbiIsaDpCLGhoOiIlZCBTdHVuZGVuIixkOkIsZGQ6Qix3OkIsd3c6IiVkIFdvY2hlbiIsTTpCLE1NOkIseTpCLHl5OkJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn1cLi8sb3JkaW5hbDoiJWQuIix3ZWVrOntkb3c6MSxkb3k6NH19KX0oTCgxNTQz''@;'; + put 'put ''OSkpfSwzOTY1OTpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0Ijt2YXIgQj1bIlx1MDc5Nlx1MDdhY1x1MDc4Mlx1MDdhYVx1MDc4N1x1MDdhNlx1MDc4M1x1MDdhOSIsIlx1MDc4YVx1MDdhY1x1MDc4NFx1MDdiMFx1MDc4M1x1MDdhYVx1MDc4N1x1MDdhNlx1''@;'; + put 'put ''MDc4M1x1MDdhOSIsIlx1MDc4OVx1MDdhN1x1MDc4M1x1MDdhOFx1MDc5N1x1MDdhYSIsIlx1MDc4N1x1MDdhZFx1MDc5NVx1MDdiMFx1MDc4M1x1MDdhOVx1MDc4ZFx1MDdhYSIsIlx1MDc4OVx1MDdhZCIsIlx1MDc5Nlx1MDdhYlx1MDc4Mlx1MDdiMCIsIlx1MDc5Nlx1MDdhYVx1MDc4ZFx1''@;'; + put 'put ''MDdhNlx1MDc4N1x1MDdhOCIsIlx1MDc4N1x1MDdhZlx1MDc4ZVx1MDdhNlx1MDc5MFx1MDdiMFx1MDc5M1x1MDdhYSIsIlx1MDc5MFx1MDdhY1x1MDc5NVx1MDdiMFx1MDc5M1x1MDdhY1x1MDc4OVx1MDdiMFx1MDc4NFx1MDdhNlx1MDc4M1x1MDdhYSIsIlx1MDc4N1x1MDdhZVx1MDc4Nlx1''@;'; + put 'put ''MDdiMFx1MDc5M1x1MDdhZlx1MDc4NFx1MDdhNlx1MDc4M1x1MDdhYSIsIlx1MDc4Mlx1MDdhZVx1MDc4OFx1MDdhY1x1MDc4OVx1MDdiMFx1MDc4NFx1MDdhNlx1MDc4M1x1MDdhYSIsIlx1MDc5MVx1MDdhOFx1MDc5MFx1MDdhY1x1MDc4OVx1MDdiMFx1MDc4NFx1MDdhNlx1MDc4M1x1MDdh''@;'; + put 'put ''YSJdLEU9WyJcdTA3ODdcdTA3YTdcdTA3OGJcdTA3YThcdTA3ODdcdTA3YjBcdTA3OGNcdTA3YTYiLCJcdTA3ODBcdTA3YWZcdTA3ODlcdTA3YTYiLCJcdTA3ODdcdTA3YTZcdTA3ODJcdTA3YjBcdTA3OGVcdTA3YTdcdTA3ODNcdTA3YTYiLCJcdTA3ODRcdTA3YWFcdTA3OGJcdTA3YTYiLCJc''@;'; + put 'put ''dTA3ODRcdTA3YWFcdTA3ODNcdTA3YTdcdTA3OTBcdTA3YjBcdTA3OGFcdTA3YTZcdTA3OGNcdTA3YTgiLCJcdTA3ODBcdTA3YWFcdTA3ODZcdTA3YWFcdTA3ODNcdTA3YWEiLCJcdTA3ODBcdTA3YWVcdTA3ODJcdTA3YThcdTA3ODBcdTA3YThcdTA3ODNcdTA3YWEiXTttZS5kZWZpbmVMb2Nh''@;'; + put 'put ''bGUoImR2Iix7bW9udGhzOkIsbW9udGhzU2hvcnQ6Qix3ZWVrZGF5czpFLHdlZWtkYXlzU2hvcnQ6RSx3ZWVrZGF5c01pbjoiXHUwNzg3XHUwN2E3XHUwNzhiXHUwN2E4X1x1MDc4MFx1MDdhZlx1MDc4OVx1MDdhNl9cdTA3ODdcdTA3YTZcdTA3ODJcdTA3YjBfXHUwNzg0XHUwN2FhXHUwNzhi''@;'; + put 'put ''XHUwN2E2X1x1MDc4NFx1MDdhYVx1MDc4M1x1MDdhN19cdTA3ODBcdTA3YWFcdTA3ODZcdTA3YWFfXHUwNzgwXHUwN2FlXHUwNzgyXHUwN2E4Ii5zcGxpdCgiXyIpLGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IkQvTS9ZWVlZIixMTDoiRCBNTU1NIFlZWVki''@;'; + put 'put ''LExMTDoiRCBNTU1NIFlZWVkgSEg6bW0iLExMTEw6ImRkZGQgRCBNTU1NIFlZWVkgSEg6bW0ifSxtZXJpZGllbVBhcnNlOi9cdTA3ODlcdTA3ODZ8XHUwNzg5XHUwNzhhLyxpc1BNOmZ1bmN0aW9uKFUpe3JldHVybiJcdTA3ODlcdTA3OGEiPT09VX0sbWVyaWRpZW06ZnVuY3Rpb24oVSxRLFop''@;'; + put 'put ''e3JldHVybiBVPDEyPyJcdTA3ODlcdTA3ODYiOiJcdTA3ODlcdTA3OGEifSxjYWxlbmRhcjp7c2FtZURheToiW1x1MDc4OVx1MDdhOFx1MDc4N1x1MDdhNlx1MDc4Ylx1MDdhYV0gTFQiLG5leHREYXk6IltcdTA3ODlcdTA3YTdcdTA3OGJcdTA3YTZcdTA3ODlcdTA3YTddIExUIixuZXh0V2Vl''@;'; + put 'put ''azoiZGRkZCBMVCIsbGFzdERheToiW1x1MDc4N1x1MDdhOFx1MDc4N1x1MDdiMFx1MDc5NFx1MDdhY10gTFQiLGxhc3RXZWVrOiJbXHUwNzhhXHUwN2E3XHUwNzg3XHUwN2E4XHUwNzhjXHUwN2FhXHUwNzg4XHUwN2E4XSBkZGRkIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0''@;'; + put 'put ''dXJlOiJcdTA3OGNcdTA3YWNcdTA3ODNcdTA3YWRcdTA3OGVcdTA3YTZcdTA3ODdcdTA3YTggJXMiLHBhc3Q6Ilx1MDc4Nlx1MDdhYVx1MDc4M1x1MDdhOFx1MDc4Mlx1MDdiMCAlcyIsczoiXHUwNzkwXHUwN2E4XHUwNzg2XHUwN2FhXHUwNzgyXHUwN2IwXHUwNzhjXHUwN2FhXHUwNzg2XHUw''@;'; + put 'put ''N2FlXHUwNzg1XHUwN2FjXHUwNzg3XHUwN2IwIixzczoiZCUgXHUwNzkwXHUwN2E4XHUwNzg2XHUwN2FhXHUwNzgyXHUwN2IwXHUwNzhjXHUwN2FhIixtOiJcdTA3ODlcdTA3YThcdTA3ODJcdTA3YThcdTA3OTNcdTA3YWNcdTA3ODdcdTA3YjAiLG1tOiJcdTA3ODlcdTA3YThcdTA3ODJcdTA3''@;'; + put 'put ''YThcdTA3OTNcdTA3YWEgJWQiLGg6Ilx1MDc4ZVx1MDdhNlx1MDc5MVx1MDdhOFx1MDc4N1x1MDdhOFx1MDc4M1x1MDdhY1x1MDc4N1x1MDdiMCIsaGg6Ilx1MDc4ZVx1MDdhNlx1MDc5MVx1MDdhOFx1MDc4N1x1MDdhOFx1MDc4M1x1MDdhYSAlZCIsZDoiXHUwNzhiXHUwN2FhXHUwNzg4XHUw''@;'; + put 'put ''N2E2XHUwNzgwXHUwN2FjXHUwNzg3XHUwN2IwIixkZDoiXHUwNzhiXHUwN2FhXHUwNzg4XHUwN2E2XHUwNzkwXHUwN2IwICVkIixNOiJcdTA3ODlcdTA3YTZcdTA3ODBcdTA3YWNcdTA3ODdcdTA3YjAiLE1NOiJcdTA3ODlcdTA3YTZcdTA3OTBcdTA3YjAgJWQiLHk6Ilx1MDc4N1x1MDdhNlx1''@;'; + put 'put ''MDc4MFx1MDdhNlx1MDc4M1x1MDdhY1x1MDc4N1x1MDdiMCIseXk6Ilx1MDc4N1x1MDdhNlx1MDc4MFx1MDdhNlx1MDc4M1x1MDdhYSAlZCJ9LHByZXBhcnNlOmZ1bmN0aW9uKFUpe3JldHVybiBVLnJlcGxhY2UoL1x1MDYwYy9nLCIsIil9LHBvc3Rmb3JtYXQ6ZnVuY3Rpb24oVSl7cmV0dXJu''@;'; + put 'put ''IFUucmVwbGFjZSgvLC9nLCJcdTA2MGMiKX0sd2Vlazp7ZG93OjcsZG95OjEyfX0pfShMKDE1NDM5KSl9LDM0NjA6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7bWUuZGVmaW5lTG9jYWxlKCJlbCIse21vbnRoc05vbWluYXRpdmVFbDoiXHUwMzk5XHUwM2Ix''@;'; + put 'put ''XHUwM2JkXHUwM2JmXHUwM2M1XHUwM2FjXHUwM2MxXHUwM2I5XHUwM2JmXHUwM2MyX1x1MDNhNlx1MDNiNVx1MDNiMlx1MDNjMVx1MDNiZlx1MDNjNVx1MDNhY1x1MDNjMVx1MDNiOVx1MDNiZlx1MDNjMl9cdTAzOWNcdTAzYWNcdTAzYzFcdTAzYzRcdTAzYjlcdTAzYmZcdTAzYzJfXHUwMzkx''@;'; + put 'put ''XHUwM2MwXHUwM2MxXHUwM2FmXHUwM2JiXHUwM2I5XHUwM2JmXHUwM2MyX1x1MDM5Y1x1MDNhY1x1MDNiOVx1MDNiZlx1MDNjMl9cdTAzOTlcdTAzYmZcdTAzY2RcdTAzYmRcdTAzYjlcdTAzYmZcdTAzYzJfXHUwMzk5XHUwM2JmXHUwM2NkXHUwM2JiXHUwM2I5XHUwM2JmXHUwM2MyX1x1MDM5''@;'; + put 'put ''MVx1MDNjZFx1MDNiM1x1MDNiZlx1MDNjNVx1MDNjM1x1MDNjNFx1MDNiZlx1MDNjMl9cdTAzYTNcdTAzYjVcdTAzYzBcdTAzYzRcdTAzYWRcdTAzYmNcdTAzYjJcdTAzYzFcdTAzYjlcdTAzYmZcdTAzYzJfXHUwMzlmXHUwM2JhXHUwM2M0XHUwM2NlXHUwM2IyXHUwM2MxXHUwM2I5XHUwM2Jm''@;'; + put 'put ''XHUwM2MyX1x1MDM5ZFx1MDNiZlx1MDNhZFx1MDNiY1x1MDNiMlx1MDNjMVx1MDNiOVx1MDNiZlx1MDNjMl9cdTAzOTRcdTAzYjVcdTAzYmFcdTAzYWRcdTAzYmNcdTAzYjJcdTAzYzFcdTAzYjlcdTAzYmZcdTAzYzIiLnNwbGl0KCJfIiksbW9udGhzR2VuaXRpdmVFbDoiXHUwMzk5XHUwM2Ix''@;'; + put 'put ''XHUwM2JkXHUwM2JmXHUwM2M1XHUwM2IxXHUwM2MxXHUwM2FmXHUwM2JmXHUwM2M1X1x1MDNhNlx1MDNiNVx1MDNiMlx1MDNjMVx1MDNiZlx1MDNjNVx1MDNiMVx1MDNjMVx1MDNhZlx1MDNiZlx1MDNjNV9cdTAzOWNcdTAzYjFcdTAzYzFcdTAzYzRcdTAzYWZcdTAzYmZcdTAzYzVfXHUwMzkx''@;'; + put 'put ''XHUwM2MwXHUwM2MxXHUwM2I5XHUwM2JiXHUwM2FmXHUwM2JmXHUwM2M1X1x1MDM5Y1x1MDNiMVx1MDM5MFx1MDNiZlx1MDNjNV9cdTAzOTlcdTAzYmZcdTAzYzVcdTAzYmRcdTAzYWZcdTAzYmZcdTAzYzVfXHUwMzk5XHUwM2JmXHUwM2M1XHUwM2JiXHUwM2FmXHUwM2JmXHUwM2M1X1x1MDM5''@;'; + put 'put ''MVx1MDNjNVx1MDNiM1x1MDNiZlx1MDNjZFx1MDNjM1x1MDNjNFx1MDNiZlx1MDNjNV9cdTAzYTNcdTAzYjVcdTAzYzBcdTAzYzRcdTAzYjVcdTAzYmNcdTAzYjJcdTAzYzFcdTAzYWZcdTAzYmZcdTAzYzVfXHUwMzlmXHUwM2JhXHUwM2M0XHUwM2M5XHUwM2IyXHUwM2MxXHUwM2FmXHUwM2Jm''@;'; + put 'put ''XHUwM2M1X1x1MDM5ZFx1MDNiZlx1MDNiNVx1MDNiY1x1MDNiMlx1MDNjMVx1MDNhZlx1MDNiZlx1MDNjNV9cdTAzOTRcdTAzYjVcdTAzYmFcdTAzYjVcdTAzYmNcdTAzYjJcdTAzYzFcdTAzYWZcdTAzYmZcdTAzYzUiLnNwbGl0KCJfIiksbW9udGhzOmZ1bmN0aW9uKE1lLFUpe3JldHVybiBN''@;'; + put 'put ''ZT8ic3RyaW5nIj09dHlwZW9mIFUmJi9ELy50ZXN0KFUuc3Vic3RyaW5nKDAsVS5pbmRleE9mKCJNTU1NIikpKT90aGlzLl9tb250aHNHZW5pdGl2ZUVsW01lLm1vbnRoKCldOnRoaXMuX21vbnRoc05vbWluYXRpdmVFbFtNZS5tb250aCgpXTp0aGlzLl9tb250aHNOb21pbmF0aXZlRWx9LG1v''@;'; + put 'put ''bnRoc1Nob3J0OiJcdTAzOTlcdTAzYjFcdTAzYmRfXHUwM2E2XHUwM2I1XHUwM2IyX1x1MDM5Y1x1MDNiMVx1MDNjMV9cdTAzOTFcdTAzYzBcdTAzYzFfXHUwMzljXHUwM2IxXHUwM2NhX1x1MDM5OVx1MDNiZlx1MDNjNVx1MDNiZF9cdTAzOTlcdTAzYmZcdTAzYzVcdTAzYmJfXHUwMzkxXHUw''@;'; + put 'put ''M2M1XHUwM2IzX1x1MDNhM1x1MDNiNVx1MDNjMF9cdTAzOWZcdTAzYmFcdTAzYzRfXHUwMzlkXHUwM2JmXHUwM2I1X1x1MDM5NFx1MDNiNVx1MDNiYSIuc3BsaXQoIl8iKSx3ZWVrZGF5czoiXHUwMzlhXHUwM2M1XHUwM2MxXHUwM2I5XHUwM2IxXHUwM2JhXHUwM2FlX1x1MDM5NFx1MDNiNVx1''@;'; + put 'put ''MDNjNVx1MDNjNFx1MDNhZFx1MDNjMVx1MDNiMV9cdTAzYTRcdTAzYzFcdTAzYWZcdTAzYzRcdTAzYjdfXHUwM2E0XHUwM2I1XHUwM2M0XHUwM2FjXHUwM2MxXHUwM2M0XHUwM2I3X1x1MDNhMFx1MDNhZFx1MDNiY1x1MDNjMFx1MDNjNFx1MDNiN19cdTAzYTBcdTAzYjFcdTAzYzFcdTAzYjFc''@;'; + put 'put ''dTAzYzNcdTAzYmFcdTAzYjVcdTAzYzVcdTAzYWVfXHUwM2EzXHUwM2FjXHUwM2IyXHUwM2IyXHUwM2IxXHUwM2M0XHUwM2JmIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6Ilx1MDM5YVx1MDNjNVx1MDNjMV9cdTAzOTRcdTAzYjVcdTAzYzVfXHUwM2E0XHUwM2MxXHUwM2I5X1x1MDNhNFx1''@;'; + put 'put ''MDNiNVx1MDNjNF9cdTAzYTBcdTAzYjVcdTAzYmNfXHUwM2EwXHUwM2IxXHUwM2MxX1x1MDNhM1x1MDNiMVx1MDNiMiIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiXHUwMzlhXHUwM2M1X1x1MDM5NFx1MDNiNV9cdTAzYTRcdTAzYzFfXHUwM2E0XHUwM2I1X1x1MDNhMFx1MDNiNV9cdTAzYTBc''@;'; + put 'put ''dTAzYjFfXHUwM2EzXHUwM2IxIi5zcGxpdCgiXyIpLG1lcmlkaWVtOmZ1bmN0aW9uKE1lLFUsUSl7cmV0dXJuIE1lPjExP1E/Ilx1MDNiY1x1MDNiYyI6Ilx1MDM5Y1x1MDM5YyI6UT8iXHUwM2MwXHUwM2JjIjoiXHUwM2EwXHUwMzljIn0saXNQTTpmdW5jdGlvbihNZSl7cmV0dXJuIlx1MDNi''@;'; + put 'put ''YyI9PT0oTWUrIiIpLnRvTG93ZXJDYXNlKClbMF19LG1lcmlkaWVtUGFyc2U6L1tcdTAzYTBcdTAzOWNdXC4/XHUwMzljP1wuPy9pLGxvbmdEYXRlRm9ybWF0OntMVDoiaDptbSBBIixMVFM6Img6bW06c3MgQSIsTDoiREQvTU0vWVlZWSIsTEw6IkQgTU1NTSBZWVlZIixMTEw6IkQgTU1NTSBZ''@;'; + put 'put ''WVlZIGg6bW0gQSIsTExMTDoiZGRkZCwgRCBNTU1NIFlZWVkgaDptbSBBIn0sY2FsZW5kYXJFbDp7c2FtZURheToiW1x1MDNhM1x1MDNhZVx1MDNiY1x1MDNiNVx1MDNjMVx1MDNiMSB7fV0gTFQiLG5leHREYXk6IltcdTAzOTFcdTAzY2RcdTAzYzFcdTAzYjlcdTAzYmYge31dIExUIixuZXh0''@;'; + put 'put ''V2VlazoiZGRkZCBbe31dIExUIixsYXN0RGF5OiJbXHUwM2E3XHUwM2I4XHUwM2I1XHUwM2MyIHt9XSBMVCIsbGFzdFdlZWs6ZnVuY3Rpb24oKXtyZXR1cm4gNj09PXRoaXMuZGF5KCk/IltcdTAzYzRcdTAzYmYgXHUwM2MwXHUwM2MxXHUwM2JmXHUwM2I3XHUwM2IzXHUwM2JmXHUwM2NkXHUw''@;'; + put 'put ''M2JjXHUwM2I1XHUwM2JkXHUwM2JmXSBkZGRkIFt7fV0gTFQiOiJbXHUwM2M0XHUwM2I3XHUwM2JkIFx1MDNjMFx1MDNjMVx1MDNiZlx1MDNiN1x1MDNiM1x1MDNiZlx1MDNjZFx1MDNiY1x1MDNiNVx1MDNiZFx1MDNiN10gZGRkZCBbe31dIExUIn0sc2FtZUVsc2U6IkwifSxjYWxlbmRhcjpm''@;'; + put 'put ''dW5jdGlvbihNZSxVKXt2YXIgUT10aGlzLl9jYWxlbmRhckVsW01lXSxaPVUmJlUuaG91cnMoKTtyZXR1cm4gZnVuY3Rpb24gQihNZSl7cmV0dXJuInVuZGVmaW5lZCIhPXR5cGVvZiBGdW5jdGlvbiYmTWUgaW5zdGFuY2VvZiBGdW5jdGlvbnx8IltvYmplY3QgRnVuY3Rpb25dIj09PU9iamVj''@;'; + put 'put ''dC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChNZSl9KFEpJiYoUT1RLmFwcGx5KFUpKSxRLnJlcGxhY2UoInt9IixaJTEyPT0xPyJcdTAzYzNcdTAzYzRcdTAzYjciOiJcdTAzYzNcdTAzYzRcdTAzYjlcdTAzYzIiKX0scmVsYXRpdmVUaW1lOntmdXR1cmU6Ilx1MDNjM1x1MDNiNSAlcyIscGFz''@;'; + put 'put ''dDoiJXMgXHUwM2MwXHUwM2MxXHUwM2I5XHUwM2JkIixzOiJcdTAzYmJcdTAzYWZcdTAzYjNcdTAzYjEgXHUwM2I0XHUwM2I1XHUwM2M1XHUwM2M0XHUwM2I1XHUwM2MxXHUwM2NjXHUwM2JiXHUwM2I1XHUwM2MwXHUwM2M0XHUwM2IxIixzczoiJWQgXHUwM2I0XHUwM2I1XHUwM2M1XHUwM2M0''@;'; + put 'put ''XHUwM2I1XHUwM2MxXHUwM2NjXHUwM2JiXHUwM2I1XHUwM2MwXHUwM2M0XHUwM2IxIixtOiJcdTAzYWRcdTAzYmRcdTAzYjEgXHUwM2JiXHUwM2I1XHUwM2MwXHUwM2M0XHUwM2NjIixtbToiJWQgXHUwM2JiXHUwM2I1XHUwM2MwXHUwM2M0XHUwM2FjIixoOiJcdTAzYmNcdTAzYWZcdTAzYjEg''@;'; + put 'put ''XHUwM2NlXHUwM2MxXHUwM2IxIixoaDoiJWQgXHUwM2NlXHUwM2MxXHUwM2I1XHUwM2MyIixkOiJcdTAzYmNcdTAzYWZcdTAzYjEgXHUwM2JjXHUwM2FkXHUwM2MxXHUwM2IxIixkZDoiJWQgXHUwM2JjXHUwM2FkXHUwM2MxXHUwM2I1XHUwM2MyIixNOiJcdTAzYWRcdTAzYmRcdTAzYjFcdTAz''@;'; + put 'put ''YzIgXHUwM2JjXHUwM2FlXHUwM2JkXHUwM2IxXHUwM2MyIixNTToiJWQgXHUwM2JjXHUwM2FlXHUwM2JkXHUwM2I1XHUwM2MyIix5OiJcdTAzYWRcdTAzYmRcdTAzYjFcdTAzYzIgXHUwM2M3XHUwM2MxXHUwM2NjXHUwM2JkXHUwM2JmXHUwM2MyIix5eToiJWQgXHUwM2M3XHUwM2MxXHUwM2Nj''@;'; + put 'put ''XHUwM2JkXHUwM2I5XHUwM2IxIn0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfVx1MDNiNy8sb3JkaW5hbDoiJWRcdTAzYjciLHdlZWs6e2RvdzoxLGRveTo0fX0pfShMKDE1NDM5KSl9LDk0MzY5OmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlvbihtZSl7InVzZSBzdHJpY3QiO21l''@;'; + put 'put ''LmRlZmluZUxvY2FsZSgiZW4tYXUiLHttb250aHM6IkphbnVhcnlfRmVicnVhcnlfTWFyY2hfQXByaWxfTWF5X0p1bmVfSnVseV9BdWd1c3RfU2VwdGVtYmVyX09jdG9iZXJfTm92ZW1iZXJfRGVjZW1iZXIiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6Ikphbl9GZWJfTWFyX0Fwcl9NYXlfSnVu''@;'; + put 'put ''X0p1bF9BdWdfU2VwX09jdF9Ob3ZfRGVjIi5zcGxpdCgiXyIpLHdlZWtkYXlzOiJTdW5kYXlfTW9uZGF5X1R1ZXNkYXlfV2VkbmVzZGF5X1RodXJzZGF5X0ZyaWRheV9TYXR1cmRheSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJTdW5fTW9uX1R1ZV9XZWRfVGh1X0ZyaV9TYXQiLnNwbGl0''@;'; + put 'put ''KCJfIiksd2Vla2RheXNNaW46IlN1X01vX1R1X1dlX1RoX0ZyX1NhIi5zcGxpdCgiXyIpLGxvbmdEYXRlRm9ybWF0OntMVDoiaDptbSBBIixMVFM6Img6bW06c3MgQSIsTDoiREQvTU0vWVlZWSIsTEw6IkQgTU1NTSBZWVlZIixMTEw6IkQgTU1NTSBZWVlZIGg6bW0gQSIsTExMTDoiZGRkZCwg''@;'; + put 'put ''RCBNTU1NIFlZWVkgaDptbSBBIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltUb2RheSBhdF0gTFQiLG5leHREYXk6IltUb21vcnJvdyBhdF0gTFQiLG5leHRXZWVrOiJkZGRkIFthdF0gTFQiLGxhc3REYXk6IltZZXN0ZXJkYXkgYXRdIExUIixsYXN0V2VlazoiW0xhc3RdIGRkZGQgW2F0XSBMVCIs''@;'; + put 'put ''c2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiaW4gJXMiLHBhc3Q6IiVzIGFnbyIsczoiYSBmZXcgc2Vjb25kcyIsc3M6IiVkIHNlY29uZHMiLG06ImEgbWludXRlIixtbToiJWQgbWludXRlcyIsaDoiYW4gaG91ciIsaGg6IiVkIGhvdXJzIixkOiJhIGRheSIsZGQ6IiVkIGRh''@;'; + put 'put ''eXMiLE06ImEgbW9udGgiLE1NOiIlZCBtb250aHMiLHk6ImEgeWVhciIseXk6IiVkIHllYXJzIn0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfShzdHxuZHxyZHx0aCkvLG9yZGluYWw6ZnVuY3Rpb24oRSl7dmFyIE1lPUUlMTA7cmV0dXJuIEUrKDE9PX5+KEUlMTAwLzEwKT8idGgi''@;'; + put 'put ''OjE9PT1NZT8ic3QiOjI9PT1NZT8ibmQiOjM9PT1NZT8icmQiOiJ0aCIpfSx3ZWVrOntkb3c6MCxkb3k6NH19KX0oTCgxNTQzOSkpfSw2MDUzMDpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0IjttZS5kZWZpbmVMb2NhbGUoImVuLWNhIix7bW9udGhzOiJKYW51''@;'; + put 'put ''YXJ5X0ZlYnJ1YXJ5X01hcmNoX0FwcmlsX01heV9KdW5lX0p1bHlfQXVndXN0X1NlcHRlbWJlcl9PY3RvYmVyX05vdmVtYmVyX0RlY2VtYmVyIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJKYW5fRmViX01hcl9BcHJfTWF5X0p1bl9KdWxfQXVnX1NlcF9PY3RfTm92X0RlYyIuc3BsaXQoIl8i''@;'; + put 'put ''KSx3ZWVrZGF5czoiU3VuZGF5X01vbmRheV9UdWVzZGF5X1dlZG5lc2RheV9UaHVyc2RheV9GcmlkYXlfU2F0dXJkYXkiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiU3VuX01vbl9UdWVfV2VkX1RodV9GcmlfU2F0Ii5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJTdV9Nb19UdV9XZV9UaF9G''@;'; + put 'put ''cl9TYSIuc3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6Img6bW0gQSIsTFRTOiJoOm1tOnNzIEEiLEw6IllZWVktTU0tREQiLExMOiJNTU1NIEQsIFlZWVkiLExMTDoiTU1NTSBELCBZWVlZIGg6bW0gQSIsTExMTDoiZGRkZCwgTU1NTSBELCBZWVlZIGg6bW0gQSJ9LGNhbGVuZGFyOntz''@;'; + put 'put ''YW1lRGF5OiJbVG9kYXkgYXRdIExUIixuZXh0RGF5OiJbVG9tb3Jyb3cgYXRdIExUIixuZXh0V2VlazoiZGRkZCBbYXRdIExUIixsYXN0RGF5OiJbWWVzdGVyZGF5IGF0XSBMVCIsbGFzdFdlZWs6IltMYXN0XSBkZGRkIFthdF0gTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1''@;'; + put 'put ''cmU6ImluICVzIixwYXN0OiIlcyBhZ28iLHM6ImEgZmV3IHNlY29uZHMiLHNzOiIlZCBzZWNvbmRzIixtOiJhIG1pbnV0ZSIsbW06IiVkIG1pbnV0ZXMiLGg6ImFuIGhvdXIiLGhoOiIlZCBob3VycyIsZDoiYSBkYXkiLGRkOiIlZCBkYXlzIixNOiJhIG1vbnRoIixNTToiJWQgbW9udGhzIix5''@;'; + put 'put ''OiJhIHllYXIiLHl5OiIlZCB5ZWFycyJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn0oc3R8bmR8cmR8dGgpLyxvcmRpbmFsOmZ1bmN0aW9uKEUpe3ZhciBNZT1FJTEwO3JldHVybiBFKygxPT1+fihFJTEwMC8xMCk/InRoIjoxPT09TWU/InN0IjoyPT09TWU/Im5kIjozPT09TWU/''@;'; + put 'put ''InJkIjoidGgiKX19KX0oTCgxNTQzOSkpfSw5OTk4OmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlvbihtZSl7InVzZSBzdHJpY3QiO21lLmRlZmluZUxvY2FsZSgiZW4tZ2IiLHttb250aHM6IkphbnVhcnlfRmVicnVhcnlfTWFyY2hfQXByaWxfTWF5X0p1bmVfSnVseV9BdWd1c3RfU2VwdGVt''@;'; + put 'put ''YmVyX09jdG9iZXJfTm92ZW1iZXJfRGVjZW1iZXIiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6Ikphbl9GZWJfTWFyX0Fwcl9NYXlfSnVuX0p1bF9BdWdfU2VwX09jdF9Ob3ZfRGVjIi5zcGxpdCgiXyIpLHdlZWtkYXlzOiJTdW5kYXlfTW9uZGF5X1R1ZXNkYXlfV2VkbmVzZGF5X1RodXJzZGF5''@;'; + put 'put ''X0ZyaWRheV9TYXR1cmRheSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJTdW5fTW9uX1R1ZV9XZWRfVGh1X0ZyaV9TYXQiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46IlN1X01vX1R1X1dlX1RoX0ZyX1NhIi5zcGxpdCgiXyIpLGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6''@;'; + put 'put ''bW06c3MiLEw6IkREL01NL1lZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0gWVlZWSBISDptbSIsTExMTDoiZGRkZCwgRCBNTU1NIFlZWVkgSEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW1RvZGF5IGF0XSBMVCIsbmV4dERheToiW1RvbW9ycm93IGF0XSBMVCIsbmV4dFdlZWs6''@;'; + put 'put ''ImRkZGQgW2F0XSBMVCIsbGFzdERheToiW1llc3RlcmRheSBhdF0gTFQiLGxhc3RXZWVrOiJbTGFzdF0gZGRkZCBbYXRdIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJpbiAlcyIscGFzdDoiJXMgYWdvIixzOiJhIGZldyBzZWNvbmRzIixzczoiJWQgc2Vjb25kcyIs''@;'; + put 'put ''bToiYSBtaW51dGUiLG1tOiIlZCBtaW51dGVzIixoOiJhbiBob3VyIixoaDoiJWQgaG91cnMiLGQ6ImEgZGF5IixkZDoiJWQgZGF5cyIsTToiYSBtb250aCIsTU06IiVkIG1vbnRocyIseToiYSB5ZWFyIix5eToiJWQgeWVhcnMifSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9KHN0''@;'; + put 'put ''fG5kfHJkfHRoKS8sb3JkaW5hbDpmdW5jdGlvbihFKXt2YXIgTWU9RSUxMDtyZXR1cm4gRSsoMT09fn4oRSUxMDAvMTApPyJ0aCI6MT09PU1lPyJzdCI6Mj09PU1lPyJuZCI6Mz09PU1lPyJyZCI6InRoIil9LHdlZWs6e2RvdzoxLGRveTo0fX0pfShMKDE1NDM5KSl9LDEzMzkxOmZ1bmN0aW9u''@;'; + put 'put ''KFhlLEplLEwpeyFmdW5jdGlvbihtZSl7InVzZSBzdHJpY3QiO21lLmRlZmluZUxvY2FsZSgiZW4taWUiLHttb250aHM6IkphbnVhcnlfRmVicnVhcnlfTWFyY2hfQXByaWxfTWF5X0p1bmVfSnVseV9BdWd1c3RfU2VwdGVtYmVyX09jdG9iZXJfTm92ZW1iZXJfRGVjZW1iZXIiLnNwbGl0KCJf''@;'; + put 'put ''IiksbW9udGhzU2hvcnQ6Ikphbl9GZWJfTWFyX0Fwcl9NYXlfSnVuX0p1bF9BdWdfU2VwX09jdF9Ob3ZfRGVjIi5zcGxpdCgiXyIpLHdlZWtkYXlzOiJTdW5kYXlfTW9uZGF5X1R1ZXNkYXlfV2VkbmVzZGF5X1RodXJzZGF5X0ZyaWRheV9TYXR1cmRheSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1No''@;'; + put 'put ''b3J0OiJTdW5fTW9uX1R1ZV9XZWRfVGh1X0ZyaV9TYXQiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46IlN1X01vX1R1X1dlX1RoX0ZyX1NhIi5zcGxpdCgiXyIpLGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IkREL01NL1lZWVkiLExMOiJEIE1NTU0gWVlZWSIs''@;'; + put 'put ''TExMOiJEIE1NTU0gWVlZWSBISDptbSIsTExMTDoiZGRkZCBEIE1NTU0gWVlZWSBISDptbSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbVG9kYXkgYXRdIExUIixuZXh0RGF5OiJbVG9tb3Jyb3cgYXRdIExUIixuZXh0V2VlazoiZGRkZCBbYXRdIExUIixsYXN0RGF5OiJbWWVzdGVyZGF5IGF0XSBM''@;'; + put 'put ''VCIsbGFzdFdlZWs6IltMYXN0XSBkZGRkIFthdF0gTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6ImluICVzIixwYXN0OiIlcyBhZ28iLHM6ImEgZmV3IHNlY29uZHMiLHNzOiIlZCBzZWNvbmRzIixtOiJhIG1pbnV0ZSIsbW06IiVkIG1pbnV0ZXMiLGg6ImFuIGhvdXIi''@;'; + put 'put ''LGhoOiIlZCBob3VycyIsZDoiYSBkYXkiLGRkOiIlZCBkYXlzIixNOiJhIG1vbnRoIixNTToiJWQgbW9udGhzIix5OiJhIHllYXIiLHl5OiIlZCB5ZWFycyJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn0oc3R8bmR8cmR8dGgpLyxvcmRpbmFsOmZ1bmN0aW9uKEUpe3ZhciBNZT1F''@;'; + put 'put ''JTEwO3JldHVybiBFKygxPT1+fihFJTEwMC8xMCk/InRoIjoxPT09TWU/InN0IjoyPT09TWU/Im5kIjozPT09TWU/InJkIjoidGgiKX0sd2Vlazp7ZG93OjEsZG95OjR9fSl9KEwoMTU0MzkpKX0sNzU0MTQ6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7bWUu''@;'; + put 'put ''ZGVmaW5lTG9jYWxlKCJlbi1pbCIse21vbnRoczoiSmFudWFyeV9GZWJydWFyeV9NYXJjaF9BcHJpbF9NYXlfSnVuZV9KdWx5X0F1Z3VzdF9TZXB0ZW1iZXJfT2N0b2Jlcl9Ob3ZlbWJlcl9EZWNlbWJlciIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiSmFuX0ZlYl9NYXJfQXByX01heV9KdW5f''@;'; + put 'put ''SnVsX0F1Z19TZXBfT2N0X05vdl9EZWMiLnNwbGl0KCJfIiksd2Vla2RheXM6IlN1bmRheV9Nb25kYXlfVHVlc2RheV9XZWRuZXNkYXlfVGh1cnNkYXlfRnJpZGF5X1NhdHVyZGF5Ii5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6IlN1bl9Nb25fVHVlX1dlZF9UaHVfRnJpX1NhdCIuc3BsaXQo''@;'; + put 'put ''Il8iKSx3ZWVrZGF5c01pbjoiU3VfTW9fVHVfV2VfVGhfRnJfU2EiLnNwbGl0KCJfIiksbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoiREQvTU0vWVlZWSIsTEw6IkQgTU1NTSBZWVlZIixMTEw6IkQgTU1NTSBZWVlZIEhIOm1tIixMTExMOiJkZGRkLCBEIE1N''@;'; + put 'put ''TU0gWVlZWSBISDptbSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbVG9kYXkgYXRdIExUIixuZXh0RGF5OiJbVG9tb3Jyb3cgYXRdIExUIixuZXh0V2VlazoiZGRkZCBbYXRdIExUIixsYXN0RGF5OiJbWWVzdGVyZGF5IGF0XSBMVCIsbGFzdFdlZWs6IltMYXN0XSBkZGRkIFthdF0gTFQiLHNhbWVF''@;'; + put 'put ''bHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6ImluICVzIixwYXN0OiIlcyBhZ28iLHM6ImEgZmV3IHNlY29uZHMiLHNzOiIlZCBzZWNvbmRzIixtOiJhIG1pbnV0ZSIsbW06IiVkIG1pbnV0ZXMiLGg6ImFuIGhvdXIiLGhoOiIlZCBob3VycyIsZDoiYSBkYXkiLGRkOiIlZCBkYXlzIixN''@;'; + put 'put ''OiJhIG1vbnRoIixNTToiJWQgbW9udGhzIix5OiJhIHllYXIiLHl5OiIlZCB5ZWFycyJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn0oc3R8bmR8cmR8dGgpLyxvcmRpbmFsOmZ1bmN0aW9uKEUpe3ZhciBNZT1FJTEwO3JldHVybiBFKygxPT1+fihFJTEwMC8xMCk/InRoIjoxPT09''@;'; + put 'put ''TWU/InN0IjoyPT09TWU/Im5kIjozPT09TWU/InJkIjoidGgiKX19KX0oTCgxNTQzOSkpfSwxOTYxNTpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0IjttZS5kZWZpbmVMb2NhbGUoImVuLWluIix7bW9udGhzOiJKYW51YXJ5X0ZlYnJ1YXJ5X01hcmNoX0Fwcmls''@;'; + put 'put ''X01heV9KdW5lX0p1bHlfQXVndXN0X1NlcHRlbWJlcl9PY3RvYmVyX05vdmVtYmVyX0RlY2VtYmVyIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJKYW5fRmViX01hcl9BcHJfTWF5X0p1bl9KdWxfQXVnX1NlcF9PY3RfTm92X0RlYyIuc3BsaXQoIl8iKSx3ZWVrZGF5czoiU3VuZGF5X01vbmRh''@;'; + put 'put ''eV9UdWVzZGF5X1dlZG5lc2RheV9UaHVyc2RheV9GcmlkYXlfU2F0dXJkYXkiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiU3VuX01vbl9UdWVfV2VkX1RodV9GcmlfU2F0Ii5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJTdV9Nb19UdV9XZV9UaF9Gcl9TYSIuc3BsaXQoIl8iKSxsb25nRGF0''@;'; + put 'put ''ZUZvcm1hdDp7TFQ6Img6bW0gQSIsTFRTOiJoOm1tOnNzIEEiLEw6IkREL01NL1lZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0gWVlZWSBoOm1tIEEiLExMTEw6ImRkZGQsIEQgTU1NTSBZWVlZIGg6bW0gQSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbVG9kYXkgYXRdIExUIixuZXh0''@;'; + put 'put ''RGF5OiJbVG9tb3Jyb3cgYXRdIExUIixuZXh0V2VlazoiZGRkZCBbYXRdIExUIixsYXN0RGF5OiJbWWVzdGVyZGF5IGF0XSBMVCIsbGFzdFdlZWs6IltMYXN0XSBkZGRkIFthdF0gTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6ImluICVzIixwYXN0OiIlcyBhZ28iLHM6''@;'; + put 'put ''ImEgZmV3IHNlY29uZHMiLHNzOiIlZCBzZWNvbmRzIixtOiJhIG1pbnV0ZSIsbW06IiVkIG1pbnV0ZXMiLGg6ImFuIGhvdXIiLGhoOiIlZCBob3VycyIsZDoiYSBkYXkiLGRkOiIlZCBkYXlzIixNOiJhIG1vbnRoIixNTToiJWQgbW9udGhzIix5OiJhIHllYXIiLHl5OiIlZCB5ZWFycyJ9LGRh''@;'; + put 'put ''eU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn0oc3R8bmR8cmR8dGgpLyxvcmRpbmFsOmZ1bmN0aW9uKEUpe3ZhciBNZT1FJTEwO3JldHVybiBFKygxPT1+fihFJTEwMC8xMCk/InRoIjoxPT09TWU/InN0IjoyPT09TWU/Im5kIjozPT09TWU/InJkIjoidGgiKX0sd2Vlazp7ZG93OjAsZG95''@;'; + put 'put ''OjZ9fSl9KEwoMTU0MzkpKX0sMjEyNDg6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7bWUuZGVmaW5lTG9jYWxlKCJlbi1ueiIse21vbnRoczoiSmFudWFyeV9GZWJydWFyeV9NYXJjaF9BcHJpbF9NYXlfSnVuZV9KdWx5X0F1Z3VzdF9TZXB0ZW1iZXJfT2N0''@;'; + put 'put ''b2Jlcl9Ob3ZlbWJlcl9EZWNlbWJlciIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiSmFuX0ZlYl9NYXJfQXByX01heV9KdW5fSnVsX0F1Z19TZXBfT2N0X05vdl9EZWMiLnNwbGl0KCJfIiksd2Vla2RheXM6IlN1bmRheV9Nb25kYXlfVHVlc2RheV9XZWRuZXNkYXlfVGh1cnNkYXlfRnJpZGF5''@;'; + put 'put ''X1NhdHVyZGF5Ii5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6IlN1bl9Nb25fVHVlX1dlZF9UaHVfRnJpX1NhdCIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiU3VfTW9fVHVfV2VfVGhfRnJfU2EiLnNwbGl0KCJfIiksbG9uZ0RhdGVGb3JtYXQ6e0xUOiJoOm1tIEEiLExUUzoiaDptbTpzcyBB''@;'; + put 'put ''IixMOiJERC9NTS9ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVkgaDptbSBBIixMTExMOiJkZGRkLCBEIE1NTU0gWVlZWSBoOm1tIEEifSxjYWxlbmRhcjp7c2FtZURheToiW1RvZGF5IGF0XSBMVCIsbmV4dERheToiW1RvbW9ycm93IGF0XSBMVCIsbmV4dFdlZWs6ImRk''@;'; + put 'put ''ZGQgW2F0XSBMVCIsbGFzdERheToiW1llc3RlcmRheSBhdF0gTFQiLGxhc3RXZWVrOiJbTGFzdF0gZGRkZCBbYXRdIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJpbiAlcyIscGFzdDoiJXMgYWdvIixzOiJhIGZldyBzZWNvbmRzIixzczoiJWQgc2Vjb25kcyIsbToi''@;'; + put 'put ''YSBtaW51dGUiLG1tOiIlZCBtaW51dGVzIixoOiJhbiBob3VyIixoaDoiJWQgaG91cnMiLGQ6ImEgZGF5IixkZDoiJWQgZGF5cyIsTToiYSBtb250aCIsTU06IiVkIG1vbnRocyIseToiYSB5ZWFyIix5eToiJWQgeWVhcnMifSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9KHN0fG5k''@;'; + put 'put ''fHJkfHRoKS8sb3JkaW5hbDpmdW5jdGlvbihFKXt2YXIgTWU9RSUxMDtyZXR1cm4gRSsoMT09fn4oRSUxMDAvMTApPyJ0aCI6MT09PU1lPyJzdCI6Mj09PU1lPyJuZCI6Mz09PU1lPyJyZCI6InRoIil9LHdlZWs6e2RvdzoxLGRveTo0fX0pfShMKDE1NDM5KSl9LDEzNzY3OmZ1bmN0aW9uKFhl''@;'; + put 'put ''LEplLEwpeyFmdW5jdGlvbihtZSl7InVzZSBzdHJpY3QiO21lLmRlZmluZUxvY2FsZSgiZW4tc2ciLHttb250aHM6IkphbnVhcnlfRmVicnVhcnlfTWFyY2hfQXByaWxfTWF5X0p1bmVfSnVseV9BdWd1c3RfU2VwdGVtYmVyX09jdG9iZXJfTm92ZW1iZXJfRGVjZW1iZXIiLnNwbGl0KCJfIiks''@;'; + put 'put ''bW9udGhzU2hvcnQ6Ikphbl9GZWJfTWFyX0Fwcl9NYXlfSnVuX0p1bF9BdWdfU2VwX09jdF9Ob3ZfRGVjIi5zcGxpdCgiXyIpLHdlZWtkYXlzOiJTdW5kYXlfTW9uZGF5X1R1ZXNkYXlfV2VkbmVzZGF5X1RodXJzZGF5X0ZyaWRheV9TYXR1cmRheSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0''@;'; + put 'put ''OiJTdW5fTW9uX1R1ZV9XZWRfVGh1X0ZyaV9TYXQiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46IlN1X01vX1R1X1dlX1RoX0ZyX1NhIi5zcGxpdCgiXyIpLGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IkREL01NL1lZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExM''@;'; + put 'put ''OiJEIE1NTU0gWVlZWSBISDptbSIsTExMTDoiZGRkZCwgRCBNTU1NIFlZWVkgSEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW1RvZGF5IGF0XSBMVCIsbmV4dERheToiW1RvbW9ycm93IGF0XSBMVCIsbmV4dFdlZWs6ImRkZGQgW2F0XSBMVCIsbGFzdERheToiW1llc3RlcmRheSBhdF0gTFQi''@;'; + put 'put ''LGxhc3RXZWVrOiJbTGFzdF0gZGRkZCBbYXRdIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJpbiAlcyIscGFzdDoiJXMgYWdvIixzOiJhIGZldyBzZWNvbmRzIixzczoiJWQgc2Vjb25kcyIsbToiYSBtaW51dGUiLG1tOiIlZCBtaW51dGVzIixoOiJhbiBob3VyIixo''@;'; + put 'put ''aDoiJWQgaG91cnMiLGQ6ImEgZGF5IixkZDoiJWQgZGF5cyIsTToiYSBtb250aCIsTU06IiVkIG1vbnRocyIseToiYSB5ZWFyIix5eToiJWQgeWVhcnMifSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9KHN0fG5kfHJkfHRoKS8sb3JkaW5hbDpmdW5jdGlvbihFKXt2YXIgTWU9RSUx''@;'; + put 'put ''MDtyZXR1cm4gRSsoMT09fn4oRSUxMDAvMTApPyJ0aCI6MT09PU1lPyJzdCI6Mj09PU1lPyJuZCI6Mz09PU1lPyJyZCI6InRoIil9LHdlZWs6e2RvdzoxLGRveTo0fX0pfShMKDE1NDM5KSl9LDg0NTMwOmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlvbihtZSl7InVzZSBzdHJpY3QiO21lLmRl''@;'; + put 'put ''ZmluZUxvY2FsZSgiZW8iLHttb250aHM6ImphbnVhcm9fZmVicnVhcm9fbWFydG9fYXByaWxvX21ham9fanVuaW9fanVsaW9fYVx1MDE2ZGd1c3RvX3NlcHRlbWJyb19va3RvYnJvX25vdmVtYnJvX2RlY2VtYnJvIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJqYW5fZmViX21hcnRfYXByX21h''@;'; + put 'put ''al9qdW5fanVsX2FcdTAxNmRnX3NlcHRfb2t0X25vdl9kZWMiLnNwbGl0KCJfIiksd2Vla2RheXM6ImRpbWFuXHUwMTA5b19sdW5kb19tYXJkb19tZXJrcmVkb19cdTAxMzVhXHUwMTZkZG9fdmVuZHJlZG9fc2FiYXRvIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6ImRpbV9sdW5fbWFyZF9t''@;'; + put 'put ''ZXJrX1x1MDEzNWFcdTAxNmRfdmVuX3NhYiIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiZGlfbHVfbWFfbWVfXHUwMTM1YV92ZV9zYSIuc3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJZWVlZLU1NLUREIixMTDoiW2xhXSBEWy1hbiBkZV0g''@;'; + put 'put ''TU1NTSwgWVlZWSIsTExMOiJbbGFdIERbLWFuIGRlXSBNTU1NLCBZWVlZIEhIOm1tIixMTExMOiJkZGRkW25dLCBbbGFdIERbLWFuIGRlXSBNTU1NLCBZWVlZIEhIOm1tIixsbGxsOiJkZGQsIFtsYV0gRFstYW4gZGVdIE1NTSwgWVlZWSBISDptbSJ9LG1lcmlkaWVtUGFyc2U6L1thcF1cLnRc''@;'; + put 'put ''Lm0vaSxpc1BNOmZ1bmN0aW9uKEUpe3JldHVybiJwIj09PUUuY2hhckF0KDApLnRvTG93ZXJDYXNlKCl9LG1lcmlkaWVtOmZ1bmN0aW9uKEUsTWUsVSl7cmV0dXJuIEU+MTE/VT8icC50Lm0uIjoiUC5ULk0uIjpVPyJhLnQubS4iOiJBLlQuTS4ifSxjYWxlbmRhcjp7c2FtZURheToiW0hvZGlh''@;'; + put 'put ''XHUwMTZkIGplXSBMVCIsbmV4dERheToiW01vcmdhXHUwMTZkIGplXSBMVCIsbmV4dFdlZWs6ImRkZGRbbiBqZV0gTFQiLGxhc3REYXk6IltIaWVyYVx1MDE2ZCBqZV0gTFQiLGxhc3RXZWVrOiJbcGFzaW50YW5dIGRkZGRbbiBqZV0gTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntm''@;'; + put 'put ''dXR1cmU6InBvc3QgJXMiLHBhc3Q6ImFudGFcdTAxNmQgJXMiLHM6ImtlbGthaiBzZWt1bmRvaiIsc3M6IiVkIHNla3VuZG9qIixtOiJ1bnUgbWludXRvIixtbToiJWQgbWludXRvaiIsaDoidW51IGhvcm8iLGhoOiIlZCBob3JvaiIsZDoidW51IHRhZ28iLGRkOiIlZCB0YWdvaiIsTToidW51''@;'; + put 'put ''IG1vbmF0byIsTU06IiVkIG1vbmF0b2oiLHk6InVudSBqYXJvIix5eToiJWQgamFyb2oifSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9YS8sb3JkaW5hbDoiJWRhIix3ZWVrOntkb3c6MSxkb3k6N319KX0oTCgxNTQzOSkpfSwxODk0NDpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rp''@;'; + put 'put ''b24obWUpeyJ1c2Ugc3RyaWN0Ijt2YXIgQj0iZW5lLl9mZWIuX21hci5fYWJyLl9tYXkuX2p1bi5fanVsLl9hZ28uX3NlcC5fb2N0Ll9ub3YuX2RpYy4iLnNwbGl0KCJfIiksRT0iZW5lX2ZlYl9tYXJfYWJyX21heV9qdW5fanVsX2Fnb19zZXBfb2N0X25vdl9kaWMiLnNwbGl0KCJfIiksTWU9''@;'; + put 'put ''Wy9eZW5lL2ksL15mZWIvaSwvXm1hci9pLC9eYWJyL2ksL15tYXkvaSwvXmp1bi9pLC9eanVsL2ksL15hZ28vaSwvXnNlcC9pLC9eb2N0L2ksL15ub3YvaSwvXmRpYy9pXSxVPS9eKGVuZXJvfGZlYnJlcm98bWFyem98YWJyaWx8bWF5b3xqdW5pb3xqdWxpb3xhZ29zdG98c2VwdGllbWJyZXxv''@;'; + put 'put ''Y3R1YnJlfG5vdmllbWJyZXxkaWNpZW1icmV8ZW5lXC4/fGZlYlwuP3xtYXJcLj98YWJyXC4/fG1heVwuP3xqdW5cLj98anVsXC4/fGFnb1wuP3xzZXBcLj98b2N0XC4/fG5vdlwuP3xkaWNcLj8pL2k7bWUuZGVmaW5lTG9jYWxlKCJlcy1kbyIse21vbnRoczoiZW5lcm9fZmVicmVyb19tYXJ6''@;'; + put 'put ''b19hYnJpbF9tYXlvX2p1bmlvX2p1bGlvX2Fnb3N0b19zZXB0aWVtYnJlX29jdHVicmVfbm92aWVtYnJlX2RpY2llbWJyZSIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDpmdW5jdGlvbihaLGllKXtyZXR1cm4gWj8vLU1NTS0vLnRlc3QoaWUpP0VbWi5tb250aCgpXTpCW1oubW9udGgoKV06Qn0s''@;'; + put 'put ''bW9udGhzUmVnZXg6VSxtb250aHNTaG9ydFJlZ2V4OlUsbW9udGhzU3RyaWN0UmVnZXg6L14oZW5lcm98ZmVicmVyb3xtYXJ6b3xhYnJpbHxtYXlvfGp1bmlvfGp1bGlvfGFnb3N0b3xzZXB0aWVtYnJlfG9jdHVicmV8bm92aWVtYnJlfGRpY2llbWJyZSkvaSxtb250aHNTaG9ydFN0cmljdFJl''@;'; + put 'put ''Z2V4Oi9eKGVuZVwuP3xmZWJcLj98bWFyXC4/fGFiclwuP3xtYXlcLj98anVuXC4/fGp1bFwuP3xhZ29cLj98c2VwXC4/fG9jdFwuP3xub3ZcLj98ZGljXC4/KS9pLG1vbnRoc1BhcnNlOk1lLGxvbmdNb250aHNQYXJzZTpNZSxzaG9ydE1vbnRoc1BhcnNlOk1lLHdlZWtkYXlzOiJkb21pbmdv''@;'; + put 'put ''X2x1bmVzX21hcnRlc19taVx4ZTlyY29sZXNfanVldmVzX3ZpZXJuZXNfc1x4ZTFiYWRvIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6ImRvbS5fbHVuLl9tYXIuX21pXHhlOS5fanVlLl92aWUuX3NceGUxYi4iLnNwbGl0KCJfIiksd2Vla2RheXNNaW46ImRvX2x1X21hX21pX2p1X3ZpX3Nc''@;'; + put 'put ''eGUxIi5zcGxpdCgiXyIpLHdlZWtkYXlzUGFyc2VFeGFjdDohMCxsb25nRGF0ZUZvcm1hdDp7TFQ6Img6bW0gQSIsTFRTOiJoOm1tOnNzIEEiLEw6IkREL01NL1lZWVkiLExMOiJEIFtkZV0gTU1NTSBbZGVdIFlZWVkiLExMTDoiRCBbZGVdIE1NTU0gW2RlXSBZWVlZIGg6bW0gQSIsTExMTDoi''@;'; + put 'put ''ZGRkZCwgRCBbZGVdIE1NTU0gW2RlXSBZWVlZIGg6bW0gQSJ9LGNhbGVuZGFyOntzYW1lRGF5OmZ1bmN0aW9uKCl7cmV0dXJuIltob3kgYSBsYSIrKDEhPT10aGlzLmhvdXJzKCk/InMiOiIiKSsiXSBMVCJ9LG5leHREYXk6ZnVuY3Rpb24oKXtyZXR1cm4iW21hXHhmMWFuYSBhIGxhIisoMSE9''@;'; + put 'put ''PXRoaXMuaG91cnMoKT8icyI6IiIpKyJdIExUIn0sbmV4dFdlZWs6ZnVuY3Rpb24oKXtyZXR1cm4iZGRkZCBbYSBsYSIrKDEhPT10aGlzLmhvdXJzKCk/InMiOiIiKSsiXSBMVCJ9LGxhc3REYXk6ZnVuY3Rpb24oKXtyZXR1cm4iW2F5ZXIgYSBsYSIrKDEhPT10aGlzLmhvdXJzKCk/InMiOiIi''@;'; + put 'put ''KSsiXSBMVCJ9LGxhc3RXZWVrOmZ1bmN0aW9uKCl7cmV0dXJuIltlbF0gZGRkZCBbcGFzYWRvIGEgbGEiKygxIT09dGhpcy5ob3VycygpPyJzIjoiIikrIl0gTFQifSxzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJlbiAlcyIscGFzdDoiaGFjZSAlcyIsczoidW5vcyBzZWd1''@;'; + put 'put ''bmRvcyIsc3M6IiVkIHNlZ3VuZG9zIixtOiJ1biBtaW51dG8iLG1tOiIlZCBtaW51dG9zIixoOiJ1bmEgaG9yYSIsaGg6IiVkIGhvcmFzIixkOiJ1biBkXHhlZGEiLGRkOiIlZCBkXHhlZGFzIix3OiJ1bmEgc2VtYW5hIix3dzoiJWQgc2VtYW5hcyIsTToidW4gbWVzIixNTToiJWQgbWVzZXMi''@;'; + put 'put ''LHk6InVuIGFceGYxbyIseXk6IiVkIGFceGYxb3MifSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9XHhiYS8sb3JkaW5hbDoiJWRceGJhIix3ZWVrOntkb3c6MSxkb3k6NH19KX0oTCgxNTQzOSkpfSwyOTExNjpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3Ry''@;'; + put 'put ''aWN0Ijt2YXIgQj0iZW5lLl9mZWIuX21hci5fYWJyLl9tYXkuX2p1bi5fanVsLl9hZ28uX3NlcC5fb2N0Ll9ub3YuX2RpYy4iLnNwbGl0KCJfIiksRT0iZW5lX2ZlYl9tYXJfYWJyX21heV9qdW5fanVsX2Fnb19zZXBfb2N0X25vdl9kaWMiLnNwbGl0KCJfIiksTWU9Wy9eZW5lL2ksL15mZWIv''@;'; + put 'put ''aSwvXm1hci9pLC9eYWJyL2ksL15tYXkvaSwvXmp1bi9pLC9eanVsL2ksL15hZ28vaSwvXnNlcC9pLC9eb2N0L2ksL15ub3YvaSwvXmRpYy9pXSxVPS9eKGVuZXJvfGZlYnJlcm98bWFyem98YWJyaWx8bWF5b3xqdW5pb3xqdWxpb3xhZ29zdG98c2VwdGllbWJyZXxvY3R1YnJlfG5vdmllbWJy''@;'; + put 'put ''ZXxkaWNpZW1icmV8ZW5lXC4/fGZlYlwuP3xtYXJcLj98YWJyXC4/fG1heVwuP3xqdW5cLj98anVsXC4/fGFnb1wuP3xzZXBcLj98b2N0XC4/fG5vdlwuP3xkaWNcLj8pL2k7bWUuZGVmaW5lTG9jYWxlKCJlcy1teCIse21vbnRoczoiZW5lcm9fZmVicmVyb19tYXJ6b19hYnJpbF9tYXlvX2p1''@;'; + put 'put ''bmlvX2p1bGlvX2Fnb3N0b19zZXB0aWVtYnJlX29jdHVicmVfbm92aWVtYnJlX2RpY2llbWJyZSIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDpmdW5jdGlvbihaLGllKXtyZXR1cm4gWj8vLU1NTS0vLnRlc3QoaWUpP0VbWi5tb250aCgpXTpCW1oubW9udGgoKV06Qn0sbW9udGhzUmVnZXg6VSxt''@;'; + put 'put ''b250aHNTaG9ydFJlZ2V4OlUsbW9udGhzU3RyaWN0UmVnZXg6L14oZW5lcm98ZmVicmVyb3xtYXJ6b3xhYnJpbHxtYXlvfGp1bmlvfGp1bGlvfGFnb3N0b3xzZXB0aWVtYnJlfG9jdHVicmV8bm92aWVtYnJlfGRpY2llbWJyZSkvaSxtb250aHNTaG9ydFN0cmljdFJlZ2V4Oi9eKGVuZVwuP3xm''@;'; + put 'put ''ZWJcLj98bWFyXC4/fGFiclwuP3xtYXlcLj98anVuXC4/fGp1bFwuP3xhZ29cLj98c2VwXC4/fG9jdFwuP3xub3ZcLj98ZGljXC4/KS9pLG1vbnRoc1BhcnNlOk1lLGxvbmdNb250aHNQYXJzZTpNZSxzaG9ydE1vbnRoc1BhcnNlOk1lLHdlZWtkYXlzOiJkb21pbmdvX2x1bmVzX21hcnRlc19t''@;'; + put 'put ''aVx4ZTlyY29sZXNfanVldmVzX3ZpZXJuZXNfc1x4ZTFiYWRvIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6ImRvbS5fbHVuLl9tYXIuX21pXHhlOS5fanVlLl92aWUuX3NceGUxYi4iLnNwbGl0KCJfIiksd2Vla2RheXNNaW46ImRvX2x1X21hX21pX2p1X3ZpX3NceGUxIi5zcGxpdCgiXyIp''@;'; + put 'put ''LHdlZWtkYXlzUGFyc2VFeGFjdDohMCxsb25nRGF0ZUZvcm1hdDp7TFQ6Ikg6bW0iLExUUzoiSDptbTpzcyIsTDoiREQvTU0vWVlZWSIsTEw6IkQgW2RlXSBNTU1NIFtkZV0gWVlZWSIsTExMOiJEIFtkZV0gTU1NTSBbZGVdIFlZWVkgSDptbSIsTExMTDoiZGRkZCwgRCBbZGVdIE1NTU0gW2Rl''@;'; + put 'put ''XSBZWVlZIEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheTpmdW5jdGlvbigpe3JldHVybiJbaG95IGEgbGEiKygxIT09dGhpcy5ob3VycygpPyJzIjoiIikrIl0gTFQifSxuZXh0RGF5OmZ1bmN0aW9uKCl7cmV0dXJuIlttYVx4ZjFhbmEgYSBsYSIrKDEhPT10aGlzLmhvdXJzKCk/InMiOiIiKSsi''@;'; + put 'put ''XSBMVCJ9LG5leHRXZWVrOmZ1bmN0aW9uKCl7cmV0dXJuImRkZGQgW2EgbGEiKygxIT09dGhpcy5ob3VycygpPyJzIjoiIikrIl0gTFQifSxsYXN0RGF5OmZ1bmN0aW9uKCl7cmV0dXJuIltheWVyIGEgbGEiKygxIT09dGhpcy5ob3VycygpPyJzIjoiIikrIl0gTFQifSxsYXN0V2VlazpmdW5j''@;'; + put 'put ''dGlvbigpe3JldHVybiJbZWxdIGRkZGQgW3Bhc2FkbyBhIGxhIisoMSE9PXRoaXMuaG91cnMoKT8icyI6IiIpKyJdIExUIn0sc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiZW4gJXMiLHBhc3Q6ImhhY2UgJXMiLHM6InVub3Mgc2VndW5kb3MiLHNzOiIlZCBzZWd1bmRvcyIs''@;'; + put 'put ''bToidW4gbWludXRvIixtbToiJWQgbWludXRvcyIsaDoidW5hIGhvcmEiLGhoOiIlZCBob3JhcyIsZDoidW4gZFx4ZWRhIixkZDoiJWQgZFx4ZWRhcyIsdzoidW5hIHNlbWFuYSIsd3c6IiVkIHNlbWFuYXMiLE06InVuIG1lcyIsTU06IiVkIG1lc2VzIix5OiJ1biBhXHhmMW8iLHl5OiIlZCBh''@;'; + put 'put ''XHhmMW9zIn0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfVx4YmEvLG9yZGluYWw6IiVkXHhiYSIsd2Vlazp7ZG93OjAsZG95OjR9LGludmFsaWREYXRlOiJGZWNoYSBpbnZceGUxbGlkYSJ9KX0oTCgxNTQzOSkpfSw4MzYwOTpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUp''@;'; + put 'put ''eyJ1c2Ugc3RyaWN0Ijt2YXIgQj0iZW5lLl9mZWIuX21hci5fYWJyLl9tYXkuX2p1bi5fanVsLl9hZ28uX3NlcC5fb2N0Ll9ub3YuX2RpYy4iLnNwbGl0KCJfIiksRT0iZW5lX2ZlYl9tYXJfYWJyX21heV9qdW5fanVsX2Fnb19zZXBfb2N0X25vdl9kaWMiLnNwbGl0KCJfIiksTWU9Wy9eZW5l''@;'; + put 'put ''L2ksL15mZWIvaSwvXm1hci9pLC9eYWJyL2ksL15tYXkvaSwvXmp1bi9pLC9eanVsL2ksL15hZ28vaSwvXnNlcC9pLC9eb2N0L2ksL15ub3YvaSwvXmRpYy9pXSxVPS9eKGVuZXJvfGZlYnJlcm98bWFyem98YWJyaWx8bWF5b3xqdW5pb3xqdWxpb3xhZ29zdG98c2VwdGllbWJyZXxvY3R1YnJl''@;'; + put 'put ''fG5vdmllbWJyZXxkaWNpZW1icmV8ZW5lXC4/fGZlYlwuP3xtYXJcLj98YWJyXC4/fG1heVwuP3xqdW5cLj98anVsXC4/fGFnb1wuP3xzZXBcLj98b2N0XC4/fG5vdlwuP3xkaWNcLj8pL2k7bWUuZGVmaW5lTG9jYWxlKCJlcy11cyIse21vbnRoczoiZW5lcm9fZmVicmVyb19tYXJ6b19hYnJp''@;'; + put 'put ''bF9tYXlvX2p1bmlvX2p1bGlvX2Fnb3N0b19zZXB0aWVtYnJlX29jdHVicmVfbm92aWVtYnJlX2RpY2llbWJyZSIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDpmdW5jdGlvbihaLGllKXtyZXR1cm4gWj8vLU1NTS0vLnRlc3QoaWUpP0VbWi5tb250aCgpXTpCW1oubW9udGgoKV06Qn0sbW9udGhz''@;'; + put 'put ''UmVnZXg6VSxtb250aHNTaG9ydFJlZ2V4OlUsbW9udGhzU3RyaWN0UmVnZXg6L14oZW5lcm98ZmVicmVyb3xtYXJ6b3xhYnJpbHxtYXlvfGp1bmlvfGp1bGlvfGFnb3N0b3xzZXB0aWVtYnJlfG9jdHVicmV8bm92aWVtYnJlfGRpY2llbWJyZSkvaSxtb250aHNTaG9ydFN0cmljdFJlZ2V4Oi9e''@;'; + put 'put ''KGVuZVwuP3xmZWJcLj98bWFyXC4/fGFiclwuP3xtYXlcLj98anVuXC4/fGp1bFwuP3xhZ29cLj98c2VwXC4/fG9jdFwuP3xub3ZcLj98ZGljXC4/KS9pLG1vbnRoc1BhcnNlOk1lLGxvbmdNb250aHNQYXJzZTpNZSxzaG9ydE1vbnRoc1BhcnNlOk1lLHdlZWtkYXlzOiJkb21pbmdvX2x1bmVz''@;'; + put 'put ''X21hcnRlc19taVx4ZTlyY29sZXNfanVldmVzX3ZpZXJuZXNfc1x4ZTFiYWRvIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6ImRvbS5fbHVuLl9tYXIuX21pXHhlOS5fanVlLl92aWUuX3NceGUxYi4iLnNwbGl0KCJfIiksd2Vla2RheXNNaW46ImRvX2x1X21hX21pX2p1X3ZpX3NceGUxIi5z''@;'; + put 'put ''cGxpdCgiXyIpLHdlZWtkYXlzUGFyc2VFeGFjdDohMCxsb25nRGF0ZUZvcm1hdDp7TFQ6Img6bW0gQSIsTFRTOiJoOm1tOnNzIEEiLEw6Ik1NL0REL1lZWVkiLExMOiJEIFtkZV0gTU1NTSBbZGVdIFlZWVkiLExMTDoiRCBbZGVdIE1NTU0gW2RlXSBZWVlZIGg6bW0gQSIsTExMTDoiZGRkZCwg''@;'; + put 'put ''RCBbZGVdIE1NTU0gW2RlXSBZWVlZIGg6bW0gQSJ9LGNhbGVuZGFyOntzYW1lRGF5OmZ1bmN0aW9uKCl7cmV0dXJuIltob3kgYSBsYSIrKDEhPT10aGlzLmhvdXJzKCk/InMiOiIiKSsiXSBMVCJ9LG5leHREYXk6ZnVuY3Rpb24oKXtyZXR1cm4iW21hXHhmMWFuYSBhIGxhIisoMSE9PXRoaXMu''@;'; + put 'put ''aG91cnMoKT8icyI6IiIpKyJdIExUIn0sbmV4dFdlZWs6ZnVuY3Rpb24oKXtyZXR1cm4iZGRkZCBbYSBsYSIrKDEhPT10aGlzLmhvdXJzKCk/InMiOiIiKSsiXSBMVCJ9LGxhc3REYXk6ZnVuY3Rpb24oKXtyZXR1cm4iW2F5ZXIgYSBsYSIrKDEhPT10aGlzLmhvdXJzKCk/InMiOiIiKSsiXSBM''@;'; + put 'put ''VCJ9LGxhc3RXZWVrOmZ1bmN0aW9uKCl7cmV0dXJuIltlbF0gZGRkZCBbcGFzYWRvIGEgbGEiKygxIT09dGhpcy5ob3VycygpPyJzIjoiIikrIl0gTFQifSxzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJlbiAlcyIscGFzdDoiaGFjZSAlcyIsczoidW5vcyBzZWd1bmRvcyIs''@;'; + put 'put ''c3M6IiVkIHNlZ3VuZG9zIixtOiJ1biBtaW51dG8iLG1tOiIlZCBtaW51dG9zIixoOiJ1bmEgaG9yYSIsaGg6IiVkIGhvcmFzIixkOiJ1biBkXHhlZGEiLGRkOiIlZCBkXHhlZGFzIix3OiJ1bmEgc2VtYW5hIix3dzoiJWQgc2VtYW5hcyIsTToidW4gbWVzIixNTToiJWQgbWVzZXMiLHk6InVu''@;'; + put 'put ''IGFceGYxbyIseXk6IiVkIGFceGYxb3MifSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9XHhiYS8sb3JkaW5hbDoiJWRceGJhIix3ZWVrOntkb3c6MCxkb3k6Nn19KX0oTCgxNTQzOSkpfSw4Njg2NjpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0Ijt2''@;'; + put 'put ''YXIgQj0iZW5lLl9mZWIuX21hci5fYWJyLl9tYXkuX2p1bi5fanVsLl9hZ28uX3NlcC5fb2N0Ll9ub3YuX2RpYy4iLnNwbGl0KCJfIiksRT0iZW5lX2ZlYl9tYXJfYWJyX21heV9qdW5fanVsX2Fnb19zZXBfb2N0X25vdl9kaWMiLnNwbGl0KCJfIiksTWU9Wy9eZW5lL2ksL15mZWIvaSwvXm1h''@;'; + put 'put ''ci9pLC9eYWJyL2ksL15tYXkvaSwvXmp1bi9pLC9eanVsL2ksL15hZ28vaSwvXnNlcC9pLC9eb2N0L2ksL15ub3YvaSwvXmRpYy9pXSxVPS9eKGVuZXJvfGZlYnJlcm98bWFyem98YWJyaWx8bWF5b3xqdW5pb3xqdWxpb3xhZ29zdG98c2VwdGllbWJyZXxvY3R1YnJlfG5vdmllbWJyZXxkaWNp''@;'; + put 'put ''ZW1icmV8ZW5lXC4/fGZlYlwuP3xtYXJcLj98YWJyXC4/fG1heVwuP3xqdW5cLj98anVsXC4/fGFnb1wuP3xzZXBcLj98b2N0XC4/fG5vdlwuP3xkaWNcLj8pL2k7bWUuZGVmaW5lTG9jYWxlKCJlcyIse21vbnRoczoiZW5lcm9fZmVicmVyb19tYXJ6b19hYnJpbF9tYXlvX2p1bmlvX2p1bGlv''@;'; + put 'put ''X2Fnb3N0b19zZXB0aWVtYnJlX29jdHVicmVfbm92aWVtYnJlX2RpY2llbWJyZSIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDpmdW5jdGlvbihaLGllKXtyZXR1cm4gWj8vLU1NTS0vLnRlc3QoaWUpP0VbWi5tb250aCgpXTpCW1oubW9udGgoKV06Qn0sbW9udGhzUmVnZXg6VSxtb250aHNTaG9y''@;'; + put 'put ''dFJlZ2V4OlUsbW9udGhzU3RyaWN0UmVnZXg6L14oZW5lcm98ZmVicmVyb3xtYXJ6b3xhYnJpbHxtYXlvfGp1bmlvfGp1bGlvfGFnb3N0b3xzZXB0aWVtYnJlfG9jdHVicmV8bm92aWVtYnJlfGRpY2llbWJyZSkvaSxtb250aHNTaG9ydFN0cmljdFJlZ2V4Oi9eKGVuZVwuP3xmZWJcLj98bWFy''@;'; + put 'put ''XC4/fGFiclwuP3xtYXlcLj98anVuXC4/fGp1bFwuP3xhZ29cLj98c2VwXC4/fG9jdFwuP3xub3ZcLj98ZGljXC4/KS9pLG1vbnRoc1BhcnNlOk1lLGxvbmdNb250aHNQYXJzZTpNZSxzaG9ydE1vbnRoc1BhcnNlOk1lLHdlZWtkYXlzOiJkb21pbmdvX2x1bmVzX21hcnRlc19taVx4ZTlyY29s''@;'; + put 'put ''ZXNfanVldmVzX3ZpZXJuZXNfc1x4ZTFiYWRvIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6ImRvbS5fbHVuLl9tYXIuX21pXHhlOS5fanVlLl92aWUuX3NceGUxYi4iLnNwbGl0KCJfIiksd2Vla2RheXNNaW46ImRvX2x1X21hX21pX2p1X3ZpX3NceGUxIi5zcGxpdCgiXyIpLHdlZWtkYXlz''@;'; + put 'put ''UGFyc2VFeGFjdDohMCxsb25nRGF0ZUZvcm1hdDp7TFQ6Ikg6bW0iLExUUzoiSDptbTpzcyIsTDoiREQvTU0vWVlZWSIsTEw6IkQgW2RlXSBNTU1NIFtkZV0gWVlZWSIsTExMOiJEIFtkZV0gTU1NTSBbZGVdIFlZWVkgSDptbSIsTExMTDoiZGRkZCwgRCBbZGVdIE1NTU0gW2RlXSBZWVlZIEg6''@;'; + put 'put ''bW0ifSxjYWxlbmRhcjp7c2FtZURheTpmdW5jdGlvbigpe3JldHVybiJbaG95IGEgbGEiKygxIT09dGhpcy5ob3VycygpPyJzIjoiIikrIl0gTFQifSxuZXh0RGF5OmZ1bmN0aW9uKCl7cmV0dXJuIlttYVx4ZjFhbmEgYSBsYSIrKDEhPT10aGlzLmhvdXJzKCk/InMiOiIiKSsiXSBMVCJ9LG5l''@;'; + put 'put ''eHRXZWVrOmZ1bmN0aW9uKCl7cmV0dXJuImRkZGQgW2EgbGEiKygxIT09dGhpcy5ob3VycygpPyJzIjoiIikrIl0gTFQifSxsYXN0RGF5OmZ1bmN0aW9uKCl7cmV0dXJuIltheWVyIGEgbGEiKygxIT09dGhpcy5ob3VycygpPyJzIjoiIikrIl0gTFQifSxsYXN0V2VlazpmdW5jdGlvbigpe3Jl''@;'; + put 'put ''dHVybiJbZWxdIGRkZGQgW3Bhc2FkbyBhIGxhIisoMSE9PXRoaXMuaG91cnMoKT8icyI6IiIpKyJdIExUIn0sc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiZW4gJXMiLHBhc3Q6ImhhY2UgJXMiLHM6InVub3Mgc2VndW5kb3MiLHNzOiIlZCBzZWd1bmRvcyIsbToidW4gbWlu''@;'; + put 'put ''dXRvIixtbToiJWQgbWludXRvcyIsaDoidW5hIGhvcmEiLGhoOiIlZCBob3JhcyIsZDoidW4gZFx4ZWRhIixkZDoiJWQgZFx4ZWRhcyIsdzoidW5hIHNlbWFuYSIsd3c6IiVkIHNlbWFuYXMiLE06InVuIG1lcyIsTU06IiVkIG1lc2VzIix5OiJ1biBhXHhmMW8iLHl5OiIlZCBhXHhmMW9zIn0s''@;'; + put 'put ''ZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfVx4YmEvLG9yZGluYWw6IiVkXHhiYSIsd2Vlazp7ZG93OjEsZG95OjR9LGludmFsaWREYXRlOiJGZWNoYSBpbnZceGUxbGlkYSJ9KX0oTCgxNTQzOSkpfSw5NjcyNTpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3Ry''@;'; + put 'put ''aWN0IjtmdW5jdGlvbiBCKE1lLFUsUSxaKXt2YXIgaWU9e3M6WyJtXHhmNW5lIHNla3VuZGkiLCJtXHhmNW5pIHNla3VuZCIsInBhYXIgc2VrdW5kaXQiXSxzczpbTWUrInNla3VuZGkiLE1lKyJzZWt1bmRpdCJdLG06WyJceGZjaGUgbWludXRpIiwiXHhmY2tzIG1pbnV0Il0sbW06W01lKyIg''@;'; + put 'put ''bWludXRpIixNZSsiIG1pbnV0aXQiXSxoOlsiXHhmY2hlIHR1bm5pIiwidHVuZCBhZWdhIiwiXHhmY2tzIHR1bmQiXSxoaDpbTWUrIiB0dW5uaSIsTWUrIiB0dW5kaSJdLGQ6WyJceGZjaGUgcFx4ZTRldmEiLCJceGZja3MgcFx4ZTRldiJdLE06WyJrdXUgYWphIiwia3V1IGFlZ2EiLCJceGZj''@;'; + put 'put ''a3Mga3V1Il0sTU06W01lKyIga3V1IixNZSsiIGt1dWQiXSx5OlsiXHhmY2hlIGFhc3RhIiwiYWFzdGEiLCJceGZja3MgYWFzdGEiXSx5eTpbTWUrIiBhYXN0YSIsTWUrIiBhYXN0YXQiXX07cmV0dXJuIFU/aWVbUV1bMl0/aWVbUV1bMl06aWVbUV1bMV06Wj9pZVtRXVswXTppZVtRXVsxXX1t''@;'; + put 'put ''ZS5kZWZpbmVMb2NhbGUoImV0Iix7bW9udGhzOiJqYWFudWFyX3ZlZWJydWFyX21ceGU0cnRzX2FwcmlsbF9tYWlfanV1bmlfanV1bGlfYXVndXN0X3NlcHRlbWJlcl9va3Rvb2Jlcl9ub3ZlbWJlcl9kZXRzZW1iZXIiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6ImphYW5fdmVlYnJfbVx4ZTRy''@;'; + put 'put ''dHNfYXByX21haV9qdXVuaV9qdXVsaV9hdWdfc2VwdF9va3Rfbm92X2RldHMiLnNwbGl0KCJfIiksd2Vla2RheXM6InBceGZjaGFwXHhlNGV2X2VzbWFzcFx4ZTRldl90ZWlzaXBceGU0ZXZfa29sbWFwXHhlNGV2X25lbGphcFx4ZTRldl9yZWVkZV9sYXVwXHhlNGV2Ii5zcGxpdCgiXyIpLHdl''@;'; + put 'put ''ZWtkYXlzU2hvcnQ6IlBfRV9UX0tfTl9SX0wiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46IlBfRV9UX0tfTl9SX0wiLnNwbGl0KCJfIiksbG9uZ0RhdGVGb3JtYXQ6e0xUOiJIOm1tIixMVFM6Ikg6bW06c3MiLEw6IkRELk1NLllZWVkiLExMOiJELiBNTU1NIFlZWVkiLExMTDoiRC4gTU1NTSBZ''@;'; + put 'put ''WVlZIEg6bW0iLExMTEw6ImRkZGQsIEQuIE1NTU0gWVlZWSBIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltUXHhlNG5hLF0gTFQiLG5leHREYXk6IltIb21tZSxdIExUIixuZXh0V2VlazoiW0pceGU0cmdtaW5lXSBkZGRkIExUIixsYXN0RGF5OiJbRWlsZSxdIExUIixsYXN0V2VlazoiW0Vl''@;'; + put 'put ''bG1pbmVdIGRkZGQgTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6IiVzIHBceGU0cmFzdCIscGFzdDoiJXMgdGFnYXNpIixzOkIsc3M6QixtOkIsbW06QixoOkIsaGg6QixkOkIsZGQ6IiVkIHBceGU0ZXZhIixNOkIsTU06Qix5OkIseXk6Qn0sZGF5T2ZNb250aE9yZGlu''@;'; + put 'put ''YWxQYXJzZTovXGR7MSwyfVwuLyxvcmRpbmFsOiIlZC4iLHdlZWs6e2RvdzoxLGRveTo0fX0pfShMKDE1NDM5KSl9LDY3OTMxOmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlvbihtZSl7InVzZSBzdHJpY3QiO21lLmRlZmluZUxvY2FsZSgiZXUiLHttb250aHM6InVydGFycmlsYV9vdHNhaWxh''@;'; + put 'put ''X21hcnR4b2FfYXBpcmlsYV9tYWlhdHphX2VrYWluYV91enRhaWxhX2FidXp0dWFfaXJhaWxhX3VycmlhX2F6YXJvYV9hYmVuZHVhIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJ1cnQuX290cy5fbWFyLl9hcGkuX21haS5fZWthLl91enQuX2FidS5faXJhLl91cnIuX2F6YS5fYWJlLiIuc3Bs''@;'; + put 'put ''aXQoIl8iKSxtb250aHNQYXJzZUV4YWN0OiEwLHdlZWtkYXlzOiJpZ2FuZGVhX2FzdGVsZWhlbmFfYXN0ZWFydGVhX2FzdGVhemtlbmFfb3N0ZWd1bmFfb3N0aXJhbGFfbGFydW5iYXRhIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6ImlnLl9hbC5fYXIuX2F6Ll9vZy5fb2wuX2xyLiIuc3Bs''@;'; + put 'put ''aXQoIl8iKSx3ZWVrZGF5c01pbjoiaWdfYWxfYXJfYXpfb2dfb2xfbHIiLnNwbGl0KCJfIiksd2Vla2RheXNQYXJzZUV4YWN0OiEwLGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IllZWVktTU0tREQiLExMOiJZWVlZW2tvXSBNTU1NW3Jlbl0gRFthXSIsTExM''@;'; + put 'put ''OiJZWVlZW2tvXSBNTU1NW3Jlbl0gRFthXSBISDptbSIsTExMTDoiZGRkZCwgWVlZWVtrb10gTU1NTVtyZW5dIERbYV0gSEg6bW0iLGw6IllZWVktTS1EIixsbDoiWVlZWVtrb10gTU1NIERbYV0iLGxsbDoiWVlZWVtrb10gTU1NIERbYV0gSEg6bW0iLGxsbGw6ImRkZCwgWVlZWVtrb10gTU1N''@;'; + put 'put ''IERbYV0gSEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW2dhdXJdIExUW2V0YW5dIixuZXh0RGF5OiJbYmloYXJdIExUW2V0YW5dIixuZXh0V2VlazoiZGRkZCBMVFtldGFuXSIsbGFzdERheToiW2F0em9dIExUW2V0YW5dIixsYXN0V2VlazoiW2F1cnJla29dIGRkZGQgTFRbZXRhbl0iLHNh''@;'; + put 'put ''bWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6IiVzIGJhcnJ1IixwYXN0OiJkdWVsYSAlcyIsczoic2VndW5kbyBiYXR6dWsiLHNzOiIlZCBzZWd1bmRvIixtOiJtaW51dHUgYmF0IixtbToiJWQgbWludXR1IixoOiJvcmR1IGJhdCIsaGg6IiVkIG9yZHUiLGQ6ImVndW4gYmF0Iixk''@;'; + put 'put ''ZDoiJWQgZWd1biIsTToiaGlsYWJldGUgYmF0IixNTToiJWQgaGlsYWJldGUiLHk6InVydGUgYmF0Iix5eToiJWQgdXJ0ZSJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn1cLi8sb3JkaW5hbDoiJWQuIix3ZWVrOntkb3c6MSxkb3k6N319KX0oTCgxNTQzOSkpfSw1NjQxNzpmdW5j''@;'; + put 'put ''dGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0Ijt2YXIgQj17MToiXHUwNmYxIiwyOiJcdTA2ZjIiLDM6Ilx1MDZmMyIsNDoiXHUwNmY0Iiw1OiJcdTA2ZjUiLDY6Ilx1MDZmNiIsNzoiXHUwNmY3Iiw4OiJcdTA2ZjgiLDk6Ilx1MDZmOSIsMDoiXHUwNmYwIn0sRT17Ilx1''@;'; + put 'put ''MDZmMSI6IjEiLCJcdTA2ZjIiOiIyIiwiXHUwNmYzIjoiMyIsIlx1MDZmNCI6IjQiLCJcdTA2ZjUiOiI1IiwiXHUwNmY2IjoiNiIsIlx1MDZmNyI6IjciLCJcdTA2ZjgiOiI4IiwiXHUwNmY5IjoiOSIsIlx1MDZmMCI6IjAifTttZS5kZWZpbmVMb2NhbGUoImZhIix7bW9udGhzOiJcdTA2OThc''@;'; + put 'put ''dTA2MjdcdTA2NDZcdTA2NDhcdTA2Y2NcdTA2NDdfXHUwNjQxXHUwNjQ4XHUwNjMxXHUwNmNjXHUwNjQ3X1x1MDY0NVx1MDYyN1x1MDYzMVx1MDYzM19cdTA2MjJcdTA2NDhcdTA2MzFcdTA2Y2NcdTA2NDRfXHUwNjQ1XHUwNjQ3X1x1MDY5OFx1MDY0OFx1MDYyNlx1MDY0Nl9cdTA2OThcdTA2''@;'; + put 'put ''NDhcdTA2MjZcdTA2Y2NcdTA2NDdfXHUwNjI3XHUwNjQ4XHUwNjJhX1x1MDYzM1x1MDY3ZVx1MDYyYVx1MDYyN1x1MDY0NVx1MDYyOFx1MDYzMV9cdTA2MjdcdTA2YTlcdTA2MmFcdTA2MjhcdTA2MzFfXHUwNjQ2XHUwNjQ4XHUwNjI3XHUwNjQ1XHUwNjI4XHUwNjMxX1x1MDYyZlx1MDYzM1x1''@;'; + put 'put ''MDYyN1x1MDY0NVx1MDYyOFx1MDYzMSIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiXHUwNjk4XHUwNjI3XHUwNjQ2XHUwNjQ4XHUwNmNjXHUwNjQ3X1x1MDY0MVx1MDY0OFx1MDYzMVx1MDZjY1x1MDY0N19cdTA2NDVcdTA2MjdcdTA2MzFcdTA2MzNfXHUwNjIyXHUwNjQ4XHUwNjMxXHUwNmNj''@;'; + put 'put ''XHUwNjQ0X1x1MDY0NVx1MDY0N19cdTA2OThcdTA2NDhcdTA2MjZcdTA2NDZfXHUwNjk4XHUwNjQ4XHUwNjI2XHUwNmNjXHUwNjQ3X1x1MDYyN1x1MDY0OFx1MDYyYV9cdTA2MzNcdTA2N2VcdTA2MmFcdTA2MjdcdTA2NDVcdTA2MjhcdTA2MzFfXHUwNjI3XHUwNmE5XHUwNjJhXHUwNjI4XHUw''@;'; + put 'put ''NjMxX1x1MDY0Nlx1MDY0OFx1MDYyN1x1MDY0NVx1MDYyOFx1MDYzMV9cdTA2MmZcdTA2MzNcdTA2MjdcdTA2NDVcdTA2MjhcdTA2MzEiLnNwbGl0KCJfIiksd2Vla2RheXM6Ilx1MDZjY1x1MDZhOVx1MjAwY1x1MDYzNFx1MDY0Nlx1MDYyOFx1MDY0N19cdTA2MmZcdTA2NDhcdTA2MzRcdTA2''@;'; + put 'put ''NDZcdTA2MjhcdTA2NDdfXHUwNjMzXHUwNjQ3XHUyMDBjXHUwNjM0XHUwNjQ2XHUwNjI4XHUwNjQ3X1x1MDY4Nlx1MDY0N1x1MDYyN1x1MDYzMVx1MDYzNFx1MDY0Nlx1MDYyOFx1MDY0N19cdTA2N2VcdTA2NDZcdTA2MmNcdTIwMGNcdTA2MzRcdTA2NDZcdTA2MjhcdTA2NDdfXHUwNjJjXHUw''@;'; + put 'put ''NjQ1XHUwNjM5XHUwNjQ3X1x1MDYzNFx1MDY0Nlx1MDYyOFx1MDY0NyIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJcdTA2Y2NcdTA2YTlcdTIwMGNcdTA2MzRcdTA2NDZcdTA2MjhcdTA2NDdfXHUwNjJmXHUwNjQ4XHUwNjM0XHUwNjQ2XHUwNjI4XHUwNjQ3X1x1MDYzM1x1MDY0N1x1MjAw''@;'; + put 'put ''Y1x1MDYzNFx1MDY0Nlx1MDYyOFx1MDY0N19cdTA2ODZcdTA2NDdcdTA2MjdcdTA2MzFcdTA2MzRcdTA2NDZcdTA2MjhcdTA2NDdfXHUwNjdlXHUwNjQ2XHUwNjJjXHUyMDBjXHUwNjM0XHUwNjQ2XHUwNjI4XHUwNjQ3X1x1MDYyY1x1MDY0NVx1MDYzOVx1MDY0N19cdTA2MzRcdTA2NDZcdTA2''@;'; + put 'put ''MjhcdTA2NDciLnNwbGl0KCJfIiksd2Vla2RheXNNaW46Ilx1MDZjY19cdTA2MmZfXHUwNjMzX1x1MDY4Nl9cdTA2N2VfXHUwNjJjX1x1MDYzNCIuc3BsaXQoIl8iKSx3ZWVrZGF5c1BhcnNlRXhhY3Q6ITAsbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoiREQv''@;'; + put 'put ''TU0vWVlZWSIsTEw6IkQgTU1NTSBZWVlZIixMTEw6IkQgTU1NTSBZWVlZIEhIOm1tIixMTExMOiJkZGRkLCBEIE1NTU0gWVlZWSBISDptbSJ9LG1lcmlkaWVtUGFyc2U6L1x1MDY0Mlx1MDYyOFx1MDY0NCBcdTA2MjdcdTA2MzIgXHUwNjM4XHUwNjQ3XHUwNjMxfFx1MDYyOFx1MDYzOVx1MDYy''@;'; + put 'put ''ZiBcdTA2MjdcdTA2MzIgXHUwNjM4XHUwNjQ3XHUwNjMxLyxpc1BNOmZ1bmN0aW9uKFUpe3JldHVybi9cdTA2MjhcdTA2MzlcdTA2MmYgXHUwNjI3XHUwNjMyIFx1MDYzOFx1MDY0N1x1MDYzMS8udGVzdChVKX0sbWVyaWRpZW06ZnVuY3Rpb24oVSxRLFope3JldHVybiBVPDEyPyJcdTA2NDJc''@;'; + put 'put ''dTA2MjhcdTA2NDQgXHUwNjI3XHUwNjMyIFx1MDYzOFx1MDY0N1x1MDYzMSI6Ilx1MDYyOFx1MDYzOVx1MDYyZiBcdTA2MjdcdTA2MzIgXHUwNjM4XHUwNjQ3XHUwNjMxIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltcdTA2MjdcdTA2NDVcdTA2MzFcdTA2NDhcdTA2MzIgXHUwNjMzXHUwNjI3XHUw''@;'; + put 'put ''NjM5XHUwNjJhXSBMVCIsbmV4dERheToiW1x1MDY0MVx1MDYzMVx1MDYyZlx1MDYyNyBcdTA2MzNcdTA2MjdcdTA2MzlcdTA2MmFdIExUIixuZXh0V2VlazoiZGRkZCBbXHUwNjMzXHUwNjI3XHUwNjM5XHUwNjJhXSBMVCIsbGFzdERheToiW1x1MDYyZlx1MDZjY1x1MDYzMVx1MDY0OFx1MDYz''@;'; + put 'put ''MiBcdTA2MzNcdTA2MjdcdTA2MzlcdTA2MmFdIExUIixsYXN0V2VlazoiZGRkZCBbXHUwNjdlXHUwNmNjXHUwNjM0XSBbXHUwNjMzXHUwNjI3XHUwNjM5XHUwNjJhXSBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiXHUwNjJmXHUwNjMxICVzIixwYXN0OiIlcyBcdTA2''@;'; + put 'put ''N2VcdTA2Y2NcdTA2MzQiLHM6Ilx1MDY4Nlx1MDY0Nlx1MDYyZiBcdTA2MmJcdTA2MjdcdTA2NDZcdTA2Y2NcdTA2NDciLHNzOiIlZCBcdTA2MmJcdTA2MjdcdTA2NDZcdTA2Y2NcdTA2NDciLG06Ilx1MDZjY1x1MDZhOSBcdTA2MmZcdTA2NDJcdTA2Y2NcdTA2NDJcdTA2NDciLG1tOiIlZCBc''@;'; + put 'put ''dTA2MmZcdTA2NDJcdTA2Y2NcdTA2NDJcdTA2NDciLGg6Ilx1MDZjY1x1MDZhOSBcdTA2MzNcdTA2MjdcdTA2MzlcdTA2MmEiLGhoOiIlZCBcdTA2MzNcdTA2MjdcdTA2MzlcdTA2MmEiLGQ6Ilx1MDZjY1x1MDZhOSBcdTA2MzFcdTA2NDhcdTA2MzIiLGRkOiIlZCBcdTA2MzFcdTA2NDhcdTA2''@;'; + put 'put ''MzIiLE06Ilx1MDZjY1x1MDZhOSBcdTA2NDVcdTA2MjdcdTA2NDciLE1NOiIlZCBcdTA2NDVcdTA2MjdcdTA2NDciLHk6Ilx1MDZjY1x1MDZhOSBcdTA2MzNcdTA2MjdcdTA2NDQiLHl5OiIlZCBcdTA2MzNcdTA2MjdcdTA2NDQifSxwcmVwYXJzZTpmdW5jdGlvbihVKXtyZXR1cm4gVS5yZXBs''@;'; + put 'put ''YWNlKC9bXHUwNmYwLVx1MDZmOV0vZyxmdW5jdGlvbihRKXtyZXR1cm4gRVtRXX0pLnJlcGxhY2UoL1x1MDYwYy9nLCIsIil9LHBvc3Rmb3JtYXQ6ZnVuY3Rpb24oVSl7cmV0dXJuIFUucmVwbGFjZSgvXGQvZyxmdW5jdGlvbihRKXtyZXR1cm4gQltRXX0pLnJlcGxhY2UoLywvZywiXHUwNjBj''@;'; + put 'put ''Iil9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn1cdTA2NDUvLG9yZGluYWw6IiVkXHUwNjQ1Iix3ZWVrOntkb3c6Nixkb3k6MTJ9fSl9KEwoMTU0MzkpKX0sMjA5NDQ6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7dmFyIEI9Im5vbGxhIHlrc2kg''@;'; + put 'put ''a2Frc2kga29sbWUgbmVsalx4ZTQgdmlpc2kga3V1c2kgc2VpdHNlbVx4ZTRuIGthaGRla3NhbiB5aGRla3NceGU0biIuc3BsaXQoIiAiKSxFPVsibm9sbGEiLCJ5aGRlbiIsImthaGRlbiIsImtvbG1lbiIsIm5lbGpceGU0biIsInZpaWRlbiIsImt1dWRlbiIsQls3XSxCWzhdLEJbOV1dO2Z1''@;'; + put 'put ''bmN0aW9uIE1lKFosaWUsYWUsWSl7dmFyIFc9IiI7c3dpdGNoKGFlKXtjYXNlInMiOnJldHVybiBZPyJtdXV0YW1hbiBzZWt1bm5pbiI6Im11dXRhbWEgc2VrdW50aSI7Y2FzZSJzcyI6Vz1ZPyJzZWt1bm5pbiI6InNla3VudGlhIjticmVhaztjYXNlIm0iOnJldHVybiBZPyJtaW51dXRpbiI6''@;'; + put 'put ''Im1pbnV1dHRpIjtjYXNlIm1tIjpXPVk/Im1pbnV1dGluIjoibWludXV0dGlhIjticmVhaztjYXNlImgiOnJldHVybiBZPyJ0dW5uaW4iOiJ0dW50aSI7Y2FzZSJoaCI6Vz1ZPyJ0dW5uaW4iOiJ0dW50aWEiO2JyZWFrO2Nhc2UiZCI6cmV0dXJuIFk/InBceGU0aXZceGU0biI6InBceGU0aXZc''@;'; + put 'put ''eGU0IjtjYXNlImRkIjpXPVk/InBceGU0aXZceGU0biI6InBceGU0aXZceGU0XHhlNCI7YnJlYWs7Y2FzZSJNIjpyZXR1cm4gWT8ia3V1a2F1ZGVuIjoia3V1a2F1c2kiO2Nhc2UiTU0iOlc9WT8ia3V1a2F1ZGVuIjoia3V1a2F1dHRhIjticmVhaztjYXNlInkiOnJldHVybiBZPyJ2dW9kZW4i''@;'; + put 'put ''OiJ2dW9zaSI7Y2FzZSJ5eSI6Vz1ZPyJ2dW9kZW4iOiJ2dW90dGEifXJldHVybiBmdW5jdGlvbiBVKFosaWUpe3JldHVybiBaPDEwP2llP0VbWl06QltaXTpafShaLFkpKyIgIitXfW1lLmRlZmluZUxvY2FsZSgiZmkiLHttb250aHM6InRhbW1pa3V1X2hlbG1pa3V1X21hYWxpc2t1dV9odWh0''@;'; + put 'put ''aWt1dV90b3Vrb2t1dV9rZXNceGU0a3V1X2hlaW5ceGU0a3V1X2Vsb2t1dV9zeXlza3V1X2xva2FrdXVfbWFycmFza3V1X2pvdWx1a3V1Ii5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJ0YW1taV9oZWxtaV9tYWFsaXNfaHVodGlfdG91a29fa2VzXHhlNF9oZWluXHhlNF9lbG9fc3l5c19sb2th''@;'; + put 'put ''X21hcnJhc19qb3VsdSIuc3BsaXQoIl8iKSx3ZWVrZGF5czoic3VubnVudGFpX21hYW5hbnRhaV90aWlzdGFpX2tlc2tpdmlpa2tvX3RvcnN0YWlfcGVyamFudGFpX2xhdWFudGFpIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6InN1X21hX3RpX2tlX3RvX3BlX2xhIi5zcGxpdCgiXyIpLHdl''@;'; + put 'put ''ZWtkYXlzTWluOiJzdV9tYV90aV9rZV90b19wZV9sYSIuc3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhILm1tIixMVFM6IkhILm1tLnNzIixMOiJERC5NTS5ZWVlZIixMTDoiRG8gTU1NTVt0YV0gWVlZWSIsTExMOiJEbyBNTU1NW3RhXSBZWVlZLCBba2xvXSBISC5tbSIsTExMTDoi''@;'; + put 'put ''ZGRkZCwgRG8gTU1NTVt0YV0gWVlZWSwgW2tsb10gSEgubW0iLGw6IkQuTS5ZWVlZIixsbDoiRG8gTU1NIFlZWVkiLGxsbDoiRG8gTU1NIFlZWVksIFtrbG9dIEhILm1tIixsbGxsOiJkZGQsIERvIE1NTSBZWVlZLCBba2xvXSBISC5tbSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbdFx4ZTRuXHhl''@;'; + put 'put ''NFx4ZTRuXSBba2xvXSBMVCIsbmV4dERheToiW2h1b21lbm5hXSBba2xvXSBMVCIsbmV4dFdlZWs6ImRkZGQgW2tsb10gTFQiLGxhc3REYXk6IltlaWxlbl0gW2tsb10gTFQiLGxhc3RXZWVrOiJbdmlpbWVdIGRkZGRbbmFdIFtrbG9dIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7''@;'; + put 'put ''ZnV0dXJlOiIlcyBwXHhlNFx4ZTRzdFx4ZTQiLHBhc3Q6IiVzIHNpdHRlbiIsczpNZSxzczpNZSxtOk1lLG1tOk1lLGg6TWUsaGg6TWUsZDpNZSxkZDpNZSxNOk1lLE1NOk1lLHk6TWUseXk6TWV9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn1cLi8sb3JkaW5hbDoiJWQuIix3ZWVr''@;'; + put 'put ''Ontkb3c6MSxkb3k6NH19KX0oTCgxNTQzOSkpfSw2MTc2NjpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0IjttZS5kZWZpbmVMb2NhbGUoImZpbCIse21vbnRoczoiRW5lcm9fUGVicmVyb19NYXJzb19BYnJpbF9NYXlvX0h1bnlvX0h1bHlvX0Fnb3N0b19TZXR5''@;'; + put 'put ''ZW1icmVfT2t0dWJyZV9Ob2J5ZW1icmVfRGlzeWVtYnJlIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJFbmVfUGViX01hcl9BYnJfTWF5X0h1bl9IdWxfQWdvX1NldF9Pa3RfTm9iX0RpcyIuc3BsaXQoIl8iKSx3ZWVrZGF5czoiTGluZ2dvX0x1bmVzX01hcnRlc19NaXllcmt1bGVzX0h1d2Vi''@;'; + put 'put ''ZXNfQml5ZXJuZXNfU2FiYWRvIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6Ikxpbl9MdW5fTWFyX01peV9IdXdfQml5X1NhYiIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiTGlfTHVfTWFfTWlfSHVfQmlfU2FiIi5zcGxpdCgiXyIpLGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoi''@;'; + put 'put ''SEg6bW06c3MiLEw6Ik1NL0QvWVlZWSIsTEw6Ik1NTU0gRCwgWVlZWSIsTExMOiJNTU1NIEQsIFlZWVkgSEg6bW0iLExMTEw6ImRkZGQsIE1NTU0gREQsIFlZWVkgSEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiTFQgW25nYXlvbmcgYXJhd10iLG5leHREYXk6IltCdWthcyBuZ10gTFQiLG5l''@;'; + put 'put ''eHRXZWVrOiJMVCBbc2Egc3VzdW5vZCBuYV0gZGRkZCIsbGFzdERheToiTFQgW2thaGFwb25dIixsYXN0V2VlazoiTFQgW25vb25nIG5ha2FyYWFuZ10gZGRkZCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToic2EgbG9vYiBuZyAlcyIscGFzdDoiJXMgYW5nIG5ha2FsaXBh''@;'; + put 'put ''cyIsczoiaWxhbmcgc2VndW5kbyIsc3M6IiVkIHNlZ3VuZG8iLG06ImlzYW5nIG1pbnV0byIsbW06IiVkIG1pbnV0byIsaDoiaXNhbmcgb3JhcyIsaGg6IiVkIG9yYXMiLGQ6ImlzYW5nIGFyYXciLGRkOiIlZCBhcmF3IixNOiJpc2FuZyBidXdhbiIsTU06IiVkIGJ1d2FuIix5OiJpc2FuZyB0''@;'; + put 'put ''YW9uIix5eToiJWQgdGFvbiJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn0vLG9yZGluYWw6ZnVuY3Rpb24oRSl7cmV0dXJuIEV9LHdlZWs6e2RvdzoxLGRveTo0fX0pfShMKDE1NDM5KSl9LDk1ODY3OmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlvbihtZSl7InVzZSBzdHJpY3Qi''@;'; + put 'put ''O21lLmRlZmluZUxvY2FsZSgiZm8iLHttb250aHM6ImphbnVhcl9mZWJydWFyX21hcnNfYXByXHhlZGxfbWFpX2p1bmlfanVsaV9hdWd1c3Rfc2VwdGVtYmVyX29rdG9iZXJfbm92ZW1iZXJfZGVzZW1iZXIiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6Imphbl9mZWJfbWFyX2Fwcl9tYWlfanVu''@;'; + put 'put ''X2p1bF9hdWdfc2VwX29rdF9ub3ZfZGVzIi5zcGxpdCgiXyIpLHdlZWtkYXlzOiJzdW5udWRhZ3VyX21ceGUxbmFkYWd1cl90XHhmZHNkYWd1cl9taWt1ZGFndXJfaFx4ZjNzZGFndXJfZnJceGVkZ2dqYWRhZ3VyX2xleWdhcmRhZ3VyIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6InN1bl9t''@;'; + put 'put ''XHhlMW5fdFx4ZmRzX21pa19oXHhmM3NfZnJceGVkX2xleSIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoic3VfbVx4ZTFfdFx4ZmRfbWlfaFx4ZjNfZnJfbGUiLnNwbGl0KCJfIiksbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoiREQvTU0vWVlZWSIsTEw6IkQg''@;'; + put 'put ''TU1NTSBZWVlZIixMTEw6IkQgTU1NTSBZWVlZIEhIOm1tIixMTExMOiJkZGRkIEQuIE1NTU0sIFlZWVkgSEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW1x4Y2QgZGFnIGtsLl0gTFQiLG5leHREYXk6IltceGNkIG1vcmdpbiBrbC5dIExUIixuZXh0V2VlazoiZGRkZCBba2wuXSBMVCIsbGFz''@;'; + put 'put ''dERheToiW1x4Y2QgZ2pceGUxciBrbC5dIExUIixsYXN0V2VlazoiW3NceGVkXHhmMHN0dV0gZGRkZCBba2xdIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJ1bSAlcyIscGFzdDoiJXMgc1x4ZWRceGYwYW5pIixzOiJmXHhlMSBzZWt1bmQiLHNzOiIlZCBzZWt1bmRp''@;'; + put 'put ''ciIsbToiZWluIG1pbnV0dHVyIixtbToiJWQgbWludXR0aXIiLGg6ImVpbiB0XHhlZG1pIixoaDoiJWQgdFx4ZWRtYXIiLGQ6ImVpbiBkYWd1ciIsZGQ6IiVkIGRhZ2FyIixNOiJlaW4gbVx4ZTFuYVx4ZjB1ciIsTU06IiVkIG1ceGUxbmFceGYwaXIiLHk6ImVpdHQgXHhlMXIiLHl5OiIlZCBc''@;'; + put 'put ''eGUxciJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn1cLi8sb3JkaW5hbDoiJWQuIix3ZWVrOntkb3c6MSxkb3k6NH19KX0oTCgxNTQzOSkpfSwxNjg0ODpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0IjttZS5kZWZpbmVMb2NhbGUoImZyLWNhIix7''@;'; + put 'put ''bW9udGhzOiJqYW52aWVyX2ZceGU5dnJpZXJfbWFyc19hdnJpbF9tYWlfanVpbl9qdWlsbGV0X2FvXHhmYnRfc2VwdGVtYnJlX29jdG9icmVfbm92ZW1icmVfZFx4ZTljZW1icmUiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6ImphbnYuX2ZceGU5dnIuX21hcnNfYXZyLl9tYWlfanVpbl9qdWls''@;'; + put 'put ''Ll9hb1x4ZmJ0X3NlcHQuX29jdC5fbm92Ll9kXHhlOWMuIi5zcGxpdCgiXyIpLG1vbnRoc1BhcnNlRXhhY3Q6ITAsd2Vla2RheXM6ImRpbWFuY2hlX2x1bmRpX21hcmRpX21lcmNyZWRpX2pldWRpX3ZlbmRyZWRpX3NhbWVkaSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJkaW0uX2x1bi5f''@;'; + put 'put ''bWFyLl9tZXIuX2pldS5fdmVuLl9zYW0uIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJkaV9sdV9tYV9tZV9qZV92ZV9zYSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1BhcnNlRXhhY3Q6ITAsbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoiWVlZWS1NTS1ERCIsTEw6''@;'; + put 'put ''IkQgTU1NTSBZWVlZIixMTEw6IkQgTU1NTSBZWVlZIEhIOm1tIixMTExMOiJkZGRkIEQgTU1NTSBZWVlZIEhIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltBdWpvdXJkXHUyMDE5aHVpIFx4ZTBdIExUIixuZXh0RGF5OiJbRGVtYWluIFx4ZTBdIExUIixuZXh0V2VlazoiZGRkZCBbXHhlMF0g''@;'; + put 'put ''TFQiLGxhc3REYXk6IltIaWVyIFx4ZTBdIExUIixsYXN0V2VlazoiZGRkZCBbZGVybmllciBceGUwXSBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiZGFucyAlcyIscGFzdDoiaWwgeSBhICVzIixzOiJxdWVscXVlcyBzZWNvbmRlcyIsc3M6IiVkIHNlY29uZGVzIixt''@;'; + put 'put ''OiJ1bmUgbWludXRlIixtbToiJWQgbWludXRlcyIsaDoidW5lIGhldXJlIixoaDoiJWQgaGV1cmVzIixkOiJ1biBqb3VyIixkZDoiJWQgam91cnMiLE06InVuIG1vaXMiLE1NOiIlZCBtb2lzIix5OiJ1biBhbiIseXk6IiVkIGFucyJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn0o''@;'; + put 'put ''ZXJ8ZSkvLG9yZGluYWw6ZnVuY3Rpb24oRSxNZSl7c3dpdGNoKE1lKXtkZWZhdWx0OmNhc2UiTSI6Y2FzZSJRIjpjYXNlIkQiOmNhc2UiREREIjpjYXNlImQiOnJldHVybiBFKygxPT09RT8iZXIiOiJlIik7Y2FzZSJ3IjpjYXNlIlciOnJldHVybiBFKygxPT09RT8icmUiOiJlIil9fX0pfShM''@;'; + put 'put ''KDE1NDM5KSl9LDc3NzczOmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlvbihtZSl7InVzZSBzdHJpY3QiO21lLmRlZmluZUxvY2FsZSgiZnItY2giLHttb250aHM6ImphbnZpZXJfZlx4ZTl2cmllcl9tYXJzX2F2cmlsX21haV9qdWluX2p1aWxsZXRfYW9ceGZidF9zZXB0ZW1icmVfb2N0b2Jy''@;'; + put 'put ''ZV9ub3ZlbWJyZV9kXHhlOWNlbWJyZSIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiamFudi5fZlx4ZTl2ci5fbWFyc19hdnIuX21haV9qdWluX2p1aWwuX2FvXHhmYnRfc2VwdC5fb2N0Ll9ub3YuX2RceGU5Yy4iLnNwbGl0KCJfIiksbW9udGhzUGFyc2VFeGFjdDohMCx3ZWVrZGF5czoiZGlt''@;'; + put 'put ''YW5jaGVfbHVuZGlfbWFyZGlfbWVyY3JlZGlfamV1ZGlfdmVuZHJlZGlfc2FtZWRpIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6ImRpbS5fbHVuLl9tYXIuX21lci5famV1Ll92ZW4uX3NhbS4iLnNwbGl0KCJfIiksd2Vla2RheXNNaW46ImRpX2x1X21hX21lX2plX3ZlX3NhIi5zcGxpdCgi''@;'; + put 'put ''XyIpLHdlZWtkYXlzUGFyc2VFeGFjdDohMCxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJERC5NTS5ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVkgSEg6bW0iLExMTEw6ImRkZGQgRCBNTU1NIFlZWVkgSEg6bW0ifSxjYWxlbmRhcjp7''@;'; + put 'put ''c2FtZURheToiW0F1am91cmRcdTIwMTlodWkgXHhlMF0gTFQiLG5leHREYXk6IltEZW1haW4gXHhlMF0gTFQiLG5leHRXZWVrOiJkZGRkIFtceGUwXSBMVCIsbGFzdERheToiW0hpZXIgXHhlMF0gTFQiLGxhc3RXZWVrOiJkZGRkIFtkZXJuaWVyIFx4ZTBdIExUIixzYW1lRWxzZToiTCJ9LHJl''@;'; + put 'put ''bGF0aXZlVGltZTp7ZnV0dXJlOiJkYW5zICVzIixwYXN0OiJpbCB5IGEgJXMiLHM6InF1ZWxxdWVzIHNlY29uZGVzIixzczoiJWQgc2Vjb25kZXMiLG06InVuZSBtaW51dGUiLG1tOiIlZCBtaW51dGVzIixoOiJ1bmUgaGV1cmUiLGhoOiIlZCBoZXVyZXMiLGQ6InVuIGpvdXIiLGRkOiIlZCBq''@;'; + put 'put ''b3VycyIsTToidW4gbW9pcyIsTU06IiVkIG1vaXMiLHk6InVuIGFuIix5eToiJWQgYW5zIn0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfShlcnxlKS8sb3JkaW5hbDpmdW5jdGlvbihFLE1lKXtzd2l0Y2goTWUpe2RlZmF1bHQ6Y2FzZSJNIjpjYXNlIlEiOmNhc2UiRCI6Y2FzZSJE''@;'; + put 'put ''REQiOmNhc2UiZCI6cmV0dXJuIEUrKDE9PT1FPyJlciI6ImUiKTtjYXNlInciOmNhc2UiVyI6cmV0dXJuIEUrKDE9PT1FPyJyZSI6ImUiKX19LHdlZWs6e2RvdzoxLGRveTo0fX0pfShMKDE1NDM5KSl9LDE2MzY6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7''@;'; + put 'put ''dmFyIE1lPS8oamFudlwuP3xmXHhlOXZyXC4/fG1hcnN8YXZyXC4/fG1haXxqdWlufGp1aWxcLj98YW9ceGZidHxzZXB0XC4/fG9jdFwuP3xub3ZcLj98ZFx4ZTljXC4/fGphbnZpZXJ8Zlx4ZTl2cmllcnxtYXJzfGF2cmlsfG1haXxqdWlufGp1aWxsZXR8YW9ceGZidHxzZXB0ZW1icmV8b2N0''@;'; + put 'put ''b2JyZXxub3ZlbWJyZXxkXHhlOWNlbWJyZSkvaSxVPVsvXmphbnYvaSwvXmZceGU5dnIvaSwvXm1hcnMvaSwvXmF2ci9pLC9ebWFpL2ksL15qdWluL2ksL15qdWlsL2ksL15hb1x4ZmJ0L2ksL15zZXB0L2ksL15vY3QvaSwvXm5vdi9pLC9eZFx4ZTljL2ldO21lLmRlZmluZUxvY2FsZSgiZnIi''@;'; + put 'put ''LHttb250aHM6ImphbnZpZXJfZlx4ZTl2cmllcl9tYXJzX2F2cmlsX21haV9qdWluX2p1aWxsZXRfYW9ceGZidF9zZXB0ZW1icmVfb2N0b2JyZV9ub3ZlbWJyZV9kXHhlOWNlbWJyZSIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiamFudi5fZlx4ZTl2ci5fbWFyc19hdnIuX21haV9qdWluX2p1''@;'; + put 'put ''aWwuX2FvXHhmYnRfc2VwdC5fb2N0Ll9ub3YuX2RceGU5Yy4iLnNwbGl0KCJfIiksbW9udGhzUmVnZXg6TWUsbW9udGhzU2hvcnRSZWdleDpNZSxtb250aHNTdHJpY3RSZWdleDovXihqYW52aWVyfGZceGU5dnJpZXJ8bWFyc3xhdnJpbHxtYWl8anVpbnxqdWlsbGV0fGFvXHhmYnR8c2VwdGVt''@;'; + put 'put ''YnJlfG9jdG9icmV8bm92ZW1icmV8ZFx4ZTljZW1icmUpL2ksbW9udGhzU2hvcnRTdHJpY3RSZWdleDovKGphbnZcLj98Zlx4ZTl2clwuP3xtYXJzfGF2clwuP3xtYWl8anVpbnxqdWlsXC4/fGFvXHhmYnR8c2VwdFwuP3xvY3RcLj98bm92XC4/fGRceGU5Y1wuPykvaSxtb250aHNQYXJzZTpV''@;'; + put 'put ''LGxvbmdNb250aHNQYXJzZTpVLHNob3J0TW9udGhzUGFyc2U6VSx3ZWVrZGF5czoiZGltYW5jaGVfbHVuZGlfbWFyZGlfbWVyY3JlZGlfamV1ZGlfdmVuZHJlZGlfc2FtZWRpIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6ImRpbS5fbHVuLl9tYXIuX21lci5famV1Ll92ZW4uX3NhbS4iLnNw''@;'; + put 'put ''bGl0KCJfIiksd2Vla2RheXNNaW46ImRpX2x1X21hX21lX2plX3ZlX3NhIi5zcGxpdCgiXyIpLHdlZWtkYXlzUGFyc2VFeGFjdDohMCxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJERC9NTS9ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZ''@;'; + put 'put ''WVkgSEg6bW0iLExMTEw6ImRkZGQgRCBNTU1NIFlZWVkgSEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW0F1am91cmRcdTIwMTlodWkgXHhlMF0gTFQiLG5leHREYXk6IltEZW1haW4gXHhlMF0gTFQiLG5leHRXZWVrOiJkZGRkIFtceGUwXSBMVCIsbGFzdERheToiW0hpZXIgXHhlMF0gTFQi''@;'; + put 'put ''LGxhc3RXZWVrOiJkZGRkIFtkZXJuaWVyIFx4ZTBdIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJkYW5zICVzIixwYXN0OiJpbCB5IGEgJXMiLHM6InF1ZWxxdWVzIHNlY29uZGVzIixzczoiJWQgc2Vjb25kZXMiLG06InVuZSBtaW51dGUiLG1tOiIlZCBtaW51dGVz''@;'; + put 'put ''IixoOiJ1bmUgaGV1cmUiLGhoOiIlZCBoZXVyZXMiLGQ6InVuIGpvdXIiLGRkOiIlZCBqb3VycyIsdzoidW5lIHNlbWFpbmUiLHd3OiIlZCBzZW1haW5lcyIsTToidW4gbW9pcyIsTU06IiVkIG1vaXMiLHk6InVuIGFuIix5eToiJWQgYW5zIn0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7''@;'; + put 'put ''MSwyfShlcnwpLyxvcmRpbmFsOmZ1bmN0aW9uKFosaWUpe3N3aXRjaChpZSl7Y2FzZSJEIjpyZXR1cm4gWisoMT09PVo/ImVyIjoiIik7ZGVmYXVsdDpjYXNlIk0iOmNhc2UiUSI6Y2FzZSJEREQiOmNhc2UiZCI6cmV0dXJuIForKDE9PT1aPyJlciI6ImUiKTtjYXNlInciOmNhc2UiVyI6cmV0''@;'; + put 'put ''dXJuIForKDE9PT1aPyJyZSI6ImUiKX19LHdlZWs6e2RvdzoxLGRveTo0fX0pfShMKDE1NDM5KSl9LDE0OTQwOmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlvbihtZSl7InVzZSBzdHJpY3QiO3ZhciBCPSJqYW4uX2ZlYi5fbXJ0Ll9hcHIuX21haV9qdW4uX2p1bC5fYXVnLl9zZXAuX29rdC5f''@;'; + put 'put ''bm92Ll9kZXMuIi5zcGxpdCgiXyIpLEU9Imphbl9mZWJfbXJ0X2Fwcl9tYWlfanVuX2p1bF9hdWdfc2VwX29rdF9ub3ZfZGVzIi5zcGxpdCgiXyIpO21lLmRlZmluZUxvY2FsZSgiZnkiLHttb250aHM6Imphbm5ld2FyaXNfZmVicmV3YXJpc19tYWFydF9hcHJpbF9tYWFpZV9qdW55X2p1bHlf''@;'; + put 'put ''YXVndXN0dXNfc2VwdGltYmVyX29rdG9iZXJfbm92aW1iZXJfZGVzaW1iZXIiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6ZnVuY3Rpb24oVSxRKXtyZXR1cm4gVT8vLU1NTS0vLnRlc3QoUSk/RVtVLm1vbnRoKCldOkJbVS5tb250aCgpXTpCfSxtb250aHNQYXJzZUV4YWN0OiEwLHdlZWtkYXlz''@;'; + put 'put ''OiJzbmVpbl9tb2FuZGVpX3RpaXNkZWlfd29hbnNkZWlfdG9uZ2Vyc2RlaV9mcmVlZF9zbmVvbiIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJzaS5fbW8uX3RpLl93by5fdG8uX2ZyLl9zby4iLnNwbGl0KCJfIiksd2Vla2RheXNNaW46IlNpX01vX1RpX1dvX1RvX0ZyX1NvIi5zcGxpdCgi''@;'; + put 'put ''XyIpLHdlZWtkYXlzUGFyc2VFeGFjdDohMCxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJERC1NTS1ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVkgSEg6bW0iLExMTEw6ImRkZGQgRCBNTU1NIFlZWVkgSEg6bW0ifSxjYWxlbmRhcjp7''@;'; + put 'put ''c2FtZURheToiW2hqb2VkIG9tXSBMVCIsbmV4dERheToiW21vYXJuIG9tXSBMVCIsbmV4dFdlZWs6ImRkZGQgW29tXSBMVCIsbGFzdERheToiW2p1c3RlciBvbV0gTFQiLGxhc3RXZWVrOiJbXHhmNGZyXHhmYm5lXSBkZGRkIFtvbV0gTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntm''@;'; + put 'put ''dXR1cmU6Im9lciAlcyIscGFzdDoiJXMgbHluIixzOiJpbiBwZWFyIHNla29uZGVuIixzczoiJWQgc2Vrb25kZW4iLG06ImllbiBtaW5ceGZhdCIsbW06IiVkIG1pbnV0ZW4iLGg6ImllbiBvZXJlIixoaDoiJWQgb2VyZW4iLGQ6ImllbiBkZWkiLGRkOiIlZCBkYWdlbiIsTToiaWVuIG1vYW5u''@;'; + put 'put ''ZSIsTU06IiVkIG1vYW5uZW4iLHk6ImllbiBqaWVyIix5eToiJWQgamllcnJlbiJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn0oc3RlfGRlKS8sb3JkaW5hbDpmdW5jdGlvbihVKXtyZXR1cm4gVSsoMT09PVV8fDg9PT1VfHxVPj0yMD8ic3RlIjoiZGUiKX0sd2Vlazp7ZG93OjEs''@;'; + put 'put ''ZG95OjR9fSl9KEwoMTU0MzkpKX0sOTE0MDI6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7bWUuZGVmaW5lTG9jYWxlKCJnYSIse21vbnRoczpbIkVhblx4ZTFpciIsIkZlYWJocmEiLCJNXHhlMXJ0YSIsIkFpYnJlXHhlMW4iLCJCZWFsdGFpbmUiLCJNZWl0''@;'; + put 'put ''aGVhbWgiLCJJXHhmYWlsIiwiTFx4ZmFuYXNhIiwiTWVceGUxbiBGXHhmM21oYWlyIiwiRGVpcmVhZGggRlx4ZjNtaGFpciIsIlNhbWhhaW4iLCJOb2xsYWlnIl0sbW9udGhzU2hvcnQ6WyJFYW4iLCJGZWFiaCIsIk1ceGUxcnQiLCJBaWIiLCJCZWFsIiwiTWVpdGgiLCJJXHhmYWlsIiwiTFx4''@;'; + put 'put ''ZmFuIiwiTS5GLiIsIkQuRi4iLCJTYW1oIiwiTm9sbCJdLG1vbnRoc1BhcnNlRXhhY3Q6ITAsd2Vla2RheXM6WyJEXHhlOSBEb21obmFpZ2giLCJEXHhlOSBMdWFpbiIsIkRceGU5IE1ceGUxaXJ0IiwiRFx4ZTkgQ1x4ZTlhZGFvaW4iLCJEXHhlOWFyZGFvaW4iLCJEXHhlOSBoQW9pbmUiLCJE''@;'; + put 'put ''XHhlOSBTYXRoYWlybiJdLHdlZWtkYXlzU2hvcnQ6WyJEb21oIiwiTHVhbiIsIk1ceGUxaXJ0IiwiQ1x4ZTlhZCIsIkRceGU5YXIiLCJBb2luZSIsIlNhdGgiXSx3ZWVrZGF5c01pbjpbIkRvIiwiTHUiLCJNXHhlMSIsIkNceGU5IiwiRFx4ZTkiLCJBIiwiU2EiXSxsb25nRGF0ZUZvcm1hdDp7''@;'; + put 'put ''TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJERC9NTS9ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVkgSEg6bW0iLExMTEw6ImRkZGQsIEQgTU1NTSBZWVlZIEhIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltJbm5pdSBhZ10gTFQiLG5leHREYXk6IltBbVx4ZTFy''@;'; + put 'put ''YWNoIGFnXSBMVCIsbmV4dFdlZWs6ImRkZGQgW2FnXSBMVCIsbGFzdERheToiW0lublx4ZTkgYWddIExUIixsYXN0V2VlazoiZGRkZCBbc2VvIGNhaXRlXSBbYWddIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJpICVzIixwYXN0OiIlcyBceGYzIHNoaW4iLHM6ImNc''@;'; + put 'put ''eGZhcGxhIHNvaWNpbmQiLHNzOiIlZCBzb2ljaW5kIixtOiJuXHhmM2ltXHhlOWFkIixtbToiJWQgblx4ZjNpbVx4ZTlhZCIsaDoidWFpciBhbiBjaGxvaWciLGhoOiIlZCB1YWlyIGFuIGNobG9pZyIsZDoibFx4ZTEiLGRkOiIlZCBsXHhlMSIsTToibVx4ZWQiLE1NOiIlZCBtXHhlZG9ubmEi''@;'; + put 'put ''LHk6ImJsaWFpbiIseXk6IiVkIGJsaWFpbiJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn0oZHxuYXxtaCkvLG9yZGluYWw6ZnVuY3Rpb24oaWUpe3JldHVybiBpZSsoMT09PWllPyJkIjppZSUxMD09Mj8ibmEiOiJtaCIpfSx3ZWVrOntkb3c6MSxkb3k6NH19KX0oTCgxNTQzOSkp''@;'; + put 'put ''fSw0NjkyNDpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0IjttZS5kZWZpbmVMb2NhbGUoImdkIix7bW9udGhzOlsiQW0gRmFvaWxsZWFjaCIsIkFuIEdlYXJyYW4iLCJBbSBNXHhlMHJ0IiwiQW4gR2libGVhbiIsIkFuIENceGU4aXRlYW4iLCJBbiB0LVx4ZDJn''@;'; + put 'put ''bWhpb3MiLCJBbiB0LUl1Y2hhciIsIkFuIExceGY5bmFzdGFsIiwiQW4gdC1TdWx0YWluIiwiQW4gRFx4ZTBtaGFpciIsIkFuIHQtU2FtaGFpbiIsIkFuIERceGY5YmhsYWNoZCJdLG1vbnRoc1Nob3J0OlsiRmFvaSIsIkdlYXIiLCJNXHhlMHJ0IiwiR2libCIsIkNceGU4aXQiLCJceGQyZ21o''@;'; + put 'put ''IiwiSXVjaCIsIkxceGY5biIsIlN1bHQiLCJEXHhlMG1oIiwiU2FtaCIsIkRceGY5YmgiXSxtb250aHNQYXJzZUV4YWN0OiEwLHdlZWtkYXlzOlsiRGlkXHhmMm1obmFpY2giLCJEaWx1YWluIiwiRGltXHhlMGlydCIsIkRpY2lhZGFpbiIsIkRpYXJkYW9pbiIsIkRpaGFvaW5lIiwiRGlzYXRo''@;'; + put 'put ''YWlybmUiXSx3ZWVrZGF5c1Nob3J0OlsiRGlkIiwiRGlsIiwiRGltIiwiRGljIiwiRGlhIiwiRGloIiwiRGlzIl0sd2Vla2RheXNNaW46WyJEXHhmMiIsIkx1IiwiTVx4ZTAiLCJDaSIsIkFyIiwiSGEiLCJTYSJdLGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6''@;'; + put 'put ''IkREL01NL1lZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0gWVlZWSBISDptbSIsTExMTDoiZGRkZCwgRCBNTU1NIFlZWVkgSEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW0FuLWRpdWdoIGFpZ10gTFQiLG5leHREYXk6IltBLW1ceGUwaXJlYWNoIGFpZ10gTFQiLG5leHRXZWVr''@;'; + put 'put ''OiJkZGRkIFthaWddIExUIixsYXN0RGF5OiJbQW4tZFx4ZTggYWlnXSBMVCIsbGFzdFdlZWs6ImRkZGQgW3NlbyBjaGFpZGhdIFthaWddIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJhbm4gYW4gJXMiLHBhc3Q6ImJobyBjaGlvbm4gJXMiLHM6ImJlYWdhbiBkaW9n''@;'; + put 'put ''YW4iLHNzOiIlZCBkaW9nYW4iLG06Im1pb25haWQiLG1tOiIlZCBtaW9uYWlkZWFuIixoOiJ1YWlyIixoaDoiJWQgdWFpcmVhbiIsZDoibGF0aGEiLGRkOiIlZCBsYXRoYSIsTToibVx4ZWNvcyIsTU06IiVkIG1ceGVjb3NhbiIseToiYmxpYWRobmEiLHl5OiIlZCBibGlhZGhuYSJ9LGRheU9m''@;'; + put 'put ''TW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn0oZHxuYXxtaCkvLG9yZGluYWw6ZnVuY3Rpb24oaWUpe3JldHVybiBpZSsoMT09PWllPyJkIjppZSUxMD09Mj8ibmEiOiJtaCIpfSx3ZWVrOntkb3c6MSxkb3k6NH19KX0oTCgxNTQzOSkpfSwxNjM5ODpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rp''@;'; + put 'put ''b24obWUpeyJ1c2Ugc3RyaWN0IjttZS5kZWZpbmVMb2NhbGUoImdsIix7bW9udGhzOiJ4YW5laXJvX2ZlYnJlaXJvX21hcnpvX2FicmlsX21haW9feHVceGYxb194dWxsb19hZ29zdG9fc2V0ZW1icm9fb3V0dWJyb19ub3ZlbWJyb19kZWNlbWJybyIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoi''@;'; + put 'put ''eGFuLl9mZWIuX21hci5fYWJyLl9tYWkuX3h1XHhmMS5feHVsLl9hZ28uX3NldC5fb3V0Ll9ub3YuX2RlYy4iLnNwbGl0KCJfIiksbW9udGhzUGFyc2VFeGFjdDohMCx3ZWVrZGF5czoiZG9taW5nb19sdW5zX21hcnRlc19tXHhlOXJjb3Jlc194b3Zlc192ZW5yZXNfc1x4ZTFiYWRvIi5zcGxp''@;'; + put 'put ''dCgiXyIpLHdlZWtkYXlzU2hvcnQ6ImRvbS5fbHVuLl9tYXIuX21ceGU5ci5feG92Ll92ZW4uX3NceGUxYi4iLnNwbGl0KCJfIiksd2Vla2RheXNNaW46ImRvX2x1X21hX21ceGU5X3hvX3ZlX3NceGUxIi5zcGxpdCgiXyIpLHdlZWtkYXlzUGFyc2VFeGFjdDohMCxsb25nRGF0ZUZvcm1hdDp7''@;'; + put 'put ''TFQ6Ikg6bW0iLExUUzoiSDptbTpzcyIsTDoiREQvTU0vWVlZWSIsTEw6IkQgW2RlXSBNTU1NIFtkZV0gWVlZWSIsTExMOiJEIFtkZV0gTU1NTSBbZGVdIFlZWVkgSDptbSIsTExMTDoiZGRkZCwgRCBbZGVdIE1NTU0gW2RlXSBZWVlZIEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheTpmdW5jdGlv''@;'; + put 'put ''bigpe3JldHVybiJbaG94ZSAiKygxIT09dGhpcy5ob3VycygpPyJceGUxcyI6Ilx4ZTEiKSsiXSBMVCJ9LG5leHREYXk6ZnVuY3Rpb24oKXtyZXR1cm4iW21hXHhmMVx4ZTEgIisoMSE9PXRoaXMuaG91cnMoKT8iXHhlMXMiOiJceGUxIikrIl0gTFQifSxuZXh0V2VlazpmdW5jdGlvbigpe3Jl''@;'; + put 'put ''dHVybiJkZGRkIFsiKygxIT09dGhpcy5ob3VycygpPyJceGUxcyI6ImEiKSsiXSBMVCJ9LGxhc3REYXk6ZnVuY3Rpb24oKXtyZXR1cm4iW29udGUgIisoMSE9PXRoaXMuaG91cnMoKT8iXHhlMSI6ImEiKSsiXSBMVCJ9LGxhc3RXZWVrOmZ1bmN0aW9uKCl7cmV0dXJuIltvXSBkZGRkIFtwYXNh''@;'; + put 'put ''ZG8gIisoMSE9PXRoaXMuaG91cnMoKT8iXHhlMXMiOiJhIikrIl0gTFQifSxzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOmZ1bmN0aW9uKEUpe3JldHVybiAwPT09RS5pbmRleE9mKCJ1biIpPyJuIitFOiJlbiAiK0V9LHBhc3Q6ImhhaSAlcyIsczoidW5zIHNlZ3VuZG9zIixz''@;'; + put 'put ''czoiJWQgc2VndW5kb3MiLG06InVuIG1pbnV0byIsbW06IiVkIG1pbnV0b3MiLGg6InVuaGEgaG9yYSIsaGg6IiVkIGhvcmFzIixkOiJ1biBkXHhlZGEiLGRkOiIlZCBkXHhlZGFzIixNOiJ1biBtZXMiLE1NOiIlZCBtZXNlcyIseToidW4gYW5vIix5eToiJWQgYW5vcyJ9LGRheU9mTW9udGhP''@;'; + put 'put ''cmRpbmFsUGFyc2U6L1xkezEsMn1ceGJhLyxvcmRpbmFsOiIlZFx4YmEiLHdlZWs6e2RvdzoxLGRveTo0fX0pfShMKDE1NDM5KSl9LDcyNDU3OmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlvbihtZSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIEIoTWUsVSxRLFope3ZhciBpZT17czpbIlx1MDky''@;'; + put 'put ''NVx1MDk0Ylx1MDkyMVx1MDkyZlx1MDkzZSBcdTA5MzhcdTA5NDVcdTA5MTVcdTA5MDJcdTA5MjFcdTA5M2VcdTA5MDJcdTA5MjhcdTA5NDAiLCJcdTA5MjVcdTA5NGJcdTA5MjFcdTA5NDcgXHUwOTM4XHUwOTQ1XHUwOTE1XHUwOTAyXHUwOTIxIl0sc3M6W01lKyIgXHUwOTM4XHUwOTQ1XHUw''@;'; + put 'put ''OTE1XHUwOTAyXHUwOTIxXHUwOTNlXHUwOTAyXHUwOTI4XHUwOTQwIixNZSsiIFx1MDkzOFx1MDk0NVx1MDkxNVx1MDkwMlx1MDkyMSJdLG06WyJcdTA5MGZcdTA5MTVcdTA5M2UgXHUwOTJlXHUwOTNmXHUwOTIzXHUwOTFmXHUwOTNlXHUwOTI4IiwiXHUwOTBmXHUwOTE1IFx1MDkyZVx1MDkz''@;'; + put 'put ''Zlx1MDkyOFx1MDk0Mlx1MDkxZiJdLG1tOltNZSsiIFx1MDkyZVx1MDkzZlx1MDkyM1x1MDkxZlx1MDkzZVx1MDkwMlx1MDkyOFx1MDk0MCIsTWUrIiBcdTA5MmVcdTA5M2ZcdTA5MjNcdTA5MWZcdTA5M2VcdTA5MDIiXSxoOlsiXHUwOTBmXHUwOTE1XHUwOTNlIFx1MDkzNVx1MDkzMFx1MDkz''@;'; + put 'put ''ZVx1MDkyOCIsIlx1MDkwZlx1MDkxNSBcdTA5MzVcdTA5MzAiXSxoaDpbTWUrIiBcdTA5MzVcdTA5MzBcdTA5M2VcdTA5MDJcdTA5MjhcdTA5NDAiLE1lKyIgXHUwOTM1XHUwOTMwXHUwOTNlXHUwOTAyIl0sZDpbIlx1MDkwZlx1MDkxNVx1MDkzZSBcdTA5MjZcdTA5M2ZcdTA5MzhcdTA5M2Vc''@;'; + put 'put ''dTA5MjgiLCJcdTA5MGZcdTA5MTUgXHUwOTI2XHUwOTQwXHUwOTM4Il0sZGQ6W01lKyIgXHUwOTI2XHUwOTNmXHUwOTM4XHUwOTNlXHUwOTAyXHUwOTI4XHUwOTQwIixNZSsiIFx1MDkyNlx1MDk0MFx1MDkzOCJdLE06WyJcdTA5MGZcdTA5MTVcdTA5M2UgXHUwOTJlXHUwOTRkXHUwOTM5XHUw''@;'; + put 'put ''OTJmXHUwOTI4XHUwOTRkXHUwOTJmXHUwOTNlXHUwOTI4IiwiXHUwOTBmXHUwOTE1IFx1MDkyZVx1MDk0ZFx1MDkzOVx1MDkyZlx1MDkyOFx1MDk0YiJdLE1NOltNZSsiIFx1MDkyZVx1MDk0ZFx1MDkzOVx1MDkyZlx1MDkyOFx1MDk0ZFx1MDkyZlx1MDkzZVx1MDkyOFx1MDk0MCIsTWUrIiBc''@;'; + put 'put ''dTA5MmVcdTA5NGRcdTA5MzlcdTA5MmZcdTA5MjhcdTA5NDciXSx5OlsiXHUwOTBmXHUwOTE1XHUwOTNlIFx1MDkzNVx1MDkzMFx1MDk0ZFx1MDkzOFx1MDkzZVx1MDkyOCIsIlx1MDkwZlx1MDkxNSBcdTA5MzVcdTA5MzBcdTA5NGRcdTA5MzgiXSx5eTpbTWUrIiBcdTA5MzVcdTA5MzBcdTA5''@;'; + put 'put ''NGRcdTA5MzhcdTA5M2VcdTA5MDJcdTA5MjhcdTA5NDAiLE1lKyIgXHUwOTM1XHUwOTMwXHUwOTRkXHUwOTM4XHUwOTNlXHUwOTAyIl19O3JldHVybiBaP2llW1FdWzBdOmllW1FdWzFdfW1lLmRlZmluZUxvY2FsZSgiZ29tLWRldmEiLHttb250aHM6e3N0YW5kYWxvbmU6Ilx1MDkxY1x1MDkz''@;'; + put 'put ''ZVx1MDkyOFx1MDk0N1x1MDkzNVx1MDkzZVx1MDkzMFx1MDk0MF9cdTA5MmJcdTA5NDdcdTA5MmNcdTA5NGRcdTA5MzBcdTA5NDFcdTA5MzVcdTA5M2VcdTA5MzBcdTA5NDBfXHUwOTJlXHUwOTNlXHUwOTMwXHUwOTRkXHUwOTFhX1x1MDkwZlx1MDkyYVx1MDk0ZFx1MDkzMFx1MDk0MFx1MDkz''@;'; + put 'put ''Ml9cdTA5MmVcdTA5NDdfXHUwOTFjXHUwOTQyXHUwOTI4X1x1MDkxY1x1MDk0MVx1MDkzMlx1MDkyZl9cdTA5MTFcdTA5MTdcdTA5MzhcdTA5NGRcdTA5MWZfXHUwOTM4XHUwOTJhXHUwOTRkXHUwOTFmXHUwOTQ3XHUwOTAyXHUwOTJjXHUwOTMwX1x1MDkxMVx1MDkxNVx1MDk0ZFx1MDkxZlx1''@;'; + put 'put ''MDk0Ylx1MDkyY1x1MDkzMF9cdTA5MjhcdTA5NGJcdTA5MzVcdTA5NGRcdTA5MzlcdTA5NDdcdTA5MDJcdTA5MmNcdTA5MzBfXHUwOTIxXHUwOTNmXHUwOTM4XHUwOTQ3XHUwOTAyXHUwOTJjXHUwOTMwIi5zcGxpdCgiXyIpLGZvcm1hdDoiXHUwOTFjXHUwOTNlXHUwOTI4XHUwOTQ3XHUwOTM1''@;'; + put 'put ''XHUwOTNlXHUwOTMwXHUwOTQwXHUwOTFhXHUwOTRkXHUwOTJmXHUwOTNlX1x1MDkyYlx1MDk0N1x1MDkyY1x1MDk0ZFx1MDkzMFx1MDk0MVx1MDkzNVx1MDkzZVx1MDkzMFx1MDk0MFx1MDkxYVx1MDk0ZFx1MDkyZlx1MDkzZV9cdTA5MmVcdTA5M2VcdTA5MzBcdTA5NGRcdTA5MWFcdTA5M2Vc''@;'; + put 'put ''dTA5MWFcdTA5NGRcdTA5MmZcdTA5M2VfXHUwOTBmXHUwOTJhXHUwOTRkXHUwOTMwXHUwOTQwXHUwOTMyXHUwOTNlXHUwOTFhXHUwOTRkXHUwOTJmXHUwOTNlX1x1MDkyZVx1MDk0N1x1MDkyZlx1MDkzZVx1MDkxYVx1MDk0ZFx1MDkyZlx1MDkzZV9cdTA5MWNcdTA5NDJcdTA5MjhcdTA5M2Vc''@;'; + put 'put ''dTA5MWFcdTA5NGRcdTA5MmZcdTA5M2VfXHUwOTFjXHUwOTQxXHUwOTMyXHUwOTJmXHUwOTNlXHUwOTFhXHUwOTRkXHUwOTJmXHUwOTNlX1x1MDkxMVx1MDkxN1x1MDkzOFx1MDk0ZFx1MDkxZlx1MDkzZVx1MDkxYVx1MDk0ZFx1MDkyZlx1MDkzZV9cdTA5MzhcdTA5MmFcdTA5NGRcdTA5MWZc''@;'; + put 'put ''dTA5NDdcdTA5MDJcdTA5MmNcdTA5MzBcdTA5M2VcdTA5MWFcdTA5NGRcdTA5MmZcdTA5M2VfXHUwOTExXHUwOTE1XHUwOTRkXHUwOTFmXHUwOTRiXHUwOTJjXHUwOTMwXHUwOTNlXHUwOTFhXHUwOTRkXHUwOTJmXHUwOTNlX1x1MDkyOFx1MDk0Ylx1MDkzNVx1MDk0ZFx1MDkzOVx1MDk0N1x1''@;'; + put 'put ''MDkwMlx1MDkyY1x1MDkzMFx1MDkzZVx1MDkxYVx1MDk0ZFx1MDkyZlx1MDkzZV9cdTA5MjFcdTA5M2ZcdTA5MzhcdTA5NDdcdTA5MDJcdTA5MmNcdTA5MzBcdTA5M2VcdTA5MWFcdTA5NGRcdTA5MmZcdTA5M2UiLnNwbGl0KCJfIiksaXNGb3JtYXQ6L01NTU0oXHMpK0Rbb0RdPy99LG1vbnRo''@;'; + put 'put ''c1Nob3J0OiJcdTA5MWNcdTA5M2VcdTA5MjhcdTA5NDcuX1x1MDkyYlx1MDk0N1x1MDkyY1x1MDk0ZFx1MDkzMFx1MDk0MS5fXHUwOTJlXHUwOTNlXHUwOTMwXHUwOTRkXHUwOTFhX1x1MDkwZlx1MDkyYVx1MDk0ZFx1MDkzMFx1MDk0MC5fXHUwOTJlXHUwOTQ3X1x1MDkxY1x1MDk0Mlx1MDky''@;'; + put 'put ''OF9cdTA5MWNcdTA5NDFcdTA5MzIuX1x1MDkxMVx1MDkxNy5fXHUwOTM4XHUwOTJhXHUwOTRkXHUwOTFmXHUwOTQ3XHUwOTAyLl9cdTA5MTFcdTA5MTVcdTA5NGRcdTA5MWZcdTA5NGIuX1x1MDkyOFx1MDk0Ylx1MDkzNVx1MDk0ZFx1MDkzOVx1MDk0N1x1MDkwMi5fXHUwOTIxXHUwOTNmXHUw''@;'; + put 'put ''OTM4XHUwOTQ3XHUwOTAyLiIuc3BsaXQoIl8iKSxtb250aHNQYXJzZUV4YWN0OiEwLHdlZWtkYXlzOiJcdTA5MDZcdTA5MmZcdTA5MjRcdTA5M2VcdTA5MzBfXHUwOTM4XHUwOTRiXHUwOTJlXHUwOTNlXHUwOTMwX1x1MDkyZVx1MDkwMlx1MDkxN1x1MDkzM1x1MDkzZVx1MDkzMF9cdTA5MmNc''@;'; + put 'put ''dTA5NDFcdTA5MjdcdTA5MzVcdTA5M2VcdTA5MzBfXHUwOTJjXHUwOTNmXHUwOTMwXHUwOTQ3XHUwOTM4XHUwOTRkXHUwOTI0XHUwOTNlXHUwOTMwX1x1MDkzOFx1MDk0MVx1MDkxNVx1MDk0ZFx1MDkzMFx1MDkzZVx1MDkzMF9cdTA5MzZcdTA5NDdcdTA5MjhcdTA5MzVcdTA5M2VcdTA5MzAi''@;'; + put 'put ''LnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiXHUwOTA2XHUwOTJmXHUwOTI0Ll9cdTA5MzhcdTA5NGJcdTA5MmUuX1x1MDkyZVx1MDkwMlx1MDkxN1x1MDkzMy5fXHUwOTJjXHUwOTQxXHUwOTI3Ll9cdTA5MmNcdTA5NGRcdTA5MzBcdTA5NDdcdTA5MzhcdTA5NGRcdTA5MjQuX1x1MDkzOFx1''@;'; + put 'put ''MDk0MVx1MDkxNVx1MDk0ZFx1MDkzMC5fXHUwOTM2XHUwOTQ3XHUwOTI4LiIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiXHUwOTA2X1x1MDkzOFx1MDk0Yl9cdTA5MmVcdTA5MDJfXHUwOTJjXHUwOTQxX1x1MDkyY1x1MDk0ZFx1MDkzMFx1MDk0N19cdTA5MzhcdTA5NDFfXHUwOTM2XHUwOTQ3''@;'; + put 'put ''Ii5zcGxpdCgiXyIpLHdlZWtkYXlzUGFyc2VFeGFjdDohMCxsb25nRGF0ZUZvcm1hdDp7TFQ6IkEgaDptbSBbXHUwOTM1XHUwOTNlXHUwOTFjXHUwOTI0XHUwOTNlXHUwOTAyXSIsTFRTOiJBIGg6bW06c3MgW1x1MDkzNVx1MDkzZVx1MDkxY1x1MDkyNFx1MDkzZVx1MDkwMl0iLEw6IkRELU1N''@;'; + put 'put ''LVlZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0gWVlZWSBBIGg6bW0gW1x1MDkzNVx1MDkzZVx1MDkxY1x1MDkyNFx1MDkzZVx1MDkwMl0iLExMTEw6ImRkZGQsIE1NTU0gRG8sIFlZWVksIEEgaDptbSBbXHUwOTM1XHUwOTNlXHUwOTFjXHUwOTI0XHUwOTNlXHUwOTAyXSIsbGxs''@;'; + put 'put ''bDoiZGRkLCBEIE1NTSBZWVlZLCBBIGg6bW0gW1x1MDkzNVx1MDkzZVx1MDkxY1x1MDkyNFx1MDkzZVx1MDkwMl0ifSxjYWxlbmRhcjp7c2FtZURheToiW1x1MDkwNlx1MDkyZlx1MDkxY10gTFQiLG5leHREYXk6IltcdTA5MmJcdTA5M2VcdTA5MzJcdTA5NGRcdTA5MmZcdTA5M2VcdTA5MDJd''@;'; + put 'put ''IExUIixuZXh0V2VlazoiW1x1MDkyYlx1MDk0MVx1MDkyMVx1MDkzMlx1MDk0Yl0gZGRkZFssXSBMVCIsbGFzdERheToiW1x1MDkxNVx1MDkzZVx1MDkzMl0gTFQiLGxhc3RXZWVrOiJbXHUwOTJiXHUwOTNlXHUwOTFmXHUwOTMyXHUwOTRiXSBkZGRkWyxdIExUIixzYW1lRWxzZToiTCJ9LHJl''@;'; + put 'put ''bGF0aXZlVGltZTp7ZnV0dXJlOiIlcyIscGFzdDoiJXMgXHUwOTA2XHUwOTI2XHUwOTQwXHUwOTAyIixzOkIsc3M6QixtOkIsbW06QixoOkIsaGg6QixkOkIsZGQ6QixNOkIsTU06Qix5OkIseXk6Qn0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfShcdTA5MzVcdTA5NDdcdTA5MzAp''@;'; + put 'put ''LyxvcmRpbmFsOmZ1bmN0aW9uKE1lLFUpe3JldHVybiJEIj09PVU/TWUrIlx1MDkzNVx1MDk0N1x1MDkzMCI6TWV9LHdlZWs6e2RvdzowLGRveTozfSxtZXJpZGllbVBhcnNlOi9cdTA5MzBcdTA5M2VcdTA5MjRcdTA5NDB8XHUwOTM4XHUwOTE1XHUwOTNlXHUwOTMzXHUwOTQwXHUwOTAyfFx1''@;'; + put 'put ''MDkyNlx1MDkyOFx1MDkyYVx1MDkzZVx1MDkzMFx1MDkzZVx1MDkwMnxcdTA5MzhcdTA5M2VcdTA5MDJcdTA5MWNcdTA5NDcvLG1lcmlkaWVtSG91cjpmdW5jdGlvbihNZSxVKXtyZXR1cm4gMTI9PT1NZSYmKE1lPTApLCJcdTA5MzBcdTA5M2VcdTA5MjRcdTA5NDAiPT09VT9NZTw0P01lOk1l''@;'; + put 'put ''KzEyOiJcdTA5MzhcdTA5MTVcdTA5M2VcdTA5MzNcdTA5NDBcdTA5MDIiPT09VT9NZToiXHUwOTI2XHUwOTI4XHUwOTJhXHUwOTNlXHUwOTMwXHUwOTNlXHUwOTAyIj09PVU/TWU+MTI/TWU6TWUrMTI6Ilx1MDkzOFx1MDkzZVx1MDkwMlx1MDkxY1x1MDk0NyI9PT1VP01lKzEyOnZvaWQgMH0s''@;'; + put 'put ''bWVyaWRpZW06ZnVuY3Rpb24oTWUsVSxRKXtyZXR1cm4gTWU8ND8iXHUwOTMwXHUwOTNlXHUwOTI0XHUwOTQwIjpNZTwxMj8iXHUwOTM4XHUwOTE1XHUwOTNlXHUwOTMzXHUwOTQwXHUwOTAyIjpNZTwxNj8iXHUwOTI2XHUwOTI4XHUwOTJhXHUwOTNlXHUwOTMwXHUwOTNlXHUwOTAyIjpNZTwy''@;'; + put 'put ''MD8iXHUwOTM4XHUwOTNlXHUwOTAyXHUwOTFjXHUwOTQ3IjoiXHUwOTMwXHUwOTNlXHUwOTI0XHUwOTQwIn19KX0oTCgxNTQzOSkpfSw1MjU0NTpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBCKE1lLFUsUSxaKXt2YXIgaWU9e3M6WyJ0aG9k''@;'; + put 'put ''ZGVhIHNla29uZGFtbmkiLCJ0aG9kZGUgc2Vrb25kIl0sc3M6W01lKyIgc2Vrb25kYW1uaSIsTWUrIiBzZWtvbmQiXSxtOlsiZWthIG1pbnRhbiIsImVrIG1pbnV0Il0sbW06W01lKyIgbWludGFtbmkiLE1lKyIgbWludGFtIl0saDpbImVrYSB2b3JhbiIsImVrIHZvciJdLGhoOltNZSsiIHZv''@;'; + put 'put ''cmFtbmkiLE1lKyIgdm9yYW0iXSxkOlsiZWthIGRpc2FuIiwiZWsgZGlzIl0sZGQ6W01lKyIgZGlzYW1uaSIsTWUrIiBkaXMiXSxNOlsiZWthIG1ob2luZWFuIiwiZWsgbWhvaW5vIl0sTU06W01lKyIgbWhvaW5lYW1uaSIsTWUrIiBtaG9pbmUiXSx5OlsiZWthIHZvcnNhbiIsImVrIHZvcm9z''@;'; + put 'put ''Il0seXk6W01lKyIgdm9yc2FtbmkiLE1lKyIgdm9yc2FtIl19O3JldHVybiBaP2llW1FdWzBdOmllW1FdWzFdfW1lLmRlZmluZUxvY2FsZSgiZ29tLWxhdG4iLHttb250aHM6e3N0YW5kYWxvbmU6IkphbmVyX0ZlYnJlcl9NYXJzX0FicmlsX01haV9KdW5fSnVsYWlfQWdvc3RfU2V0ZW1icl9P''@;'; + put 'put ''dHVicl9Ob3ZlbWJyX0RlemVtYnIiLnNwbGl0KCJfIiksZm9ybWF0OiJKYW5lcmFjaGVhX0ZlYnJlcmFjaGVhX01hcnNhY2hlYV9BYnJpbGFjaGVhX01haWFjaGVhX0p1bmFjaGVhX0p1bGFpYWNoZWFfQWdvc3RhY2hlYV9TZXRlbWJyYWNoZWFfT3R1YnJhY2hlYV9Ob3ZlbWJyYWNoZWFfRGV6''@;'; + put 'put ''ZW1icmFjaGVhIi5zcGxpdCgiXyIpLGlzRm9ybWF0Oi9NTU1NKFxzKStEW29EXT8vfSxtb250aHNTaG9ydDoiSmFuLl9GZWIuX01hcnNfQWJyLl9NYWlfSnVuX0p1bC5fQWdvLl9TZXQuX090dS5fTm92Ll9EZXouIi5zcGxpdCgiXyIpLG1vbnRoc1BhcnNlRXhhY3Q6ITAsd2Vla2RheXM6IkFp''@;'; + put 'put ''dGFyX1NvbWFyX01vbmdsbGFyX0J1ZGh2YXJfQmlyZXN0YXJfU3VrcmFyX1Nvbid2YXIiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiQWl0Ll9Tb20uX01vbi5fQnVkLl9CcmUuX1N1ay5fU29uLiIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiQWlfU21fTW9fQnVfQnJfU3VfU24iLnNwbGl0''@;'; + put 'put ''KCJfIiksd2Vla2RheXNQYXJzZUV4YWN0OiEwLGxvbmdEYXRlRm9ybWF0OntMVDoiQSBoOm1tIFt2YXp0YV0iLExUUzoiQSBoOm1tOnNzIFt2YXp0YV0iLEw6IkRELU1NLVlZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0gWVlZWSBBIGg6bW0gW3ZhenRhXSIsTExMTDoiZGRkZCwg''@;'; + put 'put ''TU1NTSBEbywgWVlZWSwgQSBoOm1tIFt2YXp0YV0iLGxsbGw6ImRkZCwgRCBNTU0gWVlZWSwgQSBoOm1tIFt2YXp0YV0ifSxjYWxlbmRhcjp7c2FtZURheToiW0Fpel0gTFQiLG5leHREYXk6IltGYWxlYW1dIExUIixuZXh0V2VlazoiW0Z1ZGRsb10gZGRkZFssXSBMVCIsbGFzdERheToiW0th''@;'; + put 'put ''bF0gTFQiLGxhc3RXZWVrOiJbRmF0dGxvXSBkZGRkWyxdIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiIlcyIscGFzdDoiJXMgYWRpbSIsczpCLHNzOkIsbTpCLG1tOkIsaDpCLGhoOkIsZDpCLGRkOkIsTTpCLE1NOkIseTpCLHl5OkJ9LGRheU9mTW9udGhPcmRpbmFs''@;'; + put 'put ''UGFyc2U6L1xkezEsMn0oZXIpLyxvcmRpbmFsOmZ1bmN0aW9uKE1lLFUpe3JldHVybiJEIj09PVU/TWUrImVyIjpNZX0sd2Vlazp7ZG93OjAsZG95OjN9LG1lcmlkaWVtUGFyc2U6L3JhdGl8c29rYWxsaW18ZG9ucGFyYW18c2FuamUvLG1lcmlkaWVtSG91cjpmdW5jdGlvbihNZSxVKXtyZXR1''@;'; + put 'put ''cm4gMTI9PT1NZSYmKE1lPTApLCJyYXRpIj09PVU/TWU8ND9NZTpNZSsxMjoic29rYWxsaW0iPT09VT9NZToiZG9ucGFyYW0iPT09VT9NZT4xMj9NZTpNZSsxMjoic2FuamUiPT09VT9NZSsxMjp2b2lkIDB9LG1lcmlkaWVtOmZ1bmN0aW9uKE1lLFUsUSl7cmV0dXJuIE1lPDQ/InJhdGkiOk1l''@;'; + put 'put ''PDEyPyJzb2thbGxpbSI6TWU8MTY/ImRvbnBhcmFtIjpNZTwyMD8ic2FuamUiOiJyYXRpIn19KX0oTCgxNTQzOSkpfSw0MjY0MTpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0Ijt2YXIgQj17MToiXHUwYWU3IiwyOiJcdTBhZTgiLDM6Ilx1MGFlOSIsNDoiXHUw''@;'; + put 'put ''YWVhIiw1OiJcdTBhZWIiLDY6Ilx1MGFlYyIsNzoiXHUwYWVkIiw4OiJcdTBhZWUiLDk6Ilx1MGFlZiIsMDoiXHUwYWU2In0sRT17Ilx1MGFlNyI6IjEiLCJcdTBhZTgiOiIyIiwiXHUwYWU5IjoiMyIsIlx1MGFlYSI6IjQiLCJcdTBhZWIiOiI1IiwiXHUwYWVjIjoiNiIsIlx1MGFlZCI6Ijci''@;'; + put 'put ''LCJcdTBhZWUiOiI4IiwiXHUwYWVmIjoiOSIsIlx1MGFlNiI6IjAifTttZS5kZWZpbmVMb2NhbGUoImd1Iix7bW9udGhzOiJcdTBhOWNcdTBhYmVcdTBhYThcdTBhY2RcdTBhYWZcdTBhYzFcdTBhODZcdTBhYjBcdTBhYzBfXHUwYWFiXHUwYWM3XHUwYWFjXHUwYWNkXHUwYWIwXHUwYWMxXHUw''@;'; + put 'put ''YTg2XHUwYWIwXHUwYWMwX1x1MGFhZVx1MGFiZVx1MGFiMFx1MGFjZFx1MGE5YV9cdTBhOGZcdTBhYWFcdTBhY2RcdTBhYjBcdTBhYmZcdTBhYjJfXHUwYWFlXHUwYWM3X1x1MGE5Y1x1MGFjMlx1MGFhOF9cdTBhOWNcdTBhYzFcdTBhYjJcdTBhYmVcdTBhODhfXHUwYTkxXHUwYTk3XHUwYWI4''@;'; + put 'put ''XHUwYWNkXHUwYTlmX1x1MGFiOFx1MGFhYVx1MGFjZFx1MGE5Zlx1MGFjN1x1MGFhZVx1MGFjZFx1MGFhY1x1MGFiMF9cdTBhOTFcdTBhOTVcdTBhY2RcdTBhOWZcdTBhY2RcdTBhYWNcdTBhYjBfXHUwYWE4XHUwYWI1XHUwYWM3XHUwYWFlXHUwYWNkXHUwYWFjXHUwYWIwX1x1MGFhMVx1MGFi''@;'; + put 'put ''Zlx1MGFiOFx1MGFjN1x1MGFhZVx1MGFjZFx1MGFhY1x1MGFiMCIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiXHUwYTljXHUwYWJlXHUwYWE4XHUwYWNkXHUwYWFmXHUwYWMxLl9cdTBhYWJcdTBhYzdcdTBhYWNcdTBhY2RcdTBhYjBcdTBhYzEuX1x1MGFhZVx1MGFiZVx1MGFiMFx1MGFjZFx1''@;'; + put 'put ''MGE5YV9cdTBhOGZcdTBhYWFcdTBhY2RcdTBhYjBcdTBhYmYuX1x1MGFhZVx1MGFjN19cdTBhOWNcdTBhYzJcdTBhYThfXHUwYTljXHUwYWMxXHUwYWIyXHUwYWJlLl9cdTBhOTFcdTBhOTcuX1x1MGFiOFx1MGFhYVx1MGFjZFx1MGE5Zlx1MGFjNy5fXHUwYTkxXHUwYTk1XHUwYWNkXHUwYTlm''@;'; + put 'put ''XHUwYWNkLl9cdTBhYThcdTBhYjVcdTBhYzcuX1x1MGFhMVx1MGFiZlx1MGFiOFx1MGFjNy4iLnNwbGl0KCJfIiksbW9udGhzUGFyc2VFeGFjdDohMCx3ZWVrZGF5czoiXHUwYWIwXHUwYWI1XHUwYWJmXHUwYWI1XHUwYWJlXHUwYWIwX1x1MGFiOFx1MGFjYlx1MGFhZVx1MGFiNVx1MGFiZVx1''@;'; + put 'put ''MGFiMF9cdTBhYWVcdTBhODJcdTBhOTdcdTBhYjNcdTBhYjVcdTBhYmVcdTBhYjBfXHUwYWFjXHUwYWMxXHUwYWE3XHUwYWNkXHUwYWI1XHUwYWJlXHUwYWIwX1x1MGE5N1x1MGFjMVx1MGFiMFx1MGFjMVx1MGFiNVx1MGFiZVx1MGFiMF9cdTBhYjZcdTBhYzFcdTBhOTVcdTBhY2RcdTBhYjBc''@;'; + put 'put ''dTBhYjVcdTBhYmVcdTBhYjBfXHUwYWI2XHUwYWE4XHUwYWJmXHUwYWI1XHUwYWJlXHUwYWIwIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6Ilx1MGFiMFx1MGFiNVx1MGFiZl9cdTBhYjhcdTBhY2JcdTBhYWVfXHUwYWFlXHUwYTgyXHUwYTk3XHUwYWIzX1x1MGFhY1x1MGFjMVx1MGFhN1x1''@;'; + put 'put ''MGFjZF9cdTBhOTdcdTBhYzFcdTBhYjBcdTBhYzFfXHUwYWI2XHUwYWMxXHUwYTk1XHUwYWNkXHUwYWIwX1x1MGFiNlx1MGFhOFx1MGFiZiIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiXHUwYWIwX1x1MGFiOFx1MGFjYl9cdTBhYWVcdTBhODJfXHUwYWFjXHUwYWMxX1x1MGE5N1x1MGFjMV9c''@;'; + put 'put ''dTBhYjZcdTBhYzFfXHUwYWI2Ii5zcGxpdCgiXyIpLGxvbmdEYXRlRm9ybWF0OntMVDoiQSBoOm1tIFx1MGFiNVx1MGFiZVx1MGE5N1x1MGFjZFx1MGFhZlx1MGFjNyIsTFRTOiJBIGg6bW06c3MgXHUwYWI1XHUwYWJlXHUwYTk3XHUwYWNkXHUwYWFmXHUwYWM3IixMOiJERC9NTS9ZWVlZIixM''@;'; + put 'put ''TDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVksIEEgaDptbSBcdTBhYjVcdTBhYmVcdTBhOTdcdTBhY2RcdTBhYWZcdTBhYzciLExMTEw6ImRkZGQsIEQgTU1NTSBZWVlZLCBBIGg6bW0gXHUwYWI1XHUwYWJlXHUwYTk3XHUwYWNkXHUwYWFmXHUwYWM3In0sY2FsZW5kYXI6e3NhbWVE''@;'; + put 'put ''YXk6IltcdTBhODZcdTBhOWNdIExUIixuZXh0RGF5OiJbXHUwYTk1XHUwYWJlXHUwYWIyXHUwYWM3XSBMVCIsbmV4dFdlZWs6ImRkZGQsIExUIixsYXN0RGF5OiJbXHUwYTk3XHUwYTg3XHUwYTk1XHUwYWJlXHUwYWIyXHUwYWM3XSBMVCIsbGFzdFdlZWs6IltcdTBhYWFcdTBhYmVcdTBhOWJc''@;'; + put 'put ''dTBhYjJcdTBhYmVdIGRkZGQsIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiIlcyBcdTBhYWVcdTBhYmUiLHBhc3Q6IiVzIFx1MGFhYVx1MGFiOVx1MGFjN1x1MGFiMlx1MGFiZSIsczoiXHUwYTg1XHUwYWFlXHUwYWMxXHUwYTk1IFx1MGFhYVx1MGFiM1x1MGFjYiIs''@;'; + put 'put ''c3M6IiVkIFx1MGFiOFx1MGFjN1x1MGE5NVx1MGE4Mlx1MGFhMSIsbToiXHUwYThmXHUwYTk1IFx1MGFhZVx1MGFiZlx1MGFhOFx1MGFiZlx1MGE5ZiIsbW06IiVkIFx1MGFhZVx1MGFiZlx1MGFhOFx1MGFiZlx1MGE5ZiIsaDoiXHUwYThmXHUwYTk1IFx1MGE5NVx1MGFiMlx1MGFiZVx1MGE5''@;'; + put 'put ''NSIsaGg6IiVkIFx1MGE5NVx1MGFiMlx1MGFiZVx1MGE5NSIsZDoiXHUwYThmXHUwYTk1IFx1MGFhNlx1MGFiZlx1MGFiNVx1MGFiOCIsZGQ6IiVkIFx1MGFhNlx1MGFiZlx1MGFiNVx1MGFiOCIsTToiXHUwYThmXHUwYTk1IFx1MGFhZVx1MGFiOVx1MGFiZlx1MGFhOFx1MGFjYiIsTU06IiVk''@;'; + put 'put ''IFx1MGFhZVx1MGFiOVx1MGFiZlx1MGFhOFx1MGFjYiIseToiXHUwYThmXHUwYTk1IFx1MGFiNVx1MGFiMFx1MGFjZFx1MGFiNyIseXk6IiVkIFx1MGFiNVx1MGFiMFx1MGFjZFx1MGFiNyJ9LHByZXBhcnNlOmZ1bmN0aW9uKFUpe3JldHVybiBVLnJlcGxhY2UoL1tcdTBhZTdcdTBhZThcdTBh''@;'; + put 'put ''ZTlcdTBhZWFcdTBhZWJcdTBhZWNcdTBhZWRcdTBhZWVcdTBhZWZcdTBhZTZdL2csZnVuY3Rpb24oUSl7cmV0dXJuIEVbUV19KX0scG9zdGZvcm1hdDpmdW5jdGlvbihVKXtyZXR1cm4gVS5yZXBsYWNlKC9cZC9nLGZ1bmN0aW9uKFEpe3JldHVybiBCW1FdfSl9LG1lcmlkaWVtUGFyc2U6L1x1''@;'; + put 'put ''MGFiMFx1MGFiZVx1MGFhNHxcdTBhYWNcdTBhYWFcdTBhY2JcdTBhYjB8XHUwYWI4XHUwYWI1XHUwYWJlXHUwYWIwfFx1MGFiOFx1MGFiZVx1MGE4Mlx1MGE5Yy8sbWVyaWRpZW1Ib3VyOmZ1bmN0aW9uKFUsUSl7cmV0dXJuIDEyPT09VSYmKFU9MCksIlx1MGFiMFx1MGFiZVx1MGFhNCI9PT1R''@;'; + put 'put ''P1U8ND9VOlUrMTI6Ilx1MGFiOFx1MGFiNVx1MGFiZVx1MGFiMCI9PT1RP1U6Ilx1MGFhY1x1MGFhYVx1MGFjYlx1MGFiMCI9PT1RP1U+PTEwP1U6VSsxMjoiXHUwYWI4XHUwYWJlXHUwYTgyXHUwYTljIj09PVE/VSsxMjp2b2lkIDB9LG1lcmlkaWVtOmZ1bmN0aW9uKFUsUSxaKXtyZXR1cm4g''@;'; + put 'put ''VTw0PyJcdTBhYjBcdTBhYmVcdTBhYTQiOlU8MTA/Ilx1MGFiOFx1MGFiNVx1MGFiZVx1MGFiMCI6VTwxNz8iXHUwYWFjXHUwYWFhXHUwYWNiXHUwYWIwIjpVPDIwPyJcdTBhYjhcdTBhYmVcdTBhODJcdTBhOWMiOiJcdTBhYjBcdTBhYmVcdTBhYTQifSx3ZWVrOntkb3c6MCxkb3k6Nn19KX0o''@;'; + put 'put ''TCgxNTQzOSkpfSw3NTM2OmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlvbihtZSl7InVzZSBzdHJpY3QiO21lLmRlZmluZUxvY2FsZSgiaGUiLHttb250aHM6Ilx1MDVkOVx1MDVlMFx1MDVkNVx1MDVkMFx1MDVlOF9cdTA1ZTRcdTA1ZDFcdTA1ZThcdTA1ZDVcdTA1ZDBcdTA1ZThfXHUwNWRl''@;'; + put 'put ''XHUwNWU4XHUwNWU1X1x1MDVkMFx1MDVlNFx1MDVlOFx1MDVkOVx1MDVkY19cdTA1ZGVcdTA1ZDBcdTA1ZDlfXHUwNWQ5XHUwNWQ1XHUwNWUwXHUwNWQ5X1x1MDVkOVx1MDVkNVx1MDVkY1x1MDVkOV9cdTA1ZDBcdTA1ZDVcdTA1ZDJcdTA1ZDVcdTA1ZTFcdTA1ZDhfXHUwNWUxXHUwNWU0XHUw''@;'; + put 'put ''NWQ4XHUwNWRlXHUwNWQxXHUwNWU4X1x1MDVkMFx1MDVkNVx1MDVlN1x1MDVkOFx1MDVkNVx1MDVkMVx1MDVlOF9cdTA1ZTBcdTA1ZDVcdTA1ZDFcdTA1ZGVcdTA1ZDFcdTA1ZThfXHUwNWQzXHUwNWU2XHUwNWRlXHUwNWQxXHUwNWU4Ii5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJcdTA1ZDlc''@;'; + put 'put ''dTA1ZTBcdTA1ZDVcdTA1ZjNfXHUwNWU0XHUwNWQxXHUwNWU4XHUwNWYzX1x1MDVkZVx1MDVlOFx1MDVlNV9cdTA1ZDBcdTA1ZTRcdTA1ZThcdTA1ZjNfXHUwNWRlXHUwNWQwXHUwNWQ5X1x1MDVkOVx1MDVkNVx1MDVlMFx1MDVkOV9cdTA1ZDlcdTA1ZDVcdTA1ZGNcdTA1ZDlfXHUwNWQwXHUw''@;'; + put 'put ''NWQ1XHUwNWQyXHUwNWYzX1x1MDVlMVx1MDVlNFx1MDVkOFx1MDVmM19cdTA1ZDBcdTA1ZDVcdTA1ZTdcdTA1ZjNfXHUwNWUwXHUwNWQ1XHUwNWQxXHUwNWYzX1x1MDVkM1x1MDVlNlx1MDVkZVx1MDVmMyIuc3BsaXQoIl8iKSx3ZWVrZGF5czoiXHUwNWU4XHUwNWQwXHUwNWU5XHUwNWQ1XHUw''@;'; + put 'put ''NWRmX1x1MDVlOVx1MDVlMFx1MDVkOV9cdTA1ZTlcdTA1ZGNcdTA1ZDlcdTA1ZTlcdTA1ZDlfXHUwNWU4XHUwNWQxXHUwNWQ5XHUwNWUyXHUwNWQ5X1x1MDVkN1x1MDVkZVx1MDVkOVx1MDVlOVx1MDVkOV9cdTA1ZTlcdTA1ZDlcdTA1ZTlcdTA1ZDlfXHUwNWU5XHUwNWQxXHUwNWVhIi5zcGxp''@;'; + put 'put ''dCgiXyIpLHdlZWtkYXlzU2hvcnQ6Ilx1MDVkMFx1MDVmM19cdTA1ZDFcdTA1ZjNfXHUwNWQyXHUwNWYzX1x1MDVkM1x1MDVmM19cdTA1ZDRcdTA1ZjNfXHUwNWQ1XHUwNWYzX1x1MDVlOVx1MDVmMyIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiXHUwNWQwX1x1MDVkMV9cdTA1ZDJfXHUwNWQz''@;'; + put 'put ''X1x1MDVkNF9cdTA1ZDVfXHUwNWU5Ii5zcGxpdCgiXyIpLGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IkREL01NL1lZWVkiLExMOiJEIFtcdTA1ZDFdTU1NTSBZWVlZIixMTEw6IkQgW1x1MDVkMV1NTU1NIFlZWVkgSEg6bW0iLExMTEw6ImRkZGQsIEQgW1x1''@;'; + put 'put ''MDVkMV1NTU1NIFlZWVkgSEg6bW0iLGw6IkQvTS9ZWVlZIixsbDoiRCBNTU0gWVlZWSIsbGxsOiJEIE1NTSBZWVlZIEhIOm1tIixsbGxsOiJkZGQsIEQgTU1NIFlZWVkgSEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW1x1MDVkNFx1MDVkOVx1MDVkNVx1MDVkZCBcdTA1ZDFcdTA1YmVdTFQi''@;'; + put 'put ''LG5leHREYXk6IltcdTA1ZGVcdTA1ZDdcdTA1ZTggXHUwNWQxXHUwNWJlXUxUIixuZXh0V2VlazoiZGRkZCBbXHUwNWQxXHUwNWU5XHUwNWUyXHUwNWQ0XSBMVCIsbGFzdERheToiW1x1MDVkMFx1MDVlYVx1MDVkZVx1MDVkNVx1MDVkYyBcdTA1ZDFcdTA1YmVdTFQiLGxhc3RXZWVrOiJbXHUw''@;'; + put 'put ''NWQxXHUwNWQ5XHUwNWQ1XHUwNWRkXSBkZGRkIFtcdTA1ZDRcdTA1ZDBcdTA1ZDdcdTA1ZThcdTA1ZDVcdTA1ZGYgXHUwNWQxXHUwNWU5XHUwNWUyXHUwNWQ0XSBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiXHUwNWQxXHUwNWUyXHUwNWQ1XHUwNWQzICVzIixwYXN0''@;'; + put 'put ''OiJcdTA1ZGNcdTA1ZTRcdTA1ZTBcdTA1ZDkgJXMiLHM6Ilx1MDVkZVx1MDVlMVx1MDVlNFx1MDVlOCBcdTA1ZTlcdTA1ZTBcdTA1ZDlcdTA1ZDVcdTA1ZWEiLHNzOiIlZCBcdTA1ZTlcdTA1ZTBcdTA1ZDlcdTA1ZDVcdTA1ZWEiLG06Ilx1MDVkM1x1MDVlN1x1MDVkNCIsbW06IiVkIFx1MDVk''@;'; + put 'put ''M1x1MDVlN1x1MDVkNVx1MDVlYSIsaDoiXHUwNWU5XHUwNWUyXHUwNWQ0IixoaDpmdW5jdGlvbihFKXtyZXR1cm4gMj09PUU/Ilx1MDVlOVx1MDVlMlx1MDVlYVx1MDVkOVx1MDVkOVx1MDVkZCI6RSsiIFx1MDVlOVx1MDVlMlx1MDVkNVx1MDVlYSJ9LGQ6Ilx1MDVkOVx1MDVkNVx1MDVkZCIs''@;'; + put 'put ''ZGQ6ZnVuY3Rpb24oRSl7cmV0dXJuIDI9PT1FPyJcdTA1ZDlcdTA1ZDVcdTA1ZGVcdTA1ZDlcdTA1ZDlcdTA1ZGQiOkUrIiBcdTA1ZDlcdTA1ZGVcdTA1ZDlcdTA1ZGQifSxNOiJcdTA1ZDdcdTA1ZDVcdTA1ZDNcdTA1ZTkiLE1NOmZ1bmN0aW9uKEUpe3JldHVybiAyPT09RT8iXHUwNWQ3XHUw''@;'; + put 'put ''NWQ1XHUwNWQzXHUwNWU5XHUwNWQ5XHUwNWQ5XHUwNWRkIjpFKyIgXHUwNWQ3XHUwNWQ1XHUwNWQzXHUwNWU5XHUwNWQ5XHUwNWRkIn0seToiXHUwNWU5XHUwNWUwXHUwNWQ0Iix5eTpmdW5jdGlvbihFKXtyZXR1cm4gMj09PUU/Ilx1MDVlOVx1MDVlMFx1MDVlYVx1MDVkOVx1MDVkOVx1MDVk''@;'; + put 'put ''ZCI6RSUxMD09MCYmMTAhPT1FP0UrIiBcdTA1ZTlcdTA1ZTBcdTA1ZDQiOkUrIiBcdTA1ZTlcdTA1ZTBcdTA1ZDlcdTA1ZGQifX0sbWVyaWRpZW1QYXJzZTovXHUwNWQwXHUwNWQ3XHUwNWQ0Ilx1MDVlNnxcdTA1ZGNcdTA1ZTRcdTA1ZTBcdTA1ZDQiXHUwNWU2fFx1MDVkMFx1MDVkN1x1MDVl''@;'; + put 'put ''OFx1MDVkOSBcdTA1ZDRcdTA1ZTZcdTA1ZDRcdTA1ZThcdTA1ZDlcdTA1ZDlcdTA1ZGR8XHUwNWRjXHUwNWU0XHUwNWUwXHUwNWQ5IFx1MDVkNFx1MDVlNlx1MDVkNFx1MDVlOFx1MDVkOVx1MDVkOVx1MDVkZHxcdTA1ZGNcdTA1ZTRcdTA1ZTBcdTA1ZDVcdTA1ZWEgXHUwNWQxXHUwNWQ1XHUw''@;'; + put 'put ''NWU3XHUwNWU4fFx1MDVkMVx1MDVkMVx1MDVkNVx1MDVlN1x1MDVlOHxcdTA1ZDFcdTA1ZTJcdTA1ZThcdTA1ZDEvaSxpc1BNOmZ1bmN0aW9uKEUpe3JldHVybi9eKFx1MDVkMFx1MDVkN1x1MDVkNCJcdTA1ZTZ8XHUwNWQwXHUwNWQ3XHUwNWU4XHUwNWQ5IFx1MDVkNFx1MDVlNlx1MDVkNFx1''@;'; + put 'put ''MDVlOFx1MDVkOVx1MDVkOVx1MDVkZHxcdTA1ZDFcdTA1ZTJcdTA1ZThcdTA1ZDEpJC8udGVzdChFKX0sbWVyaWRpZW06ZnVuY3Rpb24oRSxNZSxVKXtyZXR1cm4gRTw1PyJcdTA1ZGNcdTA1ZTRcdTA1ZTBcdTA1ZDVcdTA1ZWEgXHUwNWQxXHUwNWQ1XHUwNWU3XHUwNWU4IjpFPDEwPyJcdTA1''@;'; + put 'put ''ZDFcdTA1ZDFcdTA1ZDVcdTA1ZTdcdTA1ZTgiOkU8MTI/VT8nXHUwNWRjXHUwNWU0XHUwNWUwXHUwNWQ0Ilx1MDVlNic6Ilx1MDVkY1x1MDVlNFx1MDVlMFx1MDVkOSBcdTA1ZDRcdTA1ZTZcdTA1ZDRcdTA1ZThcdTA1ZDlcdTA1ZDlcdTA1ZGQiOkU8MTg/VT8nXHUwNWQwXHUwNWQ3XHUwNWQ0''@;'; + put 'put ''Ilx1MDVlNic6Ilx1MDVkMFx1MDVkN1x1MDVlOFx1MDVkOSBcdTA1ZDRcdTA1ZTZcdTA1ZDRcdTA1ZThcdTA1ZDlcdTA1ZDlcdTA1ZGQiOiJcdTA1ZDFcdTA1ZTJcdTA1ZThcdTA1ZDEifX0pfShMKDE1NDM5KSl9LDk2MzM1OmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlvbihtZSl7InVzZSBz''@;'; + put 'put ''dHJpY3QiO3ZhciBCPXsxOiJcdTA5NjciLDI6Ilx1MDk2OCIsMzoiXHUwOTY5Iiw0OiJcdTA5NmEiLDU6Ilx1MDk2YiIsNjoiXHUwOTZjIiw3OiJcdTA5NmQiLDg6Ilx1MDk2ZSIsOToiXHUwOTZmIiwwOiJcdTA5NjYifSxFPXsiXHUwOTY3IjoiMSIsIlx1MDk2OCI6IjIiLCJcdTA5NjkiOiIz''@;'; + put 'put ''IiwiXHUwOTZhIjoiNCIsIlx1MDk2YiI6IjUiLCJcdTA5NmMiOiI2IiwiXHUwOTZkIjoiNyIsIlx1MDk2ZSI6IjgiLCJcdTA5NmYiOiI5IiwiXHUwOTY2IjoiMCJ9LE1lPVsvXlx1MDkxY1x1MDkyOC9pLC9eXHUwOTJiXHUwOTNjXHUwOTMwfFx1MDkyYlx1MDkzMC9pLC9eXHUwOTJlXHUwOTNl''@;'; + put 'put ''XHUwOTMwXHUwOTRkXHUwOTFhL2ksL15cdTA5MDVcdTA5MmFcdTA5NGRcdTA5MzBcdTA5NDgvaSwvXlx1MDkyZVx1MDkwOC9pLC9eXHUwOTFjXHUwOTQyXHUwOTI4L2ksL15cdTA5MWNcdTA5NDFcdTA5MzIvaSwvXlx1MDkwNVx1MDkxNy9pLC9eXHUwOTM4XHUwOTNmXHUwOTI0XHUwOTAyfFx1''@;'; + put 'put ''MDkzOFx1MDkzZlx1MDkyNC9pLC9eXHUwOTA1XHUwOTE1XHUwOTRkXHUwOTFmXHUwOTQyL2ksL15cdTA5MjhcdTA5MzV8XHUwOTI4XHUwOTM1XHUwOTAyL2ksL15cdTA5MjZcdTA5M2ZcdTA5MzhcdTA5MDJ8XHUwOTI2XHUwOTNmXHUwOTM4L2ldO21lLmRlZmluZUxvY2FsZSgiaGkiLHttb250''@;'; + put 'put ''aHM6e2Zvcm1hdDoiXHUwOTFjXHUwOTI4XHUwOTM1XHUwOTMwXHUwOTQwX1x1MDkyYlx1MDkzY1x1MDkzMFx1MDkzNVx1MDkzMFx1MDk0MF9cdTA5MmVcdTA5M2VcdTA5MzBcdTA5NGRcdTA5MWFfXHUwOTA1XHUwOTJhXHUwOTRkXHUwOTMwXHUwOTQ4XHUwOTMyX1x1MDkyZVx1MDkwOF9cdTA5''@;'; + put 'put ''MWNcdTA5NDJcdTA5MjhfXHUwOTFjXHUwOTQxXHUwOTMyXHUwOTNlXHUwOTA4X1x1MDkwNVx1MDkxN1x1MDkzOFx1MDk0ZFx1MDkyNF9cdTA5MzhcdTA5M2ZcdTA5MjRcdTA5MmVcdTA5NGRcdTA5MmNcdTA5MzBfXHUwOTA1XHUwOTE1XHUwOTRkXHUwOTFmXHUwOTQyXHUwOTJjXHUwOTMwX1x1''@;'; + put 'put ''MDkyOFx1MDkzNVx1MDkyZVx1MDk0ZFx1MDkyY1x1MDkzMF9cdTA5MjZcdTA5M2ZcdTA5MzhcdTA5MmVcdTA5NGRcdTA5MmNcdTA5MzAiLnNwbGl0KCJfIiksc3RhbmRhbG9uZToiXHUwOTFjXHUwOTI4XHUwOTM1XHUwOTMwXHUwOTQwX1x1MDkyYlx1MDkzMFx1MDkzNVx1MDkzMFx1MDk0MF9c''@;'; + put 'put ''dTA5MmVcdTA5M2VcdTA5MzBcdTA5NGRcdTA5MWFfXHUwOTA1XHUwOTJhXHUwOTRkXHUwOTMwXHUwOTQ4XHUwOTMyX1x1MDkyZVx1MDkwOF9cdTA5MWNcdTA5NDJcdTA5MjhfXHUwOTFjXHUwOTQxXHUwOTMyXHUwOTNlXHUwOTA4X1x1MDkwNVx1MDkxN1x1MDkzOFx1MDk0ZFx1MDkyNF9cdTA5''@;'; + put 'put ''MzhcdTA5M2ZcdTA5MjRcdTA5MDJcdTA5MmNcdTA5MzBfXHUwOTA1XHUwOTE1XHUwOTRkXHUwOTFmXHUwOTQyXHUwOTJjXHUwOTMwX1x1MDkyOFx1MDkzNVx1MDkwMlx1MDkyY1x1MDkzMF9cdTA5MjZcdTA5M2ZcdTA5MzhcdTA5MDJcdTA5MmNcdTA5MzAiLnNwbGl0KCJfIil9LG1vbnRoc1No''@;'; + put 'put ''b3J0OiJcdTA5MWNcdTA5MjguX1x1MDkyYlx1MDkzY1x1MDkzMC5fXHUwOTJlXHUwOTNlXHUwOTMwXHUwOTRkXHUwOTFhX1x1MDkwNVx1MDkyYVx1MDk0ZFx1MDkzMFx1MDk0OC5fXHUwOTJlXHUwOTA4X1x1MDkxY1x1MDk0Mlx1MDkyOF9cdTA5MWNcdTA5NDFcdTA5MzIuX1x1MDkwNVx1MDkx''@;'; + put 'put ''Ny5fXHUwOTM4XHUwOTNmXHUwOTI0Ll9cdTA5MDVcdTA5MTVcdTA5NGRcdTA5MWZcdTA5NDIuX1x1MDkyOFx1MDkzNS5fXHUwOTI2XHUwOTNmXHUwOTM4LiIuc3BsaXQoIl8iKSx3ZWVrZGF5czoiXHUwOTMwXHUwOTM1XHUwOTNmXHUwOTM1XHUwOTNlXHUwOTMwX1x1MDkzOFx1MDk0Ylx1MDky''@;'; + put 'put ''ZVx1MDkzNVx1MDkzZVx1MDkzMF9cdTA5MmVcdTA5MDJcdTA5MTdcdTA5MzJcdTA5MzVcdTA5M2VcdTA5MzBfXHUwOTJjXHUwOTQxXHUwOTI3XHUwOTM1XHUwOTNlXHUwOTMwX1x1MDkxN1x1MDk0MVx1MDkzMFx1MDk0Mlx1MDkzNVx1MDkzZVx1MDkzMF9cdTA5MzZcdTA5NDFcdTA5MTVcdTA5''@;'; + put 'put ''NGRcdTA5MzBcdTA5MzVcdTA5M2VcdTA5MzBfXHUwOTM2XHUwOTI4XHUwOTNmXHUwOTM1XHUwOTNlXHUwOTMwIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6Ilx1MDkzMFx1MDkzNVx1MDkzZl9cdTA5MzhcdTA5NGJcdTA5MmVfXHUwOTJlXHUwOTAyXHUwOTE3XHUwOTMyX1x1MDkyY1x1MDk0''@;'; + put 'put ''MVx1MDkyN19cdTA5MTdcdTA5NDFcdTA5MzBcdTA5NDJfXHUwOTM2XHUwOTQxXHUwOTE1XHUwOTRkXHUwOTMwX1x1MDkzNlx1MDkyOFx1MDkzZiIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiXHUwOTMwX1x1MDkzOFx1MDk0Yl9cdTA5MmVcdTA5MDJfXHUwOTJjXHUwOTQxX1x1MDkxN1x1MDk0''@;'; + put 'put ''MV9cdTA5MzZcdTA5NDFfXHUwOTM2Ii5zcGxpdCgiXyIpLGxvbmdEYXRlRm9ybWF0OntMVDoiQSBoOm1tIFx1MDkyY1x1MDkxY1x1MDk0NyIsTFRTOiJBIGg6bW06c3MgXHUwOTJjXHUwOTFjXHUwOTQ3IixMOiJERC9NTS9ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVks''@;'; + put 'put ''IEEgaDptbSBcdTA5MmNcdTA5MWNcdTA5NDciLExMTEw6ImRkZGQsIEQgTU1NTSBZWVlZLCBBIGg6bW0gXHUwOTJjXHUwOTFjXHUwOTQ3In0sbW9udGhzUGFyc2U6TWUsbG9uZ01vbnRoc1BhcnNlOk1lLHNob3J0TW9udGhzUGFyc2U6Wy9eXHUwOTFjXHUwOTI4L2ksL15cdTA5MmJcdTA5M2Nc''@;'; + put 'put ''dTA5MzAvaSwvXlx1MDkyZVx1MDkzZVx1MDkzMFx1MDk0ZFx1MDkxYS9pLC9eXHUwOTA1XHUwOTJhXHUwOTRkXHUwOTMwXHUwOTQ4L2ksL15cdTA5MmVcdTA5MDgvaSwvXlx1MDkxY1x1MDk0Mlx1MDkyOC9pLC9eXHUwOTFjXHUwOTQxXHUwOTMyL2ksL15cdTA5MDVcdTA5MTcvaSwvXlx1MDkz''@;'; + put 'put ''OFx1MDkzZlx1MDkyNC9pLC9eXHUwOTA1XHUwOTE1XHUwOTRkXHUwOTFmXHUwOTQyL2ksL15cdTA5MjhcdTA5MzUvaSwvXlx1MDkyNlx1MDkzZlx1MDkzOC9pXSxtb250aHNSZWdleDovXihcdTA5MWNcdTA5MjhcdTA5MzVcdTA5MzBcdTA5NDB8XHUwOTFjXHUwOTI4XC4/fFx1MDkyYlx1MDkz''@;'; + put 'put ''Y1x1MDkzMFx1MDkzNVx1MDkzMFx1MDk0MHxcdTA5MmJcdTA5MzBcdTA5MzVcdTA5MzBcdTA5NDB8XHUwOTJiXHUwOTNjXHUwOTMwXC4/fFx1MDkyZVx1MDkzZVx1MDkzMFx1MDk0ZFx1MDkxYT98XHUwOTA1XHUwOTJhXHUwOTRkXHUwOTMwXHUwOTQ4XHUwOTMyfFx1MDkwNVx1MDkyYVx1MDk0''@;'; + put 'put ''ZFx1MDkzMFx1MDk0OFwuP3xcdTA5MmVcdTA5MDg/fFx1MDkxY1x1MDk0Mlx1MDkyOD98XHUwOTFjXHUwOTQxXHUwOTMyXHUwOTNlXHUwOTA4fFx1MDkxY1x1MDk0MVx1MDkzMlwuP3xcdTA5MDVcdTA5MTdcdTA5MzhcdTA5NGRcdTA5MjR8XHUwOTA1XHUwOTE3XC4/fFx1MDkzOFx1MDkzZlx1''@;'; + put 'put ''MDkyNFx1MDkyZVx1MDk0ZFx1MDkyY1x1MDkzMHxcdTA5MzhcdTA5M2ZcdTA5MjRcdTA5MDJcdTA5MmNcdTA5MzB8XHUwOTM4XHUwOTNmXHUwOTI0XC4/fFx1MDkwNVx1MDkxNVx1MDk0ZFx1MDkxZlx1MDk0Mlx1MDkyY1x1MDkzMHxcdTA5MDVcdTA5MTVcdTA5NGRcdTA5MWZcdTA5NDJcLj98''@;'; + put 'put ''XHUwOTI4XHUwOTM1XHUwOTJlXHUwOTRkXHUwOTJjXHUwOTMwfFx1MDkyOFx1MDkzNVx1MDkwMlx1MDkyY1x1MDkzMHxcdTA5MjhcdTA5MzVcLj98XHUwOTI2XHUwOTNmXHUwOTM4XHUwOTJlXHUwOTRkXHUwOTJjXHUwOTMwfFx1MDkyNlx1MDkzZlx1MDkzOFx1MDkwMlx1MDkyY1x1MDkzMHxc''@;'; + put 'put ''dTA5MjZcdTA5M2ZcdTA5MzhcLj8pL2ksbW9udGhzU2hvcnRSZWdleDovXihcdTA5MWNcdTA5MjhcdTA5MzVcdTA5MzBcdTA5NDB8XHUwOTFjXHUwOTI4XC4/fFx1MDkyYlx1MDkzY1x1MDkzMFx1MDkzNVx1MDkzMFx1MDk0MHxcdTA5MmJcdTA5MzBcdTA5MzVcdTA5MzBcdTA5NDB8XHUwOTJi''@;'; + put 'put ''XHUwOTNjXHUwOTMwXC4/fFx1MDkyZVx1MDkzZVx1MDkzMFx1MDk0ZFx1MDkxYT98XHUwOTA1XHUwOTJhXHUwOTRkXHUwOTMwXHUwOTQ4XHUwOTMyfFx1MDkwNVx1MDkyYVx1MDk0ZFx1MDkzMFx1MDk0OFwuP3xcdTA5MmVcdTA5MDg/fFx1MDkxY1x1MDk0Mlx1MDkyOD98XHUwOTFjXHUwOTQx''@;'; + put 'put ''XHUwOTMyXHUwOTNlXHUwOTA4fFx1MDkxY1x1MDk0MVx1MDkzMlwuP3xcdTA5MDVcdTA5MTdcdTA5MzhcdTA5NGRcdTA5MjR8XHUwOTA1XHUwOTE3XC4/fFx1MDkzOFx1MDkzZlx1MDkyNFx1MDkyZVx1MDk0ZFx1MDkyY1x1MDkzMHxcdTA5MzhcdTA5M2ZcdTA5MjRcdTA5MDJcdTA5MmNcdTA5''@;'; + put 'put ''MzB8XHUwOTM4XHUwOTNmXHUwOTI0XC4/fFx1MDkwNVx1MDkxNVx1MDk0ZFx1MDkxZlx1MDk0Mlx1MDkyY1x1MDkzMHxcdTA5MDVcdTA5MTVcdTA5NGRcdTA5MWZcdTA5NDJcLj98XHUwOTI4XHUwOTM1XHUwOTJlXHUwOTRkXHUwOTJjXHUwOTMwfFx1MDkyOFx1MDkzNVx1MDkwMlx1MDkyY1x1''@;'; + put 'put ''MDkzMHxcdTA5MjhcdTA5MzVcLj98XHUwOTI2XHUwOTNmXHUwOTM4XHUwOTJlXHUwOTRkXHUwOTJjXHUwOTMwfFx1MDkyNlx1MDkzZlx1MDkzOFx1MDkwMlx1MDkyY1x1MDkzMHxcdTA5MjZcdTA5M2ZcdTA5MzhcLj8pL2ksbW9udGhzU3RyaWN0UmVnZXg6L14oXHUwOTFjXHUwOTI4XHUwOTM1''@;'; + put 'put ''XHUwOTMwXHUwOTQwP3xcdTA5MmJcdTA5M2NcdTA5MzBcdTA5MzVcdTA5MzBcdTA5NDB8XHUwOTJiXHUwOTMwXHUwOTM1XHUwOTMwXHUwOTQwP3xcdTA5MmVcdTA5M2VcdTA5MzBcdTA5NGRcdTA5MWE/fFx1MDkwNVx1MDkyYVx1MDk0ZFx1MDkzMFx1MDk0OFx1MDkzMj98XHUwOTJlXHUwOTA4''@;'; + put 'put ''P3xcdTA5MWNcdTA5NDJcdTA5Mjg/fFx1MDkxY1x1MDk0MVx1MDkzMlx1MDkzZVx1MDkwOD98XHUwOTA1XHUwOTE3XHUwOTM4XHUwOTRkXHUwOTI0P3xcdTA5MzhcdTA5M2ZcdTA5MjRcdTA5MmVcdTA5NGRcdTA5MmNcdTA5MzB8XHUwOTM4XHUwOTNmXHUwOTI0XHUwOTAyXHUwOTJjXHUwOTMw''@;'; + put 'put ''fFx1MDkzOFx1MDkzZlx1MDkyND9cLj98XHUwOTA1XHUwOTE1XHUwOTRkXHUwOTFmXHUwOTQyXHUwOTJjXHUwOTMwfFx1MDkwNVx1MDkxNVx1MDk0ZFx1MDkxZlx1MDk0MlwuP3xcdTA5MjhcdTA5MzVcdTA5MmVcdTA5NGRcdTA5MmNcdTA5MzB8XHUwOTI4XHUwOTM1XHUwOTAyXHUwOTJjXHUw''@;'; + put 'put ''OTMwP3xcdTA5MjZcdTA5M2ZcdTA5MzhcdTA5MmVcdTA5NGRcdTA5MmNcdTA5MzB8XHUwOTI2XHUwOTNmXHUwOTM4XHUwOTAyXHUwOTJjXHUwOTMwPykvaSxtb250aHNTaG9ydFN0cmljdFJlZ2V4Oi9eKFx1MDkxY1x1MDkyOFwuP3xcdTA5MmJcdTA5M2NcdTA5MzBcLj98XHUwOTJlXHUwOTNl''@;'; + put 'put ''XHUwOTMwXHUwOTRkXHUwOTFhP3xcdTA5MDVcdTA5MmFcdTA5NGRcdTA5MzBcdTA5NDhcLj98XHUwOTJlXHUwOTA4P3xcdTA5MWNcdTA5NDJcdTA5Mjg/fFx1MDkxY1x1MDk0MVx1MDkzMlwuP3xcdTA5MDVcdTA5MTdcLj98XHUwOTM4XHUwOTNmXHUwOTI0XC4/fFx1MDkwNVx1MDkxNVx1MDk0''@;'; + put 'put ''ZFx1MDkxZlx1MDk0MlwuP3xcdTA5MjhcdTA5MzVcLj98XHUwOTI2XHUwOTNmXHUwOTM4XC4/KS9pLGNhbGVuZGFyOntzYW1lRGF5OiJbXHUwOTA2XHUwOTFjXSBMVCIsbmV4dERheToiW1x1MDkxNVx1MDkzMl0gTFQiLG5leHRXZWVrOiJkZGRkLCBMVCIsbGFzdERheToiW1x1MDkxNVx1MDkz''@;'; + put 'put ''Ml0gTFQiLGxhc3RXZWVrOiJbXHUwOTJhXHUwOTNmXHUwOTFiXHUwOTMyXHUwOTQ3XSBkZGRkLCBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiJXMgXHUwOTJlXHUwOTQ3XHUwOTAyIixwYXN0OiIlcyBcdTA5MmFcdTA5MzlcdTA5MzJcdTA5NDciLHM6Ilx1MDkxNVx1''@;'; + put 'put ''MDk0MVx1MDkxYiBcdTA5MzlcdTA5NDAgXHUwOTE1XHUwOTRkXHUwOTM3XHUwOTIzIixzczoiJWQgXHUwOTM4XHUwOTQ3XHUwOTE1XHUwOTAyXHUwOTIxIixtOiJcdTA5MGZcdTA5MTUgXHUwOTJlXHUwOTNmXHUwOTI4XHUwOTFmIixtbToiJWQgXHUwOTJlXHUwOTNmXHUwOTI4XHUwOTFmIixo''@;'; + put 'put ''OiJcdTA5MGZcdTA5MTUgXHUwOTE4XHUwOTAyXHUwOTFmXHUwOTNlIixoaDoiJWQgXHUwOTE4XHUwOTAyXHUwOTFmXHUwOTQ3IixkOiJcdTA5MGZcdTA5MTUgXHUwOTI2XHUwOTNmXHUwOTI4IixkZDoiJWQgXHUwOTI2XHUwOTNmXHUwOTI4IixNOiJcdTA5MGZcdTA5MTUgXHUwOTJlXHUwOTM5''@;'; + put 'put ''XHUwOTQwXHUwOTI4XHUwOTQ3IixNTToiJWQgXHUwOTJlXHUwOTM5XHUwOTQwXHUwOTI4XHUwOTQ3Iix5OiJcdTA5MGZcdTA5MTUgXHUwOTM1XHUwOTMwXHUwOTRkXHUwOTM3Iix5eToiJWQgXHUwOTM1XHUwOTMwXHUwOTRkXHUwOTM3In0scHJlcGFyc2U6ZnVuY3Rpb24oWil7cmV0dXJuIFou''@;'; + put 'put ''cmVwbGFjZSgvW1x1MDk2N1x1MDk2OFx1MDk2OVx1MDk2YVx1MDk2Ylx1MDk2Y1x1MDk2ZFx1MDk2ZVx1MDk2Zlx1MDk2Nl0vZyxmdW5jdGlvbihpZSl7cmV0dXJuIEVbaWVdfSl9LHBvc3Rmb3JtYXQ6ZnVuY3Rpb24oWil7cmV0dXJuIFoucmVwbGFjZSgvXGQvZyxmdW5jdGlvbihpZSl7cmV0''@;'; + put 'put ''dXJuIEJbaWVdfSl9LG1lcmlkaWVtUGFyc2U6L1x1MDkzMFx1MDkzZVx1MDkyNHxcdTA5MzhcdTA5NDFcdTA5MmNcdTA5Mzl8XHUwOTI2XHUwOTRiXHUwOTJhXHUwOTM5XHUwOTMwfFx1MDkzNlx1MDkzZVx1MDkyZS8sbWVyaWRpZW1Ib3VyOmZ1bmN0aW9uKFosaWUpe3JldHVybiAxMj09PVom''@;'; + put 'put ''JihaPTApLCJcdTA5MzBcdTA5M2VcdTA5MjQiPT09aWU/Wjw0P1o6WisxMjoiXHUwOTM4XHUwOTQxXHUwOTJjXHUwOTM5Ij09PWllP1o6Ilx1MDkyNlx1MDk0Ylx1MDkyYVx1MDkzOVx1MDkzMCI9PT1pZT9aPj0xMD9aOlorMTI6Ilx1MDkzNlx1MDkzZVx1MDkyZSI9PT1pZT9aKzEyOnZvaWQg''@;'; + put 'put ''MH0sbWVyaWRpZW06ZnVuY3Rpb24oWixpZSxhZSl7cmV0dXJuIFo8ND8iXHUwOTMwXHUwOTNlXHUwOTI0IjpaPDEwPyJcdTA5MzhcdTA5NDFcdTA5MmNcdTA5MzkiOlo8MTc/Ilx1MDkyNlx1MDk0Ylx1MDkyYVx1MDkzOVx1MDkzMCI6WjwyMD8iXHUwOTM2XHUwOTNlXHUwOTJlIjoiXHUwOTMw''@;'; + put 'put ''XHUwOTNlXHUwOTI0In0sd2Vlazp7ZG93OjAsZG95OjZ9fSl9KEwoMTU0MzkpKX0sNzQ1ODpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBCKE1lLFUsUSl7dmFyIFo9TWUrIiAiO3N3aXRjaChRKXtjYXNlInNzIjpyZXR1cm4gWisoMT09PU1l''@;'; + put 'put ''PyJzZWt1bmRhIjoyPT09TWV8fDM9PT1NZXx8ND09PU1lPyJzZWt1bmRlIjoic2VrdW5kaSIpO2Nhc2UibSI6cmV0dXJuIFU/ImplZG5hIG1pbnV0YSI6ImplZG5lIG1pbnV0ZSI7Y2FzZSJtbSI6cmV0dXJuIForKDE9PT1NZT8ibWludXRhIjoyPT09TWV8fDM9PT1NZXx8ND09PU1lPyJtaW51''@;'; + put 'put ''dGUiOiJtaW51dGEiKTtjYXNlImgiOnJldHVybiBVPyJqZWRhbiBzYXQiOiJqZWRub2cgc2F0YSI7Y2FzZSJoaCI6cmV0dXJuIForKDE9PT1NZT8ic2F0IjoyPT09TWV8fDM9PT1NZXx8ND09PU1lPyJzYXRhIjoic2F0aSIpO2Nhc2UiZGQiOnJldHVybiBaKygxPT09TWU/ImRhbiI6ImRhbmEi''@;'; + put 'put ''KTtjYXNlIk1NIjpyZXR1cm4gWisoMT09PU1lPyJtamVzZWMiOjI9PT1NZXx8Mz09PU1lfHw0PT09TWU/Im1qZXNlY2EiOiJtamVzZWNpIik7Y2FzZSJ5eSI6cmV0dXJuIForKDE9PT1NZT8iZ29kaW5hIjoyPT09TWV8fDM9PT1NZXx8ND09PU1lPyJnb2RpbmUiOiJnb2RpbmEiKX19bWUuZGVm''@;'; + put 'put ''aW5lTG9jYWxlKCJociIse21vbnRoczp7Zm9ybWF0OiJzaWplXHUwMTBkbmphX3ZlbGphXHUwMTBkZV9vXHUwMTdldWprYV90cmF2bmphX3N2aWJuamFfbGlwbmphX3NycG5qYV9rb2xvdm96YV9ydWpuYV9saXN0b3BhZGFfc3R1ZGVub2dhX3Byb3NpbmNhIi5zcGxpdCgiXyIpLHN0YW5kYWxv''@;'; + put 'put ''bmU6InNpamVcdTAxMGRhbmpfdmVsamFcdTAxMGRhX29cdTAxN2V1amFrX3RyYXZhbmpfc3ZpYmFual9saXBhbmpfc3JwYW5qX2tvbG92b3pfcnVqYW5fbGlzdG9wYWRfc3R1ZGVuaV9wcm9zaW5hYyIuc3BsaXQoIl8iKX0sbW9udGhzU2hvcnQ6InNpai5fdmVsai5fb1x1MDE3ZXUuX3RyYS5f''@;'; + put 'put ''c3ZpLl9saXAuX3NycC5fa29sLl9ydWouX2xpcy5fc3R1Ll9wcm8uIi5zcGxpdCgiXyIpLG1vbnRoc1BhcnNlRXhhY3Q6ITAsd2Vla2RheXM6Im5lZGplbGphX3BvbmVkamVsamFrX3V0b3Jha19zcmlqZWRhX1x1MDEwZGV0dnJ0YWtfcGV0YWtfc3Vib3RhIi5zcGxpdCgiXyIpLHdlZWtkYXlz''@;'; + put 'put ''U2hvcnQ6Im5lZC5fcG9uLl91dG8uX3NyaS5fXHUwMTBkZXQuX3BldC5fc3ViLiIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoibmVfcG9fdXRfc3JfXHUwMTBkZV9wZV9zdSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1BhcnNlRXhhY3Q6ITAsbG9uZ0RhdGVGb3JtYXQ6e0xUOiJIOm1tIixMVFM6Ikg6''@;'; + put 'put ''bW06c3MiLEw6IkRELk1NLllZWVkiLExMOiJEbyBNTU1NIFlZWVkiLExMTDoiRG8gTU1NTSBZWVlZIEg6bW0iLExMTEw6ImRkZGQsIERvIE1NTU0gWVlZWSBIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltkYW5hcyB1XSBMVCIsbmV4dERheToiW3N1dHJhIHVdIExUIixuZXh0V2VlazpmdW5j''@;'; + put 'put ''dGlvbigpe3N3aXRjaCh0aGlzLmRheSgpKXtjYXNlIDA6cmV0dXJuIlt1XSBbbmVkamVsanVdIFt1XSBMVCI7Y2FzZSAzOnJldHVybiJbdV0gW3NyaWplZHVdIFt1XSBMVCI7Y2FzZSA2OnJldHVybiJbdV0gW3N1Ym90dV0gW3VdIExUIjtjYXNlIDE6Y2FzZSAyOmNhc2UgNDpjYXNlIDU6cmV0''@;'; + put 'put ''dXJuIlt1XSBkZGRkIFt1XSBMVCJ9fSxsYXN0RGF5OiJbanVcdTAxMGRlciB1XSBMVCIsbGFzdFdlZWs6ZnVuY3Rpb24oKXtzd2l0Y2godGhpcy5kYXkoKSl7Y2FzZSAwOnJldHVybiJbcHJvXHUwMTYxbHVdIFtuZWRqZWxqdV0gW3VdIExUIjtjYXNlIDM6cmV0dXJuIltwcm9cdTAxNjFsdV0g''@;'; + put 'put ''W3NyaWplZHVdIFt1XSBMVCI7Y2FzZSA2OnJldHVybiJbcHJvXHUwMTYxbGVdIFtzdWJvdGVdIFt1XSBMVCI7Y2FzZSAxOmNhc2UgMjpjYXNlIDQ6Y2FzZSA1OnJldHVybiJbcHJvXHUwMTYxbGldIGRkZGQgW3VdIExUIn19LHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6Inph''@;'; + put 'put ''ICVzIixwYXN0OiJwcmlqZSAlcyIsczoicGFyIHNla3VuZGkiLHNzOkIsbTpCLG1tOkIsaDpCLGhoOkIsZDoiZGFuIixkZDpCLE06Im1qZXNlYyIsTU06Qix5OiJnb2RpbnUiLHl5OkJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn1cLi8sb3JkaW5hbDoiJWQuIix3ZWVrOntkb3c6''@;'; + put 'put ''MSxkb3k6N319KX0oTCgxNTQzOSkpfSw1NjU0MDpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0Ijt2YXIgQj0idmFzXHhlMXJuYXAgaFx4ZTl0Zlx1MDE1MW4ga2VkZGVuIHN6ZXJkXHhlMW4gY3NceGZjdFx4ZjZydFx4ZjZrXHhmNm4gcFx4ZTludGVrZW4gc3pv''@;'; + put 'put ''bWJhdG9uIi5zcGxpdCgiICIpO2Z1bmN0aW9uIEUoUSxaLGllLGFlKXt2YXIgWT1RO3N3aXRjaChpZSl7Y2FzZSJzIjpyZXR1cm4gYWV8fFo/Im5ceGU5aFx4ZTFueSBtXHhlMXNvZHBlcmMiOiJuXHhlOWhceGUxbnkgbVx4ZTFzb2RwZXJjZSI7Y2FzZSJzcyI6cmV0dXJuIFkrKGFlfHxaKT8i''@;'; + put 'put ''IG1ceGUxc29kcGVyYyI6IiBtXHhlMXNvZHBlcmNlIjtjYXNlIm0iOnJldHVybiJlZ3kiKyhhZXx8Wj8iIHBlcmMiOiIgcGVyY2UiKTtjYXNlIm1tIjpyZXR1cm4gWSsoYWV8fFo/IiBwZXJjIjoiIHBlcmNlIik7Y2FzZSJoIjpyZXR1cm4iZWd5IisoYWV8fFo/IiBceGYzcmEiOiIgXHhmM3Jc''@;'; + put 'put ''eGUxamEiKTtjYXNlImhoIjpyZXR1cm4gWSsoYWV8fFo/IiBceGYzcmEiOiIgXHhmM3JceGUxamEiKTtjYXNlImQiOnJldHVybiJlZ3kiKyhhZXx8Wj8iIG5hcCI6IiBuYXBqYSIpO2Nhc2UiZGQiOnJldHVybiBZKyhhZXx8Wj8iIG5hcCI6IiBuYXBqYSIpO2Nhc2UiTSI6cmV0dXJuImVneSIr''@;'; + put 'put ''KGFlfHxaPyIgaFx4ZjNuYXAiOiIgaFx4ZjNuYXBqYSIpO2Nhc2UiTU0iOnJldHVybiBZKyhhZXx8Wj8iIGhceGYzbmFwIjoiIGhceGYzbmFwamEiKTtjYXNlInkiOnJldHVybiJlZ3kiKyhhZXx8Wj8iIFx4ZTl2IjoiIFx4ZTl2ZSIpO2Nhc2UieXkiOnJldHVybiBZKyhhZXx8Wj8iIFx4ZTl2''@;'; + put 'put ''IjoiIFx4ZTl2ZSIpfXJldHVybiIifWZ1bmN0aW9uIE1lKFEpe3JldHVybihRPyIiOiJbbVx4ZmFsdF0gIikrIlsiK0JbdGhpcy5kYXkoKV0rIl0gTFRbLWtvcl0ifW1lLmRlZmluZUxvY2FsZSgiaHUiLHttb250aHM6ImphbnVceGUxcl9mZWJydVx4ZTFyX21ceGUxcmNpdXNfXHhlMXByaWxp''@;'; + put 'put ''c19tXHhlMWp1c19qXHhmYW5pdXNfalx4ZmFsaXVzX2F1Z3VzenR1c19zemVwdGVtYmVyX29rdFx4ZjNiZXJfbm92ZW1iZXJfZGVjZW1iZXIiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6Imphbi5fZmViLl9tXHhlMXJjLl9ceGUxcHIuX21ceGUxai5falx4ZmFuLl9qXHhmYWwuX2F1Zy5fc3pl''@;'; + put 'put ''cHQuX29rdC5fbm92Ll9kZWMuIi5zcGxpdCgiXyIpLG1vbnRoc1BhcnNlRXhhY3Q6ITAsd2Vla2RheXM6InZhc1x4ZTFybmFwX2hceGU5dGZcdTAxNTFfa2VkZF9zemVyZGFfY3NceGZjdFx4ZjZydFx4ZjZrX3BceGU5bnRla19zem9tYmF0Ii5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6InZh''@;'; + put 'put ''c19oXHhlOXRfa2VkZF9zemVfY3NceGZjdF9wXHhlOW5fc3pvIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJ2X2hfa19zemVfY3NfcF9zem8iLnNwbGl0KCJfIiksbG9uZ0RhdGVGb3JtYXQ6e0xUOiJIOm1tIixMVFM6Ikg6bW06c3MiLEw6IllZWVkuTU0uREQuIixMTDoiWVlZWS4gTU1NTSBE''@;'; + put 'put ''LiIsTExMOiJZWVlZLiBNTU1NIEQuIEg6bW0iLExMTEw6IllZWVkuIE1NTU0gRC4sIGRkZGQgSDptbSJ9LG1lcmlkaWVtUGFyc2U6L2RlfGR1L2ksaXNQTTpmdW5jdGlvbihRKXtyZXR1cm4idSI9PT1RLmNoYXJBdCgxKS50b0xvd2VyQ2FzZSgpfSxtZXJpZGllbTpmdW5jdGlvbihRLFosaWUp''@;'; + put 'put ''e3JldHVybiBRPDEyPyEwPT09aWU/ImRlIjoiREUiOiEwPT09aWU/ImR1IjoiRFUifSxjYWxlbmRhcjp7c2FtZURheToiW21hXSBMVFsta29yXSIsbmV4dERheToiW2hvbG5hcF0gTFRbLWtvcl0iLG5leHRXZWVrOmZ1bmN0aW9uKCl7cmV0dXJuIE1lLmNhbGwodGhpcywhMCl9LGxhc3REYXk6''@;'; + put 'put ''Ilt0ZWduYXBdIExUWy1rb3JdIixsYXN0V2VlazpmdW5jdGlvbigpe3JldHVybiBNZS5jYWxsKHRoaXMsITEpfSxzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiIlcyBtXHhmYWx2YSIscGFzdDoiJXMiLHM6RSxzczpFLG06RSxtbTpFLGg6RSxoaDpFLGQ6RSxkZDpFLE06RSxN''@;'; + put 'put ''TTpFLHk6RSx5eTpFfSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9XC4vLG9yZGluYWw6IiVkLiIsd2Vlazp7ZG93OjEsZG95OjR9fSl9KEwoMTU0MzkpKX0sNjUyODM6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7bWUuZGVmaW5lTG9jYWxlKCJo''@;'; + put 'put ''eS1hbSIse21vbnRoczp7Zm9ybWF0OiJcdTA1NzBcdTA1NzhcdTA1ODJcdTA1NzZcdTA1N2VcdTA1NjFcdTA1ODBcdTA1NmJfXHUwNTgzXHUwNTY1XHUwNTdmXHUwNTgwXHUwNTdlXHUwNTYxXHUwNTgwXHUwNTZiX1x1MDU3NFx1MDU2MVx1MDU4MFx1MDU3Zlx1MDU2Yl9cdTA1NjFcdTA1N2Fc''@;'; + put 'put ''dTA1ODBcdTA1NmJcdTA1NmNcdTA1NmJfXHUwNTc0XHUwNTYxXHUwNTc1XHUwNTZiXHUwNTdkXHUwNTZiX1x1MDU3MFx1MDU3OFx1MDU4Mlx1MDU3Nlx1MDU2Ylx1MDU3ZFx1MDU2Yl9cdTA1NzBcdTA1NzhcdTA1ODJcdTA1NmNcdTA1NmJcdTA1N2RcdTA1NmJfXHUwNTg1XHUwNTYzXHUwNTc4''@;'; + put 'put ''XHUwNTdkXHUwNTdmXHUwNTc4XHUwNTdkXHUwNTZiX1x1MDU3ZFx1MDU2NVx1MDU3YVx1MDU3Zlx1MDU2NVx1MDU3NFx1MDU2Mlx1MDU2NVx1MDU4MFx1MDU2Yl9cdTA1NzBcdTA1NzhcdTA1NmZcdTA1N2ZcdTA1NjVcdTA1NzRcdTA1NjJcdTA1NjVcdTA1ODBcdTA1NmJfXHUwNTc2XHUwNTc4''@;'; + put 'put ''XHUwNTc1XHUwNTY1XHUwNTc0XHUwNTYyXHUwNTY1XHUwNTgwXHUwNTZiX1x1MDU2NFx1MDU2NVx1MDU2Zlx1MDU3Zlx1MDU2NVx1MDU3NFx1MDU2Mlx1MDU2NVx1MDU4MFx1MDU2YiIuc3BsaXQoIl8iKSxzdGFuZGFsb25lOiJcdTA1NzBcdTA1NzhcdTA1ODJcdTA1NzZcdTA1N2VcdTA1NjFc''@;'; + put 'put ''dTA1ODBfXHUwNTgzXHUwNTY1XHUwNTdmXHUwNTgwXHUwNTdlXHUwNTYxXHUwNTgwX1x1MDU3NFx1MDU2MVx1MDU4MFx1MDU3Zl9cdTA1NjFcdTA1N2FcdTA1ODBcdTA1NmJcdTA1NmNfXHUwNTc0XHUwNTYxXHUwNTc1XHUwNTZiXHUwNTdkX1x1MDU3MFx1MDU3OFx1MDU4Mlx1MDU3Nlx1MDU2''@;'; + put 'put ''Ylx1MDU3ZF9cdTA1NzBcdTA1NzhcdTA1ODJcdTA1NmNcdTA1NmJcdTA1N2RfXHUwNTg1XHUwNTYzXHUwNTc4XHUwNTdkXHUwNTdmXHUwNTc4XHUwNTdkX1x1MDU3ZFx1MDU2NVx1MDU3YVx1MDU3Zlx1MDU2NVx1MDU3NFx1MDU2Mlx1MDU2NVx1MDU4MF9cdTA1NzBcdTA1NzhcdTA1NmZcdTA1''@;'; + put 'put ''N2ZcdTA1NjVcdTA1NzRcdTA1NjJcdTA1NjVcdTA1ODBfXHUwNTc2XHUwNTc4XHUwNTc1XHUwNTY1XHUwNTc0XHUwNTYyXHUwNTY1XHUwNTgwX1x1MDU2NFx1MDU2NVx1MDU2Zlx1MDU3Zlx1MDU2NVx1MDU3NFx1MDU2Mlx1MDU2NVx1MDU4MCIuc3BsaXQoIl8iKX0sbW9udGhzU2hvcnQ6Ilx1''@;'; + put 'put ''MDU3MFx1MDU3Nlx1MDU3ZV9cdTA1ODNcdTA1N2ZcdTA1ODBfXHUwNTc0XHUwNTgwXHUwNTdmX1x1MDU2MVx1MDU3YVx1MDU4MF9cdTA1NzRcdTA1NzVcdTA1N2RfXHUwNTcwXHUwNTc2XHUwNTdkX1x1MDU3MFx1MDU2Y1x1MDU3ZF9cdTA1ODVcdTA1NjNcdTA1N2RfXHUwNTdkXHUwNTdhXHUw''@;'; + put 'put ''NTdmX1x1MDU3MFx1MDU2Zlx1MDU3Zl9cdTA1NzZcdTA1NzRcdTA1NjJfXHUwNTY0XHUwNTZmXHUwNTdmIi5zcGxpdCgiXyIpLHdlZWtkYXlzOiJcdTA1NmZcdTA1NmJcdTA1ODBcdTA1NjFcdTA1NmZcdTA1NmJfXHUwNTY1XHUwNTgwXHUwNTZmXHUwNTc4XHUwNTgyXHUwNTc3XHUwNTYxXHUw''@;'; + put 'put ''NTYyXHUwNTY5XHUwNTZiX1x1MDU2NVx1MDU4MFx1MDU2NVx1MDU4NFx1MDU3N1x1MDU2MVx1MDU2Mlx1MDU2OVx1MDU2Yl9cdTA1NzlcdTA1NzhcdTA1ODBcdTA1NjVcdTA1ODRcdTA1NzdcdTA1NjFcdTA1NjJcdTA1NjlcdTA1NmJfXHUwNTcwXHUwNTZiXHUwNTc2XHUwNTYzXHUwNTc3XHUw''@;'; + put 'put ''NTYxXHUwNTYyXHUwNTY5XHUwNTZiX1x1MDU3OFx1MDU4Mlx1MDU4MFx1MDU2Mlx1MDU2MVx1MDU2OV9cdTA1NzdcdTA1NjFcdTA1NjJcdTA1NjFcdTA1NjkiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiXHUwNTZmXHUwNTgwXHUwNTZmX1x1MDU2NVx1MDU4MFx1MDU2Zl9cdTA1NjVcdTA1''@;'; + put 'put ''ODBcdTA1ODRfXHUwNTc5XHUwNTgwXHUwNTg0X1x1MDU3MFx1MDU3Nlx1MDU2M19cdTA1NzhcdTA1ODJcdTA1ODBcdTA1NjJfXHUwNTc3XHUwNTYyXHUwNTY5Ii5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJcdTA1NmZcdTA1ODBcdTA1NmZfXHUwNTY1XHUwNTgwXHUwNTZmX1x1MDU2NVx1MDU4''@;'; + put 'put ''MFx1MDU4NF9cdTA1NzlcdTA1ODBcdTA1ODRfXHUwNTcwXHUwNTc2XHUwNTYzX1x1MDU3OFx1MDU4Mlx1MDU4MFx1MDU2Ml9cdTA1NzdcdTA1NjJcdTA1NjkiLnNwbGl0KCJfIiksbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoiREQuTU0uWVlZWSIsTEw6IkQg''@;'; + put 'put ''TU1NTSBZWVlZIFx1MDU2OS4iLExMTDoiRCBNTU1NIFlZWVkgXHUwNTY5LiwgSEg6bW0iLExMTEw6ImRkZGQsIEQgTU1NTSBZWVlZIFx1MDU2OS4sIEhIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltcdTA1NjFcdTA1NzVcdTA1N2RcdTA1ODVcdTA1ODBdIExUIixuZXh0RGF5OiJbXHUwNTdl''@;'; + put 'put ''XHUwNTYxXHUwNTcyXHUwNTY4XSBMVCIsbGFzdERheToiW1x1MDU2NVx1MDU4MFx1MDU2NVx1MDU2Zl0gTFQiLG5leHRXZWVrOmZ1bmN0aW9uKCl7cmV0dXJuImRkZGQgW1x1MDU4NVx1MDU4MFx1MDU2OCBcdTA1NmFcdTA1NjFcdTA1NzRcdTA1NjhdIExUIn0sbGFzdFdlZWs6ZnVuY3Rpb24o''@;'; + put 'put ''KXtyZXR1cm4iW1x1MDU2MVx1MDU3Nlx1MDU4MVx1MDU2MVx1MDU2ZV0gZGRkZCBbXHUwNTg1XHUwNTgwXHUwNTY4IFx1MDU2YVx1MDU2MVx1MDU3NFx1MDU2OF0gTFQifSxzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiIlcyBcdTA1NzBcdTA1NjVcdTA1N2ZcdTA1NzgiLHBh''@;'; + put 'put ''c3Q6IiVzIFx1MDU2MVx1MDU3Y1x1MDU2MVx1MDU3YiIsczoiXHUwNTc0XHUwNTZiIFx1MDU4NFx1MDU2MVx1MDU3Nlx1MDU2YiBcdTA1N2VcdTA1NjFcdTA1NzVcdTA1ODBcdTA1NmZcdTA1NzVcdTA1NjFcdTA1NzYiLHNzOiIlZCBcdTA1N2VcdTA1NjFcdTA1NzVcdTA1ODBcdTA1NmZcdTA1''@;'; + put 'put ''NzVcdTA1NjFcdTA1NzYiLG06Ilx1MDU4MFx1MDU3OFx1MDU3YVx1MDU2NSIsbW06IiVkIFx1MDU4MFx1MDU3OFx1MDU3YVx1MDU2NSIsaDoiXHUwNTZhXHUwNTYxXHUwNTc0IixoaDoiJWQgXHUwNTZhXHUwNTYxXHUwNTc0IixkOiJcdTA1ODVcdTA1ODAiLGRkOiIlZCBcdTA1ODVcdTA1ODAi''@;'; + put 'put ''LE06Ilx1MDU2MVx1MDU3NFx1MDU2Ylx1MDU3ZCIsTU06IiVkIFx1MDU2MVx1MDU3NFx1MDU2Ylx1MDU3ZCIseToiXHUwNTdmXHUwNTYxXHUwNTgwXHUwNTZiIix5eToiJWQgXHUwNTdmXHUwNTYxXHUwNTgwXHUwNTZiIn0sbWVyaWRpZW1QYXJzZTovXHUwNTYzXHUwNTZiXHUwNTc3XHUwNTY1''@;'; + put 'put ''XHUwNTgwXHUwNTdlXHUwNTYxfFx1MDU2MVx1MDU3Y1x1MDU2MVx1MDU3ZVx1MDU3OFx1MDU3Zlx1MDU3ZVx1MDU2MXxcdTA1ODFcdTA1NjVcdTA1ODBcdTA1NjVcdTA1NmZcdTA1N2VcdTA1NjF8XHUwNTY1XHUwNTgwXHUwNTY1XHUwNTZmXHUwNTc4XHUwNTc1XHUwNTYxXHUwNTc2Lyxpc1BN''@;'; + put 'put ''OmZ1bmN0aW9uKEUpe3JldHVybi9eKFx1MDU4MVx1MDU2NVx1MDU4MFx1MDU2NVx1MDU2Zlx1MDU3ZVx1MDU2MXxcdTA1NjVcdTA1ODBcdTA1NjVcdTA1NmZcdTA1NzhcdTA1NzVcdTA1NjFcdTA1NzYpJC8udGVzdChFKX0sbWVyaWRpZW06ZnVuY3Rpb24oRSl7cmV0dXJuIEU8ND8iXHUwNTYz''@;'; + put 'put ''XHUwNTZiXHUwNTc3XHUwNTY1XHUwNTgwXHUwNTdlXHUwNTYxIjpFPDEyPyJcdTA1NjFcdTA1N2NcdTA1NjFcdTA1N2VcdTA1NzhcdTA1N2ZcdTA1N2VcdTA1NjEiOkU8MTc/Ilx1MDU4MVx1MDU2NVx1MDU4MFx1MDU2NVx1MDU2Zlx1MDU3ZVx1MDU2MSI6Ilx1MDU2NVx1MDU4MFx1MDU2NVx1''@;'; + put 'put ''MDU2Zlx1MDU3OFx1MDU3NVx1MDU2MVx1MDU3NiJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn18XGR7MSwyfS0oXHUwNTZiXHUwNTc2fFx1MDU4MFx1MDU2NCkvLG9yZGluYWw6ZnVuY3Rpb24oRSxNZSl7c3dpdGNoKE1lKXtjYXNlIkRERCI6Y2FzZSJ3IjpjYXNlIlciOmNhc2Ui''@;'; + put 'put ''REREbyI6cmV0dXJuIDE9PT1FP0UrIi1cdTA1NmJcdTA1NzYiOkUrIi1cdTA1ODBcdTA1NjQiO2RlZmF1bHQ6cmV0dXJuIEV9fSx3ZWVrOntkb3c6MSxkb3k6N319KX0oTCgxNTQzOSkpfSw5ODc4MDpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0IjttZS5kZWZp''@;'; + put 'put ''bmVMb2NhbGUoImlkIix7bW9udGhzOiJKYW51YXJpX0ZlYnJ1YXJpX01hcmV0X0FwcmlsX01laV9KdW5pX0p1bGlfQWd1c3R1c19TZXB0ZW1iZXJfT2t0b2Jlcl9Ob3ZlbWJlcl9EZXNlbWJlciIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiSmFuX0ZlYl9NYXJfQXByX01laV9KdW5fSnVsX0Fn''@;'; + put 'put ''dF9TZXBfT2t0X05vdl9EZXMiLnNwbGl0KCJfIiksd2Vla2RheXM6Ik1pbmdndV9TZW5pbl9TZWxhc2FfUmFidV9LYW1pc19KdW1hdF9TYWJ0dSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJNaW5fU2VuX1NlbF9SYWJfS2FtX0p1bV9TYWIiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46Ik1n''@;'; + put 'put ''X1NuX1NsX1JiX0ttX0ptX1NiIi5zcGxpdCgiXyIpLGxvbmdEYXRlRm9ybWF0OntMVDoiSEgubW0iLExUUzoiSEgubW0uc3MiLEw6IkREL01NL1lZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0gWVlZWSBbcHVrdWxdIEhILm1tIixMTExMOiJkZGRkLCBEIE1NTU0gWVlZWSBbcHVr''@;'; + put 'put ''dWxdIEhILm1tIn0sbWVyaWRpZW1QYXJzZTovcGFnaXxzaWFuZ3xzb3JlfG1hbGFtLyxtZXJpZGllbUhvdXI6ZnVuY3Rpb24oRSxNZSl7cmV0dXJuIDEyPT09RSYmKEU9MCksInBhZ2kiPT09TWU/RToic2lhbmciPT09TWU/RT49MTE/RTpFKzEyOiJzb3JlIj09PU1lfHwibWFsYW0iPT09TWU/''@;'; + put 'put ''RSsxMjp2b2lkIDB9LG1lcmlkaWVtOmZ1bmN0aW9uKEUsTWUsVSl7cmV0dXJuIEU8MTE/InBhZ2kiOkU8MTU/InNpYW5nIjpFPDE5PyJzb3JlIjoibWFsYW0ifSxjYWxlbmRhcjp7c2FtZURheToiW0hhcmkgaW5pIHB1a3VsXSBMVCIsbmV4dERheToiW0Jlc29rIHB1a3VsXSBMVCIsbmV4dFdl''@;'; + put 'put ''ZWs6ImRkZGQgW3B1a3VsXSBMVCIsbGFzdERheToiW0tlbWFyaW4gcHVrdWxdIExUIixsYXN0V2VlazoiZGRkZCBbbGFsdSBwdWt1bF0gTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6ImRhbGFtICVzIixwYXN0OiIlcyB5YW5nIGxhbHUiLHM6ImJlYmVyYXBhIGRldGlr''@;'; + put 'put ''IixzczoiJWQgZGV0aWsiLG06InNlbWVuaXQiLG1tOiIlZCBtZW5pdCIsaDoic2VqYW0iLGhoOiIlZCBqYW0iLGQ6InNlaGFyaSIsZGQ6IiVkIGhhcmkiLE06InNlYnVsYW4iLE1NOiIlZCBidWxhbiIseToic2V0YWh1biIseXk6IiVkIHRhaHVuIn0sd2Vlazp7ZG93OjAsZG95OjZ9fSl9KEwo''@;'; + put 'put ''MTU0MzkpKX0sMTQyMDU6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gQihVKXtyZXR1cm4gVSUxMDA9PTExfHxVJTEwIT0xfWZ1bmN0aW9uIEUoVSxRLFosaWUpe3ZhciBhZT1VKyIgIjtzd2l0Y2goWil7Y2FzZSJzIjpyZXR1cm4gUXx8aWU/''@;'; + put 'put ''Im5va2tyYXIgc2VrXHhmYW5kdXIiOiJub2trcnVtIHNla1x4ZmFuZHVtIjtjYXNlInNzIjpyZXR1cm4gQihVKT9hZSsoUXx8aWU/InNla1x4ZmFuZHVyIjoic2VrXHhmYW5kdW0iKTphZSsic2VrXHhmYW5kYSI7Y2FzZSJtIjpyZXR1cm4gUT8ibVx4ZWRuXHhmYXRhIjoibVx4ZWRuXHhmYXR1''@;'; + put 'put ''IjtjYXNlIm1tIjpyZXR1cm4gQihVKT9hZSsoUXx8aWU/Im1ceGVkblx4ZmF0dXIiOiJtXHhlZG5ceGZhdHVtIik6UT9hZSsibVx4ZWRuXHhmYXRhIjphZSsibVx4ZWRuXHhmYXR1IjtjYXNlImhoIjpyZXR1cm4gQihVKT9hZSsoUXx8aWU/ImtsdWtrdXN0dW5kaXIiOiJrbHVra3VzdHVuZHVt''@;'; + put 'put ''Iik6YWUrImtsdWtrdXN0dW5kIjtjYXNlImQiOnJldHVybiBRPyJkYWd1ciI6aWU/ImRhZyI6ImRlZ2kiO2Nhc2UiZGQiOnJldHVybiBCKFUpP1E/YWUrImRhZ2FyIjphZSsoaWU/ImRhZ2EiOiJkXHhmNmd1bSIpOlE/YWUrImRhZ3VyIjphZSsoaWU/ImRhZyI6ImRlZ2kiKTtjYXNlIk0iOnJl''@;'; + put 'put ''dHVybiBRPyJtXHhlMW51XHhmMHVyIjppZT8ibVx4ZTFudVx4ZjAiOiJtXHhlMW51XHhmMGkiO2Nhc2UiTU0iOnJldHVybiBCKFUpP1E/YWUrIm1ceGUxbnVceGYwaXIiOmFlKyhpZT8ibVx4ZTFudVx4ZjBpIjoibVx4ZTFudVx4ZjB1bSIpOlE/YWUrIm1ceGUxbnVceGYwdXIiOmFlKyhpZT8i''@;'; + put 'put ''bVx4ZTFudVx4ZjAiOiJtXHhlMW51XHhmMGkiKTtjYXNlInkiOnJldHVybiBRfHxpZT8iXHhlMXIiOiJceGUxcmkiO2Nhc2UieXkiOnJldHVybiBCKFUpP2FlKyhRfHxpZT8iXHhlMXIiOiJceGUxcnVtIik6YWUrKFF8fGllPyJceGUxciI6Ilx4ZTFyaSIpfX1tZS5kZWZpbmVMb2NhbGUoImlz''@;'; + put 'put ''Iix7bW9udGhzOiJqYW5ceGZhYXJfZmViclx4ZmFhcl9tYXJzX2Fwclx4ZWRsX21hXHhlZF9qXHhmYW5ceGVkX2pceGZhbFx4ZWRfXHhlMWdceGZhc3Rfc2VwdGVtYmVyX29rdFx4ZjNiZXJfblx4ZjN2ZW1iZXJfZGVzZW1iZXIiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6Imphbl9mZWJfbWFy''@;'; + put 'put ''X2Fwcl9tYVx4ZWRfalx4ZmFuX2pceGZhbF9ceGUxZ1x4ZmFfc2VwX29rdF9uXHhmM3ZfZGVzIi5zcGxpdCgiXyIpLHdlZWtkYXlzOiJzdW5udWRhZ3VyX21ceGUxbnVkYWd1cl9ceGZlcmlceGYwanVkYWd1cl9taVx4ZjB2aWt1ZGFndXJfZmltbXR1ZGFndXJfZlx4ZjZzdHVkYWd1cl9sYXVn''@;'; + put 'put ''YXJkYWd1ciIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJzdW5fbVx4ZTFuX1x4ZmVyaV9taVx4ZjBfZmltX2ZceGY2c19sYXUiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46IlN1X01ceGUxX1x4ZGVyX01pX0ZpX0ZceGY2X0xhIi5zcGxpdCgiXyIpLGxvbmdEYXRlRm9ybWF0OntMVDoiSDpt''@;'; + put 'put ''bSIsTFRTOiJIOm1tOnNzIixMOiJERC5NTS5ZWVlZIixMTDoiRC4gTU1NTSBZWVlZIixMTEw6IkQuIE1NTU0gWVlZWSBba2wuXSBIOm1tIixMTExMOiJkZGRkLCBELiBNTU1NIFlZWVkgW2tsLl0gSDptbSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbXHhlZCBkYWcga2wuXSBMVCIsbmV4dERheToi''@;'; + put 'put ''W1x4ZTEgbW9yZ3VuIGtsLl0gTFQiLG5leHRXZWVrOiJkZGRkIFtrbC5dIExUIixsYXN0RGF5OiJbXHhlZCBnXHhlNnIga2wuXSBMVCIsbGFzdFdlZWs6IltzXHhlZFx4ZjBhc3RhXSBkZGRkIFtrbC5dIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJlZnRpciAlcyIs''@;'; + put 'put ''cGFzdDoiZnlyaXIgJXMgc1x4ZWRceGYwYW4iLHM6RSxzczpFLG06RSxtbTpFLGg6ImtsdWtrdXN0dW5kIixoaDpFLGQ6RSxkZDpFLE06RSxNTTpFLHk6RSx5eTpFfSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9XC4vLG9yZGluYWw6IiVkLiIsd2Vlazp7ZG93OjEsZG95OjR9fSl9''@;'; + put 'put ''KEwoMTU0MzkpKX0sMjk5ODU6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7bWUuZGVmaW5lTG9jYWxlKCJpdC1jaCIse21vbnRoczoiZ2VubmFpb19mZWJicmFpb19tYXJ6b19hcHJpbGVfbWFnZ2lvX2dpdWdub19sdWdsaW9fYWdvc3RvX3NldHRlbWJyZV9v''@;'; + put 'put ''dHRvYnJlX25vdmVtYnJlX2RpY2VtYnJlIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJnZW5fZmViX21hcl9hcHJfbWFnX2dpdV9sdWdfYWdvX3NldF9vdHRfbm92X2RpYyIuc3BsaXQoIl8iKSx3ZWVrZGF5czoiZG9tZW5pY2FfbHVuZWRceGVjX21hcnRlZFx4ZWNfbWVyY29sZWRceGVjX2dp''@;'; + put 'put ''b3ZlZFx4ZWNfdmVuZXJkXHhlY19zYWJhdG8iLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiZG9tX2x1bl9tYXJfbWVyX2dpb192ZW5fc2FiIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJkb19sdV9tYV9tZV9naV92ZV9zYSIuc3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1t''@;'; + put 'put ''IixMVFM6IkhIOm1tOnNzIixMOiJERC5NTS5ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVkgSEg6bW0iLExMTEw6ImRkZGQgRCBNTU1NIFlZWVkgSEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW09nZ2kgYWxsZV0gTFQiLG5leHREYXk6IltEb21hbmkgYWxsZV0gTFQi''@;'; + put 'put ''LG5leHRXZWVrOiJkZGRkIFthbGxlXSBMVCIsbGFzdERheToiW0llcmkgYWxsZV0gTFQiLGxhc3RXZWVrOmZ1bmN0aW9uKCl7cmV0dXJuIDA9PT10aGlzLmRheSgpPyJbbGEgc2NvcnNhXSBkZGRkIFthbGxlXSBMVCI6IltsbyBzY29yc29dIGRkZGQgW2FsbGVdIExUIn0sc2FtZUVsc2U6Ikwi''@;'; + put 'put ''fSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTpmdW5jdGlvbihFKXtyZXR1cm4oL15bMC05XS4rJC8udGVzdChFKT8idHJhIjoiaW4iKSsiICIrRX0scGFzdDoiJXMgZmEiLHM6ImFsY3VuaSBzZWNvbmRpIixzczoiJWQgc2Vjb25kaSIsbToidW4gbWludXRvIixtbToiJWQgbWludXRpIixoOiJ1bidv''@;'; + put 'put ''cmEiLGhoOiIlZCBvcmUiLGQ6InVuIGdpb3JubyIsZGQ6IiVkIGdpb3JuaSIsTToidW4gbWVzZSIsTU06IiVkIG1lc2kiLHk6InVuIGFubm8iLHl5OiIlZCBhbm5pIn0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfVx4YmEvLG9yZGluYWw6IiVkXHhiYSIsd2Vlazp7ZG93OjEsZG95''@;'; + put 'put ''OjR9fSl9KEwoMTU0MzkpKX0sMzQyMTE6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7bWUuZGVmaW5lTG9jYWxlKCJpdCIse21vbnRoczoiZ2VubmFpb19mZWJicmFpb19tYXJ6b19hcHJpbGVfbWFnZ2lvX2dpdWdub19sdWdsaW9fYWdvc3RvX3NldHRlbWJy''@;'; + put 'put ''ZV9vdHRvYnJlX25vdmVtYnJlX2RpY2VtYnJlIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJnZW5fZmViX21hcl9hcHJfbWFnX2dpdV9sdWdfYWdvX3NldF9vdHRfbm92X2RpYyIuc3BsaXQoIl8iKSx3ZWVrZGF5czoiZG9tZW5pY2FfbHVuZWRceGVjX21hcnRlZFx4ZWNfbWVyY29sZWRceGVj''@;'; + put 'put ''X2dpb3ZlZFx4ZWNfdmVuZXJkXHhlY19zYWJhdG8iLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiZG9tX2x1bl9tYXJfbWVyX2dpb192ZW5fc2FiIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJkb19sdV9tYV9tZV9naV92ZV9zYSIuc3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhI''@;'; + put 'put ''Om1tIixMVFM6IkhIOm1tOnNzIixMOiJERC9NTS9ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVkgSEg6bW0iLExMTEw6ImRkZGQgRCBNTU1NIFlZWVkgSEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheTpmdW5jdGlvbigpe3JldHVybiJbT2dnaSBhIisodGhpcy5ob3Vycygp''@;'; + put 'put ''PjE/ImxsZSAiOjA9PT10aGlzLmhvdXJzKCk/IiAiOiJsbCciKSsiXUxUIn0sbmV4dERheTpmdW5jdGlvbigpe3JldHVybiJbRG9tYW5pIGEiKyh0aGlzLmhvdXJzKCk+MT8ibGxlICI6MD09PXRoaXMuaG91cnMoKT8iICI6ImxsJyIpKyJdTFQifSxuZXh0V2VlazpmdW5jdGlvbigpe3JldHVy''@;'; + put 'put ''biJkZGRkIFthIisodGhpcy5ob3VycygpPjE/ImxsZSAiOjA9PT10aGlzLmhvdXJzKCk/IiAiOiJsbCciKSsiXUxUIn0sbGFzdERheTpmdW5jdGlvbigpe3JldHVybiJbSWVyaSBhIisodGhpcy5ob3VycygpPjE/ImxsZSAiOjA9PT10aGlzLmhvdXJzKCk/IiAiOiJsbCciKSsiXUxUIn0sbGFz''@;'; + put 'put ''dFdlZWs6ZnVuY3Rpb24oKXtyZXR1cm4gMD09PXRoaXMuZGF5KCk/IltMYSBzY29yc2FdIGRkZGQgW2EiKyh0aGlzLmhvdXJzKCk+MT8ibGxlICI6MD09PXRoaXMuaG91cnMoKT8iICI6ImxsJyIpKyJdTFQiOiJbTG8gc2NvcnNvXSBkZGRkIFthIisodGhpcy5ob3VycygpPjE/ImxsZSAiOjA9''@;'; + put 'put ''PT10aGlzLmhvdXJzKCk/IiAiOiJsbCciKSsiXUxUIn0sc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToidHJhICVzIixwYXN0OiIlcyBmYSIsczoiYWxjdW5pIHNlY29uZGkiLHNzOiIlZCBzZWNvbmRpIixtOiJ1biBtaW51dG8iLG1tOiIlZCBtaW51dGkiLGg6InVuJ29yYSIs''@;'; + put 'put ''aGg6IiVkIG9yZSIsZDoidW4gZ2lvcm5vIixkZDoiJWQgZ2lvcm5pIix3OiJ1bmEgc2V0dGltYW5hIix3dzoiJWQgc2V0dGltYW5lIixNOiJ1biBtZXNlIixNTToiJWQgbWVzaSIseToidW4gYW5ubyIseXk6IiVkIGFubmkifSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9XHhiYS8s''@;'; + put 'put ''b3JkaW5hbDoiJWRceGJhIix3ZWVrOntkb3c6MSxkb3k6NH19KX0oTCgxNTQzOSkpfSwzMTAwMzpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0IjttZS5kZWZpbmVMb2NhbGUoImphIix7ZXJhczpbe3NpbmNlOiIyMDE5LTA1LTAxIixvZmZzZXQ6MSxuYW1lOiJc''@;'; + put 'put ''dTRlZTRcdTU0OGMiLG5hcnJvdzoiXHUzMmZmIixhYmJyOiJSIn0se3NpbmNlOiIxOTg5LTAxLTA4Iix1bnRpbDoiMjAxOS0wNC0zMCIsb2Zmc2V0OjEsbmFtZToiXHU1ZTczXHU2MjEwIixuYXJyb3c6Ilx1MzM3YiIsYWJicjoiSCJ9LHtzaW5jZToiMTkyNi0xMi0yNSIsdW50aWw6IjE5ODkt''@;'; + put 'put ''MDEtMDciLG9mZnNldDoxLG5hbWU6Ilx1NjYyZFx1NTQ4YyIsbmFycm93OiJcdTMzN2MiLGFiYnI6IlMifSx7c2luY2U6IjE5MTItMDctMzAiLHVudGlsOiIxOTI2LTEyLTI0IixvZmZzZXQ6MSxuYW1lOiJcdTU5MjdcdTZiNjMiLG5hcnJvdzoiXHUzMzdkIixhYmJyOiJUIn0se3NpbmNlOiIx''@;'; + put 'put ''ODczLTAxLTAxIix1bnRpbDoiMTkxMi0wNy0yOSIsb2Zmc2V0OjYsbmFtZToiXHU2NjBlXHU2Y2JiIixuYXJyb3c6Ilx1MzM3ZSIsYWJicjoiTSJ9LHtzaW5jZToiMDAwMS0wMS0wMSIsdW50aWw6IjE4NzMtMTItMzEiLG9mZnNldDoxLG5hbWU6Ilx1ODk3Zlx1NjZhNiIsbmFycm93OiJBRCIs''@;'; + put 'put ''YWJicjoiQUQifSx7c2luY2U6IjAwMDAtMTItMzEiLHVudGlsOi0xLzAsb2Zmc2V0OjEsbmFtZToiXHU3ZDAwXHU1MTQzXHU1MjRkIixuYXJyb3c6IkJDIixhYmJyOiJCQyJ9XSxlcmFZZWFyT3JkaW5hbFJlZ2V4Oi8oXHU1MTQzfFxkKylcdTVlNzQvLGVyYVllYXJPcmRpbmFsUGFyc2U6ZnVu''@;'; + put 'put ''Y3Rpb24oRSxNZSl7cmV0dXJuIlx1NTE0MyI9PT1NZVsxXT8xOnBhcnNlSW50KE1lWzFdfHxFLDEwKX0sbW9udGhzOiIxXHU2NzA4XzJcdTY3MDhfM1x1NjcwOF80XHU2NzA4XzVcdTY3MDhfNlx1NjcwOF83XHU2NzA4XzhcdTY3MDhfOVx1NjcwOF8xMFx1NjcwOF8xMVx1NjcwOF8xMlx1Njcw''@;'; + put 'put ''OCIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiMVx1NjcwOF8yXHU2NzA4XzNcdTY3MDhfNFx1NjcwOF81XHU2NzA4XzZcdTY3MDhfN1x1NjcwOF84XHU2NzA4XzlcdTY3MDhfMTBcdTY3MDhfMTFcdTY3MDhfMTJcdTY3MDgiLnNwbGl0KCJfIiksd2Vla2RheXM6Ilx1NjVlNVx1NjZkY1x1NjVl''@;'; + put 'put ''NV9cdTY3MDhcdTY2ZGNcdTY1ZTVfXHU3MDZiXHU2NmRjXHU2NWU1X1x1NmMzNFx1NjZkY1x1NjVlNV9cdTY3MjhcdTY2ZGNcdTY1ZTVfXHU5MWQxXHU2NmRjXHU2NWU1X1x1NTcxZlx1NjZkY1x1NjVlNSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJcdTY1ZTVfXHU2NzA4X1x1NzA2Yl9c''@;'; + put 'put ''dTZjMzRfXHU2NzI4X1x1OTFkMV9cdTU3MWYiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46Ilx1NjVlNV9cdTY3MDhfXHU3MDZiX1x1NmMzNF9cdTY3MjhfXHU5MWQxX1x1NTcxZiIuc3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJZWVlZL01N''@;'; + put 'put ''L0REIixMTDoiWVlZWVx1NWU3NE1cdTY3MDhEXHU2NWU1IixMTEw6IllZWVlcdTVlNzRNXHU2NzA4RFx1NjVlNSBISDptbSIsTExMTDoiWVlZWVx1NWU3NE1cdTY3MDhEXHU2NWU1IGRkZGQgSEg6bW0iLGw6IllZWVkvTU0vREQiLGxsOiJZWVlZXHU1ZTc0TVx1NjcwOERcdTY1ZTUiLGxsbDoi''@;'; + put 'put ''WVlZWVx1NWU3NE1cdTY3MDhEXHU2NWU1IEhIOm1tIixsbGxsOiJZWVlZXHU1ZTc0TVx1NjcwOERcdTY1ZTUoZGRkKSBISDptbSJ9LG1lcmlkaWVtUGFyc2U6L1x1NTM0OFx1NTI0ZHxcdTUzNDhcdTVmOGMvaSxpc1BNOmZ1bmN0aW9uKEUpe3JldHVybiJcdTUzNDhcdTVmOGMiPT09RX0sbWVy''@;'; + put 'put ''aWRpZW06ZnVuY3Rpb24oRSxNZSxVKXtyZXR1cm4gRTwxMj8iXHU1MzQ4XHU1MjRkIjoiXHU1MzQ4XHU1ZjhjIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltcdTRlY2FcdTY1ZTVdIExUIixuZXh0RGF5OiJbXHU2NjBlXHU2NWU1XSBMVCIsbmV4dFdlZWs6ZnVuY3Rpb24oRSl7cmV0dXJuIEUud2Vl''@;'; + put 'put ''aygpIT09dGhpcy53ZWVrKCk/IltcdTY3NjVcdTkwMzFdZGRkZCBMVCI6ImRkZGQgTFQifSxsYXN0RGF5OiJbXHU2NjI4XHU2NWU1XSBMVCIsbGFzdFdlZWs6ZnVuY3Rpb24oRSl7cmV0dXJuIHRoaXMud2VlaygpIT09RS53ZWVrKCk/IltcdTUxNDhcdTkwMzFdZGRkZCBMVCI6ImRkZGQgTFQi''@;'; + put 'put ''fSxzYW1lRWxzZToiTCJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn1cdTY1ZTUvLG9yZGluYWw6ZnVuY3Rpb24oRSxNZSl7c3dpdGNoKE1lKXtjYXNlInkiOnJldHVybiAxPT09RT8iXHU1MTQzXHU1ZTc0IjpFKyJcdTVlNzQiO2Nhc2UiZCI6Y2FzZSJEIjpjYXNlIkRERCI6cmV0''@;'; + put 'put ''dXJuIEUrIlx1NjVlNSI7ZGVmYXVsdDpyZXR1cm4gRX19LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiIlc1x1NWY4YyIscGFzdDoiJXNcdTUyNGQiLHM6Ilx1NjU3MFx1NzlkMiIsc3M6IiVkXHU3OWQyIixtOiIxXHU1MjA2IixtbToiJWRcdTUyMDYiLGg6IjFcdTY2NDJcdTk1OTMiLGhoOiIlZFx1''@;'; + put 'put ''NjY0Mlx1OTU5MyIsZDoiMVx1NjVlNSIsZGQ6IiVkXHU2NWU1IixNOiIxXHUzMGY2XHU2NzA4IixNTToiJWRcdTMwZjZcdTY3MDgiLHk6IjFcdTVlNzQiLHl5OiIlZFx1NWU3NCJ9fSl9KEwoMTU0MzkpKX0sNjA0MjA6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmlj''@;'; + put 'put ''dCI7bWUuZGVmaW5lTG9jYWxlKCJqdiIse21vbnRoczoiSmFudWFyaV9GZWJydWFyaV9NYXJldF9BcHJpbF9NZWlfSnVuaV9KdWxpX0FndXN0dXNfU2VwdGVtYmVyX09rdG9iZXJfTm9wZW1iZXJfRGVzZW1iZXIiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6Ikphbl9GZWJfTWFyX0Fwcl9NZWlf''@;'; + put 'put ''SnVuX0p1bF9BZ3NfU2VwX09rdF9Ob3BfRGVzIi5zcGxpdCgiXyIpLHdlZWtkYXlzOiJNaW5nZ3VfU2VuZW5fU2Vsb3NvX1JlYnVfS2VtaXNfSmVtdXdhaF9TZXB0dSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJNaW5fU2VuX1NlbF9SZWJfS2VtX0plbV9TZXAiLnNwbGl0KCJfIiksd2Vl''@;'; + put 'put ''a2RheXNNaW46Ik1nX1NuX1NsX1JiX0ttX0ptX1NwIi5zcGxpdCgiXyIpLGxvbmdEYXRlRm9ybWF0OntMVDoiSEgubW0iLExUUzoiSEgubW0uc3MiLEw6IkREL01NL1lZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0gWVlZWSBbcHVrdWxdIEhILm1tIixMTExMOiJkZGRkLCBEIE1N''@;'; + put 'put ''TU0gWVlZWSBbcHVrdWxdIEhILm1tIn0sbWVyaWRpZW1QYXJzZTovZW5qaW5nfHNpeWFuZ3xzb250ZW58bmRhbHUvLG1lcmlkaWVtSG91cjpmdW5jdGlvbihFLE1lKXtyZXR1cm4gMTI9PT1FJiYoRT0wKSwiZW5qaW5nIj09PU1lP0U6InNpeWFuZyI9PT1NZT9FPj0xMT9FOkUrMTI6InNvbnRl''@;'; + put 'put ''biI9PT1NZXx8Im5kYWx1Ij09PU1lP0UrMTI6dm9pZCAwfSxtZXJpZGllbTpmdW5jdGlvbihFLE1lLFUpe3JldHVybiBFPDExPyJlbmppbmciOkU8MTU/InNpeWFuZyI6RTwxOT8ic29udGVuIjoibmRhbHUifSxjYWxlbmRhcjp7c2FtZURheToiW0RpbnRlbiBwdW5pa28gcHVrdWxdIExUIixu''@;'; + put 'put ''ZXh0RGF5OiJbTWJlbmphbmcgcHVrdWxdIExUIixuZXh0V2VlazoiZGRkZCBbcHVrdWxdIExUIixsYXN0RGF5OiJbS2FsYSB3aW5naSBwdWt1bF0gTFQiLGxhc3RXZWVrOiJkZGRkIFtrZXBlbmdrZXIgcHVrdWxdIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJ3b250''@;'; + put 'put ''ZW4gaW5nICVzIixwYXN0OiIlcyBpbmdrYW5nIGtlcGVuZ2tlciIsczoic2F3ZXRhd2lzIGRldGlrIixzczoiJWQgZGV0aWsiLG06InNldHVuZ2dhbCBtZW5pdCIsbW06IiVkIG1lbml0IixoOiJzZXR1bmdnYWwgamFtIixoaDoiJWQgamFtIixkOiJzZWRpbnRlbiIsZGQ6IiVkIGRpbnRlbiIs''@;'; + put 'put ''TToic2V3dWxhbiIsTU06IiVkIHd1bGFuIix5OiJzZXRhdW4iLHl5OiIlZCB0YXVuIn0sd2Vlazp7ZG93OjEsZG95Ojd9fSl9KEwoMTU0MzkpKX0sNDA4NTE6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7bWUuZGVmaW5lTG9jYWxlKCJrYSIse21vbnRoczoi''@;'; + put 'put ''XHUxMGQ4XHUxMGQwXHUxMGRjXHUxMGQ1XHUxMGQwXHUxMGUwXHUxMGQ4X1x1MTBkN1x1MTBkNFx1MTBkMVx1MTBkNFx1MTBlMFx1MTBkNVx1MTBkMFx1MTBkYVx1MTBkOF9cdTEwZGJcdTEwZDBcdTEwZTBcdTEwZTJcdTEwZDhfXHUxMGQwXHUxMGRlXHUxMGUwXHUxMGQ4XHUxMGRhXHUxMGQ4''@;'; + put 'put ''X1x1MTBkYlx1MTBkMFx1MTBkOFx1MTBlMVx1MTBkOF9cdTEwZDhcdTEwZDVcdTEwZGNcdTEwZDhcdTEwZTFcdTEwZDhfXHUxMGQ4XHUxMGQ1XHUxMGRhXHUxMGQ4XHUxMGUxXHUxMGQ4X1x1MTBkMFx1MTBkMlx1MTBkNVx1MTBkOFx1MTBlMVx1MTBlMlx1MTBkZF9cdTEwZTFcdTEwZDRcdTEw''@;'; + put 'put ''ZTVcdTEwZTJcdTEwZDRcdTEwZGJcdTEwZDFcdTEwZDRcdTEwZTBcdTEwZDhfXHUxMGRkXHUxMGU1XHUxMGUyXHUxMGRkXHUxMGRiXHUxMGQxXHUxMGQ0XHUxMGUwXHUxMGQ4X1x1MTBkY1x1MTBkZFx1MTBkNFx1MTBkYlx1MTBkMVx1MTBkNFx1MTBlMFx1MTBkOF9cdTEwZDNcdTEwZDRcdTEw''@;'; + put 'put ''ZDlcdTEwZDRcdTEwZGJcdTEwZDFcdTEwZDRcdTEwZTBcdTEwZDgiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6Ilx1MTBkOFx1MTBkMFx1MTBkY19cdTEwZDdcdTEwZDRcdTEwZDFfXHUxMGRiXHUxMGQwXHUxMGUwX1x1MTBkMFx1MTBkZVx1MTBlMF9cdTEwZGJcdTEwZDBcdTEwZDhfXHUxMGQ4''@;'; + put 'put ''XHUxMGQ1XHUxMGRjX1x1MTBkOFx1MTBkNVx1MTBkYV9cdTEwZDBcdTEwZDJcdTEwZDVfXHUxMGUxXHUxMGQ0XHUxMGU1X1x1MTBkZFx1MTBlNVx1MTBlMl9cdTEwZGNcdTEwZGRcdTEwZDRfXHUxMGQzXHUxMGQ0XHUxMGQ5Ii5zcGxpdCgiXyIpLHdlZWtkYXlzOntzdGFuZGFsb25lOiJcdTEw''@;'; + put 'put ''ZDlcdTEwZDVcdTEwZDhcdTEwZTBcdTEwZDBfXHUxMGRkXHUxMGUwXHUxMGU4XHUxMGQwXHUxMGQxXHUxMGQwXHUxMGQ3XHUxMGQ4X1x1MTBlMVx1MTBkMFx1MTBkYlx1MTBlOFx1MTBkMFx1MTBkMVx1MTBkMFx1MTBkN1x1MTBkOF9cdTEwZGRcdTEwZDdcdTEwZWVcdTEwZThcdTEwZDBcdTEw''@;'; + put 'put ''ZDFcdTEwZDBcdTEwZDdcdTEwZDhfXHUxMGVlXHUxMGUzXHUxMGQ3XHUxMGU4XHUxMGQwXHUxMGQxXHUxMGQwXHUxMGQ3XHUxMGQ4X1x1MTBkZVx1MTBkMFx1MTBlMFx1MTBkMFx1MTBlMVx1MTBkOVx1MTBkNFx1MTBkNVx1MTBkOF9cdTEwZThcdTEwZDBcdTEwZDFcdTEwZDBcdTEwZDdcdTEw''@;'; + put 'put ''ZDgiLnNwbGl0KCJfIiksZm9ybWF0OiJcdTEwZDlcdTEwZDVcdTEwZDhcdTEwZTBcdTEwZDBcdTEwZTFfXHUxMGRkXHUxMGUwXHUxMGU4XHUxMGQwXHUxMGQxXHUxMGQwXHUxMGQ3XHUxMGUxX1x1MTBlMVx1MTBkMFx1MTBkYlx1MTBlOFx1MTBkMFx1MTBkMVx1MTBkMFx1MTBkN1x1MTBlMV9c''@;'; + put 'put ''dTEwZGRcdTEwZDdcdTEwZWVcdTEwZThcdTEwZDBcdTEwZDFcdTEwZDBcdTEwZDdcdTEwZTFfXHUxMGVlXHUxMGUzXHUxMGQ3XHUxMGU4XHUxMGQwXHUxMGQxXHUxMGQwXHUxMGQ3XHUxMGUxX1x1MTBkZVx1MTBkMFx1MTBlMFx1MTBkMFx1MTBlMVx1MTBkOVx1MTBkNFx1MTBkNVx1MTBlMV9c''@;'; + put 'put ''dTEwZThcdTEwZDBcdTEwZDFcdTEwZDBcdTEwZDdcdTEwZTEiLnNwbGl0KCJfIiksaXNGb3JtYXQ6LyhcdTEwZWNcdTEwZDhcdTEwZGNcdTEwZDB8XHUxMGU4XHUxMGQ0XHUxMGRiXHUxMGQzXHUxMGQ0XHUxMGQyKS99LHdlZWtkYXlzU2hvcnQ6Ilx1MTBkOVx1MTBkNVx1MTBkOF9cdTEwZGRc''@;'; + put 'put ''dTEwZTBcdTEwZThfXHUxMGUxXHUxMGQwXHUxMGRiX1x1MTBkZFx1MTBkN1x1MTBlZV9cdTEwZWVcdTEwZTNcdTEwZDdfXHUxMGRlXHUxMGQwXHUxMGUwX1x1MTBlOFx1MTBkMFx1MTBkMSIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiXHUxMGQ5XHUxMGQ1X1x1MTBkZFx1MTBlMF9cdTEwZTFc''@;'; + put 'put ''dTEwZDBfXHUxMGRkXHUxMGQ3X1x1MTBlZVx1MTBlM19cdTEwZGVcdTEwZDBfXHUxMGU4XHUxMGQwIi5zcGxpdCgiXyIpLGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IkREL01NL1lZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0gWVlZWSBISDpt''@;'; + put 'put ''bSIsTExMTDoiZGRkZCwgRCBNTU1NIFlZWVkgSEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW1x1MTBkM1x1MTBlNlx1MTBkNFx1MTBlMV0gTFRbLVx1MTBkNlx1MTBkNF0iLG5leHREYXk6IltcdTEwZWVcdTEwZDVcdTEwZDBcdTEwZGFdIExUWy1cdTEwZDZcdTEwZDRdIixsYXN0RGF5OiJb''@;'; + put 'put ''XHUxMGQyXHUxMGUzXHUxMGU4XHUxMGQ4XHUxMGRjXSBMVFstXHUxMGQ2XHUxMGQ0XSIsbmV4dFdlZWs6IltcdTEwZThcdTEwZDRcdTEwZGJcdTEwZDNcdTEwZDRcdTEwZDJdIGRkZGQgTFRbLVx1MTBkNlx1MTBkNF0iLGxhc3RXZWVrOiJbXHUxMGVjXHUxMGQ4XHUxMGRjXHUxMGQwXSBkZGRk''@;'; + put 'put ''IExULVx1MTBkNlx1MTBkNCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTpmdW5jdGlvbihFKXtyZXR1cm4gRS5yZXBsYWNlKC8oXHUxMGVjXHUxMGQwXHUxMGRifFx1MTBlY1x1MTBlM1x1MTBkN3xcdTEwZTFcdTEwZDBcdTEwZDBcdTEwZDd8XHUxMGVjXHUxMGQ0XHUxMGRh''@;'; + put 'put ''fFx1MTBkM1x1MTBlNnxcdTEwZDdcdTEwZDUpKFx1MTBkOHxcdTEwZDQpLyxmdW5jdGlvbihNZSxVLFEpe3JldHVybiJcdTEwZDgiPT09UT9VKyJcdTEwZThcdTEwZDgiOlUrUSsiXHUxMGU4XHUxMGQ4In0pfSxwYXN0OmZ1bmN0aW9uKEUpe3JldHVybi8oXHUxMGVjXHUxMGQwXHUxMGRiXHUx''@;'; + put 'put ''MGQ4fFx1MTBlY1x1MTBlM1x1MTBkN1x1MTBkOHxcdTEwZTFcdTEwZDBcdTEwZDBcdTEwZDdcdTEwZDh8XHUxMGQzXHUxMGU2XHUxMGQ0fFx1MTBkN1x1MTBkNVx1MTBkNCkvLnRlc3QoRSk/RS5yZXBsYWNlKC8oXHUxMGQ4fFx1MTBkNCkkLywiXHUxMGQ4XHUxMGUxIFx1MTBlY1x1MTBkOFx1''@;'; + put 'put ''MTBkYyIpOi9cdTEwZWNcdTEwZDRcdTEwZGFcdTEwZDgvLnRlc3QoRSk/RS5yZXBsYWNlKC9cdTEwZWNcdTEwZDRcdTEwZGFcdTEwZDgkLywiXHUxMGVjXHUxMGRhXHUxMGQ4XHUxMGUxIFx1MTBlY1x1MTBkOFx1MTBkYyIpOkV9LHM6Ilx1MTBlMFx1MTBkMFx1MTBkYlx1MTBkM1x1MTBkNFx1''@;'; + put 'put ''MTBkY1x1MTBkOFx1MTBkYlx1MTBkNCBcdTEwZWNcdTEwZDBcdTEwZGJcdTEwZDgiLHNzOiIlZCBcdTEwZWNcdTEwZDBcdTEwZGJcdTEwZDgiLG06Ilx1MTBlY1x1MTBlM1x1MTBkN1x1MTBkOCIsbW06IiVkIFx1MTBlY1x1MTBlM1x1MTBkN1x1MTBkOCIsaDoiXHUxMGUxXHUxMGQwXHUxMGQw''@;'; + put 'put ''XHUxMGQ3XHUxMGQ4IixoaDoiJWQgXHUxMGUxXHUxMGQwXHUxMGQwXHUxMGQ3XHUxMGQ4IixkOiJcdTEwZDNcdTEwZTZcdTEwZDQiLGRkOiIlZCBcdTEwZDNcdTEwZTZcdTEwZDQiLE06Ilx1MTBkN1x1MTBkNVx1MTBkNCIsTU06IiVkIFx1MTBkN1x1MTBkNVx1MTBkNCIseToiXHUxMGVjXHUx''@;'; + put 'put ''MGQ0XHUxMGRhXHUxMGQ4Iix5eToiJWQgXHUxMGVjXHUxMGQ0XHUxMGRhXHUxMGQ4In0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovMHwxLVx1MTBkYVx1MTBkOHxcdTEwZGJcdTEwZDQtXGR7MSwyfXxcZHsxLDJ9LVx1MTBkNC8sb3JkaW5hbDpmdW5jdGlvbihFKXtyZXR1cm4gMD09PUU/RTox''@;'; + put 'put ''PT09RT9FKyItXHUxMGRhXHUxMGQ4IjpFPDIwfHxFPD0xMDAmJkUlMjA9PTB8fEUlMTAwPT0wPyJcdTEwZGJcdTEwZDQtIitFOkUrIi1cdTEwZDQifSx3ZWVrOntkb3c6MSxkb3k6N319KX0oTCgxNTQzOSkpfSwxNjA3NDpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3Ry''@;'; + put 'put ''aWN0Ijt2YXIgQj17MDoiLVx1MDQ0OFx1MDQ1NiIsMToiLVx1MDQ0OFx1MDQ1NiIsMjoiLVx1MDQ0OFx1MDQ1NiIsMzoiLVx1MDQ0OFx1MDQ1NiIsNDoiLVx1MDQ0OFx1MDQ1NiIsNToiLVx1MDQ0OFx1MDQ1NiIsNjoiLVx1MDQ0OFx1MDQ0YiIsNzoiLVx1MDQ0OFx1MDQ1NiIsODoiLVx1MDQ0''@;'; + put 'put ''OFx1MDQ1NiIsOToiLVx1MDQ0OFx1MDQ0YiIsMTA6Ii1cdTA0NDhcdTA0NGIiLDIwOiItXHUwNDQ4XHUwNDRiIiwzMDoiLVx1MDQ0OFx1MDQ0YiIsNDA6Ii1cdTA0NDhcdTA0NGIiLDUwOiItXHUwNDQ4XHUwNDU2Iiw2MDoiLVx1MDQ0OFx1MDQ0YiIsNzA6Ii1cdTA0NDhcdTA0NTYiLDgwOiIt''@;'; + put 'put ''XHUwNDQ4XHUwNDU2Iiw5MDoiLVx1MDQ0OFx1MDQ0YiIsMTAwOiItXHUwNDQ4XHUwNDU2In07bWUuZGVmaW5lTG9jYWxlKCJrayIse21vbnRoczoiXHUwNDliXHUwNDMwXHUwNGEzXHUwNDQyXHUwNDMwXHUwNDQwX1x1MDQzMFx1MDQ5Ylx1MDQzZlx1MDQzMFx1MDQzZF9cdTA0M2RcdTA0MzBc''@;'; + put 'put ''dTA0NDNcdTA0NDBcdTA0NGJcdTA0MzdfXHUwNDQxXHUwNGQ5XHUwNDQzXHUwNDU2XHUwNDQwX1x1MDQzY1x1MDQzMFx1MDQzY1x1MDQ0Ylx1MDQ0MF9cdTA0M2NcdTA0MzBcdTA0NDNcdTA0NDFcdTA0NGJcdTA0M2NfXHUwNDQ4XHUwNDU2XHUwNDNiXHUwNDM0XHUwNDM1X1x1MDQ0Mlx1MDQz''@;'; + put 'put ''MFx1MDQzY1x1MDQ0Ylx1MDQzN19cdTA0OWJcdTA0NGJcdTA0NDBcdTA0M2FcdTA0YWZcdTA0MzlcdTA0MzVcdTA0M2FfXHUwNDliXHUwNDMwXHUwNDM3XHUwNDMwXHUwNDNkX1x1MDQ5Ylx1MDQzMFx1MDQ0MFx1MDQzMFx1MDQ0OFx1MDQzMF9cdTA0MzZcdTA0MzVcdTA0M2JcdTA0NDJcdTA0''@;'; + put 'put ''M2VcdTA0OWJcdTA0NDFcdTA0MzBcdTA0M2QiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6Ilx1MDQ5Ylx1MDQzMFx1MDRhM19cdTA0MzBcdTA0OWJcdTA0M2ZfXHUwNDNkXHUwNDMwXHUwNDQzX1x1MDQ0MVx1MDRkOVx1MDQ0M19cdTA0M2NcdTA0MzBcdTA0M2NfXHUwNDNjXHUwNDMwXHUwNDQz''@;'; + put 'put ''X1x1MDQ0OFx1MDQ1Nlx1MDQzYl9cdTA0NDJcdTA0MzBcdTA0M2NfXHUwNDliXHUwNDRiXHUwNDQwX1x1MDQ5Ylx1MDQzMFx1MDQzN19cdTA0OWJcdTA0MzBcdTA0NDBfXHUwNDM2XHUwNDM1XHUwNDNiIi5zcGxpdCgiXyIpLHdlZWtkYXlzOiJcdTA0MzZcdTA0MzVcdTA0M2FcdTA0NDFcdTA0''@;'; + put 'put ''MzVcdTA0M2RcdTA0MzFcdTA0NTZfXHUwNDM0XHUwNGFmXHUwNDM5XHUwNDQxXHUwNDM1XHUwNDNkXHUwNDMxXHUwNDU2X1x1MDQ0MVx1MDQzNVx1MDQzOVx1MDQ0MVx1MDQzNVx1MDQzZFx1MDQzMVx1MDQ1Nl9cdTA0NDFcdTA0ZDlcdTA0NDBcdTA0NDFcdTA0MzVcdTA0M2RcdTA0MzFcdTA0''@;'; + put 'put ''NTZfXHUwNDMxXHUwNDM1XHUwNDM5XHUwNDQxXHUwNDM1XHUwNDNkXHUwNDMxXHUwNDU2X1x1MDQzNlx1MDRiMVx1MDQzY1x1MDQzMF9cdTA0NDFcdTA0MzVcdTA0M2RcdTA0MzFcdTA0NTYiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiXHUwNDM2XHUwNDM1XHUwNDNhX1x1MDQzNFx1MDRh''@;'; + put 'put ''Zlx1MDQzOV9cdTA0NDFcdTA0MzVcdTA0MzlfXHUwNDQxXHUwNGQ5XHUwNDQwX1x1MDQzMVx1MDQzNVx1MDQzOV9cdTA0MzZcdTA0YjFcdTA0M2NfXHUwNDQxXHUwNDM1XHUwNDNkIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJcdTA0MzZcdTA0M2FfXHUwNDM0XHUwNDM5X1x1MDQ0MVx1MDQz''@;'; + put 'put ''OV9cdTA0NDFcdTA0NDBfXHUwNDMxXHUwNDM5X1x1MDQzNlx1MDQzY19cdTA0NDFcdTA0M2QiLnNwbGl0KCJfIiksbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoiREQuTU0uWVlZWSIsTEw6IkQgTU1NTSBZWVlZIixMTEw6IkQgTU1NTSBZWVlZIEhIOm1tIixM''@;'; + put 'put ''TExMOiJkZGRkLCBEIE1NTU0gWVlZWSBISDptbSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbXHUwNDExXHUwNGFmXHUwNDMzXHUwNDU2XHUwNDNkIFx1MDQ0MVx1MDQzMFx1MDQ5M1x1MDQzMFx1MDQ0Ml0gTFQiLG5leHREYXk6IltcdTA0MTVcdTA0NDBcdTA0NDJcdTA0MzVcdTA0YTMgXHUwNDQx''@;'; + put 'put ''XHUwNDMwXHUwNDkzXHUwNDMwXHUwNDQyXSBMVCIsbmV4dFdlZWs6ImRkZGQgW1x1MDQ0MVx1MDQzMFx1MDQ5M1x1MDQzMFx1MDQ0Ml0gTFQiLGxhc3REYXk6IltcdTA0MWFcdTA0MzVcdTA0NDhcdTA0MzUgXHUwNDQxXHUwNDMwXHUwNDkzXHUwNDMwXHUwNDQyXSBMVCIsbGFzdFdlZWs6Iltc''@;'; + put 'put ''dTA0ZThcdTA0NDJcdTA0M2FcdTA0MzVcdTA0M2QgXHUwNDMwXHUwNDNmXHUwNDQyXHUwNDMwXHUwNDNkXHUwNDRiXHUwNGEzXSBkZGRkIFtcdTA0NDFcdTA0MzBcdTA0OTNcdTA0MzBcdTA0NDJdIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiIlcyBcdTA0NTZcdTA0''@;'; + put 'put ''NDhcdTA0NTZcdTA0M2RcdTA0MzRcdTA0MzUiLHBhc3Q6IiVzIFx1MDQzMVx1MDRiMVx1MDQ0MFx1MDQ0Ylx1MDQzZCIsczoiXHUwNDMxXHUwNDU2XHUwNDQwXHUwNDNkXHUwNDM1XHUwNDQ4XHUwNDM1IFx1MDQ0MVx1MDQzNVx1MDQzYVx1MDQ0M1x1MDQzZFx1MDQzNCIsc3M6IiVkIFx1MDQ0''@;'; + put 'put ''MVx1MDQzNVx1MDQzYVx1MDQ0M1x1MDQzZFx1MDQzNCIsbToiXHUwNDMxXHUwNDU2XHUwNDQwIFx1MDQzY1x1MDQzOFx1MDQzZFx1MDQ0M1x1MDQ0MiIsbW06IiVkIFx1MDQzY1x1MDQzOFx1MDQzZFx1MDQ0M1x1MDQ0MiIsaDoiXHUwNDMxXHUwNDU2XHUwNDQwIFx1MDQ0MVx1MDQzMFx1MDQ5''@;'; + put 'put ''M1x1MDQzMFx1MDQ0MiIsaGg6IiVkIFx1MDQ0MVx1MDQzMFx1MDQ5M1x1MDQzMFx1MDQ0MiIsZDoiXHUwNDMxXHUwNDU2XHUwNDQwIFx1MDQzYVx1MDRhZlx1MDQzZCIsZGQ6IiVkIFx1MDQzYVx1MDRhZlx1MDQzZCIsTToiXHUwNDMxXHUwNDU2XHUwNDQwIFx1MDQzMFx1MDQzOSIsTU06IiVk''@;'; + put 'put ''IFx1MDQzMFx1MDQzOSIseToiXHUwNDMxXHUwNDU2XHUwNDQwIFx1MDQzNlx1MDQ0Ylx1MDQzYiIseXk6IiVkIFx1MDQzNlx1MDQ0Ylx1MDQzYiJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn0tKFx1MDQ0OFx1MDQ1NnxcdTA0NDhcdTA0NGIpLyxvcmRpbmFsOmZ1bmN0aW9uKE1l''@;'; + put 'put ''KXtyZXR1cm4gTWUrKEJbTWVdfHxCW01lJTEwXXx8QltNZT49MTAwPzEwMDpudWxsXSl9LHdlZWs6e2RvdzoxLGRveTo3fX0pfShMKDE1NDM5KSl9LDUzMzQzOmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlvbihtZSl7InVzZSBzdHJpY3QiO3ZhciBCPXsxOiJcdTE3ZTEiLDI6Ilx1MTdlMiIs''@;'; + put 'put ''MzoiXHUxN2UzIiw0OiJcdTE3ZTQiLDU6Ilx1MTdlNSIsNjoiXHUxN2U2Iiw3OiJcdTE3ZTciLDg6Ilx1MTdlOCIsOToiXHUxN2U5IiwwOiJcdTE3ZTAifSxFPXsiXHUxN2UxIjoiMSIsIlx1MTdlMiI6IjIiLCJcdTE3ZTMiOiIzIiwiXHUxN2U0IjoiNCIsIlx1MTdlNSI6IjUiLCJcdTE3ZTYi''@;'; + put 'put ''OiI2IiwiXHUxN2U3IjoiNyIsIlx1MTdlOCI6IjgiLCJcdTE3ZTkiOiI5IiwiXHUxN2UwIjoiMCJ9O21lLmRlZmluZUxvY2FsZSgia20iLHttb250aHM6Ilx1MTc5OFx1MTc4MFx1MTc5YVx1MTdiNl9cdTE3ODBcdTE3YmJcdTE3OThcdTE3ZDJcdTE3OTdcdTE3YzhfXHUxNzk4XHUxN2I4XHUx''@;'; + put 'put ''NzkzXHUxN2I2X1x1MTc5OFx1MTdjMVx1MTc5Zlx1MTdiNl9cdTE3YTdcdTE3OWZcdTE3OTdcdTE3YjZfXHUxNzk4XHUxN2I3XHUxNzkwXHUxN2JiXHUxNzkzXHUxN2I2X1x1MTc4MFx1MTc4MFx1MTdkMlx1MTc4MFx1MTc4YVx1MTdiNl9cdTE3OWZcdTE3YjhcdTE3YTBcdTE3YjZfXHUxNzgw''@;'; + put 'put ''XHUxNzg5XHUxN2QyXHUxNzg5XHUxN2I2X1x1MTc4Zlx1MTdiYlx1MTc5Ylx1MTdiNl9cdTE3OWNcdTE3YjdcdTE3ODVcdTE3ZDJcdTE3ODZcdTE3YjdcdTE3ODBcdTE3YjZfXHUxNzkyXHUxN2QyXHUxNzkzXHUxN2JjIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJcdTE3OThcdTE3ODBcdTE3''@;'; + put 'put ''OWFcdTE3YjZfXHUxNzgwXHUxN2JiXHUxNzk4XHUxN2QyXHUxNzk3XHUxN2M4X1x1MTc5OFx1MTdiOFx1MTc5M1x1MTdiNl9cdTE3OThcdTE3YzFcdTE3OWZcdTE3YjZfXHUxN2E3XHUxNzlmXHUxNzk3XHUxN2I2X1x1MTc5OFx1MTdiN1x1MTc5MFx1MTdiYlx1MTc5M1x1MTdiNl9cdTE3ODBc''@;'; + put 'put ''dTE3ODBcdTE3ZDJcdTE3ODBcdTE3OGFcdTE3YjZfXHUxNzlmXHUxN2I4XHUxN2EwXHUxN2I2X1x1MTc4MFx1MTc4OVx1MTdkMlx1MTc4OVx1MTdiNl9cdTE3OGZcdTE3YmJcdTE3OWJcdTE3YjZfXHUxNzljXHUxN2I3XHUxNzg1XHUxN2QyXHUxNzg2XHUxN2I3XHUxNzgwXHUxN2I2X1x1MTc5''@;'; + put 'put ''Mlx1MTdkMlx1MTc5M1x1MTdiYyIuc3BsaXQoIl8iKSx3ZWVrZGF5czoiXHUxN2EyXHUxN2I2XHUxNzkxXHUxN2I3XHUxNzhmXHUxN2QyXHUxNzk5X1x1MTc4NVx1MTdkMFx1MTc5M1x1MTdkMlx1MTc5MV9cdTE3YTJcdTE3ODRcdTE3ZDJcdTE3ODJcdTE3YjZcdTE3OWFfXHUxNzk2XHUxN2Ji''@;'; + put 'put ''XHUxNzkyX1x1MTc5Nlx1MTdkMlx1MTc5YVx1MTdhMFx1MTc5Zlx1MTdkMlx1MTc5NFx1MTc4Zlx1MTdiN1x1MTdjZF9cdTE3OWZcdTE3YmJcdTE3ODBcdTE3ZDJcdTE3OWFfXHUxNzlmXHUxN2M1XHUxNzlhXHUxN2NkIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6Ilx1MTdhMlx1MTdiNl9c''@;'; + put 'put ''dTE3ODVfXHUxN2EyX1x1MTc5Nl9cdTE3OTZcdTE3ZDJcdTE3OWFfXHUxNzlmXHUxN2JiX1x1MTc5ZiIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiXHUxN2EyXHUxN2I2X1x1MTc4NV9cdTE3YTJfXHUxNzk2X1x1MTc5Nlx1MTdkMlx1MTc5YV9cdTE3OWZcdTE3YmJfXHUxNzlmIi5zcGxpdCgi''@;'; + put 'put ''XyIpLHdlZWtkYXlzUGFyc2VFeGFjdDohMCxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJERC9NTS9ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVkgSEg6bW0iLExMTEw6ImRkZGQsIEQgTU1NTSBZWVlZIEhIOm1tIn0sbWVyaWRpZW1Q''@;'; + put 'put ''YXJzZTovXHUxNzk2XHUxN2QyXHUxNzlhXHUxN2I5XHUxNzgwfFx1MTc5Ylx1MTdkMlx1MTc4NFx1MTdiNlx1MTc4NS8saXNQTTpmdW5jdGlvbihVKXtyZXR1cm4iXHUxNzliXHUxN2QyXHUxNzg0XHUxN2I2XHUxNzg1Ij09PVV9LG1lcmlkaWVtOmZ1bmN0aW9uKFUsUSxaKXtyZXR1cm4gVTwx''@;'; + put 'put ''Mj8iXHUxNzk2XHUxN2QyXHUxNzlhXHUxN2I5XHUxNzgwIjoiXHUxNzliXHUxN2QyXHUxNzg0XHUxN2I2XHUxNzg1In0sY2FsZW5kYXI6e3NhbWVEYXk6IltcdTE3OTBcdTE3ZDJcdTE3ODRcdTE3YzNcdTE3OTNcdTE3YzFcdTE3YzcgXHUxNzk4XHUxN2M5XHUxN2M0XHUxNzg0XSBMVCIsbmV4''@;'; + put 'put ''dERheToiW1x1MTc5Zlx1MTdkMlx1MTdhMlx1MTdjMlx1MTc4MCBcdTE3OThcdTE3YzlcdTE3YzRcdTE3ODRdIExUIixuZXh0V2VlazoiZGRkZCBbXHUxNzk4XHUxN2M5XHUxN2M0XHUxNzg0XSBMVCIsbGFzdERheToiW1x1MTc5OFx1MTdkMlx1MTc5Zlx1MTdiN1x1MTc5Ylx1MTc5OFx1MTdi''@;'; + put 'put ''N1x1MTc4OSBcdTE3OThcdTE3YzlcdTE3YzRcdTE3ODRdIExUIixsYXN0V2VlazoiZGRkZCBbXHUxNzlmXHUxNzk0XHUxN2QyXHUxNzhmXHUxN2I2XHUxN2EwXHUxN2NkXHUxNzk4XHUxN2JiXHUxNzkzXSBbXHUxNzk4XHUxN2M5XHUxN2M0XHUxNzg0XSBMVCIsc2FtZUVsc2U6IkwifSxyZWxh''@;'; + put 'put ''dGl2ZVRpbWU6e2Z1dHVyZToiJXNcdTE3OTFcdTE3YzBcdTE3OGYiLHBhc3Q6IiVzXHUxNzk4XHUxN2JiXHUxNzkzIixzOiJcdTE3OTRcdTE3YzlcdTE3YmJcdTE3OTNcdTE3ZDJcdTE3OThcdTE3YjZcdTE3OTNcdTE3OWNcdTE3YjdcdTE3OTNcdTE3YjZcdTE3OTFcdTE3YjgiLHNzOiIlZCBc''@;'; + put 'put ''dTE3OWNcdTE3YjdcdTE3OTNcdTE3YjZcdTE3OTFcdTE3YjgiLG06Ilx1MTc5OFx1MTdiZFx1MTc5OVx1MTc5M1x1MTdiNlx1MTc5MVx1MTdiOCIsbW06IiVkIFx1MTc5M1x1MTdiNlx1MTc5MVx1MTdiOCIsaDoiXHUxNzk4XHUxN2JkXHUxNzk5XHUxNzk4XHUxN2M5XHUxN2M0XHUxNzg0Iixo''@;'; + put 'put ''aDoiJWQgXHUxNzk4XHUxN2M5XHUxN2M0XHUxNzg0IixkOiJcdTE3OThcdTE3YmRcdTE3OTlcdTE3OTBcdTE3ZDJcdTE3ODRcdTE3YzMiLGRkOiIlZCBcdTE3OTBcdTE3ZDJcdTE3ODRcdTE3YzMiLE06Ilx1MTc5OFx1MTdiZFx1MTc5OVx1MTc4MVx1MTdjMiIsTU06IiVkIFx1MTc4MVx1MTdj''@;'; + put 'put ''MiIseToiXHUxNzk4XHUxN2JkXHUxNzk5XHUxNzg2XHUxN2QyXHUxNzkzXHUxN2I2XHUxN2M2Iix5eToiJWQgXHUxNzg2XHUxN2QyXHUxNzkzXHUxN2I2XHUxN2M2In0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXHUxNzkxXHUxN2I4XGR7MSwyfS8sb3JkaW5hbDoiXHUxNzkxXHUxN2I4JWQi''@;'; + put 'put ''LHByZXBhcnNlOmZ1bmN0aW9uKFUpe3JldHVybiBVLnJlcGxhY2UoL1tcdTE3ZTFcdTE3ZTJcdTE3ZTNcdTE3ZTRcdTE3ZTVcdTE3ZTZcdTE3ZTdcdTE3ZThcdTE3ZTlcdTE3ZTBdL2csZnVuY3Rpb24oUSl7cmV0dXJuIEVbUV19KX0scG9zdGZvcm1hdDpmdW5jdGlvbihVKXtyZXR1cm4gVS5y''@;'; + put 'put ''ZXBsYWNlKC9cZC9nLGZ1bmN0aW9uKFEpe3JldHVybiBCW1FdfSl9LHdlZWs6e2RvdzoxLGRveTo0fX0pfShMKDE1NDM5KSl9LDQ0Nzk5OmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlvbihtZSl7InVzZSBzdHJpY3QiO3ZhciBCPXsxOiJcdTBjZTciLDI6Ilx1MGNlOCIsMzoiXHUwY2U5Iiw0''@;'; + put 'put ''OiJcdTBjZWEiLDU6Ilx1MGNlYiIsNjoiXHUwY2VjIiw3OiJcdTBjZWQiLDg6Ilx1MGNlZSIsOToiXHUwY2VmIiwwOiJcdTBjZTYifSxFPXsiXHUwY2U3IjoiMSIsIlx1MGNlOCI6IjIiLCJcdTBjZTkiOiIzIiwiXHUwY2VhIjoiNCIsIlx1MGNlYiI6IjUiLCJcdTBjZWMiOiI2IiwiXHUwY2Vk''@;'; + put 'put ''IjoiNyIsIlx1MGNlZSI6IjgiLCJcdTBjZWYiOiI5IiwiXHUwY2U2IjoiMCJ9O21lLmRlZmluZUxvY2FsZSgia24iLHttb250aHM6Ilx1MGM5Y1x1MGNhOFx1MGNiNVx1MGNiMFx1MGNiZl9cdTBjYWJcdTBjYzZcdTBjYWNcdTBjY2RcdTBjYjBcdTBjYjVcdTBjYjBcdTBjYmZfXHUwY2FlXHUw''@;'; + put 'put ''Y2JlXHUwY2IwXHUwY2NkXHUwYzlhXHUwY2NkX1x1MGM4Zlx1MGNhYVx1MGNjZFx1MGNiMFx1MGNiZlx1MGNiMlx1MGNjZF9cdTBjYWVcdTBjYzZcdTBjZDVfXHUwYzljXHUwY2MyXHUwY2E4XHUwY2NkX1x1MGM5Y1x1MGNjMVx1MGNiMlx1MGNjNlx1MGNkNl9cdTBjODZcdTBjOTdcdTBjYjhc''@;'; + put 'put ''dTBjY2RcdTBjOWZcdTBjY2RfXHUwY2I4XHUwY2M2XHUwY2FhXHUwY2NkXHUwYzlmXHUwY2M2XHUwYzgyXHUwY2FjXHUwY2IwXHUwY2NkX1x1MGM4NVx1MGM5NVx1MGNjZFx1MGM5Zlx1MGNjNlx1MGNjMlx1MGNkNVx1MGNhY1x1MGNiMFx1MGNjZF9cdTBjYThcdTBjYjVcdTBjYzZcdTBjODJc''@;'; + put 'put ''dTBjYWNcdTBjYjBcdTBjY2RfXHUwY2ExXHUwY2JmXHUwY2I4XHUwY2M2XHUwYzgyXHUwY2FjXHUwY2IwXHUwY2NkIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJcdTBjOWNcdTBjYThfXHUwY2FiXHUwY2M2XHUwY2FjXHUwY2NkXHUwY2IwX1x1MGNhZVx1MGNiZVx1MGNiMFx1MGNjZFx1MGM5''@;'; + put 'put ''YVx1MGNjZF9cdTBjOGZcdTBjYWFcdTBjY2RcdTBjYjBcdTBjYmZcdTBjYjJcdTBjY2RfXHUwY2FlXHUwY2M2XHUwY2Q1X1x1MGM5Y1x1MGNjMlx1MGNhOFx1MGNjZF9cdTBjOWNcdTBjYzFcdTBjYjJcdTBjYzZcdTBjZDZfXHUwYzg2XHUwYzk3XHUwY2I4XHUwY2NkXHUwYzlmXHUwY2NkX1x1''@;'; + put 'put ''MGNiOFx1MGNjNlx1MGNhYVx1MGNjZFx1MGM5Zlx1MGNjNlx1MGM4Ml9cdTBjODVcdTBjOTVcdTBjY2RcdTBjOWZcdTBjYzZcdTBjYzJcdTBjZDVfXHUwY2E4XHUwY2I1XHUwY2M2XHUwYzgyX1x1MGNhMVx1MGNiZlx1MGNiOFx1MGNjNlx1MGM4MiIuc3BsaXQoIl8iKSxtb250aHNQYXJzZUV4''@;'; + put 'put ''YWN0OiEwLHdlZWtkYXlzOiJcdTBjYWRcdTBjYmVcdTBjYThcdTBjYzFcdTBjYjVcdTBjYmVcdTBjYjBfXHUwY2I4XHUwY2M2XHUwY2MyXHUwY2Q1XHUwY2FlXHUwY2I1XHUwY2JlXHUwY2IwX1x1MGNhZVx1MGM4Mlx1MGM5N1x1MGNiM1x1MGNiNVx1MGNiZVx1MGNiMF9cdTBjYWNcdTBjYzFc''@;'; + put 'put ''dTBjYTdcdTBjYjVcdTBjYmVcdTBjYjBfXHUwYzk3XHUwY2MxXHUwY2IwXHUwY2MxXHUwY2I1XHUwY2JlXHUwY2IwX1x1MGNiNlx1MGNjMVx1MGM5NVx1MGNjZFx1MGNiMFx1MGNiNVx1MGNiZVx1MGNiMF9cdTBjYjZcdTBjYThcdTBjYmZcdTBjYjVcdTBjYmVcdTBjYjAiLnNwbGl0KCJfIiks''@;'; + put 'put ''d2Vla2RheXNTaG9ydDoiXHUwY2FkXHUwY2JlXHUwY2E4XHUwY2MxX1x1MGNiOFx1MGNjNlx1MGNjMlx1MGNkNVx1MGNhZV9cdTBjYWVcdTBjODJcdTBjOTdcdTBjYjNfXHUwY2FjXHUwY2MxXHUwY2E3X1x1MGM5N1x1MGNjMVx1MGNiMFx1MGNjMV9cdTBjYjZcdTBjYzFcdTBjOTVcdTBjY2Rc''@;'; + put 'put ''dTBjYjBfXHUwY2I2XHUwY2E4XHUwY2JmIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJcdTBjYWRcdTBjYmVfXHUwY2I4XHUwY2M2XHUwY2MyXHUwY2Q1X1x1MGNhZVx1MGM4Ml9cdTBjYWNcdTBjYzFfXHUwYzk3XHUwY2MxX1x1MGNiNlx1MGNjMV9cdTBjYjYiLnNwbGl0KCJfIiksbG9uZ0Rh''@;'; + put 'put ''dGVGb3JtYXQ6e0xUOiJBIGg6bW0iLExUUzoiQSBoOm1tOnNzIixMOiJERC9NTS9ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVksIEEgaDptbSIsTExMTDoiZGRkZCwgRCBNTU1NIFlZWVksIEEgaDptbSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbXHUwYzg3XHUwYzgyXHUw''@;'; + put 'put ''Y2E2XHUwY2MxXSBMVCIsbmV4dERheToiW1x1MGNhOFx1MGNiZVx1MGNiM1x1MGNjNl0gTFQiLG5leHRXZWVrOiJkZGRkLCBMVCIsbGFzdERheToiW1x1MGNhOFx1MGNiZlx1MGNhOFx1MGNjZFx1MGNhOFx1MGNjNl0gTFQiLGxhc3RXZWVrOiJbXHUwYzk1XHUwY2M2XHUwY2MyXHUwY2E4XHUw''@;'; + put 'put ''Y2M2XHUwY2FmXSBkZGRkLCBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiJXMgXHUwY2E4XHUwYzgyXHUwY2E0XHUwY2IwIixwYXN0OiIlcyBcdTBjYjlcdTBjYmZcdTBjODJcdTBjYTZcdTBjYzYiLHM6Ilx1MGM5NVx1MGNjNlx1MGNiMlx1MGNiNVx1MGNjMSBcdTBj''@;'; + put 'put ''OTVcdTBjY2RcdTBjYjdcdTBjYTNcdTBjOTdcdTBjYjNcdTBjYzEiLHNzOiIlZCBcdTBjYjhcdTBjYzZcdTBjOTVcdTBjYzZcdTBjODJcdTBjYTFcdTBjYzFcdTBjOTdcdTBjYjNcdTBjYzEiLG06Ilx1MGM5Mlx1MGM4Mlx1MGNhNlx1MGNjMSBcdTBjYThcdTBjYmZcdTBjYWVcdTBjYmZcdTBj''@;'; + put 'put ''YjciLG1tOiIlZCBcdTBjYThcdTBjYmZcdTBjYWVcdTBjYmZcdTBjYjciLGg6Ilx1MGM5Mlx1MGM4Mlx1MGNhNlx1MGNjMSBcdTBjOTdcdTBjODJcdTBjOWZcdTBjYzYiLGhoOiIlZCBcdTBjOTdcdTBjODJcdTBjOWZcdTBjYzYiLGQ6Ilx1MGM5Mlx1MGM4Mlx1MGNhNlx1MGNjMSBcdTBjYTZc''@;'; + put 'put ''dTBjYmZcdTBjYTgiLGRkOiIlZCBcdTBjYTZcdTBjYmZcdTBjYTgiLE06Ilx1MGM5Mlx1MGM4Mlx1MGNhNlx1MGNjMSBcdTBjYTRcdTBjYmZcdTBjODJcdTBjOTdcdTBjYjNcdTBjYzEiLE1NOiIlZCBcdTBjYTRcdTBjYmZcdTBjODJcdTBjOTdcdTBjYjNcdTBjYzEiLHk6Ilx1MGM5Mlx1MGM4''@;'; + put 'put ''Mlx1MGNhNlx1MGNjMSBcdTBjYjVcdTBjYjBcdTBjY2RcdTBjYjciLHl5OiIlZCBcdTBjYjVcdTBjYjBcdTBjY2RcdTBjYjcifSxwcmVwYXJzZTpmdW5jdGlvbihVKXtyZXR1cm4gVS5yZXBsYWNlKC9bXHUwY2U3XHUwY2U4XHUwY2U5XHUwY2VhXHUwY2ViXHUwY2VjXHUwY2VkXHUwY2VlXHUw''@;'; + put 'put ''Y2VmXHUwY2U2XS9nLGZ1bmN0aW9uKFEpe3JldHVybiBFW1FdfSl9LHBvc3Rmb3JtYXQ6ZnVuY3Rpb24oVSl7cmV0dXJuIFUucmVwbGFjZSgvXGQvZyxmdW5jdGlvbihRKXtyZXR1cm4gQltRXX0pfSxtZXJpZGllbVBhcnNlOi9cdTBjYjBcdTBjYmVcdTBjYTRcdTBjY2RcdTBjYjBcdTBjYmZ8''@;'; + put 'put ''XHUwY2FjXHUwY2M2XHUwY2IzXHUwY2JmXHUwYzk3XHUwY2NkXHUwYzk3XHUwY2M2fFx1MGNhZVx1MGNhN1x1MGNjZFx1MGNhZlx1MGNiZVx1MGNiOVx1MGNjZFx1MGNhOHxcdTBjYjhcdTBjODJcdTBjOWNcdTBjYzYvLG1lcmlkaWVtSG91cjpmdW5jdGlvbihVLFEpe3JldHVybiAxMj09PVUm''@;'; + put 'put ''JihVPTApLCJcdTBjYjBcdTBjYmVcdTBjYTRcdTBjY2RcdTBjYjBcdTBjYmYiPT09UT9VPDQ/VTpVKzEyOiJcdTBjYWNcdTBjYzZcdTBjYjNcdTBjYmZcdTBjOTdcdTBjY2RcdTBjOTdcdTBjYzYiPT09UT9VOiJcdTBjYWVcdTBjYTdcdTBjY2RcdTBjYWZcdTBjYmVcdTBjYjlcdTBjY2RcdTBj''@;'; + put 'put ''YTgiPT09UT9VPj0xMD9VOlUrMTI6Ilx1MGNiOFx1MGM4Mlx1MGM5Y1x1MGNjNiI9PT1RP1UrMTI6dm9pZCAwfSxtZXJpZGllbTpmdW5jdGlvbihVLFEsWil7cmV0dXJuIFU8ND8iXHUwY2IwXHUwY2JlXHUwY2E0XHUwY2NkXHUwY2IwXHUwY2JmIjpVPDEwPyJcdTBjYWNcdTBjYzZcdTBjYjNc''@;'; + put 'put ''dTBjYmZcdTBjOTdcdTBjY2RcdTBjOTdcdTBjYzYiOlU8MTc/Ilx1MGNhZVx1MGNhN1x1MGNjZFx1MGNhZlx1MGNiZVx1MGNiOVx1MGNjZFx1MGNhOCI6VTwyMD8iXHUwY2I4XHUwYzgyXHUwYzljXHUwY2M2IjoiXHUwY2IwXHUwY2JlXHUwY2E0XHUwY2NkXHUwY2IwXHUwY2JmIn0sZGF5T2ZN''@;'; + put 'put ''b250aE9yZGluYWxQYXJzZTovXGR7MSwyfShcdTBjYThcdTBjYzZcdTBjZDUpLyxvcmRpbmFsOmZ1bmN0aW9uKFUpe3JldHVybiBVKyJcdTBjYThcdTBjYzZcdTBjZDUifSx3ZWVrOntkb3c6MCxkb3k6Nn19KX0oTCgxNTQzOSkpfSwxMzU0OTpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24o''@;'; + put 'put ''bWUpeyJ1c2Ugc3RyaWN0IjttZS5kZWZpbmVMb2NhbGUoImtvIix7bW9udGhzOiIxXHVjNmQ0XzJcdWM2ZDRfM1x1YzZkNF80XHVjNmQ0XzVcdWM2ZDRfNlx1YzZkNF83XHVjNmQ0XzhcdWM2ZDRfOVx1YzZkNF8xMFx1YzZkNF8xMVx1YzZkNF8xMlx1YzZkNCIuc3BsaXQoIl8iKSxtb250aHNT''@;'; + put 'put ''aG9ydDoiMVx1YzZkNF8yXHVjNmQ0XzNcdWM2ZDRfNFx1YzZkNF81XHVjNmQ0XzZcdWM2ZDRfN1x1YzZkNF84XHVjNmQ0XzlcdWM2ZDRfMTBcdWM2ZDRfMTFcdWM2ZDRfMTJcdWM2ZDQiLnNwbGl0KCJfIiksd2Vla2RheXM6Ilx1Yzc3Y1x1YzY5NFx1Yzc3Y19cdWM2ZDRcdWM2OTRcdWM3N2Nf''@;'; + put 'put ''XHVkNjU0XHVjNjk0XHVjNzdjX1x1YzIxOFx1YzY5NFx1Yzc3Y19cdWJhYTlcdWM2OTRcdWM3N2NfXHVhZTA4XHVjNjk0XHVjNzdjX1x1ZDFhMFx1YzY5NFx1Yzc3YyIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJcdWM3N2NfXHVjNmQ0X1x1ZDY1NF9cdWMyMThfXHViYWE5X1x1YWUwOF9c''@;'; + put 'put ''dWQxYTAiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46Ilx1Yzc3Y19cdWM2ZDRfXHVkNjU0X1x1YzIxOF9cdWJhYTlfXHVhZTA4X1x1ZDFhMCIuc3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6IkEgaDptbSIsTFRTOiJBIGg6bW06c3MiLEw6IllZWVkuTU0uREQuIixMTDoiWVlZWVx1YjE0''@;'; + put 'put ''NCBNTU1NIERcdWM3N2MiLExMTDoiWVlZWVx1YjE0NCBNTU1NIERcdWM3N2MgQSBoOm1tIixMTExMOiJZWVlZXHViMTQ0IE1NTU0gRFx1Yzc3YyBkZGRkIEEgaDptbSIsbDoiWVlZWS5NTS5ERC4iLGxsOiJZWVlZXHViMTQ0IE1NTU0gRFx1Yzc3YyIsbGxsOiJZWVlZXHViMTQ0IE1NTU0gRFx1''@;'; + put 'put ''Yzc3YyBBIGg6bW0iLGxsbGw6IllZWVlcdWIxNDQgTU1NTSBEXHVjNzdjIGRkZGQgQSBoOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6Ilx1YzYyNFx1YjI5OCBMVCIsbmV4dERheToiXHViMGI0XHVjNzdjIExUIixuZXh0V2VlazoiZGRkZCBMVCIsbGFzdERheToiXHVjNWI0XHVjODFjIExUIixs''@;'; + put 'put ''YXN0V2VlazoiXHVjOWMwXHViMDljXHVjOGZjIGRkZGQgTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6IiVzIFx1ZDZjNCIscGFzdDoiJXMgXHVjODA0IixzOiJcdWJhODcgXHVjZDA4IixzczoiJWRcdWNkMDgiLG06IjFcdWJkODQiLG1tOiIlZFx1YmQ4NCIsaDoiXHVk''@;'; + put 'put ''NTVjIFx1YzJkY1x1YWMwNCIsaGg6IiVkXHVjMmRjXHVhYzA0IixkOiJcdWQ1NThcdWI4ZTgiLGRkOiIlZFx1Yzc3YyIsTToiXHVkNTVjIFx1YjJlYyIsTU06IiVkXHViMmVjIix5OiJcdWM3N2MgXHViMTQ0Iix5eToiJWRcdWIxNDQifSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9''@;'; + put 'put ''KFx1Yzc3Y3xcdWM2ZDR8XHVjOGZjKS8sb3JkaW5hbDpmdW5jdGlvbihFLE1lKXtzd2l0Y2goTWUpe2Nhc2UiZCI6Y2FzZSJEIjpjYXNlIkRERCI6cmV0dXJuIEUrIlx1Yzc3YyI7Y2FzZSJNIjpyZXR1cm4gRSsiXHVjNmQ0IjtjYXNlInciOmNhc2UiVyI6cmV0dXJuIEUrIlx1YzhmYyI7ZGVm''@;'; + put 'put ''YXVsdDpyZXR1cm4gRX19LG1lcmlkaWVtUGFyc2U6L1x1YzYyNFx1YzgwNHxcdWM2MjRcdWQ2YzQvLGlzUE06ZnVuY3Rpb24oRSl7cmV0dXJuIlx1YzYyNFx1ZDZjNCI9PT1FfSxtZXJpZGllbTpmdW5jdGlvbihFLE1lLFUpe3JldHVybiBFPDEyPyJcdWM2MjRcdWM4MDQiOiJcdWM2MjRcdWQ2''@;'; + put 'put ''YzQifX0pfShMKDE1NDM5KSl9LDkxMDM3OmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlvbihtZSl7InVzZSBzdHJpY3QiO3ZhciBCPXsxOiJcdTA2NjEiLDI6Ilx1MDY2MiIsMzoiXHUwNjYzIiw0OiJcdTA2NjQiLDU6Ilx1MDY2NSIsNjoiXHUwNjY2Iiw3OiJcdTA2NjciLDg6Ilx1MDY2OCIs''@;'; + put 'put ''OToiXHUwNjY5IiwwOiJcdTA2NjAifSxFPXsiXHUwNjYxIjoiMSIsIlx1MDY2MiI6IjIiLCJcdTA2NjMiOiIzIiwiXHUwNjY0IjoiNCIsIlx1MDY2NSI6IjUiLCJcdTA2NjYiOiI2IiwiXHUwNjY3IjoiNyIsIlx1MDY2OCI6IjgiLCJcdTA2NjkiOiI5IiwiXHUwNjYwIjoiMCJ9LE1lPVsiXHUw''@;'; + put 'put ''NmE5XHUwNjI3XHUwNjQ2XHUwNjQ4XHUwNjQ2XHUwNmNjIFx1MDYyZlx1MDY0OFx1MDY0OFx1MDZkNVx1MDY0NSIsIlx1MDYzNFx1MDY0OFx1MDYyOFx1MDYyN1x1MDYyYSIsIlx1MDYyNlx1MDYyN1x1MDYzMlx1MDYyN1x1MDYzMSIsIlx1MDY0Nlx1MDZjY1x1MDYzM1x1MDYyN1x1MDY0NiIs''@;'; + put 'put ''Ilx1MDYyNlx1MDYyN1x1MDZjY1x1MDYyN1x1MDYzMSIsIlx1MDYyZFx1MDY0OFx1MDYzMlx1MDZkNVx1MDZjY1x1MDYzMVx1MDYyN1x1MDY0NiIsIlx1MDYyYVx1MDZkNVx1MDY0NVx1MDY0NVx1MDY0OFx1MDYzMiIsIlx1MDYyNlx1MDYyN1x1MDYyOCIsIlx1MDYyNlx1MDZkNVx1MDZjY1x1''@;'; + put 'put ''MDY0NFx1MDY0OFx1MDY0OFx1MDY0NCIsIlx1MDYyYVx1MDYzNFx1MDYzMVx1MDZjY1x1MDY0Nlx1MDZjYyBcdTA2Y2NcdTA2ZDVcdTA2NDNcdTA2ZDVcdTA2NDUiLCJcdTA2MmFcdTA2MzRcdTA2MzFcdTA2Y2NcdTA2NDZcdTA2Y2MgXHUwNjJmXHUwNjQ4XHUwNjQ4XHUwNmQ1XHUwNjQ1Iiwi''@;'; + put 'put ''XHUwNjQzXHUwNjI3XHUwNjQ2XHUwNjQ4XHUwNjQ2XHUwNmNjIFx1MDZjY1x1MDZkNVx1MDZhOVx1MDZkNVx1MDY0NSJdO21lLmRlZmluZUxvY2FsZSgia3UiLHttb250aHM6TWUsbW9udGhzU2hvcnQ6TWUsd2Vla2RheXM6Ilx1MDZjY1x1MDY0N1x1MjAwY1x1MDY0M1x1MDYzNFx1MDY0N1x1''@;'; + put 'put ''MjAwY1x1MDY0NVx1MDY0NVx1MDY0N1x1MjAwY19cdTA2MmZcdTA2NDhcdTA2NDhcdTA2MzRcdTA2NDdcdTIwMGNcdTA2NDVcdTA2NDVcdTA2NDdcdTIwMGNfXHUwNjMzXHUwNmNlXHUwNjM0XHUwNjQ3XHUyMDBjXHUwNjQ1XHUwNjQ1XHUwNjQ3XHUyMDBjX1x1MDY4Nlx1MDY0OFx1MDYyN1x1''@;'; + put 'put ''MDYzMVx1MDYzNFx1MDY0N1x1MjAwY1x1MDY0NVx1MDY0NVx1MDY0N1x1MjAwY19cdTA2N2VcdTA2Y2VcdTA2NDZcdTA2MmNcdTA2MzRcdTA2NDdcdTIwMGNcdTA2NDVcdTA2NDVcdTA2NDdcdTIwMGNfXHUwNjQ3XHUwNjQ3XHUyMDBjXHUwNmNjXHUwNjQ2XHUwNmNjX1x1MDYzNFx1MDY0N1x1''@;'; + put 'put ''MjAwY1x1MDY0NVx1MDY0NVx1MDY0N1x1MjAwYyIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJcdTA2Y2NcdTA2NDdcdTIwMGNcdTA2NDNcdTA2MzRcdTA2NDdcdTIwMGNcdTA2NDVfXHUwNjJmXHUwNjQ4XHUwNjQ4XHUwNjM0XHUwNjQ3XHUyMDBjXHUwNjQ1X1x1MDYzM1x1MDZjZVx1MDYz''@;'; + put 'put ''NFx1MDY0N1x1MjAwY1x1MDY0NV9cdTA2ODZcdTA2NDhcdTA2MjdcdTA2MzFcdTA2MzRcdTA2NDdcdTIwMGNcdTA2NDVfXHUwNjdlXHUwNmNlXHUwNjQ2XHUwNjJjXHUwNjM0XHUwNjQ3XHUyMDBjXHUwNjQ1X1x1MDY0N1x1MDY0N1x1MjAwY1x1MDZjY1x1MDY0Nlx1MDZjY19cdTA2MzRcdTA2''@;'; + put 'put ''NDdcdTIwMGNcdTA2NDVcdTA2NDVcdTA2NDdcdTIwMGMiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46Ilx1MDZjY19cdTA2MmZfXHUwNjMzX1x1MDY4Nl9cdTA2N2VfXHUwNjQ3X1x1MDYzNCIuc3BsaXQoIl8iKSx3ZWVrZGF5c1BhcnNlRXhhY3Q6ITAsbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDpt''@;'; + put 'put ''bSIsTFRTOiJISDptbTpzcyIsTDoiREQvTU0vWVlZWSIsTEw6IkQgTU1NTSBZWVlZIixMTEw6IkQgTU1NTSBZWVlZIEhIOm1tIixMTExMOiJkZGRkLCBEIE1NTU0gWVlZWSBISDptbSJ9LG1lcmlkaWVtUGFyc2U6L1x1MDYyNlx1MDZjZVx1MDY0OFx1MDYyN1x1MDYzMVx1MDY0N1x1MjAwY3xc''@;'; + put 'put ''dTA2MjhcdTA2NDdcdTIwMGNcdTA2Y2NcdTA2MjdcdTA2NDZcdTA2Y2MvLGlzUE06ZnVuY3Rpb24oUSl7cmV0dXJuL1x1MDYyNlx1MDZjZVx1MDY0OFx1MDYyN1x1MDYzMVx1MDY0N1x1MjAwYy8udGVzdChRKX0sbWVyaWRpZW06ZnVuY3Rpb24oUSxaLGllKXtyZXR1cm4gUTwxMj8iXHUwNjI4''@;'; + put 'put ''XHUwNjQ3XHUyMDBjXHUwNmNjXHUwNjI3XHUwNjQ2XHUwNmNjIjoiXHUwNjI2XHUwNmNlXHUwNjQ4XHUwNjI3XHUwNjMxXHUwNjQ3XHUyMDBjIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltcdTA2MjZcdTA2NDdcdTIwMGNcdTA2NDVcdTA2MzFcdTA2YzYgXHUwNjQzXHUwNjI3XHUwNjJhXHUwNjk4''@;'; + put 'put ''XHUwNjQ1XHUwNmNlXHUwNjMxXSBMVCIsbmV4dERheToiW1x1MDYyOFx1MDY0N1x1MjAwY1x1MDZjY1x1MDYyN1x1MDY0Nlx1MDZjYyBcdTA2NDNcdTA2MjdcdTA2MmFcdTA2OThcdTA2NDVcdTA2Y2VcdTA2MzFdIExUIixuZXh0V2VlazoiZGRkZCBbXHUwNjQzXHUwNjI3XHUwNjJhXHUwNjk4''@;'; + put 'put ''XHUwNjQ1XHUwNmNlXHUwNjMxXSBMVCIsbGFzdERheToiW1x1MDYyZlx1MDY0OFx1MDZjZVx1MDY0Nlx1MDZjZSBcdTA2NDNcdTA2MjdcdTA2MmFcdTA2OThcdTA2NDVcdTA2Y2VcdTA2MzFdIExUIixsYXN0V2VlazoiZGRkZCBbXHUwNjQzXHUwNjI3XHUwNjJhXHUwNjk4XHUwNjQ1XHUwNmNl''@;'; + put 'put ''XHUwNjMxXSBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiXHUwNjQ0XHUwNjQ3XHUyMDBjICVzIixwYXN0OiIlcyIsczoiXHUwNjg2XHUwNjQ3XHUyMDBjXHUwNjQ2XHUwNjJmIFx1MDY4Nlx1MDYzMVx1MDY0M1x1MDY0N1x1MjAwY1x1MDZjY1x1MDY0N1x1MjAwY1x1''@;'; + put 'put ''MDY0MyIsc3M6Ilx1MDY4Nlx1MDYzMVx1MDY0M1x1MDY0N1x1MjAwYyAlZCIsbToiXHUwNmNjXHUwNjQ3XHUyMDBjXHUwNjQzIFx1MDYyZVx1MDY0OFx1MDY0NFx1MDY0N1x1MjAwY1x1MDY0MyIsbW06IiVkIFx1MDYyZVx1MDY0OFx1MDY0NFx1MDY0N1x1MjAwY1x1MDY0MyIsaDoiXHUwNmNj''@;'; + put 'put ''XHUwNjQ3XHUyMDBjXHUwNjQzIFx1MDY0M1x1MDYyN1x1MDYyYVx1MDY5OFx1MDY0NVx1MDZjZVx1MDYzMSIsaGg6IiVkIFx1MDY0M1x1MDYyN1x1MDYyYVx1MDY5OFx1MDY0NVx1MDZjZVx1MDYzMSIsZDoiXHUwNmNjXHUwNjQ3XHUyMDBjXHUwNjQzIFx1MDY5NVx1MDZjNlx1MDY5OCIsZGQ6''@;'; + put 'put ''IiVkIFx1MDY5NVx1MDZjNlx1MDY5OCIsTToiXHUwNmNjXHUwNjQ3XHUyMDBjXHUwNjQzIFx1MDY0NVx1MDYyN1x1MDY0Nlx1MDZhZiIsTU06IiVkIFx1MDY0NVx1MDYyN1x1MDY0Nlx1MDZhZiIseToiXHUwNmNjXHUwNjQ3XHUyMDBjXHUwNjQzIFx1MDYzM1x1MDYyN1x1MDZiNSIseXk6IiVk''@;'; + put 'put ''IFx1MDYzM1x1MDYyN1x1MDZiNSJ9LHByZXBhcnNlOmZ1bmN0aW9uKFEpe3JldHVybiBRLnJlcGxhY2UoL1tcdTA2NjFcdTA2NjJcdTA2NjNcdTA2NjRcdTA2NjVcdTA2NjZcdTA2NjdcdTA2NjhcdTA2NjlcdTA2NjBdL2csZnVuY3Rpb24oWil7cmV0dXJuIEVbWl19KS5yZXBsYWNlKC9cdTA2''@;'; + put 'put ''MGMvZywiLCIpfSxwb3N0Zm9ybWF0OmZ1bmN0aW9uKFEpe3JldHVybiBRLnJlcGxhY2UoL1xkL2csZnVuY3Rpb24oWil7cmV0dXJuIEJbWl19KS5yZXBsYWNlKC8sL2csIlx1MDYwYyIpfSx3ZWVrOntkb3c6Nixkb3k6MTJ9fSl9KEwoMTU0MzkpKX0sOTMxMjU6ZnVuY3Rpb24oWGUsSmUsTCl7''@;'; + put 'put ''IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7dmFyIEI9ezA6Ii1cdTA0NDdcdTA0YWYiLDE6Ii1cdTA0NDdcdTA0MzgiLDI6Ii1cdTA0NDdcdTA0MzgiLDM6Ii1cdTA0NDdcdTA0YWYiLDQ6Ii1cdTA0NDdcdTA0YWYiLDU6Ii1cdTA0NDdcdTA0MzgiLDY6Ii1cdTA0NDdcdTA0NGIiLDc6Ii1c''@;'; + put 'put ''dTA0NDdcdTA0MzgiLDg6Ii1cdTA0NDdcdTA0MzgiLDk6Ii1cdTA0NDdcdTA0NDMiLDEwOiItXHUwNDQ3XHUwNDQzIiwyMDoiLVx1MDQ0N1x1MDQ0YiIsMzA6Ii1cdTA0NDdcdTA0NDMiLDQwOiItXHUwNDQ3XHUwNDRiIiw1MDoiLVx1MDQ0N1x1MDRhZiIsNjA6Ii1cdTA0NDdcdTA0NGIiLDcw''@;'; + put 'put ''OiItXHUwNDQ3XHUwNDM4Iiw4MDoiLVx1MDQ0N1x1MDQzOCIsOTA6Ii1cdTA0NDdcdTA0NDMiLDEwMDoiLVx1MDQ0N1x1MDRhZiJ9O21lLmRlZmluZUxvY2FsZSgia3kiLHttb250aHM6Ilx1MDQ0Zlx1MDQzZFx1MDQzMlx1MDQzMFx1MDQ0MFx1MDQ0Y19cdTA0NDRcdTA0MzVcdTA0MzJcdTA0''@;'; + put 'put ''NDBcdTA0MzBcdTA0M2JcdTA0NGNfXHUwNDNjXHUwNDMwXHUwNDQwXHUwNDQyX1x1MDQzMFx1MDQzZlx1MDQ0MFx1MDQzNVx1MDQzYlx1MDQ0Y19cdTA0M2NcdTA0MzBcdTA0MzlfXHUwNDM4XHUwNDRlXHUwNDNkXHUwNDRjX1x1MDQzOFx1MDQ0ZVx1MDQzYlx1MDQ0Y19cdTA0MzBcdTA0MzJc''@;'; + put 'put ''dTA0MzNcdTA0NDNcdTA0NDFcdTA0NDJfXHUwNDQxXHUwNDM1XHUwNDNkXHUwNDQyXHUwNDRmXHUwNDMxXHUwNDQwXHUwNDRjX1x1MDQzZVx1MDQzYVx1MDQ0Mlx1MDQ0Zlx1MDQzMVx1MDQ0MFx1MDQ0Y19cdTA0M2RcdTA0M2VcdTA0NGZcdTA0MzFcdTA0NDBcdTA0NGNfXHUwNDM0XHUwNDM1''@;'; + put 'put ''XHUwNDNhXHUwNDMwXHUwNDMxXHUwNDQwXHUwNDRjIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJcdTA0NGZcdTA0M2RcdTA0MzJfXHUwNDQ0XHUwNDM1XHUwNDMyX1x1MDQzY1x1MDQzMFx1MDQ0MFx1MDQ0Ml9cdTA0MzBcdTA0M2ZcdTA0NDBfXHUwNDNjXHUwNDMwXHUwNDM5X1x1MDQzOFx1''@;'; + put 'put ''MDQ0ZVx1MDQzZFx1MDQ0Y19cdTA0MzhcdTA0NGVcdTA0M2JcdTA0NGNfXHUwNDMwXHUwNDMyXHUwNDMzX1x1MDQ0MVx1MDQzNVx1MDQzZF9cdTA0M2VcdTA0M2FcdTA0NDJfXHUwNDNkXHUwNDNlXHUwNDRmX1x1MDQzNFx1MDQzNVx1MDQzYSIuc3BsaXQoIl8iKSx3ZWVrZGF5czoiXHUwNDE2''@;'; + put 'put ''XHUwNDM1XHUwNDNhXHUwNDQ4XHUwNDM1XHUwNDNjXHUwNDMxXHUwNDM4X1x1MDQxNFx1MDRhZlx1MDQzOVx1MDQ0OFx1MDRlOVx1MDQzY1x1MDQzMVx1MDRhZl9cdTA0MjhcdTA0MzVcdTA0MzlcdTA0NDhcdTA0MzVcdTA0M2NcdTA0MzFcdTA0MzhfXHUwNDI4XHUwNDMwXHUwNDQwXHUwNDQ4''@;'; + put 'put ''XHUwNDM1XHUwNDNjXHUwNDMxXHUwNDM4X1x1MDQxMVx1MDQzNVx1MDQzOVx1MDQ0OFx1MDQzNVx1MDQzY1x1MDQzMVx1MDQzOF9cdTA0MTZcdTA0NDNcdTA0M2NcdTA0MzBfXHUwNDE4XHUwNDQ4XHUwNDM1XHUwNDNjXHUwNDMxXHUwNDM4Ii5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6Ilx1''@;'; + put 'put ''MDQxNlx1MDQzNVx1MDQzYV9cdTA0MTRcdTA0YWZcdTA0MzlfXHUwNDI4XHUwNDM1XHUwNDM5X1x1MDQyOFx1MDQzMFx1MDQ0MF9cdTA0MTFcdTA0MzVcdTA0MzlfXHUwNDE2XHUwNDQzXHUwNDNjX1x1MDQxOFx1MDQ0OFx1MDQzNSIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiXHUwNDE2XHUw''@;'; + put 'put ''NDNhX1x1MDQxNFx1MDQzOV9cdTA0MjhcdTA0MzlfXHUwNDI4XHUwNDQwX1x1MDQxMVx1MDQzOV9cdTA0MTZcdTA0M2NfXHUwNDE4XHUwNDQ4Ii5zcGxpdCgiXyIpLGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IkRELk1NLllZWVkiLExMOiJEIE1NTU0gWVlZ''@;'; + put 'put ''WSIsTExMOiJEIE1NTU0gWVlZWSBISDptbSIsTExMTDoiZGRkZCwgRCBNTU1NIFlZWVkgSEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW1x1MDQxMVx1MDRhZlx1MDQzM1x1MDRhZlx1MDQzZCBcdTA0NDFcdTA0MzBcdTA0MzBcdTA0NDJdIExUIixuZXh0RGF5OiJbXHUwNDJkXHUwNDQwXHUw''@;'; + put 'put ''NDQyXHUwNDM1XHUwNGEzIFx1MDQ0MVx1MDQzMFx1MDQzMFx1MDQ0Ml0gTFQiLG5leHRXZWVrOiJkZGRkIFtcdTA0NDFcdTA0MzBcdTA0MzBcdTA0NDJdIExUIixsYXN0RGF5OiJbXHUwNDFhXHUwNDM1XHUwNDQ3XHUwNDRkXHUwNDRkIFx1MDQ0MVx1MDQzMFx1MDQzMFx1MDQ0Ml0gTFQiLGxh''@;'; + put 'put ''c3RXZWVrOiJbXHUwNGU4XHUwNDQyXHUwNDNhXHUwNGU5XHUwNDNkIFx1MDQzMFx1MDQzZlx1MDQ0Mlx1MDQzMFx1MDQzZFx1MDQ0Ylx1MDQzZF0gZGRkZCBbXHUwNDNhXHUwNGFmXHUwNDNkXHUwNGFmXSBbXHUwNDQxXHUwNDMwXHUwNDMwXHUwNDQyXSBMVCIsc2FtZUVsc2U6IkwifSxyZWxh''@;'; + put 'put ''dGl2ZVRpbWU6e2Z1dHVyZToiJXMgXHUwNDM4XHUwNDQ3XHUwNDM4XHUwNDNkXHUwNDM0XHUwNDM1IixwYXN0OiIlcyBcdTA0M2NcdTA0NDNcdTA0NDBcdTA0NDNcdTA0M2QiLHM6Ilx1MDQzMVx1MDQzOFx1MDQ0MFx1MDQzZFx1MDQzNVx1MDQ0N1x1MDQzNSBcdTA0NDFcdTA0MzVcdTA0M2Fc''@;'; + put 'put ''dTA0NDNcdTA0M2RcdTA0MzQiLHNzOiIlZCBcdTA0NDFcdTA0MzVcdTA0M2FcdTA0NDNcdTA0M2RcdTA0MzQiLG06Ilx1MDQzMVx1MDQzOFx1MDQ0MCBcdTA0M2NcdTA0YWZcdTA0M2RcdTA0ZTlcdTA0NDIiLG1tOiIlZCBcdTA0M2NcdTA0YWZcdTA0M2RcdTA0ZTlcdTA0NDIiLGg6Ilx1MDQz''@;'; + put 'put ''MVx1MDQzOFx1MDQ0MCBcdTA0NDFcdTA0MzBcdTA0MzBcdTA0NDIiLGhoOiIlZCBcdTA0NDFcdTA0MzBcdTA0MzBcdTA0NDIiLGQ6Ilx1MDQzMVx1MDQzOFx1MDQ0MCBcdTA0M2FcdTA0YWZcdTA0M2QiLGRkOiIlZCBcdTA0M2FcdTA0YWZcdTA0M2QiLE06Ilx1MDQzMVx1MDQzOFx1MDQ0MCBc''@;'; + put 'put ''dTA0MzBcdTA0MzkiLE1NOiIlZCBcdTA0MzBcdTA0MzkiLHk6Ilx1MDQzMVx1MDQzOFx1MDQ0MCBcdTA0MzZcdTA0NGJcdTA0M2IiLHl5OiIlZCBcdTA0MzZcdTA0NGJcdTA0M2IifSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9LShcdTA0NDdcdTA0Mzh8XHUwNDQ3XHUwNDRifFx1''@;'; + put 'put ''MDQ0N1x1MDRhZnxcdTA0NDdcdTA0NDMpLyxvcmRpbmFsOmZ1bmN0aW9uKE1lKXtyZXR1cm4gTWUrKEJbTWVdfHxCW01lJTEwXXx8QltNZT49MTAwPzEwMDpudWxsXSl9LHdlZWs6e2RvdzoxLGRveTo3fX0pfShMKDE1NDM5KSl9LDY5NTg2OmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlvbiht''@;'; + put 'put ''ZSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIEIoWixpZSxhZSxZKXt2YXIgVz17bTpbImVuZyBNaW51dHQiLCJlbmdlciBNaW51dHQiXSxoOlsiZW5nIFN0b25uIiwiZW5nZXIgU3Rvbm4iXSxkOlsiZWVuIERhZyIsImVuZ2VtIERhZyJdLE06WyJlZSBNb3VudCIsImVuZ2VtIE1vdW50Il0seTpb''@;'; + put 'put ''ImVlIEpvZXIiLCJlbmdlbSBKb2VyIl19O3JldHVybiBpZT9XW2FlXVswXTpXW2FlXVsxXX1mdW5jdGlvbiBVKFope2lmKFo9cGFyc2VJbnQoWiwxMCksaXNOYU4oWikpcmV0dXJuITE7aWYoWjwwKXJldHVybiEwO2lmKFo8MTApcmV0dXJuIDQ8PVomJlo8PTc7aWYoWjwxMDApe3ZhciBpZT1a''@;'; + put 'put ''JTEwO3JldHVybiBVKDA9PT1pZT9aLzEwOmllKX1pZihaPDFlNCl7Zm9yKDtaPj0xMDspWi89MTA7cmV0dXJuIFUoWil9cmV0dXJuIFUoWi89MWUzKX1tZS5kZWZpbmVMb2NhbGUoImxiIix7bW9udGhzOiJKYW51YXJfRmVicnVhcl9NXHhlNGVyel9BYnJceGVibGxfTWVlX0p1bmlfSnVsaV9B''@;'; + put 'put ''dWd1c3RfU2VwdGVtYmVyX09rdG9iZXJfTm92ZW1iZXJfRGV6ZW1iZXIiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6Ikphbi5fRmVici5fTXJ6Ll9BYnIuX01lZV9KdW4uX0p1bC5fQXVnLl9TZXB0Ll9Pa3QuX05vdi5fRGV6LiIuc3BsaXQoIl8iKSxtb250aHNQYXJzZUV4YWN0OiEwLHdlZWtk''@;'; + put 'put ''YXlzOiJTb25uZGVnX01ceGU5aW5kZWdfRFx4ZWJuc2NoZGVnX01ceGVidHR3b2NoX0Rvbm5lc2NoZGVnX0ZyZWlkZWdfU2Ftc2NoZGVnIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6IlNvLl9NXHhlOS5fRFx4ZWIuX01ceGViLl9Eby5fRnIuX1NhLiIuc3BsaXQoIl8iKSx3ZWVrZGF5c01p''@;'; + put 'put ''bjoiU29fTVx4ZTlfRFx4ZWJfTVx4ZWJfRG9fRnJfU2EiLnNwbGl0KCJfIiksd2Vla2RheXNQYXJzZUV4YWN0OiEwLGxvbmdEYXRlRm9ybWF0OntMVDoiSDptbSBbQXVlcl0iLExUUzoiSDptbTpzcyBbQXVlcl0iLEw6IkRELk1NLllZWVkiLExMOiJELiBNTU1NIFlZWVkiLExMTDoiRC4gTU1N''@;'; + put 'put ''TSBZWVlZIEg6bW0gW0F1ZXJdIixMTExMOiJkZGRkLCBELiBNTU1NIFlZWVkgSDptbSBbQXVlcl0ifSxjYWxlbmRhcjp7c2FtZURheToiW0hhdXQgdW1dIExUIixzYW1lRWxzZToiTCIsbmV4dERheToiW011ZXIgdW1dIExUIixuZXh0V2VlazoiZGRkZCBbdW1dIExUIixsYXN0RGF5OiJbR1x4''@;'; + put 'put ''ZWJzY2h0ZXIgdW1dIExUIixsYXN0V2VlazpmdW5jdGlvbigpe3N3aXRjaCh0aGlzLmRheSgpKXtjYXNlIDI6Y2FzZSA0OnJldHVybiJbTGVzY2h0ZW5dIGRkZGQgW3VtXSBMVCI7ZGVmYXVsdDpyZXR1cm4iW0xlc2NodGVdIGRkZGQgW3VtXSBMVCJ9fX0scmVsYXRpdmVUaW1lOntmdXR1cmU6''@;'; + put 'put ''ZnVuY3Rpb24gRShaKXtyZXR1cm4gVShaLnN1YnN0cigwLFouaW5kZXhPZigiICIpKSk/ImEgIitaOiJhbiAiK1p9LHBhc3Q6ZnVuY3Rpb24gTWUoWil7cmV0dXJuIFUoWi5zdWJzdHIoMCxaLmluZGV4T2YoIiAiKSkpPyJ2aXJ1ICIrWjoidmlydW4gIitafSxzOiJlIHB1ZXIgU2Vrb25uZW4i''@;'; + put 'put ''LHNzOiIlZCBTZWtvbm5lbiIsbTpCLG1tOiIlZCBNaW51dHRlbiIsaDpCLGhoOiIlZCBTdG9ubmVuIixkOkIsZGQ6IiVkIERlZWciLE06QixNTToiJWQgTVx4ZTlpbnQiLHk6Qix5eToiJWQgSm9lciJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn1cLi8sb3JkaW5hbDoiJWQuIix3''@;'; + put 'put ''ZWVrOntkb3c6MSxkb3k6NH19KX0oTCgxNTQzOSkpfSwzMjM0OTpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0IjttZS5kZWZpbmVMb2NhbGUoImxvIix7bW9udGhzOiJcdTBlYTFcdTBlYjFcdTBlODdcdTBlODFcdTBlYWRcdTBlOTlfXHUwZTgxXHUwZWI4XHUw''@;'; + put 'put ''ZWExXHUwZTllXHUwZWIyX1x1MGVhMVx1MGViNVx1MGU5OVx1MGViMl9cdTBlYzBcdTBlYTFcdTBlYWFcdTBlYjJfXHUwZTllXHUwZWI2XHUwZTk0XHUwZWFhXHUwZWIwXHUwZTllXHUwZWIyX1x1MGVhMVx1MGViNFx1MGU5Nlx1MGViOFx1MGU5OVx1MGViMl9cdTBlODFcdTBlY2RcdTBlYTVc''@;'; + put 'put ''dTBlYjBcdTBlODFcdTBlYmJcdTBlOTRfXHUwZWFhXHUwZWI0XHUwZTg3XHUwZWFiXHUwZWIyX1x1MGU4MVx1MGViMVx1MGU5OVx1MGU4ZFx1MGViMl9cdTBlOTVcdTBlYjhcdTBlYTVcdTBlYjJfXHUwZTllXHUwZWIwXHUwZTg4XHUwZWI0XHUwZTgxX1x1MGU5N1x1MGViMVx1MGU5OVx1MGVh''@;'; + put 'put ''N1x1MGViMiIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiXHUwZWExXHUwZWIxXHUwZTg3XHUwZTgxXHUwZWFkXHUwZTk5X1x1MGU4MVx1MGViOFx1MGVhMVx1MGU5ZVx1MGViMl9cdTBlYTFcdTBlYjVcdTBlOTlcdTBlYjJfXHUwZWMwXHUwZWExXHUwZWFhXHUwZWIyX1x1MGU5ZVx1MGViNlx1''@;'; + put 'put ''MGU5NFx1MGVhYVx1MGViMFx1MGU5ZVx1MGViMl9cdTBlYTFcdTBlYjRcdTBlOTZcdTBlYjhcdTBlOTlcdTBlYjJfXHUwZTgxXHUwZWNkXHUwZWE1XHUwZWIwXHUwZTgxXHUwZWJiXHUwZTk0X1x1MGVhYVx1MGViNFx1MGU4N1x1MGVhYlx1MGViMl9cdTBlODFcdTBlYjFcdTBlOTlcdTBlOGRc''@;'; + put 'put ''dTBlYjJfXHUwZTk1XHUwZWI4XHUwZWE1XHUwZWIyX1x1MGU5ZVx1MGViMFx1MGU4OFx1MGViNFx1MGU4MV9cdTBlOTdcdTBlYjFcdTBlOTlcdTBlYTdcdTBlYjIiLnNwbGl0KCJfIiksd2Vla2RheXM6Ilx1MGVhZFx1MGViMlx1MGU5N1x1MGViNFx1MGU5NF9cdTBlODhcdTBlYjFcdTBlOTlf''@;'; + put 'put ''XHUwZWFkXHUwZWIxXHUwZTg3XHUwZTg0XHUwZWIyXHUwZTk5X1x1MGU5ZVx1MGViOFx1MGU5NF9cdTBlOWVcdTBlYjBcdTBlYWJcdTBlYjFcdTBlOTRfXHUwZWFhXHUwZWI4XHUwZTgxX1x1MGVjMFx1MGVhYVx1MGViYlx1MGViMiIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJcdTBlOTdc''@;'; + put 'put ''dTBlYjRcdTBlOTRfXHUwZTg4XHUwZWIxXHUwZTk5X1x1MGVhZFx1MGViMVx1MGU4N1x1MGU4NFx1MGViMlx1MGU5OV9cdTBlOWVcdTBlYjhcdTBlOTRfXHUwZTllXHUwZWIwXHUwZWFiXHUwZWIxXHUwZTk0X1x1MGVhYVx1MGViOFx1MGU4MV9cdTBlYzBcdTBlYWFcdTBlYmJcdTBlYjIiLnNw''@;'; + put 'put ''bGl0KCJfIiksd2Vla2RheXNNaW46Ilx1MGU5N19cdTBlODhfXHUwZWFkXHUwZTg0X1x1MGU5ZV9cdTBlOWVcdTBlYWJfXHUwZWFhXHUwZTgxX1x1MGVhYSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1BhcnNlRXhhY3Q6ITAsbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIs''@;'; + put 'put ''TDoiREQvTU0vWVlZWSIsTEw6IkQgTU1NTSBZWVlZIixMTEw6IkQgTU1NTSBZWVlZIEhIOm1tIixMTExMOiJcdTBlYTdcdTBlYjFcdTBlOTlkZGRkIEQgTU1NTSBZWVlZIEhIOm1tIn0sbWVyaWRpZW1QYXJzZTovXHUwZTk1XHUwZWFkXHUwZTk5XHUwZWMwXHUwZThhXHUwZWJiXHUwZWM5XHUw''@;'; + put 'put ''ZWIyfFx1MGU5NVx1MGVhZFx1MGU5OVx1MGVjMVx1MGVhNVx1MGU4Ny8saXNQTTpmdW5jdGlvbihFKXtyZXR1cm4iXHUwZTk1XHUwZWFkXHUwZTk5XHUwZWMxXHUwZWE1XHUwZTg3Ij09PUV9LG1lcmlkaWVtOmZ1bmN0aW9uKEUsTWUsVSl7cmV0dXJuIEU8MTI/Ilx1MGU5NVx1MGVhZFx1MGU5''@;'; + put 'put ''OVx1MGVjMFx1MGU4YVx1MGViYlx1MGVjOVx1MGViMiI6Ilx1MGU5NVx1MGVhZFx1MGU5OVx1MGVjMVx1MGVhNVx1MGU4NyJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbXHUwZWExXHUwZWI3XHUwZWM5XHUwZTk5XHUwZWI1XHUwZWM5XHUwZWMwXHUwZWE3XHUwZWE1XHUwZWIyXSBMVCIsbmV4dERh''@;'; + put 'put ''eToiW1x1MGVhMVx1MGViN1x1MGVjOVx1MGVhZFx1MGViN1x1MGVjOFx1MGU5OVx1MGVjMFx1MGVhN1x1MGVhNVx1MGViMl0gTFQiLG5leHRXZWVrOiJbXHUwZWE3XHUwZWIxXHUwZTk5XWRkZGRbXHUwZWRjXHUwZWM5XHUwZWIyXHUwZWMwXHUwZWE3XHUwZWE1XHUwZWIyXSBMVCIsbGFzdERh''@;'; + put 'put ''eToiW1x1MGVhMVx1MGViN1x1MGVjOVx1MGVhN1x1MGViMlx1MGU5OVx1MGU5OVx1MGViNVx1MGVjOVx1MGVjMFx1MGVhN1x1MGVhNVx1MGViMl0gTFQiLGxhc3RXZWVrOiJbXHUwZWE3XHUwZWIxXHUwZTk5XWRkZGRbXHUwZWMxXHUwZWE1XHUwZWM5XHUwZWE3XHUwZTk5XHUwZWI1XHUwZWM5''@;'; + put 'put ''XHUwZWMwXHUwZWE3XHUwZWE1XHUwZWIyXSBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiXHUwZWFkXHUwZWI1XHUwZTgxICVzIixwYXN0OiIlc1x1MGU5Y1x1MGVjOFx1MGViMlx1MGU5OVx1MGVhMVx1MGViMiIsczoiXHUwZTlhXHUwZWNkXHUwZWM4XHUwZWMwXHUw''@;'; + put 'put ''ZTk3XHUwZWJiXHUwZWM4XHUwZWIyXHUwZWMzXHUwZTk0XHUwZWE3XHUwZWI0XHUwZTk5XHUwZWIyXHUwZTk3XHUwZWI1IixzczoiJWQgXHUwZWE3XHUwZWI0XHUwZTk5XHUwZWIyXHUwZTk3XHUwZWI1IixtOiIxIFx1MGU5OVx1MGViMlx1MGU5N1x1MGViNSIsbW06IiVkIFx1MGU5OVx1MGVi''@;'; + put 'put ''Mlx1MGU5N1x1MGViNSIsaDoiMSBcdTBlOGFcdTBlYmJcdTBlYzhcdTBlYTdcdTBlYzJcdTBlYTFcdTBlODciLGhoOiIlZCBcdTBlOGFcdTBlYmJcdTBlYzhcdTBlYTdcdTBlYzJcdTBlYTFcdTBlODciLGQ6IjEgXHUwZWExXHUwZWI3XHUwZWM5IixkZDoiJWQgXHUwZWExXHUwZWI3XHUwZWM5''@;'; + put 'put ''IixNOiIxIFx1MGVjMFx1MGU5NFx1MGViN1x1MGVhZFx1MGU5OSIsTU06IiVkIFx1MGVjMFx1MGU5NFx1MGViN1x1MGVhZFx1MGU5OSIseToiMSBcdTBlOWJcdTBlYjUiLHl5OiIlZCBcdTBlOWJcdTBlYjUifSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi8oXHUwZTk3XHUwZWI1XHUwZWM4KVxk''@;'; + put 'put ''ezEsMn0vLG9yZGluYWw6ZnVuY3Rpb24oRSl7cmV0dXJuIlx1MGU5N1x1MGViNVx1MGVjOCIrRX19KX0oTCgxNTQzOSkpfSw5MjQwMDpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0Ijt2YXIgQj17c3M6InNla3VuZFx1MDExN19zZWt1bmRcdTAxN2VpXHUwMTcz''@;'; + put 'put ''X3Nla3VuZGVzIixtOiJtaW51dFx1MDExN19taW51dFx1MDExN3NfbWludXRcdTAxMTkiLG1tOiJtaW51dFx1MDExN3NfbWludVx1MDEwZGlcdTAxNzNfbWludXRlcyIsaDoidmFsYW5kYV92YWxhbmRvc192YWxhbmRcdTAxMDUiLGhoOiJ2YWxhbmRvc192YWxhbmRcdTAxNzNfdmFsYW5kYXMi''@;'; + put 'put ''LGQ6ImRpZW5hX2RpZW5vc19kaWVuXHUwMTA1IixkZDoiZGllbm9zX2RpZW5cdTAxNzNfZGllbmFzIixNOiJtXHUwMTE3bnVvX21cdTAxMTduZXNpb19tXHUwMTE3bmVzXHUwMTJmIixNTToibVx1MDExN25lc2lhaV9tXHUwMTE3bmVzaVx1MDE3M19tXHUwMTE3bmVzaXVzIix5OiJtZXRhaV9t''@;'; + put 'put ''ZXRcdTAxNzNfbWV0dXMiLHl5OiJtZXRhaV9tZXRcdTAxNzNfbWV0dXMifTtmdW5jdGlvbiBNZShhZSxZLFcsTil7cmV0dXJuIFk/UShXKVswXTpOP1EoVylbMV06UShXKVsyXX1mdW5jdGlvbiBVKGFlKXtyZXR1cm4gYWUlMTA9PTB8fGFlPjEwJiZhZTwyMH1mdW5jdGlvbiBRKGFlKXtyZXR1''@;'; + put 'put ''cm4gQlthZV0uc3BsaXQoIl8iKX1mdW5jdGlvbiBaKGFlLFksVyxOKXt2YXIgZWU9YWUrIiAiO3JldHVybiAxPT09YWU/ZWUrTWUoMCxZLFdbMF0sTik6WT9lZSsoVShhZSk/UShXKVsxXTpRKFcpWzBdKTpOP2VlK1EoVylbMV06ZWUrKFUoYWUpP1EoVylbMV06UShXKVsyXSl9bWUuZGVmaW5l''@;'; + put 'put ''TG9jYWxlKCJsdCIse21vbnRoczp7Zm9ybWF0OiJzYXVzaW9fdmFzYXJpb19rb3ZvX2JhbGFuZFx1MDE3ZWlvX2dlZ3VcdTAxN2VcdTAxMTdzX2Jpclx1MDE3ZWVsaW9fbGllcG9zX3J1Z3BqXHUwMTZiXHUwMTBkaW9fcnVnc1x1MDExN2pvX3NwYWxpb19sYXBrcmlcdTAxMGRpb19ncnVvZFx1''@;'; + put 'put ''MDE3ZWlvIi5zcGxpdCgiXyIpLHN0YW5kYWxvbmU6InNhdXNpc192YXNhcmlzX2tvdmFzX2JhbGFuZGlzX2dlZ3VcdTAxN2VcdTAxMTdfYmlyXHUwMTdlZWxpc19saWVwYV9ydWdwalx1MDE2YnRpc19ydWdzXHUwMTE3amlzX3NwYWxpc19sYXBrcml0aXNfZ3J1b2RpcyIuc3BsaXQoIl8iKSxp''@;'; + put 'put ''c0Zvcm1hdDovRFtvRF0/KFxbW15cW1xdXSpcXXxccykrTU1NTT98TU1NTT8oXFtbXlxbXF1dKlxdfFxzKStEW29EXT8vfSxtb250aHNTaG9ydDoic2F1X3Zhc19rb3ZfYmFsX2dlZ19iaXJfbGllX3JncF9yZ3Nfc3BhX2xhcF9ncmQiLnNwbGl0KCJfIiksd2Vla2RheXM6e2Zvcm1hdDoic2Vr''@;'; + put 'put ''bWFkaWVuXHUwMTJmX3Bpcm1hZGllblx1MDEyZl9hbnRyYWRpZW5cdTAxMmZfdHJlXHUwMTBkaWFkaWVuXHUwMTJmX2tldHZpcnRhZGllblx1MDEyZl9wZW5rdGFkaWVuXHUwMTJmX1x1MDE2MWVcdTAxNjF0YWRpZW5cdTAxMmYiLnNwbGl0KCJfIiksc3RhbmRhbG9uZToic2VrbWFkaWVuaXNf''@;'; + put 'put ''cGlybWFkaWVuaXNfYW50cmFkaWVuaXNfdHJlXHUwMTBkaWFkaWVuaXNfa2V0dmlydGFkaWVuaXNfcGVua3RhZGllbmlzX1x1MDE2MWVcdTAxNjF0YWRpZW5pcyIuc3BsaXQoIl8iKSxpc0Zvcm1hdDovZGRkZCBISDptbS99LHdlZWtkYXlzU2hvcnQ6IlNla19QaXJfQW50X1RyZV9LZXRfUGVu''@;'; + put 'put ''X1x1MDE2MGVcdTAxNjEiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46IlNfUF9BX1RfS19Qbl9cdTAxNjAiLnNwbGl0KCJfIiksd2Vla2RheXNQYXJzZUV4YWN0OiEwLGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IllZWVktTU0tREQiLExMOiJZWVlZIFttLl0g''@;'; + put 'put ''TU1NTSBEIFtkLl0iLExMTDoiWVlZWSBbbS5dIE1NTU0gRCBbZC5dLCBISDptbSBbdmFsLl0iLExMTEw6IllZWVkgW20uXSBNTU1NIEQgW2QuXSwgZGRkZCwgSEg6bW0gW3ZhbC5dIixsOiJZWVlZLU1NLUREIixsbDoiWVlZWSBbbS5dIE1NTU0gRCBbZC5dIixsbGw6IllZWVkgW20uXSBNTU1N''@;'; + put 'put ''IEQgW2QuXSwgSEg6bW0gW3ZhbC5dIixsbGxsOiJZWVlZIFttLl0gTU1NTSBEIFtkLl0sIGRkZCwgSEg6bW0gW3ZhbC5dIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltcdTAxNjBpYW5kaWVuXSBMVCIsbmV4dERheToiW1J5dG9qXSBMVCIsbmV4dFdlZWs6ImRkZGQgTFQiLGxhc3REYXk6IltWYWth''@;'; + put 'put ''cl0gTFQiLGxhc3RXZWVrOiJbUHJhXHUwMTE3anVzXHUwMTJmXSBkZGRkIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJwbyAlcyIscGFzdDoicHJpZVx1MDE2MSAlcyIsczpmdW5jdGlvbiBFKGFlLFksVyxOKXtyZXR1cm4gWT8ia2VsaW9zIHNla3VuZFx1MDExN3Mi''@;'; + put 'put ''Ok4/ImtlbGlcdTAxNzMgc2VrdW5kXHUwMTdlaVx1MDE3MyI6ImtlbGlhcyBzZWt1bmRlcyJ9LHNzOlosbTpNZSxtbTpaLGg6TWUsaGg6WixkOk1lLGRkOlosTTpNZSxNTTpaLHk6TWUseXk6Wn0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfS1vamkvLG9yZGluYWw6ZnVuY3Rpb24o''@;'; + put 'put ''YWUpe3JldHVybiBhZSsiLW9qaSJ9LHdlZWs6e2RvdzoxLGRveTo0fX0pfShMKDE1NDM5KSl9LDM5OTkxOmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlvbihtZSl7InVzZSBzdHJpY3QiO3ZhciBCPXtzczoic2VrdW5kZXNfc2VrdW5kXHUwMTEzbV9zZWt1bmRlX3Nla3VuZGVzIi5zcGxpdCgi''@;'; + put 'put ''XyIpLG06Im1pblx1MDE2YnRlc19taW5cdTAxNmJ0XHUwMTEzbV9taW5cdTAxNmJ0ZV9taW5cdTAxNmJ0ZXMiLnNwbGl0KCJfIiksbW06Im1pblx1MDE2YnRlc19taW5cdTAxNmJ0XHUwMTEzbV9taW5cdTAxNmJ0ZV9taW5cdTAxNmJ0ZXMiLnNwbGl0KCJfIiksaDoic3R1bmRhc19zdHVuZFx1''@;'; + put 'put ''MDEwMW1fc3R1bmRhX3N0dW5kYXMiLnNwbGl0KCJfIiksaGg6InN0dW5kYXNfc3R1bmRcdTAxMDFtX3N0dW5kYV9zdHVuZGFzIi5zcGxpdCgiXyIpLGQ6ImRpZW5hc19kaWVuXHUwMTAxbV9kaWVuYV9kaWVuYXMiLnNwbGl0KCJfIiksZGQ6ImRpZW5hc19kaWVuXHUwMTAxbV9kaWVuYV9kaWVu''@;'; + put 'put ''YXMiLnNwbGl0KCJfIiksTToibVx1MDExM25lXHUwMTYxYV9tXHUwMTEzbmVcdTAxNjFpZW1fbVx1MDExM25lc2lzX21cdTAxMTNuZVx1MDE2MWkiLnNwbGl0KCJfIiksTU06Im1cdTAxMTNuZVx1MDE2MWFfbVx1MDExM25lXHUwMTYxaWVtX21cdTAxMTNuZXNpc19tXHUwMTEzbmVcdTAxNjFp''@;'; + put 'put ''Ii5zcGxpdCgiXyIpLHk6ImdhZGFfZ2FkaWVtX2dhZHNfZ2FkaSIuc3BsaXQoIl8iKSx5eToiZ2FkYV9nYWRpZW1fZ2Fkc19nYWRpIi5zcGxpdCgiXyIpfTtmdW5jdGlvbiBFKGllLGFlLFkpe3JldHVybiBZP2FlJTEwPT0xJiZhZSUxMDAhPTExP2llWzJdOmllWzNdOmFlJTEwPT0xJiZhZSUx''@;'; + put 'put ''MDAhPTExP2llWzBdOmllWzFdfWZ1bmN0aW9uIE1lKGllLGFlLFkpe3JldHVybiBpZSsiICIrRShCW1ldLGllLGFlKX1mdW5jdGlvbiBVKGllLGFlLFkpe3JldHVybiBFKEJbWV0saWUsYWUpfW1lLmRlZmluZUxvY2FsZSgibHYiLHttb250aHM6ImphbnZcdTAxMDFyaXNfZmVicnVcdTAxMDFy''@;'; + put 'put ''aXNfbWFydHNfYXByXHUwMTJibGlzX21haWpzX2pcdTAxNmJuaWpzX2pcdTAxNmJsaWpzX2F1Z3VzdHNfc2VwdGVtYnJpc19va3RvYnJpc19ub3ZlbWJyaXNfZGVjZW1icmlzIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJqYW5fZmViX21hcl9hcHJfbWFpX2pcdTAxNmJuX2pcdTAxNmJsX2F1''@;'; + put 'put ''Z19zZXBfb2t0X25vdl9kZWMiLnNwbGl0KCJfIiksd2Vla2RheXM6InN2XHUwMTEzdGRpZW5hX3Bpcm1kaWVuYV9vdHJkaWVuYV90cmVcdTAxNjFkaWVuYV9jZXR1cnRkaWVuYV9waWVrdGRpZW5hX3Nlc3RkaWVuYSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJTdl9QX09fVF9DX1BrX1Mi''@;'; + put 'put ''LnNwbGl0KCJfIiksd2Vla2RheXNNaW46IlN2X1BfT19UX0NfUGtfUyIuc3BsaXQoIl8iKSx3ZWVrZGF5c1BhcnNlRXhhY3Q6ITAsbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoiREQuTU0uWVlZWS4iLExMOiJZWVlZLiBbZ2FkYV0gRC4gTU1NTSIsTExMOiJZ''@;'; + put 'put ''WVlZLiBbZ2FkYV0gRC4gTU1NTSwgSEg6bW0iLExMTEw6IllZWVkuIFtnYWRhXSBELiBNTU1NLCBkZGRkLCBISDptbSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbXHUwMTYwb2RpZW4gcHVsa3N0ZW5dIExUIixuZXh0RGF5OiJbUlx1MDEyYnQgcHVsa3N0ZW5dIExUIixuZXh0V2VlazoiZGRkZCBb''@;'; + put 'put ''cHVsa3N0ZW5dIExUIixsYXN0RGF5OiJbVmFrYXIgcHVsa3N0ZW5dIExUIixsYXN0V2VlazoiW1BhZ1x1MDEwMWp1XHUwMTYxXHUwMTAxXSBkZGRkIFtwdWxrc3Rlbl0gTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6InBcdTAxMTNjICVzIixwYXN0OiJwaXJtcyAlcyIs''@;'; + put 'put ''czpmdW5jdGlvbiBRKGllLGFlKXtyZXR1cm4gYWU/ImRhXHUwMTdlYXMgc2VrdW5kZXMiOiJkYVx1MDE3ZVx1MDEwMW0gc2VrdW5kXHUwMTEzbSJ9LHNzOk1lLG06VSxtbTpNZSxoOlUsaGg6TWUsZDpVLGRkOk1lLE06VSxNTTpNZSx5OlUseXk6TWV9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6''@;'; + put 'put ''L1xkezEsMn1cLi8sb3JkaW5hbDoiJWQuIix3ZWVrOntkb3c6MSxkb3k6NH19KX0oTCgxNTQzOSkpfSwyODQ3NzpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0Ijt2YXIgQj17d29yZHM6e3NzOlsic2VrdW5kIiwic2VrdW5kYSIsInNla3VuZGkiXSxtOlsiamVk''@;'; + put 'put ''YW4gbWludXQiLCJqZWRub2cgbWludXRhIl0sbW06WyJtaW51dCIsIm1pbnV0YSIsIm1pbnV0YSJdLGg6WyJqZWRhbiBzYXQiLCJqZWRub2cgc2F0YSJdLGhoOlsic2F0Iiwic2F0YSIsInNhdGkiXSxkZDpbImRhbiIsImRhbmEiLCJkYW5hIl0sTU06WyJtamVzZWMiLCJtamVzZWNhIiwibWpl''@;'; + put 'put ''c2VjaSJdLHl5OlsiZ29kaW5hIiwiZ29kaW5lIiwiZ29kaW5hIl19LGNvcnJlY3RHcmFtbWF0aWNhbENhc2U6ZnVuY3Rpb24oTWUsVSl7cmV0dXJuIDE9PT1NZT9VWzBdOk1lPj0yJiZNZTw9ND9VWzFdOlVbMl19LHRyYW5zbGF0ZTpmdW5jdGlvbihNZSxVLFEpe3ZhciBaPUIud29yZHNbUV07''@;'; + put 'put ''cmV0dXJuIDE9PT1RLmxlbmd0aD9VP1pbMF06WlsxXTpNZSsiICIrQi5jb3JyZWN0R3JhbW1hdGljYWxDYXNlKE1lLFopfX07bWUuZGVmaW5lTG9jYWxlKCJtZSIse21vbnRoczoiamFudWFyX2ZlYnJ1YXJfbWFydF9hcHJpbF9tYWpfanVuX2p1bF9hdmd1c3Rfc2VwdGVtYmFyX29rdG9iYXJf''@;'; + put 'put ''bm92ZW1iYXJfZGVjZW1iYXIiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6Imphbi5fZmViLl9tYXIuX2Fwci5fbWFqX2p1bl9qdWxfYXZnLl9zZXAuX29rdC5fbm92Ll9kZWMuIi5zcGxpdCgiXyIpLG1vbnRoc1BhcnNlRXhhY3Q6ITAsd2Vla2RheXM6Im5lZGplbGphX3BvbmVkamVsamFrX3V0''@;'; + put 'put ''b3Jha19zcmlqZWRhX1x1MDEwZGV0dnJ0YWtfcGV0YWtfc3Vib3RhIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6Im5lZC5fcG9uLl91dG8uX3NyaS5fXHUwMTBkZXQuX3BldC5fc3ViLiIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoibmVfcG9fdXRfc3JfXHUwMTBkZV9wZV9zdSIuc3BsaXQo''@;'; + put 'put ''Il8iKSx3ZWVrZGF5c1BhcnNlRXhhY3Q6ITAsbG9uZ0RhdGVGb3JtYXQ6e0xUOiJIOm1tIixMVFM6Ikg6bW06c3MiLEw6IkRELk1NLllZWVkiLExMOiJELiBNTU1NIFlZWVkiLExMTDoiRC4gTU1NTSBZWVlZIEg6bW0iLExMTEw6ImRkZGQsIEQuIE1NTU0gWVlZWSBIOm1tIn0sY2FsZW5kYXI6''@;'; + put 'put ''e3NhbWVEYXk6IltkYW5hcyB1XSBMVCIsbmV4dERheToiW3NqdXRyYSB1XSBMVCIsbmV4dFdlZWs6ZnVuY3Rpb24oKXtzd2l0Y2godGhpcy5kYXkoKSl7Y2FzZSAwOnJldHVybiJbdV0gW25lZGplbGp1XSBbdV0gTFQiO2Nhc2UgMzpyZXR1cm4iW3VdIFtzcmlqZWR1XSBbdV0gTFQiO2Nhc2Ug''@;'; + put 'put ''NjpyZXR1cm4iW3VdIFtzdWJvdHVdIFt1XSBMVCI7Y2FzZSAxOmNhc2UgMjpjYXNlIDQ6Y2FzZSA1OnJldHVybiJbdV0gZGRkZCBbdV0gTFQifX0sbGFzdERheToiW2p1XHUwMTBkZSB1XSBMVCIsbGFzdFdlZWs6ZnVuY3Rpb24oKXtyZXR1cm5bIltwcm9cdTAxNjFsZV0gW25lZGplbGplXSBb''@;'; + put 'put ''dV0gTFQiLCJbcHJvXHUwMTYxbG9nXSBbcG9uZWRqZWxqa2FdIFt1XSBMVCIsIltwcm9cdTAxNjFsb2ddIFt1dG9ya2FdIFt1XSBMVCIsIltwcm9cdTAxNjFsZV0gW3NyaWplZGVdIFt1XSBMVCIsIltwcm9cdTAxNjFsb2ddIFtcdTAxMGRldHZydGthXSBbdV0gTFQiLCJbcHJvXHUwMTYxbG9n''@;'; + put 'put ''XSBbcGV0a2FdIFt1XSBMVCIsIltwcm9cdTAxNjFsZV0gW3N1Ym90ZV0gW3VdIExUIl1bdGhpcy5kYXkoKV19LHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6InphICVzIixwYXN0OiJwcmlqZSAlcyIsczoibmVrb2xpa28gc2VrdW5kaSIsc3M6Qi50cmFuc2xhdGUsbTpCLnRy''@;'; + put 'put ''YW5zbGF0ZSxtbTpCLnRyYW5zbGF0ZSxoOkIudHJhbnNsYXRlLGhoOkIudHJhbnNsYXRlLGQ6ImRhbiIsZGQ6Qi50cmFuc2xhdGUsTToibWplc2VjIixNTTpCLnRyYW5zbGF0ZSx5OiJnb2RpbnUiLHl5OkIudHJhbnNsYXRlfSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9XC4vLG9y''@;'; + put 'put ''ZGluYWw6IiVkLiIsd2Vlazp7ZG93OjEsZG95Ojd9fSl9KEwoMTU0MzkpKX0sNTUxMTg6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7bWUuZGVmaW5lTG9jYWxlKCJtaSIse21vbnRoczoiS29oaS10XHUwMTAxdGVfSHVpLXRhbmd1cnVfUG91dFx1MDE2Yi10''@;'; + put 'put ''ZS1yYW5naV9QYWVuZ2Etd2hcdTAxMDF3aFx1MDEwMV9IYXJhdHVhX1BpcGlyaV9IXHUwMTRkbmdvaW5nb2lfSGVyZS10dXJpLWtcdTAxNGRrXHUwMTAxX01haHVydV9XaGlyaW5nYS1cdTAxMDEtbnVrdV9XaGlyaW5nYS1cdTAxMDEtcmFuZ2lfSGFraWhlYSIuc3BsaXQoIl8iKSxtb250aHNT''@;'; + put 'put ''aG9ydDoiS29oaV9IdWlfUG91X1BhZV9IYXJhX1BpcGlfSFx1MDE0ZG5nb2lfSGVyZV9NYWh1X1doaS1udV9XaGktcmFfSGFraSIuc3BsaXQoIl8iKSxtb250aHNSZWdleDovKD86WydhLXpcdTAxMDFcdTAxNERcdTAxNkJdK1wtPyl7MSwzfS9pLG1vbnRoc1N0cmljdFJlZ2V4Oi8oPzpbJ2Et''@;'; + put 'put ''elx1MDEwMVx1MDE0RFx1MDE2Ql0rXC0/KXsxLDN9L2ksbW9udGhzU2hvcnRSZWdleDovKD86WydhLXpcdTAxMDFcdTAxNERcdTAxNkJdK1wtPyl7MSwzfS9pLG1vbnRoc1Nob3J0U3RyaWN0UmVnZXg6Lyg/OlsnYS16XHUwMTAxXHUwMTREXHUwMTZCXStcLT8pezEsMn0vaSx3ZWVrZGF5czoi''@;'; + put 'put ''Ulx1MDEwMXRhcHVfTWFuZV9UXHUwMTZicmVpX1dlbmVyZWlfVFx1MDEwMWl0ZV9QYXJhaXJlX0hcdTAxMDF0YXJlaSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJUYV9NYV9UXHUwMTZiX1dlX1RcdTAxMDFpX1BhX0hcdTAxMDEiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46IlRhX01hX1Rc''@;'; + put 'put ''dTAxNmJfV2VfVFx1MDEwMWlfUGFfSFx1MDEwMSIuc3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJERC9NTS9ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVkgW2ldIEhIOm1tIixMTExMOiJkZGRkLCBEIE1NTU0gWVlZ''@;'; + put 'put ''WSBbaV0gSEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW2kgdGVpZSBtYWhhbmEsIGldIExUIixuZXh0RGF5OiJbYXBvcG8gaV0gTFQiLG5leHRXZWVrOiJkZGRkIFtpXSBMVCIsbGFzdERheToiW2luYW5haGkgaV0gTFQiLGxhc3RXZWVrOiJkZGRkIFt3aGFrYW11dHVuZ2EgaV0gTFQiLHNh''@;'; + put 'put ''bWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6Imkgcm90byBpICVzIixwYXN0OiIlcyBpIG11YSIsczoidGUgaFx1MDExM2tvbmEgcnVhcnVhIixzczoiJWQgaFx1MDExM2tvbmEiLG06ImhlIG1lbmV0aSIsbW06IiVkIG1lbmV0aSIsaDoidGUgaGFvcmEiLGhoOiIlZCBoYW9yYSIs''@;'; + put 'put ''ZDoiaGUgcmEiLGRkOiIlZCByYSIsTToiaGUgbWFyYW1hIixNTToiJWQgbWFyYW1hIix5OiJoZSB0YXUiLHl5OiIlZCB0YXUifSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9XHhiYS8sb3JkaW5hbDoiJWRceGJhIix3ZWVrOntkb3c6MSxkb3k6NH19KX0oTCgxNTQzOSkpfSwxNTk0''@;'; + put 'put ''MzpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0IjttZS5kZWZpbmVMb2NhbGUoIm1rIix7bW9udGhzOiJcdTA0NThcdTA0MzBcdTA0M2RcdTA0NDNcdTA0MzBcdTA0NDBcdTA0MzhfXHUwNDQ0XHUwNDM1XHUwNDMyXHUwNDQwXHUwNDQzXHUwNDMwXHUwNDQwXHUw''@;'; + put 'put ''NDM4X1x1MDQzY1x1MDQzMFx1MDQ0MFx1MDQ0Ml9cdTA0MzBcdTA0M2ZcdTA0NDBcdTA0MzhcdTA0M2JfXHUwNDNjXHUwNDMwXHUwNDU4X1x1MDQ1OFx1MDQ0M1x1MDQzZFx1MDQzOF9cdTA0NThcdTA0NDNcdTA0M2JcdTA0MzhfXHUwNDMwXHUwNDMyXHUwNDMzXHUwNDQzXHUwNDQxXHUwNDQy''@;'; + put 'put ''X1x1MDQ0MVx1MDQzNVx1MDQzZlx1MDQ0Mlx1MDQzNVx1MDQzY1x1MDQzMlx1MDQ0MFx1MDQzOF9cdTA0M2VcdTA0M2FcdTA0NDJcdTA0M2VcdTA0M2NcdTA0MzJcdTA0NDBcdTA0MzhfXHUwNDNkXHUwNDNlXHUwNDM1XHUwNDNjXHUwNDMyXHUwNDQwXHUwNDM4X1x1MDQzNFx1MDQzNVx1MDQz''@;'; + put 'put ''YVx1MDQzNVx1MDQzY1x1MDQzMlx1MDQ0MFx1MDQzOCIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiXHUwNDU4XHUwNDMwXHUwNDNkX1x1MDQ0NFx1MDQzNVx1MDQzMl9cdTA0M2NcdTA0MzBcdTA0NDBfXHUwNDMwXHUwNDNmXHUwNDQwX1x1MDQzY1x1MDQzMFx1MDQ1OF9cdTA0NThcdTA0NDNc''@;'; + put 'put ''dTA0M2RfXHUwNDU4XHUwNDQzXHUwNDNiX1x1MDQzMFx1MDQzMlx1MDQzM19cdTA0NDFcdTA0MzVcdTA0M2ZfXHUwNDNlXHUwNDNhXHUwNDQyX1x1MDQzZFx1MDQzZVx1MDQzNV9cdTA0MzRcdTA0MzVcdTA0M2EiLnNwbGl0KCJfIiksd2Vla2RheXM6Ilx1MDQzZFx1MDQzNVx1MDQzNFx1MDQz''@;'; + put 'put ''NVx1MDQzYlx1MDQzMF9cdTA0M2ZcdTA0M2VcdTA0M2RcdTA0MzVcdTA0MzRcdTA0MzVcdTA0M2JcdTA0M2RcdTA0MzhcdTA0M2FfXHUwNDMyXHUwNDQyXHUwNDNlXHUwNDQwXHUwNDNkXHUwNDM4XHUwNDNhX1x1MDQ0MVx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQzMF9cdTA0NDdcdTA0MzVcdTA0''@;'; + put 'put ''NDJcdTA0MzJcdTA0NDBcdTA0NDJcdTA0M2VcdTA0M2FfXHUwNDNmXHUwNDM1XHUwNDQyXHUwNDNlXHUwNDNhX1x1MDQ0MVx1MDQzMFx1MDQzMVx1MDQzZVx1MDQ0Mlx1MDQzMCIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJcdTA0M2RcdTA0MzVcdTA0MzRfXHUwNDNmXHUwNDNlXHUwNDNk''@;'; + put 'put ''X1x1MDQzMlx1MDQ0Mlx1MDQzZV9cdTA0NDFcdTA0NDBcdTA0MzVfXHUwNDQ3XHUwNDM1XHUwNDQyX1x1MDQzZlx1MDQzNVx1MDQ0Ml9cdTA0NDFcdTA0MzBcdTA0MzEiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46Ilx1MDQzZGVfXHUwNDNmb19cdTA0MzJcdTA0NDJfXHUwNDQxXHUwNDQwX1x1''@;'; + put 'put ''MDQ0N1x1MDQzNV9cdTA0M2ZcdTA0MzVfXHUwNDQxYSIuc3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6Ikg6bW0iLExUUzoiSDptbTpzcyIsTDoiRC5NTS5ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVkgSDptbSIsTExMTDoiZGRkZCwgRCBNTU1NIFlZWVkgSDpt''@;'; + put 'put ''bSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbXHUwNDE0XHUwNDM1XHUwNDNkXHUwNDM1XHUwNDQxIFx1MDQzMlx1MDQzZV0gTFQiLG5leHREYXk6IltcdTA0MjNcdTA0NDJcdTA0NDBcdTA0MzUgXHUwNDMyXHUwNDNlXSBMVCIsbmV4dFdlZWs6IltcdTA0MTJcdTA0M2VdIGRkZGQgW1x1MDQzMlx1''@;'; + put 'put ''MDQzZV0gTFQiLGxhc3REYXk6IltcdTA0MTJcdTA0NDdcdTA0MzVcdTA0NDBcdTA0MzAgXHUwNDMyXHUwNDNlXSBMVCIsbGFzdFdlZWs6ZnVuY3Rpb24oKXtzd2l0Y2godGhpcy5kYXkoKSl7Y2FzZSAwOmNhc2UgMzpjYXNlIDY6cmV0dXJuIltcdTA0MThcdTA0MzdcdTA0M2NcdTA0MzhcdTA0''@;'; + put 'put ''M2RcdTA0MzBcdTA0NDJcdTA0MzBcdTA0NDJcdTA0MzBdIGRkZGQgW1x1MDQzMlx1MDQzZV0gTFQiO2Nhc2UgMTpjYXNlIDI6Y2FzZSA0OmNhc2UgNTpyZXR1cm4iW1x1MDQxOFx1MDQzN1x1MDQzY1x1MDQzOFx1MDQzZFx1MDQzMFx1MDQ0Mlx1MDQzOFx1MDQzZVx1MDQ0Ml0gZGRkZCBbXHUw''@;'; + put 'put ''NDMyXHUwNDNlXSBMVCJ9fSxzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJcdTA0MzdcdTA0MzAgJXMiLHBhc3Q6Ilx1MDQzZlx1MDQ0MFx1MDQzNVx1MDQzNCAlcyIsczoiXHUwNDNkXHUwNDM1XHUwNDNhXHUwNDNlXHUwNDNiXHUwNDNhXHUwNDQzIFx1MDQ0MVx1MDQzNVx1''@;'; + put 'put ''MDQzYVx1MDQ0M1x1MDQzZFx1MDQzNFx1MDQzOCIsc3M6IiVkIFx1MDQ0MVx1MDQzNVx1MDQzYVx1MDQ0M1x1MDQzZFx1MDQzNFx1MDQzOCIsbToiXHUwNDM1XHUwNDM0XHUwNDNkXHUwNDMwIFx1MDQzY1x1MDQzOFx1MDQzZFx1MDQ0M1x1MDQ0Mlx1MDQzMCIsbW06IiVkIFx1MDQzY1x1MDQz''@;'; + put 'put ''OFx1MDQzZFx1MDQ0M1x1MDQ0Mlx1MDQzOCIsaDoiXHUwNDM1XHUwNDM0XHUwNDM1XHUwNDNkIFx1MDQ0N1x1MDQzMFx1MDQ0MSIsaGg6IiVkIFx1MDQ0N1x1MDQzMFx1MDQ0MVx1MDQzMCIsZDoiXHUwNDM1XHUwNDM0XHUwNDM1XHUwNDNkIFx1MDQzNFx1MDQzNVx1MDQzZCIsZGQ6IiVkIFx1''@;'; + put 'put ''MDQzNFx1MDQzNVx1MDQzZFx1MDQzMCIsTToiXHUwNDM1XHUwNDM0XHUwNDM1XHUwNDNkIFx1MDQzY1x1MDQzNVx1MDQ0MVx1MDQzNVx1MDQ0NiIsTU06IiVkIFx1MDQzY1x1MDQzNVx1MDQ0MVx1MDQzNVx1MDQ0Nlx1MDQzOCIseToiXHUwNDM1XHUwNDM0XHUwNDNkXHUwNDMwIFx1MDQzM1x1''@;'; + put 'put ''MDQzZVx1MDQzNFx1MDQzOFx1MDQzZFx1MDQzMCIseXk6IiVkIFx1MDQzM1x1MDQzZVx1MDQzNFx1MDQzOFx1MDQzZFx1MDQzOCJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn0tKFx1MDQzNVx1MDQzMnxcdTA0MzVcdTA0M2R8XHUwNDQyXHUwNDM4fFx1MDQzMlx1MDQzOHxcdTA0''@;'; + put 'put ''NDBcdTA0Mzh8XHUwNDNjXHUwNDM4KS8sb3JkaW5hbDpmdW5jdGlvbihFKXt2YXIgTWU9RSUxMCxVPUUlMTAwO3JldHVybiAwPT09RT9FKyItXHUwNDM1XHUwNDMyIjowPT09VT9FKyItXHUwNDM1XHUwNDNkIjpVPjEwJiZVPDIwP0UrIi1cdTA0NDJcdTA0MzgiOjE9PT1NZT9FKyItXHUwNDMy''@;'; + put 'put ''XHUwNDM4IjoyPT09TWU/RSsiLVx1MDQ0MFx1MDQzOCI6Nz09PU1lfHw4PT09TWU/RSsiLVx1MDQzY1x1MDQzOCI6RSsiLVx1MDQ0Mlx1MDQzOCJ9LHdlZWs6e2RvdzoxLGRveTo3fX0pfShMKDE1NDM5KSl9LDEzODQ5OmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlvbihtZSl7InVzZSBzdHJp''@;'; + put 'put ''Y3QiO21lLmRlZmluZUxvY2FsZSgibWwiLHttb250aHM6Ilx1MGQxY1x1MGQyOFx1MGQ0MVx1MGQzNVx1MGQzMFx1MGQzZl9cdTBkMmJcdTBkNDZcdTBkMmNcdTBkNGRcdTBkMzBcdTBkNDFcdTBkMzVcdTBkMzBcdTBkM2ZfXHUwZDJlXHUwZDNlXHUwZDdjXHUwZDFhXHUwZDRkXHUwZDFhXHUw''@;'; + put 'put ''ZDRkX1x1MGQwZlx1MGQyYVx1MGQ0ZFx1MGQzMFx1MGQzZlx1MGQ3ZF9cdTBkMmVcdTBkNDdcdTBkMmZcdTBkNGRfXHUwZDFjXHUwZDQyXHUwZDdhX1x1MGQxY1x1MGQ0Mlx1MGQzMlx1MGQ0OF9cdTBkMTNcdTBkMTdcdTBkMzhcdTBkNGRcdTBkMzFcdTBkNGRcdTBkMzFcdTBkNGRfXHUwZDM4''@;'; + put 'put ''XHUwZDQ2XHUwZDJhXHUwZDRkXHUwZDMxXHUwZDRkXHUwZDMxXHUwZDAyXHUwZDJjXHUwZDdjX1x1MGQxMlx1MGQxNVx1MGQ0ZFx1MGQxZlx1MGQ0Ylx1MGQyY1x1MGQ3Y19cdTBkMjhcdTBkMzVcdTBkMDJcdTBkMmNcdTBkN2NfXHUwZDIxXHUwZDNmXHUwZDM4XHUwZDAyXHUwZDJjXHUwZDdj''@;'; + put 'put ''Ii5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJcdTBkMWNcdTBkMjhcdTBkNDEuX1x1MGQyYlx1MGQ0Nlx1MGQyY1x1MGQ0ZFx1MGQzMFx1MGQ0MS5fXHUwZDJlXHUwZDNlXHUwZDdjLl9cdTBkMGZcdTBkMmFcdTBkNGRcdTBkMzBcdTBkM2YuX1x1MGQyZVx1MGQ0N1x1MGQyZlx1MGQ0ZF9cdTBk''@;'; + put 'put ''MWNcdTBkNDJcdTBkN2FfXHUwZDFjXHUwZDQyXHUwZDMyXHUwZDQ4Ll9cdTBkMTNcdTBkMTcuX1x1MGQzOFx1MGQ0Nlx1MGQyYVx1MGQ0ZFx1MGQzMVx1MGQ0ZFx1MGQzMS5fXHUwZDEyXHUwZDE1XHUwZDRkXHUwZDFmXHUwZDRiLl9cdTBkMjhcdTBkMzVcdTBkMDIuX1x1MGQyMVx1MGQzZlx1''@;'; + put 'put ''MGQzOFx1MGQwMi4iLnNwbGl0KCJfIiksbW9udGhzUGFyc2VFeGFjdDohMCx3ZWVrZGF5czoiXHUwZDFlXHUwZDNlXHUwZDJmXHUwZDMxXHUwZDNlXHUwZDM0XHUwZDRkXHUwZDFhX1x1MGQyNFx1MGQzZlx1MGQxOVx1MGQ0ZFx1MGQxNVx1MGQzM1x1MGQzZVx1MGQzNFx1MGQ0ZFx1MGQxYV9c''@;'; + put 'put ''dTBkMWFcdTBkNGFcdTBkMzVcdTBkNGRcdTBkMzVcdTBkM2VcdTBkMzRcdTBkNGRcdTBkMWFfXHUwZDJjXHUwZDQxXHUwZDI3XHUwZDI4XHUwZDNlXHUwZDM0XHUwZDRkXHUwZDFhX1x1MGQzNVx1MGQ0ZFx1MGQyZlx1MGQzZVx1MGQzNFx1MGQzZVx1MGQzNFx1MGQ0ZFx1MGQxYV9cdTBkMzVc''@;'; + put 'put ''dTBkNDZcdTBkMzNcdTBkNGRcdTBkMzNcdTBkM2ZcdTBkMmZcdTBkM2VcdTBkMzRcdTBkNGRcdTBkMWFfXHUwZDM2XHUwZDI4XHUwZDNmXHUwZDJmXHUwZDNlXHUwZDM0XHUwZDRkXHUwZDFhIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6Ilx1MGQxZVx1MGQzZVx1MGQyZlx1MGQ3Y19cdTBk''@;'; + put 'put ''MjRcdTBkM2ZcdTBkMTlcdTBkNGRcdTBkMTVcdTBkN2VfXHUwZDFhXHUwZDRhXHUwZDM1XHUwZDRkXHUwZDM1X1x1MGQyY1x1MGQ0MVx1MGQyN1x1MGQ3Yl9cdTBkMzVcdTBkNGRcdTBkMmZcdTBkM2VcdTBkMzRcdTBkMDJfXHUwZDM1XHUwZDQ2XHUwZDMzXHUwZDRkXHUwZDMzXHUwZDNmX1x1''@;'; + put 'put ''MGQzNlx1MGQyOFx1MGQzZiIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiXHUwZDFlXHUwZDNlX1x1MGQyNFx1MGQzZl9cdTBkMWFcdTBkNGFfXHUwZDJjXHUwZDQxX1x1MGQzNVx1MGQ0ZFx1MGQyZlx1MGQzZV9cdTBkMzVcdTBkNDZfXHUwZDM2Ii5zcGxpdCgiXyIpLGxvbmdEYXRlRm9ybWF0''@;'; + put 'put ''OntMVDoiQSBoOm1tIC1cdTBkMjhcdTBkNDEiLExUUzoiQSBoOm1tOnNzIC1cdTBkMjhcdTBkNDEiLEw6IkREL01NL1lZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0gWVlZWSwgQSBoOm1tIC1cdTBkMjhcdTBkNDEiLExMTEw6ImRkZGQsIEQgTU1NTSBZWVlZLCBBIGg6bW0gLVx1''@;'; + put 'put ''MGQyOFx1MGQ0MSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbXHUwZDA3XHUwZDI4XHUwZDRkXHUwZDI4XHUwZDRkXSBMVCIsbmV4dERheToiW1x1MGQyOFx1MGQzZVx1MGQzM1x1MGQ0Nl0gTFQiLG5leHRXZWVrOiJkZGRkLCBMVCIsbGFzdERheToiW1x1MGQwN1x1MGQyOFx1MGQ0ZFx1MGQyOFx1''@;'; + put 'put ''MGQzMlx1MGQ0Nl0gTFQiLGxhc3RXZWVrOiJbXHUwZDE1XHUwZDM0XHUwZDNmXHUwZDFlXHUwZDRkXHUwZDFlXSBkZGRkLCBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiJXMgXHUwZDE1XHUwZDM0XHUwZDNmXHUwZDFlXHUwZDRkXHUwZDFlXHUwZDRkIixwYXN0OiIl''@;'; + put 'put ''cyBcdTBkMmVcdTBkNDFcdTBkN2JcdTBkMmFcdTBkNGQiLHM6Ilx1MGQwNVx1MGQ3ZFx1MGQyYSBcdTBkMjhcdTBkM2ZcdTBkMmVcdTBkM2ZcdTBkMzdcdTBkMTlcdTBkNGRcdTBkMTlcdTBkN2UiLHNzOiIlZCBcdTBkMzhcdTBkNDZcdTBkMTVcdTBkNGRcdTBkMTVcdTBkN2JcdTBkMjFcdTBk''@;'; + put 'put ''NGQiLG06Ilx1MGQxMlx1MGQzMFx1MGQ0MSBcdTBkMmVcdTBkM2ZcdTBkMjhcdTBkM2ZcdTBkMzFcdTBkNGRcdTBkMzFcdTBkNGQiLG1tOiIlZCBcdTBkMmVcdTBkM2ZcdTBkMjhcdTBkM2ZcdTBkMzFcdTBkNGRcdTBkMzFcdTBkNGQiLGg6Ilx1MGQxMlx1MGQzMFx1MGQ0MSBcdTBkMmVcdTBk''@;'; + put 'put ''MjNcdTBkM2ZcdTBkMTVcdTBkNGRcdTBkMTVcdTBkNDJcdTBkN2MiLGhoOiIlZCBcdTBkMmVcdTBkMjNcdTBkM2ZcdTBkMTVcdTBkNGRcdTBkMTVcdTBkNDJcdTBkN2MiLGQ6Ilx1MGQxMlx1MGQzMFx1MGQ0MSBcdTBkMjZcdTBkM2ZcdTBkMzVcdTBkMzhcdTBkMDIiLGRkOiIlZCBcdTBkMjZc''@;'; + put 'put ''dTBkM2ZcdTBkMzVcdTBkMzhcdTBkMDIiLE06Ilx1MGQxMlx1MGQzMFx1MGQ0MSBcdTBkMmVcdTBkM2VcdTBkMzhcdTBkMDIiLE1NOiIlZCBcdTBkMmVcdTBkM2VcdTBkMzhcdTBkMDIiLHk6Ilx1MGQxMlx1MGQzMFx1MGQ0MSBcdTBkMzVcdTBkN2NcdTBkMzdcdTBkMDIiLHl5OiIlZCBcdTBk''@;'; + put 'put ''MzVcdTBkN2NcdTBkMzdcdTBkMDIifSxtZXJpZGllbVBhcnNlOi9cdTBkMzBcdTBkM2VcdTBkMjRcdTBkNGRcdTBkMzBcdTBkM2Z8XHUwZDMwXHUwZDNlXHUwZDM1XHUwZDNmXHUwZDMyXHUwZDQ2fFx1MGQwOVx1MGQxYVx1MGQ0ZFx1MGQxYSBcdTBkMTVcdTBkMzRcdTBkM2ZcdTBkMWVcdTBk''@;'; + put 'put ''NGRcdTBkMWVcdTBkNGR8XHUwZDM1XHUwZDQ4XHUwZDE1XHUwZDQxXHUwZDI4XHUwZDRkXHUwZDI4XHUwZDQ3XHUwZDMwXHUwZDAyfFx1MGQzMFx1MGQzZVx1MGQyNFx1MGQ0ZFx1MGQzMFx1MGQzZi9pLG1lcmlkaWVtSG91cjpmdW5jdGlvbihFLE1lKXtyZXR1cm4gMTI9PT1FJiYoRT0wKSwi''@;'; + put 'put ''XHUwZDMwXHUwZDNlXHUwZDI0XHUwZDRkXHUwZDMwXHUwZDNmIj09PU1lJiZFPj00fHwiXHUwZDA5XHUwZDFhXHUwZDRkXHUwZDFhIFx1MGQxNVx1MGQzNFx1MGQzZlx1MGQxZVx1MGQ0ZFx1MGQxZVx1MGQ0ZCI9PT1NZXx8Ilx1MGQzNVx1MGQ0OFx1MGQxNVx1MGQ0MVx1MGQyOFx1MGQ0ZFx1''@;'; + put 'put ''MGQyOFx1MGQ0N1x1MGQzMFx1MGQwMiI9PT1NZT9FKzEyOkV9LG1lcmlkaWVtOmZ1bmN0aW9uKEUsTWUsVSl7cmV0dXJuIEU8ND8iXHUwZDMwXHUwZDNlXHUwZDI0XHUwZDRkXHUwZDMwXHUwZDNmIjpFPDEyPyJcdTBkMzBcdTBkM2VcdTBkMzVcdTBkM2ZcdTBkMzJcdTBkNDYiOkU8MTc/Ilx1''@;'; + put 'put ''MGQwOVx1MGQxYVx1MGQ0ZFx1MGQxYSBcdTBkMTVcdTBkMzRcdTBkM2ZcdTBkMWVcdTBkNGRcdTBkMWVcdTBkNGQiOkU8MjA/Ilx1MGQzNVx1MGQ0OFx1MGQxNVx1MGQ0MVx1MGQyOFx1MGQ0ZFx1MGQyOFx1MGQ0N1x1MGQzMFx1MGQwMiI6Ilx1MGQzMFx1MGQzZVx1MGQyNFx1MGQ0ZFx1MGQz''@;'; + put 'put ''MFx1MGQzZiJ9fSl9KEwoMTU0MzkpKX0sMzE5Nzc6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gQihNZSxVLFEsWil7c3dpdGNoKFEpe2Nhc2UicyI6cmV0dXJuIFU/Ilx1MDQ0NVx1MDQ0ZFx1MDQzNFx1MDQ0NVx1MDQ0ZFx1MDQzZCBcdTA0''@;'; + put 'put ''NDFcdTA0MzVcdTA0M2FcdTA0NDNcdTA0M2RcdTA0MzQiOiJcdTA0NDVcdTA0NGRcdTA0MzRcdTA0NDVcdTA0NGRcdTA0M2QgXHUwNDQxXHUwNDM1XHUwNDNhXHUwNDQzXHUwNDNkXHUwNDM0XHUwNDRiXHUwNDNkIjtjYXNlInNzIjpyZXR1cm4gTWUrKFU/IiBcdTA0NDFcdTA0MzVcdTA0M2Fc''@;'; + put 'put ''dTA0NDNcdTA0M2RcdTA0MzQiOiIgXHUwNDQxXHUwNDM1XHUwNDNhXHUwNDQzXHUwNDNkXHUwNDM0XHUwNDRiXHUwNDNkIik7Y2FzZSJtIjpjYXNlIm1tIjpyZXR1cm4gTWUrKFU/IiBcdTA0M2NcdTA0MzhcdTA0M2RcdTA0NDNcdTA0NDIiOiIgXHUwNDNjXHUwNDM4XHUwNDNkXHUwNDQzXHUw''@;'; + put 'put ''NDQyXHUwNDRiXHUwNDNkIik7Y2FzZSJoIjpjYXNlImhoIjpyZXR1cm4gTWUrKFU/IiBcdTA0NDZcdTA0MzBcdTA0MzMiOiIgXHUwNDQ2XHUwNDMwXHUwNDMzXHUwNDM4XHUwNDM5XHUwNDNkIik7Y2FzZSJkIjpjYXNlImRkIjpyZXR1cm4gTWUrKFU/IiBcdTA0ZTlcdTA0MzRcdTA0ZTlcdTA0''@;'; + put 'put ''NDAiOiIgXHUwNGU5XHUwNDM0XHUwNDQwXHUwNDM4XHUwNDM5XHUwNDNkIik7Y2FzZSJNIjpjYXNlIk1NIjpyZXR1cm4gTWUrKFU/IiBcdTA0NDFcdTA0MzBcdTA0NDAiOiIgXHUwNDQxXHUwNDMwXHUwNDQwXHUwNDRiXHUwNDNkIik7Y2FzZSJ5IjpjYXNlInl5IjpyZXR1cm4gTWUrKFU/IiBc''@;'; + put 'put ''dTA0MzZcdTA0MzhcdTA0M2IiOiIgXHUwNDM2XHUwNDM4XHUwNDNiXHUwNDM4XHUwNDM5XHUwNDNkIik7ZGVmYXVsdDpyZXR1cm4gTWV9fW1lLmRlZmluZUxvY2FsZSgibW4iLHttb250aHM6Ilx1MDQxZFx1MDQ0ZFx1MDQzM1x1MDQzNFx1MDRhZlx1MDQzM1x1MDQ0ZFx1MDQ0ZFx1MDQ0MCBc''@;'; + put 'put ''dTA0NDFcdTA0MzBcdTA0NDBfXHUwNDI1XHUwNDNlXHUwNDUxXHUwNDQwXHUwNDM0XHUwNDQzXHUwNDMzXHUwNDMwXHUwNDMwXHUwNDQwIFx1MDQ0MVx1MDQzMFx1MDQ0MF9cdTA0MTNcdTA0NDNcdTA0NDBcdTA0MzBcdTA0MzJcdTA0MzRcdTA0NDNcdTA0MzNcdTA0MzBcdTA0MzBcdTA0NDAg''@;'; + put 'put ''XHUwNDQxXHUwNDMwXHUwNDQwX1x1MDQxNFx1MDRlOVx1MDQ0MFx1MDRlOVx1MDQzMlx1MDQzNFx1MDRhZlx1MDQzM1x1MDQ0ZFx1MDQ0ZFx1MDQ0MCBcdTA0NDFcdTA0MzBcdTA0NDBfXHUwNDIyXHUwNDMwXHUwNDMyXHUwNDM0XHUwNDQzXHUwNDMzXHUwNDMwXHUwNDMwXHUwNDQwIFx1MDQ0''@;'; + put 'put ''MVx1MDQzMFx1MDQ0MF9cdTA0MTdcdTA0NDNcdTA0NDBcdTA0MzNcdTA0MzBcdTA0MzRcdTA0NDNcdTA0MzNcdTA0MzBcdTA0MzBcdTA0NDAgXHUwNDQxXHUwNDMwXHUwNDQwX1x1MDQxNFx1MDQzZVx1MDQzYlx1MDQzNFx1MDQ0M1x1MDQzM1x1MDQzMFx1MDQzMFx1MDQ0MCBcdTA0NDFcdTA0''@;'; + put 'put ''MzBcdTA0NDBfXHUwNDFkXHUwNDMwXHUwNDM5XHUwNDNjXHUwNDM0XHUwNDQzXHUwNDMzXHUwNDMwXHUwNDMwXHUwNDQwIFx1MDQ0MVx1MDQzMFx1MDQ0MF9cdTA0MTVcdTA0NDFcdTA0MzRcdTA0YWZcdTA0MzNcdTA0NGRcdTA0NGRcdTA0NDAgXHUwNDQxXHUwNDMwXHUwNDQwX1x1MDQxMFx1''@;'; + put 'put ''MDQ0MFx1MDQzMFx1MDQzMlx1MDQzNFx1MDQ0M1x1MDQzM1x1MDQzMFx1MDQzMFx1MDQ0MCBcdTA0NDFcdTA0MzBcdTA0NDBfXHUwNDEwXHUwNDQwXHUwNDMyXHUwNDMwXHUwNDNkIFx1MDQzZFx1MDQ0ZFx1MDQzM1x1MDQzNFx1MDRhZlx1MDQzM1x1MDQ0ZFx1MDQ0ZFx1MDQ0MCBcdTA0NDFc''@;'; + put 'put ''dTA0MzBcdTA0NDBfXHUwNDEwXHUwNDQwXHUwNDMyXHUwNDMwXHUwNDNkIFx1MDQ0NVx1MDQzZVx1MDQ1MVx1MDQ0MFx1MDQzNFx1MDQ0M1x1MDQzM1x1MDQzMFx1MDQzMFx1MDQ0MCBcdTA0NDFcdTA0MzBcdTA0NDAiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6IjEgXHUwNDQxXHUwNDMwXHUw''@;'; + put 'put ''NDQwXzIgXHUwNDQxXHUwNDMwXHUwNDQwXzMgXHUwNDQxXHUwNDMwXHUwNDQwXzQgXHUwNDQxXHUwNDMwXHUwNDQwXzUgXHUwNDQxXHUwNDMwXHUwNDQwXzYgXHUwNDQxXHUwNDMwXHUwNDQwXzcgXHUwNDQxXHUwNDMwXHUwNDQwXzggXHUwNDQxXHUwNDMwXHUwNDQwXzkgXHUwNDQxXHUwNDMw''@;'; + put 'put ''XHUwNDQwXzEwIFx1MDQ0MVx1MDQzMFx1MDQ0MF8xMSBcdTA0NDFcdTA0MzBcdTA0NDBfMTIgXHUwNDQxXHUwNDMwXHUwNDQwIi5zcGxpdCgiXyIpLG1vbnRoc1BhcnNlRXhhY3Q6ITAsd2Vla2RheXM6Ilx1MDQxZFx1MDQ0Zlx1MDQzY19cdTA0MTRcdTA0MzBcdTA0MzJcdTA0MzBcdTA0MzBf''@;'; + put 'put ''XHUwNDFjXHUwNDRmXHUwNDMzXHUwNDNjXHUwNDMwXHUwNDQwX1x1MDQxYlx1MDQ0NVx1MDQzMFx1MDQzM1x1MDQzMlx1MDQzMF9cdTA0MWZcdTA0YWZcdTA0NDBcdTA0NGRcdTA0MzJfXHUwNDExXHUwNDMwXHUwNDMwXHUwNDQxXHUwNDMwXHUwNDNkX1x1MDQxMVx1MDQ0Zlx1MDQzY1x1MDQz''@;'; + put 'put ''MVx1MDQzMCIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJcdTA0MWRcdTA0NGZcdTA0M2NfXHUwNDE0XHUwNDMwXHUwNDMyX1x1MDQxY1x1MDQ0Zlx1MDQzM19cdTA0MWJcdTA0NDVcdTA0MzBfXHUwNDFmXHUwNGFmXHUwNDQwX1x1MDQxMVx1MDQzMFx1MDQzMF9cdTA0MTFcdTA0NGZcdTA0''@;'; + put 'put ''M2MiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46Ilx1MDQxZFx1MDQ0Zl9cdTA0MTRcdTA0MzBfXHUwNDFjXHUwNDRmX1x1MDQxYlx1MDQ0NV9cdTA0MWZcdTA0YWZfXHUwNDExXHUwNDMwX1x1MDQxMVx1MDQ0ZiIuc3BsaXQoIl8iKSx3ZWVrZGF5c1BhcnNlRXhhY3Q6ITAsbG9uZ0RhdGVGb3Jt''@;'; + put 'put ''YXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoiWVlZWS1NTS1ERCIsTEw6IllZWVkgXHUwNDNlXHUwNDNkXHUwNDRiIE1NTU1cdTA0NGJcdTA0M2QgRCIsTExMOiJZWVlZIFx1MDQzZVx1MDQzZFx1MDQ0YiBNTU1NXHUwNDRiXHUwNDNkIEQgSEg6bW0iLExMTEw6ImRkZGQsIFlZWVkg''@;'; + put 'put ''XHUwNDNlXHUwNDNkXHUwNDRiIE1NTU1cdTA0NGJcdTA0M2QgRCBISDptbSJ9LG1lcmlkaWVtUGFyc2U6L1x1MDRhZVx1MDRlOHxcdTA0YWVcdTA0MjUvaSxpc1BNOmZ1bmN0aW9uKE1lKXtyZXR1cm4iXHUwNGFlXHUwNDI1Ij09PU1lfSxtZXJpZGllbTpmdW5jdGlvbihNZSxVLFEpe3JldHVy''@;'; + put 'put ''biBNZTwxMj8iXHUwNGFlXHUwNGU4IjoiXHUwNGFlXHUwNDI1In0sY2FsZW5kYXI6e3NhbWVEYXk6IltcdTA0ZThcdTA0M2RcdTA0ZTlcdTA0ZTlcdTA0MzRcdTA0ZTlcdTA0NDBdIExUIixuZXh0RGF5OiJbXHUwNDFjXHUwNDMwXHUwNDQwXHUwNDMzXHUwNDMwXHUwNDMwXHUwNDQ4XSBMVCIs''@;'; + put 'put ''bmV4dFdlZWs6IltcdTA0MThcdTA0NDBcdTA0NGRcdTA0NDVdIGRkZGQgTFQiLGxhc3REYXk6IltcdTA0ZThcdTA0NDdcdTA0MzhcdTA0MzNcdTA0MzRcdTA0ZTlcdTA0NDBdIExUIixsYXN0V2VlazoiW1x1MDRlOFx1MDQzZFx1MDQzM1x1MDRlOVx1MDQ0MFx1MDQ0MVx1MDRlOVx1MDQzZF0g''@;'; + put 'put ''ZGRkZCBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiJXMgXHUwNDM0XHUwNDMwXHUwNDQwXHUwNDMwXHUwNDMwIixwYXN0OiIlcyBcdTA0ZTlcdTA0M2NcdTA0M2RcdTA0ZTkiLHM6QixzczpCLG06QixtbTpCLGg6QixoaDpCLGQ6QixkZDpCLE06QixNTTpCLHk6Qix5''@;'; + put 'put ''eTpCfSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9IFx1MDRlOVx1MDQzNFx1MDRlOVx1MDQ0MC8sb3JkaW5hbDpmdW5jdGlvbihNZSxVKXtzd2l0Y2goVSl7Y2FzZSJkIjpjYXNlIkQiOmNhc2UiREREIjpyZXR1cm4gTWUrIiBcdTA0ZTlcdTA0MzRcdTA0ZTlcdTA0NDAiO2RlZmF1''@;'; + put 'put ''bHQ6cmV0dXJuIE1lfX19KX0oTCgxNTQzOSkpfSw2NjE4NDpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0Ijt2YXIgQj17MToiXHUwOTY3IiwyOiJcdTA5NjgiLDM6Ilx1MDk2OSIsNDoiXHUwOTZhIiw1OiJcdTA5NmIiLDY6Ilx1MDk2YyIsNzoiXHUwOTZkIiw4''@;'; + put 'put ''OiJcdTA5NmUiLDk6Ilx1MDk2ZiIsMDoiXHUwOTY2In0sRT17Ilx1MDk2NyI6IjEiLCJcdTA5NjgiOiIyIiwiXHUwOTY5IjoiMyIsIlx1MDk2YSI6IjQiLCJcdTA5NmIiOiI1IiwiXHUwOTZjIjoiNiIsIlx1MDk2ZCI6IjciLCJcdTA5NmUiOiI4IiwiXHUwOTZmIjoiOSIsIlx1MDk2NiI6IjAi''@;'; + put 'put ''fTtmdW5jdGlvbiBNZShRLFosaWUsYWUpe3ZhciBZPSIiO2lmKFopc3dpdGNoKGllKXtjYXNlInMiOlk9Ilx1MDkxNVx1MDkzZVx1MDkzOVx1MDk0MCBcdTA5MzhcdTA5NDdcdTA5MTVcdTA5MDJcdTA5MjYiO2JyZWFrO2Nhc2Uic3MiOlk9IiVkIFx1MDkzOFx1MDk0N1x1MDkxNVx1MDkwMlx1''@;'; + put 'put ''MDkyNiI7YnJlYWs7Y2FzZSJtIjpZPSJcdTA5MGZcdTA5MTUgXHUwOTJlXHUwOTNmXHUwOTI4XHUwOTNmXHUwOTFmIjticmVhaztjYXNlIm1tIjpZPSIlZCBcdTA5MmVcdTA5M2ZcdTA5MjhcdTA5M2ZcdTA5MWZcdTA5NDciO2JyZWFrO2Nhc2UiaCI6WT0iXHUwOTBmXHUwOTE1IFx1MDkyNFx1''@;'; + put 'put ''MDkzZVx1MDkzOCI7YnJlYWs7Y2FzZSJoaCI6WT0iJWQgXHUwOTI0XHUwOTNlXHUwOTM4IjticmVhaztjYXNlImQiOlk9Ilx1MDkwZlx1MDkxNSBcdTA5MjZcdTA5M2ZcdTA5MzVcdTA5MzgiO2JyZWFrO2Nhc2UiZGQiOlk9IiVkIFx1MDkyNlx1MDkzZlx1MDkzNVx1MDkzOCI7YnJlYWs7Y2Fz''@;'; + put 'put ''ZSJNIjpZPSJcdTA5MGZcdTA5MTUgXHUwOTJlXHUwOTM5XHUwOTNmXHUwOTI4XHUwOTNlIjticmVhaztjYXNlIk1NIjpZPSIlZCBcdTA5MmVcdTA5MzlcdTA5M2ZcdTA5MjhcdTA5NDciO2JyZWFrO2Nhc2UieSI6WT0iXHUwOTBmXHUwOTE1IFx1MDkzNVx1MDkzMFx1MDk0ZFx1MDkzNyI7YnJl''@;'; + put 'put ''YWs7Y2FzZSJ5eSI6WT0iJWQgXHUwOTM1XHUwOTMwXHUwOTRkXHUwOTM3XHUwOTQ3In1lbHNlIHN3aXRjaChpZSl7Y2FzZSJzIjpZPSJcdTA5MTVcdTA5M2VcdTA5MzlcdTA5NDAgXHUwOTM4XHUwOTQ3XHUwOTE1XHUwOTAyXHUwOTI2XHUwOTNlXHUwOTAyIjticmVhaztjYXNlInNzIjpZPSIl''@;'; + put 'put ''ZCBcdTA5MzhcdTA5NDdcdTA5MTVcdTA5MDJcdTA5MjZcdTA5M2VcdTA5MDIiO2JyZWFrO2Nhc2UibSI6WT0iXHUwOTBmXHUwOTE1XHUwOTNlIFx1MDkyZVx1MDkzZlx1MDkyOFx1MDkzZlx1MDkxZlx1MDkzZSI7YnJlYWs7Y2FzZSJtbSI6WT0iJWQgXHUwOTJlXHUwOTNmXHUwOTI4XHUwOTNm''@;'; + put 'put ''XHUwOTFmXHUwOTNlXHUwOTAyIjticmVhaztjYXNlImgiOlk9Ilx1MDkwZlx1MDkxNVx1MDkzZSBcdTA5MjRcdTA5M2VcdTA5MzhcdTA5M2UiO2JyZWFrO2Nhc2UiaGgiOlk9IiVkIFx1MDkyNFx1MDkzZVx1MDkzOFx1MDkzZVx1MDkwMiI7YnJlYWs7Y2FzZSJkIjpZPSJcdTA5MGZcdTA5MTVc''@;'; + put 'put ''dTA5M2UgXHUwOTI2XHUwOTNmXHUwOTM1XHUwOTM4XHUwOTNlIjticmVhaztjYXNlImRkIjpZPSIlZCBcdTA5MjZcdTA5M2ZcdTA5MzVcdTA5MzhcdTA5M2VcdTA5MDIiO2JyZWFrO2Nhc2UiTSI6WT0iXHUwOTBmXHUwOTE1XHUwOTNlIFx1MDkyZVx1MDkzOVx1MDkzZlx1MDkyOFx1MDk0ZFx1''@;'; + put 'put ''MDkyZlx1MDkzZSI7YnJlYWs7Y2FzZSJNTSI6WT0iJWQgXHUwOTJlXHUwOTM5XHUwOTNmXHUwOTI4XHUwOTRkXHUwOTJmXHUwOTNlXHUwOTAyIjticmVhaztjYXNlInkiOlk9Ilx1MDkwZlx1MDkxNVx1MDkzZSBcdTA5MzVcdTA5MzBcdTA5NGRcdTA5MzdcdTA5M2UiO2JyZWFrO2Nhc2UieXki''@;'; + put 'put ''Olk9IiVkIFx1MDkzNVx1MDkzMFx1MDk0ZFx1MDkzN1x1MDkzZVx1MDkwMiJ9cmV0dXJuIFkucmVwbGFjZSgvJWQvaSxRKX1tZS5kZWZpbmVMb2NhbGUoIm1yIix7bW9udGhzOiJcdTA5MWNcdTA5M2VcdTA5MjhcdTA5NDdcdTA5MzVcdTA5M2VcdTA5MzBcdTA5NDBfXHUwOTJiXHUwOTQ3XHUw''@;'; + put 'put ''OTJjXHUwOTRkXHUwOTMwXHUwOTQxXHUwOTM1XHUwOTNlXHUwOTMwXHUwOTQwX1x1MDkyZVx1MDkzZVx1MDkzMFx1MDk0ZFx1MDkxYV9cdTA5MGZcdTA5MmFcdTA5NGRcdTA5MzBcdTA5M2ZcdTA5MzJfXHUwOTJlXHUwOTQ3X1x1MDkxY1x1MDk0Mlx1MDkyOF9cdTA5MWNcdTA5NDFcdTA5MzJc''@;'; + put 'put ''dTA5NDhfXHUwOTExXHUwOTE3XHUwOTM4XHUwOTRkXHUwOTFmX1x1MDkzOFx1MDkyYVx1MDk0ZFx1MDkxZlx1MDk0N1x1MDkwMlx1MDkyY1x1MDkzMF9cdTA5MTFcdTA5MTVcdTA5NGRcdTA5MWZcdTA5NGJcdTA5MmNcdTA5MzBfXHUwOTI4XHUwOTRiXHUwOTM1XHUwOTRkXHUwOTM5XHUwOTQ3''@;'; + put 'put ''XHUwOTAyXHUwOTJjXHUwOTMwX1x1MDkyMVx1MDkzZlx1MDkzOFx1MDk0N1x1MDkwMlx1MDkyY1x1MDkzMCIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiXHUwOTFjXHUwOTNlXHUwOTI4XHUwOTQ3Ll9cdTA5MmJcdTA5NDdcdTA5MmNcdTA5NGRcdTA5MzBcdTA5NDEuX1x1MDkyZVx1MDkzZVx1''@;'; + put 'put ''MDkzMFx1MDk0ZFx1MDkxYS5fXHUwOTBmXHUwOTJhXHUwOTRkXHUwOTMwXHUwOTNmLl9cdTA5MmVcdTA5NDcuX1x1MDkxY1x1MDk0Mlx1MDkyOC5fXHUwOTFjXHUwOTQxXHUwOTMyXHUwOTQ4Ll9cdTA5MTFcdTA5MTcuX1x1MDkzOFx1MDkyYVx1MDk0ZFx1MDkxZlx1MDk0N1x1MDkwMi5fXHUw''@;'; + put 'put ''OTExXHUwOTE1XHUwOTRkXHUwOTFmXHUwOTRiLl9cdTA5MjhcdTA5NGJcdTA5MzVcdTA5NGRcdTA5MzlcdTA5NDdcdTA5MDIuX1x1MDkyMVx1MDkzZlx1MDkzOFx1MDk0N1x1MDkwMi4iLnNwbGl0KCJfIiksbW9udGhzUGFyc2VFeGFjdDohMCx3ZWVrZGF5czoiXHUwOTMwXHUwOTM1XHUwOTNm''@;'; + put 'put ''XHUwOTM1XHUwOTNlXHUwOTMwX1x1MDkzOFx1MDk0Ylx1MDkyZVx1MDkzNVx1MDkzZVx1MDkzMF9cdTA5MmVcdTA5MDJcdTA5MTdcdTA5MzNcdTA5MzVcdTA5M2VcdTA5MzBfXHUwOTJjXHUwOTQxXHUwOTI3XHUwOTM1XHUwOTNlXHUwOTMwX1x1MDkxN1x1MDk0MVx1MDkzMFx1MDk0Mlx1MDkz''@;'; + put 'put ''NVx1MDkzZVx1MDkzMF9cdTA5MzZcdTA5NDFcdTA5MTVcdTA5NGRcdTA5MzBcdTA5MzVcdTA5M2VcdTA5MzBfXHUwOTM2XHUwOTI4XHUwOTNmXHUwOTM1XHUwOTNlXHUwOTMwIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6Ilx1MDkzMFx1MDkzNVx1MDkzZl9cdTA5MzhcdTA5NGJcdTA5MmVf''@;'; + put 'put ''XHUwOTJlXHUwOTAyXHUwOTE3XHUwOTMzX1x1MDkyY1x1MDk0MVx1MDkyN19cdTA5MTdcdTA5NDFcdTA5MzBcdTA5NDJfXHUwOTM2XHUwOTQxXHUwOTE1XHUwOTRkXHUwOTMwX1x1MDkzNlx1MDkyOFx1MDkzZiIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiXHUwOTMwX1x1MDkzOFx1MDk0Yl9c''@;'; + put 'put ''dTA5MmVcdTA5MDJfXHUwOTJjXHUwOTQxX1x1MDkxN1x1MDk0MV9cdTA5MzZcdTA5NDFfXHUwOTM2Ii5zcGxpdCgiXyIpLGxvbmdEYXRlRm9ybWF0OntMVDoiQSBoOm1tIFx1MDkzNVx1MDkzZVx1MDkxY1x1MDkyNFx1MDkzZSIsTFRTOiJBIGg6bW06c3MgXHUwOTM1XHUwOTNlXHUwOTFjXHUw''@;'; + put 'put ''OTI0XHUwOTNlIixMOiJERC9NTS9ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVksIEEgaDptbSBcdTA5MzVcdTA5M2VcdTA5MWNcdTA5MjRcdTA5M2UiLExMTEw6ImRkZGQsIEQgTU1NTSBZWVlZLCBBIGg6bW0gXHUwOTM1XHUwOTNlXHUwOTFjXHUwOTI0XHUwOTNlIn0s''@;'; + put 'put ''Y2FsZW5kYXI6e3NhbWVEYXk6IltcdTA5MDZcdTA5MWNdIExUIixuZXh0RGF5OiJbXHUwOTA5XHUwOTI2XHUwOTRkXHUwOTJmXHUwOTNlXSBMVCIsbmV4dFdlZWs6ImRkZGQsIExUIixsYXN0RGF5OiJbXHUwOTE1XHUwOTNlXHUwOTMyXSBMVCIsbGFzdFdlZWs6IltcdTA5MmVcdTA5M2VcdTA5''@;'; + put 'put ''MTdcdTA5NDBcdTA5MzJdIGRkZGQsIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiIlc1x1MDkyZVx1MDkyN1x1MDk0ZFx1MDkyZlx1MDk0NyIscGFzdDoiJXNcdTA5MmFcdTA5NDJcdTA5MzBcdTA5NGRcdTA5MzVcdTA5NDAiLHM6TWUsc3M6TWUsbTpNZSxtbTpNZSxo''@;'; + put 'put ''Ok1lLGhoOk1lLGQ6TWUsZGQ6TWUsTTpNZSxNTTpNZSx5Ok1lLHl5Ok1lfSxwcmVwYXJzZTpmdW5jdGlvbihRKXtyZXR1cm4gUS5yZXBsYWNlKC9bXHUwOTY3XHUwOTY4XHUwOTY5XHUwOTZhXHUwOTZiXHUwOTZjXHUwOTZkXHUwOTZlXHUwOTZmXHUwOTY2XS9nLGZ1bmN0aW9uKFope3JldHVy''@;'; + put 'put ''biBFW1pdfSl9LHBvc3Rmb3JtYXQ6ZnVuY3Rpb24oUSl7cmV0dXJuIFEucmVwbGFjZSgvXGQvZyxmdW5jdGlvbihaKXtyZXR1cm4gQltaXX0pfSxtZXJpZGllbVBhcnNlOi9cdTA5MmFcdTA5MzlcdTA5M2VcdTA5MWZcdTA5NDd8XHUwOTM4XHUwOTE1XHUwOTNlXHUwOTMzXHUwOTQwfFx1MDky''@;'; + put 'put ''Nlx1MDk0MVx1MDkyYVx1MDkzZVx1MDkzMFx1MDk0MHxcdTA5MzhcdTA5M2VcdTA5MmZcdTA5MDJcdTA5MTVcdTA5M2VcdTA5MzNcdTA5NDB8XHUwOTMwXHUwOTNlXHUwOTI0XHUwOTRkXHUwOTMwXHUwOTQwLyxtZXJpZGllbUhvdXI6ZnVuY3Rpb24oUSxaKXtyZXR1cm4gMTI9PT1RJiYoUT0w''@;'; + put 'put ''KSwiXHUwOTJhXHUwOTM5XHUwOTNlXHUwOTFmXHUwOTQ3Ij09PVp8fCJcdTA5MzhcdTA5MTVcdTA5M2VcdTA5MzNcdTA5NDAiPT09Wj9ROiJcdTA5MjZcdTA5NDFcdTA5MmFcdTA5M2VcdTA5MzBcdTA5NDAiPT09Wnx8Ilx1MDkzOFx1MDkzZVx1MDkyZlx1MDkwMlx1MDkxNVx1MDkzZVx1MDkz''@;'; + put 'put ''M1x1MDk0MCI9PT1afHwiXHUwOTMwXHUwOTNlXHUwOTI0XHUwOTRkXHUwOTMwXHUwOTQwIj09PVo/UT49MTI/UTpRKzEyOnZvaWQgMH0sbWVyaWRpZW06ZnVuY3Rpb24oUSxaLGllKXtyZXR1cm4gUT49MCYmUTw2PyJcdTA5MmFcdTA5MzlcdTA5M2VcdTA5MWZcdTA5NDciOlE8MTI/Ilx1MDkz''@;'; + put 'put ''OFx1MDkxNVx1MDkzZVx1MDkzM1x1MDk0MCI6UTwxNz8iXHUwOTI2XHUwOTQxXHUwOTJhXHUwOTNlXHUwOTMwXHUwOTQwIjpRPDIwPyJcdTA5MzhcdTA5M2VcdTA5MmZcdTA5MDJcdTA5MTVcdTA5M2VcdTA5MzNcdTA5NDAiOiJcdTA5MzBcdTA5M2VcdTA5MjRcdTA5NGRcdTA5MzBcdTA5NDAi''@;'; + put 'put ''fSx3ZWVrOntkb3c6MCxkb3k6Nn19KX0oTCgxNTQzOSkpfSw2NDUyNDpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0IjttZS5kZWZpbmVMb2NhbGUoIm1zLW15Iix7bW9udGhzOiJKYW51YXJpX0ZlYnJ1YXJpX01hY19BcHJpbF9NZWlfSnVuX0p1bGFpX09nb3Nf''@;'; + put 'put ''U2VwdGVtYmVyX09rdG9iZXJfTm92ZW1iZXJfRGlzZW1iZXIiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6Ikphbl9GZWJfTWFjX0Fwcl9NZWlfSnVuX0p1bF9PZ3NfU2VwX09rdF9Ob3ZfRGlzIi5zcGxpdCgiXyIpLHdlZWtkYXlzOiJBaGFkX0lzbmluX1NlbGFzYV9SYWJ1X0toYW1pc19KdW1h''@;'; + put 'put ''YXRfU2FidHUiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiQWhkX0lzbl9TZWxfUmFiX0toYV9KdW1fU2FiIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJBaF9Jc19TbF9SYl9LbV9KbV9TYiIuc3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhILm1tIixMVFM6IkhILm1tLnNzIixM''@;'; + put 'put ''OiJERC9NTS9ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVkgW3B1a3VsXSBISC5tbSIsTExMTDoiZGRkZCwgRCBNTU1NIFlZWVkgW3B1a3VsXSBISC5tbSJ9LG1lcmlkaWVtUGFyc2U6L3BhZ2l8dGVuZ2FoYXJpfHBldGFuZ3xtYWxhbS8sbWVyaWRpZW1Ib3VyOmZ1bmN0''@;'; + put 'put ''aW9uKEUsTWUpe3JldHVybiAxMj09PUUmJihFPTApLCJwYWdpIj09PU1lP0U6InRlbmdhaGFyaSI9PT1NZT9FPj0xMT9FOkUrMTI6InBldGFuZyI9PT1NZXx8Im1hbGFtIj09PU1lP0UrMTI6dm9pZCAwfSxtZXJpZGllbTpmdW5jdGlvbihFLE1lLFUpe3JldHVybiBFPDExPyJwYWdpIjpFPDE1''@;'; + put 'put ''PyJ0ZW5nYWhhcmkiOkU8MTk/InBldGFuZyI6Im1hbGFtIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltIYXJpIGluaSBwdWt1bF0gTFQiLG5leHREYXk6IltFc29rIHB1a3VsXSBMVCIsbmV4dFdlZWs6ImRkZGQgW3B1a3VsXSBMVCIsbGFzdERheToiW0tlbG1hcmluIHB1a3VsXSBMVCIsbGFzdFdl''@;'; + put 'put ''ZWs6ImRkZGQgW2xlcGFzIHB1a3VsXSBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiZGFsYW0gJXMiLHBhc3Q6IiVzIHlhbmcgbGVwYXMiLHM6ImJlYmVyYXBhIHNhYXQiLHNzOiIlZCBzYWF0IixtOiJzZW1pbml0IixtbToiJWQgbWluaXQiLGg6InNlamFtIixoaDoi''@;'; + put 'put ''JWQgamFtIixkOiJzZWhhcmkiLGRkOiIlZCBoYXJpIixNOiJzZWJ1bGFuIixNTToiJWQgYnVsYW4iLHk6InNldGFodW4iLHl5OiIlZCB0YWh1biJ9LHdlZWs6e2RvdzoxLGRveTo3fX0pfShMKDE1NDM5KSl9LDcwNDg1OmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlvbihtZSl7InVzZSBzdHJp''@;'; + put 'put ''Y3QiO21lLmRlZmluZUxvY2FsZSgibXMiLHttb250aHM6IkphbnVhcmlfRmVicnVhcmlfTWFjX0FwcmlsX01laV9KdW5fSnVsYWlfT2dvc19TZXB0ZW1iZXJfT2t0b2Jlcl9Ob3ZlbWJlcl9EaXNlbWJlciIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiSmFuX0ZlYl9NYWNfQXByX01laV9KdW5f''@;'; + put 'put ''SnVsX09nc19TZXBfT2t0X05vdl9EaXMiLnNwbGl0KCJfIiksd2Vla2RheXM6IkFoYWRfSXNuaW5fU2VsYXNhX1JhYnVfS2hhbWlzX0p1bWFhdF9TYWJ0dSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJBaGRfSXNuX1NlbF9SYWJfS2hhX0p1bV9TYWIiLnNwbGl0KCJfIiksd2Vla2RheXNN''@;'; + put 'put ''aW46IkFoX0lzX1NsX1JiX0ttX0ptX1NiIi5zcGxpdCgiXyIpLGxvbmdEYXRlRm9ybWF0OntMVDoiSEgubW0iLExUUzoiSEgubW0uc3MiLEw6IkREL01NL1lZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0gWVlZWSBbcHVrdWxdIEhILm1tIixMTExMOiJkZGRkLCBEIE1NTU0gWVlZ''@;'; + put 'put ''WSBbcHVrdWxdIEhILm1tIn0sbWVyaWRpZW1QYXJzZTovcGFnaXx0ZW5nYWhhcml8cGV0YW5nfG1hbGFtLyxtZXJpZGllbUhvdXI6ZnVuY3Rpb24oRSxNZSl7cmV0dXJuIDEyPT09RSYmKEU9MCksInBhZ2kiPT09TWU/RToidGVuZ2FoYXJpIj09PU1lP0U+PTExP0U6RSsxMjoicGV0YW5nIj09''@;'; + put 'put ''PU1lfHwibWFsYW0iPT09TWU/RSsxMjp2b2lkIDB9LG1lcmlkaWVtOmZ1bmN0aW9uKEUsTWUsVSl7cmV0dXJuIEU8MTE/InBhZ2kiOkU8MTU/InRlbmdhaGFyaSI6RTwxOT8icGV0YW5nIjoibWFsYW0ifSxjYWxlbmRhcjp7c2FtZURheToiW0hhcmkgaW5pIHB1a3VsXSBMVCIsbmV4dERheToi''@;'; + put 'put ''W0Vzb2sgcHVrdWxdIExUIixuZXh0V2VlazoiZGRkZCBbcHVrdWxdIExUIixsYXN0RGF5OiJbS2VsbWFyaW4gcHVrdWxdIExUIixsYXN0V2VlazoiZGRkZCBbbGVwYXMgcHVrdWxdIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJkYWxhbSAlcyIscGFzdDoiJXMgeWFu''@;'; + put 'put ''ZyBsZXBhcyIsczoiYmViZXJhcGEgc2FhdCIsc3M6IiVkIHNhYXQiLG06InNlbWluaXQiLG1tOiIlZCBtaW5pdCIsaDoic2VqYW0iLGhoOiIlZCBqYW0iLGQ6InNlaGFyaSIsZGQ6IiVkIGhhcmkiLE06InNlYnVsYW4iLE1NOiIlZCBidWxhbiIseToic2V0YWh1biIseXk6IiVkIHRhaHVuIn0s''@;'; + put 'put ''d2Vlazp7ZG93OjEsZG95Ojd9fSl9KEwoMTU0MzkpKX0sMzY2ODE6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7bWUuZGVmaW5lTG9jYWxlKCJtdCIse21vbnRoczoiSmFubmFyX0ZyYXJfTWFyenVfQXByaWxfTWVqanVfXHUwMTIwdW5qdV9MdWxqdV9Bd3dp''@;'; + put 'put ''c3N1X1NldHRlbWJydV9PdHR1YnJ1X05vdmVtYnJ1X0RpXHUwMTBiZW1icnUiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6Ikphbl9GcmFfTWFyX0Fwcl9NZWpfXHUwMTIwdW5fTHVsX0F3d19TZXRfT3R0X05vdl9EaVx1MDEwYiIuc3BsaXQoIl8iKSx3ZWVrZGF5czoiSWwtXHUwMTI2YWRkX0l0''@;'; + put 'put ''LVRuZWpuX0l0LVRsaWV0YV9MLUVyYmdcdTAxMjdhX0lsLVx1MDEyNmFtaXNfSWwtXHUwMTIwaW1nXHUwMTI3YV9Jcy1TaWJ0Ii5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6Ilx1MDEyNmFkX1RuZV9UbGlfRXJiX1x1MDEyNmFtX1x1MDEyMGltX1NpYiIuc3BsaXQoIl8iKSx3ZWVrZGF5c01p''@;'; + put 'put ''bjoiXHUwMTI2YV9Ubl9UbF9Fcl9cdTAxMjZhX1x1MDEyMGlfU2kiLnNwbGl0KCJfIiksbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoiREQvTU0vWVlZWSIsTEw6IkQgTU1NTSBZWVlZIixMTEw6IkQgTU1NTSBZWVlZIEhIOm1tIixMTExMOiJkZGRkLCBEIE1N''@;'; + put 'put ''TU0gWVlZWSBISDptbSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbSWxsdW0gZmlsLV1MVCIsbmV4dERheToiW0dcdTAxMjdhZGEgZmlsLV1MVCIsbmV4dFdlZWs6ImRkZGQgW2ZpbC1dTFQiLGxhc3REYXk6IltJbC1iaWVyYVx1MDEyNyBmaWwtXUxUIixsYXN0V2VlazoiZGRkZCBbbGkgZ1x1MDEy''@;'; + put 'put ''N2FkZGFdIFtmaWwtXUxUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJmXHUyMDE5ICVzIixwYXN0OiIlcyBpbHUiLHM6ImZ0aXQgc2Vrb25kaSIsc3M6IiVkIHNla29uZGkiLG06Im1pbnV0YSIsbW06IiVkIG1pbnV0aSIsaDoic2llZ1x1MDEyN2EiLGhoOiIlZCBzaWVn''@;'; + put 'put ''XHUwMTI3YXQiLGQ6Ilx1MDEyMXVybmF0YSIsZGQ6IiVkIFx1MDEyMXJhbmV0IixNOiJ4YWhhciIsTU06IiVkIHhodXIiLHk6InNlbmEiLHl5OiIlZCBzbmkifSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9XHhiYS8sb3JkaW5hbDoiJWRceGJhIix3ZWVrOntkb3c6MSxkb3k6NH19''@;'; + put 'put ''KX0oTCgxNTQzOSkpfSw1MjAyNDpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0Ijt2YXIgQj17MToiXHUxMDQxIiwyOiJcdTEwNDIiLDM6Ilx1MTA0MyIsNDoiXHUxMDQ0Iiw1OiJcdTEwNDUiLDY6Ilx1MTA0NiIsNzoiXHUxMDQ3Iiw4OiJcdTEwNDgiLDk6Ilx1''@;'; + put 'put ''MTA0OSIsMDoiXHUxMDQwIn0sRT17Ilx1MTA0MSI6IjEiLCJcdTEwNDIiOiIyIiwiXHUxMDQzIjoiMyIsIlx1MTA0NCI6IjQiLCJcdTEwNDUiOiI1IiwiXHUxMDQ2IjoiNiIsIlx1MTA0NyI6IjciLCJcdTEwNDgiOiI4IiwiXHUxMDQ5IjoiOSIsIlx1MTA0MCI6IjAifTttZS5kZWZpbmVMb2Nh''@;'; + put 'put ''bGUoIm15Iix7bW9udGhzOiJcdTEwMDdcdTEwMTRcdTEwM2FcdTEwMTRcdTEwMWRcdTEwMmJcdTEwMWJcdTEwMmVfXHUxMDE2XHUxMDMxXHUxMDE2XHUxMDMxXHUxMDJjXHUxMDNhXHUxMDFkXHUxMDJiXHUxMDFiXHUxMDJlX1x1MTAxOVx1MTAxMFx1MTAzYV9cdTEwMjdcdTEwMTVcdTEwM2Nc''@;'; + put 'put ''dTEwMmVfXHUxMDE5XHUxMDMxX1x1MTAwN1x1MTAzZFx1MTAxNFx1MTAzYV9cdTEwMDdcdTEwMzBcdTEwMWNcdTEwMmRcdTEwMmZcdTEwMDRcdTEwM2FfXHUxMDFlXHUxMDNjXHUxMDAyXHUxMDJmXHUxMDEwXHUxMDNhX1x1MTAwNVx1MTAwMFx1MTAzYVx1MTAxMFx1MTAwNFx1MTAzYVx1MTAx''@;'; + put 'put ''OFx1MTAyY19cdTEwMjFcdTEwMzFcdTEwMmNcdTEwMDBcdTEwM2FcdTEwMTBcdTEwMmRcdTEwMmZcdTEwMThcdTEwMmNfXHUxMDE0XHUxMDJkXHUxMDJmXHUxMDFkXHUxMDA0XHUxMDNhXHUxMDE4XHUxMDJjX1x1MTAxMlx1MTAyZVx1MTAwN1x1MTAwNFx1MTAzYVx1MTAxOFx1MTAyYyIuc3Bs''@;'; + put 'put ''aXQoIl8iKSxtb250aHNTaG9ydDoiXHUxMDA3XHUxMDE0XHUxMDNhX1x1MTAxNlx1MTAzMV9cdTEwMTlcdTEwMTBcdTEwM2FfXHUxMDE1XHUxMDNjXHUxMDJlX1x1MTAxOVx1MTAzMV9cdTEwMDdcdTEwM2RcdTEwMTRcdTEwM2FfXHUxMDFjXHUxMDJkXHUxMDJmXHUxMDA0XHUxMDNhX1x1MTAx''@;'; + put 'put ''ZVx1MTAzY19cdTEwMDVcdTEwMDBcdTEwM2FfXHUxMDIxXHUxMDMxXHUxMDJjXHUxMDAwXHUxMDNhX1x1MTAxNFx1MTAyZFx1MTAyZl9cdTEwMTJcdTEwMmUiLnNwbGl0KCJfIiksd2Vla2RheXM6Ilx1MTAxMFx1MTAxNFx1MTAwNFx1MTAzYVx1MTAzOVx1MTAwMlx1MTAxNFx1MTAzZFx1MTAz''@;'; + put 'put ''MV9cdTEwMTBcdTEwMTRcdTEwMDRcdTEwM2FcdTEwMzlcdTEwMWNcdTEwMmNfXHUxMDIxXHUxMDA0XHUxMDNhXHUxMDM5XHUxMDAyXHUxMDJiX1x1MTAxN1x1MTAyZlx1MTAxMlx1MTAzOVx1MTAxM1x1MTAxZlx1MTAzMFx1MTAzOF9cdTEwMDBcdTEwM2NcdTEwMmNcdTEwMWVcdTEwMTVcdTEw''@;'; + put 'put ''MTBcdTEwMzFcdTEwMzhfXHUxMDFlXHUxMDMxXHUxMDJjXHUxMDAwXHUxMDNjXHUxMDJjX1x1MTAwNVx1MTAxNFx1MTAzMSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJcdTEwMTRcdTEwM2RcdTEwMzFfXHUxMDFjXHUxMDJjX1x1MTAwMlx1MTAyYl9cdTEwMWZcdTEwMzBcdTEwMzhfXHUx''@;'; + put 'put ''MDAwXHUxMDNjXHUxMDJjX1x1MTAxZVx1MTAzMVx1MTAyY19cdTEwMTRcdTEwMzEiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46Ilx1MTAxNFx1MTAzZFx1MTAzMV9cdTEwMWNcdTEwMmNfXHUxMDAyXHUxMDJiX1x1MTAxZlx1MTAzMFx1MTAzOF9cdTEwMDBcdTEwM2NcdTEwMmNfXHUxMDFlXHUx''@;'; + put 'put ''MDMxXHUxMDJjX1x1MTAxNFx1MTAzMSIuc3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJERC9NTS9ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVkgSEg6bW0iLExMTEw6ImRkZGQgRCBNTU1NIFlZWVkgSEg6bW0ifSxj''@;'; + put 'put ''YWxlbmRhcjp7c2FtZURheToiW1x1MTAxYVx1MTAxNFx1MTAzMS5dIExUIFtcdTEwMTlcdTEwM2VcdTEwMmNdIixuZXh0RGF5OiJbXHUxMDE5XHUxMDE0XHUxMDAwXHUxMDNhXHUxMDE2XHUxMDNjXHUxMDE0XHUxMDNhXSBMVCBbXHUxMDE5XHUxMDNlXHUxMDJjXSIsbmV4dFdlZWs6ImRkZGQg''@;'; + put 'put ''TFQgW1x1MTAxOVx1MTAzZVx1MTAyY10iLGxhc3REYXk6IltcdTEwMTlcdTEwMTRcdTEwMzEuXHUxMDAwXSBMVCBbXHUxMDE5XHUxMDNlXHUxMDJjXSIsbGFzdFdlZWs6IltcdTEwMTVcdTEwM2NcdTEwMmVcdTEwMzhcdTEwMDFcdTEwMzJcdTEwMzdcdTEwMWVcdTEwMzFcdTEwMmNdIGRkZGQg''@;'; + put 'put ''TFQgW1x1MTAxOVx1MTAzZVx1MTAyY10iLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6Ilx1MTAxY1x1MTAyY1x1MTAxOVx1MTAwYVx1MTAzYVx1MTAzNyAlcyBcdTEwMTlcdTEwM2VcdTEwMmMiLHBhc3Q6Ilx1MTAxY1x1MTAzZFx1MTAxNFx1MTAzYVx1MTAwMVx1MTAzMlx1''@;'; + put 'put ''MTAzN1x1MTAxZVx1MTAzMVx1MTAyYyAlcyBcdTEwMDAiLHM6Ilx1MTAwNVx1MTAwMFx1MTAzOVx1MTAwMFx1MTAxNFx1MTAzYS5cdTEwMjFcdTEwMTRcdTEwMGFcdTEwM2FcdTEwMzhcdTEwMDRcdTEwMWFcdTEwM2EiLHNzOiIlZCBcdTEwMDVcdTEwMDBcdTEwMzlcdTEwMDBcdTEwMTRcdTEw''@;'; + put 'put ''MzdcdTEwM2EiLG06Ilx1MTAxMFx1MTAwNVx1MTAzYVx1MTAxOVx1MTAyZFx1MTAxNFx1MTAwNVx1MTAzYSIsbW06IiVkIFx1MTAxOVx1MTAyZFx1MTAxNFx1MTAwNVx1MTAzYSIsaDoiXHUxMDEwXHUxMDA1XHUxMDNhXHUxMDE0XHUxMDJjXHUxMDFiXHUxMDJlIixoaDoiJWQgXHUxMDE0XHUx''@;'; + put 'put ''MDJjXHUxMDFiXHUxMDJlIixkOiJcdTEwMTBcdTEwMDVcdTEwM2FcdTEwMWJcdTEwMDBcdTEwM2EiLGRkOiIlZCBcdTEwMWJcdTEwMDBcdTEwM2EiLE06Ilx1MTAxMFx1MTAwNVx1MTAzYVx1MTAxYyIsTU06IiVkIFx1MTAxYyIseToiXHUxMDEwXHUxMDA1XHUxMDNhXHUxMDE0XHUxMDNlXHUx''@;'; + put 'put ''MDA1XHUxMDNhIix5eToiJWQgXHUxMDE0XHUxMDNlXHUxMDA1XHUxMDNhIn0scHJlcGFyc2U6ZnVuY3Rpb24oVSl7cmV0dXJuIFUucmVwbGFjZSgvW1x1MTA0MVx1MTA0Mlx1MTA0M1x1MTA0NFx1MTA0NVx1MTA0Nlx1MTA0N1x1MTA0OFx1MTA0OVx1MTA0MF0vZyxmdW5jdGlvbihRKXtyZXR1''@;'; + put 'put ''cm4gRVtRXX0pfSxwb3N0Zm9ybWF0OmZ1bmN0aW9uKFUpe3JldHVybiBVLnJlcGxhY2UoL1xkL2csZnVuY3Rpb24oUSl7cmV0dXJuIEJbUV19KX0sd2Vlazp7ZG93OjEsZG95OjR9fSl9KEwoMTU0MzkpKX0sNDI2ODg6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmlj''@;'; + put 'put ''dCI7bWUuZGVmaW5lTG9jYWxlKCJuYiIse21vbnRoczoiamFudWFyX2ZlYnJ1YXJfbWFyc19hcHJpbF9tYWlfanVuaV9qdWxpX2F1Z3VzdF9zZXB0ZW1iZXJfb2t0b2Jlcl9ub3ZlbWJlcl9kZXNlbWJlciIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiamFuLl9mZWIuX21hcnNfYXByLl9tYWlf''@;'; + put 'put ''anVuaV9qdWxpX2F1Zy5fc2VwLl9va3QuX25vdi5fZGVzLiIuc3BsaXQoIl8iKSxtb250aHNQYXJzZUV4YWN0OiEwLHdlZWtkYXlzOiJzXHhmOG5kYWdfbWFuZGFnX3RpcnNkYWdfb25zZGFnX3RvcnNkYWdfZnJlZGFnX2xceGY4cmRhZyIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJzXHhm''@;'; + put 'put ''OC5fbWEuX3RpLl9vbi5fdG8uX2ZyLl9sXHhmOC4iLnNwbGl0KCJfIiksd2Vla2RheXNNaW46InNceGY4X21hX3RpX29uX3RvX2ZyX2xceGY4Ii5zcGxpdCgiXyIpLHdlZWtkYXlzUGFyc2VFeGFjdDohMCxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJERC5N''@;'; + put 'put ''TS5ZWVlZIixMTDoiRC4gTU1NTSBZWVlZIixMTEw6IkQuIE1NTU0gWVlZWSBba2wuXSBISDptbSIsTExMTDoiZGRkZCBELiBNTU1NIFlZWVkgW2tsLl0gSEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW2kgZGFnIGtsLl0gTFQiLG5leHREYXk6IltpIG1vcmdlbiBrbC5dIExUIixuZXh0V2Vl''@;'; + put 'put ''azoiZGRkZCBba2wuXSBMVCIsbGFzdERheToiW2kgZ1x4ZTVyIGtsLl0gTFQiLGxhc3RXZWVrOiJbZm9ycmlnZV0gZGRkZCBba2wuXSBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToib20gJXMiLHBhc3Q6IiVzIHNpZGVuIixzOiJub2VuIHNla3VuZGVyIixzczoiJWQg''@;'; + put 'put ''c2VrdW5kZXIiLG06ImV0dCBtaW51dHQiLG1tOiIlZCBtaW51dHRlciIsaDoiZW4gdGltZSIsaGg6IiVkIHRpbWVyIixkOiJlbiBkYWciLGRkOiIlZCBkYWdlciIsdzoiZW4gdWtlIix3dzoiJWQgdWtlciIsTToiZW4gbVx4ZTVuZWQiLE1NOiIlZCBtXHhlNW5lZGVyIix5OiJldHQgXHhlNXIi''@;'; + put 'put ''LHl5OiIlZCBceGU1ciJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn1cLi8sb3JkaW5hbDoiJWQuIix3ZWVrOntkb3c6MSxkb3k6NH19KX0oTCgxNTQzOSkpfSw2ODkxNDpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0Ijt2YXIgQj17MToiXHUwOTY3''@;'; + put 'put ''IiwyOiJcdTA5NjgiLDM6Ilx1MDk2OSIsNDoiXHUwOTZhIiw1OiJcdTA5NmIiLDY6Ilx1MDk2YyIsNzoiXHUwOTZkIiw4OiJcdTA5NmUiLDk6Ilx1MDk2ZiIsMDoiXHUwOTY2In0sRT17Ilx1MDk2NyI6IjEiLCJcdTA5NjgiOiIyIiwiXHUwOTY5IjoiMyIsIlx1MDk2YSI6IjQiLCJcdTA5NmIi''@;'; + put 'put ''OiI1IiwiXHUwOTZjIjoiNiIsIlx1MDk2ZCI6IjciLCJcdTA5NmUiOiI4IiwiXHUwOTZmIjoiOSIsIlx1MDk2NiI6IjAifTttZS5kZWZpbmVMb2NhbGUoIm5lIix7bW9udGhzOiJcdTA5MWNcdTA5MjhcdTA5MzVcdTA5MzBcdTA5NDBfXHUwOTJiXHUwOTQ3XHUwOTJjXHUwOTRkXHUwOTMwXHUw''@;'; + put 'put ''OTQxXHUwOTM1XHUwOTMwXHUwOTQwX1x1MDkyZVx1MDkzZVx1MDkzMFx1MDk0ZFx1MDkxYV9cdTA5MDVcdTA5MmFcdTA5NGRcdTA5MzBcdTA5M2ZcdTA5MzJfXHUwOTJlXHUwOTA4X1x1MDkxY1x1MDk0MVx1MDkyOF9cdTA5MWNcdTA5NDFcdTA5MzJcdTA5M2VcdTA5MDhfXHUwOTA1XHUwOTE3''@;'; + put 'put ''XHUwOTM3XHUwOTRkXHUwOTFmX1x1MDkzOFx1MDk0N1x1MDkyYVx1MDk0ZFx1MDkxZlx1MDk0N1x1MDkyZVx1MDk0ZFx1MDkyY1x1MDkzMF9cdTA5MDVcdTA5MTVcdTA5NGRcdTA5MWZcdTA5NGJcdTA5MmNcdTA5MzBfXHUwOTI4XHUwOTRiXHUwOTJkXHUwOTQ3XHUwOTJlXHUwOTRkXHUwOTJj''@;'; + put 'put ''XHUwOTMwX1x1MDkyMVx1MDkzZlx1MDkzOFx1MDk0N1x1MDkyZVx1MDk0ZFx1MDkyY1x1MDkzMCIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiXHUwOTFjXHUwOTI4Ll9cdTA5MmJcdTA5NDdcdTA5MmNcdTA5NGRcdTA5MzBcdTA5NDEuX1x1MDkyZVx1MDkzZVx1MDkzMFx1MDk0ZFx1MDkxYV9c''@;'; + put 'put ''dTA5MDVcdTA5MmFcdTA5NGRcdTA5MzBcdTA5M2YuX1x1MDkyZVx1MDkwOF9cdTA5MWNcdTA5NDFcdTA5MjhfXHUwOTFjXHUwOTQxXHUwOTMyXHUwOTNlXHUwOTA4Ll9cdTA5MDVcdTA5MTcuX1x1MDkzOFx1MDk0N1x1MDkyYVx1MDk0ZFx1MDkxZi5fXHUwOTA1XHUwOTE1XHUwOTRkXHUwOTFm''@;'; + put 'put ''XHUwOTRiLl9cdTA5MjhcdTA5NGJcdTA5MmRcdTA5NDcuX1x1MDkyMVx1MDkzZlx1MDkzOFx1MDk0Ny4iLnNwbGl0KCJfIiksbW9udGhzUGFyc2VFeGFjdDohMCx3ZWVrZGF5czoiXHUwOTA2XHUwOTA3XHUwOTI0XHUwOTJjXHUwOTNlXHUwOTMwX1x1MDkzOFx1MDk0Ylx1MDkyZVx1MDkyY1x1''@;'; + put 'put ''MDkzZVx1MDkzMF9cdTA5MmVcdTA5MTlcdTA5NGRcdTA5MTdcdTA5MzJcdTA5MmNcdTA5M2VcdTA5MzBfXHUwOTJjXHUwOTQxXHUwOTI3XHUwOTJjXHUwOTNlXHUwOTMwX1x1MDkyY1x1MDkzZlx1MDkzOVx1MDkzZlx1MDkyY1x1MDkzZVx1MDkzMF9cdTA5MzZcdTA5NDFcdTA5MTVcdTA5NGRc''@;'; + put 'put ''dTA5MzBcdTA5MmNcdTA5M2VcdTA5MzBfXHUwOTM2XHUwOTI4XHUwOTNmXHUwOTJjXHUwOTNlXHUwOTMwIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6Ilx1MDkwNlx1MDkwN1x1MDkyNC5fXHUwOTM4XHUwOTRiXHUwOTJlLl9cdTA5MmVcdTA5MTlcdTA5NGRcdTA5MTdcdTA5MzIuX1x1MDky''@;'; + put 'put ''Y1x1MDk0MVx1MDkyNy5fXHUwOTJjXHUwOTNmXHUwOTM5XHUwOTNmLl9cdTA5MzZcdTA5NDFcdTA5MTVcdTA5NGRcdTA5MzAuX1x1MDkzNlx1MDkyOFx1MDkzZi4iLnNwbGl0KCJfIiksd2Vla2RheXNNaW46Ilx1MDkwNi5fXHUwOTM4XHUwOTRiLl9cdTA5MmVcdTA5MDIuX1x1MDkyY1x1MDk0''@;'; + put 'put ''MS5fXHUwOTJjXHUwOTNmLl9cdTA5MzZcdTA5NDEuX1x1MDkzNi4iLnNwbGl0KCJfIiksd2Vla2RheXNQYXJzZUV4YWN0OiEwLGxvbmdEYXRlRm9ybWF0OntMVDoiQVx1MDkxNVx1MDk0YiBoOm1tIFx1MDkyY1x1MDkxY1x1MDk0NyIsTFRTOiJBXHUwOTE1XHUwOTRiIGg6bW06c3MgXHUwOTJj''@;'; + put 'put ''XHUwOTFjXHUwOTQ3IixMOiJERC9NTS9ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVksIEFcdTA5MTVcdTA5NGIgaDptbSBcdTA5MmNcdTA5MWNcdTA5NDciLExMTEw6ImRkZGQsIEQgTU1NTSBZWVlZLCBBXHUwOTE1XHUwOTRiIGg6bW0gXHUwOTJjXHUwOTFjXHUwOTQ3''@;'; + put 'put ''In0scHJlcGFyc2U6ZnVuY3Rpb24oVSl7cmV0dXJuIFUucmVwbGFjZSgvW1x1MDk2N1x1MDk2OFx1MDk2OVx1MDk2YVx1MDk2Ylx1MDk2Y1x1MDk2ZFx1MDk2ZVx1MDk2Zlx1MDk2Nl0vZyxmdW5jdGlvbihRKXtyZXR1cm4gRVtRXX0pfSxwb3N0Zm9ybWF0OmZ1bmN0aW9uKFUpe3JldHVybiBV''@;'; + put 'put ''LnJlcGxhY2UoL1xkL2csZnVuY3Rpb24oUSl7cmV0dXJuIEJbUV19KX0sbWVyaWRpZW1QYXJzZTovXHUwOTMwXHUwOTNlXHUwOTI0XHUwOTNmfFx1MDkyY1x1MDkzZlx1MDkzOVx1MDkzZVx1MDkyOHxcdTA5MjZcdTA5M2ZcdTA5MDlcdTA5MDFcdTA5MzhcdTA5NGJ8XHUwOTM4XHUwOTNlXHUw''@;'; + put 'put ''OTAxXHUwOTFkLyxtZXJpZGllbUhvdXI6ZnVuY3Rpb24oVSxRKXtyZXR1cm4gMTI9PT1VJiYoVT0wKSwiXHUwOTMwXHUwOTNlXHUwOTI0XHUwOTNmIj09PVE/VTw0P1U6VSsxMjoiXHUwOTJjXHUwOTNmXHUwOTM5XHUwOTNlXHUwOTI4Ij09PVE/VToiXHUwOTI2XHUwOTNmXHUwOTA5XHUwOTAx''@;'; + put 'put ''XHUwOTM4XHUwOTRiIj09PVE/VT49MTA/VTpVKzEyOiJcdTA5MzhcdTA5M2VcdTA5MDFcdTA5MWQiPT09UT9VKzEyOnZvaWQgMH0sbWVyaWRpZW06ZnVuY3Rpb24oVSxRLFope3JldHVybiBVPDM/Ilx1MDkzMFx1MDkzZVx1MDkyNFx1MDkzZiI6VTwxMj8iXHUwOTJjXHUwOTNmXHUwOTM5XHUw''@;'; + put 'put ''OTNlXHUwOTI4IjpVPDE2PyJcdTA5MjZcdTA5M2ZcdTA5MDlcdTA5MDFcdTA5MzhcdTA5NGIiOlU8MjA/Ilx1MDkzOFx1MDkzZVx1MDkwMVx1MDkxZCI6Ilx1MDkzMFx1MDkzZVx1MDkyNFx1MDkzZiJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbXHUwOTA2XHUwOTFjXSBMVCIsbmV4dERheToiW1x1''@;'; + put 'put ''MDkyZFx1MDk0Ylx1MDkzMlx1MDkzZl0gTFQiLG5leHRXZWVrOiJbXHUwOTA2XHUwOTA5XHUwOTAxXHUwOTI2XHUwOTRiXSBkZGRkWyxdIExUIixsYXN0RGF5OiJbXHUwOTM5XHUwOTNmXHUwOTFjXHUwOTRiXSBMVCIsbGFzdFdlZWs6IltcdTA5MTdcdTA5MGZcdTA5MTVcdTA5NGJdIGRkZGRb''@;'; + put 'put ''LF0gTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6IiVzXHUwOTJlXHUwOTNlIixwYXN0OiIlcyBcdTA5MDVcdTA5MTdcdTA5M2VcdTA5MjFcdTA5M2YiLHM6Ilx1MDkxNVx1MDk0N1x1MDkzOVx1MDk0MCBcdTA5MTVcdTA5NGRcdTA5MzdcdTA5MjMiLHNzOiIlZCBcdTA5''@;'; + put 'put ''MzhcdTA5NDdcdTA5MTVcdTA5NDdcdTA5MjNcdTA5NGRcdTA5MjEiLG06Ilx1MDkwZlx1MDkxNSBcdTA5MmVcdTA5M2ZcdTA5MjhcdTA5NDdcdTA5MWYiLG1tOiIlZCBcdTA5MmVcdTA5M2ZcdTA5MjhcdTA5NDdcdTA5MWYiLGg6Ilx1MDkwZlx1MDkxNSBcdTA5MThcdTA5MjNcdTA5NGRcdTA5''@;'; + put 'put ''MWZcdTA5M2UiLGhoOiIlZCBcdTA5MThcdTA5MjNcdTA5NGRcdTA5MWZcdTA5M2UiLGQ6Ilx1MDkwZlx1MDkxNSBcdTA5MjZcdTA5M2ZcdTA5MjgiLGRkOiIlZCBcdTA5MjZcdTA5M2ZcdTA5MjgiLE06Ilx1MDkwZlx1MDkxNSBcdTA5MmVcdTA5MzlcdTA5M2ZcdTA5MjhcdTA5M2UiLE1NOiIl''@;'; + put 'put ''ZCBcdTA5MmVcdTA5MzlcdTA5M2ZcdTA5MjhcdTA5M2UiLHk6Ilx1MDkwZlx1MDkxNSBcdTA5MmNcdTA5MzBcdTA5NGRcdTA5MzciLHl5OiIlZCBcdTA5MmNcdTA5MzBcdTA5NGRcdTA5MzcifSx3ZWVrOntkb3c6MCxkb3k6Nn19KX0oTCgxNTQzOSkpfSw1MjI3MjpmdW5jdGlvbihYZSxKZSxM''@;'; + put 'put ''KXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0Ijt2YXIgQj0iamFuLl9mZWIuX21ydC5fYXByLl9tZWlfanVuLl9qdWwuX2F1Zy5fc2VwLl9va3QuX25vdi5fZGVjLiIuc3BsaXQoIl8iKSxFPSJqYW5fZmViX21ydF9hcHJfbWVpX2p1bl9qdWxfYXVnX3NlcF9va3Rfbm92X2RlYyIuc3BsaXQo''@;'; + put 'put ''Il8iKSxNZT1bL15qYW4vaSwvXmZlYi9pLC9ebWFhcnR8bXJ0Lj8kL2ksL15hcHIvaSwvXm1laSQvaSwvXmp1bltpLl0/JC9pLC9eanVsW2kuXT8kL2ksL15hdWcvaSwvXnNlcC9pLC9eb2t0L2ksL15ub3YvaSwvXmRlYy9pXSxVPS9eKGphbnVhcml8ZmVicnVhcml8bWFhcnR8YXByaWx8bWVp''@;'; + put 'put ''fGp1W25sXWl8YXVndXN0dXN8c2VwdGVtYmVyfG9rdG9iZXJ8bm92ZW1iZXJ8ZGVjZW1iZXJ8amFuXC4/fGZlYlwuP3xtcnRcLj98YXByXC4/fGp1W25sXVwuP3xhdWdcLj98c2VwXC4/fG9rdFwuP3xub3ZcLj98ZGVjXC4/KS9pO21lLmRlZmluZUxvY2FsZSgibmwtYmUiLHttb250aHM6Imph''@;'; + put 'put ''bnVhcmlfZmVicnVhcmlfbWFhcnRfYXByaWxfbWVpX2p1bmlfanVsaV9hdWd1c3R1c19zZXB0ZW1iZXJfb2t0b2Jlcl9ub3ZlbWJlcl9kZWNlbWJlciIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDpmdW5jdGlvbihaLGllKXtyZXR1cm4gWj8vLU1NTS0vLnRlc3QoaWUpP0VbWi5tb250aCgpXTpC''@;'; + put 'put ''W1oubW9udGgoKV06Qn0sbW9udGhzUmVnZXg6VSxtb250aHNTaG9ydFJlZ2V4OlUsbW9udGhzU3RyaWN0UmVnZXg6L14oamFudWFyaXxmZWJydWFyaXxtYWFydHxhcHJpbHxtZWl8anVbbmxdaXxhdWd1c3R1c3xzZXB0ZW1iZXJ8b2t0b2Jlcnxub3ZlbWJlcnxkZWNlbWJlcikvaSxtb250aHNT''@;'; + put 'put ''aG9ydFN0cmljdFJlZ2V4Oi9eKGphblwuP3xmZWJcLj98bXJ0XC4/fGFwclwuP3xtZWl8anVbbmxdXC4/fGF1Z1wuP3xzZXBcLj98b2t0XC4/fG5vdlwuP3xkZWNcLj8pL2ksbW9udGhzUGFyc2U6TWUsbG9uZ01vbnRoc1BhcnNlOk1lLHNob3J0TW9udGhzUGFyc2U6TWUsd2Vla2RheXM6Inpv''@;'; + put 'put ''bmRhZ19tYWFuZGFnX2RpbnNkYWdfd29lbnNkYWdfZG9uZGVyZGFnX3ZyaWpkYWdfemF0ZXJkYWciLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiem8uX21hLl9kaS5fd28uX2RvLl92ci5femEuIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJ6b19tYV9kaV93b19kb192cl96YSIuc3BsaXQo''@;'; + put 'put ''Il8iKSx3ZWVrZGF5c1BhcnNlRXhhY3Q6ITAsbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoiREQvTU0vWVlZWSIsTEw6IkQgTU1NTSBZWVlZIixMTEw6IkQgTU1NTSBZWVlZIEhIOm1tIixMTExMOiJkZGRkIEQgTU1NTSBZWVlZIEhIOm1tIn0sY2FsZW5kYXI6''@;'; + put 'put ''e3NhbWVEYXk6Ilt2YW5kYWFnIG9tXSBMVCIsbmV4dERheToiW21vcmdlbiBvbV0gTFQiLG5leHRXZWVrOiJkZGRkIFtvbV0gTFQiLGxhc3REYXk6IltnaXN0ZXJlbiBvbV0gTFQiLGxhc3RXZWVrOiJbYWZnZWxvcGVuXSBkZGRkIFtvbV0gTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1l''@;'; + put 'put ''OntmdXR1cmU6Im92ZXIgJXMiLHBhc3Q6IiVzIGdlbGVkZW4iLHM6ImVlbiBwYWFyIHNlY29uZGVuIixzczoiJWQgc2Vjb25kZW4iLG06Ilx4ZTlceGU5biBtaW51dXQiLG1tOiIlZCBtaW51dGVuIixoOiJceGU5XHhlOW4gdXVyIixoaDoiJWQgdXVyIixkOiJceGU5XHhlOW4gZGFnIixkZDoi''@;'; + put 'put ''JWQgZGFnZW4iLE06Ilx4ZTlceGU5biBtYWFuZCIsTU06IiVkIG1hYW5kZW4iLHk6Ilx4ZTlceGU5biBqYWFyIix5eToiJWQgamFhciJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn0oc3RlfGRlKS8sb3JkaW5hbDpmdW5jdGlvbihaKXtyZXR1cm4gWisoMT09PVp8fDg9PT1afHxa''@;'; + put 'put ''Pj0yMD8ic3RlIjoiZGUiKX0sd2Vlazp7ZG93OjEsZG95OjR9fSl9KEwoMTU0MzkpKX0sMTE3NTg6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7dmFyIEI9Imphbi5fZmViLl9tcnQuX2Fwci5fbWVpX2p1bi5fanVsLl9hdWcuX3NlcC5fb2t0Ll9ub3YuX2Rl''@;'; + put 'put ''Yy4iLnNwbGl0KCJfIiksRT0iamFuX2ZlYl9tcnRfYXByX21laV9qdW5fanVsX2F1Z19zZXBfb2t0X25vdl9kZWMiLnNwbGl0KCJfIiksTWU9Wy9eamFuL2ksL15mZWIvaSwvXm1hYXJ0fG1ydC4/JC9pLC9eYXByL2ksL15tZWkkL2ksL15qdW5baS5dPyQvaSwvXmp1bFtpLl0/JC9pLC9eYXVn''@;'; + put 'put ''L2ksL15zZXAvaSwvXm9rdC9pLC9ebm92L2ksL15kZWMvaV0sVT0vXihqYW51YXJpfGZlYnJ1YXJpfG1hYXJ0fGFwcmlsfG1laXxqdVtubF1pfGF1Z3VzdHVzfHNlcHRlbWJlcnxva3RvYmVyfG5vdmVtYmVyfGRlY2VtYmVyfGphblwuP3xmZWJcLj98bXJ0XC4/fGFwclwuP3xqdVtubF1cLj98''@;'; + put 'put ''YXVnXC4/fHNlcFwuP3xva3RcLj98bm92XC4/fGRlY1wuPykvaTttZS5kZWZpbmVMb2NhbGUoIm5sIix7bW9udGhzOiJqYW51YXJpX2ZlYnJ1YXJpX21hYXJ0X2FwcmlsX21laV9qdW5pX2p1bGlfYXVndXN0dXNfc2VwdGVtYmVyX29rdG9iZXJfbm92ZW1iZXJfZGVjZW1iZXIiLnNwbGl0KCJf''@;'; + put 'put ''IiksbW9udGhzU2hvcnQ6ZnVuY3Rpb24oWixpZSl7cmV0dXJuIFo/Ly1NTU0tLy50ZXN0KGllKT9FW1oubW9udGgoKV06QltaLm1vbnRoKCldOkJ9LG1vbnRoc1JlZ2V4OlUsbW9udGhzU2hvcnRSZWdleDpVLG1vbnRoc1N0cmljdFJlZ2V4Oi9eKGphbnVhcml8ZmVicnVhcml8bWFhcnR8YXBy''@;'; + put 'put ''aWx8bWVpfGp1W25sXWl8YXVndXN0dXN8c2VwdGVtYmVyfG9rdG9iZXJ8bm92ZW1iZXJ8ZGVjZW1iZXIpL2ksbW9udGhzU2hvcnRTdHJpY3RSZWdleDovXihqYW5cLj98ZmViXC4/fG1ydFwuP3xhcHJcLj98bWVpfGp1W25sXVwuP3xhdWdcLj98c2VwXC4/fG9rdFwuP3xub3ZcLj98ZGVjXC4/''@;'; + put 'put ''KS9pLG1vbnRoc1BhcnNlOk1lLGxvbmdNb250aHNQYXJzZTpNZSxzaG9ydE1vbnRoc1BhcnNlOk1lLHdlZWtkYXlzOiJ6b25kYWdfbWFhbmRhZ19kaW5zZGFnX3dvZW5zZGFnX2RvbmRlcmRhZ192cmlqZGFnX3phdGVyZGFnIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6InpvLl9tYS5fZGku''@;'; + put 'put ''X3dvLl9kby5fdnIuX3phLiIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiem9fbWFfZGlfd29fZG9fdnJfemEiLnNwbGl0KCJfIiksd2Vla2RheXNQYXJzZUV4YWN0OiEwLGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IkRELU1NLVlZWVkiLExMOiJEIE1NTU0g''@;'; + put 'put ''WVlZWSIsTExMOiJEIE1NTU0gWVlZWSBISDptbSIsTExMTDoiZGRkZCBEIE1NTU0gWVlZWSBISDptbSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbdmFuZGFhZyBvbV0gTFQiLG5leHREYXk6Ilttb3JnZW4gb21dIExUIixuZXh0V2VlazoiZGRkZCBbb21dIExUIixsYXN0RGF5OiJbZ2lzdGVyZW4g''@;'; + put 'put ''b21dIExUIixsYXN0V2VlazoiW2FmZ2Vsb3Blbl0gZGRkZCBbb21dIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJvdmVyICVzIixwYXN0OiIlcyBnZWxlZGVuIixzOiJlZW4gcGFhciBzZWNvbmRlbiIsc3M6IiVkIHNlY29uZGVuIixtOiJceGU5XHhlOW4gbWludXV0''@;'; + put 'put ''IixtbToiJWQgbWludXRlbiIsaDoiXHhlOVx4ZTluIHV1ciIsaGg6IiVkIHV1ciIsZDoiXHhlOVx4ZTluIGRhZyIsZGQ6IiVkIGRhZ2VuIix3OiJceGU5XHhlOW4gd2VlayIsd3c6IiVkIHdla2VuIixNOiJceGU5XHhlOW4gbWFhbmQiLE1NOiIlZCBtYWFuZGVuIix5OiJceGU5XHhlOW4gamFh''@;'; + put 'put ''ciIseXk6IiVkIGphYXIifSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9KHN0ZXxkZSkvLG9yZGluYWw6ZnVuY3Rpb24oWil7cmV0dXJuIForKDE9PT1afHw4PT09Wnx8Wj49MjA/InN0ZSI6ImRlIil9LHdlZWs6e2RvdzoxLGRveTo0fX0pfShMKDE1NDM5KSl9LDQxNTEwOmZ1bmN0''@;'; + put 'put ''aW9uKFhlLEplLEwpeyFmdW5jdGlvbihtZSl7InVzZSBzdHJpY3QiO21lLmRlZmluZUxvY2FsZSgibm4iLHttb250aHM6ImphbnVhcl9mZWJydWFyX21hcnNfYXByaWxfbWFpX2p1bmlfanVsaV9hdWd1c3Rfc2VwdGVtYmVyX29rdG9iZXJfbm92ZW1iZXJfZGVzZW1iZXIiLnNwbGl0KCJfIiks''@;'; + put 'put ''bW9udGhzU2hvcnQ6Imphbi5fZmViLl9tYXJzX2Fwci5fbWFpX2p1bmlfanVsaV9hdWcuX3NlcC5fb2t0Ll9ub3YuX2Rlcy4iLnNwbGl0KCJfIiksbW9udGhzUGFyc2VFeGFjdDohMCx3ZWVrZGF5czoic3VuZGFnX21ceGU1bmRhZ190eXNkYWdfb25zZGFnX3RvcnNkYWdfZnJlZGFnX2xhdXJk''@;'; + put 'put ''YWciLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoic3UuX21ceGU1Ll90eS5fb24uX3RvLl9mci5fbGF1LiIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoic3VfbVx4ZTVfdHlfb25fdG9fZnJfbGEiLnNwbGl0KCJfIiksd2Vla2RheXNQYXJzZUV4YWN0OiEwLGxvbmdEYXRlRm9ybWF0OntMVDoi''@;'; + put 'put ''SEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IkRELk1NLllZWVkiLExMOiJELiBNTU1NIFlZWVkiLExMTDoiRC4gTU1NTSBZWVlZIFtrbC5dIEg6bW0iLExMTEw6ImRkZGQgRC4gTU1NTSBZWVlZIFtrbC5dIEhIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltJIGRhZyBrbG9ra2FdIExUIixuZXh0''@;'; + put 'put ''RGF5OiJbSSBtb3Jnb24ga2xva2thXSBMVCIsbmV4dFdlZWs6ImRkZGQgW2tsb2trYV0gTFQiLGxhc3REYXk6IltJIGdceGU1ciBrbG9ra2FdIExUIixsYXN0V2VlazoiW0ZceGY4cmVnXHhlNWFuZGVdIGRkZGQgW2tsb2trYV0gTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1''@;'; + put 'put ''cmU6Im9tICVzIixwYXN0OiIlcyBzaWRhbiIsczoibm9rcmUgc2VrdW5kIixzczoiJWQgc2VrdW5kIixtOiJlaXQgbWludXR0IixtbToiJWQgbWludXR0IixoOiJlaW4gdGltZSIsaGg6IiVkIHRpbWFyIixkOiJlaW4gZGFnIixkZDoiJWQgZGFnYXIiLHc6ImVpIHZla2UiLHd3OiIlZCB2ZWtl''@;'; + put 'put ''ciIsTToiZWluIG1ceGU1bmFkIixNTToiJWQgbVx4ZTVuYWRlciIseToiZWl0IFx4ZTVyIix5eToiJWQgXHhlNXIifSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9XC4vLG9yZGluYWw6IiVkLiIsd2Vlazp7ZG93OjEsZG95OjR9fSl9KEwoMTU0MzkpKX0sNTI3OTc6ZnVuY3Rpb24o''@;'; + put 'put ''WGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7bWUuZGVmaW5lTG9jYWxlKCJvYy1sbmMiLHttb250aHM6e3N0YW5kYWxvbmU6ImdlbmlceGU4cl9mZWJyaVx4ZThyX21hclx4ZTdfYWJyaWxfbWFpX2p1bmhfanVsaGV0X2Fnb3N0X3NldGVtYnJlX29jdFx4ZjJicmVfbm92ZW1i''@;'; + put 'put ''cmVfZGVjZW1icmUiLnNwbGl0KCJfIiksZm9ybWF0OiJkZSBnZW5pXHhlOHJfZGUgZmVicmlceGU4cl9kZSBtYXJceGU3X2QnYWJyaWxfZGUgbWFpX2RlIGp1bmhfZGUganVsaGV0X2QnYWdvc3RfZGUgc2V0ZW1icmVfZCdvY3RceGYyYnJlX2RlIG5vdmVtYnJlX2RlIGRlY2VtYnJlIi5zcGxp''@;'; + put 'put ''dCgiXyIpLGlzRm9ybWF0Oi9EW29EXT8oXHMpK01NTU0vfSxtb250aHNTaG9ydDoiZ2VuLl9mZWJyLl9tYXJceGU3X2Fici5fbWFpX2p1bmhfanVsaC5fYWdvLl9zZXQuX29jdC5fbm92Ll9kZWMuIi5zcGxpdCgiXyIpLG1vbnRoc1BhcnNlRXhhY3Q6ITAsd2Vla2RheXM6ImRpbWVuZ2VfZGls''@;'; + put 'put ''dW5zX2RpbWFyc19kaW1ceGU4Y3Jlc19kaWpceGYydXNfZGl2ZW5kcmVzX2Rpc3NhYnRlIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6ImRnLl9kbC5fZG0uX2RjLl9kai5fZHYuX2RzLiIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiZGdfZGxfZG1fZGNfZGpfZHZfZHMiLnNwbGl0KCJfIiks''@;'; + put 'put ''d2Vla2RheXNQYXJzZUV4YWN0OiEwLGxvbmdEYXRlRm9ybWF0OntMVDoiSDptbSIsTFRTOiJIOm1tOnNzIixMOiJERC9NTS9ZWVlZIixMTDoiRCBNTU1NIFtkZV0gWVlZWSIsbGw6IkQgTU1NIFlZWVkiLExMTDoiRCBNTU1NIFtkZV0gWVlZWSBbYV0gSDptbSIsbGxsOiJEIE1NTSBZWVlZLCBI''@;'; + put 'put ''Om1tIixMTExMOiJkZGRkIEQgTU1NTSBbZGVdIFlZWVkgW2FdIEg6bW0iLGxsbGw6ImRkZCBEIE1NTSBZWVlZLCBIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6Ilt1XHhlOGkgYV0gTFQiLG5leHREYXk6IltkZW1hbiBhXSBMVCIsbmV4dFdlZWs6ImRkZGQgW2FdIExUIixsYXN0RGF5OiJbaVx4''@;'; + put 'put ''ZThyIGFdIExUIixsYXN0V2VlazoiZGRkZCBbcGFzc2F0IGFdIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJkJ2FxdVx4ZWQgJXMiLHBhc3Q6ImZhICVzIixzOiJ1bmFzIHNlZ29uZGFzIixzczoiJWQgc2Vnb25kYXMiLG06InVuYSBtaW51dGEiLG1tOiIlZCBtaW51''@;'; + put 'put ''dGFzIixoOiJ1bmEgb3JhIixoaDoiJWQgb3JhcyIsZDoidW4gam9ybiIsZGQ6IiVkIGpvcm5zIixNOiJ1biBtZXMiLE1NOiIlZCBtZXNlcyIseToidW4gYW4iLHl5OiIlZCBhbnMifSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9KHJ8bnx0fFx4ZTh8YSkvLG9yZGluYWw6ZnVuY3Rp''@;'; + put 'put ''b24oRSxNZSl7dmFyIFU9MT09PUU/InIiOjI9PT1FPyJuIjozPT09RT8iciI6ND09PUU/InQiOiJceGU4IjtyZXR1cm4oInciPT09TWV8fCJXIj09PU1lKSYmKFU9ImEiKSxFK1V9LHdlZWs6e2RvdzoxLGRveTo0fX0pfShMKDE1NDM5KSl9LDM3OTQ0OmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5j''@;'; + put 'put ''dGlvbihtZSl7InVzZSBzdHJpY3QiO3ZhciBCPXsxOiJcdTBhNjciLDI6Ilx1MGE2OCIsMzoiXHUwYTY5Iiw0OiJcdTBhNmEiLDU6Ilx1MGE2YiIsNjoiXHUwYTZjIiw3OiJcdTBhNmQiLDg6Ilx1MGE2ZSIsOToiXHUwYTZmIiwwOiJcdTBhNjYifSxFPXsiXHUwYTY3IjoiMSIsIlx1MGE2OCI6''@;'; + put 'put ''IjIiLCJcdTBhNjkiOiIzIiwiXHUwYTZhIjoiNCIsIlx1MGE2YiI6IjUiLCJcdTBhNmMiOiI2IiwiXHUwYTZkIjoiNyIsIlx1MGE2ZSI6IjgiLCJcdTBhNmYiOiI5IiwiXHUwYTY2IjoiMCJ9O21lLmRlZmluZUxvY2FsZSgicGEtaW4iLHttb250aHM6Ilx1MGExY1x1MGEyOFx1MGEzNVx1MGEz''@;'; + put 'put ''MFx1MGE0MF9cdTBhMmJcdTBhM2NcdTBhMzBcdTBhMzVcdTBhMzBcdTBhNDBfXHUwYTJlXHUwYTNlXHUwYTMwXHUwYTFhX1x1MGEwNVx1MGEyYVx1MGE0ZFx1MGEzMFx1MGE0OFx1MGEzMl9cdTBhMmVcdTBhMDhfXHUwYTFjXHUwYTQyXHUwYTI4X1x1MGExY1x1MGE0MVx1MGEzMlx1MGEzZVx1''@;'; + put 'put ''MGEwOF9cdTBhMDVcdTBhMTdcdTBhMzhcdTBhMjRfXHUwYTM4XHUwYTI0XHUwYTcwXHUwYTJjXHUwYTMwX1x1MGEwNVx1MGExNVx1MGEyNFx1MGE0Mlx1MGEyY1x1MGEzMF9cdTBhMjhcdTBhMzVcdTBhNzBcdTBhMmNcdTBhMzBfXHUwYTI2XHUwYTM4XHUwYTcwXHUwYTJjXHUwYTMwIi5zcGxp''@;'; + put 'put ''dCgiXyIpLG1vbnRoc1Nob3J0OiJcdTBhMWNcdTBhMjhcdTBhMzVcdTBhMzBcdTBhNDBfXHUwYTJiXHUwYTNjXHUwYTMwXHUwYTM1XHUwYTMwXHUwYTQwX1x1MGEyZVx1MGEzZVx1MGEzMFx1MGExYV9cdTBhMDVcdTBhMmFcdTBhNGRcdTBhMzBcdTBhNDhcdTBhMzJfXHUwYTJlXHUwYTA4X1x1''@;'; + put 'put ''MGExY1x1MGE0Mlx1MGEyOF9cdTBhMWNcdTBhNDFcdTBhMzJcdTBhM2VcdTBhMDhfXHUwYTA1XHUwYTE3XHUwYTM4XHUwYTI0X1x1MGEzOFx1MGEyNFx1MGE3MFx1MGEyY1x1MGEzMF9cdTBhMDVcdTBhMTVcdTBhMjRcdTBhNDJcdTBhMmNcdTBhMzBfXHUwYTI4XHUwYTM1XHUwYTcwXHUwYTJj''@;'; + put 'put ''XHUwYTMwX1x1MGEyNlx1MGEzOFx1MGE3MFx1MGEyY1x1MGEzMCIuc3BsaXQoIl8iKSx3ZWVrZGF5czoiXHUwYTEwXHUwYTI0XHUwYTM1XHUwYTNlXHUwYTMwX1x1MGEzOFx1MGE0Ylx1MGEyZVx1MGEzNVx1MGEzZVx1MGEzMF9cdTBhMmVcdTBhNzBcdTBhMTdcdTBhMzJcdTBhMzVcdTBhM2Vc''@;'; + put 'put ''dTBhMzBfXHUwYTJjXHUwYTQxXHUwYTI3XHUwYTM1XHUwYTNlXHUwYTMwX1x1MGEzNVx1MGE0MFx1MGEzMFx1MGEzNVx1MGEzZVx1MGEzMF9cdTBhMzhcdTBhM2NcdTBhNDFcdTBhNzFcdTBhMTVcdTBhMzBcdTBhMzVcdTBhM2VcdTBhMzBfXHUwYTM4XHUwYTNjXHUwYTI4XHUwYTQwXHUwYTFh''@;'; + put 'put ''XHUwYTMwXHUwYTM1XHUwYTNlXHUwYTMwIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6Ilx1MGExMFx1MGEyNF9cdTBhMzhcdTBhNGJcdTBhMmVfXHUwYTJlXHUwYTcwXHUwYTE3XHUwYTMyX1x1MGEyY1x1MGE0MVx1MGEyN19cdTBhMzVcdTBhNDBcdTBhMzBfXHUwYTM4XHUwYTNjXHUwYTQx''@;'; + put 'put ''XHUwYTE1XHUwYTMwX1x1MGEzOFx1MGEzY1x1MGEyOFx1MGE0MCIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiXHUwYTEwXHUwYTI0X1x1MGEzOFx1MGE0Ylx1MGEyZV9cdTBhMmVcdTBhNzBcdTBhMTdcdTBhMzJfXHUwYTJjXHUwYTQxXHUwYTI3X1x1MGEzNVx1MGE0MFx1MGEzMF9cdTBhMzhc''@;'; + put 'put ''dTBhM2NcdTBhNDFcdTBhMTVcdTBhMzBfXHUwYTM4XHUwYTNjXHUwYTI4XHUwYTQwIi5zcGxpdCgiXyIpLGxvbmdEYXRlRm9ybWF0OntMVDoiQSBoOm1tIFx1MGEzNVx1MGExY1x1MGE0NyIsTFRTOiJBIGg6bW06c3MgXHUwYTM1XHUwYTFjXHUwYTQ3IixMOiJERC9NTS9ZWVlZIixMTDoiRCBN''@;'; + put 'put ''TU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVksIEEgaDptbSBcdTBhMzVcdTBhMWNcdTBhNDciLExMTEw6ImRkZGQsIEQgTU1NTSBZWVlZLCBBIGg6bW0gXHUwYTM1XHUwYTFjXHUwYTQ3In0sY2FsZW5kYXI6e3NhbWVEYXk6IltcdTBhMDVcdTBhMWNdIExUIixuZXh0RGF5OiJbXHUwYTE1XHUw''@;'; + put 'put ''YTMyXSBMVCIsbmV4dFdlZWs6IltcdTBhMDVcdTBhMTdcdTBhMzJcdTBhM2VdIGRkZGQsIExUIixsYXN0RGF5OiJbXHUwYTE1XHUwYTMyXSBMVCIsbGFzdFdlZWs6IltcdTBhMmFcdTBhM2ZcdTBhMWJcdTBhMzJcdTBhNDddIGRkZGQsIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7''@;'; + put 'put ''ZnV0dXJlOiIlcyBcdTBhMzVcdTBhM2ZcdTBhNzFcdTBhMWEiLHBhc3Q6IiVzIFx1MGEyYVx1MGEzZlx1MGExYlx1MGEzMlx1MGE0NyIsczoiXHUwYTE1XHUwYTQxXHUwYTFkIFx1MGEzOFx1MGExNVx1MGEzZlx1MGE3MFx1MGExZiIsc3M6IiVkIFx1MGEzOFx1MGExNVx1MGEzZlx1MGE3MFx1''@;'; + put 'put ''MGExZiIsbToiXHUwYTA3XHUwYTE1IFx1MGEyZVx1MGEzZlx1MGE3MFx1MGExZiIsbW06IiVkIFx1MGEyZVx1MGEzZlx1MGE3MFx1MGExZiIsaDoiXHUwYTA3XHUwYTcxXHUwYTE1IFx1MGExOFx1MGE3MFx1MGExZlx1MGEzZSIsaGg6IiVkIFx1MGExOFx1MGE3MFx1MGExZlx1MGE0NyIsZDoi''@;'; + put 'put ''XHUwYTA3XHUwYTcxXHUwYTE1IFx1MGEyNlx1MGEzZlx1MGEyOCIsZGQ6IiVkIFx1MGEyNlx1MGEzZlx1MGEyOCIsTToiXHUwYTA3XHUwYTcxXHUwYTE1IFx1MGEyZVx1MGEzOVx1MGE0MFx1MGEyOFx1MGEzZSIsTU06IiVkIFx1MGEyZVx1MGEzOVx1MGE0MFx1MGEyOFx1MGE0NyIseToiXHUw''@;'; + put 'put ''YTA3XHUwYTcxXHUwYTE1IFx1MGEzOFx1MGEzZVx1MGEzMiIseXk6IiVkIFx1MGEzOFx1MGEzZVx1MGEzMiJ9LHByZXBhcnNlOmZ1bmN0aW9uKFUpe3JldHVybiBVLnJlcGxhY2UoL1tcdTBhNjdcdTBhNjhcdTBhNjlcdTBhNmFcdTBhNmJcdTBhNmNcdTBhNmRcdTBhNmVcdTBhNmZcdTBhNjZd''@;'; + put 'put ''L2csZnVuY3Rpb24oUSl7cmV0dXJuIEVbUV19KX0scG9zdGZvcm1hdDpmdW5jdGlvbihVKXtyZXR1cm4gVS5yZXBsYWNlKC9cZC9nLGZ1bmN0aW9uKFEpe3JldHVybiBCW1FdfSl9LG1lcmlkaWVtUGFyc2U6L1x1MGEzMFx1MGEzZVx1MGEyNHxcdTBhMzhcdTBhMzVcdTBhNDdcdTBhMzB8XHUw''@;'; + put 'put ''YTI2XHUwYTQxXHUwYTJhXHUwYTM5XHUwYTNmXHUwYTMwfFx1MGEzOFx1MGEzY1x1MGEzZVx1MGEyZS8sbWVyaWRpZW1Ib3VyOmZ1bmN0aW9uKFUsUSl7cmV0dXJuIDEyPT09VSYmKFU9MCksIlx1MGEzMFx1MGEzZVx1MGEyNCI9PT1RP1U8ND9VOlUrMTI6Ilx1MGEzOFx1MGEzNVx1MGE0N1x1''@;'; + put 'put ''MGEzMCI9PT1RP1U6Ilx1MGEyNlx1MGE0MVx1MGEyYVx1MGEzOVx1MGEzZlx1MGEzMCI9PT1RP1U+PTEwP1U6VSsxMjoiXHUwYTM4XHUwYTNjXHUwYTNlXHUwYTJlIj09PVE/VSsxMjp2b2lkIDB9LG1lcmlkaWVtOmZ1bmN0aW9uKFUsUSxaKXtyZXR1cm4gVTw0PyJcdTBhMzBcdTBhM2VcdTBh''@;'; + put 'put ''MjQiOlU8MTA/Ilx1MGEzOFx1MGEzNVx1MGE0N1x1MGEzMCI6VTwxNz8iXHUwYTI2XHUwYTQxXHUwYTJhXHUwYTM5XHUwYTNmXHUwYTMwIjpVPDIwPyJcdTBhMzhcdTBhM2NcdTBhM2VcdTBhMmUiOiJcdTBhMzBcdTBhM2VcdTBhMjQifSx3ZWVrOntkb3c6MCxkb3k6Nn19KX0oTCgxNTQzOSkp''@;'; + put 'put ''fSwxNjA1OmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlvbihtZSl7InVzZSBzdHJpY3QiO3ZhciBCPSJzdHljemVcdTAxNDRfbHV0eV9tYXJ6ZWNfa3dpZWNpZVx1MDE0NF9tYWpfY3plcndpZWNfbGlwaWVjX3NpZXJwaWVcdTAxNDRfd3J6ZXNpZVx1MDE0NF9wYVx1MDE3YWR6aWVybmlrX2xp''@;'; + put 'put ''c3RvcGFkX2dydWR6aWVcdTAxNDQiLnNwbGl0KCJfIiksRT0ic3R5Y3puaWFfbHV0ZWdvX21hcmNhX2t3aWV0bmlhX21hamFfY3plcndjYV9saXBjYV9zaWVycG5pYV93cnplXHUwMTVibmlhX3BhXHUwMTdhZHppZXJuaWthX2xpc3RvcGFkYV9ncnVkbmlhIi5zcGxpdCgiXyIpLE1lPVsvXnN0''@;'; + put 'put ''eS9pLC9ebHV0L2ksL15tYXIvaSwvXmt3aS9pLC9ebWFqL2ksL15jemUvaSwvXmxpcC9pLC9ec2llL2ksL153cnovaSwvXnBhXHUwMTdhL2ksL15saXMvaSwvXmdydS9pXTtmdW5jdGlvbiBVKGllKXtyZXR1cm4gaWUlMTA8NSYmaWUlMTA+MSYmfn4oaWUvMTApJTEwIT0xfWZ1bmN0aW9uIFEo''@;'; + put 'put ''aWUsYWUsWSl7dmFyIFc9aWUrIiAiO3N3aXRjaChZKXtjYXNlInNzIjpyZXR1cm4gVysoVShpZSk/InNla3VuZHkiOiJzZWt1bmQiKTtjYXNlIm0iOnJldHVybiBhZT8ibWludXRhIjoibWludXRcdTAxMTkiO2Nhc2UibW0iOnJldHVybiBXKyhVKGllKT8ibWludXR5IjoibWludXQiKTtjYXNl''@;'; + put 'put ''ImgiOnJldHVybiBhZT8iZ29kemluYSI6ImdvZHppblx1MDExOSI7Y2FzZSJoaCI6cmV0dXJuIFcrKFUoaWUpPyJnb2R6aW55IjoiZ29kemluIik7Y2FzZSJ3dyI6cmV0dXJuIFcrKFUoaWUpPyJ0eWdvZG5pZSI6InR5Z29kbmkiKTtjYXNlIk1NIjpyZXR1cm4gVysoVShpZSk/Im1pZXNpXHUw''@;'; + put 'put ''MTA1Y2UiOiJtaWVzaVx1MDExOWN5Iik7Y2FzZSJ5eSI6cmV0dXJuIFcrKFUoaWUpPyJsYXRhIjoibGF0Iil9fW1lLmRlZmluZUxvY2FsZSgicGwiLHttb250aHM6ZnVuY3Rpb24oaWUsYWUpe3JldHVybiBpZT8vRCBNTU1NLy50ZXN0KGFlKT9FW2llLm1vbnRoKCldOkJbaWUubW9udGgoKV06''@;'; + put 'put ''Qn0sbW9udGhzU2hvcnQ6InN0eV9sdXRfbWFyX2t3aV9tYWpfY3plX2xpcF9zaWVfd3J6X3BhXHUwMTdhX2xpc19ncnUiLnNwbGl0KCJfIiksbW9udGhzUGFyc2U6TWUsbG9uZ01vbnRoc1BhcnNlOk1lLHNob3J0TW9udGhzUGFyc2U6TWUsd2Vla2RheXM6Im5pZWR6aWVsYV9wb25pZWR6aWFc''@;'; + put 'put ''dTAxNDJla193dG9yZWtfXHUwMTVicm9kYV9jendhcnRla19waVx1MDEwNXRla19zb2JvdGEiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoibmR6X3Bvbl93dF9cdTAxNWJyX2N6d19wdF9zb2IiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46Ik5kX1BuX1d0X1x1MDE1YXJfQ3pfUHRfU28iLnNw''@;'; + put 'put ''bGl0KCJfIiksbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoiREQuTU0uWVlZWSIsTEw6IkQgTU1NTSBZWVlZIixMTEw6IkQgTU1NTSBZWVlZIEhIOm1tIixMTExMOiJkZGRkLCBEIE1NTU0gWVlZWSBISDptbSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbRHppXHUw''@;'; + put 'put ''MTViIG9dIExUIixuZXh0RGF5OiJbSnV0cm8gb10gTFQiLG5leHRXZWVrOmZ1bmN0aW9uKCl7c3dpdGNoKHRoaXMuZGF5KCkpe2Nhc2UgMDpyZXR1cm4iW1cgbmllZHppZWxcdTAxMTkgb10gTFQiO2Nhc2UgMjpyZXR1cm4iW1dlIHd0b3JlayBvXSBMVCI7Y2FzZSAzOnJldHVybiJbVyBcdTAx''@;'; + put 'put ''NWJyb2RcdTAxMTkgb10gTFQiO2Nhc2UgNjpyZXR1cm4iW1cgc29ib3RcdTAxMTkgb10gTFQiO2RlZmF1bHQ6cmV0dXJuIltXXSBkZGRkIFtvXSBMVCJ9fSxsYXN0RGF5OiJbV2N6b3JhaiBvXSBMVCIsbGFzdFdlZWs6ZnVuY3Rpb24oKXtzd2l0Y2godGhpcy5kYXkoKSl7Y2FzZSAwOnJldHVy''@;'; + put 'put ''biJbVyB6ZXN6XHUwMTQyXHUwMTA1IG5pZWR6aWVsXHUwMTE5IG9dIExUIjtjYXNlIDM6cmV0dXJuIltXIHplc3pcdTAxNDJcdTAxMDUgXHUwMTVicm9kXHUwMTE5IG9dIExUIjtjYXNlIDY6cmV0dXJuIltXIHplc3pcdTAxNDJcdTAxMDUgc29ib3RcdTAxMTkgb10gTFQiO2RlZmF1bHQ6cmV0''@;'; + put 'put ''dXJuIltXIHplc3pcdTAxNDJ5XSBkZGRkIFtvXSBMVCJ9fSxzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJ6YSAlcyIscGFzdDoiJXMgdGVtdSIsczoia2lsa2Egc2VrdW5kIixzczpRLG06USxtbTpRLGg6USxoaDpRLGQ6IjEgZHppZVx1MDE0NCIsZGQ6IiVkIGRuaSIsdzoi''@;'; + put 'put ''dHlkemllXHUwMTQ0Iix3dzpRLE06Im1pZXNpXHUwMTA1YyIsTU06USx5OiJyb2siLHl5OlF9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn1cLi8sb3JkaW5hbDoiJWQuIix3ZWVrOntkb3c6MSxkb3k6NH19KX0oTCgxNTQzOSkpfSw3Mzg0MDpmdW5jdGlvbihYZSxKZSxMKXshZnVu''@;'; + put 'put ''Y3Rpb24obWUpeyJ1c2Ugc3RyaWN0IjttZS5kZWZpbmVMb2NhbGUoInB0LWJyIix7bW9udGhzOiJqYW5laXJvX2ZldmVyZWlyb19tYXJceGU3b19hYnJpbF9tYWlvX2p1bmhvX2p1bGhvX2Fnb3N0b19zZXRlbWJyb19vdXR1YnJvX25vdmVtYnJvX2RlemVtYnJvIi5zcGxpdCgiXyIpLG1vbnRo''@;'; + put 'put ''c1Nob3J0OiJqYW5fZmV2X21hcl9hYnJfbWFpX2p1bl9qdWxfYWdvX3NldF9vdXRfbm92X2RleiIuc3BsaXQoIl8iKSx3ZWVrZGF5czoiZG9taW5nb19zZWd1bmRhLWZlaXJhX3Rlclx4ZTdhLWZlaXJhX3F1YXJ0YS1mZWlyYV9xdWludGEtZmVpcmFfc2V4dGEtZmVpcmFfc1x4ZTFiYWRvIi5z''@;'; + put 'put ''cGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6ImRvbV9zZWdfdGVyX3F1YV9xdWlfc2V4X3NceGUxYiIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiZG9fMlx4YWFfM1x4YWFfNFx4YWFfNVx4YWFfNlx4YWFfc1x4ZTEiLnNwbGl0KCJfIiksd2Vla2RheXNQYXJzZUV4YWN0OiEwLGxvbmdEYXRlRm9y''@;'; + put 'put ''bWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IkREL01NL1lZWVkiLExMOiJEIFtkZV0gTU1NTSBbZGVdIFlZWVkiLExMTDoiRCBbZGVdIE1NTU0gW2RlXSBZWVlZIFtceGUwc10gSEg6bW0iLExMTEw6ImRkZGQsIEQgW2RlXSBNTU1NIFtkZV0gWVlZWSBbXHhlMHNdIEhIOm1tIn0s''@;'; + put 'put ''Y2FsZW5kYXI6e3NhbWVEYXk6IltIb2plIFx4ZTBzXSBMVCIsbmV4dERheToiW0FtYW5oXHhlMyBceGUwc10gTFQiLG5leHRXZWVrOiJkZGRkIFtceGUwc10gTFQiLGxhc3REYXk6IltPbnRlbSBceGUwc10gTFQiLGxhc3RXZWVrOmZ1bmN0aW9uKCl7cmV0dXJuIDA9PT10aGlzLmRheSgpfHw2''@;'; + put 'put ''PT09dGhpcy5kYXkoKT8iW1x4ZGFsdGltb10gZGRkZCBbXHhlMHNdIExUIjoiW1x4ZGFsdGltYV0gZGRkZCBbXHhlMHNdIExUIn0sc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiZW0gJXMiLHBhc3Q6ImhceGUxICVzIixzOiJwb3Vjb3Mgc2VndW5kb3MiLHNzOiIlZCBzZWd1''@;'; + put 'put ''bmRvcyIsbToidW0gbWludXRvIixtbToiJWQgbWludXRvcyIsaDoidW1hIGhvcmEiLGhoOiIlZCBob3JhcyIsZDoidW0gZGlhIixkZDoiJWQgZGlhcyIsTToidW0gbVx4ZWFzIixNTToiJWQgbWVzZXMiLHk6InVtIGFubyIseXk6IiVkIGFub3MifSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9c''@;'; + put 'put ''ZHsxLDJ9XHhiYS8sb3JkaW5hbDoiJWRceGJhIixpbnZhbGlkRGF0ZToiRGF0YSBpbnZceGUxbGlkYSJ9KX0oTCgxNTQzOSkpfSw1NDIyNTpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0IjttZS5kZWZpbmVMb2NhbGUoInB0Iix7bW9udGhzOiJqYW5laXJvX2Zl''@;'; + put 'put ''dmVyZWlyb19tYXJceGU3b19hYnJpbF9tYWlvX2p1bmhvX2p1bGhvX2Fnb3N0b19zZXRlbWJyb19vdXR1YnJvX25vdmVtYnJvX2RlemVtYnJvIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJqYW5fZmV2X21hcl9hYnJfbWFpX2p1bl9qdWxfYWdvX3NldF9vdXRfbm92X2RleiIuc3BsaXQoIl8i''@;'; + put 'put ''KSx3ZWVrZGF5czoiRG9taW5nb19TZWd1bmRhLWZlaXJhX1Rlclx4ZTdhLWZlaXJhX1F1YXJ0YS1mZWlyYV9RdWludGEtZmVpcmFfU2V4dGEtZmVpcmFfU1x4ZTFiYWRvIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6IkRvbV9TZWdfVGVyX1F1YV9RdWlfU2V4X1NceGUxYiIuc3BsaXQoIl8i''@;'; + put 'put ''KSx3ZWVrZGF5c01pbjoiRG9fMlx4YWFfM1x4YWFfNFx4YWFfNVx4YWFfNlx4YWFfU1x4ZTEiLnNwbGl0KCJfIiksd2Vla2RheXNQYXJzZUV4YWN0OiEwLGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IkREL01NL1lZWVkiLExMOiJEIFtkZV0gTU1NTSBbZGVd''@;'; + put 'put ''IFlZWVkiLExMTDoiRCBbZGVdIE1NTU0gW2RlXSBZWVlZIEhIOm1tIixMTExMOiJkZGRkLCBEIFtkZV0gTU1NTSBbZGVdIFlZWVkgSEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW0hvamUgXHhlMHNdIExUIixuZXh0RGF5OiJbQW1hbmhceGUzIFx4ZTBzXSBMVCIsbmV4dFdlZWs6ImRkZGQg''@;'; + put 'put ''W1x4ZTBzXSBMVCIsbGFzdERheToiW09udGVtIFx4ZTBzXSBMVCIsbGFzdFdlZWs6ZnVuY3Rpb24oKXtyZXR1cm4gMD09PXRoaXMuZGF5KCl8fDY9PT10aGlzLmRheSgpPyJbXHhkYWx0aW1vXSBkZGRkIFtceGUwc10gTFQiOiJbXHhkYWx0aW1hXSBkZGRkIFtceGUwc10gTFQifSxzYW1lRWxz''@;'; + put 'put ''ZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJlbSAlcyIscGFzdDoiaFx4ZTEgJXMiLHM6InNlZ3VuZG9zIixzczoiJWQgc2VndW5kb3MiLG06InVtIG1pbnV0byIsbW06IiVkIG1pbnV0b3MiLGg6InVtYSBob3JhIixoaDoiJWQgaG9yYXMiLGQ6InVtIGRpYSIsZGQ6IiVkIGRpYXMiLHc6''@;'; + put 'put ''InVtYSBzZW1hbmEiLHd3OiIlZCBzZW1hbmFzIixNOiJ1bSBtXHhlYXMiLE1NOiIlZCBtZXNlcyIseToidW0gYW5vIix5eToiJWQgYW5vcyJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn1ceGJhLyxvcmRpbmFsOiIlZFx4YmEiLHdlZWs6e2RvdzoxLGRveTo0fX0pfShMKDE1NDM5''@;'; + put 'put ''KSl9LDQ1MTI4OmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlvbihtZSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIEIoTWUsVSxRKXt2YXIgaWU9IiAiO3JldHVybihNZSUxMDA+PTIwfHxNZT49MTAwJiZNZSUxMDA9PTApJiYoaWU9IiBkZSAiKSxNZStpZSt7c3M6InNlY3VuZGUiLG1tOiJtaW51''@;'; + put 'put ''dGUiLGhoOiJvcmUiLGRkOiJ6aWxlIix3dzoic1x1MDEwM3B0XHUwMTAzbVx4ZTJuaSIsTU06Imx1bmkiLHl5OiJhbmkifVtRXX1tZS5kZWZpbmVMb2NhbGUoInJvIix7bW9udGhzOiJpYW51YXJpZV9mZWJydWFyaWVfbWFydGllX2FwcmlsaWVfbWFpX2l1bmllX2l1bGllX2F1Z3VzdF9zZXB0''@;'; + put 'put ''ZW1icmllX29jdG9tYnJpZV9ub2llbWJyaWVfZGVjZW1icmllIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJpYW4uX2ZlYi5fbWFydC5fYXByLl9tYWlfaXVuLl9pdWwuX2F1Zy5fc2VwdC5fb2N0Ll9ub3YuX2RlYy4iLnNwbGl0KCJfIiksbW9udGhzUGFyc2VFeGFjdDohMCx3ZWVrZGF5czoi''@;'; + put 'put ''ZHVtaW5pY1x1MDEwM19sdW5pX21hclx1MDIxYmlfbWllcmN1cmlfam9pX3ZpbmVyaV9zXHhlMm1iXHUwMTAzdFx1MDEwMyIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJEdW1fTHVuX01hcl9NaWVfSm9pX1Zpbl9TXHhlMm0iLnNwbGl0KCJfIiksd2Vla2RheXNNaW46IkR1X0x1X01hX01p''@;'; + put 'put ''X0pvX1ZpX1NceGUyIi5zcGxpdCgiXyIpLGxvbmdEYXRlRm9ybWF0OntMVDoiSDptbSIsTFRTOiJIOm1tOnNzIixMOiJERC5NTS5ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVkgSDptbSIsTExMTDoiZGRkZCwgRCBNTU1NIFlZWVkgSDptbSJ9LGNhbGVuZGFyOntzYW1l''@;'; + put 'put ''RGF5OiJbYXppIGxhXSBMVCIsbmV4dERheToiW21ceGUyaW5lIGxhXSBMVCIsbmV4dFdlZWs6ImRkZGQgW2xhXSBMVCIsbGFzdERheToiW2llcmkgbGFdIExUIixsYXN0V2VlazoiW2Zvc3RhXSBkZGRkIFtsYV0gTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6InBlc3Rl''@;'; + put 'put ''ICVzIixwYXN0OiIlcyBceGVlbiB1cm1cdTAxMDMiLHM6ImNceGUydGV2YSBzZWN1bmRlIixzczpCLG06InVuIG1pbnV0IixtbTpCLGg6Im8gb3JcdTAxMDMiLGhoOkIsZDoibyB6aSIsZGQ6Qix3OiJvIHNcdTAxMDNwdFx1MDEwM21ceGUyblx1MDEwMyIsd3c6QixNOiJvIGx1blx1MDEwMyIs''@;'; + put 'put ''TU06Qix5OiJ1biBhbiIseXk6Qn0sd2Vlazp7ZG93OjEsZG95Ojd9fSl9KEwoMTU0MzkpKX0sMzUxMjc6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gRShRLFosaWUpe3JldHVybiJtIj09PWllP1o/Ilx1MDQzY1x1MDQzOFx1MDQzZFx1MDQ0''@;'; + put 'put ''M1x1MDQ0Mlx1MDQzMCI6Ilx1MDQzY1x1MDQzOFx1MDQzZFx1MDQ0M1x1MDQ0Mlx1MDQ0MyI6USsiICIrZnVuY3Rpb24gQihRLFope3ZhciBpZT1RLnNwbGl0KCJfIik7cmV0dXJuIFolMTA9PTEmJlolMTAwIT0xMT9pZVswXTpaJTEwPj0yJiZaJTEwPD00JiYoWiUxMDA8MTB8fFolMTAwPj0y''@;'; + put 'put ''MCk/aWVbMV06aWVbMl19KHtzczpaPyJcdTA0NDFcdTA0MzVcdTA0M2FcdTA0NDNcdTA0M2RcdTA0MzRcdTA0MzBfXHUwNDQxXHUwNDM1XHUwNDNhXHUwNDQzXHUwNDNkXHUwNDM0XHUwNDRiX1x1MDQ0MVx1MDQzNVx1MDQzYVx1MDQ0M1x1MDQzZFx1MDQzNCI6Ilx1MDQ0MVx1MDQzNVx1MDQz''@;'; + put 'put ''YVx1MDQ0M1x1MDQzZFx1MDQzNFx1MDQ0M19cdTA0NDFcdTA0MzVcdTA0M2FcdTA0NDNcdTA0M2RcdTA0MzRcdTA0NGJfXHUwNDQxXHUwNDM1XHUwNDNhXHUwNDQzXHUwNDNkXHUwNDM0IixtbTpaPyJcdTA0M2NcdTA0MzhcdTA0M2RcdTA0NDNcdTA0NDJcdTA0MzBfXHUwNDNjXHUwNDM4XHUw''@;'; + put 'put ''NDNkXHUwNDQzXHUwNDQyXHUwNDRiX1x1MDQzY1x1MDQzOFx1MDQzZFx1MDQ0M1x1MDQ0MiI6Ilx1MDQzY1x1MDQzOFx1MDQzZFx1MDQ0M1x1MDQ0Mlx1MDQ0M19cdTA0M2NcdTA0MzhcdTA0M2RcdTA0NDNcdTA0NDJcdTA0NGJfXHUwNDNjXHUwNDM4XHUwNDNkXHUwNDQzXHUwNDQyIixoaDoi''@;'; + put 'put ''XHUwNDQ3XHUwNDMwXHUwNDQxX1x1MDQ0N1x1MDQzMFx1MDQ0MVx1MDQzMF9cdTA0NDdcdTA0MzBcdTA0NDFcdTA0M2VcdTA0MzIiLGRkOiJcdTA0MzRcdTA0MzVcdTA0M2RcdTA0NGNfXHUwNDM0XHUwNDNkXHUwNDRmX1x1MDQzNFx1MDQzZFx1MDQzNVx1MDQzOSIsd3c6Ilx1MDQzZFx1MDQz''@;'; + put 'put ''NVx1MDQzNFx1MDQzNVx1MDQzYlx1MDQ0Zl9cdTA0M2RcdTA0MzVcdTA0MzRcdTA0MzVcdTA0M2JcdTA0MzhfXHUwNDNkXHUwNDM1XHUwNDM0XHUwNDM1XHUwNDNiXHUwNDRjIixNTToiXHUwNDNjXHUwNDM1XHUwNDQxXHUwNDRmXHUwNDQ2X1x1MDQzY1x1MDQzNVx1MDQ0MVx1MDQ0Zlx1MDQ0''@;'; + put 'put ''Nlx1MDQzMF9cdTA0M2NcdTA0MzVcdTA0NDFcdTA0NGZcdTA0NDZcdTA0MzVcdTA0MzIiLHl5OiJcdTA0MzNcdTA0M2VcdTA0MzRfXHUwNDMzXHUwNDNlXHUwNDM0XHUwNDMwX1x1MDQzYlx1MDQzNVx1MDQ0MiJ9W2llXSwrUSl9dmFyIE1lPVsvXlx1MDQ0Zlx1MDQzZFx1MDQzMi9pLC9eXHUw''@;'; + put 'put ''NDQ0XHUwNDM1XHUwNDMyL2ksL15cdTA0M2NcdTA0MzBcdTA0NDAvaSwvXlx1MDQzMFx1MDQzZlx1MDQ0MC9pLC9eXHUwNDNjXHUwNDMwW1x1MDQzOVx1MDQ0Zl0vaSwvXlx1MDQzOFx1MDQ0ZVx1MDQzZC9pLC9eXHUwNDM4XHUwNDRlXHUwNDNiL2ksL15cdTA0MzBcdTA0MzJcdTA0MzMvaSwv''@;'; + put 'put ''Xlx1MDQ0MVx1MDQzNVx1MDQzZC9pLC9eXHUwNDNlXHUwNDNhXHUwNDQyL2ksL15cdTA0M2RcdTA0M2VcdTA0NGYvaSwvXlx1MDQzNFx1MDQzNVx1MDQzYS9pXTttZS5kZWZpbmVMb2NhbGUoInJ1Iix7bW9udGhzOntmb3JtYXQ6Ilx1MDQ0Zlx1MDQzZFx1MDQzMlx1MDQzMFx1MDQ0MFx1MDQ0''@;'; + put 'put ''Zl9cdTA0NDRcdTA0MzVcdTA0MzJcdTA0NDBcdTA0MzBcdTA0M2JcdTA0NGZfXHUwNDNjXHUwNDMwXHUwNDQwXHUwNDQyXHUwNDMwX1x1MDQzMFx1MDQzZlx1MDQ0MFx1MDQzNVx1MDQzYlx1MDQ0Zl9cdTA0M2NcdTA0MzBcdTA0NGZfXHUwNDM4XHUwNDRlXHUwNDNkXHUwNDRmX1x1MDQzOFx1''@;'; + put 'put ''MDQ0ZVx1MDQzYlx1MDQ0Zl9cdTA0MzBcdTA0MzJcdTA0MzNcdTA0NDNcdTA0NDFcdTA0NDJcdTA0MzBfXHUwNDQxXHUwNDM1XHUwNDNkXHUwNDQyXHUwNDRmXHUwNDMxXHUwNDQwXHUwNDRmX1x1MDQzZVx1MDQzYVx1MDQ0Mlx1MDQ0Zlx1MDQzMVx1MDQ0MFx1MDQ0Zl9cdTA0M2RcdTA0M2Vc''@;'; + put 'put ''dTA0NGZcdTA0MzFcdTA0NDBcdTA0NGZfXHUwNDM0XHUwNDM1XHUwNDNhXHUwNDMwXHUwNDMxXHUwNDQwXHUwNDRmIi5zcGxpdCgiXyIpLHN0YW5kYWxvbmU6Ilx1MDQ0Zlx1MDQzZFx1MDQzMlx1MDQzMFx1MDQ0MFx1MDQ0Y19cdTA0NDRcdTA0MzVcdTA0MzJcdTA0NDBcdTA0MzBcdTA0M2Jc''@;'; + put 'put ''dTA0NGNfXHUwNDNjXHUwNDMwXHUwNDQwXHUwNDQyX1x1MDQzMFx1MDQzZlx1MDQ0MFx1MDQzNVx1MDQzYlx1MDQ0Y19cdTA0M2NcdTA0MzBcdTA0MzlfXHUwNDM4XHUwNDRlXHUwNDNkXHUwNDRjX1x1MDQzOFx1MDQ0ZVx1MDQzYlx1MDQ0Y19cdTA0MzBcdTA0MzJcdTA0MzNcdTA0NDNcdTA0''@;'; + put 'put ''NDFcdTA0NDJfXHUwNDQxXHUwNDM1XHUwNDNkXHUwNDQyXHUwNDRmXHUwNDMxXHUwNDQwXHUwNDRjX1x1MDQzZVx1MDQzYVx1MDQ0Mlx1MDQ0Zlx1MDQzMVx1MDQ0MFx1MDQ0Y19cdTA0M2RcdTA0M2VcdTA0NGZcdTA0MzFcdTA0NDBcdTA0NGNfXHUwNDM0XHUwNDM1XHUwNDNhXHUwNDMwXHUw''@;'; + put 'put ''NDMxXHUwNDQwXHUwNDRjIi5zcGxpdCgiXyIpfSxtb250aHNTaG9ydDp7Zm9ybWF0OiJcdTA0NGZcdTA0M2RcdTA0MzIuX1x1MDQ0NFx1MDQzNVx1MDQzMlx1MDQ0MC5fXHUwNDNjXHUwNDMwXHUwNDQwLl9cdTA0MzBcdTA0M2ZcdTA0NDAuX1x1MDQzY1x1MDQzMFx1MDQ0Zl9cdTA0MzhcdTA0''@;'; + put 'put ''NGVcdTA0M2RcdTA0NGZfXHUwNDM4XHUwNDRlXHUwNDNiXHUwNDRmX1x1MDQzMFx1MDQzMlx1MDQzMy5fXHUwNDQxXHUwNDM1XHUwNDNkXHUwNDQyLl9cdTA0M2VcdTA0M2FcdTA0NDIuX1x1MDQzZFx1MDQzZVx1MDQ0Zlx1MDQzMS5fXHUwNDM0XHUwNDM1XHUwNDNhLiIuc3BsaXQoIl8iKSxz''@;'; + put 'put ''dGFuZGFsb25lOiJcdTA0NGZcdTA0M2RcdTA0MzIuX1x1MDQ0NFx1MDQzNVx1MDQzMlx1MDQ0MC5fXHUwNDNjXHUwNDMwXHUwNDQwXHUwNDQyX1x1MDQzMFx1MDQzZlx1MDQ0MC5fXHUwNDNjXHUwNDMwXHUwNDM5X1x1MDQzOFx1MDQ0ZVx1MDQzZFx1MDQ0Y19cdTA0MzhcdTA0NGVcdTA0M2Jc''@;'; + put 'put ''dTA0NGNfXHUwNDMwXHUwNDMyXHUwNDMzLl9cdTA0NDFcdTA0MzVcdTA0M2RcdTA0NDIuX1x1MDQzZVx1MDQzYVx1MDQ0Mi5fXHUwNDNkXHUwNDNlXHUwNDRmXHUwNDMxLl9cdTA0MzRcdTA0MzVcdTA0M2EuIi5zcGxpdCgiXyIpfSx3ZWVrZGF5czp7c3RhbmRhbG9uZToiXHUwNDMyXHUwNDNl''@;'; + put 'put ''XHUwNDQxXHUwNDNhXHUwNDQwXHUwNDM1XHUwNDQxXHUwNDM1XHUwNDNkXHUwNDRjXHUwNDM1X1x1MDQzZlx1MDQzZVx1MDQzZFx1MDQzNVx1MDQzNFx1MDQzNVx1MDQzYlx1MDQ0Y1x1MDQzZFx1MDQzOFx1MDQzYV9cdTA0MzJcdTA0NDJcdTA0M2VcdTA0NDBcdTA0M2RcdTA0MzhcdTA0M2Ff''@;'; + put 'put ''XHUwNDQxXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDMwX1x1MDQ0N1x1MDQzNVx1MDQ0Mlx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQzM19cdTA0M2ZcdTA0NGZcdTA0NDJcdTA0M2RcdTA0MzhcdTA0NDZcdTA0MzBfXHUwNDQxXHUwNDQzXHUwNDMxXHUwNDMxXHUwNDNlXHUwNDQyXHUwNDMwIi5zcGxp''@;'; + put 'put ''dCgiXyIpLGZvcm1hdDoiXHUwNDMyXHUwNDNlXHUwNDQxXHUwNDNhXHUwNDQwXHUwNDM1XHUwNDQxXHUwNDM1XHUwNDNkXHUwNDRjXHUwNDM1X1x1MDQzZlx1MDQzZVx1MDQzZFx1MDQzNVx1MDQzNFx1MDQzNVx1MDQzYlx1MDQ0Y1x1MDQzZFx1MDQzOFx1MDQzYV9cdTA0MzJcdTA0NDJcdTA0''@;'; + put 'put ''M2VcdTA0NDBcdTA0M2RcdTA0MzhcdTA0M2FfXHUwNDQxXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDQzX1x1MDQ0N1x1MDQzNVx1MDQ0Mlx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQzM19cdTA0M2ZcdTA0NGZcdTA0NDJcdTA0M2RcdTA0MzhcdTA0NDZcdTA0NDNfXHUwNDQxXHUwNDQzXHUwNDMxXHUw''@;'; + put 'put ''NDMxXHUwNDNlXHUwNDQyXHUwNDQzIi5zcGxpdCgiXyIpLGlzRm9ybWF0Oi9cWyA/W1x1MDQxMlx1MDQzMl0gPyg/Olx1MDQzZlx1MDQ0MFx1MDQzZVx1MDQ0OFx1MDQzYlx1MDQ0M1x1MDQ0ZXxcdTA0NDFcdTA0M2JcdTA0MzVcdTA0MzRcdTA0NDNcdTA0NGVcdTA0NDlcdTA0NDNcdTA0NGV8''@;'; + put 'put ''XHUwNDRkXHUwNDQyXHUwNDQzKT8gP10gP2RkZGQvfSx3ZWVrZGF5c1Nob3J0OiJcdTA0MzJcdTA0NDFfXHUwNDNmXHUwNDNkX1x1MDQzMlx1MDQ0Ml9cdTA0NDFcdTA0NDBfXHUwNDQ3XHUwNDQyX1x1MDQzZlx1MDQ0Ml9cdTA0NDFcdTA0MzEiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46Ilx1''@;'; + put 'put ''MDQzMlx1MDQ0MV9cdTA0M2ZcdTA0M2RfXHUwNDMyXHUwNDQyX1x1MDQ0MVx1MDQ0MF9cdTA0NDdcdTA0NDJfXHUwNDNmXHUwNDQyX1x1MDQ0MVx1MDQzMSIuc3BsaXQoIl8iKSxtb250aHNQYXJzZTpNZSxsb25nTW9udGhzUGFyc2U6TWUsc2hvcnRNb250aHNQYXJzZTpNZSxtb250aHNSZWdl''@;'; + put 'put ''eDovXihcdTA0NGZcdTA0M2RcdTA0MzJcdTA0MzBcdTA0NDBbXHUwNDRjXHUwNDRmXXxcdTA0NGZcdTA0M2RcdTA0MzJcLj98XHUwNDQ0XHUwNDM1XHUwNDMyXHUwNDQwXHUwNDMwXHUwNDNiW1x1MDQ0Y1x1MDQ0Zl18XHUwNDQ0XHUwNDM1XHUwNDMyXHUwNDQwP1wuP3xcdTA0M2NcdTA0MzBc''@;'; + put 'put ''dTA0NDBcdTA0NDJcdTA0MzA/fFx1MDQzY1x1MDQzMFx1MDQ0MFwuP3xcdTA0MzBcdTA0M2ZcdTA0NDBcdTA0MzVcdTA0M2JbXHUwNDRjXHUwNDRmXXxcdTA0MzBcdTA0M2ZcdTA0NDBcLj98XHUwNDNjXHUwNDMwW1x1MDQzOVx1MDQ0Zl18XHUwNDM4XHUwNDRlXHUwNDNkW1x1MDQ0Y1x1MDQ0''@;'; + put 'put ''Zl18XHUwNDM4XHUwNDRlXHUwNDNkXC4/fFx1MDQzOFx1MDQ0ZVx1MDQzYltcdTA0NGNcdTA0NGZdfFx1MDQzOFx1MDQ0ZVx1MDQzYlwuP3xcdTA0MzBcdTA0MzJcdTA0MzNcdTA0NDNcdTA0NDFcdTA0NDJcdTA0MzA/fFx1MDQzMFx1MDQzMlx1MDQzM1wuP3xcdTA0NDFcdTA0MzVcdTA0M2Rc''@;'; + put 'put ''dTA0NDJcdTA0NGZcdTA0MzFcdTA0NDBbXHUwNDRjXHUwNDRmXXxcdTA0NDFcdTA0MzVcdTA0M2RcdTA0NDI/XC4/fFx1MDQzZVx1MDQzYVx1MDQ0Mlx1MDQ0Zlx1MDQzMVx1MDQ0MFtcdTA0NGNcdTA0NGZdfFx1MDQzZVx1MDQzYVx1MDQ0MlwuP3xcdTA0M2RcdTA0M2VcdTA0NGZcdTA0MzFc''@;'; + put 'put ''dTA0NDBbXHUwNDRjXHUwNDRmXXxcdTA0M2RcdTA0M2VcdTA0NGZcdTA0MzE/XC4/fFx1MDQzNFx1MDQzNVx1MDQzYVx1MDQzMFx1MDQzMVx1MDQ0MFtcdTA0NGNcdTA0NGZdfFx1MDQzNFx1MDQzNVx1MDQzYVwuPykvaSxtb250aHNTaG9ydFJlZ2V4Oi9eKFx1MDQ0Zlx1MDQzZFx1MDQzMlx1''@;'; + put 'put ''MDQzMFx1MDQ0MFtcdTA0NGNcdTA0NGZdfFx1MDQ0Zlx1MDQzZFx1MDQzMlwuP3xcdTA0NDRcdTA0MzVcdTA0MzJcdTA0NDBcdTA0MzBcdTA0M2JbXHUwNDRjXHUwNDRmXXxcdTA0NDRcdTA0MzVcdTA0MzJcdTA0NDA/XC4/fFx1MDQzY1x1MDQzMFx1MDQ0MFx1MDQ0Mlx1MDQzMD98XHUwNDNj''@;'; + put 'put ''XHUwNDMwXHUwNDQwXC4/fFx1MDQzMFx1MDQzZlx1MDQ0MFx1MDQzNVx1MDQzYltcdTA0NGNcdTA0NGZdfFx1MDQzMFx1MDQzZlx1MDQ0MFwuP3xcdTA0M2NcdTA0MzBbXHUwNDM5XHUwNDRmXXxcdTA0MzhcdTA0NGVcdTA0M2RbXHUwNDRjXHUwNDRmXXxcdTA0MzhcdTA0NGVcdTA0M2RcLj98''@;'; + put 'put ''XHUwNDM4XHUwNDRlXHUwNDNiW1x1MDQ0Y1x1MDQ0Zl18XHUwNDM4XHUwNDRlXHUwNDNiXC4/fFx1MDQzMFx1MDQzMlx1MDQzM1x1MDQ0M1x1MDQ0MVx1MDQ0Mlx1MDQzMD98XHUwNDMwXHUwNDMyXHUwNDMzXC4/fFx1MDQ0MVx1MDQzNVx1MDQzZFx1MDQ0Mlx1MDQ0Zlx1MDQzMVx1MDQ0MFtc''@;'; + put 'put ''dTA0NGNcdTA0NGZdfFx1MDQ0MVx1MDQzNVx1MDQzZFx1MDQ0Mj9cLj98XHUwNDNlXHUwNDNhXHUwNDQyXHUwNDRmXHUwNDMxXHUwNDQwW1x1MDQ0Y1x1MDQ0Zl18XHUwNDNlXHUwNDNhXHUwNDQyXC4/fFx1MDQzZFx1MDQzZVx1MDQ0Zlx1MDQzMVx1MDQ0MFtcdTA0NGNcdTA0NGZdfFx1MDQz''@;'; + put 'put ''ZFx1MDQzZVx1MDQ0Zlx1MDQzMT9cLj98XHUwNDM0XHUwNDM1XHUwNDNhXHUwNDMwXHUwNDMxXHUwNDQwW1x1MDQ0Y1x1MDQ0Zl18XHUwNDM0XHUwNDM1XHUwNDNhXC4/KS9pLG1vbnRoc1N0cmljdFJlZ2V4Oi9eKFx1MDQ0Zlx1MDQzZFx1MDQzMlx1MDQzMFx1MDQ0MFtcdTA0NGZcdTA0NGNd''@;'; + put 'put ''fFx1MDQ0NFx1MDQzNVx1MDQzMlx1MDQ0MFx1MDQzMFx1MDQzYltcdTA0NGZcdTA0NGNdfFx1MDQzY1x1MDQzMFx1MDQ0MFx1MDQ0Mlx1MDQzMD98XHUwNDMwXHUwNDNmXHUwNDQwXHUwNDM1XHUwNDNiW1x1MDQ0Zlx1MDQ0Y118XHUwNDNjXHUwNDMwW1x1MDQ0Zlx1MDQzOV18XHUwNDM4XHUw''@;'; + put 'put ''NDRlXHUwNDNkW1x1MDQ0Zlx1MDQ0Y118XHUwNDM4XHUwNDRlXHUwNDNiW1x1MDQ0Zlx1MDQ0Y118XHUwNDMwXHUwNDMyXHUwNDMzXHUwNDQzXHUwNDQxXHUwNDQyXHUwNDMwP3xcdTA0NDFcdTA0MzVcdTA0M2RcdTA0NDJcdTA0NGZcdTA0MzFcdTA0NDBbXHUwNDRmXHUwNDRjXXxcdTA0M2Vc''@;'; + put 'put ''dTA0M2FcdTA0NDJcdTA0NGZcdTA0MzFcdTA0NDBbXHUwNDRmXHUwNDRjXXxcdTA0M2RcdTA0M2VcdTA0NGZcdTA0MzFcdTA0NDBbXHUwNDRmXHUwNDRjXXxcdTA0MzRcdTA0MzVcdTA0M2FcdTA0MzBcdTA0MzFcdTA0NDBbXHUwNDRmXHUwNDRjXSkvaSxtb250aHNTaG9ydFN0cmljdFJlZ2V4''@;'; + put 'put ''Oi9eKFx1MDQ0Zlx1MDQzZFx1MDQzMlwufFx1MDQ0NFx1MDQzNVx1MDQzMlx1MDQ0MD9cLnxcdTA0M2NcdTA0MzBcdTA0NDBbXHUwNDQyLl18XHUwNDMwXHUwNDNmXHUwNDQwXC58XHUwNDNjXHUwNDMwW1x1MDQ0Zlx1MDQzOV18XHUwNDM4XHUwNDRlXHUwNDNkW1x1MDQ0Y1x1MDQ0Zi5dfFx1''@;'; + put 'put ''MDQzOFx1MDQ0ZVx1MDQzYltcdTA0NGNcdTA0NGYuXXxcdTA0MzBcdTA0MzJcdTA0MzNcLnxcdTA0NDFcdTA0MzVcdTA0M2RcdTA0NDI/XC58XHUwNDNlXHUwNDNhXHUwNDQyXC58XHUwNDNkXHUwNDNlXHUwNDRmXHUwNDMxP1wufFx1MDQzNFx1MDQzNVx1MDQzYVwuKS9pLGxvbmdEYXRlRm9y''@;'; + put 'put ''bWF0OntMVDoiSDptbSIsTFRTOiJIOm1tOnNzIixMOiJERC5NTS5ZWVlZIixMTDoiRCBNTU1NIFlZWVkgXHUwNDMzLiIsTExMOiJEIE1NTU0gWVlZWSBcdTA0MzMuLCBIOm1tIixMTExMOiJkZGRkLCBEIE1NTU0gWVlZWSBcdTA0MzMuLCBIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltcdTA0''@;'; + put 'put ''MjFcdTA0MzVcdTA0MzNcdTA0M2VcdTA0MzRcdTA0M2RcdTA0NGYsIFx1MDQzMl0gTFQiLG5leHREYXk6IltcdTA0MTdcdTA0MzBcdTA0MzJcdTA0NDJcdTA0NDBcdTA0MzAsIFx1MDQzMl0gTFQiLGxhc3REYXk6IltcdTA0MTJcdTA0NDdcdTA0MzVcdTA0NDBcdTA0MzAsIFx1MDQzMl0gTFQi''@;'; + put 'put ''LG5leHRXZWVrOmZ1bmN0aW9uKFEpe2lmKFEud2VlaygpPT09dGhpcy53ZWVrKCkpcmV0dXJuIDI9PT10aGlzLmRheSgpPyJbXHUwNDEyXHUwNDNlXSBkZGRkLCBbXHUwNDMyXSBMVCI6IltcdTA0MTJdIGRkZGQsIFtcdTA0MzJdIExUIjtzd2l0Y2godGhpcy5kYXkoKSl7Y2FzZSAwOnJldHVy''@;'; + put 'put ''biJbXHUwNDEyIFx1MDQ0MVx1MDQzYlx1MDQzNVx1MDQzNFx1MDQ0M1x1MDQ0ZVx1MDQ0OVx1MDQzNVx1MDQzNV0gZGRkZCwgW1x1MDQzMl0gTFQiO2Nhc2UgMTpjYXNlIDI6Y2FzZSA0OnJldHVybiJbXHUwNDEyIFx1MDQ0MVx1MDQzYlx1MDQzNVx1MDQzNFx1MDQ0M1x1MDQ0ZVx1MDQ0OVx1''@;'; + put 'put ''MDQzOFx1MDQzOV0gZGRkZCwgW1x1MDQzMl0gTFQiO2Nhc2UgMzpjYXNlIDU6Y2FzZSA2OnJldHVybiJbXHUwNDEyIFx1MDQ0MVx1MDQzYlx1MDQzNVx1MDQzNFx1MDQ0M1x1MDQ0ZVx1MDQ0OVx1MDQ0M1x1MDQ0ZV0gZGRkZCwgW1x1MDQzMl0gTFQifX0sbGFzdFdlZWs6ZnVuY3Rpb24oUSl7''@;'; + put 'put ''aWYoUS53ZWVrKCk9PT10aGlzLndlZWsoKSlyZXR1cm4gMj09PXRoaXMuZGF5KCk/IltcdTA0MTJcdTA0M2VdIGRkZGQsIFtcdTA0MzJdIExUIjoiW1x1MDQxMl0gZGRkZCwgW1x1MDQzMl0gTFQiO3N3aXRjaCh0aGlzLmRheSgpKXtjYXNlIDA6cmV0dXJuIltcdTA0MTIgXHUwNDNmXHUwNDQw''@;'; + put 'put ''XHUwNDNlXHUwNDQ4XHUwNDNiXHUwNDNlXHUwNDM1XSBkZGRkLCBbXHUwNDMyXSBMVCI7Y2FzZSAxOmNhc2UgMjpjYXNlIDQ6cmV0dXJuIltcdTA0MTIgXHUwNDNmXHUwNDQwXHUwNDNlXHUwNDQ4XHUwNDNiXHUwNDRiXHUwNDM5XSBkZGRkLCBbXHUwNDMyXSBMVCI7Y2FzZSAzOmNhc2UgNTpj''@;'; + put 'put ''YXNlIDY6cmV0dXJuIltcdTA0MTIgXHUwNDNmXHUwNDQwXHUwNDNlXHUwNDQ4XHUwNDNiXHUwNDQzXHUwNDRlXSBkZGRkLCBbXHUwNDMyXSBMVCJ9fSxzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJcdTA0NDdcdTA0MzVcdTA0NDBcdTA0MzVcdTA0MzcgJXMiLHBhc3Q6IiVz''@;'; + put 'put ''IFx1MDQzZFx1MDQzMFx1MDQzN1x1MDQzMFx1MDQzNCIsczoiXHUwNDNkXHUwNDM1XHUwNDQxXHUwNDNhXHUwNDNlXHUwNDNiXHUwNDRjXHUwNDNhXHUwNDNlIFx1MDQ0MVx1MDQzNVx1MDQzYVx1MDQ0M1x1MDQzZFx1MDQzNCIsc3M6RSxtOkUsbW06RSxoOiJcdTA0NDdcdTA0MzBcdTA0NDEi''@;'; + put 'put ''LGhoOkUsZDoiXHUwNDM0XHUwNDM1XHUwNDNkXHUwNDRjIixkZDpFLHc6Ilx1MDQzZFx1MDQzNVx1MDQzNFx1MDQzNVx1MDQzYlx1MDQ0ZiIsd3c6RSxNOiJcdTA0M2NcdTA0MzVcdTA0NDFcdTA0NGZcdTA0NDYiLE1NOkUseToiXHUwNDMzXHUwNDNlXHUwNDM0Iix5eTpFfSxtZXJpZGllbVBh''@;'; + put 'put ''cnNlOi9cdTA0M2RcdTA0M2VcdTA0NDdcdTA0Mzh8XHUwNDQzXHUwNDQyXHUwNDQwXHUwNDMwfFx1MDQzNFx1MDQzZFx1MDQ0ZnxcdTA0MzJcdTA0MzVcdTA0NDdcdTA0MzVcdTA0NDBcdTA0MzAvaSxpc1BNOmZ1bmN0aW9uKFEpe3JldHVybi9eKFx1MDQzNFx1MDQzZFx1MDQ0ZnxcdTA0MzJc''@;'; + put 'put ''dTA0MzVcdTA0NDdcdTA0MzVcdTA0NDBcdTA0MzApJC8udGVzdChRKX0sbWVyaWRpZW06ZnVuY3Rpb24oUSxaLGllKXtyZXR1cm4gUTw0PyJcdTA0M2RcdTA0M2VcdTA0NDdcdTA0MzgiOlE8MTI/Ilx1MDQ0M1x1MDQ0Mlx1MDQ0MFx1MDQzMCI6UTwxNz8iXHUwNDM0XHUwNDNkXHUwNDRmIjoi''@;'; + put 'put ''XHUwNDMyXHUwNDM1XHUwNDQ3XHUwNDM1XHUwNDQwXHUwNDMwIn0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfS0oXHUwNDM5fFx1MDQzM1x1MDQzZXxcdTA0NGYpLyxvcmRpbmFsOmZ1bmN0aW9uKFEsWil7c3dpdGNoKFope2Nhc2UiTSI6Y2FzZSJkIjpjYXNlIkRERCI6cmV0dXJu''@;'; + put 'put ''IFErIi1cdTA0MzkiO2Nhc2UiRCI6cmV0dXJuIFErIi1cdTA0MzNcdTA0M2UiO2Nhc2UidyI6Y2FzZSJXIjpyZXR1cm4gUSsiLVx1MDQ0ZiI7ZGVmYXVsdDpyZXR1cm4gUX19LHdlZWs6e2RvdzoxLGRveTo0fX0pfShMKDE1NDM5KSl9LDMyNTI1OmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlv''@;'; + put 'put ''bihtZSl7InVzZSBzdHJpY3QiO3ZhciBCPVsiXHUwNjJjXHUwNjQ2XHUwNjQ4XHUwNjMxXHUwNjRhIiwiXHUwNjQxXHUwNjRhXHUwNjI4XHUwNjMxXHUwNjQ4XHUwNjMxXHUwNjRhIiwiXHUwNjQ1XHUwNjI3XHUwNjMxXHUwNjg2IiwiXHUwNjI3XHUwNjdlXHUwNjMxXHUwNjRhXHUwNjQ0Iiwi''@;'; + put 'put ''XHUwNjQ1XHUwNjI2XHUwNjRhIiwiXHUwNjJjXHUwNjQ4XHUwNjQ2IiwiXHUwNjJjXHUwNjQ4XHUwNjQ0XHUwNjI3XHUwNjIxXHUwNjUwIiwiXHUwNjIyXHUwNmFmXHUwNjMzXHUwNjdkIiwiXHUwNjMzXHUwNjRhXHUwNjdlXHUwNjdkXHUwNjQ1XHUwNjI4XHUwNjMxIiwiXHUwNjIyXHUwNmFh''@;'; + put 'put ''XHUwNjdkXHUwNjQ4XHUwNjI4XHUwNjMxIiwiXHUwNjQ2XHUwNjQ4XHUwNjQ1XHUwNjI4XHUwNjMxIiwiXHUwNjhhXHUwNjMzXHUwNjQ1XHUwNjI4XHUwNjMxIl0sRT1bIlx1MDYyMlx1MDY4Nlx1MDYzMSIsIlx1MDYzM1x1MDY0OFx1MDY0NVx1MDYzMSIsIlx1MDYyN1x1MDZiMVx1MDYyN1x1''@;'; + put 'put ''MDYzMVx1MDY0OCIsIlx1MDYyN1x1MDYzMVx1MDYyOFx1MDYzOSIsIlx1MDYyZVx1MDY0NVx1MDY0YVx1MDYzMyIsIlx1MDYyY1x1MDY0NVx1MDYzOSIsIlx1MDY4N1x1MDY0Nlx1MDY4N1x1MDYzMSJdO21lLmRlZmluZUxvY2FsZSgic2QiLHttb250aHM6Qixtb250aHNTaG9ydDpCLHdlZWtk''@;'; + put 'put ''YXlzOkUsd2Vla2RheXNTaG9ydDpFLHdlZWtkYXlzTWluOkUsbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoiREQvTU0vWVlZWSIsTEw6IkQgTU1NTSBZWVlZIixMTEw6IkQgTU1NTSBZWVlZIEhIOm1tIixMTExMOiJkZGRkXHUwNjBjIEQgTU1NTSBZWVlZIEhI''@;'; + put 'put ''Om1tIn0sbWVyaWRpZW1QYXJzZTovXHUwNjM1XHUwNjI4XHUwNjJkfFx1MDYzNFx1MDYyN1x1MDY0NS8saXNQTTpmdW5jdGlvbihVKXtyZXR1cm4iXHUwNjM0XHUwNjI3XHUwNjQ1Ij09PVV9LG1lcmlkaWVtOmZ1bmN0aW9uKFUsUSxaKXtyZXR1cm4gVTwxMj8iXHUwNjM1XHUwNjI4XHUwNjJk''@;'; + put 'put ''IjoiXHUwNjM0XHUwNjI3XHUwNjQ1In0sY2FsZW5kYXI6e3NhbWVEYXk6IltcdTA2MjdcdTA2ODRdIExUIixuZXh0RGF5OiJbXHUwNjMzXHUwNjgwXHUwNjI3XHUwNmJiXHUwNjRhXSBMVCIsbmV4dFdlZWs6ImRkZGQgW1x1MDYyN1x1MDZiM1x1MDY0YVx1MDY0NiBcdTA2NDdcdTA2NDFcdTA2''@;'; + put 'put ''MmFcdTA2NGEgXHUwNjJhXHUwNjRhXSBMVCIsbGFzdERheToiW1x1MDZhYVx1MDYyN1x1MDY0NFx1MDY0N1x1MDY0N10gTFQiLGxhc3RXZWVrOiJbXHUwNmFmXHUwNjMyXHUwNjMxXHUwNjRhXHUwNjQ0IFx1MDY0N1x1MDY0MVx1MDYyYVx1MDY0YV0gZGRkZCBbXHUwNjJhXHUwNjRhXSBMVCIs''@;'; + put 'put ''c2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiJXMgXHUwNjdlXHUwNjQ4XHUwNjIxIixwYXN0OiIlcyBcdTA2MjdcdTA2YjMiLHM6Ilx1MDY4Nlx1MDY0Nlx1MDYyZiBcdTA2MzNcdTA2NGFcdTA2YWFcdTA2NDZcdTA2OGEiLHNzOiIlZCBcdTA2MzNcdTA2NGFcdTA2YWFcdTA2''@;'; + put 'put ''NDZcdTA2OGEiLG06Ilx1MDY0N1x1MDZhYSBcdTA2NDVcdTA2NDZcdTA2N2QiLG1tOiIlZCBcdTA2NDVcdTA2NDZcdTA2N2QiLGg6Ilx1MDY0N1x1MDZhYSBcdTA2YWFcdTA2NDRcdTA2MjdcdTA2YWEiLGhoOiIlZCBcdTA2YWFcdTA2NDRcdTA2MjdcdTA2YWEiLGQ6Ilx1MDY0N1x1MDZhYSBc''@;'; + put 'put ''dTA2OGZcdTA2NGFcdTA2NDZcdTA2NDdcdTA2NDYiLGRkOiIlZCBcdTA2OGZcdTA2NGFcdTA2NDZcdTA2NDdcdTA2NDYiLE06Ilx1MDY0N1x1MDZhYSBcdTA2NDVcdTA2NDdcdTA2NGFcdTA2NDZcdTA2NDgiLE1NOiIlZCBcdTA2NDVcdTA2NDdcdTA2NGFcdTA2NDZcdTA2MjciLHk6Ilx1MDY0''@;'; + put 'put ''N1x1MDZhYSBcdTA2MzNcdTA2MjdcdTA2NDQiLHl5OiIlZCBcdTA2MzNcdTA2MjdcdTA2NDQifSxwcmVwYXJzZTpmdW5jdGlvbihVKXtyZXR1cm4gVS5yZXBsYWNlKC9cdTA2MGMvZywiLCIpfSxwb3N0Zm9ybWF0OmZ1bmN0aW9uKFUpe3JldHVybiBVLnJlcGxhY2UoLywvZywiXHUwNjBjIil9''@;'; + put 'put ''LHdlZWs6e2RvdzoxLGRveTo0fX0pfShMKDE1NDM5KSl9LDU5ODkzOmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlvbihtZSl7InVzZSBzdHJpY3QiO21lLmRlZmluZUxvY2FsZSgic2UiLHttb250aHM6Im9cdTAxMTFcdTAxMTFhamFnZW1ceGUxbm51X2d1b3Z2YW1ceGUxbm51X25qdWtcdTAx''@;'; + put 'put ''MGRhbVx4ZTFubnVfY3VvXHUwMTRib21ceGUxbm51X21pZXNzZW1ceGUxbm51X2dlYXNzZW1ceGUxbm51X3N1b2lkbmVtXHhlMW5udV9ib3JnZW1ceGUxbm51X1x1MDEwZGFrXHUwMTBkYW1ceGUxbm51X2dvbGdnb3RtXHhlMW5udV9za1x4ZTFibWFtXHhlMW5udV9qdW92bGFtXHhlMW5udSIu''@;'; + put 'put ''c3BsaXQoIl8iKSxtb250aHNTaG9ydDoib1x1MDExMVx1MDExMWpfZ3Vvdl9uanVrX2N1b19taWVzX2dlYXNfc3VvaV9ib3JnX1x1MDEwZGFrXHUwMTBkX2dvbGdfc2tceGUxYl9qdW92Ii5zcGxpdCgiXyIpLHdlZWtkYXlzOiJzb3RuYWJlYWl2aV92dW9zc1x4ZTFyZ2FfbWFcdTAxNGJcdTAx''@;'; + put 'put ''NGJlYlx4ZTFyZ2FfZ2Fza2F2YWhra3VfZHVvcmFzdGF0X2JlYXJqYWRhdF9sXHhlMXZ2YXJkYXQiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoic290bl92dW9zX21hXHUwMTRiX2dhc2tfZHVvcl9iZWFyX2xceGUxdiIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoic192X21fZ19kX2JfTCIu''@;'; + put 'put ''c3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJERC5NTS5ZWVlZIixMTDoiTU1NTSBELiBbYi5dIFlZWVkiLExMTDoiTU1NTSBELiBbYi5dIFlZWVkgW3RpLl0gSEg6bW0iLExMTEw6ImRkZGQsIE1NTU0gRC4gW2IuXSBZWVlZIFt0aS5dIEhI''@;'; + put 'put ''Om1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltvdG5lIHRpXSBMVCIsbmV4dERheToiW2lodHRpbiB0aV0gTFQiLG5leHRXZWVrOiJkZGRkIFt0aV0gTFQiLGxhc3REYXk6Iltpa3RlIHRpXSBMVCIsbGFzdFdlZWs6IltvdmRkaXRdIGRkZGQgW3RpXSBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2''@;'; + put 'put ''ZVRpbWU6e2Z1dHVyZToiJXMgZ2VhXHUwMTdlZXMiLHBhc3Q6Im1hXHUwMTRiaXQgJXMiLHM6Im1vYWRkZSBzZWt1bmRkYXQiLHNzOiIlZCBzZWt1bmRkYXQiLG06Im9rdGEgbWludWh0YSIsbW06IiVkIG1pbnVodGF0IixoOiJva3RhIGRpaW1tdSIsaGg6IiVkIGRpaW1tdXQiLGQ6Im9rdGEg''@;'; + put 'put ''YmVhaXZpIixkZDoiJWQgYmVhaXZ2aXQiLE06Im9rdGEgbVx4ZTFubnUiLE1NOiIlZCBtXHhlMW51dCIseToib2t0YSBqYWhraSIseXk6IiVkIGphZ2l0In0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfVwuLyxvcmRpbmFsOiIlZC4iLHdlZWs6e2RvdzoxLGRveTo0fX0pfShMKDE1''@;'; + put 'put ''NDM5KSl9LDMzMTIzOmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlvbihtZSl7InVzZSBzdHJpY3QiO21lLmRlZmluZUxvY2FsZSgic2kiLHttb250aHM6Ilx1MGRhMlx1MGRiMVx1MGRjMFx1MGRjZlx1MGRiYlx1MGRkMl9cdTBkYjRcdTBkZDlcdTBkYjZcdTBkYmJcdTBkYzBcdTBkY2ZcdTBk''@;'; + put 'put ''YmJcdTBkZDJfXHUwZGI4XHUwZGNmXHUwZGJiXHUwZGNhXHUwZGFkXHUwZGQ0X1x1MGQ4NVx1MGRiNFx1MGRjYVx1MjAwZFx1MGRiYlx1MGRkYVx1MGRiZFx1MGRjYV9cdTBkYjhcdTBkZDBcdTBkYmFcdTBkZDJfXHUwZGEyXHUwZGQ2XHUwZGIxXHUwZGQyX1x1MGRhMlx1MGRkNlx1MGRiZFx1''@;'; + put 'put ''MGRkMl9cdTBkODVcdTBkOWNcdTBkZGRcdTBkYzNcdTBkY2FcdTBkYWRcdTBkZDRfXHUwZGMzXHUwZGQwXHUwZGI0XHUwZGNhXHUwZGFkXHUwZGQwXHUwZGI4XHUwZGNhXHUwZGI2XHUwZGJiXHUwZGNhX1x1MGQ5NFx1MGQ5YVx1MGRjYVx1MGRhZFx1MGRkZFx1MGRiNlx1MGRiYlx1MGRjYV9c''@;'; + put 'put ''dTBkYjFcdTBkZGNcdTBkYzBcdTBkZDBcdTBkYjhcdTBkY2FcdTBkYjZcdTBkYmJcdTBkY2FfXHUwZGFmXHUwZGQ5XHUwZGMzXHUwZGQwXHUwZGI4XHUwZGNhXHUwZGI2XHUwZGJiXHUwZGNhIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJcdTBkYTJcdTBkYjFfXHUwZGI0XHUwZGQ5XHUwZGI2''@;'; + put 'put ''X1x1MGRiOFx1MGRjZlx1MGRiYlx1MGRjYV9cdTBkODVcdTBkYjRcdTBkY2FfXHUwZGI4XHUwZGQwXHUwZGJhXHUwZGQyX1x1MGRhMlx1MGRkNlx1MGRiMVx1MGRkMl9cdTBkYTJcdTBkZDZcdTBkYmRcdTBkZDJfXHUwZDg1XHUwZDljXHUwZGRkX1x1MGRjM1x1MGRkMFx1MGRiNFx1MGRjYV9c''@;'; + put 'put ''dTBkOTRcdTBkOWFcdTBkY2FfXHUwZGIxXHUwZGRjXHUwZGMwXHUwZGQwX1x1MGRhZlx1MGRkOVx1MGRjM1x1MGRkMCIuc3BsaXQoIl8iKSx3ZWVrZGF5czoiXHUwZDg5XHUwZGJiXHUwZGQyXHUwZGFmXHUwZGNmX1x1MGRjM1x1MGRiM1x1MGRkNFx1MGRhZlx1MGRjZl9cdTBkODVcdTBkOWZc''@;'; + put 'put ''dTBkYzRcdTBkYmJcdTBkZDRcdTBkYzBcdTBkY2ZcdTBkYWZcdTBkY2ZfXHUwZGI2XHUwZGFmXHUwZGNmXHUwZGFmXHUwZGNmX1x1MGRiNlx1MGRjYVx1MjAwZFx1MGRiYlx1MGRjNFx1MGRjM1x1MGRjYVx1MGRiNFx1MGRhZFx1MGRkMlx1MGRiMVx1MGRjYVx1MGRhZlx1MGRjZl9cdTBkYzNc''@;'; + put 'put ''dTBkZDJcdTBkOWFcdTBkZDRcdTBkYmJcdTBkY2ZcdTBkYWZcdTBkY2ZfXHUwZGMzXHUwZGQ5XHUwZGIxXHUwZGMzXHUwZGQ0XHUwZGJiXHUwZGNmXHUwZGFmXHUwZGNmIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6Ilx1MGQ4OVx1MGRiYlx1MGRkMl9cdTBkYzNcdTBkYjNcdTBkZDRfXHUw''@;'; + put 'put ''ZDg1XHUwZDlmX1x1MGRiNlx1MGRhZlx1MGRjZl9cdTBkYjZcdTBkY2FcdTIwMGRcdTBkYmJcdTBkYzRfXHUwZGMzXHUwZGQyXHUwZDlhXHUwZGQ0X1x1MGRjM1x1MGRkOVx1MGRiMSIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiXHUwZDg5X1x1MGRjM19cdTBkODVfXHUwZGI2X1x1MGRiNlx1''@;'; + put 'put ''MGRjYVx1MjAwZFx1MGRiYl9cdTBkYzNcdTBkZDJfXHUwZGMzXHUwZGQ5Ii5zcGxpdCgiXyIpLHdlZWtkYXlzUGFyc2VFeGFjdDohMCxsb25nRGF0ZUZvcm1hdDp7TFQ6ImEgaDptbSIsTFRTOiJhIGg6bW06c3MiLEw6IllZWVkvTU0vREQiLExMOiJZWVlZIE1NTU0gRCIsTExMOiJZWVlZIE1N''@;'; + put 'put ''TU0gRCwgYSBoOm1tIixMTExMOiJZWVlZIE1NTU0gRCBbXHUwZGMwXHUwZGQwXHUwZGIxXHUwZGQyXSBkZGRkLCBhIGg6bW06c3MifSxjYWxlbmRhcjp7c2FtZURheToiW1x1MGQ4NVx1MGRhZl0gTFRbXHUwZGE3XSIsbmV4dERheToiW1x1MGRjNFx1MGRkOVx1MGRhN10gTFRbXHUwZGE3XSIs''@;'; + put 'put ''bmV4dFdlZWs6ImRkZGQgTFRbXHUwZGE3XSIsbGFzdERheToiW1x1MGQ4YVx1MGRiYVx1MGRkYV0gTFRbXHUwZGE3XSIsbGFzdFdlZWs6IltcdTBkYjRcdTBkYzNcdTBkZDRcdTBkOWNcdTBkZDJcdTBkYmFdIGRkZGQgTFRbXHUwZGE3XSIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1''@;'; + put 'put ''dHVyZToiJXNcdTBkOWFcdTBkZDJcdTBkYjFcdTBkY2EiLHBhc3Q6IiVzXHUwZDlhXHUwZGE3IFx1MGRiNFx1MGRkOVx1MGRiYiIsczoiXHUwZGFkXHUwZGFkXHUwZGNhXHUwZGI0XHUwZGJiIFx1MGQ5YVx1MGRkMlx1MGRjNFx1MGRkMlx1MGRiNFx1MGRiYSIsc3M6Ilx1MGRhZFx1MGRhZFx1''@;'; + put 'put ''MGRjYVx1MGRiNFx1MGRiYiAlZCIsbToiXHUwZGI4XHUwZGQyXHUwZGIxXHUwZGQyXHUwZGFkXHUwZGNhXHUwZGFkXHUwZGQ0XHUwZGMwIixtbToiXHUwZGI4XHUwZGQyXHUwZGIxXHUwZGQyXHUwZGFkXHUwZGNhXHUwZGFkXHUwZGQ0ICVkIixoOiJcdTBkYjRcdTBkZDBcdTBkYmEiLGhoOiJc''@;'; + put 'put ''dTBkYjRcdTBkZDBcdTBkYmEgJWQiLGQ6Ilx1MGRhZlx1MGRkMlx1MGRiMVx1MGRiYSIsZGQ6Ilx1MGRhZlx1MGRkMlx1MGRiMSAlZCIsTToiXHUwZGI4XHUwZGNmXHUwZGMzXHUwZGJhIixNTToiXHUwZGI4XHUwZGNmXHUwZGMzICVkIix5OiJcdTBkYzBcdTBkYzNcdTBkYmIiLHl5OiJcdTBk''@;'; + put 'put ''YzBcdTBkYzNcdTBkYmIgJWQifSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9IFx1MGRjMFx1MGRkMFx1MGRiMVx1MGRkMi8sb3JkaW5hbDpmdW5jdGlvbihFKXtyZXR1cm4gRSsiIFx1MGRjMFx1MGRkMFx1MGRiMVx1MGRkMiJ9LG1lcmlkaWVtUGFyc2U6L1x1MGRiNFx1MGRkOVx1''@;'; + put 'put ''MGRiYiBcdTBkYzBcdTBkYmJcdTBkZDR8XHUwZGI0XHUwZGMzXHUwZGNhIFx1MGRjMFx1MGRiYlx1MGRkNHxcdTBkYjRcdTBkZDkuXHUwZGMwfFx1MGRiNC5cdTBkYzAuLyxpc1BNOmZ1bmN0aW9uKEUpe3JldHVybiJcdTBkYjQuXHUwZGMwLiI9PT1FfHwiXHUwZGI0XHUwZGMzXHUwZGNhIFx1''@;'; + put 'put ''MGRjMFx1MGRiYlx1MGRkNCI9PT1FfSxtZXJpZGllbTpmdW5jdGlvbihFLE1lLFUpe3JldHVybiBFPjExP1U/Ilx1MGRiNC5cdTBkYzAuIjoiXHUwZGI0XHUwZGMzXHUwZGNhIFx1MGRjMFx1MGRiYlx1MGRkNCI6VT8iXHUwZGI0XHUwZGQ5Llx1MGRjMC4iOiJcdTBkYjRcdTBkZDlcdTBkYmIg''@;'; + put 'put ''XHUwZGMwXHUwZGJiXHUwZGQ0In19KX0oTCgxNTQzOSkpfSw1OTYzNTpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0Ijt2YXIgQj0iamFudVx4ZTFyX2ZlYnJ1XHhlMXJfbWFyZWNfYXByXHhlZGxfbVx4ZTFqX2pceGZhbl9qXHhmYWxfYXVndXN0X3NlcHRlbWJl''@;'; + put 'put ''cl9va3RceGYzYmVyX25vdmVtYmVyX2RlY2VtYmVyIi5zcGxpdCgiXyIpLEU9Imphbl9mZWJfbWFyX2Fwcl9tXHhlMWpfalx4ZmFuX2pceGZhbF9hdWdfc2VwX29rdF9ub3ZfZGVjIi5zcGxpdCgiXyIpO2Z1bmN0aW9uIE1lKFope3JldHVybiBaPjEmJlo8NX1mdW5jdGlvbiBVKFosaWUsYWUs''@;'; + put 'put ''WSl7dmFyIFc9WisiICI7c3dpdGNoKGFlKXtjYXNlInMiOnJldHVybiBpZXx8WT8icFx4ZTFyIHNla1x4ZmFuZCI6InBceGUxciBzZWt1bmRhbWkiO2Nhc2Uic3MiOnJldHVybiBpZXx8WT9XKyhNZShaKT8ic2VrdW5keSI6InNla1x4ZmFuZCIpOlcrInNla3VuZGFtaSI7Y2FzZSJtIjpyZXR1''@;'; + put 'put ''cm4gaWU/Im1pblx4ZmF0YSI6WT8ibWluXHhmYXR1IjoibWluXHhmYXRvdSI7Y2FzZSJtbSI6cmV0dXJuIGllfHxZP1crKE1lKFopPyJtaW5ceGZhdHkiOiJtaW5ceGZhdCIpOlcrIm1pblx4ZmF0YW1pIjtjYXNlImgiOnJldHVybiBpZT8iaG9kaW5hIjpZPyJob2RpbnUiOiJob2Rpbm91Ijtj''@;'; + put 'put ''YXNlImhoIjpyZXR1cm4gaWV8fFk/VysoTWUoWik/ImhvZGlueSI6ImhvZFx4ZWRuIik6VysiaG9kaW5hbWkiO2Nhc2UiZCI6cmV0dXJuIGllfHxZPyJkZVx1MDE0OCI6ImRcdTAxNDhvbSI7Y2FzZSJkZCI6cmV0dXJuIGllfHxZP1crKE1lKFopPyJkbmkiOiJkblx4ZWQiKTpXKyJkXHUwMTQ4''@;'; + put 'put ''YW1pIjtjYXNlIk0iOnJldHVybiBpZXx8WT8ibWVzaWFjIjoibWVzaWFjb20iO2Nhc2UiTU0iOnJldHVybiBpZXx8WT9XKyhNZShaKT8ibWVzaWFjZSI6Im1lc2lhY292Iik6VysibWVzaWFjbWkiO2Nhc2UieSI6cmV0dXJuIGllfHxZPyJyb2siOiJyb2tvbSI7Y2FzZSJ5eSI6cmV0dXJuIGll''@;'; + put 'put ''fHxZP1crKE1lKFopPyJyb2t5Ijoicm9rb3YiKTpXKyJyb2ttaSJ9fW1lLmRlZmluZUxvY2FsZSgic2siLHttb250aHM6Qixtb250aHNTaG9ydDpFLHdlZWtkYXlzOiJuZWRlXHUwMTNlYV9wb25kZWxva191dG9yb2tfc3RyZWRhX1x1MDE2MXR2cnRva19waWF0b2tfc29ib3RhIi5zcGxpdCgi''@;'; + put 'put ''XyIpLHdlZWtkYXlzU2hvcnQ6Im5lX3BvX3V0X3N0X1x1MDE2MXRfcGlfc28iLnNwbGl0KCJfIiksd2Vla2RheXNNaW46Im5lX3BvX3V0X3N0X1x1MDE2MXRfcGlfc28iLnNwbGl0KCJfIiksbG9uZ0RhdGVGb3JtYXQ6e0xUOiJIOm1tIixMVFM6Ikg6bW06c3MiLEw6IkRELk1NLllZWVkiLExM''@;'; + put 'put ''OiJELiBNTU1NIFlZWVkiLExMTDoiRC4gTU1NTSBZWVlZIEg6bW0iLExMTEw6ImRkZGQgRC4gTU1NTSBZWVlZIEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW2RuZXMgb10gTFQiLG5leHREYXk6Ilt6YWp0cmEgb10gTFQiLG5leHRXZWVrOmZ1bmN0aW9uKCl7c3dpdGNoKHRoaXMuZGF5KCkp''@;'; + put 'put ''e2Nhc2UgMDpyZXR1cm4iW3YgbmVkZVx1MDEzZXUgb10gTFQiO2Nhc2UgMTpjYXNlIDI6cmV0dXJuIlt2XSBkZGRkIFtvXSBMVCI7Y2FzZSAzOnJldHVybiJbdiBzdHJlZHUgb10gTFQiO2Nhc2UgNDpyZXR1cm4iW3ZvIFx1MDE2MXR2cnRvayBvXSBMVCI7Y2FzZSA1OnJldHVybiJbdiBwaWF0''@;'; + put 'put ''b2sgb10gTFQiO2Nhc2UgNjpyZXR1cm4iW3Ygc29ib3R1IG9dIExUIn19LGxhc3REYXk6Ilt2XHUwMTBkZXJhIG9dIExUIixsYXN0V2VlazpmdW5jdGlvbigpe3N3aXRjaCh0aGlzLmRheSgpKXtjYXNlIDA6cmV0dXJuIlttaW51bFx4ZmEgbmVkZVx1MDEzZXUgb10gTFQiO2Nhc2UgMTpjYXNl''@;'; + put 'put ''IDI6Y2FzZSA0OmNhc2UgNTpyZXR1cm4iW21pbnVsXHhmZF0gZGRkZCBbb10gTFQiO2Nhc2UgMzpyZXR1cm4iW21pbnVsXHhmYSBzdHJlZHUgb10gTFQiO2Nhc2UgNjpyZXR1cm4iW21pbnVsXHhmYSBzb2JvdHUgb10gTFQifX0sc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToi''@;'; + put 'put ''emEgJXMiLHBhc3Q6InByZWQgJXMiLHM6VSxzczpVLG06VSxtbTpVLGg6VSxoaDpVLGQ6VSxkZDpVLE06VSxNTTpVLHk6VSx5eTpVfSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9XC4vLG9yZGluYWw6IiVkLiIsd2Vlazp7ZG93OjEsZG95OjR9fSl9KEwoMTU0MzkpKX0sNzgxMDY6''@;'; + put 'put ''ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gQihNZSxVLFEsWil7dmFyIGllPU1lKyIgIjtzd2l0Y2goUSl7Y2FzZSJzIjpyZXR1cm4gVXx8Wj8ibmVrYWogc2VrdW5kIjoibmVrYWogc2VrdW5kYW1pIjtjYXNlInNzIjpyZXR1cm4gaWUrKDE9''@;'; + put 'put ''PT1NZT9VPyJzZWt1bmRvIjoic2VrdW5kaSI6Mj09PU1lP1V8fFo/InNla3VuZGkiOiJzZWt1bmRhaCI6TWU8NT9VfHxaPyJzZWt1bmRlIjoic2VrdW5kYWgiOiJzZWt1bmQiKTtjYXNlIm0iOnJldHVybiBVPyJlbmEgbWludXRhIjoiZW5vIG1pbnV0byI7Y2FzZSJtbSI6cmV0dXJuIGllKygx''@;'; + put 'put ''PT09TWU/VT8ibWludXRhIjoibWludXRvIjoyPT09TWU/VXx8Wj8ibWludXRpIjoibWludXRhbWEiOk1lPDU/VXx8Wj8ibWludXRlIjoibWludXRhbWkiOlV8fFo/Im1pbnV0IjoibWludXRhbWkiKTtjYXNlImgiOnJldHVybiBVPyJlbmEgdXJhIjoiZW5vIHVybyI7Y2FzZSJoaCI6cmV0dXJu''@;'; + put 'put ''IGllKygxPT09TWU/VT8idXJhIjoidXJvIjoyPT09TWU/VXx8Wj8idXJpIjoidXJhbWEiOk1lPDU/VXx8Wj8idXJlIjoidXJhbWkiOlV8fFo/InVyIjoidXJhbWkiKTtjYXNlImQiOnJldHVybiBVfHxaPyJlbiBkYW4iOiJlbmltIGRuZW0iO2Nhc2UiZGQiOnJldHVybiBpZSsoMT09PU1lP1V8''@;'; + put 'put ''fFo/ImRhbiI6ImRuZW0iOjI9PT1NZT9VfHxaPyJkbmkiOiJkbmV2b21hIjpVfHxaPyJkbmkiOiJkbmV2aSIpO2Nhc2UiTSI6cmV0dXJuIFV8fFo/ImVuIG1lc2VjIjoiZW5pbSBtZXNlY2VtIjtjYXNlIk1NIjpyZXR1cm4gaWUrKDE9PT1NZT9VfHxaPyJtZXNlYyI6Im1lc2VjZW0iOjI9PT1N''@;'; + put 'put ''ZT9VfHxaPyJtZXNlY2EiOiJtZXNlY2VtYSI6TWU8NT9VfHxaPyJtZXNlY2UiOiJtZXNlY2kiOlV8fFo/Im1lc2VjZXYiOiJtZXNlY2kiKTtjYXNlInkiOnJldHVybiBVfHxaPyJlbm8gbGV0byI6ImVuaW0gbGV0b20iO2Nhc2UieXkiOnJldHVybiBpZSsoMT09PU1lP1V8fFo/ImxldG8iOiJs''@;'; + put 'put ''ZXRvbSI6Mj09PU1lP1V8fFo/ImxldGkiOiJsZXRvbWEiOk1lPDU/VXx8Wj8ibGV0YSI6ImxldGkiOlV8fFo/ImxldCI6ImxldGkiKX19bWUuZGVmaW5lTG9jYWxlKCJzbCIse21vbnRoczoiamFudWFyX2ZlYnJ1YXJfbWFyZWNfYXByaWxfbWFqX2p1bmlqX2p1bGlqX2F2Z3VzdF9zZXB0ZW1i''@;'; + put 'put ''ZXJfb2t0b2Jlcl9ub3ZlbWJlcl9kZWNlbWJlciIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiamFuLl9mZWIuX21hci5fYXByLl9tYWouX2p1bi5fanVsLl9hdmcuX3NlcC5fb2t0Ll9ub3YuX2RlYy4iLnNwbGl0KCJfIiksbW9udGhzUGFyc2VFeGFjdDohMCx3ZWVrZGF5czoibmVkZWxqYV9w''@;'; + put 'put ''b25lZGVsamVrX3RvcmVrX3NyZWRhX1x1MDEwZGV0cnRla19wZXRla19zb2JvdGEiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoibmVkLl9wb24uX3Rvci5fc3JlLl9cdTAxMGRldC5fcGV0Ll9zb2IuIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJuZV9wb190b19zcl9cdTAxMGRlX3BlX3Nv''@;'; + put 'put ''Ii5zcGxpdCgiXyIpLHdlZWtkYXlzUGFyc2VFeGFjdDohMCxsb25nRGF0ZUZvcm1hdDp7TFQ6Ikg6bW0iLExUUzoiSDptbTpzcyIsTDoiREQuIE1NLiBZWVlZIixMTDoiRC4gTU1NTSBZWVlZIixMTEw6IkQuIE1NTU0gWVlZWSBIOm1tIixMTExMOiJkZGRkLCBELiBNTU1NIFlZWVkgSDptbSJ9''@;'; + put 'put ''LGNhbGVuZGFyOntzYW1lRGF5OiJbZGFuZXMgb2JdIExUIixuZXh0RGF5OiJbanV0cmkgb2JdIExUIixuZXh0V2VlazpmdW5jdGlvbigpe3N3aXRjaCh0aGlzLmRheSgpKXtjYXNlIDA6cmV0dXJuIlt2XSBbbmVkZWxqb10gW29iXSBMVCI7Y2FzZSAzOnJldHVybiJbdl0gW3NyZWRvXSBbb2Jd''@;'; + put 'put ''IExUIjtjYXNlIDY6cmV0dXJuIlt2XSBbc29ib3RvXSBbb2JdIExUIjtjYXNlIDE6Y2FzZSAyOmNhc2UgNDpjYXNlIDU6cmV0dXJuIlt2XSBkZGRkIFtvYl0gTFQifX0sbGFzdERheToiW3ZcdTAxMGRlcmFqIG9iXSBMVCIsbGFzdFdlZWs6ZnVuY3Rpb24oKXtzd2l0Y2godGhpcy5kYXkoKSl7''@;'; + put 'put ''Y2FzZSAwOnJldHVybiJbcHJlalx1MDE2MW5qb10gW25lZGVsam9dIFtvYl0gTFQiO2Nhc2UgMzpyZXR1cm4iW3ByZWpcdTAxNjFuam9dIFtzcmVkb10gW29iXSBMVCI7Y2FzZSA2OnJldHVybiJbcHJlalx1MDE2MW5qb10gW3NvYm90b10gW29iXSBMVCI7Y2FzZSAxOmNhc2UgMjpjYXNlIDQ6''@;'; + put 'put ''Y2FzZSA1OnJldHVybiJbcHJlalx1MDE2MW5qaV0gZGRkZCBbb2JdIExUIn19LHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6Ilx1MDEwZGV6ICVzIixwYXN0OiJwcmVkICVzIixzOkIsc3M6QixtOkIsbW06QixoOkIsaGg6QixkOkIsZGQ6QixNOkIsTU06Qix5OkIseXk6Qn0s''@;'; + put 'put ''ZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfVwuLyxvcmRpbmFsOiIlZC4iLHdlZWs6e2RvdzoxLGRveTo3fX0pfShMKDE1NDM5KSl9LDg4Nzk5OmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlvbihtZSl7InVzZSBzdHJpY3QiO21lLmRlZmluZUxvY2FsZSgic3EiLHttb250aHM6Ikph''@;'; + put 'put ''bmFyX1Noa3VydF9NYXJzX1ByaWxsX01hal9RZXJzaG9yX0tvcnJpa19HdXNodF9TaHRhdG9yX1RldG9yX05ceGVibnRvcl9EaGpldG9yIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJKYW5fU2hrX01hcl9QcmlfTWFqX1Flcl9Lb3JfR3VzX1NodF9UZXRfTlx4ZWJuX0RoaiIuc3BsaXQoIl8i''@;'; + put 'put ''KSx3ZWVrZGF5czoiRSBEaWVsX0UgSFx4ZWJuXHhlYl9FIE1hcnRceGViX0UgTVx4ZWJya3VyXHhlYl9FIEVuanRlX0UgUHJlbXRlX0UgU2h0dW5ceGViIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6IkRpZV9IXHhlYm5fTWFyX01ceGVicl9FbmpfUHJlX1NodCIuc3BsaXQoIl8iKSx3ZWVr''@;'; + put 'put ''ZGF5c01pbjoiRF9IX01hX01ceGViX0VfUF9TaCIuc3BsaXQoIl8iKSx3ZWVrZGF5c1BhcnNlRXhhY3Q6ITAsbWVyaWRpZW1QYXJzZTovUER8TUQvLGlzUE06ZnVuY3Rpb24oRSl7cmV0dXJuIk0iPT09RS5jaGFyQXQoMCl9LG1lcmlkaWVtOmZ1bmN0aW9uKEUsTWUsVSl7cmV0dXJuIEU8MTI/''@;'; + put 'put ''IlBEIjoiTUQifSxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJERC9NTS9ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVkgSEg6bW0iLExMTEw6ImRkZGQsIEQgTU1NTSBZWVlZIEhIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltTb3Qg''@;'; + put 'put ''blx4ZWJdIExUIixuZXh0RGF5OiJbTmVzXHhlYnIgblx4ZWJdIExUIixuZXh0V2VlazoiZGRkZCBbblx4ZWJdIExUIixsYXN0RGF5OiJbRGplIG5ceGViXSBMVCIsbGFzdFdlZWs6ImRkZGQgW2Uga2FsdWFyIG5ceGViXSBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToi''@;'; + put 'put ''blx4ZWIgJXMiLHBhc3Q6IiVzIG1ceGViIHBhclx4ZWIiLHM6ImRpc2Egc2Vrb25kYSIsc3M6IiVkIHNla29uZGEiLG06Im5qXHhlYiBtaW51dFx4ZWIiLG1tOiIlZCBtaW51dGEiLGg6Im5qXHhlYiBvclx4ZWIiLGhoOiIlZCBvclx4ZWIiLGQ6Im5qXHhlYiBkaXRceGViIixkZDoiJWQgZGl0''@;'; + put 'put ''XHhlYiIsTToibmpceGViIG11YWoiLE1NOiIlZCBtdWFqIix5OiJualx4ZWIgdml0Iix5eToiJWQgdml0ZSJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn1cLi8sb3JkaW5hbDoiJWQuIix3ZWVrOntkb3c6MSxkb3k6NH19KX0oTCgxNTQzOSkpfSw1Mjg3MjpmdW5jdGlvbihYZSxK''@;'; + put 'put ''ZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0Ijt2YXIgQj17d29yZHM6e3NzOlsiXHUwNDQxXHUwNDM1XHUwNDNhXHUwNDQzXHUwNDNkXHUwNDM0XHUwNDMwIiwiXHUwNDQxXHUwNDM1XHUwNDNhXHUwNDQzXHUwNDNkXHUwNDM0XHUwNDM1IiwiXHUwNDQxXHUwNDM1XHUwNDNhXHUwNDQz''@;'; + put 'put ''XHUwNDNkXHUwNDM0XHUwNDM4Il0sbTpbIlx1MDQ1OFx1MDQzNVx1MDQzNFx1MDQzMFx1MDQzZCBcdTA0M2NcdTA0MzhcdTA0M2RcdTA0NDNcdTA0NDIiLCJcdTA0NThcdTA0MzVcdTA0MzRcdTA0M2RcdTA0M2VcdTA0MzMgXHUwNDNjXHUwNDM4XHUwNDNkXHUwNDQzXHUwNDQyXHUwNDMwIl0s''@;'; + put 'put ''bW06WyJcdTA0M2NcdTA0MzhcdTA0M2RcdTA0NDNcdTA0NDIiLCJcdTA0M2NcdTA0MzhcdTA0M2RcdTA0NDNcdTA0NDJcdTA0MzAiLCJcdTA0M2NcdTA0MzhcdTA0M2RcdTA0NDNcdTA0NDJcdTA0MzAiXSxoOlsiXHUwNDU4XHUwNDM1XHUwNDM0XHUwNDMwXHUwNDNkIFx1MDQ0MVx1MDQzMFx1''@;'; + put 'put ''MDQ0MiIsIlx1MDQ1OFx1MDQzNVx1MDQzNFx1MDQzZFx1MDQzZVx1MDQzMyBcdTA0NDFcdTA0MzBcdTA0NDJcdTA0MzAiXSxoaDpbIlx1MDQ0MVx1MDQzMFx1MDQ0MiIsIlx1MDQ0MVx1MDQzMFx1MDQ0Mlx1MDQzMCIsIlx1MDQ0MVx1MDQzMFx1MDQ0Mlx1MDQzOCJdLGQ6WyJcdTA0NThcdTA0''@;'; + put 'put ''MzVcdTA0MzRcdTA0MzBcdTA0M2QgXHUwNDM0XHUwNDMwXHUwNDNkIiwiXHUwNDU4XHUwNDM1XHUwNDM0XHUwNDNkXHUwNDNlXHUwNDMzIFx1MDQzNFx1MDQzMFx1MDQzZFx1MDQzMCJdLGRkOlsiXHUwNDM0XHUwNDMwXHUwNDNkIiwiXHUwNDM0XHUwNDMwXHUwNDNkXHUwNDMwIiwiXHUwNDM0''@;'; + put 'put ''XHUwNDMwXHUwNDNkXHUwNDMwIl0sTTpbIlx1MDQ1OFx1MDQzNVx1MDQzNFx1MDQzMFx1MDQzZCBcdTA0M2NcdTA0MzVcdTA0NDFcdTA0MzVcdTA0NDYiLCJcdTA0NThcdTA0MzVcdTA0MzRcdTA0M2RcdTA0M2VcdTA0MzMgXHUwNDNjXHUwNDM1XHUwNDQxXHUwNDM1XHUwNDQ2XHUwNDMwIl0s''@;'; + put 'put ''TU06WyJcdTA0M2NcdTA0MzVcdTA0NDFcdTA0MzVcdTA0NDYiLCJcdTA0M2NcdTA0MzVcdTA0NDFcdTA0MzVcdTA0NDZcdTA0MzAiLCJcdTA0M2NcdTA0MzVcdTA0NDFcdTA0MzVcdTA0NDZcdTA0MzgiXSx5OlsiXHUwNDU4XHUwNDM1XHUwNDM0XHUwNDNkXHUwNDQzIFx1MDQzM1x1MDQzZVx1''@;'; + put 'put ''MDQzNFx1MDQzOFx1MDQzZFx1MDQ0MyIsIlx1MDQ1OFx1MDQzNVx1MDQzNFx1MDQzZFx1MDQzNSBcdTA0MzNcdTA0M2VcdTA0MzRcdTA0MzhcdTA0M2RcdTA0MzUiXSx5eTpbIlx1MDQzM1x1MDQzZVx1MDQzNFx1MDQzOFx1MDQzZFx1MDQ0MyIsIlx1MDQzM1x1MDQzZVx1MDQzNFx1MDQzOFx1''@;'; + put 'put ''MDQzZFx1MDQzNSIsIlx1MDQzM1x1MDQzZVx1MDQzNFx1MDQzOFx1MDQzZFx1MDQzMCJdfSxjb3JyZWN0R3JhbW1hdGljYWxDYXNlOmZ1bmN0aW9uKE1lLFUpe3JldHVybiBNZSUxMD49MSYmTWUlMTA8PTQmJihNZSUxMDA8MTB8fE1lJTEwMD49MjApP01lJTEwPT0xP1VbMF06VVsxXTpVWzJd''@;'; + put 'put ''fSx0cmFuc2xhdGU6ZnVuY3Rpb24oTWUsVSxRLFope3ZhciBhZSxpZT1CLndvcmRzW1FdO3JldHVybiAxPT09US5sZW5ndGg/InkiPT09USYmVT8iXHUwNDU4XHUwNDM1XHUwNDM0XHUwNDNkXHUwNDMwIFx1MDQzM1x1MDQzZVx1MDQzNFx1MDQzOFx1MDQzZFx1MDQzMCI6Wnx8VT9pZVswXTpp''@;'; + put 'put ''ZVsxXTooYWU9Qi5jb3JyZWN0R3JhbW1hdGljYWxDYXNlKE1lLGllKSwieXkiPT09USYmVSYmIlx1MDQzM1x1MDQzZVx1MDQzNFx1MDQzOFx1MDQzZFx1MDQ0MyI9PT1hZT9NZSsiIFx1MDQzM1x1MDQzZVx1MDQzNFx1MDQzOFx1MDQzZFx1MDQzMCI6TWUrIiAiK2FlKX19O21lLmRlZmluZUxv''@;'; + put 'put ''Y2FsZSgic3ItY3lybCIse21vbnRoczoiXHUwNDU4XHUwNDMwXHUwNDNkXHUwNDQzXHUwNDMwXHUwNDQwX1x1MDQ0NFx1MDQzNVx1MDQzMVx1MDQ0MFx1MDQ0M1x1MDQzMFx1MDQ0MF9cdTA0M2NcdTA0MzBcdTA0NDBcdTA0NDJfXHUwNDMwXHUwNDNmXHUwNDQwXHUwNDM4XHUwNDNiX1x1MDQz''@;'; + put 'put ''Y1x1MDQzMFx1MDQ1OF9cdTA0NThcdTA0NDNcdTA0M2RfXHUwNDU4XHUwNDQzXHUwNDNiX1x1MDQzMFx1MDQzMlx1MDQzM1x1MDQ0M1x1MDQ0MVx1MDQ0Ml9cdTA0NDFcdTA0MzVcdTA0M2ZcdTA0NDJcdTA0MzVcdTA0M2NcdTA0MzFcdTA0MzBcdTA0NDBfXHUwNDNlXHUwNDNhXHUwNDQyXHUw''@;'; + put 'put ''NDNlXHUwNDMxXHUwNDMwXHUwNDQwX1x1MDQzZFx1MDQzZVx1MDQzMlx1MDQzNVx1MDQzY1x1MDQzMVx1MDQzMFx1MDQ0MF9cdTA0MzRcdTA0MzVcdTA0NDZcdTA0MzVcdTA0M2NcdTA0MzFcdTA0MzBcdTA0NDAiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6Ilx1MDQ1OFx1MDQzMFx1MDQzZC5f''@;'; + put 'put ''XHUwNDQ0XHUwNDM1XHUwNDMxLl9cdTA0M2NcdTA0MzBcdTA0NDAuX1x1MDQzMFx1MDQzZlx1MDQ0MC5fXHUwNDNjXHUwNDMwXHUwNDU4X1x1MDQ1OFx1MDQ0M1x1MDQzZF9cdTA0NThcdTA0NDNcdTA0M2JfXHUwNDMwXHUwNDMyXHUwNDMzLl9cdTA0NDFcdTA0MzVcdTA0M2YuX1x1MDQzZVx1''@;'; + put 'put ''MDQzYVx1MDQ0Mi5fXHUwNDNkXHUwNDNlXHUwNDMyLl9cdTA0MzRcdTA0MzVcdTA0NDYuIi5zcGxpdCgiXyIpLG1vbnRoc1BhcnNlRXhhY3Q6ITAsd2Vla2RheXM6Ilx1MDQzZFx1MDQzNVx1MDQzNFx1MDQzNVx1MDQ1OVx1MDQzMF9cdTA0M2ZcdTA0M2VcdTA0M2RcdTA0MzVcdTA0MzRcdTA0''@;'; + put 'put ''MzVcdTA0NTlcdTA0MzBcdTA0M2FfXHUwNDQzXHUwNDQyXHUwNDNlXHUwNDQwXHUwNDMwXHUwNDNhX1x1MDQ0MVx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQzMF9cdTA0NDdcdTA0MzVcdTA0NDJcdTA0MzJcdTA0NDBcdTA0NDJcdTA0MzBcdTA0M2FfXHUwNDNmXHUwNDM1XHUwNDQyXHUwNDMwXHUw''@;'; + put 'put ''NDNhX1x1MDQ0MVx1MDQ0M1x1MDQzMVx1MDQzZVx1MDQ0Mlx1MDQzMCIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJcdTA0M2RcdTA0MzVcdTA0MzQuX1x1MDQzZlx1MDQzZVx1MDQzZC5fXHUwNDQzXHUwNDQyXHUwNDNlLl9cdTA0NDFcdTA0NDBcdTA0MzUuX1x1MDQ0N1x1MDQzNVx1MDQ0''@;'; + put 'put ''Mi5fXHUwNDNmXHUwNDM1XHUwNDQyLl9cdTA0NDFcdTA0NDNcdTA0MzEuIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJcdTA0M2RcdTA0MzVfXHUwNDNmXHUwNDNlX1x1MDQ0M1x1MDQ0Ml9cdTA0NDFcdTA0NDBfXHUwNDQ3XHUwNDM1X1x1MDQzZlx1MDQzNV9cdTA0NDFcdTA0NDMiLnNwbGl0''@;'; + put 'put ''KCJfIiksd2Vla2RheXNQYXJzZUV4YWN0OiEwLGxvbmdEYXRlRm9ybWF0OntMVDoiSDptbSIsTFRTOiJIOm1tOnNzIixMOiJELiBNLiBZWVlZLiIsTEw6IkQuIE1NTU0gWVlZWS4iLExMTDoiRC4gTU1NTSBZWVlZLiBIOm1tIixMTExMOiJkZGRkLCBELiBNTU1NIFlZWVkuIEg6bW0ifSxjYWxl''@;'; + put 'put ''bmRhcjp7c2FtZURheToiW1x1MDQzNFx1MDQzMFx1MDQzZFx1MDQzMFx1MDQ0MSBcdTA0NDNdIExUIixuZXh0RGF5OiJbXHUwNDQxXHUwNDQzXHUwNDQyXHUwNDQwXHUwNDMwIFx1MDQ0M10gTFQiLG5leHRXZWVrOmZ1bmN0aW9uKCl7c3dpdGNoKHRoaXMuZGF5KCkpe2Nhc2UgMDpyZXR1cm4i''@;'; + put 'put ''W1x1MDQ0M10gW1x1MDQzZFx1MDQzNVx1MDQzNFx1MDQzNVx1MDQ1OVx1MDQ0M10gW1x1MDQ0M10gTFQiO2Nhc2UgMzpyZXR1cm4iW1x1MDQ0M10gW1x1MDQ0MVx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQ0M10gW1x1MDQ0M10gTFQiO2Nhc2UgNjpyZXR1cm4iW1x1MDQ0M10gW1x1MDQ0MVx1MDQ0''@;'; + put 'put ''M1x1MDQzMVx1MDQzZVx1MDQ0Mlx1MDQ0M10gW1x1MDQ0M10gTFQiO2Nhc2UgMTpjYXNlIDI6Y2FzZSA0OmNhc2UgNTpyZXR1cm4iW1x1MDQ0M10gZGRkZCBbXHUwNDQzXSBMVCJ9fSxsYXN0RGF5OiJbXHUwNDU4XHUwNDQzXHUwNDQ3XHUwNDM1IFx1MDQ0M10gTFQiLGxhc3RXZWVrOmZ1bmN0''@;'; + put 'put ''aW9uKCl7cmV0dXJuWyJbXHUwNDNmXHUwNDQwXHUwNDNlXHUwNDQ4XHUwNDNiXHUwNDM1XSBbXHUwNDNkXHUwNDM1XHUwNDM0XHUwNDM1XHUwNDU5XHUwNDM1XSBbXHUwNDQzXSBMVCIsIltcdTA0M2ZcdTA0NDBcdTA0M2VcdTA0NDhcdTA0M2JcdTA0M2VcdTA0MzNdIFtcdTA0M2ZcdTA0M2Vc''@;'; + put 'put ''dTA0M2RcdTA0MzVcdTA0MzRcdTA0MzVcdTA0NTlcdTA0M2FcdTA0MzBdIFtcdTA0NDNdIExUIiwiW1x1MDQzZlx1MDQ0MFx1MDQzZVx1MDQ0OFx1MDQzYlx1MDQzZVx1MDQzM10gW1x1MDQ0M1x1MDQ0Mlx1MDQzZVx1MDQ0MFx1MDQzYVx1MDQzMF0gW1x1MDQ0M10gTFQiLCJbXHUwNDNmXHUw''@;'; + put 'put ''NDQwXHUwNDNlXHUwNDQ4XHUwNDNiXHUwNDM1XSBbXHUwNDQxXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDM1XSBbXHUwNDQzXSBMVCIsIltcdTA0M2ZcdTA0NDBcdTA0M2VcdTA0NDhcdTA0M2JcdTA0M2VcdTA0MzNdIFtcdTA0NDdcdTA0MzVcdTA0NDJcdTA0MzJcdTA0NDBcdTA0NDJcdTA0M2Fc''@;'; + put 'put ''dTA0MzBdIFtcdTA0NDNdIExUIiwiW1x1MDQzZlx1MDQ0MFx1MDQzZVx1MDQ0OFx1MDQzYlx1MDQzZVx1MDQzM10gW1x1MDQzZlx1MDQzNVx1MDQ0Mlx1MDQzYVx1MDQzMF0gW1x1MDQ0M10gTFQiLCJbXHUwNDNmXHUwNDQwXHUwNDNlXHUwNDQ4XHUwNDNiXHUwNDM1XSBbXHUwNDQxXHUwNDQz''@;'; + put 'put ''XHUwNDMxXHUwNDNlXHUwNDQyXHUwNDM1XSBbXHUwNDQzXSBMVCJdW3RoaXMuZGF5KCldfSxzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJcdTA0MzdcdTA0MzAgJXMiLHBhc3Q6Ilx1MDQzZlx1MDQ0MFx1MDQzNSAlcyIsczoiXHUwNDNkXHUwNDM1XHUwNDNhXHUwNDNlXHUw''@;'; + put 'put ''NDNiXHUwNDM4XHUwNDNhXHUwNDNlIFx1MDQ0MVx1MDQzNVx1MDQzYVx1MDQ0M1x1MDQzZFx1MDQzNFx1MDQzOCIsc3M6Qi50cmFuc2xhdGUsbTpCLnRyYW5zbGF0ZSxtbTpCLnRyYW5zbGF0ZSxoOkIudHJhbnNsYXRlLGhoOkIudHJhbnNsYXRlLGQ6Qi50cmFuc2xhdGUsZGQ6Qi50cmFuc2xh''@;'; + put 'put ''dGUsTTpCLnRyYW5zbGF0ZSxNTTpCLnRyYW5zbGF0ZSx5OkIudHJhbnNsYXRlLHl5OkIudHJhbnNsYXRlfSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9XC4vLG9yZGluYWw6IiVkLiIsd2Vlazp7ZG93OjEsZG95Ojd9fSl9KEwoMTU0MzkpKX0sOTc5NDk6ZnVuY3Rpb24oWGUsSmUs''@;'; + put 'put ''TCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7dmFyIEI9e3dvcmRzOntzczpbInNla3VuZGEiLCJzZWt1bmRlIiwic2VrdW5kaSJdLG06WyJqZWRhbiBtaW51dCIsImplZG5vZyBtaW51dGEiXSxtbTpbIm1pbnV0IiwibWludXRhIiwibWludXRhIl0saDpbImplZGFuIHNhdCIsImplZG5v''@;'; + put 'put ''ZyBzYXRhIl0saGg6WyJzYXQiLCJzYXRhIiwic2F0aSJdLGQ6WyJqZWRhbiBkYW4iLCJqZWRub2cgZGFuYSJdLGRkOlsiZGFuIiwiZGFuYSIsImRhbmEiXSxNOlsiamVkYW4gbWVzZWMiLCJqZWRub2cgbWVzZWNhIl0sTU06WyJtZXNlYyIsIm1lc2VjYSIsIm1lc2VjaSJdLHk6WyJqZWRudSBn''@;'; + put 'put ''b2RpbnUiLCJqZWRuZSBnb2RpbmUiXSx5eTpbImdvZGludSIsImdvZGluZSIsImdvZGluYSJdfSxjb3JyZWN0R3JhbW1hdGljYWxDYXNlOmZ1bmN0aW9uKE1lLFUpe3JldHVybiBNZSUxMD49MSYmTWUlMTA8PTQmJihNZSUxMDA8MTB8fE1lJTEwMD49MjApP01lJTEwPT0xP1VbMF06VVsxXTpV''@;'; + put 'put ''WzJdfSx0cmFuc2xhdGU6ZnVuY3Rpb24oTWUsVSxRLFope3ZhciBhZSxpZT1CLndvcmRzW1FdO3JldHVybiAxPT09US5sZW5ndGg/InkiPT09USYmVT8iamVkbmEgZ29kaW5hIjpafHxVP2llWzBdOmllWzFdOihhZT1CLmNvcnJlY3RHcmFtbWF0aWNhbENhc2UoTWUsaWUpLCJ5eSI9PT1RJiZV''@;'; + put 'put ''JiYiZ29kaW51Ij09PWFlP01lKyIgZ29kaW5hIjpNZSsiICIrYWUpfX07bWUuZGVmaW5lTG9jYWxlKCJzciIse21vbnRoczoiamFudWFyX2ZlYnJ1YXJfbWFydF9hcHJpbF9tYWpfanVuX2p1bF9hdmd1c3Rfc2VwdGVtYmFyX29rdG9iYXJfbm92ZW1iYXJfZGVjZW1iYXIiLnNwbGl0KCJfIiks''@;'; + put 'put ''bW9udGhzU2hvcnQ6Imphbi5fZmViLl9tYXIuX2Fwci5fbWFqX2p1bl9qdWxfYXZnLl9zZXAuX29rdC5fbm92Ll9kZWMuIi5zcGxpdCgiXyIpLG1vbnRoc1BhcnNlRXhhY3Q6ITAsd2Vla2RheXM6Im5lZGVsamFfcG9uZWRlbGpha191dG9yYWtfc3JlZGFfXHUwMTBkZXR2cnRha19wZXRha19z''@;'; + put 'put ''dWJvdGEiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoibmVkLl9wb24uX3V0by5fc3JlLl9cdTAxMGRldC5fcGV0Ll9zdWIuIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJuZV9wb191dF9zcl9cdTAxMGRlX3BlX3N1Ii5zcGxpdCgiXyIpLHdlZWtkYXlzUGFyc2VFeGFjdDohMCxsb25nRGF0''@;'; + put 'put ''ZUZvcm1hdDp7TFQ6Ikg6bW0iLExUUzoiSDptbTpzcyIsTDoiRC4gTS4gWVlZWS4iLExMOiJELiBNTU1NIFlZWVkuIixMTEw6IkQuIE1NTU0gWVlZWS4gSDptbSIsTExMTDoiZGRkZCwgRC4gTU1NTSBZWVlZLiBIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltkYW5hcyB1XSBMVCIsbmV4dERh''@;'; + put 'put ''eToiW3N1dHJhIHVdIExUIixuZXh0V2VlazpmdW5jdGlvbigpe3N3aXRjaCh0aGlzLmRheSgpKXtjYXNlIDA6cmV0dXJuIlt1XSBbbmVkZWxqdV0gW3VdIExUIjtjYXNlIDM6cmV0dXJuIlt1XSBbc3JlZHVdIFt1XSBMVCI7Y2FzZSA2OnJldHVybiJbdV0gW3N1Ym90dV0gW3VdIExUIjtjYXNl''@;'; + put 'put ''IDE6Y2FzZSAyOmNhc2UgNDpjYXNlIDU6cmV0dXJuIlt1XSBkZGRkIFt1XSBMVCJ9fSxsYXN0RGF5OiJbanVcdTAxMGRlIHVdIExUIixsYXN0V2VlazpmdW5jdGlvbigpe3JldHVyblsiW3Byb1x1MDE2MWxlXSBbbmVkZWxqZV0gW3VdIExUIiwiW3Byb1x1MDE2MWxvZ10gW3BvbmVkZWxqa2Fd''@;'; + put 'put ''IFt1XSBMVCIsIltwcm9cdTAxNjFsb2ddIFt1dG9ya2FdIFt1XSBMVCIsIltwcm9cdTAxNjFsZV0gW3NyZWRlXSBbdV0gTFQiLCJbcHJvXHUwMTYxbG9nXSBbXHUwMTBkZXR2cnRrYV0gW3VdIExUIiwiW3Byb1x1MDE2MWxvZ10gW3BldGthXSBbdV0gTFQiLCJbcHJvXHUwMTYxbGVdIFtzdWJv''@;'; + put 'put ''dGVdIFt1XSBMVCJdW3RoaXMuZGF5KCldfSxzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJ6YSAlcyIscGFzdDoicHJlICVzIixzOiJuZWtvbGlrbyBzZWt1bmRpIixzczpCLnRyYW5zbGF0ZSxtOkIudHJhbnNsYXRlLG1tOkIudHJhbnNsYXRlLGg6Qi50cmFuc2xhdGUsaGg6''@;'; + put 'put ''Qi50cmFuc2xhdGUsZDpCLnRyYW5zbGF0ZSxkZDpCLnRyYW5zbGF0ZSxNOkIudHJhbnNsYXRlLE1NOkIudHJhbnNsYXRlLHk6Qi50cmFuc2xhdGUseXk6Qi50cmFuc2xhdGV9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn1cLi8sb3JkaW5hbDoiJWQuIix3ZWVrOntkb3c6MSxkb3k6''@;'; + put 'put ''N319KX0oTCgxNTQzOSkpfSw4NjE2NzpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0IjttZS5kZWZpbmVMb2NhbGUoInNzIix7bW9udGhzOiJCaGltYmlkdndhbmVfSW5kbG92YW5hX0luZGxvdidsZW5raHVsdV9NYWJhc2FfSW5raHdla2h3ZXRpX0luaGxhYmFf''@;'; + put 'put ''S2hvbHdhbmVfSW5nY2lfSW55b25pX0ltcGhhbGFfTHdldGlfSW5nb25nb25pIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJCaGlfSW5hX0ludV9NYWJfSW5rX0luaF9LaG9fSWdjX0lueV9JbXBfTHdlX0lnbyIuc3BsaXQoIl8iKSx3ZWVrZGF5czoiTGlzb250Zm9fVW1zb21idWx1a29fTGVz''@;'; + put 'put ''aWJpbGlfTGVzaXRzYXRmdV9MZXNpbmVfTGVzaWhsYW51X1VtZ2NpYmVsbyIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJMaXNfVW1iX0xzYl9MZXNfTHNpX0xzaF9VbWciLnNwbGl0KCJfIiksd2Vla2RheXNNaW46IkxpX1VzX0xiX0x0X0xzX0xoX1VnIi5zcGxpdCgiXyIpLHdlZWtkYXlz''@;'; + put 'put ''UGFyc2VFeGFjdDohMCxsb25nRGF0ZUZvcm1hdDp7TFQ6Img6bW0gQSIsTFRTOiJoOm1tOnNzIEEiLEw6IkREL01NL1lZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0gWVlZWSBoOm1tIEEiLExMTEw6ImRkZGQsIEQgTU1NTSBZWVlZIGg6bW0gQSJ9LGNhbGVuZGFyOntzYW1lRGF5''@;'; + put 'put ''OiJbTmFtdWhsYSBuZ2FdIExUIixuZXh0RGF5OiJbS3VzYXNhIG5nYV0gTFQiLG5leHRXZWVrOiJkZGRkIFtuZ2FdIExUIixsYXN0RGF5OiJbSXRvbG8gbmdhXSBMVCIsbGFzdFdlZWs6ImRkZGQgW2xlbGlwaGVsaWxlXSBbbmdhXSBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1''@;'; + put 'put ''dHVyZToibmdhICVzIixwYXN0OiJ3ZW50ZWthIG5nYSAlcyIsczoiZW1penV6d2FuYSBsb21jYW5lIixzczoiJWQgbXp1endhbmEiLG06InVtenV6dSIsbW06IiVkIGVtaXp1enUiLGg6ImxpaG9yYSIsaGg6IiVkIGVtYWhvcmEiLGQ6ImxpbGFuZ2EiLGRkOiIlZCBlbWFsYW5nYSIsTToiaW55''@;'; + put 'put ''YW5nYSIsTU06IiVkIHRpbnlhbmdhIix5OiJ1bW55YWthIix5eToiJWQgaW1pbnlha2EifSxtZXJpZGllbVBhcnNlOi9la3VzZW5pfGVtaW5pfGVudHNhbWJhbWF8ZWJ1c3VrdS8sbWVyaWRpZW06ZnVuY3Rpb24oRSxNZSxVKXtyZXR1cm4gRTwxMT8iZWt1c2VuaSI6RTwxNT8iZW1pbmkiOkU8''@;'; + put 'put ''MTk/ImVudHNhbWJhbWEiOiJlYnVzdWt1In0sbWVyaWRpZW1Ib3VyOmZ1bmN0aW9uKEUsTWUpe3JldHVybiAxMj09PUUmJihFPTApLCJla3VzZW5pIj09PU1lP0U6ImVtaW5pIj09PU1lP0U+PTExP0U6RSsxMjoiZW50c2FtYmFtYSI9PT1NZXx8ImVidXN1a3UiPT09TWU/MD09PUU/MDpFKzEy''@;'; + put 'put ''OnZvaWQgMH0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfS8sb3JkaW5hbDoiJWQiLHdlZWs6e2RvdzoxLGRveTo0fX0pfShMKDE1NDM5KSl9LDM5NzEzOmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlvbihtZSl7InVzZSBzdHJpY3QiO21lLmRlZmluZUxvY2FsZSgic3YiLHttb250''@;'; + put 'put ''aHM6ImphbnVhcmlfZmVicnVhcmlfbWFyc19hcHJpbF9tYWpfanVuaV9qdWxpX2F1Z3VzdGlfc2VwdGVtYmVyX29rdG9iZXJfbm92ZW1iZXJfZGVjZW1iZXIiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6Imphbl9mZWJfbWFyX2Fwcl9tYWpfanVuX2p1bF9hdWdfc2VwX29rdF9ub3ZfZGVjIi5z''@;'; + put 'put ''cGxpdCgiXyIpLHdlZWtkYXlzOiJzXHhmNm5kYWdfbVx4ZTVuZGFnX3Rpc2RhZ19vbnNkYWdfdG9yc2RhZ19mcmVkYWdfbFx4ZjZyZGFnIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6InNceGY2bl9tXHhlNW5fdGlzX29uc190b3JfZnJlX2xceGY2ciIuc3BsaXQoIl8iKSx3ZWVrZGF5c01p''@;'; + put 'put ''bjoic1x4ZjZfbVx4ZTVfdGlfb25fdG9fZnJfbFx4ZjYiLnNwbGl0KCJfIiksbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoiWVlZWS1NTS1ERCIsTEw6IkQgTU1NTSBZWVlZIixMTEw6IkQgTU1NTSBZWVlZIFtrbC5dIEhIOm1tIixMTExMOiJkZGRkIEQgTU1N''@;'; + put 'put ''TSBZWVlZIFtrbC5dIEhIOm1tIixsbGw6IkQgTU1NIFlZWVkgSEg6bW0iLGxsbGw6ImRkZCBEIE1NTSBZWVlZIEhIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltJZGFnXSBMVCIsbmV4dERheToiW0ltb3Jnb25dIExUIixsYXN0RGF5OiJbSWdceGU1cl0gTFQiLG5leHRXZWVrOiJbUFx4ZTVd''@;'; + put 'put ''IGRkZGQgTFQiLGxhc3RXZWVrOiJbSV0gZGRkZFtzXSBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToib20gJXMiLHBhc3Q6ImZceGY2ciAlcyBzZWRhbiIsczoiblx4ZTVncmEgc2VrdW5kZXIiLHNzOiIlZCBzZWt1bmRlciIsbToiZW4gbWludXQiLG1tOiIlZCBtaW51''@;'; + put 'put ''dGVyIixoOiJlbiB0aW1tZSIsaGg6IiVkIHRpbW1hciIsZDoiZW4gZGFnIixkZDoiJWQgZGFnYXIiLE06ImVuIG1ceGU1bmFkIixNTToiJWQgbVx4ZTVuYWRlciIseToiZXR0IFx4ZTVyIix5eToiJWQgXHhlNXIifSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9KFw6ZXxcOmEpLyxv''@;'; + put 'put ''cmRpbmFsOmZ1bmN0aW9uKEUpe3ZhciBNZT1FJTEwO3JldHVybiBFKygxPT1+fihFJTEwMC8xMCk/IjplIjoxPT09TWV8fDI9PT1NZT8iOmEiOiI6ZSIpfSx3ZWVrOntkb3c6MSxkb3k6NH19KX0oTCgxNTQzOSkpfSw0MTk4MjpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ug''@;'; + put 'put ''c3RyaWN0IjttZS5kZWZpbmVMb2NhbGUoInN3Iix7bW9udGhzOiJKYW51YXJpX0ZlYnJ1YXJpX01hY2hpX0FwcmlsaV9NZWlfSnVuaV9KdWxhaV9BZ29zdGlfU2VwdGVtYmFfT2t0b2JhX05vdmVtYmFfRGVzZW1iYSIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiSmFuX0ZlYl9NYWNfQXByX01l''@;'; + put 'put ''aV9KdW5fSnVsX0Fnb19TZXBfT2t0X05vdl9EZXMiLnNwbGl0KCJfIiksd2Vla2RheXM6Ikp1bWFwaWxpX0p1bWF0YXR1X0p1bWFubmVfSnVtYXRhbm9fQWxoYW1pc2lfSWp1bWFhX0p1bWFtb3NpIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6IkpwbF9KdGF0X0pubmVfSnRhbl9BbGhfSWpt''@;'; + put 'put ''X0ptb3MiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46IkoyX0ozX0o0X0o1X0FsX0lqX0oxIi5zcGxpdCgiXyIpLHdlZWtkYXlzUGFyc2VFeGFjdDohMCxsb25nRGF0ZUZvcm1hdDp7TFQ6ImhoOm1tIEEiLExUUzoiSEg6bW06c3MiLEw6IkRELk1NLllZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExM''@;'; + put 'put ''OiJEIE1NTU0gWVlZWSBISDptbSIsTExMTDoiZGRkZCwgRCBNTU1NIFlZWVkgSEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW2xlbyBzYWFdIExUIixuZXh0RGF5OiJba2VzaG8gc2FhXSBMVCIsbmV4dFdlZWs6Ilt3aWtpIGlqYXlvXSBkZGRkIFtzYWF0XSBMVCIsbGFzdERheToiW2phbmFd''@;'; + put 'put ''IExUIixsYXN0V2VlazoiW3dpa2kgaWxpeW9waXRhXSBkZGRkIFtzYWF0XSBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiJXMgYmFhZGF5ZSIscGFzdDoidG9rZWEgJXMiLHM6ImhpdmkgcHVuZGUiLHNzOiJzZWt1bmRlICVkIixtOiJkYWtpa2EgbW9qYSIsbW06ImRh''@;'; + put 'put ''a2lrYSAlZCIsaDoic2FhIGxpbW9qYSIsaGg6Im1hc2FhICVkIixkOiJzaWt1IG1vamEiLGRkOiJzaWt1ICVkIixNOiJtd2V6aSBtbW9qYSIsTU06Im1pZXppICVkIix5OiJtd2FrYSBtbW9qYSIseXk6Im1pYWthICVkIn0sd2Vlazp7ZG93OjEsZG95Ojd9fSl9KEwoMTU0MzkpKX0sMjI3MzI6''@;'; + put 'put ''ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7dmFyIEI9ezE6Ilx1MGJlNyIsMjoiXHUwYmU4IiwzOiJcdTBiZTkiLDQ6Ilx1MGJlYSIsNToiXHUwYmViIiw2OiJcdTBiZWMiLDc6Ilx1MGJlZCIsODoiXHUwYmVlIiw5OiJcdTBiZWYiLDA6Ilx1MGJlNiJ9LEU9''@;'; + put 'put ''eyJcdTBiZTciOiIxIiwiXHUwYmU4IjoiMiIsIlx1MGJlOSI6IjMiLCJcdTBiZWEiOiI0IiwiXHUwYmViIjoiNSIsIlx1MGJlYyI6IjYiLCJcdTBiZWQiOiI3IiwiXHUwYmVlIjoiOCIsIlx1MGJlZiI6IjkiLCJcdTBiZTYiOiIwIn07bWUuZGVmaW5lTG9jYWxlKCJ0YSIse21vbnRoczoiXHUw''@;'; + put 'put ''YjljXHUwYmE5XHUwYmI1XHUwYmIwXHUwYmJmX1x1MGJhYVx1MGJiZlx1MGJhYVx1MGJjZFx1MGJiMFx1MGJiNVx1MGJiMFx1MGJiZl9cdTBiYWVcdTBiYmVcdTBiYjBcdTBiY2RcdTBiOWFcdTBiY2RfXHUwYjhmXHUwYmFhXHUwYmNkXHUwYmIwXHUwYmIyXHUwYmNkX1x1MGJhZVx1MGJjN19c''@;'; + put 'put ''dTBiOWNcdTBiYzJcdTBiYTlcdTBiY2RfXHUwYjljXHUwYmMyXHUwYmIyXHUwYmM4X1x1MGI4Nlx1MGI5NVx1MGJiOFx1MGJjZFx1MGI5Zlx1MGJjZF9cdTBiOWFcdTBiYzZcdTBiYWFcdTBiY2RcdTBiOWZcdTBiYzZcdTBiYWVcdTBiY2RcdTBiYWFcdTBiYjBcdTBiY2RfXHUwYjg1XHUwYjk1''@;'; + put 'put ''XHUwYmNkXHUwYjlmXHUwYmM3XHUwYmJlXHUwYmFhXHUwYmIwXHUwYmNkX1x1MGJhOFx1MGJiNVx1MGJhZVx1MGJjZFx1MGJhYVx1MGJiMFx1MGJjZF9cdTBiOWZcdTBiYmZcdTBiOWFcdTBiYWVcdTBiY2RcdTBiYWFcdTBiYjBcdTBiY2QiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6Ilx1MGI5''@;'; + put 'put ''Y1x1MGJhOVx1MGJiNVx1MGJiMFx1MGJiZl9cdTBiYWFcdTBiYmZcdTBiYWFcdTBiY2RcdTBiYjBcdTBiYjVcdTBiYjBcdTBiYmZfXHUwYmFlXHUwYmJlXHUwYmIwXHUwYmNkXHUwYjlhXHUwYmNkX1x1MGI4Zlx1MGJhYVx1MGJjZFx1MGJiMFx1MGJiMlx1MGJjZF9cdTBiYWVcdTBiYzdfXHUw''@;'; + put 'put ''YjljXHUwYmMyXHUwYmE5XHUwYmNkX1x1MGI5Y1x1MGJjMlx1MGJiMlx1MGJjOF9cdTBiODZcdTBiOTVcdTBiYjhcdTBiY2RcdTBiOWZcdTBiY2RfXHUwYjlhXHUwYmM2XHUwYmFhXHUwYmNkXHUwYjlmXHUwYmM2XHUwYmFlXHUwYmNkXHUwYmFhXHUwYmIwXHUwYmNkX1x1MGI4NVx1MGI5NVx1''@;'; + put 'put ''MGJjZFx1MGI5Zlx1MGJjN1x1MGJiZVx1MGJhYVx1MGJiMFx1MGJjZF9cdTBiYThcdTBiYjVcdTBiYWVcdTBiY2RcdTBiYWFcdTBiYjBcdTBiY2RfXHUwYjlmXHUwYmJmXHUwYjlhXHUwYmFlXHUwYmNkXHUwYmFhXHUwYmIwXHUwYmNkIi5zcGxpdCgiXyIpLHdlZWtkYXlzOiJcdTBiOWVcdTBi''@;'; + put 'put ''YmVcdTBiYWZcdTBiYmZcdTBiYjFcdTBiY2RcdTBiYjFcdTBiYzFcdTBiOTVcdTBiY2RcdTBiOTVcdTBiYmZcdTBiYjRcdTBiYWVcdTBiYzhfXHUwYmE0XHUwYmJmXHUwYjk5XHUwYmNkXHUwYjk1XHUwYjlmXHUwYmNkXHUwYjk1XHUwYmJmXHUwYmI0XHUwYmFlXHUwYmM4X1x1MGI5YVx1MGJj''@;'; + put 'put ''Nlx1MGJiNVx1MGJjZFx1MGJiNVx1MGJiZVx1MGJhZlx1MGJjZFx1MGI5NVx1MGJiZlx1MGJiNFx1MGJhZVx1MGJjOF9cdTBiYWFcdTBiYzFcdTBiYTRcdTBiYTlcdTBiY2RcdTBiOTVcdTBiYmZcdTBiYjRcdTBiYWVcdTBiYzhfXHUwYmI1XHUwYmJmXHUwYmFmXHUwYmJlXHUwYmI0XHUwYjk1''@;'; + put 'put ''XHUwYmNkXHUwYjk1XHUwYmJmXHUwYmI0XHUwYmFlXHUwYmM4X1x1MGJiNVx1MGJjNlx1MGJiM1x1MGJjZFx1MGJiM1x1MGJiZlx1MGI5NVx1MGJjZFx1MGI5NVx1MGJiZlx1MGJiNFx1MGJhZVx1MGJjOF9cdTBiOWFcdTBiYTlcdTBiYmZcdTBiOTVcdTBiY2RcdTBiOTVcdTBiYmZcdTBiYjRc''@;'; + put 'put ''dTBiYWVcdTBiYzgiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiXHUwYjllXHUwYmJlXHUwYmFmXHUwYmJmXHUwYmIxXHUwYmMxX1x1MGJhNFx1MGJiZlx1MGI5OVx1MGJjZFx1MGI5NVx1MGJiM1x1MGJjZF9cdTBiOWFcdTBiYzZcdTBiYjVcdTBiY2RcdTBiYjVcdTBiYmVcdTBiYWZcdTBi''@;'; + put 'put ''Y2RfXHUwYmFhXHUwYmMxXHUwYmE0XHUwYmE5XHUwYmNkX1x1MGJiNVx1MGJiZlx1MGJhZlx1MGJiZVx1MGJiNFx1MGJhOVx1MGJjZF9cdTBiYjVcdTBiYzZcdTBiYjNcdTBiY2RcdTBiYjNcdTBiYmZfXHUwYjlhXHUwYmE5XHUwYmJmIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJcdTBiOWVc''@;'; + put 'put ''dTBiYmVfXHUwYmE0XHUwYmJmX1x1MGI5YVx1MGJjNl9cdTBiYWFcdTBiYzFfXHUwYmI1XHUwYmJmX1x1MGJiNVx1MGJjNl9cdTBiOWEiLnNwbGl0KCJfIiksbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoiREQvTU0vWVlZWSIsTEw6IkQgTU1NTSBZWVlZIixM''@;'; + put 'put ''TEw6IkQgTU1NTSBZWVlZLCBISDptbSIsTExMTDoiZGRkZCwgRCBNTU1NIFlZWVksIEhIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltcdTBiODdcdTBiYTlcdTBiY2RcdTBiYjFcdTBiYzFdIExUIixuZXh0RGF5OiJbXHUwYmE4XHUwYmJlXHUwYmIzXHUwYmM4XSBMVCIsbmV4dFdlZWs6ImRk''@;'; + put 'put ''ZGQsIExUIixsYXN0RGF5OiJbXHUwYmE4XHUwYmM3XHUwYmIxXHUwYmNkXHUwYmIxXHUwYmMxXSBMVCIsbGFzdFdlZWs6IltcdTBiOTVcdTBiOWZcdTBiYThcdTBiY2RcdTBiYTQgXHUwYmI1XHUwYmJlXHUwYmIwXHUwYmFlXHUwYmNkXSBkZGRkLCBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2''@;'; + put 'put ''ZVRpbWU6e2Z1dHVyZToiJXMgXHUwYjg3XHUwYmIyXHUwYmNkIixwYXN0OiIlcyBcdTBiYWVcdTBiYzFcdTBiYTlcdTBiY2QiLHM6Ilx1MGI5Mlx1MGJiMFx1MGJjMSBcdTBiOWFcdTBiYmZcdTBiYjIgXHUwYmI1XHUwYmJmXHUwYmE4XHUwYmJlXHUwYjlmXHUwYmJmXHUwYjk1XHUwYmIzXHUw''@;'; + put 'put ''YmNkIixzczoiJWQgXHUwYmI1XHUwYmJmXHUwYmE4XHUwYmJlXHUwYjlmXHUwYmJmXHUwYjk1XHUwYmIzXHUwYmNkIixtOiJcdTBiOTJcdTBiYjBcdTBiYzEgXHUwYmE4XHUwYmJmXHUwYmFlXHUwYmJmXHUwYjlmXHUwYmFlXHUwYmNkIixtbToiJWQgXHUwYmE4XHUwYmJmXHUwYmFlXHUwYmJm''@;'; + put 'put ''XHUwYjlmXHUwYjk5XHUwYmNkXHUwYjk1XHUwYmIzXHUwYmNkIixoOiJcdTBiOTJcdTBiYjBcdTBiYzEgXHUwYmFlXHUwYmEzXHUwYmJmIFx1MGJhOFx1MGJjN1x1MGJiMFx1MGJhZVx1MGJjZCIsaGg6IiVkIFx1MGJhZVx1MGJhM1x1MGJiZiBcdTBiYThcdTBiYzdcdTBiYjBcdTBiYWVcdTBi''@;'; + put 'put ''Y2QiLGQ6Ilx1MGI5Mlx1MGJiMFx1MGJjMSBcdTBiYThcdTBiYmVcdTBiYjNcdTBiY2QiLGRkOiIlZCBcdTBiYThcdTBiYmVcdTBiOWZcdTBiY2RcdTBiOTVcdTBiYjNcdTBiY2QiLE06Ilx1MGI5Mlx1MGJiMFx1MGJjMSBcdTBiYWVcdTBiYmVcdTBiYTRcdTBiYWVcdTBiY2QiLE1NOiIlZCBc''@;'; + put 'put ''dTBiYWVcdTBiYmVcdTBiYTRcdTBiOTlcdTBiY2RcdTBiOTVcdTBiYjNcdTBiY2QiLHk6Ilx1MGI5Mlx1MGJiMFx1MGJjMSBcdTBiYjVcdTBiYjBcdTBiYzFcdTBiOWZcdTBiYWVcdTBiY2QiLHl5OiIlZCBcdTBiODZcdTBiYTNcdTBiY2RcdTBiOWZcdTBiYzFcdTBiOTVcdTBiYjNcdTBiY2Qi''@;'; + put 'put ''fSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9XHUwYmI1XHUwYmE0XHUwYmMxLyxvcmRpbmFsOmZ1bmN0aW9uKFUpe3JldHVybiBVKyJcdTBiYjVcdTBiYTRcdTBiYzEifSxwcmVwYXJzZTpmdW5jdGlvbihVKXtyZXR1cm4gVS5yZXBsYWNlKC9bXHUwYmU3XHUwYmU4XHUwYmU5XHUw''@;'; + put 'put ''YmVhXHUwYmViXHUwYmVjXHUwYmVkXHUwYmVlXHUwYmVmXHUwYmU2XS9nLGZ1bmN0aW9uKFEpe3JldHVybiBFW1FdfSl9LHBvc3Rmb3JtYXQ6ZnVuY3Rpb24oVSl7cmV0dXJuIFUucmVwbGFjZSgvXGQvZyxmdW5jdGlvbihRKXtyZXR1cm4gQltRXX0pfSxtZXJpZGllbVBhcnNlOi9cdTBiYWZc''@;'; + put 'put ''dTBiYmVcdTBiYWVcdTBiYWVcdTBiY2R8XHUwYmI1XHUwYmM4XHUwYjk1XHUwYmIxXHUwYmM4fFx1MGI5NVx1MGJiZVx1MGJiMlx1MGJjOHxcdTBiYThcdTBiYTNcdTBiY2RcdTBiYWFcdTBiOTVcdTBiYjJcdTBiY2R8XHUwYjhlXHUwYmIxXHUwYmNkXHUwYmFhXHUwYmJlXHUwYjlmXHUwYmMx''@;'; + put 'put ''fFx1MGJhZVx1MGJiZVx1MGJiMlx1MGJjOC8sbWVyaWRpZW06ZnVuY3Rpb24oVSxRLFope3JldHVybiBVPDI/IiBcdTBiYWZcdTBiYmVcdTBiYWVcdTBiYWVcdTBiY2QiOlU8Nj8iIFx1MGJiNVx1MGJjOFx1MGI5NVx1MGJiMVx1MGJjOCI6VTwxMD8iIFx1MGI5NVx1MGJiZVx1MGJiMlx1MGJj''@;'; + put 'put ''OCI6VTwxND8iIFx1MGJhOFx1MGJhM1x1MGJjZFx1MGJhYVx1MGI5NVx1MGJiMlx1MGJjZCI6VTwxOD8iIFx1MGI4ZVx1MGJiMVx1MGJjZFx1MGJhYVx1MGJiZVx1MGI5Zlx1MGJjMSI6VTwyMj8iIFx1MGJhZVx1MGJiZVx1MGJiMlx1MGJjOCI6IiBcdTBiYWZcdTBiYmVcdTBiYWVcdTBiYWVc''@;'; + put 'put ''dTBiY2QifSxtZXJpZGllbUhvdXI6ZnVuY3Rpb24oVSxRKXtyZXR1cm4gMTI9PT1VJiYoVT0wKSwiXHUwYmFmXHUwYmJlXHUwYmFlXHUwYmFlXHUwYmNkIj09PVE/VTwyP1U6VSsxMjoiXHUwYmI1XHUwYmM4XHUwYjk1XHUwYmIxXHUwYmM4Ij09PVF8fCJcdTBiOTVcdTBiYmVcdTBiYjJcdTBi''@;'; + put 'put ''YzgiPT09UXx8Ilx1MGJhOFx1MGJhM1x1MGJjZFx1MGJhYVx1MGI5NVx1MGJiMlx1MGJjZCI9PT1RJiZVPj0xMD9VOlUrMTJ9LHdlZWs6e2RvdzowLGRveTo2fX0pfShMKDE1NDM5KSl9LDQzNjM2OmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlvbihtZSl7InVzZSBzdHJpY3QiO21lLmRlZmlu''@;'; + put 'put ''ZUxvY2FsZSgidGUiLHttb250aHM6Ilx1MGMxY1x1MGMyOFx1MGMzNVx1MGMzMFx1MGMzZl9cdTBjMmJcdTBjM2ZcdTBjMmNcdTBjNGRcdTBjMzBcdTBjMzVcdTBjMzBcdTBjM2ZfXHUwYzJlXHUwYzNlXHUwYzMwXHUwYzRkXHUwYzFhXHUwYzNmX1x1MGMwZlx1MGMyYVx1MGM0ZFx1MGMzMFx1''@;'; + put 'put ''MGMzZlx1MGMzMlx1MGM0ZF9cdTBjMmVcdTBjNDdfXHUwYzFjXHUwYzQyXHUwYzI4XHUwYzRkX1x1MGMxY1x1MGM0MVx1MGMzMlx1MGM0OF9cdTBjMDZcdTBjMTdcdTBjMzhcdTBjNGRcdTBjMWZcdTBjNDFfXHUwYzM4XHUwYzQ2XHUwYzJhXHUwYzRkXHUwYzFmXHUwYzQ2XHUwYzAyXHUwYzJj''@;'; + put 'put ''XHUwYzMwXHUwYzRkX1x1MGMwNVx1MGMxNVx1MGM0ZFx1MGMxZlx1MGM0Ylx1MGMyY1x1MGMzMFx1MGM0ZF9cdTBjMjhcdTBjMzVcdTBjMDJcdTBjMmNcdTBjMzBcdTBjNGRfXHUwYzIxXHUwYzNmXHUwYzM4XHUwYzQ2XHUwYzAyXHUwYzJjXHUwYzMwXHUwYzRkIi5zcGxpdCgiXyIpLG1vbnRo''@;'; + put 'put ''c1Nob3J0OiJcdTBjMWNcdTBjMjguX1x1MGMyYlx1MGMzZlx1MGMyY1x1MGM0ZFx1MGMzMC5fXHUwYzJlXHUwYzNlXHUwYzMwXHUwYzRkXHUwYzFhXHUwYzNmX1x1MGMwZlx1MGMyYVx1MGM0ZFx1MGMzMFx1MGMzZi5fXHUwYzJlXHUwYzQ3X1x1MGMxY1x1MGM0Mlx1MGMyOFx1MGM0ZF9cdTBj''@;'; + put 'put ''MWNcdTBjNDFcdTBjMzJcdTBjNDhfXHUwYzA2XHUwYzE3Ll9cdTBjMzhcdTBjNDZcdTBjMmFcdTBjNGQuX1x1MGMwNVx1MGMxNVx1MGM0ZFx1MGMxZlx1MGM0Yi5fXHUwYzI4XHUwYzM1Ll9cdTBjMjFcdTBjM2ZcdTBjMzhcdTBjNDYuIi5zcGxpdCgiXyIpLG1vbnRoc1BhcnNlRXhhY3Q6ITAs''@;'; + put 'put ''d2Vla2RheXM6Ilx1MGMwNlx1MGMyNlx1MGMzZlx1MGMzNVx1MGMzZVx1MGMzMFx1MGMwMl9cdTBjMzhcdTBjNGJcdTBjMmVcdTBjMzVcdTBjM2VcdTBjMzBcdTBjMDJfXHUwYzJlXHUwYzAyXHUwYzE3XHUwYzMzXHUwYzM1XHUwYzNlXHUwYzMwXHUwYzAyX1x1MGMyY1x1MGM0MVx1MGMyN1x1''@;'; + put 'put ''MGMzNVx1MGMzZVx1MGMzMFx1MGMwMl9cdTBjMTdcdTBjNDFcdTBjMzBcdTBjNDFcdTBjMzVcdTBjM2VcdTBjMzBcdTBjMDJfXHUwYzM2XHUwYzQxXHUwYzE1XHUwYzRkXHUwYzMwXHUwYzM1XHUwYzNlXHUwYzMwXHUwYzAyX1x1MGMzNlx1MGMyOFx1MGMzZlx1MGMzNVx1MGMzZVx1MGMzMFx1''@;'; + put 'put ''MGMwMiIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJcdTBjMDZcdTBjMjZcdTBjM2ZfXHUwYzM4XHUwYzRiXHUwYzJlX1x1MGMyZVx1MGMwMlx1MGMxN1x1MGMzM19cdTBjMmNcdTBjNDFcdTBjMjdfXHUwYzE3XHUwYzQxXHUwYzMwXHUwYzQxX1x1MGMzNlx1MGM0MVx1MGMxNVx1MGM0ZFx1''@;'; + put 'put ''MGMzMF9cdTBjMzZcdTBjMjhcdTBjM2YiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46Ilx1MGMwNl9cdTBjMzhcdTBjNGJfXHUwYzJlXHUwYzAyX1x1MGMyY1x1MGM0MV9cdTBjMTdcdTBjNDFfXHUwYzM2XHUwYzQxX1x1MGMzNiIuc3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6IkEgaDpt''@;'; + put 'put ''bSIsTFRTOiJBIGg6bW06c3MiLEw6IkREL01NL1lZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0gWVlZWSwgQSBoOm1tIixMTExMOiJkZGRkLCBEIE1NTU0gWVlZWSwgQSBoOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltcdTBjMjhcdTBjNDdcdTBjMjFcdTBjNDFdIExUIixuZXh0''@;'; + put 'put ''RGF5OiJbXHUwYzMwXHUwYzQ3XHUwYzJhXHUwYzQxXSBMVCIsbmV4dFdlZWs6ImRkZGQsIExUIixsYXN0RGF5OiJbXHUwYzI4XHUwYzNmXHUwYzI4XHUwYzRkXHUwYzI4XSBMVCIsbGFzdFdlZWs6IltcdTBjMTdcdTBjMjRdIGRkZGQsIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7''@;'; + put 'put ''ZnV0dXJlOiIlcyBcdTBjMzJcdTBjNGIiLHBhc3Q6IiVzIFx1MGMxNVx1MGM0ZFx1MGMzMFx1MGMzZlx1MGMyNFx1MGMwMiIsczoiXHUwYzE1XHUwYzRhXHUwYzI4XHUwYzRkXHUwYzI4XHUwYzNmIFx1MGMxNVx1MGM0ZFx1MGMzN1x1MGMyM1x1MGMzZVx1MGMzMlx1MGM0MSIsc3M6IiVkIFx1''@;'; + put 'put ''MGMzOFx1MGM0Nlx1MGMxNVx1MGMyOFx1MGM0ZFx1MGMzMlx1MGM0MSIsbToiXHUwYzEyXHUwYzE1IFx1MGMyOFx1MGMzZlx1MGMyZVx1MGMzZlx1MGMzN1x1MGMwMiIsbW06IiVkIFx1MGMyOFx1MGMzZlx1MGMyZVx1MGMzZlx1MGMzN1x1MGMzZVx1MGMzMlx1MGM0MSIsaDoiXHUwYzEyXHUw''@;'; + put 'put ''YzE1IFx1MGMxN1x1MGMwMlx1MGMxZiIsaGg6IiVkIFx1MGMxN1x1MGMwMlx1MGMxZlx1MGMzMlx1MGM0MSIsZDoiXHUwYzEyXHUwYzE1IFx1MGMzMFx1MGM0Ylx1MGMxY1x1MGM0MSIsZGQ6IiVkIFx1MGMzMFx1MGM0Ylx1MGMxY1x1MGM0MVx1MGMzMlx1MGM0MSIsTToiXHUwYzEyXHUwYzE1''@;'; + put 'put ''IFx1MGMyOFx1MGM0Nlx1MGMzMiIsTU06IiVkIFx1MGMyOFx1MGM0Nlx1MGMzMlx1MGMzMlx1MGM0MSIseToiXHUwYzEyXHUwYzE1IFx1MGMzOFx1MGMwMlx1MGMzNVx1MGMyNFx1MGM0ZFx1MGMzOFx1MGMzMFx1MGMwMiIseXk6IiVkIFx1MGMzOFx1MGMwMlx1MGMzNVx1MGMyNFx1MGM0ZFx1''@;'; + put 'put ''MGMzOFx1MGMzMFx1MGMzZVx1MGMzMlx1MGM0MSJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn1cdTBjMzUvLG9yZGluYWw6IiVkXHUwYzM1IixtZXJpZGllbVBhcnNlOi9cdTBjMzBcdTBjM2VcdTBjMjRcdTBjNGRcdTBjMzBcdTBjM2Z8XHUwYzA5XHUwYzI2XHUwYzJmXHUwYzAy''@;'; + put 'put ''fFx1MGMyZVx1MGMyN1x1MGM0ZFx1MGMyZlx1MGMzZVx1MGMzOVx1MGM0ZFx1MGMyOFx1MGMwMnxcdTBjMzhcdTBjM2VcdTBjMmZcdTBjMDJcdTBjMjRcdTBjNGRcdTBjMzBcdTBjMDIvLG1lcmlkaWVtSG91cjpmdW5jdGlvbihFLE1lKXtyZXR1cm4gMTI9PT1FJiYoRT0wKSwiXHUwYzMwXHUw''@;'; + put 'put ''YzNlXHUwYzI0XHUwYzRkXHUwYzMwXHUwYzNmIj09PU1lP0U8ND9FOkUrMTI6Ilx1MGMwOVx1MGMyNlx1MGMyZlx1MGMwMiI9PT1NZT9FOiJcdTBjMmVcdTBjMjdcdTBjNGRcdTBjMmZcdTBjM2VcdTBjMzlcdTBjNGRcdTBjMjhcdTBjMDIiPT09TWU/RT49MTA/RTpFKzEyOiJcdTBjMzhcdTBj''@;'; + put 'put ''M2VcdTBjMmZcdTBjMDJcdTBjMjRcdTBjNGRcdTBjMzBcdTBjMDIiPT09TWU/RSsxMjp2b2lkIDB9LG1lcmlkaWVtOmZ1bmN0aW9uKEUsTWUsVSl7cmV0dXJuIEU8ND8iXHUwYzMwXHUwYzNlXHUwYzI0XHUwYzRkXHUwYzMwXHUwYzNmIjpFPDEwPyJcdTBjMDlcdTBjMjZcdTBjMmZcdTBjMDIi''@;'; + put 'put ''OkU8MTc/Ilx1MGMyZVx1MGMyN1x1MGM0ZFx1MGMyZlx1MGMzZVx1MGMzOVx1MGM0ZFx1MGMyOFx1MGMwMiI6RTwyMD8iXHUwYzM4XHUwYzNlXHUwYzJmXHUwYzAyXHUwYzI0XHUwYzRkXHUwYzMwXHUwYzAyIjoiXHUwYzMwXHUwYzNlXHUwYzI0XHUwYzRkXHUwYzMwXHUwYzNmIn0sd2Vlazp7''@;'; + put 'put ''ZG93OjAsZG95OjZ9fSl9KEwoMTU0MzkpKX0sMjExNTpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0IjttZS5kZWZpbmVMb2NhbGUoInRldCIse21vbnRoczoiSmFuZWlydV9GZXZlcmVpcnVfTWFyc3VfQWJyaWxfTWFpdV9KdVx4ZjF1X0p1bGx1X0FndXN0dV9T''@;'; + put 'put ''ZXRlbWJydV9PdXR1YnJ1X05vdmVtYnJ1X0RlemVtYnJ1Ii5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJKYW5fRmV2X01hcl9BYnJfTWFpX0p1bl9KdWxfQWdvX1NldF9PdXRfTm92X0RleiIuc3BsaXQoIl8iKSx3ZWVrZGF5czoiRG9taW5ndV9TZWd1bmRhX1RlcnNhX0t1YXJ0YV9LaW50YV9T''@;'; + put 'put ''ZXN0YV9TYWJhZHUiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiRG9tX1NlZ19UZXJzX0t1YV9LaW50X1Nlc3RfU2FiIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJEb19TZWdfVGVfS3VfS2lfU2VzX1NhIi5zcGxpdCgiXyIpLGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6''@;'; + put 'put ''bW06c3MiLEw6IkREL01NL1lZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0gWVlZWSBISDptbSIsTExMTDoiZGRkZCwgRCBNTU1NIFlZWVkgSEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW09oaW4gaWhhXSBMVCIsbmV4dERheToiW0FiYW4gaWhhXSBMVCIsbmV4dFdlZWs6ImRk''@;'; + put 'put ''ZGQgW2loYV0gTFQiLGxhc3REYXk6IltIb3Jpc2VpayBpaGFdIExUIixsYXN0V2VlazoiZGRkZCBbc2VtYW5hIGtvdHVrXSBbaWhhXSBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiaWhhICVzIixwYXN0OiIlcyBsaXViYSIsczoic2VndW5kdSBiYWx1biIsc3M6InNl''@;'; + put 'put ''Z3VuZHUgJWQiLG06Im1pbnV0dSBpZGEiLG1tOiJtaW51dHUgJWQiLGg6Im9yYXMgaWRhIixoaDoib3JhcyAlZCIsZDoibG9yb24gaWRhIixkZDoibG9yb24gJWQiLE06ImZ1bGFuIGlkYSIsTU06ImZ1bGFuICVkIix5OiJ0aW5hbiBpZGEiLHl5OiJ0aW5hbiAlZCJ9LGRheU9mTW9udGhPcmRp''@;'; + put 'put ''bmFsUGFyc2U6L1xkezEsMn0oc3R8bmR8cmR8dGgpLyxvcmRpbmFsOmZ1bmN0aW9uKEUpe3ZhciBNZT1FJTEwO3JldHVybiBFKygxPT1+fihFJTEwMC8xMCk/InRoIjoxPT09TWU/InN0IjoyPT09TWU/Im5kIjozPT09TWU/InJkIjoidGgiKX0sd2Vlazp7ZG93OjEsZG95OjR9fSl9KEwoMTU0''@;'; + put 'put ''MzkpKX0sNjk4MDE6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7dmFyIEI9ezA6Ii1cdTA0NDNcdTA0M2MiLDE6Ii1cdTA0NDNcdTA0M2MiLDI6Ii1cdTA0NGVcdTA0M2MiLDM6Ii1cdTA0NGVcdTA0M2MiLDQ6Ii1cdTA0NDNcdTA0M2MiLDU6Ii1cdTA0NDNc''@;'; + put 'put ''dTA0M2MiLDY6Ii1cdTA0NDNcdTA0M2MiLDc6Ii1cdTA0NDNcdTA0M2MiLDg6Ii1cdTA0NDNcdTA0M2MiLDk6Ii1cdTA0NDNcdTA0M2MiLDEwOiItXHUwNDQzXHUwNDNjIiwxMjoiLVx1MDQ0M1x1MDQzYyIsMTM6Ii1cdTA0NDNcdTA0M2MiLDIwOiItXHUwNDQzXHUwNDNjIiwzMDoiLVx1MDQ0''@;'; + put 'put ''ZVx1MDQzYyIsNDA6Ii1cdTA0NDNcdTA0M2MiLDUwOiItXHUwNDQzXHUwNDNjIiw2MDoiLVx1MDQ0M1x1MDQzYyIsNzA6Ii1cdTA0NDNcdTA0M2MiLDgwOiItXHUwNDQzXHUwNDNjIiw5MDoiLVx1MDQ0M1x1MDQzYyIsMTAwOiItXHUwNDQzXHUwNDNjIn07bWUuZGVmaW5lTG9jYWxlKCJ0ZyIs''@;'; + put 'put ''e21vbnRoczp7Zm9ybWF0OiJcdTA0NGZcdTA0M2RcdTA0MzJcdTA0MzBcdTA0NDBcdTA0MzhfXHUwNDQ0XHUwNDM1XHUwNDMyXHUwNDQwXHUwNDMwXHUwNDNiXHUwNDM4X1x1MDQzY1x1MDQzMFx1MDQ0MFx1MDQ0Mlx1MDQzOF9cdTA0MzBcdTA0M2ZcdTA0NDBcdTA0MzVcdTA0M2JcdTA0Mzhf''@;'; + put 'put ''XHUwNDNjXHUwNDMwXHUwNDM5XHUwNDM4X1x1MDQzOFx1MDQ0ZVx1MDQzZFx1MDQzOF9cdTA0MzhcdTA0NGVcdTA0M2JcdTA0MzhfXHUwNDMwXHUwNDMyXHUwNDMzXHUwNDQzXHUwNDQxXHUwNDQyXHUwNDM4X1x1MDQ0MVx1MDQzNVx1MDQzZFx1MDQ0Mlx1MDQ0Zlx1MDQzMVx1MDQ0MFx1MDQz''@;'; + put 'put ''OF9cdTA0M2VcdTA0M2FcdTA0NDJcdTA0NGZcdTA0MzFcdTA0NDBcdTA0MzhfXHUwNDNkXHUwNDNlXHUwNDRmXHUwNDMxXHUwNDQwXHUwNDM4X1x1MDQzNFx1MDQzNVx1MDQzYVx1MDQzMFx1MDQzMVx1MDQ0MFx1MDQzOCIuc3BsaXQoIl8iKSxzdGFuZGFsb25lOiJcdTA0NGZcdTA0M2RcdTA0''@;'; + put 'put ''MzJcdTA0MzBcdTA0NDBfXHUwNDQ0XHUwNDM1XHUwNDMyXHUwNDQwXHUwNDMwXHUwNDNiX1x1MDQzY1x1MDQzMFx1MDQ0MFx1MDQ0Ml9cdTA0MzBcdTA0M2ZcdTA0NDBcdTA0MzVcdTA0M2JfXHUwNDNjXHUwNDMwXHUwNDM5X1x1MDQzOFx1MDQ0ZVx1MDQzZF9cdTA0MzhcdTA0NGVcdTA0M2Jf''@;'; + put 'put ''XHUwNDMwXHUwNDMyXHUwNDMzXHUwNDQzXHUwNDQxXHUwNDQyX1x1MDQ0MVx1MDQzNVx1MDQzZFx1MDQ0Mlx1MDQ0Zlx1MDQzMVx1MDQ0MF9cdTA0M2VcdTA0M2FcdTA0NDJcdTA0NGZcdTA0MzFcdTA0NDBfXHUwNDNkXHUwNDNlXHUwNDRmXHUwNDMxXHUwNDQwX1x1MDQzNFx1MDQzNVx1MDQz''@;'; + put 'put ''YVx1MDQzMFx1MDQzMVx1MDQ0MCIuc3BsaXQoIl8iKX0sbW9udGhzU2hvcnQ6Ilx1MDQ0Zlx1MDQzZFx1MDQzMl9cdTA0NDRcdTA0MzVcdTA0MzJfXHUwNDNjXHUwNDMwXHUwNDQwX1x1MDQzMFx1MDQzZlx1MDQ0MF9cdTA0M2NcdTA0MzBcdTA0MzlfXHUwNDM4XHUwNDRlXHUwNDNkX1x1MDQz''@;'; + put 'put ''OFx1MDQ0ZVx1MDQzYl9cdTA0MzBcdTA0MzJcdTA0MzNfXHUwNDQxXHUwNDM1XHUwNDNkX1x1MDQzZVx1MDQzYVx1MDQ0Ml9cdTA0M2RcdTA0M2VcdTA0NGZfXHUwNDM0XHUwNDM1XHUwNDNhIi5zcGxpdCgiXyIpLHdlZWtkYXlzOiJcdTA0NGZcdTA0M2FcdTA0NDhcdTA0MzBcdTA0M2RcdTA0''@;'; + put 'put ''MzFcdTA0MzVfXHUwNDM0XHUwNDQzXHUwNDQ4XHUwNDMwXHUwNDNkXHUwNDMxXHUwNDM1X1x1MDQ0MVx1MDQzNVx1MDQ0OFx1MDQzMFx1MDQzZFx1MDQzMVx1MDQzNV9cdTA0NDdcdTA0M2VcdTA0NDBcdTA0NDhcdTA0MzBcdTA0M2RcdTA0MzFcdTA0MzVfXHUwNDNmXHUwNDMwXHUwNDNkXHUw''@;'; + put 'put ''NGI3XHUwNDQ4XHUwNDMwXHUwNDNkXHUwNDMxXHUwNDM1X1x1MDRiN1x1MDQ0M1x1MDQzY1x1MDQ0YVx1MDQzMF9cdTA0NDhcdTA0MzBcdTA0M2RcdTA0MzFcdTA0MzUiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiXHUwNDRmXHUwNDQ4XHUwNDMxX1x1MDQzNFx1MDQ0OFx1MDQzMV9cdTA0''@;'; + put 'put ''NDFcdTA0NDhcdTA0MzFfXHUwNDQ3XHUwNDQ4XHUwNDMxX1x1MDQzZlx1MDQ0OFx1MDQzMV9cdTA0YjdcdTA0NDNcdTA0M2NfXHUwNDQ4XHUwNDNkXHUwNDMxIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJcdTA0NGZcdTA0NDhfXHUwNDM0XHUwNDQ4X1x1MDQ0MVx1MDQ0OF9cdTA0NDdcdTA0''@;'; + put 'put ''NDhfXHUwNDNmXHUwNDQ4X1x1MDRiN1x1MDQzY19cdTA0NDhcdTA0MzEiLnNwbGl0KCJfIiksbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoiREQuTU0uWVlZWSIsTEw6IkQgTU1NTSBZWVlZIixMTEw6IkQgTU1NTSBZWVlZIEhIOm1tIixMTExMOiJkZGRkLCBE''@;'; + put 'put ''IE1NTU0gWVlZWSBISDptbSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbXHUwNDE4XHUwNDNjXHUwNDQwXHUwNGVmXHUwNDM3IFx1MDQ0MVx1MDQzZVx1MDQzMFx1MDQ0Mlx1MDQzOF0gTFQiLG5leHREYXk6IltcdTA0MjRcdTA0MzBcdTA0NDBcdTA0MzRcdTA0M2UgXHUwNDQxXHUwNDNlXHUwNDMw''@;'; + put 'put ''XHUwNDQyXHUwNDM4XSBMVCIsbGFzdERheToiW1x1MDQxNFx1MDQzOFx1MDQ0MFx1MDRlZlx1MDQzNyBcdTA0NDFcdTA0M2VcdTA0MzBcdTA0NDJcdTA0MzhdIExUIixuZXh0V2VlazoiZGRkZFtcdTA0MzhdIFtcdTA0YjNcdTA0MzBcdTA0NDRcdTA0NDJcdTA0MzBcdTA0MzggXHUwNDNlXHUw''@;'; + put 'put ''NDRmXHUwNDNkXHUwNDM0XHUwNDMwIFx1MDQ0MVx1MDQzZVx1MDQzMFx1MDQ0Mlx1MDQzOF0gTFQiLGxhc3RXZWVrOiJkZGRkW1x1MDQzOF0gW1x1MDRiM1x1MDQzMFx1MDQ0NFx1MDQ0Mlx1MDQzMFx1MDQzOCBcdTA0MzNcdTA0NDNcdTA0MzdcdTA0MzBcdTA0NDhcdTA0NDJcdTA0MzAgXHUw''@;'; + put 'put ''NDQxXHUwNDNlXHUwNDMwXHUwNDQyXHUwNDM4XSBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiXHUwNDMxXHUwNDMwXHUwNDRhXHUwNDM0XHUwNDM4ICVzIixwYXN0OiIlcyBcdTA0M2ZcdTA0MzVcdTA0NDgiLHM6Ilx1MDQ0Zlx1MDQzYVx1MDQ0N1x1MDQzMFx1MDQz''@;'; + put 'put ''ZFx1MDQzNCBcdTA0NDFcdTA0M2VcdTA0M2RcdTA0MzhcdTA0NGYiLG06Ilx1MDQ0Zlx1MDQzYSBcdTA0MzRcdTA0MzBcdTA0OWJcdTA0MzhcdTA0OWJcdTA0MzAiLG1tOiIlZCBcdTA0MzRcdTA0MzBcdTA0OWJcdTA0MzhcdTA0OWJcdTA0MzAiLGg6Ilx1MDQ0Zlx1MDQzYSBcdTA0NDFcdTA0''@;'; + put 'put ''M2VcdTA0MzBcdTA0NDIiLGhoOiIlZCBcdTA0NDFcdTA0M2VcdTA0MzBcdTA0NDIiLGQ6Ilx1MDQ0Zlx1MDQzYSBcdTA0NDBcdTA0ZWZcdTA0MzciLGRkOiIlZCBcdTA0NDBcdTA0ZWZcdTA0MzciLE06Ilx1MDQ0Zlx1MDQzYSBcdTA0M2NcdTA0M2VcdTA0YjMiLE1NOiIlZCBcdTA0M2NcdTA0''@;'; + put 'put ''M2VcdTA0YjMiLHk6Ilx1MDQ0Zlx1MDQzYSBcdTA0NDFcdTA0M2VcdTA0M2IiLHl5OiIlZCBcdTA0NDFcdTA0M2VcdTA0M2IifSxtZXJpZGllbVBhcnNlOi9cdTA0NDhcdTA0MzBcdTA0MzF8XHUwNDQxXHUwNDQzXHUwNDMxXHUwNGIzfFx1MDQ0MFx1MDRlZlx1MDQzN3xcdTA0MzFcdTA0MzVc''@;'; + put 'put ''dTA0MzNcdTA0M2VcdTA0YjMvLG1lcmlkaWVtSG91cjpmdW5jdGlvbihNZSxVKXtyZXR1cm4gMTI9PT1NZSYmKE1lPTApLCJcdTA0NDhcdTA0MzBcdTA0MzEiPT09VT9NZTw0P01lOk1lKzEyOiJcdTA0NDFcdTA0NDNcdTA0MzFcdTA0YjMiPT09VT9NZToiXHUwNDQwXHUwNGVmXHUwNDM3Ij09''@;'; + put 'put ''PVU/TWU+PTExP01lOk1lKzEyOiJcdTA0MzFcdTA0MzVcdTA0MzNcdTA0M2VcdTA0YjMiPT09VT9NZSsxMjp2b2lkIDB9LG1lcmlkaWVtOmZ1bmN0aW9uKE1lLFUsUSl7cmV0dXJuIE1lPDQ/Ilx1MDQ0OFx1MDQzMFx1MDQzMSI6TWU8MTE/Ilx1MDQ0MVx1MDQ0M1x1MDQzMVx1MDRiMyI6TWU8''@;'; + put 'put ''MTY/Ilx1MDQ0MFx1MDRlZlx1MDQzNyI6TWU8MTk/Ilx1MDQzMVx1MDQzNVx1MDQzM1x1MDQzZVx1MDRiMyI6Ilx1MDQ0OFx1MDQzMFx1MDQzMSJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn0tKFx1MDQ0M1x1MDQzY3xcdTA0NGVcdTA0M2MpLyxvcmRpbmFsOmZ1bmN0aW9uKE1l''@;'; + put 'put ''KXtyZXR1cm4gTWUrKEJbTWVdfHxCW01lJTEwXXx8QltNZT49MTAwPzEwMDpudWxsXSl9LHdlZWs6e2RvdzoxLGRveTo3fX0pfShMKDE1NDM5KSl9LDI4Njg6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7bWUuZGVmaW5lTG9jYWxlKCJ0aCIse21vbnRoczoi''@;'; + put 'put ''XHUwZTIxXHUwZTAxXHUwZTIzXHUwZTMyXHUwZTA0XHUwZTIxX1x1MGUwMVx1MGUzOFx1MGUyMVx1MGUyMFx1MGUzMlx1MGUxZVx1MGUzMVx1MGUxOVx1MGUxOFx1MGU0Y19cdTBlMjFcdTBlMzVcdTBlMTlcdTBlMzJcdTBlMDRcdTBlMjFfXHUwZTQwXHUwZTIxXHUwZTI5XHUwZTMyXHUwZTIy''@;'; + put 'put ''XHUwZTE5X1x1MGUxZVx1MGUyNFx1MGUyOVx1MGUyMFx1MGUzMlx1MGUwNFx1MGUyMV9cdTBlMjFcdTBlMzRcdTBlMTZcdTBlMzhcdTBlMTlcdTBlMzJcdTBlMjJcdTBlMTlfXHUwZTAxXHUwZTIzXHUwZTAxXHUwZTBlXHUwZTMyXHUwZTA0XHUwZTIxX1x1MGUyYVx1MGUzNFx1MGUwN1x1MGUy''@;'; + put 'put ''Ylx1MGUzMlx1MGUwNFx1MGUyMV9cdTBlMDFcdTBlMzFcdTBlMTlcdTBlMjJcdTBlMzJcdTBlMjJcdTBlMTlfXHUwZTE1XHUwZTM4XHUwZTI1XHUwZTMyXHUwZTA0XHUwZTIxX1x1MGUxZVx1MGUyNFx1MGUyOFx1MGUwOFx1MGUzNFx1MGUwMVx1MGUzMlx1MGUyMlx1MGUxOV9cdTBlMThcdTBl''@;'; + put 'put ''MzFcdTBlMTlcdTBlMjdcdTBlMzJcdTBlMDRcdTBlMjEiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6Ilx1MGUyMS5cdTBlMDQuX1x1MGUwMS5cdTBlMWUuX1x1MGUyMVx1MGUzNS5cdTBlMDQuX1x1MGU0MFx1MGUyMS5cdTBlMjIuX1x1MGUxZS5cdTBlMDQuX1x1MGUyMVx1MGUzNC5cdTBlMjIu''@;'; + put 'put ''X1x1MGUwMS5cdTBlMDQuX1x1MGUyYS5cdTBlMDQuX1x1MGUwMS5cdTBlMjIuX1x1MGUxNS5cdTBlMDQuX1x1MGUxZS5cdTBlMjIuX1x1MGUxOC5cdTBlMDQuIi5zcGxpdCgiXyIpLG1vbnRoc1BhcnNlRXhhY3Q6ITAsd2Vla2RheXM6Ilx1MGUyZFx1MGUzMlx1MGUxN1x1MGUzNFx1MGUxNVx1''@;'; + put 'put ''MGUyMlx1MGU0Y19cdTBlMDhcdTBlMzFcdTBlMTlcdTBlMTdcdTBlMjNcdTBlNGNfXHUwZTJkXHUwZTMxXHUwZTA3XHUwZTA0XHUwZTMyXHUwZTIzX1x1MGUxZVx1MGUzOFx1MGUxOF9cdTBlMWVcdTBlMjRcdTBlMmJcdTBlMzFcdTBlMmFcdTBlMWFcdTBlMTRcdTBlMzVfXHUwZTI4XHUwZTM4''@;'; + put 'put ''XHUwZTAxXHUwZTIzXHUwZTRjX1x1MGU0MFx1MGUyYVx1MGUzMlx1MGUyM1x1MGU0YyIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJcdTBlMmRcdTBlMzJcdTBlMTdcdTBlMzRcdTBlMTVcdTBlMjJcdTBlNGNfXHUwZTA4XHUwZTMxXHUwZTE5XHUwZTE3XHUwZTIzXHUwZTRjX1x1MGUyZFx1''@;'; + put 'put ''MGUzMVx1MGUwN1x1MGUwNFx1MGUzMlx1MGUyM19cdTBlMWVcdTBlMzhcdTBlMThfXHUwZTFlXHUwZTI0XHUwZTJiXHUwZTMxXHUwZTJhX1x1MGUyOFx1MGUzOFx1MGUwMVx1MGUyM1x1MGU0Y19cdTBlNDBcdTBlMmFcdTBlMzJcdTBlMjNcdTBlNGMiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46''@;'; + put 'put ''Ilx1MGUyZFx1MGUzMi5fXHUwZTA4Ll9cdTBlMmQuX1x1MGUxZS5fXHUwZTFlXHUwZTI0Ll9cdTBlMjguX1x1MGUyYS4iLnNwbGl0KCJfIiksd2Vla2RheXNQYXJzZUV4YWN0OiEwLGxvbmdEYXRlRm9ybWF0OntMVDoiSDptbSIsTFRTOiJIOm1tOnNzIixMOiJERC9NTS9ZWVlZIixMTDoiRCBN''@;'; + put 'put ''TU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVkgXHUwZTQwXHUwZTI3XHUwZTI1XHUwZTMyIEg6bW0iLExMTEw6Ilx1MGUyN1x1MGUzMVx1MGUxOWRkZGRcdTBlMTdcdTBlMzVcdTBlNDggRCBNTU1NIFlZWVkgXHUwZTQwXHUwZTI3XHUwZTI1XHUwZTMyIEg6bW0ifSxtZXJpZGllbVBhcnNlOi9c''@;'; + put 'put ''dTBlMDFcdTBlNDhcdTBlMmRcdTBlMTlcdTBlNDBcdTBlMTdcdTBlMzVcdTBlNDhcdTBlMjJcdTBlMDd8XHUwZTJiXHUwZTI1XHUwZTMxXHUwZTA3XHUwZTQwXHUwZTE3XHUwZTM1XHUwZTQ4XHUwZTIyXHUwZTA3Lyxpc1BNOmZ1bmN0aW9uKEUpe3JldHVybiJcdTBlMmJcdTBlMjVcdTBlMzFc''@;'; + put 'put ''dTBlMDdcdTBlNDBcdTBlMTdcdTBlMzVcdTBlNDhcdTBlMjJcdTBlMDciPT09RX0sbWVyaWRpZW06ZnVuY3Rpb24oRSxNZSxVKXtyZXR1cm4gRTwxMj8iXHUwZTAxXHUwZTQ4XHUwZTJkXHUwZTE5XHUwZTQwXHUwZTE3XHUwZTM1XHUwZTQ4XHUwZTIyXHUwZTA3IjoiXHUwZTJiXHUwZTI1XHUw''@;'; + put 'put ''ZTMxXHUwZTA3XHUwZTQwXHUwZTE3XHUwZTM1XHUwZTQ4XHUwZTIyXHUwZTA3In0sY2FsZW5kYXI6e3NhbWVEYXk6IltcdTBlMjdcdTBlMzFcdTBlMTlcdTBlMTlcdTBlMzVcdTBlNDkgXHUwZTQwXHUwZTI3XHUwZTI1XHUwZTMyXSBMVCIsbmV4dERheToiW1x1MGUxZVx1MGUyM1x1MGUzOFx1''@;'; + put 'put ''MGU0OFx1MGUwN1x1MGUxOVx1MGUzNVx1MGU0OSBcdTBlNDBcdTBlMjdcdTBlMjVcdTBlMzJdIExUIixuZXh0V2VlazoiZGRkZFtcdTBlMmJcdTBlMTlcdTBlNDlcdTBlMzIgXHUwZTQwXHUwZTI3XHUwZTI1XHUwZTMyXSBMVCIsbGFzdERheToiW1x1MGU0MFx1MGUyMVx1MGUzN1x1MGU0OFx1''@;'; + put 'put ''MGUyZFx1MGUyN1x1MGUzMlx1MGUxOVx1MGUxOVx1MGUzNVx1MGU0OSBcdTBlNDBcdTBlMjdcdTBlMjVcdTBlMzJdIExUIixsYXN0V2VlazoiW1x1MGUyN1x1MGUzMVx1MGUxOV1kZGRkW1x1MGUxN1x1MGUzNVx1MGU0OFx1MGU0MVx1MGUyNVx1MGU0OVx1MGUyNyBcdTBlNDBcdTBlMjdcdTBl''@;'; + put 'put ''MjVcdTBlMzJdIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJcdTBlMmRcdTBlMzVcdTBlMDEgJXMiLHBhc3Q6IiVzXHUwZTE3XHUwZTM1XHUwZTQ4XHUwZTQxXHUwZTI1XHUwZTQ5XHUwZTI3IixzOiJcdTBlNDRcdTBlMjFcdTBlNDhcdTBlMDFcdTBlMzVcdTBlNDhc''@;'; + put 'put ''dTBlMjdcdTBlMzRcdTBlMTlcdTBlMzJcdTBlMTdcdTBlMzUiLHNzOiIlZCBcdTBlMjdcdTBlMzRcdTBlMTlcdTBlMzJcdTBlMTdcdTBlMzUiLG06IjEgXHUwZTE5XHUwZTMyXHUwZTE3XHUwZTM1IixtbToiJWQgXHUwZTE5XHUwZTMyXHUwZTE3XHUwZTM1IixoOiIxIFx1MGUwYVx1MGUzMVx1''@;'; + put 'put ''MGU0OFx1MGUyN1x1MGU0Mlx1MGUyMVx1MGUwNyIsaGg6IiVkIFx1MGUwYVx1MGUzMVx1MGU0OFx1MGUyN1x1MGU0Mlx1MGUyMVx1MGUwNyIsZDoiMSBcdTBlMjdcdTBlMzFcdTBlMTkiLGRkOiIlZCBcdTBlMjdcdTBlMzFcdTBlMTkiLHc6IjEgXHUwZTJhXHUwZTMxXHUwZTFiXHUwZTE0XHUw''@;'; + put 'put ''ZTMyXHUwZTJiXHUwZTRjIix3dzoiJWQgXHUwZTJhXHUwZTMxXHUwZTFiXHUwZTE0XHUwZTMyXHUwZTJiXHUwZTRjIixNOiIxIFx1MGU0MFx1MGUxNFx1MGUzN1x1MGUyZFx1MGUxOSIsTU06IiVkIFx1MGU0MFx1MGUxNFx1MGUzN1x1MGUyZFx1MGUxOSIseToiMSBcdTBlMWJcdTBlMzUiLHl5''@;'; + put 'put ''OiIlZCBcdTBlMWJcdTBlMzUifX0pfShMKDE1NDM5KSl9LDMxMzEwOmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlvbihtZSl7InVzZSBzdHJpY3QiO3ZhciBCPXsxOiInaW5qaSIsNToiJ2luamkiLDg6IidpbmppIiw3MDoiJ2luamkiLDgwOiInaW5qaSIsMjoiJ25qaSIsNzoiJ25qaSIsMjA6''@;'; + put 'put ''IiduamkiLDUwOiInbmppIiwzOiInXHhmY25qaSIsNDoiJ1x4ZmNuamkiLDEwMDoiJ1x4ZmNuamkiLDY6IiduankiLDk6Iid1bmp5IiwxMDoiJ3VuankiLDMwOiIndW5qeSIsNjA6Iid5bmp5Iiw5MDoiJ3luankifTttZS5kZWZpbmVMb2NhbGUoInRrIix7bW9udGhzOiJceGRkYW53YXJfRmV3''@;'; + put 'put ''cmFsX01hcnRfQXByZWxfTWFceGZkX0lceGZkdW5fSVx4ZmR1bF9Bd2d1c3RfU2VudFx4ZmRhYnJfT2t0XHhmZGFicl9Ob1x4ZmRhYnJfRGVrYWJyIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJceGRkYW5fRmV3X01hcl9BcHJfTWFceGZkX0lceGZkbl9JXHhmZGxfQXdnX1Nlbl9Pa3RfTm9c''@;'; + put 'put ''eGZkX0RlayIuc3BsaXQoIl8iKSx3ZWVrZGF5czoiXHhkZGVrXHUwMTVmZW5iZV9EdVx1MDE1ZmVuYmVfU2lcdTAxNWZlbmJlX1x4Yzdhclx1MDE1ZmVuYmVfUGVuXHUwMTVmZW5iZV9Bbm5hX1x1MDE1ZWVuYmUiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiXHhkZGVrX0R1XHUwMTVmX1Np''@;'; + put 'put ''XHUwMTVmX1x4Yzdhcl9QZW5fQW5uX1x1MDE1ZWVuIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJceGRka19EXHUwMTVmX1NcdTAxNWZfXHhjN3JfUG5fQW5fXHUwMTVlbiIuc3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJERC5NTS5ZWVlZ''@;'; + put 'put ''IixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVkgSEg6bW0iLExMTEw6ImRkZGQsIEQgTU1NTSBZWVlZIEhIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltidWdceGZjbiBzYWdhdF0gTFQiLG5leHREYXk6IltlcnRpciBzYWdhdF0gTFQiLG5leHRXZWVrOiJbaW5kaWtpXSBkZGRk''@;'; + put 'put ''IFtzYWdhdF0gTFQiLGxhc3REYXk6IltkXHhmY1x4ZmRuXSBMVCIsbGFzdFdlZWs6IltnZVx4ZTdlbl0gZGRkZCBbc2FnYXRdIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiIlcyBzb1x1MDE0OCIscGFzdDoiJXMgXHhmNlx1MDE0OCIsczoiYmlyblx4ZTRceGU3ZSBz''@;'; + put 'put ''ZWt1bnQiLG06ImJpciBtaW51dCIsbW06IiVkIG1pbnV0IixoOiJiaXIgc2FnYXQiLGhoOiIlZCBzYWdhdCIsZDoiYmlyIGdceGZjbiIsZGQ6IiVkIGdceGZjbiIsTToiYmlyIGFceGZkIixNTToiJWQgYVx4ZmQiLHk6ImJpciBceGZkeWwiLHl5OiIlZCBceGZkeWwifSxvcmRpbmFsOmZ1bmN0''@;'; + put 'put ''aW9uKE1lLFUpe3N3aXRjaChVKXtjYXNlImQiOmNhc2UiRCI6Y2FzZSJEbyI6Y2FzZSJERCI6cmV0dXJuIE1lO2RlZmF1bHQ6aWYoMD09PU1lKXJldHVybiBNZSsiJ3VuankiO3ZhciBRPU1lJTEwO3JldHVybiBNZSsoQltRXXx8QltNZSUxMDAtUV18fEJbTWU+PTEwMD8xMDA6bnVsbF0pfX0s''@;'; + put 'put ''d2Vlazp7ZG93OjEsZG95Ojd9fSl9KEwoMTU0MzkpKX0sMjIzNjA6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7bWUuZGVmaW5lTG9jYWxlKCJ0bC1waCIse21vbnRoczoiRW5lcm9fUGVicmVyb19NYXJzb19BYnJpbF9NYXlvX0h1bnlvX0h1bHlvX0Fnb3N0''@;'; + put 'put ''b19TZXR5ZW1icmVfT2t0dWJyZV9Ob2J5ZW1icmVfRGlzeWVtYnJlIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJFbmVfUGViX01hcl9BYnJfTWF5X0h1bl9IdWxfQWdvX1NldF9Pa3RfTm9iX0RpcyIuc3BsaXQoIl8iKSx3ZWVrZGF5czoiTGluZ2dvX0x1bmVzX01hcnRlc19NaXllcmt1bGVz''@;'; + put 'put ''X0h1d2ViZXNfQml5ZXJuZXNfU2FiYWRvIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6Ikxpbl9MdW5fTWFyX01peV9IdXdfQml5X1NhYiIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiTGlfTHVfTWFfTWlfSHVfQmlfU2FiIi5zcGxpdCgiXyIpLGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0i''@;'; + put 'put ''LExUUzoiSEg6bW06c3MiLEw6Ik1NL0QvWVlZWSIsTEw6Ik1NTU0gRCwgWVlZWSIsTExMOiJNTU1NIEQsIFlZWVkgSEg6bW0iLExMTEw6ImRkZGQsIE1NTU0gREQsIFlZWVkgSEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiTFQgW25nYXlvbmcgYXJhd10iLG5leHREYXk6IltCdWthcyBuZ10g''@;'; + put 'put ''TFQiLG5leHRXZWVrOiJMVCBbc2Egc3VzdW5vZCBuYV0gZGRkZCIsbGFzdERheToiTFQgW2thaGFwb25dIixsYXN0V2VlazoiTFQgW25vb25nIG5ha2FyYWFuZ10gZGRkZCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToic2EgbG9vYiBuZyAlcyIscGFzdDoiJXMgYW5nIG5h''@;'; + put 'put ''a2FsaXBhcyIsczoiaWxhbmcgc2VndW5kbyIsc3M6IiVkIHNlZ3VuZG8iLG06ImlzYW5nIG1pbnV0byIsbW06IiVkIG1pbnV0byIsaDoiaXNhbmcgb3JhcyIsaGg6IiVkIG9yYXMiLGQ6ImlzYW5nIGFyYXciLGRkOiIlZCBhcmF3IixNOiJpc2FuZyBidXdhbiIsTU06IiVkIGJ1d2FuIix5OiJp''@;'; + put 'put ''c2FuZyB0YW9uIix5eToiJWQgdGFvbiJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn0vLG9yZGluYWw6ZnVuY3Rpb24oRSl7cmV0dXJuIEV9LHdlZWs6e2RvdzoxLGRveTo0fX0pfShMKDE1NDM5KSl9LDY2NjQ1OmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlvbihtZSl7InVzZSBz''@;'; + put 'put ''dHJpY3QiO3ZhciBCPSJwYWdoX3dhXHUyMDE5X2NoYVx1MjAxOV93ZWpfbG9TX3ZhZ2hfamF2X1NvY2hfY2hvcmdoX0h1dCIuc3BsaXQoIl8iKTtmdW5jdGlvbiBVKGllLGFlLFksVyl7dmFyIE49ZnVuY3Rpb24gUShpZSl7dmFyIGFlPU1hdGguZmxvb3IoaWUlMWUzLzEwMCksWT1NYXRoLmZs''@;'; + put 'put ''b29yKGllJTEwMC8xMCksVz1pZSUxMCxOPSIiO3JldHVybiBhZT4wJiYoTis9QlthZV0rInZhdGxoIiksWT4wJiYoTis9KCIiIT09Tj8iICI6IiIpK0JbWV0rIm1hSCIpLFc+MCYmKE4rPSgiIiE9PU4/IiAiOiIiKStCW1ddKSwiIj09PU4/InBhZ2giOk59KGllKTtzd2l0Y2goWSl7Y2FzZSJz''@;'; + put 'put ''cyI6cmV0dXJuIE4rIiBsdXAiO2Nhc2UibW0iOnJldHVybiBOKyIgdHVwIjtjYXNlImhoIjpyZXR1cm4gTisiIHJlcCI7Y2FzZSJkZCI6cmV0dXJuIE4rIiBqYWoiO2Nhc2UiTU0iOnJldHVybiBOKyIgamFyIjtjYXNlInl5IjpyZXR1cm4gTisiIERJUyJ9fW1lLmRlZmluZUxvY2FsZSgidGxo''@;'; + put 'put ''Iix7bW9udGhzOiJ0ZXJhXHUyMDE5IGphciB3YVx1MjAxOV90ZXJhXHUyMDE5IGphciBjaGFcdTIwMTlfdGVyYVx1MjAxOSBqYXIgd2VqX3RlcmFcdTIwMTkgamFyIGxvU190ZXJhXHUyMDE5IGphciB2YWdoX3RlcmFcdTIwMTkgamFyIGphdl90ZXJhXHUyMDE5IGphciBTb2NoX3RlcmFcdTIw''@;'; + put 'put ''MTkgamFyIGNob3JnaF90ZXJhXHUyMDE5IGphciBIdXRfdGVyYVx1MjAxOSBqYXIgd2FcdTIwMTltYUhfdGVyYVx1MjAxOSBqYXIgd2FcdTIwMTltYUggd2FcdTIwMTlfdGVyYVx1MjAxOSBqYXIgd2FcdTIwMTltYUggY2hhXHUyMDE5Ii5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJqYXIgd2Fc''@;'; + put 'put ''dTIwMTlfamFyIGNoYVx1MjAxOV9qYXIgd2VqX2phciBsb1NfamFyIHZhZ2hfamFyIGphdl9qYXIgU29jaF9qYXIgY2hvcmdoX2phciBIdXRfamFyIHdhXHUyMDE5bWFIX2phciB3YVx1MjAxOW1hSCB3YVx1MjAxOV9qYXIgd2FcdTIwMTltYUggY2hhXHUyMDE5Ii5zcGxpdCgiXyIpLG1vbnRo''@;'; + put 'put ''c1BhcnNlRXhhY3Q6ITAsd2Vla2RheXM6Imxvam1JdGphal9EYVNqYWpfcG92amFqX2doSXRsaGphal9sb2doamFqX2J1cWphal9naEluamFqIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6Imxvam1JdGphal9EYVNqYWpfcG92amFqX2doSXRsaGphal9sb2doamFqX2J1cWphal9naEluamFq''@;'; + put 'put ''Ii5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJsb2ptSXRqYWpfRGFTamFqX3Bvdmphal9naEl0bGhqYWpfbG9naGphal9idXFqYWpfZ2hJbmphaiIuc3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJERC5NTS5ZWVlZIixMTDoiRCBNTU1NIFlZ''@;'; + put 'put ''WVkiLExMTDoiRCBNTU1NIFlZWVkgSEg6bW0iLExMTEw6ImRkZGQsIEQgTU1NTSBZWVlZIEhIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltEYUhqYWpdIExUIixuZXh0RGF5OiJbd2FcdTIwMTlsZVNdIExUIixuZXh0V2VlazoiTExMIixsYXN0RGF5OiJbd2FcdTIwMTlIdVx1MjAxOV0gTFQi''@;'; + put 'put ''LGxhc3RXZWVrOiJMTEwiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6ZnVuY3Rpb24gRShpZSl7dmFyIGFlPWllO3JldHVybi0xIT09aWUuaW5kZXhPZigiamFqIik/YWUuc2xpY2UoMCwtMykrImxlUyI6LTEhPT1pZS5pbmRleE9mKCJqYXIiKT9hZS5zbGljZSgwLC0zKSsi''@;'; + put 'put ''d2FRIjotMSE9PWllLmluZGV4T2YoIkRJUyIpP2FlLnNsaWNlKDAsLTMpKyJuZW0iOmFlKyIgcElxIn0scGFzdDpmdW5jdGlvbiBNZShpZSl7dmFyIGFlPWllO3JldHVybi0xIT09aWUuaW5kZXhPZigiamFqIik/YWUuc2xpY2UoMCwtMykrIkh1XHUyMDE5IjotMSE9PWllLmluZGV4T2YoImph''@;'; + put 'put ''ciIpP2FlLnNsaWNlKDAsLTMpKyJ3ZW4iOi0xIT09aWUuaW5kZXhPZigiRElTIik/YWUuc2xpY2UoMCwtMykrImJlbiI6YWUrIiByZXQifSxzOiJwdVMgbHVwIixzczpVLG06IndhXHUyMDE5IHR1cCIsbW06VSxoOiJ3YVx1MjAxOSByZXAiLGhoOlUsZDoid2FcdTIwMTkgamFqIixkZDpVLE06''@;'; + put 'put ''IndhXHUyMDE5IGphciIsTU06VSx5OiJ3YVx1MjAxOSBESVMiLHl5OlV9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn1cLi8sb3JkaW5hbDoiJWQuIix3ZWVrOntkb3c6MSxkb3k6NH19KX0oTCgxNTQzOSkpfSw5ODM3NDpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1''@;'; + put 'put ''c2Ugc3RyaWN0Ijt2YXIgQj17MToiJ2luY2kiLDU6IidpbmNpIiw4OiInaW5jaSIsNzA6IidpbmNpIiw4MDoiJ2luY2kiLDI6IiduY2kiLDc6IiduY2kiLDIwOiInbmNpIiw1MDoiJ25jaSIsMzoiJ1x4ZmNuY1x4ZmMiLDQ6IidceGZjbmNceGZjIiwxMDA6IidceGZjbmNceGZjIiw2OiInbmNc''@;'; + put 'put ''dTAxMzEiLDk6Iid1bmN1IiwxMDoiJ3VuY3UiLDMwOiIndW5jdSIsNjA6IidcdTAxMzFuY1x1MDEzMSIsOTA6IidcdTAxMzFuY1x1MDEzMSJ9O21lLmRlZmluZUxvY2FsZSgidHIiLHttb250aHM6Ik9jYWtfXHUwMTVldWJhdF9NYXJ0X05pc2FuX01heVx1MDEzMXNfSGF6aXJhbl9UZW1tdXpf''@;'; + put 'put ''QVx1MDExZnVzdG9zX0V5bFx4ZmNsX0VraW1fS2FzXHUwMTMxbV9BcmFsXHUwMTMxayIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiT2NhX1x1MDE1ZXViX01hcl9OaXNfTWF5X0hhel9UZW1fQVx1MDExZnVfRXlsX0VraV9LYXNfQXJhIi5zcGxpdCgiXyIpLHdlZWtkYXlzOiJQYXphcl9QYXph''@;'; + put 'put ''cnRlc2lfU2FsXHUwMTMxX1x4Yzdhclx1MDE1ZmFtYmFfUGVyXHUwMTVmZW1iZV9DdW1hX0N1bWFydGVzaSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJQYXpfUHp0X1NhbF9ceGM3YXJfUGVyX0N1bV9DbXQiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46IlB6X1B0X1NhX1x4YzdhX1BlX0N1''@;'; + put 'put ''X0N0Ii5zcGxpdCgiXyIpLG1lcmlkaWVtOmZ1bmN0aW9uKE1lLFUsUSl7cmV0dXJuIE1lPDEyP1E/Ilx4ZjZceGY2IjoiXHhkNlx4ZDYiOlE/Ilx4ZjZzIjoiXHhkNlMifSxtZXJpZGllbVBhcnNlOi9ceGY2XHhmNnxceGQ2XHhkNnxceGY2c3xceGQ2Uy8saXNQTTpmdW5jdGlvbihNZSl7cmV0''@;'; + put 'put ''dXJuIlx4ZjZzIj09PU1lfHwiXHhkNlMiPT09TWV9LGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IkRELk1NLllZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0gWVlZWSBISDptbSIsTExMTDoiZGRkZCwgRCBNTU1NIFlZWVkgSEg6bW0ifSxjYWxl''@;'; + put 'put ''bmRhcjp7c2FtZURheToiW2J1Z1x4ZmNuIHNhYXRdIExUIixuZXh0RGF5OiJbeWFyXHUwMTMxbiBzYWF0XSBMVCIsbmV4dFdlZWs6IltnZWxlY2VrXSBkZGRkIFtzYWF0XSBMVCIsbGFzdERheToiW2RceGZjbl0gTFQiLGxhc3RXZWVrOiJbZ2VceGU3ZW5dIGRkZGQgW3NhYXRdIExUIixzYW1l''@;'; + put 'put ''RWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiIlcyBzb25yYSIscGFzdDoiJXMgXHhmNm5jZSIsczoiYmlya2FceGU3IHNhbml5ZSIsc3M6IiVkIHNhbml5ZSIsbToiYmlyIGRha2lrYSIsbW06IiVkIGRha2lrYSIsaDoiYmlyIHNhYXQiLGhoOiIlZCBzYWF0IixkOiJiaXIgZ1x4ZmNu''@;'; + put 'put ''IixkZDoiJWQgZ1x4ZmNuIix3OiJiaXIgaGFmdGEiLHd3OiIlZCBoYWZ0YSIsTToiYmlyIGF5IixNTToiJWQgYXkiLHk6ImJpciB5XHUwMTMxbCIseXk6IiVkIHlcdTAxMzFsIn0sb3JkaW5hbDpmdW5jdGlvbihNZSxVKXtzd2l0Y2goVSl7Y2FzZSJkIjpjYXNlIkQiOmNhc2UiRG8iOmNhc2Ui''@;'; + put 'put ''REQiOnJldHVybiBNZTtkZWZhdWx0OmlmKDA9PT1NZSlyZXR1cm4gTWUrIidcdTAxMzFuY1x1MDEzMSI7dmFyIFE9TWUlMTA7cmV0dXJuIE1lKyhCW1FdfHxCW01lJTEwMC1RXXx8QltNZT49MTAwPzEwMDpudWxsXSl9fSx3ZWVrOntkb3c6MSxkb3k6N319KX0oTCgxNTQzOSkpfSwyNTY6ZnVu''@;'; + put 'put ''Y3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gRShNZSxVLFEsWil7dmFyIGllPXtzOlsidmllbnNhcyBzZWN1bmRzIiwiJ2llbnNhcyBzZWN1bmRzIl0sc3M6W01lKyIgc2VjdW5kcyIsTWUrIiBzZWN1bmRzIl0sbTpbIiduIG1ceGVkdXQiLCInaWVu''@;'; + put 'put ''cyBtXHhlZHV0Il0sbW06W01lKyIgbVx4ZWR1dHMiLE1lKyIgbVx4ZWR1dHMiXSxoOlsiJ24gXHhmZW9yYSIsIidpZW5zYSBceGZlb3JhIl0saGg6W01lKyIgXHhmZW9yYXMiLE1lKyIgXHhmZW9yYXMiXSxkOlsiJ24geml1YSIsIidpZW5zYSB6aXVhIl0sZGQ6W01lKyIgeml1YXMiLE1lKyIg''@;'; + put 'put ''eml1YXMiXSxNOlsiJ24gbWVzIiwiJ2llbnMgbWVzIl0sTU06W01lKyIgbWVzZW4iLE1lKyIgbWVzZW4iXSx5OlsiJ24gYXIiLCInaWVucyBhciJdLHl5OltNZSsiIGFycyIsTWUrIiBhcnMiXX07cmV0dXJuIFp8fFU/aWVbUV1bMF06aWVbUV1bMV19bWUuZGVmaW5lTG9jYWxlKCJ0emwiLHtt''@;'; + put 'put ''b250aHM6IkphbnVhcl9GZXZyYWdsaF9NYXJceGU3X0F2clx4ZWZ1X01haV9HXHhmY25fSnVsaWFfR3VzY2h0X1NldGVtdmFyX0xpc3RvcFx4ZTR0c19Ob2VtdmFyX1plY2VtdmFyIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJKYW5fRmV2X01hcl9BdnJfTWFpX0dceGZjbl9KdWxfR3VzX1Nl''@;'; + put 'put ''dF9MaXNfTm9lX1plYyIuc3BsaXQoIl8iKSx3ZWVrZGF5czoiU1x4ZmFsYWRpX0xceGZhbmVceGU3aV9NYWl0emlfTVx4ZTFyY3VyaV9YaFx4ZmFhZGlfVmlceGU5bmVyXHhlN2lfU1x4ZTF0dXJpIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6IlNceGZhbF9MXHhmYW5fTWFpX01ceGUxcl9Y''@;'; + put 'put ''aFx4ZmFfVmlceGU5X1NceGUxdCIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiU1x4ZmFfTFx4ZmFfTWFfTVx4ZTFfWGhfVmlfU1x4ZTEiLnNwbGl0KCJfIiksbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISC5tbSIsTFRTOiJISC5tbS5zcyIsTDoiREQuTU0uWVlZWSIsTEw6IkQuIE1NTU0gW2RhbGxh''@;'; + put 'put ''c10gWVlZWSIsTExMOiJELiBNTU1NIFtkYWxsYXNdIFlZWVkgSEgubW0iLExMTEw6ImRkZGQsIFtsaV0gRC4gTU1NTSBbZGFsbGFzXSBZWVlZIEhILm1tIn0sbWVyaWRpZW1QYXJzZTovZFwnb3xkXCdhL2ksaXNQTTpmdW5jdGlvbihNZSl7cmV0dXJuImQnbyI9PT1NZS50b0xvd2VyQ2FzZSgp''@;'; + put 'put ''fSxtZXJpZGllbTpmdW5jdGlvbihNZSxVLFEpe3JldHVybiBNZT4xMT9RPyJkJ28iOiJEJ08iOlE/ImQnYSI6IkQnQSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbb3hoaSBceGUwXSBMVCIsbmV4dERheToiW2RlbVx4ZTAgXHhlMF0gTFQiLG5leHRXZWVrOiJkZGRkIFtceGUwXSBMVCIsbGFzdERh''@;'; + put 'put ''eToiW2llaXJpIFx4ZTBdIExUIixsYXN0V2VlazoiW3NceGZjciBlbF0gZGRkZCBbbGFzdGV1IFx4ZTBdIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJvc3ByZWkgJXMiLHBhc3Q6ImphJXMiLHM6RSxzczpFLG06RSxtbTpFLGg6RSxoaDpFLGQ6RSxkZDpFLE06RSxN''@;'; + put 'put ''TTpFLHk6RSx5eTpFfSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9XC4vLG9yZGluYWw6IiVkLiIsd2Vlazp7ZG93OjEsZG95OjR9fSl9KEwoMTU0MzkpKX0sNjE2MzE6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7bWUuZGVmaW5lTG9jYWxlKCJ0''@;'; + put 'put ''em0tbGF0biIse21vbnRoczoiaW5uYXlyX2JyXHUwMmU0YXlyXHUwMmU0X21hclx1MDJlNHNcdTAyZTRfaWJyaXJfbWF5eXdfeXdueXdfeXdseXd6X1x1MDI2M3dcdTAxNjF0X1x1MDE2MXd0YW5iaXJfa3RcdTAyZTR3YnJcdTAyZTRfbnd3YW5iaXJfZHdqbmJpciIuc3BsaXQoIl8iKSxtb250''@;'; + put 'put ''aHNTaG9ydDoiaW5uYXlyX2JyXHUwMmU0YXlyXHUwMmU0X21hclx1MDJlNHNcdTAyZTRfaWJyaXJfbWF5eXdfeXdueXdfeXdseXd6X1x1MDI2M3dcdTAxNjF0X1x1MDE2MXd0YW5iaXJfa3RcdTAyZTR3YnJcdTAyZTRfbnd3YW5iaXJfZHdqbmJpciIuc3BsaXQoIl8iKSx3ZWVrZGF5czoiYXNh''@;'; + put 'put ''bWFzX2F5bmFzX2FzaW5hc19ha3Jhc19ha3dhc19hc2ltd2FzX2FzaVx1MWUwZHlhcyIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJhc2FtYXNfYXluYXNfYXNpbmFzX2FrcmFzX2Frd2FzX2FzaW13YXNfYXNpXHUxZTBkeWFzIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJhc2FtYXNfYXlu''@;'; + put 'put ''YXNfYXNpbmFzX2FrcmFzX2Frd2FzX2FzaW13YXNfYXNpXHUxZTBkeWFzIi5zcGxpdCgiXyIpLGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IkREL01NL1lZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0gWVlZWSBISDptbSIsTExMTDoiZGRkZCBE''@;'; + put 'put ''IE1NTU0gWVlZWSBISDptbSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbYXNka2ggZ10gTFQiLG5leHREYXk6Ilthc2thIGddIExUIixuZXh0V2VlazoiZGRkZCBbZ10gTFQiLGxhc3REYXk6Ilthc3NhbnQgZ10gTFQiLGxhc3RXZWVrOiJkZGRkIFtnXSBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2''@;'; + put 'put ''ZVRpbWU6e2Z1dHVyZToiZGFka2ggcyB5YW4gJXMiLHBhc3Q6InlhbiAlcyIsczoiaW1payIsc3M6IiVkIGltaWsiLG06Im1pbnVcdTFlMGQiLG1tOiIlZCBtaW51XHUxZTBkIixoOiJzYVx1MDI1YmEiLGhoOiIlZCB0YXNzYVx1MDI1YmluIixkOiJhc3MiLGRkOiIlZCBvc3NhbiIsTToiYXlv''@;'; + put 'put ''d3IiLE1NOiIlZCBpeXlpcm4iLHk6ImFzZ2FzIix5eToiJWQgaXNnYXNuIn0sd2Vlazp7ZG93OjYsZG95OjEyfX0pfShMKDE1NDM5KSl9LDYxNTk1OmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlvbihtZSl7InVzZSBzdHJpY3QiO21lLmRlZmluZUxvY2FsZSgidHptIix7bW9udGhzOiJcdTJk''@;'; + put 'put ''NDlcdTJkNGZcdTJkNGZcdTJkMzBcdTJkNjJcdTJkNTRfXHUyZDMxXHUyZDU1XHUyZDMwXHUyZDYyXHUyZDU1X1x1MmQ0ZVx1MmQzMFx1MmQ1NVx1MmQ1YV9cdTJkNDlcdTJkMzFcdTJkNTRcdTJkNDlcdTJkNTRfXHUyZDRlXHUyZDMwXHUyZDYyXHUyZDYyXHUyZDUzX1x1MmQ2Mlx1MmQ1M1x1''@;'; + put 'put ''MmQ0Zlx1MmQ2Mlx1MmQ1M19cdTJkNjJcdTJkNTNcdTJkNGRcdTJkNjJcdTJkNTNcdTJkNjNfXHUyZDU2XHUyZDUzXHUyZDViXHUyZDVjX1x1MmQ1Ylx1MmQ1M1x1MmQ1Y1x1MmQzMFx1MmQ0Zlx1MmQzMVx1MmQ0OVx1MmQ1NF9cdTJkM2RcdTJkNWZcdTJkNTNcdTJkMzFcdTJkNTVfXHUyZDRm''@;'; + put 'put ''XHUyZDUzXHUyZDYxXHUyZDMwXHUyZDRmXHUyZDMxXHUyZDQ5XHUyZDU0X1x1MmQzN1x1MmQ1M1x1MmQ0YVx1MmQ0Zlx1MmQzMVx1MmQ0OVx1MmQ1NCIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiXHUyZDQ5XHUyZDRmXHUyZDRmXHUyZDMwXHUyZDYyXHUyZDU0X1x1MmQzMVx1MmQ1NVx1MmQz''@;'; + put 'put ''MFx1MmQ2Mlx1MmQ1NV9cdTJkNGVcdTJkMzBcdTJkNTVcdTJkNWFfXHUyZDQ5XHUyZDMxXHUyZDU0XHUyZDQ5XHUyZDU0X1x1MmQ0ZVx1MmQzMFx1MmQ2Mlx1MmQ2Mlx1MmQ1M19cdTJkNjJcdTJkNTNcdTJkNGZcdTJkNjJcdTJkNTNfXHUyZDYyXHUyZDUzXHUyZDRkXHUyZDYyXHUyZDUzXHUy''@;'; + put 'put ''ZDYzX1x1MmQ1Nlx1MmQ1M1x1MmQ1Ylx1MmQ1Y19cdTJkNWJcdTJkNTNcdTJkNWNcdTJkMzBcdTJkNGZcdTJkMzFcdTJkNDlcdTJkNTRfXHUyZDNkXHUyZDVmXHUyZDUzXHUyZDMxXHUyZDU1X1x1MmQ0Zlx1MmQ1M1x1MmQ2MVx1MmQzMFx1MmQ0Zlx1MmQzMVx1MmQ0OVx1MmQ1NF9cdTJkMzdc''@;'; + put 'put ''dTJkNTNcdTJkNGFcdTJkNGZcdTJkMzFcdTJkNDlcdTJkNTQiLnNwbGl0KCJfIiksd2Vla2RheXM6Ilx1MmQzMFx1MmQ1OVx1MmQzMFx1MmQ0ZVx1MmQzMFx1MmQ1OV9cdTJkMzBcdTJkNjJcdTJkNGZcdTJkMzBcdTJkNTlfXHUyZDMwXHUyZDU5XHUyZDQ5XHUyZDRmXHUyZDMwXHUyZDU5X1x1''@;'; + put 'put ''MmQzMFx1MmQzZFx1MmQ1NFx1MmQzMFx1MmQ1OV9cdTJkMzBcdTJkM2RcdTJkNjFcdTJkMzBcdTJkNTlfXHUyZDMwXHUyZDU5XHUyZDQ5XHUyZDRlXHUyZDYxXHUyZDMwXHUyZDU5X1x1MmQzMFx1MmQ1OVx1MmQ0OVx1MmQzOVx1MmQ2Mlx1MmQzMFx1MmQ1OSIuc3BsaXQoIl8iKSx3ZWVrZGF5''@;'; + put 'put ''c1Nob3J0OiJcdTJkMzBcdTJkNTlcdTJkMzBcdTJkNGVcdTJkMzBcdTJkNTlfXHUyZDMwXHUyZDYyXHUyZDRmXHUyZDMwXHUyZDU5X1x1MmQzMFx1MmQ1OVx1MmQ0OVx1MmQ0Zlx1MmQzMFx1MmQ1OV9cdTJkMzBcdTJkM2RcdTJkNTRcdTJkMzBcdTJkNTlfXHUyZDMwXHUyZDNkXHUyZDYxXHUy''@;'; + put 'put ''ZDMwXHUyZDU5X1x1MmQzMFx1MmQ1OVx1MmQ0OVx1MmQ0ZVx1MmQ2MVx1MmQzMFx1MmQ1OV9cdTJkMzBcdTJkNTlcdTJkNDlcdTJkMzlcdTJkNjJcdTJkMzBcdTJkNTkiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46Ilx1MmQzMFx1MmQ1OVx1MmQzMFx1MmQ0ZVx1MmQzMFx1MmQ1OV9cdTJkMzBc''@;'; + put 'put ''dTJkNjJcdTJkNGZcdTJkMzBcdTJkNTlfXHUyZDMwXHUyZDU5XHUyZDQ5XHUyZDRmXHUyZDMwXHUyZDU5X1x1MmQzMFx1MmQzZFx1MmQ1NFx1MmQzMFx1MmQ1OV9cdTJkMzBcdTJkM2RcdTJkNjFcdTJkMzBcdTJkNTlfXHUyZDMwXHUyZDU5XHUyZDQ5XHUyZDRlXHUyZDYxXHUyZDMwXHUyZDU5''@;'; + put 'put ''X1x1MmQzMFx1MmQ1OVx1MmQ0OVx1MmQzOVx1MmQ2Mlx1MmQzMFx1MmQ1OSIuc3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJERC9NTS9ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVkgSEg6bW0iLExMTEw6ImRkZGQg''@;'; + put 'put ''RCBNTU1NIFlZWVkgSEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW1x1MmQzMFx1MmQ1OVx1MmQzN1x1MmQ0NSBcdTJkMzRdIExUIixuZXh0RGF5OiJbXHUyZDMwXHUyZDU5XHUyZDNkXHUyZDMwIFx1MmQzNF0gTFQiLG5leHRXZWVrOiJkZGRkIFtcdTJkMzRdIExUIixsYXN0RGF5OiJbXHUy''@;'; + put 'put ''ZDMwXHUyZDVhXHUyZDMwXHUyZDRmXHUyZDVjIFx1MmQzNF0gTFQiLGxhc3RXZWVrOiJkZGRkIFtcdTJkMzRdIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJcdTJkMzdcdTJkMzBcdTJkMzdcdTJkNDUgXHUyZDU5IFx1MmQ2Mlx1MmQzMFx1MmQ0ZiAlcyIscGFzdDoi''@;'; + put 'put ''XHUyZDYyXHUyZDMwXHUyZDRmICVzIixzOiJcdTJkNDlcdTJkNGVcdTJkNDlcdTJkM2QiLHNzOiIlZCBcdTJkNDlcdTJkNGVcdTJkNDlcdTJkM2QiLG06Ilx1MmQ0ZVx1MmQ0OVx1MmQ0Zlx1MmQ1M1x1MmQzYSIsbW06IiVkIFx1MmQ0ZVx1MmQ0OVx1MmQ0Zlx1MmQ1M1x1MmQzYSIsaDoiXHUy''@;'; + put 'put ''ZDU5XHUyZDMwXHUyZDQ0XHUyZDMwIixoaDoiJWQgXHUyZDVjXHUyZDMwXHUyZDU5XHUyZDU5XHUyZDMwXHUyZDQ0XHUyZDQ5XHUyZDRmIixkOiJcdTJkMzBcdTJkNTlcdTJkNTkiLGRkOiIlZCBvXHUyZDU5XHUyZDU5XHUyZDMwXHUyZDRmIixNOiJcdTJkMzBcdTJkNjJvXHUyZDUzXHUyZDU0''@;'; + put 'put ''IixNTToiJWQgXHUyZDQ5XHUyZDYyXHUyZDYyXHUyZDQ5XHUyZDU0XHUyZDRmIix5OiJcdTJkMzBcdTJkNTlcdTJkMzNcdTJkMzBcdTJkNTkiLHl5OiIlZCBcdTJkNDlcdTJkNTlcdTJkMzNcdTJkMzBcdTJkNTlcdTJkNGYifSx3ZWVrOntkb3c6Nixkb3k6MTJ9fSl9KEwoMTU0MzkpKX0sNjA1''@;'; + put 'put ''MDpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0IjttZS5kZWZpbmVMb2NhbGUoInVnLWNuIix7bW9udGhzOiJcdTA2NGFcdTA2MjdcdTA2NDZcdTA2Y2JcdTA2MjdcdTA2MzFfXHUwNjQxXHUwNmQwXHUwNmNiXHUwNjMxXHUwNjI3XHUwNjQ0X1x1MDY0NVx1MDYy''@;'; + put 'put ''N1x1MDYzMVx1MDYyYV9cdTA2MjZcdTA2MjdcdTA2N2VcdTA2MzFcdTA2ZDBcdTA2NDRfXHUwNjQ1XHUwNjI3XHUwNjRhX1x1MDYyNlx1MDY0OVx1MDY0YVx1MDZjN1x1MDY0Nl9cdTA2MjZcdTA2NDlcdTA2NGFcdTA2YzdcdTA2NDRfXHUwNjI2XHUwNjI3XHUwNmNiXHUwNjNhXHUwNmM3XHUw''@;'; + put 'put ''NjMzXHUwNjJhX1x1MDYzM1x1MDZkMFx1MDY0Nlx1MDYyYVx1MDZkNVx1MDYyOFx1MDY0OVx1MDYzMV9cdTA2MjZcdTA2YzZcdTA2NDNcdTA2MmFcdTA2ZDVcdTA2MjhcdTA2NDlcdTA2MzFfXHUwNjQ2XHUwNjQ4XHUwNjRhXHUwNjI3XHUwNjI4XHUwNjQ5XHUwNjMxX1x1MDYyZlx1MDZkMFx1''@;'; + put 'put ''MDY0M1x1MDYyN1x1MDYyOFx1MDY0OVx1MDYzMSIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiXHUwNjRhXHUwNjI3XHUwNjQ2XHUwNmNiXHUwNjI3XHUwNjMxX1x1MDY0MVx1MDZkMFx1MDZjYlx1MDYzMVx1MDYyN1x1MDY0NF9cdTA2NDVcdTA2MjdcdTA2MzFcdTA2MmFfXHUwNjI2XHUwNjI3''@;'; + put 'put ''XHUwNjdlXHUwNjMxXHUwNmQwXHUwNjQ0X1x1MDY0NVx1MDYyN1x1MDY0YV9cdTA2MjZcdTA2NDlcdTA2NGFcdTA2YzdcdTA2NDZfXHUwNjI2XHUwNjQ5XHUwNjRhXHUwNmM3XHUwNjQ0X1x1MDYyNlx1MDYyN1x1MDZjYlx1MDYzYVx1MDZjN1x1MDYzM1x1MDYyYV9cdTA2MzNcdTA2ZDBcdTA2''@;'; + put 'put ''NDZcdTA2MmFcdTA2ZDVcdTA2MjhcdTA2NDlcdTA2MzFfXHUwNjI2XHUwNmM2XHUwNjQzXHUwNjJhXHUwNmQ1XHUwNjI4XHUwNjQ5XHUwNjMxX1x1MDY0Nlx1MDY0OFx1MDY0YVx1MDYyN1x1MDYyOFx1MDY0OVx1MDYzMV9cdTA2MmZcdTA2ZDBcdTA2NDNcdTA2MjdcdTA2MjhcdTA2NDlcdTA2''@;'; + put 'put ''MzEiLnNwbGl0KCJfIiksd2Vla2RheXM6Ilx1MDY0YVx1MDZkNVx1MDY0M1x1MDYzNFx1MDZkNVx1MDY0Nlx1MDYyOFx1MDZkNV9cdTA2MmZcdTA2YzhcdTA2MzRcdTA2ZDVcdTA2NDZcdTA2MjhcdTA2ZDVfXHUwNjMzXHUwNmQ1XHUwNjRhXHUwNjM0XHUwNmQ1XHUwNjQ2XHUwNjI4XHUwNmQ1''@;'; + put 'put ''X1x1MDY4Nlx1MDYyN1x1MDYzMVx1MDYzNFx1MDZkNVx1MDY0Nlx1MDYyOFx1MDZkNV9cdTA2N2VcdTA2ZDVcdTA2NGFcdTA2MzRcdTA2ZDVcdTA2NDZcdTA2MjhcdTA2ZDVfXHUwNjJjXHUwNmM4XHUwNjQ1XHUwNmQ1X1x1MDYzNFx1MDZkNVx1MDY0Nlx1MDYyOFx1MDZkNSIuc3BsaXQoIl8i''@;'; + put 'put ''KSx3ZWVrZGF5c1Nob3J0OiJcdTA2NGFcdTA2ZDVfXHUwNjJmXHUwNmM4X1x1MDYzM1x1MDZkNV9cdTA2ODZcdTA2MjdfXHUwNjdlXHUwNmQ1X1x1MDYyY1x1MDZjOF9cdTA2MzRcdTA2ZDUiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46Ilx1MDY0YVx1MDZkNV9cdTA2MmZcdTA2YzhfXHUwNjMz''@;'; + put 'put ''XHUwNmQ1X1x1MDY4Nlx1MDYyN19cdTA2N2VcdTA2ZDVfXHUwNjJjXHUwNmM4X1x1MDYzNFx1MDZkNSIuc3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJZWVlZLU1NLUREIixMTDoiWVlZWS1cdTA2NGFcdTA2NDlcdTA2NDRcdTA2NDlNLVx1''@;'; + put 'put ''MDYyNlx1MDYyN1x1MDY0YVx1MDY0Nlx1MDY0OVx1MDZhZEQtXHUwNjQzXHUwNmM4XHUwNjQ2XHUwNjQ5IixMTEw6IllZWVktXHUwNjRhXHUwNjQ5XHUwNjQ0XHUwNjQ5TS1cdTA2MjZcdTA2MjdcdTA2NGFcdTA2NDZcdTA2NDlcdTA2YWRELVx1MDY0M1x1MDZjOFx1MDY0Nlx1MDY0OVx1MDYw''@;'; + put 'put ''YyBISDptbSIsTExMTDoiZGRkZFx1MDYwYyBZWVlZLVx1MDY0YVx1MDY0OVx1MDY0NFx1MDY0OU0tXHUwNjI2XHUwNjI3XHUwNjRhXHUwNjQ2XHUwNjQ5XHUwNmFkRC1cdTA2NDNcdTA2YzhcdTA2NDZcdTA2NDlcdTA2MGMgSEg6bW0ifSxtZXJpZGllbVBhcnNlOi9cdTA2NGFcdTA2ZDBcdTA2''@;'; + put 'put ''MzFcdTA2NDlcdTA2NDUgXHUwNjQzXHUwNmQwXHUwNjg2XHUwNmQ1fFx1MDYzM1x1MDZkNVx1MDZiZVx1MDZkNVx1MDYzMXxcdTA2ODZcdTA2YzhcdTA2MzRcdTA2MmFcdTA2NDlcdTA2NDYgXHUwNjI4XHUwNmM3XHUwNjMxXHUwNmM3XHUwNjQ2fFx1MDY4Nlx1MDZjOFx1MDYzNHxcdTA2ODZc''@;'; + put 'put ''dTA2YzhcdTA2MzRcdTA2MmFcdTA2NDlcdTA2NDYgXHUwNjQzXHUwNmQwXHUwNjRhXHUwNjQ5XHUwNjQ2fFx1MDY0M1x1MDZkNVx1MDY4Ni8sbWVyaWRpZW1Ib3VyOmZ1bmN0aW9uKEUsTWUpe3JldHVybiAxMj09PUUmJihFPTApLCJcdTA2NGFcdTA2ZDBcdTA2MzFcdTA2NDlcdTA2NDUgXHUw''@;'; + put 'put ''NjQzXHUwNmQwXHUwNjg2XHUwNmQ1Ij09PU1lfHwiXHUwNjMzXHUwNmQ1XHUwNmJlXHUwNmQ1XHUwNjMxIj09PU1lfHwiXHUwNjg2XHUwNmM4XHUwNjM0XHUwNjJhXHUwNjQ5XHUwNjQ2IFx1MDYyOFx1MDZjN1x1MDYzMVx1MDZjN1x1MDY0NiI9PT1NZT9FOiJcdTA2ODZcdTA2YzhcdTA2MzRc''@;'; + put 'put ''dTA2MmFcdTA2NDlcdTA2NDYgXHUwNjQzXHUwNmQwXHUwNjRhXHUwNjQ5XHUwNjQ2Ij09PU1lfHwiXHUwNjQzXHUwNmQ1XHUwNjg2Ij09PU1lP0UrMTI6RT49MTE/RTpFKzEyfSxtZXJpZGllbTpmdW5jdGlvbihFLE1lLFUpe3ZhciBRPTEwMCpFK01lO3JldHVybiBRPDYwMD8iXHUwNjRhXHUw''@;'; + put 'put ''NmQwXHUwNjMxXHUwNjQ5XHUwNjQ1IFx1MDY0M1x1MDZkMFx1MDY4Nlx1MDZkNSI6UTw5MDA/Ilx1MDYzM1x1MDZkNVx1MDZiZVx1MDZkNVx1MDYzMSI6UTwxMTMwPyJcdTA2ODZcdTA2YzhcdTA2MzRcdTA2MmFcdTA2NDlcdTA2NDYgXHUwNjI4XHUwNmM3XHUwNjMxXHUwNmM3XHUwNjQ2IjpR''@;'; + put 'put ''PDEyMzA/Ilx1MDY4Nlx1MDZjOFx1MDYzNCI6UTwxODAwPyJcdTA2ODZcdTA2YzhcdTA2MzRcdTA2MmFcdTA2NDlcdTA2NDYgXHUwNjQzXHUwNmQwXHUwNjRhXHUwNjQ5XHUwNjQ2IjoiXHUwNjQzXHUwNmQ1XHUwNjg2In0sY2FsZW5kYXI6e3NhbWVEYXk6IltcdTA2MjhcdTA2YzhcdTA2YWZc''@;'; + put 'put ''dTA2YzhcdTA2NDYgXHUwNjMzXHUwNjI3XHUwNjI2XHUwNmQ1XHUwNjJhXSBMVCIsbmV4dERheToiW1x1MDYyNlx1MDZkNVx1MDYyYVx1MDZkNSBcdTA2MzNcdTA2MjdcdTA2MjZcdTA2ZDVcdTA2MmFdIExUIixuZXh0V2VlazoiW1x1MDY0M1x1MDZkMFx1MDY0NFx1MDZkNVx1MDYzMVx1MDY0''@;'; + put 'put ''M1x1MDY0OV0gZGRkZCBbXHUwNjMzXHUwNjI3XHUwNjI2XHUwNmQ1XHUwNjJhXSBMVCIsbGFzdERheToiW1x1MDYyYVx1MDZjNlx1MDY0Nlx1MDZjOFx1MDZhZlx1MDZjOFx1MDY0Nl0gTFQiLGxhc3RXZWVrOiJbXHUwNjI2XHUwNjI3XHUwNjQ0XHUwNjJmXHUwNjQ5XHUwNjQ2XHUwNjQyXHUw''@;'; + put 'put ''NjQ5XSBkZGRkIFtcdTA2MzNcdTA2MjdcdTA2MjZcdTA2ZDVcdTA2MmFdIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiIlcyBcdTA2NDNcdTA2ZDBcdTA2NGFcdTA2NDlcdTA2NDYiLHBhc3Q6IiVzIFx1MDYyOFx1MDZjN1x1MDYzMVx1MDZjN1x1MDY0NiIsczoiXHUw''@;'; + put 'put ''NjQ2XHUwNmQ1XHUwNjg2XHUwNjg2XHUwNmQ1IFx1MDYzM1x1MDZkMFx1MDY0M1x1MDY0OFx1MDY0Nlx1MDYyYSIsc3M6IiVkIFx1MDYzM1x1MDZkMFx1MDY0M1x1MDY0OFx1MDY0Nlx1MDYyYSIsbToiXHUwNjI4XHUwNjQ5XHUwNjMxIFx1MDY0NVx1MDY0OVx1MDY0Nlx1MDZjN1x1MDYyYSIs''@;'; + put 'put ''bW06IiVkIFx1MDY0NVx1MDY0OVx1MDY0Nlx1MDZjN1x1MDYyYSIsaDoiXHUwNjI4XHUwNjQ5XHUwNjMxIFx1MDYzM1x1MDYyN1x1MDYyNlx1MDZkNVx1MDYyYSIsaGg6IiVkIFx1MDYzM1x1MDYyN1x1MDYyNlx1MDZkNVx1MDYyYSIsZDoiXHUwNjI4XHUwNjQ5XHUwNjMxIFx1MDY0M1x1MDZj''@;'; + put 'put ''OFx1MDY0NiIsZGQ6IiVkIFx1MDY0M1x1MDZjOFx1MDY0NiIsTToiXHUwNjI4XHUwNjQ5XHUwNjMxIFx1MDYyNlx1MDYyN1x1MDY0YSIsTU06IiVkIFx1MDYyNlx1MDYyN1x1MDY0YSIseToiXHUwNjI4XHUwNjQ5XHUwNjMxIFx1MDY0YVx1MDY0OVx1MDY0NCIseXk6IiVkIFx1MDY0YVx1MDY0''@;'; + put 'put ''OVx1MDY0NCJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn0oLVx1MDY0M1x1MDZjOFx1MDY0Nlx1MDY0OXwtXHUwNjI2XHUwNjI3XHUwNjRhfC1cdTA2YmVcdTA2ZDVcdTA2N2VcdTA2MmFcdTA2ZDUpLyxvcmRpbmFsOmZ1bmN0aW9uKEUsTWUpe3N3aXRjaChNZSl7Y2FzZSJkIjpj''@;'; + put 'put ''YXNlIkQiOmNhc2UiREREIjpyZXR1cm4gRSsiLVx1MDY0M1x1MDZjOFx1MDY0Nlx1MDY0OSI7Y2FzZSJ3IjpjYXNlIlciOnJldHVybiBFKyItXHUwNmJlXHUwNmQ1XHUwNjdlXHUwNjJhXHUwNmQ1IjtkZWZhdWx0OnJldHVybiBFfX0scHJlcGFyc2U6ZnVuY3Rpb24oRSl7cmV0dXJuIEUucmVw''@;'; + put 'put ''bGFjZSgvXHUwNjBjL2csIiwiKX0scG9zdGZvcm1hdDpmdW5jdGlvbihFKXtyZXR1cm4gRS5yZXBsYWNlKC8sL2csIlx1MDYwYyIpfSx3ZWVrOntkb3c6MSxkb3k6N319KX0oTCgxNTQzOSkpfSw2NTYxMDpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0IjtmdW5j''@;'; + put 'put ''dGlvbiBFKFosaWUsYWUpe3JldHVybiJtIj09PWFlP2llPyJcdTA0NDVcdTA0MzJcdTA0MzhcdTA0M2JcdTA0MzhcdTA0M2RcdTA0MzAiOiJcdTA0NDVcdTA0MzJcdTA0MzhcdTA0M2JcdTA0MzhcdTA0M2RcdTA0NDMiOiJoIj09PWFlP2llPyJcdTA0MzNcdTA0M2VcdTA0MzRcdTA0MzhcdTA0''@;'; + put 'put ''M2RcdTA0MzAiOiJcdTA0MzNcdTA0M2VcdTA0MzRcdTA0MzhcdTA0M2RcdTA0NDMiOlorIiAiK2Z1bmN0aW9uIEIoWixpZSl7dmFyIGFlPVouc3BsaXQoIl8iKTtyZXR1cm4gaWUlMTA9PTEmJmllJTEwMCE9MTE/YWVbMF06aWUlMTA+PTImJmllJTEwPD00JiYoaWUlMTAwPDEwfHxpZSUxMDA+''@;'; + put 'put ''PTIwKT9hZVsxXTphZVsyXX0oe3NzOmllPyJcdTA0NDFcdTA0MzVcdTA0M2FcdTA0NDNcdTA0M2RcdTA0MzRcdTA0MzBfXHUwNDQxXHUwNDM1XHUwNDNhXHUwNDQzXHUwNDNkXHUwNDM0XHUwNDM4X1x1MDQ0MVx1MDQzNVx1MDQzYVx1MDQ0M1x1MDQzZFx1MDQzNCI6Ilx1MDQ0MVx1MDQzNVx1''@;'; + put 'put ''MDQzYVx1MDQ0M1x1MDQzZFx1MDQzNFx1MDQ0M19cdTA0NDFcdTA0MzVcdTA0M2FcdTA0NDNcdTA0M2RcdTA0MzRcdTA0MzhfXHUwNDQxXHUwNDM1XHUwNDNhXHUwNDQzXHUwNDNkXHUwNDM0IixtbTppZT8iXHUwNDQ1XHUwNDMyXHUwNDM4XHUwNDNiXHUwNDM4XHUwNDNkXHUwNDMwX1x1MDQ0''@;'; + put 'put ''NVx1MDQzMlx1MDQzOFx1MDQzYlx1MDQzOFx1MDQzZFx1MDQzOF9cdTA0NDVcdTA0MzJcdTA0MzhcdTA0M2JcdTA0MzhcdTA0M2QiOiJcdTA0NDVcdTA0MzJcdTA0MzhcdTA0M2JcdTA0MzhcdTA0M2RcdTA0NDNfXHUwNDQ1XHUwNDMyXHUwNDM4XHUwNDNiXHUwNDM4XHUwNDNkXHUwNDM4X1x1''@;'; + put 'put ''MDQ0NVx1MDQzMlx1MDQzOFx1MDQzYlx1MDQzOFx1MDQzZCIsaGg6aWU/Ilx1MDQzM1x1MDQzZVx1MDQzNFx1MDQzOFx1MDQzZFx1MDQzMF9cdTA0MzNcdTA0M2VcdTA0MzRcdTA0MzhcdTA0M2RcdTA0MzhfXHUwNDMzXHUwNDNlXHUwNDM0XHUwNDM4XHUwNDNkIjoiXHUwNDMzXHUwNDNlXHUw''@;'; + put 'put ''NDM0XHUwNDM4XHUwNDNkXHUwNDQzX1x1MDQzM1x1MDQzZVx1MDQzNFx1MDQzOFx1MDQzZFx1MDQzOF9cdTA0MzNcdTA0M2VcdTA0MzRcdTA0MzhcdTA0M2QiLGRkOiJcdTA0MzRcdTA0MzVcdTA0M2RcdTA0NGNfXHUwNDM0XHUwNDNkXHUwNDU2X1x1MDQzNFx1MDQzZFx1MDQ1Nlx1MDQzMiIs''@;'; + put 'put ''TU06Ilx1MDQzY1x1MDQ1Nlx1MDQ0MVx1MDQ0Zlx1MDQ0Nlx1MDQ0Y19cdTA0M2NcdTA0NTZcdTA0NDFcdTA0NGZcdTA0NDZcdTA0NTZfXHUwNDNjXHUwNDU2XHUwNDQxXHUwNDRmXHUwNDQ2XHUwNDU2XHUwNDMyIix5eToiXHUwNDQwXHUwNDU2XHUwNDNhX1x1MDQ0MFx1MDQzZVx1MDQzYVx1''@;'; + put 'put ''MDQzOF9cdTA0NDBcdTA0M2VcdTA0M2FcdTA0NTZcdTA0MzIifVthZV0sK1opfWZ1bmN0aW9uIFUoWil7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIForIlx1MDQzZSIrKDExPT09dGhpcy5ob3VycygpPyJcdTA0MzEiOiIiKSsiXSBMVCJ9fW1lLmRlZmluZUxvY2FsZSgidWsiLHttb250aHM6''@;'; + put 'put ''e2Zvcm1hdDoiXHUwNDQxXHUwNDU2XHUwNDQ3XHUwNDNkXHUwNDRmX1x1MDQzYlx1MDQ0ZVx1MDQ0Mlx1MDQzZVx1MDQzM1x1MDQzZV9cdTA0MzFcdTA0MzVcdTA0NDBcdTA0MzVcdTA0MzdcdTA0M2RcdTA0NGZfXHUwNDNhXHUwNDMyXHUwNDU2XHUwNDQyXHUwNDNkXHUwNDRmX1x1MDQ0Mlx1''@;'; + put 'put ''MDQ0MFx1MDQzMFx1MDQzMlx1MDQzZFx1MDQ0Zl9cdTA0NDdcdTA0MzVcdTA0NDBcdTA0MzJcdTA0M2RcdTA0NGZfXHUwNDNiXHUwNDM4XHUwNDNmXHUwNDNkXHUwNDRmX1x1MDQ0MVx1MDQzNVx1MDQ0MFx1MDQzZlx1MDQzZFx1MDQ0Zl9cdTA0MzJcdTA0MzVcdTA0NDBcdTA0MzVcdTA0NDFc''@;'; + put 'put ''dTA0M2RcdTA0NGZfXHUwNDM2XHUwNDNlXHUwNDMyXHUwNDQyXHUwNDNkXHUwNDRmX1x1MDQzYlx1MDQzOFx1MDQ0MVx1MDQ0Mlx1MDQzZVx1MDQzZlx1MDQzMFx1MDQzNFx1MDQzMF9cdTA0MzNcdTA0NDBcdTA0NDNcdTA0MzRcdTA0M2RcdTA0NGYiLnNwbGl0KCJfIiksc3RhbmRhbG9uZToi''@;'; + put 'put ''XHUwNDQxXHUwNDU2XHUwNDQ3XHUwNDM1XHUwNDNkXHUwNDRjX1x1MDQzYlx1MDQ0ZVx1MDQ0Mlx1MDQzOFx1MDQzOV9cdTA0MzFcdTA0MzVcdTA0NDBcdTA0MzVcdTA0MzdcdTA0MzVcdTA0M2RcdTA0NGNfXHUwNDNhXHUwNDMyXHUwNDU2XHUwNDQyXHUwNDM1XHUwNDNkXHUwNDRjX1x1MDQ0''@;'; + put 'put ''Mlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzNVx1MDQzZFx1MDQ0Y19cdTA0NDdcdTA0MzVcdTA0NDBcdTA0MzJcdTA0MzVcdTA0M2RcdTA0NGNfXHUwNDNiXHUwNDM4XHUwNDNmXHUwNDM1XHUwNDNkXHUwNDRjX1x1MDQ0MVx1MDQzNVx1MDQ0MFx1MDQzZlx1MDQzNVx1MDQzZFx1MDQ0Y19cdTA0''@;'; + put 'put ''MzJcdTA0MzVcdTA0NDBcdTA0MzVcdTA0NDFcdTA0MzVcdTA0M2RcdTA0NGNfXHUwNDM2XHUwNDNlXHUwNDMyXHUwNDQyXHUwNDM1XHUwNDNkXHUwNDRjX1x1MDQzYlx1MDQzOFx1MDQ0MVx1MDQ0Mlx1MDQzZVx1MDQzZlx1MDQzMFx1MDQzNF9cdTA0MzNcdTA0NDBcdTA0NDNcdTA0MzRcdTA0''@;'; + put 'put ''MzVcdTA0M2RcdTA0NGMiLnNwbGl0KCJfIil9LG1vbnRoc1Nob3J0OiJcdTA0NDFcdTA0NTZcdTA0NDdfXHUwNDNiXHUwNDRlXHUwNDQyX1x1MDQzMVx1MDQzNVx1MDQ0MF9cdTA0M2FcdTA0MzJcdTA0NTZcdTA0NDJfXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDMyX1x1MDQ0N1x1MDQzNVx1MDQ0''@;'; + put 'put ''MFx1MDQzMl9cdTA0M2JcdTA0MzhcdTA0M2ZfXHUwNDQxXHUwNDM1XHUwNDQwXHUwNDNmX1x1MDQzMlx1MDQzNVx1MDQ0MF9cdTA0MzZcdTA0M2VcdTA0MzJcdTA0NDJfXHUwNDNiXHUwNDM4XHUwNDQxXHUwNDQyX1x1MDQzM1x1MDQ0MFx1MDQ0M1x1MDQzNCIuc3BsaXQoIl8iKSx3ZWVrZGF5''@;'; + put 'put ''czpmdW5jdGlvbiBNZShaLGllKXt2YXIgYWU9e25vbWluYXRpdmU6Ilx1MDQzZFx1MDQzNVx1MDQzNFx1MDQ1Nlx1MDQzYlx1MDQ0Zl9cdTA0M2ZcdTA0M2VcdTA0M2RcdTA0MzVcdTA0MzRcdTA0NTZcdTA0M2JcdTA0M2VcdTA0M2FfXHUwNDMyXHUwNDU2XHUwNDMyXHUwNDQyXHUwNDNlXHUw''@;'; + put 'put ''NDQwXHUwNDNlXHUwNDNhX1x1MDQ0MVx1MDQzNVx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQzMF9cdTA0NDdcdTA0MzVcdTA0NDJcdTA0MzJcdTA0MzVcdTA0NDBfXHUwNDNmXHUyMDE5XHUwNDRmXHUwNDQyXHUwNDNkXHUwNDM4XHUwNDQ2XHUwNDRmX1x1MDQ0MVx1MDQ0M1x1MDQzMVx1MDQzZVx1''@;'; + put 'put ''MDQ0Mlx1MDQzMCIuc3BsaXQoIl8iKSxhY2N1c2F0aXZlOiJcdTA0M2RcdTA0MzVcdTA0MzRcdTA0NTZcdTA0M2JcdTA0NGVfXHUwNDNmXHUwNDNlXHUwNDNkXHUwNDM1XHUwNDM0XHUwNDU2XHUwNDNiXHUwNDNlXHUwNDNhX1x1MDQzMlx1MDQ1Nlx1MDQzMlx1MDQ0Mlx1MDQzZVx1MDQ0MFx1''@;'; + put 'put ''MDQzZVx1MDQzYV9cdTA0NDFcdTA0MzVcdTA0NDBcdTA0MzVcdTA0MzRcdTA0NDNfXHUwNDQ3XHUwNDM1XHUwNDQyXHUwNDMyXHUwNDM1XHUwNDQwX1x1MDQzZlx1MjAxOVx1MDQ0Zlx1MDQ0Mlx1MDQzZFx1MDQzOFx1MDQ0Nlx1MDQ0ZV9cdTA0NDFcdTA0NDNcdTA0MzFcdTA0M2VcdTA0NDJc''@;'; + put 'put ''dTA0NDMiLnNwbGl0KCJfIiksZ2VuaXRpdmU6Ilx1MDQzZFx1MDQzNVx1MDQzNFx1MDQ1Nlx1MDQzYlx1MDQ1Nl9cdTA0M2ZcdTA0M2VcdTA0M2RcdTA0MzVcdTA0MzRcdTA0NTZcdTA0M2JcdTA0M2FcdTA0MzBfXHUwNDMyXHUwNDU2XHUwNDMyXHUwNDQyXHUwNDNlXHUwNDQwXHUwNDNhXHUw''@;'; + put 'put ''NDMwX1x1MDQ0MVx1MDQzNVx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQzOF9cdTA0NDdcdTA0MzVcdTA0NDJcdTA0MzJcdTA0MzVcdTA0NDBcdTA0MzNcdTA0MzBfXHUwNDNmXHUyMDE5XHUwNDRmXHUwNDQyXHUwNDNkXHUwNDM4XHUwNDQ2XHUwNDU2X1x1MDQ0MVx1MDQ0M1x1MDQzMVx1MDQzZVx1''@;'; + put 'put ''MDQ0Mlx1MDQzOCIuc3BsaXQoIl8iKX07cmV0dXJuITA9PT1aP2FlLm5vbWluYXRpdmUuc2xpY2UoMSw3KS5jb25jYXQoYWUubm9taW5hdGl2ZS5zbGljZSgwLDEpKTpaP2FlWy8oXFtbXHUwNDEyXHUwNDMyXHUwNDIzXHUwNDQzXVxdKSA/ZGRkZC8udGVzdChpZSk/ImFjY3VzYXRpdmUiOi9c''@;'; + put 'put ''Wz8oPzpcdTA0M2NcdTA0MzhcdTA0M2RcdTA0NDNcdTA0M2JcdTA0M2VcdTA0NTd8XHUwNDNkXHUwNDMwXHUwNDQxXHUwNDQyXHUwNDQzXHUwNDNmXHUwNDNkXHUwNDNlXHUwNDU3KT8gP1xdID9kZGRkLy50ZXN0KGllKT8iZ2VuaXRpdmUiOiJub21pbmF0aXZlIl1bWi5kYXkoKV06YWUubm9t''@;'; + put 'put ''aW5hdGl2ZX0sd2Vla2RheXNTaG9ydDoiXHUwNDNkXHUwNDM0X1x1MDQzZlx1MDQzZF9cdTA0MzJcdTA0NDJfXHUwNDQxXHUwNDQwX1x1MDQ0N1x1MDQ0Ml9cdTA0M2ZcdTA0NDJfXHUwNDQxXHUwNDMxIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJcdTA0M2RcdTA0MzRfXHUwNDNmXHUwNDNk''@;'; + put 'put ''X1x1MDQzMlx1MDQ0Ml9cdTA0NDFcdTA0NDBfXHUwNDQ3XHUwNDQyX1x1MDQzZlx1MDQ0Ml9cdTA0NDFcdTA0MzEiLnNwbGl0KCJfIiksbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoiREQuTU0uWVlZWSIsTEw6IkQgTU1NTSBZWVlZIFx1MDQ0MC4iLExMTDoi''@;'; + put 'put ''RCBNTU1NIFlZWVkgXHUwNDQwLiwgSEg6bW0iLExMTEw6ImRkZGQsIEQgTU1NTSBZWVlZIFx1MDQ0MC4sIEhIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6VSgiW1x1MDQyMVx1MDQ0Y1x1MDQzZVx1MDQzM1x1MDQzZVx1MDQzNFx1MDQzZFx1MDQ1NiAiKSxuZXh0RGF5OlUoIltcdTA0MTdcdTA0''@;'; + put 'put ''MzBcdTA0MzJcdTA0NDJcdTA0NDBcdTA0MzAgIiksbGFzdERheTpVKCJbXHUwNDEyXHUwNDQ3XHUwNDNlXHUwNDQwXHUwNDMwICIpLG5leHRXZWVrOlUoIltcdTA0MjNdIGRkZGQgWyIpLGxhc3RXZWVrOmZ1bmN0aW9uKCl7c3dpdGNoKHRoaXMuZGF5KCkpe2Nhc2UgMDpjYXNlIDM6Y2FzZSA1''@;'; + put 'put ''OmNhc2UgNjpyZXR1cm4gVSgiW1x1MDQxY1x1MDQzOFx1MDQzZFx1MDQ0M1x1MDQzYlx1MDQzZVx1MDQ1N10gZGRkZCBbIikuY2FsbCh0aGlzKTtjYXNlIDE6Y2FzZSAyOmNhc2UgNDpyZXR1cm4gVSgiW1x1MDQxY1x1MDQzOFx1MDQzZFx1MDQ0M1x1MDQzYlx1MDQzZVx1MDQzM1x1MDQzZV0g''@;'; + put 'put ''ZGRkZCBbIikuY2FsbCh0aGlzKX19LHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6Ilx1MDQzN1x1MDQzMCAlcyIscGFzdDoiJXMgXHUwNDQyXHUwNDNlXHUwNDNjXHUwNDQzIixzOiJcdTA0MzRcdTA0MzVcdTA0M2FcdTA0NTZcdTA0M2JcdTA0NGNcdTA0M2FcdTA0MzAgXHUw''@;'; + put 'put ''NDQxXHUwNDM1XHUwNDNhXHUwNDQzXHUwNDNkXHUwNDM0IixzczpFLG06RSxtbTpFLGg6Ilx1MDQzM1x1MDQzZVx1MDQzNFx1MDQzOFx1MDQzZFx1MDQ0MyIsaGg6RSxkOiJcdTA0MzRcdTA0MzVcdTA0M2RcdTA0NGMiLGRkOkUsTToiXHUwNDNjXHUwNDU2XHUwNDQxXHUwNDRmXHUwNDQ2XHUw''@;'; + put 'put ''NDRjIixNTTpFLHk6Ilx1MDQ0MFx1MDQ1Nlx1MDQzYSIseXk6RX0sbWVyaWRpZW1QYXJzZTovXHUwNDNkXHUwNDNlXHUwNDQ3XHUwNDU2fFx1MDQ0MFx1MDQzMFx1MDQzZFx1MDQzYVx1MDQ0M3xcdTA0MzRcdTA0M2RcdTA0NGZ8XHUwNDMyXHUwNDM1XHUwNDQ3XHUwNDNlXHUwNDQwXHUwNDMw''@;'; + put 'put ''Lyxpc1BNOmZ1bmN0aW9uKFope3JldHVybi9eKFx1MDQzNFx1MDQzZFx1MDQ0ZnxcdTA0MzJcdTA0MzVcdTA0NDdcdTA0M2VcdTA0NDBcdTA0MzApJC8udGVzdChaKX0sbWVyaWRpZW06ZnVuY3Rpb24oWixpZSxhZSl7cmV0dXJuIFo8ND8iXHUwNDNkXHUwNDNlXHUwNDQ3XHUwNDU2IjpaPDEy''@;'; + put 'put ''PyJcdTA0NDBcdTA0MzBcdTA0M2RcdTA0M2FcdTA0NDMiOlo8MTc/Ilx1MDQzNFx1MDQzZFx1MDQ0ZiI6Ilx1MDQzMlx1MDQzNVx1MDQ0N1x1MDQzZVx1MDQ0MFx1MDQzMCJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn0tKFx1MDQzOXxcdTA0MzNcdTA0M2UpLyxvcmRpbmFsOmZ1''@;'; + put 'put ''bmN0aW9uKFosaWUpe3N3aXRjaChpZSl7Y2FzZSJNIjpjYXNlImQiOmNhc2UiREREIjpjYXNlInciOmNhc2UiVyI6cmV0dXJuIForIi1cdTA0MzkiO2Nhc2UiRCI6cmV0dXJuIForIi1cdTA0MzNcdTA0M2UiO2RlZmF1bHQ6cmV0dXJuIFp9fSx3ZWVrOntkb3c6MSxkb3k6N319KX0oTCgxNTQz''@;'; + put 'put ''OSkpfSw4NjA3NzpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0Ijt2YXIgQj1bIlx1MDYyY1x1MDY0Nlx1MDY0OFx1MDYzMVx1MDZjYyIsIlx1MDY0MVx1MDYzMVx1MDY0OFx1MDYzMVx1MDZjYyIsIlx1MDY0NVx1MDYyN1x1MDYzMVx1MDY4NiIsIlx1MDYyN1x1''@;'; + put 'put ''MDY3ZVx1MDYzMVx1MDZjY1x1MDY0NCIsIlx1MDY0NVx1MDYyNlx1MDZjYyIsIlx1MDYyY1x1MDY0OFx1MDY0NiIsIlx1MDYyY1x1MDY0OFx1MDY0NFx1MDYyN1x1MDYyNlx1MDZjYyIsIlx1MDYyN1x1MDZhZlx1MDYzM1x1MDYyYSIsIlx1MDYzM1x1MDYyYVx1MDY0NVx1MDYyOFx1MDYzMSIs''@;'; + put 'put ''Ilx1MDYyN1x1MDZhOVx1MDYyYVx1MDY0OFx1MDYyOFx1MDYzMSIsIlx1MDY0Nlx1MDY0OFx1MDY0NVx1MDYyOFx1MDYzMSIsIlx1MDYyZlx1MDYzM1x1MDY0NVx1MDYyOFx1MDYzMSJdLEU9WyJcdTA2MjdcdTA2MmFcdTA2NDhcdTA2MjdcdTA2MzEiLCJcdTA2N2VcdTA2Y2NcdTA2MzEiLCJc''@;'; + put 'put ''dTA2NDVcdTA2NDZcdTA2YWZcdTA2NDQiLCJcdTA2MjhcdTA2MmZcdTA2YmUiLCJcdTA2MmNcdTA2NDVcdTA2MzlcdTA2MzFcdTA2MjdcdTA2MmEiLCJcdTA2MmNcdTA2NDVcdTA2MzlcdTA2YzEiLCJcdTA2YzFcdTA2NDFcdTA2MmFcdTA2YzEiXTttZS5kZWZpbmVMb2NhbGUoInVyIix7bW9u''@;'; + put 'put ''dGhzOkIsbW9udGhzU2hvcnQ6Qix3ZWVrZGF5czpFLHdlZWtkYXlzU2hvcnQ6RSx3ZWVrZGF5c01pbjpFLGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IkREL01NL1lZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0gWVlZWSBISDptbSIsTExMTDoi''@;'; + put 'put ''ZGRkZFx1MDYwYyBEIE1NTU0gWVlZWSBISDptbSJ9LG1lcmlkaWVtUGFyc2U6L1x1MDYzNVx1MDYyOFx1MDYyZHxcdTA2MzRcdTA2MjdcdTA2NDUvLGlzUE06ZnVuY3Rpb24oVSl7cmV0dXJuIlx1MDYzNFx1MDYyN1x1MDY0NSI9PT1VfSxtZXJpZGllbTpmdW5jdGlvbihVLFEsWil7cmV0dXJu''@;'; + put 'put ''IFU8MTI/Ilx1MDYzNVx1MDYyOFx1MDYyZCI6Ilx1MDYzNFx1MDYyN1x1MDY0NSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbXHUwNjIyXHUwNjJjIFx1MDYyOFx1MDY0OFx1MDY0Mlx1MDYyYV0gTFQiLG5leHREYXk6IltcdTA2YTlcdTA2NDQgXHUwNjI4XHUwNjQ4XHUwNjQyXHUwNjJhXSBMVCIs''@;'; + put 'put ''bmV4dFdlZWs6ImRkZGQgW1x1MDYyOFx1MDY0OFx1MDY0Mlx1MDYyYV0gTFQiLGxhc3REYXk6IltcdTA2YWZcdTA2MzBcdTA2MzRcdTA2MmFcdTA2YzEgXHUwNjMxXHUwNjQ4XHUwNjMyIFx1MDYyOFx1MDY0OFx1MDY0Mlx1MDYyYV0gTFQiLGxhc3RXZWVrOiJbXHUwNmFmXHUwNjMwXHUwNjM0''@;'; + put 'put ''XHUwNjJhXHUwNmMxXSBkZGRkIFtcdTA2MjhcdTA2NDhcdTA2NDJcdTA2MmFdIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiIlcyBcdTA2MjhcdTA2MzlcdTA2MmYiLHBhc3Q6IiVzIFx1MDY0Mlx1MDYyOFx1MDY0NCIsczoiXHUwNjg2XHUwNjQ2XHUwNjJmIFx1MDYz''@;'; + put 'put ''M1x1MDZjY1x1MDZhOVx1MDY0Nlx1MDY4OCIsc3M6IiVkIFx1MDYzM1x1MDZjY1x1MDZhOVx1MDY0Nlx1MDY4OCIsbToiXHUwNjI3XHUwNmNjXHUwNmE5IFx1MDY0NVx1MDY0Nlx1MDY3OSIsbW06IiVkIFx1MDY0NVx1MDY0Nlx1MDY3OSIsaDoiXHUwNjI3XHUwNmNjXHUwNmE5IFx1MDZhZlx1''@;'; + put 'put ''MDZiZVx1MDY0Nlx1MDY3OVx1MDZjMSIsaGg6IiVkIFx1MDZhZlx1MDZiZVx1MDY0Nlx1MDY3OVx1MDZkMiIsZDoiXHUwNjI3XHUwNmNjXHUwNmE5IFx1MDYyZlx1MDY0NiIsZGQ6IiVkIFx1MDYyZlx1MDY0NiIsTToiXHUwNjI3XHUwNmNjXHUwNmE5IFx1MDY0NVx1MDYyN1x1MDZjMSIsTU06''@;'; + put 'put ''IiVkIFx1MDY0NVx1MDYyN1x1MDZjMSIseToiXHUwNjI3XHUwNmNjXHUwNmE5IFx1MDYzM1x1MDYyN1x1MDY0NCIseXk6IiVkIFx1MDYzM1x1MDYyN1x1MDY0NCJ9LHByZXBhcnNlOmZ1bmN0aW9uKFUpe3JldHVybiBVLnJlcGxhY2UoL1x1MDYwYy9nLCIsIil9LHBvc3Rmb3JtYXQ6ZnVuY3Rp''@;'; + put 'put ''b24oVSl7cmV0dXJuIFUucmVwbGFjZSgvLC9nLCJcdTA2MGMiKX0sd2Vlazp7ZG93OjEsZG95OjR9fSl9KEwoMTU0MzkpKX0sMTIyMDc6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7bWUuZGVmaW5lTG9jYWxlKCJ1ei1sYXRuIix7bW9udGhzOiJZYW52YXJf''@;'; + put 'put ''RmV2cmFsX01hcnRfQXByZWxfTWF5X0l5dW5fSXl1bF9Bdmd1c3RfU2VudGFicl9Pa3RhYnJfTm95YWJyX0Rla2FiciIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiWWFuX0Zldl9NYXJfQXByX01heV9JeXVuX0l5dWxfQXZnX1Nlbl9Pa3RfTm95X0RlayIuc3BsaXQoIl8iKSx3ZWVrZGF5czoi''@;'; + put 'put ''WWFrc2hhbmJhX0R1c2hhbmJhX1Nlc2hhbmJhX0Nob3JzaGFuYmFfUGF5c2hhbmJhX0p1bWFfU2hhbmJhIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6Illha19EdXNoX1Nlc2hfQ2hvcl9QYXlfSnVtX1NoYW4iLnNwbGl0KCJfIiksd2Vla2RheXNNaW46IllhX0R1X1NlX0Nob19QYV9KdV9T''@;'; + put 'put ''aGEiLnNwbGl0KCJfIiksbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoiREQvTU0vWVlZWSIsTEw6IkQgTU1NTSBZWVlZIixMTEw6IkQgTU1NTSBZWVlZIEhIOm1tIixMTExMOiJEIE1NTU0gWVlZWSwgZGRkZCBISDptbSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJb''@;'; + put 'put ''QnVndW4gc29hdF0gTFQgW2RhXSIsbmV4dERheToiW0VydGFnYV0gTFQgW2RhXSIsbmV4dFdlZWs6ImRkZGQgW2t1bmkgc29hdF0gTFQgW2RhXSIsbGFzdERheToiW0tlY2hhIHNvYXRdIExUIFtkYV0iLGxhc3RXZWVrOiJbTyd0Z2FuXSBkZGRkIFtrdW5pIHNvYXRdIExUIFtkYV0iLHNhbWVF''@;'; + put 'put ''bHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6IllhcWluICVzIGljaGlkYSIscGFzdDoiQmlyIG5lY2hhICVzIG9sZGluIixzOiJzb25peWEiLHNzOiIlZCBzb25peWEiLG06ImJpciBkYXFpcWEiLG1tOiIlZCBkYXFpcWEiLGg6ImJpciBzb2F0IixoaDoiJWQgc29hdCIsZDoiYmlyIGt1''@;'; + put 'put ''biIsZGQ6IiVkIGt1biIsTToiYmlyIG95IixNTToiJWQgb3kiLHk6ImJpciB5aWwiLHl5OiIlZCB5aWwifSx3ZWVrOntkb3c6MSxkb3k6N319KX0oTCgxNTQzOSkpfSwyMjg2MjpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0IjttZS5kZWZpbmVMb2NhbGUoInV6''@;'; + put 'put ''Iix7bW9udGhzOiJcdTA0NGZcdTA0M2RcdTA0MzJcdTA0MzBcdTA0NDBfXHUwNDQ0XHUwNDM1XHUwNDMyXHUwNDQwXHUwNDMwXHUwNDNiX1x1MDQzY1x1MDQzMFx1MDQ0MFx1MDQ0Ml9cdTA0MzBcdTA0M2ZcdTA0NDBcdTA0MzVcdTA0M2JfXHUwNDNjXHUwNDMwXHUwNDM5X1x1MDQzOFx1MDQ0''@;'; + put 'put ''ZVx1MDQzZF9cdTA0MzhcdTA0NGVcdTA0M2JfXHUwNDMwXHUwNDMyXHUwNDMzXHUwNDQzXHUwNDQxXHUwNDQyX1x1MDQ0MVx1MDQzNVx1MDQzZFx1MDQ0Mlx1MDQ0Zlx1MDQzMVx1MDQ0MF9cdTA0M2VcdTA0M2FcdTA0NDJcdTA0NGZcdTA0MzFcdTA0NDBfXHUwNDNkXHUwNDNlXHUwNDRmXHUw''@;'; + put 'put ''NDMxXHUwNDQwX1x1MDQzNFx1MDQzNVx1MDQzYVx1MDQzMFx1MDQzMVx1MDQ0MCIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiXHUwNDRmXHUwNDNkXHUwNDMyX1x1MDQ0NFx1MDQzNVx1MDQzMl9cdTA0M2NcdTA0MzBcdTA0NDBfXHUwNDMwXHUwNDNmXHUwNDQwX1x1MDQzY1x1MDQzMFx1MDQz''@;'; + put 'put ''OV9cdTA0MzhcdTA0NGVcdTA0M2RfXHUwNDM4XHUwNDRlXHUwNDNiX1x1MDQzMFx1MDQzMlx1MDQzM19cdTA0NDFcdTA0MzVcdTA0M2RfXHUwNDNlXHUwNDNhXHUwNDQyX1x1MDQzZFx1MDQzZVx1MDQ0Zl9cdTA0MzRcdTA0MzVcdTA0M2EiLnNwbGl0KCJfIiksd2Vla2RheXM6Ilx1MDQyZlx1''@;'; + put 'put ''MDQzYVx1MDQ0OFx1MDQzMFx1MDQzZFx1MDQzMVx1MDQzMF9cdTA0MTRcdTA0NDNcdTA0NDhcdTA0MzBcdTA0M2RcdTA0MzFcdTA0MzBfXHUwNDIxXHUwNDM1XHUwNDQ4XHUwNDMwXHUwNDNkXHUwNDMxXHUwNDMwX1x1MDQyN1x1MDQzZVx1MDQ0MFx1MDQ0OFx1MDQzMFx1MDQzZFx1MDQzMVx1''@;'; + put 'put ''MDQzMF9cdTA0MWZcdTA0MzBcdTA0MzlcdTA0NDhcdTA0MzBcdTA0M2RcdTA0MzFcdTA0MzBfXHUwNDE2XHUwNDQzXHUwNDNjXHUwNDMwX1x1MDQyOFx1MDQzMFx1MDQzZFx1MDQzMVx1MDQzMCIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJcdTA0MmZcdTA0M2FcdTA0NDhfXHUwNDE0XHUw''@;'; + put 'put ''NDQzXHUwNDQ4X1x1MDQyMVx1MDQzNVx1MDQ0OF9cdTA0MjdcdTA0M2VcdTA0NDBfXHUwNDFmXHUwNDMwXHUwNDM5X1x1MDQxNlx1MDQ0M1x1MDQzY19cdTA0MjhcdTA0MzBcdTA0M2QiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46Ilx1MDQyZlx1MDQzYV9cdTA0MTRcdTA0NDNfXHUwNDIxXHUw''@;'; + put 'put ''NDM1X1x1MDQyN1x1MDQzZV9cdTA0MWZcdTA0MzBfXHUwNDE2XHUwNDQzX1x1MDQyOFx1MDQzMCIuc3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJERC9NTS9ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVkgSEg6bW0i''@;'; + put 'put ''LExMTEw6IkQgTU1NTSBZWVlZLCBkZGRkIEhIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltcdTA0MTFcdTA0NDNcdTA0MzNcdTA0NDNcdTA0M2QgXHUwNDQxXHUwNDNlXHUwNDMwXHUwNDQyXSBMVCBbXHUwNDM0XHUwNDMwXSIsbmV4dERheToiW1x1MDQyZFx1MDQ0MFx1MDQ0Mlx1MDQzMFx1''@;'; + put 'put ''MDQzM1x1MDQzMF0gTFQgW1x1MDQzNFx1MDQzMF0iLG5leHRXZWVrOiJkZGRkIFtcdTA0M2FcdTA0NDNcdTA0M2RcdTA0MzggXHUwNDQxXHUwNDNlXHUwNDMwXHUwNDQyXSBMVCBbXHUwNDM0XHUwNDMwXSIsbGFzdERheToiW1x1MDQxYVx1MDQzNVx1MDQ0N1x1MDQzMCBcdTA0NDFcdTA0M2Vc''@;'; + put 'put ''dTA0MzBcdTA0NDJdIExUIFtcdTA0MzRcdTA0MzBdIixsYXN0V2VlazoiW1x1MDQyM1x1MDQ0Mlx1MDQzM1x1MDQzMFx1MDQzZF0gZGRkZCBbXHUwNDNhXHUwNDQzXHUwNDNkXHUwNDM4IFx1MDQ0MVx1MDQzZVx1MDQzMFx1MDQ0Ml0gTFQgW1x1MDQzNFx1MDQzMF0iLHNhbWVFbHNlOiJMIn0s''@;'; + put 'put ''cmVsYXRpdmVUaW1lOntmdXR1cmU6Ilx1MDQyZlx1MDQzYVx1MDQzOFx1MDQzZCAlcyBcdTA0MzhcdTA0NDdcdTA0MzhcdTA0MzRcdTA0MzAiLHBhc3Q6Ilx1MDQxMVx1MDQzOFx1MDQ0MCBcdTA0M2RcdTA0MzVcdTA0NDdcdTA0MzAgJXMgXHUwNDNlXHUwNDNiXHUwNDM0XHUwNDM4XHUwNDNk''@;'; + put 'put ''IixzOiJcdTA0NDRcdTA0NDNcdTA0NDBcdTA0NDFcdTA0MzBcdTA0NDIiLHNzOiIlZCBcdTA0NDRcdTA0NDNcdTA0NDBcdTA0NDFcdTA0MzBcdTA0NDIiLG06Ilx1MDQzMVx1MDQzOFx1MDQ0MCBcdTA0MzRcdTA0MzBcdTA0M2FcdTA0MzhcdTA0M2FcdTA0MzAiLG1tOiIlZCBcdTA0MzRcdTA0''@;'; + put 'put ''MzBcdTA0M2FcdTA0MzhcdTA0M2FcdTA0MzAiLGg6Ilx1MDQzMVx1MDQzOFx1MDQ0MCBcdTA0NDFcdTA0M2VcdTA0MzBcdTA0NDIiLGhoOiIlZCBcdTA0NDFcdTA0M2VcdTA0MzBcdTA0NDIiLGQ6Ilx1MDQzMVx1MDQzOFx1MDQ0MCBcdTA0M2FcdTA0NDNcdTA0M2QiLGRkOiIlZCBcdTA0M2Fc''@;'; + put 'put ''dTA0NDNcdTA0M2QiLE06Ilx1MDQzMVx1MDQzOFx1MDQ0MCBcdTA0M2VcdTA0MzkiLE1NOiIlZCBcdTA0M2VcdTA0MzkiLHk6Ilx1MDQzMVx1MDQzOFx1MDQ0MCBcdTA0MzlcdTA0MzhcdTA0M2IiLHl5OiIlZCBcdTA0MzlcdTA0MzhcdTA0M2IifSx3ZWVrOntkb3c6MSxkb3k6N319KX0oTCgx''@;'; + put 'put ''NTQzOSkpfSw0ODA5MzpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0IjttZS5kZWZpbmVMb2NhbGUoInZpIix7bW9udGhzOiJ0aFx4ZTFuZyAxX3RoXHhlMW5nIDJfdGhceGUxbmcgM190aFx4ZTFuZyA0X3RoXHhlMW5nIDVfdGhceGUxbmcgNl90aFx4ZTFuZyA3''@;'; + put 'put ''X3RoXHhlMW5nIDhfdGhceGUxbmcgOV90aFx4ZTFuZyAxMF90aFx4ZTFuZyAxMV90aFx4ZTFuZyAxMiIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiVGhnIDAxX1RoZyAwMl9UaGcgMDNfVGhnIDA0X1RoZyAwNV9UaGcgMDZfVGhnIDA3X1RoZyAwOF9UaGcgMDlfVGhnIDEwX1RoZyAxMV9UaGcg''@;'; + put 'put ''MTIiLnNwbGl0KCJfIiksbW9udGhzUGFyc2VFeGFjdDohMCx3ZWVrZGF5czoiY2hcdTFlZTcgbmhcdTFlYWR0X3RoXHUxZWU5IGhhaV90aFx1MWVlOSBiYV90aFx1MWVlOSB0XHUwMWIwX3RoXHUxZWU5IG5cdTAxMDNtX3RoXHUxZWU5IHNceGUxdV90aFx1MWVlOSBiXHUxZWEzeSIuc3BsaXQo''@;'; + put 'put ''Il8iKSx3ZWVrZGF5c1Nob3J0OiJDTl9UMl9UM19UNF9UNV9UNl9UNyIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiQ05fVDJfVDNfVDRfVDVfVDZfVDciLnNwbGl0KCJfIiksd2Vla2RheXNQYXJzZUV4YWN0OiEwLG1lcmlkaWVtUGFyc2U6L3NhfGNoL2ksaXNQTTpmdW5jdGlvbihFKXtyZXR1''@;'; + put 'put ''cm4vXmNoJC9pLnRlc3QoRSl9LG1lcmlkaWVtOmZ1bmN0aW9uKEUsTWUsVSl7cmV0dXJuIEU8MTI/VT8ic2EiOiJTQSI6VT8iY2giOiJDSCJ9LGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IkREL01NL1lZWVkiLExMOiJEIE1NTU0gW25cdTAxMDNtXSBZWVlZ''@;'; + put 'put ''IixMTEw6IkQgTU1NTSBbblx1MDEwM21dIFlZWVkgSEg6bW0iLExMTEw6ImRkZGQsIEQgTU1NTSBbblx1MDEwM21dIFlZWVkgSEg6bW0iLGw6IkREL00vWVlZWSIsbGw6IkQgTU1NIFlZWVkiLGxsbDoiRCBNTU0gWVlZWSBISDptbSIsbGxsbDoiZGRkLCBEIE1NTSBZWVlZIEhIOm1tIn0sY2Fs''@;'; + put 'put ''ZW5kYXI6e3NhbWVEYXk6IltIXHhmNG0gbmF5IGxceGZhY10gTFQiLG5leHREYXk6IltOZ1x4ZTB5IG1haSBsXHhmYWNdIExUIixuZXh0V2VlazoiZGRkZCBbdHVcdTFlYTduIHRcdTFlZGJpIGxceGZhY10gTFQiLGxhc3REYXk6IltIXHhmNG0gcXVhIGxceGZhY10gTFQiLGxhc3RXZWVrOiJk''@;'; + put 'put ''ZGRkIFt0dVx1MWVhN24gdHJcdTAxYjBcdTFlZGJjIGxceGZhY10gTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6IiVzIHRcdTFlZGJpIixwYXN0OiIlcyB0clx1MDFiMFx1MWVkYmMiLHM6InZceGUwaSBnaVx4ZTJ5IixzczoiJWQgZ2lceGUyeSIsbToibVx1MWVkOXQg''@;'; + put 'put ''cGhceGZhdCIsbW06IiVkIHBoXHhmYXQiLGg6Im1cdTFlZDl0IGdpXHUxZWRkIixoaDoiJWQgZ2lcdTFlZGQiLGQ6Im1cdTFlZDl0IG5nXHhlMHkiLGRkOiIlZCBuZ1x4ZTB5Iix3OiJtXHUxZWQ5dCB0dVx1MWVhN24iLHd3OiIlZCB0dVx1MWVhN24iLE06Im1cdTFlZDl0IHRoXHhlMW5nIixN''@;'; + put 'put ''TToiJWQgdGhceGUxbmciLHk6Im1cdTFlZDl0IG5cdTAxMDNtIix5eToiJWQgblx1MDEwM20ifSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9LyxvcmRpbmFsOmZ1bmN0aW9uKEUpe3JldHVybiBFfSx3ZWVrOntkb3c6MSxkb3k6NH19KX0oTCgxNTQzOSkpfSwyNTU5MDpmdW5jdGlv''@;'; + put 'put ''bihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0IjttZS5kZWZpbmVMb2NhbGUoIngtcHNldWRvIix7bW9udGhzOiJKflx4ZTFceGYxXHhmYVx4ZTF+clx4ZmRfRn5ceGU5YnJceGZhflx4ZTFyXHhmZF9+TVx4ZTFyY35oX1x4YzFwfnJceGVkbF9+TVx4ZTFceGZkX35KXHhmYVx4''@;'; + put 'put ''ZjFceGU5fl9KXHhmYWx+XHhmZF9ceGMxXHhmYX5nXHhmYXN0fl9TXHhlOXB+dFx4ZTltYn5ceGU5cl9ceGQzfmN0XHhmM2J+XHhlOXJfXHhkMX5ceGYzdlx4ZTltfmJceGU5cl9+RFx4ZTljXHhlOX5tYlx4ZTlyIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJKflx4ZTFceGYxX35GXHhlOWJf''@;'; + put 'put ''fk1ceGUxcl9+XHhjMXByX35NXHhlMVx4ZmRffkpceGZhXHhmMV9+Slx4ZmFsX35ceGMxXHhmYWdfflNceGU5cF9+XHhkM2N0X35ceGQxXHhmM3ZffkRceGU5YyIuc3BsaXQoIl8iKSxtb250aHNQYXJzZUV4YWN0OiEwLHdlZWtkYXlzOiJTflx4ZmFceGYxZFx4ZTF+XHhmZF9NXHhmM35ceGYx''@;'; + put 'put ''ZFx4ZTFceGZkfl9UXHhmYVx4ZTl+c2RceGUxXHhmZH5fV1x4ZTlkflx4ZjFceGU5c2R+XHhlMVx4ZmRfVH5oXHhmYXJzfmRceGUxXHhmZF9+RnJceGVkZH5ceGUxXHhmZF9Tflx4ZTF0XHhmYXJ+ZFx4ZTFceGZkIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6IlN+XHhmYVx4ZjFffk1ceGYz''@;'; + put 'put ''XHhmMV9+VFx4ZmFceGU5X35XXHhlOWRfflRoXHhmYV9+RnJceGVkX35TXHhlMXQiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46IlN+XHhmYV9NXHhmM35fVFx4ZmFffldceGU5X1R+aF9Gcn5fU1x4ZTEiLnNwbGl0KCJfIiksd2Vla2RheXNQYXJzZUV4YWN0OiEwLGxvbmdEYXRlRm9ybWF0OntM''@;'; + put 'put ''VDoiSEg6bW0iLEw6IkREL01NL1lZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0gWVlZWSBISDptbSIsTExMTDoiZGRkZCwgRCBNTU1NIFlZWVkgSEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW1R+XHhmM2RceGUxflx4ZmQgXHhlMXRdIExUIixuZXh0RGF5OiJbVH5ceGYzbVx4''@;'; + put 'put ''ZjN+cnJceGYzfncgXHhlMXRdIExUIixuZXh0V2VlazoiZGRkZCBbXHhlMXRdIExUIixsYXN0RGF5OiJbXHhkZH5ceGU5c3R+XHhlOXJkXHhlMX5ceGZkIFx4ZTF0XSBMVCIsbGFzdFdlZWs6IltMflx4ZTFzdF0gZGRkZCBbXHhlMXRdIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7''@;'; + put 'put ''ZnV0dXJlOiJceGVkflx4ZjEgJXMiLHBhc3Q6IiVzIFx4ZTF+Z1x4ZjMiLHM6Ilx4ZTEgfmZceGU5dyB+c1x4ZTljXHhmM35ceGYxZHMiLHNzOiIlZCBzflx4ZTljXHhmM1x4ZjF+ZHMiLG06Ilx4ZTEgfm1ceGVkXHhmMX5ceGZhdFx4ZTkiLG1tOiIlZCBtflx4ZWRceGYxXHhmYX50XHhlOXMi''@;'; + put 'put ''LGg6Ilx4ZTF+XHhmMSBoXHhmM35ceGZhciIsaGg6IiVkIGh+XHhmM1x4ZmFycyIsZDoiXHhlMSB+ZFx4ZTFceGZkIixkZDoiJWQgZH5ceGUxXHhmZHMiLE06Ilx4ZTEgfm1ceGYzXHhmMX50aCIsTU06IiVkIG1+XHhmM1x4ZjF0fmhzIix5OiJceGUxIH5ceGZkXHhlOVx4ZTFyIix5eToiJWQg''@;'; + put 'put ''XHhmZH5ceGU5XHhlMXJzIn0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfSh0aHxzdHxuZHxyZCkvLG9yZGluYWw6ZnVuY3Rpb24oRSl7dmFyIE1lPUUlMTA7cmV0dXJuIEUrKDE9PX5+KEUlMTAwLzEwKT8idGgiOjE9PT1NZT8ic3QiOjI9PT1NZT8ibmQiOjM9PT1NZT8icmQiOiJ0''@;'; + put 'put ''aCIpfSx3ZWVrOntkb3c6MSxkb3k6NH19KX0oTCgxNTQzOSkpfSw5MDU4OmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlvbihtZSl7InVzZSBzdHJpY3QiO21lLmRlZmluZUxvY2FsZSgieW8iLHttb250aHM6IlNcdTFlYjlcdTAzMDFyXHUxZWI5XHUwMzAxX0VcdTAzMDByZVx1MDMwMGxlXHUw''@;'; + put 'put ''MzAwX1x1MWViOHJcdTFlYjlcdTAzMDBuYVx1MDMwMF9JXHUwMzAwZ2JlXHUwMzAxX0VcdTAzMDBiaWJpX09cdTAzMDBrdVx1MDMwMGR1X0FnXHUxZWI5bW9fT1x1MDMwMGd1XHUwMzAxbl9Pd2V3ZV9cdTFlY2NcdTAzMDB3YVx1MDMwMHJhXHUwMzAwX0JlXHUwMzAxbHVcdTAzMDFfXHUxZWNj''@;'; + put 'put ''XHUwMzAwcFx1MWViOVx1MDMwMFx1MDMwMCIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiU1x1MWViOVx1MDMwMXJfRVx1MDMwMHJsX1x1MWViOHJuX0lcdTAzMDBnYl9FXHUwMzAwYmlfT1x1MDMwMGt1XHUwMzAwX0FnXHUxZWI5X09cdTAzMDBndVx1MDMwMV9Pd2VfXHUxZWNjXHUwMzAwd2Fc''@;'; + put 'put ''dTAzMDBfQmVcdTAzMDFsX1x1MWVjY1x1MDMwMHBcdTFlYjlcdTAzMDBcdTAzMDAiLnNwbGl0KCJfIiksd2Vla2RheXM6IkFcdTAzMDBpXHUwMzAwa3VcdTAzMDFfQWplXHUwMzAxX0lcdTAzMDBzXHUxZWI5XHUwMzAxZ3VuX1x1MWVjY2pcdTFlY2RcdTAzMDFydVx1MDMwMV9cdTFlY2NqXHUx''@;'; + put 'put ''ZWNkXHUwMzAxYlx1MWVjZF9cdTFlYjh0aVx1MDMwMF9BXHUwMzAwYmFcdTAzMDFtXHUxZWI5XHUwMzAxdGEiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiQVx1MDMwMGlcdTAzMDBrX0FqZVx1MDMwMV9JXHUwMzAwc1x1MWViOVx1MDMwMV9cdTFlY2Nqcl9cdTFlY2NqYl9cdTFlYjh0aVx1''@;'; + put 'put ''MDMwMF9BXHUwMzAwYmFcdTAzMDEiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46IkFcdTAzMDBpXHUwMzAwX0FqX0lcdTAzMDBzX1x1MWVjY3JfXHUxZWNjYl9cdTFlYjh0X0FcdTAzMDBiIi5zcGxpdCgiXyIpLGxvbmdEYXRlRm9ybWF0OntMVDoiaDptbSBBIixMVFM6Img6bW06c3MgQSIsTDoi''@;'; + put 'put ''REQvTU0vWVlZWSIsTEw6IkQgTU1NTSBZWVlZIixMTEw6IkQgTU1NTSBZWVlZIGg6bW0gQSIsTExMTDoiZGRkZCwgRCBNTU1NIFlZWVkgaDptbSBBIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltPXHUwMzAwbmlcdTAzMDAgbmldIExUIixuZXh0RGF5OiJbXHUxZWNjXHUwMzAwbGEgbmldIExUIixu''@;'; + put 'put ''ZXh0V2VlazoiZGRkZCBbXHUxZWNjc1x1MWViOVx1MDMwMCB0b1x1MDMwMW4nYlx1MWVjZF0gW25pXSBMVCIsbGFzdERheToiW0FcdTAzMDBuYSBuaV0gTFQiLGxhc3RXZWVrOiJkZGRkIFtcdTFlY2NzXHUxZWI5XHUwMzAwIHRvXHUwMzAxbFx1MWVjZFx1MDMwMV0gW25pXSBMVCIsc2FtZUVs''@;'; + put 'put ''c2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToibmlcdTAzMDEgJXMiLHBhc3Q6IiVzIGtcdTFlY2RqYVx1MDMwMSIsczoiaVx1MDMwMHNcdTFlYjlqdVx1MDMwMSBhYXlhXHUwMzAxIGRpZSIsc3M6ImFheWFcdTAzMDEgJWQiLG06ImlcdTAzMDBzXHUxZWI5anVcdTAzMDEga2FuIixtbToi''@;'; + put 'put ''aVx1MDMwMHNcdTFlYjlqdVx1MDMwMSAlZCIsaDoid2FcdTAzMDFrYXRpIGthbiIsaGg6IndhXHUwMzAxa2F0aSAlZCIsZDoiXHUxZWNkalx1MWVjZFx1MDMwMSBrYW4iLGRkOiJcdTFlY2RqXHUxZWNkXHUwMzAxICVkIixNOiJvc3VcdTAzMDAga2FuIixNTToib3N1XHUwMzAwICVkIix5OiJc''@;'; + put 'put ''dTFlY2RkdVx1MDMwMW4ga2FuIix5eToiXHUxZWNkZHVcdTAzMDFuICVkIn0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXHUxZWNkalx1MWVjZFx1MDMwMVxzXGR7MSwyfS8sb3JkaW5hbDoiXHUxZWNkalx1MWVjZFx1MDMwMSAlZCIsd2Vlazp7ZG93OjEsZG95OjR9fSl9KEwoMTU0MzkpKX0s''@;'; + put 'put ''Nzc5MDg6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7bWUuZGVmaW5lTG9jYWxlKCJ6aC1jbiIse21vbnRoczoiXHU0ZTAwXHU2NzA4X1x1NGU4Y1x1NjcwOF9cdTRlMDlcdTY3MDhfXHU1NmRiXHU2NzA4X1x1NGU5NFx1NjcwOF9cdTUxNmRcdTY3MDhfXHU0''@;'; + put 'put ''ZTAzXHU2NzA4X1x1NTE2Ylx1NjcwOF9cdTRlNWRcdTY3MDhfXHU1MzQxXHU2NzA4X1x1NTM0MVx1NGUwMFx1NjcwOF9cdTUzNDFcdTRlOGNcdTY3MDgiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6IjFcdTY3MDhfMlx1NjcwOF8zXHU2NzA4XzRcdTY3MDhfNVx1NjcwOF82XHU2NzA4XzdcdTY3''@;'; + put 'put ''MDhfOFx1NjcwOF85XHU2NzA4XzEwXHU2NzA4XzExXHU2NzA4XzEyXHU2NzA4Ii5zcGxpdCgiXyIpLHdlZWtkYXlzOiJcdTY2MWZcdTY3MWZcdTY1ZTVfXHU2NjFmXHU2NzFmXHU0ZTAwX1x1NjYxZlx1NjcxZlx1NGU4Y19cdTY2MWZcdTY3MWZcdTRlMDlfXHU2NjFmXHU2NzFmXHU1NmRiX1x1''@;'; + put 'put ''NjYxZlx1NjcxZlx1NGU5NF9cdTY2MWZcdTY3MWZcdTUxNmQiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiXHU1NDY4XHU2NWU1X1x1NTQ2OFx1NGUwMF9cdTU0NjhcdTRlOGNfXHU1NDY4XHU0ZTA5X1x1NTQ2OFx1NTZkYl9cdTU0NjhcdTRlOTRfXHU1NDY4XHU1MTZkIi5zcGxpdCgiXyIp''@;'; + put 'put ''LHdlZWtkYXlzTWluOiJcdTY1ZTVfXHU0ZTAwX1x1NGU4Y19cdTRlMDlfXHU1NmRiX1x1NGU5NF9cdTUxNmQiLnNwbGl0KCJfIiksbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoiWVlZWS9NTS9ERCIsTEw6IllZWVlcdTVlNzRNXHU2NzA4RFx1NjVlNSIsTExM''@;'; + put 'put ''OiJZWVlZXHU1ZTc0TVx1NjcwOERcdTY1ZTVBaFx1NzBiOW1tXHU1MjA2IixMTExMOiJZWVlZXHU1ZTc0TVx1NjcwOERcdTY1ZTVkZGRkQWhcdTcwYjltbVx1NTIwNiIsbDoiWVlZWS9NL0QiLGxsOiJZWVlZXHU1ZTc0TVx1NjcwOERcdTY1ZTUiLGxsbDoiWVlZWVx1NWU3NE1cdTY3MDhEXHU2''@;'; + put 'put ''NWU1IEhIOm1tIixsbGxsOiJZWVlZXHU1ZTc0TVx1NjcwOERcdTY1ZTVkZGRkIEhIOm1tIn0sbWVyaWRpZW1QYXJzZTovXHU1MWNjXHU2NjY4fFx1NjVlOVx1NGUwYXxcdTRlMGFcdTUzNDh8XHU0ZTJkXHU1MzQ4fFx1NGUwYlx1NTM0OHxcdTY2NWFcdTRlMGEvLG1lcmlkaWVtSG91cjpmdW5j''@;'; + put 'put ''dGlvbihFLE1lKXtyZXR1cm4gMTI9PT1FJiYoRT0wKSwiXHU1MWNjXHU2NjY4Ij09PU1lfHwiXHU2NWU5XHU0ZTBhIj09PU1lfHwiXHU0ZTBhXHU1MzQ4Ij09PU1lP0U6Ilx1NGUwYlx1NTM0OCI9PT1NZXx8Ilx1NjY1YVx1NGUwYSI9PT1NZT9FKzEyOkU+PTExP0U6RSsxMn0sbWVyaWRpZW06''@;'; + put 'put ''ZnVuY3Rpb24oRSxNZSxVKXt2YXIgUT0xMDAqRStNZTtyZXR1cm4gUTw2MDA/Ilx1NTFjY1x1NjY2OCI6UTw5MDA/Ilx1NjVlOVx1NGUwYSI6UTwxMTMwPyJcdTRlMGFcdTUzNDgiOlE8MTIzMD8iXHU0ZTJkXHU1MzQ4IjpRPDE4MDA/Ilx1NGUwYlx1NTM0OCI6Ilx1NjY1YVx1NGUwYSJ9LGNh''@;'; + put 'put ''bGVuZGFyOntzYW1lRGF5OiJbXHU0ZWNhXHU1OTI5XUxUIixuZXh0RGF5OiJbXHU2NjBlXHU1OTI5XUxUIixuZXh0V2VlazpmdW5jdGlvbihFKXtyZXR1cm4gRS53ZWVrKCkhPT10aGlzLndlZWsoKT8iW1x1NGUwYl1kZGRMVCI6IltcdTY3MmNdZGRkTFQifSxsYXN0RGF5OiJbXHU2NjI4XHU1''@;'; + put 'put ''OTI5XUxUIixsYXN0V2VlazpmdW5jdGlvbihFKXtyZXR1cm4gdGhpcy53ZWVrKCkhPT1FLndlZWsoKT8iW1x1NGUwYV1kZGRMVCI6IltcdTY3MmNdZGRkTFQifSxzYW1lRWxzZToiTCJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn0oXHU2NWU1fFx1NjcwOHxcdTU0NjgpLyxvcmRp''@;'; + put 'put ''bmFsOmZ1bmN0aW9uKEUsTWUpe3N3aXRjaChNZSl7Y2FzZSJkIjpjYXNlIkQiOmNhc2UiREREIjpyZXR1cm4gRSsiXHU2NWU1IjtjYXNlIk0iOnJldHVybiBFKyJcdTY3MDgiO2Nhc2UidyI6Y2FzZSJXIjpyZXR1cm4gRSsiXHU1NDY4IjtkZWZhdWx0OnJldHVybiBFfX0scmVsYXRpdmVUaW1l''@;'; + put 'put ''OntmdXR1cmU6IiVzXHU1NDBlIixwYXN0OiIlc1x1NTI0ZCIsczoiXHU1MWUwXHU3OWQyIixzczoiJWQgXHU3OWQyIixtOiIxIFx1NTIwNlx1OTQ5ZiIsbW06IiVkIFx1NTIwNlx1OTQ5ZiIsaDoiMSBcdTVjMGZcdTY1ZjYiLGhoOiIlZCBcdTVjMGZcdTY1ZjYiLGQ6IjEgXHU1OTI5IixkZDoi''@;'; + put 'put ''JWQgXHU1OTI5Iix3OiIxIFx1NTQ2OCIsd3c6IiVkIFx1NTQ2OCIsTToiMSBcdTRlMmFcdTY3MDgiLE1NOiIlZCBcdTRlMmFcdTY3MDgiLHk6IjEgXHU1ZTc0Iix5eToiJWQgXHU1ZTc0In0sd2Vlazp7ZG93OjEsZG95OjR9fSl9KEwoMTU0MzkpKX0sODg2NzpmdW5jdGlvbihYZSxKZSxMKXsh''@;'; + put 'put ''ZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0IjttZS5kZWZpbmVMb2NhbGUoInpoLWhrIix7bW9udGhzOiJcdTRlMDBcdTY3MDhfXHU0ZThjXHU2NzA4X1x1NGUwOVx1NjcwOF9cdTU2ZGJcdTY3MDhfXHU0ZTk0XHU2NzA4X1x1NTE2ZFx1NjcwOF9cdTRlMDNcdTY3MDhfXHU1MTZiXHU2NzA4X1x1''@;'; + put 'put ''NGU1ZFx1NjcwOF9cdTUzNDFcdTY3MDhfXHU1MzQxXHU0ZTAwXHU2NzA4X1x1NTM0MVx1NGU4Y1x1NjcwOCIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiMVx1NjcwOF8yXHU2NzA4XzNcdTY3MDhfNFx1NjcwOF81XHU2NzA4XzZcdTY3MDhfN1x1NjcwOF84XHU2NzA4XzlcdTY3MDhfMTBcdTY3''@;'; + put 'put ''MDhfMTFcdTY3MDhfMTJcdTY3MDgiLnNwbGl0KCJfIiksd2Vla2RheXM6Ilx1NjYxZlx1NjcxZlx1NjVlNV9cdTY2MWZcdTY3MWZcdTRlMDBfXHU2NjFmXHU2NzFmXHU0ZThjX1x1NjYxZlx1NjcxZlx1NGUwOV9cdTY2MWZcdTY3MWZcdTU2ZGJfXHU2NjFmXHU2NzFmXHU0ZTk0X1x1NjYxZlx1''@;'; + put 'put ''NjcxZlx1NTE2ZCIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJcdTkwMzFcdTY1ZTVfXHU5MDMxXHU0ZTAwX1x1OTAzMVx1NGU4Y19cdTkwMzFcdTRlMDlfXHU5MDMxXHU1NmRiX1x1OTAzMVx1NGU5NF9cdTkwMzFcdTUxNmQiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46Ilx1NjVlNV9cdTRl''@;'; + put 'put ''MDBfXHU0ZThjX1x1NGUwOV9cdTU2ZGJfXHU0ZTk0X1x1NTE2ZCIuc3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJZWVlZL01NL0REIixMTDoiWVlZWVx1NWU3NE1cdTY3MDhEXHU2NWU1IixMTEw6IllZWVlcdTVlNzRNXHU2NzA4RFx1NjVl''@;'; + put 'put ''NSBISDptbSIsTExMTDoiWVlZWVx1NWU3NE1cdTY3MDhEXHU2NWU1ZGRkZCBISDptbSIsbDoiWVlZWS9NL0QiLGxsOiJZWVlZXHU1ZTc0TVx1NjcwOERcdTY1ZTUiLGxsbDoiWVlZWVx1NWU3NE1cdTY3MDhEXHU2NWU1IEhIOm1tIixsbGxsOiJZWVlZXHU1ZTc0TVx1NjcwOERcdTY1ZTVkZGRk''@;'; + put 'put ''IEhIOm1tIn0sbWVyaWRpZW1QYXJzZTovXHU1MWNjXHU2NjY4fFx1NjVlOVx1NGUwYXxcdTRlMGFcdTUzNDh8XHU0ZTJkXHU1MzQ4fFx1NGUwYlx1NTM0OHxcdTY2NWFcdTRlMGEvLG1lcmlkaWVtSG91cjpmdW5jdGlvbihFLE1lKXtyZXR1cm4gMTI9PT1FJiYoRT0wKSwiXHU1MWNjXHU2NjY4''@;'; + put 'put ''Ij09PU1lfHwiXHU2NWU5XHU0ZTBhIj09PU1lfHwiXHU0ZTBhXHU1MzQ4Ij09PU1lP0U6Ilx1NGUyZFx1NTM0OCI9PT1NZT9FPj0xMT9FOkUrMTI6Ilx1NGUwYlx1NTM0OCI9PT1NZXx8Ilx1NjY1YVx1NGUwYSI9PT1NZT9FKzEyOnZvaWQgMH0sbWVyaWRpZW06ZnVuY3Rpb24oRSxNZSxVKXt2''@;'; + put 'put ''YXIgUT0xMDAqRStNZTtyZXR1cm4gUTw2MDA/Ilx1NTFjY1x1NjY2OCI6UTw5MDA/Ilx1NjVlOVx1NGUwYSI6UTwxMjAwPyJcdTRlMGFcdTUzNDgiOjEyMDA9PT1RPyJcdTRlMmRcdTUzNDgiOlE8MTgwMD8iXHU0ZTBiXHU1MzQ4IjoiXHU2NjVhXHU0ZTBhIn0sY2FsZW5kYXI6e3NhbWVEYXk6''@;'; + put 'put ''IltcdTRlY2FcdTU5MjldTFQiLG5leHREYXk6IltcdTY2MGVcdTU5MjldTFQiLG5leHRXZWVrOiJbXHU0ZTBiXWRkZGRMVCIsbGFzdERheToiW1x1NjYyOFx1NTkyOV1MVCIsbGFzdFdlZWs6IltcdTRlMGFdZGRkZExUIixzYW1lRWxzZToiTCJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xk''@;'; + put 'put ''ezEsMn0oXHU2NWU1fFx1NjcwOHxcdTkwMzEpLyxvcmRpbmFsOmZ1bmN0aW9uKEUsTWUpe3N3aXRjaChNZSl7Y2FzZSJkIjpjYXNlIkQiOmNhc2UiREREIjpyZXR1cm4gRSsiXHU2NWU1IjtjYXNlIk0iOnJldHVybiBFKyJcdTY3MDgiO2Nhc2UidyI6Y2FzZSJXIjpyZXR1cm4gRSsiXHU5MDMx''@;'; + put 'put ''IjtkZWZhdWx0OnJldHVybiBFfX0scmVsYXRpdmVUaW1lOntmdXR1cmU6IiVzXHU1ZjhjIixwYXN0OiIlc1x1NTI0ZCIsczoiXHU1ZTdlXHU3OWQyIixzczoiJWQgXHU3OWQyIixtOiIxIFx1NTIwNlx1OTQxOCIsbW06IiVkIFx1NTIwNlx1OTQxOCIsaDoiMSBcdTVjMGZcdTY2NDIiLGhoOiIl''@;'; + put 'put ''ZCBcdTVjMGZcdTY2NDIiLGQ6IjEgXHU1OTI5IixkZDoiJWQgXHU1OTI5IixNOiIxIFx1NTAwYlx1NjcwOCIsTU06IiVkIFx1NTAwYlx1NjcwOCIseToiMSBcdTVlNzQiLHl5OiIlZCBcdTVlNzQifX0pfShMKDE1NDM5KSl9LDMxMTMzOmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlvbihtZSl7''@;'; + put 'put ''InVzZSBzdHJpY3QiO21lLmRlZmluZUxvY2FsZSgiemgtbW8iLHttb250aHM6Ilx1NGUwMFx1NjcwOF9cdTRlOGNcdTY3MDhfXHU0ZTA5XHU2NzA4X1x1NTZkYlx1NjcwOF9cdTRlOTRcdTY3MDhfXHU1MTZkXHU2NzA4X1x1NGUwM1x1NjcwOF9cdTUxNmJcdTY3MDhfXHU0ZTVkXHU2NzA4X1x1''@;'; + put 'put ''NTM0MVx1NjcwOF9cdTUzNDFcdTRlMDBcdTY3MDhfXHU1MzQxXHU0ZThjXHU2NzA4Ii5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiIxXHU2NzA4XzJcdTY3MDhfM1x1NjcwOF80XHU2NzA4XzVcdTY3MDhfNlx1NjcwOF83XHU2NzA4XzhcdTY3MDhfOVx1NjcwOF8xMFx1NjcwOF8xMVx1NjcwOF8x''@;'; + put 'put ''Mlx1NjcwOCIuc3BsaXQoIl8iKSx3ZWVrZGF5czoiXHU2NjFmXHU2NzFmXHU2NWU1X1x1NjYxZlx1NjcxZlx1NGUwMF9cdTY2MWZcdTY3MWZcdTRlOGNfXHU2NjFmXHU2NzFmXHU0ZTA5X1x1NjYxZlx1NjcxZlx1NTZkYl9cdTY2MWZcdTY3MWZcdTRlOTRfXHU2NjFmXHU2NzFmXHU1MTZkIi5z''@;'; + put 'put ''cGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6Ilx1OTAzMVx1NjVlNV9cdTkwMzFcdTRlMDBfXHU5MDMxXHU0ZThjX1x1OTAzMVx1NGUwOV9cdTkwMzFcdTU2ZGJfXHU5MDMxXHU0ZTk0X1x1OTAzMVx1NTE2ZCIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiXHU2NWU1X1x1NGUwMF9cdTRlOGNfXHU0''@;'; + put 'put ''ZTA5X1x1NTZkYl9cdTRlOTRfXHU1MTZkIi5zcGxpdCgiXyIpLGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IkREL01NL1lZWVkiLExMOiJZWVlZXHU1ZTc0TVx1NjcwOERcdTY1ZTUiLExMTDoiWVlZWVx1NWU3NE1cdTY3MDhEXHU2NWU1IEhIOm1tIixMTExM''@;'; + put 'put ''OiJZWVlZXHU1ZTc0TVx1NjcwOERcdTY1ZTVkZGRkIEhIOm1tIixsOiJEL00vWVlZWSIsbGw6IllZWVlcdTVlNzRNXHU2NzA4RFx1NjVlNSIsbGxsOiJZWVlZXHU1ZTc0TVx1NjcwOERcdTY1ZTUgSEg6bW0iLGxsbGw6IllZWVlcdTVlNzRNXHU2NzA4RFx1NjVlNWRkZGQgSEg6bW0ifSxtZXJp''@;'; + put 'put ''ZGllbVBhcnNlOi9cdTUxY2NcdTY2Njh8XHU2NWU5XHU0ZTBhfFx1NGUwYVx1NTM0OHxcdTRlMmRcdTUzNDh8XHU0ZTBiXHU1MzQ4fFx1NjY1YVx1NGUwYS8sbWVyaWRpZW1Ib3VyOmZ1bmN0aW9uKEUsTWUpe3JldHVybiAxMj09PUUmJihFPTApLCJcdTUxY2NcdTY2NjgiPT09TWV8fCJcdTY1''@;'; + put 'put ''ZTlcdTRlMGEiPT09TWV8fCJcdTRlMGFcdTUzNDgiPT09TWU/RToiXHU0ZTJkXHU1MzQ4Ij09PU1lP0U+PTExP0U6RSsxMjoiXHU0ZTBiXHU1MzQ4Ij09PU1lfHwiXHU2NjVhXHU0ZTBhIj09PU1lP0UrMTI6dm9pZCAwfSxtZXJpZGllbTpmdW5jdGlvbihFLE1lLFUpe3ZhciBRPTEwMCpFK01l''@;'; + put 'put ''O3JldHVybiBRPDYwMD8iXHU1MWNjXHU2NjY4IjpRPDkwMD8iXHU2NWU5XHU0ZTBhIjpRPDExMzA/Ilx1NGUwYVx1NTM0OCI6UTwxMjMwPyJcdTRlMmRcdTUzNDgiOlE8MTgwMD8iXHU0ZTBiXHU1MzQ4IjoiXHU2NjVhXHU0ZTBhIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltcdTRlY2FcdTU5Mjld''@;'; + put 'put ''IExUIixuZXh0RGF5OiJbXHU2NjBlXHU1OTI5XSBMVCIsbmV4dFdlZWs6IltcdTRlMGJdZGRkZCBMVCIsbGFzdERheToiW1x1NjYyOFx1NTkyOV0gTFQiLGxhc3RXZWVrOiJbXHU0ZTBhXWRkZGQgTFQiLHNhbWVFbHNlOiJMIn0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfShcdTY1''@;'; + put 'put ''ZTV8XHU2NzA4fFx1OTAzMSkvLG9yZGluYWw6ZnVuY3Rpb24oRSxNZSl7c3dpdGNoKE1lKXtjYXNlImQiOmNhc2UiRCI6Y2FzZSJEREQiOnJldHVybiBFKyJcdTY1ZTUiO2Nhc2UiTSI6cmV0dXJuIEUrIlx1NjcwOCI7Y2FzZSJ3IjpjYXNlIlciOnJldHVybiBFKyJcdTkwMzEiO2RlZmF1bHQ6''@;'; + put 'put ''cmV0dXJuIEV9fSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiJXNcdTUxNjciLHBhc3Q6IiVzXHU1MjRkIixzOiJcdTVlN2VcdTc5ZDIiLHNzOiIlZCBcdTc5ZDIiLG06IjEgXHU1MjA2XHU5NDE4IixtbToiJWQgXHU1MjA2XHU5NDE4IixoOiIxIFx1NWMwZlx1NjY0MiIsaGg6IiVkIFx1NWMwZlx1''@;'; + put 'put ''NjY0MiIsZDoiMSBcdTU5MjkiLGRkOiIlZCBcdTU5MjkiLE06IjEgXHU1MDBiXHU2NzA4IixNTToiJWQgXHU1MDBiXHU2NzA4Iix5OiIxIFx1NWU3NCIseXk6IiVkIFx1NWU3NCJ9fSl9KEwoMTU0MzkpKX0sODMyOTE6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmlj''@;'; + put 'put ''dCI7bWUuZGVmaW5lTG9jYWxlKCJ6aC10dyIse21vbnRoczoiXHU0ZTAwXHU2NzA4X1x1NGU4Y1x1NjcwOF9cdTRlMDlcdTY3MDhfXHU1NmRiXHU2NzA4X1x1NGU5NFx1NjcwOF9cdTUxNmRcdTY3MDhfXHU0ZTAzXHU2NzA4X1x1NTE2Ylx1NjcwOF9cdTRlNWRcdTY3MDhfXHU1MzQxXHU2NzA4''@;'; + put 'put ''X1x1NTM0MVx1NGUwMFx1NjcwOF9cdTUzNDFcdTRlOGNcdTY3MDgiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6IjFcdTY3MDhfMlx1NjcwOF8zXHU2NzA4XzRcdTY3MDhfNVx1NjcwOF82XHU2NzA4XzdcdTY3MDhfOFx1NjcwOF85XHU2NzA4XzEwXHU2NzA4XzExXHU2NzA4XzEyXHU2NzA4Ii5z''@;'; + put 'put ''cGxpdCgiXyIpLHdlZWtkYXlzOiJcdTY2MWZcdTY3MWZcdTY1ZTVfXHU2NjFmXHU2NzFmXHU0ZTAwX1x1NjYxZlx1NjcxZlx1NGU4Y19cdTY2MWZcdTY3MWZcdTRlMDlfXHU2NjFmXHU2NzFmXHU1NmRiX1x1NjYxZlx1NjcxZlx1NGU5NF9cdTY2MWZcdTY3MWZcdTUxNmQiLnNwbGl0KCJfIiks''@;'; + put 'put ''d2Vla2RheXNTaG9ydDoiXHU5MDMxXHU2NWU1X1x1OTAzMVx1NGUwMF9cdTkwMzFcdTRlOGNfXHU5MDMxXHU0ZTA5X1x1OTAzMVx1NTZkYl9cdTkwMzFcdTRlOTRfXHU5MDMxXHU1MTZkIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJcdTY1ZTVfXHU0ZTAwX1x1NGU4Y19cdTRlMDlfXHU1NmRi''@;'; + put 'put ''X1x1NGU5NF9cdTUxNmQiLnNwbGl0KCJfIiksbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoiWVlZWS9NTS9ERCIsTEw6IllZWVlcdTVlNzRNXHU2NzA4RFx1NjVlNSIsTExMOiJZWVlZXHU1ZTc0TVx1NjcwOERcdTY1ZTUgSEg6bW0iLExMTEw6IllZWVlcdTVl''@;'; + put 'put ''NzRNXHU2NzA4RFx1NjVlNWRkZGQgSEg6bW0iLGw6IllZWVkvTS9EIixsbDoiWVlZWVx1NWU3NE1cdTY3MDhEXHU2NWU1IixsbGw6IllZWVlcdTVlNzRNXHU2NzA4RFx1NjVlNSBISDptbSIsbGxsbDoiWVlZWVx1NWU3NE1cdTY3MDhEXHU2NWU1ZGRkZCBISDptbSJ9LG1lcmlkaWVtUGFyc2U6''@;'; + put 'put ''L1x1NTFjY1x1NjY2OHxcdTY1ZTlcdTRlMGF8XHU0ZTBhXHU1MzQ4fFx1NGUyZFx1NTM0OHxcdTRlMGJcdTUzNDh8XHU2NjVhXHU0ZTBhLyxtZXJpZGllbUhvdXI6ZnVuY3Rpb24oRSxNZSl7cmV0dXJuIDEyPT09RSYmKEU9MCksIlx1NTFjY1x1NjY2OCI9PT1NZXx8Ilx1NjVlOVx1NGUwYSI9''@;'; + put 'put ''PT1NZXx8Ilx1NGUwYVx1NTM0OCI9PT1NZT9FOiJcdTRlMmRcdTUzNDgiPT09TWU/RT49MTE/RTpFKzEyOiJcdTRlMGJcdTUzNDgiPT09TWV8fCJcdTY2NWFcdTRlMGEiPT09TWU/RSsxMjp2b2lkIDB9LG1lcmlkaWVtOmZ1bmN0aW9uKEUsTWUsVSl7dmFyIFE9MTAwKkUrTWU7cmV0dXJuIFE8''@;'; + put 'put ''NjAwPyJcdTUxY2NcdTY2NjgiOlE8OTAwPyJcdTY1ZTlcdTRlMGEiOlE8MTEzMD8iXHU0ZTBhXHU1MzQ4IjpRPDEyMzA/Ilx1NGUyZFx1NTM0OCI6UTwxODAwPyJcdTRlMGJcdTUzNDgiOiJcdTY2NWFcdTRlMGEifSxjYWxlbmRhcjp7c2FtZURheToiW1x1NGVjYVx1NTkyOV0gTFQiLG5leHRE''@;'; + put 'put ''YXk6IltcdTY2MGVcdTU5MjldIExUIixuZXh0V2VlazoiW1x1NGUwYl1kZGRkIExUIixsYXN0RGF5OiJbXHU2NjI4XHU1OTI5XSBMVCIsbGFzdFdlZWs6IltcdTRlMGFdZGRkZCBMVCIsc2FtZUVsc2U6IkwifSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9KFx1NjVlNXxcdTY3MDh8''@;'; + put 'put ''XHU5MDMxKS8sb3JkaW5hbDpmdW5jdGlvbihFLE1lKXtzd2l0Y2goTWUpe2Nhc2UiZCI6Y2FzZSJEIjpjYXNlIkRERCI6cmV0dXJuIEUrIlx1NjVlNSI7Y2FzZSJNIjpyZXR1cm4gRSsiXHU2NzA4IjtjYXNlInciOmNhc2UiVyI6cmV0dXJuIEUrIlx1OTAzMSI7ZGVmYXVsdDpyZXR1cm4gRX19''@;'; + put 'put ''LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiIlc1x1NWY4YyIscGFzdDoiJXNcdTUyNGQiLHM6Ilx1NWU3ZVx1NzlkMiIsc3M6IiVkIFx1NzlkMiIsbToiMSBcdTUyMDZcdTk0MTgiLG1tOiIlZCBcdTUyMDZcdTk0MTgiLGg6IjEgXHU1YzBmXHU2NjQyIixoaDoiJWQgXHU1YzBmXHU2NjQyIixkOiIx''@;'; + put 'put ''IFx1NTkyOSIsZGQ6IiVkIFx1NTkyOSIsTToiMSBcdTUwMGJcdTY3MDgiLE1NOiIlZCBcdTUwMGJcdTY3MDgiLHk6IjEgXHU1ZTc0Iix5eToiJWQgXHU1ZTc0In19KX0oTCgxNTQzOSkpfSwxNTQzOTpmdW5jdGlvbihYZSxKZSxMKXsoWGU9TC5ubWQoWGUpKS5leHBvcnRzPWZ1bmN0aW9uKCl7''@;'; + put 'put ''InVzZSBzdHJpY3QiO3ZhciBtZSxzZTtmdW5jdGlvbiBCKCl7cmV0dXJuIG1lLmFwcGx5KG51bGwsYXJndW1lbnRzKX1mdW5jdGlvbiBNZSh6ZSl7cmV0dXJuIHplIGluc3RhbmNlb2YgQXJyYXl8fCJbb2JqZWN0IEFycmF5XSI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoemUp''@;'; + put 'put ''fWZ1bmN0aW9uIFUoemUpe3JldHVybiBudWxsIT16ZSYmIltvYmplY3QgT2JqZWN0XSI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoemUpfWZ1bmN0aW9uIFEoemUsVnQpe3JldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoemUsVnQpfWZ1bmN0aW9u''@;'; + put 'put ''IFooemUpe2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKXJldHVybiAwPT09T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoemUpLmxlbmd0aDt2YXIgVnQ7Zm9yKFZ0IGluIHplKWlmKFEoemUsVnQpKXJldHVybiExO3JldHVybiEwfWZ1bmN0aW9uIGllKHplKXtyZXR1cm4gdm9pZCAw''@;'; + put 'put ''PT09emV9ZnVuY3Rpb24gYWUoemUpe3JldHVybiJudW1iZXIiPT10eXBlb2YgemV8fCJbb2JqZWN0IE51bWJlcl0iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHplKX1mdW5jdGlvbiBZKHplKXtyZXR1cm4gemUgaW5zdGFuY2VvZiBEYXRlfHwiW29iamVjdCBEYXRlXSI9PT1P''@;'; + put 'put ''YmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoemUpfWZ1bmN0aW9uIFcoemUsVnQpe3ZhciBSbixobj1bXSx0cj16ZS5sZW5ndGg7Zm9yKFJuPTA7Um48dHI7KytSbilobi5wdXNoKFZ0KHplW1JuXSxSbikpO3JldHVybiBobn1mdW5jdGlvbiBOKHplLFZ0KXtmb3IodmFyIGhuIGluIFZ0''@;'; + put 'put ''KVEoVnQsaG4pJiYoemVbaG5dPVZ0W2huXSk7cmV0dXJuIFEoVnQsInRvU3RyaW5nIikmJih6ZS50b1N0cmluZz1WdC50b1N0cmluZyksUShWdCwidmFsdWVPZiIpJiYoemUudmFsdWVPZj1WdC52YWx1ZU9mKSx6ZX1mdW5jdGlvbiBlZSh6ZSxWdCxobixSbil7cmV0dXJuIEtvKHplLFZ0LGhu''@;'; + put 'put ''LFJuLCEwKS51dGMoKX1mdW5jdGlvbiBKKHplKXtyZXR1cm4gbnVsbD09emUuX3BmJiYoemUuX3BmPXtlbXB0eTohMSx1bnVzZWRUb2tlbnM6W10sdW51c2VkSW5wdXQ6W10sb3ZlcmZsb3c6LTIsY2hhcnNMZWZ0T3ZlcjowLG51bGxJbnB1dDohMSxpbnZhbGlkRXJhOm51bGwsaW52YWxpZE1v''@;'; + put 'put ''bnRoOm51bGwsaW52YWxpZEZvcm1hdDohMSx1c2VySW52YWxpZGF0ZWQ6ITEsaXNvOiExLHBhcnNlZERhdGVQYXJ0czpbXSxlcmE6bnVsbCxtZXJpZGllbTpudWxsLHJmYzI4MjI6ITEsd2Vla2RheU1pc21hdGNoOiExfSksemUuX3BmfWZ1bmN0aW9uIG9lKHplKXtpZihudWxsPT16ZS5faXNW''@;'; + put 'put ''YWxpZCl7dmFyIFZ0PUooemUpLGhuPXNlLmNhbGwoVnQucGFyc2VkRGF0ZVBhcnRzLGZ1bmN0aW9uKHRyKXtyZXR1cm4gbnVsbCE9dHJ9KSxSbj0haXNOYU4oemUuX2QuZ2V0VGltZSgpKSYmVnQub3ZlcmZsb3c8MCYmIVZ0LmVtcHR5JiYhVnQuaW52YWxpZEVyYSYmIVZ0LmludmFsaWRNb250''@;'; + put 'put ''aCYmIVZ0LmludmFsaWRXZWVrZGF5JiYhVnQud2Vla2RheU1pc21hdGNoJiYhVnQubnVsbElucHV0JiYhVnQuaW52YWxpZEZvcm1hdCYmIVZ0LnVzZXJJbnZhbGlkYXRlZCYmKCFWdC5tZXJpZGllbXx8VnQubWVyaWRpZW0mJmhuKTtpZih6ZS5fc3RyaWN0JiYoUm49Um4mJjA9PT1WdC5jaGFy''@;'; + put 'put ''c0xlZnRPdmVyJiYwPT09VnQudW51c2VkVG9rZW5zLmxlbmd0aCYmdm9pZCAwPT09VnQuYmlnSG91ciksbnVsbCE9T2JqZWN0LmlzRnJvemVuJiZPYmplY3QuaXNGcm96ZW4oemUpKXJldHVybiBSbjt6ZS5faXNWYWxpZD1Sbn1yZXR1cm4gemUuX2lzVmFsaWR9ZnVuY3Rpb24gY2UoemUpe3Zh''@;'; + put 'put ''ciBWdD1lZShOYU4pO3JldHVybiBudWxsIT16ZT9OKEooVnQpLHplKTpKKFZ0KS51c2VySW52YWxpZGF0ZWQ9ITAsVnR9c2U9QXJyYXkucHJvdG90eXBlLnNvbWU/QXJyYXkucHJvdG90eXBlLnNvbWU6ZnVuY3Rpb24oemUpe3ZhciBSbixWdD1PYmplY3QodGhpcyksaG49VnQubGVuZ3RoPj4+''@;'; + put 'put ''MDtmb3IoUm49MDtSbjxobjtSbisrKWlmKFJuIGluIFZ0JiZ6ZS5jYWxsKHRoaXMsVnRbUm5dLFJuLFZ0KSlyZXR1cm4hMDtyZXR1cm4hMX07dmFyIGRlPUIubW9tZW50UHJvcGVydGllcz1bXSx2ZT0hMTtmdW5jdGlvbiBBZSh6ZSxWdCl7dmFyIGhuLFJuLHRyLGVpPWRlLmxlbmd0aDtpZihp''@;'; + put 'put ''ZShWdC5faXNBTW9tZW50T2JqZWN0KXx8KHplLl9pc0FNb21lbnRPYmplY3Q9VnQuX2lzQU1vbWVudE9iamVjdCksaWUoVnQuX2kpfHwoemUuX2k9VnQuX2kpLGllKFZ0Ll9mKXx8KHplLl9mPVZ0Ll9mKSxpZShWdC5fbCl8fCh6ZS5fbD1WdC5fbCksaWUoVnQuX3N0cmljdCl8fCh6ZS5fc3Ry''@;'; + put 'put ''aWN0PVZ0Ll9zdHJpY3QpLGllKFZ0Ll90em0pfHwoemUuX3R6bT1WdC5fdHptKSxpZShWdC5faXNVVEMpfHwoemUuX2lzVVRDPVZ0Ll9pc1VUQyksaWUoVnQuX29mZnNldCl8fCh6ZS5fb2Zmc2V0PVZ0Ll9vZmZzZXQpLGllKFZ0Ll9wZil8fCh6ZS5fcGY9SihWdCkpLGllKFZ0Ll9sb2NhbGUp''@;'; + put 'put ''fHwoemUuX2xvY2FsZT1WdC5fbG9jYWxlKSxlaT4wKWZvcihobj0wO2huPGVpO2huKyspaWUodHI9VnRbUm49ZGVbaG5dXSl8fCh6ZVtSbl09dHIpO3JldHVybiB6ZX1mdW5jdGlvbiBrZSh6ZSl7QWUodGhpcyx6ZSksdGhpcy5fZD1uZXcgRGF0ZShudWxsIT16ZS5fZD96ZS5fZC5nZXRUaW1l''@;'; + put 'put ''KCk6TmFOKSx0aGlzLmlzVmFsaWQoKXx8KHRoaXMuX2Q9bmV3IERhdGUoTmFOKSksITE9PT12ZSYmKHZlPSEwLEIudXBkYXRlT2Zmc2V0KHRoaXMpLHZlPSExKX1mdW5jdGlvbiBTZSh6ZSl7cmV0dXJuIHplIGluc3RhbmNlb2Yga2V8fG51bGwhPXplJiZudWxsIT16ZS5faXNBTW9tZW50T2Jq''@;'; + put 'put ''ZWN0fWZ1bmN0aW9uIEllKHplKXshMT09PUIuc3VwcHJlc3NEZXByZWNhdGlvbldhcm5pbmdzJiYidW5kZWZpbmVkIiE9dHlwZW9mIGNvbnNvbGUmJmNvbnNvbGUud2FybiYmY29uc29sZS53YXJuKCJEZXByZWNhdGlvbiB3YXJuaW5nOiAiK3plKX1mdW5jdGlvbiBUZSh6ZSxWdCl7dmFyIGhu''@;'; + put 'put ''PSEwO3JldHVybiBOKGZ1bmN0aW9uKCl7aWYobnVsbCE9Qi5kZXByZWNhdGlvbkhhbmRsZXImJkIuZGVwcmVjYXRpb25IYW5kbGVyKG51bGwsemUpLGhuKXt2YXIgdHIsZWksWWksUm49W10sZGE9YXJndW1lbnRzLmxlbmd0aDtmb3IoZWk9MDtlaTxkYTtlaSsrKXtpZih0cj0iIiwib2JqZWN0''@;'; + put 'put ''Ij09dHlwZW9mIGFyZ3VtZW50c1tlaV0pe2ZvcihZaSBpbiB0cis9IlxuWyIrZWkrIl0gIixhcmd1bWVudHNbMF0pUShhcmd1bWVudHNbMF0sWWkpJiYodHIrPVlpKyI6ICIrYXJndW1lbnRzWzBdW1lpXSsiLCAiKTt0cj10ci5zbGljZSgwLC0yKX1lbHNlIHRyPWFyZ3VtZW50c1tlaV07Um4u''@;'; + put 'put ''cHVzaCh0cil9SWUoemUrIlxuQXJndW1lbnRzOiAiK0FycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKFJuKS5qb2luKCIiKSsiXG4iKyhuZXcgRXJyb3IpLnN0YWNrKSxobj0hMX1yZXR1cm4gVnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfSxWdCl9dmFyIHgsRWU9e307ZnVuY3Rpb24gaGUoemUs''@;'; + put 'put ''VnQpe251bGwhPUIuZGVwcmVjYXRpb25IYW5kbGVyJiZCLmRlcHJlY2F0aW9uSGFuZGxlcih6ZSxWdCksRWVbemVdfHwoSWUoVnQpLEVlW3plXT0hMCl9ZnVuY3Rpb24gTyh6ZSl7cmV0dXJuInVuZGVmaW5lZCIhPXR5cGVvZiBGdW5jdGlvbiYmemUgaW5zdGFuY2VvZiBGdW5jdGlvbnx8Iltv''@;'; + put 'put ''YmplY3QgRnVuY3Rpb25dIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh6ZSl9ZnVuY3Rpb24gbmUoemUsVnQpe3ZhciBSbixobj1OKHt9LHplKTtmb3IoUm4gaW4gVnQpUShWdCxSbikmJihVKHplW1JuXSkmJlUoVnRbUm5dKT8oaG5bUm5dPXt9LE4oaG5bUm5dLHplW1JuXSks''@;'; + put 'put ''TihobltSbl0sVnRbUm5dKSk6bnVsbCE9VnRbUm5dP2huW1JuXT1WdFtSbl06ZGVsZXRlIGhuW1JuXSk7Zm9yKFJuIGluIHplKVEoemUsUm4pJiYhUShWdCxSbikmJlUoemVbUm5dKSYmKGhuW1JuXT1OKHt9LGhuW1JuXSkpO3JldHVybiBobn1mdW5jdGlvbiB0ZSh6ZSl7bnVsbCE9emUmJnRo''@;'; + put 'put ''aXMuc2V0KHplKX1CLnN1cHByZXNzRGVwcmVjYXRpb25XYXJuaW5ncz0hMSxCLmRlcHJlY2F0aW9uSGFuZGxlcj1udWxsLHg9T2JqZWN0LmtleXM/T2JqZWN0LmtleXM6ZnVuY3Rpb24oemUpe3ZhciBWdCxobj1bXTtmb3IoVnQgaW4gemUpUSh6ZSxWdCkmJmhuLnB1c2goVnQpO3JldHVybiBo''@;'; + put 'put ''bn07ZnVuY3Rpb24gVCh6ZSxWdCxobil7dmFyIFJuPSIiK01hdGguYWJzKHplKTtyZXR1cm4oemU+PTA/aG4/IisiOiIiOiItIikrTWF0aC5wb3coMTAsTWF0aC5tYXgoMCxWdC1Sbi5sZW5ndGgpKS50b1N0cmluZygpLnN1YnN0cigxKStSbn12YXIgUz0vKFxbW15cW10qXF0pfChcXCk/KFtI''@;'; + put 'put ''aF1tbShzcyk/fE1vfE1NP00/TT98RG98REREb3xERD9EP0Q/fGRkZD9kP3xkbz98d1tvfHddP3xXW298V10/fFFvP3xOezEsNX18WVlZWVlZfFlZWVlZfFlZWVl8WVl8eXsyLDR9fHlvP3xnZyhnZ2c/KT98R0coR0dHPyk/fGV8RXxhfEF8aGg/fEhIP3xraz98bW0/fHNzP3xTezEsOX18eHxY''@;'; + put 'put ''fHp6P3xaWj98LikvZyxGPS8oXFtbXlxbXSpcXSl8KFxcKT8oTFRTfExUfExMP0w/TD98bHsxLDR9KS9nLHllPXt9LENlPXt9O2Z1bmN0aW9uIERlKHplLFZ0LGhuLFJuKXt2YXIgdHI9Um47InN0cmluZyI9PXR5cGVvZiBSbiYmKHRyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXNbUm5dKCl9KSx6''@;'; + put 'put ''ZSYmKENlW3plXT10ciksVnQmJihDZVtWdFswXV09ZnVuY3Rpb24oKXtyZXR1cm4gVCh0ci5hcHBseSh0aGlzLGFyZ3VtZW50cyksVnRbMV0sVnRbMl0pfSksaG4mJihDZVtobl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sb2NhbGVEYXRhKCkub3JkaW5hbCh0ci5hcHBseSh0aGlzLGFyZ3Vt''@;'; + put 'put ''ZW50cyksemUpfSl9ZnVuY3Rpb24gUGUoemUpe3JldHVybiB6ZS5tYXRjaCgvXFtbXHNcU10vKT96ZS5yZXBsYWNlKC9eXFt8XF0kL2csIiIpOnplLnJlcGxhY2UoL1xcL2csIiIpfWZ1bmN0aW9uICRlKHplLFZ0KXtyZXR1cm4gemUuaXNWYWxpZCgpPyhWdD1ndChWdCx6ZS5sb2NhbGVEYXRh''@;'; + put 'put ''KCkpLHllW1Z0XT15ZVtWdF18fGZ1bmN0aW9uIFFlKHplKXt2YXIgaG4sUm4sVnQ9emUubWF0Y2goUyk7Zm9yKGhuPTAsUm49VnQubGVuZ3RoO2huPFJuO2huKyspVnRbaG5dPUNlW1Z0W2huXV0/Q2VbVnRbaG5dXTpQZShWdFtobl0pO3JldHVybiBmdW5jdGlvbih0cil7dmFyIFlpLGVpPSIi''@;'; + put 'put ''O2ZvcihZaT0wO1lpPFJuO1lpKyspZWkrPU8oVnRbWWldKT9WdFtZaV0uY2FsbCh0cix6ZSk6VnRbWWldO3JldHVybiBlaX19KFZ0KSx5ZVtWdF0oemUpKTp6ZS5sb2NhbGVEYXRhKCkuaW52YWxpZERhdGUoKX1mdW5jdGlvbiBndCh6ZSxWdCl7dmFyIGhuPTU7ZnVuY3Rpb24gUm4odHIpe3Jl''@;'; + put 'put ''dHVybiBWdC5sb25nRGF0ZUZvcm1hdCh0cil8fHRyfWZvcihGLmxhc3RJbmRleD0wO2huPj0wJiZGLnRlc3QoemUpOyl6ZT16ZS5yZXBsYWNlKEYsUm4pLEYubGFzdEluZGV4PTAsaG4tPTE7cmV0dXJuIHplfXZhciBhdD17fTtmdW5jdGlvbiBMdCh6ZSxWdCl7dmFyIGhuPXplLnRvTG93ZXJD''@;'; + put 'put ''YXNlKCk7YXRbaG5dPWF0W2huKyJzIl09YXRbVnRdPXplfWZ1bmN0aW9uIEN0KHplKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHplP2F0W3plXXx8YXRbemUudG9Mb3dlckNhc2UoKV06dm9pZCAwfWZ1bmN0aW9uIGZ0KHplKXt2YXIgaG4sUm4sVnQ9e307Zm9yKFJuIGluIHplKVEoemUsUm4p''@;'; + put 'put ''JiYoaG49Q3QoUm4pKSYmKFZ0W2huXT16ZVtSbl0pO3JldHVybiBWdH12YXIgSHQ9e307ZnVuY3Rpb24gR2UoemUsVnQpe0h0W3plXT1WdH1mdW5jdGlvbiB5dCh6ZSl7cmV0dXJuIHplJTQ9PTAmJnplJTEwMCE9MHx8emUlNDAwPT0wfWZ1bmN0aW9uIGp0KHplKXtyZXR1cm4gemU8MD9NYXRo''@;'; + put 'put ''LmNlaWwoemUpfHwwOk1hdGguZmxvb3IoemUpfWZ1bmN0aW9uIFF0KHplKXt2YXIgVnQ9K3plLGhuPTA7cmV0dXJuIDAhPT1WdCYmaXNGaW5pdGUoVnQpJiYoaG49anQoVnQpKSxobn1mdW5jdGlvbiBnbih6ZSxWdCl7cmV0dXJuIGZ1bmN0aW9uKGhuKXtyZXR1cm4gbnVsbCE9aG4/KHluKHRo''@;'; + put 'put ''aXMsemUsaG4pLEIudXBkYXRlT2Zmc2V0KHRoaXMsVnQpLHRoaXMpOmRuKHRoaXMsemUpfX1mdW5jdGlvbiBkbih6ZSxWdCl7cmV0dXJuIHplLmlzVmFsaWQoKT96ZS5fZFsiZ2V0IisoemUuX2lzVVRDPyJVVEMiOiIiKStWdF0oKTpOYU59ZnVuY3Rpb24geW4oemUsVnQsaG4pe3plLmlzVmFs''@;'; + put 'put ''aWQoKSYmIWlzTmFOKGhuKSYmKCJGdWxsWWVhciI9PT1WdCYmeXQoemUueWVhcigpKSYmMT09PXplLm1vbnRoKCkmJjI5PT09emUuZGF0ZSgpPyhobj1RdChobiksemUuX2RbInNldCIrKHplLl9pc1VUQz8iVVRDIjoiIikrVnRdKGhuLHplLm1vbnRoKCksaWkoaG4semUubW9udGgoKSkpKTp6''@;'; + put 'put ''ZS5fZFsic2V0IisoemUuX2lzVVRDPyJVVEMiOiIiKStWdF0oaG4pKX12YXIgd24sYm49L1xkLyxlcj0vXGRcZC8sc3I9L1xkezN9LyxYbj0vXGR7NH0vLEZyPS9bKy1dP1xkezZ9Lyx4cj0vXGRcZD8vLHF0PS9cZFxkXGRcZD8vLHByPS9cZFxkXGRcZFxkXGQ/Lyxucj0vXGR7MSwzfS8sQW49''@;'; + put 'put ''L1xkezEsNH0vLHFuPS9bKy1dP1xkezEsNn0vLFd0PS9cZCsvLHBuPS9bKy1dP1xkKy8sS249L1p8WystXVxkXGQ6P1xkXGQvZ2ksTnQ9L1p8WystXVxkXGQoPzo6P1xkXGQpPy9naSxVbj0vWzAtOV17MCwyNTZ9WydhLXpcdTAwQTAtXHUwNUZGXHUwNzAwLVx1RDdGRlx1RjkwMC1cdUZEQ0Zc''@;'; + put 'put ''dUZERjAtXHVGRjA3XHVGRjEwLVx1RkZFRl17MSwyNTZ9fFtcdTA2MDAtXHUwNkZGXC9dezEsMjU2fShccyo/W1x1MDYwMC1cdTA2RkZdezEsMjU2fSl7MSwyfS9pO2Z1bmN0aW9uIHRuKHplLFZ0LGhuKXt3blt6ZV09TyhWdCk/VnQ6ZnVuY3Rpb24oUm4sdHIpe3JldHVybiBSbiYmaG4/aG46''@;'; + put 'put ''VnR9fWZ1bmN0aW9uIHpuKHplLFZ0KXtyZXR1cm4gUSh3bix6ZSk/d25bemVdKFZ0Ll9zdHJpY3QsVnQuX2xvY2FsZSk6bmV3IFJlZ0V4cChmdW5jdGlvbiBUcih6ZSl7cmV0dXJuIEJuKHplLnJlcGxhY2UoIlxcIiwiIikucmVwbGFjZSgvXFwoXFspfFxcKFxdKXxcWyhbXlxdXFtdKilcXXxc''@;'; + put 'put ''XCguKS9nLGZ1bmN0aW9uKFZ0LGhuLFJuLHRyLGVpKXtyZXR1cm4gaG58fFJufHx0cnx8ZWl9KSl9KHplKSl9ZnVuY3Rpb24gQm4oemUpe3JldHVybiB6ZS5yZXBsYWNlKC9bLVwvXFxeJCorPy4oKXxbXF17fV0vZywiXFwkJiIpfXduPXt9O3ZhciBrcj17fTtmdW5jdGlvbiBtbih6ZSxWdCl7''@;'; + put 'put ''dmFyIGhuLHRyLFJuPVZ0O2Zvcigic3RyaW5nIj09dHlwZW9mIHplJiYoemU9W3plXSksYWUoVnQpJiYoUm49ZnVuY3Rpb24oZWksWWkpe1lpW1Z0XT1RdChlaSl9KSx0cj16ZS5sZW5ndGgsaG49MDtobjx0cjtobisrKWtyW3plW2huXV09Um59ZnVuY3Rpb24gdW4oemUsVnQpe21uKHplLGZ1''@;'; + put 'put ''bmN0aW9uKGhuLFJuLHRyLGVpKXt0ci5fdz10ci5fd3x8e30sVnQoaG4sdHIuX3csdHIsZWkpfSl9ZnVuY3Rpb24gY24oemUsVnQsaG4pe251bGwhPVZ0JiZRKGtyLHplKSYma3JbemVdKFZ0LGhuLl9hLGhuLHplKX12YXIgVnI7ZnVuY3Rpb24gaWkoemUsVnQpe2lmKGlzTmFOKHplKXx8aXNO''@;'; + put 'put ''YU4oVnQpKXJldHVybiBOYU47dmFyIGhuPWZ1bmN0aW9uIEtyKHplLFZ0KXtyZXR1cm4oemUlVnQrVnQpJVZ0fShWdCwxMik7cmV0dXJuIHplKz0oVnQtaG4pLzEyLDE9PT1obj95dCh6ZSk/Mjk6Mjg6MzEtaG4lNyUyfVZyPUFycmF5LnByb3RvdHlwZS5pbmRleE9mP0FycmF5LnByb3RvdHlw''@;'; + put 'put ''ZS5pbmRleE9mOmZ1bmN0aW9uKHplKXt2YXIgVnQ7Zm9yKFZ0PTA7VnQ8dGhpcy5sZW5ndGg7KytWdClpZih0aGlzW1Z0XT09PXplKXJldHVybiBWdDtyZXR1cm4tMX0sRGUoIk0iLFsiTU0iLDJdLCJNbyIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tb250aCgpKzF9KSxEZSgiTU1NIiwwLDAs''@;'; + put 'put ''ZnVuY3Rpb24oemUpe3JldHVybiB0aGlzLmxvY2FsZURhdGEoKS5tb250aHNTaG9ydCh0aGlzLHplKX0pLERlKCJNTU1NIiwwLDAsZnVuY3Rpb24oemUpe3JldHVybiB0aGlzLmxvY2FsZURhdGEoKS5tb250aHModGhpcyx6ZSl9KSxMdCgibW9udGgiLCJNIiksR2UoIm1vbnRoIiw4KSx0bigi''@;'; + put 'put ''TSIseHIpLHRuKCJNTSIseHIsZXIpLHRuKCJNTU0iLGZ1bmN0aW9uKHplLFZ0KXtyZXR1cm4gVnQubW9udGhzU2hvcnRSZWdleCh6ZSl9KSx0bigiTU1NTSIsZnVuY3Rpb24oemUsVnQpe3JldHVybiBWdC5tb250aHNSZWdleCh6ZSl9KSxtbihbIk0iLCJNTSJdLGZ1bmN0aW9uKHplLFZ0KXtW''@;'; + put 'put ''dFsxXT1RdCh6ZSktMX0pLG1uKFsiTU1NIiwiTU1NTSJdLGZ1bmN0aW9uKHplLFZ0LGhuLFJuKXt2YXIgdHI9aG4uX2xvY2FsZS5tb250aHNQYXJzZSh6ZSxSbixobi5fc3RyaWN0KTtudWxsIT10cj9WdFsxXT10cjpKKGhuKS5pbnZhbGlkTW9udGg9emV9KTt2YXIgUnI9IkphbnVhcnlfRmVi''@;'; + put 'put ''cnVhcnlfTWFyY2hfQXByaWxfTWF5X0p1bmVfSnVseV9BdWd1c3RfU2VwdGVtYmVyX09jdG9iZXJfTm92ZW1iZXJfRGVjZW1iZXIiLnNwbGl0KCJfIiksbGk9Ikphbl9GZWJfTWFyX0Fwcl9NYXlfSnVuX0p1bF9BdWdfU2VwX09jdF9Ob3ZfRGVjIi5zcGxpdCgiXyIpLE1pPS9EW29EXT8oXFtb''@;'; + put 'put ''XlxbXF1dKlxdfFxzKStNTU1NPy8sbzA9VW4sbjA9VW47ZnVuY3Rpb24gRzAoemUsVnQsaG4pe3ZhciBSbix0cixlaSxZaT16ZS50b0xvY2FsZUxvd2VyQ2FzZSgpO2lmKCF0aGlzLl9tb250aHNQYXJzZSlmb3IodGhpcy5fbW9udGhzUGFyc2U9W10sdGhpcy5fbG9uZ01vbnRoc1BhcnNlPVtd''@;'; + put 'put ''LHRoaXMuX3Nob3J0TW9udGhzUGFyc2U9W10sUm49MDtSbjwxMjsrK1JuKWVpPWVlKFsyZTMsUm5dKSx0aGlzLl9zaG9ydE1vbnRoc1BhcnNlW1JuXT10aGlzLm1vbnRoc1Nob3J0KGVpLCIiKS50b0xvY2FsZUxvd2VyQ2FzZSgpLHRoaXMuX2xvbmdNb250aHNQYXJzZVtSbl09dGhpcy5tb250''@;'; + put 'put ''aHMoZWksIiIpLnRvTG9jYWxlTG93ZXJDYXNlKCk7cmV0dXJuIGhuPyJNTU0iPT09VnQ/LTEhPT0odHI9VnIuY2FsbCh0aGlzLl9zaG9ydE1vbnRoc1BhcnNlLFlpKSk/dHI6bnVsbDotMSE9PSh0cj1Wci5jYWxsKHRoaXMuX2xvbmdNb250aHNQYXJzZSxZaSkpP3RyOm51bGw6Ik1NTSI9PT1W''@;'; + put 'put ''dD8tMSE9PSh0cj1Wci5jYWxsKHRoaXMuX3Nob3J0TW9udGhzUGFyc2UsWWkpKXx8LTEhPT0odHI9VnIuY2FsbCh0aGlzLl9sb25nTW9udGhzUGFyc2UsWWkpKT90cjpudWxsOi0xIT09KHRyPVZyLmNhbGwodGhpcy5fbG9uZ01vbnRoc1BhcnNlLFlpKSl8fC0xIT09KHRyPVZyLmNhbGwodGhp''@;'; + put 'put ''cy5fc2hvcnRNb250aHNQYXJzZSxZaSkpP3RyOm51bGx9ZnVuY3Rpb24gVzAoemUsVnQpe3ZhciBobjtpZighemUuaXNWYWxpZCgpKXJldHVybiB6ZTtpZigic3RyaW5nIj09dHlwZW9mIFZ0KWlmKC9eXGQrJC8udGVzdChWdCkpVnQ9UXQoVnQpO2Vsc2UgaWYoIWFlKFZ0PXplLmxvY2FsZURh''@;'; + put 'put ''dGEoKS5tb250aHNQYXJzZShWdCkpKXJldHVybiB6ZTtyZXR1cm4gaG49TWF0aC5taW4oemUuZGF0ZSgpLGlpKHplLnllYXIoKSxWdCkpLHplLl9kWyJzZXQiKyh6ZS5faXNVVEM/IlVUQyI6IiIpKyJNb250aCJdKFZ0LGhuKSx6ZX1mdW5jdGlvbiBFbyh6ZSl7cmV0dXJuIG51bGwhPXplPyhX''@;'; + put 'put ''MCh0aGlzLHplKSxCLnVwZGF0ZU9mZnNldCh0aGlzLCEwKSx0aGlzKTpkbih0aGlzLCJNb250aCIpfWZ1bmN0aW9uIFFpKCl7ZnVuY3Rpb24gemUoWWksZGEpe3JldHVybiBkYS5sZW5ndGgtWWkubGVuZ3RofXZhciB0cixlaSxWdD1bXSxobj1bXSxSbj1bXTtmb3IodHI9MDt0cjwxMjt0cisr''@;'; + put 'put ''KWVpPWVlKFsyZTMsdHJdKSxWdC5wdXNoKHRoaXMubW9udGhzU2hvcnQoZWksIiIpKSxobi5wdXNoKHRoaXMubW9udGhzKGVpLCIiKSksUm4ucHVzaCh0aGlzLm1vbnRocyhlaSwiIikpLFJuLnB1c2godGhpcy5tb250aHNTaG9ydChlaSwiIikpO2ZvcihWdC5zb3J0KHplKSxobi5zb3J0KHpl''@;'; + put 'put ''KSxSbi5zb3J0KHplKSx0cj0wO3RyPDEyO3RyKyspVnRbdHJdPUJuKFZ0W3RyXSksaG5bdHJdPUJuKGhuW3RyXSk7Zm9yKHRyPTA7dHI8MjQ7dHIrKylSblt0cl09Qm4oUm5bdHJdKTt0aGlzLl9tb250aHNSZWdleD1uZXcgUmVnRXhwKCJeKCIrUm4uam9pbigifCIpKyIpIiwiaSIpLHRoaXMu''@;'; + put 'put ''X21vbnRoc1Nob3J0UmVnZXg9dGhpcy5fbW9udGhzUmVnZXgsdGhpcy5fbW9udGhzU3RyaWN0UmVnZXg9bmV3IFJlZ0V4cCgiXigiK2huLmpvaW4oInwiKSsiKSIsImkiKSx0aGlzLl9tb250aHNTaG9ydFN0cmljdFJlZ2V4PW5ldyBSZWdFeHAoIl4oIitWdC5qb2luKCJ8IikrIikiLCJpIil9''@;'; + put 'put ''ZnVuY3Rpb24gTWEoemUpe3JldHVybiB5dCh6ZSk/MzY2OjM2NX1EZSgiWSIsMCwwLGZ1bmN0aW9uKCl7dmFyIHplPXRoaXMueWVhcigpO3JldHVybiB6ZTw9OTk5OT9UKHplLDQpOiIrIit6ZX0pLERlKDAsWyJZWSIsMl0sMCxmdW5jdGlvbigpe3JldHVybiB0aGlzLnllYXIoKSUxMDB9KSxE''@;'; + put 'put ''ZSgwLFsiWVlZWSIsNF0sMCwieWVhciIpLERlKDAsWyJZWVlZWSIsNV0sMCwieWVhciIpLERlKDAsWyJZWVlZWVkiLDYsITBdLDAsInllYXIiKSxMdCgieWVhciIsInkiKSxHZSgieWVhciIsMSksdG4oIlkiLHBuKSx0bigiWVkiLHhyLGVyKSx0bigiWVlZWSIsQW4sWG4pLHRuKCJZWVlZWSIs''@;'; + put 'put ''cW4sRnIpLHRuKCJZWVlZWVkiLHFuLEZyKSxtbihbIllZWVlZIiwiWVlZWVlZIl0sMCksbW4oIllZWVkiLGZ1bmN0aW9uKHplLFZ0KXtWdFswXT0yPT09emUubGVuZ3RoP0IucGFyc2VUd29EaWdpdFllYXIoemUpOlF0KHplKX0pLG1uKCJZWSIsZnVuY3Rpb24oemUsVnQpe1Z0WzBdPUIucGFy''@;'; + put 'put ''c2VUd29EaWdpdFllYXIoemUpfSksbW4oIlkiLGZ1bmN0aW9uKHplLFZ0KXtWdFswXT1wYXJzZUludCh6ZSwxMCl9KSxCLnBhcnNlVHdvRGlnaXRZZWFyPWZ1bmN0aW9uKHplKXtyZXR1cm4gUXQoemUpKyhRdCh6ZSk+Njg/MTkwMDoyZTMpfTt2YXIgbmw9Z24oIkZ1bGxZZWFyIiwhMCk7ZnVu''@;'; + put 'put ''Y3Rpb24gQWkoemUsVnQsaG4sUm4sdHIsZWksWWkpe3ZhciBkYTtyZXR1cm4gemU8MTAwJiZ6ZT49MD8oZGE9bmV3IERhdGUoemUrNDAwLFZ0LGhuLFJuLHRyLGVpLFlpKSxpc0Zpbml0ZShkYS5nZXRGdWxsWWVhcigpKSYmZGEuc2V0RnVsbFllYXIoemUpKTpkYT1uZXcgRGF0ZSh6ZSxWdCxo''@;'; + put 'put ''bixSbix0cixlaSxZaSksZGF9ZnVuY3Rpb24gdmkoemUpe3ZhciBWdCxobjtyZXR1cm4gemU8MTAwJiZ6ZT49MD8oKGhuPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cykpWzBdPXplKzQwMCxWdD1uZXcgRGF0ZShEYXRlLlVUQy5hcHBseShudWxsLGhuKSksaXNGaW5pdGUo''@;'; + put 'put ''VnQuZ2V0VVRDRnVsbFllYXIoKSkmJlZ0LnNldFVUQ0Z1bGxZZWFyKHplKSk6VnQ9bmV3IERhdGUoRGF0ZS5VVEMuYXBwbHkobnVsbCxhcmd1bWVudHMpKSxWdH1mdW5jdGlvbiBiMCh6ZSxWdCxobil7dmFyIFJuPTcrVnQtaG47cmV0dXJuLSg3K3ZpKHplLDAsUm4pLmdldFVUQ0RheSgpLVZ0''@;'; + put 'put ''KSU3K1JuLTF9ZnVuY3Rpb24gc2EoemUsVnQsaG4sUm4sdHIpe3ZhciB6YSxQcyxkYT0xKzcqKFZ0LTEpKyg3K2huLVJuKSU3K2IwKHplLFJuLHRyKTtyZXR1cm4gZGE8PTA/UHM9TWEoemE9emUtMSkrZGE6ZGE+TWEoemUpPyh6YT16ZSsxLFBzPWRhLU1hKHplKSk6KHphPXplLFBzPWRhKSx7''@;'; + put 'put ''eWVhcjp6YSxkYXlPZlllYXI6UHN9fWZ1bmN0aW9uIHJsKHplLFZ0LGhuKXt2YXIgZWksWWksUm49YjAoemUueWVhcigpLFZ0LGhuKSx0cj1NYXRoLmZsb29yKCh6ZS5kYXlPZlllYXIoKS1Sbi0xKS83KSsxO3JldHVybiB0cjwxP2VpPXRyK19pKFlpPXplLnllYXIoKS0xLFZ0LGhuKTp0cj5f''@;'; + put 'put ''aSh6ZS55ZWFyKCksVnQsaG4pPyhlaT10ci1faSh6ZS55ZWFyKCksVnQsaG4pLFlpPXplLnllYXIoKSsxKTooWWk9emUueWVhcigpLGVpPXRyKSx7d2VlazplaSx5ZWFyOllpfX1mdW5jdGlvbiBfaSh6ZSxWdCxobil7dmFyIFJuPWIwKHplLFZ0LGhuKSx0cj1iMCh6ZSsxLFZ0LGhuKTtyZXR1''@;'; + put 'put ''cm4oTWEoemUpLVJuK3RyKS83fURlKCJ3IixbInd3IiwyXSwid28iLCJ3ZWVrIiksRGUoIlciLFsiV1ciLDJdLCJXbyIsImlzb1dlZWsiKSxMdCgid2VlayIsInciKSxMdCgiaXNvV2VlayIsIlciKSxHZSgid2VlayIsNSksR2UoImlzb1dlZWsiLDUpLHRuKCJ3Iix4ciksdG4oInd3Iix4cixl''@;'; + put 'put ''ciksdG4oIlciLHhyKSx0bigiV1ciLHhyLGVyKSx1bihbInciLCJ3dyIsIlciLCJXVyJdLGZ1bmN0aW9uKHplLFZ0LGhuLFJuKXtWdFtSbi5zdWJzdHIoMCwxKV09UXQoemUpfSk7ZnVuY3Rpb24gdm4oemUsVnQpe3JldHVybiB6ZS5zbGljZShWdCw3KS5jb25jYXQoemUuc2xpY2UoMCxWdCkp''@;'; + put 'put ''fURlKCJkIiwwLCJkbyIsImRheSIpLERlKCJkZCIsMCwwLGZ1bmN0aW9uKHplKXtyZXR1cm4gdGhpcy5sb2NhbGVEYXRhKCkud2Vla2RheXNNaW4odGhpcyx6ZSl9KSxEZSgiZGRkIiwwLDAsZnVuY3Rpb24oemUpe3JldHVybiB0aGlzLmxvY2FsZURhdGEoKS53ZWVrZGF5c1Nob3J0KHRoaXMs''@;'; + put 'put ''emUpfSksRGUoImRkZGQiLDAsMCxmdW5jdGlvbih6ZSl7cmV0dXJuIHRoaXMubG9jYWxlRGF0YSgpLndlZWtkYXlzKHRoaXMsemUpfSksRGUoImUiLDAsMCwid2Vla2RheSIpLERlKCJFIiwwLDAsImlzb1dlZWtkYXkiKSxMdCgiZGF5IiwiZCIpLEx0KCJ3ZWVrZGF5IiwiZSIpLEx0KCJpc29X''@;'; + put 'put ''ZWVrZGF5IiwiRSIpLEdlKCJkYXkiLDExKSxHZSgid2Vla2RheSIsMTEpLEdlKCJpc29XZWVrZGF5IiwxMSksdG4oImQiLHhyKSx0bigiZSIseHIpLHRuKCJFIix4ciksdG4oImRkIixmdW5jdGlvbih6ZSxWdCl7cmV0dXJuIFZ0LndlZWtkYXlzTWluUmVnZXgoemUpfSksdG4oImRkZCIsZnVu''@;'; + put 'put ''Y3Rpb24oemUsVnQpe3JldHVybiBWdC53ZWVrZGF5c1Nob3J0UmVnZXgoemUpfSksdG4oImRkZGQiLGZ1bmN0aW9uKHplLFZ0KXtyZXR1cm4gVnQud2Vla2RheXNSZWdleCh6ZSl9KSx1bihbImRkIiwiZGRkIiwiZGRkZCJdLGZ1bmN0aW9uKHplLFZ0LGhuLFJuKXt2YXIgdHI9aG4uX2xvY2Fs''@;'; + put 'put ''ZS53ZWVrZGF5c1BhcnNlKHplLFJuLGhuLl9zdHJpY3QpO251bGwhPXRyP1Z0LmQ9dHI6SihobikuaW52YWxpZFdlZWtkYXk9emV9KSx1bihbImQiLCJlIiwiRSJdLGZ1bmN0aW9uKHplLFZ0LGhuLFJuKXtWdFtSbl09UXQoemUpfSk7dmFyIF8wPSJTdW5kYXlfTW9uZGF5X1R1ZXNkYXlfV2Vk''@;'; + put 'put ''bmVzZGF5X1RodXJzZGF5X0ZyaWRheV9TYXR1cmRheSIuc3BsaXQoIl8iKSxnYz0iU3VuX01vbl9UdWVfV2VkX1RodV9GcmlfU2F0Ii5zcGxpdCgiXyIpLGdkPSJTdV9Nb19UdV9XZV9UaF9Gcl9TYSIuc3BsaXQoIl8iKSxCMT1VbixhdT1VbixQMT1VbjtmdW5jdGlvbiBkMyh6ZSxWdCxobil7''@;'; + put 'put ''dmFyIFJuLHRyLGVpLFlpPXplLnRvTG9jYWxlTG93ZXJDYXNlKCk7aWYoIXRoaXMuX3dlZWtkYXlzUGFyc2UpZm9yKHRoaXMuX3dlZWtkYXlzUGFyc2U9W10sdGhpcy5fc2hvcnRXZWVrZGF5c1BhcnNlPVtdLHRoaXMuX21pbldlZWtkYXlzUGFyc2U9W10sUm49MDtSbjw3OysrUm4pZWk9ZWUo''@;'; + put 'put ''WzJlMywxXSkuZGF5KFJuKSx0aGlzLl9taW5XZWVrZGF5c1BhcnNlW1JuXT10aGlzLndlZWtkYXlzTWluKGVpLCIiKS50b0xvY2FsZUxvd2VyQ2FzZSgpLHRoaXMuX3Nob3J0V2Vla2RheXNQYXJzZVtSbl09dGhpcy53ZWVrZGF5c1Nob3J0KGVpLCIiKS50b0xvY2FsZUxvd2VyQ2FzZSgpLHRo''@;'; + put 'put ''aXMuX3dlZWtkYXlzUGFyc2VbUm5dPXRoaXMud2Vla2RheXMoZWksIiIpLnRvTG9jYWxlTG93ZXJDYXNlKCk7cmV0dXJuIGhuPyJkZGRkIj09PVZ0Py0xIT09KHRyPVZyLmNhbGwodGhpcy5fd2Vla2RheXNQYXJzZSxZaSkpP3RyOm51bGw6ImRkZCI9PT1WdD8tMSE9PSh0cj1Wci5jYWxsKHRo''@;'; + put 'put ''aXMuX3Nob3J0V2Vla2RheXNQYXJzZSxZaSkpP3RyOm51bGw6LTEhPT0odHI9VnIuY2FsbCh0aGlzLl9taW5XZWVrZGF5c1BhcnNlLFlpKSk/dHI6bnVsbDoiZGRkZCI9PT1WdD8tMSE9PSh0cj1Wci5jYWxsKHRoaXMuX3dlZWtkYXlzUGFyc2UsWWkpKXx8LTEhPT0odHI9VnIuY2FsbCh0aGlz''@;'; + put 'put ''Ll9zaG9ydFdlZWtkYXlzUGFyc2UsWWkpKXx8LTEhPT0odHI9VnIuY2FsbCh0aGlzLl9taW5XZWVrZGF5c1BhcnNlLFlpKSk/dHI6bnVsbDoiZGRkIj09PVZ0Py0xIT09KHRyPVZyLmNhbGwodGhpcy5fc2hvcnRXZWVrZGF5c1BhcnNlLFlpKSl8fC0xIT09KHRyPVZyLmNhbGwodGhpcy5fd2Vl''@;'; + put 'put ''a2RheXNQYXJzZSxZaSkpfHwtMSE9PSh0cj1Wci5jYWxsKHRoaXMuX21pbldlZWtkYXlzUGFyc2UsWWkpKT90cjpudWxsOi0xIT09KHRyPVZyLmNhbGwodGhpcy5fbWluV2Vla2RheXNQYXJzZSxZaSkpfHwtMSE9PSh0cj1Wci5jYWxsKHRoaXMuX3dlZWtkYXlzUGFyc2UsWWkpKXx8LTEhPT0o''@;'; + put 'put ''dHI9VnIuY2FsbCh0aGlzLl9zaG9ydFdlZWtkYXlzUGFyc2UsWWkpKT90cjpudWxsfWZ1bmN0aW9uIGhzKCl7ZnVuY3Rpb24gemUoS3UsRnMpe3JldHVybiBGcy5sZW5ndGgtS3UubGVuZ3RofXZhciBlaSxZaSxkYSx6YSxQcyxWdD1bXSxobj1bXSxSbj1bXSx0cj1bXTtmb3IoZWk9MDtlaTw3''@;'; + put 'put ''O2VpKyspWWk9ZWUoWzJlMywxXSkuZGF5KGVpKSxkYT1Cbih0aGlzLndlZWtkYXlzTWluKFlpLCIiKSksemE9Qm4odGhpcy53ZWVrZGF5c1Nob3J0KFlpLCIiKSksUHM9Qm4odGhpcy53ZWVrZGF5cyhZaSwiIikpLFZ0LnB1c2goZGEpLGhuLnB1c2goemEpLFJuLnB1c2goUHMpLHRyLnB1c2go''@;'; + put 'put ''ZGEpLHRyLnB1c2goemEpLHRyLnB1c2goUHMpO1Z0LnNvcnQoemUpLGhuLnNvcnQoemUpLFJuLnNvcnQoemUpLHRyLnNvcnQoemUpLHRoaXMuX3dlZWtkYXlzUmVnZXg9bmV3IFJlZ0V4cCgiXigiK3RyLmpvaW4oInwiKSsiKSIsImkiKSx0aGlzLl93ZWVrZGF5c1Nob3J0UmVnZXg9dGhpcy5f''@;'; + put 'put ''d2Vla2RheXNSZWdleCx0aGlzLl93ZWVrZGF5c01pblJlZ2V4PXRoaXMuX3dlZWtkYXlzUmVnZXgsdGhpcy5fd2Vla2RheXNTdHJpY3RSZWdleD1uZXcgUmVnRXhwKCJeKCIrUm4uam9pbigifCIpKyIpIiwiaSIpLHRoaXMuX3dlZWtkYXlzU2hvcnRTdHJpY3RSZWdleD1uZXcgUmVnRXhwKCJe''@;'; + put 'put ''KCIraG4uam9pbigifCIpKyIpIiwiaSIpLHRoaXMuX3dlZWtkYXlzTWluU3RyaWN0UmVnZXg9bmV3IFJlZ0V4cCgiXigiK1Z0LmpvaW4oInwiKSsiKSIsImkiKX1mdW5jdGlvbiBuMigpe3JldHVybiB0aGlzLmhvdXJzKCklMTJ8fDEyfWZ1bmN0aW9uIFRpKHplLFZ0KXtEZSh6ZSwwLDAsZnVu''@;'; + put 'put ''Y3Rpb24oKXtyZXR1cm4gdGhpcy5sb2NhbGVEYXRhKCkubWVyaWRpZW0odGhpcy5ob3VycygpLHRoaXMubWludXRlcygpLFZ0KX0pfWZ1bmN0aW9uIEJzKHplLFZ0KXtyZXR1cm4gVnQuX21lcmlkaWVtUGFyc2V9RGUoIkgiLFsiSEgiLDJdLDAsImhvdXIiKSxEZSgiaCIsWyJoaCIsMl0sMCxu''@;'; + put 'put ''MiksRGUoImsiLFsia2siLDJdLDAsZnVuY3Rpb24gVDIoKXtyZXR1cm4gdGhpcy5ob3VycygpfHwyNH0pLERlKCJobW0iLDAsMCxmdW5jdGlvbigpe3JldHVybiIiK24yLmFwcGx5KHRoaXMpK1QodGhpcy5taW51dGVzKCksMil9KSxEZSgiaG1tc3MiLDAsMCxmdW5jdGlvbigpe3JldHVybiIi''@;'; + put 'put ''K24yLmFwcGx5KHRoaXMpK1QodGhpcy5taW51dGVzKCksMikrVCh0aGlzLnNlY29uZHMoKSwyKX0pLERlKCJIbW0iLDAsMCxmdW5jdGlvbigpe3JldHVybiIiK3RoaXMuaG91cnMoKStUKHRoaXMubWludXRlcygpLDIpfSksRGUoIkhtbXNzIiwwLDAsZnVuY3Rpb24oKXtyZXR1cm4iIit0aGlz''@;'; + put 'put ''LmhvdXJzKCkrVCh0aGlzLm1pbnV0ZXMoKSwyKStUKHRoaXMuc2Vjb25kcygpLDIpfSksVGkoImEiLCEwKSxUaSgiQSIsITEpLEx0KCJob3VyIiwiaCIpLEdlKCJob3VyIiwxMyksdG4oImEiLEJzKSx0bigiQSIsQnMpLHRuKCJIIix4ciksdG4oImgiLHhyKSx0bigiayIseHIpLHRuKCJISCIs''@;'; + put 'put ''eHIsZXIpLHRuKCJoaCIseHIsZXIpLHRuKCJrayIseHIsZXIpLHRuKCJobW0iLHF0KSx0bigiaG1tc3MiLHByKSx0bigiSG1tIixxdCksdG4oIkhtbXNzIixwciksbW4oWyJIIiwiSEgiXSwzKSxtbihbImsiLCJrayJdLGZ1bmN0aW9uKHplLFZ0LGhuKXt2YXIgUm49UXQoemUpO1Z0WzNdPTI0''@;'; + put 'put ''PT09Um4/MDpSbn0pLG1uKFsiYSIsIkEiXSxmdW5jdGlvbih6ZSxWdCxobil7aG4uX2lzUG09aG4uX2xvY2FsZS5pc1BNKHplKSxobi5fbWVyaWRpZW09emV9KSxtbihbImgiLCJoaCJdLGZ1bmN0aW9uKHplLFZ0LGhuKXtWdFszXT1RdCh6ZSksSihobikuYmlnSG91cj0hMH0pLG1uKCJobW0i''@;'; + put 'put ''LGZ1bmN0aW9uKHplLFZ0LGhuKXt2YXIgUm49emUubGVuZ3RoLTI7VnRbM109UXQoemUuc3Vic3RyKDAsUm4pKSxWdFs0XT1RdCh6ZS5zdWJzdHIoUm4pKSxKKGhuKS5iaWdIb3VyPSEwfSksbW4oImhtbXNzIixmdW5jdGlvbih6ZSxWdCxobil7dmFyIFJuPXplLmxlbmd0aC00LHRyPXplLmxl''@;'; + put 'put ''bmd0aC0yO1Z0WzNdPVF0KHplLnN1YnN0cigwLFJuKSksVnRbNF09UXQoemUuc3Vic3RyKFJuLDIpKSxWdFs1XT1RdCh6ZS5zdWJzdHIodHIpKSxKKGhuKS5iaWdIb3VyPSEwfSksbW4oIkhtbSIsZnVuY3Rpb24oemUsVnQsaG4pe3ZhciBSbj16ZS5sZW5ndGgtMjtWdFszXT1RdCh6ZS5zdWJz''@;'; + put 'put ''dHIoMCxSbikpLFZ0WzRdPVF0KHplLnN1YnN0cihSbikpfSksbW4oIkhtbXNzIixmdW5jdGlvbih6ZSxWdCxobil7dmFyIFJuPXplLmxlbmd0aC00LHRyPXplLmxlbmd0aC0yO1Z0WzNdPVF0KHplLnN1YnN0cigwLFJuKSksVnRbNF09UXQoemUuc3Vic3RyKFJuLDIpKSxWdFs1XT1RdCh6ZS5z''@;'; + put 'put ''dWJzdHIodHIpKX0pO3ZhciBOYz1nbigiSG91cnMiLCEwKTt2YXIgVXMsQzQ9e2NhbGVuZGFyOntzYW1lRGF5OiJbVG9kYXkgYXRdIExUIixuZXh0RGF5OiJbVG9tb3Jyb3cgYXRdIExUIixuZXh0V2VlazoiZGRkZCBbYXRdIExUIixsYXN0RGF5OiJbWWVzdGVyZGF5IGF0XSBMVCIsbGFzdFdl''@;'; + put 'put ''ZWs6IltMYXN0XSBkZGRkIFthdF0gTFQiLHNhbWVFbHNlOiJMIn0sbG9uZ0RhdGVGb3JtYXQ6e0xUUzoiaDptbTpzcyBBIixMVDoiaDptbSBBIixMOiJNTS9ERC9ZWVlZIixMTDoiTU1NTSBELCBZWVlZIixMTEw6Ik1NTU0gRCwgWVlZWSBoOm1tIEEiLExMTEw6ImRkZGQsIE1NTU0gRCwgWVlZ''@;'; + put 'put ''WSBoOm1tIEEifSxpbnZhbGlkRGF0ZToiSW52YWxpZCBkYXRlIixvcmRpbmFsOiIlZCIsZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfS8scmVsYXRpdmVUaW1lOntmdXR1cmU6ImluICVzIixwYXN0OiIlcyBhZ28iLHM6ImEgZmV3IHNlY29uZHMiLHNzOiIlZCBzZWNvbmRzIixtOiJh''@;'; + put 'put ''IG1pbnV0ZSIsbW06IiVkIG1pbnV0ZXMiLGg6ImFuIGhvdXIiLGhoOiIlZCBob3VycyIsZDoiYSBkYXkiLGRkOiIlZCBkYXlzIix3OiJhIHdlZWsiLHd3OiIlZCB3ZWVrcyIsTToiYSBtb250aCIsTU06IiVkIG1vbnRocyIseToiYSB5ZWFyIix5eToiJWQgeWVhcnMifSxtb250aHM6UnIsbW9u''@;'; + put 'put ''dGhzU2hvcnQ6bGksd2Vlazp7ZG93OjAsZG95OjZ9LHdlZWtkYXlzOl8wLHdlZWtkYXlzTWluOmdkLHdlZWtkYXlzU2hvcnQ6Z2MsbWVyaWRpZW1QYXJzZTovW2FwXVwuP20/XC4/L2l9LHIyPXt9LFdpPXt9O2Z1bmN0aW9uIG1zKHplLFZ0KXt2YXIgaG4sUm49TWF0aC5taW4oemUubGVuZ3Ro''@;'; + put 'put ''LFZ0Lmxlbmd0aCk7Zm9yKGhuPTA7aG48Um47aG4rPTEpaWYoemVbaG5dIT09VnRbaG5dKXJldHVybiBobjtyZXR1cm4gUm59ZnVuY3Rpb24gRjEoemUpe3JldHVybiB6ZSYmemUudG9Mb3dlckNhc2UoKS5yZXBsYWNlKCJfIiwiLSIpfWZ1bmN0aW9uIFJpKHplKXt2YXIgVnQ9bnVsbDtpZih2''@;'; + put 'put ''b2lkIDA9PT1yMlt6ZV0mJlhlJiZYZS5leHBvcnRzJiZmdW5jdGlvbiBfcyh6ZSl7cmV0dXJuIG51bGwhPXplLm1hdGNoKCJeW14vXFxcXF0qJCIpfSh6ZSkpdHJ5e1Z0PVVzLl9hYmJyLEwoNDY3MDApKCIuLyIremUpLEgxKFZ0KX1jYXRjaChSbil7cjJbemVdPW51bGx9cmV0dXJuIHIyW3pl''@;'; + put 'put ''XX1mdW5jdGlvbiBIMSh6ZSxWdCl7dmFyIGhuO3JldHVybiB6ZSYmKChobj1pZShWdCk/dTEoemUpOkoyKHplLFZ0KSk/VXM9aG46InVuZGVmaW5lZCIhPXR5cGVvZiBjb25zb2xlJiZjb25zb2xlLndhcm4mJmNvbnNvbGUud2FybigiTG9jYWxlICIremUrIiBub3QgZm91bmQuIERpZCB5b3Ug''@;'; + put 'put ''Zm9yZ2V0IHRvIGxvYWQgaXQ/IikpLFVzLl9hYmJyfWZ1bmN0aW9uIEoyKHplLFZ0KXtpZihudWxsIT09VnQpe3ZhciBobixSbj1DNDtpZihWdC5hYmJyPXplLG51bGwhPXIyW3plXSloZSgiZGVmaW5lTG9jYWxlT3ZlcnJpZGUiLCJ1c2UgbW9tZW50LnVwZGF0ZUxvY2FsZShsb2NhbGVOYW1l''@;'; + put 'put ''LCBjb25maWcpIHRvIGNoYW5nZSBhbiBleGlzdGluZyBsb2NhbGUuIG1vbWVudC5kZWZpbmVMb2NhbGUobG9jYWxlTmFtZSwgY29uZmlnKSBzaG91bGQgb25seSBiZSB1c2VkIGZvciBjcmVhdGluZyBhIG5ldyBsb2NhbGUgU2VlIGh0dHA6Ly9tb21lbnRqcy5jb20vZ3VpZGVzLyMvd2Fybmlu''@;'; + put 'put ''Z3MvZGVmaW5lLWxvY2FsZS8gZm9yIG1vcmUgaW5mby4iKSxSbj1yMlt6ZV0uX2NvbmZpZztlbHNlIGlmKG51bGwhPVZ0LnBhcmVudExvY2FsZSlpZihudWxsIT1yMltWdC5wYXJlbnRMb2NhbGVdKVJuPXIyW1Z0LnBhcmVudExvY2FsZV0uX2NvbmZpZztlbHNle2lmKG51bGw9PShobj1SaShW''@;'; + put 'put ''dC5wYXJlbnRMb2NhbGUpKSlyZXR1cm4gV2lbVnQucGFyZW50TG9jYWxlXXx8KFdpW1Z0LnBhcmVudExvY2FsZV09W10pLFdpW1Z0LnBhcmVudExvY2FsZV0ucHVzaCh7bmFtZTp6ZSxjb25maWc6VnR9KSxudWxsO1JuPWhuLl9jb25maWd9cmV0dXJuIHIyW3plXT1uZXcgdGUobmUoUm4sVnQp''@;'; + put 'put ''KSxXaVt6ZV0mJldpW3plXS5mb3JFYWNoKGZ1bmN0aW9uKHRyKXtKMih0ci5uYW1lLHRyLmNvbmZpZyl9KSxIMSh6ZSkscjJbemVdfXJldHVybiBkZWxldGUgcjJbemVdLG51bGx9ZnVuY3Rpb24gdTEoemUpe3ZhciBWdDtpZih6ZSYmemUuX2xvY2FsZSYmemUuX2xvY2FsZS5fYWJiciYmKHpl''@;'; + put 'put ''PXplLl9sb2NhbGUuX2FiYnIpLCF6ZSlyZXR1cm4gVXM7aWYoIU1lKHplKSl7aWYoVnQ9UmkoemUpKXJldHVybiBWdDt6ZT1bemVdfXJldHVybiBmdW5jdGlvbiBLbCh6ZSl7Zm9yKHZhciBobixSbix0cixlaSxWdD0wO1Z0PHplLmxlbmd0aDspe2Zvcihobj0oZWk9RjEoemVbVnRdKS5zcGxp''@;'; + put 'put ''dCgiLSIpKS5sZW5ndGgsUm49KFJuPUYxKHplW1Z0KzFdKSk/Um4uc3BsaXQoIi0iKTpudWxsO2huPjA7KXtpZih0cj1SaShlaS5zbGljZSgwLGhuKS5qb2luKCItIikpKXJldHVybiB0cjtpZihSbiYmUm4ubGVuZ3RoPj1obiYmbXMoZWksUm4pPj1obi0xKWJyZWFrO2huLS19VnQrK31yZXR1''@;'; + put 'put ''cm4gVXN9KHplKX1mdW5jdGlvbiBwMyh6ZSl7dmFyIFZ0LGhuPXplLl9hO3JldHVybiBobiYmLTI9PT1KKHplKS5vdmVyZmxvdyYmKFZ0PWhuWzFdPDB8fGhuWzFdPjExPzE6aG5bMl08MXx8aG5bMl0+aWkoaG5bMF0saG5bMV0pPzI6aG5bM108MHx8aG5bM10+MjR8fDI0PT09aG5bM10mJigw''@;'; + put 'put ''IT09aG5bNF18fDAhPT1obls1XXx8MCE9PWhuWzZdKT8zOmhuWzRdPDB8fGhuWzRdPjU5PzQ6aG5bNV08MHx8aG5bNV0+NTk/NTpobls2XTwwfHxobls2XT45OTk/NjotMSxKKHplKS5fb3ZlcmZsb3dEYXlPZlllYXImJihWdDwwfHxWdD4yKSYmKFZ0PTIpLEooemUpLl9vdmVyZmxvd1dlZWtz''@;'; + put 'put ''JiYtMT09PVZ0JiYoVnQ9NyksSih6ZSkuX292ZXJmbG93V2Vla2RheSYmLTE9PT1WdCYmKFZ0PTgpLEooemUpLm92ZXJmbG93PVZ0KSx6ZX12YXIgWXU9L15ccyooKD86WystXVxkezZ9fFxkezR9KS0oPzpcZFxkLVxkXGR8V1xkXGQtXGR8V1xkXGR8XGRcZFxkfFxkXGQpKSg/OihUfCApKFxk''@;'; + put 'put ''XGQoPzo6XGRcZCg/OjpcZFxkKD86Wy4sXVxkKyk/KT8pPykoWystXVxkXGQoPzo6P1xkXGQpP3xccypaKT8pPyQvLHNvPS9eXHMqKCg/OlsrLV1cZHs2fXxcZHs0fSkoPzpcZFxkXGRcZHxXXGRcZFxkfFdcZFxkfFxkXGRcZHxcZFxkfCkpKD86KFR8ICkoXGRcZCg/OlxkXGQoPzpcZFxkKD86''@;'; + put 'put ''Wy4sXVxkKyk/KT8pPykoWystXVxkXGQoPzo6P1xkXGQpP3xccypaKT8pPyQvLFlhPS9afFsrLV1cZFxkKD86Oj9cZFxkKT8vLGFzPVtbIllZWVlZWS1NTS1ERCIsL1srLV1cZHs2fS1cZFxkLVxkXGQvXSxbIllZWVktTU0tREQiLC9cZHs0fS1cZFxkLVxkXGQvXSxbIkdHR0ctW1ddV1ctRSIs''@;'; + put 'put ''L1xkezR9LVdcZFxkLVxkL10sWyJHR0dHLVtXXVdXIiwvXGR7NH0tV1xkXGQvLCExXSxbIllZWVktREREIiwvXGR7NH0tXGR7M30vXSxbIllZWVktTU0iLC9cZHs0fS1cZFxkLywhMV0sWyJZWVlZWVlNTUREIiwvWystXVxkezEwfS9dLFsiWVlZWU1NREQiLC9cZHs4fS9dLFsiR0dHR1tXXVdX''@;'; + put 'put ''RSIsL1xkezR9V1xkezN9L10sWyJHR0dHW1ddV1ciLC9cZHs0fVdcZHsyfS8sITFdLFsiWVlZWURERCIsL1xkezd9L10sWyJZWVlZTU0iLC9cZHs2fS8sITFdLFsiWVlZWSIsL1xkezR9LywhMV1dLFhhPVtbIkhIOm1tOnNzLlNTU1MiLC9cZFxkOlxkXGQ6XGRcZFwuXGQrL10sWyJISDptbTpz''@;'; + put 'put ''cyxTU1NTIiwvXGRcZDpcZFxkOlxkXGQsXGQrL10sWyJISDptbTpzcyIsL1xkXGQ6XGRcZDpcZFxkL10sWyJISDptbSIsL1xkXGQ6XGRcZC9dLFsiSEhtbXNzLlNTU1MiLC9cZFxkXGRcZFxkXGRcLlxkKy9dLFsiSEhtbXNzLFNTU1MiLC9cZFxkXGRcZFxkXGQsXGQrL10sWyJISG1tc3MiLC9c''@;'; + put 'put ''ZFxkXGRcZFxkXGQvXSxbIkhIbW0iLC9cZFxkXGRcZC9dLFsiSEgiLC9cZFxkL11dLFV1PS9eXC8/RGF0ZVwoKC0/XGQrKS9pLEExPS9eKD86KE1vbnxUdWV8V2VkfFRodXxGcml8U2F0fFN1biksP1xzKT8oXGR7MSwyfSlccyhKYW58RmVifE1hcnxBcHJ8TWF5fEp1bnxKdWx8QXVnfFNlcHxP''@;'; + put 'put ''Y3R8Tm92fERlYylccyhcZHsyLDR9KVxzKFxkXGQpOihcZFxkKSg/OjooXGRcZCkpP1xzKD86KFVUfEdNVHxbRUNNUF1bU0RdVCl8KFtael0pfChbKy1dXGR7NH0pKSQvLG1oPXtVVDowLEdNVDowLEVEVDotMjQwLEVTVDotMzAwLENEVDotMzAwLENTVDotMzYwLE1EVDotMzYwLE1TVDotNDIw''@;'; + put 'put ''LFBEVDotNDIwLFBTVDotNDgwfTtmdW5jdGlvbiBfYSh6ZSl7dmFyIFZ0LGhuLGVpLFlpLGRhLHphLFJuPXplLl9pLHRyPVl1LmV4ZWMoUm4pfHxzby5leGVjKFJuKSxQcz1hcy5sZW5ndGgsS3U9WGEubGVuZ3RoO2lmKHRyKXtmb3IoSih6ZSkuaXNvPSEwLFZ0PTAsaG49UHM7VnQ8aG47VnQr''@;'; + put 'put ''KylpZihhc1tWdF1bMV0uZXhlYyh0clsxXSkpe1lpPWFzW1Z0XVswXSxlaT0hMSE9PWFzW1Z0XVsyXTticmVha31pZihudWxsPT1ZaSlyZXR1cm4gdm9pZCh6ZS5faXNWYWxpZD0hMSk7aWYodHJbM10pe2ZvcihWdD0wLGhuPUt1O1Z0PGhuO1Z0KyspaWYoWGFbVnRdWzFdLmV4ZWModHJbM10p''@;'; + put 'put ''KXtkYT0odHJbMl18fCIgIikrWGFbVnRdWzBdO2JyZWFrfWlmKG51bGw9PWRhKXJldHVybiB2b2lkKHplLl9pc1ZhbGlkPSExKX1pZighZWkmJm51bGwhPWRhKXJldHVybiB2b2lkKHplLl9pc1ZhbGlkPSExKTtpZih0cls0XSl7aWYoIVlhLmV4ZWModHJbNF0pKXJldHVybiB2b2lkKHplLl9p''@;'; + put 'put ''c1ZhbGlkPSExKTt6YT0iWiJ9emUuX2Y9WWkrKGRhfHwiIikrKHphfHwiIiksbGYoemUpfWVsc2UgemUuX2lzVmFsaWQ9ITF9ZnVuY3Rpb24gazQoemUpe3ZhciBWdD1wYXJzZUludCh6ZSwxMCk7cmV0dXJuIFZ0PD00OT8yZTMrVnQ6VnQ8PTk5OT8xOTAwK1Z0OlZ0fWZ1bmN0aW9uIHZzKHpl''@;'; + put 'put ''KXt2YXIgaG4sVnQ9QTEuZXhlYyhmdW5jdGlvbiBzbCh6ZSl7cmV0dXJuIHplLnJlcGxhY2UoL1woW14oKV0qXCl8W1xuXHRdL2csIiAiKS5yZXBsYWNlKC8oXHNccyspL2csIiAiKS5yZXBsYWNlKC9eXHNccyovLCIiKS5yZXBsYWNlKC9cc1xzKiQvLCIiKX0oemUuX2kpKTtpZihWdCl7aWYo''@;'; + put 'put ''aG49ZnVuY3Rpb24ganAoemUsVnQsaG4sUm4sdHIsZWkpe3ZhciBZaT1bazQoemUpLGxpLmluZGV4T2YoVnQpLHBhcnNlSW50KGhuLDEwKSxwYXJzZUludChSbiwxMCkscGFyc2VJbnQodHIsMTApXTtyZXR1cm4gZWkmJllpLnB1c2gocGFyc2VJbnQoZWksMTApKSxZaX0oVnRbNF0sVnRbM10s''@;'; + put 'put ''VnRbMl0sVnRbNV0sVnRbNl0sVnRbN10pLCFmdW5jdGlvbiB1bCh6ZSxWdCxobil7cmV0dXJuIXplfHxnYy5pbmRleE9mKHplKT09PW5ldyBEYXRlKFZ0WzBdLFZ0WzFdLFZ0WzJdKS5nZXREYXkoKXx8KEooaG4pLndlZWtkYXlNaXNtYXRjaD0hMCxobi5faXNWYWxpZD0hMSwhMSl9KFZ0WzFd''@;'; + put 'put ''LGhuLHplKSlyZXR1cm47emUuX2E9aG4semUuX3R6bT1mdW5jdGlvbiBZMCh6ZSxWdCxobil7aWYoemUpcmV0dXJuIG1oW3plXTtpZihWdClyZXR1cm4gMDt2YXIgUm49cGFyc2VJbnQoaG4sMTApLHRyPVJuJTEwMDtyZXR1cm4oUm4tdHIpLzEwMCo2MCt0cn0oVnRbOF0sVnRbOV0sVnRbMTBd''@;'; + put 'put ''KSx6ZS5fZD12aS5hcHBseShudWxsLHplLl9hKSx6ZS5fZC5zZXRVVENNaW51dGVzKHplLl9kLmdldFVUQ01pbnV0ZXMoKS16ZS5fdHptKSxKKHplKS5yZmMyODIyPSEwfWVsc2UgemUuX2lzVmFsaWQ9ITF9ZnVuY3Rpb24gRm8oemUsVnQsaG4pe3JldHVybiBudWxsIT16ZT96ZTpudWxsIT1W''@;'; + put 'put ''dD9WdDpobn1mdW5jdGlvbiB5MSh6ZSl7dmFyIFZ0LGhuLHRyLGVpLFlpLFJuPVtdO2lmKCF6ZS5fZCl7Zm9yKHRyPWZ1bmN0aW9uIG1kKHplKXt2YXIgVnQ9bmV3IERhdGUoQi5ub3coKSk7cmV0dXJuIHplLl91c2VVVEM/W1Z0LmdldFVUQ0Z1bGxZZWFyKCksVnQuZ2V0VVRDTW9udGgoKSxW''@;'; + put 'put ''dC5nZXRVVENEYXRlKCldOltWdC5nZXRGdWxsWWVhcigpLFZ0LmdldE1vbnRoKCksVnQuZ2V0RGF0ZSgpXX0oemUpLHplLl93JiZudWxsPT16ZS5fYVsyXSYmbnVsbD09emUuX2FbMV0mJmZ1bmN0aW9uIHcxKHplKXt2YXIgVnQsaG4sUm4sdHIsZWksWWksZGEsemEsUHM7bnVsbCE9KFZ0PXpl''@;'; + put 'put ''Ll93KS5HR3x8bnVsbCE9VnQuV3x8bnVsbCE9VnQuRT8oZWk9MSxZaT00LGhuPUZvKFZ0LkdHLHplLl9hWzBdLHJsKENzKCksMSw0KS55ZWFyKSxSbj1GbyhWdC5XLDEpLCgodHI9Rm8oVnQuRSwxKSk8MXx8dHI+NykmJih6YT0hMCkpOihlaT16ZS5fbG9jYWxlLl93ZWVrLmRvdyxZaT16ZS5f''@;'; + put 'put ''bG9jYWxlLl93ZWVrLmRveSxQcz1ybChDcygpLGVpLFlpKSxobj1GbyhWdC5nZyx6ZS5fYVswXSxQcy55ZWFyKSxSbj1GbyhWdC53LFBzLndlZWspLG51bGwhPVZ0LmQ/KCh0cj1WdC5kKTwwfHx0cj42KSYmKHphPSEwKTpudWxsIT1WdC5lPyh0cj1WdC5lK2VpLChWdC5lPDB8fFZ0LmU+Nikm''@;'; + put 'put ''Jih6YT0hMCkpOnRyPWVpKSxSbjwxfHxSbj5faShobixlaSxZaSk/Sih6ZSkuX292ZXJmbG93V2Vla3M9ITA6bnVsbCE9emE/Sih6ZSkuX292ZXJmbG93V2Vla2RheT0hMDooZGE9c2EoaG4sUm4sdHIsZWksWWkpLHplLl9hWzBdPWRhLnllYXIsemUuX2RheU9mWWVhcj1kYS5kYXlPZlllYXIp''@;'; + put 'put ''fSh6ZSksbnVsbCE9emUuX2RheU9mWWVhciYmKFlpPUZvKHplLl9hWzBdLHRyWzBdKSwoemUuX2RheU9mWWVhcj5NYShZaSl8fDA9PT16ZS5fZGF5T2ZZZWFyKSYmKEooemUpLl9vdmVyZmxvd0RheU9mWWVhcj0hMCksaG49dmkoWWksMCx6ZS5fZGF5T2ZZZWFyKSx6ZS5fYVsxXT1obi5nZXRV''@;'; + put 'put ''VENNb250aCgpLHplLl9hWzJdPWhuLmdldFVUQ0RhdGUoKSksVnQ9MDtWdDwzJiZudWxsPT16ZS5fYVtWdF07KytWdCl6ZS5fYVtWdF09Um5bVnRdPXRyW1Z0XTtmb3IoO1Z0PDc7VnQrKyl6ZS5fYVtWdF09Um5bVnRdPW51bGw9PXplLl9hW1Z0XT8yPT09VnQ/MTowOnplLl9hW1Z0XTsyND09''@;'; + put 'put ''PXplLl9hWzNdJiYwPT09emUuX2FbNF0mJjA9PT16ZS5fYVs1XSYmMD09PXplLl9hWzZdJiYoemUuX25leHREYXk9ITAsemUuX2FbM109MCksemUuX2Q9KHplLl91c2VVVEM/dmk6QWkpLmFwcGx5KG51bGwsUm4pLGVpPXplLl91c2VVVEM/emUuX2QuZ2V0VVRDRGF5KCk6emUuX2QuZ2V0RGF5''@;'; + put 'put ''KCksbnVsbCE9emUuX3R6bSYmemUuX2Quc2V0VVRDTWludXRlcyh6ZS5fZC5nZXRVVENNaW51dGVzKCktemUuX3R6bSksemUuX25leHREYXkmJih6ZS5fYVszXT0yNCksemUuX3cmJnZvaWQgMCE9PXplLl93LmQmJnplLl93LmQhPT1laSYmKEooemUpLndlZWtkYXlNaXNtYXRjaD0hMCl9fWZ1''@;'; + put 'put ''bmN0aW9uIGxmKHplKXtpZih6ZS5fZiE9PUIuSVNPXzg2MDEpaWYoemUuX2YhPT1CLlJGQ18yODIyKXt6ZS5fYT1bXSxKKHplKS5lbXB0eT0hMDt2YXIgaG4sUm4sdHIsZWksWWksUHMsS3UsVnQ9IiIremUuX2ksZGE9VnQubGVuZ3RoLHphPTA7Zm9yKEt1PSh0cj1ndCh6ZS5fZix6ZS5fbG9j''@;'; + put 'put ''YWxlKS5tYXRjaChTKXx8W10pLmxlbmd0aCxobj0wO2huPEt1O2huKyspKFJuPShWdC5tYXRjaCh6bihlaT10cltobl0semUpKXx8W10pWzBdKSYmKChZaT1WdC5zdWJzdHIoMCxWdC5pbmRleE9mKFJuKSkpLmxlbmd0aD4wJiZKKHplKS51bnVzZWRJbnB1dC5wdXNoKFlpKSxWdD1WdC5zbGlj''@;'; + put 'put ''ZShWdC5pbmRleE9mKFJuKStSbi5sZW5ndGgpLHphKz1Sbi5sZW5ndGgpLENlW2VpXT8oUm4/Sih6ZSkuZW1wdHk9ITE6Sih6ZSkudW51c2VkVG9rZW5zLnB1c2goZWkpLGNuKGVpLFJuLHplKSk6emUuX3N0cmljdCYmIVJuJiZKKHplKS51bnVzZWRUb2tlbnMucHVzaChlaSk7Sih6ZSkuY2hh''@;'; + put 'put ''cnNMZWZ0T3Zlcj1kYS16YSxWdC5sZW5ndGg+MCYmSih6ZSkudW51c2VkSW5wdXQucHVzaChWdCksemUuX2FbM108PTEyJiYhMD09PUooemUpLmJpZ0hvdXImJnplLl9hWzNdPjAmJihKKHplKS5iaWdIb3VyPXZvaWQgMCksSih6ZSkucGFyc2VkRGF0ZVBhcnRzPXplLl9hLnNsaWNlKDApLEoo''@;'; + put 'put ''emUpLm1lcmlkaWVtPXplLl9tZXJpZGllbSx6ZS5fYVszXT1mdW5jdGlvbiB2ZCh6ZSxWdCxobil7dmFyIFJuO3JldHVybiBudWxsPT1obj9WdDpudWxsIT16ZS5tZXJpZGllbUhvdXI/emUubWVyaWRpZW1Ib3VyKFZ0LGhuKToobnVsbCE9emUuaXNQTSYmKChSbj16ZS5pc1BNKGhuKSkmJlZ0''@;'; + put 'put ''PDEyJiYoVnQrPTEyKSwhUm4mJjEyPT09VnQmJihWdD0wKSksVnQpfSh6ZS5fbG9jYWxlLHplLl9hWzNdLHplLl9tZXJpZGllbSksbnVsbCE9PShQcz1KKHplKS5lcmEpJiYoemUuX2FbMF09emUuX2xvY2FsZS5lcmFzQ29udmVydFllYXIoUHMsemUuX2FbMF0pKSx5MSh6ZSkscDMoemUpfWVs''@;'; + put 'put ''c2UgdnMoemUpO2Vsc2UgX2EoemUpfWZ1bmN0aW9uIFR1KHplKXt2YXIgVnQ9emUuX2ksaG49emUuX2Y7cmV0dXJuIHplLl9sb2NhbGU9emUuX2xvY2FsZXx8dTEoemUuX2wpLG51bGw9PT1WdHx8dm9pZCAwPT09aG4mJiIiPT09VnQ/Y2Uoe251bGxJbnB1dDohMH0pOigic3RyaW5nIj09dHlw''@;'; + put 'put ''ZW9mIFZ0JiYoemUuX2k9VnQ9emUuX2xvY2FsZS5wcmVwYXJzZShWdCkpLFNlKFZ0KT9uZXcga2UocDMoVnQpKTooWShWdCk/emUuX2Q9VnQ6TWUoaG4pP2Z1bmN0aW9uICRsKHplKXt2YXIgVnQsaG4sUm4sdHIsZWksWWksZGE9ITEsemE9emUuX2YubGVuZ3RoO2lmKDA9PT16YSlyZXR1cm4g''@;'; + put 'put ''Sih6ZSkuaW52YWxpZEZvcm1hdD0hMCx2b2lkKHplLl9kPW5ldyBEYXRlKE5hTikpO2Zvcih0cj0wO3RyPHphO3RyKyspZWk9MCxZaT0hMSxWdD1BZSh7fSx6ZSksbnVsbCE9emUuX3VzZVVUQyYmKFZ0Ll91c2VVVEM9emUuX3VzZVVUQyksVnQuX2Y9emUuX2ZbdHJdLGxmKFZ0KSxvZShWdCkm''@;'; + put 'put ''JihZaT0hMCksZWkrPUooVnQpLmNoYXJzTGVmdE92ZXIsZWkrPTEwKkooVnQpLnVudXNlZFRva2Vucy5sZW5ndGgsSihWdCkuc2NvcmU9ZWksZGE/ZWk8Um4mJihSbj1laSxobj1WdCk6KG51bGw9PVJufHxlaTxSbnx8WWkpJiYoUm49ZWksaG49VnQsWWkmJihkYT0hMCkpO04oemUsaG58fFZ0''@;'; + put 'put ''KX0oemUpOmhuP2xmKHplKTpmdW5jdGlvbiBzZih6ZSl7dmFyIFZ0PXplLl9pO2llKFZ0KT96ZS5fZD1uZXcgRGF0ZShCLm5vdygpKTpZKFZ0KT96ZS5fZD1uZXcgRGF0ZShWdC52YWx1ZU9mKCkpOiJzdHJpbmciPT10eXBlb2YgVnQ/ZnVuY3Rpb24gZmEoemUpe3ZhciBWdD1VdS5leGVjKHpl''@;'; + put 'put ''Ll9pKTtudWxsPT09VnQ/KF9hKHplKSwhMT09PXplLl9pc1ZhbGlkJiYoZGVsZXRlIHplLl9pc1ZhbGlkLHZzKHplKSwhMT09PXplLl9pc1ZhbGlkJiYoZGVsZXRlIHplLl9pc1ZhbGlkLHplLl9zdHJpY3Q/emUuX2lzVmFsaWQ9ITE6Qi5jcmVhdGVGcm9tSW5wdXRGYWxsYmFjayh6ZSkpKSk6''@;'; + put 'put ''emUuX2Q9bmV3IERhdGUoK1Z0WzFdKX0oemUpOk1lKFZ0KT8oemUuX2E9VyhWdC5zbGljZSgwKSxmdW5jdGlvbihobil7cmV0dXJuIHBhcnNlSW50KGhuLDEwKX0pLHkxKHplKSk6VShWdCk/ZnVuY3Rpb24geHUoemUpe2lmKCF6ZS5fZCl7dmFyIFZ0PWZ0KHplLl9pKTt6ZS5fYT1XKFtWdC55''@;'; + put 'put ''ZWFyLFZ0Lm1vbnRoLHZvaWQgMD09PVZ0LmRheT9WdC5kYXRlOlZ0LmRheSxWdC5ob3VyLFZ0Lm1pbnV0ZSxWdC5zZWNvbmQsVnQubWlsbGlzZWNvbmRdLGZ1bmN0aW9uKFJuKXtyZXR1cm4gUm4mJnBhcnNlSW50KFJuLDEwKX0pLHkxKHplKX19KHplKTphZShWdCk/emUuX2Q9bmV3IERhdGUo''@;'; + put 'put ''VnQpOkIuY3JlYXRlRnJvbUlucHV0RmFsbGJhY2soemUpfSh6ZSksb2UoemUpfHwoemUuX2Q9bnVsbCksemUpKX1mdW5jdGlvbiBLbyh6ZSxWdCxobixSbix0cil7dmFyIGVpPXt9O3JldHVybighMD09PVZ0fHwhMT09PVZ0KSYmKFJuPVZ0LFZ0PXZvaWQgMCksKCEwPT09aG58fCExPT09aG4p''@;'; + put 'put ''JiYoUm49aG4saG49dm9pZCAwKSwoVSh6ZSkmJlooemUpfHxNZSh6ZSkmJjA9PT16ZS5sZW5ndGgpJiYoemU9dm9pZCAwKSxlaS5faXNBTW9tZW50T2JqZWN0PSEwLGVpLl91c2VVVEM9ZWkuX2lzVVRDPXRyLGVpLl9sPWhuLGVpLl9pPXplLGVpLl9mPVZ0LGVpLl9zdHJpY3Q9Um4sZnVuY3Rp''@;'; + put 'put ''b24gbHUoemUpe3ZhciBWdD1uZXcga2UocDMoVHUoemUpKSk7cmV0dXJuIFZ0Ll9uZXh0RGF5JiYoVnQuYWRkKDEsImQiKSxWdC5fbmV4dERheT12b2lkIDApLFZ0fShlaSl9ZnVuY3Rpb24gQ3MoemUsVnQsaG4sUm4pe3JldHVybiBLbyh6ZSxWdCxobixSbiwhMSl9Qi5jcmVhdGVGcm9tSW5w''@;'; + put 'put ''dXRGYWxsYmFjaz1UZSgidmFsdWUgcHJvdmlkZWQgaXMgbm90IGluIGEgcmVjb2duaXplZCBSRkMyODIyIG9yIElTTyBmb3JtYXQuIG1vbWVudCBjb25zdHJ1Y3Rpb24gZmFsbHMgYmFjayB0byBqcyBEYXRlKCksIHdoaWNoIGlzIG5vdCByZWxpYWJsZSBhY3Jvc3MgYWxsIGJyb3dzZXJzIGFu''@;'; + put 'put ''ZCB2ZXJzaW9ucy4gTm9uIFJGQzI4MjIvSVNPIGRhdGUgZm9ybWF0cyBhcmUgZGlzY291cmFnZWQuIFBsZWFzZSByZWZlciB0byBodHRwOi8vbW9tZW50anMuY29tL2d1aWRlcy8jL3dhcm5pbmdzL2pzLWRhdGUvIGZvciBtb3JlIGluZm8uIixmdW5jdGlvbih6ZSl7emUuX2Q9bmV3IERhdGUo''@;'; + put 'put ''emUuX2krKHplLl91c2VVVEM/IiBVVEMiOiIiKSl9KSxCLklTT184NjAxPWZ1bmN0aW9uKCl7fSxCLlJGQ18yODIyPWZ1bmN0aW9uKCl7fTt2YXIgemc9VGUoIm1vbWVudCgpLm1pbiBpcyBkZXByZWNhdGVkLCB1c2UgbW9tZW50Lm1heCBpbnN0ZWFkLiBodHRwOi8vbW9tZW50anMuY29tL2d1''@;'; + put 'put ''aWRlcy8jL3dhcm5pbmdzL21pbi1tYXgvIixmdW5jdGlvbigpe3ZhciB6ZT1Dcy5hcHBseShudWxsLGFyZ3VtZW50cyk7cmV0dXJuIHRoaXMuaXNWYWxpZCgpJiZ6ZS5pc1ZhbGlkKCk/emU8dGhpcz90aGlzOnplOmNlKCl9KSxWZj1UZSgibW9tZW50KCkubWF4IGlzIGRlcHJlY2F0ZWQsIHVz''@;'; + put 'put ''ZSBtb21lbnQubWluIGluc3RlYWQuIGh0dHA6Ly9tb21lbnRqcy5jb20vZ3VpZGVzLyMvd2FybmluZ3MvbWluLW1heC8iLGZ1bmN0aW9uKCl7dmFyIHplPUNzLmFwcGx5KG51bGwsYXJndW1lbnRzKTtyZXR1cm4gdGhpcy5pc1ZhbGlkKCkmJnplLmlzVmFsaWQoKT96ZT50aGlzP3RoaXM6emU6''@;'; + put 'put ''Y2UoKX0pO2Z1bmN0aW9uIHF3KHplLFZ0KXt2YXIgaG4sUm47aWYoMT09PVZ0Lmxlbmd0aCYmTWUoVnRbMF0pJiYoVnQ9VnRbMF0pLCFWdC5sZW5ndGgpcmV0dXJuIENzKCk7Zm9yKGhuPVZ0WzBdLFJuPTE7Um48VnQubGVuZ3RoOysrUm4pKCFWdFtSbl0uaXNWYWxpZCgpfHxWdFtSbl1bemVd''@;'; + put 'put ''KGhuKSkmJihobj1WdFtSbl0pO3JldHVybiBobn12YXIgQWg9WyJ5ZWFyIiwicXVhcnRlciIsIm1vbnRoIiwid2VlayIsImRheSIsImhvdXIiLCJtaW51dGUiLCJzZWNvbmQiLCJtaWxsaXNlY29uZCJdO2Z1bmN0aW9uIFpwKHplKXt2YXIgVnQ9ZnQoemUpLGhuPVZ0LnllYXJ8fDAsUm49VnQu''@;'; + put 'put ''cXVhcnRlcnx8MCx0cj1WdC5tb250aHx8MCxlaT1WdC53ZWVrfHxWdC5pc29XZWVrfHwwLFlpPVZ0LmRheXx8MCxkYT1WdC5ob3VyfHwwLHphPVZ0Lm1pbnV0ZXx8MCxQcz1WdC5zZWNvbmR8fDAsS3U9VnQubWlsbGlzZWNvbmR8fDA7dGhpcy5faXNWYWxpZD1mdW5jdGlvbiBlYih6ZSl7dmFy''@;'; + put 'put ''IFZ0LFJuLGhuPSExLHRyPUFoLmxlbmd0aDtmb3IoVnQgaW4gemUpaWYoUSh6ZSxWdCkmJigtMT09PVZyLmNhbGwoQWgsVnQpfHxudWxsIT16ZVtWdF0mJmlzTmFOKHplW1Z0XSkpKXJldHVybiExO2ZvcihSbj0wO1JuPHRyOysrUm4paWYoemVbQWhbUm5dXSl7aWYoaG4pcmV0dXJuITE7cGFy''@;'; + put 'put ''c2VGbG9hdCh6ZVtBaFtSbl1dKSE9PVF0KHplW0FoW1JuXV0pJiYoaG49ITApfXJldHVybiEwfShWdCksdGhpcy5fbWlsbGlzZWNvbmRzPStLdSsxZTMqUHMrNmU0KnphKzFlMypkYSo2MCo2MCx0aGlzLl9kYXlzPStZaSs3KmVpLHRoaXMuX21vbnRocz0rdHIrMypSbisxMipobix0aGlzLl9k''@;'; + put 'put ''YXRhPXt9LHRoaXMuX2xvY2FsZT11MSgpLHRoaXMuX2J1YmJsZSgpfWZ1bmN0aW9uIGE5KHplKXtyZXR1cm4gemUgaW5zdGFuY2VvZiBacH1mdW5jdGlvbiBHZyh6ZSl7cmV0dXJuIHplPDA/LTEqTWF0aC5yb3VuZCgtMSp6ZSk6TWF0aC5yb3VuZCh6ZSl9ZnVuY3Rpb24gV2coemUsVnQpe0Rl''@;'; + put 'put ''KHplLDAsMCxmdW5jdGlvbigpe3ZhciBobj10aGlzLnV0Y09mZnNldCgpLFJuPSIrIjtyZXR1cm4gaG48MCYmKGhuPS1obixSbj0iLSIpLFJuK1Qofn4oaG4vNjApLDIpK1Z0K1Qofn5obiU2MCwyKX0pfVdnKCJaIiwiOiIpLFdnKCJaWiIsIiIpLHRuKCJaIixOdCksdG4oIlpaIixOdCksbW4o''@;'; + put 'put ''WyJaIiwiWloiXSxmdW5jdGlvbih6ZSxWdCxobil7aG4uX3VzZVVUQz0hMCxobi5fdHptPWw5KE50LHplKX0pO3ZhciB4TT0vKFtcK1wtXXxcZFxkKS9naTtmdW5jdGlvbiBsOSh6ZSxWdCl7dmFyIHRyLGVpLGhuPShWdHx8IiIpLm1hdGNoKHplKTtyZXR1cm4gbnVsbD09PWhuP251bGw6MD09''@;'; + put 'put ''PShlaT02MCoodHI9KChobltobi5sZW5ndGgtMV18fFtdKSsiIikubWF0Y2goeE0pfHxbIi0iLDAsMF0pWzFdK1F0KHRyWzJdKSk/MDoiKyI9PT10clswXT9laTotZWl9ZnVuY3Rpb24gWWcoemUsVnQpe3ZhciBobixSbjtyZXR1cm4gVnQuX2lzVVRDPyhobj1WdC5jbG9uZSgpLFJuPShTZSh6''@;'; + put 'put ''ZSl8fFkoemUpP3plLnZhbHVlT2YoKTpDcyh6ZSkudmFsdWVPZigpKS1obi52YWx1ZU9mKCksaG4uX2Quc2V0VGltZShobi5fZC52YWx1ZU9mKCkrUm4pLEIudXBkYXRlT2Zmc2V0KGhuLCExKSxobik6Q3MoemUpLmxvY2FsKCl9ZnVuY3Rpb24gd2goemUpe3JldHVybi1NYXRoLnJvdW5kKHpl''@;'; + put 'put ''Ll9kLmdldFRpbWV6b25lT2Zmc2V0KCkpfWZ1bmN0aW9uIG5iKCl7cmV0dXJuISF0aGlzLmlzVmFsaWQoKSYmdGhpcy5faXNVVEMmJjA9PT10aGlzLl9vZmZzZXR9Qi51cGRhdGVPZmZzZXQ9ZnVuY3Rpb24oKXt9O3ZhciBRZz0vXigtfFwrKT8oPzooXGQqKVsuIF0pPyhcZCspOihcZCspKD86''@;'; + put 'put ''OihcZCspKFwuXGQqKT8pPyQvLFdwPS9eKC18XCspP1AoPzooWy0rXT9bMC05LC5dKilZKT8oPzooWy0rXT9bMC05LC5dKilNKT8oPzooWy0rXT9bMC05LC5dKilXKT8oPzooWy0rXT9bMC05LC5dKilEKT8oPzpUKD86KFstK10/WzAtOSwuXSopSCk/KD86KFstK10/WzAtOSwuXSopTSk/KD86''@;'; + put 'put ''KFstK10/WzAtOSwuXSopUyk/KT8kLztmdW5jdGlvbiBRcyh6ZSxWdCl7dmFyIHRyLGVpLFlpLGhuPXplLFJuPW51bGw7cmV0dXJuIGE5KHplKT9obj17bXM6emUuX21pbGxpc2Vjb25kcyxkOnplLl9kYXlzLE06emUuX21vbnRoc306YWUoemUpfHwhaXNOYU4oK3plKT8oaG49e30sVnQ/aG5b''@;'; + put 'put ''VnRdPSt6ZTpobi5taWxsaXNlY29uZHM9K3plKTooUm49UWcuZXhlYyh6ZSkpPyh0cj0iLSI9PT1SblsxXT8tMToxLGhuPXt5OjAsZDpRdChSblsyXSkqdHIsaDpRdChSblszXSkqdHIsbTpRdChSbls0XSkqdHIsczpRdChSbls1XSkqdHIsbXM6UXQoR2coMWUzKlJuWzZdKSkqdHJ9KTooUm49''@;'; + put 'put ''V3AuZXhlYyh6ZSkpP2huPXt5OmJoKFJuWzJdLHRyPSItIj09PVJuWzFdPy0xOjEpLE06YmgoUm5bM10sdHIpLHc6YmgoUm5bNF0sdHIpLGQ6YmgoUm5bNV0sdHIpLGg6YmgoUm5bNl0sdHIpLG06YmgoUm5bN10sdHIpLHM6YmgoUm5bOF0sdHIpfTpudWxsPT1obj9obj17fToib2JqZWN0Ij09''@;'; + put 'put ''dHlwZW9mIGhuJiYoImZyb20iaW4gaG58fCJ0byJpbiBobikmJihZaT1mdW5jdGlvbiBKZyh6ZSxWdCl7dmFyIGhuO3JldHVybiB6ZS5pc1ZhbGlkKCkmJlZ0LmlzVmFsaWQoKT8oVnQ9WWcoVnQsemUpLHplLmlzQmVmb3JlKFZ0KT9obj1ZcCh6ZSxWdCk6KChobj1ZcChWdCx6ZSkpLm1pbGxp''@;'; + put 'put ''c2Vjb25kcz0taG4ubWlsbGlzZWNvbmRzLGhuLm1vbnRocz0taG4ubW9udGhzKSxobik6e21pbGxpc2Vjb25kczowLG1vbnRoczowfX0oQ3MoaG4uZnJvbSksQ3MoaG4udG8pKSwoaG49e30pLm1zPVlpLm1pbGxpc2Vjb25kcyxobi5NPVlpLm1vbnRocyksZWk9bmV3IFpwKGhuKSxhOSh6ZSkm''@;'; + put 'put ''JlEoemUsIl9sb2NhbGUiKSYmKGVpLl9sb2NhbGU9emUuX2xvY2FsZSksYTkoemUpJiZRKHplLCJfaXNWYWxpZCIpJiYoZWkuX2lzVmFsaWQ9emUuX2lzVmFsaWQpLGVpfWZ1bmN0aW9uIGJoKHplLFZ0KXt2YXIgaG49emUmJnBhcnNlRmxvYXQoemUucmVwbGFjZSgiLCIsIi4iKSk7cmV0dXJu''@;'; + put 'put ''KGlzTmFOKGhuKT8wOmhuKSpWdH1mdW5jdGlvbiBZcCh6ZSxWdCl7dmFyIGhuPXt9O3JldHVybiBobi5tb250aHM9VnQubW9udGgoKS16ZS5tb250aCgpKzEyKihWdC55ZWFyKCktemUueWVhcigpKSx6ZS5jbG9uZSgpLmFkZChobi5tb250aHMsIk0iKS5pc0FmdGVyKFZ0KSYmLS1obi5tb250''@;'; + put 'put ''aHMsaG4ubWlsbGlzZWNvbmRzPStWdC0remUuY2xvbmUoKS5hZGQoaG4ubW9udGhzLCJNIiksaG59ZnVuY3Rpb24gVmMoemUsVnQpe3JldHVybiBmdW5jdGlvbihobixSbil7dmFyIGVpO3JldHVybiBudWxsIT09Um4mJiFpc05hTigrUm4pJiYoaGUoVnQsIm1vbWVudCgpLiIrVnQrIihwZXJp''@;'; + put 'put ''b2QsIG51bWJlcikgaXMgZGVwcmVjYXRlZC4gUGxlYXNlIHVzZSBtb21lbnQoKS4iK1Z0KyIobnVtYmVyLCBwZXJpb2QpLiBTZWUgaHR0cDovL21vbWVudGpzLmNvbS9ndWlkZXMvIy93YXJuaW5ncy9hZGQtaW52ZXJ0ZWQtcGFyYW0vIGZvciBtb3JlIGluZm8uIiksZWk9aG4saG49Um4sUm49''@;'; + put 'put ''ZWkpLEU0KHRoaXMsUXMoaG4sUm4pLHplKSx0aGlzfX1mdW5jdGlvbiBFNCh6ZSxWdCxobixSbil7dmFyIHRyPVZ0Ll9taWxsaXNlY29uZHMsZWk9R2coVnQuX2RheXMpLFlpPUdnKFZ0Ll9tb250aHMpOyF6ZS5pc1ZhbGlkKCl8fChSbj1udWxsPT1Sbnx8Um4sWWkmJlcwKHplLGRuKHplLCJN''@;'; + put 'put ''b250aCIpK1lpKmhuKSxlaSYmeW4oemUsIkRhdGUiLGRuKHplLCJEYXRlIikrZWkqaG4pLHRyJiZ6ZS5fZC5zZXRUaW1lKHplLl9kLnZhbHVlT2YoKSt0cipobiksUm4mJkIudXBkYXRlT2Zmc2V0KHplLGVpfHxZaSkpfVFzLmZuPVpwLnByb3RvdHlwZSxRcy5pbnZhbGlkPWZ1bmN0aW9uIHlo''@;'; + put 'put ''KCl7cmV0dXJuIFFzKE5hTil9O3ZhciBUTT1WYygxLCJhZGQiKSxmOT1WYygtMSwic3VidHJhY3QiKTtmdW5jdGlvbiBoOSh6ZSl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiB6ZXx8emUgaW5zdGFuY2VvZiBTdHJpbmd9ZnVuY3Rpb24gc3UoemUpe3JldHVybiBTZSh6ZSl8fFkoemUpfHxoOSh6''@;'; + put 'put ''ZSl8fGFlKHplKXx8ZnVuY3Rpb24gSU0oemUpe3ZhciBWdD1NZSh6ZSksaG49ITE7cmV0dXJuIFZ0JiYoaG49MD09PXplLmZpbHRlcihmdW5jdGlvbihSbil7cmV0dXJuIWFlKFJuKSYmaDkoemUpfSkubGVuZ3RoKSxWdCYmaG59KHplKXx8ZnVuY3Rpb24gWDIoemUpe3ZhciB0cixWdD1VKHpl''@;'; + put 'put ''KSYmIVooemUpLGhuPSExLFJuPVsieWVhcnMiLCJ5ZWFyIiwieSIsIm1vbnRocyIsIm1vbnRoIiwiTSIsImRheXMiLCJkYXkiLCJkIiwiZGF0ZXMiLCJkYXRlIiwiRCIsImhvdXJzIiwiaG91ciIsImgiLCJtaW51dGVzIiwibWludXRlIiwibSIsInNlY29uZHMiLCJzZWNvbmQiLCJzIiwibWls''@;'; + put 'put ''bGlzZWNvbmRzIiwibWlsbGlzZWNvbmQiLCJtcyJdLFlpPVJuLmxlbmd0aDtmb3IodHI9MDt0cjxZaTt0cis9MSlobj1obnx8USh6ZSxSblt0cl0pO3JldHVybiBWdCYmaG59KHplKXx8bnVsbD09emV9ZnVuY3Rpb24gcmIoemUpe3ZhciB0cixWdD1VKHplKSYmIVooemUpLGhuPSExLFJuPVsi''@;'; + put 'put ''c2FtZURheSIsIm5leHREYXkiLCJsYXN0RGF5IiwibmV4dFdlZWsiLCJsYXN0V2VlayIsInNhbWVFbHNlIl07Zm9yKHRyPTA7dHI8Um4ubGVuZ3RoO3RyKz0xKWhuPWhufHxRKHplLFJuW3RyXSk7cmV0dXJuIFZ0JiZobn1mdW5jdGlvbiBfaCh6ZSxWdCl7aWYoemUuZGF0ZSgpPFZ0LmRhdGUo''@;'; + put 'put ''KSlyZXR1cm4tX2goVnQsemUpO3ZhciBobj0xMiooVnQueWVhcigpLXplLnllYXIoKSkrKFZ0Lm1vbnRoKCktemUubW9udGgoKSksUm49emUuY2xvbmUoKS5hZGQoaG4sIm1vbnRocyIpO3JldHVybi0oaG4rKFZ0LVJuPDA/KFZ0LVJuKS8oUm4temUuY2xvbmUoKS5hZGQoaG4tMSwibW9udGhz''@;'; + put 'put ''IikpOihWdC1SbikvKHplLmNsb25lKCkuYWRkKGhuKzEsIm1vbnRocyIpLVJuKSkpfHwwfWZ1bmN0aW9uIHB0KHplKXt2YXIgVnQ7cmV0dXJuIHZvaWQgMD09PXplP3RoaXMuX2xvY2FsZS5fYWJicjoobnVsbCE9KFZ0PXUxKHplKSkmJih0aGlzLl9sb2NhbGU9VnQpLHRoaXMpfUIuZGVmYXVs''@;'; + put 'put ''dEZvcm1hdD0iWVlZWS1NTS1ERFRISDptbTpzc1oiLEIuZGVmYXVsdEZvcm1hdFV0Yz0iWVlZWS1NTS1ERFRISDptbTpzc1taXSI7dmFyIEl0PVRlKCJtb21lbnQoKS5sYW5nKCkgaXMgZGVwcmVjYXRlZC4gSW5zdGVhZCwgdXNlIG1vbWVudCgpLmxvY2FsZURhdGEoKSB0byBnZXQgdGhlIGxh''@;'; + put 'put ''bmd1YWdlIGNvbmZpZ3VyYXRpb24uIFVzZSBtb21lbnQoKS5sb2NhbGUoKSB0byBjaGFuZ2UgbGFuZ3VhZ2VzLiIsZnVuY3Rpb24oemUpe3JldHVybiB2b2lkIDA9PT16ZT90aGlzLmxvY2FsZURhdGEoKTp0aGlzLmxvY2FsZSh6ZSl9KTtmdW5jdGlvbiBQdCgpe3JldHVybiB0aGlzLl9sb2Nh''@;'; + put 'put ''bGV9dmFyIGl0PTZlNCxhPTYwKml0LFh0PTM1MDYzMjgqYTtmdW5jdGlvbiBocih6ZSxWdCl7cmV0dXJuKHplJVZ0K1Z0KSVWdH1mdW5jdGlvbiBQaSh6ZSxWdCxobil7cmV0dXJuIHplPDEwMCYmemU+PTA/bmV3IERhdGUoemUrNDAwLFZ0LGhuKS1YdDpuZXcgRGF0ZSh6ZSxWdCxobikudmFs''@;'; + put 'put ''dWVPZigpfWZ1bmN0aW9uIGpuKHplLFZ0LGhuKXtyZXR1cm4gemU8MTAwJiZ6ZT49MD9EYXRlLlVUQyh6ZSs0MDAsVnQsaG4pLVh0OkRhdGUuVVRDKHplLFZ0LGhuKX1mdW5jdGlvbiBxbCh6ZSxWdCl7cmV0dXJuIFZ0LmVyYXNBYmJyUmVnZXgoemUpfWZ1bmN0aW9uIEpwKCl7dmFyIHRyLGVp''@;'; + put 'put ''LHplPVtdLFZ0PVtdLGhuPVtdLFJuPVtdLFlpPXRoaXMuZXJhcygpO2Zvcih0cj0wLGVpPVlpLmxlbmd0aDt0cjxlaTsrK3RyKVZ0LnB1c2goQm4oWWlbdHJdLm5hbWUpKSx6ZS5wdXNoKEJuKFlpW3RyXS5hYmJyKSksaG4ucHVzaChCbihZaVt0cl0ubmFycm93KSksUm4ucHVzaChCbihZaVt0''@;'; + put 'put ''cl0ubmFtZSkpLFJuLnB1c2goQm4oWWlbdHJdLmFiYnIpKSxSbi5wdXNoKEJuKFlpW3RyXS5uYXJyb3cpKTt0aGlzLl9lcmFzUmVnZXg9bmV3IFJlZ0V4cCgiXigiK1JuLmpvaW4oInwiKSsiKSIsImkiKSx0aGlzLl9lcmFzTmFtZVJlZ2V4PW5ldyBSZWdFeHAoIl4oIitWdC5qb2luKCJ8Iikr''@;'; + put 'put ''IikiLCJpIiksdGhpcy5fZXJhc0FiYnJSZWdleD1uZXcgUmVnRXhwKCJeKCIremUuam9pbigifCIpKyIpIiwiaSIpLHRoaXMuX2VyYXNOYXJyb3dSZWdleD1uZXcgUmVnRXhwKCJeKCIraG4uam9pbigifCIpKyIpIiwiaSIpfWZ1bmN0aW9uIFhwKHplLFZ0KXtEZSgwLFt6ZSx6ZS5sZW5ndGhd''@;'; + put 'put ''LDAsVnQpfWZ1bmN0aW9uIGFiKHplLFZ0LGhuLFJuLHRyKXt2YXIgZWk7cmV0dXJuIG51bGw9PXplP3JsKHRoaXMsUm4sdHIpLnllYXI6KFZ0PihlaT1faSh6ZSxSbix0cikpJiYoVnQ9ZWkpLEJNLmNhbGwodGhpcyx6ZSxWdCxobixSbix0cikpfWZ1bmN0aW9uIEJNKHplLFZ0LGhuLFJuLHRy''@;'; + put 'put ''KXt2YXIgZWk9c2EoemUsVnQsaG4sUm4sdHIpLFlpPXZpKGVpLnllYXIsMCxlaS5kYXlPZlllYXIpO3JldHVybiB0aGlzLnllYXIoWWkuZ2V0VVRDRnVsbFllYXIoKSksdGhpcy5tb250aChZaS5nZXRVVENNb250aCgpKSx0aGlzLmRhdGUoWWkuZ2V0VVRDRGF0ZSgpKSx0aGlzfURlKCJOIiww''@;'; + put 'put ''LDAsImVyYUFiYnIiKSxEZSgiTk4iLDAsMCwiZXJhQWJiciIpLERlKCJOTk4iLDAsMCwiZXJhQWJiciIpLERlKCJOTk5OIiwwLDAsImVyYU5hbWUiKSxEZSgiTk5OTk4iLDAsMCwiZXJhTmFycm93IiksRGUoInkiLFsieSIsMV0sInlvIiwiZXJhWWVhciIpLERlKCJ5IixbInl5IiwyXSwwLCJl''@;'; + put 'put ''cmFZZWFyIiksRGUoInkiLFsieXl5IiwzXSwwLCJlcmFZZWFyIiksRGUoInkiLFsieXl5eSIsNF0sMCwiZXJhWWVhciIpLHRuKCJOIixxbCksdG4oIk5OIixxbCksdG4oIk5OTiIscWwpLHRuKCJOTk5OIixmdW5jdGlvbiBoYSh6ZSxWdCl7cmV0dXJuIFZ0LmVyYXNOYW1lUmVnZXgoemUpfSks''@;'; + put 'put ''dG4oIk5OTk5OIixmdW5jdGlvbiBEYSh6ZSxWdCl7cmV0dXJuIFZ0LmVyYXNOYXJyb3dSZWdleCh6ZSl9KSxtbihbIk4iLCJOTiIsIk5OTiIsIk5OTk4iLCJOTk5OTiJdLGZ1bmN0aW9uKHplLFZ0LGhuLFJuKXt2YXIgdHI9aG4uX2xvY2FsZS5lcmFzUGFyc2UoemUsUm4saG4uX3N0cmljdCk7''@;'; + put 'put ''dHI/SihobikuZXJhPXRyOkooaG4pLmludmFsaWRFcmE9emV9KSx0bigieSIsV3QpLHRuKCJ5eSIsV3QpLHRuKCJ5eXkiLFd0KSx0bigieXl5eSIsV3QpLHRuKCJ5byIsZnVuY3Rpb24gVDgoemUsVnQpe3JldHVybiBWdC5fZXJhWWVhck9yZGluYWxSZWdleHx8V3R9KSxtbihbInkiLCJ5eSIs''@;'; + put 'put ''Inl5eSIsInl5eXkiXSwwKSxtbihbInlvIl0sZnVuY3Rpb24oemUsVnQsaG4sUm4pe3ZhciB0cjtobi5fbG9jYWxlLl9lcmFZZWFyT3JkaW5hbFJlZ2V4JiYodHI9emUubWF0Y2goaG4uX2xvY2FsZS5fZXJhWWVhck9yZGluYWxSZWdleCkpLFZ0WzBdPWhuLl9sb2NhbGUuZXJhWWVhck9yZGlu''@;'; + put 'put ''YWxQYXJzZT9obi5fbG9jYWxlLmVyYVllYXJPcmRpbmFsUGFyc2UoemUsdHIpOnBhcnNlSW50KHplLDEwKX0pLERlKDAsWyJnZyIsMl0sMCxmdW5jdGlvbigpe3JldHVybiB0aGlzLndlZWtZZWFyKCklMTAwfSksRGUoMCxbIkdHIiwyXSwwLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXNvV2Vl''@;'; + put 'put ''a1llYXIoKSUxMDB9KSxYcCgiZ2dnZyIsIndlZWtZZWFyIiksWHAoImdnZ2dnIiwid2Vla1llYXIiKSxYcCgiR0dHRyIsImlzb1dlZWtZZWFyIiksWHAoIkdHR0dHIiwiaXNvV2Vla1llYXIiKSxMdCgid2Vla1llYXIiLCJnZyIpLEx0KCJpc29XZWVrWWVhciIsIkdHIiksR2UoIndlZWtZZWFy''@;'; + put 'put ''IiwxKSxHZSgiaXNvV2Vla1llYXIiLDEpLHRuKCJHIixwbiksdG4oImciLHBuKSx0bigiR0ciLHhyLGVyKSx0bigiZ2ciLHhyLGVyKSx0bigiR0dHRyIsQW4sWG4pLHRuKCJnZ2dnIixBbixYbiksdG4oIkdHR0dHIixxbixGciksdG4oImdnZ2dnIixxbixGciksdW4oWyJnZ2dnIiwiZ2dnZ2ci''@;'; + put 'put ''LCJHR0dHIiwiR0dHR0ciXSxmdW5jdGlvbih6ZSxWdCxobixSbil7VnRbUm4uc3Vic3RyKDAsMildPVF0KHplKX0pLHVuKFsiZ2ciLCJHRyJdLGZ1bmN0aW9uKHplLFZ0LGhuLFJuKXtWdFtSbl09Qi5wYXJzZVR3b0RpZ2l0WWVhcih6ZSl9KSxEZSgiUSIsMCwiUW8iLCJxdWFydGVyIiksTHQo''@;'; + put 'put ''InF1YXJ0ZXIiLCJRIiksR2UoInF1YXJ0ZXIiLDcpLHRuKCJRIixibiksbW4oIlEiLGZ1bmN0aW9uKHplLFZ0KXtWdFsxXT0zKihRdCh6ZSktMSl9KSxEZSgiRCIsWyJERCIsMl0sIkRvIiwiZGF0ZSIpLEx0KCJkYXRlIiwiRCIpLEdlKCJkYXRlIiw5KSx0bigiRCIseHIpLHRuKCJERCIseHIs''@;'; + put 'put ''ZXIpLHRuKCJEbyIsZnVuY3Rpb24oemUsVnQpe3JldHVybiB6ZT9WdC5fZGF5T2ZNb250aE9yZGluYWxQYXJzZXx8VnQuX29yZGluYWxQYXJzZTpWdC5fZGF5T2ZNb250aE9yZGluYWxQYXJzZUxlbmllbnR9KSxtbihbIkQiLCJERCJdLDIpLG1uKCJEbyIsZnVuY3Rpb24oemUsVnQpe1Z0WzJd''@;'; + put 'put ''PVF0KHplLm1hdGNoKHhyKVswXSl9KTt2YXIgdzI9Z24oIkRhdGUiLCEwKTtEZSgiREREIixbIkREREQiLDNdLCJERERvIiwiZGF5T2ZZZWFyIiksTHQoImRheU9mWWVhciIsIkRERCIpLEdlKCJkYXlPZlllYXIiLDQpLHRuKCJEREQiLG5yKSx0bigiRERERCIsc3IpLG1uKFsiREREIiwiRERE''@;'; + put 'put ''RCJdLGZ1bmN0aW9uKHplLFZ0LGhuKXtobi5fZGF5T2ZZZWFyPVF0KHplKX0pLERlKCJtIixbIm1tIiwyXSwwLCJtaW51dGUiKSxMdCgibWludXRlIiwibSIpLEdlKCJtaW51dGUiLDE0KSx0bigibSIseHIpLHRuKCJtbSIseHIsZXIpLG1uKFsibSIsIm1tIl0sNCk7dmFyIHdkPWduKCJNaW51''@;'; + put 'put ''dGVzIiwhMSk7RGUoInMiLFsic3MiLDJdLDAsInNlY29uZCIpLEx0KCJzZWNvbmQiLCJzIiksR2UoInNlY29uZCIsMTUpLHRuKCJzIix4ciksdG4oInNzIix4cixlciksbW4oWyJzIiwic3MiXSw1KTt2YXIgZmYsSTgsS3A9Z24oIlNlY29uZHMiLCExKTtmb3IoRGUoIlMiLDAsMCxmdW5jdGlv''@;'; + put 'put ''bigpe3JldHVybn5+KHRoaXMubWlsbGlzZWNvbmQoKS8xMDApfSksRGUoMCxbIlNTIiwyXSwwLGZ1bmN0aW9uKCl7cmV0dXJufn4odGhpcy5taWxsaXNlY29uZCgpLzEwKX0pLERlKDAsWyJTU1MiLDNdLDAsIm1pbGxpc2Vjb25kIiksRGUoMCxbIlNTU1MiLDRdLDAsZnVuY3Rpb24oKXtyZXR1''@;'; + put 'put ''cm4gMTAqdGhpcy5taWxsaXNlY29uZCgpfSksRGUoMCxbIlNTU1NTIiw1XSwwLGZ1bmN0aW9uKCl7cmV0dXJuIDEwMCp0aGlzLm1pbGxpc2Vjb25kKCl9KSxEZSgwLFsiU1NTU1NTIiw2XSwwLGZ1bmN0aW9uKCl7cmV0dXJuIDFlMyp0aGlzLm1pbGxpc2Vjb25kKCl9KSxEZSgwLFsiU1NTU1NT''@;'; + put 'put ''UyIsN10sMCxmdW5jdGlvbigpe3JldHVybiAxZTQqdGhpcy5taWxsaXNlY29uZCgpfSksRGUoMCxbIlNTU1NTU1NTIiw4XSwwLGZ1bmN0aW9uKCl7cmV0dXJuIDFlNSp0aGlzLm1pbGxpc2Vjb25kKCl9KSxEZSgwLFsiU1NTU1NTU1NTIiw5XSwwLGZ1bmN0aW9uKCl7cmV0dXJuIDFlNip0aGlz''@;'; + put 'put ''Lm1pbGxpc2Vjb25kKCl9KSxMdCgibWlsbGlzZWNvbmQiLCJtcyIpLEdlKCJtaWxsaXNlY29uZCIsMTYpLHRuKCJTIixucixibiksdG4oIlNTIixucixlciksdG4oIlNTUyIsbnIsc3IpLGZmPSJTU1NTIjtmZi5sZW5ndGg8PTk7ZmYrPSJTIil0bihmZixXdCk7ZnVuY3Rpb24gUE0oemUsVnQp''@;'; + put 'put ''e1Z0WzZdPVF0KDFlMyooIjAuIit6ZSkpfWZvcihmZj0iUyI7ZmYubGVuZ3RoPD05O2ZmKz0iUyIpbW4oZmYsUE0pO0k4PWduKCJNaWxsaXNlY29uZHMiLCExKSxEZSgieiIsMCwwLCJ6b25lQWJiciIpLERlKCJ6eiIsMCwwLCJ6b25lTmFtZSIpO3ZhciBhMD1rZS5wcm90b3R5cGU7ZnVuY3Rp''@;'; + put 'put ''b24gSnMoemUpe3JldHVybiB6ZX1hMC5hZGQ9VE0sYTAuY2FsZW5kYXI9ZnVuY3Rpb24gdmMoemUsVnQpezE9PT1hcmd1bWVudHMubGVuZ3RoJiYoYXJndW1lbnRzWzBdP3N1KGFyZ3VtZW50c1swXSk/KHplPWFyZ3VtZW50c1swXSxWdD12b2lkIDApOnJiKGFyZ3VtZW50c1swXSkmJihWdD1h''@;'; + put 'put ''cmd1bWVudHNbMF0semU9dm9pZCAwKTooemU9dm9pZCAwLFZ0PXZvaWQgMCkpO3ZhciBobj16ZXx8Q3MoKSxSbj1ZZyhobix0aGlzKS5zdGFydE9mKCJkYXkiKSx0cj1CLmNhbGVuZGFyRm9ybWF0KHRoaXMsUm4pfHwic2FtZUVsc2UiLGVpPVZ0JiYoTyhWdFt0cl0pP1Z0W3RyXS5jYWxsKHRo''@;'; + put 'put ''aXMsaG4pOlZ0W3RyXSk7cmV0dXJuIHRoaXMuZm9ybWF0KGVpfHx0aGlzLmxvY2FsZURhdGEoKS5jYWxlbmRhcih0cix0aGlzLENzKGhuKSkpfSxhMC5jbG9uZT1mdW5jdGlvbiBkOSgpe3JldHVybiBuZXcga2UodGhpcyl9LGEwLmRpZmY9ZnVuY3Rpb24gTjEoemUsVnQsaG4pe3ZhciBSbix0''@;'; + put 'put ''cixlaTtpZighdGhpcy5pc1ZhbGlkKCkpcmV0dXJuIE5hTjtpZighKFJuPVlnKHplLHRoaXMpKS5pc1ZhbGlkKCkpcmV0dXJuIE5hTjtzd2l0Y2godHI9NmU0KihSbi51dGNPZmZzZXQoKS10aGlzLnV0Y09mZnNldCgpKSxWdD1DdChWdCkpe2Nhc2UieWVhciI6ZWk9X2godGhpcyxSbikvMTI7''@;'; + put 'put ''YnJlYWs7Y2FzZSJtb250aCI6ZWk9X2godGhpcyxSbik7YnJlYWs7Y2FzZSJxdWFydGVyIjplaT1faCh0aGlzLFJuKS8zO2JyZWFrO2Nhc2Uic2Vjb25kIjplaT0odGhpcy1SbikvMWUzO2JyZWFrO2Nhc2UibWludXRlIjplaT0odGhpcy1SbikvNmU0O2JyZWFrO2Nhc2UiaG91ciI6ZWk9KHRo''@;'; + put 'put ''aXMtUm4pLzM2ZTU7YnJlYWs7Y2FzZSJkYXkiOmVpPSh0aGlzLVJuLXRyKS84NjRlNTticmVhaztjYXNlIndlZWsiOmVpPSh0aGlzLVJuLXRyKS82MDQ4ZTU7YnJlYWs7ZGVmYXVsdDplaT10aGlzLVJufXJldHVybiBobj9laTpqdChlaSl9LGEwLmVuZE9mPWZ1bmN0aW9uIEFvKHplKXt2YXIg''@;'; + put 'put ''VnQsaG47aWYodm9pZCAwPT09KHplPUN0KHplKSl8fCJtaWxsaXNlY29uZCI9PT16ZXx8IXRoaXMuaXNWYWxpZCgpKXJldHVybiB0aGlzO3N3aXRjaChobj10aGlzLl9pc1VUQz9qbjpQaSx6ZSl7Y2FzZSJ5ZWFyIjpWdD1obih0aGlzLnllYXIoKSsxLDAsMSktMTticmVhaztjYXNlInF1YXJ0''@;'; + put 'put ''ZXIiOlZ0PWhuKHRoaXMueWVhcigpLHRoaXMubW9udGgoKS10aGlzLm1vbnRoKCklMyszLDEpLTE7YnJlYWs7Y2FzZSJtb250aCI6VnQ9aG4odGhpcy55ZWFyKCksdGhpcy5tb250aCgpKzEsMSktMTticmVhaztjYXNlIndlZWsiOlZ0PWhuKHRoaXMueWVhcigpLHRoaXMubW9udGgoKSx0aGlz''@;'; + put 'put ''LmRhdGUoKS10aGlzLndlZWtkYXkoKSs3KS0xO2JyZWFrO2Nhc2UiaXNvV2VlayI6VnQ9aG4odGhpcy55ZWFyKCksdGhpcy5tb250aCgpLHRoaXMuZGF0ZSgpLSh0aGlzLmlzb1dlZWtkYXkoKS0xKSs3KS0xO2JyZWFrO2Nhc2UiZGF5IjpjYXNlImRhdGUiOlZ0PWhuKHRoaXMueWVhcigpLHRo''@;'; + put 'put ''aXMubW9udGgoKSx0aGlzLmRhdGUoKSsxKS0xO2JyZWFrO2Nhc2UiaG91ciI6VnQ9dGhpcy5fZC52YWx1ZU9mKCksVnQrPWEtaHIoVnQrKHRoaXMuX2lzVVRDPzA6dGhpcy51dGNPZmZzZXQoKSppdCksYSktMTticmVhaztjYXNlIm1pbnV0ZSI6VnQ9dGhpcy5fZC52YWx1ZU9mKCksVnQrPWl0''@;'; + put 'put ''LWhyKFZ0LGl0KS0xO2JyZWFrO2Nhc2Uic2Vjb25kIjpWdD10aGlzLl9kLnZhbHVlT2YoKSxWdCs9MWUzLWhyKFZ0LDFlMyktMX1yZXR1cm4gdGhpcy5fZC5zZXRUaW1lKFZ0KSxCLnVwZGF0ZU9mZnNldCh0aGlzLCEwKSx0aGlzfSxhMC5mb3JtYXQ9ZnVuY3Rpb24gcWcoemUpe3plfHwoemU9''@;'; + put 'put ''dGhpcy5pc1V0YygpP0IuZGVmYXVsdEZvcm1hdFV0YzpCLmRlZmF1bHRGb3JtYXQpO3ZhciBWdD0kZSh0aGlzLHplKTtyZXR1cm4gdGhpcy5sb2NhbGVEYXRhKCkucG9zdGZvcm1hdChWdCl9LGEwLmZyb209ZnVuY3Rpb24gaWIoemUsVnQpe3JldHVybiB0aGlzLmlzVmFsaWQoKSYmKFNlKHpl''@;'; + put 'put ''KSYmemUuaXNWYWxpZCgpfHxDcyh6ZSkuaXNWYWxpZCgpKT9Rcyh7dG86dGhpcyxmcm9tOnplfSkubG9jYWxlKHRoaXMubG9jYWxlKCkpLmh1bWFuaXplKCFWdCk6dGhpcy5sb2NhbGVEYXRhKCkuaW52YWxpZERhdGUoKX0sYTAuZnJvbU5vdz1mdW5jdGlvbiBmMih6ZSl7cmV0dXJuIHRoaXMu''@;'; + put 'put ''ZnJvbShDcygpLHplKX0sYTAudG89ZnVuY3Rpb24gZFIoemUsVnQpe3JldHVybiB0aGlzLmlzVmFsaWQoKSYmKFNlKHplKSYmemUuaXNWYWxpZCgpfHxDcyh6ZSkuaXNWYWxpZCgpKT9Rcyh7ZnJvbTp0aGlzLHRvOnplfSkubG9jYWxlKHRoaXMubG9jYWxlKCkpLmh1bWFuaXplKCFWdCk6dGhp''@;'; + put 'put ''cy5sb2NhbGVEYXRhKCkuaW52YWxpZERhdGUoKX0sYTAudG9Ob3c9ZnVuY3Rpb24gTE0oemUpe3JldHVybiB0aGlzLnRvKENzKCksemUpfSxhMC5nZXQ9ZnVuY3Rpb24gbG4oemUpe3JldHVybiBPKHRoaXNbemU9Q3QoemUpXSk/dGhpc1t6ZV0oKTp0aGlzfSxhMC5pbnZhbGlkQXQ9ZnVuY3Rp''@;'; + put 'put ''b24gbzIoKXtyZXR1cm4gSih0aGlzKS5vdmVyZmxvd30sYTAuaXNBZnRlcj1mdW5jdGlvbiBYZyh6ZSxWdCl7dmFyIGhuPVNlKHplKT96ZTpDcyh6ZSk7cmV0dXJuISghdGhpcy5pc1ZhbGlkKCl8fCFobi5pc1ZhbGlkKCkpJiYoIm1pbGxpc2Vjb25kIj09PShWdD1DdChWdCl8fCJtaWxsaXNl''@;'; + put 'put ''Y29uZCIpP3RoaXMudmFsdWVPZigpPmhuLnZhbHVlT2YoKTpobi52YWx1ZU9mKCk8dGhpcy5jbG9uZSgpLnN0YXJ0T2YoVnQpLnZhbHVlT2YoKSl9LGEwLmlzQmVmb3JlPWZ1bmN0aW9uIFFwKHplLFZ0KXt2YXIgaG49U2UoemUpP3plOkNzKHplKTtyZXR1cm4hKCF0aGlzLmlzVmFsaWQoKXx8''@;'; + put 'put ''IWhuLmlzVmFsaWQoKSkmJigibWlsbGlzZWNvbmQiPT09KFZ0PUN0KFZ0KXx8Im1pbGxpc2Vjb25kIik/dGhpcy52YWx1ZU9mKCk8aG4udmFsdWVPZigpOnRoaXMuY2xvbmUoKS5lbmRPZihWdCkudmFsdWVPZigpPGhuLnZhbHVlT2YoKSl9LGEwLmlzQmV0d2Vlbj1mdW5jdGlvbiBRdSh6ZSxW''@;'; + put 'put ''dCxobixSbil7dmFyIHRyPVNlKHplKT96ZTpDcyh6ZSksZWk9U2UoVnQpP1Z0OkNzKFZ0KTtyZXR1cm4hISh0aGlzLmlzVmFsaWQoKSYmdHIuaXNWYWxpZCgpJiZlaS5pc1ZhbGlkKCkpJiYoIigiPT09KFJuPVJufHwiKCkiKVswXT90aGlzLmlzQWZ0ZXIodHIsaG4pOiF0aGlzLmlzQmVmb3Jl''@;'; + put 'put ''KHRyLGhuKSkmJigiKSI9PT1SblsxXT90aGlzLmlzQmVmb3JlKGVpLGhuKTohdGhpcy5pc0FmdGVyKGVpLGhuKSl9LGEwLmlzU2FtZT1mdW5jdGlvbiBLZyh6ZSxWdCl7dmFyIFJuLGhuPVNlKHplKT96ZTpDcyh6ZSk7cmV0dXJuISghdGhpcy5pc1ZhbGlkKCl8fCFobi5pc1ZhbGlkKCkpJiYo''@;'; + put 'put ''Im1pbGxpc2Vjb25kIj09PShWdD1DdChWdCl8fCJtaWxsaXNlY29uZCIpP3RoaXMudmFsdWVPZigpPT09aG4udmFsdWVPZigpOihSbj1obi52YWx1ZU9mKCksdGhpcy5jbG9uZSgpLnN0YXJ0T2YoVnQpLnZhbHVlT2YoKTw9Um4mJlJuPD10aGlzLmNsb25lKCkuZW5kT2YoVnQpLnZhbHVlT2Yo''@;'; + put 'put ''KSkpfSxhMC5pc1NhbWVPckFmdGVyPWZ1bmN0aW9uIHV1KHplLFZ0KXtyZXR1cm4gdGhpcy5pc1NhbWUoemUsVnQpfHx0aGlzLmlzQWZ0ZXIoemUsVnQpfSxhMC5pc1NhbWVPckJlZm9yZT1mdW5jdGlvbiBETSh6ZSxWdCl7cmV0dXJuIHRoaXMuaXNTYW1lKHplLFZ0KXx8dGhpcy5pc0JlZm9y''@;'; + put 'put ''ZSh6ZSxWdCl9LGEwLmlzVmFsaWQ9ZnVuY3Rpb24geG4oKXtyZXR1cm4gb2UodGhpcyl9LGEwLmxhbmc9SXQsYTAubG9jYWxlPXB0LGEwLmxvY2FsZURhdGE9UHQsYTAubWF4PVZmLGEwLm1pbj16ZyxhMC5wYXJzaW5nRmxhZ3M9ZnVuY3Rpb24gaTIoKXtyZXR1cm4gTih7fSxKKHRoaXMpKX0s''@;'; + put 'put ''YTAuc2V0PWZ1bmN0aW9uIE5uKHplLFZ0KXtpZigib2JqZWN0Ij09dHlwZW9mIHplKXt2YXIgUm4saG49ZnVuY3Rpb24gVWUoemUpe3ZhciBobixWdD1bXTtmb3IoaG4gaW4gemUpUSh6ZSxobikmJlZ0LnB1c2goe3VuaXQ6aG4scHJpb3JpdHk6SHRbaG5dfSk7cmV0dXJuIFZ0LnNvcnQoZnVu''@;'; + put 'put ''Y3Rpb24oUm4sdHIpe3JldHVybiBSbi5wcmlvcml0eS10ci5wcmlvcml0eX0pLFZ0fSh6ZT1mdCh6ZSkpLHRyPWhuLmxlbmd0aDtmb3IoUm49MDtSbjx0cjtSbisrKXRoaXNbaG5bUm5dLnVuaXRdKHplW2huW1JuXS51bml0XSl9ZWxzZSBpZihPKHRoaXNbemU9Q3QoemUpXSkpcmV0dXJuIHRo''@;'; + put 'put ''aXNbemVdKFZ0KTtyZXR1cm4gdGhpc30sYTAuc3RhcnRPZj1mdW5jdGlvbiBfKHplKXt2YXIgVnQsaG47aWYodm9pZCAwPT09KHplPUN0KHplKSl8fCJtaWxsaXNlY29uZCI9PT16ZXx8IXRoaXMuaXNWYWxpZCgpKXJldHVybiB0aGlzO3N3aXRjaChobj10aGlzLl9pc1VUQz9qbjpQaSx6ZSl7''@;'; + put 'put ''Y2FzZSJ5ZWFyIjpWdD1obih0aGlzLnllYXIoKSwwLDEpO2JyZWFrO2Nhc2UicXVhcnRlciI6VnQ9aG4odGhpcy55ZWFyKCksdGhpcy5tb250aCgpLXRoaXMubW9udGgoKSUzLDEpO2JyZWFrO2Nhc2UibW9udGgiOlZ0PWhuKHRoaXMueWVhcigpLHRoaXMubW9udGgoKSwxKTticmVhaztjYXNl''@;'; + put 'put ''IndlZWsiOlZ0PWhuKHRoaXMueWVhcigpLHRoaXMubW9udGgoKSx0aGlzLmRhdGUoKS10aGlzLndlZWtkYXkoKSk7YnJlYWs7Y2FzZSJpc29XZWVrIjpWdD1obih0aGlzLnllYXIoKSx0aGlzLm1vbnRoKCksdGhpcy5kYXRlKCktKHRoaXMuaXNvV2Vla2RheSgpLTEpKTticmVhaztjYXNlImRh''@;'; + put 'put ''eSI6Y2FzZSJkYXRlIjpWdD1obih0aGlzLnllYXIoKSx0aGlzLm1vbnRoKCksdGhpcy5kYXRlKCkpO2JyZWFrO2Nhc2UiaG91ciI6VnQ9dGhpcy5fZC52YWx1ZU9mKCksVnQtPWhyKFZ0Kyh0aGlzLl9pc1VUQz8wOnRoaXMudXRjT2Zmc2V0KCkqaXQpLGEpO2JyZWFrO2Nhc2UibWludXRlIjpW''@;'; + put 'put ''dD10aGlzLl9kLnZhbHVlT2YoKSxWdC09aHIoVnQsaXQpO2JyZWFrO2Nhc2Uic2Vjb25kIjpWdD10aGlzLl9kLnZhbHVlT2YoKSxWdC09aHIoVnQsMWUzKX1yZXR1cm4gdGhpcy5fZC5zZXRUaW1lKFZ0KSxCLnVwZGF0ZU9mZnNldCh0aGlzLCEwKSx0aGlzfSxhMC5zdWJ0cmFjdD1mOSxhMC50''@;'; + put 'put ''b0FycmF5PWZ1bmN0aW9uIFYxKCl7dmFyIHplPXRoaXM7cmV0dXJuW3plLnllYXIoKSx6ZS5tb250aCgpLHplLmRhdGUoKSx6ZS5ob3VyKCksemUubWludXRlKCksemUuc2Vjb25kKCksemUubWlsbGlzZWNvbmQoKV19LGEwLnRvT2JqZWN0PWZ1bmN0aW9uIGxzKCl7dmFyIHplPXRoaXM7cmV0''@;'; + put 'put ''dXJue3llYXJzOnplLnllYXIoKSxtb250aHM6emUubW9udGgoKSxkYXRlOnplLmRhdGUoKSxob3Vyczp6ZS5ob3VycygpLG1pbnV0ZXM6emUubWludXRlcygpLHNlY29uZHM6emUuc2Vjb25kcygpLG1pbGxpc2Vjb25kczp6ZS5taWxsaXNlY29uZHMoKX19LGEwLnRvRGF0ZT1mdW5jdGlvbiBs''@;'; + put 'put ''ZSgpe3JldHVybiBuZXcgRGF0ZSh0aGlzLnZhbHVlT2YoKSl9LGEwLnRvSVNPU3RyaW5nPWZ1bmN0aW9uIENhKHplKXtpZighdGhpcy5pc1ZhbGlkKCkpcmV0dXJuIG51bGw7dmFyIFZ0PSEwIT09emUsaG49VnQ/dGhpcy5jbG9uZSgpLnV0YygpOnRoaXM7cmV0dXJuIGhuLnllYXIoKTwwfHxo''@;'; + put 'put ''bi55ZWFyKCk+OTk5OT8kZShobixWdD8iWVlZWVlZLU1NLUREW1RdSEg6bW06c3MuU1NTW1pdIjoiWVlZWVlZLU1NLUREW1RdSEg6bW06c3MuU1NTWiIpOk8oRGF0ZS5wcm90b3R5cGUudG9JU09TdHJpbmcpP1Z0P3RoaXMudG9EYXRlKCkudG9JU09TdHJpbmcoKTpuZXcgRGF0ZSh0aGlzLnZh''@;'; + put 'put ''bHVlT2YoKSs2MCp0aGlzLnV0Y09mZnNldCgpKjFlMykudG9JU09TdHJpbmcoKS5yZXBsYWNlKCJaIiwkZShobiwiWiIpKTokZShobixWdD8iWVlZWS1NTS1ERFtUXUhIOm1tOnNzLlNTU1taXSI6IllZWVktTU0tRERbVF1ISDptbTpzcy5TU1NaIil9LGEwLmluc3BlY3Q9ZnVuY3Rpb24gJGco''@;'; + put 'put ''KXtpZighdGhpcy5pc1ZhbGlkKCkpcmV0dXJuIm1vbWVudC5pbnZhbGlkKC8qICIrdGhpcy5faSsiICovKSI7dmFyIGhuLFJuLHplPSJtb21lbnQiLFZ0PSIiO3JldHVybiB0aGlzLmlzTG9jYWwoKXx8KHplPTA9PT10aGlzLnV0Y09mZnNldCgpPyJtb21lbnQudXRjIjoibW9tZW50LnBhcnNl''@;'; + put 'put ''Wm9uZSIsVnQ9IloiKSxobj0iWyIremUrJygiXScsUm49MDw9dGhpcy55ZWFyKCkmJnRoaXMueWVhcigpPD05OTk5PyJZWVlZIjoiWVlZWVlZIix0aGlzLmZvcm1hdChobitSbisiLU1NLUREW1RdSEg6bW06c3MuU1NTIitWdCsnWyIpXScpfSwidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYm''@;'; + put 'put ''bnVsbCE9U3ltYm9sLmZvciYmKGEwW1N5bWJvbC5mb3IoIm5vZGVqcy51dGlsLmluc3BlY3QuY3VzdG9tIildPWZ1bmN0aW9uKCl7cmV0dXJuIk1vbWVudDwiK3RoaXMuZm9ybWF0KCkrIj4ifSksYTAudG9KU09OPWZ1bmN0aW9uIE1uKCl7cmV0dXJuIHRoaXMuaXNWYWxpZCgpP3RoaXMudG9J''@;'; + put 'put ''U09TdHJpbmcoKTpudWxsfSxhMC50b1N0cmluZz1mdW5jdGlvbiBBZCgpe3JldHVybiB0aGlzLmNsb25lKCkubG9jYWxlKCJlbiIpLmZvcm1hdCgiZGRkIE1NTSBERCBZWVlZIEhIOm1tOnNzIFtHTVRdWloiKX0sYTAudW5peD1mdW5jdGlvbiAkbygpe3JldHVybiBNYXRoLmZsb29yKHRoaXMu''@;'; + put 'put ''dmFsdWVPZigpLzFlMyl9LGEwLnZhbHVlT2Y9ZnVuY3Rpb24gU2koKXtyZXR1cm4gdGhpcy5fZC52YWx1ZU9mKCktNmU0Kih0aGlzLl9vZmZzZXR8fDApfSxhMC5jcmVhdGlvbkRhdGE9ZnVuY3Rpb24gamMoKXtyZXR1cm57aW5wdXQ6dGhpcy5faSxmb3JtYXQ6dGhpcy5fZixsb2NhbGU6dGhp''@;'; + put 'put ''cy5fbG9jYWxlLGlzVVRDOnRoaXMuX2lzVVRDLHN0cmljdDp0aGlzLl9zdHJpY3R9fSxhMC5lcmFOYW1lPWZ1bmN0aW9uIHA5KCl7dmFyIHplLFZ0LGhuLFJuPXRoaXMubG9jYWxlRGF0YSgpLmVyYXMoKTtmb3IoemU9MCxWdD1Sbi5sZW5ndGg7emU8VnQ7Kyt6ZSlpZihobj10aGlzLmNsb25l''@;'; + put 'put ''KCkuc3RhcnRPZigiZGF5IikudmFsdWVPZigpLFJuW3plXS5zaW5jZTw9aG4mJmhuPD1Sblt6ZV0udW50aWx8fFJuW3plXS51bnRpbDw9aG4mJmhuPD1Sblt6ZV0uc2luY2UpcmV0dXJuIFJuW3plXS5uYW1lO3JldHVybiIifSxhMC5lcmFOYXJyb3c9ZnVuY3Rpb24gZzkoKXt2YXIgemUsVnQs''@;'; + put 'put ''aG4sUm49dGhpcy5sb2NhbGVEYXRhKCkuZXJhcygpO2Zvcih6ZT0wLFZ0PVJuLmxlbmd0aDt6ZTxWdDsrK3plKWlmKGhuPXRoaXMuY2xvbmUoKS5zdGFydE9mKCJkYXkiKS52YWx1ZU9mKCksUm5bemVdLnNpbmNlPD1obiYmaG48PVJuW3plXS51bnRpbHx8Um5bemVdLnVudGlsPD1obiYmaG48''@;'; + put 'put ''PVJuW3plXS5zaW5jZSlyZXR1cm4gUm5bemVdLm5hcnJvdztyZXR1cm4iIn0sYTAuZXJhQWJicj1mdW5jdGlvbiBvYigpe3ZhciB6ZSxWdCxobixSbj10aGlzLmxvY2FsZURhdGEoKS5lcmFzKCk7Zm9yKHplPTAsVnQ9Um4ubGVuZ3RoO3plPFZ0OysremUpaWYoaG49dGhpcy5jbG9uZSgpLnN0''@;'; + put 'put ''YXJ0T2YoImRheSIpLnZhbHVlT2YoKSxSblt6ZV0uc2luY2U8PWhuJiZobjw9Um5bemVdLnVudGlsfHxSblt6ZV0udW50aWw8PWhuJiZobjw9Um5bemVdLnNpbmNlKXJldHVybiBSblt6ZV0uYWJicjtyZXR1cm4iIn0sYTAuZXJhWWVhcj1mdW5jdGlvbiBEbigpe3ZhciB6ZSxWdCxobixSbix0''@;'; + put 'put ''cj10aGlzLmxvY2FsZURhdGEoKS5lcmFzKCk7Zm9yKHplPTAsVnQ9dHIubGVuZ3RoO3plPFZ0OysremUpaWYoaG49dHJbemVdLnNpbmNlPD10clt6ZV0udW50aWw/MTotMSxSbj10aGlzLmNsb25lKCkuc3RhcnRPZigiZGF5IikudmFsdWVPZigpLHRyW3plXS5zaW5jZTw9Um4mJlJuPD10clt6''@;'; + put 'put ''ZV0udW50aWx8fHRyW3plXS51bnRpbDw9Um4mJlJuPD10clt6ZV0uc2luY2UpcmV0dXJuKHRoaXMueWVhcigpLUIodHJbemVdLnNpbmNlKS55ZWFyKCkpKmhuK3RyW3plXS5vZmZzZXQ7cmV0dXJuIHRoaXMueWVhcigpfSxhMC55ZWFyPW5sLGEwLmlzTGVhcFllYXI9ZnVuY3Rpb24gZ2woKXty''@;'; + put 'put ''ZXR1cm4geXQodGhpcy55ZWFyKCkpfSxhMC53ZWVrWWVhcj1mdW5jdGlvbiBaZih6ZSl7cmV0dXJuIGFiLmNhbGwodGhpcyx6ZSx0aGlzLndlZWsoKSx0aGlzLndlZWtkYXkoKSx0aGlzLmxvY2FsZURhdGEoKS5fd2Vlay5kb3csdGhpcy5sb2NhbGVEYXRhKCkuX3dlZWsuZG95KX0sYTAuaXNv''@;'; + put 'put ''V2Vla1llYXI9ZnVuY3Rpb24gVWwoemUpe3JldHVybiBhYi5jYWxsKHRoaXMsemUsdGhpcy5pc29XZWVrKCksdGhpcy5pc29XZWVrZGF5KCksMSw0KX0sYTAucXVhcnRlcj1hMC5xdWFydGVycz1mdW5jdGlvbiB5ZCh6ZSl7cmV0dXJuIG51bGw9PXplP01hdGguY2VpbCgodGhpcy5tb250aCgp''@;'; + put 'put ''KzEpLzMpOnRoaXMubW9udGgoMyooemUtMSkrdGhpcy5tb250aCgpJTMpfSxhMC5tb250aD1FbyxhMC5kYXlzSW5Nb250aD1mdW5jdGlvbiBxbygpe3JldHVybiBpaSh0aGlzLnllYXIoKSx0aGlzLm1vbnRoKCkpfSxhMC53ZWVrPWEwLndlZWtzPWZ1bmN0aW9uIFgwKHplKXt2YXIgVnQ9dGhp''@;'; + put 'put ''cy5sb2NhbGVEYXRhKCkud2Vlayh0aGlzKTtyZXR1cm4gbnVsbD09emU/VnQ6dGhpcy5hZGQoNyooemUtVnQpLCJkIil9LGEwLmlzb1dlZWs9YTAuaXNvV2Vla3M9ZnVuY3Rpb24gdWEoemUpe3ZhciBWdD1ybCh0aGlzLDEsNCkud2VlaztyZXR1cm4gbnVsbD09emU/VnQ6dGhpcy5hZGQoNyoo''@;'; + put 'put ''emUtVnQpLCJkIil9LGEwLndlZWtzSW5ZZWFyPWZ1bmN0aW9uIEl1KCl7dmFyIHplPXRoaXMubG9jYWxlRGF0YSgpLl93ZWVrO3JldHVybiBfaSh0aGlzLnllYXIoKSx6ZS5kb3csemUuZG95KX0sYTAud2Vla3NJbldlZWtZZWFyPWZ1bmN0aW9uIEFyKCl7dmFyIHplPXRoaXMubG9jYWxlRGF0''@;'; + put 'put ''YSgpLl93ZWVrO3JldHVybiBfaSh0aGlzLndlZWtZZWFyKCksemUuZG93LHplLmRveSl9LGEwLmlzb1dlZWtzSW5ZZWFyPWZ1bmN0aW9uIHpmKCl7cmV0dXJuIF9pKHRoaXMueWVhcigpLDEsNCl9LGEwLmlzb1dlZWtzSW5JU09XZWVrWWVhcj1mdW5jdGlvbiBGMigpe3JldHVybiBfaSh0aGlz''@;'; + put 'put ''Lmlzb1dlZWtZZWFyKCksMSw0KX0sYTAuZGF0ZT13MixhMC5kYXk9YTAuZGF5cz1mdW5jdGlvbiBzMSh6ZSl7aWYoIXRoaXMuaXNWYWxpZCgpKXJldHVybiBudWxsIT16ZT90aGlzOk5hTjt2YXIgVnQ9dGhpcy5faXNVVEM/dGhpcy5fZC5nZXRVVENEYXkoKTp0aGlzLl9kLmdldERheSgpO3Jl''@;'; + put 'put ''dHVybiBudWxsIT16ZT8oemU9ZnVuY3Rpb24gajAoemUsVnQpe3JldHVybiJzdHJpbmciIT10eXBlb2YgemU/emU6aXNOYU4oemUpPyJudW1iZXIiPT10eXBlb2YoemU9VnQud2Vla2RheXNQYXJzZSh6ZSkpP3plOm51bGw6cGFyc2VJbnQoemUsMTApfSh6ZSx0aGlzLmxvY2FsZURhdGEoKSks''@;'; + put 'put ''dGhpcy5hZGQoemUtVnQsImQiKSk6VnR9LGEwLndlZWtkYXk9ZnVuY3Rpb24gWjAoemUpe2lmKCF0aGlzLmlzVmFsaWQoKSlyZXR1cm4gbnVsbCE9emU/dGhpczpOYU47dmFyIFZ0PSh0aGlzLmRheSgpKzctdGhpcy5sb2NhbGVEYXRhKCkuX3dlZWsuZG93KSU3O3JldHVybiBudWxsPT16ZT9W''@;'; + put 'put ''dDp0aGlzLmFkZCh6ZS1WdCwiZCIpfSxhMC5pc29XZWVrZGF5PWZ1bmN0aW9uIGZpKHplKXtpZighdGhpcy5pc1ZhbGlkKCkpcmV0dXJuIG51bGwhPXplP3RoaXM6TmFOO2lmKG51bGwhPXplKXt2YXIgVnQ9ZnVuY3Rpb24gQmwoemUsVnQpe3JldHVybiJzdHJpbmciPT10eXBlb2YgemU/VnQu''@;'; + put 'put ''d2Vla2RheXNQYXJzZSh6ZSklN3x8Nzppc05hTih6ZSk/bnVsbDp6ZX0oemUsdGhpcy5sb2NhbGVEYXRhKCkpO3JldHVybiB0aGlzLmRheSh0aGlzLmRheSgpJTc/VnQ6VnQtNyl9cmV0dXJuIHRoaXMuZGF5KCl8fDd9LGEwLmRheU9mWWVhcj1mdW5jdGlvbiBlbSh6ZSl7dmFyIFZ0PU1hdGgu''@;'; + put 'put ''cm91bmQoKHRoaXMuY2xvbmUoKS5zdGFydE9mKCJkYXkiKS10aGlzLmNsb25lKCkuc3RhcnRPZigieWVhciIpKS84NjRlNSkrMTtyZXR1cm4gbnVsbD09emU/VnQ6dGhpcy5hZGQoemUtVnQsImQiKX0sYTAuaG91cj1hMC5ob3Vycz1OYyxhMC5taW51dGU9YTAubWludXRlcz13ZCxhMC5zZWNv''@;'; + put 'put ''bmQ9YTAuc2Vjb25kcz1LcCxhMC5taWxsaXNlY29uZD1hMC5taWxsaXNlY29uZHM9STgsYTAudXRjT2Zmc2V0PWZ1bmN0aW9uIEdwKHplLFZ0LGhuKXt2YXIgdHIsUm49dGhpcy5fb2Zmc2V0fHwwO2lmKCF0aGlzLmlzVmFsaWQoKSlyZXR1cm4gbnVsbCE9emU/dGhpczpOYU47aWYobnVsbCE9''@;'; + put 'put ''emUpe2lmKCJzdHJpbmciPT10eXBlb2YgemUpe2lmKG51bGw9PT0oemU9bDkoTnQsemUpKSlyZXR1cm4gdGhpc31lbHNlIE1hdGguYWJzKHplKTwxNiYmIWhuJiYoemUqPTYwKTtyZXR1cm4hdGhpcy5faXNVVEMmJlZ0JiYodHI9d2godGhpcykpLHRoaXMuX29mZnNldD16ZSx0aGlzLl9pc1VU''@;'; + put 'put ''Qz0hMCxudWxsIT10ciYmdGhpcy5hZGQodHIsIm0iKSxSbiE9PXplJiYoIVZ0fHx0aGlzLl9jaGFuZ2VJblByb2dyZXNzP0U0KHRoaXMsUXMoemUtUm4sIm0iKSwxLCExKTp0aGlzLl9jaGFuZ2VJblByb2dyZXNzfHwodGhpcy5fY2hhbmdlSW5Qcm9ncmVzcz0hMCxCLnVwZGF0ZU9mZnNldCh0''@;'; + put 'put ''aGlzLCEwKSx0aGlzLl9jaGFuZ2VJblByb2dyZXNzPW51bGwpKSx0aGlzfXJldHVybiB0aGlzLl9pc1VUQz9Sbjp3aCh0aGlzKX0sYTAudXRjPWZ1bmN0aW9uIHU5KHplKXtyZXR1cm4gdGhpcy51dGNPZmZzZXQoMCx6ZSl9LGEwLmxvY2FsPWZ1bmN0aW9uIEkyKHplKXtyZXR1cm4gdGhpcy5f''@;'; + put 'put ''aXNVVEMmJih0aGlzLnV0Y09mZnNldCgwLHplKSx0aGlzLl9pc1VUQz0hMSx6ZSYmdGhpcy5zdWJ0cmFjdCh3aCh0aGlzKSwibSIpKSx0aGlzfSxhMC5wYXJzZVpvbmU9ZnVuY3Rpb24gdWYoKXtpZihudWxsIT10aGlzLl90em0pdGhpcy51dGNPZmZzZXQodGhpcy5fdHptLCExLCEwKTtlbHNl''@;'; + put 'put ''IGlmKCJzdHJpbmciPT10eXBlb2YgdGhpcy5faSl7dmFyIHplPWw5KEtuLHRoaXMuX2kpO251bGwhPXplP3RoaXMudXRjT2Zmc2V0KHplKTp0aGlzLnV0Y09mZnNldCgwLCEwKX1yZXR1cm4gdGhpc30sYTAuaGFzQWxpZ25lZEhvdXJPZmZzZXQ9ZnVuY3Rpb24gVWcoemUpe3JldHVybiEhdGhp''@;'; + put 'put ''cy5pc1ZhbGlkKCkmJih6ZT16ZT9Dcyh6ZSkudXRjT2Zmc2V0KCk6MCwodGhpcy51dGNPZmZzZXQoKS16ZSklNjA9PTApfSxhMC5pc0RTVD1mdW5jdGlvbiBqZigpe3JldHVybiB0aGlzLnV0Y09mZnNldCgpPnRoaXMuY2xvbmUoKS5tb250aCgwKS51dGNPZmZzZXQoKXx8dGhpcy51dGNPZmZz''@;'; + put 'put ''ZXQoKT50aGlzLmNsb25lKCkubW9udGgoNSkudXRjT2Zmc2V0KCl9LGEwLmlzTG9jYWw9ZnVuY3Rpb24gRDIoKXtyZXR1cm4hIXRoaXMuaXNWYWxpZCgpJiYhdGhpcy5faXNVVEN9LGEwLmlzVXRjT2Zmc2V0PWZ1bmN0aW9uIGM5KCl7cmV0dXJuISF0aGlzLmlzVmFsaWQoKSYmdGhpcy5faXNV''@;'; + put 'put ''VEN9LGEwLmlzVXRjPW5iLGEwLmlzVVRDPW5iLGEwLnpvbmVBYmJyPWZ1bmN0aW9uIENoKCl7cmV0dXJuIHRoaXMuX2lzVVRDPyJVVEMiOiIifSxhMC56b25lTmFtZT1mdW5jdGlvbiBiZCgpe3JldHVybiB0aGlzLl9pc1VUQz8iQ29vcmRpbmF0ZWQgVW5pdmVyc2FsIFRpbWUiOiIifSxhMC5k''@;'; + put 'put ''YXRlcz1UZSgiZGF0ZXMgYWNjZXNzb3IgaXMgZGVwcmVjYXRlZC4gVXNlIGRhdGUgaW5zdGVhZC4iLHcyKSxhMC5tb250aHM9VGUoIm1vbnRocyBhY2Nlc3NvciBpcyBkZXByZWNhdGVkLiBVc2UgbW9udGggaW5zdGVhZCIsRW8pLGEwLnllYXJzPVRlKCJ5ZWFycyBhY2Nlc3NvciBpcyBkZXBy''@;'; + put 'put ''ZWNhdGVkLiBVc2UgeWVhciBpbnN0ZWFkIixubCksYTAuem9uZT1UZSgibW9tZW50KCkuem9uZSBpcyBkZXByZWNhdGVkLCB1c2UgbW9tZW50KCkudXRjT2Zmc2V0IGluc3RlYWQuIGh0dHA6Ly9tb21lbnRqcy5jb20vZ3VpZGVzLyMvd2FybmluZ3Mvem9uZS8iLGZ1bmN0aW9uIHM5KHplLFZ0''@;'; + put 'put ''KXtyZXR1cm4gbnVsbCE9emU/KCJzdHJpbmciIT10eXBlb2YgemUmJih6ZT0temUpLHRoaXMudXRjT2Zmc2V0KHplLFZ0KSx0aGlzKTotdGhpcy51dGNPZmZzZXQoKX0pLGEwLmlzRFNUU2hpZnRlZD1UZSgiaXNEU1RTaGlmdGVkIGlzIGRlcHJlY2F0ZWQuIFNlZSBodHRwOi8vbW9tZW50anMu''@;'; + put 'put ''Y29tL2d1aWRlcy8jL3dhcm5pbmdzL2RzdC1zaGlmdGVkLyBmb3IgbW9yZSBpbmZvcm1hdGlvbiIsZnVuY3Rpb24gdGIoKXtpZighaWUodGhpcy5faXNEU1RTaGlmdGVkKSlyZXR1cm4gdGhpcy5faXNEU1RTaGlmdGVkO3ZhciBWdCx6ZT17fTtyZXR1cm4gQWUoemUsdGhpcyksKHplPVR1KHpl''@;'; + put 'put ''KSkuX2E/KFZ0PXplLl9pc1VUQz9lZSh6ZS5fYSk6Q3MoemUuX2EpLHRoaXMuX2lzRFNUU2hpZnRlZD10aGlzLmlzVmFsaWQoKSYmZnVuY3Rpb24genAoemUsVnQsaG4pe3ZhciBZaSxSbj1NYXRoLm1pbih6ZS5sZW5ndGgsVnQubGVuZ3RoKSx0cj1NYXRoLmFicyh6ZS5sZW5ndGgtVnQubGVu''@;'; + put 'put ''Z3RoKSxlaT0wO2ZvcihZaT0wO1lpPFJuO1lpKyspKGhuJiZ6ZVtZaV0hPT1WdFtZaV18fCFobiYmUXQoemVbWWldKSE9PVF0KFZ0W1lpXSkpJiZlaSsrO3JldHVybiBlaSt0cn0oemUuX2EsVnQudG9BcnJheSgpKT4wKTp0aGlzLl9pc0RTVFNoaWZ0ZWQ9ITEsdGhpcy5faXNEU1RTaGlmdGVk''@;'; + put 'put ''fSk7dmFyIHRhPXRlLnByb3RvdHlwZTtmdW5jdGlvbiBqMSh6ZSxWdCxobixSbil7dmFyIHRyPXUxKCksZWk9ZWUoKS5zZXQoUm4sVnQpO3JldHVybiB0cltobl0oZWksemUpfWZ1bmN0aW9uIGMxKHplLFZ0LGhuKXtpZihhZSh6ZSkmJihWdD16ZSx6ZT12b2lkIDApLHplPXplfHwiIixudWxs''@;'; + put 'put ''IT1WdClyZXR1cm4gajEoemUsVnQsaG4sIm1vbnRoIik7dmFyIFJuLHRyPVtdO2ZvcihSbj0wO1JuPDEyO1JuKyspdHJbUm5dPWoxKHplLFJuLGhuLCJtb250aCIpO3JldHVybiB0cn1mdW5jdGlvbiBoZih6ZSxWdCxobixSbil7ImJvb2xlYW4iPT10eXBlb2YgemU/KGFlKFZ0KSYmKGhuPVZ0''@;'; + put 'put ''LFZ0PXZvaWQgMCksVnQ9VnR8fCIiKTooaG49VnQ9emUsemU9ITEsYWUoVnQpJiYoaG49VnQsVnQ9dm9pZCAwKSxWdD1WdHx8IiIpO3ZhciBZaSx0cj11MSgpLGVpPXplP3RyLl93ZWVrLmRvdzowLGRhPVtdO2lmKG51bGwhPWhuKXJldHVybiBqMShWdCwoaG4rZWkpJTcsUm4sImRheSIpO2Zv''@;'; + put 'put ''cihZaT0wO1lpPDc7WWkrKylkYVtZaV09ajEoVnQsKFlpK2VpKSU3LFJuLCJkYXkiKTtyZXR1cm4gZGF9dGEuY2FsZW5kYXI9ZnVuY3Rpb24gVih6ZSxWdCxobil7dmFyIFJuPXRoaXMuX2NhbGVuZGFyW3plXXx8dGhpcy5fY2FsZW5kYXIuc2FtZUVsc2U7cmV0dXJuIE8oUm4pP1JuLmNhbGwo''@;'; + put 'put ''VnQsaG4pOlJufSx0YS5sb25nRGF0ZUZvcm1hdD1mdW5jdGlvbiBtdCh6ZSl7dmFyIFZ0PXRoaXMuX2xvbmdEYXRlRm9ybWF0W3plXSxobj10aGlzLl9sb25nRGF0ZUZvcm1hdFt6ZS50b1VwcGVyQ2FzZSgpXTtyZXR1cm4gVnR8fCFobj9WdDoodGhpcy5fbG9uZ0RhdGVGb3JtYXRbemVdPWhu''@;'; + put 'put ''Lm1hdGNoKFMpLm1hcChmdW5jdGlvbihSbil7cmV0dXJuIk1NTU0iPT09Um58fCJNTSI9PT1Sbnx8IkREIj09PVJufHwiZGRkZCI9PT1Sbj9Sbi5zbGljZSgxKTpSbn0pLmpvaW4oIiIpLHRoaXMuX2xvbmdEYXRlRm9ybWF0W3plXSl9LHRhLmludmFsaWREYXRlPWZ1bmN0aW9uIEF0KCl7cmV0''@;'; + put 'put ''dXJuIHRoaXMuX2ludmFsaWREYXRlfSx0YS5vcmRpbmFsPWZ1bmN0aW9uIG9uKHplKXtyZXR1cm4gdGhpcy5fb3JkaW5hbC5yZXBsYWNlKCIlZCIsemUpfSx0YS5wcmVwYXJzZT1Kcyx0YS5wb3N0Zm9ybWF0PUpzLHRhLnJlbGF0aXZlVGltZT1mdW5jdGlvbiB0dCh6ZSxWdCxobixSbil7dmFy''@;'; + put 'put ''IHRyPXRoaXMuX3JlbGF0aXZlVGltZVtobl07cmV0dXJuIE8odHIpP3RyKHplLFZ0LGhuLFJuKTp0ci5yZXBsYWNlKC8lZC9pLHplKX0sdGEucGFzdEZ1dHVyZT1mdW5jdGlvbiBldCh6ZSxWdCl7dmFyIGhuPXRoaXMuX3JlbGF0aXZlVGltZVt6ZT4wPyJmdXR1cmUiOiJwYXN0Il07cmV0dXJu''@;'; + put 'put ''IE8oaG4pP2huKFZ0KTpobi5yZXBsYWNlKC8lcy9pLFZ0KX0sdGEuc2V0PWZ1bmN0aW9uIHooemUpe3ZhciBWdCxobjtmb3IoaG4gaW4gemUpUSh6ZSxobikmJihPKFZ0PXplW2huXSk/dGhpc1tobl09VnQ6dGhpc1siXyIraG5dPVZ0KTt0aGlzLl9jb25maWc9emUsdGhpcy5fZGF5T2ZNb250''@;'; + put 'put ''aE9yZGluYWxQYXJzZUxlbmllbnQ9bmV3IFJlZ0V4cCgodGhpcy5fZGF5T2ZNb250aE9yZGluYWxQYXJzZS5zb3VyY2V8fHRoaXMuX29yZGluYWxQYXJzZS5zb3VyY2UpKyJ8IisvXGR7MSwyfS8uc291cmNlKX0sdGEuZXJhcz1mdW5jdGlvbiBBcyh6ZSxWdCl7dmFyIGhuLFJuLHRyLGVpPXRo''@;'; + put 'put ''aXMuX2VyYXN8fHUxKCJlbiIpLl9lcmFzO2Zvcihobj0wLFJuPWVpLmxlbmd0aDtobjxSbjsrK2huKXN3aXRjaCgic3RyaW5nIj09dHlwZW9mIGVpW2huXS5zaW5jZSYmKHRyPUIoZWlbaG5dLnNpbmNlKS5zdGFydE9mKCJkYXkiKSxlaVtobl0uc2luY2U9dHIudmFsdWVPZigpKSx0eXBlb2Yg''@;'; + put 'put ''ZWlbaG5dLnVudGlsKXtjYXNlInVuZGVmaW5lZCI6ZWlbaG5dLnVudGlsPTEvMDticmVhaztjYXNlInN0cmluZyI6dHI9QihlaVtobl0udW50aWwpLnN0YXJ0T2YoImRheSIpLnZhbHVlT2YoKSxlaVtobl0udW50aWw9dHIudmFsdWVPZigpfXJldHVybiBlaX0sdGEuZXJhc1BhcnNlPWZ1bmN0''@;'; + put 'put ''aW9uIE9NKHplLFZ0LGhuKXt2YXIgUm4sdHIsWWksZGEsemEsZWk9dGhpcy5lcmFzKCk7Zm9yKHplPXplLnRvVXBwZXJDYXNlKCksUm49MCx0cj1laS5sZW5ndGg7Um48dHI7KytSbilpZihZaT1laVtSbl0ubmFtZS50b1VwcGVyQ2FzZSgpLGRhPWVpW1JuXS5hYmJyLnRvVXBwZXJDYXNlKCks''@;'; + put 'put ''emE9ZWlbUm5dLm5hcnJvdy50b1VwcGVyQ2FzZSgpLGhuKXN3aXRjaChWdCl7Y2FzZSJOIjpjYXNlIk5OIjpjYXNlIk5OTiI6aWYoZGE9PT16ZSlyZXR1cm4gZWlbUm5dO2JyZWFrO2Nhc2UiTk5OTiI6aWYoWWk9PT16ZSlyZXR1cm4gZWlbUm5dO2JyZWFrO2Nhc2UiTk5OTk4iOmlmKHphPT09''@;'; + put 'put ''emUpcmV0dXJuIGVpW1JuXX1lbHNlIGlmKFtZaSxkYSx6YV0uaW5kZXhPZih6ZSk+PTApcmV0dXJuIGVpW1JuXX0sdGEuZXJhc0NvbnZlcnRZZWFyPWZ1bmN0aW9uIFJNKHplLFZ0KXt2YXIgaG49emUuc2luY2U8PXplLnVudGlsPzE6LTE7cmV0dXJuIHZvaWQgMD09PVZ0P0IoemUuc2luY2Up''@;'; + put 'put ''LnllYXIoKTpCKHplLnNpbmNlKS55ZWFyKCkrKFZ0LXplLm9mZnNldCkqaG59LHRhLmVyYXNBYmJyUmVnZXg9ZnVuY3Rpb24gZW8oemUpe3JldHVybiBRKHRoaXMsIl9lcmFzQWJiclJlZ2V4Iil8fEpwLmNhbGwodGhpcyksemU/dGhpcy5fZXJhc0FiYnJSZWdleDp0aGlzLl9lcmFzUmVnZXh9''@;'; + put 'put ''LHRhLmVyYXNOYW1lUmVnZXg9ZnVuY3Rpb24gY2YoemUpe3JldHVybiBRKHRoaXMsIl9lcmFzTmFtZVJlZ2V4Iil8fEpwLmNhbGwodGhpcyksemU/dGhpcy5fZXJhc05hbWVSZWdleDp0aGlzLl9lcmFzUmVnZXh9LHRhLmVyYXNOYXJyb3dSZWdleD1mdW5jdGlvbiBEMCh6ZSl7cmV0dXJuIFEo''@;'; + put 'put ''dGhpcywiX2VyYXNOYXJyb3dSZWdleCIpfHxKcC5jYWxsKHRoaXMpLHplP3RoaXMuX2VyYXNOYXJyb3dSZWdleDp0aGlzLl9lcmFzUmVnZXh9LHRhLm1vbnRocz1mdW5jdGlvbiBkMCh6ZSxWdCl7cmV0dXJuIHplP01lKHRoaXMuX21vbnRocyk/dGhpcy5fbW9udGhzW3plLm1vbnRoKCldOnRo''@;'; + put 'put ''aXMuX21vbnRoc1sodGhpcy5fbW9udGhzLmlzRm9ybWF0fHxNaSkudGVzdChWdCk/ImZvcm1hdCI6InN0YW5kYWxvbmUiXVt6ZS5tb250aCgpXTpNZSh0aGlzLl9tb250aHMpP3RoaXMuX21vbnRoczp0aGlzLl9tb250aHMuc3RhbmRhbG9uZX0sdGEubW9udGhzU2hvcnQ9ZnVuY3Rpb24gbTAo''@;'; + put 'put ''emUsVnQpe3JldHVybiB6ZT9NZSh0aGlzLl9tb250aHNTaG9ydCk/dGhpcy5fbW9udGhzU2hvcnRbemUubW9udGgoKV06dGhpcy5fbW9udGhzU2hvcnRbTWkudGVzdChWdCk/ImZvcm1hdCI6InN0YW5kYWxvbmUiXVt6ZS5tb250aCgpXTpNZSh0aGlzLl9tb250aHNTaG9ydCk/dGhpcy5fbW9u''@;'; + put 'put ''dGhzU2hvcnQ6dGhpcy5fbW9udGhzU2hvcnQuc3RhbmRhbG9uZX0sdGEubW9udGhzUGFyc2U9ZnVuY3Rpb24gRGkoemUsVnQsaG4pe3ZhciBSbix0cixlaTtpZih0aGlzLl9tb250aHNQYXJzZUV4YWN0KXJldHVybiBHMC5jYWxsKHRoaXMsemUsVnQsaG4pO2Zvcih0aGlzLl9tb250aHNQYXJz''@;'; + put 'put ''ZXx8KHRoaXMuX21vbnRoc1BhcnNlPVtdLHRoaXMuX2xvbmdNb250aHNQYXJzZT1bXSx0aGlzLl9zaG9ydE1vbnRoc1BhcnNlPVtdKSxSbj0wO1JuPDEyO1JuKyspe2lmKHRyPWVlKFsyZTMsUm5dKSxobiYmIXRoaXMuX2xvbmdNb250aHNQYXJzZVtSbl0mJih0aGlzLl9sb25nTW9udGhzUGFy''@;'; + put 'put ''c2VbUm5dPW5ldyBSZWdFeHAoIl4iK3RoaXMubW9udGhzKHRyLCIiKS5yZXBsYWNlKCIuIiwiIikrIiQiLCJpIiksdGhpcy5fc2hvcnRNb250aHNQYXJzZVtSbl09bmV3IFJlZ0V4cCgiXiIrdGhpcy5tb250aHNTaG9ydCh0ciwiIikucmVwbGFjZSgiLiIsIiIpKyIkIiwiaSIpKSwhaG4mJiF0''@;'; + put 'put ''aGlzLl9tb250aHNQYXJzZVtSbl0mJihlaT0iXiIrdGhpcy5tb250aHModHIsIiIpKyJ8XiIrdGhpcy5tb250aHNTaG9ydCh0ciwiIiksdGhpcy5fbW9udGhzUGFyc2VbUm5dPW5ldyBSZWdFeHAoZWkucmVwbGFjZSgiLiIsIiIpLCJpIikpLGhuJiYiTU1NTSI9PT1WdCYmdGhpcy5fbG9uZ01v''@;'; + put 'put ''bnRoc1BhcnNlW1JuXS50ZXN0KHplKSlyZXR1cm4gUm47aWYoaG4mJiJNTU0iPT09VnQmJnRoaXMuX3Nob3J0TW9udGhzUGFyc2VbUm5dLnRlc3QoemUpKXJldHVybiBSbjtpZighaG4mJnRoaXMuX21vbnRoc1BhcnNlW1JuXS50ZXN0KHplKSlyZXR1cm4gUm59fSx0YS5tb250aHNSZWdleD1m''@;'; + put 'put ''dW5jdGlvbiBsbCh6ZSl7cmV0dXJuIHRoaXMuX21vbnRoc1BhcnNlRXhhY3Q/KFEodGhpcywiX21vbnRoc1JlZ2V4Iil8fFFpLmNhbGwodGhpcyksemU/dGhpcy5fbW9udGhzU3RyaWN0UmVnZXg6dGhpcy5fbW9udGhzUmVnZXgpOihRKHRoaXMsIl9tb250aHNSZWdleCIpfHwodGhpcy5fbW9u''@;'; + put 'put ''dGhzUmVnZXg9bjApLHRoaXMuX21vbnRoc1N0cmljdFJlZ2V4JiZ6ZT90aGlzLl9tb250aHNTdHJpY3RSZWdleDp0aGlzLl9tb250aHNSZWdleCl9LHRhLm1vbnRoc1Nob3J0UmVnZXg9ZnVuY3Rpb24gY2EoemUpe3JldHVybiB0aGlzLl9tb250aHNQYXJzZUV4YWN0PyhRKHRoaXMsIl9tb250''@;'; + put 'put ''aHNSZWdleCIpfHxRaS5jYWxsKHRoaXMpLHplP3RoaXMuX21vbnRoc1Nob3J0U3RyaWN0UmVnZXg6dGhpcy5fbW9udGhzU2hvcnRSZWdleCk6KFEodGhpcywiX21vbnRoc1Nob3J0UmVnZXgiKXx8KHRoaXMuX21vbnRoc1Nob3J0UmVnZXg9bzApLHRoaXMuX21vbnRoc1Nob3J0U3RyaWN0UmVn''@;'; + put 'put ''ZXgmJnplP3RoaXMuX21vbnRoc1Nob3J0U3RyaWN0UmVnZXg6dGhpcy5fbW9udGhzU2hvcnRSZWdleCl9LHRhLndlZWs9ZnVuY3Rpb24gb3UoemUpe3JldHVybiBybCh6ZSx0aGlzLl93ZWVrLmRvdyx0aGlzLl93ZWVrLmRveSkud2Vla30sdGEuZmlyc3REYXlPZlllYXI9ZnVuY3Rpb24gUnMo''@;'; + put 'put ''KXtyZXR1cm4gdGhpcy5fd2Vlay5kb3l9LHRhLmZpcnN0RGF5T2ZXZWVrPWZ1bmN0aW9uIFUwKCl7cmV0dXJuIHRoaXMuX3dlZWsuZG93fSx0YS53ZWVrZGF5cz1mdW5jdGlvbiBtYyh6ZSxWdCl7dmFyIGhuPU1lKHRoaXMuX3dlZWtkYXlzKT90aGlzLl93ZWVrZGF5czp0aGlzLl93ZWVrZGF5''@;'; + put 'put ''c1t6ZSYmITAhPT16ZSYmdGhpcy5fd2Vla2RheXMuaXNGb3JtYXQudGVzdChWdCk/ImZvcm1hdCI6InN0YW5kYWxvbmUiXTtyZXR1cm4hMD09PXplP3ZuKGhuLHRoaXMuX3dlZWsuZG93KTp6ZT9oblt6ZS5kYXkoKV06aG59LHRhLndlZWtkYXlzTWluPWZ1bmN0aW9uIFBsKHplKXtyZXR1cm4h''@;'; + put 'put ''MD09PXplP3ZuKHRoaXMuX3dlZWtkYXlzTWluLHRoaXMuX3dlZWsuZG93KTp6ZT90aGlzLl93ZWVrZGF5c01pblt6ZS5kYXkoKV06dGhpcy5fd2Vla2RheXNNaW59LHRhLndlZWtkYXlzU2hvcnQ9ZnVuY3Rpb24geDIoemUpe3JldHVybiEwPT09emU/dm4odGhpcy5fd2Vla2RheXNTaG9ydCx0''@;'; + put 'put ''aGlzLl93ZWVrLmRvdyk6emU/dGhpcy5fd2Vla2RheXNTaG9ydFt6ZS5kYXkoKV06dGhpcy5fd2Vla2RheXNTaG9ydH0sdGEud2Vla2RheXNQYXJzZT1mdW5jdGlvbiBRMih6ZSxWdCxobil7dmFyIFJuLHRyLGVpO2lmKHRoaXMuX3dlZWtkYXlzUGFyc2VFeGFjdClyZXR1cm4gZDMuY2FsbCh0''@;'; + put 'put ''aGlzLHplLFZ0LGhuKTtmb3IodGhpcy5fd2Vla2RheXNQYXJzZXx8KHRoaXMuX3dlZWtkYXlzUGFyc2U9W10sdGhpcy5fbWluV2Vla2RheXNQYXJzZT1bXSx0aGlzLl9zaG9ydFdlZWtkYXlzUGFyc2U9W10sdGhpcy5fZnVsbFdlZWtkYXlzUGFyc2U9W10pLFJuPTA7Um48NztSbisrKXtpZih0''@;'; + put 'put ''cj1lZShbMmUzLDFdKS5kYXkoUm4pLGhuJiYhdGhpcy5fZnVsbFdlZWtkYXlzUGFyc2VbUm5dJiYodGhpcy5fZnVsbFdlZWtkYXlzUGFyc2VbUm5dPW5ldyBSZWdFeHAoIl4iK3RoaXMud2Vla2RheXModHIsIiIpLnJlcGxhY2UoIi4iLCJcXC4/IikrIiQiLCJpIiksdGhpcy5fc2hvcnRXZWVr''@;'; + put 'put ''ZGF5c1BhcnNlW1JuXT1uZXcgUmVnRXhwKCJeIit0aGlzLndlZWtkYXlzU2hvcnQodHIsIiIpLnJlcGxhY2UoIi4iLCJcXC4/IikrIiQiLCJpIiksdGhpcy5fbWluV2Vla2RheXNQYXJzZVtSbl09bmV3IFJlZ0V4cCgiXiIrdGhpcy53ZWVrZGF5c01pbih0ciwiIikucmVwbGFjZSgiLiIsIlxc''@;'; + put 'put ''Lj8iKSsiJCIsImkiKSksdGhpcy5fd2Vla2RheXNQYXJzZVtSbl18fChlaT0iXiIrdGhpcy53ZWVrZGF5cyh0ciwiIikrInxeIit0aGlzLndlZWtkYXlzU2hvcnQodHIsIiIpKyJ8XiIrdGhpcy53ZWVrZGF5c01pbih0ciwiIiksdGhpcy5fd2Vla2RheXNQYXJzZVtSbl09bmV3IFJlZ0V4cChl''@;'; + put 'put ''aS5yZXBsYWNlKCIuIiwiIiksImkiKSksaG4mJiJkZGRkIj09PVZ0JiZ0aGlzLl9mdWxsV2Vla2RheXNQYXJzZVtSbl0udGVzdCh6ZSkpcmV0dXJuIFJuO2lmKGhuJiYiZGRkIj09PVZ0JiZ0aGlzLl9zaG9ydFdlZWtkYXlzUGFyc2VbUm5dLnRlc3QoemUpKXJldHVybiBSbjtpZihobiYmImRk''@;'; + put 'put ''Ij09PVZ0JiZ0aGlzLl9taW5XZWVrZGF5c1BhcnNlW1JuXS50ZXN0KHplKSlyZXR1cm4gUm47aWYoIWhuJiZ0aGlzLl93ZWVrZGF5c1BhcnNlW1JuXS50ZXN0KHplKSlyZXR1cm4gUm59fSx0YS53ZWVrZGF5c1JlZ2V4PWZ1bmN0aW9uIFIwKHplKXtyZXR1cm4gdGhpcy5fd2Vla2RheXNQYXJz''@;'; + put 'put ''ZUV4YWN0PyhRKHRoaXMsIl93ZWVrZGF5c1JlZ2V4Iil8fGhzLmNhbGwodGhpcyksemU/dGhpcy5fd2Vla2RheXNTdHJpY3RSZWdleDp0aGlzLl93ZWVrZGF5c1JlZ2V4KTooUSh0aGlzLCJfd2Vla2RheXNSZWdleCIpfHwodGhpcy5fd2Vla2RheXNSZWdleD1CMSksdGhpcy5fd2Vla2RheXNT''@;'; + put 'put ''dHJpY3RSZWdleCYmemU/dGhpcy5fd2Vla2RheXNTdHJpY3RSZWdleDp0aGlzLl93ZWVrZGF5c1JlZ2V4KX0sdGEud2Vla2RheXNTaG9ydFJlZ2V4PWZ1bmN0aW9uIG1vKHplKXtyZXR1cm4gdGhpcy5fd2Vla2RheXNQYXJzZUV4YWN0PyhRKHRoaXMsIl93ZWVrZGF5c1JlZ2V4Iil8fGhzLmNh''@;'; + put 'put ''bGwodGhpcyksemU/dGhpcy5fd2Vla2RheXNTaG9ydFN0cmljdFJlZ2V4OnRoaXMuX3dlZWtkYXlzU2hvcnRSZWdleCk6KFEodGhpcywiX3dlZWtkYXlzU2hvcnRSZWdleCIpfHwodGhpcy5fd2Vla2RheXNTaG9ydFJlZ2V4PWF1KSx0aGlzLl93ZWVrZGF5c1Nob3J0U3RyaWN0UmVnZXgmJnpl''@;'; + put 'put ''P3RoaXMuX3dlZWtkYXlzU2hvcnRTdHJpY3RSZWdleDp0aGlzLl93ZWVrZGF5c1Nob3J0UmVnZXgpfSx0YS53ZWVrZGF5c01pblJlZ2V4PWZ1bmN0aW9uIHJzKHplKXtyZXR1cm4gdGhpcy5fd2Vla2RheXNQYXJzZUV4YWN0PyhRKHRoaXMsIl93ZWVrZGF5c1JlZ2V4Iil8fGhzLmNhbGwodGhp''@;'; + put 'put ''cyksemU/dGhpcy5fd2Vla2RheXNNaW5TdHJpY3RSZWdleDp0aGlzLl93ZWVrZGF5c01pblJlZ2V4KTooUSh0aGlzLCJfd2Vla2RheXNNaW5SZWdleCIpfHwodGhpcy5fd2Vla2RheXNNaW5SZWdleD1QMSksdGhpcy5fd2Vla2RheXNNaW5TdHJpY3RSZWdleCYmemU/dGhpcy5fd2Vla2RheXNN''@;'; + put 'put ''aW5TdHJpY3RSZWdleDp0aGlzLl93ZWVrZGF5c01pblJlZ2V4KX0sdGEuaXNQTT1mdW5jdGlvbiBOZih6ZSl7cmV0dXJuInAiPT09KHplKyIiKS50b0xvd2VyQ2FzZSgpLmNoYXJBdCgwKX0sdGEubWVyaWRpZW09ZnVuY3Rpb24gY28oemUsVnQsaG4pe3JldHVybiB6ZT4xMT9obj8icG0iOiJQ''@;'; + put 'put ''TSI6aG4/ImFtIjoiQU0ifSxIMSgiZW4iLHtlcmFzOlt7c2luY2U6IjAwMDEtMDEtMDEiLHVudGlsOjEvMCxvZmZzZXQ6MSxuYW1lOiJBbm5vIERvbWluaSIsbmFycm93OiJBRCIsYWJicjoiQUQifSx7c2luY2U6IjAwMDAtMTItMzEiLHVudGlsOi0xLzAsb2Zmc2V0OjEsbmFtZToiQmVmb3Jl''@;'; + put 'put ''IENocmlzdCIsbmFycm93OiJCQyIsYWJicjoiQkMifV0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfSh0aHxzdHxuZHxyZCkvLG9yZGluYWw6ZnVuY3Rpb24oemUpe3ZhciBWdD16ZSUxMDtyZXR1cm4gemUrKDE9PT1RdCh6ZSUxMDAvMTApPyJ0aCI6MT09PVZ0PyJzdCI6Mj09PVZ0''@;'; + put 'put ''PyJuZCI6Mz09PVZ0PyJyZCI6InRoIil9fSksQi5sYW5nPVRlKCJtb21lbnQubGFuZyBpcyBkZXByZWNhdGVkLiBVc2UgbW9tZW50LmxvY2FsZSBpbnN0ZWFkLiIsSDEpLEIubGFuZ0RhdGE9VGUoIm1vbWVudC5sYW5nRGF0YSBpcyBkZXByZWNhdGVkLiBVc2UgbW9tZW50LmxvY2FsZURhdGEg''@;'; + put 'put ''aW5zdGVhZC4iLHUxKTt2YXIgR2M9TWF0aC5hYnM7ZnVuY3Rpb24geDQoemUsVnQsaG4sUm4pe3ZhciB0cj1RcyhWdCxobik7cmV0dXJuIHplLl9taWxsaXNlY29uZHMrPVJuKnRyLl9taWxsaXNlY29uZHMsemUuX2RheXMrPVJuKnRyLl9kYXlzLHplLl9tb250aHMrPVJuKnRyLl9tb250aHMs''@;'; + put 'put ''emUuX2J1YmJsZSgpfWZ1bmN0aW9uIEw4KHplKXtyZXR1cm4gemU8MD9NYXRoLmZsb29yKHplKTpNYXRoLmNlaWwoemUpfWZ1bmN0aW9uICRwKHplKXtyZXR1cm4gNDgwMCp6ZS8xNDYwOTd9ZnVuY3Rpb24gTzgoemUpe3JldHVybiAxNDYwOTcqemUvNDgwMH1mdW5jdGlvbiBraCh6ZSl7cmV0''@;'; + put 'put ''dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYXMoemUpfX12YXIgZTY9a2goIm1zIiksdDY9a2goInMiKSxSOD1raCgibSIpLEFjPWtoKCJoIiksR2Y9a2goImQiKSxzYj1raCgidyIpLF9kPWtoKCJNIiksbTk9a2goIlEiKSx0bT1raCgieSIpO2Z1bmN0aW9uIEp1KHplKXtyZXR1cm4gZnVu''@;'; + put 'put ''Y3Rpb24oKXtyZXR1cm4gdGhpcy5pc1ZhbGlkKCk/dGhpcy5fZGF0YVt6ZV06TmFOfX12YXIgVDQ9SnUoIm1pbGxpc2Vjb25kcyIpLHI2PUp1KCJzZWNvbmRzIiksdWI9SnUoIm1pbnV0ZXMiKSx2OT1KdSgiaG91cnMiKSxJND1KdSgiZGF5cyIpLEhNPUp1KCJtb250aHMiKSxmbD1KdSgieWVh''@;'; + put 'put ''cnMiKTt2YXIgWHU9TWF0aC5yb3VuZCxEdT17c3M6NDQsczo0NSxtOjQ1LGg6MjIsZDoyNix3Om51bGwsTToxMX07ZnVuY3Rpb24gZzMoemUsVnQsaG4sUm4sdHIpe3JldHVybiB0ci5yZWxhdGl2ZVRpbWUoVnR8fDEsISFobix6ZSxSbil9dmFyIFA4PU1hdGguYWJzO2Z1bmN0aW9uIFdmKHpl''@;'; + put 'put ''KXtyZXR1cm4oemU+MCktKHplPDApfHwremV9ZnVuY3Rpb24gQTkoKXtpZighdGhpcy5pc1ZhbGlkKCkpcmV0dXJuIHRoaXMubG9jYWxlRGF0YSgpLmludmFsaWREYXRlKCk7dmFyIFJuLHRyLGVpLFlpLHphLFBzLEt1LEZzLHplPVA4KHRoaXMuX21pbGxpc2Vjb25kcykvMWUzLFZ0PVA4KHRo''@;'; + put 'put ''aXMuX2RheXMpLGhuPVA4KHRoaXMuX21vbnRocyksZGE9dGhpcy5hc1NlY29uZHMoKTtyZXR1cm4gZGE/KFJuPWp0KHplLzYwKSx0cj1qdChSbi82MCksemUlPTYwLFJuJT02MCxlaT1qdChobi8xMiksaG4lPTEyLFlpPXplP3plLnRvRml4ZWQoMykucmVwbGFjZSgvXC4/MCskLywiIik6IiIs''@;'; + put 'put ''emE9ZGE8MD8iLSI6IiIsUHM9V2YodGhpcy5fbW9udGhzKSE9PVdmKGRhKT8iLSI6IiIsS3U9V2YodGhpcy5fZGF5cykhPT1XZihkYSk/Ii0iOiIiLEZzPVdmKHRoaXMuX21pbGxpc2Vjb25kcykhPT1XZihkYSk/Ii0iOiIiLHphKyJQIisoZWk/UHMrZWkrIlkiOiIiKSsoaG4/UHMraG4rIk0i''@;'; + put 'put ''OiIiKSsoVnQ/S3UrVnQrIkQiOiIiKSsodHJ8fFJufHx6ZT8iVCI6IiIpKyh0cj9Gcyt0cisiSCI6IiIpKyhSbj9GcytSbisiTSI6IiIpKyh6ZT9GcytZaSsiUyI6IiIpKToiUDBEIn12YXIgYmw9WnAucHJvdG90eXBlO3JldHVybiBibC5pc1ZhbGlkPWZ1bmN0aW9uIEVNKCl7cmV0dXJuIHRo''@;'; + put 'put ''aXMuX2lzVmFsaWR9LGJsLmFicz1mdW5jdGlvbiBjdSgpe3ZhciB6ZT10aGlzLl9kYXRhO3JldHVybiB0aGlzLl9taWxsaXNlY29uZHM9R2ModGhpcy5fbWlsbGlzZWNvbmRzKSx0aGlzLl9kYXlzPUdjKHRoaXMuX2RheXMpLHRoaXMuX21vbnRocz1HYyh0aGlzLl9tb250aHMpLHplLm1pbGxp''@;'; + put 'put ''c2Vjb25kcz1HYyh6ZS5taWxsaXNlY29uZHMpLHplLnNlY29uZHM9R2MoemUuc2Vjb25kcyksemUubWludXRlcz1HYyh6ZS5taW51dGVzKSx6ZS5ob3Vycz1HYyh6ZS5ob3VycyksemUubW9udGhzPUdjKHplLm1vbnRocyksemUueWVhcnM9R2MoemUueWVhcnMpLHRoaXN9LGJsLmFkZD1mdW5j''@;'; + put 'put ''dGlvbiBkZih6ZSxWdCl7cmV0dXJuIHg0KHRoaXMsemUsVnQsMSl9LGJsLnN1YnRyYWN0PWZ1bmN0aW9uIFByKHplLFZ0KXtyZXR1cm4geDQodGhpcyx6ZSxWdCwtMSl9LGJsLmFzPWZ1bmN0aW9uIHFwKHplKXtpZighdGhpcy5pc1ZhbGlkKCkpcmV0dXJuIE5hTjt2YXIgVnQsaG4sUm49dGhp''@;'; + put 'put ''cy5fbWlsbGlzZWNvbmRzO2lmKCJtb250aCI9PT0oemU9Q3QoemUpKXx8InF1YXJ0ZXIiPT09emV8fCJ5ZWFyIj09PXplKXN3aXRjaChWdD10aGlzLl9kYXlzK1JuLzg2NGU1LGhuPXRoaXMuX21vbnRocyskcChWdCksemUpe2Nhc2UibW9udGgiOnJldHVybiBobjtjYXNlInF1YXJ0ZXIiOnJl''@;'; + put 'put ''dHVybiBobi8zO2Nhc2UieWVhciI6cmV0dXJuIGhuLzEyfWVsc2Ugc3dpdGNoKFZ0PXRoaXMuX2RheXMrTWF0aC5yb3VuZChPOCh0aGlzLl9tb250aHMpKSx6ZSl7Y2FzZSJ3ZWVrIjpyZXR1cm4gVnQvNytSbi82MDQ4ZTU7Y2FzZSJkYXkiOnJldHVybiBWdCtSbi84NjRlNTtjYXNlImhvdXIi''@;'; + put 'put ''OnJldHVybiAyNCpWdCtSbi8zNmU1O2Nhc2UibWludXRlIjpyZXR1cm4gMTQ0MCpWdCtSbi82ZTQ7Y2FzZSJzZWNvbmQiOnJldHVybiA4NjQwMCpWdCtSbi8xZTM7Y2FzZSJtaWxsaXNlY29uZCI6cmV0dXJuIE1hdGguZmxvb3IoODY0ZTUqVnQpK1JuO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9y''@;'; + put 'put ''KCJVbmtub3duIHVuaXQgIit6ZSl9fSxibC5hc01pbGxpc2Vjb25kcz1lNixibC5hc1NlY29uZHM9dDYsYmwuYXNNaW51dGVzPVI4LGJsLmFzSG91cnM9QWMsYmwuYXNEYXlzPUdmLGJsLmFzV2Vla3M9c2IsYmwuYXNNb250aHM9X2QsYmwuYXNRdWFydGVycz1tOSxibC5hc1llYXJzPXRtLGJs''@;'; + put 'put ''LnZhbHVlT2Y9ZnVuY3Rpb24gcGYoKXtyZXR1cm4gdGhpcy5pc1ZhbGlkKCk/dGhpcy5fbWlsbGlzZWNvbmRzKzg2NGU1KnRoaXMuX2RheXMrdGhpcy5fbW9udGhzJTEyKjI1OTJlNiszMTUzNmU2KlF0KHRoaXMuX21vbnRocy8xMik6TmFOfSxibC5fYnViYmxlPWZ1bmN0aW9uIEZNKCl7dmFy''@;'; + put 'put ''IHRyLGVpLFlpLGRhLHphLHplPXRoaXMuX21pbGxpc2Vjb25kcyxWdD10aGlzLl9kYXlzLGhuPXRoaXMuX21vbnRocyxSbj10aGlzLl9kYXRhO3JldHVybiB6ZT49MCYmVnQ+PTAmJmhuPj0wfHx6ZTw9MCYmVnQ8PTAmJmhuPD0wfHwoemUrPTg2NGU1Kkw4KE84KGhuKStWdCksVnQ9MCxobj0w''@;'; + put 'put ''KSxSbi5taWxsaXNlY29uZHM9emUlMWUzLHRyPWp0KHplLzFlMyksUm4uc2Vjb25kcz10ciU2MCxlaT1qdCh0ci82MCksUm4ubWludXRlcz1laSU2MCxZaT1qdChlaS82MCksUm4uaG91cnM9WWklMjQsVnQrPWp0KFlpLzI0KSxobis9emE9anQoJHAoVnQpKSxWdC09TDgoTzgoemEpKSxkYT1q''@;'; + put 'put ''dChobi8xMiksaG4lPTEyLFJuLmRheXM9VnQsUm4ubW9udGhzPWhuLFJuLnllYXJzPWRhLHRoaXN9LGJsLmNsb25lPWZ1bmN0aW9uIEI4KCl7cmV0dXJuIFFzKHRoaXMpfSxibC5nZXQ9ZnVuY3Rpb24gbjYoemUpe3JldHVybiB6ZT1DdCh6ZSksdGhpcy5pc1ZhbGlkKCk/dGhpc1t6ZSsicyJd''@;'; + put 'put ''KCk6TmFOfSxibC5taWxsaXNlY29uZHM9VDQsYmwuc2Vjb25kcz1yNixibC5taW51dGVzPXViLGJsLmhvdXJzPXY5LGJsLmRheXM9STQsYmwud2Vla3M9ZnVuY3Rpb24gbm0oKXtyZXR1cm4ganQodGhpcy5kYXlzKCkvNyl9LGJsLm1vbnRocz1ITSxibC55ZWFycz1mbCxibC5odW1hbml6ZT1m''@;'; + put 'put ''dW5jdGlvbiBjYih6ZSxWdCl7aWYoIXRoaXMuaXNWYWxpZCgpKXJldHVybiB0aGlzLmxvY2FsZURhdGEoKS5pbnZhbGlkRGF0ZSgpO3ZhciB0cixlaSxobj0hMSxSbj1EdTtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIHplJiYoVnQ9emUsemU9ITEpLCJib29sZWFuIj09dHlwZW9mIHplJiYoaG49''@;'; + put 'put ''emUpLCJvYmplY3QiPT10eXBlb2YgVnQmJihSbj1PYmplY3QuYXNzaWduKHt9LER1LFZ0KSxudWxsIT1WdC5zJiZudWxsPT1WdC5zcyYmKFJuLnNzPVZ0LnMtMSkpLGVpPWZ1bmN0aW9uIGk2KHplLFZ0LGhuLFJuKXt2YXIgdHI9UXMoemUpLmFicygpLGVpPVh1KHRyLmFzKCJzIikpLFlpPVh1''@;'; + put 'put ''KHRyLmFzKCJtIikpLGRhPVh1KHRyLmFzKCJoIikpLHphPVh1KHRyLmFzKCJkIikpLFBzPVh1KHRyLmFzKCJNIikpLEt1PVh1KHRyLmFzKCJ3IikpLEZzPVh1KHRyLmFzKCJ5IikpLFdjPWVpPD1obi5zcyYmWyJzIixlaV18fGVpPGhuLnMmJlsic3MiLGVpXXx8WWk8PTEmJlsibSJdfHxZaTxo''@;'; + put 'put ''bi5tJiZbIm1tIixZaV18fGRhPD0xJiZbImgiXXx8ZGE8aG4uaCYmWyJoaCIsZGFdfHx6YTw9MSYmWyJkIl18fHphPGhuLmQmJlsiZGQiLHphXTtyZXR1cm4gbnVsbCE9aG4udyYmKFdjPVdjfHxLdTw9MSYmWyJ3Il18fEt1PGhuLncmJlsid3ciLEt1XSksKFdjPVdjfHxQczw9MSYmWyJNIl18''@;'; + put 'put ''fFBzPGhuLk0mJlsiTU0iLFBzXXx8RnM8PTEmJlsieSJdfHxbInl5IixGc10pWzJdPVZ0LFdjWzNdPSt6ZT4wLFdjWzRdPVJuLGczLmFwcGx5KG51bGwsV2MpfSh0aGlzLCFobixSbix0cj10aGlzLmxvY2FsZURhdGEoKSksaG4mJihlaT10ci5wYXN0RnV0dXJlKCt0aGlzLGVpKSksdHIucG9z''@;'; + put 'put ''dGZvcm1hdChlaSl9LGJsLnRvSVNPU3RyaW5nPUE5LGJsLnRvU3RyaW5nPUE5LGJsLnRvSlNPTj1BOSxibC5sb2NhbGU9cHQsYmwubG9jYWxlRGF0YT1QdCxibC50b0lzb1N0cmluZz1UZSgidG9Jc29TdHJpbmcoKSBpcyBkZXByZWNhdGVkLiBQbGVhc2UgdXNlIHRvSVNPU3RyaW5nKCkgaW5z''@;'; + put 'put ''dGVhZCAobm90aWNlIHRoZSBjYXBpdGFscykiLEE5KSxibC5sYW5nPUl0LERlKCJYIiwwLDAsInVuaXgiKSxEZSgieCIsMCwwLCJ2YWx1ZU9mIiksdG4oIngiLHBuKSx0bigiWCIsL1srLV0/XGQrKFwuXGR7MSwzfSk/LyksbW4oIlgiLGZ1bmN0aW9uKHplLFZ0LGhuKXtobi5fZD1uZXcgRGF0''@;'; + put 'put ''ZSgxZTMqcGFyc2VGbG9hdCh6ZSkpfSksbW4oIngiLGZ1bmN0aW9uKHplLFZ0LGhuKXtobi5fZD1uZXcgRGF0ZShRdCh6ZSkpfSksQi52ZXJzaW9uPSIyLjI5LjQiLGZ1bmN0aW9uIEUoemUpe21lPXplfShDcyksQi5mbj1hMCxCLm1pbj1mdW5jdGlvbiB2aCgpe3JldHVybiBxdygiaXNCZWZv''@;'; + put 'put ''cmUiLFtdLnNsaWNlLmNhbGwoYXJndW1lbnRzLDApKX0sQi5tYXg9ZnVuY3Rpb24gUzQoKXtyZXR1cm4gcXcoImlzQWZ0ZXIiLFtdLnNsaWNlLmNhbGwoYXJndW1lbnRzLDApKX0sQi5ub3c9ZnVuY3Rpb24oKXtyZXR1cm4gRGF0ZS5ub3c/RGF0ZS5ub3coKTorbmV3IERhdGV9LEIudXRjPWVl''@;'; + put 'put ''LEIudW5peD1mdW5jdGlvbiBGbCh6ZSl7cmV0dXJuIENzKDFlMyp6ZSl9LEIubW9udGhzPWZ1bmN0aW9uIFpjKHplLFZ0KXtyZXR1cm4gYzEoemUsVnQsIm1vbnRocyIpfSxCLmlzRGF0ZT1ZLEIubG9jYWxlPUgxLEIuaW52YWxpZD1jZSxCLmR1cmF0aW9uPVFzLEIuaXNNb21lbnQ9U2UsQi53''@;'; + put 'put ''ZWVrZGF5cz1mdW5jdGlvbiBaMSh6ZSxWdCxobil7cmV0dXJuIGhmKHplLFZ0LGhuLCJ3ZWVrZGF5cyIpfSxCLnBhcnNlWm9uZT1mdW5jdGlvbiBEOCgpe3JldHVybiBDcy5hcHBseShudWxsLGFyZ3VtZW50cykucGFyc2Vab25lKCl9LEIubG9jYWxlRGF0YT11MSxCLmlzRHVyYXRpb249YTks''@;'; + put 'put ''Qi5tb250aHNTaG9ydD1mdW5jdGlvbiBzcyh6ZSxWdCl7cmV0dXJuIGMxKHplLFZ0LCJtb250aHNTaG9ydCIpfSxCLndlZWtkYXlzTWluPWZ1bmN0aW9uIGxiKHplLFZ0LGhuKXtyZXR1cm4gaGYoemUsVnQsaG4sIndlZWtkYXlzTWluIil9LEIuZGVmaW5lTG9jYWxlPUoyLEIudXBkYXRlTG9j''@;'; + put 'put ''YWxlPWZ1bmN0aW9uIEMwKHplLFZ0KXtpZihudWxsIT1WdCl7dmFyIGhuLFJuLHRyPUM0O251bGwhPXIyW3plXSYmbnVsbCE9cjJbemVdLnBhcmVudExvY2FsZT9yMlt6ZV0uc2V0KG5lKHIyW3plXS5fY29uZmlnLFZ0KSk6KG51bGwhPShSbj1SaSh6ZSkpJiYodHI9Um4uX2NvbmZpZyksVnQ9''@;'; + put 'put ''bmUodHIsVnQpLG51bGw9PVJuJiYoVnQuYWJicj16ZSksKGhuPW5ldyB0ZShWdCkpLnBhcmVudExvY2FsZT1yMlt6ZV0scjJbemVdPWhuKSxIMSh6ZSl9ZWxzZSBudWxsIT1yMlt6ZV0mJihudWxsIT1yMlt6ZV0ucGFyZW50TG9jYWxlPyhyMlt6ZV09cjJbemVdLnBhcmVudExvY2FsZSx6ZT09''@;'; + put 'put ''PUgxKCkmJkgxKHplKSk6bnVsbCE9cjJbemVdJiZkZWxldGUgcjJbemVdKTtyZXR1cm4gcjJbemVdfSxCLmxvY2FsZXM9ZnVuY3Rpb24gbWwoKXtyZXR1cm4geChyMil9LEIud2Vla2RheXNTaG9ydD1mdW5jdGlvbiB6Yyh6ZSxWdCxobil7cmV0dXJuIGhmKHplLFZ0LGhuLCJ3ZWVrZGF5c1No''@;'; + put 'put ''b3J0Iil9LEIubm9ybWFsaXplVW5pdHM9Q3QsQi5yZWxhdGl2ZVRpbWVSb3VuZGluZz1mdW5jdGlvbiBvNih6ZSl7cmV0dXJuIHZvaWQgMD09PXplP1h1OiJmdW5jdGlvbiI9PXR5cGVvZiB6ZSYmKFh1PXplLCEwKX0sQi5yZWxhdGl2ZVRpbWVUaHJlc2hvbGQ9ZnVuY3Rpb24gYTYoemUsVnQp''@;'; + put 'put ''e3JldHVybiB2b2lkIDAhPT1EdVt6ZV0mJih2b2lkIDA9PT1WdD9EdVt6ZV06KER1W3plXT1WdCwicyI9PT16ZSYmKER1LnNzPVZ0LTEpLCEwKSl9LEIuY2FsZW5kYXJGb3JtYXQ9ZnVuY3Rpb24gVXAoemUsVnQpe3ZhciBobj16ZS5kaWZmKFZ0LCJkYXlzIiwhMCk7cmV0dXJuIGhuPC02PyJz''@;'; + put 'put ''YW1lRWxzZSI6aG48LTE/Imxhc3RXZWVrIjpobjwwPyJsYXN0RGF5IjpobjwxPyJzYW1lRGF5IjpobjwyPyJuZXh0RGF5Ijpobjw3PyJuZXh0V2VlayI6InNhbWVFbHNlIn0sQi5wcm90b3R5cGU9YTAsQi5IVE1MNV9GTVQ9e0RBVEVUSU1FX0xPQ0FMOiJZWVlZLU1NLUREVEhIOm1tIixEQVRF''@;'; + put 'put ''VElNRV9MT0NBTF9TRUNPTkRTOiJZWVlZLU1NLUREVEhIOm1tOnNzIixEQVRFVElNRV9MT0NBTF9NUzoiWVlZWS1NTS1ERFRISDptbTpzcy5TU1MiLERBVEU6IllZWVktTU0tREQiLFRJTUU6IkhIOm1tIixUSU1FX1NFQ09ORFM6IkhIOm1tOnNzIixUSU1FX01TOiJISDptbTpzcy5TU1MiLFdF''@;'; + put 'put ''RUs6IkdHR0ctW1ddV1ciLE1PTlRIOiJZWVlZLU1NIn0sQn0oKX0sNTI5OTk6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDg3OTc3KTtKZS5jZXJ0aWZpY2F0ZT1MKDEyMzkwKTt2YXIgQj1tZS5kZWZpbmUoIlJTQVByaXZhdGVLZXkiLGZ1bmN0aW9uKCl7dGhpcy5zZXEoKS5v''@;'; + put 'put ''YmoodGhpcy5rZXkoInZlcnNpb24iKS5pbnQoKSx0aGlzLmtleSgibW9kdWx1cyIpLmludCgpLHRoaXMua2V5KCJwdWJsaWNFeHBvbmVudCIpLmludCgpLHRoaXMua2V5KCJwcml2YXRlRXhwb25lbnQiKS5pbnQoKSx0aGlzLmtleSgicHJpbWUxIikuaW50KCksdGhpcy5rZXkoInByaW1lMiIp''@;'; + put 'put ''LmludCgpLHRoaXMua2V5KCJleHBvbmVudDEiKS5pbnQoKSx0aGlzLmtleSgiZXhwb25lbnQyIikuaW50KCksdGhpcy5rZXkoImNvZWZmaWNpZW50IikuaW50KCkpfSk7SmUuUlNBUHJpdmF0ZUtleT1CO3ZhciBFPW1lLmRlZmluZSgiUlNBUHVibGljS2V5IixmdW5jdGlvbigpe3RoaXMuc2Vx''@;'; + put 'put ''KCkub2JqKHRoaXMua2V5KCJtb2R1bHVzIikuaW50KCksdGhpcy5rZXkoInB1YmxpY0V4cG9uZW50IikuaW50KCkpfSk7SmUuUlNBUHVibGljS2V5PUU7dmFyIE1lPW1lLmRlZmluZSgiU3ViamVjdFB1YmxpY0tleUluZm8iLGZ1bmN0aW9uKCl7dGhpcy5zZXEoKS5vYmoodGhpcy5rZXkoImFs''@;'; + put 'put ''Z29yaXRobSIpLnVzZShVKSx0aGlzLmtleSgic3ViamVjdFB1YmxpY0tleSIpLmJpdHN0cigpKX0pO0plLlB1YmxpY0tleT1NZTt2YXIgVT1tZS5kZWZpbmUoIkFsZ29yaXRobUlkZW50aWZpZXIiLGZ1bmN0aW9uKCl7dGhpcy5zZXEoKS5vYmoodGhpcy5rZXkoImFsZ29yaXRobSIpLm9iamlk''@;'; + put 'put ''KCksdGhpcy5rZXkoIm5vbmUiKS5udWxsXygpLm9wdGlvbmFsKCksdGhpcy5rZXkoImN1cnZlIikub2JqaWQoKS5vcHRpb25hbCgpLHRoaXMua2V5KCJwYXJhbXMiKS5zZXEoKS5vYmoodGhpcy5rZXkoInAiKS5pbnQoKSx0aGlzLmtleSgicSIpLmludCgpLHRoaXMua2V5KCJnIikuaW50KCkp''@;'; + put 'put ''Lm9wdGlvbmFsKCkpfSksUT1tZS5kZWZpbmUoIlByaXZhdGVLZXlJbmZvIixmdW5jdGlvbigpe3RoaXMuc2VxKCkub2JqKHRoaXMua2V5KCJ2ZXJzaW9uIikuaW50KCksdGhpcy5rZXkoImFsZ29yaXRobSIpLnVzZShVKSx0aGlzLmtleSgic3ViamVjdFByaXZhdGVLZXkiKS5vY3RzdHIoKSl9''@;'; + put 'put ''KTtKZS5Qcml2YXRlS2V5PVE7dmFyIFo9bWUuZGVmaW5lKCJFbmNyeXB0ZWRQcml2YXRlS2V5SW5mbyIsZnVuY3Rpb24oKXt0aGlzLnNlcSgpLm9iaih0aGlzLmtleSgiYWxnb3JpdGhtIikuc2VxKCkub2JqKHRoaXMua2V5KCJpZCIpLm9iamlkKCksdGhpcy5rZXkoImRlY3J5cHQiKS5zZXEo''@;'; + put 'put ''KS5vYmoodGhpcy5rZXkoImtkZSIpLnNlcSgpLm9iaih0aGlzLmtleSgiaWQiKS5vYmppZCgpLHRoaXMua2V5KCJrZGVwYXJhbXMiKS5zZXEoKS5vYmoodGhpcy5rZXkoInNhbHQiKS5vY3RzdHIoKSx0aGlzLmtleSgiaXRlcnMiKS5pbnQoKSkpLHRoaXMua2V5KCJjaXBoZXIiKS5zZXEoKS5v''@;'; + put 'put ''YmoodGhpcy5rZXkoImFsZ28iKS5vYmppZCgpLHRoaXMua2V5KCJpdiIpLm9jdHN0cigpKSkpLHRoaXMua2V5KCJzdWJqZWN0UHJpdmF0ZUtleSIpLm9jdHN0cigpKX0pO0plLkVuY3J5cHRlZFByaXZhdGVLZXk9Wjt2YXIgaWU9bWUuZGVmaW5lKCJEU0FQcml2YXRlS2V5IixmdW5jdGlvbigp''@;'; + put 'put ''e3RoaXMuc2VxKCkub2JqKHRoaXMua2V5KCJ2ZXJzaW9uIikuaW50KCksdGhpcy5rZXkoInAiKS5pbnQoKSx0aGlzLmtleSgicSIpLmludCgpLHRoaXMua2V5KCJnIikuaW50KCksdGhpcy5rZXkoInB1Yl9rZXkiKS5pbnQoKSx0aGlzLmtleSgicHJpdl9rZXkiKS5pbnQoKSl9KTtKZS5EU0FQ''@;'; + put 'put ''cml2YXRlS2V5PWllLEplLkRTQXBhcmFtPW1lLmRlZmluZSgiRFNBcGFyYW0iLGZ1bmN0aW9uKCl7dGhpcy5pbnQoKX0pO3ZhciBhZT1tZS5kZWZpbmUoIkVDUHJpdmF0ZUtleSIsZnVuY3Rpb24oKXt0aGlzLnNlcSgpLm9iaih0aGlzLmtleSgidmVyc2lvbiIpLmludCgpLHRoaXMua2V5KCJw''@;'; + put 'put ''cml2YXRlS2V5Iikub2N0c3RyKCksdGhpcy5rZXkoInBhcmFtZXRlcnMiKS5vcHRpb25hbCgpLmV4cGxpY2l0KDApLnVzZShZKSx0aGlzLmtleSgicHVibGljS2V5Iikub3B0aW9uYWwoKS5leHBsaWNpdCgxKS5iaXRzdHIoKSl9KTtKZS5FQ1ByaXZhdGVLZXk9YWU7dmFyIFk9bWUuZGVmaW5l''@;'; + put 'put ''KCJFQ1BhcmFtZXRlcnMiLGZ1bmN0aW9uKCl7dGhpcy5jaG9pY2Uoe25hbWVkQ3VydmU6dGhpcy5vYmppZCgpfSl9KTtKZS5zaWduYXR1cmU9bWUuZGVmaW5lKCJzaWduYXR1cmUiLGZ1bmN0aW9uKCl7dGhpcy5zZXEoKS5vYmoodGhpcy5rZXkoInIiKS5pbnQoKSx0aGlzLmtleSgicyIpLmlu''@;'; + put 'put ''dCgpKX0pfSwxMjM5MDooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoODc5NzcpLEI9bWUuZGVmaW5lKCJUaW1lIixmdW5jdGlvbigpe3RoaXMuY2hvaWNlKHt1dGNUaW1lOnRoaXMudXRjdGltZSgpLGdlbmVyYWxUaW1lOnRoaXMuZ2VudGltZSgpfSl9KSxFPW1lLmRlZmluZSgi''@;'; + put 'put ''QXR0cmlidXRlVHlwZVZhbHVlIixmdW5jdGlvbigpe3RoaXMuc2VxKCkub2JqKHRoaXMua2V5KCJ0eXBlIikub2JqaWQoKSx0aGlzLmtleSgidmFsdWUiKS5hbnkoKSl9KSxNZT1tZS5kZWZpbmUoIkFsZ29yaXRobUlkZW50aWZpZXIiLGZ1bmN0aW9uKCl7dGhpcy5zZXEoKS5vYmoodGhpcy5r''@;'; + put 'put ''ZXkoImFsZ29yaXRobSIpLm9iamlkKCksdGhpcy5rZXkoInBhcmFtZXRlcnMiKS5vcHRpb25hbCgpLHRoaXMua2V5KCJjdXJ2ZSIpLm9iamlkKCkub3B0aW9uYWwoKSl9KSxVPW1lLmRlZmluZSgiU3ViamVjdFB1YmxpY0tleUluZm8iLGZ1bmN0aW9uKCl7dGhpcy5zZXEoKS5vYmoodGhpcy5r''@;'; + put 'put ''ZXkoImFsZ29yaXRobSIpLnVzZShNZSksdGhpcy5rZXkoInN1YmplY3RQdWJsaWNLZXkiKS5iaXRzdHIoKSl9KSxRPW1lLmRlZmluZSgiUmVsYXRpdmVEaXN0aW5ndWlzaGVkTmFtZSIsZnVuY3Rpb24oKXt0aGlzLnNldG9mKEUpfSksWj1tZS5kZWZpbmUoIlJETlNlcXVlbmNlIixmdW5jdGlv''@;'; + put 'put ''bigpe3RoaXMuc2Vxb2YoUSl9KSxpZT1tZS5kZWZpbmUoIk5hbWUiLGZ1bmN0aW9uKCl7dGhpcy5jaG9pY2Uoe3JkblNlcXVlbmNlOnRoaXMudXNlKFopfSl9KSxhZT1tZS5kZWZpbmUoIlZhbGlkaXR5IixmdW5jdGlvbigpe3RoaXMuc2VxKCkub2JqKHRoaXMua2V5KCJub3RCZWZvcmUiKS51''@;'; + put 'put ''c2UoQiksdGhpcy5rZXkoIm5vdEFmdGVyIikudXNlKEIpKX0pLFk9bWUuZGVmaW5lKCJFeHRlbnNpb24iLGZ1bmN0aW9uKCl7dGhpcy5zZXEoKS5vYmoodGhpcy5rZXkoImV4dG5JRCIpLm9iamlkKCksdGhpcy5rZXkoImNyaXRpY2FsIikuYm9vbCgpLmRlZighMSksdGhpcy5rZXkoImV4dG5W''@;'; + put 'put ''YWx1ZSIpLm9jdHN0cigpKX0pLFc9bWUuZGVmaW5lKCJUQlNDZXJ0aWZpY2F0ZSIsZnVuY3Rpb24oKXt0aGlzLnNlcSgpLm9iaih0aGlzLmtleSgidmVyc2lvbiIpLmV4cGxpY2l0KDApLmludCgpLm9wdGlvbmFsKCksdGhpcy5rZXkoInNlcmlhbE51bWJlciIpLmludCgpLHRoaXMua2V5KCJz''@;'; + put 'put ''aWduYXR1cmUiKS51c2UoTWUpLHRoaXMua2V5KCJpc3N1ZXIiKS51c2UoaWUpLHRoaXMua2V5KCJ2YWxpZGl0eSIpLnVzZShhZSksdGhpcy5rZXkoInN1YmplY3QiKS51c2UoaWUpLHRoaXMua2V5KCJzdWJqZWN0UHVibGljS2V5SW5mbyIpLnVzZShVKSx0aGlzLmtleSgiaXNzdWVyVW5pcXVl''@;'; + put 'put ''SUQiKS5pbXBsaWNpdCgxKS5iaXRzdHIoKS5vcHRpb25hbCgpLHRoaXMua2V5KCJzdWJqZWN0VW5pcXVlSUQiKS5pbXBsaWNpdCgyKS5iaXRzdHIoKS5vcHRpb25hbCgpLHRoaXMua2V5KCJleHRlbnNpb25zIikuZXhwbGljaXQoMykuc2Vxb2YoWSkub3B0aW9uYWwoKSl9KSxOPW1lLmRlZmlu''@;'; + put 'put ''ZSgiWDUwOUNlcnRpZmljYXRlIixmdW5jdGlvbigpe3RoaXMuc2VxKCkub2JqKHRoaXMua2V5KCJ0YnNDZXJ0aWZpY2F0ZSIpLnVzZShXKSx0aGlzLmtleSgic2lnbmF0dXJlQWxnb3JpdGhtIikudXNlKE1lKSx0aGlzLmtleSgic2lnbmF0dXJlVmFsdWUiKS5iaXRzdHIoKSl9KTtYZS5leHBv''@;'; + put 'put ''cnRzPU59LDY1MjY5OihYZSxKZSxMKT0+e3ZhciBtZT0vUHJvYy1UeXBlOiA0LEVOQ1JZUFRFRFtcblxyXStERUstSW5mbzogQUVTLSgoPzoxMjgpfCg/OjE5Mil8KD86MjU2KSktQ0JDLChbMC05QS1IXSspW1xuXHJdKyhbMC05QS16XG5ccisvPV0rKVtcblxyXSsvbSxCPS9eLS0tLS1CRUdJ''@;'; + put 'put ''TiAoKD86Lio/IEtFWSl8Q0VSVElGSUNBVEUpLS0tLS0vbSxFPS9eLS0tLS1CRUdJTiAoKD86Lio/IEtFWSl8Q0VSVElGSUNBVEUpLS0tLS0oWzAtOUEtelxuXHIrLz1dKyktLS0tLUVORCBcMS0tLS0tJC9tLE1lPUwoNDAzNDcpLFU9TCg4NDMzMCksUT1MKDczNTAyKS5CdWZmZXI7WGUuZXhw''@;'; + put 'put ''b3J0cz1mdW5jdGlvbihaLGllKXt2YXIgVyxhZT1aLnRvU3RyaW5nKCksWT1hZS5tYXRjaChtZSk7aWYoWSl7dmFyIGVlPSJhZXMiK1lbMV0scT1RLmZyb20oWVsyXSwiaGV4IiksSj1RLmZyb20oWVszXS5yZXBsYWNlKC9bXHJcbl0vZywiIiksImJhc2U2NCIpLHNlPU1lKGllLHEuc2xpY2Uo''@;'; + put 'put ''MCw4KSxwYXJzZUludChZWzFdLDEwKSkua2V5LG9lPVtdLGNlPVUuY3JlYXRlRGVjaXBoZXJpdihlZSxzZSxxKTtvZS5wdXNoKGNlLnVwZGF0ZShKKSksb2UucHVzaChjZS5maW5hbCgpKSxXPVEuY29uY2F0KG9lKX1lbHNle3ZhciBOPWFlLm1hdGNoKEUpO1c9US5mcm9tKE5bMl0ucmVwbGFj''@;'; + put 'put ''ZSgvW1xyXG5dL2csIiIpLCJiYXNlNjQiKX1yZXR1cm57dGFnOmFlLm1hdGNoKEIpWzFdLGRhdGE6V319fSwyMjc3MjooWGUsSmUsTCk9Pnt2YXIgbWU9TCg1Mjk5OSksQj1MKDIyNTYyKSxFPUwoNjUyNjkpLE1lPUwoODQzMzApLFU9TCg5OTM1NyksUT1MKDczNTAyKS5CdWZmZXI7ZnVuY3Rp''@;'; + put 'put ''b24gWihhZSl7dmFyIFk7Im9iamVjdCI9PXR5cGVvZiBhZSYmIVEuaXNCdWZmZXIoYWUpJiYoWT1hZS5wYXNzcGhyYXNlLGFlPWFlLmtleSksInN0cmluZyI9PXR5cGVvZiBhZSYmKGFlPVEuZnJvbShhZSkpO3ZhciBxLEosVz1FKGFlLFkpLE49Vy50YWcsZWU9Vy5kYXRhO3N3aXRjaChOKXtj''@;'; + put 'put ''YXNlIkNFUlRJRklDQVRFIjpKPW1lLmNlcnRpZmljYXRlLmRlY29kZShlZSwiZGVyIikudGJzQ2VydGlmaWNhdGUuc3ViamVjdFB1YmxpY0tleUluZm87Y2FzZSJQVUJMSUMgS0VZIjpzd2l0Y2goSnx8KEo9bWUuUHVibGljS2V5LmRlY29kZShlZSwiZGVyIikpLHE9Si5hbGdvcml0aG0uYWxn''@;'; + put 'put ''b3JpdGhtLmpvaW4oIi4iKSl7Y2FzZSIxLjIuODQwLjExMzU0OS4xLjEuMSI6cmV0dXJuIG1lLlJTQVB1YmxpY0tleS5kZWNvZGUoSi5zdWJqZWN0UHVibGljS2V5LmRhdGEsImRlciIpO2Nhc2UiMS4yLjg0MC4xMDA0NS4yLjEiOnJldHVybiBKLnN1YmplY3RQcml2YXRlS2V5PUouc3ViamVj''@;'; + put 'put ''dFB1YmxpY0tleSx7dHlwZToiZWMiLGRhdGE6Sn07Y2FzZSIxLjIuODQwLjEwMDQwLjQuMSI6cmV0dXJuIEouYWxnb3JpdGhtLnBhcmFtcy5wdWJfa2V5PW1lLkRTQXBhcmFtLmRlY29kZShKLnN1YmplY3RQdWJsaWNLZXkuZGF0YSwiZGVyIikse3R5cGU6ImRzYSIsZGF0YTpKLmFsZ29yaXRo''@;'; + put 'put ''bS5wYXJhbXN9O2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJ1bmtub3duIGtleSBpZCAiK3EpfWNhc2UiRU5DUllQVEVEIFBSSVZBVEUgS0VZIjplZT1mdW5jdGlvbiBpZShhZSxZKXt2YXIgVz1hZS5hbGdvcml0aG0uZGVjcnlwdC5rZGUua2RlcGFyYW1zLnNhbHQsTj1wYXJzZUludChhZS5h''@;'; + put 'put ''bGdvcml0aG0uZGVjcnlwdC5rZGUua2RlcGFyYW1zLml0ZXJzLnRvU3RyaW5nKCksMTApLGVlPUJbYWUuYWxnb3JpdGhtLmRlY3J5cHQuY2lwaGVyLmFsZ28uam9pbigiLiIpXSxxPWFlLmFsZ29yaXRobS5kZWNyeXB0LmNpcGhlci5pdixKPWFlLnN1YmplY3RQcml2YXRlS2V5LHNlPXBhcnNl''@;'; + put 'put ''SW50KGVlLnNwbGl0KCItIilbMV0sMTApLzgsb2U9VS5wYmtkZjJTeW5jKFksVyxOLHNlLCJzaGExIiksY2U9TWUuY3JlYXRlRGVjaXBoZXJpdihlZSxvZSxxKSxkZT1bXTtyZXR1cm4gZGUucHVzaChjZS51cGRhdGUoSikpLGRlLnB1c2goY2UuZmluYWwoKSksUS5jb25jYXQoZGUpfShlZT1t''@;'; + put 'put ''ZS5FbmNyeXB0ZWRQcml2YXRlS2V5LmRlY29kZShlZSwiZGVyIiksWSk7Y2FzZSJQUklWQVRFIEtFWSI6c3dpdGNoKHE9KEo9bWUuUHJpdmF0ZUtleS5kZWNvZGUoZWUsImRlciIpKS5hbGdvcml0aG0uYWxnb3JpdGhtLmpvaW4oIi4iKSl7Y2FzZSIxLjIuODQwLjExMzU0OS4xLjEuMSI6cmV0''@;'; + put 'put ''dXJuIG1lLlJTQVByaXZhdGVLZXkuZGVjb2RlKEouc3ViamVjdFByaXZhdGVLZXksImRlciIpO2Nhc2UiMS4yLjg0MC4xMDA0NS4yLjEiOnJldHVybntjdXJ2ZTpKLmFsZ29yaXRobS5jdXJ2ZSxwcml2YXRlS2V5Om1lLkVDUHJpdmF0ZUtleS5kZWNvZGUoSi5zdWJqZWN0UHJpdmF0ZUtleSwi''@;'; + put 'put ''ZGVyIikucHJpdmF0ZUtleX07Y2FzZSIxLjIuODQwLjEwMDQwLjQuMSI6cmV0dXJuIEouYWxnb3JpdGhtLnBhcmFtcy5wcml2X2tleT1tZS5EU0FwYXJhbS5kZWNvZGUoSi5zdWJqZWN0UHJpdmF0ZUtleSwiZGVyIikse3R5cGU6ImRzYSIscGFyYW1zOkouYWxnb3JpdGhtLnBhcmFtc307ZGVm''@;'; + put 'put ''YXVsdDp0aHJvdyBuZXcgRXJyb3IoInVua25vd24ga2V5IGlkICIrcSl9Y2FzZSJSU0EgUFVCTElDIEtFWSI6cmV0dXJuIG1lLlJTQVB1YmxpY0tleS5kZWNvZGUoZWUsImRlciIpO2Nhc2UiUlNBIFBSSVZBVEUgS0VZIjpyZXR1cm4gbWUuUlNBUHJpdmF0ZUtleS5kZWNvZGUoZWUsImRlciIp''@;'; + put 'put ''O2Nhc2UiRFNBIFBSSVZBVEUgS0VZIjpyZXR1cm57dHlwZToiZHNhIixwYXJhbXM6bWUuRFNBUHJpdmF0ZUtleS5kZWNvZGUoZWUsImRlciIpfTtjYXNlIkVDIFBSSVZBVEUgS0VZIjpyZXR1cm57Y3VydmU6KGVlPW1lLkVDUHJpdmF0ZUtleS5kZWNvZGUoZWUsImRlciIpKS5wYXJhbWV0ZXJz''@;'; + put 'put ''LnZhbHVlLHByaXZhdGVLZXk6ZWUucHJpdmF0ZUtleX07ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoInVua25vd24ga2V5IHR5cGUgIitOKX19WGUuZXhwb3J0cz1aLFouc2lnbmF0dXJlPW1lLnNpZ25hdHVyZX0sOTkzNTc6KFhlLEplLEwpPT57SmUucGJrZGYyPUwoOTA0MTUpLEplLnBia2Rm''@;'; + put 'put ''MlN5bmM9TCg3NzQ3Mil9LDkwNDE1OihYZSxKZSxMKT0+e3ZhciBRLFcsbWU9TCg3MzUwMikuQnVmZmVyLEI9TCg2MjY5NyksRT1MKDc4ODY3KSxNZT1MKDc3NDcyKSxVPUwoOTQ1NjYpLFo9Z2xvYmFsLmNyeXB0byYmZ2xvYmFsLmNyeXB0by5zdWJ0bGUsaWU9e3NoYToiU0hBLTEiLCJzaGEt''@;'; + put 'put ''MSI6IlNIQS0xIixzaGExOiJTSEEtMSIsc2hhMjU2OiJTSEEtMjU2Iiwic2hhLTI1NiI6IlNIQS0yNTYiLHNoYTM4NDoiU0hBLTM4NCIsInNoYS0zODQiOiJTSEEtMzg0Iiwic2hhLTUxMiI6IlNIQS01MTIiLHNoYTUxMjoiU0hBLTUxMiJ9LGFlPVtdO2Z1bmN0aW9uIE4oKXtyZXR1cm4gV3x8''@;'; + put 'put ''KFc9Z2xvYmFsLnByb2Nlc3MmJmdsb2JhbC5wcm9jZXNzLm5leHRUaWNrP2dsb2JhbC5wcm9jZXNzLm5leHRUaWNrOmdsb2JhbC5xdWV1ZU1pY3JvdGFzaz9nbG9iYWwucXVldWVNaWNyb3Rhc2s6Z2xvYmFsLnNldEltbWVkaWF0ZT9nbG9iYWwuc2V0SW1tZWRpYXRlOmdsb2JhbC5zZXRUaW1l''@;'; + put 'put ''b3V0KX1mdW5jdGlvbiBlZShKLHNlLG9lLGNlLGRlKXtyZXR1cm4gWi5pbXBvcnRLZXkoInJhdyIsSix7bmFtZToiUEJLREYyIn0sITEsWyJkZXJpdmVCaXRzIl0pLnRoZW4oZnVuY3Rpb24odmUpe3JldHVybiBaLmRlcml2ZUJpdHMoe25hbWU6IlBCS0RGMiIsc2FsdDpzZSxpdGVyYXRpb25z''@;'; + put 'put ''Om9lLGhhc2g6e25hbWU6ZGV9fSx2ZSxjZTw8Myl9KS50aGVuKGZ1bmN0aW9uKHZlKXtyZXR1cm4gbWUuZnJvbSh2ZSl9KX1YZS5leHBvcnRzPWZ1bmN0aW9uKEosc2Usb2UsY2UsZGUsdmUpeyJmdW5jdGlvbiI9PXR5cGVvZiBkZSYmKHZlPWRlLGRlPXZvaWQgMCk7dmFyIEFlPWllWyhkZT1k''@;'; + put 'put ''ZXx8InNoYTEiKS50b0xvd2VyQ2FzZSgpXTtpZihBZSYmImZ1bmN0aW9uIj09dHlwZW9mIGdsb2JhbC5Qcm9taXNlKXtpZihCKG9lLGNlKSxKPVUoSixFLCJQYXNzd29yZCIpLHNlPVUoc2UsRSwiU2FsdCIpLCJmdW5jdGlvbiIhPXR5cGVvZiB2ZSl0aHJvdyBuZXcgRXJyb3IoIk5vIGNhbGxi''@;'; + put 'put ''YWNrIHByb3ZpZGVkIHRvIHBia2RmMiIpOyFmdW5jdGlvbiBxKEosc2Upe0oudGhlbihmdW5jdGlvbihvZSl7TigpKGZ1bmN0aW9uKCl7c2UobnVsbCxvZSl9KX0sZnVuY3Rpb24ob2Upe04oKShmdW5jdGlvbigpe3NlKG9lKX0pfSl9KGZ1bmN0aW9uIFkoSil7aWYoZ2xvYmFsLnByb2Nlc3Mm''@;'; + put 'put ''JiFnbG9iYWwucHJvY2Vzcy5icm93c2VyfHwhWnx8IVouaW1wb3J0S2V5fHwhWi5kZXJpdmVCaXRzKXJldHVybiBQcm9taXNlLnJlc29sdmUoITEpO2lmKHZvaWQgMCE9PWFlW0pdKXJldHVybiBhZVtKXTt2YXIgc2U9ZWUoUT1RfHxtZS5hbGxvYyg4KSxRLDEwLDEyOCxKKS50aGVuKGZ1bmN0''@;'; + put 'put ''aW9uKCl7cmV0dXJuITB9KS5jYXRjaChmdW5jdGlvbigpe3JldHVybiExfSk7cmV0dXJuIGFlW0pdPXNlLHNlfShBZSkudGhlbihmdW5jdGlvbihrZSl7cmV0dXJuIGtlP2VlKEosc2Usb2UsY2UsQWUpOk1lKEosc2Usb2UsY2UsZGUpfSksdmUpfWVsc2UgTigpKGZ1bmN0aW9uKCl7dmFyIGtl''@;'; + put 'put ''O3RyeXtrZT1NZShKLHNlLG9lLGNlLGRlKX1jYXRjaChTZSl7cmV0dXJuIHZlKFNlKX12ZShudWxsLGtlKX0pfX0sNzg4Njc6WGU9Pnt2YXIgSmU7SmU9Z2xvYmFsLnByb2Nlc3MmJmdsb2JhbC5wcm9jZXNzLmJyb3dzZXI/InV0Zi04IjpnbG9iYWwucHJvY2VzcyYmZ2xvYmFsLnByb2Nlc3Mu''@;'; + put 'put ''dmVyc2lvbj9wYXJzZUludChwcm9jZXNzLnZlcnNpb24uc3BsaXQoIi4iKVswXS5zbGljZSgxKSwxMCk+PTY/InV0Zi04IjoiYmluYXJ5IjoidXRmLTgiLFhlLmV4cG9ydHM9SmV9LDYyNjk3OlhlPT57dmFyIEplPU1hdGgucG93KDIsMzApLTE7WGUuZXhwb3J0cz1mdW5jdGlvbihMLG1lKXtp''@;'; + put 'put ''ZigibnVtYmVyIiE9dHlwZW9mIEwpdGhyb3cgbmV3IFR5cGVFcnJvcigiSXRlcmF0aW9ucyBub3QgYSBudW1iZXIiKTtpZihMPDApdGhyb3cgbmV3IFR5cGVFcnJvcigiQmFkIGl0ZXJhdGlvbnMiKTtpZigibnVtYmVyIiE9dHlwZW9mIG1lKXRocm93IG5ldyBUeXBlRXJyb3IoIktleSBsZW5n''@;'; + put 'put ''dGggbm90IGEgbnVtYmVyIik7aWYobWU8MHx8bWU+SmV8fG1lIT1tZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJCYWQga2V5IGxlbmd0aCIpfX0sNzc0NzI6KFhlLEplLEwpPT57dmFyIG1lPUwoNTU2NDApLEI9TCg3NTYzNCksRT1MKDk1MjQ0KSxNZT1MKDczNTAyKS5CdWZmZXIsVT1MKDYyNjk3''@;'; + put 'put ''KSxRPUwoNzg4NjcpLFo9TCg5NDU2NiksaWU9TWUuYWxsb2MoMTI4KSxhZT17bWQ1OjE2LHNoYTE6MjAsc2hhMjI0OjI4LHNoYTI1NjozMixzaGEzODQ6NDgsc2hhNTEyOjY0LHJtZDE2MDoyMCxyaXBlbWQxNjA6MjB9O2Z1bmN0aW9uIFkoZWUscSxKKXt2YXIgc2U9ZnVuY3Rpb24gVyhlZSl7''@;'; + put 'put ''cmV0dXJuInJtZDE2MCI9PT1lZXx8InJpcGVtZDE2MCI9PT1lZT9mdW5jdGlvbiBKKHNlKXtyZXR1cm4obmV3IEIpLnVwZGF0ZShzZSkuZGlnZXN0KCl9OiJtZDUiPT09ZWU/bWU6ZnVuY3Rpb24gcShzZSl7cmV0dXJuIEUoZWUpLnVwZGF0ZShzZSkuZGlnZXN0KCl9fShlZSksb2U9InNoYTUx''@;'; + put 'put ''MiI9PT1lZXx8InNoYTM4NCI9PT1lZT8xMjg6NjQ7cS5sZW5ndGg+b2U/cT1zZShxKTpxLmxlbmd0aDxvZSYmKHE9TWUuY29uY2F0KFtxLGllXSxvZSkpO2Zvcih2YXIgY2U9TWUuYWxsb2NVbnNhZmUob2UrYWVbZWVdKSxkZT1NZS5hbGxvY1Vuc2FmZShvZSthZVtlZV0pLHZlPTA7dmU8b2U7''@;'; + put 'put ''dmUrKyljZVt2ZV09NTRecVt2ZV0sZGVbdmVdPTkyXnFbdmVdO3ZhciBBZT1NZS5hbGxvY1Vuc2FmZShvZStKKzQpO2NlLmNvcHkoQWUsMCwwLG9lKSx0aGlzLmlwYWQxPUFlLHRoaXMuaXBhZDI9Y2UsdGhpcy5vcGFkPWRlLHRoaXMuYWxnPWVlLHRoaXMuYmxvY2tzaXplPW9lLHRoaXMuaGFz''@;'; + put 'put ''aD1zZSx0aGlzLnNpemU9YWVbZWVdfVkucHJvdG90eXBlLnJ1bj1mdW5jdGlvbihlZSxxKXtyZXR1cm4gZWUuY29weShxLHRoaXMuYmxvY2tzaXplKSx0aGlzLmhhc2gocSkuY29weSh0aGlzLm9wYWQsdGhpcy5ibG9ja3NpemUpLHRoaXMuaGFzaCh0aGlzLm9wYWQpfSxYZS5leHBvcnRzPWZ1''@;'; + put 'put ''bmN0aW9uIE4oZWUscSxKLHNlLG9lKXtVKEosc2UpO3ZhciBjZT1uZXcgWShvZT1vZXx8InNoYTEiLGVlPVooZWUsUSwiUGFzc3dvcmQiKSwocT1aKHEsUSwiU2FsdCIpKS5sZW5ndGgpLGRlPU1lLmFsbG9jVW5zYWZlKHNlKSx2ZT1NZS5hbGxvY1Vuc2FmZShxLmxlbmd0aCs0KTtxLmNvcHko''@;'; + put 'put ''dmUsMCwwLHEubGVuZ3RoKTtmb3IodmFyIEFlPTAsa2U9YWVbb2VdLFNlPU1hdGguY2VpbChzZS9rZSksSWU9MTtJZTw9U2U7SWUrKyl7dmUud3JpdGVVSW50MzJCRShJZSxxLmxlbmd0aCk7Zm9yKHZhciBUZT1jZS5ydW4odmUsY2UuaXBhZDEpLEVlPVRlLGhlPTE7aGU8SjtoZSsrKXtFZT1j''@;'; + put 'put ''ZS5ydW4oRWUsY2UuaXBhZDIpO2Zvcih2YXIgTz0wO088a2U7TysrKVRlW09dXj1FZVtPXX1UZS5jb3B5KGRlLEFlKSxBZSs9a2V9cmV0dXJuIGRlfX0sOTQ1NjY6KFhlLEplLEwpPT57dmFyIG1lPUwoNzM1MDIpLkJ1ZmZlcjtYZS5leHBvcnRzPWZ1bmN0aW9uKEIsRSxNZSl7aWYobWUuaXNC''@;'; + put 'put ''dWZmZXIoQikpcmV0dXJuIEI7aWYoInN0cmluZyI9PXR5cGVvZiBCKXJldHVybiBtZS5mcm9tKEIsRSk7aWYoQXJyYXlCdWZmZXIuaXNWaWV3KEIpKXJldHVybiBtZS5mcm9tKEIuYnVmZmVyKTt0aHJvdyBuZXcgVHlwZUVycm9yKE1lKyIgbXVzdCBiZSBhIHN0cmluZywgYSBCdWZmZXIsIGEg''@;'; + put 'put ''dHlwZWQgYXJyYXkgb3IgYSBEYXRhVmlldyIpfX0sNDEwNzg6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lLEIpeyJ1c2Ugc3RyaWN0Ijt2YXIgRTt0cnl7RT1MKDE1NDM5KX1jYXRjaChNZSl7fVhlLmV4cG9ydHM9ZnVuY3Rpb24obWUpe3ZhciBCPSJmdW5jdGlvbiI9PXR5cGVvZiBt''@;'; + put 'put ''ZSxFPSEhd2luZG93LmFkZEV2ZW50TGlzdGVuZXIsTWU9d2luZG93LmRvY3VtZW50LFU9d2luZG93LnNldFRpbWVvdXQsUT1mdW5jdGlvbihQLFYsVCxTKXtFP1AuYWRkRXZlbnRMaXN0ZW5lcihWLFQsISFTKTpQLmF0dGFjaEV2ZW50KCJvbiIrVixUKX0sWj1mdW5jdGlvbihQLFYsVCxTKXtF''@;'; + put 'put ''P1AucmVtb3ZlRXZlbnRMaXN0ZW5lcihWLFQsISFTKTpQLmRldGFjaEV2ZW50KCJvbiIrVixUKX0sYWU9ZnVuY3Rpb24oUCxWKXtyZXR1cm4tMSE9PSgiICIrUC5jbGFzc05hbWUrIiAiKS5pbmRleE9mKCIgIitWKyIgIil9LFk9ZnVuY3Rpb24oUCxWKXthZShQLFYpfHwoUC5jbGFzc05hbWU9''@;'; + put 'put ''IiI9PT1QLmNsYXNzTmFtZT9WOlAuY2xhc3NOYW1lKyIgIitWKX0sVz1mdW5jdGlvbihQLFYpe1AuY2xhc3NOYW1lPWZ1bmN0aW9uKFApe3JldHVybiBQLnRyaW0/UC50cmltKCk6UC5yZXBsYWNlKC9eXHMrfFxzKyQvZywiIil9KCgiICIrUC5jbGFzc05hbWUrIiAiKS5yZXBsYWNlKCIgIitW''@;'; + put 'put ''KyIgIiwiICIpKX0sTj1mdW5jdGlvbihQKXtyZXR1cm4vQXJyYXkvLnRlc3QoT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKFApKX0sZWU9ZnVuY3Rpb24oUCl7cmV0dXJuL0RhdGUvLnRlc3QoT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKFApKSYmIWlzTmFOKFAuZ2V0VGlt''@;'; + put 'put ''ZSgpKX0scT1mdW5jdGlvbihQKXt2YXIgVj1QLmdldERheSgpO3JldHVybiAwPT09Vnx8Nj09PVZ9LEo9ZnVuY3Rpb24oUCl7cmV0dXJuIFAlND09MCYmUCUxMDAhPTB8fFAlNDAwPT0wfSxzZT1mdW5jdGlvbihQLFYpe3JldHVyblszMSxKKFApPzI5OjI4LDMxLDMwLDMxLDMwLDMxLDMxLDMw''@;'; + put 'put ''LDMxLDMwLDMxXVtWXX0sb2U9ZnVuY3Rpb24oUCl7ZWUoUCkmJlAuc2V0SG91cnMoMCwwLDAsMCl9LGNlPWZ1bmN0aW9uKFAsVil7cmV0dXJuIFAuZ2V0VGltZSgpPT09Vi5nZXRUaW1lKCl9LGRlPWZ1bmN0aW9uKFAsVixUKXt2YXIgUyxGO2ZvcihTIGluIFYpKEY9dm9pZCAwIT09UFtTXSkm''@;'; + put 'put ''JiJvYmplY3QiPT10eXBlb2YgVltTXSYmbnVsbCE9PVZbU10mJnZvaWQgMD09PVZbU10ubm9kZU5hbWU/ZWUoVltTXSk/VCYmKFBbU109bmV3IERhdGUoVltTXS5nZXRUaW1lKCkpKTpOKFZbU10pP1QmJihQW1NdPVZbU10uc2xpY2UoMCkpOlBbU109ZGUoe30sVltTXSxUKTooVHx8IUYpJiYo''@;'; + put 'put ''UFtTXT1WW1NdKTtyZXR1cm4gUH0sdmU9ZnVuY3Rpb24oUCxWLFQpe3ZhciBTO01lLmNyZWF0ZUV2ZW50PygoUz1NZS5jcmVhdGVFdmVudCgiSFRNTEV2ZW50cyIpKS5pbml0RXZlbnQoViwhMCwhMSksUz1kZShTLFQpLFAuZGlzcGF0Y2hFdmVudChTKSk6TWUuY3JlYXRlRXZlbnRPYmplY3Qm''@;'; + put 'put ''JihTPU1lLmNyZWF0ZUV2ZW50T2JqZWN0KCksUz1kZShTLFQpLFAuZmlyZUV2ZW50KCJvbiIrVixTKSl9LEFlPWZ1bmN0aW9uKFApe3JldHVybiBQLm1vbnRoPDAmJihQLnllYXItPU1hdGguY2VpbChNYXRoLmFicyhQLm1vbnRoKS8xMiksUC5tb250aCs9MTIpLFAubW9udGg+MTEmJihQLnll''@;'; + put 'put ''YXIrPU1hdGguZmxvb3IoTWF0aC5hYnMoUC5tb250aCkvMTIpLFAubW9udGgtPTEyKSxQfSxrZT17ZmllbGQ6bnVsbCxib3VuZDp2b2lkIDAsYXJpYUxhYmVsOiJVc2UgdGhlIGFycm93IGtleXMgdG8gcGljayBhIGRhdGUiLHBvc2l0aW9uOiJib3R0b20gbGVmdCIscmVwb3NpdGlvbjohMCxm''@;'; + put 'put ''b3JtYXQ6IllZWVktTU0tREQiLHRvU3RyaW5nOm51bGwscGFyc2U6bnVsbCxkZWZhdWx0RGF0ZTpudWxsLHNldERlZmF1bHREYXRlOiExLGZpcnN0RGF5OjAsZmlyc3RXZWVrT2ZZZWFyTWluRGF5czo0LGZvcm1hdFN0cmljdDohMSxtaW5EYXRlOm51bGwsbWF4RGF0ZTpudWxsLHllYXJSYW5n''@;'; + put 'put ''ZToxMCxzaG93V2Vla051bWJlcjohMSxwaWNrV2hvbGVXZWVrOiExLG1pblllYXI6MCxtYXhZZWFyOjk5OTksbWluTW9udGg6dm9pZCAwLG1heE1vbnRoOnZvaWQgMCxzdGFydFJhbmdlOm51bGwsZW5kUmFuZ2U6bnVsbCxpc1JUTDohMSx5ZWFyU3VmZml4OiIiLHNob3dNb250aEFmdGVyWWVh''@;'; + put 'put ''cjohMSxzaG93RGF5c0luTmV4dEFuZFByZXZpb3VzTW9udGhzOiExLGVuYWJsZVNlbGVjdGlvbkRheXNJbk5leHRBbmRQcmV2aW91c01vbnRoczohMSxudW1iZXJPZk1vbnRoczoxLG1haW5DYWxlbmRhcjoibGVmdCIsY29udGFpbmVyOnZvaWQgMCxibHVyRmllbGRPblNlbGVjdDohMCxpMThu''@;'; + put 'put ''OntwcmV2aW91c01vbnRoOiJQcmV2aW91cyBNb250aCIsbmV4dE1vbnRoOiJOZXh0IE1vbnRoIixtb250aHM6WyJKYW51YXJ5IiwiRmVicnVhcnkiLCJNYXJjaCIsIkFwcmlsIiwiTWF5IiwiSnVuZSIsIkp1bHkiLCJBdWd1c3QiLCJTZXB0ZW1iZXIiLCJPY3RvYmVyIiwiTm92ZW1iZXIiLCJE''@;'; + put 'put ''ZWNlbWJlciJdLHdlZWtkYXlzOlsiU3VuZGF5IiwiTW9uZGF5IiwiVHVlc2RheSIsIldlZG5lc2RheSIsIlRodXJzZGF5IiwiRnJpZGF5IiwiU2F0dXJkYXkiXSx3ZWVrZGF5c1Nob3J0OlsiU3VuIiwiTW9uIiwiVHVlIiwiV2VkIiwiVGh1IiwiRnJpIiwiU2F0Il19LHRoZW1lOm51bGwsZXZl''@;'; + put 'put ''bnRzOltdLG9uU2VsZWN0Om51bGwsb25PcGVuOm51bGwsb25DbG9zZTpudWxsLG9uRHJhdzpudWxsLGtleWJvYXJkSW5wdXQ6ITB9LFNlPWZ1bmN0aW9uKFAsVixUKXtmb3IoVis9UC5maXJzdERheTtWPj03OylWLT03O3JldHVybiBUP1AuaTE4bi53ZWVrZGF5c1Nob3J0W1ZdOlAuaTE4bi53''@;'; + put 'put ''ZWVrZGF5c1tWXX0sSWU9ZnVuY3Rpb24oUCl7dmFyIFY9W10sVD0iZmFsc2UiO2lmKFAuaXNFbXB0eSl7aWYoIVAuc2hvd0RheXNJbk5leHRBbmRQcmV2aW91c01vbnRocylyZXR1cm4nPHRkIGNsYXNzPSJpcy1lbXB0eSI+PC90ZD4nO1YucHVzaCgiaXMtb3V0c2lkZS1jdXJyZW50LW1vbnRo''@;'; + put 'put ''IiksUC5lbmFibGVTZWxlY3Rpb25EYXlzSW5OZXh0QW5kUHJldmlvdXNNb250aHN8fFYucHVzaCgiaXMtc2VsZWN0aW9uLWRpc2FibGVkIil9cmV0dXJuIFAuaXNEaXNhYmxlZCYmVi5wdXNoKCJpcy1kaXNhYmxlZCIpLFAuaXNUb2RheSYmVi5wdXNoKCJpcy10b2RheSIpLFAuaXNTZWxlY3Rl''@;'; + put 'put ''ZCYmKFYucHVzaCgiaXMtc2VsZWN0ZWQiKSxUPSJ0cnVlIiksUC5oYXNFdmVudCYmVi5wdXNoKCJoYXMtZXZlbnQiKSxQLmlzSW5SYW5nZSYmVi5wdXNoKCJpcy1pbnJhbmdlIiksUC5pc1N0YXJ0UmFuZ2UmJlYucHVzaCgiaXMtc3RhcnRyYW5nZSIpLFAuaXNFbmRSYW5nZSYmVi5wdXNoKCJp''@;'; + put 'put ''cy1lbmRyYW5nZSIpLCc8dGQgZGF0YS1kYXk9IicrUC5kYXkrJyIgY2xhc3M9IicrVi5qb2luKCIgIikrJyIgYXJpYS1zZWxlY3RlZD0iJytUKyciPjxidXR0b24gY2xhc3M9InBpa2EtYnV0dG9uIHBpa2EtZGF5IiB0eXBlPSJidXR0b24iIGRhdGEtcGlrYS15ZWFyPSInK1AueWVhcisnIiBk''@;'; + put 'put ''YXRhLXBpa2EtbW9udGg9IicrUC5tb250aCsnIiBkYXRhLXBpa2EtZGF5PSInK1AuZGF5KyciPicrUC5kYXkrIjwvYnV0dG9uPjwvdGQ+In0sRWU9ZnVuY3Rpb24oUCxWLFQsUyl7dmFyIEY9bmV3IERhdGUoVCxWLFApO3JldHVybic8dGQgY2xhc3M9InBpa2Etd2VlayI+JysoQj9tZShGKS5p''@;'; + put 'put ''c29XZWVrKCk6ZnVuY3Rpb24oUCxWKXtQLnNldEhvdXJzKDAsMCwwLDApO3ZhciBUPVAuZ2V0RGF0ZSgpLFM9UC5nZXREYXkoKSxGPVYseWU9Ri0xLERlPWZ1bmN0aW9uKHd0KXtyZXR1cm4od3QrNy0xKSU3fTtQLnNldERhdGUoVCt5ZS1EZShTKSk7dmFyIFBlPW5ldyBEYXRlKFAuZ2V0RnVs''@;'; + put 'put ''bFllYXIoKSwwLEYpLCRlPShQLmdldFRpbWUoKS1QZS5nZXRUaW1lKCkpLzg2NGU1O3JldHVybiAxK01hdGgucm91bmQoKCRlLXllK0RlKFBlLmdldERheSgpKSkvNyl9KEYsUykpKyI8L3RkPiJ9LGhlPWZ1bmN0aW9uKFAsVixULFMpe3JldHVybic8dHIgY2xhc3M9InBpa2Etcm93JysoVD8i''@;'; + put 'put ''IHBpY2std2hvbGUtd2VlayI6IiIpKyhTPyIgaXMtc2VsZWN0ZWQiOiIiKSsnIj4nKyhWP1AucmV2ZXJzZSgpOlApLmpvaW4oIiIpKyI8L3RyPiJ9LG5lPWZ1bmN0aW9uKFAsVixULFMsRix5ZSl7dmFyIENlLERlLFBlLG10LHZ0LFFlPVAuX28sJGU9VD09PVFlLm1pblllYXIsZ3Q9VD09PVFl''@;'; + put 'put ''Lm1heFllYXIsd3Q9JzxkaXYgaWQ9IicreWUrJyIgY2xhc3M9InBpa2EtdGl0bGUiIHJvbGU9ImhlYWRpbmciIGFyaWEtbGl2ZT0iYXNzZXJ0aXZlIj4nLEF0PSEwLGh0PSEwO2ZvcihQZT1bXSxDZT0wO0NlPDEyO0NlKyspUGUucHVzaCgnPG9wdGlvbiB2YWx1ZT0iJysoVD09PUY/Q2UtVjox''@;'; + put 'put ''MitDZS1WKSsnIicrKENlPT09Uz8nIHNlbGVjdGVkPSJzZWxlY3RlZCInOiIiKSsoJGUmJkNlPFFlLm1pbk1vbnRofHxndCYmQ2U+UWUubWF4TW9udGg/JyBkaXNhYmxlZD0iZGlzYWJsZWQiJzoiIikrIj4iK1FlLmkxOG4ubW9udGhzW0NlXSsiPC9vcHRpb24+Iik7Zm9yKG10PSc8ZGl2IGNs''@;'; + put 'put ''YXNzPSJwaWthLWxhYmVsIj4nK1FlLmkxOG4ubW9udGhzW1NdKyc8c2VsZWN0IGNsYXNzPSJwaWthLXNlbGVjdCBwaWthLXNlbGVjdC1tb250aCIgdGFiaW5kZXg9Ii0xIj4nK1BlLmpvaW4oIiIpKyI8L3NlbGVjdD48L2Rpdj4iLE4oUWUueWVhclJhbmdlKT8oQ2U9UWUueWVhclJhbmdlWzBd''@;'; + put 'put ''LERlPVFlLnllYXJSYW5nZVsxXSsxKTooQ2U9VC1RZS55ZWFyUmFuZ2UsRGU9MStUK1FlLnllYXJSYW5nZSksUGU9W107Q2U8RGUmJkNlPD1RZS5tYXhZZWFyO0NlKyspQ2U+PVFlLm1pblllYXImJlBlLnB1c2goJzxvcHRpb24gdmFsdWU9IicrQ2UrJyInKyhDZT09PVQ/JyBzZWxlY3RlZD0i''@;'; + put 'put ''c2VsZWN0ZWQiJzoiIikrIj4iK0NlKyI8L29wdGlvbj4iKTtyZXR1cm4gdnQ9JzxkaXYgY2xhc3M9InBpa2EtbGFiZWwiPicrVCtRZS55ZWFyU3VmZml4Kyc8c2VsZWN0IGNsYXNzPSJwaWthLXNlbGVjdCBwaWthLXNlbGVjdC15ZWFyIiB0YWJpbmRleD0iLTEiPicrUGUuam9pbigiIikrIjwv''@;'; + put 'put ''c2VsZWN0PjwvZGl2PiIsd3QrPVFlLnNob3dNb250aEFmdGVyWWVhcj92dCttdDptdCt2dCwkZSYmKDA9PT1TfHxRZS5taW5Nb250aD49UykmJihBdD0hMSksZ3QmJigxMT09PVN8fFFlLm1heE1vbnRoPD1TKSYmKGh0PSExKSwwPT09ViYmKHd0Kz0nPGJ1dHRvbiBjbGFzcz0icGlrYS1wcmV2''@;'; + put 'put ''JysoQXQ/IiI6IiBpcy1kaXNhYmxlZCIpKyciIHR5cGU9ImJ1dHRvbiI+JytRZS5pMThuLnByZXZpb3VzTW9udGgrIjwvYnV0dG9uPiIpLFY9PT1QLl9vLm51bWJlck9mTW9udGhzLTEmJih3dCs9JzxidXR0b24gY2xhc3M9InBpa2EtbmV4dCcrKGh0PyIiOiIgaXMtZGlzYWJsZWQiKSsnIiB0''@;'; + put 'put ''eXBlPSJidXR0b24iPicrUWUuaTE4bi5uZXh0TW9udGgrIjwvYnV0dG9uPiIpLHd0KyI8L2Rpdj4ifSx0ZT1mdW5jdGlvbihQLFYsVCl7cmV0dXJuJzx0YWJsZSBjZWxscGFkZGluZz0iMCIgY2VsbHNwYWNpbmc9IjAiIGNsYXNzPSJwaWthLXRhYmxlIiByb2xlPSJncmlkIiBhcmlhLWxhYmVs''@;'; + put 'put ''bGVkYnk9IicrVCsnIj4nK2Z1bmN0aW9uKFApe3ZhciBWLFQ9W107Zm9yKFAuc2hvd1dlZWtOdW1iZXImJlQucHVzaCgiPHRoPjwvdGg+IiksVj0wO1Y8NztWKyspVC5wdXNoKCc8dGggc2NvcGU9ImNvbCI+PGFiYnIgdGl0bGU9IicrU2UoUCxWKSsnIj4nK1NlKFAsViwhMCkrIjwvYWJicj48''@;'; + put 'put ''L3RoPiIpO3JldHVybiI8dGhlYWQ+PHRyPiIrKFAuaXNSVEw/VC5yZXZlcnNlKCk6VCkuam9pbigiIikrIjwvdHI+PC90aGVhZD4ifShQKStmdW5jdGlvbihQKXtyZXR1cm4iPHRib2R5PiIrUC5qb2luKCIiKSsiPC90Ym9keT4ifShWKSsiPC90YWJsZT4ifSx4PWZ1bmN0aW9uKFApe3ZhciBW''@;'; + put 'put ''PXRoaXMsVD1WLmNvbmZpZyhQKTtWLl9vbk1vdXNlRG93bj1mdW5jdGlvbihGKXtpZihWLl92KXt2YXIgeWU9KEY9Rnx8d2luZG93LmV2ZW50KS50YXJnZXR8fEYuc3JjRWxlbWVudDtpZih5ZSlpZihhZSh5ZSwiaXMtZGlzYWJsZWQiKXx8KCFhZSh5ZSwicGlrYS1idXR0b24iKXx8YWUoeWUs''@;'; + put 'put ''ImlzLWVtcHR5Iil8fGFlKHllLnBhcmVudE5vZGUsImlzLWRpc2FibGVkIik/YWUoeWUsInBpa2EtcHJldiIpP1YucHJldk1vbnRoKCk6YWUoeWUsInBpa2EtbmV4dCIpJiZWLm5leHRNb250aCgpOihWLnNldERhdGUobmV3IERhdGUoeWUuZ2V0QXR0cmlidXRlKCJkYXRhLXBpa2EteWVhciIp''@;'; + put 'put ''LHllLmdldEF0dHJpYnV0ZSgiZGF0YS1waWthLW1vbnRoIikseWUuZ2V0QXR0cmlidXRlKCJkYXRhLXBpa2EtZGF5IikpKSxULmJvdW5kJiZVKGZ1bmN0aW9uKCl7Vi5oaWRlKCksVC5ibHVyRmllbGRPblNlbGVjdCYmVC5maWVsZCYmVC5maWVsZC5ibHVyKCl9LDEwMCkpKSxhZSh5ZSwicGlr''@;'; + put 'put ''YS1zZWxlY3QiKSlWLl9jPSEwO2Vsc2V7aWYoIUYucHJldmVudERlZmF1bHQpcmV0dXJuIEYucmV0dXJuVmFsdWU9ITEsITE7Ri5wcmV2ZW50RGVmYXVsdCgpfX19LFYuX29uQ2hhbmdlPWZ1bmN0aW9uKEYpe3ZhciB5ZT0oRj1GfHx3aW5kb3cuZXZlbnQpLnRhcmdldHx8Ri5zcmNFbGVtZW50''@;'; + put 'put ''OyF5ZXx8KGFlKHllLCJwaWthLXNlbGVjdC1tb250aCIpP1YuZ290b01vbnRoKHllLnZhbHVlKTphZSh5ZSwicGlrYS1zZWxlY3QteWVhciIpJiZWLmdvdG9ZZWFyKHllLnZhbHVlKSl9LFYuX29uS2V5Q2hhbmdlPWZ1bmN0aW9uKEYpe2lmKEY9Rnx8d2luZG93LmV2ZW50LFYuaXNWaXNpYmxl''@;'; + put 'put ''KCkpc3dpdGNoKEYua2V5Q29kZSl7Y2FzZSAxMzpjYXNlIDI3OlQuZmllbGQmJlQuZmllbGQuYmx1cigpO2JyZWFrO2Nhc2UgMzc6Vi5hZGp1c3REYXRlKCJzdWJ0cmFjdCIsMSk7YnJlYWs7Y2FzZSAzODpWLmFkanVzdERhdGUoInN1YnRyYWN0Iiw3KTticmVhaztjYXNlIDM5OlYuYWRqdXN0''@;'; + put 'put ''RGF0ZSgiYWRkIiwxKTticmVhaztjYXNlIDQwOlYuYWRqdXN0RGF0ZSgiYWRkIiw3KTticmVhaztjYXNlIDg6Y2FzZSA0NjpWLnNldERhdGUobnVsbCl9fSxWLl9wYXJzZUZpZWxkVmFsdWU9ZnVuY3Rpb24oKXtpZihULnBhcnNlKXJldHVybiBULnBhcnNlKFQuZmllbGQudmFsdWUsVC5mb3Jt''@;'; + put 'put ''YXQpO2lmKEIpe3ZhciBGPW1lKFQuZmllbGQudmFsdWUsVC5mb3JtYXQsVC5mb3JtYXRTdHJpY3QpO3JldHVybiBGJiZGLmlzVmFsaWQoKT9GLnRvRGF0ZSgpOm51bGx9cmV0dXJuIG5ldyBEYXRlKERhdGUucGFyc2UoVC5maWVsZC52YWx1ZSkpfSxWLl9vbklucHV0Q2hhbmdlPWZ1bmN0aW9u''@;'; + put 'put ''KEYpe3ZhciB5ZTtGLmZpcmVkQnkhPT1WJiYoeWU9Vi5fcGFyc2VGaWVsZFZhbHVlKCksZWUoeWUpJiZWLnNldERhdGUoeWUpLFYuX3Z8fFYuc2hvdygpKX0sVi5fb25JbnB1dEZvY3VzPWZ1bmN0aW9uKCl7Vi5zaG93KCl9LFYuX29uSW5wdXRDbGljaz1mdW5jdGlvbigpe1Yuc2hvdygpfSxW''@;'; + put 'put ''Ll9vbklucHV0Qmx1cj1mdW5jdGlvbigpe3ZhciBGPU1lLmFjdGl2ZUVsZW1lbnQ7ZG97aWYoYWUoRiwicGlrYS1zaW5nbGUiKSlyZXR1cm59d2hpbGUoRj1GLnBhcmVudE5vZGUpO1YuX2N8fChWLl9iPVUoZnVuY3Rpb24oKXtWLmhpZGUoKX0sNTApKSxWLl9jPSExfSxWLl9vbkNsaWNrPWZ1''@;'; + put 'put ''bmN0aW9uKEYpe3ZhciB5ZT0oRj1GfHx3aW5kb3cuZXZlbnQpLnRhcmdldHx8Ri5zcmNFbGVtZW50LENlPXllO2lmKHllKXshRSYmYWUoeWUsInBpa2Etc2VsZWN0IikmJih5ZS5vbmNoYW5nZXx8KHllLnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCJyZXR1cm47IiksUSh5ZSwiY2hhbmdlIixW''@;'; + put 'put ''Ll9vbkNoYW5nZSkpKTtkb3tpZihhZShDZSwicGlrYS1zaW5nbGUiKXx8Q2U9PT1ULnRyaWdnZXIpcmV0dXJufXdoaWxlKENlPUNlLnBhcmVudE5vZGUpO1YuX3YmJnllIT09VC50cmlnZ2VyJiZDZSE9PVQudHJpZ2dlciYmVi5oaWRlKCl9fSxWLmVsPU1lLmNyZWF0ZUVsZW1lbnQoImRpdiIp''@;'; + put 'put ''LFYuZWwuY2xhc3NOYW1lPSJwaWthLXNpbmdsZSIrKFQuaXNSVEw/IiBpcy1ydGwiOiIiKSsoVC50aGVtZT8iICIrVC50aGVtZToiIiksUShWLmVsLCJtb3VzZWRvd24iLFYuX29uTW91c2VEb3duLCEwKSxRKFYuZWwsInRvdWNoZW5kIixWLl9vbk1vdXNlRG93biwhMCksUShWLmVsLCJjaGFu''@;'; + put 'put ''Z2UiLFYuX29uQ2hhbmdlKSxULmtleWJvYXJkSW5wdXQmJlEoTWUsImtleWRvd24iLFYuX29uS2V5Q2hhbmdlKSxULmZpZWxkJiYoVC5jb250YWluZXI/VC5jb250YWluZXIuYXBwZW5kQ2hpbGQoVi5lbCk6VC5ib3VuZD9NZS5ib2R5LmFwcGVuZENoaWxkKFYuZWwpOlQuZmllbGQucGFyZW50''@;'; + put 'put ''Tm9kZS5pbnNlcnRCZWZvcmUoVi5lbCxULmZpZWxkLm5leHRTaWJsaW5nKSxRKFQuZmllbGQsImNoYW5nZSIsVi5fb25JbnB1dENoYW5nZSksVC5kZWZhdWx0RGF0ZXx8KFQuZGVmYXVsdERhdGU9Vi5fcGFyc2VGaWVsZFZhbHVlKCksVC5zZXREZWZhdWx0RGF0ZT0hMCkpO3ZhciBTPVQuZGVm''@;'; + put 'put ''YXVsdERhdGU7ZWUoUyk/VC5zZXREZWZhdWx0RGF0ZT9WLnNldERhdGUoUywhMCk6Vi5nb3RvRGF0ZShTKTpWLmdvdG9EYXRlKG5ldyBEYXRlKSxULmJvdW5kPyh0aGlzLmhpZGUoKSxWLmVsLmNsYXNzTmFtZSs9IiBpcy1ib3VuZCIsUShULnRyaWdnZXIsImNsaWNrIixWLl9vbklucHV0Q2xp''@;'; + put 'put ''Y2spLFEoVC50cmlnZ2VyLCJmb2N1cyIsVi5fb25JbnB1dEZvY3VzKSxRKFQudHJpZ2dlciwiYmx1ciIsVi5fb25JbnB1dEJsdXIpKTp0aGlzLnNob3coKX07cmV0dXJuIHgucHJvdG90eXBlPXtjb25maWc6ZnVuY3Rpb24oUCl7dGhpcy5fb3x8KHRoaXMuX289ZGUoe30sa2UsITApKTt2YXIg''@;'; + put 'put ''Vj1kZSh0aGlzLl9vLFAsITApO1YuaXNSVEw9ISFWLmlzUlRMLFYuZmllbGQ9Vi5maWVsZCYmVi5maWVsZC5ub2RlTmFtZT9WLmZpZWxkOm51bGwsVi50aGVtZT0ic3RyaW5nIj09dHlwZW9mIFYudGhlbWUmJlYudGhlbWU/Vi50aGVtZTpudWxsLFYuYm91bmQ9ISEodm9pZCAwIT09Vi5ib3Vu''@;'; + put 'put ''ZD9WLmZpZWxkJiZWLmJvdW5kOlYuZmllbGQpLFYudHJpZ2dlcj1WLnRyaWdnZXImJlYudHJpZ2dlci5ub2RlTmFtZT9WLnRyaWdnZXI6Vi5maWVsZCxWLmRpc2FibGVXZWVrZW5kcz0hIVYuZGlzYWJsZVdlZWtlbmRzLFYuZGlzYWJsZURheUZuPSJmdW5jdGlvbiI9PXR5cGVvZiBWLmRpc2Fi''@;'; + put 'put ''bGVEYXlGbj9WLmRpc2FibGVEYXlGbjpudWxsO3ZhciBUPXBhcnNlSW50KFYubnVtYmVyT2ZNb250aHMsMTApfHwxO2lmKFYubnVtYmVyT2ZNb250aHM9VD40PzQ6VCxlZShWLm1pbkRhdGUpfHwoVi5taW5EYXRlPSExKSxlZShWLm1heERhdGUpfHwoVi5tYXhEYXRlPSExKSxWLm1pbkRhdGUm''@;'; + put 'put ''JlYubWF4RGF0ZSYmVi5tYXhEYXRlPFYubWluRGF0ZSYmKFYubWF4RGF0ZT1WLm1pbkRhdGU9ITEpLFYubWluRGF0ZSYmdGhpcy5zZXRNaW5EYXRlKFYubWluRGF0ZSksVi5tYXhEYXRlJiZ0aGlzLnNldE1heERhdGUoVi5tYXhEYXRlKSxOKFYueWVhclJhbmdlKSl7dmFyIFM9KG5ldyBEYXRl''@;'; + put 'put ''KS5nZXRGdWxsWWVhcigpLTEwO1YueWVhclJhbmdlWzBdPXBhcnNlSW50KFYueWVhclJhbmdlWzBdLDEwKXx8UyxWLnllYXJSYW5nZVsxXT1wYXJzZUludChWLnllYXJSYW5nZVsxXSwxMCl8fFN9ZWxzZSBWLnllYXJSYW5nZT1NYXRoLmFicyhwYXJzZUludChWLnllYXJSYW5nZSwxMCkpfHxr''@;'; + put 'put ''ZS55ZWFyUmFuZ2UsVi55ZWFyUmFuZ2U+MTAwJiYoVi55ZWFyUmFuZ2U9MTAwKTtyZXR1cm4gVn0sdG9TdHJpbmc6ZnVuY3Rpb24oUCl7cmV0dXJuIFA9UHx8dGhpcy5fby5mb3JtYXQsZWUodGhpcy5fZCk/dGhpcy5fby50b1N0cmluZz90aGlzLl9vLnRvU3RyaW5nKHRoaXMuX2QsUCk6Qj9t''@;'; + put 'put ''ZSh0aGlzLl9kKS5mb3JtYXQoUCk6dGhpcy5fZC50b0RhdGVTdHJpbmcoKToiIn0sZ2V0TW9tZW50OmZ1bmN0aW9uKCl7cmV0dXJuIEI/bWUodGhpcy5fZCk6bnVsbH0sc2V0TW9tZW50OmZ1bmN0aW9uKFAsVil7QiYmbWUuaXNNb21lbnQoUCkmJnRoaXMuc2V0RGF0ZShQLnRvRGF0ZSgpLFYp''@;'; + put 'put ''fSxnZXREYXRlOmZ1bmN0aW9uKCl7cmV0dXJuIGVlKHRoaXMuX2QpP25ldyBEYXRlKHRoaXMuX2QuZ2V0VGltZSgpKTpudWxsfSxzZXREYXRlOmZ1bmN0aW9uKFAsVil7aWYoIVApcmV0dXJuIHRoaXMuX2Q9bnVsbCx0aGlzLl9vLmZpZWxkJiYodGhpcy5fby5maWVsZC52YWx1ZT0iIix2ZSh0''@;'; + put 'put ''aGlzLl9vLmZpZWxkLCJjaGFuZ2UiLHtmaXJlZEJ5OnRoaXN9KSksdGhpcy5kcmF3KCk7aWYoInN0cmluZyI9PXR5cGVvZiBQJiYoUD1uZXcgRGF0ZShEYXRlLnBhcnNlKFApKSksZWUoUCkpe3ZhciBUPXRoaXMuX28ubWluRGF0ZSxTPXRoaXMuX28ubWF4RGF0ZTtlZShUKSYmUDxUP1A9VDpl''@;'; + put 'put ''ZShTKSYmUD5TJiYoUD1TKSx0aGlzLl9kPW5ldyBEYXRlKFAuZ2V0VGltZSgpKSxvZSh0aGlzLl9kKSx0aGlzLmdvdG9EYXRlKHRoaXMuX2QpLHRoaXMuX28uZmllbGQmJih0aGlzLl9vLmZpZWxkLnZhbHVlPXRoaXMudG9TdHJpbmcoKSx2ZSh0aGlzLl9vLmZpZWxkLCJjaGFuZ2UiLHtmaXJl''@;'; + put 'put ''ZEJ5OnRoaXN9KSksIVYmJiJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzLl9vLm9uU2VsZWN0JiZ0aGlzLl9vLm9uU2VsZWN0LmNhbGwodGhpcyx0aGlzLmdldERhdGUoKSl9fSxjbGVhcjpmdW5jdGlvbigpe3RoaXMuc2V0RGF0ZShudWxsKX0sZ290b0RhdGU6ZnVuY3Rpb24oUCl7dmFyIFY9ITA7''@;'; + put 'put ''aWYoZWUoUCkpe2lmKHRoaXMuY2FsZW5kYXJzKXt2YXIgVD1uZXcgRGF0ZSh0aGlzLmNhbGVuZGFyc1swXS55ZWFyLHRoaXMuY2FsZW5kYXJzWzBdLm1vbnRoLDEpLFM9bmV3IERhdGUodGhpcy5jYWxlbmRhcnNbdGhpcy5jYWxlbmRhcnMubGVuZ3RoLTFdLnllYXIsdGhpcy5jYWxlbmRhcnNb''@;'; + put 'put ''dGhpcy5jYWxlbmRhcnMubGVuZ3RoLTFdLm1vbnRoLDEpLEY9UC5nZXRUaW1lKCk7Uy5zZXRNb250aChTLmdldE1vbnRoKCkrMSksUy5zZXREYXRlKFMuZ2V0RGF0ZSgpLTEpLFY9RjxULmdldFRpbWUoKXx8Uy5nZXRUaW1lKCk8Rn1WJiYodGhpcy5jYWxlbmRhcnM9W3ttb250aDpQLmdldE1v''@;'; + put 'put ''bnRoKCkseWVhcjpQLmdldEZ1bGxZZWFyKCl9XSwicmlnaHQiPT09dGhpcy5fby5tYWluQ2FsZW5kYXImJih0aGlzLmNhbGVuZGFyc1swXS5tb250aCs9MS10aGlzLl9vLm51bWJlck9mTW9udGhzKSksdGhpcy5hZGp1c3RDYWxlbmRhcnMoKX19LGFkanVzdERhdGU6ZnVuY3Rpb24oUCxWKXt2''@;'; + put 'put ''YXIgRixUPXRoaXMuZ2V0RGF0ZSgpfHxuZXcgRGF0ZSxTPTI0KnBhcnNlSW50KFYpKjYwKjYwKjFlMzsiYWRkIj09PVA/Rj1uZXcgRGF0ZShULnZhbHVlT2YoKStTKToic3VidHJhY3QiPT09UCYmKEY9bmV3IERhdGUoVC52YWx1ZU9mKCktUykpLHRoaXMuc2V0RGF0ZShGKX0sYWRqdXN0Q2Fs''@;'; + put 'put ''ZW5kYXJzOmZ1bmN0aW9uKCl7dGhpcy5jYWxlbmRhcnNbMF09QWUodGhpcy5jYWxlbmRhcnNbMF0pO2Zvcih2YXIgUD0xO1A8dGhpcy5fby5udW1iZXJPZk1vbnRocztQKyspdGhpcy5jYWxlbmRhcnNbUF09QWUoe21vbnRoOnRoaXMuY2FsZW5kYXJzWzBdLm1vbnRoK1AseWVhcjp0aGlzLmNh''@;'; + put 'put ''bGVuZGFyc1swXS55ZWFyfSk7dGhpcy5kcmF3KCl9LGdvdG9Ub2RheTpmdW5jdGlvbigpe3RoaXMuZ290b0RhdGUobmV3IERhdGUpfSxnb3RvTW9udGg6ZnVuY3Rpb24oUCl7aXNOYU4oUCl8fCh0aGlzLmNhbGVuZGFyc1swXS5tb250aD1wYXJzZUludChQLDEwKSx0aGlzLmFkanVzdENhbGVu''@;'; + put 'put ''ZGFycygpKX0sbmV4dE1vbnRoOmZ1bmN0aW9uKCl7dGhpcy5jYWxlbmRhcnNbMF0ubW9udGgrKyx0aGlzLmFkanVzdENhbGVuZGFycygpfSxwcmV2TW9udGg6ZnVuY3Rpb24oKXt0aGlzLmNhbGVuZGFyc1swXS5tb250aC0tLHRoaXMuYWRqdXN0Q2FsZW5kYXJzKCl9LGdvdG9ZZWFyOmZ1bmN0''@;'; + put 'put ''aW9uKFApe2lzTmFOKFApfHwodGhpcy5jYWxlbmRhcnNbMF0ueWVhcj1wYXJzZUludChQLDEwKSx0aGlzLmFkanVzdENhbGVuZGFycygpKX0sc2V0TWluRGF0ZTpmdW5jdGlvbihQKXtQIGluc3RhbmNlb2YgRGF0ZT8ob2UoUCksdGhpcy5fby5taW5EYXRlPVAsdGhpcy5fby5taW5ZZWFyPVAu''@;'; + put 'put ''Z2V0RnVsbFllYXIoKSx0aGlzLl9vLm1pbk1vbnRoPVAuZ2V0TW9udGgoKSk6KHRoaXMuX28ubWluRGF0ZT1rZS5taW5EYXRlLHRoaXMuX28ubWluWWVhcj1rZS5taW5ZZWFyLHRoaXMuX28ubWluTW9udGg9a2UubWluTW9udGgsdGhpcy5fby5zdGFydFJhbmdlPWtlLnN0YXJ0UmFuZ2UpLHRo''@;'; + put 'put ''aXMuZHJhdygpfSxzZXRNYXhEYXRlOmZ1bmN0aW9uKFApe1AgaW5zdGFuY2VvZiBEYXRlPyhvZShQKSx0aGlzLl9vLm1heERhdGU9UCx0aGlzLl9vLm1heFllYXI9UC5nZXRGdWxsWWVhcigpLHRoaXMuX28ubWF4TW9udGg9UC5nZXRNb250aCgpKToodGhpcy5fby5tYXhEYXRlPWtlLm1heERh''@;'; + put 'put ''dGUsdGhpcy5fby5tYXhZZWFyPWtlLm1heFllYXIsdGhpcy5fby5tYXhNb250aD1rZS5tYXhNb250aCx0aGlzLl9vLmVuZFJhbmdlPWtlLmVuZFJhbmdlKSx0aGlzLmRyYXcoKX0sc2V0U3RhcnRSYW5nZTpmdW5jdGlvbihQKXt0aGlzLl9vLnN0YXJ0UmFuZ2U9UH0sc2V0RW5kUmFuZ2U6ZnVu''@;'; + put 'put ''Y3Rpb24oUCl7dGhpcy5fby5lbmRSYW5nZT1QfSxkcmF3OmZ1bmN0aW9uKFApe2lmKHRoaXMuX3Z8fFApe3ZhciBEZSxWPXRoaXMuX28sVD1WLm1pblllYXIsUz1WLm1heFllYXIsRj1WLm1pbk1vbnRoLHllPVYubWF4TW9udGgsQ2U9IiI7dGhpcy5feTw9VCYmKHRoaXMuX3k9VCwhaXNOYU4o''@;'; + put 'put ''RikmJnRoaXMuX208RiYmKHRoaXMuX209RikpLHRoaXMuX3k+PVMmJih0aGlzLl95PVMsIWlzTmFOKHllKSYmdGhpcy5fbT55ZSYmKHRoaXMuX209eWUpKTtmb3IodmFyIFBlPTA7UGU8Vi5udW1iZXJPZk1vbnRocztQZSsrKURlPSJwaWthLXRpdGxlLSIrTWF0aC5yYW5kb20oKS50b1N0cmlu''@;'; + put 'put ''ZygzNikucmVwbGFjZSgvW15hLXpdKy9nLCIiKS5zdWJzdHIoMCwyKSxDZSs9JzxkaXYgY2xhc3M9InBpa2EtbGVuZGFyIj4nK25lKHRoaXMsUGUsdGhpcy5jYWxlbmRhcnNbUGVdLnllYXIsdGhpcy5jYWxlbmRhcnNbUGVdLm1vbnRoLHRoaXMuY2FsZW5kYXJzWzBdLnllYXIsRGUpK3RoaXMu''@;'; + put 'put ''cmVuZGVyKHRoaXMuY2FsZW5kYXJzW1BlXS55ZWFyLHRoaXMuY2FsZW5kYXJzW1BlXS5tb250aCxEZSkrIjwvZGl2PiI7dGhpcy5lbC5pbm5lckhUTUw9Q2UsVi5ib3VuZCYmImhpZGRlbiIhPT1WLmZpZWxkLnR5cGUmJlUoZnVuY3Rpb24oKXtWLnRyaWdnZXIuZm9jdXMoKX0sMSksImZ1bmN0''@;'; + put 'put ''aW9uIj09dHlwZW9mIHRoaXMuX28ub25EcmF3JiZ0aGlzLl9vLm9uRHJhdyh0aGlzKSxWLmJvdW5kJiZWLmZpZWxkLnNldEF0dHJpYnV0ZSgiYXJpYS1sYWJlbCIsVi5hcmlhTGFiZWwpfX0sYWRqdXN0UG9zaXRpb246ZnVuY3Rpb24oKXt2YXIgUCxWLFQsUyxGLHllLENlLERlLFBlLFFlLCRl''@;'; + put 'put ''LGd0O2lmKCF0aGlzLl9vLmNvbnRhaW5lcil7aWYodGhpcy5lbC5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiLFY9UD10aGlzLl9vLnRyaWdnZXIsVD10aGlzLmVsLm9mZnNldFdpZHRoLFM9dGhpcy5lbC5vZmZzZXRIZWlnaHQsRj13aW5kb3cuaW5uZXJXaWR0aHx8TWUuZG9jdW1lbnRFbGVt''@;'; + put 'put ''ZW50LmNsaWVudFdpZHRoLHllPXdpbmRvdy5pbm5lckhlaWdodHx8TWUuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodCxDZT13aW5kb3cucGFnZVlPZmZzZXR8fE1lLmJvZHkuc2Nyb2xsVG9wfHxNZS5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsVG9wLCRlPSEwLGd0PSEwLCJmdW5jdGlvbiI9''@;'; + put 'put ''PXR5cGVvZiBQLmdldEJvdW5kaW5nQ2xpZW50UmVjdClEZT0oUWU9UC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSkubGVmdCt3aW5kb3cucGFnZVhPZmZzZXQsUGU9UWUuYm90dG9tK3dpbmRvdy5wYWdlWU9mZnNldDtlbHNlIGZvcihEZT1WLm9mZnNldExlZnQsUGU9Vi5vZmZzZXRUb3ArVi5v''@;'; + put 'put ''ZmZzZXRIZWlnaHQ7Vj1WLm9mZnNldFBhcmVudDspRGUrPVYub2Zmc2V0TGVmdCxQZSs9Vi5vZmZzZXRUb3A7KHRoaXMuX28ucmVwb3NpdGlvbiYmRGUrVD5GfHx0aGlzLl9vLnBvc2l0aW9uLmluZGV4T2YoInJpZ2h0Iik+LTEmJkRlLVQrUC5vZmZzZXRXaWR0aD4wKSYmKERlPURlLVQrUC5v''@;'; + put 'put ''ZmZzZXRXaWR0aCwkZT0hMSksKHRoaXMuX28ucmVwb3NpdGlvbiYmUGUrUz55ZStDZXx8dGhpcy5fby5wb3NpdGlvbi5pbmRleE9mKCJ0b3AiKT4tMSYmUGUtUy1QLm9mZnNldEhlaWdodD4wKSYmKFBlPVBlLVMtUC5vZmZzZXRIZWlnaHQsZ3Q9ITEpLHRoaXMuZWwuc3R5bGUubGVmdD1EZSsi''@;'; + put 'put ''cHgiLHRoaXMuZWwuc3R5bGUudG9wPVBlKyJweCIsWSh0aGlzLmVsLCRlPyJsZWZ0LWFsaWduZWQiOiJyaWdodC1hbGlnbmVkIiksWSh0aGlzLmVsLGd0PyJib3R0b20tYWxpZ25lZCI6InRvcC1hbGlnbmVkIiksVyh0aGlzLmVsLCRlPyJyaWdodC1hbGlnbmVkIjoibGVmdC1hbGlnbmVkIiks''@;'; + put 'put ''Vyh0aGlzLmVsLGd0PyJ0b3AtYWxpZ25lZCI6ImJvdHRvbS1hbGlnbmVkIil9fSxyZW5kZXI6ZnVuY3Rpb24oUCxWLFQpe3ZhciBTPXRoaXMuX28sRj1uZXcgRGF0ZSx5ZT1zZShQLFYpLENlPW5ldyBEYXRlKFAsViwxKS5nZXREYXkoKSxEZT1bXSxQZT1bXTtvZShGKSxTLmZpcnN0RGF5PjAm''@;'; + put 'put ''JihDZS09Uy5maXJzdERheSk8MCYmKENlKz03KTtmb3IodmFyIFFlPTA9PT1WPzExOlYtMSwkZT0xMT09PVY/MDpWKzEsZ3Q9MD09PVY/UC0xOlAsd3Q9MTE9PT1WP1ArMTpQLG10PXNlKGd0LFFlKSx2dD15ZStDZSxBdD12dDtBdD43OylBdC09Nzt2dCs9Ny1BdDtmb3IodmFyIGh0PSExLEJ0''@;'; + put 'put ''PTAsb249MDtCdDx2dDtCdCsrKXt2YXIgX3Q9bmV3IERhdGUoUCxWLEJ0LUNlKzEpLHR0PSEhZWUodGhpcy5fZCkmJmNlKF90LHRoaXMuX2QpLGV0PWNlKF90LEYpLGF0PS0xIT09Uy5ldmVudHMuaW5kZXhPZihfdC50b0RhdGVTdHJpbmcoKSksTHQ9QnQ8Q2V8fEJ0Pj15ZStDZSxDdD1CdC1D''@;'; + put 'put ''ZSsxLGZ0PVYsSHQ9UCxHZT1TLnN0YXJ0UmFuZ2UmJmNlKFMuc3RhcnRSYW5nZSxfdCksVWU9Uy5lbmRSYW5nZSYmY2UoUy5lbmRSYW5nZSxfdCkseXQ9Uy5zdGFydFJhbmdlJiZTLmVuZFJhbmdlJiZTLnN0YXJ0UmFuZ2U8X3QmJl90PFMuZW5kUmFuZ2UsanQ9Uy5taW5EYXRlJiZfdDxTLm1p''@;'; + put 'put ''bkRhdGV8fFMubWF4RGF0ZSYmX3Q+Uy5tYXhEYXRlfHxTLmRpc2FibGVXZWVrZW5kcyYmcShfdCl8fFMuZGlzYWJsZURheUZuJiZTLmRpc2FibGVEYXlGbihfdCk7THQmJihCdDxDZT8oQ3Q9bXQrQ3QsZnQ9UWUsSHQ9Z3QpOihDdC09eWUsZnQ9JGUsSHQ9d3QpKSxTLnBpY2tXaG9sZVdlZWsm''@;'; + put 'put ''JnR0JiYoaHQ9ITApLFBlLnB1c2goSWUoe2RheTpDdCxtb250aDpmdCx5ZWFyOkh0LGhhc0V2ZW50OmF0LGlzU2VsZWN0ZWQ6dHQsaXNUb2RheTpldCxpc0Rpc2FibGVkOmp0LGlzRW1wdHk6THQsaXNTdGFydFJhbmdlOkdlLGlzRW5kUmFuZ2U6VWUsaXNJblJhbmdlOnl0LHNob3dEYXlzSW5O''@;'; + put 'put ''ZXh0QW5kUHJldmlvdXNNb250aHM6Uy5zaG93RGF5c0luTmV4dEFuZFByZXZpb3VzTW9udGhzLGVuYWJsZVNlbGVjdGlvbkRheXNJbk5leHRBbmRQcmV2aW91c01vbnRoczpTLmVuYWJsZVNlbGVjdGlvbkRheXNJbk5leHRBbmRQcmV2aW91c01vbnRoc30pKSw3PT0rK29uJiYoUy5zaG93V2Vl''@;'; + put 'put ''a051bWJlciYmUGUudW5zaGlmdChFZShCdC1DZSxWLFAsUy5maXJzdFdlZWtPZlllYXJNaW5EYXlzKSksRGUucHVzaChoZShQZSxTLmlzUlRMLFMucGlja1dob2xlV2VlayxodCkpLFBlPVtdLG9uPTAsaHQ9ITEpfXJldHVybiB0ZShTLERlLFQpfSxpc1Zpc2libGU6ZnVuY3Rpb24oKXtyZXR1''@;'; + put 'put ''cm4gdGhpcy5fdn0sc2hvdzpmdW5jdGlvbigpe3RoaXMuaXNWaXNpYmxlKCl8fCh0aGlzLl92PSEwLHRoaXMuZHJhdygpLFcodGhpcy5lbCwiaXMtaGlkZGVuIiksdGhpcy5fby5ib3VuZCYmKFEoTWUsImNsaWNrIix0aGlzLl9vbkNsaWNrKSx0aGlzLmFkanVzdFBvc2l0aW9uKCkpLCJmdW5j''@;'; + put 'put ''dGlvbiI9PXR5cGVvZiB0aGlzLl9vLm9uT3BlbiYmdGhpcy5fby5vbk9wZW4uY2FsbCh0aGlzKSl9LGhpZGU6ZnVuY3Rpb24oKXt2YXIgUD10aGlzLl92OyExIT09UCYmKHRoaXMuX28uYm91bmQmJlooTWUsImNsaWNrIix0aGlzLl9vbkNsaWNrKSx0aGlzLl9vLmNvbnRhaW5lcnx8KHRoaXMu''@;'; + put 'put ''ZWwuc3R5bGUucG9zaXRpb249InN0YXRpYyIsdGhpcy5lbC5zdHlsZS5sZWZ0PSJhdXRvIix0aGlzLmVsLnN0eWxlLnRvcD0iYXV0byIpLFkodGhpcy5lbCwiaXMtaGlkZGVuIiksdGhpcy5fdj0hMSx2b2lkIDAhPT1QJiYiZnVuY3Rpb24iPT10eXBlb2YgdGhpcy5fby5vbkNsb3NlJiZ0aGlz''@;'; + put 'put ''Ll9vLm9uQ2xvc2UuY2FsbCh0aGlzKSl9LGRlc3Ryb3k6ZnVuY3Rpb24oKXt2YXIgUD10aGlzLl9vO3RoaXMuaGlkZSgpLFoodGhpcy5lbCwibW91c2Vkb3duIix0aGlzLl9vbk1vdXNlRG93biwhMCksWih0aGlzLmVsLCJ0b3VjaGVuZCIsdGhpcy5fb25Nb3VzZURvd24sITApLFoodGhpcy5l''@;'; + put 'put ''bCwiY2hhbmdlIix0aGlzLl9vbkNoYW5nZSksUC5rZXlib2FyZElucHV0JiZaKE1lLCJrZXlkb3duIix0aGlzLl9vbktleUNoYW5nZSksUC5maWVsZCYmKFooUC5maWVsZCwiY2hhbmdlIix0aGlzLl9vbklucHV0Q2hhbmdlKSxQLmJvdW5kJiYoWihQLnRyaWdnZXIsImNsaWNrIix0aGlzLl9v''@;'; + put 'put ''bklucHV0Q2xpY2spLFooUC50cmlnZ2VyLCJmb2N1cyIsdGhpcy5fb25JbnB1dEZvY3VzKSxaKFAudHJpZ2dlciwiYmx1ciIsdGhpcy5fb25JbnB1dEJsdXIpKSksdGhpcy5lbC5wYXJlbnROb2RlJiZ0aGlzLmVsLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodGhpcy5lbCl9fSx4fShFKX0oKX0s''@;'; + put 'put ''NjM3MDE6KFhlLEplLEwpPT57SmUucHVibGljRW5jcnlwdD1MKDE2NTYyKSxKZS5wcml2YXRlRGVjcnlwdD1MKDM2NzA1KSxKZS5wcml2YXRlRW5jcnlwdD1mdW5jdGlvbihCLEUpe3JldHVybiBKZS5wdWJsaWNFbmNyeXB0KEIsRSwhMCl9LEplLnB1YmxpY0RlY3J5cHQ9ZnVuY3Rpb24oQixF''@;'; + put 'put ''KXtyZXR1cm4gSmUucHJpdmF0ZURlY3J5cHQoQixFLCEwKX19LDg2OTQ1OihYZSxKZSxMKT0+e3ZhciBtZT1MKDk2Mzg2KSxCPUwoNzM1MDIpLkJ1ZmZlcjtmdW5jdGlvbiBFKE1lKXt2YXIgVT1CLmFsbG9jVW5zYWZlKDQpO3JldHVybiBVLndyaXRlVUludDMyQkUoTWUsMCksVX1YZS5leHBv''@;'; + put 'put ''cnRzPWZ1bmN0aW9uKE1lLFUpe2Zvcih2YXIgaWUsUT1CLmFsbG9jKDApLFo9MDtRLmxlbmd0aDxVOylpZT1FKForKyksUT1CLmNvbmNhdChbUSxtZSgic2hhMSIpLnVwZGF0ZShNZSkudXBkYXRlKGllKS5kaWdlc3QoKV0pO3JldHVybiBRLnNsaWNlKDAsVSl9fSw4MjA1NzpmdW5jdGlvbihY''@;'; + put 'put ''ZSxKZSxMKXshZnVuY3Rpb24obWUsQil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIEUoaGUsTyl7aWYoIWhlKXRocm93IG5ldyBFcnJvcihPfHwiQXNzZXJ0aW9uIGZhaWxlZCIpfWZ1bmN0aW9uIE1lKGhlLE8pe2hlLnN1cGVyXz1PO3ZhciB6PWZ1bmN0aW9uKCl7fTt6LnByb3RvdHlwZT1PLnBy''@;'; + put 'put ''b3RvdHlwZSxoZS5wcm90b3R5cGU9bmV3IHosaGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWhlfWZ1bmN0aW9uIFUoaGUsTyx6KXtpZihVLmlzQk4oaGUpKXJldHVybiBoZTt0aGlzLm5lZ2F0aXZlPTAsdGhpcy53b3Jkcz1udWxsLHRoaXMubGVuZ3RoPTAsdGhpcy5yZWQ9bnVsbCxudWxsIT09''@;'; + put 'put ''aGUmJigoImxlIj09PU98fCJiZSI9PT1PKSYmKHo9TyxPPTEwKSx0aGlzLl9pbml0KGhlfHwwLE98fDEwLHp8fCJiZSIpKX12YXIgUTsib2JqZWN0Ij09dHlwZW9mIG1lP21lLmV4cG9ydHM9VTpCLkJOPVUsVS5CTj1VLFUud29yZFNpemU9MjY7dHJ5e1E9InVuZGVmaW5lZCIhPXR5cGVvZiB3''@;'; + put 'put ''aW5kb3cmJnZvaWQgMCE9PXdpbmRvdy5CdWZmZXI/d2luZG93LkJ1ZmZlcjpMKDc3MTA4KS5CdWZmZXJ9Y2F0Y2goaGUpe31mdW5jdGlvbiBaKGhlLE8pe3ZhciB6PWhlLmNoYXJDb2RlQXQoTyk7cmV0dXJuIHo+PTY1JiZ6PD03MD96LTU1Ono+PTk3JiZ6PD0xMDI/ei04Nzp6LTQ4JjE1fWZ1''@;'; + put 'put ''bmN0aW9uIGllKGhlLE8seil7dmFyIG5lPVooaGUseik7cmV0dXJuIHotMT49TyYmKG5lfD1aKGhlLHotMSk8PDQpLG5lfWZ1bmN0aW9uIGFlKGhlLE8seixuZSl7Zm9yKHZhciB0ZT0wLHg9TWF0aC5taW4oaGUubGVuZ3RoLHopLFA9TztQPHg7UCsrKXt2YXIgVj1oZS5jaGFyQ29kZUF0KFAp''@;'; + put 'put ''LTQ4O3RlKj1uZSx0ZSs9Vj49NDk/Vi00OSsxMDpWPj0xNz9WLTE3KzEwOlZ9cmV0dXJuIHRlfVUuaXNCTj1mdW5jdGlvbihPKXtyZXR1cm4gTyBpbnN0YW5jZW9mIFV8fG51bGwhPT1PJiYib2JqZWN0Ij09dHlwZW9mIE8mJk8uY29uc3RydWN0b3Iud29yZFNpemU9PT1VLndvcmRTaXplJiZB''@;'; + put 'put ''cnJheS5pc0FycmF5KE8ud29yZHMpfSxVLm1heD1mdW5jdGlvbihPLHope3JldHVybiBPLmNtcCh6KT4wP086en0sVS5taW49ZnVuY3Rpb24oTyx6KXtyZXR1cm4gTy5jbXAoeik8MD9POnp9LFUucHJvdG90eXBlLl9pbml0PWZ1bmN0aW9uKE8seixuZSl7aWYoIm51bWJlciI9PXR5cGVvZiBP''@;'; + put 'put ''KXJldHVybiB0aGlzLl9pbml0TnVtYmVyKE8seixuZSk7aWYoIm9iamVjdCI9PXR5cGVvZiBPKXJldHVybiB0aGlzLl9pbml0QXJyYXkoTyx6LG5lKTsiaGV4Ij09PXomJih6PTE2KSxFKHo9PT0oMHx6KSYmej49MiYmejw9MzYpO3ZhciB0ZT0wOyItIj09PShPPU8udG9TdHJpbmcoKS5yZXBs''@;'; + put 'put ''YWNlKC9ccysvZywiIikpWzBdJiYodGUrKyx0aGlzLm5lZ2F0aXZlPTEpLHRlPE8ubGVuZ3RoJiYoMTY9PT16P3RoaXMuX3BhcnNlSGV4KE8sdGUsbmUpOih0aGlzLl9wYXJzZUJhc2UoTyx6LHRlKSwibGUiPT09bmUmJnRoaXMuX2luaXRBcnJheSh0aGlzLnRvQXJyYXkoKSx6LG5lKSkpfSxV''@;'; + put 'put ''LnByb3RvdHlwZS5faW5pdE51bWJlcj1mdW5jdGlvbihPLHosbmUpe088MCYmKHRoaXMubmVnYXRpdmU9MSxPPS1PKSxPPDY3MTA4ODY0Pyh0aGlzLndvcmRzPVs2NzEwODg2MyZPXSx0aGlzLmxlbmd0aD0xKTpPPDQ1MDM1OTk2MjczNzA0OTY/KHRoaXMud29yZHM9WzY3MTA4ODYzJk8sTy82''@;'; + put 'put ''NzEwODg2NCY2NzEwODg2M10sdGhpcy5sZW5ndGg9Mik6KEUoTzw5MDA3MTk5MjU0NzQwOTkyKSx0aGlzLndvcmRzPVs2NzEwODg2MyZPLE8vNjcxMDg4NjQmNjcxMDg4NjMsMV0sdGhpcy5sZW5ndGg9MyksImxlIj09PW5lJiZ0aGlzLl9pbml0QXJyYXkodGhpcy50b0FycmF5KCkseixuZSl9''@;'; + put 'put ''LFUucHJvdG90eXBlLl9pbml0QXJyYXk9ZnVuY3Rpb24oTyx6LG5lKXtpZihFKCJudW1iZXIiPT10eXBlb2YgTy5sZW5ndGgpLE8ubGVuZ3RoPD0wKXJldHVybiB0aGlzLndvcmRzPVswXSx0aGlzLmxlbmd0aD0xLHRoaXM7dGhpcy5sZW5ndGg9TWF0aC5jZWlsKE8ubGVuZ3RoLzMpLHRoaXMu''@;'; + put 'put ''d29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoKTtmb3IodmFyIHRlPTA7dGU8dGhpcy5sZW5ndGg7dGUrKyl0aGlzLndvcmRzW3RlXT0wO3ZhciB4LFAsVj0wO2lmKCJiZSI9PT1uZSlmb3IodGU9Ty5sZW5ndGgtMSx4PTA7dGU+PTA7dGUtPTMpdGhpcy53b3Jkc1t4XXw9KFA9T1t0ZV18T1t0''@;'; + put 'put ''ZS0xXTw8OHxPW3RlLTJdPDwxNik8PFYmNjcxMDg4NjMsdGhpcy53b3Jkc1t4KzFdPVA+Pj4yNi1WJjY3MTA4ODYzLChWKz0yNCk+PTI2JiYoVi09MjYseCsrKTtlbHNlIGlmKCJsZSI9PT1uZSlmb3IodGU9MCx4PTA7dGU8Ty5sZW5ndGg7dGUrPTMpdGhpcy53b3Jkc1t4XXw9KFA9T1t0ZV18''@;'; + put 'put ''T1t0ZSsxXTw8OHxPW3RlKzJdPDwxNik8PFYmNjcxMDg4NjMsdGhpcy53b3Jkc1t4KzFdPVA+Pj4yNi1WJjY3MTA4ODYzLChWKz0yNCk+PTI2JiYoVi09MjYseCsrKTtyZXR1cm4gdGhpcy5zdHJpcCgpfSxVLnByb3RvdHlwZS5fcGFyc2VIZXg9ZnVuY3Rpb24oTyx6LG5lKXt0aGlzLmxlbmd0''@;'; + put 'put ''aD1NYXRoLmNlaWwoKE8ubGVuZ3RoLXopLzYpLHRoaXMud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoKTtmb3IodmFyIHRlPTA7dGU8dGhpcy5sZW5ndGg7dGUrKyl0aGlzLndvcmRzW3RlXT0wO3ZhciBWLHg9MCxQPTA7aWYoImJlIj09PW5lKWZvcih0ZT1PLmxlbmd0aC0xO3RlPj16O3Rl''@;'; + put 'put ''LT0yKVY9aWUoTyx6LHRlKTw8eCx0aGlzLndvcmRzW1BdfD02NzEwODg2MyZWLHg+PTE4Pyh4LT0xOCx0aGlzLndvcmRzW1ArPTFdfD1WPj4+MjYpOngrPTg7ZWxzZSBmb3IodGU9KE8ubGVuZ3RoLXopJTI9PTA/eisxOno7dGU8Ty5sZW5ndGg7dGUrPTIpVj1pZShPLHosdGUpPDx4LHRoaXMu''@;'; + put 'put ''d29yZHNbUF18PTY3MTA4ODYzJlYseD49MTg/KHgtPTE4LHRoaXMud29yZHNbUCs9MV18PVY+Pj4yNik6eCs9ODt0aGlzLnN0cmlwKCl9LFUucHJvdG90eXBlLl9wYXJzZUJhc2U9ZnVuY3Rpb24oTyx6LG5lKXt0aGlzLndvcmRzPVswXSx0aGlzLmxlbmd0aD0xO2Zvcih2YXIgdGU9MCx4PTE7''@;'; + put 'put ''eDw9NjcxMDg4NjM7eCo9eil0ZSsrO3RlLS0seD14L3p8MDtmb3IodmFyIFA9Ty5sZW5ndGgtbmUsVj1QJXRlLFQ9TWF0aC5taW4oUCxQLVYpK25lLFM9MCxGPW5lO0Y8VDtGKz10ZSlTPWFlKE8sRixGK3RlLHopLHRoaXMuaW11bG4oeCksdGhpcy53b3Jkc1swXStTPDY3MTA4ODY0P3RoaXMu''@;'; + put 'put ''d29yZHNbMF0rPVM6dGhpcy5faWFkZG4oUyk7aWYoMCE9PVYpe3ZhciB5ZT0xO2ZvcihTPWFlKE8sRixPLmxlbmd0aCx6KSxGPTA7RjxWO0YrKyl5ZSo9ejt0aGlzLmltdWxuKHllKSx0aGlzLndvcmRzWzBdK1M8NjcxMDg4NjQ/dGhpcy53b3Jkc1swXSs9Uzp0aGlzLl9pYWRkbihTKX10aGlz''@;'; + put 'put ''LnN0cmlwKCl9LFUucHJvdG90eXBlLmNvcHk9ZnVuY3Rpb24oTyl7Ty53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgpO2Zvcih2YXIgej0wO3o8dGhpcy5sZW5ndGg7eisrKU8ud29yZHNbel09dGhpcy53b3Jkc1t6XTtPLmxlbmd0aD10aGlzLmxlbmd0aCxPLm5lZ2F0aXZlPXRoaXMubmVn''@;'; + put 'put ''YXRpdmUsTy5yZWQ9dGhpcy5yZWR9LFUucHJvdG90eXBlLmNsb25lPWZ1bmN0aW9uKCl7dmFyIE89bmV3IFUobnVsbCk7cmV0dXJuIHRoaXMuY29weShPKSxPfSxVLnByb3RvdHlwZS5fZXhwYW5kPWZ1bmN0aW9uKE8pe2Zvcig7dGhpcy5sZW5ndGg8TzspdGhpcy53b3Jkc1t0aGlzLmxlbmd0''@;'; + put 'put ''aCsrXT0wO3JldHVybiB0aGlzfSxVLnByb3RvdHlwZS5zdHJpcD1mdW5jdGlvbigpe2Zvcig7dGhpcy5sZW5ndGg+MSYmMD09PXRoaXMud29yZHNbdGhpcy5sZW5ndGgtMV07KXRoaXMubGVuZ3RoLS07cmV0dXJuIHRoaXMuX25vcm1TaWduKCl9LFUucHJvdG90eXBlLl9ub3JtU2lnbj1mdW5j''@;'; + put 'put ''dGlvbigpe3JldHVybiAxPT09dGhpcy5sZW5ndGgmJjA9PT10aGlzLndvcmRzWzBdJiYodGhpcy5uZWdhdGl2ZT0wKSx0aGlzfSxVLnByb3RvdHlwZS5pbnNwZWN0PWZ1bmN0aW9uKCl7cmV0dXJuKHRoaXMucmVkPyI8Qk4tUjogIjoiPEJOOiAiKSt0aGlzLnRvU3RyaW5nKDE2KSsiPiJ9O3Zh''@;'; + put 'put ''ciBZPVsiIiwiMCIsIjAwIiwiMDAwIiwiMDAwMCIsIjAwMDAwIiwiMDAwMDAwIiwiMDAwMDAwMCIsIjAwMDAwMDAwIiwiMDAwMDAwMDAwIiwiMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAw''@;'; + put 'put ''MDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAw''@;'; + put 'put ''MDAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCJdLFc9WzAsMCwyNSwxNiwxMiwxMSwxMCw5LDgsOCw3LDcsNyw3LDYsNiw2LDYsNiw2LDYsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNV0sTj1b''@;'; + put 'put ''MCwwLDMzNTU0NDMyLDQzMDQ2NzIxLDE2Nzc3MjE2LDQ4ODI4MTI1LDYwNDY2MTc2LDQwMzUzNjA3LDE2Nzc3MjE2LDQzMDQ2NzIxLDFlNywxOTQ4NzE3MSwzNTgzMTgwOCw2Mjc0ODUxNyw3NTI5NTM2LDExMzkwNjI1LDE2Nzc3MjE2LDI0MTM3NTY5LDM0MDEyMjI0LDQ3MDQ1ODgxLDY0ZTYs''@;'; + put 'put ''NDA4NDEwMSw1MTUzNjMyLDY0MzYzNDMsNzk2MjYyNCw5NzY1NjI1LDExODgxMzc2LDE0MzQ4OTA3LDE3MjEwMzY4LDIwNTExMTQ5LDI0M2U1LDI4NjI5MTUxLDMzNTU0NDMyLDM5MTM1MzkzLDQ1NDM1NDI0LDUyNTIxODc1LDYwNDY2MTc2XTtmdW5jdGlvbiBxKGhlLE8seil7ei5uZWdhdGl2''@;'; + put 'put ''ZT1PLm5lZ2F0aXZlXmhlLm5lZ2F0aXZlO3ZhciBuZT1oZS5sZW5ndGgrTy5sZW5ndGh8MDt6Lmxlbmd0aD1uZSxuZT1uZS0xfDA7dmFyIHRlPTB8aGUud29yZHNbMF0seD0wfE8ud29yZHNbMF0sUD10ZSp4LFQ9UC82NzEwODg2NHwwO3oud29yZHNbMF09NjcxMDg4NjMmUDtmb3IodmFyIFM9''@;'; + put 'put ''MTtTPG5lO1MrKyl7Zm9yKHZhciBGPVQ+Pj4yNix5ZT02NzEwODg2MyZULENlPU1hdGgubWluKFMsTy5sZW5ndGgtMSksRGU9TWF0aC5tYXgoMCxTLWhlLmxlbmd0aCsxKTtEZTw9Q2U7RGUrKylGKz0oUD0odGU9MHxoZS53b3Jkc1tTLURlfDBdKSooeD0wfE8ud29yZHNbRGVdKSt5ZSkvNjcx''@;'; + put 'put ''MDg4NjR8MCx5ZT02NzEwODg2MyZQO3oud29yZHNbU109MHx5ZSxUPTB8Rn1yZXR1cm4gMCE9PVQ/ei53b3Jkc1tTXT0wfFQ6ei5sZW5ndGgtLSx6LnN0cmlwKCl9VS5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oTyx6KXt2YXIgbmU7aWYoej0wfHp8fDEsMTY9PT0oTz1PfHwxMCl8fCJo''@;'; + put 'put ''ZXgiPT09Tyl7bmU9IiI7Zm9yKHZhciB0ZT0wLHg9MCxQPTA7UDx0aGlzLmxlbmd0aDtQKyspe3ZhciBWPXRoaXMud29yZHNbUF0sVD0oMTY3NzcyMTUmKFY8PHRlfHgpKS50b1N0cmluZygxNik7bmU9MCE9KHg9Vj4+PjI0LXRlJjE2Nzc3MjE1KXx8UCE9PXRoaXMubGVuZ3RoLTE/WVs2LVQu''@;'; + put 'put ''bGVuZ3RoXStUK25lOlQrbmUsKHRlKz0yKT49MjYmJih0ZS09MjYsUC0tKX1mb3IoMCE9PXgmJihuZT14LnRvU3RyaW5nKDE2KStuZSk7bmUubGVuZ3RoJXohPTA7KW5lPSIwIituZTtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmUmJihuZT0iLSIrbmUpLG5lfWlmKE89PT0oMHxPKSYmTz49MiYm''@;'; + put 'put ''Tzw9MzYpe3ZhciBTPVdbT10sRj1OW09dO25lPSIiO3ZhciB5ZT10aGlzLmNsb25lKCk7Zm9yKHllLm5lZ2F0aXZlPTA7IXllLmlzWmVybygpOyl7dmFyIENlPXllLm1vZG4oRikudG9TdHJpbmcoTyk7bmU9KHllPXllLmlkaXZuKEYpKS5pc1plcm8oKT9DZStuZTpZW1MtQ2UubGVuZ3RoXStD''@;'; + put 'put ''ZStuZX1mb3IodGhpcy5pc1plcm8oKSYmKG5lPSIwIituZSk7bmUubGVuZ3RoJXohPTA7KW5lPSIwIituZTtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmUmJihuZT0iLSIrbmUpLG5lfUUoITEsIkJhc2Ugc2hvdWxkIGJlIGJldHdlZW4gMiBhbmQgMzYiKX0sVS5wcm90b3R5cGUudG9OdW1iZXI9''@;'; + put 'put ''ZnVuY3Rpb24oKXt2YXIgTz10aGlzLndvcmRzWzBdO3JldHVybiAyPT09dGhpcy5sZW5ndGg/Tys9NjcxMDg4NjQqdGhpcy53b3Jkc1sxXTozPT09dGhpcy5sZW5ndGgmJjE9PT10aGlzLndvcmRzWzJdP08rPTQ1MDM1OTk2MjczNzA0OTYrNjcxMDg4NjQqdGhpcy53b3Jkc1sxXTp0aGlzLmxl''@;'; + put 'put ''bmd0aD4yJiZFKCExLCJOdW1iZXIgY2FuIG9ubHkgc2FmZWx5IHN0b3JlIHVwIHRvIDUzIGJpdHMiKSwwIT09dGhpcy5uZWdhdGl2ZT8tTzpPfSxVLnByb3RvdHlwZS50b0pTT049ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50b1N0cmluZygxNil9LFUucHJvdG90eXBlLnRvQnVmZmVyPWZ1bmN0''@;'; + put 'put ''aW9uKE8seil7cmV0dXJuIEUodm9pZCAwIT09USksdGhpcy50b0FycmF5TGlrZShRLE8seil9LFUucHJvdG90eXBlLnRvQXJyYXk9ZnVuY3Rpb24oTyx6KXtyZXR1cm4gdGhpcy50b0FycmF5TGlrZShBcnJheSxPLHopfSxVLnByb3RvdHlwZS50b0FycmF5TGlrZT1mdW5jdGlvbihPLHosbmUp''@;'; + put 'put ''e3ZhciB0ZT10aGlzLmJ5dGVMZW5ndGgoKSx4PW5lfHxNYXRoLm1heCgxLHRlKTtFKHRlPD14LCJieXRlIGFycmF5IGxvbmdlciB0aGFuIGRlc2lyZWQgbGVuZ3RoIiksRSh4PjAsIlJlcXVlc3RlZCBhcnJheSBsZW5ndGggPD0gMCIpLHRoaXMuc3RyaXAoKTt2YXIgVCxTLFA9ImxlIj09PXos''@;'; + put 'put ''Vj1uZXcgTyh4KSxGPXRoaXMuY2xvbmUoKTtpZihQKXtmb3IoUz0wOyFGLmlzWmVybygpO1MrKylUPUYuYW5kbG4oMjU1KSxGLml1c2hybig4KSxWW1NdPVQ7Zm9yKDtTPHg7UysrKVZbU109MH1lbHNle2ZvcihTPTA7Uzx4LXRlO1MrKylWW1NdPTA7Zm9yKFM9MDshRi5pc1plcm8oKTtTKysp''@;'; + put 'put ''VD1GLmFuZGxuKDI1NSksRi5pdXNocm4oOCksVlt4LVMtMV09VH1yZXR1cm4gVn0sVS5wcm90b3R5cGUuX2NvdW50Qml0cz1NYXRoLmNsejMyP2Z1bmN0aW9uKE8pe3JldHVybiAzMi1NYXRoLmNsejMyKE8pfTpmdW5jdGlvbihPKXt2YXIgej1PLG5lPTA7cmV0dXJuIHo+PTQwOTYmJihuZSs9''@;'; + put 'put ''MTMsej4+Pj0xMyksej49NjQmJihuZSs9Nyx6Pj4+PTcpLHo+PTgmJihuZSs9NCx6Pj4+PTQpLHo+PTImJihuZSs9Mix6Pj4+PTIpLG5lK3p9LFUucHJvdG90eXBlLl96ZXJvQml0cz1mdW5jdGlvbihPKXtpZigwPT09TylyZXR1cm4gMjY7dmFyIHo9TyxuZT0wO3JldHVybiAwPT0oODE5MSZ6''@;'; + put 'put ''KSYmKG5lKz0xMyx6Pj4+PTEzKSwwPT0oMTI3JnopJiYobmUrPTcsej4+Pj03KSwwPT0oMTUmeikmJihuZSs9NCx6Pj4+PTQpLDA9PSgzJnopJiYobmUrPTIsej4+Pj0yKSwwPT0oMSZ6KSYmbmUrKyxuZX0sVS5wcm90b3R5cGUuYml0TGVuZ3RoPWZ1bmN0aW9uKCl7dmFyIHo9dGhpcy5fY291''@;'; + put 'put ''bnRCaXRzKHRoaXMud29yZHNbdGhpcy5sZW5ndGgtMV0pO3JldHVybiAyNioodGhpcy5sZW5ndGgtMSkren0sVS5wcm90b3R5cGUuemVyb0JpdHM9ZnVuY3Rpb24oKXtpZih0aGlzLmlzWmVybygpKXJldHVybiAwO2Zvcih2YXIgTz0wLHo9MDt6PHRoaXMubGVuZ3RoO3orKyl7dmFyIG5lPXRo''@;'; + put 'put ''aXMuX3plcm9CaXRzKHRoaXMud29yZHNbel0pO2lmKE8rPW5lLDI2IT09bmUpYnJlYWt9cmV0dXJuIE99LFUucHJvdG90eXBlLmJ5dGVMZW5ndGg9ZnVuY3Rpb24oKXtyZXR1cm4gTWF0aC5jZWlsKHRoaXMuYml0TGVuZ3RoKCkvOCl9LFUucHJvdG90eXBlLnRvVHdvcz1mdW5jdGlvbihPKXty''@;'; + put 'put ''ZXR1cm4gMCE9PXRoaXMubmVnYXRpdmU/dGhpcy5hYnMoKS5pbm90bihPKS5pYWRkbigxKTp0aGlzLmNsb25lKCl9LFUucHJvdG90eXBlLmZyb21Ud29zPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLnRlc3RuKE8tMSk/dGhpcy5ub3RuKE8pLmlhZGRuKDEpLmluZWcoKTp0aGlzLmNsb25lKCl9''@;'; + put 'put ''LFUucHJvdG90eXBlLmlzTmVnPWZ1bmN0aW9uKCl7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlfSxVLnByb3RvdHlwZS5uZWc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmluZWcoKX0sVS5wcm90b3R5cGUuaW5lZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmlzWmVybygpfHwodGhp''@;'; + put 'put ''cy5uZWdhdGl2ZV49MSksdGhpc30sVS5wcm90b3R5cGUuaXVvcj1mdW5jdGlvbihPKXtmb3IoO3RoaXMubGVuZ3RoPE8ubGVuZ3RoOyl0aGlzLndvcmRzW3RoaXMubGVuZ3RoKytdPTA7Zm9yKHZhciB6PTA7ejxPLmxlbmd0aDt6KyspdGhpcy53b3Jkc1t6XT10aGlzLndvcmRzW3pdfE8ud29y''@;'; + put 'put ''ZHNbel07cmV0dXJuIHRoaXMuc3RyaXAoKX0sVS5wcm90b3R5cGUuaW9yPWZ1bmN0aW9uKE8pe3JldHVybiBFKDA9PSh0aGlzLm5lZ2F0aXZlfE8ubmVnYXRpdmUpKSx0aGlzLml1b3IoTyl9LFUucHJvdG90eXBlLm9yPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmxlbmd0aD5PLmxlbmd0aD90''@;'; + put 'put ''aGlzLmNsb25lKCkuaW9yKE8pOk8uY2xvbmUoKS5pb3IodGhpcyl9LFUucHJvdG90eXBlLnVvcj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5sZW5ndGg+Ty5sZW5ndGg/dGhpcy5jbG9uZSgpLml1b3IoTyk6Ty5jbG9uZSgpLml1b3IodGhpcyl9LFUucHJvdG90eXBlLml1YW5kPWZ1bmN0aW9u''@;'; + put 'put ''KE8pe3ZhciB6O3o9dGhpcy5sZW5ndGg+Ty5sZW5ndGg/Tzp0aGlzO2Zvcih2YXIgbmU9MDtuZTx6Lmxlbmd0aDtuZSsrKXRoaXMud29yZHNbbmVdPXRoaXMud29yZHNbbmVdJk8ud29yZHNbbmVdO3JldHVybiB0aGlzLmxlbmd0aD16Lmxlbmd0aCx0aGlzLnN0cmlwKCl9LFUucHJvdG90eXBl''@;'; + put 'put ''LmlhbmQ9ZnVuY3Rpb24oTyl7cmV0dXJuIEUoMD09KHRoaXMubmVnYXRpdmV8Ty5uZWdhdGl2ZSkpLHRoaXMuaXVhbmQoTyl9LFUucHJvdG90eXBlLmFuZD1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5sZW5ndGg+Ty5sZW5ndGg/dGhpcy5jbG9uZSgpLmlhbmQoTyk6Ty5jbG9uZSgpLmlhbmQo''@;'; + put 'put ''dGhpcyl9LFUucHJvdG90eXBlLnVhbmQ9ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMubGVuZ3RoPk8ubGVuZ3RoP3RoaXMuY2xvbmUoKS5pdWFuZChPKTpPLmNsb25lKCkuaXVhbmQodGhpcyl9LFUucHJvdG90eXBlLml1eG9yPWZ1bmN0aW9uKE8pe3ZhciB6LG5lO3RoaXMubGVuZ3RoPk8ubGVu''@;'; + put 'put ''Z3RoPyh6PXRoaXMsbmU9Tyk6KHo9TyxuZT10aGlzKTtmb3IodmFyIHRlPTA7dGU8bmUubGVuZ3RoO3RlKyspdGhpcy53b3Jkc1t0ZV09ei53b3Jkc1t0ZV1ebmUud29yZHNbdGVdO2lmKHRoaXMhPT16KWZvcig7dGU8ei5sZW5ndGg7dGUrKyl0aGlzLndvcmRzW3RlXT16LndvcmRzW3RlXTty''@;'; + put 'put ''ZXR1cm4gdGhpcy5sZW5ndGg9ei5sZW5ndGgsdGhpcy5zdHJpcCgpfSxVLnByb3RvdHlwZS5peG9yPWZ1bmN0aW9uKE8pe3JldHVybiBFKDA9PSh0aGlzLm5lZ2F0aXZlfE8ubmVnYXRpdmUpKSx0aGlzLml1eG9yKE8pfSxVLnByb3RvdHlwZS54b3I9ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMu''@;'; + put 'put ''bGVuZ3RoPk8ubGVuZ3RoP3RoaXMuY2xvbmUoKS5peG9yKE8pOk8uY2xvbmUoKS5peG9yKHRoaXMpfSxVLnByb3RvdHlwZS51eG9yPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmxlbmd0aD5PLmxlbmd0aD90aGlzLmNsb25lKCkuaXV4b3IoTyk6Ty5jbG9uZSgpLml1eG9yKHRoaXMpfSxVLnBy''@;'; + put 'put ''b3RvdHlwZS5pbm90bj1mdW5jdGlvbihPKXtFKCJudW1iZXIiPT10eXBlb2YgTyYmTz49MCk7dmFyIHo9MHxNYXRoLmNlaWwoTy8yNiksbmU9TyUyNjt0aGlzLl9leHBhbmQoeiksbmU+MCYmei0tO2Zvcih2YXIgdGU9MDt0ZTx6O3RlKyspdGhpcy53b3Jkc1t0ZV09NjcxMDg4NjMmfnRoaXMu''@;'; + put 'put ''d29yZHNbdGVdO3JldHVybiBuZT4wJiYodGhpcy53b3Jkc1t0ZV09fnRoaXMud29yZHNbdGVdJjY3MTA4ODYzPj4yNi1uZSksdGhpcy5zdHJpcCgpfSxVLnByb3RvdHlwZS5ub3RuPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmNsb25lKCkuaW5vdG4oTyl9LFUucHJvdG90eXBlLnNldG49ZnVu''@;'; + put 'put ''Y3Rpb24oTyx6KXtFKCJudW1iZXIiPT10eXBlb2YgTyYmTz49MCk7dmFyIG5lPU8vMjZ8MCx0ZT1PJTI2O3JldHVybiB0aGlzLl9leHBhbmQobmUrMSksdGhpcy53b3Jkc1tuZV09ej90aGlzLndvcmRzW25lXXwxPDx0ZTp0aGlzLndvcmRzW25lXSZ+KDE8PHRlKSx0aGlzLnN0cmlwKCl9LFUu''@;'; + put 'put ''cHJvdG90eXBlLmlhZGQ9ZnVuY3Rpb24oTyl7dmFyIHosbmUsdGU7aWYoMCE9PXRoaXMubmVnYXRpdmUmJjA9PT1PLm5lZ2F0aXZlKXJldHVybiB0aGlzLm5lZ2F0aXZlPTAsej10aGlzLmlzdWIoTyksdGhpcy5uZWdhdGl2ZV49MSx0aGlzLl9ub3JtU2lnbigpO2lmKDA9PT10aGlzLm5lZ2F0''@;'; + put 'put ''aXZlJiYwIT09Ty5uZWdhdGl2ZSlyZXR1cm4gTy5uZWdhdGl2ZT0wLHo9dGhpcy5pc3ViKE8pLE8ubmVnYXRpdmU9MSx6Ll9ub3JtU2lnbigpO3RoaXMubGVuZ3RoPk8ubGVuZ3RoPyhuZT10aGlzLHRlPU8pOihuZT1PLHRlPXRoaXMpO2Zvcih2YXIgeD0wLFA9MDtQPHRlLmxlbmd0aDtQKysp''@;'; + put 'put ''dGhpcy53b3Jkc1tQXT02NzEwODg2MyYoej0oMHxuZS53b3Jkc1tQXSkrKDB8dGUud29yZHNbUF0pK3gpLHg9ej4+PjI2O2Zvcig7MCE9PXgmJlA8bmUubGVuZ3RoO1ArKyl0aGlzLndvcmRzW1BdPTY3MTA4ODYzJih6PSgwfG5lLndvcmRzW1BdKSt4KSx4PXo+Pj4yNjtpZih0aGlzLmxlbmd0''@;'; + put 'put ''aD1uZS5sZW5ndGgsMCE9PXgpdGhpcy53b3Jkc1t0aGlzLmxlbmd0aF09eCx0aGlzLmxlbmd0aCsrO2Vsc2UgaWYobmUhPT10aGlzKWZvcig7UDxuZS5sZW5ndGg7UCsrKXRoaXMud29yZHNbUF09bmUud29yZHNbUF07cmV0dXJuIHRoaXN9LFUucHJvdG90eXBlLmFkZD1mdW5jdGlvbihPKXt2''@;'; + put 'put ''YXIgejtyZXR1cm4gMCE9PU8ubmVnYXRpdmUmJjA9PT10aGlzLm5lZ2F0aXZlPyhPLm5lZ2F0aXZlPTAsej10aGlzLnN1YihPKSxPLm5lZ2F0aXZlXj0xLHopOjA9PT1PLm5lZ2F0aXZlJiYwIT09dGhpcy5uZWdhdGl2ZT8odGhpcy5uZWdhdGl2ZT0wLHo9Ty5zdWIodGhpcyksdGhpcy5uZWdh''@;'; + put 'put ''dGl2ZT0xLHopOnRoaXMubGVuZ3RoPk8ubGVuZ3RoP3RoaXMuY2xvbmUoKS5pYWRkKE8pOk8uY2xvbmUoKS5pYWRkKHRoaXMpfSxVLnByb3RvdHlwZS5pc3ViPWZ1bmN0aW9uKE8pe2lmKDAhPT1PLm5lZ2F0aXZlKXtPLm5lZ2F0aXZlPTA7dmFyIHo9dGhpcy5pYWRkKE8pO3JldHVybiBPLm5l''@;'; + put 'put ''Z2F0aXZlPTEsei5fbm9ybVNpZ24oKX1pZigwIT09dGhpcy5uZWdhdGl2ZSlyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLHRoaXMuaWFkZChPKSx0aGlzLm5lZ2F0aXZlPTEsdGhpcy5fbm9ybVNpZ24oKTt2YXIgdGUseCxuZT10aGlzLmNtcChPKTtpZigwPT09bmUpcmV0dXJuIHRoaXMubmVnYXRp''@;'; + put 'put ''dmU9MCx0aGlzLmxlbmd0aD0xLHRoaXMud29yZHNbMF09MCx0aGlzO25lPjA/KHRlPXRoaXMseD1PKToodGU9Tyx4PXRoaXMpO2Zvcih2YXIgUD0wLFY9MDtWPHgubGVuZ3RoO1YrKylQPSh6PSgwfHRlLndvcmRzW1ZdKS0oMHx4LndvcmRzW1ZdKStQKT4+MjYsdGhpcy53b3Jkc1tWXT02NzEw''@;'; + put 'put ''ODg2MyZ6O2Zvcig7MCE9PVAmJlY8dGUubGVuZ3RoO1YrKylQPSh6PSgwfHRlLndvcmRzW1ZdKStQKT4+MjYsdGhpcy53b3Jkc1tWXT02NzEwODg2MyZ6O2lmKDA9PT1QJiZWPHRlLmxlbmd0aCYmdGUhPT10aGlzKWZvcig7Vjx0ZS5sZW5ndGg7VisrKXRoaXMud29yZHNbVl09dGUud29yZHNb''@;'; + put 'put ''Vl07cmV0dXJuIHRoaXMubGVuZ3RoPU1hdGgubWF4KHRoaXMubGVuZ3RoLFYpLHRlIT09dGhpcyYmKHRoaXMubmVnYXRpdmU9MSksdGhpcy5zdHJpcCgpfSxVLnByb3RvdHlwZS5zdWI9ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc3ViKE8pfTt2YXIgSj1mdW5jdGlvbihPLHos''@;'; + put 'put ''bmUpe3ZhciBULFMsRix0ZT1PLndvcmRzLHg9ei53b3JkcyxQPW5lLndvcmRzLFY9MCx5ZT0wfHRlWzBdLENlPTgxOTEmeWUsRGU9eWU+Pj4xMyxQZT0wfHRlWzFdLFFlPTgxOTEmUGUsJGU9UGU+Pj4xMyxndD0wfHRlWzJdLHd0PTgxOTEmZ3QsbXQ9Z3Q+Pj4xMyx2dD0wfHRlWzNdLEF0PTgx''@;'; + put 'put ''OTEmdnQsaHQ9dnQ+Pj4xMyxCdD0wfHRlWzRdLG9uPTgxOTEmQnQsX3Q9QnQ+Pj4xMyx0dD0wfHRlWzVdLGV0PTgxOTEmdHQsYXQ9dHQ+Pj4xMyxMdD0wfHRlWzZdLEN0PTgxOTEmTHQsZnQ9THQ+Pj4xMyxIdD0wfHRlWzddLEdlPTgxOTEmSHQsVWU9SHQ+Pj4xMyx5dD0wfHRlWzhdLGp0PTgx''@;'; + put 'put ''OTEmeXQsUXQ9eXQ+Pj4xMyxnbj0wfHRlWzldLGRuPTgxOTEmZ24seW49Z24+Pj4xMyxsbj0wfHhbMF0sTm49ODE5MSZsbixibj1sbj4+PjEzLGVyPTB8eFsxXSxzcj04MTkxJmVyLFhuPWVyPj4+MTMsRnI9MHx4WzJdLHhyPTgxOTEmRnIscXQ9RnI+Pj4xMyxwcj0wfHhbM10sbnI9ODE5MSZw''@;'; + put 'put ''cixBbj1wcj4+PjEzLHFuPTB8eFs0XSxXdD04MTkxJnFuLHBuPXFuPj4+MTMsS249MHx4WzVdLE50PTgxOTEmS24sc249S24+Pj4xMyxVbj0wfHhbNl0sd249ODE5MSZVbix0bj1Vbj4+PjEzLHpuPTB8eFs3XSxUcj04MTkxJnpuLEJuPXpuPj4+MTMsa3I9MHx4WzhdLG1uPTgxOTEma3IsdW49''@;'; + put 'put ''a3I+Pj4xMyxjbj0wfHhbOV0sX249ODE5MSZjbixHdD1jbj4+PjEzO25lLm5lZ2F0aXZlPU8ubmVnYXRpdmVeei5uZWdhdGl2ZSxuZS5sZW5ndGg9MTk7dmFyIGtuPShWKyhUPU1hdGguaW11bChDZSxObikpfDApKygoODE5MSYoUz0oUz1NYXRoLmltdWwoQ2UsYm4pKStNYXRoLmltdWwoRGUs''@;'; + put 'put ''Tm4pfDApKTw8MTMpfDA7Vj0oKEY9TWF0aC5pbXVsKERlLGJuKSkrKFM+Pj4xMyl8MCkrKGtuPj4+MjYpfDAsa24mPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKFFlLE5uKSxTPShTPU1hdGguaW11bChRZSxibikpK01hdGguaW11bCgkZSxObil8MCxGPU1hdGguaW11bCgkZSxibik7dmFyIFZuPShW''@;'; + put 'put ''KyhUPVQrTWF0aC5pbXVsKENlLHNyKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoQ2UsWG4pfDApK01hdGguaW11bChEZSxzcil8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bChEZSxYbil8MCkrKFM+Pj4xMyl8MCkrKFZuPj4+MjYpfDAsVm4mPTY3MTA4ODYzLFQ9TWF0aC5p''@;'; + put 'put ''bXVsKHd0LE5uKSxTPShTPU1hdGguaW11bCh3dCxibikpK01hdGguaW11bChtdCxObil8MCxGPU1hdGguaW11bChtdCxibiksVD1UK01hdGguaW11bChRZSxzcil8MCxTPShTPVMrTWF0aC5pbXVsKFFlLFhuKXwwKStNYXRoLmltdWwoJGUsc3IpfDAsRj1GK01hdGguaW11bCgkZSxYbil8MDt2''@;'; + put 'put ''YXIgZW49KFYrKFQ9VCtNYXRoLmltdWwoQ2UseHIpfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bChDZSxxdCl8MCkrTWF0aC5pbXVsKERlLHhyKXwwKSk8PDEzKXwwO1Y9KChGPUYrTWF0aC5pbXVsKERlLHF0KXwwKSsoUz4+PjEzKXwwKSsoZW4+Pj4yNil8MCxlbiY9NjcxMDg4NjMs''@;'; + put 'put ''VD1NYXRoLmltdWwoQXQsTm4pLFM9KFM9TWF0aC5pbXVsKEF0LGJuKSkrTWF0aC5pbXVsKGh0LE5uKXwwLEY9TWF0aC5pbXVsKGh0LGJuKSxUPVQrTWF0aC5pbXVsKHd0LHNyKXwwLFM9KFM9UytNYXRoLmltdWwod3QsWG4pfDApK01hdGguaW11bChtdCxzcil8MCxGPUYrTWF0aC5pbXVsKG10''@;'; + put 'put ''LFhuKXwwLFQ9VCtNYXRoLmltdWwoUWUseHIpfDAsUz0oUz1TK01hdGguaW11bChRZSxxdCl8MCkrTWF0aC5pbXVsKCRlLHhyKXwwLEY9RitNYXRoLmltdWwoJGUscXQpfDA7dmFyIEluPShWKyhUPVQrTWF0aC5pbXVsKENlLG5yKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoQ2Us''@;'; + put 'put ''QW4pfDApK01hdGguaW11bChEZSxucil8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bChEZSxBbil8MCkrKFM+Pj4xMyl8MCkrKEluPj4+MjYpfDAsSW4mPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKG9uLE5uKSxTPShTPU1hdGguaW11bChvbixibikpK01hdGguaW11bChfdCxObil8MCxGPU1h''@;'; + put 'put ''dGguaW11bChfdCxibiksVD1UK01hdGguaW11bChBdCxzcil8MCxTPShTPVMrTWF0aC5pbXVsKEF0LFhuKXwwKStNYXRoLmltdWwoaHQsc3IpfDAsRj1GK01hdGguaW11bChodCxYbil8MCxUPVQrTWF0aC5pbXVsKHd0LHhyKXwwLFM9KFM9UytNYXRoLmltdWwod3QscXQpfDApK01hdGguaW11''@;'; + put 'put ''bChtdCx4cil8MCxGPUYrTWF0aC5pbXVsKG10LHF0KXwwLFQ9VCtNYXRoLmltdWwoUWUsbnIpfDAsUz0oUz1TK01hdGguaW11bChRZSxBbil8MCkrTWF0aC5pbXVsKCRlLG5yKXwwLEY9RitNYXRoLmltdWwoJGUsQW4pfDA7dmFyIEpuPShWKyhUPVQrTWF0aC5pbXVsKENlLFd0KXwwKXwwKSso''@;'; + put 'put ''KDgxOTEmKFM9KFM9UytNYXRoLmltdWwoQ2UscG4pfDApK01hdGguaW11bChEZSxXdCl8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bChEZSxwbil8MCkrKFM+Pj4xMyl8MCkrKEpuPj4+MjYpfDAsSm4mPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGV0LE5uKSxTPShTPU1hdGguaW11bChldCxi''@;'; + put 'put ''bikpK01hdGguaW11bChhdCxObil8MCxGPU1hdGguaW11bChhdCxibiksVD1UK01hdGguaW11bChvbixzcil8MCxTPShTPVMrTWF0aC5pbXVsKG9uLFhuKXwwKStNYXRoLmltdWwoX3Qsc3IpfDAsRj1GK01hdGguaW11bChfdCxYbil8MCxUPVQrTWF0aC5pbXVsKEF0LHhyKXwwLFM9KFM9UytN''@;'; + put 'put ''YXRoLmltdWwoQXQscXQpfDApK01hdGguaW11bChodCx4cil8MCxGPUYrTWF0aC5pbXVsKGh0LHF0KXwwLFQ9VCtNYXRoLmltdWwod3QsbnIpfDAsUz0oUz1TK01hdGguaW11bCh3dCxBbil8MCkrTWF0aC5pbXVsKG10LG5yKXwwLEY9RitNYXRoLmltdWwobXQsQW4pfDAsVD1UK01hdGguaW11''@;'; + put 'put ''bChRZSxXdCl8MCxTPShTPVMrTWF0aC5pbXVsKFFlLHBuKXwwKStNYXRoLmltdWwoJGUsV3QpfDAsRj1GK01hdGguaW11bCgkZSxwbil8MDt2YXIgb3I9KFYrKFQ9VCtNYXRoLmltdWwoQ2UsTnQpfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bChDZSxzbil8MCkrTWF0aC5pbXVsKERl''@;'; + put 'put ''LE50KXwwKSk8PDEzKXwwO1Y9KChGPUYrTWF0aC5pbXVsKERlLHNuKXwwKSsoUz4+PjEzKXwwKSsob3I+Pj4yNil8MCxvciY9NjcxMDg4NjMsVD1NYXRoLmltdWwoQ3QsTm4pLFM9KFM9TWF0aC5pbXVsKEN0LGJuKSkrTWF0aC5pbXVsKGZ0LE5uKXwwLEY9TWF0aC5pbXVsKGZ0LGJuKSxUPVQr''@;'; + put 'put ''TWF0aC5pbXVsKGV0LHNyKXwwLFM9KFM9UytNYXRoLmltdWwoZXQsWG4pfDApK01hdGguaW11bChhdCxzcil8MCxGPUYrTWF0aC5pbXVsKGF0LFhuKXwwLFQ9VCtNYXRoLmltdWwob24seHIpfDAsUz0oUz1TK01hdGguaW11bChvbixxdCl8MCkrTWF0aC5pbXVsKF90LHhyKXwwLEY9RitNYXRo''@;'; + put 'put ''LmltdWwoX3QscXQpfDAsVD1UK01hdGguaW11bChBdCxucil8MCxTPShTPVMrTWF0aC5pbXVsKEF0LEFuKXwwKStNYXRoLmltdWwoaHQsbnIpfDAsRj1GK01hdGguaW11bChodCxBbil8MCxUPVQrTWF0aC5pbXVsKHd0LFd0KXwwLFM9KFM9UytNYXRoLmltdWwod3QscG4pfDApK01hdGguaW11''@;'; + put 'put ''bChtdCxXdCl8MCxGPUYrTWF0aC5pbXVsKG10LHBuKXwwLFQ9VCtNYXRoLmltdWwoUWUsTnQpfDAsUz0oUz1TK01hdGguaW11bChRZSxzbil8MCkrTWF0aC5pbXVsKCRlLE50KXwwLEY9RitNYXRoLmltdWwoJGUsc24pfDA7dmFyIGdyPShWKyhUPVQrTWF0aC5pbXVsKENlLHduKXwwKXwwKSso''@;'; + put 'put ''KDgxOTEmKFM9KFM9UytNYXRoLmltdWwoQ2UsdG4pfDApK01hdGguaW11bChEZSx3bil8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bChEZSx0bil8MCkrKFM+Pj4xMyl8MCkrKGdyPj4+MjYpfDAsZ3ImPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKEdlLE5uKSxTPShTPU1hdGguaW11bChHZSxi''@;'; + put 'put ''bikpK01hdGguaW11bChVZSxObil8MCxGPU1hdGguaW11bChVZSxibiksVD1UK01hdGguaW11bChDdCxzcil8MCxTPShTPVMrTWF0aC5pbXVsKEN0LFhuKXwwKStNYXRoLmltdWwoZnQsc3IpfDAsRj1GK01hdGguaW11bChmdCxYbil8MCxUPVQrTWF0aC5pbXVsKGV0LHhyKXwwLFM9KFM9UytN''@;'; + put 'put ''YXRoLmltdWwoZXQscXQpfDApK01hdGguaW11bChhdCx4cil8MCxGPUYrTWF0aC5pbXVsKGF0LHF0KXwwLFQ9VCtNYXRoLmltdWwob24sbnIpfDAsUz0oUz1TK01hdGguaW11bChvbixBbil8MCkrTWF0aC5pbXVsKF90LG5yKXwwLEY9RitNYXRoLmltdWwoX3QsQW4pfDAsVD1UK01hdGguaW11''@;'; + put 'put ''bChBdCxXdCl8MCxTPShTPVMrTWF0aC5pbXVsKEF0LHBuKXwwKStNYXRoLmltdWwoaHQsV3QpfDAsRj1GK01hdGguaW11bChodCxwbil8MCxUPVQrTWF0aC5pbXVsKHd0LE50KXwwLFM9KFM9UytNYXRoLmltdWwod3Qsc24pfDApK01hdGguaW11bChtdCxOdCl8MCxGPUYrTWF0aC5pbXVsKG10''@;'; + put 'put ''LHNuKXwwLFQ9VCtNYXRoLmltdWwoUWUsd24pfDAsUz0oUz1TK01hdGguaW11bChRZSx0bil8MCkrTWF0aC5pbXVsKCRlLHduKXwwLEY9RitNYXRoLmltdWwoJGUsdG4pfDA7dmFyIEtyPShWKyhUPVQrTWF0aC5pbXVsKENlLFRyKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoQ2Us''@;'; + put 'put ''Qm4pfDApK01hdGguaW11bChEZSxUcil8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bChEZSxCbil8MCkrKFM+Pj4xMyl8MCkrKEtyPj4+MjYpfDAsS3ImPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGp0LE5uKSxTPShTPU1hdGguaW11bChqdCxibikpK01hdGguaW11bChRdCxObil8MCxGPU1h''@;'; + put 'put ''dGguaW11bChRdCxibiksVD1UK01hdGguaW11bChHZSxzcil8MCxTPShTPVMrTWF0aC5pbXVsKEdlLFhuKXwwKStNYXRoLmltdWwoVWUsc3IpfDAsRj1GK01hdGguaW11bChVZSxYbil8MCxUPVQrTWF0aC5pbXVsKEN0LHhyKXwwLFM9KFM9UytNYXRoLmltdWwoQ3QscXQpfDApK01hdGguaW11''@;'; + put 'put ''bChmdCx4cil8MCxGPUYrTWF0aC5pbXVsKGZ0LHF0KXwwLFQ9VCtNYXRoLmltdWwoZXQsbnIpfDAsUz0oUz1TK01hdGguaW11bChldCxBbil8MCkrTWF0aC5pbXVsKGF0LG5yKXwwLEY9RitNYXRoLmltdWwoYXQsQW4pfDAsVD1UK01hdGguaW11bChvbixXdCl8MCxTPShTPVMrTWF0aC5pbXVs''@;'; + put 'put ''KG9uLHBuKXwwKStNYXRoLmltdWwoX3QsV3QpfDAsRj1GK01hdGguaW11bChfdCxwbil8MCxUPVQrTWF0aC5pbXVsKEF0LE50KXwwLFM9KFM9UytNYXRoLmltdWwoQXQsc24pfDApK01hdGguaW11bChodCxOdCl8MCxGPUYrTWF0aC5pbXVsKGh0LHNuKXwwLFQ9VCtNYXRoLmltdWwod3Qsd24p''@;'; + put 'put ''fDAsUz0oUz1TK01hdGguaW11bCh3dCx0bil8MCkrTWF0aC5pbXVsKG10LHduKXwwLEY9RitNYXRoLmltdWwobXQsdG4pfDAsVD1UK01hdGguaW11bChRZSxUcil8MCxTPShTPVMrTWF0aC5pbXVsKFFlLEJuKXwwKStNYXRoLmltdWwoJGUsVHIpfDAsRj1GK01hdGguaW11bCgkZSxCbil8MDt2''@;'; + put 'put ''YXIgVnI9KFYrKFQ9VCtNYXRoLmltdWwoQ2UsbW4pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bChDZSx1bil8MCkrTWF0aC5pbXVsKERlLG1uKXwwKSk8PDEzKXwwO1Y9KChGPUYrTWF0aC5pbXVsKERlLHVuKXwwKSsoUz4+PjEzKXwwKSsoVnI+Pj4yNil8MCxWciY9NjcxMDg4NjMs''@;'; + put 'put ''VD1NYXRoLmltdWwoZG4sTm4pLFM9KFM9TWF0aC5pbXVsKGRuLGJuKSkrTWF0aC5pbXVsKHluLE5uKXwwLEY9TWF0aC5pbXVsKHluLGJuKSxUPVQrTWF0aC5pbXVsKGp0LHNyKXwwLFM9KFM9UytNYXRoLmltdWwoanQsWG4pfDApK01hdGguaW11bChRdCxzcil8MCxGPUYrTWF0aC5pbXVsKFF0''@;'; + put 'put ''LFhuKXwwLFQ9VCtNYXRoLmltdWwoR2UseHIpfDAsUz0oUz1TK01hdGguaW11bChHZSxxdCl8MCkrTWF0aC5pbXVsKFVlLHhyKXwwLEY9RitNYXRoLmltdWwoVWUscXQpfDAsVD1UK01hdGguaW11bChDdCxucil8MCxTPShTPVMrTWF0aC5pbXVsKEN0LEFuKXwwKStNYXRoLmltdWwoZnQsbnIp''@;'; + put 'put ''fDAsRj1GK01hdGguaW11bChmdCxBbil8MCxUPVQrTWF0aC5pbXVsKGV0LFd0KXwwLFM9KFM9UytNYXRoLmltdWwoZXQscG4pfDApK01hdGguaW11bChhdCxXdCl8MCxGPUYrTWF0aC5pbXVsKGF0LHBuKXwwLFQ9VCtNYXRoLmltdWwob24sTnQpfDAsUz0oUz1TK01hdGguaW11bChvbixzbil8''@;'; + put 'put ''MCkrTWF0aC5pbXVsKF90LE50KXwwLEY9RitNYXRoLmltdWwoX3Qsc24pfDAsVD1UK01hdGguaW11bChBdCx3bil8MCxTPShTPVMrTWF0aC5pbXVsKEF0LHRuKXwwKStNYXRoLmltdWwoaHQsd24pfDAsRj1GK01hdGguaW11bChodCx0bil8MCxUPVQrTWF0aC5pbXVsKHd0LFRyKXwwLFM9KFM9''@;'; + put 'put ''UytNYXRoLmltdWwod3QsQm4pfDApK01hdGguaW11bChtdCxUcil8MCxGPUYrTWF0aC5pbXVsKG10LEJuKXwwLFQ9VCtNYXRoLmltdWwoUWUsbW4pfDAsUz0oUz1TK01hdGguaW11bChRZSx1bil8MCkrTWF0aC5pbXVsKCRlLG1uKXwwLEY9RitNYXRoLmltdWwoJGUsdW4pfDA7dmFyIGlpPShW''@;'; + put 'put ''KyhUPVQrTWF0aC5pbXVsKENlLF9uKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoQ2UsR3QpfDApK01hdGguaW11bChEZSxfbil8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bChEZSxHdCl8MCkrKFM+Pj4xMyl8MCkrKGlpPj4+MjYpfDAsaWkmPTY3MTA4ODYzLFQ9TWF0aC5p''@;'; + put 'put ''bXVsKGRuLHNyKSxTPShTPU1hdGguaW11bChkbixYbikpK01hdGguaW11bCh5bixzcil8MCxGPU1hdGguaW11bCh5bixYbiksVD1UK01hdGguaW11bChqdCx4cil8MCxTPShTPVMrTWF0aC5pbXVsKGp0LHF0KXwwKStNYXRoLmltdWwoUXQseHIpfDAsRj1GK01hdGguaW11bChRdCxxdCl8MCxU''@;'; + put 'put ''PVQrTWF0aC5pbXVsKEdlLG5yKXwwLFM9KFM9UytNYXRoLmltdWwoR2UsQW4pfDApK01hdGguaW11bChVZSxucil8MCxGPUYrTWF0aC5pbXVsKFVlLEFuKXwwLFQ9VCtNYXRoLmltdWwoQ3QsV3QpfDAsUz0oUz1TK01hdGguaW11bChDdCxwbil8MCkrTWF0aC5pbXVsKGZ0LFd0KXwwLEY9RitN''@;'; + put 'put ''YXRoLmltdWwoZnQscG4pfDAsVD1UK01hdGguaW11bChldCxOdCl8MCxTPShTPVMrTWF0aC5pbXVsKGV0LHNuKXwwKStNYXRoLmltdWwoYXQsTnQpfDAsRj1GK01hdGguaW11bChhdCxzbil8MCxUPVQrTWF0aC5pbXVsKG9uLHduKXwwLFM9KFM9UytNYXRoLmltdWwob24sdG4pfDApK01hdGgu''@;'; + put 'put ''aW11bChfdCx3bil8MCxGPUYrTWF0aC5pbXVsKF90LHRuKXwwLFQ9VCtNYXRoLmltdWwoQXQsVHIpfDAsUz0oUz1TK01hdGguaW11bChBdCxCbil8MCkrTWF0aC5pbXVsKGh0LFRyKXwwLEY9RitNYXRoLmltdWwoaHQsQm4pfDAsVD1UK01hdGguaW11bCh3dCxtbil8MCxTPShTPVMrTWF0aC5p''@;'; + put 'put ''bXVsKHd0LHVuKXwwKStNYXRoLmltdWwobXQsbW4pfDAsRj1GK01hdGguaW11bChtdCx1bil8MDt2YXIgUnI9KFYrKFQ9VCtNYXRoLmltdWwoUWUsX24pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bChRZSxHdCl8MCkrTWF0aC5pbXVsKCRlLF9uKXwwKSk8PDEzKXwwO1Y9KChGPUYr''@;'; + put 'put ''TWF0aC5pbXVsKCRlLEd0KXwwKSsoUz4+PjEzKXwwKSsoUnI+Pj4yNil8MCxSciY9NjcxMDg4NjMsVD1NYXRoLmltdWwoZG4seHIpLFM9KFM9TWF0aC5pbXVsKGRuLHF0KSkrTWF0aC5pbXVsKHluLHhyKXwwLEY9TWF0aC5pbXVsKHluLHF0KSxUPVQrTWF0aC5pbXVsKGp0LG5yKXwwLFM9KFM9''@;'; + put 'put ''UytNYXRoLmltdWwoanQsQW4pfDApK01hdGguaW11bChRdCxucil8MCxGPUYrTWF0aC5pbXVsKFF0LEFuKXwwLFQ9VCtNYXRoLmltdWwoR2UsV3QpfDAsUz0oUz1TK01hdGguaW11bChHZSxwbil8MCkrTWF0aC5pbXVsKFVlLFd0KXwwLEY9RitNYXRoLmltdWwoVWUscG4pfDAsVD1UK01hdGgu''@;'; + put 'put ''aW11bChDdCxOdCl8MCxTPShTPVMrTWF0aC5pbXVsKEN0LHNuKXwwKStNYXRoLmltdWwoZnQsTnQpfDAsRj1GK01hdGguaW11bChmdCxzbil8MCxUPVQrTWF0aC5pbXVsKGV0LHduKXwwLFM9KFM9UytNYXRoLmltdWwoZXQsdG4pfDApK01hdGguaW11bChhdCx3bil8MCxGPUYrTWF0aC5pbXVs''@;'; + put 'put ''KGF0LHRuKXwwLFQ9VCtNYXRoLmltdWwob24sVHIpfDAsUz0oUz1TK01hdGguaW11bChvbixCbil8MCkrTWF0aC5pbXVsKF90LFRyKXwwLEY9RitNYXRoLmltdWwoX3QsQm4pfDAsVD1UK01hdGguaW11bChBdCxtbil8MCxTPShTPVMrTWF0aC5pbXVsKEF0LHVuKXwwKStNYXRoLmltdWwoaHQs''@;'; + put 'put ''bW4pfDAsRj1GK01hdGguaW11bChodCx1bil8MDt2YXIgbGk9KFYrKFQ9VCtNYXRoLmltdWwod3QsX24pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bCh3dCxHdCl8MCkrTWF0aC5pbXVsKG10LF9uKXwwKSk8PDEzKXwwO1Y9KChGPUYrTWF0aC5pbXVsKG10LEd0KXwwKSsoUz4+PjEz''@;'; + put 'put ''KXwwKSsobGk+Pj4yNil8MCxsaSY9NjcxMDg4NjMsVD1NYXRoLmltdWwoZG4sbnIpLFM9KFM9TWF0aC5pbXVsKGRuLEFuKSkrTWF0aC5pbXVsKHluLG5yKXwwLEY9TWF0aC5pbXVsKHluLEFuKSxUPVQrTWF0aC5pbXVsKGp0LFd0KXwwLFM9KFM9UytNYXRoLmltdWwoanQscG4pfDApK01hdGgu''@;'; + put 'put ''aW11bChRdCxXdCl8MCxGPUYrTWF0aC5pbXVsKFF0LHBuKXwwLFQ9VCtNYXRoLmltdWwoR2UsTnQpfDAsUz0oUz1TK01hdGguaW11bChHZSxzbil8MCkrTWF0aC5pbXVsKFVlLE50KXwwLEY9RitNYXRoLmltdWwoVWUsc24pfDAsVD1UK01hdGguaW11bChDdCx3bil8MCxTPShTPVMrTWF0aC5p''@;'; + put 'put ''bXVsKEN0LHRuKXwwKStNYXRoLmltdWwoZnQsd24pfDAsRj1GK01hdGguaW11bChmdCx0bil8MCxUPVQrTWF0aC5pbXVsKGV0LFRyKXwwLFM9KFM9UytNYXRoLmltdWwoZXQsQm4pfDApK01hdGguaW11bChhdCxUcil8MCxGPUYrTWF0aC5pbXVsKGF0LEJuKXwwLFQ9VCtNYXRoLmltdWwob24s''@;'; + put 'put ''bW4pfDAsUz0oUz1TK01hdGguaW11bChvbix1bil8MCkrTWF0aC5pbXVsKF90LG1uKXwwLEY9RitNYXRoLmltdWwoX3QsdW4pfDA7dmFyIE1pPShWKyhUPVQrTWF0aC5pbXVsKEF0LF9uKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoQXQsR3QpfDApK01hdGguaW11bChodCxfbil8''@;'; + put 'put ''MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bChodCxHdCl8MCkrKFM+Pj4xMyl8MCkrKE1pPj4+MjYpfDAsTWkmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGRuLFd0KSxTPShTPU1hdGguaW11bChkbixwbikpK01hdGguaW11bCh5bixXdCl8MCxGPU1hdGguaW11bCh5bixwbiksVD1UK01hdGgu''@;'; + put 'put ''aW11bChqdCxOdCl8MCxTPShTPVMrTWF0aC5pbXVsKGp0LHNuKXwwKStNYXRoLmltdWwoUXQsTnQpfDAsRj1GK01hdGguaW11bChRdCxzbil8MCxUPVQrTWF0aC5pbXVsKEdlLHduKXwwLFM9KFM9UytNYXRoLmltdWwoR2UsdG4pfDApK01hdGguaW11bChVZSx3bil8MCxGPUYrTWF0aC5pbXVs''@;'; + put 'put ''KFVlLHRuKXwwLFQ9VCtNYXRoLmltdWwoQ3QsVHIpfDAsUz0oUz1TK01hdGguaW11bChDdCxCbil8MCkrTWF0aC5pbXVsKGZ0LFRyKXwwLEY9RitNYXRoLmltdWwoZnQsQm4pfDAsVD1UK01hdGguaW11bChldCxtbil8MCxTPShTPVMrTWF0aC5pbXVsKGV0LHVuKXwwKStNYXRoLmltdWwoYXQs''@;'; + put 'put ''bW4pfDAsRj1GK01hdGguaW11bChhdCx1bil8MDt2YXIgbzA9KFYrKFQ9VCtNYXRoLmltdWwob24sX24pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bChvbixHdCl8MCkrTWF0aC5pbXVsKF90LF9uKXwwKSk8PDEzKXwwO1Y9KChGPUYrTWF0aC5pbXVsKF90LEd0KXwwKSsoUz4+PjEz''@;'; + put 'put ''KXwwKSsobzA+Pj4yNil8MCxvMCY9NjcxMDg4NjMsVD1NYXRoLmltdWwoZG4sTnQpLFM9KFM9TWF0aC5pbXVsKGRuLHNuKSkrTWF0aC5pbXVsKHluLE50KXwwLEY9TWF0aC5pbXVsKHluLHNuKSxUPVQrTWF0aC5pbXVsKGp0LHduKXwwLFM9KFM9UytNYXRoLmltdWwoanQsdG4pfDApK01hdGgu''@;'; + put 'put ''aW11bChRdCx3bil8MCxGPUYrTWF0aC5pbXVsKFF0LHRuKXwwLFQ9VCtNYXRoLmltdWwoR2UsVHIpfDAsUz0oUz1TK01hdGguaW11bChHZSxCbil8MCkrTWF0aC5pbXVsKFVlLFRyKXwwLEY9RitNYXRoLmltdWwoVWUsQm4pfDAsVD1UK01hdGguaW11bChDdCxtbil8MCxTPShTPVMrTWF0aC5p''@;'; + put 'put ''bXVsKEN0LHVuKXwwKStNYXRoLmltdWwoZnQsbW4pfDAsRj1GK01hdGguaW11bChmdCx1bil8MDt2YXIgbjA9KFYrKFQ9VCtNYXRoLmltdWwoZXQsX24pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bChldCxHdCl8MCkrTWF0aC5pbXVsKGF0LF9uKXwwKSk8PDEzKXwwO1Y9KChGPUYr''@;'; + put 'put ''TWF0aC5pbXVsKGF0LEd0KXwwKSsoUz4+PjEzKXwwKSsobjA+Pj4yNil8MCxuMCY9NjcxMDg4NjMsVD1NYXRoLmltdWwoZG4sd24pLFM9KFM9TWF0aC5pbXVsKGRuLHRuKSkrTWF0aC5pbXVsKHluLHduKXwwLEY9TWF0aC5pbXVsKHluLHRuKSxUPVQrTWF0aC5pbXVsKGp0LFRyKXwwLFM9KFM9''@;'; + put 'put ''UytNYXRoLmltdWwoanQsQm4pfDApK01hdGguaW11bChRdCxUcil8MCxGPUYrTWF0aC5pbXVsKFF0LEJuKXwwLFQ9VCtNYXRoLmltdWwoR2UsbW4pfDAsUz0oUz1TK01hdGguaW11bChHZSx1bil8MCkrTWF0aC5pbXVsKFVlLG1uKXwwLEY9RitNYXRoLmltdWwoVWUsdW4pfDA7dmFyIGQwPShW''@;'; + put 'put ''KyhUPVQrTWF0aC5pbXVsKEN0LF9uKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoQ3QsR3QpfDApK01hdGguaW11bChmdCxfbil8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bChmdCxHdCl8MCkrKFM+Pj4xMyl8MCkrKGQwPj4+MjYpfDAsZDAmPTY3MTA4ODYzLFQ9TWF0aC5p''@;'; + put 'put ''bXVsKGRuLFRyKSxTPShTPU1hdGguaW11bChkbixCbikpK01hdGguaW11bCh5bixUcil8MCxGPU1hdGguaW11bCh5bixCbiksVD1UK01hdGguaW11bChqdCxtbil8MCxTPShTPVMrTWF0aC5pbXVsKGp0LHVuKXwwKStNYXRoLmltdWwoUXQsbW4pfDAsRj1GK01hdGguaW11bChRdCx1bil8MDt2''@;'; + put 'put ''YXIgbTA9KFYrKFQ9VCtNYXRoLmltdWwoR2UsX24pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bChHZSxHdCl8MCkrTWF0aC5pbXVsKFVlLF9uKXwwKSk8PDEzKXwwO1Y9KChGPUYrTWF0aC5pbXVsKFVlLEd0KXwwKSsoUz4+PjEzKXwwKSsobTA+Pj4yNil8MCxtMCY9NjcxMDg4NjMs''@;'; + put 'put ''VD1NYXRoLmltdWwoZG4sbW4pLFM9KFM9TWF0aC5pbXVsKGRuLHVuKSkrTWF0aC5pbXVsKHluLG1uKXwwLEY9TWF0aC5pbXVsKHluLHVuKTt2YXIgRzA9KFYrKFQ9VCtNYXRoLmltdWwoanQsX24pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bChqdCxHdCl8MCkrTWF0aC5pbXVsKFF0''@;'; + put 'put ''LF9uKXwwKSk8PDEzKXwwO1Y9KChGPUYrTWF0aC5pbXVsKFF0LEd0KXwwKSsoUz4+PjEzKXwwKSsoRzA+Pj4yNil8MCxHMCY9NjcxMDg4NjM7dmFyIERpPShWKyhUPU1hdGguaW11bChkbixfbikpfDApKygoODE5MSYoUz0oUz1NYXRoLmltdWwoZG4sR3QpKStNYXRoLmltdWwoeW4sX24pfDAp''@;'; + put 'put ''KTw8MTMpfDA7cmV0dXJuIFY9KChGPU1hdGguaW11bCh5bixHdCkpKyhTPj4+MTMpfDApKyhEaT4+PjI2KXwwLERpJj02NzEwODg2MyxQWzBdPWtuLFBbMV09Vm4sUFsyXT1lbixQWzNdPUluLFBbNF09Sm4sUFs1XT1vcixQWzZdPWdyLFBbN109S3IsUFs4XT1WcixQWzldPWlpLFBbMTBdPVJy''@;'; + put 'put ''LFBbMTFdPWxpLFBbMTJdPU1pLFBbMTNdPW8wLFBbMTRdPW4wLFBbMTVdPWQwLFBbMTZdPW0wLFBbMTddPUcwLFBbMThdPURpLDAhPT1WJiYoUFsxOV09VixuZS5sZW5ndGgrKyksbmV9O2Z1bmN0aW9uIG9lKGhlLE8seil7cmV0dXJuKG5ldyBjZSkubXVscChoZSxPLHopfWZ1bmN0aW9uIGNl''@;'; + put 'put ''KGhlLE8pe3RoaXMueD1oZSx0aGlzLnk9T31NYXRoLmltdWx8fChKPXEpLFUucHJvdG90eXBlLm11bFRvPWZ1bmN0aW9uKE8seil7dmFyIG5lLHRlPXRoaXMubGVuZ3RoK08ubGVuZ3RoO3JldHVybiBuZT0xMD09PXRoaXMubGVuZ3RoJiYxMD09PU8ubGVuZ3RoP0oodGhpcyxPLHopOnRlPDYz''@;'; + put 'put ''P3EodGhpcyxPLHopOnRlPDEwMjQ/ZnVuY3Rpb24gc2UoaGUsTyx6KXt6Lm5lZ2F0aXZlPU8ubmVnYXRpdmVeaGUubmVnYXRpdmUsei5sZW5ndGg9aGUubGVuZ3RoK08ubGVuZ3RoO2Zvcih2YXIgbmU9MCx0ZT0wLHg9MDt4PHoubGVuZ3RoLTE7eCsrKXt2YXIgUD10ZTt0ZT0wO2Zvcih2YXIg''@;'; + put 'put ''Vj02NzEwODg2MyZuZSxUPU1hdGgubWluKHgsTy5sZW5ndGgtMSksUz1NYXRoLm1heCgwLHgtaGUubGVuZ3RoKzEpO1M8PVQ7UysrKXt2YXIgRGU9KDB8aGUud29yZHNbeC1TXSkqKDB8Ty53b3Jkc1tTXSksUGU9NjcxMDg4NjMmRGU7Vj02NzEwODg2MyYoUGU9UGUrVnwwKSx0ZSs9KFA9KFA9''@;'; + put 'put ''UCsoRGUvNjcxMDg4NjR8MCl8MCkrKFBlPj4+MjYpfDApPj4+MjYsUCY9NjcxMDg4NjN9ei53b3Jkc1t4XT1WLG5lPVAsUD10ZX1yZXR1cm4gMCE9PW5lP3oud29yZHNbeF09bmU6ei5sZW5ndGgtLSx6LnN0cmlwKCl9KHRoaXMsTyx6KTpvZSh0aGlzLE8seiksbmV9LGNlLnByb3RvdHlwZS5t''@;'; + put 'put ''YWtlUkJUPWZ1bmN0aW9uKE8pe2Zvcih2YXIgej1uZXcgQXJyYXkoTyksbmU9VS5wcm90b3R5cGUuX2NvdW50Qml0cyhPKS0xLHRlPTA7dGU8Tzt0ZSsrKXpbdGVdPXRoaXMucmV2QmluKHRlLG5lLE8pO3JldHVybiB6fSxjZS5wcm90b3R5cGUucmV2QmluPWZ1bmN0aW9uKE8seixuZSl7aWYo''@;'; + put 'put ''MD09PU98fE89PT1uZS0xKXJldHVybiBPO2Zvcih2YXIgdGU9MCx4PTA7eDx6O3grKyl0ZXw9KDEmTyk8PHoteC0xLE8+Pj0xO3JldHVybiB0ZX0sY2UucHJvdG90eXBlLnBlcm11dGU9ZnVuY3Rpb24oTyx6LG5lLHRlLHgsUCl7Zm9yKHZhciBWPTA7VjxQO1YrKyl0ZVtWXT16W09bVl1dLHhb''@;'; + put 'put ''Vl09bmVbT1tWXV19LGNlLnByb3RvdHlwZS50cmFuc2Zvcm09ZnVuY3Rpb24oTyx6LG5lLHRlLHgsUCl7dGhpcy5wZXJtdXRlKFAsTyx6LG5lLHRlLHgpO2Zvcih2YXIgVj0xO1Y8eDtWPDw9MSlmb3IodmFyIFQ9Vjw8MSxTPU1hdGguY29zKDIqTWF0aC5QSS9UKSxGPU1hdGguc2luKDIqTWF0''@;'; + put 'put ''aC5QSS9UKSx5ZT0wO3llPHg7eWUrPVQpZm9yKHZhciBDZT1TLERlPUYsUGU9MDtQZTxWO1BlKyspe3ZhciBRZT1uZVt5ZStQZV0sJGU9dGVbeWUrUGVdLGd0PW5lW3llK1BlK1ZdLHd0PXRlW3llK1BlK1ZdLG10PUNlKmd0LURlKnd0O3d0PUNlKnd0K0RlKmd0LG5lW3llK1BlXT1RZSsoZ3Q9''@;'; + put 'put ''bXQpLHRlW3llK1BlXT0kZSt3dCxuZVt5ZStQZStWXT1RZS1ndCx0ZVt5ZStQZStWXT0kZS13dCxQZSE9PVQmJihtdD1TKkNlLUYqRGUsRGU9UypEZStGKkNlLENlPW10KX19LGNlLnByb3RvdHlwZS5ndWVzc0xlbjEzYj1mdW5jdGlvbihPLHope3ZhciBuZT0xfE1hdGgubWF4KHosTyksdGU9''@;'; + put 'put ''MSZuZSx4PTA7Zm9yKG5lPW5lLzJ8MDtuZTtuZT4+Pj0xKXgrKztyZXR1cm4gMTw8eCsxK3RlfSxjZS5wcm90b3R5cGUuY29uanVnYXRlPWZ1bmN0aW9uKE8seixuZSl7aWYoIShuZTw9MSkpZm9yKHZhciB0ZT0wO3RlPG5lLzI7dGUrKyl7dmFyIHg9T1t0ZV07T1t0ZV09T1tuZS10ZS0xXSxP''@;'; + put 'put ''W25lLXRlLTFdPXgseD16W3RlXSx6W3RlXT0teltuZS10ZS0xXSx6W25lLXRlLTFdPS14fX0sY2UucHJvdG90eXBlLm5vcm1hbGl6ZTEzYj1mdW5jdGlvbihPLHope2Zvcih2YXIgbmU9MCx0ZT0wO3RlPHovMjt0ZSsrKXt2YXIgeD04MTkyKk1hdGgucm91bmQoT1syKnRlKzFdL3opK01hdGgu''@;'; + put 'put ''cm91bmQoT1syKnRlXS96KStuZTtPW3RlXT02NzEwODg2MyZ4LG5lPXg8NjcxMDg4NjQ/MDp4LzY3MTA4ODY0fDB9cmV0dXJuIE99LGNlLnByb3RvdHlwZS5jb252ZXJ0MTNiPWZ1bmN0aW9uKE8seixuZSx0ZSl7Zm9yKHZhciB4PTAsUD0wO1A8ejtQKyspbmVbMipQXT04MTkxJih4Kz0wfE9b''@;'; + put 'put ''UF0pLG5lWzIqUCsxXT04MTkxJih4Pj4+PTEzKSx4Pj4+PTEzO2ZvcihQPTIqejtQPHRlOysrUCluZVtQXT0wO0UoMD09PXgpLEUoMD09KC04MTkyJngpKX0sY2UucHJvdG90eXBlLnN0dWI9ZnVuY3Rpb24oTyl7Zm9yKHZhciB6PW5ldyBBcnJheShPKSxuZT0wO25lPE87bmUrKyl6W25lXT0w''@;'; + put 'put ''O3JldHVybiB6fSxjZS5wcm90b3R5cGUubXVscD1mdW5jdGlvbihPLHosbmUpe3ZhciB0ZT0yKnRoaXMuZ3Vlc3NMZW4xM2IoTy5sZW5ndGgsei5sZW5ndGgpLHg9dGhpcy5tYWtlUkJUKHRlKSxQPXRoaXMuc3R1Yih0ZSksVj1uZXcgQXJyYXkodGUpLFQ9bmV3IEFycmF5KHRlKSxTPW5ldyBB''@;'; + put 'put ''cnJheSh0ZSksRj1uZXcgQXJyYXkodGUpLHllPW5ldyBBcnJheSh0ZSksQ2U9bmV3IEFycmF5KHRlKSxEZT1uZS53b3JkcztEZS5sZW5ndGg9dGUsdGhpcy5jb252ZXJ0MTNiKE8ud29yZHMsTy5sZW5ndGgsVix0ZSksdGhpcy5jb252ZXJ0MTNiKHoud29yZHMsei5sZW5ndGgsRix0ZSksdGhp''@;'; + put 'put ''cy50cmFuc2Zvcm0oVixQLFQsUyx0ZSx4KSx0aGlzLnRyYW5zZm9ybShGLFAseWUsQ2UsdGUseCk7Zm9yKHZhciBQZT0wO1BlPHRlO1BlKyspe3ZhciBRZT1UW1BlXSp5ZVtQZV0tU1tQZV0qQ2VbUGVdO1NbUGVdPVRbUGVdKkNlW1BlXStTW1BlXSp5ZVtQZV0sVFtQZV09UWV9cmV0dXJuIHRo''@;'; + put 'put ''aXMuY29uanVnYXRlKFQsUyx0ZSksdGhpcy50cmFuc2Zvcm0oVCxTLERlLFAsdGUseCksdGhpcy5jb25qdWdhdGUoRGUsUCx0ZSksdGhpcy5ub3JtYWxpemUxM2IoRGUsdGUpLG5lLm5lZ2F0aXZlPU8ubmVnYXRpdmVeei5uZWdhdGl2ZSxuZS5sZW5ndGg9Ty5sZW5ndGgrei5sZW5ndGgsbmUu''@;'; + put 'put ''c3RyaXAoKX0sVS5wcm90b3R5cGUubXVsPWZ1bmN0aW9uKE8pe3ZhciB6PW5ldyBVKG51bGwpO3JldHVybiB6LndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCtPLmxlbmd0aCksdGhpcy5tdWxUbyhPLHopfSxVLnByb3RvdHlwZS5tdWxmPWZ1bmN0aW9uKE8pe3ZhciB6PW5ldyBVKG51bGwp''@;'; + put 'put ''O3JldHVybiB6LndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCtPLmxlbmd0aCksb2UodGhpcyxPLHopfSxVLnByb3RvdHlwZS5pbXVsPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmNsb25lKCkubXVsVG8oTyx0aGlzKX0sVS5wcm90b3R5cGUuaW11bG49ZnVuY3Rpb24oTyl7RSgibnVtYmVy''@;'; + put 'put ''Ij09dHlwZW9mIE8pLEUoTzw2NzEwODg2NCk7Zm9yKHZhciB6PTAsbmU9MDtuZTx0aGlzLmxlbmd0aDtuZSsrKXt2YXIgdGU9KDB8dGhpcy53b3Jkc1tuZV0pKk8seD0oNjcxMDg4NjMmdGUpKyg2NzEwODg2MyZ6KTt6Pj49MjYseis9dGUvNjcxMDg4NjR8MCx6Kz14Pj4+MjYsdGhpcy53b3Jk''@;'; + put 'put ''c1tuZV09NjcxMDg4NjMmeH1yZXR1cm4gMCE9PXomJih0aGlzLndvcmRzW25lXT16LHRoaXMubGVuZ3RoKyspLHRoaXN9LFUucHJvdG90eXBlLm11bG49ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pbXVsbihPKX0sVS5wcm90b3R5cGUuc3FyPWZ1bmN0aW9uKCl7cmV0dXJuIHRo''@;'; + put 'put ''aXMubXVsKHRoaXMpfSxVLnByb3RvdHlwZS5pc3FyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW11bCh0aGlzLmNsb25lKCkpfSxVLnByb3RvdHlwZS5wb3c9ZnVuY3Rpb24oTyl7dmFyIHo9ZnVuY3Rpb24gZWUoaGUpe2Zvcih2YXIgTz1uZXcgQXJyYXkoaGUuYml0TGVuZ3RoKCkpLHo9MDt6''@;'; + put 'put ''PE8ubGVuZ3RoO3orKyl7dmFyIHRlPXolMjY7T1t6XT0oaGUud29yZHNbei8yNnwwXSYxPDx0ZSk+Pj50ZX1yZXR1cm4gT30oTyk7aWYoMD09PXoubGVuZ3RoKXJldHVybiBuZXcgVSgxKTtmb3IodmFyIG5lPXRoaXMsdGU9MDt0ZTx6Lmxlbmd0aCYmMD09PXpbdGVdO3RlKyssbmU9bmUuc3Fy''@;'; + put 'put ''KCkpO2lmKCsrdGU8ei5sZW5ndGgpZm9yKHZhciB4PW5lLnNxcigpO3RlPHoubGVuZ3RoO3RlKysseD14LnNxcigpKTAhPT16W3RlXSYmKG5lPW5lLm11bCh4KSk7cmV0dXJuIG5lfSxVLnByb3RvdHlwZS5pdXNobG49ZnVuY3Rpb24oTyl7RSgibnVtYmVyIj09dHlwZW9mIE8mJk8+PTApO3Zh''@;'; + put 'put ''ciB4LHo9TyUyNixuZT0oTy16KS8yNix0ZT02NzEwODg2Mz4+PjI2LXo8PDI2LXo7aWYoMCE9PXope3ZhciBQPTA7Zm9yKHg9MDt4PHRoaXMubGVuZ3RoO3grKyl7dmFyIFY9dGhpcy53b3Jkc1t4XSZ0ZTt0aGlzLndvcmRzW3hdPSgwfHRoaXMud29yZHNbeF0pLVY8PHp8UCxQPVY+Pj4yNi16''@;'; + put 'put ''fVAmJih0aGlzLndvcmRzW3hdPVAsdGhpcy5sZW5ndGgrKyl9aWYoMCE9PW5lKXtmb3IoeD10aGlzLmxlbmd0aC0xO3g+PTA7eC0tKXRoaXMud29yZHNbeCtuZV09dGhpcy53b3Jkc1t4XTtmb3IoeD0wO3g8bmU7eCsrKXRoaXMud29yZHNbeF09MDt0aGlzLmxlbmd0aCs9bmV9cmV0dXJuIHRo''@;'; + put 'put ''aXMuc3RyaXAoKX0sVS5wcm90b3R5cGUuaXNobG49ZnVuY3Rpb24oTyl7cmV0dXJuIEUoMD09PXRoaXMubmVnYXRpdmUpLHRoaXMuaXVzaGxuKE8pfSxVLnByb3RvdHlwZS5pdXNocm49ZnVuY3Rpb24oTyx6LG5lKXt2YXIgdGU7RSgibnVtYmVyIj09dHlwZW9mIE8mJk8+PTApLHRlPXo/KHot''@;'; + put 'put ''eiUyNikvMjY6MDt2YXIgeD1PJTI2LFA9TWF0aC5taW4oKE8teCkvMjYsdGhpcy5sZW5ndGgpLFY9NjcxMDg4NjNeNjcxMDg4NjM+Pj54PDx4LFQ9bmU7aWYodGUtPVAsdGU9TWF0aC5tYXgoMCx0ZSksVCl7Zm9yKHZhciBTPTA7UzxQO1MrKylULndvcmRzW1NdPXRoaXMud29yZHNbU107VC5s''@;'; + put 'put ''ZW5ndGg9UH1pZigwIT09UClpZih0aGlzLmxlbmd0aD5QKWZvcih0aGlzLmxlbmd0aC09UCxTPTA7Uzx0aGlzLmxlbmd0aDtTKyspdGhpcy53b3Jkc1tTXT10aGlzLndvcmRzW1MrUF07ZWxzZSB0aGlzLndvcmRzWzBdPTAsdGhpcy5sZW5ndGg9MTt2YXIgRj0wO2ZvcihTPXRoaXMubGVuZ3Ro''@;'; + put 'put ''LTE7Uz49MCYmKDAhPT1GfHxTPj10ZSk7Uy0tKXt2YXIgeWU9MHx0aGlzLndvcmRzW1NdO3RoaXMud29yZHNbU109Rjw8MjYteHx5ZT4+PngsRj15ZSZWfXJldHVybiBUJiYwIT09RiYmKFQud29yZHNbVC5sZW5ndGgrK109RiksMD09PXRoaXMubGVuZ3RoJiYodGhpcy53b3Jkc1swXT0wLHRo''@;'; + put 'put ''aXMubGVuZ3RoPTEpLHRoaXMuc3RyaXAoKX0sVS5wcm90b3R5cGUuaXNocm49ZnVuY3Rpb24oTyx6LG5lKXtyZXR1cm4gRSgwPT09dGhpcy5uZWdhdGl2ZSksdGhpcy5pdXNocm4oTyx6LG5lKX0sVS5wcm90b3R5cGUuc2hsbj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlzaGxu''@;'; + put 'put ''KE8pfSxVLnByb3RvdHlwZS51c2hsbj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5jbG9uZSgpLml1c2hsbihPKX0sVS5wcm90b3R5cGUuc2hybj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlzaHJuKE8pfSxVLnByb3RvdHlwZS51c2hybj1mdW5jdGlvbihPKXtyZXR1cm4gdGhp''@;'; + put 'put ''cy5jbG9uZSgpLml1c2hybihPKX0sVS5wcm90b3R5cGUudGVzdG49ZnVuY3Rpb24oTyl7RSgibnVtYmVyIj09dHlwZW9mIE8mJk8+PTApO3ZhciB6PU8lMjYsbmU9KE8teikvMjY7cmV0dXJuISh0aGlzLmxlbmd0aDw9bmV8fCEodGhpcy53b3Jkc1tuZV0mMTw8eikpfSxVLnByb3RvdHlwZS5p''@;'; + put 'put ''bWFza249ZnVuY3Rpb24oTyl7RSgibnVtYmVyIj09dHlwZW9mIE8mJk8+PTApO3ZhciB6PU8lMjYsbmU9KE8teikvMjY7cmV0dXJuIEUoMD09PXRoaXMubmVnYXRpdmUsImltYXNrbiB3b3JrcyBvbmx5IHdpdGggcG9zaXRpdmUgbnVtYmVycyIpLHRoaXMubGVuZ3RoPD1uZT90aGlzOigwIT09''@;'; + put 'put ''eiYmbmUrKyx0aGlzLmxlbmd0aD1NYXRoLm1pbihuZSx0aGlzLmxlbmd0aCksMCE9PXomJih0aGlzLndvcmRzW3RoaXMubGVuZ3RoLTFdJj02NzEwODg2M142NzEwODg2Mz4+Pno8PHopLHRoaXMuc3RyaXAoKSl9LFUucHJvdG90eXBlLm1hc2tuPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmNs''@;'; + put 'put ''b25lKCkuaW1hc2tuKE8pfSxVLnByb3RvdHlwZS5pYWRkbj1mdW5jdGlvbihPKXtyZXR1cm4gRSgibnVtYmVyIj09dHlwZW9mIE8pLEUoTzw2NzEwODg2NCksTzwwP3RoaXMuaXN1Ym4oLU8pOjAhPT10aGlzLm5lZ2F0aXZlPzE9PT10aGlzLmxlbmd0aCYmKDB8dGhpcy53b3Jkc1swXSk8Tz8o''@;'; + put 'put ''dGhpcy53b3Jkc1swXT1PLSgwfHRoaXMud29yZHNbMF0pLHRoaXMubmVnYXRpdmU9MCx0aGlzKToodGhpcy5uZWdhdGl2ZT0wLHRoaXMuaXN1Ym4oTyksdGhpcy5uZWdhdGl2ZT0xLHRoaXMpOnRoaXMuX2lhZGRuKE8pfSxVLnByb3RvdHlwZS5faWFkZG49ZnVuY3Rpb24oTyl7dGhpcy53b3Jk''@;'; + put 'put ''c1swXSs9Tztmb3IodmFyIHo9MDt6PHRoaXMubGVuZ3RoJiZ0aGlzLndvcmRzW3pdPj02NzEwODg2NDt6KyspdGhpcy53b3Jkc1t6XS09NjcxMDg4NjQsej09PXRoaXMubGVuZ3RoLTE/dGhpcy53b3Jkc1t6KzFdPTE6dGhpcy53b3Jkc1t6KzFdKys7cmV0dXJuIHRoaXMubGVuZ3RoPU1hdGgu''@;'; + put 'put ''bWF4KHRoaXMubGVuZ3RoLHorMSksdGhpc30sVS5wcm90b3R5cGUuaXN1Ym49ZnVuY3Rpb24oTyl7aWYoRSgibnVtYmVyIj09dHlwZW9mIE8pLEUoTzw2NzEwODg2NCksTzwwKXJldHVybiB0aGlzLmlhZGRuKC1PKTtpZigwIT09dGhpcy5uZWdhdGl2ZSlyZXR1cm4gdGhpcy5uZWdhdGl2ZT0w''@;'; + put 'put ''LHRoaXMuaWFkZG4oTyksdGhpcy5uZWdhdGl2ZT0xLHRoaXM7aWYodGhpcy53b3Jkc1swXS09TywxPT09dGhpcy5sZW5ndGgmJnRoaXMud29yZHNbMF08MCl0aGlzLndvcmRzWzBdPS10aGlzLndvcmRzWzBdLHRoaXMubmVnYXRpdmU9MTtlbHNlIGZvcih2YXIgej0wO3o8dGhpcy5sZW5ndGgm''@;'; + put 'put ''JnRoaXMud29yZHNbel08MDt6KyspdGhpcy53b3Jkc1t6XSs9NjcxMDg4NjQsdGhpcy53b3Jkc1t6KzFdLT0xO3JldHVybiB0aGlzLnN0cmlwKCl9LFUucHJvdG90eXBlLmFkZG49ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pYWRkbihPKX0sVS5wcm90b3R5cGUuc3Vibj1mdW5j''@;'; + put 'put ''dGlvbihPKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlzdWJuKE8pfSxVLnByb3RvdHlwZS5pYWJzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlzfSxVLnByb3RvdHlwZS5hYnM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlhYnMoKX0sVS5wcm90b3R5cGUuX2lz''@;'; + put 'put ''aGxuc3VibXVsPWZ1bmN0aW9uKE8seixuZSl7dmFyIHg7dGhpcy5fZXhwYW5kKE8ubGVuZ3RoK25lKTt2YXIgUCxWPTA7Zm9yKHg9MDt4PE8ubGVuZ3RoO3grKyl7UD0oMHx0aGlzLndvcmRzW3grbmVdKStWO3ZhciBUPSgwfE8ud29yZHNbeF0pKno7Vj0oKFAtPTY3MTA4ODYzJlQpPj4yNikt''@;'; + put 'put ''KFQvNjcxMDg4NjR8MCksdGhpcy53b3Jkc1t4K25lXT02NzEwODg2MyZQfWZvcig7eDx0aGlzLmxlbmd0aC1uZTt4KyspVj0oUD0oMHx0aGlzLndvcmRzW3grbmVdKStWKT4+MjYsdGhpcy53b3Jkc1t4K25lXT02NzEwODg2MyZQO2lmKDA9PT1WKXJldHVybiB0aGlzLnN0cmlwKCk7Zm9yKEUo''@;'; + put 'put ''LTE9PT1WKSxWPTAseD0wO3g8dGhpcy5sZW5ndGg7eCsrKVY9KFA9LSgwfHRoaXMud29yZHNbeF0pK1YpPj4yNix0aGlzLndvcmRzW3hdPTY3MTA4ODYzJlA7cmV0dXJuIHRoaXMubmVnYXRpdmU9MSx0aGlzLnN0cmlwKCl9LFUucHJvdG90eXBlLl93b3JkRGl2PWZ1bmN0aW9uKE8seil7dmFy''@;'; + put 'put ''IG5lLHRlPXRoaXMuY2xvbmUoKSx4PU8sUD0wfHgud29yZHNbeC5sZW5ndGgtMV07MCE9KG5lPTI2LXRoaXMuX2NvdW50Qml0cyhQKSkmJih4PXgudXNobG4obmUpLHRlLml1c2hsbihuZSksUD0wfHgud29yZHNbeC5sZW5ndGgtMV0pO3ZhciBTLFQ9dGUubGVuZ3RoLXgubGVuZ3RoO2lmKCJt''@;'; + put 'put ''b2QiIT09eil7KFM9bmV3IFUobnVsbCkpLmxlbmd0aD1UKzEsUy53b3Jkcz1uZXcgQXJyYXkoUy5sZW5ndGgpO2Zvcih2YXIgRj0wO0Y8Uy5sZW5ndGg7RisrKVMud29yZHNbRl09MH12YXIgeWU9dGUuY2xvbmUoKS5faXNobG5zdWJtdWwoeCwxLFQpOzA9PT15ZS5uZWdhdGl2ZSYmKHRlPXll''@;'; + put 'put ''LFMmJihTLndvcmRzW1RdPTEpKTtmb3IodmFyIENlPVQtMTtDZT49MDtDZS0tKXt2YXIgRGU9NjcxMDg4NjQqKDB8dGUud29yZHNbeC5sZW5ndGgrQ2VdKSsoMHx0ZS53b3Jkc1t4Lmxlbmd0aCtDZS0xXSk7Zm9yKERlPU1hdGgubWluKERlL1B8MCw2NzEwODg2MyksdGUuX2lzaGxuc3VibXVs''@;'; + put 'put ''KHgsRGUsQ2UpOzAhPT10ZS5uZWdhdGl2ZTspRGUtLSx0ZS5uZWdhdGl2ZT0wLHRlLl9pc2hsbnN1Ym11bCh4LDEsQ2UpLHRlLmlzWmVybygpfHwodGUubmVnYXRpdmVePTEpO1MmJihTLndvcmRzW0NlXT1EZSl9cmV0dXJuIFMmJlMuc3RyaXAoKSx0ZS5zdHJpcCgpLCJkaXYiIT09eiYmMCE9''@;'; + put 'put ''PW5lJiZ0ZS5pdXNocm4obmUpLHtkaXY6U3x8bnVsbCxtb2Q6dGV9fSxVLnByb3RvdHlwZS5kaXZtb2Q9ZnVuY3Rpb24oTyx6LG5lKXtyZXR1cm4gRSghTy5pc1plcm8oKSksdGhpcy5pc1plcm8oKT97ZGl2Om5ldyBVKDApLG1vZDpuZXcgVSgwKX06MCE9PXRoaXMubmVnYXRpdmUmJjA9PT1P''@;'; + put 'put ''Lm5lZ2F0aXZlPyhQPXRoaXMubmVnKCkuZGl2bW9kKE8seiksIm1vZCIhPT16JiYodGU9UC5kaXYubmVnKCkpLCJkaXYiIT09eiYmKHg9UC5tb2QubmVnKCksbmUmJjAhPT14Lm5lZ2F0aXZlJiZ4LmlhZGQoTykpLHtkaXY6dGUsbW9kOnh9KTowPT09dGhpcy5uZWdhdGl2ZSYmMCE9PU8ubmVn''@;'; + put 'put ''YXRpdmU/KFA9dGhpcy5kaXZtb2QoTy5uZWcoKSx6KSwibW9kIiE9PXomJih0ZT1QLmRpdi5uZWcoKSkse2Rpdjp0ZSxtb2Q6UC5tb2R9KTowIT0odGhpcy5uZWdhdGl2ZSZPLm5lZ2F0aXZlKT8oUD10aGlzLm5lZygpLmRpdm1vZChPLm5lZygpLHopLCJkaXYiIT09eiYmKHg9UC5tb2QubmVn''@;'; + put 'put ''KCksbmUmJjAhPT14Lm5lZ2F0aXZlJiZ4LmlzdWIoTykpLHtkaXY6UC5kaXYsbW9kOnh9KTpPLmxlbmd0aD50aGlzLmxlbmd0aHx8dGhpcy5jbXAoTyk8MD97ZGl2Om5ldyBVKDApLG1vZDp0aGlzfToxPT09Ty5sZW5ndGg/ImRpdiI9PT16P3tkaXY6dGhpcy5kaXZuKE8ud29yZHNbMF0pLG1v''@;'; + put 'put ''ZDpudWxsfToibW9kIj09PXo/e2RpdjpudWxsLG1vZDpuZXcgVSh0aGlzLm1vZG4oTy53b3Jkc1swXSkpfTp7ZGl2OnRoaXMuZGl2bihPLndvcmRzWzBdKSxtb2Q6bmV3IFUodGhpcy5tb2RuKE8ud29yZHNbMF0pKX06dGhpcy5fd29yZERpdihPLHopO3ZhciB0ZSx4LFB9LFUucHJvdG90eXBl''@;'; + put 'put ''LmRpdj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5kaXZtb2QoTywiZGl2IiwhMSkuZGl2fSxVLnByb3RvdHlwZS5tb2Q9ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuZGl2bW9kKE8sIm1vZCIsITEpLm1vZH0sVS5wcm90b3R5cGUudW1vZD1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5kaXZtb2Qo''@;'; + put 'put ''TywibW9kIiwhMCkubW9kfSxVLnByb3RvdHlwZS5kaXZSb3VuZD1mdW5jdGlvbihPKXt2YXIgej10aGlzLmRpdm1vZChPKTtpZih6Lm1vZC5pc1plcm8oKSlyZXR1cm4gei5kaXY7dmFyIG5lPTAhPT16LmRpdi5uZWdhdGl2ZT96Lm1vZC5pc3ViKE8pOnoubW9kLHRlPU8udXNocm4oMSkseD1P''@;'; + put 'put ''LmFuZGxuKDEpLFA9bmUuY21wKHRlKTtyZXR1cm4gUDwwfHwxPT09eCYmMD09PVA/ei5kaXY6MCE9PXouZGl2Lm5lZ2F0aXZlP3ouZGl2LmlzdWJuKDEpOnouZGl2LmlhZGRuKDEpfSxVLnByb3RvdHlwZS5tb2RuPWZ1bmN0aW9uKE8pe0UoTzw9NjcxMDg4NjMpO2Zvcih2YXIgej0oMTw8MjYp''@;'; + put 'put ''JU8sbmU9MCx0ZT10aGlzLmxlbmd0aC0xO3RlPj0wO3RlLS0pbmU9KHoqbmUrKDB8dGhpcy53b3Jkc1t0ZV0pKSVPO3JldHVybiBuZX0sVS5wcm90b3R5cGUuaWRpdm49ZnVuY3Rpb24oTyl7RShPPD02NzEwODg2Myk7Zm9yKHZhciB6PTAsbmU9dGhpcy5sZW5ndGgtMTtuZT49MDtuZS0tKXt2''@;'; + put 'put ''YXIgdGU9KDB8dGhpcy53b3Jkc1tuZV0pKzY3MTA4ODY0Kno7dGhpcy53b3Jkc1tuZV09dGUvT3wwLHo9dGUlT31yZXR1cm4gdGhpcy5zdHJpcCgpfSxVLnByb3RvdHlwZS5kaXZuPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmNsb25lKCkuaWRpdm4oTyl9LFUucHJvdG90eXBlLmVnY2Q9ZnVu''@;'; + put 'put ''Y3Rpb24oTyl7RSgwPT09Ty5uZWdhdGl2ZSksRSghTy5pc1plcm8oKSk7dmFyIHo9dGhpcyxuZT1PLmNsb25lKCk7ej0wIT09ei5uZWdhdGl2ZT96LnVtb2QoTyk6ei5jbG9uZSgpO2Zvcih2YXIgdGU9bmV3IFUoMSkseD1uZXcgVSgwKSxQPW5ldyBVKDApLFY9bmV3IFUoMSksVD0wO3ouaXNF''@;'; + put 'put ''dmVuKCkmJm5lLmlzRXZlbigpOyl6Lml1c2hybigxKSxuZS5pdXNocm4oMSksKytUO2Zvcih2YXIgUz1uZS5jbG9uZSgpLEY9ei5jbG9uZSgpOyF6LmlzWmVybygpOyl7Zm9yKHZhciB5ZT0wLENlPTE7MD09KHoud29yZHNbMF0mQ2UpJiZ5ZTwyNjsrK3llLENlPDw9MSk7aWYoeWU+MClmb3Io''@;'; + put 'put ''ei5pdXNocm4oeWUpO3llLS0gPjA7KSh0ZS5pc09kZCgpfHx4LmlzT2RkKCkpJiYodGUuaWFkZChTKSx4LmlzdWIoRikpLHRlLml1c2hybigxKSx4Lml1c2hybigxKTtmb3IodmFyIERlPTAsUGU9MTswPT0obmUud29yZHNbMF0mUGUpJiZEZTwyNjsrK0RlLFBlPDw9MSk7aWYoRGU+MClmb3Io''@;'; + put 'put ''bmUuaXVzaHJuKERlKTtEZS0tID4wOykoUC5pc09kZCgpfHxWLmlzT2RkKCkpJiYoUC5pYWRkKFMpLFYuaXN1YihGKSksUC5pdXNocm4oMSksVi5pdXNocm4oMSk7ei5jbXAobmUpPj0wPyh6LmlzdWIobmUpLHRlLmlzdWIoUCkseC5pc3ViKFYpKToobmUuaXN1Yih6KSxQLmlzdWIodGUpLFYu''@;'; + put 'put ''aXN1Yih4KSl9cmV0dXJue2E6UCxiOlYsZ2NkOm5lLml1c2hsbihUKX19LFUucHJvdG90eXBlLl9pbnZtcD1mdW5jdGlvbihPKXtFKDA9PT1PLm5lZ2F0aXZlKSxFKCFPLmlzWmVybygpKTt2YXIgeWUsej10aGlzLG5lPU8uY2xvbmUoKTt6PTAhPT16Lm5lZ2F0aXZlP3oudW1vZChPKTp6LmNs''@;'; + put 'put ''b25lKCk7Zm9yKHZhciB0ZT1uZXcgVSgxKSx4PW5ldyBVKDApLFA9bmUuY2xvbmUoKTt6LmNtcG4oMSk+MCYmbmUuY21wbigxKT4wOyl7Zm9yKHZhciBWPTAsVD0xOzA9PSh6LndvcmRzWzBdJlQpJiZWPDI2OysrVixUPDw9MSk7aWYoVj4wKWZvcih6Lml1c2hybihWKTtWLS0gPjA7KXRlLmlz''@;'; + put 'put ''T2RkKCkmJnRlLmlhZGQoUCksdGUuaXVzaHJuKDEpO2Zvcih2YXIgUz0wLEY9MTswPT0obmUud29yZHNbMF0mRikmJlM8MjY7KytTLEY8PD0xKTtpZihTPjApZm9yKG5lLml1c2hybihTKTtTLS0gPjA7KXguaXNPZGQoKSYmeC5pYWRkKFApLHguaXVzaHJuKDEpO3ouY21wKG5lKT49MD8oei5p''@;'; + put 'put ''c3ViKG5lKSx0ZS5pc3ViKHgpKToobmUuaXN1Yih6KSx4LmlzdWIodGUpKX1yZXR1cm4oeWU9MD09PXouY21wbigxKT90ZTp4KS5jbXBuKDApPDAmJnllLmlhZGQoTykseWV9LFUucHJvdG90eXBlLmdjZD1mdW5jdGlvbihPKXtpZih0aGlzLmlzWmVybygpKXJldHVybiBPLmFicygpO2lmKE8u''@;'; + put 'put ''aXNaZXJvKCkpcmV0dXJuIHRoaXMuYWJzKCk7dmFyIHo9dGhpcy5jbG9uZSgpLG5lPU8uY2xvbmUoKTt6Lm5lZ2F0aXZlPTAsbmUubmVnYXRpdmU9MDtmb3IodmFyIHRlPTA7ei5pc0V2ZW4oKSYmbmUuaXNFdmVuKCk7dGUrKyl6Lml1c2hybigxKSxuZS5pdXNocm4oMSk7Zm9yKDs7KXtmb3Io''@;'; + put 'put ''O3ouaXNFdmVuKCk7KXouaXVzaHJuKDEpO2Zvcig7bmUuaXNFdmVuKCk7KW5lLml1c2hybigxKTt2YXIgeD16LmNtcChuZSk7aWYoeDwwKXt2YXIgUD16O3o9bmUsbmU9UH1lbHNlIGlmKDA9PT14fHwwPT09bmUuY21wbigxKSlicmVhazt6LmlzdWIobmUpfXJldHVybiBuZS5pdXNobG4odGUp''@;'; + put 'put ''fSxVLnByb3RvdHlwZS5pbnZtPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmVnY2QoTykuYS51bW9kKE8pfSxVLnByb3RvdHlwZS5pc0V2ZW49ZnVuY3Rpb24oKXtyZXR1cm4gMD09KDEmdGhpcy53b3Jkc1swXSl9LFUucHJvdG90eXBlLmlzT2RkPWZ1bmN0aW9uKCl7cmV0dXJuIDE9PSgxJnRo''@;'; + put 'put ''aXMud29yZHNbMF0pfSxVLnByb3RvdHlwZS5hbmRsbj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy53b3Jkc1swXSZPfSxVLnByb3RvdHlwZS5iaW5jbj1mdW5jdGlvbihPKXtFKCJudW1iZXIiPT10eXBlb2YgTyk7dmFyIHo9TyUyNixuZT0oTy16KS8yNix0ZT0xPDx6O2lmKHRoaXMubGVuZ3Ro''@;'; + put 'put ''PD1uZSlyZXR1cm4gdGhpcy5fZXhwYW5kKG5lKzEpLHRoaXMud29yZHNbbmVdfD10ZSx0aGlzO2Zvcih2YXIgeD10ZSxQPW5lOzAhPT14JiZQPHRoaXMubGVuZ3RoO1ArKyl7dmFyIFY9MHx0aGlzLndvcmRzW1BdO3g9KFYrPXgpPj4+MjYsdGhpcy53b3Jkc1tQXT1WJj02NzEwODg2M31yZXR1''@;'; + put 'put ''cm4gMCE9PXgmJih0aGlzLndvcmRzW1BdPXgsdGhpcy5sZW5ndGgrKyksdGhpc30sVS5wcm90b3R5cGUuaXNaZXJvPWZ1bmN0aW9uKCl7cmV0dXJuIDE9PT10aGlzLmxlbmd0aCYmMD09PXRoaXMud29yZHNbMF19LFUucHJvdG90eXBlLmNtcG49ZnVuY3Rpb24oTyl7dmFyIG5lLHo9TzwwO2lm''@;'; + put 'put ''KDAhPT10aGlzLm5lZ2F0aXZlJiYheilyZXR1cm4tMTtpZigwPT09dGhpcy5uZWdhdGl2ZSYmeilyZXR1cm4gMTtpZih0aGlzLnN0cmlwKCksdGhpcy5sZW5ndGg+MSluZT0xO2Vsc2V7eiYmKE89LU8pLEUoTzw9NjcxMDg4NjMsIk51bWJlciBpcyB0b28gYmlnIik7dmFyIHRlPTB8dGhpcy53''@;'; + put 'put ''b3Jkc1swXTtuZT10ZT09PU8/MDp0ZTxPPy0xOjF9cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlPzB8LW5lOm5lfSxVLnByb3RvdHlwZS5jbXA9ZnVuY3Rpb24oTyl7aWYoMCE9PXRoaXMubmVnYXRpdmUmJjA9PT1PLm5lZ2F0aXZlKXJldHVybi0xO2lmKDA9PT10aGlzLm5lZ2F0aXZlJiYwIT09''@;'; + put 'put ''Ty5uZWdhdGl2ZSlyZXR1cm4gMTt2YXIgej10aGlzLnVjbXAoTyk7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlPzB8LXo6en0sVS5wcm90b3R5cGUudWNtcD1mdW5jdGlvbihPKXtpZih0aGlzLmxlbmd0aD5PLmxlbmd0aClyZXR1cm4gMTtpZih0aGlzLmxlbmd0aDxPLmxlbmd0aClyZXR1cm4t''@;'; + put 'put ''MTtmb3IodmFyIHo9MCxuZT10aGlzLmxlbmd0aC0xO25lPj0wO25lLS0pe3ZhciB0ZT0wfHRoaXMud29yZHNbbmVdLHg9MHxPLndvcmRzW25lXTtpZih0ZSE9PXgpe3RlPHg/ej0tMTp0ZT54JiYoej0xKTticmVha319cmV0dXJuIHp9LFUucHJvdG90eXBlLmd0bj1mdW5jdGlvbihPKXtyZXR1''@;'; + put 'put ''cm4gMT09PXRoaXMuY21wbihPKX0sVS5wcm90b3R5cGUuZ3Q9ZnVuY3Rpb24oTyl7cmV0dXJuIDE9PT10aGlzLmNtcChPKX0sVS5wcm90b3R5cGUuZ3Rlbj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5jbXBuKE8pPj0wfSxVLnByb3RvdHlwZS5ndGU9ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMu''@;'; + put 'put ''Y21wKE8pPj0wfSxVLnByb3RvdHlwZS5sdG49ZnVuY3Rpb24oTyl7cmV0dXJuLTE9PT10aGlzLmNtcG4oTyl9LFUucHJvdG90eXBlLmx0PWZ1bmN0aW9uKE8pe3JldHVybi0xPT09dGhpcy5jbXAoTyl9LFUucHJvdG90eXBlLmx0ZW49ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuY21wbihPKTw9''@;'; + put 'put ''MH0sVS5wcm90b3R5cGUubHRlPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmNtcChPKTw9MH0sVS5wcm90b3R5cGUuZXFuPWZ1bmN0aW9uKE8pe3JldHVybiAwPT09dGhpcy5jbXBuKE8pfSxVLnByb3RvdHlwZS5lcT1mdW5jdGlvbihPKXtyZXR1cm4gMD09PXRoaXMuY21wKE8pfSxVLnJlZD1m''@;'; + put 'put ''dW5jdGlvbihPKXtyZXR1cm4gbmV3IFRlKE8pfSxVLnByb3RvdHlwZS50b1JlZD1mdW5jdGlvbihPKXtyZXR1cm4gRSghdGhpcy5yZWQsIkFscmVhZHkgYSBudW1iZXIgaW4gcmVkdWN0aW9uIGNvbnRleHQiKSxFKDA9PT10aGlzLm5lZ2F0aXZlLCJyZWQgd29ya3Mgb25seSB3aXRoIHBvc2l0''@;'; + put 'put ''aXZlcyIpLE8uY29udmVydFRvKHRoaXMpLl9mb3JjZVJlZChPKX0sVS5wcm90b3R5cGUuZnJvbVJlZD1mdW5jdGlvbigpe3JldHVybiBFKHRoaXMucmVkLCJmcm9tUmVkIHdvcmtzIG9ubHkgd2l0aCBudW1iZXJzIGluIHJlZHVjdGlvbiBjb250ZXh0IiksdGhpcy5yZWQuY29udmVydEZyb20o''@;'; + put 'put ''dGhpcyl9LFUucHJvdG90eXBlLl9mb3JjZVJlZD1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5yZWQ9Tyx0aGlzfSxVLnByb3RvdHlwZS5mb3JjZVJlZD1mdW5jdGlvbihPKXtyZXR1cm4gRSghdGhpcy5yZWQsIkFscmVhZHkgYSBudW1iZXIgaW4gcmVkdWN0aW9uIGNvbnRleHQiKSx0aGlzLl9m''@;'; + put 'put ''b3JjZVJlZChPKX0sVS5wcm90b3R5cGUucmVkQWRkPWZ1bmN0aW9uKE8pe3JldHVybiBFKHRoaXMucmVkLCJyZWRBZGQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuYWRkKHRoaXMsTyl9LFUucHJvdG90eXBlLnJlZElBZGQ9ZnVuY3Rpb24oTyl7cmV0dXJuIEUodGhp''@;'; + put 'put ''cy5yZWQsInJlZElBZGQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuaWFkZCh0aGlzLE8pfSxVLnByb3RvdHlwZS5yZWRTdWI9ZnVuY3Rpb24oTyl7cmV0dXJuIEUodGhpcy5yZWQsInJlZFN1YiB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5z''@;'; + put 'put ''dWIodGhpcyxPKX0sVS5wcm90b3R5cGUucmVkSVN1Yj1mdW5jdGlvbihPKXtyZXR1cm4gRSh0aGlzLnJlZCwicmVkSVN1YiB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5pc3ViKHRoaXMsTyl9LFUucHJvdG90eXBlLnJlZFNobD1mdW5jdGlvbihPKXtyZXR1cm4gRSh0''@;'; + put 'put ''aGlzLnJlZCwicmVkU2hsIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLnNobCh0aGlzLE8pfSxVLnByb3RvdHlwZS5yZWRNdWw9ZnVuY3Rpb24oTyl7cmV0dXJuIEUodGhpcy5yZWQsInJlZE11bCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5f''@;'; + put 'put ''dmVyaWZ5Mih0aGlzLE8pLHRoaXMucmVkLm11bCh0aGlzLE8pfSxVLnByb3RvdHlwZS5yZWRJTXVsPWZ1bmN0aW9uKE8pe3JldHVybiBFKHRoaXMucmVkLCJyZWRNdWwgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTIodGhpcyxPKSx0aGlzLnJlZC5pbXVs''@;'; + put 'put ''KHRoaXMsTyl9LFUucHJvdG90eXBlLnJlZFNxcj1mdW5jdGlvbigpe3JldHVybiBFKHRoaXMucmVkLCJyZWRTcXIgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQuc3FyKHRoaXMpfSxVLnByb3RvdHlwZS5yZWRJU3FyPWZ1bmN0''@;'; + put 'put ''aW9uKCl7cmV0dXJuIEUodGhpcy5yZWQsInJlZElTcXIgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQuaXNxcih0aGlzKX0sVS5wcm90b3R5cGUucmVkU3FydD1mdW5jdGlvbigpe3JldHVybiBFKHRoaXMucmVkLCJyZWRTcXJ0''@;'; + put 'put ''IHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLnNxcnQodGhpcyl9LFUucHJvdG90eXBlLnJlZEludm09ZnVuY3Rpb24oKXtyZXR1cm4gRSh0aGlzLnJlZCwicmVkSW52bSB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0''@;'; + put 'put ''aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5pbnZtKHRoaXMpfSxVLnByb3RvdHlwZS5yZWROZWc9ZnVuY3Rpb24oKXtyZXR1cm4gRSh0aGlzLnJlZCwicmVkTmVnIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLm5l''@;'; + put 'put ''Zyh0aGlzKX0sVS5wcm90b3R5cGUucmVkUG93PWZ1bmN0aW9uKE8pe3JldHVybiBFKHRoaXMucmVkJiYhTy5yZWQsInJlZFBvdyhub3JtYWxOdW0pIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQucG93KHRoaXMsTyl9O3ZhciBkZT17azI1NjpudWxsLHAyMjQ6bnVsbCxwMTky''@;'; + put 'put ''Om51bGwscDI1NTE5Om51bGx9O2Z1bmN0aW9uIHZlKGhlLE8pe3RoaXMubmFtZT1oZSx0aGlzLnA9bmV3IFUoTywxNiksdGhpcy5uPXRoaXMucC5iaXRMZW5ndGgoKSx0aGlzLms9bmV3IFUoMSkuaXVzaGxuKHRoaXMubikuaXN1Yih0aGlzLnApLHRoaXMudG1wPXRoaXMuX3RtcCgpfWZ1bmN0''@;'; + put 'put ''aW9uIEFlKCl7dmUuY2FsbCh0aGlzLCJrMjU2IiwiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUgZmZmZmZjMmYiKX1mdW5jdGlvbiBrZSgpe3ZlLmNhbGwodGhpcywicDIyNCIsImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZm''@;'; + put 'put ''IGZmZmZmZmZmIDAwMDAwMDAwIDAwMDAwMDAwIDAwMDAwMDAxIil9ZnVuY3Rpb24gU2UoKXt2ZS5jYWxsKHRoaXMsInAxOTIiLCJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZSBmZmZmZmZmZiBmZmZmZmZmZiIpfWZ1bmN0aW9uIEllKCl7dmUuY2FsbCh0aGlzLCIyNTUxOSIs''@;'; + put 'put ''IjdmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZWQiKX1mdW5jdGlvbiBUZShoZSl7aWYoInN0cmluZyI9PXR5cGVvZiBoZSl7dmFyIE89VS5fcHJpbWUoaGUpO3RoaXMubT1PLnAsdGhpcy5wcmltZT1PfWVsc2UgRShoZS5n''@;'; + put 'put ''dG4oMSksIm1vZHVsdXMgbXVzdCBiZSBncmVhdGVyIHRoYW4gMSIpLHRoaXMubT1oZSx0aGlzLnByaW1lPW51bGx9ZnVuY3Rpb24gRWUoaGUpe1RlLmNhbGwodGhpcyxoZSksdGhpcy5zaGlmdD10aGlzLm0uYml0TGVuZ3RoKCksdGhpcy5zaGlmdCUyNiE9MCYmKHRoaXMuc2hpZnQrPTI2LXRo''@;'; + put 'put ''aXMuc2hpZnQlMjYpLHRoaXMucj1uZXcgVSgxKS5pdXNobG4odGhpcy5zaGlmdCksdGhpcy5yMj10aGlzLmltb2QodGhpcy5yLnNxcigpKSx0aGlzLnJpbnY9dGhpcy5yLl9pbnZtcCh0aGlzLm0pLHRoaXMubWludj10aGlzLnJpbnYubXVsKHRoaXMucikuaXN1Ym4oMSkuZGl2KHRoaXMubSks''@;'; + put 'put ''dGhpcy5taW52PXRoaXMubWludi51bW9kKHRoaXMuciksdGhpcy5taW52PXRoaXMuci5zdWIodGhpcy5taW52KX12ZS5wcm90b3R5cGUuX3RtcD1mdW5jdGlvbigpe3ZhciBPPW5ldyBVKG51bGwpO3JldHVybiBPLndvcmRzPW5ldyBBcnJheShNYXRoLmNlaWwodGhpcy5uLzEzKSksT30sdmUu''@;'; + put 'put ''cHJvdG90eXBlLmlyZWR1Y2U9ZnVuY3Rpb24oTyl7dmFyIG5lLHo9Tztkb3t0aGlzLnNwbGl0KHosdGhpcy50bXApLG5lPSh6PSh6PXRoaXMuaW11bEsoeikpLmlhZGQodGhpcy50bXApKS5iaXRMZW5ndGgoKX13aGlsZShuZT50aGlzLm4pO3ZhciB0ZT1uZTx0aGlzLm4/LTE6ei51Y21wKHRo''@;'; + put 'put ''aXMucCk7cmV0dXJuIDA9PT10ZT8oei53b3Jkc1swXT0wLHoubGVuZ3RoPTEpOnRlPjA/ei5pc3ViKHRoaXMucCk6dm9pZCAwIT09ei5zdHJpcD96LnN0cmlwKCk6ei5fc3RyaXAoKSx6fSx2ZS5wcm90b3R5cGUuc3BsaXQ9ZnVuY3Rpb24oTyx6KXtPLml1c2hybih0aGlzLm4sMCx6KX0sdmUu''@;'; + put 'put ''cHJvdG90eXBlLmltdWxLPWZ1bmN0aW9uKE8pe3JldHVybiBPLmltdWwodGhpcy5rKX0sTWUoQWUsdmUpLEFlLnByb3RvdHlwZS5zcGxpdD1mdW5jdGlvbihPLHope2Zvcih2YXIgdGU9TWF0aC5taW4oTy5sZW5ndGgsOSkseD0wO3g8dGU7eCsrKXoud29yZHNbeF09Ty53b3Jkc1t4XTtpZih6''@;'; + put 'put ''Lmxlbmd0aD10ZSxPLmxlbmd0aDw9OSlyZXR1cm4gTy53b3Jkc1swXT0wLHZvaWQoTy5sZW5ndGg9MSk7dmFyIFA9Ty53b3Jkc1s5XTtmb3Ioei53b3Jkc1t6Lmxlbmd0aCsrXT00MTk0MzAzJlAseD0xMDt4PE8ubGVuZ3RoO3grKyl7dmFyIFY9MHxPLndvcmRzW3hdO08ud29yZHNbeC0xMF09''@;'; + put 'put ''KDQxOTQzMDMmVik8PDR8UD4+PjIyLFA9Vn1PLndvcmRzW3gtMTBdPVA+Pj49MjIsTy5sZW5ndGgtPTA9PT1QJiZPLmxlbmd0aD4xMD8xMDo5fSxBZS5wcm90b3R5cGUuaW11bEs9ZnVuY3Rpb24oTyl7Ty53b3Jkc1tPLmxlbmd0aF09MCxPLndvcmRzW08ubGVuZ3RoKzFdPTAsTy5sZW5ndGgr''@;'; + put 'put ''PTI7Zm9yKHZhciB6PTAsbmU9MDtuZTxPLmxlbmd0aDtuZSsrKXt2YXIgdGU9MHxPLndvcmRzW25lXTtPLndvcmRzW25lXT02NzEwODg2MyYoeis9OTc3KnRlKSx6PTY0KnRlKyh6LzY3MTA4ODY0fDApfXJldHVybiAwPT09Ty53b3Jkc1tPLmxlbmd0aC0xXSYmKE8ubGVuZ3RoLS0sMD09PU8u''@;'; + put 'put ''d29yZHNbTy5sZW5ndGgtMV0mJk8ubGVuZ3RoLS0pLE99LE1lKGtlLHZlKSxNZShTZSx2ZSksTWUoSWUsdmUpLEllLnByb3RvdHlwZS5pbXVsSz1mdW5jdGlvbihPKXtmb3IodmFyIHo9MCxuZT0wO25lPE8ubGVuZ3RoO25lKyspe3ZhciB0ZT0xOSooMHxPLndvcmRzW25lXSkreix4PTY3MTA4''@;'; + put 'put ''ODYzJnRlO3RlPj4+PTI2LE8ud29yZHNbbmVdPXgsej10ZX1yZXR1cm4gMCE9PXomJihPLndvcmRzW08ubGVuZ3RoKytdPXopLE99LFUuX3ByaW1lPWZ1bmN0aW9uKE8pe2lmKGRlW09dKXJldHVybiBkZVtPXTt2YXIgejtpZigiazI1NiI9PT1PKXo9bmV3IEFlO2Vsc2UgaWYoInAyMjQiPT09''@;'; + put 'put ''Tyl6PW5ldyBrZTtlbHNlIGlmKCJwMTkyIj09PU8pej1uZXcgU2U7ZWxzZXtpZigicDI1NTE5IiE9PU8pdGhyb3cgbmV3IEVycm9yKCJVbmtub3duIHByaW1lICIrTyk7ej1uZXcgSWV9cmV0dXJuIGRlW09dPXosen0sVGUucHJvdG90eXBlLl92ZXJpZnkxPWZ1bmN0aW9uKE8pe0UoMD09PU8u''@;'; + put 'put ''bmVnYXRpdmUsInJlZCB3b3JrcyBvbmx5IHdpdGggcG9zaXRpdmVzIiksRShPLnJlZCwicmVkIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpfSxUZS5wcm90b3R5cGUuX3ZlcmlmeTI9ZnVuY3Rpb24oTyx6KXtFKDA9PShPLm5lZ2F0aXZlfHoubmVnYXRpdmUpLCJyZWQgd29ya3Mgb25s''@;'; + put 'put ''eSB3aXRoIHBvc2l0aXZlcyIpLEUoTy5yZWQmJk8ucmVkPT09ei5yZWQsInJlZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKX0sVGUucHJvdG90eXBlLmltb2Q9ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMucHJpbWU/dGhpcy5wcmltZS5pcmVkdWNlKE8pLl9mb3JjZVJlZCh0aGlzKTpP''@;'; + put 'put ''LnVtb2QodGhpcy5tKS5fZm9yY2VSZWQodGhpcyl9LFRlLnByb3RvdHlwZS5uZWc9ZnVuY3Rpb24oTyl7cmV0dXJuIE8uaXNaZXJvKCk/Ty5jbG9uZSgpOnRoaXMubS5zdWIoTykuX2ZvcmNlUmVkKHRoaXMpfSxUZS5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKE8seil7dGhpcy5fdmVyaWZ5MihP''@;'; + put 'put ''LHopO3ZhciBuZT1PLmFkZCh6KTtyZXR1cm4gbmUuY21wKHRoaXMubSk+PTAmJm5lLmlzdWIodGhpcy5tKSxuZS5fZm9yY2VSZWQodGhpcyl9LFRlLnByb3RvdHlwZS5pYWRkPWZ1bmN0aW9uKE8seil7dGhpcy5fdmVyaWZ5MihPLHopO3ZhciBuZT1PLmlhZGQoeik7cmV0dXJuIG5lLmNtcCh0''@;'; + put 'put ''aGlzLm0pPj0wJiZuZS5pc3ViKHRoaXMubSksbmV9LFRlLnByb3RvdHlwZS5zdWI9ZnVuY3Rpb24oTyx6KXt0aGlzLl92ZXJpZnkyKE8seik7dmFyIG5lPU8uc3ViKHopO3JldHVybiBuZS5jbXBuKDApPDAmJm5lLmlhZGQodGhpcy5tKSxuZS5fZm9yY2VSZWQodGhpcyl9LFRlLnByb3RvdHlw''@;'; + put 'put ''ZS5pc3ViPWZ1bmN0aW9uKE8seil7dGhpcy5fdmVyaWZ5MihPLHopO3ZhciBuZT1PLmlzdWIoeik7cmV0dXJuIG5lLmNtcG4oMCk8MCYmbmUuaWFkZCh0aGlzLm0pLG5lfSxUZS5wcm90b3R5cGUuc2hsPWZ1bmN0aW9uKE8seil7cmV0dXJuIHRoaXMuX3ZlcmlmeTEoTyksdGhpcy5pbW9kKE8u''@;'; + put 'put ''dXNobG4oeikpfSxUZS5wcm90b3R5cGUuaW11bD1mdW5jdGlvbihPLHope3JldHVybiB0aGlzLl92ZXJpZnkyKE8seiksdGhpcy5pbW9kKE8uaW11bCh6KSl9LFRlLnByb3RvdHlwZS5tdWw9ZnVuY3Rpb24oTyx6KXtyZXR1cm4gdGhpcy5fdmVyaWZ5MihPLHopLHRoaXMuaW1vZChPLm11bCh6''@;'; + put 'put ''KSl9LFRlLnByb3RvdHlwZS5pc3FyPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmltdWwoTyxPLmNsb25lKCkpfSxUZS5wcm90b3R5cGUuc3FyPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLm11bChPLE8pfSxUZS5wcm90b3R5cGUuc3FydD1mdW5jdGlvbihPKXtpZihPLmlzWmVybygpKXJldHVy''@;'; + put 'put ''biBPLmNsb25lKCk7dmFyIHo9dGhpcy5tLmFuZGxuKDMpO2lmKEUoeiUyPT0xKSwzPT09eil7dmFyIG5lPXRoaXMubS5hZGQobmV3IFUoMSkpLml1c2hybigyKTtyZXR1cm4gdGhpcy5wb3coTyxuZSl9Zm9yKHZhciB0ZT10aGlzLm0uc3VibigxKSx4PTA7IXRlLmlzWmVybygpJiYwPT09dGUu''@;'; + put 'put ''YW5kbG4oMSk7KXgrKyx0ZS5pdXNocm4oMSk7RSghdGUuaXNaZXJvKCkpO3ZhciBQPW5ldyBVKDEpLnRvUmVkKHRoaXMpLFY9UC5yZWROZWcoKSxUPXRoaXMubS5zdWJuKDEpLml1c2hybigxKSxTPXRoaXMubS5iaXRMZW5ndGgoKTtmb3IoUz1uZXcgVSgyKlMqUykudG9SZWQodGhpcyk7MCE9''@;'; + put 'put ''PXRoaXMucG93KFMsVCkuY21wKFYpOylTLnJlZElBZGQoVik7Zm9yKHZhciBGPXRoaXMucG93KFMsdGUpLHllPXRoaXMucG93KE8sdGUuYWRkbigxKS5pdXNocm4oMSkpLENlPXRoaXMucG93KE8sdGUpLERlPXg7MCE9PUNlLmNtcChQKTspe2Zvcih2YXIgUGU9Q2UsUWU9MDswIT09UGUuY21w''@;'; + put 'put ''KFApO1FlKyspUGU9UGUucmVkU3FyKCk7RShRZTxEZSk7dmFyICRlPXRoaXMucG93KEYsbmV3IFUoMSkuaXVzaGxuKERlLVFlLTEpKTt5ZT15ZS5yZWRNdWwoJGUpLEY9JGUucmVkU3FyKCksQ2U9Q2UucmVkTXVsKEYpLERlPVFlfXJldHVybiB5ZX0sVGUucHJvdG90eXBlLmludm09ZnVuY3Rp''@;'; + put 'put ''b24oTyl7dmFyIHo9Ty5faW52bXAodGhpcy5tKTtyZXR1cm4gMCE9PXoubmVnYXRpdmU/KHoubmVnYXRpdmU9MCx0aGlzLmltb2QoeikucmVkTmVnKCkpOnRoaXMuaW1vZCh6KX0sVGUucHJvdG90eXBlLnBvdz1mdW5jdGlvbihPLHope2lmKHouaXNaZXJvKCkpcmV0dXJuIG5ldyBVKDEpLnRv''@;'; + put 'put ''UmVkKHRoaXMpO2lmKDA9PT16LmNtcG4oMSkpcmV0dXJuIE8uY2xvbmUoKTt2YXIgdGU9bmV3IEFycmF5KDE2KTt0ZVswXT1uZXcgVSgxKS50b1JlZCh0aGlzKSx0ZVsxXT1PO2Zvcih2YXIgeD0yO3g8dGUubGVuZ3RoO3grKyl0ZVt4XT10aGlzLm11bCh0ZVt4LTFdLE8pO3ZhciBQPXRlWzBd''@;'; + put 'put ''LFY9MCxUPTAsUz16LmJpdExlbmd0aCgpJTI2O2ZvcigwPT09UyYmKFM9MjYpLHg9ei5sZW5ndGgtMTt4Pj0wO3gtLSl7Zm9yKHZhciBGPXoud29yZHNbeF0seWU9Uy0xO3llPj0wO3llLS0pe3ZhciBDZT1GPj55ZSYxO1AhPT10ZVswXSYmKFA9dGhpcy5zcXIoUCkpLDAhPT1DZXx8MCE9PVY/''@;'; + put 'put ''KFY8PD0xLFZ8PUNlLCg0PT0rK1R8fDA9PT14JiYwPT09eWUpJiYoUD10aGlzLm11bChQLHRlW1ZdKSxUPTAsVj0wKSk6VD0wfVM9MjZ9cmV0dXJuIFB9LFRlLnByb3RvdHlwZS5jb252ZXJ0VG89ZnVuY3Rpb24oTyl7dmFyIHo9Ty51bW9kKHRoaXMubSk7cmV0dXJuIHo9PT1PP3ouY2xvbmUo''@;'; + put 'put ''KTp6fSxUZS5wcm90b3R5cGUuY29udmVydEZyb209ZnVuY3Rpb24oTyl7dmFyIHo9Ty5jbG9uZSgpO3JldHVybiB6LnJlZD1udWxsLHp9LFUubW9udD1mdW5jdGlvbihPKXtyZXR1cm4gbmV3IEVlKE8pfSxNZShFZSxUZSksRWUucHJvdG90eXBlLmNvbnZlcnRUbz1mdW5jdGlvbihPKXtyZXR1''@;'; + put 'put ''cm4gdGhpcy5pbW9kKE8udXNobG4odGhpcy5zaGlmdCkpfSxFZS5wcm90b3R5cGUuY29udmVydEZyb209ZnVuY3Rpb24oTyl7dmFyIHo9dGhpcy5pbW9kKE8ubXVsKHRoaXMucmludikpO3JldHVybiB6LnJlZD1udWxsLHp9LEVlLnByb3RvdHlwZS5pbXVsPWZ1bmN0aW9uKE8seil7aWYoTy5p''@;'; + put 'put ''c1plcm8oKXx8ei5pc1plcm8oKSlyZXR1cm4gTy53b3Jkc1swXT0wLE8ubGVuZ3RoPTEsTzt2YXIgbmU9Ty5pbXVsKHopLHRlPW5lLm1hc2tuKHRoaXMuc2hpZnQpLm11bCh0aGlzLm1pbnYpLmltYXNrbih0aGlzLnNoaWZ0KS5tdWwodGhpcy5tKSx4PW5lLmlzdWIodGUpLml1c2hybih0aGlz''@;'; + put 'put ''LnNoaWZ0KSxQPXg7cmV0dXJuIHguY21wKHRoaXMubSk+PTA/UD14LmlzdWIodGhpcy5tKTp4LmNtcG4oMCk8MCYmKFA9eC5pYWRkKHRoaXMubSkpLFAuX2ZvcmNlUmVkKHRoaXMpfSxFZS5wcm90b3R5cGUubXVsPWZ1bmN0aW9uKE8seil7aWYoTy5pc1plcm8oKXx8ei5pc1plcm8oKSlyZXR1''@;'; + put 'put ''cm4gbmV3IFUoMCkuX2ZvcmNlUmVkKHRoaXMpO3ZhciBuZT1PLm11bCh6KSx0ZT1uZS5tYXNrbih0aGlzLnNoaWZ0KS5tdWwodGhpcy5taW52KS5pbWFza24odGhpcy5zaGlmdCkubXVsKHRoaXMubSkseD1uZS5pc3ViKHRlKS5pdXNocm4odGhpcy5zaGlmdCksUD14O3JldHVybiB4LmNtcCh0''@;'; + put 'put ''aGlzLm0pPj0wP1A9eC5pc3ViKHRoaXMubSk6eC5jbXBuKDApPDAmJihQPXguaWFkZCh0aGlzLm0pKSxQLl9mb3JjZVJlZCh0aGlzKX0sRWUucHJvdG90eXBlLmludm09ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuaW1vZChPLl9pbnZtcCh0aGlzLm0pLm11bCh0aGlzLnIyKSkuX2ZvcmNlUmVk''@;'; + put 'put ''KHRoaXMpfX0oWGU9TC5ubWQoWGUpLHRoaXMpfSwzNjcwNTooWGUsSmUsTCk9Pnt2YXIgbWU9TCgyMjc3MiksQj1MKDg2OTQ1KSxFPUwoNzk0MDEpLE1lPUwoODIwNTcpLFU9TCg4NDY2KSxRPUwoOTYzODYpLFo9TCgzODY1MSksaWU9TCg3MzUwMikuQnVmZmVyO1hlLmV4cG9ydHM9ZnVuY3Rp''@;'; + put 'put ''b24oZWUscSxKKXt2YXIgc2U7c2U9ZWUucGFkZGluZz9lZS5wYWRkaW5nOko/MTo0O3ZhciBkZSxvZT1tZShlZSksY2U9b2UubW9kdWx1cy5ieXRlTGVuZ3RoKCk7aWYocS5sZW5ndGg+Y2V8fG5ldyBNZShxKS5jbXAob2UubW9kdWx1cyk+PTApdGhyb3cgbmV3IEVycm9yKCJkZWNyeXB0aW9u''@;'; + put 'put ''IGVycm9yIik7ZGU9Sj9aKG5ldyBNZShxKSxvZSk6VShxLG9lKTt2YXIgdmU9aWUuYWxsb2MoY2UtZGUubGVuZ3RoKTtpZihkZT1pZS5jb25jYXQoW3ZlLGRlXSxjZSksND09PXNlKXJldHVybiBmdW5jdGlvbiBhZShOLGVlKXt2YXIgcT1OLm1vZHVsdXMuYnl0ZUxlbmd0aCgpLEo9USgic2hh''@;'; + put 'put ''MSIpLnVwZGF0ZShpZS5hbGxvYygwKSkuZGlnZXN0KCksc2U9Si5sZW5ndGg7aWYoMCE9PWVlWzBdKXRocm93IG5ldyBFcnJvcigiZGVjcnlwdGlvbiBlcnJvciIpO3ZhciBvZT1lZS5zbGljZSgxLHNlKzEpLGNlPWVlLnNsaWNlKHNlKzEpLGRlPUUob2UsQihjZSxzZSkpLHZlPUUoY2UsQihk''@;'; + put 'put ''ZSxxLXNlLTEpKTtpZihmdW5jdGlvbiBXKE4sZWUpe049aWUuZnJvbShOKSxlZT1pZS5mcm9tKGVlKTt2YXIgcT0wLEo9Ti5sZW5ndGg7Ti5sZW5ndGghPT1lZS5sZW5ndGgmJihxKyssSj1NYXRoLm1pbihOLmxlbmd0aCxlZS5sZW5ndGgpKTtmb3IodmFyIHNlPS0xOysrc2U8SjspcSs9Tltz''@;'; + put 'put ''ZV1eZWVbc2VdO3JldHVybiBxfShKLHZlLnNsaWNlKDAsc2UpKSl0aHJvdyBuZXcgRXJyb3IoImRlY3J5cHRpb24gZXJyb3IiKTtmb3IodmFyIEFlPXNlOzA9PT12ZVtBZV07KUFlKys7aWYoMSE9PXZlW0FlKytdKXRocm93IG5ldyBFcnJvcigiZGVjcnlwdGlvbiBlcnJvciIpO3JldHVybiB2''@;'; + put 'put ''ZS5zbGljZShBZSl9KG9lLGRlKTtpZigxPT09c2UpcmV0dXJuIGZ1bmN0aW9uIFkoTixlZSxxKXtmb3IodmFyIEo9ZWUuc2xpY2UoMCwyKSxzZT0yLG9lPTA7MCE9PWVlW3NlKytdOylpZihzZT49ZWUubGVuZ3RoKXtvZSsrO2JyZWFrfXZhciBjZT1lZS5zbGljZSgyLHNlLTEpO2lmKCgiMDAw''@;'; + put 'put ''MiIhPT1KLnRvU3RyaW5nKCJoZXgiKSYmIXF8fCIwMDAxIiE9PUoudG9TdHJpbmcoImhleCIpJiZxKSYmb2UrKyxjZS5sZW5ndGg8OCYmb2UrKyxvZSl0aHJvdyBuZXcgRXJyb3IoImRlY3J5cHRpb24gZXJyb3IiKTtyZXR1cm4gZWUuc2xpY2Uoc2UpfSgwLGRlLEopO2lmKDM9PT1zZSlyZXR1''@;'; + put 'put ''cm4gZGU7dGhyb3cgbmV3IEVycm9yKCJ1bmtub3duIHBhZGRpbmciKX19LDE2NTYyOihYZSxKZSxMKT0+e3ZhciBtZT1MKDIyNzcyKSxCPUwoNTM3NTMpLEU9TCg5NjM4NiksTWU9TCg4Njk0NSksVT1MKDc5NDAxKSxRPUwoODIwNTcpLFo9TCgzODY1MSksaWU9TCg4NDY2KSxhZT1MKDczNTAy''@;'; + put 'put ''KS5CdWZmZXI7WGUuZXhwb3J0cz1mdW5jdGlvbihxLEosc2Upe3ZhciBvZTtvZT1xLnBhZGRpbmc/cS5wYWRkaW5nOnNlPzE6NDt2YXIgZGUsY2U9bWUocSk7aWYoND09PW9lKWRlPWZ1bmN0aW9uIFkoZWUscSl7dmFyIEo9ZWUubW9kdWx1cy5ieXRlTGVuZ3RoKCksc2U9cS5sZW5ndGgsb2U9''@;'; + put 'put ''RSgic2hhMSIpLnVwZGF0ZShhZS5hbGxvYygwKSkuZGlnZXN0KCksY2U9b2UubGVuZ3RoLGRlPTIqY2U7aWYoc2U+Si1kZS0yKXRocm93IG5ldyBFcnJvcigibWVzc2FnZSB0b28gbG9uZyIpO3ZhciB2ZT1hZS5hbGxvYyhKLXNlLWRlLTIpLEFlPUotY2UtMSxrZT1CKGNlKSxTZT1VKGFlLmNv''@;'; + put 'put ''bmNhdChbb2UsdmUsYWUuYWxsb2MoMSwxKSxxXSxBZSksTWUoa2UsQWUpKSxJZT1VKGtlLE1lKFNlLGNlKSk7cmV0dXJuIG5ldyBRKGFlLmNvbmNhdChbYWUuYWxsb2MoMSksSWUsU2VdLEopKX0oY2UsSik7ZWxzZSBpZigxPT09b2UpZGU9ZnVuY3Rpb24gVyhlZSxxLEope3ZhciBjZSxzZT1x''@;'; + put 'put ''Lmxlbmd0aCxvZT1lZS5tb2R1bHVzLmJ5dGVMZW5ndGgoKTtpZihzZT5vZS0xMSl0aHJvdyBuZXcgRXJyb3IoIm1lc3NhZ2UgdG9vIGxvbmciKTtyZXR1cm4gY2U9Sj9hZS5hbGxvYyhvZS1zZS0zLDI1NSk6ZnVuY3Rpb24gTihlZSl7Zm9yKHZhciBjZSxxPWFlLmFsbG9jVW5zYWZlKGVlKSxK''@;'; + put 'put ''PTAsc2U9QigyKmVlKSxvZT0wO0o8ZWU7KW9lPT09c2UubGVuZ3RoJiYoc2U9QigyKmVlKSxvZT0wKSwoY2U9c2Vbb2UrK10pJiYocVtKKytdPWNlKTtyZXR1cm4gcX0ob2Utc2UtMyksbmV3IFEoYWUuY29uY2F0KFthZS5mcm9tKFswLEo/MToyXSksY2UsYWUuYWxsb2MoMSkscV0sb2UpKX0o''@;'; + put 'put ''Y2UsSixzZSk7ZWxzZXtpZigzIT09b2UpdGhyb3cgbmV3IEVycm9yKCJ1bmtub3duIHBhZGRpbmciKTtpZigoZGU9bmV3IFEoSikpLmNtcChjZS5tb2R1bHVzKT49MCl0aHJvdyBuZXcgRXJyb3IoImRhdGEgdG9vIGxvbmcgZm9yIG1vZHVsdXMiKX1yZXR1cm4gc2U/aWUoZGUsY2UpOlooZGUs''@;'; + put 'put ''Y2UpfX0sMzg2NTE6KFhlLEplLEwpPT57dmFyIG1lPUwoODIwNTcpLEI9TCg3MzUwMikuQnVmZmVyO1hlLmV4cG9ydHM9ZnVuY3Rpb24gRShNZSxVKXtyZXR1cm4gQi5mcm9tKE1lLnRvUmVkKG1lLm1vbnQoVS5tb2R1bHVzKSkucmVkUG93KG5ldyBtZShVLnB1YmxpY0V4cG9uZW50KSkuZnJv''@;'; + put 'put ''bVJlZCgpLnRvQXJyYXkoKSl9fSw3OTQwMTpYZT0+e1hlLmV4cG9ydHM9ZnVuY3Rpb24oTCxtZSl7Zm9yKHZhciBCPUwubGVuZ3RoLEU9LTE7KytFPEI7KUxbRV1ePW1lW0VdO3JldHVybiBMfX0sNTM3NTM6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBNZT1MKDczNTAyKS5CdWZmZXIs''@;'; + put 'put ''VT1nbG9iYWwuY3J5cHRvfHxnbG9iYWwubXNDcnlwdG87WGUuZXhwb3J0cz1VJiZVLmdldFJhbmRvbVZhbHVlcz9mdW5jdGlvbiBRKFosaWUpe2lmKFo+NDI5NDk2NzI5NSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigicmVxdWVzdGVkIHRvbyBtYW55IHJhbmRvbSBieXRlcyIpO3ZhciBhZT1NZS5h''@;'; + put 'put ''bGxvY1Vuc2FmZShaKTtpZihaPjApaWYoWj42NTUzNilmb3IodmFyIFk9MDtZPFo7WSs9NjU1MzYpVS5nZXRSYW5kb21WYWx1ZXMoYWUuc2xpY2UoWSxZKzY1NTM2KSk7ZWxzZSBVLmdldFJhbmRvbVZhbHVlcyhhZSk7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIGllP3Byb2Nlc3MubmV4dFRp''@;'; + put 'put ''Y2soZnVuY3Rpb24oKXtpZShudWxsLGFlKX0pOmFlfTpmdW5jdGlvbiBFKCl7dGhyb3cgbmV3IEVycm9yKCJTZWN1cmUgcmFuZG9tIG51bWJlciBnZW5lcmF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhpcyBicm93c2VyLlxuVXNlIENocm9tZSwgRmlyZWZveCBvciBJbnRlcm5ldCBFeHBs''@;'; + put 'put ''b3JlciAxMSIpfX0sMTQyNzU6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG1lKCl7dGhyb3cgbmV3IEVycm9yKCJzZWN1cmUgcmFuZG9tIG51bWJlciBnZW5lcmF0aW9uIG5vdCBzdXBwb3J0ZWQgYnkgdGhpcyBicm93c2VyXG51c2UgY2hyb21lLCBGaXJlRm94IG9yIEludGVy''@;'; + put 'put ''bmV0IEV4cGxvcmVyIDExIil9dmFyIEI9TCg3MzUwMiksRT1MKDUzNzUzKSxNZT1CLkJ1ZmZlcixVPUIua01heExlbmd0aCxRPWdsb2JhbC5jcnlwdG98fGdsb2JhbC5tc0NyeXB0byxaPU1hdGgucG93KDIsMzIpLTE7ZnVuY3Rpb24gaWUoZWUscSl7aWYoIm51bWJlciIhPXR5cGVvZiBlZXx8''@;'; + put 'put ''ZWUhPWVlKXRocm93IG5ldyBUeXBlRXJyb3IoIm9mZnNldCBtdXN0IGJlIGEgbnVtYmVyIik7aWYoZWU+Wnx8ZWU8MCl0aHJvdyBuZXcgVHlwZUVycm9yKCJvZmZzZXQgbXVzdCBiZSBhIHVpbnQzMiIpO2lmKGVlPlV8fGVlPnEpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIm9mZnNldCBvdXQgb2Yg''@;'; + put 'put ''cmFuZ2UiKX1mdW5jdGlvbiBhZShlZSxxLEope2lmKCJudW1iZXIiIT10eXBlb2YgZWV8fGVlIT1lZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJzaXplIG11c3QgYmUgYSBudW1iZXIiKTtpZihlZT5afHxlZTwwKXRocm93IG5ldyBUeXBlRXJyb3IoInNpemUgbXVzdCBiZSBhIHVpbnQzMiIpO2lm''@;'; + put 'put ''KGVlK3E+Snx8ZWU+VSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiYnVmZmVyIHRvbyBzbWFsbCIpfWZ1bmN0aW9uIFcoZWUscSxKLHNlKXtpZihwcm9jZXNzLmJyb3dzZXIpe3ZhciBjZT1uZXcgVWludDhBcnJheShlZS5idWZmZXIscSxKKTtyZXR1cm4gUS5nZXRSYW5kb21WYWx1ZXMoY2UpLHNl''@;'; + put 'put ''P3ZvaWQgcHJvY2Vzcy5uZXh0VGljayhmdW5jdGlvbigpe3NlKG51bGwsZWUpfSk6ZWV9aWYoIXNlKXJldHVybiBFKEopLmNvcHkoZWUscSksZWU7RShKLGZ1bmN0aW9uKHZlLEFlKXtpZih2ZSlyZXR1cm4gc2UodmUpO0FlLmNvcHkoZWUscSksc2UobnVsbCxlZSl9KX1RJiZRLmdldFJhbmRv''@;'; + put 'put ''bVZhbHVlc3x8IXByb2Nlc3MuYnJvd3Nlcj8oSmUucmFuZG9tRmlsbD1mdW5jdGlvbiBZKGVlLHEsSixzZSl7aWYoIShNZS5pc0J1ZmZlcihlZSl8fGVlIGluc3RhbmNlb2YgZ2xvYmFsLlVpbnQ4QXJyYXkpKXRocm93IG5ldyBUeXBlRXJyb3IoJyJidWYiIGFyZ3VtZW50IG11c3QgYmUgYSBC''@;'; + put 'put ''dWZmZXIgb3IgVWludDhBcnJheScpO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBxKXNlPXEscT0wLEo9ZWUubGVuZ3RoO2Vsc2UgaWYoImZ1bmN0aW9uIj09dHlwZW9mIEopc2U9SixKPWVlLmxlbmd0aC1xO2Vsc2UgaWYoImZ1bmN0aW9uIiE9dHlwZW9mIHNlKXRocm93IG5ldyBUeXBlRXJyb3Io''@;'; + put 'put ''JyJjYiIgYXJndW1lbnQgbXVzdCBiZSBhIGZ1bmN0aW9uJyk7cmV0dXJuIGllKHEsZWUubGVuZ3RoKSxhZShKLHEsZWUubGVuZ3RoKSxXKGVlLHEsSixzZSl9LEplLnJhbmRvbUZpbGxTeW5jPWZ1bmN0aW9uIE4oZWUscSxKKXtpZih2b2lkIDA9PT1xJiYocT0wKSwhKE1lLmlzQnVmZmVyKGVl''@;'; + put 'put ''KXx8ZWUgaW5zdGFuY2VvZiBnbG9iYWwuVWludDhBcnJheSkpdGhyb3cgbmV3IFR5cGVFcnJvcignImJ1ZiIgYXJndW1lbnQgbXVzdCBiZSBhIEJ1ZmZlciBvciBVaW50OEFycmF5Jyk7cmV0dXJuIGllKHEsZWUubGVuZ3RoKSx2b2lkIDA9PT1KJiYoSj1lZS5sZW5ndGgtcSksYWUoSixxLGVl''@;'; + put 'put ''Lmxlbmd0aCksVyhlZSxxLEopfSk6KEplLnJhbmRvbUZpbGw9bWUsSmUucmFuZG9tRmlsbFN5bmM9bWUpfSw3MDg5MTpYZT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgTD17fTtmdW5jdGlvbiBtZShRLFosaWUpe2llfHwoaWU9RXJyb3IpO3ZhciBZPWZ1bmN0aW9uKFcpe2Z1bmN0aW9uIE4oZWUscSxK''@;'; + put 'put ''KXtyZXR1cm4gVy5jYWxsKHRoaXMsZnVuY3Rpb24gYWUoVyxOLGVlKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIFo/WjpaKFcsTixlZSl9KGVlLHEsSikpfHx0aGlzfXJldHVybiBmdW5jdGlvbiBKZShRLFope1EucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoWi5wcm90b3R5cGUpLFEucHJvdG90''@;'; + put 'put ''eXBlLmNvbnN0cnVjdG9yPVEsUS5fX3Byb3RvX189Wn0oTixXKSxOfShpZSk7WS5wcm90b3R5cGUubmFtZT1pZS5uYW1lLFkucHJvdG90eXBlLmNvZGU9USxMW1FdPVl9ZnVuY3Rpb24gQihRLFope2lmKEFycmF5LmlzQXJyYXkoUSkpe3ZhciBpZT1RLmxlbmd0aDtyZXR1cm4gUT1RLm1hcChm''@;'; + put 'put ''dW5jdGlvbihhZSl7cmV0dXJuIFN0cmluZyhhZSl9KSxpZT4yPyJvbmUgb2YgIi5jb25jYXQoWiwiICIpLmNvbmNhdChRLnNsaWNlKDAsaWUtMSkuam9pbigiLCAiKSwiLCBvciAiKStRW2llLTFdOjI9PT1pZT8ib25lIG9mICIuY29uY2F0KFosIiAiKS5jb25jYXQoUVswXSwiIG9yICIpLmNv''@;'; + put 'put ''bmNhdChRWzFdKToib2YgIi5jb25jYXQoWiwiICIpLmNvbmNhdChRWzBdKX1yZXR1cm4ib2YgIi5jb25jYXQoWiwiICIpLmNvbmNhdChTdHJpbmcoUSkpfW1lKCJFUlJfSU5WQUxJRF9PUFRfVkFMVUUiLGZ1bmN0aW9uKFEsWil7cmV0dXJuJ1RoZSB2YWx1ZSAiJytaKyciIGlzIGludmFsaWQg''@;'; + put 'put ''Zm9yIG9wdGlvbiAiJytRKyciJ30sVHlwZUVycm9yKSxtZSgiRVJSX0lOVkFMSURfQVJHX1RZUEUiLGZ1bmN0aW9uKFEsWixpZSl7dmFyIGFlLFk7aWYoInN0cmluZyI9PXR5cGVvZiBaJiZmdW5jdGlvbiBFKFEsWixpZSl7cmV0dXJuIFEuc3Vic3RyKCFpZXx8aWU8MD8wOitpZSxaLmxlbmd0''@;'; + put 'put ''aCk9PT1afShaLCJub3QgIik/KGFlPSJtdXN0IG5vdCBiZSIsWj1aLnJlcGxhY2UoL15ub3QgLywiIikpOmFlPSJtdXN0IGJlIixmdW5jdGlvbiBNZShRLFosaWUpe3JldHVybih2b2lkIDA9PT1pZXx8aWU+US5sZW5ndGgpJiYoaWU9US5sZW5ndGgpLFEuc3Vic3RyaW5nKGllLVoubGVuZ3Ro''@;'; + put 'put ''LGllKT09PVp9KFEsIiBhcmd1bWVudCIpKVk9IlRoZSAiLmNvbmNhdChRLCIgIikuY29uY2F0KGFlLCIgIikuY29uY2F0KEIoWiwidHlwZSIpKTtlbHNle3ZhciBXPWZ1bmN0aW9uIFUoUSxaLGllKXtyZXR1cm4ibnVtYmVyIiE9dHlwZW9mIGllJiYoaWU9MCksIShpZStaLmxlbmd0aD5RLmxl''@;'; + put 'put ''bmd0aCkmJi0xIT09US5pbmRleE9mKFosaWUpfShRLCIuIik/InByb3BlcnR5IjoiYXJndW1lbnQiO1k9J1RoZSAiJy5jb25jYXQoUSwnIiAnKS5jb25jYXQoVywiICIpLmNvbmNhdChhZSwiICIpLmNvbmNhdChCKFosInR5cGUiKSl9cmV0dXJuIFkrIi4gUmVjZWl2ZWQgdHlwZSAiLmNvbmNh''@;'; + put 'put ''dCh0eXBlb2YgaWUpfSxUeXBlRXJyb3IpLG1lKCJFUlJfU1RSRUFNX1BVU0hfQUZURVJfRU9GIiwic3RyZWFtLnB1c2goKSBhZnRlciBFT0YiKSxtZSgiRVJSX01FVEhPRF9OT1RfSU1QTEVNRU5URUQiLGZ1bmN0aW9uKFEpe3JldHVybiJUaGUgIitRKyIgbWV0aG9kIGlzIG5vdCBpbXBsZW1l''@;'; + put 'put ''bnRlZCJ9KSxtZSgiRVJSX1NUUkVBTV9QUkVNQVRVUkVfQ0xPU0UiLCJQcmVtYXR1cmUgY2xvc2UiKSxtZSgiRVJSX1NUUkVBTV9ERVNUUk9ZRUQiLGZ1bmN0aW9uKFEpe3JldHVybiJDYW5ub3QgY2FsbCAiK1ErIiBhZnRlciBhIHN0cmVhbSB3YXMgZGVzdHJveWVkIn0pLG1lKCJFUlJfTVVM''@;'; + put 'put ''VElQTEVfQ0FMTEJBQ0siLCJDYWxsYmFjayBjYWxsZWQgbXVsdGlwbGUgdGltZXMiKSxtZSgiRVJSX1NUUkVBTV9DQU5OT1RfUElQRSIsIkNhbm5vdCBwaXBlLCBub3QgcmVhZGFibGUiKSxtZSgiRVJSX1NUUkVBTV9XUklURV9BRlRFUl9FTkQiLCJ3cml0ZSBhZnRlciBlbmQiKSxtZSgiRVJS''@;'; + put 'put ''X1NUUkVBTV9OVUxMX1ZBTFVFUyIsIk1heSBub3Qgd3JpdGUgbnVsbCB2YWx1ZXMgdG8gc3RyZWFtIixUeXBlRXJyb3IpLG1lKCJFUlJfVU5LTk9XTl9FTkNPRElORyIsZnVuY3Rpb24oUSl7cmV0dXJuIlVua25vd24gZW5jb2Rpbmc6ICIrUX0sVHlwZUVycm9yKSxtZSgiRVJSX1NUUkVBTV9V''@;'; + put 'put ''TlNISUZUX0FGVEVSX0VORF9FVkVOVCIsInN0cmVhbS51bnNoaWZ0KCkgYWZ0ZXIgZW5kIGV2ZW50IiksWGUuZXhwb3J0cy5xPUx9LDQxMzM5OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9T2JqZWN0LmtleXN8fGZ1bmN0aW9uKFkpe3ZhciBXPVtdO2Zvcih2YXIgTiBpbiBZKVcu''@;'; + put 'put ''cHVzaChOKTtyZXR1cm4gV307WGUuZXhwb3J0cz1aO3ZhciBCPUwoMzE1NCksRT1MKDIwNTIwKTtMKDgzODk0KShaLEIpO2Zvcih2YXIgTWU9bWUoRS5wcm90b3R5cGUpLFU9MDtVPE1lLmxlbmd0aDtVKyspe3ZhciBRPU1lW1VdO1oucHJvdG90eXBlW1FdfHwoWi5wcm90b3R5cGVbUV09RS5w''@;'; + put 'put ''cm90b3R5cGVbUV0pfWZ1bmN0aW9uIFooWSl7aWYoISh0aGlzIGluc3RhbmNlb2YgWikpcmV0dXJuIG5ldyBaKFkpO0IuY2FsbCh0aGlzLFkpLEUuY2FsbCh0aGlzLFkpLHRoaXMuYWxsb3dIYWxmT3Blbj0hMCxZJiYoITE9PT1ZLnJlYWRhYmxlJiYodGhpcy5yZWFkYWJsZT0hMSksITE9PT1Z''@;'; + put 'put ''LndyaXRhYmxlJiYodGhpcy53cml0YWJsZT0hMSksITE9PT1ZLmFsbG93SGFsZk9wZW4mJih0aGlzLmFsbG93SGFsZk9wZW49ITEsdGhpcy5vbmNlKCJlbmQiLGllKSkpfWZ1bmN0aW9uIGllKCl7dGhpcy5fd3JpdGFibGVTdGF0ZS5lbmRlZHx8cHJvY2Vzcy5uZXh0VGljayhhZSx0aGlzKX1m''@;'; + put 'put ''dW5jdGlvbiBhZShZKXtZLmVuZCgpfU9iamVjdC5kZWZpbmVQcm9wZXJ0eShaLnByb3RvdHlwZSwid3JpdGFibGVIaWdoV2F0ZXJNYXJrIix7ZW51bWVyYWJsZTohMSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fd3JpdGFibGVTdGF0ZS5oaWdoV2F0ZXJNYXJrfX0pLE9iamVjdC5kZWZp''@;'; + put 'put ''bmVQcm9wZXJ0eShaLnByb3RvdHlwZSwid3JpdGFibGVCdWZmZXIiLHtlbnVtZXJhYmxlOiExLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl93cml0YWJsZVN0YXRlJiZ0aGlzLl93cml0YWJsZVN0YXRlLmdldEJ1ZmZlcigpfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShaLnByb3RvdHlw''@;'; + put 'put ''ZSwid3JpdGFibGVMZW5ndGgiLHtlbnVtZXJhYmxlOiExLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl93cml0YWJsZVN0YXRlLmxlbmd0aH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoWi5wcm90b3R5cGUsImRlc3Ryb3llZCIse2VudW1lcmFibGU6ITEsZ2V0OmZ1bmN0aW9uKCl7cmV0''@;'; + put 'put ''dXJuIHZvaWQgMCE9PXRoaXMuX3JlYWRhYmxlU3RhdGUmJnZvaWQgMCE9PXRoaXMuX3dyaXRhYmxlU3RhdGUmJnRoaXMuX3JlYWRhYmxlU3RhdGUuZGVzdHJveWVkJiZ0aGlzLl93cml0YWJsZVN0YXRlLmRlc3Ryb3llZH0sc2V0OmZ1bmN0aW9uKFcpe3ZvaWQgMD09PXRoaXMuX3JlYWRhYmxl''@;'; + put 'put ''U3RhdGV8fHZvaWQgMD09PXRoaXMuX3dyaXRhYmxlU3RhdGV8fCh0aGlzLl9yZWFkYWJsZVN0YXRlLmRlc3Ryb3llZD1XLHRoaXMuX3dyaXRhYmxlU3RhdGUuZGVzdHJveWVkPVcpfX0pfSw1NjA3MTooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7WGUuZXhwb3J0cz1CO3ZhciBtZT1MKDYwMjUp''@;'; + put 'put ''O2Z1bmN0aW9uIEIoRSl7aWYoISh0aGlzIGluc3RhbmNlb2YgQikpcmV0dXJuIG5ldyBCKEUpO21lLmNhbGwodGhpcyxFKX1MKDgzODk0KShCLG1lKSxCLnByb3RvdHlwZS5fdHJhbnNmb3JtPWZ1bmN0aW9uKEUsTWUsVSl7VShudWxsLEUpfX0sMzE1NDooWGUsSmUsTCk9PnsidXNlIHN0cmlj''@;'; + put 'put ''dCI7dmFyIG1lO1hlLmV4cG9ydHM9aGUsaGUuUmVhZGFibGVTdGF0ZT1FZSxMKDU5MDY5KTt2YXIgWSxFPWZ1bmN0aW9uKEJ0LG9uKXtyZXR1cm4gQnQubGlzdGVuZXJzKG9uKS5sZW5ndGh9LE1lPUwoNDk3MCksVT1MKDkzMTcyKS5CdWZmZXIsUT1nbG9iYWwuVWludDhBcnJheXx8ZnVuY3Rp''@;'; + put 'put ''b24oKXt9LGFlPUwoOTQ2MTYpO1k9YWUmJmFlLmRlYnVnbG9nP2FlLmRlYnVnbG9nKCJzdHJlYW0iKTpmdW5jdGlvbigpe307dmFyIHZlLEFlLGtlLFc9TCgyNTAxOSksTj1MKDQxOTIwKSxxPUwoNDcxMDIpLmdldEhpZ2hXYXRlck1hcmssSj1MKDcwODkxKS5xLHNlPUouRVJSX0lOVkFMSURf''@;'; + put 'put ''QVJHX1RZUEUsb2U9Si5FUlJfU1RSRUFNX1BVU0hfQUZURVJfRU9GLGNlPUouRVJSX01FVEhPRF9OT1RfSU1QTEVNRU5URUQsZGU9Si5FUlJfU1RSRUFNX1VOU0hJRlRfQUZURVJfRU5EX0VWRU5UO0woODM4OTQpKGhlLE1lKTt2YXIgU2U9Ti5lcnJvck9yRGVzdHJveSxJZT1bImVycm9yIiwi''@;'; + put 'put ''Y2xvc2UiLCJkZXN0cm95IiwicGF1c2UiLCJyZXN1bWUiXTtmdW5jdGlvbiBFZShodCxCdCxvbil7bWU9bWV8fEwoNDEzMzkpLCJib29sZWFuIiE9dHlwZW9mIG9uJiYob249QnQgaW5zdGFuY2VvZiBtZSksdGhpcy5vYmplY3RNb2RlPSEhKGh0PWh0fHx7fSkub2JqZWN0TW9kZSxvbiYmKHRo''@;'; + put 'put ''aXMub2JqZWN0TW9kZT10aGlzLm9iamVjdE1vZGV8fCEhaHQucmVhZGFibGVPYmplY3RNb2RlKSx0aGlzLmhpZ2hXYXRlck1hcms9cSh0aGlzLGh0LCJyZWFkYWJsZUhpZ2hXYXRlck1hcmsiLG9uKSx0aGlzLmJ1ZmZlcj1uZXcgVyx0aGlzLmxlbmd0aD0wLHRoaXMucGlwZXM9bnVsbCx0aGlz''@;'; + put 'put ''LnBpcGVzQ291bnQ9MCx0aGlzLmZsb3dpbmc9bnVsbCx0aGlzLmVuZGVkPSExLHRoaXMuZW5kRW1pdHRlZD0hMSx0aGlzLnJlYWRpbmc9ITEsdGhpcy5zeW5jPSEwLHRoaXMubmVlZFJlYWRhYmxlPSExLHRoaXMuZW1pdHRlZFJlYWRhYmxlPSExLHRoaXMucmVhZGFibGVMaXN0ZW5pbmc9ITEs''@;'; + put 'put ''dGhpcy5yZXN1bWVTY2hlZHVsZWQ9ITEsdGhpcy5wYXVzZWQ9ITAsdGhpcy5lbWl0Q2xvc2U9ITEhPT1odC5lbWl0Q2xvc2UsdGhpcy5hdXRvRGVzdHJveT0hIWh0LmF1dG9EZXN0cm95LHRoaXMuZGVzdHJveWVkPSExLHRoaXMuZGVmYXVsdEVuY29kaW5nPWh0LmRlZmF1bHRFbmNvZGluZ3x8''@;'; + put 'put ''InV0ZjgiLHRoaXMuYXdhaXREcmFpbj0wLHRoaXMucmVhZGluZ01vcmU9ITEsdGhpcy5kZWNvZGVyPW51bGwsdGhpcy5lbmNvZGluZz1udWxsLGh0LmVuY29kaW5nJiYodmV8fCh2ZT1MKDczMDU0KS5zKSx0aGlzLmRlY29kZXI9bmV3IHZlKGh0LmVuY29kaW5nKSx0aGlzLmVuY29kaW5nPWh0''@;'; + put 'put ''LmVuY29kaW5nKX1mdW5jdGlvbiBoZShodCl7aWYobWU9bWV8fEwoNDEzMzkpLCEodGhpcyBpbnN0YW5jZW9mIGhlKSlyZXR1cm4gbmV3IGhlKGh0KTt0aGlzLl9yZWFkYWJsZVN0YXRlPW5ldyBFZShodCx0aGlzLHRoaXMgaW5zdGFuY2VvZiBtZSksdGhpcy5yZWFkYWJsZT0hMCxodCYmKCJm''@;'; + put 'put ''dW5jdGlvbiI9PXR5cGVvZiBodC5yZWFkJiYodGhpcy5fcmVhZD1odC5yZWFkKSwiZnVuY3Rpb24iPT10eXBlb2YgaHQuZGVzdHJveSYmKHRoaXMuX2Rlc3Ryb3k9aHQuZGVzdHJveSkpLE1lLmNhbGwodGhpcyl9ZnVuY3Rpb24gTyhodCxCdCxvbixfdCx0dCl7WSgicmVhZGFibGVBZGRDaHVu''@;'; + put 'put ''ayIsQnQpO3ZhciBhdCxldD1odC5fcmVhZGFibGVTdGF0ZTtpZihudWxsPT09QnQpZXQucmVhZGluZz0hMSxmdW5jdGlvbiBWKGh0LEJ0KXtpZihZKCJvbkVvZkNodW5rIiksIUJ0LmVuZGVkKXtpZihCdC5kZWNvZGVyKXt2YXIgb249QnQuZGVjb2Rlci5lbmQoKTtvbiYmb24ubGVuZ3RoJiYo''@;'; + put 'put ''QnQuYnVmZmVyLnB1c2gob24pLEJ0Lmxlbmd0aCs9QnQub2JqZWN0TW9kZT8xOm9uLmxlbmd0aCl9QnQuZW5kZWQ9ITAsQnQuc3luYz9UKGh0KTooQnQubmVlZFJlYWRhYmxlPSExLEJ0LmVtaXR0ZWRSZWFkYWJsZXx8KEJ0LmVtaXR0ZWRSZWFkYWJsZT0hMCxTKGh0KSkpfX0oaHQsZXQpO2Vs''@;'; + put 'put ''c2UgaWYodHR8fChhdD1mdW5jdGlvbiBuZShodCxCdCl7dmFyIG9uO3JldHVybiFmdW5jdGlvbiBpZShodCl7cmV0dXJuIFUuaXNCdWZmZXIoaHQpfHxodCBpbnN0YW5jZW9mIFF9KEJ0KSYmInN0cmluZyIhPXR5cGVvZiBCdCYmdm9pZCAwIT09QnQmJiFodC5vYmplY3RNb2RlJiYob249bmV3''@;'; + put 'put ''IHNlKCJjaHVuayIsWyJzdHJpbmciLCJCdWZmZXIiLCJVaW50OEFycmF5Il0sQnQpKSxvbn0oZXQsQnQpKSxhdClTZShodCxhdCk7ZWxzZSBpZihldC5vYmplY3RNb2RlfHxCdCYmQnQubGVuZ3RoPjApaWYoInN0cmluZyIhPXR5cGVvZiBCdCYmIWV0Lm9iamVjdE1vZGUmJk9iamVjdC5nZXRQ''@;'; + put 'put ''cm90b3R5cGVPZihCdCkhPT1VLnByb3RvdHlwZSYmKEJ0PWZ1bmN0aW9uIFooaHQpe3JldHVybiBVLmZyb20oaHQpfShCdCkpLF90KWV0LmVuZEVtaXR0ZWQ/U2UoaHQsbmV3IGRlKTp6KGh0LGV0LEJ0LCEwKTtlbHNlIGlmKGV0LmVuZGVkKVNlKGh0LG5ldyBvZSk7ZWxzZXtpZihldC5kZXN0''@;'; + put 'put ''cm95ZWQpcmV0dXJuITE7ZXQucmVhZGluZz0hMSxldC5kZWNvZGVyJiYhb24/KEJ0PWV0LmRlY29kZXIud3JpdGUoQnQpLGV0Lm9iamVjdE1vZGV8fDAhPT1CdC5sZW5ndGg/eihodCxldCxCdCwhMSk6RihodCxldCkpOnooaHQsZXQsQnQsITEpfWVsc2UgX3R8fChldC5yZWFkaW5nPSExLEYo''@;'; + put 'put ''aHQsZXQpKTtyZXR1cm4hZXQuZW5kZWQmJihldC5sZW5ndGg8ZXQuaGlnaFdhdGVyTWFya3x8MD09PWV0Lmxlbmd0aCl9ZnVuY3Rpb24geihodCxCdCxvbixfdCl7QnQuZmxvd2luZyYmMD09PUJ0Lmxlbmd0aCYmIUJ0LnN5bmM/KEJ0LmF3YWl0RHJhaW49MCxodC5lbWl0KCJkYXRhIixvbikp''@;'; + put 'put ''OihCdC5sZW5ndGgrPUJ0Lm9iamVjdE1vZGU/MTpvbi5sZW5ndGgsX3Q/QnQuYnVmZmVyLnVuc2hpZnQob24pOkJ0LmJ1ZmZlci5wdXNoKG9uKSxCdC5uZWVkUmVhZGFibGUmJlQoaHQpKSxGKGh0LEJ0KX1PYmplY3QuZGVmaW5lUHJvcGVydHkoaGUucHJvdG90eXBlLCJkZXN0cm95ZWQiLHtl''@;'; + put 'put ''bnVtZXJhYmxlOiExLGdldDpmdW5jdGlvbigpe3JldHVybiB2b2lkIDAhPT10aGlzLl9yZWFkYWJsZVN0YXRlJiZ0aGlzLl9yZWFkYWJsZVN0YXRlLmRlc3Ryb3llZH0sc2V0OmZ1bmN0aW9uKEJ0KXshdGhpcy5fcmVhZGFibGVTdGF0ZXx8KHRoaXMuX3JlYWRhYmxlU3RhdGUuZGVzdHJveWVk''@;'; + put 'put ''PUJ0KX19KSxoZS5wcm90b3R5cGUuZGVzdHJveT1OLmRlc3Ryb3ksaGUucHJvdG90eXBlLl91bmRlc3Ryb3k9Ti51bmRlc3Ryb3ksaGUucHJvdG90eXBlLl9kZXN0cm95PWZ1bmN0aW9uKGh0LEJ0KXtCdChodCl9LGhlLnByb3RvdHlwZS5wdXNoPWZ1bmN0aW9uKGh0LEJ0KXt2YXIgX3Qsb249''@;'; + put 'put ''dGhpcy5fcmVhZGFibGVTdGF0ZTtyZXR1cm4gb24ub2JqZWN0TW9kZT9fdD0hMDoic3RyaW5nIj09dHlwZW9mIGh0JiYoKEJ0PUJ0fHxvbi5kZWZhdWx0RW5jb2RpbmcpIT09b24uZW5jb2RpbmcmJihodD1VLmZyb20oaHQsQnQpLEJ0PSIiKSxfdD0hMCksTyh0aGlzLGh0LEJ0LCExLF90KX0s''@;'; + put 'put ''aGUucHJvdG90eXBlLnVuc2hpZnQ9ZnVuY3Rpb24oaHQpe3JldHVybiBPKHRoaXMsaHQsbnVsbCwhMCwhMSl9LGhlLnByb3RvdHlwZS5pc1BhdXNlZD1mdW5jdGlvbigpe3JldHVybiExPT09dGhpcy5fcmVhZGFibGVTdGF0ZS5mbG93aW5nfSxoZS5wcm90b3R5cGUuc2V0RW5jb2Rpbmc9ZnVu''@;'; + put 'put ''Y3Rpb24oaHQpe3ZlfHwodmU9TCg3MzA1NCkucyk7dmFyIEJ0PW5ldyB2ZShodCk7dGhpcy5fcmVhZGFibGVTdGF0ZS5kZWNvZGVyPUJ0LHRoaXMuX3JlYWRhYmxlU3RhdGUuZW5jb2Rpbmc9dGhpcy5fcmVhZGFibGVTdGF0ZS5kZWNvZGVyLmVuY29kaW5nO2Zvcih2YXIgb249dGhpcy5fcmVh''@;'; + put 'put ''ZGFibGVTdGF0ZS5idWZmZXIuaGVhZCxfdD0iIjtudWxsIT09b247KV90Kz1CdC53cml0ZShvbi5kYXRhKSxvbj1vbi5uZXh0O3JldHVybiB0aGlzLl9yZWFkYWJsZVN0YXRlLmJ1ZmZlci5jbGVhcigpLCIiIT09X3QmJnRoaXMuX3JlYWRhYmxlU3RhdGUuYnVmZmVyLnB1c2goX3QpLHRoaXMu''@;'; + put 'put ''X3JlYWRhYmxlU3RhdGUubGVuZ3RoPV90Lmxlbmd0aCx0aGlzfTt2YXIgdGU9MTA3Mzc0MTgyNDtmdW5jdGlvbiBQKGh0LEJ0KXtyZXR1cm4gaHQ8PTB8fDA9PT1CdC5sZW5ndGgmJkJ0LmVuZGVkPzA6QnQub2JqZWN0TW9kZT8xOmh0IT1odD9CdC5mbG93aW5nJiZCdC5sZW5ndGg/QnQuYnVm''@;'; + put 'put ''ZmVyLmhlYWQuZGF0YS5sZW5ndGg6QnQubGVuZ3RoOihodD5CdC5oaWdoV2F0ZXJNYXJrJiYoQnQuaGlnaFdhdGVyTWFyaz1mdW5jdGlvbiB4KGh0KXtyZXR1cm4gaHQ+PXRlP2h0PXRlOihodC0tLGh0fD1odD4+PjEsaHR8PWh0Pj4+MixodHw9aHQ+Pj40LGh0fD1odD4+PjgsaHR8PWh0Pj4+''@;'; + put 'put ''MTYsaHQrKyksaHR9KGh0KSksaHQ8PUJ0Lmxlbmd0aD9odDpCdC5lbmRlZD9CdC5sZW5ndGg6KEJ0Lm5lZWRSZWFkYWJsZT0hMCwwKSl9ZnVuY3Rpb24gVChodCl7dmFyIEJ0PWh0Ll9yZWFkYWJsZVN0YXRlO1koImVtaXRSZWFkYWJsZSIsQnQubmVlZFJlYWRhYmxlLEJ0LmVtaXR0ZWRSZWFk''@;'; + put 'put ''YWJsZSksQnQubmVlZFJlYWRhYmxlPSExLEJ0LmVtaXR0ZWRSZWFkYWJsZXx8KFkoImVtaXRSZWFkYWJsZSIsQnQuZmxvd2luZyksQnQuZW1pdHRlZFJlYWRhYmxlPSEwLHByb2Nlc3MubmV4dFRpY2soUyxodCkpfWZ1bmN0aW9uIFMoaHQpe3ZhciBCdD1odC5fcmVhZGFibGVTdGF0ZTtZKCJl''@;'; + put 'put ''bWl0UmVhZGFibGVfIixCdC5kZXN0cm95ZWQsQnQubGVuZ3RoLEJ0LmVuZGVkKSwhQnQuZGVzdHJveWVkJiYoQnQubGVuZ3RofHxCdC5lbmRlZCkmJihodC5lbWl0KCJyZWFkYWJsZSIpLEJ0LmVtaXR0ZWRSZWFkYWJsZT0hMSksQnQubmVlZFJlYWRhYmxlPSFCdC5mbG93aW5nJiYhQnQuZW5k''@;'; + put 'put ''ZWQmJkJ0Lmxlbmd0aDw9QnQuaGlnaFdhdGVyTWFyayxndChodCl9ZnVuY3Rpb24gRihodCxCdCl7QnQucmVhZGluZ01vcmV8fChCdC5yZWFkaW5nTW9yZT0hMCxwcm9jZXNzLm5leHRUaWNrKHllLGh0LEJ0KSl9ZnVuY3Rpb24geWUoaHQsQnQpe2Zvcig7IUJ0LnJlYWRpbmcmJiFCdC5lbmRl''@;'; + put 'put ''ZCYmKEJ0Lmxlbmd0aDxCdC5oaWdoV2F0ZXJNYXJrfHxCdC5mbG93aW5nJiYwPT09QnQubGVuZ3RoKTspe3ZhciBvbj1CdC5sZW5ndGg7aWYoWSgibWF5YmVSZWFkTW9yZSByZWFkIDAiKSxodC5yZWFkKDApLG9uPT09QnQubGVuZ3RoKWJyZWFrfUJ0LnJlYWRpbmdNb3JlPSExfWZ1bmN0aW9u''@;'; + put 'put ''IERlKGh0KXt2YXIgQnQ9aHQuX3JlYWRhYmxlU3RhdGU7QnQucmVhZGFibGVMaXN0ZW5pbmc9aHQubGlzdGVuZXJDb3VudCgicmVhZGFibGUiKT4wLEJ0LnJlc3VtZVNjaGVkdWxlZCYmIUJ0LnBhdXNlZD9CdC5mbG93aW5nPSEwOmh0Lmxpc3RlbmVyQ291bnQoImRhdGEiKT4wJiZodC5yZXN1''@;'; + put 'put ''bWUoKX1mdW5jdGlvbiBQZShodCl7WSgicmVhZGFibGUgbmV4dHRpY2sgcmVhZCAwIiksaHQucmVhZCgwKX1mdW5jdGlvbiAkZShodCxCdCl7WSgicmVzdW1lIixCdC5yZWFkaW5nKSxCdC5yZWFkaW5nfHxodC5yZWFkKDApLEJ0LnJlc3VtZVNjaGVkdWxlZD0hMSxodC5lbWl0KCJyZXN1bWUi''@;'; + put 'put ''KSxndChodCksQnQuZmxvd2luZyYmIUJ0LnJlYWRpbmcmJmh0LnJlYWQoMCl9ZnVuY3Rpb24gZ3QoaHQpe3ZhciBCdD1odC5fcmVhZGFibGVTdGF0ZTtmb3IoWSgiZmxvdyIsQnQuZmxvd2luZyk7QnQuZmxvd2luZyYmbnVsbCE9PWh0LnJlYWQoKTspO31mdW5jdGlvbiB3dChodCxCdCl7cmV0''@;'; + put 'put ''dXJuIDA9PT1CdC5sZW5ndGg/bnVsbDooQnQub2JqZWN0TW9kZT9vbj1CdC5idWZmZXIuc2hpZnQoKTohaHR8fGh0Pj1CdC5sZW5ndGg/KG9uPUJ0LmRlY29kZXI/QnQuYnVmZmVyLmpvaW4oIiIpOjE9PT1CdC5idWZmZXIubGVuZ3RoP0J0LmJ1ZmZlci5maXJzdCgpOkJ0LmJ1ZmZlci5jb25j''@;'; + put 'put ''YXQoQnQubGVuZ3RoKSxCdC5idWZmZXIuY2xlYXIoKSk6b249QnQuYnVmZmVyLmNvbnN1bWUoaHQsQnQuZGVjb2Rlciksb24pO3ZhciBvbn1mdW5jdGlvbiBtdChodCl7dmFyIEJ0PWh0Ll9yZWFkYWJsZVN0YXRlO1koImVuZFJlYWRhYmxlIixCdC5lbmRFbWl0dGVkKSxCdC5lbmRFbWl0dGVk''@;'; + put 'put ''fHwoQnQuZW5kZWQ9ITAscHJvY2Vzcy5uZXh0VGljayh2dCxCdCxodCkpfWZ1bmN0aW9uIHZ0KGh0LEJ0KXtpZihZKCJlbmRSZWFkYWJsZU5UIixodC5lbmRFbWl0dGVkLGh0Lmxlbmd0aCksIWh0LmVuZEVtaXR0ZWQmJjA9PT1odC5sZW5ndGgmJihodC5lbmRFbWl0dGVkPSEwLEJ0LnJlYWRh''@;'; + put 'put ''YmxlPSExLEJ0LmVtaXQoImVuZCIpLGh0LmF1dG9EZXN0cm95KSl7dmFyIG9uPUJ0Ll93cml0YWJsZVN0YXRlOyghb258fG9uLmF1dG9EZXN0cm95JiZvbi5maW5pc2hlZCkmJkJ0LmRlc3Ryb3koKX19ZnVuY3Rpb24gQXQoaHQsQnQpe2Zvcih2YXIgb249MCxfdD1odC5sZW5ndGg7b248X3Q7''@;'; + put 'put ''b24rKylpZihodFtvbl09PT1CdClyZXR1cm4gb247cmV0dXJuLTF9aGUucHJvdG90eXBlLnJlYWQ9ZnVuY3Rpb24oaHQpe1koInJlYWQiLGh0KSxodD1wYXJzZUludChodCwxMCk7dmFyIEJ0PXRoaXMuX3JlYWRhYmxlU3RhdGUsb249aHQ7aWYoMCE9PWh0JiYoQnQuZW1pdHRlZFJlYWRhYmxl''@;'; + put 'put ''PSExKSwwPT09aHQmJkJ0Lm5lZWRSZWFkYWJsZSYmKCgwIT09QnQuaGlnaFdhdGVyTWFyaz9CdC5sZW5ndGg+PUJ0LmhpZ2hXYXRlck1hcms6QnQubGVuZ3RoPjApfHxCdC5lbmRlZCkpcmV0dXJuIFkoInJlYWQ6IGVtaXRSZWFkYWJsZSIsQnQubGVuZ3RoLEJ0LmVuZGVkKSwwPT09QnQubGVu''@;'; + put 'put ''Z3RoJiZCdC5lbmRlZD9tdCh0aGlzKTpUKHRoaXMpLG51bGw7aWYoMD09PShodD1QKGh0LEJ0KSkmJkJ0LmVuZGVkKXJldHVybiAwPT09QnQubGVuZ3RoJiZtdCh0aGlzKSxudWxsO3ZhciB0dCxfdD1CdC5uZWVkUmVhZGFibGU7cmV0dXJuIFkoIm5lZWQgcmVhZGFibGUiLF90KSwoMD09PUJ0''@;'; + put 'put ''Lmxlbmd0aHx8QnQubGVuZ3RoLWh0PEJ0LmhpZ2hXYXRlck1hcmspJiZZKCJsZW5ndGggbGVzcyB0aGFuIHdhdGVybWFyayIsX3Q9ITApLEJ0LmVuZGVkfHxCdC5yZWFkaW5nP1koInJlYWRpbmcgb3IgZW5kZWQiLF90PSExKTpfdCYmKFkoImRvIHJlYWQiKSxCdC5yZWFkaW5nPSEwLEJ0LnN5''@;'; + put 'put ''bmM9ITAsMD09PUJ0Lmxlbmd0aCYmKEJ0Lm5lZWRSZWFkYWJsZT0hMCksdGhpcy5fcmVhZChCdC5oaWdoV2F0ZXJNYXJrKSxCdC5zeW5jPSExLEJ0LnJlYWRpbmd8fChodD1QKG9uLEJ0KSkpLG51bGw9PT0odHQ9aHQ+MD93dChodCxCdCk6bnVsbCk/KEJ0Lm5lZWRSZWFkYWJsZT1CdC5sZW5n''@;'; + put 'put ''dGg8PUJ0LmhpZ2hXYXRlck1hcmssaHQ9MCk6KEJ0Lmxlbmd0aC09aHQsQnQuYXdhaXREcmFpbj0wKSwwPT09QnQubGVuZ3RoJiYoQnQuZW5kZWR8fChCdC5uZWVkUmVhZGFibGU9ITApLG9uIT09aHQmJkJ0LmVuZGVkJiZtdCh0aGlzKSksbnVsbCE9PXR0JiZ0aGlzLmVtaXQoImRhdGEiLHR0''@;'; + put 'put ''KSx0dH0saGUucHJvdG90eXBlLl9yZWFkPWZ1bmN0aW9uKGh0KXtTZSh0aGlzLG5ldyBjZSgiX3JlYWQoKSIpKX0saGUucHJvdG90eXBlLnBpcGU9ZnVuY3Rpb24oaHQsQnQpe3ZhciBvbj10aGlzLF90PXRoaXMuX3JlYWRhYmxlU3RhdGU7c3dpdGNoKF90LnBpcGVzQ291bnQpe2Nhc2UgMDpf''@;'; + put 'put ''dC5waXBlcz1odDticmVhaztjYXNlIDE6X3QucGlwZXM9W190LnBpcGVzLGh0XTticmVhaztkZWZhdWx0Ol90LnBpcGVzLnB1c2goaHQpfV90LnBpcGVzQ291bnQrPTEsWSgicGlwZSBjb3VudD0lZCBvcHRzPSVqIixfdC5waXBlc0NvdW50LEJ0KTt2YXIgZXQ9QnQmJiExPT09QnQuZW5kfHxo''@;'; + put 'put ''dD09PXByb2Nlc3Muc3Rkb3V0fHxodD09PXByb2Nlc3Muc3RkZXJyP1F0Okx0O2Z1bmN0aW9uIEx0KCl7WSgib25lbmQiKSxodC5lbmQoKX1fdC5lbmRFbWl0dGVkP3Byb2Nlc3MubmV4dFRpY2soZXQpOm9uLm9uY2UoImVuZCIsZXQpLGh0Lm9uKCJ1bnBpcGUiLGZ1bmN0aW9uIGF0KGduLGRu''@;'; + put 'put ''KXtZKCJvbnVucGlwZSIpLGduPT09b24mJmRuJiYhMT09PWRuLmhhc1VucGlwZWQmJihkbi5oYXNVbnBpcGVkPSEwLGZ1bmN0aW9uIEh0KCl7WSgiY2xlYW51cCIpLGh0LnJlbW92ZUxpc3RlbmVyKCJjbG9zZSIseXQpLGh0LnJlbW92ZUxpc3RlbmVyKCJmaW5pc2giLGp0KSxodC5yZW1vdmVM''@;'; + put 'put ''aXN0ZW5lcigiZHJhaW4iLEN0KSxodC5yZW1vdmVMaXN0ZW5lcigiZXJyb3IiLFVlKSxodC5yZW1vdmVMaXN0ZW5lcigidW5waXBlIixhdCksb24ucmVtb3ZlTGlzdGVuZXIoImVuZCIsTHQpLG9uLnJlbW92ZUxpc3RlbmVyKCJlbmQiLFF0KSxvbi5yZW1vdmVMaXN0ZW5lcigiZGF0YSIsR2Up''@;'; + put 'put ''LGZ0PSEwLF90LmF3YWl0RHJhaW4mJighaHQuX3dyaXRhYmxlU3RhdGV8fGh0Ll93cml0YWJsZVN0YXRlLm5lZWREcmFpbikmJkN0KCl9KCkpfSk7dmFyIEN0PWZ1bmN0aW9uIENlKGh0KXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgb249aHQuX3JlYWRhYmxlU3RhdGU7WSgicGlwZU9uRHJhaW4i''@;'; + put 'put ''LG9uLmF3YWl0RHJhaW4pLG9uLmF3YWl0RHJhaW4mJm9uLmF3YWl0RHJhaW4tLSwwPT09b24uYXdhaXREcmFpbiYmRShodCwiZGF0YSIpJiYob24uZmxvd2luZz0hMCxndChodCkpfX0ob24pO2h0Lm9uKCJkcmFpbiIsQ3QpO3ZhciBmdD0hMTtmdW5jdGlvbiBHZShnbil7WSgib25kYXRhIik7''@;'; + put 'put ''dmFyIGRuPWh0LndyaXRlKGduKTtZKCJkZXN0LndyaXRlIixkbiksITE9PT1kbiYmKCgxPT09X3QucGlwZXNDb3VudCYmX3QucGlwZXM9PT1odHx8X3QucGlwZXNDb3VudD4xJiYtMSE9PUF0KF90LnBpcGVzLGh0KSkmJiFmdCYmKFkoImZhbHNlIHdyaXRlIHJlc3BvbnNlLCBwYXVzZSIsX3Qu''@;'; + put 'put ''YXdhaXREcmFpbiksX3QuYXdhaXREcmFpbisrKSxvbi5wYXVzZSgpKX1mdW5jdGlvbiBVZShnbil7WSgib25lcnJvciIsZ24pLFF0KCksaHQucmVtb3ZlTGlzdGVuZXIoImVycm9yIixVZSksMD09PUUoaHQsImVycm9yIikmJlNlKGh0LGduKX1mdW5jdGlvbiB5dCgpe2h0LnJlbW92ZUxpc3Rl''@;'; + put 'put ''bmVyKCJmaW5pc2giLGp0KSxRdCgpfWZ1bmN0aW9uIGp0KCl7WSgib25maW5pc2giKSxodC5yZW1vdmVMaXN0ZW5lcigiY2xvc2UiLHl0KSxRdCgpfWZ1bmN0aW9uIFF0KCl7WSgidW5waXBlIiksb24udW5waXBlKGh0KX1yZXR1cm4gb24ub24oImRhdGEiLEdlKSxmdW5jdGlvbiBUZShodCxC''@;'; + put 'put ''dCxvbil7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGh0LnByZXBlbmRMaXN0ZW5lcilyZXR1cm4gaHQucHJlcGVuZExpc3RlbmVyKEJ0LG9uKTtodC5fZXZlbnRzJiZodC5fZXZlbnRzW0J0XT9BcnJheS5pc0FycmF5KGh0Ll9ldmVudHNbQnRdKT9odC5fZXZlbnRzW0J0XS51bnNoaWZ0KG9uKTpo''@;'; + put 'put ''dC5fZXZlbnRzW0J0XT1bb24saHQuX2V2ZW50c1tCdF1dOmh0Lm9uKEJ0LG9uKX0oaHQsImVycm9yIixVZSksaHQub25jZSgiY2xvc2UiLHl0KSxodC5vbmNlKCJmaW5pc2giLGp0KSxodC5lbWl0KCJwaXBlIixvbiksX3QuZmxvd2luZ3x8KFkoInBpcGUgcmVzdW1lIiksb24ucmVzdW1lKCkp''@;'; + put 'put ''LGh0fSxoZS5wcm90b3R5cGUudW5waXBlPWZ1bmN0aW9uKGh0KXt2YXIgQnQ9dGhpcy5fcmVhZGFibGVTdGF0ZSxvbj17aGFzVW5waXBlZDohMX07aWYoMD09PUJ0LnBpcGVzQ291bnQpcmV0dXJuIHRoaXM7aWYoMT09PUJ0LnBpcGVzQ291bnQpcmV0dXJuIGh0JiZodCE9PUJ0LnBpcGVzfHwo''@;'; + put 'put ''aHR8fChodD1CdC5waXBlcyksQnQucGlwZXM9bnVsbCxCdC5waXBlc0NvdW50PTAsQnQuZmxvd2luZz0hMSxodCYmaHQuZW1pdCgidW5waXBlIix0aGlzLG9uKSksdGhpcztpZighaHQpe3ZhciBfdD1CdC5waXBlcyx0dD1CdC5waXBlc0NvdW50O0J0LnBpcGVzPW51bGwsQnQucGlwZXNDb3Vu''@;'; + put 'put ''dD0wLEJ0LmZsb3dpbmc9ITE7Zm9yKHZhciBldD0wO2V0PHR0O2V0KyspX3RbZXRdLmVtaXQoInVucGlwZSIsdGhpcyx7aGFzVW5waXBlZDohMX0pO3JldHVybiB0aGlzfXZhciBhdD1BdChCdC5waXBlcyxodCk7cmV0dXJuLTE9PT1hdHx8KEJ0LnBpcGVzLnNwbGljZShhdCwxKSxCdC5waXBl''@;'; + put 'put ''c0NvdW50LT0xLDE9PT1CdC5waXBlc0NvdW50JiYoQnQucGlwZXM9QnQucGlwZXNbMF0pLGh0LmVtaXQoInVucGlwZSIsdGhpcyxvbikpLHRoaXN9LGhlLnByb3RvdHlwZS5hZGRMaXN0ZW5lcj1oZS5wcm90b3R5cGUub249ZnVuY3Rpb24oaHQsQnQpe3ZhciBvbj1NZS5wcm90b3R5cGUub24u''@;'; + put 'put ''Y2FsbCh0aGlzLGh0LEJ0KSxfdD10aGlzLl9yZWFkYWJsZVN0YXRlO3JldHVybiJkYXRhIj09PWh0PyhfdC5yZWFkYWJsZUxpc3RlbmluZz10aGlzLmxpc3RlbmVyQ291bnQoInJlYWRhYmxlIik+MCwhMSE9PV90LmZsb3dpbmcmJnRoaXMucmVzdW1lKCkpOiJyZWFkYWJsZSI9PT1odCYmIV90''@;'; + put 'put ''LmVuZEVtaXR0ZWQmJiFfdC5yZWFkYWJsZUxpc3RlbmluZyYmKF90LnJlYWRhYmxlTGlzdGVuaW5nPV90Lm5lZWRSZWFkYWJsZT0hMCxfdC5mbG93aW5nPSExLF90LmVtaXR0ZWRSZWFkYWJsZT0hMSxZKCJvbiByZWFkYWJsZSIsX3QubGVuZ3RoLF90LnJlYWRpbmcpLF90Lmxlbmd0aD9UKHRo''@;'; + put 'put ''aXMpOl90LnJlYWRpbmd8fHByb2Nlc3MubmV4dFRpY2soUGUsdGhpcykpLG9ufSxoZS5wcm90b3R5cGUucmVtb3ZlTGlzdGVuZXI9ZnVuY3Rpb24oaHQsQnQpe3ZhciBvbj1NZS5wcm90b3R5cGUucmVtb3ZlTGlzdGVuZXIuY2FsbCh0aGlzLGh0LEJ0KTtyZXR1cm4icmVhZGFibGUiPT09aHQm''@;'; + put 'put ''JnByb2Nlc3MubmV4dFRpY2soRGUsdGhpcyksb259LGhlLnByb3RvdHlwZS5yZW1vdmVBbGxMaXN0ZW5lcnM9ZnVuY3Rpb24oaHQpe3ZhciBCdD1NZS5wcm90b3R5cGUucmVtb3ZlQWxsTGlzdGVuZXJzLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4oInJlYWRhYmxlIj09PWh0fHx2b2lk''@;'; + put 'put ''IDA9PT1odCkmJnByb2Nlc3MubmV4dFRpY2soRGUsdGhpcyksQnR9LGhlLnByb3RvdHlwZS5yZXN1bWU9ZnVuY3Rpb24oKXt2YXIgaHQ9dGhpcy5fcmVhZGFibGVTdGF0ZTtyZXR1cm4gaHQuZmxvd2luZ3x8KFkoInJlc3VtZSIpLGh0LmZsb3dpbmc9IWh0LnJlYWRhYmxlTGlzdGVuaW5nLGZ1''@;'; + put 'put ''bmN0aW9uIFFlKGh0LEJ0KXtCdC5yZXN1bWVTY2hlZHVsZWR8fChCdC5yZXN1bWVTY2hlZHVsZWQ9ITAscHJvY2Vzcy5uZXh0VGljaygkZSxodCxCdCkpfSh0aGlzLGh0KSksaHQucGF1c2VkPSExLHRoaXN9LGhlLnByb3RvdHlwZS5wYXVzZT1mdW5jdGlvbigpe3JldHVybiBZKCJjYWxsIHBh''@;'; + put 'put ''dXNlIGZsb3dpbmc9JWoiLHRoaXMuX3JlYWRhYmxlU3RhdGUuZmxvd2luZyksITEhPT10aGlzLl9yZWFkYWJsZVN0YXRlLmZsb3dpbmcmJihZKCJwYXVzZSIpLHRoaXMuX3JlYWRhYmxlU3RhdGUuZmxvd2luZz0hMSx0aGlzLmVtaXQoInBhdXNlIikpLHRoaXMuX3JlYWRhYmxlU3RhdGUucGF1''@;'; + put 'put ''c2VkPSEwLHRoaXN9LGhlLnByb3RvdHlwZS53cmFwPWZ1bmN0aW9uKGh0KXt2YXIgQnQ9dGhpcyxvbj10aGlzLl9yZWFkYWJsZVN0YXRlLF90PSExO2Zvcih2YXIgdHQgaW4gaHQub24oImVuZCIsZnVuY3Rpb24oKXtpZihZKCJ3cmFwcGVkIGVuZCIpLG9uLmRlY29kZXImJiFvbi5lbmRlZCl7''@;'; + put 'put ''dmFyIGF0PW9uLmRlY29kZXIuZW5kKCk7YXQmJmF0Lmxlbmd0aCYmQnQucHVzaChhdCl9QnQucHVzaChudWxsKX0pLGh0Lm9uKCJkYXRhIixmdW5jdGlvbihhdCl7WSgid3JhcHBlZCBkYXRhIiksb24uZGVjb2RlciYmKGF0PW9uLmRlY29kZXIud3JpdGUoYXQpKSxvbi5vYmplY3RNb2RlJiZu''@;'; + put 'put ''dWxsPT1hdHx8IShvbi5vYmplY3RNb2RlfHxhdCYmYXQubGVuZ3RoKXx8QnQucHVzaChhdCl8fChfdD0hMCxodC5wYXVzZSgpKX0pLGh0KXZvaWQgMD09PXRoaXNbdHRdJiYiZnVuY3Rpb24iPT10eXBlb2YgaHRbdHRdJiYodGhpc1t0dF09ZnVuY3Rpb24oTHQpe3JldHVybiBmdW5jdGlvbigp''@;'; + put 'put ''e3JldHVybiBodFtMdF0uYXBwbHkoaHQsYXJndW1lbnRzKX19KHR0KSk7Zm9yKHZhciBldD0wO2V0PEllLmxlbmd0aDtldCsrKWh0Lm9uKEllW2V0XSx0aGlzLmVtaXQuYmluZCh0aGlzLEllW2V0XSkpO3JldHVybiB0aGlzLl9yZWFkPWZ1bmN0aW9uKGF0KXtZKCJ3cmFwcGVkIF9yZWFkIixh''@;'; + put 'put ''dCksX3QmJihfdD0hMSxodC5yZXN1bWUoKSl9LHRoaXN9LCJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJihoZS5wcm90b3R5cGVbU3ltYm9sLmFzeW5jSXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgMD09PUFlJiYoQWU9TCgxMzg3MikpLEFlKHRoaXMpfSksT2JqZWN0LmRlZmlu''@;'; + put 'put ''ZVByb3BlcnR5KGhlLnByb3RvdHlwZSwicmVhZGFibGVIaWdoV2F0ZXJNYXJrIix7ZW51bWVyYWJsZTohMSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcmVhZGFibGVTdGF0ZS5oaWdoV2F0ZXJNYXJrfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShoZS5wcm90b3R5cGUsInJlYWRhYmxl''@;'; + put 'put ''QnVmZmVyIix7ZW51bWVyYWJsZTohMSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcmVhZGFibGVTdGF0ZSYmdGhpcy5fcmVhZGFibGVTdGF0ZS5idWZmZXJ9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGhlLnByb3RvdHlwZSwicmVhZGFibGVGbG93aW5nIix7ZW51bWVyYWJsZTohMSxn''@;'; + put 'put ''ZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcmVhZGFibGVTdGF0ZS5mbG93aW5nfSxzZXQ6ZnVuY3Rpb24oQnQpe3RoaXMuX3JlYWRhYmxlU3RhdGUmJih0aGlzLl9yZWFkYWJsZVN0YXRlLmZsb3dpbmc9QnQpfX0pLGhlLl9mcm9tTGlzdD13dCxPYmplY3QuZGVmaW5lUHJvcGVydHkoaGUu''@;'; + put 'put ''cHJvdG90eXBlLCJyZWFkYWJsZUxlbmd0aCIse2VudW1lcmFibGU6ITEsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3JlYWRhYmxlU3RhdGUubGVuZ3RofX0pLCJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJihoZS5mcm9tPWZ1bmN0aW9uKGh0LEJ0KXtyZXR1cm4gdm9pZCAwPT09a2Um''@;'; + put 'put ''JihrZT1MKDQ3NDEyKSksa2UoaGUsaHQsQnQpfSl9LDYwMjU6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO1hlLmV4cG9ydHM9aWU7dmFyIG1lPUwoNzA4OTEpLnEsQj1tZS5FUlJfTUVUSE9EX05PVF9JTVBMRU1FTlRFRCxFPW1lLkVSUl9NVUxUSVBMRV9DQUxMQkFDSyxNZT1tZS5FUlJfVFJB''@;'; + put 'put ''TlNGT1JNX0FMUkVBRFlfVFJBTlNGT1JNSU5HLFU9bWUuRVJSX1RSQU5TRk9STV9XSVRIX0xFTkdUSF8wLFE9TCg0MTMzOSk7ZnVuY3Rpb24gWihXLE4pe3ZhciBlZT10aGlzLl90cmFuc2Zvcm1TdGF0ZTtlZS50cmFuc2Zvcm1pbmc9ITE7dmFyIHE9ZWUud3JpdGVjYjtpZihudWxsPT09cSly''@;'; + put 'put ''ZXR1cm4gdGhpcy5lbWl0KCJlcnJvciIsbmV3IEUpO2VlLndyaXRlY2h1bms9bnVsbCxlZS53cml0ZWNiPW51bGwsbnVsbCE9TiYmdGhpcy5wdXNoKE4pLHEoVyk7dmFyIEo9dGhpcy5fcmVhZGFibGVTdGF0ZTtKLnJlYWRpbmc9ITEsKEoubmVlZFJlYWRhYmxlfHxKLmxlbmd0aDxKLmhpZ2hX''@;'; + put 'put ''YXRlck1hcmspJiZ0aGlzLl9yZWFkKEouaGlnaFdhdGVyTWFyayl9ZnVuY3Rpb24gaWUoVyl7aWYoISh0aGlzIGluc3RhbmNlb2YgaWUpKXJldHVybiBuZXcgaWUoVyk7US5jYWxsKHRoaXMsVyksdGhpcy5fdHJhbnNmb3JtU3RhdGU9e2FmdGVyVHJhbnNmb3JtOlouYmluZCh0aGlzKSxuZWVk''@;'; + put 'put ''VHJhbnNmb3JtOiExLHRyYW5zZm9ybWluZzohMSx3cml0ZWNiOm51bGwsd3JpdGVjaHVuazpudWxsLHdyaXRlZW5jb2Rpbmc6bnVsbH0sdGhpcy5fcmVhZGFibGVTdGF0ZS5uZWVkUmVhZGFibGU9ITAsdGhpcy5fcmVhZGFibGVTdGF0ZS5zeW5jPSExLFcmJigiZnVuY3Rpb24iPT10eXBlb2Yg''@;'; + put 'put ''Vy50cmFuc2Zvcm0mJih0aGlzLl90cmFuc2Zvcm09Vy50cmFuc2Zvcm0pLCJmdW5jdGlvbiI9PXR5cGVvZiBXLmZsdXNoJiYodGhpcy5fZmx1c2g9Vy5mbHVzaCkpLHRoaXMub24oInByZWZpbmlzaCIsYWUpfWZ1bmN0aW9uIGFlKCl7dmFyIFc9dGhpczsiZnVuY3Rpb24iIT10eXBlb2YgdGhp''@;'; + put 'put ''cy5fZmx1c2h8fHRoaXMuX3JlYWRhYmxlU3RhdGUuZGVzdHJveWVkP1kodGhpcyxudWxsLG51bGwpOnRoaXMuX2ZsdXNoKGZ1bmN0aW9uKE4sZWUpe1koVyxOLGVlKX0pfWZ1bmN0aW9uIFkoVyxOLGVlKXtpZihOKXJldHVybiBXLmVtaXQoImVycm9yIixOKTtpZihudWxsIT1lZSYmVy5wdXNo''@;'; + put 'put ''KGVlKSxXLl93cml0YWJsZVN0YXRlLmxlbmd0aCl0aHJvdyBuZXcgVTtpZihXLl90cmFuc2Zvcm1TdGF0ZS50cmFuc2Zvcm1pbmcpdGhyb3cgbmV3IE1lO3JldHVybiBXLnB1c2gobnVsbCl9TCg4Mzg5NCkoaWUsUSksaWUucHJvdG90eXBlLnB1c2g9ZnVuY3Rpb24oVyxOKXtyZXR1cm4gdGhp''@;'; + put 'put ''cy5fdHJhbnNmb3JtU3RhdGUubmVlZFRyYW5zZm9ybT0hMSxRLnByb3RvdHlwZS5wdXNoLmNhbGwodGhpcyxXLE4pfSxpZS5wcm90b3R5cGUuX3RyYW5zZm9ybT1mdW5jdGlvbihXLE4sZWUpe2VlKG5ldyBCKCJfdHJhbnNmb3JtKCkiKSl9LGllLnByb3RvdHlwZS5fd3JpdGU9ZnVuY3Rpb24o''@;'; + put 'put ''VyxOLGVlKXt2YXIgcT10aGlzLl90cmFuc2Zvcm1TdGF0ZTtpZihxLndyaXRlY2I9ZWUscS53cml0ZWNodW5rPVcscS53cml0ZWVuY29kaW5nPU4sIXEudHJhbnNmb3JtaW5nKXt2YXIgSj10aGlzLl9yZWFkYWJsZVN0YXRlOyhxLm5lZWRUcmFuc2Zvcm18fEoubmVlZFJlYWRhYmxlfHxKLmxl''@;'; + put 'put ''bmd0aDxKLmhpZ2hXYXRlck1hcmspJiZ0aGlzLl9yZWFkKEouaGlnaFdhdGVyTWFyayl9fSxpZS5wcm90b3R5cGUuX3JlYWQ9ZnVuY3Rpb24oVyl7dmFyIE49dGhpcy5fdHJhbnNmb3JtU3RhdGU7bnVsbD09PU4ud3JpdGVjaHVua3x8Ti50cmFuc2Zvcm1pbmc/Ti5uZWVkVHJhbnNmb3JtPSEw''@;'; + put 'put ''OihOLnRyYW5zZm9ybWluZz0hMCx0aGlzLl90cmFuc2Zvcm0oTi53cml0ZWNodW5rLE4ud3JpdGVlbmNvZGluZyxOLmFmdGVyVHJhbnNmb3JtKSl9LGllLnByb3RvdHlwZS5fZGVzdHJveT1mdW5jdGlvbihXLE4pe1EucHJvdG90eXBlLl9kZXN0cm95LmNhbGwodGhpcyxXLGZ1bmN0aW9uKGVl''@;'; + put 'put ''KXtOKGVlKX0pfX0sMjA1MjA6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO2Z1bmN0aW9uIEIoZ3Qpe3ZhciB3dD10aGlzO3RoaXMubmV4dD1udWxsLHRoaXMuZW50cnk9bnVsbCx0aGlzLmZpbmlzaD1mdW5jdGlvbigpeyFmdW5jdGlvbiAkZShndCx3dCxtdCl7dmFyIHZ0PWd0LmVudHJ5O2Zv''@;'; + put 'put ''cihndC5lbnRyeT1udWxsO3Z0Oyl7dmFyIEF0PXZ0LmNhbGxiYWNrO3d0LnBlbmRpbmdjYi0tLEF0KG10KSx2dD12dC5uZXh0fXd0LmNvcmtlZFJlcXVlc3RzRnJlZS5uZXh0PWd0fSh3dCxndCl9fXZhciBFO1hlLmV4cG9ydHM9RWUsRWUuV3JpdGFibGVTdGF0ZT1JZTt2YXIgVGUsTWU9e2Rl''@;'; + put 'put ''cHJlY2F0ZTpMKDIzNTMyKX0sVT1MKDQ5NzApLFE9TCg5MzE3MikuQnVmZmVyLFo9Z2xvYmFsLlVpbnQ4QXJyYXl8fGZ1bmN0aW9uKCl7fSxZPUwoNDE5MjApLE49TCg0NzEwMikuZ2V0SGlnaFdhdGVyTWFyayxlZT1MKDcwODkxKS5xLHE9ZWUuRVJSX0lOVkFMSURfQVJHX1RZUEUsSj1lZS5F''@;'; + put 'put ''UlJfTUVUSE9EX05PVF9JTVBMRU1FTlRFRCxzZT1lZS5FUlJfTVVMVElQTEVfQ0FMTEJBQ0ssb2U9ZWUuRVJSX1NUUkVBTV9DQU5OT1RfUElQRSxjZT1lZS5FUlJfU1RSRUFNX0RFU1RST1lFRCxkZT1lZS5FUlJfU1RSRUFNX05VTExfVkFMVUVTLHZlPWVlLkVSUl9TVFJFQU1fV1JJVEVfQUZU''@;'; + put 'put ''RVJfRU5ELEFlPWVlLkVSUl9VTktOT1dOX0VOQ09ESU5HLGtlPVkuZXJyb3JPckRlc3Ryb3k7ZnVuY3Rpb24gU2UoKXt9ZnVuY3Rpb24gSWUoZ3Qsd3QsbXQpe0U9RXx8TCg0MTMzOSksImJvb2xlYW4iIT10eXBlb2YgbXQmJihtdD13dCBpbnN0YW5jZW9mIEUpLHRoaXMub2JqZWN0TW9kZT0h''@;'; + put 'put ''IShndD1ndHx8e30pLm9iamVjdE1vZGUsbXQmJih0aGlzLm9iamVjdE1vZGU9dGhpcy5vYmplY3RNb2RlfHwhIWd0LndyaXRhYmxlT2JqZWN0TW9kZSksdGhpcy5oaWdoV2F0ZXJNYXJrPU4odGhpcyxndCwid3JpdGFibGVIaWdoV2F0ZXJNYXJrIixtdCksdGhpcy5maW5hbENhbGxlZD0hMSx0''@;'; + put 'put ''aGlzLm5lZWREcmFpbj0hMSx0aGlzLmVuZGluZz0hMSx0aGlzLmVuZGVkPSExLHRoaXMuZmluaXNoZWQ9ITEsdGhpcy5kZXN0cm95ZWQ9ITEsdGhpcy5kZWNvZGVTdHJpbmdzPSEoITE9PT1ndC5kZWNvZGVTdHJpbmdzKSx0aGlzLmRlZmF1bHRFbmNvZGluZz1ndC5kZWZhdWx0RW5jb2Rpbmd8''@;'; + put 'put ''fCJ1dGY4Iix0aGlzLmxlbmd0aD0wLHRoaXMud3JpdGluZz0hMSx0aGlzLmNvcmtlZD0wLHRoaXMuc3luYz0hMCx0aGlzLmJ1ZmZlclByb2Nlc3Npbmc9ITEsdGhpcy5vbndyaXRlPWZ1bmN0aW9uKEF0KXshZnVuY3Rpb24gVihndCx3dCl7dmFyIG10PWd0Ll93cml0YWJsZVN0YXRlLHZ0PW10''@;'; + put 'put ''LnN5bmMsQXQ9bXQud3JpdGVjYjtpZigiZnVuY3Rpb24iIT10eXBlb2YgQXQpdGhyb3cgbmV3IHNlO2lmKGZ1bmN0aW9uIFAoZ3Qpe2d0LndyaXRpbmc9ITEsZ3Qud3JpdGVjYj1udWxsLGd0Lmxlbmd0aC09Z3Qud3JpdGVsZW4sZ3Qud3JpdGVsZW49MH0obXQpLHd0KSFmdW5jdGlvbiB4KGd0''@;'; + put 'put ''LHd0LG10LHZ0LEF0KXstLXd0LnBlbmRpbmdjYixtdD8ocHJvY2Vzcy5uZXh0VGljayhBdCx2dCkscHJvY2Vzcy5uZXh0VGljayhQZSxndCx3dCksZ3QuX3dyaXRhYmxlU3RhdGUuZXJyb3JFbWl0dGVkPSEwLGtlKGd0LHZ0KSk6KEF0KHZ0KSxndC5fd3JpdGFibGVTdGF0ZS5lcnJvckVtaXR0''@;'; + put 'put ''ZWQ9ITAsa2UoZ3QsdnQpLFBlKGd0LHd0KSl9KGd0LG10LHZ0LHd0LEF0KTtlbHNle3ZhciBodD15ZShtdCl8fGd0LmRlc3Ryb3llZDshaHQmJiFtdC5jb3JrZWQmJiFtdC5idWZmZXJQcm9jZXNzaW5nJiZtdC5idWZmZXJlZFJlcXVlc3QmJkYoZ3QsbXQpLHZ0P3Byb2Nlc3MubmV4dFRpY2so''@;'; + put 'put ''VCxndCxtdCxodCxBdCk6VChndCxtdCxodCxBdCl9fSh3dCxBdCl9LHRoaXMud3JpdGVjYj1udWxsLHRoaXMud3JpdGVsZW49MCx0aGlzLmJ1ZmZlcmVkUmVxdWVzdD1udWxsLHRoaXMubGFzdEJ1ZmZlcmVkUmVxdWVzdD1udWxsLHRoaXMucGVuZGluZ2NiPTAsdGhpcy5wcmVmaW5pc2hlZD0h''@;'; + put 'put ''MSx0aGlzLmVycm9yRW1pdHRlZD0hMSx0aGlzLmVtaXRDbG9zZT0hMSE9PWd0LmVtaXRDbG9zZSx0aGlzLmF1dG9EZXN0cm95PSEhZ3QuYXV0b0Rlc3Ryb3ksdGhpcy5idWZmZXJlZFJlcXVlc3RDb3VudD0wLHRoaXMuY29ya2VkUmVxdWVzdHNGcmVlPW5ldyBCKHRoaXMpfWZ1bmN0aW9uIEVl''@;'; + put 'put ''KGd0KXt2YXIgd3Q9dGhpcyBpbnN0YW5jZW9mKEU9RXx8TCg0MTMzOSkpO2lmKCF3dCYmIVRlLmNhbGwoRWUsdGhpcykpcmV0dXJuIG5ldyBFZShndCk7dGhpcy5fd3JpdGFibGVTdGF0ZT1uZXcgSWUoZ3QsdGhpcyx3dCksdGhpcy53cml0YWJsZT0hMCxndCYmKCJmdW5jdGlvbiI9PXR5cGVv''@;'; + put 'put ''ZiBndC53cml0ZSYmKHRoaXMuX3dyaXRlPWd0LndyaXRlKSwiZnVuY3Rpb24iPT10eXBlb2YgZ3Qud3JpdGV2JiYodGhpcy5fd3JpdGV2PWd0LndyaXRldiksImZ1bmN0aW9uIj09dHlwZW9mIGd0LmRlc3Ryb3kmJih0aGlzLl9kZXN0cm95PWd0LmRlc3Ryb3kpLCJmdW5jdGlvbiI9PXR5cGVv''@;'; + put 'put ''ZiBndC5maW5hbCYmKHRoaXMuX2ZpbmFsPWd0LmZpbmFsKSksVS5jYWxsKHRoaXMpfWZ1bmN0aW9uIHRlKGd0LHd0LG10LHZ0LEF0LGh0LEJ0KXt3dC53cml0ZWxlbj12dCx3dC53cml0ZWNiPUJ0LHd0LndyaXRpbmc9ITAsd3Quc3luYz0hMCx3dC5kZXN0cm95ZWQ/d3Qub253cml0ZShuZXcg''@;'; + put 'put ''Y2UoIndyaXRlIikpOm10P2d0Ll93cml0ZXYoQXQsd3Qub253cml0ZSk6Z3QuX3dyaXRlKEF0LGh0LHd0Lm9ud3JpdGUpLHd0LnN5bmM9ITF9ZnVuY3Rpb24gVChndCx3dCxtdCx2dCl7bXR8fGZ1bmN0aW9uIFMoZ3Qsd3QpezA9PT13dC5sZW5ndGgmJnd0Lm5lZWREcmFpbiYmKHd0Lm5lZWRE''@;'; + put 'put ''cmFpbj0hMSxndC5lbWl0KCJkcmFpbiIpKX0oZ3Qsd3QpLHd0LnBlbmRpbmdjYi0tLHZ0KCksUGUoZ3Qsd3QpfWZ1bmN0aW9uIEYoZ3Qsd3Qpe3d0LmJ1ZmZlclByb2Nlc3Npbmc9ITA7dmFyIG10PXd0LmJ1ZmZlcmVkUmVxdWVzdDtpZihndC5fd3JpdGV2JiZtdCYmbXQubmV4dCl7dmFyIEF0''@;'; + put 'put ''PW5ldyBBcnJheSh3dC5idWZmZXJlZFJlcXVlc3RDb3VudCksaHQ9d3QuY29ya2VkUmVxdWVzdHNGcmVlO2h0LmVudHJ5PW10O2Zvcih2YXIgQnQ9MCxvbj0hMDttdDspQXRbQnRdPW10LG10LmlzQnVmfHwob249ITEpLG10PW10Lm5leHQsQnQrPTE7QXQuYWxsQnVmZmVycz1vbix0ZShndCx3''@;'; + put 'put ''dCwhMCx3dC5sZW5ndGgsQXQsIiIsaHQuZmluaXNoKSx3dC5wZW5kaW5nY2IrKyx3dC5sYXN0QnVmZmVyZWRSZXF1ZXN0PW51bGwsaHQubmV4dD8od3QuY29ya2VkUmVxdWVzdHNGcmVlPWh0Lm5leHQsaHQubmV4dD1udWxsKTp3dC5jb3JrZWRSZXF1ZXN0c0ZyZWU9bmV3IEIod3QpLHd0LmJ1''@;'; + put 'put ''ZmZlcmVkUmVxdWVzdENvdW50PTB9ZWxzZXtmb3IoO210Oyl7dmFyIF90PW10LmNodW5rO2lmKHRlKGd0LHd0LCExLHd0Lm9iamVjdE1vZGU/MTpfdC5sZW5ndGgsX3QsbXQuZW5jb2RpbmcsbXQuY2FsbGJhY2spLG10PW10Lm5leHQsd3QuYnVmZmVyZWRSZXF1ZXN0Q291bnQtLSx3dC53cml0''@;'; + put 'put ''aW5nKWJyZWFrfW51bGw9PT1tdCYmKHd0Lmxhc3RCdWZmZXJlZFJlcXVlc3Q9bnVsbCl9d3QuYnVmZmVyZWRSZXF1ZXN0PW10LHd0LmJ1ZmZlclByb2Nlc3Npbmc9ITF9ZnVuY3Rpb24geWUoZ3Qpe3JldHVybiBndC5lbmRpbmcmJjA9PT1ndC5sZW5ndGgmJm51bGw9PT1ndC5idWZmZXJlZFJl''@;'; + put 'put ''cXVlc3QmJiFndC5maW5pc2hlZCYmIWd0LndyaXRpbmd9ZnVuY3Rpb24gQ2UoZ3Qsd3Qpe2d0Ll9maW5hbChmdW5jdGlvbihtdCl7d3QucGVuZGluZ2NiLS0sbXQmJmtlKGd0LG10KSx3dC5wcmVmaW5pc2hlZD0hMCxndC5lbWl0KCJwcmVmaW5pc2giKSxQZShndCx3dCl9KX1mdW5jdGlvbiBQ''@;'; + put 'put ''ZShndCx3dCl7dmFyIG10PXllKHd0KTtpZihtdCYmKGZ1bmN0aW9uIERlKGd0LHd0KXshd3QucHJlZmluaXNoZWQmJiF3dC5maW5hbENhbGxlZCYmKCJmdW5jdGlvbiIhPXR5cGVvZiBndC5fZmluYWx8fHd0LmRlc3Ryb3llZD8od3QucHJlZmluaXNoZWQ9ITAsZ3QuZW1pdCgicHJlZmluaXNo''@;'; + put 'put ''IikpOih3dC5wZW5kaW5nY2IrKyx3dC5maW5hbENhbGxlZD0hMCxwcm9jZXNzLm5leHRUaWNrKENlLGd0LHd0KSkpfShndCx3dCksMD09PXd0LnBlbmRpbmdjYiYmKHd0LmZpbmlzaGVkPSEwLGd0LmVtaXQoImZpbmlzaCIpLHd0LmF1dG9EZXN0cm95KSkpe3ZhciB2dD1ndC5fcmVhZGFibGVT''@;'; + put 'put ''dGF0ZTsoIXZ0fHx2dC5hdXRvRGVzdHJveSYmdnQuZW5kRW1pdHRlZCkmJmd0LmRlc3Ryb3koKX1yZXR1cm4gbXR9TCg4Mzg5NCkoRWUsVSksSWUucHJvdG90eXBlLmdldEJ1ZmZlcj1mdW5jdGlvbigpe2Zvcih2YXIgd3Q9dGhpcy5idWZmZXJlZFJlcXVlc3QsbXQ9W107d3Q7KW10LnB1c2go''@;'; + put 'put ''d3QpLHd0PXd0Lm5leHQ7cmV0dXJuIG10fSxmdW5jdGlvbigpe3RyeXtPYmplY3QuZGVmaW5lUHJvcGVydHkoSWUucHJvdG90eXBlLCJidWZmZXIiLHtnZXQ6TWUuZGVwcmVjYXRlKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0QnVmZmVyKCl9LCJfd3JpdGFibGVTdGF0ZS5idWZmZXIgaXMg''@;'; + put 'put ''ZGVwcmVjYXRlZC4gVXNlIF93cml0YWJsZVN0YXRlLmdldEJ1ZmZlciBpbnN0ZWFkLiIsIkRFUDAwMDMiKX0pfWNhdGNoKGd0KXt9fSgpLCJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJlN5bWJvbC5oYXNJbnN0YW5jZSYmImZ1bmN0aW9uIj09dHlwZW9mIEZ1bmN0aW9uLnByb3RvdHlwZVtT''@;'; + put 'put ''eW1ib2wuaGFzSW5zdGFuY2VdPyhUZT1GdW5jdGlvbi5wcm90b3R5cGVbU3ltYm9sLmhhc0luc3RhbmNlXSxPYmplY3QuZGVmaW5lUHJvcGVydHkoRWUsU3ltYm9sLmhhc0luc3RhbmNlLHt2YWx1ZTpmdW5jdGlvbih3dCl7cmV0dXJuISFUZS5jYWxsKHRoaXMsd3QpfHx0aGlzPT09RWUmJnd0''@;'; + put 'put ''JiZ3dC5fd3JpdGFibGVTdGF0ZSBpbnN0YW5jZW9mIEllfX0pKTpUZT1mdW5jdGlvbih3dCl7cmV0dXJuIHd0IGluc3RhbmNlb2YgdGhpc30sRWUucHJvdG90eXBlLnBpcGU9ZnVuY3Rpb24oKXtrZSh0aGlzLG5ldyBvZSl9LEVlLnByb3RvdHlwZS53cml0ZT1mdW5jdGlvbihndCx3dCxtdCl7''@;'; + put 'put ''dmFyIHZ0PXRoaXMuX3dyaXRhYmxlU3RhdGUsQXQ9ITEsaHQ9IXZ0Lm9iamVjdE1vZGUmJmZ1bmN0aW9uIGFlKGd0KXtyZXR1cm4gUS5pc0J1ZmZlcihndCl8fGd0IGluc3RhbmNlb2YgWn0oZ3QpO3JldHVybiBodCYmIVEuaXNCdWZmZXIoZ3QpJiYoZ3Q9ZnVuY3Rpb24gaWUoZ3Qpe3JldHVy''@;'; + put 'put ''biBRLmZyb20oZ3QpfShndCkpLCJmdW5jdGlvbiI9PXR5cGVvZiB3dCYmKG10PXd0LHd0PW51bGwpLGh0P3d0PSJidWZmZXIiOnd0fHwod3Q9dnQuZGVmYXVsdEVuY29kaW5nKSwiZnVuY3Rpb24iIT10eXBlb2YgbXQmJihtdD1TZSksdnQuZW5kaW5nP2Z1bmN0aW9uIGhlKGd0LHd0KXt2YXIg''@;'; + put 'put ''bXQ9bmV3IHZlO2tlKGd0LG10KSxwcm9jZXNzLm5leHRUaWNrKHd0LG10KX0odGhpcyxtdCk6KGh0fHxmdW5jdGlvbiBPKGd0LHd0LG10LHZ0KXt2YXIgQXQ7cmV0dXJuIG51bGw9PT1tdD9BdD1uZXcgZGU6InN0cmluZyIhPXR5cGVvZiBtdCYmIXd0Lm9iamVjdE1vZGUmJihBdD1uZXcgcSgi''@;'; + put 'put ''Y2h1bmsiLFsic3RyaW5nIiwiQnVmZmVyIl0sbXQpKSwhQXR8fChrZShndCxBdCkscHJvY2Vzcy5uZXh0VGljayh2dCxBdCksITEpfSh0aGlzLHZ0LGd0LG10KSkmJih2dC5wZW5kaW5nY2IrKyxBdD1mdW5jdGlvbiBuZShndCx3dCxtdCx2dCxBdCxodCl7aWYoIW10KXt2YXIgQnQ9ZnVuY3Rp''@;'; + put 'put ''b24geihndCx3dCxtdCl7cmV0dXJuIWd0Lm9iamVjdE1vZGUmJiExIT09Z3QuZGVjb2RlU3RyaW5ncyYmInN0cmluZyI9PXR5cGVvZiB3dCYmKHd0PVEuZnJvbSh3dCxtdCkpLHd0fSh3dCx2dCxBdCk7dnQhPT1CdCYmKG10PSEwLEF0PSJidWZmZXIiLHZ0PUJ0KX12YXIgb249d3Qub2JqZWN0''@;'; + put 'put ''TW9kZT8xOnZ0Lmxlbmd0aDt3dC5sZW5ndGgrPW9uO3ZhciBfdD13dC5sZW5ndGg8d3QuaGlnaFdhdGVyTWFyaztpZihfdHx8KHd0Lm5lZWREcmFpbj0hMCksd3Qud3JpdGluZ3x8d3QuY29ya2VkKXt2YXIgdHQ9d3QubGFzdEJ1ZmZlcmVkUmVxdWVzdDt3dC5sYXN0QnVmZmVyZWRSZXF1ZXN0''@;'; + put 'put ''PXtjaHVuazp2dCxlbmNvZGluZzpBdCxpc0J1ZjptdCxjYWxsYmFjazpodCxuZXh0Om51bGx9LHR0P3R0Lm5leHQ9d3QubGFzdEJ1ZmZlcmVkUmVxdWVzdDp3dC5idWZmZXJlZFJlcXVlc3Q9d3QubGFzdEJ1ZmZlcmVkUmVxdWVzdCx3dC5idWZmZXJlZFJlcXVlc3RDb3VudCs9MX1lbHNlIHRl''@;'; + put 'put ''KGd0LHd0LCExLG9uLHZ0LEF0LGh0KTtyZXR1cm4gX3R9KHRoaXMsdnQsaHQsZ3Qsd3QsbXQpKSxBdH0sRWUucHJvdG90eXBlLmNvcms9ZnVuY3Rpb24oKXt0aGlzLl93cml0YWJsZVN0YXRlLmNvcmtlZCsrfSxFZS5wcm90b3R5cGUudW5jb3JrPWZ1bmN0aW9uKCl7dmFyIGd0PXRoaXMuX3dy''@;'; + put 'put ''aXRhYmxlU3RhdGU7Z3QuY29ya2VkJiYoZ3QuY29ya2VkLS0sIWd0LndyaXRpbmcmJiFndC5jb3JrZWQmJiFndC5idWZmZXJQcm9jZXNzaW5nJiZndC5idWZmZXJlZFJlcXVlc3QmJkYodGhpcyxndCkpfSxFZS5wcm90b3R5cGUuc2V0RGVmYXVsdEVuY29kaW5nPWZ1bmN0aW9uKHd0KXtpZigi''@;'; + put 'put ''c3RyaW5nIj09dHlwZW9mIHd0JiYod3Q9d3QudG9Mb3dlckNhc2UoKSksIShbImhleCIsInV0ZjgiLCJ1dGYtOCIsImFzY2lpIiwiYmluYXJ5IiwiYmFzZTY0IiwidWNzMiIsInVjcy0yIiwidXRmMTZsZSIsInV0Zi0xNmxlIiwicmF3Il0uaW5kZXhPZigod3QrIiIpLnRvTG93ZXJDYXNlKCkp''@;'; + put 'put ''Pi0xKSl0aHJvdyBuZXcgQWUod3QpO3JldHVybiB0aGlzLl93cml0YWJsZVN0YXRlLmRlZmF1bHRFbmNvZGluZz13dCx0aGlzfSxPYmplY3QuZGVmaW5lUHJvcGVydHkoRWUucHJvdG90eXBlLCJ3cml0YWJsZUJ1ZmZlciIse2VudW1lcmFibGU6ITEsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRo''@;'; + put 'put ''aXMuX3dyaXRhYmxlU3RhdGUmJnRoaXMuX3dyaXRhYmxlU3RhdGUuZ2V0QnVmZmVyKCl9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KEVlLnByb3RvdHlwZSwid3JpdGFibGVIaWdoV2F0ZXJNYXJrIix7ZW51bWVyYWJsZTohMSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fd3JpdGFibGVT''@;'; + put 'put ''dGF0ZS5oaWdoV2F0ZXJNYXJrfX0pLEVlLnByb3RvdHlwZS5fd3JpdGU9ZnVuY3Rpb24oZ3Qsd3QsbXQpe210KG5ldyBKKCJfd3JpdGUoKSIpKX0sRWUucHJvdG90eXBlLl93cml0ZXY9bnVsbCxFZS5wcm90b3R5cGUuZW5kPWZ1bmN0aW9uKGd0LHd0LG10KXt2YXIgdnQ9dGhpcy5fd3JpdGFi''@;'; + put 'put ''bGVTdGF0ZTtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgZ3Q/KG10PWd0LGd0PW51bGwsd3Q9bnVsbCk6ImZ1bmN0aW9uIj09dHlwZW9mIHd0JiYobXQ9d3Qsd3Q9bnVsbCksbnVsbCE9Z3QmJnRoaXMud3JpdGUoZ3Qsd3QpLHZ0LmNvcmtlZCYmKHZ0LmNvcmtlZD0xLHRoaXMudW5jb3JrKCkp''@;'; + put 'put ''LHZ0LmVuZGluZ3x8ZnVuY3Rpb24gUWUoZ3Qsd3QsbXQpe3d0LmVuZGluZz0hMCxQZShndCx3dCksbXQmJih3dC5maW5pc2hlZD9wcm9jZXNzLm5leHRUaWNrKG10KTpndC5vbmNlKCJmaW5pc2giLG10KSksd3QuZW5kZWQ9ITAsZ3Qud3JpdGFibGU9ITF9KHRoaXMsdnQsbXQpLHRoaXN9LE9i''@;'; + put 'put ''amVjdC5kZWZpbmVQcm9wZXJ0eShFZS5wcm90b3R5cGUsIndyaXRhYmxlTGVuZ3RoIix7ZW51bWVyYWJsZTohMSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fd3JpdGFibGVTdGF0ZS5sZW5ndGh9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KEVlLnByb3RvdHlwZSwiZGVzdHJveWVkIix7''@;'; + put 'put ''ZW51bWVyYWJsZTohMSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCAwIT09dGhpcy5fd3JpdGFibGVTdGF0ZSYmdGhpcy5fd3JpdGFibGVTdGF0ZS5kZXN0cm95ZWR9LHNldDpmdW5jdGlvbih3dCl7IXRoaXMuX3dyaXRhYmxlU3RhdGV8fCh0aGlzLl93cml0YWJsZVN0YXRlLmRlc3Ryb3ll''@;'; + put 'put ''ZD13dCl9fSksRWUucHJvdG90eXBlLmRlc3Ryb3k9WS5kZXN0cm95LEVlLnByb3RvdHlwZS5fdW5kZXN0cm95PVkudW5kZXN0cm95LEVlLnByb3RvdHlwZS5fZGVzdHJveT1mdW5jdGlvbihndCx3dCl7d3QoZ3QpfX0sMTM4NzI6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZTtmdW5j''@;'; + put 'put ''dGlvbiBCKGNlLGRlLHZlKXtyZXR1cm4gZGUgaW4gY2U/T2JqZWN0LmRlZmluZVByb3BlcnR5KGNlLGRlLHt2YWx1ZTp2ZSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmNlW2RlXT12ZSxjZX12YXIgRT1MKDY3NTQyKSxNZT1TeW1ib2woImxhc3RSZXNvbHZl''@;'; + put 'put ''IiksVT1TeW1ib2woImxhc3RSZWplY3QiKSxRPVN5bWJvbCgiZXJyb3IiKSxaPVN5bWJvbCgiZW5kZWQiKSxpZT1TeW1ib2woImxhc3RQcm9taXNlIiksYWU9U3ltYm9sKCJoYW5kbGVQcm9taXNlIiksWT1TeW1ib2woInN0cmVhbSIpO2Z1bmN0aW9uIFcoY2UsZGUpe3JldHVybnt2YWx1ZTpj''@;'; + put 'put ''ZSxkb25lOmRlfX1mdW5jdGlvbiBOKGNlKXt2YXIgZGU9Y2VbTWVdO2lmKG51bGwhPT1kZSl7dmFyIHZlPWNlW1ldLnJlYWQoKTtudWxsIT09dmUmJihjZVtpZV09bnVsbCxjZVtNZV09bnVsbCxjZVtVXT1udWxsLGRlKFcodmUsITEpKSl9fWZ1bmN0aW9uIGVlKGNlKXtwcm9jZXNzLm5leHRU''@;'; + put 'put ''aWNrKE4sY2UpfXZhciBKPU9iamVjdC5nZXRQcm90b3R5cGVPZihmdW5jdGlvbigpe30pLHNlPU9iamVjdC5zZXRQcm90b3R5cGVPZigoQihtZT17Z2V0IHN0cmVhbSgpe3JldHVybiB0aGlzW1ldfSxuZXh0OmZ1bmN0aW9uKCl7dmFyIGRlPXRoaXMsdmU9dGhpc1tRXTtpZihudWxsIT09dmUp''@;'; + put 'put ''cmV0dXJuIFByb21pc2UucmVqZWN0KHZlKTtpZih0aGlzW1pdKXJldHVybiBQcm9taXNlLnJlc29sdmUoVyh2b2lkIDAsITApKTtpZih0aGlzW1ldLmRlc3Ryb3llZClyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24oSWUsVGUpe3Byb2Nlc3MubmV4dFRpY2soZnVuY3Rpb24oKXtkZVtRXT9U''@;'; + put 'put ''ZShkZVtRXSk6SWUoVyh2b2lkIDAsITApKX0pfSk7dmFyIGtlLEFlPXRoaXNbaWVdO2lmKEFlKWtlPW5ldyBQcm9taXNlKGZ1bmN0aW9uIHEoY2UsZGUpe3JldHVybiBmdW5jdGlvbih2ZSxBZSl7Y2UudGhlbihmdW5jdGlvbigpe2RlW1pdP3ZlKFcodm9pZCAwLCEwKSk6ZGVbYWVdKHZlLEFl''@;'; + put 'put ''KX0sQWUpfX0oQWUsdGhpcykpO2Vsc2V7dmFyIFNlPXRoaXNbWV0ucmVhZCgpO2lmKG51bGwhPT1TZSlyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKFcoU2UsITEpKTtrZT1uZXcgUHJvbWlzZSh0aGlzW2FlXSl9cmV0dXJuIHRoaXNbaWVdPWtlLGtlfX0sU3ltYm9sLmFzeW5jSXRlcmF0b3IsZnVu''@;'; + put 'put ''Y3Rpb24oKXtyZXR1cm4gdGhpc30pLEIobWUsInJldHVybiIsZnVuY3Rpb24oKXt2YXIgZGU9dGhpcztyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24odmUsQWUpe2RlW1ldLmRlc3Ryb3kobnVsbCxmdW5jdGlvbihrZSl7a2U/QWUoa2UpOnZlKFcodm9pZCAwLCEwKSl9KX0pfSksbWUpLEop''@;'; + put 'put ''O1hlLmV4cG9ydHM9ZnVuY3Rpb24oZGUpe3ZhciB2ZSxBZT1PYmplY3QuY3JlYXRlKHNlLChCKHZlPXt9LFkse3ZhbHVlOmRlLHdyaXRhYmxlOiEwfSksQih2ZSxNZSx7dmFsdWU6bnVsbCx3cml0YWJsZTohMH0pLEIodmUsVSx7dmFsdWU6bnVsbCx3cml0YWJsZTohMH0pLEIodmUsUSx7dmFs''@;'; + put 'put ''dWU6bnVsbCx3cml0YWJsZTohMH0pLEIodmUsWix7dmFsdWU6ZGUuX3JlYWRhYmxlU3RhdGUuZW5kRW1pdHRlZCx3cml0YWJsZTohMH0pLEIodmUsYWUse3ZhbHVlOmZ1bmN0aW9uKFNlLEllKXt2YXIgVGU9QWVbWV0ucmVhZCgpO1RlPyhBZVtpZV09bnVsbCxBZVtNZV09bnVsbCxBZVtVXT1u''@;'; + put 'put ''dWxsLFNlKFcoVGUsITEpKSk6KEFlW01lXT1TZSxBZVtVXT1JZSl9LHdyaXRhYmxlOiEwfSksdmUpKTtyZXR1cm4gQWVbaWVdPW51bGwsRShkZSxmdW5jdGlvbihrZSl7aWYoa2UmJiJFUlJfU1RSRUFNX1BSRU1BVFVSRV9DTE9TRSIhPT1rZS5jb2RlKXt2YXIgU2U9QWVbVV07cmV0dXJuIG51''@;'; + put 'put ''bGwhPT1TZSYmKEFlW2llXT1udWxsLEFlW01lXT1udWxsLEFlW1VdPW51bGwsU2Uoa2UpKSx2b2lkKEFlW1FdPWtlKX12YXIgSWU9QWVbTWVdO251bGwhPT1JZSYmKEFlW2llXT1udWxsLEFlW01lXT1udWxsLEFlW1VdPW51bGwsSWUoVyh2b2lkIDAsITApKSksQWVbWl09ITB9KSxkZS5vbigi''@;'; + put 'put ''cmVhZGFibGUiLGVlLmJpbmQobnVsbCxBZSkpLEFlfX0sMjUwMTk6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG1lKGVlLHEpe3ZhciBKPU9iamVjdC5rZXlzKGVlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgc2U9T2JqZWN0LmdldE93blByb3BlcnR5''@;'; + put 'put ''U3ltYm9scyhlZSk7cSYmKHNlPXNlLmZpbHRlcihmdW5jdGlvbihvZSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZWUsb2UpLmVudW1lcmFibGV9KSksSi5wdXNoLmFwcGx5KEosc2UpfXJldHVybiBKfWZ1bmN0aW9uIEUoZWUscSxKKXtyZXR1cm4gcSBpbiBlZT9P''@;'; + put 'put ''YmplY3QuZGVmaW5lUHJvcGVydHkoZWUscSx7dmFsdWU6SixlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmVlW3FdPUosZWV9ZnVuY3Rpb24gVShlZSxxKXtmb3IodmFyIEo9MDtKPHEubGVuZ3RoO0orKyl7dmFyIHNlPXFbSl07c2UuZW51bWVyYWJsZT1zZS5l''@;'; + put 'put ''bnVtZXJhYmxlfHwhMSxzZS5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHNlJiYoc2Uud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlZSxzZS5rZXksc2UpfX12YXIgaWU9TCg5MzE3MikuQnVmZmVyLFk9TCg1MjM2MSkuaW5zcGVjdCxXPVkmJlkuY3VzdG9tfHwiaW5zcGVj''@;'; + put 'put ''dCI7ZnVuY3Rpb24gTihlZSxxLEope2llLnByb3RvdHlwZS5jb3B5LmNhbGwoZWUscSxKKX1YZS5leHBvcnRzPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZWUoKXsoZnVuY3Rpb24gTWUoZWUscSl7aWYoIShlZSBpbnN0YW5jZW9mIHEpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEg''@;'; + put 'put ''Y2xhc3MgYXMgYSBmdW5jdGlvbiIpfSkodGhpcyxlZSksdGhpcy5oZWFkPW51bGwsdGhpcy50YWlsPW51bGwsdGhpcy5sZW5ndGg9MH1yZXR1cm4gZnVuY3Rpb24gUShlZSxxLEope3EmJlUoZWUucHJvdG90eXBlLHEpLEomJlUoZWUsSil9KGVlLFt7a2V5OiJwdXNoIix2YWx1ZTpmdW5jdGlv''@;'; + put 'put ''bihKKXt2YXIgc2U9e2RhdGE6SixuZXh0Om51bGx9O3RoaXMubGVuZ3RoPjA/dGhpcy50YWlsLm5leHQ9c2U6dGhpcy5oZWFkPXNlLHRoaXMudGFpbD1zZSwrK3RoaXMubGVuZ3RofX0se2tleToidW5zaGlmdCIsdmFsdWU6ZnVuY3Rpb24oSil7dmFyIHNlPXtkYXRhOkosbmV4dDp0aGlzLmhl''@;'; + put 'put ''YWR9OzA9PT10aGlzLmxlbmd0aCYmKHRoaXMudGFpbD1zZSksdGhpcy5oZWFkPXNlLCsrdGhpcy5sZW5ndGh9fSx7a2V5OiJzaGlmdCIsdmFsdWU6ZnVuY3Rpb24oKXtpZigwIT09dGhpcy5sZW5ndGgpe3ZhciBKPXRoaXMuaGVhZC5kYXRhO3JldHVybiB0aGlzLmhlYWQ9MT09PXRoaXMubGVu''@;'; + put 'put ''Z3RoP3RoaXMudGFpbD1udWxsOnRoaXMuaGVhZC5uZXh0LC0tdGhpcy5sZW5ndGgsSn19fSx7a2V5OiJjbGVhciIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmhlYWQ9dGhpcy50YWlsPW51bGwsdGhpcy5sZW5ndGg9MH19LHtrZXk6ImpvaW4iLHZhbHVlOmZ1bmN0aW9uKEope2lmKDA9PT10aGlz''@;'; + put 'put ''Lmxlbmd0aClyZXR1cm4iIjtmb3IodmFyIHNlPXRoaXMuaGVhZCxvZT0iIitzZS5kYXRhO3NlPXNlLm5leHQ7KW9lKz1KK3NlLmRhdGE7cmV0dXJuIG9lfX0se2tleToiY29uY2F0Iix2YWx1ZTpmdW5jdGlvbihKKXtpZigwPT09dGhpcy5sZW5ndGgpcmV0dXJuIGllLmFsbG9jKDApO2Zvcih2''@;'; + put 'put ''YXIgc2U9aWUuYWxsb2NVbnNhZmUoSj4+PjApLG9lPXRoaXMuaGVhZCxjZT0wO29lOylOKG9lLmRhdGEsc2UsY2UpLGNlKz1vZS5kYXRhLmxlbmd0aCxvZT1vZS5uZXh0O3JldHVybiBzZX19LHtrZXk6ImNvbnN1bWUiLHZhbHVlOmZ1bmN0aW9uKEosc2Upe3ZhciBvZTtyZXR1cm4gSjx0aGlz''@;'; + put 'put ''LmhlYWQuZGF0YS5sZW5ndGg/KG9lPXRoaXMuaGVhZC5kYXRhLnNsaWNlKDAsSiksdGhpcy5oZWFkLmRhdGE9dGhpcy5oZWFkLmRhdGEuc2xpY2UoSikpOm9lPUo9PT10aGlzLmhlYWQuZGF0YS5sZW5ndGg/dGhpcy5zaGlmdCgpOnNlP3RoaXMuX2dldFN0cmluZyhKKTp0aGlzLl9nZXRCdWZm''@;'; + put 'put ''ZXIoSiksb2V9fSx7a2V5OiJmaXJzdCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5oZWFkLmRhdGF9fSx7a2V5OiJfZ2V0U3RyaW5nIix2YWx1ZTpmdW5jdGlvbihKKXt2YXIgc2U9dGhpcy5oZWFkLG9lPTEsY2U9c2UuZGF0YTtmb3IoSi09Y2UubGVuZ3RoO3NlPXNlLm5leHQ7KXt2''@;'; + put 'put ''YXIgZGU9c2UuZGF0YSx2ZT1KPmRlLmxlbmd0aD9kZS5sZW5ndGg6SjtpZihjZSs9dmU9PT1kZS5sZW5ndGg/ZGU6ZGUuc2xpY2UoMCxKKSwwPT0oSi09dmUpKXt2ZT09PWRlLmxlbmd0aD8oKytvZSx0aGlzLmhlYWQ9c2UubmV4dD9zZS5uZXh0OnRoaXMudGFpbD1udWxsKToodGhpcy5oZWFk''@;'; + put 'put ''PXNlLHNlLmRhdGE9ZGUuc2xpY2UodmUpKTticmVha30rK29lfXJldHVybiB0aGlzLmxlbmd0aC09b2UsY2V9fSx7a2V5OiJfZ2V0QnVmZmVyIix2YWx1ZTpmdW5jdGlvbihKKXt2YXIgc2U9aWUuYWxsb2NVbnNhZmUoSiksb2U9dGhpcy5oZWFkLGNlPTE7Zm9yKG9lLmRhdGEuY29weShzZSks''@;'; + put 'put ''Si09b2UuZGF0YS5sZW5ndGg7b2U9b2UubmV4dDspe3ZhciBkZT1vZS5kYXRhLHZlPUo+ZGUubGVuZ3RoP2RlLmxlbmd0aDpKO2lmKGRlLmNvcHkoc2Usc2UubGVuZ3RoLUosMCx2ZSksMD09KEotPXZlKSl7dmU9PT1kZS5sZW5ndGg/KCsrY2UsdGhpcy5oZWFkPW9lLm5leHQ/b2UubmV4dDp0''@;'; + put 'put ''aGlzLnRhaWw9bnVsbCk6KHRoaXMuaGVhZD1vZSxvZS5kYXRhPWRlLnNsaWNlKHZlKSk7YnJlYWt9KytjZX1yZXR1cm4gdGhpcy5sZW5ndGgtPWNlLHNlfX0se2tleTpXLHZhbHVlOmZ1bmN0aW9uKEosc2Upe3JldHVybiBZKHRoaXMsZnVuY3Rpb24gQihlZSl7Zm9yKHZhciBxPTE7cTxhcmd1''@;'; + put 'put ''bWVudHMubGVuZ3RoO3ErKyl7dmFyIEo9bnVsbCE9YXJndW1lbnRzW3FdP2FyZ3VtZW50c1txXTp7fTtxJTI/bWUoT2JqZWN0KEopLCEwKS5mb3JFYWNoKGZ1bmN0aW9uKHNlKXtFKGVlLHNlLEpbc2VdKX0pOk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQ''@;'; + put 'put ''cm9wZXJ0aWVzKGVlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKEopKTptZShPYmplY3QoSikpLmZvckVhY2goZnVuY3Rpb24oc2Upe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlZSxzZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEosc2UpKX0pfXJldHVybiBlZX0o''@;'; + put 'put ''e30sc2Use2RlcHRoOjAsY3VzdG9tSW5zcGVjdDohMX0pKX19XSksZWV9KCl9LDQxOTIwOlhlPT57InVzZSBzdHJpY3QiO2Z1bmN0aW9uIEwoVSxRKXtFKFUsUSksbWUoVSl9ZnVuY3Rpb24gbWUoVSl7VS5fd3JpdGFibGVTdGF0ZSYmIVUuX3dyaXRhYmxlU3RhdGUuZW1pdENsb3NlfHxVLl9y''@;'; + put 'put ''ZWFkYWJsZVN0YXRlJiYhVS5fcmVhZGFibGVTdGF0ZS5lbWl0Q2xvc2V8fFUuZW1pdCgiY2xvc2UiKX1mdW5jdGlvbiBFKFUsUSl7VS5lbWl0KCJlcnJvciIsUSl9WGUuZXhwb3J0cz17ZGVzdHJveTpmdW5jdGlvbiBKZShVLFEpe3ZhciBaPXRoaXM7cmV0dXJuIHRoaXMuX3JlYWRhYmxlU3Rh''@;'; + put 'put ''dGUmJnRoaXMuX3JlYWRhYmxlU3RhdGUuZGVzdHJveWVkfHx0aGlzLl93cml0YWJsZVN0YXRlJiZ0aGlzLl93cml0YWJsZVN0YXRlLmRlc3Ryb3llZD8oUT9RKFUpOlUmJih0aGlzLl93cml0YWJsZVN0YXRlP3RoaXMuX3dyaXRhYmxlU3RhdGUuZXJyb3JFbWl0dGVkfHwodGhpcy5fd3JpdGFi''@;'; + put 'put ''bGVTdGF0ZS5lcnJvckVtaXR0ZWQ9ITAscHJvY2Vzcy5uZXh0VGljayhFLHRoaXMsVSkpOnByb2Nlc3MubmV4dFRpY2soRSx0aGlzLFUpKSx0aGlzKToodGhpcy5fcmVhZGFibGVTdGF0ZSYmKHRoaXMuX3JlYWRhYmxlU3RhdGUuZGVzdHJveWVkPSEwKSx0aGlzLl93cml0YWJsZVN0YXRlJiYo''@;'; + put 'put ''dGhpcy5fd3JpdGFibGVTdGF0ZS5kZXN0cm95ZWQ9ITApLHRoaXMuX2Rlc3Ryb3koVXx8bnVsbCxmdW5jdGlvbihZKXshUSYmWT9aLl93cml0YWJsZVN0YXRlP1ouX3dyaXRhYmxlU3RhdGUuZXJyb3JFbWl0dGVkP3Byb2Nlc3MubmV4dFRpY2sobWUsWik6KFouX3dyaXRhYmxlU3RhdGUuZXJy''@;'; + put 'put ''b3JFbWl0dGVkPSEwLHByb2Nlc3MubmV4dFRpY2soTCxaLFkpKTpwcm9jZXNzLm5leHRUaWNrKEwsWixZKTpRPyhwcm9jZXNzLm5leHRUaWNrKG1lLFopLFEoWSkpOnByb2Nlc3MubmV4dFRpY2sobWUsWil9KSx0aGlzKX0sdW5kZXN0cm95OmZ1bmN0aW9uIEIoKXt0aGlzLl9yZWFkYWJsZVN0''@;'; + put 'put ''YXRlJiYodGhpcy5fcmVhZGFibGVTdGF0ZS5kZXN0cm95ZWQ9ITEsdGhpcy5fcmVhZGFibGVTdGF0ZS5yZWFkaW5nPSExLHRoaXMuX3JlYWRhYmxlU3RhdGUuZW5kZWQ9ITEsdGhpcy5fcmVhZGFibGVTdGF0ZS5lbmRFbWl0dGVkPSExKSx0aGlzLl93cml0YWJsZVN0YXRlJiYodGhpcy5fd3Jp''@;'; + put 'put ''dGFibGVTdGF0ZS5kZXN0cm95ZWQ9ITEsdGhpcy5fd3JpdGFibGVTdGF0ZS5lbmRlZD0hMSx0aGlzLl93cml0YWJsZVN0YXRlLmVuZGluZz0hMSx0aGlzLl93cml0YWJsZVN0YXRlLmZpbmFsQ2FsbGVkPSExLHRoaXMuX3dyaXRhYmxlU3RhdGUucHJlZmluaXNoZWQ9ITEsdGhpcy5fd3JpdGFi''@;'; + put 'put ''bGVTdGF0ZS5maW5pc2hlZD0hMSx0aGlzLl93cml0YWJsZVN0YXRlLmVycm9yRW1pdHRlZD0hMSl9LGVycm9yT3JEZXN0cm95OmZ1bmN0aW9uIE1lKFUsUSl7dmFyIFo9VS5fcmVhZGFibGVTdGF0ZSxpZT1VLl93cml0YWJsZVN0YXRlO1omJlouYXV0b0Rlc3Ryb3l8fGllJiZpZS5hdXRvRGVz''@;'; + put 'put ''dHJveT9VLmRlc3Ryb3koUSk6VS5lbWl0KCJlcnJvciIsUSl9fX0sNjc1NDI6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDcwODkxKS5xLkVSUl9TVFJFQU1fUFJFTUFUVVJFX0NMT1NFO2Z1bmN0aW9uIEUoKXt9WGUuZXhwb3J0cz1mdW5jdGlvbiBVKFEsWixpZSl7aWYoImZ1''@;'; + put 'put ''bmN0aW9uIj09dHlwZW9mIFopcmV0dXJuIFUoUSxudWxsLFopO1p8fChaPXt9KSxpZT1mdW5jdGlvbiBCKFEpe3ZhciBaPSExO3JldHVybiBmdW5jdGlvbigpe2lmKCFaKXtaPSEwO2Zvcih2YXIgaWU9YXJndW1lbnRzLmxlbmd0aCxhZT1uZXcgQXJyYXkoaWUpLFk9MDtZPGllO1krKylhZVtZ''@;'; + put 'put ''XT1hcmd1bWVudHNbWV07US5hcHBseSh0aGlzLGFlKX19fShpZXx8RSk7dmFyIGFlPVoucmVhZGFibGV8fCExIT09Wi5yZWFkYWJsZSYmUS5yZWFkYWJsZSxZPVoud3JpdGFibGV8fCExIT09Wi53cml0YWJsZSYmUS53cml0YWJsZSxXPWZ1bmN0aW9uKCl7US53cml0YWJsZXx8ZWUoKX0sTj1R''@;'; + put 'put ''Ll93cml0YWJsZVN0YXRlJiZRLl93cml0YWJsZVN0YXRlLmZpbmlzaGVkLGVlPWZ1bmN0aW9uKCl7WT0hMSxOPSEwLGFlfHxpZS5jYWxsKFEpfSxxPVEuX3JlYWRhYmxlU3RhdGUmJlEuX3JlYWRhYmxlU3RhdGUuZW5kRW1pdHRlZCxKPWZ1bmN0aW9uKCl7YWU9ITEscT0hMCxZfHxpZS5jYWxs''@;'; + put 'put ''KFEpfSxzZT1mdW5jdGlvbih2ZSl7aWUuY2FsbChRLHZlKX0sb2U9ZnVuY3Rpb24oKXt2YXIgdmU7cmV0dXJuIGFlJiYhcT8oKCFRLl9yZWFkYWJsZVN0YXRlfHwhUS5fcmVhZGFibGVTdGF0ZS5lbmRlZCkmJih2ZT1uZXcgbWUpLGllLmNhbGwoUSx2ZSkpOlkmJiFOPygoIVEuX3dyaXRhYmxl''@;'; + put 'put ''U3RhdGV8fCFRLl93cml0YWJsZVN0YXRlLmVuZGVkKSYmKHZlPW5ldyBtZSksaWUuY2FsbChRLHZlKSk6dm9pZCAwfSxjZT1mdW5jdGlvbigpe1EucmVxLm9uKCJmaW5pc2giLGVlKX07cmV0dXJuIGZ1bmN0aW9uIE1lKFEpe3JldHVybiBRLnNldEhlYWRlciYmImZ1bmN0aW9uIj09dHlwZW9m''@;'; + put 'put ''IFEuYWJvcnR9KFEpPyhRLm9uKCJjb21wbGV0ZSIsZWUpLFEub24oImFib3J0IixvZSksUS5yZXE/Y2UoKTpRLm9uKCJyZXF1ZXN0IixjZSkpOlkmJiFRLl93cml0YWJsZVN0YXRlJiYoUS5vbigiZW5kIixXKSxRLm9uKCJjbG9zZSIsVykpLFEub24oImVuZCIsSiksUS5vbigiZmluaXNoIixl''@;'; + put 'put ''ZSksITEhPT1aLmVycm9yJiZRLm9uKCJlcnJvciIsc2UpLFEub24oImNsb3NlIixvZSksZnVuY3Rpb24oKXtRLnJlbW92ZUxpc3RlbmVyKCJjb21wbGV0ZSIsZWUpLFEucmVtb3ZlTGlzdGVuZXIoImFib3J0IixvZSksUS5yZW1vdmVMaXN0ZW5lcigicmVxdWVzdCIsY2UpLFEucmVxJiZRLnJl''@;'; + put 'put ''cS5yZW1vdmVMaXN0ZW5lcigiZmluaXNoIixlZSksUS5yZW1vdmVMaXN0ZW5lcigiZW5kIixXKSxRLnJlbW92ZUxpc3RlbmVyKCJjbG9zZSIsVyksUS5yZW1vdmVMaXN0ZW5lcigiZmluaXNoIixlZSksUS5yZW1vdmVMaXN0ZW5lcigiZW5kIixKKSxRLnJlbW92ZUxpc3RlbmVyKCJlcnJvciIs''@;'; + put 'put ''c2UpLFEucmVtb3ZlTGlzdGVuZXIoImNsb3NlIixvZSl9fX0sNDc0MTI6WGU9PntYZS5leHBvcnRzPWZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKCJSZWFkYWJsZS5mcm9tIGlzIG5vdCBhdmFpbGFibGUgaW4gdGhlIGJyb3dzZXIiKX19LDkwOTU0OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0''@;'; + put 'put ''Ijt2YXIgbWUsRT1MKDcwODkxKS5xLE1lPUUuRVJSX01JU1NJTkdfQVJHUyxVPUUuRVJSX1NUUkVBTV9ERVNUUk9ZRUQ7ZnVuY3Rpb24gUShlZSl7aWYoZWUpdGhyb3cgZWV9ZnVuY3Rpb24gaWUoZWUscSxKLHNlKXtzZT1mdW5jdGlvbiBCKGVlKXt2YXIgcT0hMTtyZXR1cm4gZnVuY3Rpb24o''@;'; + put 'put ''KXtxfHwocT0hMCxlZS5hcHBseSh2b2lkIDAsYXJndW1lbnRzKSl9fShzZSk7dmFyIG9lPSExO2VlLm9uKCJjbG9zZSIsZnVuY3Rpb24oKXtvZT0hMH0pLHZvaWQgMD09PW1lJiYobWU9TCg2NzU0MikpLG1lKGVlLHtyZWFkYWJsZTpxLHdyaXRhYmxlOkp9LGZ1bmN0aW9uKGRlKXtpZihkZSly''@;'; + put 'put ''ZXR1cm4gc2UoZGUpO29lPSEwLHNlKCl9KTt2YXIgY2U9ITE7cmV0dXJuIGZ1bmN0aW9uKGRlKXtpZighb2UmJiFjZSl7aWYoY2U9ITAsZnVuY3Rpb24gWihlZSl7cmV0dXJuIGVlLnNldEhlYWRlciYmImZ1bmN0aW9uIj09dHlwZW9mIGVlLmFib3J0fShlZSkpcmV0dXJuIGVlLmFib3J0KCk7''@;'; + put 'put ''aWYoImZ1bmN0aW9uIj09dHlwZW9mIGVlLmRlc3Ryb3kpcmV0dXJuIGVlLmRlc3Ryb3koKTtzZShkZXx8bmV3IFUoInBpcGUiKSl9fX1mdW5jdGlvbiBhZShlZSl7ZWUoKX1mdW5jdGlvbiBZKGVlLHEpe3JldHVybiBlZS5waXBlKHEpfWZ1bmN0aW9uIFcoZWUpe3JldHVybiBlZS5sZW5ndGgm''@;'; + put 'put ''JiJmdW5jdGlvbiI9PXR5cGVvZiBlZVtlZS5sZW5ndGgtMV0/ZWUucG9wKCk6UX1YZS5leHBvcnRzPWZ1bmN0aW9uIE4oKXtmb3IodmFyIGVlPWFyZ3VtZW50cy5sZW5ndGgscT1uZXcgQXJyYXkoZWUpLEo9MDtKPGVlO0orKylxW0pdPWFyZ3VtZW50c1tKXTt2YXIgc2U9VyhxKTtpZihBcnJh''@;'; + put 'put ''eS5pc0FycmF5KHFbMF0pJiYocT1xWzBdKSxxLmxlbmd0aDwyKXRocm93IG5ldyBNZSgic3RyZWFtcyIpO3ZhciBvZSxjZT1xLm1hcChmdW5jdGlvbihkZSx2ZSl7dmFyIEFlPXZlPHEubGVuZ3RoLTE7cmV0dXJuIGllKGRlLEFlLHZlPjAsZnVuY3Rpb24oU2Upe29lfHwob2U9U2UpLFNlJiZj''@;'; + put 'put ''ZS5mb3JFYWNoKGFlKSwhQWUmJihjZS5mb3JFYWNoKGFlKSxzZShvZSkpfSl9KTtyZXR1cm4gcS5yZWR1Y2UoWSl9fSw0NzEwMjooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoNzA4OTEpLnEuRVJSX0lOVkFMSURfT1BUX1ZBTFVFO1hlLmV4cG9ydHM9e2dldEhpZ2hXYXRlck1h''@;'; + put 'put ''cms6ZnVuY3Rpb24gRShNZSxVLFEsWil7dmFyIGllPWZ1bmN0aW9uIEIoTWUsVSxRKXtyZXR1cm4gbnVsbCE9TWUuaGlnaFdhdGVyTWFyaz9NZS5oaWdoV2F0ZXJNYXJrOlU/TWVbUV06bnVsbH0oVSxaLFEpO2lmKG51bGwhPWllKXtpZighaXNGaW5pdGUoaWUpfHxNYXRoLmZsb29yKGllKSE9''@;'; + put 'put ''PWllfHxpZTwwKXRocm93IG5ldyBtZShaP1E6ImhpZ2hXYXRlck1hcmsiLGllKTtyZXR1cm4gTWF0aC5mbG9vcihpZSl9cmV0dXJuIE1lLm9iamVjdE1vZGU/MTY6MTYzODR9fX0sNDk3MDooWGUsSmUsTCk9PntYZS5leHBvcnRzPUwoNTkwNjkpLkV2ZW50RW1pdHRlcn0sNjU2ODU6KFhlLEpl''@;'; + put 'put ''LEwpPT57KEplPVhlLmV4cG9ydHM9TCgzMTU0KSkuU3RyZWFtPUplLEplLlJlYWRhYmxlPUplLEplLldyaXRhYmxlPUwoMjA1MjApLEplLkR1cGxleD1MKDQxMzM5KSxKZS5UcmFuc2Zvcm09TCg2MDI1KSxKZS5QYXNzVGhyb3VnaD1MKDU2MDcxKSxKZS5maW5pc2hlZD1MKDY3NTQyKSxKZS5w''@;'; + put 'put ''aXBlbGluZT1MKDkwOTU0KX0sNzU2MzQ6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDkzMTcyKS5CdWZmZXIsQj1MKDgzODk0KSxFPUwoMzk2NTApLE1lPW5ldyBBcnJheSgxNiksVT1bMCwxLDIsMyw0LDUsNiw3LDgsOSwxMCwxMSwxMiwxMywxNCwxNSw3LDQsMTMsMSwxMCw2''@;'; + put 'put ''LDE1LDMsMTIsMCw5LDUsMiwxNCwxMSw4LDMsMTAsMTQsNCw5LDE1LDgsMSwyLDcsMCw2LDEzLDExLDUsMTIsMSw5LDExLDEwLDAsOCwxMiw0LDEzLDMsNywxNSwxNCw1LDYsMiw0LDAsNSw5LDcsMTIsMiwxMCwxNCwxLDMsOCwxMSw2LDE1LDEzXSxRPVs1LDE0LDcsMCw5LDIsMTEsNCwxMyw2''@;'; + put 'put ''LDE1LDgsMSwxMCwzLDEyLDYsMTEsMyw3LDAsMTMsNSwxMCwxNCwxNSw4LDEyLDQsOSwxLDIsMTUsNSwxLDMsNywxNCw2LDksMTEsOCwxMiwyLDEwLDAsNCwxMyw4LDYsNCwxLDMsMTEsMTUsMCw1LDEyLDIsMTMsOSw3LDEwLDE0LDEyLDE1LDEwLDQsMSw1LDgsNyw2LDIsMTMsMTQsMCwzLDks''@;'; + put 'put ''MTFdLFo9WzExLDE0LDE1LDEyLDUsOCw3LDksMTEsMTMsMTQsMTUsNiw3LDksOCw3LDYsOCwxMywxMSw5LDcsMTUsNywxMiwxNSw5LDExLDcsMTMsMTIsMTEsMTMsNiw3LDE0LDksMTMsMTUsMTQsOCwxMyw2LDUsMTIsNyw1LDExLDEyLDE0LDE1LDE0LDE1LDksOCw5LDE0LDUsNiw4LDYsNSwx''@;'; + put 'put ''Miw5LDE1LDUsMTEsNiw4LDEzLDEyLDUsMTIsMTMsMTQsMTEsOCw1LDZdLGllPVs4LDksOSwxMSwxMywxNSwxNSw1LDcsNyw4LDExLDE0LDE0LDEyLDYsOSwxMywxNSw3LDEyLDgsOSwxMSw3LDcsMTIsNyw2LDE1LDEzLDExLDksNywxNSwxMSw4LDYsNiwxNCwxMiwxMyw1LDE0LDEzLDEzLDcs''@;'; + put 'put ''NSwxNSw1LDgsMTEsMTQsMTQsNiwxNCw2LDksMTIsOSwxMiw1LDE1LDgsOCw1LDEyLDksMTIsNSwxNCw2LDgsMTMsNiw1LDE1LDEzLDExLDExXSxhZT1bMCwxNTE4NTAwMjQ5LDE4NTk3NzUzOTMsMjQwMDk1OTcwOCwyODQwODUzODM4XSxZPVsxMzUyODI5OTI2LDE1NDg2MDM2ODQsMTgzNjA3''@;'; + put 'put ''MjY5MSwyMDUzOTk0MjE3LDBdO2Z1bmN0aW9uIFcoKXtFLmNhbGwodGhpcyw2NCksdGhpcy5fYT0xNzMyNTg0MTkzLHRoaXMuX2I9NDAyMzIzMzQxNyx0aGlzLl9jPTI1NjIzODMxMDIsdGhpcy5fZD0yNzE3MzM4NzgsdGhpcy5fZT0zMjg1Mzc3NTIwfWZ1bmN0aW9uIE4oY2UsZGUpe3JldHVy''@;'; + put 'put ''biBjZTw8ZGV8Y2U+Pj4zMi1kZX1mdW5jdGlvbiBlZShjZSxkZSx2ZSxBZSxrZSxTZSxJZSxUZSl7cmV0dXJuIE4oY2UrKGRlXnZlXkFlKStTZStJZXwwLFRlKStrZXwwfWZ1bmN0aW9uIHEoY2UsZGUsdmUsQWUsa2UsU2UsSWUsVGUpe3JldHVybiBOKGNlKyhkZSZ2ZXx+ZGUmQWUpK1NlK0ll''@;'; + put 'put ''fDAsVGUpK2tlfDB9ZnVuY3Rpb24gSihjZSxkZSx2ZSxBZSxrZSxTZSxJZSxUZSl7cmV0dXJuIE4oY2UrKChkZXx+dmUpXkFlKStTZStJZXwwLFRlKStrZXwwfWZ1bmN0aW9uIHNlKGNlLGRlLHZlLEFlLGtlLFNlLEllLFRlKXtyZXR1cm4gTihjZSsoZGUmQWV8dmUmfkFlKStTZStJZXwwLFRl''@;'; + put 'put ''KStrZXwwfWZ1bmN0aW9uIG9lKGNlLGRlLHZlLEFlLGtlLFNlLEllLFRlKXtyZXR1cm4gTihjZSsoZGVeKHZlfH5BZSkpK1NlK0llfDAsVGUpK2tlfDB9QihXLEUpLFcucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24oKXtmb3IodmFyIGNlPU1lLGRlPTA7ZGU8MTY7KytkZSljZVtkZV09dGhp''@;'; + put 'put ''cy5fYmxvY2sucmVhZEludDMyTEUoNCpkZSk7Zm9yKHZhciB2ZT0wfHRoaXMuX2EsQWU9MHx0aGlzLl9iLGtlPTB8dGhpcy5fYyxTZT0wfHRoaXMuX2QsSWU9MHx0aGlzLl9lLFRlPTB8dGhpcy5fYSxFZT0wfHRoaXMuX2IsaGU9MHx0aGlzLl9jLE89MHx0aGlzLl9kLHo9MHx0aGlzLl9lLG5l''@;'; + put 'put ''PTA7bmU8ODA7bmUrPTEpe3ZhciB0ZSx4O25lPDE2Pyh0ZT1lZSh2ZSxBZSxrZSxTZSxJZSxjZVtVW25lXV0sYWVbMF0sWltuZV0pLHg9b2UoVGUsRWUsaGUsTyx6LGNlW1FbbmVdXSxZWzBdLGllW25lXSkpOm5lPDMyPyh0ZT1xKHZlLEFlLGtlLFNlLEllLGNlW1VbbmVdXSxhZVsxXSxaW25l''@;'; + put 'put ''XSkseD1zZShUZSxFZSxoZSxPLHosY2VbUVtuZV1dLFlbMV0saWVbbmVdKSk6bmU8NDg/KHRlPUoodmUsQWUsa2UsU2UsSWUsY2VbVVtuZV1dLGFlWzJdLFpbbmVdKSx4PUooVGUsRWUsaGUsTyx6LGNlW1FbbmVdXSxZWzJdLGllW25lXSkpOm5lPDY0Pyh0ZT1zZSh2ZSxBZSxrZSxTZSxJZSxj''@;'; + put 'put ''ZVtVW25lXV0sYWVbM10sWltuZV0pLHg9cShUZSxFZSxoZSxPLHosY2VbUVtuZV1dLFlbM10saWVbbmVdKSk6KHRlPW9lKHZlLEFlLGtlLFNlLEllLGNlW1VbbmVdXSxhZVs0XSxaW25lXSkseD1lZShUZSxFZSxoZSxPLHosY2VbUVtuZV1dLFlbNF0saWVbbmVdKSksdmU9SWUsSWU9U2UsU2U9''@;'; + put 'put ''TihrZSwxMCksa2U9QWUsQWU9dGUsVGU9eix6PU8sTz1OKGhlLDEwKSxoZT1FZSxFZT14fXZhciBQPXRoaXMuX2Ira2UrT3wwO3RoaXMuX2I9dGhpcy5fYytTZSt6fDAsdGhpcy5fYz10aGlzLl9kK0llK1RlfDAsdGhpcy5fZD10aGlzLl9lK3ZlK0VlfDAsdGhpcy5fZT10aGlzLl9hK0FlK2hl''@;'; + put 'put ''fDAsdGhpcy5fYT1QfSxXLnByb3RvdHlwZS5fZGlnZXN0PWZ1bmN0aW9uKCl7dGhpcy5fYmxvY2tbdGhpcy5fYmxvY2tPZmZzZXQrK109MTI4LHRoaXMuX2Jsb2NrT2Zmc2V0PjU2JiYodGhpcy5fYmxvY2suZmlsbCgwLHRoaXMuX2Jsb2NrT2Zmc2V0LDY0KSx0aGlzLl91cGRhdGUoKSx0aGlz''@;'; + put 'put ''Ll9ibG9ja09mZnNldD0wKSx0aGlzLl9ibG9jay5maWxsKDAsdGhpcy5fYmxvY2tPZmZzZXQsNTYpLHRoaXMuX2Jsb2NrLndyaXRlVUludDMyTEUodGhpcy5fbGVuZ3RoWzBdLDU2KSx0aGlzLl9ibG9jay53cml0ZVVJbnQzMkxFKHRoaXMuX2xlbmd0aFsxXSw2MCksdGhpcy5fdXBkYXRlKCk7''@;'; + put 'put ''dmFyIGNlPW1lLmFsbG9jP21lLmFsbG9jKDIwKTpuZXcgbWUoMjApO3JldHVybiBjZS53cml0ZUludDMyTEUodGhpcy5fYSwwKSxjZS53cml0ZUludDMyTEUodGhpcy5fYiw0KSxjZS53cml0ZUludDMyTEUodGhpcy5fYyw4KSxjZS53cml0ZUludDMyTEUodGhpcy5fZCwxMiksY2Uud3JpdGVJ''@;'; + put 'put ''bnQzMkxFKHRoaXMuX2UsMTYpLGNlfSxYZS5leHBvcnRzPVd9LDczNTAyOihYZSxKZSxMKT0+e3ZhciBtZT1MKDkzMTcyKSxCPW1lLkJ1ZmZlcjtmdW5jdGlvbiBFKFUsUSl7Zm9yKHZhciBaIGluIFUpUVtaXT1VW1pdfWZ1bmN0aW9uIE1lKFUsUSxaKXtyZXR1cm4gQihVLFEsWil9Qi5mcm9t''@;'; + put 'put ''JiZCLmFsbG9jJiZCLmFsbG9jVW5zYWZlJiZCLmFsbG9jVW5zYWZlU2xvdz9YZS5leHBvcnRzPW1lOihFKG1lLEplKSxKZS5CdWZmZXI9TWUpLEUoQixNZSksTWUuZnJvbT1mdW5jdGlvbihVLFEsWil7aWYoIm51bWJlciI9PXR5cGVvZiBVKXRocm93IG5ldyBUeXBlRXJyb3IoIkFyZ3VtZW50''@;'; + put 'put ''IG11c3Qgbm90IGJlIGEgbnVtYmVyIik7cmV0dXJuIEIoVSxRLFopfSxNZS5hbGxvYz1mdW5jdGlvbihVLFEsWil7aWYoIm51bWJlciIhPXR5cGVvZiBVKXRocm93IG5ldyBUeXBlRXJyb3IoIkFyZ3VtZW50IG11c3QgYmUgYSBudW1iZXIiKTt2YXIgaWU9QihVKTtyZXR1cm4gdm9pZCAwIT09''@;'; + put 'put ''UT8ic3RyaW5nIj09dHlwZW9mIFo/aWUuZmlsbChRLFopOmllLmZpbGwoUSk6aWUuZmlsbCgwKSxpZX0sTWUuYWxsb2NVbnNhZmU9ZnVuY3Rpb24oVSl7aWYoIm51bWJlciIhPXR5cGVvZiBVKXRocm93IG5ldyBUeXBlRXJyb3IoIkFyZ3VtZW50IG11c3QgYmUgYSBudW1iZXIiKTtyZXR1cm4g''@;'; + put 'put ''QihVKX0sTWUuYWxsb2NVbnNhZmVTbG93PWZ1bmN0aW9uKFUpe2lmKCJudW1iZXIiIT10eXBlb2YgVSl0aHJvdyBuZXcgVHlwZUVycm9yKCJBcmd1bWVudCBtdXN0IGJlIGEgbnVtYmVyIik7cmV0dXJuIG1lLlNsb3dCdWZmZXIoVSl9fSw2MjAzODooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7''@;'; + put 'put ''dmFyIE1lLG1lPUwoOTMxNzIpLEI9bWUuQnVmZmVyLEU9e307Zm9yKE1lIGluIG1lKSFtZS5oYXNPd25Qcm9wZXJ0eShNZSl8fCJTbG93QnVmZmVyIj09PU1lfHwiQnVmZmVyIj09PU1lfHwoRVtNZV09bWVbTWVdKTt2YXIgVT1FLkJ1ZmZlcj17fTtmb3IoTWUgaW4gQikhQi5oYXNPd25Qcm9w''@;'; + put 'put ''ZXJ0eShNZSl8fCJhbGxvY1Vuc2FmZSI9PT1NZXx8ImFsbG9jVW5zYWZlU2xvdyI9PT1NZXx8KFVbTWVdPUJbTWVdKTtpZihFLkJ1ZmZlci5wcm90b3R5cGU9Qi5wcm90b3R5cGUsKCFVLmZyb218fFUuZnJvbT09PVVpbnQ4QXJyYXkuZnJvbSkmJihVLmZyb209ZnVuY3Rpb24oUSxaLGllKXtp''@;'; + put 'put ''ZigibnVtYmVyIj09dHlwZW9mIFEpdGhyb3cgbmV3IFR5cGVFcnJvcignVGhlICJ2YWx1ZSIgYXJndW1lbnQgbXVzdCBub3QgYmUgb2YgdHlwZSBudW1iZXIuIFJlY2VpdmVkIHR5cGUgJyt0eXBlb2YgUSk7aWYoUSYmdm9pZCAwPT09US5sZW5ndGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiVGhl''@;'; + put 'put ''IGZpcnN0IGFyZ3VtZW50IG11c3QgYmUgb25lIG9mIHR5cGUgc3RyaW5nLCBCdWZmZXIsIEFycmF5QnVmZmVyLCBBcnJheSwgb3IgQXJyYXktbGlrZSBPYmplY3QuIFJlY2VpdmVkIHR5cGUgIit0eXBlb2YgUSk7cmV0dXJuIEIoUSxaLGllKX0pLFUuYWxsb2N8fChVLmFsbG9jPWZ1bmN0aW9u''@;'; + put 'put ''KFEsWixpZSl7aWYoIm51bWJlciIhPXR5cGVvZiBRKXRocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSAic2l6ZSIgYXJndW1lbnQgbXVzdCBiZSBvZiB0eXBlIG51bWJlci4gUmVjZWl2ZWQgdHlwZSAnK3R5cGVvZiBRKTtpZihRPDB8fFE+PTIqKDE8PDMwKSl0aHJvdyBuZXcgUmFuZ2VFcnJvcign''@;'; + put 'put ''VGhlIHZhbHVlICInK1ErJyIgaXMgaW52YWxpZCBmb3Igb3B0aW9uICJzaXplIicpO3ZhciBhZT1CKFEpO3JldHVybiBaJiYwIT09Wi5sZW5ndGg/InN0cmluZyI9PXR5cGVvZiBpZT9hZS5maWxsKFosaWUpOmFlLmZpbGwoWik6YWUuZmlsbCgwKSxhZX0pLCFFLmtTdHJpbmdNYXhMZW5ndGgp''@;'; + put 'put ''dHJ5e0Uua1N0cmluZ01heExlbmd0aD1wcm9jZXNzLmJpbmRpbmcoImJ1ZmZlciIpLmtTdHJpbmdNYXhMZW5ndGh9Y2F0Y2goUSl7fUUuY29uc3RhbnRzfHwoRS5jb25zdGFudHM9e01BWF9MRU5HVEg6RS5rTWF4TGVuZ3RofSxFLmtTdHJpbmdNYXhMZW5ndGgmJihFLmNvbnN0YW50cy5NQVhf''@;'; + put 'put ''U1RSSU5HX0xFTkdUSD1FLmtTdHJpbmdNYXhMZW5ndGgpKSxYZS5leHBvcnRzPUV9LDIwMzM6KFhlLEplKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU7IWZ1bmN0aW9uKCl7dmFyIEI9SmV8fHt9O3ZvaWQgMCE9PShtZT1mdW5jdGlvbigpe3JldHVybiBCfS5hcHBseShKZSxbXSkpJiYoWGUuZXhw''@;'; + put 'put ''b3J0cz1tZSksQi5kZWZhdWx0PUI7dmFyIEU9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAveG1sbnMvIixVPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsWj0vdXJsXChbIiddPyguKz8pWyInXT9cKS8saWU9e3dvZmYyOiJmb250L3dvZmYyIix3b2ZmOiJmb250L3dvZmYiLG90ZjoiYXBw''@;'; + put 'put ''bGljYXRpb24veC1mb250LW9wZW50eXBlIix0dGY6ImFwcGxpY2F0aW9uL3gtZm9udC10dGYiLGVvdDoiYXBwbGljYXRpb24vdm5kLm1zLWZvbnRvYmplY3QiLHNmbnQ6ImFwcGxpY2F0aW9uL2ZvbnQtc2ZudCIsc3ZnOiJpbWFnZS9zdmcreG1sIn0sYWU9ZnVuY3Rpb24oeil7cmV0dXJuIHog''@;'; + put 'put ''aW5zdGFuY2VvZiBIVE1MRWxlbWVudHx8eiBpbnN0YW5jZW9mIFNWR0VsZW1lbnR9LFk9ZnVuY3Rpb24oeil7aWYoIWFlKHopKXRocm93IG5ldyBFcnJvcigiYW4gSFRNTEVsZW1lbnQgb3IgU1ZHRWxlbWVudCBpcyByZXF1aXJlZDsgZ290ICIreil9LFc9ZnVuY3Rpb24oeil7cmV0dXJuIG5l''@;'; + put 'put ''dyBQcm9taXNlKGZ1bmN0aW9uKG5lLHRlKXthZSh6KT9uZSh6KTp0ZShuZXcgRXJyb3IoImFuIEhUTUxFbGVtZW50IG9yIFNWR0VsZW1lbnQgaXMgcmVxdWlyZWQ7IGdvdCAiK3opKX0pfSxlZT1mdW5jdGlvbih6KXt2YXIgbmU9T2JqZWN0LmtleXMoaWUpLmZpbHRlcihmdW5jdGlvbih0ZSl7''@;'; + put 'put ''cmV0dXJuIHouaW5kZXhPZigiLiIrdGUpPjB9KS5tYXAoZnVuY3Rpb24odGUpe3JldHVybiBpZVt0ZV19KTtyZXR1cm4gbmU/bmVbMF06KGNvbnNvbGUuZXJyb3IoIlVua25vd24gZm9udCBmb3JtYXQgZm9yICIreisiLiBGb250cyBtYXkgbm90IGJlIHdvcmtpbmcgY29ycmVjdGx5LiIpLCJh''@;'; + put 'put ''cHBsaWNhdGlvbi9vY3RldC1zdHJlYW0iKX0sSj1mdW5jdGlvbih6LG5lLHRlKXt2YXIgeD16LnZpZXdCb3gmJnoudmlld0JveC5iYXNlVmFsJiZ6LnZpZXdCb3guYmFzZVZhbFt0ZV18fG51bGwhPT1uZS5nZXRBdHRyaWJ1dGUodGUpJiYhbmUuZ2V0QXR0cmlidXRlKHRlKS5tYXRjaCgvJSQv''@;'; + put 'put ''KSYmcGFyc2VJbnQobmUuZ2V0QXR0cmlidXRlKHRlKSl8fHouZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClbdGVdfHxwYXJzZUludChuZS5zdHlsZVt0ZV0pfHxwYXJzZUludCh3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh6KS5nZXRQcm9wZXJ0eVZhbHVlKHRlKSk7cmV0dXJuIG51bGw9PXh8fGlz''@;'; + put 'put ''TmFOKHBhcnNlRmxvYXQoeCkpPzA6eH0sY2U9ZnVuY3Rpb24oeil7Zm9yKHZhciBuZT13aW5kb3cuYXRvYih6LnNwbGl0KCIsIilbMV0pLHRlPXouc3BsaXQoIiwiKVswXS5zcGxpdCgiOiIpWzFdLnNwbGl0KCI7IilbMF0seD1uZXcgQXJyYXlCdWZmZXIobmUubGVuZ3RoKSxQPW5ldyBVaW50''@;'; + put 'put ''OEFycmF5KHgpLFY9MDtWPG5lLmxlbmd0aDtWKyspUFtWXT1uZS5jaGFyQ29kZUF0KFYpO3JldHVybiBuZXcgQmxvYihbeF0se3R5cGU6dGV9KX0sa2U9e30sSWU9bnVsbCxFZT1mdW5jdGlvbih6LG5lKXt2YXIgdGU9bmV8fHt9LHg9dGUuc2VsZWN0b3JSZW1hcCxQPXRlLm1vZGlmeVN0eWxl''@;'; + put 'put ''LFQ9dGUuZm9udHMsUz10ZS5leGNsdWRlVW51c2VkQ3NzLEY9dGUubW9kaWZ5Q3NzfHxmdW5jdGlvbihQZSxRZSl7cmV0dXJuKHg/eChQZSk6UGUpKyJ7IisoUD9QKFFlKTpRZSkrIn1cbiJ9LHllPVtdLENlPXZvaWQgMD09PVQsRGU9VHx8W107cmV0dXJuKEllfHwoSWU9QXJyYXkuZnJvbShk''@;'; + put 'put ''b2N1bWVudC5zdHlsZVNoZWV0cykubWFwKGZ1bmN0aW9uKHope3RyeXtyZXR1cm57cnVsZXM6ei5jc3NSdWxlcyxocmVmOnouaHJlZn19Y2F0Y2gobmUpe3JldHVybiBjb25zb2xlLndhcm4oIlN0eWxlc2hlZXQgY291bGQgbm90IGJlIGxvYWRlZDogIit6LmhyZWYsbmUpLHt9fX0pKSkuZm9y''@;'; + put 'put ''RWFjaChmdW5jdGlvbihQZSl7dmFyIFFlPVBlLnJ1bGVzLCRlPVBlLmhyZWY7IVFlfHxBcnJheS5mcm9tKFFlKS5mb3JFYWNoKGZ1bmN0aW9uKGd0KXtpZih2b2lkIDAhPT1ndC5zdHlsZSlpZihmdW5jdGlvbih6LG5lKXtpZihuZSl0cnl7cmV0dXJuIHoucXVlcnlTZWxlY3RvcihuZSl8fHou''@;'; + put 'put ''cGFyZW50Tm9kZSYmei5wYXJlbnROb2RlLnF1ZXJ5U2VsZWN0b3IobmUpfWNhdGNoKHRlKXtjb25zb2xlLndhcm4oJ0ludmFsaWQgQ1NTIHNlbGVjdG9yICInK25lKyciJyx0ZSl9fSh6LGd0LnNlbGVjdG9yVGV4dCkpeWUucHVzaChGKGd0LnNlbGVjdG9yVGV4dCxndC5zdHlsZS5jc3NUZXh0''@;'; + put 'put ''KSk7ZWxzZSBpZihDZSYmZ3QuY3NzVGV4dC5tYXRjaCgvXkBmb250LWZhY2UvKSl7dmFyIHd0PWZ1bmN0aW9uKHosbmUpe3ZhciB0ZT16LmNzc1RleHQubWF0Y2goWikseD10ZSYmdGVbMV18fCIiO2lmKHgmJiF4Lm1hdGNoKC9eZGF0YTovKSYmImFib3V0OmJsYW5rIiE9PXgpe3ZhciBQPXgu''@;'; + put 'put ''c3RhcnRzV2l0aCgiLi4vIik/bmUrIi8uLi8iK3g6eC5zdGFydHNXaXRoKCIuLyIpP25lKyIvLiIreDp4O3JldHVybnt0ZXh0OnouY3NzVGV4dCxmb3JtYXQ6ZWUoUCksdXJsOlB9fX0oZ3QsJGUpO3d0JiZEZS5wdXNoKHd0KX1lbHNlIFN8fHllLnB1c2goZ3QuY3NzVGV4dCl9KX0pLGZ1bmN0''@;'; + put 'put ''aW9uKHope3JldHVybiBQcm9taXNlLmFsbCh6Lm1hcChmdW5jdGlvbihuZSl7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHRlLHgpe2lmKGtlW25lLnVybF0pcmV0dXJuIHRlKGtlW25lLnVybF0pO3ZhciBQPW5ldyBYTUxIdHRwUmVxdWVzdDtQLmFkZEV2ZW50TGlzdGVuZXIoImxvYWQi''@;'; + put 'put ''LGZ1bmN0aW9uKCl7dmFyIFY9ZnVuY3Rpb24oeil7Zm9yKHZhciBuZT0iIix0ZT1uZXcgVWludDhBcnJheSh6KSx4PTA7eDx0ZS5ieXRlTGVuZ3RoO3grKyluZSs9U3RyaW5nLmZyb21DaGFyQ29kZSh0ZVt4XSk7cmV0dXJuIHdpbmRvdy5idG9hKG5lKX0oUC5yZXNwb25zZSksVD1uZS50ZXh0''@;'; + put 'put ''LnJlcGxhY2UoWiwndXJsKCJkYXRhOicrbmUuZm9ybWF0KyI7YmFzZTY0LCIrVisnIiknKSsiXG4iO2tlW25lLnVybF09VCx0ZShUKX0pLFAuYWRkRXZlbnRMaXN0ZW5lcigiZXJyb3IiLGZ1bmN0aW9uKFYpe2NvbnNvbGUud2FybigiRmFpbGVkIHRvIGxvYWQgZm9udCBmcm9tOiAiK25lLnVy''@;'; + put 'put ''bCxWKSxrZVtuZS51cmxdPW51bGwsdGUobnVsbCl9KSxQLmFkZEV2ZW50TGlzdGVuZXIoImFib3J0IixmdW5jdGlvbihWKXtjb25zb2xlLndhcm4oIkFib3J0ZWQgbG9hZGluZyBmb250IGZyb206ICIrbmUudXJsLFYpLHRlKG51bGwpfSksUC5vcGVuKCJHRVQiLG5lLnVybCksUC5yZXNwb25z''@;'; + put 'put ''ZVR5cGU9ImFycmF5YnVmZmVyIixQLnNlbmQoKX0pfSkpLnRoZW4oZnVuY3Rpb24obmUpe3JldHVybiBuZS5maWx0ZXIoZnVuY3Rpb24odGUpe3JldHVybiB0ZX0pLmpvaW4oIiIpfSl9KERlKS50aGVuKGZ1bmN0aW9uKFBlKXtyZXR1cm4geWUuam9pbigiXG4iKStQZX0pfSxoZT1mdW5jdGlv''@;'; + put 'put ''bigpe2lmKCFuYXZpZ2F0b3IubXNTYXZlT3JPcGVuQmxvYiYmISgiZG93bmxvYWQiaW4gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpKSlyZXR1cm57cG9wdXA6d2luZG93Lm9wZW4oKX19O0IucHJlcGFyZVN2Zz1mdW5jdGlvbihPLHosbmUpe1koTyk7dmFyIHRlPXp8fHt9LHg9dGUubGVm''@;'; + put 'put ''dCxQPXZvaWQgMD09PXg/MDp4LFY9dGUudG9wLFQ9dm9pZCAwPT09Vj8wOlYsUz10ZS53aWR0aCxGPXRlLmhlaWdodCx5ZT10ZS5zY2FsZSxDZT12b2lkIDA9PT15ZT8xOnllLERlPXRlLnJlc3BvbnNpdmUsUGU9dm9pZCAwIT09RGUmJkRlLFFlPXRlLmV4Y2x1ZGVDc3MsJGU9dm9pZCAwIT09''@;'; + put 'put ''UWUmJlFlO3JldHVybiBmdW5jdGlvbih6KXtyZXR1cm4gUHJvbWlzZS5hbGwoQXJyYXkuZnJvbSh6LnF1ZXJ5U2VsZWN0b3JBbGwoImltYWdlIikpLm1hcChmdW5jdGlvbihuZSl7dmFyIHRlPW5lLmdldEF0dHJpYnV0ZU5TKCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiwiaHJlZiIp''@;'; + put 'put ''fHxuZS5nZXRBdHRyaWJ1dGUoImhyZWYiKTtyZXR1cm4gdGU/KGZ1bmN0aW9uKHope3JldHVybiB6JiYwPT09ei5sYXN0SW5kZXhPZigiaHR0cCIsMCkmJi0xPT09ei5sYXN0SW5kZXhPZih3aW5kb3cubG9jYXRpb24uaG9zdCl9KHRlKSYmKHRlKz0oLTE9PT10ZS5pbmRleE9mKCI/Iik/Ij8i''@;'; + put 'put ''OiImIikrInQ9IisobmV3IERhdGUpLnZhbHVlT2YoKSksbmV3IFByb21pc2UoZnVuY3Rpb24oeCxQKXt2YXIgVj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKSxUPW5ldyBJbWFnZTtULmNyb3NzT3JpZ2luPSJhbm9ueW1vdXMiLFQuc3JjPXRlLFQub25lcnJvcj1mdW5jdGlvbigp''@;'; + put 'put ''e3JldHVybiBQKG5ldyBFcnJvcigiQ291bGQgbm90IGxvYWQgIit0ZSkpfSxULm9ubG9hZD1mdW5jdGlvbigpe1Yud2lkdGg9VC53aWR0aCxWLmhlaWdodD1ULmhlaWdodCxWLmdldENvbnRleHQoIjJkIikuZHJhd0ltYWdlKFQsMCwwKSxuZS5zZXRBdHRyaWJ1dGVOUygiaHR0cDovL3d3dy53''@;'; + put 'put ''My5vcmcvMTk5OS94bGluayIsImhyZWYiLFYudG9EYXRhVVJMKCJpbWFnZS9wbmciKSkseCghMCl9fSkpOlByb21pc2UucmVzb2x2ZShudWxsKX0pKX0oTykudGhlbihmdW5jdGlvbigpe3ZhciBndD1PLmNsb25lTm9kZSghMCk7Z3Quc3R5bGUuYmFja2dyb3VuZENvbG9yPSh6fHx7fSkuYmFj''@;'; + put 'put ''a2dyb3VuZENvbG9yfHxPLnN0eWxlLmJhY2tncm91bmRDb2xvcjt2YXIgd3Q9ZnVuY3Rpb24oeixuZSx0ZSx4KXtpZigic3ZnIj09PXoudGFnTmFtZSlyZXR1cm57d2lkdGg6dGV8fEooeixuZSwid2lkdGgiKSxoZWlnaHQ6eHx8Sih6LG5lLCJoZWlnaHQiKX07aWYoei5nZXRCQm94KXt2YXIg''@;'; + put 'put ''UD16LmdldEJCb3goKTtyZXR1cm57d2lkdGg6UC54K1Aud2lkdGgsaGVpZ2h0OlAueStQLmhlaWdodH19fShPLGd0LFMsRiksbXQ9d3Qud2lkdGgsdnQ9d3QuaGVpZ2h0O2lmKCJzdmciIT09Ty50YWdOYW1lKXtpZighTy5nZXRCQm94KXJldHVybiB2b2lkIGNvbnNvbGUuZXJyb3IoIkF0dGVt''@;'; + put 'put ''cHRlZCB0byByZW5kZXIgbm9uLVNWRyBlbGVtZW50IixPKTtudWxsIT1ndC5nZXRBdHRyaWJ1dGUoInRyYW5zZm9ybSIpJiZndC5zZXRBdHRyaWJ1dGUoInRyYW5zZm9ybSIsZ3QuZ2V0QXR0cmlidXRlKCJ0cmFuc2Zvcm0iKS5yZXBsYWNlKC90cmFuc2xhdGVcKC4qP1wpLywiIikpO3ZhciBB''@;'; + put 'put ''dD1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiwic3ZnIik7QXQuYXBwZW5kQ2hpbGQoZ3QpLGd0PUF0fWlmKGd0LnNldEF0dHJpYnV0ZSgidmVyc2lvbiIsIjEuMSIpLGd0LnNldEF0dHJpYnV0ZSgidmlld0JveCIsW1AsVCxtdCx2dF0uam9p''@;'; + put 'put ''bigiICIpKSxndC5nZXRBdHRyaWJ1dGUoInhtbG5zIil8fGd0LnNldEF0dHJpYnV0ZU5TKEUsInhtbG5zIixVKSxndC5nZXRBdHRyaWJ1dGUoInhtbG5zOnhsaW5rIil8fGd0LnNldEF0dHJpYnV0ZU5TKEUsInhtbG5zOnhsaW5rIiwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIpLFBl''@;'; + put 'put ''PyhndC5yZW1vdmVBdHRyaWJ1dGUoIndpZHRoIiksZ3QucmVtb3ZlQXR0cmlidXRlKCJoZWlnaHQiKSxndC5zZXRBdHRyaWJ1dGUoInByZXNlcnZlQXNwZWN0UmF0aW8iLCJ4TWluWU1pbiBtZWV0IikpOihndC5zZXRBdHRyaWJ1dGUoIndpZHRoIixtdCpDZSksZ3Quc2V0QXR0cmlidXRlKCJo''@;'; + put 'put ''ZWlnaHQiLHZ0KkNlKSksQXJyYXkuZnJvbShndC5xdWVyeVNlbGVjdG9yQWxsKCJmb3JlaWduT2JqZWN0ID4gKiIpKS5mb3JFYWNoKGZ1bmN0aW9uKG9uKXtvbi5zZXRBdHRyaWJ1dGVOUyhFLCJ4bWxucyIsInN2ZyI9PT1vbi50YWdOYW1lP1U6Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0''@;'; + put 'put ''bWwiKX0pLCEkZSlyZXR1cm4gRWUoTyx6KS50aGVuKGZ1bmN0aW9uKG9uKXt2YXIgX3Q9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKTtfdC5zZXRBdHRyaWJ1dGUoInR5cGUiLCJ0ZXh0L2NzcyIpLF90LmlubmVySFRNTD0iPCFbQ0RBVEFbXG4iK29uKyJcbl1dPiI7dmFyIHR0PWRv''@;'; + put 'put ''Y3VtZW50LmNyZWF0ZUVsZW1lbnQoImRlZnMiKTt0dC5hcHBlbmRDaGlsZChfdCksZ3QuaW5zZXJ0QmVmb3JlKHR0LGd0LmZpcnN0Q2hpbGQpO3ZhciBldD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtldC5hcHBlbmRDaGlsZChndCk7dmFyIGF0PWV0LmlubmVySFRNTC5yZXBsYWNl''@;'; + put 'put ''KC9OU1xkKzpocmVmL2dpLCd4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeGxpbms6aHJlZicpO2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBuZSlyZXR1cm57c3JjOmF0LHdpZHRoOm10LGhlaWdodDp2dH07bmUoYXQsbXQsdnQpfSk7dmFyIGh0PWRvY3VtZW50LmNy''@;'; + put 'put ''ZWF0ZUVsZW1lbnQoImRpdiIpO2h0LmFwcGVuZENoaWxkKGd0KTt2YXIgQnQ9aHQuaW5uZXJIVE1MO2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBuZSlyZXR1cm57c3JjOkJ0LHdpZHRoOm10LGhlaWdodDp2dH07bmUoQnQsbXQsdnQpfSl9LEIuc3ZnQXNEYXRhVXJpPWZ1bmN0aW9uKE8seixuZSl7''@;'; + put 'put ''cmV0dXJuIFkoTyksQi5wcmVwYXJlU3ZnKE8seikudGhlbihmdW5jdGlvbih0ZSl7dmFyIFA9dGUud2lkdGgsVj10ZS5oZWlnaHQsVD0iZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCwiK3dpbmRvdy5idG9hKGZ1bmN0aW9uKHope3JldHVybiBkZWNvZGVVUklDb21wb25lbnQoZW5jb2RlVVJJ''@;'; + put 'put ''Q29tcG9uZW50KHopLnJlcGxhY2UoLyUoWzAtOUEtRl17Mn0pL2csZnVuY3Rpb24obmUsdGUpe3ZhciB4PVN0cmluZy5mcm9tQ2hhckNvZGUoIjB4Iit0ZSk7cmV0dXJuIiUiPT09eD8iJTI1Ijp4fSkpfSgnPD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PjwhRE9DVFlQRSBz''@;'; + put 'put ''dmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCIgWzwhRU5USVRZIG5ic3AgIiYjMTYwOyI+XT4nK3RlLnNyYykpO3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBuZSYmbmUoVCxQLFYpLFR9''@;'; + put 'put ''KX0sQi5zdmdBc1BuZ1VyaT1mdW5jdGlvbihPLHosbmUpe1koTyk7dmFyIHRlPXp8fHt9LHg9dGUuZW5jb2RlclR5cGUsUD12b2lkIDA9PT14PyJpbWFnZS9wbmciOngsVj10ZS5lbmNvZGVyT3B0aW9ucyxUPXZvaWQgMD09PVY/Ljg6VixTPXRlLmNhbnZnLEY9ZnVuY3Rpb24oQ2Upe3ZhciBE''@;'; + put 'put ''ZT1DZS5zcmMsUGU9Q2Uud2lkdGgsUWU9Q2UuaGVpZ2h0LCRlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpLGd0PSRlLmdldENvbnRleHQoIjJkIiksd3Q9d2luZG93LmRldmljZVBpeGVsUmF0aW98fDE7JGUud2lkdGg9UGUqd3QsJGUuaGVpZ2h0PVFlKnd0LCRlLnN0eWxlLndp''@;'; + put 'put ''ZHRoPSRlLndpZHRoKyJweCIsJGUuc3R5bGUuaGVpZ2h0PSRlLmhlaWdodCsicHgiLGd0LnNldFRyYW5zZm9ybSh3dCwwLDAsd3QsMCwwKSxTP1MoJGUsRGUpOmd0LmRyYXdJbWFnZShEZSwwLDApO3ZhciBtdD12b2lkIDA7dHJ5e210PSRlLnRvRGF0YVVSTChQLFQpfWNhdGNoKHZ0KXtpZigi''@;'; + put 'put ''dW5kZWZpbmVkIiE9dHlwZW9mIFNlY3VyaXR5RXJyb3ImJnZ0IGluc3RhbmNlb2YgU2VjdXJpdHlFcnJvcnx8IlNlY3VyaXR5RXJyb3IiPT09dnQubmFtZSlyZXR1cm4gdm9pZCBjb25zb2xlLmVycm9yKCJSZW5kZXJlZCBTVkcgaW1hZ2VzIGNhbm5vdCBiZSBkb3dubG9hZGVkIGluIHRoaXMg''@;'; + put 'put ''YnJvd3Nlci4iKTt0aHJvdyB2dH1yZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgbmUmJm5lKG10LCRlLndpZHRoLCRlLmhlaWdodCksUHJvbWlzZS5yZXNvbHZlKG10KX07cmV0dXJuIFM/Qi5wcmVwYXJlU3ZnKE8seikudGhlbihGKTpCLnN2Z0FzRGF0YVVyaShPLHopLnRoZW4oZnVuY3Rpb24o''@;'; + put 'put ''eWUpe3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihDZSxEZSl7dmFyIFBlPW5ldyBJbWFnZTtQZS5vbmxvYWQ9ZnVuY3Rpb24oKXtyZXR1cm4gQ2UoRih7c3JjOlBlLHdpZHRoOlBlLndpZHRoLGhlaWdodDpQZS5oZWlnaHR9KSl9LFBlLm9uZXJyb3I9ZnVuY3Rpb24oKXtEZSgiVGhlcmUg''@;'; + put 'put ''d2FzIGFuIGVycm9yIGxvYWRpbmcgdGhlIGRhdGEgVVJJIGFzIGFuIGltYWdlIG9uIHRoZSBmb2xsb3dpbmcgU1ZHXG4iK3dpbmRvdy5hdG9iKHllLnNsaWNlKDI2KSkrIk9wZW4gdGhlIGZvbGxvd2luZyBsaW5rIHRvIHNlZSBicm93c2VyJ3MgZGlhZ25vc2lzXG4iK3llKX0sUGUuc3JjPXll''@;'; + put 'put ''fSl9KX0sQi5kb3dubG9hZD1mdW5jdGlvbihPLHosbmUpe2lmKG5hdmlnYXRvci5tc1NhdmVPck9wZW5CbG9iKW5hdmlnYXRvci5tc1NhdmVPck9wZW5CbG9iKGNlKHopLE8pO2Vsc2V7dmFyIHRlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKTtpZigiZG93bmxvYWQiaW4gdGUpe3RlLmRv''@;'; + put 'put ''d25sb2FkPU8sdGUuc3R5bGUuZGlzcGxheT0ibm9uZSIsZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0ZSk7dHJ5e3ZhciB4PWNlKHopLFA9VVJMLmNyZWF0ZU9iamVjdFVSTCh4KTt0ZS5ocmVmPVAsdGUub25jbGljaz1mdW5jdGlvbigpe3JldHVybiByZXF1ZXN0QW5pbWF0aW9uRnJhbWUo''@;'; + put 'put ''ZnVuY3Rpb24oKXtyZXR1cm4gVVJMLnJldm9rZU9iamVjdFVSTChQKX0pfX1jYXRjaChWKXtjb25zb2xlLmVycm9yKFYpLGNvbnNvbGUud2FybigiRXJyb3Igd2hpbGUgZ2V0dGluZyBvYmplY3QgVVJMLiBGYWxsaW5nIGJhY2sgdG8gc3RyaW5nIFVSTC4iKSx0ZS5ocmVmPXp9dGUuY2xpY2so''@;'; + put 'put ''KSxkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKHRlKX1lbHNlIG5lJiZuZS5wb3B1cCYmKG5lLnBvcHVwLmRvY3VtZW50LnRpdGxlPU8sbmUucG9wdXAubG9jYXRpb24ucmVwbGFjZSh6KSl9fSxCLnNhdmVTdmc9ZnVuY3Rpb24oTyx6LG5lKXt2YXIgdGU9aGUoKTtyZXR1cm4gVyhPKS50aGVu''@;'; + put 'put ''KGZ1bmN0aW9uKHgpe3JldHVybiBCLnN2Z0FzRGF0YVVyaSh4LG5lfHx7fSl9KS50aGVuKGZ1bmN0aW9uKHgpe3JldHVybiBCLmRvd25sb2FkKHoseCx0ZSl9KX0sQi5zYXZlU3ZnQXNQbmc9ZnVuY3Rpb24oTyx6LG5lKXt2YXIgdGU9aGUoKTtyZXR1cm4gVyhPKS50aGVuKGZ1bmN0aW9uKHgp''@;'; + put 'put ''e3JldHVybiBCLnN2Z0FzUG5nVXJpKHgsbmV8fHt9KX0pLnRoZW4oZnVuY3Rpb24oeCl7cmV0dXJuIEIuZG93bmxvYWQoeix4LHRlKX0pfX0oKX0sODY2OTI6KFhlLEplLEwpPT57dmFyIG1lPUwoNzM1MDIpLkJ1ZmZlcjtmdW5jdGlvbiBCKEUsTWUpe3RoaXMuX2Jsb2NrPW1lLmFsbG9jKEUp''@;'; + put 'put ''LHRoaXMuX2ZpbmFsU2l6ZT1NZSx0aGlzLl9ibG9ja1NpemU9RSx0aGlzLl9sZW49MH1CLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24oRSxNZSl7InN0cmluZyI9PXR5cGVvZiBFJiYoRT1tZS5mcm9tKEUsTWU9TWV8fCJ1dGY4IikpO2Zvcih2YXIgVT10aGlzLl9ibG9jayxRPXRoaXMuX2Js''@;'; + put 'put ''b2NrU2l6ZSxaPUUubGVuZ3RoLGllPXRoaXMuX2xlbixhZT0wO2FlPFo7KXtmb3IodmFyIFk9aWUlUSxXPU1hdGgubWluKFotYWUsUS1ZKSxOPTA7TjxXO04rKylVW1krTl09RVthZStOXTthZSs9VywoaWUrPVcpJVE9PTAmJnRoaXMuX3VwZGF0ZShVKX1yZXR1cm4gdGhpcy5fbGVuKz1aLHRo''@;'; + put 'put ''aXN9LEIucHJvdG90eXBlLmRpZ2VzdD1mdW5jdGlvbihFKXt2YXIgTWU9dGhpcy5fbGVuJXRoaXMuX2Jsb2NrU2l6ZTt0aGlzLl9ibG9ja1tNZV09MTI4LHRoaXMuX2Jsb2NrLmZpbGwoMCxNZSsxKSxNZT49dGhpcy5fZmluYWxTaXplJiYodGhpcy5fdXBkYXRlKHRoaXMuX2Jsb2NrKSx0aGlz''@;'; + put 'put ''Ll9ibG9jay5maWxsKDApKTt2YXIgVT04KnRoaXMuX2xlbjtpZihVPD00Mjk0OTY3Mjk1KXRoaXMuX2Jsb2NrLndyaXRlVUludDMyQkUoVSx0aGlzLl9ibG9ja1NpemUtNCk7ZWxzZXt2YXIgUT0oNDI5NDk2NzI5NSZVKT4+PjA7dGhpcy5fYmxvY2sud3JpdGVVSW50MzJCRSgoVS1RKS80Mjk0''@;'; + put 'put ''OTY3Mjk2LHRoaXMuX2Jsb2NrU2l6ZS04KSx0aGlzLl9ibG9jay53cml0ZVVJbnQzMkJFKFEsdGhpcy5fYmxvY2tTaXplLTQpfXRoaXMuX3VwZGF0ZSh0aGlzLl9ibG9jayk7dmFyIGllPXRoaXMuX2hhc2goKTtyZXR1cm4gRT9pZS50b1N0cmluZyhFKTppZX0sQi5wcm90b3R5cGUuX3VwZGF0''@;'; + put 'put ''ZT1mdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcigiX3VwZGF0ZSBtdXN0IGJlIGltcGxlbWVudGVkIGJ5IHN1YmNsYXNzIil9LFhlLmV4cG9ydHM9Qn0sOTUyNDQ6KFhlLEplLEwpPT57dmFyIG1lPVhlLmV4cG9ydHM9ZnVuY3Rpb24oRSl7RT1FLnRvTG93ZXJDYXNlKCk7dmFyIE1lPW1lW0Vd''@;'; + put 'put ''O2lmKCFNZSl0aHJvdyBuZXcgRXJyb3IoRSsiIGlzIG5vdCBzdXBwb3J0ZWQgKHdlIGFjY2VwdCBwdWxsIHJlcXVlc3RzKSIpO3JldHVybiBuZXcgTWV9O21lLnNoYT1MKDg4OTMyKSxtZS5zaGExPUwoMTc3MzYpLG1lLnNoYTIyND1MKDI1MDQ0KSxtZS5zaGEyNTY9TCgxNTAxNCksbWUuc2hh''@;'; + put 'put ''Mzg0PUwoNzY1NDApLG1lLnNoYTUxMj1MKDEwMTE3KX0sODg5MzI6KFhlLEplLEwpPT57dmFyIG1lPUwoODM4OTQpLEI9TCg4NjY5MiksRT1MKDczNTAyKS5CdWZmZXIsTWU9WzE1MTg1MDAyNDksMTg1OTc3NTM5MywtMTg5NDAwNzU4OCwtODk5NDk3NTE0XSxVPW5ldyBBcnJheSg4MCk7ZnVu''@;'; + put 'put ''Y3Rpb24gUSgpe3RoaXMuaW5pdCgpLHRoaXMuX3c9VSxCLmNhbGwodGhpcyw2NCw1Nil9ZnVuY3Rpb24gWihZKXtyZXR1cm4gWTw8NXxZPj4+Mjd9ZnVuY3Rpb24gaWUoWSl7cmV0dXJuIFk8PDMwfFk+Pj4yfWZ1bmN0aW9uIGFlKFksVyxOLGVlKXtyZXR1cm4gMD09PVk/VyZOfH5XJmVlOjI9''@;'; + put 'put ''PT1ZP1cmTnxXJmVlfE4mZWU6V15OXmVlfW1lKFEsQiksUS5wcm90b3R5cGUuaW5pdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9hPTE3MzI1ODQxOTMsdGhpcy5fYj00MDIzMjMzNDE3LHRoaXMuX2M9MjU2MjM4MzEwMix0aGlzLl9kPTI3MTczMzg3OCx0aGlzLl9lPTMyODUzNzc1MjAsdGhp''@;'; + put 'put ''c30sUS5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbihZKXtmb3IodmFyIFc9dGhpcy5fdyxOPTB8dGhpcy5fYSxlZT0wfHRoaXMuX2IscT0wfHRoaXMuX2MsSj0wfHRoaXMuX2Qsc2U9MHx0aGlzLl9lLG9lPTA7b2U8MTY7KytvZSlXW29lXT1ZLnJlYWRJbnQzMkJFKDQqb2UpO2Zvcig7b2U8''@;'; + put 'put ''ODA7KytvZSlXW29lXT1XW29lLTNdXldbb2UtOF1eV1tvZS0xNF1eV1tvZS0xNl07Zm9yKHZhciBjZT0wO2NlPDgwOysrY2Upe3ZhciBkZT1+fihjZS8yMCksdmU9WihOKSthZShkZSxlZSxxLEopK3NlK1dbY2VdK01lW2RlXXwwO3NlPUosSj1xLHE9aWUoZWUpLGVlPU4sTj12ZX10aGlzLl9h''@;'; + put 'put ''PU4rdGhpcy5fYXwwLHRoaXMuX2I9ZWUrdGhpcy5fYnwwLHRoaXMuX2M9cSt0aGlzLl9jfDAsdGhpcy5fZD1KK3RoaXMuX2R8MCx0aGlzLl9lPXNlK3RoaXMuX2V8MH0sUS5wcm90b3R5cGUuX2hhc2g9ZnVuY3Rpb24oKXt2YXIgWT1FLmFsbG9jVW5zYWZlKDIwKTtyZXR1cm4gWS53cml0ZUlu''@;'; + put 'put ''dDMyQkUoMHx0aGlzLl9hLDApLFkud3JpdGVJbnQzMkJFKDB8dGhpcy5fYiw0KSxZLndyaXRlSW50MzJCRSgwfHRoaXMuX2MsOCksWS53cml0ZUludDMyQkUoMHx0aGlzLl9kLDEyKSxZLndyaXRlSW50MzJCRSgwfHRoaXMuX2UsMTYpLFl9LFhlLmV4cG9ydHM9UX0sMTc3MzY6KFhlLEplLEwp''@;'; + put 'put ''PT57dmFyIG1lPUwoODM4OTQpLEI9TCg4NjY5MiksRT1MKDczNTAyKS5CdWZmZXIsTWU9WzE1MTg1MDAyNDksMTg1OTc3NTM5MywtMTg5NDAwNzU4OCwtODk5NDk3NTE0XSxVPW5ldyBBcnJheSg4MCk7ZnVuY3Rpb24gUSgpe3RoaXMuaW5pdCgpLHRoaXMuX3c9VSxCLmNhbGwodGhpcyw2NCw1''@;'; + put 'put ''Nil9ZnVuY3Rpb24gWihXKXtyZXR1cm4gVzw8MXxXPj4+MzF9ZnVuY3Rpb24gaWUoVyl7cmV0dXJuIFc8PDV8Vz4+PjI3fWZ1bmN0aW9uIGFlKFcpe3JldHVybiBXPDwzMHxXPj4+Mn1mdW5jdGlvbiBZKFcsTixlZSxxKXtyZXR1cm4gMD09PVc/TiZlZXx+TiZxOjI9PT1XP04mZWV8TiZxfGVl''@;'; + put 'put ''JnE6Tl5lZV5xfW1lKFEsQiksUS5wcm90b3R5cGUuaW5pdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9hPTE3MzI1ODQxOTMsdGhpcy5fYj00MDIzMjMzNDE3LHRoaXMuX2M9MjU2MjM4MzEwMix0aGlzLl9kPTI3MTczMzg3OCx0aGlzLl9lPTMyODUzNzc1MjAsdGhpc30sUS5wcm90b3R5cGUu''@;'; + put 'put ''X3VwZGF0ZT1mdW5jdGlvbihXKXtmb3IodmFyIE49dGhpcy5fdyxlZT0wfHRoaXMuX2EscT0wfHRoaXMuX2IsSj0wfHRoaXMuX2Msc2U9MHx0aGlzLl9kLG9lPTB8dGhpcy5fZSxjZT0wO2NlPDE2OysrY2UpTltjZV09Vy5yZWFkSW50MzJCRSg0KmNlKTtmb3IoO2NlPDgwOysrY2UpTltjZV09''@;'; + put 'put ''WihOW2NlLTNdXk5bY2UtOF1eTltjZS0xNF1eTltjZS0xNl0pO2Zvcih2YXIgZGU9MDtkZTw4MDsrK2RlKXt2YXIgdmU9fn4oZGUvMjApLEFlPWllKGVlKStZKHZlLHEsSixzZSkrb2UrTltkZV0rTWVbdmVdfDA7b2U9c2Usc2U9SixKPWFlKHEpLHE9ZWUsZWU9QWV9dGhpcy5fYT1lZSt0aGlz''@;'; + put 'put ''Ll9hfDAsdGhpcy5fYj1xK3RoaXMuX2J8MCx0aGlzLl9jPUordGhpcy5fY3wwLHRoaXMuX2Q9c2UrdGhpcy5fZHwwLHRoaXMuX2U9b2UrdGhpcy5fZXwwfSxRLnByb3RvdHlwZS5faGFzaD1mdW5jdGlvbigpe3ZhciBXPUUuYWxsb2NVbnNhZmUoMjApO3JldHVybiBXLndyaXRlSW50MzJCRSgw''@;'; + put 'put ''fHRoaXMuX2EsMCksVy53cml0ZUludDMyQkUoMHx0aGlzLl9iLDQpLFcud3JpdGVJbnQzMkJFKDB8dGhpcy5fYyw4KSxXLndyaXRlSW50MzJCRSgwfHRoaXMuX2QsMTIpLFcud3JpdGVJbnQzMkJFKDB8dGhpcy5fZSwxNiksV30sWGUuZXhwb3J0cz1RfSwyNTA0NDooWGUsSmUsTCk9Pnt2YXIg''@;'; + put 'put ''bWU9TCg4Mzg5NCksQj1MKDE1MDE0KSxFPUwoODY2OTIpLE1lPUwoNzM1MDIpLkJ1ZmZlcixVPW5ldyBBcnJheSg2NCk7ZnVuY3Rpb24gUSgpe3RoaXMuaW5pdCgpLHRoaXMuX3c9VSxFLmNhbGwodGhpcyw2NCw1Nil9bWUoUSxCKSxRLnByb3RvdHlwZS5pbml0PWZ1bmN0aW9uKCl7cmV0dXJu''@;'; + put 'put ''IHRoaXMuX2E9MzIzODM3MTAzMix0aGlzLl9iPTkxNDE1MDY2Myx0aGlzLl9jPTgxMjcwMjk5OSx0aGlzLl9kPTQxNDQ5MTI2OTcsdGhpcy5fZT00MjkwNzc1ODU3LHRoaXMuX2Y9MTc1MDYwMzAyNSx0aGlzLl9nPTE2OTQwNzY4MzksdGhpcy5faD0zMjA0MDc1NDI4LHRoaXN9LFEucHJvdG90''@;'; + put 'put ''eXBlLl9oYXNoPWZ1bmN0aW9uKCl7dmFyIFo9TWUuYWxsb2NVbnNhZmUoMjgpO3JldHVybiBaLndyaXRlSW50MzJCRSh0aGlzLl9hLDApLFoud3JpdGVJbnQzMkJFKHRoaXMuX2IsNCksWi53cml0ZUludDMyQkUodGhpcy5fYyw4KSxaLndyaXRlSW50MzJCRSh0aGlzLl9kLDEyKSxaLndyaXRl''@;'; + put 'put ''SW50MzJCRSh0aGlzLl9lLDE2KSxaLndyaXRlSW50MzJCRSh0aGlzLl9mLDIwKSxaLndyaXRlSW50MzJCRSh0aGlzLl9nLDI0KSxafSxYZS5leHBvcnRzPVF9LDE1MDE0OihYZSxKZSxMKT0+e3ZhciBtZT1MKDgzODk0KSxCPUwoODY2OTIpLEU9TCg3MzUwMikuQnVmZmVyLE1lPVsxMTE2MzUy''@;'; + put 'put ''NDA4LDE4OTk0NDc0NDEsMzA0OTMyMzQ3MSwzOTIxMDA5NTczLDk2MTk4NzE2MywxNTA4OTcwOTkzLDI0NTM2MzU3NDgsMjg3MDc2MzIyMSwzNjI0MzgxMDgwLDMxMDU5ODQwMSw2MDcyMjUyNzgsMTQyNjg4MTk4NywxOTI1MDc4Mzg4LDIxNjIwNzgyMDYsMjYxNDg4ODEwMywzMjQ4MjIyNTgw''@;'; + put 'put ''LDM4MzUzOTA0MDEsNDAyMjIyNDc3NCwyNjQzNDcwNzgsNjA0ODA3NjI4LDc3MDI1NTk4MywxMjQ5MTUwMTIyLDE1NTUwODE2OTIsMTk5NjA2NDk4NiwyNTU0MjIwODgyLDI4MjE4MzQzNDksMjk1Mjk5NjgwOCwzMjEwMzEzNjcxLDMzMzY1NzE4OTEsMzU4NDUyODcxMSwxMTM5MjY5OTMsMzM4''@;'; + put 'put ''MjQxODk1LDY2NjMwNzIwNSw3NzM1Mjk5MTIsMTI5NDc1NzM3MiwxMzk2MTgyMjkxLDE2OTUxODM3MDAsMTk4NjY2MTA1MSwyMTc3MDI2MzUwLDI0NTY5NTYwMzcsMjczMDQ4NTkyMSwyODIwMzAyNDExLDMyNTk3MzA4MDAsMzM0NTc2NDc3MSwzNTE2MDY1ODE3LDM2MDAzNTI4MDQsNDA5NDU3''@;'; + put 'put ''MTkwOSwyNzU0MjMzNDQsNDMwMjI3NzM0LDUwNjk0ODYxNiw2NTkwNjA1NTYsODgzOTk3ODc3LDk1ODEzOTU3MSwxMzIyODIyMjE4LDE1MzcwMDIwNjMsMTc0Nzg3Mzc3OSwxOTU1NTYyMjIyLDIwMjQxMDQ4MTUsMjIyNzczMDQ1MiwyMzYxODUyNDI0LDI0Mjg0MzY0NzQsMjc1NjczNDE4Nywz''@;'; + put 'put ''MjA0MDMxNDc5LDMzMjkzMjUyOThdLFU9bmV3IEFycmF5KDY0KTtmdW5jdGlvbiBRKCl7dGhpcy5pbml0KCksdGhpcy5fdz1VLEIuY2FsbCh0aGlzLDY0LDU2KX1mdW5jdGlvbiBaKGVlLHEsSil7cmV0dXJuIEpeZWUmKHFeSil9ZnVuY3Rpb24gaWUoZWUscSxKKXtyZXR1cm4gZWUmcXxKJihl''@;'; + put 'put ''ZXxxKX1mdW5jdGlvbiBhZShlZSl7cmV0dXJuKGVlPj4+MnxlZTw8MzApXihlZT4+PjEzfGVlPDwxOSleKGVlPj4+MjJ8ZWU8PDEwKX1mdW5jdGlvbiBZKGVlKXtyZXR1cm4oZWU+Pj42fGVlPDwyNileKGVlPj4+MTF8ZWU8PDIxKV4oZWU+Pj4yNXxlZTw8Nyl9ZnVuY3Rpb24gVyhlZSl7cmV0''@;'; + put 'put ''dXJuKGVlPj4+N3xlZTw8MjUpXihlZT4+PjE4fGVlPDwxNCleZWU+Pj4zfWZ1bmN0aW9uIE4oZWUpe3JldHVybihlZT4+PjE3fGVlPDwxNSleKGVlPj4+MTl8ZWU8PDEzKV5lZT4+PjEwfW1lKFEsQiksUS5wcm90b3R5cGUuaW5pdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9hPTE3NzkwMzM3''@;'; + put 'put ''MDMsdGhpcy5fYj0zMTQ0MTM0Mjc3LHRoaXMuX2M9MTAxMzkwNDI0Mix0aGlzLl9kPTI3NzM0ODA3NjIsdGhpcy5fZT0xMzU5ODkzMTE5LHRoaXMuX2Y9MjYwMDgyMjkyNCx0aGlzLl9nPTUyODczNDYzNSx0aGlzLl9oPTE1NDE0NTkyMjUsdGhpc30sUS5wcm90b3R5cGUuX3VwZGF0ZT1mdW5j''@;'; + put 'put ''dGlvbihlZSl7Zm9yKHZhciBxPXRoaXMuX3csSj0wfHRoaXMuX2Esc2U9MHx0aGlzLl9iLG9lPTB8dGhpcy5fYyxjZT0wfHRoaXMuX2QsZGU9MHx0aGlzLl9lLHZlPTB8dGhpcy5fZixBZT0wfHRoaXMuX2csa2U9MHx0aGlzLl9oLFNlPTA7U2U8MTY7KytTZSlxW1NlXT1lZS5yZWFkSW50MzJC''@;'; + put 'put ''RSg0KlNlKTtmb3IoO1NlPDY0OysrU2UpcVtTZV09TihxW1NlLTJdKStxW1NlLTddK1cocVtTZS0xNV0pK3FbU2UtMTZdfDA7Zm9yKHZhciBJZT0wO0llPDY0OysrSWUpe3ZhciBUZT1rZStZKGRlKStaKGRlLHZlLEFlKStNZVtJZV0rcVtJZV18MCxFZT1hZShKKStpZShKLHNlLG9lKXwwO2tl''@;'; + put 'put ''PUFlLEFlPXZlLHZlPWRlLGRlPWNlK1RlfDAsY2U9b2Usb2U9c2Usc2U9SixKPVRlK0VlfDB9dGhpcy5fYT1KK3RoaXMuX2F8MCx0aGlzLl9iPXNlK3RoaXMuX2J8MCx0aGlzLl9jPW9lK3RoaXMuX2N8MCx0aGlzLl9kPWNlK3RoaXMuX2R8MCx0aGlzLl9lPWRlK3RoaXMuX2V8MCx0aGlzLl9m''@;'; + put 'put ''PXZlK3RoaXMuX2Z8MCx0aGlzLl9nPUFlK3RoaXMuX2d8MCx0aGlzLl9oPWtlK3RoaXMuX2h8MH0sUS5wcm90b3R5cGUuX2hhc2g9ZnVuY3Rpb24oKXt2YXIgZWU9RS5hbGxvY1Vuc2FmZSgzMik7cmV0dXJuIGVlLndyaXRlSW50MzJCRSh0aGlzLl9hLDApLGVlLndyaXRlSW50MzJCRSh0aGlz''@;'; + put 'put ''Ll9iLDQpLGVlLndyaXRlSW50MzJCRSh0aGlzLl9jLDgpLGVlLndyaXRlSW50MzJCRSh0aGlzLl9kLDEyKSxlZS53cml0ZUludDMyQkUodGhpcy5fZSwxNiksZWUud3JpdGVJbnQzMkJFKHRoaXMuX2YsMjApLGVlLndyaXRlSW50MzJCRSh0aGlzLl9nLDI0KSxlZS53cml0ZUludDMyQkUodGhp''@;'; + put 'put ''cy5faCwyOCksZWV9LFhlLmV4cG9ydHM9UX0sNzY1NDA6KFhlLEplLEwpPT57dmFyIG1lPUwoODM4OTQpLEI9TCgxMDExNyksRT1MKDg2NjkyKSxNZT1MKDczNTAyKS5CdWZmZXIsVT1uZXcgQXJyYXkoMTYwKTtmdW5jdGlvbiBRKCl7dGhpcy5pbml0KCksdGhpcy5fdz1VLEUuY2FsbCh0aGlz''@;'; + put 'put ''LDEyOCwxMTIpfW1lKFEsQiksUS5wcm90b3R5cGUuaW5pdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9haD0zNDE4MDcwMzY1LHRoaXMuX2JoPTE2NTQyNzAyNTAsdGhpcy5fY2g9MjQzODUyOTM3MCx0aGlzLl9kaD0zNTU0NjIzNjAsdGhpcy5fZWg9MTczMTQwNTQxNSx0aGlzLl9maD0yMzk0''@;'; + put 'put ''MTgwMjMxLHRoaXMuX2doPTM2NzUwMDg1MjUsdGhpcy5faGg9MTIwMzA2MjgxMyx0aGlzLl9hbD0zMjM4MzcxMDMyLHRoaXMuX2JsPTkxNDE1MDY2Myx0aGlzLl9jbD04MTI3MDI5OTksdGhpcy5fZGw9NDE0NDkxMjY5Nyx0aGlzLl9lbD00MjkwNzc1ODU3LHRoaXMuX2ZsPTE3NTA2MDMwMjUs''@;'; + put 'put ''dGhpcy5fZ2w9MTY5NDA3NjgzOSx0aGlzLl9obD0zMjA0MDc1NDI4LHRoaXN9LFEucHJvdG90eXBlLl9oYXNoPWZ1bmN0aW9uKCl7dmFyIFo9TWUuYWxsb2NVbnNhZmUoNDgpO2Z1bmN0aW9uIGllKGFlLFksVyl7Wi53cml0ZUludDMyQkUoYWUsVyksWi53cml0ZUludDMyQkUoWSxXKzQpfXJl''@;'; + put 'put ''dHVybiBpZSh0aGlzLl9haCx0aGlzLl9hbCwwKSxpZSh0aGlzLl9iaCx0aGlzLl9ibCw4KSxpZSh0aGlzLl9jaCx0aGlzLl9jbCwxNiksaWUodGhpcy5fZGgsdGhpcy5fZGwsMjQpLGllKHRoaXMuX2VoLHRoaXMuX2VsLDMyKSxpZSh0aGlzLl9maCx0aGlzLl9mbCw0MCksWn0sWGUuZXhwb3J0''@;'; + put 'put ''cz1RfSwxMDExNzooWGUsSmUsTCk9Pnt2YXIgbWU9TCg4Mzg5NCksQj1MKDg2NjkyKSxFPUwoNzM1MDIpLkJ1ZmZlcixNZT1bMTExNjM1MjQwOCwzNjA5NzY3NDU4LDE4OTk0NDc0NDEsNjAyODkxNzI1LDMwNDkzMjM0NzEsMzk2NDQ4NDM5OSwzOTIxMDA5NTczLDIxNzMyOTU1NDgsOTYxOTg3''@;'; + put 'put ''MTYzLDQwODE2Mjg0NzIsMTUwODk3MDk5MywzMDUzODM0MjY1LDI0NTM2MzU3NDgsMjkzNzY3MTU3OSwyODcwNzYzMjIxLDM2NjQ2MDk1NjAsMzYyNDM4MTA4MCwyNzM0ODgzMzk0LDMxMDU5ODQwMSwxMTY0OTk2NTQyLDYwNzIyNTI3OCwxMzIzNjEwNzY0LDE0MjY4ODE5ODcsMzU5MDMwNDk5''@;'; + put 'put ''NCwxOTI1MDc4Mzg4LDQwNjgxODIzODMsMjE2MjA3ODIwNiw5OTEzMzYxMTMsMjYxNDg4ODEwMyw2MzM4MDMzMTcsMzI0ODIyMjU4MCwzNDc5Nzc0ODY4LDM4MzUzOTA0MDEsMjY2NjYxMzQ1OCw0MDIyMjI0Nzc0LDk0NDcxMTEzOSwyNjQzNDcwNzgsMjM0MTI2Mjc3Myw2MDQ4MDc2MjgsMjAw''@;'; + put 'put ''NzgwMDkzMyw3NzAyNTU5ODMsMTQ5NTk5MDkwMSwxMjQ5MTUwMTIyLDE4NTY0MzEyMzUsMTU1NTA4MTY5MiwzMTc1MjE4MTMyLDE5OTYwNjQ5ODYsMjE5ODk1MDgzNywyNTU0MjIwODgyLDM5OTk3MTkzMzksMjgyMTgzNDM0OSw3NjY3ODQwMTYsMjk1Mjk5NjgwOCwyNTY2NTk0ODc5LDMyMTAz''@;'; + put 'put ''MTM2NzEsMzIwMzMzNzk1NiwzMzM2NTcxODkxLDEwMzQ0NTcwMjYsMzU4NDUyODcxMSwyNDY2OTQ4OTAxLDExMzkyNjk5MywzNzU4MzI2MzgzLDMzODI0MTg5NSwxNjg3MTc5MzYsNjY2MzA3MjA1LDExODgxNzk5NjQsNzczNTI5OTEyLDE1NDYwNDU3MzQsMTI5NDc1NzM3MiwxNTIyODA1NDg1''@;'; + put 'put ''LDEzOTYxODIyOTEsMjY0MzgzMzgyMywxNjk1MTgzNzAwLDIzNDM1MjczOTAsMTk4NjY2MTA1MSwxMDE0NDc3NDgwLDIxNzcwMjYzNTAsMTIwNjc1OTE0MiwyNDU2OTU2MDM3LDM0NDA3NzYyNywyNzMwNDg1OTIxLDEyOTA4NjM0NjAsMjgyMDMwMjQxMSwzMTU4NDU0MjczLDMyNTk3MzA4MDAs''@;'; + put 'put ''MzUwNTk1MjY1NywzMzQ1NzY0NzcxLDEwNjIxNzAwOCwzNTE2MDY1ODE3LDM2MDYwMDgzNDQsMzYwMDM1MjgwNCwxNDMyNzI1Nzc2LDQwOTQ1NzE5MDksMTQ2NzAzMTU5NCwyNzU0MjMzNDQsODUxMTY5NzIwLDQzMDIyNzczNCwzMTAwODIzNzUyLDUwNjk0ODYxNiwxMzYzMjU4MTk1LDY1OTA2''@;'; + put 'put ''MDU1NiwzNzUwNjg1NTkzLDg4Mzk5Nzg3NywzNzg1MDUwMjgwLDk1ODEzOTU3MSwzMzE4MzA3NDI3LDEzMjI4MjIyMTgsMzgxMjcyMzQwMywxNTM3MDAyMDYzLDIwMDMwMzQ5OTUsMTc0Nzg3Mzc3OSwzNjAyMDM2ODk5LDE5NTU1NjIyMjIsMTU3NTk5MDAxMiwyMDI0MTA0ODE1LDExMjU1OTI5''@;'; + put 'put ''MjgsMjIyNzczMDQ1MiwyNzE2OTA0MzA2LDIzNjE4NTI0MjQsNDQyNzc2MDQ0LDI0Mjg0MzY0NzQsNTkzNjk4MzQ0LDI3NTY3MzQxODcsMzczMzExMDI0OSwzMjA0MDMxNDc5LDI5OTkzNTE1NzMsMzMyOTMyNTI5OCwzODE1OTIwNDI3LDMzOTE1Njk2MTQsMzkyODM4MzkwMCwzNTE1MjY3Mjcx''@;'; + put 'put ''LDU2NjI4MDcxMSwzOTQwMTg3NjA2LDM0NTQwNjk1MzQsNDExODYzMDI3MSw0MDAwMjM5OTkyLDExNjQxODQ3NCwxOTE0MTM4NTU0LDE3NDI5MjQyMSwyNzMxMDU1MjcwLDI4OTM4MDM1NiwzMjAzOTkzMDA2LDQ2MDM5MzI2OSwzMjA2MjAzMTUsNjg1NDcxNzMzLDU4NzQ5NjgzNiw4NTIxNDI5''@;'; + put 'put ''NzEsMTA4Njc5Mjg1MSwxMDE3MDM2Mjk4LDM2NTU0MzEwMCwxMTI2MDAwNTgwLDI2MTgyOTc2NzYsMTI4ODAzMzQ3MCwzNDA5ODU1MTU4LDE1MDE1MDU5NDgsNDIzNDUwOTg2NiwxNjA3MTY3OTE1LDk4NzE2NzQ2OCwxODE2NDAyMzE2LDEyNDYxODk1OTFdLFU9bmV3IEFycmF5KDE2MCk7ZnVu''@;'; + put 'put ''Y3Rpb24gUSgpe3RoaXMuaW5pdCgpLHRoaXMuX3c9VSxCLmNhbGwodGhpcywxMjgsMTEyKX1mdW5jdGlvbiBaKHNlLG9lLGNlKXtyZXR1cm4gY2Vec2UmKG9lXmNlKX1mdW5jdGlvbiBpZShzZSxvZSxjZSl7cmV0dXJuIHNlJm9lfGNlJihzZXxvZSl9ZnVuY3Rpb24gYWUoc2Usb2Upe3JldHVy''@;'; + put 'put ''bihzZT4+PjI4fG9lPDw0KV4ob2U+Pj4yfHNlPDwzMCleKG9lPj4+N3xzZTw8MjUpfWZ1bmN0aW9uIFkoc2Usb2Upe3JldHVybihzZT4+PjE0fG9lPDwxOCleKHNlPj4+MTh8b2U8PDE0KV4ob2U+Pj45fHNlPDwyMyl9ZnVuY3Rpb24gVyhzZSxvZSl7cmV0dXJuKHNlPj4+MXxvZTw8MzEpXihz''@;'; + put 'put ''ZT4+Pjh8b2U8PDI0KV5zZT4+Pjd9ZnVuY3Rpb24gTihzZSxvZSl7cmV0dXJuKHNlPj4+MXxvZTw8MzEpXihzZT4+Pjh8b2U8PDI0KV4oc2U+Pj43fG9lPDwyNSl9ZnVuY3Rpb24gZWUoc2Usb2Upe3JldHVybihzZT4+PjE5fG9lPDwxMyleKG9lPj4+Mjl8c2U8PDMpXnNlPj4+Nn1mdW5jdGlv''@;'; + put 'put ''biBxKHNlLG9lKXtyZXR1cm4oc2U+Pj4xOXxvZTw8MTMpXihvZT4+PjI5fHNlPDwzKV4oc2U+Pj42fG9lPDwyNil9ZnVuY3Rpb24gSihzZSxvZSl7cmV0dXJuIHNlPj4+MDxvZT4+PjA/MTowfW1lKFEsQiksUS5wcm90b3R5cGUuaW5pdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9haD0xNzc5''@;'; + put 'put ''MDMzNzAzLHRoaXMuX2JoPTMxNDQxMzQyNzcsdGhpcy5fY2g9MTAxMzkwNDI0Mix0aGlzLl9kaD0yNzczNDgwNzYyLHRoaXMuX2VoPTEzNTk4OTMxMTksdGhpcy5fZmg9MjYwMDgyMjkyNCx0aGlzLl9naD01Mjg3MzQ2MzUsdGhpcy5faGg9MTU0MTQ1OTIyNSx0aGlzLl9hbD00MDg5MjM1NzIw''@;'; + put 'put ''LHRoaXMuX2JsPTIyMjc4NzM1OTUsdGhpcy5fY2w9NDI3MTE3NTcyMyx0aGlzLl9kbD0xNTk1NzUwMTI5LHRoaXMuX2VsPTI5MTc1NjUxMzcsdGhpcy5fZmw9NzI1NTExMTk5LHRoaXMuX2dsPTQyMTUzODk1NDcsdGhpcy5faGw9MzI3MDMzMjA5LHRoaXN9LFEucHJvdG90eXBlLl91cGRhdGU9''@;'; + put 'put ''ZnVuY3Rpb24oc2Upe2Zvcih2YXIgb2U9dGhpcy5fdyxjZT0wfHRoaXMuX2FoLGRlPTB8dGhpcy5fYmgsdmU9MHx0aGlzLl9jaCxBZT0wfHRoaXMuX2RoLGtlPTB8dGhpcy5fZWgsU2U9MHx0aGlzLl9maCxJZT0wfHRoaXMuX2doLFRlPTB8dGhpcy5faGgsRWU9MHx0aGlzLl9hbCxoZT0wfHRo''@;'; + put 'put ''aXMuX2JsLE89MHx0aGlzLl9jbCx6PTB8dGhpcy5fZGwsbmU9MHx0aGlzLl9lbCx0ZT0wfHRoaXMuX2ZsLHg9MHx0aGlzLl9nbCxQPTB8dGhpcy5faGwsVj0wO1Y8MzI7Vis9MilvZVtWXT1zZS5yZWFkSW50MzJCRSg0KlYpLG9lW1YrMV09c2UucmVhZEludDMyQkUoNCpWKzQpO2Zvcig7Vjwx''@;'; + put 'put ''NjA7Vis9Mil7dmFyIFQ9b2VbVi0zMF0sUz1vZVtWLTMwKzFdLEY9VyhULFMpLHllPU4oUyxUKSxDZT1lZShUPW9lW1YtNF0sUz1vZVtWLTQrMV0pLERlPXEoUyxUKSwkZT1vZVtWLTMyXSxndD1vZVtWLTMyKzFdLHd0PXllK29lW1YtMTQrMV18MCxtdD1GK29lW1YtMTRdK0ood3QseWUpfDA7''@;'; + put 'put ''bXQ9KG10PW10K0NlK0ood3Q9d3QrRGV8MCxEZSl8MCkrJGUrSih3dD13dCtndHwwLGd0KXwwLG9lW1ZdPW10LG9lW1YrMV09d3R9Zm9yKHZhciB2dD0wO3Z0PDE2MDt2dCs9Mil7bXQ9b2VbdnRdLHd0PW9lW3Z0KzFdO3ZhciBBdD1pZShjZSxkZSx2ZSksaHQ9aWUoRWUsaGUsTyksQnQ9YWUo''@;'; + put 'put ''Y2UsRWUpLG9uPWFlKEVlLGNlKSxfdD1ZKGtlLG5lKSx0dD1ZKG5lLGtlKSxldD1NZVt2dF0sYXQ9TWVbdnQrMV0sTHQ9WihrZSxTZSxJZSksQ3Q9WihuZSx0ZSx4KSxmdD1QK3R0fDAsSHQ9VGUrX3QrSihmdCxQKXwwO0h0PShIdD0oSHQ9SHQrTHQrSihmdD1mdCtDdHwwLEN0KXwwKStldCtK''@;'; + put 'put ''KGZ0PWZ0K2F0fDAsYXQpfDApK210K0ooZnQ9ZnQrd3R8MCx3dCl8MDt2YXIgR2U9b24raHR8MCxVZT1CdCtBdCtKKEdlLG9uKXwwO1RlPUllLFA9eCxJZT1TZSx4PXRlLFNlPWtlLHRlPW5lLGtlPUFlK0h0K0oobmU9eitmdHwwLHopfDAsQWU9dmUsej1PLHZlPWRlLE89aGUsZGU9Y2UsaGU9''@;'; + put 'put ''RWUsY2U9SHQrVWUrSihFZT1mdCtHZXwwLGZ0KXwwfXRoaXMuX2FsPXRoaXMuX2FsK0VlfDAsdGhpcy5fYmw9dGhpcy5fYmwraGV8MCx0aGlzLl9jbD10aGlzLl9jbCtPfDAsdGhpcy5fZGw9dGhpcy5fZGwrenwwLHRoaXMuX2VsPXRoaXMuX2VsK25lfDAsdGhpcy5fZmw9dGhpcy5fZmwrdGV8''@;'; + put 'put ''MCx0aGlzLl9nbD10aGlzLl9nbCt4fDAsdGhpcy5faGw9dGhpcy5faGwrUHwwLHRoaXMuX2FoPXRoaXMuX2FoK2NlK0oodGhpcy5fYWwsRWUpfDAsdGhpcy5fYmg9dGhpcy5fYmgrZGUrSih0aGlzLl9ibCxoZSl8MCx0aGlzLl9jaD10aGlzLl9jaCt2ZStKKHRoaXMuX2NsLE8pfDAsdGhpcy5f''@;'; + put 'put ''ZGg9dGhpcy5fZGgrQWUrSih0aGlzLl9kbCx6KXwwLHRoaXMuX2VoPXRoaXMuX2VoK2tlK0oodGhpcy5fZWwsbmUpfDAsdGhpcy5fZmg9dGhpcy5fZmgrU2UrSih0aGlzLl9mbCx0ZSl8MCx0aGlzLl9naD10aGlzLl9naCtJZStKKHRoaXMuX2dsLHgpfDAsdGhpcy5faGg9dGhpcy5faGgrVGUr''@;'; + put 'put ''Sih0aGlzLl9obCxQKXwwfSxRLnByb3RvdHlwZS5faGFzaD1mdW5jdGlvbigpe3ZhciBzZT1FLmFsbG9jVW5zYWZlKDY0KTtmdW5jdGlvbiBvZShjZSxkZSx2ZSl7c2Uud3JpdGVJbnQzMkJFKGNlLHZlKSxzZS53cml0ZUludDMyQkUoZGUsdmUrNCl9cmV0dXJuIG9lKHRoaXMuX2FoLHRoaXMu''@;'; + put 'put ''X2FsLDApLG9lKHRoaXMuX2JoLHRoaXMuX2JsLDgpLG9lKHRoaXMuX2NoLHRoaXMuX2NsLDE2KSxvZSh0aGlzLl9kaCx0aGlzLl9kbCwyNCksb2UodGhpcy5fZWgsdGhpcy5fZWwsMzIpLG9lKHRoaXMuX2ZoLHRoaXMuX2ZsLDQwKSxvZSh0aGlzLl9naCx0aGlzLl9nbCw0OCksb2UodGhpcy5f''@;'; + put 'put ''aGgsdGhpcy5faGwsNTYpLHNlfSxYZS5leHBvcnRzPVF9LDI5NTooWGUsSmUsTCk9PntYZS5leHBvcnRzPUU7dmFyIG1lPUwoNTkwNjkpLkV2ZW50RW1pdHRlcjtmdW5jdGlvbiBFKCl7bWUuY2FsbCh0aGlzKX1MKDgzODk0KShFLG1lKSxFLlJlYWRhYmxlPUwoMzE1NCksRS5Xcml0YWJsZT1M''@;'; + put 'put ''KDIwNTIwKSxFLkR1cGxleD1MKDQxMzM5KSxFLlRyYW5zZm9ybT1MKDYwMjUpLEUuUGFzc1Rocm91Z2g9TCg1NjA3MSksRS5maW5pc2hlZD1MKDY3NTQyKSxFLnBpcGVsaW5lPUwoOTA5NTQpLEUuU3RyZWFtPUUsRS5wcm90b3R5cGUucGlwZT1mdW5jdGlvbihNZSxVKXt2YXIgUT10aGlzO2Z1''@;'; + put 'put ''bmN0aW9uIFoocSl7TWUud3JpdGFibGUmJiExPT09TWUud3JpdGUocSkmJlEucGF1c2UmJlEucGF1c2UoKX1mdW5jdGlvbiBpZSgpe1EucmVhZGFibGUmJlEucmVzdW1lJiZRLnJlc3VtZSgpfVEub24oImRhdGEiLFopLE1lLm9uKCJkcmFpbiIsaWUpLCFNZS5faXNTdGRpbyYmKCFVfHwhMSE9''@;'; + put 'put ''PVUuZW5kKSYmKFEub24oImVuZCIsWSksUS5vbigiY2xvc2UiLFcpKTt2YXIgYWU9ITE7ZnVuY3Rpb24gWSgpe2FlfHwoYWU9ITAsTWUuZW5kKCkpfWZ1bmN0aW9uIFcoKXthZXx8KGFlPSEwLCJmdW5jdGlvbiI9PXR5cGVvZiBNZS5kZXN0cm95JiZNZS5kZXN0cm95KCkpfWZ1bmN0aW9uIE4o''@;'; + put 'put ''cSl7aWYoZWUoKSwwPT09bWUubGlzdGVuZXJDb3VudCh0aGlzLCJlcnJvciIpKXRocm93IHF9ZnVuY3Rpb24gZWUoKXtRLnJlbW92ZUxpc3RlbmVyKCJkYXRhIixaKSxNZS5yZW1vdmVMaXN0ZW5lcigiZHJhaW4iLGllKSxRLnJlbW92ZUxpc3RlbmVyKCJlbmQiLFkpLFEucmVtb3ZlTGlzdGVu''@;'; + put 'put ''ZXIoImNsb3NlIixXKSxRLnJlbW92ZUxpc3RlbmVyKCJlcnJvciIsTiksTWUucmVtb3ZlTGlzdGVuZXIoImVycm9yIixOKSxRLnJlbW92ZUxpc3RlbmVyKCJlbmQiLGVlKSxRLnJlbW92ZUxpc3RlbmVyKCJjbG9zZSIsZWUpLE1lLnJlbW92ZUxpc3RlbmVyKCJjbG9zZSIsZWUpfXJldHVybiBR''@;'; + put 'put ''Lm9uKCJlcnJvciIsTiksTWUub24oImVycm9yIixOKSxRLm9uKCJlbmQiLGVlKSxRLm9uKCJjbG9zZSIsZWUpLE1lLm9uKCJjbG9zZSIsZWUpLE1lLmVtaXQoInBpcGUiLFEpLE1lfX0sNzMwNTQ6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDMwODU4KS5CdWZmZXIsQj1tZS5p''@;'; + put 'put ''c0VuY29kaW5nfHxmdW5jdGlvbihjZSl7c3dpdGNoKChjZT0iIitjZSkmJmNlLnRvTG93ZXJDYXNlKCkpe2Nhc2UiaGV4IjpjYXNlInV0ZjgiOmNhc2UidXRmLTgiOmNhc2UiYXNjaWkiOmNhc2UiYmluYXJ5IjpjYXNlImJhc2U2NCI6Y2FzZSJ1Y3MyIjpjYXNlInVjcy0yIjpjYXNlInV0ZjE2''@;'; + put 'put ''bGUiOmNhc2UidXRmLTE2bGUiOmNhc2UicmF3IjpyZXR1cm4hMDtkZWZhdWx0OnJldHVybiExfX07ZnVuY3Rpb24gVShjZSl7dmFyIGRlO3N3aXRjaCh0aGlzLmVuY29kaW5nPWZ1bmN0aW9uIE1lKGNlKXt2YXIgZGU9ZnVuY3Rpb24gRShjZSl7aWYoIWNlKXJldHVybiJ1dGY4Ijtmb3IodmFy''@;'; + put 'put ''IGRlOzspc3dpdGNoKGNlKXtjYXNlInV0ZjgiOmNhc2UidXRmLTgiOnJldHVybiJ1dGY4IjtjYXNlInVjczIiOmNhc2UidWNzLTIiOmNhc2UidXRmMTZsZSI6Y2FzZSJ1dGYtMTZsZSI6cmV0dXJuInV0ZjE2bGUiO2Nhc2UibGF0aW4xIjpjYXNlImJpbmFyeSI6cmV0dXJuImxhdGluMSI7Y2Fz''@;'; + put 'put ''ZSJiYXNlNjQiOmNhc2UiYXNjaWkiOmNhc2UiaGV4IjpyZXR1cm4gY2U7ZGVmYXVsdDppZihkZSlyZXR1cm47Y2U9KCIiK2NlKS50b0xvd2VyQ2FzZSgpLGRlPSEwfX0oY2UpO2lmKCJzdHJpbmciIT10eXBlb2YgZGUmJihtZS5pc0VuY29kaW5nPT09Qnx8IUIoY2UpKSl0aHJvdyBuZXcgRXJy''@;'; + put 'put ''b3IoIlVua25vd24gZW5jb2Rpbmc6ICIrY2UpO3JldHVybiBkZXx8Y2V9KGNlKSx0aGlzLmVuY29kaW5nKXtjYXNlInV0ZjE2bGUiOnRoaXMudGV4dD1OLHRoaXMuZW5kPWVlLGRlPTQ7YnJlYWs7Y2FzZSJ1dGY4Ijp0aGlzLmZpbGxMYXN0PWFlLGRlPTQ7YnJlYWs7Y2FzZSJiYXNlNjQiOnRo''@;'; + put 'put ''aXMudGV4dD1xLHRoaXMuZW5kPUosZGU9MzticmVhaztkZWZhdWx0OnJldHVybiB0aGlzLndyaXRlPXNlLHZvaWQodGhpcy5lbmQ9b2UpfXRoaXMubGFzdE5lZWQ9MCx0aGlzLmxhc3RUb3RhbD0wLHRoaXMubGFzdENoYXI9bWUuYWxsb2NVbnNhZmUoZGUpfWZ1bmN0aW9uIFEoY2Upe3JldHVy''@;'; + put 'put ''biBjZTw9MTI3PzA6Y2U+PjU9PTY/MjpjZT4+ND09MTQ/MzpjZT4+Mz09MzA/NDpjZT4+Nj09Mj8tMTotMn1mdW5jdGlvbiBhZShjZSl7dmFyIGRlPXRoaXMubGFzdFRvdGFsLXRoaXMubGFzdE5lZWQsdmU9ZnVuY3Rpb24gaWUoY2UsZGUsdmUpe2lmKDEyOCE9KDE5MiZkZVswXSkpcmV0dXJu''@;'; + put 'put ''IGNlLmxhc3ROZWVkPTAsIlx1ZmZmZCI7aWYoY2UubGFzdE5lZWQ+MSYmZGUubGVuZ3RoPjEpe2lmKDEyOCE9KDE5MiZkZVsxXSkpcmV0dXJuIGNlLmxhc3ROZWVkPTEsIlx1ZmZmZCI7aWYoY2UubGFzdE5lZWQ+MiYmZGUubGVuZ3RoPjImJjEyOCE9KDE5MiZkZVsyXSkpcmV0dXJuIGNlLmxh''@;'; + put 'put ''c3ROZWVkPTIsIlx1ZmZmZCJ9fSh0aGlzLGNlKTtyZXR1cm4gdm9pZCAwIT09dmU/dmU6dGhpcy5sYXN0TmVlZDw9Y2UubGVuZ3RoPyhjZS5jb3B5KHRoaXMubGFzdENoYXIsZGUsMCx0aGlzLmxhc3ROZWVkKSx0aGlzLmxhc3RDaGFyLnRvU3RyaW5nKHRoaXMuZW5jb2RpbmcsMCx0aGlzLmxh''@;'; + put 'put ''c3RUb3RhbCkpOihjZS5jb3B5KHRoaXMubGFzdENoYXIsZGUsMCxjZS5sZW5ndGgpLHZvaWQodGhpcy5sYXN0TmVlZC09Y2UubGVuZ3RoKSl9ZnVuY3Rpb24gTihjZSxkZSl7aWYoKGNlLmxlbmd0aC1kZSklMj09MCl7dmFyIHZlPWNlLnRvU3RyaW5nKCJ1dGYxNmxlIixkZSk7aWYodmUpe3Zh''@;'; + put 'put ''ciBBZT12ZS5jaGFyQ29kZUF0KHZlLmxlbmd0aC0xKTtpZihBZT49NTUyOTYmJkFlPD01NjMxOSlyZXR1cm4gdGhpcy5sYXN0TmVlZD0yLHRoaXMubGFzdFRvdGFsPTQsdGhpcy5sYXN0Q2hhclswXT1jZVtjZS5sZW5ndGgtMl0sdGhpcy5sYXN0Q2hhclsxXT1jZVtjZS5sZW5ndGgtMV0sdmUu''@;'; + put 'put ''c2xpY2UoMCwtMSl9cmV0dXJuIHZlfXJldHVybiB0aGlzLmxhc3ROZWVkPTEsdGhpcy5sYXN0VG90YWw9Mix0aGlzLmxhc3RDaGFyWzBdPWNlW2NlLmxlbmd0aC0xXSxjZS50b1N0cmluZygidXRmMTZsZSIsZGUsY2UubGVuZ3RoLTEpfWZ1bmN0aW9uIGVlKGNlKXt2YXIgZGU9Y2UmJmNlLmxl''@;'; + put 'put ''bmd0aD90aGlzLndyaXRlKGNlKToiIjtyZXR1cm4gdGhpcy5sYXN0TmVlZD9kZSt0aGlzLmxhc3RDaGFyLnRvU3RyaW5nKCJ1dGYxNmxlIiwwLHRoaXMubGFzdFRvdGFsLXRoaXMubGFzdE5lZWQpOmRlfWZ1bmN0aW9uIHEoY2UsZGUpe3ZhciB2ZT0oY2UubGVuZ3RoLWRlKSUzO3JldHVybiAw''@;'; + put 'put ''PT09dmU/Y2UudG9TdHJpbmcoImJhc2U2NCIsZGUpOih0aGlzLmxhc3ROZWVkPTMtdmUsdGhpcy5sYXN0VG90YWw9MywxPT09dmU/dGhpcy5sYXN0Q2hhclswXT1jZVtjZS5sZW5ndGgtMV06KHRoaXMubGFzdENoYXJbMF09Y2VbY2UubGVuZ3RoLTJdLHRoaXMubGFzdENoYXJbMV09Y2VbY2Uu''@;'; + put 'put ''bGVuZ3RoLTFdKSxjZS50b1N0cmluZygiYmFzZTY0IixkZSxjZS5sZW5ndGgtdmUpKX1mdW5jdGlvbiBKKGNlKXt2YXIgZGU9Y2UmJmNlLmxlbmd0aD90aGlzLndyaXRlKGNlKToiIjtyZXR1cm4gdGhpcy5sYXN0TmVlZD9kZSt0aGlzLmxhc3RDaGFyLnRvU3RyaW5nKCJiYXNlNjQiLDAsMy10''@;'; + put 'put ''aGlzLmxhc3ROZWVkKTpkZX1mdW5jdGlvbiBzZShjZSl7cmV0dXJuIGNlLnRvU3RyaW5nKHRoaXMuZW5jb2RpbmcpfWZ1bmN0aW9uIG9lKGNlKXtyZXR1cm4gY2UmJmNlLmxlbmd0aD90aGlzLndyaXRlKGNlKToiIn1KZS5zPVUsVS5wcm90b3R5cGUud3JpdGU9ZnVuY3Rpb24oY2Upe2lmKDA9''@;'; + put 'put ''PT1jZS5sZW5ndGgpcmV0dXJuIiI7dmFyIGRlLHZlO2lmKHRoaXMubGFzdE5lZWQpe2lmKHZvaWQgMD09PShkZT10aGlzLmZpbGxMYXN0KGNlKSkpcmV0dXJuIiI7dmU9dGhpcy5sYXN0TmVlZCx0aGlzLmxhc3ROZWVkPTB9ZWxzZSB2ZT0wO3JldHVybiB2ZTxjZS5sZW5ndGg/ZGU/ZGUrdGhp''@;'; + put 'put ''cy50ZXh0KGNlLHZlKTp0aGlzLnRleHQoY2UsdmUpOmRlfHwiIn0sVS5wcm90b3R5cGUuZW5kPWZ1bmN0aW9uIFcoY2Upe3ZhciBkZT1jZSYmY2UubGVuZ3RoP3RoaXMud3JpdGUoY2UpOiIiO3JldHVybiB0aGlzLmxhc3ROZWVkP2RlKyJcdWZmZmQiOmRlfSxVLnByb3RvdHlwZS50ZXh0PWZ1''@;'; + put 'put ''bmN0aW9uIFkoY2UsZGUpe3ZhciB2ZT1mdW5jdGlvbiBaKGNlLGRlLHZlKXt2YXIgQWU9ZGUubGVuZ3RoLTE7aWYoQWU8dmUpcmV0dXJuIDA7dmFyIGtlPVEoZGVbQWVdKTtyZXR1cm4ga2U+PTA/KGtlPjAmJihjZS5sYXN0TmVlZD1rZS0xKSxrZSk6LS1BZTx2ZXx8LTI9PT1rZT8wOihrZT1R''@;'; + put 'put ''KGRlW0FlXSkpPj0wPyhrZT4wJiYoY2UubGFzdE5lZWQ9a2UtMiksa2UpOi0tQWU8dmV8fC0yPT09a2U/MDooa2U9UShkZVtBZV0pKT49MD8oa2U+MCYmKDI9PT1rZT9rZT0wOmNlLmxhc3ROZWVkPWtlLTMpLGtlKTowfSh0aGlzLGNlLGRlKTtpZighdGhpcy5sYXN0TmVlZClyZXR1cm4gY2Uu''@;'; + put 'put ''dG9TdHJpbmcoInV0ZjgiLGRlKTt0aGlzLmxhc3RUb3RhbD12ZTt2YXIgQWU9Y2UubGVuZ3RoLSh2ZS10aGlzLmxhc3ROZWVkKTtyZXR1cm4gY2UuY29weSh0aGlzLmxhc3RDaGFyLDAsQWUpLGNlLnRvU3RyaW5nKCJ1dGY4IixkZSxBZSl9LFUucHJvdG90eXBlLmZpbGxMYXN0PWZ1bmN0aW9u''@;'; + put 'put ''KGNlKXtpZih0aGlzLmxhc3ROZWVkPD1jZS5sZW5ndGgpcmV0dXJuIGNlLmNvcHkodGhpcy5sYXN0Q2hhcix0aGlzLmxhc3RUb3RhbC10aGlzLmxhc3ROZWVkLDAsdGhpcy5sYXN0TmVlZCksdGhpcy5sYXN0Q2hhci50b1N0cmluZyh0aGlzLmVuY29kaW5nLDAsdGhpcy5sYXN0VG90YWwpO2Nl''@;'; + put 'put ''LmNvcHkodGhpcy5sYXN0Q2hhcix0aGlzLmxhc3RUb3RhbC10aGlzLmxhc3ROZWVkLDAsY2UubGVuZ3RoKSx0aGlzLmxhc3ROZWVkLT1jZS5sZW5ndGh9fSwzMDg1ODooWGUsSmUsTCk9Pnt2YXIgbWU9TCg5MzE3MiksQj1tZS5CdWZmZXI7ZnVuY3Rpb24gRShVLFEpe2Zvcih2YXIgWiBpbiBV''@;'; + put 'put ''KVFbWl09VVtaXX1mdW5jdGlvbiBNZShVLFEsWil7cmV0dXJuIEIoVSxRLFopfUIuZnJvbSYmQi5hbGxvYyYmQi5hbGxvY1Vuc2FmZSYmQi5hbGxvY1Vuc2FmZVNsb3c/WGUuZXhwb3J0cz1tZTooRShtZSxKZSksSmUuQnVmZmVyPU1lKSxNZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShCLnBy''@;'; + put 'put ''b3RvdHlwZSksRShCLE1lKSxNZS5mcm9tPWZ1bmN0aW9uKFUsUSxaKXtpZigibnVtYmVyIj09dHlwZW9mIFUpdGhyb3cgbmV3IFR5cGVFcnJvcigiQXJndW1lbnQgbXVzdCBub3QgYmUgYSBudW1iZXIiKTtyZXR1cm4gQihVLFEsWil9LE1lLmFsbG9jPWZ1bmN0aW9uKFUsUSxaKXtpZigibnVt''@;'; + put 'put ''YmVyIiE9dHlwZW9mIFUpdGhyb3cgbmV3IFR5cGVFcnJvcigiQXJndW1lbnQgbXVzdCBiZSBhIG51bWJlciIpO3ZhciBpZT1CKFUpO3JldHVybiB2b2lkIDAhPT1RPyJzdHJpbmciPT10eXBlb2YgWj9pZS5maWxsKFEsWik6aWUuZmlsbChRKTppZS5maWxsKDApLGllfSxNZS5hbGxvY1Vuc2Fm''@;'; + put 'put ''ZT1mdW5jdGlvbihVKXtpZigibnVtYmVyIiE9dHlwZW9mIFUpdGhyb3cgbmV3IFR5cGVFcnJvcigiQXJndW1lbnQgbXVzdCBiZSBhIG51bWJlciIpO3JldHVybiBCKFUpfSxNZS5hbGxvY1Vuc2FmZVNsb3c9ZnVuY3Rpb24oVSl7aWYoIm51bWJlciIhPXR5cGVvZiBVKXRocm93IG5ldyBUeXBl''@;'; + put 'put ''RXJyb3IoIkFyZ3VtZW50IG11c3QgYmUgYSBudW1iZXIiKTtyZXR1cm4gbWUuU2xvd0J1ZmZlcihVKX19LDI0ODc5OihYZSxKZSxMKT0+e3ZhciBtZT1MKDk5NTY1KTtYZS5leHBvcnRzPXtUZXh0RW5jb2RlcjptZS5UZXh0RW5jb2RlcixUZXh0RGVjb2RlcjptZS5UZXh0RGVjb2Rlcn19LDg2''@;'; + put 'put ''Mzg5OmZ1bmN0aW9uKFhlKXshZnVuY3Rpb24oSmUpeyJ1c2Ugc3RyaWN0IjtYZS5leHBvcnRzJiYoWGUuZXhwb3J0cz1KZSksSmVbImVuY29kaW5nLWluZGV4ZXMiXT17YmlnNTpbbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsMTczOTIsMTk1MDYsMTc5MjMsMTc4MzAsMTc3ODQsMTYwMzU5LDE5ODMxLDE3ODQzLDE2Mjk5MywxOTY4MiwxNjMwMTMsMTUyNTMsMTgyMzAsMTgyNDQsMTk1MjcsMTk1MjAsMTQ4MTU5LDE0NDkxOSwxNjA1OTQsMTU5MzcxLDE1OTk1NCwxOTU0''@;'; + put 'put ''MywxNzI4ODEsMTgyNTUsMTc4ODIsMTk1ODksMTYyOTI0LDE5NzE5LDE5MTA4LDE4MDgxLDE1ODQ5OSwyOTIyMSwxNTQxOTYsMTM3ODI3LDE0Njk1MCwxNDcyOTcsMjYxODksMjIyNjcsbnVsbCwzMjE0OSwyMjgxMywxNjY4NDEsMTU4NjAsMzg3MDgsMTYyNzk5LDIzNTE1LDEzODU5MCwyMzIw''@;'; + put 'put ''NCwxMzg2MSwxNzE2OTYsMjMyNDksMjM0NzksMjM4MDQsMjY0NzgsMzQxOTUsMTcwMzA5LDI5NzkzLDI5ODUzLDE0NDUzLDEzODU3OSwxNDUwNTQsMTU1NjgxLDE2MTA4LDE1MzgyMiwxNTA5MywzMTQ4NCw0MDg1NSwxNDc4MDksMTY2MTU3LDE0Mzg1MCwxMzM3NzAsMTQzOTY2LDE3MTYyLDMz''@;'; + put 'put ''OTI0LDQwODU0LDM3OTM1LDE4NzM2LDM0MzIzLDIyNjc4LDM4NzMwLDM3NDAwLDMxMTg0LDMxMjgyLDI2MjA4LDI3MTc3LDM0OTczLDI5NzcyLDMxNjg1LDI2NDk4LDMxMjc2LDIxMDcxLDM2OTM0LDEzNTQyLDI5NjM2LDE1NTA2NSwyOTg5NCw0MDkwMywyMjQ1MSwxODczNSwyMTU4MCwxNjY4''@;'; + put 'put ''OSwxNDUwMzgsMjI1NTIsMzEzNDYsMTYyNjYxLDM1NzI3LDE4MDk0LDE1OTM2OCwxNjc2OSwxNTUwMzMsMzE2NjIsMTQwNDc2LDQwOTA0LDE0MDQ4MSwxNDA0ODksMTQwNDkyLDQwOTA1LDM0MDUyLDE0NDgyNywxNjU2NCw0MDkwNiwxNzYzMywxNzU2MTUsMjUyODEsMjg3ODIsNDA5MDcsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwxMjczNiwxMjczNywx''@;'; + put 'put ''MjczOCwxMjczOSwxMjc0MCwxMzEzNDAsMTI3NDEsMTMxMjgxLDEzMTI3NywxMjc0MiwxMjc0MywxMzEyNzUsMTM5MjQwLDEyNzQ0LDEzMTI3NCwxMjc0NSwxMjc0NiwxMjc0NywxMjc0OCwxMzEzNDIsMTI3NDksMTI3NTAsMjU2LDE5Myw0NjEsMTkyLDI3NCwyMDEsMjgyLDIwMCwzMzIsMjEx''@;'; + put 'put ''LDQ2NSwyMTAsbnVsbCw3ODcwLG51bGwsNzg3MiwyMDIsMjU3LDIyNSw0NjIsMjI0LDU5MywyNzUsMjMzLDI4MywyMzIsMjk5LDIzNyw0NjQsMjM2LDMzMywyNDMsNDY2LDI0MiwzNjMsMjUwLDQ2OCwyNDksNDcwLDQ3Miw0NzQsNDc2LDI1MixudWxsLDc4NzEsbnVsbCw3ODczLDIzNCw2MDks''@;'; + put 'put ''OTE3OCw5MTc5LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDE3Mjk2OSwxMzU0OTMsbnVsbCwyNTg2NixudWxsLG51bGwsMjAwMjksMjgzODEsNDAyNzAsMzczNDMsbnVsbCxu''@;'; + put 'put ''dWxsLDE2MTU4OSwyNTc0NSwyMDI1MCwyMDI2NCwyMDM5MiwyMDgyMiwyMDg1MiwyMDg5MiwyMDk2NCwyMTE1MywyMTE2MCwyMTMwNywyMTMyNiwyMTQ1NywyMTQ2NCwyMjI0MiwyMjc2OCwyMjc4OCwyMjc5MSwyMjgzNCwyMjgzNiwyMzM5OCwyMzQ1NCwyMzQ1NSwyMzcwNiwyNDE5OCwyNDYz''@;'; + put 'put ''NSwyNTk5MywyNjYyMiwyNjYyOCwyNjcyNSwyNzk4MiwyODg2MCwzMDAwNSwzMjQyMCwzMjQyOCwzMjQ0MiwzMjQ1NSwzMjQ2MywzMjQ3OSwzMjUxOCwzMjU2NywzMzQwMiwzMzQ4NywzMzY0NywzNTI3MCwzNTc3NCwzNTgxMCwzNjcxMCwzNjcxMSwzNjcxOCwyOTcxMywzMTk5NiwzMjIwNSwy''@;'; + put 'put ''Njk1MCwzMTQzMywyMTAzMSxudWxsLG51bGwsbnVsbCxudWxsLDM3MjYwLDMwOTA0LDM3MjE0LDMyOTU2LG51bGwsMzYxMDcsMzMwMTQsMTMzNjA3LG51bGwsbnVsbCwzMjkyNyw0MDY0NywxOTY2MSw0MDM5Myw0MDQ2MCwxOTUxOCwxNzE1MTAsMTU5NzU4LDQwNDU4LDE3MjMzOSwxMzc2MSxu''@;'; + put 'put ''dWxsLDI4MzE0LDMzMzQyLDI5OTc3LG51bGwsMTg3MDUsMzk1MzIsMzk1NjcsNDA4NTcsMzExMTEsMTY0OTcyLDEzODY5OCwxMzI1NjAsMTQyMDU0LDIwMDA0LDIwMDk3LDIwMDk2LDIwMTAzLDIwMTU5LDIwMjAzLDIwMjc5LDEzMzg4LDIwNDEzLDE1OTQ0LDIwNDgzLDIwNjE2LDEzNDM3LDEz''@;'; + put 'put ''NDU5LDEzNDc3LDIwODcwLDIyNzg5LDIwOTU1LDIwOTg4LDIwOTk3LDIwMTA1LDIxMTEzLDIxMTM2LDIxMjg3LDEzNzY3LDIxNDE3LDEzNjQ5LDIxNDI0LDEzNjUxLDIxNDQyLDIxNTM5LDEzNjc3LDEzNjgyLDEzOTUzLDIxNjUxLDIxNjY3LDIxNjg0LDIxNjg5LDIxNzEyLDIxNzQzLDIxNzg0''@;'; + put 'put ''LDIxNzk1LDIxODAwLDEzNzIwLDIxODIzLDEzNzMzLDEzNzU5LDIxOTc1LDEzNzY1LDE2MzIwNCwyMTc5NyxudWxsLDEzNDIxMCwxMzQ0MjEsMTUxODUxLDIxOTA0LDE0MjUzNCwxNDgyOCwxMzE5MDUsMzY0MjIsMTUwOTY4LDE2OTE4OSwxNjQ2NywxNjQwMzAsMzA1ODYsMTQyMzkyLDE0OTAw''@;'; + put 'put ''LDE4Mzg5LDE2NDE4OSwxNTgxOTQsMTUxMDE4LDI1ODIxLDEzNDUyNCwxMzUwOTIsMTM0MzU3LDEzNTQxMiwyNTc0MSwzNjQ3OCwxMzQ4MDYsMTM0MTU1LDEzNTAxMiwxNDI1MDUsMTY0NDM4LDE0ODY5MSxudWxsLDEzNDQ3MCwxNzA1NzMsMTY0MDczLDE4NDIwLDE1MTIwNywxNDI1MzAsMzk2''@;'; + put 'put ''MDIsMTQ5NTEsMTY5NDYwLDE2MzY1LDEzNTc0LDE1MjI2MywxNjk5NDAsMTYxOTkyLDE0MjY2MCw0MDMwMiwzODkzMyxudWxsLDE3MzY5LDE1NTgxMywyNTc4MCwyMTczMSwxNDI2NjgsMTQyMjgyLDEzNTI4NywxNDg0MywxMzUyNzksMTU3NDAyLDE1NzQ2MiwxNjIyMDgsMjU4MzQsMTUxNjM0''@;'; + put 'put ''LDEzNDIxMSwzNjQ1NiwxMzk2ODEsMTY2NzMyLDEzMjkxMyxudWxsLDE4NDQzLDEzMTQ5NywxNjM3OCwyMjY0MywxNDI3MzMsbnVsbCwxNDg5MzYsMTMyMzQ4LDE1NTc5OSwxMzQ5ODgsMTM0NTUwLDIxODgxLDE2NTcxLDE3MzM4LG51bGwsMTkxMjQsMTQxOTI2LDEzNTMyNSwzMzE5NCwzOTE1''@;'; + put 'put ''NywxMzQ1NTYsMjU0NjUsMTQ4NDYsMTQxMTczLDM2Mjg4LDIyMTc3LDI1NzI0LDE1OTM5LG51bGwsMTczNTY5LDEzNDY2NSwxNDIwMzEsMTQyNTM3LG51bGwsMTM1MzY4LDE0NTg1OCwxNDczOCwxNDg1NCwxNjQ1MDcsMTM2ODgsMTU1MjA5LDEzOTQ2MywyMjA5OCwxMzQ5NjEsMTQyNTE0LDE2''@;'; + put 'put ''OTc2MCwxMzUwMCwyNzcwOSwxNTEwOTksbnVsbCxudWxsLDE2MTE0MCwxNDI5ODcsMTM5Nzg0LDE3MzY1OSwxNjcxMTcsMTM0Nzc4LDEzNDE5NiwxNTc3MjQsMzI2NTksMTM1Mzc1LDE0MTMxNSwxNDE2MjUsMTM4MTksMTUyMDM1LDEzNDc5NiwxMzUwNTMsMTM0ODI2LDE2Mjc1LDEzNDk2MCwx''@;'; + put 'put ''MzQ0NzEsMTM1NTAzLDEzNDczMixudWxsLDEzNDgyNywxMzQwNTcsMTM0NDcyLDEzNTM2MCwxMzU0ODUsMTYzNzcsMTQwOTUwLDI1NjUwLDEzNTA4NSwxNDQzNzIsMTYxMzM3LDE0MjI4NiwxMzQ1MjYsMTM0NTI3LDE0MjQxNywxNDI0MjEsMTQ4NzIsMTM0ODA4LDEzNTM2NywxMzQ5NTgsMTcz''@;'; + put 'put ''NjE4LDE1ODU0NCwxNjcxMjIsMTY3MzIxLDE2NzExNCwzODMxNCwyMTcwOCwzMzQ3NiwyMTk0NSxudWxsLDE3MTcxNSwzOTk3NCwzOTYwNiwxNjE2MzAsMTQyODMwLDI4OTkyLDMzMTMzLDMzMDA0LDIzNTgwLDE1NzA0MiwzMzA3NiwxNDIzMSwyMTM0MywxNjQwMjksMzczMDIsMTM0OTA2LDEz''@;'; + put 'put ''NDY3MSwxMzQ3NzUsMTM0OTA3LDEzNzg5LDE1MTAxOSwxMzgzMywxMzQzNTgsMjIxOTEsMTQxMjM3LDEzNTM2OSwxMzQ2NzIsMTM0Nzc2LDEzNTI4OCwxMzU0OTYsMTY0MzU5LDEzNjI3NywxMzQ3NzcsMTUxMTIwLDE0Mjc1NiwyMzEyNCwxMzUxOTcsMTM1MTk4LDEzNTQxMywxMzU0MTQsMjI0''@;'; + put 'put ''MjgsMTM0NjczLDE2MTQyOCwxNjQ1NTcsMTM1MDkzLDEzNDc3OSwxNTE5MzQsMTQwODMsMTM1MDk0LDEzNTU1MiwxNTIyODAsMTcyNzMzLDE0OTk3OCwxMzcyNzQsMTQ3ODMxLDE2NDQ3NiwyMjY4MSwyMTA5NiwxMzg1MCwxNTM0MDUsMzE2NjYsMjM0MDAsMTg0MzIsMTkyNDQsNDA3NDMsMTg5''@;'; + put 'put ''MTksMzk5NjcsMzk4MjEsMTU0NDg0LDE0MzY3NywyMjAxMSwxMzgxMCwyMjE1MywyMDAwOCwyMjc4NiwxMzgxNzcsMTk0NjgwLDM4NzM3LDEzMTIwNiwyMDA1OSwyMDE1NSwxMzYzMCwyMzU4NywyNDQwMSwyNDUxNiwxNDU4NiwyNTE2NCwyNTkwOSwyNzUxNCwyNzcwMSwyNzcwNiwyODc4MCwy''@;'; + put 'put ''OTIyNywyMDAxMiwyOTM1NywxNDk3MzcsMzI1OTQsMzEwMzUsMzE5OTMsMzI1OTUsMTU2MjY2LDEzNTA1LG51bGwsMTU2NDkxLDMyNzcwLDMyODk2LDE1NzIwMiwxNTgwMzMsMjEzNDEsMzQ5MTYsMzUyNjUsMTYxOTcwLDM1NzQ0LDM2MTI1LDM4MDIxLDM4MjY0LDM4MjcxLDM4Mzc2LDE2NzQz''@;'; + put 'put ''OSwzODg4NiwzOTAyOSwzOTExOCwzOTEzNCwzOTI2NywxN2U0LDQwMDYwLDQwNDc5LDQwNjQ0LDI3NTAzLDYzNzUxLDIwMDIzLDEzMTIwNywzODQyOSwyNTE0MywzODA1MCxudWxsLDIwNTM5LDI4MTU4LDE3MTEyMyw0MDg3MCwxNTgxNywzNDk1OSwxNDc3OTAsMjg3OTEsMjM3OTcsMTkyMzIs''@;'; + put 'put ''MTUyMDEzLDEzNjU3LDE1NDkyOCwyNDg2NiwxNjY0NTAsMzY3NzUsMzczNjYsMjkwNzMsMjYzOTMsMjk2MjYsMTQ0MDAxLDE3MjI5NSwxNTQ5OSwxMzc2MDAsMTkyMTYsMzA5NDgsMjk2OTgsMjA5MTAsMTY1NjQ3LDE2MzkzLDI3MjM1LDE3MjczMCwxNjkzMSwzNDMxOSwxMzM3NDMsMzEyNzQs''@;'; + put 'put ''MTcwMzExLDE2NjYzNCwzODc0MSwyODc0OSwyMTI4NCwxMzkzOTAsMzc4NzYsMzA0MjUsMTY2MzcxLDQwODcxLDMwNjg1LDIwMTMxLDIwNDY0LDIwNjY4LDIwMDE1LDIwMjQ3LDQwODcyLDIxNTU2LDMyMTM5LDIyNjc0LDIyNzM2LDEzODY3OCwyNDIxMCwyNDIxNywyNDUxNCwxNDEwNzQsMjU5''@;'; + put 'put ''OTUsMTQ0Mzc3LDI2OTA1LDI3MjAzLDE0NjUzMSwyNzkwMyxudWxsLDI5MTg0LDE0ODc0MSwyOTU4MCwxNjA5MSwxNTAwMzUsMjMzMTcsMjk4ODEsMzU3MTUsMTU0Nzg4LDE1MzIzNywzMTM3OSwzMTcyNCwzMTkzOSwzMjM2NCwzMzUyOCwzNDE5OSw0MDg3MywzNDk2MCw0MDg3NCwzNjUzNyw0''@;'; + put 'put ''MDg3NSwzNjgxNSwzNDE0MywzOTM5MiwzNzQwOSw0MDg3NiwxNjczNTMsMTM2MjU1LDE2NDk3LDE3MDU4LDIzMDY2LG51bGwsbnVsbCxudWxsLDM5MDE2LDI2NDc1LDE3MDE0LDIyMzMzLG51bGwsMzQyNjIsMTQ5ODgzLDMzNDcxLDE2MDAxMywxOTU4NSwxNTkwOTIsMjM5MzEsMTU4NDg1LDE1''@;'; + put 'put ''OTY3OCw0MDg3Nyw0MDg3OCwyMzQ0Niw0MDg3OSwyNjM0MywzMjM0NywyODI0NywzMTE3OCwxNTc1MiwxNzYwMywxNDM5NTgsMTQxMjA2LDE3MzA2LDE3NzE4LG51bGwsMjM3NjUsMTQ2MjAyLDM1NTc3LDIzNjcyLDE1NjM0LDE0NDcyMSwyMzkyOCw0MDg4MiwyOTAxNSwxNzc1MiwxNDc2OTIs''@;'; + put 'put ''MTM4Nzg3LDE5NTc1LDE0NzEyLDEzMzg2LDEzMTQ5MiwxNTg3ODUsMzU1MzIsMjA0MDQsMTMxNjQxLDIyOTc1LDMzMTMyLDM4OTk4LDE3MDIzNCwyNDM3OSwxMzQwNDcsbnVsbCwxMzk3MTMsMTY2MjUzLDE2NjQyLDE4MTA3LDE2ODA1NywxNjEzNSw0MDg4MywxNzI0NjksMTY2MzIsMTQyOTQs''@;'; + put 'put ''MTgxNjcsMTU4NzkwLDE2NzY0LDE2NTU1NCwxNjA3NjcsMTc3NzMsMTQ1NDgsMTUyNzMwLDE3NzYxLDE3NjkxLDE5ODQ5LDE5NTc5LDE5ODMwLDE3ODk4LDE2MzI4LDE1MDI4NywxMzkyMSwxNzYzMCwxNzU5NywxNjg3NywyMzg3MCwyMzg4MCwyMzg5NCwxNTg2OCwxNDM1MSwyMzk3MiwyMzk5''@;'; + put 'put ''MywxNDM2OCwxNDM5MiwyNDEzMCwyNDI1MywyNDM1NywyNDQ1MSwxNDYwMCwxNDYxMiwxNDY1NSwxNDY2OSwyNDc5MSwyNDg5MywyMzc4MSwxNDcyOSwyNTAxNSwyNTAxNywyNTAzOSwxNDc3NiwyNTEzMiwyNTIzMiwyNTMxNywyNTM2OCwxNDg0MCwyMjE5MywxNDg1MSwyNTU3MCwyNTU5NSwy''@;'; + put 'put ''NTYwNywyNTY5MCwxNDkyMywyNTc5MiwyMzgyOSwyMjA0OSw0MDg2MywxNDk5OSwyNTk5MCwxNTAzNywyNjExMSwyNjE5NSwxNTA5MCwyNjI1OCwxNTEzOCwyNjM5MCwxNTE3MCwyNjUzMiwyNjYyNCwxNTE5MiwyNjY5OCwyNjc1NiwxNTIxOCwxNTIxNywxNTIyNywyNjg4OSwyNjk0NywyOTI3''@;'; + put 'put ''NiwyNjk4MCwyNzAzOSwyNzAxMywxNTI5MiwyNzA5NCwxNTMyNSwyNzIzNywyNzI1MiwyNzI0OSwyNzI2NiwxNTM0MCwyNzI4OSwxNTM0NiwyNzMwNywyNzMxNywyNzM0OCwyNzM4MiwyNzUyMSwyNzU4NSwyNzYyNiwyNzc2NSwyNzgxOCwxNTU2MywyNzkwNiwyNzkxMCwyNzk0MiwyODAzMywx''@;'; + put 'put ''NTU5OSwyODA2OCwyODA4MSwyODE4MSwyODE4NCwyODIwMSwyODI5NCwxNjYzMzYsMjgzNDcsMjgzODYsMjgzNzgsNDA4MzEsMjgzOTIsMjgzOTMsMjg0NTIsMjg0NjgsMTU2ODYsMTQ3MjY1LDI4NTQ1LDI4NjA2LDE1NzIyLDE1NzMzLDI5MTExLDIzNzA1LDE1NzU0LDI4NzE2LDE1NzYxLDI4''@;'; + put 'put ''NzUyLDI4NzU2LDI4NzgzLDI4Nzk5LDI4ODA5LDEzMTg3NywxNzM0NSwxMzgwOSwxMzQ4NzIsMTQ3MTU5LDIyNDYyLDE1OTQ0MywyODk5MCwxNTM1NjgsMTM5MDIsMjcwNDIsMTY2ODg5LDIzNDEyLDMxMzA1LDE1MzgyNSwxNjkxNzcsMzEzMzMsMzEzNTcsMTU0MDI4LDMxNDE5LDMxNDA4LDMx''@;'; + put 'put ''NDI2LDMxNDI3LDI5MTM3LDE1NjgxMywxNjg0MiwzMTQ1MCwzMTQ1MywzMTQ2NiwxNjg3OSwyMTY4MiwxNTQ2MjUsMzE0OTksMzE1NzMsMzE1MjksMTUyMzM0LDE1NDg3OCwzMTY1MCwzMTU5OSwzMzY5MiwxNTQ1NDgsMTU4ODQ3LDMxNjk2LDMzODI1LDMxNjM0LDMxNjcyLDE1NDkxMiwxNTc4''@;'; + put 'put ''OSwxNTQ3MjUsMzM5MzgsMzE3MzgsMzE3NTAsMzE3OTcsMTU0ODE3LDMxODEyLDMxODc1LDE0OTYzNCwzMTkxMCwyNjIzNywxNDg4NTYsMzE5NDUsMzE5NDMsMzE5NzQsMzE4NjAsMzE5ODcsMzE5ODksMzE5NTAsMzIzNTksMTc2OTMsMTU5MzAwLDMyMDkzLDE1OTQ0NiwyOTgzNywzMjEzNywz''@;'; + put 'put ''MjE3MSwyODk4MSwzMjE3OSwzMjIxMCwxNDc1NDMsMTU1Njg5LDMyMjI4LDE1NjM1LDMyMjQ1LDEzNzIwOSwzMjIyOSwxNjQ3MTcsMzIyODUsMTU1OTM3LDE1NTk5NCwzMjM2NiwzMjQwMiwxNzE5NSwzNzk5NiwzMjI5NSwzMjU3NiwzMjU3NywzMjU4MywzMTAzMCwxNTYzNjgsMzkzOTMsMzI2''@;'; + put 'put ''NjMsMTU2NDk3LDMyNjc1LDEzNjgwMSwxMzExNzYsMTc3NTYsMTQ1MjU0LDE3NjY3LDE2NDY2NiwzMjc2MiwxNTY4MDksMzI3NzMsMzI3NzYsMzI3OTcsMzI4MDgsMzI4MTUsMTcyMTY3LDE1ODkxNSwzMjgyNywzMjgyOCwzMjg2NSwxNDEwNzYsMTg4MjUsMTU3MjIyLDE0NjkxNSwxNTc0MTYs''@;'; + put 'put ''MjY0MDUsMzI5MzUsMTY2NDcyLDMzMDMxLDMzMDUwLDIyNzA0LDE0MTA0NiwyNzc3NSwxNTY4MjQsMTUxNDgwLDI1ODMxLDEzNjMzMCwzMzMwNCwxMzczMTAsMjcyMTksMTUwMTE3LDE1MDE2NSwxNzUzMCwzMzMyMSwxMzM5MDEsMTU4MjkwLDE0NjgxNCwyMDQ3MywxMzY0NDUsMzQwMTgsMzM2''@;'; + put 'put ''MzQsMTU4NDc0LDE0OTkyNywxNDQ2ODgsMTM3MDc1LDE0NjkzNiwzMzQ1MCwyNjkwNywxOTQ5NjQsMTY4NTksMzQxMjMsMzM0ODgsMzM1NjIsMTM0Njc4LDEzNzE0MCwxNDAxNywxNDM3NDEsMTQ0NzMwLDMzNDAzLDMzNTA2LDMzNTYwLDE0NzA4MywxNTkxMzksMTU4NDY5LDE1ODYxNSwxNDQ4''@;'; + put 'put ''NDYsMTU4MDcsMzM1NjUsMjE5OTYsMzM2NjksMTc2NzUsMTU5MTQxLDMzNzA4LDMzNzI5LDMzNzQ3LDEzNDM4LDE1OTQ0NCwyNzIyMywzNDEzOCwxMzQ2MiwxNTkyOTgsMTQzMDg3LDMzODgwLDE1NDU5NiwzMzkwNSwxNTgyNywxNzYzNiwyNzMwMywzMzg2NiwxNDY2MTMsMzEwNjQsMzM5NjAs''@;'; + put 'put ''MTU4NjE0LDE1OTM1MSwxNTkyOTksMzQwMTQsMzM4MDcsMzM2ODEsMTc1NjgsMzM5MzksMzQwMjAsMTU0NzY5LDE2OTYwLDE1NDgxNiwxNzczMSwzNDEwMCwyMzI4MiwxNTkzODUsMTc3MDMsMzQxNjMsMTc2ODYsMjY1NTksMzQzMjYsMTY1NDEzLDE2NTQzNSwzNDI0MSwxNTk4ODAsMzQzMDYs''@;'; + put 'put ''MTM2NTc4LDE1OTk0OSwxOTQ5OTQsMTc3NzAsMzQzNDQsMTM4OTYsMTM3Mzc4LDIxNDk1LDE2MDY2NiwzNDQzMCwzNDY3MywxNzIyODAsMzQ3OTgsMTQyMzc1LDM0NzM3LDM0Nzc4LDM0ODMxLDIyMTEzLDM0NDEyLDI2NzEwLDE3OTM1LDM0ODg1LDM0ODg2LDE2MTI0OCwxNDY4NzMsMTYxMjUy''@;'; + put 'put ''LDM0OTEwLDM0OTcyLDE4MDExLDM0OTk2LDM0OTk3LDI1NTM3LDM1MDEzLDMwNTgzLDE2MTU1MSwzNTIwNywzNTIxMCwzNTIzOCwzNTI0MSwzNTIzOSwzNTI2MCwxNjY0MzcsMzUzMDMsMTYyMDg0LDE2MjQ5MywzNTQ4NCwzMDYxMSwzNzM3NCwzNTQ3MiwxNjIzOTMsMzE0NjUsMTYyNjE4LDE0''@;'; + put 'put ''NzM0MywxODE5NSwxNjI2MTYsMjkwNTIsMzU1OTYsMzU2MTUsMTUyNjI0LDE1MjkzMywzNTY0NywzNTY2MCwzNTY2MSwzNTQ5NywxNTAxMzgsMzU3MjgsMzU3MzksMzU1MDMsMTM2OTI3LDE3OTQxLDM0ODk1LDM1OTk1LDE2MzE1NiwxNjMyMTUsMTk1MDI4LDE0MTE3LDE2MzE1NSwzNjA1NCwx''@;'; + put 'put ''NjMyMjQsMTYzMjYxLDM2MTE0LDM2MDk5LDEzNzQ4OCwzNjA1OSwyODc2NCwzNjExMywxNTA3MjksMTYwODAsMzYyMTUsMzYyNjUsMTYzODQyLDEzNTE4OCwxNDk4OTgsMTUyMjgsMTY0Mjg0LDE2MDAxMiwzMTQ2MywzNjUyNSwzNjUzNCwzNjU0NywzNzU4OCwzNjYzMywzNjY1MywxNjQ3MDks''@;'; + put 'put ''MTY0ODgyLDM2NzczLDM3NjM1LDE3MjcwMywxMzM3MTIsMzY3ODcsMTg3MzAsMTY2MzY2LDE2NTE4MSwxNDY4NzUsMjQzMTIsMTQzOTcwLDM2ODU3LDE3MjA1MiwxNjU1NjQsMTY1MTIxLDE0MDA2OSwxNDcyMCwxNTk0NDcsMzY5MTksMTY1MTgwLDE2MjQ5NCwzNjk2MSwxNjUyMjgsMTY1Mzg3''@;'; + put 'put ''LDM3MDMyLDE2NTY1MSwzNzA2MCwxNjU2MDYsMzcwMzgsMzcxMTcsMzcyMjMsMTUwODgsMzcyODksMzczMTYsMzE5MTYsMTY2MTk1LDEzODg4OSwzNzM5MCwyNzgwNywzNzQ0MSwzNzQ3NCwxNTMwMTcsMzc1NjEsMTY2NTk4LDE0NjU4NywxNjY2NjgsMTUzMDUxLDEzNDQ0OSwzNzY3NiwzNzcz''@;'; + put 'put ''OSwxNjY2MjUsMTY2ODkxLDI4ODE1LDIzMjM1LDE2NjYyNiwxNjY2MjksMTg3ODksMzc0NDQsMTY2ODkyLDE2Njk2OSwxNjY5MTEsMzc3NDcsMzc5NzksMzY1NDAsMzgyNzcsMzgzMTAsMzc5MjYsMzgzMDQsMjg2NjIsMTcwODEsMTQwOTIyLDE2NTU5MiwxMzU4MDQsMTQ2OTkwLDE4OTExLDI3''@;'; + put 'put ''Njc2LDM4NTIzLDM4NTUwLDE2NzQ4LDM4NTYzLDE1OTQ0NSwyNTA1MCwzODU4MiwzMDk2NSwxNjY2MjQsMzg1ODksMjE0NTIsMTg4NDksMTU4OTA0LDEzMTcwMCwxNTY2ODgsMTY4MTExLDE2ODE2NSwxNTAyMjUsMTM3NDkzLDE0NDEzOCwzODcwNSwzNDM3MCwzODcxMCwxODk1OSwxNzcyNSwx''@;'; + put 'put ''Nzc5NywxNTAyNDksMjg3ODksMjMzNjEsMzg2ODMsMzg3NDgsMTY4NDA1LDM4NzQzLDIzMzcwLDE2ODQyNywzODc1MSwzNzkyNSwyMDY4OCwxNDM1NDMsMTQzNTQ4LDM4NzkzLDM4ODE1LDM4ODMzLDM4ODQ2LDM4ODQ4LDM4ODY2LDM4ODgwLDE1MjY4NCwzODg5NCwyOTcyNCwxNjkwMTEsMzg5''@;'; + put 'put ''MTEsMzg5MDEsMTY4OTg5LDE2MjE3MCwxOTE1MywzODk2NCwzODk2MywzODk4NywzOTAxNCwxNTExOCwxNjAxMTcsMTU2OTcsMTMyNjU2LDE0NzgwNCwxNTMzNTAsMzkxMTQsMzkwOTUsMzkxMTIsMzkxMTEsMTkxOTksMTU5MDE1LDEzNjkxNSwyMTkzNiwzOTEzNywzOTE0MiwzOTE0OCwzNzc1''@;'; + put 'put ''MiwzOTIyNSwxNTAwNTcsMTkzMTQsMTcwMDcxLDE3MDI0NSwzOTQxMywzOTQzNiwzOTQ4MywzOTQ0MCwzOTUxMiwxNTMzODEsMTQwMjAsMTY4MTEzLDE3MDk2NSwzOTY0OCwzOTY1MCwxNzA3NTcsMzk2NjgsMTk0NzAsMzk3MDAsMzk3MjUsMTY1Mzc2LDIwNTMyLDM5NzMyLDE1ODEyMCwxNDUz''@;'; + put 'put ''MSwxNDM0ODUsMzk3NjAsMzk3NDQsMTcxMzI2LDIzMTA5LDEzNzMxNSwzOTgyMiwxNDgwNDMsMzk5MzgsMzk5MzUsMzk5NDgsMTcxNjI0LDQwNDA0LDE3MTk1OSwxNzI0MzQsMTcyNDU5LDE3MjI1NywxNzIzMjMsMTcyNTExLDQwMzE4LDQwMzIzLDE3MjM0MCw0MDQ2MiwyNjc2MCw0MDM4OCwx''@;'; + put 'put ''Mzk2MTEsMTcyNDM1LDE3MjU3NiwxMzc1MzEsMTcyNTk1LDQwMjQ5LDE3MjIxNywxNzI3MjQsNDA1OTIsNDA1OTcsNDA2MDYsNDA2MTAsMTk3NjQsNDA2MTgsNDA2MjMsMTQ4MzI0LDQwNjQxLDE1MjAwLDE0ODIxLDE1NjQ1LDIwMjc0LDE0MjcwLDE2Njk1NSw0MDcwNiw0MDcxMiwxOTM1MCwz''@;'; + put 'put ''NzkyNCwxNTkxMzgsNDA3MjcsNDA3MjYsNDA3NjEsMjIxNzUsMjIxNTQsNDA3NzMsMzkzNTIsMTY4MDc1LDM4ODk4LDMzOTE5LDQwODAyLDQwODA5LDMxNDUyLDQwODQ2LDI5MjA2LDE5MzkwLDE0OTg3NywxNDk5NDcsMjkwNDcsMTUwMDA4LDE0ODI5NiwxNTAwOTcsMjk1OTgsMTY2ODc0LDEz''@;'; + put 'put ''NzQ2NiwzMTEzNSwxNjYyNzAsMTY3NDc4LDM3NzM3LDM3ODc1LDE2NjQ2OCwzNzYxMiwzNzc2MSwzNzgzNSwxNjYyNTIsMTQ4NjY1LDI5MjA3LDE2MTA3LDMwNTc4LDMxMjk5LDI4ODgwLDE0ODU5NSwxNDg0NzIsMjkwNTQsMTM3MTk5LDI4ODM1LDEzNzQwNiwxNDQ3OTMsMTYwNzEsMTM3MzQ5''@;'; + put 'put ''LDE1MjYyMywxMzcyMDgsMTQxMTQsMTM2OTU1LDEzNzI3MywxNDA0OSwxMzcwNzYsMTM3NDI1LDE1NTQ2NywxNDExNSwxMzY4OTYsMjIzNjMsMTUwMDUzLDEzNjE5MCwxMzU4NDgsMTM2MTM0LDEzNjM3NCwzNDA1MSwxNDUwNjIsMzQwNTEsMzM4NzcsMTQ5OTA4LDE2MDEwMSwxNDY5OTMsMTUy''@;'; + put 'put ''OTI0LDE0NzE5NSwxNTk4MjYsMTc2NTIsMTQ1MTM0LDE3MDM5NywxNTk1MjYsMjY2MTcsMTQxMzEsMTUzODEsMTU4NDcsMjI2MzYsMTM3NTA2LDI2NjQwLDE2NDcxLDE0NTIxNSwxNDc2ODEsMTQ3NTk1LDE0NzcyNywxNTg3NTMsMjE3MDcsMjIxNzQsMTU3MzYxLDIyMTYyLDEzNTEzNSwxMzQw''@;'; + put 'put ''NTYsMTM0NjY5LDM3ODMwLDE2NjY3NSwzNzc4OCwyMDIxNiwyMDc3OSwxNDM2MSwxNDg1MzQsMjAxNTYsMTMyMTk3LDEzMTk2NywyMDI5OSwyMDM2MiwxNTMxNjksMjMxNDQsMTMxNDk5LDEzMjA0MywxNDc0NSwxMzE4NTAsMTMyMTE2LDEzMzY1LDIwMjY1LDEzMTc3NiwxNjc2MDMsMTMxNzAx''@;'; + put 'put ''LDM1NTQ2LDEzMTU5NiwyMDEyMCwyMDY4NSwyMDc0OSwyMDM4NiwyMDIyNywxNTAwMzAsMTQ3MDgyLDIwMjkwLDIwNTI2LDIwNTg4LDIwNjA5LDIwNDI4LDIwNDUzLDIwNTY4LDIwNzMyLDIwODI1LDIwODI3LDIwODI5LDIwODMwLDI4Mjc4LDE0NDc4OSwxNDcwMDEsMTQ3MTM1LDI4MDE4LDEz''@;'; + put 'put ''NzM0OCwxNDcwODEsMjA5MDQsMjA5MzEsMTMyNTc2LDE3NjI5LDEzMjI1OSwxMzIyNDIsMTMyMjQxLDM2MjE4LDE2NjU1NiwxMzI4NzgsMjEwODEsMjExNTYsMTMzMjM1LDIxMjE3LDM3NzQyLDE4MDQyLDI5MDY4LDE0ODM2NCwxMzQxNzYsMTQ5OTMyLDEzNTM5NiwyNzA4OSwxMzQ2ODUsMjk4''@;'; + put 'put ''MTcsMTYwOTQsMjk4NDksMjk3MTYsMjk3ODIsMjk1OTIsMTkzNDIsMTUwMjA0LDE0NzU5NywyMTQ1NiwxMzcwMCwyOTE5OSwxNDc2NTcsMjE5NDAsMTMxOTA5LDIxNzA5LDEzNDA4NiwyMjMwMSwzNzQ2OSwzODY0NCwzNzczNCwyMjQ5MywyMjQxMywyMjM5OSwxMzg4NiwyMjczMSwyMzE5Mywx''@;'; + put 'put ''NjY0NzAsMTM2OTU0LDEzNzA3MSwxMzY5NzYsMjMwODQsMjI5NjgsMzc1MTksMjMxNjYsMjMyNDcsMjMwNTgsMTUzOTI2LDEzNzcxNSwxMzczMTMsMTQ4MTE3LDE0MDY5LDI3OTA5LDI5NzYzLDIzMDczLDE1NTI2NywyMzE2OSwxNjY4NzEsMTMyMTE1LDM3ODU2LDI5ODM2LDEzNTkzOSwyODkz''@;'; + put 'put ''MywxODgwMiwzNzg5NiwxNjYzOTUsMzc4MjEsMTQyNDAsMjM1ODIsMjM3MTAsMjQxNTgsMjQxMzYsMTM3NjIyLDEzNzU5NiwxNDYxNTgsMjQyNjksMjMzNzUsMTM3NDc1LDEzNzQ3NiwxNDA4MSwxMzczNzYsMTQwNDUsMTM2OTU4LDE0MDM1LDMzMDY2LDE2NjQ3MSwxMzg2ODIsMTQ0NDk4LDE2''@;'; + put 'put ''NjMxMiwyNDMzMiwyNDMzNCwxMzc1MTEsMTM3MTMxLDIzMTQ3LDEzNzAxOSwyMzM2NCwzNDMyNCwxNjEyNzcsMzQ5MTIsMjQ3MDIsMTQxNDA4LDE0MDg0MywyNDUzOSwxNjA1NiwxNDA3MTksMTQwNzM0LDE2ODA3MiwxNTk2MDMsMjUwMjQsMTMxMTM0LDEzMTE0MiwxNDA4MjcsMjQ5ODUsMjQ5''@;'; + put 'put ''ODQsMjQ2OTMsMTQyNDkxLDE0MjU5OSwxNDkyMDQsMTY4MjY5LDI1NzEzLDE0OTA5MywxNDIxODYsMTQ4ODksMTQyMTE0LDE0NDQ2NCwxNzAyMTgsMTQyOTY4LDI1Mzk5LDE3MzE0NywyNTc4MiwyNTM5MywyNTU1MywxNDk5ODcsMTQyNjk1LDI1MjUyLDE0MjQ5NywyNTY1OSwyNTk2MywyNjk5''@;'; + put 'put ''NCwxNTM0OCwxNDM1MDIsMTQ0MDQ1LDE0OTg5NywxNDQwNDMsMjE3NzMsMTQ0MDk2LDEzNzQzMywxNjkwMjMsMjYzMTgsMTQ0MDA5LDE0Mzc5NSwxNTA3MiwxNjc4NCwxNTI5NjQsMTY2NjkwLDE1Mjk3NSwxMzY5NTYsMTUyOTIzLDE1MjYxMywzMDk1OCwxNDM2MTksMTM3MjU4LDE0MzkyNCwx''@;'; + put 'put ''MzQxMiwxNDM4ODcsMTQzNzQ2LDE0ODE2OSwyNjI1NCwxNTkwMTIsMjYyMTksMTkzNDcsMjYxNjAsMTYxOTA0LDEzODczMSwyNjIxMSwxNDQwODIsMTQ0MDk3LDI2MTQyLDE1MzcxNCwxNDU0NSwxNDU0NjYsMTQ1MzQwLDE1MjU3LDE0NTMxNCwxNDQzODIsMjk5MDQsMTUyNTQsMjY1MTEsMTQ5''@;'; + put 'put ''MDM0LDI2ODA2LDI2NjU0LDE1MzAwLDI3MzI2LDE0NDM1LDE0NTM2NSwxNDg2MTUsMjcxODcsMjcyMTgsMjczMzcsMjczOTcsMTM3NDkwLDI1ODczLDI2Nzc2LDI3MjEyLDE1MzE5LDI3MjU4LDI3NDc5LDE0NzM5MiwxNDY1ODYsMzc3OTIsMzc2MTgsMTY2ODkwLDE2NjYwMywzNzUxMywxNjM4''@;'; + put 'put ''NzAsMTY2MzY0LDM3OTkxLDI4MDY5LDI4NDI3LDE0OTk5NiwyODAwNywxNDczMjcsMTU3NTksMjgxNjQsMTQ3NTE2LDIzMTAxLDI4MTcwLDIyNTk5LDI3OTQwLDMwNzg2LDI4OTg3LDE0ODI1MCwxNDgwODYsMjg5MTMsMjkyNjQsMjkzMTksMjkzMzIsMTQ5MzkxLDE0OTI4NSwyMDg1NywxNTAx''@;'; + put 'put ''ODAsMTMyNTg3LDI5ODE4LDE0NzE5MiwxNDQ5OTEsMTUwMDkwLDE0OTc4MywxNTU2MTcsMTYxMzQsMTYwNDksMTUwMjM5LDE2Njk0NywxNDcyNTMsMjQ3NDMsMTYxMTUsMjk5MDAsMjk3NTYsMzc3NjcsMjk3NTEsMTc1NjcsMTU5MjEwLDE3NzQ1LDMwMDgzLDE2MjI3LDE1MDc0NSwxNTA3OTAs''@;'; + put 'put ''MTYyMTYsMzAwMzcsMzAzMjMsMTczNTEwLDE1MTI5LDI5ODAwLDE2NjYwNCwxNDk5MzEsMTQ5OTAyLDE1MDk5LDE1ODIxLDE1MDA5NCwxNjEyNywxNDk5NTcsMTQ5NzQ3LDM3MzcwLDIyMzIyLDM3Njk4LDE2NjYyNywxMzczMTYsMjA3MDMsMTUyMDk3LDE1MjAzOSwzMDU4NCwxNDM5MjIsMzA0''@;'; + put 'put ''NzgsMzA0NzksMzA1ODcsMTQ5MTQzLDE0NTI4MSwxNDk0MiwxNDk3NDQsMjk3NTIsMjk4NTEsMTYwNjMsMTUwMjAyLDE1MDIxNSwxNjU4NCwxNTAxNjYsMTU2MDc4LDM3NjM5LDE1Mjk2MSwzMDc1MCwzMDg2MSwzMDg1NiwzMDkzMCwyOTY0OCwzMTA2NSwxNjE2MDEsMTUzMzE1LDE2NjU0LDMx''@;'; + put 'put ''MTMxLDMzOTQyLDMxMTQxLDI3MTgxLDE0NzE5NCwzMTI5MCwzMTIyMCwxNjc1MCwxMzY5MzQsMTY2OTAsMzc0MjksMzEyMTcsMTM0NDc2LDE0OTkwMCwxMzE3MzcsMTQ2ODc0LDEzNzA3MCwxMzcxOSwyMTg2NywxMzY4MCwxMzk5NCwxMzE1NDAsMTM0MTU3LDMxNDU4LDIzMTI5LDE0MTA0NSwx''@;'; + put 'put ''NTQyODcsMTU0MjY4LDIzMDUzLDEzMTY3NSwzMDk2MCwyMzA4MiwxNTQ1NjYsMzE0ODYsMTY4ODksMzE4MzcsMzE4NTMsMTY5MTMsMTU0NTQ3LDE1NTMyNCwxNTUzMDIsMzE5NDksMTUwMDA5LDEzNzEzNiwzMTg4NiwzMTg2OCwzMTkxOCwyNzMxNCwzMjIyMCwzMjI2MywzMjIxMSwzMjU5MCwx''@;'; + put 'put ''NTYyNTcsMTU1OTk2LDE2MjYzMiwzMjE1MSwxNTUyNjYsMTcwMDIsMTU4NTgxLDEzMzM5OCwyNjU4MiwxMzExNTAsMTQ0ODQ3LDIyNDY4LDE1NjY5MCwxNTY2NjQsMTQ5ODU4LDMyNzMzLDMxNTI3LDEzMzE2NCwxNTQzNDUsMTU0OTQ3LDMxNTAwLDE1NTE1MCwzOTM5OCwzNDM3MywzOTUyMywy''@;'; + put 'put ''NzE2NCwxNDQ0NDcsMTQ4MTgsMTUwMDA3LDE1NzEwMSwzOTQ1NSwxNTcwODgsMzM5MjAsMTYwMDM5LDE1ODkyOSwxNzY0MiwzMzA3OSwxNzQxMCwzMjk2NiwzMzAzMywzMzA5MCwxNTc2MjAsMzkxMDcsMTU4Mjc0LDMzMzc4LDMzMzgxLDE1ODI4OSwzMzg3NSwxNTkxNDMsMzQzMjAsMTYwMjgz''@;'; + put 'put ''LDIzMTc0LDE2NzY3LDEzNzI4MCwyMzMzOSwxMzczNzcsMjMyNjgsMTM3NDMyLDM0NDY0LDE5NTAwNCwxNDY4MzEsMzQ4NjEsMTYwODAyLDIzMDQyLDM0OTI2LDIwMjkzLDM0OTUxLDM1MDA3LDM1MDQ2LDM1MTczLDM1MTQ5LDE1MzIxOSwzNTE1NiwxNjE2NjksMTYxNjY4LDE2NjkwMSwxNjY4''@;'; + put 'put ''NzMsMTY2ODEyLDE2NjM5MywxNjA0NSwzMzk1NSwxODE2NSwxODEyNywxNDMyMiwzNTM4OSwzNTM1NiwxNjkwMzIsMjQzOTcsMzc0MTksMTQ4MTAwLDI2MDY4LDI4OTY5LDI4ODY4LDEzNzI4NSw0MDMwMSwzNTk5OSwzNjA3MywxNjMyOTIsMjI5MzgsMzA2NTksMjMwMjQsMTcyNjIsMTQwMzYs''@;'; + put 'put ''MzYzOTQsMzY1MTksMTUwNTM3LDM2NjU2LDM2NjgyLDE3MTQwLDI3NzM2LDI4NjAzLDE0MDA2NSwxODU4NywyODUzNywyODI5OSwxMzcxNzgsMzk5MTMsMTQwMDUsMTQ5ODA3LDM3MDUxLDM3MDE1LDIxODczLDE4Njk0LDM3MzA3LDM3ODkyLDE2NjQ3NSwxNjQ4MiwxNjY2NTIsMzc5MjcsMTY2''@;'; + put 'put ''OTQxLDE2Njk3MSwzNDAyMSwzNTM3MSwzODI5NywzODMxMSwzODI5NSwzODI5NCwxNjcyMjAsMjk3NjUsMTYwNjYsMTQ5NzU5LDE1MDA4MiwxNDg0NTgsMTYxMDMsMTQzOTA5LDM4NTQzLDE2NzY1NSwxNjc1MjYsMTY3NTI1LDE2MDc2LDE0OTk5NywxNTAxMzYsMTQ3NDM4LDI5NzE0LDI5ODAz''@;'; + put 'put ''LDE2MTI0LDM4NzIxLDE2ODExMiwyNjY5NSwxODk3MywxNjgwODMsMTUzNTY3LDM4NzQ5LDM3NzM2LDE2NjI4MSwxNjY5NTAsMTY2NzAzLDE1NjYwNiwzNzU2MiwyMzMxMywzNTY4OSwxODc0OCwyOTY4OSwxNDc5OTUsMzg4MTEsMzg3NjksMzkyMjQsMTM0OTUwLDI0MDAxLDE2Njg1MywxNTAx''@;'; + put 'put ''OTQsMzg5NDMsMTY5MTc4LDM3NjIyLDE2OTQzMSwzNzM0OSwxNzYwMCwxNjY3MzYsMTUwMTE5LDE2Njc1NiwzOTEzMiwxNjY0NjksMTYxMjgsMzc0MTgsMTg3MjUsMzM4MTIsMzkyMjcsMzkyNDUsMTYyNTY2LDE1ODY5LDM5MzIzLDE5MzExLDM5MzM4LDM5NTE2LDE2Njc1NywxNTM4MDAsMjcy''@;'; + put 'put ''NzksMzk0NTcsMjMyOTQsMzk0NzEsMTcwMjI1LDE5MzQ0LDE3MDMxMiwzOTM1NiwxOTM4OSwxOTM1MSwzNzc1NywyMjY0MiwxMzU5MzgsMjI1NjIsMTQ5OTQ0LDEzNjQyNCwzMDc4OCwxNDEwODcsMTQ2ODcyLDI2ODIxLDE1NzQxLDM3OTc2LDE0NjMxLDI0OTEyLDE0MTE4NSwxNDE2NzUsMjQ4''@;'; + put 'put ''MzksNDAwMTUsNDAwMTksNDAwNTksMzk5ODksMzk5NTIsMzk4MDcsMzk4ODcsMTcxNTY1LDM5ODM5LDE3MjUzMywxNzIyODYsNDAyMjUsMTk2MzAsMTQ3NzE2LDQwNDcyLDE5NjMyLDQwMjA0LDE3MjQ2OCwxNzIyNjksMTcyMjc1LDE3MDI4Nyw0MDM1NywzMzk4MSwxNTkyNTAsMTU5NzExLDE1''@;'; + put 'put ''ODU5NCwzNDMwMCwxNzcxNSwxNTkxNDAsMTU5MzY0LDE1OTIxNiwzMzgyNCwzNDI4NiwxNTkyMzIsMTQ1MzY3LDE1NTc0OCwzMTIwMiwxNDQ3OTYsMTQ0OTYwLDE4NzMzLDE0OTk4MiwxNTcxNCwzNzg1MSwzNzU2NiwzNzcwNCwxMzE3NzUsMzA5MDUsMzc0OTUsMzc5NjUsMjA0NTIsMTMzNzYs''@;'; + put 'put ''MzY5NjQsMTUyOTI1LDMwNzgxLDMwODA0LDMwOTAyLDMwNzk1LDEzNzA0NywxNDM4MTcsMTQ5ODI1LDEzOTc4LDIwMzM4LDI4NjM0LDI4NjMzLDI4NzAyLDI4NzAyLDIxNTI0LDE0Nzg5MywyMjQ1OSwyMjc3MSwyMjQxMCw0MDIxNCwyMjQ4NywyODk4MCwxMzQ4NywxNDc4ODQsMjkxNjMsMTU4''@;'; + put 'put ''Nzg0LDE1MTQ0NywyMzMzNiwxMzcxNDEsMTY2NDczLDI0ODQ0LDIzMjQ2LDIzMDUxLDE3MDg0LDE0ODYxNiwxNDEyNCwxOTMyMywxNjYzOTYsMzc4MTksMzc4MTYsMTM3NDMwLDEzNDk0MSwzMzkwNiwxNTg5MTIsMTM2MjExLDE0ODIxOCwxNDIzNzQsMTQ4NDE3LDIyOTMyLDE0Njg3MSwxNTc1''@;'; + put 'put ''MDUsMzIxNjgsMTU1OTk1LDE1NTgxMiwxNDk5NDUsMTQ5ODk5LDE2NjM5NCwzNzYwNSwyOTY2NiwxNjEwNSwyOTg3NiwxNjY3NTUsMTM3Mzc1LDE2MDk3LDE1MDE5NSwyNzM1MiwyOTY4MywyOTY5MSwxNjA4NiwxNTAwNzgsMTUwMTY0LDEzNzE3NywxNTAxMTgsMTMyMDA3LDEzNjIyOCwxNDk5''@;'; + put 'put ''ODksMjk3NjgsMTQ5NzgyLDI4ODM3LDE0OTg3OCwzNzUwOCwyOTY3MCwzNzcyNywxMzIzNTAsMzc2ODEsMTY2NjA2LDE2NjQyMiwzNzc2NiwxNjY4ODcsMTUzMDQ1LDE4NzQxLDE2NjUzMCwyOTAzNSwxNDk4MjcsMTM0Mzk5LDIyMTgwLDEzMjYzNCwxMzQxMjMsMTM0MzI4LDIxNzYyLDMxMTcy''@;'; + put 'put ''LDEzNzIxMCwzMjI1NCwxMzY4OTgsMTUwMDk2LDEzNzI5OCwxNzcxMCwzNzg4OSwxNDA5MCwxNjY1OTIsMTQ5OTMzLDIyOTYwLDEzNzQwNywxMzczNDcsMTYwOTAwLDIzMjAxLDE0MDUwLDE0Njc3OSwxNGUzLDM3NDcxLDIzMTYxLDE2NjUyOSwxMzczMTQsMzc3NDgsMTU1NjUsMTMzODEyLDE5''@;'; + put 'put ''MDk0LDE0NzMwLDIwNzI0LDE1NzIxLDE1NjkyLDEzNjA5MiwyOTA0NSwxNzE0NywxNjQzNzYsMjgxNzUsMTY4MTY0LDE3NjQzLDI3OTkxLDE2MzQwNywyODc3NSwyNzgyMywxNTU3NCwxNDc0MzcsMTQ2OTg5LDI4MTYyLDI4NDI4LDE1NzI3LDEzMjA4NSwzMDAzMywxNDAxMiwxMzUxMiwxODA0''@;'; + put 'put ''OCwxNjA5MCwxODU0NSwyMjk4MCwzNzQ4NiwxODc1MCwzNjY3MywxNjY5NDAsMTU4NjU2LDIyNTQ2LDIyNDcyLDE0MDM4LDEzNjI3NCwyODkyNiwxNDgzMjIsMTUwMTI5LDE0MzMzMSwxMzU4NTYsMTQwMjIxLDI2ODA5LDI2OTgzLDEzNjA4OCwxNDQ2MTMsMTYyODA0LDE0NTExOSwxNjY1MzEs''@;'; + put 'put ''MTQ1MzY2LDE0NDM3OCwxNTA2ODcsMjcxNjIsMTQ1MDY5LDE1ODkwMywzMzg1NCwxNzYzMSwxNzYxNCwxNTkwMTQsMTU5MDU3LDE1ODg1MCwxNTk3MTAsMjg0MzksMTYwMDA5LDMzNTk3LDEzNzAxOCwzMzc3MywxNTg4NDgsMTU5ODI3LDEzNzE3OSwyMjkyMSwyMzE3MCwxMzcxMzksMjMxMzcs''@;'; + put 'put ''MjMxNTMsMTM3NDc3LDE0Nzk2NCwxNDEyNSwyMzAyMywxMzcwMjAsMTQwMjMsMjkwNzAsMzc3NzYsMjYyNjYsMTQ4MTMzLDIzMTUwLDIzMDgzLDE0ODExNSwyNzE3OSwxNDcxOTMsMTYxNTkwLDE0ODU3MSwxNDgxNzAsMjg5NTcsMTQ4MDU3LDE2NjM2OSwyMDQwMCwxNTkwMTYsMjM3NDYsMTQ4''@;'; + put 'put ''Njg2LDE2MzQwNSwxNDg0MTMsMjcxNDgsMTQ4MDU0LDEzNTk0MCwyODgzOCwyODk3OSwxNDg0NTcsMTU3ODEsMjc4NzEsMTk0NTk3LDE1MDA5NSwzMjM1NywyMzAxOSwyMzg1NSwxNTg1OSwyNDQxMiwxNTAxMDksMTM3MTgzLDMyMTY0LDMzODMwLDIxNjM3LDE0NjE3MCwxNDQxMjgsMTMxNjA0''@;'; + put 'put ''LDIyMzk4LDEzMzMzMywxMzI2MzMsMTYzNTcsMTM5MTY2LDE3MjcyNiwyODY3NSwxNjgyODMsMjM5MjAsMjk1ODMsMzE5NTUsMTY2NDg5LDE2ODk5MiwyMDQyNCwzMjc0MywyOTM4OSwyOTQ1NiwxNjI1NDgsMjk0OTYsMjk0OTcsMTUzMzM0LDI5NTA1LDI5NTEyLDE2MDQxLDE2MjU4NCwzNjk3''@;'; + put 'put ''MiwyOTE3MywxNDk3NDYsMjk2NjUsMzMyNzAsMTYwNzQsMzA0NzYsMTYwODEsMjc4MTAsMjIyNjksMjk3MjEsMjk3MjYsMjk3MjcsMTYwOTgsMTYxMTIsMTYxMTYsMTYxMjIsMjk5MDcsMTYxNDIsMTYyMTEsMzAwMTgsMzAwNjEsMzAwNjYsMzAwOTMsMTYyNTIsMzAxNTIsMzAxNzIsMTYzMjAs''@;'; + put 'put ''MzAyODUsMTYzNDMsMzAzMjQsMTYzNDgsMzAzMzAsMTUxMzg4LDI5MDY0LDIyMDUxLDM1MjAwLDIyNjMzLDE2NDEzLDMwNTMxLDE2NDQxLDI2NDY1LDE2NDUzLDEzNzg3LDMwNjE2LDE2NDkwLDE2NDk1LDIzNjQ2LDMwNjU0LDMwNjY3LDIyNzcwLDMwNzQ0LDI4ODU3LDMwNzQ4LDE2NTUyLDMw''@;'; + put 'put ''Nzc3LDMwNzkxLDMwODAxLDMwODIyLDMzODY0LDE1Mjg4NSwzMTAyNywyNjYyNywzMTAyNiwxNjY0MywxNjY0OSwzMTEyMSwzMTEyOSwzNjc5NSwzMTIzOCwzNjc5NiwxNjc0MywzMTM3NywxNjgxOCwzMTQyMCwzMzQwMSwxNjgzNiwzMTQzOSwzMTQ1MSwxNjg0NywyMDAwMSwzMTU4NiwzMTU5''@;'; + put 'put ''NiwzMTYxMSwzMTc2MiwzMTc3MSwxNjk5MiwxNzAxOCwzMTg2NywzMTkwMCwxNzAzNiwzMTkyOCwxNzA0NCwzMTk4MSwzNjc1NSwyODg2NCwxMzQzNTEsMzIyMDcsMzIyMTIsMzIyMDgsMzIyNTMsMzI2ODYsMzI2OTIsMjkzNDMsMTczMDMsMzI4MDAsMzI4MDUsMzE1NDUsMzI4MTQsMzI4MTcs''@;'; + put 'put ''MzI4NTIsMTU4MjAsMjI0NTIsMjg4MzIsMzI5NTEsMzMwMDEsMTczODksMzMwMzYsMjk0ODIsMzMwMzgsMzMwNDIsMzAwNDgsMzMwNDQsMTc0MDksMTUxNjEsMzMxMTAsMzMxMTMsMzMxMTQsMTc0MjcsMjI1ODYsMzMxNDgsMzMxNTYsMTc0NDUsMzMxNzEsMTc0NTMsMzMxODksMjI1MTEsMzMy''@;'; + put 'put ''MTcsMzMyNTIsMzMzNjQsMTc1NTEsMzM0NDYsMzMzOTgsMzM0ODIsMzM0OTYsMzM1MzUsMTc1ODQsMzM2MjMsMzg1MDUsMjcwMTgsMzM3OTcsMjg5MTcsMzM4OTIsMjQ4MDMsMzM5MjgsMTc2NjgsMzM5ODIsMzQwMTcsMzQwNDAsMzQwNjQsMzQxMDQsMzQxMzAsMTc3MjMsMzQxNTksMzQxNjAs''@;'; + put 'put ''MzQyNzIsMTc3ODMsMzQ0MTgsMzQ0NTAsMzQ0ODIsMzQ1NDMsMzg0NjksMzQ2OTksMTc5MjYsMTc5NDMsMzQ5OTAsMzUwNzEsMzUxMDgsMzUxNDMsMzUyMTcsMTYyMTUxLDM1MzY5LDM1Mzg0LDM1NDc2LDM1NTA4LDM1OTIxLDM2MDUyLDM2MDgyLDM2MTI0LDE4MzI4LDIyNjIzLDM2MjkxLDE4''@;'; + put 'put ''NDEzLDIwMjA2LDM2NDEwLDIxOTc2LDIyMzU2LDM2NDY1LDIyMDA1LDM2NTI4LDE4NDg3LDM2NTU4LDM2NTc4LDM2NTgwLDM2NTg5LDM2NTk0LDM2NzkxLDM2ODAxLDM2ODEwLDM2ODEyLDM2OTE1LDM5MzY0LDE4NjA1LDM5MTM2LDM3Mzk1LDE4NzE4LDM3NDE2LDM3NDY0LDM3NDgzLDM3NTUz''@;'; + put 'put ''LDM3NTUwLDM3NTY3LDM3NjAzLDM3NjExLDM3NjE5LDM3NjIwLDM3NjI5LDM3Njk5LDM3NzY0LDM3ODA1LDE4NzU3LDE4NzY5LDQwNjM5LDM3OTExLDIxMjQ5LDM3OTE3LDM3OTMzLDM3OTUwLDE4Nzk0LDM3OTcyLDM4MDA5LDM4MTg5LDM4MzA2LDE4ODU1LDM4Mzg4LDM4NDUxLDE4OTE3LDI2''@;'; + put 'put ''NTI4LDE4OTgwLDM4NzIwLDE4OTk3LDM4ODM0LDM4ODUwLDIyMTAwLDE5MTcyLDI0ODA4LDM5MDk3LDE5MjI1LDM5MTUzLDIyNTk2LDM5MTgyLDM5MTkzLDIwOTE2LDM5MTk2LDM5MjIzLDM5MjM0LDM5MjYxLDM5MjY2LDE5MzEyLDM5MzY1LDE5MzU3LDM5NDg0LDM5Njk1LDMxMzYzLDM5Nzg1''@;'; + put 'put ''LDM5ODA5LDM5OTAxLDM5OTIxLDM5OTI0LDE5NTY1LDM5OTY4LDE0MTkxLDEzODE3OCw0MDI2NSwzOTk5NCw0MDcwMiwyMjA5Niw0MDMzOSw0MDM4MSw0MDM4NCw0MDQ0NCwzODEzNCwzNjc5MCw0MDU3MSw0MDYyMCw0MDYyNSw0MDYzNyw0MDY0NiwzODEwOCw0MDY3NCw0MDY4OSw0MDY5Niwz''@;'; + put 'put ''MTQzMiw0MDc3MiwxMzEyMjAsMTMxNzY3LDEzMmUzLDI2OTA2LDM4MDgzLDIyOTU2LDEzMjMxMSwyMjU5MiwzODA4MSwxNDI2NSwxMzI1NjUsMTMyNjI5LDEzMjcyNiwxMzY4OTAsMjIzNTksMjkwNDMsMTMzODI2LDEzMzgzNywxMzQwNzksMjE2MTAsMTk0NjE5LDEzNDA5MSwyMTY2MiwxMzQx''@;'; + put 'put ''MzksMTM0MjAzLDEzNDIyNywxMzQyNDUsMTM0MjY4LDI0ODA3LDEzNDI4NSwyMjEzOCwxMzQzMjUsMTM0MzY1LDEzNDM4MSwxMzQ1MTEsMTM0NTc4LDEzNDYwMCwyNjk2NSwzOTk4MywzNDcyNSwxMzQ2NjAsMTM0NjcwLDEzNDg3MSwxMzUwNTYsMTM0OTU3LDEzNDc3MSwyMzU4NCwxMzUxMDAs''@;'; + put 'put ''MjQwNzUsMTM1MjYwLDEzNTI0NywxMzUyODYsMjYzOTgsMTM1MjkxLDEzNTMwNCwxMzUzMTgsMTM4OTUsMTM1MzU5LDEzNTM3OSwxMzU0NzEsMTM1NDgzLDIxMzQ4LDMzOTY1LDEzNTkwNywxMzYwNTMsMTM1OTkwLDM1NzEzLDEzNjU2NywxMzY3MjksMTM3MTU1LDEzNzE1OSwyMDA4OCwyODg1''@;'; + put 'put ''OSwxMzcyNjEsMTM3NTc4LDEzNzc3MywxMzc3OTcsMTM4MjgyLDEzODM1MiwxMzg0MTIsMTM4OTUyLDI1MjgzLDEzODk2NSwxMzkwMjksMjkwODAsMjY3MDksMTM5MzMzLDI3MTEzLDE0MDI0LDEzOTkwMCwxNDAyNDcsMTQwMjgyLDE0MTA5OCwxNDE0MjUsMTQxNjQ3LDMzNTMzLDE0MTY3MSwx''@;'; + put 'put ''NDE3MTUsMTQyMDM3LDM1MjM3LDE0MjA1NiwzNjc2OCwxNDIwOTQsMzg4NDAsMTQyMTQzLDM4OTgzLDM5NjEzLDE0MjQxMixudWxsLDE0MjQ3MiwxNDI1MTksMTU0NjAwLDE0MjYwMCwxNDI2MTAsMTQyNzc1LDE0Mjc0MSwxNDI5MTQsMTQzMjIwLDE0MzMwOCwxNDM0MTEsMTQzNDYyLDE0NDE1''@;'; + put 'put ''OSwxNDQzNTAsMjQ0OTcsMjYxODQsMjYzMDMsMTYyNDI1LDE0NDc0MywxNDQ4ODMsMjkxODUsMTQ5OTQ2LDMwNjc5LDE0NDkyMiwxNDUxNzQsMzIzOTEsMTMxOTEwLDIyNzA5LDI2MzgyLDI2OTA0LDE0NjA4NywxNjEzNjcsMTU1NjE4LDE0Njk2MSwxNDcxMjksMTYxMjc4LDEzOTQxOCwxODY0''@;'; + put 'put ''MCwxOTEyOCwxNDc3MzcsMTY2NTU0LDE0ODIwNiwxNDgyMzcsMTQ3NTE1LDE0ODI3NiwxNDgzNzQsMTUwMDg1LDEzMjU1NCwyMDk0NiwxMzI2MjUsMjI5NDMsMTM4OTIwLDE1Mjk0LDE0NjY4NywxNDg0ODQsMTQ4Njk0LDIyNDA4LDE0OTEwOCwxNDc0NywxNDkyOTUsMTY1MzUyLDE3MDQ0MSwx''@;'; + put 'put ''NDE3OCwxMzk3MTUsMzU2NzgsMTY2NzM0LDM5MzgyLDE0OTUyMiwxNDk3NTUsMTUwMDM3LDI5MTkzLDE1MDIwOCwxMzQyNjQsMjI4ODUsMTUxMjA1LDE1MTQzMCwxMzI5ODUsMzY1NzAsMTUxNTk2LDIxMTM1LDIyMzM1LDI5MDQxLDE1MjIxNywxNTI2MDEsMTQ3Mjc0LDE1MDE4MywyMTk0OCwx''@;'; + put 'put ''NTI2NDYsMTUyNjg2LDE1ODU0NiwzNzMzMiwxMzQyNywxNTI4OTUsMTYxMzMwLDE1MjkyNiwxODIwMCwxNTI5MzAsMTUyOTM0LDE1MzU0MywxNDk4MjMsMTUzNjkzLDIwNTgyLDEzNTYzLDE0NDMzMiwyNDc5OCwxNTM4NTksMTgzMDAsMTY2MjE2LDE1NDI4NiwxNTQ1MDUsMTU0NjMwLDEzODY0''@;'; + put 'put ''MCwyMjQzMywyOTAwOSwyODU5OCwxNTU5MDYsMTYyODM0LDM2OTUwLDE1NjA4MiwxNTE0NTAsMzU2ODIsMTU2Njc0LDE1Njc0NiwyMzg5OSwxNTg3MTEsMzY2NjIsMTU2ODA0LDEzNzUwMCwzNTU2MiwxNTAwMDYsMTU2ODA4LDE0NzQzOSwxNTY5NDYsMTkzOTIsMTU3MTE5LDE1NzM2NSwxNDEw''@;'; + put 'put ''ODMsMzc5ODksMTUzNTY5LDI0OTgxLDIzMDc5LDE5NDc2NSwyMDQxMSwyMjIwMSwxNDg3NjksMTU3NDM2LDIwMDc0LDE0OTgxMiwzODQ4NiwyODA0NywxNTg5MDksMTM4NDgsMzUxOTEsMTU3NTkzLDE1NzgwNiwxNTY2ODksMTU3NzkwLDI5MTUxLDE1Nzg5NSwzMTU1NCwxNjgxMjgsMTMzNjQ5''@;'; + put 'put ''LDE1Nzk5MCwzNzEyNCwxNTgwMDksMzEzMDEsNDA0MzIsMTU4MjAyLDM5NDYyLDE1ODI1MywxMzkxOSwxNTY3NzcsMTMxMTA1LDMxMTA3LDE1ODI2MCwxNTg1NTUsMjM4NTIsMTQ0NjY1LDMzNzQzLDE1ODYyMSwxODEyOCwxNTg4ODQsMzAwMTEsMzQ5MTcsMTU5MTUwLDIyNzEwLDE0MTA4LDE0''@;'; + put 'put ''MDY4NSwxNTk4MTksMTYwMjA1LDE1NDQ0LDE2MDM4NCwxNjAzODksMzc1MDUsMTM5NjQyLDE2MDM5NSwzNzY4MCwxNjA0ODYsMTQ5OTY4LDI3NzA1LDM4MDQ3LDE2MDg0OCwxMzQ5MDQsMzQ4NTUsMzUwNjEsMTQxNjA2LDE2NDk3OSwxMzcxMzcsMjgzNDQsMTUwMDU4LDEzNzI0OCwxNDc1Niwx''@;'; + put 'put ''NDAwOSwyMzU2OCwzMTIwMywxNzcyNywyNjI5NCwxNzExODEsMTcwMTQ4LDM1MTM5LDE2MTc0MCwxNjE4ODAsMjIyMzAsMTY2MDcsMTM2NzE0LDE0NzUzLDE0NTE5OSwxNjQwNzIsMTM2MTMzLDI5MTAxLDMzNjM4LDE2MjI2OSwxNjgzNjAsMjMxNDMsMTk2MzksMTU5OTE5LDE2NjMxNSwxNjIz''@;'; + put 'put ''MDEsMTYyMzE0LDE2MjU3MSwxNjMxNzQsMTQ3ODM0LDMxNTU1LDMxMTAyLDE2Mzg0OSwyODU5NywxNzI3NjcsMjcxMzksMTY0NjMyLDIxNDEwLDE1OTIzOSwzNzgyMywyNjY3OCwzODc0OSwxNjQyMDcsMTYzODc1LDE1ODEzMywxMzYxNzMsMTQzOTE5LDE2MzkxMiwyMzk0MSwxNjY5NjAsMTYz''@;'; + put 'put ''OTcxLDIyMjkzLDM4OTQ3LDE2NjIxNywyMzk3OSwxNDk4OTYsMjYwNDYsMjcwOTMsMjE0NTgsMTUwMTgxLDE0NzMyOSwxNTM3NywyNjQyMiwxNjM5ODQsMTY0MDg0LDE2NDE0MiwxMzkxNjksMTY0MTc1LDE2NDIzMywxNjQyNzEsMTY0Mzc4LDE2NDYxNCwxNjQ2NTUsMTY0NzQ2LDEzNzcwLDE2''@;'; + put 'put ''NDk2OCwxNjU1NDYsMTg2ODIsMjU1NzQsMTY2MjMwLDMwNzI4LDM3NDYxLDE2NjMyOCwxNzM5NCwxNjYzNzUsMTczNzUsMTY2Mzc2LDE2NjcyNiwxNjY4NjgsMjMwMzIsMTY2OTIxLDM2NjE5LDE2Nzg3NywxNjgxNzIsMzE1NjksMTY4MjA4LDE2ODI1MiwxNTg2MywxNjgyODYsMTUwMjE4LDM2''@;'; + put 'put ''ODE2LDI5MzI3LDIyMTU1LDE2OTE5MSwxNjk0NDksMTY5MzkyLDE2OTQwMCwxNjk3NzgsMTcwMTkzLDE3MDMxMywxNzAzNDYsMTcwNDM1LDE3MDUzNiwxNzA3NjYsMTcxMzU0LDE3MTQxOSwzMjQxNSwxNzE3NjgsMTcxODExLDE5NjIwLDM4MjE1LDE3MjY5MSwyOTA5MCwxNzI3OTksMTk4NTcs''@;'; + put 'put ''MzY4ODIsMTczNTE1LDE5ODY4LDEzNDMwMCwzNjc5OCwyMTk1MywzNjc5NCwxNDA0NjQsMzY3OTMsMTUwMTYzLDE3NjczLDMyMzgzLDI4NTAyLDI3MzEzLDIwMjAyLDEzNTQwLDE2NjcwMCwxNjE5NDksMTQxMzgsMzY0ODAsMTM3MjA1LDE2Mzg3NiwxNjY3NjQsMTY2ODA5LDE2MjM2NiwxNTcz''@;'; + put 'put ''NTksMTU4NTEsMTYxMzY1LDE0NjYxNSwxNTMxNDEsMTUzOTQyLDIwMTIyLDE1NTI2NSwxNTYyNDgsMjIyMDcsMTM0NzY1LDM2MzY2LDIzNDA1LDE0NzA4MCwxNTA2ODYsMjU1NjYsMjUyOTYsMTM3MjA2LDEzNzMzOSwyNTkwNCwyMjA2MSwxNTQ2OTgsMjE1MzAsMTUyMzM3LDE1ODE0LDE3MTQx''@;'; + put 'put ''NiwxOTU4MSwyMjA1MCwyMjA0NiwzMjU4NSwxNTUzNTIsMjI5MDEsMTQ2NzUyLDM0NjcyLDE5OTk2LDEzNTE0NiwxMzQ0NzMsMTQ1MDgyLDMzMDQ3LDQwMjg2LDM2MTIwLDMwMjY3LDQwMDA1LDMwMjg2LDMwNjQ5LDM3NzAxLDIxNTU0LDMzMDk2LDMzNTI3LDIyMDUzLDMzMDc0LDMzODE2LDMy''@;'; + put 'put ''OTU3LDIxOTk0LDMxMDc0LDIyMDgzLDIxNTI2LDEzNDgxMywxMzc3NCwyMjAyMSwyMjAwMSwyNjM1MywxNjQ1NzgsMTM4NjksMzAwMDQsMjJlMywyMTk0NiwyMTY1NSwyMTg3NCwxMzQyMDksMTM0Mjk0LDI0MjcyLDE1MTg4MCwxMzQ3NzQsMTQyNDM0LDEzNDgxOCw0MDYxOSwzMjA5MCwyMTk4''@;'; + put 'put ''MiwxMzUyODUsMjUyNDUsMzg3NjUsMjE2NTIsMzYwNDUsMjkxNzQsMzcyMzgsMjU1OTYsMjU1MjksMjU1OTgsMjE4NjUsMTQyMTQ3LDQwMDUwLDE0MzAyNywyMDg5MCwxMzUzNSwxMzQ1NjcsMjA5MDMsMjE1ODEsMjE3OTAsMjE3NzksMzAzMTAsMzYzOTcsMTU3ODM0LDMwMTI5LDMyOTUwLDM0''@;'; + put 'put ''ODIwLDM0Njk0LDM1MDE1LDMzMjA2LDMzODIwLDEzNTM2MSwxNzY0NCwyOTQ0NCwxNDkyNTQsMjM0NDAsMzM1NDcsMTU3ODQzLDIyMTM5LDE0MTA0NCwxNjMxMTksMTQ3ODc1LDE2MzE4NywxNTk0NDAsMTYwNDM4LDM3MjMyLDEzNTY0MSwzNzM4NCwxNDY2ODQsMTczNzM3LDEzNDgyOCwxMzQ5''@;'; + put 'put ''MDUsMjkyODYsMTM4NDAyLDE4MjU0LDE1MTQ5MCwxNjM4MzMsMTM1MTQ3LDE2NjM0LDQwMDI5LDI1ODg3LDE0Mjc1MiwxODY3NSwxNDk0NzIsMTcxMzg4LDEzNTE0OCwxMzQ2NjYsMjQ2NzQsMTYxMTg3LDEzNTE0OSxudWxsLDE1NTcyMCwxMzU1NTksMjkwOTEsMzIzOTgsNDAyNzIsMTk5OTQs''@;'; + put 'put ''MTk5NzIsMTM2ODcsMjMzMDksMjc4MjYsMjEzNTEsMTM5OTYsMTQ4MTIsMjEzNzMsMTM5ODksMTQ5MDE2LDIyNjgyLDE1MDM4MiwzMzMyNSwyMTU3OSwyMjQ0MiwxNTQyNjEsMTMzNDk3LG51bGwsMTQ5MzAsMTQwMzg5LDI5NTU2LDE3MTY5MiwxOTcyMSwzOTkxNywxNDY2ODYsMTcxODI0LDE5''@;'; + put 'put ''NTQ3LDE1MTQ2NSwxNjkzNzQsMTcxOTk4LDMzODg0LDE0Njg3MCwxNjA0MzQsMTU3NjE5LDE0NTE4NCwyNTM5MCwzMjAzNywxNDcxOTEsMTQ2OTg4LDE0ODkwLDM2ODcyLDIxMTk2LDE1OTg4LDEzOTQ2LDE3ODk3LDEzMjIzOCwzMDI3MiwyMzI4MCwxMzQ4MzgsMzA4NDIsMTYzNjMwLDIyNjk1''@;'; + put 'put ''LDE2NTc1LDIyMTQwLDM5ODE5LDIzOTI0LDMwMjkyLDE3MzEwOCw0MDU4MSwxOTY4MSwzMDIwMSwxNDMzMSwyNDg1NywxNDM1NzgsMTQ4NDY2LG51bGwsMjIxMDksMTM1ODQ5LDIyNDM5LDE0OTg1OSwxNzE1MjYsMjEwNDQsMTU5OTE4LDEzNzQxLDI3NzIyLDQwMzE2LDMxODMwLDM5NzM3LDIy''@;'; + put 'put ''NDk0LDEzNzA2OCwyMzYzNSwyNTgxMSwxNjkxNjgsMTU2NDY5LDE2MDEwMCwzNDQ3NywxMzQ0NDAsMTU5MDEwLDE1MDI0MiwxMzQ1MTMsbnVsbCwyMDk5MCwxMzkwMjMsMjM5NTAsMzg2NTksMTM4NzA1LDQwNTc3LDM2OTQwLDMxNTE5LDM5NjgyLDIzNzYxLDMxNjUxLDI1MTkyLDI1Mzk3LDM5''@;'; + put 'put ''Njc5LDMxNjk1LDM5NzIyLDMxODcwLDM5NzI2LDMxODEwLDMxODc4LDM5OTU3LDMxNzQwLDM5Njg5LDQwNzI3LDM5OTYzLDE0OTgyMiw0MDc5NCwyMTg3NSwyMzQ5MSwyMDQ3Nyw0MDYwMCwyMDQ2NiwyMTA4OCwxNTg3OCwyMTIwMSwyMjM3NSwyMDU2NiwyMjk2NywyNDA4MiwzODg1Niw0MDM2''@;'; + put 'put ''MywzNjcwMCwyMTYwOSwzODgzNiwzOTIzMiwzODg0MiwyMTI5MiwyNDg4MCwyNjkyNCwyMTQ2NiwzOTk0Niw0MDE5NCwxOTUxNSwzODQ2NSwyNzAwOCwyMDY0NiwzMDAyMiwxMzcwNjksMzkzODYsMjExMDcsbnVsbCwzNzIwOSwzODUyOSwzNzIxMixudWxsLDM3MjAxLDE2NzU3NSwyNTQ3MSwx''@;'; + put 'put ''NTkwMTEsMjczMzgsMjIwMzMsMzcyNjIsMzAwNzQsMjUyMjEsMTMyMDkyLDI5NTE5LDMxODU2LDE1NDY1NywxNDY2ODUsbnVsbCwxNDk3ODUsMzA0MjIsMzk4MzcsMjAwMTAsMTM0MzU2LDMzNzI2LDM0ODgyLG51bGwsMjM2MjYsMjcwNzIsMjA3MTcsMjIzOTQsMjEwMjMsMjQwNTMsMjAxNzQs''@;'; + put 'put ''Mjc2OTcsMTMxNTcwLDIwMjgxLDIxNjYwLDIxNzIyLDIxMTQ2LDM2MjI2LDEzODIyLDI0MzMyLDEzODExLG51bGwsMjc0NzQsMzcyNDQsNDA4NjksMzk4MzEsMzg5NTgsMzkwOTIsMzk2MTAsNDA2MTYsNDA1ODAsMjkwNTAsMzE1MDgsbnVsbCwyNzY0MiwzNDg0MCwzMjYzMixudWxsLDIyMDQ4''@;'; + put 'put ''LDE3MzY0MiwzNjQ3MSw0MDc4NyxudWxsLDM2MzA4LDM2NDMxLDQwNDc2LDM2MzUzLDI1MjE4LDE2NDczMywzNjM5MiwzNjQ2OSwzMTQ0MywxNTAxMzUsMzEyOTQsMzA5MzYsMjc4ODIsMzU0MzEsMzAyMTUsMTY2NDkwLDQwNzQyLDI3ODU0LDM0Nzc0LDMwMTQ3LDE3MjcyMiwzMDgwMywxOTQ2''@;'; + put 'put ''MjQsMzYxMDgsMjk0MTAsMjk1NTMsMzU2MjksMjk0NDIsMjk5MzcsMzYwNzUsMTUwMjAzLDM0MzUxLDI0NTA2LDM0OTc2LDE3NTkxLG51bGwsMTM3Mjc1LDE1OTIzNyxudWxsLDM1NDU0LDE0MDU3MSxudWxsLDI0ODI5LDMwMzExLDM5NjM5LDQwMjYwLDM3NzQyLDM5ODIzLDM0ODA1LG51bGws''@;'; + put 'put ''MzQ4MzEsMzYwODcsMjk0ODQsMzg2ODksMzk4NTYsMTM3ODIsMjkzNjIsMTk0NjMsMzE4MjUsMzkyNDIsMTU1OTkzLDI0OTIxLDE5NDYwLDQwNTk4LDI0OTU3LG51bGwsMjIzNjcsMjQ5NDMsMjUyNTQsMjUxNDUsMjUyOTQsMTQ5NDAsMjUwNTgsMjE0MTgsMTQ0MzczLDI1NDQ0LDI2NjI2LDEz''@;'; + put 'put ''Nzc4LDIzODk1LDE2Njg1MCwzNjgyNiwxNjc0ODEsbnVsbCwyMDY5NywxMzg1NjYsMzA5ODIsMjEyOTgsMzg0NTYsMTM0OTcxLDE2NDg1LG51bGwsMzA3MTgsbnVsbCwzMTkzOCwxNTU0MTgsMzE5NjIsMzEyNzcsMzI4NzAsMzI4NjcsMzIwNzcsMjk5NTcsMjk5MzgsMzUyMjAsMzMzMDYsMjYz''@;'; + put 'put ''ODAsMzI4NjYsMTYwOTAyLDMyODU5LDI5OTM2LDMzMDI3LDMwNTAwLDM1MjA5LDE1NzY0NCwzMDAzNSwxNTk0NDEsMzQ3MjksMzQ3NjYsMzMyMjQsMzQ3MDAsMzU0MDEsMzYwMTMsMzU2NTEsMzA1MDcsMjk5NDQsMzQwMTAsMTM4NzcsMjcwNTgsMzYyNjIsbnVsbCwzNTI0MSwyOTgwMCwyODA4''@;'; + put 'put ''OSwzNDc1MywxNDc0NzMsMjk5MjcsMTU4MzUsMjkwNDYsMjQ3NDAsMjQ5ODgsMTU1NjksMjkwMjYsMjQ2OTUsbnVsbCwzMjYyNSwxNjY3MDEsMjkyNjQsMjQ4MDksMTkzMjYsMjEwMjQsMTUzODQsMTQ2NjMxLDE1NTM1MSwxNjEzNjYsMTUyODgxLDEzNzU0MCwxMzU5MzQsMTcwMjQzLDE1OTE5''@;'; + put 'put ''NiwxNTk5MTcsMjM3NDUsMTU2MDc3LDE2NjQxNSwxNDUwMTUsMTMxMzEwLDE1Nzc2NiwxNTEzMTAsMTc3NjIsMjMzMjcsMTU2NDkyLDQwNzg0LDQwNjE0LDE1NjI2NywxMjI4OCw2NTI5MiwxMjI4OSwxMjI5MCw2NTI5NCw4MjMxLDY1MzA3LDY1MzA2LDY1MzExLDY1MjgxLDY1MDcyLDgyMzAs''@;'; + put 'put ''ODIyOSw2NTEwNCw2NTEwNSw2NTEwNiwxODMsNjUxMDgsNjUxMDksNjUxMTAsNjUxMTEsNjUzNzIsODIxMSw2NTA3Myw4MjEyLDY1MDc1LDk1ODgsNjUwNzYsNjUxMDMsNjUyODgsNjUyODksNjUwNzcsNjUwNzgsNjUzNzEsNjUzNzMsNjUwNzksNjUwODAsMTIzMDgsMTIzMDksNjUwODEsNjUw''@;'; + put 'put ''ODIsMTIzMDQsMTIzMDUsNjUwODMsNjUwODQsMTIyOTgsMTIyOTksNjUwODUsNjUwODYsMTIyOTYsMTIyOTcsNjUwODcsNjUwODgsMTIzMDAsMTIzMDEsNjUwODksNjUwOTAsMTIzMDIsMTIzMDMsNjUwOTEsNjUwOTIsNjUxMTMsNjUxMTQsNjUxMTUsNjUxMTYsNjUxMTcsNjUxMTgsODIxNiw4''@;'; + put 'put ''MjE3LDgyMjAsODIyMSwxMjMxNywxMjMxOCw4MjQ1LDgyNDIsNjUyODMsNjUyODYsNjUyOTAsODI1MSwxNjcsMTIyOTEsOTY3NSw5Njc5LDk2NTEsOTY1MCw5Njc4LDk3MzQsOTczMyw5NjcxLDk2NzAsOTYzMyw5NjMyLDk2NjEsOTY2MCwxMjk2Myw4NDUzLDE3NSw2NTUwNyw2NTM0Myw3MTcs''@;'; + put 'put ''NjUwOTcsNjUwOTgsNjUxMDEsNjUxMDIsNjUwOTksNjUxMDAsNjUxMTksNjUxMjAsNjUxMjEsNjUyOTEsNjUyOTMsMjE1LDI0NywxNzcsODczMCw2NTMwOCw2NTMxMCw2NTMwOSw4ODA2LDg4MDcsODgwMCw4NzM0LDg3ODYsODgwMSw2NTEyMiw2NTEyMyw2NTEyNCw2NTEyNSw2NTEyNiw2NTM3''@;'; + put 'put ''NCw4NzQ1LDg3NDYsODg2OSw4NzM2LDg3MzUsODg5NSwxMzI2NiwxMzI2NSw4NzQ3LDg3NTAsODc1Nyw4NzU2LDk3OTIsOTc5NCw4ODUzLDg4NTcsODU5Myw4NTk1LDg1OTIsODU5NCw4NTk4LDg1OTksODYwMSw4NjAwLDg3NDEsODczOSw2NTI5NSw2NTM0MCw4NzI1LDY1MTI4LDY1Mjg0LDY1''@;'; + put 'put ''NTA5LDEyMzA2LDY1NTA0LDY1NTA1LDY1Mjg1LDY1MzEyLDg0NTEsODQ1Nyw2NTEyOSw2NTEzMCw2NTEzMSwxMzI2OSwxMzIxMiwxMzIxMywxMzIxNCwxMzI2MiwxMzIxNywxMzE5OCwxMzE5OSwxMzI1MiwxNzYsMjA4MjUsMjA4MjcsMjA4MzAsMjA4MjksMjA4MzMsMjA4MzUsMjE5OTEsMjk5''@;'; + put 'put ''MjksMzE5NTAsOTYwMSw5NjAyLDk2MDMsOTYwNCw5NjA1LDk2MDYsOTYwNyw5NjA4LDk2MTUsOTYxNCw5NjEzLDk2MTIsOTYxMSw5NjEwLDk2MDksOTUzMiw5NTI0LDk1MTYsOTUwOCw5NTAwLDk2MjAsOTQ3Miw5NDc0LDk2MjEsOTQ4NCw5NDg4LDk0OTIsOTQ5Niw5NTgxLDk1ODIsOTU4NCw5''@;'; + put 'put ''NTgzLDk1NTIsOTU2Niw5NTc4LDk1NjksOTY5OCw5Njk5LDk3MDEsOTcwMCw5NTg1LDk1ODYsOTU4Nyw2NTI5Niw2NTI5Nyw2NTI5OCw2NTI5OSw2NTMwMCw2NTMwMSw2NTMwMiw2NTMwMyw2NTMwNCw2NTMwNSw4NTQ0LDg1NDUsODU0Niw4NTQ3LDg1NDgsODU0OSw4NTUwLDg1NTEsODU1Miw4''@;'; + put 'put ''NTUzLDEyMzIxLDEyMzIyLDEyMzIzLDEyMzI0LDEyMzI1LDEyMzI2LDEyMzI3LDEyMzI4LDEyMzI5LDIxMzEzLDIxMzE2LDIxMzE3LDY1MzEzLDY1MzE0LDY1MzE1LDY1MzE2LDY1MzE3LDY1MzE4LDY1MzE5LDY1MzIwLDY1MzIxLDY1MzIyLDY1MzIzLDY1MzI0LDY1MzI1LDY1MzI2LDY1MzI3''@;'; + put 'put ''LDY1MzI4LDY1MzI5LDY1MzMwLDY1MzMxLDY1MzMyLDY1MzMzLDY1MzM0LDY1MzM1LDY1MzM2LDY1MzM3LDY1MzM4LDY1MzQ1LDY1MzQ2LDY1MzQ3LDY1MzQ4LDY1MzQ5LDY1MzUwLDY1MzUxLDY1MzUyLDY1MzUzLDY1MzU0LDY1MzU1LDY1MzU2LDY1MzU3LDY1MzU4LDY1MzU5LDY1MzYwLDY1''@;'; + put 'put ''MzYxLDY1MzYyLDY1MzYzLDY1MzY0LDY1MzY1LDY1MzY2LDY1MzY3LDY1MzY4LDY1MzY5LDY1MzcwLDkxMyw5MTQsOTE1LDkxNiw5MTcsOTE4LDkxOSw5MjAsOTIxLDkyMiw5MjMsOTI0LDkyNSw5MjYsOTI3LDkyOCw5MjksOTMxLDkzMiw5MzMsOTM0LDkzNSw5MzYsOTM3LDk0NSw5NDYsOTQ3''@;'; + put 'put ''LDk0OCw5NDksOTUwLDk1MSw5NTIsOTUzLDk1NCw5NTUsOTU2LDk1Nyw5NTgsOTU5LDk2MCw5NjEsOTYzLDk2NCw5NjUsOTY2LDk2Nyw5NjgsOTY5LDEyNTQ5LDEyNTUwLDEyNTUxLDEyNTUyLDEyNTUzLDEyNTU0LDEyNTU1LDEyNTU2LDEyNTU3LDEyNTU4LDEyNTU5LDEyNTYwLDEyNTYxLDEy''@;'; + put 'put ''NTYyLDEyNTYzLDEyNTY0LDEyNTY1LDEyNTY2LDEyNTY3LDEyNTY4LDEyNTY5LDEyNTcwLDEyNTcxLDEyNTcyLDEyNTczLDEyNTc0LDEyNTc1LDEyNTc2LDEyNTc3LDEyNTc4LDEyNTc5LDEyNTgwLDEyNTgxLDEyNTgyLDEyNTgzLDEyNTg0LDEyNTg1LDcyOSw3MTMsNzE0LDcxMSw3MTUsOTIx''@;'; + put 'put ''Niw5MjE3LDkyMTgsOTIxOSw5MjIwLDkyMjEsOTIyMiw5MjIzLDkyMjQsOTIyNSw5MjI2LDkyMjcsOTIyOCw5MjI5LDkyMzAsOTIzMSw5MjMyLDkyMzMsOTIzNCw5MjM1LDkyMzYsOTIzNyw5MjM4LDkyMzksOTI0MCw5MjQxLDkyNDIsOTI0Myw5MjQ0LDkyNDUsOTI0Niw5MjQ3LDkyNDksODM2''@;'; + put 'put ''NCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsMTk5NjgsMjAwNTcsMTk5Njks''@;'; + put 'put ''MTk5NzEsMjAwMzUsMjAwNjEsMjAxMDIsMjAxMDgsMjAxNTQsMjA3OTksMjA4MzcsMjA4NDMsMjA5NjAsMjA5OTIsMjA5OTMsMjExNDcsMjEyNjksMjEzMTMsMjEzNDAsMjE0NDgsMTk5NzcsMTk5NzksMTk5NzYsMTk5NzgsMjAwMTEsMjAwMjQsMjA5NjEsMjAwMzcsMjAwNDAsMjAwNjMsMjAw''@;'; + put 'put ''NjIsMjAxMTAsMjAxMjksMjA4MDAsMjA5OTUsMjEyNDIsMjEzMTUsMjE0NDksMjE0NzUsMjIzMDMsMjI3NjMsMjI4MDUsMjI4MjMsMjI4OTksMjMzNzYsMjMzNzcsMjMzNzksMjM1NDQsMjM1NjcsMjM1ODYsMjM2MDgsMjM2NjUsMjQwMjksMjQwMzcsMjQwNDksMjQwNTAsMjQwNTEsMjQwNjIs''@;'; + put 'put ''MjQxNzgsMjQzMTgsMjQzMzEsMjQzMzksMjUxNjUsMTk5ODUsMTk5ODQsMTk5ODEsMjAwMTMsMjAwMTYsMjAwMjUsMjAwNDMsMjM2MDksMjAxMDQsMjAxMTMsMjAxMTcsMjAxMTQsMjAxMTYsMjAxMzAsMjAxNjEsMjAxNjAsMjAxNjMsMjAxNjYsMjAxNjcsMjAxNzMsMjAxNzAsMjAxNzEsMjAx''@;'; + put 'put ''NjQsMjA4MDMsMjA4MDEsMjA4MzksMjA4NDUsMjA4NDYsMjA4NDQsMjA4ODcsMjA5ODIsMjA5OTgsMjA5OTksMjFlMywyMTI0MywyMTI0NiwyMTI0NywyMTI3MCwyMTMwNSwyMTMyMCwyMTMxOSwyMTMxNywyMTM0MiwyMTM4MCwyMTQ1MSwyMTQ1MCwyMTQ1MywyMjc2NCwyMjgyNSwyMjgyNywy''@;'; + put 'put ''MjgyNiwyMjgyOSwyMzM4MCwyMzU2OSwyMzU4OCwyMzYxMCwyMzY2MywyNDA1MiwyNDE4NywyNDMxOSwyNDM0MCwyNDM0MSwyNDUxNSwyNTA5NiwyNTE0MiwyNTE2MywyNTE2NiwyNTkwMywyNTk5MSwyNjAwNywyNjAyMCwyNjA0MSwyNjA4NSwyNjM1MiwyNjM3NiwyNjQwOCwyNzQyNCwyNzQ5''@;'; + put 'put ''MCwyNzUxMywyNzU5NSwyNzYwNCwyNzYxMSwyNzY2MywyNzcwMCwyODc3OSwyOTIyNiwyOTIzOCwyOTI0MywyOTI1NSwyOTI3MywyOTI3NSwyOTM1NiwyOTU3OSwxOTk5MywxOTk5MCwxOTk4OSwxOTk4OCwxOTk5MiwyMDAyNywyMDA0NSwyMDA0NywyMDA0NiwyMDE5NywyMDE4NCwyMDE4MCwy''@;'; + put 'put ''MDE4MSwyMDE4MiwyMDE4MywyMDE5NSwyMDE5NiwyMDE4NSwyMDE5MCwyMDgwNSwyMDgwNCwyMDg3MywyMDg3NCwyMDkwOCwyMDk4NSwyMDk4NiwyMDk4NCwyMTAwMiwyMTE1MiwyMTE1MSwyMTI1MywyMTI1NCwyMTI3MSwyMTI3NywyMDE5MSwyMTMyMiwyMTMyMSwyMTM0NSwyMTM0NCwyMTM1''@;'; + put 'put ''OSwyMTM1OCwyMTQzNSwyMTQ4NywyMTQ3NiwyMTQ5MSwyMTQ4NCwyMTQ4NiwyMTQ4MSwyMTQ4MCwyMTUwMCwyMTQ5NiwyMTQ5MywyMTQ4MywyMTQ3OCwyMTQ4MiwyMTQ5MCwyMTQ4OSwyMTQ4OCwyMTQ3NywyMTQ4NSwyMTQ5OSwyMjIzNSwyMjIzNCwyMjgwNiwyMjgzMCwyMjgzMywyMjkwMCwy''@;'; + put 'put ''MjkwMiwyMzM4MSwyMzQyNywyMzYxMiwyNDA0MCwyNDAzOSwyNDAzOCwyNDA2NiwyNDA2NywyNDE3OSwyNDE4OCwyNDMyMSwyNDM0NCwyNDM0MywyNDUxNywyNTA5OCwyNTE3MSwyNTE3MiwyNTE3MCwyNTE2OSwyNjAyMSwyNjA4NiwyNjQxNCwyNjQxMiwyNjQxMCwyNjQxMSwyNjQxMywyNzQ5''@;'; + put 'put ''MSwyNzU5NywyNzY2NSwyNzY2NCwyNzcwNCwyNzcxMywyNzcxMiwyNzcxMCwyOTM1OSwyOTU3MiwyOTU3NywyOTkxNiwyOTkyNiwyOTk3NiwyOTk4MywyOTk5MiwyOTk5MywzZTQsMzAwMDEsMzAwMDIsMzAwMDMsMzAwOTEsMzAzMzMsMzAzODIsMzAzOTksMzA0NDYsMzA2ODMsMzA2OTAsMzA3''@;'; + put 'put ''MDcsMzEwMzQsMzExNjYsMzEzNDgsMzE0MzUsMTk5OTgsMTk5OTksMjAwNTAsMjAwNTEsMjAwNzMsMjAxMjEsMjAxMzIsMjAxMzQsMjAxMzMsMjAyMjMsMjAyMzMsMjAyNDksMjAyMzQsMjAyNDUsMjAyMzcsMjAyNDAsMjAyNDEsMjAyMzksMjAyMTAsMjAyMTQsMjAyMTksMjAyMDgsMjAyMTEs''@;'; + put 'put ''MjAyMjEsMjAyMjUsMjAyMzUsMjA4MDksMjA4MDcsMjA4MDYsMjA4MDgsMjA4NDAsMjA4NDksMjA4NzcsMjA5MTIsMjEwMTUsMjEwMDksMjEwMTAsMjEwMDYsMjEwMTQsMjExNTUsMjEyNTYsMjEyODEsMjEyODAsMjEzNjAsMjEzNjEsMjE1MTMsMjE1MTksMjE1MTYsMjE1MTQsMjE1MjAsMjE1''@;'; + put 'put ''MDUsMjE1MTUsMjE1MDgsMjE1MjEsMjE1MTcsMjE1MTIsMjE1MDcsMjE1MTgsMjE1MTAsMjE1MjIsMjIyNDAsMjIyMzgsMjIyMzcsMjIzMjMsMjIzMjAsMjIzMTIsMjIzMTcsMjIzMTYsMjIzMTksMjIzMTMsMjI4MDksMjI4MTAsMjI4MzksMjI4NDAsMjI5MTYsMjI5MDQsMjI5MTUsMjI5MDks''@;'; + put 'put ''MjI5MDUsMjI5MTQsMjI5MTMsMjMzODMsMjMzODQsMjM0MzEsMjM0MzIsMjM0MjksMjM0MzMsMjM1NDYsMjM1NzQsMjM2NzMsMjQwMzAsMjQwNzAsMjQxODIsMjQxODAsMjQzMzUsMjQzNDcsMjQ1MzcsMjQ1MzQsMjUxMDIsMjUxMDAsMjUxMDEsMjUxMDQsMjUxODcsMjUxNzksMjUxNzYsMjU5''@;'; + put 'put ''MTAsMjYwODksMjYwODgsMjYwOTIsMjYwOTMsMjYzNTQsMjYzNTUsMjYzNzcsMjY0MjksMjY0MjAsMjY0MTcsMjY0MjEsMjc0MjUsMjc0OTIsMjc1MTUsMjc2NzAsMjc3NDEsMjc3MzUsMjc3MzcsMjc3NDMsMjc3NDQsMjc3MjgsMjc3MzMsMjc3NDUsMjc3MzksMjc3MjUsMjc3MjYsMjg3ODQs''@;'; + put 'put ''MjkyNzksMjkyNzcsMzAzMzQsMzE0ODEsMzE4NTksMzE5OTIsMzI1NjYsMzI2NTAsMzI3MDEsMzI3NjksMzI3NzEsMzI3ODAsMzI3ODYsMzI4MTksMzI4OTUsMzI5MDUsMzI5MDcsMzI5MDgsMzMyNTEsMzMyNTgsMzMyNjcsMzMyNzYsMzMyOTIsMzMzMDcsMzMzMTEsMzMzOTAsMzMzOTQsMzM0''@;'; + put 'put ''MDYsMzQ0MTEsMzQ4ODAsMzQ4OTIsMzQ5MTUsMzUxOTksMzg0MzMsMjAwMTgsMjAxMzYsMjAzMDEsMjAzMDMsMjAyOTUsMjAzMTEsMjAzMTgsMjAyNzYsMjAzMTUsMjAzMDksMjAyNzIsMjAzMDQsMjAzMDUsMjAyODUsMjAyODIsMjAyODAsMjAyOTEsMjAzMDgsMjAyODQsMjAyOTQsMjAzMjMs''@;'; + put 'put ''MjAzMTYsMjAzMjAsMjAyNzEsMjAzMDIsMjAyNzgsMjAzMTMsMjAzMTcsMjAyOTYsMjAzMTQsMjA4MTIsMjA4MTEsMjA4MTMsMjA4NTMsMjA5MTgsMjA5MTksMjEwMjksMjEwMjgsMjEwMzMsMjEwMzQsMjEwMzIsMjExNjMsMjExNjEsMjExNjIsMjExNjQsMjEyODMsMjEzNjMsMjEzNjUsMjE1''@;'; + put 'put ''MzMsMjE1NDksMjE1MzQsMjE1NjYsMjE1NDIsMjE1ODIsMjE1NDMsMjE1NzQsMjE1NzEsMjE1NTUsMjE1NzYsMjE1NzAsMjE1MzEsMjE1NDUsMjE1NzgsMjE1NjEsMjE1NjMsMjE1NjAsMjE1NTAsMjE1NTcsMjE1NTgsMjE1MzYsMjE1NjQsMjE1NjgsMjE1NTMsMjE1NDcsMjE1MzUsMjE1NDgs''@;'; + put 'put ''MjIyNTAsMjIyNTYsMjIyNDQsMjIyNTEsMjIzNDYsMjIzNTMsMjIzMzYsMjIzNDksMjIzNDMsMjIzNTAsMjIzMzQsMjIzNTIsMjIzNTEsMjIzMzEsMjI3NjcsMjI4NDYsMjI5NDEsMjI5MzAsMjI5NTIsMjI5NDIsMjI5NDcsMjI5MzcsMjI5MzQsMjI5MjUsMjI5NDgsMjI5MzEsMjI5MjIsMjI5''@;'; + put 'put ''NDksMjMzODksMjMzODgsMjMzODYsMjMzODcsMjM0MzYsMjM0MzUsMjM0MzksMjM1OTYsMjM2MTYsMjM2MTcsMjM2MTUsMjM2MTQsMjM2OTYsMjM2OTcsMjM3MDAsMjM2OTIsMjQwNDMsMjQwNzYsMjQyMDcsMjQxOTksMjQyMDIsMjQzMTEsMjQzMjQsMjQzNTEsMjQ0MjAsMjQ0MTgsMjQ0Mzks''@;'; + put 'put ''MjQ0NDEsMjQ1MzYsMjQ1MjQsMjQ1MzUsMjQ1MjUsMjQ1NjEsMjQ1NTUsMjQ1NjgsMjQ1NTQsMjUxMDYsMjUxMDUsMjUyMjAsMjUyMzksMjUyMzgsMjUyMTYsMjUyMDYsMjUyMjUsMjUxOTcsMjUyMjYsMjUyMTIsMjUyMTQsMjUyMDksMjUyMDMsMjUyMzQsMjUxOTksMjUyNDAsMjUxOTgsMjUy''@;'; + put 'put ''MzcsMjUyMzUsMjUyMzMsMjUyMjIsMjU5MTMsMjU5MTUsMjU5MTIsMjYwOTcsMjYzNTYsMjY0NjMsMjY0NDYsMjY0NDcsMjY0NDgsMjY0NDksMjY0NjAsMjY0NTQsMjY0NjIsMjY0NDEsMjY0MzgsMjY0NjQsMjY0NTEsMjY0NTUsMjc0OTMsMjc1OTksMjc3MTQsMjc3NDIsMjc4MDEsMjc3Nzcs''@;'; + put 'put ''Mjc3ODQsMjc3ODUsMjc3ODEsMjc4MDMsMjc3NTQsMjc3NzAsMjc3OTIsMjc3NjAsMjc3ODgsMjc3NTIsMjc3OTgsMjc3OTQsMjc3NzMsMjc3NzksMjc3NjIsMjc3NzQsMjc3NjQsMjc3ODIsMjc3NjYsMjc3ODksMjc3OTYsMjc4MDAsMjc3NzgsMjg3OTAsMjg3OTYsMjg3OTcsMjg3OTIsMjky''@;'; + put 'put ''ODIsMjkyODEsMjkyODAsMjkzODAsMjkzNzgsMjk1OTAsMjk5OTYsMjk5OTUsMzAwMDcsMzAwMDgsMzAzMzgsMzA0NDcsMzA2OTEsMzExNjksMzExNjgsMzExNjcsMzEzNTAsMzE5OTUsMzI1OTcsMzI5MTgsMzI5MTUsMzI5MjUsMzI5MjAsMzI5MjMsMzI5MjIsMzI5NDYsMzMzOTEsMzM0MjYs''@;'; + put 'put ''MzM0MTksMzM0MjEsMzUyMTEsMzUyODIsMzUzMjgsMzU4OTUsMzU5MTAsMzU5MjUsMzU5OTcsMzYxOTYsMzYyMDgsMzYyNzUsMzY1MjMsMzY1NTQsMzY3NjMsMzY3ODQsMzY4MDIsMzY4MDYsMzY4MDUsMzY4MDQsMjQwMzMsMzcwMDksMzcwMjYsMzcwMzQsMzcwMzAsMzcwMjcsMzcxOTMsMzcz''@;'; + put 'put ''MTgsMzczMjQsMzg0NTAsMzg0NDYsMzg0NDksMzg0NDIsMzg0NDQsMjAwMDYsMjAwNTQsMjAwODMsMjAxMDcsMjAxMjMsMjAxMjYsMjAxMzksMjAxNDAsMjAzMzUsMjAzODEsMjAzNjUsMjAzMzksMjAzNTEsMjAzMzIsMjAzNzksMjAzNjMsMjAzNTgsMjAzNTUsMjAzMzYsMjAzNDEsMjAzNjAs''@;'; + put 'put ''MjAzMjksMjAzNDcsMjAzNzQsMjAzNTAsMjAzNjcsMjAzNjksMjAzNDYsMjA4MjAsMjA4MTgsMjA4MjEsMjA4NDEsMjA4NTUsMjA4NTQsMjA4NTYsMjA5MjUsMjA5ODksMjEwNTEsMjEwNDgsMjEwNDcsMjEwNTAsMjEwNDAsMjEwMzgsMjEwNDYsMjEwNTcsMjExODIsMjExNzksMjEzMzAsMjEz''@;'; + put 'put ''MzIsMjEzMzEsMjEzMjksMjEzNTAsMjEzNjcsMjEzNjgsMjEzNjksMjE0NjIsMjE0NjAsMjE0NjMsMjE2MTksMjE2MjEsMjE2NTQsMjE2MjQsMjE2NTMsMjE2MzIsMjE2MjcsMjE2MjMsMjE2MzYsMjE2NTAsMjE2MzgsMjE2MjgsMjE2NDgsMjE2MTcsMjE2MjIsMjE2NDQsMjE2NTgsMjE2MDIs''@;'; + put 'put ''MjE2MDgsMjE2NDMsMjE2MjksMjE2NDYsMjIyNjYsMjI0MDMsMjIzOTEsMjIzNzgsMjIzNzcsMjIzNjksMjIzNzQsMjIzNzIsMjIzOTYsMjI4MTIsMjI4NTcsMjI4NTUsMjI4NTYsMjI4NTIsMjI4NjgsMjI5NzQsMjI5NzEsMjI5OTYsMjI5NjksMjI5NTgsMjI5OTMsMjI5ODIsMjI5OTIsMjI5''@;'; + put 'put ''ODksMjI5ODcsMjI5OTUsMjI5ODYsMjI5NTksMjI5NjMsMjI5OTQsMjI5ODEsMjMzOTEsMjMzOTYsMjMzOTUsMjM0NDcsMjM0NTAsMjM0NDgsMjM0NTIsMjM0NDksMjM0NTEsMjM1NzgsMjM2MjQsMjM2MjEsMjM2MjIsMjM3MzUsMjM3MTMsMjM3MzYsMjM3MjEsMjM3MjMsMjM3MjksMjM3MzEs''@;'; + put 'put ''MjQwODgsMjQwOTAsMjQwODYsMjQwODUsMjQwOTEsMjQwODEsMjQxODQsMjQyMTgsMjQyMTUsMjQyMjAsMjQyMTMsMjQyMTQsMjQzMTAsMjQzNTgsMjQzNTksMjQzNjEsMjQ0NDgsMjQ0NDksMjQ0NDcsMjQ0NDQsMjQ1NDEsMjQ1NDQsMjQ1NzMsMjQ1NjUsMjQ1NzUsMjQ1OTEsMjQ1OTYsMjQ2''@;'; + put 'put ''MjMsMjQ2MjksMjQ1OTgsMjQ2MTgsMjQ1OTcsMjQ2MDksMjQ2MTUsMjQ2MTcsMjQ2MTksMjQ2MDMsMjUxMTAsMjUxMDksMjUxNTEsMjUxNTAsMjUxNTIsMjUyMTUsMjUyODksMjUyOTIsMjUyODQsMjUyNzksMjUyODIsMjUyNzMsMjUyOTgsMjUzMDcsMjUyNTksMjUyOTksMjUzMDAsMjUyOTEs''@;'; + put 'put ''MjUyODgsMjUyNTYsMjUyNzcsMjUyNzYsMjUyOTYsMjUzMDUsMjUyODcsMjUyOTMsMjUyNjksMjUzMDYsMjUyNjUsMjUzMDQsMjUzMDIsMjUzMDMsMjUyODYsMjUyNjAsMjUyOTQsMjU5MTgsMjYwMjMsMjYwNDQsMjYxMDYsMjYxMzIsMjYxMzEsMjYxMjQsMjYxMTgsMjYxMTQsMjYxMjYsMjYx''@;'; + put 'put ''MTIsMjYxMjcsMjYxMzMsMjYxMjIsMjYxMTksMjYzODEsMjYzNzksMjY0NzcsMjY1MDcsMjY1MTcsMjY0ODEsMjY1MjQsMjY0ODMsMjY0ODcsMjY1MDMsMjY1MjUsMjY1MTksMjY0NzksMjY0ODAsMjY0OTUsMjY1MDUsMjY0OTQsMjY1MTIsMjY0ODUsMjY1MjIsMjY1MTUsMjY0OTIsMjY0NzQs''@;'; + put 'put ''MjY0ODIsMjc0MjcsMjc0OTQsMjc0OTUsMjc1MTksMjc2NjcsMjc2NzUsMjc4NzUsMjc4ODAsMjc4OTEsMjc4MjUsMjc4NTIsMjc4NzcsMjc4MjcsMjc4MzcsMjc4MzgsMjc4MzYsMjc4NzQsMjc4MTksMjc4NjEsMjc4NTksMjc4MzIsMjc4NDQsMjc4MzMsMjc4NDEsMjc4MjIsMjc4NjMsMjc4''@;'; + put 'put ''NDUsMjc4ODksMjc4MzksMjc4MzUsMjc4NzMsMjc4NjcsMjc4NTAsMjc4MjAsMjc4ODcsMjc4NjgsMjc4NjIsMjc4NzIsMjg4MjEsMjg4MTQsMjg4MTgsMjg4MTAsMjg4MjUsMjkyMjgsMjkyMjksMjkyNDAsMjkyNTYsMjkyODcsMjkyODksMjkzNzYsMjkzOTAsMjk0MDEsMjkzOTksMjkzOTIs''@;'; + put 'put ''Mjk2MDksMjk2MDgsMjk1OTksMjk2MTEsMjk2MDUsMzAwMTMsMzAxMDksMzAxMDUsMzAxMDYsMzAzNDAsMzA0MDIsMzA0NTAsMzA0NTIsMzA2OTMsMzA3MTcsMzEwMzgsMzEwNDAsMzEwNDEsMzExNzcsMzExNzYsMzEzNTQsMzEzNTMsMzE0ODIsMzE5OTgsMzI1OTYsMzI2NTIsMzI2NTEsMzI3''@;'; + put 'put ''NzMsMzI5NTQsMzI5MzMsMzI5MzAsMzI5NDUsMzI5MjksMzI5MzksMzI5MzcsMzI5NDgsMzI5MzgsMzI5NDMsMzMyNTMsMzMyNzgsMzMyOTMsMzM0NTksMzM0MzcsMzM0MzMsMzM0NTMsMzM0NjksMzM0MzksMzM0NjUsMzM0NTcsMzM0NTIsMzM0NDUsMzM0NTUsMzM0NjQsMzM0NDMsMzM0NTYs''@;'; + put 'put ''MzM0NzAsMzM0NjMsMzQzODIsMzQ0MTcsMjEwMjEsMzQ5MjAsMzY1NTUsMzY4MTQsMzY4MjAsMzY4MTcsMzcwNDUsMzcwNDgsMzcwNDEsMzcwNDYsMzczMTksMzczMjksMzgyNjMsMzgyNzIsMzg0MjgsMzg0NjQsMzg0NjMsMzg0NTksMzg0NjgsMzg0NjYsMzg1ODUsMzg2MzIsMzg3MzgsMzg3''@;'; + put 'put ''NTAsMjAxMjcsMjAxNDEsMjAxNDIsMjA0NDksMjA0MDUsMjAzOTksMjA0MTUsMjA0NDgsMjA0MzMsMjA0MzEsMjA0NDUsMjA0MTksMjA0MDYsMjA0NDAsMjA0NDcsMjA0MjYsMjA0MzksMjAzOTgsMjA0MzIsMjA0MjAsMjA0MTgsMjA0NDIsMjA0MzAsMjA0NDYsMjA0MDcsMjA4MjMsMjA4ODIs''@;'; + put 'put ''MjA4ODEsMjA4OTYsMjEwNzAsMjEwNTksMjEwNjYsMjEwNjksMjEwNjgsMjEwNjcsMjEwNjMsMjExOTEsMjExOTMsMjExODcsMjExODUsMjEyNjEsMjEzMzUsMjEzNzEsMjE0MDIsMjE0NjcsMjE2NzYsMjE2OTYsMjE2NzIsMjE3MTAsMjE3MDUsMjE2ODgsMjE2NzAsMjE2ODMsMjE3MDMsMjE2''@;'; + put 'put ''OTgsMjE2OTMsMjE2NzQsMjE2OTcsMjE3MDAsMjE3MDQsMjE2NzksMjE2NzUsMjE2ODEsMjE2OTEsMjE2NzMsMjE2NzEsMjE2OTUsMjIyNzEsMjI0MDIsMjI0MTEsMjI0MzIsMjI0MzUsMjI0MzQsMjI0NzgsMjI0NDYsMjI0MTksMjI4NjksMjI4NjUsMjI4NjMsMjI4NjIsMjI4NjQsMjMwMDQs''@;'; + put 'put ''MjNlMywyMzAzOSwyMzAxMSwyMzAxNiwyMzA0MywyMzAxMywyMzAxOCwyMzAwMiwyMzAxNCwyMzA0MSwyMzAzNSwyMzQwMSwyMzQ1OSwyMzQ2MiwyMzQ2MCwyMzQ1OCwyMzQ2MSwyMzU1MywyMzYzMCwyMzYzMSwyMzYyOSwyMzYyNywyMzc2OSwyMzc2MiwyNDA1NSwyNDA5MywyNDEwMSwyNDA5''@;'; + put 'put ''NSwyNDE4OSwyNDIyNCwyNDIzMCwyNDMxNCwyNDMyOCwyNDM2NSwyNDQyMSwyNDQ1NiwyNDQ1MywyNDQ1OCwyNDQ1OSwyNDQ1NSwyNDQ2MCwyNDQ1NywyNDU5NCwyNDYwNSwyNDYwOCwyNDYxMywyNDU5MCwyNDYxNiwyNDY1MywyNDY4OCwyNDY4MCwyNDY3NCwyNDY0NiwyNDY0MywyNDY4NCwy''@;'; + put 'put ''NDY4MywyNDY4MiwyNDY3NiwyNTE1MywyNTMwOCwyNTM2NiwyNTM1MywyNTM0MCwyNTMyNSwyNTM0NSwyNTMyNiwyNTM0MSwyNTM1MSwyNTMyOSwyNTMzNSwyNTMyNywyNTMyNCwyNTM0MiwyNTMzMiwyNTM2MSwyNTM0NiwyNTkxOSwyNTkyNSwyNjAyNywyNjA0NSwyNjA4MiwyNjE0OSwyNjE1''@;'; + put 'put ''NywyNjE0NCwyNjE1MSwyNjE1OSwyNjE0MywyNjE1MiwyNjE2MSwyNjE0OCwyNjM1OSwyNjYyMywyNjU3OSwyNjYwOSwyNjU4MCwyNjU3NiwyNjYwNCwyNjU1MCwyNjU0MywyNjYxMywyNjYwMSwyNjYwNywyNjU2NCwyNjU3NywyNjU0OCwyNjU4NiwyNjU5NywyNjU1MiwyNjU3NSwyNjU5MCwy''@;'; + put 'put ''NjYxMSwyNjU0NCwyNjU4NSwyNjU5NCwyNjU4OSwyNjU3OCwyNzQ5OCwyNzUyMywyNzUyNiwyNzU3MywyNzYwMiwyNzYwNywyNzY3OSwyNzg0OSwyNzkxNSwyNzk1NCwyNzk0NiwyNzk2OSwyNzk0MSwyNzkxNiwyNzk1MywyNzkzNCwyNzkyNywyNzk2MywyNzk2NSwyNzk2NiwyNzk1OCwyNzkz''@;'; + put 'put ''MSwyNzg5MywyNzk2MSwyNzk0MywyNzk2MCwyNzk0NSwyNzk1MCwyNzk1NywyNzkxOCwyNzk0NywyODg0MywyODg1OCwyODg1MSwyODg0NCwyODg0NywyODg0NSwyODg1NiwyODg0NiwyODgzNiwyOTIzMiwyOTI5OCwyOTI5NSwyOTMwMCwyOTQxNywyOTQwOCwyOTQwOSwyOTYyMywyOTY0Miwy''@;'; + put 'put ''OTYyNywyOTYxOCwyOTY0NSwyOTYzMiwyOTYxOSwyOTk3OCwyOTk5NywzMDAzMSwzMDAyOCwzMDAzMCwzMDAyNywzMDEyMywzMDExNiwzMDExNywzMDExNCwzMDExNSwzMDMyOCwzMDM0MiwzMDM0MywzMDM0NCwzMDQwOCwzMDQwNiwzMDQwMywzMDQwNSwzMDQ2NSwzMDQ1NywzMDQ1NiwzMDQ3''@;'; + put 'put ''MywzMDQ3NSwzMDQ2MiwzMDQ2MCwzMDQ3MSwzMDY4NCwzMDcyMiwzMDc0MCwzMDczMiwzMDczMywzMTA0NiwzMTA0OSwzMTA0OCwzMTA0NywzMTE2MSwzMTE2MiwzMTE4NSwzMTE4NiwzMTE3OSwzMTM1OSwzMTM2MSwzMTQ4NywzMTQ4NSwzMTg2OSwzMjAwMiwzMjAwNSwzMmUzLDMyMDA5LDMy''@;'; + put 'put ''MDA3LDMyMDA0LDMyMDA2LDMyNTY4LDMyNjU0LDMyNzAzLDMyNzcyLDMyNzg0LDMyNzgxLDMyNzg1LDMyODIyLDMyOTgyLDMyOTk3LDMyOTg2LDMyOTYzLDMyOTY0LDMyOTcyLDMyOTkzLDMyOTg3LDMyOTc0LDMyOTkwLDMyOTk2LDMyOTg5LDMzMjY4LDMzMzE0LDMzNTExLDMzNTM5LDMzNTQx''@;'; + put 'put ''LDMzNTA3LDMzNDk5LDMzNTEwLDMzNTQwLDMzNTA5LDMzNTM4LDMzNTQ1LDMzNDkwLDMzNDk1LDMzNTIxLDMzNTM3LDMzNTAwLDMzNDkyLDMzNDg5LDMzNTAyLDMzNDkxLDMzNTAzLDMzNTE5LDMzNTQyLDM0Mzg0LDM0NDI1LDM0NDI3LDM0NDI2LDM0ODkzLDM0OTIzLDM1MjAxLDM1Mjg0LDM1''@;'; + put 'put ''MzM2LDM1MzMwLDM1MzMxLDM1OTk4LDM2ZTMsMzYyMTIsMzYyMTEsMzYyNzYsMzY1NTcsMzY1NTYsMzY4NDgsMzY4MzgsMzY4MzQsMzY4NDIsMzY4MzcsMzY4NDUsMzY4NDMsMzY4MzYsMzY4NDAsMzcwNjYsMzcwNzAsMzcwNTcsMzcwNTksMzcxOTUsMzcxOTQsMzczMjUsMzgyNzQsMzg0ODAs''@;'; + put 'put ''Mzg0NzUsMzg0NzYsMzg0NzcsMzg3NTQsMzg3NjEsMzg4NTksMzg4OTMsMzg4OTksMzg5MTMsMzkwODAsMzkxMzEsMzkxMzUsMzkzMTgsMzkzMjEsMjAwNTYsMjAxNDcsMjA0OTIsMjA0OTMsMjA1MTUsMjA0NjMsMjA1MTgsMjA1MTcsMjA0NzIsMjA1MjEsMjA1MDIsMjA0ODYsMjA1NDAsMjA1''@;'; + put 'put ''MTEsMjA1MDYsMjA0OTgsMjA0OTcsMjA0NzQsMjA0ODAsMjA1MDAsMjA1MjAsMjA0NjUsMjA1MTMsMjA0OTEsMjA1MDUsMjA1MDQsMjA0NjcsMjA0NjIsMjA1MjUsMjA1MjIsMjA0NzgsMjA1MjMsMjA0ODksMjA4NjAsMjA5MDAsMjA5MDEsMjA4OTgsMjA5NDEsMjA5NDAsMjA5MzQsMjA5Mzks''@;'; + put 'put ''MjEwNzgsMjEwODQsMjEwNzYsMjEwODMsMjEwODUsMjEyOTAsMjEzNzUsMjE0MDcsMjE0MDUsMjE0NzEsMjE3MzYsMjE3NzYsMjE3NjEsMjE4MTUsMjE3NTYsMjE3MzMsMjE3NDYsMjE3NjYsMjE3NTQsMjE3ODAsMjE3MzcsMjE3NDEsMjE3MjksMjE3NjksMjE3NDIsMjE3MzgsMjE3MzQsMjE3''@;'; + put 'put ''OTksMjE3NjcsMjE3NTcsMjE3NzUsMjIyNzUsMjIyNzYsMjI0NjYsMjI0ODQsMjI0NzUsMjI0NjcsMjI1MzcsMjI3OTksMjI4NzEsMjI4NzIsMjI4NzQsMjMwNTcsMjMwNjQsMjMwNjgsMjMwNzEsMjMwNjcsMjMwNTksMjMwMjAsMjMwNzIsMjMwNzUsMjMwODEsMjMwNzcsMjMwNTIsMjMwNDks''@;'; + put 'put ''MjM0MDMsMjM2NDAsMjM0NzIsMjM0NzUsMjM0NzgsMjM0NzYsMjM0NzAsMjM0NzcsMjM0ODEsMjM0ODAsMjM1NTYsMjM2MzMsMjM2MzcsMjM2MzIsMjM3ODksMjM4MDUsMjM4MDMsMjM3ODYsMjM3ODQsMjM3OTIsMjM3OTgsMjM4MDksMjM3OTYsMjQwNDYsMjQxMDksMjQxMDcsMjQyMzUsMjQy''@;'; + put 'put ''MzcsMjQyMzEsMjQzNjksMjQ0NjYsMjQ0NjUsMjQ0NjQsMjQ2NjUsMjQ2NzUsMjQ2NzcsMjQ2NTYsMjQ2NjEsMjQ2ODUsMjQ2ODEsMjQ2ODcsMjQ3MDgsMjQ3MzUsMjQ3MzAsMjQ3MTcsMjQ3MjQsMjQ3MTYsMjQ3MDksMjQ3MjYsMjUxNTksMjUzMzEsMjUzNTIsMjUzNDMsMjU0MjIsMjU0MDYs''@;'; + put 'put ''MjUzOTEsMjU0MjksMjU0MTAsMjU0MTQsMjU0MjMsMjU0MTcsMjU0MDIsMjU0MjQsMjU0MDUsMjUzODYsMjUzODcsMjUzODQsMjU0MjEsMjU0MjAsMjU5MjgsMjU5MjksMjYwMDksMjYwNDksMjYwNTMsMjYxNzgsMjYxODUsMjYxOTEsMjYxNzksMjYxOTQsMjYxODgsMjYxODEsMjYxNzcsMjYz''@;'; + put 'put ''NjAsMjYzODgsMjYzODksMjYzOTEsMjY2NTcsMjY2ODAsMjY2OTYsMjY2OTQsMjY3MDcsMjY2ODEsMjY2OTAsMjY3MDgsMjY2NjUsMjY4MDMsMjY2NDcsMjY3MDAsMjY3MDUsMjY2ODUsMjY2MTIsMjY3MDQsMjY2ODgsMjY2ODQsMjY2OTEsMjY2NjYsMjY2OTMsMjY2NDMsMjY2NDgsMjY2ODks''@;'; + put 'put ''Mjc1MzAsMjc1MjksMjc1NzUsMjc2ODMsMjc2ODcsMjc2ODgsMjc2ODYsMjc2ODQsMjc4ODgsMjgwMTAsMjgwNTMsMjgwNDAsMjgwMzksMjgwMDYsMjgwMjQsMjgwMjMsMjc5OTMsMjgwNTEsMjgwMTIsMjgwNDEsMjgwMTQsMjc5OTQsMjgwMjAsMjgwMDksMjgwNDQsMjgwNDIsMjgwMjUsMjgw''@;'; + put 'put ''MzcsMjgwMDUsMjgwNTIsMjg4NzQsMjg4ODgsMjg5MDAsMjg4ODksMjg4NzIsMjg4NzksMjkyNDEsMjkzMDUsMjk0MzYsMjk0MzMsMjk0MzcsMjk0MzIsMjk0MzEsMjk1NzQsMjk2NzcsMjk3MDUsMjk2NzgsMjk2NjQsMjk2NzQsMjk2NjIsMzAwMzYsMzAwNDUsMzAwNDQsMzAwNDIsMzAwNDEs''@;'; + put 'put ''MzAxNDIsMzAxNDksMzAxNTEsMzAxMzAsMzAxMzEsMzAxNDEsMzAxNDAsMzAxMzcsMzAxNDYsMzAxMzYsMzAzNDcsMzAzODQsMzA0MTAsMzA0MTMsMzA0MTQsMzA1MDUsMzA0OTUsMzA0OTYsMzA1MDQsMzA2OTcsMzA3NjgsMzA3NTksMzA3NzYsMzA3NDksMzA3NzIsMzA3NzUsMzA3NTcsMzA3''@;'; + put 'put ''NjUsMzA3NTIsMzA3NTEsMzA3NzAsMzEwNjEsMzEwNTYsMzEwNzIsMzEwNzEsMzEwNjIsMzEwNzAsMzEwNjksMzEwNjMsMzEwNjYsMzEyMDQsMzEyMDMsMzEyMDcsMzExOTksMzEyMDYsMzEyMDksMzExOTIsMzEzNjQsMzEzNjgsMzE0NDksMzE0OTQsMzE1MDUsMzE4ODEsMzIwMzMsMzIwMjMs''@;'; + put 'put ''MzIwMTEsMzIwMTAsMzIwMzIsMzIwMzQsMzIwMjAsMzIwMTYsMzIwMjEsMzIwMjYsMzIwMjgsMzIwMTMsMzIwMjUsMzIwMjcsMzI1NzAsMzI2MDcsMzI2NjAsMzI3MDksMzI3MDUsMzI3NzQsMzI3OTIsMzI3ODksMzI3OTMsMzI3OTEsMzI4MjksMzI4MzEsMzMwMDksMzMwMjYsMzMwMDgsMzMw''@;'; + put 'put ''MjksMzMwMDUsMzMwMTIsMzMwMzAsMzMwMTYsMzMwMTEsMzMwMzIsMzMwMjEsMzMwMzQsMzMwMjAsMzMwMDcsMzMyNjEsMzMyNjAsMzMyODAsMzMyOTYsMzMzMjIsMzMzMjMsMzMzMjAsMzMzMjQsMzM0NjcsMzM1NzksMzM2MTgsMzM2MjAsMzM2MTAsMzM1OTIsMzM2MTYsMzM2MDksMzM1ODks''@;'; + put 'put ''MzM1ODgsMzM2MTUsMzM1ODYsMzM1OTMsMzM1OTAsMzM1NTksMzM2MDAsMzM1ODUsMzM1NzYsMzM2MDMsMzQzODgsMzQ0NDIsMzQ0NzQsMzQ0NTEsMzQ0NjgsMzQ0NzMsMzQ0NDQsMzQ0NjcsMzQ0NjAsMzQ5MjgsMzQ5MzUsMzQ5NDUsMzQ5NDYsMzQ5NDEsMzQ5MzcsMzUzNTIsMzUzNDQsMzUz''@;'; + put 'put ''NDIsMzUzNDAsMzUzNDksMzUzMzgsMzUzNTEsMzUzNDcsMzUzNTAsMzUzNDMsMzUzNDUsMzU5MTIsMzU5NjIsMzU5NjEsMzYwMDEsMzYwMDIsMzYyMTUsMzY1MjQsMzY1NjIsMzY1NjQsMzY1NTksMzY3ODUsMzY4NjUsMzY4NzAsMzY4NTUsMzY4NjQsMzY4NTgsMzY4NTIsMzY4NjcsMzY4NjEs''@;'; + put 'put ''MzY4NjksMzY4NTYsMzcwMTMsMzcwODksMzcwODUsMzcwOTAsMzcyMDIsMzcxOTcsMzcxOTYsMzczMzYsMzczNDEsMzczMzUsMzczNDAsMzczMzcsMzgyNzUsMzg0OTgsMzg0OTksMzg0OTcsMzg0OTEsMzg0OTMsMzg1MDAsMzg0ODgsMzg0OTQsMzg1ODcsMzkxMzgsMzkzNDAsMzk1OTIsMzk2''@;'; + put 'put ''NDAsMzk3MTcsMzk3MzAsMzk3NDAsMjAwOTQsMjA2MDIsMjA2MDUsMjA1NzIsMjA1NTEsMjA1NDcsMjA1NTYsMjA1NzAsMjA1NTMsMjA1ODEsMjA1OTgsMjA1NTgsMjA1NjUsMjA1OTcsMjA1OTYsMjA1OTksMjA1NTksMjA0OTUsMjA1OTEsMjA1ODksMjA4MjgsMjA4ODUsMjA5NzYsMjEwOTgs''@;'; + put 'put ''MjExMDMsMjEyMDIsMjEyMDksMjEyMDgsMjEyMDUsMjEyNjQsMjEyNjMsMjEyNzMsMjEzMTEsMjEzMTIsMjEzMTAsMjE0NDMsMjYzNjQsMjE4MzAsMjE4NjYsMjE4NjIsMjE4MjgsMjE4NTQsMjE4NTcsMjE4MjcsMjE4MzQsMjE4MDksMjE4NDYsMjE4MzksMjE4NDUsMjE4MDcsMjE4NjAsMjE4''@;'; + put 'put ''MTYsMjE4MDYsMjE4NTIsMjE4MDQsMjE4NTksMjE4MTEsMjE4MjUsMjE4NDcsMjIyODAsMjIyODMsMjIyODEsMjI0OTUsMjI1MzMsMjI1MzgsMjI1MzQsMjI0OTYsMjI1MDAsMjI1MjIsMjI1MzAsMjI1ODEsMjI1MTksMjI1MjEsMjI4MTYsMjI4ODIsMjMwOTQsMjMxMDUsMjMxMTMsMjMxNDIs''@;'; + put 'put ''MjMxNDYsMjMxMDQsMjMxMDAsMjMxMzgsMjMxMzAsMjMxMTAsMjMxMTQsMjM0MDgsMjM0OTUsMjM0OTMsMjM0OTIsMjM0OTAsMjM0ODcsMjM0OTQsMjM1NjEsMjM1NjAsMjM1NTksMjM2NDgsMjM2NDQsMjM2NDUsMjM4MTUsMjM4MTQsMjM4MjIsMjM4MzUsMjM4MzAsMjM4NDIsMjM4MjUsMjM4''@;'; + put 'put ''NDksMjM4MjgsMjM4MzMsMjM4NDQsMjM4NDcsMjM4MzEsMjQwMzQsMjQxMjAsMjQxMTgsMjQxMTUsMjQxMTksMjQyNDcsMjQyNDgsMjQyNDYsMjQyNDUsMjQyNTQsMjQzNzMsMjQzNzUsMjQ0MDcsMjQ0MjgsMjQ0MjUsMjQ0MjcsMjQ0NzEsMjQ0NzMsMjQ0NzgsMjQ0NzIsMjQ0ODEsMjQ0ODAs''@;'; + put 'put ''MjQ0NzYsMjQ3MDMsMjQ3MzksMjQ3MTMsMjQ3MzYsMjQ3NDQsMjQ3NzksMjQ3NTYsMjQ4MDYsMjQ3NjUsMjQ3NzMsMjQ3NjMsMjQ3NTcsMjQ3OTYsMjQ3NjQsMjQ3OTIsMjQ3ODksMjQ3NzQsMjQ3OTksMjQ3NjAsMjQ3OTQsMjQ3NzUsMjUxMTQsMjUxMTUsMjUxNjAsMjU1MDQsMjU1MTEsMjU0''@;'; + put 'put ''NTgsMjU0OTQsMjU1MDYsMjU1MDksMjU0NjMsMjU0NDcsMjU0OTYsMjU1MTQsMjU0NTcsMjU1MTMsMjU0ODEsMjU0NzUsMjU0OTksMjU0NTEsMjU1MTIsMjU0NzYsMjU0ODAsMjU0OTcsMjU1MDUsMjU1MTYsMjU0OTAsMjU0ODcsMjU0NzIsMjU0NjcsMjU0NDksMjU0NDgsMjU0NjYsMjU5NDks''@;'; + put 'put ''MjU5NDIsMjU5MzcsMjU5NDUsMjU5NDMsMjE4NTUsMjU5MzUsMjU5NDQsMjU5NDEsMjU5NDAsMjYwMTIsMjYwMTEsMjYwMjgsMjYwNjMsMjYwNTksMjYwNjAsMjYwNjIsMjYyMDUsMjYyMDIsMjYyMTIsMjYyMTYsMjYyMTQsMjYyMDYsMjYzNjEsMjEyMDcsMjYzOTUsMjY3NTMsMjY3OTksMjY3''@;'; + put 'put ''ODYsMjY3NzEsMjY4MDUsMjY3NTEsMjY3NDIsMjY4MDEsMjY3OTEsMjY3NzUsMjY4MDAsMjY3NTUsMjY4MjAsMjY3OTcsMjY3NTgsMjY3NTcsMjY3NzIsMjY3ODEsMjY3OTIsMjY3ODMsMjY3ODUsMjY3NTQsMjc0NDIsMjc1NzgsMjc2MjcsMjc2MjgsMjc2OTEsMjgwNDYsMjgwOTIsMjgxNDcs''@;'; + put 'put ''MjgxMjEsMjgwODIsMjgxMjksMjgxMDgsMjgxMzIsMjgxNTUsMjgxNTQsMjgxNjUsMjgxMDMsMjgxMDcsMjgwNzksMjgxMTMsMjgwNzgsMjgxMjYsMjgxNTMsMjgwODgsMjgxNTEsMjgxNDksMjgxMDEsMjgxMTQsMjgxODYsMjgwODUsMjgxMjIsMjgxMzksMjgxMjAsMjgxMzgsMjgxNDUsMjgx''@;'; + put 'put ''NDIsMjgxMzYsMjgxMDIsMjgxMDAsMjgwNzQsMjgxNDAsMjgwOTUsMjgxMzQsMjg5MjEsMjg5MzcsMjg5MzgsMjg5MjUsMjg5MTEsMjkyNDUsMjkzMDksMjkzMTMsMjk0NjgsMjk0NjcsMjk0NjIsMjk0NTksMjk0NjUsMjk1NzUsMjk3MDEsMjk3MDYsMjk2OTksMjk3MDIsMjk2OTQsMjk3MDks''@;'; + put 'put ''Mjk5MjAsMjk5NDIsMjk5NDMsMjk5ODAsMjk5ODYsMzAwNTMsMzAwNTQsMzAwNTAsMzAwNjQsMzAwOTUsMzAxNjQsMzAxNjUsMzAxMzMsMzAxNTQsMzAxNTcsMzAzNTAsMzA0MjAsMzA0MTgsMzA0MjcsMzA1MTksMzA1MjYsMzA1MjQsMzA1MTgsMzA1MjAsMzA1MjIsMzA4MjcsMzA3ODcsMzA3''@;'; + put 'put ''OTgsMzEwNzcsMzEwODAsMzEwODUsMzEyMjcsMzEzNzgsMzEzODEsMzE1MjAsMzE1MjgsMzE1MTUsMzE1MzIsMzE1MjYsMzE1MTMsMzE1MTgsMzE1MzQsMzE4OTAsMzE4OTUsMzE4OTMsMzIwNzAsMzIwNjcsMzIxMTMsMzIwNDYsMzIwNTcsMzIwNjAsMzIwNjQsMzIwNDgsMzIwNTEsMzIwNjgs''@;'; + put 'put ''MzIwNDcsMzIwNjYsMzIwNTAsMzIwNDksMzI1NzMsMzI2NzAsMzI2NjYsMzI3MTYsMzI3MTgsMzI3MjIsMzI3OTYsMzI4NDIsMzI4MzgsMzMwNzEsMzMwNDYsMzMwNTksMzMwNjcsMzMwNjUsMzMwNzIsMzMwNjAsMzMyODIsMzMzMzMsMzMzMzUsMzMzMzQsMzMzMzcsMzM2NzgsMzM2OTQsMzM2''@;'; + put 'put ''ODgsMzM2NTYsMzM2OTgsMzM2ODYsMzM3MjUsMzM3MDcsMzM2ODIsMzM2NzQsMzM2ODMsMzM2NzMsMzM2OTYsMzM2NTUsMzM2NTksMzM2NjAsMzM2NzAsMzM3MDMsMzQzODksMjQ0MjYsMzQ1MDMsMzQ0OTYsMzQ0ODYsMzQ1MDAsMzQ0ODUsMzQ1MDIsMzQ1MDcsMzQ0ODEsMzQ0NzksMzQ1MDUs''@;'; + put 'put ''MzQ4OTksMzQ5NzQsMzQ5NTIsMzQ5ODcsMzQ5NjIsMzQ5NjYsMzQ5NTcsMzQ5NTUsMzUyMTksMzUyMTUsMzUzNzAsMzUzNTcsMzUzNjMsMzUzNjUsMzUzNzcsMzUzNzMsMzUzNTksMzUzNTUsMzUzNjIsMzU5MTMsMzU5MzAsMzYwMDksMzYwMTIsMzYwMTEsMzYwMDgsMzYwMTAsMzYwMDcsMzYx''@;'; + put 'put ''OTksMzYxOTgsMzYyODYsMzYyODIsMzY1NzEsMzY1NzUsMzY4ODksMzY4NzcsMzY4OTAsMzY4ODcsMzY4OTksMzY4OTUsMzY4OTMsMzY4ODAsMzY4ODUsMzY4OTQsMzY4OTYsMzY4NzksMzY4OTgsMzY4ODYsMzY4OTEsMzY4ODQsMzcwOTYsMzcxMDEsMzcxMTcsMzcyMDcsMzczMjYsMzczNjUs''@;'; + put 'put ''MzczNTAsMzczNDcsMzczNTEsMzczNTcsMzczNTMsMzgyODEsMzg1MDYsMzg1MTcsMzg1MTUsMzg1MjAsMzg1MTIsMzg1MTYsMzg1MTgsMzg1MTksMzg1MDgsMzg1OTIsMzg2MzQsMzg2MzMsMzE0NTYsMzE0NTUsMzg5MTQsMzg5MTUsMzk3NzAsNDAxNjUsNDA1NjUsNDA1NzUsNDA2MTMsNDA2''@;'; + put 'put ''MzUsMjA2NDIsMjA2MjEsMjA2MTMsMjA2MzMsMjA2MjUsMjA2MDgsMjA2MzAsMjA2MzIsMjA2MzQsMjYzNjgsMjA5NzcsMjExMDYsMjExMDgsMjExMDksMjEwOTcsMjEyMTQsMjEyMTMsMjEyMTEsMjEzMzgsMjE0MTMsMjE4ODMsMjE4ODgsMjE5MjcsMjE4ODQsMjE4OTgsMjE5MTcsMjE5MTIs''@;'; + put 'put ''MjE4OTAsMjE5MTYsMjE5MzAsMjE5MDgsMjE4OTUsMjE4OTksMjE4OTEsMjE5MzksMjE5MzQsMjE5MTksMjE4MjIsMjE5MzgsMjE5MTQsMjE5NDcsMjE5MzIsMjE5MzcsMjE4ODYsMjE4OTcsMjE5MzEsMjE5MTMsMjIyODUsMjI1NzUsMjI1NzAsMjI1ODAsMjI1NjQsMjI1NzYsMjI1NzcsMjI1''@;'; + put 'put ''NjEsMjI1NTcsMjI1NjAsMjI3NzcsMjI3NzgsMjI4ODAsMjMxNTksMjMxOTQsMjMxNjcsMjMxODYsMjMxOTUsMjMyMDcsMjM0MTEsMjM0MDksMjM1MDYsMjM1MDAsMjM1MDcsMjM1MDQsMjM1NjIsMjM1NjMsMjM2MDEsMjM4ODQsMjM4ODgsMjM4NjAsMjM4NzksMjQwNjEsMjQxMzMsMjQxMjUs''@;'; + put 'put ''MjQxMjgsMjQxMzEsMjQxOTAsMjQyNjYsMjQyNTcsMjQyNTgsMjQyNjAsMjQzODAsMjQ0MjksMjQ0ODksMjQ0OTAsMjQ0ODgsMjQ3ODUsMjQ4MDEsMjQ3NTQsMjQ3NTgsMjQ4MDAsMjQ4NjAsMjQ4NjcsMjQ4MjYsMjQ4NTMsMjQ4MTYsMjQ4MjcsMjQ4MjAsMjQ5MzYsMjQ4MTcsMjQ4NDYsMjQ4''@;'; + put 'put ''MjIsMjQ4NDEsMjQ4MzIsMjQ4NTAsMjUxMTksMjUxNjEsMjU1MDcsMjU0ODQsMjU1NTEsMjU1MzYsMjU1NzcsMjU1NDUsMjU1NDIsMjU1NDksMjU1NTQsMjU1NzEsMjU1NTIsMjU1NjksMjU1NTgsMjU1ODEsMjU1ODIsMjU0NjIsMjU1ODgsMjU1NzgsMjU1NjMsMjU2ODIsMjU1NjIsMjU1OTMs''@;'; + put 'put ''MjU5NTAsMjU5NTgsMjU5NTQsMjU5NTUsMjYwMDEsMjZlMywyNjAzMSwyNjIyMiwyNjIyNCwyNjIyOCwyNjIzMCwyNjIyMywyNjI1NywyNjIzNCwyNjIzOCwyNjIzMSwyNjM2NiwyNjM2NywyNjM5OSwyNjM5NywyNjg3NCwyNjgzNywyNjg0OCwyNjg0MCwyNjgzOSwyNjg4NSwyNjg0NywyNjg2''@;'; + put 'put ''OSwyNjg2MiwyNjg1NSwyNjg3MywyNjgzNCwyNjg2NiwyNjg1MSwyNjgyNywyNjgyOSwyNjg5MywyNjg5OCwyNjg5NCwyNjgyNSwyNjg0MiwyNjk5MCwyNjg3NSwyNzQ1NCwyNzQ1MCwyNzQ1MywyNzU0NCwyNzU0MiwyNzU4MCwyNzYzMSwyNzY5NCwyNzY5NSwyNzY5MiwyODIwNywyODIxNiwy''@;'; + put 'put ''ODI0NCwyODE5MywyODIxMCwyODI2MywyODIzNCwyODE5MiwyODE5NywyODE5NSwyODE4NywyODI1MSwyODI0OCwyODE5NiwyODI0NiwyODI3MCwyODIwNSwyODE5OCwyODI3MSwyODIxMiwyODIzNywyODIxOCwyODIwNCwyODIyNywyODE4OSwyODIyMiwyODM2MywyODI5NywyODE4NSwyODIz''@;'; + put 'put ''OCwyODI1OSwyODIyOCwyODI3NCwyODI2NSwyODI1NSwyODk1MywyODk1NCwyODk2NiwyODk3NiwyODk2MSwyODk4MiwyOTAzOCwyODk1NiwyOTI2MCwyOTMxNiwyOTMxMiwyOTQ5NCwyOTQ3NywyOTQ5MiwyOTQ4MSwyOTc1NCwyOTczOCwyOTc0NywyOTczMCwyOTczMywyOTc0OSwyOTc1MCwy''@;'; + put 'put ''OTc0OCwyOTc0MywyOTcyMywyOTczNCwyOTczNiwyOTk4OSwyOTk5MCwzMDA1OSwzMDA1OCwzMDE3OCwzMDE3MSwzMDE3OSwzMDE2OSwzMDE2OCwzMDE3NCwzMDE3NiwzMDMzMSwzMDMzMiwzMDM1OCwzMDM1NSwzMDM4OCwzMDQyOCwzMDU0MywzMDcwMSwzMDgxMywzMDgyOCwzMDgzMSwzMTI0''@;'; + put 'put ''NSwzMTI0MCwzMTI0MywzMTIzNywzMTIzMiwzMTM4NCwzMTM4MywzMTM4MiwzMTQ2MSwzMTQ1OSwzMTU2MSwzMTU3NCwzMTU1OCwzMTU2OCwzMTU3MCwzMTU3MiwzMTU2NSwzMTU2MywzMTU2NywzMTU2OSwzMTkwMywzMTkwOSwzMjA5NCwzMjA4MCwzMjEwNCwzMjA4NSwzMjA0MywzMjExMCwz''@;'; + put 'put ''MjExNCwzMjA5NywzMjEwMiwzMjA5OCwzMjExMiwzMjExNSwyMTg5MiwzMjcyNCwzMjcyNSwzMjc3OSwzMjg1MCwzMjkwMSwzMzEwOSwzMzEwOCwzMzA5OSwzMzEwNSwzMzEwMiwzMzA4MSwzMzA5NCwzMzA4NiwzMzEwMCwzMzEwNywzMzE0MCwzMzI5OCwzMzMwOCwzMzc2OSwzMzc5NSwzMzc4''@;'; + put 'put ''NCwzMzgwNSwzMzc2MCwzMzczMywzMzgwMywzMzcyOSwzMzc3NSwzMzc3NywzMzc4MCwzMzg3OSwzMzgwMiwzMzc3NiwzMzgwNCwzMzc0MCwzMzc4OSwzMzc3OCwzMzczOCwzMzg0OCwzMzgwNiwzMzc5NiwzMzc1NiwzMzc5OSwzMzc0OCwzMzc1OSwzNDM5NSwzNDUyNywzNDUyMSwzNDU0MSwz''@;'; + put 'put ''NDUxNiwzNDUyMywzNDUzMiwzNDUxMiwzNDUyNiwzNDkwMywzNTAwOSwzNTAxMCwzNDk5MywzNTIwMywzNTIyMiwzNTM4NywzNTQyNCwzNTQxMywzNTQyMiwzNTM4OCwzNTM5MywzNTQxMiwzNTQxOSwzNTQwOCwzNTM5OCwzNTM4MCwzNTM4NiwzNTM4MiwzNTQxNCwzNTkzNywzNTk3MCwzNjAx''@;'; + put 'put ''NSwzNjAyOCwzNjAxOSwzNjAyOSwzNjAzMywzNjAyNywzNjAzMiwzNjAyMCwzNjAyMywzNjAyMiwzNjAzMSwzNjAyNCwzNjIzNCwzNjIyOSwzNjIyNSwzNjMwMiwzNjMxNywzNjI5OSwzNjMxNCwzNjMwNSwzNjMwMCwzNjMxNSwzNjI5NCwzNjYwMywzNjYwMCwzNjYwNCwzNjc2NCwzNjkxMCwz''@;'; + put 'put ''NjkxNywzNjkxMywzNjkyMCwzNjkxNCwzNjkxOCwzNzEyMiwzNzEwOSwzNzEyOSwzNzExOCwzNzIxOSwzNzIyMSwzNzMyNywzNzM5NiwzNzM5NywzNzQxMSwzNzM4NSwzNzQwNiwzNzM4OSwzNzM5MiwzNzM4MywzNzM5MywzODI5MiwzODI4NywzODI4MywzODI4OSwzODI5MSwzODI5MCwzODI4''@;'; + put 'put ''NiwzODUzOCwzODU0MiwzODUzOSwzODUyNSwzODUzMywzODUzNCwzODU0MSwzODUxNCwzODUzMiwzODU5MywzODU5NywzODU5NiwzODU5OCwzODU5OSwzODYzOSwzODY0MiwzODg2MCwzODkxNywzODkxOCwzODkyMCwzOTE0MywzOTE0NiwzOTE1MSwzOTE0NSwzOTE1NCwzOTE0OSwzOTM0Miwz''@;'; + put 'put ''OTM0MSw0MDY0Myw0MDY1Myw0MDY1NywyMDA5OCwyMDY1MywyMDY2MSwyMDY1OCwyMDY1OSwyMDY3NywyMDY3MCwyMDY1MiwyMDY2MywyMDY2NywyMDY1NSwyMDY3OSwyMTExOSwyMTExMSwyMTExNywyMTIxNSwyMTIyMiwyMTIyMCwyMTIxOCwyMTIxOSwyMTI5NSwyMTk4MywyMTk5MiwyMTk3''@;'; + put 'put ''MSwyMTk5MCwyMTk2NiwyMTk4MCwyMTk1OSwyMTk2OSwyMTk4NywyMTk4OCwyMTk5OSwyMTk3OCwyMTk4NSwyMTk1NywyMTk1OCwyMTk4OSwyMTk2MSwyMjI5MCwyMjI5MSwyMjYyMiwyMjYwOSwyMjYxNiwyMjYxNSwyMjYxOCwyMjYxMiwyMjYzNSwyMjYwNCwyMjYzNywyMjYwMiwyMjYyNiwy''@;'; + put 'put ''MjYxMCwyMjYwMywyMjg4NywyMzIzMywyMzI0MSwyMzI0NCwyMzIzMCwyMzIyOSwyMzIyOCwyMzIxOSwyMzIzNCwyMzIxOCwyMzkxMywyMzkxOSwyNDE0MCwyNDE4NSwyNDI2NSwyNDI2NCwyNDMzOCwyNDQwOSwyNDQ5MiwyNDQ5NCwyNDg1OCwyNDg0NywyNDkwNCwyNDg2MywyNDgxOSwyNDg1''@;'; + put 'put ''OSwyNDgyNSwyNDgzMywyNDg0MCwyNDkxMCwyNDkwOCwyNDkwMCwyNDkwOSwyNDg5NCwyNDg4NCwyNDg3MSwyNDg0NSwyNDgzOCwyNDg4NywyNTEyMSwyNTEyMiwyNTYxOSwyNTY2MiwyNTYzMCwyNTY0MiwyNTY0NSwyNTY2MSwyNTY0NCwyNTYxNSwyNTYyOCwyNTYyMCwyNTYxMywyNTY1NCwy''@;'; + put 'put ''NTYyMiwyNTYyMywyNTYwNiwyNTk2NCwyNjAxNSwyNjAzMiwyNjI2MywyNjI0OSwyNjI0NywyNjI0OCwyNjI2MiwyNjI0NCwyNjI2NCwyNjI1MywyNjM3MSwyNzAyOCwyNjk4OSwyNjk3MCwyNjk5OSwyNjk3NiwyNjk2NCwyNjk5NywyNjkyOCwyNzAxMCwyNjk1NCwyNjk4NCwyNjk4NywyNjk3''@;'; + put 'put ''NCwyNjk2MywyNzAwMSwyNzAxNCwyNjk3MywyNjk3OSwyNjk3MSwyNzQ2MywyNzUwNiwyNzU4NCwyNzU4MywyNzYwMywyNzY0NSwyODMyMiwyODMzNSwyODM3MSwyODM0MiwyODM1NCwyODMwNCwyODMxNywyODM1OSwyODM1NywyODMyNSwyODMxMiwyODM0OCwyODM0NiwyODMzMSwyODM2OSwy''@;'; + put 'put ''ODMxMCwyODMxNiwyODM1NiwyODM3MiwyODMzMCwyODMyNywyODM0MCwyOTAwNiwyOTAxNywyOTAzMywyOTAyOCwyOTAwMSwyOTAzMSwyOTAyMCwyOTAzNiwyOTAzMCwyOTAwNCwyOTAyOSwyOTAyMiwyODk5OCwyOTAzMiwyOTAxNCwyOTI0MiwyOTI2NiwyOTQ5NSwyOTUwOSwyOTUwMywyOTUw''@;'; + put 'put ''MiwyOTgwNywyOTc4NiwyOTc4MSwyOTc5MSwyOTc5MCwyOTc2MSwyOTc1OSwyOTc4NSwyOTc4NywyOTc4OCwzMDA3MCwzMDA3MiwzMDIwOCwzMDE5MiwzMDIwOSwzMDE5NCwzMDE5MywzMDIwMiwzMDIwNywzMDE5NiwzMDE5NSwzMDQzMCwzMDQzMSwzMDU1NSwzMDU3MSwzMDU2NiwzMDU1OCwz''@;'; + put 'put ''MDU2MywzMDU4NSwzMDU3MCwzMDU3MiwzMDU1NiwzMDU2NSwzMDU2OCwzMDU2MiwzMDcwMiwzMDg2MiwzMDg5NiwzMDg3MSwzMDg3MiwzMDg2MCwzMDg1NywzMDg0NCwzMDg2NSwzMDg2NywzMDg0NywzMTA5OCwzMTEwMywzMTEwNSwzMzgzNiwzMTE2NSwzMTI2MCwzMTI1OCwzMTI2NCwzMTI1''@;'; + put 'put ''MiwzMTI2MywzMTI2MiwzMTM5MSwzMTM5MiwzMTYwNywzMTY4MCwzMTU4NCwzMTU5OCwzMTU5MSwzMTkyMSwzMTkyMywzMTkyNSwzMjE0NywzMjEyMSwzMjE0NSwzMjEyOSwzMjE0MywzMjA5MSwzMjYyMiwzMjYxNywzMjYxOCwzMjYyNiwzMjY4MSwzMjY4MCwzMjY3NiwzMjg1NCwzMjg1Niwz''@;'; + put 'put ''MjkwMiwzMjkwMCwzMzEzNywzMzEzNiwzMzE0NCwzMzEyNSwzMzEzNCwzMzEzOSwzMzEzMSwzMzE0NSwzMzE0NiwzMzEyNiwzMzI4NSwzMzM1MSwzMzkyMiwzMzkxMSwzMzg1MywzMzg0MSwzMzkwOSwzMzg5NCwzMzg5OSwzMzg2NSwzMzkwMCwzMzg4MywzMzg1MiwzMzg0NSwzMzg4OSwzMzg5''@;'; + put 'put ''MSwzMzg5NywzMzkwMSwzMzg2MiwzNDM5OCwzNDM5NiwzNDM5OSwzNDU1MywzNDU3OSwzNDU2OCwzNDU2NywzNDU2MCwzNDU1OCwzNDU1NSwzNDU2MiwzNDU2MywzNDU2NiwzNDU3MCwzNDkwNSwzNTAzOSwzNTAyOCwzNTAzMywzNTAzNiwzNTAzMiwzNTAzNywzNTA0MSwzNTAxOCwzNTAyOSwz''@;'; + put 'put ''NTAyNiwzNTIyOCwzNTI5OSwzNTQzNSwzNTQ0MiwzNTQ0MywzNTQzMCwzNTQzMywzNTQ0MCwzNTQ2MywzNTQ1MiwzNTQyNywzNTQ4OCwzNTQ0MSwzNTQ2MSwzNTQzNywzNTQyNiwzNTQzOCwzNTQzNiwzNTQ0OSwzNTQ1MSwzNTM5MCwzNTQzMiwzNTkzOCwzNTk3OCwzNTk3NywzNjA0MiwzNjAz''@;'; + put 'put ''OSwzNjA0MCwzNjAzNiwzNjAxOCwzNjAzNSwzNjAzNCwzNjAzNywzNjMyMSwzNjMxOSwzNjMyOCwzNjMzNSwzNjMzOSwzNjM0NiwzNjMzMCwzNjMyNCwzNjMyNiwzNjUzMCwzNjYxMSwzNjYxNywzNjYwNiwzNjYxOCwzNjc2NywzNjc4NiwzNjkzOSwzNjkzOCwzNjk0NywzNjkzMCwzNjk0OCwz''@;'; + put 'put ''NjkyNCwzNjk0OSwzNjk0NCwzNjkzNSwzNjk0MywzNjk0MiwzNjk0MSwzNjk0NSwzNjkyNiwzNjkyOSwzNzEzOCwzNzE0MywzNzIyOCwzNzIyNiwzNzIyNSwzNzMyMSwzNzQzMSwzNzQ2MywzNzQzMiwzNzQzNywzNzQ0MCwzNzQzOCwzNzQ2NywzNzQ1MSwzNzQ3NiwzNzQ1NywzNzQyOCwzNzQ0''@;'; + put 'put ''OSwzNzQ1MywzNzQ0NSwzNzQzMywzNzQzOSwzNzQ2NiwzODI5NiwzODU1MiwzODU0OCwzODU0OSwzODYwNSwzODYwMywzODYwMSwzODYwMiwzODY0NywzODY1MSwzODY0OSwzODY0NiwzODc0MiwzODc3MiwzODc3NCwzODkyOCwzODkyOSwzODkzMSwzODkyMiwzODkzMCwzODkyNCwzOTE2NCwz''@;'; + put 'put ''OTE1NiwzOTE2NSwzOTE2NiwzOTM0NywzOTM0NSwzOTM0OCwzOTY0OSw0MDE2OSw0MDU3OCw0MDcxOCw0MDcyMyw0MDczNiwyMDcxMSwyMDcxOCwyMDcwOSwyMDY5NCwyMDcxNywyMDY5OCwyMDY5MywyMDY4NywyMDY4OSwyMDcyMSwyMDY4NiwyMDcxMywyMDgzNCwyMDk3OSwyMTEyMywyMTEy''@;'; + put 'put ''MiwyMTI5NywyMTQyMSwyMjAxNCwyMjAxNiwyMjA0MywyMjAzOSwyMjAxMywyMjAzNiwyMjAyMiwyMjAyNSwyMjAyOSwyMjAzMCwyMjAwNywyMjAzOCwyMjA0NywyMjAyNCwyMjAzMiwyMjAwNiwyMjI5NiwyMjI5NCwyMjY0NSwyMjY1NCwyMjY1OSwyMjY3NSwyMjY2NiwyMjY0OSwyMjY2MSwy''@;'; + put 'put ''MjY1MywyMjc4MSwyMjgyMSwyMjgxOCwyMjgyMCwyMjg5MCwyMjg4OSwyMzI2NSwyMzI3MCwyMzI3MywyMzI1NSwyMzI1NCwyMzI1NiwyMzI2NywyMzQxMywyMzUxOCwyMzUyNywyMzUyMSwyMzUyNSwyMzUyNiwyMzUyOCwyMzUyMiwyMzUyNCwyMzUxOSwyMzU2NSwyMzY1MCwyMzk0MCwyMzk0''@;'; + put 'put ''MywyNDE1NSwyNDE2MywyNDE0OSwyNDE1MSwyNDE0OCwyNDI3NSwyNDI3OCwyNDMzMCwyNDM5MCwyNDQzMiwyNDUwNSwyNDkwMywyNDg5NSwyNDkwNywyNDk1MSwyNDkzMCwyNDkzMSwyNDkyNywyNDkyMiwyNDkyMCwyNDk0OSwyNTEzMCwyNTczNSwyNTY4OCwyNTY4NCwyNTc2NCwyNTcyMCwy''@;'; + put 'put ''NTY5NSwyNTcyMiwyNTY4MSwyNTcwMywyNTY1MiwyNTcwOSwyNTcyMywyNTk3MCwyNjAxNywyNjA3MSwyNjA3MCwyNjI3NCwyNjI4MCwyNjI2OSwyNzAzNiwyNzA0OCwyNzAyOSwyNzA3MywyNzA1NCwyNzA5MSwyNzA4MywyNzAzNSwyNzA2MywyNzA2NywyNzA1MSwyNzA2MCwyNzA4OCwyNzA4''@;'; + put 'put ''NSwyNzA1MywyNzA4NCwyNzA0NiwyNzA3NSwyNzA0MywyNzQ2NSwyNzQ2OCwyNzY5OSwyODQ2NywyODQzNiwyODQxNCwyODQzNSwyODQwNCwyODQ1NywyODQ3OCwyODQ0OCwyODQ2MCwyODQzMSwyODQxOCwyODQ1MCwyODQxNSwyODM5OSwyODQyMiwyODQ2NSwyODQ3MiwyODQ2NiwyODQ1MSwy''@;'; + put 'put ''ODQzNywyODQ1OSwyODQ2MywyODU1MiwyODQ1OCwyODM5NiwyODQxNywyODQwMiwyODM2NCwyODQwNywyOTA3NiwyOTA4MSwyOTA1MywyOTA2NiwyOTA2MCwyOTA3NCwyOTI0NiwyOTMzMCwyOTMzNCwyOTUwOCwyOTUyMCwyOTc5NiwyOTc5NSwyOTgwMiwyOTgwOCwyOTgwNSwyOTk1NiwzMDA5''@;'; + put 'put ''NywzMDI0NywzMDIyMSwzMDIxOSwzMDIxNywzMDIyNywzMDQzMywzMDQzNSwzMDU5NiwzMDU4OSwzMDU5MSwzMDU2MSwzMDkxMywzMDg3OSwzMDg4NywzMDg5OSwzMDg4OSwzMDg4MywzMTExOCwzMTExOSwzMTExNywzMTI3OCwzMTI4MSwzMTQwMiwzMTQwMSwzMTQ2OSwzMTQ3MSwzMTY0OSwz''@;'; + put 'put ''MTYzNywzMTYyNywzMTYwNSwzMTYzOSwzMTY0NSwzMTYzNiwzMTYzMSwzMTY3MiwzMTYyMywzMTYyMCwzMTkyOSwzMTkzMywzMTkzNCwzMjE4NywzMjE3NiwzMjE1NiwzMjE4OSwzMjE5MCwzMjE2MCwzMjIwMiwzMjE4MCwzMjE3OCwzMjE3NywzMjE4NiwzMjE2MiwzMjE5MSwzMjE4MSwzMjE4''@;'; + put 'put ''NCwzMjE3MywzMjIxMCwzMjE5OSwzMjE3MiwzMjYyNCwzMjczNiwzMjczNywzMjczNSwzMjg2MiwzMjg1OCwzMjkwMywzMzEwNCwzMzE1MiwzMzE2NywzMzE2MCwzMzE2MiwzMzE1MSwzMzE1NCwzMzI1NSwzMzI3NCwzMzI4NywzMzMwMCwzMzMxMCwzMzM1NSwzMzk5MywzMzk4MywzMzk5MCwz''@;'; + put 'put ''Mzk4OCwzMzk0NSwzMzk1MCwzMzk3MCwzMzk0OCwzMzk5NSwzMzk3NiwzMzk4NCwzNDAwMywzMzkzNiwzMzk4MCwzNDAwMSwzMzk5NCwzNDYyMywzNDU4OCwzNDYxOSwzNDU5NCwzNDU5NywzNDYxMiwzNDU4NCwzNDY0NSwzNDYxNSwzNDYwMSwzNTA1OSwzNTA3NCwzNTA2MCwzNTA2NSwzNTA2''@;'; + put 'put ''NCwzNTA2OSwzNTA0OCwzNTA5OCwzNTA1NSwzNTQ5NCwzNTQ2OCwzNTQ4NiwzNTQ5MSwzNTQ2OSwzNTQ4OSwzNTQ3NSwzNTQ5MiwzNTQ5OCwzNTQ5MywzNTQ5NiwzNTQ4MCwzNTQ3MywzNTQ4MiwzNTQ5NSwzNTk0NiwzNTk4MSwzNTk4MCwzNjA1MSwzNjA0OSwzNjA1MCwzNjIwMywzNjI0OSwz''@;'; + put 'put ''NjI0NSwzNjM0OCwzNjYyOCwzNjYyNiwzNjYyOSwzNjYyNywzNjc3MSwzNjk2MCwzNjk1MiwzNjk1NiwzNjk2MywzNjk1MywzNjk1OCwzNjk2MiwzNjk1NywzNjk1NSwzNzE0NSwzNzE0NCwzNzE1MCwzNzIzNywzNzI0MCwzNzIzOSwzNzIzNiwzNzQ5NiwzNzUwNCwzNzUwOSwzNzUyOCwzNzUy''@;'; + put 'put ''NiwzNzQ5OSwzNzUyMywzNzUzMiwzNzU0NCwzNzUwMCwzNzUyMSwzODMwNSwzODMxMiwzODMxMywzODMwNywzODMwOSwzODMwOCwzODU1MywzODU1NiwzODU1NSwzODYwNCwzODYxMCwzODY1NiwzODc4MCwzODc4OSwzODkwMiwzODkzNSwzODkzNiwzOTA4NywzOTA4OSwzOTE3MSwzOTE3Mywz''@;'; + put 'put ''OTE4MCwzOTE3NywzOTM2MSwzOTU5OSwzOTYwMCwzOTY1NCwzOTc0NSwzOTc0Niw0MDE4MCw0MDE4Miw0MDE3OSw0MDYzNiw0MDc2Myw0MDc3OCwyMDc0MCwyMDczNiwyMDczMSwyMDcyNSwyMDcyOSwyMDczOCwyMDc0NCwyMDc0NSwyMDc0MSwyMDk1NiwyMTEyNywyMTEyOCwyMTEyOSwyMTEz''@;'; + put 'put ''MywyMTEzMCwyMTIzMiwyMTQyNiwyMjA2MiwyMjA3NSwyMjA3MywyMjA2NiwyMjA3OSwyMjA2OCwyMjA1NywyMjA5OSwyMjA5NCwyMjEwMywyMjEzMiwyMjA3MCwyMjA2MywyMjA2NCwyMjY1NiwyMjY4NywyMjY4NiwyMjcwNywyMjY4NCwyMjcwMiwyMjY5NywyMjY5NCwyMjg5MywyMzMwNSwy''@;'; + put 'put ''MzI5MSwyMzMwNywyMzI4NSwyMzMwOCwyMzMwNCwyMzUzNCwyMzUzMiwyMzUyOSwyMzUzMSwyMzY1MiwyMzY1MywyMzk2NSwyMzk1NiwyNDE2MiwyNDE1OSwyNDE2MSwyNDI5MCwyNDI4MiwyNDI4NywyNDI4NSwyNDI5MSwyNDI4OCwyNDM5MiwyNDQzMywyNDUwMywyNDUwMSwyNDk1MCwyNDkz''@;'; + put 'put ''NSwyNDk0MiwyNDkyNSwyNDkxNywyNDk2MiwyNDk1NiwyNDk0NCwyNDkzOSwyNDk1OCwyNDk5OSwyNDk3NiwyNTAwMywyNDk3NCwyNTAwNCwyNDk4NiwyNDk5NiwyNDk4MCwyNTAwNiwyNTEzNCwyNTcwNSwyNTcxMSwyNTcyMSwyNTc1OCwyNTc3OCwyNTczNiwyNTc0NCwyNTc3NiwyNTc2NSwy''@;'; + put 'put ''NTc0NywyNTc0OSwyNTc2OSwyNTc0NiwyNTc3NCwyNTc3MywyNTc3MSwyNTc1NCwyNTc3MiwyNTc1MywyNTc2MiwyNTc3OSwyNTk3MywyNTk3NSwyNTk3NiwyNjI4NiwyNjI4MywyNjI5MiwyNjI4OSwyNzE3MSwyNzE2NywyNzExMiwyNzEzNywyNzE2NiwyNzE2MSwyNzEzMywyNzE2OSwyNzE1''@;'; + put 'put ''NSwyNzE0NiwyNzEyMywyNzEzOCwyNzE0MSwyNzExNywyNzE1MywyNzQ3MiwyNzQ3MCwyNzU1NiwyNzU4OSwyNzU5MCwyODQ3OSwyODU0MCwyODU0OCwyODQ5NywyODUxOCwyODUwMCwyODU1MCwyODUyNSwyODUwNywyODUzNiwyODUyNiwyODU1OCwyODUzOCwyODUyOCwyODUxNiwyODU2Nywy''@;'; + put 'put ''ODUwNCwyODM3MywyODUyNywyODUxMiwyODUxMSwyOTA4NywyOTEwMCwyOTEwNSwyOTA5NiwyOTI3MCwyOTMzOSwyOTUxOCwyOTUyNywyOTgwMSwyOTgzNSwyOTgyNywyOTgyMiwyOTgyNCwzMDA3OSwzMDI0MCwzMDI0OSwzMDIzOSwzMDI0NCwzMDI0NiwzMDI0MSwzMDI0MiwzMDM2MiwzMDM5''@;'; + put 'put ''NCwzMDQzNiwzMDYwNiwzMDU5OSwzMDYwNCwzMDYwOSwzMDYwMywzMDkyMywzMDkxNywzMDkwNiwzMDkyMiwzMDkxMCwzMDkzMywzMDkwOCwzMDkyOCwzMTI5NSwzMTI5MiwzMTI5NiwzMTI5MywzMTI4NywzMTI5MSwzMTQwNywzMTQwNiwzMTY2MSwzMTY2NSwzMTY4NCwzMTY2OCwzMTY4Niwz''@;'; + put 'put ''MTY4NywzMTY4MSwzMTY0OCwzMTY5MiwzMTk0NiwzMjIyNCwzMjI0NCwzMjIzOSwzMjI1MSwzMjIxNiwzMjIzNiwzMjIyMSwzMjIzMiwzMjIyNywzMjIxOCwzMjIyMiwzMjIzMywzMjE1OCwzMjIxNywzMjI0MiwzMjI0OSwzMjYyOSwzMjYzMSwzMjY4NywzMjc0NSwzMjgwNiwzMzE3OSwzMzE4''@;'; + put 'put ''MCwzMzE4MSwzMzE4NCwzMzE3OCwzMzE3NiwzNDA3MSwzNDEwOSwzNDA3NCwzNDAzMCwzNDA5MiwzNDA5MywzNDA2NywzNDA2NSwzNDA4MywzNDA4MSwzNDA2OCwzNDAyOCwzNDA4NSwzNDA0NywzNDA1NCwzNDY5MCwzNDY3NiwzNDY3OCwzNDY1NiwzNDY2MiwzNDY4MCwzNDY2NCwzNDY0OSwz''@;'; + put 'put ''NDY0NywzNDYzNiwzNDY0MywzNDkwNywzNDkwOSwzNTA4OCwzNTA3OSwzNTA5MCwzNTA5MSwzNTA5MywzNTA4MiwzNTUxNiwzNTUzOCwzNTUyNywzNTUyNCwzNTQ3NywzNTUzMSwzNTU3NiwzNTUwNiwzNTUyOSwzNTUyMiwzNTUxOSwzNTUwNCwzNTU0MiwzNTUzMywzNTUxMCwzNTUxMywzNTU0''@;'; + put 'put ''NywzNTkxNiwzNTkxOCwzNTk0OCwzNjA2NCwzNjA2MiwzNjA3MCwzNjA2OCwzNjA3NiwzNjA3NywzNjA2NiwzNjA2NywzNjA2MCwzNjA3NCwzNjA2NSwzNjIwNSwzNjI1NSwzNjI1OSwzNjM5NSwzNjM2OCwzNjM4MSwzNjM4NiwzNjM2NywzNjM5MywzNjM4MywzNjM4NSwzNjM4MiwzNjUzOCwz''@;'; + put 'put ''NjYzNywzNjYzNSwzNjYzOSwzNjY0OSwzNjY0NiwzNjY1MCwzNjYzNiwzNjYzOCwzNjY0NSwzNjk2OSwzNjk3NCwzNjk2OCwzNjk3MywzNjk4MywzNzE2OCwzNzE2NSwzNzE1OSwzNzE2OSwzNzI1NSwzNzI1NywzNzI1OSwzNzI1MSwzNzU3MywzNzU2MywzNzU1OSwzNzYxMCwzNzU0OCwzNzYw''@;'; + put 'put ''NCwzNzU2OSwzNzU1NSwzNzU2NCwzNzU4NiwzNzU3NSwzNzYxNiwzNzU1NCwzODMxNywzODMyMSwzODY2MCwzODY2MiwzODY2MywzODY2NSwzODc1MiwzODc5NywzODc5NSwzODc5OSwzODk0NSwzODk1NSwzODk0MCwzOTA5MSwzOTE3OCwzOTE4NywzOTE4NiwzOTE5MiwzOTM4OSwzOTM3Niwz''@;'; + put 'put ''OTM5MSwzOTM4NywzOTM3NywzOTM4MSwzOTM3OCwzOTM4NSwzOTYwNywzOTY2MiwzOTY2MywzOTcxOSwzOTc0OSwzOTc0OCwzOTc5OSwzOTc5MSw0MDE5OCw0MDIwMSw0MDE5NSw0MDYxNyw0MDYzOCw0MDY1NCwyMjY5Niw0MDc4NiwyMDc1NCwyMDc2MCwyMDc1NiwyMDc1MiwyMDc1NywyMDg2''@;'; + put 'put ''NCwyMDkwNiwyMDk1NywyMTEzNywyMTEzOSwyMTIzNSwyMjEwNSwyMjEyMywyMjEzNywyMjEyMSwyMjExNiwyMjEzNiwyMjEyMiwyMjEyMCwyMjExNywyMjEyOSwyMjEyNywyMjEyNCwyMjExNCwyMjEzNCwyMjcyMSwyMjcxOCwyMjcyNywyMjcyNSwyMjg5NCwyMzMyNSwyMzM0OCwyMzQxNiwy''@;'; + put 'put ''MzUzNiwyMzU2NiwyNDM5NCwyNTAxMCwyNDk3NywyNTAwMSwyNDk3MCwyNTAzNywyNTAxNCwyNTAyMiwyNTAzNCwyNTAzMiwyNTEzNiwyNTc5NywyNTc5MywyNTgwMywyNTc4NywyNTc4OCwyNTgxOCwyNTc5NiwyNTc5OSwyNTc5NCwyNTgwNSwyNTc5MSwyNTgxMCwyNTgxMiwyNTc5MCwyNTk3''@;'; + put 'put ''MiwyNjMxMCwyNjMxMywyNjI5NywyNjMwOCwyNjMxMSwyNjI5NiwyNzE5NywyNzE5MiwyNzE5NCwyNzIyNSwyNzI0MywyNzIyNCwyNzE5MywyNzIwNCwyNzIzNCwyNzIzMywyNzIxMSwyNzIwNywyNzE4OSwyNzIzMSwyNzIwOCwyNzQ4MSwyNzUxMSwyNzY1MywyODYxMCwyODU5MywyODU3Nywy''@;'; + put 'put ''ODYxMSwyODU4MCwyODYwOSwyODU4MywyODU5NSwyODYwOCwyODYwMSwyODU5OCwyODU4MiwyODU3NiwyODU5NiwyOTExOCwyOTEyOSwyOTEzNiwyOTEzOCwyOTEyOCwyOTE0MSwyOTExMywyOTEzNCwyOTE0NSwyOTE0OCwyOTEyMywyOTEyNCwyOTU0NCwyOTg1MiwyOTg1OSwyOTg0OCwyOTg1''@;'; + put 'put ''NSwyOTg1NCwyOTkyMiwyOTk2NCwyOTk2NSwzMDI2MCwzMDI2NCwzMDI2NiwzMDQzOSwzMDQzNywzMDYyNCwzMDYyMiwzMDYyMywzMDYyOSwzMDk1MiwzMDkzOCwzMDk1NiwzMDk1MSwzMTE0MiwzMTMwOSwzMTMxMCwzMTMwMiwzMTMwOCwzMTMwNywzMTQxOCwzMTcwNSwzMTc2MSwzMTY4OSwz''@;'; + put 'put ''MTcxNiwzMTcwNywzMTcxMywzMTcyMSwzMTcxOCwzMTk1NywzMTk1OCwzMjI2NiwzMjI3MywzMjI2NCwzMjI4MywzMjI5MSwzMjI4NiwzMjI4NSwzMjI2NSwzMjI3MiwzMjYzMywzMjY5MCwzMjc1MiwzMjc1MywzMjc1MCwzMjgwOCwzMzIwMywzMzE5MywzMzE5MiwzMzI3NSwzMzI4OCwzMzM2''@;'; + put 'put ''OCwzMzM2OSwzNDEyMiwzNDEzNywzNDEyMCwzNDE1MiwzNDE1MywzNDExNSwzNDEyMSwzNDE1NywzNDE1NCwzNDE0MiwzNDY5MSwzNDcxOSwzNDcxOCwzNDcyMiwzNDcwMSwzNDkxMywzNTExNCwzNTEyMiwzNTEwOSwzNTExNSwzNTEwNSwzNTI0MiwzNTIzOCwzNTU1OCwzNTU3OCwzNTU2Mywz''@;'; + put 'put ''NTU2OSwzNTU4NCwzNTU0OCwzNTU1OSwzNTU2NiwzNTU4MiwzNTU4NSwzNTU4NiwzNTU3NSwzNTU2NSwzNTU3MSwzNTU3NCwzNTU4MCwzNTk0NywzNTk0OSwzNTk4NywzNjA4NCwzNjQyMCwzNjQwMSwzNjQwNCwzNjQxOCwzNjQwOSwzNjQwNSwzNjY2NywzNjY1NSwzNjY2NCwzNjY1OSwzNjc3''@;'; + put 'put ''NiwzNjc3NCwzNjk4MSwzNjk4MCwzNjk4NCwzNjk3OCwzNjk4OCwzNjk4NiwzNzE3MiwzNzI2NiwzNzY2NCwzNzY4NiwzNzYyNCwzNzY4MywzNzY3OSwzNzY2NiwzNzYyOCwzNzY3NSwzNzYzNiwzNzY1OCwzNzY0OCwzNzY3MCwzNzY2NSwzNzY1MywzNzY3OCwzNzY1NywzODMzMSwzODU2Nywz''@;'; + put 'put ''ODU2OCwzODU3MCwzODYxMywzODY3MCwzODY3MywzODY3OCwzODY2OSwzODY3NSwzODY3MSwzODc0NywzODc0OCwzODc1OCwzODgwOCwzODk2MCwzODk2OCwzODk3MSwzODk2NywzODk1NywzODk2OSwzODk0OCwzOTE4NCwzOTIwOCwzOTE5OCwzOTE5NSwzOTIwMSwzOTE5NCwzOTQwNSwzOTM5''@;'; + put 'put ''NCwzOTQwOSwzOTYwOCwzOTYxMiwzOTY3NSwzOTY2MSwzOTcyMCwzOTgyNSw0MDIxMyw0MDIyNyw0MDIzMCw0MDIzMiw0MDIxMCw0MDIxOSw0MDY2NCw0MDY2MCw0MDg0NSw0MDg2MCwyMDc3OCwyMDc2NywyMDc2OSwyMDc4NiwyMTIzNywyMjE1OCwyMjE0NCwyMjE2MCwyMjE0OSwyMjE1MSwy''@;'; + put 'put ''MjE1OSwyMjc0MSwyMjczOSwyMjczNywyMjczNCwyMzM0NCwyMzMzOCwyMzMzMiwyMzQxOCwyMzYwNywyMzY1NiwyMzk5NiwyMzk5NCwyMzk5NywyMzk5MiwyNDE3MSwyNDM5NiwyNDUwOSwyNTAzMywyNTAyNiwyNTAzMSwyNTA2MiwyNTAzNSwyNTEzOCwyNTE0MCwyNTgwNiwyNTgwMiwyNTgx''@;'; + put 'put ''NiwyNTgyNCwyNTg0MCwyNTgzMCwyNTgzNiwyNTg0MSwyNTgyNiwyNTgzNywyNTk4NiwyNTk4NywyNjMyOSwyNjMyNiwyNzI2NCwyNzI4NCwyNzI2OCwyNzI5OCwyNzI5MiwyNzM1NSwyNzI5OSwyNzI2MiwyNzI4NywyNzI4MCwyNzI5NiwyNzQ4NCwyNzU2NiwyNzYxMCwyNzY1NiwyODYzMiwy''@;'; + put 'put ''ODY1NywyODYzOSwyODY0MCwyODYzNSwyODY0NCwyODY1MSwyODY1NSwyODU0NCwyODY1MiwyODY0MSwyODY0OSwyODYyOSwyODY1NCwyODY1NiwyOTE1OSwyOTE1MSwyOTE2NiwyOTE1OCwyOTE1NywyOTE2NSwyOTE2NCwyOTE3MiwyOTE1MiwyOTIzNywyOTI1NCwyOTU1MiwyOTU1NCwyOTg2''@;'; + put 'put ''NSwyOTg3MiwyOTg2MiwyOTg2NCwzMDI3OCwzMDI3NCwzMDI4NCwzMDQ0MiwzMDY0MywzMDYzNCwzMDY0MCwzMDYzNiwzMDYzMSwzMDYzNywzMDcwMywzMDk2NywzMDk3MCwzMDk2NCwzMDk1OSwzMDk3NywzMTE0MywzMTE0NiwzMTMxOSwzMTQyMywzMTc1MSwzMTc1NywzMTc0MiwzMTczNSwz''@;'; + put 'put ''MTc1NiwzMTcxMiwzMTk2OCwzMTk2NCwzMTk2NiwzMTk3MCwzMTk2NywzMTk2MSwzMTk2NSwzMjMwMiwzMjMxOCwzMjMyNiwzMjMxMSwzMjMwNiwzMjMyMywzMjI5OSwzMjMxNywzMjMwNSwzMjMyNSwzMjMyMSwzMjMwOCwzMjMxMywzMjMyOCwzMjMwOSwzMjMxOSwzMjMwMywzMjU4MCwzMjc1''@;'; + put 'put ''NSwzMjc2NCwzMjg4MSwzMjg4MiwzMjg4MCwzMjg3OSwzMjg4MywzMzIyMiwzMzIxOSwzMzIxMCwzMzIxOCwzMzIxNiwzMzIxNSwzMzIxMywzMzIyNSwzMzIxNCwzMzI1NiwzMzI4OSwzMzM5MywzNDIxOCwzNDE4MCwzNDE3NCwzNDIwNCwzNDE5MywzNDE5NiwzNDIyMywzNDIwMywzNDE4Mywz''@;'; + put 'put ''NDIxNiwzNDE4NiwzNDQwNywzNDc1MiwzNDc2OSwzNDczOSwzNDc3MCwzNDc1OCwzNDczMSwzNDc0NywzNDc0NiwzNDc2MCwzNDc2MywzNTEzMSwzNTEyNiwzNTE0MCwzNTEyOCwzNTEzMywzNTI0NCwzNTU5OCwzNTYwNywzNTYwOSwzNTYxMSwzNTU5NCwzNTYxNiwzNTYxMywzNTU4OCwzNTYw''@;'; + put 'put ''MCwzNTkwNSwzNTkwMywzNTk1NSwzNjA5MCwzNjA5MywzNjA5MiwzNjA4OCwzNjA5MSwzNjI2NCwzNjQyNSwzNjQyNywzNjQyNCwzNjQyNiwzNjY3NiwzNjY3MCwzNjY3NCwzNjY3NywzNjY3MSwzNjk5MSwzNjk4OSwzNjk5NiwzNjk5MywzNjk5NCwzNjk5MiwzNzE3NywzNzI4MywzNzI3OCwz''@;'; + put 'put ''NzI3NiwzNzcwOSwzNzc2MiwzNzY3MiwzNzc0OSwzNzcwNiwzNzczMywzNzcwNywzNzY1NiwzNzc1OCwzNzc0MCwzNzcyMywzNzc0NCwzNzcyMiwzNzcxNiwzODM0NiwzODM0NywzODM0OCwzODM0NCwzODM0MiwzODU3NywzODU4NCwzODYxNCwzODY4NCwzODY4NiwzODgxNiwzODg2NywzODk4''@;'; + put 'put ''MiwzOTA5NCwzOTIyMSwzOTQyNSwzOTQyMywzOTg1NCwzOTg1MSwzOTg1MCwzOTg1Myw0MDI1MSw0MDI1NSw0MDU4Nyw0MDY1NSw0MDY3MCw0MDY2OCw0MDY2OSw0MDY2Nyw0MDc2Niw0MDc3OSwyMTQ3NCwyMjE2NSwyMjE5MCwyMjc0NSwyMjc0NCwyMzM1MiwyNDQxMywyNTA1OSwyNTEzOSwy''@;'; + put 'put ''NTg0NCwyNTg0MiwyNTg1NCwyNTg2MiwyNTg1MCwyNTg1MSwyNTg0NywyNjAzOSwyNjMzMiwyNjQwNiwyNzMxNSwyNzMwOCwyNzMzMSwyNzMyMywyNzMyMCwyNzMzMCwyNzMxMCwyNzMxMSwyNzQ4NywyNzUxMiwyNzU2NywyODY4MSwyODY4MywyODY3MCwyODY3OCwyODY2NiwyODY4OSwyODY4''@;'; + put 'put ''NywyOTE3OSwyOTE4MCwyOTE4MiwyOTE3NiwyOTU1OSwyOTU1NywyOTg2MywyOTg4NywyOTk3MywzMDI5NCwzMDI5NiwzMDI5MCwzMDY1MywzMDY1NSwzMDY1MSwzMDY1MiwzMDk5MCwzMTE1MCwzMTMyOSwzMTMzMCwzMTMyOCwzMTQyOCwzMTQyOSwzMTc4NywzMTc4MywzMTc4NiwzMTc3NCwz''@;'; + put 'put ''MTc3OSwzMTc3NywzMTk3NSwzMjM0MCwzMjM0MSwzMjM1MCwzMjM0NiwzMjM1MywzMjMzOCwzMjM0NSwzMjU4NCwzMjc2MSwzMjc2MywzMjg4NywzMjg4NiwzMzIyOSwzMzIzMSwzMzI5MCwzNDI1NSwzNDIxNywzNDI1MywzNDI1NiwzNDI0OSwzNDIyNCwzNDIzNCwzNDIzMywzNDIxNCwzNDc5''@;'; + put 'put ''OSwzNDc5NiwzNDgwMiwzNDc4NCwzNTIwNiwzNTI1MCwzNTMxNiwzNTYyNCwzNTY0MSwzNTYyOCwzNTYyNywzNTkyMCwzNjEwMSwzNjQ0MSwzNjQ1MSwzNjQ1NCwzNjQ1MiwzNjQ0NywzNjQzNywzNjU0NCwzNjY4MSwzNjY4NSwzNjk5OSwzNjk5NSwzN2UzLDM3MjkxLDM3MjkyLDM3MzI4LDM3''@;'; + put 'put ''NzgwLDM3NzcwLDM3NzgyLDM3Nzk0LDM3ODExLDM3ODA2LDM3ODA0LDM3ODA4LDM3Nzg0LDM3Nzg2LDM3NzgzLDM4MzU2LDM4MzU4LDM4MzUyLDM4MzU3LDM4NjI2LDM4NjIwLDM4NjE3LDM4NjE5LDM4NjIyLDM4NjkyLDM4ODE5LDM4ODIyLDM4ODI5LDM4OTA1LDM4OTg5LDM4OTkxLDM4OTg4''@;'; + put 'put ''LDM4OTkwLDM4OTk1LDM5MDk4LDM5MjMwLDM5MjMxLDM5MjI5LDM5MjE0LDM5MzMzLDM5NDM4LDM5NjE3LDM5NjgzLDM5Njg2LDM5NzU5LDM5NzU4LDM5NzU3LDM5ODgyLDM5ODgxLDM5OTMzLDM5ODgwLDM5ODcyLDQwMjczLDQwMjg1LDQwMjg4LDQwNjcyLDQwNzI1LDQwNzQ4LDIwNzg3LDIy''@;'; + put 'put ''MTgxLDIyNzUwLDIyNzUxLDIyNzU0LDIzNTQxLDQwODQ4LDI0MzAwLDI1MDc0LDI1MDc5LDI1MDc4LDI1MDc3LDI1ODU2LDI1ODcxLDI2MzM2LDI2MzMzLDI3MzY1LDI3MzU3LDI3MzU0LDI3MzQ3LDI4Njk5LDI4NzAzLDI4NzEyLDI4Njk4LDI4NzAxLDI4NjkzLDI4Njk2LDI5MTkwLDI5MTk3''@;'; + put 'put ''LDI5MjcyLDI5MzQ2LDI5NTYwLDI5NTYyLDI5ODg1LDI5ODk4LDI5OTIzLDMwMDg3LDMwMDg2LDMwMzAzLDMwMzA1LDMwNjYzLDMxMDAxLDMxMTUzLDMxMzM5LDMxMzM3LDMxODA2LDMxODA3LDMxODAwLDMxODA1LDMxNzk5LDMxODA4LDMyMzYzLDMyMzY1LDMyMzc3LDMyMzYxLDMyMzYyLDMy''@;'; + put 'put ''NjQ1LDMyMzcxLDMyNjk0LDMyNjk3LDMyNjk2LDMzMjQwLDM0MjgxLDM0MjY5LDM0MjgyLDM0MjYxLDM0Mjc2LDM0Mjc3LDM0Mjk1LDM0ODExLDM0ODIxLDM0ODI5LDM0ODA5LDM0ODE0LDM1MTY4LDM1MTY3LDM1MTU4LDM1MTY2LDM1NjQ5LDM1Njc2LDM1NjcyLDM1NjU3LDM1Njc0LDM1NjYy''@;'; + put 'put ''LDM1NjYzLDM1NjU0LDM1NjczLDM2MTA0LDM2MTA2LDM2NDc2LDM2NDY2LDM2NDg3LDM2NDcwLDM2NDYwLDM2NDc0LDM2NDY4LDM2NjkyLDM2Njg2LDM2NzgxLDM3MDAyLDM3MDAzLDM3Mjk3LDM3Mjk0LDM3ODU3LDM3ODQxLDM3ODU1LDM3ODI3LDM3ODMyLDM3ODUyLDM3ODUzLDM3ODQ2LDM3''@;'; + put 'put ''ODU4LDM3ODM3LDM3ODQ4LDM3ODYwLDM3ODQ3LDM3ODY0LDM4MzY0LDM4NTgwLDM4NjI3LDM4Njk4LDM4Njk1LDM4NzUzLDM4ODc2LDM4OTA3LDM5MDA2LDM5ZTMsMzkwMDMsMzkxMDAsMzkyMzcsMzkyNDEsMzk0NDYsMzk0NDksMzk2OTMsMzk5MTIsMzk5MTEsMzk4OTQsMzk4OTksNDAzMjks''@;'; + put 'put ''NDAyODksNDAzMDYsNDAyOTgsNDAzMDAsNDA1OTQsNDA1OTksNDA1OTUsNDA2MjgsMjEyNDAsMjIxODQsMjIxOTksMjIxOTgsMjIxOTYsMjIyMDQsMjI3NTYsMjMzNjAsMjMzNjMsMjM0MjEsMjM1NDIsMjQwMDksMjUwODAsMjUwODIsMjU4ODAsMjU4NzYsMjU4ODEsMjYzNDIsMjY0MDcsMjcz''@;'; + put 'put ''NzIsMjg3MzQsMjg3MjAsMjg3MjIsMjkyMDAsMjk1NjMsMjk5MDMsMzAzMDYsMzAzMDksMzEwMTQsMzEwMTgsMzEwMjAsMzEwMTksMzE0MzEsMzE0NzgsMzE4MjAsMzE4MTEsMzE4MjEsMzE5ODMsMzE5ODQsMzY3ODIsMzIzODEsMzIzODAsMzIzODYsMzI1ODgsMzI3NjgsMzMyNDIsMzMzODIs''@;'; + put 'put ''MzQyOTksMzQyOTcsMzQzMjEsMzQyOTgsMzQzMTAsMzQzMTUsMzQzMTEsMzQzMTQsMzQ4MzYsMzQ4MzcsMzUxNzIsMzUyNTgsMzUzMjAsMzU2OTYsMzU2OTIsMzU2ODYsMzU2OTUsMzU2NzksMzU2OTEsMzYxMTEsMzYxMDksMzY0ODksMzY0ODEsMzY0ODUsMzY0ODIsMzczMDAsMzczMjMsMzc5''@;'; + put 'put ''MTIsMzc4OTEsMzc4ODUsMzgzNjksMzg3MDQsMzkxMDgsMzkyNTAsMzkyNDksMzkzMzYsMzk0NjcsMzk0NzIsMzk0NzksMzk0NzcsMzk5NTUsMzk5NDksNDA1NjksNDA2MjksNDA2ODAsNDA3NTEsNDA3OTksNDA4MDMsNDA4MDEsMjA3OTEsMjA3OTIsMjIyMDksMjIyMDgsMjIyMTAsMjI4MDQs''@;'; + put 'put ''MjM2NjAsMjQwMTMsMjUwODQsMjUwODYsMjU4ODUsMjU4ODQsMjYwMDUsMjYzNDUsMjczODcsMjczOTYsMjczODYsMjc1NzAsMjg3NDgsMjkyMTEsMjkzNTEsMjk5MTAsMjk5MDgsMzAzMTMsMzA2NzUsMzE4MjQsMzIzOTksMzIzOTYsMzI3MDAsMzQzMjcsMzQzNDksMzQzMzAsMzQ4NTEsMzQ4''@;'; + put 'put ''NTAsMzQ4NDksMzQ4NDcsMzUxNzgsMzUxODAsMzUyNjEsMzU3MDAsMzU3MDMsMzU3MDksMzYxMTUsMzY0OTAsMzY0OTMsMzY0OTEsMzY3MDMsMzY3ODMsMzczMDYsMzc5MzQsMzc5MzksMzc5NDEsMzc5NDYsMzc5NDQsMzc5MzgsMzc5MzEsMzgzNzAsMzg3MTIsMzg3MTMsMzg3MDYsMzg5MTEs''@;'; + put 'put ''MzkwMTUsMzkwMTMsMzkyNTUsMzk0OTMsMzk0OTEsMzk0ODgsMzk0ODYsMzk2MzEsMzk3NjQsMzk3NjEsMzk5ODEsMzk5NzMsNDAzNjcsNDAzNzIsNDAzODYsNDAzNzYsNDA2MDUsNDA2ODcsNDA3MjksNDA3OTYsNDA4MDYsNDA4MDcsMjA3OTYsMjA3OTUsMjIyMTYsMjIyMTgsMjIyMTcsMjM0''@;'; + put 'put ''MjMsMjQwMjAsMjQwMTgsMjQzOTgsMjUwODcsMjU4OTIsMjc0MDIsMjc0ODksMjg3NTMsMjg3NjAsMjk1NjgsMjk5MjQsMzAwOTAsMzAzMTgsMzAzMTYsMzExNTUsMzE4NDAsMzE4MzksMzI4OTQsMzI4OTMsMzMyNDcsMzUxODYsMzUxODMsMzUzMjQsMzU3MTIsMzYxMTgsMzYxMTksMzY0OTcs''@;'; + put 'put ''MzY0OTksMzY3MDUsMzcxOTIsMzc5NTYsMzc5NjksMzc5NzAsMzg3MTcsMzg3MTgsMzg4NTEsMzg4NDksMzkwMTksMzkyNTMsMzk1MDksMzk1MDEsMzk2MzQsMzk3MDYsNDAwMDksMzk5ODUsMzk5OTgsMzk5OTUsNDA0MDMsNDA0MDcsNDA3NTYsNDA4MTIsNDA4MTAsNDA4NTIsMjIyMjAsMjQw''@;'; + put 'put ''MjIsMjUwODgsMjU4OTEsMjU4OTksMjU4OTgsMjYzNDgsMjc0MDgsMjk5MTQsMzE0MzQsMzE4NDQsMzE4NDMsMzE4NDUsMzI0MDMsMzI0MDYsMzI0MDQsMzMyNTAsMzQzNjAsMzQzNjcsMzQ4NjUsMzU3MjIsMzcwMDgsMzcwMDcsMzc5ODcsMzc5ODQsMzc5ODgsMzg3NjAsMzkwMjMsMzkyNjAs''@;'; + put 'put ''Mzk1MTQsMzk1MTUsMzk1MTEsMzk2MzUsMzk2MzYsMzk2MzMsNDAwMjAsNDAwMjMsNDAwMjIsNDA0MjEsNDA2MDcsNDA2OTIsMjIyMjUsMjI3NjEsMjU5MDAsMjg3NjYsMzAzMjEsMzAzMjIsMzA2NzksMzI1OTIsMzI2NDgsMzQ4NzAsMzQ4NzMsMzQ5MTQsMzU3MzEsMzU3MzAsMzU3MzQsMzMz''@;'; + put 'put ''OTksMzYxMjMsMzczMTIsMzc5OTQsMzg3MjIsMzg3MjgsMzg3MjQsMzg4NTQsMzkwMjQsMzk1MTksMzk3MTQsMzk3NjgsNDAwMzEsNDA0NDEsNDA0NDIsNDA1NzIsNDA1NzMsNDA3MTEsNDA4MjMsNDA4MTgsMjQzMDcsMjc0MTQsMjg3NzEsMzE4NTIsMzE4NTQsMzQ4NzUsMzUyNjQsMzY1MTMs''@;'; + put 'put ''MzczMTMsMzgwMDIsMzhlMywzOTAyNSwzOTI2MiwzOTYzOCwzOTcxNSw0MDY1MiwyODc3MiwzMDY4MiwzNTczOCwzODAwNywzODg1NywzOTUyMiwzOTUyNSwzMjQxMiwzNTc0MCwzNjUyMiwzNzMxNywzODAxMywzODAxNCwzODAxMiw0MDA1NSw0MDA1Niw0MDY5NSwzNTkyNCwzODAxNSw0MDQ3''@;'; + put 'put ''NCwyOTIyNCwzOTUzMCwzOTcyOSw0MDQ3NSw0MDQ3OCwzMTg1OCw5MzEyLDkzMTMsOTMxNCw5MzE1LDkzMTYsOTMxNyw5MzE4LDkzMTksOTMyMCw5MzIxLDkzMzIsOTMzMyw5MzM0LDkzMzUsOTMzNiw5MzM3LDkzMzgsOTMzOSw5MzQwLDkzNDEsODU2MCw4NTYxLDg1NjIsODU2Myw4NTY0LDg1''@;'; + put 'put ''NjUsODU2Niw4NTY3LDg1NjgsODU2OSwyMDAyMiwyMDAzMSwyMDEwMSwyMDEyOCwyMDg2NiwyMDg4NiwyMDkwNywyMTI0MSwyMTMwNCwyMTM1MywyMTQzMCwyMjc5NCwyMzQyNCwyNDAyNywxMjA4MywyNDE5MSwyNDMwOCwyNDQwMCwyNDQxNywyNTkwOCwyNjA4MCwzMDA5OCwzMDMyNiwzNjc4''@;'; + put 'put ''OSwzODU4MiwxNjgsNzEwLDEyNTQxLDEyNTQyLDEyNDQ1LDEyNDQ2LDEyMjkxLDIwMTg5LDEyMjkzLDEyMjk0LDEyMjk1LDEyNTQwLDY1MzM5LDY1MzQxLDEwMDQ1LDEyMzUzLDEyMzU0LDEyMzU1LDEyMzU2LDEyMzU3LDEyMzU4LDEyMzU5LDEyMzYwLDEyMzYxLDEyMzYyLDEyMzYzLDEyMzY0''@;'; + put 'put ''LDEyMzY1LDEyMzY2LDEyMzY3LDEyMzY4LDEyMzY5LDEyMzcwLDEyMzcxLDEyMzcyLDEyMzczLDEyMzc0LDEyMzc1LDEyMzc2LDEyMzc3LDEyMzc4LDEyMzc5LDEyMzgwLDEyMzgxLDEyMzgyLDEyMzgzLDEyMzg0LDEyMzg1LDEyMzg2LDEyMzg3LDEyMzg4LDEyMzg5LDEyMzkwLDEyMzkxLDEy''@;'; + put 'put ''MzkyLDEyMzkzLDEyMzk0LDEyMzk1LDEyMzk2LDEyMzk3LDEyMzk4LDEyMzk5LDEyNDAwLDEyNDAxLDEyNDAyLDEyNDAzLDEyNDA0LDEyNDA1LDEyNDA2LDEyNDA3LDEyNDA4LDEyNDA5LDEyNDEwLDEyNDExLDEyNDEyLDEyNDEzLDEyNDE0LDEyNDE1LDEyNDE2LDEyNDE3LDEyNDE4LDEyNDE5''@;'; + put 'put ''LDEyNDIwLDEyNDIxLDEyNDIyLDEyNDIzLDEyNDI0LDEyNDI1LDEyNDI2LDEyNDI3LDEyNDI4LDEyNDI5LDEyNDMwLDEyNDMxLDEyNDMyLDEyNDMzLDEyNDM0LDEyNDM1LDEyNDQ5LDEyNDUwLDEyNDUxLDEyNDUyLDEyNDUzLDEyNDU0LDEyNDU1LDEyNDU2LDEyNDU3LDEyNDU4LDEyNDU5LDEy''@;'; + put 'put ''NDYwLDEyNDYxLDEyNDYyLDEyNDYzLDEyNDY0LDEyNDY1LDEyNDY2LDEyNDY3LDEyNDY4LDEyNDY5LDEyNDcwLDEyNDcxLDEyNDcyLDEyNDczLDEyNDc0LDEyNDc1LDEyNDc2LDEyNDc3LDEyNDc4LDEyNDc5LDEyNDgwLDEyNDgxLDEyNDgyLDEyNDgzLDEyNDg0LDEyNDg1LDEyNDg2LDEyNDg3''@;'; + put 'put ''LDEyNDg4LDEyNDg5LDEyNDkwLDEyNDkxLDEyNDkyLDEyNDkzLDEyNDk0LDEyNDk1LDEyNDk2LDEyNDk3LDEyNDk4LDEyNDk5LDEyNTAwLDEyNTAxLDEyNTAyLDEyNTAzLDEyNTA0LDEyNTA1LDEyNTA2LDEyNTA3LDEyNTA4LDEyNTA5LDEyNTEwLDEyNTExLDEyNTEyLDEyNTEzLDEyNTE0LDEy''@;'; + put 'put ''NTE1LDEyNTE2LDEyNTE3LDEyNTE4LDEyNTE5LDEyNTIwLDEyNTIxLDEyNTIyLDEyNTIzLDEyNTI0LDEyNTI1LDEyNTI2LDEyNTI3LDEyNTI4LDEyNTI5LDEyNTMwLDEyNTMxLDEyNTMyLDEyNTMzLDEyNTM0LDEwNDAsMTA0MSwxMDQyLDEwNDMsMTA0NCwxMDQ1LDEwMjUsMTA0NiwxMDQ3LDEw''@;'; + put 'put ''NDgsMTA0OSwxMDUwLDEwNTEsMTA1MiwxMDUzLDEwNTQsMTA1NSwxMDU2LDEwNTcsMTA1OCwxMDU5LDEwNjAsMTA2MSwxMDYyLDEwNjMsMTA2NCwxMDY1LDEwNjYsMTA2NywxMDY4LDEwNjksMTA3MCwxMDcxLDEwNzIsMTA3MywxMDc0LDEwNzUsMTA3NiwxMDc3LDExMDUsMTA3OCwxMDc5LDEw''@;'; + put 'put ''ODAsMTA4MSwxMDgyLDEwODMsMTA4NCwxMDg1LDEwODYsMTA4NywxMDg4LDEwODksMTA5MCwxMDkxLDEwOTIsMTA5MywxMDk0LDEwOTUsMTA5NiwxMDk3LDEwOTgsMTA5OSwxMTAwLDExMDEsMTEwMiwxMTAzLDg2NzksODYzMiw4NjMzLDEyNzUxLDEzMTI3NiwyMDA1OCwxMzEyMTAsMjA5OTQs''@;'; + put 'put ''MTc1NTMsNDA4ODAsMjA4NzIsNDA4ODEsMTYxMjg3LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; + put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNjU1MDYsNjU1MDgsNjUyODcsNjUyODIsMTI4NDksODQ3MCw4NDgxLDEyNDQzLDEyNDQ0LDExOTA0LDExOTA4LDExOTEwLDExOTExLDExOTEyLDExOTE0LDExOTE2LDExOTE3''@;'; + put 'put ''LDExOTI1LDExOTMyLDExOTMzLDExOTQxLDExOTQzLDExOTQ2LDExOTQ4LDExOTUwLDExOTU4LDExOTY0LDExOTY2LDExOTc0LDExOTc4LDExOTgwLDExOTgxLDExOTgzLDExOTkwLDExOTkxLDExOTk4LDEyMDAzLG51bGwsbnVsbCxudWxsLDY0Myw1OTIsNjAzLDU5Niw2MjksMzM5LDI0OCwz''@;'; + put 'put ''MzEsNjUwLDYxOCwyMDAzNCwyMDA2MCwyMDk4MSwyMTI3NCwyMTM3OCwxOTk3NSwxOTk4MCwyMDAzOSwyMDEwOSwyMjIzMSw2NDAxMiwyMzY2MiwyNDQzNSwxOTk4MywyMDg3MSwxOTk4MiwyMDAxNCwyMDExNSwyMDE2MiwyMDE2OSwyMDE2OCwyMDg4OCwyMTI0NCwyMTM1NiwyMTQzMywyMjMw''@;'; + put 'put ''NCwyMjc4NywyMjgyOCwyMzU2OCwyNDA2MywyNjA4MSwyNzU3MSwyNzU5NiwyNzY2OCwyOTI0NywyMDAxNywyMDAyOCwyMDIwMCwyMDE4OCwyMDIwMSwyMDE5MywyMDE4OSwyMDE4NiwyMTAwNCwyMTI3NiwyMTMyNCwyMjMwNiwyMjMwNywyMjgwNywyMjgzMSwyMzQyNSwyMzQyOCwyMzU3MCwy''@;'; + put 'put ''MzYxMSwyMzY2OCwyMzY2NywyNDA2OCwyNDE5MiwyNDE5NCwyNDUyMSwyNTA5NywyNTE2OCwyNzY2OSwyNzcwMiwyNzcxNSwyNzcxMSwyNzcwNywyOTM1OCwyOTM2MCwyOTU3OCwzMTE2MCwzMjkwNiwzODQzMCwyMDIzOCwyMDI0OCwyMDI2OCwyMDIxMywyMDI0NCwyMDIwOSwyMDIyNCwyMDIx''@;'; + put 'put ''NSwyMDIzMiwyMDI1MywyMDIyNiwyMDIyOSwyMDI1OCwyMDI0MywyMDIyOCwyMDIxMiwyMDI0MiwyMDkxMywyMTAxMSwyMTAwMSwyMTAwOCwyMTE1OCwyMTI4MiwyMTI3OSwyMTMyNSwyMTM4NiwyMTUxMSwyMjI0MSwyMjIzOSwyMjMxOCwyMjMxNCwyMjMyNCwyMjg0NCwyMjkxMiwyMjkwOCwy''@;'; + put 'put ''MjkxNywyMjkwNywyMjkxMCwyMjkwMywyMjkxMSwyMzM4MiwyMzU3MywyMzU4OSwyMzY3NiwyMzY3NCwyMzY3NSwyMzY3OCwyNDAzMSwyNDE4MSwyNDE5NiwyNDMyMiwyNDM0NiwyNDQzNiwyNDUzMywyNDUzMiwyNDUyNywyNTE4MCwyNTE4MiwyNTE4OCwyNTE4NSwyNTE5MCwyNTE4NiwyNTE3''@;'; + put 'put ''NywyNTE4NCwyNTE3OCwyNTE4OSwyNjA5NSwyNjA5NCwyNjQzMCwyNjQyNSwyNjQyNCwyNjQyNywyNjQyNiwyNjQzMSwyNjQyOCwyNjQxOSwyNzY3MiwyNzcxOCwyNzczMCwyNzc0MCwyNzcyNywyNzcyMiwyNzczMiwyNzcyMywyNzcyNCwyODc4NSwyOTI3OCwyOTM2NCwyOTM2NSwyOTU4Miwy''@;'; + put 'put ''OTk5NCwzMDMzNSwzMTM0OSwzMjU5MywzMzQwMCwzMzQwNCwzMzQwOCwzMzQwNSwzMzQwNywzNDM4MSwzNTE5OCwzNzAxNywzNzAxNSwzNzAxNiwzNzAxOSwzNzAxMiwzODQzNCwzODQzNiwzODQzMiwzODQzNSwyMDMxMCwyMDI4MywyMDMyMiwyMDI5NywyMDMwNywyMDMyNCwyMDI4NiwyMDMy''@;'; + put 'put ''NywyMDMwNiwyMDMxOSwyMDI4OSwyMDMxMiwyMDI2OSwyMDI3NSwyMDI4NywyMDMyMSwyMDg3OSwyMDkyMSwyMTAyMCwyMTAyMiwyMTAyNSwyMTE2NSwyMTE2NiwyMTI1NywyMTM0NywyMTM2MiwyMTM5MCwyMTM5MSwyMTU1MiwyMTU1OSwyMTU0NiwyMTU4OCwyMTU3MywyMTUyOSwyMTUzMiwy''@;'; + put 'put ''MTU0MSwyMTUyOCwyMTU2NSwyMTU4MywyMTU2OSwyMTU0NCwyMTU0MCwyMTU3NSwyMjI1NCwyMjI0NywyMjI0NSwyMjMzNywyMjM0MSwyMjM0OCwyMjM0NSwyMjM0NywyMjM1NCwyMjc5MCwyMjg0OCwyMjk1MCwyMjkzNiwyMjk0NCwyMjkzNSwyMjkyNiwyMjk0NiwyMjkyOCwyMjkyNywyMjk1''@;'; + put 'put ''MSwyMjk0NSwyMzQzOCwyMzQ0MiwyMzU5MiwyMzU5NCwyMzY5MywyMzY5NSwyMzY4OCwyMzY5MSwyMzY4OSwyMzY5OCwyMzY5MCwyMzY4NiwyMzY5OSwyMzcwMSwyNDAzMiwyNDA3NCwyNDA3OCwyNDIwMywyNDIwMSwyNDIwNCwyNDIwMCwyNDIwNSwyNDMyNSwyNDM0OSwyNDQ0MCwyNDQzOCwy''@;'; + put 'put ''NDUzMCwyNDUyOSwyNDUyOCwyNDU1NywyNDU1MiwyNDU1OCwyNDU2MywyNDU0NSwyNDU0OCwyNDU0NywyNDU3MCwyNDU1OSwyNDU2NywyNDU3MSwyNDU3NiwyNDU2NCwyNTE0NiwyNTIxOSwyNTIyOCwyNTIzMCwyNTIzMSwyNTIzNiwyNTIyMywyNTIwMSwyNTIxMSwyNTIxMCwyNTIwMCwyNTIx''@;'; + put 'put ''NywyNTIyNCwyNTIwNywyNTIxMywyNTIwMiwyNTIwNCwyNTkxMSwyNjA5NiwyNjEwMCwyNjA5OSwyNjA5OCwyNjEwMSwyNjQzNywyNjQzOSwyNjQ1NywyNjQ1MywyNjQ0NCwyNjQ0MCwyNjQ2MSwyNjQ0NSwyNjQ1OCwyNjQ0MywyNzYwMCwyNzY3MywyNzY3NCwyNzc2OCwyNzc1MSwyNzc1NSwy''@;'; + put 'put ''Nzc4MCwyNzc4NywyNzc5MSwyNzc2MSwyNzc1OSwyNzc1MywyNzgwMiwyNzc1NywyNzc4MywyNzc5NywyNzgwNCwyNzc1MCwyNzc2MywyNzc0OSwyNzc3MSwyNzc5MCwyODc4OCwyODc5NCwyOTI4MywyOTM3NSwyOTM3MywyOTM3OSwyOTM4MiwyOTM3NywyOTM3MCwyOTM4MSwyOTU4OSwyOTU5''@;'; + put 'put ''MSwyOTU4NywyOTU4OCwyOTU4NiwzMDAxMCwzMDAwOSwzMDEwMCwzMDEwMSwzMDMzNywzMTAzNywzMjgyMCwzMjkxNywzMjkyMSwzMjkxMiwzMjkxNCwzMjkyNCwzMzQyNCwzMzQyMywzMzQxMywzMzQyMiwzMzQyNSwzMzQyNywzMzQxOCwzMzQxMSwzMzQxMiwzNTk2MCwzNjgwOSwzNjc5OSwz''@;'; + put 'put ''NzAyMywzNzAyNSwzNzAyOSwzNzAyMiwzNzAzMSwzNzAyNCwzODQ0OCwzODQ0MCwzODQ0NywzODQ0NSwyMDAxOSwyMDM3NiwyMDM0OCwyMDM1NywyMDM0OSwyMDM1MiwyMDM1OSwyMDM0MiwyMDM0MCwyMDM2MSwyMDM1NiwyMDM0MywyMDMwMCwyMDM3NSwyMDMzMCwyMDM3OCwyMDM0NSwyMDM1''@;'; + put 'put ''MywyMDM0NCwyMDM2OCwyMDM4MCwyMDM3MiwyMDM4MiwyMDM3MCwyMDM1NCwyMDM3MywyMDMzMSwyMDMzNCwyMDg5NCwyMDkyNCwyMDkyNiwyMTA0NSwyMTA0MiwyMTA0MywyMTA2MiwyMTA0MSwyMTE4MCwyMTI1OCwyMTI1OSwyMTMwOCwyMTM5NCwyMTM5NiwyMTYzOSwyMTYzMSwyMTYzMywy''@;'; + put 'put ''MTY0OSwyMTYzNCwyMTY0MCwyMTYxMSwyMTYyNiwyMTYzMCwyMTYwNSwyMTYxMiwyMTYyMCwyMTYwNiwyMTY0NSwyMTYxNSwyMTYwMSwyMTYwMCwyMTY1NiwyMTYwMywyMTYwNywyMTYwNCwyMjI2MywyMjI2NSwyMjM4MywyMjM4NiwyMjM4MSwyMjM3OSwyMjM4NSwyMjM4NCwyMjM5MCwyMjQw''@;'; + put 'put ''MCwyMjM4OSwyMjM5NSwyMjM4NywyMjM4OCwyMjM3MCwyMjM3NiwyMjM5NywyMjc5NiwyMjg1MywyMjk2NSwyMjk3MCwyMjk5MSwyMjk5MCwyMjk2MiwyMjk4OCwyMjk3NywyMjk2NiwyMjk3MiwyMjk3OSwyMjk5OCwyMjk2MSwyMjk3MywyMjk3NiwyMjk4NCwyMjk2NCwyMjk4MywyMzM5NCwy''@;'; + put 'put ''MzM5NywyMzQ0MywyMzQ0NSwyMzYyMCwyMzYyMywyMzcyNiwyMzcxNiwyMzcxMiwyMzczMywyMzcyNywyMzcyMCwyMzcyNCwyMzcxMSwyMzcxNSwyMzcyNSwyMzcxNCwyMzcyMiwyMzcxOSwyMzcwOSwyMzcxNywyMzczNCwyMzcyOCwyMzcxOCwyNDA4NywyNDA4NCwyNDA4OSwyNDM2MCwyNDM1''@;'; + put 'put ''NCwyNDM1NSwyNDM1NiwyNDQwNCwyNDQ1MCwyNDQ0NiwyNDQ0NSwyNDU0MiwyNDU0OSwyNDYyMSwyNDYxNCwyNDYwMSwyNDYyNiwyNDU4NywyNDYyOCwyNDU4NiwyNDU5OSwyNDYyNywyNDYwMiwyNDYwNiwyNDYyMCwyNDYxMCwyNDU4OSwyNDU5MiwyNDYyMiwyNDU5NSwyNDU5MywyNDU4OCwy''@;'; + put 'put ''NDU4NSwyNDYwNCwyNTEwOCwyNTE0OSwyNTI2MSwyNTI2OCwyNTI5NywyNTI3OCwyNTI1OCwyNTI3MCwyNTI5MCwyNTI2MiwyNTI2NywyNTI2MywyNTI3NSwyNTI1NywyNTI2NCwyNTI3MiwyNTkxNywyNjAyNCwyNjA0MywyNjEyMSwyNjEwOCwyNjExNiwyNjEzMCwyNjEyMCwyNjEwNywyNjEx''@;'; + put 'put ''NSwyNjEyMywyNjEyNSwyNjExNywyNjEwOSwyNjEyOSwyNjEyOCwyNjM1OCwyNjM3OCwyNjUwMSwyNjQ3NiwyNjUxMCwyNjUxNCwyNjQ4NiwyNjQ5MSwyNjUyMCwyNjUwMiwyNjUwMCwyNjQ4NCwyNjUwOSwyNjUwOCwyNjQ5MCwyNjUyNywyNjUxMywyNjUyMSwyNjQ5OSwyNjQ5MywyNjQ5Nywy''@;'; + put 'put ''NjQ4OCwyNjQ4OSwyNjUxNiwyNzQyOSwyNzUyMCwyNzUxOCwyNzYxNCwyNzY3NywyNzc5NSwyNzg4NCwyNzg4MywyNzg4NiwyNzg2NSwyNzgzMCwyNzg2MCwyNzgyMSwyNzg3OSwyNzgzMSwyNzg1NiwyNzg0MiwyNzgzNCwyNzg0MywyNzg0NiwyNzg4NSwyNzg5MCwyNzg1OCwyNzg2OSwyNzgy''@;'; + put 'put ''OCwyNzc4NiwyNzgwNSwyNzc3NiwyNzg3MCwyNzg0MCwyNzk1MiwyNzg1MywyNzg0NywyNzgyNCwyNzg5NywyNzg1NSwyNzg4MSwyNzg1NywyODgyMCwyODgyNCwyODgwNSwyODgxOSwyODgwNiwyODgwNCwyODgxNywyODgyMiwyODgwMiwyODgyNiwyODgwMywyOTI5MCwyOTM5OCwyOTM4Nywy''@;'; + put 'put ''OTQwMCwyOTM4NSwyOTQwNCwyOTM5NCwyOTM5NiwyOTQwMiwyOTM4OCwyOTM5MywyOTYwNCwyOTYwMSwyOTYxMywyOTYwNiwyOTYwMiwyOTYwMCwyOTYxMiwyOTU5NywyOTkxNywyOTkyOCwzMDAxNSwzMDAxNiwzMDAxNCwzMDA5MiwzMDEwNCwzMDM4MywzMDQ1MSwzMDQ0OSwzMDQ0OCwzMDQ1''@;'; + put 'put ''MywzMDcxMiwzMDcxNiwzMDcxMywzMDcxNSwzMDcxNCwzMDcxMSwzMTA0MiwzMTAzOSwzMTE3MywzMTM1MiwzMTM1NSwzMTQ4MywzMTg2MSwzMTk5NywzMjgyMSwzMjkxMSwzMjk0MiwzMjkzMSwzMjk1MiwzMjk0OSwzMjk0MSwzMzMxMiwzMzQ0MCwzMzQ3MiwzMzQ1MSwzMzQzNCwzMzQzMiwz''@;'; + put 'put ''MzQzNSwzMzQ2MSwzMzQ0NywzMzQ1NCwzMzQ2OCwzMzQzOCwzMzQ2NiwzMzQ2MCwzMzQ0OCwzMzQ0MSwzMzQ0OSwzMzQ3NCwzMzQ0NCwzMzQ3NSwzMzQ2MiwzMzQ0MiwzNDQxNiwzNDQxNSwzNDQxMywzNDQxNCwzNTkyNiwzNjgxOCwzNjgxMSwzNjgxOSwzNjgxMywzNjgyMiwzNjgyMSwzNjgy''@;'; + put 'put ''MywzNzA0MiwzNzA0NCwzNzAzOSwzNzA0MywzNzA0MCwzODQ1NywzODQ2MSwzODQ2MCwzODQ1OCwzODQ2NywyMDQyOSwyMDQyMSwyMDQzNSwyMDQwMiwyMDQyNSwyMDQyNywyMDQxNywyMDQzNiwyMDQ0NCwyMDQ0MSwyMDQxMSwyMDQwMywyMDQ0MywyMDQyMywyMDQzOCwyMDQxMCwyMDQxNiwy''@;'; + put 'put ''MDQwOSwyMDQ2MCwyMTA2MCwyMTA2NSwyMTE4NCwyMTE4NiwyMTMwOSwyMTM3MiwyMTM5OSwyMTM5OCwyMTQwMSwyMTQwMCwyMTY5MCwyMTY2NSwyMTY3NywyMTY2OSwyMTcxMSwyMTY5OSwzMzU0OSwyMTY4NywyMTY3OCwyMTcxOCwyMTY4NiwyMTcwMSwyMTcwMiwyMTY2NCwyMTYxNiwyMTY5''@;'; + put 'put ''MiwyMTY2NiwyMTY5NCwyMTYxOCwyMTcyNiwyMTY4MCwyMjQ1MywyMjQzMCwyMjQzMSwyMjQzNiwyMjQxMiwyMjQyMywyMjQyOSwyMjQyNywyMjQyMCwyMjQyNCwyMjQxNSwyMjQyNSwyMjQzNywyMjQyNiwyMjQyMSwyMjc3MiwyMjc5NywyMjg2NywyMzAwOSwyMzAwNiwyMzAyMiwyMzA0MCwy''@;'; + put 'put ''MzAyNSwyMzAwNSwyMzAzNCwyMzAzNywyMzAzNiwyMzAzMCwyMzAxMiwyMzAyNiwyMzAzMSwyMzAwMywyMzAxNywyMzAyNywyMzAyOSwyMzAwOCwyMzAzOCwyMzAyOCwyMzAyMSwyMzQ2NCwyMzYyOCwyMzc2MCwyMzc2OCwyMzc1NiwyMzc2NywyMzc1NSwyMzc3MSwyMzc3NCwyMzc3MCwyMzc1''@;'; + put 'put ''MywyMzc1MSwyMzc1NCwyMzc2NiwyMzc2MywyMzc2NCwyMzc1OSwyMzc1MiwyMzc1MCwyMzc1OCwyMzc3NSwyMzgwMCwyNDA1NywyNDA5NywyNDA5OCwyNDA5OSwyNDA5NiwyNDEwMCwyNDI0MCwyNDIyOCwyNDIyNiwyNDIxOSwyNDIyNywyNDIyOSwyNDMyNywyNDM2NiwyNDQwNiwyNDQ1NCwy''@;'; + put 'put ''NDYzMSwyNDYzMywyNDY2MCwyNDY5MCwyNDY3MCwyNDY0NSwyNDY1OSwyNDY0NywyNDY0OSwyNDY2NywyNDY1MiwyNDY0MCwyNDY0MiwyNDY3MSwyNDYxMiwyNDY0NCwyNDY2NCwyNDY3OCwyNDY4NiwyNTE1NCwyNTE1NSwyNTI5NSwyNTM1NywyNTM1NSwyNTMzMywyNTM1OCwyNTM0NywyNTMy''@;'; + put 'put ''MywyNTMzNywyNTM1OSwyNTM1NiwyNTMzNiwyNTMzNCwyNTM0NCwyNTM2MywyNTM2NCwyNTMzOCwyNTM2NSwyNTMzOSwyNTMyOCwyNTkyMSwyNTkyMywyNjAyNiwyNjA0NywyNjE2NiwyNjE0NSwyNjE2MiwyNjE2NSwyNjE0MCwyNjE1MCwyNjE0NiwyNjE2MywyNjE1NSwyNjE3MCwyNjE0MSwy''@;'; + put 'put ''NjE2NCwyNjE2OSwyNjE1OCwyNjM4MywyNjM4NCwyNjU2MSwyNjYxMCwyNjU2OCwyNjU1NCwyNjU4OCwyNjU1NSwyNjYxNiwyNjU4NCwyNjU2MCwyNjU1MSwyNjU2NSwyNjYwMywyNjU5NiwyNjU5MSwyNjU0OSwyNjU3MywyNjU0NywyNjYxNSwyNjYxNCwyNjYwNiwyNjU5NSwyNjU2MiwyNjU1''@;'; + put 'put ''MywyNjU3NCwyNjU5OSwyNjYwOCwyNjU0NiwyNjYyMCwyNjU2NiwyNjYwNSwyNjU3MiwyNjU0MiwyNjU5OCwyNjU4NywyNjYxOCwyNjU2OSwyNjU3MCwyNjU2MywyNjYwMiwyNjU3MSwyNzQzMiwyNzUyMiwyNzUyNCwyNzU3NCwyNzYwNiwyNzYwOCwyNzYxNiwyNzY4MCwyNzY4MSwyNzk0NCwy''@;'; + put 'put ''Nzk1NiwyNzk0OSwyNzkzNSwyNzk2NCwyNzk2NywyNzkyMiwyNzkxNCwyNzg2NiwyNzk1NSwyNzkwOCwyNzkyOSwyNzk2MiwyNzkzMCwyNzkyMSwyNzkwNCwyNzkzMywyNzk3MCwyNzkwNSwyNzkyOCwyNzk1OSwyNzkwNywyNzkxOSwyNzk2OCwyNzkxMSwyNzkzNiwyNzk0OCwyNzkxMiwyNzkz''@;'; + put 'put ''OCwyNzkxMywyNzkyMCwyODg1NSwyODgzMSwyODg2MiwyODg0OSwyODg0OCwyODgzMywyODg1MiwyODg1MywyODg0MSwyOTI0OSwyOTI1NywyOTI1OCwyOTI5MiwyOTI5NiwyOTI5OSwyOTI5NCwyOTM4NiwyOTQxMiwyOTQxNiwyOTQxOSwyOTQwNywyOTQxOCwyOTQxNCwyOTQxMSwyOTU3Mywy''@;'; + put 'put ''OTY0NCwyOTYzNCwyOTY0MCwyOTYzNywyOTYyNSwyOTYyMiwyOTYyMSwyOTYyMCwyOTY3NSwyOTYzMSwyOTYzOSwyOTYzMCwyOTYzNSwyOTYzOCwyOTYyNCwyOTY0MywyOTkzMiwyOTkzNCwyOTk5OCwzMDAyMywzMDAyNCwzMDExOSwzMDEyMiwzMDMyOSwzMDQwNCwzMDQ3MiwzMDQ2NywzMDQ2''@;'; + put 'put ''OCwzMDQ2OSwzMDQ3NCwzMDQ1NSwzMDQ1OSwzMDQ1OCwzMDY5NSwzMDY5NiwzMDcyNiwzMDczNywzMDczOCwzMDcyNSwzMDczNiwzMDczNSwzMDczNCwzMDcyOSwzMDcyMywzMDczOSwzMTA1MCwzMTA1MiwzMTA1MSwzMTA0NSwzMTA0NCwzMTE4OSwzMTE4MSwzMTE4MywzMTE5MCwzMTE4Miwz''@;'; + put 'put ''MTM2MCwzMTM1OCwzMTQ0MSwzMTQ4OCwzMTQ4OSwzMTg2NiwzMTg2NCwzMTg2NSwzMTg3MSwzMTg3MiwzMTg3MywzMjAwMywzMjAwOCwzMjAwMSwzMjYwMCwzMjY1NywzMjY1MywzMjcwMiwzMjc3NSwzMjc4MiwzMjc4MywzMjc4OCwzMjgyMywzMjk4NCwzMjk2NywzMjk5MiwzMjk3NywzMjk2''@;'; + put 'put ''OCwzMjk2MiwzMjk3NiwzMjk2NSwzMjk5NSwzMjk4NSwzMjk4OCwzMjk3MCwzMjk4MSwzMjk2OSwzMjk3NSwzMjk4MywzMjk5OCwzMjk3MywzMzI3OSwzMzMxMywzMzQyOCwzMzQ5NywzMzUzNCwzMzUyOSwzMzU0MywzMzUxMiwzMzUzNiwzMzQ5MywzMzU5NCwzMzUxNSwzMzQ5NCwzMzUyNCwz''@;'; + put 'put ''MzUxNiwzMzUwNSwzMzUyMiwzMzUyNSwzMzU0OCwzMzUzMSwzMzUyNiwzMzUyMCwzMzUxNCwzMzUwOCwzMzUwNCwzMzUzMCwzMzUyMywzMzUxNywzNDQyMywzNDQyMCwzNDQyOCwzNDQxOSwzNDg4MSwzNDg5NCwzNDkxOSwzNDkyMiwzNDkyMSwzNTI4MywzNTMzMiwzNTMzNSwzNjIxMCwzNjgz''@;'; + put 'put ''NSwzNjgzMywzNjg0NiwzNjgzMiwzNzEwNSwzNzA1MywzNzA1NSwzNzA3NywzNzA2MSwzNzA1NCwzNzA2MywzNzA2NywzNzA2NCwzNzMzMiwzNzMzMSwzODQ4NCwzODQ3OSwzODQ4MSwzODQ4MywzODQ3NCwzODQ3OCwyMDUxMCwyMDQ4NSwyMDQ4NywyMDQ5OSwyMDUxNCwyMDUyOCwyMDUwNywy''@;'; + put 'put ''MDQ2OSwyMDQ2OCwyMDUzMSwyMDUzNSwyMDUyNCwyMDQ3MCwyMDQ3MSwyMDUwMywyMDUwOCwyMDUxMiwyMDUxOSwyMDUzMywyMDUyNywyMDUyOSwyMDQ5NCwyMDgyNiwyMDg4NCwyMDg4MywyMDkzOCwyMDkzMiwyMDkzMywyMDkzNiwyMDk0MiwyMTA4OSwyMTA4MiwyMTA3NCwyMTA4NiwyMTA4''@;'; + put 'put ''NywyMTA3NywyMTA5MCwyMTE5NywyMTI2MiwyMTQwNiwyMTc5OCwyMTczMCwyMTc4MywyMTc3OCwyMTczNSwyMTc0NywyMTczMiwyMTc4NiwyMTc1OSwyMTc2NCwyMTc2OCwyMTczOSwyMTc3NywyMTc2NSwyMTc0NSwyMTc3MCwyMTc1NSwyMTc1MSwyMTc1MiwyMTcyOCwyMTc3NCwyMTc2Mywy''@;'; + put 'put ''MTc3MSwyMjI3MywyMjI3NCwyMjQ3NiwyMjU3OCwyMjQ4NSwyMjQ4MiwyMjQ1OCwyMjQ3MCwyMjQ2MSwyMjQ2MCwyMjQ1NiwyMjQ1NCwyMjQ2MywyMjQ3MSwyMjQ4MCwyMjQ1NywyMjQ2NSwyMjc5OCwyMjg1OCwyMzA2NSwyMzA2MiwyMzA4NSwyMzA4NiwyMzA2MSwyMzA1NSwyMzA2MywyMzA1''@;'; + put 'put ''MCwyMzA3MCwyMzA5MSwyMzQwNCwyMzQ2MywyMzQ2OSwyMzQ2OCwyMzU1NSwyMzYzOCwyMzYzNiwyMzc4OCwyMzgwNywyMzc5MCwyMzc5MywyMzc5OSwyMzgwOCwyMzgwMSwyNDEwNSwyNDEwNCwyNDIzMiwyNDIzOCwyNDIzNCwyNDIzNiwyNDM3MSwyNDM2OCwyNDQyMywyNDY2OSwyNDY2Niwy''@;'; + put 'put ''NDY3OSwyNDY0MSwyNDczOCwyNDcxMiwyNDcwNCwyNDcyMiwyNDcwNSwyNDczMywyNDcwNywyNDcyNSwyNDczMSwyNDcyNywyNDcxMSwyNDczMiwyNDcxOCwyNTExMywyNTE1OCwyNTMzMCwyNTM2MCwyNTQzMCwyNTM4OCwyNTQxMiwyNTQxMywyNTM5OCwyNTQxMSwyNTU3MiwyNTQwMSwyNTQx''@;'; + put 'put ''OSwyNTQxOCwyNTQwNCwyNTM4NSwyNTQwOSwyNTM5NiwyNTQzMiwyNTQyOCwyNTQzMywyNTM4OSwyNTQxNSwyNTM5NSwyNTQzNCwyNTQyNSwyNTQwMCwyNTQzMSwyNTQwOCwyNTQxNiwyNTkzMCwyNTkyNiwyNjA1NCwyNjA1MSwyNjA1MiwyNjA1MCwyNjE4NiwyNjIwNywyNjE4MywyNjE5Mywy''@;'; + put 'put ''NjM4NiwyNjM4NywyNjY1NSwyNjY1MCwyNjY5NywyNjY3NCwyNjY3NSwyNjY4MywyNjY5OSwyNjcwMywyNjY0NiwyNjY3MywyNjY1MiwyNjY3NywyNjY2NywyNjY2OSwyNjY3MSwyNjcwMiwyNjY5MiwyNjY3NiwyNjY1MywyNjY0MiwyNjY0NCwyNjY2MiwyNjY2NCwyNjY3MCwyNjcwMSwyNjY4''@;'; + put 'put ''MiwyNjY2MSwyNjY1NiwyNzQzNiwyNzQzOSwyNzQzNywyNzQ0MSwyNzQ0NCwyNzUwMSwzMjg5OCwyNzUyOCwyNzYyMiwyNzYyMCwyNzYyNCwyNzYxOSwyNzYxOCwyNzYyMywyNzY4NSwyODAyNiwyODAwMywyODAwNCwyODAyMiwyNzkxNywyODAwMSwyODA1MCwyNzk5MiwyODAwMiwyODAxMywy''@;'; + put 'put ''ODAxNSwyODA0OSwyODA0NSwyODE0MywyODAzMSwyODAzOCwyNzk5OCwyODAwNywyOGUzLDI4MDU1LDI4MDE2LDI4MDI4LDI3OTk5LDI4MDM0LDI4MDU2LDI3OTUxLDI4MDA4LDI4MDQzLDI4MDMwLDI4MDMyLDI4MDM2LDI3OTI2LDI4MDM1LDI4MDI3LDI4MDI5LDI4MDIxLDI4MDQ4LDI4ODky''@;'; + put 'put ''LDI4ODgzLDI4ODgxLDI4ODkzLDI4ODc1LDMyNTY5LDI4ODk4LDI4ODg3LDI4ODgyLDI4ODk0LDI4ODk2LDI4ODg0LDI4ODc3LDI4ODY5LDI4ODcwLDI4ODcxLDI4ODkwLDI4ODc4LDI4ODk3LDI5MjUwLDI5MzA0LDI5MzAzLDI5MzAyLDI5NDQwLDI5NDM0LDI5NDI4LDI5NDM4LDI5NDMwLDI5''@;'; + put 'put ''NDI3LDI5NDM1LDI5NDQxLDI5NjUxLDI5NjU3LDI5NjY5LDI5NjU0LDI5NjI4LDI5NjcxLDI5NjY3LDI5NjczLDI5NjYwLDI5NjUwLDI5NjU5LDI5NjUyLDI5NjYxLDI5NjU4LDI5NjU1LDI5NjU2LDI5NjcyLDI5OTE4LDI5OTE5LDI5OTQwLDI5OTQxLDI5OTg1LDMwMDQzLDMwMDQ3LDMwMTI4''@;'; + put 'put ''LDMwMTQ1LDMwMTM5LDMwMTQ4LDMwMTQ0LDMwMTQzLDMwMTM0LDMwMTM4LDMwMzQ2LDMwNDA5LDMwNDkzLDMwNDkxLDMwNDgwLDMwNDgzLDMwNDgyLDMwNDk5LDMwNDgxLDMwNDg1LDMwNDg5LDMwNDkwLDMwNDk4LDMwNTAzLDMwNzU1LDMwNzY0LDMwNzU0LDMwNzczLDMwNzY3LDMwNzYwLDMw''@;'; + put 'put ''NzY2LDMwNzYzLDMwNzUzLDMwNzYxLDMwNzcxLDMwNzYyLDMwNzY5LDMxMDYwLDMxMDY3LDMxMDU1LDMxMDY4LDMxMDU5LDMxMDU4LDMxMDU3LDMxMjExLDMxMjEyLDMxMjAwLDMxMjE0LDMxMjEzLDMxMjEwLDMxMTk2LDMxMTk4LDMxMTk3LDMxMzY2LDMxMzY5LDMxMzY1LDMxMzcxLDMxMzcy''@;'; + put 'put ''LDMxMzcwLDMxMzY3LDMxNDQ4LDMxNTA0LDMxNDkyLDMxNTA3LDMxNDkzLDMxNTAzLDMxNDk2LDMxNDk4LDMxNTAyLDMxNDk3LDMxNTA2LDMxODc2LDMxODg5LDMxODgyLDMxODg0LDMxODgwLDMxODg1LDMxODc3LDMyMDMwLDMyMDI5LDMyMDE3LDMyMDE0LDMyMDI0LDMyMDIyLDMyMDE5LDMy''@;'; + put 'put ''MDMxLDMyMDE4LDMyMDE1LDMyMDEyLDMyNjA0LDMyNjA5LDMyNjA2LDMyNjA4LDMyNjA1LDMyNjAzLDMyNjYyLDMyNjU4LDMyNzA3LDMyNzA2LDMyNzA0LDMyNzkwLDMyODMwLDMyODI1LDMzMDE4LDMzMDEwLDMzMDE3LDMzMDEzLDMzMDI1LDMzMDE5LDMzMDI0LDMzMjgxLDMzMzI3LDMzMzE3''@;'; + put 'put ''LDMzNTg3LDMzNTgxLDMzNjA0LDMzNTYxLDMzNjE3LDMzNTczLDMzNjIyLDMzNTk5LDMzNjAxLDMzNTc0LDMzNTY0LDMzNTcwLDMzNjAyLDMzNjE0LDMzNTYzLDMzNTc4LDMzNTQ0LDMzNTk2LDMzNjEzLDMzNTU4LDMzNTcyLDMzNTY4LDMzNTkxLDMzNTgzLDMzNTc3LDMzNjA3LDMzNjA1LDMz''@;'; + put 'put ''NjEyLDMzNjE5LDMzNTY2LDMzNTgwLDMzNjExLDMzNTc1LDMzNjA4LDM0Mzg3LDM0Mzg2LDM0NDY2LDM0NDcyLDM0NDU0LDM0NDQ1LDM0NDQ5LDM0NDYyLDM0NDM5LDM0NDU1LDM0NDM4LDM0NDQzLDM0NDU4LDM0NDM3LDM0NDY5LDM0NDU3LDM0NDY1LDM0NDcxLDM0NDUzLDM0NDU2LDM0NDQ2''@;'; + put 'put ''LDM0NDYxLDM0NDQ4LDM0NDUyLDM0ODgzLDM0ODg0LDM0OTI1LDM0OTMzLDM0OTM0LDM0OTMwLDM0OTQ0LDM0OTI5LDM0OTQzLDM0OTI3LDM0OTQ3LDM0OTQyLDM0OTMyLDM0OTQwLDM1MzQ2LDM1OTExLDM1OTI3LDM1OTYzLDM2MDA0LDM2MDAzLDM2MjE0LDM2MjE2LDM2Mjc3LDM2Mjc5LDM2''@;'; + put 'put ''Mjc4LDM2NTYxLDM2NTYzLDM2ODYyLDM2ODUzLDM2ODY2LDM2ODYzLDM2ODU5LDM2ODY4LDM2ODYwLDM2ODU0LDM3MDc4LDM3MDg4LDM3MDgxLDM3MDgyLDM3MDkxLDM3MDg3LDM3MDkzLDM3MDgwLDM3MDgzLDM3MDc5LDM3MDg0LDM3MDkyLDM3MjAwLDM3MTk4LDM3MTk5LDM3MzMzLDM3MzQ2''@;'; + put 'put ''LDM3MzM4LDM4NDkyLDM4NDk1LDM4NTg4LDM5MTM5LDM5NjQ3LDM5NzI3LDIwMDk1LDIwNTkyLDIwNTg2LDIwNTc3LDIwNTc0LDIwNTc2LDIwNTYzLDIwNTU1LDIwNTczLDIwNTk0LDIwNTUyLDIwNTU3LDIwNTQ1LDIwNTcxLDIwNTU0LDIwNTc4LDIwNTAxLDIwNTQ5LDIwNTc1LDIwNTg1LDIw''@;'; + put 'put ''NTg3LDIwNTc5LDIwNTgwLDIwNTUwLDIwNTQ0LDIwNTkwLDIwNTk1LDIwNTY3LDIwNTYxLDIwOTQ0LDIxMDk5LDIxMTAxLDIxMTAwLDIxMTAyLDIxMjA2LDIxMjAzLDIxMjkzLDIxNDA0LDIxODc3LDIxODc4LDIxODIwLDIxODM3LDIxODQwLDIxODEyLDIxODAyLDIxODQxLDIxODU4LDIxODE0''@;'; + put 'put ''LDIxODEzLDIxODA4LDIxODQyLDIxODI5LDIxNzcyLDIxODEwLDIxODYxLDIxODM4LDIxODE3LDIxODMyLDIxODA1LDIxODE5LDIxODI0LDIxODM1LDIyMjgyLDIyMjc5LDIyNTIzLDIyNTQ4LDIyNDk4LDIyNTE4LDIyNDkyLDIyNTE2LDIyNTI4LDIyNTA5LDIyNTI1LDIyNTM2LDIyNTIwLDIy''@;'; + put 'put ''NTM5LDIyNTE1LDIyNDc5LDIyNTM1LDIyNTEwLDIyNDk5LDIyNTE0LDIyNTAxLDIyNTA4LDIyNDk3LDIyNTQyLDIyNTI0LDIyNTQ0LDIyNTAzLDIyNTI5LDIyNTQwLDIyNTEzLDIyNTA1LDIyNTEyLDIyNTQxLDIyNTMyLDIyODc2LDIzMTM2LDIzMTI4LDIzMTI1LDIzMTQzLDIzMTM0LDIzMDk2''@;'; + put 'put ''LDIzMDkzLDIzMTQ5LDIzMTIwLDIzMTM1LDIzMTQxLDIzMTQ4LDIzMTIzLDIzMTQwLDIzMTI3LDIzMTA3LDIzMTMzLDIzMTIyLDIzMTA4LDIzMTMxLDIzMTEyLDIzMTgyLDIzMTAyLDIzMTE3LDIzMDk3LDIzMTE2LDIzMTUyLDIzMTQ1LDIzMTExLDIzMTIxLDIzMTI2LDIzMTA2LDIzMTMyLDIz''@;'; + put 'put ''NDEwLDIzNDA2LDIzNDg5LDIzNDg4LDIzNjQxLDIzODM4LDIzODE5LDIzODM3LDIzODM0LDIzODQwLDIzODIwLDIzODQ4LDIzODIxLDIzODQ2LDIzODQ1LDIzODIzLDIzODU2LDIzODI2LDIzODQzLDIzODM5LDIzODU0LDI0MTI2LDI0MTE2LDI0MjQxLDI0MjQ0LDI0MjQ5LDI0MjQyLDI0MjQz''@;'; + put 'put ''LDI0Mzc0LDI0Mzc2LDI0NDc1LDI0NDcwLDI0NDc5LDI0NzE0LDI0NzIwLDI0NzEwLDI0NzY2LDI0NzUyLDI0NzYyLDI0Nzg3LDI0Nzg4LDI0NzgzLDI0ODA0LDI0NzkzLDI0Nzk3LDI0Nzc2LDI0NzUzLDI0Nzk1LDI0NzU5LDI0Nzc4LDI0NzY3LDI0NzcxLDI0NzgxLDI0NzY4LDI1Mzk0LDI1''@;'; + put 'put ''NDQ1LDI1NDgyLDI1NDc0LDI1NDY5LDI1NTMzLDI1NTAyLDI1NTE3LDI1NTAxLDI1NDk1LDI1NTE1LDI1NDg2LDI1NDU1LDI1NDc5LDI1NDg4LDI1NDU0LDI1NTE5LDI1NDYxLDI1NTAwLDI1NDUzLDI1NTE4LDI1NDY4LDI1NTA4LDI1NDAzLDI1NTAzLDI1NDY0LDI1NDc3LDI1NDczLDI1NDg5''@;'; + put 'put ''LDI1NDg1LDI1NDU2LDI1OTM5LDI2MDYxLDI2MjEzLDI2MjA5LDI2MjAzLDI2MjAxLDI2MjA0LDI2MjEwLDI2MzkyLDI2NzQ1LDI2NzU5LDI2NzY4LDI2NzgwLDI2NzMzLDI2NzM0LDI2Nzk4LDI2Nzk1LDI2OTY2LDI2NzM1LDI2Nzg3LDI2Nzk2LDI2NzkzLDI2NzQxLDI2NzQwLDI2ODAyLDI2''@;'; + put 'put ''NzY3LDI2NzQzLDI2NzcwLDI2NzQ4LDI2NzMxLDI2NzM4LDI2Nzk0LDI2NzUyLDI2NzM3LDI2NzUwLDI2Nzc5LDI2Nzc0LDI2NzYzLDI2Nzg0LDI2NzYxLDI2Nzg4LDI2NzQ0LDI2NzQ3LDI2NzY5LDI2NzY0LDI2NzYyLDI2NzQ5LDI3NDQ2LDI3NDQzLDI3NDQ3LDI3NDQ4LDI3NTM3LDI3NTM1''@;'; + put 'put ''LDI3NTMzLDI3NTM0LDI3NTMyLDI3NjkwLDI4MDk2LDI4MDc1LDI4MDg0LDI4MDgzLDI4Mjc2LDI4MDc2LDI4MTM3LDI4MTMwLDI4MDg3LDI4MTUwLDI4MTE2LDI4MTYwLDI4MTA0LDI4MTI4LDI4MTI3LDI4MTE4LDI4MDk0LDI4MTMzLDI4MTI0LDI4MTI1LDI4MTIzLDI4MTQ4LDI4MTA2LDI4''@;'; + put 'put ''MDkzLDI4MTQxLDI4MTQ0LDI4MDkwLDI4MTE3LDI4MDk4LDI4MTExLDI4MTA1LDI4MTEyLDI4MTQ2LDI4MTE1LDI4MTU3LDI4MTE5LDI4MTA5LDI4MTMxLDI4MDkxLDI4OTIyLDI4OTQxLDI4OTE5LDI4OTUxLDI4OTE2LDI4OTQwLDI4OTEyLDI4OTMyLDI4OTE1LDI4OTQ0LDI4OTI0LDI4OTI3''@;'; + put 'put ''LDI4OTM0LDI4OTQ3LDI4OTI4LDI4OTIwLDI4OTE4LDI4OTM5LDI4OTMwLDI4OTQyLDI5MzEwLDI5MzA3LDI5MzA4LDI5MzExLDI5NDY5LDI5NDYzLDI5NDQ3LDI5NDU3LDI5NDY0LDI5NDUwLDI5NDQ4LDI5NDM5LDI5NDU1LDI5NDcwLDI5NTc2LDI5Njg2LDI5Njg4LDI5Njg1LDI5NzAwLDI5''@;'; + put 'put ''Njk3LDI5NjkzLDI5NzAzLDI5Njk2LDI5NjkwLDI5NjkyLDI5Njk1LDI5NzA4LDI5NzA3LDI5Njg0LDI5NzA0LDMwMDUyLDMwMDUxLDMwMTU4LDMwMTYyLDMwMTU5LDMwMTU1LDMwMTU2LDMwMTYxLDMwMTYwLDMwMzUxLDMwMzQ1LDMwNDE5LDMwNTIxLDMwNTExLDMwNTA5LDMwNTEzLDMwNTE0''@;'; + put 'put ''LDMwNTE2LDMwNTE1LDMwNTI1LDMwNTAxLDMwNTIzLDMwNTE3LDMwNzkyLDMwODAyLDMwNzkzLDMwNzk3LDMwNzk0LDMwNzk2LDMwNzU4LDMwNzg5LDMwODAwLDMxMDc2LDMxMDc5LDMxMDgxLDMxMDgyLDMxMDc1LDMxMDgzLDMxMDczLDMxMTYzLDMxMjI2LDMxMjI0LDMxMjIyLDMxMjIzLDMx''@;'; + put 'put ''Mzc1LDMxMzgwLDMxMzc2LDMxNTQxLDMxNTU5LDMxNTQwLDMxNTI1LDMxNTM2LDMxNTIyLDMxNTI0LDMxNTM5LDMxNTEyLDMxNTMwLDMxNTE3LDMxNTM3LDMxNTMxLDMxNTMzLDMxNTM1LDMxNTM4LDMxNTQ0LDMxNTE0LDMxNTIzLDMxODkyLDMxODk2LDMxODk0LDMxOTA3LDMyMDUzLDMyMDYx''@;'; + put 'put ''LDMyMDU2LDMyMDU0LDMyMDU4LDMyMDY5LDMyMDQ0LDMyMDQxLDMyMDY1LDMyMDcxLDMyMDYyLDMyMDYzLDMyMDc0LDMyMDU5LDMyMDQwLDMyNjExLDMyNjYxLDMyNjY4LDMyNjY5LDMyNjY3LDMyNzE0LDMyNzE1LDMyNzE3LDMyNzIwLDMyNzIxLDMyNzExLDMyNzE5LDMyNzEzLDMyNzk5LDMy''@;'; + put 'put ''Nzk4LDMyNzk1LDMyODM5LDMyODM1LDMyODQwLDMzMDQ4LDMzMDYxLDMzMDQ5LDMzMDUxLDMzMDY5LDMzMDU1LDMzMDY4LDMzMDU0LDMzMDU3LDMzMDQ1LDMzMDYzLDMzMDUzLDMzMDU4LDMzMjk3LDMzMzM2LDMzMzMxLDMzMzM4LDMzMzMyLDMzMzMwLDMzMzk2LDMzNjgwLDMzNjk5LDMzNzA0''@;'; + put 'put ''LDMzNjc3LDMzNjU4LDMzNjUxLDMzNzAwLDMzNjUyLDMzNjc5LDMzNjY1LDMzNjg1LDMzNjg5LDMzNjUzLDMzNjg0LDMzNzA1LDMzNjYxLDMzNjY3LDMzNjc2LDMzNjkzLDMzNjkxLDMzNzA2LDMzNjc1LDMzNjYyLDMzNzAxLDMzNzExLDMzNjcyLDMzNjg3LDMzNzEyLDMzNjYzLDMzNzAyLDMz''@;'; + put 'put ''NjcxLDMzNzEwLDMzNjU0LDMzNjkwLDM0MzkzLDM0MzkwLDM0NDk1LDM0NDg3LDM0NDk4LDM0NDk3LDM0NTAxLDM0NDkwLDM0NDgwLDM0NTA0LDM0NDg5LDM0NDgzLDM0NDg4LDM0NTA4LDM0NDg0LDM0NDkxLDM0NDkyLDM0NDk5LDM0NDkzLDM0NDk0LDM0ODk4LDM0OTUzLDM0OTY1LDM0OTg0''@;'; + put 'put ''LDM0OTc4LDM0OTg2LDM0OTcwLDM0OTYxLDM0OTc3LDM0OTc1LDM0OTY4LDM0OTgzLDM0OTY5LDM0OTcxLDM0OTY3LDM0OTgwLDM0OTg4LDM0OTU2LDM0OTYzLDM0OTU4LDM1MjAyLDM1Mjg2LDM1Mjg5LDM1Mjg1LDM1Mzc2LDM1MzY3LDM1MzcyLDM1MzU4LDM1ODk3LDM1ODk5LDM1OTMyLDM1''@;'; + put 'put ''OTMzLDM1OTY1LDM2MDA1LDM2MjIxLDM2MjE5LDM2MjE3LDM2Mjg0LDM2MjkwLDM2MjgxLDM2Mjg3LDM2Mjg5LDM2NTY4LDM2NTc0LDM2NTczLDM2NTcyLDM2NTY3LDM2NTc2LDM2NTc3LDM2OTAwLDM2ODc1LDM2ODgxLDM2ODkyLDM2ODc2LDM2ODk3LDM3MTAzLDM3MDk4LDM3MTA0LDM3MTA4''@;'; + put 'put ''LDM3MTA2LDM3MTA3LDM3MDc2LDM3MDk5LDM3MTAwLDM3MDk3LDM3MjA2LDM3MjA4LDM3MjEwLDM3MjAzLDM3MjA1LDM3MzU2LDM3MzY0LDM3MzYxLDM3MzYzLDM3MzY4LDM3MzQ4LDM3MzY5LDM3MzU0LDM3MzU1LDM3MzY3LDM3MzUyLDM3MzU4LDM4MjY2LDM4Mjc4LDM4MjgwLDM4NTI0LDM4''@;'; + put 'put ''NTA5LDM4NTA3LDM4NTEzLDM4NTExLDM4NTkxLDM4NzYyLDM4OTE2LDM5MTQxLDM5MzE5LDIwNjM1LDIwNjI5LDIwNjI4LDIwNjM4LDIwNjE5LDIwNjQzLDIwNjExLDIwNjIwLDIwNjIyLDIwNjM3LDIwNTg0LDIwNjM2LDIwNjI2LDIwNjEwLDIwNjE1LDIwODMxLDIwOTQ4LDIxMjY2LDIxMjY1''@;'; + put 'put ''LDIxNDEyLDIxNDE1LDIxOTA1LDIxOTI4LDIxOTI1LDIxOTMzLDIxODc5LDIyMDg1LDIxOTIyLDIxOTA3LDIxODk2LDIxOTAzLDIxOTQxLDIxODg5LDIxOTIzLDIxOTA2LDIxOTI0LDIxODg1LDIxOTAwLDIxOTI2LDIxODg3LDIxOTA5LDIxOTIxLDIxOTAyLDIyMjg0LDIyNTY5LDIyNTgzLDIy''@;'; + put 'put ''NTUzLDIyNTU4LDIyNTY3LDIyNTYzLDIyNTY4LDIyNTE3LDIyNjAwLDIyNTY1LDIyNTU2LDIyNTU1LDIyNTc5LDIyNTkxLDIyNTgyLDIyNTc0LDIyNTg1LDIyNTg0LDIyNTczLDIyNTcyLDIyNTg3LDIyODgxLDIzMjE1LDIzMTg4LDIzMTk5LDIzMTYyLDIzMjAyLDIzMTk4LDIzMTYwLDIzMjA2''@;'; + put 'put ''LDIzMTY0LDIzMjA1LDIzMjEyLDIzMTg5LDIzMjE0LDIzMDk1LDIzMTcyLDIzMTc4LDIzMTkxLDIzMTcxLDIzMTc5LDIzMjA5LDIzMTYzLDIzMTY1LDIzMTgwLDIzMTk2LDIzMTgzLDIzMTg3LDIzMTk3LDIzNTMwLDIzNTAxLDIzNDk5LDIzNTA4LDIzNTA1LDIzNDk4LDIzNTAyLDIzNTY0LDIz''@;'; + put 'put ''NjAwLDIzODYzLDIzODc1LDIzOTE1LDIzODczLDIzODgzLDIzODcxLDIzODYxLDIzODg5LDIzODg2LDIzODkzLDIzODU5LDIzODY2LDIzODkwLDIzODY5LDIzODU3LDIzODk3LDIzODc0LDIzODY1LDIzODgxLDIzODY0LDIzODY4LDIzODU4LDIzODYyLDIzODcyLDIzODc3LDI0MTMyLDI0MTI5''@;'; + put 'put ''LDI0NDA4LDI0NDg2LDI0NDg1LDI0NDkxLDI0Nzc3LDI0NzYxLDI0NzgwLDI0ODAyLDI0NzgyLDI0NzcyLDI0ODUyLDI0ODE4LDI0ODQyLDI0ODU0LDI0ODM3LDI0ODIxLDI0ODUxLDI0ODI0LDI0ODI4LDI0ODMwLDI0NzY5LDI0ODM1LDI0ODU2LDI0ODYxLDI0ODQ4LDI0ODMxLDI0ODM2LDI0''@;'; + put 'put ''ODQzLDI1MTYyLDI1NDkyLDI1NTIxLDI1NTIwLDI1NTUwLDI1NTczLDI1NTc2LDI1NTgzLDI1NTM5LDI1NzU3LDI1NTg3LDI1NTQ2LDI1NTY4LDI1NTkwLDI1NTU3LDI1NTg2LDI1NTg5LDI1Njk3LDI1NTY3LDI1NTM0LDI1NTY1LDI1NTY0LDI1NTQwLDI1NTYwLDI1NTU1LDI1NTM4LDI1NTQz''@;'; + put 'put ''LDI1NTQ4LDI1NTQ3LDI1NTQ0LDI1NTg0LDI1NTU5LDI1NTYxLDI1OTA2LDI1OTU5LDI1OTYyLDI1OTU2LDI1OTQ4LDI1OTYwLDI1OTU3LDI1OTk2LDI2MDEzLDI2MDE0LDI2MDMwLDI2MDY0LDI2MDY2LDI2MjM2LDI2MjIwLDI2MjM1LDI2MjQwLDI2MjI1LDI2MjMzLDI2MjE4LDI2MjI2LDI2''@;'; + put 'put ''MzY5LDI2ODkyLDI2ODM1LDI2ODg0LDI2ODQ0LDI2OTIyLDI2ODYwLDI2ODU4LDI2ODY1LDI2ODk1LDI2ODM4LDI2ODcxLDI2ODU5LDI2ODUyLDI2ODcwLDI2ODk5LDI2ODk2LDI2ODY3LDI2ODQ5LDI2ODg3LDI2ODI4LDI2ODg4LDI2OTkyLDI2ODA0LDI2ODk3LDI2ODYzLDI2ODIyLDI2OTAw''@;'; + put 'put ''LDI2ODcyLDI2ODMyLDI2ODc3LDI2ODc2LDI2ODU2LDI2ODkxLDI2ODkwLDI2OTAzLDI2ODMwLDI2ODI0LDI2ODQ1LDI2ODQ2LDI2ODU0LDI2ODY4LDI2ODMzLDI2ODg2LDI2ODM2LDI2ODU3LDI2OTAxLDI2OTE3LDI2ODIzLDI3NDQ5LDI3NDUxLDI3NDU1LDI3NDUyLDI3NTQwLDI3NTQzLDI3''@;'; + put 'put ''NTQ1LDI3NTQxLDI3NTgxLDI3NjMyLDI3NjM0LDI3NjM1LDI3Njk2LDI4MTU2LDI4MjMwLDI4MjMxLDI4MTkxLDI4MjMzLDI4Mjk2LDI4MjIwLDI4MjIxLDI4MjI5LDI4MjU4LDI4MjAzLDI4MjIzLDI4MjI1LDI4MjUzLDI4Mjc1LDI4MTg4LDI4MjExLDI4MjM1LDI4MjI0LDI4MjQxLDI4MjE5''@;'; + put 'put ''LDI4MTYzLDI4MjA2LDI4MjU0LDI4MjY0LDI4MjUyLDI4MjU3LDI4MjA5LDI4MjAwLDI4MjU2LDI4MjczLDI4MjY3LDI4MjE3LDI4MTk0LDI4MjA4LDI4MjQzLDI4MjYxLDI4MTk5LDI4MjgwLDI4MjYwLDI4Mjc5LDI4MjQ1LDI4MjgxLDI4MjQyLDI4MjYyLDI4MjEzLDI4MjE0LDI4MjUwLDI4''@;'; + put 'put ''OTYwLDI4OTU4LDI4OTc1LDI4OTIzLDI4OTc0LDI4OTc3LDI4OTYzLDI4OTY1LDI4OTYyLDI4OTc4LDI4OTU5LDI4OTY4LDI4OTg2LDI4OTU1LDI5MjU5LDI5Mjc0LDI5MzIwLDI5MzIxLDI5MzE4LDI5MzE3LDI5MzIzLDI5NDU4LDI5NDUxLDI5NDg4LDI5NDc0LDI5NDg5LDI5NDkxLDI5NDc5''@;'; + put 'put ''LDI5NDkwLDI5NDg1LDI5NDc4LDI5NDc1LDI5NDkzLDI5NDUyLDI5NzQyLDI5NzQwLDI5NzQ0LDI5NzM5LDI5NzE4LDI5NzIyLDI5NzI5LDI5NzQxLDI5NzQ1LDI5NzMyLDI5NzMxLDI5NzI1LDI5NzM3LDI5NzI4LDI5NzQ2LDI5OTQ3LDI5OTk5LDMwMDYzLDMwMDYwLDMwMTgzLDMwMTcwLDMw''@;'; + put 'put ''MTc3LDMwMTgyLDMwMTczLDMwMTc1LDMwMTgwLDMwMTY3LDMwMzU3LDMwMzU0LDMwNDI2LDMwNTM0LDMwNTM1LDMwNTMyLDMwNTQxLDMwNTMzLDMwNTM4LDMwNTQyLDMwNTM5LDMwNTQwLDMwNjg2LDMwNzAwLDMwODE2LDMwODIwLDMwODIxLDMwODEyLDMwODI5LDMwODMzLDMwODI2LDMwODMw''@;'; + put 'put ''LDMwODMyLDMwODI1LDMwODI0LDMwODE0LDMwODE4LDMxMDkyLDMxMDkxLDMxMDkwLDMxMDg4LDMxMjM0LDMxMjQyLDMxMjM1LDMxMjQ0LDMxMjM2LDMxMzg1LDMxNDYyLDMxNDYwLDMxNTYyLDMxNTQ3LDMxNTU2LDMxNTYwLDMxNTY0LDMxNTY2LDMxNTUyLDMxNTc2LDMxNTU3LDMxOTA2LDMx''@;'; + put 'put ''OTAyLDMxOTEyLDMxOTA1LDMyMDg4LDMyMTExLDMyMDk5LDMyMDgzLDMyMDg2LDMyMTAzLDMyMTA2LDMyMDc5LDMyMTA5LDMyMDkyLDMyMTA3LDMyMDgyLDMyMDg0LDMyMTA1LDMyMDgxLDMyMDk1LDMyMDc4LDMyNTc0LDMyNTc1LDMyNjEzLDMyNjE0LDMyNjc0LDMyNjcyLDMyNjczLDMyNzI3''@;'; + put 'put ''LDMyODQ5LDMyODQ3LDMyODQ4LDMzMDIyLDMyOTgwLDMzMDkxLDMzMDk4LDMzMTA2LDMzMTAzLDMzMDk1LDMzMDg1LDMzMTAxLDMzMDgyLDMzMjU0LDMzMjYyLDMzMjcxLDMzMjcyLDMzMjczLDMzMjg0LDMzMzQwLDMzMzQxLDMzMzQzLDMzMzk3LDMzNTk1LDMzNzQzLDMzNzg1LDMzODI3LDMz''@;'; + put 'put ''NzI4LDMzNzY4LDMzODEwLDMzNzY3LDMzNzY0LDMzNzg4LDMzNzgyLDMzODA4LDMzNzM0LDMzNzM2LDMzNzcxLDMzNzYzLDMzNzI3LDMzNzkzLDMzNzU3LDMzNzY1LDMzNzUyLDMzNzkxLDMzNzYxLDMzNzM5LDMzNzQyLDMzNzUwLDMzNzgxLDMzNzM3LDMzODAxLDMzODA3LDMzNzU4LDMzODA5''@;'; + put 'put ''LDMzNzk4LDMzNzMwLDMzNzc5LDMzNzQ5LDMzNzg2LDMzNzM1LDMzNzQ1LDMzNzcwLDMzODExLDMzNzMxLDMzNzcyLDMzNzc0LDMzNzMyLDMzNzg3LDMzNzUxLDMzNzYyLDMzODE5LDMzNzU1LDMzNzkwLDM0NTIwLDM0NTMwLDM0NTM0LDM0NTE1LDM0NTMxLDM0NTIyLDM0NTM4LDM0NTI1LDM0''@;'; + put 'put ''NTM5LDM0NTI0LDM0NTQwLDM0NTM3LDM0NTE5LDM0NTM2LDM0NTEzLDM0ODg4LDM0OTAyLDM0OTAxLDM1MDAyLDM1MDMxLDM1MDAxLDM1ZTMsMzUwMDgsMzUwMDYsMzQ5OTgsMzUwMDQsMzQ5OTksMzUwMDUsMzQ5OTQsMzUwNzMsMzUwMTcsMzUyMjEsMzUyMjQsMzUyMjMsMzUyOTMsMzUyOTAs''@;'; + put 'put ''MzUyOTEsMzU0MDYsMzU0MDUsMzUzODUsMzU0MTcsMzUzOTIsMzU0MTUsMzU0MTYsMzUzOTYsMzUzOTcsMzU0MTAsMzU0MDAsMzU0MDksMzU0MDIsMzU0MDQsMzU0MDcsMzU5MzUsMzU5NjksMzU5NjgsMzYwMjYsMzYwMzAsMzYwMTYsMzYwMjUsMzYwMjEsMzYyMjgsMzYyMjQsMzYyMzMsMzYz''@;'; + put 'put ''MTIsMzYzMDcsMzYzMDEsMzYyOTUsMzYzMTAsMzYzMTYsMzYzMDMsMzYzMDksMzYzMTMsMzYyOTYsMzYzMTEsMzYyOTMsMzY1OTEsMzY1OTksMzY2MDIsMzY2MDEsMzY1ODIsMzY1OTAsMzY1ODEsMzY1OTcsMzY1ODMsMzY1ODQsMzY1OTgsMzY1ODcsMzY1OTMsMzY1ODgsMzY1OTYsMzY1ODUs''@;'; + put 'put ''MzY5MDksMzY5MTYsMzY5MTEsMzcxMjYsMzcxNjQsMzcxMjQsMzcxMTksMzcxMTYsMzcxMjgsMzcxMTMsMzcxMTUsMzcxMjEsMzcxMjAsMzcxMjcsMzcxMjUsMzcxMjMsMzcyMTcsMzcyMjAsMzcyMTUsMzcyMTgsMzcyMTYsMzczNzcsMzczODYsMzc0MTMsMzczNzksMzc0MDIsMzc0MTQsMzcz''@;'; + put 'put ''OTEsMzczODgsMzczNzYsMzczOTQsMzczNzUsMzczNzMsMzczODIsMzczODAsMzc0MTUsMzczNzgsMzc0MDQsMzc0MTIsMzc0MDEsMzczOTksMzczODEsMzczOTgsMzgyNjcsMzgyODUsMzgyODQsMzgyODgsMzg1MzUsMzg1MjYsMzg1MzYsMzg1MzcsMzg1MzEsMzg1MjgsMzg1OTQsMzg2MDAs''@;'; + put 'put ''Mzg1OTUsMzg2NDEsMzg2NDAsMzg3NjQsMzg3NjgsMzg3NjYsMzg5MTksMzkwODEsMzkxNDcsNDAxNjYsNDA2OTcsMjAwOTksMjAxMDAsMjAxNTAsMjA2NjksMjA2NzEsMjA2NzgsMjA2NTQsMjA2NzYsMjA2ODIsMjA2NjAsMjA2ODAsMjA2NzQsMjA2NTYsMjA2NzMsMjA2NjYsMjA2NTcsMjA2''@;'; + put 'put ''ODMsMjA2ODEsMjA2NjIsMjA2NjQsMjA5NTEsMjExMTQsMjExMTIsMjExMTUsMjExMTYsMjE5NTUsMjE5NzksMjE5NjQsMjE5NjgsMjE5NjMsMjE5NjIsMjE5ODEsMjE5NTIsMjE5NzIsMjE5NTYsMjE5OTMsMjE5NTEsMjE5NzAsMjE5MDEsMjE5NjcsMjE5NzMsMjE5ODYsMjE5NzQsMjE5NjAs''@;'; + put 'put ''MjIwMDIsMjE5NjUsMjE5NzcsMjE5NTQsMjIyOTIsMjI2MTEsMjI2MzIsMjI2MjgsMjI2MDcsMjI2MDUsMjI2MDEsMjI2MzksMjI2MTMsMjI2MDYsMjI2MjEsMjI2MTcsMjI2MjksMjI2MTksMjI1ODksMjI2MjcsMjI2NDEsMjI3ODAsMjMyMzksMjMyMzYsMjMyNDMsMjMyMjYsMjMyMjQsMjMy''@;'; + put 'put ''MTcsMjMyMjEsMjMyMTYsMjMyMzEsMjMyNDAsMjMyMjcsMjMyMzgsMjMyMjMsMjMyMzIsMjMyNDIsMjMyMjAsMjMyMjIsMjMyNDUsMjMyMjUsMjMxODQsMjM1MTAsMjM1MTIsMjM1MTMsMjM1ODMsMjM2MDMsMjM5MjEsMjM5MDcsMjM4ODIsMjM5MDksMjM5MjIsMjM5MTYsMjM5MDIsMjM5MTIs''@;'; + put 'put ''MjM5MTEsMjM5MDYsMjQwNDgsMjQxNDMsMjQxNDIsMjQxMzgsMjQxNDEsMjQxMzksMjQyNjEsMjQyNjgsMjQyNjIsMjQyNjcsMjQyNjMsMjQzODQsMjQ0OTUsMjQ0OTMsMjQ4MjMsMjQ5MDUsMjQ5MDYsMjQ4NzUsMjQ5MDEsMjQ4ODYsMjQ4ODIsMjQ4NzgsMjQ5MDIsMjQ4NzksMjQ5MTEsMjQ4''@;'; + put 'put ''NzMsMjQ4OTYsMjUxMjAsMzcyMjQsMjUxMjMsMjUxMjUsMjUxMjQsMjU1NDEsMjU1ODUsMjU1NzksMjU2MTYsMjU2MTgsMjU2MDksMjU2MzIsMjU2MzYsMjU2NTEsMjU2NjcsMjU2MzEsMjU2MjEsMjU2MjQsMjU2NTcsMjU2NTUsMjU2MzQsMjU2MzUsMjU2MTIsMjU2MzgsMjU2NDgsMjU2NDAs''@;'; + put 'put ''MjU2NjUsMjU2NTMsMjU2NDcsMjU2MTAsMjU2MjYsMjU2NjQsMjU2MzcsMjU2MzksMjU2MTEsMjU1NzUsMjU2MjcsMjU2NDYsMjU2MzMsMjU2MTQsMjU5NjcsMjYwMDIsMjYwNjcsMjYyNDYsMjYyNTIsMjYyNjEsMjYyNTYsMjYyNTEsMjYyNTAsMjYyNjUsMjYyNjAsMjYyMzIsMjY0MDAsMjY5''@;'; + put 'put ''ODIsMjY5NzUsMjY5MzYsMjY5NTgsMjY5NzgsMjY5OTMsMjY5NDMsMjY5NDksMjY5ODYsMjY5MzcsMjY5NDYsMjY5NjcsMjY5NjksMjcwMDIsMjY5NTIsMjY5NTMsMjY5MzMsMjY5ODgsMjY5MzEsMjY5NDEsMjY5ODEsMjY4NjQsMjdlMywyNjkzMiwyNjk4NSwyNjk0NCwyNjk5MSwyNjk0OCwy''@;'; + put 'put ''Njk5OCwyNjk2OCwyNjk0NSwyNjk5NiwyNjk1NiwyNjkzOSwyNjk1NSwyNjkzNSwyNjk3MiwyNjk1OSwyNjk2MSwyNjkzMCwyNjk2MiwyNjkyNywyNzAwMywyNjk0MCwyNzQ2MiwyNzQ2MSwyNzQ1OSwyNzQ1OCwyNzQ2NCwyNzQ1NywyNzU0Nyw2NDAxMywyNzY0MywyNzY0NCwyNzY0MSwyNzYz''@;'; + put 'put ''OSwyNzY0MCwyODMxNSwyODM3NCwyODM2MCwyODMwMywyODM1MiwyODMxOSwyODMwNywyODMwOCwyODMyMCwyODMzNywyODM0NSwyODM1OCwyODM3MCwyODM0OSwyODM1MywyODMxOCwyODM2MSwyODM0MywyODMzNiwyODM2NSwyODMyNiwyODM2NywyODMzOCwyODM1MCwyODM1NSwyODM4MCwy''@;'; + put 'put ''ODM3NiwyODMxMywyODMwNiwyODMwMiwyODMwMSwyODMyNCwyODMyMSwyODM1MSwyODMzOSwyODM2OCwyODM2MiwyODMxMSwyODMzNCwyODMyMywyODk5OSwyOTAxMiwyOTAxMCwyOTAyNywyOTAyNCwyODk5MywyOTAyMSwyOTAyNiwyOTA0MiwyOTA0OCwyOTAzNCwyOTAyNSwyODk5NCwyOTAx''@;'; + put 'put ''NiwyODk5NSwyOTAwMywyOTA0MCwyOTAyMywyOTAwOCwyOTAxMSwyODk5NiwyOTAwNSwyOTAxOCwyOTI2MywyOTMyNSwyOTMyNCwyOTMyOSwyOTMyOCwyOTMyNiwyOTUwMCwyOTUwNiwyOTQ5OSwyOTQ5OCwyOTUwNCwyOTUxNCwyOTUxMywyOTc2NCwyOTc3MCwyOTc3MSwyOTc3OCwyOTc3Nywy''@;'; + put 'put ''OTc4MywyOTc2MCwyOTc3NSwyOTc3NiwyOTc3NCwyOTc2MiwyOTc2NiwyOTc3MywyOTc4MCwyOTkyMSwyOTk1MSwyOTk1MCwyOTk0OSwyOTk4MSwzMDA3MywzMDA3MSwyNzAxMSwzMDE5MSwzMDIyMywzMDIxMSwzMDE5OSwzMDIwNiwzMDIwNCwzMDIwMSwzMDIwMCwzMDIyNCwzMDIwMywzMDE5''@;'; + put 'put ''OCwzMDE4OSwzMDE5NywzMDIwNSwzMDM2MSwzMDM4OSwzMDQyOSwzMDU0OSwzMDU1OSwzMDU2MCwzMDU0NiwzMDU1MCwzMDU1NCwzMDU2OSwzMDU2NywzMDU0OCwzMDU1MywzMDU3MywzMDY4OCwzMDg1NSwzMDg3NCwzMDg2OCwzMDg2MywzMDg1MiwzMDg2OSwzMDg1MywzMDg1NCwzMDg4MSwz''@;'; + put 'put ''MDg1MSwzMDg0MSwzMDg3MywzMDg0OCwzMDg3MCwzMDg0MywzMTEwMCwzMTEwNiwzMTEwMSwzMTA5NywzMTI0OSwzMTI1NiwzMTI1NywzMTI1MCwzMTI1NSwzMTI1MywzMTI2NiwzMTI1MSwzMTI1OSwzMTI0OCwzMTM5NSwzMTM5NCwzMTM5MCwzMTQ2NywzMTU5MCwzMTU4OCwzMTU5NywzMTYw''@;'; + put 'put ''NCwzMTU5MywzMTYwMiwzMTU4OSwzMTYwMywzMTYwMSwzMTYwMCwzMTU4NSwzMTYwOCwzMTYwNiwzMTU4NywzMTkyMiwzMTkyNCwzMTkxOSwzMjEzNiwzMjEzNCwzMjEyOCwzMjE0MSwzMjEyNywzMjEzMywzMjEyMiwzMjE0MiwzMjEyMywzMjEzMSwzMjEyNCwzMjE0MCwzMjE0OCwzMjEzMiwz''@;'; + put 'put ''MjEyNSwzMjE0NiwzMjYyMSwzMjYxOSwzMjYxNSwzMjYxNiwzMjYyMCwzMjY3OCwzMjY3NywzMjY3OSwzMjczMSwzMjczMiwzMjgwMSwzMzEyNCwzMzEyMCwzMzE0MywzMzExNiwzMzEyOSwzMzExNSwzMzEyMiwzMzEzOCwyNjQwMSwzMzExOCwzMzE0MiwzMzEyNywzMzEzNSwzMzA5MiwzMzEy''@;'; + put 'put ''MSwzMzMwOSwzMzM1MywzMzM0OCwzMzM0NCwzMzM0NiwzMzM0OSwzNDAzMywzMzg1NSwzMzg3OCwzMzkxMCwzMzkxMywzMzkzNSwzMzkzMywzMzg5MywzMzg3MywzMzg1NiwzMzkyNiwzMzg5NSwzMzg0MCwzMzg2OSwzMzkxNywzMzg4MiwzMzg4MSwzMzkwOCwzMzkwNywzMzg4NSwzNDA1NSwz''@;'; + put 'put ''Mzg4NiwzMzg0NywzMzg1MCwzMzg0NCwzMzkxNCwzMzg1OSwzMzkxMiwzMzg0MiwzMzg2MSwzMzgzMywzMzc1MywzMzg2NywzMzgzOSwzMzg1OCwzMzgzNywzMzg4NywzMzkwNCwzMzg0OSwzMzg3MCwzMzg2OCwzMzg3NCwzMzkwMywzMzk4OSwzMzkzNCwzMzg1MSwzMzg2MywzMzg0NiwzMzg0''@;'; + put 'put ''MywzMzg5NiwzMzkxOCwzMzg2MCwzMzgzNSwzMzg4OCwzMzg3NiwzMzkwMiwzMzg3MiwzNDU3MSwzNDU2NCwzNDU1MSwzNDU3MiwzNDU1NCwzNDUxOCwzNDU0OSwzNDYzNywzNDU1MiwzNDU3NCwzNDU2OSwzNDU2MSwzNDU1MCwzNDU3MywzNDU2NSwzNTAzMCwzNTAxOSwzNTAyMSwzNTAyMiwz''@;'; + put 'put ''NTAzOCwzNTAzNSwzNTAzNCwzNTAyMCwzNTAyNCwzNTIwNSwzNTIyNywzNTI5NSwzNTMwMSwzNTMwMCwzNTI5NywzNTI5NiwzNTI5OCwzNTI5MiwzNTMwMiwzNTQ0NiwzNTQ2MiwzNTQ1NSwzNTQyNSwzNTM5MSwzNTQ0NywzNTQ1OCwzNTQ2MCwzNTQ0NSwzNTQ1OSwzNTQ1NywzNTQ0NCwzNTQ1''@;'; + put 'put ''MCwzNTkwMCwzNTkxNSwzNTkxNCwzNTk0MSwzNTk0MCwzNTk0MiwzNTk3NCwzNTk3MiwzNTk3MywzNjA0NCwzNjIwMCwzNjIwMSwzNjI0MSwzNjIzNiwzNjIzOCwzNjIzOSwzNjIzNywzNjI0MywzNjI0NCwzNjI0MCwzNjI0MiwzNjMzNiwzNjMyMCwzNjMzMiwzNjMzNywzNjMzNCwzNjMwNCwz''@;'; + put 'put ''NjMyOSwzNjMyMywzNjMyMiwzNjMyNywzNjMzOCwzNjMzMSwzNjM0MCwzNjYxNCwzNjYwNywzNjYwOSwzNjYwOCwzNjYxMywzNjYxNSwzNjYxNiwzNjYxMCwzNjYxOSwzNjk0NiwzNjkyNywzNjkzMiwzNjkzNywzNjkyNSwzNzEzNiwzNzEzMywzNzEzNSwzNzEzNywzNzE0MiwzNzE0MCwzNzEz''@;'; + put 'put ''MSwzNzEzNCwzNzIzMCwzNzIzMSwzNzQ0OCwzNzQ1OCwzNzQyNCwzNzQzNCwzNzQ3OCwzNzQyNywzNzQ3NywzNzQ3MCwzNzUwNywzNzQyMiwzNzQ1MCwzNzQ0NiwzNzQ4NSwzNzQ4NCwzNzQ1NSwzNzQ3MiwzNzQ3OSwzNzQ4NywzNzQzMCwzNzQ3MywzNzQ4OCwzNzQyNSwzNzQ2MCwzNzQ3NSwz''@;'; + put 'put ''NzQ1NiwzNzQ5MCwzNzQ1NCwzNzQ1OSwzNzQ1MiwzNzQ2MiwzNzQyNiwzODMwMywzODMwMCwzODMwMiwzODI5OSwzODU0NiwzODU0NywzODU0NSwzODU1MSwzODYwNiwzODY1MCwzODY1MywzODY0OCwzODY0NSwzODc3MSwzODc3NSwzODc3NiwzODc3MCwzODkyNywzODkyNSwzODkyNiwzOTA4''@;'; + put 'put ''NCwzOTE1OCwzOTE2MSwzOTM0MywzOTM0NiwzOTM0NCwzOTM0OSwzOTU5NywzOTU5NSwzOTc3MSw0MDE3MCw0MDE3Myw0MDE2Nyw0MDU3Niw0MDcwMSwyMDcxMCwyMDY5MiwyMDY5NSwyMDcxMiwyMDcyMywyMDY5OSwyMDcxNCwyMDcwMSwyMDcwOCwyMDY5MSwyMDcxNiwyMDcyMCwyMDcxOSwy''@;'; + put 'put ''MDcwNywyMDcwNCwyMDk1MiwyMTEyMCwyMTEyMSwyMTIyNSwyMTIyNywyMTI5NiwyMTQyMCwyMjA1NSwyMjAzNywyMjAyOCwyMjAzNCwyMjAxMiwyMjAzMSwyMjA0NCwyMjAxNywyMjAzNSwyMjAxOCwyMjAxMCwyMjA0NSwyMjAyMCwyMjAxNSwyMjAwOSwyMjY2NSwyMjY1MiwyMjY3MiwyMjY4''@;'; + put 'put ''MCwyMjY2MiwyMjY1NywyMjY1NSwyMjY0NCwyMjY2NywyMjY1MCwyMjY2MywyMjY3MywyMjY3MCwyMjY0NiwyMjY1OCwyMjY2NCwyMjY1MSwyMjY3NiwyMjY3MSwyMjc4MiwyMjg5MSwyMzI2MCwyMzI3OCwyMzI2OSwyMzI1MywyMzI3NCwyMzI1OCwyMzI3NywyMzI3NSwyMzI4MywyMzI2Niwy''@;'; + put 'put ''MzI2NCwyMzI1OSwyMzI3NiwyMzI2MiwyMzI2MSwyMzI1NywyMzI3MiwyMzI2MywyMzQxNSwyMzUyMCwyMzUyMywyMzY1MSwyMzkzOCwyMzkzNiwyMzkzMywyMzk0MiwyMzkzMCwyMzkzNywyMzkyNywyMzk0NiwyMzk0NSwyMzk0NCwyMzkzNCwyMzkzMiwyMzk0OSwyMzkyOSwyMzkzNSwyNDE1''@;'; + put 'put ''MiwyNDE1MywyNDE0NywyNDI4MCwyNDI3MywyNDI3OSwyNDI3MCwyNDI4NCwyNDI3NywyNDI4MSwyNDI3NCwyNDI3NiwyNDM4OCwyNDM4NywyNDQzMSwyNDUwMiwyNDg3NiwyNDg3MiwyNDg5NywyNDkyNiwyNDk0NSwyNDk0NywyNDkxNCwyNDkxNSwyNDk0NiwyNDk0MCwyNDk2MCwyNDk0OCwy''@;'; + put 'put ''NDkxNiwyNDk1NCwyNDkyMywyNDkzMywyNDg5MSwyNDkzOCwyNDkyOSwyNDkxOCwyNTEyOSwyNTEyNywyNTEzMSwyNTY0MywyNTY3NywyNTY5MSwyNTY5MywyNTcxNiwyNTcxOCwyNTcxNCwyNTcxNSwyNTcyNSwyNTcxNywyNTcwMiwyNTc2NiwyNTY3OCwyNTczMCwyNTY5NCwyNTY5MiwyNTY3''@;'; + put 'put ''NSwyNTY4MywyNTY5NiwyNTY4MCwyNTcyNywyNTY2MywyNTcwOCwyNTcwNywyNTY4OSwyNTcwMSwyNTcxOSwyNTk3MSwyNjAxNiwyNjI3MywyNjI3MiwyNjI3MSwyNjM3MywyNjM3MiwyNjQwMiwyNzA1NywyNzA2MiwyNzA4MSwyNzA0MCwyNzA4NiwyNzAzMCwyNzA1NiwyNzA1MiwyNzA2OCwy''@;'; + put 'put ''NzAyNSwyNzAzMywyNzAyMiwyNzA0NywyNzAyMSwyNzA0OSwyNzA3MCwyNzA1NSwyNzA3MSwyNzA3NiwyNzA2OSwyNzA0NCwyNzA5MiwyNzA2NSwyNzA4MiwyNzAzNCwyNzA4NywyNzA1OSwyNzAyNywyNzA1MCwyNzA0MSwyNzAzOCwyNzA5NywyNzAzMSwyNzAyNCwyNzA3NCwyNzA2MSwyNzA0''@;'; + put 'put ''NSwyNzA3OCwyNzQ2NiwyNzQ2OSwyNzQ2NywyNzU1MCwyNzU1MSwyNzU1MiwyNzU4NywyNzU4OCwyNzY0NiwyODM2NiwyODQwNSwyODQwMSwyODQxOSwyODQ1MywyODQwOCwyODQ3MSwyODQxMSwyODQ2MiwyODQyNSwyODQ5NCwyODQ0MSwyODQ0MiwyODQ1NSwyODQ0MCwyODQ3NSwyODQzNCwy''@;'; + put 'put ''ODM5NywyODQyNiwyODQ3MCwyODUzMSwyODQwOSwyODM5OCwyODQ2MSwyODQ4MCwyODQ2NCwyODQ3NiwyODQ2OSwyODM5NSwyODQyMywyODQzMCwyODQ4MywyODQyMSwyODQxMywyODQwNiwyODQ3MywyODQ0NCwyODQxMiwyODQ3NCwyODQ0NywyODQyOSwyODQ0NiwyODQyNCwyODQ0OSwyOTA2''@;'; + put 'put ''MywyOTA3MiwyOTA2NSwyOTA1NiwyOTA2MSwyOTA1OCwyOTA3MSwyOTA1MSwyOTA2MiwyOTA1NywyOTA3OSwyOTI1MiwyOTI2NywyOTMzNSwyOTMzMywyOTMzMSwyOTUwNywyOTUxNywyOTUyMSwyOTUxNiwyOTc5NCwyOTgxMSwyOTgwOSwyOTgxMywyOTgxMCwyOTc5OSwyOTgwNiwyOTk1Miwy''@;'; + put 'put ''OTk1NCwyOTk1NSwzMDA3NywzMDA5NiwzMDIzMCwzMDIxNiwzMDIyMCwzMDIyOSwzMDIyNSwzMDIxOCwzMDIyOCwzMDM5MiwzMDU5MywzMDU4OCwzMDU5NywzMDU5NCwzMDU3NCwzMDU5MiwzMDU3NSwzMDU5MCwzMDU5NSwzMDg5OCwzMDg5MCwzMDkwMCwzMDg5MywzMDg4OCwzMDg0NiwzMDg5''@;'; + put 'put ''MSwzMDg3OCwzMDg4NSwzMDg4MCwzMDg5MiwzMDg4MiwzMDg4NCwzMTEyOCwzMTExNCwzMTExNSwzMTEyNiwzMTEyNSwzMTEyNCwzMTEyMywzMTEyNywzMTExMiwzMTEyMiwzMTEyMCwzMTI3NSwzMTMwNiwzMTI4MCwzMTI3OSwzMTI3MiwzMTI3MCwzMTQwMCwzMTQwMywzMTQwNCwzMTQ3MCwz''@;'; + put 'put ''MTYyNCwzMTY0NCwzMTYyNiwzMTYzMywzMTYzMiwzMTYzOCwzMTYyOSwzMTYyOCwzMTY0MywzMTYzMCwzMTYyMSwzMTY0MCwyMTEyNCwzMTY0MSwzMTY1MiwzMTYxOCwzMTkzMSwzMTkzNSwzMTkzMiwzMTkzMCwzMjE2NywzMjE4MywzMjE5NCwzMjE2MywzMjE3MCwzMjE5MywzMjE5MiwzMjE5''@;'; + put 'put ''NywzMjE1NywzMjIwNiwzMjE5NiwzMjE5OCwzMjIwMywzMjIwNCwzMjE3NSwzMjE4NSwzMjE1MCwzMjE4OCwzMjE1OSwzMjE2NiwzMjE3NCwzMjE2OSwzMjE2MSwzMjIwMSwzMjYyNywzMjczOCwzMjczOSwzMjc0MSwzMjczNCwzMjgwNCwzMjg2MSwzMjg2MCwzMzE2MSwzMzE1OCwzMzE1NSwz''@;'; + put 'put ''MzE1OSwzMzE2NSwzMzE2NCwzMzE2MywzMzMwMSwzMzk0MywzMzk1NiwzMzk1MywzMzk1MSwzMzk3OCwzMzk5OCwzMzk4NiwzMzk2NCwzMzk2NiwzMzk2MywzMzk3NywzMzk3MiwzMzk4NSwzMzk5NywzMzk2MiwzMzk0NiwzMzk2OSwzNGUzLDMzOTQ5LDMzOTU5LDMzOTc5LDMzOTU0LDMzOTQw''@;'; + put 'put ''LDMzOTkxLDMzOTk2LDMzOTQ3LDMzOTYxLDMzOTY3LDMzOTYwLDM0MDA2LDMzOTQ0LDMzOTc0LDMzOTk5LDMzOTUyLDM0MDA3LDM0MDA0LDM0MDAyLDM0MDExLDMzOTY4LDMzOTM3LDM0NDAxLDM0NjExLDM0NTk1LDM0NjAwLDM0NjY3LDM0NjI0LDM0NjA2LDM0NTkwLDM0NTkzLDM0NTg1LDM0''@;'; + put 'put ''NTg3LDM0NjI3LDM0NjA0LDM0NjI1LDM0NjIyLDM0NjMwLDM0NTkyLDM0NjEwLDM0NjAyLDM0NjA1LDM0NjIwLDM0NTc4LDM0NjE4LDM0NjA5LDM0NjEzLDM0NjI2LDM0NTk4LDM0NTk5LDM0NjE2LDM0NTk2LDM0NTg2LDM0NjA4LDM0NTc3LDM1MDYzLDM1MDQ3LDM1MDU3LDM1MDU4LDM1MDY2''@;'; + put 'put ''LDM1MDcwLDM1MDU0LDM1MDY4LDM1MDYyLDM1MDY3LDM1MDU2LDM1MDUyLDM1MDUxLDM1MjI5LDM1MjMzLDM1MjMxLDM1MjMwLDM1MzA1LDM1MzA3LDM1MzA0LDM1NDk5LDM1NDgxLDM1NDY3LDM1NDc0LDM1NDcxLDM1NDc4LDM1OTAxLDM1OTQ0LDM1OTQ1LDM2MDUzLDM2MDQ3LDM2MDU1LDM2''@;'; + put 'put ''MjQ2LDM2MzYxLDM2MzU0LDM2MzUxLDM2MzY1LDM2MzQ5LDM2MzYyLDM2MzU1LDM2MzU5LDM2MzU4LDM2MzU3LDM2MzUwLDM2MzUyLDM2MzU2LDM2NjI0LDM2NjI1LDM2NjIyLDM2NjIxLDM3MTU1LDM3MTQ4LDM3MTUyLDM3MTU0LDM3MTUxLDM3MTQ5LDM3MTQ2LDM3MTU2LDM3MTUzLDM3MTQ3''@;'; + put 'put ''LDM3MjQyLDM3MjM0LDM3MjQxLDM3MjM1LDM3NTQxLDM3NTQwLDM3NDk0LDM3NTMxLDM3NDk4LDM3NTM2LDM3NTI0LDM3NTQ2LDM3NTE3LDM3NTQyLDM3NTMwLDM3NTQ3LDM3NDk3LDM3NTI3LDM3NTAzLDM3NTM5LDM3NjE0LDM3NTE4LDM3NTA2LDM3NTI1LDM3NTM4LDM3NTAxLDM3NTEyLDM3''@;'; + put 'put ''NTM3LDM3NTE0LDM3NTEwLDM3NTE2LDM3NTI5LDM3NTQzLDM3NTAyLDM3NTExLDM3NTQ1LDM3NTMzLDM3NTE1LDM3NDIxLDM4NTU4LDM4NTYxLDM4NjU1LDM4NzQ0LDM4NzgxLDM4Nzc4LDM4NzgyLDM4Nzg3LDM4Nzg0LDM4Nzg2LDM4Nzc5LDM4Nzg4LDM4Nzg1LDM4NzgzLDM4ODYyLDM4ODYx''@;'; + put 'put ''LDM4OTM0LDM5MDg1LDM5MDg2LDM5MTcwLDM5MTY4LDM5MTc1LDM5MzI1LDM5MzI0LDM5MzYzLDM5MzUzLDM5MzU1LDM5MzU0LDM5MzYyLDM5MzU3LDM5MzY3LDM5NjAxLDM5NjUxLDM5NjU1LDM5NzQyLDM5NzQzLDM5Nzc2LDM5Nzc3LDM5Nzc1LDQwMTc3LDQwMTc4LDQwMTgxLDQwNjE1LDIw''@;'; + put 'put ''NzM1LDIwNzM5LDIwNzg0LDIwNzI4LDIwNzQyLDIwNzQzLDIwNzI2LDIwNzM0LDIwNzQ3LDIwNzQ4LDIwNzMzLDIwNzQ2LDIxMTMxLDIxMTMyLDIxMjMzLDIxMjMxLDIyMDg4LDIyMDgyLDIyMDkyLDIyMDY5LDIyMDgxLDIyMDkwLDIyMDg5LDIyMDg2LDIyMTA0LDIyMTA2LDIyMDgwLDIyMDY3''@;'; + put 'put ''LDIyMDc3LDIyMDYwLDIyMDc4LDIyMDcyLDIyMDU4LDIyMDc0LDIyMjk4LDIyNjk5LDIyNjg1LDIyNzA1LDIyNjg4LDIyNjkxLDIyNzAzLDIyNzAwLDIyNjkzLDIyNjg5LDIyNzgzLDIzMjk1LDIzMjg0LDIzMjkzLDIzMjg3LDIzMjg2LDIzMjk5LDIzMjg4LDIzMjk4LDIzMjg5LDIzMjk3LDIz''@;'; + put 'put ''MzAzLDIzMzAxLDIzMzExLDIzNjU1LDIzOTYxLDIzOTU5LDIzOTY3LDIzOTU0LDIzOTcwLDIzOTU1LDIzOTU3LDIzOTY4LDIzOTY0LDIzOTY5LDIzOTYyLDIzOTY2LDI0MTY5LDI0MTU3LDI0MTYwLDI0MTU2LDMyMjQzLDI0MjgzLDI0Mjg2LDI0Mjg5LDI0MzkzLDI0NDk4LDI0OTcxLDI0OTYz''@;'; + put 'put ''LDI0OTUzLDI1MDA5LDI1MDA4LDI0OTk0LDI0OTY5LDI0OTg3LDI0OTc5LDI1MDA3LDI1MDA1LDI0OTkxLDI0OTc4LDI1MDAyLDI0OTkzLDI0OTczLDI0OTM0LDI1MDExLDI1MTMzLDI1NzEwLDI1NzEyLDI1NzUwLDI1NzYwLDI1NzMzLDI1NzUxLDI1NzU2LDI1NzQzLDI1NzM5LDI1NzM4LDI1''@;'; + put 'put ''NzQwLDI1NzYzLDI1NzU5LDI1NzA0LDI1Nzc3LDI1NzUyLDI1OTc0LDI1OTc4LDI1OTc3LDI1OTc5LDI2MDM0LDI2MDM1LDI2MjkzLDI2Mjg4LDI2MjgxLDI2MjkwLDI2Mjk1LDI2MjgyLDI2Mjg3LDI3MTM2LDI3MTQyLDI3MTU5LDI3MTA5LDI3MTI4LDI3MTU3LDI3MTIxLDI3MTA4LDI3MTY4''@;'; + put 'put ''LDI3MTM1LDI3MTE2LDI3MTA2LDI3MTYzLDI3MTY1LDI3MTM0LDI3MTc1LDI3MTIyLDI3MTE4LDI3MTU2LDI3MTI3LDI3MTExLDI3MjAwLDI3MTQ0LDI3MTEwLDI3MTMxLDI3MTQ5LDI3MTMyLDI3MTE1LDI3MTQ1LDI3MTQwLDI3MTYwLDI3MTczLDI3MTUxLDI3MTI2LDI3MTc0LDI3MTQzLDI3''@;'; + put 'put ''MTI0LDI3MTU4LDI3NDczLDI3NTU3LDI3NTU1LDI3NTU0LDI3NTU4LDI3NjQ5LDI3NjQ4LDI3NjQ3LDI3NjUwLDI4NDgxLDI4NDU0LDI4NTQyLDI4NTUxLDI4NjE0LDI4NTYyLDI4NTU3LDI4NTUzLDI4NTU2LDI4NTE0LDI4NDk1LDI4NTQ5LDI4NTA2LDI4NTY2LDI4NTM0LDI4NTI0LDI4NTQ2''@;'; + put 'put ''LDI4NTAxLDI4NTMwLDI4NDk4LDI4NDk2LDI4NTAzLDI4NTY0LDI4NTYzLDI4NTA5LDI4NDE2LDI4NTEzLDI4NTIzLDI4NTQxLDI4NTE5LDI4NTYwLDI4NDk5LDI4NTU1LDI4NTIxLDI4NTQzLDI4NTY1LDI4NTE1LDI4NTM1LDI4NTIyLDI4NTM5LDI5MTA2LDI5MTAzLDI5MDgzLDI5MTA0LDI5''@;'; + put 'put ''MDg4LDI5MDgyLDI5MDk3LDI5MTA5LDI5MDg1LDI5MDkzLDI5MDg2LDI5MDkyLDI5MDg5LDI5MDk4LDI5MDg0LDI5MDk1LDI5MTA3LDI5MzM2LDI5MzM4LDI5NTI4LDI5NTIyLDI5NTM0LDI5NTM1LDI5NTM2LDI5NTMzLDI5NTMxLDI5NTM3LDI5NTMwLDI5NTI5LDI5NTM4LDI5ODMxLDI5ODMz''@;'; + put 'put ''LDI5ODM0LDI5ODMwLDI5ODI1LDI5ODIxLDI5ODI5LDI5ODMyLDI5ODIwLDI5ODE3LDI5OTYwLDI5OTU5LDMwMDc4LDMwMjQ1LDMwMjM4LDMwMjMzLDMwMjM3LDMwMjM2LDMwMjQzLDMwMjM0LDMwMjQ4LDMwMjM1LDMwMzY0LDMwMzY1LDMwMzY2LDMwMzYzLDMwNjA1LDMwNjA3LDMwNjAxLDMw''@;'; + put 'put ''NjAwLDMwOTI1LDMwOTA3LDMwOTI3LDMwOTI0LDMwOTI5LDMwOTI2LDMwOTMyLDMwOTIwLDMwOTE1LDMwOTE2LDMwOTIxLDMxMTMwLDMxMTM3LDMxMTM2LDMxMTMyLDMxMTM4LDMxMTMxLDI3NTEwLDMxMjg5LDMxNDEwLDMxNDEyLDMxNDExLDMxNjcxLDMxNjkxLDMxNjc4LDMxNjYwLDMxNjk0''@;'; + put 'put ''LDMxNjYzLDMxNjczLDMxNjkwLDMxNjY5LDMxOTQxLDMxOTQ0LDMxOTQ4LDMxOTQ3LDMyMjQ3LDMyMjE5LDMyMjM0LDMyMjMxLDMyMjE1LDMyMjI1LDMyMjU5LDMyMjUwLDMyMjMwLDMyMjQ2LDMyMjQxLDMyMjQwLDMyMjM4LDMyMjIzLDMyNjMwLDMyNjg0LDMyNjg4LDMyNjg1LDMyNzQ5LDMy''@;'; + put 'put ''NzQ3LDMyNzQ2LDMyNzQ4LDMyNzQyLDMyNzQ0LDMyODY4LDMyODcxLDMzMTg3LDMzMTgzLDMzMTgyLDMzMTczLDMzMTg2LDMzMTc3LDMzMTc1LDMzMzAyLDMzMzU5LDMzMzYzLDMzMzYyLDMzMzYwLDMzMzU4LDMzMzYxLDM0MDg0LDM0MTA3LDM0MDYzLDM0MDQ4LDM0MDg5LDM0MDYyLDM0MDU3''@;'; + put 'put ''LDM0MDYxLDM0MDc5LDM0MDU4LDM0MDg3LDM0MDc2LDM0MDQzLDM0MDkxLDM0MDQyLDM0MDU2LDM0MDYwLDM0MDM2LDM0MDkwLDM0MDM0LDM0MDY5LDM0MDM5LDM0MDI3LDM0MDM1LDM0MDQ0LDM0MDY2LDM0MDI2LDM0MDI1LDM0MDcwLDM0MDQ2LDM0MDg4LDM0MDc3LDM0MDk0LDM0MDUwLDM0''@;'; + put 'put ''MDQ1LDM0MDc4LDM0MDM4LDM0MDk3LDM0MDg2LDM0MDIzLDM0MDI0LDM0MDMyLDM0MDMxLDM0MDQxLDM0MDcyLDM0MDgwLDM0MDk2LDM0MDU5LDM0MDczLDM0MDk1LDM0NDAyLDM0NjQ2LDM0NjU5LDM0NjYwLDM0Njc5LDM0Nzg1LDM0Njc1LDM0NjQ4LDM0NjQ0LDM0NjUxLDM0NjQyLDM0NjU3''@;'; + put 'put ''LDM0NjUwLDM0NjQxLDM0NjU0LDM0NjY5LDM0NjY2LDM0NjQwLDM0NjM4LDM0NjU1LDM0NjUzLDM0NjcxLDM0NjY4LDM0NjgyLDM0NjcwLDM0NjUyLDM0NjYxLDM0NjM5LDM0NjgzLDM0Njc3LDM0NjU4LDM0NjYzLDM0NjY1LDM0OTA2LDM1MDc3LDM1MDg0LDM1MDkyLDM1MDgzLDM1MDk1LDM1''@;'; + put 'put ''MDk2LDM1MDk3LDM1MDc4LDM1MDk0LDM1MDg5LDM1MDg2LDM1MDgxLDM1MjM0LDM1MjM2LDM1MjM1LDM1MzA5LDM1MzEyLDM1MzA4LDM1NTM1LDM1NTI2LDM1NTEyLDM1NTM5LDM1NTM3LDM1NTQwLDM1NTQxLDM1NTE1LDM1NTQzLDM1NTE4LDM1NTIwLDM1NTI1LDM1NTQ0LDM1NTIzLDM1NTE0''@;'; + put 'put ''LDM1NTE3LDM1NTQ1LDM1OTAyLDM1OTE3LDM1OTgzLDM2MDY5LDM2MDYzLDM2MDU3LDM2MDcyLDM2MDU4LDM2MDYxLDM2MDcxLDM2MjU2LDM2MjUyLDM2MjU3LDM2MjUxLDM2Mzg0LDM2Mzg3LDM2Mzg5LDM2Mzg4LDM2Mzk4LDM2MzczLDM2Mzc5LDM2Mzc0LDM2MzY5LDM2Mzc3LDM2MzkwLDM2''@;'; + put 'put ''MzkxLDM2MzcyLDM2MzcwLDM2Mzc2LDM2MzcxLDM2MzgwLDM2Mzc1LDM2Mzc4LDM2NjUyLDM2NjQ0LDM2NjMyLDM2NjM0LDM2NjQwLDM2NjQzLDM2NjMwLDM2NjMxLDM2OTc5LDM2OTc2LDM2OTc1LDM2OTY3LDM2OTcxLDM3MTY3LDM3MTYzLDM3MTYxLDM3MTYyLDM3MTcwLDM3MTU4LDM3MTY2''@;'; + put 'put ''LDM3MjUzLDM3MjU0LDM3MjU4LDM3MjQ5LDM3MjUwLDM3MjUyLDM3MjQ4LDM3NTg0LDM3NTcxLDM3NTcyLDM3NTY4LDM3NTkzLDM3NTU4LDM3NTgzLDM3NjE3LDM3NTk5LDM3NTkyLDM3NjA5LDM3NTkxLDM3NTk3LDM3NTgwLDM3NjE1LDM3NTcwLDM3NjA4LDM3NTc4LDM3NTc2LDM3NTgyLDM3''@;'; + put 'put ''NjA2LDM3NTgxLDM3NTg5LDM3NTc3LDM3NjAwLDM3NTk4LDM3NjA3LDM3NTg1LDM3NTg3LDM3NTU3LDM3NjAxLDM3NTc0LDM3NTU2LDM4MjY4LDM4MzE2LDM4MzE1LDM4MzE4LDM4MzIwLDM4NTY0LDM4NTYyLDM4NjExLDM4NjYxLDM4NjY0LDM4NjU4LDM4NzQ2LDM4Nzk0LDM4Nzk4LDM4Nzky''@;'; + put 'put ''LDM4ODY0LDM4ODYzLDM4OTQyLDM4OTQxLDM4OTUwLDM4OTUzLDM4OTUyLDM4OTQ0LDM4OTM5LDM4OTUxLDM5MDkwLDM5MTc2LDM5MTYyLDM5MTg1LDM5MTg4LDM5MTkwLDM5MTkxLDM5MTg5LDM5Mzg4LDM5MzczLDM5Mzc1LDM5Mzc5LDM5MzgwLDM5Mzc0LDM5MzY5LDM5MzgyLDM5Mzg0LDM5''@;'; + put 'put ''MzcxLDM5MzgzLDM5MzcyLDM5NjAzLDM5NjYwLDM5NjU5LDM5NjY3LDM5NjY2LDM5NjY1LDM5NzUwLDM5NzQ3LDM5NzgzLDM5Nzk2LDM5NzkzLDM5NzgyLDM5Nzk4LDM5Nzk3LDM5NzkyLDM5Nzg0LDM5NzgwLDM5Nzg4LDQwMTg4LDQwMTg2LDQwMTg5LDQwMTkxLDQwMTgzLDQwMTk5LDQwMTky''@;'; + put 'put ''LDQwMTg1LDQwMTg3LDQwMjAwLDQwMTk3LDQwMTk2LDQwNTc5LDQwNjU5LDQwNzE5LDQwNzIwLDIwNzY0LDIwNzU1LDIwNzU5LDIwNzYyLDIwNzUzLDIwOTU4LDIxMzAwLDIxNDczLDIyMTI4LDIyMTEyLDIyMTI2LDIyMTMxLDIyMTE4LDIyMTE1LDIyMTI1LDIyMTMwLDIyMTEwLDIyMTM1LDIy''@;'; + put 'put ''MzAwLDIyMjk5LDIyNzI4LDIyNzE3LDIyNzI5LDIyNzE5LDIyNzE0LDIyNzIyLDIyNzE2LDIyNzI2LDIzMzE5LDIzMzIxLDIzMzIzLDIzMzI5LDIzMzE2LDIzMzE1LDIzMzEyLDIzMzE4LDIzMzM2LDIzMzIyLDIzMzI4LDIzMzI2LDIzNTM1LDIzOTgwLDIzOTg1LDIzOTc3LDIzOTc1LDIzOTg5''@;'; + put 'put ''LDIzOTg0LDIzOTgyLDIzOTc4LDIzOTc2LDIzOTg2LDIzOTgxLDIzOTgzLDIzOTg4LDI0MTY3LDI0MTY4LDI0MTY2LDI0MTc1LDI0Mjk3LDI0Mjk1LDI0Mjk0LDI0Mjk2LDI0MjkzLDI0Mzk1LDI0NTA4LDI0OTg5LDI1ZTMsMjQ5ODIsMjUwMjksMjUwMTIsMjUwMzAsMjUwMjUsMjUwMzYsMjUw''@;'; + put 'put ''MTgsMjUwMjMsMjUwMTYsMjQ5NzIsMjU4MTUsMjU4MTQsMjU4MDgsMjU4MDcsMjU4MDEsMjU3ODksMjU3MzcsMjU3OTUsMjU4MTksMjU4NDMsMjU4MTcsMjU5MDcsMjU5ODMsMjU5ODAsMjYwMTgsMjYzMTIsMjYzMDIsMjYzMDQsMjYzMTQsMjYzMTUsMjYzMTksMjYzMDEsMjYyOTksMjYyOTgs''@;'; + put 'put ''MjYzMTYsMjY0MDMsMjcxODgsMjcyMzgsMjcyMDksMjcyMzksMjcxODYsMjcyNDAsMjcxOTgsMjcyMjksMjcyNDUsMjcyNTQsMjcyMjcsMjcyMTcsMjcxNzYsMjcyMjYsMjcxOTUsMjcxOTksMjcyMDEsMjcyNDIsMjcyMzYsMjcyMTYsMjcyMTUsMjcyMjAsMjcyNDcsMjcyNDEsMjcyMzIsMjcx''@;'; + put 'put ''OTYsMjcyMzAsMjcyMjIsMjcyMjEsMjcyMTMsMjcyMTQsMjcyMDYsMjc0NzcsMjc0NzYsMjc0NzgsMjc1NTksMjc1NjIsMjc1NjMsMjc1OTIsMjc1OTEsMjc2NTIsMjc2NTEsMjc2NTQsMjg1ODksMjg2MTksMjg1NzksMjg2MTUsMjg2MDQsMjg2MjIsMjg2MTYsMjg1MTAsMjg2MTIsMjg2MDUs''@;'; + put 'put ''Mjg1NzQsMjg2MTgsMjg1ODQsMjg2NzYsMjg1ODEsMjg1OTAsMjg2MDIsMjg1ODgsMjg1ODYsMjg2MjMsMjg2MDcsMjg2MDAsMjg1NzgsMjg2MTcsMjg1ODcsMjg2MjEsMjg1OTEsMjg1OTQsMjg1OTIsMjkxMjUsMjkxMjIsMjkxMTksMjkxMTIsMjkxNDIsMjkxMjAsMjkxMjEsMjkxMzEsMjkx''@;'; + put 'put ''NDAsMjkxMzAsMjkxMjcsMjkxMzUsMjkxMTcsMjkxNDQsMjkxMTYsMjkxMjYsMjkxNDYsMjkxNDcsMjkzNDEsMjkzNDIsMjk1NDUsMjk1NDIsMjk1NDMsMjk1NDgsMjk1NDEsMjk1NDcsMjk1NDYsMjk4MjMsMjk4NTAsMjk4NTYsMjk4NDQsMjk4NDIsMjk4NDUsMjk4NTcsMjk5NjMsMzAwODAs''@;'; + put 'put ''MzAyNTUsMzAyNTMsMzAyNTcsMzAyNjksMzAyNTksMzAyNjgsMzAyNjEsMzAyNTgsMzAyNTYsMzAzOTUsMzA0MzgsMzA2MTgsMzA2MjEsMzA2MjUsMzA2MjAsMzA2MTksMzA2MjYsMzA2MjcsMzA2MTMsMzA2MTcsMzA2MTUsMzA5NDEsMzA5NTMsMzA5NDksMzA5NTQsMzA5NDIsMzA5NDcsMzA5''@;'; + put 'put ''MzksMzA5NDUsMzA5NDYsMzA5NTcsMzA5NDMsMzA5NDQsMzExNDAsMzEzMDAsMzEzMDQsMzEzMDMsMzE0MTQsMzE0MTYsMzE0MTMsMzE0MDksMzE0MTUsMzE3MTAsMzE3MTUsMzE3MTksMzE3MDksMzE3MDEsMzE3MTcsMzE3MDYsMzE3MjAsMzE3MzcsMzE3MDAsMzE3MjIsMzE3MTQsMzE3MDgs''@;'; + put 'put ''MzE3MjMsMzE3MDQsMzE3MTEsMzE5NTQsMzE5NTYsMzE5NTksMzE5NTIsMzE5NTMsMzIyNzQsMzIyODksMzIyNzksMzIyNjgsMzIyODcsMzIyODgsMzIyNzUsMzIyNzAsMzIyODQsMzIyNzcsMzIyODIsMzIyOTAsMzIyNjcsMzIyNzEsMzIyNzgsMzIyNjksMzIyNzYsMzIyOTMsMzIyOTIsMzI1''@;'; + put 'put ''NzksMzI2MzUsMzI2MzYsMzI2MzQsMzI2ODksMzI3NTEsMzI4MTAsMzI4MDksMzI4NzYsMzMyMDEsMzMxOTAsMzMxOTgsMzMyMDksMzMyMDUsMzMxOTUsMzMyMDAsMzMxOTYsMzMyMDQsMzMyMDIsMzMyMDcsMzMxOTEsMzMyNjYsMzMzNjUsMzMzNjYsMzMzNjcsMzQxMzQsMzQxMTcsMzQxNTUs''@;'; + put 'put ''MzQxMjUsMzQxMzEsMzQxNDUsMzQxMzYsMzQxMTIsMzQxMTgsMzQxNDgsMzQxMTMsMzQxNDYsMzQxMTYsMzQxMjksMzQxMTksMzQxNDcsMzQxMTAsMzQxMzksMzQxNjEsMzQxMjYsMzQxNTgsMzQxNjUsMzQxMzMsMzQxNTEsMzQxNDQsMzQxODgsMzQxNTAsMzQxNDEsMzQxMzIsMzQxNDksMzQx''@;'; + put 'put ''NTYsMzQ0MDMsMzQ0MDUsMzQ0MDQsMzQ3MTUsMzQ3MDMsMzQ3MTEsMzQ3MDcsMzQ3MDYsMzQ2OTYsMzQ2ODksMzQ3MTAsMzQ3MTIsMzQ2ODEsMzQ2OTUsMzQ3MjMsMzQ2OTMsMzQ3MDQsMzQ3MDUsMzQ3MTcsMzQ2OTIsMzQ3MDgsMzQ3MTYsMzQ3MTQsMzQ2OTcsMzUxMDIsMzUxMTAsMzUxMjAs''@;'; + put 'put ''MzUxMTcsMzUxMTgsMzUxMTEsMzUxMjEsMzUxMDYsMzUxMTMsMzUxMDcsMzUxMTksMzUxMTYsMzUxMDMsMzUzMTMsMzU1NTIsMzU1NTQsMzU1NzAsMzU1NzIsMzU1NzMsMzU1NDksMzU2MDQsMzU1NTYsMzU1NTEsMzU1NjgsMzU1MjgsMzU1NTAsMzU1NTMsMzU1NjAsMzU1ODMsMzU1NjcsMzU1''@;'; + put 'put ''NzksMzU5ODUsMzU5ODYsMzU5ODQsMzYwODUsMzYwNzgsMzYwODEsMzYwODAsMzYwODMsMzYyMDQsMzYyMDYsMzYyNjEsMzYyNjMsMzY0MDMsMzY0MTQsMzY0MDgsMzY0MTYsMzY0MjEsMzY0MDYsMzY0MTIsMzY0MTMsMzY0MTcsMzY0MDAsMzY0MTUsMzY1NDEsMzY2NjIsMzY2NTQsMzY2NjEs''@;'; + put 'put ''MzY2NTgsMzY2NjUsMzY2NjMsMzY2NjAsMzY5ODIsMzY5ODUsMzY5ODcsMzY5OTgsMzcxMTQsMzcxNzEsMzcxNzMsMzcxNzQsMzcyNjcsMzcyNjQsMzcyNjUsMzcyNjEsMzcyNjMsMzc2NzEsMzc2NjIsMzc2NDAsMzc2NjMsMzc2MzgsMzc2NDcsMzc3NTQsMzc2ODgsMzc2OTIsMzc2NTksMzc2''@;'; + put 'put ''NjcsMzc2NTAsMzc2MzMsMzc3MDIsMzc2NzcsMzc2NDYsMzc2NDUsMzc1NzksMzc2NjEsMzc2MjYsMzc2NjksMzc2NTEsMzc2MjUsMzc2MjMsMzc2ODQsMzc2MzQsMzc2NjgsMzc2MzEsMzc2NzMsMzc2ODksMzc2ODUsMzc2NzQsMzc2NTIsMzc2NDQsMzc2NDMsMzc2MzAsMzc2NDEsMzc2MzIs''@;'; + put 'put ''Mzc2MjcsMzc2NTQsMzgzMzIsMzgzNDksMzgzMzQsMzgzMjksMzgzMzAsMzgzMjYsMzgzMzUsMzgzMjUsMzgzMzMsMzg1NjksMzg2MTIsMzg2NjcsMzg2NzQsMzg2NzIsMzg4MDksMzg4MDcsMzg4MDQsMzg4OTYsMzg5MDQsMzg5NjUsMzg5NTksMzg5NjIsMzkyMDQsMzkxOTksMzkyMDcsMzky''@;'; + put 'put ''MDksMzkzMjYsMzk0MDYsMzk0MDQsMzkzOTcsMzkzOTYsMzk0MDgsMzkzOTUsMzk0MDIsMzk0MDEsMzkzOTksMzk2MDksMzk2MTUsMzk2MDQsMzk2MTEsMzk2NzAsMzk2NzQsMzk2NzMsMzk2NzEsMzk3MzEsMzk4MDgsMzk4MTMsMzk4MTUsMzk4MDQsMzk4MDYsMzk4MDMsMzk4MTAsMzk4Mjcs''@;'; + put 'put ''Mzk4MjYsMzk4MjQsMzk4MDIsMzk4MjksMzk4MDUsMzk4MTYsNDAyMjksNDAyMTUsNDAyMjQsNDAyMjIsNDAyMTIsNDAyMzMsNDAyMjEsNDAyMTYsNDAyMjYsNDAyMDgsNDAyMTcsNDAyMjMsNDA1ODQsNDA1ODIsNDA1ODMsNDA2MjIsNDA2MjEsNDA2NjEsNDA2NjIsNDA2OTgsNDA3MjIsNDA3''@;'; + put 'put ''NjUsMjA3NzQsMjA3NzMsMjA3NzAsMjA3NzIsMjA3NjgsMjA3NzcsMjEyMzYsMjIxNjMsMjIxNTYsMjIxNTcsMjIxNTAsMjIxNDgsMjIxNDcsMjIxNDIsMjIxNDYsMjIxNDMsMjIxNDUsMjI3NDIsMjI3NDAsMjI3MzUsMjI3MzgsMjMzNDEsMjMzMzMsMjMzNDYsMjMzMzEsMjMzNDAsMjMzMzUs''@;'; + put 'put ''MjMzMzQsMjMzNDMsMjMzNDIsMjM0MTksMjM1MzcsMjM1MzgsMjM5OTEsMjQxNzIsMjQxNzAsMjQ1MTAsMjQ1MDcsMjUwMjcsMjUwMTMsMjUwMjAsMjUwNjMsMjUwNTYsMjUwNjEsMjUwNjAsMjUwNjQsMjUwNTQsMjU4MzksMjU4MzMsMjU4MjcsMjU4MzUsMjU4MjgsMjU4MzIsMjU5ODUsMjU5''@;'; + put 'put ''ODQsMjYwMzgsMjYwNzQsMjYzMjIsMjcyNzcsMjcyODYsMjcyNjUsMjczMDEsMjcyNzMsMjcyOTUsMjcyOTEsMjcyOTcsMjcyOTQsMjcyNzEsMjcyODMsMjcyNzgsMjcyODUsMjcyNjcsMjczMDQsMjczMDAsMjcyODEsMjcyNjMsMjczMDIsMjcyOTAsMjcyNjksMjcyNzYsMjcyODIsMjc0ODMs''@;'; + put 'put ''Mjc1NjUsMjc2NTcsMjg2MjAsMjg1ODUsMjg2NjAsMjg2MjgsMjg2NDMsMjg2MzYsMjg2NTMsMjg2NDcsMjg2NDYsMjg2MzgsMjg2NTgsMjg2MzcsMjg2NDIsMjg2NDgsMjkxNTMsMjkxNjksMjkxNjAsMjkxNzAsMjkxNTYsMjkxNjgsMjkxNTQsMjk1NTUsMjk1NTAsMjk1NTEsMjk4NDcsMjk4''@;'; + put 'put ''NzQsMjk4NjcsMjk4NDAsMjk4NjYsMjk4NjksMjk4NzMsMjk4NjEsMjk4NzEsMjk5NjgsMjk5NjksMjk5NzAsMjk5NjcsMzAwODQsMzAyNzUsMzAyODAsMzAyODEsMzAyNzksMzAzNzIsMzA0NDEsMzA2NDUsMzA2MzUsMzA2NDIsMzA2NDcsMzA2NDYsMzA2NDQsMzA2NDEsMzA2MzIsMzA3MDQs''@;'; + put 'put ''MzA5NjMsMzA5NzMsMzA5NzgsMzA5NzEsMzA5NzIsMzA5NjIsMzA5ODEsMzA5NjksMzA5NzQsMzA5ODAsMzExNDcsMzExNDQsMzEzMjQsMzEzMjMsMzEzMTgsMzEzMjAsMzEzMTYsMzEzMjIsMzE0MjIsMzE0MjQsMzE0MjUsMzE3NDksMzE3NTksMzE3MzAsMzE3NDQsMzE3NDMsMzE3MzksMzE3''@;'; + put 'put ''NTgsMzE3MzIsMzE3NTUsMzE3MzEsMzE3NDYsMzE3NTMsMzE3NDcsMzE3NDUsMzE3MzYsMzE3NDEsMzE3NTAsMzE3MjgsMzE3MjksMzE3NjAsMzE3NTQsMzE5NzYsMzIzMDEsMzIzMTYsMzIzMjIsMzIzMDcsMzg5ODQsMzIzMTIsMzIyOTgsMzIzMjksMzIzMjAsMzIzMjcsMzIyOTcsMzIzMzIs''@;'; + put 'put ''MzIzMDQsMzIzMTUsMzIzMTAsMzIzMjQsMzIzMTQsMzI1ODEsMzI2MzksMzI2MzgsMzI2MzcsMzI3NTYsMzI3NTQsMzI4MTIsMzMyMTEsMzMyMjAsMzMyMjgsMzMyMjYsMzMyMjEsMzMyMjMsMzMyMTIsMzMyNTcsMzMzNzEsMzMzNzAsMzMzNzIsMzQxNzksMzQxNzYsMzQxOTEsMzQyMTUsMzQx''@;'; + put 'put ''OTcsMzQyMDgsMzQxODcsMzQyMTEsMzQxNzEsMzQyMTIsMzQyMDIsMzQyMDYsMzQxNjcsMzQxNzIsMzQxODUsMzQyMDksMzQxNzAsMzQxNjgsMzQxMzUsMzQxOTAsMzQxOTgsMzQxODIsMzQxODksMzQyMDEsMzQyMDUsMzQxNzcsMzQyMTAsMzQxNzgsMzQxODQsMzQxODEsMzQxNjksMzQxNjYs''@;'; + put 'put ''MzQyMDAsMzQxOTIsMzQyMDcsMzQ0MDgsMzQ3NTAsMzQ3MzAsMzQ3MzMsMzQ3NTcsMzQ3MzYsMzQ3MzIsMzQ3NDUsMzQ3NDEsMzQ3NDgsMzQ3MzQsMzQ3NjEsMzQ3NTUsMzQ3NTQsMzQ3NjQsMzQ3NDMsMzQ3MzUsMzQ3NTYsMzQ3NjIsMzQ3NDAsMzQ3NDIsMzQ3NTEsMzQ3NDQsMzQ3NDksMzQ3''@;'; + put 'put ''ODIsMzQ3MzgsMzUxMjUsMzUxMjMsMzUxMzIsMzUxMzQsMzUxMzcsMzUxNTQsMzUxMjcsMzUxMzgsMzUyNDUsMzUyNDcsMzUyNDYsMzUzMTQsMzUzMTUsMzU2MTQsMzU2MDgsMzU2MDYsMzU2MDEsMzU1ODksMzU1OTUsMzU2MTgsMzU1OTksMzU2MDIsMzU2MDUsMzU1OTEsMzU1OTcsMzU1OTIs''@;'; + put 'put ''MzU1OTAsMzU2MTIsMzU2MDMsMzU2MTAsMzU5MTksMzU5NTIsMzU5NTQsMzU5NTMsMzU5NTEsMzU5ODksMzU5ODgsMzYwODksMzYyMDcsMzY0MzAsMzY0MjksMzY0MzUsMzY0MzIsMzY0MjgsMzY0MjMsMzY2NzUsMzY2NzIsMzY5OTcsMzY5OTAsMzcxNzYsMzcyNzQsMzcyODIsMzcyNzUsMzcy''@;'; + put 'put ''NzMsMzcyNzksMzcyODEsMzcyNzcsMzcyODAsMzc3OTMsMzc3NjMsMzc4MDcsMzc3MzIsMzc3MTgsMzc3MDMsMzc3NTYsMzc3MjAsMzc3MjQsMzc3NTAsMzc3MDUsMzc3MTIsMzc3MTMsMzc3MjgsMzc3NDEsMzc3NzUsMzc3MDgsMzc3MzgsMzc3NTMsMzc3MTksMzc3MTcsMzc3MTQsMzc3MTEs''@;'; + put 'put ''Mzc3NDUsMzc3NTEsMzc3NTUsMzc3MjksMzc3MjYsMzc3MzEsMzc3MzUsMzc3NjAsMzc3MTAsMzc3MjEsMzgzNDMsMzgzMzYsMzgzNDUsMzgzMzksMzgzNDEsMzgzMjcsMzg1NzQsMzg1NzYsMzg1NzIsMzg2ODgsMzg2ODcsMzg2ODAsMzg2ODUsMzg2ODEsMzg4MTAsMzg4MTcsMzg4MTIsMzg4''@;'; + put 'put ''MTQsMzg4MTMsMzg4NjksMzg4NjgsMzg4OTcsMzg5NzcsMzg5ODAsMzg5ODYsMzg5ODUsMzg5ODEsMzg5NzksMzkyMDUsMzkyMTEsMzkyMTIsMzkyMTAsMzkyMTksMzkyMTgsMzkyMTUsMzkyMTMsMzkyMTcsMzkyMTYsMzkzMjAsMzkzMzEsMzkzMjksMzk0MjYsMzk0MTgsMzk0MTIsMzk0MTUs''@;'; + put 'put ''Mzk0MTcsMzk0MTYsMzk0MTQsMzk0MTksMzk0MjEsMzk0MjIsMzk0MjAsMzk0MjcsMzk2MTQsMzk2NzgsMzk2NzcsMzk2ODEsMzk2NzYsMzk3NTIsMzk4MzQsMzk4NDgsMzk4MzgsMzk4MzUsMzk4NDYsMzk4NDEsMzk4NDUsMzk4NDQsMzk4MTQsMzk4NDIsMzk4NDAsMzk4NTUsNDAyNDMsNDAy''@;'; + put 'put ''NTcsNDAyOTUsNDAyNDYsNDAyMzgsNDAyMzksNDAyNDEsNDAyNDgsNDAyNDAsNDAyNjEsNDAyNTgsNDAyNTksNDAyNTQsNDAyNDcsNDAyNTYsNDAyNTMsMzI3NTcsNDAyMzcsNDA1ODYsNDA1ODUsNDA1ODksNDA2MjQsNDA2NDgsNDA2NjYsNDA2OTksNDA3MDMsNDA3NDAsNDA3MzksNDA3Mzgs''@;'; + put 'put ''NDA3ODgsNDA4NjQsMjA3ODUsMjA3ODEsMjA3ODIsMjIxNjgsMjIxNzIsMjIxNjcsMjIxNzAsMjIxNzMsMjIxNjksMjI4OTYsMjMzNTYsMjM2NTcsMjM2NTgsMjRlMywyNDE3MywyNDE3NCwyNTA0OCwyNTA1NSwyNTA2OSwyNTA3MCwyNTA3MywyNTA2NiwyNTA3MiwyNTA2NywyNTA0NiwyNTA2''@;'; + put 'put ''NSwyNTg1NSwyNTg2MCwyNTg1MywyNTg0OCwyNTg1NywyNTg1OSwyNTg1MiwyNjAwNCwyNjA3NSwyNjMzMCwyNjMzMSwyNjMyOCwyNzMzMywyNzMyMSwyNzMyNSwyNzM2MSwyNzMzNCwyNzMyMiwyNzMxOCwyNzMxOSwyNzMzNSwyNzMxNiwyNzMwOSwyNzQ4NiwyNzU5MywyNzY1OSwyODY3OSwy''@;'; + put 'put ''ODY4NCwyODY4NSwyODY3MywyODY3NywyODY5MiwyODY4NiwyODY3MSwyODY3MiwyODY2NywyODcxMCwyODY2OCwyODY2MywyODY4MiwyOTE4NSwyOTE4MywyOTE3NywyOTE4NywyOTE4MSwyOTU1OCwyOTg4MCwyOTg4OCwyOTg3NywyOTg4OSwyOTg4NiwyOTg3OCwyOTg4MywyOTg5MCwyOTk3''@;'; + put 'put ''MiwyOTk3MSwzMDMwMCwzMDMwOCwzMDI5NywzMDI4OCwzMDI5MSwzMDI5NSwzMDI5OCwzMDM3NCwzMDM5NywzMDQ0NCwzMDY1OCwzMDY1MCwzMDk3NSwzMDk4OCwzMDk5NSwzMDk5NiwzMDk4NSwzMDk5MiwzMDk5NCwzMDk5MywzMTE0OSwzMTE0OCwzMTMyNywzMTc3MiwzMTc4NSwzMTc2OSwz''@;'; + put 'put ''MTc3NiwzMTc3NSwzMTc4OSwzMTc3MywzMTc4MiwzMTc4NCwzMTc3OCwzMTc4MSwzMTc5MiwzMjM0OCwzMjMzNiwzMjM0MiwzMjM1NSwzMjM0NCwzMjM1NCwzMjM1MSwzMjMzNywzMjM1MiwzMjM0MywzMjMzOSwzMjY5MywzMjY5MSwzMjc1OSwzMjc2MCwzMjg4NSwzMzIzMywzMzIzNCwzMzIz''@;'; + put 'put ''MiwzMzM3NSwzMzM3NCwzNDIyOCwzNDI0NiwzNDI0MCwzNDI0MywzNDI0MiwzNDIyNywzNDIyOSwzNDIzNywzNDI0NywzNDI0NCwzNDIzOSwzNDI1MSwzNDI1NCwzNDI0OCwzNDI0NSwzNDIyNSwzNDIzMCwzNDI1OCwzNDM0MCwzNDIzMiwzNDIzMSwzNDIzOCwzNDQwOSwzNDc5MSwzNDc5MCwz''@;'; + put 'put ''NDc4NiwzNDc3OSwzNDc5NSwzNDc5NCwzNDc4OSwzNDc4MywzNDgwMywzNDc4OCwzNDc3MiwzNDc4MCwzNDc3MSwzNDc5NywzNDc3NiwzNDc4NywzNDcyNCwzNDc3NSwzNDc3NywzNDgxNywzNDgwNCwzNDc5MiwzNDc4MSwzNTE1NSwzNTE0NywzNTE1MSwzNTE0OCwzNTE0MiwzNTE1MiwzNTE1''@;'; + put 'put ''MywzNTE0NSwzNTYyNiwzNTYyMywzNTYxOSwzNTYzNSwzNTYzMiwzNTYzNywzNTY1NSwzNTYzMSwzNTY0NCwzNTY0NiwzNTYzMywzNTYyMSwzNTYzOSwzNTYyMiwzNTYzOCwzNTYzMCwzNTYyMCwzNTY0MywzNTY0NSwzNTY0MiwzNTkwNiwzNTk1NywzNTk5MywzNTk5MiwzNTk5MSwzNjA5NCwz''@;'; + put 'put ''NjEwMCwzNjA5OCwzNjA5NiwzNjQ0NCwzNjQ1MCwzNjQ0OCwzNjQzOSwzNjQzOCwzNjQ0NiwzNjQ1MywzNjQ1NSwzNjQ0MywzNjQ0MiwzNjQ0OSwzNjQ0NSwzNjQ1NywzNjQzNiwzNjY3OCwzNjY3OSwzNjY4MCwzNjY4MywzNzE2MCwzNzE3OCwzNzE3OSwzNzE4MiwzNzI4OCwzNzI4NSwzNzI4''@;'; + put 'put ''NywzNzI5NSwzNzI5MCwzNzgxMywzNzc3MiwzNzc3OCwzNzgxNSwzNzc4NywzNzc4OSwzNzc2OSwzNzc5OSwzNzc3NCwzNzgwMiwzNzc5MCwzNzc5OCwzNzc4MSwzNzc2OCwzNzc4NSwzNzc5MSwzNzc3MywzNzgwOSwzNzc3NywzNzgxMCwzNzc5NiwzNzgwMCwzNzgxMiwzNzc5NSwzNzc5Nywz''@;'; + put 'put ''ODM1NCwzODM1NSwzODM1MywzODU3OSwzODYxNSwzODYxOCwyNDAwMiwzODYyMywzODYxNiwzODYyMSwzODY5MSwzODY5MCwzODY5MywzODgyOCwzODgzMCwzODgyNCwzODgyNywzODgyMCwzODgyNiwzODgxOCwzODgyMSwzODg3MSwzODg3MywzODg3MCwzODg3MiwzODkwNiwzODk5MiwzODk5''@;'; + put 'put ''MywzODk5NCwzOTA5NiwzOTIzMywzOTIyOCwzOTIyNiwzOTQzOSwzOTQzNSwzOTQzMywzOTQzNywzOTQyOCwzOTQ0MSwzOTQzNCwzOTQyOSwzOTQzMSwzOTQzMCwzOTYxNiwzOTY0NCwzOTY4OCwzOTY4NCwzOTY4NSwzOTcyMSwzOTczMywzOTc1NCwzOTc1NiwzOTc1NSwzOTg3OSwzOTg3OCwz''@;'; + put 'put ''OTg3NSwzOTg3MSwzOTg3MywzOTg2MSwzOTg2NCwzOTg5MSwzOTg2MiwzOTg3NiwzOTg2NSwzOTg2OSw0MDI4NCw0MDI3NSw0MDI3MSw0MDI2Niw0MDI4Myw0MDI2Nyw0MDI4MSw0MDI3OCw0MDI2OCw0MDI3OSw0MDI3NCw0MDI3Niw0MDI4Nyw0MDI4MCw0MDI4Miw0MDU5MCw0MDU4OCw0MDY3''@;'; + put 'put ''MSw0MDcwNSw0MDcwNCw0MDcyNiw0MDc0MSw0MDc0Nyw0MDc0Niw0MDc0NSw0MDc0NCw0MDc4MCw0MDc4OSwyMDc4OCwyMDc4OSwyMTE0MiwyMTIzOSwyMTQyOCwyMjE4NywyMjE4OSwyMjE4MiwyMjE4MywyMjE4NiwyMjE4OCwyMjc0NiwyMjc0OSwyMjc0NywyMjgwMiwyMzM1NywyMzM1OCwy''@;'; + put 'put ''MzM1OSwyNDAwMywyNDE3NiwyNDUxMSwyNTA4MywyNTg2MywyNTg3MiwyNTg2OSwyNTg2NSwyNTg2OCwyNTg3MCwyNTk4OCwyNjA3OCwyNjA3NywyNjMzNCwyNzM2NywyNzM2MCwyNzM0MCwyNzM0NSwyNzM1MywyNzMzOSwyNzM1OSwyNzM1NiwyNzM0NCwyNzM3MSwyNzM0MywyNzM0MSwyNzM1''@;'; + put 'put ''OCwyNzQ4OCwyNzU2OCwyNzY2MCwyODY5NywyODcxMSwyODcwNCwyODY5NCwyODcxNSwyODcwNSwyODcwNiwyODcwNywyODcxMywyODY5NSwyODcwOCwyODcwMCwyODcxNCwyOTE5NiwyOTE5NCwyOTE5MSwyOTE4NiwyOTE4OSwyOTM0OSwyOTM1MCwyOTM0OCwyOTM0NywyOTM0NSwyOTg5OSwy''@;'; + put 'put ''OTg5MywyOTg3OSwyOTg5MSwyOTk3NCwzMDMwNCwzMDY2NSwzMDY2NiwzMDY2MCwzMDcwNSwzMTAwNSwzMTAwMywzMTAwOSwzMTAwNCwzMDk5OSwzMTAwNiwzMTE1MiwzMTMzNSwzMTMzNiwzMTc5NSwzMTgwNCwzMTgwMSwzMTc4OCwzMTgwMywzMTk4MCwzMTk3OCwzMjM3NCwzMjM3MywzMjM3''@;'; + put 'put ''NiwzMjM2OCwzMjM3NSwzMjM2NywzMjM3OCwzMjM3MCwzMjM3MiwzMjM2MCwzMjU4NywzMjU4NiwzMjY0MywzMjY0NiwzMjY5NSwzMjc2NSwzMjc2NiwzMjg4OCwzMzIzOSwzMzIzNywzMzM4MCwzMzM3NywzMzM3OSwzNDI4MywzNDI4OSwzNDI4NSwzNDI2NSwzNDI3MywzNDI4MCwzNDI2Niwz''@;'; + put 'put ''NDI2MywzNDI4NCwzNDI5MCwzNDI5NiwzNDI2NCwzNDI3MSwzNDI3NSwzNDI2OCwzNDI1NywzNDI4OCwzNDI3OCwzNDI4NywzNDI3MCwzNDI3NCwzNDgxNiwzNDgxMCwzNDgxOSwzNDgwNiwzNDgwNywzNDgyNSwzNDgyOCwzNDgyNywzNDgyMiwzNDgxMiwzNDgyNCwzNDgxNSwzNDgyNiwzNDgx''@;'; + put 'put ''OCwzNTE3MCwzNTE2MiwzNTE2MywzNTE1OSwzNTE2OSwzNTE2NCwzNTE2MCwzNTE2NSwzNTE2MSwzNTIwOCwzNTI1NSwzNTI1NCwzNTMxOCwzNTY2NCwzNTY1NiwzNTY1OCwzNTY0OCwzNTY2NywzNTY3MCwzNTY2OCwzNTY1OSwzNTY2OSwzNTY2NSwzNTY1MCwzNTY2NiwzNTY3MSwzNTkwNywz''@;'; + put 'put ''NTk1OSwzNTk1OCwzNTk5NCwzNjEwMiwzNjEwMywzNjEwNSwzNjI2OCwzNjI2NiwzNjI2OSwzNjI2NywzNjQ2MSwzNjQ3MiwzNjQ2NywzNjQ1OCwzNjQ2MywzNjQ3NSwzNjU0NiwzNjY5MCwzNjY4OSwzNjY4NywzNjY4OCwzNjY5MSwzNjc4OCwzNzE4NCwzNzE4MywzNzI5NiwzNzI5MywzNzg1''@;'; + put 'put ''NCwzNzgzMSwzNzgzOSwzNzgyNiwzNzg1MCwzNzg0MCwzNzg4MSwzNzg2OCwzNzgzNiwzNzg0OSwzNzgwMSwzNzg2MiwzNzgzNCwzNzg0NCwzNzg3MCwzNzg1OSwzNzg0NSwzNzgyOCwzNzgzOCwzNzgyNCwzNzg0MiwzNzg2MywzODI2OSwzODM2MiwzODM2MywzODYyNSwzODY5NywzODY5OSwz''@;'; + put 'put ''ODcwMCwzODY5NiwzODY5NCwzODgzNSwzODgzOSwzODgzOCwzODg3NywzODg3OCwzODg3OSwzOTAwNCwzOTAwMSwzOTAwNSwzODk5OSwzOTEwMywzOTEwMSwzOTA5OSwzOTEwMiwzOTI0MCwzOTIzOSwzOTIzNSwzOTMzNCwzOTMzNSwzOTQ1MCwzOTQ0NSwzOTQ2MSwzOTQ1MywzOTQ2MCwzOTQ1''@;'; + put 'put ''MSwzOTQ1OCwzOTQ1NiwzOTQ2MywzOTQ1OSwzOTQ1NCwzOTQ1MiwzOTQ0NCwzOTYxOCwzOTY5MSwzOTY5MCwzOTY5NCwzOTY5MiwzOTczNSwzOTkxNCwzOTkxNSwzOTkwNCwzOTkwMiwzOTkwOCwzOTkxMCwzOTkwNiwzOTkyMCwzOTg5MiwzOTg5NSwzOTkxNiwzOTkwMCwzOTg5NywzOTkwOSwz''@;'; + put 'put ''OTg5MywzOTkwNSwzOTg5OCw0MDMxMSw0MDMyMSw0MDMzMCw0MDMyNCw0MDMyOCw0MDMwNSw0MDMyMCw0MDMxMiw0MDMyNiw0MDMzMSw0MDMzMiw0MDMxNyw0MDI5OSw0MDMwOCw0MDMwOSw0MDMwNCw0MDI5Nyw0MDMyNSw0MDMwNyw0MDMxNSw0MDMyMiw0MDMwMyw0MDMxMyw0MDMxOSw0MDMy''@;'; + put 'put ''Nyw0MDI5Niw0MDU5Niw0MDU5Myw0MDY0MCw0MDcwMCw0MDc0OSw0MDc2OCw0MDc2OSw0MDc4MSw0MDc5MCw0MDc5MSw0MDc5MiwyMTMwMywyMjE5NCwyMjE5NywyMjE5NSwyMjc1NSwyMzM2NSwyNDAwNiwyNDAwNywyNDMwMiwyNDMwMywyNDUxMiwyNDUxMywyNTA4MSwyNTg3OSwyNTg3OCwy''@;'; + put 'put ''NTg3NywyNTg3NSwyNjA3OSwyNjM0NCwyNjMzOSwyNjM0MCwyNzM3OSwyNzM3NiwyNzM3MCwyNzM2OCwyNzM4NSwyNzM3NywyNzM3NCwyNzM3NSwyODczMiwyODcyNSwyODcxOSwyODcyNywyODcyNCwyODcyMSwyODczOCwyODcyOCwyODczNSwyODczMCwyODcyOSwyODczNiwyODczMSwyODcy''@;'; + put 'put ''MywyODczNywyOTIwMywyOTIwNCwyOTM1MiwyOTU2NSwyOTU2NCwyOTg4MiwzMDM3OSwzMDM3OCwzMDM5OCwzMDQ0NSwzMDY2OCwzMDY3MCwzMDY3MSwzMDY2OSwzMDcwNiwzMTAxMywzMTAxMSwzMTAxNSwzMTAxNiwzMTAxMiwzMTAxNywzMTE1NCwzMTM0MiwzMTM0MCwzMTM0MSwzMTQ3OSwz''@;'; + put 'put ''MTgxNywzMTgxNiwzMTgxOCwzMTgxNSwzMTgxMywzMTk4MiwzMjM3OSwzMjM4MiwzMjM4NSwzMjM4NCwzMjY5OCwzMjc2NywzMjg4OSwzMzI0MywzMzI0MSwzMzI5MSwzMzM4NCwzMzM4NSwzNDMzOCwzNDMwMywzNDMwNSwzNDMwMiwzNDMzMSwzNDMwNCwzNDI5NCwzNDMwOCwzNDMxMywzNDMw''@;'; + put 'put ''OSwzNDMxNiwzNDMwMSwzNDg0MSwzNDgzMiwzNDgzMywzNDgzOSwzNDgzNSwzNDgzOCwzNTE3MSwzNTE3NCwzNTI1NywzNTMxOSwzNTY4MCwzNTY5MCwzNTY3NywzNTY4OCwzNTY4MywzNTY4NSwzNTY4NywzNTY5MywzNjI3MCwzNjQ4NiwzNjQ4OCwzNjQ4NCwzNjY5NywzNjY5NCwzNjY5NSwz''@;'; + put 'put ''NjY5MywzNjY5NiwzNjY5OCwzNzAwNSwzNzE4NywzNzE4NSwzNzMwMywzNzMwMSwzNzI5OCwzNzI5OSwzNzg5OSwzNzkwNywzNzg4MywzNzkyMCwzNzkwMywzNzkwOCwzNzg4NiwzNzkwOSwzNzkwNCwzNzkyOCwzNzkxMywzNzkwMSwzNzg3NywzNzg4OCwzNzg3OSwzNzg5NSwzNzkwMiwzNzkx''@;'; + put 'put ''MCwzNzkwNiwzNzg4MiwzNzg5NywzNzg4MCwzNzg5OCwzNzg4NywzNzg4NCwzNzkwMCwzNzg3OCwzNzkwNSwzNzg5NCwzODM2NiwzODM2OCwzODM2NywzODcwMiwzODcwMywzODg0MSwzODg0MywzODkwOSwzODkxMCwzOTAwOCwzOTAxMCwzOTAxMSwzOTAwNywzOTEwNSwzOTEwNiwzOTI0OCwz''@;'; + put 'put ''OTI0NiwzOTI1NywzOTI0NCwzOTI0MywzOTI1MSwzOTQ3NCwzOTQ3NiwzOTQ3MywzOTQ2OCwzOTQ2NiwzOTQ3OCwzOTQ2NSwzOTQ3MCwzOTQ4MCwzOTQ2OSwzOTYyMywzOTYyNiwzOTYyMiwzOTY5NiwzOTY5OCwzOTY5NywzOTk0NywzOTk0NCwzOTkyNywzOTk0MSwzOTk1NCwzOTkyOCw0ZTQs''@;'; + put 'put ''Mzk5NDMsMzk5NTAsMzk5NDIsMzk5NTksMzk5NTYsMzk5NDUsNDAzNTEsNDAzNDUsNDAzNTYsNDAzNDksNDAzMzgsNDAzNDQsNDAzMzYsNDAzNDcsNDAzNTIsNDAzNDAsNDAzNDgsNDAzNjIsNDAzNDMsNDAzNTMsNDAzNDYsNDAzNTQsNDAzNjAsNDAzNTAsNDAzNTUsNDAzODMsNDAzNjEsNDAz''@;'; + put 'put ''NDIsNDAzNTgsNDAzNTksNDA2MDEsNDA2MDMsNDA2MDIsNDA2NzcsNDA2NzYsNDA2NzksNDA2NzgsNDA3NTIsNDA3NTAsNDA3OTUsNDA4MDAsNDA3OTgsNDA3OTcsNDA3OTMsNDA4NDksMjA3OTQsMjA3OTMsMjExNDQsMjExNDMsMjIyMTEsMjIyMDUsMjIyMDYsMjMzNjgsMjMzNjcsMjQwMTEs''@;'; + put 'put ''MjQwMTUsMjQzMDUsMjUwODUsMjU4ODMsMjczOTQsMjczODgsMjczOTUsMjczODQsMjczOTIsMjg3MzksMjg3NDAsMjg3NDYsMjg3NDQsMjg3NDUsMjg3NDEsMjg3NDIsMjkyMTMsMjkyMTAsMjkyMDksMjk1NjYsMjk5NzUsMzAzMTQsMzA2NzIsMzEwMjEsMzEwMjUsMzEwMjMsMzE4MjgsMzE4''@;'; + put 'put ''MjcsMzE5ODYsMzIzOTQsMzIzOTEsMzIzOTIsMzIzOTUsMzIzOTAsMzIzOTcsMzI1ODksMzI2OTksMzI4MTYsMzMyNDUsMzQzMjgsMzQzNDYsMzQzNDIsMzQzMzUsMzQzMzksMzQzMzIsMzQzMjksMzQzNDMsMzQzNTAsMzQzMzcsMzQzMzYsMzQzNDUsMzQzMzQsMzQzNDEsMzQ4NTcsMzQ4NDUs''@;'; + put 'put ''MzQ4NDMsMzQ4NDgsMzQ4NTIsMzQ4NDQsMzQ4NTksMzQ4OTAsMzUxODEsMzUxNzcsMzUxODIsMzUxNzksMzUzMjIsMzU3MDUsMzU3MDQsMzU2NTMsMzU3MDYsMzU3MDcsMzYxMTIsMzYxMTYsMzYyNzEsMzY0OTQsMzY0OTIsMzY3MDIsMzY2OTksMzY3MDEsMzcxOTAsMzcxODgsMzcxODksMzcz''@;'; + put 'put ''MDUsMzc5NTEsMzc5NDcsMzc5NDIsMzc5MjksMzc5NDksMzc5NDgsMzc5MzYsMzc5NDUsMzc5MzAsMzc5NDMsMzc5MzIsMzc5NTIsMzc5MzcsMzgzNzMsMzgzNzIsMzgzNzEsMzg3MDksMzg3MTQsMzg4NDcsMzg4ODEsMzkwMTIsMzkxMTMsMzkxMTAsMzkxMDQsMzkyNTYsMzkyNTQsMzk0ODEs''@;'; + put 'put ''Mzk0ODUsMzk0OTQsMzk0OTIsMzk0OTAsMzk0ODksMzk0ODIsMzk0ODcsMzk2MjksMzk3MDEsMzk3MDMsMzk3MDQsMzk3MDIsMzk3MzgsMzk3NjIsMzk5NzksMzk5NjUsMzk5NjQsMzk5ODAsMzk5NzEsMzk5NzYsMzk5NzcsMzk5NzIsMzk5NjksNDAzNzUsNDAzNzQsNDAzODAsNDAzODUsNDAz''@;'; + put 'put ''OTEsNDAzOTQsNDAzOTksNDAzODIsNDAzODksNDAzODcsNDAzNzksNDAzNzMsNDAzOTgsNDAzNzcsNDAzNzgsNDAzNjQsNDAzOTIsNDAzNjksNDAzNjUsNDAzOTYsNDAzNzEsNDAzOTcsNDAzNzAsNDA1NzAsNDA2MDQsNDA2ODMsNDA2ODYsNDA2ODUsNDA3MzEsNDA3MjgsNDA3MzAsNDA3NTMs''@;'; + put 'put ''NDA3ODIsNDA4MDUsNDA4MDQsNDA4NTAsMjAxNTMsMjIyMTQsMjIyMTMsMjIyMTksMjI4OTcsMjMzNzEsMjMzNzIsMjQwMjEsMjQwMTcsMjQzMDYsMjU4ODksMjU4ODgsMjU4OTQsMjU4OTAsMjc0MDMsMjc0MDAsMjc0MDEsMjc2NjEsMjg3NTcsMjg3NTgsMjg3NTksMjg3NTQsMjkyMTQsMjky''@;'; + put 'put ''MTUsMjkzNTMsMjk1NjcsMjk5MTIsMjk5MDksMjk5MTMsMjk5MTEsMzAzMTcsMzAzODEsMzEwMjksMzExNTYsMzEzNDQsMzEzNDUsMzE4MzEsMzE4MzYsMzE4MzMsMzE4MzUsMzE4MzQsMzE5ODgsMzE5ODUsMzI0MDEsMzI1OTEsMzI2NDcsMzMyNDYsMzMzODcsMzQzNTYsMzQzNTcsMzQzNTUs''@;'; + put 'put ''MzQzNDgsMzQzNTQsMzQzNTgsMzQ4NjAsMzQ4NTYsMzQ4NTQsMzQ4NTgsMzQ4NTMsMzUxODUsMzUyNjMsMzUyNjIsMzUzMjMsMzU3MTAsMzU3MTYsMzU3MTQsMzU3MTgsMzU3MTcsMzU3MTEsMzYxMTcsMzY1MDEsMzY1MDAsMzY1MDYsMzY0OTgsMzY0OTYsMzY1MDIsMzY1MDMsMzY3MDQsMzY3''@;'; + put 'put ''MDYsMzcxOTEsMzc5NjQsMzc5NjgsMzc5NjIsMzc5NjMsMzc5NjcsMzc5NTksMzc5NTcsMzc5NjAsMzc5NjEsMzc5NTgsMzg3MTksMzg4ODMsMzkwMTgsMzkwMTcsMzkxMTUsMzkyNTIsMzkyNTksMzk1MDIsMzk1MDcsMzk1MDgsMzk1MDAsMzk1MDMsMzk0OTYsMzk0OTgsMzk0OTcsMzk1MDYs''@;'; + put 'put ''Mzk1MDQsMzk2MzIsMzk3MDUsMzk3MjMsMzk3MzksMzk3NjYsMzk3NjUsNDAwMDYsNDAwMDgsMzk5OTksNDAwMDQsMzk5OTMsMzk5ODcsNDAwMDEsMzk5OTYsMzk5OTEsMzk5ODgsMzk5ODYsMzk5OTcsMzk5OTAsNDA0MTEsNDA0MDIsNDA0MTQsNDA0MTAsNDAzOTUsNDA0MDAsNDA0MTIsNDA0''@;'; + put 'put ''MDEsNDA0MTUsNDA0MjUsNDA0MDksNDA0MDgsNDA0MDYsNDA0MzcsNDA0MDUsNDA0MTMsNDA2MzAsNDA2ODgsNDA3NTcsNDA3NTUsNDA3NTQsNDA3NzAsNDA4MTEsNDA4NTMsNDA4NjYsMjA3OTcsMjExNDUsMjI3NjAsMjI3NTksMjI4OTgsMjMzNzMsMjQwMjQsMzQ4NjMsMjQzOTksMjUwODks''@;'; + put 'put ''MjUwOTEsMjUwOTIsMjU4OTcsMjU4OTMsMjYwMDYsMjYzNDcsMjc0MDksMjc0MTAsMjc0MDcsMjc1OTQsMjg3NjMsMjg3NjIsMjkyMTgsMjk1NzAsMjk1NjksMjk1NzEsMzAzMjAsMzA2NzYsMzE4NDcsMzE4NDYsMzI0MDUsMzMzODgsMzQzNjIsMzQzNjgsMzQzNjEsMzQzNjQsMzQzNTMsMzQz''@;'; + put 'put ''NjMsMzQzNjYsMzQ4NjQsMzQ4NjYsMzQ4NjIsMzQ4NjcsMzUxOTAsMzUxODgsMzUxODcsMzUzMjYsMzU3MjQsMzU3MjYsMzU3MjMsMzU3MjAsMzU5MDksMzYxMjEsMzY1MDQsMzY3MDgsMzY3MDcsMzczMDgsMzc5ODYsMzc5NzMsMzc5ODEsMzc5NzUsMzc5ODIsMzg4NTIsMzg4NTMsMzg5MTIs''@;'; + put 'put ''Mzk1MTAsMzk1MTMsMzk3MTAsMzk3MTEsMzk3MTIsNDAwMTgsNDAwMjQsNDAwMTYsNDAwMTAsNDAwMTMsNDAwMTEsNDAwMjEsNDAwMjUsNDAwMTIsNDAwMTQsNDA0NDMsNDA0MzksNDA0MzEsNDA0MTksNDA0MjcsNDA0NDAsNDA0MjAsNDA0MzgsNDA0MTcsNDA0MzAsNDA0MjIsNDA0MzQsNDA0''@;'; + put 'put ''MzIsNDA0MTgsNDA0MjgsNDA0MzYsNDA0MzUsNDA0MjQsNDA0MjksNDA2NDIsNDA2NTYsNDA2OTAsNDA2OTEsNDA3MTAsNDA3MzIsNDA3NjAsNDA3NTksNDA3NTgsNDA3NzEsNDA3ODMsNDA4MTcsNDA4MTYsNDA4MTQsNDA4MTUsMjIyMjcsMjIyMjEsMjMzNzQsMjM2NjEsMjU5MDEsMjYzNDks''@;'; + put 'put ''MjYzNTAsMjc0MTEsMjg3NjcsMjg3NjksMjg3NjUsMjg3NjgsMjkyMTksMjk5MTUsMjk5MjUsMzA2NzcsMzEwMzIsMzExNTksMzExNTgsMzE4NTAsMzI0MDcsMzI2NDksMzMzODksMzQzNzEsMzQ4NzIsMzQ4NzEsMzQ4NjksMzQ4OTEsMzU3MzIsMzU3MzMsMzY1MTAsMzY1MTEsMzY1MTIsMzY1''@;'; + put 'put ''MDksMzczMTAsMzczMDksMzczMTQsMzc5OTUsMzc5OTIsMzc5OTMsMzg2MjksMzg3MjYsMzg3MjMsMzg3MjcsMzg4NTUsMzg4ODUsMzk1MTgsMzk2MzcsMzk3NjksNDAwMzUsNDAwMzksNDAwMzgsNDAwMzQsNDAwMzAsNDAwMzIsNDA0NTAsNDA0NDYsNDA0NTUsNDA0NTEsNDA0NTQsNDA0NTMs''@;'; + put 'put ''NDA0NDgsNDA0NDksNDA0NTcsNDA0NDcsNDA0NDUsNDA0NTIsNDA2MDgsNDA3MzQsNDA3NzQsNDA4MjAsNDA4MjEsNDA4MjIsMjIyMjgsMjU5MDIsMjYwNDAsMjc0MTYsMjc0MTcsMjc0MTUsMjc0MTgsMjg3NzAsMjkyMjIsMjkzNTQsMzA2ODAsMzA2ODEsMzEwMzMsMzE4NDksMzE4NTEsMzE5''@;'; + put 'put ''OTAsMzI0MTAsMzI0MDgsMzI0MTEsMzI0MDksMzMyNDgsMzMyNDksMzQzNzQsMzQzNzUsMzQzNzYsMzUxOTMsMzUxOTQsMzUxOTYsMzUxOTUsMzUzMjcsMzU3MzYsMzU3MzcsMzY1MTcsMzY1MTYsMzY1MTUsMzc5OTgsMzc5OTcsMzc5OTksMzgwMDEsMzgwMDMsMzg3MjksMzkwMjYsMzkyNjMs''@;'; + put 'put ''NDAwNDAsNDAwNDYsNDAwNDUsNDA0NTksNDA0NjEsNDA0NjQsNDA0NjMsNDA0NjYsNDA0NjUsNDA2MDksNDA2OTMsNDA3MTMsNDA3NzUsNDA4MjQsNDA4MjcsNDA4MjYsNDA4MjUsMjIzMDIsMjg3NzQsMzE4NTUsMzQ4NzYsMzYyNzQsMzY1MTgsMzczMTUsMzgwMDQsMzgwMDgsMzgwMDYsMzgw''@;'; + put 'put ''MDUsMzk1MjAsNDAwNTIsNDAwNTEsNDAwNDksNDAwNTMsNDA0NjgsNDA0NjcsNDA2OTQsNDA3MTQsNDA4NjgsMjg3NzYsMjg3NzMsMzE5OTEsMzQ0MTAsMzQ4NzgsMzQ4NzcsMzQ4NzksMzU3NDIsMzU5OTYsMzY1MjEsMzY1NTMsMzg3MzEsMzkwMjcsMzkwMjgsMzkxMTYsMzkyNjUsMzkzMzks''@;'; + put 'put ''Mzk1MjQsMzk1MjYsMzk1MjcsMzk3MTYsNDA0NjksNDA0NzEsNDA3NzYsMjUwOTUsMjc0MjIsMjkyMjMsMzQzODAsMzY1MjAsMzgwMTgsMzgwMTYsMzgwMTcsMzk1MjksMzk1MjgsMzk3MjYsNDA0NzMsMjkyMjUsMzQzNzksMzU3NDMsMzgwMTksNDAwNTcsNDA2MzEsMzAzMjUsMzk1MzEsNDAw''@;'; + put 'put ''NTgsNDA0NzcsMjg3NzcsMjg3NzgsNDA2MTIsNDA4MzAsNDA3NzcsNDA4NTYsMzA4NDksMzc1NjEsMzUwMjMsMjI3MTUsMjQ2NTgsMzE5MTEsMjMyOTAsOTU1Niw5NTc0LDk1NTksOTU2OCw5NTgwLDk1NzEsOTU2Miw5NTc3LDk1NjUsOTU1NCw5NTcyLDk1NTcsOTU2Niw5NTc4LDk1NjksOTU2''@;'; + put 'put ''MCw5NTc1LDk1NjMsOTU1NSw5NTczLDk1NTgsOTU2Nyw5NTc5LDk1NzAsOTU2MSw5NTc2LDk1NjQsOTU1Myw5NTUyLDk1ODEsOTU4Miw5NTg0LDk1ODMsNjU1MTcsMTMyNDIzLDM3NTk1LDEzMjU3NSwxNDczOTcsMzQxMjQsMTcwNzcsMjk2NzksMjA5MTcsMTM4OTcsMTQ5ODI2LDE2NjM3Miwz''@;'; + put 'put ''NzcwMCwxMzc2OTEsMzM1MTgsMTQ2NjMyLDMwNzgwLDI2NDM2LDI1MzExLDE0OTgxMSwxNjYzMTQsMTMxNzQ0LDE1ODY0MywxMzU5NDEsMjAzOTUsMTQwNTI1LDIwNDg4LDE1OTAxNywxNjI0MzYsMTQ0ODk2LDE1MDE5MywxNDA1NjMsMjA1MjEsMTMxOTY2LDI0NDg0LDEzMTk2OCwxMzE5MTEs''@;'; + put 'put ''MjgzNzksMTMyMTI3LDIwNjA1LDIwNzM3LDEzNDM0LDIwNzUwLDM5MDIwLDE0MTQ3LDMzODE0LDE0OTkyNCwxMzIyMzEsMjA4MzIsMTQ0MzA4LDIwODQyLDEzNDE0MywxMzk1MTYsMTMxODEzLDE0MDU5MiwxMzI0OTQsMTQzOTIzLDEzNzYwMywyMzQyNiwzNDY4NSwxMzI1MzEsMTQ2NTg1LDIw''@;'; + put 'put ''OTE0LDIwOTIwLDQwMjQ0LDIwOTM3LDIwOTQzLDIwOTQ1LDE1NTgwLDIwOTQ3LDE1MDE4MiwyMDkxNSwyMDk2MiwyMTMxNCwyMDk3MywzMzc0MSwyNjk0MiwxNDUxOTcsMjQ0NDMsMjEwMDMsMjEwMzAsMjEwNTIsMjExNzMsMjEwNzksMjExNDAsMjExNzcsMjExODksMzE3NjUsMzQxMTQsMjEy''@;'; + put 'put ''MTYsMzQzMTcsMTU4NDgzLDIxMjUzLDE2NjYyMiwyMTgzMywyODM3NywxNDczMjgsMTMzNDYwLDE0NzQzNiwyMTI5OSwyMTMxNiwxMzQxMTQsMjc4NTEsMTM2OTk4LDI2NjUxLDI5NjUzLDI0NjUwLDE2MDQyLDE0NTQwLDEzNjkzNiwyOTE0OSwxNzU3MCwyMTM1NywyMTM2NCwxNjU1NDcsMjEz''@;'; + put 'put ''NzQsMjEzNzUsMTM2NTk4LDEzNjcyMywzMDY5NCwyMTM5NSwxNjY1NTUsMjE0MDgsMjE0MTksMjE0MjIsMjk2MDcsMTUzNDU4LDE2MjE3LDI5NTk2LDIxNDQxLDIxNDQ1LDI3NzIxLDIwMDQxLDIyNTI2LDIxNDY1LDE1MDE5LDEzNDAzMSwyMTQ3MiwxNDc0MzUsMTQyNzU1LDIxNDk0LDEzNDI2''@;'; + put 'put ''MywyMTUyMywyODc5MywyMTgwMywyNjE5OSwyNzk5NSwyMTYxMywxNTg1NDcsMTM0NTE2LDIxODUzLDIxNjQ3LDIxNjY4LDE4MzQyLDEzNjk3MywxMzQ4NzcsMTU3OTYsMTM0NDc3LDE2NjMzMiwxNDA5NTIsMjE4MzEsMTk2OTMsMjE1NTEsMjk3MTksMjE4OTQsMjE5MjksMjIwMjEsMTM3NDMx''@;'; + put 'put ''LDE0NzUxNCwxNzc0NiwxNDg1MzMsMjYyOTEsMTM1MzQ4LDIyMDcxLDI2MzE3LDE0NDAxMCwyNjI3NiwyNjI4NSwyMjA5MywyMjA5NSwzMDk2MSwyMjI1NywzODc5MSwyMTUwMiwyMjI3MiwyMjI1NSwyMjI1MywxNjY3NTgsMTM4NTksMTM1NzU5LDIyMzQyLDE0Nzg3NywyNzc1OCwyODgxMSwy''@;'; + put 'put ''MjMzOCwxNDAwMSwxNTg4NDYsMjI1MDIsMTM2MjE0LDIyNTMxLDEzNjI3NiwxNDgzMjMsMjI1NjYsMTUwNTE3LDIyNjIwLDIyNjk4LDEzNjY1LDIyNzUyLDIyNzQ4LDEzNTc0MCwyMjc3OSwyMzU1MSwyMjMzOSwxNzIzNjgsMTQ4MDg4LDM3ODQzLDEzNzI5LDIyODE1LDI2NzkwLDE0MDE5LDI4''@;'; + put 'put ''MjQ5LDEzNjc2NiwyMzA3NiwyMTg0MywxMzY4NTAsMzQwNTMsMjI5ODUsMTM0NDc4LDE1ODg0OSwxNTkwMTgsMTM3MTgwLDIzMDAxLDEzNzIxMSwxMzcxMzgsMTU5MTQyLDI4MDE3LDEzNzI1NiwxMzY5MTcsMjMwMzMsMTU5MzAxLDIzMjExLDIzMTM5LDE0MDU0LDE0OTkyOSwyMzE1OSwxNDA4''@;'; + put 'put ''OCwyMzE5MCwyOTc5NywyMzI1MSwxNTk2NDksMTQwNjI4LDE1NzQ5LDEzNzQ4OSwxNDEzMCwxMzY4ODgsMjQxOTUsMjEyMDAsMjM0MTQsMjU5OTIsMjM0MjAsMTYyMzE4LDE2Mzg4LDE4NTI1LDEzMTU4OCwyMzUwOSwyNDkyOCwxMzc3ODAsMTU0MDYwLDEzMjUxNywyMzUzOSwyMzQ1MywxOTcy''@;'; + put 'put ''OCwyMzU1NywxMzgwNTIsMjM1NzEsMjk2NDYsMjM1NzIsMTM4NDA1LDE1ODUwNCwyMzYyNSwxODY1MywyMzY4NSwyMzc4NSwyMzc5MSwyMzk0NywxMzg3NDUsMTM4ODA3LDIzODI0LDIzODMyLDIzODc4LDEzODkxNiwyMzczOCwyNDAyMywzMzUzMiwxNDM4MSwxNDk3NjEsMTM5MzM3LDEzOTYz''@;'; + put 'put ''NSwzMzQxNSwxNDM5MCwxNTI5OCwyNDExMCwyNzI3NCwyNDE4MSwyNDE4NiwxNDg2NjgsMTM0MzU1LDIxNDE0LDIwMTUxLDI0MjcyLDIxNDE2LDEzNzA3MywyNDA3MywyNDMwOCwxNjQ5OTQsMjQzMTMsMjQzMTUsMTQ0OTYsMjQzMTYsMjY2ODYsMzc5MTUsMjQzMzMsMTMxNTIxLDE5NDcwOCwx''@;'; + put 'put ''NTA3MCwxODYwNiwxMzU5OTQsMjQzNzgsMTU3ODMyLDE0MDI0MCwyNDQwOCwxNDA0MDEsMjQ0MTksMzg4NDUsMTU5MzQyLDI0NDM0LDM3Njk2LDE2NjQ1NCwyNDQ4NywyMzk5MCwxNTcxMSwxNTIxNDQsMTM5MTE0LDE1OTk5MiwxNDA5MDQsMzczMzQsMTMxNzQyLDE2NjQ0MSwyNDYyNSwyNjI0''@;'; + put 'put ''NSwxMzczMzUsMTQ2OTEsMTU4MTUsMTM4ODEsMjI0MTYsMTQxMjM2LDMxMDg5LDE1OTM2LDI0NzM0LDI0NzQwLDI0NzU1LDE0OTg5MCwxNDk5MDMsMTYyMzg3LDI5ODYwLDIwNzA1LDIzMjAwLDI0OTMyLDMzODI4LDI0ODk4LDE5NDcyNiwxNTk0NDIsMjQ5NjEsMjA5ODAsMTMyNjk0LDI0OTY3''@;'; + put 'put ''LDIzNDY2LDE0NzM4MywxNDE0MDcsMjUwNDMsMTY2ODEzLDE3MDMzMywyNTA0MCwxNDY0MiwxNDE2OTYsMTQxNTA1LDI0NjExLDI0OTI0LDI1ODg2LDI1NDgzLDEzMTM1MiwyNTI4NSwxMzcwNzIsMjUzMDEsMTQyODYxLDI1NDUyLDE0OTk4MywxNDg3MSwyNTY1NiwyNTU5MiwxMzYwNzgsMTM3''@;'; + put 'put ''MjEyLDI1NzQ0LDI4NTU0LDE0MjkwMiwzODkzMiwxNDc1OTYsMTUzMzczLDI1ODI1LDI1ODI5LDM4MDExLDE0OTUwLDI1NjU4LDE0OTM1LDI1OTMzLDI4NDM4LDE1MDA1NiwxNTAwNTEsMjU5ODksMjU5NjUsMjU5NTEsMTQzNDg2LDI2MDM3LDE0OTgyNCwxOTI1NSwyNjA2NSwxNjYwMCwxMzcy''@;'; + put 'put ''NTcsMjYwODAsMjYwODMsMjQ1NDMsMTQ0Mzg0LDI2MTM2LDE0Mzg2MywxNDM4NjQsMjYxODAsMTQzNzgwLDE0Mzc4MSwyNjE4NywxMzQ3NzMsMjYyMTUsMTUyMDM4LDI2MjI3LDI2MjI4LDEzODgxMywxNDM5MjEsMTY1MzY0LDE0MzgxNiwxNTIzMzksMzA2NjEsMTQxNTU5LDM5MzMyLDI2Mzcw''@;'; + put 'put ''LDE0ODM4MCwxNTAwNDksMTUxNDcsMjcxMzAsMTQ1MzQ2LDI2NDYyLDI2NDcxLDI2NDY2LDE0NzkxNywxNjgxNzMsMjY1ODMsMTc2NDEsMjY2NTgsMjgyNDAsMzc0MzYsMjY2MjUsMTQ0MzU4LDE1OTEzNiwyNjcxNywxNDQ0OTUsMjcxMDUsMjcxNDcsMTY2NjIzLDI2OTk1LDI2ODE5LDE0NDg0''@;'; + put 'put ''NSwyNjg4MSwyNjg4MCwxNTY2NiwxNDg0OSwxNDQ5NTYsMTUyMzIsMjY1NDAsMjY5NzcsMTY2NDc0LDE3MTQ4LDI2OTM0LDI3MDMyLDE1MjY1LDEzMjA0MSwzMzYzNSwyMDYyNCwyNzEyOSwxNDQ5ODUsMTM5NTYyLDI3MjA1LDE0NTE1NSwyNzI5MywxNTM0NywyNjU0NSwyNzMzNiwxNjgzNDgs''@;'; + put 'put ''MTUzNzMsMjc0MjEsMTMzNDExLDI0Nzk4LDI3NDQ1LDI3NTA4LDE0MTI2MSwyODM0MSwxNDYxMzksMTMyMDIxLDEzNzU2MCwxNDE0NCwyMTUzNywxNDYyNjYsMjc2MTcsMTQ3MTk2LDI3NjEyLDI3NzAzLDE0MDQyNywxNDk3NDUsMTU4NTQ1LDI3NzM4LDMzMzE4LDI3NzY5LDE0Njg3NiwxNzYw''@;'; + put 'put ''NSwxNDY4NzcsMTQ3ODc2LDE0OTc3MiwxNDk3NjAsMTQ2NjMzLDE0MDUzLDE1NTk1LDEzNDQ1MCwzOTgxMSwxNDM4NjUsMTQwNDMzLDMyNjU1LDI2Njc5LDE1OTAxMywxNTkxMzcsMTU5MjExLDI4MDU0LDI3OTk2LDI4Mjg0LDI4NDIwLDE0OTg4NywxNDc1ODksMTU5MzQ2LDM0MDk5LDE1OTYw''@;'; + put 'put ''NCwyMDkzNSwyNzgwNCwyODE4OSwzMzgzOCwxNjY2ODksMjgyMDcsMTQ2OTkxLDI5Nzc5LDE0NzMzMCwzMTE4MCwyODIzOSwyMzE4NSwxNDM0MzUsMjg2NjQsMTQwOTMsMjg1NzMsMTQ2OTkyLDI4NDEwLDEzNjM0MywxNDc1MTcsMTc3NDksMzc4NzIsMjg0ODQsMjg1MDgsMTU2OTQsMjg1MzIs''@;'; + put 'put ''MTY4MzA0LDE1Njc1LDI4NTc1LDE0Nzc4MCwyODYyNywxNDc2MDEsMTQ3Nzk3LDE0NzUxMywxNDc0NDAsMTQ3MzgwLDE0Nzc3NSwyMDk1OSwxNDc3OTgsMTQ3Nzk5LDE0Nzc3NiwxNTYxMjUsMjg3NDcsMjg3OTgsMjg4MzksMjg4MDEsMjg4NzYsMjg4ODUsMjg4ODYsMjg4OTUsMTY2NDQsMTU4''@;'; + put 'put ''NDgsMjkxMDgsMjkwNzgsMTQ4MDg3LDI4OTcxLDI4OTk3LDIzMTc2LDI5MDAyLDI5MDM4LDIzNzA4LDE0ODMyNSwyOTAwNywzNzczMCwxNDgxNjEsMjg5NzIsMTQ4NTcwLDE1MDA1NSwxNTAwNTAsMjkxMTQsMTY2ODg4LDI4ODYxLDI5MTk4LDM3OTU0LDI5MjA1LDIyODAxLDM3OTU1LDI5MjIw''@;'; + put 'put ''LDM3Njk3LDE1MzA5MywyOTIzMCwyOTI0OCwxNDk4NzYsMjY4MTMsMjkyNjksMjkyNzEsMTU5NTcsMTQzNDI4LDI2NjM3LDI4NDc3LDI5MzE0LDI5NDgyLDI5NDgzLDE0OTUzOSwxNjU5MzEsMTg2NjksMTY1ODkyLDI5NDgwLDI5NDg2LDI5NjQ3LDI5NjEwLDEzNDIwMiwxNTgyNTQsMjk2NDEs''@;'; + put 'put ''Mjk3NjksMTQ3OTM4LDEzNjkzNSwxNTAwNTIsMjYxNDcsMTQwMjEsMTQ5OTQzLDE0OTkwMSwxNTAwMTEsMjk2ODcsMjk3MTcsMjY4ODMsMTUwMDU0LDI5NzUzLDEzMjU0NywxNjA4NywyOTc4OCwxNDE0ODUsMjk3OTIsMTY3NjAyLDI5NzY3LDI5NjY4LDI5ODE0LDMzNzIxLDI5ODA0LDE0MTI4''@;'; + put 'put ''LDI5ODEyLDM3ODczLDI3MTgwLDI5ODI2LDE4NzcxLDE1MDE1NiwxNDc4MDcsMTUwMTM3LDE2Njc5OSwyMzM2NiwxNjY5MTUsMTM3Mzc0LDI5ODk2LDEzNzYwOCwyOTk2NiwyOTkyOSwyOTk4MiwxNjc2NDEsMTM3ODAzLDIzNTExLDE2NzU5NiwzNzc2NSwzMDAyOSwzMDAyNiwzMDA1NSwzMDA2''@;'; + put 'put ''MiwxNTE0MjYsMTYxMzIsMTUwODAzLDMwMDk0LDI5Nzg5LDMwMTEwLDMwMTMyLDMwMjEwLDMwMjUyLDMwMjg5LDMwMjg3LDMwMzE5LDMwMzI2LDE1NjY2MSwzMDM1MiwzMzI2MywxNDMyOCwxNTc5NjksMTU3OTY2LDMwMzY5LDMwMzczLDMwMzkxLDMwNDEyLDE1OTY0NywzMzg5MCwxNTE3MDks''@;'; + put 'put ''MTUxOTMzLDEzODc4MCwzMDQ5NCwzMDUwMiwzMDUyOCwyNTc3NSwxNTIwOTYsMzA1NTIsMTQ0MDQ0LDMwNjM5LDE2NjI0NCwxNjYyNDgsMTM2ODk3LDMwNzA4LDMwNzI5LDEzNjA1NCwxNTAwMzQsMjY4MjYsMzA4OTUsMzA5MTksMzA5MzEsMzg1NjUsMzEwMjIsMTUzMDU2LDMwOTM1LDMxMDI4''@;'; + put 'put ''LDMwODk3LDE2MTI5MiwzNjc5MiwzNDk0OCwxNjY2OTksMTU1Nzc5LDE0MDgyOCwzMTExMCwzNTA3MiwyNjg4MiwzMTEwNCwxNTM2ODcsMzExMzMsMTYyNjE3LDMxMDM2LDMxMTQ1LDI4MjAyLDE2MDAzOCwxNjA0MCwzMTE3NCwxNjgyMDUsMzExODhdLCJldWMta3IiOls0NDAzNCw0NDAzNSw0''@;'; + put 'put ''NDAzNyw0NDAzOCw0NDA0Myw0NDA0NCw0NDA0NSw0NDA0Niw0NDA0Nyw0NDA1Niw0NDA2Miw0NDA2Myw0NDA2NSw0NDA2Niw0NDA2Nyw0NDA2OSw0NDA3MCw0NDA3MSw0NDA3Miw0NDA3Myw0NDA3NCw0NDA3NSw0NDA3OCw0NDA4Miw0NDA4Myw0NDA4NCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCw0NDA4NSw0NDA4Niw0NDA4Nyw0NDA5MCw0NDA5MSw0NDA5Myw0NDA5NCw0NDA5NSw0NDA5Nyw0NDA5OCw0NDA5OSw0NDEwMCw0NDEwMSw0NDEwMiw0NDEwMyw0NDEwNCw0NDEwNSw0NDEwNiw0NDEwOCw0NDExMCw0NDExMSw0NDExMiw0NDExMyw0NDExNCw0NDExNSw0NDExNyxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw0NDExOCw0NDExOSw0NDEyMSw0NDEyMiw0NDEyMyw0NDEyNSw0NDEyNiw0NDEyNyw0NDEyOCw0NDEyOSw0NDEzMCw0NDEzMSw0NDEzMiw0NDEzMyw0NDEzNCw0NDEzNSw0NDEzNiw0NDEzNyw0NDEzOCw0NDEzOSw0NDE0MCw0NDE0MSw0NDE0''@;'; + put 'put ''Miw0NDE0Myw0NDE0Niw0NDE0Nyw0NDE0OSw0NDE1MCw0NDE1Myw0NDE1NSw0NDE1Niw0NDE1Nyw0NDE1OCw0NDE1OSw0NDE2Miw0NDE2Nyw0NDE2OCw0NDE3Myw0NDE3NCw0NDE3NSw0NDE3Nyw0NDE3OCw0NDE3OSw0NDE4MSw0NDE4Miw0NDE4Myw0NDE4NCw0NDE4NSw0NDE4Niw0NDE4Nyw0''@;'; + put 'put ''NDE5MCw0NDE5NCw0NDE5NSw0NDE5Niw0NDE5Nyw0NDE5OCw0NDE5OSw0NDIwMyw0NDIwNSw0NDIwNiw0NDIwOSw0NDIxMCw0NDIxMSw0NDIxMiw0NDIxMyw0NDIxNCw0NDIxNSw0NDIxOCw0NDIyMiw0NDIyMyw0NDIyNCw0NDIyNiw0NDIyNyw0NDIyOSw0NDIzMCw0NDIzMSw0NDIzMyw0NDIz''@;'; + put 'put ''NCw0NDIzNSw0NDIzNyw0NDIzOCw0NDIzOSw0NDI0MCw0NDI0MSw0NDI0Miw0NDI0Myw0NDI0NCw0NDI0Niw0NDI0OCw0NDI0OSw0NDI1MCw0NDI1MSw0NDI1Miw0NDI1Myw0NDI1NCw0NDI1NSw0NDI1OCw0NDI1OSw0NDI2MSw0NDI2Miw0NDI2NSw0NDI2Nyw0NDI2OSw0NDI3MCw0NDI3NCw0''@;'; + put 'put ''NDI3Niw0NDI3OSw0NDI4MCw0NDI4MSw0NDI4Miw0NDI4Myw0NDI4Niw0NDI4Nyw0NDI4OSw0NDI5MCw0NDI5MSw0NDI5Myw0NDI5NSw0NDI5Niw0NDI5Nyw0NDI5OCw0NDI5OSw0NDMwMiw0NDMwNCw0NDMwNiw0NDMwNyw0NDMwOCw0NDMwOSw0NDMxMCw0NDMxMSw0NDMxMyw0NDMxNCw0NDMx''@;'; + put 'put ''NSw0NDMxNyw0NDMxOCw0NDMxOSw0NDMyMSw0NDMyMiw0NDMyMyw0NDMyNCw0NDMyNSw0NDMyNiw0NDMyNyw0NDMyOCw0NDMzMCw0NDMzMSw0NDMzNCw0NDMzNSw0NDMzNiw0NDMzNyw0NDMzOCw0NDMzOSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw0NDM0Miw0NDM0Myw0NDM0NSw0''@;'; + put 'put ''NDM0Niw0NDM0Nyw0NDM0OSw0NDM1MCw0NDM1MSw0NDM1Miw0NDM1Myw0NDM1NCw0NDM1NSw0NDM1OCw0NDM2MCw0NDM2Miw0NDM2Myw0NDM2NCw0NDM2NSw0NDM2Niw0NDM2Nyw0NDM2OSw0NDM3MCw0NDM3MSw0NDM3Myw0NDM3NCw0NDM3NSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCw0NDM3Nyw0NDM3OCw0NDM3OSw0NDM4MCw0NDM4MSw0NDM4Miw0NDM4Myw0NDM4NCw0NDM4Niw0NDM4OCw0NDM4OSw0NDM5MCw0NDM5MSw0NDM5Miw0NDM5Myw0NDM5NCw0NDM5NSw0NDM5OCw0NDM5OSw0NDQwMSw0NDQwMiw0NDQwNyw0NDQwOCw0NDQwOSw0NDQxMCw0NDQxNCw0NDQxNiw0''@;'; + put 'put ''NDQxOSw0NDQyMCw0NDQyMSw0NDQyMiw0NDQyMyw0NDQyNiw0NDQyNyw0NDQyOSw0NDQzMCw0NDQzMSw0NDQzMyw0NDQzNCw0NDQzNSw0NDQzNiw0NDQzNyw0NDQzOCw0NDQzOSw0NDQ0MCw0NDQ0MSw0NDQ0Miw0NDQ0Myw0NDQ0Niw0NDQ0Nyw0NDQ0OCw0NDQ0OSw0NDQ1MCw0NDQ1MSw0NDQ1''@;'; + put 'put ''Myw0NDQ1NCw0NDQ1NSw0NDQ1Niw0NDQ1Nyw0NDQ1OCw0NDQ1OSw0NDQ2MCw0NDQ2MSw0NDQ2Miw0NDQ2Myw0NDQ2NCw0NDQ2NSw0NDQ2Niw0NDQ2Nyw0NDQ2OCw0NDQ2OSw0NDQ3MCw0NDQ3Miw0NDQ3Myw0NDQ3NCw0NDQ3NSw0NDQ3Niw0NDQ3Nyw0NDQ3OCw0NDQ3OSw0NDQ4Miw0NDQ4Myw0''@;'; + put 'put ''NDQ4NSw0NDQ4Niw0NDQ4Nyw0NDQ4OSw0NDQ5MCw0NDQ5MSw0NDQ5Miw0NDQ5Myw0NDQ5NCw0NDQ5NSw0NDQ5OCw0NDUwMCw0NDUwMSw0NDUwMiw0NDUwMyw0NDUwNCw0NDUwNSw0NDUwNiw0NDUwNyw0NDUwOSw0NDUxMCw0NDUxMSw0NDUxMyw0NDUxNCw0NDUxNSw0NDUxNyw0NDUxOCw0NDUx''@;'; + put 'put ''OSw0NDUyMCw0NDUyMSw0NDUyMiw0NDUyMyw0NDUyNCw0NDUyNSw0NDUyNiw0NDUyNyw0NDUyOCw0NDUyOSw0NDUzMCw0NDUzMSw0NDUzMiw0NDUzMyw0NDUzNCw0NDUzNSw0NDUzOCw0NDUzOSw0NDU0MSw0NDU0Miw0NDU0Niw0NDU0Nyw0NDU0OCw0NDU0OSw0NDU1MCw0NDU1MSw0NDU1NCw0''@;'; + put 'put ''NDU1Niw0NDU1OCw0NDU1OSw0NDU2MCw0NDU2MSw0NDU2Miw0NDU2Myw0NDU2NSw0NDU2Niw0NDU2Nyw0NDU2OCw0NDU2OSw0NDU3MCw0NDU3MSw0NDU3MixudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw0NDU3Myw0NDU3NCw0NDU3NSw0NDU3Niw0NDU3Nyw0NDU3OCw0NDU3OSw0NDU4''@;'; + put 'put ''MCw0NDU4MSw0NDU4Miw0NDU4Myw0NDU4NCw0NDU4NSw0NDU4Niw0NDU4Nyw0NDU4OCw0NDU4OSw0NDU5MCw0NDU5MSw0NDU5NCw0NDU5NSw0NDU5Nyw0NDU5OCw0NDYwMSw0NDYwMyw0NDYwNCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw0NDYwNSw0NDYwNiw0NDYwNyw0NDYxMCw0''@;'; + put 'put ''NDYxMiw0NDYxNSw0NDYxNiw0NDYxNyw0NDYxOSw0NDYyMyw0NDYyNSw0NDYyNiw0NDYyNyw0NDYyOSw0NDYzMSw0NDYzMiw0NDYzMyw0NDYzNCw0NDYzNSw0NDYzOCw0NDY0Miw0NDY0Myw0NDY0NCw0NDY0Niw0NDY0Nyw0NDY1MCw0NDY1MSw0NDY1Myw0NDY1NCw0NDY1NSw0NDY1Nyw0NDY1''@;'; + put 'put ''OCw0NDY1OSw0NDY2MCw0NDY2MSw0NDY2Miw0NDY2Myw0NDY2Niw0NDY3MCw0NDY3MSw0NDY3Miw0NDY3Myw0NDY3NCw0NDY3NSw0NDY3OCw0NDY3OSw0NDY4MCw0NDY4MSw0NDY4Miw0NDY4Myw0NDY4NSw0NDY4Niw0NDY4Nyw0NDY4OCw0NDY4OSw0NDY5MCw0NDY5MSw0NDY5Miw0NDY5Myw0''@;'; + put 'put ''NDY5NCw0NDY5NSw0NDY5Niw0NDY5Nyw0NDY5OCw0NDY5OSw0NDcwMCw0NDcwMSw0NDcwMiw0NDcwMyw0NDcwNCw0NDcwNSw0NDcwNiw0NDcwNyw0NDcwOCw0NDcwOSw0NDcxMCw0NDcxMSw0NDcxMiw0NDcxMyw0NDcxNCw0NDcxNSw0NDcxNiw0NDcxNyw0NDcxOCw0NDcxOSw0NDcyMCw0NDcy''@;'; + put 'put ''MSw0NDcyMiw0NDcyMyw0NDcyNCw0NDcyNSw0NDcyNiw0NDcyNyw0NDcyOCw0NDcyOSw0NDczMCw0NDczMSw0NDczNSw0NDczNyw0NDczOCw0NDczOSw0NDc0MSw0NDc0Miw0NDc0Myw0NDc0NCw0NDc0NSw0NDc0Niw0NDc0Nyw0NDc1MCw0NDc1NCw0NDc1NSw0NDc1Niw0NDc1Nyw0NDc1OCw0''@;'; + put 'put ''NDc1OSw0NDc2Miw0NDc2Myw0NDc2NSw0NDc2Niw0NDc2Nyw0NDc2OCw0NDc2OSw0NDc3MCw0NDc3MSw0NDc3Miw0NDc3Myw0NDc3NCw0NDc3NSw0NDc3Nyw0NDc3OCw0NDc4MCw0NDc4Miw0NDc4Myw0NDc4NCw0NDc4NSw0NDc4Niw0NDc4Nyw0NDc4OSw0NDc5MCw0NDc5MSw0NDc5Myw0NDc5''@;'; + put 'put ''NCw0NDc5NSw0NDc5Nyw0NDc5OCw0NDc5OSw0NDgwMCw0NDgwMSw0NDgwMiw0NDgwMyw0NDgwNCw0NDgwNSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw0NDgwNiw0NDgwOSw0NDgxMCw0NDgxMSw0NDgxMiw0NDgxNCw0NDgxNSw0NDgxNyw0NDgxOCw0NDgxOSw0NDgyMCw0NDgyMSw0''@;'; + put 'put ''NDgyMiw0NDgyMyw0NDgyNCw0NDgyNSw0NDgyNiw0NDgyNyw0NDgyOCw0NDgyOSw0NDgzMCw0NDgzMSw0NDgzMiw0NDgzMyw0NDgzNCw0NDgzNSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw0NDgzNiw0NDgzNyw0NDgzOCw0NDgzOSw0NDg0MCw0NDg0MSw0NDg0Miw0NDg0Myw0NDg0''@;'; + put 'put ''Niw0NDg0Nyw0NDg0OSw0NDg1MSw0NDg1Myw0NDg1NCw0NDg1NSw0NDg1Niw0NDg1Nyw0NDg1OCw0NDg1OSw0NDg2Miw0NDg2NCw0NDg2OCw0NDg2OSw0NDg3MCw0NDg3MSw0NDg3NCw0NDg3NSw0NDg3Niw0NDg3Nyw0NDg3OCw0NDg3OSw0NDg4MSw0NDg4Miw0NDg4Myw0NDg4NCw0NDg4NSw0''@;'; + put 'put ''NDg4Niw0NDg4Nyw0NDg4OCw0NDg4OSw0NDg5MCw0NDg5MSw0NDg5NCw0NDg5NSw0NDg5Niw0NDg5Nyw0NDg5OCw0NDg5OSw0NDkwMiw0NDkwMyw0NDkwNCw0NDkwNSw0NDkwNiw0NDkwNyw0NDkwOCw0NDkwOSw0NDkxMCw0NDkxMSw0NDkxMiw0NDkxMyw0NDkxNCw0NDkxNSw0NDkxNiw0NDkx''@;'; + put 'put ''Nyw0NDkxOCw0NDkxOSw0NDkyMCw0NDkyMiw0NDkyMyw0NDkyNCw0NDkyNSw0NDkyNiw0NDkyNyw0NDkyOSw0NDkzMCw0NDkzMSw0NDkzMyw0NDkzNCw0NDkzNSw0NDkzNyw0NDkzOCw0NDkzOSw0NDk0MCw0NDk0MSw0NDk0Miw0NDk0Myw0NDk0Niw0NDk0Nyw0NDk0OCw0NDk1MCw0NDk1MSw0''@;'; + put 'put ''NDk1Miw0NDk1Myw0NDk1NCw0NDk1NSw0NDk1Nyw0NDk1OCw0NDk1OSw0NDk2MCw0NDk2MSw0NDk2Miw0NDk2Myw0NDk2NCw0NDk2NSw0NDk2Niw0NDk2Nyw0NDk2OCw0NDk2OSw0NDk3MCw0NDk3MSw0NDk3Miw0NDk3Myw0NDk3NCw0NDk3NSw0NDk3Niw0NDk3Nyw0NDk3OCw0NDk3OSw0NDk4''@;'; + put 'put ''MCw0NDk4MSw0NDk4Miw0NDk4Myw0NDk4Niw0NDk4Nyw0NDk4OSw0NDk5MCw0NDk5MSw0NDk5Myw0NDk5NCw0NDk5NSw0NDk5Niw0NDk5Nyw0NDk5OCw0NTAwMiw0NTAwNCw0NTAwNyw0NTAwOCw0NTAwOSw0NTAxMCw0NTAxMSw0NTAxMyw0NTAxNCw0NTAxNSw0NTAxNiw0NTAxNyw0NTAxOCw0''@;'; + put 'put ''NTAxOSw0NTAyMSw0NTAyMiw0NTAyMyw0NTAyNCw0NTAyNSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw0NTAyNiw0NTAyNyw0NTAyOCw0NTAyOSw0NTAzMCw0NTAzMSw0NTAzNCw0NTAzNSw0NTAzNiw0NTAzNyw0NTAzOCw0NTAzOSw0NTA0Miw0NTA0Myw0NTA0NSw0NTA0Niw0NTA0''@;'; + put 'put ''Nyw0NTA0OSw0NTA1MCw0NTA1MSw0NTA1Miw0NTA1Myw0NTA1NCw0NTA1NSw0NTA1OCw0NTA1OSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw0NTA2MSw0NTA2Miw0NTA2Myw0NTA2NCw0NTA2NSw0NTA2Niw0NTA2Nyw0NTA2OSw0NTA3MCw0NTA3MSw0NTA3Myw0NTA3NCw0NTA3NSw0''@;'; + put 'put ''NTA3Nyw0NTA3OCw0NTA3OSw0NTA4MCw0NTA4MSw0NTA4Miw0NTA4Myw0NTA4Niw0NTA4Nyw0NTA4OCw0NTA4OSw0NTA5MCw0NTA5MSw0NTA5Miw0NTA5Myw0NTA5NCw0NTA5NSw0NTA5Nyw0NTA5OCw0NTA5OSw0NTEwMCw0NTEwMSw0NTEwMiw0NTEwMyw0NTEwNCw0NTEwNSw0NTEwNiw0NTEw''@;'; + put 'put ''Nyw0NTEwOCw0NTEwOSw0NTExMCw0NTExMSw0NTExMiw0NTExMyw0NTExNCw0NTExNSw0NTExNiw0NTExNyw0NTExOCw0NTExOSw0NTEyMCw0NTEyMSw0NTEyMiw0NTEyMyw0NTEyNiw0NTEyNyw0NTEyOSw0NTEzMSw0NTEzMyw0NTEzNSw0NTEzNiw0NTEzNyw0NTEzOCw0NTE0Miw0NTE0NCw0''@;'; + put 'put ''NTE0Niw0NTE0Nyw0NTE0OCw0NTE1MCw0NTE1MSw0NTE1Miw0NTE1Myw0NTE1NCw0NTE1NSw0NTE1Niw0NTE1Nyw0NTE1OCw0NTE1OSw0NTE2MCw0NTE2MSw0NTE2Miw0NTE2Myw0NTE2NCw0NTE2NSw0NTE2Niw0NTE2Nyw0NTE2OCw0NTE2OSw0NTE3MCw0NTE3MSw0NTE3Miw0NTE3Myw0NTE3''@;'; + put 'put ''NCw0NTE3NSw0NTE3Niw0NTE3Nyw0NTE3OCw0NTE3OSw0NTE4Miw0NTE4Myw0NTE4NSw0NTE4Niw0NTE4Nyw0NTE4OSw0NTE5MCw0NTE5MSw0NTE5Miw0NTE5Myw0NTE5NCw0NTE5NSw0NTE5OCw0NTIwMCw0NTIwMiw0NTIwMyw0NTIwNCw0NTIwNSw0NTIwNiw0NTIwNyw0NTIxMSw0NTIxMyw0''@;'; + put 'put ''NTIxNCw0NTIxOSw0NTIyMCw0NTIyMSw0NTIyMiw0NTIyMyw0NTIyNiw0NTIzMiw0NTIzNCw0NTIzOCw0NTIzOSw0NTI0MSw0NTI0Miw0NTI0Myw0NTI0NSw0NTI0Niw0NTI0Nyw0NTI0OCw0NTI0OSw0NTI1MCw0NTI1MSw0NTI1NCw0NTI1OCw0NTI1OSw0NTI2MCw0NTI2MSw0NTI2Miw0NTI2''@;'; + put 'put ''Myw0NTI2NixudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw0NTI2Nyw0NTI2OSw0NTI3MCw0NTI3MSw0NTI3Myw0NTI3NCw0NTI3NSw0NTI3Niw0NTI3Nyw0NTI3OCw0NTI3OSw0NTI4MSw0NTI4Miw0NTI4Myw0NTI4NCw0NTI4Niw0NTI4Nyw0NTI4OCw0NTI4OSw0NTI5MCw0NTI5MSw0''@;'; + put 'put ''NTI5Miw0NTI5Myw0NTI5NCw0NTI5NSw0NTI5NixudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw0NTI5Nyw0NTI5OCw0NTI5OSw0NTMwMCw0NTMwMSw0NTMwMiw0NTMwMyw0NTMwNCw0NTMwNSw0NTMwNiw0NTMwNyw0NTMwOCw0NTMwOSw0NTMxMCw0NTMxMSw0NTMxMiw0NTMxMyw0NTMx''@;'; + put 'put ''NCw0NTMxNSw0NTMxNiw0NTMxNyw0NTMxOCw0NTMxOSw0NTMyMiw0NTMyNSw0NTMyNiw0NTMyNyw0NTMyOSw0NTMzMiw0NTMzMyw0NTMzNCw0NTMzNSw0NTMzOCw0NTM0Miw0NTM0Myw0NTM0NCw0NTM0NSw0NTM0Niw0NTM1MCw0NTM1MSw0NTM1Myw0NTM1NCw0NTM1NSw0NTM1Nyw0NTM1OCw0''@;'; + put 'put ''NTM1OSw0NTM2MCw0NTM2MSw0NTM2Miw0NTM2Myw0NTM2Niw0NTM3MCw0NTM3MSw0NTM3Miw0NTM3Myw0NTM3NCw0NTM3NSw0NTM3OCw0NTM3OSw0NTM4MSw0NTM4Miw0NTM4Myw0NTM4NSw0NTM4Niw0NTM4Nyw0NTM4OCw0NTM4OSw0NTM5MCw0NTM5MSw0NTM5NCw0NTM5NSw0NTM5OCw0NTM5''@;'; + put 'put ''OSw0NTQwMSw0NTQwMiw0NTQwMyw0NTQwNSw0NTQwNiw0NTQwNyw0NTQwOSw0NTQxMCw0NTQxMSw0NTQxMiw0NTQxMyw0NTQxNCw0NTQxNSw0NTQxNiw0NTQxNyw0NTQxOCw0NTQxOSw0NTQyMCw0NTQyMSw0NTQyMiw0NTQyMyw0NTQyNCw0NTQyNSw0NTQyNiw0NTQyNyw0NTQyOCw0NTQyOSw0''@;'; + put 'put ''NTQzMCw0NTQzMSw0NTQzNCw0NTQzNSw0NTQzNyw0NTQzOCw0NTQzOSw0NTQ0MSw0NTQ0Myw0NTQ0NCw0NTQ0NSw0NTQ0Niw0NTQ0Nyw0NTQ1MCw0NTQ1Miw0NTQ1NCw0NTQ1NSw0NTQ1Niw0NTQ1Nyw0NTQ2MSw0NTQ2Miw0NTQ2Myw0NTQ2NSw0NTQ2Niw0NTQ2Nyw0NTQ2OSw0NTQ3MCw0NTQ3''@;'; + put 'put ''MSw0NTQ3Miw0NTQ3Myw0NTQ3NCw0NTQ3NSw0NTQ3Niw0NTQ3Nyw0NTQ3OCw0NTQ3OSw0NTQ4MSw0NTQ4Miw0NTQ4Myw0NTQ4NCw0NTQ4NSw0NTQ4Niw0NTQ4Nyw0NTQ4OCw0NTQ4OSw0NTQ5MCw0NTQ5MSw0NTQ5Miw0NTQ5Myw0NTQ5NCw0NTQ5NSw0NTQ5NixudWxsLG51bGwsbnVsbCxudWxs''@;'; + put 'put ''LG51bGwsbnVsbCw0NTQ5Nyw0NTQ5OCw0NTQ5OSw0NTUwMCw0NTUwMSw0NTUwMiw0NTUwMyw0NTUwNCw0NTUwNSw0NTUwNiw0NTUwNyw0NTUwOCw0NTUwOSw0NTUxMCw0NTUxMSw0NTUxMiw0NTUxMyw0NTUxNCw0NTUxNSw0NTUxNyw0NTUxOCw0NTUxOSw0NTUyMSw0NTUyMiw0NTUyMyw0NTUy''@;'; + put 'put ''NSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw0NTUyNiw0NTUyNyw0NTUyOCw0NTUyOSw0NTUzMCw0NTUzMSw0NTUzNCw0NTUzNiw0NTUzNyw0NTUzOCw0NTUzOSw0NTU0MCw0NTU0MSw0NTU0Miw0NTU0Myw0NTU0Niw0NTU0Nyw0NTU0OSw0NTU1MCw0NTU1MSw0NTU1Myw0NTU1NCw0''@;'; + put 'put ''NTU1NSw0NTU1Niw0NTU1Nyw0NTU1OCw0NTU1OSw0NTU2MCw0NTU2Miw0NTU2NCw0NTU2Niw0NTU2Nyw0NTU2OCw0NTU2OSw0NTU3MCw0NTU3MSw0NTU3NCw0NTU3NSw0NTU3Nyw0NTU3OCw0NTU4MSw0NTU4Miw0NTU4Myw0NTU4NCw0NTU4NSw0NTU4Niw0NTU4Nyw0NTU5MCw0NTU5Miw0NTU5''@;'; + put 'put ''NCw0NTU5NSw0NTU5Niw0NTU5Nyw0NTU5OCw0NTU5OSw0NTYwMSw0NTYwMiw0NTYwMyw0NTYwNCw0NTYwNSw0NTYwNiw0NTYwNyw0NTYwOCw0NTYwOSw0NTYxMCw0NTYxMSw0NTYxMiw0NTYxMyw0NTYxNCw0NTYxNSw0NTYxNiw0NTYxNyw0NTYxOCw0NTYxOSw0NTYyMSw0NTYyMiw0NTYyMyw0''@;'; + put 'put ''NTYyNCw0NTYyNSw0NTYyNiw0NTYyNyw0NTYyOSw0NTYzMCw0NTYzMSw0NTYzMiw0NTYzMyw0NTYzNCw0NTYzNSw0NTYzNiw0NTYzNyw0NTYzOCw0NTYzOSw0NTY0MCw0NTY0MSw0NTY0Miw0NTY0Myw0NTY0NCw0NTY0NSw0NTY0Niw0NTY0Nyw0NTY0OCw0NTY0OSw0NTY1MCw0NTY1MSw0NTY1''@;'; + put 'put ''Miw0NTY1Myw0NTY1NCw0NTY1NSw0NTY1Nyw0NTY1OCw0NTY1OSw0NTY2MSw0NTY2Miw0NTY2Myw0NTY2NSw0NTY2Niw0NTY2Nyw0NTY2OCw0NTY2OSw0NTY3MCw0NTY3MSw0NTY3NCw0NTY3NSw0NTY3Niw0NTY3Nyw0NTY3OCw0NTY3OSw0NTY4MCw0NTY4MSw0NTY4Miw0NTY4Myw0NTY4Niw0''@;'; + put 'put ''NTY4Nyw0NTY4OCw0NTY4OSw0NTY5MCw0NTY5MSw0NTY5Myw0NTY5NCw0NTY5NSw0NTY5Niw0NTY5Nyw0NTY5OCw0NTY5OSw0NTcwMiw0NTcwMyw0NTcwNCw0NTcwNiw0NTcwNyw0NTcwOCw0NTcwOSw0NTcxMCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw0NTcxMSw0NTcxNCw0NTcx''@;'; + put 'put ''NSw0NTcxNyw0NTcxOCw0NTcxOSw0NTcyMyw0NTcyNCw0NTcyNSw0NTcyNiw0NTcyNyw0NTczMCw0NTczMiw0NTczNSw0NTczNiw0NTczNyw0NTczOSw0NTc0MSw0NTc0Miw0NTc0Myw0NTc0NSw0NTc0Niw0NTc0Nyw0NTc0OSw0NTc1MCw0NTc1MSxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCw0NTc1Miw0NTc1Myw0NTc1NCw0NTc1NSw0NTc1Niw0NTc1Nyw0NTc1OCw0NTc1OSw0NTc2MCw0NTc2MSw0NTc2Miw0NTc2Myw0NTc2NCw0NTc2NSw0NTc2Niw0NTc2Nyw0NTc3MCw0NTc3MSw0NTc3Myw0NTc3NCw0NTc3NSw0NTc3Nyw0NTc3OSw0NTc4MCw0NTc4MSw0NTc4Miw0NTc4''@;'; + put 'put ''Myw0NTc4Niw0NTc4OCw0NTc5MCw0NTc5MSw0NTc5Miw0NTc5Myw0NTc5NSw0NTc5OSw0NTgwMSw0NTgwMiw0NTgwOCw0NTgwOSw0NTgxMCw0NTgxNCw0NTgyMCw0NTgyMSw0NTgyMiw0NTgyNiw0NTgyNyw0NTgyOSw0NTgzMCw0NTgzMSw0NTgzMyw0NTgzNCw0NTgzNSw0NTgzNiw0NTgzNyw0''@;'; + put 'put ''NTgzOCw0NTgzOSw0NTg0Miw0NTg0Niw0NTg0Nyw0NTg0OCw0NTg0OSw0NTg1MCw0NTg1MSw0NTg1Myw0NTg1NCw0NTg1NSw0NTg1Niw0NTg1Nyw0NTg1OCw0NTg1OSw0NTg2MCw0NTg2MSw0NTg2Miw0NTg2Myw0NTg2NCw0NTg2NSw0NTg2Niw0NTg2Nyw0NTg2OCw0NTg2OSw0NTg3MCw0NTg3''@;'; + put 'put ''MSw0NTg3Miw0NTg3Myw0NTg3NCw0NTg3NSw0NTg3Niw0NTg3Nyw0NTg3OCw0NTg3OSw0NTg4MCw0NTg4MSw0NTg4Miw0NTg4Myw0NTg4NCw0NTg4NSw0NTg4Niw0NTg4Nyw0NTg4OCw0NTg4OSw0NTg5MCw0NTg5MSw0NTg5Miw0NTg5Myw0NTg5NCw0NTg5NSw0NTg5Niw0NTg5Nyw0NTg5OCw0''@;'; + put 'put ''NTg5OSw0NTkwMCw0NTkwMSw0NTkwMiw0NTkwMyw0NTkwNCw0NTkwNSw0NTkwNiw0NTkwNyw0NTkxMSw0NTkxMyw0NTkxNCw0NTkxNyw0NTkyMCw0NTkyMSw0NTkyMiw0NTkyMyw0NTkyNiw0NTkyOCw0NTkzMCw0NTkzMiw0NTkzMyw0NTkzNSw0NTkzOCw0NTkzOSw0NTk0MSw0NTk0Miw0NTk0''@;'; + put 'put ''Myw0NTk0NSw0NTk0Niw0NTk0Nyw0NTk0OCw0NTk0OSw0NTk1MCw0NTk1MSw0NTk1NCw0NTk1OCw0NTk1OSw0NTk2MCw0NTk2MSw0NTk2Miw0NTk2Myw0NTk2NSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw0NTk2Niw0NTk2Nyw0NTk2OSw0NTk3MCw0NTk3MSw0NTk3Myw0NTk3NCw0''@;'; + put 'put ''NTk3NSw0NTk3Niw0NTk3Nyw0NTk3OCw0NTk3OSw0NTk4MCw0NTk4MSw0NTk4Miw0NTk4Myw0NTk4Niw0NTk4Nyw0NTk4OCw0NTk4OSw0NTk5MCw0NTk5MSw0NTk5Myw0NTk5NCw0NTk5NSw0NTk5NyxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw0NTk5OCw0NTk5OSw0NmUzLDQ2MDAx''@;'; + put 'put ''LDQ2MDAyLDQ2MDAzLDQ2MDA0LDQ2MDA1LDQ2MDA2LDQ2MDA3LDQ2MDA4LDQ2MDA5LDQ2MDEwLDQ2MDExLDQ2MDEyLDQ2MDEzLDQ2MDE0LDQ2MDE1LDQ2MDE2LDQ2MDE3LDQ2MDE4LDQ2MDE5LDQ2MDIyLDQ2MDIzLDQ2MDI1LDQ2MDI2LDQ2MDI5LDQ2MDMxLDQ2MDMzLDQ2MDM0LDQ2MDM1LDQ2''@;'; + put 'put ''MDM4LDQ2MDQwLDQ2MDQyLDQ2MDQ0LDQ2MDQ2LDQ2MDQ3LDQ2MDQ5LDQ2MDUwLDQ2MDUxLDQ2MDUzLDQ2MDU0LDQ2MDU1LDQ2MDU3LDQ2MDU4LDQ2MDU5LDQ2MDYwLDQ2MDYxLDQ2MDYyLDQ2MDYzLDQ2MDY0LDQ2MDY1LDQ2MDY2LDQ2MDY3LDQ2MDY4LDQ2MDY5LDQ2MDcwLDQ2MDcxLDQ2MDcy''@;'; + put 'put ''LDQ2MDczLDQ2MDc0LDQ2MDc1LDQ2MDc3LDQ2MDc4LDQ2MDc5LDQ2MDgwLDQ2MDgxLDQ2MDgyLDQ2MDgzLDQ2MDg0LDQ2MDg1LDQ2MDg2LDQ2MDg3LDQ2MDg4LDQ2MDg5LDQ2MDkwLDQ2MDkxLDQ2MDkyLDQ2MDkzLDQ2MDk0LDQ2MDk1LDQ2MDk3LDQ2MDk4LDQ2MDk5LDQ2MTAwLDQ2MTAxLDQ2''@;'; + put 'put ''MTAyLDQ2MTAzLDQ2MTA1LDQ2MTA2LDQ2MTA3LDQ2MTA5LDQ2MTEwLDQ2MTExLDQ2MTEzLDQ2MTE0LDQ2MTE1LDQ2MTE2LDQ2MTE3LDQ2MTE4LDQ2MTE5LDQ2MTIyLDQ2MTI0LDQ2MTI1LDQ2MTI2LDQ2MTI3LDQ2MTI4LDQ2MTI5LDQ2MTMwLDQ2MTMxLDQ2MTMzLDQ2MTM0LDQ2MTM1LDQ2MTM2''@;'; + put 'put ''LDQ2MTM3LDQ2MTM4LDQ2MTM5LDQ2MTQwLDQ2MTQxLDQ2MTQyLDQ2MTQzLDQ2MTQ0LDQ2MTQ1LDQ2MTQ2LDQ2MTQ3LDQ2MTQ4LDQ2MTQ5LDQ2MTUwLDQ2MTUxLDQ2MTUyLDQ2MTUzLDQ2MTU0LDQ2MTU1LDQ2MTU2LDQ2MTU3LDQ2MTU4LDQ2MTU5LDQ2MTYyLDQ2MTYzLDQ2MTY1LDQ2MTY2LDQ2''@;'; + put 'put ''MTY3LDQ2MTY5LDQ2MTcwLDQ2MTcxLDQ2MTcyLDQ2MTczLDQ2MTc0LDQ2MTc1LDQ2MTc4LDQ2MTgwLDQ2MTgyLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDQ2MTgzLDQ2MTg0LDQ2MTg1LDQ2MTg2LDQ2MTg3LDQ2MTg5LDQ2MTkwLDQ2MTkxLDQ2MTkyLDQ2MTkzLDQ2MTk0LDQ2MTk1''@;'; + put 'put ''LDQ2MTk2LDQ2MTk3LDQ2MTk4LDQ2MTk5LDQ2MjAwLDQ2MjAxLDQ2MjAyLDQ2MjAzLDQ2MjA0LDQ2MjA1LDQ2MjA2LDQ2MjA3LDQ2MjA5LDQ2MjEwLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDQ2MjExLDQ2MjEyLDQ2MjEzLDQ2MjE0LDQ2MjE1LDQ2MjE3LDQ2MjE4LDQ2MjE5LDQ2''@;'; + put 'put ''MjIwLDQ2MjIxLDQ2MjIyLDQ2MjIzLDQ2MjI0LDQ2MjI1LDQ2MjI2LDQ2MjI3LDQ2MjI4LDQ2MjI5LDQ2MjMwLDQ2MjMxLDQ2MjMyLDQ2MjMzLDQ2MjM0LDQ2MjM1LDQ2MjM2LDQ2MjM4LDQ2MjM5LDQ2MjQwLDQ2MjQxLDQ2MjQyLDQ2MjQzLDQ2MjQ1LDQ2MjQ2LDQ2MjQ3LDQ2MjQ5LDQ2MjUw''@;'; + put 'put ''LDQ2MjUxLDQ2MjUzLDQ2MjU0LDQ2MjU1LDQ2MjU2LDQ2MjU3LDQ2MjU4LDQ2MjU5LDQ2MjYwLDQ2MjYyLDQ2MjY0LDQ2MjY2LDQ2MjY3LDQ2MjY4LDQ2MjY5LDQ2MjcwLDQ2MjcxLDQ2MjczLDQ2Mjc0LDQ2Mjc1LDQ2Mjc3LDQ2Mjc4LDQ2Mjc5LDQ2MjgxLDQ2MjgyLDQ2MjgzLDQ2Mjg0LDQ2''@;'; + put 'put ''Mjg1LDQ2Mjg2LDQ2Mjg3LDQ2Mjg5LDQ2MjkwLDQ2MjkxLDQ2MjkyLDQ2Mjk0LDQ2Mjk1LDQ2Mjk2LDQ2Mjk3LDQ2Mjk4LDQ2Mjk5LDQ2MzAyLDQ2MzAzLDQ2MzA1LDQ2MzA2LDQ2MzA5LDQ2MzExLDQ2MzEyLDQ2MzEzLDQ2MzE0LDQ2MzE1LDQ2MzE4LDQ2MzIwLDQ2MzIyLDQ2MzIzLDQ2MzI0''@;'; + put 'put ''LDQ2MzI1LDQ2MzI2LDQ2MzI3LDQ2MzI5LDQ2MzMwLDQ2MzMxLDQ2MzMyLDQ2MzMzLDQ2MzM0LDQ2MzM1LDQ2MzM2LDQ2MzM3LDQ2MzM4LDQ2MzM5LDQ2MzQwLDQ2MzQxLDQ2MzQyLDQ2MzQzLDQ2MzQ0LDQ2MzQ1LDQ2MzQ2LDQ2MzQ3LDQ2MzQ4LDQ2MzQ5LDQ2MzUwLDQ2MzUxLDQ2MzUyLDQ2''@;'; + put 'put ''MzUzLDQ2MzU0LDQ2MzU1LDQ2MzU4LDQ2MzU5LDQ2MzYxLDQ2MzYyLDQ2MzY1LDQ2MzY2LDQ2MzY3LDQ2MzY4LDQ2MzY5LDQ2MzcwLDQ2MzcxLDQ2Mzc0LDQ2Mzc5LDQ2MzgwLDQ2MzgxLDQ2MzgyLDQ2MzgzLDQ2Mzg2LDQ2Mzg3LDQ2Mzg5LDQ2MzkwLDQ2MzkxLDQ2MzkzLDQ2Mzk0LDQ2Mzk1''@;'; + put 'put ''LDQ2Mzk2LDQ2Mzk3LDQ2Mzk4LDQ2Mzk5LDQ2NDAyLDQ2NDA2LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDQ2NDA3LDQ2NDA4LDQ2NDA5LDQ2NDEwLDQ2NDE0LDQ2NDE1LDQ2NDE3LDQ2NDE4LDQ2NDE5LDQ2NDIxLDQ2NDIyLDQ2NDIzLDQ2NDI0LDQ2NDI1LDQ2NDI2LDQ2NDI3LDQ2''@;'; + put 'put ''NDMwLDQ2NDM0LDQ2NDM1LDQ2NDM2LDQ2NDM3LDQ2NDM4LDQ2NDM5LDQ2NDQwLDQ2NDQxLDQ2NDQyLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDQ2NDQzLDQ2NDQ0LDQ2NDQ1LDQ2NDQ2LDQ2NDQ3LDQ2NDQ4LDQ2NDQ5LDQ2NDUwLDQ2NDUxLDQ2NDUyLDQ2NDUzLDQ2NDU0LDQ2NDU1''@;'; + put 'put ''LDQ2NDU2LDQ2NDU3LDQ2NDU4LDQ2NDU5LDQ2NDYwLDQ2NDYxLDQ2NDYyLDQ2NDYzLDQ2NDY0LDQ2NDY1LDQ2NDY2LDQ2NDY3LDQ2NDY4LDQ2NDY5LDQ2NDcwLDQ2NDcxLDQ2NDcyLDQ2NDczLDQ2NDc0LDQ2NDc1LDQ2NDc2LDQ2NDc3LDQ2NDc4LDQ2NDc5LDQ2NDgwLDQ2NDgxLDQ2NDgyLDQ2''@;'; + put 'put ''NDgzLDQ2NDg0LDQ2NDg1LDQ2NDg2LDQ2NDg3LDQ2NDg4LDQ2NDg5LDQ2NDkwLDQ2NDkxLDQ2NDkyLDQ2NDkzLDQ2NDk0LDQ2NDk1LDQ2NDk4LDQ2NDk5LDQ2NTAxLDQ2NTAyLDQ2NTAzLDQ2NTA1LDQ2NTA4LDQ2NTA5LDQ2NTEwLDQ2NTExLDQ2NTE0LDQ2NTE4LDQ2NTE5LDQ2NTIwLDQ2NTIx''@;'; + put 'put ''LDQ2NTIyLDQ2NTI2LDQ2NTI3LDQ2NTI5LDQ2NTMwLDQ2NTMxLDQ2NTMzLDQ2NTM0LDQ2NTM1LDQ2NTM2LDQ2NTM3LDQ2NTM4LDQ2NTM5LDQ2NTQyLDQ2NTQ2LDQ2NTQ3LDQ2NTQ4LDQ2NTQ5LDQ2NTUwLDQ2NTUxLDQ2NTUzLDQ2NTU0LDQ2NTU1LDQ2NTU2LDQ2NTU3LDQ2NTU4LDQ2NTU5LDQ2''@;'; + put 'put ''NTYwLDQ2NTYxLDQ2NTYyLDQ2NTYzLDQ2NTY0LDQ2NTY1LDQ2NTY2LDQ2NTY3LDQ2NTY4LDQ2NTY5LDQ2NTcwLDQ2NTcxLDQ2NTczLDQ2NTc0LDQ2NTc1LDQ2NTc2LDQ2NTc3LDQ2NTc4LDQ2NTc5LDQ2NTgwLDQ2NTgxLDQ2NTgyLDQ2NTgzLDQ2NTg0LDQ2NTg1LDQ2NTg2LDQ2NTg3LDQ2NTg4''@;'; + put 'put ''LDQ2NTg5LDQ2NTkwLDQ2NTkxLDQ2NTkyLDQ2NTkzLDQ2NTk0LDQ2NTk1LDQ2NTk2LDQ2NTk3LDQ2NTk4LDQ2NTk5LDQ2NjAwLDQ2NjAxLDQ2NjAyLDQ2NjAzLDQ2NjA0LDQ2NjA1LDQ2NjA2LDQ2NjA3LDQ2NjEwLDQ2NjExLDQ2NjEzLDQ2NjE0LDQ2NjE1LDQ2NjE3LDQ2NjE4LDQ2NjE5LDQ2''@;'; + put 'put ''NjIwLDQ2NjIxLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDQ2NjIyLDQ2NjIzLDQ2NjI0LDQ2NjI1LDQ2NjI2LDQ2NjI3LDQ2NjI4LDQ2NjMwLDQ2NjMxLDQ2NjMyLDQ2NjMzLDQ2NjM0LDQ2NjM1LDQ2NjM3LDQ2NjM4LDQ2NjM5LDQ2NjQwLDQ2NjQxLDQ2NjQyLDQ2NjQzLDQ2NjQ1''@;'; + put 'put ''LDQ2NjQ2LDQ2NjQ3LDQ2NjQ4LDQ2NjQ5LDQ2NjUwLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDQ2NjUxLDQ2NjUyLDQ2NjUzLDQ2NjU0LDQ2NjU1LDQ2NjU2LDQ2NjU3LDQ2NjU4LDQ2NjU5LDQ2NjYwLDQ2NjYxLDQ2NjYyLDQ2NjYzLDQ2NjY1LDQ2NjY2LDQ2NjY3LDQ2NjY4LDQ2''@;'; + put 'put ''NjY5LDQ2NjcwLDQ2NjcxLDQ2NjcyLDQ2NjczLDQ2Njc0LDQ2Njc1LDQ2Njc2LDQ2Njc3LDQ2Njc4LDQ2Njc5LDQ2NjgwLDQ2NjgxLDQ2NjgyLDQ2NjgzLDQ2Njg0LDQ2Njg1LDQ2Njg2LDQ2Njg3LDQ2Njg4LDQ2Njg5LDQ2NjkwLDQ2NjkxLDQ2NjkzLDQ2Njk0LDQ2Njk1LDQ2Njk3LDQ2Njk4''@;'; + put 'put ''LDQ2Njk5LDQ2NzAwLDQ2NzAxLDQ2NzAyLDQ2NzAzLDQ2NzA0LDQ2NzA1LDQ2NzA2LDQ2NzA3LDQ2NzA4LDQ2NzA5LDQ2NzEwLDQ2NzExLDQ2NzEyLDQ2NzEzLDQ2NzE0LDQ2NzE1LDQ2NzE2LDQ2NzE3LDQ2NzE4LDQ2NzE5LDQ2NzIwLDQ2NzIxLDQ2NzIyLDQ2NzIzLDQ2NzI0LDQ2NzI1LDQ2''@;'; + put 'put ''NzI2LDQ2NzI3LDQ2NzI4LDQ2NzI5LDQ2NzMwLDQ2NzMxLDQ2NzMyLDQ2NzMzLDQ2NzM0LDQ2NzM1LDQ2NzM2LDQ2NzM3LDQ2NzM4LDQ2NzM5LDQ2NzQwLDQ2NzQxLDQ2NzQyLDQ2NzQzLDQ2NzQ0LDQ2NzQ1LDQ2NzQ2LDQ2NzQ3LDQ2NzUwLDQ2NzUxLDQ2NzUzLDQ2NzU0LDQ2NzU1LDQ2NzU3''@;'; + put 'put ''LDQ2NzU4LDQ2NzU5LDQ2NzYwLDQ2NzYxLDQ2NzYyLDQ2NzY1LDQ2NzY2LDQ2NzY3LDQ2NzY4LDQ2NzcwLDQ2NzcxLDQ2NzcyLDQ2NzczLDQ2Nzc0LDQ2Nzc1LDQ2Nzc2LDQ2Nzc3LDQ2Nzc4LDQ2Nzc5LDQ2NzgwLDQ2NzgxLDQ2NzgyLDQ2NzgzLDQ2Nzg0LDQ2Nzg1LDQ2Nzg2LDQ2Nzg3LDQ2''@;'; + put 'put ''Nzg4LDQ2Nzg5LDQ2NzkwLDQ2NzkxLDQ2NzkyLDQ2NzkzLDQ2Nzk0LDQ2Nzk1LDQ2Nzk2LDQ2Nzk3LDQ2Nzk4LDQ2Nzk5LDQ2ODAwLDQ2ODAxLDQ2ODAyLDQ2ODAzLDQ2ODA1LDQ2ODA2LDQ2ODA3LDQ2ODA4LDQ2ODA5LDQ2ODEwLDQ2ODExLDQ2ODEyLDQ2ODEzLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLDQ2ODE0LDQ2ODE1LDQ2ODE2LDQ2ODE3LDQ2ODE4LDQ2ODE5LDQ2ODIwLDQ2ODIxLDQ2ODIyLDQ2ODIzLDQ2ODI0LDQ2ODI1LDQ2ODI2LDQ2ODI3LDQ2ODI4LDQ2ODI5LDQ2ODMwLDQ2ODMxLDQ2ODMzLDQ2ODM0LDQ2ODM1LDQ2ODM3LDQ2ODM4LDQ2ODM5LDQ2ODQxLDQ2''@;'; + put 'put ''ODQyLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDQ2ODQzLDQ2ODQ0LDQ2ODQ1LDQ2ODQ2LDQ2ODQ3LDQ2ODUwLDQ2ODUxLDQ2ODUyLDQ2ODU0LDQ2ODU1LDQ2ODU2LDQ2ODU3LDQ2ODU4LDQ2ODU5LDQ2ODYwLDQ2ODYxLDQ2ODYyLDQ2ODYzLDQ2ODY0LDQ2ODY1LDQ2ODY2LDQ2ODY3''@;'; + put 'put ''LDQ2ODY4LDQ2ODY5LDQ2ODcwLDQ2ODcxLDQ2ODcyLDQ2ODczLDQ2ODc0LDQ2ODc1LDQ2ODc2LDQ2ODc3LDQ2ODc4LDQ2ODc5LDQ2ODgwLDQ2ODgxLDQ2ODgyLDQ2ODgzLDQ2ODg0LDQ2ODg1LDQ2ODg2LDQ2ODg3LDQ2ODkwLDQ2ODkxLDQ2ODkzLDQ2ODk0LDQ2ODk3LDQ2ODk4LDQ2ODk5LDQ2''@;'; + put 'put ''OTAwLDQ2OTAxLDQ2OTAyLDQ2OTAzLDQ2OTA2LDQ2OTA4LDQ2OTA5LDQ2OTEwLDQ2OTExLDQ2OTEyLDQ2OTEzLDQ2OTE0LDQ2OTE1LDQ2OTE3LDQ2OTE4LDQ2OTE5LDQ2OTIxLDQ2OTIyLDQ2OTIzLDQ2OTI1LDQ2OTI2LDQ2OTI3LDQ2OTI4LDQ2OTI5LDQ2OTMwLDQ2OTMxLDQ2OTM0LDQ2OTM1''@;'; + put 'put ''LDQ2OTM2LDQ2OTM3LDQ2OTM4LDQ2OTM5LDQ2OTQwLDQ2OTQxLDQ2OTQyLDQ2OTQzLDQ2OTQ1LDQ2OTQ2LDQ2OTQ3LDQ2OTQ5LDQ2OTUwLDQ2OTUxLDQ2OTUzLDQ2OTU0LDQ2OTU1LDQ2OTU2LDQ2OTU3LDQ2OTU4LDQ2OTU5LDQ2OTYyLDQ2OTY0LDQ2OTY2LDQ2OTY3LDQ2OTY4LDQ2OTY5LDQ2''@;'; + put 'put ''OTcwLDQ2OTcxLDQ2OTc0LDQ2OTc1LDQ2OTc3LDQ2OTc4LDQ2OTc5LDQ2OTgxLDQ2OTgyLDQ2OTgzLDQ2OTg0LDQ2OTg1LDQ2OTg2LDQ2OTg3LDQ2OTkwLDQ2OTk1LDQ2OTk2LDQ2OTk3LDQ3MDAyLDQ3MDAzLDQ3MDA1LDQ3MDA2LDQ3MDA3LDQ3MDA5LDQ3MDEwLDQ3MDExLDQ3MDEyLDQ3MDEz''@;'; + put 'put ''LDQ3MDE0LDQ3MDE1LDQ3MDE4LDQ3MDIyLDQ3MDIzLDQ3MDI0LDQ3MDI1LDQ3MDI2LDQ3MDI3LDQ3MDMwLDQ3MDMxLDQ3MDMzLDQ3MDM0LDQ3MDM1LDQ3MDM2LDQ3MDM3LDQ3MDM4LDQ3MDM5LDQ3MDQwLDQ3MDQxLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDQ3MDQyLDQ3MDQzLDQ3''@;'; + put 'put ''MDQ0LDQ3MDQ1LDQ3MDQ2LDQ3MDQ4LDQ3MDUwLDQ3MDUxLDQ3MDUyLDQ3MDUzLDQ3MDU0LDQ3MDU1LDQ3MDU2LDQ3MDU3LDQ3MDU4LDQ3MDU5LDQ3MDYwLDQ3MDYxLDQ3MDYyLDQ3MDYzLDQ3MDY0LDQ3MDY1LDQ3MDY2LDQ3MDY3LDQ3MDY4LDQ3MDY5LG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLDQ3MDcwLDQ3MDcxLDQ3MDcyLDQ3MDczLDQ3MDc0LDQ3MDc1LDQ3MDc2LDQ3MDc3LDQ3MDc4LDQ3MDc5LDQ3MDgwLDQ3MDgxLDQ3MDgyLDQ3MDgzLDQ3MDg2LDQ3MDg3LDQ3MDg5LDQ3MDkwLDQ3MDkxLDQ3MDkzLDQ3MDk0LDQ3MDk1LDQ3MDk2LDQ3MDk3LDQ3MDk4LDQ3MDk5LDQ3''@;'; + put 'put ''MTAyLDQ3MTA2LDQ3MTA3LDQ3MTA4LDQ3MTA5LDQ3MTEwLDQ3MTE0LDQ3MTE1LDQ3MTE3LDQ3MTE4LDQ3MTE5LDQ3MTIxLDQ3MTIyLDQ3MTIzLDQ3MTI0LDQ3MTI1LDQ3MTI2LDQ3MTI3LDQ3MTMwLDQ3MTMyLDQ3MTM0LDQ3MTM1LDQ3MTM2LDQ3MTM3LDQ3MTM4LDQ3MTM5LDQ3MTQyLDQ3MTQz''@;'; + put 'put ''LDQ3MTQ1LDQ3MTQ2LDQ3MTQ3LDQ3MTQ5LDQ3MTUwLDQ3MTUxLDQ3MTUyLDQ3MTUzLDQ3MTU0LDQ3MTU1LDQ3MTU4LDQ3MTYyLDQ3MTYzLDQ3MTY0LDQ3MTY1LDQ3MTY2LDQ3MTY3LDQ3MTY5LDQ3MTcwLDQ3MTcxLDQ3MTczLDQ3MTc0LDQ3MTc1LDQ3MTc2LDQ3MTc3LDQ3MTc4LDQ3MTc5LDQ3''@;'; + put 'put ''MTgwLDQ3MTgxLDQ3MTgyLDQ3MTgzLDQ3MTg0LDQ3MTg2LDQ3MTg4LDQ3MTg5LDQ3MTkwLDQ3MTkxLDQ3MTkyLDQ3MTkzLDQ3MTk0LDQ3MTk1LDQ3MTk4LDQ3MTk5LDQ3MjAxLDQ3MjAyLDQ3MjAzLDQ3MjA1LDQ3MjA2LDQ3MjA3LDQ3MjA4LDQ3MjA5LDQ3MjEwLDQ3MjExLDQ3MjE0LDQ3MjE2''@;'; + put 'put ''LDQ3MjE4LDQ3MjE5LDQ3MjIwLDQ3MjIxLDQ3MjIyLDQ3MjIzLDQ3MjI1LDQ3MjI2LDQ3MjI3LDQ3MjI5LDQ3MjMwLDQ3MjMxLDQ3MjMyLDQ3MjMzLDQ3MjM0LDQ3MjM1LDQ3MjM2LDQ3MjM3LDQ3MjM4LDQ3MjM5LDQ3MjQwLDQ3MjQxLDQ3MjQyLDQ3MjQzLDQ3MjQ0LDQ3MjQ2LDQ3MjQ3LDQ3''@;'; + put 'put ''MjQ4LDQ3MjQ5LDQ3MjUwLDQ3MjUxLDQ3MjUyLDQ3MjUzLDQ3MjU0LDQ3MjU1LDQ3MjU2LDQ3MjU3LDQ3MjU4LDQ3MjU5LDQ3MjYwLDQ3MjYxLDQ3MjYyLDQ3MjYzLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDQ3MjY0LDQ3MjY1LDQ3MjY2LDQ3MjY3LDQ3MjY4LDQ3MjY5LDQ3Mjcw''@;'; + put 'put ''LDQ3MjcxLDQ3MjczLDQ3Mjc0LDQ3Mjc1LDQ3Mjc2LDQ3Mjc3LDQ3Mjc4LDQ3Mjc5LDQ3MjgxLDQ3MjgyLDQ3MjgzLDQ3Mjg1LDQ3Mjg2LDQ3Mjg3LDQ3Mjg5LDQ3MjkwLDQ3MjkxLDQ3MjkyLDQ3MjkzLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDQ3Mjk0LDQ3Mjk1LDQ3Mjk4LDQ3''@;'; + put 'put ''MzAwLDQ3MzAyLDQ3MzAzLDQ3MzA0LDQ3MzA1LDQ3MzA2LDQ3MzA3LDQ3MzA5LDQ3MzEwLDQ3MzExLDQ3MzEzLDQ3MzE0LDQ3MzE1LDQ3MzE3LDQ3MzE4LDQ3MzE5LDQ3MzIwLDQ3MzIxLDQ3MzIyLDQ3MzIzLDQ3MzI0LDQ3MzI2LDQ3MzI4LDQ3MzMwLDQ3MzMxLDQ3MzMyLDQ3MzMzLDQ3MzM0''@;'; + put 'put ''LDQ3MzM1LDQ3MzM4LDQ3MzM5LDQ3MzQxLDQ3MzQyLDQ3MzQzLDQ3MzQ1LDQ3MzQ2LDQ3MzQ3LDQ3MzQ4LDQ3MzQ5LDQ3MzUwLDQ3MzUxLDQ3MzU0LDQ3MzU2LDQ3MzU4LDQ3MzU5LDQ3MzYwLDQ3MzYxLDQ3MzYyLDQ3MzYzLDQ3MzY1LDQ3MzY2LDQ3MzY3LDQ3MzY4LDQ3MzY5LDQ3MzcwLDQ3''@;'; + put 'put ''MzcxLDQ3MzcyLDQ3MzczLDQ3Mzc0LDQ3Mzc1LDQ3Mzc2LDQ3Mzc3LDQ3Mzc4LDQ3Mzc5LDQ3MzgwLDQ3MzgxLDQ3MzgyLDQ3MzgzLDQ3Mzg1LDQ3Mzg2LDQ3Mzg3LDQ3Mzg4LDQ3Mzg5LDQ3MzkwLDQ3MzkxLDQ3MzkzLDQ3Mzk0LDQ3Mzk1LDQ3Mzk2LDQ3Mzk3LDQ3Mzk4LDQ3Mzk5LDQ3NDAw''@;'; + put 'put ''LDQ3NDAxLDQ3NDAyLDQ3NDAzLDQ3NDA0LDQ3NDA1LDQ3NDA2LDQ3NDA3LDQ3NDA4LDQ3NDA5LDQ3NDEwLDQ3NDExLDQ3NDEyLDQ3NDEzLDQ3NDE0LDQ3NDE1LDQ3NDE2LDQ3NDE3LDQ3NDE4LDQ3NDE5LDQ3NDIyLDQ3NDIzLDQ3NDI1LDQ3NDI2LDQ3NDI3LDQ3NDI5LDQ3NDMwLDQ3NDMxLDQ3''@;'; + put 'put ''NDMyLDQ3NDMzLDQ3NDM0LDQ3NDM1LDQ3NDM3LDQ3NDM4LDQ3NDQwLDQ3NDQyLDQ3NDQzLDQ3NDQ0LDQ3NDQ1LDQ3NDQ2LDQ3NDQ3LDQ3NDUwLDQ3NDUxLDQ3NDUzLDQ3NDU0LDQ3NDU1LDQ3NDU3LDQ3NDU4LDQ3NDU5LDQ3NDYwLDQ3NDYxLDQ3NDYyLDQ3NDYzLDQ3NDY2LDQ3NDY4LDQ3NDcw''@;'; + put 'put ''LDQ3NDcxLDQ3NDcyLDQ3NDczLDQ3NDc0LDQ3NDc1LDQ3NDc4LDQ3NDc5LDQ3NDgxLDQ3NDgyLDQ3NDgzLDQ3NDg1LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDQ3NDg2LDQ3NDg3LDQ3NDg4LDQ3NDg5LDQ3NDkwLDQ3NDkxLDQ3NDk0LDQ3NDk2LDQ3NDk5LDQ3NTAwLDQ3NTAzLDQ3''@;'; + put 'put ''NTA0LDQ3NTA1LDQ3NTA2LDQ3NTA3LDQ3NTA4LDQ3NTA5LDQ3NTEwLDQ3NTExLDQ3NTEyLDQ3NTEzLDQ3NTE0LDQ3NTE1LDQ3NTE2LDQ3NTE3LDQ3NTE4LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDQ3NTE5LDQ3NTIwLDQ3NTIxLDQ3NTIyLDQ3NTIzLDQ3NTI0LDQ3NTI1LDQ3NTI2''@;'; + put 'put ''LDQ3NTI3LDQ3NTI4LDQ3NTI5LDQ3NTMwLDQ3NTMxLDQ3NTM0LDQ3NTM1LDQ3NTM3LDQ3NTM4LDQ3NTM5LDQ3NTQxLDQ3NTQyLDQ3NTQzLDQ3NTQ0LDQ3NTQ1LDQ3NTQ2LDQ3NTQ3LDQ3NTUwLDQ3NTUyLDQ3NTU0LDQ3NTU1LDQ3NTU2LDQ3NTU3LDQ3NTU4LDQ3NTU5LDQ3NTYyLDQ3NTYzLDQ3''@;'; + put 'put ''NTY1LDQ3NTcxLDQ3NTcyLDQ3NTczLDQ3NTc0LDQ3NTc1LDQ3NTc4LDQ3NTgwLDQ3NTgzLDQ3NTg0LDQ3NTg2LDQ3NTkwLDQ3NTkxLDQ3NTkzLDQ3NTk0LDQ3NTk1LDQ3NTk3LDQ3NTk4LDQ3NTk5LDQ3NjAwLDQ3NjAxLDQ3NjAyLDQ3NjAzLDQ3NjA2LDQ3NjExLDQ3NjEyLDQ3NjEzLDQ3NjE0''@;'; + put 'put ''LDQ3NjE1LDQ3NjE4LDQ3NjE5LDQ3NjIwLDQ3NjIxLDQ3NjIyLDQ3NjIzLDQ3NjI1LDQ3NjI2LDQ3NjI3LDQ3NjI4LDQ3NjI5LDQ3NjMwLDQ3NjMxLDQ3NjMyLDQ3NjMzLDQ3NjM0LDQ3NjM1LDQ3NjM2LDQ3NjM4LDQ3NjM5LDQ3NjQwLDQ3NjQxLDQ3NjQyLDQ3NjQzLDQ3NjQ0LDQ3NjQ1LDQ3''@;'; + put 'put ''NjQ2LDQ3NjQ3LDQ3NjQ4LDQ3NjQ5LDQ3NjUwLDQ3NjUxLDQ3NjUyLDQ3NjUzLDQ3NjU0LDQ3NjU1LDQ3NjU2LDQ3NjU3LDQ3NjU4LDQ3NjU5LDQ3NjYwLDQ3NjYxLDQ3NjYyLDQ3NjYzLDQ3NjY0LDQ3NjY1LDQ3NjY2LDQ3NjY3LDQ3NjY4LDQ3NjY5LDQ3NjcwLDQ3NjcxLDQ3Njc0LDQ3Njc1''@;'; + put 'put ''LDQ3Njc3LDQ3Njc4LDQ3Njc5LDQ3NjgxLDQ3NjgzLDQ3Njg0LDQ3Njg1LDQ3Njg2LDQ3Njg3LDQ3NjkwLDQ3NjkyLDQ3Njk1LDQ3Njk2LDQ3Njk3LDQ3Njk4LDQ3NzAyLDQ3NzAzLDQ3NzA1LDQ3NzA2LDQ3NzA3LDQ3NzA5LDQ3NzEwLDQ3NzExLDQ3NzEyLDQ3NzEzLDQ3NzE0LDQ3NzE1LDQ3''@;'; + put 'put ''NzE4LDQ3NzIyLDQ3NzIzLDQ3NzI0LDQ3NzI1LDQ3NzI2LDQ3NzI3LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDQ3NzMwLDQ3NzMxLDQ3NzMzLDQ3NzM0LDQ3NzM1LDQ3NzM3LDQ3NzM4LDQ3NzM5LDQ3NzQwLDQ3NzQxLDQ3NzQyLDQ3NzQzLDQ3NzQ0LDQ3NzQ1LDQ3NzQ2LDQ3NzUw''@;'; + put 'put ''LDQ3NzUyLDQ3NzUzLDQ3NzU0LDQ3NzU1LDQ3NzU3LDQ3NzU4LDQ3NzU5LDQ3NzYwLDQ3NzYxLDQ3NzYyLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDQ3NzYzLDQ3NzY0LDQ3NzY1LDQ3NzY2LDQ3NzY3LDQ3NzY4LDQ3NzY5LDQ3NzcwLDQ3NzcxLDQ3NzcyLDQ3NzczLDQ3Nzc0LDQ3''@;'; + put 'put ''Nzc1LDQ3Nzc2LDQ3Nzc3LDQ3Nzc4LDQ3Nzc5LDQ3NzgwLDQ3NzgxLDQ3NzgyLDQ3NzgzLDQ3Nzg2LDQ3Nzg5LDQ3NzkwLDQ3NzkxLDQ3NzkzLDQ3Nzk1LDQ3Nzk2LDQ3Nzk3LDQ3Nzk4LDQ3Nzk5LDQ3ODAyLDQ3ODA0LDQ3ODA2LDQ3ODA3LDQ3ODA4LDQ3ODA5LDQ3ODEwLDQ3ODExLDQ3ODEz''@;'; + put 'put ''LDQ3ODE0LDQ3ODE1LDQ3ODE3LDQ3ODE4LDQ3ODE5LDQ3ODIwLDQ3ODIxLDQ3ODIyLDQ3ODIzLDQ3ODI0LDQ3ODI1LDQ3ODI2LDQ3ODI3LDQ3ODI4LDQ3ODI5LDQ3ODMwLDQ3ODMxLDQ3ODM0LDQ3ODM1LDQ3ODM2LDQ3ODM3LDQ3ODM4LDQ3ODM5LDQ3ODQwLDQ3ODQxLDQ3ODQyLDQ3ODQzLDQ3''@;'; + put 'put ''ODQ0LDQ3ODQ1LDQ3ODQ2LDQ3ODQ3LDQ3ODQ4LDQ3ODQ5LDQ3ODUwLDQ3ODUxLDQ3ODUyLDQ3ODUzLDQ3ODU0LDQ3ODU1LDQ3ODU2LDQ3ODU3LDQ3ODU4LDQ3ODU5LDQ3ODYwLDQ3ODYxLDQ3ODYyLDQ3ODYzLDQ3ODY0LDQ3ODY1LDQ3ODY2LDQ3ODY3LDQ3ODY5LDQ3ODcwLDQ3ODcxLDQ3ODcz''@;'; + put 'put ''LDQ3ODc0LDQ3ODc1LDQ3ODc3LDQ3ODc4LDQ3ODc5LDQ3ODgwLDQ3ODgxLDQ3ODgyLDQ3ODgzLDQ3ODg0LDQ3ODg2LDQ3ODg4LDQ3ODkwLDQ3ODkxLDQ3ODkyLDQ3ODkzLDQ3ODk0LDQ3ODk1LDQ3ODk3LDQ3ODk4LDQ3ODk5LDQ3OTAxLDQ3OTAyLDQ3OTAzLDQ3OTA1LDQ3OTA2LDQ3OTA3LDQ3''@;'; + put 'put ''OTA4LDQ3OTA5LDQ3OTEwLDQ3OTExLDQ3OTEyLDQ3OTE0LDQ3OTE2LDQ3OTE3LDQ3OTE4LDQ3OTE5LDQ3OTIwLDQ3OTIxLDQ3OTIyLDQ3OTIzLDQ3OTI3LDQ3OTI5LDQ3OTMwLDQ3OTM1LDQ3OTM2LDQ3OTM3LDQ3OTM4LDQ3OTM5LDQ3OTQyLDQ3OTQ0LDQ3OTQ2LDQ3OTQ3LDQ3OTQ4LDQ3OTUw''@;'; + put 'put ''LDQ3OTUzLDQ3OTU0LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDQ3OTU1LDQ3OTU3LDQ3OTU4LDQ3OTU5LDQ3OTYxLDQ3OTYyLDQ3OTYzLDQ3OTY0LDQ3OTY1LDQ3OTY2LDQ3OTY3LDQ3OTY4LDQ3OTcwLDQ3OTcyLDQ3OTczLDQ3OTc0LDQ3OTc1LDQ3OTc2LDQ3OTc3LDQ3OTc4LDQ3''@;'; + put 'put ''OTc5LDQ3OTgxLDQ3OTgyLDQ3OTgzLDQ3OTg0LDQ3OTg1LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDQ3OTg2LDQ3OTg3LDQ3OTg4LDQ3OTg5LDQ3OTkwLDQ3OTkxLDQ3OTkyLDQ3OTkzLDQ3OTk0LDQ3OTk1LDQ3OTk2LDQ3OTk3LDQ3OTk4LDQ3OTk5LDQ4ZTMsNDgwMDEsNDgwMDIs''@;'; + put 'put ''NDgwMDMsNDgwMDQsNDgwMDUsNDgwMDYsNDgwMDcsNDgwMDksNDgwMTAsNDgwMTEsNDgwMTMsNDgwMTQsNDgwMTUsNDgwMTcsNDgwMTgsNDgwMTksNDgwMjAsNDgwMjEsNDgwMjIsNDgwMjMsNDgwMjQsNDgwMjUsNDgwMjYsNDgwMjcsNDgwMjgsNDgwMjksNDgwMzAsNDgwMzEsNDgwMzIsNDgw''@;'; + put 'put ''MzMsNDgwMzQsNDgwMzUsNDgwMzcsNDgwMzgsNDgwMzksNDgwNDEsNDgwNDIsNDgwNDMsNDgwNDUsNDgwNDYsNDgwNDcsNDgwNDgsNDgwNDksNDgwNTAsNDgwNTEsNDgwNTMsNDgwNTQsNDgwNTYsNDgwNTcsNDgwNTgsNDgwNTksNDgwNjAsNDgwNjEsNDgwNjIsNDgwNjMsNDgwNjUsNDgwNjYs''@;'; + put 'put ''NDgwNjcsNDgwNjksNDgwNzAsNDgwNzEsNDgwNzMsNDgwNzQsNDgwNzUsNDgwNzYsNDgwNzcsNDgwNzgsNDgwNzksNDgwODEsNDgwODIsNDgwODQsNDgwODUsNDgwODYsNDgwODcsNDgwODgsNDgwODksNDgwOTAsNDgwOTEsNDgwOTIsNDgwOTMsNDgwOTQsNDgwOTUsNDgwOTYsNDgwOTcsNDgw''@;'; + put 'put ''OTgsNDgwOTksNDgxMDAsNDgxMDEsNDgxMDIsNDgxMDMsNDgxMDQsNDgxMDUsNDgxMDYsNDgxMDcsNDgxMDgsNDgxMDksNDgxMTAsNDgxMTEsNDgxMTIsNDgxMTMsNDgxMTQsNDgxMTUsNDgxMTYsNDgxMTcsNDgxMTgsNDgxMTksNDgxMjIsNDgxMjMsNDgxMjUsNDgxMjYsNDgxMjksNDgxMzEs''@;'; + put 'put ''NDgxMzIsNDgxMzMsNDgxMzQsNDgxMzUsNDgxMzgsNDgxNDIsNDgxNDQsNDgxNDYsNDgxNDcsNDgxNTMsNDgxNTQsNDgxNjAsNDgxNjEsNDgxNjIsNDgxNjMsNDgxNjYsNDgxNjgsNDgxNzAsNDgxNzEsNDgxNzIsNDgxNzQsNDgxNzUsNDgxNzgsNDgxNzksNDgxODEsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsNDgxODIsNDgxODMsNDgxODUsNDgxODYsNDgxODcsNDgxODgsNDgxODksNDgxOTAsNDgxOTEsNDgxOTQsNDgxOTgsNDgxOTksNDgyMDAsNDgyMDIsNDgyMDMsNDgyMDYsNDgyMDcsNDgyMDksNDgyMTAsNDgyMTEsNDgyMTIsNDgyMTMsNDgyMTQsNDgyMTUsNDgyMTYs''@;'; + put 'put ''NDgyMTcsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNDgyMTgsNDgyMTksNDgyMjAsNDgyMjIsNDgyMjMsNDgyMjQsNDgyMjUsNDgyMjYsNDgyMjcsNDgyMjgsNDgyMjksNDgyMzAsNDgyMzEsNDgyMzIsNDgyMzMsNDgyMzQsNDgyMzUsNDgyMzYsNDgyMzcsNDgyMzgsNDgyMzksNDgy''@;'; + put 'put ''NDAsNDgyNDEsNDgyNDIsNDgyNDMsNDgyNDQsNDgyNDUsNDgyNDYsNDgyNDcsNDgyNDgsNDgyNDksNDgyNTAsNDgyNTEsNDgyNTIsNDgyNTMsNDgyNTQsNDgyNTUsNDgyNTYsNDgyNTcsNDgyNTgsNDgyNTksNDgyNjIsNDgyNjMsNDgyNjUsNDgyNjYsNDgyNjksNDgyNzEsNDgyNzIsNDgyNzMs''@;'; + put 'put ''NDgyNzQsNDgyNzUsNDgyNzgsNDgyODAsNDgyODMsNDgyODQsNDgyODUsNDgyODYsNDgyODcsNDgyOTAsNDgyOTEsNDgyOTMsNDgyOTQsNDgyOTcsNDgyOTgsNDgyOTksNDgzMDAsNDgzMDEsNDgzMDIsNDgzMDMsNDgzMDYsNDgzMTAsNDgzMTEsNDgzMTIsNDgzMTMsNDgzMTQsNDgzMTUsNDgz''@;'; + put 'put ''MTgsNDgzMTksNDgzMjEsNDgzMjIsNDgzMjMsNDgzMjUsNDgzMjYsNDgzMjcsNDgzMjgsNDgzMjksNDgzMzAsNDgzMzEsNDgzMzIsNDgzMzQsNDgzMzgsNDgzMzksNDgzNDAsNDgzNDIsNDgzNDMsNDgzNDUsNDgzNDYsNDgzNDcsNDgzNDksNDgzNTAsNDgzNTEsNDgzNTIsNDgzNTMsNDgzNTQs''@;'; + put 'put ''NDgzNTUsNDgzNTYsNDgzNTcsNDgzNTgsNDgzNTksNDgzNjAsNDgzNjEsNDgzNjIsNDgzNjMsNDgzNjQsNDgzNjUsNDgzNjYsNDgzNjcsNDgzNjgsNDgzNjksNDgzNzAsNDgzNzEsNDgzNzUsNDgzNzcsNDgzNzgsNDgzNzksNDgzODEsNDgzODIsNDgzODMsNDgzODQsNDgzODUsNDgzODYsNDgz''@;'; + put 'put ''ODcsNDgzOTAsNDgzOTIsNDgzOTQsNDgzOTUsNDgzOTYsNDgzOTcsNDgzOTgsNDgzOTksNDg0MDEsNDg0MDIsNDg0MDMsNDg0MDUsNDg0MDYsNDg0MDcsNDg0MDgsNDg0MDksNDg0MTAsNDg0MTEsNDg0MTIsNDg0MTMsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNDg0MTQsNDg0MTUs''@;'; + put 'put ''NDg0MTYsNDg0MTcsNDg0MTgsNDg0MTksNDg0MjEsNDg0MjIsNDg0MjMsNDg0MjQsNDg0MjUsNDg0MjYsNDg0MjcsNDg0MjksNDg0MzAsNDg0MzEsNDg0MzIsNDg0MzMsNDg0MzQsNDg0MzUsNDg0MzYsNDg0MzcsNDg0MzgsNDg0MzksNDg0NDAsNDg0NDEsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsNDg0NDIsNDg0NDMsNDg0NDQsNDg0NDUsNDg0NDYsNDg0NDcsNDg0NDksNDg0NTAsNDg0NTEsNDg0NTIsNDg0NTMsNDg0NTQsNDg0NTUsNDg0NTgsNDg0NTksNDg0NjEsNDg0NjIsNDg0NjMsNDg0NjUsNDg0NjYsNDg0NjcsNDg0NjgsNDg0NjksNDg0NzAsNDg0NzEsNDg0NzQs''@;'; + put 'put ''NDg0NzUsNDg0NzYsNDg0NzcsNDg0NzgsNDg0NzksNDg0ODAsNDg0ODEsNDg0ODIsNDg0ODMsNDg0ODUsNDg0ODYsNDg0ODcsNDg0ODksNDg0OTAsNDg0OTEsNDg0OTIsNDg0OTMsNDg0OTQsNDg0OTUsNDg0OTYsNDg0OTcsNDg0OTgsNDg0OTksNDg1MDAsNDg1MDEsNDg1MDIsNDg1MDMsNDg1''@;'; + put 'put ''MDQsNDg1MDUsNDg1MDYsNDg1MDcsNDg1MDgsNDg1MDksNDg1MTAsNDg1MTEsNDg1MTQsNDg1MTUsNDg1MTcsNDg1MTgsNDg1MjMsNDg1MjQsNDg1MjUsNDg1MjYsNDg1MjcsNDg1MzAsNDg1MzIsNDg1MzQsNDg1MzUsNDg1MzYsNDg1MzksNDg1NDEsNDg1NDIsNDg1NDMsNDg1NDQsNDg1NDUs''@;'; + put 'put ''NDg1NDYsNDg1NDcsNDg1NDksNDg1NTAsNDg1NTEsNDg1NTIsNDg1NTMsNDg1NTQsNDg1NTUsNDg1NTYsNDg1NTcsNDg1NTgsNDg1NTksNDg1NjEsNDg1NjIsNDg1NjMsNDg1NjQsNDg1NjUsNDg1NjYsNDg1NjcsNDg1NjksNDg1NzAsNDg1NzEsNDg1NzIsNDg1NzMsNDg1NzQsNDg1NzUsNDg1''@;'; + put 'put ''NzYsNDg1NzcsNDg1NzgsNDg1NzksNDg1ODAsNDg1ODEsNDg1ODIsNDg1ODMsNDg1ODQsNDg1ODUsNDg1ODYsNDg1ODcsNDg1ODgsNDg1ODksNDg1OTAsNDg1OTEsNDg1OTIsNDg1OTMsNDg1OTQsNDg1OTUsNDg1OTgsNDg1OTksNDg2MDEsNDg2MDIsNDg2MDMsNDg2MDUsNDg2MDYsNDg2MDcs''@;'; + put 'put ''NDg2MDgsNDg2MDksNDg2MTAsNDg2MTEsNDg2MTIsNDg2MTMsNDg2MTQsNDg2MTUsNDg2MTYsNDg2MTgsNDg2MTksNDg2MjAsNDg2MjEsNDg2MjIsNDg2MjMsNDg2MjUsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNDg2MjYsNDg2MjcsNDg2MjksNDg2MzAsNDg2MzEsNDg2MzMsNDg2''@;'; + put 'put ''MzQsNDg2MzUsNDg2MzYsNDg2MzcsNDg2MzgsNDg2MzksNDg2NDEsNDg2NDIsNDg2NDQsNDg2NDYsNDg2NDcsNDg2NDgsNDg2NDksNDg2NTAsNDg2NTEsNDg2NTQsNDg2NTUsNDg2NTcsNDg2NTgsNDg2NTksbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNDg2NjEsNDg2NjIsNDg2NjMs''@;'; + put 'put ''NDg2NjQsNDg2NjUsNDg2NjYsNDg2NjcsNDg2NzAsNDg2NzIsNDg2NzMsNDg2NzQsNDg2NzUsNDg2NzYsNDg2NzcsNDg2NzgsNDg2NzksNDg2ODAsNDg2ODEsNDg2ODIsNDg2ODMsNDg2ODQsNDg2ODUsNDg2ODYsNDg2ODcsNDg2ODgsNDg2ODksNDg2OTAsNDg2OTEsNDg2OTIsNDg2OTMsNDg2''@;'; + put 'put ''OTQsNDg2OTUsNDg2OTYsNDg2OTcsNDg2OTgsNDg2OTksNDg3MDAsNDg3MDEsNDg3MDIsNDg3MDMsNDg3MDQsNDg3MDUsNDg3MDYsNDg3MDcsNDg3MTAsNDg3MTEsNDg3MTMsNDg3MTQsNDg3MTUsNDg3MTcsNDg3MTksNDg3MjAsNDg3MjEsNDg3MjIsNDg3MjMsNDg3MjYsNDg3MjgsNDg3MzIs''@;'; + put 'put ''NDg3MzMsNDg3MzQsNDg3MzUsNDg3MzgsNDg3MzksNDg3NDEsNDg3NDIsNDg3NDMsNDg3NDUsNDg3NDcsNDg3NDgsNDg3NDksNDg3NTAsNDg3NTEsNDg3NTQsNDg3NTgsNDg3NTksNDg3NjAsNDg3NjEsNDg3NjIsNDg3NjYsNDg3NjcsNDg3NjksNDg3NzAsNDg3NzEsNDg3NzMsNDg3NzQsNDg3''@;'; + put 'put ''NzUsNDg3NzYsNDg3NzcsNDg3NzgsNDg3NzksNDg3ODIsNDg3ODYsNDg3ODcsNDg3ODgsNDg3ODksNDg3OTAsNDg3OTEsNDg3OTQsNDg3OTUsNDg3OTYsNDg3OTcsNDg3OTgsNDg3OTksNDg4MDAsNDg4MDEsNDg4MDIsNDg4MDMsNDg4MDQsNDg4MDUsNDg4MDYsNDg4MDcsNDg4MDksNDg4MTAs''@;'; + put 'put ''NDg4MTEsNDg4MTIsNDg4MTMsNDg4MTQsNDg4MTUsNDg4MTYsNDg4MTcsNDg4MTgsNDg4MTksNDg4MjAsNDg4MjEsNDg4MjIsNDg4MjMsNDg4MjQsNDg4MjUsNDg4MjYsNDg4MjcsNDg4MjgsNDg4MjksNDg4MzAsNDg4MzEsNDg4MzIsNDg4MzMsNDg4MzQsNDg4MzUsNDg4MzYsNDg4MzcsNDg4''@;'; + put 'put ''MzgsNDg4MzksNDg4NDAsNDg4NDEsNDg4NDIsNDg4NDMsNDg4NDQsNDg4NDUsNDg4NDYsNDg4NDcsNDg4NTAsNDg4NTEsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNDg4NTMsNDg4NTQsNDg4NTcsNDg4NTgsNDg4NTksNDg4NjAsNDg4NjEsNDg4NjIsNDg4NjMsNDg4NjUsNDg4NjYs''@;'; + put 'put ''NDg4NzAsNDg4NzEsNDg4NzIsNDg4NzMsNDg4NzQsNDg4NzUsNDg4NzcsNDg4NzgsNDg4NzksNDg4ODAsNDg4ODEsNDg4ODIsNDg4ODMsNDg4ODQsNDg4ODUsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNDg4ODYsNDg4ODcsNDg4ODgsNDg4ODksNDg4OTAsNDg4OTEsNDg4OTIsNDg4''@;'; + put 'put ''OTMsNDg4OTQsNDg4OTUsNDg4OTYsNDg4OTgsNDg4OTksNDg5MDAsNDg5MDEsNDg5MDIsNDg5MDMsNDg5MDYsNDg5MDcsNDg5MDgsNDg5MDksNDg5MTAsNDg5MTEsNDg5MTIsNDg5MTMsNDg5MTQsNDg5MTUsNDg5MTYsNDg5MTcsNDg5MTgsNDg5MTksNDg5MjIsNDg5MjYsNDg5MjcsNDg5Mjgs''@;'; + put 'put ''NDg5MjksNDg5MzAsNDg5MzEsNDg5MzIsNDg5MzMsNDg5MzQsNDg5MzUsNDg5MzYsNDg5MzcsNDg5MzgsNDg5MzksNDg5NDAsNDg5NDEsNDg5NDIsNDg5NDMsNDg5NDQsNDg5NDUsNDg5NDYsNDg5NDcsNDg5NDgsNDg5NDksNDg5NTAsNDg5NTEsNDg5NTIsNDg5NTMsNDg5NTQsNDg5NTUsNDg5''@;'; + put 'put ''NTYsNDg5NTcsNDg5NTgsNDg5NTksNDg5NjIsNDg5NjMsNDg5NjUsNDg5NjYsNDg5NjcsNDg5NjksNDg5NzAsNDg5NzEsNDg5NzIsNDg5NzMsNDg5NzQsNDg5NzUsNDg5NzgsNDg5NzksNDg5ODAsNDg5ODIsNDg5ODMsNDg5ODQsNDg5ODUsNDg5ODYsNDg5ODcsNDg5ODgsNDg5ODksNDg5OTAs''@;'; + put 'put ''NDg5OTEsNDg5OTIsNDg5OTMsNDg5OTQsNDg5OTUsNDg5OTYsNDg5OTcsNDg5OTgsNDg5OTksNDllMyw0OTAwMSw0OTAwMiw0OTAwMyw0OTAwNCw0OTAwNSw0OTAwNiw0OTAwNyw0OTAwOCw0OTAwOSw0OTAxMCw0OTAxMSw0OTAxMiw0OTAxMyw0OTAxNCw0OTAxNSw0OTAxNiw0OTAxNyw0OTAx''@;'; + put 'put ''OCw0OTAxOSw0OTAyMCw0OTAyMSw0OTAyMiw0OTAyMyw0OTAyNCw0OTAyNSw0OTAyNiw0OTAyNyw0OTAyOCw0OTAyOSw0OTAzMCw0OTAzMSw0OTAzMiw0OTAzMyw0OTAzNCw0OTAzNSw0OTAzNiw0OTAzNyw0OTAzOCw0OTAzOSw0OTA0MCw0OTA0MSw0OTA0Miw0OTA0Myw0OTA0NSw0OTA0Niw0''@;'; + put 'put ''OTA0Nyw0OTA0OCw0OTA0OSw0OTA1MCw0OTA1MSw0OTA1Miw0OTA1MyxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw0OTA1NCw0OTA1NSw0OTA1Niw0OTA1Nyw0OTA1OCw0OTA1OSw0OTA2MCw0OTA2MSw0OTA2Miw0OTA2Myw0OTA2NCw0OTA2NSw0OTA2Niw0OTA2Nyw0OTA2OCw0OTA2''@;'; + put 'put ''OSw0OTA3MCw0OTA3MSw0OTA3Myw0OTA3NCw0OTA3NSw0OTA3Niw0OTA3Nyw0OTA3OCw0OTA3OSw0OTA4MCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw0OTA4MSw0OTA4Miw0OTA4Myw0OTA4NCw0OTA4NSw0OTA4Niw0OTA4Nyw0OTA4OCw0OTA4OSw0OTA5MCw0OTA5MSw0OTA5Miw0''@;'; + put 'put ''OTA5NCw0OTA5NSw0OTA5Niw0OTA5Nyw0OTA5OCw0OTA5OSw0OTEwMiw0OTEwMyw0OTEwNSw0OTEwNiw0OTEwNyw0OTEwOSw0OTExMCw0OTExMSw0OTExMiw0OTExMyw0OTExNCw0OTExNSw0OTExNyw0OTExOCw0OTEyMCw0OTEyMiw0OTEyMyw0OTEyNCw0OTEyNSw0OTEyNiw0OTEyNyw0OTEy''@;'; + put 'put ''OCw0OTEyOSw0OTEzMCw0OTEzMSw0OTEzMiw0OTEzMyw0OTEzNCw0OTEzNSw0OTEzNiw0OTEzNyw0OTEzOCw0OTEzOSw0OTE0MCw0OTE0MSw0OTE0Miw0OTE0Myw0OTE0NCw0OTE0NSw0OTE0Niw0OTE0Nyw0OTE0OCw0OTE0OSw0OTE1MCw0OTE1MSw0OTE1Miw0OTE1Myw0OTE1NCw0OTE1NSw0''@;'; + put 'put ''OTE1Niw0OTE1Nyw0OTE1OCw0OTE1OSw0OTE2MCw0OTE2MSw0OTE2Miw0OTE2Myw0OTE2NCw0OTE2NSw0OTE2Niw0OTE2Nyw0OTE2OCw0OTE2OSw0OTE3MCw0OTE3MSw0OTE3Miw0OTE3Myw0OTE3NCw0OTE3NSw0OTE3Niw0OTE3Nyw0OTE3OCw0OTE3OSw0OTE4MCw0OTE4MSw0OTE4Miw0OTE4''@;'; + put 'put ''Myw0OTE4NCw0OTE4NSw0OTE4Niw0OTE4Nyw0OTE4OCw0OTE4OSw0OTE5MCw0OTE5MSw0OTE5Miw0OTE5Myw0OTE5NCw0OTE5NSw0OTE5Niw0OTE5Nyw0OTE5OCw0OTE5OSw0OTIwMCw0OTIwMSw0OTIwMiw0OTIwMyw0OTIwNCw0OTIwNSw0OTIwNiw0OTIwNyw0OTIwOCw0OTIwOSw0OTIxMCw0''@;'; + put 'put ''OTIxMSw0OTIxMyw0OTIxNCw0OTIxNSw0OTIxNiw0OTIxNyw0OTIxOCw0OTIxOSw0OTIyMCw0OTIyMSw0OTIyMiw0OTIyMyw0OTIyNCw0OTIyNSw0OTIyNiw0OTIyNyw0OTIyOCw0OTIyOSw0OTIzMCw0OTIzMSw0OTIzMiw0OTIzNCw0OTIzNSw0OTIzNiw0OTIzNyw0OTIzOCw0OTIzOSw0OTI0''@;'; + put 'put ''MSw0OTI0Miw0OTI0MyxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw0OTI0NSw0OTI0Niw0OTI0Nyw0OTI0OSw0OTI1MCw0OTI1MSw0OTI1Miw0OTI1Myw0OTI1NCw0OTI1NSw0OTI1OCw0OTI1OSw0OTI2MCw0OTI2MSw0OTI2Miw0OTI2Myw0OTI2NCw0OTI2NSw0OTI2Niw0OTI2Nyw0''@;'; + put 'put ''OTI2OCw0OTI2OSw0OTI3MCw0OTI3MSw0OTI3Miw0OTI3MyxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw0OTI3NCw0OTI3NSw0OTI3Niw0OTI3Nyw0OTI3OCw0OTI3OSw0OTI4MCw0OTI4MSw0OTI4Miw0OTI4Myw0OTI4NCw0OTI4NSw0OTI4Niw0OTI4Nyw0OTI4OCw0OTI4OSw0OTI5''@;'; + put 'put ''MCw0OTI5MSw0OTI5Miw0OTI5Myw0OTI5NCw0OTI5NSw0OTI5OCw0OTI5OSw0OTMwMSw0OTMwMiw0OTMwMyw0OTMwNSw0OTMwNiw0OTMwNyw0OTMwOCw0OTMwOSw0OTMxMCw0OTMxMSw0OTMxNCw0OTMxNiw0OTMxOCw0OTMxOSw0OTMyMCw0OTMyMSw0OTMyMiw0OTMyMyw0OTMyNiw0OTMyOSw0''@;'; + put 'put ''OTMzMCw0OTMzNSw0OTMzNiw0OTMzNyw0OTMzOCw0OTMzOSw0OTM0Miw0OTM0Niw0OTM0Nyw0OTM0OCw0OTM1MCw0OTM1MSw0OTM1NCw0OTM1NSw0OTM1Nyw0OTM1OCw0OTM1OSw0OTM2MSw0OTM2Miw0OTM2Myw0OTM2NCw0OTM2NSw0OTM2Niw0OTM2Nyw0OTM3MCw0OTM3NCw0OTM3NSw0OTM3''@;'; + put 'put ''Niw0OTM3Nyw0OTM3OCw0OTM3OSw0OTM4Miw0OTM4Myw0OTM4NSw0OTM4Niw0OTM4Nyw0OTM4OSw0OTM5MCw0OTM5MSw0OTM5Miw0OTM5Myw0OTM5NCw0OTM5NSw0OTM5OCw0OTQwMCw0OTQwMiw0OTQwMyw0OTQwNCw0OTQwNSw0OTQwNiw0OTQwNyw0OTQwOSw0OTQxMCw0OTQxMSw0OTQxMyw0''@;'; + put 'put ''OTQxNCw0OTQxNSw0OTQxNyw0OTQxOCw0OTQxOSw0OTQyMCw0OTQyMSw0OTQyMiw0OTQyMyw0OTQyNSw0OTQyNiw0OTQyNyw0OTQyOCw0OTQzMCw0OTQzMSw0OTQzMiw0OTQzMyw0OTQzNCw0OTQzNSw0OTQ0MSw0OTQ0Miw0OTQ0NSw0OTQ0OCw0OTQ0OSw0OTQ1MCw0OTQ1MSw0OTQ1NCw0OTQ1''@;'; + put 'put ''OCw0OTQ1OSw0OTQ2MCw0OTQ2MSw0OTQ2Myw0OTQ2Niw0OTQ2Nyw0OTQ2OSw0OTQ3MCw0OTQ3MSw0OTQ3Myw0OTQ3NCw0OTQ3NSw0OTQ3Niw0OTQ3Nyw0OTQ3OCw0OTQ3OSw0OTQ4Miw0OTQ4Niw0OTQ4Nyw0OTQ4OCw0OTQ4OSw0OTQ5MCw0OTQ5MSw0OTQ5NCw0OTQ5NSxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCw0OTQ5Nyw0OTQ5OCw0OTQ5OSw0OTUwMSw0OTUwMiw0OTUwMyw0OTUwNCw0OTUwNSw0OTUwNiw0OTUwNyw0OTUxMCw0OTUxNCw0OTUxNSw0OTUxNiw0OTUxNyw0OTUxOCw0OTUxOSw0OTUyMSw0OTUyMiw0OTUyMyw0OTUyNSw0OTUyNiw0OTUyNyw0OTUyOSw0OTUz''@;'; + put 'put ''MCw0OTUzMSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw0OTUzMiw0OTUzMyw0OTUzNCw0OTUzNSw0OTUzNiw0OTUzNyw0OTUzOCw0OTUzOSw0OTU0MCw0OTU0Miw0OTU0Myw0OTU0NCw0OTU0NSw0OTU0Niw0OTU0Nyw0OTU1MSw0OTU1Myw0OTU1NCw0OTU1NSw0OTU1Nyw0OTU1OSw0''@;'; + put 'put ''OTU2MCw0OTU2MSw0OTU2Miw0OTU2Myw0OTU2Niw0OTU2OCw0OTU3MCw0OTU3MSw0OTU3Miw0OTU3NCw0OTU3NSw0OTU3OCw0OTU3OSw0OTU4MSw0OTU4Miw0OTU4Myw0OTU4NSw0OTU4Niw0OTU4Nyw0OTU4OCw0OTU4OSw0OTU5MCw0OTU5MSw0OTU5Miw0OTU5Myw0OTU5NCw0OTU5NSw0OTU5''@;'; + put 'put ''Niw0OTU5OCw0OTU5OSw0OTYwMCw0OTYwMSw0OTYwMiw0OTYwMyw0OTYwNSw0OTYwNiw0OTYwNyw0OTYwOSw0OTYxMCw0OTYxMSw0OTYxMyw0OTYxNCw0OTYxNSw0OTYxNiw0OTYxNyw0OTYxOCw0OTYxOSw0OTYyMSw0OTYyMiw0OTYyNSw0OTYyNiw0OTYyNyw0OTYyOCw0OTYyOSw0OTYzMCw0''@;'; + put 'put ''OTYzMSw0OTYzMyw0OTYzNCw0OTYzNSw0OTYzNyw0OTYzOCw0OTYzOSw0OTY0MSw0OTY0Miw0OTY0Myw0OTY0NCw0OTY0NSw0OTY0Niw0OTY0Nyw0OTY1MCw0OTY1Miw0OTY1Myw0OTY1NCw0OTY1NSw0OTY1Niw0OTY1Nyw0OTY1OCw0OTY1OSw0OTY2Miw0OTY2Myw0OTY2NSw0OTY2Niw0OTY2''@;'; + put 'put ''Nyw0OTY2OSw0OTY3MCw0OTY3MSw0OTY3Miw0OTY3Myw0OTY3NCw0OTY3NSw0OTY3OCw0OTY4MCw0OTY4Miw0OTY4Myw0OTY4NCw0OTY4NSw0OTY4Niw0OTY4Nyw0OTY5MCw0OTY5MSw0OTY5Myw0OTY5NCw0OTY5Nyw0OTY5OCw0OTY5OSw0OTcwMCw0OTcwMSw0OTcwMiw0OTcwMyw0OTcwNiw0''@;'; + put 'put ''OTcwOCw0OTcxMCw0OTcxMiw0OTcxNSw0OTcxNyw0OTcxOCw0OTcxOSw0OTcyMCw0OTcyMSw0OTcyMiw0OTcyMyw0OTcyNCw0OTcyNSw0OTcyNiw0OTcyNyw0OTcyOCw0OTcyOSw0OTczMCw0OTczMSw0OTczMiw0OTczMyxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw0OTczNCw0OTcz''@;'; + put 'put ''NSw0OTczNyw0OTczOCw0OTczOSw0OTc0MCw0OTc0MSw0OTc0Miw0OTc0Myw0OTc0Niw0OTc0Nyw0OTc0OSw0OTc1MCw0OTc1MSw0OTc1Myw0OTc1NCw0OTc1NSw0OTc1Niw0OTc1Nyw0OTc1OCw0OTc1OSw0OTc2MSw0OTc2Miw0OTc2Myw0OTc2NCw0OTc2NixudWxsLG51bGwsbnVsbCxudWxs''@;'; + put 'put ''LG51bGwsbnVsbCw0OTc2Nyw0OTc2OCw0OTc2OSw0OTc3MCw0OTc3MSw0OTc3NCw0OTc3NSw0OTc3Nyw0OTc3OCw0OTc3OSw0OTc4MSw0OTc4Miw0OTc4Myw0OTc4NCw0OTc4NSw0OTc4Niw0OTc4Nyw0OTc5MCw0OTc5Miw0OTc5NCw0OTc5NSw0OTc5Niw0OTc5Nyw0OTc5OCw0OTc5OSw0OTgw''@;'; + put 'put ''Miw0OTgwMyw0OTgwNCw0OTgwNSw0OTgwNiw0OTgwNyw0OTgwOSw0OTgxMCw0OTgxMSw0OTgxMiw0OTgxMyw0OTgxNCw0OTgxNSw0OTgxNyw0OTgxOCw0OTgyMCw0OTgyMiw0OTgyMyw0OTgyNCw0OTgyNSw0OTgyNiw0OTgyNyw0OTgzMCw0OTgzMSw0OTgzMyw0OTgzNCw0OTgzNSw0OTgzOCw0''@;'; + put 'put ''OTgzOSw0OTg0MCw0OTg0MSw0OTg0Miw0OTg0Myw0OTg0Niw0OTg0OCw0OTg1MCw0OTg1MSw0OTg1Miw0OTg1Myw0OTg1NCw0OTg1NSw0OTg1Niw0OTg1Nyw0OTg1OCw0OTg1OSw0OTg2MCw0OTg2MSw0OTg2Miw0OTg2Myw0OTg2NCw0OTg2NSw0OTg2Niw0OTg2Nyw0OTg2OCw0OTg2OSw0OTg3''@;'; + put 'put ''MCw0OTg3MSw0OTg3Miw0OTg3Myw0OTg3NCw0OTg3NSw0OTg3Niw0OTg3Nyw0OTg3OCw0OTg3OSw0OTg4MCw0OTg4MSw0OTg4Miw0OTg4Myw0OTg4Niw0OTg4Nyw0OTg4OSw0OTg5MCw0OTg5Myw0OTg5NCw0OTg5NSw0OTg5Niw0OTg5Nyw0OTg5OCw0OTkwMiw0OTkwNCw0OTkwNiw0OTkwNyw0''@;'; + put 'put ''OTkwOCw0OTkwOSw0OTkxMSw0OTkxNCw0OTkxNyw0OTkxOCw0OTkxOSw0OTkyMSw0OTkyMiw0OTkyMyw0OTkyNCw0OTkyNSw0OTkyNiw0OTkyNyw0OTkzMCw0OTkzMSw0OTkzNCw0OTkzNSw0OTkzNiw0OTkzNyw0OTkzOCw0OTk0Miw0OTk0Myw0OTk0NSw0OTk0Niw0OTk0Nyw0OTk0OSw0OTk1''@;'; + put 'put ''MCw0OTk1MSw0OTk1Miw0OTk1Myw0OTk1NCw0OTk1NSw0OTk1OCw0OTk1OSw0OTk2Miw0OTk2Myw0OTk2NCw0OTk2NSw0OTk2Niw0OTk2Nyw0OTk2OCw0OTk2OSw0OTk3MCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw0OTk3MSw0OTk3Miw0OTk3Myw0OTk3NCw0OTk3NSw0OTk3Niw0''@;'; + put 'put ''OTk3Nyw0OTk3OCw0OTk3OSw0OTk4MCw0OTk4MSw0OTk4Miw0OTk4Myw0OTk4NCw0OTk4NSw0OTk4Niw0OTk4Nyw0OTk4OCw0OTk5MCw0OTk5MSw0OTk5Miw0OTk5Myw0OTk5NCw0OTk5NSw0OTk5Niw0OTk5NyxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw0OTk5OCw0OTk5OSw1ZTQs''@;'; + put 'put ''NTAwMDEsNTAwMDIsNTAwMDMsNTAwMDQsNTAwMDUsNTAwMDYsNTAwMDcsNTAwMDgsNTAwMDksNTAwMTAsNTAwMTEsNTAwMTIsNTAwMTMsNTAwMTQsNTAwMTUsNTAwMTYsNTAwMTcsNTAwMTgsNTAwMTksNTAwMjAsNTAwMjEsNTAwMjIsNTAwMjMsNTAwMjYsNTAwMjcsNTAwMjksNTAwMzAsNTAw''@;'; + put 'put ''MzEsNTAwMzMsNTAwMzUsNTAwMzYsNTAwMzcsNTAwMzgsNTAwMzksNTAwNDIsNTAwNDMsNTAwNDYsNTAwNDcsNTAwNDgsNTAwNDksNTAwNTAsNTAwNTEsNTAwNTMsNTAwNTQsNTAwNTUsNTAwNTcsNTAwNTgsNTAwNTksNTAwNjEsNTAwNjIsNTAwNjMsNTAwNjQsNTAwNjUsNTAwNjYsNTAwNjcs''@;'; + put 'put ''NTAwNjgsNTAwNjksNTAwNzAsNTAwNzEsNTAwNzIsNTAwNzMsNTAwNzQsNTAwNzUsNTAwNzYsNTAwNzcsNTAwNzgsNTAwNzksNTAwODAsNTAwODEsNTAwODIsNTAwODMsNTAwODQsNTAwODUsNTAwODYsNTAwODcsNTAwODgsNTAwODksNTAwOTAsNTAwOTEsNTAwOTIsNTAwOTMsNTAwOTQsNTAw''@;'; + put 'put ''OTUsNTAwOTYsNTAwOTcsNTAwOTgsNTAwOTksNTAxMDAsNTAxMDEsNTAxMDIsNTAxMDMsNTAxMDQsNTAxMDUsNTAxMDYsNTAxMDcsNTAxMDgsNTAxMDksNTAxMTAsNTAxMTEsNTAxMTMsNTAxMTQsNTAxMTUsNTAxMTYsNTAxMTcsNTAxMTgsNTAxMTksNTAxMjAsNTAxMjEsNTAxMjIsNTAxMjMs''@;'; + put 'put ''NTAxMjQsNTAxMjUsNTAxMjYsNTAxMjcsNTAxMjgsNTAxMjksNTAxMzAsNTAxMzEsNTAxMzIsNTAxMzMsNTAxMzQsNTAxMzUsNTAxMzgsNTAxMzksNTAxNDEsNTAxNDIsNTAxNDUsNTAxNDcsNTAxNDgsNTAxNDksNTAxNTAsNTAxNTEsNTAxNTQsNTAxNTUsNTAxNTYsNTAxNTgsNTAxNTksNTAx''@;'; + put 'put ''NjAsNTAxNjEsNTAxNjIsNTAxNjMsNTAxNjYsNTAxNjcsNTAxNjksNTAxNzAsNTAxNzEsNTAxNzIsNTAxNzMsNTAxNzQsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTAxNzUsNTAxNzYsNTAxNzcsNTAxNzgsNTAxNzksNTAxODAsNTAxODEsNTAxODIsNTAxODMsNTAxODUsNTAxODYs''@;'; + put 'put ''NTAxODcsNTAxODgsNTAxODksNTAxOTAsNTAxOTEsNTAxOTMsNTAxOTQsNTAxOTUsNTAxOTYsNTAxOTcsNTAxOTgsNTAxOTksNTAyMDAsNTAyMDEsNTAyMDIsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTAyMDMsNTAyMDQsNTAyMDUsNTAyMDYsNTAyMDcsNTAyMDgsNTAyMDksNTAy''@;'; + put 'put ''MTAsNTAyMTEsNTAyMTMsNTAyMTQsNTAyMTUsNTAyMTYsNTAyMTcsNTAyMTgsNTAyMTksNTAyMjEsNTAyMjIsNTAyMjMsNTAyMjUsNTAyMjYsNTAyMjcsNTAyMjksNTAyMzAsNTAyMzEsNTAyMzIsNTAyMzMsNTAyMzQsNTAyMzUsNTAyMzgsNTAyMzksNTAyNDAsNTAyNDEsNTAyNDIsNTAyNDMs''@;'; + put 'put ''NTAyNDQsNTAyNDUsNTAyNDYsNTAyNDcsNTAyNDksNTAyNTAsNTAyNTEsNTAyNTIsNTAyNTMsNTAyNTQsNTAyNTUsNTAyNTYsNTAyNTcsNTAyNTgsNTAyNTksNTAyNjAsNTAyNjEsNTAyNjIsNTAyNjMsNTAyNjQsNTAyNjUsNTAyNjYsNTAyNjcsNTAyNjgsNTAyNjksNTAyNzAsNTAyNzEsNTAy''@;'; + put 'put ''NzIsNTAyNzMsNTAyNzQsNTAyNzUsNTAyNzgsNTAyNzksNTAyODEsNTAyODIsNTAyODMsNTAyODUsNTAyODYsNTAyODcsNTAyODgsNTAyODksNTAyOTAsNTAyOTEsNTAyOTQsNTAyOTUsNTAyOTYsNTAyOTgsNTAyOTksNTAzMDAsNTAzMDEsNTAzMDIsNTAzMDMsNTAzMDUsNTAzMDYsNTAzMDcs''@;'; + put 'put ''NTAzMDgsNTAzMDksNTAzMTAsNTAzMTEsNTAzMTIsNTAzMTMsNTAzMTQsNTAzMTUsNTAzMTYsNTAzMTcsNTAzMTgsNTAzMTksNTAzMjAsNTAzMjEsNTAzMjIsNTAzMjMsNTAzMjUsNTAzMjYsNTAzMjcsNTAzMjgsNTAzMjksNTAzMzAsNTAzMzEsNTAzMzMsNTAzMzQsNTAzMzUsNTAzMzYsNTAz''@;'; + put 'put ''MzcsNTAzMzgsNTAzMzksNTAzNDAsNTAzNDEsNTAzNDIsNTAzNDMsNTAzNDQsNTAzNDUsNTAzNDYsNTAzNDcsNTAzNDgsNTAzNDksNTAzNTAsNTAzNTEsNTAzNTIsNTAzNTMsNTAzNTQsNTAzNTUsNTAzNTYsNTAzNTcsNTAzNTgsNTAzNTksNTAzNjEsNTAzNjIsNTAzNjMsNTAzNjUsNTAzNjYs''@;'; + put 'put ''NTAzNjcsNTAzNjgsNTAzNjksNTAzNzAsNTAzNzEsNTAzNzIsNTAzNzMsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTAzNzQsNTAzNzUsNTAzNzYsNTAzNzcsNTAzNzgsNTAzNzksNTAzODAsNTAzODEsNTAzODIsNTAzODMsNTAzODQsNTAzODUsNTAzODYsNTAzODcsNTAzODgsNTAz''@;'; + put 'put ''ODksNTAzOTAsNTAzOTEsNTAzOTIsNTAzOTMsNTAzOTQsNTAzOTUsNTAzOTYsNTAzOTcsNTAzOTgsNTAzOTksbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTA0MDAsNTA0MDEsNTA0MDIsNTA0MDMsNTA0MDQsNTA0MDUsNTA0MDYsNTA0MDcsNTA0MDgsNTA0MTAsNTA0MTEsNTA0MTIs''@;'; + put 'put ''NTA0MTMsNTA0MTQsNTA0MTUsNTA0MTgsNTA0MTksNTA0MjEsNTA0MjIsNTA0MjMsNTA0MjUsNTA0MjcsNTA0MjgsNTA0MjksNTA0MzAsNTA0MzQsNTA0MzUsNTA0MzYsNTA0MzcsNTA0MzgsNTA0MzksNTA0NDAsNTA0NDEsNTA0NDIsNTA0NDMsNTA0NDUsNTA0NDYsNTA0NDcsNTA0NDksNTA0''@;'; + put 'put ''NTAsNTA0NTEsNTA0NTMsNTA0NTQsNTA0NTUsNTA0NTYsNTA0NTcsNTA0NTgsNTA0NTksNTA0NjEsNTA0NjIsNTA0NjMsNTA0NjQsNTA0NjUsNTA0NjYsNTA0NjcsNTA0NjgsNTA0NjksNTA0NzAsNTA0NzEsNTA0NzQsNTA0NzUsNTA0NzcsNTA0NzgsNTA0NzksNTA0ODEsNTA0ODIsNTA0ODMs''@;'; + put 'put ''NTA0ODQsNTA0ODUsNTA0ODYsNTA0ODcsNTA0OTAsNTA0OTIsNTA0OTQsNTA0OTUsNTA0OTYsNTA0OTcsNTA0OTgsNTA0OTksNTA1MDIsNTA1MDMsNTA1MDcsNTA1MTEsNTA1MTIsNTA1MTMsNTA1MTQsNTA1MTgsNTA1MjIsNTA1MjMsNTA1MjQsNTA1MjcsNTA1MzAsNTA1MzEsNTA1MzMsNTA1''@;'; + put 'put ''MzQsNTA1MzUsNTA1MzcsNTA1MzgsNTA1MzksNTA1NDAsNTA1NDEsNTA1NDIsNTA1NDMsNTA1NDYsNTA1NTAsNTA1NTEsNTA1NTIsNTA1NTMsNTA1NTQsNTA1NTUsNTA1NTgsNTA1NTksNTA1NjEsNTA1NjIsNTA1NjMsNTA1NjUsNTA1NjYsNTA1NjgsNTA1NjksNTA1NzAsNTA1NzEsNTA1NzQs''@;'; + put 'put ''NTA1NzYsNTA1NzgsNTA1NzksNTA1ODAsNTA1ODIsNTA1ODUsNTA1ODYsNTA1ODcsNTA1ODksNTA1OTAsNTA1OTEsNTA1OTMsNTA1OTQsNTA1OTUsNTA1OTYsNTA1OTcsNTA1OTgsNTA1OTksNTA2MDAsNTA2MDIsNTA2MDMsNTA2MDQsNTA2MDUsNTA2MDYsNTA2MDcsNTA2MDgsNTA2MDksNTA2''@;'; + put 'put ''MTAsNTA2MTEsNTA2MTQsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTA2MTUsNTA2MTgsNTA2MjMsNTA2MjQsNTA2MjUsNTA2MjYsNTA2MjcsNTA2MzUsNTA2MzcsNTA2MzksNTA2NDIsNTA2NDMsNTA2NDUsNTA2NDYsNTA2NDcsNTA2NDksNTA2NTAsNTA2NTEsNTA2NTIsNTA2NTMs''@;'; + put 'put ''NTA2NTQsNTA2NTUsNTA2NTgsNTA2NjAsNTA2NjIsNTA2NjMsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTA2NjQsNTA2NjUsNTA2NjYsNTA2NjcsNTA2NzEsNTA2NzMsNTA2NzQsNTA2NzUsNTA2NzcsNTA2ODAsNTA2ODEsNTA2ODIsNTA2ODMsNTA2OTAsNTA2OTEsNTA2OTIsNTA2''@;'; + put 'put ''OTcsNTA2OTgsNTA2OTksNTA3MDEsNTA3MDIsNTA3MDMsNTA3MDUsNTA3MDYsNTA3MDcsNTA3MDgsNTA3MDksNTA3MTAsNTA3MTEsNTA3MTQsNTA3MTcsNTA3MTgsNTA3MTksNTA3MjAsNTA3MjEsNTA3MjIsNTA3MjMsNTA3MjYsNTA3MjcsNTA3MjksNTA3MzAsNTA3MzEsNTA3MzUsNTA3Mzcs''@;'; + put 'put ''NTA3MzgsNTA3NDIsNTA3NDQsNTA3NDYsNTA3NDgsNTA3NDksNTA3NTAsNTA3NTEsNTA3NTQsNTA3NTUsNTA3NTcsNTA3NTgsNTA3NTksNTA3NjEsNTA3NjIsNTA3NjMsNTA3NjQsNTA3NjUsNTA3NjYsNTA3NjcsNTA3NzAsNTA3NzQsNTA3NzUsNTA3NzYsNTA3NzcsNTA3NzgsNTA3NzksNTA3''@;'; + put 'put ''ODIsNTA3ODMsNTA3ODUsNTA3ODYsNTA3ODcsNTA3ODgsNTA3ODksNTA3OTAsNTA3OTEsNTA3OTIsNTA3OTMsNTA3OTQsNTA3OTUsNTA3OTcsNTA3OTgsNTA4MDAsNTA4MDIsNTA4MDMsNTA4MDQsNTA4MDUsNTA4MDYsNTA4MDcsNTA4MTAsNTA4MTEsNTA4MTMsNTA4MTQsNTA4MTUsNTA4MTcs''@;'; + put 'put ''NTA4MTgsNTA4MTksNTA4MjAsNTA4MjEsNTA4MjIsNTA4MjMsNTA4MjYsNTA4MjgsNTA4MzAsNTA4MzEsNTA4MzIsNTA4MzMsNTA4MzQsNTA4MzUsNTA4MzgsNTA4MzksNTA4NDEsNTA4NDIsNTA4NDMsNTA4NDUsNTA4NDYsNTA4NDcsNTA4NDgsNTA4NDksNTA4NTAsNTA4NTEsNTA4NTQsNTA4''@;'; + put 'put ''NTYsNTA4NTgsNTA4NTksNTA4NjAsNTA4NjEsNTA4NjIsNTA4NjMsNTA4NjYsNTA4NjcsNTA4NjksNTA4NzAsNTA4NzEsNTA4NzUsNTA4NzYsNTA4NzcsNTA4NzgsNTA4NzksNTA4ODIsNTA4ODQsNTA4ODYsNTA4ODcsNTA4ODgsNTA4ODksNTA4OTAsNTA4OTEsNTA4OTQsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsNTA4OTUsNTA4OTcsNTA4OTgsNTA4OTksNTA5MDEsNTA5MDIsNTA5MDMsNTA5MDQsNTA5MDUsNTA5MDYsNTA5MDcsNTA5MTAsNTA5MTEsNTA5MTQsNTA5MTUsNTA5MTYsNTA5MTcsNTA5MTgsNTA5MTksNTA5MjIsNTA5MjMsNTA5MjUsNTA5MjYsNTA5MjcsNTA5''@;'; + put 'put ''MjksNTA5MzAsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTA5MzEsNTA5MzIsNTA5MzMsNTA5MzQsNTA5MzUsNTA5MzgsNTA5MzksNTA5NDAsNTA5NDIsNTA5NDMsNTA5NDQsNTA5NDUsNTA5NDYsNTA5NDcsNTA5NTAsNTA5NTEsNTA5NTMsNTA5NTQsNTA5NTUsNTA5NTcsNTA5NTgs''@;'; + put 'put ''NTA5NTksNTA5NjAsNTA5NjEsNTA5NjIsNTA5NjMsNTA5NjYsNTA5NjgsNTA5NzAsNTA5NzEsNTA5NzIsNTA5NzMsNTA5NzQsNTA5NzUsNTA5NzgsNTA5NzksNTA5ODEsNTA5ODIsNTA5ODMsNTA5ODUsNTA5ODYsNTA5ODcsNTA5ODgsNTA5ODksNTA5OTAsNTA5OTEsNTA5OTQsNTA5OTYsNTA5''@;'; + put 'put ''OTgsNTFlMyw1MTAwMSw1MTAwMiw1MTAwMyw1MTAwNiw1MTAwNyw1MTAwOSw1MTAxMCw1MTAxMSw1MTAxMyw1MTAxNCw1MTAxNSw1MTAxNiw1MTAxNyw1MTAxOSw1MTAyMiw1MTAyNCw1MTAzMyw1MTAzNCw1MTAzNSw1MTAzNyw1MTAzOCw1MTAzOSw1MTA0MSw1MTA0Miw1MTA0Myw1MTA0NCw1''@;'; + put 'put ''MTA0NSw1MTA0Niw1MTA0Nyw1MTA0OSw1MTA1MCw1MTA1Miw1MTA1Myw1MTA1NCw1MTA1NSw1MTA1Niw1MTA1Nyw1MTA1OCw1MTA1OSw1MTA2Miw1MTA2Myw1MTA2NSw1MTA2Niw1MTA2Nyw1MTA3MSw1MTA3Miw1MTA3Myw1MTA3NCw1MTA3OCw1MTA4Myw1MTA4NCw1MTA4NSw1MTA4Nyw1MTA5''@;'; + put 'put ''MCw1MTA5MSw1MTA5Myw1MTA5Nyw1MTA5OSw1MTEwMCw1MTEwMSw1MTEwMiw1MTEwMyw1MTEwNiw1MTExMSw1MTExMiw1MTExMyw1MTExNCw1MTExNSw1MTExOCw1MTExOSw1MTEyMSw1MTEyMiw1MTEyMyw1MTEyNSw1MTEyNiw1MTEyNyw1MTEyOCw1MTEyOSw1MTEzMCw1MTEzMSw1MTEzNCw1''@;'; + put 'put ''MTEzOCw1MTEzOSw1MTE0MCw1MTE0MSw1MTE0Miw1MTE0Myw1MTE0Niw1MTE0Nyw1MTE0OSw1MTE1MSw1MTE1Myw1MTE1NCw1MTE1NSw1MTE1Niw1MTE1Nyw1MTE1OCw1MTE1OSw1MTE2MSw1MTE2Miw1MTE2Myw1MTE2NCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1MTE2Niw1MTE2''@;'; + put 'put ''Nyw1MTE2OCw1MTE2OSw1MTE3MCw1MTE3MSw1MTE3Myw1MTE3NCw1MTE3NSw1MTE3Nyw1MTE3OCw1MTE3OSw1MTE4MSw1MTE4Miw1MTE4Myw1MTE4NCw1MTE4NSw1MTE4Niw1MTE4Nyw1MTE4OCw1MTE4OSw1MTE5MCw1MTE5MSw1MTE5Miw1MTE5Myw1MTE5NCxudWxsLG51bGwsbnVsbCxudWxs''@;'; + put 'put ''LG51bGwsbnVsbCw1MTE5NSw1MTE5Niw1MTE5Nyw1MTE5OCw1MTE5OSw1MTIwMiw1MTIwMyw1MTIwNSw1MTIwNiw1MTIwNyw1MTIwOSw1MTIxMSw1MTIxMiw1MTIxMyw1MTIxNCw1MTIxNSw1MTIxOCw1MTIyMCw1MTIyMyw1MTIyNCw1MTIyNSw1MTIyNiw1MTIyNyw1MTIzMCw1MTIzMSw1MTIz''@;'; + put 'put ''Myw1MTIzNCw1MTIzNSw1MTIzNyw1MTIzOCw1MTIzOSw1MTI0MCw1MTI0MSw1MTI0Miw1MTI0Myw1MTI0Niw1MTI0OCw1MTI1MCw1MTI1MSw1MTI1Miw1MTI1Myw1MTI1NCw1MTI1NSw1MTI1Nyw1MTI1OCw1MTI1OSw1MTI2MSw1MTI2Miw1MTI2Myw1MTI2NSw1MTI2Niw1MTI2Nyw1MTI2OCw1''@;'; + put 'put ''MTI2OSw1MTI3MCw1MTI3MSw1MTI3NCw1MTI3NSw1MTI3OCw1MTI3OSw1MTI4MCw1MTI4MSw1MTI4Miw1MTI4Myw1MTI4NSw1MTI4Niw1MTI4Nyw1MTI4OCw1MTI4OSw1MTI5MCw1MTI5MSw1MTI5Miw1MTI5Myw1MTI5NCw1MTI5NSw1MTI5Niw1MTI5Nyw1MTI5OCw1MTI5OSw1MTMwMCw1MTMw''@;'; + put 'put ''MSw1MTMwMiw1MTMwMyw1MTMwNCw1MTMwNSw1MTMwNiw1MTMwNyw1MTMwOCw1MTMwOSw1MTMxMCw1MTMxMSw1MTMxNCw1MTMxNSw1MTMxNyw1MTMxOCw1MTMxOSw1MTMyMSw1MTMyMyw1MTMyNCw1MTMyNSw1MTMyNiw1MTMyNyw1MTMzMCw1MTMzMiw1MTMzNiw1MTMzNyw1MTMzOCw1MTM0Miw1''@;'; + put 'put ''MTM0Myw1MTM0NCw1MTM0NSw1MTM0Niw1MTM0Nyw1MTM0OSw1MTM1MCw1MTM1MSw1MTM1Miw1MTM1Myw1MTM1NCw1MTM1NSw1MTM1Niw1MTM1OCw1MTM2MCw1MTM2Miw1MTM2Myw1MTM2NCw1MTM2NSw1MTM2Niw1MTM2Nyw1MTM2OSw1MTM3MCw1MTM3MSw1MTM3Miw1MTM3Myw1MTM3NCw1MTM3''@;'; + put 'put ''NSw1MTM3Niw1MTM3Nyw1MTM3OCw1MTM3OSw1MTM4MCw1MTM4MSw1MTM4Miw1MTM4Myw1MTM4NCw1MTM4NSw1MTM4Niw1MTM4Nyw1MTM5MCw1MTM5MSw1MTM5Miw1MTM5MyxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1MTM5NCw1MTM5NSw1MTM5Nyw1MTM5OCw1MTM5OSw1MTQwMSw1''@;'; + put 'put ''MTQwMiw1MTQwMyw1MTQwNSw1MTQwNiw1MTQwNyw1MTQwOCw1MTQwOSw1MTQxMCw1MTQxMSw1MTQxNCw1MTQxNiw1MTQxOCw1MTQxOSw1MTQyMCw1MTQyMSw1MTQyMiw1MTQyMyw1MTQyNiw1MTQyNyw1MTQyOSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1MTQzMCw1MTQzMSw1MTQz''@;'; + put 'put ''Miw1MTQzMyw1MTQzNCw1MTQzNSw1MTQzNiw1MTQzNyw1MTQzOCw1MTQzOSw1MTQ0MCw1MTQ0MSw1MTQ0Miw1MTQ0Myw1MTQ0NCw1MTQ0Niw1MTQ0Nyw1MTQ0OCw1MTQ0OSw1MTQ1MCw1MTQ1MSw1MTQ1NCw1MTQ1NSw1MTQ1Nyw1MTQ1OCw1MTQ1OSw1MTQ2Myw1MTQ2NCw1MTQ2NSw1MTQ2Niw1''@;'; + put 'put ''MTQ2Nyw1MTQ3MCwxMjI4OCwxMjI4OSwxMjI5MCwxODMsODIyOSw4MjMwLDE2OCwxMjI5MSwxNzMsODIxMyw4NzQxLDY1MzQwLDg3NjQsODIxNiw4MjE3LDgyMjAsODIyMSwxMjMwOCwxMjMwOSwxMjI5NiwxMjI5NywxMjI5OCwxMjI5OSwxMjMwMCwxMjMwMSwxMjMwMiwxMjMwMywxMjMwNCwx''@;'; + put 'put ''MjMwNSwxNzcsMjE1LDI0Nyw4ODAwLDg4MDQsODgwNSw4NzM0LDg3NTYsMTc2LDgyNDIsODI0Myw4NDUxLDg0OTEsNjU1MDQsNjU1MDUsNjU1MDksOTc5NCw5NzkyLDg3MzYsODg2OSw4OTc4LDg3MDYsODcxMSw4ODAxLDg3ODYsMTY3LDgyNTEsOTczNCw5NzMzLDk2NzUsOTY3OSw5Njc4LDk2''@;'; + put 'put ''NzEsOTY3MCw5NjMzLDk2MzIsOTY1MSw5NjUwLDk2NjEsOTY2MCw4NTk0LDg1OTIsODU5Myw4NTk1LDg1OTYsMTIzMDcsODgxMCw4ODExLDg3MzAsODc2NSw4NzMzLDg3NTcsODc0Nyw4NzQ4LDg3MTIsODcxNSw4ODM4LDg4MzksODgzNCw4ODM1LDg3NDYsODc0NSw4NzQzLDg3NDQsNjU1MDYs''@;'; + put 'put ''NTE0NzIsNTE0NzQsNTE0NzUsNTE0NzYsNTE0NzcsNTE0NzgsNTE0NzksNTE0ODEsNTE0ODIsNTE0ODMsNTE0ODQsNTE0ODUsNTE0ODYsNTE0ODcsNTE0ODgsNTE0ODksNTE0OTAsNTE0OTEsNTE0OTIsNTE0OTMsNTE0OTQsNTE0OTUsNTE0OTYsNTE0OTcsNTE0OTgsNTE0OTksbnVsbCxudWxs''@;'; + put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsNTE1MDEsNTE1MDIsNTE1MDMsNTE1MDQsNTE1MDUsNTE1MDYsNTE1MDcsNTE1MDksNTE1MTAsNTE1MTEsNTE1MTIsNTE1MTMsNTE1MTQsNTE1MTUsNTE1MTYsNTE1MTcsNTE1MTgsNTE1MTksNTE1MjAsNTE1MjEsNTE1MjIsNTE1MjMsNTE1MjQsNTE1MjUs''@;'; + put 'put ''NTE1MjYsNTE1MjcsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTE1MjgsNTE1MjksNTE1MzAsNTE1MzEsNTE1MzIsNTE1MzMsNTE1MzQsNTE1MzUsNTE1MzgsNTE1MzksNTE1NDEsNTE1NDIsNTE1NDMsNTE1NDUsNTE1NDYsNTE1NDcsNTE1NDgsNTE1NDksNTE1NTAsNTE1NTEsNTE1''@;'; + put 'put ''NTQsNTE1NTYsNTE1NTcsNTE1NTgsNTE1NTksNTE1NjAsNTE1NjEsNTE1NjIsNTE1NjMsNTE1NjUsNTE1NjYsNTE1NjcsODY1OCw4NjYwLDg3MDQsODcwNywxODAsNjUzNzQsNzExLDcyOCw3MzMsNzMwLDcyOSwxODQsNzMxLDE2MSwxOTEsNzIwLDg3NTAsODcyMSw4NzE5LDE2NCw4NDU3LDgy''@;'; + put 'put ''NDAsOTY2NSw5NjY0LDk2NTUsOTY1NCw5ODI4LDk4MjQsOTgyNSw5ODI5LDk4MzEsOTgyNyw4ODU3LDk2NzIsOTYzNSw5NjgwLDk2ODEsOTYxOCw5NjM2LDk2MzcsOTY0MCw5NjM5LDk2MzgsOTY0MSw5ODMyLDk3NDMsOTc0Miw5NzU2LDk3NTgsMTgyLDgyMjQsODIyNSw4NTk3LDg1OTksODYw''@;'; + put 'put ''MSw4NTk4LDg2MDAsOTgzNyw5ODMzLDk4MzQsOTgzNiwxMjkyNywxMjgyOCw4NDcwLDEzMjU1LDg0ODIsMTMyNTAsMTMyNzIsODQ4MSw4MzY0LDE3NCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; + put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTE1NjksNTE1NzAsNTE1NzEsNTE1NzMsNTE1NzQsNTE1NzUsNTE1NzYsNTE1NzcsNTE1NzgsNTE1NzksNTE1ODEsNTE1ODIsNTE1ODMsNTE1ODQsNTE1ODUsNTE1ODYsNTE1ODcsNTE1ODgsNTE1ODksNTE1OTAsNTE1OTEsNTE1''@;'; + put 'put ''OTQsNTE1OTUsNTE1OTcsNTE1OTgsNTE1OTksbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTE2MDEsNTE2MDIsNTE2MDMsNTE2MDQsNTE2MDUsNTE2MDYsNTE2MDcsNTE2MTAsNTE2MTIsNTE2MTQsNTE2MTUsNTE2MTYsNTE2MTcsNTE2MTgsNTE2MTksNTE2MjAsNTE2MjEsNTE2MjIs''@;'; + put 'put ''NTE2MjMsNTE2MjQsNTE2MjUsNTE2MjYsNTE2MjcsNTE2MjgsNTE2MjksNTE2MzAsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTE2MzEsNTE2MzIsNTE2MzMsNTE2MzQsNTE2MzUsNTE2MzYsNTE2MzcsNTE2MzgsNTE2MzksNTE2NDAsNTE2NDEsNTE2NDIsNTE2NDMsNTE2NDQsNTE2''@;'; + put 'put ''NDUsNTE2NDYsNTE2NDcsNTE2NTAsNTE2NTEsNTE2NTMsNTE2NTQsNTE2NTcsNTE2NTksNTE2NjAsNTE2NjEsNTE2NjIsNTE2NjMsNTE2NjYsNTE2NjgsNTE2NzEsNTE2NzIsNTE2NzUsNjUyODEsNjUyODIsNjUyODMsNjUyODQsNjUyODUsNjUyODYsNjUyODcsNjUyODgsNjUyODksNjUyOTAs''@;'; + put 'put ''NjUyOTEsNjUyOTIsNjUyOTMsNjUyOTQsNjUyOTUsNjUyOTYsNjUyOTcsNjUyOTgsNjUyOTksNjUzMDAsNjUzMDEsNjUzMDIsNjUzMDMsNjUzMDQsNjUzMDUsNjUzMDYsNjUzMDcsNjUzMDgsNjUzMDksNjUzMTAsNjUzMTEsNjUzMTIsNjUzMTMsNjUzMTQsNjUzMTUsNjUzMTYsNjUzMTcsNjUz''@;'; + put 'put ''MTgsNjUzMTksNjUzMjAsNjUzMjEsNjUzMjIsNjUzMjMsNjUzMjQsNjUzMjUsNjUzMjYsNjUzMjcsNjUzMjgsNjUzMjksNjUzMzAsNjUzMzEsNjUzMzIsNjUzMzMsNjUzMzQsNjUzMzUsNjUzMzYsNjUzMzcsNjUzMzgsNjUzMzksNjU1MTAsNjUzNDEsNjUzNDIsNjUzNDMsNjUzNDQsNjUzNDUs''@;'; + put 'put ''NjUzNDYsNjUzNDcsNjUzNDgsNjUzNDksNjUzNTAsNjUzNTEsNjUzNTIsNjUzNTMsNjUzNTQsNjUzNTUsNjUzNTYsNjUzNTcsNjUzNTgsNjUzNTksNjUzNjAsNjUzNjEsNjUzNjIsNjUzNjMsNjUzNjQsNjUzNjUsNjUzNjYsNjUzNjcsNjUzNjgsNjUzNjksNjUzNzAsNjUzNzEsNjUzNzIsNjUz''@;'; + put 'put ''NzMsNjU1MDcsNTE2NzgsNTE2NzksNTE2ODEsNTE2ODMsNTE2ODUsNTE2ODYsNTE2ODgsNTE2ODksNTE2OTAsNTE2OTEsNTE2OTQsNTE2OTgsNTE2OTksNTE3MDAsNTE3MDEsNTE3MDIsNTE3MDMsNTE3MDYsNTE3MDcsNTE3MDksNTE3MTAsNTE3MTEsNTE3MTMsNTE3MTQsNTE3MTUsNTE3MTYs''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTE3MTcsNTE3MTgsNTE3MTksNTE3MjIsNTE3MjYsNTE3MjcsNTE3MjgsNTE3MjksNTE3MzAsNTE3MzEsNTE3MzMsNTE3MzQsNTE3MzUsNTE3MzcsNTE3MzgsNTE3MzksNTE3NDAsNTE3NDEsNTE3NDIsNTE3NDMsNTE3NDQsNTE3NDUsNTE3''@;'; + put 'put ''NDYsNTE3NDcsNTE3NDgsNTE3NDksbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTE3NTAsNTE3NTEsNTE3NTIsNTE3NTQsNTE3NTUsNTE3NTYsNTE3NTcsNTE3NTgsNTE3NTksNTE3NjAsNTE3NjEsNTE3NjIsNTE3NjMsNTE3NjQsNTE3NjUsNTE3NjYsNTE3NjcsNTE3NjgsNTE3Njks''@;'; + put 'put ''NTE3NzAsNTE3NzEsNTE3NzIsNTE3NzMsNTE3NzQsNTE3NzUsNTE3NzYsNTE3NzcsNTE3NzgsNTE3NzksNTE3ODAsNTE3ODEsNTE3ODIsMTI1OTMsMTI1OTQsMTI1OTUsMTI1OTYsMTI1OTcsMTI1OTgsMTI1OTksMTI2MDAsMTI2MDEsMTI2MDIsMTI2MDMsMTI2MDQsMTI2MDUsMTI2MDYsMTI2''@;'; + put 'put ''MDcsMTI2MDgsMTI2MDksMTI2MTAsMTI2MTEsMTI2MTIsMTI2MTMsMTI2MTQsMTI2MTUsMTI2MTYsMTI2MTcsMTI2MTgsMTI2MTksMTI2MjAsMTI2MjEsMTI2MjIsMTI2MjMsMTI2MjQsMTI2MjUsMTI2MjYsMTI2MjcsMTI2MjgsMTI2MjksMTI2MzAsMTI2MzEsMTI2MzIsMTI2MzMsMTI2MzQs''@;'; + put 'put ''MTI2MzUsMTI2MzYsMTI2MzcsMTI2MzgsMTI2MzksMTI2NDAsMTI2NDEsMTI2NDIsMTI2NDMsMTI2NDQsMTI2NDUsMTI2NDYsMTI2NDcsMTI2NDgsMTI2NDksMTI2NTAsMTI2NTEsMTI2NTIsMTI2NTMsMTI2NTQsMTI2NTUsMTI2NTYsMTI2NTcsMTI2NTgsMTI2NTksMTI2NjAsMTI2NjEsMTI2''@;'; + put 'put ''NjIsMTI2NjMsMTI2NjQsMTI2NjUsMTI2NjYsMTI2NjcsMTI2NjgsMTI2NjksMTI2NzAsMTI2NzEsMTI2NzIsMTI2NzMsMTI2NzQsMTI2NzUsMTI2NzYsMTI2NzcsMTI2NzgsMTI2NzksMTI2ODAsMTI2ODEsMTI2ODIsMTI2ODMsMTI2ODQsMTI2ODUsMTI2ODYsNTE3ODMsNTE3ODQsNTE3ODUs''@;'; + put 'put ''NTE3ODYsNTE3ODcsNTE3OTAsNTE3OTEsNTE3OTMsNTE3OTQsNTE3OTUsNTE3OTcsNTE3OTgsNTE3OTksNTE4MDAsNTE4MDEsNTE4MDIsNTE4MDMsNTE4MDYsNTE4MTAsNTE4MTEsNTE4MTIsNTE4MTMsNTE4MTQsNTE4MTUsNTE4MTcsNTE4MTgsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsNTE4MTksNTE4MjAsNTE4MjEsNTE4MjIsNTE4MjMsNTE4MjQsNTE4MjUsNTE4MjYsNTE4MjcsNTE4MjgsNTE4MjksNTE4MzAsNTE4MzEsNTE4MzIsNTE4MzMsNTE4MzQsNTE4MzUsNTE4MzYsNTE4MzgsNTE4MzksNTE4NDAsNTE4NDEsNTE4NDIsNTE4NDMsNTE4NDUsNTE4NDYsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTE4NDcsNTE4NDgsNTE4NDksNTE4NTAsNTE4NTEsNTE4NTIsNTE4NTMsNTE4NTQsNTE4NTUsNTE4NTYsNTE4NTcsNTE4NTgsNTE4NTksNTE4NjAsNTE4NjEsNTE4NjIsNTE4NjMsNTE4NjUsNTE4NjYsNTE4NjcsNTE4NjgsNTE4NjksNTE4NzAsNTE4''@;'; + put 'put ''NzEsNTE4NzIsNTE4NzMsNTE4NzQsNTE4NzUsNTE4NzYsNTE4NzcsNTE4NzgsNTE4NzksODU2MCw4NTYxLDg1NjIsODU2Myw4NTY0LDg1NjUsODU2Niw4NTY3LDg1NjgsODU2OSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsODU0NCw4NTQ1LDg1NDYsODU0Nyw4NTQ4LDg1NDksODU1MCw4NTUx''@;'; + put 'put ''LDg1NTIsODU1MyxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDkxMyw5MTQsOTE1LDkxNiw5MTcsOTE4LDkxOSw5MjAsOTIxLDkyMiw5MjMsOTI0LDkyNSw5MjYsOTI3LDkyOCw5MjksOTMxLDkzMiw5MzMsOTM0LDkzNSw5MzYsOTM3LG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCw5NDUsOTQ2LDk0Nyw5NDgsOTQ5LDk1MCw5NTEsOTUyLDk1Myw5NTQsOTU1LDk1Niw5NTcsOTU4LDk1OSw5NjAsOTYxLDk2Myw5NjQsOTY1LDk2Niw5NjcsOTY4LDk2OSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1MTg4MCw1MTg4MSw1MTg4Miw1MTg4''@;'; + put 'put ''Myw1MTg4NCw1MTg4NSw1MTg4Niw1MTg4Nyw1MTg4OCw1MTg4OSw1MTg5MCw1MTg5MSw1MTg5Miw1MTg5Myw1MTg5NCw1MTg5NSw1MTg5Niw1MTg5Nyw1MTg5OCw1MTg5OSw1MTkwMiw1MTkwMyw1MTkwNSw1MTkwNiw1MTkwNyw1MTkwOSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1''@;'; + put 'put ''MTkxMCw1MTkxMSw1MTkxMiw1MTkxMyw1MTkxNCw1MTkxNSw1MTkxOCw1MTkyMCw1MTkyMiw1MTkyNCw1MTkyNSw1MTkyNiw1MTkyNyw1MTkzMCw1MTkzMSw1MTkzMiw1MTkzMyw1MTkzNCw1MTkzNSw1MTkzNyw1MTkzOCw1MTkzOSw1MTk0MCw1MTk0MSw1MTk0Miw1MTk0MyxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCw1MTk0NCw1MTk0NSw1MTk0Niw1MTk0Nyw1MTk0OSw1MTk1MCw1MTk1MSw1MTk1Miw1MTk1Myw1MTk1NCw1MTk1NSw1MTk1Nyw1MTk1OCw1MTk1OSw1MTk2MCw1MTk2MSw1MTk2Miw1MTk2Myw1MTk2NCw1MTk2NSw1MTk2Niw1MTk2Nyw1MTk2OCw1MTk2OSw1''@;'; + put 'put ''MTk3MCw1MTk3MSw1MTk3Miw1MTk3Myw1MTk3NCw1MTk3NSw1MTk3Nyw1MTk3OCw5NDcyLDk0NzQsOTQ4NCw5NDg4LDk0OTYsOTQ5Miw5NTAwLDk1MTYsOTUwOCw5NTI0LDk1MzIsOTQ3Myw5NDc1LDk0ODcsOTQ5MSw5NDk5LDk0OTUsOTUwNyw5NTIzLDk1MTUsOTUzMSw5NTQ3LDk1MDQsOTUx''@;'; + put 'put ''OSw5NTEyLDk1MjcsOTUzNSw5NTAxLDk1MjAsOTUwOSw5NTI4LDk1MzgsOTQ5MCw5NDg5LDk0OTgsOTQ5Nyw5NDk0LDk0OTMsOTQ4Niw5NDg1LDk1MDIsOTUwMyw5NTA1LDk1MDYsOTUxMCw5NTExLDk1MTMsOTUxNCw5NTE3LDk1MTgsOTUyMSw5NTIyLDk1MjUsOTUyNiw5NTI5LDk1MzAsOTUz''@;'; + put 'put ''Myw5NTM0LDk1MzYsOTUzNyw5NTM5LDk1NDAsOTU0MSw5NTQyLDk1NDMsOTU0NCw5NTQ1LDk1NDYsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLDUxOTc5LDUxOTgwLDUxOTgxLDUxOTgyLDUxOTgzLDUxOTg1LDUxOTg2LDUxOTg3LDUxOTg5LDUxOTkwLDUxOTkxLDUxOTkzLDUxOTk0LDUxOTk1LDUxOTk2LDUxOTk3LDUxOTk4LDUxOTk5LDUyMDAyLDUyMDAzLDUyMDA0LDUyMDA1LDUyMDA2LDUyMDA3''@;'; + put 'put ''LDUyMDA4LDUyMDA5LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDUyMDEwLDUyMDExLDUyMDEyLDUyMDEzLDUyMDE0LDUyMDE1LDUyMDE2LDUyMDE3LDUyMDE4LDUyMDE5LDUyMDIwLDUyMDIxLDUyMDIyLDUyMDIzLDUyMDI0LDUyMDI1LDUyMDI2LDUyMDI3LDUyMDI4LDUyMDI5LDUy''@;'; + put 'put ''MDMwLDUyMDMxLDUyMDMyLDUyMDM0LDUyMDM1LDUyMDM2LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDUyMDM3LDUyMDM4LDUyMDM5LDUyMDQyLDUyMDQzLDUyMDQ1LDUyMDQ2LDUyMDQ3LDUyMDQ5LDUyMDUwLDUyMDUxLDUyMDUyLDUyMDUzLDUyMDU0LDUyMDU1LDUyMDU4LDUyMDU5''@;'; + put 'put ''LDUyMDYwLDUyMDYyLDUyMDYzLDUyMDY0LDUyMDY1LDUyMDY2LDUyMDY3LDUyMDY5LDUyMDcwLDUyMDcxLDUyMDcyLDUyMDczLDUyMDc0LDUyMDc1LDUyMDc2LDEzMjA1LDEzMjA2LDEzMjA3LDg0NjcsMTMyMDgsMTMyNTIsMTMyMTksMTMyMjAsMTMyMjEsMTMyMjIsMTMyMDksMTMyMTAsMTMy''@;'; + put 'put ''MTEsMTMyMTIsMTMyMTMsMTMyMTQsMTMyMTUsMTMyMTYsMTMyMTcsMTMyMTgsMTMyNTgsMTMxOTcsMTMxOTgsMTMxOTksMTMyNjMsMTMxOTIsMTMxOTMsMTMyNTYsMTMyMjMsMTMyMjQsMTMyMzIsMTMyMzMsMTMyMzQsMTMyMzUsMTMyMzYsMTMyMzcsMTMyMzgsMTMyMzksMTMyNDAsMTMyNDEs''@;'; + put 'put ''MTMxODQsMTMxODUsMTMxODYsMTMxODcsMTMxODgsMTMyNDIsMTMyNDMsMTMyNDQsMTMyNDUsMTMyNDYsMTMyNDcsMTMyMDAsMTMyMDEsMTMyMDIsMTMyMDMsMTMyMDQsODQ4NiwxMzI0OCwxMzI0OSwxMzE5NCwxMzE5NSwxMzE5NiwxMzI3MCwxMzI1MywxMzIyOSwxMzIzMCwxMzIzMSwxMzI3''@;'; + put 'put ''NSwxMzIyNSwxMzIyNiwxMzIyNywxMzIyOCwxMzI3NywxMzI2NCwxMzI2NywxMzI1MSwxMzI1NywxMzI3NiwxMzI1NCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1MjA3Nyw1MjA3OCw1MjA3OSw1MjA4''@;'; + put 'put ''MCw1MjA4MSw1MjA4Miw1MjA4Myw1MjA4NCw1MjA4NSw1MjA4Niw1MjA4Nyw1MjA5MCw1MjA5MSw1MjA5Miw1MjA5Myw1MjA5NCw1MjA5NSw1MjA5Niw1MjA5Nyw1MjA5OCw1MjA5OSw1MjEwMCw1MjEwMSw1MjEwMiw1MjEwMyw1MjEwNCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1''@;'; + put 'put ''MjEwNSw1MjEwNiw1MjEwNyw1MjEwOCw1MjEwOSw1MjExMCw1MjExMSw1MjExMiw1MjExMyw1MjExNCw1MjExNSw1MjExNiw1MjExNyw1MjExOCw1MjExOSw1MjEyMCw1MjEyMSw1MjEyMiw1MjEyMyw1MjEyNSw1MjEyNiw1MjEyNyw1MjEyOCw1MjEyOSw1MjEzMCw1MjEzMSxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCw1MjEzMiw1MjEzMyw1MjEzNCw1MjEzNSw1MjEzNiw1MjEzNyw1MjEzOCw1MjEzOSw1MjE0MCw1MjE0MSw1MjE0Miw1MjE0Myw1MjE0NCw1MjE0NSw1MjE0Niw1MjE0Nyw1MjE0OCw1MjE0OSw1MjE1MCw1MjE1MSw1MjE1Myw1MjE1NCw1MjE1NSw1MjE1Niw1''@;'; + put 'put ''MjE1Nyw1MjE1OCw1MjE1OSw1MjE2MCw1MjE2MSw1MjE2Miw1MjE2Myw1MjE2NCwxOTgsMjA4LDE3MCwyOTQsbnVsbCwzMDYsbnVsbCwzMTksMzIxLDIxNiwzMzgsMTg2LDIyMiwzNTgsMzMwLG51bGwsMTI4OTYsMTI4OTcsMTI4OTgsMTI4OTksMTI5MDAsMTI5MDEsMTI5MDIsMTI5MDMsMTI5''@;'; + put 'put ''MDQsMTI5MDUsMTI5MDYsMTI5MDcsMTI5MDgsMTI5MDksMTI5MTAsMTI5MTEsMTI5MTIsMTI5MTMsMTI5MTQsMTI5MTUsMTI5MTYsMTI5MTcsMTI5MTgsMTI5MTksMTI5MjAsMTI5MjEsMTI5MjIsMTI5MjMsOTQyNCw5NDI1LDk0MjYsOTQyNyw5NDI4LDk0MjksOTQzMCw5NDMxLDk0MzIsOTQz''@;'; + put 'put ''Myw5NDM0LDk0MzUsOTQzNiw5NDM3LDk0MzgsOTQzOSw5NDQwLDk0NDEsOTQ0Miw5NDQzLDk0NDQsOTQ0NSw5NDQ2LDk0NDcsOTQ0OCw5NDQ5LDkzMTIsOTMxMyw5MzE0LDkzMTUsOTMxNiw5MzE3LDkzMTgsOTMxOSw5MzIwLDkzMjEsOTMyMiw5MzIzLDkzMjQsOTMyNSw5MzI2LDE4OSw4NTMx''@;'; + put 'put ''LDg1MzIsMTg4LDE5MCw4NTM5LDg1NDAsODU0MSw4NTQyLDUyMTY1LDUyMTY2LDUyMTY3LDUyMTY4LDUyMTY5LDUyMTcwLDUyMTcxLDUyMTcyLDUyMTczLDUyMTc0LDUyMTc1LDUyMTc2LDUyMTc3LDUyMTc4LDUyMTc5LDUyMTgxLDUyMTgyLDUyMTgzLDUyMTg0LDUyMTg1LDUyMTg2LDUyMTg3''@;'; + put 'put ''LDUyMTg4LDUyMTg5LDUyMTkwLDUyMTkxLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDUyMTkyLDUyMTkzLDUyMTk0LDUyMTk1LDUyMTk3LDUyMTk4LDUyMjAwLDUyMjAyLDUyMjAzLDUyMjA0LDUyMjA1LDUyMjA2LDUyMjA3LDUyMjA4LDUyMjA5LDUyMjEwLDUyMjExLDUyMjEyLDUy''@;'; + put 'put ''MjEzLDUyMjE0LDUyMjE1LDUyMjE2LDUyMjE3LDUyMjE4LDUyMjE5LDUyMjIwLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDUyMjIxLDUyMjIyLDUyMjIzLDUyMjI0LDUyMjI1LDUyMjI2LDUyMjI3LDUyMjI4LDUyMjI5LDUyMjMwLDUyMjMxLDUyMjMyLDUyMjMzLDUyMjM0LDUyMjM1''@;'; + put 'put ''LDUyMjM4LDUyMjM5LDUyMjQxLDUyMjQyLDUyMjQzLDUyMjQ1LDUyMjQ2LDUyMjQ3LDUyMjQ4LDUyMjQ5LDUyMjUwLDUyMjUxLDUyMjU0LDUyMjU1LDUyMjU2LDUyMjU5LDUyMjYwLDIzMCwyNzMsMjQwLDI5NSwzMDUsMzA3LDMxMiwzMjAsMzIyLDI0OCwzMzksMjIzLDI1NCwzNTksMzMxLDMy''@;'; + put 'put ''OSwxMjgwMCwxMjgwMSwxMjgwMiwxMjgwMywxMjgwNCwxMjgwNSwxMjgwNiwxMjgwNywxMjgwOCwxMjgwOSwxMjgxMCwxMjgxMSwxMjgxMiwxMjgxMywxMjgxNCwxMjgxNSwxMjgxNiwxMjgxNywxMjgxOCwxMjgxOSwxMjgyMCwxMjgyMSwxMjgyMiwxMjgyMywxMjgyNCwxMjgyNSwxMjgyNiwx''@;'; + put 'put ''MjgyNyw5MzcyLDkzNzMsOTM3NCw5Mzc1LDkzNzYsOTM3Nyw5Mzc4LDkzNzksOTM4MCw5MzgxLDkzODIsOTM4Myw5Mzg0LDkzODUsOTM4Niw5Mzg3LDkzODgsOTM4OSw5MzkwLDkzOTEsOTM5Miw5MzkzLDkzOTQsOTM5NSw5Mzk2LDkzOTcsOTMzMiw5MzMzLDkzMzQsOTMzNSw5MzM2LDkzMzcs''@;'; + put 'put ''OTMzOCw5MzM5LDkzNDAsOTM0MSw5MzQyLDkzNDMsOTM0NCw5MzQ1LDkzNDYsMTg1LDE3OCwxNzksODMwOCw4MzE5LDgzMjEsODMyMiw4MzIzLDgzMjQsNTIyNjEsNTIyNjIsNTIyNjYsNTIyNjcsNTIyNjksNTIyNzEsNTIyNzMsNTIyNzQsNTIyNzUsNTIyNzYsNTIyNzcsNTIyNzgsNTIyNzks''@;'; + put 'put ''NTIyODIsNTIyODcsNTIyODgsNTIyODksNTIyOTAsNTIyOTEsNTIyOTQsNTIyOTUsNTIyOTcsNTIyOTgsNTIyOTksNTIzMDEsNTIzMDIsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTIzMDMsNTIzMDQsNTIzMDUsNTIzMDYsNTIzMDcsNTIzMTAsNTIzMTQsNTIzMTUsNTIzMTYsNTIz''@;'; + put 'put ''MTcsNTIzMTgsNTIzMTksNTIzMjEsNTIzMjIsNTIzMjMsNTIzMjUsNTIzMjcsNTIzMjksNTIzMzAsNTIzMzEsNTIzMzIsNTIzMzMsNTIzMzQsNTIzMzUsNTIzMzcsNTIzMzgsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTIzMzksNTIzNDAsNTIzNDIsNTIzNDMsNTIzNDQsNTIzNDUs''@;'; + put 'put ''NTIzNDYsNTIzNDcsNTIzNDgsNTIzNDksNTIzNTAsNTIzNTEsNTIzNTIsNTIzNTMsNTIzNTQsNTIzNTUsNTIzNTYsNTIzNTcsNTIzNTgsNTIzNTksNTIzNjAsNTIzNjEsNTIzNjIsNTIzNjMsNTIzNjQsNTIzNjUsNTIzNjYsNTIzNjcsNTIzNjgsNTIzNjksNTIzNzAsNTIzNzEsMTIzNTMsMTIz''@;'; + put 'put ''NTQsMTIzNTUsMTIzNTYsMTIzNTcsMTIzNTgsMTIzNTksMTIzNjAsMTIzNjEsMTIzNjIsMTIzNjMsMTIzNjQsMTIzNjUsMTIzNjYsMTIzNjcsMTIzNjgsMTIzNjksMTIzNzAsMTIzNzEsMTIzNzIsMTIzNzMsMTIzNzQsMTIzNzUsMTIzNzYsMTIzNzcsMTIzNzgsMTIzNzksMTIzODAsMTIzODEs''@;'; + put 'put ''MTIzODIsMTIzODMsMTIzODQsMTIzODUsMTIzODYsMTIzODcsMTIzODgsMTIzODksMTIzOTAsMTIzOTEsMTIzOTIsMTIzOTMsMTIzOTQsMTIzOTUsMTIzOTYsMTIzOTcsMTIzOTgsMTIzOTksMTI0MDAsMTI0MDEsMTI0MDIsMTI0MDMsMTI0MDQsMTI0MDUsMTI0MDYsMTI0MDcsMTI0MDgsMTI0''@;'; + put 'put ''MDksMTI0MTAsMTI0MTEsMTI0MTIsMTI0MTMsMTI0MTQsMTI0MTUsMTI0MTYsMTI0MTcsMTI0MTgsMTI0MTksMTI0MjAsMTI0MjEsMTI0MjIsMTI0MjMsMTI0MjQsMTI0MjUsMTI0MjYsMTI0MjcsMTI0MjgsMTI0MjksMTI0MzAsMTI0MzEsMTI0MzIsMTI0MzMsMTI0MzQsMTI0MzUsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDUyMzcyLDUyMzczLDUyMzc0LDUyMzc1LDUyMzc4LDUyMzc5LDUyMzgxLDUyMzgyLDUyMzgzLDUyMzg1LDUyMzg2LDUyMzg3LDUyMzg4LDUyMzg5LDUyMzkwLDUyMzkxLDUyMzk0LDUyMzk4LDUyMzk5LDUy''@;'; + put 'put ''NDAwLDUyNDAxLDUyNDAyLDUyNDAzLDUyNDA2LDUyNDA3LDUyNDA5LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDUyNDEwLDUyNDExLDUyNDEzLDUyNDE0LDUyNDE1LDUyNDE2LDUyNDE3LDUyNDE4LDUyNDE5LDUyNDIyLDUyNDI0LDUyNDI2LDUyNDI3LDUyNDI4LDUyNDI5LDUyNDMw''@;'; + put 'put ''LDUyNDMxLDUyNDMzLDUyNDM0LDUyNDM1LDUyNDM3LDUyNDM4LDUyNDM5LDUyNDQwLDUyNDQxLDUyNDQyLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDUyNDQzLDUyNDQ0LDUyNDQ1LDUyNDQ2LDUyNDQ3LDUyNDQ4LDUyNDQ5LDUyNDUwLDUyNDUxLDUyNDUzLDUyNDU0LDUyNDU1LDUy''@;'; + put 'put ''NDU2LDUyNDU3LDUyNDU4LDUyNDU5LDUyNDYxLDUyNDYyLDUyNDYzLDUyNDY1LDUyNDY2LDUyNDY3LDUyNDY4LDUyNDY5LDUyNDcwLDUyNDcxLDUyNDcyLDUyNDczLDUyNDc0LDUyNDc1LDUyNDc2LDUyNDc3LDEyNDQ5LDEyNDUwLDEyNDUxLDEyNDUyLDEyNDUzLDEyNDU0LDEyNDU1LDEyNDU2''@;'; + put 'put ''LDEyNDU3LDEyNDU4LDEyNDU5LDEyNDYwLDEyNDYxLDEyNDYyLDEyNDYzLDEyNDY0LDEyNDY1LDEyNDY2LDEyNDY3LDEyNDY4LDEyNDY5LDEyNDcwLDEyNDcxLDEyNDcyLDEyNDczLDEyNDc0LDEyNDc1LDEyNDc2LDEyNDc3LDEyNDc4LDEyNDc5LDEyNDgwLDEyNDgxLDEyNDgyLDEyNDgzLDEy''@;'; + put 'put ''NDg0LDEyNDg1LDEyNDg2LDEyNDg3LDEyNDg4LDEyNDg5LDEyNDkwLDEyNDkxLDEyNDkyLDEyNDkzLDEyNDk0LDEyNDk1LDEyNDk2LDEyNDk3LDEyNDk4LDEyNDk5LDEyNTAwLDEyNTAxLDEyNTAyLDEyNTAzLDEyNTA0LDEyNTA1LDEyNTA2LDEyNTA3LDEyNTA4LDEyNTA5LDEyNTEwLDEyNTEx''@;'; + put 'put ''LDEyNTEyLDEyNTEzLDEyNTE0LDEyNTE1LDEyNTE2LDEyNTE3LDEyNTE4LDEyNTE5LDEyNTIwLDEyNTIxLDEyNTIyLDEyNTIzLDEyNTI0LDEyNTI1LDEyNTI2LDEyNTI3LDEyNTI4LDEyNTI5LDEyNTMwLDEyNTMxLDEyNTMyLDEyNTMzLDEyNTM0LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCw1MjQ3OCw1MjQ3OSw1MjQ4MCw1MjQ4Miw1MjQ4Myw1MjQ4NCw1MjQ4NSw1MjQ4Niw1MjQ4Nyw1MjQ5MCw1MjQ5MSw1MjQ5Myw1MjQ5NCw1MjQ5NSw1MjQ5Nyw1MjQ5OCw1MjQ5OSw1MjUwMCw1MjUwMSw1MjUwMiw1MjUwMyw1MjUwNiw1MjUwOCw1MjUxMCw1MjUxMSw1''@;'; + put 'put ''MjUxMixudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1MjUxMyw1MjUxNCw1MjUxNSw1MjUxNyw1MjUxOCw1MjUxOSw1MjUyMSw1MjUyMiw1MjUyMyw1MjUyNSw1MjUyNiw1MjUyNyw1MjUyOCw1MjUyOSw1MjUzMCw1MjUzMSw1MjUzMiw1MjUzMyw1MjUzNCw1MjUzNSw1MjUzNiw1MjUz''@;'; + put 'put ''OCw1MjUzOSw1MjU0MCw1MjU0MSw1MjU0MixudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1MjU0Myw1MjU0NCw1MjU0NSw1MjU0Niw1MjU0Nyw1MjU0OCw1MjU0OSw1MjU1MCw1MjU1MSw1MjU1Miw1MjU1Myw1MjU1NCw1MjU1NSw1MjU1Niw1MjU1Nyw1MjU1OCw1MjU1OSw1MjU2MCw1''@;'; + put 'put ''MjU2MSw1MjU2Miw1MjU2Myw1MjU2NCw1MjU2NSw1MjU2Niw1MjU2Nyw1MjU2OCw1MjU2OSw1MjU3MCw1MjU3MSw1MjU3Myw1MjU3NCw1MjU3NSwxMDQwLDEwNDEsMTA0MiwxMDQzLDEwNDQsMTA0NSwxMDI1LDEwNDYsMTA0NywxMDQ4LDEwNDksMTA1MCwxMDUxLDEwNTIsMTA1MywxMDU0LDEw''@;'; + put 'put ''NTUsMTA1NiwxMDU3LDEwNTgsMTA1OSwxMDYwLDEwNjEsMTA2MiwxMDYzLDEwNjQsMTA2NSwxMDY2LDEwNjcsMTA2OCwxMDY5LDEwNzAsMTA3MSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwxMDcyLDEw''@;'; + put 'put ''NzMsMTA3NCwxMDc1LDEwNzYsMTA3NywxMTA1LDEwNzgsMTA3OSwxMDgwLDEwODEsMTA4MiwxMDgzLDEwODQsMTA4NSwxMDg2LDEwODcsMTA4OCwxMDg5LDEwOTAsMTA5MSwxMDkyLDEwOTMsMTA5NCwxMDk1LDEwOTYsMTA5NywxMDk4LDEwOTksMTEwMCwxMTAxLDExMDIsMTEwMyxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDUyNTc3LDUyNTc4LDUyNTc5LDUyNTgxLDUyNTgyLDUyNTgzLDUyNTg0LDUyNTg1LDUyNTg2LDUyNTg3LDUyNTkwLDUyNTkyLDUyNTk0LDUyNTk1LDUyNTk2LDUyNTk3LDUyNTk4LDUyNTk5''@;'; + put 'put ''LDUyNjAxLDUyNjAyLDUyNjAzLDUyNjA0LDUyNjA1LDUyNjA2LDUyNjA3LDUyNjA4LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDUyNjA5LDUyNjEwLDUyNjExLDUyNjEyLDUyNjEzLDUyNjE0LDUyNjE1LDUyNjE3LDUyNjE4LDUyNjE5LDUyNjIwLDUyNjIxLDUyNjIyLDUyNjIzLDUy''@;'; + put 'put ''NjI0LDUyNjI1LDUyNjI2LDUyNjI3LDUyNjMwLDUyNjMxLDUyNjMzLDUyNjM0LDUyNjM1LDUyNjM3LDUyNjM4LDUyNjM5LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDUyNjQwLDUyNjQxLDUyNjQyLDUyNjQzLDUyNjQ2LDUyNjQ4LDUyNjUwLDUyNjUxLDUyNjUyLDUyNjUzLDUyNjU0''@;'; + put 'put ''LDUyNjU1LDUyNjU3LDUyNjU4LDUyNjU5LDUyNjYwLDUyNjYxLDUyNjYyLDUyNjYzLDUyNjY0LDUyNjY1LDUyNjY2LDUyNjY3LDUyNjY4LDUyNjY5LDUyNjcwLDUyNjcxLDUyNjcyLDUyNjczLDUyNjc0LDUyNjc1LDUyNjc3LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTI2NzgsNTI2NzksNTI2ODAsNTI2ODEsNTI2ODIsNTI2ODMsNTI2ODUsNTI2ODYsNTI2ODcsNTI2ODksNTI2''@;'; + put 'put ''OTAsNTI2OTEsNTI2OTIsNTI2OTMsNTI2OTQsNTI2OTUsNTI2OTYsNTI2OTcsNTI2OTgsNTI2OTksNTI3MDAsNTI3MDEsNTI3MDIsNTI3MDMsNTI3MDQsNTI3MDUsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTI3MDYsNTI3MDcsNTI3MDgsNTI3MDksNTI3MTAsNTI3MTEsNTI3MTMs''@;'; + put 'put ''NTI3MTQsNTI3MTUsNTI3MTcsNTI3MTgsNTI3MTksNTI3MjEsNTI3MjIsNTI3MjMsNTI3MjQsNTI3MjUsNTI3MjYsNTI3MjcsNTI3MzAsNTI3MzIsNTI3MzQsNTI3MzUsNTI3MzYsNTI3MzcsNTI3MzgsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTI3MzksNTI3NDEsNTI3NDIsNTI3''@;'; + put 'put ''NDMsNTI3NDUsNTI3NDYsNTI3NDcsNTI3NDksNTI3NTAsNTI3NTEsNTI3NTIsNTI3NTMsNTI3NTQsNTI3NTUsNTI3NTcsNTI3NTgsNTI3NTksNTI3NjAsNTI3NjIsNTI3NjMsNTI3NjQsNTI3NjUsNTI3NjYsNTI3NjcsNTI3NzAsNTI3NzEsNTI3NzMsNTI3NzQsNTI3NzUsNTI3NzcsNTI3Nzgs''@;'; + put 'put ''NTI3NzksbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; + put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; + put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1Mjc4MCw1Mjc4MSw1Mjc4Miw1''@;'; + put 'put ''Mjc4Myw1Mjc4Niw1Mjc4OCw1Mjc5MCw1Mjc5MSw1Mjc5Miw1Mjc5Myw1Mjc5NCw1Mjc5NSw1Mjc5Niw1Mjc5Nyw1Mjc5OCw1Mjc5OSw1MjgwMCw1MjgwMSw1MjgwMiw1MjgwMyw1MjgwNCw1MjgwNSw1MjgwNiw1MjgwNyw1MjgwOCw1MjgwOSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCw1MjgxMCw1MjgxMSw1MjgxMiw1MjgxMyw1MjgxNCw1MjgxNSw1MjgxNiw1MjgxNyw1MjgxOCw1MjgxOSw1MjgyMCw1MjgyMSw1MjgyMiw1MjgyMyw1MjgyNiw1MjgyNyw1MjgyOSw1MjgzMCw1MjgzNCw1MjgzNSw1MjgzNiw1MjgzNyw1MjgzOCw1MjgzOSw1Mjg0Miw1Mjg0NCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1Mjg0Niw1Mjg0Nyw1Mjg0OCw1Mjg0OSw1Mjg1MCw1Mjg1MSw1Mjg1NCw1Mjg1NSw1Mjg1Nyw1Mjg1OCw1Mjg1OSw1Mjg2MSw1Mjg2Miw1Mjg2Myw1Mjg2NCw1Mjg2NSw1Mjg2Niw1Mjg2Nyw1Mjg3MCw1Mjg3Miw1Mjg3NCw1Mjg3NSw1Mjg3Niw1Mjg3''@;'; + put 'put ''Nyw1Mjg3OCw1Mjg3OSw1Mjg4Miw1Mjg4Myw1Mjg4NSw1Mjg4Niw1Mjg4Nyw1Mjg4OSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDUyODkwLDUyODkxLDUyODkyLDUyODkzLDUyODk0LDUyODk1LDUyODk4LDUyOTAyLDUyOTAzLDUyOTA0LDUyOTA1LDUyOTA2LDUyOTA3LDUyOTEwLDUyOTExLDUyOTEyLDUyOTEzLDUyOTE0LDUyOTE1LDUyOTE2LDUyOTE3LDUyOTE4LDUyOTE5LDUy''@;'; + put 'put ''OTIwLDUyOTIxLDUyOTIyLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDUyOTIzLDUyOTI0LDUyOTI1LDUyOTI2LDUyOTI3LDUyOTI4LDUyOTMwLDUyOTMxLDUyOTMyLDUyOTMzLDUyOTM0LDUyOTM1LDUyOTM2LDUyOTM3LDUyOTM4LDUyOTM5LDUyOTQwLDUyOTQxLDUyOTQyLDUyOTQz''@;'; + put 'put ''LDUyOTQ0LDUyOTQ1LDUyOTQ2LDUyOTQ3LDUyOTQ4LDUyOTQ5LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDUyOTUwLDUyOTUxLDUyOTUyLDUyOTUzLDUyOTU0LDUyOTU1LDUyOTU2LDUyOTU3LDUyOTU4LDUyOTU5LDUyOTYwLDUyOTYxLDUyOTYyLDUyOTYzLDUyOTY2LDUyOTY3LDUy''@;'; + put 'put ''OTY5LDUyOTcwLDUyOTczLDUyOTc0LDUyOTc1LDUyOTc2LDUyOTc3LDUyOTc4LDUyOTc5LDUyOTgyLDUyOTg2LDUyOTg3LDUyOTg4LDUyOTg5LDUyOTkwLDUyOTkxLDQ0MDMyLDQ0MDMzLDQ0MDM2LDQ0MDM5LDQ0MDQwLDQ0MDQxLDQ0MDQyLDQ0MDQ4LDQ0MDQ5LDQ0MDUwLDQ0MDUxLDQ0MDUy''@;'; + put 'put ''LDQ0MDUzLDQ0MDU0LDQ0MDU1LDQ0MDU3LDQ0MDU4LDQ0MDU5LDQ0MDYwLDQ0MDYxLDQ0MDY0LDQ0MDY4LDQ0MDc2LDQ0MDc3LDQ0MDc5LDQ0MDgwLDQ0MDgxLDQ0MDg4LDQ0MDg5LDQ0MDkyLDQ0MDk2LDQ0MTA3LDQ0MTA5LDQ0MTE2LDQ0MTIwLDQ0MTI0LDQ0MTQ0LDQ0MTQ1LDQ0MTQ4LDQ0''@;'; + put 'put ''MTUxLDQ0MTUyLDQ0MTU0LDQ0MTYwLDQ0MTYxLDQ0MTYzLDQ0MTY0LDQ0MTY1LDQ0MTY2LDQ0MTY5LDQ0MTcwLDQ0MTcxLDQ0MTcyLDQ0MTc2LDQ0MTgwLDQ0MTg4LDQ0MTg5LDQ0MTkxLDQ0MTkyLDQ0MTkzLDQ0MjAwLDQ0MjAxLDQ0MjAyLDQ0MjA0LDQ0MjA3LDQ0MjA4LDQ0MjE2LDQ0MjE3''@;'; + put 'put ''LDQ0MjE5LDQ0MjIwLDQ0MjIxLDQ0MjI1LDQ0MjI4LDQ0MjMyLDQ0MjM2LDQ0MjQ1LDQ0MjQ3LDQ0MjU2LDQ0MjU3LDQ0MjYwLDQ0MjYzLDQ0MjY0LDQ0MjY2LDQ0MjY4LDQ0MjcxLDQ0MjcyLDQ0MjczLDQ0Mjc1LDQ0Mjc3LDQ0Mjc4LDQ0Mjg0LDQ0Mjg1LDQ0Mjg4LDQ0MjkyLDQ0Mjk0LDUy''@;'; + put 'put ''OTk0LDUyOTk1LDUyOTk3LDUyOTk4LDUyOTk5LDUzMDAxLDUzMDAyLDUzMDAzLDUzMDA0LDUzMDA1LDUzMDA2LDUzMDA3LDUzMDEwLDUzMDEyLDUzMDE0LDUzMDE1LDUzMDE2LDUzMDE3LDUzMDE4LDUzMDE5LDUzMDIxLDUzMDIyLDUzMDIzLDUzMDI1LDUzMDI2LDUzMDI3LG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLDUzMDI5LDUzMDMwLDUzMDMxLDUzMDMyLDUzMDMzLDUzMDM0LDUzMDM1LDUzMDM4LDUzMDQyLDUzMDQzLDUzMDQ0LDUzMDQ1LDUzMDQ2LDUzMDQ3LDUzMDQ5LDUzMDUwLDUzMDUxLDUzMDUyLDUzMDUzLDUzMDU0LDUzMDU1LDUzMDU2LDUzMDU3LDUzMDU4LDUz''@;'; + put 'put ''MDU5LDUzMDYwLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDUzMDYxLDUzMDYyLDUzMDYzLDUzMDY0LDUzMDY1LDUzMDY2LDUzMDY3LDUzMDY4LDUzMDY5LDUzMDcwLDUzMDcxLDUzMDcyLDUzMDczLDUzMDc0LDUzMDc1LDUzMDc4LDUzMDc5LDUzMDgxLDUzMDgyLDUzMDgzLDUzMDg1''@;'; + put 'put ''LDUzMDg2LDUzMDg3LDUzMDg4LDUzMDg5LDUzMDkwLDUzMDkxLDUzMDk0LDUzMDk2LDUzMDk4LDUzMDk5LDUzMTAwLDQ0MzAwLDQ0MzAxLDQ0MzAzLDQ0MzA1LDQ0MzEyLDQ0MzE2LDQ0MzIwLDQ0MzI5LDQ0MzMyLDQ0MzMzLDQ0MzQwLDQ0MzQxLDQ0MzQ0LDQ0MzQ4LDQ0MzU2LDQ0MzU3LDQ0''@;'; + put 'put ''MzU5LDQ0MzYxLDQ0MzY4LDQ0MzcyLDQ0Mzc2LDQ0Mzg1LDQ0Mzg3LDQ0Mzk2LDQ0Mzk3LDQ0NDAwLDQ0NDAzLDQ0NDA0LDQ0NDA1LDQ0NDA2LDQ0NDExLDQ0NDEyLDQ0NDEzLDQ0NDE1LDQ0NDE3LDQ0NDE4LDQ0NDI0LDQ0NDI1LDQ0NDI4LDQ0NDMyLDQ0NDQ0LDQ0NDQ1LDQ0NDUyLDQ0NDcx''@;'; + put 'put ''LDQ0NDgwLDQ0NDgxLDQ0NDg0LDQ0NDg4LDQ0NDk2LDQ0NDk3LDQ0NDk5LDQ0NTA4LDQ0NTEyLDQ0NTE2LDQ0NTM2LDQ0NTM3LDQ0NTQwLDQ0NTQzLDQ0NTQ0LDQ0NTQ1LDQ0NTUyLDQ0NTUzLDQ0NTU1LDQ0NTU3LDQ0NTY0LDQ0NTkyLDQ0NTkzLDQ0NTk2LDQ0NTk5LDQ0NjAwLDQ0NjAyLDQ0''@;'; + put 'put ''NjA4LDQ0NjA5LDQ0NjExLDQ0NjEzLDQ0NjE0LDQ0NjE4LDQ0NjIwLDQ0NjIxLDQ0NjIyLDQ0NjI0LDQ0NjI4LDQ0NjMwLDQ0NjM2LDQ0NjM3LDQ0NjM5LDQ0NjQwLDQ0NjQxLDQ0NjQ1LDQ0NjQ4LDQ0NjQ5LDQ0NjUyLDQ0NjU2LDQ0NjY0LDUzMTAxLDUzMTAyLDUzMTAzLDUzMTA2LDUzMTA3''@;'; + put 'put ''LDUzMTA5LDUzMTEwLDUzMTExLDUzMTEzLDUzMTE0LDUzMTE1LDUzMTE2LDUzMTE3LDUzMTE4LDUzMTE5LDUzMTIxLDUzMTIyLDUzMTIzLDUzMTI0LDUzMTI2LDUzMTI3LDUzMTI4LDUzMTI5LDUzMTMwLDUzMTMxLDUzMTMzLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDUzMTM0LDUz''@;'; + put 'put ''MTM1LDUzMTM2LDUzMTM3LDUzMTM4LDUzMTM5LDUzMTQwLDUzMTQxLDUzMTQyLDUzMTQzLDUzMTQ0LDUzMTQ1LDUzMTQ2LDUzMTQ3LDUzMTQ4LDUzMTQ5LDUzMTUwLDUzMTUxLDUzMTUyLDUzMTU0LDUzMTU1LDUzMTU2LDUzMTU3LDUzMTU4LDUzMTU5LDUzMTYxLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLDUzMTYyLDUzMTYzLDUzMTY0LDUzMTY1LDUzMTY2LDUzMTY3LDUzMTY5LDUzMTcwLDUzMTcxLDUzMTcyLDUzMTczLDUzMTc0LDUzMTc1LDUzMTc2LDUzMTc3LDUzMTc4LDUzMTc5LDUzMTgwLDUzMTgxLDUzMTgyLDUzMTgzLDUzMTg0LDUzMTg1LDUzMTg2LDUzMTg3LDUz''@;'; + put 'put ''MTg5LDUzMTkwLDUzMTkxLDUzMTkyLDUzMTkzLDUzMTk0LDUzMTk1LDQ0NjY1LDQ0NjY3LDQ0NjY4LDQ0NjY5LDQ0Njc2LDQ0Njc3LDQ0Njg0LDQ0NzMyLDQ0NzMzLDQ0NzM0LDQ0NzM2LDQ0NzQwLDQ0NzQ4LDQ0NzQ5LDQ0NzUxLDQ0NzUyLDQ0NzUzLDQ0NzYwLDQ0NzYxLDQ0NzY0LDQ0Nzc2''@;'; + put 'put ''LDQ0Nzc5LDQ0NzgxLDQ0Nzg4LDQ0NzkyLDQ0Nzk2LDQ0ODA3LDQ0ODA4LDQ0ODEzLDQ0ODE2LDQ0ODQ0LDQ0ODQ1LDQ0ODQ4LDQ0ODUwLDQ0ODUyLDQ0ODYwLDQ0ODYxLDQ0ODYzLDQ0ODY1LDQ0ODY2LDQ0ODY3LDQ0ODcyLDQ0ODczLDQ0ODgwLDQ0ODkyLDQ0ODkzLDQ0OTAwLDQ0OTAxLDQ0''@;'; + put 'put ''OTIxLDQ0OTI4LDQ0OTMyLDQ0OTM2LDQ0OTQ0LDQ0OTQ1LDQ0OTQ5LDQ0OTU2LDQ0OTg0LDQ0OTg1LDQ0OTg4LDQ0OTkyLDQ0OTk5LDQ1ZTMsNDUwMDEsNDUwMDMsNDUwMDUsNDUwMDYsNDUwMTIsNDUwMjAsNDUwMzIsNDUwMzMsNDUwNDAsNDUwNDEsNDUwNDQsNDUwNDgsNDUwNTYsNDUwNTcs''@;'; + put 'put ''NDUwNjAsNDUwNjgsNDUwNzIsNDUwNzYsNDUwODQsNDUwODUsNDUwOTYsNDUxMjQsNDUxMjUsNDUxMjgsNDUxMzAsNDUxMzIsNDUxMzQsNDUxMzksNDUxNDAsNDUxNDEsNDUxNDMsNDUxNDUsNTMxOTYsNTMxOTcsNTMxOTgsNTMxOTksNTMyMDAsNTMyMDEsNTMyMDIsNTMyMDMsNTMyMDQsNTMy''@;'; + put 'put ''MDUsNTMyMDYsNTMyMDcsNTMyMDgsNTMyMDksNTMyMTAsNTMyMTEsNTMyMTIsNTMyMTMsNTMyMTQsNTMyMTUsNTMyMTgsNTMyMTksNTMyMjEsNTMyMjIsNTMyMjMsNTMyMjUsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTMyMjYsNTMyMjcsNTMyMjgsNTMyMjksNTMyMzAsNTMyMzEs''@;'; + put 'put ''NTMyMzQsNTMyMzYsNTMyMzgsNTMyMzksNTMyNDAsNTMyNDEsNTMyNDIsNTMyNDMsNTMyNDUsNTMyNDYsNTMyNDcsNTMyNDksNTMyNTAsNTMyNTEsNTMyNTMsNTMyNTQsNTMyNTUsNTMyNTYsNTMyNTcsNTMyNTgsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTMyNTksNTMyNjAsNTMy''@;'; + put 'put ''NjEsNTMyNjIsNTMyNjMsNTMyNjQsNTMyNjYsNTMyNjcsNTMyNjgsNTMyNjksNTMyNzAsNTMyNzEsNTMyNzMsNTMyNzQsNTMyNzUsNTMyNzYsNTMyNzcsNTMyNzgsNTMyNzksNTMyODAsNTMyODEsNTMyODIsNTMyODMsNTMyODQsNTMyODUsNTMyODYsNTMyODcsNTMyODgsNTMyODksNTMyOTAs''@;'; + put 'put ''NTMyOTEsNTMyOTIsNDUxNDksNDUxODAsNDUxODEsNDUxODQsNDUxODgsNDUxOTYsNDUxOTcsNDUxOTksNDUyMDEsNDUyMDgsNDUyMDksNDUyMTAsNDUyMTIsNDUyMTUsNDUyMTYsNDUyMTcsNDUyMTgsNDUyMjQsNDUyMjUsNDUyMjcsNDUyMjgsNDUyMjksNDUyMzAsNDUyMzEsNDUyMzMsNDUy''@;'; + put 'put ''MzUsNDUyMzYsNDUyMzcsNDUyNDAsNDUyNDQsNDUyNTIsNDUyNTMsNDUyNTUsNDUyNTYsNDUyNTcsNDUyNjQsNDUyNjUsNDUyNjgsNDUyNzIsNDUyODAsNDUyODUsNDUzMjAsNDUzMjEsNDUzMjMsNDUzMjQsNDUzMjgsNDUzMzAsNDUzMzEsNDUzMzYsNDUzMzcsNDUzMzksNDUzNDAsNDUzNDEs''@;'; + put 'put ''NDUzNDcsNDUzNDgsNDUzNDksNDUzNTIsNDUzNTYsNDUzNjQsNDUzNjUsNDUzNjcsNDUzNjgsNDUzNjksNDUzNzYsNDUzNzcsNDUzODAsNDUzODQsNDUzOTIsNDUzOTMsNDUzOTYsNDUzOTcsNDU0MDAsNDU0MDQsNDU0MDgsNDU0MzIsNDU0MzMsNDU0MzYsNDU0NDAsNDU0NDIsNDU0NDgsNDU0''@;'; + put 'put ''NDksNDU0NTEsNDU0NTMsNDU0NTgsNDU0NTksNDU0NjAsNDU0NjQsNDU0NjgsNDU0ODAsNDU1MTYsNDU1MjAsNDU1MjQsNDU1MzIsNDU1MzMsNTMyOTQsNTMyOTUsNTMyOTYsNTMyOTcsNTMyOTgsNTMyOTksNTMzMDIsNTMzMDMsNTMzMDUsNTMzMDYsNTMzMDcsNTMzMDksNTMzMTAsNTMzMTEs''@;'; + put 'put ''NTMzMTIsNTMzMTMsNTMzMTQsNTMzMTUsNTMzMTgsNTMzMjAsNTMzMjIsNTMzMjMsNTMzMjQsNTMzMjUsNTMzMjYsNTMzMjcsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTMzMjksNTMzMzAsNTMzMzEsNTMzMzMsNTMzMzQsNTMzMzUsNTMzMzcsNTMzMzgsNTMzMzksNTMzNDAsNTMz''@;'; + put 'put ''NDEsNTMzNDIsNTMzNDMsNTMzNDUsNTMzNDYsNTMzNDcsNTMzNDgsNTMzNDksNTMzNTAsNTMzNTEsNTMzNTIsNTMzNTMsNTMzNTQsNTMzNTUsNTMzNTgsNTMzNTksbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTMzNjEsNTMzNjIsNTMzNjMsNTMzNjUsNTMzNjYsNTMzNjcsNTMzNjgs''@;'; + put 'put ''NTMzNjksNTMzNzAsNTMzNzEsNTMzNzQsNTMzNzUsNTMzNzYsNTMzNzgsNTMzNzksNTMzODAsNTMzODEsNTMzODIsNTMzODMsNTMzODQsNTMzODUsNTMzODYsNTMzODcsNTMzODgsNTMzODksNTMzOTAsNTMzOTEsNTMzOTIsNTMzOTMsNTMzOTQsNTMzOTUsNTMzOTYsNDU1MzUsNDU1NDQsNDU1''@;'; + put 'put ''NDUsNDU1NDgsNDU1NTIsNDU1NjEsNDU1NjMsNDU1NjUsNDU1NzIsNDU1NzMsNDU1NzYsNDU1NzksNDU1ODAsNDU1ODgsNDU1ODksNDU1OTEsNDU1OTMsNDU2MDAsNDU2MjAsNDU2MjgsNDU2NTYsNDU2NjAsNDU2NjQsNDU2NzIsNDU2NzMsNDU2ODQsNDU2ODUsNDU2OTIsNDU3MDAsNDU3MDEs''@;'; + put 'put ''NDU3MDUsNDU3MTIsNDU3MTMsNDU3MTYsNDU3MjAsNDU3MjEsNDU3MjIsNDU3MjgsNDU3MjksNDU3MzEsNDU3MzMsNDU3MzQsNDU3MzgsNDU3NDAsNDU3NDQsNDU3NDgsNDU3NjgsNDU3NjksNDU3NzIsNDU3NzYsNDU3NzgsNDU3ODQsNDU3ODUsNDU3ODcsNDU3ODksNDU3OTQsNDU3OTYsNDU3''@;'; + put 'put ''OTcsNDU3OTgsNDU4MDAsNDU4MDMsNDU4MDQsNDU4MDUsNDU4MDYsNDU4MDcsNDU4MTEsNDU4MTIsNDU4MTMsNDU4MTUsNDU4MTYsNDU4MTcsNDU4MTgsNDU4MTksNDU4MjMsNDU4MjQsNDU4MjUsNDU4MjgsNDU4MzIsNDU4NDAsNDU4NDEsNDU4NDMsNDU4NDQsNDU4NDUsNDU4NTIsNDU5MDgs''@;'; + put 'put ''NDU5MDksNDU5MTAsNDU5MTIsNDU5MTUsNDU5MTYsNDU5MTgsNDU5MTksNDU5MjQsNDU5MjUsNTMzOTcsNTMzOTgsNTMzOTksNTM0MDAsNTM0MDEsNTM0MDIsNTM0MDMsNTM0MDQsNTM0MDUsNTM0MDYsNTM0MDcsNTM0MDgsNTM0MDksNTM0MTAsNTM0MTEsNTM0MTQsNTM0MTUsNTM0MTcsNTM0''@;'; + put 'put ''MTgsNTM0MTksNTM0MjEsNTM0MjIsNTM0MjMsNTM0MjQsNTM0MjUsNTM0MjYsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTM0MjcsNTM0MzAsNTM0MzIsNTM0MzQsNTM0MzUsNTM0MzYsNTM0MzcsNTM0MzgsNTM0MzksNTM0NDIsNTM0NDMsNTM0NDUsNTM0NDYsNTM0NDcsNTM0NTAs''@;'; + put 'put ''NTM0NTEsNTM0NTIsNTM0NTMsNTM0NTQsNTM0NTUsNTM0NTgsNTM0NjIsNTM0NjMsNTM0NjQsNTM0NjUsNTM0NjYsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTM0NjcsNTM0NzAsNTM0NzEsNTM0NzMsNTM0NzQsNTM0NzUsNTM0NzcsNTM0NzgsNTM0NzksNTM0ODAsNTM0ODEsNTM0''@;'; + put 'put ''ODIsNTM0ODMsNTM0ODYsNTM0OTAsNTM0OTEsNTM0OTIsNTM0OTMsNTM0OTQsNTM0OTUsNTM0OTcsNTM0OTgsNTM0OTksNTM1MDAsNTM1MDEsNTM1MDIsNTM1MDMsNTM1MDQsNTM1MDUsNTM1MDYsNTM1MDcsNTM1MDgsNDU5MjcsNDU5MjksNDU5MzEsNDU5MzQsNDU5MzYsNDU5MzcsNDU5NDAs''@;'; + put 'put ''NDU5NDQsNDU5NTIsNDU5NTMsNDU5NTUsNDU5NTYsNDU5NTcsNDU5NjQsNDU5NjgsNDU5NzIsNDU5ODQsNDU5ODUsNDU5OTIsNDU5OTYsNDYwMjAsNDYwMjEsNDYwMjQsNDYwMjcsNDYwMjgsNDYwMzAsNDYwMzIsNDYwMzYsNDYwMzcsNDYwMzksNDYwNDEsNDYwNDMsNDYwNDUsNDYwNDgsNDYw''@;'; + put 'put ''NTIsNDYwNTYsNDYwNzYsNDYwOTYsNDYxMDQsNDYxMDgsNDYxMTIsNDYxMjAsNDYxMjEsNDYxMjMsNDYxMzIsNDYxNjAsNDYxNjEsNDYxNjQsNDYxNjgsNDYxNzYsNDYxNzcsNDYxNzksNDYxODEsNDYxODgsNDYyMDgsNDYyMTYsNDYyMzcsNDYyNDQsNDYyNDgsNDYyNTIsNDYyNjEsNDYyNjMs''@;'; + put 'put ''NDYyNjUsNDYyNzIsNDYyNzYsNDYyODAsNDYyODgsNDYyOTMsNDYzMDAsNDYzMDEsNDYzMDQsNDYzMDcsNDYzMDgsNDYzMTAsNDYzMTYsNDYzMTcsNDYzMTksNDYzMjEsNDYzMjgsNDYzNTYsNDYzNTcsNDYzNjAsNDYzNjMsNDYzNjQsNDYzNzIsNDYzNzMsNDYzNzUsNDYzNzYsNDYzNzcsNDYz''@;'; + put 'put ''NzgsNDYzODQsNDYzODUsNDYzODgsNDYzOTIsNTM1MDksNTM1MTAsNTM1MTEsNTM1MTIsNTM1MTMsNTM1MTQsNTM1MTUsNTM1MTYsNTM1MTgsNTM1MTksNTM1MjAsNTM1MjEsNTM1MjIsNTM1MjMsNTM1MjQsNTM1MjUsNTM1MjYsNTM1MjcsNTM1MjgsNTM1MjksNTM1MzAsNTM1MzEsNTM1MzIs''@;'; + put 'put ''NTM1MzMsNTM1MzQsNTM1MzUsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTM1MzYsNTM1MzcsNTM1MzgsNTM1MzksNTM1NDAsNTM1NDEsNTM1NDIsNTM1NDMsNTM1NDQsNTM1NDUsNTM1NDYsNTM1NDcsNTM1NDgsNTM1NDksNTM1NTAsNTM1NTEsNTM1NTQsNTM1NTUsNTM1NTcsNTM1''@;'; + put 'put ''NTgsNTM1NTksNTM1NjEsNTM1NjMsNTM1NjQsNTM1NjUsNTM1NjYsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTM1NjcsNTM1NzAsNTM1NzQsNTM1NzUsNTM1NzYsNTM1NzcsNTM1NzgsNTM1NzksNTM1ODIsNTM1ODMsNTM1ODUsNTM1ODYsNTM1ODcsNTM1ODksNTM1OTAsNTM1OTEs''@;'; + put 'put ''NTM1OTIsNTM1OTMsNTM1OTQsNTM1OTUsNTM1OTgsNTM2MDAsNTM2MDIsNTM2MDMsNTM2MDQsNTM2MDUsNTM2MDYsNTM2MDcsNTM2MDksNTM2MTAsNTM2MTEsNTM2MTMsNDY0MDAsNDY0MDEsNDY0MDMsNDY0MDQsNDY0MDUsNDY0MTEsNDY0MTIsNDY0MTMsNDY0MTYsNDY0MjAsNDY0MjgsNDY0''@;'; + put 'put ''MjksNDY0MzEsNDY0MzIsNDY0MzMsNDY0OTYsNDY0OTcsNDY1MDAsNDY1MDQsNDY1MDYsNDY1MDcsNDY1MTIsNDY1MTMsNDY1MTUsNDY1MTYsNDY1MTcsNDY1MjMsNDY1MjQsNDY1MjUsNDY1MjgsNDY1MzIsNDY1NDAsNDY1NDEsNDY1NDMsNDY1NDQsNDY1NDUsNDY1NTIsNDY1NzIsNDY2MDgs''@;'; + put 'put ''NDY2MDksNDY2MTIsNDY2MTYsNDY2MjksNDY2MzYsNDY2NDQsNDY2NjQsNDY2OTIsNDY2OTYsNDY3NDgsNDY3NDksNDY3NTIsNDY3NTYsNDY3NjMsNDY3NjQsNDY3NjksNDY4MDQsNDY4MzIsNDY4MzYsNDY4NDAsNDY4NDgsNDY4NDksNDY4NTMsNDY4ODgsNDY4ODksNDY4OTIsNDY4OTUsNDY4''@;'; + put 'put ''OTYsNDY5MDQsNDY5MDUsNDY5MDcsNDY5MTYsNDY5MjAsNDY5MjQsNDY5MzIsNDY5MzMsNDY5NDQsNDY5NDgsNDY5NTIsNDY5NjAsNDY5NjEsNDY5NjMsNDY5NjUsNDY5NzIsNDY5NzMsNDY5NzYsNDY5ODAsNDY5ODgsNDY5ODksNDY5OTEsNDY5OTIsNDY5OTMsNDY5OTQsNDY5OTgsNDY5OTks''@;'; + put 'put ''NTM2MTQsNTM2MTUsNTM2MTYsNTM2MTcsNTM2MTgsNTM2MTksNTM2MjAsNTM2MjEsNTM2MjIsNTM2MjMsNTM2MjQsNTM2MjUsNTM2MjYsNTM2MjcsNTM2MjksNTM2MzAsNTM2MzEsNTM2MzIsNTM2MzMsNTM2MzQsNTM2MzUsNTM2MzcsNTM2MzgsNTM2MzksNTM2NDEsNTM2NDIsbnVsbCxudWxs''@;'; + put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsNTM2NDMsNTM2NDQsNTM2NDUsNTM2NDYsNTM2NDcsNTM2NDgsNTM2NDksNTM2NTAsNTM2NTEsNTM2NTIsNTM2NTMsNTM2NTQsNTM2NTUsNTM2NTYsNTM2NTcsNTM2NTgsNTM2NTksNTM2NjAsNTM2NjEsNTM2NjIsNTM2NjMsNTM2NjYsNTM2NjcsNTM2Njks''@;'; + put 'put ''NTM2NzAsNTM2NzEsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTM2NzMsNTM2NzQsNTM2NzUsNTM2NzYsNTM2NzcsNTM2NzgsNTM2NzksNTM2ODIsNTM2ODQsNTM2ODYsNTM2ODcsNTM2ODgsNTM2ODksNTM2OTEsNTM2OTMsNTM2OTQsNTM2OTUsNTM2OTcsNTM2OTgsNTM2OTksNTM3''@;'; + put 'put ''MDAsNTM3MDEsNTM3MDIsNTM3MDMsNTM3MDQsNTM3MDUsNTM3MDYsNTM3MDcsNTM3MDgsNTM3MDksNTM3MTAsNTM3MTEsNDdlMyw0NzAwMSw0NzAwNCw0NzAwOCw0NzAxNiw0NzAxNyw0NzAxOSw0NzAyMCw0NzAyMSw0NzAyOCw0NzAyOSw0NzAzMiw0NzA0Nyw0NzA0OSw0NzA4NCw0NzA4NSw0''@;'; + put 'put ''NzA4OCw0NzA5Miw0NzEwMCw0NzEwMSw0NzEwMyw0NzEwNCw0NzEwNSw0NzExMSw0NzExMiw0NzExMyw0NzExNiw0NzEyMCw0NzEyOCw0NzEyOSw0NzEzMSw0NzEzMyw0NzE0MCw0NzE0MSw0NzE0NCw0NzE0OCw0NzE1Niw0NzE1Nyw0NzE1OSw0NzE2MCw0NzE2MSw0NzE2OCw0NzE3Miw0NzE4''@;'; + put 'put ''NSw0NzE4Nyw0NzE5Niw0NzE5Nyw0NzIwMCw0NzIwNCw0NzIxMiw0NzIxMyw0NzIxNSw0NzIxNyw0NzIyNCw0NzIyOCw0NzI0NSw0NzI3Miw0NzI4MCw0NzI4NCw0NzI4OCw0NzI5Niw0NzI5Nyw0NzI5OSw0NzMwMSw0NzMwOCw0NzMxMiw0NzMxNiw0NzMyNSw0NzMyNyw0NzMyOSw0NzMzNiw0''@;'; + put 'put ''NzMzNyw0NzM0MCw0NzM0NCw0NzM1Miw0NzM1Myw0NzM1NSw0NzM1Nyw0NzM2NCw0NzM4NCw0NzM5Miw0NzQyMCw0NzQyMSw0NzQyNCw0NzQyOCw0NzQzNiw0NzQzOSw0NzQ0MSw0NzQ0OCw0NzQ0OSw0NzQ1Miw0NzQ1Niw0NzQ2NCw0NzQ2NSw1MzcxMiw1MzcxMyw1MzcxNCw1MzcxNSw1Mzcx''@;'; + put 'put ''Niw1MzcxNyw1MzcxOCw1MzcxOSw1MzcyMSw1MzcyMiw1MzcyMyw1MzcyNCw1MzcyNSw1MzcyNiw1MzcyNyw1MzcyOCw1MzcyOSw1MzczMCw1MzczMSw1MzczMiw1MzczMyw1MzczNCw1MzczNSw1MzczNiw1MzczNyw1MzczOCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1MzczOSw1''@;'; + put 'put ''Mzc0MCw1Mzc0MSw1Mzc0Miw1Mzc0Myw1Mzc0NCw1Mzc0NSw1Mzc0Niw1Mzc0Nyw1Mzc0OSw1Mzc1MCw1Mzc1MSw1Mzc1Myw1Mzc1NCw1Mzc1NSw1Mzc1Niw1Mzc1Nyw1Mzc1OCw1Mzc1OSw1Mzc2MCw1Mzc2MSw1Mzc2Miw1Mzc2Myw1Mzc2NCw1Mzc2NSw1Mzc2NixudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCw1Mzc2OCw1Mzc3MCw1Mzc3MSw1Mzc3Miw1Mzc3Myw1Mzc3NCw1Mzc3NSw1Mzc3Nyw1Mzc3OCw1Mzc3OSw1Mzc4MCw1Mzc4MSw1Mzc4Miw1Mzc4Myw1Mzc4NCw1Mzc4NSw1Mzc4Niw1Mzc4Nyw1Mzc4OCw1Mzc4OSw1Mzc5MCw1Mzc5MSw1Mzc5Miw1Mzc5Myw1Mzc5NCw1''@;'; + put 'put ''Mzc5NSw1Mzc5Niw1Mzc5Nyw1Mzc5OCw1Mzc5OSw1MzgwMCw1MzgwMSw0NzQ2Nyw0NzQ2OSw0NzQ3Niw0NzQ3Nyw0NzQ4MCw0NzQ4NCw0NzQ5Miw0NzQ5Myw0NzQ5NSw0NzQ5Nyw0NzQ5OCw0NzUwMSw0NzUwMiw0NzUzMiw0NzUzMyw0NzUzNiw0NzU0MCw0NzU0OCw0NzU0OSw0NzU1MSw0NzU1''@;'; + put 'put ''Myw0NzU2MCw0NzU2MSw0NzU2NCw0NzU2Niw0NzU2Nyw0NzU2OCw0NzU2OSw0NzU3MCw0NzU3Niw0NzU3Nyw0NzU3OSw0NzU4MSw0NzU4Miw0NzU4NSw0NzU4Nyw0NzU4OCw0NzU4OSw0NzU5Miw0NzU5Niw0NzYwNCw0NzYwNSw0NzYwNyw0NzYwOCw0NzYwOSw0NzYxMCw0NzYxNiw0NzYxNyw0''@;'; + put 'put ''NzYyNCw0NzYzNyw0NzY3Miw0NzY3Myw0NzY3Niw0NzY4MCw0NzY4Miw0NzY4OCw0NzY4OSw0NzY5MSw0NzY5Myw0NzY5NCw0NzY5OSw0NzcwMCw0NzcwMSw0NzcwNCw0NzcwOCw0NzcxNiw0NzcxNyw0NzcxOSw0NzcyMCw0NzcyMSw0NzcyOCw0NzcyOSw0NzczMiw0NzczNiw0Nzc0Nyw0Nzc0''@;'; + put 'put ''OCw0Nzc0OSw0Nzc1MSw0Nzc1Niw0Nzc4NCw0Nzc4NSw0Nzc4Nyw0Nzc4OCw0Nzc5Miw0Nzc5NCw0NzgwMCw0NzgwMSw0NzgwMyw0NzgwNSw0NzgxMiw0NzgxNiw0NzgzMiw0NzgzMyw0Nzg2OCw1MzgwMiw1MzgwMyw1MzgwNiw1MzgwNyw1MzgwOSw1MzgxMCw1MzgxMSw1MzgxMyw1MzgxNCw1''@;'; + put 'put ''MzgxNSw1MzgxNiw1MzgxNyw1MzgxOCw1MzgxOSw1MzgyMiw1MzgyNCw1MzgyNiw1MzgyNyw1MzgyOCw1MzgyOSw1MzgzMCw1MzgzMSw1MzgzMyw1MzgzNCw1MzgzNSw1MzgzNixudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1MzgzNyw1MzgzOCw1MzgzOSw1Mzg0MCw1Mzg0MSw1Mzg0''@;'; + put 'put ''Miw1Mzg0Myw1Mzg0NCw1Mzg0NSw1Mzg0Niw1Mzg0Nyw1Mzg0OCw1Mzg0OSw1Mzg1MCw1Mzg1MSw1Mzg1Myw1Mzg1NCw1Mzg1NSw1Mzg1Niw1Mzg1Nyw1Mzg1OCw1Mzg1OSw1Mzg2MSw1Mzg2Miw1Mzg2Myw1Mzg2NCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1Mzg2NSw1Mzg2Niw1''@;'; + put 'put ''Mzg2Nyw1Mzg2OCw1Mzg2OSw1Mzg3MCw1Mzg3MSw1Mzg3Miw1Mzg3Myw1Mzg3NCw1Mzg3NSw1Mzg3Niw1Mzg3Nyw1Mzg3OCw1Mzg3OSw1Mzg4MCw1Mzg4MSw1Mzg4Miw1Mzg4Myw1Mzg4NCw1Mzg4NSw1Mzg4Niw1Mzg4Nyw1Mzg5MCw1Mzg5MSw1Mzg5Myw1Mzg5NCw1Mzg5NSw1Mzg5Nyw1Mzg5''@;'; + put 'put ''OCw1Mzg5OSw1MzkwMCw0Nzg3Miw0Nzg3Niw0Nzg4NSw0Nzg4Nyw0Nzg4OSw0Nzg5Niw0NzkwMCw0NzkwNCw0NzkxMyw0NzkxNSw0NzkyNCw0NzkyNSw0NzkyNiw0NzkyOCw0NzkzMSw0NzkzMiw0NzkzMyw0NzkzNCw0Nzk0MCw0Nzk0MSw0Nzk0Myw0Nzk0NSw0Nzk0OSw0Nzk1MSw0Nzk1Miw0''@;'; + put 'put ''Nzk1Niw0Nzk2MCw0Nzk2OSw0Nzk3MSw0Nzk4MCw0ODAwOCw0ODAxMiw0ODAxNiw0ODAzNiw0ODA0MCw0ODA0NCw0ODA1Miw0ODA1NSw0ODA2NCw0ODA2OCw0ODA3Miw0ODA4MCw0ODA4Myw0ODEyMCw0ODEyMSw0ODEyNCw0ODEyNyw0ODEyOCw0ODEzMCw0ODEzNiw0ODEzNyw0ODEzOSw0ODE0''@;'; + put 'put ''MCw0ODE0MSw0ODE0Myw0ODE0NSw0ODE0OCw0ODE0OSw0ODE1MCw0ODE1MSw0ODE1Miw0ODE1NSw0ODE1Niw0ODE1Nyw0ODE1OCw0ODE1OSw0ODE2NCw0ODE2NSw0ODE2Nyw0ODE2OSw0ODE3Myw0ODE3Niw0ODE3Nyw0ODE4MCw0ODE4NCw0ODE5Miw0ODE5Myw0ODE5NSw0ODE5Niw0ODE5Nyw0''@;'; + put 'put ''ODIwMSw0ODIwNCw0ODIwNSw0ODIwOCw0ODIyMSw0ODI2MCw0ODI2MSw0ODI2NCw0ODI2Nyw0ODI2OCw0ODI3MCw0ODI3Niw0ODI3Nyw0ODI3OSw1MzkwMSw1MzkwMiw1MzkwMyw1MzkwNiw1MzkwNyw1MzkwOCw1MzkxMCw1MzkxMSw1MzkxMiw1MzkxMyw1MzkxNCw1MzkxNSw1MzkxNyw1Mzkx''@;'; + put 'put ''OCw1MzkxOSw1MzkyMSw1MzkyMiw1MzkyMyw1MzkyNSw1MzkyNiw1MzkyNyw1MzkyOCw1MzkyOSw1MzkzMCw1MzkzMSw1MzkzMyxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1MzkzNCw1MzkzNSw1MzkzNiw1MzkzOCw1MzkzOSw1Mzk0MCw1Mzk0MSw1Mzk0Miw1Mzk0Myw1Mzk0Niw1''@;'; + put 'put ''Mzk0Nyw1Mzk0OSw1Mzk1MCw1Mzk1Myw1Mzk1NSw1Mzk1Niw1Mzk1Nyw1Mzk1OCw1Mzk1OSw1Mzk2Miw1Mzk2NCw1Mzk2NSw1Mzk2Niw1Mzk2Nyw1Mzk2OCw1Mzk2OSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1Mzk3MCw1Mzk3MSw1Mzk3Myw1Mzk3NCw1Mzk3NSw1Mzk3Nyw1Mzk3''@;'; + put 'put ''OCw1Mzk3OSw1Mzk4MSw1Mzk4Miw1Mzk4Myw1Mzk4NCw1Mzk4NSw1Mzk4Niw1Mzk4Nyw1Mzk5MCw1Mzk5MSw1Mzk5Miw1Mzk5Myw1Mzk5NCw1Mzk5NSw1Mzk5Niw1Mzk5Nyw1Mzk5OCw1Mzk5OSw1NDAwMiw1NDAwMyw1NDAwNSw1NDAwNiw1NDAwNyw1NDAwOSw1NDAxMCw0ODI4MSw0ODI4Miw0''@;'; + put 'put ''ODI4OCw0ODI4OSw0ODI5Miw0ODI5NSw0ODI5Niw0ODMwNCw0ODMwNSw0ODMwNyw0ODMwOCw0ODMwOSw0ODMxNiw0ODMxNyw0ODMyMCw0ODMyNCw0ODMzMyw0ODMzNSw0ODMzNiw0ODMzNyw0ODM0MSw0ODM0NCw0ODM0OCw0ODM3Miw0ODM3Myw0ODM3NCw0ODM3Niw0ODM4MCw0ODM4OCw0ODM4''@;'; + put 'put ''OSw0ODM5MSw0ODM5Myw0ODQwMCw0ODQwNCw0ODQyMCw0ODQyOCw0ODQ0OCw0ODQ1Niw0ODQ1Nyw0ODQ2MCw0ODQ2NCw0ODQ3Miw0ODQ3Myw0ODQ4NCw0ODQ4OCw0ODUxMiw0ODUxMyw0ODUxNiw0ODUxOSw0ODUyMCw0ODUyMSw0ODUyMiw0ODUyOCw0ODUyOSw0ODUzMSw0ODUzMyw0ODUzNyw0''@;'; + put 'put ''ODUzOCw0ODU0MCw0ODU0OCw0ODU2MCw0ODU2OCw0ODU5Niw0ODU5Nyw0ODYwMCw0ODYwNCw0ODYxNyw0ODYyNCw0ODYyOCw0ODYzMiw0ODY0MCw0ODY0Myw0ODY0NSw0ODY1Miw0ODY1Myw0ODY1Niw0ODY2MCw0ODY2OCw0ODY2OSw0ODY3MSw0ODcwOCw0ODcwOSw0ODcxMiw0ODcxNiw0ODcx''@;'; + put 'put ''OCw0ODcyNCw0ODcyNSw0ODcyNyw0ODcyOSw0ODczMCw0ODczMSw0ODczNiw0ODczNyw0ODc0MCw1NDAxMSw1NDAxMiw1NDAxMyw1NDAxNCw1NDAxNSw1NDAxOCw1NDAyMCw1NDAyMiw1NDAyMyw1NDAyNCw1NDAyNSw1NDAyNiw1NDAyNyw1NDAzMSw1NDAzMyw1NDAzNCw1NDAzNSw1NDAzNyw1''@;'; + put 'put ''NDAzOSw1NDA0MCw1NDA0MSw1NDA0Miw1NDA0Myw1NDA0Niw1NDA1MCw1NDA1MSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1NDA1Miw1NDA1NCw1NDA1NSw1NDA1OCw1NDA1OSw1NDA2MSw1NDA2Miw1NDA2Myw1NDA2NSw1NDA2Niw1NDA2Nyw1NDA2OCw1NDA2OSw1NDA3MCw1NDA3''@;'; + put 'put ''MSw1NDA3NCw1NDA3OCw1NDA3OSw1NDA4MCw1NDA4MSw1NDA4Miw1NDA4Myw1NDA4Niw1NDA4Nyw1NDA4OCw1NDA4OSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1NDA5MCw1NDA5MSw1NDA5Miw1NDA5Myw1NDA5NCw1NDA5NSw1NDA5Niw1NDA5Nyw1NDA5OCw1NDA5OSw1NDEwMCw1''@;'; + put 'put ''NDEwMSw1NDEwMiw1NDEwMyw1NDEwNCw1NDEwNSw1NDEwNiw1NDEwNyw1NDEwOCw1NDEwOSw1NDExMCw1NDExMSw1NDExMiw1NDExMyw1NDExNCw1NDExNSw1NDExNiw1NDExNyw1NDExOCw1NDExOSw1NDEyMCw1NDEyMSw0ODc0NCw0ODc0Niw0ODc1Miw0ODc1Myw0ODc1NSw0ODc1Niw0ODc1''@;'; + put 'put ''Nyw0ODc2Myw0ODc2NCw0ODc2NSw0ODc2OCw0ODc3Miw0ODc4MCw0ODc4MSw0ODc4Myw0ODc4NCw0ODc4NSw0ODc5Miw0ODc5Myw0ODgwOCw0ODg0OCw0ODg0OSw0ODg1Miw0ODg1NSw0ODg1Niw0ODg2NCw0ODg2Nyw0ODg2OCw0ODg2OSw0ODg3Niw0ODg5Nyw0ODkwNCw0ODkwNSw0ODkyMCw0''@;'; + put 'put ''ODkyMSw0ODkyMyw0ODkyNCw0ODkyNSw0ODk2MCw0ODk2MSw0ODk2NCw0ODk2OCw0ODk3Niw0ODk3Nyw0ODk4MSw0OTA0NCw0OTA3Miw0OTA5Myw0OTEwMCw0OTEwMSw0OTEwNCw0OTEwOCw0OTExNiw0OTExOSw0OTEyMSw0OTIxMiw0OTIzMyw0OTI0MCw0OTI0NCw0OTI0OCw0OTI1Niw0OTI1''@;'; + put 'put ''Nyw0OTI5Niw0OTI5Nyw0OTMwMCw0OTMwNCw0OTMxMiw0OTMxMyw0OTMxNSw0OTMxNyw0OTMyNCw0OTMyNSw0OTMyNyw0OTMyOCw0OTMzMSw0OTMzMiw0OTMzMyw0OTMzNCw0OTM0MCw0OTM0MSw0OTM0Myw0OTM0NCw0OTM0NSw0OTM0OSw0OTM1Miw0OTM1Myw0OTM1Niw0OTM2MCw0OTM2OCw0''@;'; + put 'put ''OTM2OSw0OTM3MSw0OTM3Miw0OTM3Myw0OTM4MCw1NDEyMiw1NDEyMyw1NDEyNCw1NDEyNSw1NDEyNiw1NDEyNyw1NDEyOCw1NDEyOSw1NDEzMCw1NDEzMSw1NDEzMiw1NDEzMyw1NDEzNCw1NDEzNSw1NDEzNiw1NDEzNyw1NDEzOCw1NDEzOSw1NDE0Miw1NDE0Myw1NDE0NSw1NDE0Niw1NDE0''@;'; + put 'put ''Nyw1NDE0OSw1NDE1MCw1NDE1MSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1NDE1Miw1NDE1Myw1NDE1NCw1NDE1NSw1NDE1OCw1NDE2Miw1NDE2Myw1NDE2NCw1NDE2NSw1NDE2Niw1NDE2Nyw1NDE3MCw1NDE3MSw1NDE3Myw1NDE3NCw1NDE3NSw1NDE3Nyw1NDE3OCw1NDE3OSw1''@;'; + put 'put ''NDE4MCw1NDE4MSw1NDE4Miw1NDE4Myw1NDE4Niw1NDE4OCw1NDE5MCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1NDE5MSw1NDE5Miw1NDE5Myw1NDE5NCw1NDE5NSw1NDE5Nyw1NDE5OCw1NDE5OSw1NDIwMSw1NDIwMiw1NDIwMyw1NDIwNSw1NDIwNiw1NDIwNyw1NDIwOCw1NDIw''@;'; + put 'put ''OSw1NDIxMCw1NDIxMSw1NDIxNCw1NDIxNSw1NDIxOCw1NDIxOSw1NDIyMCw1NDIyMSw1NDIyMiw1NDIyMyw1NDIyNSw1NDIyNiw1NDIyNyw1NDIyOCw1NDIyOSw1NDIzMCw0OTM4MSw0OTM4NCw0OTM4OCw0OTM5Niw0OTM5Nyw0OTM5OSw0OTQwMSw0OTQwOCw0OTQxMiw0OTQxNiw0OTQyNCw0''@;'; + put 'put ''OTQyOSw0OTQzNiw0OTQzNyw0OTQzOCw0OTQzOSw0OTQ0MCw0OTQ0Myw0OTQ0NCw0OTQ0Niw0OTQ0Nyw0OTQ1Miw0OTQ1Myw0OTQ1NSw0OTQ1Niw0OTQ1Nyw0OTQ2Miw0OTQ2NCw0OTQ2NSw0OTQ2OCw0OTQ3Miw0OTQ4MCw0OTQ4MSw0OTQ4Myw0OTQ4NCw0OTQ4NSw0OTQ5Miw0OTQ5Myw0OTQ5''@;'; + put 'put ''Niw0OTUwMCw0OTUwOCw0OTUwOSw0OTUxMSw0OTUxMiw0OTUxMyw0OTUyMCw0OTUyNCw0OTUyOCw0OTU0MSw0OTU0OCw0OTU0OSw0OTU1MCw0OTU1Miw0OTU1Niw0OTU1OCw0OTU2NCw0OTU2NSw0OTU2Nyw0OTU2OSw0OTU3Myw0OTU3Niw0OTU3Nyw0OTU4MCw0OTU4NCw0OTU5Nyw0OTYwNCw0''@;'; + put 'put ''OTYwOCw0OTYxMiw0OTYyMCw0OTYyMyw0OTYyNCw0OTYzMiw0OTYzNiw0OTY0MCw0OTY0OCw0OTY0OSw0OTY1MSw0OTY2MCw0OTY2MSw0OTY2NCw0OTY2OCw0OTY3Niw0OTY3Nyw0OTY3OSw0OTY4MSw0OTY4OCw0OTY4OSw0OTY5Miw0OTY5NSw0OTY5Niw0OTcwNCw0OTcwNSw0OTcwNyw0OTcw''@;'; + put 'put ''OSw1NDIzMSw1NDIzMyw1NDIzNCw1NDIzNSw1NDIzNiw1NDIzNyw1NDIzOCw1NDIzOSw1NDI0MCw1NDI0Miw1NDI0NCw1NDI0NSw1NDI0Niw1NDI0Nyw1NDI0OCw1NDI0OSw1NDI1MCw1NDI1MSw1NDI1NCw1NDI1NSw1NDI1Nyw1NDI1OCw1NDI1OSw1NDI2MSw1NDI2Miw1NDI2MyxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1NDI2NCw1NDI2NSw1NDI2Niw1NDI2Nyw1NDI3MCw1NDI3Miw1NDI3NCw1NDI3NSw1NDI3Niw1NDI3Nyw1NDI3OCw1NDI3OSw1NDI4MSw1NDI4Miw1NDI4Myw1NDI4NCw1NDI4NSw1NDI4Niw1NDI4Nyw1NDI4OCw1NDI4OSw1NDI5MCw1NDI5MSw1NDI5''@;'; + put 'put ''Miw1NDI5Myw1NDI5NCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1NDI5NSw1NDI5Niw1NDI5Nyw1NDI5OCw1NDI5OSw1NDMwMCw1NDMwMiw1NDMwMyw1NDMwNCw1NDMwNSw1NDMwNiw1NDMwNyw1NDMwOCw1NDMwOSw1NDMxMCw1NDMxMSw1NDMxMiw1NDMxMyw1NDMxNCw1NDMxNSw1''@;'; + put 'put ''NDMxNiw1NDMxNyw1NDMxOCw1NDMxOSw1NDMyMCw1NDMyMSw1NDMyMiw1NDMyMyw1NDMyNCw1NDMyNSw1NDMyNiw1NDMyNyw0OTcxMSw0OTcxMyw0OTcxNCw0OTcxNiw0OTczNiw0OTc0NCw0OTc0NSw0OTc0OCw0OTc1Miw0OTc2MCw0OTc2NSw0OTc3Miw0OTc3Myw0OTc3Niw0OTc4MCw0OTc4''@;'; + put 'put ''OCw0OTc4OSw0OTc5MSw0OTc5Myw0OTgwMCw0OTgwMSw0OTgwOCw0OTgxNiw0OTgxOSw0OTgyMSw0OTgyOCw0OTgyOSw0OTgzMiw0OTgzNiw0OTgzNyw0OTg0NCw0OTg0NSw0OTg0Nyw0OTg0OSw0OTg4NCw0OTg4NSw0OTg4OCw0OTg5MSw0OTg5Miw0OTg5OSw0OTkwMCw0OTkwMSw0OTkwMyw0''@;'; + put 'put ''OTkwNSw0OTkxMCw0OTkxMiw0OTkxMyw0OTkxNSw0OTkxNiw0OTkyMCw0OTkyOCw0OTkyOSw0OTkzMiw0OTkzMyw0OTkzOSw0OTk0MCw0OTk0MSw0OTk0NCw0OTk0OCw0OTk1Niw0OTk1Nyw0OTk2MCw0OTk2MSw0OTk4OSw1MDAyNCw1MDAyNSw1MDAyOCw1MDAzMiw1MDAzNCw1MDA0MCw1MDA0''@;'; + put 'put ''MSw1MDA0NCw1MDA0NSw1MDA1Miw1MDA1Niw1MDA2MCw1MDExMiw1MDEzNiw1MDEzNyw1MDE0MCw1MDE0Myw1MDE0NCw1MDE0Niw1MDE1Miw1MDE1Myw1MDE1Nyw1MDE2NCw1MDE2NSw1MDE2OCw1MDE4NCw1MDE5Miw1MDIxMiw1MDIyMCw1MDIyNCw1NDMyOCw1NDMyOSw1NDMzMCw1NDMzMSw1''@;'; + put 'put ''NDMzMiw1NDMzMyw1NDMzNCw1NDMzNSw1NDMzNyw1NDMzOCw1NDMzOSw1NDM0MSw1NDM0Miw1NDM0Myw1NDM0NCw1NDM0NSw1NDM0Niw1NDM0Nyw1NDM0OCw1NDM0OSw1NDM1MCw1NDM1MSw1NDM1Miw1NDM1Myw1NDM1NCw1NDM1NSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1NDM1''@;'; + put 'put ''Niw1NDM1Nyw1NDM1OCw1NDM1OSw1NDM2MCw1NDM2MSw1NDM2Miw1NDM2Myw1NDM2NSw1NDM2Niw1NDM2Nyw1NDM2OSw1NDM3MCw1NDM3MSw1NDM3Myw1NDM3NCw1NDM3NSw1NDM3Niw1NDM3Nyw1NDM3OCw1NDM3OSw1NDM4MCw1NDM4Miw1NDM4NCw1NDM4NSw1NDM4NixudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCw1NDM4Nyw1NDM4OCw1NDM4OSw1NDM5MCw1NDM5MSw1NDM5NCw1NDM5NSw1NDM5Nyw1NDM5OCw1NDQwMSw1NDQwMyw1NDQwNCw1NDQwNSw1NDQwNiw1NDQwNyw1NDQxMCw1NDQxMiw1NDQxNCw1NDQxNSw1NDQxNiw1NDQxNyw1NDQxOCw1NDQxOSw1NDQyMSw1NDQy''@;'; + put 'put ''Miw1NDQyMyw1NDQyNCw1NDQyNSw1NDQyNiw1NDQyNyw1NDQyOCw1NDQyOSw1MDIyOCw1MDIzNiw1MDIzNyw1MDI0OCw1MDI3Niw1MDI3Nyw1MDI4MCw1MDI4NCw1MDI5Miw1MDI5Myw1MDI5Nyw1MDMwNCw1MDMyNCw1MDMzMiw1MDM2MCw1MDM2NCw1MDQwOSw1MDQxNiw1MDQxNyw1MDQyMCw1''@;'; + put 'put ''MDQyNCw1MDQyNiw1MDQzMSw1MDQzMiw1MDQzMyw1MDQ0NCw1MDQ0OCw1MDQ1Miw1MDQ2MCw1MDQ3Miw1MDQ3Myw1MDQ3Niw1MDQ4MCw1MDQ4OCw1MDQ4OSw1MDQ5MSw1MDQ5Myw1MDUwMCw1MDUwMSw1MDUwNCw1MDUwNSw1MDUwNiw1MDUwOCw1MDUwOSw1MDUxMCw1MDUxNSw1MDUxNiw1MDUx''@;'; + put 'put ''Nyw1MDUxOSw1MDUyMCw1MDUyMSw1MDUyNSw1MDUyNiw1MDUyOCw1MDUyOSw1MDUzMiw1MDUzNiw1MDU0NCw1MDU0NSw1MDU0Nyw1MDU0OCw1MDU0OSw1MDU1Niw1MDU1Nyw1MDU2MCw1MDU2NCw1MDU2Nyw1MDU3Miw1MDU3Myw1MDU3NSw1MDU3Nyw1MDU4MSw1MDU4Myw1MDU4NCw1MDU4OCw1''@;'; + put 'put ''MDU5Miw1MDYwMSw1MDYxMiw1MDYxMyw1MDYxNiw1MDYxNyw1MDYxOSw1MDYyMCw1MDYyMSw1MDYyMiw1MDYyOCw1MDYyOSw1MDYzMCw1MDYzMSw1MDYzMiw1MDYzMyw1MDYzNCw1MDYzNiw1MDYzOCw1NDQzMCw1NDQzMSw1NDQzMiw1NDQzMyw1NDQzNCw1NDQzNSw1NDQzNiw1NDQzNyw1NDQz''@;'; + put 'put ''OCw1NDQzOSw1NDQ0MCw1NDQ0Miw1NDQ0Myw1NDQ0NCw1NDQ0NSw1NDQ0Niw1NDQ0Nyw1NDQ0OCw1NDQ0OSw1NDQ1MCw1NDQ1MSw1NDQ1Miw1NDQ1Myw1NDQ1NCw1NDQ1NSw1NDQ1NixudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1NDQ1Nyw1NDQ1OCw1NDQ1OSw1NDQ2MCw1NDQ2MSw1''@;'; + put 'put ''NDQ2Miw1NDQ2Myw1NDQ2NCw1NDQ2NSw1NDQ2Niw1NDQ2Nyw1NDQ2OCw1NDQ2OSw1NDQ3MCw1NDQ3MSw1NDQ3Miw1NDQ3Myw1NDQ3NCw1NDQ3NSw1NDQ3Nyw1NDQ3OCw1NDQ3OSw1NDQ4MSw1NDQ4Miw1NDQ4Myw1NDQ4NSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1NDQ4Niw1NDQ4''@;'; + put 'put ''Nyw1NDQ4OCw1NDQ4OSw1NDQ5MCw1NDQ5MSw1NDQ5Myw1NDQ5NCw1NDQ5Niw1NDQ5Nyw1NDQ5OCw1NDQ5OSw1NDUwMCw1NDUwMSw1NDUwMiw1NDUwMyw1NDUwNSw1NDUwNiw1NDUwNyw1NDUwOSw1NDUxMCw1NDUxMSw1NDUxMyw1NDUxNCw1NDUxNSw1NDUxNiw1NDUxNyw1NDUxOCw1NDUxOSw1''@;'; + put 'put ''NDUyMSw1NDUyMiw1NDUyNCw1MDY0MCw1MDY0MSw1MDY0NCw1MDY0OCw1MDY1Niw1MDY1Nyw1MDY1OSw1MDY2MSw1MDY2OCw1MDY2OSw1MDY3MCw1MDY3Miw1MDY3Niw1MDY3OCw1MDY3OSw1MDY4NCw1MDY4NSw1MDY4Niw1MDY4Nyw1MDY4OCw1MDY4OSw1MDY5Myw1MDY5NCw1MDY5NSw1MDY5''@;'; + put 'put ''Niw1MDcwMCw1MDcwNCw1MDcxMiw1MDcxMyw1MDcxNSw1MDcxNiw1MDcyNCw1MDcyNSw1MDcyOCw1MDczMiw1MDczMyw1MDczNCw1MDczNiw1MDczOSw1MDc0MCw1MDc0MSw1MDc0Myw1MDc0NSw1MDc0Nyw1MDc1Miw1MDc1Myw1MDc1Niw1MDc2MCw1MDc2OCw1MDc2OSw1MDc3MSw1MDc3Miw1''@;'; + put 'put ''MDc3Myw1MDc4MCw1MDc4MSw1MDc4NCw1MDc5Niw1MDc5OSw1MDgwMSw1MDgwOCw1MDgwOSw1MDgxMiw1MDgxNiw1MDgyNCw1MDgyNSw1MDgyNyw1MDgyOSw1MDgzNiw1MDgzNyw1MDg0MCw1MDg0NCw1MDg1Miw1MDg1Myw1MDg1NSw1MDg1Nyw1MDg2NCw1MDg2NSw1MDg2OCw1MDg3Miw1MDg3''@;'; + put 'put ''Myw1MDg3NCw1MDg4MCw1MDg4MSw1MDg4Myw1MDg4NSw1MDg5Miw1MDg5Myw1MDg5Niw1MDkwMCw1MDkwOCw1MDkwOSw1MDkxMiw1MDkxMyw1MDkyMCw1NDUyNiw1NDUyNyw1NDUyOCw1NDUyOSw1NDUzMCw1NDUzMSw1NDUzMyw1NDUzNCw1NDUzNSw1NDUzNyw1NDUzOCw1NDUzOSw1NDU0MSw1''@;'; + put 'put ''NDU0Miw1NDU0Myw1NDU0NCw1NDU0NSw1NDU0Niw1NDU0Nyw1NDU1MCw1NDU1Miw1NDU1Myw1NDU1NCw1NDU1NSw1NDU1Niw1NDU1NyxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1NDU1OCw1NDU1OSw1NDU2MCw1NDU2MSw1NDU2Miw1NDU2Myw1NDU2NCw1NDU2NSw1NDU2Niw1NDU2''@;'; + put 'put ''Nyw1NDU2OCw1NDU2OSw1NDU3MCw1NDU3MSw1NDU3Miw1NDU3Myw1NDU3NCw1NDU3NSw1NDU3Niw1NDU3Nyw1NDU3OCw1NDU3OSw1NDU4MCw1NDU4MSw1NDU4Miw1NDU4MyxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1NDU4NCw1NDU4NSw1NDU4Niw1NDU4Nyw1NDU5MCw1NDU5MSw1''@;'; + put 'put ''NDU5Myw1NDU5NCw1NDU5NSw1NDU5Nyw1NDU5OCw1NDU5OSw1NDYwMCw1NDYwMSw1NDYwMiw1NDYwMyw1NDYwNiw1NDYwOCw1NDYxMCw1NDYxMSw1NDYxMiw1NDYxMyw1NDYxNCw1NDYxNSw1NDYxOCw1NDYxOSw1NDYyMSw1NDYyMiw1NDYyMyw1NDYyNSw1NDYyNiw1NDYyNyw1MDkyMSw1MDky''@;'; + put 'put ''NCw1MDkyOCw1MDkzNiw1MDkzNyw1MDk0MSw1MDk0OCw1MDk0OSw1MDk1Miw1MDk1Niw1MDk2NCw1MDk2NSw1MDk2Nyw1MDk2OSw1MDk3Niw1MDk3Nyw1MDk4MCw1MDk4NCw1MDk5Miw1MDk5Myw1MDk5NSw1MDk5Nyw1MDk5OSw1MTAwNCw1MTAwNSw1MTAwOCw1MTAxMiw1MTAxOCw1MTAyMCw1''@;'; + put 'put ''MTAyMSw1MTAyMyw1MTAyNSw1MTAyNiw1MTAyNyw1MTAyOCw1MTAyOSw1MTAzMCw1MTAzMSw1MTAzMiw1MTAzNiw1MTA0MCw1MTA0OCw1MTA1MSw1MTA2MCw1MTA2MSw1MTA2NCw1MTA2OCw1MTA2OSw1MTA3MCw1MTA3NSw1MTA3Niw1MTA3Nyw1MTA3OSw1MTA4MCw1MTA4MSw1MTA4Miw1MTA4''@;'; + put 'put ''Niw1MTA4OCw1MTA4OSw1MTA5Miw1MTA5NCw1MTA5NSw1MTA5Niw1MTA5OCw1MTEwNCw1MTEwNSw1MTEwNyw1MTEwOCw1MTEwOSw1MTExMCw1MTExNiw1MTExNyw1MTEyMCw1MTEyNCw1MTEzMiw1MTEzMyw1MTEzNSw1MTEzNiw1MTEzNyw1MTE0NCw1MTE0NSw1MTE0OCw1MTE1MCw1MTE1Miw1''@;'; + put 'put ''MTE2MCw1MTE2NSw1MTE3Miw1MTE3Niw1MTE4MCw1MTIwMCw1MTIwMSw1MTIwNCw1MTIwOCw1MTIxMCw1NDYyOCw1NDYzMCw1NDYzMSw1NDYzNCw1NDYzNiw1NDYzOCw1NDYzOSw1NDY0MCw1NDY0MSw1NDY0Miw1NDY0Myw1NDY0Niw1NDY0Nyw1NDY0OSw1NDY1MCw1NDY1MSw1NDY1Myw1NDY1''@;'; + put 'put ''NCw1NDY1NSw1NDY1Niw1NDY1Nyw1NDY1OCw1NDY1OSw1NDY2Miw1NDY2Niw1NDY2NyxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1NDY2OCw1NDY2OSw1NDY3MCw1NDY3MSw1NDY3Myw1NDY3NCw1NDY3NSw1NDY3Niw1NDY3Nyw1NDY3OCw1NDY3OSw1NDY4MCw1NDY4MSw1NDY4Miw1''@;'; + put 'put ''NDY4Myw1NDY4NCw1NDY4NSw1NDY4Niw1NDY4Nyw1NDY4OCw1NDY4OSw1NDY5MCw1NDY5MSw1NDY5Miw1NDY5NCw1NDY5NSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1NDY5Niw1NDY5Nyw1NDY5OCw1NDY5OSw1NDcwMCw1NDcwMSw1NDcwMiw1NDcwMyw1NDcwNCw1NDcwNSw1NDcw''@;'; + put 'put ''Niw1NDcwNyw1NDcwOCw1NDcwOSw1NDcxMCw1NDcxMSw1NDcxMiw1NDcxMyw1NDcxNCw1NDcxNSw1NDcxNiw1NDcxNyw1NDcxOCw1NDcxOSw1NDcyMCw1NDcyMSw1NDcyMiw1NDcyMyw1NDcyNCw1NDcyNSw1NDcyNiw1NDcyNyw1MTIxNiw1MTIxNyw1MTIxOSw1MTIyMSw1MTIyMiw1MTIyOCw1''@;'; + put 'put ''MTIyOSw1MTIzMiw1MTIzNiw1MTI0NCw1MTI0NSw1MTI0Nyw1MTI0OSw1MTI1Niw1MTI2MCw1MTI2NCw1MTI3Miw1MTI3Myw1MTI3Niw1MTI3Nyw1MTI4NCw1MTMxMiw1MTMxMyw1MTMxNiw1MTMyMCw1MTMyMiw1MTMyOCw1MTMyOSw1MTMzMSw1MTMzMyw1MTMzNCw1MTMzNSw1MTMzOSw1MTM0''@;'; + put 'put ''MCw1MTM0MSw1MTM0OCw1MTM1Nyw1MTM1OSw1MTM2MSw1MTM2OCw1MTM4OCw1MTM4OSw1MTM5Niw1MTQwMCw1MTQwNCw1MTQxMiw1MTQxMyw1MTQxNSw1MTQxNyw1MTQyNCw1MTQyNSw1MTQyOCw1MTQ0NSw1MTQ1Miw1MTQ1Myw1MTQ1Niw1MTQ2MCw1MTQ2MSw1MTQ2Miw1MTQ2OCw1MTQ2OSw1''@;'; + put 'put ''MTQ3MSw1MTQ3Myw1MTQ4MCw1MTUwMCw1MTUwOCw1MTUzNiw1MTUzNyw1MTU0MCw1MTU0NCw1MTU1Miw1MTU1Myw1MTU1NSw1MTU2NCw1MTU2OCw1MTU3Miw1MTU4MCw1MTU5Miw1MTU5Myw1MTU5Niw1MTYwMCw1MTYwOCw1MTYwOSw1MTYxMSw1MTYxMyw1MTY0OCw1MTY0OSw1MTY1Miw1MTY1''@;'; + put 'put ''NSw1MTY1Niw1MTY1OCw1MTY2NCw1MTY2NSw1MTY2Nyw1NDczMCw1NDczMSw1NDczMyw1NDczNCw1NDczNSw1NDczNyw1NDczOSw1NDc0MCw1NDc0MSw1NDc0Miw1NDc0Myw1NDc0Niw1NDc0OCw1NDc1MCw1NDc1MSw1NDc1Miw1NDc1Myw1NDc1NCw1NDc1NSw1NDc1OCw1NDc1OSw1NDc2MSw1''@;'; + put 'put ''NDc2Miw1NDc2Myw1NDc2NSw1NDc2NixudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1NDc2Nyw1NDc2OCw1NDc2OSw1NDc3MCw1NDc3MSw1NDc3NCw1NDc3Niw1NDc3OCw1NDc3OSw1NDc4MCw1NDc4MSw1NDc4Miw1NDc4Myw1NDc4Niw1NDc4Nyw1NDc4OSw1NDc5MCw1NDc5MSw1NDc5''@;'; + put 'put ''Myw1NDc5NCw1NDc5NSw1NDc5Niw1NDc5Nyw1NDc5OCw1NDc5OSw1NDgwMixudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1NDgwNiw1NDgwNyw1NDgwOCw1NDgwOSw1NDgxMCw1NDgxMSw1NDgxMyw1NDgxNCw1NDgxNSw1NDgxNyw1NDgxOCw1NDgxOSw1NDgyMSw1NDgyMiw1NDgyMyw1''@;'; + put 'put ''NDgyNCw1NDgyNSw1NDgyNiw1NDgyNyw1NDgyOCw1NDgzMCw1NDgzMSw1NDgzMiw1NDgzMyw1NDgzNCw1NDgzNSw1NDgzNiw1NDgzNyw1NDgzOCw1NDgzOSw1NDg0Miw1NDg0Myw1MTY2OSw1MTY3MCw1MTY3Myw1MTY3NCw1MTY3Niw1MTY3Nyw1MTY4MCw1MTY4Miw1MTY4NCw1MTY4Nyw1MTY5''@;'; + put 'put ''Miw1MTY5Myw1MTY5NSw1MTY5Niw1MTY5Nyw1MTcwNCw1MTcwNSw1MTcwOCw1MTcxMiw1MTcyMCw1MTcyMSw1MTcyMyw1MTcyNCw1MTcyNSw1MTczMiw1MTczNiw1MTc1Myw1MTc4OCw1MTc4OSw1MTc5Miw1MTc5Niw1MTgwNCw1MTgwNSw1MTgwNyw1MTgwOCw1MTgwOSw1MTgxNiw1MTgzNyw1''@;'; + put 'put ''MTg0NCw1MTg2NCw1MTkwMCw1MTkwMSw1MTkwNCw1MTkwOCw1MTkxNiw1MTkxNyw1MTkxOSw1MTkyMSw1MTkyMyw1MTkyOCw1MTkyOSw1MTkzNiw1MTk0OCw1MTk1Niw1MTk3Niw1MTk4NCw1MTk4OCw1MTk5Miw1MmUzLDUyMDAxLDUyMDMzLDUyMDQwLDUyMDQxLDUyMDQ0LDUyMDQ4LDUyMDU2''@;'; + put 'put ''LDUyMDU3LDUyMDYxLDUyMDY4LDUyMDg4LDUyMDg5LDUyMTI0LDUyMTUyLDUyMTgwLDUyMTk2LDUyMTk5LDUyMjAxLDUyMjM2LDUyMjM3LDUyMjQwLDUyMjQ0LDUyMjUyLDUyMjUzLDUyMjU3LDUyMjU4LDUyMjYzLDUyMjY0LDUyMjY1LDUyMjY4LDUyMjcwLDUyMjcyLDUyMjgwLDUyMjgxLDUy''@;'; + put 'put ''MjgzLDU0ODQ1LDU0ODQ2LDU0ODQ3LDU0ODQ5LDU0ODUwLDU0ODUxLDU0ODUyLDU0ODU0LDU0ODU1LDU0ODU4LDU0ODYwLDU0ODYyLDU0ODYzLDU0ODY0LDU0ODY2LDU0ODY3LDU0ODcwLDU0ODcxLDU0ODczLDU0ODc0LDU0ODc1LDU0ODc3LDU0ODc4LDU0ODc5LDU0ODgwLDU0ODgxLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDU0ODgyLDU0ODgzLDU0ODg0LDU0ODg1LDU0ODg2LDU0ODg4LDU0ODkwLDU0ODkxLDU0ODkyLDU0ODkzLDU0ODk0LDU0ODk1LDU0ODk4LDU0ODk5LDU0OTAxLDU0OTAyLDU0OTAzLDU0OTA0LDU0OTA1LDU0OTA2LDU0OTA3LDU0OTA4LDU0OTA5LDU0''@;'; + put 'put ''OTEwLDU0OTExLDU0OTEyLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDU0OTEzLDU0OTE0LDU0OTE2LDU0OTE4LDU0OTE5LDU0OTIwLDU0OTIxLDU0OTIyLDU0OTIzLDU0OTI2LDU0OTI3LDU0OTI5LDU0OTMwLDU0OTMxLDU0OTMzLDU0OTM0LDU0OTM1LDU0OTM2LDU0OTM3LDU0OTM4''@;'; + put 'put ''LDU0OTM5LDU0OTQwLDU0OTQyLDU0OTQ0LDU0OTQ2LDU0OTQ3LDU0OTQ4LDU0OTQ5LDU0OTUwLDU0OTUxLDU0OTUzLDU0OTU0LDUyMjg0LDUyMjg1LDUyMjg2LDUyMjkyLDUyMjkzLDUyMjk2LDUyMzAwLDUyMzA4LDUyMzA5LDUyMzExLDUyMzEyLDUyMzEzLDUyMzIwLDUyMzI0LDUyMzI2LDUy''@;'; + put 'put ''MzI4LDUyMzM2LDUyMzQxLDUyMzc2LDUyMzc3LDUyMzgwLDUyMzg0LDUyMzkyLDUyMzkzLDUyMzk1LDUyMzk2LDUyMzk3LDUyNDA0LDUyNDA1LDUyNDA4LDUyNDEyLDUyNDIwLDUyNDIxLDUyNDIzLDUyNDI1LDUyNDMyLDUyNDM2LDUyNDUyLDUyNDYwLDUyNDY0LDUyNDgxLDUyNDg4LDUyNDg5''@;'; + put 'put ''LDUyNDkyLDUyNDk2LDUyNTA0LDUyNTA1LDUyNTA3LDUyNTA5LDUyNTE2LDUyNTIwLDUyNTI0LDUyNTM3LDUyNTcyLDUyNTc2LDUyNTgwLDUyNTg4LDUyNTg5LDUyNTkxLDUyNTkzLDUyNjAwLDUyNjE2LDUyNjI4LDUyNjI5LDUyNjMyLDUyNjM2LDUyNjQ0LDUyNjQ1LDUyNjQ3LDUyNjQ5LDUy''@;'; + put 'put ''NjU2LDUyNjc2LDUyNjg0LDUyNjg4LDUyNzEyLDUyNzE2LDUyNzIwLDUyNzI4LDUyNzI5LDUyNzMxLDUyNzMzLDUyNzQwLDUyNzQ0LDUyNzQ4LDUyNzU2LDUyNzYxLDUyNzY4LDUyNzY5LDUyNzcyLDUyNzc2LDUyNzg0LDUyNzg1LDUyNzg3LDUyNzg5LDU0OTU1LDU0OTU3LDU0OTU4LDU0OTU5''@;'; + put 'put ''LDU0OTYxLDU0OTYyLDU0OTYzLDU0OTY0LDU0OTY1LDU0OTY2LDU0OTY3LDU0OTY4LDU0OTcwLDU0OTcyLDU0OTczLDU0OTc0LDU0OTc1LDU0OTc2LDU0OTc3LDU0OTc4LDU0OTc5LDU0OTgyLDU0OTgzLDU0OTg1LDU0OTg2LDU0OTg3LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDU0''@;'; + put 'put ''OTg5LDU0OTkwLDU0OTkxLDU0OTkyLDU0OTk0LDU0OTk1LDU0OTk3LDU0OTk4LDU1ZTMsNTUwMDIsNTUwMDMsNTUwMDQsNTUwMDUsNTUwMDYsNTUwMDcsNTUwMDksNTUwMTAsNTUwMTEsNTUwMTMsNTUwMTQsNTUwMTUsNTUwMTcsNTUwMTgsNTUwMTksNTUwMjAsNTUwMjEsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsNTUwMjIsNTUwMjMsNTUwMjUsNTUwMjYsNTUwMjcsNTUwMjgsNTUwMzAsNTUwMzEsNTUwMzIsNTUwMzMsNTUwMzQsNTUwMzUsNTUwMzgsNTUwMzksNTUwNDEsNTUwNDIsNTUwNDMsNTUwNDUsNTUwNDYsNTUwNDcsNTUwNDgsNTUwNDksNTUwNTAsNTUwNTEsNTUw''@;'; + put 'put ''NTIsNTUwNTMsNTUwNTQsNTUwNTUsNTUwNTYsNTUwNTgsNTUwNTksNTUwNjAsNTI4MjQsNTI4MjUsNTI4MjgsNTI4MzEsNTI4MzIsNTI4MzMsNTI4NDAsNTI4NDEsNTI4NDMsNTI4NDUsNTI4NTIsNTI4NTMsNTI4NTYsNTI4NjAsNTI4NjgsNTI4NjksNTI4NzEsNTI4NzMsNTI4ODAsNTI4ODEs''@;'; + put 'put ''NTI4ODQsNTI4ODgsNTI4OTYsNTI4OTcsNTI4OTksNTI5MDAsNTI5MDEsNTI5MDgsNTI5MDksNTI5MjksNTI5NjQsNTI5NjUsNTI5NjgsNTI5NzEsNTI5NzIsNTI5ODAsNTI5ODEsNTI5ODMsNTI5ODQsNTI5ODUsNTI5OTIsNTI5OTMsNTI5OTYsNTNlMyw1MzAwOCw1MzAwOSw1MzAxMSw1MzAx''@;'; + put 'put ''Myw1MzAyMCw1MzAyNCw1MzAyOCw1MzAzNiw1MzAzNyw1MzAzOSw1MzA0MCw1MzA0MSw1MzA0OCw1MzA3Niw1MzA3Nyw1MzA4MCw1MzA4NCw1MzA5Miw1MzA5Myw1MzA5NSw1MzA5Nyw1MzEwNCw1MzEwNSw1MzEwOCw1MzExMiw1MzEyMCw1MzEyNSw1MzEzMiw1MzE1Myw1MzE2MCw1MzE2OCw1''@;'; + put 'put ''MzE4OCw1MzIxNiw1MzIxNyw1MzIyMCw1MzIyNCw1MzIzMiw1MzIzMyw1MzIzNSw1MzIzNyw1MzI0NCw1MzI0OCw1MzI1Miw1MzI2NSw1MzI3Miw1MzI5Myw1MzMwMCw1MzMwMSw1MzMwNCw1MzMwOCw1NTA2MSw1NTA2Miw1NTA2Myw1NTA2Niw1NTA2Nyw1NTA2OSw1NTA3MCw1NTA3MSw1NTA3''@;'; + put 'put ''Myw1NTA3NCw1NTA3NSw1NTA3Niw1NTA3Nyw1NTA3OCw1NTA3OSw1NTA4Miw1NTA4NCw1NTA4Niw1NTA4Nyw1NTA4OCw1NTA4OSw1NTA5MCw1NTA5MSw1NTA5NCw1NTA5NSw1NTA5NyxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1NTA5OCw1NTA5OSw1NTEwMSw1NTEwMiw1NTEwMyw1''@;'; + put 'put ''NTEwNCw1NTEwNSw1NTEwNiw1NTEwNyw1NTEwOSw1NTExMCw1NTExMiw1NTExNCw1NTExNSw1NTExNiw1NTExNyw1NTExOCw1NTExOSw1NTEyMiw1NTEyMyw1NTEyNSw1NTEzMCw1NTEzMSw1NTEzMiw1NTEzMyw1NTEzNCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1NTEzNSw1NTEz''@;'; + put 'put ''OCw1NTE0MCw1NTE0Miw1NTE0Myw1NTE0NCw1NTE0Niw1NTE0Nyw1NTE0OSw1NTE1MCw1NTE1MSw1NTE1Myw1NTE1NCw1NTE1NSw1NTE1Nyw1NTE1OCw1NTE1OSw1NTE2MCw1NTE2MSw1NTE2Miw1NTE2Myw1NTE2Niw1NTE2Nyw1NTE2OCw1NTE3MCw1NTE3MSw1NTE3Miw1NTE3Myw1NTE3NCw1''@;'; + put 'put ''NTE3NSw1NTE3OCw1NTE3OSw1MzMxNiw1MzMxNyw1MzMxOSw1MzMyMSw1MzMyOCw1MzMzMiw1MzMzNiw1MzM0NCw1MzM1Niw1MzM1Nyw1MzM2MCw1MzM2NCw1MzM3Miw1MzM3Myw1MzM3Nyw1MzQxMiw1MzQxMyw1MzQxNiw1MzQyMCw1MzQyOCw1MzQyOSw1MzQzMSw1MzQzMyw1MzQ0MCw1MzQ0''@;'; + put 'put ''MSw1MzQ0NCw1MzQ0OCw1MzQ0OSw1MzQ1Niw1MzQ1Nyw1MzQ1OSw1MzQ2MCw1MzQ2MSw1MzQ2OCw1MzQ2OSw1MzQ3Miw1MzQ3Niw1MzQ4NCw1MzQ4NSw1MzQ4Nyw1MzQ4OCw1MzQ4OSw1MzQ5Niw1MzUxNyw1MzU1Miw1MzU1Myw1MzU1Niw1MzU2MCw1MzU2Miw1MzU2OCw1MzU2OSw1MzU3MSw1''@;'; + put 'put ''MzU3Miw1MzU3Myw1MzU4MCw1MzU4MSw1MzU4NCw1MzU4OCw1MzU5Niw1MzU5Nyw1MzU5OSw1MzYwMSw1MzYwOCw1MzYxMiw1MzYyOCw1MzYzNiw1MzY0MCw1MzY2NCw1MzY2NSw1MzY2OCw1MzY3Miw1MzY4MCw1MzY4MSw1MzY4Myw1MzY4NSw1MzY5MCw1MzY5Miw1MzY5Niw1MzcyMCw1Mzc0''@;'; + put 'put ''OCw1Mzc1Miw1Mzc2Nyw1Mzc2OSw1Mzc3Niw1MzgwNCw1MzgwNSw1MzgwOCw1MzgxMiw1MzgyMCw1MzgyMSw1MzgyMyw1MzgyNSw1MzgzMiw1Mzg1Miw1NTE4MSw1NTE4Miw1NTE4Myw1NTE4NSw1NTE4Niw1NTE4Nyw1NTE4OCw1NTE4OSw1NTE5MCw1NTE5MSw1NTE5NCw1NTE5Niw1NTE5OCw1''@;'; + put 'put ''NTE5OSw1NTIwMCw1NTIwMSw1NTIwMiw1NTIwMyxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1Mzg2MCw1Mzg4OCw1Mzg4OSw1Mzg5Miw1Mzg5Niw1MzkwNCw1MzkwNSw1MzkwOSw1MzkxNiw1MzkyMCw1MzkyNCw1MzkzMiw1Mzkz''@;'; + put 'put ''Nyw1Mzk0NCw1Mzk0NSw1Mzk0OCw1Mzk1MSw1Mzk1Miw1Mzk1NCw1Mzk2MCw1Mzk2MSw1Mzk2Myw1Mzk3Miw1Mzk3Niw1Mzk4MCw1Mzk4OCw1Mzk4OSw1NGUzLDU0MDAxLDU0MDA0LDU0MDA4LDU0MDE2LDU0MDE3LDU0MDE5LDU0MDIxLDU0MDI4LDU0MDI5LDU0MDMwLDU0MDMyLDU0MDM2LDU0''@;'; + put 'put ''MDM4LDU0MDQ0LDU0MDQ1LDU0MDQ3LDU0MDQ4LDU0MDQ5LDU0MDUzLDU0MDU2LDU0MDU3LDU0MDYwLDU0MDY0LDU0MDcyLDU0MDczLDU0MDc1LDU0MDc2LDU0MDc3LDU0MDg0LDU0MDg1LDU0MTQwLDU0MTQxLDU0MTQ0LDU0MTQ4LDU0MTU2LDU0MTU3LDU0MTU5LDU0MTYwLDU0MTYxLDU0MTY4''@;'; + put 'put ''LDU0MTY5LDU0MTcyLDU0MTc2LDU0MTg0LDU0MTg1LDU0MTg3LDU0MTg5LDU0MTk2LDU0MjAwLDU0MjA0LDU0MjEyLDU0MjEzLDU0MjE2LDU0MjE3LDU0MjI0LDU0MjMyLDU0MjQxLDU0MjQzLDU0MjUyLDU0MjUzLDU0MjU2LDU0MjYwLDU0MjY4LDU0MjY5LDU0MjcxLDU0MjczLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDU0MjgwLDU0MzAxLDU0MzM2LDU0MzQw''@;'; + put 'put ''LDU0MzY0LDU0MzY4LDU0MzcyLDU0MzgxLDU0MzgzLDU0MzkyLDU0MzkzLDU0Mzk2LDU0Mzk5LDU0NDAwLDU0NDAyLDU0NDA4LDU0NDA5LDU0NDExLDU0NDEzLDU0NDIwLDU0NDQxLDU0NDc2LDU0NDgwLDU0NDg0LDU0NDkyLDU0NDk1LDU0NTA0LDU0NTA4LDU0NTEyLDU0NTIwLDU0NTIzLDU0''@;'; + put 'put ''NTI1LDU0NTMyLDU0NTM2LDU0NTQwLDU0NTQ4LDU0NTQ5LDU0NTUxLDU0NTg4LDU0NTg5LDU0NTkyLDU0NTk2LDU0NjA0LDU0NjA1LDU0NjA3LDU0NjA5LDU0NjE2LDU0NjE3LDU0NjIwLDU0NjI0LDU0NjI5LDU0NjMyLDU0NjMzLDU0NjM1LDU0NjM3LDU0NjQ0LDU0NjQ1LDU0NjQ4LDU0NjUy''@;'; + put 'put ''LDU0NjYwLDU0NjYxLDU0NjYzLDU0NjY0LDU0NjY1LDU0NjcyLDU0NjkzLDU0NzI4LDU0NzI5LDU0NzMyLDU0NzM2LDU0NzM4LDU0NzQ0LDU0NzQ1LDU0NzQ3LDU0NzQ5LDU0NzU2LDU0NzU3LDU0NzYwLDU0NzY0LDU0NzcyLDU0NzczLDU0Nzc1LDU0Nzc3LDU0Nzg0LDU0Nzg1LDU0Nzg4LDU0''@;'; + put 'put ''NzkyLDU0ODAwLDU0ODAxLDU0ODAzLDU0ODA0LDU0ODA1LDU0ODEyLDU0ODE2LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; + put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; + put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; + put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDU0ODIwLDU0ODI5LDU0ODQwLDU0ODQxLDU0ODQ0LDU0ODQ4LDU0ODUzLDU0ODU2LDU0ODU3LDU0ODU5LDU0ODYxLDU0ODY1LDU0ODY4LDU0ODY5LDU0ODcyLDU0ODc2LDU0ODg3LDU0ODg5LDU0ODk2LDU0ODk3LDU0OTAwLDU0OTE1LDU0''@;'; + put 'put ''OTE3LDU0OTI0LDU0OTI1LDU0OTI4LDU0OTMyLDU0OTQxLDU0OTQzLDU0OTQ1LDU0OTUyLDU0OTU2LDU0OTYwLDU0OTY5LDU0OTcxLDU0OTgwLDU0OTgxLDU0OTg0LDU0OTg4LDU0OTkzLDU0OTk2LDU0OTk5LDU1MDAxLDU1MDA4LDU1MDEyLDU1MDE2LDU1MDI0LDU1MDI5LDU1MDM2LDU1MDM3''@;'; + put 'put ''LDU1MDQwLDU1MDQ0LDU1MDU3LDU1MDY0LDU1MDY1LDU1MDY4LDU1MDcyLDU1MDgwLDU1MDgxLDU1MDgzLDU1MDg1LDU1MDkyLDU1MDkzLDU1MDk2LDU1MTAwLDU1MTA4LDU1MTExLDU1MTEzLDU1MTIwLDU1MTIxLDU1MTI0LDU1MTI2LDU1MTI3LDU1MTI4LDU1MTI5LDU1MTM2LDU1MTM3LDU1''@;'; + put 'put ''MTM5LDU1MTQxLDU1MTQ1LDU1MTQ4LDU1MTUyLDU1MTU2LDU1MTY0LDU1MTY1LDU1MTY5LDU1MTc2LDU1MTc3LDU1MTgwLDU1MTg0LDU1MTkyLDU1MTkzLDU1MTk1LDU1MTk3LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsMjAyODUsMjAzMzksMjA1NTEsMjA3MjksMjExNTIsMjE0ODcsMjE2MjEsMjE3MzMsMjIwMjUsMjMyMzMsMjM0NzgsMjYyNDcsMjY1NTAsMjY1NTEsMjY2MDcsMjc0NjgsMjk2MzQsMzAxNDYsMzEyOTIsMzM0OTks''@;'; + put 'put ''MzM1NDAsMzQ5MDMsMzQ5NTIsMzUzODIsMzYwNDAsMzYzMDMsMzY2MDMsMzY4MzgsMzkzODEsMjEwNTEsMjEzNjQsMjE1MDgsMjQ2ODIsMjQ5MzIsMjc1ODAsMjk2NDcsMzMwNTAsMzUyNTgsMzUyODIsMzgzMDcsMjAzNTUsMjEwMDIsMjI3MTgsMjI5MDQsMjMwMTQsMjQxNzgsMjQxODUsMjUw''@;'; + put 'put ''MzEsMjU1MzYsMjY0MzgsMjY2MDQsMjY3NTEsMjg1NjcsMzAyODYsMzA0NzUsMzA5NjUsMzEyNDAsMzE0ODcsMzE3NzcsMzI5MjUsMzMzOTAsMzMzOTMsMzU1NjMsMzgyOTEsMjAwNzUsMjE5MTcsMjYzNTksMjgyMTIsMzA4ODMsMzE0NjksMzM4ODMsMzUwODgsMzQ2MzgsMzg4MjQsMjEyMDgs''@;'; + put 'put ''MjIzNTAsMjI1NzAsMjM4ODQsMjQ4NjMsMjUwMjIsMjUxMjEsMjU5NTQsMjY1NzcsMjcyMDQsMjgxODcsMjk5NzYsMzAxMzEsMzA0MzUsMzA2NDAsMzIwNTgsMzcwMzksMzc5NjksMzc5NzAsNDA4NTMsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsMjEyODMsMjM3MjQsMzAwMDIsMzI5ODcsMzc0NDAsMzgyOTYsMjEwODMsMjI1MzYsMjMwMDQsMjM3MTMsMjM4MzEs''@;'; + put 'put ''MjQyNDcsMjQzNzgsMjQzOTQsMjQ5NTEsMjc3NDMsMzAwNzQsMzAwODYsMzE5NjgsMzIxMTUsMzIxNzcsMzI2NTIsMzMxMDgsMzMzMTMsMzQxOTMsMzUxMzcsMzU2MTEsMzc2MjgsMzg0NzcsNDAwMDcsMjAxNzEsMjAyMTUsMjA0OTEsMjA5NzcsMjI2MDcsMjQ4ODcsMjQ4OTQsMjQ5MzYsMjU5''@;'; + put 'put ''MTMsMjcxMTQsMjg0MzMsMzAxMTcsMzAzNDIsMzA0MjIsMzE2MjMsMzM0NDUsMzM5OTUsNjM3NDQsMzc3OTksMzgyODMsMjE4ODgsMjM0NTgsMjIzNTMsNjM3NDUsMzE5MjMsMzI2OTcsMzczMDEsMjA1MjAsMjE0MzUsMjM2MjEsMjQwNDAsMjUyOTgsMjU0NTQsMjU4MTgsMjU4MzEsMjgxOTIs''@;'; + put 'put ''Mjg4NDQsMzEwNjcsMzYzMTcsMzYzODIsNjM3NDYsMzY5ODksMzc0NDUsMzc2MjQsMjAwOTQsMjAyMTQsMjA1ODEsMjQwNjIsMjQzMTQsMjQ4MzgsMjY5NjcsMzMxMzcsMzQzODgsMzY0MjMsMzc3NDksMzk0NjcsMjAwNjIsMjA2MjUsMjY0ODAsMjY2ODgsMjA3NDUsMjExMzMsMjExMzgsMjcy''@;'; + put 'put ''OTgsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsMzA2NTIsMzczOTIs''@;'; + put 'put ''NDA2NjAsMjExNjMsMjQ2MjMsMzY4NTAsMjA1NTIsMjUwMDEsMjU1ODEsMjU4MDIsMjY2ODQsMjcyNjgsMjg2MDgsMzMxNjAsMzUyMzMsMzg1NDgsMjI1MzMsMjkzMDksMjkzNTYsMjk5NTYsMzIxMjEsMzIzNjUsMzI5MzcsMzUyMTEsMzU3MDAsMzY5NjMsNDAyNzMsMjUyMjUsMjc3NzAsMjg1''@;'; + put 'put ''MDAsMzIwODAsMzI1NzAsMzUzNjMsMjA4NjAsMjQ5MDYsMzE2NDUsMzU2MDksMzc0NjMsMzc3NzIsMjAxNDAsMjA0MzUsMjA1MTAsMjA2NzAsMjA3NDIsMjExODUsMjExOTcsMjEzNzUsMjIzODQsMjI2NTksMjQyMTgsMjQ0NjUsMjQ5NTAsMjUwMDQsMjU4MDYsMjU5NjQsMjYyMjMsMjYyOTks''@;'; + put 'put ''MjYzNTYsMjY3NzUsMjgwMzksMjg4MDUsMjg5MTMsMjk4NTUsMjk4NjEsMjk4OTgsMzAxNjksMzA4MjgsMzA5NTYsMzE0NTUsMzE0NzgsMzIwNjksMzIxNDcsMzI3ODksMzI4MzEsMzMwNTEsMzM2ODYsMzU2ODYsMzY2MjksMzY4ODUsMzc4NTcsMzg5MTUsMzg5NjgsMzk1MTQsMzk5MTIsMjA0''@;'; + put 'put ''MTgsMjE4NDMsMjI1ODYsMjI4NjUsMjMzOTUsMjM2MjIsMjQ3NjAsMjUxMDYsMjY2OTAsMjY4MDAsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsMjY4NTYsMjgzMzAsMzAwMjgsMzAzMjgsMzA5MjYsMzEyOTMsMzE5OTUsMzIzNjMsMzIzODAsMzUzMzYsMzU0ODksMzU5MDMsMzg1NDIsNDAzODgsMjE0NzYsMjE0ODEsMjE1NzgsMjE2MTcsMjIyNjYsMjI5OTMsMjMz''@;'; + put 'put ''OTYsMjM2MTEsMjQyMzUsMjUzMzUsMjU5MTEsMjU5MjUsMjU5NzAsMjYyNzIsMjY1NDMsMjcwNzMsMjc4MzcsMzAyMDQsMzAzNTIsMzA1OTAsMzEyOTUsMzI2NjAsMzI3NzEsMzI5MjksMzMxNjcsMzM1MTAsMzM1MzMsMzM3NzYsMzQyNDEsMzQ4NjUsMzQ5OTYsMzU0OTMsNjM3NDcsMzY3NjQs''@;'; + put 'put ''Mzc2NzgsMzg1OTksMzkwMTUsMzk2NDAsNDA3MjMsMjE3NDEsMjYwMTEsMjYzNTQsMjY3NjcsMzEyOTYsMzU4OTUsNDAyODgsMjIyNTYsMjIzNzIsMjM4MjUsMjYxMTgsMjY4MDEsMjY4MjksMjg0MTQsMjk3MzYsMzQ5NzQsMzk5MDgsMjc3NTIsNjM3NDgsMzk1OTIsMjAzNzksMjA4NDQsMjA4''@;'; + put 'put ''NDksMjExNTEsMjMzODAsMjQwMzcsMjQ2NTYsMjQ2ODUsMjUzMjksMjU1MTEsMjU5MTUsMjk2NTcsMzEzNTQsMzQ0NjcsMzYwMDIsMzg3OTksMjAwMTgsMjM1MjEsMjUwOTYsMjY1MjQsMjk5MTYsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; + put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; + put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; + put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsMzExODUsMzM3NDcsMzU0NjMsMzU1MDYsMzYzMjgsMzY5NDIsMzc3MDcsMzg5ODIsMjQyNzUsMjcxMTIsMzQzMDMsMzcx''@;'; + put 'put ''MDEsNjM3NDksMjA4OTYsMjM0NDgsMjM1MzIsMjQ5MzEsMjY4NzQsMjc0NTQsMjg3NDgsMjk3NDMsMjk5MTIsMzE2NDksMzI1OTIsMzM3MzMsMzUyNjQsMzYwMTEsMzgzNjQsMzkyMDgsMjEwMzgsMjQ2NjksMjUzMjQsMzY4NjYsMjAzNjIsMjA4MDksMjEyODEsMjI3NDUsMjQyOTEsMjYzMzYs''@;'; + put 'put ''Mjc5NjAsMjg4MjYsMjkzNzgsMjk2NTQsMzE1NjgsMzMwMDksMzc5NzksMjEzNTAsMjU0OTksMzI2MTksMjAwNTQsMjA2MDgsMjI2MDIsMjI3NTAsMjQ2MTgsMjQ4NzEsMjUyOTYsMjcwODgsMzk3NDUsMjM0MzksMzIwMjQsMzI5NDUsMzY3MDMsMjAxMzIsMjA2ODksMjE2NzYsMjE5MzIsMjMz''@;'; + put 'put ''MDgsMjM5NjgsMjQwMzksMjU4OTgsMjU5MzQsMjY2NTcsMjcyMTEsMjk0MDksMzAzNTAsMzA3MDMsMzIwOTQsMzI3NjEsMzMxODQsMzQxMjYsMzQ1MjcsMzY2MTEsMzY2ODYsMzcwNjYsMzkxNzEsMzk1MDksMzk4NTEsMTk5OTIsMjAwMzcsMjAwNjEsMjAxNjcsMjA0NjUsMjA4NTUsMjEyNDYs''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsMjEzMTIsMjE0NzUsMjE0''@;'; + put 'put ''NzcsMjE2NDYsMjIwMzYsMjIzODksMjI0MzQsMjM0OTUsMjM5NDMsMjQyNzIsMjUwODQsMjUzMDQsMjU5MzcsMjY1NTIsMjY2MDEsMjcwODMsMjc0NzIsMjc1OTAsMjc2MjgsMjc3MTQsMjgzMTcsMjg3OTIsMjkzOTksMjk1OTAsMjk2OTksMzA2NTUsMzA2OTcsMzEzNTAsMzIxMjcsMzI3Nzcs''@;'; + put 'put ''MzMyNzYsMzMyODUsMzMyOTAsMzM1MDMsMzQ5MTQsMzU2MzUsMzYwOTIsMzY1NDQsMzY4ODEsMzcwNDEsMzc0NzYsMzc1NTgsMzkzNzgsMzk0OTMsNDAxNjksNDA0MDcsNDA4NjAsMjIyODMsMjM2MTYsMzM3MzgsMzg4MTYsMzg4MjcsNDA2MjgsMjE1MzEsMzEzODQsMzI2NzYsMzUwMzMsMzY1''@;'; + put 'put ''NTcsMzcwODksMjI1MjgsMjM2MjQsMjU0OTYsMzEzOTEsMjM0NzAsMjQzMzksMzEzNTMsMzE0MDYsMzM0MjIsMzY1MjQsMjA1MTgsMjEwNDgsMjEyNDAsMjEzNjcsMjIyODAsMjUzMzEsMjU0NTgsMjc0MDIsMjgwOTksMzA1MTksMjE0MTMsMjk1MjcsMzQxNTIsMzY0NzAsMzgzNTcsMjY0MjYs''@;'; + put 'put ''MjczMzEsMjg1MjgsMzU0MzcsMzY1NTYsMzkyNDMsNjM3NTAsMjYyMzEsMjc1MTIsMzYwMjAsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsMzk3NDAsNjM3NTEsMjE0ODMsMjIzMTcsMjI4NjIsMjU1NDIsMjcxMzEsMjk2NzQsMzA3ODksMzE0MTgsMzE0MjksMzE5OTgsMzM5MDksMzUyMTUsMzYyMTEsMzY5MTcsMzgzMTIsMjEyNDMsMjIzNDMsMzAwMjMsMzE1ODQs''@;'; + put 'put ''MzM3NDAsMzc0MDYsNjM3NTIsMjcyMjQsMjA4MTEsMjEwNjcsMjExMjcsMjUxMTksMjY4NDAsMjY5OTcsMzg1NTMsMjA2NzcsMjExNTYsMjEyMjAsMjUwMjcsMjYwMjAsMjY2ODEsMjcxMzUsMjk4MjIsMzE1NjMsMzM0NjUsMzM3NzEsMzUyNTAsMzU2NDEsMzY4MTcsMzkyNDEsNjM3NTMsMjAx''@;'; + put 'put ''NzAsMjI5MzUsMjU4MTAsMjYxMjksMjcyNzgsMjk3NDgsMzExMDUsMzExNjUsMzM0NDksMzQ5NDIsMzQ5NDMsMzUxNjcsNjM3NTQsMzc2NzAsMjAyMzUsMjE0NTAsMjQ2MTMsMjUyMDEsMjc3NjIsMzIwMjYsMzIxMDIsMjAxMjAsMjA4MzQsMzA2ODQsMzI5NDMsMjAyMjUsMjAyMzgsMjA4NTQs''@;'; + put 'put ''MjA4NjQsMjE5ODAsMjIxMjAsMjIzMzEsMjI1MjIsMjI1MjQsMjI4MDQsMjI4NTUsMjI5MzEsMjM0OTIsMjM2OTYsMjM4MjIsMjQwNDksMjQxOTAsMjQ1MjQsMjUyMTYsMjYwNzEsMjYwODMsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsMjYzOTgsMjYzOTksMjY0NjIsMjY4MjcsMjY4MjAsMjcyMzEsMjc0NTAsMjc2ODMsMjc3NzMsMjc3NzgsMjgxMDMsMjk1OTIs''@;'; + put 'put ''Mjk3MzQsMjk3MzgsMjk4MjYsMjk4NTksMzAwNzIsMzAwNzksMzA4NDksMzA5NTksMzEwNDEsMzEwNDcsMzEwNDgsMzEwOTgsMzE2MzcsMzJlMywzMjE4NiwzMjY0OCwzMjc3NCwzMjgxMywzMjkwOCwzNTM1MiwzNTY2MywzNTkxMiwzNjIxNSwzNzY2NSwzNzY2OCwzOTEzOCwzOTI0OSwzOTQz''@;'; + put 'put ''OCwzOTQzOSwzOTUyNSw0MDU5NCwzMjIwMiwyMDM0MiwyMTUxMywyNTMyNiwyNjcwOCwzNzMyOSwyMTkzMSwyMDc5NCw2Mzc1NSw2Mzc1NiwyMzA2OCwyNTA2Miw2Mzc1NywyNTI5NSwyNTM0Myw2Mzc1OCw2Mzc1OSw2Mzc2MCw2Mzc2MSw2Mzc2Miw2Mzc2MywzNzAyNyw2Mzc2NCw2Mzc2NSw2''@;'; + put 'put ''Mzc2Niw2Mzc2Nyw2Mzc2OCwzNTU4Miw2Mzc2OSw2Mzc3MCw2Mzc3MSw2Mzc3MiwyNjI2Miw2Mzc3MywyOTAxNCw2Mzc3NCw2Mzc3NSwzODYyNyw2Mzc3NiwyNTQyMywyNTQ2NiwyMTMzNSw2Mzc3NywyNjUxMSwyNjk3NiwyODI3NSw2Mzc3OCwzMDAwNyw2Mzc3OSw2Mzc4MCw2Mzc4MSxudWxs''@;'; + put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; + put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; + put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwzMjAxMyw2Mzc4Miw2Mzc4Mywz''@;'; + put 'put ''NDkzMCwyMjIxOCwyMzA2NCw2Mzc4NCw2Mzc4NSw2Mzc4Niw2Mzc4Nyw2Mzc4OCwyMDAzNSw2Mzc4OSwyMDgzOSwyMjg1NiwyNjYwOCwzMjc4NCw2Mzc5MCwyMjg5OSwyNDE4MCwyNTc1NCwzMTE3OCwyNDU2NSwyNDY4NCwyNTI4OCwyNTQ2NywyMzUyNywyMzUxMSwyMTE2Miw2Mzc5MSwyMjkw''@;'; + put 'put ''MCwyNDM2MSwyNDU5NCw2Mzc5Miw2Mzc5Myw2Mzc5NCwyOTc4NSw2Mzc5NSw2Mzc5Niw2Mzc5Nyw2Mzc5OCw2Mzc5OSw2MzgwMCwzOTM3Nyw2MzgwMSw2MzgwMiw2MzgwMyw2MzgwNCw2MzgwNSw2MzgwNiw2MzgwNyw2MzgwOCw2MzgwOSw2MzgxMCw2MzgxMSwyODYxMSw2MzgxMiw2MzgxMywz''@;'; + put 'put ''MzIxNSwzNjc4NiwyNDgxNyw2MzgxNCw2MzgxNSwzMzEyNiw2MzgxNiw2MzgxNywyMzYxNSw2MzgxOCw2MzgxOSw2MzgyMCw2MzgyMSw2MzgyMiw2MzgyMyw2MzgyNCw2MzgyNSwyMzI3MywzNTM2NSwyNjQ5MSwzMjAxNiw2MzgyNiw2MzgyNyw2MzgyOCw2MzgyOSw2MzgzMCw2MzgzMSwzMzAy''@;'; + put 'put ''MSw2MzgzMiw2MzgzMywyMzYxMiwyNzg3NywyMTMxMSwyODM0NiwyMjgxMCwzMzU5MCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwyMDAyNSwyMDE1MCwyMDI5NCwyMTkzNCwyMjI5NiwyMjcyNywyNDQwNiwyNjAzOSwyNjA4NiwyNzI2NCwyNzU3MywyODIzNywzMDcwMSwzMTQ3MSwzMTc3NCwzMjIyMiwzNDUwNywzNDk2MiwzNzE3MCwzNzcyMywyNTc4NywyODYw''@;'; + put 'put ''NiwyOTU2MiwzMDEzNiwzNjk0OCwyMTg0NiwyMjM0OSwyNTAxOCwyNTgxMiwyNjMxMSwyODEyOSwyODI1MSwyODUyNSwyODYwMSwzMDE5MiwzMjgzNSwzMzIxMywzNDExMywzNTIwMywzNTUyNywzNTY3NCwzNzY2MywyNzc5NSwzMDAzNSwzMTU3MiwzNjM2NywzNjk1NywyMTc3NiwyMjUzMCwy''@;'; + put 'put ''MjYxNiwyNDE2MiwyNTA5NSwyNTc1OCwyNjg0OCwzMDA3MCwzMTk1OCwzNDczOSw0MDY4MCwyMDE5NSwyMjQwOCwyMjM4MiwyMjgyMywyMzU2NSwyMzcyOSwyNDExOCwyNDQ1MywyNTE0MCwyNTgyNSwyOTYxOSwzMzI3NCwzNDk1NSwzNjAyNCwzODUzOCw0MDY2NywyMzQyOSwyNDUwMywyNDc1''@;'; + put 'put ''NSwyMDQ5OCwyMDk5MiwyMTA0MCwyMjI5NCwyMjU4MSwyMjYxNSwyMzU2NiwyMzY0OCwyMzc5OCwyMzk0NywyNDIzMCwyNDQ2NiwyNDc2NCwyNTM2MSwyNTQ4MSwyNTYyMywyNjY5MSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwyNjg3MywyNzMzMCwyODEyMCwyODE5MywyODM3MiwyODY0NCwyOTE4MiwzMDQyOCwzMDU4NSwzMTE1MywzMTI5MSwzMzc5NiwzNTI0''@;'; + put 'put ''MSwzNjA3NywzNjMzOSwzNjQyNCwzNjg2NywzNjg4NCwzNjk0NywzNzExNywzNzcwOSwzODUxOCwzODg3NiwyNzYwMiwyODY3OCwyOTI3MiwyOTM0NiwyOTU0NCwzMDU2MywzMTE2NywzMTcxNiwzMjQxMSwzNTcxMiwyMjY5NywyNDc3NSwyNTk1OCwyNjEwOSwyNjMwMiwyNzc4OCwyODk1OCwy''@;'; + put 'put ''OTEyOSwzNTkzMCwzODkzMSwyMDA3NywzMTM2MSwyMDE4OSwyMDkwOCwyMDk0MSwyMTIwNSwyMTUxNiwyNDk5OSwyNjQ4MSwyNjcwNCwyNjg0NywyNzkzNCwyODU0MCwzMDE0MCwzMDY0MywzMTQ2MSwzMzAxMiwzMzg5MSwzNzUwOSwyMDgyOCwyNjAwNywyNjQ2MCwyNjUxNSwzMDE2OCwzMTQz''@;'; + put 'put ''MSwzMzY1MSw2MzgzNCwzNTkxMCwzNjg4NywzODk1NywyMzY2MywzMzIxNiwzMzQzNCwzNjkyOSwzNjk3NSwzNzM4OSwyNDQ3MSwyMzk2NSwyNzIyNSwyOTEyOCwzMDMzMSwzMTU2MSwzNDI3NiwzNTU4OCwzNzE1OSwzOTQ3MiwyMTg5NSwyNTA3OCw2MzgzNSwzMDMxMywzMjY0NSxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwzNDM2NywzNDc0NiwzNTA2NCwzNzAw''@;'; + put 'put ''Nyw2MzgzNiwyNzkzMSwyODg4OSwyOTY2MiwzMjA5NywzMzg1Myw2MzgzNywzNzIyNiwzOTQwOSw2MzgzOCwyMDA5OCwyMTM2NSwyNzM5NiwyNzQxMCwyODczNCwyOTIxMSwzNDM0OSw0MDQ3OCwyMTA2OCwzNjc3MSwyMzg4OCwyNTgyOSwyNTkwMCwyNzQxNCwyODY1MSwzMTgxMSwzMjQxMiwz''@;'; + put 'put ''NDI1MywzNTE3MiwzNTI2MSwyNTI4OSwzMzI0MCwzNDg0NywyNDI2NiwyNjM5MSwyODAxMCwyOTQzNiwyOTcwMSwyOTgwNywzNDY5MCwzNzA4NiwyMDM1OCwyMzgyMSwyNDQ4MCwzMzgwMiwyMDkxOSwyNTUwNCwzMDA1MywyMDE0MiwyMDQ4NiwyMDg0MSwyMDkzNywyNjc1MywyNzE1MywzMTkx''@;'; + put 'put ''OCwzMTkyMSwzMTk3NSwzMzM5MSwzNTUzOCwzNjYzNSwzNzMyNywyMDQwNiwyMDc5MSwyMTIzNywyMTU3MCwyNDMwMCwyNDk0MiwyNTE1MCwyNjA1MywyNzM1NCwyODY3MCwzMTAxOCwzNDI2OCwzNDg1MSwzODMxNywzOTUyMiwzOTUzMCw0MDU5OSw0MDY1NCwyMTE0NywyNjMxMCwyNzUxMSwy''@;'; + put 'put ''ODcwMSwzMTAxOSwzNjcwNiwzODcyMiwyNDk3NiwyNTA4OCwyNTg5MSwyODQ1MSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwyOTAwMSwyOTgzMywzMjI0NCwzMjg3OSwzNDAzMCwzNjY0NiwzNjg5OSwzNzcwNiwyMDkyNSwyMTAxNSwyMTE1NSwyNzkxNiwyODg3MiwzNTAxMCwyNDI2NSwyNTk4NiwyNzU2NiwyODYxMCwzMTgwNiwyOTU1NywyMDE5NiwyMDI3OCwy''@;'; + put 'put ''MjI2NSw2MzgzOSwyMzczOCwyMzk5NCwyNDYwNCwyOTYxOCwzMTUzMywzMjY2NiwzMjcxOCwzMjgzOCwzNjg5NCwzNzQyOCwzODY0NiwzODcyOCwzODkzNiw0MDgwMSwyMDM2MywyODU4MywzMTE1MCwzNzMwMCwzODU4MywyMTIxNCw2Mzg0MCwyNTczNiwyNTc5NiwyNzM0NywyODUxMCwyODY5''@;'; + put 'put ''NiwyOTIwMCwzMDQzOSwzMjc2OSwzNDMxMCwzNDM5NiwzNjMzNSwzNjYxMywzODcwNiwzOTc5MSw0MDQ0Miw0MDU2NSwzMDg2MCwzMTEwMywzMjE2MCwzMzczNywzNzYzNiw0MDU3NSw0MDU5NSwzNTU0MiwyMjc1MSwyNDMyNCwyNjQwNywyODcxMSwyOTkwMywzMTg0MCwzMjg5NCwyMDc2OSwy''@;'; + put 'put ''ODcxMiwyOTI4MiwzMDkyMiwzNjAzNCwzNjA1OCwzNjA4NCwzODY0NywyMDEwMiwyMDY5OCwyMzUzNCwyNDI3OCwyNjAwOSwyOTEzNCwzMDI3NCwzMDYzNywzMjg0MiwzNDA0NCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; + put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; + put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; + put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwzNjk4OCwzOTcxOSw0MDg0NSwyMjc0NCwyMzEwNSwyMzY1MCwyNzE1NSwyODEyMiwyODQzMSwzMDI2NywzMjA0NywzMjMxMSwzNDA3OCwz''@;'; + put 'put ''NTEyOCwzNzg2MCwzODQ3NSwyMTEyOSwyNjA2NiwyNjYxMSwyNzA2MCwyNzk2OSwyODMxNiwyODY4NywyOTcwNSwyOTc5MiwzMDA0MSwzMDI0NCwzMDgyNywzNTYyOCwzOTAwNiwyMDg0NSwyNTEzNCwzODUyMCwyMDM3NCwyMDUyMywyMzgzMywyODEzOCwzMjE4NCwzNjY1MCwyNDQ1OSwyNDkw''@;'; + put 'put ''MCwyNjY0Nyw2Mzg0MSwzODUzNCwyMTIwMiwzMjkwNywyMDk1NiwyMDk0MCwyNjk3NCwzMTI2MCwzMjE5MCwzMzc3NywzODUxNywyMDQ0MiwyMTAzMywyMTQwMCwyMTUxOSwyMTc3NCwyMzY1MywyNDc0MywyNjQ0NiwyNjc5MiwyODAxMiwyOTMxMywyOTQzMiwyOTcwMiwyOTgyNyw2Mzg0Miwz''@;'; + put 'put ''MDE3OCwzMTg1MiwzMjYzMywzMjY5NiwzMzY3MywzNTAyMywzNTA0MSwzNzMyNCwzNzMyOCwzODYyNiwzOTg4MSwyMTUzMywyODU0MiwyOTEzNiwyOTg0OCwzNDI5OCwzNjUyMiwzODU2Myw0MDAyMyw0MDYwNywyNjUxOSwyODEwNywyOTc0NywzMzI1NiwzODY3OCwzMDc2NCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwzMTQzNSwzMTUyMCwzMTg5MCwyNTcwNSwy''@;'; + put 'put ''OTgwMiwzMDE5NCwzMDkwOCwzMDk1MiwzOTM0MCwzOTc2NCw0MDYzNSwyMzUxOCwyNDE0OSwyODQ0OCwzMzE4MCwzMzcwNywzN2UzLDE5OTc1LDIxMzI1LDIzMDgxLDI0MDE4LDI0Mzk4LDI0OTMwLDI1NDA1LDI2MjE3LDI2MzY0LDI4NDE1LDI4NDU5LDI4NzcxLDMwNjIyLDMzODM2LDM0MDY3''@;'; + put 'put ''LDM0ODc1LDM2NjI3LDM5MjM3LDM5OTk1LDIxNzg4LDI1MjczLDI2NDExLDI3ODE5LDMzNTQ1LDM1MTc4LDM4Nzc4LDIwMTI5LDIyOTE2LDI0NTM2LDI0NTM3LDI2Mzk1LDMyMTc4LDMyNTk2LDMzNDI2LDMzNTc5LDMzNzI1LDM2NjM4LDM3MDE3LDIyNDc1LDIyOTY5LDIzMTg2LDIzNTA0LDI2''@;'; + put 'put ''MTUxLDI2NTIyLDI2NzU3LDI3NTk5LDI5MDI4LDMyNjI5LDM2MDIzLDM2MDY3LDM2OTkzLDM5NzQ5LDMzMDMyLDM1OTc4LDM4NDc2LDM5NDg4LDQwNjEzLDIzMzkxLDI3NjY3LDI5NDY3LDMwNDUwLDMwNDMxLDMzODA0LDIwOTA2LDM1MjE5LDIwODEzLDIwODg1LDIxMTkzLDI2ODI1LDI3Nzk2''@;'; + put 'put ''LDMwNDY4LDMwNDk2LDMyMTkxLDMyMjM2LDM4NzU0LDQwNjI5LDI4MzU3LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDM0MDY1LDIwOTAxLDIxNTE3LDIxNjI5LDI2MTI2LDI2MjY5LDI2OTE5LDI4MzE5LDMwMzk5LDMwNjA5LDMzNTU5LDMzOTg2LDM0NzE5LDM3MjI1LDM3NTI4LDQwMTgwLDM0OTQ2LDIwMzk4LDIwODgyLDIxMjE1LDIyOTgyLDI0MTI1LDI0OTE3''@;'; + put 'put ''LDI1NzIwLDI1NzIxLDI2Mjg2LDI2NTc2LDI3MTY5LDI3NTk3LDI3NjExLDI5Mjc5LDI5MjgxLDI5NzYxLDMwNTIwLDMwNjgzLDMyNzkxLDMzNDY4LDMzNTQxLDM1NTg0LDM1NjI0LDM1OTgwLDI2NDA4LDI3NzkyLDI5Mjg3LDMwNDQ2LDMwNTY2LDMxMzAyLDQwMzYxLDI3NTE5LDI3Nzk0LDIy''@;'; + put 'put ''ODE4LDI2NDA2LDMzOTQ1LDIxMzU5LDIyNjc1LDIyOTM3LDI0Mjg3LDI1NTUxLDI2MTY0LDI2NDgzLDI4MjE4LDI5NDgzLDMxNDQ3LDMzNDk1LDM3NjcyLDIxMjA5LDI0MDQzLDI1MDA2LDI1MDM1LDI1MDk4LDI1Mjg3LDI1NzcxLDI2MDgwLDI2OTY5LDI3NDk0LDI3NTk1LDI4OTYxLDI5Njg3''@;'; + put 'put ''LDMwMDQ1LDMyMzI2LDMzMzEwLDMzNTM4LDM0MTU0LDM1NDkxLDM2MDMxLDM4Njk1LDQwMjg5LDIyNjk2LDQwNjY0LDIwNDk3LDIxMDA2LDIxNTYzLDIxODM5LDI1OTkxLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDI3NzY2LDMyMDEwLDMyMDExLDMyODYyLDM0NDQyLDM4MjcyLDM4NjM5LDIxMjQ3LDI3Nzk3LDI5Mjg5LDIxNjE5LDIzMTk0LDIzNjE0LDIzODgz''@;'; + put 'put ''LDI0Mzk2LDI0NDk0LDI2NDEwLDI2ODA2LDI2OTc5LDI4MjIwLDI4MjI4LDMwNDczLDMxODU5LDMyNjU0LDM0MTgzLDM1NTk4LDM2ODU1LDM4NzUzLDQwNjkyLDIzNzM1LDI0NzU4LDI0ODQ1LDI1MDAzLDI1OTM1LDI2MTA3LDI2MTA4LDI3NjY1LDI3ODg3LDI5NTk5LDI5NjQxLDMyMjI1LDM4''@;'; + put 'put ''MjkyLDIzNDk0LDM0NTg4LDM1NjAwLDIxMDg1LDIxMzM4LDI1MjkzLDI1NjE1LDI1Nzc4LDI2NDIwLDI3MTkyLDI3ODUwLDI5NjMyLDI5ODU0LDMxNjM2LDMxODkzLDMyMjgzLDMzMTYyLDMzMzM0LDM0MTgwLDM2ODQzLDM4NjQ5LDM5MzYxLDIwMjc2LDIxMzIyLDIxNDUzLDIxNDY3LDI1Mjky''@;'; + put 'put ''LDI1NjQ0LDI1ODU2LDI2MDAxLDI3MDc1LDI3ODg2LDI4NTA0LDI5Njc3LDMwMDM2LDMwMjQyLDMwNDM2LDMwNDYwLDMwOTI4LDMwOTcxLDMxMDIwLDMyMDcwLDMzMzI0LDM0Nzg0LDM2ODIwLDM4OTMwLDM5MTUxLDIxMTg3LDI1MzAwLDI1NzY1LDI4MTk2LDI4NDk3LG51bGwsbnVsbCxudWxs''@;'; + put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; + put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; + put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDMwMzMyLDM2Mjk5LDM3Mjk3LDM3NDc0LDM5NjYy''@;'; + put 'put ''LDM5NzQ3LDIwNTE1LDIwNjIxLDIyMzQ2LDIyOTUyLDIzNTkyLDI0MTM1LDI0NDM5LDI1MTUxLDI1OTE4LDI2MDQxLDI2MDQ5LDI2MTIxLDI2NTA3LDI3MDM2LDI4MzU0LDMwOTE3LDMyMDMzLDMyOTM4LDMzMTUyLDMzMzIzLDMzNDU5LDMzOTUzLDM0NDQ0LDM1MzcwLDM1NjA3LDM3MDMwLDM4''@;'; + put 'put ''NDUwLDQwODQ4LDIwNDkzLDIwNDY3LDYzODQzLDIyNTIxLDI0NDcyLDI1MzA4LDI1NDkwLDI2NDc5LDI4MjI3LDI4OTUzLDMwNDAzLDMyOTcyLDMyOTg2LDM1MDYwLDM1MDYxLDM1MDk3LDM2MDY0LDM2NjQ5LDM3MTk3LDM4NTA2LDIwMjcxLDIwMzM2LDI0MDkxLDI2NTc1LDI2NjU4LDMwMzMz''@;'; + put 'put ''LDMwMzM0LDM5NzQ4LDI0MTYxLDI3MTQ2LDI5MDMzLDI5MTQwLDMwMDU4LDYzODQ0LDMyMzIxLDM0MTE1LDM0MjgxLDM5MTMyLDIwMjQwLDMxNTY3LDMyNjI0LDM4MzA5LDIwOTYxLDI0MDcwLDI2ODA1LDI3NzEwLDI3NzI2LDI3ODY3LDI5MzU5LDMxNjg0LDMzNTM5LDI3ODYxLDI5NzU0LDIw''@;'; + put 'put ''NzMxLDIxMTI4LDIyNzIxLDI1ODE2LDI3Mjg3LDI5ODYzLDMwMjk0LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDMwODg3LDM0MzI3LDM4MzcwLDM4NzEzLDYzODQ1LDIxMzQyLDI0MzIxLDM1NzIyLDM2Nzc2LDM2NzgzLDM3MDAyLDIxMDI5LDMwNjI5LDQwMDA5LDQwNzEyLDE5OTkzLDIwNDgyLDIwODUzLDIzNjQzLDI0MTgzLDI2MTQyLDI2MTcwLDI2NTY0LDI2''@;'; + put 'put ''ODIxLDI4ODUxLDI5OTUzLDMwMTQ5LDMxMTc3LDMxNDUzLDM2NjQ3LDM5MjAwLDM5NDMyLDIwNDQ1LDIyNTYxLDIyNTc3LDIzNTQyLDI2MjIyLDI3NDkzLDI3OTIxLDI4MjgyLDI4NTQxLDI5NjY4LDI5OTk1LDMzNzY5LDM1MDM2LDM1MDkxLDM1Njc2LDM2NjI4LDIwMjM5LDIwNjkzLDIxMjY0''@;'; + put 'put ''LDIxMzQwLDIzNDQzLDI0NDg5LDI2MzgxLDMxMTE5LDMzMTQ1LDMzNTgzLDM0MDY4LDM1MDc5LDM1MjA2LDM2NjY1LDM2NjY3LDM5MzMzLDM5OTU0LDI2NDEyLDIwMDg2LDIwNDcyLDIyODU3LDIzNTUzLDIzNzkxLDIzNzkyLDI1NDQ3LDI2ODM0LDI4OTI1LDI5MDkwLDI5NzM5LDMyMjk5LDM0''@;'; + put 'put ''MDI4LDM0NTYyLDM2ODk4LDM3NTg2LDQwMTc5LDE5OTgxLDIwMTg0LDIwNDYzLDIwNjEzLDIxMDc4LDIxMTAzLDIxNTQyLDIxNjQ4LDIyNDk2LDIyODI3LDIzMTQyLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDIzMzg2LDIzNDEzLDIzNTAwLDI0MjIwLDYzODQ2LDI1MjA2LDI1OTc1LDI2MDIzLDI4MDE0LDI4MzI1LDI5MjM4LDMxNTI2LDMxODA3LDMyNTY2LDMz''@;'; + put 'put ''MTA0LDMzMTA1LDMzMTc4LDMzMzQ0LDMzNDMzLDMzNzA1LDM1MzMxLDM2ZTMsMzYwNzAsMzYwOTEsMzYyMTIsMzYyODIsMzcwOTYsMzczNDAsMzg0MjgsMzg0NjgsMzkzODUsNDAxNjcsMjEyNzEsMjA5OTgsMjE1NDUsMjIxMzIsMjI3MDcsMjI4NjgsMjI4OTQsMjQ1NzUsMjQ5OTYsMjUxOTgs''@;'; + put 'put ''MjYxMjgsMjc3NzQsMjg5NTQsMzA0MDYsMzE4ODEsMzE5NjYsMzIwMjcsMzM0NTIsMzYwMzMsMzg2NDAsNjM4NDcsMjAzMTUsMjQzNDMsMjQ0NDcsMjUyODIsMjM4NDksMjYzNzksMjY4NDIsMzA4NDQsMzIzMjMsNDAzMDAsMTk5ODksMjA2MzMsMjEyNjksMjEyOTAsMjEzMjksMjI5MTUsMjMx''@;'; + put 'put ''MzgsMjQxOTksMjQ3NTQsMjQ5NzAsMjUxNjEsMjUyMDksMjZlMywyNjUwMywyNzA0NywyNzYwNCwyNzYwNiwyNzYwNywyNzYwOCwyNzgzMiw2Mzg0OCwyOTc0OSwzMDIwMiwzMDczOCwzMDg2NSwzMTE4OSwzMTE5MiwzMTg3NSwzMjIwMywzMjczNywzMjkzMyxudWxsLG51bGwsbnVsbCxudWxs''@;'; + put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; + put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; + put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwzMzA4NiwzMzIxOCwzMzc3OCwzNDU4NiwzNTA0OCwzNTUx''@;'; + put 'put ''MywzNTY5MiwzNjAyNywzNzE0NSwzODc1MCwzOTEzMSw0MDc2MywyMjE4OCwyMzMzOCwyNDQyOCwyNTk5NiwyNzMxNSwyNzU2NywyNzk5NiwyODY1NywyODY5MywyOTI3NywyOTYxMywzNjAwNywzNjA1MSwzODk3MSwyNDk3NywyNzcwMywzMjg1NiwzOTQyNSwyMDA0NSwyMDEwNywyMDEyMywy''@;'; + put 'put ''MDE4MSwyMDI4MiwyMDI4NCwyMDM1MSwyMDQ0NywyMDczNSwyMTQ5MCwyMTQ5NiwyMTc2NiwyMTk4NywyMjIzNSwyMjc2MywyMjg4MiwyMzA1NywyMzUzMSwyMzU0NiwyMzU1NiwyNDA1MSwyNDEwNywyNDQ3MywyNDYwNSwyNTQ0OCwyNjAxMiwyNjAzMSwyNjYxNCwyNjYxOSwyNjc5NywyNzUx''@;'; + put 'put ''NSwyNzgwMSwyNzg2MywyODE5NSwyODY4MSwyOTUwOSwzMDcyMiwzMTAzOCwzMTA0MCwzMTA3MiwzMTE2OSwzMTcyMSwzMjAyMywzMjExNCwzMjkwMiwzMzI5MywzMzY3OCwzNDAwMSwzNDUwMywzNTAzOSwzNTQwOCwzNTQyMiwzNTYxMywzNjA2MCwzNjE5OCwzNjc4MSwzNzAzNCwzOTE2NCwz''@;'; + put 'put ''OTM5MSw0MDYwNSwyMTA2Niw2Mzg0OSwyNjM4OCw2Mzg1MCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCwyMDYzMiwyMTAzNCwyMzY2NSwyNTk1NSwyNzczMywyOTY0MiwyOTk4NywzMDEwOSwzMTYzOSwzMzk0OCwzNzI0MCwzODcwNCwyMDA4NywyNTc0NiwyNzU3OCwyOTAyMiwzNDIxNywxOTk3Nyw2Mzg1MSwyNjQ0MSwyNjg2MiwyODE4MywzMzQzOSwzNDA3Miwz''@;'; + put 'put ''NDkyMywyNTU5MSwyODU0NSwzNzM5NCwzOTA4NywxOTk3OCwyMDY2MywyMDY4NywyMDc2NywyMTgzMCwyMTkzMCwyMjAzOSwyMzM2MCwyMzU3NywyMzc3NiwyNDEyMCwyNDIwMiwyNDIyNCwyNDI1OCwyNDgxOSwyNjcwNSwyNzIzMywyODI0OCwyOTI0NSwyOTI0OCwyOTM3NiwzMDQ1NiwzMTA3''@;'; + put 'put ''NywzMTY2NSwzMjcyNCwzNTA1OSwzNTMxNiwzNTQ0MywzNTkzNywzNjA2MiwzODY4NCwyMjYyMiwyOTg4NSwzNjA5MywyMTk1OSw2Mzg1MiwzMTMyOSwzMjAzNCwzMzM5NCwyOTI5OCwyOTk4MywyOTk4OSw2Mzg1MywzMTUxMywyMjY2MSwyMjc3OSwyMzk5NiwyNDIwNywyNDI0NiwyNDQ2NCwy''@;'; + put 'put ''NDY2MSwyNTIzNCwyNTQ3MSwyNTkzMywyNjI1NywyNjMyOSwyNjM2MCwyNjY0NiwyNjg2NiwyOTMxMiwyOTc5MCwzMTU5OCwzMjExMCwzMjIxNCwzMjYyNixudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwzMjk5NywzMzI5OCwzNDIyMywzNTE5OSwzNTQ3NSwzNjg5MywzNzYwNCw0MDY1Myw0MDczNiwyMjgwNSwyMjg5MywyNDEwOSwyNDc5NiwyNjEzMiwyNjIyNywy''@;'; + put 'put ''NjUxMiwyNzcyOCwyODEwMSwyODUxMSwzMDcwNywzMDg4OSwzMzk5MCwzNzMyMywzNzY3NSwyMDE4NSwyMDY4MiwyMDgwOCwyMTg5MiwyMzMwNywyMzQ1OSwyNTE1OSwyNTk4MiwyNjA1OSwyODIxMCwyOTA1MywyOTY5NywyOTc2NCwyOTgzMSwyOTg4NywzMDMxNiwzMTE0NiwzMjIxOCwzMjM0''@;'; + put 'put ''MSwzMjY4MCwzMzE0NiwzMzIwMywzMzMzNywzNDMzMCwzNDc5NiwzNTQ0NSwzNjMyMywzNjk4NCwzNzUyMSwzNzkyNSwzOTI0NSwzOTg1NCwyMTM1MiwyMzYzMywyNjk2NCwyNzg0NCwyNzk0NSwyODIwMywzMzI5MiwzNDIwMywzNTEzMSwzNTM3MywzNTQ5OCwzODYzNCw0MDgwNywyMTA4OSwy''@;'; + put 'put ''NjI5NywyNzU3MCwzMjQwNiwzNDgxNCwzNjEwOSwzODI3NSwzODQ5MywyNTg4NSwyODA0MSwyOTE2Niw2Mzg1NCwyMjQ3OCwyMjk5NSwyMzQ2OCwyNDYxNSwyNDgyNiwyNTEwNCwyNjE0MywyNjIwNywyOTQ4MSwyOTY4OSwzMDQyNywzMDQ2NSwzMTU5NixudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwzMjg1NCwzMjg4MiwzMzEyNSwzNTQ4OCwzNzI2NiwxOTk5MCwy''@;'; + put 'put ''MTIxOCwyNzUwNiwyNzkyNywzMTIzNywzMTU0NSwzMjA0OCw2Mzg1NSwzNjAxNiwyMTQ4NCwyMjA2MywyMjYwOSwyMzQ3NywyMzU2NywyMzU2OSwyNDAzNCwyNTE1MiwyNTQ3NSwyNTYyMCwyNjE1NywyNjgwMywyNzgzNiwyODA0MCwyODMzNSwyODcwMywyODgzNiwyOTEzOCwyOTk5MCwzMDA5''@;'; + put 'put ''NSwzMDA5NCwzMDIzMywzMTUwNSwzMTcxMiwzMTc4NywzMjAzMiwzMjA1NywzNDA5MiwzNDE1NywzNDMxMSwzNTM4MCwzNjg3NywzNjk2MSwzNzA0NSwzNzU1OSwzODkwMiwzOTQ3OSwyMDQzOSwyMzY2MCwyNjQ2MywyODA0OSwzMTkwMywzMjM5NiwzNTYwNiwzNjExOCwzNjg5NSwyMzQwMywy''@;'; + put 'put ''NDA2MSwyNTYxMywzMzk4NCwzNjk1NiwzOTEzNywyOTU3NSwyMzQzNSwyNDczMCwyNjQ5NCwyODEyNiwzNTM1OSwzNTQ5NCwzNjg2NSwzODkyNCwyMTA0Nyw2Mzg1NiwyODc1MywzMDg2MiwzNzc4MiwzNDkyOCwzNzMzNSwyMDQ2MiwyMTQ2MywyMjAxMywyMjIzNCwyMjQwMiwyMjc4MSwyMzIz''@;'; + put 'put ''NCwyMzQzMiwyMzcyMywyMzc0NCwyNDEwMSwyNDgzMyxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCwyNTEwMSwyNTE2MywyNTQ4MCwyNTYyOCwyNTkxMCwyNTk3NiwyNzE5MywyNzUzMCwyNzcwMCwyNzkyOSwyODQ2NSwyOTE1OSwyOTQxNywyOTU2MCwyOTcwMywyOTg3NCwzMDI0NiwzMDU2MSwzMTE2OCwzMTMxOSwzMTQ2NiwzMTkyOSwzMjE0MywzMjE3MiwzMjM1''@;'; + put 'put ''MywzMjY3MCwzMzA2NSwzMzU4NSwzMzkzNiwzNDAxMCwzNDI4MiwzNDk2NiwzNTUwNCwzNTcyOCwzNjY2NCwzNjkzMCwzNjk5NSwzNzIyOCwzNzUyNiwzNzU2MSwzODUzOSwzODU2NywzODU2OCwzODYxNCwzODY1NiwzODkyMCwzOTMxOCwzOTYzNSwzOTcwNiwyMTQ2MCwyMjY1NCwyMjgwOSwy''@;'; + put 'put ''MzQwOCwyMzQ4NywyODExMywyODUwNiwyOTA4NywyOTcyOSwyOTg4MSwzMjkwMSwzMzc4OSwyNDAzMywyNDQ1NSwyNDQ5MCwyNDY0MiwyNjA5MiwyNjY0MiwyNjk5MSwyNzIxOSwyNzUyOSwyNzk1NywyODE0NywyOTY2NywzMDQ2MiwzMDYzNiwzMTU2NSwzMjAyMCwzMzA1OSwzMzMwOCwzMzYw''@;'; + put 'put ''MCwzNDAzNiwzNDE0NywzNTQyNiwzNTUyNCwzNzI1NSwzNzY2MiwzODkxOCwzOTM0OCwyNTEwMCwzNDg5OSwzNjg0OCwzNzQ3NywyMzgxNSwyMzg0NyxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; + put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; + put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; + put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwyMzkxMywyOTc5MSwzMzE4MSwzNDY2NCwyODYyOSwyNTM0MiwzMjcyMiwzNTEyNiwzNTE4NiwxOTk5OCwyMDA1NiwyMDcxMSwyMTIxMywyMTMxOSwyNTIxNSwyNjEx''@;'; + put 'put ''OSwzMjM2MSwzNDgyMSwzODQ5NCwyMDM2NSwyMTI3MywyMjA3MCwyMjk4NywyMzIwNCwyMzYwOCwyMzYzMCwyMzYyOSwyNDA2NiwyNDMzNywyNDY0MywyNjA0NSwyNjE1OSwyNjE3OCwyNjU1OCwyNjYxMiwyOTQ2OCwzMDY5MCwzMTAzNCwzMjcwOSwzMzk0MCwzMzk5NywzNTIyMiwzNTQzMCwz''@;'; + put 'put ''NTQzMywzNTU1MywzNTkyNSwzNTk2MiwyMjUxNiwyMzUwOCwyNDMzNSwyNDY4NywyNTMyNSwyNjg5MywyNzU0MiwyODI1MiwyOTA2MCwzMTY5OCwzNDY0NSwzNTY3MiwzNjYwNiwzOTEzNSwzOTE2NiwyMDI4MCwyMDM1MywyMDQ0OSwyMTYyNywyMzA3MiwyMzQ4MCwyNDg5MiwyNjAzMiwyNjIx''@;'; + put 'put ''NiwyOTE4MCwzMDAwMywzMTA3MCwzMjA1MSwzMzEwMiwzMzI1MSwzMzY4OCwzNDIxOCwzNDI1NCwzNDU2MywzNTMzOCwzNjUyMywzNjc2Myw2Mzg1NywzNjgwNSwyMjgzMywyMzQ2MCwyMzUyNiwyNDcxMywyMzUyOSwyMzU2MywyNDUxNSwyNzc3NyxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw2Mzg1OCwyODE0NSwyODY4MywyOTk3OCwzMzQ1NSwzNTU3NCwyMDE2''@;'; + put 'put ''MCwyMTMxMyw2Mzg1OSwzODYxNywyNzY2MywyMDEyNiwyMDQyMCwyMDgxOCwyMTg1NCwyMzA3NywyMzc4NCwyNTEwNSwyOTI3MywzMzQ2OSwzMzcwNiwzNDU1OCwzNDkwNSwzNTM1NywzODQ2MywzODU5NywzOTE4Nyw0MDIwMSw0MDI4NSwyMjUzOCwyMzczMSwyMzk5NywyNDEzMiwyNDgwMSwy''@;'; + put 'put ''NDg1MywyNTU2OSwyNzEzOCwyODE5NywzNzEyMiwzNzcxNiwzODk5MCwzOTk1Miw0MDgyMywyMzQzMywyMzczNiwyNTM1MywyNjE5MSwyNjY5NiwzMDUyNCwzODU5MywzODc5NywzODk5NiwzOTgzOSwyNjAxNywzNTU4NSwzNjU1NSwzODMzMiwyMTgxMywyMzcyMSwyNDAyMiwyNDI0NSwyNjI2''@;'; + put 'put ''MywzMDI4NCwzMzc4MCwzODM0MywyMjczOSwyNTI3NiwyOTM5MCw0MDIzMiwyMDIwOCwyMjgzMCwyNDU5MSwyNjE3MSwyNzUyMywzMTIwNyw0MDIzMCwyMTM5NSwyMTY5NiwyMjQ2NywyMzgzMCwyNDg1OSwyNjMyNiwyODA3OSwzMDg2MSwzMzQwNiwzODU1MiwzODcyNCwyMTM4MCwyNTIxMiwy''@;'; + put 'put ''NTQ5NCwyODA4MiwzMjI2NiwzMzA5OSwzODk4OSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCwyNzM4NywzMjU4OCw0MDM2Nyw0MDQ3NCwyMDA2MywyMDUzOSwyMDkxOCwyMjgxMiwyNDgyNSwyNTU5MCwyNjkyOCwyOTI0MiwzMjgyMiw2Mzg2MCwzNzMyNiwyNDM2OSw2Mzg2MSw2Mzg2MiwzMjAwNCwzMzUwOSwzMzkwMywzMzk3OSwzNDI3NywzNjQ5Myw2Mzg2Mywy''@;'; + put 'put ''MDMzNSw2Mzg2NCw2Mzg2NSwyMjc1NiwyMzM2MywyNDY2NSwyNTU2MiwyNTg4MCwyNTk2NSwyNjI2NCw2Mzg2NiwyNjk1NCwyNzE3MSwyNzkxNSwyODY3MywyOTAzNiwzMDE2MiwzMDIyMSwzMTE1NSwzMTM0NCw2Mzg2NywzMjY1MCw2Mzg2OCwzNTE0MCw2Mzg2OSwzNTczMSwzNzMxMiwzODUy''@;'; + put 'put ''NSw2Mzg3MCwzOTE3OCwyMjI3NiwyNDQ4MSwyNjA0NCwyODQxNywzMDIwOCwzMTE0MiwzNTQ4NiwzOTM0MSwzOTc3MCw0MDgxMiwyMDc0MCwyNTAxNCwyNTIzMywyNzI3NywzMzIyMiwyMDU0NywyMjU3NiwyNDQyMiwyODkzNywzNTMyOCwzNTU3OCwyMzQyMCwzNDMyNiwyMDQ3NCwyMDc5Niwy''@;'; + put 'put ''MjE5NiwyMjg1MiwyNTUxMywyODE1MywyMzk3OCwyNjk4OSwyMDg3MCwyMDEwNCwyMDMxMyw2Mzg3MSw2Mzg3Miw2Mzg3MywyMjkxNCw2Mzg3NCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw2Mzg3NSwyNzQ4NywyNzc0MSw2Mzg3NiwyOTg3NywzMDk5OCw2Mzg3NywzMzI4NywzMzM0OSwzMzU5MywzNjY3MSwzNjcwMSw2Mzg3OCwzOTE5Miw2Mzg3OSw2Mzg4MCw2''@;'; + put 'put ''Mzg4MSwyMDEzNCw2Mzg4MiwyMjQ5NSwyNDQ0MSwyNjEzMSw2Mzg4Myw2Mzg4NCwzMDEyMywzMjM3NywzNTY5NSw2Mzg4NSwzNjg3MCwzOTUxNSwyMjE4MSwyMjU2NywyMzAzMiwyMzA3MSwyMzQ3Niw2Mzg4NiwyNDMxMCw2Mzg4Nyw2Mzg4OCwyNTQyNCwyNTQwMyw2Mzg4OSwyNjk0MSwyNzc4''@;'; + put 'put ''MywyNzgzOSwyODA0NiwyODA1MSwyODE0OSwyODQzNiw2Mzg5MCwyODg5NSwyODk4MiwyOTAxNyw2Mzg5MSwyOTEyMywyOTE0MSw2Mzg5MiwzMDc5OSwzMDgzMSw2Mzg5MywzMTYwNSwzMjIyNyw2Mzg5NCwzMjMwMyw2Mzg5NSwzNDg5MywzNjU3NSw2Mzg5Niw2Mzg5Nyw2Mzg5OCwzNzQ2Nyw2''@;'; + put 'put ''Mzg5OSw0MDE4Miw2MzkwMCw2MzkwMSw2MzkwMiwyNDcwOSwyODAzNyw2MzkwMywyOTEwNSw2MzkwNCw2MzkwNSwzODMyMSwyMTQyMSw2MzkwNiw2MzkwNyw2MzkwOCwyNjU3OSw2MzkwOSwyODgxNCwyODk3NiwyOTc0NCwzMzM5OCwzMzQ5MCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw2MzkxMCwzODMzMSwzOTY1Myw0MDU3MywyNjMwOCw2MzkxMSwyOTEyMSwz''@;'; + put 'put ''Mzg2NSw2MzkxMiw2MzkxMywyMjYwMyw2MzkxNCw2MzkxNSwyMzk5MiwyNDQzMyw2MzkxNiwyNjE0NCwyNjI1NCwyNzAwMSwyNzA1NCwyNzcwNCwyNzg5MSwyODIxNCwyODQ4MSwyODYzNCwyODY5OSwyODcxOSwyOTAwOCwyOTE1MSwyOTU1Miw2MzkxNywyOTc4Nyw2MzkxOCwyOTkwOCwzMDQw''@;'; + put 'put ''OCwzMTMxMCwzMjQwMyw2MzkxOSw2MzkyMCwzMzUyMSwzNTQyNCwzNjgxNCw2MzkyMSwzNzcwNCw2MzkyMiwzODY4MSw2MzkyMyw2MzkyNCwyMDAzNCwyMDUyMiw2MzkyNSwyMWUzLDIxNDczLDI2MzU1LDI3NzU3LDI4NjE4LDI5NDUwLDMwNTkxLDMxMzMwLDMzNDU0LDM0MjY5LDM0MzA2LDYz''@;'; + put 'put ''OTI2LDM1MDI4LDM1NDI3LDM1NzA5LDM1OTQ3LDYzOTI3LDM3NTU1LDYzOTI4LDM4Njc1LDM4OTI4LDIwMTE2LDIwMjM3LDIwNDI1LDIwNjU4LDIxMzIwLDIxNTY2LDIxNTU1LDIxOTc4LDIyNjI2LDIyNzE0LDIyODg3LDIzMDY3LDIzNTI0LDI0NzM1LDYzOTI5LDI1MDM0LDI1OTQyLDI2MTEx''@;'; + put 'put ''LDI2MjEyLDI2NzkxLDI3NzM4LDI4NTk1LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLDI4ODc5LDI5MTAwLDI5NTIyLDMxNjEzLDM0NTY4LDM1NDkyLDM5OTg2LDQwNzExLDIzNjI3LDI3Nzc5LDI5NTA4LDI5NTc3LDM3NDM0LDI4MzMxLDI5Nzk3LDMwMjM5LDMxMzM3LDMyMjc3LDM0MzE0LDIwODAwLDIyNzI1LDI1NzkzLDI5OTM0LDI5OTczLDMwMzIwLDMyNzA1''@;'; + put 'put ''LDM3MDEzLDM4NjA1LDM5MjUyLDI4MTk4LDI5OTI2LDMxNDAxLDMxNDAyLDMzMjUzLDM0NTIxLDM0NjgwLDM1MzU1LDIzMTEzLDIzNDM2LDIzNDUxLDI2Nzg1LDI2ODgwLDI4MDAzLDI5NjA5LDI5NzE1LDI5NzQwLDMwODcxLDMyMjMzLDMyNzQ3LDMzMDQ4LDMzMTA5LDMzNjk0LDM1OTE2LDM4''@;'; + put 'put ''NDQ2LDM4OTI5LDI2MzUyLDI0NDQ4LDI2MTA2LDI2NTA1LDI3NzU0LDI5NTc5LDIwNTI1LDIzMDQzLDI3NDk4LDMwNzAyLDIyODA2LDIzOTE2LDI0MDEzLDI5NDc3LDMwMDMxLDYzOTMwLDYzOTMxLDIwNzA5LDIwOTg1LDIyNTc1LDIyODI5LDIyOTM0LDIzMDAyLDIzNTI1LDYzOTMyLDYzOTMz''@;'; + put 'put ''LDIzOTcwLDI1MzAzLDI1NjIyLDI1NzQ3LDI1ODU0LDYzOTM0LDI2MzMyLDYzOTM1LDI3MjA4LDYzOTM2LDI5MTgzLDI5Nzk2LDYzOTM3LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDMxMzY4LDMxNDA3LDMyMzI3LDMyMzUwLDMyNzY4LDMzMTM2LDYzOTM4LDM0Nzk5LDM1MjAxLDM1NjE2LDM2OTUzLDYzOTM5LDM2OTkyLDM5MjUwLDI0OTU4LDI3NDQyLDI4MDIw''@;'; + put 'put ''LDMyMjg3LDM1MTA5LDM2Nzg1LDIwNDMzLDIwNjUzLDIwODg3LDIxMTkxLDIyNDcxLDIyNjY1LDIzNDgxLDI0MjQ4LDI0ODk4LDI3MDI5LDI4MDQ0LDI4MjYzLDI4MzQyLDI5MDc2LDI5Nzk0LDI5OTkyLDI5OTk2LDMyODgzLDMzNTkyLDMzOTkzLDM2MzYyLDM3NzgwLDM3ODU0LDYzOTQwLDIw''@;'; + put 'put ''MTEwLDIwMzA1LDIwNTk4LDIwNzc4LDIxNDQ4LDIxNDUxLDIxNDkxLDIzNDMxLDIzNTA3LDIzNTg4LDI0ODU4LDI0OTYyLDI2MTAwLDI5Mjc1LDI5NTkxLDI5NzYwLDMwNDAyLDMxMDU2LDMxMTIxLDMxMTYxLDMyMDA2LDMyNzAxLDMzNDE5LDM0MjYxLDM0Mzk4LDM2ODAyLDM2OTM1LDM3MTA5''@;'; + put 'put ''LDM3MzU0LDM4NTMzLDM4NjMyLDM4NjMzLDIxMjA2LDI0NDIzLDI2MDkzLDI2MTYxLDI2NjcxLDI5MDIwLDMxMjg2LDM3MDU3LDM4OTIyLDIwMTEzLDYzOTQxLDI3MjE4LDI3NTUwLDI4NTYwLDI5MDY1LDMyNzkyLDMzNDY0LDM0MTMxLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDM2OTM5LDM4NTQ5LDM4NjQyLDM4OTA3LDM0MDc0LDM5NzI5LDIwMTEyLDI5MDY2''@;'; + put 'put ''LDM4NTk2LDIwODAzLDIxNDA3LDIxNzI5LDIyMjkxLDIyMjkwLDIyNDM1LDIzMTk1LDIzMjM2LDIzNDkxLDI0NjE2LDI0ODk1LDI1NTg4LDI3NzgxLDI3OTYxLDI4Mjc0LDI4MzA0LDI5MjMyLDI5NTAzLDI5NzgzLDMzNDg5LDM0OTQ1LDM2Njc3LDM2OTYwLDYzOTQyLDM4NDk4LDM5ZTMsNDAy''@;'; + put 'put ''MTksMjYzNzYsMzYyMzQsMzc0NzAsMjAzMDEsMjA1NTMsMjA3MDIsMjEzNjEsMjIyODUsMjI5OTYsMjMwNDEsMjM1NjEsMjQ5NDQsMjYyNTYsMjgyMDUsMjkyMzQsMjk3NzEsMzIyMzksMzI5NjMsMzM4MDYsMzM4OTQsMzQxMTEsMzQ2NTUsMzQ5MDcsMzUwOTYsMzU1ODYsMzY5NDksMzg4NTks''@;'; + put 'put ''Mzk3NTksMjAwODMsMjAzNjksMjA3NTQsMjA4NDIsNjM5NDMsMjE4MDcsMjE5MjksMjM0MTgsMjM0NjEsMjQxODgsMjQxODksMjQyNTQsMjQ3MzYsMjQ3OTksMjQ4NDAsMjQ4NDEsMjU1NDAsMjU5MTIsMjYzNzcsNjM5NDQsMjY1ODAsMjY1ODYsNjM5NDUsMjY5NzcsMjY5NzgsMjc4MzMsMjc5''@;'; + put 'put ''NDMsNjM5NDYsMjgyMTYsNjM5NDcsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; + put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; + put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; + put 'put ''LG51bGwsMjg2NDEsMjk0OTQsMjk0OTUsNjM5NDgsMjk3ODgsMzAwMDEsNjM5NDksMzAyOTAsNjM5NTAsNjM5NTEsMzIxNzMsMzMyNzgsMzM4NDgsMzUwMjksMzU0ODAsMzU1NDcsMzU1NjUsMzY0MDAsMzY0MTgsMzY5MzgsMzY5MjYsMzY5ODYsMzcxOTMsMzczMjEsMzc3NDIsNjM5NTIsNjM5''@;'; + put 'put ''NTMsMjI1MzcsNjM5NTQsMjc2MDMsMzI5MDUsMzI5NDYsNjM5NTUsNjM5NTYsMjA4MDEsMjI4OTEsMjM2MDksNjM5NTcsNjM5NTgsMjg1MTYsMjk2MDcsMzI5OTYsMzYxMDMsNjM5NTksMzczOTksMzgyODcsNjM5NjAsNjM5NjEsNjM5NjIsNjM5NjMsMzI4OTUsMjUxMDIsMjg3MDAsMzIxMDQs''@;'; + put 'put ''MzQ3MDEsNjM5NjQsMjI0MzIsMjQ2ODEsMjQ5MDMsMjc1NzUsMzU1MTgsMzc1MDQsMzg1NzcsMjAwNTcsMjE1MzUsMjgxMzksMzQwOTMsMzg1MTIsMzg4OTksMzkxNTAsMjU1NTgsMjc4NzUsMzcwMDksMjA5NTcsMjUwMzMsMzMyMTAsNDA0NDEsMjAzODEsMjA1MDYsMjA3MzYsMjM0NTIsMjQ4''@;'; + put 'put ''NDcsMjUwODcsMjU4MzYsMjY4ODUsMjc1ODksMzAwOTcsMzA2OTEsMzI2ODEsMzMzODAsMzQxOTEsMzQ4MTEsMzQ5MTUsMzU1MTYsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsMzU2OTYsMzcyOTEsMjAxMDgsMjAxOTcsMjAyMzQsNjM5NjUsNjM5NjYsMjI4MzksMjMwMTYsNjM5NjcsMjQwNTAsMjQzNDcsMjQ0MTEsMjQ2MDksNjM5NjgsNjM5NjksNjM5NzAsNjM5''@;'; + put 'put ''NzEsMjkyNDYsMjk2NjksNjM5NzIsMzAwNjQsMzAxNTcsNjM5NzMsMzEyMjcsNjM5NzQsMzI3ODAsMzI4MTksMzI5MDAsMzM1MDUsMzM2MTcsNjM5NzUsNjM5NzYsMzYwMjksMzYwMTksMzY5OTksNjM5NzcsNjM5NzgsMzkxNTYsMzkxODAsNjM5NzksNjM5ODAsMjg3MjcsMzA0MTAsMzI3MTQs''@;'; + put 'put ''MzI3MTYsMzI3NjQsMzU2MTAsMjAxNTQsMjAxNjEsMjA5OTUsMjEzNjAsNjM5ODEsMjE2OTMsMjIyNDAsMjMwMzUsMjM0OTMsMjQzNDEsMjQ1MjUsMjgyNzAsNjM5ODIsNjM5ODMsMzIxMDYsMzM1ODksNjM5ODQsMzQ0NTEsMzU0NjksNjM5ODUsMzg3NjUsMzg3NzUsNjM5ODYsNjM5ODcsMTk5''@;'; + put 'put ''NjgsMjAzMTQsMjAzNTAsMjI3NzcsMjYwODUsMjgzMjIsMzY5MjAsMzc4MDgsMzkzNTMsMjAyMTksMjI3NjQsMjI5MjIsMjMwMDEsMjQ2NDEsNjM5ODgsNjM5ODksMzEyNTIsNjM5OTAsMzM2MTUsMzYwMzUsMjA4MzcsMjEzMTYsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNjM5OTEsNjM5OTIsNjM5OTMsMjAxNzMsMjEwOTcsMjMzODEsMzM0NzEsMjAxODAsMjEw''@;'; + put 'put ''NTAsMjE2NzIsMjI5ODUsMjMwMzksMjMzNzYsMjMzODMsMjMzODgsMjQ2NzUsMjQ5MDQsMjgzNjMsMjg4MjUsMjkwMzgsMjk1NzQsMjk5NDMsMzAxMzMsMzA5MTMsMzIwNDMsMzI3NzMsMzMyNTgsMzM1NzYsMzQwNzEsMzQyNDksMzU1NjYsMzYwMzksMzg2MDQsMjAzMTYsMjEyNDIsMjIyMDQs''@;'; + put 'put ''MjYwMjcsMjYxNTIsMjg3OTYsMjg4NTYsMjkyMzcsMzIxODksMzM0MjEsMzcxOTYsMzg1OTIsNDAzMDYsMjM0MDksMjY4NTUsMjc1NDQsMjg1MzgsMzA0MzAsMjM2OTcsMjYyODMsMjg1MDcsMzE2NjgsMzE3ODYsMzQ4NzAsMzg2MjAsMTk5NzYsMjAxODMsMjEyODAsMjI1ODAsMjI3MTUsMjI3''@;'; + put 'put ''NjcsMjI4OTIsMjM1NTksMjQxMTUsMjQxOTYsMjQzNzMsMjU0ODQsMjYyOTAsMjY0NTQsMjcxNjcsMjcyOTksMjc0MDQsMjg0NzksMjkyNTQsNjM5OTQsMjk1MjAsMjk4MzUsMzE0NTYsMzE5MTEsMzMxNDQsMzMyNDcsMzMyNTUsMzM2NzQsMzM5MDAsMzQwODMsMzQxOTYsMzQyNTUsMzUwMzcs''@;'; + put 'put ''MzYxMTUsMzcyOTIsMzgyNjMsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsMzg1NTYsMjA4NzcsMjE3MDUsMjIzMTIsMjM0NzIsMjUxNjUsMjY0NDgsMjY2ODUsMjY3NzEsMjgyMjEsMjgzNzEsMjg3OTcsMzIyODksMzUwMDksMzYwMDEsMzY2MTcsNDA3NzksNDA3ODIsMjkyMjksMzE2MzEsMzU1MzMsMzc2NTgsMjAyOTUsMjAzMDIsMjA3ODYsMjE2MzIsMjI5OTIs''@;'; + put 'put ''MjQyMTMsMjUyNjksMjY0ODUsMjY5OTAsMjcxNTksMjc4MjIsMjgxODYsMjk0MDEsMjk0ODIsMzAxNDEsMzE2NzIsMzIwNTMsMzM1MTEsMzM3ODUsMzM4NzksMzQyOTUsMzU0MTksMzYwMTUsMzY0ODcsMzY4ODksMzcwNDgsMzg2MDYsNDA3OTksMjEyMTksMjE1MTQsMjMyNjUsMjM0OTAsMjU2''@;'; + put 'put ''ODgsMjU5NzMsMjg0MDQsMjkzODAsNjM5OTUsMzAzNDAsMzEzMDksMzE1MTUsMzE4MjEsMzIzMTgsMzI3MzUsMzM2NTksMzU2MjcsMzYwNDIsMzYxOTYsMzYzMjEsMzY0NDcsMzY4NDIsMzY4NTcsMzY5NjksMzc4NDEsMjAyOTEsMjAzNDYsMjA2NTksMjA4NDAsMjA4NTYsMjEwNjksMjEwOTgs''@;'; + put 'put ''MjI2MjUsMjI2NTIsMjI4ODAsMjM1NjAsMjM2MzcsMjQyODMsMjQ3MzEsMjUxMzYsMjY2NDMsMjc1ODMsMjc2NTYsMjg1OTMsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsMjkwMDYsMjk3MjgsM2U0LDMwMDA4LDMwMDMzLDMwMzIyLDMxNTY0LDMxNjI3LDMxNjYxLDMxNjg2LDMyMzk5LDM1NDM4LDM2NjcwLDM2NjgxLDM3NDM5LDM3NTIzLDM3NjY2LDM3OTMxLDM4''@;'; + put 'put ''NjUxLDM5MDAyLDM5MDE5LDM5MTk4LDIwOTk5LDI1MTMwLDI1MjQwLDI3OTkzLDMwMzA4LDMxNDM0LDMxNjgwLDMyMTE4LDIxMzQ0LDIzNzQyLDI0MjE1LDI4NDcyLDI4ODU3LDMxODk2LDM4NjczLDM5ODIyLDQwNjcwLDI1NTA5LDI1NzIyLDM0Njc4LDE5OTY5LDIwMTE3LDIwMTQxLDIwNTcy''@;'; + put 'put ''LDIwNTk3LDIxNTc2LDIyOTc5LDIzNDUwLDI0MTI4LDI0MjM3LDI0MzExLDI0NDQ5LDI0NzczLDI1NDAyLDI1OTE5LDI1OTcyLDI2MDYwLDI2MjMwLDI2MjMyLDI2NjIyLDI2OTg0LDI3MjczLDI3NDkxLDI3NzEyLDI4MDk2LDI4MTM2LDI4MTkxLDI4MjU0LDI4NzAyLDI4ODMzLDI5NTgyLDI5''@;'; + put 'put ''NjkzLDMwMDEwLDMwNTU1LDMwODU1LDMxMTE4LDMxMjQzLDMxMzU3LDMxOTM0LDMyMTQyLDMzMzUxLDM1MzMwLDM1NTYyLDM1OTk4LDM3MTY1LDM3MTk0LDM3MzM2LDM3NDc4LDM3NTgwLDM3NjY0LDM4NjYyLDM4NzQyLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDM4NzQ4LDM4OTE0LDQwNzE4LDIxMDQ2LDIxMTM3LDIxODg0LDIyNTY0LDI0MDkzLDI0MzUxLDI0''@;'; + put 'put ''NzE2LDI1NTUyLDI2Nzk5LDI4NjM5LDMxMDg1LDMxNTMyLDMzMjI5LDM0MjM0LDM1MDY5LDM1NTc2LDM2NDIwLDM3MjYxLDM4NTAwLDM4NTU1LDM4NzE3LDM4OTg4LDQwNzc4LDIwNDMwLDIwODA2LDIwOTM5LDIxMTYxLDIyMDY2LDI0MzQwLDI0NDI3LDI1NTE0LDI1ODA1LDI2MDg5LDI2MTc3''@;'; + put 'put ''LDI2MzYyLDI2MzYxLDI2Mzk3LDI2NzgxLDI2ODM5LDI3MTMzLDI4NDM3LDI4NTI2LDI5MDMxLDI5MTU3LDI5MjI2LDI5ODY2LDMwNTIyLDMxMDYyLDMxMDY2LDMxMTk5LDMxMjY0LDMxMzgxLDMxODk1LDMxOTY3LDMyMDY4LDMyMzY4LDMyOTAzLDM0Mjk5LDM0NDY4LDM1NDEyLDM1NTE5LDM2''@;'; + put 'put ''MjQ5LDM2NDgxLDM2ODk2LDM2OTczLDM3MzQ3LDM4NDU5LDM4NjEzLDQwMTY1LDI2MDYzLDMxNzUxLDM2Mjc1LDM3ODI3LDIzMzg0LDIzNTYyLDIxMzMwLDI1MzA1LDI5NDY5LDIwNTE5LDIzNDQ3LDI0NDc4LDI0NzUyLDI0OTM5LDI2ODM3LDI4MTIxLDI5NzQyLDMxMjc4LDMyMDY2LDMyMTU2''@;'; + put 'put ''LDMyMzA1LDMzMTMxLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDM2''@;'; + put 'put ''Mzk0LDM2NDA1LDM3NzU4LDM3OTEyLDIwMzA0LDIyMzUyLDI0MDM4LDI0MjMxLDI1Mzg3LDMyNjE4LDIwMDI3LDIwMzAzLDIwMzY3LDIwNTcwLDIzMDA1LDMyOTY0LDIxNjEwLDIxNjA4LDIyMDE0LDIyODYzLDIzNDQ5LDI0MDMwLDI0MjgyLDI2MjA1LDI2NDE3LDI2NjA5LDI2NjY2LDI3ODgw''@;'; + put 'put ''LDI3OTU0LDI4MjM0LDI4NTU3LDI4ODU1LDI5NjY0LDMwMDg3LDMxODIwLDMyMDAyLDMyMDQ0LDMyMTYyLDMzMzExLDM0NTIzLDM1Mzg3LDM1NDYxLDM2MjA4LDM2NDkwLDM2NjU5LDM2OTEzLDM3MTk4LDM3MjAyLDM3OTU2LDM5Mzc2LDMxNDgxLDMxOTA5LDIwNDI2LDIwNzM3LDIwOTM0LDIy''@;'; + put 'put ''NDcyLDIzNTM1LDIzODAzLDI2MjAxLDI3MTk3LDI3OTk0LDI4MzEwLDI4NjUyLDI4OTQwLDMwMDYzLDMxNDU5LDM0ODUwLDM2ODk3LDM2OTgxLDM4NjAzLDM5NDIzLDMzNTM3LDIwMDEzLDIwMjEwLDM0ODg2LDM3MzI1LDIxMzczLDI3MzU1LDI2OTg3LDI3NzEzLDMzOTE0LDIyNjg2LDI0OTc0''@;'; + put 'put ''LDI2MzY2LDI1MzI3LDI4ODkzLDI5OTY5LDMwMTUxLDMyMzM4LDMzOTc2LDM1NjU3LDM2MTA0LDIwMDQzLDIxNDgyLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDIxNjc1LDIyMzIwLDIyMzM2LDI0NTM1LDI1MzQ1LDI1MzUxLDI1NzExLDI1OTAzLDI2MDg4LDI2MjM0LDI2NTI1LDI2NTQ3LDI3NDkwLDI3NzQ0LDI3ODAyLDI4NDYwLDMwNjkzLDMwNzU3LDMxMDQ5''@;'; + put 'put ''LDMxMDYzLDMyMDI1LDMyOTMwLDMzMDI2LDMzMjY3LDMzNDM3LDMzNDYzLDM0NTg0LDM1NDY4LDYzOTk2LDM2MTAwLDM2Mjg2LDM2OTc4LDMwNDUyLDMxMjU3LDMxMjg3LDMyMzQwLDMyODg3LDIxNzY3LDIxOTcyLDIyNjQ1LDI1MzkxLDI1NjM0LDI2MTg1LDI2MTg3LDI2NzMzLDI3MDM1LDI3''@;'; + put 'put ''NTI0LDI3OTQxLDI4MzM3LDI5NjQ1LDI5ODAwLDI5ODU3LDMwMDQzLDMwMTM3LDMwNDMzLDMwNDk0LDMwNjAzLDMxMjA2LDMyMjY1LDMyMjg1LDMzMjc1LDM0MDk1LDM0OTY3LDM1Mzg2LDM2MDQ5LDM2NTg3LDM2Nzg0LDM2OTE0LDM3ODA1LDM4NDk5LDM4NTE1LDM4NjYzLDIwMzU2LDIxNDg5''@;'; + put 'put ''LDIzMDE4LDIzMjQxLDI0MDg5LDI2NzAyLDI5ODk0LDMwMTQyLDMxMjA5LDMxMzc4LDMzMTg3LDM0NTQxLDM2MDc0LDM2MzAwLDM2ODQ1LDI2MDE1LDI2Mzg5LDYzOTk3LDIyNTE5LDI4NTAzLDMyMjIxLDM2NjU1LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; + put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; + put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; + put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDM3ODc4LDM4NTk4LDI0NTAxLDI1MDc0LDI4NTQ4LDE5OTg4LDIwMzc2LDIwNTExLDIxNDQ5LDIxOTgz''@;'; + put 'put ''LDIzOTE5LDI0MDQ2LDI3NDI1LDI3NDkyLDMwOTIzLDMxNjQyLDYzOTk4LDM2NDI1LDM2NTU0LDM2OTc0LDI1NDE3LDI1NjYyLDMwNTI4LDMxMzY0LDM3Njc5LDM4MDE1LDQwODEwLDI1Nzc2LDI4NTkxLDI5MTU4LDI5ODY0LDI5OTE0LDMxNDI4LDMxNzYyLDMyMzg2LDMxOTIyLDMyNDA4LDM1''@;'; + put 'put ''NzM4LDM2MTA2LDM4MDEzLDM5MTg0LDM5MjQ0LDIxMDQ5LDIzNTE5LDI1ODMwLDI2NDEzLDMyMDQ2LDIwNzE3LDIxNDQzLDIyNjQ5LDI0OTIwLDI0OTIxLDI1MDgyLDI2MDI4LDMxNDQ5LDM1NzMwLDM1NzM0LDIwNDg5LDIwNTEzLDIxMTA5LDIxODA5LDIzMTAwLDI0Mjg4LDI0NDMyLDI0ODg0''@;'; + put 'put ''LDI1OTUwLDI2MTI0LDI2MTY2LDI2Mjc0LDI3MDg1LDI4MzU2LDI4NDY2LDI5NDYyLDMwMjQxLDMxMzc5LDMzMDgxLDMzMzY5LDMzNzUwLDMzOTgwLDIwNjYxLDIyNTEyLDIzNDg4LDIzNTI4LDI0NDI1LDI1NTA1LDMwNzU4LDMyMTgxLDMzNzU2LDM0MDgxLDM3MzE5LDM3MzY1LDIwODc0LDI2''@;'; + put 'put ''NjEzLDMxNTc0LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDM2MDEy''@;'; + put 'put ''LDIwOTMyLDIyOTcxLDI0NzY1LDM0Mzg5LDIwNTA4LDYzOTk5LDIxMDc2LDIzNjEwLDI0OTU3LDI1MTE0LDI1Mjk5LDI1ODQyLDI2MDIxLDI4MzY0LDMwMjQwLDMzMDM0LDM2NDQ4LDM4NDk1LDM4NTg3LDIwMTkxLDIxMzE1LDIxOTEyLDIyODI1LDI0MDI5LDI1Nzk3LDI3ODQ5LDI4MTU0LDI5''@;'; + put 'put ''NTg4LDMxMzU5LDMzMzA3LDM0MjE0LDM2MDY4LDM2MzY4LDM2OTgzLDM3MzUxLDM4MzY5LDM4NDMzLDM4ODU0LDIwOTg0LDIxNzQ2LDIxODk0LDI0NTA1LDI1NzY0LDI4NTUyLDMyMTgwLDM2NjM5LDM2Njg1LDM3OTQxLDIwNjgxLDIzNTc0LDI3ODM4LDI4MTU1LDI5OTc5LDMwNjUxLDMxODA1''@;'; + put 'put ''LDMxODQ0LDM1NDQ5LDM1NTIyLDIyNTU4LDIyOTc0LDI0MDg2LDI1NDYzLDI5MjY2LDMwMDkwLDMwNTcxLDM1NTQ4LDM2MDI4LDM2NjI2LDI0MzA3LDI2MjI4LDI4MTUyLDMyODkzLDMzNzI5LDM1NTMxLDM4NzM3LDM5ODk0LDY0ZTMsMjEwNTksMjYzNjcsMjgwNTMsMjgzOTksMzIyMjQsMzU1''@;'; + put 'put ''NTgsMzY5MTAsMzY5NTgsMzk2MzYsMjEwMjEsMjExMTksMjE3MzYsMjQ5ODAsMjUyMjAsMjUzMDcsMjY3ODYsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsMjY4OTgsMjY5NzAsMjcxODksMjg4MTgsMjg5NjYsMzA4MTMsMzA5NzcsMzA5OTAsMzExODYsMzEyNDUsMzI5MTgsMzM0MDAsMzM0OTMsMzM2MDksMzQxMjEsMzU5NzAsMzYyMjksMzcyMTgsMzcyNTksMzcy''@;'; + put 'put ''OTQsMjA0MTksMjIyMjUsMjkxNjUsMzA2NzksMzQ1NjAsMzUzMjAsMjM1NDQsMjQ1MzQsMjY0NDksMzcwMzIsMjE0NzQsMjI2MTgsMjM1NDEsMjQ3NDAsMjQ5NjEsMjU2OTYsMzIzMTcsMzI4ODAsMzQwODUsMzc1MDcsMjU3NzQsMjA2NTIsMjM4MjgsMjYzNjgsMjI2ODQsMjUyNzcsMjU1MTIs''@;'; + put 'put ''MjY4OTQsMjdlMywyNzE2NiwyODI2NywzMDM5NCwzMTE3OSwzMzQ2NywzMzgzMywzNTUzNSwzNjI2NCwzNjg2MSwzNzEzOCwzNzE5NSwzNzI3NiwzNzY0OCwzNzY1NiwzNzc4NiwzODYxOSwzOTQ3OCwzOTk0OSwxOTk4NSwzMDA0NCwzMTA2OSwzMTQ4MiwzMTU2OSwzMTY4OSwzMjMwMiwzMzk4''@;'; + put 'put ''OCwzNjQ0MSwzNjQ2OCwzNjYwMCwzNjg4MCwyNjE0OSwyNjk0MywyOTc2MywyMDk4NiwyNjQxNCw0MDY2OCwyMDgwNSwyNDU0NCwyNzc5OCwzNDgwMiwzNDkwOSwzNDkzNSwyNDc1NiwzMzIwNSwzMzc5NSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; + put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; + put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; + put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwzNjEwMSwyMTQ2MiwyMTU2MSwyMjA2OCwyMzA5NCwyMzYwMSwyODgxMCwzMjczNiwzMjg1OCwzMzAzMCwzMzI2''@;'; + put 'put ''MSwzNjI1OSwzNzI1NywzOTUxOSw0MDQzNCwyMDU5NiwyMDE2NCwyMTQwOCwyNDgyNywyODIwNCwyMzY1MiwyMDM2MCwyMDUxNiwyMTk4OCwyMzc2OSwyNDE1OSwyNDY3NywyNjc3MiwyNzgzNSwyODEwMCwyOTExOCwzMDE2NCwzMDE5NiwzMDMwNSwzMTI1OCwzMTMwNSwzMjE5OSwzMjI1MSwz''@;'; + put 'put ''MjYyMiwzMzI2OCwzNDQ3MywzNjYzNiwzODYwMSwzOTM0Nyw0MDc4NiwyMTA2MywyMTE4OSwzOTE0OSwzNTI0MiwxOTk3MSwyNjU3OCwyODQyMiwyMDQwNSwyMzUyMiwyNjUxNywyNzc4NCwyODAyNCwyOTcyMywzMDc1OSwzNzM0MSwzNzc1NiwzNDc1NiwzMTIwNCwzMTI4MSwyNDU1NSwyMDE4''@;'; + put 'put ''MiwyMTY2OCwyMTgyMiwyMjcwMiwyMjk0OSwyNDgxNiwyNTE3MSwyNTMwMiwyNjQyMiwyNjk2NSwzMzMzMywzODQ2NCwzOTM0NSwzOTM4OSwyMDUyNCwyMTMzMSwyMTgyOCwyMjM5Niw2NDAwMSwyNTE3Niw2NDAwMiwyNTgyNiwyNjIxOSwyNjU4OSwyODYwOSwyODY1NSwyOTczMCwyOTc1Miwz''@;'; + put 'put ''NTM1MSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwzNzk0NCwyMTU4''@;'; + put 'put ''NSwyMjAyMiwyMjM3NCwyNDM5MiwyNDk4NiwyNzQ3MCwyODc2MCwyODg0NSwzMjE4NywzNTQ3NywyMjg5MCwzMzA2NywyNTUwNiwzMDQ3MiwzMjgyOSwzNjAxMCwyMjYxMiwyNTY0NSwyNzA2NywyMzQ0NSwyNDA4MSwyODI3MSw2NDAwMywzNDE1MywyMDgxMiwyMTQ4OCwyMjgyNiwyNDYwOCwy''@;'; + put 'put ''NDkwNywyNzUyNiwyNzc2MCwyNzg4OCwzMTUxOCwzMjk3NCwzMzQ5MiwzNjI5NCwzNzA0MCwzOTA4OSw2NDAwNCwyNTc5OSwyODU4MCwyNTc0NSwyNTg2MCwyMDgxNCwyMTUyMCwyMjMwMywzNTM0MiwyNDkyNywyNjc0Miw2NDAwNSwzMDE3MSwzMTU3MCwzMjExMywzNjg5MCwyMjUzNCwyNzA4''@;'; + put 'put ''NCwzMzE1MSwzNTExNCwzNjg2NCwzODk2OSwyMDYwMCwyMjg3MSwyMjk1NiwyNTIzNywzNjg3OSwzOTcyMiwyNDkyNSwyOTMwNSwzODM1OCwyMjM2OSwyMzExMCwyNDA1MiwyNTIyNiwyNTc3MywyNTg1MCwyNjQ4NywyNzg3NCwyNzk2NiwyOTIyOCwyOTc1MCwzMDc3MiwzMjYzMSwzMzQ1Mywz''@;'; + put 'put ''NjMxNSwzODkzNSwyMTAyOCwyMjMzOCwyNjQ5NSwyOTI1NiwyOTkyMywzNjAwOSwzNjc3NCwzNzM5MyxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwzODQ0MiwyMDg0MywyMTQ4NSwyNTQyMCwyMDMyOSwyMTc2NCwyNDcyNiwyNTk0MywyNzgwMywyODAzMSwyOTI2MCwyOTQzNywzMTI1NSwzNTIwNywzNTk5NywyNDQyOSwyODU1OCwyODkyMSwzMzE5MiwyNDg0Niwy''@;'; + put 'put ''MDQxNSwyMDU1OSwyNTE1MywyOTI1NSwzMTY4NywzMjIzMiwzMjc0NSwzNjk0MSwzODgyOSwzOTQ0OSwzNjAyMiwyMjM3OCwyNDE3OSwyNjU0NCwzMzgwNSwzNTQxMywyMTUzNiwyMzMxOCwyNDE2MywyNDI5MCwyNDMzMCwyNTk4NywzMjk1NCwzNDEwOSwzODI4MSwzODQ5MSwyMDI5NiwyMTI1''@;'; + put 'put ''MywyMTI2MSwyMTI2MywyMTYzOCwyMTc1NCwyMjI3NSwyNDA2NywyNDU5OCwyNTI0MywyNTI2NSwyNTQyOSw2NDAwNiwyNzg3MywyODAwNiwzMDEyOSwzMDc3MCwzMjk5MCwzMzA3MSwzMzUwMiwzMzg4OSwzMzk3MCwzNDk1NywzNTA5MCwzNjg3NSwzNzYxMCwzOTE2NSwzOTgyNSwyNDEzMywy''@;'; + put 'put ''NjI5MiwyNjMzMywyODY4OSwyOTE5MCw2NDAwNywyMDQ2OSwyMTExNywyNDQyNiwyNDkxNSwyNjQ1MSwyNzE2MSwyODQxOCwyOTkyMiwzMTA4MCwzNDkyMCwzNTk2MSwzOTExMSwzOTEwOCwzOTQ5MSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwyMTY5NywzMTI2MywyNjk2MywzNTU3NSwzNTkxNCwzOTA4MCwzOTM0MiwyNDQ0NCwyNTI1OSwzMDEzMCwzMDM4Miwz''@;'; + put 'put ''NDk4NywzNjk5MSwzODQ2NiwyMTMwNSwyNDM4MCwyNDUxNywyNzg1MiwyOTY0NCwzMDA1MCwzMDA5MSwzMTU1OCwzMzUzNCwzOTMyNSwyMDA0NywzNjkyNCwxOTk3OSwyMDMwOSwyMTQxNCwyMjc5OSwyNDI2NCwyNjE2MCwyNzgyNywyOTc4MSwzMzY1NSwzNDY2MiwzNjAzMiwzNjk0NCwzODY4''@;'; + put 'put ''NiwzOTk1NywyMjczNywyMzQxNiwzNDM4NCwzNTYwNCw0MDM3MiwyMzUwNiwyNDY4MCwyNDcxNywyNjA5NywyNzczNSwyODQ1MCwyODU3OSwyODY5OCwzMjU5NywzMjc1MiwzODI4OSwzODI5MCwzODQ4MCwzODg2NywyMTEwNiwzNjY3NiwyMDk4OSwyMTU0NywyMTY4OCwyMTg1OSwyMTg5OCwy''@;'; + put 'put ''NzMyMywyODA4NSwzMjIxNiwzMzM4MiwzNzUzMiwzODUxOSw0MDU2OSwyMTUxMiwyMTcwNCwzMDQxOCwzNDUzMiwzODMwOCwzODM1NiwzODQ5MiwyMDEzMCwyMDIzMywyMzAyMiwyMzI3MCwyNDA1NSwyNDY1OCwyNTIzOSwyNjQ3NywyNjY4OSwyNzc4MiwyODIwNywzMjU2OCwzMjkyMywzMzMy''@;'; + put 'put ''MixudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw2NDAwOCw2NDAwOSwz''@;'; + put 'put ''ODkxNywyMDEzMywyMDU2NSwyMTY4MywyMjQxOSwyMjg3NCwyMzQwMSwyMzQ3NSwyNTAzMiwyNjk5OSwyODAyMywyODcwNywzNDgwOSwzNTI5OSwzNTQ0MiwzNTU1OSwzNjk5NCwzOTQwNSwzOTYwOCwyMTE4MiwyNjY4MCwyMDUwMiwyNDE4NCwyNjQ0NywzMzYwNywzNDg5MiwyMDEzOSwyMTUy''@;'; + put 'put ''MSwyMjE5MCwyOTY3MCwzNzE0MSwzODkxMSwzOTE3NywzOTI1NSwzOTMyMSwyMjA5OSwyMjY4NywzNDM5NSwzNTM3NywyNTAxMCwyNzM4MiwyOTU2MywzNjU2MiwyNzQ2MywzODU3MCwzOTUxMSwyMjg2OSwyOTE4NCwzNjIwMywzODc2MSwyMDQzNiwyMzc5NiwyNDM1OCwyNTA4MCwyNjIwMywy''@;'; + put 'put ''Nzg4MywyODg0MywyOTU3MiwyOTYyNSwyOTY5NCwzMDUwNSwzMDU0MSwzMjA2NywzMjA5OCwzMjI5MSwzMzMzNSwzNDg5OCw2NDAxMCwzNjA2NiwzNzQ0OSwzOTAyMywyMzM3NywzMTM0OCwzNDg4MCwzODkxMywyMzI0NCwyMDQ0OCwyMTMzMiwyMjg0NiwyMzgwNSwyNTQwNiwyODAyNSwyOTQz''@;'; + put 'put ''MywzMzAyOSwzMzAzMSwzMzY5OCwzNzU4MywzODk2MCwyMDEzNiwyMDgwNCwyMTAwOSwyMjQxMSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; + put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; + put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; + put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwyNDQxOCwyNzg0MiwyODM2NiwyODY3NywyODc1MiwyODg0NywyOTA3NCwyOTY3MywyOTgwMSwzMzYxMCwzNDcyMiwzNDkxMywzNjg3MiwzNzAyNiwzNzc5NSwzOTMzNiwyMDg0NiwyNDQwNywyNDgwMCwyNDkzNSwyNjI5''@;'; + put 'put ''MSwzNDEzNywzNjQyNiwzNzI5NSwzODc5NSwyMDA0NiwyMDExNCwyMTYyOCwyMjc0MSwyMjc3OCwyMjkwOSwyMzczMywyNDM1OSwyNTE0MiwyNTE2MCwyNjEyMiwyNjIxNSwyNzYyNywyODAwOSwyODExMSwyODI0NiwyODQwOCwyODU2NCwyODY0MCwyODY0OSwyODc2NSwyOTM5MiwyOTczMywy''@;'; + put 'put ''OTc4NiwyOTkyMCwzMDM1NSwzMTA2OCwzMTk0NiwzMjI4NiwzMjk5MywzMzQ0NiwzMzg5OSwzMzk4MywzNDM4MiwzNDM5OSwzNDY3NiwzNTcwMywzNTk0NiwzNzgwNCwzODkxMiwzOTAxMywyNDc4NSwyNTExMCwzNzIzOSwyMzEzMCwyNjEyNywyODE1MSwyODIyMiwyOTc1OSwzOTc0NiwyNDU3''@;'; + put 'put ''MywyNDc5NCwzMTUwMywyMTcwMCwyNDM0NCwyNzc0MiwyNzg1OSwyNzk0NiwyODg4OCwzMjAwNSwzNDQyNSwzNTM0MCw0MDI1MSwyMTI3MCwyMTY0NCwyMzMwMSwyNzE5NCwyODc3OSwzMDA2OSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwzMTExNywzMTE2NiwzMzQ1NywzMzc3NSwzNTQ0MSwzNTY0OSwzNjAwOCwzODc3Miw2NDAxMSwyNTg0NCwyNTg5OSwzMDkw''@;'; + put 'put ''NiwzMDkwNywzMTMzOSwyMDAyNCwyMTkxNCwyMjg2NCwyMzQ2MiwyNDE4NywyNDczOSwyNTU2MywyNzQ4OSwyNjIxMywyNjcwNywyODE4NSwyOTAyOSwyOTg3MiwzMjAwOCwzNjk5NiwzOTUyOSwzOTk3MywyNzk2MywyODM2OSwyOTUwMiwzNTkwNSwzODM0NiwyMDk3NiwyNDE0MCwyNDQ4OCwy''@;'; + put 'put ''NDY1MywyNDgyMiwyNDg4MCwyNDkwOCwyNjE3OSwyNjE4MCwyNzA0NSwyNzg0MSwyODI1NSwyODM2MSwyODUxNCwyOTAwNCwyOTg1MiwzMDM0MywzMTY4MSwzMTc4MywzMzYxOCwzNDY0NywzNjk0NSwzODU0MSw0MDY0MywyMTI5NSwyMjIzOCwyNDMxNSwyNDQ1OCwyNDY3NCwyNDcyNCwyNTA3''@;'; + put 'put ''OSwyNjIxNCwyNjM3MSwyNzI5MiwyODE0MiwyODU5MCwyODc4NCwyOTU0NiwzMjM2MiwzMzIxNCwzMzU4OCwzNDUxNiwzNTQ5NiwzNjAzNiwyMTEyMywyOTU1NCwyMzQ0NiwyNzI0MywzNzg5MiwyMTc0MiwyMjE1MCwyMzM4OSwyNTkyOCwyNTk4OSwyNjMxMywyNjc4MywyODA0NSwyODEwMixu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwyOTI0MywzMjk0OCwzNzIz''@;'; + put 'put ''NywzOTUwMSwyMDM5OSwyMDUwNSwyMTQwMiwyMTUxOCwyMTU2NCwyMTg5NywyMTk1NywyNDEyNywyNDQ2MCwyNjQyOSwyOTAzMCwyOTY2MSwzNjg2OSwyMTIxMSwyMTIzNSwyMjYyOCwyMjczNCwyODkzMiwyOTA3MSwyOTE3OSwzNDIyNCwzNTM0NywyNjI0OCwzNDIxNiwyMTkyNywyNjI0NCwy''@;'; + put 'put ''OTAwMiwzMzg0MSwyMTMyMSwyMTkxMywyNzU4NSwyNDQwOSwyNDUwOSwyNTU4MiwyNjI0OSwyODk5OSwzNTU2OSwzNjYzNyw0MDYzOCwyMDI0MSwyNTY1OCwyODg3NSwzMDA1NCwzNDQwNywyNDY3NiwzNTY2Miw0MDQ0MCwyMDgwNywyMDk4MiwyMTI1NiwyNzk1OCwzMzAxNiw0MDY1NywyNjEz''@;'; + put 'put ''MywyNzQyNywyODgyNCwzMDE2NSwyMTUwNywyMzY3MywzMjAwNywzNTM1MCwyNzQyNCwyNzQ1MywyNzQ2MiwyMTU2MCwyNDY4OCwyNzk2NSwzMjcyNSwzMzI4OCwyMDY5NCwyMDk1OCwyMTkxNiwyMjEyMywyMjIyMSwyMzAyMCwyMzMwNSwyNDA3NiwyNDk4NSwyNDk4NCwyNTEzNywyNjIwNiwy''@;'; + put 'put ''NjM0MiwyOTA4MSwyOTExMywyOTExNCwyOTM1MSwzMTE0MywzMTIzMiwzMjY5MCwzNTQ0MCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsXSxnYjE4MDMwOlsxOTk3MCwxOTk3MiwxOTk3MywxOTk3NCwxOTk4MywxOTk4NiwxOTk5MSwxOTk5OSwyZTQsMjAwMDEsMjAwMDMsMjAwMDYsMjAwMDksMjAwMTQsMjAwMTUsMjAwMTcsMjAwMTksMjAwMjEsMjAwMjMsMjAwMjgsMjAwMzIsMjAwMzMsMjAwMzQsMjAwMzYs''@;'; + put 'put ''MjAwMzgsMjAwNDIsMjAwNDksMjAwNTMsMjAwNTUsMjAwNTgsMjAwNTksMjAwNjYsMjAwNjcsMjAwNjgsMjAwNjksMjAwNzEsMjAwNzIsMjAwNzQsMjAwNzUsMjAwNzYsMjAwNzcsMjAwNzgsMjAwNzksMjAwODIsMjAwODQsMjAwODUsMjAwODYsMjAwODcsMjAwODgsMjAwODksMjAwOTAsMjAw''@;'; + put 'put ''OTEsMjAwOTIsMjAwOTMsMjAwOTUsMjAwOTYsMjAwOTcsMjAwOTgsMjAwOTksMjAxMDAsMjAxMDEsMjAxMDMsMjAxMDYsMjAxMTIsMjAxMTgsMjAxMTksMjAxMjEsMjAxMjQsMjAxMjUsMjAxMjYsMjAxMzEsMjAxMzgsMjAxNDMsMjAxNDQsMjAxNDUsMjAxNDgsMjAxNTAsMjAxNTEsMjAxNTIs''@;'; + put 'put ''MjAxNTMsMjAxNTYsMjAxNTcsMjAxNTgsMjAxNjgsMjAxNzIsMjAxNzUsMjAxNzYsMjAxNzgsMjAxODYsMjAxODcsMjAxODgsMjAxOTIsMjAxOTQsMjAxOTgsMjAxOTksMjAyMDEsMjAyMDUsMjAyMDYsMjAyMDcsMjAyMDksMjAyMTIsMjAyMTYsMjAyMTcsMjAyMTgsMjAyMjAsMjAyMjIsMjAy''@;'; + put 'put ''MjQsMjAyMjYsMjAyMjcsMjAyMjgsMjAyMjksMjAyMzAsMjAyMzEsMjAyMzIsMjAyMzUsMjAyMzYsMjAyNDIsMjAyNDMsMjAyNDQsMjAyNDUsMjAyNDYsMjAyNTIsMjAyNTMsMjAyNTcsMjAyNTksMjAyNjQsMjAyNjUsMjAyNjgsMjAyNjksMjAyNzAsMjAyNzMsMjAyNzUsMjAyNzcsMjAyNzks''@;'; + put 'put ''MjAyODEsMjAyODMsMjAyODYsMjAyODcsMjAyODgsMjAyODksMjAyOTAsMjAyOTIsMjAyOTMsMjAyOTUsMjAyOTYsMjAyOTcsMjAyOTgsMjAyOTksMjAzMDAsMjAzMDYsMjAzMDgsMjAzMTAsMjAzMjEsMjAzMjIsMjAzMjYsMjAzMjgsMjAzMzAsMjAzMzEsMjAzMzMsMjAzMzQsMjAzMzcsMjAz''@;'; + put 'put ''MzgsMjAzNDEsMjAzNDMsMjAzNDQsMjAzNDUsMjAzNDYsMjAzNDksMjAzNTIsMjAzNTMsMjAzNTQsMjAzNTcsMjAzNTgsMjAzNTksMjAzNjIsMjAzNjQsMjAzNjYsMjAzNjgsMjAzNzAsMjAzNzEsMjAzNzMsMjAzNzQsMjAzNzYsMjAzNzcsMjAzNzgsMjAzODAsMjAzODIsMjAzODMsMjAzODUs''@;'; + put 'put ''MjAzODYsMjAzODgsMjAzOTUsMjAzOTcsMjA0MDAsMjA0MDEsMjA0MDIsMjA0MDMsMjA0MDQsMjA0MDYsMjA0MDcsMjA0MDgsMjA0MDksMjA0MTAsMjA0MTEsMjA0MTIsMjA0MTMsMjA0MTQsMjA0MTYsMjA0MTcsMjA0MTgsMjA0MjIsMjA0MjMsMjA0MjQsMjA0MjUsMjA0MjcsMjA0MjgsMjA0''@;'; + put 'put ''MjksMjA0MzQsMjA0MzUsMjA0MzYsMjA0MzcsMjA0MzgsMjA0NDEsMjA0NDMsMjA0NDgsMjA0NTAsMjA0NTIsMjA0NTMsMjA0NTUsMjA0NTksMjA0NjAsMjA0NjQsMjA0NjYsMjA0NjgsMjA0NjksMjA0NzAsMjA0NzEsMjA0NzMsMjA0NzUsMjA0NzYsMjA0NzcsMjA0NzksMjA0ODAsMjA0ODEs''@;'; + put 'put ''MjA0ODIsMjA0ODMsMjA0ODQsMjA0ODUsMjA0ODYsMjA0ODcsMjA0ODgsMjA0ODksMjA0OTAsMjA0OTEsMjA0OTQsMjA0OTYsMjA0OTcsMjA0OTksMjA1MDEsMjA1MDIsMjA1MDMsMjA1MDcsMjA1MDksMjA1MTAsMjA1MTIsMjA1MTQsMjA1MTUsMjA1MTYsMjA1MTksMjA1MjMsMjA1MjcsMjA1''@;'; + put 'put ''MjgsMjA1MjksMjA1MzAsMjA1MzEsMjA1MzIsMjA1MzMsMjA1MzQsMjA1MzUsMjA1MzYsMjA1MzcsMjA1MzksMjA1NDEsMjA1NDMsMjA1NDQsMjA1NDUsMjA1NDYsMjA1NDgsMjA1NDksMjA1NTAsMjA1NTMsMjA1NTQsMjA1NTUsMjA1NTcsMjA1NjAsMjA1NjEsMjA1NjIsMjA1NjMsMjA1NjQs''@;'; + put 'put ''MjA1NjYsMjA1NjcsMjA1NjgsMjA1NjksMjA1NzEsMjA1NzMsMjA1NzQsMjA1NzUsMjA1NzYsMjA1NzcsMjA1NzgsMjA1NzksMjA1ODAsMjA1ODIsMjA1ODMsMjA1ODQsMjA1ODUsMjA1ODYsMjA1ODcsMjA1ODksMjA1OTAsMjA1OTEsMjA1OTIsMjA1OTMsMjA1OTQsMjA1OTUsMjA1OTYsMjA1''@;'; + put 'put ''OTcsMjA2MDAsMjA2MDEsMjA2MDIsMjA2MDQsMjA2MDUsMjA2MDksMjA2MTAsMjA2MTEsMjA2MTIsMjA2MTQsMjA2MTUsMjA2MTcsMjA2MTgsMjA2MTksMjA2MjAsMjA2MjIsMjA2MjMsMjA2MjQsMjA2MjUsMjA2MjYsMjA2MjcsMjA2MjgsMjA2MjksMjA2MzAsMjA2MzEsMjA2MzIsMjA2MzMs''@;'; + put 'put ''MjA2MzQsMjA2MzUsMjA2MzYsMjA2MzcsMjA2MzgsMjA2MzksMjA2NDAsMjA2NDEsMjA2NDIsMjA2NDQsMjA2NDYsMjA2NTAsMjA2NTEsMjA2NTMsMjA2NTQsMjA2NTUsMjA2NTYsMjA2NTcsMjA2NTksMjA2NjAsMjA2NjEsMjA2NjIsMjA2NjMsMjA2NjQsMjA2NjUsMjA2NjgsMjA2NjksMjA2''@;'; + put 'put ''NzAsMjA2NzEsMjA2NzIsMjA2NzMsMjA2NzQsMjA2NzUsMjA2NzYsMjA2NzcsMjA2NzgsMjA2NzksMjA2ODAsMjA2ODEsMjA2ODIsMjA2ODMsMjA2ODQsMjA2ODUsMjA2ODYsMjA2ODgsMjA2ODksMjA2OTAsMjA2OTEsMjA2OTIsMjA2OTMsMjA2OTUsMjA2OTYsMjA2OTcsMjA2OTksMjA3MDAs''@;'; + put 'put ''MjA3MDEsMjA3MDIsMjA3MDMsMjA3MDQsMjA3MDUsMjA3MDYsMjA3MDcsMjA3MDgsMjA3MDksMjA3MTIsMjA3MTMsMjA3MTQsMjA3MTUsMjA3MTksMjA3MjAsMjA3MjEsMjA3MjIsMjA3MjQsMjA3MjYsMjA3MjcsMjA3MjgsMjA3MjksMjA3MzAsMjA3MzIsMjA3MzMsMjA3MzQsMjA3MzUsMjA3''@;'; + put 'put ''MzYsMjA3MzcsMjA3MzgsMjA3MzksMjA3NDAsMjA3NDEsMjA3NDQsMjA3NDUsMjA3NDYsMjA3NDgsMjA3NDksMjA3NTAsMjA3NTEsMjA3NTIsMjA3NTMsMjA3NTUsMjA3NTYsMjA3NTcsMjA3NTgsMjA3NTksMjA3NjAsMjA3NjEsMjA3NjIsMjA3NjMsMjA3NjQsMjA3NjUsMjA3NjYsMjA3Njcs''@;'; + put 'put ''MjA3NjgsMjA3NzAsMjA3NzEsMjA3NzIsMjA3NzMsMjA3NzQsMjA3NzUsMjA3NzYsMjA3NzcsMjA3NzgsMjA3NzksMjA3ODAsMjA3ODEsMjA3ODIsMjA3ODMsMjA3ODQsMjA3ODUsMjA3ODYsMjA3ODcsMjA3ODgsMjA3ODksMjA3OTAsMjA3OTEsMjA3OTIsMjA3OTMsMjA3OTQsMjA3OTUsMjA3''@;'; + put 'put ''OTYsMjA3OTcsMjA3OTgsMjA4MDIsMjA4MDcsMjA4MTAsMjA4MTIsMjA4MTQsMjA4MTUsMjA4MTYsMjA4MTgsMjA4MTksMjA4MjMsMjA4MjQsMjA4MjUsMjA4MjcsMjA4MjksMjA4MzAsMjA4MzEsMjA4MzIsMjA4MzMsMjA4MzUsMjA4MzYsMjA4MzgsMjA4MzksMjA4NDEsMjA4NDIsMjA4NDcs''@;'; + put 'put ''MjA4NTAsMjA4NTgsMjA4NjIsMjA4NjMsMjA4NjcsMjA4NjgsMjA4NzAsMjA4NzEsMjA4NzQsMjA4NzUsMjA4NzgsMjA4NzksMjA4ODAsMjA4ODEsMjA4ODMsMjA4ODQsMjA4ODgsMjA4OTAsMjA4OTMsMjA4OTQsMjA4OTUsMjA4OTcsMjA4OTksMjA5MDIsMjA5MDMsMjA5MDQsMjA5MDUsMjA5''@;'; + put 'put ''MDYsMjA5MDksMjA5MTAsMjA5MTYsMjA5MjAsMjA5MjEsMjA5MjIsMjA5MjYsMjA5MjcsMjA5MjksMjA5MzAsMjA5MzEsMjA5MzMsMjA5MzYsMjA5MzgsMjA5NDEsMjA5NDIsMjA5NDQsMjA5NDYsMjA5NDcsMjA5NDgsMjA5NDksMjA5NTAsMjA5NTEsMjA5NTIsMjA5NTMsMjA5NTQsMjA5NTYs''@;'; + put 'put ''MjA5NTgsMjA5NTksMjA5NjIsMjA5NjMsMjA5NjUsMjA5NjYsMjA5NjcsMjA5NjgsMjA5NjksMjA5NzAsMjA5NzIsMjA5NzQsMjA5NzcsMjA5NzgsMjA5ODAsMjA5ODMsMjA5OTAsMjA5OTYsMjA5OTcsMjEwMDEsMjEwMDMsMjEwMDQsMjEwMDcsMjEwMDgsMjEwMTEsMjEwMTIsMjEwMTMsMjEw''@;'; + put 'put ''MjAsMjEwMjIsMjEwMjMsMjEwMjUsMjEwMjYsMjEwMjcsMjEwMjksMjEwMzAsMjEwMzEsMjEwMzQsMjEwMzYsMjEwMzksMjEwNDEsMjEwNDIsMjEwNDQsMjEwNDUsMjEwNTIsMjEwNTQsMjEwNjAsMjEwNjEsMjEwNjIsMjEwNjMsMjEwNjQsMjEwNjUsMjEwNjcsMjEwNzAsMjEwNzEsMjEwNzQs''@;'; + put 'put ''MjEwNzUsMjEwNzcsMjEwNzksMjEwODAsMjEwODEsMjEwODIsMjEwODMsMjEwODUsMjEwODcsMjEwODgsMjEwOTAsMjEwOTEsMjEwOTIsMjEwOTQsMjEwOTYsMjEwOTksMjExMDAsMjExMDEsMjExMDIsMjExMDQsMjExMDUsMjExMDcsMjExMDgsMjExMDksMjExMTAsMjExMTEsMjExMTIsMjEx''@;'; + put 'put ''MTMsMjExMTQsMjExMTUsMjExMTYsMjExMTgsMjExMjAsMjExMjMsMjExMjQsMjExMjUsMjExMjYsMjExMjcsMjExMjksMjExMzAsMjExMzEsMjExMzIsMjExMzMsMjExMzQsMjExMzUsMjExMzcsMjExMzgsMjExNDAsMjExNDEsMjExNDIsMjExNDMsMjExNDQsMjExNDUsMjExNDYsMjExNDgs''@;'; + put 'put ''MjExNTYsMjExNTcsMjExNTgsMjExNTksMjExNjYsMjExNjcsMjExNjgsMjExNzIsMjExNzMsMjExNzQsMjExNzUsMjExNzYsMjExNzcsMjExNzgsMjExNzksMjExODAsMjExODEsMjExODQsMjExODUsMjExODYsMjExODgsMjExODksMjExOTAsMjExOTIsMjExOTQsMjExOTYsMjExOTcsMjEx''@;'; + put 'put ''OTgsMjExOTksMjEyMDEsMjEyMDMsMjEyMDQsMjEyMDUsMjEyMDcsMjEyMDksMjEyMTAsMjEyMTEsMjEyMTIsMjEyMTMsMjEyMTQsMjEyMTYsMjEyMTcsMjEyMTgsMjEyMTksMjEyMjEsMjEyMjIsMjEyMjMsMjEyMjQsMjEyMjUsMjEyMjYsMjEyMjcsMjEyMjgsMjEyMjksMjEyMzAsMjEyMzEs''@;'; + put 'put ''MjEyMzMsMjEyMzQsMjEyMzUsMjEyMzYsMjEyMzcsMjEyMzgsMjEyMzksMjEyNDAsMjEyNDMsMjEyNDQsMjEyNDUsMjEyNDksMjEyNTAsMjEyNTEsMjEyNTIsMjEyNTUsMjEyNTcsMjEyNTgsMjEyNTksMjEyNjAsMjEyNjIsMjEyNjUsMjEyNjYsMjEyNjcsMjEyNjgsMjEyNzIsMjEyNzUsMjEy''@;'; + put 'put ''NzYsMjEyNzgsMjEyNzksMjEyODIsMjEyODQsMjEyODUsMjEyODcsMjEyODgsMjEyODksMjEyOTEsMjEyOTIsMjEyOTMsMjEyOTUsMjEyOTYsMjEyOTcsMjEyOTgsMjEyOTksMjEzMDAsMjEzMDEsMjEzMDIsMjEzMDMsMjEzMDQsMjEzMDgsMjEzMDksMjEzMTIsMjEzMTQsMjEzMTYsMjEzMTgs''@;'; + put 'put ''MjEzMjMsMjEzMjQsMjEzMjUsMjEzMjgsMjEzMzIsMjEzMzYsMjEzMzcsMjEzMzksMjEzNDEsMjEzNDksMjEzNTIsMjEzNTQsMjEzNTYsMjEzNTcsMjEzNjIsMjEzNjYsMjEzNjksMjEzNzEsMjEzNzIsMjEzNzMsMjEzNzQsMjEzNzYsMjEzNzcsMjEzNzksMjEzODMsMjEzODQsMjEzODYsMjEz''@;'; + put 'put ''OTAsMjEzOTEsMjEzOTIsMjEzOTMsMjEzOTQsMjEzOTUsMjEzOTYsMjEzOTgsMjEzOTksMjE0MDEsMjE0MDMsMjE0MDQsMjE0MDYsMjE0MDgsMjE0MDksMjE0MTIsMjE0MTUsMjE0MTgsMjE0MTksMjE0MjAsMjE0MjEsMjE0MjMsMjE0MjQsMjE0MjUsMjE0MjYsMjE0MjcsMjE0MjgsMjE0Mjks''@;'; + put 'put ''MjE0MzEsMjE0MzIsMjE0MzMsMjE0MzQsMjE0MzYsMjE0MzcsMjE0MzgsMjE0NDAsMjE0NDMsMjE0NDQsMjE0NDUsMjE0NDYsMjE0NDcsMjE0NTQsMjE0NTUsMjE0NTYsMjE0NTgsMjE0NTksMjE0NjEsMjE0NjYsMjE0NjgsMjE0NjksMjE0NzAsMjE0NzMsMjE0NzQsMjE0NzksMjE0OTIsMjE0''@;'; + put 'put ''OTgsMjE1MDIsMjE1MDMsMjE1MDQsMjE1MDYsMjE1MDksMjE1MTEsMjE1MTUsMjE1MjQsMjE1MjgsMjE1MjksMjE1MzAsMjE1MzIsMjE1MzgsMjE1NDAsMjE1NDEsMjE1NDYsMjE1NTIsMjE1NTUsMjE1NTgsMjE1NTksMjE1NjIsMjE1NjUsMjE1NjcsMjE1NjksMjE1NzAsMjE1NzIsMjE1NzMs''@;'; + put 'put ''MjE1NzUsMjE1NzcsMjE1ODAsMjE1ODEsMjE1ODIsMjE1ODMsMjE1ODUsMjE1OTQsMjE1OTcsMjE1OTgsMjE1OTksMjE2MDAsMjE2MDEsMjE2MDMsMjE2MDUsMjE2MDcsMjE2MDksMjE2MTAsMjE2MTEsMjE2MTIsMjE2MTMsMjE2MTQsMjE2MTUsMjE2MTYsMjE2MjAsMjE2MjUsMjE2MjYsMjE2''@;'; + put 'put ''MzAsMjE2MzEsMjE2MzMsMjE2MzUsMjE2MzcsMjE2MzksMjE2NDAsMjE2NDEsMjE2NDIsMjE2NDUsMjE2NDksMjE2NTEsMjE2NTUsMjE2NTYsMjE2NjAsMjE2NjIsMjE2NjMsMjE2NjQsMjE2NjUsMjE2NjYsMjE2NjksMjE2NzgsMjE2ODAsMjE2ODIsMjE2ODUsMjE2ODYsMjE2ODcsMjE2ODks''@;'; + put 'put ''MjE2OTAsMjE2OTIsMjE2OTQsMjE2OTksMjE3MDEsMjE3MDYsMjE3MDcsMjE3MTgsMjE3MjAsMjE3MjMsMjE3MjgsMjE3MjksMjE3MzAsMjE3MzEsMjE3MzIsMjE3MzksMjE3NDAsMjE3NDMsMjE3NDQsMjE3NDUsMjE3NDgsMjE3NDksMjE3NTAsMjE3NTEsMjE3NTIsMjE3NTMsMjE3NTUsMjE3''@;'; + put 'put ''NTgsMjE3NjAsMjE3NjIsMjE3NjMsMjE3NjQsMjE3NjUsMjE3NjgsMjE3NzAsMjE3NzEsMjE3NzIsMjE3NzMsMjE3NzQsMjE3NzgsMjE3NzksMjE3ODEsMjE3ODIsMjE3ODMsMjE3ODQsMjE3ODUsMjE3ODYsMjE3ODgsMjE3ODksMjE3OTAsMjE3OTEsMjE3OTMsMjE3OTcsMjE3OTgsMjE4MDAs''@;'; + put 'put ''MjE4MDEsMjE4MDMsMjE4MDUsMjE4MTAsMjE4MTIsMjE4MTMsMjE4MTQsMjE4MTYsMjE4MTcsMjE4MTgsMjE4MTksMjE4MjEsMjE4MjQsMjE4MjYsMjE4MjksMjE4MzEsMjE4MzIsMjE4MzUsMjE4MzYsMjE4MzcsMjE4MzgsMjE4MzksMjE4NDEsMjE4NDIsMjE4NDMsMjE4NDQsMjE4NDcsMjE4''@;'; + put 'put ''NDgsMjE4NDksMjE4NTAsMjE4NTEsMjE4NTMsMjE4NTQsMjE4NTUsMjE4NTYsMjE4NTgsMjE4NTksMjE4NjQsMjE4NjUsMjE4NjcsMjE4NzEsMjE4NzIsMjE4NzMsMjE4NzQsMjE4NzUsMjE4NzYsMjE4ODEsMjE4ODIsMjE4ODUsMjE4ODcsMjE4OTMsMjE4OTQsMjE5MDAsMjE5MDEsMjE5MDIs''@;'; + put 'put ''MjE5MDQsMjE5MDYsMjE5MDcsMjE5MDksMjE5MTAsMjE5MTEsMjE5MTQsMjE5MTUsMjE5MTgsMjE5MjAsMjE5MjEsMjE5MjIsMjE5MjMsMjE5MjQsMjE5MjUsMjE5MjYsMjE5MjgsMjE5MjksMjE5MzAsMjE5MzEsMjE5MzIsMjE5MzMsMjE5MzQsMjE5MzUsMjE5MzYsMjE5MzgsMjE5NDAsMjE5''@;'; + put 'put ''NDIsMjE5NDQsMjE5NDYsMjE5NDgsMjE5NTEsMjE5NTIsMjE5NTMsMjE5NTQsMjE5NTUsMjE5NTgsMjE5NTksMjE5NjAsMjE5NjIsMjE5NjMsMjE5NjYsMjE5NjcsMjE5NjgsMjE5NzMsMjE5NzUsMjE5NzYsMjE5NzcsMjE5NzgsMjE5NzksMjE5ODIsMjE5ODQsMjE5ODYsMjE5OTEsMjE5OTMs''@;'; + put 'put ''MjE5OTcsMjE5OTgsMjJlMywyMjAwMSwyMjAwNCwyMjAwNiwyMjAwOCwyMjAwOSwyMjAxMCwyMjAxMSwyMjAxMiwyMjAxNSwyMjAxOCwyMjAxOSwyMjAyMCwyMjAyMSwyMjAyMiwyMjAyMywyMjAyNiwyMjAyNywyMjAyOSwyMjAzMiwyMjAzMywyMjAzNCwyMjAzNSwyMjAzNiwyMjAzNywyMjAz''@;'; + put 'put ''OCwyMjAzOSwyMjA0MSwyMjA0MiwyMjA0NCwyMjA0NSwyMjA0OCwyMjA0OSwyMjA1MCwyMjA1MywyMjA1NCwyMjA1NiwyMjA1NywyMjA1OCwyMjA1OSwyMjA2MiwyMjA2MywyMjA2NCwyMjA2NywyMjA2OSwyMjA3MSwyMjA3MiwyMjA3NCwyMjA3NiwyMjA3NywyMjA3OCwyMjA4MCwyMjA4MSwy''@;'; + put 'put ''MjA4MiwyMjA4MywyMjA4NCwyMjA4NSwyMjA4NiwyMjA4NywyMjA4OCwyMjA4OSwyMjA5MCwyMjA5MSwyMjA5NSwyMjA5NiwyMjA5NywyMjA5OCwyMjA5OSwyMjEwMSwyMjEwMiwyMjEwNiwyMjEwNywyMjEwOSwyMjExMCwyMjExMSwyMjExMiwyMjExMywyMjExNSwyMjExNywyMjExOCwyMjEx''@;'; + put 'put ''OSwyMjEyNSwyMjEyNiwyMjEyNywyMjEyOCwyMjEzMCwyMjEzMSwyMjEzMiwyMjEzMywyMjEzNSwyMjEzNiwyMjEzNywyMjEzOCwyMjE0MSwyMjE0MiwyMjE0MywyMjE0NCwyMjE0NSwyMjE0NiwyMjE0NywyMjE0OCwyMjE1MSwyMjE1MiwyMjE1MywyMjE1NCwyMjE1NSwyMjE1NiwyMjE1Nywy''@;'; + put 'put ''MjE2MCwyMjE2MSwyMjE2MiwyMjE2NCwyMjE2NSwyMjE2NiwyMjE2NywyMjE2OCwyMjE2OSwyMjE3MCwyMjE3MSwyMjE3MiwyMjE3MywyMjE3NCwyMjE3NSwyMjE3NiwyMjE3NywyMjE3OCwyMjE4MCwyMjE4MSwyMjE4MiwyMjE4MywyMjE4NCwyMjE4NSwyMjE4NiwyMjE4NywyMjE4OCwyMjE4''@;'; + put 'put ''OSwyMjE5MCwyMjE5MiwyMjE5MywyMjE5NCwyMjE5NSwyMjE5NiwyMjE5NywyMjE5OCwyMjIwMCwyMjIwMSwyMjIwMiwyMjIwMywyMjIwNSwyMjIwNiwyMjIwNywyMjIwOCwyMjIwOSwyMjIxMCwyMjIxMSwyMjIxMiwyMjIxMywyMjIxNCwyMjIxNSwyMjIxNiwyMjIxNywyMjIxOSwyMjIyMCwy''@;'; + put 'put ''MjIyMSwyMjIyMiwyMjIyMywyMjIyNCwyMjIyNSwyMjIyNiwyMjIyNywyMjIyOSwyMjIzMCwyMjIzMiwyMjIzMywyMjIzNiwyMjI0MywyMjI0NSwyMjI0NiwyMjI0NywyMjI0OCwyMjI0OSwyMjI1MCwyMjI1MiwyMjI1NCwyMjI1NSwyMjI1OCwyMjI1OSwyMjI2MiwyMjI2MywyMjI2NCwyMjI2''@;'; + put 'put ''NywyMjI2OCwyMjI3MiwyMjI3MywyMjI3NCwyMjI3NywyMjI3OSwyMjI4MywyMjI4NCwyMjI4NSwyMjI4NiwyMjI4NywyMjI4OCwyMjI4OSwyMjI5MCwyMjI5MSwyMjI5MiwyMjI5MywyMjI5NCwyMjI5NSwyMjI5NiwyMjI5NywyMjI5OCwyMjI5OSwyMjMwMSwyMjMwMiwyMjMwNCwyMjMwNSwy''@;'; + put 'put ''MjMwNiwyMjMwOCwyMjMwOSwyMjMxMCwyMjMxMSwyMjMxNSwyMjMyMSwyMjMyMiwyMjMyNCwyMjMyNSwyMjMyNiwyMjMyNywyMjMyOCwyMjMzMiwyMjMzMywyMjMzNSwyMjMzNywyMjMzOSwyMjM0MCwyMjM0MSwyMjM0MiwyMjM0NCwyMjM0NSwyMjM0NywyMjM1NCwyMjM1NSwyMjM1NiwyMjM1''@;'; + put 'put ''NywyMjM1OCwyMjM2MCwyMjM2MSwyMjM3MCwyMjM3MSwyMjM3MywyMjM3NSwyMjM4MCwyMjM4MiwyMjM4NCwyMjM4NSwyMjM4NiwyMjM4OCwyMjM4OSwyMjM5MiwyMjM5MywyMjM5NCwyMjM5NywyMjM5OCwyMjM5OSwyMjQwMCwyMjQwMSwyMjQwNywyMjQwOCwyMjQwOSwyMjQxMCwyMjQxMywy''@;'; + put 'put ''MjQxNCwyMjQxNSwyMjQxNiwyMjQxNywyMjQyMCwyMjQyMSwyMjQyMiwyMjQyMywyMjQyNCwyMjQyNSwyMjQyNiwyMjQyOCwyMjQyOSwyMjQzMCwyMjQzMSwyMjQzNywyMjQ0MCwyMjQ0MiwyMjQ0NCwyMjQ0NywyMjQ0OCwyMjQ0OSwyMjQ1MSwyMjQ1MywyMjQ1NCwyMjQ1NSwyMjQ1NywyMjQ1''@;'; + put 'put ''OCwyMjQ1OSwyMjQ2MCwyMjQ2MSwyMjQ2MiwyMjQ2MywyMjQ2NCwyMjQ2NSwyMjQ2OCwyMjQ2OSwyMjQ3MCwyMjQ3MSwyMjQ3MiwyMjQ3MywyMjQ3NCwyMjQ3NiwyMjQ3NywyMjQ4MCwyMjQ4MSwyMjQ4MywyMjQ4NiwyMjQ4NywyMjQ5MSwyMjQ5MiwyMjQ5NCwyMjQ5NywyMjQ5OCwyMjQ5OSwy''@;'; + put 'put ''MjUwMSwyMjUwMiwyMjUwMywyMjUwNCwyMjUwNSwyMjUwNiwyMjUwNywyMjUwOCwyMjUxMCwyMjUxMiwyMjUxMywyMjUxNCwyMjUxNSwyMjUxNywyMjUxOCwyMjUxOSwyMjUyMywyMjUyNCwyMjUyNiwyMjUyNywyMjUyOSwyMjUzMSwyMjUzMiwyMjUzMywyMjUzNiwyMjUzNywyMjUzOCwyMjU0''@;'; + put 'put ''MCwyMjU0MiwyMjU0MywyMjU0NCwyMjU0NiwyMjU0NywyMjU0OCwyMjU1MCwyMjU1MSwyMjU1MiwyMjU1NCwyMjU1NSwyMjU1NiwyMjU1NywyMjU1OSwyMjU2MiwyMjU2MywyMjU2NSwyMjU2NiwyMjU2NywyMjU2OCwyMjU2OSwyMjU3MSwyMjU3MiwyMjU3MywyMjU3NCwyMjU3NSwyMjU3Nywy''@;'; + put 'put ''MjU3OCwyMjU3OSwyMjU4MCwyMjU4MiwyMjU4MywyMjU4NCwyMjU4NSwyMjU4NiwyMjU4NywyMjU4OCwyMjU4OSwyMjU5MCwyMjU5MSwyMjU5MiwyMjU5MywyMjU5NCwyMjU5NSwyMjU5NywyMjU5OCwyMjU5OSwyMjYwMCwyMjYwMSwyMjYwMiwyMjYwMywyMjYwNiwyMjYwNywyMjYwOCwyMjYx''@;'; + put 'put ''MCwyMjYxMSwyMjYxMywyMjYxNCwyMjYxNSwyMjYxNywyMjYxOCwyMjYxOSwyMjYyMCwyMjYyMSwyMjYyMywyMjYyNCwyMjYyNSwyMjYyNiwyMjYyNywyMjYyOCwyMjYzMCwyMjYzMSwyMjYzMiwyMjYzMywyMjYzNCwyMjYzNywyMjYzOCwyMjYzOSwyMjY0MCwyMjY0MSwyMjY0MiwyMjY0Mywy''@;'; + put 'put ''MjY0NCwyMjY0NSwyMjY0NiwyMjY0NywyMjY0OCwyMjY0OSwyMjY1MCwyMjY1MSwyMjY1MiwyMjY1MywyMjY1NSwyMjY1OCwyMjY2MCwyMjY2MiwyMjY2MywyMjY2NCwyMjY2NiwyMjY2NywyMjY2OCwyMjY2OSwyMjY3MCwyMjY3MSwyMjY3MiwyMjY3MywyMjY3NiwyMjY3NywyMjY3OCwyMjY3''@;'; + put 'put ''OSwyMjY4MCwyMjY4MywyMjY4NCwyMjY4NSwyMjY4OCwyMjY4OSwyMjY5MCwyMjY5MSwyMjY5MiwyMjY5MywyMjY5NCwyMjY5NSwyMjY5OCwyMjY5OSwyMjcwMCwyMjcwMSwyMjcwMiwyMjcwMywyMjcwNCwyMjcwNSwyMjcwNiwyMjcwNywyMjcwOCwyMjcwOSwyMjcxMCwyMjcxMSwyMjcxMiwy''@;'; + put 'put ''MjcxMywyMjcxNCwyMjcxNSwyMjcxNywyMjcxOCwyMjcxOSwyMjcyMCwyMjcyMiwyMjcyMywyMjcyNCwyMjcyNiwyMjcyNywyMjcyOCwyMjcyOSwyMjczMCwyMjczMSwyMjczMiwyMjczMywyMjczNCwyMjczNSwyMjczNiwyMjczOCwyMjczOSwyMjc0MCwyMjc0MiwyMjc0MywyMjc0NCwyMjc0''@;'; + put 'put ''NSwyMjc0NiwyMjc0NywyMjc0OCwyMjc0OSwyMjc1MCwyMjc1MSwyMjc1MiwyMjc1MywyMjc1NCwyMjc1NSwyMjc1NywyMjc1OCwyMjc1OSwyMjc2MCwyMjc2MSwyMjc2MiwyMjc2NSwyMjc2NywyMjc2OSwyMjc3MCwyMjc3MiwyMjc3MywyMjc3NSwyMjc3NiwyMjc3OCwyMjc3OSwyMjc4MCwy''@;'; + put 'put ''Mjc4MSwyMjc4MiwyMjc4MywyMjc4NCwyMjc4NSwyMjc4NywyMjc4OSwyMjc5MCwyMjc5MiwyMjc5MywyMjc5NCwyMjc5NSwyMjc5NiwyMjc5OCwyMjgwMCwyMjgwMSwyMjgwMiwyMjgwMywyMjgwNywyMjgwOCwyMjgxMSwyMjgxMywyMjgxNCwyMjgxNiwyMjgxNywyMjgxOCwyMjgxOSwyMjgy''@;'; + put 'put ''MiwyMjgyNCwyMjgyOCwyMjgzMiwyMjgzNCwyMjgzNSwyMjgzNywyMjgzOCwyMjg0MywyMjg0NSwyMjg0NiwyMjg0NywyMjg0OCwyMjg1MSwyMjg1MywyMjg1NCwyMjg1OCwyMjg2MCwyMjg2MSwyMjg2NCwyMjg2NiwyMjg2NywyMjg3MywyMjg3NSwyMjg3NiwyMjg3NywyMjg3OCwyMjg3OSwy''@;'; + put 'put ''Mjg4MSwyMjg4MywyMjg4NCwyMjg4NiwyMjg4NywyMjg4OCwyMjg4OSwyMjg5MCwyMjg5MSwyMjg5MiwyMjg5MywyMjg5NCwyMjg5NSwyMjg5NiwyMjg5NywyMjg5OCwyMjkwMSwyMjkwMywyMjkwNiwyMjkwNywyMjkwOCwyMjkxMCwyMjkxMSwyMjkxMiwyMjkxNywyMjkyMSwyMjkyMywyMjky''@;'; + put 'put ''NCwyMjkyNiwyMjkyNywyMjkyOCwyMjkyOSwyMjkzMiwyMjkzMywyMjkzNiwyMjkzOCwyMjkzOSwyMjk0MCwyMjk0MSwyMjk0MywyMjk0NCwyMjk0NSwyMjk0NiwyMjk1MCwyMjk1MSwyMjk1NiwyMjk1NywyMjk2MCwyMjk2MSwyMjk2MywyMjk2NCwyMjk2NSwyMjk2NiwyMjk2NywyMjk2OCwy''@;'; + put 'put ''Mjk3MCwyMjk3MiwyMjk3MywyMjk3NSwyMjk3NiwyMjk3NywyMjk3OCwyMjk3OSwyMjk4MCwyMjk4MSwyMjk4MywyMjk4NCwyMjk4NSwyMjk4OCwyMjk4OSwyMjk5MCwyMjk5MSwyMjk5NywyMjk5OCwyMzAwMSwyMzAwMywyMzAwNiwyMzAwNywyMzAwOCwyMzAwOSwyMzAxMCwyMzAxMiwyMzAx''@;'; + put 'put ''NCwyMzAxNSwyMzAxNywyMzAxOCwyMzAxOSwyMzAyMSwyMzAyMiwyMzAyMywyMzAyNCwyMzAyNSwyMzAyNiwyMzAyNywyMzAyOCwyMzAyOSwyMzAzMCwyMzAzMSwyMzAzMiwyMzAzNCwyMzAzNiwyMzAzNywyMzAzOCwyMzA0MCwyMzA0MiwyMzA1MCwyMzA1MSwyMzA1MywyMzA1NCwyMzA1NSwy''@;'; + put 'put ''MzA1NiwyMzA1OCwyMzA2MCwyMzA2MSwyMzA2MiwyMzA2MywyMzA2NSwyMzA2NiwyMzA2NywyMzA2OSwyMzA3MCwyMzA3MywyMzA3NCwyMzA3NiwyMzA3OCwyMzA3OSwyMzA4MCwyMzA4MiwyMzA4MywyMzA4NCwyMzA4NSwyMzA4NiwyMzA4NywyMzA4OCwyMzA5MSwyMzA5MywyMzA5NSwyMzA5''@;'; + put 'put ''NiwyMzA5NywyMzA5OCwyMzA5OSwyMzEwMSwyMzEwMiwyMzEwMywyMzEwNSwyMzEwNiwyMzEwNywyMzEwOCwyMzEwOSwyMzExMSwyMzExMiwyMzExNSwyMzExNiwyMzExNywyMzExOCwyMzExOSwyMzEyMCwyMzEyMSwyMzEyMiwyMzEyMywyMzEyNCwyMzEyNiwyMzEyNywyMzEyOCwyMzEyOSwy''@;'; + put 'put ''MzEzMSwyMzEzMiwyMzEzMywyMzEzNCwyMzEzNSwyMzEzNiwyMzEzNywyMzEzOSwyMzE0MCwyMzE0MSwyMzE0MiwyMzE0NCwyMzE0NSwyMzE0NywyMzE0OCwyMzE0OSwyMzE1MCwyMzE1MSwyMzE1MiwyMzE1MywyMzE1NCwyMzE1NSwyMzE2MCwyMzE2MSwyMzE2MywyMzE2NCwyMzE2NSwyMzE2''@;'; + put 'put ''NiwyMzE2OCwyMzE2OSwyMzE3MCwyMzE3MSwyMzE3MiwyMzE3MywyMzE3NCwyMzE3NSwyMzE3NiwyMzE3NywyMzE3OCwyMzE3OSwyMzE4MCwyMzE4MSwyMzE4MiwyMzE4MywyMzE4NCwyMzE4NSwyMzE4NywyMzE4OCwyMzE4OSwyMzE5MCwyMzE5MSwyMzE5MiwyMzE5MywyMzE5NiwyMzE5Nywy''@;'; + put 'put ''MzE5OCwyMzE5OSwyMzIwMCwyMzIwMSwyMzIwMiwyMzIwMywyMzIwNCwyMzIwNSwyMzIwNiwyMzIwNywyMzIwOCwyMzIwOSwyMzIxMSwyMzIxMiwyMzIxMywyMzIxNCwyMzIxNSwyMzIxNiwyMzIxNywyMzIyMCwyMzIyMiwyMzIyMywyMzIyNSwyMzIyNiwyMzIyNywyMzIyOCwyMzIyOSwyMzIz''@;'; + put 'put ''MSwyMzIzMiwyMzIzNSwyMzIzNiwyMzIzNywyMzIzOCwyMzIzOSwyMzI0MCwyMzI0MiwyMzI0MywyMzI0NSwyMzI0NiwyMzI0NywyMzI0OCwyMzI0OSwyMzI1MSwyMzI1MywyMzI1NSwyMzI1NywyMzI1OCwyMzI1OSwyMzI2MSwyMzI2MiwyMzI2MywyMzI2NiwyMzI2OCwyMzI2OSwyMzI3MSwy''@;'; + put 'put ''MzI3MiwyMzI3NCwyMzI3NiwyMzI3NywyMzI3OCwyMzI3OSwyMzI4MCwyMzI4MiwyMzI4MywyMzI4NCwyMzI4NSwyMzI4NiwyMzI4NywyMzI4OCwyMzI4OSwyMzI5MCwyMzI5MSwyMzI5MiwyMzI5MywyMzI5NCwyMzI5NSwyMzI5NiwyMzI5NywyMzI5OCwyMzI5OSwyMzMwMCwyMzMwMSwyMzMw''@;'; + put 'put ''MiwyMzMwMywyMzMwNCwyMzMwNiwyMzMwNywyMzMwOCwyMzMwOSwyMzMxMCwyMzMxMSwyMzMxMiwyMzMxMywyMzMxNCwyMzMxNSwyMzMxNiwyMzMxNywyMzMyMCwyMzMyMSwyMzMyMiwyMzMyMywyMzMyNCwyMzMyNSwyMzMyNiwyMzMyNywyMzMyOCwyMzMyOSwyMzMzMCwyMzMzMSwyMzMzMiwy''@;'; + put 'put ''MzMzMywyMzMzNCwyMzMzNSwyMzMzNiwyMzMzNywyMzMzOCwyMzMzOSwyMzM0MCwyMzM0MSwyMzM0MiwyMzM0MywyMzM0NCwyMzM0NSwyMzM0NywyMzM0OSwyMzM1MCwyMzM1MiwyMzM1MywyMzM1NCwyMzM1NSwyMzM1NiwyMzM1NywyMzM1OCwyMzM1OSwyMzM2MSwyMzM2MiwyMzM2MywyMzM2''@;'; + put 'put ''NCwyMzM2NSwyMzM2NiwyMzM2NywyMzM2OCwyMzM2OSwyMzM3MCwyMzM3MSwyMzM3MiwyMzM3MywyMzM3NCwyMzM3NSwyMzM3OCwyMzM4MiwyMzM5MCwyMzM5MiwyMzM5MywyMzM5OSwyMzQwMCwyMzQwMywyMzQwNSwyMzQwNiwyMzQwNywyMzQxMCwyMzQxMiwyMzQxNCwyMzQxNSwyMzQxNiwy''@;'; + put 'put ''MzQxNywyMzQxOSwyMzQyMCwyMzQyMiwyMzQyMywyMzQyNiwyMzQzMCwyMzQzNCwyMzQzNywyMzQzOCwyMzQ0MCwyMzQ0MSwyMzQ0MiwyMzQ0NCwyMzQ0NiwyMzQ1NSwyMzQ2MywyMzQ2NCwyMzQ2NSwyMzQ2OCwyMzQ2OSwyMzQ3MCwyMzQ3MSwyMzQ3MywyMzQ3NCwyMzQ3OSwyMzQ4MiwyMzQ4''@;'; + put 'put ''MywyMzQ4NCwyMzQ4OCwyMzQ4OSwyMzQ5MSwyMzQ5NiwyMzQ5NywyMzQ5OCwyMzQ5OSwyMzUwMSwyMzUwMiwyMzUwMywyMzUwNSwyMzUwOCwyMzUwOSwyMzUxMCwyMzUxMSwyMzUxMiwyMzUxMywyMzUxNCwyMzUxNSwyMzUxNiwyMzUyMCwyMzUyMiwyMzUyMywyMzUyNiwyMzUyNywyMzUyOSwy''@;'; + put 'put ''MzUzMCwyMzUzMSwyMzUzMiwyMzUzMywyMzUzNSwyMzUzNywyMzUzOCwyMzUzOSwyMzU0MCwyMzU0MSwyMzU0MiwyMzU0MywyMzU0OSwyMzU1MCwyMzU1MiwyMzU1NCwyMzU1NSwyMzU1NywyMzU1OSwyMzU2MCwyMzU2MywyMzU2NCwyMzU2NSwyMzU2NiwyMzU2OCwyMzU3MCwyMzU3MSwyMzU3''@;'; + put 'put ''NSwyMzU3NywyMzU3OSwyMzU4MiwyMzU4MywyMzU4NCwyMzU4NSwyMzU4NywyMzU5MCwyMzU5MiwyMzU5MywyMzU5NCwyMzU5NSwyMzU5NywyMzU5OCwyMzU5OSwyMzYwMCwyMzYwMiwyMzYwMywyMzYwNSwyMzYwNiwyMzYwNywyMzYxOSwyMzYyMCwyMzYyMiwyMzYyMywyMzYyOCwyMzYyOSwy''@;'; + put 'put ''MzYzNCwyMzYzNSwyMzYzNiwyMzYzOCwyMzYzOSwyMzY0MCwyMzY0MiwyMzY0MywyMzY0NCwyMzY0NSwyMzY0NywyMzY1MCwyMzY1MiwyMzY1NSwyMzY1NiwyMzY1NywyMzY1OCwyMzY1OSwyMzY2MCwyMzY2MSwyMzY2NCwyMzY2NiwyMzY2NywyMzY2OCwyMzY2OSwyMzY3MCwyMzY3MSwyMzY3''@;'; + put 'put ''MiwyMzY3NSwyMzY3NiwyMzY3NywyMzY3OCwyMzY4MCwyMzY4MywyMzY4NCwyMzY4NSwyMzY4NiwyMzY4NywyMzY4OSwyMzY5MCwyMzY5MSwyMzY5NCwyMzY5NSwyMzY5OCwyMzY5OSwyMzcwMSwyMzcwOSwyMzcxMCwyMzcxMSwyMzcxMiwyMzcxMywyMzcxNiwyMzcxNywyMzcxOCwyMzcxOSwy''@;'; + put 'put ''MzcyMCwyMzcyMiwyMzcyNiwyMzcyNywyMzcyOCwyMzczMCwyMzczMiwyMzczNCwyMzczNywyMzczOCwyMzczOSwyMzc0MCwyMzc0MiwyMzc0NCwyMzc0NiwyMzc0NywyMzc0OSwyMzc1MCwyMzc1MSwyMzc1MiwyMzc1MywyMzc1NCwyMzc1NiwyMzc1NywyMzc1OCwyMzc1OSwyMzc2MCwyMzc2''@;'; + put 'put ''MSwyMzc2MywyMzc2NCwyMzc2NSwyMzc2NiwyMzc2NywyMzc2OCwyMzc3MCwyMzc3MSwyMzc3MiwyMzc3MywyMzc3NCwyMzc3NSwyMzc3NiwyMzc3OCwyMzc3OSwyMzc4MywyMzc4NSwyMzc4NywyMzc4OCwyMzc5MCwyMzc5MSwyMzc5MywyMzc5NCwyMzc5NSwyMzc5NiwyMzc5NywyMzc5OCwy''@;'; + put 'put ''Mzc5OSwyMzgwMCwyMzgwMSwyMzgwMiwyMzgwNCwyMzgwNSwyMzgwNiwyMzgwNywyMzgwOCwyMzgwOSwyMzgxMiwyMzgxMywyMzgxNiwyMzgxNywyMzgxOCwyMzgxOSwyMzgyMCwyMzgyMSwyMzgyMywyMzgyNCwyMzgyNSwyMzgyNiwyMzgyNywyMzgyOSwyMzgzMSwyMzgzMiwyMzgzMywyMzgz''@;'; + put 'put ''NCwyMzgzNiwyMzgzNywyMzgzOSwyMzg0MCwyMzg0MSwyMzg0MiwyMzg0MywyMzg0NSwyMzg0OCwyMzg1MCwyMzg1MSwyMzg1MiwyMzg1NSwyMzg1NiwyMzg1NywyMzg1OCwyMzg1OSwyMzg2MSwyMzg2MiwyMzg2MywyMzg2NCwyMzg2NSwyMzg2NiwyMzg2NywyMzg2OCwyMzg3MSwyMzg3Miwy''@;'; + put 'put ''Mzg3MywyMzg3NCwyMzg3NSwyMzg3NiwyMzg3NywyMzg3OCwyMzg4MCwyMzg4MSwyMzg4NSwyMzg4NiwyMzg4NywyMzg4OCwyMzg4OSwyMzg5MCwyMzg5MSwyMzg5MiwyMzg5MywyMzg5NCwyMzg5NSwyMzg5NywyMzg5OCwyMzkwMCwyMzkwMiwyMzkwMywyMzkwNCwyMzkwNSwyMzkwNiwyMzkw''@;'; + put 'put ''NywyMzkwOCwyMzkwOSwyMzkxMCwyMzkxMSwyMzkxMiwyMzkxNCwyMzkxNywyMzkxOCwyMzkyMCwyMzkyMSwyMzkyMiwyMzkyMywyMzkyNSwyMzkyNiwyMzkyNywyMzkyOCwyMzkyOSwyMzkzMCwyMzkzMSwyMzkzMiwyMzkzMywyMzkzNCwyMzkzNSwyMzkzNiwyMzkzNywyMzkzOSwyMzk0MCwy''@;'; + put 'put ''Mzk0MSwyMzk0MiwyMzk0MywyMzk0NCwyMzk0NSwyMzk0NiwyMzk0NywyMzk0OCwyMzk0OSwyMzk1MCwyMzk1MSwyMzk1MiwyMzk1MywyMzk1NCwyMzk1NSwyMzk1NiwyMzk1NywyMzk1OCwyMzk1OSwyMzk2MCwyMzk2MiwyMzk2MywyMzk2NCwyMzk2NiwyMzk2NywyMzk2OCwyMzk2OSwyMzk3''@;'; + put 'put ''MCwyMzk3MSwyMzk3MiwyMzk3MywyMzk3NCwyMzk3NSwyMzk3NiwyMzk3NywyMzk3OCwyMzk3OSwyMzk4MCwyMzk4MSwyMzk4MiwyMzk4MywyMzk4NCwyMzk4NSwyMzk4NiwyMzk4NywyMzk4OCwyMzk4OSwyMzk5MCwyMzk5MiwyMzk5MywyMzk5NCwyMzk5NSwyMzk5NiwyMzk5NywyMzk5OCwy''@;'; + put 'put ''Mzk5OSwyNGUzLDI0MDAxLDI0MDAyLDI0MDAzLDI0MDA0LDI0MDA2LDI0MDA3LDI0MDA4LDI0MDA5LDI0MDEwLDI0MDExLDI0MDEyLDI0MDE0LDI0MDE1LDI0MDE2LDI0MDE3LDI0MDE4LDI0MDE5LDI0MDIwLDI0MDIxLDI0MDIyLDI0MDIzLDI0MDI0LDI0MDI1LDI0MDI2LDI0MDI4LDI0MDMx''@;'; + put 'put ''LDI0MDMyLDI0MDM1LDI0MDM2LDI0MDQyLDI0MDQ0LDI0MDQ1LDI0MDQ4LDI0MDUzLDI0MDU0LDI0MDU2LDI0MDU3LDI0MDU4LDI0MDU5LDI0MDYwLDI0MDYzLDI0MDY0LDI0MDY4LDI0MDcxLDI0MDczLDI0MDc0LDI0MDc1LDI0MDc3LDI0MDc4LDI0MDgyLDI0MDgzLDI0MDg3LDI0MDk0LDI0''@;'; + put 'put ''MDk1LDI0MDk2LDI0MDk3LDI0MDk4LDI0MDk5LDI0MTAwLDI0MTAxLDI0MTA0LDI0MTA1LDI0MTA2LDI0MTA3LDI0MTA4LDI0MTExLDI0MTEyLDI0MTE0LDI0MTE1LDI0MTE2LDI0MTE3LDI0MTE4LDI0MTIxLDI0MTIyLDI0MTI2LDI0MTI3LDI0MTI4LDI0MTI5LDI0MTMxLDI0MTM0LDI0MTM1''@;'; + put 'put ''LDI0MTM2LDI0MTM3LDI0MTM4LDI0MTM5LDI0MTQxLDI0MTQyLDI0MTQzLDI0MTQ0LDI0MTQ1LDI0MTQ2LDI0MTQ3LDI0MTUwLDI0MTUxLDI0MTUyLDI0MTUzLDI0MTU0LDI0MTU2LDI0MTU3LDI0MTU5LDI0MTYwLDI0MTYzLDI0MTY0LDI0MTY1LDI0MTY2LDI0MTY3LDI0MTY4LDI0MTY5LDI0''@;'; + put 'put ''MTcwLDI0MTcxLDI0MTcyLDI0MTczLDI0MTc0LDI0MTc1LDI0MTc2LDI0MTc3LDI0MTgxLDI0MTgzLDI0MTg1LDI0MTkwLDI0MTkzLDI0MTk0LDI0MTk1LDI0MTk3LDI0MjAwLDI0MjAxLDI0MjA0LDI0MjA1LDI0MjA2LDI0MjEwLDI0MjE2LDI0MjE5LDI0MjIxLDI0MjI1LDI0MjI2LDI0MjI3''@;'; + put 'put ''LDI0MjI4LDI0MjMyLDI0MjMzLDI0MjM0LDI0MjM1LDI0MjM2LDI0MjM4LDI0MjM5LDI0MjQwLDI0MjQxLDI0MjQyLDI0MjQ0LDI0MjUwLDI0MjUxLDI0MjUyLDI0MjUzLDI0MjU1LDI0MjU2LDI0MjU3LDI0MjU4LDI0MjU5LDI0MjYwLDI0MjYxLDI0MjYyLDI0MjYzLDI0MjY0LDI0MjY3LDI0''@;'; + put 'put ''MjY4LDI0MjY5LDI0MjcwLDI0MjcxLDI0MjcyLDI0Mjc2LDI0Mjc3LDI0Mjc5LDI0MjgwLDI0MjgxLDI0MjgyLDI0Mjg0LDI0Mjg1LDI0Mjg2LDI0Mjg3LDI0Mjg4LDI0Mjg5LDI0MjkwLDI0MjkxLDI0MjkyLDI0MjkzLDI0Mjk0LDI0Mjk1LDI0Mjk3LDI0Mjk5LDI0MzAwLDI0MzAxLDI0MzAy''@;'; + put 'put ''LDI0MzAzLDI0MzA0LDI0MzA1LDI0MzA2LDI0MzA3LDI0MzA5LDI0MzEyLDI0MzEzLDI0MzE1LDI0MzE2LDI0MzE3LDI0MzI1LDI0MzI2LDI0MzI3LDI0MzI5LDI0MzMyLDI0MzMzLDI0MzM0LDI0MzM2LDI0MzM4LDI0MzQwLDI0MzQyLDI0MzQ1LDI0MzQ2LDI0MzQ4LDI0MzQ5LDI0MzUwLDI0''@;'; + put 'put ''MzUzLDI0MzU0LDI0MzU1LDI0MzU2LDI0MzYwLDI0MzYzLDI0MzY0LDI0MzY2LDI0MzY4LDI0MzcwLDI0MzcxLDI0MzcyLDI0MzczLDI0Mzc0LDI0Mzc1LDI0Mzc2LDI0Mzc5LDI0MzgxLDI0MzgyLDI0MzgzLDI0Mzg1LDI0Mzg2LDI0Mzg3LDI0Mzg4LDI0Mzg5LDI0MzkwLDI0MzkxLDI0Mzky''@;'; + put 'put ''LDI0MzkzLDI0Mzk0LDI0Mzk1LDI0Mzk2LDI0Mzk3LDI0Mzk4LDI0Mzk5LDI0NDAxLDI0NDA0LDI0NDA5LDI0NDEwLDI0NDExLDI0NDEyLDI0NDE0LDI0NDE1LDI0NDE2LDI0NDE5LDI0NDIxLDI0NDIzLDI0NDI0LDI0NDI3LDI0NDMwLDI0NDMxLDI0NDM0LDI0NDM2LDI0NDM3LDI0NDM4LDI0''@;'; + put 'put ''NDQwLDI0NDQyLDI0NDQ1LDI0NDQ2LDI0NDQ3LDI0NDUxLDI0NDU0LDI0NDYxLDI0NDYyLDI0NDYzLDI0NDY1LDI0NDY3LDI0NDY4LDI0NDcwLDI0NDc0LDI0NDc1LDI0NDc3LDI0NDc4LDI0NDc5LDI0NDgwLDI0NDgyLDI0NDgzLDI0NDg0LDI0NDg1LDI0NDg2LDI0NDg3LDI0NDg5LDI0NDkx''@;'; + put 'put ''LDI0NDkyLDI0NDk1LDI0NDk2LDI0NDk3LDI0NDk4LDI0NDk5LDI0NTAwLDI0NTAyLDI0NTA0LDI0NTA1LDI0NTA2LDI0NTA3LDI0NTEwLDI0NTExLDI0NTEyLDI0NTEzLDI0NTE0LDI0NTE5LDI0NTIwLDI0NTIyLDI0NTIzLDI0NTI2LDI0NTMxLDI0NTMyLDI0NTMzLDI0NTM4LDI0NTM5LDI0''@;'; + put 'put ''NTQwLDI0NTQyLDI0NTQzLDI0NTQ2LDI0NTQ3LDI0NTQ5LDI0NTUwLDI0NTUyLDI0NTUzLDI0NTU2LDI0NTU5LDI0NTYwLDI0NTYyLDI0NTYzLDI0NTY0LDI0NTY2LDI0NTY3LDI0NTY5LDI0NTcwLDI0NTcyLDI0NTgzLDI0NTg0LDI0NTg1LDI0NTg3LDI0NTg4LDI0NTkyLDI0NTkzLDI0NTk1''@;'; + put 'put ''LDI0NTk5LDI0NjAwLDI0NjAyLDI0NjA2LDI0NjA3LDI0NjEwLDI0NjExLDI0NjEyLDI0NjIwLDI0NjIxLDI0NjIyLDI0NjI0LDI0NjI1LDI0NjI2LDI0NjI3LDI0NjI4LDI0NjMwLDI0NjMxLDI0NjMyLDI0NjMzLDI0NjM0LDI0NjM3LDI0NjM4LDI0NjQwLDI0NjQ0LDI0NjQ1LDI0NjQ2LDI0''@;'; + put 'put ''NjQ3LDI0NjQ4LDI0NjQ5LDI0NjUwLDI0NjUyLDI0NjU0LDI0NjU1LDI0NjU3LDI0NjU5LDI0NjYwLDI0NjYyLDI0NjYzLDI0NjY0LDI0NjY3LDI0NjY4LDI0NjcwLDI0NjcxLDI0NjcyLDI0NjczLDI0Njc3LDI0Njc4LDI0Njg2LDI0Njg5LDI0NjkwLDI0NjkyLDI0NjkzLDI0Njk1LDI0NzAy''@;'; + put 'put ''LDI0NzA0LDI0NzA1LDI0NzA2LDI0NzA5LDI0NzEwLDI0NzExLDI0NzEyLDI0NzE0LDI0NzE1LDI0NzE4LDI0NzE5LDI0NzIwLDI0NzIxLDI0NzIzLDI0NzI1LDI0NzI3LDI0NzI4LDI0NzI5LDI0NzMyLDI0NzM0LDI0NzM3LDI0NzM4LDI0NzQwLDI0NzQxLDI0NzQzLDI0NzQ1LDI0NzQ2LDI0''@;'; + put 'put ''NzUwLDI0NzUyLDI0NzU1LDI0NzU3LDI0NzU4LDI0NzU5LDI0NzYxLDI0NzYyLDI0NzY1LDI0NzY2LDI0NzY3LDI0NzY4LDI0NzY5LDI0NzcwLDI0NzcxLDI0NzcyLDI0Nzc1LDI0Nzc2LDI0Nzc3LDI0NzgwLDI0NzgxLDI0NzgyLDI0NzgzLDI0Nzg0LDI0Nzg2LDI0Nzg3LDI0Nzg4LDI0Nzkw''@;'; + put 'put ''LDI0NzkxLDI0NzkzLDI0Nzk1LDI0Nzk4LDI0ODAxLDI0ODAyLDI0ODAzLDI0ODA0LDI0ODA1LDI0ODEwLDI0ODE3LDI0ODE4LDI0ODIxLDI0ODIzLDI0ODI0LDI0ODI3LDI0ODI4LDI0ODI5LDI0ODMwLDI0ODMxLDI0ODM0LDI0ODM1LDI0ODM2LDI0ODM3LDI0ODM5LDI0ODQyLDI0ODQzLDI0''@;'; + put 'put ''ODQ0LDI0ODQ4LDI0ODQ5LDI0ODUwLDI0ODUxLDI0ODUyLDI0ODU0LDI0ODU1LDI0ODU2LDI0ODU3LDI0ODU5LDI0ODYwLDI0ODYxLDI0ODYyLDI0ODY1LDI0ODY2LDI0ODY5LDI0ODcyLDI0ODczLDI0ODc0LDI0ODc2LDI0ODc3LDI0ODc4LDI0ODc5LDI0ODgwLDI0ODgxLDI0ODgyLDI0ODgz''@;'; + put 'put ''LDI0ODg0LDI0ODg1LDI0ODg2LDI0ODg3LDI0ODg4LDI0ODg5LDI0ODkwLDI0ODkxLDI0ODkyLDI0ODkzLDI0ODk0LDI0ODk2LDI0ODk3LDI0ODk4LDI0ODk5LDI0OTAwLDI0OTAxLDI0OTAyLDI0OTAzLDI0OTA1LDI0OTA3LDI0OTA5LDI0OTExLDI0OTEyLDI0OTE0LDI0OTE1LDI0OTE2LDI0''@;'; + put 'put ''OTE4LDI0OTE5LDI0OTIwLDI0OTIxLDI0OTIyLDI0OTIzLDI0OTI0LDI0OTI2LDI0OTI3LDI0OTI4LDI0OTI5LDI0OTMxLDI0OTMyLDI0OTMzLDI0OTM0LDI0OTM3LDI0OTM4LDI0OTM5LDI0OTQwLDI0OTQxLDI0OTQyLDI0OTQzLDI0OTQ1LDI0OTQ2LDI0OTQ3LDI0OTQ4LDI0OTUwLDI0OTUy''@;'; + put 'put ''LDI0OTUzLDI0OTU0LDI0OTU1LDI0OTU2LDI0OTU3LDI0OTU4LDI0OTU5LDI0OTYwLDI0OTYxLDI0OTYyLDI0OTYzLDI0OTY0LDI0OTY1LDI0OTY2LDI0OTY3LDI0OTY4LDI0OTY5LDI0OTcwLDI0OTcyLDI0OTczLDI0OTc1LDI0OTc2LDI0OTc3LDI0OTc4LDI0OTc5LDI0OTgxLDI0OTgyLDI0''@;'; + put 'put ''OTgzLDI0OTg0LDI0OTg1LDI0OTg2LDI0OTg3LDI0OTg4LDI0OTkwLDI0OTkxLDI0OTkyLDI0OTkzLDI0OTk0LDI0OTk1LDI0OTk2LDI0OTk3LDI0OTk4LDI1MDAyLDI1MDAzLDI1MDA1LDI1MDA2LDI1MDA3LDI1MDA4LDI1MDA5LDI1MDEwLDI1MDExLDI1MDEyLDI1MDEzLDI1MDE0LDI1MDE2''@;'; + put 'put ''LDI1MDE3LDI1MDE4LDI1MDE5LDI1MDIwLDI1MDIxLDI1MDIzLDI1MDI0LDI1MDI1LDI1MDI3LDI1MDI4LDI1MDI5LDI1MDMwLDI1MDMxLDI1MDMzLDI1MDM2LDI1MDM3LDI1MDM4LDI1MDM5LDI1MDQwLDI1MDQzLDI1MDQ1LDI1MDQ2LDI1MDQ3LDI1MDQ4LDI1MDQ5LDI1MDUwLDI1MDUxLDI1''@;'; + put 'put ''MDUyLDI1MDUzLDI1MDU0LDI1MDU1LDI1MDU2LDI1MDU3LDI1MDU4LDI1MDU5LDI1MDYwLDI1MDYxLDI1MDYzLDI1MDY0LDI1MDY1LDI1MDY2LDI1MDY3LDI1MDY4LDI1MDY5LDI1MDcwLDI1MDcxLDI1MDcyLDI1MDczLDI1MDc0LDI1MDc1LDI1MDc2LDI1MDc4LDI1MDc5LDI1MDgwLDI1MDgx''@;'; + put 'put ''LDI1MDgyLDI1MDgzLDI1MDg0LDI1MDg1LDI1MDg2LDI1MDg4LDI1MDg5LDI1MDkwLDI1MDkxLDI1MDkyLDI1MDkzLDI1MDk1LDI1MDk3LDI1MTA3LDI1MTA4LDI1MTEzLDI1MTE2LDI1MTE3LDI1MTE4LDI1MTIwLDI1MTIzLDI1MTI2LDI1MTI3LDI1MTI4LDI1MTI5LDI1MTMxLDI1MTMzLDI1''@;'; + put 'put ''MTM1LDI1MTM2LDI1MTM3LDI1MTM4LDI1MTQxLDI1MTQyLDI1MTQ0LDI1MTQ1LDI1MTQ2LDI1MTQ3LDI1MTQ4LDI1MTU0LDI1MTU2LDI1MTU3LDI1MTU4LDI1MTYyLDI1MTY3LDI1MTY4LDI1MTczLDI1MTc0LDI1MTc1LDI1MTc3LDI1MTc4LDI1MTgwLDI1MTgxLDI1MTgyLDI1MTgzLDI1MTg0''@;'; + put 'put ''LDI1MTg1LDI1MTg2LDI1MTg4LDI1MTg5LDI1MTkyLDI1MjAxLDI1MjAyLDI1MjA0LDI1MjA1LDI1MjA3LDI1MjA4LDI1MjEwLDI1MjExLDI1MjEzLDI1MjE3LDI1MjE4LDI1MjE5LDI1MjIxLDI1MjIyLDI1MjIzLDI1MjI0LDI1MjI3LDI1MjI4LDI1MjI5LDI1MjMwLDI1MjMxLDI1MjMyLDI1''@;'; + put 'put ''MjM2LDI1MjQxLDI1MjQ0LDI1MjQ1LDI1MjQ2LDI1MjUxLDI1MjU0LDI1MjU1LDI1MjU3LDI1MjU4LDI1MjYxLDI1MjYyLDI1MjYzLDI1MjY0LDI1MjY2LDI1MjY3LDI1MjY4LDI1MjcwLDI1MjcxLDI1MjcyLDI1Mjc0LDI1Mjc4LDI1MjgwLDI1MjgxLDI1MjgzLDI1MjkxLDI1Mjk1LDI1Mjk3''@;'; + put 'put ''LDI1MzAxLDI1MzA5LDI1MzEwLDI1MzEyLDI1MzEzLDI1MzE2LDI1MzIyLDI1MzIzLDI1MzI4LDI1MzMwLDI1MzMzLDI1MzM2LDI1MzM3LDI1MzM4LDI1MzM5LDI1MzQ0LDI1MzQ3LDI1MzQ4LDI1MzQ5LDI1MzUwLDI1MzU0LDI1MzU1LDI1MzU2LDI1MzU3LDI1MzU5LDI1MzYwLDI1MzYyLDI1''@;'; + put 'put ''MzYzLDI1MzY0LDI1MzY1LDI1MzY3LDI1MzY4LDI1MzY5LDI1MzcyLDI1MzgyLDI1MzgzLDI1Mzg1LDI1Mzg4LDI1Mzg5LDI1MzkwLDI1MzkyLDI1MzkzLDI1Mzk1LDI1Mzk2LDI1Mzk3LDI1Mzk4LDI1Mzk5LDI1NDAwLDI1NDAzLDI1NDA0LDI1NDA2LDI1NDA3LDI1NDA4LDI1NDA5LDI1NDEy''@;'; + put 'put ''LDI1NDE1LDI1NDE2LDI1NDE4LDI1NDI1LDI1NDI2LDI1NDI3LDI1NDI4LDI1NDMwLDI1NDMxLDI1NDMyLDI1NDMzLDI1NDM0LDI1NDM1LDI1NDM2LDI1NDM3LDI1NDQwLDI1NDQ0LDI1NDQ1LDI1NDQ2LDI1NDQ4LDI1NDUwLDI1NDUxLDI1NDUyLDI1NDU1LDI1NDU2LDI1NDU4LDI1NDU5LDI1''@;'; + put 'put ''NDYwLDI1NDYxLDI1NDY0LDI1NDY1LDI1NDY4LDI1NDY5LDI1NDcwLDI1NDcxLDI1NDczLDI1NDc1LDI1NDc2LDI1NDc3LDI1NDc4LDI1NDgzLDI1NDg1LDI1NDg5LDI1NDkxLDI1NDkyLDI1NDkzLDI1NDk1LDI1NDk3LDI1NDk4LDI1NDk5LDI1NTAwLDI1NTAxLDI1NTAyLDI1NTAzLDI1NTA1''@;'; + put 'put ''LDI1NTA4LDI1NTEwLDI1NTE1LDI1NTE5LDI1NTIxLDI1NTIyLDI1NTI1LDI1NTI2LDI1NTI5LDI1NTMxLDI1NTMzLDI1NTM1LDI1NTM2LDI1NTM3LDI1NTM4LDI1NTM5LDI1NTQxLDI1NTQzLDI1NTQ0LDI1NTQ2LDI1NTQ3LDI1NTQ4LDI1NTUzLDI1NTU1LDI1NTU2LDI1NTU3LDI1NTU5LDI1''@;'; + put 'put ''NTYwLDI1NTYxLDI1NTYyLDI1NTYzLDI1NTY0LDI1NTY1LDI1NTY3LDI1NTcwLDI1NTcyLDI1NTczLDI1NTc0LDI1NTc1LDI1NTc2LDI1NTc5LDI1NTgwLDI1NTgyLDI1NTgzLDI1NTg0LDI1NTg1LDI1NTg3LDI1NTg5LDI1NTkxLDI1NTkzLDI1NTk0LDI1NTk1LDI1NTk2LDI1NTk4LDI1NjAz''@;'; + put 'put ''LDI1NjA0LDI1NjA2LDI1NjA3LDI1NjA4LDI1NjA5LDI1NjEwLDI1NjEzLDI1NjE0LDI1NjE3LDI1NjE4LDI1NjIxLDI1NjIyLDI1NjIzLDI1NjI0LDI1NjI1LDI1NjI2LDI1NjI5LDI1NjMxLDI1NjM0LDI1NjM1LDI1NjM2LDI1NjM3LDI1NjM5LDI1NjQwLDI1NjQxLDI1NjQzLDI1NjQ2LDI1''@;'; + put 'put ''NjQ3LDI1NjQ4LDI1NjQ5LDI1NjUwLDI1NjUxLDI1NjUzLDI1NjU0LDI1NjU1LDI1NjU2LDI1NjU3LDI1NjU5LDI1NjYwLDI1NjYyLDI1NjY0LDI1NjY2LDI1NjY3LDI1NjczLDI1Njc1LDI1Njc2LDI1Njc3LDI1Njc4LDI1Njc5LDI1NjgwLDI1NjgxLDI1NjgzLDI1Njg1LDI1Njg2LDI1Njg3''@;'; + put 'put ''LDI1Njg5LDI1NjkwLDI1NjkxLDI1NjkyLDI1NjkzLDI1Njk1LDI1Njk2LDI1Njk3LDI1Njk4LDI1Njk5LDI1NzAwLDI1NzAxLDI1NzAyLDI1NzA0LDI1NzA2LDI1NzA3LDI1NzA4LDI1NzEwLDI1NzExLDI1NzEyLDI1NzEzLDI1NzE0LDI1NzE1LDI1NzE2LDI1NzE3LDI1NzE4LDI1NzE5LDI1''@;'; + put 'put ''NzIzLDI1NzI0LDI1NzI1LDI1NzI2LDI1NzI3LDI1NzI4LDI1NzI5LDI1NzMxLDI1NzM0LDI1NzM2LDI1NzM3LDI1NzM4LDI1NzM5LDI1NzQwLDI1NzQxLDI1NzQyLDI1NzQzLDI1NzQ0LDI1NzQ3LDI1NzQ4LDI1NzUxLDI1NzUyLDI1NzU0LDI1NzU1LDI1NzU2LDI1NzU3LDI1NzU5LDI1NzYw''@;'; + put 'put ''LDI1NzYxLDI1NzYyLDI1NzYzLDI1NzY1LDI1NzY2LDI1NzY3LDI1NzY4LDI1NzcwLDI1NzcxLDI1Nzc1LDI1Nzc3LDI1Nzc4LDI1Nzc5LDI1NzgwLDI1NzgyLDI1Nzg1LDI1Nzg3LDI1Nzg5LDI1NzkwLDI1NzkxLDI1NzkzLDI1Nzk1LDI1Nzk2LDI1Nzk4LDI1Nzk5LDI1ODAwLDI1ODAxLDI1''@;'; + put 'put ''ODAyLDI1ODAzLDI1ODA0LDI1ODA3LDI1ODA5LDI1ODExLDI1ODEyLDI1ODEzLDI1ODE0LDI1ODE3LDI1ODE4LDI1ODE5LDI1ODIwLDI1ODIxLDI1ODIzLDI1ODI0LDI1ODI1LDI1ODI3LDI1ODI5LDI1ODMxLDI1ODMyLDI1ODMzLDI1ODM0LDI1ODM1LDI1ODM2LDI1ODM3LDI1ODM4LDI1ODM5''@;'; + put 'put ''LDI1ODQwLDI1ODQxLDI1ODQyLDI1ODQzLDI1ODQ0LDI1ODQ1LDI1ODQ2LDI1ODQ3LDI1ODQ4LDI1ODQ5LDI1ODUwLDI1ODUxLDI1ODUyLDI1ODUzLDI1ODU0LDI1ODU1LDI1ODU3LDI1ODU4LDI1ODU5LDI1ODYwLDI1ODYxLDI1ODYyLDI1ODYzLDI1ODY0LDI1ODY2LDI1ODY3LDI1ODY4LDI1''@;'; + put 'put ''ODY5LDI1ODcwLDI1ODcxLDI1ODcyLDI1ODczLDI1ODc1LDI1ODc2LDI1ODc3LDI1ODc4LDI1ODc5LDI1ODgxLDI1ODgyLDI1ODgzLDI1ODg0LDI1ODg1LDI1ODg2LDI1ODg3LDI1ODg4LDI1ODg5LDI1ODkwLDI1ODkxLDI1ODkyLDI1ODk0LDI1ODk1LDI1ODk2LDI1ODk3LDI1ODk4LDI1OTAw''@;'; + put 'put ''LDI1OTAxLDI1OTA0LDI1OTA1LDI1OTA2LDI1OTA3LDI1OTExLDI1OTE0LDI1OTE2LDI1OTE3LDI1OTIwLDI1OTIxLDI1OTIyLDI1OTIzLDI1OTI0LDI1OTI2LDI1OTI3LDI1OTMwLDI1OTMxLDI1OTMzLDI1OTM0LDI1OTM2LDI1OTM4LDI1OTM5LDI1OTQwLDI1OTQzLDI1OTQ0LDI1OTQ2LDI1''@;'; + put 'put ''OTQ4LDI1OTUxLDI1OTUyLDI1OTUzLDI1OTU2LDI1OTU3LDI1OTU5LDI1OTYwLDI1OTYxLDI1OTYyLDI1OTY1LDI1OTY2LDI1OTY3LDI1OTY5LDI1OTcxLDI1OTczLDI1OTc0LDI1OTc2LDI1OTc3LDI1OTc4LDI1OTc5LDI1OTgwLDI1OTgxLDI1OTgyLDI1OTgzLDI1OTg0LDI1OTg1LDI1OTg2''@;'; + put 'put ''LDI1OTg3LDI1OTg4LDI1OTg5LDI1OTkwLDI1OTkyLDI1OTkzLDI1OTk0LDI1OTk3LDI1OTk4LDI1OTk5LDI2MDAyLDI2MDA0LDI2MDA1LDI2MDA2LDI2MDA4LDI2MDEwLDI2MDEzLDI2MDE0LDI2MDE2LDI2MDE4LDI2MDE5LDI2MDIyLDI2MDI0LDI2MDI2LDI2MDI4LDI2MDMwLDI2MDMzLDI2''@;'; + put 'put ''MDM0LDI2MDM1LDI2MDM2LDI2MDM3LDI2MDM4LDI2MDM5LDI2MDQwLDI2MDQyLDI2MDQzLDI2MDQ2LDI2MDQ3LDI2MDQ4LDI2MDUwLDI2MDU1LDI2MDU2LDI2MDU3LDI2MDU4LDI2MDYxLDI2MDY0LDI2MDY1LDI2MDY3LDI2MDY4LDI2MDY5LDI2MDcyLDI2MDczLDI2MDc0LDI2MDc1LDI2MDc2''@;'; + put 'put ''LDI2MDc3LDI2MDc4LDI2MDc5LDI2MDgxLDI2MDgzLDI2MDg0LDI2MDkwLDI2MDkxLDI2MDk4LDI2MDk5LDI2MTAwLDI2MTAxLDI2MTA0LDI2MTA1LDI2MTA3LDI2MTA4LDI2MTA5LDI2MTEwLDI2MTExLDI2MTEzLDI2MTE2LDI2MTE3LDI2MTE5LDI2MTIwLDI2MTIxLDI2MTIzLDI2MTI1LDI2''@;'; + put 'put ''MTI4LDI2MTI5LDI2MTMwLDI2MTM0LDI2MTM1LDI2MTM2LDI2MTM4LDI2MTM5LDI2MTQwLDI2MTQyLDI2MTQ1LDI2MTQ2LDI2MTQ3LDI2MTQ4LDI2MTUwLDI2MTUzLDI2MTU0LDI2MTU1LDI2MTU2LDI2MTU4LDI2MTYwLDI2MTYyLDI2MTYzLDI2MTY3LDI2MTY4LDI2MTY5LDI2MTcwLDI2MTcx''@;'; + put 'put ''LDI2MTczLDI2MTc1LDI2MTc2LDI2MTc4LDI2MTgwLDI2MTgxLDI2MTgyLDI2MTgzLDI2MTg0LDI2MTg1LDI2MTg2LDI2MTg5LDI2MTkwLDI2MTkyLDI2MTkzLDI2MjAwLDI2MjAxLDI2MjAzLDI2MjA0LDI2MjA1LDI2MjA2LDI2MjA4LDI2MjEwLDI2MjExLDI2MjEzLDI2MjE1LDI2MjE3LDI2''@;'; + put 'put ''MjE4LDI2MjE5LDI2MjIwLDI2MjIxLDI2MjI1LDI2MjI2LDI2MjI3LDI2MjI5LDI2MjMyLDI2MjMzLDI2MjM1LDI2MjM2LDI2MjM3LDI2MjM5LDI2MjQwLDI2MjQxLDI2MjQzLDI2MjQ1LDI2MjQ2LDI2MjQ4LDI2MjQ5LDI2MjUwLDI2MjUxLDI2MjUzLDI2MjU0LDI2MjU1LDI2MjU2LDI2MjU4''@;'; + put 'put ''LDI2MjU5LDI2MjYwLDI2MjYxLDI2MjY0LDI2MjY1LDI2MjY2LDI2MjY3LDI2MjY4LDI2MjcwLDI2MjcxLDI2MjcyLDI2MjczLDI2Mjc0LDI2Mjc1LDI2Mjc2LDI2Mjc3LDI2Mjc4LDI2MjgxLDI2MjgyLDI2MjgzLDI2Mjg0LDI2Mjg1LDI2Mjg3LDI2Mjg4LDI2Mjg5LDI2MjkwLDI2MjkxLDI2''@;'; + put 'put ''MjkzLDI2Mjk0LDI2Mjk1LDI2Mjk2LDI2Mjk4LDI2Mjk5LDI2MzAwLDI2MzAxLDI2MzAzLDI2MzA0LDI2MzA1LDI2MzA2LDI2MzA3LDI2MzA4LDI2MzA5LDI2MzEwLDI2MzExLDI2MzEyLDI2MzEzLDI2MzE0LDI2MzE1LDI2MzE2LDI2MzE3LDI2MzE4LDI2MzE5LDI2MzIwLDI2MzIxLDI2MzIy''@;'; + put 'put ''LDI2MzIzLDI2MzI0LDI2MzI1LDI2MzI2LDI2MzI3LDI2MzI4LDI2MzMwLDI2MzM0LDI2MzM1LDI2MzM2LDI2MzM3LDI2MzM4LDI2MzM5LDI2MzQwLDI2MzQxLDI2MzQzLDI2MzQ0LDI2MzQ2LDI2MzQ3LDI2MzQ4LDI2MzQ5LDI2MzUwLDI2MzUxLDI2MzUzLDI2MzU3LDI2MzU4LDI2MzYwLDI2''@;'; + put 'put ''MzYyLDI2MzYzLDI2MzY1LDI2MzY5LDI2MzcwLDI2MzcxLDI2MzcyLDI2MzczLDI2Mzc0LDI2Mzc1LDI2MzgwLDI2MzgyLDI2MzgzLDI2Mzg1LDI2Mzg2LDI2Mzg3LDI2MzkwLDI2MzkyLDI2MzkzLDI2Mzk0LDI2Mzk2LDI2Mzk4LDI2NDAwLDI2NDAxLDI2NDAyLDI2NDAzLDI2NDA0LDI2NDA1''@;'; + put 'put ''LDI2NDA3LDI2NDA5LDI2NDE0LDI2NDE2LDI2NDE4LDI2NDE5LDI2NDIyLDI2NDIzLDI2NDI0LDI2NDI1LDI2NDI3LDI2NDI4LDI2NDMwLDI2NDMxLDI2NDMzLDI2NDM2LDI2NDM3LDI2NDM5LDI2NDQyLDI2NDQzLDI2NDQ1LDI2NDUwLDI2NDUyLDI2NDUzLDI2NDU1LDI2NDU2LDI2NDU3LDI2''@;'; + put 'put ''NDU4LDI2NDU5LDI2NDYxLDI2NDY2LDI2NDY3LDI2NDY4LDI2NDcwLDI2NDcxLDI2NDc1LDI2NDc2LDI2NDc4LDI2NDgxLDI2NDg0LDI2NDg2LDI2NDg4LDI2NDg5LDI2NDkwLDI2NDkxLDI2NDkzLDI2NDk2LDI2NDk4LDI2NDk5LDI2NTAxLDI2NTAyLDI2NTA0LDI2NTA2LDI2NTA4LDI2NTA5''@;'; + put 'put ''LDI2NTEwLDI2NTExLDI2NTEzLDI2NTE0LDI2NTE1LDI2NTE2LDI2NTE4LDI2NTIxLDI2NTIzLDI2NTI3LDI2NTI4LDI2NTI5LDI2NTMyLDI2NTM0LDI2NTM3LDI2NTQwLDI2NTQyLDI2NTQ1LDI2NTQ2LDI2NTQ4LDI2NTUzLDI2NTU0LDI2NTU1LDI2NTU2LDI2NTU3LDI2NTU4LDI2NTU5LDI2''@;'; + put 'put ''NTYwLDI2NTYyLDI2NTY1LDI2NTY2LDI2NTY3LDI2NTY4LDI2NTY5LDI2NTcwLDI2NTcxLDI2NTcyLDI2NTczLDI2NTc0LDI2NTgxLDI2NTgyLDI2NTgzLDI2NTg3LDI2NTkxLDI2NTkzLDI2NTk1LDI2NTk2LDI2NTk4LDI2NTk5LDI2NjAwLDI2NjAyLDI2NjAzLDI2NjA1LDI2NjA2LDI2NjEw''@;'; + put 'put ''LDI2NjEzLDI2NjE0LDI2NjE1LDI2NjE2LDI2NjE3LDI2NjE4LDI2NjE5LDI2NjIwLDI2NjIyLDI2NjI1LDI2NjI2LDI2NjI3LDI2NjI4LDI2NjMwLDI2NjM3LDI2NjQwLDI2NjQyLDI2NjQ0LDI2NjQ1LDI2NjQ4LDI2NjQ5LDI2NjUwLDI2NjUxLDI2NjUyLDI2NjU0LDI2NjU1LDI2NjU2LDI2''@;'; + put 'put ''NjU4LDI2NjU5LDI2NjYwLDI2NjYxLDI2NjYyLDI2NjYzLDI2NjY0LDI2NjY3LDI2NjY4LDI2NjY5LDI2NjcwLDI2NjcxLDI2NjcyLDI2NjczLDI2Njc2LDI2Njc3LDI2Njc4LDI2NjgyLDI2NjgzLDI2Njg3LDI2Njk1LDI2Njk5LDI2NzAxLDI2NzAzLDI2NzA2LDI2NzEwLDI2NzExLDI2NzEy''@;'; + put 'put ''LDI2NzEzLDI2NzE0LDI2NzE1LDI2NzE2LDI2NzE3LDI2NzE4LDI2NzE5LDI2NzMwLDI2NzMyLDI2NzMzLDI2NzM0LDI2NzM1LDI2NzM2LDI2NzM3LDI2NzM4LDI2NzM5LDI2NzQxLDI2NzQ0LDI2NzQ1LDI2NzQ2LDI2NzQ3LDI2NzQ4LDI2NzQ5LDI2NzUwLDI2NzUxLDI2NzUyLDI2NzU0LDI2''@;'; + put 'put ''NzU2LDI2NzU5LDI2NzYwLDI2NzYxLDI2NzYyLDI2NzYzLDI2NzY0LDI2NzY1LDI2NzY2LDI2NzY4LDI2NzY5LDI2NzcwLDI2NzcyLDI2NzczLDI2Nzc0LDI2Nzc2LDI2Nzc3LDI2Nzc4LDI2Nzc5LDI2NzgwLDI2NzgxLDI2NzgyLDI2NzgzLDI2Nzg0LDI2Nzg1LDI2Nzg3LDI2Nzg4LDI2Nzg5''@;'; + put 'put ''LDI2NzkzLDI2Nzk0LDI2Nzk1LDI2Nzk2LDI2Nzk4LDI2ODAxLDI2ODAyLDI2ODA0LDI2ODA2LDI2ODA3LDI2ODA4LDI2ODA5LDI2ODEwLDI2ODExLDI2ODEyLDI2ODEzLDI2ODE0LDI2ODE1LDI2ODE3LDI2ODE5LDI2ODIwLDI2ODIxLDI2ODIyLDI2ODIzLDI2ODI0LDI2ODI2LDI2ODI4LDI2''@;'; + put 'put ''ODMwLDI2ODMxLDI2ODMyLDI2ODMzLDI2ODM1LDI2ODM2LDI2ODM4LDI2ODM5LDI2ODQxLDI2ODQzLDI2ODQ0LDI2ODQ1LDI2ODQ2LDI2ODQ3LDI2ODQ5LDI2ODUwLDI2ODUyLDI2ODUzLDI2ODU0LDI2ODU1LDI2ODU2LDI2ODU3LDI2ODU4LDI2ODU5LDI2ODYwLDI2ODYxLDI2ODYzLDI2ODY2''@;'; + put 'put ''LDI2ODY3LDI2ODY4LDI2ODcwLDI2ODcxLDI2ODcyLDI2ODc1LDI2ODc3LDI2ODc4LDI2ODc5LDI2ODgwLDI2ODgyLDI2ODgzLDI2ODg0LDI2ODg2LDI2ODg3LDI2ODg4LDI2ODg5LDI2ODkwLDI2ODkyLDI2ODk1LDI2ODk3LDI2ODk5LDI2OTAwLDI2OTAxLDI2OTAyLDI2OTAzLDI2OTA0LDI2''@;'; + put 'put ''OTA1LDI2OTA2LDI2OTA3LDI2OTA4LDI2OTA5LDI2OTEwLDI2OTEzLDI2OTE0LDI2OTE1LDI2OTE3LDI2OTE4LDI2OTE5LDI2OTIwLDI2OTIxLDI2OTIyLDI2OTIzLDI2OTI0LDI2OTI2LDI2OTI3LDI2OTI5LDI2OTMwLDI2OTMxLDI2OTMzLDI2OTM0LDI2OTM1LDI2OTM2LDI2OTM4LDI2OTM5''@;'; + put 'put ''LDI2OTQwLDI2OTQyLDI2OTQ0LDI2OTQ1LDI2OTQ3LDI2OTQ4LDI2OTQ5LDI2OTUwLDI2OTUxLDI2OTUyLDI2OTUzLDI2OTU0LDI2OTU1LDI2OTU2LDI2OTU3LDI2OTU4LDI2OTU5LDI2OTYwLDI2OTYxLDI2OTYyLDI2OTYzLDI2OTY1LDI2OTY2LDI2OTY4LDI2OTY5LDI2OTcxLDI2OTcyLDI2''@;'; + put 'put ''OTc1LDI2OTc3LDI2OTc4LDI2OTgwLDI2OTgxLDI2OTgzLDI2OTg0LDI2OTg1LDI2OTg2LDI2OTg4LDI2OTg5LDI2OTkxLDI2OTkyLDI2OTk0LDI2OTk1LDI2OTk2LDI2OTk3LDI2OTk4LDI3MDAyLDI3MDAzLDI3MDA1LDI3MDA2LDI3MDA3LDI3MDA5LDI3MDExLDI3MDEzLDI3MDE4LDI3MDE5''@;'; + put 'put ''LDI3MDIwLDI3MDIyLDI3MDIzLDI3MDI0LDI3MDI1LDI3MDI2LDI3MDI3LDI3MDMwLDI3MDMxLDI3MDMzLDI3MDM0LDI3MDM3LDI3MDM4LDI3MDM5LDI3MDQwLDI3MDQxLDI3MDQyLDI3MDQzLDI3MDQ0LDI3MDQ1LDI3MDQ2LDI3MDQ5LDI3MDUwLDI3MDUyLDI3MDU0LDI3MDU1LDI3MDU2LDI3''@;'; + put 'put ''MDU4LDI3MDU5LDI3MDYxLDI3MDYyLDI3MDY0LDI3MDY1LDI3MDY2LDI3MDY4LDI3MDY5LDI3MDcwLDI3MDcxLDI3MDcyLDI3MDc0LDI3MDc1LDI3MDc2LDI3MDc3LDI3MDc4LDI3MDc5LDI3MDgwLDI3MDgxLDI3MDgzLDI3MDg1LDI3MDg3LDI3MDg5LDI3MDkwLDI3MDkxLDI3MDkzLDI3MDk0''@;'; + put 'put ''LDI3MDk1LDI3MDk2LDI3MDk3LDI3MDk4LDI3MTAwLDI3MTAxLDI3MTAyLDI3MTA1LDI3MTA2LDI3MTA3LDI3MTA4LDI3MTA5LDI3MTEwLDI3MTExLDI3MTEyLDI3MTEzLDI3MTE0LDI3MTE1LDI3MTE2LDI3MTE4LDI3MTE5LDI3MTIwLDI3MTIxLDI3MTIzLDI3MTI0LDI3MTI1LDI3MTI2LDI3''@;'; + put 'put ''MTI3LDI3MTI4LDI3MTI5LDI3MTMwLDI3MTMxLDI3MTMyLDI3MTM0LDI3MTM2LDI3MTM3LDI3MTM4LDI3MTM5LDI3MTQwLDI3MTQxLDI3MTQyLDI3MTQzLDI3MTQ0LDI3MTQ1LDI3MTQ3LDI3MTQ4LDI3MTQ5LDI3MTUwLDI3MTUxLDI3MTUyLDI3MTUzLDI3MTU0LDI3MTU1LDI3MTU2LDI3MTU3''@;'; + put 'put ''LDI3MTU4LDI3MTYxLDI3MTYyLDI3MTYzLDI3MTY0LDI3MTY1LDI3MTY2LDI3MTY4LDI3MTcwLDI3MTcxLDI3MTcyLDI3MTczLDI3MTc0LDI3MTc1LDI3MTc3LDI3MTc5LDI3MTgwLDI3MTgxLDI3MTgyLDI3MTg0LDI3MTg2LDI3MTg3LDI3MTg4LDI3MTkwLDI3MTkxLDI3MTkyLDI3MTkzLDI3''@;'; + put 'put ''MTk0LDI3MTk1LDI3MTk2LDI3MTk5LDI3MjAwLDI3MjAxLDI3MjAyLDI3MjAzLDI3MjA1LDI3MjA2LDI3MjA4LDI3MjA5LDI3MjEwLDI3MjExLDI3MjEyLDI3MjEzLDI3MjE0LDI3MjE1LDI3MjE3LDI3MjE4LDI3MjE5LDI3MjIwLDI3MjIxLDI3MjIyLDI3MjIzLDI3MjI2LDI3MjI4LDI3MjI5''@;'; + put 'put ''LDI3MjMwLDI3MjMxLDI3MjMyLDI3MjM0LDI3MjM1LDI3MjM2LDI3MjM4LDI3MjM5LDI3MjQwLDI3MjQxLDI3MjQyLDI3MjQzLDI3MjQ0LDI3MjQ1LDI3MjQ2LDI3MjQ3LDI3MjQ4LDI3MjUwLDI3MjUxLDI3MjUyLDI3MjUzLDI3MjU0LDI3MjU1LDI3MjU2LDI3MjU4LDI3MjU5LDI3MjYxLDI3''@;'; + put 'put ''MjYyLDI3MjYzLDI3MjY1LDI3MjY2LDI3MjY3LDI3MjY5LDI3MjcwLDI3MjcxLDI3MjcyLDI3MjczLDI3Mjc0LDI3Mjc1LDI3Mjc2LDI3Mjc3LDI3Mjc5LDI3MjgyLDI3MjgzLDI3Mjg0LDI3Mjg1LDI3Mjg2LDI3Mjg4LDI3Mjg5LDI3MjkwLDI3MjkxLDI3MjkyLDI3MjkzLDI3Mjk0LDI3Mjk1''@;'; + put 'put ''LDI3Mjk3LDI3Mjk4LDI3Mjk5LDI3MzAwLDI3MzAxLDI3MzAyLDI3MzAzLDI3MzA0LDI3MzA2LDI3MzA5LDI3MzEwLDI3MzExLDI3MzEyLDI3MzEzLDI3MzE0LDI3MzE1LDI3MzE2LDI3MzE3LDI3MzE4LDI3MzE5LDI3MzIwLDI3MzIxLDI3MzIyLDI3MzIzLDI3MzI0LDI3MzI1LDI3MzI2LDI3''@;'; + put 'put ''MzI3LDI3MzI4LDI3MzI5LDI3MzMwLDI3MzMxLDI3MzMyLDI3MzMzLDI3MzM0LDI3MzM1LDI3MzM2LDI3MzM3LDI3MzM4LDI3MzM5LDI3MzQwLDI3MzQxLDI3MzQyLDI3MzQzLDI3MzQ0LDI3MzQ1LDI3MzQ2LDI3MzQ3LDI3MzQ4LDI3MzQ5LDI3MzUwLDI3MzUxLDI3MzUyLDI3MzUzLDI3MzU0''@;'; + put 'put ''LDI3MzU1LDI3MzU2LDI3MzU3LDI3MzU4LDI3MzU5LDI3MzYwLDI3MzYxLDI3MzYyLDI3MzYzLDI3MzY0LDI3MzY1LDI3MzY2LDI3MzY3LDI3MzY4LDI3MzY5LDI3MzcwLDI3MzcxLDI3MzcyLDI3MzczLDI3Mzc0LDI3Mzc1LDI3Mzc2LDI3Mzc3LDI3Mzc4LDI3Mzc5LDI3MzgwLDI3MzgxLDI3''@;'; + put 'put ''MzgyLDI3MzgzLDI3Mzg0LDI3Mzg1LDI3Mzg2LDI3Mzg3LDI3Mzg4LDI3Mzg5LDI3MzkwLDI3MzkxLDI3MzkyLDI3MzkzLDI3Mzk0LDI3Mzk1LDI3Mzk2LDI3Mzk3LDI3Mzk4LDI3Mzk5LDI3NDAwLDI3NDAxLDI3NDAyLDI3NDAzLDI3NDA0LDI3NDA1LDI3NDA2LDI3NDA3LDI3NDA4LDI3NDA5''@;'; + put 'put ''LDI3NDEwLDI3NDExLDI3NDEyLDI3NDEzLDI3NDE0LDI3NDE1LDI3NDE2LDI3NDE3LDI3NDE4LDI3NDE5LDI3NDIwLDI3NDIxLDI3NDIyLDI3NDIzLDI3NDI5LDI3NDMwLDI3NDMyLDI3NDMzLDI3NDM0LDI3NDM1LDI3NDM2LDI3NDM3LDI3NDM4LDI3NDM5LDI3NDQwLDI3NDQxLDI3NDQzLDI3''@;'; + put 'put ''NDQ0LDI3NDQ1LDI3NDQ2LDI3NDQ4LDI3NDUxLDI3NDUyLDI3NDUzLDI3NDU1LDI3NDU2LDI3NDU3LDI3NDU4LDI3NDYwLDI3NDYxLDI3NDY0LDI3NDY2LDI3NDY3LDI3NDY5LDI3NDcwLDI3NDcxLDI3NDcyLDI3NDczLDI3NDc0LDI3NDc1LDI3NDc2LDI3NDc3LDI3NDc4LDI3NDc5LDI3NDgw''@;'; + put 'put ''LDI3NDgyLDI3NDgzLDI3NDg0LDI3NDg1LDI3NDg2LDI3NDg3LDI3NDg4LDI3NDg5LDI3NDk2LDI3NDk3LDI3NDk5LDI3NTAwLDI3NTAxLDI3NTAyLDI3NTAzLDI3NTA0LDI3NTA1LDI3NTA2LDI3NTA3LDI3NTA4LDI3NTA5LDI3NTEwLDI3NTExLDI3NTEyLDI3NTE0LDI3NTE3LDI3NTE4LDI3''@;'; + put 'put ''NTE5LDI3NTIwLDI3NTI1LDI3NTI4LDI3NTMyLDI3NTM0LDI3NTM1LDI3NTM2LDI3NTM3LDI3NTQwLDI3NTQxLDI3NTQzLDI3NTQ0LDI3NTQ1LDI3NTQ4LDI3NTQ5LDI3NTUwLDI3NTUxLDI3NTUyLDI3NTU0LDI3NTU1LDI3NTU2LDI3NTU3LDI3NTU4LDI3NTU5LDI3NTYwLDI3NTYxLDI3NTYz''@;'; + put 'put ''LDI3NTY0LDI3NTY1LDI3NTY2LDI3NTY3LDI3NTY4LDI3NTY5LDI3NTcwLDI3NTc0LDI3NTc2LDI3NTc3LDI3NTc4LDI3NTc5LDI3NTgwLDI3NTgxLDI3NTgyLDI3NTg0LDI3NTg3LDI3NTg4LDI3NTkwLDI3NTkxLDI3NTkyLDI3NTkzLDI3NTk0LDI3NTk2LDI3NTk4LDI3NjAwLDI3NjAxLDI3''@;'; + put 'put ''NjA4LDI3NjEwLDI3NjEyLDI3NjEzLDI3NjE0LDI3NjE1LDI3NjE2LDI3NjE4LDI3NjE5LDI3NjIwLDI3NjIxLDI3NjIyLDI3NjIzLDI3NjI0LDI3NjI1LDI3NjI4LDI3NjI5LDI3NjMwLDI3NjMyLDI3NjMzLDI3NjM0LDI3NjM2LDI3NjM4LDI3NjM5LDI3NjQwLDI3NjQyLDI3NjQzLDI3NjQ0''@;'; + put 'put ''LDI3NjQ2LDI3NjQ3LDI3NjQ4LDI3NjQ5LDI3NjUwLDI3NjUxLDI3NjUyLDI3NjU2LDI3NjU3LDI3NjU4LDI3NjU5LDI3NjYwLDI3NjYyLDI3NjY2LDI3NjcxLDI3Njc2LDI3Njc3LDI3Njc4LDI3NjgwLDI3NjgzLDI3Njg1LDI3NjkxLDI3NjkyLDI3NjkzLDI3Njk3LDI3Njk5LDI3NzAyLDI3''@;'; + put 'put ''NzAzLDI3NzA1LDI3NzA2LDI3NzA3LDI3NzA4LDI3NzEwLDI3NzExLDI3NzE1LDI3NzE2LDI3NzE3LDI3NzIwLDI3NzIzLDI3NzI0LDI3NzI1LDI3NzI2LDI3NzI3LDI3NzI5LDI3NzMwLDI3NzMxLDI3NzM0LDI3NzM2LDI3NzM3LDI3NzM4LDI3NzQ2LDI3NzQ3LDI3NzQ5LDI3NzUwLDI3NzUx''@;'; + put 'put ''LDI3NzU1LDI3NzU2LDI3NzU3LDI3NzU4LDI3NzU5LDI3NzYxLDI3NzYzLDI3NzY1LDI3NzY3LDI3NzY4LDI3NzcwLDI3NzcxLDI3NzcyLDI3Nzc1LDI3Nzc2LDI3NzgwLDI3NzgzLDI3Nzg2LDI3Nzg3LDI3Nzg5LDI3NzkwLDI3NzkzLDI3Nzk0LDI3Nzk3LDI3Nzk4LDI3Nzk5LDI3ODAwLDI3''@;'; + put 'put ''ODAyLDI3ODA0LDI3ODA1LDI3ODA2LDI3ODA4LDI3ODEwLDI3ODE2LDI3ODIwLDI3ODIzLDI3ODI0LDI3ODI4LDI3ODI5LDI3ODMwLDI3ODMxLDI3ODM0LDI3ODQwLDI3ODQxLDI3ODQyLDI3ODQzLDI3ODQ2LDI3ODQ3LDI3ODQ4LDI3ODUxLDI3ODUzLDI3ODU0LDI3ODU1LDI3ODU3LDI3ODU4''@;'; + put 'put ''LDI3ODY0LDI3ODY1LDI3ODY2LDI3ODY4LDI3ODY5LDI3ODcxLDI3ODc2LDI3ODc4LDI3ODc5LDI3ODgxLDI3ODg0LDI3ODg1LDI3ODkwLDI3ODkyLDI3ODk3LDI3OTAzLDI3OTA0LDI3OTA2LDI3OTA3LDI3OTA5LDI3OTEwLDI3OTEyLDI3OTEzLDI3OTE0LDI3OTE3LDI3OTE5LDI3OTIwLDI3''@;'; + put 'put ''OTIxLDI3OTIzLDI3OTI0LDI3OTI1LDI3OTI2LDI3OTI4LDI3OTMyLDI3OTMzLDI3OTM1LDI3OTM2LDI3OTM3LDI3OTM4LDI3OTM5LDI3OTQwLDI3OTQyLDI3OTQ0LDI3OTQ1LDI3OTQ4LDI3OTQ5LDI3OTUxLDI3OTUyLDI3OTU2LDI3OTU4LDI3OTU5LDI3OTYwLDI3OTYyLDI3OTY3LDI3OTY4''@;'; + put 'put ''LDI3OTcwLDI3OTcyLDI3OTc3LDI3OTgwLDI3OTg0LDI3OTg5LDI3OTkwLDI3OTkxLDI3OTkyLDI3OTk1LDI3OTk3LDI3OTk5LDI4MDAxLDI4MDAyLDI4MDA0LDI4MDA1LDI4MDA3LDI4MDA4LDI4MDExLDI4MDEyLDI4MDEzLDI4MDE2LDI4MDE3LDI4MDE4LDI4MDE5LDI4MDIxLDI4MDIyLDI4''@;'; + put 'put ''MDI1LDI4MDI2LDI4MDI3LDI4MDI5LDI4MDMwLDI4MDMxLDI4MDMyLDI4MDMzLDI4MDM1LDI4MDM2LDI4MDM4LDI4MDM5LDI4MDQyLDI4MDQzLDI4MDQ1LDI4MDQ3LDI4MDQ4LDI4MDUwLDI4MDU0LDI4MDU1LDI4MDU2LDI4MDU3LDI4MDU4LDI4MDYwLDI4MDY2LDI4MDY5LDI4MDc2LDI4MDc3''@;'; + put 'put ''LDI4MDgwLDI4MDgxLDI4MDgzLDI4MDg0LDI4MDg2LDI4MDg3LDI4MDg5LDI4MDkwLDI4MDkxLDI4MDkyLDI4MDkzLDI4MDk0LDI4MDk3LDI4MDk4LDI4MDk5LDI4MTA0LDI4MTA1LDI4MTA2LDI4MTA5LDI4MTEwLDI4MTExLDI4MTEyLDI4MTE0LDI4MTE1LDI4MTE2LDI4MTE3LDI4MTE5LDI4''@;'; + put 'put ''MTIyLDI4MTIzLDI4MTI0LDI4MTI3LDI4MTMwLDI4MTMxLDI4MTMzLDI4MTM1LDI4MTM2LDI4MTM3LDI4MTM4LDI4MTQxLDI4MTQzLDI4MTQ0LDI4MTQ2LDI4MTQ4LDI4MTQ5LDI4MTUwLDI4MTUyLDI4MTU0LDI4MTU3LDI4MTU4LDI4MTU5LDI4MTYwLDI4MTYxLDI4MTYyLDI4MTYzLDI4MTY0''@;'; + put 'put ''LDI4MTY2LDI4MTY3LDI4MTY4LDI4MTY5LDI4MTcxLDI4MTc1LDI4MTc4LDI4MTc5LDI4MTgxLDI4MTg0LDI4MTg1LDI4MTg3LDI4MTg4LDI4MTkwLDI4MTkxLDI4MTk0LDI4MTk4LDI4MTk5LDI4MjAwLDI4MjAyLDI4MjA0LDI4MjA2LDI4MjA4LDI4MjA5LDI4MjExLDI4MjEzLDI4MjE0LDI4''@;'; + put 'put ''MjE1LDI4MjE3LDI4MjE5LDI4MjIwLDI4MjIxLDI4MjIyLDI4MjIzLDI4MjI0LDI4MjI1LDI4MjI2LDI4MjI5LDI4MjMwLDI4MjMxLDI4MjMyLDI4MjMzLDI4MjM0LDI4MjM1LDI4MjM2LDI4MjM5LDI4MjQwLDI4MjQxLDI4MjQyLDI4MjQ1LDI4MjQ3LDI4MjQ5LDI4MjUwLDI4MjUyLDI4MjUz''@;'; + put 'put ''LDI4MjU0LDI4MjU2LDI4MjU3LDI4MjU4LDI4MjU5LDI4MjYwLDI4MjYxLDI4MjYyLDI4MjYzLDI4MjY0LDI4MjY1LDI4MjY2LDI4MjY4LDI4MjY5LDI4MjcxLDI4MjcyLDI4MjczLDI4Mjc0LDI4Mjc1LDI4Mjc2LDI4Mjc3LDI4Mjc4LDI4Mjc5LDI4MjgwLDI4MjgxLDI4MjgyLDI4MjgzLDI4''@;'; + put 'put ''Mjg0LDI4Mjg1LDI4Mjg4LDI4Mjg5LDI4MjkwLDI4MjkyLDI4Mjk1LDI4Mjk2LDI4Mjk4LDI4Mjk5LDI4MzAwLDI4MzAxLDI4MzAyLDI4MzA1LDI4MzA2LDI4MzA3LDI4MzA4LDI4MzA5LDI4MzEwLDI4MzExLDI4MzEzLDI4MzE0LDI4MzE1LDI4MzE3LDI4MzE4LDI4MzIwLDI4MzIxLDI4MzIz''@;'; + put 'put ''LDI4MzI0LDI4MzI2LDI4MzI4LDI4MzI5LDI4MzMxLDI4MzMyLDI4MzMzLDI4MzM0LDI4MzM2LDI4MzM5LDI4MzQxLDI4MzQ0LDI4MzQ1LDI4MzQ4LDI4MzUwLDI4MzUxLDI4MzUyLDI4MzU1LDI4MzU2LDI4MzU3LDI4MzU4LDI4MzYwLDI4MzYxLDI4MzYyLDI4MzY0LDI4MzY1LDI4MzY2LDI4''@;'; + put 'put ''MzY4LDI4MzcwLDI4Mzc0LDI4Mzc2LDI4Mzc3LDI4Mzc5LDI4MzgwLDI4MzgxLDI4Mzg3LDI4MzkxLDI4Mzk0LDI4Mzk1LDI4Mzk2LDI4Mzk3LDI4Mzk4LDI4Mzk5LDI4NDAwLDI4NDAxLDI4NDAyLDI4NDAzLDI4NDA1LDI4NDA2LDI4NDA3LDI4NDA4LDI4NDEwLDI4NDExLDI4NDEyLDI4NDEz''@;'; + put 'put ''LDI4NDE0LDI4NDE1LDI4NDE2LDI4NDE3LDI4NDE5LDI4NDIwLDI4NDIxLDI4NDIzLDI4NDI0LDI4NDI2LDI4NDI3LDI4NDI4LDI4NDI5LDI4NDMwLDI4NDMyLDI4NDMzLDI4NDM0LDI4NDM4LDI4NDM5LDI4NDQwLDI4NDQxLDI4NDQyLDI4NDQzLDI4NDQ0LDI4NDQ1LDI4NDQ2LDI4NDQ3LDI4''@;'; + put 'put ''NDQ5LDI4NDUwLDI4NDUxLDI4NDUzLDI4NDU0LDI4NDU1LDI4NDU2LDI4NDYwLDI4NDYyLDI4NDY0LDI4NDY2LDI4NDY4LDI4NDY5LDI4NDcxLDI4NDcyLDI4NDczLDI4NDc0LDI4NDc1LDI4NDc2LDI4NDc3LDI4NDc5LDI4NDgwLDI4NDgxLDI4NDgyLDI4NDgzLDI4NDg0LDI4NDg1LDI4NDg4''@;'; + put 'put ''LDI4NDg5LDI4NDkwLDI4NDkyLDI4NDk0LDI4NDk1LDI4NDk2LDI4NDk3LDI4NDk4LDI4NDk5LDI4NTAwLDI4NTAxLDI4NTAyLDI4NTAzLDI4NTA1LDI4NTA2LDI4NTA3LDI4NTA5LDI4NTExLDI4NTEyLDI4NTEzLDI4NTE1LDI4NTE2LDI4NTE3LDI4NTE5LDI4NTIwLDI4NTIxLDI4NTIyLDI4''@;'; + put 'put ''NTIzLDI4NTI0LDI4NTI3LDI4NTI4LDI4NTI5LDI4NTMxLDI4NTMzLDI4NTM0LDI4NTM1LDI4NTM3LDI4NTM5LDI4NTQxLDI4NTQyLDI4NTQzLDI4NTQ0LDI4NTQ1LDI4NTQ2LDI4NTQ3LDI4NTQ5LDI4NTUwLDI4NTUxLDI4NTU0LDI4NTU1LDI4NTU5LDI4NTYwLDI4NTYxLDI4NTYyLDI4NTYz''@;'; + put 'put ''LDI4NTY0LDI4NTY1LDI4NTY2LDI4NTY3LDI4NTY4LDI4NTY5LDI4NTcwLDI4NTcxLDI4NTczLDI4NTc0LDI4NTc1LDI4NTc2LDI4NTc4LDI4NTc5LDI4NTgwLDI4NTgxLDI4NTgyLDI4NTg0LDI4NTg1LDI4NTg2LDI4NTg3LDI4NTg4LDI4NTg5LDI4NTkwLDI4NTkxLDI4NTkyLDI4NTkzLDI4''@;'; + put 'put ''NTk0LDI4NTk2LDI4NTk3LDI4NTk5LDI4NjAwLDI4NjAyLDI4NjAzLDI4NjA0LDI4NjA1LDI4NjA2LDI4NjA3LDI4NjA5LDI4NjExLDI4NjEyLDI4NjEzLDI4NjE0LDI4NjE1LDI4NjE2LDI4NjE4LDI4NjE5LDI4NjIwLDI4NjIxLDI4NjIyLDI4NjIzLDI4NjI0LDI4NjI3LDI4NjI4LDI4NjI5''@;'; + put 'put ''LDI4NjMwLDI4NjMxLDI4NjMyLDI4NjMzLDI4NjM0LDI4NjM1LDI4NjM2LDI4NjM3LDI4NjM5LDI4NjQyLDI4NjQzLDI4NjQ0LDI4NjQ1LDI4NjQ2LDI4NjQ3LDI4NjQ4LDI4NjQ5LDI4NjUwLDI4NjUxLDI4NjUyLDI4NjUzLDI4NjU2LDI4NjU3LDI4NjU4LDI4NjU5LDI4NjYwLDI4NjYxLDI4''@;'; + put 'put ''NjYyLDI4NjYzLDI4NjY0LDI4NjY1LDI4NjY2LDI4NjY3LDI4NjY4LDI4NjY5LDI4NjcwLDI4NjcxLDI4NjcyLDI4NjczLDI4Njc0LDI4Njc1LDI4Njc2LDI4Njc3LDI4Njc4LDI4Njc5LDI4NjgwLDI4NjgxLDI4NjgyLDI4NjgzLDI4Njg0LDI4Njg1LDI4Njg2LDI4Njg3LDI4Njg4LDI4Njkw''@;'; + put 'put ''LDI4NjkxLDI4NjkyLDI4NjkzLDI4Njk0LDI4Njk1LDI4Njk2LDI4Njk3LDI4NzAwLDI4NzAxLDI4NzAyLDI4NzAzLDI4NzA0LDI4NzA1LDI4NzA2LDI4NzA4LDI4NzA5LDI4NzEwLDI4NzExLDI4NzEyLDI4NzEzLDI4NzE0LDI4NzE1LDI4NzE2LDI4NzE3LDI4NzE4LDI4NzE5LDI4NzIwLDI4''@;'; + put 'put ''NzIxLDI4NzIyLDI4NzIzLDI4NzI0LDI4NzI2LDI4NzI3LDI4NzI4LDI4NzMwLDI4NzMxLDI4NzMyLDI4NzMzLDI4NzM0LDI4NzM1LDI4NzM2LDI4NzM3LDI4NzM4LDI4NzM5LDI4NzQwLDI4NzQxLDI4NzQyLDI4NzQzLDI4NzQ0LDI4NzQ1LDI4NzQ2LDI4NzQ3LDI4NzQ5LDI4NzUwLDI4NzUy''@;'; + put 'put ''LDI4NzUzLDI4NzU0LDI4NzU1LDI4NzU2LDI4NzU3LDI4NzU4LDI4NzU5LDI4NzYwLDI4NzYxLDI4NzYyLDI4NzYzLDI4NzY0LDI4NzY1LDI4NzY3LDI4NzY4LDI4NzY5LDI4NzcwLDI4NzcxLDI4NzcyLDI4NzczLDI4Nzc0LDI4Nzc1LDI4Nzc2LDI4Nzc3LDI4Nzc4LDI4NzgyLDI4Nzg1LDI4''@;'; + put 'put ''Nzg2LDI4Nzg3LDI4Nzg4LDI4NzkxLDI4NzkzLDI4Nzk0LDI4Nzk1LDI4Nzk3LDI4ODAxLDI4ODAyLDI4ODAzLDI4ODA0LDI4ODA2LDI4ODA3LDI4ODA4LDI4ODExLDI4ODEyLDI4ODEzLDI4ODE1LDI4ODE2LDI4ODE3LDI4ODE5LDI4ODIzLDI4ODI0LDI4ODI2LDI4ODI3LDI4ODMwLDI4ODMx''@;'; + put 'put ''LDI4ODMyLDI4ODMzLDI4ODM0LDI4ODM1LDI4ODM2LDI4ODM3LDI4ODM4LDI4ODM5LDI4ODQwLDI4ODQxLDI4ODQyLDI4ODQ4LDI4ODUwLDI4ODUyLDI4ODUzLDI4ODU0LDI4ODU4LDI4ODYyLDI4ODYzLDI4ODY4LDI4ODY5LDI4ODcwLDI4ODcxLDI4ODczLDI4ODc1LDI4ODc2LDI4ODc3LDI4''@;'; + put 'put ''ODc4LDI4ODc5LDI4ODgwLDI4ODgxLDI4ODgyLDI4ODgzLDI4ODg0LDI4ODg1LDI4ODg2LDI4ODg3LDI4ODkwLDI4ODkyLDI4ODkzLDI4ODk0LDI4ODk2LDI4ODk3LDI4ODk4LDI4ODk5LDI4OTAxLDI4OTA2LDI4OTEwLDI4OTEyLDI4OTEzLDI4OTE0LDI4OTE1LDI4OTE2LDI4OTE3LDI4OTE4''@;'; + put 'put ''LDI4OTIwLDI4OTIyLDI4OTIzLDI4OTI0LDI4OTI2LDI4OTI3LDI4OTI4LDI4OTI5LDI4OTMwLDI4OTMxLDI4OTMyLDI4OTMzLDI4OTM0LDI4OTM1LDI4OTM2LDI4OTM5LDI4OTQwLDI4OTQxLDI4OTQyLDI4OTQzLDI4OTQ1LDI4OTQ2LDI4OTQ4LDI4OTUxLDI4OTU1LDI4OTU2LDI4OTU3LDI4''@;'; + put 'put ''OTU4LDI4OTU5LDI4OTYwLDI4OTYxLDI4OTYyLDI4OTYzLDI4OTY0LDI4OTY1LDI4OTY3LDI4OTY4LDI4OTY5LDI4OTcwLDI4OTcxLDI4OTcyLDI4OTczLDI4OTc0LDI4OTc4LDI4OTc5LDI4OTgwLDI4OTgxLDI4OTgzLDI4OTg0LDI4OTg1LDI4OTg2LDI4OTg3LDI4OTg4LDI4OTg5LDI4OTkw''@;'; + put 'put ''LDI4OTkxLDI4OTkyLDI4OTkzLDI4OTk0LDI4OTk1LDI4OTk2LDI4OTk4LDI4OTk5LDI5ZTMsMjkwMDEsMjkwMDMsMjkwMDUsMjkwMDcsMjkwMDgsMjkwMDksMjkwMTAsMjkwMTEsMjkwMTIsMjkwMTMsMjkwMTQsMjkwMTUsMjkwMTYsMjkwMTcsMjkwMTgsMjkwMTksMjkwMjEsMjkwMjMsMjkw''@;'; + put 'put ''MjQsMjkwMjUsMjkwMjYsMjkwMjcsMjkwMjksMjkwMzMsMjkwMzQsMjkwMzUsMjkwMzYsMjkwMzcsMjkwMzksMjkwNDAsMjkwNDEsMjkwNDQsMjkwNDUsMjkwNDYsMjkwNDcsMjkwNDksMjkwNTEsMjkwNTIsMjkwNTQsMjkwNTUsMjkwNTYsMjkwNTcsMjkwNTgsMjkwNTksMjkwNjEsMjkwNjIs''@;'; + put 'put ''MjkwNjMsMjkwNjQsMjkwNjUsMjkwNjcsMjkwNjgsMjkwNjksMjkwNzAsMjkwNzIsMjkwNzMsMjkwNzQsMjkwNzUsMjkwNzcsMjkwNzgsMjkwNzksMjkwODIsMjkwODMsMjkwODQsMjkwODUsMjkwODYsMjkwODksMjkwOTAsMjkwOTEsMjkwOTIsMjkwOTMsMjkwOTQsMjkwOTUsMjkwOTcsMjkw''@;'; + put 'put ''OTgsMjkwOTksMjkxMDEsMjkxMDIsMjkxMDMsMjkxMDQsMjkxMDUsMjkxMDYsMjkxMDgsMjkxMTAsMjkxMTEsMjkxMTIsMjkxMTQsMjkxMTUsMjkxMTYsMjkxMTcsMjkxMTgsMjkxMTksMjkxMjAsMjkxMjEsMjkxMjIsMjkxMjQsMjkxMjUsMjkxMjYsMjkxMjcsMjkxMjgsMjkxMjksMjkxMzAs''@;'; + put 'put ''MjkxMzEsMjkxMzIsMjkxMzMsMjkxMzUsMjkxMzYsMjkxMzcsMjkxMzgsMjkxMzksMjkxNDIsMjkxNDMsMjkxNDQsMjkxNDUsMjkxNDYsMjkxNDcsMjkxNDgsMjkxNDksMjkxNTAsMjkxNTEsMjkxNTMsMjkxNTQsMjkxNTUsMjkxNTYsMjkxNTgsMjkxNjAsMjkxNjEsMjkxNjIsMjkxNjMsMjkx''@;'; + put 'put ''NjQsMjkxNjUsMjkxNjcsMjkxNjgsMjkxNjksMjkxNzAsMjkxNzEsMjkxNzIsMjkxNzMsMjkxNzQsMjkxNzUsMjkxNzYsMjkxNzgsMjkxNzksMjkxODAsMjkxODEsMjkxODIsMjkxODMsMjkxODQsMjkxODUsMjkxODYsMjkxODcsMjkxODgsMjkxODksMjkxOTEsMjkxOTIsMjkxOTMsMjkxOTQs''@;'; + put 'put ''MjkxOTUsMjkxOTYsMjkxOTcsMjkxOTgsMjkxOTksMjkyMDAsMjkyMDEsMjkyMDIsMjkyMDMsMjkyMDQsMjkyMDUsMjkyMDYsMjkyMDcsMjkyMDgsMjkyMDksMjkyMTAsMjkyMTEsMjkyMTIsMjkyMTQsMjkyMTUsMjkyMTYsMjkyMTcsMjkyMTgsMjkyMTksMjkyMjAsMjkyMjEsMjkyMjIsMjky''@;'; + put 'put ''MjMsMjkyMjUsMjkyMjcsMjkyMjksMjkyMzAsMjkyMzEsMjkyMzQsMjkyMzUsMjkyMzYsMjkyNDIsMjkyNDQsMjkyNDYsMjkyNDgsMjkyNDksMjkyNTAsMjkyNTEsMjkyNTIsMjkyNTMsMjkyNTQsMjkyNTcsMjkyNTgsMjkyNTksMjkyNjIsMjkyNjMsMjkyNjQsMjkyNjUsMjkyNjcsMjkyNjgs''@;'; + put 'put ''MjkyNjksMjkyNzEsMjkyNzIsMjkyNzQsMjkyNzYsMjkyNzgsMjkyODAsMjkyODMsMjkyODQsMjkyODUsMjkyODgsMjkyOTAsMjkyOTEsMjkyOTIsMjkyOTMsMjkyOTYsMjkyOTcsMjkyOTksMjkzMDAsMjkzMDIsMjkzMDMsMjkzMDQsMjkzMDcsMjkzMDgsMjkzMDksMjkzMTQsMjkzMTUsMjkz''@;'; + put 'put ''MTcsMjkzMTgsMjkzMTksMjkzMjAsMjkzMjEsMjkzMjQsMjkzMjYsMjkzMjgsMjkzMjksMjkzMzEsMjkzMzIsMjkzMzMsMjkzMzQsMjkzMzUsMjkzMzYsMjkzMzcsMjkzMzgsMjkzMzksMjkzNDAsMjkzNDEsMjkzNDIsMjkzNDQsMjkzNDUsMjkzNDYsMjkzNDcsMjkzNDgsMjkzNDksMjkzNTAs''@;'; + put 'put ''MjkzNTEsMjkzNTIsMjkzNTMsMjkzNTQsMjkzNTUsMjkzNTgsMjkzNjEsMjkzNjIsMjkzNjMsMjkzNjUsMjkzNzAsMjkzNzEsMjkzNzIsMjkzNzMsMjkzNzQsMjkzNzUsMjkzNzYsMjkzODEsMjkzODIsMjkzODMsMjkzODUsMjkzODYsMjkzODcsMjkzODgsMjkzOTEsMjkzOTMsMjkzOTUsMjkz''@;'; + put 'put ''OTYsMjkzOTcsMjkzOTgsMjk0MDAsMjk0MDIsMjk0MDMsNTg1NjYsNTg1NjcsNTg1NjgsNTg1NjksNTg1NzAsNTg1NzEsNTg1NzIsNTg1NzMsNTg1NzQsNTg1NzUsNTg1NzYsNTg1NzcsNTg1NzgsNTg1NzksNTg1ODAsNTg1ODEsNTg1ODIsNTg1ODMsNTg1ODQsNTg1ODUsNTg1ODYsNTg1ODcs''@;'; + put 'put ''NTg1ODgsNTg1ODksNTg1OTAsNTg1OTEsNTg1OTIsNTg1OTMsNTg1OTQsNTg1OTUsNTg1OTYsNTg1OTcsNTg1OTgsNTg1OTksNTg2MDAsNTg2MDEsNTg2MDIsNTg2MDMsNTg2MDQsNTg2MDUsNTg2MDYsNTg2MDcsNTg2MDgsNTg2MDksNTg2MTAsNTg2MTEsNTg2MTIsNTg2MTMsNTg2MTQsNTg2''@;'; + put 'put ''MTUsNTg2MTYsNTg2MTcsNTg2MTgsNTg2MTksNTg2MjAsNTg2MjEsNTg2MjIsNTg2MjMsNTg2MjQsNTg2MjUsNTg2MjYsNTg2MjcsNTg2MjgsNTg2MjksNTg2MzAsNTg2MzEsNTg2MzIsNTg2MzMsNTg2MzQsNTg2MzUsNTg2MzYsNTg2MzcsNTg2MzgsNTg2MzksNTg2NDAsNTg2NDEsNTg2NDIs''@;'; + put 'put ''NTg2NDMsNTg2NDQsNTg2NDUsNTg2NDYsNTg2NDcsNTg2NDgsNTg2NDksNTg2NTAsNTg2NTEsNTg2NTIsNTg2NTMsNTg2NTQsNTg2NTUsNTg2NTYsNTg2NTcsNTg2NTgsNTg2NTksNTg2NjAsNTg2NjEsMTIyODgsMTIyODksMTIyOTAsMTgzLDcxMyw3MTEsMTY4LDEyMjkxLDEyMjkzLDgyMTIs''@;'; + put 'put ''NjUzNzQsODIxNCw4MjMwLDgyMTYsODIxNyw4MjIwLDgyMjEsMTIzMDgsMTIzMDksMTIyOTYsMTIyOTcsMTIyOTgsMTIyOTksMTIzMDAsMTIzMDEsMTIzMDIsMTIzMDMsMTIzMTAsMTIzMTEsMTIzMDQsMTIzMDUsMTc3LDIxNSwyNDcsODc1OCw4NzQzLDg3NDQsODcyMSw4NzE5LDg3NDYsODc0''@;'; + put 'put ''NSw4NzEyLDg3NTksODczMCw4ODY5LDg3NDEsODczNiw4OTc4LDg4NTcsODc0Nyw4NzUwLDg4MDEsODc4MCw4Nzc2LDg3NjUsODczMyw4ODAwLDg4MTQsODgxNSw4ODA0LDg4MDUsODczNCw4NzU3LDg3NTYsOTc5NCw5NzkyLDE3Niw4MjQyLDgyNDMsODQ1MSw2NTI4NCwxNjQsNjU1MDQsNjU1''@;'; + put 'put ''MDUsODI0MCwxNjcsODQ3MCw5NzM0LDk3MzMsOTY3NSw5Njc5LDk2NzgsOTY3MSw5NjcwLDk2MzMsOTYzMiw5NjUxLDk2NTAsODI1MSw4NTk0LDg1OTIsODU5Myw4NTk1LDEyMzA3LDU4NjYyLDU4NjYzLDU4NjY0LDU4NjY1LDU4NjY2LDU4NjY3LDU4NjY4LDU4NjY5LDU4NjcwLDU4NjcxLDU4''@;'; + put 'put ''NjcyLDU4NjczLDU4Njc0LDU4Njc1LDU4Njc2LDU4Njc3LDU4Njc4LDU4Njc5LDU4NjgwLDU4NjgxLDU4NjgyLDU4NjgzLDU4Njg0LDU4Njg1LDU4Njg2LDU4Njg3LDU4Njg4LDU4Njg5LDU4NjkwLDU4NjkxLDU4NjkyLDU4NjkzLDU4Njk0LDU4Njk1LDU4Njk2LDU4Njk3LDU4Njk4LDU4Njk5''@;'; + put 'put ''LDU4NzAwLDU4NzAxLDU4NzAyLDU4NzAzLDU4NzA0LDU4NzA1LDU4NzA2LDU4NzA3LDU4NzA4LDU4NzA5LDU4NzEwLDU4NzExLDU4NzEyLDU4NzEzLDU4NzE0LDU4NzE1LDU4NzE2LDU4NzE3LDU4NzE4LDU4NzE5LDU4NzIwLDU4NzIxLDU4NzIyLDU4NzIzLDU4NzI0LDU4NzI1LDU4NzI2LDU4''@;'; + put 'put ''NzI3LDU4NzI4LDU4NzI5LDU4NzMwLDU4NzMxLDU4NzMyLDU4NzMzLDU4NzM0LDU4NzM1LDU4NzM2LDU4NzM3LDU4NzM4LDU4NzM5LDU4NzQwLDU4NzQxLDU4NzQyLDU4NzQzLDU4NzQ0LDU4NzQ1LDU4NzQ2LDU4NzQ3LDU4NzQ4LDU4NzQ5LDU4NzUwLDU4NzUxLDU4NzUyLDU4NzUzLDU4NzU0''@;'; + put 'put ''LDU4NzU1LDU4NzU2LDU4NzU3LDg1NjAsODU2MSw4NTYyLDg1NjMsODU2NCw4NTY1LDg1NjYsODU2Nyw4NTY4LDg1NjksNTkyMzgsNTkyMzksNTkyNDAsNTkyNDEsNTkyNDIsNTkyNDMsOTM1Miw5MzUzLDkzNTQsOTM1NSw5MzU2LDkzNTcsOTM1OCw5MzU5LDkzNjAsOTM2MSw5MzYyLDkzNjMs''@;'; + put 'put ''OTM2NCw5MzY1LDkzNjYsOTM2Nyw5MzY4LDkzNjksOTM3MCw5MzcxLDkzMzIsOTMzMyw5MzM0LDkzMzUsOTMzNiw5MzM3LDkzMzgsOTMzOSw5MzQwLDkzNDEsOTM0Miw5MzQzLDkzNDQsOTM0NSw5MzQ2LDkzNDcsOTM0OCw5MzQ5LDkzNTAsOTM1MSw5MzEyLDkzMTMsOTMxNCw5MzE1LDkzMTYs''@;'; + put 'put ''OTMxNyw5MzE4LDkzMTksOTMyMCw5MzIxLDgzNjQsNTkyNDUsMTI4MzIsMTI4MzMsMTI4MzQsMTI4MzUsMTI4MzYsMTI4MzcsMTI4MzgsMTI4MzksMTI4NDAsMTI4NDEsNTkyNDYsNTkyNDcsODU0NCw4NTQ1LDg1NDYsODU0Nyw4NTQ4LDg1NDksODU1MCw4NTUxLDg1NTIsODU1Myw4NTU0LDg1''@;'; + put 'put ''NTUsNTkyNDgsNTkyNDksNTg3NTgsNTg3NTksNTg3NjAsNTg3NjEsNTg3NjIsNTg3NjMsNTg3NjQsNTg3NjUsNTg3NjYsNTg3NjcsNTg3NjgsNTg3NjksNTg3NzAsNTg3NzEsNTg3NzIsNTg3NzMsNTg3NzQsNTg3NzUsNTg3NzYsNTg3NzcsNTg3NzgsNTg3NzksNTg3ODAsNTg3ODEsNTg3ODIs''@;'; + put 'put ''NTg3ODMsNTg3ODQsNTg3ODUsNTg3ODYsNTg3ODcsNTg3ODgsNTg3ODksNTg3OTAsNTg3OTEsNTg3OTIsNTg3OTMsNTg3OTQsNTg3OTUsNTg3OTYsNTg3OTcsNTg3OTgsNTg3OTksNTg4MDAsNTg4MDEsNTg4MDIsNTg4MDMsNTg4MDQsNTg4MDUsNTg4MDYsNTg4MDcsNTg4MDgsNTg4MDksNTg4''@;'; + put 'put ''MTAsNTg4MTEsNTg4MTIsNTg4MTMsNTg4MTQsNTg4MTUsNTg4MTYsNTg4MTcsNTg4MTgsNTg4MTksNTg4MjAsNTg4MjEsNTg4MjIsNTg4MjMsNTg4MjQsNTg4MjUsNTg4MjYsNTg4MjcsNTg4MjgsNTg4MjksNTg4MzAsNTg4MzEsNTg4MzIsNTg4MzMsNTg4MzQsNTg4MzUsNTg4MzYsNTg4Mzcs''@;'; + put 'put ''NTg4MzgsNTg4MzksNTg4NDAsNTg4NDEsNTg4NDIsNTg4NDMsNTg4NDQsNTg4NDUsNTg4NDYsNTg4NDcsNTg4NDgsNTg4NDksNTg4NTAsNTg4NTEsNTg4NTIsMTIyODgsNjUyODEsNjUyODIsNjUyODMsNjU1MDksNjUyODUsNjUyODYsNjUyODcsNjUyODgsNjUyODksNjUyOTAsNjUyOTEsNjUy''@;'; + put 'put ''OTIsNjUyOTMsNjUyOTQsNjUyOTUsNjUyOTYsNjUyOTcsNjUyOTgsNjUyOTksNjUzMDAsNjUzMDEsNjUzMDIsNjUzMDMsNjUzMDQsNjUzMDUsNjUzMDYsNjUzMDcsNjUzMDgsNjUzMDksNjUzMTAsNjUzMTEsNjUzMTIsNjUzMTMsNjUzMTQsNjUzMTUsNjUzMTYsNjUzMTcsNjUzMTgsNjUzMTks''@;'; + put 'put ''NjUzMjAsNjUzMjEsNjUzMjIsNjUzMjMsNjUzMjQsNjUzMjUsNjUzMjYsNjUzMjcsNjUzMjgsNjUzMjksNjUzMzAsNjUzMzEsNjUzMzIsNjUzMzMsNjUzMzQsNjUzMzUsNjUzMzYsNjUzMzcsNjUzMzgsNjUzMzksNjUzNDAsNjUzNDEsNjUzNDIsNjUzNDMsNjUzNDQsNjUzNDUsNjUzNDYsNjUz''@;'; + put 'put ''NDcsNjUzNDgsNjUzNDksNjUzNTAsNjUzNTEsNjUzNTIsNjUzNTMsNjUzNTQsNjUzNTUsNjUzNTYsNjUzNTcsNjUzNTgsNjUzNTksNjUzNjAsNjUzNjEsNjUzNjIsNjUzNjMsNjUzNjQsNjUzNjUsNjUzNjYsNjUzNjcsNjUzNjgsNjUzNjksNjUzNzAsNjUzNzEsNjUzNzIsNjUzNzMsNjU1MDcs''@;'; + put 'put ''NTg4NTQsNTg4NTUsNTg4NTYsNTg4NTcsNTg4NTgsNTg4NTksNTg4NjAsNTg4NjEsNTg4NjIsNTg4NjMsNTg4NjQsNTg4NjUsNTg4NjYsNTg4NjcsNTg4NjgsNTg4NjksNTg4NzAsNTg4NzEsNTg4NzIsNTg4NzMsNTg4NzQsNTg4NzUsNTg4NzYsNTg4NzcsNTg4NzgsNTg4NzksNTg4ODAsNTg4''@;'; + put 'put ''ODEsNTg4ODIsNTg4ODMsNTg4ODQsNTg4ODUsNTg4ODYsNTg4ODcsNTg4ODgsNTg4ODksNTg4OTAsNTg4OTEsNTg4OTIsNTg4OTMsNTg4OTQsNTg4OTUsNTg4OTYsNTg4OTcsNTg4OTgsNTg4OTksNTg5MDAsNTg5MDEsNTg5MDIsNTg5MDMsNTg5MDQsNTg5MDUsNTg5MDYsNTg5MDcsNTg5MDgs''@;'; + put 'put ''NTg5MDksNTg5MTAsNTg5MTEsNTg5MTIsNTg5MTMsNTg5MTQsNTg5MTUsNTg5MTYsNTg5MTcsNTg5MTgsNTg5MTksNTg5MjAsNTg5MjEsNTg5MjIsNTg5MjMsNTg5MjQsNTg5MjUsNTg5MjYsNTg5MjcsNTg5MjgsNTg5MjksNTg5MzAsNTg5MzEsNTg5MzIsNTg5MzMsNTg5MzQsNTg5MzUsNTg5''@;'; + put 'put ''MzYsNTg5MzcsNTg5MzgsNTg5MzksNTg5NDAsNTg5NDEsNTg5NDIsNTg5NDMsNTg5NDQsNTg5NDUsNTg5NDYsNTg5NDcsNTg5NDgsNTg5NDksMTIzNTMsMTIzNTQsMTIzNTUsMTIzNTYsMTIzNTcsMTIzNTgsMTIzNTksMTIzNjAsMTIzNjEsMTIzNjIsMTIzNjMsMTIzNjQsMTIzNjUsMTIzNjYs''@;'; + put 'put ''MTIzNjcsMTIzNjgsMTIzNjksMTIzNzAsMTIzNzEsMTIzNzIsMTIzNzMsMTIzNzQsMTIzNzUsMTIzNzYsMTIzNzcsMTIzNzgsMTIzNzksMTIzODAsMTIzODEsMTIzODIsMTIzODMsMTIzODQsMTIzODUsMTIzODYsMTIzODcsMTIzODgsMTIzODksMTIzOTAsMTIzOTEsMTIzOTIsMTIzOTMsMTIz''@;'; + put 'put ''OTQsMTIzOTUsMTIzOTYsMTIzOTcsMTIzOTgsMTIzOTksMTI0MDAsMTI0MDEsMTI0MDIsMTI0MDMsMTI0MDQsMTI0MDUsMTI0MDYsMTI0MDcsMTI0MDgsMTI0MDksMTI0MTAsMTI0MTEsMTI0MTIsMTI0MTMsMTI0MTQsMTI0MTUsMTI0MTYsMTI0MTcsMTI0MTgsMTI0MTksMTI0MjAsMTI0MjEs''@;'; + put 'put ''MTI0MjIsMTI0MjMsMTI0MjQsMTI0MjUsMTI0MjYsMTI0MjcsMTI0MjgsMTI0MjksMTI0MzAsMTI0MzEsMTI0MzIsMTI0MzMsMTI0MzQsMTI0MzUsNTkyNTAsNTkyNTEsNTkyNTIsNTkyNTMsNTkyNTQsNTkyNTUsNTkyNTYsNTkyNTcsNTkyNTgsNTkyNTksNTkyNjAsNTg5NTAsNTg5NTEsNTg5''@;'; + put 'put ''NTIsNTg5NTMsNTg5NTQsNTg5NTUsNTg5NTYsNTg5NTcsNTg5NTgsNTg5NTksNTg5NjAsNTg5NjEsNTg5NjIsNTg5NjMsNTg5NjQsNTg5NjUsNTg5NjYsNTg5NjcsNTg5NjgsNTg5NjksNTg5NzAsNTg5NzEsNTg5NzIsNTg5NzMsNTg5NzQsNTg5NzUsNTg5NzYsNTg5NzcsNTg5NzgsNTg5Nzks''@;'; + put 'put ''NTg5ODAsNTg5ODEsNTg5ODIsNTg5ODMsNTg5ODQsNTg5ODUsNTg5ODYsNTg5ODcsNTg5ODgsNTg5ODksNTg5OTAsNTg5OTEsNTg5OTIsNTg5OTMsNTg5OTQsNTg5OTUsNTg5OTYsNTg5OTcsNTg5OTgsNTg5OTksNTllMyw1OTAwMSw1OTAwMiw1OTAwMyw1OTAwNCw1OTAwNSw1OTAwNiw1OTAw''@;'; + put 'put ''Nyw1OTAwOCw1OTAwOSw1OTAxMCw1OTAxMSw1OTAxMiw1OTAxMyw1OTAxNCw1OTAxNSw1OTAxNiw1OTAxNyw1OTAxOCw1OTAxOSw1OTAyMCw1OTAyMSw1OTAyMiw1OTAyMyw1OTAyNCw1OTAyNSw1OTAyNiw1OTAyNyw1OTAyOCw1OTAyOSw1OTAzMCw1OTAzMSw1OTAzMiw1OTAzMyw1OTAzNCw1''@;'; + put 'put ''OTAzNSw1OTAzNiw1OTAzNyw1OTAzOCw1OTAzOSw1OTA0MCw1OTA0MSw1OTA0Miw1OTA0Myw1OTA0NCw1OTA0NSwxMjQ0OSwxMjQ1MCwxMjQ1MSwxMjQ1MiwxMjQ1MywxMjQ1NCwxMjQ1NSwxMjQ1NiwxMjQ1NywxMjQ1OCwxMjQ1OSwxMjQ2MCwxMjQ2MSwxMjQ2MiwxMjQ2MywxMjQ2NCwxMjQ2''@;'; + put 'put ''NSwxMjQ2NiwxMjQ2NywxMjQ2OCwxMjQ2OSwxMjQ3MCwxMjQ3MSwxMjQ3MiwxMjQ3MywxMjQ3NCwxMjQ3NSwxMjQ3NiwxMjQ3NywxMjQ3OCwxMjQ3OSwxMjQ4MCwxMjQ4MSwxMjQ4MiwxMjQ4MywxMjQ4NCwxMjQ4NSwxMjQ4NiwxMjQ4NywxMjQ4OCwxMjQ4OSwxMjQ5MCwxMjQ5MSwxMjQ5Miwx''@;'; + put 'put ''MjQ5MywxMjQ5NCwxMjQ5NSwxMjQ5NiwxMjQ5NywxMjQ5OCwxMjQ5OSwxMjUwMCwxMjUwMSwxMjUwMiwxMjUwMywxMjUwNCwxMjUwNSwxMjUwNiwxMjUwNywxMjUwOCwxMjUwOSwxMjUxMCwxMjUxMSwxMjUxMiwxMjUxMywxMjUxNCwxMjUxNSwxMjUxNiwxMjUxNywxMjUxOCwxMjUxOSwxMjUy''@;'; + put 'put ''MCwxMjUyMSwxMjUyMiwxMjUyMywxMjUyNCwxMjUyNSwxMjUyNiwxMjUyNywxMjUyOCwxMjUyOSwxMjUzMCwxMjUzMSwxMjUzMiwxMjUzMywxMjUzNCw1OTI2MSw1OTI2Miw1OTI2Myw1OTI2NCw1OTI2NSw1OTI2Niw1OTI2Nyw1OTI2OCw1OTA0Niw1OTA0Nyw1OTA0OCw1OTA0OSw1OTA1MCw1''@;'; + put 'put ''OTA1MSw1OTA1Miw1OTA1Myw1OTA1NCw1OTA1NSw1OTA1Niw1OTA1Nyw1OTA1OCw1OTA1OSw1OTA2MCw1OTA2MSw1OTA2Miw1OTA2Myw1OTA2NCw1OTA2NSw1OTA2Niw1OTA2Nyw1OTA2OCw1OTA2OSw1OTA3MCw1OTA3MSw1OTA3Miw1OTA3Myw1OTA3NCw1OTA3NSw1OTA3Niw1OTA3Nyw1OTA3''@;'; + put 'put ''OCw1OTA3OSw1OTA4MCw1OTA4MSw1OTA4Miw1OTA4Myw1OTA4NCw1OTA4NSw1OTA4Niw1OTA4Nyw1OTA4OCw1OTA4OSw1OTA5MCw1OTA5MSw1OTA5Miw1OTA5Myw1OTA5NCw1OTA5NSw1OTA5Niw1OTA5Nyw1OTA5OCw1OTA5OSw1OTEwMCw1OTEwMSw1OTEwMiw1OTEwMyw1OTEwNCw1OTEwNSw1''@;'; + put 'put ''OTEwNiw1OTEwNyw1OTEwOCw1OTEwOSw1OTExMCw1OTExMSw1OTExMiw1OTExMyw1OTExNCw1OTExNSw1OTExNiw1OTExNyw1OTExOCw1OTExOSw1OTEyMCw1OTEyMSw1OTEyMiw1OTEyMyw1OTEyNCw1OTEyNSw1OTEyNiw1OTEyNyw1OTEyOCw1OTEyOSw1OTEzMCw1OTEzMSw1OTEzMiw1OTEz''@;'; + put 'put ''Myw1OTEzNCw1OTEzNSw1OTEzNiw1OTEzNyw1OTEzOCw1OTEzOSw1OTE0MCw1OTE0MSw5MTMsOTE0LDkxNSw5MTYsOTE3LDkxOCw5MTksOTIwLDkyMSw5MjIsOTIzLDkyNCw5MjUsOTI2LDkyNyw5MjgsOTI5LDkzMSw5MzIsOTMzLDkzNCw5MzUsOTM2LDkzNyw1OTI2OSw1OTI3MCw1OTI3MSw1''@;'; + put 'put ''OTI3Miw1OTI3Myw1OTI3NCw1OTI3NSw1OTI3Niw5NDUsOTQ2LDk0Nyw5NDgsOTQ5LDk1MCw5NTEsOTUyLDk1Myw5NTQsOTU1LDk1Niw5NTcsOTU4LDk1OSw5NjAsOTYxLDk2Myw5NjQsOTY1LDk2Niw5NjcsOTY4LDk2OSw1OTI3Nyw1OTI3OCw1OTI3OSw1OTI4MCw1OTI4MSw1OTI4Miw1OTI4''@;'; + put 'put ''Myw2NTA3Nyw2NTA3OCw2NTA4MSw2NTA4Miw2NTA4Nyw2NTA4OCw2NTA4NSw2NTA4Niw2NTA4OSw2NTA5MCw2NTA5MSw2NTA5Miw1OTI4NCw1OTI4NSw2NTA4Myw2NTA4NCw2NTA3OSw2NTA4MCw2NTA3Myw1OTI4Niw2NTA3NSw2NTA3Niw1OTI4Nyw1OTI4OCw1OTI4OSw1OTI5MCw1OTI5MSw1''@;'; + put 'put ''OTI5Miw1OTI5Myw1OTI5NCw1OTI5NSw1OTE0Miw1OTE0Myw1OTE0NCw1OTE0NSw1OTE0Niw1OTE0Nyw1OTE0OCw1OTE0OSw1OTE1MCw1OTE1MSw1OTE1Miw1OTE1Myw1OTE1NCw1OTE1NSw1OTE1Niw1OTE1Nyw1OTE1OCw1OTE1OSw1OTE2MCw1OTE2MSw1OTE2Miw1OTE2Myw1OTE2NCw1OTE2''@;'; + put 'put ''NSw1OTE2Niw1OTE2Nyw1OTE2OCw1OTE2OSw1OTE3MCw1OTE3MSw1OTE3Miw1OTE3Myw1OTE3NCw1OTE3NSw1OTE3Niw1OTE3Nyw1OTE3OCw1OTE3OSw1OTE4MCw1OTE4MSw1OTE4Miw1OTE4Myw1OTE4NCw1OTE4NSw1OTE4Niw1OTE4Nyw1OTE4OCw1OTE4OSw1OTE5MCw1OTE5MSw1OTE5Miw1''@;'; + put 'put ''OTE5Myw1OTE5NCw1OTE5NSw1OTE5Niw1OTE5Nyw1OTE5OCw1OTE5OSw1OTIwMCw1OTIwMSw1OTIwMiw1OTIwMyw1OTIwNCw1OTIwNSw1OTIwNiw1OTIwNyw1OTIwOCw1OTIwOSw1OTIxMCw1OTIxMSw1OTIxMiw1OTIxMyw1OTIxNCw1OTIxNSw1OTIxNiw1OTIxNyw1OTIxOCw1OTIxOSw1OTIy''@;'; + put 'put ''MCw1OTIyMSw1OTIyMiw1OTIyMyw1OTIyNCw1OTIyNSw1OTIyNiw1OTIyNyw1OTIyOCw1OTIyOSw1OTIzMCw1OTIzMSw1OTIzMiw1OTIzMyw1OTIzNCw1OTIzNSw1OTIzNiw1OTIzNywxMDQwLDEwNDEsMTA0MiwxMDQzLDEwNDQsMTA0NSwxMDI1LDEwNDYsMTA0NywxMDQ4LDEwNDksMTA1MCwx''@;'; + put 'put ''MDUxLDEwNTIsMTA1MywxMDU0LDEwNTUsMTA1NiwxMDU3LDEwNTgsMTA1OSwxMDYwLDEwNjEsMTA2MiwxMDYzLDEwNjQsMTA2NSwxMDY2LDEwNjcsMTA2OCwxMDY5LDEwNzAsMTA3MSw1OTI5Niw1OTI5Nyw1OTI5OCw1OTI5OSw1OTMwMCw1OTMwMSw1OTMwMiw1OTMwMyw1OTMwNCw1OTMwNSw1''@;'; + put 'put ''OTMwNiw1OTMwNyw1OTMwOCw1OTMwOSw1OTMxMCwxMDcyLDEwNzMsMTA3NCwxMDc1LDEwNzYsMTA3NywxMTA1LDEwNzgsMTA3OSwxMDgwLDEwODEsMTA4MiwxMDgzLDEwODQsMTA4NSwxMDg2LDEwODcsMTA4OCwxMDg5LDEwOTAsMTA5MSwxMDkyLDEwOTMsMTA5NCwxMDk1LDEwOTYsMTA5Nywx''@;'; + put 'put ''MDk4LDEwOTksMTEwMCwxMTAxLDExMDIsMTEwMyw1OTMxMSw1OTMxMiw1OTMxMyw1OTMxNCw1OTMxNSw1OTMxNiw1OTMxNyw1OTMxOCw1OTMxOSw1OTMyMCw1OTMyMSw1OTMyMiw1OTMyMyw3MTQsNzE1LDcyOSw4MjExLDgyMTMsODIyOSw4MjQ1LDg0NTMsODQ1Nyw4NTk4LDg1OTksODYwMCw4''@;'; + put 'put ''NjAxLDg3MjUsODczNSw4NzM5LDg3ODYsODgwNiw4ODA3LDg4OTUsOTU1Miw5NTUzLDk1NTQsOTU1NSw5NTU2LDk1NTcsOTU1OCw5NTU5LDk1NjAsOTU2MSw5NTYyLDk1NjMsOTU2NCw5NTY1LDk1NjYsOTU2Nyw5NTY4LDk1NjksOTU3MCw5NTcxLDk1NzIsOTU3Myw5NTc0LDk1NzUsOTU3Niw5''@;'; + put 'put ''NTc3LDk1NzgsOTU3OSw5NTgwLDk1ODEsOTU4Miw5NTgzLDk1ODQsOTU4NSw5NTg2LDk1ODcsOTYwMSw5NjAyLDk2MDMsOTYwNCw5NjA1LDk2MDYsOTYwNyw5NjA4LDk2MDksOTYxMCw5NjExLDk2MTIsOTYxMyw5NjE0LDk2MTUsOTYxOSw5NjIwLDk2MjEsOTY2MCw5NjYxLDk2OTgsOTY5OSw5''@;'; + put 'put ''NzAwLDk3MDEsOTczNyw4ODUzLDEyMzA2LDEyMzE3LDEyMzE4LDU5MzI0LDU5MzI1LDU5MzI2LDU5MzI3LDU5MzI4LDU5MzI5LDU5MzMwLDU5MzMxLDU5MzMyLDU5MzMzLDU5MzM0LDI1NywyMjUsNDYyLDIyNCwyNzUsMjMzLDI4MywyMzIsMjk5LDIzNyw0NjQsMjM2LDMzMywyNDMsNDY2LDI0''@;'; + put 'put ''MiwzNjMsMjUwLDQ2OCwyNDksNDcwLDQ3Miw0NzQsNDc2LDI1MiwyMzQsNTkzLDc3NDMsMzI0LDMyOCw1MDUsNjA5LDU5MzM3LDU5MzM4LDU5MzM5LDU5MzQwLDEyNTQ5LDEyNTUwLDEyNTUxLDEyNTUyLDEyNTUzLDEyNTU0LDEyNTU1LDEyNTU2LDEyNTU3LDEyNTU4LDEyNTU5LDEyNTYwLDEy''@;'; + put 'put ''NTYxLDEyNTYyLDEyNTYzLDEyNTY0LDEyNTY1LDEyNTY2LDEyNTY3LDEyNTY4LDEyNTY5LDEyNTcwLDEyNTcxLDEyNTcyLDEyNTczLDEyNTc0LDEyNTc1LDEyNTc2LDEyNTc3LDEyNTc4LDEyNTc5LDEyNTgwLDEyNTgxLDEyNTgyLDEyNTgzLDEyNTg0LDEyNTg1LDU5MzQxLDU5MzQyLDU5MzQz''@;'; + put 'put ''LDU5MzQ0LDU5MzQ1LDU5MzQ2LDU5MzQ3LDU5MzQ4LDU5MzQ5LDU5MzUwLDU5MzUxLDU5MzUyLDU5MzUzLDU5MzU0LDU5MzU1LDU5MzU2LDU5MzU3LDU5MzU4LDU5MzU5LDU5MzYwLDU5MzYxLDEyMzIxLDEyMzIyLDEyMzIzLDEyMzI0LDEyMzI1LDEyMzI2LDEyMzI3LDEyMzI4LDEyMzI5LDEy''@;'; + put 'put ''OTYzLDEzMTk4LDEzMTk5LDEzMjEyLDEzMjEzLDEzMjE0LDEzMjE3LDEzMjUyLDEzMjYyLDEzMjY1LDEzMjY2LDEzMjY5LDY1MDcyLDY1NTA2LDY1NTA4LDU5MzYyLDg0ODEsMTI4NDksNTkzNjMsODIwOCw1OTM2NCw1OTM2NSw1OTM2NiwxMjU0MCwxMjQ0MywxMjQ0NCwxMjU0MSwxMjU0Miwx''@;'; + put 'put ''MjI5NCwxMjQ0NSwxMjQ0Niw2NTA5Nyw2NTA5OCw2NTA5OSw2NTEwMCw2NTEwMSw2NTEwMiw2NTEwMyw2NTEwNCw2NTEwNSw2NTEwNiw2NTEwOCw2NTEwOSw2NTExMCw2NTExMSw2NTExMyw2NTExNCw2NTExNSw2NTExNiw2NTExNyw2NTExOCw2NTExOSw2NTEyMCw2NTEyMSw2NTEyMiw2NTEy''@;'; + put 'put ''Myw2NTEyNCw2NTEyNSw2NTEyNiw2NTEyOCw2NTEyOSw2NTEzMCw2NTEzMSwxMjM1MCwxMjI3MiwxMjI3MywxMjI3NCwxMjI3NSwxMjI3NiwxMjI3NywxMjI3OCwxMjI3OSwxMjI4MCwxMjI4MSwxMjI4MiwxMjI4MywxMjI5NSw1OTM4MCw1OTM4MSw1OTM4Miw1OTM4Myw1OTM4NCw1OTM4NSw1''@;'; + put 'put ''OTM4Niw1OTM4Nyw1OTM4OCw1OTM4OSw1OTM5MCw1OTM5MSw1OTM5Miw5NDcyLDk0NzMsOTQ3NCw5NDc1LDk0NzYsOTQ3Nyw5NDc4LDk0NzksOTQ4MCw5NDgxLDk0ODIsOTQ4Myw5NDg0LDk0ODUsOTQ4Niw5NDg3LDk0ODgsOTQ4OSw5NDkwLDk0OTEsOTQ5Miw5NDkzLDk0OTQsOTQ5NSw5NDk2''@;'; + put 'put ''LDk0OTcsOTQ5OCw5NDk5LDk1MDAsOTUwMSw5NTAyLDk1MDMsOTUwNCw5NTA1LDk1MDYsOTUwNyw5NTA4LDk1MDksOTUxMCw5NTExLDk1MTIsOTUxMyw5NTE0LDk1MTUsOTUxNiw5NTE3LDk1MTgsOTUxOSw5NTIwLDk1MjEsOTUyMiw5NTIzLDk1MjQsOTUyNSw5NTI2LDk1MjcsOTUyOCw5NTI5''@;'; + put 'put ''LDk1MzAsOTUzMSw5NTMyLDk1MzMsOTUzNCw5NTM1LDk1MzYsOTUzNyw5NTM4LDk1MzksOTU0MCw5NTQxLDk1NDIsOTU0Myw5NTQ0LDk1NDUsOTU0Niw5NTQ3LDU5MzkzLDU5Mzk0LDU5Mzk1LDU5Mzk2LDU5Mzk3LDU5Mzk4LDU5Mzk5LDU5NDAwLDU5NDAxLDU5NDAyLDU5NDAzLDU5NDA0LDU5''@;'; + put 'put ''NDA1LDU5NDA2LDU5NDA3LDI5NDA0LDI5NDA1LDI5NDA3LDI5NDEwLDI5NDExLDI5NDEyLDI5NDEzLDI5NDE0LDI5NDE1LDI5NDE4LDI5NDE5LDI5NDI5LDI5NDMwLDI5NDMzLDI5NDM3LDI5NDM4LDI5NDM5LDI5NDQwLDI5NDQyLDI5NDQ0LDI5NDQ1LDI5NDQ2LDI5NDQ3LDI5NDQ4LDI5NDQ5''@;'; + put 'put ''LDI5NDUxLDI5NDUyLDI5NDUzLDI5NDU1LDI5NDU2LDI5NDU3LDI5NDU4LDI5NDYwLDI5NDY0LDI5NDY1LDI5NDY2LDI5NDcxLDI5NDcyLDI5NDc1LDI5NDc2LDI5NDc4LDI5NDc5LDI5NDgwLDI5NDg1LDI5NDg3LDI5NDg4LDI5NDkwLDI5NDkxLDI5NDkzLDI5NDk0LDI5NDk4LDI5NDk5LDI5''@;'; + put 'put ''NTAwLDI5NTAxLDI5NTA0LDI5NTA1LDI5NTA2LDI5NTA3LDI5NTA4LDI5NTA5LDI5NTEwLDI5NTExLDI5NTEyLDI5NTEzLDI5NTE0LDI5NTE1LDI5NTE2LDI5NTE4LDI5NTE5LDI5NTIxLDI5NTIzLDI5NTI0LDI5NTI1LDI5NTI2LDI5NTI4LDI5NTI5LDI5NTMwLDI5NTMxLDI5NTMyLDI5NTMz''@;'; + put 'put ''LDI5NTM0LDI5NTM1LDI5NTM3LDI5NTM4LDI5NTM5LDI5NTQwLDI5NTQxLDI5NTQyLDI5NTQzLDI5NTQ0LDI5NTQ1LDI5NTQ2LDI5NTQ3LDI5NTUwLDI5NTUyLDI5NTUzLDU3MzQ0LDU3MzQ1LDU3MzQ2LDU3MzQ3LDU3MzQ4LDU3MzQ5LDU3MzUwLDU3MzUxLDU3MzUyLDU3MzUzLDU3MzU0LDU3''@;'; + put 'put ''MzU1LDU3MzU2LDU3MzU3LDU3MzU4LDU3MzU5LDU3MzYwLDU3MzYxLDU3MzYyLDU3MzYzLDU3MzY0LDU3MzY1LDU3MzY2LDU3MzY3LDU3MzY4LDU3MzY5LDU3MzcwLDU3MzcxLDU3MzcyLDU3MzczLDU3Mzc0LDU3Mzc1LDU3Mzc2LDU3Mzc3LDU3Mzc4LDU3Mzc5LDU3MzgwLDU3MzgxLDU3Mzgy''@;'; + put 'put ''LDU3MzgzLDU3Mzg0LDU3Mzg1LDU3Mzg2LDU3Mzg3LDU3Mzg4LDU3Mzg5LDU3MzkwLDU3MzkxLDU3MzkyLDU3MzkzLDU3Mzk0LDU3Mzk1LDU3Mzk2LDU3Mzk3LDU3Mzk4LDU3Mzk5LDU3NDAwLDU3NDAxLDU3NDAyLDU3NDAzLDU3NDA0LDU3NDA1LDU3NDA2LDU3NDA3LDU3NDA4LDU3NDA5LDU3''@;'; + put 'put ''NDEwLDU3NDExLDU3NDEyLDU3NDEzLDU3NDE0LDU3NDE1LDU3NDE2LDU3NDE3LDU3NDE4LDU3NDE5LDU3NDIwLDU3NDIxLDU3NDIyLDU3NDIzLDU3NDI0LDU3NDI1LDU3NDI2LDU3NDI3LDU3NDI4LDU3NDI5LDU3NDMwLDU3NDMxLDU3NDMyLDU3NDMzLDU3NDM0LDU3NDM1LDU3NDM2LDU3NDM3''@;'; + put 'put ''LDI5NTU0LDI5NTU1LDI5NTU2LDI5NTU3LDI5NTU4LDI5NTU5LDI5NTYwLDI5NTYxLDI5NTYyLDI5NTYzLDI5NTY0LDI5NTY1LDI5NTY3LDI5NTY4LDI5NTY5LDI5NTcwLDI5NTcxLDI5NTczLDI5NTc0LDI5NTc2LDI5NTc4LDI5NTgwLDI5NTgxLDI5NTgzLDI5NTg0LDI5NTg2LDI5NTg3LDI5''@;'; + put 'put ''NTg4LDI5NTg5LDI5NTkxLDI5NTkyLDI5NTkzLDI5NTk0LDI5NTk2LDI5NTk3LDI5NTk4LDI5NjAwLDI5NjAxLDI5NjAzLDI5NjA0LDI5NjA1LDI5NjA2LDI5NjA3LDI5NjA4LDI5NjEwLDI5NjEyLDI5NjEzLDI5NjE3LDI5NjIwLDI5NjIxLDI5NjIyLDI5NjI0LDI5NjI1LDI5NjI4LDI5NjI5''@;'; + put 'put ''LDI5NjMwLDI5NjMxLDI5NjMzLDI5NjM1LDI5NjM2LDI5NjM3LDI5NjM4LDI5NjM5LDI5NjQzLDI5NjQ0LDI5NjQ2LDI5NjUwLDI5NjUxLDI5NjUyLDI5NjUzLDI5NjU0LDI5NjU1LDI5NjU2LDI5NjU4LDI5NjU5LDI5NjYwLDI5NjYxLDI5NjYzLDI5NjY1LDI5NjY2LDI5NjY3LDI5NjY4LDI5''@;'; + put 'put ''NjcwLDI5NjcyLDI5Njc0LDI5Njc1LDI5Njc2LDI5Njc4LDI5Njc5LDI5NjgwLDI5NjgxLDI5NjgzLDI5Njg0LDI5Njg1LDI5Njg2LDI5Njg3LDU3NDM4LDU3NDM5LDU3NDQwLDU3NDQxLDU3NDQyLDU3NDQzLDU3NDQ0LDU3NDQ1LDU3NDQ2LDU3NDQ3LDU3NDQ4LDU3NDQ5LDU3NDUwLDU3NDUx''@;'; + put 'put ''LDU3NDUyLDU3NDUzLDU3NDU0LDU3NDU1LDU3NDU2LDU3NDU3LDU3NDU4LDU3NDU5LDU3NDYwLDU3NDYxLDU3NDYyLDU3NDYzLDU3NDY0LDU3NDY1LDU3NDY2LDU3NDY3LDU3NDY4LDU3NDY5LDU3NDcwLDU3NDcxLDU3NDcyLDU3NDczLDU3NDc0LDU3NDc1LDU3NDc2LDU3NDc3LDU3NDc4LDU3''@;'; + put 'put ''NDc5LDU3NDgwLDU3NDgxLDU3NDgyLDU3NDgzLDU3NDg0LDU3NDg1LDU3NDg2LDU3NDg3LDU3NDg4LDU3NDg5LDU3NDkwLDU3NDkxLDU3NDkyLDU3NDkzLDU3NDk0LDU3NDk1LDU3NDk2LDU3NDk3LDU3NDk4LDU3NDk5LDU3NTAwLDU3NTAxLDU3NTAyLDU3NTAzLDU3NTA0LDU3NTA1LDU3NTA2''@;'; + put 'put ''LDU3NTA3LDU3NTA4LDU3NTA5LDU3NTEwLDU3NTExLDU3NTEyLDU3NTEzLDU3NTE0LDU3NTE1LDU3NTE2LDU3NTE3LDU3NTE4LDU3NTE5LDU3NTIwLDU3NTIxLDU3NTIyLDU3NTIzLDU3NTI0LDU3NTI1LDU3NTI2LDU3NTI3LDU3NTI4LDU3NTI5LDU3NTMwLDU3NTMxLDI5Njg4LDI5Njg5LDI5''@;'; + put 'put ''NjkwLDI5NjkxLDI5NjkyLDI5NjkzLDI5Njk0LDI5Njk1LDI5Njk2LDI5Njk3LDI5Njk4LDI5NzAwLDI5NzAzLDI5NzA0LDI5NzA3LDI5NzA4LDI5NzA5LDI5NzEwLDI5NzEzLDI5NzE0LDI5NzE1LDI5NzE2LDI5NzE3LDI5NzE4LDI5NzE5LDI5NzIwLDI5NzIxLDI5NzI0LDI5NzI1LDI5NzI2''@;'; + put 'put ''LDI5NzI3LDI5NzI4LDI5NzI5LDI5NzMxLDI5NzMyLDI5NzM1LDI5NzM3LDI5NzM5LDI5NzQxLDI5NzQzLDI5NzQ1LDI5NzQ2LDI5NzUxLDI5NzUyLDI5NzUzLDI5NzU0LDI5NzU1LDI5NzU3LDI5NzU4LDI5NzU5LDI5NzYwLDI5NzYyLDI5NzYzLDI5NzY0LDI5NzY1LDI5NzY2LDI5NzY3LDI5''@;'; + put 'put ''NzY4LDI5NzY5LDI5NzcwLDI5NzcxLDI5NzcyLDI5NzczLDI5Nzc0LDI5Nzc1LDI5Nzc2LDI5Nzc3LDI5Nzc4LDI5Nzc5LDI5NzgwLDI5NzgyLDI5Nzg0LDI5Nzg5LDI5NzkyLDI5NzkzLDI5Nzk0LDI5Nzk1LDI5Nzk2LDI5Nzk3LDI5Nzk4LDI5Nzk5LDI5ODAwLDI5ODAxLDI5ODAyLDI5ODAz''@;'; + put 'put ''LDI5ODA0LDI5ODA2LDI5ODA3LDI5ODA5LDI5ODEwLDI5ODExLDI5ODEyLDI5ODEzLDI5ODE2LDI5ODE3LDI5ODE4LDU3NTMyLDU3NTMzLDU3NTM0LDU3NTM1LDU3NTM2LDU3NTM3LDU3NTM4LDU3NTM5LDU3NTQwLDU3NTQxLDU3NTQyLDU3NTQzLDU3NTQ0LDU3NTQ1LDU3NTQ2LDU3NTQ3LDU3''@;'; + put 'put ''NTQ4LDU3NTQ5LDU3NTUwLDU3NTUxLDU3NTUyLDU3NTUzLDU3NTU0LDU3NTU1LDU3NTU2LDU3NTU3LDU3NTU4LDU3NTU5LDU3NTYwLDU3NTYxLDU3NTYyLDU3NTYzLDU3NTY0LDU3NTY1LDU3NTY2LDU3NTY3LDU3NTY4LDU3NTY5LDU3NTcwLDU3NTcxLDU3NTcyLDU3NTczLDU3NTc0LDU3NTc1''@;'; + put 'put ''LDU3NTc2LDU3NTc3LDU3NTc4LDU3NTc5LDU3NTgwLDU3NTgxLDU3NTgyLDU3NTgzLDU3NTg0LDU3NTg1LDU3NTg2LDU3NTg3LDU3NTg4LDU3NTg5LDU3NTkwLDU3NTkxLDU3NTkyLDU3NTkzLDU3NTk0LDU3NTk1LDU3NTk2LDU3NTk3LDU3NTk4LDU3NTk5LDU3NjAwLDU3NjAxLDU3NjAyLDU3''@;'; + put 'put ''NjAzLDU3NjA0LDU3NjA1LDU3NjA2LDU3NjA3LDU3NjA4LDU3NjA5LDU3NjEwLDU3NjExLDU3NjEyLDU3NjEzLDU3NjE0LDU3NjE1LDU3NjE2LDU3NjE3LDU3NjE4LDU3NjE5LDU3NjIwLDU3NjIxLDU3NjIyLDU3NjIzLDU3NjI0LDU3NjI1LDI5ODE5LDI5ODIwLDI5ODIxLDI5ODIzLDI5ODI2''@;'; + put 'put ''LDI5ODI4LDI5ODI5LDI5ODMwLDI5ODMyLDI5ODMzLDI5ODM0LDI5ODM2LDI5ODM3LDI5ODM5LDI5ODQxLDI5ODQyLDI5ODQzLDI5ODQ0LDI5ODQ1LDI5ODQ2LDI5ODQ3LDI5ODQ4LDI5ODQ5LDI5ODUwLDI5ODUxLDI5ODUzLDI5ODU1LDI5ODU2LDI5ODU3LDI5ODU4LDI5ODU5LDI5ODYwLDI5''@;'; + put 'put ''ODYxLDI5ODYyLDI5ODY2LDI5ODY3LDI5ODY4LDI5ODY5LDI5ODcwLDI5ODcxLDI5ODcyLDI5ODczLDI5ODc0LDI5ODc1LDI5ODc2LDI5ODc3LDI5ODc4LDI5ODc5LDI5ODgwLDI5ODgxLDI5ODgzLDI5ODg0LDI5ODg1LDI5ODg2LDI5ODg3LDI5ODg4LDI5ODg5LDI5ODkwLDI5ODkxLDI5ODky''@;'; + put 'put ''LDI5ODkzLDI5ODk0LDI5ODk1LDI5ODk2LDI5ODk3LDI5ODk4LDI5ODk5LDI5OTAwLDI5OTAxLDI5OTAyLDI5OTAzLDI5OTA0LDI5OTA1LDI5OTA3LDI5OTA4LDI5OTA5LDI5OTEwLDI5OTExLDI5OTEyLDI5OTEzLDI5OTE0LDI5OTE1LDI5OTE3LDI5OTE5LDI5OTIxLDI5OTI1LDI5OTI3LDI5''@;'; + put 'put ''OTI4LDI5OTI5LDI5OTMwLDI5OTMxLDI5OTMyLDI5OTMzLDI5OTM2LDI5OTM3LDI5OTM4LDU3NjI2LDU3NjI3LDU3NjI4LDU3NjI5LDU3NjMwLDU3NjMxLDU3NjMyLDU3NjMzLDU3NjM0LDU3NjM1LDU3NjM2LDU3NjM3LDU3NjM4LDU3NjM5LDU3NjQwLDU3NjQxLDU3NjQyLDU3NjQzLDU3NjQ0''@;'; + put 'put ''LDU3NjQ1LDU3NjQ2LDU3NjQ3LDU3NjQ4LDU3NjQ5LDU3NjUwLDU3NjUxLDU3NjUyLDU3NjUzLDU3NjU0LDU3NjU1LDU3NjU2LDU3NjU3LDU3NjU4LDU3NjU5LDU3NjYwLDU3NjYxLDU3NjYyLDU3NjYzLDU3NjY0LDU3NjY1LDU3NjY2LDU3NjY3LDU3NjY4LDU3NjY5LDU3NjcwLDU3NjcxLDU3''@;'; + put 'put ''NjcyLDU3NjczLDU3Njc0LDU3Njc1LDU3Njc2LDU3Njc3LDU3Njc4LDU3Njc5LDU3NjgwLDU3NjgxLDU3NjgyLDU3NjgzLDU3Njg0LDU3Njg1LDU3Njg2LDU3Njg3LDU3Njg4LDU3Njg5LDU3NjkwLDU3NjkxLDU3NjkyLDU3NjkzLDU3Njk0LDU3Njk1LDU3Njk2LDU3Njk3LDU3Njk4LDU3Njk5''@;'; + put 'put ''LDU3NzAwLDU3NzAxLDU3NzAyLDU3NzAzLDU3NzA0LDU3NzA1LDU3NzA2LDU3NzA3LDU3NzA4LDU3NzA5LDU3NzEwLDU3NzExLDU3NzEyLDU3NzEzLDU3NzE0LDU3NzE1LDU3NzE2LDU3NzE3LDU3NzE4LDU3NzE5LDI5OTM5LDI5OTQxLDI5OTQ0LDI5OTQ1LDI5OTQ2LDI5OTQ3LDI5OTQ4LDI5''@;'; + put 'put ''OTQ5LDI5OTUwLDI5OTUyLDI5OTUzLDI5OTU0LDI5OTU1LDI5OTU3LDI5OTU4LDI5OTU5LDI5OTYwLDI5OTYxLDI5OTYyLDI5OTYzLDI5OTY0LDI5OTY2LDI5OTY4LDI5OTcwLDI5OTcyLDI5OTczLDI5OTc0LDI5OTc1LDI5OTc5LDI5OTgxLDI5OTgyLDI5OTg0LDI5OTg1LDI5OTg2LDI5OTg3''@;'; + put 'put ''LDI5OTg4LDI5OTkwLDI5OTkxLDI5OTk0LDI5OTk4LDMwMDA0LDMwMDA2LDMwMDA5LDMwMDEyLDMwMDEzLDMwMDE1LDMwMDE3LDMwMDE4LDMwMDE5LDMwMDIwLDMwMDIyLDMwMDIzLDMwMDI1LDMwMDI2LDMwMDI5LDMwMDMyLDMwMDMzLDMwMDM0LDMwMDM1LDMwMDM3LDMwMDM4LDMwMDM5LDMw''@;'; + put 'put ''MDQwLDMwMDQ1LDMwMDQ2LDMwMDQ3LDMwMDQ4LDMwMDQ5LDMwMDUwLDMwMDUxLDMwMDUyLDMwMDU1LDMwMDU2LDMwMDU3LDMwMDU5LDMwMDYwLDMwMDYxLDMwMDYyLDMwMDYzLDMwMDY0LDMwMDY1LDMwMDY3LDMwMDY5LDMwMDcwLDMwMDcxLDMwMDc0LDMwMDc1LDMwMDc2LDMwMDc3LDMwMDc4''@;'; + put 'put ''LDMwMDgwLDMwMDgxLDMwMDgyLDMwMDg0LDMwMDg1LDMwMDg3LDU3NzIwLDU3NzIxLDU3NzIyLDU3NzIzLDU3NzI0LDU3NzI1LDU3NzI2LDU3NzI3LDU3NzI4LDU3NzI5LDU3NzMwLDU3NzMxLDU3NzMyLDU3NzMzLDU3NzM0LDU3NzM1LDU3NzM2LDU3NzM3LDU3NzM4LDU3NzM5LDU3NzQwLDU3''@;'; + put 'put ''NzQxLDU3NzQyLDU3NzQzLDU3NzQ0LDU3NzQ1LDU3NzQ2LDU3NzQ3LDU3NzQ4LDU3NzQ5LDU3NzUwLDU3NzUxLDU3NzUyLDU3NzUzLDU3NzU0LDU3NzU1LDU3NzU2LDU3NzU3LDU3NzU4LDU3NzU5LDU3NzYwLDU3NzYxLDU3NzYyLDU3NzYzLDU3NzY0LDU3NzY1LDU3NzY2LDU3NzY3LDU3NzY4''@;'; + put 'put ''LDU3NzY5LDU3NzcwLDU3NzcxLDU3NzcyLDU3NzczLDU3Nzc0LDU3Nzc1LDU3Nzc2LDU3Nzc3LDU3Nzc4LDU3Nzc5LDU3NzgwLDU3NzgxLDU3NzgyLDU3NzgzLDU3Nzg0LDU3Nzg1LDU3Nzg2LDU3Nzg3LDU3Nzg4LDU3Nzg5LDU3NzkwLDU3NzkxLDU3NzkyLDU3NzkzLDU3Nzk0LDU3Nzk1LDU3''@;'; + put 'put ''Nzk2LDU3Nzk3LDU3Nzk4LDU3Nzk5LDU3ODAwLDU3ODAxLDU3ODAyLDU3ODAzLDU3ODA0LDU3ODA1LDU3ODA2LDU3ODA3LDU3ODA4LDU3ODA5LDU3ODEwLDU3ODExLDU3ODEyLDU3ODEzLDMwMDg4LDMwMDg5LDMwMDkwLDMwMDkyLDMwMDkzLDMwMDk0LDMwMDk2LDMwMDk5LDMwMTAxLDMwMTA0''@;'; + put 'put ''LDMwMTA3LDMwMTA4LDMwMTEwLDMwMTE0LDMwMTE4LDMwMTE5LDMwMTIwLDMwMTIxLDMwMTIyLDMwMTI1LDMwMTM0LDMwMTM1LDMwMTM4LDMwMTM5LDMwMTQzLDMwMTQ0LDMwMTQ1LDMwMTUwLDMwMTU1LDMwMTU2LDMwMTU4LDMwMTU5LDMwMTYwLDMwMTYxLDMwMTYzLDMwMTY3LDMwMTY5LDMw''@;'; + put 'put ''MTcwLDMwMTcyLDMwMTczLDMwMTc1LDMwMTc2LDMwMTc3LDMwMTgxLDMwMTg1LDMwMTg4LDMwMTg5LDMwMTkwLDMwMTkxLDMwMTk0LDMwMTk1LDMwMTk3LDMwMTk4LDMwMTk5LDMwMjAwLDMwMjAyLDMwMjAzLDMwMjA1LDMwMjA2LDMwMjEwLDMwMjEyLDMwMjE0LDMwMjE1LDMwMjE2LDMwMjE3''@;'; + put 'put ''LDMwMjE5LDMwMjIxLDMwMjIyLDMwMjIzLDMwMjI1LDMwMjI2LDMwMjI3LDMwMjI4LDMwMjMwLDMwMjM0LDMwMjM2LDMwMjM3LDMwMjM4LDMwMjQxLDMwMjQzLDMwMjQ3LDMwMjQ4LDMwMjUyLDMwMjU0LDMwMjU1LDMwMjU3LDMwMjU4LDMwMjYyLDMwMjYzLDMwMjY1LDMwMjY2LDMwMjY3LDMw''@;'; + put 'put ''MjY5LDMwMjczLDMwMjc0LDMwMjc2LDU3ODE0LDU3ODE1LDU3ODE2LDU3ODE3LDU3ODE4LDU3ODE5LDU3ODIwLDU3ODIxLDU3ODIyLDU3ODIzLDU3ODI0LDU3ODI1LDU3ODI2LDU3ODI3LDU3ODI4LDU3ODI5LDU3ODMwLDU3ODMxLDU3ODMyLDU3ODMzLDU3ODM0LDU3ODM1LDU3ODM2LDU3ODM3''@;'; + put 'put ''LDU3ODM4LDU3ODM5LDU3ODQwLDU3ODQxLDU3ODQyLDU3ODQzLDU3ODQ0LDU3ODQ1LDU3ODQ2LDU3ODQ3LDU3ODQ4LDU3ODQ5LDU3ODUwLDU3ODUxLDU3ODUyLDU3ODUzLDU3ODU0LDU3ODU1LDU3ODU2LDU3ODU3LDU3ODU4LDU3ODU5LDU3ODYwLDU3ODYxLDU3ODYyLDU3ODYzLDU3ODY0LDU3''@;'; + put 'put ''ODY1LDU3ODY2LDU3ODY3LDU3ODY4LDU3ODY5LDU3ODcwLDU3ODcxLDU3ODcyLDU3ODczLDU3ODc0LDU3ODc1LDU3ODc2LDU3ODc3LDU3ODc4LDU3ODc5LDU3ODgwLDU3ODgxLDU3ODgyLDU3ODgzLDU3ODg0LDU3ODg1LDU3ODg2LDU3ODg3LDU3ODg4LDU3ODg5LDU3ODkwLDU3ODkxLDU3ODky''@;'; + put 'put ''LDU3ODkzLDU3ODk0LDU3ODk1LDU3ODk2LDU3ODk3LDU3ODk4LDU3ODk5LDU3OTAwLDU3OTAxLDU3OTAyLDU3OTAzLDU3OTA0LDU3OTA1LDU3OTA2LDU3OTA3LDMwMjc3LDMwMjc4LDMwMjc5LDMwMjgwLDMwMjgxLDMwMjgyLDMwMjgzLDMwMjg2LDMwMjg3LDMwMjg4LDMwMjg5LDMwMjkwLDMw''@;'; + put 'put ''MjkxLDMwMjkzLDMwMjk1LDMwMjk2LDMwMjk3LDMwMjk4LDMwMjk5LDMwMzAxLDMwMzAzLDMwMzA0LDMwMzA1LDMwMzA2LDMwMzA4LDMwMzA5LDMwMzEwLDMwMzExLDMwMzEyLDMwMzEzLDMwMzE0LDMwMzE2LDMwMzE3LDMwMzE4LDMwMzIwLDMwMzIxLDMwMzIyLDMwMzIzLDMwMzI0LDMwMzI1''@;'; + put 'put ''LDMwMzI2LDMwMzI3LDMwMzI5LDMwMzMwLDMwMzMyLDMwMzM1LDMwMzM2LDMwMzM3LDMwMzM5LDMwMzQxLDMwMzQ1LDMwMzQ2LDMwMzQ4LDMwMzQ5LDMwMzUxLDMwMzUyLDMwMzU0LDMwMzU2LDMwMzU3LDMwMzU5LDMwMzYwLDMwMzYyLDMwMzYzLDMwMzY0LDMwMzY1LDMwMzY2LDMwMzY3LDMw''@;'; + put 'put ''MzY4LDMwMzY5LDMwMzcwLDMwMzcxLDMwMzczLDMwMzc0LDMwMzc1LDMwMzc2LDMwMzc3LDMwMzc4LDMwMzc5LDMwMzgwLDMwMzgxLDMwMzgzLDMwMzg0LDMwMzg3LDMwMzg5LDMwMzkwLDMwMzkxLDMwMzkyLDMwMzkzLDMwMzk0LDMwMzk1LDMwMzk2LDMwMzk3LDMwMzk4LDMwNDAwLDMwNDAx''@;'; + put 'put ''LDMwNDAzLDIxODM0LDM4NDYzLDIyNDY3LDI1Mzg0LDIxNzEwLDIxNzY5LDIxNjk2LDMwMzUzLDMwMjg0LDM0MTA4LDMwNzAyLDMzNDA2LDMwODYxLDI5MjMzLDM4NTUyLDM4Nzk3LDI3Njg4LDIzNDMzLDIwNDc0LDI1MzUzLDI2MjYzLDIzNzM2LDMzMDE4LDI2Njk2LDMyOTQyLDI2MTE0LDMw''@;'; + put 'put ''NDE0LDIwOTg1LDI1OTQyLDI5MTAwLDMyNzUzLDM0OTQ4LDIwNjU4LDIyODg1LDI1MDM0LDI4NTk1LDMzNDUzLDI1NDIwLDI1MTcwLDIxNDg1LDIxNTQzLDMxNDk0LDIwODQzLDMwMTE2LDI0MDUyLDI1MzAwLDM2Mjk5LDM4Nzc0LDI1MjI2LDMyNzkzLDIyMzY1LDM4NzEyLDMyNjEwLDI5MjQw''@;'; + put 'put ''LDMwMzMzLDI2NTc1LDMwMzM0LDI1NjcwLDIwMzM2LDM2MTMzLDI1MzA4LDMxMjU1LDI2MDAxLDI5Njc3LDI1NjQ0LDI1MjAzLDMzMzI0LDM5MDQxLDI2NDk1LDI5MjU2LDI1MTk4LDI1MjkyLDIwMjc2LDI5OTIzLDIxMzIyLDIxMTUwLDMyNDU4LDM3MDMwLDI0MTEwLDI2NzU4LDI3MDM2LDMz''@;'; + put 'put ''MTUyLDMyNDY1LDI2ODM0LDMwOTE3LDM0NDQ0LDM4MjI1LDIwNjIxLDM1ODc2LDMzNTAyLDMyOTkwLDIxMjUzLDM1MDkwLDIxMDkzLDMwNDA0LDMwNDA3LDMwNDA5LDMwNDExLDMwNDEyLDMwNDE5LDMwNDIxLDMwNDI1LDMwNDI2LDMwNDI4LDMwNDI5LDMwNDMwLDMwNDMyLDMwNDMzLDMwNDM0''@;'; + put 'put ''LDMwNDM1LDMwNDM2LDMwNDM4LDMwNDM5LDMwNDQwLDMwNDQxLDMwNDQyLDMwNDQzLDMwNDQ0LDMwNDQ1LDMwNDQ4LDMwNDUxLDMwNDUzLDMwNDU0LDMwNDU1LDMwNDU4LDMwNDU5LDMwNDYxLDMwNDYzLDMwNDY0LDMwNDY2LDMwNDY3LDMwNDY5LDMwNDcwLDMwNDc0LDMwNDc2LDMwNDc4LDMw''@;'; + put 'put ''NDc5LDMwNDgwLDMwNDgxLDMwNDgyLDMwNDgzLDMwNDg0LDMwNDg1LDMwNDg2LDMwNDg3LDMwNDg4LDMwNDkxLDMwNDkyLDMwNDkzLDMwNDk0LDMwNDk3LDMwNDk5LDMwNTAwLDMwNTAxLDMwNTAzLDMwNTA2LDMwNTA3LDMwNTA4LDMwNTEwLDMwNTEyLDMwNTEzLDMwNTE0LDMwNTE1LDMwNTE2''@;'; + put 'put ''LDMwNTIxLDMwNTIzLDMwNTI1LDMwNTI2LDMwNTI3LDMwNTMwLDMwNTMyLDMwNTMzLDMwNTM0LDMwNTM2LDMwNTM3LDMwNTM4LDMwNTM5LDMwNTQwLDMwNTQxLDMwNTQyLDMwNTQzLDMwNTQ2LDMwNTQ3LDMwNTQ4LDMwNTQ5LDMwNTUwLDMwNTUxLDMwNTUyLDMwNTUzLDMwNTU2LDM0MTgwLDM4''@;'; + put 'put ''NjQ5LDIwNDQ1LDIyNTYxLDM5MjgxLDIzNDUzLDI1MjY1LDI1MjUzLDI2MjkyLDM1OTYxLDQwMDc3LDI5MTkwLDI2NDc5LDMwODY1LDI0NzU0LDIxMzI5LDIxMjcxLDM2NzQ0LDMyOTcyLDM2MTI1LDM4MDQ5LDIwNDkzLDI5Mzg0LDIyNzkxLDI0ODExLDI4OTUzLDM0OTg3LDIyODY4LDMzNTE5''@;'; + put 'put ''LDI2NDEyLDMxNTI4LDIzODQ5LDMyNTAzLDI5OTk3LDI3ODkzLDM2NDU0LDM2ODU2LDM2OTI0LDQwNzYzLDI3NjA0LDM3MTQ1LDMxNTA4LDI0NDQ0LDMwODg3LDM0MDA2LDM0MTA5LDI3NjA1LDI3NjA5LDI3NjA2LDI0MDY1LDI0MTk5LDMwMjAxLDM4MzgxLDI1OTQ5LDI0MzMwLDI0NTE3LDM2''@;'; + put 'put ''NzY3LDIyNzIxLDMzMjE4LDM2OTkxLDM4NDkxLDM4ODI5LDM2NzkzLDMyNTM0LDM2MTQwLDI1MTUzLDIwNDE1LDIxNDY0LDIxMzQyLDM2Nzc2LDM2Nzc3LDM2Nzc5LDM2OTQxLDI2NjMxLDI0NDI2LDMzMTc2LDM0OTIwLDQwMTUwLDI0OTcxLDIxMDM1LDMwMjUwLDI0NDI4LDI1OTk2LDI4NjI2''@;'; + put 'put ''LDI4MzkyLDIzNDg2LDI1NjcyLDIwODUzLDIwOTEyLDI2NTY0LDE5OTkzLDMxMTc3LDM5MjkyLDI4ODUxLDMwNTU3LDMwNTU4LDMwNTU5LDMwNTYwLDMwNTY0LDMwNTY3LDMwNTY5LDMwNTcwLDMwNTczLDMwNTc0LDMwNTc1LDMwNTc2LDMwNTc3LDMwNTc4LDMwNTc5LDMwNTgwLDMwNTgxLDMw''@;'; + put 'put ''NTgyLDMwNTgzLDMwNTg0LDMwNTg2LDMwNTg3LDMwNTg4LDMwNTkzLDMwNTk0LDMwNTk1LDMwNTk4LDMwNTk5LDMwNjAwLDMwNjAxLDMwNjAyLDMwNjAzLDMwNjA3LDMwNjA4LDMwNjExLDMwNjEyLDMwNjEzLDMwNjE0LDMwNjE1LDMwNjE2LDMwNjE3LDMwNjE4LDMwNjE5LDMwNjIwLDMwNjIx''@;'; + put 'put ''LDMwNjIyLDMwNjI1LDMwNjI3LDMwNjI4LDMwNjMwLDMwNjMyLDMwNjM1LDMwNjM3LDMwNjM4LDMwNjM5LDMwNjQxLDMwNjQyLDMwNjQ0LDMwNjQ2LDMwNjQ3LDMwNjQ4LDMwNjQ5LDMwNjUwLDMwNjUyLDMwNjU0LDMwNjU2LDMwNjU3LDMwNjU4LDMwNjU5LDMwNjYwLDMwNjYxLDMwNjYyLDMw''@;'; + put 'put ''NjYzLDMwNjY0LDMwNjY1LDMwNjY2LDMwNjY3LDMwNjY4LDMwNjcwLDMwNjcxLDMwNjcyLDMwNjczLDMwNjc0LDMwNjc1LDMwNjc2LDMwNjc3LDMwNjc4LDMwNjgwLDMwNjgxLDMwNjgyLDMwNjg1LDMwNjg2LDMwNjg3LDMwNjg4LDMwNjg5LDMwNjkyLDMwMTQ5LDI0MTgyLDI5NjI3LDMzNzYw''@;'; + put 'put ''LDI1NzczLDI1MzIwLDM4MDY5LDI3ODc0LDIxMzM4LDIxMTg3LDI1NjE1LDM4MDgyLDMxNjM2LDIwMjcxLDI0MDkxLDMzMzM0LDMzMDQ2LDMzMTYyLDI4MTk2LDI3ODUwLDM5NTM5LDI1NDI5LDIxMzQwLDIxNzU0LDM0OTE3LDIyNDk2LDE5OTgxLDI0MDY3LDI3NDkzLDMxODA3LDM3MDk2LDI0''@;'; + put 'put ''NTk4LDI1ODMwLDI5NDY4LDM1MDA5LDI2NDQ4LDI1MTY1LDM2MTMwLDMwNTcyLDM2MzkzLDM3MzE5LDI0NDI1LDMzNzU2LDM0MDgxLDM5MTg0LDIxNDQyLDM0NDUzLDI3NTMxLDI0ODEzLDI0ODA4LDI4Nzk5LDMzNDg1LDMzMzI5LDIwMTc5LDI3ODE1LDM0MjU1LDI1ODA1LDMxOTYxLDI3MTMz''@;'; + put 'put ''LDI2MzYxLDMzNjA5LDIxMzk3LDMxNTc0LDIwMzkxLDIwODc2LDI3OTc5LDIzNjE4LDM2NDYxLDI1NTU0LDIxNDQ5LDMzNTgwLDMzNTkwLDI2NTk3LDMwOTAwLDI1NjYxLDIzNTE5LDIzNzAwLDI0MDQ2LDM1ODE1LDI1Mjg2LDI2NjEyLDM1OTYyLDI1NjAwLDI1NTMwLDM0NjMzLDM5MzA3LDM1''@;'; + put 'put ''ODYzLDMyNTQ0LDM4MTMwLDIwMTM1LDM4NDE2LDM5MDc2LDI2MTI0LDI5NDYyLDMwNjk0LDMwNjk2LDMwNjk4LDMwNzAzLDMwNzA0LDMwNzA1LDMwNzA2LDMwNzA4LDMwNzA5LDMwNzExLDMwNzEzLDMwNzE0LDMwNzE1LDMwNzE2LDMwNzIzLDMwNzI0LDMwNzI1LDMwNzI2LDMwNzI3LDMwNzI4''@;'; + put 'put ''LDMwNzMwLDMwNzMxLDMwNzM0LDMwNzM1LDMwNzM2LDMwNzM5LDMwNzQxLDMwNzQ1LDMwNzQ3LDMwNzUwLDMwNzUyLDMwNzUzLDMwNzU0LDMwNzU2LDMwNzYwLDMwNzYyLDMwNzYzLDMwNzY2LDMwNzY3LDMwNzY5LDMwNzcwLDMwNzcxLDMwNzczLDMwNzc0LDMwNzgxLDMwNzgzLDMwNzg1LDMw''@;'; + put 'put ''Nzg2LDMwNzg3LDMwNzg4LDMwNzkwLDMwNzkyLDMwNzkzLDMwNzk0LDMwNzk1LDMwNzk3LDMwNzk5LDMwODAxLDMwODAzLDMwODA0LDMwODA4LDMwODA5LDMwODEwLDMwODExLDMwODEyLDMwODE0LDMwODE1LDMwODE2LDMwODE3LDMwODE4LDMwODE5LDMwODIwLDMwODIxLDMwODIyLDMwODIz''@;'; + put 'put ''LDMwODI0LDMwODI1LDMwODMxLDMwODMyLDMwODMzLDMwODM0LDMwODM1LDMwODM2LDMwODM3LDMwODM4LDMwODQwLDMwODQxLDMwODQyLDMwODQzLDMwODQ1LDMwODQ2LDMwODQ3LDMwODQ4LDMwODQ5LDMwODUwLDMwODUxLDIyMzMwLDIzNTgxLDI0MTIwLDM4MjcxLDIwNjA3LDMyOTI4LDIx''@;'; + put 'put ''Mzc4LDI1OTUwLDMwMDIxLDIxODA5LDIwNTEzLDM2MjI5LDI1MjIwLDM4MDQ2LDI2Mzk3LDIyMDY2LDI4NTI2LDI0MDM0LDIxNTU3LDI4ODE4LDM2NzEwLDI1MTk5LDI1NzY0LDI1NTA3LDI0NDQzLDI4NTUyLDM3MTA4LDMzMjUxLDM2Nzg0LDIzNTc2LDI2MjE2LDI0NTYxLDI3Nzg1LDM4NDcy''@;'; + put 'put ''LDM2MjI1LDM0OTI0LDI1NzQ1LDMxMjE2LDIyNDc4LDI3MjI1LDI1MTA0LDIxNTc2LDIwMDU2LDMxMjQzLDI0ODA5LDI4NTQ4LDM1ODAyLDI1MjE1LDM2ODk0LDM5NTYzLDMxMjA0LDIxNTA3LDMwMTk2LDI1MzQ1LDIxMjczLDI3NzQ0LDM2ODMxLDI0MzQ3LDM5NTM2LDMyODI3LDQwODMxLDIw''@;'; + put 'put ''MzYwLDIzNjEwLDM2MTk2LDMyNzA5LDI2MDIxLDI4ODYxLDIwODA1LDIwOTE0LDM0NDExLDIzODE1LDIzNDU2LDI1Mjc3LDM3MjI4LDMwMDY4LDM2MzY0LDMxMjY0LDI0ODMzLDMxNjA5LDIwMTY3LDMyNTA0LDMwNTk3LDE5OTg1LDMzMjYxLDIxMDIxLDIwOTg2LDI3MjQ5LDIxNDE2LDM2NDg3''@;'; + put 'put ''LDM4MTQ4LDM4NjA3LDI4MzUzLDM4NTAwLDI2OTcwLDMwODUyLDMwODUzLDMwODU0LDMwODU2LDMwODU4LDMwODU5LDMwODYzLDMwODY0LDMwODY2LDMwODY4LDMwODY5LDMwODcwLDMwODczLDMwODc3LDMwODc4LDMwODgwLDMwODgyLDMwODg0LDMwODg2LDMwODg4LDMwODg5LDMwODkwLDMw''@;'; + put 'put ''ODkxLDMwODkyLDMwODkzLDMwODk0LDMwODk1LDMwOTAxLDMwOTAyLDMwOTAzLDMwOTA0LDMwOTA2LDMwOTA3LDMwOTA4LDMwOTA5LDMwOTExLDMwOTEyLDMwOTE0LDMwOTE1LDMwOTE2LDMwOTE4LDMwOTE5LDMwOTIwLDMwOTI0LDMwOTI1LDMwOTI2LDMwOTI3LDMwOTI5LDMwOTMwLDMwOTMx''@;'; + put 'put ''LDMwOTM0LDMwOTM1LDMwOTM2LDMwOTM4LDMwOTM5LDMwOTQwLDMwOTQxLDMwOTQyLDMwOTQzLDMwOTQ0LDMwOTQ1LDMwOTQ2LDMwOTQ3LDMwOTQ4LDMwOTQ5LDMwOTUwLDMwOTUxLDMwOTUzLDMwOTU0LDMwOTU1LDMwOTU3LDMwOTU4LDMwOTU5LDMwOTYwLDMwOTYxLDMwOTYzLDMwOTY1LDMw''@;'; + put 'put ''OTY2LDMwOTY4LDMwOTY5LDMwOTcxLDMwOTcyLDMwOTczLDMwOTc0LDMwOTc1LDMwOTc2LDMwOTc4LDMwOTc5LDMwOTgwLDMwOTgyLDMwOTgzLDMwOTg0LDMwOTg1LDMwOTg2LDMwOTg3LDMwOTg4LDMwNzg0LDIwNjQ4LDMwNjc5LDI1NjE2LDM1MzAyLDIyNzg4LDI1NTcxLDI0MDI5LDMxMzU5''@;'; + put 'put ''LDI2OTQxLDIwMjU2LDMzMzM3LDIxOTEyLDIwMDE4LDMwMTI2LDMxMzgzLDI0MTYyLDI0MjAyLDM4MzgzLDIxMDE5LDIxNTYxLDI4ODEwLDI1NDYyLDM4MTgwLDIyNDAyLDI2MTQ5LDI2OTQzLDM3MjU1LDIxNzY3LDI4MTQ3LDMyNDMxLDM0ODUwLDI1MTM5LDMyNDk2LDMwMTMzLDMzNTc2LDMw''@;'; + put 'put ''OTEzLDM4NjA0LDM2NzY2LDI0OTA0LDI5OTQzLDM1Nzg5LDI3NDkyLDIxMDUwLDM2MTc2LDI3NDI1LDMyODc0LDMzOTA1LDIyMjU3LDIxMjU0LDIwMTc0LDE5OTk1LDIwOTQ1LDMxODk1LDM3MjU5LDMxNzUxLDIwNDE5LDM2NDc5LDMxNzEzLDMxMzg4LDI1NzAzLDIzODI4LDIwNjUyLDMzMDMw''@;'; + put 'put ''LDMwMjA5LDMxOTI5LDI4MTQwLDMyNzM2LDI2NDQ5LDIzMzg0LDIzNTQ0LDMwOTIzLDI1Nzc0LDI1NjE5LDI1NTE0LDI1Mzg3LDM4MTY5LDI1NjQ1LDM2Nzk4LDMxNTcyLDMwMjQ5LDI1MTcxLDIyODIzLDIxNTc0LDI3NTEzLDIwNjQzLDI1MTQwLDI0MTAyLDI3NTI2LDIwMTk1LDM2MTUxLDM0''@;'; + put 'put ''OTU1LDI0NDUzLDM2OTEwLDMwOTg5LDMwOTkwLDMwOTkxLDMwOTkyLDMwOTkzLDMwOTk0LDMwOTk2LDMwOTk3LDMwOTk4LDMwOTk5LDMxZTMsMzEwMDEsMzEwMDIsMzEwMDMsMzEwMDQsMzEwMDUsMzEwMDcsMzEwMDgsMzEwMDksMzEwMTAsMzEwMTEsMzEwMTMsMzEwMTQsMzEwMTUsMzEwMTYs''@;'; + put 'put ''MzEwMTcsMzEwMTgsMzEwMTksMzEwMjAsMzEwMjEsMzEwMjIsMzEwMjMsMzEwMjQsMzEwMjUsMzEwMjYsMzEwMjcsMzEwMjksMzEwMzAsMzEwMzEsMzEwMzIsMzEwMzMsMzEwMzcsMzEwMzksMzEwNDIsMzEwNDMsMzEwNDQsMzEwNDUsMzEwNDcsMzEwNTAsMzEwNTEsMzEwNTIsMzEwNTMsMzEw''@;'; + put 'put ''NTQsMzEwNTUsMzEwNTYsMzEwNTcsMzEwNTgsMzEwNjAsMzEwNjEsMzEwNjQsMzEwNjUsMzEwNzMsMzEwNzUsMzEwNzYsMzEwNzgsMzEwODEsMzEwODIsMzEwODMsMzEwODQsMzEwODYsMzEwODgsMzEwODksMzEwOTAsMzEwOTEsMzEwOTIsMzEwOTMsMzEwOTQsMzEwOTcsMzEwOTksMzExMDAs''@;'; + put 'put ''MzExMDEsMzExMDIsMzExMDMsMzExMDYsMzExMDcsMzExMTAsMzExMTEsMzExMTIsMzExMTMsMzExMTUsMzExMTYsMzExMTcsMzExMTgsMzExMjAsMzExMjEsMzExMjIsMjQ2MDgsMzI4MjksMjUyODUsMjAwMjUsMjEzMzMsMzcxMTIsMjU1MjgsMzI5NjYsMjYwODYsMjc2OTQsMjAyOTQsMjQ4''@;'; + put 'put ''MTQsMjgxMjksMzU4MDYsMjQzNzcsMzQ1MDcsMjQ0MDMsMjUzNzcsMjA4MjYsMzM2MzMsMjY3MjMsMjA5OTIsMjU0NDMsMzY0MjQsMjA0OTgsMjM3MDcsMzEwOTUsMjM1NDgsMjEwNDAsMzEyOTEsMjQ3NjQsMzY5NDcsMzA0MjMsMjQ1MDMsMjQ0NzEsMzAzNDAsMzY0NjAsMjg3ODMsMzAzMzEs''@;'; + put 'put ''MzE1NjEsMzA2MzQsMjA5NzksMzcwMTEsMjI1NjQsMjAzMDIsMjg0MDQsMzY4NDIsMjU5MzIsMzE1MTUsMjkzODAsMjgwNjgsMzI3MzUsMjMyNjUsMjUyNjksMjQyMTMsMjIzMjAsMzM5MjIsMzE1MzIsMjQwOTMsMjQzNTEsMzY4ODIsMzI1MzIsMzkwNzIsMjU0NzQsMjgzNTksMzA4NzIsMjg4''@;'; + put 'put ''NTcsMjA4NTYsMzg3NDcsMjI0NDMsMzAwMDUsMjAyOTEsMzAwMDgsMjQyMTUsMjQ4MDYsMjI4ODAsMjgwOTYsMjc1ODMsMzA4NTcsMjE1MDAsMzg2MTMsMjA5MzksMjA5OTMsMjU0ODEsMjE1MTQsMzgwMzUsMzU4NDMsMzYzMDAsMjkyNDEsMzA4NzksMzQ2NzgsMzY4NDUsMzU4NTMsMjE0NzIs''@;'; + put 'put ''MzExMjMsMzExMjQsMzExMjUsMzExMjYsMzExMjcsMzExMjgsMzExMjksMzExMzEsMzExMzIsMzExMzMsMzExMzQsMzExMzUsMzExMzYsMzExMzcsMzExMzgsMzExMzksMzExNDAsMzExNDEsMzExNDIsMzExNDQsMzExNDUsMzExNDYsMzExNDcsMzExNDgsMzExNDksMzExNTAsMzExNTEsMzEx''@;'; + put 'put ''NTIsMzExNTMsMzExNTQsMzExNTYsMzExNTcsMzExNTgsMzExNTksMzExNjAsMzExNjQsMzExNjcsMzExNzAsMzExNzIsMzExNzMsMzExNzUsMzExNzYsMzExNzgsMzExODAsMzExODIsMzExODMsMzExODQsMzExODcsMzExODgsMzExOTAsMzExOTEsMzExOTMsMzExOTQsMzExOTUsMzExOTYs''@;'; + put 'put ''MzExOTcsMzExOTgsMzEyMDAsMzEyMDEsMzEyMDIsMzEyMDUsMzEyMDgsMzEyMTAsMzEyMTIsMzEyMTQsMzEyMTcsMzEyMTgsMzEyMTksMzEyMjAsMzEyMjEsMzEyMjIsMzEyMjMsMzEyMjUsMzEyMjYsMzEyMjgsMzEyMzAsMzEyMzEsMzEyMzMsMzEyMzYsMzEyMzcsMzEyMzksMzEyNDAsMzEy''@;'; + put 'put ''NDEsMzEyNDIsMzEyNDQsMzEyNDcsMzEyNDgsMzEyNDksMzEyNTAsMzEyNTEsMzEyNTMsMzEyNTQsMzEyNTYsMzEyNTcsMzEyNTksMzEyNjAsMTk5NjksMzA0NDcsMjE0ODYsMzgwMjUsMzkwMzAsNDA3MTgsMzgxODksMjM0NTAsMzU3NDYsMjAwMDIsMTk5OTYsMjA5MDgsMzM4OTEsMjUwMjYs''@;'; + put 'put ''MjExNjAsMjY2MzUsMjAzNzUsMjQ2ODMsMjA5MjMsMjc5MzQsMjA4MjgsMjUyMzgsMjYwMDcsMzg0OTcsMzU5MTAsMzY4ODcsMzAxNjgsMzcxMTcsMzA1NjMsMjc2MDIsMjkzMjIsMjk0MjAsMzU4MzUsMjI1ODEsMzA1ODUsMzYxNzIsMjY0NjAsMzgyMDgsMzI5MjIsMjQyMzAsMjgxOTMsMjI5''@;'; + put 'put ''MzAsMzE0NzEsMzA3MDEsMzgyMDMsMjc1NzMsMjYwMjksMzI1MjYsMjI1MzQsMjA4MTcsMzg0MzEsMjM1NDUsMjI2OTcsMjE1NDQsMzY0NjYsMjU5NTgsMzkwMzksMjIyNDQsMzgwNDUsMzA0NjIsMzY5MjksMjU0NzksMjE3MDIsMjI4MTAsMjI4NDIsMjI0MjcsMzY1MzAsMjY0MjEsMzYzNDYs''@;'; + put 'put ''MzMzMzMsMjEwNTcsMjQ4MTYsMjI1NDksMzQ1NTgsMjM3ODQsNDA1MTcsMjA0MjAsMzkwNjksMzU3NjksMjMwNzcsMjQ2OTQsMjEzODAsMjUyMTIsMzY5NDMsMzcxMjIsMzkyOTUsMjQ2ODEsMzI3ODAsMjA3OTksMzI4MTksMjM1NzIsMzkyODUsMjc5NTMsMjAxMDgsMzEyNjEsMzEyNjMsMzEy''@;'; + put 'put ''NjUsMzEyNjYsMzEyNjgsMzEyNjksMzEyNzAsMzEyNzEsMzEyNzIsMzEyNzMsMzEyNzQsMzEyNzUsMzEyNzYsMzEyNzcsMzEyNzgsMzEyNzksMzEyODAsMzEyODEsMzEyODIsMzEyODQsMzEyODUsMzEyODYsMzEyODgsMzEyOTAsMzEyOTQsMzEyOTYsMzEyOTcsMzEyOTgsMzEyOTksMzEzMDAs''@;'; + put 'put ''MzEzMDEsMzEzMDMsMzEzMDQsMzEzMDUsMzEzMDYsMzEzMDcsMzEzMDgsMzEzMDksMzEzMTAsMzEzMTEsMzEzMTIsMzEzMTQsMzEzMTUsMzEzMTYsMzEzMTcsMzEzMTgsMzEzMjAsMzEzMjEsMzEzMjIsMzEzMjMsMzEzMjQsMzEzMjUsMzEzMjYsMzEzMjcsMzEzMjgsMzEzMjksMzEzMzAsMzEz''@;'; + put 'put ''MzEsMzEzMzIsMzEzMzMsMzEzMzQsMzEzMzUsMzEzMzYsMzEzMzcsMzEzMzgsMzEzMzksMzEzNDAsMzEzNDEsMzEzNDIsMzEzNDMsMzEzNDUsMzEzNDYsMzEzNDcsMzEzNDksMzEzNTUsMzEzNTYsMzEzNTcsMzEzNTgsMzEzNjIsMzEzNjUsMzEzNjcsMzEzNjksMzEzNzAsMzEzNzEsMzEzNzIs''@;'; + put 'put ''MzEzNzQsMzEzNzUsMzEzNzYsMzEzNzksMzEzODAsMzEzODUsMzEzODYsMzEzODcsMzEzOTAsMzEzOTMsMzEzOTQsMzYxNDQsMjE0NTcsMzI2MDIsMzE1NjcsMjAyNDAsMjAwNDcsMzg0MDAsMjc4NjEsMjk2NDgsMzQyODEsMjQwNzAsMzAwNTgsMzI3NjMsMjcxNDYsMzA3MTgsMzgwMzQsMzIz''@;'; + put 'put ''MjEsMjA5NjEsMjg5MDIsMjE0NTMsMzY4MjAsMzM1MzksMzYxMzcsMjkzNTksMzkyNzcsMjc4NjcsMjIzNDYsMzM0NTksMjYwNDEsMzI5MzgsMjUxNTEsMzg0NTAsMjI5NTIsMjAyMjMsMzU3NzUsMzI0NDIsMjU5MTgsMzM3NzgsMzg3NTAsMjE4NTcsMzkxMzQsMzI5MzMsMjEyOTAsMzU4Mzcs''@;'; + put 'put ''MjE1MzYsMzI5NTQsMjQyMjMsMjc4MzIsMzYxNTMsMzM0NTIsMzcyMTAsMjE1NDUsMjc2NzUsMjA5OTgsMzI0MzksMjIzNjcsMjg5NTQsMjc3NzQsMzE4ODEsMjI4NTksMjAyMjEsMjQ1NzUsMjQ4NjgsMzE5MTQsMjAwMTYsMjM1NTMsMjY1MzksMzQ1NjIsMjM3OTIsMzgxNTUsMzkxMTgsMzAx''@;'; + put 'put ''MjcsMjg5MjUsMzY4OTgsMjA5MTEsMzI1NDEsMzU3NzMsMjI4NTcsMjA5NjQsMjAzMTUsMjE1NDIsMjI4MjcsMjU5NzUsMzI5MzIsMjM0MTMsMjUyMDYsMjUyODIsMzY3NTIsMjQxMzMsMjc2NzksMzE1MjYsMjAyMzksMjA0NDAsMjYzODEsMzEzOTUsMzEzOTYsMzEzOTksMzE0MDEsMzE0MDIs''@;'; + put 'put ''MzE0MDMsMzE0MDYsMzE0MDcsMzE0MDgsMzE0MDksMzE0MTAsMzE0MTIsMzE0MTMsMzE0MTQsMzE0MTUsMzE0MTYsMzE0MTcsMzE0MTgsMzE0MTksMzE0MjAsMzE0MjEsMzE0MjIsMzE0MjQsMzE0MjUsMzE0MjYsMzE0MjcsMzE0MjgsMzE0MjksMzE0MzAsMzE0MzEsMzE0MzIsMzE0MzMsMzE0''@;'; + put 'put ''MzQsMzE0MzYsMzE0MzcsMzE0MzgsMzE0MzksMzE0NDAsMzE0NDEsMzE0NDIsMzE0NDMsMzE0NDQsMzE0NDUsMzE0NDcsMzE0NDgsMzE0NTAsMzE0NTEsMzE0NTIsMzE0NTMsMzE0NTcsMzE0NTgsMzE0NjAsMzE0NjMsMzE0NjQsMzE0NjUsMzE0NjYsMzE0NjcsMzE0NjgsMzE0NzAsMzE0NzIs''@;'; + put 'put ''MzE0NzMsMzE0NzQsMzE0NzUsMzE0NzYsMzE0NzcsMzE0NzgsMzE0NzksMzE0ODAsMzE0ODMsMzE0ODQsMzE0ODYsMzE0ODgsMzE0ODksMzE0OTAsMzE0OTMsMzE0OTUsMzE0OTcsMzE1MDAsMzE1MDEsMzE1MDIsMzE1MDQsMzE1MDYsMzE1MDcsMzE1MTAsMzE1MTEsMzE1MTIsMzE1MTQsMzE1''@;'; + put 'put ''MTYsMzE1MTcsMzE1MTksMzE1MjEsMzE1MjIsMzE1MjMsMzE1MjcsMzE1MjksMzE1MzMsMjgwMTQsMjgwNzQsMzExMTksMzQ5OTMsMjQzNDMsMjk5OTUsMjUyNDIsMzY3NDEsMjA0NjMsMzczNDAsMjYwMjMsMzMwNzEsMzMxMDUsMjQyMjAsMzMxMDQsMzYyMTIsMjExMDMsMzUyMDYsMzYxNzEs''@;'; + put 'put ''MjI3OTcsMjA2MTMsMjAxODQsMzg0MjgsMjkyMzgsMzMxNDUsMzYxMjcsMjM1MDAsMzU3NDcsMzg0NjgsMjI5MTksMzI1MzgsMjE2NDgsMjIxMzQsMjIwMzAsMzU4MTMsMjU5MTMsMjcwMTAsMzgwNDEsMzA0MjIsMjgyOTcsMjQxNzgsMjk5NzYsMjY0MzgsMjY1NzcsMzE0ODcsMzI5MjUsMzYy''@;'; + put 'put ''MTQsMjQ4NjMsMzExNzQsMjU5NTQsMzYxOTUsMjA4NzIsMjEwMTgsMzgwNTAsMzI1NjgsMzI5MjMsMzI0MzQsMjM3MDMsMjgyMDcsMjY0NjQsMzE3MDUsMzAzNDcsMzk2NDAsMzMxNjcsMzI2NjAsMzE5NTcsMjU2MzAsMzgyMjQsMzEyOTUsMjE1NzgsMjE3MzMsMjc0NjgsMjU2MDEsMjUwOTYs''@;'; + put 'put ''NDA1MDksMzMwMTEsMzAxMDUsMjExMDYsMzg3NjEsMzM4ODMsMjY2ODQsMzQ1MzIsMzg0MDEsMzg1NDgsMzgxMjQsMjAwMTAsMjE1MDgsMzI0NzMsMjY2ODEsMzYzMTksMzI3ODksMjYzNTYsMjQyMTgsMzI2OTcsMzE1MzUsMzE1MzYsMzE1MzgsMzE1NDAsMzE1NDEsMzE1NDIsMzE1NDMsMzE1''@;'; + put 'put ''NDUsMzE1NDcsMzE1NDksMzE1NTEsMzE1NTIsMzE1NTMsMzE1NTQsMzE1NTUsMzE1NTYsMzE1NTgsMzE1NjAsMzE1NjIsMzE1NjUsMzE1NjYsMzE1NzEsMzE1NzMsMzE1NzUsMzE1NzcsMzE1ODAsMzE1ODIsMzE1ODMsMzE1ODUsMzE1ODcsMzE1ODgsMzE1ODksMzE1OTAsMzE1OTEsMzE1OTIs''@;'; + put 'put ''MzE1OTMsMzE1OTQsMzE1OTUsMzE1OTYsMzE1OTcsMzE1OTksMzE2MDAsMzE2MDMsMzE2MDQsMzE2MDYsMzE2MDgsMzE2MTAsMzE2MTIsMzE2MTMsMzE2MTUsMzE2MTcsMzE2MTgsMzE2MTksMzE2MjAsMzE2MjIsMzE2MjMsMzE2MjQsMzE2MjUsMzE2MjYsMzE2MjcsMzE2MjgsMzE2MzAsMzE2''@;'; + put 'put ''MzEsMzE2MzMsMzE2MzQsMzE2MzUsMzE2MzgsMzE2NDAsMzE2NDEsMzE2NDIsMzE2NDMsMzE2NDYsMzE2NDcsMzE2NDgsMzE2NTEsMzE2NTIsMzE2NTMsMzE2NjIsMzE2NjMsMzE2NjQsMzE2NjYsMzE2NjcsMzE2NjksMzE2NzAsMzE2NzEsMzE2NzMsMzE2NzQsMzE2NzUsMzE2NzYsMzE2Nzcs''@;'; + put 'put ''MzE2NzgsMzE2NzksMzE2ODAsMzE2ODIsMzE2ODMsMzE2ODQsMjI0NjYsMzI4MzEsMjY3NzUsMjQwMzcsMjU5MTUsMjExNTEsMjQ2ODUsNDA4NTgsMjAzNzksMzY1MjQsMjA4NDQsMjM0NjcsMjQzMzksMjQwNDEsMjc3NDIsMjUzMjksMzYxMjksMjA4NDksMzgwNTcsMjEyNDYsMjc4MDcsMzM1''@;'; + put 'put ''MDMsMjkzOTksMjI0MzQsMjY1MDAsMzYxNDEsMjI4MTUsMzY3NjQsMzM3MzUsMjE2NTMsMzE2MjksMjAyNzIsMjc4MzcsMjMzOTYsMjI5OTMsNDA3MjMsMjE0NzYsMzQ1MDYsMzk1OTIsMzU4OTUsMzI5MjksMjU5MjUsMzkwMzgsMjIyNjYsMzg1OTksMjEwMzgsMjk5MTYsMjEwNzIsMjM1MjEs''@;'; + put 'put ''MjUzNDYsMzUwNzQsMjAwNTQsMjUyOTYsMjQ2MTgsMjY4NzQsMjA4NTEsMjM0NDgsMjA4OTYsMzUyNjYsMzE2NDksMzkzMDIsMzI1OTIsMjQ4MTUsMjg3NDgsMzYxNDMsMjA4MDksMjQxOTEsMzY4OTEsMjk4MDgsMzUyNjgsMjIzMTcsMzA3ODksMjQ0MDIsNDA4NjMsMzgzOTQsMzY3MTIsMzk3''@;'; + put 'put ''NDAsMzU4MDksMzAzMjgsMjY2OTAsMjY1ODgsMzYzMzAsMzYxNDksMjEwNTMsMzY3NDYsMjgzNzgsMjY4MjksMzgxNDksMzcxMDEsMjIyNjksMjY1MjQsMzUwNjUsMzY4MDcsMjE3MDQsMzE2ODUsMzE2ODgsMzE2ODksMzE2OTAsMzE2OTEsMzE2OTMsMzE2OTQsMzE2OTUsMzE2OTYsMzE2OTgs''@;'; + put 'put ''MzE3MDAsMzE3MDEsMzE3MDIsMzE3MDMsMzE3MDQsMzE3MDcsMzE3MDgsMzE3MTAsMzE3MTEsMzE3MTIsMzE3MTQsMzE3MTUsMzE3MTYsMzE3MTksMzE3MjAsMzE3MjEsMzE3MjMsMzE3MjQsMzE3MjUsMzE3MjcsMzE3MjgsMzE3MzAsMzE3MzEsMzE3MzIsMzE3MzMsMzE3MzQsMzE3MzYsMzE3''@;'; + put 'put ''MzcsMzE3MzgsMzE3MzksMzE3NDEsMzE3NDMsMzE3NDQsMzE3NDUsMzE3NDYsMzE3NDcsMzE3NDgsMzE3NDksMzE3NTAsMzE3NTIsMzE3NTMsMzE3NTQsMzE3NTcsMzE3NTgsMzE3NjAsMzE3NjEsMzE3NjIsMzE3NjMsMzE3NjQsMzE3NjUsMzE3NjcsMzE3NjgsMzE3NjksMzE3NzAsMzE3NzEs''@;'; + put 'put ''MzE3NzIsMzE3NzMsMzE3NzQsMzE3NzYsMzE3NzcsMzE3NzgsMzE3NzksMzE3ODAsMzE3ODEsMzE3ODQsMzE3ODUsMzE3ODcsMzE3ODgsMzE3ODksMzE3OTAsMzE3OTEsMzE3OTIsMzE3OTMsMzE3OTQsMzE3OTUsMzE3OTYsMzE3OTcsMzE3OTgsMzE3OTksMzE4MDEsMzE4MDIsMzE4MDMsMzE4''@;'; + put 'put ''MDQsMzE4MDUsMzE4MDYsMzE4MTAsMzk2MDgsMjM0MDEsMjgwMjMsMjc2ODYsMjAxMzMsMjM0NzUsMzk1NTksMzcyMTksMjVlMywzNzAzOSwzODg4OSwyMTU0NywyODA4NSwyMzUwNiwyMDk4OSwyMTg5OCwzMjU5NywzMjc1MiwyNTc4OCwyNTQyMSwyNjA5NywyNTAyMiwyNDcxNywyODkzOCwy''@;'; + put 'put ''NzczNSwyNzcyMSwyMjgzMSwyNjQ3NywzMzMyMiwyMjc0MSwyMjE1OCwzNTk0NiwyNzYyNywzNzA4NSwyMjkwOSwzMjc5MSwyMTQ5NSwyODAwOSwyMTYyMSwyMTkxNywzMzY1NSwzMzc0MywyNjY4MCwzMTE2NiwyMTY0NCwyMDMwOSwyMTUxMiwzMDQxOCwzNTk3NywzODQwMiwyNzgyNywyODA4''@;'; + put 'put ''OCwzNjIwMywzNTA4OCw0MDU0OCwzNjE1NCwyMjA3OSw0MDY1NywzMDE2NSwyNDQ1NiwyOTQwOCwyNDY4MCwyMTc1NiwyMDEzNiwyNzE3OCwzNDkxMywyNDY1OCwzNjcyMCwyMTcwMCwyODg4OCwzNDQyNSw0MDUxMSwyNzk0NiwyMzQzOSwyNDM0NCwzMjQxOCwyMTg5NywyMDM5OSwyOTQ5Miwy''@;'; + put 'put ''MTU2NCwyMTQwMiwyMDUwNSwyMTUxOCwyMTYyOCwyMDA0NiwyNDU3MywyOTc4NiwyMjc3NCwzMzg5OSwzMjk5MywzNDY3NiwyOTM5MiwzMTk0NiwyODI0NiwzMTgxMSwzMTgxMiwzMTgxMywzMTgxNCwzMTgxNSwzMTgxNiwzMTgxNywzMTgxOCwzMTgxOSwzMTgyMCwzMTgyMiwzMTgyMywzMTgy''@;'; + put 'put ''NCwzMTgyNSwzMTgyNiwzMTgyNywzMTgyOCwzMTgyOSwzMTgzMCwzMTgzMSwzMTgzMiwzMTgzMywzMTgzNCwzMTgzNSwzMTgzNiwzMTgzNywzMTgzOCwzMTgzOSwzMTg0MCwzMTg0MSwzMTg0MiwzMTg0MywzMTg0NCwzMTg0NSwzMTg0NiwzMTg0NywzMTg0OCwzMTg0OSwzMTg1MCwzMTg1MSwz''@;'; + put 'put ''MTg1MiwzMTg1MywzMTg1NCwzMTg1NSwzMTg1NiwzMTg1NywzMTg1OCwzMTg2MSwzMTg2MiwzMTg2MywzMTg2NCwzMTg2NSwzMTg2NiwzMTg3MCwzMTg3MSwzMTg3MiwzMTg3MywzMTg3NCwzMTg3NSwzMTg3NiwzMTg3NywzMTg3OCwzMTg3OSwzMTg4MCwzMTg4MiwzMTg4MywzMTg4NCwzMTg4''@;'; + put 'put ''NSwzMTg4NiwzMTg4NywzMTg4OCwzMTg5MSwzMTg5MiwzMTg5NCwzMTg5NywzMTg5OCwzMTg5OSwzMTkwNCwzMTkwNSwzMTkwNywzMTkxMCwzMTkxMSwzMTkxMiwzMTkxMywzMTkxNSwzMTkxNiwzMTkxNywzMTkxOSwzMTkyMCwzMTkyNCwzMTkyNSwzMTkyNiwzMTkyNywzMTkyOCwzMTkzMCwz''@;'; + put 'put ''MTkzMSwyNDM1OSwzNDM4MiwyMTgwNCwyNTI1MiwyMDExNCwyNzgxOCwyNTE0MywzMzQ1NywyMTcxOSwyMTMyNiwyOTUwMiwyODM2OSwzMDAxMSwyMTAxMCwyMTI3MCwzNTgwNSwyNzA4OCwyNDQ1OCwyNDU3NiwyODE0MiwyMjM1MSwyNzQyNiwyOTYxNSwyNjcwNywzNjgyNCwzMjUzMSwyNTQ0''@;'; + put 'put ''MiwyNDczOSwyMTc5NiwzMDE4NiwzNTkzOCwyODk0OSwyODA2NywyMzQ2MiwyNDE4NywzMzYxOCwyNDkwOCw0MDY0NCwzMDk3MCwzNDY0NywzMTc4MywzMDM0MywyMDk3NiwyNDgyMiwyOTAwNCwyNjE3OSwyNDE0MCwyNDY1MywzNTg1NCwyODc4NCwyNTM4MSwzNjc0NSwyNDUwOSwyNDY3NCwz''@;'; + put 'put ''NDUxNiwyMjIzOCwyNzU4NSwyNDcyNCwyNDkzNSwyMTMyMSwyNDgwMCwyNjIxNCwzNjE1OSwzMTIyOSwyMDI1MCwyODkwNSwyNzcxOSwzNTc2MywzNTgyNiwzMjQ3MiwzMzYzNiwyNjEyNywyMzEzMCwzOTc0NiwyNzk4NSwyODE1MSwzNTkwNSwyNzk2MywyMDI0OSwyODc3OSwzMzcxOSwyNTEx''@;'; + put 'put ''MCwyNDc4NSwzODY2OSwzNjEzNSwzMTA5NiwyMDk4NywyMjMzNCwyMjUyMiwyNjQyNiwzMDA3MiwzMTI5MywzMTIxNSwzMTYzNywzMTkzNSwzMTkzNiwzMTkzOCwzMTkzOSwzMTk0MCwzMTk0MiwzMTk0NSwzMTk0NywzMTk1MCwzMTk1MSwzMTk1MiwzMTk1MywzMTk1NCwzMTk1NSwzMTk1Niwz''@;'; + put 'put ''MTk2MCwzMTk2MiwzMTk2MywzMTk2NSwzMTk2NiwzMTk2OSwzMTk3MCwzMTk3MSwzMTk3MiwzMTk3MywzMTk3NCwzMTk3NSwzMTk3NywzMTk3OCwzMTk3OSwzMTk4MCwzMTk4MSwzMTk4MiwzMTk4NCwzMTk4NSwzMTk4NiwzMTk4NywzMTk4OCwzMTk4OSwzMTk5MCwzMTk5MSwzMTk5MywzMTk5''@;'; + put 'put ''NCwzMTk5NiwzMTk5NywzMTk5OCwzMTk5OSwzMmUzLDMyMDAxLDMyMDAyLDMyMDAzLDMyMDA0LDMyMDA1LDMyMDA2LDMyMDA3LDMyMDA4LDMyMDA5LDMyMDExLDMyMDEyLDMyMDEzLDMyMDE0LDMyMDE1LDMyMDE2LDMyMDE3LDMyMDE4LDMyMDE5LDMyMDIwLDMyMDIxLDMyMDIyLDMyMDIzLDMy''@;'; + put 'put ''MDI0LDMyMDI1LDMyMDI2LDMyMDI3LDMyMDI4LDMyMDI5LDMyMDMwLDMyMDMxLDMyMDMzLDMyMDM1LDMyMDM2LDMyMDM3LDMyMDM4LDMyMDQwLDMyMDQxLDMyMDQyLDMyMDQ0LDMyMDQ1LDMyMDQ2LDMyMDQ4LDMyMDQ5LDMyMDUwLDMyMDUxLDMyMDUyLDMyMDUzLDMyMDU0LDMyOTA4LDM5MjY5''@;'; + put 'put ''LDM2ODU3LDI4NjA4LDM1NzQ5LDQwNDgxLDIzMDIwLDMyNDg5LDMyNTIxLDIxNTEzLDI2NDk3LDI2ODQwLDM2NzUzLDMxODIxLDM4NTk4LDIxNDUwLDI0NjEzLDMwMTQyLDI3NzYyLDIxMzYzLDIzMjQxLDMyNDIzLDI1MzgwLDIwOTYwLDMzMDM0LDI0MDQ5LDM0MDE1LDI1MjE2LDIwODY0LDIz''@;'; + put 'put ''Mzk1LDIwMjM4LDMxMDg1LDIxMDU4LDI0NzYwLDI3OTgyLDIzNDkyLDIzNDkwLDM1NzQ1LDM1NzYwLDI2MDgyLDI0NTI0LDM4NDY5LDIyOTMxLDMyNDg3LDMyNDI2LDIyMDI1LDI2NTUxLDIyODQxLDIwMzM5LDIzNDc4LDIxMTUyLDMzNjI2LDM5MDUwLDM2MTU4LDMwMDAyLDM4MDc4LDIwNTUx''@;'; + put 'put ''LDMxMjkyLDIwMjE1LDI2NTUwLDM5NTUwLDIzMjMzLDI3NTE2LDMwNDE3LDIyMzYyLDIzNTc0LDMxNTQ2LDM4Mzg4LDI5MDA2LDIwODYwLDMyOTM3LDMzMzkyLDIyOTA0LDMyNTE2LDMzNTc1LDI2ODE2LDI2NjA0LDMwODk3LDMwODM5LDI1MzE1LDI1NDQxLDMxNjE2LDIwNDYxLDIxMDk4LDIw''@;'; + put 'put ''OTQzLDMzNjE2LDI3MDk5LDM3NDkyLDM2MzQxLDM2MTQ1LDM1MjY1LDM4MTkwLDMxNjYxLDIwMjE0LDMyMDU1LDMyMDU2LDMyMDU3LDMyMDU4LDMyMDU5LDMyMDYwLDMyMDYxLDMyMDYyLDMyMDYzLDMyMDY0LDMyMDY1LDMyMDY2LDMyMDY3LDMyMDY4LDMyMDY5LDMyMDcwLDMyMDcxLDMyMDcy''@;'; + put 'put ''LDMyMDczLDMyMDc0LDMyMDc1LDMyMDc2LDMyMDc3LDMyMDc4LDMyMDc5LDMyMDgwLDMyMDgxLDMyMDgyLDMyMDgzLDMyMDg0LDMyMDg1LDMyMDg2LDMyMDg3LDMyMDg4LDMyMDg5LDMyMDkwLDMyMDkxLDMyMDkyLDMyMDkzLDMyMDk0LDMyMDk1LDMyMDk2LDMyMDk3LDMyMDk4LDMyMDk5LDMy''@;'; + put 'put ''MTAwLDMyMTAxLDMyMTAyLDMyMTAzLDMyMTA0LDMyMTA1LDMyMTA2LDMyMTA3LDMyMTA4LDMyMTA5LDMyMTExLDMyMTEyLDMyMTEzLDMyMTE0LDMyMTE1LDMyMTE2LDMyMTE3LDMyMTE4LDMyMTIwLDMyMTIxLDMyMTIyLDMyMTIzLDMyMTI0LDMyMTI1LDMyMTI2LDMyMTI3LDMyMTI4LDMyMTI5''@;'; + put 'put ''LDMyMTMwLDMyMTMxLDMyMTMyLDMyMTMzLDMyMTM0LDMyMTM1LDMyMTM2LDMyMTM3LDMyMTM4LDMyMTM5LDMyMTQwLDMyMTQxLDMyMTQyLDMyMTQzLDMyMTQ0LDMyMTQ1LDMyMTQ2LDMyMTQ3LDMyMTQ4LDMyMTQ5LDMyMTUwLDMyMTUxLDMyMTUyLDIwNTgxLDMzMzI4LDIxMDczLDM5Mjc5LDI4''@;'; + put 'put ''MTc2LDI4MjkzLDI4MDcxLDI0MzE0LDIwNzI1LDIzMDA0LDIzNTU4LDI3OTc0LDI3NzQzLDMwMDg2LDMzOTMxLDI2NzI4LDIyODcwLDM1NzYyLDIxMjgwLDM3MjMzLDM4NDc3LDM0MTIxLDI2ODk4LDMwOTc3LDI4OTY2LDMzMDE0LDIwMTMyLDM3MDY2LDI3OTc1LDM5NTU2LDIzMDQ3LDIyMjA0''@;'; + put 'put ''LDI1NjA1LDM4MTI4LDMwNjk5LDIwMzg5LDMzMDUwLDI5NDA5LDM1MjgyLDM5MjkwLDMyNTY0LDMyNDc4LDIxMTE5LDI1OTQ1LDM3MjM3LDM2NzM1LDM2NzM5LDIxNDgzLDMxMzgyLDI1NTgxLDI1NTA5LDMwMzQyLDMxMjI0LDM0OTAzLDM4NDU0LDI1MTMwLDIxMTYzLDMzNDEwLDI2NzA4LDI2''@;'; + put 'put ''NDgwLDI1NDYzLDMwNTcxLDMxNDY5LDI3OTA1LDMyNDY3LDM1Mjk5LDIyOTkyLDI1MTA2LDM0MjQ5LDMzNDQ1LDMwMDI4LDIwNTExLDIwMTcxLDMwMTE3LDM1ODE5LDIzNjI2LDI0MDYyLDMxNTYzLDI2MDIwLDM3MzI5LDIwMTcwLDI3OTQxLDM1MTY3LDMyMDM5LDM4MTgyLDIwMTY1LDM1ODgw''@;'; + put 'put ''LDM2ODI3LDM4NzcxLDI2MTg3LDMxMTA1LDM2ODE3LDI4OTA4LDI4MDI0LDMyMTUzLDMyMTU0LDMyMTU1LDMyMTU2LDMyMTU3LDMyMTU4LDMyMTU5LDMyMTYwLDMyMTYxLDMyMTYyLDMyMTYzLDMyMTY0LDMyMTY1LDMyMTY3LDMyMTY4LDMyMTY5LDMyMTcwLDMyMTcxLDMyMTcyLDMyMTczLDMy''@;'; + put 'put ''MTc1LDMyMTc2LDMyMTc3LDMyMTc4LDMyMTc5LDMyMTgwLDMyMTgxLDMyMTgyLDMyMTgzLDMyMTg0LDMyMTg1LDMyMTg2LDMyMTg3LDMyMTg4LDMyMTg5LDMyMTkwLDMyMTkxLDMyMTkyLDMyMTkzLDMyMTk0LDMyMTk1LDMyMTk2LDMyMTk3LDMyMTk4LDMyMTk5LDMyMjAwLDMyMjAxLDMyMjAy''@;'; + put 'put ''LDMyMjAzLDMyMjA0LDMyMjA1LDMyMjA2LDMyMjA3LDMyMjA4LDMyMjA5LDMyMjEwLDMyMjExLDMyMjEyLDMyMjEzLDMyMjE0LDMyMjE1LDMyMjE2LDMyMjE3LDMyMjE4LDMyMjE5LDMyMjIwLDMyMjIxLDMyMjIyLDMyMjIzLDMyMjI0LDMyMjI1LDMyMjI2LDMyMjI3LDMyMjI4LDMyMjI5LDMy''@;'; + put 'put ''MjMwLDMyMjMxLDMyMjMyLDMyMjMzLDMyMjM0LDMyMjM1LDMyMjM2LDMyMjM3LDMyMjM4LDMyMjM5LDMyMjQwLDMyMjQxLDMyMjQyLDMyMjQzLDMyMjQ0LDMyMjQ1LDMyMjQ2LDMyMjQ3LDMyMjQ4LDMyMjQ5LDMyMjUwLDIzNjEzLDIxMTcwLDMzNjA2LDIwODM0LDMzNTUwLDMwNTU1LDI2MjMw''@;'; + put 'put ''LDQwMTIwLDIwMTQwLDI0Nzc4LDMxOTM0LDMxOTIzLDMyNDYzLDIwMTE3LDM1Njg2LDI2MjIzLDM5MDQ4LDM4NzQ1LDIyNjU5LDI1OTY0LDM4MjM2LDI0NDUyLDMwMTUzLDM4NzQyLDMxNDU1LDMxNDU0LDIwOTI4LDI4ODQ3LDMxMzg0LDI1NTc4LDMxMzUwLDMyNDE2LDI5NTkwLDM4ODkzLDIw''@;'; + put 'put ''MDM3LDI4NzkyLDIwMDYxLDM3MjAyLDIxNDE3LDI1OTM3LDI2MDg3LDMzMjc2LDMzMjg1LDIxNjQ2LDIzNjAxLDMwMTA2LDM4ODE2LDI1MzA0LDI5NDAxLDMwMTQxLDIzNjIxLDM5NTQ1LDMzNzM4LDIzNjE2LDIxNjMyLDMwNjk3LDIwMDMwLDI3ODIyLDMyODU4LDI1Mjk4LDI1NDU0LDI0MDQw''@;'; + put 'put ''LDIwODU1LDM2MzE3LDM2MzgyLDM4MTkxLDIwNDY1LDIxNDc3LDI0ODA3LDI4ODQ0LDIxMDk1LDI1NDI0LDQwNTE1LDIzMDcxLDIwNTE4LDMwNTE5LDIxMzY3LDMyNDgyLDI1NzMzLDI1ODk5LDI1MjI1LDI1NDk2LDIwNTAwLDI5MjM3LDM1MjczLDIwOTE1LDM1Nzc2LDMyNDc3LDIyMzQzLDMz''@;'; + put 'put ''NzQwLDM4MDU1LDIwODkxLDIxNTMxLDIzODAzLDMyMjUxLDMyMjUyLDMyMjUzLDMyMjU0LDMyMjU1LDMyMjU2LDMyMjU3LDMyMjU4LDMyMjU5LDMyMjYwLDMyMjYxLDMyMjYyLDMyMjYzLDMyMjY0LDMyMjY1LDMyMjY2LDMyMjY3LDMyMjY4LDMyMjY5LDMyMjcwLDMyMjcxLDMyMjcyLDMyMjcz''@;'; + put 'put ''LDMyMjc0LDMyMjc1LDMyMjc2LDMyMjc3LDMyMjc4LDMyMjc5LDMyMjgwLDMyMjgxLDMyMjgyLDMyMjgzLDMyMjg0LDMyMjg1LDMyMjg2LDMyMjg3LDMyMjg4LDMyMjg5LDMyMjkwLDMyMjkxLDMyMjkyLDMyMjkzLDMyMjk0LDMyMjk1LDMyMjk2LDMyMjk3LDMyMjk4LDMyMjk5LDMyMzAwLDMy''@;'; + put 'put ''MzAxLDMyMzAyLDMyMzAzLDMyMzA0LDMyMzA1LDMyMzA2LDMyMzA3LDMyMzA4LDMyMzA5LDMyMzEwLDMyMzExLDMyMzEyLDMyMzEzLDMyMzE0LDMyMzE2LDMyMzE3LDMyMzE4LDMyMzE5LDMyMzIwLDMyMzIyLDMyMzIzLDMyMzI0LDMyMzI1LDMyMzI2LDMyMzI4LDMyMzI5LDMyMzMwLDMyMzMx''@;'; + put 'put ''LDMyMzMyLDMyMzMzLDMyMzM0LDMyMzM1LDMyMzM2LDMyMzM3LDMyMzM4LDMyMzM5LDMyMzQwLDMyMzQxLDMyMzQyLDMyMzQzLDMyMzQ0LDMyMzQ1LDMyMzQ2LDMyMzQ3LDMyMzQ4LDMyMzQ5LDIwNDI2LDMxNDU5LDI3OTk0LDM3MDg5LDM5NTY3LDIxODg4LDIxNjU0LDIxMzQ1LDIxNjc5LDI0''@;'; + put 'put ''MzIwLDI1NTc3LDI2OTk5LDIwOTc1LDI0OTM2LDIxMDAyLDIyNTcwLDIxMjA4LDIyMzUwLDMwNzMzLDMwNDc1LDI0MjQ3LDI0OTUxLDMxOTY4LDI1MTc5LDI1MjM5LDIwMTMwLDI4ODIxLDMyNzcxLDI1MzM1LDI4OTAwLDM4NzUyLDIyMzkxLDMzNDk5LDI2NjA3LDI2ODY5LDMwOTMzLDM5MDYz''@;'; + put 'put ''LDMxMTg1LDIyNzcxLDIxNjgzLDIxNDg3LDI4MjEyLDIwODExLDIxMDUxLDIzNDU4LDM1ODM4LDMyOTQzLDIxODI3LDIyNDM4LDI0NjkxLDIyMzUzLDIxNTQ5LDMxMzU0LDI0NjU2LDIzMzgwLDI1NTExLDI1MjQ4LDIxNDc1LDI1MTg3LDIzNDk1LDI2NTQzLDIxNzQxLDMxMzkxLDMzNTEwLDM3''@;'; + put 'put ''MjM5LDI0MjExLDM1MDQ0LDIyODQwLDIyNDQ2LDI1MzU4LDM2MzI4LDMzMDA3LDIyMzU5LDMxNjA3LDIwMzkzLDI0NTU1LDIzNDg1LDI3NDU0LDIxMjgxLDMxNTY4LDI5Mzc4LDI2Njk0LDMwNzE5LDMwNTE4LDI2MTAzLDIwOTE3LDIwMTExLDMwNDIwLDIzNzQzLDMxMzk3LDMzOTA5LDIyODYy''@;'; + put 'put ''LDM5NzQ1LDIwNjA4LDMyMzUwLDMyMzUxLDMyMzUyLDMyMzUzLDMyMzU0LDMyMzU1LDMyMzU2LDMyMzU3LDMyMzU4LDMyMzU5LDMyMzYwLDMyMzYxLDMyMzYyLDMyMzYzLDMyMzY0LDMyMzY1LDMyMzY2LDMyMzY3LDMyMzY4LDMyMzY5LDMyMzcwLDMyMzcxLDMyMzcyLDMyMzczLDMyMzc0LDMy''@;'; + put 'put ''Mzc1LDMyMzc2LDMyMzc3LDMyMzc4LDMyMzc5LDMyMzgwLDMyMzgxLDMyMzgyLDMyMzgzLDMyMzg0LDMyMzg1LDMyMzg3LDMyMzg4LDMyMzg5LDMyMzkwLDMyMzkxLDMyMzkyLDMyMzkzLDMyMzk0LDMyMzk1LDMyMzk2LDMyMzk3LDMyMzk4LDMyMzk5LDMyNDAwLDMyNDAxLDMyNDAyLDMyNDAz''@;'; + put 'put ''LDMyNDA0LDMyNDA1LDMyNDA2LDMyNDA3LDMyNDA4LDMyNDA5LDMyNDEwLDMyNDEyLDMyNDEzLDMyNDE0LDMyNDMwLDMyNDM2LDMyNDQzLDMyNDQ0LDMyNDcwLDMyNDg0LDMyNDkyLDMyNTA1LDMyNTIyLDMyNTI4LDMyNTQyLDMyNTY3LDMyNTY5LDMyNTcxLDMyNTcyLDMyNTczLDMyNTc0LDMy''@;'; + put 'put ''NTc1LDMyNTc2LDMyNTc3LDMyNTc5LDMyNTgyLDMyNTgzLDMyNTg0LDMyNTg1LDMyNTg2LDMyNTg3LDMyNTg4LDMyNTg5LDMyNTkwLDMyNTkxLDMyNTk0LDMyNTk1LDM5MzA0LDI0ODcxLDI4MjkxLDIyMzcyLDI2MTE4LDI1NDE0LDIyMjU2LDI1MzI0LDI1MTkzLDI0Mjc1LDM4NDIwLDIyNDAz''@;'; + put 'put ''LDI1Mjg5LDIxODk1LDM0NTkzLDMzMDk4LDM2NzcxLDIxODYyLDMzNzEzLDI2NDY5LDM2MTgyLDM0MDEzLDIzMTQ2LDI2NjM5LDI1MzE4LDMxNzI2LDM4NDE3LDIwODQ4LDI4NTcyLDM1ODg4LDI1NTk3LDM1MjcyLDI1MDQyLDMyNTE4LDI4ODY2LDI4Mzg5LDI5NzAxLDI3MDI4LDI5NDM2LDI0''@;'; + put 'put ''MjY2LDM3MDcwLDI2MzkxLDI4MDEwLDI1NDM4LDIxMTcxLDI5MjgyLDMyNzY5LDIwMzMyLDIzMDEzLDM3MjI2LDI4ODg5LDI4MDYxLDIxMjAyLDIwMDQ4LDM4NjQ3LDM4MjUzLDM0MTc0LDMwOTIyLDMyMDQ3LDIwNzY5LDIyNDE4LDI1Nzk0LDMyOTA3LDMxODY3LDI3ODgyLDI2ODY1LDI2OTc0''@;'; + put 'put ''LDIwOTE5LDIxNDAwLDI2NzkyLDI5MzEzLDQwNjU0LDMxNzI5LDI5NDMyLDMxMTYzLDI4NDM1LDI5NzAyLDI2NDQ2LDM3MzI0LDQwMTAwLDMxMDM2LDMzNjczLDMzNjIwLDIxNTE5LDI2NjQ3LDIwMDI5LDIxMzg1LDIxMTY5LDMwNzgyLDIxMzgyLDIxMDMzLDIwNjE2LDIwMzYzLDIwNDMyLDMy''@;'; + put 'put ''NTk4LDMyNjAxLDMyNjAzLDMyNjA0LDMyNjA1LDMyNjA2LDMyNjA4LDMyNjExLDMyNjEyLDMyNjEzLDMyNjE0LDMyNjE1LDMyNjE5LDMyNjIwLDMyNjIxLDMyNjIzLDMyNjI0LDMyNjI3LDMyNjI5LDMyNjMwLDMyNjMxLDMyNjMyLDMyNjM0LDMyNjM1LDMyNjM2LDMyNjM3LDMyNjM5LDMyNjQw''@;'; + put 'put ''LDMyNjQyLDMyNjQzLDMyNjQ0LDMyNjQ1LDMyNjQ2LDMyNjQ3LDMyNjQ4LDMyNjQ5LDMyNjUxLDMyNjUzLDMyNjU1LDMyNjU2LDMyNjU3LDMyNjU4LDMyNjU5LDMyNjYxLDMyNjYyLDMyNjYzLDMyNjY0LDMyNjY1LDMyNjY3LDMyNjY4LDMyNjcyLDMyNjc0LDMyNjc1LDMyNjc3LDMyNjc4LDMy''@;'; + put 'put ''NjgwLDMyNjgxLDMyNjgyLDMyNjgzLDMyNjg0LDMyNjg1LDMyNjg2LDMyNjg5LDMyNjkxLDMyNjkyLDMyNjkzLDMyNjk0LDMyNjk1LDMyNjk4LDMyNjk5LDMyNzAyLDMyNzA0LDMyNzA2LDMyNzA3LDMyNzA4LDMyNzEwLDMyNzExLDMyNzEyLDMyNzEzLDMyNzE1LDMyNzE3LDMyNzE5LDMyNzIw''@;'; + put 'put ''LDMyNzIxLDMyNzIyLDMyNzIzLDMyNzI2LDMyNzI3LDMyNzI5LDMyNzMwLDMyNzMxLDMyNzMyLDMyNzMzLDMyNzM0LDMyNzM4LDMyNzM5LDMwMTc4LDMxNDM1LDMxODkwLDI3ODEzLDM4NTgyLDIxMTQ3LDI5ODI3LDIxNzM3LDIwNDU3LDMyODUyLDMzNzE0LDM2ODMwLDM4MjU2LDI0MjY1LDI0''@;'; + put 'put ''NjA0LDI4MDYzLDI0MDg4LDI1OTQ3LDMzMDgwLDM4MTQyLDI0NjUxLDI4ODYwLDMyNDUxLDMxOTE4LDIwOTM3LDI2NzUzLDMxOTIxLDMzMzkxLDIwMDA0LDM2NzQyLDM3MzI3LDI2MjM4LDIwMTQyLDM1ODQ1LDI1NzY5LDMyODQyLDIwNjk4LDMwMTAzLDI5MTM0LDIzNTI1LDM2Nzk3LDI4NTE4''@;'; + put 'put ''LDIwMTAyLDI1NzMwLDM4MjQzLDI0Mjc4LDI2MDA5LDIxMDE1LDM1MDEwLDI4ODcyLDIxMTU1LDI5NDU0LDI5NzQ3LDI2NTE5LDMwOTY3LDM4Njc4LDIwMDIwLDM3MDUxLDQwMTU4LDI4MTA3LDIwOTU1LDM2MTYxLDIxNTMzLDI1Mjk0LDI5NjE4LDMzNzc3LDM4NjQ2LDQwODM2LDM4MDgzLDIw''@;'; + put 'put ''Mjc4LDMyNjY2LDIwOTQwLDI4Nzg5LDM4NTE3LDIzNzI1LDM5MDQ2LDIxNDc4LDIwMTk2LDI4MzE2LDI5NzA1LDI3MDYwLDMwODI3LDM5MzExLDMwMDQxLDIxMDE2LDMwMjQ0LDI3OTY5LDI2NjExLDIwODQ1LDQwODU3LDMyODQzLDIxNjU3LDMxNTQ4LDMxNDIzLDMyNzQwLDMyNzQzLDMyNzQ0''@;'; + put 'put ''LDMyNzQ2LDMyNzQ3LDMyNzQ4LDMyNzQ5LDMyNzUxLDMyNzU0LDMyNzU2LDMyNzU3LDMyNzU4LDMyNzU5LDMyNzYwLDMyNzYxLDMyNzYyLDMyNzY1LDMyNzY2LDMyNzY3LDMyNzcwLDMyNzc1LDMyNzc2LDMyNzc3LDMyNzc4LDMyNzgyLDMyNzgzLDMyNzg1LDMyNzg3LDMyNzk0LDMyNzk1LDMy''@;'; + put 'put ''Nzk3LDMyNzk4LDMyNzk5LDMyODAxLDMyODAzLDMyODA0LDMyODExLDMyODEyLDMyODEzLDMyODE0LDMyODE1LDMyODE2LDMyODE4LDMyODIwLDMyODI1LDMyODI2LDMyODI4LDMyODMwLDMyODMyLDMyODMzLDMyODM2LDMyODM3LDMyODM5LDMyODQwLDMyODQxLDMyODQ2LDMyODQ3LDMyODQ4''@;'; + put 'put ''LDMyODQ5LDMyODUxLDMyODUzLDMyODU0LDMyODU1LDMyODU3LDMyODU5LDMyODYwLDMyODYxLDMyODYyLDMyODYzLDMyODY0LDMyODY1LDMyODY2LDMyODY3LDMyODY4LDMyODY5LDMyODcwLDMyODcxLDMyODcyLDMyODc1LDMyODc2LDMyODc3LDMyODc4LDMyODc5LDMyODgwLDMyODgyLDMy''@;'; + put 'put ''ODgzLDMyODg0LDMyODg1LDMyODg2LDMyODg3LDMyODg4LDMyODg5LDMyODkwLDMyODkxLDMyODkyLDMyODkzLDM4NTM0LDIyNDA0LDI1MzE0LDM4NDcxLDI3MDA0LDIzMDQ0LDI1NjAyLDMxNjk5LDI4NDMxLDM4NDc1LDMzNDQ2LDIxMzQ2LDM5MDQ1LDI0MjA4LDI4ODA5LDI1NTIzLDIxMzQ4''@;'; + put 'put ''LDM0MzgzLDQwMDY1LDQwNTk1LDMwODYwLDM4NzA2LDM2MzM1LDM2MTYyLDQwNTc1LDI4NTEwLDMxMTA4LDI0NDA1LDM4NDcwLDI1MTM0LDM5NTQwLDIxNTI1LDM4MTA5LDIwMzg3LDI2MDUzLDIzNjUzLDIzNjQ5LDMyNTMzLDM0Mzg1LDI3Njk1LDI0NDU5LDI5NTc1LDI4Mzg4LDMyNTExLDIz''@;'; + put 'put ''NzgyLDI1MzcxLDIzNDAyLDI4MzkwLDIxMzY1LDIwMDgxLDI1NTA0LDMwMDUzLDI1MjQ5LDM2NzE4LDIwMjYyLDIwMTc3LDI3ODE0LDMyNDM4LDM1NzcwLDMzODIxLDM0NzQ2LDMyNTk5LDM2OTIzLDM4MTc5LDMxNjU3LDM5NTg1LDM1MDY0LDMzODUzLDI3OTMxLDM5NTU4LDMyNDc2LDIyOTIw''@;'; + put 'put ''LDQwNjM1LDI5NTk1LDMwNzIxLDM0NDM0LDM5NTMyLDM5NTU0LDIyMDQzLDIxNTI3LDIyNDc1LDIwMDgwLDQwNjE0LDIxMzM0LDM2ODA4LDMzMDMzLDMwNjEwLDM5MzE0LDM0NTQyLDI4Mzg1LDM0MDY3LDI2MzY0LDI0OTMwLDI4NDU5LDMyODk0LDMyODk3LDMyODk4LDMyOTAxLDMyOTA0LDMy''@;'; + put 'put ''OTA2LDMyOTA5LDMyOTEwLDMyOTExLDMyOTEyLDMyOTEzLDMyOTE0LDMyOTE2LDMyOTE3LDMyOTE5LDMyOTIxLDMyOTI2LDMyOTMxLDMyOTM0LDMyOTM1LDMyOTM2LDMyOTQwLDMyOTQ0LDMyOTQ3LDMyOTQ5LDMyOTUwLDMyOTUyLDMyOTUzLDMyOTU1LDMyOTY1LDMyOTY3LDMyOTY4LDMyOTY5''@;'; + put 'put ''LDMyOTcwLDMyOTcxLDMyOTc1LDMyOTc2LDMyOTc3LDMyOTc4LDMyOTc5LDMyOTgwLDMyOTgxLDMyOTg0LDMyOTkxLDMyOTkyLDMyOTk0LDMyOTk1LDMyOTk4LDMzMDA2LDMzMDEzLDMzMDE1LDMzMDE3LDMzMDE5LDMzMDIyLDMzMDIzLDMzMDI0LDMzMDI1LDMzMDI3LDMzMDI4LDMzMDI5LDMz''@;'; + put 'put ''MDMxLDMzMDMyLDMzMDM1LDMzMDM2LDMzMDQ1LDMzMDQ3LDMzMDQ5LDMzMDUxLDMzMDUyLDMzMDUzLDMzMDU1LDMzMDU2LDMzMDU3LDMzMDU4LDMzMDU5LDMzMDYwLDMzMDYxLDMzMDYyLDMzMDYzLDMzMDY0LDMzMDY1LDMzMDY2LDMzMDY3LDMzMDY5LDMzMDcwLDMzMDcyLDMzMDc1LDMzMDc2''@;'; + put 'put ''LDMzMDc3LDMzMDc5LDMzMDgxLDMzMDgyLDMzMDgzLDMzMDg0LDMzMDg1LDMzMDg3LDM1ODgxLDMzNDI2LDMzNTc5LDMwNDUwLDI3NjY3LDI0NTM3LDMzNzI1LDI5NDgzLDMzNTQxLDM4MTcwLDI3NjExLDMwNjgzLDM4MDg2LDIxMzU5LDMzNTM4LDIwODgyLDI0MTI1LDM1OTgwLDM2MTUyLDIw''@;'; + put 'put ''MDQwLDI5NjExLDI2NTIyLDI2NzU3LDM3MjM4LDM4NjY1LDI5MDI4LDI3ODA5LDMwNDczLDIzMTg2LDM4MjA5LDI3NTk5LDMyNjU0LDI2MTUxLDIzNTA0LDIyOTY5LDIzMTk0LDM4Mzc2LDM4MzkxLDIwMjA0LDMzODA0LDMzOTQ1LDI3MzA4LDMwNDMxLDM4MTkyLDI5NDY3LDI2NzkwLDIzMzkx''@;'; + put 'put ''LDMwNTExLDM3Mjc0LDM4NzUzLDMxOTY0LDM2ODU1LDM1ODY4LDI0MzU3LDMxODU5LDMxMTkyLDM1MjY5LDI3ODUyLDM0NTg4LDIzNDk0LDI0MTMwLDI2ODI1LDMwNDk2LDMyNTAxLDIwODg1LDIwODEzLDIxMTkzLDIzMDgxLDMyNTE3LDM4NzU0LDMzNDk1LDI1NTUxLDMwNTk2LDM0MjU2LDMx''@;'; + put 'put ''MTg2LDI4MjE4LDI0MjE3LDIyOTM3LDM0MDY1LDI4NzgxLDI3NjY1LDI1Mjc5LDMwMzk5LDI1OTM1LDI0NzUxLDM4Mzk3LDI2MTI2LDM0NzE5LDQwNDgzLDM4MTI1LDIxNTE3LDIxNjI5LDM1ODg0LDI1NzIwLDMzMDg4LDMzMDg5LDMzMDkwLDMzMDkxLDMzMDkyLDMzMDkzLDMzMDk1LDMzMDk3''@;'; + put 'put ''LDMzMTAxLDMzMTAyLDMzMTAzLDMzMTA2LDMzMTEwLDMzMTExLDMzMTEyLDMzMTE1LDMzMTE2LDMzMTE3LDMzMTE4LDMzMTE5LDMzMTIxLDMzMTIyLDMzMTIzLDMzMTI0LDMzMTI2LDMzMTI4LDMzMTMwLDMzMTMxLDMzMTMyLDMzMTM1LDMzMTM4LDMzMTM5LDMzMTQxLDMzMTQyLDMzMTQzLDMz''@;'; + put 'put ''MTQ0LDMzMTUzLDMzMTU1LDMzMTU2LDMzMTU3LDMzMTU4LDMzMTU5LDMzMTYxLDMzMTYzLDMzMTY0LDMzMTY1LDMzMTY2LDMzMTY4LDMzMTcwLDMzMTcxLDMzMTcyLDMzMTczLDMzMTc0LDMzMTc1LDMzMTc3LDMzMTc4LDMzMTgyLDMzMTgzLDMzMTg0LDMzMTg1LDMzMTg2LDMzMTg4LDMzMTg5''@;'; + put 'put ''LDMzMTkxLDMzMTkzLDMzMTk1LDMzMTk2LDMzMTk3LDMzMTk4LDMzMTk5LDMzMjAwLDMzMjAxLDMzMjAyLDMzMjA0LDMzMjA1LDMzMjA2LDMzMjA3LDMzMjA4LDMzMjA5LDMzMjEyLDMzMjEzLDMzMjE0LDMzMjE1LDMzMjIwLDMzMjIxLDMzMjIzLDMzMjI0LDMzMjI1LDMzMjI3LDMzMjI5LDMz''@;'; + put 'put ''MjMwLDMzMjMxLDMzMjMyLDMzMjMzLDMzMjM0LDMzMjM1LDI1NzIxLDM0MzIxLDI3MTY5LDMzMTgwLDMwOTUyLDI1NzA1LDM5NzY0LDI1MjczLDI2NDExLDMzNzA3LDIyNjk2LDQwNjY0LDI3ODE5LDI4NDQ4LDIzNTE4LDM4NDc2LDM1ODUxLDI5Mjc5LDI2NTc2LDI1Mjg3LDI5MjgxLDIwMTM3''@;'; + put 'put ''LDIyOTgyLDI3NTk3LDIyNjc1LDI2Mjg2LDI0MTQ5LDIxMjE1LDI0OTE3LDI2NDA4LDMwNDQ2LDMwNTY2LDI5Mjg3LDMxMzAyLDI1MzQzLDIxNzM4LDIxNTg0LDM4MDQ4LDM3MDI3LDIzMDY4LDMyNDM1LDI3NjcwLDIwMDM1LDIyOTAyLDMyNzg0LDIyODU2LDIxMzM1LDMwMDA3LDM4NTkwLDIy''@;'; + put 'put ''MjE4LDI1Mzc2LDMzMDQxLDI0NzAwLDM4MzkzLDI4MTE4LDIxNjAyLDM5Mjk3LDIwODY5LDIzMjczLDMzMDIxLDIyOTU4LDM4Njc1LDIwNTIyLDI3ODc3LDIzNjEyLDI1MzExLDIwMzIwLDIxMzExLDMzMTQ3LDM2ODcwLDI4MzQ2LDM0MDkxLDI1Mjg4LDI0MTgwLDMwOTEwLDI1NzgxLDI1NDY3''@;'; + put 'put ''LDI0NTY1LDIzMDY0LDM3MjQ3LDQwNDc5LDIzNjE1LDI1NDIzLDMyODM0LDIzNDIxLDIxODcwLDM4MjE4LDM4MjIxLDI4MDM3LDI0NzQ0LDI2NTkyLDI5NDA2LDIwOTU3LDIzNDI1LDMzMjM2LDMzMjM3LDMzMjM4LDMzMjM5LDMzMjQwLDMzMjQxLDMzMjQyLDMzMjQzLDMzMjQ0LDMzMjQ1LDMz''@;'; + put 'put ''MjQ2LDMzMjQ3LDMzMjQ4LDMzMjQ5LDMzMjUwLDMzMjUyLDMzMjUzLDMzMjU0LDMzMjU2LDMzMjU3LDMzMjU5LDMzMjYyLDMzMjYzLDMzMjY0LDMzMjY1LDMzMjY2LDMzMjY5LDMzMjcwLDMzMjcxLDMzMjcyLDMzMjczLDMzMjc0LDMzMjc3LDMzMjc5LDMzMjgzLDMzMjg3LDMzMjg4LDMzMjg5''@;'; + put 'put ''LDMzMjkwLDMzMjkxLDMzMjk0LDMzMjk1LDMzMjk3LDMzMjk5LDMzMzAxLDMzMzAyLDMzMzAzLDMzMzA0LDMzMzA1LDMzMzA2LDMzMzA5LDMzMzEyLDMzMzE2LDMzMzE3LDMzMzE4LDMzMzE5LDMzMzIxLDMzMzI2LDMzMzMwLDMzMzM4LDMzMzQwLDMzMzQxLDMzMzQzLDMzMzQ0LDMzMzQ1LDMz''@;'; + put 'put ''MzQ2LDMzMzQ3LDMzMzQ5LDMzMzUwLDMzMzUyLDMzMzU0LDMzMzU2LDMzMzU3LDMzMzU4LDMzMzYwLDMzMzYxLDMzMzYyLDMzMzYzLDMzMzY0LDMzMzY1LDMzMzY2LDMzMzY3LDMzMzY5LDMzMzcxLDMzMzcyLDMzMzczLDMzMzc0LDMzMzc2LDMzMzc3LDMzMzc4LDMzMzc5LDMzMzgwLDMzMzgx''@;'; + put 'put ''LDMzMzgyLDMzMzgzLDMzMzg1LDI1MzE5LDI3ODcwLDI5Mjc1LDI1MTk3LDM4MDYyLDMyNDQ1LDMzMDQzLDI3OTg3LDIwODkyLDI0MzI0LDIyOTAwLDIxMTYyLDI0NTk0LDIyODk5LDI2MjYyLDM0Mzg0LDMwMTExLDI1Mzg2LDI1MDYyLDMxOTgzLDM1ODM0LDIxNzM0LDI3NDMxLDQwNDg1LDI3''@;'; + put 'put ''NTcyLDM0MjYxLDIxNTg5LDIwNTk4LDI3ODEyLDIxODY2LDM2Mjc2LDI5MjI4LDI0MDg1LDI0NTk3LDI5NzUwLDI1MjkzLDI1NDkwLDI5MjYwLDI0NDcyLDI4MjI3LDI3OTY2LDI1ODU2LDI4NTA0LDMwNDI0LDMwOTI4LDMwNDYwLDMwMDM2LDIxMDI4LDIxNDY3LDIwMDUxLDI0MjIyLDI2MDQ5''@;'; + put 'put ''LDMyODEwLDMyOTgyLDI1MjQzLDIxNjM4LDIxMDMyLDI4ODQ2LDM0OTU3LDM2MzA1LDI3ODczLDIxNjI0LDMyOTg2LDIyNTIxLDM1MDYwLDM2MTgwLDM4NTA2LDM3MTk3LDIwMzI5LDI3ODAzLDIxOTQzLDMwNDA2LDMwNzY4LDI1MjU2LDI4OTIxLDI4NTU4LDI0NDI5LDM0MDI4LDI2ODQyLDMw''@;'; + put 'put ''ODQ0LDMxNzM1LDMzMTkyLDI2Mzc5LDQwNTI3LDI1NDQ3LDMwODk2LDIyMzgzLDMwNzM4LDM4NzEzLDI1MjA5LDI1MjU5LDIxMTI4LDI5NzQ5LDI3NjA3LDMzMzg2LDMzMzg3LDMzMzg4LDMzMzg5LDMzMzkzLDMzMzk3LDMzMzk4LDMzMzk5LDMzNDAwLDMzNDAzLDMzNDA0LDMzNDA4LDMzNDA5''@;'; + put 'put ''LDMzNDExLDMzNDEzLDMzNDE0LDMzNDE1LDMzNDE3LDMzNDIwLDMzNDI0LDMzNDI3LDMzNDI4LDMzNDI5LDMzNDMwLDMzNDM0LDMzNDM1LDMzNDM4LDMzNDQwLDMzNDQyLDMzNDQzLDMzNDQ3LDMzNDU4LDMzNDYxLDMzNDYyLDMzNDY2LDMzNDY3LDMzNDY4LDMzNDcxLDMzNDcyLDMzNDc0LDMz''@;'; + put 'put ''NDc1LDMzNDc3LDMzNDc4LDMzNDgxLDMzNDg4LDMzNDk0LDMzNDk3LDMzNDk4LDMzNTAxLDMzNTA2LDMzNTExLDMzNTEyLDMzNTEzLDMzNTE0LDMzNTE2LDMzNTE3LDMzNTE4LDMzNTIwLDMzNTIyLDMzNTIzLDMzNTI1LDMzNTI2LDMzNTI4LDMzNTMwLDMzNTMyLDMzNTMzLDMzNTM0LDMzNTM1''@;'; + put 'put ''LDMzNTM2LDMzNTQ2LDMzNTQ3LDMzNTQ5LDMzNTUyLDMzNTU0LDMzNTU1LDMzNTU4LDMzNTYwLDMzNTYxLDMzNTY1LDMzNTY2LDMzNTY3LDMzNTY4LDMzNTY5LDMzNTcwLDMzNTcxLDMzNTcyLDMzNTczLDMzNTc0LDMzNTc3LDMzNTc4LDMzNTgyLDMzNTg0LDMzNTg2LDMzNTkxLDMzNTk1LDMz''@;'; + put 'put ''NTk3LDIxODYwLDMzMDg2LDMwMTMwLDMwMzgyLDIxMzA1LDMwMTc0LDIwNzMxLDIzNjE3LDM1NjkyLDMxNjg3LDIwNTU5LDI5MjU1LDM5NTc1LDM5MTI4LDI4NDE4LDI5OTIyLDMxMDgwLDI1NzM1LDMwNjI5LDI1MzQwLDM5MDU3LDM2MTM5LDIxNjk3LDMyODU2LDIwMDUwLDIyMzc4LDMzNTI5''@;'; + put 'put ''LDMzODA1LDI0MTc5LDIwOTczLDI5OTQyLDM1NzgwLDIzNjMxLDIyMzY5LDI3OTAwLDM5MDQ3LDIzMTEwLDMwNzcyLDM5NzQ4LDM2ODQzLDMxODkzLDIxMDc4LDI1MTY5LDM4MTM4LDIwMTY2LDMzNjcwLDMzODg5LDMzNzY5LDMzOTcwLDIyNDg0LDI2NDIwLDIyMjc1LDI2MjIyLDI4MDA2LDM1''@;'; + put 'put ''ODg5LDI2MzMzLDI4Njg5LDI2Mzk5LDI3NDUwLDI2NjQ2LDI1MTE0LDIyOTcxLDE5OTcxLDIwOTMyLDI4NDIyLDI2NTc4LDI3NzkxLDIwODU0LDI2ODI3LDIyODU1LDI3NDk1LDMwMDU0LDIzODIyLDMzMDQwLDQwNzg0LDI2MDcxLDMxMDQ4LDMxMDQxLDM5NTY5LDM2MjE1LDIzNjgyLDIwMDYy''@;'; + put 'put ''LDIwMjI1LDIxNTUxLDIyODY1LDMwNzMyLDIyMTIwLDI3NjY4LDM2ODA0LDI0MzIzLDI3NzczLDI3ODc1LDM1NzU1LDI1NDg4LDMzNTk4LDMzNTk5LDMzNjAxLDMzNjAyLDMzNjA0LDMzNjA1LDMzNjA4LDMzNjEwLDMzNjExLDMzNjEyLDMzNjEzLDMzNjE0LDMzNjE5LDMzNjIxLDMzNjIyLDMz''@;'; + put 'put ''NjIzLDMzNjI0LDMzNjI1LDMzNjI5LDMzNjM0LDMzNjQ4LDMzNjQ5LDMzNjUwLDMzNjUxLDMzNjUyLDMzNjUzLDMzNjU0LDMzNjU3LDMzNjU4LDMzNjYyLDMzNjYzLDMzNjY0LDMzNjY1LDMzNjY2LDMzNjY3LDMzNjY4LDMzNjcxLDMzNjcyLDMzNjc0LDMzNjc1LDMzNjc2LDMzNjc3LDMzNjc5''@;'; + put 'put ''LDMzNjgwLDMzNjgxLDMzNjg0LDMzNjg1LDMzNjg2LDMzNjg3LDMzNjg5LDMzNjkwLDMzNjkzLDMzNjk1LDMzNjk3LDMzNjk4LDMzNjk5LDMzNzAwLDMzNzAxLDMzNzAyLDMzNzAzLDMzNzA4LDMzNzA5LDMzNzEwLDMzNzExLDMzNzE3LDMzNzIzLDMzNzI2LDMzNzI3LDMzNzMwLDMzNzMxLDMz''@;'; + put 'put ''NzMyLDMzNzM0LDMzNzM2LDMzNzM3LDMzNzM5LDMzNzQxLDMzNzQyLDMzNzQ0LDMzNzQ1LDMzNzQ2LDMzNzQ3LDMzNzQ5LDMzNzUxLDMzNzUzLDMzNzU0LDMzNzU1LDMzNzU4LDMzNzYyLDMzNzYzLDMzNzY0LDMzNzY2LDMzNzY3LDMzNzY4LDMzNzcxLDMzNzcyLDMzNzczLDI0Njg4LDI3OTY1''@;'; + put 'put ''LDI5MzAxLDI1MTkwLDM4MDMwLDM4MDg1LDIxMzE1LDM2ODAxLDMxNjE0LDIwMTkxLDM1ODc4LDIwMDk0LDQwNjYwLDM4MDY1LDM4MDY3LDIxMDY5LDI4NTA4LDM2OTYzLDI3OTczLDM1ODkyLDIyNTQ1LDIzODg0LDI3NDI0LDI3NDY1LDI2NTM4LDIxNTk1LDMzMTA4LDMyNjUyLDIyNjgxLDM0''@;'; + put 'put ''MTAzLDI0Mzc4LDI1MjUwLDI3MjA3LDM4MjAxLDI1OTcwLDI0NzA4LDI2NzI1LDMwNjMxLDIwMDUyLDIwMzkyLDI0MDM5LDM4ODA4LDI1NzcyLDMyNzI4LDIzNzg5LDIwNDMxLDMxMzczLDIwOTk5LDMzNTQwLDE5OTg4LDI0NjIzLDMxMzYzLDM4MDU0LDIwNDA1LDIwMTQ2LDMxMjA2LDI5NzQ4''@;'; + put 'put ''LDIxMjIwLDMzNDY1LDI1ODEwLDMxMTY1LDIzNTE3LDI3Nzc3LDM4NzM4LDM2NzMxLDI3NjgyLDIwNTQyLDIxMzc1LDI4MTY1LDI1ODA2LDI2MjI4LDI3Njk2LDI0NzczLDM5MDMxLDM1ODMxLDI0MTk4LDI5NzU2LDMxMzUxLDMxMTc5LDE5OTkyLDM3MDQxLDI5Njk5LDI3NzE0LDIyMjM0LDM3''@;'; + put 'put ''MTk1LDI3ODQ1LDM2MjM1LDIxMzA2LDM0NTAyLDI2MzU0LDM2NTI3LDIzNjI0LDM5NTM3LDI4MTkyLDMzNzc0LDMzNzc1LDMzNzc5LDMzNzgwLDMzNzgxLDMzNzgyLDMzNzgzLDMzNzg2LDMzNzg3LDMzNzg4LDMzNzkwLDMzNzkxLDMzNzkyLDMzNzk0LDMzNzk3LDMzNzk5LDMzODAwLDMzODAx''@;'; + put 'put ''LDMzODAyLDMzODA4LDMzODEwLDMzODExLDMzODEyLDMzODEzLDMzODE0LDMzODE1LDMzODE3LDMzODE4LDMzODE5LDMzODIyLDMzODIzLDMzODI0LDMzODI1LDMzODI2LDMzODI3LDMzODMzLDMzODM0LDMzODM1LDMzODM2LDMzODM3LDMzODM4LDMzODM5LDMzODQwLDMzODQyLDMzODQzLDMz''@;'; + put 'put ''ODQ0LDMzODQ1LDMzODQ2LDMzODQ3LDMzODQ5LDMzODUwLDMzODUxLDMzODU0LDMzODU1LDMzODU2LDMzODU3LDMzODU4LDMzODU5LDMzODYwLDMzODYxLDMzODYzLDMzODY0LDMzODY1LDMzODY2LDMzODY3LDMzODY4LDMzODY5LDMzODcwLDMzODcxLDMzODcyLDMzODc0LDMzODc1LDMzODc2''@;'; + put 'put ''LDMzODc3LDMzODc4LDMzODgwLDMzODg1LDMzODg2LDMzODg3LDMzODg4LDMzODkwLDMzODkyLDMzODkzLDMzODk0LDMzODk1LDMzODk2LDMzODk4LDMzOTAyLDMzOTAzLDMzOTA0LDMzOTA2LDMzOTA4LDMzOTExLDMzOTEzLDMzOTE1LDMzOTE2LDIxNDYyLDIzMDk0LDQwODQzLDM2MjU5LDIx''@;'; + put 'put ''NDM1LDIyMjgwLDM5MDc5LDI2NDM1LDM3Mjc1LDI3ODQ5LDIwODQwLDMwMTU0LDI1MzMxLDI5MzU2LDIxMDQ4LDIxMTQ5LDMyNTcwLDI4ODIwLDMwMjY0LDIxMzY0LDQwNTIyLDI3MDYzLDMwODMwLDM4NTkyLDM1MDMzLDMyNjc2LDI4OTgyLDI5MTIzLDIwODczLDI2NTc5LDI5OTI0LDIyNzU2''@;'; + put 'put ''LDI1ODgwLDIyMTk5LDM1NzUzLDM5Mjg2LDI1MjAwLDMyNDY5LDI0ODI1LDI4OTA5LDIyNzY0LDIwMTYxLDIwMTU0LDI0NTI1LDM4ODg3LDIwMjE5LDM1NzQ4LDIwOTk1LDIyOTIyLDMyNDI3LDI1MTcyLDIwMTczLDI2MDg1LDI1MTAyLDMzNTkyLDMzOTkzLDMzNjM1LDM0NzAxLDI5MDc2LDI4''@;'; + put 'put ''MzQyLDIzNDgxLDMyNDY2LDIwODg3LDI1NTQ1LDI2NTgwLDMyOTA1LDMzNTkzLDM0ODM3LDIwNzU0LDIzNDE4LDIyOTE0LDM2Nzg1LDIwMDgzLDI3NzQxLDIwODM3LDM1MTA5LDM2NzE5LDM4NDQ2LDM0MTIyLDI5NzkwLDM4MTYwLDM4Mzg0LDI4MDcwLDMzNTA5LDI0MzY5LDI1NzQ2LDI3OTIy''@;'; + put 'put ''LDMzODMyLDMzMTM0LDQwMTMxLDIyNjIyLDM2MTg3LDE5OTc3LDIxNDQxLDMzOTE3LDMzOTE4LDMzOTE5LDMzOTIwLDMzOTIxLDMzOTIzLDMzOTI0LDMzOTI1LDMzOTI2LDMzOTMwLDMzOTMzLDMzOTM1LDMzOTM2LDMzOTM3LDMzOTM4LDMzOTM5LDMzOTQwLDMzOTQxLDMzOTQyLDMzOTQ0LDMz''@;'; + put 'put ''OTQ2LDMzOTQ3LDMzOTQ5LDMzOTUwLDMzOTUxLDMzOTUyLDMzOTU0LDMzOTU1LDMzOTU2LDMzOTU3LDMzOTU4LDMzOTU5LDMzOTYwLDMzOTYxLDMzOTYyLDMzOTYzLDMzOTY0LDMzOTY1LDMzOTY2LDMzOTY4LDMzOTY5LDMzOTcxLDMzOTczLDMzOTc0LDMzOTc1LDMzOTc5LDMzOTgwLDMzOTgy''@;'; + put 'put ''LDMzOTg0LDMzOTg2LDMzOTg3LDMzOTg5LDMzOTkwLDMzOTkxLDMzOTkyLDMzOTk1LDMzOTk2LDMzOTk4LDMzOTk5LDM0MDAyLDM0MDA0LDM0MDA1LDM0MDA3LDM0MDA4LDM0MDA5LDM0MDEwLDM0MDExLDM0MDEyLDM0MDE0LDM0MDE3LDM0MDE4LDM0MDIwLDM0MDIzLDM0MDI0LDM0MDI1LDM0''@;'; + put 'put ''MDI2LDM0MDI3LDM0MDI5LDM0MDMwLDM0MDMxLDM0MDMzLDM0MDM0LDM0MDM1LDM0MDM2LDM0MDM3LDM0MDM4LDM0MDM5LDM0MDQwLDM0MDQxLDM0MDQyLDM0MDQzLDM0MDQ1LDM0MDQ2LDM0MDQ4LDM0MDQ5LDM0MDUwLDIwMjU0LDI1OTU1LDI2NzA1LDIxOTcxLDIwMDA3LDI1NjIwLDM5NTc4''@;'; + put 'put ''LDI1MTk1LDIzMjM0LDI5NzkxLDMzMzk0LDI4MDczLDI2ODYyLDIwNzExLDMzNjc4LDMwNzIyLDI2NDMyLDIxMDQ5LDI3ODAxLDMyNDMzLDIwNjY3LDIxODYxLDI5MDIyLDMxNTc5LDI2MTk0LDI5NjQyLDMzNTE1LDI2NDQxLDIzNjY1LDIxMDI0LDI5MDUzLDM0OTIzLDM4Mzc4LDM4NDg1LDI1''@;'; + put 'put ''Nzk3LDM2MTkzLDMzMjAzLDIxODkyLDI3NzMzLDI1MTU5LDMyNTU4LDIyNjc0LDIwMjYwLDIxODMwLDM2MTc1LDI2MTg4LDE5OTc4LDIzNTc4LDM1MDU5LDI2Nzg2LDI1NDIyLDMxMjQ1LDI4OTAzLDMzNDIxLDIxMjQyLDM4OTAyLDIzNTY5LDIxNzM2LDM3MDQ1LDMyNDYxLDIyODgyLDM2MTcw''@;'; + put 'put ''LDM0NTAzLDMzMjkyLDMzMjkzLDM2MTk4LDI1NjY4LDIzNTU2LDI0OTEzLDI4MDQxLDMxMDM4LDM1Nzc0LDMwNzc1LDMwMDAzLDIxNjI3LDIwMjgwLDM2NTIzLDI4MTQ1LDIzMDcyLDMyNDUzLDMxMDcwLDI3Nzg0LDIzNDU3LDIzMTU4LDI5OTc4LDMyOTU4LDI0OTEwLDI4MTgzLDIyNzY4LDI5''@;'; + put 'put ''OTgzLDI5OTg5LDI5Mjk4LDIxMzE5LDMyNDk5LDM0MDUxLDM0MDUyLDM0MDUzLDM0MDU0LDM0MDU1LDM0MDU2LDM0MDU3LDM0MDU4LDM0MDU5LDM0MDYxLDM0MDYyLDM0MDYzLDM0MDY0LDM0MDY2LDM0MDY4LDM0MDY5LDM0MDcwLDM0MDcyLDM0MDczLDM0MDc1LDM0MDc2LDM0MDc3LDM0MDc4''@;'; + put 'put ''LDM0MDgwLDM0MDgyLDM0MDgzLDM0MDg0LDM0MDg1LDM0MDg2LDM0MDg3LDM0MDg4LDM0MDg5LDM0MDkwLDM0MDkzLDM0MDk0LDM0MDk1LDM0MDk2LDM0MDk3LDM0MDk4LDM0MDk5LDM0MTAwLDM0MTAxLDM0MTAyLDM0MTEwLDM0MTExLDM0MTEyLDM0MTEzLDM0MTE0LDM0MTE2LDM0MTE3LDM0''@;'; + put 'put ''MTE4LDM0MTE5LDM0MTIzLDM0MTI0LDM0MTI1LDM0MTI2LDM0MTI3LDM0MTI4LDM0MTI5LDM0MTMwLDM0MTMxLDM0MTMyLDM0MTMzLDM0MTM1LDM0MTM2LDM0MTM4LDM0MTM5LDM0MTQwLDM0MTQxLDM0MTQzLDM0MTQ0LDM0MTQ1LDM0MTQ2LDM0MTQ3LDM0MTQ5LDM0MTUwLDM0MTUxLDM0MTUz''@;'; + put 'put ''LDM0MTU0LDM0MTU1LDM0MTU2LDM0MTU3LDM0MTU4LDM0MTU5LDM0MTYwLDM0MTYxLDM0MTYzLDM0MTY1LDM0MTY2LDM0MTY3LDM0MTY4LDM0MTcyLDM0MTczLDM0MTc1LDM0MTc2LDM0MTc3LDMwNDY1LDMwNDI3LDIxMDk3LDMyOTg4LDIyMzA3LDI0MDcyLDIyODMzLDI5NDIyLDI2MDQ1LDI4''@;'; + put 'put ''Mjg3LDM1Nzk5LDIzNjA4LDM0NDE3LDIxMzEzLDMwNzA3LDI1MzQyLDI2MTAyLDIwMTYwLDM5MTM1LDM0NDMyLDIzNDU0LDM1NzgyLDIxNDkwLDMwNjkwLDIwMzUxLDIzNjMwLDM5NTQyLDIyOTg3LDI0MzM1LDMxMDM0LDIyNzYzLDE5OTkwLDI2NjIzLDIwMTA3LDI1MzI1LDM1NDc1LDM2ODkz''@;'; + put 'put ''LDIxMTgzLDI2MTU5LDIxOTgwLDIyMTI0LDM2ODY2LDIwMTgxLDIwMzY1LDM3MzIyLDM5MjgwLDI3NjYzLDI0MDY2LDI0NjQzLDIzNDYwLDM1MjcwLDM1Nzk3LDI1OTEwLDI1MTYzLDM5MzE4LDIzNDMyLDIzNTUxLDI1NDgwLDIxODA2LDIxNDYzLDMwMjQ2LDIwODYxLDM0MDkyLDI2NTMwLDI2''@;'; + put 'put ''ODAzLDI3NTMwLDI1MjM0LDM2NzU1LDIxNDYwLDMzMjk4LDI4MTEzLDMwMDk1LDIwMDcwLDM2MTc0LDIzNDA4LDI5MDg3LDM0MjIzLDI2MjU3LDI2MzI5LDMyNjI2LDM0NTYwLDQwNjUzLDQwNzM2LDIzNjQ2LDI2NDE1LDM2ODQ4LDI2NjQxLDI2NDYzLDI1MTAxLDMxNDQ2LDIyNjYxLDI0MjQ2''@;'; + put 'put ''LDI1OTY4LDI4NDY1LDM0MTc4LDM0MTc5LDM0MTgyLDM0MTg0LDM0MTg1LDM0MTg2LDM0MTg3LDM0MTg4LDM0MTg5LDM0MTkwLDM0MTkyLDM0MTkzLDM0MTk0LDM0MTk1LDM0MTk2LDM0MTk3LDM0MTk4LDM0MTk5LDM0MjAwLDM0MjAxLDM0MjAyLDM0MjA1LDM0MjA2LDM0MjA3LDM0MjA4LDM0''@;'; + put 'put ''MjA5LDM0MjEwLDM0MjExLDM0MjEzLDM0MjE0LDM0MjE1LDM0MjE3LDM0MjE5LDM0MjIwLDM0MjIxLDM0MjI1LDM0MjI2LDM0MjI3LDM0MjI4LDM0MjI5LDM0MjMwLDM0MjMyLDM0MjM0LDM0MjM1LDM0MjM2LDM0MjM3LDM0MjM4LDM0MjM5LDM0MjQwLDM0MjQyLDM0MjQzLDM0MjQ0LDM0MjQ1''@;'; + put 'put ''LDM0MjQ2LDM0MjQ3LDM0MjQ4LDM0MjUwLDM0MjUxLDM0MjUyLDM0MjUzLDM0MjU0LDM0MjU3LDM0MjU4LDM0MjYwLDM0MjYyLDM0MjYzLDM0MjY0LDM0MjY1LDM0MjY2LDM0MjY3LDM0MjY5LDM0MjcwLDM0MjcxLDM0MjcyLDM0MjczLDM0Mjc0LDM0Mjc1LDM0Mjc3LDM0Mjc4LDM0Mjc5LDM0''@;'; + put 'put ''MjgwLDM0MjgyLDM0MjgzLDM0Mjg0LDM0Mjg1LDM0Mjg2LDM0Mjg3LDM0Mjg4LDM0Mjg5LDM0MjkwLDM0MjkxLDM0MjkyLDM0MjkzLDM0Mjk0LDM0Mjk1LDM0Mjk2LDI0NjYxLDIxMDQ3LDMyNzgxLDI1Njg0LDM0OTI4LDI5OTkzLDI0MDY5LDI2NjQzLDI1MzMyLDM4Njg0LDIxNDUyLDI5MjQ1''@;'; + put 'put ''LDM1ODQxLDI3NzAwLDMwNTYxLDMxMjQ2LDIxNTUwLDMwNjM2LDM5MDM0LDMzMzA4LDM1ODI4LDMwODA1LDI2Mzg4LDI4ODY1LDI2MDMxLDI1NzQ5LDIyMDcwLDI0NjA1LDMxMTY5LDIxNDk2LDE5OTk3LDI3NTE1LDMyOTAyLDIzNTQ2LDIxOTg3LDIyMjM1LDIwMjgyLDIwMjg0LDM5MjgyLDI0''@;'; + put 'put ''MDUxLDI2NDk0LDMyODI0LDI0NTc4LDM5MDQyLDM2ODY1LDIzNDM1LDM1NzcyLDM1ODI5LDI1NjI4LDMzMzY4LDI1ODIyLDIyMDEzLDMzNDg3LDM3MjIxLDIwNDM5LDMyMDMyLDM2ODk1LDMxOTAzLDIwNzIzLDIyNjA5LDI4MzM1LDIzNDg3LDM1Nzg1LDMyODk5LDM3MjQwLDMzOTQ4LDMxNjM5''@;'; + put 'put ''LDM0NDI5LDM4NTM5LDM4NTQzLDMyNDg1LDM5NjM1LDMwODYyLDIzNjgxLDMxMzE5LDM2OTMwLDM4NTY3LDMxMDcxLDIzMzg1LDI1NDM5LDMxNDk5LDM0MDAxLDI2Nzk3LDIxNzY2LDMyNTUzLDI5NzEyLDMyMDM0LDM4MTQ1LDI1MTUyLDIyNjA0LDIwMTgyLDIzNDI3LDIyOTA1LDIyNjEyLDM0''@;'; + put 'put ''Mjk3LDM0Mjk4LDM0MzAwLDM0MzAxLDM0MzAyLDM0MzA0LDM0MzA1LDM0MzA2LDM0MzA3LDM0MzA4LDM0MzEwLDM0MzExLDM0MzEyLDM0MzEzLDM0MzE0LDM0MzE1LDM0MzE2LDM0MzE3LDM0MzE4LDM0MzE5LDM0MzIwLDM0MzIyLDM0MzIzLDM0MzI0LDM0MzI1LDM0MzI3LDM0MzI4LDM0MzI5''@;'; + put 'put ''LDM0MzMwLDM0MzMxLDM0MzMyLDM0MzMzLDM0MzM0LDM0MzM1LDM0MzM2LDM0MzM3LDM0MzM4LDM0MzM5LDM0MzQwLDM0MzQxLDM0MzQyLDM0MzQ0LDM0MzQ2LDM0MzQ3LDM0MzQ4LDM0MzQ5LDM0MzUwLDM0MzUxLDM0MzUyLDM0MzUzLDM0MzU0LDM0MzU1LDM0MzU2LDM0MzU3LDM0MzU4LDM0''@;'; + put 'put ''MzU5LDM0MzYxLDM0MzYyLDM0MzYzLDM0MzY1LDM0MzY2LDM0MzY3LDM0MzY4LDM0MzY5LDM0MzcwLDM0MzcxLDM0MzcyLDM0MzczLDM0Mzc0LDM0Mzc1LDM0Mzc2LDM0Mzc3LDM0Mzc4LDM0Mzc5LDM0MzgwLDM0Mzg2LDM0Mzg3LDM0Mzg5LDM0MzkwLDM0MzkxLDM0MzkyLDM0MzkzLDM0Mzk1''@;'; + put 'put ''LDM0Mzk2LDM0Mzk3LDM0Mzk5LDM0NDAwLDM0NDAxLDM0NDAzLDM0NDA0LDM0NDA1LDM0NDA2LDM0NDA3LDM0NDA4LDM0NDA5LDM0NDEwLDI5NTQ5LDI1Mzc0LDM2NDI3LDM2MzY3LDMyOTc0LDMzNDkyLDI1MjYwLDIxNDg4LDI3ODg4LDM3MjE0LDIyODI2LDI0NTc3LDI3NzYwLDIyMzQ5LDI1''@;'; + put 'put ''Njc0LDM2MTM4LDMwMjUxLDI4MzkzLDIyMzYzLDI3MjY0LDMwMTkyLDI4NTI1LDM1ODg1LDM1ODQ4LDIyMzc0LDI3NjMxLDM0OTYyLDMwODk5LDI1NTA2LDIxNDk3LDI4ODQ1LDI3NzQ4LDIyNjE2LDI1NjQyLDIyNTMwLDI2ODQ4LDMzMTc5LDIxNzc2LDMxOTU4LDIwNTA0LDM2NTM4LDI4MTA4''@;'; + put 'put ''LDM2MjU1LDI4OTA3LDI1NDg3LDI4MDU5LDI4MzcyLDMyNDg2LDMzNzk2LDI2NjkxLDM2ODY3LDI4MTIwLDM4NTE4LDM1NzUyLDIyODcxLDI5MzA1LDM0Mjc2LDMzMTUwLDMwMTQwLDM1NDY2LDI2Nzk5LDIxMDc2LDM2Mzg2LDM4MTYxLDI1NTUyLDM5MDY0LDM2NDIwLDIxODg0LDIwMzA3LDI2''@;'; + put 'put ''MzY3LDIyMTU5LDI0Nzg5LDI4MDUzLDIxMDU5LDIzNjI1LDIyODI1LDI4MTU1LDIyNjM1LDNlNCwyOTk4MCwyNDY4NCwzMzMwMCwzMzA5NCwyNTM2MSwyNjQ2NSwzNjgzNCwzMDUyMiwzNjMzOSwzNjE0OCwzODA4MSwyNDA4NiwyMTM4MSwyMTU0OCwyODg2NywzNDQxMywzNDQxNSwzNDQxNiwz''@;'; + put 'put ''NDQxOCwzNDQxOSwzNDQyMCwzNDQyMSwzNDQyMiwzNDQyMywzNDQyNCwzNDQzNSwzNDQzNiwzNDQzNywzNDQzOCwzNDQzOSwzNDQ0MCwzNDQ0MSwzNDQ0NiwzNDQ0NywzNDQ0OCwzNDQ0OSwzNDQ1MCwzNDQ1MiwzNDQ1NCwzNDQ1NSwzNDQ1NiwzNDQ1NywzNDQ1OCwzNDQ1OSwzNDQ2MiwzNDQ2''@;'; + put 'put ''MywzNDQ2NCwzNDQ2NSwzNDQ2NiwzNDQ2OSwzNDQ3MCwzNDQ3NSwzNDQ3NywzNDQ3OCwzNDQ4MiwzNDQ4MywzNDQ4NywzNDQ4OCwzNDQ4OSwzNDQ5MSwzNDQ5MiwzNDQ5MywzNDQ5NCwzNDQ5NSwzNDQ5NywzNDQ5OCwzNDQ5OSwzNDUwMSwzNDUwNCwzNDUwOCwzNDUwOSwzNDUxNCwzNDUxNSwz''@;'; + put 'put ''NDUxNywzNDUxOCwzNDUxOSwzNDUyMiwzNDUyNCwzNDUyNSwzNDUyOCwzNDUyOSwzNDUzMCwzNDUzMSwzNDUzMywzNDUzNCwzNDUzNSwzNDUzNiwzNDUzOCwzNDUzOSwzNDU0MCwzNDU0MywzNDU0OSwzNDU1MCwzNDU1MSwzNDU1NCwzNDU1NSwzNDU1NiwzNDU1NywzNDU1OSwzNDU2MSwzNDU2''@;'; + put 'put ''NCwzNDU2NSwzNDU2NiwzNDU3MSwzNDU3MiwzNDU3NCwzNDU3NSwzNDU3NiwzNDU3NywzNDU4MCwzNDU4MiwyNzcxMiwyNDMxMSwyMDU3MiwyMDE0MSwyNDIzNywyNTQwMiwzMzM1MSwzNjg5MCwyNjcwNCwzNzIzMCwzMDY0MywyMTUxNiwzODEwOCwyNDQyMCwzMTQ2MSwyNjc0MiwyNTQxMywz''@;'; + put 'put ''MTU3MCwzMjQ3OSwzMDE3MSwyMDU5OSwyNTIzNywyMjgzNiwzNjg3OSwyMDk4NCwzMTE3MSwzMTM2MSwyMjI3MCwyNDQ2NiwzNjg4NCwyODAzNCwyMzY0OCwyMjMwMywyMTUyMCwyMDgyMCwyODIzNywyMjI0MiwyNTUxMiwzOTA1OSwzMzE1MSwzNDU4MSwzNTExNCwzNjg2NCwyMTUzNCwyMzY2''@;'; + put 'put ''MywzMzIxNiwyNTMwMiwyNTE3NiwzMzA3Myw0MDUwMSwzODQ2NCwzOTUzNCwzOTU0OCwyNjkyNSwyMjk0OSwyNTI5OSwyMTgyMiwyNTM2NiwyMTcwMywzNDUyMSwyNzk2NCwyMzA0MywyOTkyNiwzNDk3MiwyNzQ5OCwyMjgwNiwzNTkxNiwyNDM2NywyODI4NiwyOTYwOSwzOTAzNywyMDAyNCwy''@;'; + put 'put ''ODkxOSwyMzQzNiwzMDg3MSwyNTQwNSwyNjIwMiwzMDM1OCwyNDc3OSwyMzQ1MSwyMzExMywxOTk3NSwzMzEwOSwyNzc1NCwyOTU3OSwyMDEyOSwyNjUwNSwzMjU5MywyNDQ0OCwyNjEwNiwyNjM5NSwyNDUzNiwyMjkxNiwyMzA0MSwzNDU4NSwzNDU4NywzNDU4OSwzNDU5MSwzNDU5MiwzNDU5''@;'; + put 'put ''NiwzNDU5OCwzNDU5OSwzNDYwMCwzNDYwMiwzNDYwMywzNDYwNCwzNDYwNSwzNDYwNywzNDYwOCwzNDYxMCwzNDYxMSwzNDYxMywzNDYxNCwzNDYxNiwzNDYxNywzNDYxOCwzNDYyMCwzNDYyMSwzNDYyNCwzNDYyNSwzNDYyNiwzNDYyNywzNDYyOCwzNDYyOSwzNDYzMCwzNDYzNCwzNDYzNSwz''@;'; + put 'put ''NDYzNywzNDYzOSwzNDY0MCwzNDY0MSwzNDY0MiwzNDY0NCwzNDY0NSwzNDY0NiwzNDY0OCwzNDY1MCwzNDY1MSwzNDY1MiwzNDY1MywzNDY1NCwzNDY1NSwzNDY1NywzNDY1OCwzNDY2MiwzNDY2MywzNDY2NCwzNDY2NSwzNDY2NiwzNDY2NywzNDY2OCwzNDY2OSwzNDY3MSwzNDY3MywzNDY3''@;'; + put 'put ''NCwzNDY3NSwzNDY3NywzNDY3OSwzNDY4MCwzNDY4MSwzNDY4MiwzNDY4NywzNDY4OCwzNDY4OSwzNDY5MiwzNDY5NCwzNDY5NSwzNDY5NywzNDY5OCwzNDcwMCwzNDcwMiwzNDcwMywzNDcwNCwzNDcwNSwzNDcwNiwzNDcwOCwzNDcwOSwzNDcxMCwzNDcxMiwzNDcxMywzNDcxNCwzNDcxNSwz''@;'; + put 'put ''NDcxNiwzNDcxNywzNDcxOCwzNDcyMCwzNDcyMSwzNDcyMiwzNDcyMywzNDcyNCwyNDAxMywyNDQ5NCwyMTM2MSwzODg4NiwzNjgyOSwyNjY5MywyMjI2MCwyMTgwNywyNDc5OSwyMDAyNiwyODQ5MywzMjUwMCwzMzQ3OSwzMzgwNiwyMjk5NiwyMDI1NSwyMDI2NiwyMzYxNCwzMjQyOCwyNjQx''@;'; + put 'put ''MCwzNDA3NCwyMTYxOSwzMDAzMSwzMjk2MywyMTg5MCwzOTc1OSwyMDMwMSwyODIwNSwzNTg1OSwyMzU2MSwyNDk0NCwyMTM1NSwzMDIzOSwyODIwMSwzNDQ0MiwyNTk5MSwzODM5NSwzMjQ0MSwyMTU2MywzMTI4MywzMjAxMCwzODM4MiwyMTk4NSwzMjcwNSwyOTkzNCwyNTM3MywzNDU4Mywy''@;'; + put 'put ''ODA2NSwzMTM4OSwyNTEwNSwyNjAxNywyMTM1MSwyNTU2OSwyNzc3OSwyNDA0MywyMTU5NiwzODA1NiwyMDA0NCwyNzc0NSwzNTgyMCwyMzYyNywyNjA4MCwzMzQzNiwyNjc5MSwyMTU2NiwyMTU1NiwyNzU5NSwyNzQ5NCwyMDExNiwyNTQxMCwyMTMyMCwzMzMxMCwyMDIzNywyMDM5OCwyMjM2''@;'; + put 'put ''NiwyNTA5OCwzODY1NCwyNjIxMiwyOTI4OSwyMTI0NywyMTE1MywyNDczNSwzNTgyMywyNjEzMiwyOTA4MSwyNjUxMiwzNTE5OSwzMDgwMiwzMDcxNywyNjIyNCwyMjA3NSwyMTU2MCwzODE3NywyOTMwNiwzNDcyNSwzNDcyNiwzNDcyNywzNDcyOSwzNDczMCwzNDczNCwzNDczNiwzNDczNywz''@;'; + put 'put ''NDczOCwzNDc0MCwzNDc0MiwzNDc0MywzNDc0NCwzNDc0NSwzNDc0NywzNDc0OCwzNDc1MCwzNDc1MSwzNDc1MywzNDc1NCwzNDc1NSwzNDc1NiwzNDc1NywzNDc1OSwzNDc2MCwzNDc2MSwzNDc2NCwzNDc2NSwzNDc2NiwzNDc2NywzNDc2OCwzNDc3MiwzNDc3MywzNDc3NCwzNDc3NSwzNDc3''@;'; + put 'put ''NiwzNDc3NywzNDc3OCwzNDc4MCwzNDc4MSwzNDc4MiwzNDc4MywzNDc4NSwzNDc4NiwzNDc4NywzNDc4OCwzNDc5MCwzNDc5MSwzNDc5MiwzNDc5MywzNDc5NSwzNDc5NiwzNDc5NywzNDc5OSwzNDgwMCwzNDgwMSwzNDgwMiwzNDgwMywzNDgwNCwzNDgwNSwzNDgwNiwzNDgwNywzNDgwOCwz''@;'; + put 'put ''NDgxMCwzNDgxMSwzNDgxMiwzNDgxMywzNDgxNSwzNDgxNiwzNDgxNywzNDgxOCwzNDgyMCwzNDgyMSwzNDgyMiwzNDgyMywzNDgyNCwzNDgyNSwzNDgyNywzNDgyOCwzNDgyOSwzNDgzMCwzNDgzMSwzNDgzMiwzNDgzMywzNDgzNCwzNDgzNiwzNDgzOSwzNDg0MCwzNDg0MSwzNDg0MiwzNDg0''@;'; + put 'put ''NCwzNDg0NSwzNDg0NiwzNDg0NywzNDg0OCwzNDg1MSwzMTIzMiwyNDY4NywyNDA3NiwyNDcxMywzMzE4MSwyMjgwNSwyNDc5NiwyOTA2MCwyODkxMSwyODMzMCwyNzcyOCwyOTMxMiwyNzI2OCwzNDk4OSwyNDEwOSwyMDA2NCwyMzIxOSwyMTkxNiwzODExNSwyNzkyNywzMTk5NSwzODU1Mywy''@;'; + put 'put ''NTEwMywzMjQ1NCwzMDYwNiwzNDQzMCwyMTI4MywzODY4NiwzNjc1OCwyNjI0NywyMzc3NywyMDM4NCwyOTQyMSwxOTk3OSwyMTQxNCwyMjc5OSwyMTUyMywyNTQ3MiwzODE4NCwyMDgwOCwyMDE4NSw0MDA5MiwzMjQyMCwyMTY4OCwzNjEzMiwzNDkwMCwzMzMzNSwzODM4NiwyODA0NiwyNDM1''@;'; + put 'put ''OCwyMzI0NCwyNjE3NCwzODUwNSwyOTYxNiwyOTQ4NiwyMTQzOSwzMzE0NiwzOTMwMSwzMjY3MywyMzQ2NiwzODUxOSwzODQ4MCwzMjQ0NywzMDQ1NiwyMTQxMCwzODI2MiwzOTMyMSwzMTY2NSwzNTE0MCwyODI0OCwyMDA2NSwzMjcyNCwzMTA3NywzNTgxNCwyNDgxOSwyMTcwOSwyMDEzOSwz''@;'; + put 'put ''OTAzMywyNDA1NSwyNzIzMywyMDY4NywyMTUyMSwzNTkzNywzMzgzMSwzMDgxMywzODY2MCwyMTA2NiwyMTc0MiwyMjE3OSwzODE0NCwyODA0MCwyMzQ3NywyODEwMiwyNjE5NSwzNDg1MiwzNDg1MywzNDg1NCwzNDg1NSwzNDg1NiwzNDg1NywzNDg1OCwzNDg1OSwzNDg2MCwzNDg2MSwzNDg2''@;'; + put 'put ''MiwzNDg2MywzNDg2NCwzNDg2NSwzNDg2NywzNDg2OCwzNDg2OSwzNDg3MCwzNDg3MSwzNDg3MiwzNDg3NCwzNDg3NSwzNDg3NywzNDg3OCwzNDg3OSwzNDg4MSwzNDg4MiwzNDg4MywzNDg4NiwzNDg4NywzNDg4OCwzNDg4OSwzNDg5MCwzNDg5MSwzNDg5NCwzNDg5NSwzNDg5NiwzNDg5Nywz''@;'; + put 'put ''NDg5OCwzNDg5OSwzNDkwMSwzNDkwMiwzNDkwNCwzNDkwNiwzNDkwNywzNDkwOCwzNDkwOSwzNDkxMCwzNDkxMSwzNDkxMiwzNDkxOCwzNDkxOSwzNDkyMiwzNDkyNSwzNDkyNywzNDkyOSwzNDkzMSwzNDkzMiwzNDkzMywzNDkzNCwzNDkzNiwzNDkzNywzNDkzOCwzNDkzOSwzNDk0MCwzNDk0''@;'; + put 'put ''NCwzNDk0NywzNDk1MCwzNDk1MSwzNDk1MywzNDk1NCwzNDk1NiwzNDk1OCwzNDk1OSwzNDk2MCwzNDk2MSwzNDk2MywzNDk2NCwzNDk2NSwzNDk2NywzNDk2OCwzNDk2OSwzNDk3MCwzNDk3MSwzNDk3MywzNDk3NCwzNDk3NSwzNDk3NiwzNDk3NywzNDk3OSwzNDk4MSwzNDk4MiwzNDk4Mywz''@;'; + put 'put ''NDk4NCwzNDk4NSwzNDk4NiwyMzU2NywyMzM4OSwyNjY1NywzMjkxOCwyMTg4MCwzMTUwNSwyNTkyOCwyNjk2NCwyMDEyMywyNzQ2MywzNDYzOCwzODc5NSwyMTMyNywyNTM3NSwyNTY1OCwzNzAzNCwyNjAxMiwzMjk2MSwzNTg1NiwyMDg4OSwyNjgwMCwyMTM2OCwzNDgwOSwyNTAzMiwyNzg0''@;'; + put 'put ''NCwyNzg5OSwzNTg3NCwyMzYzMywzNDIxOCwzMzQ1NSwzODE1NiwyNzQyNywzNjc2MywyNjAzMiwyNDU3MSwyNDUxNSwyMDQ0OSwzNDg4NSwyNjE0MywzMzEyNSwyOTQ4MSwyNDgyNiwyMDg1MiwyMTAwOSwyMjQxMSwyNDQxOCwzNzAyNiwzNDg5MiwzNzI2NiwyNDE4NCwyNjQ0NywyNDYxNSwy''@;'; + put 'put ''Mjk5NSwyMDgwNCwyMDk4MiwzMzAxNiwyMTI1NiwyNzc2OSwzODU5NiwyOTA2NiwyMDI0MSwyMDQ2MiwzMjY3MCwyNjQyOSwyMTk1NywzODE1MiwzMTE2OCwzNDk2NiwzMjQ4MywyMjY4NywyNTEwMCwzODY1NiwzNDM5NCwyMjA0MCwzOTAzNSwyNDQ2NCwzNTc2OCwzMzk4OCwzNzIwNywyMTQ2''@;'; + put 'put ''NSwyNjA5MywyNDIwNywzMDA0NCwyNDY3NiwzMjExMCwyMzE2NywzMjQ5MCwzMjQ5MywzNjcxMywyMTkyNywyMzQ1OSwyNDc0OCwyNjA1OSwyOTU3MiwzNDk4OCwzNDk5MCwzNDk5MSwzNDk5MiwzNDk5NCwzNDk5NSwzNDk5NiwzNDk5NywzNDk5OCwzNWUzLDM1MDAxLDM1MDAyLDM1MDAzLDM1''@;'; + put 'put ''MDA1LDM1MDA2LDM1MDA3LDM1MDA4LDM1MDExLDM1MDEyLDM1MDE1LDM1MDE2LDM1MDE4LDM1MDE5LDM1MDIwLDM1MDIxLDM1MDIzLDM1MDI0LDM1MDI1LDM1MDI3LDM1MDMwLDM1MDMxLDM1MDM0LDM1MDM1LDM1MDM2LDM1MDM3LDM1MDM4LDM1MDQwLDM1MDQxLDM1MDQ2LDM1MDQ3LDM1MDQ5''@;'; + put 'put ''LDM1MDUwLDM1MDUxLDM1MDUyLDM1MDUzLDM1MDU0LDM1MDU1LDM1MDU4LDM1MDYxLDM1MDYyLDM1MDYzLDM1MDY2LDM1MDY3LDM1MDY5LDM1MDcxLDM1MDcyLDM1MDczLDM1MDc1LDM1MDc2LDM1MDc3LDM1MDc4LDM1MDc5LDM1MDgwLDM1MDgxLDM1MDgzLDM1MDg0LDM1MDg1LDM1MDg2LDM1''@;'; + put 'put ''MDg3LDM1MDg5LDM1MDkyLDM1MDkzLDM1MDk0LDM1MDk1LDM1MDk2LDM1MTAwLDM1MTAxLDM1MTAyLDM1MTAzLDM1MTA0LDM1MTA2LDM1MTA3LDM1MTA4LDM1MTEwLDM1MTExLDM1MTEyLDM1MTEzLDM1MTE2LDM1MTE3LDM1MTE4LDM1MTE5LDM1MTIxLDM1MTIyLDM1MTIzLDM1MTI1LDM1MTI3''@;'; + put 'put ''LDM2ODczLDMwMzA3LDMwNTA1LDMyNDc0LDM4NzcyLDM0MjAzLDIzMzk4LDMxMzQ4LDM4NjM0LDM0ODgwLDIxMTk1LDI5MDcxLDI0NDkwLDI2MDkyLDM1ODEwLDIzNTQ3LDM5NTM1LDI0MDMzLDI3NTI5LDI3NzM5LDM1NzU3LDM1NzU5LDM2ODc0LDM2ODA1LDIxMzg3LDI1Mjc2LDQwNDg2LDQw''@;'; + put 'put ''NDkzLDIxNTY4LDIwMDExLDMzNDY5LDI5MjczLDM0NDYwLDIzODMwLDM0OTA1LDI4MDc5LDM4NTk3LDIxNzEzLDIwMTIyLDM1NzY2LDI4OTM3LDIxNjkzLDM4NDA5LDI4ODk1LDI4MTUzLDMwNDE2LDIwMDA1LDMwNzQwLDM0NTc4LDIzNzIxLDI0MzEwLDM1MzI4LDM5MDY4LDM4NDE0LDI4ODE0''@;'; + put 'put ''LDI3ODM5LDIyODUyLDI1NTEzLDMwNTI0LDM0ODkzLDI4NDM2LDMzMzk1LDIyNTc2LDI5MTQxLDIxMzg4LDMwNzQ2LDM4NTkzLDIxNzYxLDI0NDIyLDI4OTc2LDIzNDc2LDM1ODY2LDM5NTY0LDI3NTIzLDIyODMwLDQwNDk1LDMxMjA3LDI2NDcyLDI1MTk2LDIwMzM1LDMwMTEzLDMyNjUwLDI3''@;'; + put 'put ''OTE1LDM4NDUxLDI3Njg3LDIwMjA4LDMwMTYyLDIwODU5LDI2Njc5LDI4NDc4LDM2OTkyLDMzMTM2LDIyOTM0LDI5ODE0LDM1MTI4LDM1MTI5LDM1MTMwLDM1MTMxLDM1MTMyLDM1MTMzLDM1MTM0LDM1MTM1LDM1MTM2LDM1MTM4LDM1MTM5LDM1MTQxLDM1MTQyLDM1MTQzLDM1MTQ0LDM1MTQ1''@;'; + put 'put ''LDM1MTQ2LDM1MTQ3LDM1MTQ4LDM1MTQ5LDM1MTUwLDM1MTUxLDM1MTUyLDM1MTUzLDM1MTU0LDM1MTU1LDM1MTU2LDM1MTU3LDM1MTU4LDM1MTU5LDM1MTYwLDM1MTYxLDM1MTYyLDM1MTYzLDM1MTY0LDM1MTY1LDM1MTY4LDM1MTY5LDM1MTcwLDM1MTcxLDM1MTcyLDM1MTczLDM1MTc1LDM1''@;'; + put 'put ''MTc2LDM1MTc3LDM1MTc4LDM1MTc5LDM1MTgwLDM1MTgxLDM1MTgyLDM1MTgzLDM1MTg0LDM1MTg1LDM1MTg2LDM1MTg3LDM1MTg4LDM1MTg5LDM1MTkwLDM1MTkxLDM1MTkyLDM1MTkzLDM1MTk0LDM1MTk2LDM1MTk3LDM1MTk4LDM1MjAwLDM1MjAyLDM1MjA0LDM1MjA1LDM1MjA3LDM1MjA4''@;'; + put 'put ''LDM1MjA5LDM1MjEwLDM1MjExLDM1MjEyLDM1MjEzLDM1MjE0LDM1MjE1LDM1MjE2LDM1MjE3LDM1MjE4LDM1MjE5LDM1MjIwLDM1MjIxLDM1MjIyLDM1MjIzLDM1MjI0LDM1MjI1LDM1MjI2LDM1MjI3LDM1MjI4LDM1MjI5LDM1MjMwLDM1MjMxLDM1MjMyLDM1MjMzLDI1NjcxLDIzNTkxLDM2''@;'; + put 'put ''OTY1LDMxMzc3LDM1ODc1LDIzMDAyLDIxNjc2LDMzMjgwLDMzNjQ3LDM1MjAxLDMyNzY4LDI2OTI4LDIyMDk0LDMyODIyLDI5MjM5LDM3MzI2LDIwOTE4LDIwMDYzLDM5MDI5LDI1NDk0LDE5OTk0LDIxNDk0LDI2MzU1LDMzMDk5LDIyODEyLDI4MDgyLDE5OTY4LDIyNzc3LDIxMzA3LDI1NTU4''@;'; + put 'put ''LDM4MTI5LDIwMzgxLDIwMjM0LDM0OTE1LDM5MDU2LDIyODM5LDM2OTUxLDMxMjI3LDIwMjAyLDMzMDA4LDMwMDk3LDI3Nzc4LDIzNDUyLDIzMDE2LDI0NDEzLDI2ODg1LDM0NDMzLDIwNTA2LDI0MDUwLDIwMDU3LDMwNjkxLDIwMTk3LDMzNDAyLDI1MjMzLDI2MTMxLDM3MDA5LDIzNjczLDIw''@;'; + put 'put ''MTU5LDI0NDQxLDMzMjIyLDM2OTIwLDMyOTAwLDMwMTIzLDIwMTM0LDM1MDI4LDI0ODQ3LDI3NTg5LDI0NTE4LDIwMDQxLDMwNDEwLDI4MzIyLDM1ODExLDM1NzU4LDM1ODUwLDM1NzkzLDI0MzIyLDMyNzY0LDMyNzE2LDMyNDYyLDMzNTg5LDMzNjQzLDIyMjQwLDI3NTc1LDM4ODk5LDM4NDUy''@;'; + put 'put ''LDIzMDM1LDIxNTM1LDM4MTM0LDI4MTM5LDIzNDkzLDM5Mjc4LDIzNjA5LDI0MzQxLDM4NTQ0LDM1MjM0LDM1MjM1LDM1MjM2LDM1MjM3LDM1MjM4LDM1MjM5LDM1MjQwLDM1MjQxLDM1MjQyLDM1MjQzLDM1MjQ0LDM1MjQ1LDM1MjQ2LDM1MjQ3LDM1MjQ4LDM1MjQ5LDM1MjUwLDM1MjUxLDM1''@;'; + put 'put ''MjUyLDM1MjUzLDM1MjU0LDM1MjU1LDM1MjU2LDM1MjU3LDM1MjU4LDM1MjU5LDM1MjYwLDM1MjYxLDM1MjYyLDM1MjYzLDM1MjY0LDM1MjY3LDM1Mjc3LDM1MjgzLDM1Mjg0LDM1Mjg1LDM1Mjg3LDM1Mjg4LDM1Mjg5LDM1MjkxLDM1MjkzLDM1Mjk1LDM1Mjk2LDM1Mjk3LDM1Mjk4LDM1MzAw''@;'; + put 'put ''LDM1MzAzLDM1MzA0LDM1MzA1LDM1MzA2LDM1MzA4LDM1MzA5LDM1MzEwLDM1MzEyLDM1MzEzLDM1MzE0LDM1MzE2LDM1MzE3LDM1MzE4LDM1MzE5LDM1MzIwLDM1MzIxLDM1MzIyLDM1MzIzLDM1MzI0LDM1MzI1LDM1MzI2LDM1MzI3LDM1MzI5LDM1MzMwLDM1MzMxLDM1MzMyLDM1MzMzLDM1''@;'; + put 'put ''MzM0LDM1MzM2LDM1MzM3LDM1MzM4LDM1MzM5LDM1MzQwLDM1MzQxLDM1MzQyLDM1MzQzLDM1MzQ0LDM1MzQ1LDM1MzQ2LDM1MzQ3LDM1MzQ4LDM1MzQ5LDM1MzUwLDM1MzUxLDM1MzUyLDM1MzUzLDM1MzU0LDM1MzU1LDM1MzU2LDM1MzU3LDIxMzYwLDMzNTIxLDI3MTg1LDIzMTU2LDQwNTYw''@;'; + put 'put ''LDI0MjEyLDMyNTUyLDMzNzIxLDMzODI4LDMzODI5LDMzNjM5LDM0NjMxLDM2ODE0LDM2MTk0LDMwNDA4LDI0NDMzLDM5MDYyLDMwODI4LDI2MTQ0LDIxNzI3LDI1MzE3LDIwMzIzLDMzMjE5LDMwMTUyLDI0MjQ4LDM4NjA1LDM2MzYyLDM0NTUzLDIxNjQ3LDI3ODkxLDI4MDQ0LDI3NzA0LDI0''@;'; + put 'put ''NzAzLDIxMTkxLDI5OTkyLDI0MTg5LDIwMjQ4LDI0NzM2LDI0NTUxLDIzNTg4LDMwMDAxLDM3MDM4LDM4MDgwLDI5MzY5LDI3ODMzLDI4MjE2LDM3MTkzLDI2Mzc3LDIxNDUxLDIxNDkxLDIwMzA1LDM3MzIxLDM1ODI1LDIxNDQ4LDI0MTg4LDM2ODAyLDI4MTMyLDIwMTEwLDMwNDAyLDI3MDE0''@;'; + put 'put ''LDM0Mzk4LDI0ODU4LDMzMjg2LDIwMzEzLDIwNDQ2LDM2OTI2LDQwMDYwLDI0ODQxLDI4MTg5LDI4MTgwLDM4NTMzLDIwMTA0LDIzMDg5LDM4NjMyLDE5OTgyLDIzNjc5LDMxMTYxLDIzNDMxLDM1ODIxLDMyNzAxLDI5NTc3LDIyNDk1LDMzNDE5LDM3MDU3LDIxNTA1LDM2OTM1LDIxOTQ3LDIz''@;'; + put 'put ''Nzg2LDI0NDgxLDI0ODQwLDI3NDQyLDI5NDI1LDMyOTQ2LDM1NDY1LDM1MzU4LDM1MzU5LDM1MzYwLDM1MzYxLDM1MzYyLDM1MzYzLDM1MzY0LDM1MzY1LDM1MzY2LDM1MzY3LDM1MzY4LDM1MzY5LDM1MzcwLDM1MzcxLDM1MzcyLDM1MzczLDM1Mzc0LDM1Mzc1LDM1Mzc2LDM1Mzc3LDM1Mzc4''@;'; + put 'put ''LDM1Mzc5LDM1MzgwLDM1MzgxLDM1MzgyLDM1MzgzLDM1Mzg0LDM1Mzg1LDM1Mzg2LDM1Mzg3LDM1Mzg4LDM1Mzg5LDM1MzkxLDM1MzkyLDM1MzkzLDM1Mzk0LDM1Mzk1LDM1Mzk2LDM1Mzk3LDM1Mzk4LDM1Mzk5LDM1NDAxLDM1NDAyLDM1NDAzLDM1NDA0LDM1NDA1LDM1NDA2LDM1NDA3LDM1''@;'; + put 'put ''NDA4LDM1NDA5LDM1NDEwLDM1NDExLDM1NDEyLDM1NDEzLDM1NDE0LDM1NDE1LDM1NDE2LDM1NDE3LDM1NDE4LDM1NDE5LDM1NDIwLDM1NDIxLDM1NDIyLDM1NDIzLDM1NDI0LDM1NDI1LDM1NDI2LDM1NDI3LDM1NDI4LDM1NDI5LDM1NDMwLDM1NDMxLDM1NDMyLDM1NDMzLDM1NDM0LDM1NDM1''@;'; + put 'put ''LDM1NDM2LDM1NDM3LDM1NDM4LDM1NDM5LDM1NDQwLDM1NDQxLDM1NDQyLDM1NDQzLDM1NDQ0LDM1NDQ1LDM1NDQ2LDM1NDQ3LDM1NDQ4LDM1NDUwLDM1NDUxLDM1NDUyLDM1NDUzLDM1NDU0LDM1NDU1LDM1NDU2LDI4MDIwLDIzNTA3LDM1MDI5LDM5MDQ0LDM1OTQ3LDM5NTMzLDQwNDk5LDI4''@;'; + put 'put ''MTcwLDIwOTAwLDIwODAzLDIyNDM1LDM0OTQ1LDIxNDA3LDI1NTg4LDM2NzU3LDIyMjUzLDIxNTkyLDIyMjc4LDI5NTAzLDI4MzA0LDMyNTM2LDM2ODI4LDMzNDg5LDI0ODk1LDI0NjE2LDM4NDk4LDI2MzUyLDMyNDIyLDM2MjM0LDM2MjkxLDM4MDUzLDIzNzMxLDMxOTA4LDI2Mzc2LDI0NzQy''@;'; + put 'put ''LDM4NDA1LDMyNzkyLDIwMTEzLDM3MDk1LDIxMjQ4LDM4NTA0LDIwODAxLDM2ODE2LDM0MTY0LDM3MjEzLDI2MTk3LDM4OTAxLDIzMzgxLDIxMjc3LDMwNzc2LDI2NDM0LDI2Njg1LDIxNzA1LDI4Nzk4LDIzNDcyLDM2NzMzLDIwODc3LDIyMzEyLDIxNjgxLDI1ODc0LDI2MjQyLDM2MTkwLDM2''@;'; + put 'put ''MTYzLDMzMDM5LDMzOTAwLDM2OTczLDMxOTY3LDIwOTkxLDM0Mjk5LDI2NTMxLDI2MDg5LDI4NTc3LDM0NDY4LDM2NDgxLDIyMTIyLDM2ODk2LDMwMzM4LDI4NzkwLDI5MTU3LDM2MTMxLDI1MzIxLDIxMDE3LDI3OTAxLDM2MTU2LDI0NTkwLDIyNjg2LDI0OTc0LDI2MzY2LDM2MTkyLDI1MTY2''@;'; + put 'put ''LDIxOTM5LDI4MTk1LDI2NDEzLDM2NzExLDM1NDU3LDM1NDU4LDM1NDU5LDM1NDYwLDM1NDYxLDM1NDYyLDM1NDYzLDM1NDY0LDM1NDY3LDM1NDY4LDM1NDY5LDM1NDcwLDM1NDcxLDM1NDcyLDM1NDczLDM1NDc0LDM1NDc2LDM1NDc3LDM1NDc4LDM1NDc5LDM1NDgwLDM1NDgxLDM1NDgyLDM1''@;'; + put 'put ''NDgzLDM1NDg0LDM1NDg1LDM1NDg2LDM1NDg3LDM1NDg4LDM1NDg5LDM1NDkwLDM1NDkxLDM1NDkyLDM1NDkzLDM1NDk0LDM1NDk1LDM1NDk2LDM1NDk3LDM1NDk4LDM1NDk5LDM1NTAwLDM1NTAxLDM1NTAyLDM1NTAzLDM1NTA0LDM1NTA1LDM1NTA2LDM1NTA3LDM1NTA4LDM1NTA5LDM1NTEw''@;'; + put 'put ''LDM1NTExLDM1NTEyLDM1NTEzLDM1NTE0LDM1NTE1LDM1NTE2LDM1NTE3LDM1NTE4LDM1NTE5LDM1NTIwLDM1NTIxLDM1NTIyLDM1NTIzLDM1NTI0LDM1NTI1LDM1NTI2LDM1NTI3LDM1NTI4LDM1NTI5LDM1NTMwLDM1NTMxLDM1NTMyLDM1NTMzLDM1NTM0LDM1NTM1LDM1NTM2LDM1NTM3LDM1''@;'; + put 'put ''NTM4LDM1NTM5LDM1NTQwLDM1NTQxLDM1NTQyLDM1NTQzLDM1NTQ0LDM1NTQ1LDM1NTQ2LDM1NTQ3LDM1NTQ4LDM1NTQ5LDM1NTUwLDM1NTUxLDM1NTUyLDM1NTUzLDM1NTU0LDM1NTU1LDM4MTEzLDM4MzkyLDMwNTA0LDI2NjI5LDI3MDQ4LDIxNjQzLDIwMDQ1LDI4ODU2LDM1Nzg0LDI1Njg4''@;'; + put 'put ''LDI1OTk1LDIzNDI5LDMxMzY0LDIwNTM4LDIzNTI4LDMwNjUxLDI3NjE3LDM1NDQ5LDMxODk2LDI3ODM4LDMwNDE1LDI2MDI1LDM2NzU5LDIzODUzLDIzNjM3LDM0MzYwLDI2NjMyLDIxMzQ0LDI1MTEyLDMxNDQ5LDI4MjUxLDMyNTA5LDI3MTY3LDMxNDU2LDI0NDMyLDI4NDY3LDI0MzUyLDI1''@;'; + put 'put ''NDg0LDI4MDcyLDI2NDU0LDE5OTc2LDI0MDgwLDM2MTM0LDIwMTgzLDMyOTYwLDMwMjYwLDM4NTU2LDI1MzA3LDI2MTU3LDI1MjE0LDI3ODM2LDM2MjEzLDI5MDMxLDMyNjE3LDIwODA2LDMyOTAzLDIxNDg0LDM2OTc0LDI1MjQwLDIxNzQ2LDM0NTQ0LDM2NzYxLDMyNzczLDM4MTY3LDM0MDcx''@;'; + put 'put ''LDM2ODI1LDI3OTkzLDI5NjQ1LDI2MDE1LDMwNDk1LDI5OTU2LDMwNzU5LDMzMjc1LDM2MTI2LDM4MDI0LDIwMzkwLDI2NTE3LDMwMTM3LDM1Nzg2LDM4NjYzLDI1MzkxLDM4MjE1LDM4NDUzLDMzOTc2LDI1Mzc5LDMwNTI5LDI0NDQ5LDI5NDI0LDIwMTA1LDI0NTk2LDI1OTcyLDI1MzI3LDI3''@;'; + put 'put ''NDkxLDI1OTE5LDM1NTU2LDM1NTU3LDM1NTU4LDM1NTU5LDM1NTYwLDM1NTYxLDM1NTYyLDM1NTYzLDM1NTY0LDM1NTY1LDM1NTY2LDM1NTY3LDM1NTY4LDM1NTY5LDM1NTcwLDM1NTcxLDM1NTcyLDM1NTczLDM1NTc0LDM1NTc1LDM1NTc2LDM1NTc3LDM1NTc4LDM1NTc5LDM1NTgwLDM1NTgx''@;'; + put 'put ''LDM1NTgyLDM1NTgzLDM1NTg0LDM1NTg1LDM1NTg2LDM1NTg3LDM1NTg4LDM1NTg5LDM1NTkwLDM1NTkyLDM1NTkzLDM1NTk0LDM1NTk1LDM1NTk2LDM1NTk3LDM1NTk4LDM1NTk5LDM1NjAwLDM1NjAxLDM1NjAyLDM1NjAzLDM1NjA0LDM1NjA1LDM1NjA2LDM1NjA3LDM1NjA4LDM1NjA5LDM1''@;'; + put 'put ''NjEwLDM1NjExLDM1NjEyLDM1NjEzLDM1NjE0LDM1NjE1LDM1NjE2LDM1NjE3LDM1NjE4LDM1NjE5LDM1NjIwLDM1NjIxLDM1NjIzLDM1NjI0LDM1NjI1LDM1NjI2LDM1NjI3LDM1NjI4LDM1NjI5LDM1NjMwLDM1NjMxLDM1NjMyLDM1NjMzLDM1NjM0LDM1NjM1LDM1NjM2LDM1NjM3LDM1NjM4''@;'; + put 'put ''LDM1NjM5LDM1NjQwLDM1NjQxLDM1NjQyLDM1NjQzLDM1NjQ0LDM1NjQ1LDM1NjQ2LDM1NjQ3LDM1NjQ4LDM1NjQ5LDM1NjUwLDM1NjUxLDM1NjUyLDM1NjUzLDI0MTAzLDMwMTUxLDM3MDczLDM1Nzc3LDMzNDM3LDI2NTI1LDI1OTAzLDIxNTUzLDM0NTg0LDMwNjkzLDMyOTMwLDMzMDI2LDI3''@;'; + put 'put ''NzEzLDIwMDQzLDMyNDU1LDMyODQ0LDMwNDUyLDI2ODkzLDI3NTQyLDI1MTkxLDIwNTQwLDIwMzU2LDIyMzM2LDI1MzUxLDI3NDkwLDM2Mjg2LDIxNDgyLDI2MDg4LDMyNDQwLDI0NTM1LDI1MzcwLDI1NTI3LDMzMjY3LDMzMjY4LDMyNjIyLDI0MDkyLDIzNzY5LDIxMDQ2LDI2MjM0LDMxMjA5''@;'; + put 'put ''LDMxMjU4LDM2MTM2LDI4ODI1LDMwMTY0LDI4MzgyLDI3ODM1LDMxMzc4LDIwMDEzLDMwNDA1LDI0NTQ0LDM4MDQ3LDM0OTM1LDMyNDU2LDMxMTgxLDMyOTU5LDM3MzI1LDIwMjEwLDIwMjQ3LDMzMzExLDIxNjA4LDI0MDMwLDI3OTU0LDM1Nzg4LDMxOTA5LDM2NzI0LDMyOTIwLDI0MDkwLDIx''@;'; + put 'put ''NjUwLDMwMzg1LDIzNDQ5LDI2MTcyLDM5NTg4LDI5NjY0LDI2NjY2LDM0NTIzLDI2NDE3LDI5NDgyLDM1ODMyLDM1ODAzLDM2ODgwLDMxNDgxLDI4ODkxLDI5MDM4LDI1Mjg0LDMwNjMzLDIyMDY1LDIwMDI3LDMzODc5LDI2NjA5LDIxMTYxLDM0NDk2LDM2MTQyLDM4MTM2LDMxNTY5LDM1NjU0''@;'; + put 'put ''LDM1NjU1LDM1NjU2LDM1NjU3LDM1NjU4LDM1NjU5LDM1NjYwLDM1NjYxLDM1NjYyLDM1NjYzLDM1NjY0LDM1NjY1LDM1NjY2LDM1NjY3LDM1NjY4LDM1NjY5LDM1NjcwLDM1NjcxLDM1NjcyLDM1NjczLDM1Njc0LDM1Njc1LDM1Njc2LDM1Njc3LDM1Njc4LDM1Njc5LDM1NjgwLDM1NjgxLDM1''@;'; + put 'put ''NjgyLDM1NjgzLDM1Njg0LDM1Njg1LDM1Njg3LDM1Njg4LDM1Njg5LDM1NjkwLDM1NjkxLDM1NjkzLDM1Njk0LDM1Njk1LDM1Njk2LDM1Njk3LDM1Njk4LDM1Njk5LDM1NzAwLDM1NzAxLDM1NzAyLDM1NzAzLDM1NzA0LDM1NzA1LDM1NzA2LDM1NzA3LDM1NzA4LDM1NzA5LDM1NzEwLDM1NzEx''@;'; + put 'put ''LDM1NzEyLDM1NzEzLDM1NzE0LDM1NzE1LDM1NzE2LDM1NzE3LDM1NzE4LDM1NzE5LDM1NzIwLDM1NzIxLDM1NzIyLDM1NzIzLDM1NzI0LDM1NzI1LDM1NzI2LDM1NzI3LDM1NzI4LDM1NzI5LDM1NzMwLDM1NzMxLDM1NzMyLDM1NzMzLDM1NzM0LDM1NzM1LDM1NzM2LDM1NzM3LDM1NzM4LDM1''@;'; + put 'put ''NzM5LDM1NzQwLDM1NzQxLDM1NzQyLDM1NzQzLDM1NzU2LDM1NzYxLDM1NzcxLDM1NzgzLDM1NzkyLDM1ODE4LDM1ODQ5LDM1ODcwLDIwMzAzLDI3ODgwLDMxMDY5LDM5NTQ3LDI1MjM1LDI5MjI2LDI1MzQxLDE5OTg3LDMwNzQyLDM2NzE2LDI1Nzc2LDM2MTg2LDMxNjg2LDI2NzI5LDI0MTk2''@;'; + put 'put ''LDM1MDEzLDIyOTE4LDI1NzU4LDIyNzY2LDI5MzY2LDI2ODk0LDM4MTgxLDM2ODYxLDM2MTg0LDIyMzY4LDMyNTEyLDM1ODQ2LDIwOTM0LDI1NDE3LDI1MzA1LDIxMzMxLDI2NzAwLDI5NzMwLDMzNTM3LDM3MTk2LDIxODI4LDMwNTI4LDI4Nzk2LDI3OTc4LDIwODU3LDIxNjcyLDM2MTY0LDIz''@;'; + put 'put ''MDM5LDI4MzYzLDI4MTAwLDIzMzg4LDMyMDQzLDIwMTgwLDMxODY5LDI4MzcxLDIzMzc2LDMzMjU4LDI4MTczLDIzMzgzLDM5NjgzLDI2ODM3LDM2Mzk0LDIzNDQ3LDMyNTA4LDI0NjM1LDMyNDM3LDM3MDQ5LDM2MjA4LDIyODYzLDI1NTQ5LDMxMTk5LDM2Mjc1LDIxMzMwLDI2MDYzLDMxMDYy''@;'; + put 'put ''LDM1NzgxLDM4NDU5LDMyNDUyLDM4MDc1LDMyMzg2LDIyMDY4LDM3MjU3LDI2MzY4LDMyNjE4LDIzNTYyLDM2OTgxLDI2MTUyLDI0MDM4LDIwMzA0LDI2NTkwLDIwNTcwLDIwMzE2LDIyMzUyLDI0MjMxLDU5NDA4LDU5NDA5LDU5NDEwLDU5NDExLDU5NDEyLDM1ODk2LDM1ODk3LDM1ODk4LDM1''@;'; + put 'put ''ODk5LDM1OTAwLDM1OTAxLDM1OTAyLDM1OTAzLDM1OTA0LDM1OTA2LDM1OTA3LDM1OTA4LDM1OTA5LDM1OTEyLDM1OTE0LDM1OTE1LDM1OTE3LDM1OTE4LDM1OTE5LDM1OTIwLDM1OTIxLDM1OTIyLDM1OTIzLDM1OTI0LDM1OTI2LDM1OTI3LDM1OTI4LDM1OTI5LDM1OTMxLDM1OTMyLDM1OTMz''@;'; + put 'put ''LDM1OTM0LDM1OTM1LDM1OTM2LDM1OTM5LDM1OTQwLDM1OTQxLDM1OTQyLDM1OTQzLDM1OTQ0LDM1OTQ1LDM1OTQ4LDM1OTQ5LDM1OTUwLDM1OTUxLDM1OTUyLDM1OTUzLDM1OTU0LDM1OTU2LDM1OTU3LDM1OTU4LDM1OTU5LDM1OTYzLDM1OTY0LDM1OTY1LDM1OTY2LDM1OTY3LDM1OTY4LDM1''@;'; + put 'put ''OTY5LDM1OTcxLDM1OTcyLDM1OTc0LDM1OTc1LDM1OTc2LDM1OTc5LDM1OTgxLDM1OTgyLDM1OTgzLDM1OTg0LDM1OTg1LDM1OTg2LDM1OTg3LDM1OTg5LDM1OTkwLDM1OTkxLDM1OTkzLDM1OTk0LDM1OTk1LDM1OTk2LDM1OTk3LDM1OTk4LDM1OTk5LDM2ZTMsMzYwMDEsMzYwMDIsMzYwMDMs''@;'; + put 'put ''MzYwMDQsMzYwMDUsMzYwMDYsMzYwMDcsMzYwMDgsMzYwMDksMzYwMTAsMzYwMTEsMzYwMTIsMzYwMTMsMjAxMDksMTk5ODAsMjA4MDAsMTk5ODQsMjQzMTksMjEzMTcsMTk5ODksMjAxMjAsMTk5OTgsMzk3MzAsMjM0MDQsMjIxMjEsMjAwMDgsMzExNjIsMjAwMzEsMjEyNjksMjAwMzksMjI4''@;'; + put 'put ''MjksMjkyNDMsMjEzNTgsMjc2NjQsMjIyMzksMzI5OTYsMzkzMTksMjc2MDMsMzA1OTAsNDA3MjcsMjAwMjIsMjAxMjcsNDA3MjAsMjAwNjAsMjAwNzMsMjAxMTUsMzM0MTYsMjMzODcsMjE4NjgsMjIwMzEsMjAxNjQsMjEzODksMjE0MDUsMjE0MTEsMjE0MTMsMjE0MjIsMzg3NTcsMzYxODks''@;'; + put 'put ''MjEyNzQsMjE0OTMsMjEyODYsMjEyOTQsMjEzMTAsMzYxODgsMjEzNTAsMjEzNDcsMjA5OTQsMjFlMywyMTAwNiwyMTAzNywyMTA0MywyMTA1NSwyMTA1NiwyMTA2OCwyMTA4NiwyMTA4OSwyMTA4NCwzMzk2NywyMTExNywyMTEyMiwyMTEyMSwyMTEzNiwyMTEzOSwyMDg2NiwzMjU5NiwyMDE1''@;'; + put 'put ''NSwyMDE2MywyMDE2OSwyMDE2MiwyMDIwMCwyMDE5MywyMDIwMywyMDE5MCwyMDI1MSwyMDIxMSwyMDI1OCwyMDMyNCwyMDIxMywyMDI2MSwyMDI2MywyMDIzMywyMDI2NywyMDMxOCwyMDMyNywyNTkxMiwyMDMxNCwyMDMxNywzNjAxNCwzNjAxNSwzNjAxNiwzNjAxNywzNjAxOCwzNjAxOSwz''@;'; + put 'put ''NjAyMCwzNjAyMSwzNjAyMiwzNjAyMywzNjAyNCwzNjAyNSwzNjAyNiwzNjAyNywzNjAyOCwzNjAyOSwzNjAzMCwzNjAzMSwzNjAzMiwzNjAzMywzNjAzNCwzNjAzNSwzNjAzNiwzNjAzNywzNjAzOCwzNjAzOSwzNjA0MCwzNjA0MSwzNjA0MiwzNjA0MywzNjA0NCwzNjA0NSwzNjA0NiwzNjA0''@;'; + put 'put ''NywzNjA0OCwzNjA0OSwzNjA1MCwzNjA1MSwzNjA1MiwzNjA1MywzNjA1NCwzNjA1NSwzNjA1NiwzNjA1NywzNjA1OCwzNjA1OSwzNjA2MCwzNjA2MSwzNjA2MiwzNjA2MywzNjA2NCwzNjA2NSwzNjA2NiwzNjA2NywzNjA2OCwzNjA2OSwzNjA3MCwzNjA3MSwzNjA3MiwzNjA3MywzNjA3NCwz''@;'; + put 'put ''NjA3NSwzNjA3NiwzNjA3NywzNjA3OCwzNjA3OSwzNjA4MCwzNjA4MSwzNjA4MiwzNjA4MywzNjA4NCwzNjA4NSwzNjA4NiwzNjA4NywzNjA4OCwzNjA4OSwzNjA5MCwzNjA5MSwzNjA5MiwzNjA5MywzNjA5NCwzNjA5NSwzNjA5NiwzNjA5NywzNjA5OCwzNjA5OSwzNjEwMCwzNjEwMSwzNjEw''@;'; + put 'put ''MiwzNjEwMywzNjEwNCwzNjEwNSwzNjEwNiwzNjEwNywzNjEwOCwzNjEwOSwyMDMxOSwyMDMxMSwyMDI3NCwyMDI4NSwyMDM0MiwyMDM0MCwyMDM2OSwyMDM2MSwyMDM1NSwyMDM2NywyMDM1MCwyMDM0NywyMDM5NCwyMDM0OCwyMDM5NiwyMDM3MiwyMDQ1NCwyMDQ1NiwyMDQ1OCwyMDQyMSwy''@;'; + put 'put ''MDQ0MiwyMDQ1MSwyMDQ0NCwyMDQzMywyMDQ0NywyMDQ3MiwyMDUyMSwyMDU1NiwyMDQ2NywyMDUyNCwyMDQ5NSwyMDUyNiwyMDUyNSwyMDQ3OCwyMDUwOCwyMDQ5MiwyMDUxNywyMDUyMCwyMDYwNiwyMDU0NywyMDU2NSwyMDU1MiwyMDU1OCwyMDU4OCwyMDYwMywyMDY0NSwyMDY0NywyMDY0''@;'; + put 'put ''OSwyMDY2NiwyMDY5NCwyMDc0MiwyMDcxNywyMDcxNiwyMDcxMCwyMDcxOCwyMDc0MywyMDc0NywyMDE4OSwyNzcwOSwyMDMxMiwyMDMyNSwyMDQzMCw0MDg2NCwyNzcxOCwzMTg2MCwyMDg0NiwyNDA2MSw0MDY0OSwzOTMyMCwyMDg2NSwyMjgwNCwyMTI0MSwyMTI2MSwzNTMzNSwyMTI2NCwy''@;'; + put 'put ''MDk3MSwyMjgwOSwyMDgyMSwyMDEyOCwyMDgyMiwyMDE0NywzNDkyNiwzNDk4MCwyMDE0OSwzMzA0NCwzNTAyNiwzMTEwNCwyMzM0OCwzNDgxOSwzMjY5NiwyMDkwNywyMDkxMywyMDkyNSwyMDkyNCwzNjExMCwzNjExMSwzNjExMiwzNjExMywzNjExNCwzNjExNSwzNjExNiwzNjExNywzNjEx''@;'; + put 'put ''OCwzNjExOSwzNjEyMCwzNjEyMSwzNjEyMiwzNjEyMywzNjEyNCwzNjEyOCwzNjE3NywzNjE3OCwzNjE4MywzNjE5MSwzNjE5NywzNjIwMCwzNjIwMSwzNjIwMiwzNjIwNCwzNjIwNiwzNjIwNywzNjIwOSwzNjIxMCwzNjIxNiwzNjIxNywzNjIxOCwzNjIxOSwzNjIyMCwzNjIyMSwzNjIyMiwz''@;'; + put 'put ''NjIyMywzNjIyNCwzNjIyNiwzNjIyNywzNjIzMCwzNjIzMSwzNjIzMiwzNjIzMywzNjIzNiwzNjIzNywzNjIzOCwzNjIzOSwzNjI0MCwzNjI0MiwzNjI0MywzNjI0NSwzNjI0NiwzNjI0NywzNjI0OCwzNjI0OSwzNjI1MCwzNjI1MSwzNjI1MiwzNjI1MywzNjI1NCwzNjI1NiwzNjI1NywzNjI1''@;'; + put 'put ''OCwzNjI2MCwzNjI2MSwzNjI2MiwzNjI2MywzNjI2NCwzNjI2NSwzNjI2NiwzNjI2NywzNjI2OCwzNjI2OSwzNjI3MCwzNjI3MSwzNjI3MiwzNjI3NCwzNjI3OCwzNjI3OSwzNjI4MSwzNjI4MywzNjI4NSwzNjI4OCwzNjI4OSwzNjI5MCwzNjI5MywzNjI5NSwzNjI5NiwzNjI5NywzNjI5OCwz''@;'; + put 'put ''NjMwMSwzNjMwNCwzNjMwNiwzNjMwNywzNjMwOCwyMDkzNSwyMDg4NiwyMDg5OCwyMDkwMSwzNTc0NCwzNTc1MCwzNTc1MSwzNTc1NCwzNTc2NCwzNTc2NSwzNTc2NywzNTc3OCwzNTc3OSwzNTc4NywzNTc5MSwzNTc5MCwzNTc5NCwzNTc5NSwzNTc5NiwzNTc5OCwzNTgwMCwzNTgwMSwzNTgw''@;'; + put 'put ''NCwzNTgwNywzNTgwOCwzNTgxMiwzNTgxNiwzNTgxNywzNTgyMiwzNTgyNCwzNTgyNywzNTgzMCwzNTgzMywzNTgzNiwzNTgzOSwzNTg0MCwzNTg0MiwzNTg0NCwzNTg0NywzNTg1MiwzNTg1NSwzNTg1NywzNTg1OCwzNTg2MCwzNTg2MSwzNTg2MiwzNTg2NSwzNTg2NywzNTg2NCwzNTg2OSwz''@;'; + put 'put ''NTg3MSwzNTg3MiwzNTg3MywzNTg3NywzNTg3OSwzNTg4MiwzNTg4MywzNTg4NiwzNTg4NywzNTg5MCwzNTg5MSwzNTg5MywzNTg5NCwyMTM1MywyMTM3MCwzODQyOSwzODQzNCwzODQzMywzODQ0OSwzODQ0MiwzODQ2MSwzODQ2MCwzODQ2NiwzODQ3MywzODQ4NCwzODQ5NSwzODUwMywzODUw''@;'; + put 'put ''OCwzODUxNCwzODUxNiwzODUzNiwzODU0MSwzODU1MSwzODU3NiwzNzAxNSwzNzAxOSwzNzAyMSwzNzAxNywzNzAzNiwzNzAyNSwzNzA0NCwzNzA0MywzNzA0NiwzNzA1MCwzNjMwOSwzNjMxMiwzNjMxMywzNjMxNiwzNjMyMCwzNjMyMSwzNjMyMiwzNjMyNSwzNjMyNiwzNjMyNywzNjMyOSwz''@;'; + put 'put ''NjMzMywzNjMzNCwzNjMzNiwzNjMzNywzNjMzOCwzNjM0MCwzNjM0MiwzNjM0OCwzNjM1MCwzNjM1MSwzNjM1MiwzNjM1MywzNjM1NCwzNjM1NSwzNjM1NiwzNjM1OCwzNjM1OSwzNjM2MCwzNjM2MywzNjM2NSwzNjM2NiwzNjM2OCwzNjM2OSwzNjM3MCwzNjM3MSwzNjM3MywzNjM3NCwzNjM3''@;'; + put 'put ''NSwzNjM3NiwzNjM3NywzNjM3OCwzNjM3OSwzNjM4MCwzNjM4NCwzNjM4NSwzNjM4OCwzNjM4OSwzNjM5MCwzNjM5MSwzNjM5MiwzNjM5NSwzNjM5NywzNjQwMCwzNjQwMiwzNjQwMywzNjQwNCwzNjQwNiwzNjQwNywzNjQwOCwzNjQxMSwzNjQxMiwzNjQxNCwzNjQxNSwzNjQxOSwzNjQyMSwz''@;'; + put 'put ''NjQyMiwzNjQyOCwzNjQyOSwzNjQzMCwzNjQzMSwzNjQzMiwzNjQzNSwzNjQzNiwzNjQzNywzNjQzOCwzNjQzOSwzNjQ0MCwzNjQ0MiwzNjQ0MywzNjQ0NCwzNjQ0NSwzNjQ0NiwzNjQ0NywzNjQ0OCwzNjQ0OSwzNjQ1MCwzNjQ1MSwzNjQ1MiwzNjQ1MywzNjQ1NSwzNjQ1NiwzNjQ1OCwzNjQ1''@;'; + put 'put ''OSwzNjQ2MiwzNjQ2NSwzNzA0OCwzNzA0MCwzNzA3MSwzNzA2MSwzNzA1NCwzNzA3MiwzNzA2MCwzNzA2MywzNzA3NSwzNzA5NCwzNzA5MCwzNzA4NCwzNzA3OSwzNzA4MywzNzA5OSwzNzEwMywzNzExOCwzNzEyNCwzNzE1NCwzNzE1MCwzNzE1NSwzNzE2OSwzNzE2NywzNzE3NywzNzE4Nywz''@;'; + put 'put ''NzE5MCwyMTAwNSwyMjg1MCwyMTE1NCwyMTE2NCwyMTE2NSwyMTE4MiwyMTc1OSwyMTIwMCwyMTIwNiwyMTIzMiwyMTQ3MSwyOTE2NiwzMDY2OSwyNDMwOCwyMDk4MSwyMDk4OCwzOTcyNywyMTQzMCwyNDMyMSwzMDA0MiwyNDA0NywyMjM0OCwyMjQ0MSwyMjQzMywyMjY1NCwyMjcxNiwyMjcy''@;'; + put 'put ''NSwyMjczNywyMjMxMywyMjMxNiwyMjMxNCwyMjMyMywyMjMyOSwyMjMxOCwyMjMxOSwyMjM2NCwyMjMzMSwyMjMzOCwyMjM3NywyMjQwNSwyMjM3OSwyMjQwNiwyMjM5NiwyMjM5NSwyMjM3NiwyMjM4MSwyMjM5MCwyMjM4NywyMjQ0NSwyMjQzNiwyMjQxMiwyMjQ1MCwyMjQ3OSwyMjQzOSwy''@;'; + put 'put ''MjQ1MiwyMjQxOSwyMjQzMiwyMjQ4NSwyMjQ4OCwyMjQ5MCwyMjQ4OSwyMjQ4MiwyMjQ1NiwyMjUxNiwyMjUxMSwyMjUyMCwyMjUwMCwyMjQ5MywzNjQ2NywzNjQ2OSwzNjQ3MSwzNjQ3MiwzNjQ3MywzNjQ3NCwzNjQ3NSwzNjQ3NywzNjQ3OCwzNjQ4MCwzNjQ4MiwzNjQ4MywzNjQ4NCwzNjQ4''@;'; + put 'put ''NiwzNjQ4OCwzNjQ4OSwzNjQ5MCwzNjQ5MSwzNjQ5MiwzNjQ5MywzNjQ5NCwzNjQ5NywzNjQ5OCwzNjQ5OSwzNjUwMSwzNjUwMiwzNjUwMywzNjUwNCwzNjUwNSwzNjUwNiwzNjUwNywzNjUwOSwzNjUxMSwzNjUxMiwzNjUxMywzNjUxNCwzNjUxNSwzNjUxNiwzNjUxNywzNjUxOCwzNjUxOSwz''@;'; + put 'put ''NjUyMCwzNjUyMSwzNjUyMiwzNjUyNSwzNjUyNiwzNjUyOCwzNjUyOSwzNjUzMSwzNjUzMiwzNjUzMywzNjUzNCwzNjUzNSwzNjUzNiwzNjUzNywzNjUzOSwzNjU0MCwzNjU0MSwzNjU0MiwzNjU0MywzNjU0NCwzNjU0NSwzNjU0NiwzNjU0NywzNjU0OCwzNjU0OSwzNjU1MCwzNjU1MSwzNjU1''@;'; + put 'put ''MiwzNjU1MywzNjU1NCwzNjU1NSwzNjU1NiwzNjU1NywzNjU1OSwzNjU2MCwzNjU2MSwzNjU2MiwzNjU2MywzNjU2NCwzNjU2NSwzNjU2NiwzNjU2NywzNjU2OCwzNjU2OSwzNjU3MCwzNjU3MSwzNjU3MiwzNjU3MywzNjU3NCwzNjU3NSwzNjU3NiwzNjU3NywzNjU3OCwzNjU3OSwzNjU4MCwy''@;'; + put 'put ''MjUzOSwyMjU0MSwyMjUyNSwyMjUwOSwyMjUyOCwyMjU1OCwyMjU1MywyMjU5NiwyMjU2MCwyMjYyOSwyMjYzNiwyMjY1NywyMjY2NSwyMjY4MiwyMjY1NiwzOTMzNiw0MDcyOSwyNTA4NywzMzQwMSwzMzQwNSwzMzQwNywzMzQyMywzMzQxOCwzMzQ0OCwzMzQxMiwzMzQyMiwzMzQyNSwzMzQz''@;'; + put 'put ''MSwzMzQzMywzMzQ1MSwzMzQ2NCwzMzQ3MCwzMzQ1NiwzMzQ4MCwzMzQ4MiwzMzUwNywzMzQzMiwzMzQ2MywzMzQ1NCwzMzQ4MywzMzQ4NCwzMzQ3MywzMzQ0OSwzMzQ2MCwzMzQ0MSwzMzQ1MCwzMzQzOSwzMzQ3NiwzMzQ4NiwzMzQ0NCwzMzUwNSwzMzU0NSwzMzUyNywzMzUwOCwzMzU1MSwz''@;'; + put 'put ''MzU0MywzMzUwMCwzMzUyNCwzMzQ5MCwzMzQ5NiwzMzU0OCwzMzUzMSwzMzQ5MSwzMzU1MywzMzU2MiwzMzU0MiwzMzU1NiwzMzU1NywzMzUwNCwzMzQ5MywzMzU2NCwzMzYxNywzMzYyNywzMzYyOCwzMzU0NCwzMzY4MiwzMzU5NiwzMzU4OCwzMzU4NSwzMzY5MSwzMzYzMCwzMzU4MywzMzYx''@;'; + put 'put ''NSwzMzYwNywzMzYwMywzMzYzMSwzMzYwMCwzMzU1OSwzMzYzMiwzMzU4MSwzMzU5NCwzMzU4NywzMzYzOCwzMzYzNywzNjU4MSwzNjU4MiwzNjU4MywzNjU4NCwzNjU4NSwzNjU4NiwzNjU4NywzNjU4OCwzNjU4OSwzNjU5MCwzNjU5MSwzNjU5MiwzNjU5MywzNjU5NCwzNjU5NSwzNjU5Niwz''@;'; + put 'put ''NjU5NywzNjU5OCwzNjU5OSwzNjYwMCwzNjYwMSwzNjYwMiwzNjYwMywzNjYwNCwzNjYwNSwzNjYwNiwzNjYwNywzNjYwOCwzNjYwOSwzNjYxMCwzNjYxMSwzNjYxMiwzNjYxMywzNjYxNCwzNjYxNSwzNjYxNiwzNjYxNywzNjYxOCwzNjYxOSwzNjYyMCwzNjYyMSwzNjYyMiwzNjYyMywzNjYy''@;'; + put 'put ''NCwzNjYyNSwzNjYyNiwzNjYyNywzNjYyOCwzNjYyOSwzNjYzMCwzNjYzMSwzNjYzMiwzNjYzMywzNjYzNCwzNjYzNSwzNjYzNiwzNjYzNywzNjYzOCwzNjYzOSwzNjY0MCwzNjY0MSwzNjY0MiwzNjY0MywzNjY0NCwzNjY0NSwzNjY0NiwzNjY0NywzNjY0OCwzNjY0OSwzNjY1MCwzNjY1MSwz''@;'; + put 'put ''NjY1MiwzNjY1MywzNjY1NCwzNjY1NSwzNjY1NiwzNjY1NywzNjY1OCwzNjY1OSwzNjY2MCwzNjY2MSwzNjY2MiwzNjY2MywzNjY2NCwzNjY2NSwzNjY2NiwzNjY2NywzNjY2OCwzNjY2OSwzNjY3MCwzNjY3MSwzNjY3MiwzNjY3MywzNjY3NCwzNjY3NSwzNjY3NiwzMzY0MCwzMzU2MywzMzY0''@;'; + put 'put ''MSwzMzY0NCwzMzY0MiwzMzY0NSwzMzY0NiwzMzcxMiwzMzY1NiwzMzcxNSwzMzcxNiwzMzY5NiwzMzcwNiwzMzY4MywzMzY5MiwzMzY2OSwzMzY2MCwzMzcxOCwzMzcwNSwzMzY2MSwzMzcyMCwzMzY1OSwzMzY4OCwzMzY5NCwzMzcwNCwzMzcyMiwzMzcyNCwzMzcyOSwzMzc5MywzMzc2NSwz''@;'; + put 'put ''Mzc1MiwyMjUzNSwzMzgxNiwzMzgwMywzMzc1NywzMzc4OSwzMzc1MCwzMzgyMCwzMzg0OCwzMzgwOSwzMzc5OCwzMzc0OCwzMzc1OSwzMzgwNywzMzc5NSwzMzc4NCwzMzc4NSwzMzc3MCwzMzczMywzMzcyOCwzMzgzMCwzMzc3NiwzMzc2MSwzMzg4NCwzMzg3MywzMzg4MiwzMzg4MSwzMzkw''@;'; + put 'put ''NywzMzkyNywzMzkyOCwzMzkxNCwzMzkyOSwzMzkxMiwzMzg1MiwzMzg2MiwzMzg5NywzMzkxMCwzMzkzMiwzMzkzNCwzMzg0MSwzMzkwMSwzMzk4NSwzMzk5NywzNGUzLDM0MDIyLDMzOTgxLDM0MDAzLDMzOTk0LDMzOTgzLDMzOTc4LDM0MDE2LDMzOTUzLDMzOTc3LDMzOTcyLDMzOTQzLDM0''@;'; + put 'put ''MDIxLDM0MDE5LDM0MDYwLDI5OTY1LDM0MTA0LDM0MDMyLDM0MTA1LDM0MDc5LDM0MTA2LDM2Njc3LDM2Njc4LDM2Njc5LDM2NjgwLDM2NjgxLDM2NjgyLDM2NjgzLDM2Njg0LDM2Njg1LDM2Njg2LDM2Njg3LDM2Njg4LDM2Njg5LDM2NjkwLDM2NjkxLDM2NjkyLDM2NjkzLDM2Njk0LDM2Njk1''@;'; + put 'put ''LDM2Njk2LDM2Njk3LDM2Njk4LDM2Njk5LDM2NzAwLDM2NzAxLDM2NzAyLDM2NzAzLDM2NzA0LDM2NzA1LDM2NzA2LDM2NzA3LDM2NzA4LDM2NzA5LDM2NzE0LDM2NzM2LDM2NzQ4LDM2NzU0LDM2NzY1LDM2NzY4LDM2NzY5LDM2NzcwLDM2NzcyLDM2NzczLDM2Nzc0LDM2Nzc1LDM2Nzc4LDM2''@;'; + put 'put ''NzgwLDM2NzgxLDM2NzgyLDM2NzgzLDM2Nzg2LDM2Nzg3LDM2Nzg4LDM2Nzg5LDM2NzkxLDM2NzkyLDM2Nzk0LDM2Nzk1LDM2Nzk2LDM2Nzk5LDM2ODAwLDM2ODAzLDM2ODA2LDM2ODA5LDM2ODEwLDM2ODExLDM2ODEyLDM2ODEzLDM2ODE1LDM2ODE4LDM2ODIyLDM2ODIzLDM2ODI2LDM2ODMy''@;'; + put 'put ''LDM2ODMzLDM2ODM1LDM2ODM5LDM2ODQ0LDM2ODQ3LDM2ODQ5LDM2ODUwLDM2ODUyLDM2ODUzLDM2ODU0LDM2ODU4LDM2ODU5LDM2ODYwLDM2ODYyLDM2ODYzLDM2ODcxLDM2ODcyLDM2ODc2LDM2ODc4LDM2ODgzLDM2ODg1LDM2ODg4LDM0MTM0LDM0MTA3LDM0MDQ3LDM0MDQ0LDM0MTM3LDM0''@;'; + put 'put ''MTIwLDM0MTUyLDM0MTQ4LDM0MTQyLDM0MTcwLDMwNjI2LDM0MTE1LDM0MTYyLDM0MTcxLDM0MjEyLDM0MjE2LDM0MTgzLDM0MTkxLDM0MTY5LDM0MjIyLDM0MjA0LDM0MTgxLDM0MjMzLDM0MjMxLDM0MjI0LDM0MjU5LDM0MjQxLDM0MjY4LDM0MzAzLDM0MzQzLDM0MzA5LDM0MzQ1LDM0MzI2''@;'; + put 'put ''LDM0MzY0LDI0MzE4LDI0MzI4LDIyODQ0LDIyODQ5LDMyODIzLDIyODY5LDIyODc0LDIyODcyLDIxMjYzLDIzNTg2LDIzNTg5LDIzNTk2LDIzNjA0LDI1MTY0LDI1MTk0LDI1MjQ3LDI1Mjc1LDI1MjkwLDI1MzA2LDI1MzAzLDI1MzI2LDI1Mzc4LDI1MzM0LDI1NDAxLDI1NDE5LDI1NDExLDI1''@;'; + put 'put ''NTE3LDI1NTkwLDI1NDU3LDI1NDY2LDI1NDg2LDI1NTI0LDI1NDUzLDI1NTE2LDI1NDgyLDI1NDQ5LDI1NTE4LDI1NTMyLDI1NTg2LDI1NTkyLDI1NTY4LDI1NTk5LDI1NTQwLDI1NTY2LDI1NTUwLDI1NjgyLDI1NTQyLDI1NTM0LDI1NjY5LDI1NjY1LDI1NjExLDI1NjI3LDI1NjMyLDI1NjEy''@;'; + put 'put ''LDI1NjM4LDI1NjMzLDI1Njk0LDI1NzMyLDI1NzA5LDI1NzUwLDM2ODg5LDM2ODkyLDM2ODk5LDM2OTAwLDM2OTAxLDM2OTAzLDM2OTA0LDM2OTA1LDM2OTA2LDM2OTA3LDM2OTA4LDM2OTEyLDM2OTEzLDM2OTE0LDM2OTE1LDM2OTE2LDM2OTE5LDM2OTIxLDM2OTIyLDM2OTI1LDM2OTI3LDM2''@;'; + put 'put ''OTI4LDM2OTMxLDM2OTMzLDM2OTM0LDM2OTM2LDM2OTM3LDM2OTM4LDM2OTM5LDM2OTQwLDM2OTQyLDM2OTQ4LDM2OTQ5LDM2OTUwLDM2OTUzLDM2OTU0LDM2OTU2LDM2OTU3LDM2OTU4LDM2OTU5LDM2OTYwLDM2OTYxLDM2OTY0LDM2OTY2LDM2OTY3LDM2OTY5LDM2OTcwLDM2OTcxLDM2OTcy''@;'; + put 'put ''LDM2OTc1LDM2OTc2LDM2OTc3LDM2OTc4LDM2OTc5LDM2OTgyLDM2OTgzLDM2OTg0LDM2OTg1LDM2OTg2LDM2OTg3LDM2OTg4LDM2OTkwLDM2OTkzLDM2OTk2LDM2OTk3LDM2OTk4LDM2OTk5LDM3MDAxLDM3MDAyLDM3MDA0LDM3MDA1LDM3MDA2LDM3MDA3LDM3MDA4LDM3MDEwLDM3MDEyLDM3''@;'; + put 'put ''MDE0LDM3MDE2LDM3MDE4LDM3MDIwLDM3MDIyLDM3MDIzLDM3MDI0LDM3MDI4LDM3MDI5LDM3MDMxLDM3MDMyLDM3MDMzLDM3MDM1LDM3MDM3LDM3MDQyLDM3MDQ3LDM3MDUyLDM3MDUzLDM3MDU1LDM3MDU2LDI1NzIyLDI1NzgzLDI1Nzg0LDI1NzUzLDI1Nzg2LDI1NzkyLDI1ODA4LDI1ODE1''@;'; + put 'put ''LDI1ODI4LDI1ODI2LDI1ODY1LDI1ODkzLDI1OTAyLDI0MzMxLDI0NTMwLDI5OTc3LDI0MzM3LDIxMzQzLDIxNDg5LDIxNTAxLDIxNDgxLDIxNDgwLDIxNDk5LDIxNTIyLDIxNTI2LDIxNTEwLDIxNTc5LDIxNTg2LDIxNTg3LDIxNTg4LDIxNTkwLDIxNTcxLDIxNTM3LDIxNTkxLDIxNTkzLDIx''@;'; + put 'put ''NTM5LDIxNTU0LDIxNjM0LDIxNjUyLDIxNjIzLDIxNjE3LDIxNjA0LDIxNjU4LDIxNjU5LDIxNjM2LDIxNjIyLDIxNjA2LDIxNjYxLDIxNzEyLDIxNjc3LDIxNjk4LDIxNjg0LDIxNzE0LDIxNjcxLDIxNjcwLDIxNzE1LDIxNzE2LDIxNjE4LDIxNjY3LDIxNzE3LDIxNjkxLDIxNjk1LDIxNzA4''@;'; + put 'put ''LDIxNzIxLDIxNzIyLDIxNzI0LDIxNjczLDIxNjc0LDIxNjY4LDIxNzI1LDIxNzExLDIxNzI2LDIxNzg3LDIxNzM1LDIxNzkyLDIxNzU3LDIxNzgwLDIxNzQ3LDIxNzk0LDIxNzk1LDIxNzc1LDIxNzc3LDIxNzk5LDIxODAyLDIxODYzLDIxOTAzLDIxOTQxLDIxODMzLDIxODY5LDIxODI1LDIx''@;'; + put 'put ''ODQ1LDIxODIzLDIxODQwLDIxODIwLDM3MDU4LDM3MDU5LDM3MDYyLDM3MDY0LDM3MDY1LDM3MDY3LDM3MDY4LDM3MDY5LDM3MDc0LDM3MDc2LDM3MDc3LDM3MDc4LDM3MDgwLDM3MDgxLDM3MDgyLDM3MDg2LDM3MDg3LDM3MDg4LDM3MDkxLDM3MDkyLDM3MDkzLDM3MDk3LDM3MDk4LDM3MTAw''@;'; + put 'put ''LDM3MTAyLDM3MTA0LDM3MTA1LDM3MTA2LDM3MTA3LDM3MTA5LDM3MTEwLDM3MTExLDM3MTEzLDM3MTE0LDM3MTE1LDM3MTE2LDM3MTE5LDM3MTIwLDM3MTIxLDM3MTIzLDM3MTI1LDM3MTI2LDM3MTI3LDM3MTI4LDM3MTI5LDM3MTMwLDM3MTMxLDM3MTMyLDM3MTMzLDM3MTM0LDM3MTM1LDM3''@;'; + put 'put ''MTM2LDM3MTM3LDM3MTM4LDM3MTM5LDM3MTQwLDM3MTQxLDM3MTQyLDM3MTQzLDM3MTQ0LDM3MTQ2LDM3MTQ3LDM3MTQ4LDM3MTQ5LDM3MTUxLDM3MTUyLDM3MTUzLDM3MTU2LDM3MTU3LDM3MTU4LDM3MTU5LDM3MTYwLDM3MTYxLDM3MTYyLDM3MTYzLDM3MTY0LDM3MTY1LDM3MTY2LDM3MTY4''@;'; + put 'put ''LDM3MTcwLDM3MTcxLDM3MTcyLDM3MTczLDM3MTc0LDM3MTc1LDM3MTc2LDM3MTc4LDM3MTc5LDM3MTgwLDM3MTgxLDM3MTgyLDM3MTgzLDM3MTg0LDM3MTg1LDM3MTg2LDM3MTg4LDIxODE1LDIxODQ2LDIxODc3LDIxODc4LDIxODc5LDIxODExLDIxODA4LDIxODUyLDIxODk5LDIxOTcwLDIx''@;'; + put 'put ''ODkxLDIxOTM3LDIxOTQ1LDIxODk2LDIxODg5LDIxOTE5LDIxODg2LDIxOTc0LDIxOTA1LDIxODgzLDIxOTgzLDIxOTQ5LDIxOTUwLDIxOTA4LDIxOTEzLDIxOTk0LDIyMDA3LDIxOTYxLDIyMDQ3LDIxOTY5LDIxOTk1LDIxOTk2LDIxOTcyLDIxOTkwLDIxOTgxLDIxOTU2LDIxOTk5LDIxOTg5''@;'; + put 'put ''LDIyMDAyLDIyMDAzLDIxOTY0LDIxOTY1LDIxOTkyLDIyMDA1LDIxOTg4LDM2NzU2LDIyMDQ2LDIyMDI0LDIyMDI4LDIyMDE3LDIyMDUyLDIyMDUxLDIyMDE0LDIyMDE2LDIyMDU1LDIyMDYxLDIyMTA0LDIyMDczLDIyMTAzLDIyMDYwLDIyMDkzLDIyMTE0LDIyMTA1LDIyMTA4LDIyMDkyLDIy''@;'; + put 'put ''MTAwLDIyMTUwLDIyMTE2LDIyMTI5LDIyMTIzLDIyMTM5LDIyMTQwLDIyMTQ5LDIyMTYzLDIyMTkxLDIyMjI4LDIyMjMxLDIyMjM3LDIyMjQxLDIyMjYxLDIyMjUxLDIyMjY1LDIyMjcxLDIyMjc2LDIyMjgyLDIyMjgxLDIyMzAwLDI0MDc5LDI0MDg5LDI0MDg0LDI0MDgxLDI0MTEzLDI0MTIz''@;'; + put 'put ''LDI0MTI0LDM3MTg5LDM3MTkxLDM3MTkyLDM3MjAxLDM3MjAzLDM3MjA0LDM3MjA1LDM3MjA2LDM3MjA4LDM3MjA5LDM3MjExLDM3MjEyLDM3MjE1LDM3MjE2LDM3MjIyLDM3MjIzLDM3MjI0LDM3MjI3LDM3MjI5LDM3MjM1LDM3MjQyLDM3MjQzLDM3MjQ0LDM3MjQ4LDM3MjQ5LDM3MjUwLDM3''@;'; + put 'put ''MjUxLDM3MjUyLDM3MjU0LDM3MjU2LDM3MjU4LDM3MjYyLDM3MjYzLDM3MjY3LDM3MjY4LDM3MjY5LDM3MjcwLDM3MjcxLDM3MjcyLDM3MjczLDM3Mjc2LDM3Mjc3LDM3Mjc4LDM3Mjc5LDM3MjgwLDM3MjgxLDM3Mjg0LDM3Mjg1LDM3Mjg2LDM3Mjg3LDM3Mjg4LDM3Mjg5LDM3MjkxLDM3Mjky''@;'; + put 'put ''LDM3Mjk2LDM3Mjk3LDM3Mjk4LDM3Mjk5LDM3MzAyLDM3MzAzLDM3MzA0LDM3MzA1LDM3MzA3LDM3MzA4LDM3MzA5LDM3MzEwLDM3MzExLDM3MzEyLDM3MzEzLDM3MzE0LDM3MzE1LDM3MzE2LDM3MzE3LDM3MzE4LDM3MzIwLDM3MzIzLDM3MzI4LDM3MzMwLDM3MzMxLDM3MzMyLDM3MzMzLDM3''@;'; + put 'put ''MzM0LDM3MzM1LDM3MzM2LDM3MzM3LDM3MzM4LDM3MzM5LDM3MzQxLDM3MzQyLDM3MzQzLDM3MzQ0LDM3MzQ1LDM3MzQ2LDM3MzQ3LDM3MzQ4LDM3MzQ5LDI0MTE5LDI0MTMyLDI0MTQ4LDI0MTU1LDI0MTU4LDI0MTYxLDIzNjkyLDIzNjc0LDIzNjkzLDIzNjk2LDIzNzAyLDIzNjg4LDIzNzA0''@;'; + put 'put ''LDIzNzA1LDIzNjk3LDIzNzA2LDIzNzA4LDIzNzMzLDIzNzE0LDIzNzQxLDIzNzI0LDIzNzIzLDIzNzI5LDIzNzE1LDIzNzQ1LDIzNzM1LDIzNzQ4LDIzNzYyLDIzNzgwLDIzNzU1LDIzNzgxLDIzODEwLDIzODExLDIzODQ3LDIzODQ2LDIzODU0LDIzODQ0LDIzODM4LDIzODE0LDIzODM1LDIz''@;'; + put 'put ''ODk2LDIzODcwLDIzODYwLDIzODY5LDIzOTE2LDIzODk5LDIzOTE5LDIzOTAxLDIzOTE1LDIzODgzLDIzODgyLDIzOTEzLDIzOTI0LDIzOTM4LDIzOTYxLDIzOTY1LDM1OTU1LDIzOTkxLDI0MDA1LDI0NDM1LDI0NDM5LDI0NDUwLDI0NDU1LDI0NDU3LDI0NDYwLDI0NDY5LDI0NDczLDI0NDc2''@;'; + put 'put ''LDI0NDg4LDI0NDkzLDI0NTAxLDI0NTA4LDM0OTE0LDI0NDE3LDI5MzU3LDI5MzYwLDI5MzY0LDI5MzY3LDI5MzY4LDI5Mzc5LDI5Mzc3LDI5MzkwLDI5Mzg5LDI5Mzk0LDI5NDE2LDI5NDIzLDI5NDE3LDI5NDI2LDI5NDI4LDI5NDMxLDI5NDQxLDI5NDI3LDI5NDQzLDI5NDM0LDM3MzUwLDM3''@;'; + put 'put ''MzUxLDM3MzUyLDM3MzUzLDM3MzU0LDM3MzU1LDM3MzU2LDM3MzU3LDM3MzU4LDM3MzU5LDM3MzYwLDM3MzYxLDM3MzYyLDM3MzYzLDM3MzY0LDM3MzY1LDM3MzY2LDM3MzY3LDM3MzY4LDM3MzY5LDM3MzcwLDM3MzcxLDM3MzcyLDM3MzczLDM3Mzc0LDM3Mzc1LDM3Mzc2LDM3Mzc3LDM3Mzc4''@;'; + put 'put ''LDM3Mzc5LDM3MzgwLDM3MzgxLDM3MzgyLDM3MzgzLDM3Mzg0LDM3Mzg1LDM3Mzg2LDM3Mzg3LDM3Mzg4LDM3Mzg5LDM3MzkwLDM3MzkxLDM3MzkyLDM3MzkzLDM3Mzk0LDM3Mzk1LDM3Mzk2LDM3Mzk3LDM3Mzk4LDM3Mzk5LDM3NDAwLDM3NDAxLDM3NDAyLDM3NDAzLDM3NDA0LDM3NDA1LDM3''@;'; + put 'put ''NDA2LDM3NDA3LDM3NDA4LDM3NDA5LDM3NDEwLDM3NDExLDM3NDEyLDM3NDEzLDM3NDE0LDM3NDE1LDM3NDE2LDM3NDE3LDM3NDE4LDM3NDE5LDM3NDIwLDM3NDIxLDM3NDIyLDM3NDIzLDM3NDI0LDM3NDI1LDM3NDI2LDM3NDI3LDM3NDI4LDM3NDI5LDM3NDMwLDM3NDMxLDM3NDMyLDM3NDMz''@;'; + put 'put ''LDM3NDM0LDM3NDM1LDM3NDM2LDM3NDM3LDM3NDM4LDM3NDM5LDM3NDQwLDM3NDQxLDM3NDQyLDM3NDQzLDM3NDQ0LDM3NDQ1LDI5NDM1LDI5NDYzLDI5NDU5LDI5NDczLDI5NDUwLDI5NDcwLDI5NDY5LDI5NDYxLDI5NDc0LDI5NDk3LDI5NDc3LDI5NDg0LDI5NDk2LDI5NDg5LDI5NTIwLDI5''@;'; + put 'put ''NTE3LDI5NTI3LDI5NTM2LDI5NTQ4LDI5NTUxLDI5NTY2LDMzMzA3LDIyODIxLDM5MTQzLDIyODIwLDIyNzg2LDM5MjY3LDM5MjcxLDM5MjcyLDM5MjczLDM5Mjc0LDM5Mjc1LDM5Mjc2LDM5Mjg0LDM5Mjg3LDM5MjkzLDM5Mjk2LDM5MzAwLDM5MzAzLDM5MzA2LDM5MzA5LDM5MzEyLDM5MzEz''@;'; + put 'put ''LDM5MzE1LDM5MzE2LDM5MzE3LDI0MTkyLDI0MjA5LDI0MjAzLDI0MjE0LDI0MjI5LDI0MjI0LDI0MjQ5LDI0MjQ1LDI0MjU0LDI0MjQzLDM2MTc5LDI0Mjc0LDI0MjczLDI0MjgzLDI0Mjk2LDI0Mjk4LDMzMjEwLDI0NTE2LDI0NTIxLDI0NTM0LDI0NTI3LDI0NTc5LDI0NTU4LDI0NTgwLDI0''@;'; + put 'put ''NTQ1LDI0NTQ4LDI0NTc0LDI0NTgxLDI0NTgyLDI0NTU0LDI0NTU3LDI0NTY4LDI0NjAxLDI0NjI5LDI0NjE0LDI0NjAzLDI0NTkxLDI0NTg5LDI0NjE3LDI0NjE5LDI0NTg2LDI0NjM5LDI0NjA5LDI0Njk2LDI0Njk3LDI0Njk5LDI0Njk4LDI0NjQyLDM3NDQ2LDM3NDQ3LDM3NDQ4LDM3NDQ5''@;'; + put 'put ''LDM3NDUwLDM3NDUxLDM3NDUyLDM3NDUzLDM3NDU0LDM3NDU1LDM3NDU2LDM3NDU3LDM3NDU4LDM3NDU5LDM3NDYwLDM3NDYxLDM3NDYyLDM3NDYzLDM3NDY0LDM3NDY1LDM3NDY2LDM3NDY3LDM3NDY4LDM3NDY5LDM3NDcwLDM3NDcxLDM3NDcyLDM3NDczLDM3NDc0LDM3NDc1LDM3NDc2LDM3''@;'; + put 'put ''NDc3LDM3NDc4LDM3NDc5LDM3NDgwLDM3NDgxLDM3NDgyLDM3NDgzLDM3NDg0LDM3NDg1LDM3NDg2LDM3NDg3LDM3NDg4LDM3NDg5LDM3NDkwLDM3NDkxLDM3NDkzLDM3NDk0LDM3NDk1LDM3NDk2LDM3NDk3LDM3NDk4LDM3NDk5LDM3NTAwLDM3NTAxLDM3NTAyLDM3NTAzLDM3NTA0LDM3NTA1''@;'; + put 'put ''LDM3NTA2LDM3NTA3LDM3NTA4LDM3NTA5LDM3NTEwLDM3NTExLDM3NTEyLDM3NTEzLDM3NTE0LDM3NTE1LDM3NTE2LDM3NTE3LDM3NTE5LDM3NTIwLDM3NTIxLDM3NTIyLDM3NTIzLDM3NTI0LDM3NTI1LDM3NTI2LDM3NTI3LDM3NTI4LDM3NTI5LDM3NTMwLDM3NTMxLDM3NTMyLDM3NTMzLDM3''@;'; + put 'put ''NTM0LDM3NTM1LDM3NTM2LDM3NTM3LDM3NTM4LDM3NTM5LDM3NTQwLDM3NTQxLDM3NTQyLDM3NTQzLDI0NjgyLDI0NzAxLDI0NzI2LDI0NzMwLDI0NzQ5LDI0NzMzLDI0NzA3LDI0NzIyLDI0NzE2LDI0NzMxLDI0ODEyLDI0NzYzLDI0NzUzLDI0Nzk3LDI0NzkyLDI0Nzc0LDI0Nzk0LDI0NzU2''@;'; + put 'put ''LDI0ODY0LDI0ODcwLDI0ODUzLDI0ODY3LDI0ODIwLDI0ODMyLDI0ODQ2LDI0ODc1LDI0OTA2LDI0OTQ5LDI1MDA0LDI0OTgwLDI0OTk5LDI1MDE1LDI1MDQ0LDI1MDc3LDI0NTQxLDM4NTc5LDM4Mzc3LDM4Mzc5LDM4Mzg1LDM4Mzg3LDM4Mzg5LDM4MzkwLDM4Mzk2LDM4Mzk4LDM4NDAzLDM4''@;'; + put 'put ''NDA0LDM4NDA2LDM4NDA4LDM4NDEwLDM4NDExLDM4NDEyLDM4NDEzLDM4NDE1LDM4NDE4LDM4NDIxLDM4NDIyLDM4NDIzLDM4NDI1LDM4NDI2LDIwMDEyLDI5MjQ3LDI1MTA5LDI3NzAxLDI3NzMyLDI3NzQwLDI3NzIyLDI3ODExLDI3NzgxLDI3NzkyLDI3Nzk2LDI3Nzg4LDI3NzUyLDI3NzUz''@;'; + put 'put ''LDI3NzY0LDI3NzY2LDI3NzgyLDI3ODE3LDI3ODU2LDI3ODYwLDI3ODIxLDI3ODk1LDI3ODk2LDI3ODg5LDI3ODYzLDI3ODI2LDI3ODcyLDI3ODYyLDI3ODk4LDI3ODgzLDI3ODg2LDI3ODI1LDI3ODU5LDI3ODg3LDI3OTAyLDM3NTQ0LDM3NTQ1LDM3NTQ2LDM3NTQ3LDM3NTQ4LDM3NTQ5LDM3''@;'; + put 'put ''NTUxLDM3NTUyLDM3NTUzLDM3NTU0LDM3NTU1LDM3NTU2LDM3NTU3LDM3NTU4LDM3NTU5LDM3NTYwLDM3NTYxLDM3NTYyLDM3NTYzLDM3NTY0LDM3NTY1LDM3NTY2LDM3NTY3LDM3NTY4LDM3NTY5LDM3NTcwLDM3NTcxLDM3NTcyLDM3NTczLDM3NTc0LDM3NTc1LDM3NTc3LDM3NTc4LDM3NTc5''@;'; + put 'put ''LDM3NTgwLDM3NTgxLDM3NTgyLDM3NTgzLDM3NTg0LDM3NTg1LDM3NTg2LDM3NTg3LDM3NTg4LDM3NTg5LDM3NTkwLDM3NTkxLDM3NTkyLDM3NTkzLDM3NTk0LDM3NTk1LDM3NTk2LDM3NTk3LDM3NTk4LDM3NTk5LDM3NjAwLDM3NjAxLDM3NjAyLDM3NjAzLDM3NjA0LDM3NjA1LDM3NjA2LDM3''@;'; + put 'put ''NjA3LDM3NjA4LDM3NjA5LDM3NjEwLDM3NjExLDM3NjEyLDM3NjEzLDM3NjE0LDM3NjE1LDM3NjE2LDM3NjE3LDM3NjE4LDM3NjE5LDM3NjIwLDM3NjIxLDM3NjIyLDM3NjIzLDM3NjI0LDM3NjI1LDM3NjI2LDM3NjI3LDM3NjI4LDM3NjI5LDM3NjMwLDM3NjMxLDM3NjMyLDM3NjMzLDM3NjM0''@;'; + put 'put ''LDM3NjM1LDM3NjM2LDM3NjM3LDM3NjM4LDM3NjM5LDM3NjQwLDM3NjQxLDI3OTYxLDI3OTQzLDI3OTE2LDI3OTcxLDI3OTc2LDI3OTExLDI3OTA4LDI3OTI5LDI3OTE4LDI3OTQ3LDI3OTgxLDI3OTUwLDI3OTU3LDI3OTMwLDI3OTgzLDI3OTg2LDI3OTg4LDI3OTU1LDI4MDQ5LDI4MDE1LDI4''@;'; + put 'put ''MDYyLDI4MDY0LDI3OTk4LDI4MDUxLDI4MDUyLDI3OTk2LDI4ZTMsMjgwMjgsMjgwMDMsMjgxODYsMjgxMDMsMjgxMDEsMjgxMjYsMjgxNzQsMjgwOTUsMjgxMjgsMjgxNzcsMjgxMzQsMjgxMjUsMjgxMjEsMjgxODIsMjgwNzUsMjgxNzIsMjgwNzgsMjgyMDMsMjgyNzAsMjgyMzgsMjgyNjcs''@;'; + put 'put ''MjgzMzgsMjgyNTUsMjgyOTQsMjgyNDMsMjgyNDQsMjgyMTAsMjgxOTcsMjgyMjgsMjgzODMsMjgzMzcsMjgzMTIsMjgzODQsMjg0NjEsMjgzODYsMjgzMjUsMjgzMjcsMjgzNDksMjgzNDcsMjgzNDMsMjgzNzUsMjgzNDAsMjgzNjcsMjgzMDMsMjgzNTQsMjgzMTksMjg1MTQsMjg0ODYsMjg0''@;'; + put 'put ''ODcsMjg0NTIsMjg0MzcsMjg0MDksMjg0NjMsMjg0NzAsMjg0OTEsMjg1MzIsMjg0NTgsMjg0MjUsMjg0NTcsMjg1NTMsMjg1NTcsMjg1NTYsMjg1MzYsMjg1MzAsMjg1NDAsMjg1MzgsMjg2MjUsMzc2NDIsMzc2NDMsMzc2NDQsMzc2NDUsMzc2NDYsMzc2NDcsMzc2NDgsMzc2NDksMzc2NTAs''@;'; + put 'put ''Mzc2NTEsMzc2NTIsMzc2NTMsMzc2NTQsMzc2NTUsMzc2NTYsMzc2NTcsMzc2NTgsMzc2NTksMzc2NjAsMzc2NjEsMzc2NjIsMzc2NjMsMzc2NjQsMzc2NjUsMzc2NjYsMzc2NjcsMzc2NjgsMzc2NjksMzc2NzAsMzc2NzEsMzc2NzIsMzc2NzMsMzc2NzQsMzc2NzUsMzc2NzYsMzc2NzcsMzc2''@;'; + put 'put ''NzgsMzc2NzksMzc2ODAsMzc2ODEsMzc2ODIsMzc2ODMsMzc2ODQsMzc2ODUsMzc2ODYsMzc2ODcsMzc2ODgsMzc2ODksMzc2OTAsMzc2OTEsMzc2OTIsMzc2OTMsMzc2OTUsMzc2OTYsMzc2OTcsMzc2OTgsMzc2OTksMzc3MDAsMzc3MDEsMzc3MDIsMzc3MDMsMzc3MDQsMzc3MDUsMzc3MDYs''@;'; + put 'put ''Mzc3MDcsMzc3MDgsMzc3MDksMzc3MTAsMzc3MTEsMzc3MTIsMzc3MTMsMzc3MTQsMzc3MTUsMzc3MTYsMzc3MTcsMzc3MTgsMzc3MTksMzc3MjAsMzc3MjEsMzc3MjIsMzc3MjMsMzc3MjQsMzc3MjUsMzc3MjYsMzc3MjcsMzc3MjgsMzc3MjksMzc3MzAsMzc3MzEsMzc3MzIsMzc3MzMsMzc3''@;'; + put 'put ''MzQsMzc3MzUsMzc3MzYsMzc3MzcsMzc3MzksMjg2MTcsMjg1ODMsMjg2MDEsMjg1OTgsMjg2MTAsMjg2NDEsMjg2NTQsMjg2MzgsMjg2NDAsMjg2NTUsMjg2OTgsMjg3MDcsMjg2OTksMjg3MjksMjg3MjUsMjg3NTEsMjg3NjYsMjM0MjQsMjM0MjgsMjM0NDUsMjM0NDMsMjM0NjEsMjM0ODAs''@;'; + put 'put ''Mjk5OTksMzk1ODIsMjU2NTIsMjM1MjQsMjM1MzQsMzUxMjAsMjM1MzYsMzY0MjMsMzU1OTEsMzY3OTAsMzY4MTksMzY4MjEsMzY4MzcsMzY4NDYsMzY4MzYsMzY4NDEsMzY4MzgsMzY4NTEsMzY4NDAsMzY4NjksMzY4NjgsMzY4NzUsMzY5MDIsMzY4ODEsMzY4NzcsMzY4ODYsMzY4OTcsMzY5''@;'; + put 'put ''MTcsMzY5MTgsMzY5MDksMzY5MTEsMzY5MzIsMzY5NDUsMzY5NDYsMzY5NDQsMzY5NjgsMzY5NTIsMzY5NjIsMzY5NTUsMjYyOTcsMzY5ODAsMzY5ODksMzY5OTQsMzdlMywzNjk5NSwzNzAwMywyNDQwMCwyNDQwNywyNDQwNiwyNDQwOCwyMzYxMSwyMTY3NSwyMzYzMiwyMzY0MSwyMzQwOSwy''@;'; + put 'put ''MzY1MSwyMzY1NCwzMjcwMCwyNDM2MiwyNDM2MSwyNDM2NSwzMzM5NiwyNDM4MCwzOTczOSwyMzY2MiwyMjkxMywyMjkxNSwyMjkyNSwyMjk1MywyMjk1NCwyMjk0NywzNzc0MCwzNzc0MSwzNzc0MiwzNzc0MywzNzc0NCwzNzc0NSwzNzc0NiwzNzc0NywzNzc0OCwzNzc0OSwzNzc1MCwzNzc1''@;'; + put 'put ''MSwzNzc1MiwzNzc1MywzNzc1NCwzNzc1NSwzNzc1NiwzNzc1NywzNzc1OCwzNzc1OSwzNzc2MCwzNzc2MSwzNzc2MiwzNzc2MywzNzc2NCwzNzc2NSwzNzc2NiwzNzc2NywzNzc2OCwzNzc2OSwzNzc3MCwzNzc3MSwzNzc3MiwzNzc3MywzNzc3NCwzNzc3NiwzNzc3NywzNzc3OCwzNzc3OSwz''@;'; + put 'put ''Nzc4MCwzNzc4MSwzNzc4MiwzNzc4MywzNzc4NCwzNzc4NSwzNzc4NiwzNzc4NywzNzc4OCwzNzc4OSwzNzc5MCwzNzc5MSwzNzc5MiwzNzc5MywzNzc5NCwzNzc5NSwzNzc5NiwzNzc5NywzNzc5OCwzNzc5OSwzNzgwMCwzNzgwMSwzNzgwMiwzNzgwMywzNzgwNCwzNzgwNSwzNzgwNiwzNzgw''@;'; + put 'put ''NywzNzgwOCwzNzgwOSwzNzgxMCwzNzgxMSwzNzgxMiwzNzgxMywzNzgxNCwzNzgxNSwzNzgxNiwzNzgxNywzNzgxOCwzNzgxOSwzNzgyMCwzNzgyMSwzNzgyMiwzNzgyMywzNzgyNCwzNzgyNSwzNzgyNiwzNzgyNywzNzgyOCwzNzgyOSwzNzgzMCwzNzgzMSwzNzgzMiwzNzgzMywzNzgzNSwz''@;'; + put 'put ''NzgzNiwzNzgzNywyMjkzNSwyMjk4NiwyMjk1NSwyMjk0MiwyMjk0OCwyMjk5NCwyMjk2MiwyMjk1OSwyMjk5OSwyMjk3NCwyMzA0NSwyMzA0NiwyMzAwNSwyMzA0OCwyMzAxMSwyM2UzLDIzMDMzLDIzMDUyLDIzMDQ5LDIzMDkwLDIzMDkyLDIzMDU3LDIzMDc1LDIzMDU5LDIzMTA0LDIzMTQz''@;'; + put 'put ''LDIzMTE0LDIzMTI1LDIzMTAwLDIzMTM4LDIzMTU3LDMzMDA0LDIzMjEwLDIzMTk1LDIzMTU5LDIzMTYyLDIzMjMwLDIzMjc1LDIzMjE4LDIzMjUwLDIzMjUyLDIzMjI0LDIzMjY0LDIzMjY3LDIzMjgxLDIzMjU0LDIzMjcwLDIzMjU2LDIzMjYwLDIzMzA1LDIzMzE5LDIzMzE4LDIzMzQ2LDIz''@;'; + put 'put ''MzUxLDIzMzYwLDIzNTczLDIzNTgwLDIzMzg2LDIzMzk3LDIzNDExLDIzMzc3LDIzMzc5LDIzMzk0LDM5NTQxLDM5NTQzLDM5NTQ0LDM5NTQ2LDM5NTUxLDM5NTQ5LDM5NTUyLDM5NTUzLDM5NTU3LDM5NTYwLDM5NTYyLDM5NTY4LDM5NTcwLDM5NTcxLDM5NTc0LDM5NTc2LDM5NTc5LDM5NTgw''@;'; + put 'put ''LDM5NTgxLDM5NTgzLDM5NTg0LDM5NTg2LDM5NTg3LDM5NTg5LDM5NTkxLDMyNDE1LDMyNDE3LDMyNDE5LDMyNDIxLDMyNDI0LDMyNDI1LDM3ODM4LDM3ODM5LDM3ODQwLDM3ODQxLDM3ODQyLDM3ODQzLDM3ODQ0LDM3ODQ1LDM3ODQ3LDM3ODQ4LDM3ODQ5LDM3ODUwLDM3ODUxLDM3ODUyLDM3''@;'; + put 'put ''ODUzLDM3ODU0LDM3ODU1LDM3ODU2LDM3ODU3LDM3ODU4LDM3ODU5LDM3ODYwLDM3ODYxLDM3ODYyLDM3ODYzLDM3ODY0LDM3ODY1LDM3ODY2LDM3ODY3LDM3ODY4LDM3ODY5LDM3ODcwLDM3ODcxLDM3ODcyLDM3ODczLDM3ODc0LDM3ODc1LDM3ODc2LDM3ODc3LDM3ODc4LDM3ODc5LDM3ODgw''@;'; + put 'put ''LDM3ODgxLDM3ODgyLDM3ODgzLDM3ODg0LDM3ODg1LDM3ODg2LDM3ODg3LDM3ODg4LDM3ODg5LDM3ODkwLDM3ODkxLDM3ODkyLDM3ODkzLDM3ODk0LDM3ODk1LDM3ODk2LDM3ODk3LDM3ODk4LDM3ODk5LDM3OTAwLDM3OTAxLDM3OTAyLDM3OTAzLDM3OTA0LDM3OTA1LDM3OTA2LDM3OTA3LDM3''@;'; + put 'put ''OTA4LDM3OTA5LDM3OTEwLDM3OTExLDM3OTEyLDM3OTEzLDM3OTE0LDM3OTE1LDM3OTE2LDM3OTE3LDM3OTE4LDM3OTE5LDM3OTIwLDM3OTIxLDM3OTIyLDM3OTIzLDM3OTI0LDM3OTI1LDM3OTI2LDM3OTI3LDM3OTI4LDM3OTI5LDM3OTMwLDM3OTMxLDM3OTMyLDM3OTMzLDM3OTM0LDMyNDI5''@;'; + put 'put ''LDMyNDMyLDMyNDQ2LDMyNDQ4LDMyNDQ5LDMyNDUwLDMyNDU3LDMyNDU5LDMyNDYwLDMyNDY0LDMyNDY4LDMyNDcxLDMyNDc1LDMyNDgwLDMyNDgxLDMyNDg4LDMyNDkxLDMyNDk0LDMyNDk1LDMyNDk3LDMyNDk4LDMyNTI1LDMyNTAyLDMyNTA2LDMyNTA3LDMyNTEwLDMyNTEzLDMyNTE0LDMy''@;'; + put 'put ''NTE1LDMyNTE5LDMyNTIwLDMyNTIzLDMyNTI0LDMyNTI3LDMyNTI5LDMyNTMwLDMyNTM1LDMyNTM3LDMyNTQwLDMyNTM5LDMyNTQzLDMyNTQ1LDMyNTQ2LDMyNTQ3LDMyNTQ4LDMyNTQ5LDMyNTUwLDMyNTUxLDMyNTU0LDMyNTU1LDMyNTU2LDMyNTU3LDMyNTU5LDMyNTYwLDMyNTYxLDMyNTYy''@;'; + put 'put ''LDMyNTYzLDMyNTY1LDI0MTg2LDMwMDc5LDI0MDI3LDMwMDE0LDM3MDEzLDI5NTgyLDI5NTg1LDI5NjE0LDI5NjAyLDI5NTk5LDI5NjQ3LDI5NjM0LDI5NjQ5LDI5NjIzLDI5NjE5LDI5NjMyLDI5NjQxLDI5NjQwLDI5NjY5LDI5NjU3LDM5MDM2LDI5NzA2LDI5NjczLDI5NjcxLDI5NjYyLDI5''@;'; + put 'put ''NjI2LDI5NjgyLDI5NzExLDI5NzM4LDI5Nzg3LDI5NzM0LDI5NzMzLDI5NzM2LDI5NzQ0LDI5NzQyLDI5NzQwLDM3OTM1LDM3OTM2LDM3OTM3LDM3OTM4LDM3OTM5LDM3OTQwLDM3OTQxLDM3OTQyLDM3OTQzLDM3OTQ0LDM3OTQ1LDM3OTQ2LDM3OTQ3LDM3OTQ4LDM3OTQ5LDM3OTUxLDM3OTUy''@;'; + put 'put ''LDM3OTUzLDM3OTU0LDM3OTU1LDM3OTU2LDM3OTU3LDM3OTU4LDM3OTU5LDM3OTYwLDM3OTYxLDM3OTYyLDM3OTYzLDM3OTY0LDM3OTY1LDM3OTY2LDM3OTY3LDM3OTY4LDM3OTY5LDM3OTcwLDM3OTcxLDM3OTcyLDM3OTczLDM3OTc0LDM3OTc1LDM3OTc2LDM3OTc3LDM3OTc4LDM3OTc5LDM3''@;'; + put 'put ''OTgwLDM3OTgxLDM3OTgyLDM3OTgzLDM3OTg0LDM3OTg1LDM3OTg2LDM3OTg3LDM3OTg4LDM3OTg5LDM3OTkwLDM3OTkxLDM3OTkyLDM3OTkzLDM3OTk0LDM3OTk2LDM3OTk3LDM3OTk4LDM3OTk5LDM4ZTMsMzgwMDEsMzgwMDIsMzgwMDMsMzgwMDQsMzgwMDUsMzgwMDYsMzgwMDcsMzgwMDgs''@;'; + put 'put ''MzgwMDksMzgwMTAsMzgwMTEsMzgwMTIsMzgwMTMsMzgwMTQsMzgwMTUsMzgwMTYsMzgwMTcsMzgwMTgsMzgwMTksMzgwMjAsMzgwMzMsMzgwMzgsMzgwNDAsMzgwODcsMzgwOTUsMzgwOTksMzgxMDAsMzgxMDYsMzgxMTgsMzgxMzksMzgxNzIsMzgxNzYsMjk3MjMsMjk3MjIsMjk3NjEsMjk3''@;'; + put 'put ''ODgsMjk3ODMsMjk3ODEsMjk3ODUsMjk4MTUsMjk4MDUsMjk4MjIsMjk4NTIsMjk4MzgsMjk4MjQsMjk4MjUsMjk4MzEsMjk4MzUsMjk4NTQsMjk4NjQsMjk4NjUsMjk4NDAsMjk4NjMsMjk5MDYsMjk4ODIsMzg4OTAsMzg4OTEsMzg4OTIsMjY0NDQsMjY0NTEsMjY0NjIsMjY0NDAsMjY0NzMs''@;'; + put 'put ''MjY1MzMsMjY1MDMsMjY0NzQsMjY0ODMsMjY1MjAsMjY1MzUsMjY0ODUsMjY1MzYsMjY1MjYsMjY1NDEsMjY1MDcsMjY0ODcsMjY0OTIsMjY2MDgsMjY2MzMsMjY1ODQsMjY2MzQsMjY2MDEsMjY1NDQsMjY2MzYsMjY1ODUsMjY1NDksMjY1ODYsMjY1NDcsMjY1ODksMjY2MjQsMjY1NjMsMjY1''@;'; + put 'put ''NTIsMjY1OTQsMjY2MzgsMjY1NjEsMjY2MjEsMjY2NzQsMjY2NzUsMjY3MjAsMjY3MjEsMjY3MDIsMjY3MjIsMjY2OTIsMjY3MjQsMjY3NTUsMjY2NTMsMjY3MDksMjY3MjYsMjY2ODksMjY3MjcsMjY2ODgsMjY2ODYsMjY2OTgsMjY2OTcsMjY2NjUsMjY4MDUsMjY3NjcsMjY3NDAsMjY3NDMs''@;'; + put 'put ''MjY3NzEsMjY3MzEsMjY4MTgsMjY5OTAsMjY4NzYsMjY5MTEsMjY5MTIsMjY4NzMsMzgxODMsMzgxOTUsMzgyMDUsMzgyMTEsMzgyMTYsMzgyMTksMzgyMjksMzgyMzQsMzgyNDAsMzgyNTQsMzgyNjAsMzgyNjEsMzgyNjMsMzgyNjQsMzgyNjUsMzgyNjYsMzgyNjcsMzgyNjgsMzgyNjksMzgy''@;'; + put 'put ''NzAsMzgyNzIsMzgyNzMsMzgyNzQsMzgyNzUsMzgyNzYsMzgyNzcsMzgyNzgsMzgyNzksMzgyODAsMzgyODEsMzgyODIsMzgyODMsMzgyODQsMzgyODUsMzgyODYsMzgyODcsMzgyODgsMzgyODksMzgyOTAsMzgyOTEsMzgyOTIsMzgyOTMsMzgyOTQsMzgyOTUsMzgyOTYsMzgyOTcsMzgyOTgs''@;'; + put 'put ''MzgyOTksMzgzMDAsMzgzMDEsMzgzMDIsMzgzMDMsMzgzMDQsMzgzMDUsMzgzMDYsMzgzMDcsMzgzMDgsMzgzMDksMzgzMTAsMzgzMTEsMzgzMTIsMzgzMTMsMzgzMTQsMzgzMTUsMzgzMTYsMzgzMTcsMzgzMTgsMzgzMTksMzgzMjAsMzgzMjEsMzgzMjIsMzgzMjMsMzgzMjQsMzgzMjUsMzgz''@;'; + put 'put ''MjYsMzgzMjcsMzgzMjgsMzgzMjksMzgzMzAsMzgzMzEsMzgzMzIsMzgzMzMsMzgzMzQsMzgzMzUsMzgzMzYsMzgzMzcsMzgzMzgsMzgzMzksMzgzNDAsMzgzNDEsMzgzNDIsMzgzNDMsMzgzNDQsMzgzNDUsMzgzNDYsMzgzNDcsMjY5MTYsMjY4NjQsMjY4OTEsMjY4ODEsMjY5NjcsMjY4NTEs''@;'; + put 'put ''MjY4OTYsMjY5OTMsMjY5MzcsMjY5NzYsMjY5NDYsMjY5NzMsMjcwMTIsMjY5ODcsMjcwMDgsMjcwMzIsMjdlMywyNjkzMiwyNzA4NCwyNzAxNSwyNzAxNiwyNzA4NiwyNzAxNywyNjk4MiwyNjk3OSwyNzAwMSwyNzAzNSwyNzA0NywyNzA2NywyNzA1MSwyNzA1MywyNzA5MiwyNzA1NywyNzA3''@;'; + put 'put ''MywyNzA4MiwyNzEwMywyNzAyOSwyNzEwNCwyNzAyMSwyNzEzNSwyNzE4MywyNzExNywyNzE1OSwyNzE2MCwyNzIzNywyNzEyMiwyNzIwNCwyNzE5OCwyNzI5NiwyNzIxNiwyNzIyNywyNzE4OSwyNzI3OCwyNzI1NywyNzE5NywyNzE3NiwyNzIyNCwyNzI2MCwyNzI4MSwyNzI4MCwyNzMwNSwy''@;'; + put 'put ''NzI4NywyNzMwNywyOTQ5NSwyOTUyMiwyNzUyMSwyNzUyMiwyNzUyNywyNzUyNCwyNzUzOCwyNzUzOSwyNzUzMywyNzU0NiwyNzU0NywyNzU1MywyNzU2MiwzNjcxNSwzNjcxNywzNjcyMSwzNjcyMiwzNjcyMywzNjcyNSwzNjcyNiwzNjcyOCwzNjcyNywzNjcyOSwzNjczMCwzNjczMiwzNjcz''@;'; + put 'put ''NCwzNjczNywzNjczOCwzNjc0MCwzNjc0MywzNjc0NywzODM0OCwzODM0OSwzODM1MCwzODM1MSwzODM1MiwzODM1MywzODM1NCwzODM1NSwzODM1NiwzODM1NywzODM1OCwzODM1OSwzODM2MCwzODM2MSwzODM2MiwzODM2MywzODM2NCwzODM2NSwzODM2NiwzODM2NywzODM2OCwzODM2OSwz''@;'; + put 'put ''ODM3MCwzODM3MSwzODM3MiwzODM3MywzODM3NCwzODM3NSwzODM4MCwzODM5OSwzODQwNywzODQxOSwzODQyNCwzODQyNywzODQzMCwzODQzMiwzODQzNSwzODQzNiwzODQzNywzODQzOCwzODQzOSwzODQ0MCwzODQ0MSwzODQ0MywzODQ0NCwzODQ0NSwzODQ0NywzODQ0OCwzODQ1NSwzODQ1''@;'; + put 'put ''NiwzODQ1NywzODQ1OCwzODQ2MiwzODQ2NSwzODQ2NywzODQ3NCwzODQ3OCwzODQ3OSwzODQ4MSwzODQ4MiwzODQ4MywzODQ4NiwzODQ4NywzODQ4OCwzODQ4OSwzODQ5MCwzODQ5MiwzODQ5MywzODQ5NCwzODQ5NiwzODQ5OSwzODUwMSwzODUwMiwzODUwNywzODUwOSwzODUxMCwzODUxMSwz''@;'; + put 'put ''ODUxMiwzODUxMywzODUxNSwzODUyMCwzODUyMSwzODUyMiwzODUyMywzODUyNCwzODUyNSwzODUyNiwzODUyNywzODUyOCwzODUyOSwzODUzMCwzODUzMSwzODUzMiwzODUzNSwzODUzNywzODUzOCwzNjc0OSwzNjc1MCwzNjc1MSwzNjc2MCwzNjc2MiwzNjU1OCwyNTA5OSwyNTExMSwyNTEx''@;'; + put 'put ''NSwyNTExOSwyNTEyMiwyNTEyMSwyNTEyNSwyNTEyNCwyNTEzMiwzMzI1NSwyOTkzNSwyOTk0MCwyOTk1MSwyOTk2NywyOTk2OSwyOTk3MSwyNTkwOCwyNjA5NCwyNjA5NSwyNjA5NiwyNjEyMiwyNjEzNywyNjQ4MiwyNjExNSwyNjEzMywyNjExMiwyODgwNSwyNjM1OSwyNjE0MSwyNjE2NCwy''@;'; + put 'put ''NjE2MSwyNjE2NiwyNjE2NSwzMjc3NCwyNjIwNywyNjE5NiwyNjE3NywyNjE5MSwyNjE5OCwyNjIwOSwyNjE5OSwyNjIzMSwyNjI0NCwyNjI1MiwyNjI3OSwyNjI2OSwyNjMwMiwyNjMzMSwyNjMzMiwyNjM0MiwyNjM0NSwzNjE0NiwzNjE0NywzNjE1MCwzNjE1NSwzNjE1NywzNjE2MCwzNjE2''@;'; + put 'put ''NSwzNjE2NiwzNjE2OCwzNjE2OSwzNjE2NywzNjE3MywzNjE4MSwzNjE4NSwzNTI3MSwzNTI3NCwzNTI3NSwzNTI3NiwzNTI3OCwzNTI3OSwzNTI4MCwzNTI4MSwyOTI5NCwyOTM0MywyOTI3NywyOTI4NiwyOTI5NSwyOTMxMCwyOTMxMSwyOTMxNiwyOTMyMywyOTMyNSwyOTMyNywyOTMzMCwy''@;'; + put 'put ''NTM1MiwyNTM5NCwyNTUyMCwzODU0MCwzODU0MiwzODU0NSwzODU0NiwzODU0NywzODU0OSwzODU1MCwzODU1NCwzODU1NSwzODU1NywzODU1OCwzODU1OSwzODU2MCwzODU2MSwzODU2MiwzODU2MywzODU2NCwzODU2NSwzODU2NiwzODU2OCwzODU2OSwzODU3MCwzODU3MSwzODU3MiwzODU3''@;'; + put 'put ''MywzODU3NCwzODU3NSwzODU3NywzODU3OCwzODU4MCwzODU4MSwzODU4MywzODU4NCwzODU4NiwzODU4NywzODU5MSwzODU5NCwzODU5NSwzODYwMCwzODYwMiwzODYwMywzODYwOCwzODYwOSwzODYxMSwzODYxMiwzODYxNCwzODYxNSwzODYxNiwzODYxNywzODYxOCwzODYxOSwzODYyMCwz''@;'; + put 'put ''ODYyMSwzODYyMiwzODYyMywzODYyNSwzODYyNiwzODYyNywzODYyOCwzODYyOSwzODYzMCwzODYzMSwzODYzNSwzODYzNiwzODYzNywzODYzOCwzODY0MCwzODY0MSwzODY0MiwzODY0NCwzODY0NSwzODY0OCwzODY1MCwzODY1MSwzODY1MiwzODY1MywzODY1NSwzODY1OCwzODY1OSwzODY2''@;'; + put 'put ''MSwzODY2NiwzODY2NywzODY2OCwzODY3MiwzODY3MywzODY3NCwzODY3NiwzODY3NywzODY3OSwzODY4MCwzODY4MSwzODY4MiwzODY4MywzODY4NSwzODY4NywzODY4OCwyNTY2MywyNTgxNiwzMjc3MiwyNzYyNiwyNzYzNSwyNzY0NSwyNzYzNywyNzY0MSwyNzY1MywyNzY1NSwyNzY1NCwy''@;'; + put 'put ''NzY2MSwyNzY2OSwyNzY3MiwyNzY3MywyNzY3NCwyNzY4MSwyNzY4OSwyNzY4NCwyNzY5MCwyNzY5OCwyNTkwOSwyNTk0MSwyNTk2MywyOTI2MSwyOTI2NiwyOTI3MCwyOTIzMiwzNDQwMiwyMTAxNCwzMjkyNywzMjkyNCwzMjkxNSwzMjk1NiwyNjM3OCwzMjk1NywzMjk0NSwzMjkzOSwzMjk0''@;'; + put 'put ''MSwzMjk0OCwzMjk1MSwzMjk5OSwzM2UzLDMzMDAxLDMzMDAyLDMyOTg3LDMyOTYyLDMyOTY0LDMyOTg1LDMyOTczLDMyOTgzLDI2Mzg0LDMyOTg5LDMzMDAzLDMzMDA5LDMzMDEyLDMzMDA1LDMzMDM3LDMzMDM4LDMzMDEwLDMzMDIwLDI2Mzg5LDMzMDQyLDM1OTMwLDMzMDc4LDMzMDU0LDMz''@;'; + put 'put ''MDY4LDMzMDQ4LDMzMDc0LDMzMDk2LDMzMTAwLDMzMTA3LDMzMTQwLDMzMTEzLDMzMTE0LDMzMTM3LDMzMTIwLDMzMTI5LDMzMTQ4LDMzMTQ5LDMzMTMzLDMzMTI3LDIyNjA1LDIzMjIxLDMzMTYwLDMzMTU0LDMzMTY5LDI4MzczLDMzMTg3LDMzMTk0LDMzMjI4LDI2NDA2LDMzMjI2LDMzMjEx''@;'; + put 'put ''LDM4Njg5LDM4NjkwLDM4NjkxLDM4NjkyLDM4NjkzLDM4Njk0LDM4Njk1LDM4Njk2LDM4Njk3LDM4Njk5LDM4NzAwLDM4NzAyLDM4NzAzLDM4NzA1LDM4NzA3LDM4NzA4LDM4NzA5LDM4NzEwLDM4NzExLDM4NzE0LDM4NzE1LDM4NzE2LDM4NzE3LDM4NzE5LDM4NzIwLDM4NzIxLDM4NzIyLDM4''@;'; + put 'put ''NzIzLDM4NzI0LDM4NzI1LDM4NzI2LDM4NzI3LDM4NzI4LDM4NzI5LDM4NzMwLDM4NzMxLDM4NzMyLDM4NzMzLDM4NzM0LDM4NzM1LDM4NzM2LDM4NzM3LDM4NzQwLDM4NzQxLDM4NzQzLDM4NzQ0LDM4NzQ2LDM4NzQ4LDM4NzQ5LDM4NzUxLDM4NzU1LDM4NzU2LDM4NzU4LDM4NzU5LDM4NzYw''@;'; + put 'put ''LDM4NzYyLDM4NzYzLDM4NzY0LDM4NzY1LDM4NzY2LDM4NzY3LDM4NzY4LDM4NzY5LDM4NzcwLDM4NzczLDM4Nzc1LDM4Nzc2LDM4Nzc3LDM4Nzc4LDM4Nzc5LDM4NzgxLDM4NzgyLDM4NzgzLDM4Nzg0LDM4Nzg1LDM4Nzg2LDM4Nzg3LDM4Nzg4LDM4NzkwLDM4NzkxLDM4NzkyLDM4NzkzLDM4''@;'; + put 'put ''Nzk0LDM4Nzk2LDM4Nzk4LDM4Nzk5LDM4ODAwLDM4ODAzLDM4ODA1LDM4ODA2LDM4ODA3LDM4ODA5LDM4ODEwLDM4ODExLDM4ODEyLDM4ODEzLDMzMjE3LDMzMTkwLDI3NDI4LDI3NDQ3LDI3NDQ5LDI3NDU5LDI3NDYyLDI3NDgxLDM5MTIxLDM5MTIyLDM5MTIzLDM5MTI1LDM5MTI5LDM5MTMw''@;'; + put 'put ''LDI3NTcxLDI0Mzg0LDI3NTg2LDM1MzE1LDI2ZTMsNDA3ODUsMjYwMDMsMjYwNDQsMjYwNTQsMjYwNTIsMjYwNTEsMjYwNjAsMjYwNjIsMjYwNjYsMjYwNzAsMjg4MDAsMjg4MjgsMjg4MjIsMjg4MjksMjg4NTksMjg4NjQsMjg4NTUsMjg4NDMsMjg4NDksMjg5MDQsMjg4NzQsMjg5NDQsMjg5''@;'; + put 'put ''NDcsMjg5NTAsMjg5NzUsMjg5NzcsMjkwNDMsMjkwMjAsMjkwMzIsMjg5OTcsMjkwNDIsMjkwMDIsMjkwNDgsMjkwNTAsMjkwODAsMjkxMDcsMjkxMDksMjkwOTYsMjkwODgsMjkxNTIsMjkxNDAsMjkxNTksMjkxNzcsMjkyMTMsMjkyMjQsMjg3ODAsMjg5NTIsMjkwMzAsMjkxMTMsMjUxNTAs''@;'; + put 'put ''MjUxNDksMjUxNTUsMjUxNjAsMjUxNjEsMzEwMzUsMzEwNDAsMzEwNDYsMzEwNDksMzEwNjcsMzEwNjgsMzEwNTksMzEwNjYsMzEwNzQsMzEwNjMsMzEwNzIsMzEwODcsMzEwNzksMzEwOTgsMzExMDksMzExMTQsMzExMzAsMzExNDMsMzExNTUsMjQ1MjksMjQ1MjgsMzg4MTQsMzg4MTUsMzg4''@;'; + put 'put ''MTcsMzg4MTgsMzg4MjAsMzg4MjEsMzg4MjIsMzg4MjMsMzg4MjQsMzg4MjUsMzg4MjYsMzg4MjgsMzg4MzAsMzg4MzIsMzg4MzMsMzg4MzUsMzg4MzcsMzg4MzgsMzg4MzksMzg4NDAsMzg4NDEsMzg4NDIsMzg4NDMsMzg4NDQsMzg4NDUsMzg4NDYsMzg4NDcsMzg4NDgsMzg4NDksMzg4NTAs''@;'; + put 'put ''Mzg4NTEsMzg4NTIsMzg4NTMsMzg4NTQsMzg4NTUsMzg4NTYsMzg4NTcsMzg4NTgsMzg4NTksMzg4NjAsMzg4NjEsMzg4NjIsMzg4NjMsMzg4NjQsMzg4NjUsMzg4NjYsMzg4NjcsMzg4NjgsMzg4NjksMzg4NzAsMzg4NzEsMzg4NzIsMzg4NzMsMzg4NzQsMzg4NzUsMzg4NzYsMzg4NzcsMzg4''@;'; + put 'put ''NzgsMzg4NzksMzg4ODAsMzg4ODEsMzg4ODIsMzg4ODMsMzg4ODQsMzg4ODUsMzg4ODgsMzg4OTQsMzg4OTUsMzg4OTYsMzg4OTcsMzg4OTgsMzg5MDAsMzg5MDMsMzg5MDQsMzg5MDUsMzg5MDYsMzg5MDcsMzg5MDgsMzg5MDksMzg5MTAsMzg5MTEsMzg5MTIsMzg5MTMsMzg5MTQsMzg5MTUs''@;'; + put 'put ''Mzg5MTYsMzg5MTcsMzg5MTgsMzg5MTksMzg5MjAsMzg5MjEsMzg5MjIsMzg5MjMsMzg5MjQsMzg5MjUsMzg5MjYsMjQ2MzYsMjQ2NjksMjQ2NjYsMjQ2NzksMjQ2NDEsMjQ2NjUsMjQ2NzUsMjQ3NDcsMjQ4MzgsMjQ4NDUsMjQ5MjUsMjUwMDEsMjQ5ODksMjUwMzUsMjUwNDEsMjUwOTQsMzI4''@;'; + put 'put ''OTYsMzI4OTUsMjc3OTUsMjc4OTQsMjgxNTYsMzA3MTAsMzA3MTIsMzA3MjAsMzA3MjksMzA3NDMsMzA3NDQsMzA3MzcsMjYwMjcsMzA3NjUsMzA3NDgsMzA3NDksMzA3NzcsMzA3NzgsMzA3NzksMzA3NTEsMzA3ODAsMzA3NTcsMzA3NjQsMzA3NTUsMzA3NjEsMzA3OTgsMzA4MjksMzA4MDYs''@;'; + put 'put ''MzA4MDcsMzA3NTgsMzA4MDAsMzA3OTEsMzA3OTYsMzA4MjYsMzA4NzUsMzA4NjcsMzA4NzQsMzA4NTUsMzA4NzYsMzA4ODEsMzA4ODMsMzA4OTgsMzA5MDUsMzA4ODUsMzA5MzIsMzA5MzcsMzA5MjEsMzA5NTYsMzA5NjIsMzA5ODEsMzA5NjQsMzA5OTUsMzEwMTIsMzEwMDYsMzEwMjgsNDA4''@;'; + put 'put ''NTksNDA2OTcsNDA2OTksNDA3MDAsMzA0NDksMzA0NjgsMzA0NzcsMzA0NTcsMzA0NzEsMzA0NzIsMzA0OTAsMzA0OTgsMzA0ODksMzA1MDksMzA1MDIsMzA1MTcsMzA1MjAsMzA1NDQsMzA1NDUsMzA1MzUsMzA1MzEsMzA1NTQsMzA1NjgsMzg5MjcsMzg5MjgsMzg5MjksMzg5MzAsMzg5MzEs''@;'; + put 'put ''Mzg5MzIsMzg5MzMsMzg5MzQsMzg5MzUsMzg5MzYsMzg5MzcsMzg5MzgsMzg5MzksMzg5NDAsMzg5NDEsMzg5NDIsMzg5NDMsMzg5NDQsMzg5NDUsMzg5NDYsMzg5NDcsMzg5NDgsMzg5NDksMzg5NTAsMzg5NTEsMzg5NTIsMzg5NTMsMzg5NTQsMzg5NTUsMzg5NTYsMzg5NTcsMzg5NTgsMzg5''@;'; + put 'put ''NTksMzg5NjAsMzg5NjEsMzg5NjIsMzg5NjMsMzg5NjQsMzg5NjUsMzg5NjYsMzg5NjcsMzg5NjgsMzg5NjksMzg5NzAsMzg5NzEsMzg5NzIsMzg5NzMsMzg5NzQsMzg5NzUsMzg5NzYsMzg5NzcsMzg5NzgsMzg5NzksMzg5ODAsMzg5ODEsMzg5ODIsMzg5ODMsMzg5ODQsMzg5ODUsMzg5ODYs''@;'; + put 'put ''Mzg5ODcsMzg5ODgsMzg5ODksMzg5OTAsMzg5OTEsMzg5OTIsMzg5OTMsMzg5OTQsMzg5OTUsMzg5OTYsMzg5OTcsMzg5OTgsMzg5OTksMzllMywzOTAwMSwzOTAwMiwzOTAwMywzOTAwNCwzOTAwNSwzOTAwNiwzOTAwNywzOTAwOCwzOTAwOSwzOTAxMCwzOTAxMSwzOTAxMiwzOTAxMywzOTAx''@;'; + put 'put ''NCwzOTAxNSwzOTAxNiwzOTAxNywzOTAxOCwzOTAxOSwzOTAyMCwzOTAyMSwzOTAyMiwzMDU2MiwzMDU2NSwzMDU5MSwzMDYwNSwzMDU4OSwzMDU5MiwzMDYwNCwzMDYwOSwzMDYyMywzMDYyNCwzMDY0MCwzMDY0NSwzMDY1MywzMDAxMCwzMDAxNiwzMDAzMCwzMDAyNywzMDAyNCwzMDA0Mywz''@;'; + put 'put ''MDA2NiwzMDA3MywzMDA4MywzMjYwMCwzMjYwOSwzMjYwNywzNTQwMCwzMjYxNiwzMjYyOCwzMjYyNSwzMjYzMywzMjY0MSwzMjYzOCwzMDQxMywzMDQzNywzNDg2NiwzODAyMSwzODAyMiwzODAyMywzODAyNywzODAyNiwzODAyOCwzODAyOSwzODAzMSwzODAzMiwzODAzNiwzODAzOSwzODAz''@;'; + put 'put ''NywzODA0MiwzODA0MywzODA0NCwzODA1MSwzODA1MiwzODA1OSwzODA1OCwzODA2MSwzODA2MCwzODA2MywzODA2NCwzODA2NiwzODA2OCwzODA3MCwzODA3MSwzODA3MiwzODA3MywzODA3NCwzODA3NiwzODA3NywzODA3OSwzODA4NCwzODA4OCwzODA4OSwzODA5MCwzODA5MSwzODA5Miwz''@;'; + put 'put ''ODA5MywzODA5NCwzODA5NiwzODA5NywzODA5OCwzODEwMSwzODEwMiwzODEwMywzODEwNSwzODEwNCwzODEwNywzODExMCwzODExMSwzODExMiwzODExNCwzODExNiwzODExNywzODExOSwzODEyMCwzODEyMiwzOTAyMywzOTAyNCwzOTAyNSwzOTAyNiwzOTAyNywzOTAyOCwzOTA1MSwzOTA1''@;'; + put 'put ''NCwzOTA1OCwzOTA2MSwzOTA2NSwzOTA3NSwzOTA4MCwzOTA4MSwzOTA4MiwzOTA4MywzOTA4NCwzOTA4NSwzOTA4NiwzOTA4NywzOTA4OCwzOTA4OSwzOTA5MCwzOTA5MSwzOTA5MiwzOTA5MywzOTA5NCwzOTA5NSwzOTA5NiwzOTA5NywzOTA5OCwzOTA5OSwzOTEwMCwzOTEwMSwzOTEwMiwz''@;'; + put 'put ''OTEwMywzOTEwNCwzOTEwNSwzOTEwNiwzOTEwNywzOTEwOCwzOTEwOSwzOTExMCwzOTExMSwzOTExMiwzOTExMywzOTExNCwzOTExNSwzOTExNiwzOTExNywzOTExOSwzOTEyMCwzOTEyNCwzOTEyNiwzOTEyNywzOTEzMSwzOTEzMiwzOTEzMywzOTEzNiwzOTEzNywzOTEzOCwzOTEzOSwzOTE0''@;'; + put 'put ''MCwzOTE0MSwzOTE0MiwzOTE0NSwzOTE0NiwzOTE0NywzOTE0OCwzOTE0OSwzOTE1MCwzOTE1MSwzOTE1MiwzOTE1MywzOTE1NCwzOTE1NSwzOTE1NiwzOTE1NywzOTE1OCwzOTE1OSwzOTE2MCwzOTE2MSwzOTE2MiwzOTE2MywzOTE2NCwzOTE2NSwzOTE2NiwzOTE2NywzOTE2OCwzOTE2OSwz''@;'; + put 'put ''OTE3MCwzOTE3MSwzOTE3MiwzOTE3MywzOTE3NCwzOTE3NSwzODEyMSwzODEyMywzODEyNiwzODEyNywzODEzMSwzODEzMiwzODEzMywzODEzNSwzODEzNywzODE0MCwzODE0MSwzODE0MywzODE0NywzODE0NiwzODE1MCwzODE1MSwzODE1MywzODE1NCwzODE1NywzODE1OCwzODE1OSwzODE2''@;'; + put 'put ''MiwzODE2MywzODE2NCwzODE2NSwzODE2NiwzODE2OCwzODE3MSwzODE3MywzODE3NCwzODE3NSwzODE3OCwzODE4NiwzODE4NywzODE4NSwzODE4OCwzODE5MywzODE5NCwzODE5NiwzODE5OCwzODE5OSwzODIwMCwzODIwNCwzODIwNiwzODIwNywzODIxMCwzODE5NywzODIxMiwzODIxMywz''@;'; + put 'put ''ODIxNCwzODIxNywzODIyMCwzODIyMiwzODIyMywzODIyNiwzODIyNywzODIyOCwzODIzMCwzODIzMSwzODIzMiwzODIzMywzODIzNSwzODIzOCwzODIzOSwzODIzNywzODI0MSwzODI0MiwzODI0NCwzODI0NSwzODI0NiwzODI0NywzODI0OCwzODI0OSwzODI1MCwzODI1MSwzODI1MiwzODI1''@;'; + put 'put ''NSwzODI1NywzODI1OCwzODI1OSwzODIwMiwzMDY5NSwzMDcwMCwzODYwMSwzMTE4OSwzMTIxMywzMTIwMywzMTIxMSwzMTIzOCwyMzg3OSwzMTIzNSwzMTIzNCwzMTI2MiwzMTI1MiwzOTE3NiwzOTE3NywzOTE3OCwzOTE3OSwzOTE4MCwzOTE4MiwzOTE4MywzOTE4NSwzOTE4NiwzOTE4Nywz''@;'; + put 'put ''OTE4OCwzOTE4OSwzOTE5MCwzOTE5MSwzOTE5MiwzOTE5MywzOTE5NCwzOTE5NSwzOTE5NiwzOTE5NywzOTE5OCwzOTE5OSwzOTIwMCwzOTIwMSwzOTIwMiwzOTIwMywzOTIwNCwzOTIwNSwzOTIwNiwzOTIwNywzOTIwOCwzOTIwOSwzOTIxMCwzOTIxMSwzOTIxMiwzOTIxMywzOTIxNSwzOTIx''@;'; + put 'put ''NiwzOTIxNywzOTIxOCwzOTIxOSwzOTIyMCwzOTIyMSwzOTIyMiwzOTIyMywzOTIyNCwzOTIyNSwzOTIyNiwzOTIyNywzOTIyOCwzOTIyOSwzOTIzMCwzOTIzMSwzOTIzMiwzOTIzMywzOTIzNCwzOTIzNSwzOTIzNiwzOTIzNywzOTIzOCwzOTIzOSwzOTI0MCwzOTI0MSwzOTI0MiwzOTI0Mywz''@;'; + put 'put ''OTI0NCwzOTI0NSwzOTI0NiwzOTI0NywzOTI0OCwzOTI0OSwzOTI1MCwzOTI1MSwzOTI1NCwzOTI1NSwzOTI1NiwzOTI1NywzOTI1OCwzOTI1OSwzOTI2MCwzOTI2MSwzOTI2MiwzOTI2MywzOTI2NCwzOTI2NSwzOTI2NiwzOTI2OCwzOTI3MCwzOTI4MywzOTI4OCwzOTI4OSwzOTI5MSwzOTI5''@;'; + put 'put ''NCwzOTI5OCwzOTI5OSwzOTMwNSwzMTI4OSwzMTI4NywzMTMxMyw0MDY1NSwzOTMzMywzMTM0NCwzMDM0NCwzMDM1MCwzMDM1NSwzMDM2MSwzMDM3MiwyOTkxOCwyOTkyMCwyOTk5Niw0MDQ4MCw0MDQ4Miw0MDQ4OCw0MDQ4OSw0MDQ5MCw0MDQ5MSw0MDQ5Miw0MDQ5OCw0MDQ5Nyw0MDUwMiw0''@;'; + put 'put ''MDUwNCw0MDUwMyw0MDUwNSw0MDUwNiw0MDUxMCw0MDUxMyw0MDUxNCw0MDUxNiw0MDUxOCw0MDUxOSw0MDUyMCw0MDUyMSw0MDUyMyw0MDUyNCw0MDUyNiw0MDUyOSw0MDUzMyw0MDUzNSw0MDUzOCw0MDUzOSw0MDU0MCw0MDU0Miw0MDU0Nyw0MDU1MCw0MDU1MSw0MDU1Miw0MDU1Myw0MDU1''@;'; + put 'put ''NCw0MDU1NSw0MDU1Niw0MDU2MSw0MDU1Nyw0MDU2MywzMDA5OCwzMDEwMCwzMDEwMiwzMDExMiwzMDEwOSwzMDEyNCwzMDExNSwzMDEzMSwzMDEzMiwzMDEzNiwzMDE0OCwzMDEyOSwzMDEyOCwzMDE0NywzMDE0NiwzMDE2NiwzMDE1NywzMDE3OSwzMDE4NCwzMDE4MiwzMDE4MCwzMDE4Nywz''@;'; + put 'put ''MDE4MywzMDIxMSwzMDE5MywzMDIwNCwzMDIwNywzMDIyNCwzMDIwOCwzMDIxMywzMDIyMCwzMDIzMSwzMDIxOCwzMDI0NSwzMDIzMiwzMDIyOSwzMDIzMywzOTMwOCwzOTMxMCwzOTMyMiwzOTMyMywzOTMyNCwzOTMyNSwzOTMyNiwzOTMyNywzOTMyOCwzOTMyOSwzOTMzMCwzOTMzMSwzOTMz''@;'; + put 'put ''MiwzOTMzNCwzOTMzNSwzOTMzNywzOTMzOCwzOTMzOSwzOTM0MCwzOTM0MSwzOTM0MiwzOTM0MywzOTM0NCwzOTM0NSwzOTM0NiwzOTM0NywzOTM0OCwzOTM0OSwzOTM1MCwzOTM1MSwzOTM1MiwzOTM1MywzOTM1NCwzOTM1NSwzOTM1NiwzOTM1NywzOTM1OCwzOTM1OSwzOTM2MCwzOTM2MSwz''@;'; + put 'put ''OTM2MiwzOTM2MywzOTM2NCwzOTM2NSwzOTM2NiwzOTM2NywzOTM2OCwzOTM2OSwzOTM3MCwzOTM3MSwzOTM3MiwzOTM3MywzOTM3NCwzOTM3NSwzOTM3NiwzOTM3NywzOTM3OCwzOTM3OSwzOTM4MCwzOTM4MSwzOTM4MiwzOTM4MywzOTM4NCwzOTM4NSwzOTM4NiwzOTM4NywzOTM4OCwzOTM4''@;'; + put 'put ''OSwzOTM5MCwzOTM5MSwzOTM5MiwzOTM5MywzOTM5NCwzOTM5NSwzOTM5NiwzOTM5NywzOTM5OCwzOTM5OSwzOTQwMCwzOTQwMSwzOTQwMiwzOTQwMywzOTQwNCwzOTQwNSwzOTQwNiwzOTQwNywzOTQwOCwzOTQwOSwzOTQxMCwzOTQxMSwzOTQxMiwzOTQxMywzOTQxNCwzOTQxNSwzOTQxNiwz''@;'; + put 'put ''OTQxNywzMDIzNSwzMDI2OCwzMDI0MiwzMDI0MCwzMDI3MiwzMDI1MywzMDI1NiwzMDI3MSwzMDI2MSwzMDI3NSwzMDI3MCwzMDI1OSwzMDI4NSwzMDMwMiwzMDI5MiwzMDMwMCwzMDI5NCwzMDMxNSwzMDMxOSwzMjcxNCwzMTQ2MiwzMTM1MiwzMTM1MywzMTM2MCwzMTM2NiwzMTM2OCwzMTM4''@;'; + put 'put ''MSwzMTM5OCwzMTM5MiwzMTQwNCwzMTQwMCwzMTQwNSwzMTQxMSwzNDkxNiwzNDkyMSwzNDkzMCwzNDk0MSwzNDk0MywzNDk0NiwzNDk3OCwzNTAxNCwzNDk5OSwzNTAwNCwzNTAxNywzNTA0MiwzNTAyMiwzNTA0MywzNTA0NSwzNTA1NywzNTA5OCwzNTA2OCwzNTA0OCwzNTA3MCwzNTA1Niwz''@;'; + put 'put ''NTEwNSwzNTA5NywzNTA5MSwzNTA5OSwzNTA4MiwzNTEyNCwzNTExNSwzNTEyNiwzNTEzNywzNTE3NCwzNTE5NSwzMDA5MSwzMjk5NywzMDM4NiwzMDM4OCwzMDY4NCwzMjc4NiwzMjc4OCwzMjc5MCwzMjc5NiwzMjgwMCwzMjgwMiwzMjgwNSwzMjgwNiwzMjgwNywzMjgwOSwzMjgwOCwzMjgx''@;'; + put 'put ''NywzMjc3OSwzMjgyMSwzMjgzNSwzMjgzOCwzMjg0NSwzMjg1MCwzMjg3MywzMjg4MSwzNTIwMywzOTAzMiwzOTA0MCwzOTA0MywzOTQxOCwzOTQxOSwzOTQyMCwzOTQyMSwzOTQyMiwzOTQyMywzOTQyNCwzOTQyNSwzOTQyNiwzOTQyNywzOTQyOCwzOTQyOSwzOTQzMCwzOTQzMSwzOTQzMiwz''@;'; + put 'put ''OTQzMywzOTQzNCwzOTQzNSwzOTQzNiwzOTQzNywzOTQzOCwzOTQzOSwzOTQ0MCwzOTQ0MSwzOTQ0MiwzOTQ0MywzOTQ0NCwzOTQ0NSwzOTQ0NiwzOTQ0NywzOTQ0OCwzOTQ0OSwzOTQ1MCwzOTQ1MSwzOTQ1MiwzOTQ1MywzOTQ1NCwzOTQ1NSwzOTQ1NiwzOTQ1NywzOTQ1OCwzOTQ1OSwzOTQ2''@;'; + put 'put ''MCwzOTQ2MSwzOTQ2MiwzOTQ2MywzOTQ2NCwzOTQ2NSwzOTQ2NiwzOTQ2NywzOTQ2OCwzOTQ2OSwzOTQ3MCwzOTQ3MSwzOTQ3MiwzOTQ3MywzOTQ3NCwzOTQ3NSwzOTQ3NiwzOTQ3NywzOTQ3OCwzOTQ3OSwzOTQ4MCwzOTQ4MSwzOTQ4MiwzOTQ4MywzOTQ4NCwzOTQ4NSwzOTQ4NiwzOTQ4Nywz''@;'; + put 'put ''OTQ4OCwzOTQ4OSwzOTQ5MCwzOTQ5MSwzOTQ5MiwzOTQ5MywzOTQ5NCwzOTQ5NSwzOTQ5NiwzOTQ5NywzOTQ5OCwzOTQ5OSwzOTUwMCwzOTUwMSwzOTUwMiwzOTUwMywzOTUwNCwzOTUwNSwzOTUwNiwzOTUwNywzOTUwOCwzOTUwOSwzOTUxMCwzOTUxMSwzOTUxMiwzOTUxMywzOTA0OSwzOTA1''@;'; + put 'put ''MiwzOTA1MywzOTA1NSwzOTA2MCwzOTA2NiwzOTA2NywzOTA3MCwzOTA3MSwzOTA3MywzOTA3NCwzOTA3NywzOTA3OCwzNDM4MSwzNDM4OCwzNDQxMiwzNDQxNCwzNDQzMSwzNDQyNiwzNDQyOCwzNDQyNywzNDQ3MiwzNDQ0NSwzNDQ0MywzNDQ3NiwzNDQ2MSwzNDQ3MSwzNDQ2NywzNDQ3NCwz''@;'; + put 'put ''NDQ1MSwzNDQ3MywzNDQ4NiwzNDUwMCwzNDQ4NSwzNDUxMCwzNDQ4MCwzNDQ5MCwzNDQ4MSwzNDQ3OSwzNDUwNSwzNDUxMSwzNDQ4NCwzNDUzNywzNDU0NSwzNDU0NiwzNDU0MSwzNDU0NywzNDUxMiwzNDU3OSwzNDUyNiwzNDU0OCwzNDUyNywzNDUyMCwzNDUxMywzNDU2MywzNDU2NywzNDU1''@;'; + put 'put ''MiwzNDU2OCwzNDU3MCwzNDU3MywzNDU2OSwzNDU5NSwzNDYxOSwzNDU5MCwzNDU5NywzNDYwNiwzNDU4NiwzNDYyMiwzNDYzMiwzNDYxMiwzNDYwOSwzNDYwMSwzNDYxNSwzNDYyMywzNDY5MCwzNDU5NCwzNDY4NSwzNDY4NiwzNDY4MywzNDY1NiwzNDY3MiwzNDYzNiwzNDY3MCwzNDY5OSwz''@;'; + put 'put ''NDY0MywzNDY1OSwzNDY4NCwzNDY2MCwzNDY0OSwzNDY2MSwzNDcwNywzNDczNSwzNDcyOCwzNDc3MCwzOTUxNCwzOTUxNSwzOTUxNiwzOTUxNywzOTUxOCwzOTUxOSwzOTUyMCwzOTUyMSwzOTUyMiwzOTUyMywzOTUyNCwzOTUyNSwzOTUyNiwzOTUyNywzOTUyOCwzOTUyOSwzOTUzMCwzOTUz''@;'; + put 'put ''MSwzOTUzOCwzOTU1NSwzOTU2MSwzOTU2NSwzOTU2NiwzOTU3MiwzOTU3MywzOTU3NywzOTU5MCwzOTU5MywzOTU5NCwzOTU5NSwzOTU5NiwzOTU5NywzOTU5OCwzOTU5OSwzOTYwMiwzOTYwMywzOTYwNCwzOTYwNSwzOTYwOSwzOTYxMSwzOTYxMywzOTYxNCwzOTYxNSwzOTYxOSwzOTYyMCwz''@;'; + put 'put ''OTYyMiwzOTYyMywzOTYyNCwzOTYyNSwzOTYyNiwzOTYyOSwzOTYzMCwzOTYzMSwzOTYzMiwzOTYzNCwzOTYzNiwzOTYzNywzOTYzOCwzOTYzOSwzOTY0MSwzOTY0MiwzOTY0MywzOTY0NCwzOTY0NSwzOTY0NiwzOTY0OCwzOTY1MCwzOTY1MSwzOTY1MiwzOTY1MywzOTY1NSwzOTY1NiwzOTY1''@;'; + put 'put ''NywzOTY1OCwzOTY2MCwzOTY2MiwzOTY2NCwzOTY2NSwzOTY2NiwzOTY2NywzOTY2OCwzOTY2OSwzOTY3MCwzOTY3MSwzOTY3MiwzOTY3NCwzOTY3NiwzOTY3NywzOTY3OCwzOTY3OSwzOTY4MCwzOTY4MSwzOTY4MiwzOTY4NCwzOTY4NSwzOTY4NiwzNDc1OCwzNDY5NiwzNDY5MywzNDczMywz''@;'; + put 'put ''NDcxMSwzNDY5MSwzNDczMSwzNDc4OSwzNDczMiwzNDc0MSwzNDczOSwzNDc2MywzNDc3MSwzNDc0OSwzNDc2OSwzNDc1MiwzNDc2MiwzNDc3OSwzNDc5NCwzNDc4NCwzNDc5OCwzNDgzOCwzNDgzNSwzNDgxNCwzNDgyNiwzNDg0MywzNDg0OSwzNDg3MywzNDg3NiwzMjU2NiwzMjU3OCwzMjU4''@;'; + put 'put ''MCwzMjU4MSwzMzI5NiwzMTQ4MiwzMTQ4NSwzMTQ5NiwzMTQ5MSwzMTQ5MiwzMTUwOSwzMTQ5OCwzMTUzMSwzMTUwMywzMTU1OSwzMTU0NCwzMTUzMCwzMTUxMywzMTUzNCwzMTUzNywzMTUyMCwzMTUyNSwzMTUyNCwzMTUzOSwzMTU1MCwzMTUxOCwzMTU3NiwzMTU3OCwzMTU1NywzMTYwNSwz''@;'; + put 'put ''MTU2NCwzMTU4MSwzMTU4NCwzMTU5OCwzMTYxMSwzMTU4NiwzMTYwMiwzMTYwMSwzMTYzMiwzMTY1NCwzMTY1NSwzMTY3MiwzMTY2MCwzMTY0NSwzMTY1NiwzMTYyMSwzMTY1OCwzMTY0NCwzMTY1MCwzMTY1OSwzMTY2OCwzMTY5NywzMTY4MSwzMTY5MiwzMTcwOSwzMTcwNiwzMTcxNywzMTcx''@;'; + put 'put ''OCwzMTcyMiwzMTc1NiwzMTc0MiwzMTc0MCwzMTc1OSwzMTc2NiwzMTc1NSwzOTY4NywzOTY4OSwzOTY5MCwzOTY5MSwzOTY5MiwzOTY5MywzOTY5NCwzOTY5NiwzOTY5NywzOTY5OCwzOTcwMCwzOTcwMSwzOTcwMiwzOTcwMywzOTcwNCwzOTcwNSwzOTcwNiwzOTcwNywzOTcwOCwzOTcwOSwz''@;'; + put 'put ''OTcxMCwzOTcxMiwzOTcxMywzOTcxNCwzOTcxNiwzOTcxNywzOTcxOCwzOTcxOSwzOTcyMCwzOTcyMSwzOTcyMiwzOTcyMywzOTcyNCwzOTcyNSwzOTcyNiwzOTcyOCwzOTcyOSwzOTczMSwzOTczMiwzOTczMywzOTczNCwzOTczNSwzOTczNiwzOTczNywzOTczOCwzOTc0MSwzOTc0MiwzOTc0''@;'; + put 'put ''MywzOTc0NCwzOTc1MCwzOTc1NCwzOTc1NSwzOTc1NiwzOTc1OCwzOTc2MCwzOTc2MiwzOTc2MywzOTc2NSwzOTc2NiwzOTc2NywzOTc2OCwzOTc2OSwzOTc3MCwzOTc3MSwzOTc3MiwzOTc3MywzOTc3NCwzOTc3NSwzOTc3NiwzOTc3NywzOTc3OCwzOTc3OSwzOTc4MCwzOTc4MSwzOTc4Miwz''@;'; + put 'put ''OTc4MywzOTc4NCwzOTc4NSwzOTc4NiwzOTc4NywzOTc4OCwzOTc4OSwzOTc5MCwzOTc5MSwzOTc5MiwzOTc5MywzOTc5NCwzOTc5NSwzOTc5NiwzOTc5NywzOTc5OCwzOTc5OSwzOTgwMCwzOTgwMSwzOTgwMiwzOTgwMywzMTc3NSwzMTc4NiwzMTc4MiwzMTgwMCwzMTgwOSwzMTgwOCwzMzI3''@;'; + put 'put ''OCwzMzI4MSwzMzI4MiwzMzI4NCwzMzI2MCwzNDg4NCwzMzMxMywzMzMxNCwzMzMxNSwzMzMyNSwzMzMyNywzMzMyMCwzMzMyMywzMzMzNiwzMzMzOSwzMzMzMSwzMzMzMiwzMzM0MiwzMzM0OCwzMzM1MywzMzM1NSwzMzM1OSwzMzM3MCwzMzM3NSwzMzM4NCwzNDk0MiwzNDk0OSwzNDk1Miwz''@;'; + put 'put ''NTAzMiwzNTAzOSwzNTE2NiwzMjY2OSwzMjY3MSwzMjY3OSwzMjY4NywzMjY4OCwzMjY5MCwzMTg2OCwyNTkyOSwzMTg4OSwzMTkwMSwzMTkwMCwzMTkwMiwzMTkwNiwzMTkyMiwzMTkzMiwzMTkzMywzMTkzNywzMTk0MywzMTk0OCwzMTk0OSwzMTk0NCwzMTk0MSwzMTk1OSwzMTk3NiwzMzM5''@;'; + put 'put ''MCwyNjI4MCwzMjcwMywzMjcxOCwzMjcyNSwzMjc0MSwzMjczNywzMjc0MiwzMjc0NSwzMjc1MCwzMjc1NSwzMTk5MiwzMjExOSwzMjE2NiwzMjE3NCwzMjMyNywzMjQxMSw0MDYzMiw0MDYyOCwzNjIxMSwzNjIyOCwzNjI0NCwzNjI0MSwzNjI3MywzNjE5OSwzNjIwNSwzNTkxMSwzNTkxMywz''@;'; + put 'put ''NzE5NCwzNzIwMCwzNzE5OCwzNzE5OSwzNzIyMCwzOTgwNCwzOTgwNSwzOTgwNiwzOTgwNywzOTgwOCwzOTgwOSwzOTgxMCwzOTgxMSwzOTgxMiwzOTgxMywzOTgxNCwzOTgxNSwzOTgxNiwzOTgxNywzOTgxOCwzOTgxOSwzOTgyMCwzOTgyMSwzOTgyMiwzOTgyMywzOTgyNCwzOTgyNSwzOTgy''@;'; + put 'put ''NiwzOTgyNywzOTgyOCwzOTgyOSwzOTgzMCwzOTgzMSwzOTgzMiwzOTgzMywzOTgzNCwzOTgzNSwzOTgzNiwzOTgzNywzOTgzOCwzOTgzOSwzOTg0MCwzOTg0MSwzOTg0MiwzOTg0MywzOTg0NCwzOTg0NSwzOTg0NiwzOTg0NywzOTg0OCwzOTg0OSwzOTg1MCwzOTg1MSwzOTg1MiwzOTg1Mywz''@;'; + put 'put ''OTg1NCwzOTg1NSwzOTg1NiwzOTg1NywzOTg1OCwzOTg1OSwzOTg2MCwzOTg2MSwzOTg2MiwzOTg2MywzOTg2NCwzOTg2NSwzOTg2NiwzOTg2NywzOTg2OCwzOTg2OSwzOTg3MCwzOTg3MSwzOTg3MiwzOTg3MywzOTg3NCwzOTg3NSwzOTg3NiwzOTg3NywzOTg3OCwzOTg3OSwzOTg4MCwzOTg4''@;'; + put 'put ''MSwzOTg4MiwzOTg4MywzOTg4NCwzOTg4NSwzOTg4NiwzOTg4NywzOTg4OCwzOTg4OSwzOTg5MCwzOTg5MSwzOTg5MiwzOTg5MywzOTg5NCwzOTg5NSwzOTg5NiwzOTg5NywzOTg5OCwzOTg5OSwzNzIxOCwzNzIxNywzNzIzMiwzNzIyNSwzNzIzMSwzNzI0NSwzNzI0NiwzNzIzNCwzNzIzNiwz''@;'; + put 'put ''NzI0MSwzNzI2MCwzNzI1MywzNzI2NCwzNzI2MSwzNzI2NSwzNzI4MiwzNzI4MywzNzI5MCwzNzI5MywzNzI5NCwzNzI5NSwzNzMwMSwzNzMwMCwzNzMwNiwzNTkyNSw0MDU3NCwzNjI4MCwzNjMzMSwzNjM1NywzNjQ0MSwzNjQ1NywzNjI3NywzNjI4NywzNjI4NCwzNjI4MiwzNjI5MiwzNjMx''@;'; + put 'put ''MCwzNjMxMSwzNjMxNCwzNjMxOCwzNjMwMiwzNjMwMywzNjMxNSwzNjI5NCwzNjMzMiwzNjM0MywzNjM0NCwzNjMyMywzNjM0NSwzNjM0NywzNjMyNCwzNjM2MSwzNjM0OSwzNjM3MiwzNjM4MSwzNjM4MywzNjM5NiwzNjM5OCwzNjM4NywzNjM5OSwzNjQxMCwzNjQxNiwzNjQwOSwzNjQwNSwz''@;'; + put 'put ''NjQxMywzNjQwMSwzNjQyNSwzNjQxNywzNjQxOCwzNjQzMywzNjQzNCwzNjQyNiwzNjQ2NCwzNjQ3MCwzNjQ3NiwzNjQ2MywzNjQ2OCwzNjQ4NSwzNjQ5NSwzNjUwMCwzNjQ5NiwzNjUwOCwzNjUxMCwzNTk2MCwzNTk3MCwzNTk3OCwzNTk3MywzNTk5MiwzNTk4OCwyNjAxMSwzNTI4NiwzNTI5''@;'; + put 'put ''NCwzNTI5MCwzNTI5MiwzOTkwMCwzOTkwMSwzOTkwMiwzOTkwMywzOTkwNCwzOTkwNSwzOTkwNiwzOTkwNywzOTkwOCwzOTkwOSwzOTkxMCwzOTkxMSwzOTkxMiwzOTkxMywzOTkxNCwzOTkxNSwzOTkxNiwzOTkxNywzOTkxOCwzOTkxOSwzOTkyMCwzOTkyMSwzOTkyMiwzOTkyMywzOTkyNCwz''@;'; + put 'put ''OTkyNSwzOTkyNiwzOTkyNywzOTkyOCwzOTkyOSwzOTkzMCwzOTkzMSwzOTkzMiwzOTkzMywzOTkzNCwzOTkzNSwzOTkzNiwzOTkzNywzOTkzOCwzOTkzOSwzOTk0MCwzOTk0MSwzOTk0MiwzOTk0MywzOTk0NCwzOTk0NSwzOTk0NiwzOTk0NywzOTk0OCwzOTk0OSwzOTk1MCwzOTk1MSwzOTk1''@;'; + put 'put ''MiwzOTk1MywzOTk1NCwzOTk1NSwzOTk1NiwzOTk1NywzOTk1OCwzOTk1OSwzOTk2MCwzOTk2MSwzOTk2MiwzOTk2MywzOTk2NCwzOTk2NSwzOTk2NiwzOTk2NywzOTk2OCwzOTk2OSwzOTk3MCwzOTk3MSwzOTk3MiwzOTk3MywzOTk3NCwzOTk3NSwzOTk3NiwzOTk3NywzOTk3OCwzOTk3OSwz''@;'; + put 'put ''OTk4MCwzOTk4MSwzOTk4MiwzOTk4MywzOTk4NCwzOTk4NSwzOTk4NiwzOTk4NywzOTk4OCwzOTk4OSwzOTk5MCwzOTk5MSwzOTk5MiwzOTk5MywzOTk5NCwzOTk5NSwzNTMwMSwzNTMwNywzNTMxMSwzNTM5MCwzNTYyMiwzODczOSwzODYzMywzODY0MywzODYzOSwzODY2MiwzODY1NywzODY2''@;'; + put 'put ''NCwzODY3MSwzODY3MCwzODY5OCwzODcwMSwzODcwNCwzODcxOCw0MDgzMiw0MDgzNSw0MDgzNyw0MDgzOCw0MDgzOSw0MDg0MCw0MDg0MSw0MDg0Miw0MDg0NCw0MDcwMiw0MDcxNSw0MDcxNywzODU4NSwzODU4OCwzODU4OSwzODYwNiwzODYxMCwzMDY1NSwzODYyNCwzNzUxOCwzNzU1MCwz''@;'; + put 'put ''NzU3NiwzNzY5NCwzNzczOCwzNzgzNCwzNzc3NSwzNzk1MCwzNzk5NSw0MDA2Myw0MDA2Niw0MDA2OSw0MDA3MCw0MDA3MSw0MDA3MiwzMTI2Nyw0MDA3NSw0MDA3OCw0MDA4MCw0MDA4MSw0MDA4Miw0MDA4NCw0MDA4NSw0MDA5MCw0MDA5MSw0MDA5NCw0MDA5NSw0MDA5Niw0MDA5Nyw0MDA5''@;'; + put 'put ''OCw0MDA5OSw0MDEwMSw0MDEwMiw0MDEwMyw0MDEwNCw0MDEwNSw0MDEwNyw0MDEwOSw0MDExMCw0MDExMiw0MDExMyw0MDExNCw0MDExNSw0MDExNiw0MDExNyw0MDExOCw0MDExOSw0MDEyMiw0MDEyMyw0MDEyNCw0MDEyNSw0MDEzMiw0MDEzMyw0MDEzNCw0MDEzNSw0MDEzOCw0MDEzOSwz''@;'; + put 'put ''OTk5NiwzOTk5NywzOTk5OCwzOTk5OSw0ZTQsNDAwMDEsNDAwMDIsNDAwMDMsNDAwMDQsNDAwMDUsNDAwMDYsNDAwMDcsNDAwMDgsNDAwMDksNDAwMTAsNDAwMTEsNDAwMTIsNDAwMTMsNDAwMTQsNDAwMTUsNDAwMTYsNDAwMTcsNDAwMTgsNDAwMTksNDAwMjAsNDAwMjEsNDAwMjIsNDAwMjMs''@;'; + put 'put ''NDAwMjQsNDAwMjUsNDAwMjYsNDAwMjcsNDAwMjgsNDAwMjksNDAwMzAsNDAwMzEsNDAwMzIsNDAwMzMsNDAwMzQsNDAwMzUsNDAwMzYsNDAwMzcsNDAwMzgsNDAwMzksNDAwNDAsNDAwNDEsNDAwNDIsNDAwNDMsNDAwNDQsNDAwNDUsNDAwNDYsNDAwNDcsNDAwNDgsNDAwNDksNDAwNTAsNDAw''@;'; + put 'put ''NTEsNDAwNTIsNDAwNTMsNDAwNTQsNDAwNTUsNDAwNTYsNDAwNTcsNDAwNTgsNDAwNTksNDAwNjEsNDAwNjIsNDAwNjQsNDAwNjcsNDAwNjgsNDAwNzMsNDAwNzQsNDAwNzYsNDAwNzksNDAwODMsNDAwODYsNDAwODcsNDAwODgsNDAwODksNDAwOTMsNDAxMDYsNDAxMDgsNDAxMTEsNDAxMjEs''@;'; + put 'put ''NDAxMjYsNDAxMjcsNDAxMjgsNDAxMjksNDAxMzAsNDAxMzYsNDAxMzcsNDAxNDUsNDAxNDYsNDAxNTQsNDAxNTUsNDAxNjAsNDAxNjEsNDAxNDAsNDAxNDEsNDAxNDIsNDAxNDMsNDAxNDQsNDAxNDcsNDAxNDgsNDAxNDksNDAxNTEsNDAxNTIsNDAxNTMsNDAxNTYsNDAxNTcsNDAxNTksNDAx''@;'; + put 'put ''NjIsMzg3ODAsMzg3ODksMzg4MDEsMzg4MDIsMzg4MDQsMzg4MzEsMzg4MjcsMzg4MTksMzg4MzQsMzg4MzYsMzk2MDEsMzk2MDAsMzk2MDcsNDA1MzYsMzk2MDYsMzk2MTAsMzk2MTIsMzk2MTcsMzk2MTYsMzk2MjEsMzk2MTgsMzk2MjcsMzk2MjgsMzk2MzMsMzk3NDksMzk3NDcsMzk3NTEs''@;'; + put 'put ''Mzk3NTMsMzk3NTIsMzk3NTcsMzk3NjEsMzkxNDQsMzkxODEsMzkyMTQsMzkyNTMsMzkyNTIsMzk2NDcsMzk2NDksMzk2NTQsMzk2NjMsMzk2NTksMzk2NzUsMzk2NjEsMzk2NzMsMzk2ODgsMzk2OTUsMzk2OTksMzk3MTEsMzk3MTUsNDA2MzcsNDA2MzgsMzIzMTUsNDA1NzgsNDA1ODMsNDA1''@;'; + put 'put ''ODQsNDA1ODcsNDA1OTQsMzc4NDYsNDA2MDUsNDA2MDcsNDA2NjcsNDA2NjgsNDA2NjksNDA2NzIsNDA2NzEsNDA2NzQsNDA2ODEsNDA2NzksNDA2NzcsNDA2ODIsNDA2ODcsNDA3MzgsNDA3NDgsNDA3NTEsNDA3NjEsNDA3NTksNDA3NjUsNDA3NjYsNDA3NzIsNDAxNjMsNDAxNjQsNDAxNjUs''@;'; + put 'put ''NDAxNjYsNDAxNjcsNDAxNjgsNDAxNjksNDAxNzAsNDAxNzEsNDAxNzIsNDAxNzMsNDAxNzQsNDAxNzUsNDAxNzYsNDAxNzcsNDAxNzgsNDAxNzksNDAxODAsNDAxODEsNDAxODIsNDAxODMsNDAxODQsNDAxODUsNDAxODYsNDAxODcsNDAxODgsNDAxODksNDAxOTAsNDAxOTEsNDAxOTIsNDAx''@;'; + put 'put ''OTMsNDAxOTQsNDAxOTUsNDAxOTYsNDAxOTcsNDAxOTgsNDAxOTksNDAyMDAsNDAyMDEsNDAyMDIsNDAyMDMsNDAyMDQsNDAyMDUsNDAyMDYsNDAyMDcsNDAyMDgsNDAyMDksNDAyMTAsNDAyMTEsNDAyMTIsNDAyMTMsNDAyMTQsNDAyMTUsNDAyMTYsNDAyMTcsNDAyMTgsNDAyMTksNDAyMjAs''@;'; + put 'put ''NDAyMjEsNDAyMjIsNDAyMjMsNDAyMjQsNDAyMjUsNDAyMjYsNDAyMjcsNDAyMjgsNDAyMjksNDAyMzAsNDAyMzEsNDAyMzIsNDAyMzMsNDAyMzQsNDAyMzUsNDAyMzYsNDAyMzcsNDAyMzgsNDAyMzksNDAyNDAsNDAyNDEsNDAyNDIsNDAyNDMsNDAyNDQsNDAyNDUsNDAyNDYsNDAyNDcsNDAy''@;'; + put 'put ''NDgsNDAyNDksNDAyNTAsNDAyNTEsNDAyNTIsNDAyNTMsNDAyNTQsNDAyNTUsNDAyNTYsNDAyNTcsNDAyNTgsNTc5MDgsNTc5MDksNTc5MTAsNTc5MTEsNTc5MTIsNTc5MTMsNTc5MTQsNTc5MTUsNTc5MTYsNTc5MTcsNTc5MTgsNTc5MTksNTc5MjAsNTc5MjEsNTc5MjIsNTc5MjMsNTc5MjQs''@;'; + put 'put ''NTc5MjUsNTc5MjYsNTc5MjcsNTc5MjgsNTc5MjksNTc5MzAsNTc5MzEsNTc5MzIsNTc5MzMsNTc5MzQsNTc5MzUsNTc5MzYsNTc5MzcsNTc5MzgsNTc5MzksNTc5NDAsNTc5NDEsNTc5NDIsNTc5NDMsNTc5NDQsNTc5NDUsNTc5NDYsNTc5NDcsNTc5NDgsNTc5NDksNTc5NTAsNTc5NTEsNTc5''@;'; + put 'put ''NTIsNTc5NTMsNTc5NTQsNTc5NTUsNTc5NTYsNTc5NTcsNTc5NTgsNTc5NTksNTc5NjAsNTc5NjEsNTc5NjIsNTc5NjMsNTc5NjQsNTc5NjUsNTc5NjYsNTc5NjcsNTc5NjgsNTc5NjksNTc5NzAsNTc5NzEsNTc5NzIsNTc5NzMsNTc5NzQsNTc5NzUsNTc5NzYsNTc5NzcsNTc5NzgsNTc5Nzks''@;'; + put 'put ''NTc5ODAsNTc5ODEsNTc5ODIsNTc5ODMsNTc5ODQsNTc5ODUsNTc5ODYsNTc5ODcsNTc5ODgsNTc5ODksNTc5OTAsNTc5OTEsNTc5OTIsNTc5OTMsNTc5OTQsNTc5OTUsNTc5OTYsNTc5OTcsNTc5OTgsNTc5OTksNThlMyw1ODAwMSw0MDI1OSw0MDI2MCw0MDI2MSw0MDI2Miw0MDI2Myw0MDI2''@;'; + put 'put ''NCw0MDI2NSw0MDI2Niw0MDI2Nyw0MDI2OCw0MDI2OSw0MDI3MCw0MDI3MSw0MDI3Miw0MDI3Myw0MDI3NCw0MDI3NSw0MDI3Niw0MDI3Nyw0MDI3OCw0MDI3OSw0MDI4MCw0MDI4MSw0MDI4Miw0MDI4Myw0MDI4NCw0MDI4NSw0MDI4Niw0MDI4Nyw0MDI4OCw0MDI4OSw0MDI5MCw0MDI5MSw0''@;'; + put 'put ''MDI5Miw0MDI5Myw0MDI5NCw0MDI5NSw0MDI5Niw0MDI5Nyw0MDI5OCw0MDI5OSw0MDMwMCw0MDMwMSw0MDMwMiw0MDMwMyw0MDMwNCw0MDMwNSw0MDMwNiw0MDMwNyw0MDMwOCw0MDMwOSw0MDMxMCw0MDMxMSw0MDMxMiw0MDMxMyw0MDMxNCw0MDMxNSw0MDMxNiw0MDMxNyw0MDMxOCw0MDMx''@;'; + put 'put ''OSw0MDMyMCw0MDMyMSw0MDMyMiw0MDMyMyw0MDMyNCw0MDMyNSw0MDMyNiw0MDMyNyw0MDMyOCw0MDMyOSw0MDMzMCw0MDMzMSw0MDMzMiw0MDMzMyw0MDMzNCw0MDMzNSw0MDMzNiw0MDMzNyw0MDMzOCw0MDMzOSw0MDM0MCw0MDM0MSw0MDM0Miw0MDM0Myw0MDM0NCw0MDM0NSw0MDM0Niw0''@;'; + put 'put ''MDM0Nyw0MDM0OCw0MDM0OSw0MDM1MCw0MDM1MSw0MDM1Miw0MDM1Myw0MDM1NCw1ODAwMiw1ODAwMyw1ODAwNCw1ODAwNSw1ODAwNiw1ODAwNyw1ODAwOCw1ODAwOSw1ODAxMCw1ODAxMSw1ODAxMiw1ODAxMyw1ODAxNCw1ODAxNSw1ODAxNiw1ODAxNyw1ODAxOCw1ODAxOSw1ODAyMCw1ODAy''@;'; + put 'put ''MSw1ODAyMiw1ODAyMyw1ODAyNCw1ODAyNSw1ODAyNiw1ODAyNyw1ODAyOCw1ODAyOSw1ODAzMCw1ODAzMSw1ODAzMiw1ODAzMyw1ODAzNCw1ODAzNSw1ODAzNiw1ODAzNyw1ODAzOCw1ODAzOSw1ODA0MCw1ODA0MSw1ODA0Miw1ODA0Myw1ODA0NCw1ODA0NSw1ODA0Niw1ODA0Nyw1ODA0OCw1''@;'; + put 'put ''ODA0OSw1ODA1MCw1ODA1MSw1ODA1Miw1ODA1Myw1ODA1NCw1ODA1NSw1ODA1Niw1ODA1Nyw1ODA1OCw1ODA1OSw1ODA2MCw1ODA2MSw1ODA2Miw1ODA2Myw1ODA2NCw1ODA2NSw1ODA2Niw1ODA2Nyw1ODA2OCw1ODA2OSw1ODA3MCw1ODA3MSw1ODA3Miw1ODA3Myw1ODA3NCw1ODA3NSw1ODA3''@;'; + put 'put ''Niw1ODA3Nyw1ODA3OCw1ODA3OSw1ODA4MCw1ODA4MSw1ODA4Miw1ODA4Myw1ODA4NCw1ODA4NSw1ODA4Niw1ODA4Nyw1ODA4OCw1ODA4OSw1ODA5MCw1ODA5MSw1ODA5Miw1ODA5Myw1ODA5NCw1ODA5NSw0MDM1NSw0MDM1Niw0MDM1Nyw0MDM1OCw0MDM1OSw0MDM2MCw0MDM2MSw0MDM2Miw0''@;'; + put 'put ''MDM2Myw0MDM2NCw0MDM2NSw0MDM2Niw0MDM2Nyw0MDM2OCw0MDM2OSw0MDM3MCw0MDM3MSw0MDM3Miw0MDM3Myw0MDM3NCw0MDM3NSw0MDM3Niw0MDM3Nyw0MDM3OCw0MDM3OSw0MDM4MCw0MDM4MSw0MDM4Miw0MDM4Myw0MDM4NCw0MDM4NSw0MDM4Niw0MDM4Nyw0MDM4OCw0MDM4OSw0MDM5''@;'; + put 'put ''MCw0MDM5MSw0MDM5Miw0MDM5Myw0MDM5NCw0MDM5NSw0MDM5Niw0MDM5Nyw0MDM5OCw0MDM5OSw0MDQwMCw0MDQwMSw0MDQwMiw0MDQwMyw0MDQwNCw0MDQwNSw0MDQwNiw0MDQwNyw0MDQwOCw0MDQwOSw0MDQxMCw0MDQxMSw0MDQxMiw0MDQxMyw0MDQxNCw0MDQxNSw0MDQxNiw0MDQxNyw0''@;'; + put 'put ''MDQxOCw0MDQxOSw0MDQyMCw0MDQyMSw0MDQyMiw0MDQyMyw0MDQyNCw0MDQyNSw0MDQyNiw0MDQyNyw0MDQyOCw0MDQyOSw0MDQzMCw0MDQzMSw0MDQzMiw0MDQzMyw0MDQzNCw0MDQzNSw0MDQzNiw0MDQzNyw0MDQzOCw0MDQzOSw0MDQ0MCw0MDQ0MSw0MDQ0Miw0MDQ0Myw0MDQ0NCw0MDQ0''@;'; + put 'put ''NSw0MDQ0Niw0MDQ0Nyw0MDQ0OCw0MDQ0OSw0MDQ1MCw1ODA5Niw1ODA5Nyw1ODA5OCw1ODA5OSw1ODEwMCw1ODEwMSw1ODEwMiw1ODEwMyw1ODEwNCw1ODEwNSw1ODEwNiw1ODEwNyw1ODEwOCw1ODEwOSw1ODExMCw1ODExMSw1ODExMiw1ODExMyw1ODExNCw1ODExNSw1ODExNiw1ODExNyw1''@;'; + put 'put ''ODExOCw1ODExOSw1ODEyMCw1ODEyMSw1ODEyMiw1ODEyMyw1ODEyNCw1ODEyNSw1ODEyNiw1ODEyNyw1ODEyOCw1ODEyOSw1ODEzMCw1ODEzMSw1ODEzMiw1ODEzMyw1ODEzNCw1ODEzNSw1ODEzNiw1ODEzNyw1ODEzOCw1ODEzOSw1ODE0MCw1ODE0MSw1ODE0Miw1ODE0Myw1ODE0NCw1ODE0''@;'; + put 'put ''NSw1ODE0Niw1ODE0Nyw1ODE0OCw1ODE0OSw1ODE1MCw1ODE1MSw1ODE1Miw1ODE1Myw1ODE1NCw1ODE1NSw1ODE1Niw1ODE1Nyw1ODE1OCw1ODE1OSw1ODE2MCw1ODE2MSw1ODE2Miw1ODE2Myw1ODE2NCw1ODE2NSw1ODE2Niw1ODE2Nyw1ODE2OCw1ODE2OSw1ODE3MCw1ODE3MSw1ODE3Miw1''@;'; + put 'put ''ODE3Myw1ODE3NCw1ODE3NSw1ODE3Niw1ODE3Nyw1ODE3OCw1ODE3OSw1ODE4MCw1ODE4MSw1ODE4Miw1ODE4Myw1ODE4NCw1ODE4NSw1ODE4Niw1ODE4Nyw1ODE4OCw1ODE4OSw0MDQ1MSw0MDQ1Miw0MDQ1Myw0MDQ1NCw0MDQ1NSw0MDQ1Niw0MDQ1Nyw0MDQ1OCw0MDQ1OSw0MDQ2MCw0MDQ2''@;'; + put 'put ''MSw0MDQ2Miw0MDQ2Myw0MDQ2NCw0MDQ2NSw0MDQ2Niw0MDQ2Nyw0MDQ2OCw0MDQ2OSw0MDQ3MCw0MDQ3MSw0MDQ3Miw0MDQ3Myw0MDQ3NCw0MDQ3NSw0MDQ3Niw0MDQ3Nyw0MDQ3OCw0MDQ4NCw0MDQ4Nyw0MDQ5NCw0MDQ5Niw0MDUwMCw0MDUwNyw0MDUwOCw0MDUxMiw0MDUyNSw0MDUyOCw0''@;'; + put 'put ''MDUzMCw0MDUzMSw0MDUzMiw0MDUzNCw0MDUzNyw0MDU0MSw0MDU0Myw0MDU0NCw0MDU0NSw0MDU0Niw0MDU0OSw0MDU1OCw0MDU1OSw0MDU2Miw0MDU2NCw0MDU2NSw0MDU2Niw0MDU2Nyw0MDU2OCw0MDU2OSw0MDU3MCw0MDU3MSw0MDU3Miw0MDU3Myw0MDU3Niw0MDU3Nyw0MDU3OSw0MDU4''@;'; + put 'put ''MCw0MDU4MSw0MDU4Miw0MDU4NSw0MDU4Niw0MDU4OCw0MDU4OSw0MDU5MCw0MDU5MSw0MDU5Miw0MDU5Myw0MDU5Niw0MDU5Nyw0MDU5OCw0MDU5OSw0MDYwMCw0MDYwMSw0MDYwMiw0MDYwMyw0MDYwNCw0MDYwNiw0MDYwOCw0MDYwOSw0MDYxMCw0MDYxMSw0MDYxMiw0MDYxMyw0MDYxNSw0''@;'; + put 'put ''MDYxNiw0MDYxNyw0MDYxOCw1ODE5MCw1ODE5MSw1ODE5Miw1ODE5Myw1ODE5NCw1ODE5NSw1ODE5Niw1ODE5Nyw1ODE5OCw1ODE5OSw1ODIwMCw1ODIwMSw1ODIwMiw1ODIwMyw1ODIwNCw1ODIwNSw1ODIwNiw1ODIwNyw1ODIwOCw1ODIwOSw1ODIxMCw1ODIxMSw1ODIxMiw1ODIxMyw1ODIx''@;'; + put 'put ''NCw1ODIxNSw1ODIxNiw1ODIxNyw1ODIxOCw1ODIxOSw1ODIyMCw1ODIyMSw1ODIyMiw1ODIyMyw1ODIyNCw1ODIyNSw1ODIyNiw1ODIyNyw1ODIyOCw1ODIyOSw1ODIzMCw1ODIzMSw1ODIzMiw1ODIzMyw1ODIzNCw1ODIzNSw1ODIzNiw1ODIzNyw1ODIzOCw1ODIzOSw1ODI0MCw1ODI0MSw1''@;'; + put 'put ''ODI0Miw1ODI0Myw1ODI0NCw1ODI0NSw1ODI0Niw1ODI0Nyw1ODI0OCw1ODI0OSw1ODI1MCw1ODI1MSw1ODI1Miw1ODI1Myw1ODI1NCw1ODI1NSw1ODI1Niw1ODI1Nyw1ODI1OCw1ODI1OSw1ODI2MCw1ODI2MSw1ODI2Miw1ODI2Myw1ODI2NCw1ODI2NSw1ODI2Niw1ODI2Nyw1ODI2OCw1ODI2''@;'; + put 'put ''OSw1ODI3MCw1ODI3MSw1ODI3Miw1ODI3Myw1ODI3NCw1ODI3NSw1ODI3Niw1ODI3Nyw1ODI3OCw1ODI3OSw1ODI4MCw1ODI4MSw1ODI4Miw1ODI4Myw0MDYxOSw0MDYyMCw0MDYyMSw0MDYyMiw0MDYyMyw0MDYyNCw0MDYyNSw0MDYyNiw0MDYyNyw0MDYyOSw0MDYzMCw0MDYzMSw0MDYzMyw0''@;'; + put 'put ''MDYzNCw0MDYzNiw0MDYzOSw0MDY0MCw0MDY0MSw0MDY0Miw0MDY0Myw0MDY0NSw0MDY0Niw0MDY0Nyw0MDY0OCw0MDY1MCw0MDY1MSw0MDY1Miw0MDY1Niw0MDY1OCw0MDY1OSw0MDY2MSw0MDY2Miw0MDY2Myw0MDY2NSw0MDY2Niw0MDY3MCw0MDY3Myw0MDY3NSw0MDY3Niw0MDY3OCw0MDY4''@;'; + put 'put ''MCw0MDY4Myw0MDY4NCw0MDY4NSw0MDY4Niw0MDY4OCw0MDY4OSw0MDY5MCw0MDY5MSw0MDY5Miw0MDY5Myw0MDY5NCw0MDY5NSw0MDY5Niw0MDY5OCw0MDcwMSw0MDcwMyw0MDcwNCw0MDcwNSw0MDcwNiw0MDcwNyw0MDcwOCw0MDcwOSw0MDcxMCw0MDcxMSw0MDcxMiw0MDcxMyw0MDcxNCw0''@;'; + put 'put ''MDcxNiw0MDcxOSw0MDcyMSw0MDcyMiw0MDcyNCw0MDcyNSw0MDcyNiw0MDcyOCw0MDczMCw0MDczMSw0MDczMiw0MDczMyw0MDczNCw0MDczNSw0MDczNyw0MDczOSw0MDc0MCw0MDc0MSw0MDc0Miw0MDc0Myw0MDc0NCw0MDc0NSw0MDc0Niw0MDc0Nyw0MDc0OSw0MDc1MCw0MDc1Miw0MDc1''@;'; + put 'put ''Myw1ODI4NCw1ODI4NSw1ODI4Niw1ODI4Nyw1ODI4OCw1ODI4OSw1ODI5MCw1ODI5MSw1ODI5Miw1ODI5Myw1ODI5NCw1ODI5NSw1ODI5Niw1ODI5Nyw1ODI5OCw1ODI5OSw1ODMwMCw1ODMwMSw1ODMwMiw1ODMwMyw1ODMwNCw1ODMwNSw1ODMwNiw1ODMwNyw1ODMwOCw1ODMwOSw1ODMxMCw1''@;'; + put 'put ''ODMxMSw1ODMxMiw1ODMxMyw1ODMxNCw1ODMxNSw1ODMxNiw1ODMxNyw1ODMxOCw1ODMxOSw1ODMyMCw1ODMyMSw1ODMyMiw1ODMyMyw1ODMyNCw1ODMyNSw1ODMyNiw1ODMyNyw1ODMyOCw1ODMyOSw1ODMzMCw1ODMzMSw1ODMzMiw1ODMzMyw1ODMzNCw1ODMzNSw1ODMzNiw1ODMzNyw1ODMz''@;'; + put 'put ''OCw1ODMzOSw1ODM0MCw1ODM0MSw1ODM0Miw1ODM0Myw1ODM0NCw1ODM0NSw1ODM0Niw1ODM0Nyw1ODM0OCw1ODM0OSw1ODM1MCw1ODM1MSw1ODM1Miw1ODM1Myw1ODM1NCw1ODM1NSw1ODM1Niw1ODM1Nyw1ODM1OCw1ODM1OSw1ODM2MCw1ODM2MSw1ODM2Miw1ODM2Myw1ODM2NCw1ODM2NSw1''@;'; + put 'put ''ODM2Niw1ODM2Nyw1ODM2OCw1ODM2OSw1ODM3MCw1ODM3MSw1ODM3Miw1ODM3Myw1ODM3NCw1ODM3NSw1ODM3Niw1ODM3Nyw0MDc1NCw0MDc1NSw0MDc1Niw0MDc1Nyw0MDc1OCw0MDc2MCw0MDc2Miw0MDc2NCw0MDc2Nyw0MDc2OCw0MDc2OSw0MDc3MCw0MDc3MSw0MDc3Myw0MDc3NCw0MDc3''@;'; + put 'put ''NSw0MDc3Niw0MDc3Nyw0MDc3OCw0MDc3OSw0MDc4MCw0MDc4MSw0MDc4Miw0MDc4Myw0MDc4Niw0MDc4Nyw0MDc4OCw0MDc4OSw0MDc5MCw0MDc5MSw0MDc5Miw0MDc5Myw0MDc5NCw0MDc5NSw0MDc5Niw0MDc5Nyw0MDc5OCw0MDc5OSw0MDgwMCw0MDgwMSw0MDgwMiw0MDgwMyw0MDgwNCw0''@;'; + put 'put ''MDgwNSw0MDgwNiw0MDgwNyw0MDgwOCw0MDgwOSw0MDgxMCw0MDgxMSw0MDgxMiw0MDgxMyw0MDgxNCw0MDgxNSw0MDgxNiw0MDgxNyw0MDgxOCw0MDgxOSw0MDgyMCw0MDgyMSw0MDgyMiw0MDgyMyw0MDgyNCw0MDgyNSw0MDgyNiw0MDgyNyw0MDgyOCw0MDgyOSw0MDgzMCw0MDgzMyw0MDgz''@;'; + put 'put ''NCw0MDg0NSw0MDg0Niw0MDg0Nyw0MDg0OCw0MDg0OSw0MDg1MCw0MDg1MSw0MDg1Miw0MDg1Myw0MDg1NCw0MDg1NSw0MDg1Niw0MDg2MCw0MDg2MSw0MDg2Miw0MDg2NSw0MDg2Niw0MDg2Nyw0MDg2OCw0MDg2OSw2Mzc4OCw2Mzg2NSw2Mzg5Myw2Mzk3NSw2Mzk4NSw1ODM3OCw1ODM3OSw1''@;'; + put 'put ''ODM4MCw1ODM4MSw1ODM4Miw1ODM4Myw1ODM4NCw1ODM4NSw1ODM4Niw1ODM4Nyw1ODM4OCw1ODM4OSw1ODM5MCw1ODM5MSw1ODM5Miw1ODM5Myw1ODM5NCw1ODM5NSw1ODM5Niw1ODM5Nyw1ODM5OCw1ODM5OSw1ODQwMCw1ODQwMSw1ODQwMiw1ODQwMyw1ODQwNCw1ODQwNSw1ODQwNiw1ODQw''@;'; + put 'put ''Nyw1ODQwOCw1ODQwOSw1ODQxMCw1ODQxMSw1ODQxMiw1ODQxMyw1ODQxNCw1ODQxNSw1ODQxNiw1ODQxNyw1ODQxOCw1ODQxOSw1ODQyMCw1ODQyMSw1ODQyMiw1ODQyMyw1ODQyNCw1ODQyNSw1ODQyNiw1ODQyNyw1ODQyOCw1ODQyOSw1ODQzMCw1ODQzMSw1ODQzMiw1ODQzMyw1ODQzNCw1''@;'; + put 'put ''ODQzNSw1ODQzNiw1ODQzNyw1ODQzOCw1ODQzOSw1ODQ0MCw1ODQ0MSw1ODQ0Miw1ODQ0Myw1ODQ0NCw1ODQ0NSw1ODQ0Niw1ODQ0Nyw1ODQ0OCw1ODQ0OSw1ODQ1MCw1ODQ1MSw1ODQ1Miw1ODQ1Myw1ODQ1NCw1ODQ1NSw1ODQ1Niw1ODQ1Nyw1ODQ1OCw1ODQ1OSw1ODQ2MCw1ODQ2MSw1ODQ2''@;'; + put 'put ''Miw1ODQ2Myw1ODQ2NCw1ODQ2NSw1ODQ2Niw1ODQ2Nyw1ODQ2OCw1ODQ2OSw1ODQ3MCw1ODQ3MSw2NDAxMiw2NDAxMyw2NDAxNCw2NDAxNSw2NDAxNyw2NDAxOSw2NDAyMCw2NDAyNCw2NDAzMSw2NDAzMiw2NDAzMyw2NDAzNSw2NDAzNiw2NDAzOSw2NDA0MCw2NDA0MSwxMTkwNSw1OTQxNCw1''@;'; + put 'put ''OTQxNSw1OTQxNiwxMTkwOCwxMzQyNywxMzM4MywxMTkxMiwxMTkxNSw1OTQyMiwxMzcyNiwxMzg1MCwxMzgzOCwxMTkxNiwxMTkyNywxNDcwMiwxNDYxNiw1OTQzMCwxNDc5OSwxNDgxNSwxNDk2MywxNDgwMCw1OTQzNSw1OTQzNiwxNTE4MiwxNTQ3MCwxNTU4NCwxMTk0Myw1OTQ0MSw1OTQ0''@;'; + put 'put ''MiwxMTk0NiwxNjQ3MCwxNjczNSwxMTk1MCwxNzIwNywxMTk1NSwxMTk1OCwxMTk1OSw1OTQ1MSwxNzMyOSwxNzMyNCwxMTk2MywxNzM3MywxNzYyMiwxODAxNywxNzk5Niw1OTQ1OSwxODIxMSwxODIxNywxODMwMCwxODMxNywxMTk3OCwxODc1OSwxODgxMCwxODgxMywxODgxOCwxODgxOSwx''@;'; + put 'put ''ODgyMSwxODgyMiwxODg0NywxODg0MywxODg3MSwxODg3MCw1OTQ3Niw1OTQ3NywxOTYxOSwxOTYxNSwxOTYxNiwxOTYxNywxOTU3NSwxOTYxOCwxOTczMSwxOTczMiwxOTczMywxOTczNCwxOTczNSwxOTczNiwxOTczNywxOTg4Niw1OTQ5Miw1ODQ3Miw1ODQ3Myw1ODQ3NCw1ODQ3NSw1ODQ3''@;'; + put 'put ''Niw1ODQ3Nyw1ODQ3OCw1ODQ3OSw1ODQ4MCw1ODQ4MSw1ODQ4Miw1ODQ4Myw1ODQ4NCw1ODQ4NSw1ODQ4Niw1ODQ4Nyw1ODQ4OCw1ODQ4OSw1ODQ5MCw1ODQ5MSw1ODQ5Miw1ODQ5Myw1ODQ5NCw1ODQ5NSw1ODQ5Niw1ODQ5Nyw1ODQ5OCw1ODQ5OSw1ODUwMCw1ODUwMSw1ODUwMiw1ODUwMyw1''@;'; + put 'put ''ODUwNCw1ODUwNSw1ODUwNiw1ODUwNyw1ODUwOCw1ODUwOSw1ODUxMCw1ODUxMSw1ODUxMiw1ODUxMyw1ODUxNCw1ODUxNSw1ODUxNiw1ODUxNyw1ODUxOCw1ODUxOSw1ODUyMCw1ODUyMSw1ODUyMiw1ODUyMyw1ODUyNCw1ODUyNSw1ODUyNiw1ODUyNyw1ODUyOCw1ODUyOSw1ODUzMCw1ODUz''@;'; + put 'put ''MSw1ODUzMiw1ODUzMyw1ODUzNCw1ODUzNSw1ODUzNiw1ODUzNyw1ODUzOCw1ODUzOSw1ODU0MCw1ODU0MSw1ODU0Miw1ODU0Myw1ODU0NCw1ODU0NSw1ODU0Niw1ODU0Nyw1ODU0OCw1ODU0OSw1ODU1MCw1ODU1MSw1ODU1Miw1ODU1Myw1ODU1NCw1ODU1NSw1ODU1Niw1ODU1Nyw1ODU1OCw1''@;'; + put 'put ''ODU1OSw1ODU2MCw1ODU2MSw1ODU2Miw1ODU2Myw1ODU2NCw1ODU2NV0sImdiMTgwMzAtcmFuZ2VzIjpbWzAsMTI4XSxbMzYsMTY1XSxbMzgsMTY5XSxbNDUsMTc4XSxbNTAsMTg0XSxbODEsMjE2XSxbODksMjI2XSxbOTUsMjM1XSxbOTYsMjM4XSxbMTAwLDI0NF0sWzEwMywyNDhdLFsxMDQs''@;'; + put 'put ''MjUxXSxbMTA1LDI1M10sWzEwOSwyNThdLFsxMjYsMjc2XSxbMTMzLDI4NF0sWzE0OCwzMDBdLFsxNzIsMzI1XSxbMTc1LDMyOV0sWzE3OSwzMzRdLFsyMDgsMzY0XSxbMzA2LDQ2M10sWzMwNyw0NjVdLFszMDgsNDY3XSxbMzA5LDQ2OV0sWzMxMCw0NzFdLFszMTEsNDczXSxbMzEyLDQ3NV0s''@;'; + put 'put ''WzMxMyw0NzddLFszNDEsNTA2XSxbNDI4LDU5NF0sWzQ0Myw2MTBdLFs1NDQsNzEyXSxbNTQ1LDcxNl0sWzU1OCw3MzBdLFs3NDEsOTMwXSxbNzQyLDkzOF0sWzc0OSw5NjJdLFs3NTAsOTcwXSxbODA1LDEwMjZdLFs4MTksMTEwNF0sWzgyMCwxMTA2XSxbNzkyMiw4MjA5XSxbNzkyNCw4MjE1''@;'; + put 'put ''XSxbNzkyNSw4MjE4XSxbNzkyNyw4MjIyXSxbNzkzNCw4MjMxXSxbNzk0Myw4MjQxXSxbNzk0NCw4MjQ0XSxbNzk0NSw4MjQ2XSxbNzk1MCw4MjUyXSxbODA2Miw4MzY1XSxbODE0OCw4NDUyXSxbODE0OSw4NDU0XSxbODE1Miw4NDU4XSxbODE2NCw4NDcxXSxbODE3NCw4NDgyXSxbODIzNiw4''@;'; + put 'put ''NTU2XSxbODI0MCw4NTcwXSxbODI2Miw4NTk2XSxbODI2NCw4NjAyXSxbODM3NCw4NzEzXSxbODM4MCw4NzIwXSxbODM4MSw4NzIyXSxbODM4NCw4NzI2XSxbODM4OCw4NzMxXSxbODM5MCw4NzM3XSxbODM5Miw4NzQwXSxbODM5Myw4NzQyXSxbODM5NCw4NzQ4XSxbODM5Niw4NzUxXSxbODQw''@;'; + put 'put ''MSw4NzYwXSxbODQwNiw4NzY2XSxbODQxNiw4Nzc3XSxbODQxOSw4NzgxXSxbODQyNCw4Nzg3XSxbODQzNyw4ODAyXSxbODQzOSw4ODA4XSxbODQ0NSw4ODE2XSxbODQ4Miw4ODU0XSxbODQ4NSw4ODU4XSxbODQ5Niw4ODcwXSxbODUyMSw4ODk2XSxbODYwMyw4OTc5XSxbODkzNiw5MzIyXSxb''@;'; + put 'put ''ODk0Niw5MzcyXSxbOTA0Niw5NTQ4XSxbOTA1MCw5NTg4XSxbOTA2Myw5NjE2XSxbOTA2Niw5NjIyXSxbOTA3Niw5NjM0XSxbOTA5Miw5NjUyXSxbOTEwMCw5NjYyXSxbOTEwOCw5NjcyXSxbOTExMSw5Njc2XSxbOTExMyw5NjgwXSxbOTEzMSw5NzAyXSxbOTE2Miw5NzM1XSxbOTE2NCw5NzM4''@;'; + put 'put ''XSxbOTIxOCw5NzkzXSxbOTIxOSw5Nzk1XSxbMTEzMjksMTE5MDZdLFsxMTMzMSwxMTkwOV0sWzExMzM0LDExOTEzXSxbMTEzMzYsMTE5MTddLFsxMTM0NiwxMTkyOF0sWzExMzYxLDExOTQ0XSxbMTEzNjMsMTE5NDddLFsxMTM2NiwxMTk1MV0sWzExMzcwLDExOTU2XSxbMTEzNzIsMTE5NjBd''@;'; + put 'put ''LFsxMTM3NSwxMTk2NF0sWzExMzg5LDExOTc5XSxbMTE2ODIsMTIyODRdLFsxMTY4NiwxMjI5Ml0sWzExNjg3LDEyMzEyXSxbMTE2OTIsMTIzMTldLFsxMTY5NCwxMjMzMF0sWzExNzE0LDEyMzUxXSxbMTE3MTYsMTI0MzZdLFsxMTcyMywxMjQ0N10sWzExNzI1LDEyNTM1XSxbMTE3MzAsMTI1''@;'; + put 'put ''NDNdLFsxMTczNiwxMjU4Nl0sWzExOTgyLDEyODQyXSxbMTE5ODksMTI4NTBdLFsxMjEwMiwxMjk2NF0sWzEyMzM2LDEzMjAwXSxbMTIzNDgsMTMyMTVdLFsxMjM1MCwxMzIxOF0sWzEyMzg0LDEzMjUzXSxbMTIzOTMsMTMyNjNdLFsxMjM5NSwxMzI2N10sWzEyMzk3LDEzMjcwXSxbMTI1MTAs''@;'; + put 'put ''MTMzODRdLFsxMjU1MywxMzQyOF0sWzEyODUxLDEzNzI3XSxbMTI5NjIsMTM4MzldLFsxMjk3MywxMzg1MV0sWzEzNzM4LDE0NjE3XSxbMTM4MjMsMTQ3MDNdLFsxMzkxOSwxNDgwMV0sWzEzOTMzLDE0ODE2XSxbMTQwODAsMTQ5NjRdLFsxNDI5OCwxNTE4M10sWzE0NTg1LDE1NDcxXSxbMTQ2''@;'; + put 'put ''OTgsMTU1ODVdLFsxNTU4MywxNjQ3MV0sWzE1ODQ3LDE2NzM2XSxbMTYzMTgsMTcyMDhdLFsxNjQzNCwxNzMyNV0sWzE2NDM4LDE3MzMwXSxbMTY0ODEsMTczNzRdLFsxNjcyOSwxNzYyM10sWzE3MTAyLDE3OTk3XSxbMTcxMjIsMTgwMThdLFsxNzMxNSwxODIxMl0sWzE3MzIwLDE4MjE4XSxb''@;'; + put 'put ''MTc0MDIsMTgzMDFdLFsxNzQxOCwxODMxOF0sWzE3ODU5LDE4NzYwXSxbMTc5MDksMTg4MTFdLFsxNzkxMSwxODgxNF0sWzE3OTE1LDE4ODIwXSxbMTc5MTYsMTg4MjNdLFsxNzkzNiwxODg0NF0sWzE3OTM5LDE4ODQ4XSxbMTc5NjEsMTg4NzJdLFsxODY2NCwxOTU3Nl0sWzE4NzAzLDE5NjIw''@;'; + put 'put ''XSxbMTg4MTQsMTk3MzhdLFsxODk2MiwxOTg4N10sWzE5MDQzLDQwODcwXSxbMzM0NjksNTkyNDRdLFszMzQ3MCw1OTMzNl0sWzMzNDcxLDU5MzY3XSxbMzM0ODQsNTk0MTNdLFszMzQ4NSw1OTQxN10sWzMzNDkwLDU5NDIzXSxbMzM0OTcsNTk0MzFdLFszMzUwMSw1OTQzN10sWzMzNTA1LDU5''@;'; + put 'put ''NDQzXSxbMzM1MTMsNTk0NTJdLFszMzUyMCw1OTQ2MF0sWzMzNTM2LDU5NDc4XSxbMzM1NTAsNTk0OTNdLFszNzg0NSw2Mzc4OV0sWzM3OTIxLDYzODY2XSxbMzc5NDgsNjM4OTRdLFszODAyOSw2Mzk3Nl0sWzM4MDM4LDYzOTg2XSxbMzgwNjQsNjQwMTZdLFszODA2NSw2NDAxOF0sWzM4MDY2''@;'; + put 'put ''LDY0MDIxXSxbMzgwNjksNjQwMjVdLFszODA3NSw2NDAzNF0sWzM4MDc2LDY0MDM3XSxbMzgwNzgsNjQwNDJdLFszOTEwOCw2NTA3NF0sWzM5MTA5LDY1MDkzXSxbMzkxMTMsNjUxMDddLFszOTExNCw2NTExMl0sWzM5MTE1LDY1MTI3XSxbMzkxMTYsNjUxMzJdLFszOTI2NSw2NTM3NV0sWzM5''@;'; + put 'put ''Mzk0LDY1NTEwXSxbMTg5ZTMsNjU1MzZdXSxqaXMwMjA4OlsxMjI4OCwxMjI4OSwxMjI5MCw2NTI5Miw2NTI5NCwxMjUzOSw2NTMwNiw2NTMwNyw2NTMxMSw2NTI4MSwxMjQ0MywxMjQ0NCwxODAsNjUzNDQsMTY4LDY1MzQyLDY1NTA3LDY1MzQzLDEyNTQxLDEyNTQyLDEyNDQ1LDEyNDQ2LDEy''@;'; + put 'put ''MjkxLDIwMTg5LDEyMjkzLDEyMjk0LDEyMjk1LDEyNTQwLDgyMTMsODIwOCw2NTI5NSw2NTM0MCw2NTM3NCw4NzQxLDY1MzcyLDgyMzAsODIyOSw4MjE2LDgyMTcsODIyMCw4MjIxLDY1Mjg4LDY1Mjg5LDEyMzA4LDEyMzA5LDY1MzM5LDY1MzQxLDY1MzcxLDY1MzczLDEyMjk2LDEyMjk3LDEy''@;'; + put 'put ''Mjk4LDEyMjk5LDEyMzAwLDEyMzAxLDEyMzAyLDEyMzAzLDEyMzA0LDEyMzA1LDY1MjkxLDY1MjkzLDE3NywyMTUsMjQ3LDY1MzA5LDg4MDAsNjUzMDgsNjUzMTAsODgwNiw4ODA3LDg3MzQsODc1Niw5Nzk0LDk3OTIsMTc2LDgyNDIsODI0Myw4NDUxLDY1NTA5LDY1Mjg0LDY1NTA0LDY1NTA1''@;'; + put 'put ''LDY1Mjg1LDY1MjgzLDY1Mjg2LDY1MjkwLDY1MzEyLDE2Nyw5NzM0LDk3MzMsOTY3NSw5Njc5LDk2NzgsOTY3MSw5NjcwLDk2MzMsOTYzMiw5NjUxLDk2NTAsOTY2MSw5NjYwLDgyNTEsMTIzMDYsODU5NCw4NTkyLDg1OTMsODU5NSwxMjMwNyxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsODcxMiw4NzE1LDg4MzgsODgzOSw4ODM0LDg4MzUsODc0Niw4NzQ1LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw4NzQzLDg3NDQsNjU1MDYsODY1OCw4NjYwLDg3MDQsODcwNyxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsODczNiw4ODY5LDg5NzgsODcwNiw4NzExLDg4MDEsODc4Niw4ODEwLDg4MTEsODczMCw4NzY1LDg3MzMsODc1Nyw4NzQ3LDg3NDgsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw4NDkxLDgyNDAsOTgzOSw5ODM3LDk4''@;'; + put 'put ''MzQsODIyNCw4MjI1LDE4MixudWxsLG51bGwsbnVsbCxudWxsLDk3MTEsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNjUyOTYsNjUyOTcsNjUyOTgsNjUyOTksNjUzMDAsNjUzMDEsNjUzMDIsNjUzMDMs''@;'; + put 'put ''NjUzMDQsNjUzMDUsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw2NTMxMyw2NTMxNCw2NTMxNSw2NTMxNiw2NTMxNyw2NTMxOCw2NTMxOSw2NTMyMCw2NTMyMSw2NTMyMiw2NTMyMyw2NTMyNCw2NTMyNSw2NTMyNiw2NTMyNyw2NTMyOCw2NTMyOSw2NTMzMCw2NTMzMSw2NTMz''@;'; + put 'put ''Miw2NTMzMyw2NTMzNCw2NTMzNSw2NTMzNiw2NTMzNyw2NTMzOCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw2NTM0NSw2NTM0Niw2NTM0Nyw2NTM0OCw2NTM0OSw2NTM1MCw2NTM1MSw2NTM1Miw2NTM1Myw2NTM1NCw2NTM1NSw2NTM1Niw2NTM1Nyw2NTM1OCw2NTM1OSw2NTM2MCw2''@;'; + put 'put ''NTM2MSw2NTM2Miw2NTM2Myw2NTM2NCw2NTM2NSw2NTM2Niw2NTM2Nyw2NTM2OCw2NTM2OSw2NTM3MCxudWxsLG51bGwsbnVsbCxudWxsLDEyMzUzLDEyMzU0LDEyMzU1LDEyMzU2LDEyMzU3LDEyMzU4LDEyMzU5LDEyMzYwLDEyMzYxLDEyMzYyLDEyMzYzLDEyMzY0LDEyMzY1LDEyMzY2LDEy''@;'; + put 'put ''MzY3LDEyMzY4LDEyMzY5LDEyMzcwLDEyMzcxLDEyMzcyLDEyMzczLDEyMzc0LDEyMzc1LDEyMzc2LDEyMzc3LDEyMzc4LDEyMzc5LDEyMzgwLDEyMzgxLDEyMzgyLDEyMzgzLDEyMzg0LDEyMzg1LDEyMzg2LDEyMzg3LDEyMzg4LDEyMzg5LDEyMzkwLDEyMzkxLDEyMzkyLDEyMzkzLDEyMzk0''@;'; + put 'put ''LDEyMzk1LDEyMzk2LDEyMzk3LDEyMzk4LDEyMzk5LDEyNDAwLDEyNDAxLDEyNDAyLDEyNDAzLDEyNDA0LDEyNDA1LDEyNDA2LDEyNDA3LDEyNDA4LDEyNDA5LDEyNDEwLDEyNDExLDEyNDEyLDEyNDEzLDEyNDE0LDEyNDE1LDEyNDE2LDEyNDE3LDEyNDE4LDEyNDE5LDEyNDIwLDEyNDIxLDEy''@;'; + put 'put ''NDIyLDEyNDIzLDEyNDI0LDEyNDI1LDEyNDI2LDEyNDI3LDEyNDI4LDEyNDI5LDEyNDMwLDEyNDMxLDEyNDMyLDEyNDMzLDEyNDM0LDEyNDM1LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwxMjQ0OSwxMjQ1MCwxMjQ1MSwxMjQ1MiwxMjQ1''@;'; + put 'put ''MywxMjQ1NCwxMjQ1NSwxMjQ1NiwxMjQ1NywxMjQ1OCwxMjQ1OSwxMjQ2MCwxMjQ2MSwxMjQ2MiwxMjQ2MywxMjQ2NCwxMjQ2NSwxMjQ2NiwxMjQ2NywxMjQ2OCwxMjQ2OSwxMjQ3MCwxMjQ3MSwxMjQ3MiwxMjQ3MywxMjQ3NCwxMjQ3NSwxMjQ3NiwxMjQ3NywxMjQ3OCwxMjQ3OSwxMjQ4MCwx''@;'; + put 'put ''MjQ4MSwxMjQ4MiwxMjQ4MywxMjQ4NCwxMjQ4NSwxMjQ4NiwxMjQ4NywxMjQ4OCwxMjQ4OSwxMjQ5MCwxMjQ5MSwxMjQ5MiwxMjQ5MywxMjQ5NCwxMjQ5NSwxMjQ5NiwxMjQ5NywxMjQ5OCwxMjQ5OSwxMjUwMCwxMjUwMSwxMjUwMiwxMjUwMywxMjUwNCwxMjUwNSwxMjUwNiwxMjUwNywxMjUw''@;'; + put 'put ''OCwxMjUwOSwxMjUxMCwxMjUxMSwxMjUxMiwxMjUxMywxMjUxNCwxMjUxNSwxMjUxNiwxMjUxNywxMjUxOCwxMjUxOSwxMjUyMCwxMjUyMSwxMjUyMiwxMjUyMywxMjUyNCwxMjUyNSwxMjUyNiwxMjUyNywxMjUyOCwxMjUyOSwxMjUzMCwxMjUzMSwxMjUzMiwxMjUzMywxMjUzNCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsOTEzLDkxNCw5MTUsOTE2LDkxNyw5MTgsOTE5LDkyMCw5MjEsOTIyLDkyMyw5MjQsOTI1LDkyNiw5MjcsOTI4LDkyOSw5MzEsOTMyLDkzMyw5MzQsOTM1LDkzNiw5MzcsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLDk0NSw5NDYsOTQ3LDk0OCw5NDksOTUwLDk1MSw5NTIsOTUzLDk1NCw5NTUsOTU2LDk1Nyw5NTgsOTU5LDk2MCw5NjEsOTYzLDk2NCw5NjUsOTY2LDk2Nyw5NjgsOTY5LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwxMDQwLDEwNDEsMTA0MiwxMDQzLDEwNDQsMTA0NSwxMDI1LDEwNDYs''@;'; + put 'put ''MTA0NywxMDQ4LDEwNDksMTA1MCwxMDUxLDEwNTIsMTA1MywxMDU0LDEwNTUsMTA1NiwxMDU3LDEwNTgsMTA1OSwxMDYwLDEwNjEsMTA2MiwxMDYzLDEwNjQsMTA2NSwxMDY2LDEwNjcsMTA2OCwxMDY5LDEwNzAsMTA3MSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwxMDcyLDEwNzMsMTA3NCwxMDc1LDEwNzYsMTA3NywxMTA1LDEwNzgsMTA3OSwxMDgwLDEwODEsMTA4MiwxMDgzLDEwODQsMTA4NSwxMDg2LDEwODcsMTA4OCwxMDg5LDEwOTAsMTA5MSwxMDkyLDEwOTMsMTA5NCwxMDk1LDEwOTYs''@;'; + put 'put ''MTA5NywxMDk4LDEwOTksMTEwMCwxMTAxLDExMDIsMTEwMyxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDk0NzIsOTQ3NCw5NDg0LDk0ODgsOTQ5Niw5NDkyLDk1MDAsOTUxNiw5NTA4LDk1MjQsOTUzMiw5NDczLDk0NzUs''@;'; + put 'put ''OTQ4Nyw5NDkxLDk0OTksOTQ5NSw5NTA3LDk1MjMsOTUxNSw5NTMxLDk1NDcsOTUwNCw5NTE5LDk1MTIsOTUyNyw5NTM1LDk1MDEsOTUyMCw5NTA5LDk1MjgsOTUzOCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw5MzEyLDkzMTMsOTMxNCw5MzE1LDkzMTYs''@;'; + put 'put ''OTMxNyw5MzE4LDkzMTksOTMyMCw5MzIxLDkzMjIsOTMyMyw5MzI0LDkzMjUsOTMyNiw5MzI3LDkzMjgsOTMyOSw5MzMwLDkzMzEsODU0NCw4NTQ1LDg1NDYsODU0Nyw4NTQ4LDg1NDksODU1MCw4NTUxLDg1NTIsODU1MyxudWxsLDEzMTI5LDEzMDc2LDEzMDkwLDEzMTMzLDEzMDgwLDEzMDk1''@;'; + put 'put ''LDEzMDU5LDEzMTEwLDEzMTM3LDEzMTQzLDEzMDY5LDEzMDk0LDEzMDkxLDEzMDk5LDEzMTMwLDEzMTE1LDEzMjEyLDEzMjEzLDEzMjE0LDEzMTk4LDEzMTk5LDEzMjUyLDEzMjE3LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwxMzE3OSwxMjMxNywxMjMxOSw4NDcw''@;'; + put 'put ''LDEzMjYxLDg0ODEsMTI5NjQsMTI5NjUsMTI5NjYsMTI5NjcsMTI5NjgsMTI4NDksMTI4NTAsMTI4NTcsMTMxODIsMTMxODEsMTMxODAsODc4Niw4ODAxLDg3NDcsODc1MCw4NzIxLDg3MzAsODg2OSw4NzM2LDg3MzUsODg5NSw4NzU3LDg3NDUsODc0NixudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDIwMTI0LDIxNzgyLDIzMDQzLDM4NDYzLDIxNjk2LDI0ODU5LDI1Mzg0LDIzMDMwLDM2ODk4LDMzOTA5LDMz''@;'; + put 'put ''NTY0LDMxMzEyLDI0NzQ2LDI1NTY5LDI4MTk3LDI2MDkzLDMzODk0LDMzNDQ2LDM5OTI1LDI2NzcxLDIyMzExLDI2MDE3LDI1MjAxLDIzNDUxLDIyOTkyLDM0NDI3LDM5MTU2LDMyMDk4LDMyMTkwLDM5ODIyLDI1MTEwLDMxOTAzLDM0OTk5LDIzNDMzLDI0MjQ1LDI1MzUzLDI2MjYzLDI2Njk2''@;'; + put 'put ''LDM4MzQzLDM4Nzk3LDI2NDQ3LDIwMTk3LDIwMjM0LDIwMzAxLDIwMzgxLDIwNTUzLDIyMjU4LDIyODM5LDIyOTk2LDIzMDQxLDIzNTYxLDI0Nzk5LDI0ODQ3LDI0OTQ0LDI2MTMxLDI2ODg1LDI4ODU4LDMwMDMxLDMwMDY0LDMxMjI3LDMyMTczLDMyMjM5LDMyOTYzLDMzODA2LDM0OTE1LDM1''@;'; + put 'put ''NTg2LDM2OTQ5LDM2OTg2LDIxMzA3LDIwMTE3LDIwMTMzLDIyNDk1LDMyOTQ2LDM3MDU3LDMwOTU5LDE5OTY4LDIyNzY5LDI4MzIyLDM2OTIwLDMxMjgyLDMzNTc2LDMzNDE5LDM5OTgzLDIwODAxLDIxMzYwLDIxNjkzLDIxNzI5LDIyMjQwLDIzMDM1LDI0MzQxLDM5MTU0LDI4MTM5LDMyOTk2''@;'; + put 'put ''LDM0MDkzLDM4NDk4LDM4NTEyLDM4NTYwLDM4OTA3LDIxNTE1LDIxNDkxLDIzNDMxLDI4ODc5LDMyNzAxLDM2ODAyLDM4NjMyLDIxMzU5LDQwMjg0LDMxNDE4LDE5OTg1LDMwODY3LDMzMjc2LDI4MTk4LDIyMDQwLDIxNzY0LDI3NDIxLDM0MDc0LDM5OTk1LDIzMDEzLDIxNDE3LDI4MDA2LDI5''@;'; + put 'put ''OTE2LDM4Mjg3LDIyMDgyLDIwMTEzLDM2OTM5LDM4NjQyLDMzNjE1LDM5MTgwLDIxNDczLDIxOTQyLDIzMzQ0LDI0NDMzLDI2MTQ0LDI2MzU1LDI2NjI4LDI3NzA0LDI3ODkxLDI3OTQ1LDI5Nzg3LDMwNDA4LDMxMzEwLDM4OTY0LDMzNTIxLDM0OTA3LDM1NDI0LDM3NjEzLDI4MDgyLDMwMTIz''@;'; + put 'put ''LDMwNDEwLDM5MzY1LDI0NzQyLDM1NTg1LDM2MjM0LDM4MzIyLDI3MDIyLDIxNDIxLDIwODcwLDIyMjkwLDIyNTc2LDIyODUyLDIzNDc2LDI0MzEwLDI0NjE2LDI1NTEzLDI1NTg4LDI3ODM5LDI4NDM2LDI4ODE0LDI4OTQ4LDI5MDE3LDI5MTQxLDI5NTAzLDMyMjU3LDMzMzk4LDMzNDg5LDM0''@;'; + put 'put ''MTk5LDM2OTYwLDM3NDY3LDQwMjE5LDIyNjMzLDI2MDQ0LDI3NzM4LDI5OTg5LDIwOTg1LDIyODMwLDIyODg1LDI0NDQ4LDI0NTQwLDI1Mjc2LDI2MTA2LDI3MTc4LDI3NDMxLDI3NTcyLDI5NTc5LDMyNzA1LDM1MTU4LDQwMjM2LDQwMjA2LDQwNjQ0LDIzNzEzLDI3Nzk4LDMzNjU5LDIwNzQw''@;'; + put 'put ''LDIzNjI3LDI1MDE0LDMzMjIyLDI2NzQyLDI5MjgxLDIwMDU3LDIwNDc0LDIxMzY4LDI0NjgxLDI4MjAxLDMxMzExLDM4ODk5LDE5OTc5LDIxMjcwLDIwMjA2LDIwMzA5LDIwMjg1LDIwMzg1LDIwMzM5LDIxMTUyLDIxNDg3LDIyMDI1LDIyNzk5LDIzMjMzLDIzNDc4LDIzNTIxLDMxMTg1LDI2''@;'; + put 'put ''MjQ3LDI2NTI0LDI2NTUwLDI3NDY4LDI3ODI3LDI4Nzc5LDI5NjM0LDMxMTE3LDMxMTY2LDMxMjkyLDMxNjIzLDMzNDU3LDMzNDk5LDMzNTQwLDMzNjU1LDMzNzc1LDMzNzQ3LDM0NjYyLDM1NTA2LDIyMDU3LDM2MDA4LDM2ODM4LDM2OTQyLDM4Njg2LDM0NDQyLDIwNDIwLDIzNzg0LDI1MTA1''@;'; + put 'put ''LDI5MjczLDMwMDExLDMzMjUzLDMzNDY5LDM0NTU4LDM2MDMyLDM4NTk3LDM5MTg3LDM5MzgxLDIwMTcxLDIwMjUwLDM1Mjk5LDIyMjM4LDIyNjAyLDIyNzMwLDI0MzE1LDI0NTU1LDI0NjE4LDI0NzI0LDI0Njc0LDI1MDQwLDI1MTA2LDI1Mjk2LDI1OTEzLDM5NzQ1LDI2MjE0LDI2ODAwLDI4''@;'; + put 'put ''MDIzLDI4Nzg0LDMwMDI4LDMwMzQyLDMyMTE3LDMzNDQ1LDM0ODA5LDM4MjgzLDM4NTQyLDM1OTk3LDIwOTc3LDIxMTgyLDIyODA2LDIxNjgzLDIzNDc1LDIzODMwLDI0OTM2LDI3MDEwLDI4MDc5LDMwODYxLDMzOTk1LDM0OTAzLDM1NDQyLDM3Nzk5LDM5NjA4LDI4MDEyLDM5MzM2LDM0NTIx''@;'; + put 'put ''LDIyNDM1LDI2NjIzLDM0NTEwLDM3MzkwLDIxMTIzLDIyMTUxLDIxNTA4LDI0Mjc1LDI1MzEzLDI1Nzg1LDI2Njg0LDI2NjgwLDI3NTc5LDI5NTU0LDMwOTA2LDMxMzM5LDM1MjI2LDM1MjgyLDM2MjAzLDM2NjExLDM3MTAxLDM4MzA3LDM4NTQ4LDM4NzYxLDIzMzk4LDIzNzMxLDI3MDA1LDM4''@;'; + put 'put ''OTg5LDM4OTkwLDI1NDk5LDMxNTIwLDI3MTc5LDI3MjYzLDI2ODA2LDM5OTQ5LDI4NTExLDIxMTA2LDIxOTE3LDI0Njg4LDI1MzI0LDI3OTYzLDI4MTY3LDI4MzY5LDMzODgzLDM1MDg4LDM2Njc2LDE5OTg4LDM5OTkzLDIxNDk0LDI2OTA3LDI3MTk0LDM4Nzg4LDI2NjY2LDIwODI4LDMxNDI3''@;'; + put 'put ''LDMzOTcwLDM3MzQwLDM3NzcyLDIyMTA3LDQwMjMyLDI2NjU4LDMzNTQxLDMzODQxLDMxOTA5LDIxZTMsMzM0NzcsMjk5MjYsMjAwOTQsMjAzNTUsMjA4OTYsMjM1MDYsMjEwMDIsMjEyMDgsMjEyMjMsMjQwNTksMjE5MTQsMjI1NzAsMjMwMTQsMjM0MzYsMjM0NDgsMjM1MTUsMjQxNzgsMjQx''@;'; + put 'put ''ODUsMjQ3MzksMjQ4NjMsMjQ5MzEsMjUwMjIsMjU1NjMsMjU5NTQsMjY1NzcsMjY3MDcsMjY4NzQsMjc0NTQsMjc0NzUsMjc3MzUsMjg0NTAsMjg1NjcsMjg0ODUsMjk4NzIsMjk5NzYsMzA0MzUsMzA0NzUsMzE0ODcsMzE2NDksMzE3NzcsMzIyMzMsMzI1NjYsMzI3NTIsMzI5MjUsMzMzODIs''@;'; + put 'put ''MzM2OTQsMzUyNTEsMzU1MzIsMzYwMTEsMzY5OTYsMzc5NjksMzgyOTEsMzgyODksMzgzMDYsMzg1MDEsMzg4NjcsMzkyMDgsMzMzMDQsMjAwMjQsMjE1NDcsMjM3MzYsMjQwMTIsMjk2MDksMzAyODQsMzA1MjQsMjM3MjEsMzI3NDcsMzYxMDcsMzg1OTMsMzg5MjksMzg5OTYsMzllMywyMDIy''@;'; + put 'put ''NSwyMDIzOCwyMTM2MSwyMTkxNiwyMjEyMCwyMjUyMiwyMjg1NSwyMzMwNSwyMzQ5MiwyMzY5NiwyNDA3NiwyNDE5MCwyNDUyNCwyNTU4MiwyNjQyNiwyNjA3MSwyNjA4MiwyNjM5OSwyNjgyNywyNjgyMCwyNzIzMSwyNDExMiwyNzU4OSwyNzY3MSwyNzc3MywzMDA3OSwzMTA0OCwyMzM5NSwz''@;'; + put 'put ''MTIzMiwzMmUzLDI0NTA5LDM1MjE1LDM1MzUyLDM2MDIwLDM2MjE1LDM2NTU2LDM2NjM3LDM5MTM4LDM5NDM4LDM5NzQwLDIwMDk2LDIwNjA1LDIwNzM2LDIyOTMxLDIzNDUyLDI1MTM1LDI1MjE2LDI1ODM2LDI3NDUwLDI5MzQ0LDMwMDk3LDMxMDQ3LDMyNjgxLDM0ODExLDM1NTE2LDM1Njk2''@;'; + put 'put ''LDI1NTE2LDMzNzM4LDM4ODE2LDIxNTEzLDIxNTA3LDIxOTMxLDI2NzA4LDI3MjI0LDM1NDQwLDMwNzU5LDI2NDg1LDQwNjUzLDIxMzY0LDIzNDU4LDMzMDUwLDM0Mzg0LDM2ODcwLDE5OTkyLDIwMDM3LDIwMTY3LDIwMjQxLDIxNDUwLDIxNTYwLDIzNDcwLDI0MzM5LDI0NjEzLDI1OTM3LDI2''@;'; + put 'put ''NDI5LDI3NzE0LDI3NzYyLDI3ODc1LDI4NzkyLDI5Njk5LDMxMzUwLDMxNDA2LDMxNDk2LDMyMDI2LDMxOTk4LDMyMTAyLDI2MDg3LDI5Mjc1LDIxNDM1LDIzNjIxLDI0MDQwLDI1Mjk4LDI1MzEyLDI1MzY5LDI4MTkyLDM0Mzk0LDM1Mzc3LDM2MzE3LDM3NjI0LDI4NDE3LDMxMTQyLDM5Nzcw''@;'; + put 'put ''LDIwMTM2LDIwMTM5LDIwMTQwLDIwMzc5LDIwMzg0LDIwNjg5LDIwODA3LDMxNDc4LDIwODQ5LDIwOTgyLDIxMzMyLDIxMjgxLDIxMzc1LDIxNDgzLDIxOTMyLDIyNjU5LDIzNzc3LDI0Mzc1LDI0Mzk0LDI0NjIzLDI0NjU2LDI0Njg1LDI1Mzc1LDI1OTQ1LDI3MjExLDI3ODQxLDI5Mzc4LDI5''@;'; + put 'put ''NDIxLDMwNzAzLDMzMDE2LDMzMDI5LDMzMjg4LDM0MTI2LDM3MTExLDM3ODU3LDM4OTExLDM5MjU1LDM5NTE0LDIwMjA4LDIwOTU3LDIzNTk3LDI2MjQxLDI2OTg5LDIzNjE2LDI2MzU0LDI2OTk3LDI5NTc3LDI2NzA0LDMxODczLDIwNjc3LDIxMjIwLDIyMzQzLDI0MDYyLDM3NjcwLDI2MDIw''@;'; + put 'put ''LDI3NDI3LDI3NDUzLDI5NzQ4LDMxMTA1LDMxMTY1LDMxNTYzLDMyMjAyLDMzNDY1LDMzNzQwLDM0OTQzLDM1MTY3LDM1NjQxLDM2ODE3LDM3MzI5LDIxNTM1LDM3NTA0LDIwMDYxLDIwNTM0LDIxNDc3LDIxMzA2LDI5Mzk5LDI5NTkwLDMwNjk3LDMzNTEwLDM2NTI3LDM5MzY2LDM5MzY4LDM5''@;'; + put 'put ''Mzc4LDIwODU1LDI0ODU4LDM0Mzk4LDIxOTM2LDMxMzU0LDIwNTk4LDIzNTA3LDM2OTM1LDM4NTMzLDIwMDE4LDI3MzU1LDM3MzUxLDIzNjMzLDIzNjI0LDI1NDk2LDMxMzkxLDI3Nzk1LDM4NzcyLDM2NzA1LDMxNDAyLDI5MDY2LDM4NTM2LDMxODc0LDI2NjQ3LDMyMzY4LDI2NzA1LDM3NzQw''@;'; + put 'put ''LDIxMjM0LDIxNTMxLDM0MjE5LDM1MzQ3LDMyNjc2LDM2NTU3LDM3MDg5LDIxMzUwLDM0OTUyLDMxMDQxLDIwNDE4LDIwNjcwLDIxMDA5LDIwODA0LDIxODQzLDIyMzE3LDI5Njc0LDIyNDExLDIyODY1LDI0NDE4LDI0NDUyLDI0NjkzLDI0OTUwLDI0OTM1LDI1MDAxLDI1NTIyLDI1NjU4LDI1''@;'; + put 'put ''OTY0LDI2MjIzLDI2NjkwLDI4MTc5LDMwMDU0LDMxMjkzLDMxOTk1LDMyMDc2LDMyMTUzLDMyMzMxLDMyNjE5LDMzNTUwLDMzNjEwLDM0NTA5LDM1MzM2LDM1NDI3LDM1Njg2LDM2NjA1LDM4OTM4LDQwMzM1LDMzNDY0LDM2ODE0LDM5OTEyLDIxMTI3LDI1MTE5LDI1NzMxLDI4NjA4LDM4NTUz''@;'; + put 'put ''LDI2Njg5LDIwNjI1LDI3NDI0LDI3NzcwLDI4NTAwLDMxMzQ4LDMyMDgwLDM0ODgwLDM1MzYzLDI2Mzc2LDIwMjE0LDIwNTM3LDIwNTE4LDIwNTgxLDIwODYwLDIxMDQ4LDIxMDkxLDIxOTI3LDIyMjg3LDIyNTMzLDIzMjQ0LDI0MzE0LDI1MDEwLDI1MDgwLDI1MzMxLDI1NDU4LDI2OTA4LDI3''@;'; + put 'put ''MTc3LDI5MzA5LDI5MzU2LDI5NDg2LDMwNzQwLDMwODMxLDMyMTIxLDMwNDc2LDMyOTM3LDM1MjExLDM1NjA5LDM2MDY2LDM2NTYyLDM2OTYzLDM3NzQ5LDM4NTIyLDM4OTk3LDM5NDQzLDQwNTY4LDIwODAzLDIxNDA3LDIxNDI3LDI0MTg3LDI0MzU4LDI4MTg3LDI4MzA0LDI5NTcyLDI5Njk0''@;'; + put 'put ''LDMyMDY3LDMzMzM1LDM1MzI4LDM1NTc4LDM4NDgwLDIwMDQ2LDIwNDkxLDIxNDc2LDIxNjI4LDIyMjY2LDIyOTkzLDIzMzk2LDI0MDQ5LDI0MjM1LDI0MzU5LDI1MTQ0LDI1OTI1LDI2NTQzLDI4MjQ2LDI5MzkyLDMxOTQ2LDM0OTk2LDMyOTI5LDMyOTkzLDMzNzc2LDM0MzgyLDM1NDYzLDM2''@;'; + put 'put ''MzI4LDM3NDMxLDM4NTk5LDM5MDE1LDQwNzIzLDIwMTE2LDIwMTE0LDIwMjM3LDIxMzIwLDIxNTc3LDIxNTY2LDIzMDg3LDI0NDYwLDI0NDgxLDI0NzM1LDI2NzkxLDI3Mjc4LDI5Nzg2LDMwODQ5LDM1NDg2LDM1NDkyLDM1NzAzLDM3MjY0LDIwMDYyLDM5ODgxLDIwMTMyLDIwMzQ4LDIwMzk5''@;'; + put 'put ''LDIwNTA1LDIwNTAyLDIwODA5LDIwODQ0LDIxMTUxLDIxMTc3LDIxMjQ2LDIxNDAyLDIxNDc1LDIxNTIxLDIxNTE4LDIxODk3LDIyMzUzLDIyNDM0LDIyOTA5LDIzMzgwLDIzMzg5LDIzNDM5LDI0MDM3LDI0MDM5LDI0MDU1LDI0MTg0LDI0MTk1LDI0MjE4LDI0MjQ3LDI0MzQ0LDI0NjU4LDI0''@;'; + put 'put ''OTA4LDI1MjM5LDI1MzA0LDI1NTExLDI1OTE1LDI2MTE0LDI2MTc5LDI2MzU2LDI2NDc3LDI2NjU3LDI2Nzc1LDI3MDgzLDI3NzQzLDI3OTQ2LDI4MDA5LDI4MjA3LDI4MzE3LDMwMDAyLDMwMzQzLDMwODI4LDMxMjk1LDMxOTY4LDMyMDA1LDMyMDI0LDMyMDk0LDMyMTc3LDMyNzg5LDMyNzcx''@;'; + put 'put ''LDMyOTQzLDMyOTQ1LDMzMTA4LDMzMTY3LDMzMzIyLDMzNjE4LDM0ODkyLDM0OTEzLDM1NjExLDM2MDAyLDM2MDkyLDM3MDY2LDM3MjM3LDM3NDg5LDMwNzgzLDM3NjI4LDM4MzA4LDM4NDc3LDM4OTE3LDM5MzIxLDM5NjQwLDQwMjUxLDIxMDgzLDIxMTYzLDIxNDk1LDIxNTEyLDIyNzQxLDI1''@;'; + put 'put ''MzM1LDI4NjQwLDM1OTQ2LDM2NzAzLDQwNjMzLDIwODExLDIxMDUxLDIxNTc4LDIyMjY5LDMxMjk2LDM3MjM5LDQwMjg4LDQwNjU4LDI5NTA4LDI4NDI1LDMzMTM2LDI5OTY5LDI0NTczLDI0Nzk0LDM5NTkyLDI5NDAzLDM2Nzk2LDI3NDkyLDM4OTE1LDIwMTcwLDIyMjU2LDIyMzcyLDIyNzE4''@;'; + put 'put ''LDIzMTMwLDI0NjgwLDI1MDMxLDI2MTI3LDI2MTE4LDI2NjgxLDI2ODAxLDI4MTUxLDMwMTY1LDMyMDU4LDMzMzkwLDM5NzQ2LDIwMTIzLDIwMzA0LDIxNDQ5LDIxNzY2LDIzOTE5LDI0MDM4LDI0MDQ2LDI2NjE5LDI3ODAxLDI5ODExLDMwNzIyLDM1NDA4LDM3NzgyLDM1MDM5LDIyMzUyLDI0''@;'; + put 'put ''MjMxLDI1Mzg3LDIwNjYxLDIwNjUyLDIwODc3LDI2MzY4LDIxNzA1LDIyNjIyLDIyOTcxLDIzNDcyLDI0NDI1LDI1MTY1LDI1NTA1LDI2Njg1LDI3NTA3LDI4MTY4LDI4Nzk3LDM3MzE5LDI5MzEyLDMwNzQxLDMwNzU4LDMxMDg1LDI1OTk4LDMyMDQ4LDMzNzU2LDM1MDA5LDM2NjE3LDM4NTU1''@;'; + put 'put ''LDIxMDkyLDIyMzEyLDI2NDQ4LDMyNjE4LDM2MDAxLDIwOTE2LDIyMzM4LDM4NDQyLDIyNTg2LDI3MDE4LDMyOTQ4LDIxNjgyLDIzODIyLDIyNTI0LDMwODY5LDQwNDQyLDIwMzE2LDIxMDY2LDIxNjQzLDI1NjYyLDI2MTUyLDI2Mzg4LDI2NjEzLDMxMzY0LDMxNTc0LDMyMDM0LDM3Njc5LDI2''@;'; + put 'put ''NzE2LDM5ODUzLDMxNTQ1LDIxMjczLDIwODc0LDIxMDQ3LDIzNTE5LDI1MzM0LDI1Nzc0LDI1ODMwLDI2NDEzLDI3NTc4LDM0MjE3LDM4NjA5LDMwMzUyLDM5ODk0LDI1NDIwLDM3NjM4LDM5ODUxLDMwMzk5LDI2MTk0LDE5OTc3LDIwNjMyLDIxNDQyLDIzNjY1LDI0ODA4LDI1NzQ2LDI1OTU1''@;'; + put 'put ''LDI2NzE5LDI5MTU4LDI5NjQyLDI5OTg3LDMxNjM5LDMyMzg2LDM0NDUzLDM1NzE1LDM2MDU5LDM3MjQwLDM5MTg0LDI2MDI4LDI2MjgzLDI3NTMxLDIwMTgxLDIwMTgwLDIwMjgyLDIwMzUxLDIxMDUwLDIxNDk2LDIxNDkwLDIxOTg3LDIyMjM1LDIyNzYzLDIyOTg3LDIyOTg1LDIzMDM5LDIz''@;'; + put 'put ''Mzc2LDIzNjI5LDI0MDY2LDI0MTA3LDI0NTM1LDI0NjA1LDI1MzUxLDI1OTAzLDIzMzg4LDI2MDMxLDI2MDQ1LDI2MDg4LDI2NTI1LDI3NDkwLDI3NTE1LDI3NjYzLDI5NTA5LDMxMDQ5LDMxMTY5LDMxOTkyLDMyMDI1LDMyMDQzLDMyOTMwLDMzMDI2LDMzMjY3LDM1MjIyLDM1NDIyLDM1NDMz''@;'; + put 'put ''LDM1NDMwLDM1NDY4LDM1NTY2LDM2MDM5LDM2MDYwLDM4NjA0LDM5MTY0LDI3NTAzLDIwMTA3LDIwMjg0LDIwMzY1LDIwODE2LDIzMzgzLDIzNTQ2LDI0OTA0LDI1MzQ1LDI2MTc4LDI3NDI1LDI4MzYzLDI3ODM1LDI5MjQ2LDI5ODg1LDMwMTY0LDMwOTEzLDMxMDM0LDMyNzgwLDMyODE5LDMz''@;'; + put 'put ''MjU4LDMzOTQwLDM2NzY2LDI3NzI4LDQwNTc1LDI0MzM1LDM1NjcyLDQwMjM1LDMxNDgyLDM2NjAwLDIzNDM3LDM4NjM1LDE5OTcxLDIxNDg5LDIyNTE5LDIyODMzLDIzMjQxLDIzNDYwLDI0NzEzLDI4Mjg3LDI4NDIyLDMwMTQyLDM2MDc0LDIzNDU1LDM0MDQ4LDMxNzEyLDIwNTk0LDI2NjEy''@;'; + put 'put ''LDMzNDM3LDIzNjQ5LDM0MTIyLDMyMjg2LDMzMjk0LDIwODg5LDIzNTU2LDI1NDQ4LDM2MTk4LDI2MDEyLDI5MDM4LDMxMDM4LDMyMDIzLDMyNzczLDM1NjEzLDM2NTU0LDM2OTc0LDM0NTAzLDM3MDM0LDIwNTExLDIxMjQyLDIzNjEwLDI2NDUxLDI4Nzk2LDI5MjM3LDM3MTk2LDM3MzIwLDM3''@;'; + put 'put ''Njc1LDMzNTA5LDIzNDkwLDI0MzY5LDI0ODI1LDIwMDI3LDIxNDYyLDIzNDMyLDI1MTYzLDI2NDE3LDI3NTMwLDI5NDE3LDI5NjY0LDMxMjc4LDMzMTMxLDM2MjU5LDM3MjAyLDM5MzE4LDIwNzU0LDIxNDYzLDIxNjEwLDIzNTUxLDI1NDgwLDI3MTkzLDMyMTcyLDM4NjU2LDIyMjM0LDIxNDU0''@;'; + put 'put ''LDIxNjA4LDIzNDQ3LDIzNjAxLDI0MDMwLDIwNDYyLDI0ODMzLDI1MzQyLDI3OTU0LDMxMTY4LDMxMTc5LDMyMDY2LDMyMzMzLDMyNzIyLDMzMjYxLDMzMzExLDMzOTM2LDM0ODg2LDM1MTg2LDM1NzI4LDM2NDY4LDM2NjU1LDM2OTEzLDM3MTk1LDM3MjI4LDM4NTk4LDM3Mjc2LDIwMTYwLDIw''@;'; + put 'put ''MzAzLDIwODA1LDIxMzEzLDI0NDY3LDI1MTAyLDI2NTgwLDI3NzEzLDI4MTcxLDI5NTM5LDMyMjk0LDM3MzI1LDM3NTA3LDIxNDYwLDIyODA5LDIzNDg3LDI4MTEzLDMxMDY5LDMyMzAyLDMxODk5LDIyNjU0LDI5MDg3LDIwOTg2LDM0ODk5LDM2ODQ4LDIwNDI2LDIzODAzLDI2MTQ5LDMwNjM2''@;'; + put 'put ''LDMxNDU5LDMzMzA4LDM5NDIzLDIwOTM0LDI0NDkwLDI2MDkyLDI2OTkxLDI3NTI5LDI4MTQ3LDI4MzEwLDI4NTE2LDMwNDYyLDMyMDIwLDI0MDMzLDM2OTgxLDM3MjU1LDM4OTE4LDIwOTY2LDIxMDIxLDI1MTUyLDI2MjU3LDI2MzI5LDI4MTg2LDI0MjQ2LDMyMjEwLDMyNjI2LDI2MzYwLDM0''@;'; + put 'put ''MjIzLDM0Mjk1LDM1NTc2LDIxMTYxLDIxNDY1LDIyODk5LDI0MjA3LDI0NDY0LDI0NjYxLDM3NjA0LDM4NTAwLDIwNjYzLDIwNzY3LDIxMjEzLDIxMjgwLDIxMzE5LDIxNDg0LDIxNzM2LDIxODMwLDIxODA5LDIyMDM5LDIyODg4LDIyOTc0LDIzMTAwLDIzNDc3LDIzNTU4LDIzNTY3LDIzNTY5''@;'; + put 'put ''LDIzNTc4LDI0MTk2LDI0MjAyLDI0Mjg4LDI0NDMyLDI1MjE1LDI1MjIwLDI1MzA3LDI1NDg0LDI1NDYzLDI2MTE5LDI2MTI0LDI2MTU3LDI2MjMwLDI2NDk0LDI2Nzg2LDI3MTY3LDI3MTg5LDI3ODM2LDI4MDQwLDI4MTY5LDI4MjQ4LDI4OTg4LDI4OTY2LDI5MDMxLDMwMTUxLDMwNDY1LDMw''@;'; + put 'put ''ODEzLDMwOTc3LDMxMDc3LDMxMjE2LDMxNDU2LDMxNTA1LDMxOTExLDMyMDU3LDMyOTE4LDMzNzUwLDMzOTMxLDM0MTIxLDM0OTA5LDM1MDU5LDM1MzU5LDM1Mzg4LDM1NDEyLDM1NDQzLDM1OTM3LDM2MDYyLDM3Mjg0LDM3NDc4LDM3NzU4LDM3OTEyLDM4NTU2LDM4ODA4LDE5OTc4LDE5OTc2''@;'; + put 'put ''LDE5OTk4LDIwMDU1LDIwODg3LDIxMTA0LDIyNDc4LDIyNTgwLDIyNzMyLDIzMzMwLDI0MTIwLDI0NzczLDI1ODU0LDI2NDY1LDI2NDU0LDI3OTcyLDI5MzY2LDMwMDY3LDMxMzMxLDMzOTc2LDM1Njk4LDM3MzA0LDM3NjY0LDIyMDY1LDIyNTE2LDM5MTY2LDI1MzI1LDI2ODkzLDI3NTQyLDI5''@;'; + put 'put ''MTY1LDMyMzQwLDMyODg3LDMzMzk0LDM1MzAyLDM5MTM1LDM0NjQ1LDM2Nzg1LDIzNjExLDIwMjgwLDIwNDQ5LDIwNDA1LDIxNzY3LDIzMDcyLDIzNTE3LDIzNTI5LDI0NTE1LDI0OTEwLDI1MzkxLDI2MDMyLDI2MTg3LDI2ODYyLDI3MDM1LDI4MDI0LDI4MTQ1LDMwMDAzLDMwMTM3LDMwNDk1''@;'; + put 'put ''LDMxMDcwLDMxMjA2LDMyMDUxLDMzMjUxLDMzNDU1LDM0MjE4LDM1MjQyLDM1Mzg2LDM2NTIzLDM2NzYzLDM2OTE0LDM3MzQxLDM4NjYzLDIwMTU0LDIwMTYxLDIwOTk1LDIyNjQ1LDIyNzY0LDIzNTYzLDI5OTc4LDIzNjEzLDMzMTAyLDM1MzM4LDM2ODA1LDM4NDk5LDM4NzY1LDMxNTI1LDM1''@;'; + put 'put ''NTM1LDM4OTIwLDM3MjE4LDIyMjU5LDIxNDE2LDM2ODg3LDIxNTYxLDIyNDAyLDI0MTAxLDI1NTEyLDI3NzAwLDI4ODEwLDMwNTYxLDMxODgzLDMyNzM2LDM0OTI4LDM2OTMwLDM3MjA0LDM3NjQ4LDM3NjU2LDM4NTQzLDI5NzkwLDM5NjIwLDIzODE1LDIzOTEzLDI1OTY4LDI2NTMwLDM2MjY0''@;'; + put 'put ''LDM4NjE5LDI1NDU0LDI2NDQxLDI2OTA1LDMzNzMzLDM4OTM1LDM4NTkyLDM1MDcwLDI4NTQ4LDI1NzIyLDIzNTQ0LDE5OTkwLDI4NzE2LDMwMDQ1LDI2MTU5LDIwOTMyLDIxMDQ2LDIxMjE4LDIyOTk1LDI0NDQ5LDI0NjE1LDI1MTA0LDI1OTE5LDI1OTcyLDI2MTQzLDI2MjI4LDI2ODY2LDI2''@;'; + put 'put ''NjQ2LDI3NDkxLDI4MTY1LDI5Mjk4LDI5OTgzLDMwNDI3LDMxOTM0LDMyODU0LDIyNzY4LDM1MDY5LDM1MTk5LDM1NDg4LDM1NDc1LDM1NTMxLDM2ODkzLDM3MjY2LDM4NzM4LDM4NzQ1LDI1OTkzLDMxMjQ2LDMzMDMwLDM4NTg3LDI0MTA5LDI0Nzk2LDI1MTE0LDI2MDIxLDI2MTMyLDI2NTEy''@;'; + put 'put ''LDMwNzA3LDMxMzA5LDMxODIxLDMyMzE4LDMzMDM0LDM2MDEyLDM2MTk2LDM2MzIxLDM2NDQ3LDMwODg5LDIwOTk5LDI1MzA1LDI1NTA5LDI1NjY2LDI1MjQwLDM1MzczLDMxMzYzLDMxNjgwLDM1NTAwLDM4NjM0LDMyMTE4LDMzMjkyLDM0NjMzLDIwMTg1LDIwODA4LDIxMzE1LDIxMzQ0LDIz''@;'; + put 'put ''NDU5LDIzNTU0LDIzNTc0LDI0MDI5LDI1MTI2LDI1MTU5LDI1Nzc2LDI2NjQzLDI2Njc2LDI3ODQ5LDI3OTczLDI3OTI3LDI2NTc5LDI4NTA4LDI5MDA2LDI5MDUzLDI2MDU5LDMxMzU5LDMxNjYxLDMyMjE4LDMyMzMwLDMyNjgwLDMzMTQ2LDMzMzA3LDMzMzM3LDM0MjE0LDM1NDM4LDM2MDQ2''@;'; + put 'put ''LDM2MzQxLDM2OTg0LDM2OTgzLDM3NTQ5LDM3NTIxLDM4Mjc1LDM5ODU0LDIxMDY5LDIxODkyLDI4NDcyLDI4OTgyLDIwODQwLDMxMTA5LDMyMzQxLDMzMjAzLDMxOTUwLDIyMDkyLDIyNjA5LDIzNzIwLDI1NTE0LDI2MzY2LDI2MzY1LDI2OTcwLDI5NDAxLDMwMDk1LDMwMDk0LDMwOTkwLDMx''@;'; + put 'put ''MDYyLDMxMTk5LDMxODk1LDMyMDMyLDMyMDY4LDM0MzExLDM1MzgwLDM4NDU5LDM2OTYxLDQwNzM2LDIwNzExLDIxMTA5LDIxNDUyLDIxNDc0LDIwNDg5LDIxOTMwLDIyNzY2LDIyODYzLDI5MjQ1LDIzNDM1LDIzNjUyLDIxMjc3LDI0ODAzLDI0ODE5LDI1NDM2LDI1NDc1LDI1NDA3LDI1NTMx''@;'; + put 'put ''LDI1ODA1LDI2MDg5LDI2MzYxLDI0MDM1LDI3MDg1LDI3MTMzLDI4NDM3LDI5MTU3LDIwMTA1LDMwMTg1LDMwNDU2LDMxMzc5LDMxOTY3LDMyMjA3LDMyMTU2LDMyODY1LDMzNjA5LDMzNjI0LDMzOTAwLDMzOTgwLDM0Mjk5LDM1MDEzLDM2MjA4LDM2ODY1LDM2OTczLDM3NzgzLDM4Njg0LDM5''@;'; + put 'put ''NDQyLDIwNjg3LDIyNjc5LDI0OTc0LDMzMjM1LDM0MTAxLDM2MTA0LDM2ODk2LDIwNDE5LDIwNTk2LDIxMDYzLDIxMzYzLDI0Njg3LDI1NDE3LDI2NDYzLDI4MjA0LDM2Mjc1LDM2ODk1LDIwNDM5LDIzNjQ2LDM2MDQyLDI2MDYzLDMyMTU0LDIxMzMwLDM0OTY2LDIwODU0LDI1NTM5LDIzMzg0''@;'; + put 'put ''LDIzNDAzLDIzNTYyLDI1NjEzLDI2NDQ5LDM2OTU2LDIwMTgyLDIyODEwLDIyODI2LDI3NzYwLDM1NDA5LDIxODIyLDIyNTQ5LDIyOTQ5LDI0ODE2LDI1MTcxLDI2NTYxLDMzMzMzLDI2OTY1LDM4NDY0LDM5MzY0LDM5NDY0LDIwMzA3LDIyNTM0LDIzNTUwLDMyNzg0LDIzNzI5LDI0MTExLDI0''@;'; + put 'put ''NDUzLDI0NjA4LDI0OTA3LDI1MTQwLDI2MzY3LDI3ODg4LDI4MzgyLDMyOTc0LDMzMTUxLDMzNDkyLDM0OTU1LDM2MDI0LDM2ODY0LDM2OTEwLDM4NTM4LDQwNjY3LDM5ODk5LDIwMTk1LDIxNDg4LDIyODIzLDMxNTMyLDM3MjYxLDM4OTg4LDQwNDQxLDI4MzgxLDI4NzExLDIxMzMxLDIxODI4''@;'; + put 'put ''LDIzNDI5LDI1MTc2LDI1MjQ2LDI1Mjk5LDI3ODEwLDI4NjU1LDI5NzMwLDM1MzUxLDM3OTQ0LDI4NjA5LDM1NTgyLDMzNTkyLDIwOTY3LDM0NTUyLDIxNDgyLDIxNDgxLDIwMjk0LDM2OTQ4LDM2Nzg0LDIyODkwLDMzMDczLDI0MDYxLDMxNDY2LDM2Nzk5LDI2ODQyLDM1ODk1LDI5NDMyLDQw''@;'; + put 'put ''MDA4LDI3MTk3LDM1NTA0LDIwMDI1LDIxMzM2LDIyMDIyLDIyMzc0LDI1Mjg1LDI1NTA2LDI2MDg2LDI3NDcwLDI4MTI5LDI4MjUxLDI4ODQ1LDMwNzAxLDMxNDcxLDMxNjU4LDMyMTg3LDMyODI5LDMyOTY2LDM0NTA3LDM1NDc3LDM3NzIzLDIyMjQzLDIyNzI3LDI0MzgyLDI2MDI5LDI2MjYy''@;'; + put 'put ''LDI3MjY0LDI3NTczLDMwMDA3LDM1NTI3LDIwNTE2LDMwNjkzLDIyMzIwLDI0MzQ3LDI0Njc3LDI2MjM0LDI3NzQ0LDMwMTk2LDMxMjU4LDMyNjIyLDMzMjY4LDM0NTg0LDM2OTMzLDM5MzQ3LDMxNjg5LDMwMDQ0LDMxNDgxLDMxNTY5LDMzOTg4LDM2ODgwLDMxMjA5LDMxMzc4LDMzNTkwLDIz''@;'; + put 'put ''MjY1LDMwNTI4LDIwMDEzLDIwMjEwLDIzNDQ5LDI0NTQ0LDI1Mjc3LDI2MTcyLDI2NjA5LDI3ODgwLDM0NDExLDM0OTM1LDM1Mzg3LDM3MTk4LDM3NjE5LDM5Mzc2LDI3MTU5LDI4NzEwLDI5NDgyLDMzNTExLDMzODc5LDM2MDE1LDE5OTY5LDIwODA2LDIwOTM5LDIxODk5LDIzNTQxLDI0MDg2''@;'; + put 'put ''LDI0MTE1LDI0MTkzLDI0MzQwLDI0MzczLDI0NDI3LDI0NTAwLDI1MDc0LDI1MzYxLDI2Mjc0LDI2Mzk3LDI4NTI2LDI5MjY2LDMwMDEwLDMwNTIyLDMyODg0LDMzMDgxLDMzMTQ0LDM0Njc4LDM1NTE5LDM1NTQ4LDM2MjI5LDM2MzM5LDM3NTMwLDM4MjYzLDM4OTE0LDQwMTY1LDIxMTg5LDI1''@;'; + put 'put ''NDMxLDMwNDUyLDI2Mzg5LDI3Nzg0LDI5NjQ1LDM2MDM1LDM3ODA2LDM4NTE1LDI3OTQxLDIyNjg0LDI2ODk0LDI3MDg0LDM2ODYxLDM3Nzg2LDMwMTcxLDM2ODkwLDIyNjE4LDI2NjI2LDI1NTI0LDI3MTMxLDIwMjkxLDI4NDYwLDI2NTg0LDM2Nzk1LDM0MDg2LDMyMTgwLDM3NzE2LDI2OTQz''@;'; + put 'put ''LDI4NTI4LDIyMzc4LDIyNzc1LDIzMzQwLDMyMDQ0LDI5MjI2LDIxNTE0LDM3MzQ3LDQwMzcyLDIwMTQxLDIwMzAyLDIwNTcyLDIwNTk3LDIxMDU5LDM1OTk4LDIxNTc2LDIyNTY0LDIzNDUwLDI0MDkzLDI0MjEzLDI0MjM3LDI0MzExLDI0MzUxLDI0NzE2LDI1MjY5LDI1NDAyLDI1NTUyLDI2''@;'; + put 'put ''Nzk5LDI3NzEyLDMwODU1LDMxMTE4LDMxMjQzLDMyMjI0LDMzMzUxLDM1MzMwLDM1NTU4LDM2NDIwLDM2ODgzLDM3MDQ4LDM3MTY1LDM3MzM2LDQwNzE4LDI3ODc3LDI1Njg4LDI1ODI2LDI1OTczLDI4NDA0LDMwMzQwLDMxNTE1LDM2OTY5LDM3ODQxLDI4MzQ2LDIxNzQ2LDI0NTA1LDI1NzY0''@;'; + put 'put ''LDM2Njg1LDM2ODQ1LDM3NDQ0LDIwODU2LDIyNjM1LDIyODI1LDIzNjM3LDI0MjE1LDI4MTU1LDMyMzk5LDI5OTgwLDM2MDI4LDM2NTc4LDM5MDAzLDI4ODU3LDIwMjUzLDI3NTgzLDI4NTkzLDNlNCwzODY1MSwyMDgxNCwyMTUyMCwyMjU4MSwyMjYxNSwyMjk1NiwyMzY0OCwyNDQ2NiwyNjAw''@;'; + put 'put ''NywyNjQ2MCwyODE5MywzMDMzMSwzMzc1OSwzNjA3NywzNjg4NCwzNzExNywzNzcwOSwzMDc1NywzMDc3OCwyMTE2MiwyNDIzMCwyMjMwMywyMjkwMCwyNDU5NCwyMDQ5OCwyMDgyNiwyMDkwOCwyMDk0MSwyMDk5MiwyMTc3NiwyMjYxMiwyMjYxNiwyMjg3MSwyMzQ0NSwyMzc5OCwyMzk0Nywy''@;'; + put 'put ''NDc2NCwyNTIzNywyNTY0NSwyNjQ4MSwyNjY5MSwyNjgxMiwyNjg0NywzMDQyMywyODEyMCwyODI3MSwyODA1OSwyODc4MywyOTEyOCwyNDQwMywzMDE2OCwzMTA5NSwzMTU2MSwzMTU3MiwzMTU3MCwzMTk1OCwzMjExMywyMTA0MCwzMzg5MSwzNDE1MywzNDI3NiwzNTM0MiwzNTU4OCwzNTkx''@;'; + put 'put ''MCwzNjM2NywzNjg2NywzNjg3OSwzNzkxMywzODUxOCwzODk1NywzOTQ3MiwzODM2MCwyMDY4NSwyMTIwNSwyMTUxNiwyMjUzMCwyMzU2NiwyNDk5OSwyNTc1OCwyNzkzNCwzMDY0MywzMTQ2MSwzMzAxMiwzMzc5NiwzNjk0NywzNzUwOSwyMzc3Niw0MDE5OSwyMTMxMSwyNDQ3MSwyNDQ5OSwy''@;'; + put 'put ''ODA2MCwyOTMwNSwzMDU2MywzMTE2NywzMTcxNiwyNzYwMiwyOTQyMCwzNTUwMSwyNjYyNywyNzIzMywyMDk4NCwzMTM2MSwyNjkzMiwyMzYyNiw0MDE4MiwzMzUxNSwyMzQ5MywzNzE5MywyODcwMiwyMjEzNiwyMzY2MywyNDc3NSwyNTk1OCwyNzc4OCwzNTkzMCwzNjkyOSwzODkzMSwyMTU4''@;'; + put 'put ''NSwyNjMxMSwzNzM4OSwyMjg1NiwzNzAyNywyMDg2OSwyMDA0NSwyMDk3MCwzNDIwMSwzNTU5OCwyODc2MCwyNTQ2NiwzNzcwNywyNjk3OCwzOTM0OCwzMjI2MCwzMDA3MSwyMTMzNSwyNjk3NiwzNjU3NSwzODYyNywyNzc0MSwyMDEwOCwyMzYxMiwyNDMzNiwzNjg0MSwyMTI1MCwzNjA0OSwz''@;'; + put 'put ''MjkwNSwzNDQyNSwyNDMxOSwyNjA4NSwyMDA4MywyMDgzNywyMjkxNCwyMzYxNSwzODg5NCwyMDIxOSwyMjkyMiwyNDUyNSwzNTQ2OSwyODY0MSwzMTE1MiwzMTA3NCwyMzUyNywzMzkwNSwyOTQ4MywyOTEwNSwyNDE4MCwyNDU2NSwyNTQ2NywyNTc1NCwyOTEyMywzMTg5NiwyMDAzNSwyNDMx''@;'; + put 'put ''NiwyMDA0MywyMjQ5MiwyMjE3OCwyNDc0NSwyODYxMSwzMjAxMywzMzAyMSwzMzA3NSwzMzIxNSwzNjc4NiwzNTIyMywzNDQ2OCwyNDA1MiwyNTIyNiwyNTc3MywzNTIwNywyNjQ4NywyNzg3NCwyNzk2NiwyOTc1MCwzMDc3MiwyMzExMCwzMjYyOSwzMzQ1MywzOTM0MCwyMDQ2NywyNDI1OSwy''@;'; + put 'put ''NTMwOSwyNTQ5MCwyNTk0MywyNjQ3OSwzMDQwMywyOTI2MCwzMjk3MiwzMjk1NCwzNjY0OSwzNzE5NywyMDQ5MywyMjUyMSwyMzE4NiwyNjc1NywyNjk5NSwyOTAyOCwyOTQzNywzNjAyMywyMjc3MCwzNjA2NCwzODUwNiwzNjg4OSwzNDY4NywzMTIwNCwzMDY5NSwzMzgzMywyMDI3MSwyMTA5''@;'; + put 'put ''MywyMTMzOCwyNTI5MywyNjU3NSwyNzg1MCwzMDMzMywzMTYzNiwzMTg5MywzMzMzNCwzNDE4MCwzNjg0MywyNjMzMywyODQ0OCwyOTE5MCwzMjI4MywzMzcwNywzOTM2MSw0MDYxNCwyMDk4OSwzMTY2NSwzMDgzNCwzMTY3MiwzMjkwMywzMTU2MCwyNzM2OCwyNDE2MSwzMjkwOCwzMDAzMywz''@;'; + put 'put ''MDA0OCwyMDg0MywzNzQ3NCwyODMwMCwzMDMzMCwzNzI3MSwzOTY1OCwyMDI0MCwzMjYyNCwyNTI0NCwzMTU2NywzODMwOSw0MDE2OSwyMjEzOCwyMjYxNywzNDUzMiwzODU4OCwyMDI3NiwyMTAyOCwyMTMyMiwyMTQ1MywyMTQ2NywyNDA3MCwyNTY0NCwyNjAwMSwyNjQ5NSwyNzcxMCwyNzcy''@;'; + put 'put ''NiwyOTI1NiwyOTM1OSwyOTY3NywzMDAzNiwzMjMyMSwzMzMyNCwzNDI4MSwzNjAwOSwzMTY4NCwzNzMxOCwyOTAzMywzODkzMCwzOTE1MSwyNTQwNSwyNjIxNywzMDA1OCwzMDQzNiwzMDkyOCwzNDExNSwzNDU0MiwyMTI5MCwyMTMyOSwyMTU0MiwyMjkxNSwyNDE5OSwyNDQ0NCwyNDc1NCwy''@;'; + put 'put ''NTE2MSwyNTIwOSwyNTI1OSwyNmUzLDI3NjA0LDI3ODUyLDMwMTMwLDMwMzgyLDMwODY1LDMxMTkyLDMyMjAzLDMyNjMxLDMyOTMzLDM0OTg3LDM1NTEzLDM2MDI3LDM2OTkxLDM4NzUwLDM5MTMxLDI3MTQ3LDMxODAwLDIwNjMzLDIzNjE0LDI0NDk0LDI2NTAzLDI3NjA4LDI5NzQ5LDMwNDcz''@;'; + put 'put ''LDMyNjU0LDQwNzYzLDI2NTcwLDMxMjU1LDIxMzA1LDMwMDkxLDM5NjYxLDI0NDIyLDMzMTgxLDMzNzc3LDMyOTIwLDI0MzgwLDI0NTE3LDMwMDUwLDMxNTU4LDM2OTI0LDI2NzI3LDIzMDE5LDIzMTk1LDMyMDE2LDMwMzM0LDM1NjI4LDIwNDY5LDI0NDI2LDI3MTYxLDI3NzAzLDI4NDE4LDI5''@;'; + put 'put ''OTIyLDMxMDgwLDM0OTIwLDM1NDEzLDM1OTYxLDI0Mjg3LDI1NTUxLDMwMTQ5LDMxMTg2LDMzNDk1LDM3NjcyLDM3NjE4LDMzOTQ4LDM0NTQxLDM5OTgxLDIxNjk3LDI0NDI4LDI1OTk2LDI3OTk2LDI4NjkzLDM2MDA3LDM2MDUxLDM4OTcxLDI1OTM1LDI5OTQyLDE5OTgxLDIwMTg0LDIyNDk2''@;'; + put 'put ''LDIyODI3LDIzMTQyLDIzNTAwLDIwOTA0LDI0MDY3LDI0MjIwLDI0NTk4LDI1MjA2LDI1OTc1LDI2MDIzLDI2MjIyLDI4MDE0LDI5MjM4LDMxNTI2LDMzMTA0LDMzMTc4LDMzNDMzLDM1Njc2LDM2ZTMsMzYwNzAsMzYyMTIsMzg0MjgsMzg0NjgsMjAzOTgsMjU3NzEsMjc0OTQsMzMzMTAsMzM4''@;'; + put 'put ''ODksMzQxNTQsMzcwOTYsMjM1NTMsMjY5NjMsMzkwODAsMzM5MTQsMzQxMzUsMjAyMzksMjExMDMsMjQ0ODksMjQxMzMsMjYzODEsMzExMTksMzMxNDUsMzUwNzksMzUyMDYsMjgxNDksMjQzNDMsMjUxNzMsMjc4MzIsMjAxNzUsMjkyODksMzk4MjYsMjA5OTgsMjE1NjMsMjIxMzIsMjI3MDcs''@;'; + put 'put ''MjQ5OTYsMjUxOTgsMjg5NTQsMjI4OTQsMzE4ODEsMzE5NjYsMzIwMjcsMzg2NDAsMjU5OTEsMzI4NjIsMTk5OTMsMjAzNDEsMjA4NTMsMjI1OTIsMjQxNjMsMjQxNzksMjQzMzAsMjY1NjQsMjAwMDYsMzQxMDksMzgyODEsMzg0OTEsMzE4NTksMzg5MTMsMjA3MzEsMjI3MjEsMzAyOTQsMzA4''@;'; + put 'put ''ODcsMjEwMjksMzA2MjksMzQwNjUsMzE2MjIsMjA1NTksMjI3OTMsMjkyNTUsMzE2ODcsMzIyMzIsMzY3OTQsMzY4MjAsMzY5NDEsMjA0MTUsMjExOTMsMjMwODEsMjQzMjEsMzg4MjksMjA0NDUsMzMzMDMsMzc2MTAsMjIyNzUsMjU0MjksMjc0OTcsMjk5OTUsMzUwMzYsMzY2MjgsMzEyOTgs''@;'; + put 'put ''MjEyMTUsMjI2NzUsMjQ5MTcsMjUwOTgsMjYyODYsMjc1OTcsMzE4MDcsMzM3NjksMjA1MTUsMjA0NzIsMjEyNTMsMjE1NzQsMjI1NzcsMjI4NTcsMjM0NTMsMjM3OTIsMjM3OTEsMjM4NDksMjQyMTQsMjUyNjUsMjU0NDcsMjU5MTgsMjYwNDEsMjYzNzksMjc4NjEsMjc4NzMsMjg5MjEsMzA3''@;'; + put 'put ''NzAsMzIyOTksMzI5OTAsMzM0NTksMzM4MDQsMzQwMjgsMzQ1NjIsMzUwOTAsMzUzNzAsMzU5MTQsMzcwMzAsMzc1ODYsMzkxNjUsNDAxNzksNDAzMDAsMjAwNDcsMjAxMjksMjA2MjEsMjEwNzgsMjIzNDYsMjI5NTIsMjQxMjUsMjQ1MzYsMjQ1MzcsMjUxNTEsMjYyOTIsMjYzOTUsMjY1NzYs''@;'; + put 'put ''MjY4MzQsMjA4ODIsMzIwMzMsMzI5MzgsMzMxOTIsMzU1ODQsMzU5ODAsMzYwMzEsMzc1MDIsMzg0NTAsMjE1MzYsMzg5NTYsMjEyNzEsMjA2OTMsMjEzNDAsMjI2OTYsMjU3NzgsMjY0MjAsMjkyODcsMzA1NjYsMzEzMDIsMzczNTAsMjExODcsMjc4MDksMjc1MjYsMjI1MjgsMjQxNDAsMjI4''@;'; + put 'put ''NjgsMjY0MTIsMzI3NjMsMjA5NjEsMzA0MDYsMjU3MDUsMzA5NTIsMzk3NjQsNDA2MzUsMjI0NzUsMjI5NjksMjYxNTEsMjY1MjIsMjc1OTgsMjE3MzcsMjcwOTcsMjQxNDksMzMxODAsMjY1MTcsMzk4NTAsMjY2MjIsNDAwMTgsMjY3MTcsMjAxMzQsMjA0NTEsMjE0NDgsMjUyNzMsMjY0MTEs''@;'; + put 'put ''Mjc4MTksMzY4MDQsMjAzOTcsMzIzNjUsNDA2MzksMTk5NzUsMjQ5MzAsMjgyODgsMjg0NTksMzQwNjcsMjE2MTksMjY0MTAsMzk3NDksMjQwNTEsMzE2MzcsMjM3MjQsMjM0OTQsMzQ1ODgsMjgyMzQsMzQwMDEsMzEyNTIsMzMwMzIsMjI5MzcsMzE4ODUsMjc2NjUsMzA0OTYsMjEyMDksMjI4''@;'; + put 'put ''MTgsMjg5NjEsMjkyNzksMzA2ODMsMzg2OTUsNDAyODksMjY4OTEsMjMxNjcsMjMwNjQsMjA5MDEsMjE1MTcsMjE2MjksMjYxMjYsMzA0MzEsMzY4NTUsMzc1MjgsNDAxODAsMjMwMTgsMjkyNzcsMjgzNTcsMjA4MTMsMjY4MjUsMzIxOTEsMzIyMzYsMzg3NTQsNDA2MzQsMjU3MjAsMjcxNjks''@;'; + put 'put ''MzM1MzgsMjI5MTYsMjMzOTEsMjc2MTEsMjk0NjcsMzA0NTAsMzIxNzgsMzI3OTEsMzM5NDUsMjA3ODYsMjY0MDgsNDA2NjUsMzA0NDYsMjY0NjYsMjEyNDcsMzkxNzMsMjM1ODgsMjUxNDcsMzE4NzAsMzYwMTYsMjE4MzksMjQ3NTgsMzIwMTEsMzgyNzIsMjEyNDksMjAwNjMsMjA5MTgsMjI4''@;'; + put 'put ''MTIsMjkyNDIsMzI4MjIsMzczMjYsMjQzNTcsMzA2OTAsMjEzODAsMjQ0NDEsMzIwMDQsMzQyMjAsMzUzNzksMzY0OTMsMzg3NDIsMjY2MTEsMzQyMjIsMzc5NzEsMjQ4NDEsMjQ4NDAsMjc4MzMsMzAyOTAsMzU1NjUsMzY2NjQsMjE4MDcsMjAzMDUsMjA3NzgsMjExOTEsMjE0NTEsMjM0NjEs''@;'; + put 'put ''MjQxODksMjQ3MzYsMjQ5NjIsMjU1NTgsMjYzNzcsMjY1ODYsMjgyNjMsMjgwNDQsMjk0OTQsMjk0OTUsMzAwMDEsMzEwNTYsMzUwMjksMzU0ODAsMzY5MzgsMzcwMDksMzcxMDksMzg1OTYsMzQ3MDEsMjI4MDUsMjAxMDQsMjAzMTMsMTk5ODIsMzU0NjUsMzY2NzEsMzg5MjgsMjA2NTMsMjQx''@;'; + put 'put ''ODgsMjI5MzQsMjM0ODEsMjQyNDgsMjU1NjIsMjU1OTQsMjU3OTMsMjYzMzIsMjY5NTQsMjcwOTYsMjc5MTUsMjgzNDIsMjkwNzYsMjk5OTIsMzE0MDcsMzI2NTAsMzI3NjgsMzM4NjUsMzM5OTMsMzUyMDEsMzU2MTcsMzYzNjIsMzY5NjUsMzg1MjUsMzkxNzgsMjQ5NTgsMjUyMzMsMjc0NDIs''@;'; + put 'put ''Mjc3NzksMjgwMjAsMzI3MTYsMzI3NjQsMjgwOTYsMzI2NDUsMzQ3NDYsMzUwNjQsMjY0NjksMzM3MTMsMzg5NzIsMzg2NDcsMjc5MzEsMzIwOTcsMzM4NTMsMzcyMjYsMjAwODEsMjEzNjUsMjM4ODgsMjczOTYsMjg2NTEsMzQyNTMsMzQzNDksMzUyMzksMjEwMzMsMjE1MTksMjM2NTMsMjY0''@;'; + put 'put ''NDYsMjY3OTIsMjk3MDIsMjk4MjcsMzAxNzgsMzUwMjMsMzUwNDEsMzczMjQsMzg2MjYsMzg1MjAsMjQ0NTksMjk1NzUsMzE0MzUsMzM4NzAsMjU1MDQsMzAwNTMsMjExMjksMjc5NjksMjgzMTYsMjk3MDUsMzAwNDEsMzA4MjcsMzE4OTAsMzg1MzQsMzE0NTIsNDA4NDUsMjA0MDYsMjQ5NDIs''@;'; + put 'put ''MjYwNTMsMzQzOTYsMjAxMDIsMjAxNDIsMjA2OTgsMjAwMDEsMjA5NDAsMjM1MzQsMjYwMDksMjY3NTMsMjgwOTIsMjk0NzEsMzAyNzQsMzA2MzcsMzEyNjAsMzE5NzUsMzMzOTEsMzU1MzgsMzY5ODgsMzczMjcsMzg1MTcsMzg5MzYsMjExNDcsMzIyMDksMjA1MjMsMjE0MDAsMjY1MTksMjgx''@;'; + put 'put ''MDcsMjkxMzYsMjk3NDcsMzMyNTYsMzY2NTAsMzg1NjMsNDAwMjMsNDA2MDcsMjk3OTIsMjI1OTMsMjgwNTcsMzIwNDcsMzkwMDYsMjAxOTYsMjAyNzgsMjAzNjMsMjA5MTksMjExNjksMjM5OTQsMjQ2MDQsMjk2MTgsMzEwMzYsMzM0OTEsMzc0MjgsMzg1ODMsMzg2NDYsMzg2NjYsNDA1OTks''@;'; + put 'put ''NDA4MDIsMjYyNzgsMjc1MDgsMjEwMTUsMjExNTUsMjg4NzIsMzUwMTAsMjQyNjUsMjQ2NTEsMjQ5NzYsMjg0NTEsMjkwMDEsMzE4MDYsMzIyNDQsMzI4NzksMzQwMzAsMzY4OTksMzc2NzYsMjE1NzAsMzk3OTEsMjczNDcsMjg4MDksMzYwMzQsMzYzMzUsMzg3MDYsMjExNzIsMjMxMDUsMjQy''@;'; + put 'put ''NjYsMjQzMjQsMjYzOTEsMjcwMDQsMjcwMjgsMjgwMTAsMjg0MzEsMjkyODIsMjk0MzYsMzE3MjUsMzI3NjksMzI4OTQsMzQ2MzUsMzcwNzAsMjA4NDUsNDA1OTUsMzExMDgsMzI5MDcsMzc2ODIsMzU1NDIsMjA1MjUsMjE2NDQsMzU0NDEsMjc0OTgsMzYwMzYsMzMwMzEsMjQ3ODUsMjY1Mjgs''@;'; + put 'put ''NDA0MzQsMjAxMjEsMjAxMjAsMzk5NTIsMzU0MzUsMzQyNDEsMzQxNTIsMjY4ODAsMjgyODYsMzA4NzEsMzMxMDksbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; + put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwyNDMzMiwxOTk4NCwxOTk4OSwyMDAxMCwyMDAxNywyMDAyMiwyMDAyOCwyMDAzMSwy''@;'; + put 'put ''MDAzNCwyMDA1NCwyMDA1NiwyMDA5OCwyMDEwMSwzNTk0NywyMDEwNiwzMzI5OCwyNDMzMywyMDExMCwyMDEyNiwyMDEyNywyMDEyOCwyMDEzMCwyMDE0NCwyMDE0NywyMDE1MCwyMDE3NCwyMDE3MywyMDE2NCwyMDE2NiwyMDE2MiwyMDE4MywyMDE5MCwyMDIwNSwyMDE5MSwyMDIxNSwyMDIz''@;'; + put 'put ''MywyMDMxNCwyMDI3MiwyMDMxNSwyMDMxNywyMDMxMSwyMDI5NSwyMDM0MiwyMDM2MCwyMDM2NywyMDM3NiwyMDM0NywyMDMyOSwyMDMzNiwyMDM2OSwyMDMzNSwyMDM1OCwyMDM3NCwyMDc2MCwyMDQzNiwyMDQ0NywyMDQzMCwyMDQ0MCwyMDQ0MywyMDQzMywyMDQ0MiwyMDQzMiwyMDQ1Miwy''@;'; + put 'put ''MDQ1MywyMDUwNiwyMDUyMCwyMDUwMCwyMDUyMiwyMDUxNywyMDQ4NSwyMDI1MiwyMDQ3MCwyMDUxMywyMDUyMSwyMDUyNCwyMDQ3OCwyMDQ2MywyMDQ5NywyMDQ4NiwyMDU0NywyMDU1MSwyNjM3MSwyMDU2NSwyMDU2MCwyMDU1MiwyMDU3MCwyMDU2NiwyMDU4OCwyMDYwMCwyMDYwOCwyMDYz''@;'; + put 'put ''NCwyMDYxMywyMDY2MCwyMDY1OCwyMDY4MSwyMDY4MiwyMDY1OSwyMDY3NCwyMDY5NCwyMDcwMiwyMDcwOSwyMDcxNywyMDcwNywyMDcxOCwyMDcyOSwyMDcyNSwyMDc0NSwyMDczNywyMDczOCwyMDc1OCwyMDc1NywyMDc1NiwyMDc2MiwyMDc2OSwyMDc5NCwyMDc5MSwyMDc5NiwyMDc5NSwy''@;'; + put 'put ''MDc5OSwyMDgwMCwyMDgxOCwyMDgxMiwyMDgyMCwyMDgzNCwzMTQ4MCwyMDg0MSwyMDg0MiwyMDg0NiwyMDg2NCwyMDg2NiwyMjIzMiwyMDg3NiwyMDg3MywyMDg3OSwyMDg4MSwyMDg4MywyMDg4NSwyMDg4NiwyMDkwMCwyMDkwMiwyMDg5OCwyMDkwNSwyMDkwNiwyMDkwNywyMDkxNSwyMDkx''@;'; + put 'put ''MywyMDkxNCwyMDkxMiwyMDkxNywyMDkyNSwyMDkzMywyMDkzNywyMDk1NSwyMDk2MCwzNDM4OSwyMDk2OSwyMDk3MywyMDk3NiwyMDk4MSwyMDk5MCwyMDk5NiwyMTAwMywyMTAxMiwyMTAwNiwyMTAzMSwyMTAzNCwyMTAzOCwyMTA0MywyMTA0OSwyMTA3MSwyMTA2MCwyMTA2NywyMTA2OCwy''@;'; + put 'put ''MTA4NiwyMTA3NiwyMTA5OCwyMTEwOCwyMTA5NywyMTEwNywyMTExOSwyMTExNywyMTEzMywyMTE0MCwyMTEzOCwyMTEwNSwyMTEyOCwyMTEzNywzNjc3NiwzNjc3NSwyMTE2NCwyMTE2NSwyMTE4MCwyMTE3MywyMTE4NSwyMTE5NywyMTIwNywyMTIxNCwyMTIxOSwyMTIyMiwzOTE0OSwyMTIx''@;'; + put 'put ''NiwyMTIzNSwyMTIzNywyMTI0MCwyMTI0MSwyMTI1NCwyMTI1NiwzMDAwOCwyMTI2MSwyMTI2NCwyMTI2MywyMTI2OSwyMTI3NCwyMTI4MywyMTI5NSwyMTI5NywyMTI5OSwyMTMwNCwyMTMxMiwyMTMxOCwyMTMxNywxOTk5MSwyMTMyMSwyMTMyNSwyMDk1MCwyMTM0MiwyMTM1MywyMTM1OCwy''@;'; + put 'put ''MjgwOCwyMTM3MSwyMTM2NywyMTM3OCwyMTM5OCwyMTQwOCwyMTQxNCwyMTQxMywyMTQyMiwyMTQyNCwyMTQzMCwyMTQ0MywzMTc2MiwzODYxNywyMTQ3MSwyNjM2NCwyOTE2NiwyMTQ4NiwyMTQ4MCwyMTQ4NSwyMTQ5OCwyMTUwNSwyMTU2NSwyMTU2OCwyMTU0OCwyMTU0OSwyMTU2NCwyMTU1''@;'; + put 'put ''MCwyMTU1OCwyMTU0NSwyMTUzMywyMTU4MiwyMTY0NywyMTYyMSwyMTY0NiwyMTU5OSwyMTYxNywyMTYyMywyMTYxNiwyMTY1MCwyMTYyNywyMTYzMiwyMTYyMiwyMTYzNiwyMTY0OCwyMTYzOCwyMTcwMywyMTY2NiwyMTY4OCwyMTY2OSwyMTY3NiwyMTcwMCwyMTcwNCwyMTY3MiwyMTY3NSwy''@;'; + put 'put ''MTY5OCwyMTY2OCwyMTY5NCwyMTY5MiwyMTcyMCwyMTczMywyMTczNCwyMTc3NSwyMTc4MCwyMTc1NywyMTc0MiwyMTc0MSwyMTc1NCwyMTczMCwyMTgxNywyMTgyNCwyMTg1OSwyMTgzNiwyMTgwNiwyMTg1MiwyMTgyOSwyMTg0NiwyMTg0NywyMTgxNiwyMTgxMSwyMTg1MywyMTkxMywyMTg4''@;'; + put 'put ''OCwyMTY3OSwyMTg5OCwyMTkxOSwyMTg4MywyMTg4NiwyMTkxMiwyMTkxOCwyMTkzNCwyMTg4NCwyMTg5MSwyMTkyOSwyMTg5NSwyMTkyOCwyMTk3OCwyMTk1NywyMTk4MywyMTk1NiwyMTk4MCwyMTk4OCwyMTk3MiwyMjAzNiwyMjAwNywyMjAzOCwyMjAxNCwyMjAxMywyMjA0MywyMjAwOSwy''@;'; + put 'put ''MjA5NCwyMjA5NiwyOTE1MSwyMjA2OCwyMjA3MCwyMjA2NiwyMjA3MiwyMjEyMywyMjExNiwyMjA2MywyMjEyNCwyMjEyMiwyMjE1MCwyMjE0NCwyMjE1NCwyMjE3NiwyMjE2NCwyMjE1OSwyMjE4MSwyMjE5MCwyMjE5OCwyMjE5NiwyMjIxMCwyMjIwNCwyMjIwOSwyMjIxMSwyMjIwOCwyMjIx''@;'; + put 'put ''NiwyMjIyMiwyMjIyNSwyMjIyNywyMjIzMSwyMjI1NCwyMjI2NSwyMjI3MiwyMjI3MSwyMjI3NiwyMjI4MSwyMjI4MCwyMjI4MywyMjI4NSwyMjI5MSwyMjI5NiwyMjI5NCwyMTk1OSwyMjMwMCwyMjMxMCwyMjMyNywyMjMyOCwyMjM1MCwyMjMzMSwyMjMzNiwyMjM1MSwyMjM3NywyMjQ2NCwy''@;'; + put 'put ''MjQwOCwyMjM2OSwyMjM5OSwyMjQwOSwyMjQxOSwyMjQzMiwyMjQ1MSwyMjQzNiwyMjQ0MiwyMjQ0OCwyMjQ2NywyMjQ3MCwyMjQ4NCwyMjQ4MiwyMjQ4MywyMjUzOCwyMjQ4NiwyMjQ5OSwyMjUzOSwyMjU1MywyMjU1NywyMjY0MiwyMjU2MSwyMjYyNiwyMjYwMywyMjY0MCwyNzU4NCwyMjYx''@;'; + put 'put ''MCwyMjU4OSwyMjY0OSwyMjY2MSwyMjcxMywyMjY4NywyMjY5OSwyMjcxNCwyMjc1MCwyMjcxNSwyMjcxMiwyMjcwMiwyMjcyNSwyMjczOSwyMjczNywyMjc0MywyMjc0NSwyMjc0NCwyMjc1NywyMjc0OCwyMjc1NiwyMjc1MSwyMjc2NywyMjc3OCwyMjc3NywyMjc3OSwyMjc4MCwyMjc4MSwy''@;'; + put 'put ''Mjc4NiwyMjc5NCwyMjgwMCwyMjgxMSwyNjc5MCwyMjgyMSwyMjgyOCwyMjgyOSwyMjgzNCwyMjg0MCwyMjg0NiwzMTQ0MiwyMjg2OSwyMjg2NCwyMjg2MiwyMjg3NCwyMjg3MiwyMjg4MiwyMjg4MCwyMjg4NywyMjg5MiwyMjg4OSwyMjkwNCwyMjkxMywyMjk0MSwyMDMxOCwyMDM5NSwyMjk0''@;'; + put 'put ''NywyMjk2MiwyMjk4MiwyMzAxNiwyMzAwNCwyMjkyNSwyMzAwMSwyMzAwMiwyMzA3NywyMzA3MSwyMzA1NywyMzA2OCwyMzA0OSwyMzA2NiwyMzEwNCwyMzE0OCwyMzExMywyMzA5MywyMzA5NCwyMzEzOCwyMzE0NiwyMzE5NCwyMzIyOCwyMzIzMCwyMzI0MywyMzIzNCwyMzIyOSwyMzI2Nywy''@;'; + put 'put ''MzI1NSwyMzI3MCwyMzI3MywyMzI1NCwyMzI5MCwyMzI5MSwyMzMwOCwyMzMwNywyMzMxOCwyMzM0NiwyMzI0OCwyMzMzOCwyMzM1MCwyMzM1OCwyMzM2MywyMzM2NSwyMzM2MCwyMzM3NywyMzM4MSwyMzM4NiwyMzM4NywyMzM5NywyMzQwMSwyMzQwOCwyMzQxMSwyMzQxMywyMzQxNiwyNTk5''@;'; + put 'put ''MiwyMzQxOCwyMzQyNCwyMzQyNywyMzQ2MiwyMzQ4MCwyMzQ5MSwyMzQ5NSwyMzQ5NywyMzUwOCwyMzUwNCwyMzUyNCwyMzUyNiwyMzUyMiwyMzUxOCwyMzUyNSwyMzUzMSwyMzUzNiwyMzU0MiwyMzUzOSwyMzU1NywyMzU1OSwyMzU2MCwyMzU2NSwyMzU3MSwyMzU4NCwyMzU4NiwyMzU5Miwy''@;'; + put 'put ''MzYwOCwyMzYwOSwyMzYxNywyMzYyMiwyMzYzMCwyMzYzNSwyMzYzMiwyMzYzMSwyMzQwOSwyMzY2MCwyMzY2MiwyMDA2NiwyMzY3MCwyMzY3MywyMzY5MiwyMzY5NywyMzcwMCwyMjkzOSwyMzcyMywyMzczOSwyMzczNCwyMzc0MCwyMzczNSwyMzc0OSwyMzc0MiwyMzc1MSwyMzc2OSwyMzc4''@;'; + put 'put ''NSwyMzgwNSwyMzgwMiwyMzc4OSwyMzk0OCwyMzc4NiwyMzgxOSwyMzgyOSwyMzgzMSwyMzkwMCwyMzgzOSwyMzgzNSwyMzgyNSwyMzgyOCwyMzg0MiwyMzgzNCwyMzgzMywyMzgzMiwyMzg4NCwyMzg5MCwyMzg4NiwyMzg4MywyMzkxNiwyMzkyMywyMzkyNiwyMzk0MywyMzk0MCwyMzkzOCwy''@;'; + put 'put ''Mzk3MCwyMzk2NSwyMzk4MCwyMzk4MiwyMzk5NywyMzk1MiwyMzk5MSwyMzk5NiwyNDAwOSwyNDAxMywyNDAxOSwyNDAxOCwyNDAyMiwyNDAyNywyNDA0MywyNDA1MCwyNDA1MywyNDA3NSwyNDA5MCwyNDA4OSwyNDA4MSwyNDA5MSwyNDExOCwyNDExOSwyNDEzMiwyNDEzMSwyNDEyOCwyNDE0''@;'; + put 'put ''MiwyNDE1MSwyNDE0OCwyNDE1OSwyNDE2MiwyNDE2NCwyNDEzNSwyNDE4MSwyNDE4MiwyNDE4Niw0MDYzNiwyNDE5MSwyNDIyNCwyNDI1NywyNDI1OCwyNDI2NCwyNDI3MiwyNDI3MSwyNDI3OCwyNDI5MSwyNDI4NSwyNDI4MiwyNDI4MywyNDI5MCwyNDI4OSwyNDI5NiwyNDI5NywyNDMwMCwy''@;'; + put 'put ''NDMwNSwyNDMwNywyNDMwNCwyNDMwOCwyNDMxMiwyNDMxOCwyNDMyMywyNDMyOSwyNDQxMywyNDQxMiwyNDMzMSwyNDMzNywyNDM0MiwyNDM2MSwyNDM2NSwyNDM3NiwyNDM4NSwyNDM5MiwyNDM5NiwyNDM5OCwyNDM2NywyNDQwMSwyNDQwNiwyNDQwNywyNDQwOSwyNDQxNywyNDQyOSwyNDQz''@;'; + put 'put ''NSwyNDQzOSwyNDQ1MSwyNDQ1MCwyNDQ0NywyNDQ1OCwyNDQ1NiwyNDQ2NSwyNDQ1NSwyNDQ3OCwyNDQ3MywyNDQ3MiwyNDQ4MCwyNDQ4OCwyNDQ5MywyNDUwOCwyNDUzNCwyNDU3MSwyNDU0OCwyNDU2OCwyNDU2MSwyNDU0MSwyNDc1NSwyNDU3NSwyNDYwOSwyNDY3MiwyNDYwMSwyNDU5Miwy''@;'; + put 'put ''NDYxNywyNDU5MCwyNDYyNSwyNDYwMywyNDU5NywyNDYxOSwyNDYxNCwyNDU5MSwyNDYzNCwyNDY2NiwyNDY0MSwyNDY4MiwyNDY5NSwyNDY3MSwyNDY1MCwyNDY0NiwyNDY1MywyNDY3NSwyNDY0MywyNDY3NiwyNDY0MiwyNDY4NCwyNDY4MywyNDY2NSwyNDcwNSwyNDcxNywyNDgwNywyNDcw''@;'; + put 'put ''NywyNDczMCwyNDcwOCwyNDczMSwyNDcyNiwyNDcyNywyNDcyMiwyNDc0MywyNDcxNSwyNDgwMSwyNDc2MCwyNDgwMCwyNDc4NywyNDc1NiwyNDU2MCwyNDc2NSwyNDc3NCwyNDc1NywyNDc5MiwyNDkwOSwyNDg1MywyNDgzOCwyNDgyMiwyNDgyMywyNDgzMiwyNDgyMCwyNDgyNiwyNDgzNSwy''@;'; + put 'put ''NDg2NSwyNDgyNywyNDgxNywyNDg0NSwyNDg0NiwyNDkwMywyNDg5NCwyNDg3MiwyNDg3MSwyNDkwNiwyNDg5NSwyNDg5MiwyNDg3NiwyNDg4NCwyNDg5MywyNDg5OCwyNDkwMCwyNDk0NywyNDk1MSwyNDkyMCwyNDkyMSwyNDkyMiwyNDkzOSwyNDk0OCwyNDk0MywyNDkzMywyNDk0NSwyNDky''@;'; + put 'put ''NywyNDkyNSwyNDkxNSwyNDk0OSwyNDk4NSwyNDk4MiwyNDk2NywyNTAwNCwyNDk4MCwyNDk4NiwyNDk3MCwyNDk3NywyNTAwMywyNTAwNiwyNTAzNiwyNTAzNCwyNTAzMywyNTA3OSwyNTAzMiwyNTAyNywyNTAzMCwyNTAxOCwyNTAzNSwzMjYzMywyNTAzNywyNTA2MiwyNTA1OSwyNTA3OCwy''@;'; + put 'put ''NTA4MiwyNTA3NiwyNTA4NywyNTA4NSwyNTA4NCwyNTA4NiwyNTA4OCwyNTA5NiwyNTA5NywyNTEwMSwyNTEwMCwyNTEwOCwyNTExNSwyNTExOCwyNTEyMSwyNTEzMCwyNTEzNCwyNTEzNiwyNTEzOCwyNTEzOSwyNTE1MywyNTE2NiwyNTE4MiwyNTE4NywyNTE3OSwyNTE4NCwyNTE5MiwyNTIx''@;'; + put 'put ''MiwyNTIxOCwyNTIyNSwyNTIxNCwyNTIzNCwyNTIzNSwyNTIzOCwyNTMwMCwyNTIxOSwyNTIzNiwyNTMwMywyNTI5NywyNTI3NSwyNTI5NSwyNTM0MywyNTI4NiwyNTgxMiwyNTI4OCwyNTMwOCwyNTI5MiwyNTI5MCwyNTI4MiwyNTI4NywyNTI0MywyNTI4OSwyNTM1NiwyNTMyNiwyNTMyOSwy''@;'; + put 'put ''NTM4MywyNTM0NiwyNTM1MiwyNTMyNywyNTMzMywyNTQyNCwyNTQwNiwyNTQyMSwyNTYyOCwyNTQyMywyNTQ5NCwyNTQ4NiwyNTQ3MiwyNTUxNSwyNTQ2MiwyNTUwNywyNTQ4NywyNTQ4MSwyNTUwMywyNTUyNSwyNTQ1MSwyNTQ0OSwyNTUzNCwyNTU3NywyNTUzNiwyNTU0MiwyNTU3MSwyNTU0''@;'; + put 'put ''NSwyNTU1NCwyNTU5MCwyNTU0MCwyNTYyMiwyNTY1MiwyNTYwNiwyNTYxOSwyNTYzOCwyNTY1NCwyNTg4NSwyNTYyMywyNTY0MCwyNTYxNSwyNTcwMywyNTcxMSwyNTcxOCwyNTY3OCwyNTg5OCwyNTc0OSwyNTc0NywyNTc2NSwyNTc2OSwyNTczNiwyNTc4OCwyNTgxOCwyNTgxMCwyNTc5Nywy''@;'; + put 'put ''NTc5OSwyNTc4NywyNTgxNiwyNTc5NCwyNTg0MSwyNTgzMSwzMzI4OSwyNTgyNCwyNTgyNSwyNTI2MCwyNTgyNywyNTgzOSwyNTkwMCwyNTg0NiwyNTg0NCwyNTg0MiwyNTg1MCwyNTg1NiwyNTg1MywyNTg4MCwyNTg4NCwyNTg2MSwyNTg5MiwyNTg5MSwyNTg5OSwyNTkwOCwyNTkwOSwyNTkx''@;'; + put 'put ''MSwyNTkxMCwyNTkxMiwzMDAyNywyNTkyOCwyNTk0MiwyNTk0MSwyNTkzMywyNTk0NCwyNTk1MCwyNTk0OSwyNTk3MCwyNTk3NiwyNTk4NiwyNTk4NywzNTcyMiwyNjAxMSwyNjAxNSwyNjAyNywyNjAzOSwyNjA1MSwyNjA1NCwyNjA0OSwyNjA1MiwyNjA2MCwyNjA2NiwyNjA3NSwyNjA3Mywy''@;'; + put 'put ''NjA4MCwyNjA4MSwyNjA5NywyNjQ4MiwyNjEyMiwyNjExNSwyNjEwNywyNjQ4MywyNjE2NSwyNjE2NiwyNjE2NCwyNjE0MCwyNjE5MSwyNjE4MCwyNjE4NSwyNjE3NywyNjIwNiwyNjIwNSwyNjIxMiwyNjIxNSwyNjIxNiwyNjIwNywyNjIxMCwyNjIyNCwyNjI0MywyNjI0OCwyNjI1NCwyNjI0''@;'; + put 'put ''OSwyNjI0NCwyNjI2NCwyNjI2OSwyNjMwNSwyNjI5NywyNjMxMywyNjMwMiwyNjMwMCwyNjMwOCwyNjI5NiwyNjMyNiwyNjMzMCwyNjMzNiwyNjE3NSwyNjM0MiwyNjM0NSwyNjM1MiwyNjM1NywyNjM1OSwyNjM4MywyNjM5MCwyNjM5OCwyNjQwNiwyNjQwNywzODcxMiwyNjQxNCwyNjQzMSwy''@;'; + put 'put ''NjQyMiwyNjQzMywyNjQyNCwyNjQyMywyNjQzOCwyNjQ2MiwyNjQ2NCwyNjQ1NywyNjQ2NywyNjQ2OCwyNjUwNSwyNjQ4MCwyNjUzNywyNjQ5MiwyNjQ3NCwyNjUwOCwyNjUwNywyNjUzNCwyNjUyOSwyNjUwMSwyNjU1MSwyNjYwNywyNjU0OCwyNjYwNCwyNjU0NywyNjYwMSwyNjU1MiwyNjU5''@;'; + put 'put ''NiwyNjU5MCwyNjU4OSwyNjU5NCwyNjYwNiwyNjU1MywyNjU3NCwyNjU2NiwyNjU5OSwyNzI5MiwyNjY1NCwyNjY5NCwyNjY2NSwyNjY4OCwyNjcwMSwyNjY3NCwyNjcwMiwyNjgwMywyNjY2NywyNjcxMywyNjcyMywyNjc0MywyNjc1MSwyNjc4MywyNjc2NywyNjc5NywyNjc3MiwyNjc4MSwy''@;'; + put 'put ''Njc3OSwyNjc1NSwyNzMxMCwyNjgwOSwyNjc0MCwyNjgwNSwyNjc4NCwyNjgxMCwyNjg5NSwyNjc2NSwyNjc1MCwyNjg4MSwyNjgyNiwyNjg4OCwyNjg0MCwyNjkxNCwyNjkxOCwyNjg0OSwyNjg5MiwyNjgyOSwyNjgzNiwyNjg1NSwyNjgzNywyNjkzNCwyNjg5OCwyNjg4NCwyNjgzOSwyNjg1''@;'; + put 'put ''MSwyNjkxNywyNjg3MywyNjg0OCwyNjg2MywyNjkyMCwyNjkyMiwyNjkwNiwyNjkxNSwyNjkxMywyNjgyMiwyNzAwMSwyNjk5OSwyNjk3MiwyN2UzLDI2OTg3LDI2OTY0LDI3MDA2LDI2OTkwLDI2OTM3LDI2OTk2LDI2OTQxLDI2OTY5LDI2OTI4LDI2OTc3LDI2OTc0LDI2OTczLDI3MDA5LDI2''@;'; + put 'put ''OTg2LDI3MDU4LDI3MDU0LDI3MDg4LDI3MDcxLDI3MDczLDI3MDkxLDI3MDcwLDI3MDg2LDIzNTI4LDI3MDgyLDI3MTAxLDI3MDY3LDI3MDc1LDI3MDQ3LDI3MTgyLDI3MDI1LDI3MDQwLDI3MDM2LDI3MDI5LDI3MDYwLDI3MTAyLDI3MTEyLDI3MTM4LDI3MTYzLDI3MTM1LDI3NDAyLDI3MTI5''@;'; + put 'put ''LDI3MTIyLDI3MTExLDI3MTQxLDI3MDU3LDI3MTY2LDI3MTE3LDI3MTU2LDI3MTE1LDI3MTQ2LDI3MTU0LDI3MzI5LDI3MTcxLDI3MTU1LDI3MjA0LDI3MTQ4LDI3MjUwLDI3MTkwLDI3MjU2LDI3MjA3LDI3MjM0LDI3MjI1LDI3MjM4LDI3MjA4LDI3MTkyLDI3MTcwLDI3MjgwLDI3Mjc3LDI3''@;'; + put 'put ''Mjk2LDI3MjY4LDI3Mjk4LDI3Mjk5LDI3Mjg3LDM0MzI3LDI3MzIzLDI3MzMxLDI3MzMwLDI3MzIwLDI3MzE1LDI3MzA4LDI3MzU4LDI3MzQ1LDI3MzU5LDI3MzA2LDI3MzU0LDI3MzcwLDI3Mzg3LDI3Mzk3LDM0MzI2LDI3Mzg2LDI3NDEwLDI3NDE0LDM5NzI5LDI3NDIzLDI3NDQ4LDI3NDQ3''@;'; + put 'put ''LDMwNDI4LDI3NDQ5LDM5MTUwLDI3NDYzLDI3NDU5LDI3NDY1LDI3NDcyLDI3NDgxLDI3NDc2LDI3NDgzLDI3NDg3LDI3NDg5LDI3NTEyLDI3NTEzLDI3NTE5LDI3NTIwLDI3NTI0LDI3NTIzLDI3NTMzLDI3NTQ0LDI3NTQxLDI3NTUwLDI3NTU2LDI3NTYyLDI3NTYzLDI3NTY3LDI3NTcwLDI3''@;'; + put 'put ''NTY5LDI3NTcxLDI3NTc1LDI3NTgwLDI3NTkwLDI3NTk1LDI3NjAzLDI3NjE1LDI3NjI4LDI3NjI3LDI3NjM1LDI3NjMxLDQwNjM4LDI3NjU2LDI3NjY3LDI3NjY4LDI3Njc1LDI3Njg0LDI3NjgzLDI3NzQyLDI3NzMzLDI3NzQ2LDI3NzU0LDI3Nzc4LDI3Nzg5LDI3ODAyLDI3Nzc3LDI3ODAz''@;'; + put 'put ''LDI3Nzc0LDI3NzUyLDI3NzYzLDI3Nzk0LDI3NzkyLDI3ODQ0LDI3ODg5LDI3ODU5LDI3ODM3LDI3ODYzLDI3ODQ1LDI3ODY5LDI3ODIyLDI3ODI1LDI3ODM4LDI3ODM0LDI3ODY3LDI3ODg3LDI3ODY1LDI3ODgyLDI3OTM1LDM0ODkzLDI3OTU4LDI3OTQ3LDI3OTY1LDI3OTYwLDI3OTI5LDI3''@;'; + put 'put ''OTU3LDI3OTU1LDI3OTIyLDI3OTE2LDI4MDAzLDI4MDUxLDI4MDA0LDI3OTk0LDI4MDI1LDI3OTkzLDI4MDQ2LDI4MDUzLDI4NjQ0LDI4MDM3LDI4MTUzLDI4MTgxLDI4MTcwLDI4MDg1LDI4MTAzLDI4MTM0LDI4MDg4LDI4MTAyLDI4MTQwLDI4MTI2LDI4MTA4LDI4MTM2LDI4MTE0LDI4MTAx''@;'; + put 'put ''LDI4MTU0LDI4MTIxLDI4MTMyLDI4MTE3LDI4MTM4LDI4MTQyLDI4MjA1LDI4MjcwLDI4MjA2LDI4MTg1LDI4Mjc0LDI4MjU1LDI4MjIyLDI4MTk1LDI4MjY3LDI4MjAzLDI4Mjc4LDI4MjM3LDI4MTkxLDI4MjI3LDI4MjE4LDI4MjM4LDI4MTk2LDI4NDE1LDI4MTg5LDI4MjE2LDI4MjkwLDI4''@;'; + put 'put ''MzMwLDI4MzEyLDI4MzYxLDI4MzQzLDI4MzcxLDI4MzQ5LDI4MzM1LDI4MzU2LDI4MzM4LDI4MzcyLDI4MzczLDI4MzAzLDI4MzI1LDI4MzU0LDI4MzE5LDI4NDgxLDI4NDMzLDI4NzQ4LDI4Mzk2LDI4NDA4LDI4NDE0LDI4NDc5LDI4NDAyLDI4NDY1LDI4Mzk5LDI4NDY2LDI4MzY0LDI4NDc4''@;'; + put 'put ''LDI4NDM1LDI4NDA3LDI4NTUwLDI4NTM4LDI4NTM2LDI4NTQ1LDI4NTQ0LDI4NTI3LDI4NTA3LDI4NjU5LDI4NTI1LDI4NTQ2LDI4NTQwLDI4NTA0LDI4NTU4LDI4NTYxLDI4NjEwLDI4NTE4LDI4NTk1LDI4NTc5LDI4NTc3LDI4NTgwLDI4NjAxLDI4NjE0LDI4NTg2LDI4NjM5LDI4NjI5LDI4''@;'; + put 'put ''NjUyLDI4NjI4LDI4NjMyLDI4NjU3LDI4NjU0LDI4NjM1LDI4NjgxLDI4NjgzLDI4NjY2LDI4Njg5LDI4NjczLDI4Njg3LDI4NjcwLDI4Njk5LDI4Njk4LDI4NTMyLDI4NzAxLDI4Njk2LDI4NzAzLDI4NzIwLDI4NzM0LDI4NzIyLDI4NzUzLDI4NzcxLDI4ODI1LDI4ODE4LDI4ODQ3LDI4OTEz''@;'; + put 'put ''LDI4ODQ0LDI4ODU2LDI4ODUxLDI4ODQ2LDI4ODk1LDI4ODc1LDI4ODkzLDI4ODg5LDI4OTM3LDI4OTI1LDI4OTU2LDI4OTUzLDI5MDI5LDI5MDEzLDI5MDY0LDI5MDMwLDI5MDI2LDI5MDA0LDI5MDE0LDI5MDM2LDI5MDcxLDI5MTc5LDI5MDYwLDI5MDc3LDI5MDk2LDI5MTAwLDI5MTQzLDI5''@;'; + put 'put ''MTEzLDI5MTE4LDI5MTM4LDI5MTI5LDI5MTQwLDI5MTM0LDI5MTUyLDI5MTY0LDI5MTU5LDI5MTczLDI5MTgwLDI5MTc3LDI5MTgzLDI5MTk3LDI5MjAwLDI5MjExLDI5MjI0LDI5MjI5LDI5MjI4LDI5MjMyLDI5MjM0LDI5MjQzLDI5MjQ0LDI5MjQ3LDI5MjQ4LDI5MjU0LDI5MjU5LDI5Mjcy''@;'; + put 'put ''LDI5MzAwLDI5MzEwLDI5MzE0LDI5MzEzLDI5MzE5LDI5MzMwLDI5MzM0LDI5MzQ2LDI5MzUxLDI5MzY5LDI5MzYyLDI5Mzc5LDI5MzgyLDI5MzgwLDI5MzkwLDI5Mzk0LDI5NDEwLDI5NDA4LDI5NDA5LDI5NDMzLDI5NDMxLDIwNDk1LDI5NDYzLDI5NDUwLDI5NDY4LDI5NDYyLDI5NDY5LDI5''@;'; + put 'put ''NDkyLDI5NDg3LDI5NDgxLDI5NDc3LDI5NTAyLDI5NTE4LDI5NTE5LDQwNjY0LDI5NTI3LDI5NTQ2LDI5NTQ0LDI5NTUyLDI5NTYwLDI5NTU3LDI5NTYzLDI5NTYyLDI5NjQwLDI5NjE5LDI5NjQ2LDI5NjI3LDI5NjMyLDI5NjY5LDI5Njc4LDI5NjYyLDI5ODU4LDI5NzAxLDI5ODA3LDI5NzMz''@;'; + put 'put ''LDI5Njg4LDI5NzQ2LDI5NzU0LDI5NzgxLDI5NzU5LDI5NzkxLDI5Nzg1LDI5NzYxLDI5Nzg4LDI5ODAxLDI5ODA4LDI5Nzk1LDI5ODAyLDI5ODE0LDI5ODIyLDI5ODM1LDI5ODU0LDI5ODYzLDI5ODk4LDI5OTAzLDI5OTA4LDI5NjgxLDI5OTIwLDI5OTIzLDI5OTI3LDI5OTI5LDI5OTM0LDI5''@;'; + put 'put ''OTM4LDI5OTM2LDI5OTM3LDI5OTQ0LDI5OTQzLDI5OTU2LDI5OTU1LDI5OTU3LDI5OTY0LDI5OTY2LDI5OTY1LDI5OTczLDI5OTcxLDI5OTgyLDI5OTkwLDI5OTk2LDMwMDEyLDMwMDIwLDMwMDI5LDMwMDI2LDMwMDI1LDMwMDQzLDMwMDIyLDMwMDQyLDMwMDU3LDMwMDUyLDMwMDU1LDMwMDU5''@;'; + put 'put ''LDMwMDYxLDMwMDcyLDMwMDcwLDMwMDg2LDMwMDg3LDMwMDY4LDMwMDkwLDMwMDg5LDMwMDgyLDMwMTAwLDMwMTA2LDMwMTA5LDMwMTE3LDMwMTE1LDMwMTQ2LDMwMTMxLDMwMTQ3LDMwMTMzLDMwMTQxLDMwMTM2LDMwMTQwLDMwMTI5LDMwMTU3LDMwMTU0LDMwMTYyLDMwMTY5LDMwMTc5LDMw''@;'; + put 'put ''MTc0LDMwMjA2LDMwMjA3LDMwMjA0LDMwMjA5LDMwMTkyLDMwMjAyLDMwMTk0LDMwMTk1LDMwMjE5LDMwMjIxLDMwMjE3LDMwMjM5LDMwMjQ3LDMwMjQwLDMwMjQxLDMwMjQyLDMwMjQ0LDMwMjYwLDMwMjU2LDMwMjY3LDMwMjc5LDMwMjgwLDMwMjc4LDMwMzAwLDMwMjk2LDMwMzA1LDMwMzA2''@;'; + put 'put ''LDMwMzEyLDMwMzEzLDMwMzE0LDMwMzExLDMwMzE2LDMwMzIwLDMwMzIyLDMwMzI2LDMwMzI4LDMwMzMyLDMwMzM2LDMwMzM5LDMwMzQ0LDMwMzQ3LDMwMzUwLDMwMzU4LDMwMzU1LDMwMzYxLDMwMzYyLDMwMzg0LDMwMzg4LDMwMzkyLDMwMzkzLDMwMzk0LDMwNDAyLDMwNDEzLDMwNDIyLDMw''@;'; + put 'put ''NDE4LDMwNDMwLDMwNDMzLDMwNDM3LDMwNDM5LDMwNDQyLDM0MzUxLDMwNDU5LDMwNDcyLDMwNDcxLDMwNDY4LDMwNTA1LDMwNTAwLDMwNDk0LDMwNTAxLDMwNTAyLDMwNDkxLDMwNTE5LDMwNTIwLDMwNTM1LDMwNTU0LDMwNTY4LDMwNTcxLDMwNTU1LDMwNTY1LDMwNTkxLDMwNTkwLDMwNTg1''@;'; + put 'put ''LDMwNjA2LDMwNjAzLDMwNjA5LDMwNjI0LDMwNjIyLDMwNjQwLDMwNjQ2LDMwNjQ5LDMwNjU1LDMwNjUyLDMwNjUzLDMwNjUxLDMwNjYzLDMwNjY5LDMwNjc5LDMwNjgyLDMwNjg0LDMwNjkxLDMwNzAyLDMwNzE2LDMwNzMyLDMwNzM4LDMxMDE0LDMwNzUyLDMxMDE4LDMwNzg5LDMwODYyLDMw''@;'; + put 'put ''ODM2LDMwODU0LDMwODQ0LDMwODc0LDMwODYwLDMwODgzLDMwOTAxLDMwODkwLDMwODk1LDMwOTI5LDMwOTE4LDMwOTIzLDMwOTMyLDMwOTEwLDMwOTA4LDMwOTE3LDMwOTIyLDMwOTU2LDMwOTUxLDMwOTM4LDMwOTczLDMwOTY0LDMwOTgzLDMwOTk0LDMwOTkzLDMxMDAxLDMxMDIwLDMxMDE5''@;'; + put 'put ''LDMxMDQwLDMxMDcyLDMxMDYzLDMxMDcxLDMxMDY2LDMxMDYxLDMxMDU5LDMxMDk4LDMxMTAzLDMxMTE0LDMxMTMzLDMxMTQzLDQwNzc5LDMxMTQ2LDMxMTUwLDMxMTU1LDMxMTYxLDMxMTYyLDMxMTc3LDMxMTg5LDMxMjA3LDMxMjEyLDMxMjAxLDMxMjAzLDMxMjQwLDMxMjQ1LDMxMjU2LDMx''@;'; + put 'put ''MjU3LDMxMjY0LDMxMjYzLDMxMTA0LDMxMjgxLDMxMjkxLDMxMjk0LDMxMjg3LDMxMjk5LDMxMzE5LDMxMzA1LDMxMzI5LDMxMzMwLDMxMzM3LDQwODYxLDMxMzQ0LDMxMzUzLDMxMzU3LDMxMzY4LDMxMzgzLDMxMzgxLDMxMzg0LDMxMzgyLDMxNDAxLDMxNDMyLDMxNDA4LDMxNDE0LDMxNDI5''@;'; + put 'put ''LDMxNDI4LDMxNDIzLDM2OTk1LDMxNDMxLDMxNDM0LDMxNDM3LDMxNDM5LDMxNDQ1LDMxNDQzLDMxNDQ5LDMxNDUwLDMxNDUzLDMxNDU3LDMxNDU4LDMxNDYyLDMxNDY5LDMxNDcyLDMxNDkwLDMxNTAzLDMxNDk4LDMxNDk0LDMxNTM5LDMxNTEyLDMxNTEzLDMxNTE4LDMxNTQxLDMxNTI4LDMx''@;'; + put 'put ''NTQyLDMxNTY4LDMxNjEwLDMxNDkyLDMxNTY1LDMxNDk5LDMxNTY0LDMxNTU3LDMxNjA1LDMxNTg5LDMxNjA0LDMxNTkxLDMxNjAwLDMxNjAxLDMxNTk2LDMxNTk4LDMxNjQ1LDMxNjQwLDMxNjQ3LDMxNjI5LDMxNjQ0LDMxNjQyLDMxNjI3LDMxNjM0LDMxNjMxLDMxNTgxLDMxNjQxLDMxNjkx''@;'; + put 'put ''LDMxNjgxLDMxNjkyLDMxNjk1LDMxNjY4LDMxNjg2LDMxNzA5LDMxNzIxLDMxNzYxLDMxNzY0LDMxNzE4LDMxNzE3LDMxODQwLDMxNzQ0LDMxNzUxLDMxNzYzLDMxNzMxLDMxNzM1LDMxNzY3LDMxNzU3LDMxNzM0LDMxNzc5LDMxNzgzLDMxNzg2LDMxNzc1LDMxNzk5LDMxNzg3LDMxODA1LDMx''@;'; + put 'put ''ODIwLDMxODExLDMxODI4LDMxODIzLDMxODA4LDMxODI0LDMxODMyLDMxODM5LDMxODQ0LDMxODMwLDMxODQ1LDMxODUyLDMxODYxLDMxODc1LDMxODg4LDMxOTA4LDMxOTE3LDMxOTA2LDMxOTE1LDMxOTA1LDMxOTEyLDMxOTIzLDMxOTIyLDMxOTIxLDMxOTE4LDMxOTI5LDMxOTMzLDMxOTM2''@;'; + put 'put ''LDMxOTQxLDMxOTM4LDMxOTYwLDMxOTU0LDMxOTY0LDMxOTcwLDM5NzM5LDMxOTgzLDMxOTg2LDMxOTg4LDMxOTkwLDMxOTk0LDMyMDA2LDMyMDAyLDMyMDI4LDMyMDIxLDMyMDEwLDMyMDY5LDMyMDc1LDMyMDQ2LDMyMDUwLDMyMDYzLDMyMDUzLDMyMDcwLDMyMTE1LDMyMDg2LDMyMDc4LDMy''@;'; + put 'put ''MTE0LDMyMTA0LDMyMTEwLDMyMDc5LDMyMDk5LDMyMTQ3LDMyMTM3LDMyMDkxLDMyMTQzLDMyMTI1LDMyMTU1LDMyMTg2LDMyMTc0LDMyMTYzLDMyMTgxLDMyMTk5LDMyMTg5LDMyMTcxLDMyMzE3LDMyMTYyLDMyMTc1LDMyMjIwLDMyMTg0LDMyMTU5LDMyMTc2LDMyMjE2LDMyMjIxLDMyMjI4''@;'; + put 'put ''LDMyMjIyLDMyMjUxLDMyMjQyLDMyMjI1LDMyMjYxLDMyMjY2LDMyMjkxLDMyMjg5LDMyMjc0LDMyMzA1LDMyMjg3LDMyMjY1LDMyMjY3LDMyMjkwLDMyMzI2LDMyMzU4LDMyMzE1LDMyMzA5LDMyMzEzLDMyMzIzLDMyMzExLDMyMzA2LDMyMzE0LDMyMzU5LDMyMzQ5LDMyMzQyLDMyMzUwLDMy''@;'; + put 'put ''MzQ1LDMyMzQ2LDMyMzc3LDMyMzYyLDMyMzYxLDMyMzgwLDMyMzc5LDMyMzg3LDMyMjEzLDMyMzgxLDM2NzgyLDMyMzgzLDMyMzkyLDMyMzkzLDMyMzk2LDMyNDAyLDMyNDAwLDMyNDAzLDMyNDA0LDMyNDA2LDMyMzk4LDMyNDExLDMyNDEyLDMyNTY4LDMyNTcwLDMyNTgxLDMyNTg4LDMyNTg5''@;'; + put 'put ''LDMyNTkwLDMyNTkyLDMyNTkzLDMyNTk3LDMyNTk2LDMyNjAwLDMyNjA3LDMyNjA4LDMyNjE2LDMyNjE3LDMyNjE1LDMyNjMyLDMyNjQyLDMyNjQ2LDMyNjQzLDMyNjQ4LDMyNjQ3LDMyNjUyLDMyNjYwLDMyNjcwLDMyNjY5LDMyNjY2LDMyNjc1LDMyNjg3LDMyNjkwLDMyNjk3LDMyNjg2LDMy''@;'; + put 'put ''Njk0LDMyNjk2LDM1Njk3LDMyNzA5LDMyNzEwLDMyNzE0LDMyNzI1LDMyNzI0LDMyNzM3LDMyNzQyLDMyNzQ1LDMyNzU1LDMyNzYxLDM5MTMyLDMyNzc0LDMyNzcyLDMyNzc5LDMyNzg2LDMyNzkyLDMyNzkzLDMyNzk2LDMyODAxLDMyODA4LDMyODMxLDMyODI3LDMyODQyLDMyODM4LDMyODUw''@;'; + put 'put ''LDMyODU2LDMyODU4LDMyODYzLDMyODY2LDMyODcyLDMyODgzLDMyODgyLDMyODgwLDMyODg2LDMyODg5LDMyODkzLDMyODk1LDMyOTAwLDMyOTAyLDMyOTAxLDMyOTIzLDMyOTE1LDMyOTIyLDMyOTQxLDIwODgwLDMyOTQwLDMyOTg3LDMyOTk3LDMyOTg1LDMyOTg5LDMyOTY0LDMyOTg2LDMy''@;'; + put 'put ''OTgyLDMzMDMzLDMzMDA3LDMzMDA5LDMzMDUxLDMzMDY1LDMzMDU5LDMzMDcxLDMzMDk5LDM4NTM5LDMzMDk0LDMzMDg2LDMzMTA3LDMzMTA1LDMzMDIwLDMzMTM3LDMzMTM0LDMzMTI1LDMzMTI2LDMzMTQwLDMzMTU1LDMzMTYwLDMzMTYyLDMzMTUyLDMzMTU0LDMzMTg0LDMzMTczLDMzMTg4''@;'; + put 'put ''LDMzMTg3LDMzMTE5LDMzMTcxLDMzMTkzLDMzMjAwLDMzMjA1LDMzMjE0LDMzMjA4LDMzMjEzLDMzMjE2LDMzMjE4LDMzMjEwLDMzMjI1LDMzMjI5LDMzMjMzLDMzMjQxLDMzMjQwLDMzMjI0LDMzMjQyLDMzMjQ3LDMzMjQ4LDMzMjU1LDMzMjc0LDMzMjc1LDMzMjc4LDMzMjgxLDMzMjgyLDMz''@;'; + put 'put ''Mjg1LDMzMjg3LDMzMjkwLDMzMjkzLDMzMjk2LDMzMzAyLDMzMzIxLDMzMzIzLDMzMzM2LDMzMzMxLDMzMzQ0LDMzMzY5LDMzMzY4LDMzMzczLDMzMzcwLDMzMzc1LDMzMzgwLDMzMzc4LDMzMzg0LDMzMzg2LDMzMzg3LDMzMzI2LDMzMzkzLDMzMzk5LDMzNDAwLDMzNDA2LDMzNDIxLDMzNDI2''@;'; + put 'put ''LDMzNDUxLDMzNDM5LDMzNDY3LDMzNDUyLDMzNTA1LDMzNTA3LDMzNTAzLDMzNDkwLDMzNTI0LDMzNTIzLDMzNTMwLDMzNjgzLDMzNTM5LDMzNTMxLDMzNTI5LDMzNTAyLDMzNTQyLDMzNTAwLDMzNTQ1LDMzNDk3LDMzNTg5LDMzNTg4LDMzNTU4LDMzNTg2LDMzNTg1LDMzNjAwLDMzNTkzLDMz''@;'; + put 'put ''NjE2LDMzNjA1LDMzNTgzLDMzNTc5LDMzNTU5LDMzNTYwLDMzNjY5LDMzNjkwLDMzNzA2LDMzNjk1LDMzNjk4LDMzNjg2LDMzNTcxLDMzNjc4LDMzNjcxLDMzNjc0LDMzNjYwLDMzNzE3LDMzNjUxLDMzNjUzLDMzNjk2LDMzNjczLDMzNzA0LDMzNzgwLDMzODExLDMzNzcxLDMzNzQyLDMzNzg5''@;'; + put 'put ''LDMzNzk1LDMzNzUyLDMzODAzLDMzNzI5LDMzNzgzLDMzNzk5LDMzNzYwLDMzNzc4LDMzODA1LDMzODI2LDMzODI0LDMzNzI1LDMzODQ4LDM0MDU0LDMzNzg3LDMzOTAxLDMzODM0LDMzODUyLDM0MTM4LDMzOTI0LDMzOTExLDMzODk5LDMzOTY1LDMzOTAyLDMzOTIyLDMzODk3LDMzODYyLDMz''@;'; + put 'put ''ODM2LDMzOTAzLDMzOTEzLDMzODQ1LDMzOTk0LDMzODkwLDMzOTc3LDMzOTgzLDMzOTUxLDM0MDA5LDMzOTk3LDMzOTc5LDM0MDEwLDM0ZTMsMzM5ODUsMzM5OTAsMzQwMDYsMzM5NTMsMzQwODEsMzQwNDcsMzQwMzYsMzQwNzEsMzQwNzIsMzQwOTIsMzQwNzksMzQwNjksMzQwNjgsMzQwNDQs''@;'; + put 'put ''MzQxMTIsMzQxNDcsMzQxMzYsMzQxMjAsMzQxMTMsMzQzMDYsMzQxMjMsMzQxMzMsMzQxNzYsMzQyMTIsMzQxODQsMzQxOTMsMzQxODYsMzQyMTYsMzQxNTcsMzQxOTYsMzQyMDMsMzQyODIsMzQxODMsMzQyMDQsMzQxNjcsMzQxNzQsMzQxOTIsMzQyNDksMzQyMzQsMzQyNTUsMzQyMzMsMzQy''@;'; + put 'put ''NTYsMzQyNjEsMzQyNjksMzQyNzcsMzQyNjgsMzQyOTcsMzQzMTQsMzQzMjMsMzQzMTUsMzQzMDIsMzQyOTgsMzQzMTAsMzQzMzgsMzQzMzAsMzQzNTIsMzQzNjcsMzQzODEsMjAwNTMsMzQzODgsMzQzOTksMzQ0MDcsMzQ0MTcsMzQ0NTEsMzQ0NjcsMzQ0NzMsMzQ0NzQsMzQ0NDMsMzQ0NDQs''@;'; + put 'put ''MzQ0ODYsMzQ0NzksMzQ1MDAsMzQ1MDIsMzQ0ODAsMzQ1MDUsMzQ4NTEsMzQ0NzUsMzQ1MTYsMzQ1MjYsMzQ1MzcsMzQ1NDAsMzQ1MjcsMzQ1MjMsMzQ1NDMsMzQ1NzgsMzQ1NjYsMzQ1NjgsMzQ1NjAsMzQ1NjMsMzQ1NTUsMzQ1NzcsMzQ1NjksMzQ1NzMsMzQ1NTMsMzQ1NzAsMzQ2MTIsMzQ2''@;'; + put 'put ''MjMsMzQ2MTUsMzQ2MTksMzQ1OTcsMzQ2MDEsMzQ1ODYsMzQ2NTYsMzQ2NTUsMzQ2ODAsMzQ2MzYsMzQ2MzgsMzQ2NzYsMzQ2NDcsMzQ2NjQsMzQ2NzAsMzQ2NDksMzQ2NDMsMzQ2NTksMzQ2NjYsMzQ4MjEsMzQ3MjIsMzQ3MTksMzQ2OTAsMzQ3MzUsMzQ3NjMsMzQ3NDksMzQ3NTIsMzQ3Njgs''@;'; + put 'put ''Mzg2MTQsMzQ3MzEsMzQ3NTYsMzQ3MzksMzQ3NTksMzQ3NTgsMzQ3NDcsMzQ3OTksMzQ4MDIsMzQ3ODQsMzQ4MzEsMzQ4MjksMzQ4MTQsMzQ4MDYsMzQ4MDcsMzQ4MzAsMzQ3NzAsMzQ4MzMsMzQ4MzgsMzQ4MzcsMzQ4NTAsMzQ4NDksMzQ4NjUsMzQ4NzAsMzQ4NzMsMzQ4NTUsMzQ4NzUsMzQ4''@;'; + put 'put ''ODQsMzQ4ODIsMzQ4OTgsMzQ5MDUsMzQ5MTAsMzQ5MTQsMzQ5MjMsMzQ5NDUsMzQ5NDIsMzQ5NzQsMzQ5MzMsMzQ5NDEsMzQ5OTcsMzQ5MzAsMzQ5NDYsMzQ5NjcsMzQ5NjIsMzQ5OTAsMzQ5NjksMzQ5NzgsMzQ5NTcsMzQ5ODAsMzQ5OTIsMzUwMDcsMzQ5OTMsMzUwMTEsMzUwMTIsMzUwMjgs''@;'; + put 'put ''MzUwMzIsMzUwMzMsMzUwMzcsMzUwNjUsMzUwNzQsMzUwNjgsMzUwNjAsMzUwNDgsMzUwNTgsMzUwNzYsMzUwODQsMzUwODIsMzUwOTEsMzUxMzksMzUxMDIsMzUxMDksMzUxMTQsMzUxMTUsMzUxMzcsMzUxNDAsMzUxMzEsMzUxMjYsMzUxMjgsMzUxNDgsMzUxMDEsMzUxNjgsMzUxNjYsMzUx''@;'; + put 'put ''NzQsMzUxNzIsMzUxODEsMzUxNzgsMzUxODMsMzUxODgsMzUxOTEsMzUxOTgsMzUyMDMsMzUyMDgsMzUyMTAsMzUyMTksMzUyMjQsMzUyMzMsMzUyNDEsMzUyMzgsMzUyNDQsMzUyNDcsMzUyNTAsMzUyNTgsMzUyNjEsMzUyNjMsMzUyNjQsMzUyOTAsMzUyOTIsMzUyOTMsMzUzMDMsMzUzMTYs''@;'; + put 'put ''MzUzMjAsMzUzMzEsMzUzNTAsMzUzNDQsMzUzNDAsMzUzNTUsMzUzNTcsMzUzNjUsMzUzODIsMzUzOTMsMzU0MTksMzU0MTAsMzUzOTgsMzU0MDAsMzU0NTIsMzU0MzcsMzU0MzYsMzU0MjYsMzU0NjEsMzU0NTgsMzU0NjAsMzU0OTYsMzU0ODksMzU0NzMsMzU0OTMsMzU0OTQsMzU0ODIsMzU0''@;'; + put 'put ''OTEsMzU1MjQsMzU1MzMsMzU1MjIsMzU1NDYsMzU1NjMsMzU1NzEsMzU1NTksMzU1NTYsMzU1NjksMzU2MDQsMzU1NTIsMzU1NTQsMzU1NzUsMzU1NTAsMzU1NDcsMzU1OTYsMzU1OTEsMzU2MTAsMzU1NTMsMzU2MDYsMzU2MDAsMzU2MDcsMzU2MTYsMzU2MzUsMzg4MjcsMzU2MjIsMzU2Mjcs''@;'; + put 'put ''MzU2NDYsMzU2MjQsMzU2NDksMzU2NjAsMzU2NjMsMzU2NjIsMzU2NTcsMzU2NzAsMzU2NzUsMzU2NzQsMzU2OTEsMzU2NzksMzU2OTIsMzU2OTUsMzU3MDAsMzU3MDksMzU3MTIsMzU3MjQsMzU3MjYsMzU3MzAsMzU3MzEsMzU3MzQsMzU3MzcsMzU3MzgsMzU4OTgsMzU5MDUsMzU5MDMsMzU5''@;'; + put 'put ''MTIsMzU5MTYsMzU5MTgsMzU5MjAsMzU5MjUsMzU5MzgsMzU5NDgsMzU5NjAsMzU5NjIsMzU5NzAsMzU5NzcsMzU5NzMsMzU5NzgsMzU5ODEsMzU5ODIsMzU5ODgsMzU5NjQsMzU5OTIsMjUxMTcsMzYwMTMsMzYwMTAsMzYwMjksMzYwMTgsMzYwMTksMzYwMTQsMzYwMjIsMzYwNDAsMzYwMzMs''@;'; + put 'put ''MzYwNjgsMzYwNjcsMzYwNTgsMzYwOTMsMzYwOTAsMzYwOTEsMzYxMDAsMzYxMDEsMzYxMDYsMzYxMDMsMzYxMTEsMzYxMDksMzYxMTIsNDA3ODIsMzYxMTUsMzYwNDUsMzYxMTYsMzYxMTgsMzYxOTksMzYyMDUsMzYyMDksMzYyMTEsMzYyMjUsMzYyNDksMzYyOTAsMzYyODYsMzYyODIsMzYz''@;'; + put 'put ''MDMsMzYzMTQsMzYzMTAsMzYzMDAsMzYzMTUsMzYyOTksMzYzMzAsMzYzMzEsMzYzMTksMzYzMjMsMzYzNDgsMzYzNjAsMzYzNjEsMzYzNTEsMzYzODEsMzYzODIsMzYzNjgsMzYzODMsMzY0MTgsMzY0MDUsMzY0MDAsMzY0MDQsMzY0MjYsMzY0MjMsMzY0MjUsMzY0MjgsMzY0MzIsMzY0MjQs''@;'; + put 'put ''MzY0NDEsMzY0NTIsMzY0NDgsMzYzOTQsMzY0NTEsMzY0MzcsMzY0NzAsMzY0NjYsMzY0NzYsMzY0ODEsMzY0ODcsMzY0ODUsMzY0ODQsMzY0OTEsMzY0OTAsMzY0OTksMzY0OTcsMzY1MDAsMzY1MDUsMzY1MjIsMzY1MTMsMzY1MjQsMzY1MjgsMzY1NTAsMzY1MjksMzY1NDIsMzY1NDksMzY1''@;'; + put 'put ''NTIsMzY1NTUsMzY1NzEsMzY1NzksMzY2MDQsMzY2MDMsMzY1ODcsMzY2MDYsMzY2MTgsMzY2MTMsMzY2MjksMzY2MjYsMzY2MzMsMzY2MjcsMzY2MzYsMzY2MzksMzY2MzUsMzY2MjAsMzY2NDYsMzY2NTksMzY2NjcsMzY2NjUsMzY2NzcsMzY2NzQsMzY2NzAsMzY2ODQsMzY2ODEsMzY2Nzgs''@;'; + put 'put ''MzY2ODYsMzY2OTUsMzY3MDAsMzY3MDYsMzY3MDcsMzY3MDgsMzY3NjQsMzY3NjcsMzY3NzEsMzY3ODEsMzY3ODMsMzY3OTEsMzY4MjYsMzY4MzcsMzY4MzQsMzY4NDIsMzY4NDcsMzY5OTksMzY4NTIsMzY4NjksMzY4NTcsMzY4NTgsMzY4ODEsMzY4ODUsMzY4OTcsMzY4NzcsMzY4OTQsMzY4''@;'; + put 'put ''ODYsMzY4NzUsMzY5MDMsMzY5MTgsMzY5MTcsMzY5MjEsMzY4NTYsMzY5NDMsMzY5NDQsMzY5NDUsMzY5NDYsMzY4NzgsMzY5MzcsMzY5MjYsMzY5NTAsMzY5NTIsMzY5NTgsMzY5NjgsMzY5NzUsMzY5ODIsMzg1NjgsMzY5NzgsMzY5OTQsMzY5ODksMzY5OTMsMzY5OTIsMzcwMDIsMzcwMDEs''@;'; + put 'put ''MzcwMDcsMzcwMzIsMzcwMzksMzcwNDEsMzcwNDUsMzcwOTAsMzcwOTIsMjUxNjAsMzcwODMsMzcxMjIsMzcxMzgsMzcxNDUsMzcxNzAsMzcxNjgsMzcxOTQsMzcyMDYsMzcyMDgsMzcyMTksMzcyMjEsMzcyMjUsMzcyMzUsMzcyMzQsMzcyNTksMzcyNTcsMzcyNTAsMzcyODIsMzcyOTEsMzcy''@;'; + put 'put ''OTUsMzcyOTAsMzczMDEsMzczMDAsMzczMDYsMzczMTIsMzczMTMsMzczMjEsMzczMjMsMzczMjgsMzczMzQsMzczNDMsMzczNDUsMzczMzksMzczNzIsMzczNjUsMzczNjYsMzc0MDYsMzczNzUsMzczOTYsMzc0MjAsMzczOTcsMzczOTMsMzc0NzAsMzc0NjMsMzc0NDUsMzc0NDksMzc0NzYs''@;'; + put 'put ''Mzc0NDgsMzc1MjUsMzc0MzksMzc0NTEsMzc0NTYsMzc1MzIsMzc1MjYsMzc1MjMsMzc1MzEsMzc0NjYsMzc1ODMsMzc1NjEsMzc1NTksMzc2MDksMzc2NDcsMzc2MjYsMzc3MDAsMzc2NzgsMzc2NTcsMzc2NjYsMzc2NTgsMzc2NjcsMzc2OTAsMzc2ODUsMzc2OTEsMzc3MjQsMzc3MjgsMzc3''@;'; + put 'put ''NTYsMzc3NDIsMzc3MTgsMzc4MDgsMzc4MDQsMzc4MDUsMzc3ODAsMzc4MTcsMzc4NDYsMzc4NDcsMzc4NjQsMzc4NjEsMzc4NDgsMzc4MjcsMzc4NTMsMzc4NDAsMzc4MzIsMzc4NjAsMzc5MTQsMzc5MDgsMzc5MDcsMzc4OTEsMzc4OTUsMzc5MDQsMzc5NDIsMzc5MzEsMzc5NDEsMzc5MjEs''@;'; + put 'put ''Mzc5NDYsMzc5NTMsMzc5NzAsMzc5NTYsMzc5NzksMzc5ODQsMzc5ODYsMzc5ODIsMzc5OTQsMzc0MTcsMzhlMywzODAwNSwzODAwNywzODAxMywzNzk3OCwzODAxMiwzODAxNCwzODAxNywzODAxNSwzODI3NCwzODI3OSwzODI4MiwzODI5MiwzODI5NCwzODI5NiwzODI5NywzODMwNCwzODMx''@;'; + put 'put ''MiwzODMxMSwzODMxNywzODMzMiwzODMzMSwzODMyOSwzODMzNCwzODM0NiwyODY2MiwzODMzOSwzODM0OSwzODM0OCwzODM1NywzODM1NiwzODM1OCwzODM2NCwzODM2OSwzODM3MywzODM3MCwzODQzMywzODQ0MCwzODQ0NiwzODQ0NywzODQ2NiwzODQ3NiwzODQ3OSwzODQ3NSwzODUxOSwz''@;'; + put 'put ''ODQ5MiwzODQ5NCwzODQ5MywzODQ5NSwzODUwMiwzODUxNCwzODUwOCwzODU0MSwzODU1MiwzODU0OSwzODU1MSwzODU3MCwzODU2NywzODU3NywzODU3OCwzODU3NiwzODU4MCwzODU4MiwzODU4NCwzODU4NSwzODYwNiwzODYwMywzODYwMSwzODYwNSwzNTE0OSwzODYyMCwzODY2OSwzODYx''@;'; + put 'put ''MywzODY0OSwzODY2MCwzODY2MiwzODY2NCwzODY3NSwzODY3MCwzODY3MywzODY3MSwzODY3OCwzODY4MSwzODY5MiwzODY5OCwzODcwNCwzODcxMywzODcxNywzODcxOCwzODcyNCwzODcyNiwzODcyOCwzODcyMiwzODcyOSwzODc0OCwzODc1MiwzODc1NiwzODc1OCwzODc2MCwyMTIwMiwz''@;'; + put 'put ''ODc2MywzODc2OSwzODc3NywzODc4OSwzODc4MCwzODc4NSwzODc3OCwzODc5MCwzODc5NSwzODc5OSwzODgwMCwzODgxMiwzODgyNCwzODgyMiwzODgxOSwzODgzNSwzODgzNiwzODg1MSwzODg1NCwzODg1NiwzODg1OSwzODg3NiwzODg5Myw0MDc4MywzODg5OCwzMTQ1NSwzODkwMiwzODkw''@;'; + put 'put ''MSwzODkyNywzODkyNCwzODk2OCwzODk0OCwzODk0NSwzODk2NywzODk3MywzODk4MiwzODk5MSwzODk4NywzOTAxOSwzOTAyMywzOTAyNCwzOTAyNSwzOTAyOCwzOTAyNywzOTA4MiwzOTA4NywzOTA4OSwzOTA5NCwzOTEwOCwzOTEwNywzOTExMCwzOTE0NSwzOTE0NywzOTE3MSwzOTE3Nywz''@;'; + put 'put ''OTE4NiwzOTE4OCwzOTE5MiwzOTIwMSwzOTE5NywzOTE5OCwzOTIwNCwzOTIwMCwzOTIxMiwzOTIxNCwzOTIyOSwzOTIzMCwzOTIzNCwzOTI0MSwzOTIzNywzOTI0OCwzOTI0MywzOTI0OSwzOTI1MCwzOTI0NCwzOTI1MywzOTMxOSwzOTMyMCwzOTMzMywzOTM0MSwzOTM0MiwzOTM1NiwzOTM5''@;'; + put 'put ''MSwzOTM4NywzOTM4OSwzOTM4NCwzOTM3NywzOTQwNSwzOTQwNiwzOTQwOSwzOTQxMCwzOTQxOSwzOTQxNiwzOTQyNSwzOTQzOSwzOTQyOSwzOTM5NCwzOTQ0OSwzOTQ2NywzOTQ3OSwzOTQ5MywzOTQ5MCwzOTQ4OCwzOTQ5MSwzOTQ4NiwzOTUwOSwzOTUwMSwzOTUxNSwzOTUxMSwzOTUxOSwz''@;'; + put 'put ''OTUyMiwzOTUyNSwzOTUyNCwzOTUyOSwzOTUzMSwzOTUzMCwzOTU5NywzOTYwMCwzOTYxMiwzOTYxNiwzOTYzMSwzOTYzMywzOTYzNSwzOTYzNiwzOTY0NiwzOTY0NywzOTY1MCwzOTY1MSwzOTY1NCwzOTY2MywzOTY1OSwzOTY2MiwzOTY2OCwzOTY2NSwzOTY3MSwzOTY3NSwzOTY4NiwzOTcw''@;'; + put 'put ''NCwzOTcwNiwzOTcxMSwzOTcxNCwzOTcxNSwzOTcxNywzOTcxOSwzOTcyMCwzOTcyMSwzOTcyMiwzOTcyNiwzOTcyNywzOTczMCwzOTc0OCwzOTc0NywzOTc1OSwzOTc1NywzOTc1OCwzOTc2MSwzOTc2OCwzOTc5NiwzOTgyNywzOTgxMSwzOTgyNSwzOTgzMCwzOTgzMSwzOTgzOSwzOTg0MCwz''@;'; + put 'put ''OTg0OCwzOTg2MCwzOTg3MiwzOTg4MiwzOTg2NSwzOTg3OCwzOTg4NywzOTg4OSwzOTg5MCwzOTkwNywzOTkwNiwzOTkwOCwzOTg5MiwzOTkwNSwzOTk5NCwzOTkyMiwzOTkyMSwzOTkyMCwzOTk1NywzOTk1NiwzOTk0NSwzOTk1NSwzOTk0OCwzOTk0MiwzOTk0NCwzOTk1NCwzOTk0NiwzOTk0''@;'; + put 'put ''MCwzOTk4MiwzOTk2MywzOTk3MywzOTk3MiwzOTk2OSwzOTk4NCw0MDAwNywzOTk4Niw0MDAwNiwzOTk5OCw0MDAyNiw0MDAzMiw0MDAzOSw0MDA1NCw0MDA1Niw0MDE2Nyw0MDE3Miw0MDE3Niw0MDIwMSw0MDIwMCw0MDE3MSw0MDE5NSw0MDE5OCw0MDIzNCw0MDIzMCw0MDM2Nyw0MDIyNyw0''@;'; + put 'put ''MDIyMyw0MDI2MCw0MDIxMyw0MDIxMCw0MDI1Nyw0MDI1NSw0MDI1NCw0MDI2Miw0MDI2NCw0MDI4NSw0MDI4Niw0MDI5Miw0MDI3Myw0MDI3Miw0MDI4MSw0MDMwNiw0MDMyOSw0MDMyNyw0MDM2Myw0MDMwMyw0MDMxNCw0MDM0Niw0MDM1Niw0MDM2MSw0MDM3MCw0MDM4OCw0MDM4NSw0MDM3''@;'; + put 'put ''OSw0MDM3Niw0MDM3OCw0MDM5MCw0MDM5OSw0MDM4Niw0MDQwOSw0MDQwMyw0MDQ0MCw0MDQyMiw0MDQyOSw0MDQzMSw0MDQ0NSw0MDQ3NCw0MDQ3NSw0MDQ3OCw0MDU2NSw0MDU2OSw0MDU3Myw0MDU3Nyw0MDU4NCw0MDU4Nyw0MDU4OCw0MDU5NCw0MDU5Nyw0MDU5Myw0MDYwNSw0MDYxMyw0''@;'; + put 'put ''MDYxNyw0MDYzMiw0MDYxOCw0MDYyMSwzODc1Myw0MDY1Miw0MDY1NCw0MDY1NSw0MDY1Niw0MDY2MCw0MDY2OCw0MDY3MCw0MDY2OSw0MDY3Miw0MDY3Nyw0MDY4MCw0MDY4Nyw0MDY5Miw0MDY5NCw0MDY5NSw0MDY5Nyw0MDY5OSw0MDcwMCw0MDcwMSw0MDcxMSw0MDcxMiwzMDM5MSw0MDcy''@;'; + put 'put ''NSw0MDczNyw0MDc0OCw0MDc2Niw0MDc3OCw0MDc4Niw0MDc4OCw0MDgwMyw0MDc5OSw0MDgwMCw0MDgwMSw0MDgwNiw0MDgwNyw0MDgxMiw0MDgxMCw0MDgyMyw0MDgxOCw0MDgyMiw0MDg1Myw0MDg2MCw0MDg2NCwyMjU3NSwyNzA3OSwzNjk1MywyOTc5NiwyMDk1NiwyOTA4MSxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsMzIzOTQsMzUxMDAsMzc3MDQsMzc1MTIsMzQwMTIsMjA0MjUsMjg4NTksMjYxNjEsMjY4MjQsMzc2MjUsMjYzNjMsMjQzODksMjAwMDgsMjAxOTMsMjAyMjAsMjAyMjQsMjAyMjcsMjAyODEsMjAzMTAsMjAzNzAsMjAzNjIsMjAzNzgsMjAzNzIsMjA0MjksMjA1NDQsMjA1MTQsMjA0Nzks''@;'; + put 'put ''MjA1MTAsMjA1NTAsMjA1OTIsMjA1NDYsMjA2MjgsMjA3MjQsMjA2OTYsMjA4MTAsMjA4MzYsMjA4OTMsMjA5MjYsMjA5NzIsMjEwMTMsMjExNDgsMjExNTgsMjExODQsMjEyMTEsMjEyNDgsMjEyNTUsMjEyODQsMjEzNjIsMjEzOTUsMjE0MjYsMjE0NjksNjQwMTQsMjE2NjAsMjE2NDIsMjE2''@;'; + put 'put ''NzMsMjE3NTksMjE4OTQsMjIzNjEsMjIzNzMsMjI0NDQsMjI0NzIsMjI0NzEsNjQwMTUsNjQwMTYsMjI2ODYsMjI3MDYsMjI3OTUsMjI4NjcsMjI4NzUsMjI4NzcsMjI4ODMsMjI5NDgsMjI5NzAsMjMzODIsMjM0ODgsMjk5OTksMjM1MTIsMjM1MzIsMjM1ODIsMjM3MTgsMjM3MzgsMjM3OTcs''@;'; + put 'put ''MjM4NDcsMjM4OTEsNjQwMTcsMjM4NzQsMjM5MTcsMjM5OTIsMjM5OTMsMjQwMTYsMjQzNTMsMjQzNzIsMjQ0MjMsMjQ1MDMsMjQ1NDIsMjQ2NjksMjQ3MDksMjQ3MTQsMjQ3OTgsMjQ3ODksMjQ4NjQsMjQ4MTgsMjQ4NDksMjQ4ODcsMjQ4ODAsMjQ5ODQsMjUxMDcsMjUyNTQsMjU1ODksMjU2''@;'; + put 'put ''OTYsMjU3NTcsMjU4MDYsMjU5MzQsMjYxMTIsMjYxMzMsMjYxNzEsMjYxMjEsMjYxNTgsMjYxNDIsMjYxNDgsMjYyMTMsMjYxOTksMjYyMDEsNjQwMTgsMjYyMjcsMjYyNjUsMjYyNzIsMjYyOTAsMjYzMDMsMjYzNjIsMjYzODIsNjM3ODUsMjY0NzAsMjY1NTUsMjY3MDYsMjY1NjAsMjY2MjUs''@;'; + put 'put ''MjY2OTIsMjY4MzEsNjQwMTksMjY5ODQsNjQwMjAsMjcwMzIsMjcxMDYsMjcxODQsMjcyNDMsMjcyMDYsMjcyNTEsMjcyNjIsMjczNjIsMjczNjQsMjc2MDYsMjc3MTEsMjc3NDAsMjc3ODIsMjc3NTksMjc4NjYsMjc5MDgsMjgwMzksMjgwMTUsMjgwNTQsMjgwNzYsMjgxMTEsMjgxNTIsMjgx''@;'; + put 'put ''NDYsMjgxNTYsMjgyMTcsMjgyNTIsMjgxOTksMjgyMjAsMjgzNTEsMjg1NTIsMjg1OTcsMjg2NjEsMjg2NzcsMjg2NzksMjg3MTIsMjg4MDUsMjg4NDMsMjg5NDMsMjg5MzIsMjkwMjAsMjg5OTgsMjg5OTksNjQwMjEsMjkxMjEsMjkxODIsMjkzNjEsMjkzNzQsMjk0NzYsNjQwMjIsMjk1NTks''@;'; + put 'put ''Mjk2MjksMjk2NDEsMjk2NTQsMjk2NjcsMjk2NTAsMjk3MDMsMjk2ODUsMjk3MzQsMjk3MzgsMjk3MzcsMjk3NDIsMjk3OTQsMjk4MzMsMjk4NTUsMjk5NTMsMzAwNjMsMzAzMzgsMzAzNjQsMzAzNjYsMzAzNjMsMzAzNzQsNjQwMjMsMzA1MzQsMjExNjcsMzA3NTMsMzA3OTgsMzA4MjAsMzA4''@;'; + put 'put ''NDIsMzEwMjQsNjQwMjQsNjQwMjUsNjQwMjYsMzExMjQsNjQwMjcsMzExMzEsMzE0NDEsMzE0NjMsNjQwMjgsMzE0NjcsMzE2NDYsNjQwMjksMzIwNzIsMzIwOTIsMzIxODMsMzIxNjAsMzIyMTQsMzIzMzgsMzI1ODMsMzI2NzMsNjQwMzAsMzM1MzcsMzM2MzQsMzM2NjMsMzM3MzUsMzM3ODIs''@;'; + put 'put ''MzM4NjQsMzM5NzIsMzQxMzEsMzQxMzcsMzQxNTUsNjQwMzEsMzQyMjQsNjQwMzIsNjQwMzMsMzQ4MjMsMzUwNjEsMzUzNDYsMzUzODMsMzU0NDksMzU0OTUsMzU1MTgsMzU1NTEsNjQwMzQsMzU1NzQsMzU2NjcsMzU3MTEsMzYwODAsMzYwODQsMzYxMTQsMzYyMTQsNjQwMzUsMzY1NTksNjQw''@;'; + put 'put ''MzYsNjQwMzcsMzY5NjcsMzcwODYsNjQwMzgsMzcxNDEsMzcxNTksMzczMzgsMzczMzUsMzczNDIsMzczNTcsMzczNTgsMzczNDgsMzczNDksMzczODIsMzczOTIsMzczODYsMzc0MzQsMzc0NDAsMzc0MzYsMzc0NTQsMzc0NjUsMzc0NTcsMzc0MzMsMzc0NzksMzc1NDMsMzc0OTUsMzc0OTYs''@;'; + put 'put ''Mzc2MDcsMzc1OTEsMzc1OTMsMzc1ODQsNjQwMzksMzc1ODksMzc2MDAsMzc1ODcsMzc2NjksMzc2NjUsMzc2MjcsNjQwNDAsMzc2NjIsMzc2MzEsMzc2NjEsMzc2MzQsMzc3NDQsMzc3MTksMzc3OTYsMzc4MzAsMzc4NTQsMzc4ODAsMzc5MzcsMzc5NTcsMzc5NjAsMzgyOTAsNjM5NjQsNjQw''@;'; + put 'put ''NDEsMzg1NTcsMzg1NzUsMzg3MDcsMzg3MTUsMzg3MjMsMzg3MzMsMzg3MzUsMzg3MzcsMzg3NDEsMzg5OTksMzkwMTMsNjQwNDIsNjQwNDMsMzkyMDcsNjQwNDQsMzkzMjYsMzk1MDIsMzk2NDEsMzk2NDQsMzk3OTcsMzk3OTQsMzk4MjMsMzk4NTcsMzk4NjcsMzk5MzYsNDAzMDQsNDAyOTks''@;'; + put 'put ''NjQwNDUsNDA0NzMsNDA2NTcsbnVsbCxudWxsLDg1NjAsODU2MSw4NTYyLDg1NjMsODU2NCw4NTY1LDg1NjYsODU2Nyw4NTY4LDg1NjksNjU1MDYsNjU1MDgsNjUyODcsNjUyODIsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw4NTYwLDg1NjEsODU2Miw4NTYzLDg1NjQsODU2NSw4NTY2LDg1NjcsODU2OCw4NTY5LDg1NDQsODU0NSw4NTQ2LDg1NDcsODU0OCw4NTQ5LDg1NTAsODU1MSw4NTUyLDg1NTMsNjU1MDYsNjU1MDgsNjUyODcs''@;'; + put 'put ''NjUyODIsMTI4NDksODQ3MCw4NDgxLDg3NTcsMzIzOTQsMzUxMDAsMzc3MDQsMzc1MTIsMzQwMTIsMjA0MjUsMjg4NTksMjYxNjEsMjY4MjQsMzc2MjUsMjYzNjMsMjQzODksMjAwMDgsMjAxOTMsMjAyMjAsMjAyMjQsMjAyMjcsMjAyODEsMjAzMTAsMjAzNzAsMjAzNjIsMjAzNzgsMjAzNzIs''@;'; + put 'put ''MjA0MjksMjA1NDQsMjA1MTQsMjA0NzksMjA1MTAsMjA1NTAsMjA1OTIsMjA1NDYsMjA2MjgsMjA3MjQsMjA2OTYsMjA4MTAsMjA4MzYsMjA4OTMsMjA5MjYsMjA5NzIsMjEwMTMsMjExNDgsMjExNTgsMjExODQsMjEyMTEsMjEyNDgsMjEyNTUsMjEyODQsMjEzNjIsMjEzOTUsMjE0MjYsMjE0''@;'; + put 'put ''NjksNjQwMTQsMjE2NjAsMjE2NDIsMjE2NzMsMjE3NTksMjE4OTQsMjIzNjEsMjIzNzMsMjI0NDQsMjI0NzIsMjI0NzEsNjQwMTUsNjQwMTYsMjI2ODYsMjI3MDYsMjI3OTUsMjI4NjcsMjI4NzUsMjI4NzcsMjI4ODMsMjI5NDgsMjI5NzAsMjMzODIsMjM0ODgsMjk5OTksMjM1MTIsMjM1MzIs''@;'; + put 'put ''MjM1ODIsMjM3MTgsMjM3MzgsMjM3OTcsMjM4NDcsMjM4OTEsNjQwMTcsMjM4NzQsMjM5MTcsMjM5OTIsMjM5OTMsMjQwMTYsMjQzNTMsMjQzNzIsMjQ0MjMsMjQ1MDMsMjQ1NDIsMjQ2NjksMjQ3MDksMjQ3MTQsMjQ3OTgsMjQ3ODksMjQ4NjQsMjQ4MTgsMjQ4NDksMjQ4ODcsMjQ4ODAsMjQ5''@;'; + put 'put ''ODQsMjUxMDcsMjUyNTQsMjU1ODksMjU2OTYsMjU3NTcsMjU4MDYsMjU5MzQsMjYxMTIsMjYxMzMsMjYxNzEsMjYxMjEsMjYxNTgsMjYxNDIsMjYxNDgsMjYyMTMsMjYxOTksMjYyMDEsNjQwMTgsMjYyMjcsMjYyNjUsMjYyNzIsMjYyOTAsMjYzMDMsMjYzNjIsMjYzODIsNjM3ODUsMjY0NzAs''@;'; + put 'put ''MjY1NTUsMjY3MDYsMjY1NjAsMjY2MjUsMjY2OTIsMjY4MzEsNjQwMTksMjY5ODQsNjQwMjAsMjcwMzIsMjcxMDYsMjcxODQsMjcyNDMsMjcyMDYsMjcyNTEsMjcyNjIsMjczNjIsMjczNjQsMjc2MDYsMjc3MTEsMjc3NDAsMjc3ODIsMjc3NTksMjc4NjYsMjc5MDgsMjgwMzksMjgwMTUsMjgw''@;'; + put 'put ''NTQsMjgwNzYsMjgxMTEsMjgxNTIsMjgxNDYsMjgxNTYsMjgyMTcsMjgyNTIsMjgxOTksMjgyMjAsMjgzNTEsMjg1NTIsMjg1OTcsMjg2NjEsMjg2NzcsMjg2NzksMjg3MTIsMjg4MDUsMjg4NDMsMjg5NDMsMjg5MzIsMjkwMjAsMjg5OTgsMjg5OTksNjQwMjEsMjkxMjEsMjkxODIsMjkzNjEs''@;'; + put 'put ''MjkzNzQsMjk0NzYsNjQwMjIsMjk1NTksMjk2MjksMjk2NDEsMjk2NTQsMjk2NjcsMjk2NTAsMjk3MDMsMjk2ODUsMjk3MzQsMjk3MzgsMjk3MzcsMjk3NDIsMjk3OTQsMjk4MzMsMjk4NTUsMjk5NTMsMzAwNjMsMzAzMzgsMzAzNjQsMzAzNjYsMzAzNjMsMzAzNzQsNjQwMjMsMzA1MzQsMjEx''@;'; + put 'put ''NjcsMzA3NTMsMzA3OTgsMzA4MjAsMzA4NDIsMzEwMjQsNjQwMjQsNjQwMjUsNjQwMjYsMzExMjQsNjQwMjcsMzExMzEsMzE0NDEsMzE0NjMsNjQwMjgsMzE0NjcsMzE2NDYsNjQwMjksMzIwNzIsMzIwOTIsMzIxODMsMzIxNjAsMzIyMTQsMzIzMzgsMzI1ODMsMzI2NzMsNjQwMzAsMzM1Mzcs''@;'; + put 'put ''MzM2MzQsMzM2NjMsMzM3MzUsMzM3ODIsMzM4NjQsMzM5NzIsMzQxMzEsMzQxMzcsMzQxNTUsNjQwMzEsMzQyMjQsNjQwMzIsNjQwMzMsMzQ4MjMsMzUwNjEsMzUzNDYsMzUzODMsMzU0NDksMzU0OTUsMzU1MTgsMzU1NTEsNjQwMzQsMzU1NzQsMzU2NjcsMzU3MTEsMzYwODAsMzYwODQsMzYx''@;'; + put 'put ''MTQsMzYyMTQsNjQwMzUsMzY1NTksNjQwMzYsNjQwMzcsMzY5NjcsMzcwODYsNjQwMzgsMzcxNDEsMzcxNTksMzczMzgsMzczMzUsMzczNDIsMzczNTcsMzczNTgsMzczNDgsMzczNDksMzczODIsMzczOTIsMzczODYsMzc0MzQsMzc0NDAsMzc0MzYsMzc0NTQsMzc0NjUsMzc0NTcsMzc0MzMs''@;'; + put 'put ''Mzc0NzksMzc1NDMsMzc0OTUsMzc0OTYsMzc2MDcsMzc1OTEsMzc1OTMsMzc1ODQsNjQwMzksMzc1ODksMzc2MDAsMzc1ODcsMzc2NjksMzc2NjUsMzc2MjcsNjQwNDAsMzc2NjIsMzc2MzEsMzc2NjEsMzc2MzQsMzc3NDQsMzc3MTksMzc3OTYsMzc4MzAsMzc4NTQsMzc4ODAsMzc5MzcsMzc5''@;'; + put 'put ''NTcsMzc5NjAsMzgyOTAsNjM5NjQsNjQwNDEsMzg1NTcsMzg1NzUsMzg3MDcsMzg3MTUsMzg3MjMsMzg3MzMsMzg3MzUsMzg3MzcsMzg3NDEsMzg5OTksMzkwMTMsNjQwNDIsNjQwNDMsMzkyMDcsNjQwNDQsMzkzMjYsMzk1MDIsMzk2NDEsMzk2NDQsMzk3OTcsMzk3OTQsMzk4MjMsMzk4NTcs''@;'; + put 'put ''Mzk4NjcsMzk5MzYsNDAzMDQsNDAyOTksNjQwNDUsNDA0NzMsNDA2NTcsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsXSxqaXMwMjEyOltudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw3MjgsNzExLDE4NCw3''@;'; + put 'put ''MjksNzMzLDE3NSw3MzEsNzMwLDY1Mzc0LDkwMCw5MDEsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDE2MSwxNjYsMTkxLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwxODYsMTcwLDE2OSwxNzQsODQ4MiwxNjQsODQ3MCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsOTAyLDkwNCw5MDUsOTA2LDkzOCxudWxsLDkwOCxudWxsLDkxMCw5MzksbnVs''@;'; + put 'put ''bCw5MTEsbnVsbCxudWxsLG51bGwsbnVsbCw5NDAsOTQxLDk0Miw5NDMsOTcwLDkxMiw5NzIsOTYyLDk3Myw5NzEsOTQ0LDk3NCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsMTAyNiwxMDI3LDEwMjgsMTAyOSwxMDMwLDEwMzEsMTAzMiwxMDMzLDEwMzQsMTAzNSwxMDM2LDEwMzgsMTAzOSxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsMTEwNiwx''@;'; + put 'put ''MTA3LDExMDgsMTEwOSwxMTEwLDExMTEsMTExMiwxMTEzLDExMTQsMTExNSwxMTE2LDExMTgsMTExOSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDE5OCwyNzIsbnVsbCwyOTQsbnVsbCwzMDYsbnVsbCwzMjEsMzE5LG51bGwsMzMwLDIxNiwzMzgsbnVsbCwzNTgsMjIyLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsMjMwLDI3MywyNDAsMjk1LDMwNSwzMDcsMzEyLDMyMiwzMjAsMzI5LDMzMSwyNDgsMzM5LDIyMywzNTksMjU0LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsMTkzLDE5MiwxOTYsMTk0LDI1''@;'; + put 'put ''OCw0NjEsMjU2LDI2MCwxOTcsMTk1LDI2MiwyNjQsMjY4LDE5OSwyNjYsMjcwLDIwMSwyMDAsMjAzLDIwMiwyODIsMjc4LDI3NCwyODAsbnVsbCwyODQsMjg2LDI5MCwyODgsMjkyLDIwNSwyMDQsMjA3LDIwNiw0NjMsMzA0LDI5OCwzMDIsMjk2LDMwOCwzMTAsMzEzLDMxNywzMTUsMzIzLDMy''@;'; + put 'put ''NywzMjUsMjA5LDIxMSwyMTAsMjE0LDIxMiw0NjUsMzM2LDMzMiwyMTMsMzQwLDM0NCwzNDIsMzQ2LDM0OCwzNTIsMzUwLDM1NiwzNTQsMjE4LDIxNywyMjAsMjE5LDM2NCw0NjcsMzY4LDM2MiwzNzAsMzY2LDM2MCw0NzEsNDc1LDQ3Myw0NjksMzcyLDIyMSwzNzYsMzc0LDM3NywzODEsMzc5''@;'; + put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsMjI1LDIyNCwyMjgsMjI2LDI1OSw0NjIsMjU3LDI2MSwyMjksMjI3LDI2MywyNjUsMjY5LDIzMSwyNjcsMjcxLDIzMywyMzIsMjM1LDIzNCwyODMsMjc5LDI3NSwyODEsNTAxLDI4NSwyODcsbnVsbCwyODksMjkzLDIzNywyMzYs''@;'; + put 'put ''MjM5LDIzOCw0NjQsbnVsbCwyOTksMzAzLDI5NywzMDksMzExLDMxNCwzMTgsMzE2LDMyNCwzMjgsMzI2LDI0MSwyNDMsMjQyLDI0NiwyNDQsNDY2LDMzNywzMzMsMjQ1LDM0MSwzNDUsMzQzLDM0NywzNDksMzUzLDM1MSwzNTcsMzU1LDI1MCwyNDksMjUyLDI1MSwzNjUsNDY4LDM2OSwzNjMs''@;'; + put 'put ''MzcxLDM2NywzNjEsNDcyLDQ3Niw0NzQsNDcwLDM3MywyNTMsMjU1LDM3NSwzNzgsMzgyLDM4MCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; + put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; + put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; + put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; + put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; + put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; + put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; + put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; + put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; + put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; + put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; + put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsMTk5NzAsMTk5''@;'; + put 'put ''NzIsMTk5NzMsMTk5ODAsMTk5ODYsMTk5OTksMjAwMDMsMjAwMDQsMjAwMDgsMjAwMTEsMjAwMTQsMjAwMTUsMjAwMTYsMjAwMjEsMjAwMzIsMjAwMzMsMjAwMzYsMjAwMzksMjAwNDksMjAwNTgsMjAwNjAsMjAwNjcsMjAwNzIsMjAwNzMsMjAwODQsMjAwODUsMjAwODksMjAwOTUsMjAxMDks''@;'; + put 'put ''MjAxMTgsMjAxMTksMjAxMjUsMjAxNDMsMjAxNTMsMjAxNjMsMjAxNzYsMjAxODYsMjAxODcsMjAxOTIsMjAxOTMsMjAxOTQsMjAyMDAsMjAyMDcsMjAyMDksMjAyMTEsMjAyMTMsMjAyMjEsMjAyMjIsMjAyMjMsMjAyMjQsMjAyMjYsMjAyMjcsMjAyMzIsMjAyMzUsMjAyMzYsMjAyNDIsMjAy''@;'; + put 'put ''NDUsMjAyNDYsMjAyNDcsMjAyNDksMjAyNzAsMjAyNzMsMjAzMjAsMjAyNzUsMjAyNzcsMjAyNzksMjAyODEsMjAyODMsMjAyODYsMjAyODgsMjAyOTAsMjAyOTYsMjAyOTcsMjAyOTksMjAzMDAsMjAzMDYsMjAzMDgsMjAzMTAsMjAzMTIsMjAzMTksMjAzMjMsMjAzMzAsMjAzMzIsMjAzMzQs''@;'; + put 'put ''MjAzMzcsMjAzNDMsMjAzNDQsMjAzNDUsMjAzNDYsMjAzNDksMjAzNTAsMjAzNTMsMjAzNTQsMjAzNTYsMjAzNTcsMjAzNjEsMjAzNjIsMjAzNjQsMjAzNjYsMjAzNjgsMjAzNzAsMjAzNzEsMjAzNzIsMjAzNzUsMjAzNzcsMjAzNzgsMjAzODIsMjAzODMsMjA0MDIsMjA0MDcsMjA0MDksMjA0''@;'; + put 'put ''MTEsMjA0MTIsMjA0MTMsMjA0MTQsMjA0MTYsMjA0MTcsMjA0MjEsMjA0MjIsMjA0MjQsMjA0MjUsMjA0MjcsMjA0MjgsMjA0MjksMjA0MzEsMjA0MzQsMjA0NDQsMjA0NDgsMjA0NTAsMjA0NjQsMjA0NjYsMjA0NzYsMjA0NzcsMjA0NzksMjA0ODAsMjA0ODEsMjA0ODQsMjA0ODcsMjA0OTAs''@;'; + put 'put ''MjA0OTIsMjA0OTQsMjA0OTYsMjA0OTksMjA1MDMsMjA1MDQsMjA1MDcsMjA1MDgsMjA1MDksMjA1MTAsMjA1MTQsMjA1MTksMjA1MjYsMjA1MjgsMjA1MzAsMjA1MzEsMjA1MzMsMjA1NDQsMjA1NDUsMjA1NDYsMjA1NDksMjA1NTAsMjA1NTQsMjA1NTYsMjA1NTgsMjA1NjEsMjA1NjIsMjA1''@;'; + put 'put ''NjMsMjA1NjcsMjA1NjksMjA1NzUsMjA1NzYsMjA1NzgsMjA1NzksMjA1ODIsMjA1ODMsMjA1ODYsMjA1ODksMjA1OTIsMjA1OTMsMjA1MzksMjA2MDksMjA2MTEsMjA2MTIsMjA2MTQsMjA2MTgsMjA2MjIsMjA2MjMsMjA2MjQsMjA2MjYsMjA2MjcsMjA2MjgsMjA2MzAsMjA2MzUsMjA2MzYs''@;'; + put 'put ''MjA2MzgsMjA2MzksMjA2NDAsMjA2NDEsMjA2NDIsMjA2NTAsMjA2NTUsMjA2NTYsMjA2NjUsMjA2NjYsMjA2NjksMjA2NzIsMjA2NzUsMjA2NzYsMjA2NzksMjA2ODQsMjA2ODYsMjA2ODgsMjA2OTEsMjA2OTIsMjA2OTYsMjA3MDAsMjA3MDEsMjA3MDMsMjA3MDYsMjA3MDgsMjA3MTAsMjA3''@;'; + put 'put ''MTIsMjA3MTMsMjA3MTksMjA3MjEsMjA3MjYsMjA3MzAsMjA3MzQsMjA3MzksMjA3NDIsMjA3NDMsMjA3NDQsMjA3NDcsMjA3NDgsMjA3NDksMjA3NTAsMjA3MjIsMjA3NTIsMjA3NTksMjA3NjEsMjA3NjMsMjA3NjQsMjA3NjUsMjA3NjYsMjA3NzEsMjA3NzUsMjA3NzYsMjA3ODAsMjA3ODEs''@;'; + put 'put ''MjA3ODMsMjA3ODUsMjA3ODcsMjA3ODgsMjA3ODksMjA3OTIsMjA3OTMsMjA4MDIsMjA4MTAsMjA4MTUsMjA4MTksMjA4MjEsMjA4MjMsMjA4MjQsMjA4MzEsMjA4MzYsMjA4MzgsMjA4NjIsMjA4NjcsMjA4NjgsMjA4NzUsMjA4NzgsMjA4ODgsMjA4OTMsMjA4OTcsMjA4OTksMjA5MDksMjA5''@;'; + put 'put ''MjAsMjA5MjIsMjA5MjQsMjA5MjYsMjA5MjcsMjA5MzAsMjA5MzYsMjA5NDMsMjA5NDUsMjA5NDYsMjA5NDcsMjA5NDksMjA5NTIsMjA5NTgsMjA5NjIsMjA5NjUsMjA5NzQsMjA5NzgsMjA5NzksMjA5ODAsMjA5ODMsMjA5OTMsMjA5OTQsMjA5OTcsMjEwMTAsMjEwMTEsMjEwMTMsMjEwMTQs''@;'; + put 'put ''MjEwMTYsMjEwMjYsMjEwMzIsMjEwNDEsMjEwNDIsMjEwNDUsMjEwNTIsMjEwNjEsMjEwNjUsMjEwNzcsMjEwNzksMjEwODAsMjEwODIsMjEwODQsMjEwODcsMjEwODgsMjEwODksMjEwOTQsMjExMDIsMjExMTEsMjExMTIsMjExMTMsMjExMjAsMjExMjIsMjExMjUsMjExMzAsMjExMzIsMjEx''@;'; + put 'put ''MzksMjExNDEsMjExNDIsMjExNDMsMjExNDQsMjExNDYsMjExNDgsMjExNTYsMjExNTcsMjExNTgsMjExNTksMjExNjcsMjExNjgsMjExNzQsMjExNzUsMjExNzYsMjExNzgsMjExNzksMjExODEsMjExODQsMjExODgsMjExOTAsMjExOTIsMjExOTYsMjExOTksMjEyMDEsMjEyMDQsMjEyMDYs''@;'; + put 'put ''MjEyMTEsMjEyMTIsMjEyMTcsMjEyMjEsMjEyMjQsMjEyMjUsMjEyMjYsMjEyMjgsMjEyMzIsMjEyMzMsMjEyMzYsMjEyMzgsMjEyMzksMjEyNDgsMjEyNTEsMjEyNTgsMjEyNTksMjEyNjAsMjEyNjUsMjEyNjcsMjEyNzIsMjEyNzUsMjEyNzYsMjEyNzgsMjEyNzksMjEyODUsMjEyODcsMjEy''@;'; + put 'put ''ODgsMjEyODksMjEyOTEsMjEyOTIsMjEyOTMsMjEyOTYsMjEyOTgsMjEzMDEsMjEzMDgsMjEzMDksMjEzMTAsMjEzMTQsMjEzMjQsMjEzMjMsMjEzMzcsMjEzMzksMjEzNDUsMjEzNDcsMjEzNDksMjEzNTYsMjEzNTcsMjEzNjIsMjEzNjksMjEzNzQsMjEzNzksMjEzODMsMjEzODQsMjEzOTAs''@;'; + put 'put ''MjEzOTUsMjEzOTYsMjE0MDEsMjE0MDUsMjE0MDksMjE0MTIsMjE0MTgsMjE0MTksMjE0MjMsMjE0MjYsMjE0MjgsMjE0MjksMjE0MzEsMjE0MzIsMjE0MzQsMjE0MzcsMjE0NDAsMjE0NDUsMjE0NTUsMjE0NTgsMjE0NTksMjE0NjEsMjE0NjYsMjE0NjksMjE0NzAsMjE0NzIsMjE0NzgsMjE0''@;'; + put 'put ''NzksMjE0OTMsMjE1MDYsMjE1MjMsMjE1MzAsMjE1MzcsMjE1NDMsMjE1NDQsMjE1NDYsMjE1NTEsMjE1NTMsMjE1NTYsMjE1NTcsMjE1NzEsMjE1NzIsMjE1NzUsMjE1ODEsMjE1ODMsMjE1OTgsMjE2MDIsMjE2MDQsMjE2MDYsMjE2MDcsMjE2MDksMjE2MTEsMjE2MTMsMjE2MTQsMjE2MjAs''@;'; + put 'put ''MjE2MzEsMjE2MzMsMjE2MzUsMjE2MzcsMjE2NDAsMjE2NDEsMjE2NDUsMjE2NDksMjE2NTMsMjE2NTQsMjE2NjAsMjE2NjMsMjE2NjUsMjE2NzAsMjE2NzEsMjE2NzMsMjE2NzQsMjE2NzcsMjE2NzgsMjE2ODEsMjE2ODcsMjE2ODksMjE2OTAsMjE2OTEsMjE2OTUsMjE3MDIsMjE3MDYsMjE3''@;'; + put 'put ''MDksMjE3MTAsMjE3MjgsMjE3MzgsMjE3NDAsMjE3NDMsMjE3NTAsMjE3NTYsMjE3NTgsMjE3NTksMjE3NjAsMjE3NjEsMjE3NjUsMjE3NjgsMjE3NjksMjE3NzIsMjE3NzMsMjE3NzQsMjE3ODEsMjE4MDIsMjE4MDMsMjE4MTAsMjE4MTMsMjE4MTQsMjE4MTksMjE4MjAsMjE4MjEsMjE4MjUs''@;'; + put 'put ''MjE4MzEsMjE4MzMsMjE4MzQsMjE4MzcsMjE4NDAsMjE4NDEsMjE4NDgsMjE4NTAsMjE4NTEsMjE4NTQsMjE4NTYsMjE4NTcsMjE4NjAsMjE4NjIsMjE4ODcsMjE4ODksMjE4OTAsMjE4OTQsMjE4OTYsMjE5MDIsMjE5MDMsMjE5MDUsMjE5MDYsMjE5MDcsMjE5MDgsMjE5MTEsMjE5MjMsMjE5''@;'; + put 'put ''MjQsMjE5MzMsMjE5MzgsMjE5NTEsMjE5NTMsMjE5NTUsMjE5NTgsMjE5NjEsMjE5NjMsMjE5NjQsMjE5NjYsMjE5NjksMjE5NzAsMjE5NzEsMjE5NzUsMjE5NzYsMjE5NzksMjE5ODIsMjE5ODYsMjE5OTMsMjIwMDYsMjIwMTUsMjIwMjEsMjIwMjQsMjIwMjYsMjIwMjksMjIwMzAsMjIwMzEs''@;'; + put 'put ''MjIwMzIsMjIwMzMsMjIwMzQsMjIwNDEsMjIwNjAsMjIwNjQsMjIwNjcsMjIwNjksMjIwNzEsMjIwNzMsMjIwNzUsMjIwNzYsMjIwNzcsMjIwNzksMjIwODAsMjIwODEsMjIwODMsMjIwODQsMjIwODYsMjIwODksMjIwOTEsMjIwOTMsMjIwOTUsMjIxMDAsMjIxMTAsMjIxMTIsMjIxMTMsMjIx''@;'; + put 'put ''MTQsMjIxMTUsMjIxMTgsMjIxMjEsMjIxMjUsMjIxMjcsMjIxMjksMjIxMzAsMjIxMzMsMjIxNDgsMjIxNDksMjIxNTIsMjIxNTUsMjIxNTYsMjIxNjUsMjIxNjksMjIxNzAsMjIxNzMsMjIxNzQsMjIxNzUsMjIxODIsMjIxODMsMjIxODQsMjIxODUsMjIxODcsMjIxODgsMjIxODksMjIxOTMs''@;'; + put 'put ''MjIxOTUsMjIxOTksMjIyMDYsMjIyMTMsMjIyMTcsMjIyMTgsMjIyMTksMjIyMjMsMjIyMjQsMjIyMjAsMjIyMjEsMjIyMzMsMjIyMzYsMjIyMzcsMjIyMzksMjIyNDEsMjIyNDQsMjIyNDUsMjIyNDYsMjIyNDcsMjIyNDgsMjIyNTcsMjIyNTEsMjIyNTMsMjIyNjIsMjIyNjMsMjIyNzMsMjIy''@;'; + put 'put ''NzQsMjIyNzksMjIyODIsMjIyODQsMjIyODksMjIyOTMsMjIyOTgsMjIyOTksMjIzMDEsMjIzMDQsMjIzMDYsMjIzMDcsMjIzMDgsMjIzMDksMjIzMTMsMjIzMTQsMjIzMTYsMjIzMTgsMjIzMTksMjIzMjMsMjIzMjQsMjIzMzMsMjIzMzQsMjIzMzUsMjIzNDEsMjIzNDIsMjIzNDgsMjIzNDks''@;'; + put 'put ''MjIzNTQsMjIzNzAsMjIzNzMsMjIzNzUsMjIzNzYsMjIzNzksMjIzODEsMjIzODIsMjIzODMsMjIzODQsMjIzODUsMjIzODcsMjIzODgsMjIzODksMjIzOTEsMjIzOTMsMjIzOTQsMjIzOTUsMjIzOTYsMjIzOTgsMjI0MDEsMjI0MDMsMjI0MTIsMjI0MjAsMjI0MjMsMjI0MjUsMjI0MjYsMjI0''@;'; + put 'put ''MjgsMjI0MjksMjI0MzAsMjI0MzEsMjI0MzMsMjI0MjEsMjI0MzksMjI0NDAsMjI0NDEsMjI0NDQsMjI0NTYsMjI0NjEsMjI0NzEsMjI0NzIsMjI0NzYsMjI0NzksMjI0ODUsMjI0OTMsMjI0OTQsMjI1MDAsMjI1MDIsMjI1MDMsMjI1MDUsMjI1MDksMjI1MTIsMjI1MTcsMjI1MTgsMjI1MjAs''@;'; + put 'put ''MjI1MjUsMjI1MjYsMjI1MjcsMjI1MzEsMjI1MzIsMjI1MzYsMjI1MzcsMjI0OTcsMjI1NDAsMjI1NDEsMjI1NTUsMjI1NTgsMjI1NTksMjI1NjAsMjI1NjYsMjI1NjcsMjI1NzMsMjI1NzgsMjI1ODUsMjI1OTEsMjI2MDEsMjI2MDQsMjI2MDUsMjI2MDcsMjI2MDgsMjI2MTMsMjI2MjMsMjI2''@;'; + put 'put ''MjUsMjI2MjgsMjI2MzEsMjI2MzIsMjI2NDgsMjI2NTIsMjI2NTUsMjI2NTYsMjI2NTcsMjI2NjMsMjI2NjQsMjI2NjUsMjI2NjYsMjI2NjgsMjI2NjksMjI2NzEsMjI2NzIsMjI2NzYsMjI2NzgsMjI2ODUsMjI2ODgsMjI2ODksMjI2OTAsMjI2OTQsMjI2OTcsMjI3MDUsMjI3MDYsMjI3MjQs''@;'; + put 'put ''MjI3MTYsMjI3MjIsMjI3MjgsMjI3MzMsMjI3MzQsMjI3MzYsMjI3MzgsMjI3NDAsMjI3NDIsMjI3NDYsMjI3NDksMjI3NTMsMjI3NTQsMjI3NjEsMjI3NzEsMjI3ODksMjI3OTAsMjI3OTUsMjI3OTYsMjI4MDIsMjI4MDMsMjI4MDQsMzQzNjksMjI4MTMsMjI4MTcsMjI4MTksMjI4MjAsMjI4''@;'; + put 'put ''MjQsMjI4MzEsMjI4MzIsMjI4MzUsMjI4MzcsMjI4MzgsMjI4NDcsMjI4NTEsMjI4NTQsMjI4NjYsMjI4NjcsMjI4NzMsMjI4NzUsMjI4NzcsMjI4NzgsMjI4NzksMjI4ODEsMjI4ODMsMjI4OTEsMjI4OTMsMjI4OTUsMjI4OTgsMjI5MDEsMjI5MDIsMjI5MDUsMjI5MDcsMjI5MDgsMjI5MjMs''@;'; + put 'put ''MjI5MjQsMjI5MjYsMjI5MzAsMjI5MzMsMjI5MzUsMjI5NDMsMjI5NDgsMjI5NTEsMjI5NTcsMjI5NTgsMjI5NTksMjI5NjAsMjI5NjMsMjI5NjcsMjI5NzAsMjI5NzIsMjI5NzcsMjI5NzksMjI5ODAsMjI5ODQsMjI5ODYsMjI5ODksMjI5OTQsMjMwMDUsMjMwMDYsMjMwMDcsMjMwMTEsMjMw''@;'; + put 'put ''MTIsMjMwMTUsMjMwMjIsMjMwMjMsMjMwMjUsMjMwMjYsMjMwMjgsMjMwMzEsMjMwNDAsMjMwNDQsMjMwNTIsMjMwNTMsMjMwNTQsMjMwNTgsMjMwNTksMjMwNzAsMjMwNzUsMjMwNzYsMjMwNzksMjMwODAsMjMwODIsMjMwODUsMjMwODgsMjMxMDgsMjMxMDksMjMxMTEsMjMxMTIsMjMxMTYs''@;'; + put 'put ''MjMxMjAsMjMxMjUsMjMxMzQsMjMxMzksMjMxNDEsMjMxNDMsMjMxNDksMjMxNTksMjMxNjIsMjMxNjMsMjMxNjYsMjMxNzksMjMxODQsMjMxODcsMjMxOTAsMjMxOTMsMjMxOTYsMjMxOTgsMjMxOTksMjMyMDAsMjMyMDIsMjMyMDcsMjMyMTIsMjMyMTcsMjMyMTgsMjMyMTksMjMyMjEsMjMy''@;'; + put 'put ''MjQsMjMyMjYsMjMyMjcsMjMyMzEsMjMyMzYsMjMyMzgsMjMyNDAsMjMyNDcsMjMyNTgsMjMyNjAsMjMyNjQsMjMyNjksMjMyNzQsMjMyNzgsMjMyODUsMjMyODYsMjMyOTMsMjMyOTYsMjMyOTcsMjMzMDQsMjMzMTksMjMzNDgsMjMzMjEsMjMzMjMsMjMzMjUsMjMzMjksMjMzMzMsMjMzNDEs''@;'; + put 'put ''MjMzNTIsMjMzNjEsMjMzNzEsMjMzNzIsMjMzNzgsMjMzODIsMjMzOTAsMjM0MDAsMjM0MDYsMjM0MDcsMjM0MjAsMjM0MjEsMjM0MjIsMjM0MjMsMjM0MjUsMjM0MjgsMjM0MzAsMjM0MzQsMjM0MzgsMjM0NDAsMjM0NDEsMjM0NDMsMjM0NDQsMjM0NDYsMjM0NjQsMjM0NjUsMjM0NjgsMjM0''@;'; + put 'put ''NjksMjM0NzEsMjM0NzMsMjM0NzQsMjM0NzksMjM0ODIsMjM0ODQsMjM0ODgsMjM0ODksMjM1MDEsMjM1MDMsMjM1MTAsMjM1MTEsMjM1MTIsMjM1MTMsMjM1MTQsMjM1MjAsMjM1MzUsMjM1MzcsMjM1NDAsMjM1NDksMjM1NjQsMjM1NzUsMjM1ODIsMjM1ODMsMjM1ODcsMjM1OTAsMjM1OTMs''@;'; + put 'put ''MjM1OTUsMjM1OTYsMjM1OTgsMjM2MDAsMjM2MDIsMjM2MDUsMjM2MDYsMjM2NDEsMjM2NDIsMjM2NDQsMjM2NTAsMjM2NTEsMjM2NTUsMjM2NTYsMjM2NTcsMjM2NjEsMjM2NjQsMjM2NjgsMjM2NjksMjM2NzQsMjM2NzUsMjM2NzYsMjM2NzcsMjM2ODcsMjM2ODgsMjM2OTAsMjM2OTUsMjM2''@;'; + put 'put ''OTgsMjM3MDksMjM3MTEsMjM3MTIsMjM3MTQsMjM3MTUsMjM3MTgsMjM3MjIsMjM3MzAsMjM3MzIsMjM3MzMsMjM3MzgsMjM3NTMsMjM3NTUsMjM3NjIsMjM3NzMsMjM3NjcsMjM3OTAsMjM3OTMsMjM3OTQsMjM3OTYsMjM4MDksMjM4MTQsMjM4MjEsMjM4MjYsMjM4NTEsMjM4NDMsMjM4NDQs''@;'; + put 'put ''MjM4NDYsMjM4NDcsMjM4NTcsMjM4NjAsMjM4NjUsMjM4NjksMjM4NzEsMjM4NzQsMjM4NzUsMjM4NzgsMjM4ODAsMjM4OTMsMjM4ODksMjM4OTcsMjM4ODIsMjM5MDMsMjM5MDQsMjM5MDUsMjM5MDYsMjM5MDgsMjM5MTQsMjM5MTcsMjM5MjAsMjM5MjksMjM5MzAsMjM5MzQsMjM5MzUsMjM5''@;'; + put 'put ''MzcsMjM5MzksMjM5NDQsMjM5NDYsMjM5NTQsMjM5NTUsMjM5NTYsMjM5NTcsMjM5NjEsMjM5NjMsMjM5NjcsMjM5NjgsMjM5NzUsMjM5NzksMjM5ODQsMjM5ODgsMjM5OTIsMjM5OTMsMjQwMDMsMjQwMDcsMjQwMTEsMjQwMTYsMjQwMTQsMjQwMjQsMjQwMjUsMjQwMzIsMjQwMzYsMjQwNDEs''@;'; + put 'put ''MjQwNTYsMjQwNTcsMjQwNjQsMjQwNzEsMjQwNzcsMjQwODIsMjQwODQsMjQwODUsMjQwODgsMjQwOTUsMjQwOTYsMjQxMTAsMjQxMDQsMjQxMTQsMjQxMTcsMjQxMjYsMjQxMzksMjQxNDQsMjQxMzcsMjQxNDUsMjQxNTAsMjQxNTIsMjQxNTUsMjQxNTYsMjQxNTgsMjQxNjgsMjQxNzAsMjQx''@;'; + put 'put ''NzEsMjQxNzIsMjQxNzMsMjQxNzQsMjQxNzYsMjQxOTIsMjQyMDMsMjQyMDYsMjQyMjYsMjQyMjgsMjQyMjksMjQyMzIsMjQyMzQsMjQyMzYsMjQyNDEsMjQyNDMsMjQyNTMsMjQyNTQsMjQyNTUsMjQyNjIsMjQyNjgsMjQyNjcsMjQyNzAsMjQyNzMsMjQyNzQsMjQyNzYsMjQyNzcsMjQyODQs''@;'; + put 'put ''MjQyODYsMjQyOTMsMjQyOTksMjQzMjIsMjQzMjYsMjQzMjcsMjQzMjgsMjQzMzQsMjQzNDUsMjQzNDgsMjQzNDksMjQzNTMsMjQzNTQsMjQzNTUsMjQzNTYsMjQzNjAsMjQzNjMsMjQzNjQsMjQzNjYsMjQzNjgsMjQzNzIsMjQzNzQsMjQzNzksMjQzODEsMjQzODMsMjQzODQsMjQzODgsMjQz''@;'; + put 'put ''ODksMjQzOTEsMjQzOTcsMjQ0MDAsMjQ0MDQsMjQ0MDgsMjQ0MTEsMjQ0MTYsMjQ0MTksMjQ0MjAsMjQ0MjMsMjQ0MzEsMjQ0MzQsMjQ0MzYsMjQ0MzcsMjQ0NDAsMjQ0NDIsMjQ0NDUsMjQ0NDYsMjQ0NTcsMjQ0NjEsMjQ0NjMsMjQ0NzAsMjQ0NzYsMjQ0NzcsMjQ0ODIsMjQ0ODcsMjQ0OTEs''@;'; + put 'put ''MjQ0ODQsMjQ0OTIsMjQ0OTUsMjQ0OTYsMjQ0OTcsMjQ1MDQsMjQ1MTYsMjQ1MTksMjQ1MjAsMjQ1MjEsMjQ1MjMsMjQ1MjgsMjQ1MjksMjQ1MzAsMjQ1MzEsMjQ1MzIsMjQ1NDIsMjQ1NDUsMjQ1NDYsMjQ1NTIsMjQ1NTMsMjQ1NTQsMjQ1NTYsMjQ1NTcsMjQ1NTgsMjQ1NTksMjQ1NjIsMjQ1''@;'; + put 'put ''NjMsMjQ1NjYsMjQ1NzAsMjQ1NzIsMjQ1ODMsMjQ1ODYsMjQ1ODksMjQ1OTUsMjQ1OTYsMjQ1OTksMjQ2MDAsMjQ2MDIsMjQ2MDcsMjQ2MTIsMjQ2MjEsMjQ2MjcsMjQ2MjksMjQ2NDAsMjQ2NDcsMjQ2NDgsMjQ2NDksMjQ2NTIsMjQ2NTcsMjQ2NjAsMjQ2NjIsMjQ2NjMsMjQ2NjksMjQ2NzMs''@;'; + put 'put ''MjQ2NzksMjQ2ODksMjQ3MDIsMjQ3MDMsMjQ3MDYsMjQ3MTAsMjQ3MTIsMjQ3MTQsMjQ3MTgsMjQ3MjEsMjQ3MjMsMjQ3MjUsMjQ3MjgsMjQ3MzMsMjQ3MzQsMjQ3MzgsMjQ3NDAsMjQ3NDEsMjQ3NDQsMjQ3NTIsMjQ3NTMsMjQ3NTksMjQ3NjMsMjQ3NjYsMjQ3NzAsMjQ3NzIsMjQ3NzYsMjQ3''@;'; + put 'put ''NzcsMjQ3NzgsMjQ3NzksMjQ3ODIsMjQ3ODMsMjQ3ODgsMjQ3ODksMjQ3OTMsMjQ3OTUsMjQ3OTcsMjQ3OTgsMjQ4MDIsMjQ4MDUsMjQ4MTgsMjQ4MjEsMjQ4MjQsMjQ4MjgsMjQ4MjksMjQ4MzQsMjQ4MzksMjQ4NDIsMjQ4NDQsMjQ4NDgsMjQ4NDksMjQ4NTAsMjQ4NTEsMjQ4NTIsMjQ4NTQs''@;'; + put 'put ''MjQ4NTUsMjQ4NTcsMjQ4NjAsMjQ4NjIsMjQ4NjYsMjQ4NzQsMjQ4NzUsMjQ4ODAsMjQ4ODEsMjQ4ODUsMjQ4ODYsMjQ4ODcsMjQ4ODksMjQ4OTcsMjQ5MDEsMjQ5MDIsMjQ5MDUsMjQ5MjYsMjQ5MjgsMjQ5NDAsMjQ5NDYsMjQ5NTIsMjQ5NTUsMjQ5NTYsMjQ5NTksMjQ5NjAsMjQ5NjEsMjQ5''@;'; + put 'put ''NjMsMjQ5NjQsMjQ5NzEsMjQ5NzMsMjQ5NzgsMjQ5NzksMjQ5ODMsMjQ5ODQsMjQ5ODgsMjQ5ODksMjQ5OTEsMjQ5OTIsMjQ5OTcsMjVlMywyNTAwMiwyNTAwNSwyNTAxNiwyNTAxNywyNTAyMCwyNTAyNCwyNTAyNSwyNTAyNiwyNTAzOCwyNTAzOSwyNTA0NSwyNTA1MiwyNTA1MywyNTA1NCwy''@;'; + put 'put ''NTA1NSwyNTA1NywyNTA1OCwyNTA2MywyNTA2NSwyNTA2MSwyNTA2OCwyNTA2OSwyNTA3MSwyNTA4OSwyNTA5MSwyNTA5MiwyNTA5NSwyNTEwNywyNTEwOSwyNTExNiwyNTEyMCwyNTEyMiwyNTEyMywyNTEyNywyNTEyOSwyNTEzMSwyNTE0NSwyNTE0OSwyNTE1NCwyNTE1NSwyNTE1NiwyNTE1''@;'; + put 'put ''OCwyNTE2NCwyNTE2OCwyNTE2OSwyNTE3MCwyNTE3MiwyNTE3NCwyNTE3OCwyNTE4MCwyNTE4OCwyNTE5NywyNTE5OSwyNTIwMywyNTIxMCwyNTIxMywyNTIyOSwyNTIzMCwyNTIzMSwyNTIzMiwyNTI1NCwyNTI1NiwyNTI2NywyNTI3MCwyNTI3MSwyNTI3NCwyNTI3OCwyNTI3OSwyNTI4NCwy''@;'; + put 'put ''NTI5NCwyNTMwMSwyNTMwMiwyNTMwNiwyNTMyMiwyNTMzMCwyNTMzMiwyNTM0MCwyNTM0MSwyNTM0NywyNTM0OCwyNTM1NCwyNTM1NSwyNTM1NywyNTM2MCwyNTM2MywyNTM2NiwyNTM2OCwyNTM4NSwyNTM4NiwyNTM4OSwyNTM5NywyNTM5OCwyNTQwMSwyNTQwNCwyNTQwOSwyNTQxMCwyNTQx''@;'; + put 'put ''MSwyNTQxMiwyNTQxNCwyNTQxOCwyNTQxOSwyNTQyMiwyNTQyNiwyNTQyNywyNTQyOCwyNTQzMiwyNTQzNSwyNTQ0NSwyNTQ0NiwyNTQ1MiwyNTQ1MywyNTQ1NywyNTQ2MCwyNTQ2MSwyNTQ2NCwyNTQ2OCwyNTQ2OSwyNTQ3MSwyNTQ3NCwyNTQ3NiwyNTQ3OSwyNTQ4MiwyNTQ4OCwyNTQ5Miwy''@;'; + put 'put ''NTQ5MywyNTQ5NywyNTQ5OCwyNTUwMiwyNTUwOCwyNTUxMCwyNTUxNywyNTUxOCwyNTUxOSwyNTUzMywyNTUzNywyNTU0MSwyNTU0NCwyNTU1MCwyNTU1MywyNTU1NSwyNTU1NiwyNTU1NywyNTU2NCwyNTU2OCwyNTU3MywyNTU3OCwyNTU4MCwyNTU4NiwyNTU4NywyNTU4OSwyNTU5MiwyNTU5''@;'; + put 'put ''MywyNTYwOSwyNTYxMCwyNTYxNiwyNTYxOCwyNTYyMCwyNTYyNCwyNTYzMCwyNTYzMiwyNTYzNCwyNTYzNiwyNTYzNywyNTY0MSwyNTY0MiwyNTY0NywyNTY0OCwyNTY1MywyNTY2MSwyNTY2MywyNTY3NSwyNTY3OSwyNTY4MSwyNTY4MiwyNTY4MywyNTY4NCwyNTY5MCwyNTY5MSwyNTY5Miwy''@;'; + put 'put ''NTY5MywyNTY5NSwyNTY5NiwyNTY5NywyNTY5OSwyNTcwOSwyNTcxNSwyNTcxNiwyNTcyMywyNTcyNSwyNTczMywyNTczNSwyNTc0MywyNTc0NCwyNTc0NSwyNTc1MiwyNTc1MywyNTc1NSwyNTc1NywyNTc1OSwyNTc2MSwyNTc2MywyNTc2NiwyNTc2OCwyNTc3MiwyNTc3OSwyNTc4OSwyNTc5''@;'; + put 'put ''MCwyNTc5MSwyNTc5NiwyNTgwMSwyNTgwMiwyNTgwMywyNTgwNCwyNTgwNiwyNTgwOCwyNTgwOSwyNTgxMywyNTgxNSwyNTgyOCwyNTgyOSwyNTgzMywyNTgzNCwyNTgzNywyNTg0MCwyNTg0NSwyNTg0NywyNTg1MSwyNTg1NSwyNTg1NywyNTg2MCwyNTg2NCwyNTg2NSwyNTg2NiwyNTg3MSwy''@;'; + put 'put ''NTg3NSwyNTg3NiwyNTg3OCwyNTg4MSwyNTg4MywyNTg4NiwyNTg4NywyNTg5MCwyNTg5NCwyNTg5NywyNTkwMiwyNTkwNSwyNTkxNCwyNTkxNiwyNTkxNywyNTkyMywyNTkyNywyNTkyOSwyNTkzNiwyNTkzOCwyNTk0MCwyNTk1MSwyNTk1MiwyNTk1OSwyNTk2MywyNTk3OCwyNTk4MSwyNTk4''@;'; + put 'put ''NSwyNTk4OSwyNTk5NCwyNjAwMiwyNjAwNSwyNjAwOCwyNjAxMywyNjAxNiwyNjAxOSwyNjAyMiwyNjAzMCwyNjAzNCwyNjAzNSwyNjAzNiwyNjA0NywyNjA1MCwyNjA1NiwyNjA1NywyNjA2MiwyNjA2NCwyNjA2OCwyNjA3MCwyNjA3MiwyNjA3OSwyNjA5NiwyNjA5OCwyNjEwMCwyNjEwMSwy''@;'; + put 'put ''NjEwNSwyNjExMCwyNjExMSwyNjExMiwyNjExNiwyNjEyMCwyNjEyMSwyNjEyNSwyNjEyOSwyNjEzMCwyNjEzMywyNjEzNCwyNjE0MSwyNjE0MiwyNjE0NSwyNjE0NiwyNjE0NywyNjE0OCwyNjE1MCwyNjE1MywyNjE1NCwyNjE1NSwyNjE1NiwyNjE1OCwyNjE2MCwyNjE2MSwyNjE2MywyNjE2''@;'; + put 'put ''OSwyNjE2NywyNjE3NiwyNjE4MSwyNjE4MiwyNjE4NiwyNjE4OCwyNjE5MywyNjE5MCwyNjE5OSwyNjIwMCwyNjIwMSwyNjIwMywyNjIwNCwyNjIwOCwyNjIwOSwyNjM2MywyNjIxOCwyNjIxOSwyNjIyMCwyNjIzOCwyNjIyNywyNjIyOSwyNjIzOSwyNjIzMSwyNjIzMiwyNjIzMywyNjIzNSwy''@;'; + put 'put ''NjI0MCwyNjIzNiwyNjI1MSwyNjI1MiwyNjI1MywyNjI1NiwyNjI1OCwyNjI2NSwyNjI2NiwyNjI2NywyNjI2OCwyNjI3MSwyNjI3MiwyNjI3NiwyNjI4NSwyNjI4OSwyNjI5MCwyNjI5MywyNjI5OSwyNjMwMywyNjMwNCwyNjMwNiwyNjMwNywyNjMxMiwyNjMxNiwyNjMxOCwyNjMxOSwyNjMy''@;'; + put 'put ''NCwyNjMzMSwyNjMzNSwyNjM0NCwyNjM0NywyNjM0OCwyNjM1MCwyNjM2MiwyNjM3MywyNjM3NSwyNjM4MiwyNjM4NywyNjM5MywyNjM5NiwyNjQwMCwyNjQwMiwyNjQxOSwyNjQzMCwyNjQzNywyNjQzOSwyNjQ0MCwyNjQ0NCwyNjQ1MiwyNjQ1MywyNjQ2MSwyNjQ3MCwyNjQ3NiwyNjQ3OCwy''@;'; + put 'put ''NjQ4NCwyNjQ4NiwyNjQ5MSwyNjQ5NywyNjUwMCwyNjUxMCwyNjUxMSwyNjUxMywyNjUxNSwyNjUxOCwyNjUyMCwyNjUyMSwyNjUyMywyNjU0NCwyNjU0NSwyNjU0NiwyNjU0OSwyNjU1NSwyNjU1NiwyNjU1NywyNjYxNywyNjU2MCwyNjU2MiwyNjU2MywyNjU2NSwyNjU2OCwyNjU2OSwyNjU3''@;'; + put 'put ''OCwyNjU4MywyNjU4NSwyNjU4OCwyNjU5MywyNjU5OCwyNjYwOCwyNjYxMCwyNjYxNCwyNjYxNSwyNjcwNiwyNjY0NCwyNjY0OSwyNjY1MywyNjY1NSwyNjY2NCwyNjY2MywyNjY2OCwyNjY2OSwyNjY3MSwyNjY3MiwyNjY3MywyNjY3NSwyNjY4MywyNjY4NywyNjY5MiwyNjY5MywyNjY5OCwy''@;'; + put 'put ''NjcwMCwyNjcwOSwyNjcxMSwyNjcxMiwyNjcxNSwyNjczMSwyNjczNCwyNjczNSwyNjczNiwyNjczNywyNjczOCwyNjc0MSwyNjc0NSwyNjc0NiwyNjc0NywyNjc0OCwyNjc1NCwyNjc1NiwyNjc1OCwyNjc2MCwyNjc3NCwyNjc3NiwyNjc3OCwyNjc4MCwyNjc4NSwyNjc4NywyNjc4OSwyNjc5''@;'; + put 'put ''MywyNjc5NCwyNjc5OCwyNjgwMiwyNjgxMSwyNjgyMSwyNjgyNCwyNjgyOCwyNjgzMSwyNjgzMiwyNjgzMywyNjgzNSwyNjgzOCwyNjg0MSwyNjg0NCwyNjg0NSwyNjg1MywyNjg1NiwyNjg1OCwyNjg1OSwyNjg2MCwyNjg2MSwyNjg2NCwyNjg2NSwyNjg2OSwyNjg3MCwyNjg3NSwyNjg3Niwy''@;'; + put 'put ''Njg3NywyNjg4NiwyNjg4OSwyNjg5MCwyNjg5NiwyNjg5NywyNjg5OSwyNjkwMiwyNjkwMywyNjkyOSwyNjkzMSwyNjkzMywyNjkzNiwyNjkzOSwyNjk0NiwyNjk0OSwyNjk1MywyNjk1OCwyNjk2NywyNjk3MSwyNjk3OSwyNjk4MCwyNjk4MSwyNjk4MiwyNjk4NCwyNjk4NSwyNjk4OCwyNjk5''@;'; + put 'put ''MiwyNjk5MywyNjk5NCwyNzAwMiwyNzAwMywyNzAwNywyNzAwOCwyNzAyMSwyNzAyNiwyNzAzMCwyNzAzMiwyNzA0MSwyNzA0NSwyNzA0NiwyNzA0OCwyNzA1MSwyNzA1MywyNzA1NSwyNzA2MywyNzA2NCwyNzA2NiwyNzA2OCwyNzA3NywyNzA4MCwyNzA4OSwyNzA5NCwyNzA5NSwyNzEwNiwy''@;'; + put 'put ''NzEwOSwyNzExOCwyNzExOSwyNzEyMSwyNzEyMywyNzEyNSwyNzEzNCwyNzEzNiwyNzEzNywyNzEzOSwyNzE1MSwyNzE1MywyNzE1NywyNzE2MiwyNzE2NSwyNzE2OCwyNzE3MiwyNzE3NiwyNzE4NCwyNzE4NiwyNzE4OCwyNzE5MSwyNzE5NSwyNzE5OCwyNzE5OSwyNzIwNSwyNzIwNiwyNzIw''@;'; + put 'put ''OSwyNzIxMCwyNzIxNCwyNzIxNiwyNzIxNywyNzIxOCwyNzIyMSwyNzIyMiwyNzIyNywyNzIzNiwyNzIzOSwyNzI0MiwyNzI0OSwyNzI1MSwyNzI2MiwyNzI2NSwyNzI2NywyNzI3MCwyNzI3MSwyNzI3MywyNzI3NSwyNzI4MSwyNzI5MSwyNzI5MywyNzI5NCwyNzI5NSwyNzMwMSwyNzMwNywy''@;'; + put 'put ''NzMxMSwyNzMxMiwyNzMxMywyNzMxNiwyNzMyNSwyNzMyNiwyNzMyNywyNzMzNCwyNzMzNywyNzMzNiwyNzM0MCwyNzM0NCwyNzM0OCwyNzM0OSwyNzM1MCwyNzM1NiwyNzM1NywyNzM2NCwyNzM2NywyNzM3MiwyNzM3NiwyNzM3NywyNzM3OCwyNzM4OCwyNzM4OSwyNzM5NCwyNzM5NSwyNzM5''@;'; + put 'put ''OCwyNzM5OSwyNzQwMSwyNzQwNywyNzQwOCwyNzQwOSwyNzQxNSwyNzQxOSwyNzQyMiwyNzQyOCwyNzQzMiwyNzQzNSwyNzQzNiwyNzQzOSwyNzQ0NSwyNzQ0NiwyNzQ1MSwyNzQ1NSwyNzQ2MiwyNzQ2NiwyNzQ2OSwyNzQ3NCwyNzQ3OCwyNzQ4MCwyNzQ4NSwyNzQ4OCwyNzQ5NSwyNzQ5OSwy''@;'; + put 'put ''NzUwMiwyNzUwNCwyNzUwOSwyNzUxNywyNzUxOCwyNzUyMiwyNzUyNSwyNzU0MywyNzU0NywyNzU1MSwyNzU1MiwyNzU1NCwyNzU1NSwyNzU2MCwyNzU2MSwyNzU2NCwyNzU2NSwyNzU2NiwyNzU2OCwyNzU3NiwyNzU3NywyNzU4MSwyNzU4MiwyNzU4NywyNzU4OCwyNzU5MywyNzU5NiwyNzYw''@;'; + put 'put ''NiwyNzYxMCwyNzYxNywyNzYxOSwyNzYyMiwyNzYyMywyNzYzMCwyNzYzMywyNzYzOSwyNzY0MSwyNzY0NywyNzY1MCwyNzY1MiwyNzY1MywyNzY1NywyNzY2MSwyNzY2MiwyNzY2NCwyNzY2NiwyNzY3MywyNzY3OSwyNzY4NiwyNzY4NywyNzY4OCwyNzY5MiwyNzY5NCwyNzY5OSwyNzcwMSwy''@;'; + put 'put ''NzcwMiwyNzcwNiwyNzcwNywyNzcxMSwyNzcyMiwyNzcyMywyNzcyNSwyNzcyNywyNzczMCwyNzczMiwyNzczNywyNzczOSwyNzc0MCwyNzc1NSwyNzc1NywyNzc1OSwyNzc2NCwyNzc2NiwyNzc2OCwyNzc2OSwyNzc3MSwyNzc4MSwyNzc4MiwyNzc4MywyNzc4NSwyNzc5NiwyNzc5NywyNzc5''@;'; + put 'put ''OSwyNzgwMCwyNzgwNCwyNzgwNywyNzgyNCwyNzgyNiwyNzgyOCwyNzg0MiwyNzg0NiwyNzg1MywyNzg1NSwyNzg1NiwyNzg1NywyNzg1OCwyNzg2MCwyNzg2MiwyNzg2NiwyNzg2OCwyNzg3MiwyNzg3OSwyNzg4MSwyNzg4MywyNzg4NCwyNzg4NiwyNzg5MCwyNzg5MiwyNzkwOCwyNzkxMSwy''@;'; + put 'put ''NzkxNCwyNzkxOCwyNzkxOSwyNzkyMSwyNzkyMywyNzkzMCwyNzk0MiwyNzk0MywyNzk0NCwyNzc1MSwyNzk1MCwyNzk1MSwyNzk1MywyNzk2MSwyNzk2NCwyNzk2NywyNzk5MSwyNzk5OCwyNzk5OSwyODAwMSwyODAwNSwyODAwNywyODAxNSwyODAxNiwyODAyOCwyODAzNCwyODAzOSwyODA0''@;'; + put 'put ''OSwyODA1MCwyODA1MiwyODA1NCwyODA1NSwyODA1NiwyODA3NCwyODA3NiwyODA4NCwyODA4NywyODA4OSwyODA5MywyODA5NSwyODEwMCwyODEwNCwyODEwNiwyODExMCwyODExMSwyODExOCwyODEyMywyODEyNSwyODEyNywyODEyOCwyODEzMCwyODEzMywyODEzNywyODE0MywyODE0NCwy''@;'; + put 'put ''ODE0OCwyODE1MCwyODE1NiwyODE2MCwyODE2NCwyODE5MCwyODE5NCwyODE5OSwyODIxMCwyODIxNCwyODIxNywyODIxOSwyODIyMCwyODIyOCwyODIyOSwyODIzMiwyODIzMywyODIzNSwyODIzOSwyODI0MSwyODI0MiwyODI0MywyODI0NCwyODI0NywyODI1MiwyODI1MywyODI1NCwyODI1''@;'; + put 'put ''OCwyODI1OSwyODI2NCwyODI3NSwyODI4MywyODI4NSwyODMwMSwyODMwNywyODMxMywyODMyMCwyODMyNywyODMzMywyODMzNCwyODMzNywyODMzOSwyODM0NywyODM1MSwyODM1MiwyODM1MywyODM1NSwyODM1OSwyODM2MCwyODM2MiwyODM2NSwyODM2NiwyODM2NywyODM5NSwyODM5Nywy''@;'; + put 'put ''ODM5OCwyODQwOSwyODQxMSwyODQxMywyODQyMCwyODQyNCwyODQyNiwyODQyOCwyODQyOSwyODQzOCwyODQ0MCwyODQ0MiwyODQ0MywyODQ1NCwyODQ1NywyODQ1OCwyODQ2MywyODQ2NCwyODQ2NywyODQ3MCwyODQ3NSwyODQ3NiwyODQ2MSwyODQ5NSwyODQ5NywyODQ5OCwyODQ5OSwyODUw''@;'; + put 'put ''MywyODUwNSwyODUwNiwyODUwOSwyODUxMCwyODUxMywyODUxNCwyODUyMCwyODUyNCwyODU0MSwyODU0MiwyODU0NywyODU1MSwyODU1MiwyODU1NSwyODU1NiwyODU1NywyODU2MCwyODU2MiwyODU2MywyODU2NCwyODU2NiwyODU3MCwyODU3NSwyODU3NiwyODU4MSwyODU4MiwyODU4Mywy''@;'; + put 'put ''ODU4NCwyODU5MCwyODU5MSwyODU5MiwyODU5NywyODU5OCwyODYwNCwyODYxMywyODYxNSwyODYxNiwyODYxOCwyODYzNCwyODYzOCwyODY0OCwyODY0OSwyODY1NiwyODY2MSwyODY2NSwyODY2OCwyODY2OSwyODY3MiwyODY3NywyODY3OCwyODY3OSwyODY4NSwyODY5NSwyODcwNCwyODcw''@;'; + put 'put ''NywyODcxOSwyODcyNCwyODcyNywyODcyOSwyODczMiwyODczOSwyODc0MCwyODc0NCwyODc0NSwyODc0NiwyODc0NywyODc1NiwyODc1NywyODc2NSwyODc2NiwyODc1MCwyODc3MiwyODc3MywyODc4MCwyODc4MiwyODc4OSwyODc5MCwyODc5OCwyODgwMSwyODgwNSwyODgwNiwyODgyMCwy''@;'; + put 'put ''ODgyMSwyODgyMiwyODgyMywyODgyNCwyODgyNywyODgzNiwyODg0MywyODg0OCwyODg0OSwyODg1MiwyODg1NSwyODg3NCwyODg4MSwyODg4MywyODg4NCwyODg4NSwyODg4NiwyODg4OCwyODg5MiwyODkwMCwyODkyMiwyODkzMSwyODkzMiwyODkzMywyODkzNCwyODkzNSwyODkzOSwyODk0''@;'; + put 'put ''MCwyODk0MywyODk1OCwyODk2MCwyODk3MSwyODk3MywyODk3NSwyODk3NiwyODk3NywyODk4NCwyODk5MywyODk5NywyODk5OCwyODk5OSwyOTAwMiwyOTAwMywyOTAwOCwyOTAxMCwyOTAxNSwyOTAxOCwyOTAyMCwyOTAyMiwyOTAyNCwyOTAzMiwyOTA0OSwyOTA1NiwyOTA2MSwyOTA2Mywy''@;'; + put 'put ''OTA2OCwyOTA3NCwyOTA4MiwyOTA4MywyOTA4OCwyOTA5MCwyOTEwMywyOTEwNCwyOTEwNiwyOTEwNywyOTExNCwyOTExOSwyOTEyMCwyOTEyMSwyOTEyNCwyOTEzMSwyOTEzMiwyOTEzOSwyOTE0MiwyOTE0NSwyOTE0NiwyOTE0OCwyOTE3NiwyOTE4MiwyOTE4NCwyOTE5MSwyOTE5MiwyOTE5''@;'; + put 'put ''MywyOTIwMywyOTIwNywyOTIxMCwyOTIxMywyOTIxNSwyOTIyMCwyOTIyNywyOTIzMSwyOTIzNiwyOTI0MCwyOTI0MSwyOTI0OSwyOTI1MCwyOTI1MSwyOTI1MywyOTI2MiwyOTI2MywyOTI2NCwyOTI2NywyOTI2OSwyOTI3MCwyOTI3NCwyOTI3NiwyOTI3OCwyOTI4MCwyOTI4MywyOTI4OCwy''@;'; + put 'put ''OTI5MSwyOTI5NCwyOTI5NSwyOTI5NywyOTMwMywyOTMwNCwyOTMwNywyOTMwOCwyOTMxMSwyOTMxNiwyOTMyMSwyOTMyNSwyOTMyNiwyOTMzMSwyOTMzOSwyOTM1MiwyOTM1NywyOTM1OCwyOTM2MSwyOTM2NCwyOTM3NCwyOTM3NywyOTM4MywyOTM4NSwyOTM4OCwyOTM5NywyOTM5OCwyOTQw''@;'; + put 'put ''MCwyOTQwNywyOTQxMywyOTQyNywyOTQyOCwyOTQzNCwyOTQzNSwyOTQzOCwyOTQ0MiwyOTQ0NCwyOTQ0NSwyOTQ0NywyOTQ1MSwyOTQ1MywyOTQ1OCwyOTQ1OSwyOTQ2NCwyOTQ2NSwyOTQ3MCwyOTQ3NCwyOTQ3NiwyOTQ3OSwyOTQ4MCwyOTQ4NCwyOTQ4OSwyOTQ5MCwyOTQ5MywyOTQ5OCwy''@;'; + put 'put ''OTQ5OSwyOTUwMSwyOTUwNywyOTUxNywyOTUyMCwyOTUyMiwyOTUyNiwyOTUyOCwyOTUzMywyOTUzNCwyOTUzNSwyOTUzNiwyOTU0MiwyOTU0MywyOTU0NSwyOTU0NywyOTU0OCwyOTU1MCwyOTU1MSwyOTU1MywyOTU1OSwyOTU2MSwyOTU2NCwyOTU2OCwyOTU2OSwyOTU3MSwyOTU3MywyOTU3''@;'; + put 'put ''NCwyOTU4MiwyOTU4NCwyOTU4NywyOTU4OSwyOTU5MSwyOTU5MiwyOTU5NiwyOTU5OCwyOTU5OSwyOTYwMCwyOTYwMiwyOTYwNSwyOTYwNiwyOTYxMCwyOTYxMSwyOTYxMywyOTYyMSwyOTYyMywyOTYyNSwyOTYyOCwyOTYyOSwyOTYzMSwyOTYzNywyOTYzOCwyOTY0MSwyOTY0MywyOTY0NCwy''@;'; + put 'put ''OTY0NywyOTY1MCwyOTY1MSwyOTY1NCwyOTY1NywyOTY2MSwyOTY2NSwyOTY2NywyOTY3MCwyOTY3MSwyOTY3MywyOTY4NCwyOTY4NSwyOTY4NywyOTY4OSwyOTY5MCwyOTY5MSwyOTY5MywyOTY5NSwyOTY5NiwyOTY5NywyOTcwMCwyOTcwMywyOTcwNiwyOTcxMywyOTcyMiwyOTcyMywyOTcz''@;'; + put 'put ''MiwyOTczNCwyOTczNiwyOTczNywyOTczOCwyOTczOSwyOTc0MCwyOTc0MSwyOTc0MiwyOTc0MywyOTc0NCwyOTc0NSwyOTc1MywyOTc2MCwyOTc2MywyOTc2NCwyOTc2NiwyOTc2NywyOTc3MSwyOTc3MywyOTc3NywyOTc3OCwyOTc4MywyOTc4OSwyOTc5NCwyOTc5OCwyOTc5OSwyOTgwMCwy''@;'; + put 'put ''OTgwMywyOTgwNSwyOTgwNiwyOTgwOSwyOTgxMCwyOTgyNCwyOTgyNSwyOTgyOSwyOTgzMCwyOTgzMSwyOTgzMywyOTgzOSwyOTg0MCwyOTg0MSwyOTg0MiwyOTg0OCwyOTg0OSwyOTg1MCwyOTg1MiwyOTg1NSwyOTg1NiwyOTg1NywyOTg1OSwyOTg2MiwyOTg2NCwyOTg2NSwyOTg2NiwyOTg2''@;'; + put 'put ''NywyOTg3MCwyOTg3MSwyOTg3MywyOTg3NCwyOTg3NywyOTg4MSwyOTg4MywyOTg4NywyOTg5NiwyOTg5NywyOTkwMCwyOTkwNCwyOTkwNywyOTkxMiwyOTkxNCwyOTkxNSwyOTkxOCwyOTkxOSwyOTkyNCwyOTkyOCwyOTkzMCwyOTkzMSwyOTkzNSwyOTk0MCwyOTk0NiwyOTk0NywyOTk0OCwy''@;'; + put 'put ''OTk1MSwyOTk1OCwyOTk3MCwyOTk3NCwyOTk3NSwyOTk4NCwyOTk4NSwyOTk4OCwyOTk5MSwyOTk5MywyOTk5NCwyOTk5OSwzMDAwNiwzMDAwOSwzMDAxMywzMDAxNCwzMDAxNSwzMDAxNiwzMDAxOSwzMDAyMywzMDAyNCwzMDAzMCwzMDAzMiwzMDAzNCwzMDAzOSwzMDA0NiwzMDA0NywzMDA0''@;'; + put 'put ''OSwzMDA2MywzMDA2NSwzMDA3MywzMDA3NCwzMDA3NSwzMDA3NiwzMDA3NywzMDA3OCwzMDA4MSwzMDA4NSwzMDA5NiwzMDA5OCwzMDA5OSwzMDEwMSwzMDEwNSwzMDEwOCwzMDExNCwzMDExNiwzMDEzMiwzMDEzOCwzMDE0MywzMDE0NCwzMDE0NSwzMDE0OCwzMDE1MCwzMDE1NiwzMDE1OCwz''@;'; + put 'put ''MDE1OSwzMDE2NywzMDE3MiwzMDE3NSwzMDE3NiwzMDE3NywzMDE4MCwzMDE4MywzMDE4OCwzMDE5MCwzMDE5MSwzMDE5MywzMDIwMSwzMDIwOCwzMDIxMCwzMDIxMSwzMDIxMiwzMDIxNSwzMDIxNiwzMDIxOCwzMDIyMCwzMDIyMywzMDIyNiwzMDIyNywzMDIyOSwzMDIzMCwzMDIzMywzMDIz''@;'; + put 'put ''NSwzMDIzNiwzMDIzNywzMDIzOCwzMDI0MywzMDI0NSwzMDI0NiwzMDI0OSwzMDI1MywzMDI1OCwzMDI1OSwzMDI2MSwzMDI2NCwzMDI2NSwzMDI2NiwzMDI2OCwzMDI4MiwzMDI3MiwzMDI3MywzMDI3NSwzMDI3NiwzMDI3NywzMDI4MSwzMDI4MywzMDI5MywzMDI5NywzMDMwMywzMDMwOCwz''@;'; + put 'put ''MDMwOSwzMDMxNywzMDMxOCwzMDMxOSwzMDMyMSwzMDMyNCwzMDMzNywzMDM0MSwzMDM0OCwzMDM0OSwzMDM1NywzMDM2MywzMDM2NCwzMDM2NSwzMDM2NywzMDM2OCwzMDM3MCwzMDM3MSwzMDM3MiwzMDM3MywzMDM3NCwzMDM3NSwzMDM3NiwzMDM3OCwzMDM4MSwzMDM5NywzMDQwMSwzMDQw''@;'; + put 'put ''NSwzMDQwOSwzMDQxMSwzMDQxMiwzMDQxNCwzMDQyMCwzMDQyNSwzMDQzMiwzMDQzOCwzMDQ0MCwzMDQ0NCwzMDQ0OCwzMDQ0OSwzMDQ1NCwzMDQ1NywzMDQ2MCwzMDQ2NCwzMDQ3MCwzMDQ3NCwzMDQ3OCwzMDQ4MiwzMDQ4NCwzMDQ4NSwzMDQ4NywzMDQ4OSwzMDQ5MCwzMDQ5MiwzMDQ5OCwz''@;'; + put 'put ''MDUwNCwzMDUwOSwzMDUxMCwzMDUxMSwzMDUxNiwzMDUxNywzMDUxOCwzMDUyMSwzMDUyNSwzMDUyNiwzMDUzMCwzMDUzMywzMDUzNCwzMDUzOCwzMDU0MSwzMDU0MiwzMDU0MywzMDU0NiwzMDU1MCwzMDU1MSwzMDU1NiwzMDU1OCwzMDU1OSwzMDU2MCwzMDU2MiwzMDU2NCwzMDU2NywzMDU3''@;'; + put 'put ''MCwzMDU3MiwzMDU3NiwzMDU3OCwzMDU3OSwzMDU4MCwzMDU4NiwzMDU4OSwzMDU5MiwzMDU5NiwzMDYwNCwzMDYwNSwzMDYxMiwzMDYxMywzMDYxNCwzMDYxOCwzMDYyMywzMDYyNiwzMDYzMSwzMDYzNCwzMDYzOCwzMDYzOSwzMDY0MSwzMDY0NSwzMDY1NCwzMDY1OSwzMDY2NSwzMDY3Mywz''@;'; + put 'put ''MDY3NCwzMDY3NywzMDY4MSwzMDY4NiwzMDY4NywzMDY4OCwzMDY5MiwzMDY5NCwzMDY5OCwzMDcwMCwzMDcwNCwzMDcwNSwzMDcwOCwzMDcxMiwzMDcxNSwzMDcyNSwzMDcyNiwzMDcyOSwzMDczMywzMDczNCwzMDczNywzMDc0OSwzMDc1MywzMDc1NCwzMDc1NSwzMDc2NSwzMDc2NiwzMDc2''@;'; + put 'put ''OCwzMDc3MywzMDc3NSwzMDc4NywzMDc4OCwzMDc5MSwzMDc5MiwzMDc5NiwzMDc5OCwzMDgwMiwzMDgxMiwzMDgxNCwzMDgxNiwzMDgxNywzMDgxOSwzMDgyMCwzMDgyNCwzMDgyNiwzMDgzMCwzMDg0MiwzMDg0NiwzMDg1OCwzMDg2MywzMDg2OCwzMDg3MiwzMDg4MSwzMDg3NywzMDg3OCwz''@;'; + put 'put ''MDg3OSwzMDg4NCwzMDg4OCwzMDg5MiwzMDg5MywzMDg5NiwzMDg5NywzMDg5OCwzMDg5OSwzMDkwNywzMDkwOSwzMDkxMSwzMDkxOSwzMDkyMCwzMDkyMSwzMDkyNCwzMDkyNiwzMDkzMCwzMDkzMSwzMDkzMywzMDkzNCwzMDk0OCwzMDkzOSwzMDk0MywzMDk0NCwzMDk0NSwzMDk1MCwzMDk1''@;'; + put 'put ''NCwzMDk2MiwzMDk2MywzMDk3NiwzMDk2NiwzMDk2NywzMDk3MCwzMDk3MSwzMDk3NSwzMDk4MiwzMDk4OCwzMDk5MiwzMTAwMiwzMTAwNCwzMTAwNiwzMTAwNywzMTAwOCwzMTAxMywzMTAxNSwzMTAxNywzMTAyMSwzMTAyNSwzMTAyOCwzMTAyOSwzMTAzNSwzMTAzNywzMTAzOSwzMTA0NCwz''@;'; + put 'put ''MTA0NSwzMTA0NiwzMTA1MCwzMTA1MSwzMTA1NSwzMTA1NywzMTA2MCwzMTA2NCwzMTA2NywzMTA2OCwzMTA3OSwzMTA4MSwzMTA4MywzMTA5MCwzMTA5NywzMTA5OSwzMTEwMCwzMTEwMiwzMTExNSwzMTExNiwzMTEyMSwzMTEyMywzMTEyNCwzMTEyNSwzMTEyNiwzMTEyOCwzMTEzMSwzMTEz''@;'; + put 'put ''MiwzMTEzNywzMTE0NCwzMTE0NSwzMTE0NywzMTE1MSwzMTE1MywzMTE1NiwzMTE2MCwzMTE2MywzMTE3MCwzMTE3MiwzMTE3NSwzMTE3NiwzMTE3OCwzMTE4MywzMTE4OCwzMTE5MCwzMTE5NCwzMTE5NywzMTE5OCwzMTIwMCwzMTIwMiwzMTIwNSwzMTIxMCwzMTIxMSwzMTIxMywzMTIxNywz''@;'; + put 'put ''MTIyNCwzMTIyOCwzMTIzNCwzMTIzNSwzMTIzOSwzMTI0MSwzMTI0MiwzMTI0NCwzMTI0OSwzMTI1MywzMTI1OSwzMTI2MiwzMTI2NSwzMTI3MSwzMTI3NSwzMTI3NywzMTI3OSwzMTI4MCwzMTI4NCwzMTI4NSwzMTI4OCwzMTI4OSwzMTI5MCwzMTMwMCwzMTMwMSwzMTMwMywzMTMwNCwzMTMw''@;'; + put 'put ''OCwzMTMxNywzMTMxOCwzMTMyMSwzMTMyNCwzMTMyNSwzMTMyNywzMTMyOCwzMTMzMywzMTMzNSwzMTMzOCwzMTM0MSwzMTM0OSwzMTM1MiwzMTM1OCwzMTM2MCwzMTM2MiwzMTM2NSwzMTM2NiwzMTM3MCwzMTM3MSwzMTM3NiwzMTM3NywzMTM4MCwzMTM5MCwzMTM5MiwzMTM5NSwzMTQwNCwz''@;'; + put 'put ''MTQxMSwzMTQxMywzMTQxNywzMTQxOSwzMTQyMCwzMTQzMCwzMTQzMywzMTQzNiwzMTQzOCwzMTQ0MSwzMTQ1MSwzMTQ2NCwzMTQ2NSwzMTQ2NywzMTQ2OCwzMTQ3MywzMTQ3NiwzMTQ4MywzMTQ4NSwzMTQ4NiwzMTQ5NSwzMTUwOCwzMTUxOSwzMTUyMywzMTUyNywzMTUyOSwzMTUzMCwzMTUz''@;'; + put 'put ''MSwzMTUzMywzMTUzNCwzMTUzNSwzMTUzNiwzMTUzNywzMTU0MCwzMTU0OSwzMTU1MSwzMTU1MiwzMTU1MywzMTU1OSwzMTU2NiwzMTU3MywzMTU4NCwzMTU4OCwzMTU5MCwzMTU5MywzMTU5NCwzMTU5NywzMTU5OSwzMTYwMiwzMTYwMywzMTYwNywzMTYyMCwzMTYyNSwzMTYzMCwzMTYzMiwz''@;'; + put 'put ''MTYzMywzMTYzOCwzMTY0MywzMTY0NiwzMTY0OCwzMTY1MywzMTY2MCwzMTY2MywzMTY2NCwzMTY2NiwzMTY2OSwzMTY3MCwzMTY3NCwzMTY3NSwzMTY3NiwzMTY3NywzMTY4MiwzMTY4NSwzMTY4OCwzMTY5MCwzMTcwMCwzMTcwMiwzMTcwMywzMTcwNSwzMTcwNiwzMTcwNywzMTcyMCwzMTcy''@;'; + put 'put ''MiwzMTczMCwzMTczMiwzMTczMywzMTczNiwzMTczNywzMTczOCwzMTc0MCwzMTc0MiwzMTc0NSwzMTc0NiwzMTc0NywzMTc0OCwzMTc1MCwzMTc1MywzMTc1NSwzMTc1NiwzMTc1OCwzMTc1OSwzMTc2OSwzMTc3MSwzMTc3NiwzMTc4MSwzMTc4MiwzMTc4NCwzMTc4OCwzMTc5MywzMTc5NSwz''@;'; + put 'put ''MTc5NiwzMTc5OCwzMTgwMSwzMTgwMiwzMTgxNCwzMTgxOCwzMTgyOSwzMTgyNSwzMTgyNiwzMTgyNywzMTgzMywzMTgzNCwzMTgzNSwzMTgzNiwzMTgzNywzMTgzOCwzMTg0MSwzMTg0MywzMTg0NywzMTg0OSwzMTg1MywzMTg1NCwzMTg1NiwzMTg1OCwzMTg2NSwzMTg2OCwzMTg2OSwzMTg3''@;'; + put 'put ''OCwzMTg3OSwzMTg4NywzMTg5MiwzMTkwMiwzMTkwNCwzMTkxMCwzMTkyMCwzMTkyNiwzMTkyNywzMTkzMCwzMTkzMSwzMTkzMiwzMTkzNSwzMTk0MCwzMTk0MywzMTk0NCwzMTk0NSwzMTk0OSwzMTk1MSwzMTk1NSwzMTk1NiwzMTk1NywzMTk1OSwzMTk2MSwzMTk2MiwzMTk2NSwzMTk3NCwz''@;'; + put 'put ''MTk3NywzMTk3OSwzMTk4OSwzMjAwMywzMjAwNywzMjAwOCwzMjAwOSwzMjAxNSwzMjAxNywzMjAxOCwzMjAxOSwzMjAyMiwzMjAyOSwzMjAzMCwzMjAzNSwzMjAzOCwzMjA0MiwzMjA0NSwzMjA0OSwzMjA2MCwzMjA2MSwzMjA2MiwzMjA2NCwzMjA2NSwzMjA3MSwzMjA3MiwzMjA3NywzMjA4''@;'; + put 'put ''MSwzMjA4MywzMjA4NywzMjA4OSwzMjA5MCwzMjA5MiwzMjA5MywzMjEwMSwzMjEwMywzMjEwNiwzMjExMiwzMjEyMCwzMjEyMiwzMjEyMywzMjEyNywzMjEyOSwzMjEzMCwzMjEzMSwzMjEzMywzMjEzNCwzMjEzNiwzMjEzOSwzMjE0MCwzMjE0MSwzMjE0NSwzMjE1MCwzMjE1MSwzMjE1Nywz''@;'; + put 'put ''MjE1OCwzMjE2NiwzMjE2NywzMjE3MCwzMjE3OSwzMjE4MiwzMjE4MywzMjE4NSwzMjE5NCwzMjE5NSwzMjE5NiwzMjE5NywzMjE5OCwzMjIwNCwzMjIwNSwzMjIwNiwzMjIxNSwzMjIxNywzMjI1NiwzMjIyNiwzMjIyOSwzMjIzMCwzMjIzNCwzMjIzNSwzMjIzNywzMjI0MSwzMjI0NSwzMjI0''@;'; + put 'put ''NiwzMjI0OSwzMjI1MCwzMjI2NCwzMjI3MiwzMjI3MywzMjI3NywzMjI3OSwzMjI4NCwzMjI4NSwzMjI4OCwzMjI5NSwzMjI5NiwzMjMwMCwzMjMwMSwzMjMwMywzMjMwNywzMjMxMCwzMjMxOSwzMjMyNCwzMjMyNSwzMjMyNywzMjMzNCwzMjMzNiwzMjMzOCwzMjM0NCwzMjM1MSwzMjM1Mywz''@;'; + put 'put ''MjM1NCwzMjM1NywzMjM2MywzMjM2NiwzMjM2NywzMjM3MSwzMjM3NiwzMjM4MiwzMjM4NSwzMjM5MCwzMjM5MSwzMjM5NCwzMjM5NywzMjQwMSwzMjQwNSwzMjQwOCwzMjQxMCwzMjQxMywzMjQxNCwzMjU3MiwzMjU3MSwzMjU3MywzMjU3NCwzMjU3NSwzMjU3OSwzMjU4MCwzMjU4MywzMjU5''@;'; + put 'put ''MSwzMjU5NCwzMjU5NSwzMjYwMywzMjYwNCwzMjYwNSwzMjYwOSwzMjYxMSwzMjYxMiwzMjYxMywzMjYxNCwzMjYyMSwzMjYyNSwzMjYzNywzMjYzOCwzMjYzOSwzMjY0MCwzMjY1MSwzMjY1MywzMjY1NSwzMjY1NiwzMjY1NywzMjY2MiwzMjY2MywzMjY2OCwzMjY3MywzMjY3NCwzMjY3OCwz''@;'; + put 'put ''MjY4MiwzMjY4NSwzMjY5MiwzMjcwMCwzMjcwMywzMjcwNCwzMjcwNywzMjcxMiwzMjcxOCwzMjcxOSwzMjczMSwzMjczNSwzMjczOSwzMjc0MSwzMjc0NCwzMjc0OCwzMjc1MCwzMjc1MSwzMjc1NCwzMjc2MiwzMjc2NSwzMjc2NiwzMjc2NywzMjc3NSwzMjc3NiwzMjc3OCwzMjc4MSwzMjc4''@;'; + put 'put ''MiwzMjc4MywzMjc4NSwzMjc4NywzMjc4OCwzMjc5MCwzMjc5NywzMjc5OCwzMjc5OSwzMjgwMCwzMjgwNCwzMjgwNiwzMjgxMiwzMjgxNCwzMjgxNiwzMjgyMCwzMjgyMSwzMjgyMywzMjgyNSwzMjgyNiwzMjgyOCwzMjgzMCwzMjgzMiwzMjgzNiwzMjg2NCwzMjg2OCwzMjg3MCwzMjg3Nywz''@;'; + put 'put ''Mjg4MSwzMjg4NSwzMjg5NywzMjkwNCwzMjkxMCwzMjkyNCwzMjkyNiwzMjkzNCwzMjkzNSwzMjkzOSwzMjk1MiwzMjk1MywzMjk2OCwzMjk3MywzMjk3NSwzMjk3OCwzMjk4MCwzMjk4MSwzMjk4MywzMjk4NCwzMjk5MiwzMzAwNSwzMzAwNiwzMzAwOCwzMzAxMCwzMzAxMSwzMzAxNCwzMzAx''@;'; + put 'put ''NywzMzAxOCwzMzAyMiwzMzAyNywzMzAzNSwzMzA0NiwzMzA0NywzMzA0OCwzMzA1MiwzMzA1NCwzMzA1NiwzMzA2MCwzMzA2MywzMzA2OCwzMzA3MiwzMzA3NywzMzA4MiwzMzA4NCwzMzA5MywzMzA5NSwzMzA5OCwzMzEwMCwzMzEwNiwzMzExMSwzMzEyMCwzMzEyMSwzMzEyNywzMzEyOCwz''@;'; + put 'put ''MzEyOSwzMzEzMywzMzEzNSwzMzE0MywzMzE1MywzMzE2OCwzMzE1NiwzMzE1NywzMzE1OCwzMzE2MywzMzE2NiwzMzE3NCwzMzE3NiwzMzE3OSwzMzE4MiwzMzE4NiwzMzE5OCwzMzIwMiwzMzIwNCwzMzIxMSwzMzIyNywzMzIxOSwzMzIyMSwzMzIyNiwzMzIzMCwzMzIzMSwzMzIzNywzMzIz''@;'; + put 'put ''OSwzMzI0MywzMzI0NSwzMzI0NiwzMzI0OSwzMzI1MiwzMzI1OSwzMzI2MCwzMzI2NCwzMzI2NSwzMzI2NiwzMzI2OSwzMzI3MCwzMzI3MiwzMzI3MywzMzI3NywzMzI3OSwzMzI4MCwzMzI4MywzMzI5NSwzMzI5OSwzMzMwMCwzMzMwNSwzMzMwNiwzMzMwOSwzMzMxMywzMzMxNCwzMzMyMCwz''@;'; + put 'put ''MzMzMCwzMzMzMiwzMzMzOCwzMzM0NywzMzM0OCwzMzM0OSwzMzM1MCwzMzM1NSwzMzM1OCwzMzM1OSwzMzM2MSwzMzM2NiwzMzM3MiwzMzM3NiwzMzM3OSwzMzM4MywzMzM4OSwzMzM5NiwzMzQwMywzMzQwNSwzMzQwNywzMzQwOCwzMzQwOSwzMzQxMSwzMzQxMiwzMzQxNSwzMzQxNywzMzQx''@;'; + put 'put ''OCwzMzQyMiwzMzQyNSwzMzQyOCwzMzQzMCwzMzQzMiwzMzQzNCwzMzQzNSwzMzQ0MCwzMzQ0MSwzMzQ0MywzMzQ0NCwzMzQ0NywzMzQ0OCwzMzQ0OSwzMzQ1MCwzMzQ1NCwzMzQ1NiwzMzQ1OCwzMzQ2MCwzMzQ2MywzMzQ2NiwzMzQ2OCwzMzQ3MCwzMzQ3MSwzMzQ3OCwzMzQ4OCwzMzQ5Mywz''@;'; + put 'put ''MzQ5OCwzMzUwNCwzMzUwNiwzMzUwOCwzMzUxMiwzMzUxNCwzMzUxNywzMzUxOSwzMzUyNiwzMzUyNywzMzUzMywzMzUzNCwzMzUzNiwzMzUzNywzMzU0MywzMzU0NCwzMzU0NiwzMzU0NywzMzYyMCwzMzU2MywzMzU2NSwzMzU2NiwzMzU2NywzMzU2OSwzMzU3MCwzMzU4MCwzMzU4MSwzMzU4''@;'; + put 'put ''MiwzMzU4NCwzMzU4NywzMzU5MSwzMzU5NCwzMzU5NiwzMzU5NywzMzYwMiwzMzYwMywzMzYwNCwzMzYwNywzMzYxMywzMzYxNCwzMzYxNywzMzYyMSwzMzYyMiwzMzYyMywzMzY0OCwzMzY1NiwzMzY2MSwzMzY2MywzMzY2NCwzMzY2NiwzMzY2OCwzMzY3MCwzMzY3NywzMzY4MiwzMzY4NCwz''@;'; + put 'put ''MzY4NSwzMzY4OCwzMzY4OSwzMzY5MSwzMzY5MiwzMzY5MywzMzcwMiwzMzcwMywzMzcwNSwzMzcwOCwzMzcyNiwzMzcyNywzMzcyOCwzMzczNSwzMzczNywzMzc0MywzMzc0NCwzMzc0NSwzMzc0OCwzMzc1NywzMzYxOSwzMzc2OCwzMzc3MCwzMzc4MiwzMzc4NCwzMzc4NSwzMzc4OCwzMzc5''@;'; + put 'put ''MywzMzc5OCwzMzgwMiwzMzgwNywzMzgwOSwzMzgxMywzMzgxNywzMzcwOSwzMzgzOSwzMzg0OSwzMzg2MSwzMzg2MywzMzg2NCwzMzg2NiwzMzg2OSwzMzg3MSwzMzg3MywzMzg3NCwzMzg3OCwzMzg4MCwzMzg4MSwzMzg4MiwzMzg4NCwzMzg4OCwzMzg5MiwzMzg5MywzMzg5NSwzMzg5OCwz''@;'; + put 'put ''MzkwNCwzMzkwNywzMzkwOCwzMzkxMCwzMzkxMiwzMzkxNiwzMzkxNywzMzkyMSwzMzkyNSwzMzkzOCwzMzkzOSwzMzk0MSwzMzk1MCwzMzk1OCwzMzk2MCwzMzk2MSwzMzk2MiwzMzk2NywzMzk2OSwzMzk3MiwzMzk3OCwzMzk4MSwzMzk4MiwzMzk4NCwzMzk4NiwzMzk5MSwzMzk5MiwzMzk5''@;'; + put 'put ''NiwzMzk5OSwzNDAwMywzNDAxMiwzNDAyMywzNDAyNiwzNDAzMSwzNDAzMiwzNDAzMywzNDAzNCwzNDAzOSwzNDA5OCwzNDA0MiwzNDA0MywzNDA0NSwzNDA1MCwzNDA1MSwzNDA1NSwzNDA2MCwzNDA2MiwzNDA2NCwzNDA3NiwzNDA3OCwzNDA4MiwzNDA4MywzNDA4NCwzNDA4NSwzNDA4Nywz''@;'; + put 'put ''NDA5MCwzNDA5MSwzNDA5NSwzNDA5OSwzNDEwMCwzNDEwMiwzNDExMSwzNDExOCwzNDEyNywzNDEyOCwzNDEyOSwzNDEzMCwzNDEzMSwzNDEzNCwzNDEzNywzNDE0MCwzNDE0MSwzNDE0MiwzNDE0MywzNDE0NCwzNDE0NSwzNDE0NiwzNDE0OCwzNDE1NSwzNDE1OSwzNDE2OSwzNDE3MCwzNDE3''@;'; + put 'put ''MSwzNDE3MywzNDE3NSwzNDE3NywzNDE4MSwzNDE4MiwzNDE4NSwzNDE4NywzNDE4OCwzNDE5MSwzNDE5NSwzNDIwMCwzNDIwNSwzNDIwNywzNDIwOCwzNDIxMCwzNDIxMywzNDIxNSwzNDIyOCwzNDIzMCwzNDIzMSwzNDIzMiwzNDIzNiwzNDIzNywzNDIzOCwzNDIzOSwzNDI0MiwzNDI0Nywz''@;'; + put 'put ''NDI1MCwzNDI1MSwzNDI1NCwzNDIyMSwzNDI2NCwzNDI2NiwzNDI3MSwzNDI3MiwzNDI3OCwzNDI4MCwzNDI4NSwzNDI5MSwzNDI5NCwzNDMwMCwzNDMwMywzNDMwNCwzNDMwOCwzNDMwOSwzNDMxNywzNDMxOCwzNDMyMCwzNDMyMSwzNDMyMiwzNDMyOCwzNDMyOSwzNDMzMSwzNDMzNCwzNDMz''@;'; + put 'put ''NywzNDM0MywzNDM0NSwzNDM1OCwzNDM2MCwzNDM2MiwzNDM2NCwzNDM2NSwzNDM2OCwzNDM3MCwzNDM3NCwzNDM4NiwzNDM4NywzNDM5MCwzNDM5MSwzNDM5MiwzNDM5MywzNDM5NywzNDQwMCwzNDQwMSwzNDQwMiwzNDQwMywzNDQwNCwzNDQwOSwzNDQxMiwzNDQxNSwzNDQyMSwzNDQyMiwz''@;'; + put 'put ''NDQyMywzNDQyNiwzNDQ0NSwzNDQ0OSwzNDQ1NCwzNDQ1NiwzNDQ1OCwzNDQ2MCwzNDQ2NSwzNDQ3MCwzNDQ3MSwzNDQ3MiwzNDQ3NywzNDQ4MSwzNDQ4MywzNDQ4NCwzNDQ4NSwzNDQ4NywzNDQ4OCwzNDQ4OSwzNDQ5NSwzNDQ5NiwzNDQ5NywzNDQ5OSwzNDUwMSwzNDUxMywzNDUxNCwzNDUx''@;'; + put 'put ''NywzNDUxOSwzNDUyMiwzNDUyNCwzNDUyOCwzNDUzMSwzNDUzMywzNDUzNSwzNDQ0MCwzNDU1NCwzNDU1NiwzNDU1NywzNDU2NCwzNDU2NSwzNDU2NywzNDU3MSwzNDU3NCwzNDU3NSwzNDU3NiwzNDU3OSwzNDU4MCwzNDU4NSwzNDU5MCwzNDU5MSwzNDU5MywzNDU5NSwzNDYwMCwzNDYwNiwz''@;'; + put 'put ''NDYwNywzNDYwOSwzNDYxMCwzNDYxNywzNDYxOCwzNDYyMCwzNDYyMSwzNDYyMiwzNDYyNCwzNDYyNywzNDYyOSwzNDYzNywzNDY0OCwzNDY1MywzNDY1NywzNDY2MCwzNDY2MSwzNDY3MSwzNDY3MywzNDY3NCwzNDY4MywzNDY5MSwzNDY5MiwzNDY5MywzNDY5NCwzNDY5NSwzNDY5NiwzNDY5''@;'; + put 'put ''NywzNDY5OSwzNDcwMCwzNDcwNCwzNDcwNywzNDcwOSwzNDcxMSwzNDcxMiwzNDcxMywzNDcxOCwzNDcyMCwzNDcyMywzNDcyNywzNDczMiwzNDczMywzNDczNCwzNDczNywzNDc0MSwzNDc1MCwzNDc1MSwzNDc1MywzNDc2MCwzNDc2MSwzNDc2MiwzNDc2NiwzNDc3MywzNDc3NCwzNDc3Nywz''@;'; + put 'put ''NDc3OCwzNDc4MCwzNDc4MywzNDc4NiwzNDc4NywzNDc4OCwzNDc5NCwzNDc5NSwzNDc5NywzNDgwMSwzNDgwMywzNDgwOCwzNDgxMCwzNDgxNSwzNDgxNywzNDgxOSwzNDgyMiwzNDgyNSwzNDgyNiwzNDgyNywzNDgzMiwzNDg0MSwzNDgzNCwzNDgzNSwzNDgzNiwzNDg0MCwzNDg0MiwzNDg0''@;'; + put 'put ''MywzNDg0NCwzNDg0NiwzNDg0NywzNDg1NiwzNDg2MSwzNDg2MiwzNDg2NCwzNDg2NiwzNDg2OSwzNDg3NCwzNDg3NiwzNDg4MSwzNDg4MywzNDg4NSwzNDg4OCwzNDg4OSwzNDg5MCwzNDg5MSwzNDg5NCwzNDg5NywzNDkwMSwzNDkwMiwzNDkwNCwzNDkwNiwzNDkwOCwzNDkxMSwzNDkxMiwz''@;'; + put 'put ''NDkxNiwzNDkyMSwzNDkyOSwzNDkzNywzNDkzOSwzNDk0NCwzNDk2OCwzNDk3MCwzNDk3MSwzNDk3MiwzNDk3NSwzNDk3NiwzNDk4NCwzNDk4NiwzNTAwMiwzNTAwNSwzNTAwNiwzNTAwOCwzNTAxOCwzNTAxOSwzNTAyMCwzNTAyMSwzNTAyMiwzNTAyNSwzNTAyNiwzNTAyNywzNTAzNSwzNTAz''@;'; + put 'put ''OCwzNTA0NywzNTA1NSwzNTA1NiwzNTA1NywzNTA2MSwzNTA2MywzNTA3MywzNTA3OCwzNTA4NSwzNTA4NiwzNTA4NywzNTA5MywzNTA5NCwzNTA5NiwzNTA5NywzNTA5OCwzNTEwMCwzNTEwNCwzNTExMCwzNTExMSwzNTExMiwzNTEyMCwzNTEyMSwzNTEyMiwzNTEyNSwzNTEyOSwzNTEzMCwz''@;'; + put 'put ''NTEzNCwzNTEzNiwzNTEzOCwzNTE0MSwzNTE0MiwzNTE0NSwzNTE1MSwzNTE1NCwzNTE1OSwzNTE2MiwzNTE2MywzNTE2NCwzNTE2OSwzNTE3MCwzNTE3MSwzNTE3OSwzNTE4MiwzNTE4NCwzNTE4NywzNTE4OSwzNTE5NCwzNTE5NSwzNTE5NiwzNTE5NywzNTIwOSwzNTIxMywzNTIxNiwzNTIy''@;'; + put 'put ''MCwzNTIyMSwzNTIyNywzNTIyOCwzNTIzMSwzNTIzMiwzNTIzNywzNTI0OCwzNTI1MiwzNTI1MywzNTI1NCwzNTI1NSwzNTI2MCwzNTI4NCwzNTI4NSwzNTI4NiwzNTI4NywzNTI4OCwzNTMwMSwzNTMwNSwzNTMwNywzNTMwOSwzNTMxMywzNTMxNSwzNTMxOCwzNTMyMSwzNTMyNSwzNTMyNywz''@;'; + put 'put ''NTMzMiwzNTMzMywzNTMzNSwzNTM0MywzNTM0NSwzNTM0NiwzNTM0OCwzNTM0OSwzNTM1OCwzNTM2MCwzNTM2MiwzNTM2NCwzNTM2NiwzNTM3MSwzNTM3MiwzNTM3NSwzNTM4MSwzNTM4MywzNTM4OSwzNTM5MCwzNTM5MiwzNTM5NSwzNTM5NywzNTM5OSwzNTQwMSwzNTQwNSwzNTQwNiwzNTQx''@;'; + put 'put ''MSwzNTQxNCwzNTQxNSwzNTQxNiwzNTQyMCwzNTQyMSwzNTQyNSwzNTQyOSwzNTQzMSwzNTQ0NSwzNTQ0NiwzNTQ0NywzNTQ0OSwzNTQ1MCwzNTQ1MSwzNTQ1NCwzNTQ1NSwzNTQ1NiwzNTQ1OSwzNTQ2MiwzNTQ2NywzNTQ3MSwzNTQ3MiwzNTQ3NCwzNTQ3OCwzNTQ3OSwzNTQ4MSwzNTQ4Nywz''@;'; + put 'put ''NTQ5NSwzNTQ5NywzNTUwMiwzNTUwMywzNTUwNywzNTUxMCwzNTUxMSwzNTUxNSwzNTUxOCwzNTUyMywzNTUyNiwzNTUyOCwzNTUyOSwzNTUzMCwzNTUzNywzNTUzOSwzNTU0MCwzNTU0MSwzNTU0MywzNTU0OSwzNTU1MSwzNTU2NCwzNTU2OCwzNTU3MiwzNTU3MywzNTU3NCwzNTU4MCwzNTU4''@;'; + put 'put ''MywzNTU4OSwzNTU5MCwzNTU5NSwzNTYwMSwzNTYxMiwzNTYxNCwzNTYxNSwzNTU5NCwzNTYyOSwzNTYzMiwzNTYzOSwzNTY0NCwzNTY1MCwzNTY1MSwzNTY1MiwzNTY1MywzNTY1NCwzNTY1NiwzNTY2NiwzNTY2NywzNTY2OCwzNTY3MywzNTY2MSwzNTY3OCwzNTY4MywzNTY5MywzNTcwMiwz''@;'; + put 'put ''NTcwNCwzNTcwNSwzNTcwOCwzNTcxMCwzNTcxMywzNTcxNiwzNTcxNywzNTcyMywzNTcyNSwzNTcyNywzNTczMiwzNTczMywzNTc0MCwzNTc0MiwzNTc0MywzNTg5NiwzNTg5NywzNTkwMSwzNTkwMiwzNTkwOSwzNTkxMSwzNTkxMywzNTkxNSwzNTkxOSwzNTkyMSwzNTkyMywzNTkyNCwzNTky''@;'; + put 'put ''NywzNTkyOCwzNTkzMSwzNTkzMywzNTkyOSwzNTkzOSwzNTk0MCwzNTk0MiwzNTk0NCwzNTk0NSwzNTk0OSwzNTk1NSwzNTk1NywzNTk1OCwzNTk2MywzNTk2NiwzNTk3NCwzNTk3NSwzNTk3OSwzNTk4NCwzNTk4NiwzNTk4NywzNTk5MywzNTk5NSwzNTk5NiwzNjAwNCwzNjAyNSwzNjAyNiwz''@;'; + put 'put ''NjAzNywzNjAzOCwzNjA0MSwzNjA0MywzNjA0NywzNjA1NCwzNjA1MywzNjA1NywzNjA2MSwzNjA2NSwzNjA3MiwzNjA3NiwzNjA3OSwzNjA4MCwzNjA4MiwzNjA4NSwzNjA4NywzNjA4OCwzNjA5NCwzNjA5NSwzNjA5NywzNjA5OSwzNjEwNSwzNjExNCwzNjExOSwzNjEyMywzNjE5NywzNjIw''@;'; + put 'put ''MSwzNjIwNCwzNjIwNiwzNjIyMywzNjIyNiwzNjIyOCwzNjIzMiwzNjIzNywzNjI0MCwzNjI0MSwzNjI0NSwzNjI1NCwzNjI1NSwzNjI1NiwzNjI2MiwzNjI2NywzNjI2OCwzNjI3MSwzNjI3NCwzNjI3NywzNjI3OSwzNjI4MSwzNjI4MywzNjI4OCwzNjI5MywzNjI5NCwzNjI5NSwzNjI5Niwz''@;'; + put 'put ''NjI5OCwzNjMwMiwzNjMwNSwzNjMwOCwzNjMwOSwzNjMxMSwzNjMxMywzNjMyNCwzNjMyNSwzNjMyNywzNjMzMiwzNjMzNiwzNjI4NCwzNjMzNywzNjMzOCwzNjM0MCwzNjM0OSwzNjM1MywzNjM1NiwzNjM1NywzNjM1OCwzNjM2MywzNjM2OSwzNjM3MiwzNjM3NCwzNjM4NCwzNjM4NSwzNjM4''@;'; + put 'put ''NiwzNjM4NywzNjM5MCwzNjM5MSwzNjQwMSwzNjQwMywzNjQwNiwzNjQwNywzNjQwOCwzNjQwOSwzNjQxMywzNjQxNiwzNjQxNywzNjQyNywzNjQyOSwzNjQzMCwzNjQzMSwzNjQzNiwzNjQ0MywzNjQ0NCwzNjQ0NSwzNjQ0NiwzNjQ0OSwzNjQ1MCwzNjQ1NywzNjQ2MCwzNjQ2MSwzNjQ2Mywz''@;'; + put 'put ''NjQ2NCwzNjQ2NSwzNjQ3MywzNjQ3NCwzNjQ3NSwzNjQ4MiwzNjQ4MywzNjQ4OSwzNjQ5NiwzNjQ5OCwzNjUwMSwzNjUwNiwzNjUwNywzNjUwOSwzNjUxMCwzNjUxNCwzNjUxOSwzNjUyMSwzNjUyNSwzNjUyNiwzNjUzMSwzNjUzMywzNjUzOCwzNjUzOSwzNjU0NCwzNjU0NSwzNjU0NywzNjU0''@;'; + put 'put ''OCwzNjU1MSwzNjU1OSwzNjU2MSwzNjU2NCwzNjU3MiwzNjU4NCwzNjU5MCwzNjU5MiwzNjU5MywzNjU5OSwzNjYwMSwzNjYwMiwzNjU4OSwzNjYwOCwzNjYxMCwzNjYxNSwzNjYxNiwzNjYyMywzNjYyNCwzNjYzMCwzNjYzMSwzNjYzMiwzNjYzOCwzNjY0MCwzNjY0MSwzNjY0MywzNjY0NSwz''@;'; + put 'put ''NjY0NywzNjY0OCwzNjY1MiwzNjY1MywzNjY1NCwzNjY2MCwzNjY2MSwzNjY2MiwzNjY2MywzNjY2NiwzNjY3MiwzNjY3MywzNjY3NSwzNjY3OSwzNjY4NywzNjY4OSwzNjY5MCwzNjY5MSwzNjY5MiwzNjY5MywzNjY5NiwzNjcwMSwzNjcwMiwzNjcwOSwzNjc2NSwzNjc2OCwzNjc2OSwzNjc3''@;'; + put 'put ''MiwzNjc3MywzNjc3NCwzNjc4OSwzNjc5MCwzNjc5MiwzNjc5OCwzNjgwMCwzNjgwMSwzNjgwNiwzNjgxMCwzNjgxMSwzNjgxMywzNjgxNiwzNjgxOCwzNjgxOSwzNjgyMSwzNjgzMiwzNjgzNSwzNjgzNiwzNjg0MCwzNjg0NiwzNjg0OSwzNjg1MywzNjg1NCwzNjg1OSwzNjg2MiwzNjg2Niwz''@;'; + put 'put ''Njg2OCwzNjg3MiwzNjg3NiwzNjg4OCwzNjg5MSwzNjkwNCwzNjkwNSwzNjkxMSwzNjkwNiwzNjkwOCwzNjkwOSwzNjkxNSwzNjkxNiwzNjkxOSwzNjkyNywzNjkzMSwzNjkzMiwzNjk0MCwzNjk1NSwzNjk1NywzNjk2MiwzNjk2NiwzNjk2NywzNjk3MiwzNjk3NiwzNjk4MCwzNjk4NSwzNjk5''@;'; + put 'put ''NywzN2UzLDM3MDAzLDM3MDA0LDM3MDA2LDM3MDA4LDM3MDEzLDM3MDE1LDM3MDE2LDM3MDE3LDM3MDE5LDM3MDI0LDM3MDI1LDM3MDI2LDM3MDI5LDM3MDQwLDM3MDQyLDM3MDQzLDM3MDQ0LDM3MDQ2LDM3MDUzLDM3MDY4LDM3MDU0LDM3MDU5LDM3MDYwLDM3MDYxLDM3MDYzLDM3MDY0LDM3''@;'; + put 'put ''MDc3LDM3MDc5LDM3MDgwLDM3MDgxLDM3MDg0LDM3MDg1LDM3MDg3LDM3MDkzLDM3MDc0LDM3MTEwLDM3MDk5LDM3MTAzLDM3MTA0LDM3MTA4LDM3MTE4LDM3MTE5LDM3MTIwLDM3MTI0LDM3MTI1LDM3MTI2LDM3MTI4LDM3MTMzLDM3MTM2LDM3MTQwLDM3MTQyLDM3MTQzLDM3MTQ0LDM3MTQ2''@;'; + put 'put ''LDM3MTQ4LDM3MTUwLDM3MTUyLDM3MTU3LDM3MTU0LDM3MTU1LDM3MTU5LDM3MTYxLDM3MTY2LDM3MTY3LDM3MTY5LDM3MTcyLDM3MTc0LDM3MTc1LDM3MTc3LDM3MTc4LDM3MTgwLDM3MTgxLDM3MTg3LDM3MTkxLDM3MTkyLDM3MTk5LDM3MjAzLDM3MjA3LDM3MjA5LDM3MjEwLDM3MjExLDM3''@;'; + put 'put ''MjE3LDM3MjIwLDM3MjIzLDM3MjI5LDM3MjM2LDM3MjQxLDM3MjQyLDM3MjQzLDM3MjQ5LDM3MjUxLDM3MjUzLDM3MjU0LDM3MjU4LDM3MjYyLDM3MjY1LDM3MjY3LDM3MjY4LDM3MjY5LDM3MjcyLDM3Mjc4LDM3MjgxLDM3Mjg2LDM3Mjg4LDM3MjkyLDM3MjkzLDM3Mjk0LDM3Mjk2LDM3Mjk3''@;'; + put 'put ''LDM3Mjk4LDM3Mjk5LDM3MzAyLDM3MzA3LDM3MzA4LDM3MzA5LDM3MzExLDM3MzE0LDM3MzE1LDM3MzE3LDM3MzMxLDM3MzMyLDM3MzM1LDM3MzM3LDM3MzM4LDM3MzQyLDM3MzQ4LDM3MzQ5LDM3MzUzLDM3MzU0LDM3MzU2LDM3MzU3LDM3MzU4LDM3MzU5LDM3MzYwLDM3MzYxLDM3MzY3LDM3''@;'; + put 'put ''MzY5LDM3MzcxLDM3MzczLDM3Mzc2LDM3Mzc3LDM3MzgwLDM3MzgxLDM3MzgyLDM3MzgzLDM3Mzg1LDM3Mzg2LDM3Mzg4LDM3MzkyLDM3Mzk0LDM3Mzk1LDM3Mzk4LDM3NDAwLDM3NDA0LDM3NDA1LDM3NDExLDM3NDEyLDM3NDEzLDM3NDE0LDM3NDE2LDM3NDIyLDM3NDIzLDM3NDI0LDM3NDI3''@;'; + put 'put ''LDM3NDI5LDM3NDMwLDM3NDMyLDM3NDMzLDM3NDM0LDM3NDM2LDM3NDM4LDM3NDQwLDM3NDQyLDM3NDQzLDM3NDQ2LDM3NDQ3LDM3NDUwLDM3NDUzLDM3NDU0LDM3NDU1LDM3NDU3LDM3NDY0LDM3NDY1LDM3NDY4LDM3NDY5LDM3NDcyLDM3NDczLDM3NDc3LDM3NDc5LDM3NDgwLDM3NDgxLDM3''@;'; + put 'put ''NDg2LDM3NDg3LDM3NDg4LDM3NDkzLDM3NDk0LDM3NDk1LDM3NDk2LDM3NDk3LDM3NDk5LDM3NTAwLDM3NTAxLDM3NTAzLDM3NTEyLDM3NTEzLDM3NTE0LDM3NTE3LDM3NTE4LDM3NTIyLDM3NTI3LDM3NTI5LDM3NTM1LDM3NTM2LDM3NTQwLDM3NTQxLDM3NTQzLDM3NTQ0LDM3NTQ3LDM3NTUx''@;'; + put 'put ''LDM3NTU0LDM3NTU4LDM3NTYwLDM3NTYyLDM3NTYzLDM3NTY0LDM3NTY1LDM3NTY3LDM3NTY4LDM3NTY5LDM3NTcwLDM3NTcxLDM3NTczLDM3NTc0LDM3NTc1LDM3NTc2LDM3NTc5LDM3NTgwLDM3NTgxLDM3NTgyLDM3NTg0LDM3NTg3LDM3NTg5LDM3NTkxLDM3NTkyLDM3NTkzLDM3NTk2LDM3''@;'; + put 'put ''NTk3LDM3NTk5LDM3NjAwLDM3NjAxLDM3NjAzLDM3NjA1LDM3NjA3LDM3NjA4LDM3NjEyLDM3NjE0LDM3NjE2LDM3NjI1LDM3NjI3LDM3NjMxLDM3NjMyLDM3NjM0LDM3NjQwLDM3NjQ1LDM3NjQ5LDM3NjUyLDM3NjUzLDM3NjYwLDM3NjYxLDM3NjYyLDM3NjYzLDM3NjY1LDM3NjY4LDM3NjY5''@;'; + put 'put ''LDM3NjcxLDM3NjczLDM3Njc0LDM3NjgzLDM3Njg0LDM3Njg2LDM3Njg3LDM3NzAzLDM3NzA0LDM3NzA1LDM3NzEyLDM3NzEzLDM3NzE0LDM3NzE3LDM3NzE5LDM3NzIwLDM3NzIyLDM3NzI2LDM3NzMyLDM3NzMzLDM3NzM1LDM3NzM3LDM3NzM4LDM3NzQxLDM3NzQzLDM3NzQ0LDM3NzQ1LDM3''@;'; + put 'put ''NzQ3LDM3NzQ4LDM3NzUwLDM3NzU0LDM3NzU3LDM3NzU5LDM3NzYwLDM3NzYxLDM3NzYyLDM3NzY4LDM3NzcwLDM3NzcxLDM3NzczLDM3Nzc1LDM3Nzc4LDM3NzgxLDM3Nzg0LDM3Nzg3LDM3NzkwLDM3NzkzLDM3Nzk1LDM3Nzk2LDM3Nzk4LDM3ODAwLDM3ODAzLDM3ODEyLDM3ODEzLDM3ODE0''@;'; + put 'put ''LDM3ODE4LDM3ODAxLDM3ODI1LDM3ODI4LDM3ODI5LDM3ODMwLDM3ODMxLDM3ODMzLDM3ODM0LDM3ODM1LDM3ODM2LDM3ODM3LDM3ODQzLDM3ODQ5LDM3ODUyLDM3ODU0LDM3ODU1LDM3ODU4LDM3ODYyLDM3ODYzLDM3ODgxLDM3ODc5LDM3ODgwLDM3ODgyLDM3ODgzLDM3ODg1LDM3ODg5LDM3''@;'; + put 'put ''ODkwLDM3ODkyLDM3ODk2LDM3ODk3LDM3OTAxLDM3OTAyLDM3OTAzLDM3OTA5LDM3OTEwLDM3OTExLDM3OTE5LDM3OTM0LDM3OTM1LDM3OTM3LDM3OTM4LDM3OTM5LDM3OTQwLDM3OTQ3LDM3OTUxLDM3OTQ5LDM3OTU1LDM3OTU3LDM3OTYwLDM3OTYyLDM3OTY0LDM3OTczLDM3OTc3LDM3OTgw''@;'; + put 'put ''LDM3OTgzLDM3OTg1LDM3OTg3LDM3OTkyLDM3OTk1LDM3OTk3LDM3OTk4LDM3OTk5LDM4MDAxLDM4MDAyLDM4MDIwLDM4MDE5LDM4MjY0LDM4MjY1LDM4MjcwLDM4Mjc2LDM4MjgwLDM4Mjg0LDM4Mjg1LDM4Mjg2LDM4MzAxLDM4MzAyLDM4MzAzLDM4MzA1LDM4MzEwLDM4MzEzLDM4MzE1LDM4''@;'; + put 'put ''MzE2LDM4MzI0LDM4MzI2LDM4MzMwLDM4MzMzLDM4MzM1LDM4MzQyLDM4MzQ0LDM4MzQ1LDM4MzQ3LDM4MzUyLDM4MzUzLDM4MzU0LDM4MzU1LDM4MzYxLDM4MzYyLDM4MzY1LDM4MzY2LDM4MzY3LDM4MzY4LDM4MzcyLDM4Mzc0LDM4NDI5LDM4NDMwLDM4NDM0LDM4NDM2LDM4NDM3LDM4NDM4''@;'; + put 'put ''LDM4NDQ0LDM4NDQ5LDM4NDUxLDM4NDU1LDM4NDU2LDM4NDU3LDM4NDU4LDM4NDYwLDM4NDYxLDM4NDY1LDM4NDgyLDM4NDg0LDM4NDg2LDM4NDg3LDM4NDg4LDM4NDk3LDM4NTEwLDM4NTE2LDM4NTIzLDM4NTI0LDM4NTI2LDM4NTI3LDM4NTI5LDM4NTMwLDM4NTMxLDM4NTMyLDM4NTM3LDM4''@;'; + put 'put ''NTQ1LDM4NTUwLDM4NTU0LDM4NTU3LDM4NTU5LDM4NTY0LDM4NTY1LDM4NTY2LDM4NTY5LDM4NTc0LDM4NTc1LDM4NTc5LDM4NTg2LDM4NjAyLDM4NjEwLDIzOTg2LDM4NjE2LDM4NjE4LDM4NjIxLDM4NjIyLDM4NjIzLDM4NjMzLDM4NjM5LDM4NjQxLDM4NjUwLDM4NjU4LDM4NjU5LDM4NjYx''@;'; + put 'put ''LDM4NjY1LDM4NjgyLDM4NjgzLDM4Njg1LDM4Njg5LDM4NjkwLDM4NjkxLDM4Njk2LDM4NzA1LDM4NzA3LDM4NzIxLDM4NzIzLDM4NzMwLDM4NzM0LDM4NzM1LDM4NzQxLDM4NzQzLDM4NzQ0LDM4NzQ2LDM4NzQ3LDM4NzU1LDM4NzU5LDM4NzYyLDM4NzY2LDM4NzcxLDM4Nzc0LDM4Nzc1LDM4''@;'; + put 'put ''Nzc2LDM4Nzc5LDM4NzgxLDM4NzgzLDM4Nzg0LDM4NzkzLDM4ODA1LDM4ODA2LDM4ODA3LDM4ODA5LDM4ODEwLDM4ODE0LDM4ODE1LDM4ODE4LDM4ODI4LDM4ODMwLDM4ODMzLDM4ODM0LDM4ODM3LDM4ODM4LDM4ODQwLDM4ODQxLDM4ODQyLDM4ODQ0LDM4ODQ2LDM4ODQ3LDM4ODQ5LDM4ODUy''@;'; + put 'put ''LDM4ODUzLDM4ODU1LDM4ODU3LDM4ODU4LDM4ODYwLDM4ODYxLDM4ODYyLDM4ODY0LDM4ODY1LDM4ODY4LDM4ODcxLDM4ODcyLDM4ODczLDM4ODc3LDM4ODc4LDM4ODgwLDM4ODc1LDM4ODgxLDM4ODg0LDM4ODk1LDM4ODk3LDM4OTAwLDM4OTAzLDM4OTA0LDM4OTA2LDM4OTE5LDM4OTIyLDM4''@;'; + put 'put ''OTM3LDM4OTI1LDM4OTI2LDM4OTMyLDM4OTM0LDM4OTQwLDM4OTQyLDM4OTQ0LDM4OTQ3LDM4OTUwLDM4OTU1LDM4OTU4LDM4OTU5LDM4OTYwLDM4OTYyLDM4OTYzLDM4OTY1LDM4OTQ5LDM4OTc0LDM4OTgwLDM4OTgzLDM4OTg2LDM4OTkzLDM4OTk0LDM4OTk1LDM4OTk4LDM4OTk5LDM5MDAx''@;'; + put 'put ''LDM5MDAyLDM5MDEwLDM5MDExLDM5MDEzLDM5MDE0LDM5MDE4LDM5MDIwLDM5MDgzLDM5MDg1LDM5MDg2LDM5MDg4LDM5MDkyLDM5MDk1LDM5MDk2LDM5MDk4LDM5MDk5LDM5MTAzLDM5MTA2LDM5MTA5LDM5MTEyLDM5MTE2LDM5MTM3LDM5MTM5LDM5MTQxLDM5MTQyLDM5MTQzLDM5MTQ2LDM5''@;'; + put 'put ''MTU1LDM5MTU4LDM5MTcwLDM5MTc1LDM5MTc2LDM5MTg1LDM5MTg5LDM5MTkwLDM5MTkxLDM5MTk0LDM5MTk1LDM5MTk2LDM5MTk5LDM5MjAyLDM5MjA2LDM5MjA3LDM5MjExLDM5MjE3LDM5MjE4LDM5MjE5LDM5MjIwLDM5MjIxLDM5MjI1LDM5MjI2LDM5MjI3LDM5MjI4LDM5MjMyLDM5MjMz''@;'; + put 'put ''LDM5MjM4LDM5MjM5LDM5MjQwLDM5MjQ1LDM5MjQ2LDM5MjUyLDM5MjU2LDM5MjU3LDM5MjU5LDM5MjYwLDM5MjYyLDM5MjYzLDM5MjY0LDM5MzIzLDM5MzI1LDM5MzI3LDM5MzM0LDM5MzQ0LDM5MzQ1LDM5MzQ2LDM5MzQ5LDM5MzUzLDM5MzU0LDM5MzU3LDM5MzU5LDM5MzYzLDM5MzY5LDM5''@;'; + put 'put ''Mzc5LDM5MzgwLDM5Mzg1LDM5Mzg2LDM5Mzg4LDM5MzkwLDM5Mzk5LDM5NDAyLDM5NDAzLDM5NDA0LDM5NDA4LDM5NDEyLDM5NDEzLDM5NDE3LDM5NDIxLDM5NDIyLDM5NDI2LDM5NDI3LDM5NDI4LDM5NDM1LDM5NDM2LDM5NDQwLDM5NDQxLDM5NDQ2LDM5NDU0LDM5NDU2LDM5NDU4LDM5NDU5''@;'; + put 'put ''LDM5NDYwLDM5NDYzLDM5NDY5LDM5NDcwLDM5NDc1LDM5NDc3LDM5NDc4LDM5NDgwLDM5NDk1LDM5NDg5LDM5NDkyLDM5NDk4LDM5NDk5LDM5NTAwLDM5NTAyLDM5NTA1LDM5NTA4LDM5NTEwLDM5NTE3LDM5NTk0LDM5NTk2LDM5NTk4LDM5NTk5LDM5NjAyLDM5NjA0LDM5NjA1LDM5NjA2LDM5''@;'; + put 'put ''NjA5LDM5NjExLDM5NjE0LDM5NjE1LDM5NjE3LDM5NjE5LDM5NjIyLDM5NjI0LDM5NjMwLDM5NjMyLDM5NjM0LDM5NjM3LDM5NjM4LDM5NjM5LDM5NjQzLDM5NjQ0LDM5NjQ4LDM5NjUyLDM5NjUzLDM5NjU1LDM5NjU3LDM5NjYwLDM5NjY2LDM5NjY3LDM5NjY5LDM5NjczLDM5Njc0LDM5Njc3''@;'; + put 'put ''LDM5Njc5LDM5NjgwLDM5NjgxLDM5NjgyLDM5NjgzLDM5Njg0LDM5Njg1LDM5Njg4LDM5Njg5LDM5NjkxLDM5NjkyLDM5NjkzLDM5Njk0LDM5Njk2LDM5Njk4LDM5NzAyLDM5NzA1LDM5NzA3LDM5NzA4LDM5NzEyLDM5NzE4LDM5NzIzLDM5NzI1LDM5NzMxLDM5NzMyLDM5NzMzLDM5NzM1LDM5''@;'; + put 'put ''NzM3LDM5NzM4LDM5NzQxLDM5NzUyLDM5NzU1LDM5NzU2LDM5NzY1LDM5NzY2LDM5NzY3LDM5NzcxLDM5Nzc0LDM5Nzc3LDM5Nzc5LDM5NzgxLDM5NzgyLDM5Nzg0LDM5Nzg2LDM5Nzg3LDM5Nzg4LDM5Nzg5LDM5NzkwLDM5Nzk1LDM5Nzk3LDM5Nzk5LDM5ODAwLDM5ODAxLDM5ODA3LDM5ODA4''@;'; + put 'put ''LDM5ODEyLDM5ODEzLDM5ODE0LDM5ODE1LDM5ODE3LDM5ODE4LDM5ODE5LDM5ODIxLDM5ODIzLDM5ODI0LDM5ODI4LDM5ODM0LDM5ODM3LDM5ODM4LDM5ODQ2LDM5ODQ3LDM5ODQ5LDM5ODUyLDM5ODU2LDM5ODU3LDM5ODU4LDM5ODYzLDM5ODY0LDM5ODY3LDM5ODY4LDM5ODcwLDM5ODcxLDM5''@;'; + put 'put ''ODczLDM5ODc5LDM5ODgwLDM5ODg2LDM5ODg4LDM5ODk1LDM5ODk2LDM5OTAxLDM5OTAzLDM5OTA5LDM5OTExLDM5OTE0LDM5OTE1LDM5OTE5LDM5OTIzLDM5OTI3LDM5OTI4LDM5OTI5LDM5OTMwLDM5OTMzLDM5OTM1LDM5OTM2LDM5OTM4LDM5OTQ3LDM5OTUxLDM5OTUzLDM5OTU4LDM5OTYw''@;'; + put 'put ''LDM5OTYxLDM5OTYyLDM5OTY0LDM5OTY2LDM5OTcwLDM5OTcxLDM5OTc0LDM5OTc1LDM5OTc2LDM5OTc3LDM5OTc4LDM5OTg1LDM5OTg5LDM5OTkwLDM5OTkxLDM5OTk3LDQwMDAxLDQwMDAzLDQwMDA0LDQwMDA1LDQwMDA5LDQwMDEwLDQwMDE0LDQwMDE1LDQwMDE2LDQwMDE5LDQwMDIwLDQw''@;'; + put 'put ''MDIyLDQwMDI0LDQwMDI3LDQwMDI5LDQwMDMwLDQwMDMxLDQwMDM1LDQwMDQxLDQwMDQyLDQwMDI4LDQwMDQzLDQwMDQwLDQwMDQ2LDQwMDQ4LDQwMDUwLDQwMDUzLDQwMDU1LDQwMDU5LDQwMTY2LDQwMTc4LDQwMTgzLDQwMTg1LDQwMjAzLDQwMTk0LDQwMjA5LDQwMjE1LDQwMjE2LDQwMjIw''@;'; + put 'put ''LDQwMjIxLDQwMjIyLDQwMjM5LDQwMjQwLDQwMjQyLDQwMjQzLDQwMjQ0LDQwMjUwLDQwMjUyLDQwMjYxLDQwMjUzLDQwMjU4LDQwMjU5LDQwMjYzLDQwMjY2LDQwMjc1LDQwMjc2LDQwMjg3LDQwMjkxLDQwMjkwLDQwMjkzLDQwMjk3LDQwMjk4LDQwMjk5LDQwMzA0LDQwMzEwLDQwMzExLDQw''@;'; + put 'put ''MzE1LDQwMzE2LDQwMzE4LDQwMzIzLDQwMzI0LDQwMzI2LDQwMzMwLDQwMzMzLDQwMzM0LDQwMzM4LDQwMzM5LDQwMzQxLDQwMzQyLDQwMzQzLDQwMzQ0LDQwMzUzLDQwMzYyLDQwMzY0LDQwMzY2LDQwMzY5LDQwMzczLDQwMzc3LDQwMzgwLDQwMzgzLDQwMzg3LDQwMzkxLDQwMzkzLDQwMzk0''@;'; + put 'put ''LDQwNDA0LDQwNDA1LDQwNDA2LDQwNDA3LDQwNDEwLDQwNDE0LDQwNDE1LDQwNDE2LDQwNDIxLDQwNDIzLDQwNDI1LDQwNDI3LDQwNDMwLDQwNDMyLDQwNDM1LDQwNDM2LDQwNDQ2LDQwNDU4LDQwNDUwLDQwNDU1LDQwNDYyLDQwNDY0LDQwNDY1LDQwNDY2LDQwNDY5LDQwNDcwLDQwNDczLDQw''@;'; + put 'put ''NDc2LDQwNDc3LDQwNTcwLDQwNTcxLDQwNTcyLDQwNTc2LDQwNTc4LDQwNTc5LDQwNTgwLDQwNTgxLDQwNTgzLDQwNTkwLDQwNTkxLDQwNTk4LDQwNjAwLDQwNjAzLDQwNjA2LDQwNjEyLDQwNjE2LDQwNjIwLDQwNjIyLDQwNjIzLDQwNjI0LDQwNjI3LDQwNjI4LDQwNjI5LDQwNjQ2LDQwNjQ4''@;'; + put 'put ''LDQwNjUxLDQwNjYxLDQwNjcxLDQwNjc2LDQwNjc5LDQwNjg0LDQwNjg1LDQwNjg2LDQwNjg4LDQwNjg5LDQwNjkwLDQwNjkzLDQwNjk2LDQwNzAzLDQwNzA2LDQwNzA3LDQwNzEzLDQwNzE5LDQwNzIwLDQwNzIxLDQwNzIyLDQwNzI0LDQwNzI2LDQwNzI3LDQwNzI5LDQwNzMwLDQwNzMxLDQw''@;'; + put 'put ''NzM1LDQwNzM4LDQwNzQyLDQwNzQ2LDQwNzQ3LDQwNzUxLDQwNzUzLDQwNzU0LDQwNzU2LDQwNzU5LDQwNzYxLDQwNzYyLDQwNzY0LDQwNzY1LDQwNzY3LDQwNzY5LDQwNzcxLDQwNzcyLDQwNzczLDQwNzc0LDQwNzc1LDQwNzg3LDQwNzg5LDQwNzkwLDQwNzkxLDQwNzkyLDQwNzk0LDQwNzk3''@;'; + put 'put ''LDQwNzk4LDQwODA4LDQwODA5LDQwODEzLDQwODE0LDQwODE1LDQwODE2LDQwODE3LDQwODE5LDQwODIxLDQwODI2LDQwODI5LDQwODQ3LDQwODQ4LDQwODQ5LDQwODUwLDQwODUyLDQwODU0LDQwODU1LDQwODYyLDQwODY1LDQwODY2LDQwODY3LDQwODY5LG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbF0saWJtODY2OlsxMDQwLDEwNDEsMTA0MiwxMDQzLDEwNDQsMTA0NSwxMDQ2LDEwNDcsMTA0OCwxMDQ5LDEwNTAsMTA1MSwxMDUyLDEwNTMsMTA1NCwxMDU1LDEwNTYsMTA1NywxMDU4LDEwNTksMTA2MCwxMDYxLDEwNjIsMTA2MywxMDY0LDEwNjUsMTA2Niwx''@;'; + put 'put ''MDY3LDEwNjgsMTA2OSwxMDcwLDEwNzEsMTA3MiwxMDczLDEwNzQsMTA3NSwxMDc2LDEwNzcsMTA3OCwxMDc5LDEwODAsMTA4MSwxMDgyLDEwODMsMTA4NCwxMDg1LDEwODYsMTA4Nyw5NjE3LDk2MTgsOTYxOSw5NDc0LDk1MDgsOTU2OSw5NTcwLDk1NTgsOTU1Nyw5NTcxLDk1NTMsOTU1OSw5''@;'; + put 'put ''NTY1LDk1NjQsOTU2Myw5NDg4LDk0OTIsOTUyNCw5NTE2LDk1MDAsOTQ3Miw5NTMyLDk1NjYsOTU2Nyw5NTYyLDk1NTYsOTU3Nyw5NTc0LDk1NjgsOTU1Miw5NTgwLDk1NzUsOTU3Niw5NTcyLDk1NzMsOTU2MSw5NTYwLDk1NTQsOTU1NSw5NTc5LDk1NzgsOTQ5Niw5NDg0LDk2MDgsOTYwNCw5''@;'; + put 'put ''NjEyLDk2MTYsOTYwMCwxMDg4LDEwODksMTA5MCwxMDkxLDEwOTIsMTA5MywxMDk0LDEwOTUsMTA5NiwxMDk3LDEwOTgsMTA5OSwxMTAwLDExMDEsMTEwMiwxMTAzLDEwMjUsMTEwNSwxMDI4LDExMDgsMTAzMSwxMTExLDEwMzgsMTExOCwxNzYsODcyOSwxODMsODczMCw4NDcwLDE2NCw5NjMy''@;'; + put 'put ''LDE2MF0sImlzby04ODU5LTIiOlsxMjgsMTI5LDEzMCwxMzEsMTMyLDEzMywxMzQsMTM1LDEzNiwxMzcsMTM4LDEzOSwxNDAsMTQxLDE0MiwxNDMsMTQ0LDE0NSwxNDYsMTQ3LDE0OCwxNDksMTUwLDE1MSwxNTIsMTUzLDE1NCwxNTUsMTU2LDE1NywxNTgsMTU5LDE2MCwyNjAsNzI4LDMyMSwx''@;'; + put 'put ''NjQsMzE3LDM0NiwxNjcsMTY4LDM1MiwzNTAsMzU2LDM3NywxNzMsMzgxLDM3OSwxNzYsMjYxLDczMSwzMjIsMTgwLDMxOCwzNDcsNzExLDE4NCwzNTMsMzUxLDM1NywzNzgsNzMzLDM4MiwzODAsMzQwLDE5MywxOTQsMjU4LDE5NiwzMTMsMjYyLDE5OSwyNjgsMjAxLDI4MCwyMDMsMjgyLDIw''@;'; + put 'put ''NSwyMDYsMjcwLDI3MiwzMjMsMzI3LDIxMSwyMTIsMzM2LDIxNCwyMTUsMzQ0LDM2NiwyMTgsMzY4LDIyMCwyMjEsMzU0LDIyMywzNDEsMjI1LDIyNiwyNTksMjI4LDMxNCwyNjMsMjMxLDI2OSwyMzMsMjgxLDIzNSwyODMsMjM3LDIzOCwyNzEsMjczLDMyNCwzMjgsMjQzLDI0NCwzMzcsMjQ2''@;'; + put 'put ''LDI0NywzNDUsMzY3LDI1MCwzNjksMjUyLDI1MywzNTUsNzI5XSwiaXNvLTg4NTktMyI6WzEyOCwxMjksMTMwLDEzMSwxMzIsMTMzLDEzNCwxMzUsMTM2LDEzNywxMzgsMTM5LDE0MCwxNDEsMTQyLDE0MywxNDQsMTQ1LDE0NiwxNDcsMTQ4LDE0OSwxNTAsMTUxLDE1MiwxNTMsMTU0LDE1NSwx''@;'; + put 'put ''NTYsMTU3LDE1OCwxNTksMTYwLDI5NCw3MjgsMTYzLDE2NCxudWxsLDI5MiwxNjcsMTY4LDMwNCwzNTAsMjg2LDMwOCwxNzMsbnVsbCwzNzksMTc2LDI5NSwxNzgsMTc5LDE4MCwxODEsMjkzLDE4MywxODQsMzA1LDM1MSwyODcsMzA5LDE4OSxudWxsLDM4MCwxOTIsMTkzLDE5NCxudWxsLDE5''@;'; + put 'put ''NiwyNjYsMjY0LDE5OSwyMDAsMjAxLDIwMiwyMDMsMjA0LDIwNSwyMDYsMjA3LG51bGwsMjA5LDIxMCwyMTEsMjEyLDI4OCwyMTQsMjE1LDI4NCwyMTcsMjE4LDIxOSwyMjAsMzY0LDM0OCwyMjMsMjI0LDIyNSwyMjYsbnVsbCwyMjgsMjY3LDI2NSwyMzEsMjMyLDIzMywyMzQsMjM1LDIzNiwy''@;'; + put 'put ''MzcsMjM4LDIzOSxudWxsLDI0MSwyNDIsMjQzLDI0NCwyODksMjQ2LDI0NywyODUsMjQ5LDI1MCwyNTEsMjUyLDM2NSwzNDksNzI5XSwiaXNvLTg4NTktNCI6WzEyOCwxMjksMTMwLDEzMSwxMzIsMTMzLDEzNCwxMzUsMTM2LDEzNywxMzgsMTM5LDE0MCwxNDEsMTQyLDE0MywxNDQsMTQ1LDE0''@;'; + put 'put ''NiwxNDcsMTQ4LDE0OSwxNTAsMTUxLDE1MiwxNTMsMTU0LDE1NSwxNTYsMTU3LDE1OCwxNTksMTYwLDI2MCwzMTIsMzQyLDE2NCwyOTYsMzE1LDE2NywxNjgsMzUyLDI3NCwyOTAsMzU4LDE3MywzODEsMTc1LDE3NiwyNjEsNzMxLDM0MywxODAsMjk3LDMxNiw3MTEsMTg0LDM1MywyNzUsMjkx''@;'; + put 'put ''LDM1OSwzMzAsMzgyLDMzMSwyNTYsMTkzLDE5NCwxOTUsMTk2LDE5NywxOTgsMzAyLDI2OCwyMDEsMjgwLDIwMywyNzgsMjA1LDIwNiwyOTgsMjcyLDMyNSwzMzIsMzEwLDIxMiwyMTMsMjE0LDIxNSwyMTYsMzcwLDIxOCwyMTksMjIwLDM2MCwzNjIsMjIzLDI1NywyMjUsMjI2LDIyNywyMjgs''@;'; + put 'put ''MjI5LDIzMCwzMDMsMjY5LDIzMywyODEsMjM1LDI3OSwyMzcsMjM4LDI5OSwyNzMsMzI2LDMzMywzMTEsMjQ0LDI0NSwyNDYsMjQ3LDI0OCwzNzEsMjUwLDI1MSwyNTIsMzYxLDM2Myw3MjldLCJpc28tODg1OS01IjpbMTI4LDEyOSwxMzAsMTMxLDEzMiwxMzMsMTM0LDEzNSwxMzYsMTM3LDEz''@;'; + put 'put ''OCwxMzksMTQwLDE0MSwxNDIsMTQzLDE0NCwxNDUsMTQ2LDE0NywxNDgsMTQ5LDE1MCwxNTEsMTUyLDE1MywxNTQsMTU1LDE1NiwxNTcsMTU4LDE1OSwxNjAsMTAyNSwxMDI2LDEwMjcsMTAyOCwxMDI5LDEwMzAsMTAzMSwxMDMyLDEwMzMsMTAzNCwxMDM1LDEwMzYsMTczLDEwMzgsMTAzOSwx''@;'; + put 'put ''MDQwLDEwNDEsMTA0MiwxMDQzLDEwNDQsMTA0NSwxMDQ2LDEwNDcsMTA0OCwxMDQ5LDEwNTAsMTA1MSwxMDUyLDEwNTMsMTA1NCwxMDU1LDEwNTYsMTA1NywxMDU4LDEwNTksMTA2MCwxMDYxLDEwNjIsMTA2MywxMDY0LDEwNjUsMTA2NiwxMDY3LDEwNjgsMTA2OSwxMDcwLDEwNzEsMTA3Miwx''@;'; + put 'put ''MDczLDEwNzQsMTA3NSwxMDc2LDEwNzcsMTA3OCwxMDc5LDEwODAsMTA4MSwxMDgyLDEwODMsMTA4NCwxMDg1LDEwODYsMTA4NywxMDg4LDEwODksMTA5MCwxMDkxLDEwOTIsMTA5MywxMDk0LDEwOTUsMTA5NiwxMDk3LDEwOTgsMTA5OSwxMTAwLDExMDEsMTEwMiwxMTAzLDg0NzAsMTEwNSwx''@;'; + put 'put ''MTA2LDExMDcsMTEwOCwxMTA5LDExMTAsMTExMSwxMTEyLDExMTMsMTExNCwxMTE1LDExMTYsMTY3LDExMTgsMTExOV0sImlzby04ODU5LTYiOlsxMjgsMTI5LDEzMCwxMzEsMTMyLDEzMywxMzQsMTM1LDEzNiwxMzcsMTM4LDEzOSwxNDAsMTQxLDE0MiwxNDMsMTQ0LDE0NSwxNDYsMTQ3LDE0''@;'; + put 'put ''OCwxNDksMTUwLDE1MSwxNTIsMTUzLDE1NCwxNTUsMTU2LDE1NywxNTgsMTU5LDE2MCxudWxsLG51bGwsbnVsbCwxNjQsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwxNTQ4LDE3MyxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLDE1NjMsbnVsbCxudWxsLG51bGwsMTU2NyxudWxsLDE1NjksMTU3MCwxNTcxLDE1NzIsMTU3MywxNTc0LDE1NzUsMTU3NiwxNTc3LDE1NzgsMTU3OSwxNTgwLDE1ODEsMTU4MiwxNTgzLDE1ODQsMTU4NSwxNTg2LDE1ODcsMTU4OCwxNTg5LDE1OTAsMTU5MSwxNTkyLDE1''@;'; + put 'put ''OTMsMTU5NCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsMTYwMCwxNjAxLDE2MDIsMTYwMywxNjA0LDE2MDUsMTYwNiwxNjA3LDE2MDgsMTYwOSwxNjEwLDE2MTEsMTYxMiwxNjEzLDE2MTQsMTYxNSwxNjE2LDE2MTcsMTYxOCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsXSwiaXNvLTg4NTktNyI6WzEyOCwxMjksMTMwLDEzMSwxMzIsMTMzLDEzNCwxMzUsMTM2LDEzNywxMzgsMTM5LDE0MCwxNDEsMTQyLDE0MywxNDQsMTQ1LDE0NiwxNDcsMTQ4LDE0OSwxNTAsMTUxLDE1MiwxNTMsMTU0LDE1NSwxNTYsMTU3LDE1''@;'; + put 'put ''OCwxNTksMTYwLDgyMTYsODIxNywxNjMsODM2NCw4MzY3LDE2NiwxNjcsMTY4LDE2OSw4OTAsMTcxLDE3MiwxNzMsbnVsbCw4MjEzLDE3NiwxNzcsMTc4LDE3OSw5MDAsOTAxLDkwMiwxODMsOTA0LDkwNSw5MDYsMTg3LDkwOCwxODksOTEwLDkxMSw5MTIsOTEzLDkxNCw5MTUsOTE2LDkxNyw5''@;'; + put 'put ''MTgsOTE5LDkyMCw5MjEsOTIyLDkyMyw5MjQsOTI1LDkyNiw5MjcsOTI4LDkyOSxudWxsLDkzMSw5MzIsOTMzLDkzNCw5MzUsOTM2LDkzNyw5MzgsOTM5LDk0MCw5NDEsOTQyLDk0Myw5NDQsOTQ1LDk0Niw5NDcsOTQ4LDk0OSw5NTAsOTUxLDk1Miw5NTMsOTU0LDk1NSw5NTYsOTU3LDk1OCw5''@;'; + put 'put ''NTksOTYwLDk2MSw5NjIsOTYzLDk2NCw5NjUsOTY2LDk2Nyw5NjgsOTY5LDk3MCw5NzEsOTcyLDk3Myw5NzQsbnVsbF0sImlzby04ODU5LTgiOlsxMjgsMTI5LDEzMCwxMzEsMTMyLDEzMywxMzQsMTM1LDEzNiwxMzcsMTM4LDEzOSwxNDAsMTQxLDE0MiwxNDMsMTQ0LDE0NSwxNDYsMTQ3LDE0''@;'; + put 'put ''OCwxNDksMTUwLDE1MSwxNTIsMTUzLDE1NCwxNTUsMTU2LDE1NywxNTgsMTU5LDE2MCxudWxsLDE2MiwxNjMsMTY0LDE2NSwxNjYsMTY3LDE2OCwxNjksMjE1LDE3MSwxNzIsMTczLDE3NCwxNzUsMTc2LDE3NywxNzgsMTc5LDE4MCwxODEsMTgyLDE4MywxODQsMTg1LDI0NywxODcsMTg4LDE4''@;'; + put 'put ''OSwxOTAsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; + put 'put ''LDgyMTUsMTQ4OCwxNDg5LDE0OTAsMTQ5MSwxNDkyLDE0OTMsMTQ5NCwxNDk1LDE0OTYsMTQ5NywxNDk4LDE0OTksMTUwMCwxNTAxLDE1MDIsMTUwMywxNTA0LDE1MDUsMTUwNiwxNTA3LDE1MDgsMTUwOSwxNTEwLDE1MTEsMTUxMiwxNTEzLDE1MTQsbnVsbCxudWxsLDgyMDYsODIwNyxudWxs''@;'; + put 'put ''XSwiaXNvLTg4NTktMTAiOlsxMjgsMTI5LDEzMCwxMzEsMTMyLDEzMywxMzQsMTM1LDEzNiwxMzcsMTM4LDEzOSwxNDAsMTQxLDE0MiwxNDMsMTQ0LDE0NSwxNDYsMTQ3LDE0OCwxNDksMTUwLDE1MSwxNTIsMTUzLDE1NCwxNTUsMTU2LDE1NywxNTgsMTU5LDE2MCwyNjAsMjc0LDI5MCwyOTgs''@;'; + put 'put ''Mjk2LDMxMCwxNjcsMzE1LDI3MiwzNTIsMzU4LDM4MSwxNzMsMzYyLDMzMCwxNzYsMjYxLDI3NSwyOTEsMjk5LDI5NywzMTEsMTgzLDMxNiwyNzMsMzUzLDM1OSwzODIsODIxMywzNjMsMzMxLDI1NiwxOTMsMTk0LDE5NSwxOTYsMTk3LDE5OCwzMDIsMjY4LDIwMSwyODAsMjAzLDI3OCwyMDUs''@;'; + put 'put ''MjA2LDIwNywyMDgsMzI1LDMzMiwyMTEsMjEyLDIxMywyMTQsMzYwLDIxNiwzNzAsMjE4LDIxOSwyMjAsMjIxLDIyMiwyMjMsMjU3LDIyNSwyMjYsMjI3LDIyOCwyMjksMjMwLDMwMywyNjksMjMzLDI4MSwyMzUsMjc5LDIzNywyMzgsMjM5LDI0MCwzMjYsMzMzLDI0MywyNDQsMjQ1LDI0Niwz''@;'; + put 'put ''NjEsMjQ4LDM3MSwyNTAsMjUxLDI1MiwyNTMsMjU0LDMxMl0sImlzby04ODU5LTEzIjpbMTI4LDEyOSwxMzAsMTMxLDEzMiwxMzMsMTM0LDEzNSwxMzYsMTM3LDEzOCwxMzksMTQwLDE0MSwxNDIsMTQzLDE0NCwxNDUsMTQ2LDE0NywxNDgsMTQ5LDE1MCwxNTEsMTUyLDE1MywxNTQsMTU1LDE1''@;'; + put 'put ''NiwxNTcsMTU4LDE1OSwxNjAsODIyMSwxNjIsMTYzLDE2NCw4MjIyLDE2NiwxNjcsMjE2LDE2OSwzNDIsMTcxLDE3MiwxNzMsMTc0LDE5OCwxNzYsMTc3LDE3OCwxNzksODIyMCwxODEsMTgyLDE4MywyNDgsMTg1LDM0MywxODcsMTg4LDE4OSwxOTAsMjMwLDI2MCwzMDIsMjU2LDI2MiwxOTYs''@;'; + put 'put ''MTk3LDI4MCwyNzQsMjY4LDIwMSwzNzcsMjc4LDI5MCwzMTAsMjk4LDMxNSwzNTIsMzIzLDMyNSwyMTEsMzMyLDIxMywyMTQsMjE1LDM3MCwzMjEsMzQ2LDM2MiwyMjAsMzc5LDM4MSwyMjMsMjYxLDMwMywyNTcsMjYzLDIyOCwyMjksMjgxLDI3NSwyNjksMjMzLDM3OCwyNzksMjkxLDMxMSwy''@;'; + put 'put ''OTksMzE2LDM1MywzMjQsMzI2LDI0MywzMzMsMjQ1LDI0NiwyNDcsMzcxLDMyMiwzNDcsMzYzLDI1MiwzODAsMzgyLDgyMTddLCJpc28tODg1OS0xNCI6WzEyOCwxMjksMTMwLDEzMSwxMzIsMTMzLDEzNCwxMzUsMTM2LDEzNywxMzgsMTM5LDE0MCwxNDEsMTQyLDE0MywxNDQsMTQ1LDE0Niwx''@;'; + put 'put ''NDcsMTQ4LDE0OSwxNTAsMTUxLDE1MiwxNTMsMTU0LDE1NSwxNTYsMTU3LDE1OCwxNTksMTYwLDc2ODIsNzY4MywxNjMsMjY2LDI2Nyw3NjkwLDE2Nyw3ODA4LDE2OSw3ODEwLDc2OTEsNzkyMiwxNzMsMTc0LDM3Niw3NzEwLDc3MTEsMjg4LDI4OSw3NzQ0LDc3NDUsMTgyLDc3NjYsNzgwOSw3''@;'; + put 'put ''NzY3LDc4MTEsNzc3Niw3OTIzLDc4MTIsNzgxMyw3Nzc3LDE5MiwxOTMsMTk0LDE5NSwxOTYsMTk3LDE5OCwxOTksMjAwLDIwMSwyMDIsMjAzLDIwNCwyMDUsMjA2LDIwNywzNzIsMjA5LDIxMCwyMTEsMjEyLDIxMywyMTQsNzc4NiwyMTYsMjE3LDIxOCwyMTksMjIwLDIyMSwzNzQsMjIzLDIy''@;'; + put 'put ''NCwyMjUsMjI2LDIyNywyMjgsMjI5LDIzMCwyMzEsMjMyLDIzMywyMzQsMjM1LDIzNiwyMzcsMjM4LDIzOSwzNzMsMjQxLDI0MiwyNDMsMjQ0LDI0NSwyNDYsNzc4NywyNDgsMjQ5LDI1MCwyNTEsMjUyLDI1MywzNzUsMjU1XSwiaXNvLTg4NTktMTUiOlsxMjgsMTI5LDEzMCwxMzEsMTMyLDEz''@;'; + put 'put ''MywxMzQsMTM1LDEzNiwxMzcsMTM4LDEzOSwxNDAsMTQxLDE0MiwxNDMsMTQ0LDE0NSwxNDYsMTQ3LDE0OCwxNDksMTUwLDE1MSwxNTIsMTUzLDE1NCwxNTUsMTU2LDE1NywxNTgsMTU5LDE2MCwxNjEsMTYyLDE2Myw4MzY0LDE2NSwzNTIsMTY3LDM1MywxNjksMTcwLDE3MSwxNzIsMTczLDE3''@;'; + put 'put ''NCwxNzUsMTc2LDE3NywxNzgsMTc5LDM4MSwxODEsMTgyLDE4MywzODIsMTg1LDE4NiwxODcsMzM4LDMzOSwzNzYsMTkxLDE5MiwxOTMsMTk0LDE5NSwxOTYsMTk3LDE5OCwxOTksMjAwLDIwMSwyMDIsMjAzLDIwNCwyMDUsMjA2LDIwNywyMDgsMjA5LDIxMCwyMTEsMjEyLDIxMywyMTQsMjE1''@;'; + put 'put ''LDIxNiwyMTcsMjE4LDIxOSwyMjAsMjIxLDIyMiwyMjMsMjI0LDIyNSwyMjYsMjI3LDIyOCwyMjksMjMwLDIzMSwyMzIsMjMzLDIzNCwyMzUsMjM2LDIzNywyMzgsMjM5LDI0MCwyNDEsMjQyLDI0MywyNDQsMjQ1LDI0NiwyNDcsMjQ4LDI0OSwyNTAsMjUxLDI1MiwyNTMsMjU0LDI1NV0sImlz''@;'; + put 'put ''by04ODU5LTE2IjpbMTI4LDEyOSwxMzAsMTMxLDEzMiwxMzMsMTM0LDEzNSwxMzYsMTM3LDEzOCwxMzksMTQwLDE0MSwxNDIsMTQzLDE0NCwxNDUsMTQ2LDE0NywxNDgsMTQ5LDE1MCwxNTEsMTUyLDE1MywxNTQsMTU1LDE1NiwxNTcsMTU4LDE1OSwxNjAsMjYwLDI2MSwzMjEsODM2NCw4MjIy''@;'; + put 'put ''LDM1MiwxNjcsMzUzLDE2OSw1MzYsMTcxLDM3NywxNzMsMzc4LDM3OSwxNzYsMTc3LDI2OCwzMjIsMzgxLDgyMjEsMTgyLDE4MywzODIsMjY5LDUzNywxODcsMzM4LDMzOSwzNzYsMzgwLDE5MiwxOTMsMTk0LDI1OCwxOTYsMjYyLDE5OCwxOTksMjAwLDIwMSwyMDIsMjAzLDIwNCwyMDUsMjA2''@;'; + put 'put ''LDIwNywyNzIsMzIzLDIxMCwyMTEsMjEyLDMzNiwyMTQsMzQ2LDM2OCwyMTcsMjE4LDIxOSwyMjAsMjgwLDUzOCwyMjMsMjI0LDIyNSwyMjYsMjU5LDIyOCwyNjMsMjMwLDIzMSwyMzIsMjMzLDIzNCwyMzUsMjM2LDIzNywyMzgsMjM5LDI3MywzMjQsMjQyLDI0MywyNDQsMzM3LDI0NiwzNDcs''@;'; + put 'put ''MzY5LDI0OSwyNTAsMjUxLDI1MiwyODEsNTM5LDI1NV0sImtvaTgtciI6Wzk0NzIsOTQ3NCw5NDg0LDk0ODgsOTQ5Miw5NDk2LDk1MDAsOTUwOCw5NTE2LDk1MjQsOTUzMiw5NjAwLDk2MDQsOTYwOCw5NjEyLDk2MTYsOTYxNyw5NjE4LDk2MTksODk5Miw5NjMyLDg3MjksODczMCw4Nzc2LDg4''@;'; + put 'put ''MDQsODgwNSwxNjAsODk5MywxNzYsMTc4LDE4MywyNDcsOTU1Miw5NTUzLDk1NTQsMTEwNSw5NTU1LDk1NTYsOTU1Nyw5NTU4LDk1NTksOTU2MCw5NTYxLDk1NjIsOTU2Myw5NTY0LDk1NjUsOTU2Niw5NTY3LDk1NjgsOTU2OSwxMDI1LDk1NzAsOTU3MSw5NTcyLDk1NzMsOTU3NCw5NTc1LDk1''@;'; + put 'put ''NzYsOTU3Nyw5NTc4LDk1NzksOTU4MCwxNjksMTEwMiwxMDcyLDEwNzMsMTA5NCwxMDc2LDEwNzcsMTA5MiwxMDc1LDEwOTMsMTA4MCwxMDgxLDEwODIsMTA4MywxMDg0LDEwODUsMTA4NiwxMDg3LDExMDMsMTA4OCwxMDg5LDEwOTAsMTA5MSwxMDc4LDEwNzQsMTEwMCwxMDk5LDEwNzksMTA5''@;'; + put 'put ''NiwxMTAxLDEwOTcsMTA5NSwxMDk4LDEwNzAsMTA0MCwxMDQxLDEwNjIsMTA0NCwxMDQ1LDEwNjAsMTA0MywxMDYxLDEwNDgsMTA0OSwxMDUwLDEwNTEsMTA1MiwxMDUzLDEwNTQsMTA1NSwxMDcxLDEwNTYsMTA1NywxMDU4LDEwNTksMTA0NiwxMDQyLDEwNjgsMTA2NywxMDQ3LDEwNjQsMTA2''@;'; + put 'put ''OSwxMDY1LDEwNjMsMTA2Nl0sImtvaTgtdSI6Wzk0NzIsOTQ3NCw5NDg0LDk0ODgsOTQ5Miw5NDk2LDk1MDAsOTUwOCw5NTE2LDk1MjQsOTUzMiw5NjAwLDk2MDQsOTYwOCw5NjEyLDk2MTYsOTYxNyw5NjE4LDk2MTksODk5Miw5NjMyLDg3MjksODczMCw4Nzc2LDg4MDQsODgwNSwxNjAsODk5''@;'; + put 'put ''MywxNzYsMTc4LDE4MywyNDcsOTU1Miw5NTUzLDk1NTQsMTEwNSwxMTA4LDk1NTYsMTExMCwxMTExLDk1NTksOTU2MCw5NTYxLDk1NjIsOTU2MywxMTY5LDExMTgsOTU2Niw5NTY3LDk1NjgsOTU2OSwxMDI1LDEwMjgsOTU3MSwxMDMwLDEwMzEsOTU3NCw5NTc1LDk1NzYsOTU3Nyw5NTc4LDEx''@;'; + put 'put ''NjgsMTAzOCwxNjksMTEwMiwxMDcyLDEwNzMsMTA5NCwxMDc2LDEwNzcsMTA5MiwxMDc1LDEwOTMsMTA4MCwxMDgxLDEwODIsMTA4MywxMDg0LDEwODUsMTA4NiwxMDg3LDExMDMsMTA4OCwxMDg5LDEwOTAsMTA5MSwxMDc4LDEwNzQsMTEwMCwxMDk5LDEwNzksMTA5NiwxMTAxLDEwOTcsMTA5''@;'; + put 'put ''NSwxMDk4LDEwNzAsMTA0MCwxMDQxLDEwNjIsMTA0NCwxMDQ1LDEwNjAsMTA0MywxMDYxLDEwNDgsMTA0OSwxMDUwLDEwNTEsMTA1MiwxMDUzLDEwNTQsMTA1NSwxMDcxLDEwNTYsMTA1NywxMDU4LDEwNTksMTA0NiwxMDQyLDEwNjgsMTA2NywxMDQ3LDEwNjQsMTA2OSwxMDY1LDEwNjMsMTA2''@;'; + put 'put ''Nl0sbWFjaW50b3NoOlsxOTYsMTk3LDE5OSwyMDEsMjA5LDIxNCwyMjAsMjI1LDIyNCwyMjYsMjI4LDIyNywyMjksMjMxLDIzMywyMzIsMjM0LDIzNSwyMzcsMjM2LDIzOCwyMzksMjQxLDI0MywyNDIsMjQ0LDI0NiwyNDUsMjUwLDI0OSwyNTEsMjUyLDgyMjQsMTc2LDE2MiwxNjMsMTY3LDgy''@;'; + put 'put ''MjYsMTgyLDIyMywxNzQsMTY5LDg0ODIsMTgwLDE2OCw4ODAwLDE5OCwyMTYsODczNCwxNzcsODgwNCw4ODA1LDE2NSwxODEsODcwNiw4NzIxLDg3MTksOTYwLDg3NDcsMTcwLDE4Niw5MzcsMjMwLDI0OCwxOTEsMTYxLDE3Miw4NzMwLDQwMiw4Nzc2LDg3MTAsMTcxLDE4Nyw4MjMwLDE2MCwx''@;'; + put 'put ''OTIsMTk1LDIxMywzMzgsMzM5LDgyMTEsODIxMiw4MjIwLDgyMjEsODIxNiw4MjE3LDI0Nyw5Njc0LDI1NSwzNzYsODI2MCw4MzY0LDgyNDksODI1MCw2NDI1Nyw2NDI1OCw4MjI1LDE4Myw4MjE4LDgyMjIsODI0MCwxOTQsMjAyLDE5MywyMDMsMjAwLDIwNSwyMDYsMjA3LDIwNCwyMTEsMjEy''@;'; + put 'put ''LDYzNzQzLDIxMCwyMTgsMjE5LDIxNywzMDUsNzEwLDczMiwxNzUsNzI4LDcyOSw3MzAsMTg0LDczMyw3MzEsNzExXSwid2luZG93cy04NzQiOls4MzY0LDEyOSwxMzAsMTMxLDEzMiw4MjMwLDEzNCwxMzUsMTM2LDEzNywxMzgsMTM5LDE0MCwxNDEsMTQyLDE0MywxNDQsODIxNiw4MjE3LDgy''@;'; + put 'put ''MjAsODIyMSw4MjI2LDgyMTEsODIxMiwxNTIsMTUzLDE1NCwxNTUsMTU2LDE1NywxNTgsMTU5LDE2MCwzNTg1LDM1ODYsMzU4NywzNTg4LDM1ODksMzU5MCwzNTkxLDM1OTIsMzU5MywzNTk0LDM1OTUsMzU5NiwzNTk3LDM1OTgsMzU5OSwzNjAwLDM2MDEsMzYwMiwzNjAzLDM2MDQsMzYwNSwz''@;'; + put 'put ''NjA2LDM2MDcsMzYwOCwzNjA5LDM2MTAsMzYxMSwzNjEyLDM2MTMsMzYxNCwzNjE1LDM2MTYsMzYxNywzNjE4LDM2MTksMzYyMCwzNjIxLDM2MjIsMzYyMywzNjI0LDM2MjUsMzYyNiwzNjI3LDM2MjgsMzYyOSwzNjMwLDM2MzEsMzYzMiwzNjMzLDM2MzQsMzYzNSwzNjM2LDM2MzcsMzYzOCwz''@;'; + put 'put ''NjM5LDM2NDAsMzY0MSwzNjQyLG51bGwsbnVsbCxudWxsLG51bGwsMzY0NywzNjQ4LDM2NDksMzY1MCwzNjUxLDM2NTIsMzY1MywzNjU0LDM2NTUsMzY1NiwzNjU3LDM2NTgsMzY1OSwzNjYwLDM2NjEsMzY2MiwzNjYzLDM2NjQsMzY2NSwzNjY2LDM2NjcsMzY2OCwzNjY5LDM2NzAsMzY3MSwz''@;'; + put 'put ''NjcyLDM2NzMsMzY3NCwzNjc1LG51bGwsbnVsbCxudWxsLG51bGxdLCJ3aW5kb3dzLTEyNTAiOls4MzY0LDEyOSw4MjE4LDEzMSw4MjIyLDgyMzAsODIyNCw4MjI1LDEzNiw4MjQwLDM1Miw4MjQ5LDM0NiwzNTYsMzgxLDM3NywxNDQsODIxNiw4MjE3LDgyMjAsODIyMSw4MjI2LDgyMTEsODIx''@;'; + put 'put ''MiwxNTIsODQ4MiwzNTMsODI1MCwzNDcsMzU3LDM4MiwzNzgsMTYwLDcxMSw3MjgsMzIxLDE2NCwyNjAsMTY2LDE2NywxNjgsMTY5LDM1MCwxNzEsMTcyLDE3MywxNzQsMzc5LDE3NiwxNzcsNzMxLDMyMiwxODAsMTgxLDE4MiwxODMsMTg0LDI2MSwzNTEsMTg3LDMxNyw3MzMsMzE4LDM4MCwz''@;'; + put 'put ''NDAsMTkzLDE5NCwyNTgsMTk2LDMxMywyNjIsMTk5LDI2OCwyMDEsMjgwLDIwMywyODIsMjA1LDIwNiwyNzAsMjcyLDMyMywzMjcsMjExLDIxMiwzMzYsMjE0LDIxNSwzNDQsMzY2LDIxOCwzNjgsMjIwLDIyMSwzNTQsMjIzLDM0MSwyMjUsMjI2LDI1OSwyMjgsMzE0LDI2MywyMzEsMjY5LDIz''@;'; + put 'put ''MywyODEsMjM1LDI4MywyMzcsMjM4LDI3MSwyNzMsMzI0LDMyOCwyNDMsMjQ0LDMzNywyNDYsMjQ3LDM0NSwzNjcsMjUwLDM2OSwyNTIsMjUzLDM1NSw3MjldLCJ3aW5kb3dzLTEyNTEiOlsxMDI2LDEwMjcsODIxOCwxMTA3LDgyMjIsODIzMCw4MjI0LDgyMjUsODM2NCw4MjQwLDEwMzMsODI0''@;'; + put 'put ''OSwxMDM0LDEwMzYsMTAzNSwxMDM5LDExMDYsODIxNiw4MjE3LDgyMjAsODIyMSw4MjI2LDgyMTEsODIxMiwxNTIsODQ4MiwxMTEzLDgyNTAsMTExNCwxMTE2LDExMTUsMTExOSwxNjAsMTAzOCwxMTE4LDEwMzIsMTY0LDExNjgsMTY2LDE2NywxMDI1LDE2OSwxMDI4LDE3MSwxNzIsMTczLDE3''@;'; + put 'put ''NCwxMDMxLDE3NiwxNzcsMTAzMCwxMTEwLDExNjksMTgxLDE4MiwxODMsMTEwNSw4NDcwLDExMDgsMTg3LDExMTIsMTAyOSwxMTA5LDExMTEsMTA0MCwxMDQxLDEwNDIsMTA0MywxMDQ0LDEwNDUsMTA0NiwxMDQ3LDEwNDgsMTA0OSwxMDUwLDEwNTEsMTA1MiwxMDUzLDEwNTQsMTA1NSwxMDU2''@;'; + put 'put ''LDEwNTcsMTA1OCwxMDU5LDEwNjAsMTA2MSwxMDYyLDEwNjMsMTA2NCwxMDY1LDEwNjYsMTA2NywxMDY4LDEwNjksMTA3MCwxMDcxLDEwNzIsMTA3MywxMDc0LDEwNzUsMTA3NiwxMDc3LDEwNzgsMTA3OSwxMDgwLDEwODEsMTA4MiwxMDgzLDEwODQsMTA4NSwxMDg2LDEwODcsMTA4OCwxMDg5''@;'; + put 'put ''LDEwOTAsMTA5MSwxMDkyLDEwOTMsMTA5NCwxMDk1LDEwOTYsMTA5NywxMDk4LDEwOTksMTEwMCwxMTAxLDExMDIsMTEwM10sIndpbmRvd3MtMTI1MiI6WzgzNjQsMTI5LDgyMTgsNDAyLDgyMjIsODIzMCw4MjI0LDgyMjUsNzEwLDgyNDAsMzUyLDgyNDksMzM4LDE0MSwzODEsMTQzLDE0NCw4''@;'; + put 'put ''MjE2LDgyMTcsODIyMCw4MjIxLDgyMjYsODIxMSw4MjEyLDczMiw4NDgyLDM1Myw4MjUwLDMzOSwxNTcsMzgyLDM3NiwxNjAsMTYxLDE2MiwxNjMsMTY0LDE2NSwxNjYsMTY3LDE2OCwxNjksMTcwLDE3MSwxNzIsMTczLDE3NCwxNzUsMTc2LDE3NywxNzgsMTc5LDE4MCwxODEsMTgyLDE4Mywx''@;'; + put 'put ''ODQsMTg1LDE4NiwxODcsMTg4LDE4OSwxOTAsMTkxLDE5MiwxOTMsMTk0LDE5NSwxOTYsMTk3LDE5OCwxOTksMjAwLDIwMSwyMDIsMjAzLDIwNCwyMDUsMjA2LDIwNywyMDgsMjA5LDIxMCwyMTEsMjEyLDIxMywyMTQsMjE1LDIxNiwyMTcsMjE4LDIxOSwyMjAsMjIxLDIyMiwyMjMsMjI0LDIy''@;'; + put 'put ''NSwyMjYsMjI3LDIyOCwyMjksMjMwLDIzMSwyMzIsMjMzLDIzNCwyMzUsMjM2LDIzNywyMzgsMjM5LDI0MCwyNDEsMjQyLDI0MywyNDQsMjQ1LDI0NiwyNDcsMjQ4LDI0OSwyNTAsMjUxLDI1MiwyNTMsMjU0LDI1NV0sIndpbmRvd3MtMTI1MyI6WzgzNjQsMTI5LDgyMTgsNDAyLDgyMjIsODIz''@;'; + put 'put ''MCw4MjI0LDgyMjUsMTM2LDgyNDAsMTM4LDgyNDksMTQwLDE0MSwxNDIsMTQzLDE0NCw4MjE2LDgyMTcsODIyMCw4MjIxLDgyMjYsODIxMSw4MjEyLDE1Miw4NDgyLDE1NCw4MjUwLDE1NiwxNTcsMTU4LDE1OSwxNjAsOTAxLDkwMiwxNjMsMTY0LDE2NSwxNjYsMTY3LDE2OCwxNjksbnVsbCwx''@;'; + put 'put ''NzEsMTcyLDE3MywxNzQsODIxMywxNzYsMTc3LDE3OCwxNzksOTAwLDE4MSwxODIsMTgzLDkwNCw5MDUsOTA2LDE4Nyw5MDgsMTg5LDkxMCw5MTEsOTEyLDkxMyw5MTQsOTE1LDkxNiw5MTcsOTE4LDkxOSw5MjAsOTIxLDkyMiw5MjMsOTI0LDkyNSw5MjYsOTI3LDkyOCw5MjksbnVsbCw5MzEs''@;'; + put 'put ''OTMyLDkzMyw5MzQsOTM1LDkzNiw5MzcsOTM4LDkzOSw5NDAsOTQxLDk0Miw5NDMsOTQ0LDk0NSw5NDYsOTQ3LDk0OCw5NDksOTUwLDk1MSw5NTIsOTUzLDk1NCw5NTUsOTU2LDk1Nyw5NTgsOTU5LDk2MCw5NjEsOTYyLDk2Myw5NjQsOTY1LDk2Niw5NjcsOTY4LDk2OSw5NzAsOTcxLDk3Miw5''@;'; + put 'put ''NzMsOTc0LG51bGxdLCJ3aW5kb3dzLTEyNTQiOls4MzY0LDEyOSw4MjE4LDQwMiw4MjIyLDgyMzAsODIyNCw4MjI1LDcxMCw4MjQwLDM1Miw4MjQ5LDMzOCwxNDEsMTQyLDE0MywxNDQsODIxNiw4MjE3LDgyMjAsODIyMSw4MjI2LDgyMTEsODIxMiw3MzIsODQ4MiwzNTMsODI1MCwzMzksMTU3''@;'; + put 'put ''LDE1OCwzNzYsMTYwLDE2MSwxNjIsMTYzLDE2NCwxNjUsMTY2LDE2NywxNjgsMTY5LDE3MCwxNzEsMTcyLDE3MywxNzQsMTc1LDE3NiwxNzcsMTc4LDE3OSwxODAsMTgxLDE4MiwxODMsMTg0LDE4NSwxODYsMTg3LDE4OCwxODksMTkwLDE5MSwxOTIsMTkzLDE5NCwxOTUsMTk2LDE5NywxOTgs''@;'; + put 'put ''MTk5LDIwMCwyMDEsMjAyLDIwMywyMDQsMjA1LDIwNiwyMDcsMjg2LDIwOSwyMTAsMjExLDIxMiwyMTMsMjE0LDIxNSwyMTYsMjE3LDIxOCwyMTksMjIwLDMwNCwzNTAsMjIzLDIyNCwyMjUsMjI2LDIyNywyMjgsMjI5LDIzMCwyMzEsMjMyLDIzMywyMzQsMjM1LDIzNiwyMzcsMjM4LDIzOSwy''@;'; + put 'put ''ODcsMjQxLDI0MiwyNDMsMjQ0LDI0NSwyNDYsMjQ3LDI0OCwyNDksMjUwLDI1MSwyNTIsMzA1LDM1MSwyNTVdLCJ3aW5kb3dzLTEyNTUiOls4MzY0LDEyOSw4MjE4LDQwMiw4MjIyLDgyMzAsODIyNCw4MjI1LDcxMCw4MjQwLDEzOCw4MjQ5LDE0MCwxNDEsMTQyLDE0MywxNDQsODIxNiw4MjE3''@;'; + put 'put ''LDgyMjAsODIyMSw4MjI2LDgyMTEsODIxMiw3MzIsODQ4MiwxNTQsODI1MCwxNTYsMTU3LDE1OCwxNTksMTYwLDE2MSwxNjIsMTYzLDgzNjIsMTY1LDE2NiwxNjcsMTY4LDE2OSwyMTUsMTcxLDE3MiwxNzMsMTc0LDE3NSwxNzYsMTc3LDE3OCwxNzksMTgwLDE4MSwxODIsMTgzLDE4NCwxODUs''@;'; + put 'put ''MjQ3LDE4NywxODgsMTg5LDE5MCwxOTEsMTQ1NiwxNDU3LDE0NTgsMTQ1OSwxNDYwLDE0NjEsMTQ2MiwxNDYzLDE0NjQsMTQ2NSwxNDY2LDE0NjcsMTQ2OCwxNDY5LDE0NzAsMTQ3MSwxNDcyLDE0NzMsMTQ3NCwxNDc1LDE1MjAsMTUyMSwxNTIyLDE1MjMsMTUyNCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLDE0ODgsMTQ4OSwxNDkwLDE0OTEsMTQ5MiwxNDkzLDE0OTQsMTQ5NSwxNDk2LDE0OTcsMTQ5OCwxNDk5LDE1MDAsMTUwMSwxNTAyLDE1MDMsMTUwNCwxNTA1LDE1MDYsMTUwNywxNTA4LDE1MDksMTUxMCwxNTExLDE1MTIsMTUxMywxNTE0LG51bGwsbnVsbCw4''@;'; + put 'put ''MjA2LDgyMDcsbnVsbF0sIndpbmRvd3MtMTI1NiI6WzgzNjQsMTY2Miw4MjE4LDQwMiw4MjIyLDgyMzAsODIyNCw4MjI1LDcxMCw4MjQwLDE2NTcsODI0OSwzMzgsMTY3MCwxNjg4LDE2NzIsMTcxMSw4MjE2LDgyMTcsODIyMCw4MjIxLDgyMjYsODIxMSw4MjEyLDE3MDUsODQ4MiwxNjgxLDgy''@;'; + put 'put ''NTAsMzM5LDgyMDQsODIwNSwxNzIyLDE2MCwxNTQ4LDE2MiwxNjMsMTY0LDE2NSwxNjYsMTY3LDE2OCwxNjksMTcyNiwxNzEsMTcyLDE3MywxNzQsMTc1LDE3NiwxNzcsMTc4LDE3OSwxODAsMTgxLDE4MiwxODMsMTg0LDE4NSwxNTYzLDE4NywxODgsMTg5LDE5MCwxNTY3LDE3MjksMTU2OSwx''@;'; + put 'put ''NTcwLDE1NzEsMTU3MiwxNTczLDE1NzQsMTU3NSwxNTc2LDE1NzcsMTU3OCwxNTc5LDE1ODAsMTU4MSwxNTgyLDE1ODMsMTU4NCwxNTg1LDE1ODYsMTU4NywxNTg4LDE1ODksMTU5MCwyMTUsMTU5MSwxNTkyLDE1OTMsMTU5NCwxNjAwLDE2MDEsMTYwMiwxNjAzLDIyNCwxNjA0LDIyNiwxNjA1''@;'; + put 'put ''LDE2MDYsMTYwNywxNjA4LDIzMSwyMzIsMjMzLDIzNCwyMzUsMTYwOSwxNjEwLDIzOCwyMzksMTYxMSwxNjEyLDE2MTMsMTYxNCwyNDQsMTYxNSwxNjE2LDI0NywxNjE3LDI0OSwxNjE4LDI1MSwyNTIsODIwNiw4MjA3LDE3NDZdLCJ3aW5kb3dzLTEyNTciOls4MzY0LDEyOSw4MjE4LDEzMSw4''@;'; + put 'put ''MjIyLDgyMzAsODIyNCw4MjI1LDEzNiw4MjQwLDEzOCw4MjQ5LDE0MCwxNjgsNzExLDE4NCwxNDQsODIxNiw4MjE3LDgyMjAsODIyMSw4MjI2LDgyMTEsODIxMiwxNTIsODQ4MiwxNTQsODI1MCwxNTYsMTc1LDczMSwxNTksMTYwLG51bGwsMTYyLDE2MywxNjQsbnVsbCwxNjYsMTY3LDIxNiwx''@;'; + put 'put ''NjksMzQyLDE3MSwxNzIsMTczLDE3NCwxOTgsMTc2LDE3NywxNzgsMTc5LDE4MCwxODEsMTgyLDE4MywyNDgsMTg1LDM0MywxODcsMTg4LDE4OSwxOTAsMjMwLDI2MCwzMDIsMjU2LDI2MiwxOTYsMTk3LDI4MCwyNzQsMjY4LDIwMSwzNzcsMjc4LDI5MCwzMTAsMjk4LDMxNSwzNTIsMzIzLDMy''@;'; + put 'put ''NSwyMTEsMzMyLDIxMywyMTQsMjE1LDM3MCwzMjEsMzQ2LDM2MiwyMjAsMzc5LDM4MSwyMjMsMjYxLDMwMywyNTcsMjYzLDIyOCwyMjksMjgxLDI3NSwyNjksMjMzLDM3OCwyNzksMjkxLDMxMSwyOTksMzE2LDM1MywzMjQsMzI2LDI0MywzMzMsMjQ1LDI0NiwyNDcsMzcxLDMyMiwzNDcsMzYz''@;'; + put 'put ''LDI1MiwzODAsMzgyLDcyOV0sIndpbmRvd3MtMTI1OCI6WzgzNjQsMTI5LDgyMTgsNDAyLDgyMjIsODIzMCw4MjI0LDgyMjUsNzEwLDgyNDAsMTM4LDgyNDksMzM4LDE0MSwxNDIsMTQzLDE0NCw4MjE2LDgyMTcsODIyMCw4MjIxLDgyMjYsODIxMSw4MjEyLDczMiw4NDgyLDE1NCw4MjUwLDMz''@;'; + put 'put ''OSwxNTcsMTU4LDM3NiwxNjAsMTYxLDE2MiwxNjMsMTY0LDE2NSwxNjYsMTY3LDE2OCwxNjksMTcwLDE3MSwxNzIsMTczLDE3NCwxNzUsMTc2LDE3NywxNzgsMTc5LDE4MCwxODEsMTgyLDE4MywxODQsMTg1LDE4NiwxODcsMTg4LDE4OSwxOTAsMTkxLDE5MiwxOTMsMTk0LDI1OCwxOTYsMTk3''@;'; + put 'put ''LDE5OCwxOTksMjAwLDIwMSwyMDIsMjAzLDc2OCwyMDUsMjA2LDIwNywyNzIsMjA5LDc3NywyMTEsMjEyLDQxNiwyMTQsMjE1LDIxNiwyMTcsMjE4LDIxOSwyMjAsNDMxLDc3MSwyMjMsMjI0LDIyNSwyMjYsMjU5LDIyOCwyMjksMjMwLDIzMSwyMzIsMjMzLDIzNCwyMzUsNzY5LDIzNywyMzgs''@;'; + put 'put ''MjM5LDI3MywyNDEsODAzLDI0MywyNDQsNDE3LDI0NiwyNDcsMjQ4LDI0OSwyNTAsMjUxLDI1Miw0MzIsODM2MywyNTVdLCJ4LW1hYy1jeXJpbGxpYyI6WzEwNDAsMTA0MSwxMDQyLDEwNDMsMTA0NCwxMDQ1LDEwNDYsMTA0NywxMDQ4LDEwNDksMTA1MCwxMDUxLDEwNTIsMTA1MywxMDU0LDEw''@;'; + put 'put ''NTUsMTA1NiwxMDU3LDEwNTgsMTA1OSwxMDYwLDEwNjEsMTA2MiwxMDYzLDEwNjQsMTA2NSwxMDY2LDEwNjcsMTA2OCwxMDY5LDEwNzAsMTA3MSw4MjI0LDE3NiwxMTY4LDE2MywxNjcsODIyNiwxODIsMTAzMCwxNzQsMTY5LDg0ODIsMTAyNiwxMTA2LDg4MDAsMTAyNywxMTA3LDg3MzQsMTc3''@;'; + put 'put ''LDg4MDQsODgwNSwxMTEwLDE4MSwxMTY5LDEwMzIsMTAyOCwxMTA4LDEwMzEsMTExMSwxMDMzLDExMTMsMTAzNCwxMTE0LDExMTIsMTAyOSwxNzIsODczMCw0MDIsODc3Niw4NzEwLDE3MSwxODcsODIzMCwxNjAsMTAzNSwxMTE1LDEwMzYsMTExNiwxMTA5LDgyMTEsODIxMiw4MjIwLDgyMjEs''@;'; + put 'put ''ODIxNiw4MjE3LDI0Nyw4MjIyLDEwMzgsMTExOCwxMDM5LDExMTksODQ3MCwxMDI1LDExMDUsMTEwMywxMDcyLDEwNzMsMTA3NCwxMDc1LDEwNzYsMTA3NywxMDc4LDEwNzksMTA4MCwxMDgxLDEwODIsMTA4MywxMDg0LDEwODUsMTA4NiwxMDg3LDEwODgsMTA4OSwxMDkwLDEwOTEsMTA5Miwx''@;'; + put 'put ''MDkzLDEwOTQsMTA5NSwxMDk2LDEwOTcsMTA5OCwxMDk5LDExMDAsMTEwMSwxMTAyLDgzNjRdfX0odGhpc3x8e30pfSw5OTU2NTpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBCKGF0LEx0LEN0KXtyZXR1cm4gTHQ8PWF0JiZhdDw9Q3R9WGUu''@;'; + put 'put ''ZXhwb3J0cyYmIW1lWyJlbmNvZGluZy1pbmRleGVzIl0mJihtZVsiZW5jb2RpbmctaW5kZXhlcyJdPUwoODYzODkpWyJlbmNvZGluZy1pbmRleGVzIl0pO3ZhciBNZT1NYXRoLmZsb29yO2Z1bmN0aW9uIFUoYXQpe2lmKHZvaWQgMD09PWF0KXJldHVybnt9O2lmKGF0PT09T2JqZWN0KGF0KSly''@;'; + put 'put ''ZXR1cm4gYXQ7dGhyb3cgVHlwZUVycm9yKCJDb3VsZCBub3QgY29udmVydCBhcmd1bWVudCB0byBkaWN0aW9uYXJ5Iil9ZnVuY3Rpb24gaWUoYXQpe3JldHVybiAwPD1hdCYmYXQ8PTEyN312YXIgYWU9aWUsWT0tMTtmdW5jdGlvbiBXKGF0KXt0aGlzLnRva2Vucz1bXS5zbGljZS5jYWxsKGF0''@;'; + put 'put ''KSx0aGlzLnRva2Vucy5yZXZlcnNlKCl9Vy5wcm90b3R5cGU9e2VuZE9mU3RyZWFtOmZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMudG9rZW5zLmxlbmd0aH0scmVhZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnRva2Vucy5sZW5ndGg/dGhpcy50b2tlbnMucG9wKCk6WX0scHJlcGVuZDpmdW5jdGlv''@;'; + put 'put ''bihhdCl7aWYoQXJyYXkuaXNBcnJheShhdCkpZm9yKHZhciBMdD1hdDtMdC5sZW5ndGg7KXRoaXMudG9rZW5zLnB1c2goTHQucG9wKCkpO2Vsc2UgdGhpcy50b2tlbnMucHVzaChhdCl9LHB1c2g6ZnVuY3Rpb24oYXQpe2lmKEFycmF5LmlzQXJyYXkoYXQpKWZvcih2YXIgTHQ9YXQ7THQubGVu''@;'; + put 'put ''Z3RoOyl0aGlzLnRva2Vucy51bnNoaWZ0KEx0LnNoaWZ0KCkpO2Vsc2UgdGhpcy50b2tlbnMudW5zaGlmdChhdCl9fTt2YXIgTj0tMTtmdW5jdGlvbiBlZShhdCxMdCl7aWYoYXQpdGhyb3cgVHlwZUVycm9yKCJEZWNvZGVyIGVycm9yIik7cmV0dXJuIEx0fHw2NTUzM31mdW5jdGlvbiBxKGF0''@;'; + put 'put ''KXt0aHJvdyBUeXBlRXJyb3IoIlRoZSBjb2RlIHBvaW50ICIrYXQrIiBjb3VsZCBub3QgYmUgZW5jb2RlZC4iKX1mdW5jdGlvbiBvZShhdCl7cmV0dXJuIGF0PVN0cmluZyhhdCkudHJpbSgpLnRvTG93ZXJDYXNlKCksT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGRlLGF0''@;'; + put 'put ''KT9kZVthdF06bnVsbH12YXIgY2U9W3tlbmNvZGluZ3M6W3tsYWJlbHM6WyJ1bmljb2RlLTEtMS11dGYtOCIsInV0Zi04IiwidXRmOCJdLG5hbWU6IlVURi04In1dLGhlYWRpbmc6IlRoZSBFbmNvZGluZyJ9LHtlbmNvZGluZ3M6W3tsYWJlbHM6WyI4NjYiLCJjcDg2NiIsImNzaWJtODY2Iiwi''@;'; + put 'put ''aWJtODY2Il0sbmFtZToiSUJNODY2In0se2xhYmVsczpbImNzaXNvbGF0aW4yIiwiaXNvLTg4NTktMiIsImlzby1pci0xMDEiLCJpc284ODU5LTIiLCJpc284ODU5MiIsImlzb184ODU5LTIiLCJpc29fODg1OS0yOjE5ODciLCJsMiIsImxhdGluMiJdLG5hbWU6IklTTy04ODU5LTIifSx7bGFi''@;'; + put 'put ''ZWxzOlsiY3Npc29sYXRpbjMiLCJpc28tODg1OS0zIiwiaXNvLWlyLTEwOSIsImlzbzg4NTktMyIsImlzbzg4NTkzIiwiaXNvXzg4NTktMyIsImlzb184ODU5LTM6MTk4OCIsImwzIiwibGF0aW4zIl0sbmFtZToiSVNPLTg4NTktMyJ9LHtsYWJlbHM6WyJjc2lzb2xhdGluNCIsImlzby04ODU5''@;'; + put 'put ''LTQiLCJpc28taXItMTEwIiwiaXNvODg1OS00IiwiaXNvODg1OTQiLCJpc29fODg1OS00IiwiaXNvXzg4NTktNDoxOTg4IiwibDQiLCJsYXRpbjQiXSxuYW1lOiJJU08tODg1OS00In0se2xhYmVsczpbImNzaXNvbGF0aW5jeXJpbGxpYyIsImN5cmlsbGljIiwiaXNvLTg4NTktNSIsImlzby1p''@;'; + put 'put ''ci0xNDQiLCJpc284ODU5LTUiLCJpc284ODU5NSIsImlzb184ODU5LTUiLCJpc29fODg1OS01OjE5ODgiXSxuYW1lOiJJU08tODg1OS01In0se2xhYmVsczpbImFyYWJpYyIsImFzbW8tNzA4IiwiY3Npc284ODU5NmUiLCJjc2lzbzg4NTk2aSIsImNzaXNvbGF0aW5hcmFiaWMiLCJlY21hLTEx''@;'; + put 'put ''NCIsImlzby04ODU5LTYiLCJpc28tODg1OS02LWUiLCJpc28tODg1OS02LWkiLCJpc28taXItMTI3IiwiaXNvODg1OS02IiwiaXNvODg1OTYiLCJpc29fODg1OS02IiwiaXNvXzg4NTktNjoxOTg3Il0sbmFtZToiSVNPLTg4NTktNiJ9LHtsYWJlbHM6WyJjc2lzb2xhdGluZ3JlZWsiLCJlY21h''@;'; + put 'put ''LTExOCIsImVsb3RfOTI4IiwiZ3JlZWsiLCJncmVlazgiLCJpc28tODg1OS03IiwiaXNvLWlyLTEyNiIsImlzbzg4NTktNyIsImlzbzg4NTk3IiwiaXNvXzg4NTktNyIsImlzb184ODU5LTc6MTk4NyIsInN1bl9ldV9ncmVlayJdLG5hbWU6IklTTy04ODU5LTcifSx7bGFiZWxzOlsiY3Npc284''@;'; + put 'put ''ODU5OGUiLCJjc2lzb2xhdGluaGVicmV3IiwiaGVicmV3IiwiaXNvLTg4NTktOCIsImlzby04ODU5LTgtZSIsImlzby1pci0xMzgiLCJpc284ODU5LTgiLCJpc284ODU5OCIsImlzb184ODU5LTgiLCJpc29fODg1OS04OjE5ODgiLCJ2aXN1YWwiXSxuYW1lOiJJU08tODg1OS04In0se2xhYmVs''@;'; + put 'put ''czpbImNzaXNvODg1OThpIiwiaXNvLTg4NTktOC1pIiwibG9naWNhbCJdLG5hbWU6IklTTy04ODU5LTgtSSJ9LHtsYWJlbHM6WyJjc2lzb2xhdGluNiIsImlzby04ODU5LTEwIiwiaXNvLWlyLTE1NyIsImlzbzg4NTktMTAiLCJpc284ODU5MTAiLCJsNiIsImxhdGluNiJdLG5hbWU6IklTTy04''@;'; + put 'put ''ODU5LTEwIn0se2xhYmVsczpbImlzby04ODU5LTEzIiwiaXNvODg1OS0xMyIsImlzbzg4NTkxMyJdLG5hbWU6IklTTy04ODU5LTEzIn0se2xhYmVsczpbImlzby04ODU5LTE0IiwiaXNvODg1OS0xNCIsImlzbzg4NTkxNCJdLG5hbWU6IklTTy04ODU5LTE0In0se2xhYmVsczpbImNzaXNvbGF0''@;'; + put 'put ''aW45IiwiaXNvLTg4NTktMTUiLCJpc284ODU5LTE1IiwiaXNvODg1OTE1IiwiaXNvXzg4NTktMTUiLCJsOSJdLG5hbWU6IklTTy04ODU5LTE1In0se2xhYmVsczpbImlzby04ODU5LTE2Il0sbmFtZToiSVNPLTg4NTktMTYifSx7bGFiZWxzOlsiY3Nrb2k4ciIsImtvaSIsImtvaTgiLCJrb2k4''@;'; + put 'put ''LXIiLCJrb2k4X3IiXSxuYW1lOiJLT0k4LVIifSx7bGFiZWxzOlsia29pOC1ydSIsImtvaTgtdSJdLG5hbWU6IktPSTgtVSJ9LHtsYWJlbHM6WyJjc21hY2ludG9zaCIsIm1hYyIsIm1hY2ludG9zaCIsIngtbWFjLXJvbWFuIl0sbmFtZToibWFjaW50b3NoIn0se2xhYmVsczpbImRvcy04NzQi''@;'; + put 'put ''LCJpc28tODg1OS0xMSIsImlzbzg4NTktMTEiLCJpc284ODU5MTEiLCJ0aXMtNjIwIiwid2luZG93cy04NzQiXSxuYW1lOiJ3aW5kb3dzLTg3NCJ9LHtsYWJlbHM6WyJjcDEyNTAiLCJ3aW5kb3dzLTEyNTAiLCJ4LWNwMTI1MCJdLG5hbWU6IndpbmRvd3MtMTI1MCJ9LHtsYWJlbHM6WyJjcDEy''@;'; + put 'put ''NTEiLCJ3aW5kb3dzLTEyNTEiLCJ4LWNwMTI1MSJdLG5hbWU6IndpbmRvd3MtMTI1MSJ9LHtsYWJlbHM6WyJhbnNpX3gzLjQtMTk2OCIsImFzY2lpIiwiY3AxMjUyIiwiY3A4MTkiLCJjc2lzb2xhdGluMSIsImlibTgxOSIsImlzby04ODU5LTEiLCJpc28taXItMTAwIiwiaXNvODg1OS0xIiwi''@;'; + put 'put ''aXNvODg1OTEiLCJpc29fODg1OS0xIiwiaXNvXzg4NTktMToxOTg3IiwibDEiLCJsYXRpbjEiLCJ1cy1hc2NpaSIsIndpbmRvd3MtMTI1MiIsIngtY3AxMjUyIl0sbmFtZToid2luZG93cy0xMjUyIn0se2xhYmVsczpbImNwMTI1MyIsIndpbmRvd3MtMTI1MyIsIngtY3AxMjUzIl0sbmFtZToi''@;'; + put 'put ''d2luZG93cy0xMjUzIn0se2xhYmVsczpbImNwMTI1NCIsImNzaXNvbGF0aW41IiwiaXNvLTg4NTktOSIsImlzby1pci0xNDgiLCJpc284ODU5LTkiLCJpc284ODU5OSIsImlzb184ODU5LTkiLCJpc29fODg1OS05OjE5ODkiLCJsNSIsImxhdGluNSIsIndpbmRvd3MtMTI1NCIsIngtY3AxMjU0''@;'; + put 'put ''Il0sbmFtZToid2luZG93cy0xMjU0In0se2xhYmVsczpbImNwMTI1NSIsIndpbmRvd3MtMTI1NSIsIngtY3AxMjU1Il0sbmFtZToid2luZG93cy0xMjU1In0se2xhYmVsczpbImNwMTI1NiIsIndpbmRvd3MtMTI1NiIsIngtY3AxMjU2Il0sbmFtZToid2luZG93cy0xMjU2In0se2xhYmVsczpb''@;'; + put 'put ''ImNwMTI1NyIsIndpbmRvd3MtMTI1NyIsIngtY3AxMjU3Il0sbmFtZToid2luZG93cy0xMjU3In0se2xhYmVsczpbImNwMTI1OCIsIndpbmRvd3MtMTI1OCIsIngtY3AxMjU4Il0sbmFtZToid2luZG93cy0xMjU4In0se2xhYmVsczpbIngtbWFjLWN5cmlsbGljIiwieC1tYWMtdWtyYWluaWFu''@;'; + put 'put ''Il0sbmFtZToieC1tYWMtY3lyaWxsaWMifV0saGVhZGluZzoiTGVnYWN5IHNpbmdsZS1ieXRlIGVuY29kaW5ncyJ9LHtlbmNvZGluZ3M6W3tsYWJlbHM6WyJjaGluZXNlIiwiY3NnYjIzMTIiLCJjc2lzbzU4Z2IyMzEyODAiLCJnYjIzMTIiLCJnYl8yMzEyIiwiZ2JfMjMxMi04MCIsImdiayIs''@;'; + put 'put ''Imlzby1pci01OCIsIngtZ2JrIl0sbmFtZToiR0JLIn0se2xhYmVsczpbImdiMTgwMzAiXSxuYW1lOiJnYjE4MDMwIn1dLGhlYWRpbmc6IkxlZ2FjeSBtdWx0aS1ieXRlIENoaW5lc2UgKHNpbXBsaWZpZWQpIGVuY29kaW5ncyJ9LHtlbmNvZGluZ3M6W3tsYWJlbHM6WyJiaWc1IiwiYmlnNS1o''@;'; + put 'put ''a3NjcyIsImNuLWJpZzUiLCJjc2JpZzUiLCJ4LXgtYmlnNSJdLG5hbWU6IkJpZzUifV0saGVhZGluZzoiTGVnYWN5IG11bHRpLWJ5dGUgQ2hpbmVzZSAodHJhZGl0aW9uYWwpIGVuY29kaW5ncyJ9LHtlbmNvZGluZ3M6W3tsYWJlbHM6WyJjc2V1Y3BrZGZtdGphcGFuZXNlIiwiZXVjLWpwIiwi''@;'; + put 'put ''eC1ldWMtanAiXSxuYW1lOiJFVUMtSlAifSx7bGFiZWxzOlsiY3Npc28yMDIyanAiLCJpc28tMjAyMi1qcCJdLG5hbWU6IklTTy0yMDIyLUpQIn0se2xhYmVsczpbImNzc2hpZnRqaXMiLCJtczkzMiIsIm1zX2thbmppIiwic2hpZnQtamlzIiwic2hpZnRfamlzIiwic2ppcyIsIndpbmRvd3Mt''@;'; + put 'put ''MzFqIiwieC1zamlzIl0sbmFtZToiU2hpZnRfSklTIn1dLGhlYWRpbmc6IkxlZ2FjeSBtdWx0aS1ieXRlIEphcGFuZXNlIGVuY29kaW5ncyJ9LHtlbmNvZGluZ3M6W3tsYWJlbHM6WyJjc2V1Y2tyIiwiY3Nrc2M1NjAxMTk4NyIsImV1Yy1rciIsImlzby1pci0xNDkiLCJrb3JlYW4iLCJrc19j''@;'; + put 'put ''XzU2MDEtMTk4NyIsImtzX2NfNTYwMS0xOTg5Iiwia3NjNTYwMSIsImtzY181NjAxIiwid2luZG93cy05NDkiXSxuYW1lOiJFVUMtS1IifV0saGVhZGluZzoiTGVnYWN5IG11bHRpLWJ5dGUgS29yZWFuIGVuY29kaW5ncyJ9LHtlbmNvZGluZ3M6W3tsYWJlbHM6WyJjc2lzbzIwMjJrciIsImh6''@;'; + put 'put ''LWdiLTIzMTIiLCJpc28tMjAyMi1jbiIsImlzby0yMDIyLWNuLWV4dCIsImlzby0yMDIyLWtyIl0sbmFtZToicmVwbGFjZW1lbnQifSx7bGFiZWxzOlsidXRmLTE2YmUiXSxuYW1lOiJVVEYtMTZCRSJ9LHtsYWJlbHM6WyJ1dGYtMTYiLCJ1dGYtMTZsZSJdLG5hbWU6IlVURi0xNkxFIn0se2xh''@;'; + put 'put ''YmVsczpbIngtdXNlci1kZWZpbmVkIl0sbmFtZToieC11c2VyLWRlZmluZWQifV0saGVhZGluZzoiTGVnYWN5IG1pc2NlbGxhbmVvdXMgZW5jb2RpbmdzIn1dLGRlPXt9O2NlLmZvckVhY2goZnVuY3Rpb24oYXQpe2F0LmVuY29kaW5ncy5mb3JFYWNoKGZ1bmN0aW9uKEx0KXtMdC5sYWJlbHMu''@;'; + put 'put ''Zm9yRWFjaChmdW5jdGlvbihDdCl7ZGVbQ3RdPUx0fSl9KX0pO3ZhciBPLG5lLHZlPXt9LEFlPXt9O2Z1bmN0aW9uIGtlKGF0LEx0KXtyZXR1cm4gTHQmJkx0W2F0XXx8bnVsbH1mdW5jdGlvbiBTZShhdCxMdCl7dmFyIEN0PUx0LmluZGV4T2YoYXQpO3JldHVybi0xPT09Q3Q/bnVsbDpDdH1m''@;'; + put 'put ''dW5jdGlvbiBJZShhdCl7aWYoISgiZW5jb2RpbmctaW5kZXhlcyJpbiBtZSkpdGhyb3cgRXJyb3IoIkluZGV4ZXMgbWlzc2luZy4gRGlkIHlvdSBmb3JnZXQgdG8gaW5jbHVkZSBlbmNvZGluZy1pbmRleGVzLmpzIGZpcnN0PyIpO3JldHVybiBtZVsiZW5jb2RpbmctaW5kZXhlcyJdW2F0XX1m''@;'; + put 'put ''dW5jdGlvbiB4KGF0LEx0KXtpZighKHRoaXMgaW5zdGFuY2VvZiB4KSl0aHJvdyBUeXBlRXJyb3IoIkNhbGxlZCBhcyBhIGZ1bmN0aW9uLiBEaWQgeW91IGZvcmdldCAnbmV3Jz8iKTthdD12b2lkIDAhPT1hdD9TdHJpbmcoYXQpOiJ1dGYtOCIsTHQ9VShMdCksdGhpcy5fZW5jb2Rpbmc9bnVs''@;'; + put 'put ''bCx0aGlzLl9kZWNvZGVyPW51bGwsdGhpcy5faWdub3JlQk9NPSExLHRoaXMuX0JPTXNlZW49ITEsdGhpcy5fZXJyb3JfbW9kZT0icmVwbGFjZW1lbnQiLHRoaXMuX2RvX25vdF9mbHVzaD0hMTt2YXIgQ3Q9b2UoYXQpO2lmKG51bGw9PT1DdHx8InJlcGxhY2VtZW50Ij09PUN0Lm5hbWUpdGhy''@;'; + put 'put ''b3cgUmFuZ2VFcnJvcigiVW5rbm93biBlbmNvZGluZzogIithdCk7aWYoIUFlW0N0Lm5hbWVdKXRocm93IEVycm9yKCJEZWNvZGVyIG5vdCBwcmVzZW50LiBEaWQgeW91IGZvcmdldCB0byBpbmNsdWRlIGVuY29kaW5nLWluZGV4ZXMuanMgZmlyc3Q/Iik7dmFyIGZ0PXRoaXM7cmV0dXJuIGZ0''@;'; + put 'put ''Ll9lbmNvZGluZz1DdCxCb29sZWFuKEx0LmZhdGFsKSYmKGZ0Ll9lcnJvcl9tb2RlPSJmYXRhbCIpLEJvb2xlYW4oTHQuaWdub3JlQk9NKSYmKGZ0Ll9pZ25vcmVCT009ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eXx8KHRoaXMuZW5jb2Rpbmc9ZnQuX2VuY29kaW5nLm5hbWUudG9Mb3dlckNh''@;'; + put 'put ''c2UoKSx0aGlzLmZhdGFsPSJmYXRhbCI9PT1mdC5fZXJyb3JfbW9kZSx0aGlzLmlnbm9yZUJPTT1mdC5faWdub3JlQk9NKSxmdH1mdW5jdGlvbiBQKGF0LEx0KXtpZighKHRoaXMgaW5zdGFuY2VvZiBQKSl0aHJvdyBUeXBlRXJyb3IoIkNhbGxlZCBhcyBhIGZ1bmN0aW9uLiBEaWQgeW91IGZv''@;'; + put 'put ''cmdldCAnbmV3Jz8iKTtpZihMdD1VKEx0KSx0aGlzLl9lbmNvZGluZz1udWxsLHRoaXMuX2VuY29kZXI9bnVsbCx0aGlzLl9kb19ub3RfZmx1c2g9ITEsdGhpcy5fZmF0YWw9Qm9vbGVhbihMdC5mYXRhbCk/ImZhdGFsIjoicmVwbGFjZW1lbnQiLEJvb2xlYW4oTHQuTk9OU1RBTkRBUkRfYWxs''@;'; + put 'put ''b3dMZWdhY3lFbmNvZGluZykpe3ZhciBmdD1vZShhdD12b2lkIDAhPT1hdD9TdHJpbmcoYXQpOiJ1dGYtOCIpO2lmKG51bGw9PT1mdHx8InJlcGxhY2VtZW50Ij09PWZ0Lm5hbWUpdGhyb3cgUmFuZ2VFcnJvcigiVW5rbm93biBlbmNvZGluZzogIithdCk7aWYoIXZlW2Z0Lm5hbWVdKXRocm93''@;'; + put 'put ''IEVycm9yKCJFbmNvZGVyIG5vdCBwcmVzZW50LiBEaWQgeW91IGZvcmdldCB0byBpbmNsdWRlIGVuY29kaW5nLWluZGV4ZXMuanMgZmlyc3Q/Iik7dGhpcy5fZW5jb2Rpbmc9ZnR9ZWxzZSB0aGlzLl9lbmNvZGluZz1vZSgidXRmLTgiKSx2b2lkIDAhPT1hdCYmImNvbnNvbGUiaW4gbWUmJmNv''@;'; + put 'put ''bnNvbGUud2FybigiVGV4dEVuY29kZXIgY29uc3RydWN0b3IgY2FsbGVkIHdpdGggZW5jb2RpbmcgbGFiZWwsIHdoaWNoIGlzIGlnbm9yZWQuIik7cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eXx8KHRoaXMuZW5jb2Rpbmc9dGhpcy5fZW5jb2RpbmcubmFtZS50b0xvd2VyQ2FzZSgpKSx0''@;'; + put 'put ''aGlzfWZ1bmN0aW9uIFYoYXQpe3ZhciBMdD1hdC5mYXRhbCxDdD0wLGZ0PTAsSHQ9MCxHZT0xMjgsVWU9MTkxO3RoaXMuaGFuZGxlcj1mdW5jdGlvbih5dCxqdCl7aWYoanQ9PT1ZJiYwIT09SHQpcmV0dXJuIEh0PTAsZWUoTHQpO2lmKGp0PT09WSlyZXR1cm4gTjtpZigwPT09SHQpe2lmKEIo''@;'; + put 'put ''anQsMCwxMjcpKXJldHVybiBqdDtpZihCKGp0LDE5NCwyMjMpKUh0PTEsQ3Q9MzEmanQ7ZWxzZSBpZihCKGp0LDIyNCwyMzkpKTIyND09PWp0JiYoR2U9MTYwKSwyMzc9PT1qdCYmKFVlPTE1OSksSHQ9MixDdD0xNSZqdDtlbHNle2lmKCFCKGp0LDI0MCwyNDQpKXJldHVybiBlZShMdCk7MjQw''@;'; + put 'put ''PT09anQmJihHZT0xNDQpLDI0ND09PWp0JiYoVWU9MTQzKSxIdD0zLEN0PTcmanR9cmV0dXJuIG51bGx9aWYoIUIoanQsR2UsVWUpKXJldHVybiBDdD1IdD1mdD0wLEdlPTEyOCxVZT0xOTEseXQucHJlcGVuZChqdCksZWUoTHQpO2lmKEdlPTEyOCxVZT0xOTEsQ3Q9Q3Q8PDZ8NjMmanQsKGZ0''@;'; + put 'put ''Kz0xKSE9PUh0KXJldHVybiBudWxsO3ZhciBRdD1DdDtyZXR1cm4gQ3Q9SHQ9ZnQ9MCxRdH19ZnVuY3Rpb24gVChhdCl7dGhpcy5oYW5kbGVyPWZ1bmN0aW9uKEN0LGZ0KXtpZihmdD09PVkpcmV0dXJuIE47aWYoYWUoZnQpKXJldHVybiBmdDt2YXIgSHQsR2U7QihmdCwxMjgsMjA0Nyk/KEh0''@;'; + put 'put ''PTEsR2U9MTkyKTpCKGZ0LDIwNDgsNjU1MzUpPyhIdD0yLEdlPTIyNCk6QihmdCw2NTUzNiwxMTE0MTExKSYmKEh0PTMsR2U9MjQwKTtmb3IodmFyIFVlPVsoZnQ+PjYqSHQpK0dlXTtIdD4wOylVZS5wdXNoKDEyOHw2MyZmdD4+NiooSHQtMSkpLEh0LT0xO3JldHVybiBVZX19ZnVuY3Rpb24g''@;'; + put 'put ''UyhhdCxMdCl7dmFyIEN0PUx0LmZhdGFsO3RoaXMuaGFuZGxlcj1mdW5jdGlvbihmdCxIdCl7aWYoSHQ9PT1ZKXJldHVybiBOO2lmKGllKEh0KSlyZXR1cm4gSHQ7dmFyIEdlPWF0W0h0LTEyOF07cmV0dXJuIG51bGw9PT1HZT9lZShDdCk6R2V9fWZ1bmN0aW9uIEYoYXQsTHQpe3RoaXMuaGFu''@;'; + put 'put ''ZGxlcj1mdW5jdGlvbihmdCxIdCl7aWYoSHQ9PT1ZKXJldHVybiBOO2lmKGFlKEh0KSlyZXR1cm4gSHQ7dmFyIEdlPVNlKEh0LGF0KTtyZXR1cm4gbnVsbD09PUdlJiZxKEh0KSxHZSsxMjh9fWZ1bmN0aW9uIHllKGF0KXt2YXIgTHQ9YXQuZmF0YWwsQ3Q9MCxmdD0wLEh0PTA7dGhpcy5oYW5k''@;'; + put 'put ''bGVyPWZ1bmN0aW9uKEdlLFVlKXtpZihVZT09PVkmJjA9PT1DdCYmMD09PWZ0JiYwPT09SHQpcmV0dXJuIE47dmFyIHl0O2lmKFVlPT09WSYmKDAhPT1DdHx8MCE9PWZ0fHwwIT09SHQpJiYoQ3Q9MCxmdD0wLEh0PTAsZWUoTHQpKSwwIT09SHQpe3l0PW51bGwsQihVZSw0OCw1NykmJih5dD1m''@;'; + put 'put ''dW5jdGlvbiBUZShhdCl7aWYoYXQ+Mzk0MTkmJmF0PDE4OWUzfHxhdD4xMjM3NTc1KXJldHVybiBudWxsO2lmKDc0NTc9PT1hdClyZXR1cm4gNTkzMzU7dmFyIEh0LEx0PTAsQ3Q9MCxmdD1JZSgiZ2IxODAzMC1yYW5nZXMiKTtmb3IoSHQ9MDtIdDxmdC5sZW5ndGg7KytIdCl7dmFyIEdlPWZ0''@;'; + put 'put ''W0h0XTtpZighKEdlWzBdPD1hdCkpYnJlYWs7THQ9R2VbMF0sQ3Q9R2VbMV19cmV0dXJuIEN0K2F0LUx0fSgxMCooMTI2KigxMCooQ3QtMTI5KStmdC00OCkrSHQtMTI5KStVZS00OCkpO3ZhciBqdD1bZnQsSHQsVWVdO3JldHVybiBDdD0wLGZ0PTAsSHQ9MCxudWxsPT09eXQ/KEdlLnByZXBl''@;'; + put 'put ''bmQoanQpLGVlKEx0KSk6eXR9aWYoMCE9PWZ0KXJldHVybiBCKFVlLDEyOSwyNTQpPyhIdD1VZSxudWxsKTooR2UucHJlcGVuZChbZnQsVWVdKSxDdD0wLGZ0PTAsZWUoTHQpKTtpZigwIT09Q3Qpe2lmKEIoVWUsNDgsNTcpKXJldHVybiBmdD1VZSxudWxsO3ZhciBRdD1DdCxnbj1udWxsO0N0''@;'; + put 'put ''PTA7dmFyIGRuPVVlPDEyNz82NDo2NTtyZXR1cm4oQihVZSw2NCwxMjYpfHxCKFVlLDEyOCwyNTQpKSYmKGduPTE5MCooUXQtMTI5KSsoVWUtZG4pKSxudWxsPT09KHl0PW51bGw9PT1nbj9udWxsOmtlKGduLEllKCJnYjE4MDMwIikpKSYmaWUoVWUpJiZHZS5wcmVwZW5kKFVlKSxudWxsPT09''@;'; + put 'put ''eXQ/ZWUoTHQpOnl0fXJldHVybiBpZShVZSk/VWU6MTI4PT09VWU/ODM2NDpCKFVlLDEyOSwyNTQpPyhDdD1VZSxudWxsKTplZShMdCl9fWZ1bmN0aW9uIENlKGF0LEx0KXt0aGlzLmhhbmRsZXI9ZnVuY3Rpb24oZnQsSHQpe2lmKEh0PT09WSlyZXR1cm4gTjtpZihhZShIdCkpcmV0dXJuIEh0''@;'; + put 'put ''O2lmKDU4ODUzPT09SHQpcmV0dXJuIHEoSHQpO2lmKEx0JiY4MzY0PT09SHQpcmV0dXJuIDEyODt2YXIgR2U9U2UoSHQsSWUoImdiMTgwMzAiKSk7aWYobnVsbCE9PUdlKXt2YXIgeXQ9R2UlMTkwO3JldHVybltNZShHZS8xOTApKzEyOSx5dCsoeXQ8NjM/NjQ6NjUpXX1pZihMdClyZXR1cm4g''@;'; + put 'put ''cShIdCk7R2U9ZnVuY3Rpb24gRWUoYXQpe2lmKDU5MzM1PT09YXQpcmV0dXJuIDc0NTc7dmFyIEh0LEx0PTAsQ3Q9MCxmdD1JZSgiZ2IxODAzMC1yYW5nZXMiKTtmb3IoSHQ9MDtIdDxmdC5sZW5ndGg7KytIdCl7dmFyIEdlPWZ0W0h0XTtpZighKEdlWzFdPD1hdCkpYnJlYWs7THQ9R2VbMV0s''@;'; + put 'put ''Q3Q9R2VbMF19cmV0dXJuIEN0K2F0LUx0fShIdCk7dmFyIFF0PU1lKEdlLzEwLzEyNi8xMCksZ249TWUoKEdlLT0xMCpRdCoxMjYqMTApLzEwLzEyNiksZG49TWUoKEdlLT0xMCpnbioxMjYpLzEwKTtyZXR1cm5bUXQrMTI5LGduKzQ4LGRuKzEyOSxHZS0xMCpkbis0OF19fWZ1bmN0aW9uIERl''@;'; + put 'put ''KGF0KXt2YXIgTHQ9YXQuZmF0YWwsQ3Q9MDt0aGlzLmhhbmRsZXI9ZnVuY3Rpb24oZnQsSHQpe2lmKEh0PT09WSYmMCE9PUN0KXJldHVybiBDdD0wLGVlKEx0KTtpZihIdD09PVkmJjA9PT1DdClyZXR1cm4gTjtpZigwIT09Q3Qpe3ZhciBHZT1DdCxVZT1udWxsO0N0PTA7dmFyIHl0PUh0PDEy''@;'; + put 'put ''Nz82NDo5ODtzd2l0Y2goKEIoSHQsNjQsMTI2KXx8QihIdCwxNjEsMjU0KSkmJihVZT0xNTcqKEdlLTEyOSkrKEh0LXl0KSksVWUpe2Nhc2UgMTEzMzpyZXR1cm5bMjAyLDc3Ml07Y2FzZSAxMTM1OnJldHVyblsyMDIsNzgwXTtjYXNlIDExNjQ6cmV0dXJuWzIzNCw3NzJdO2Nhc2UgMTE2Njpy''@;'; + put 'put ''ZXR1cm5bMjM0LDc4MF19dmFyIGp0PW51bGw9PT1VZT9udWxsOmtlKFVlLEllKCJiaWc1IikpO3JldHVybiBudWxsPT09anQmJmllKEh0KSYmZnQucHJlcGVuZChIdCksbnVsbD09PWp0P2VlKEx0KTpqdH1yZXR1cm4gaWUoSHQpP0h0OkIoSHQsMTI5LDI1NCk/KEN0PUh0LG51bGwpOmVlKEx0''@;'; + put 'put ''KX19ZnVuY3Rpb24gUGUoYXQpe3RoaXMuaGFuZGxlcj1mdW5jdGlvbihDdCxmdCl7aWYoZnQ9PT1ZKXJldHVybiBOO2lmKGFlKGZ0KSlyZXR1cm4gZnQ7dmFyIEh0PWZ1bmN0aW9uIHooYXQpe3ZhciBMdD1uZT1uZXx8SWUoImJpZzUiKS5tYXAoZnVuY3Rpb24oQ3QsZnQpe3JldHVybiBmdDw1''@;'; + put 'put ''MDI0P251bGw6Q3R9KTtyZXR1cm4gOTU1Mj09PWF0fHw5NTY2PT09YXR8fDk1Njk9PT1hdHx8OTU3OD09PWF0fHwyMTMxMz09PWF0fHwyMTMxNz09PWF0P0x0Lmxhc3RJbmRleE9mKGF0KTpTZShhdCxMdCl9KGZ0KTtpZihudWxsPT09SHQpcmV0dXJuIHEoZnQpO3ZhciBHZT1NZShIdC8xNTcp''@;'; + put 'put ''KzEyOTtpZihHZTwxNjEpcmV0dXJuIHEoZnQpO3ZhciBVZT1IdCUxNTc7cmV0dXJuW0dlLFVlKyhVZTw2Mz82NDo5OCldfX1mdW5jdGlvbiBRZShhdCl7dmFyIEx0PWF0LmZhdGFsLEN0PSExLGZ0PTA7dGhpcy5oYW5kbGVyPWZ1bmN0aW9uKEh0LEdlKXtpZihHZT09PVkmJjAhPT1mdClyZXR1''@;'; + put 'put ''cm4gZnQ9MCxlZShMdCk7aWYoR2U9PT1ZJiYwPT09ZnQpcmV0dXJuIE47aWYoMTQyPT09ZnQmJkIoR2UsMTYxLDIyMykpcmV0dXJuIGZ0PTAsNjUyMTYrR2U7aWYoMTQzPT09ZnQmJkIoR2UsMTYxLDI1NCkpcmV0dXJuIEN0PSEwLGZ0PUdlLG51bGw7aWYoMCE9PWZ0KXt2YXIgVWU9ZnQ7ZnQ9''@;'; + put 'put ''MDt2YXIgeXQ9bnVsbDtyZXR1cm4gQihVZSwxNjEsMjU0KSYmQihHZSwxNjEsMjU0KSYmKHl0PWtlKDk0KihVZS0xNjEpKyhHZS0xNjEpLEllKEN0PyJqaXMwMjEyIjoiamlzMDIwOCIpKSksQ3Q9ITEsQihHZSwxNjEsMjU0KXx8SHQucHJlcGVuZChHZSksbnVsbD09PXl0P2VlKEx0KTp5dH1y''@;'; + put 'put ''ZXR1cm4gaWUoR2UpP0dlOjE0Mj09PUdlfHwxNDM9PT1HZXx8QihHZSwxNjEsMjU0KT8oZnQ9R2UsbnVsbCk6ZWUoTHQpfX1mdW5jdGlvbiAkZShhdCl7dGhpcy5oYW5kbGVyPWZ1bmN0aW9uKEN0LGZ0KXtpZihmdD09PVkpcmV0dXJuIE47aWYoYWUoZnQpKXJldHVybiBmdDtpZigxNjU9PT1m''@;'; + put 'put ''dClyZXR1cm4gOTI7aWYoODI1ND09PWZ0KXJldHVybiAxMjY7aWYoQihmdCw2NTM3Nyw2NTQzOSkpcmV0dXJuWzE0MixmdC02NTM3NysxNjFdOzg3MjI9PT1mdCYmKGZ0PTY1MjkzKTt2YXIgSHQ9U2UoZnQsSWUoImppczAyMDgiKSk7cmV0dXJuIG51bGw9PT1IdD9xKGZ0KTpbTWUoSHQvOTQp''@;'; + put 'put ''KzE2MSxIdCU5NCsxNjFdfX1mdW5jdGlvbiBndChhdCl7dmFyIEx0PWF0LmZhdGFsLGZ0PTAsR2U9MCxVZT0hMTt0aGlzLmhhbmRsZXI9ZnVuY3Rpb24oeXQsanQpe3N3aXRjaChmdCl7ZGVmYXVsdDpjYXNlIDA6cmV0dXJuIDI3PT09anQ/KGZ0PTUsbnVsbCk6QihqdCwwLDEyNykmJjE0IT09''@;'; + put 'put ''anQmJjE1IT09anQmJjI3IT09anQ/KFVlPSExLGp0KTpqdD09PVk/TjooVWU9ITEsZWUoTHQpKTtjYXNlIDE6cmV0dXJuIDI3PT09anQ/KGZ0PTUsbnVsbCk6OTI9PT1qdD8oVWU9ITEsMTY1KToxMjY9PT1qdD8oVWU9ITEsODI1NCk6QihqdCwwLDEyNykmJjE0IT09anQmJjE1IT09anQmJjI3''@;'; + put 'put ''IT09anQmJjkyIT09anQmJjEyNiE9PWp0PyhVZT0hMSxqdCk6anQ9PT1ZP046KFVlPSExLGVlKEx0KSk7Y2FzZSAyOnJldHVybiAyNz09PWp0PyhmdD01LG51bGwpOkIoanQsMzMsOTUpPyhVZT0hMSw2NTM0NCtqdCk6anQ9PT1ZP046KFVlPSExLGVlKEx0KSk7Y2FzZSAzOnJldHVybiAyNz09''@;'; + put 'put ''PWp0PyhmdD01LG51bGwpOkIoanQsMzMsMTI2KT8oVWU9ITEsR2U9anQsZnQ9NCxudWxsKTpqdD09PVk/TjooVWU9ITEsZWUoTHQpKTtjYXNlIDQ6aWYoMjc9PT1qdClyZXR1cm4gZnQ9NSxlZShMdCk7aWYoQihqdCwzMywxMjYpKXtmdD0zO3ZhciBnbj1rZSg5NCooR2UtMzMpK2p0LTMzLEll''@;'; + put 'put ''KCJqaXMwMjA4IikpO3JldHVybiBudWxsPT09Z24/ZWUoTHQpOmdufXJldHVybiBqdD09PVk/KGZ0PTMseXQucHJlcGVuZChqdCksZWUoTHQpKTooZnQ9MyxlZShMdCkpO2Nhc2UgNTpyZXR1cm4gMzY9PT1qdHx8NDA9PT1qdD8oR2U9anQsZnQ9NixudWxsKTooeXQucHJlcGVuZChqdCksVWU9''@;'; + put 'put ''ITEsZnQ9MCxlZShMdCkpO2Nhc2UgNjp2YXIgZG49R2U7R2U9MDt2YXIgeW49bnVsbDtpZig0MD09PWRuJiY2Nj09PWp0JiYoeW49MCksNDA9PT1kbiYmNzQ9PT1qdCYmKHluPTEpLDQwPT09ZG4mJjczPT09anQmJih5bj0yKSwzNj09PWRuJiYoNjQ9PT1qdHx8NjY9PT1qdCkmJih5bj0zKSxu''@;'; + put 'put ''dWxsIT09eW4pe2Z0PWZ0PXluO3ZhciBsbj1VZTtyZXR1cm4gVWU9ITAsbG4/ZWUoTHQpOm51bGx9cmV0dXJuIHl0LnByZXBlbmQoW2RuLGp0XSksVWU9ITEsZnQ9MCxlZShMdCl9fX1mdW5jdGlvbiB3dChhdCl7dmFyIGZ0PTA7dGhpcy5oYW5kbGVyPWZ1bmN0aW9uKEh0LEdlKXtpZihHZT09''@;'; + put 'put ''PVkmJjAhPT1mdClyZXR1cm4gSHQucHJlcGVuZChHZSksZnQ9MCxbMjcsNDAsNjZdO2lmKEdlPT09WSYmMD09PWZ0KXJldHVybiBOO2lmKCEoMCE9PWZ0JiYxIT09ZnR8fDE0IT09R2UmJjE1IT09R2UmJjI3IT09R2UpKXJldHVybiBxKDY1NTMzKTtpZigwPT09ZnQmJmFlKEdlKSlyZXR1cm4g''@;'; + put 'put ''R2U7aWYoMT09PWZ0JiYoYWUoR2UpJiY5MiE9PUdlJiYxMjYhPT1HZXx8MTY1PT1HZXx8ODI1ND09R2UpKXtpZihhZShHZSkpcmV0dXJuIEdlO2lmKDE2NT09PUdlKXJldHVybiA5MjtpZig4MjU0PT09R2UpcmV0dXJuIDEyNn1pZihhZShHZSkmJjAhPT1mdClyZXR1cm4gSHQucHJlcGVuZChH''@;'; + put 'put ''ZSksZnQ9MCxbMjcsNDAsNjZdO2lmKCgxNjU9PT1HZXx8ODI1ND09PUdlKSYmMSE9PWZ0KXJldHVybiBIdC5wcmVwZW5kKEdlKSxmdD0xLFsyNyw0MCw3NF07ODcyMj09PUdlJiYoR2U9NjUyOTMpO3ZhciBVZT1TZShHZSxJZSgiamlzMDIwOCIpKTtyZXR1cm4gbnVsbD09PVVlP3EoR2UpOjIh''@;'; + put 'put ''PT1mdD8oSHQucHJlcGVuZChHZSksZnQ9MixbMjcsMzYsNjZdKTpbTWUoVWUvOTQpKzMzLFVlJTk0KzMzXX19ZnVuY3Rpb24gbXQoYXQpe3ZhciBMdD1hdC5mYXRhbCxDdD0wO3RoaXMuaGFuZGxlcj1mdW5jdGlvbihmdCxIdCl7aWYoSHQ9PT1ZJiYwIT09Q3QpcmV0dXJuIEN0PTAsZWUoTHQp''@;'; + put 'put ''O2lmKEh0PT09WSYmMD09PUN0KXJldHVybiBOO2lmKDAhPT1DdCl7dmFyIEdlPUN0LFVlPW51bGw7Q3Q9MDt2YXIgeXQ9SHQ8MTI3PzY0OjY1LGp0PUdlPDE2MD8xMjk6MTkzO2lmKChCKEh0LDY0LDEyNil8fEIoSHQsMTI4LDI1MikpJiYoVWU9MTg4KihHZS1qdCkrSHQteXQpLEIoVWUsODgz''@;'; + put 'put ''NiwxMDcxNSkpcmV0dXJuIDQ4NTA4K1VlO3ZhciBRdD1udWxsPT09VWU/bnVsbDprZShVZSxJZSgiamlzMDIwOCIpKTtyZXR1cm4gbnVsbD09PVF0JiZpZShIdCkmJmZ0LnByZXBlbmQoSHQpLG51bGw9PT1RdD9lZShMdCk6UXR9cmV0dXJuIGllKEh0KXx8MTI4PT09SHQ/SHQ6QihIdCwxNjEs''@;'; + put 'put ''MjIzKT82NTIxNitIdDpCKEh0LDEyOSwxNTkpfHxCKEh0LDIyNCwyNTIpPyhDdD1IdCxudWxsKTplZShMdCl9fWZ1bmN0aW9uIHZ0KGF0KXt0aGlzLmhhbmRsZXI9ZnVuY3Rpb24oQ3QsZnQpe2lmKGZ0PT09WSlyZXR1cm4gTjtpZihhZShmdCl8fDEyOD09PWZ0KXJldHVybiBmdDtpZigxNjU9''@;'; + put 'put ''PT1mdClyZXR1cm4gOTI7aWYoODI1ND09PWZ0KXJldHVybiAxMjY7aWYoQihmdCw2NTM3Nyw2NTQzOSkpcmV0dXJuIGZ0LTY1Mzc3KzE2MTs4NzIyPT09ZnQmJihmdD02NTI5Myk7dmFyIEh0PWZ1bmN0aW9uIGhlKGF0KXtyZXR1cm4oTz1PfHxJZSgiamlzMDIwOCIpLm1hcChmdW5jdGlvbihD''@;'; + put 'put ''dCxmdCl7cmV0dXJuIEIoZnQsODI3Miw4ODM1KT9udWxsOkN0fSkpLmluZGV4T2YoYXQpfShmdCk7aWYobnVsbD09PUh0KXJldHVybiBxKGZ0KTt2YXIgR2U9TWUoSHQvMTg4KSx5dD1IdCUxODg7cmV0dXJuW0dlKyhHZTwzMT8xMjk6MTkzKSx5dCsoeXQ8NjM/NjQ6NjUpXX19ZnVuY3Rpb24g''@;'; + put 'put ''QXQoYXQpe3ZhciBMdD1hdC5mYXRhbCxDdD0wO3RoaXMuaGFuZGxlcj1mdW5jdGlvbihmdCxIdCl7aWYoSHQ9PT1ZJiYwIT09Q3QpcmV0dXJuIEN0PTAsZWUoTHQpO2lmKEh0PT09WSYmMD09PUN0KXJldHVybiBOO2lmKDAhPT1DdCl7dmFyIEdlPUN0LFVlPW51bGw7Q3Q9MCxCKEh0LDY1LDI1''@;'; + put 'put ''NCkmJihVZT0xOTAqKEdlLTEyOSkrKEh0LTY1KSk7dmFyIHl0PW51bGw9PT1VZT9udWxsOmtlKFVlLEllKCJldWMta3IiKSk7cmV0dXJuIG51bGw9PT1VZSYmaWUoSHQpJiZmdC5wcmVwZW5kKEh0KSxudWxsPT09eXQ/ZWUoTHQpOnl0fXJldHVybiBpZShIdCk/SHQ6QihIdCwxMjksMjU0KT8o''@;'; + put 'put ''Q3Q9SHQsbnVsbCk6ZWUoTHQpfX1mdW5jdGlvbiBodChhdCl7dGhpcy5oYW5kbGVyPWZ1bmN0aW9uKEN0LGZ0KXtpZihmdD09PVkpcmV0dXJuIE47aWYoYWUoZnQpKXJldHVybiBmdDt2YXIgSHQ9U2UoZnQsSWUoImV1Yy1rciIpKTtyZXR1cm4gbnVsbD09PUh0P3EoZnQpOltNZShIdC8xOTAp''@;'; + put 'put ''KzEyOSxIdCUxOTArNjVdfX1mdW5jdGlvbiBCdChhdCxMdCl7dmFyIEN0PWF0Pj44LGZ0PTI1NSZhdDtyZXR1cm4gTHQ/W0N0LGZ0XTpbZnQsQ3RdfWZ1bmN0aW9uIG9uKGF0LEx0KXt2YXIgQ3Q9THQuZmF0YWwsZnQ9bnVsbCxIdD1udWxsO3RoaXMuaGFuZGxlcj1mdW5jdGlvbihHZSxVZSl7''@;'; + put 'put ''aWYoVWU9PT1ZJiYobnVsbCE9PWZ0fHxudWxsIT09SHQpKXJldHVybiBlZShDdCk7aWYoVWU9PT1ZJiZudWxsPT09ZnQmJm51bGw9PT1IdClyZXR1cm4gTjtpZihudWxsPT09ZnQpcmV0dXJuIGZ0PVVlLG51bGw7dmFyIHl0O2lmKHl0PWF0PyhmdDw8OCkrVWU6KFVlPDw4KStmdCxmdD1udWxs''@;'; + put 'put ''LG51bGwhPT1IdCl7dmFyIGp0PUh0O3JldHVybiBIdD1udWxsLEIoeXQsNTYzMjAsNTczNDMpPzY1NTM2KzEwMjQqKGp0LTU1Mjk2KSsoeXQtNTYzMjApOihHZS5wcmVwZW5kKEJ0KHl0LGF0KSksZWUoQ3QpKX1yZXR1cm4gQih5dCw1NTI5Niw1NjMxOSk/KEh0PXl0LG51bGwpOkIoeXQsNTYz''@;'; + put 'put ''MjAsNTczNDMpP2VlKEN0KTp5dH19ZnVuY3Rpb24gX3QoYXQsTHQpe3RoaXMuaGFuZGxlcj1mdW5jdGlvbihmdCxIdCl7aWYoSHQ9PT1ZKXJldHVybiBOO2lmKEIoSHQsMCw2NTUzNSkpcmV0dXJuIEJ0KEh0LGF0KTt2YXIgR2U9QnQoNTUyOTYrKEh0LTY1NTM2Pj4xMCksYXQpLFVlPUJ0KDU2''@;'; + put 'put ''MzIwKyhIdC02NTUzNiYxMDIzKSxhdCk7cmV0dXJuIEdlLmNvbmNhdChVZSl9fWZ1bmN0aW9uIHR0KGF0KXt0aGlzLmhhbmRsZXI9ZnVuY3Rpb24oQ3QsZnQpe3JldHVybiBmdD09PVk/TjppZShmdCk/ZnQ6NjMzNjArZnQtMTI4fX1mdW5jdGlvbiBldChhdCl7dGhpcy5oYW5kbGVyPWZ1bmN0''@;'; + put 'put ''aW9uKEN0LGZ0KXtyZXR1cm4gZnQ9PT1ZP046YWUoZnQpP2Z0OkIoZnQsNjMzNjAsNjM0ODcpP2Z0LTYzMzYwKzEyODpxKGZ0KX19T2JqZWN0LmRlZmluZVByb3BlcnR5JiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KHgucHJvdG90eXBlLCJlbmNvZGluZyIse2dldDpmdW5jdGlvbigpe3JldHVy''@;'; + put 'put ''biB0aGlzLl9lbmNvZGluZy5uYW1lLnRvTG93ZXJDYXNlKCl9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHgucHJvdG90eXBlLCJmYXRhbCIse2dldDpmdW5jdGlvbigpe3JldHVybiJmYXRhbCI9PT10aGlzLl9lcnJvcl9tb2RlfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh4LnByb3RvdHlw''@;'; + put 'put ''ZSwiaWdub3JlQk9NIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2lnbm9yZUJPTX19KSkseC5wcm90b3R5cGUuZGVjb2RlPWZ1bmN0aW9uKEx0LEN0KXt2YXIgZnQ7ZnQ9Im9iamVjdCI9PXR5cGVvZiBMdCYmTHQgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcj9uZXcgVWludDhBcnJheShM''@;'; + put 'put ''dCk6Im9iamVjdCI9PXR5cGVvZiBMdCYmImJ1ZmZlciJpbiBMdCYmTHQuYnVmZmVyIGluc3RhbmNlb2YgQXJyYXlCdWZmZXI/bmV3IFVpbnQ4QXJyYXkoTHQuYnVmZmVyLEx0LmJ5dGVPZmZzZXQsTHQuYnl0ZUxlbmd0aCk6bmV3IFVpbnQ4QXJyYXkoMCksQ3Q9VShDdCksdGhpcy5fZG9fbm90''@;'; + put 'put ''X2ZsdXNofHwodGhpcy5fZGVjb2Rlcj1BZVt0aGlzLl9lbmNvZGluZy5uYW1lXSh7ZmF0YWw6ImZhdGFsIj09PXRoaXMuX2Vycm9yX21vZGV9KSx0aGlzLl9CT01zZWVuPSExKSx0aGlzLl9kb19ub3RfZmx1c2g9Qm9vbGVhbihDdC5zdHJlYW0pO2Zvcih2YXIgVWUsSHQ9bmV3IFcoZnQpLEdl''@;'; + put 'put ''PVtdOzspe3ZhciB5dD1IdC5yZWFkKCk7aWYoeXQ9PT1ZfHwoVWU9dGhpcy5fZGVjb2Rlci5oYW5kbGVyKEh0LHl0KSk9PT1OKWJyZWFrO251bGwhPT1VZSYmKEFycmF5LmlzQXJyYXkoVWUpP0dlLnB1c2guYXBwbHkoR2UsVWUpOkdlLnB1c2goVWUpKX1pZighdGhpcy5fZG9fbm90X2ZsdXNo''@;'; + put 'put ''KXtkb3tpZigoVWU9dGhpcy5fZGVjb2Rlci5oYW5kbGVyKEh0LEh0LnJlYWQoKSkpPT09TilicmVhaztudWxsIT09VWUmJihBcnJheS5pc0FycmF5KFVlKT9HZS5wdXNoLmFwcGx5KEdlLFVlKTpHZS5wdXNoKFVlKSl9d2hpbGUoIUh0LmVuZE9mU3RyZWFtKCkpO3RoaXMuX2RlY29kZXI9bnVs''@;'; + put 'put ''bH1yZXR1cm4gZnVuY3Rpb24ganQoUXQpe3JldHVybiBmdW5jdGlvbiBFKGF0LEx0KXtyZXR1cm4tMSE9PWF0LmluZGV4T2YoTHQpfShbIlVURi04IiwiVVRGLTE2TEUiLCJVVEYtMTZCRSJdLHRoaXMuX2VuY29kaW5nLm5hbWUpJiYhdGhpcy5faWdub3JlQk9NJiYhdGhpcy5fQk9Nc2VlbiYm''@;'; + put 'put ''KFF0Lmxlbmd0aD4wJiY2NTI3OT09PVF0WzBdPyh0aGlzLl9CT01zZWVuPSEwLFF0LnNoaWZ0KCkpOlF0Lmxlbmd0aD4wJiYodGhpcy5fQk9Nc2Vlbj0hMCkpLGZ1bmN0aW9uIFooYXQpe2Zvcih2YXIgTHQ9IiIsQ3Q9MDtDdDxhdC5sZW5ndGg7KytDdCl7dmFyIGZ0PWF0W0N0XTtmdDw9NjU1''@;'; + put 'put ''MzU/THQrPVN0cmluZy5mcm9tQ2hhckNvZGUoZnQpOihmdC09NjU1MzYsTHQrPVN0cmluZy5mcm9tQ2hhckNvZGUoNTUyOTYrKGZ0Pj4xMCksNTYzMjArKDEwMjMmZnQpKSl9cmV0dXJuIEx0fShRdCl9LmNhbGwodGhpcyxHZSl9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eSYmT2JqZWN0LmRlZmlu''@;'; + put 'put ''ZVByb3BlcnR5KFAucHJvdG90eXBlLCJlbmNvZGluZyIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9lbmNvZGluZy5uYW1lLnRvTG93ZXJDYXNlKCl9fSksUC5wcm90b3R5cGUuZW5jb2RlPWZ1bmN0aW9uKEx0LEN0KXtMdD12b2lkIDA9PT1MdD8iIjpTdHJpbmcoTHQpLEN0PVUoQ3Qp''@;'; + put 'put ''LHRoaXMuX2RvX25vdF9mbHVzaHx8KHRoaXMuX2VuY29kZXI9dmVbdGhpcy5fZW5jb2RpbmcubmFtZV0oe2ZhdGFsOiJmYXRhbCI9PT10aGlzLl9mYXRhbH0pKSx0aGlzLl9kb19ub3RfZmx1c2g9Qm9vbGVhbihDdC5zdHJlYW0pO2Zvcih2YXIgR2UsZnQ9bmV3IFcoZnVuY3Rpb24gUShhdCl7''@;'; + put 'put ''Zm9yKHZhciBMdD1TdHJpbmcoYXQpLEN0PUx0Lmxlbmd0aCxmdD0wLEh0PVtdO2Z0PEN0Oyl7dmFyIEdlPUx0LmNoYXJDb2RlQXQoZnQpO2lmKEdlPDU1Mjk2fHxHZT41NzM0MylIdC5wdXNoKEdlKTtlbHNlIGlmKDU2MzIwPD1HZSYmR2U8PTU3MzQzKUh0LnB1c2goNjU1MzMpO2Vsc2UgaWYo''@;'; + put 'put ''NTUyOTY8PUdlJiZHZTw9NTYzMTkpaWYoZnQ9PT1DdC0xKUh0LnB1c2goNjU1MzMpO2Vsc2V7dmFyIFVlPUx0LmNoYXJDb2RlQXQoZnQrMSk7NTYzMjA8PVVlJiZVZTw9NTczNDM/KEh0LnB1c2goNjU1MzYrKCgxMDIzJkdlKTw8MTApKygxMDIzJlVlKSksZnQrPTEpOkh0LnB1c2goNjU1MzMp''@;'; + put 'put ''fWZ0Kz0xfXJldHVybiBIdH0oTHQpKSxIdD1bXTs7KXt2YXIgVWU9ZnQucmVhZCgpO2lmKFVlPT09WXx8KEdlPXRoaXMuX2VuY29kZXIuaGFuZGxlcihmdCxVZSkpPT09TilicmVhaztBcnJheS5pc0FycmF5KEdlKT9IdC5wdXNoLmFwcGx5KEh0LEdlKTpIdC5wdXNoKEdlKX1pZighdGhpcy5f''@;'; + put 'put ''ZG9fbm90X2ZsdXNoKXtmb3IoOyhHZT10aGlzLl9lbmNvZGVyLmhhbmRsZXIoZnQsZnQucmVhZCgpKSkhPT1OOylBcnJheS5pc0FycmF5KEdlKT9IdC5wdXNoLmFwcGx5KEh0LEdlKTpIdC5wdXNoKEdlKTt0aGlzLl9lbmNvZGVyPW51bGx9cmV0dXJuIG5ldyBVaW50OEFycmF5KEh0KX0sdmVb''@;'; + put 'put ''IlVURi04Il09ZnVuY3Rpb24oYXQpe3JldHVybiBuZXcgVChhdCl9LEFlWyJVVEYtOCJdPWZ1bmN0aW9uKGF0KXtyZXR1cm4gbmV3IFYoYXQpfSwiZW5jb2RpbmctaW5kZXhlcyJpbiBtZSYmY2UuZm9yRWFjaChmdW5jdGlvbihhdCl7IkxlZ2FjeSBzaW5nbGUtYnl0ZSBlbmNvZGluZ3MiPT09''@;'; + put 'put ''YXQuaGVhZGluZyYmYXQuZW5jb2RpbmdzLmZvckVhY2goZnVuY3Rpb24oTHQpe3ZhciBDdD1MdC5uYW1lLGZ0PUllKEN0LnRvTG93ZXJDYXNlKCkpO0FlW0N0XT1mdW5jdGlvbihIdCl7cmV0dXJuIG5ldyBTKGZ0LEh0KX0sdmVbQ3RdPWZ1bmN0aW9uKEh0KXtyZXR1cm4gbmV3IEYoZnQsSHQp''@;'; + put 'put ''fX0pfSksQWUuR0JLPWZ1bmN0aW9uKGF0KXtyZXR1cm4gbmV3IHllKGF0KX0sdmUuR0JLPWZ1bmN0aW9uKGF0KXtyZXR1cm4gbmV3IENlKGF0LCEwKX0sdmUuZ2IxODAzMD1mdW5jdGlvbihhdCl7cmV0dXJuIG5ldyBDZShhdCl9LEFlLmdiMTgwMzA9ZnVuY3Rpb24oYXQpe3JldHVybiBuZXcg''@;'; + put 'put ''eWUoYXQpfSx2ZS5CaWc1PWZ1bmN0aW9uKGF0KXtyZXR1cm4gbmV3IFBlKGF0KX0sQWUuQmlnNT1mdW5jdGlvbihhdCl7cmV0dXJuIG5ldyBEZShhdCl9LHZlWyJFVUMtSlAiXT1mdW5jdGlvbihhdCl7cmV0dXJuIG5ldyAkZShhdCl9LEFlWyJFVUMtSlAiXT1mdW5jdGlvbihhdCl7cmV0dXJu''@;'; + put 'put ''IG5ldyBRZShhdCl9LHZlWyJJU08tMjAyMi1KUCJdPWZ1bmN0aW9uKGF0KXtyZXR1cm4gbmV3IHd0KGF0KX0sQWVbIklTTy0yMDIyLUpQIl09ZnVuY3Rpb24oYXQpe3JldHVybiBuZXcgZ3QoYXQpfSx2ZS5TaGlmdF9KSVM9ZnVuY3Rpb24oYXQpe3JldHVybiBuZXcgdnQoYXQpfSxBZS5TaGlm''@;'; + put 'put ''dF9KSVM9ZnVuY3Rpb24oYXQpe3JldHVybiBuZXcgbXQoYXQpfSx2ZVsiRVVDLUtSIl09ZnVuY3Rpb24oYXQpe3JldHVybiBuZXcgaHQoYXQpfSxBZVsiRVVDLUtSIl09ZnVuY3Rpb24oYXQpe3JldHVybiBuZXcgQXQoYXQpfSx2ZVsiVVRGLTE2QkUiXT1mdW5jdGlvbihhdCl7cmV0dXJuIG5l''@;'; + put 'put ''dyBfdCghMCxhdCl9LEFlWyJVVEYtMTZCRSJdPWZ1bmN0aW9uKGF0KXtyZXR1cm4gbmV3IG9uKCEwLGF0KX0sdmVbIlVURi0xNkxFIl09ZnVuY3Rpb24oYXQpe3JldHVybiBuZXcgX3QoITEsYXQpfSxBZVsiVVRGLTE2TEUiXT1mdW5jdGlvbihhdCl7cmV0dXJuIG5ldyBvbighMSxhdCl9LHZl''@;'; + put 'put ''WyJ4LXVzZXItZGVmaW5lZCJdPWZ1bmN0aW9uKGF0KXtyZXR1cm4gbmV3IGV0KGF0KX0sQWVbIngtdXNlci1kZWZpbmVkIl09ZnVuY3Rpb24oYXQpe3JldHVybiBuZXcgdHQoYXQpfSxtZS5UZXh0RW5jb2Rlcnx8KG1lLlRleHRFbmNvZGVyPVApLG1lLlRleHREZWNvZGVyfHwobWUuVGV4dERl''@;'; + put 'put ''Y29kZXI9eCksWGUuZXhwb3J0cyYmKFhlLmV4cG9ydHM9e1RleHRFbmNvZGVyOm1lLlRleHRFbmNvZGVyLFRleHREZWNvZGVyOm1lLlRleHREZWNvZGVyLEVuY29kaW5nSW5kZXhlczptZVsiZW5jb2RpbmctaW5kZXhlcyJdfSl9KHRoaXN8fHt9KX0sMjM1MzI6WGU9PntmdW5jdGlvbiBMKG1l''@;'; + put 'put ''KXt0cnl7aWYoIWdsb2JhbC5sb2NhbFN0b3JhZ2UpcmV0dXJuITF9Y2F0Y2goRSl7cmV0dXJuITF9dmFyIEI9Z2xvYmFsLmxvY2FsU3RvcmFnZVttZV07cmV0dXJuIG51bGwhPUImJiJ0cnVlIj09PVN0cmluZyhCKS50b0xvd2VyQ2FzZSgpfVhlLmV4cG9ydHM9ZnVuY3Rpb24gSmUobWUsQil7''@;'; + put 'put ''aWYoTCgibm9EZXByZWNhdGlvbiIpKXJldHVybiBtZTt2YXIgRT0hMTtyZXR1cm4gZnVuY3Rpb24gTWUoKXtpZighRSl7aWYoTCgidGhyb3dEZXByZWNhdGlvbiIpKXRocm93IG5ldyBFcnJvcihCKTtMKCJ0cmFjZURlcHJlY2F0aW9uIik/Y29uc29sZS50cmFjZShCKTpjb25zb2xlLndhcm4o''@;'; + put 'put ''QiksRT0hMH1yZXR1cm4gbWUuYXBwbHkodGhpcyxhcmd1bWVudHMpfX19LDczMzkzOihYZSxKZSxMKT0+eyFmdW5jdGlvbihtZSl7InVzZSBzdHJpY3QiO21lLmV4cG9ydHMuaXNfdXJpPUUsbWUuZXhwb3J0cy5pc19odHRwX3VyaT1NZSxtZS5leHBvcnRzLmlzX2h0dHBzX3VyaT1VLG1lLmV4''@;'; + put 'put ''cG9ydHMuaXNfd2ViX3VyaT1RLG1lLmV4cG9ydHMuaXNVcmk9RSxtZS5leHBvcnRzLmlzSHR0cFVyaT1NZSxtZS5leHBvcnRzLmlzSHR0cHNVcmk9VSxtZS5leHBvcnRzLmlzV2ViVXJpPVE7dmFyIEI9ZnVuY3Rpb24oWil7cmV0dXJuIFoubWF0Y2goLyg/OihbXjpcLz8jXSspOik/KD86XC9c''@;'; + put 'put ''LyhbXlwvPyNdKikpPyhbXj8jXSopKD86XD8oW14jXSopKT8oPzojKC4qKSk/Lyl9O2Z1bmN0aW9uIEUoWil7aWYoWiYmIS9bXmEtejAtOVw6XC9cP1wjXFtcXVxAXCFcJFwmXCdcKFwpXCpcK1wsXDtcPVwuXC1cX1x+XCVdL2kudGVzdChaKSYmIS8lW14wLTlhLWZdL2kudGVzdChaKSYmIS8l''@;'; + put 'put ''WzAtOWEtZl0oOj9bXjAtOWEtZl18JCkvaS50ZXN0KFopKXt2YXIgaWUsWSxXLE4sZWUsYWU9IiIscT0iIjtpZihZPShpZT1CKFopKVsyXSxXPWllWzNdLE49aWVbNF0sZWU9aWVbNV0sKGFlPWllWzFdKSYmYWUubGVuZ3RoJiZXLmxlbmd0aD49MCl7aWYoWSYmWS5sZW5ndGgpe2lmKDAhPT1X''@;'; + put 'put ''Lmxlbmd0aCYmIS9eXC8vLnRlc3QoVykpcmV0dXJufWVsc2UgaWYoL15cL1wvLy50ZXN0KFcpKXJldHVybjtpZigvXlthLXpdW2EtejAtOVwrXC1cLl0qJC8udGVzdChhZS50b0xvd2VyQ2FzZSgpKSlyZXR1cm4gcSs9YWUrIjoiLFkmJlkubGVuZ3RoJiYocSs9Ii8vIitZKSxxKz1XLE4mJk4u''@;'; + put 'put ''bGVuZ3RoJiYocSs9Ij8iK04pLGVlJiZlZS5sZW5ndGgmJihxKz0iIyIrZWUpLHF9fX1mdW5jdGlvbiBNZShaLGllKXtpZihFKFopKXt2YXIgYWUsTixxLEosWT0iIixXPSIiLGVlPSIiLHNlPSIiO2lmKFc9KGFlPUIoWikpWzJdLE49YWVbM10scT1hZVs0XSxKPWFlWzVdLFk9YWVbMV0pe2lm''@;'; + put 'put ''KGllKXtpZigiaHR0cHMiIT1ZLnRvTG93ZXJDYXNlKCkpcmV0dXJufWVsc2UgaWYoImh0dHAiIT1ZLnRvTG93ZXJDYXNlKCkpcmV0dXJuO2lmKFcpcmV0dXJuLzooXGQrKSQvLnRlc3QoVykmJihlZT1XLm1hdGNoKC86KFxkKykkLylbMF0sVz1XLnJlcGxhY2UoLzpcZCskLywiIikpLHNlKz1Z''@;'; + put 'put ''KyI6IixzZSs9Ii8vIitXLGVlJiYoc2UrPWVlKSxzZSs9TixxJiZxLmxlbmd0aCYmKHNlKz0iPyIrcSksSiYmSi5sZW5ndGgmJihzZSs9IiMiK0opLHNlfX19ZnVuY3Rpb24gVShaKXtyZXR1cm4gTWUoWiwhMCl9ZnVuY3Rpb24gUShaKXtyZXR1cm4gTWUoWil8fFUoWil9fShYZT1MLm5tZChY''@;'; + put 'put ''ZSkpfSwyOTAzNTpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpe3ZhciBCPWZ1bmN0aW9uKFope1o9dm9pZCAwIT09KFo9Wnx8e30pP1o6e307dmFyIGFlLGllPXt9O2ZvcihhZSBpbiBaKVouaGFzT3duUHJvcGVydHkoYWUpJiYoaWVbYWVdPVpbYWVdKTtaLmFyZ3VtZW50cz1bXSxa''@;'; + put 'put ''LnRoaXNQcm9ncmFtPSIuL3RoaXMucHJvZ3JhbSIsWi5xdWl0PWZ1bmN0aW9uKHB0LEl0KXt0aHJvdyBJdH0sWi5wcmVSdW49W10sWi5wb3N0UnVuPVtdO3ZhciBxLEosWT0hMSxXPSExLE49ITEsZWU9ITE7aWYoWi5FTlZJUk9OTUVOVClpZigiV0VCIj09PVouRU5WSVJPTk1FTlQpWT0hMDtl''@;'; + put 'put ''bHNlIGlmKCJXT1JLRVIiPT09Wi5FTlZJUk9OTUVOVClXPSEwO2Vsc2UgaWYoIk5PREUiPT09Wi5FTlZJUk9OTUVOVClOPSEwO2Vsc2V7aWYoIlNIRUxMIiE9PVouRU5WSVJPTk1FTlQpdGhyb3cgbmV3IEVycm9yKCJNb2R1bGVbJ0VOVklST05NRU5UJ10gdmFsdWUgaXMgbm90IHZhbGlkLiBt''@;'; + put 'put ''dXN0IGJlIG9uZSBvZjogV0VCfFdPUktFUnxOT0RFfFNIRUxMLiIpO2VlPSEwfWVsc2UgWT0ib2JqZWN0Ij09dHlwZW9mIHdpbmRvdyxXPSJmdW5jdGlvbiI9PXR5cGVvZiBpbXBvcnRTY3JpcHRzLE49Im9iamVjdCI9PXR5cGVvZiBwcm9jZXNzJiYhWSYmIVcsZWU9IVkmJiFOJiYhVztmb3Io''@;'; + put 'put ''YWUgaW4gTj8oWi5yZWFkPWZ1bmN0aW9uKEl0LFB0KXt2YXIgZmU7cmV0dXJuKGZlPVV1KEl0KSl8fChxfHwocT1MKDM1MTU5KSksSnx8KEo9TCg3NTcwMSkpLEl0PUoubm9ybWFsaXplKEl0KSxmZT1xLnJlYWRGaWxlU3luYyhJdCkpLFB0P2ZlOmZlLnRvU3RyaW5nKCl9LFoucmVhZEJpbmFy''@;'; + put 'put ''eT1mdW5jdGlvbihJdCl7dmFyIFB0PVoucmVhZChJdCwhMCk7cmV0dXJuIFB0LmJ1ZmZlcnx8KFB0PW5ldyBVaW50OEFycmF5KFB0KSksTyhQdC5idWZmZXIpLFB0fSxwcm9jZXNzLmFyZ3YubGVuZ3RoPjEmJihaLnRoaXNQcm9ncmFtPXByb2Nlc3MuYXJndlsxXS5yZXBsYWNlKC9cXC9nLCIv''@;'; + put 'put ''IikpLFouYXJndW1lbnRzPXByb2Nlc3MuYXJndi5zbGljZSgyKSxYZS5leHBvcnRzPVoscHJvY2Vzcy5vbigidW5jYXVnaHRFeGNlcHRpb24iLGZ1bmN0aW9uKHB0KXtpZighKHB0IGluc3RhbmNlb2YgQ2EpKXRocm93IHB0fSkscHJvY2Vzcy5vbigidW5oYW5kbGVkUmVqZWN0aW9uIixmdW5j''@;'; + put 'put ''dGlvbihwdCxJdCl7cHJvY2Vzcy5leGl0KDEpfSksWi5pbnNwZWN0PWZ1bmN0aW9uKCl7cmV0dXJuIltFbXNjcmlwdGVuIE1vZHVsZSBvYmplY3RdIn0pOmVlPygidW5kZWZpbmVkIiE9dHlwZW9mIHJlYWQmJihaLnJlYWQ9ZnVuY3Rpb24oSXQpe3ZhciBQdD1VdShJdCk7cmV0dXJuIFB0P1lh''@;'; + put 'put ''KFB0KTpyZWFkKEl0KX0pLFoucmVhZEJpbmFyeT1mdW5jdGlvbihJdCl7dmFyIFB0O3JldHVybihQdD1VdShJdCkpfHwoImZ1bmN0aW9uIj09dHlwZW9mIHJlYWRidWZmZXI/bmV3IFVpbnQ4QXJyYXkocmVhZGJ1ZmZlcihJdCkpOihPKCJvYmplY3QiPT10eXBlb2YoUHQ9cmVhZChJdCwiYmlu''@;'; + put 'put ''YXJ5IikpKSxQdCkpfSwidW5kZWZpbmVkIiE9dHlwZW9mIHNjcmlwdEFyZ3M/Wi5hcmd1bWVudHM9c2NyaXB0QXJnczp2b2lkIDAhPT1hcmd1bWVudHMmJihaLmFyZ3VtZW50cz1hcmd1bWVudHMpLCJmdW5jdGlvbiI9PXR5cGVvZiBxdWl0JiYoWi5xdWl0PWZ1bmN0aW9uKHB0LEl0KXtxdWl0''@;'; + put 'put ''KHB0KX0pKTooWXx8VykmJihaLnJlYWQ9ZnVuY3Rpb24oSXQpe3RyeXt2YXIgUHQ9bmV3IFhNTEh0dHBSZXF1ZXN0O3JldHVybiBQdC5vcGVuKCJHRVQiLEl0LCExKSxQdC5zZW5kKG51bGwpLFB0LnJlc3BvbnNlVGV4dH1jYXRjaChpdCl7dmFyIGZlPVV1KEl0KTtpZihmZSlyZXR1cm4gWWEo''@;'; + put 'put ''ZmUpO3Rocm93IGl0fX0sVyYmKFoucmVhZEJpbmFyeT1mdW5jdGlvbihJdCl7dHJ5e3ZhciBQdD1uZXcgWE1MSHR0cFJlcXVlc3Q7cmV0dXJuIFB0Lm9wZW4oIkdFVCIsSXQsITEpLFB0LnJlc3BvbnNlVHlwZT0iYXJyYXlidWZmZXIiLFB0LnNlbmQobnVsbCksbmV3IFVpbnQ4QXJyYXkoUHQu''@;'; + put 'put ''cmVzcG9uc2UpfWNhdGNoKGl0KXt2YXIgZmU9VXUoSXQpO2lmKGZlKXJldHVybiBmZTt0aHJvdyBpdH19KSxaLnJlYWRBc3luYz1mdW5jdGlvbihJdCxQdCxmZSl7dmFyIGl0PW5ldyBYTUxIdHRwUmVxdWVzdDtpdC5vcGVuKCJHRVQiLEl0LCEwKSxpdC5yZXNwb25zZVR5cGU9ImFycmF5YnVm''@;'; + put 'put ''ZmVyIixpdC5vbmxvYWQ9ZnVuY3Rpb24oKXtpZigyMDA9PWl0LnN0YXR1c3x8MD09aXQuc3RhdHVzJiZpdC5yZXNwb25zZSlQdChpdC5yZXNwb25zZSk7ZWxzZXt2YXIgWHQ9VXUoSXQpO1h0P1B0KFh0LmJ1ZmZlcik6ZmUoKX19LGl0Lm9uZXJyb3I9ZmUsaXQuc2VuZChudWxsKX0sdm9pZCAw''@;'; + put 'put ''IT09YXJndW1lbnRzJiYoWi5hcmd1bWVudHM9YXJndW1lbnRzKSxaLnNldFdpbmRvd1RpdGxlPWZ1bmN0aW9uKHB0KXtkb2N1bWVudC50aXRsZT1wdH0pLFoucHJpbnQ9InVuZGVmaW5lZCIhPXR5cGVvZiBjb25zb2xlP2NvbnNvbGUubG9nOiJ1bmRlZmluZWQiIT10eXBlb2YgcHJpbnQ/cHJp''@;'; + put 'put ''bnQ6bnVsbCxaLnByaW50RXJyPSJ1bmRlZmluZWQiIT10eXBlb2YgcHJpbnRFcnI/cHJpbnRFcnI6InVuZGVmaW5lZCIhPXR5cGVvZiBjb25zb2xlJiZjb25zb2xlLndhcm58fFoucHJpbnQsWi5wcmludD1aLnByaW50LFoucHJpbnRFcnI9Wi5wcmludEVycixpZSlpZS5oYXNPd25Qcm9wZXJ0''@;'; + put 'put ''eShhZSkmJihaW2FlXT1pZVthZV0pO2llPXZvaWQgMDt2YXIgc2U9MTY7ZnVuY3Rpb24gb2UocHQpe08oIWp0KTt2YXIgSXQ9eXQ7cmV0dXJuIHl0PXl0K3B0KzE1Ji0xNixJdH1mdW5jdGlvbiBjZShwdCl7Tyhsbik7dmFyIEl0PUx0W2xuPj4yXSxQdD1JdCtwdCsxNSYtMTY7cmV0dXJuIEx0''@;'; + put 'put ''W2xuPj4yXT1QdCxQdD49c3ImJiFibigpPyhMdFtsbj4+Ml09SXQsMCk6SXR9ZnVuY3Rpb24gZGUocHQsSXQpe3JldHVybiBJdHx8KEl0PXNlKSxNYXRoLmNlaWwocHQvSXQpKkl0fWZ1bmN0aW9uIHZlKHB0KXtzd2l0Y2gocHQpe2Nhc2UiaTEiOmNhc2UiaTgiOnJldHVybiAxO2Nhc2UiaTE2''@;'; + put 'put ''IjpyZXR1cm4gMjtjYXNlImkzMiI6Y2FzZSJmbG9hdCI6cmV0dXJuIDQ7Y2FzZSJpNjQiOmNhc2UiZG91YmxlIjpyZXR1cm4gODtkZWZhdWx0OmlmKCIqIj09PXB0W3B0Lmxlbmd0aC0xXSlyZXR1cm4gNDtpZigiaSI9PT1wdFswXSl7dmFyIEl0PXBhcnNlSW50KHB0LnN1YnN0cigxKSk7cmV0''@;'; + put 'put ''dXJuIE8oSXQlOD09MCksSXQvOH1yZXR1cm4gMH19bmV3IEFycmF5KDApO3ZhciBUZT04LEVlPTA7ZnVuY3Rpb24gTyhwdCxJdCl7cHR8fGYyKCJBc3NlcnRpb24gZmFpbGVkOiAiK0l0KX1mdW5jdGlvbiB6KHB0KXt2YXIgSXQ9WlsiXyIrcHRdO3JldHVybiBPKEl0LCJDYW5ub3QgY2FsbCB1''@;'; + put 'put ''bmtub3duIGZ1bmN0aW9uICIrcHQrIiwgbWFrZSBzdXJlIGl0IGlzIGV4cG9ydGVkIiksSXR9dmFyIG5lPXtzdGFja1NhdmU6ZnVuY3Rpb24oKXtRcygpfSxzdGFja1Jlc3RvcmU6ZnVuY3Rpb24oKXtXcCgpfSxhcnJheVRvQzpmdW5jdGlvbihwdCl7dmFyIEl0PVFnKHB0Lmxlbmd0aCk7cmV0''@;'; + put 'put ''dXJuIHpuKHB0LEl0KSxJdH0sc3RyaW5nVG9DOmZ1bmN0aW9uKHB0KXt2YXIgSXQ9MDtpZihudWxsIT1wdCYmMCE9PXB0KXt2YXIgUHQ9MSsocHQubGVuZ3RoPDwyKTtRZShwdCxJdD1RZyhQdCksUHQpfXJldHVybiBJdH19LHRlPXtzdHJpbmc6bmUuc3RyaW5nVG9DLGFycmF5Om5lLmFycmF5''@;'; + put 'put ''VG9DfTtmdW5jdGlvbiB4KHB0LEl0LFB0LGZlLGl0KXt2YXIgYT16KHB0KSxYdD1bXSxocj0wO2lmKGZlKWZvcih2YXIgUGk9MDtQaTxmZS5sZW5ndGg7UGkrKyl7dmFyIGpuPXRlW1B0W1BpXV07am4/KDA9PT1ociYmKGhyPVFzKCkpLFh0W1BpXT1qbihmZVtQaV0pKTpYdFtQaV09ZmVbUGld''@;'; + put 'put ''fXZhciBfPWEuYXBwbHkobnVsbCxYdCk7cmV0dXJuInN0cmluZyI9PT1JdCYmKF89RihfKSksMCE9PWhyJiZXcChociksX31mdW5jdGlvbiBQKHB0LEl0LFB0LGZlKXtzd2l0Y2goIioiPT09KFB0PVB0fHwiaTgiKS5jaGFyQXQoUHQubGVuZ3RoLTEpJiYoUHQ9ImkzMiIpLFB0KXtjYXNlImkx''@;'; + put 'put ''IjpjYXNlImk4IjpfdFtwdD4+MF09SXQ7YnJlYWs7Y2FzZSJpMTYiOmV0W3B0Pj4xXT1JdDticmVhaztjYXNlImkzMiI6THRbcHQ+PjJdPUl0O2JyZWFrO2Nhc2UiaTY0Ijp0ZW1wSTY0PVtJdD4+PjAsKHRlbXBEb3VibGU9SXQsK0JuKHRlbXBEb3VibGUpPj0xP3RlbXBEb3VibGU+MD8oMHxS''@;'; + put 'put ''cigrb3IodGVtcERvdWJsZS80Mjk0OTY3Mjk2KSw0Mjk0OTY3Mjk1KSk+Pj4wOn5+K0puKCh0ZW1wRG91YmxlLSsofn50ZW1wRG91YmxlPj4+MCkpLzQyOTQ5NjcyOTYpPj4+MDowKV0sTHRbcHQ+PjJdPXRlbXBJNjRbMF0sTHRbcHQrND4+Ml09dGVtcEk2NFsxXTticmVhaztjYXNlImZsb2F0''@;'; + put 'put ''IjpmdFtwdD4+Ml09SXQ7YnJlYWs7Y2FzZSJkb3VibGUiOkh0W3B0Pj4zXT1JdDticmVhaztkZWZhdWx0OmYyKCJpbnZhbGlkIHR5cGUgZm9yIHNldFZhbHVlOiAiK1B0KX19dmFyIFY9MixUPTQ7ZnVuY3Rpb24gUyhwdCxJdCxQdCxmZSl7dmFyIGl0LGE7Im51bWJlciI9PXR5cGVvZiBwdD8o''@;'; + put 'put ''aXQ9ITAsYT1wdCk6KGl0PSExLGE9cHQubGVuZ3RoKTt2YXIgaHIsWHQ9InN0cmluZyI9PXR5cGVvZiBJdD9JdDpudWxsO2lmKGhyPVB0PT1UP2ZlOlsiZnVuY3Rpb24iPT10eXBlb2YgenA/enA6b2UsUWcsb2UsY2VdW3ZvaWQgMD09PVB0P1Y6UHRdKE1hdGgubWF4KGEsWHQ/MTpJdC5sZW5n''@;'; + put 'put ''dGgpKSxpdCl7dmFyIFBpO2ZvcihmZT1ocixPKDA9PSgzJmhyKSksUGk9aHIrKC00JmEpO2ZlPFBpO2ZlKz00KUx0W2ZlPj4yXT0wO2ZvcihQaT1ocithO2ZlPFBpOylfdFtmZSsrPj4wXT0wO3JldHVybiBocn1pZigiaTgiPT09WHQpcmV0dXJuIHR0LnNldChwdC5zdWJhcnJheXx8cHQuc2xp''@;'; + put 'put ''Y2U/cHQ6bmV3IFVpbnQ4QXJyYXkocHQpLGhyKSxocjtmb3IodmFyIF8sQW8sU2ksam49MDtqbjxhOykwIT09KF89WHR8fEl0W2puXSk/KCJpNjQiPT1fJiYoXz0iaTMyIiksUChocitqbixwdFtqbl0sXyksU2khPT1fJiYoQW89dmUoXyksU2k9Xyksam4rPUFvKTpqbisrO3JldHVybiBocn1m''@;'; + put 'put ''dW5jdGlvbiBGKHB0LEl0KXtpZigwPT09SXR8fCFwdClyZXR1cm4iIjtmb3IodmFyIGZlLFB0PTAsaXQ9MDtQdHw9ZmU9dHRbcHQraXQ+PjBdLCgwIT1mZXx8SXQpJiYoaXQrKywhSXR8fGl0IT1JdCk7KTtJdHx8KEl0PWl0KTt2YXIgYT0iIjtpZihQdDwxMjgpe2Zvcih2YXIgaHI7SXQ+MDsp''@;'; + put 'put ''aHI9U3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShTdHJpbmcsdHQuc3ViYXJyYXkocHQscHQrTWF0aC5taW4oSXQsMTAyNCkpKSxhPWE/YStocjpocixwdCs9MTAyNCxJdC09MTAyNDtyZXR1cm4gYX1yZXR1cm4gRGUocHQpfXZhciB5ZT0idW5kZWZpbmVkIiE9dHlwZW9mIFRleHREZWNvZGVy''@;'; + put 'put ''P25ldyBUZXh0RGVjb2RlcigidXRmOCIpOnZvaWQgMDtmdW5jdGlvbiBDZShwdCxJdCl7Zm9yKHZhciBQdD1JdDtwdFtQdF07KSsrUHQ7aWYoUHQtSXQ+MTYmJnB0LnN1YmFycmF5JiZ5ZSlyZXR1cm4geWUuZGVjb2RlKHB0LnN1YmFycmF5KEl0LFB0KSk7Zm9yKHZhciBmZSxpdCxhLFh0LGhy''@;'; + put 'put ''LGpuPSIiOzspe2lmKCEoZmU9cHRbSXQrK10pKXJldHVybiBqbjtpZigxMjgmZmUpaWYoaXQ9NjMmcHRbSXQrK10sMTkyIT0oMjI0JmZlKSlpZihhPTYzJnB0W0l0KytdLDIyND09KDI0MCZmZSk/ZmU9KDE1JmZlKTw8MTJ8aXQ8PDZ8YTooWHQ9NjMmcHRbSXQrK10sMjQwPT0oMjQ4JmZlKT9m''@;'; + put 'put ''ZT0oNyZmZSk8PDE4fGl0PDwxMnxhPDw2fFh0Oihocj02MyZwdFtJdCsrXSxmZT0yNDg9PSgyNTImZmUpPygzJmZlKTw8MjR8aXQ8PDE4fGE8PDEyfFh0PDw2fGhyOigxJmZlKTw8MzB8aXQ8PDI0fGE8PDE4fFh0PDwxMnxocjw8Nnw2MyZwdFtJdCsrXSkpLGZlPDY1NTM2KWpuKz1TdHJpbmcu''@;'; + put 'put ''ZnJvbUNoYXJDb2RlKGZlKTtlbHNle3ZhciBfPWZlLTY1NTM2O2puKz1TdHJpbmcuZnJvbUNoYXJDb2RlKDU1Mjk2fF8+PjEwLDU2MzIwfDEwMjMmXyl9ZWxzZSBqbis9U3RyaW5nLmZyb21DaGFyQ29kZSgoMzEmZmUpPDw2fGl0KTtlbHNlIGpuKz1TdHJpbmcuZnJvbUNoYXJDb2RlKGZlKX19''@;'; + put 'put ''ZnVuY3Rpb24gRGUocHQpe3JldHVybiBDZSh0dCxwdCl9ZnVuY3Rpb24gUGUocHQsSXQsUHQsZmUpe2lmKCEoZmU+MCkpcmV0dXJuIDA7Zm9yKHZhciBpdD1QdCxhPVB0K2ZlLTEsWHQ9MDtYdDxwdC5sZW5ndGg7KytYdCl7dmFyIGhyPXB0LmNoYXJDb2RlQXQoWHQpO2lmKGhyPj01NTI5NiYm''@;'; + put 'put ''aHI8PTU3MzQzJiYoaHI9NjU1MzYrKCgxMDIzJmhyKTw8MTApfDEwMjMmcHQuY2hhckNvZGVBdCgrK1h0KSksaHI8PTEyNyl7aWYoUHQ+PWEpYnJlYWs7SXRbUHQrK109aHJ9ZWxzZSBpZihocjw9MjA0Nyl7aWYoUHQrMT49YSlicmVhaztJdFtQdCsrXT0xOTJ8aHI+PjYsSXRbUHQrK109MTI4''@;'; + put 'put ''fDYzJmhyfWVsc2UgaWYoaHI8PTY1NTM1KXtpZihQdCsyPj1hKWJyZWFrO0l0W1B0KytdPTIyNHxocj4+MTIsSXRbUHQrK109MTI4fGhyPj42JjYzLEl0W1B0KytdPTEyOHw2MyZocn1lbHNlIGlmKGhyPD0yMDk3MTUxKXtpZihQdCszPj1hKWJyZWFrO0l0W1B0KytdPTI0MHxocj4+MTgsSXRb''@;'; + put 'put ''UHQrK109MTI4fGhyPj4xMiY2MyxJdFtQdCsrXT0xMjh8aHI+PjYmNjMsSXRbUHQrK109MTI4fDYzJmhyfWVsc2UgaWYoaHI8PTY3MTA4ODYzKXtpZihQdCs0Pj1hKWJyZWFrO0l0W1B0KytdPTI0OHxocj4+MjQsSXRbUHQrK109MTI4fGhyPj4xOCY2MyxJdFtQdCsrXT0xMjh8aHI+PjEyJjYz''@;'; + put 'put ''LEl0W1B0KytdPTEyOHxocj4+NiY2MyxJdFtQdCsrXT0xMjh8NjMmaHJ9ZWxzZXtpZihQdCs1Pj1hKWJyZWFrO0l0W1B0KytdPTI1Mnxocj4+MzAsSXRbUHQrK109MTI4fGhyPj4yNCY2MyxJdFtQdCsrXT0xMjh8aHI+PjE4JjYzLEl0W1B0KytdPTEyOHxocj4+MTImNjMsSXRbUHQrK109MTI4''@;'; + put 'put ''fGhyPj42JjYzLEl0W1B0KytdPTEyOHw2MyZocn19cmV0dXJuIEl0W1B0XT0wLFB0LWl0fWZ1bmN0aW9uIFFlKHB0LEl0LFB0KXtyZXR1cm4gUGUocHQsdHQsSXQsUHQpfWZ1bmN0aW9uICRlKHB0KXtmb3IodmFyIEl0PTAsUHQ9MDtQdDxwdC5sZW5ndGg7KytQdCl7dmFyIGZlPXB0LmNoYXJD''@;'; + put 'put ''b2RlQXQoUHQpO2ZlPj01NTI5NiYmZmU8PTU3MzQzJiYoZmU9NjU1MzYrKCgxMDIzJmZlKTw8MTApfDEwMjMmcHQuY2hhckNvZGVBdCgrK1B0KSksZmU8PTEyNz8rK0l0Okl0Kz1mZTw9MjA0Nz8yOmZlPD02NTUzNT8zOmZlPD0yMDk3MTUxPzQ6ZmU8PTY3MTA4ODYzPzU6Nn1yZXR1cm4gSXR9''@;'; + put 'put ''ZnVuY3Rpb24gd3QocHQpe3ZhciBJdD0kZShwdCkrMSxQdD16cChJdCk7cmV0dXJuIFB0JiZQZShwdCxfdCxQdCxJdCksUHR9ZnVuY3Rpb24gdnQocHQpe3JldHVybiBwdC5yZXBsYWNlKC9fX1pbXHdcZF9dKy9nLGZ1bmN0aW9uKFB0KXtyZXR1cm4gUHQ9PVB0P1B0OlB0KyIgWyIrUHQrIl0i''@;'; + put 'put ''fSl9ZnVuY3Rpb24gQXQoKXt2YXIgcHQ9bmV3IEVycm9yO2lmKCFwdC5zdGFjayl7dHJ5e3Rocm93IG5ldyBFcnJvcigwKX1jYXRjaChJdCl7cHQ9SXR9aWYoIXB0LnN0YWNrKXJldHVybiIobm8gc3RhY2sgdHJhY2UgYXZhaWxhYmxlKSJ9cmV0dXJuIHB0LnN0YWNrLnRvU3RyaW5nKCl9ZnVu''@;'; + put 'put ''Y3Rpb24gaHQoKXt2YXIgcHQ9QXQoKTtyZXR1cm4gWi5leHRyYVN0YWNrVHJhY2UmJihwdCs9IlxuIitaLmV4dHJhU3RhY2tUcmFjZSgpKSx2dChwdCl9InVuZGVmaW5lZCIhPXR5cGVvZiBUZXh0RGVjb2RlciYmbmV3IFRleHREZWNvZGVyKCJ1dGYtMTZsZSIpO3ZhciBvbixfdCx0dCxldCxM''@;'; + put 'put ''dCxmdCxIdCx5dCxqdCxRdCxnbixkbix5bixsbixCdD0xNjM4NDtmdW5jdGlvbiBHZSgpe1ouSEVBUDg9X3Q9bmV3IEludDhBcnJheShvbiksWi5IRUFQMTY9ZXQ9bmV3IEludDE2QXJyYXkob24pLFouSEVBUDMyPUx0PW5ldyBJbnQzMkFycmF5KG9uKSxaLkhFQVBVOD10dD1uZXcgVWludDhB''@;'; + put 'put ''cnJheShvbiksWi5IRUFQVTE2PW5ldyBVaW50MTZBcnJheShvbiksWi5IRUFQVTMyPW5ldyBVaW50MzJBcnJheShvbiksWi5IRUFQRjMyPWZ0PW5ldyBGbG9hdDMyQXJyYXkob24pLFouSEVBUEY2ND1IdD1uZXcgRmxvYXQ2NEFycmF5KG9uKX1mdW5jdGlvbiBObigpe2YyKCJDYW5ub3QgZW5s''@;'; + put 'put ''YXJnZSBtZW1vcnkgYXJyYXlzLiBFaXRoZXIgKDEpIGNvbXBpbGUgd2l0aCAgLXMgVE9UQUxfTUVNT1JZPVggIHdpdGggWCBoaWdoZXIgdGhhbiB0aGUgY3VycmVudCB2YWx1ZSAiK3NyKyIsICgyKSBjb21waWxlIHdpdGggIC1zIEFMTE9XX01FTU9SWV9HUk9XVEg9MSAgd2hpY2ggYWxsb3dz''@;'; + put 'put ''IGluY3JlYXNpbmcgdGhlIHNpemUgYXQgcnVudGltZSBidXQgcHJldmVudHMgc29tZSBvcHRpbWl6YXRpb25zLCAoMykgc2V0IE1vZHVsZS5UT1RBTF9NRU1PUlkgdG8gYSBoaWdoZXIgdmFsdWUgYmVmb3JlIHRoZSBwcm9ncmFtIHJ1bnMsIG9yICg0KSBpZiB5b3Ugd2FudCBtYWxsb2MgdG8g''@;'; + put 'put ''cmV0dXJuIE5VTEwgKDApIGluc3RlYWQgb2YgdGhpcyBhYm9ydCwgY29tcGlsZSB3aXRoICAtcyBBQk9SVElOR19NQUxMT0M9MCAiKX1mdW5jdGlvbiBibigpe05uKCl9eXQ9UXQ9Z249ZG49eW49bG49MCxqdD0hMTt2YXIgZXI9Wi5UT1RBTF9TVEFDS3x8NTI0Mjg4MCxzcj1aLlRPVEFMX01F''@;'; + put 'put ''TU9SWXx8MTY3NzcyMTY7ZnVuY3Rpb24gWG4oKXtyZXR1cm4gc3J9aWYoc3I8ZXImJloucHJpbnRFcnIoIlRPVEFMX01FTU9SWSBzaG91bGQgYmUgbGFyZ2VyIHRoYW4gVE9UQUxfU1RBQ0ssIHdhcyAiK3NyKyIhIChUT1RBTF9TVEFDSz0iK2VyKyIpIiksWi5idWZmZXI/b249Wi5idWZmZXI6''@;'; + put 'put ''KG9uPW5ldyBBcnJheUJ1ZmZlcihzciksWi5idWZmZXI9b24pLEdlKCksTHRbMF09MTY2ODUwOTAyOSxldFsxXT0yNTQ1OSwxMTUhPT10dFsyXXx8OTkhPT10dFszXSl0aHJvdyJSdW50aW1lIGVycm9yOiBleHBlY3RlZCB0aGUgc3lzdGVtIHRvIGJlIGxpdHRsZS1lbmRpYW4hIjtmdW5jdGlv''@;'; + put 'put ''biBGcihwdCl7Zm9yKDtwdC5sZW5ndGg+MDspe3ZhciBJdD1wdC5zaGlmdCgpO2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBJdCl7dmFyIFB0PUl0LmZ1bmM7Im51bWJlciI9PXR5cGVvZiBQdD92b2lkIDA9PT1JdC5hcmc/Wi5keW5DYWxsX3YoUHQpOlouZHluQ2FsbF92aShQdCxJdC5hcmcpOlB0''@;'; + put 'put ''KHZvaWQgMD09PUl0LmFyZz9udWxsOkl0LmFyZyl9ZWxzZSBJdCgpfX12YXIgeHI9W10scXQ9W10scHI9W10sbnI9W10sQW49W10scW49ITE7ZnVuY3Rpb24gcG4oKXtpZihaLnByZVJ1bilmb3IoImZ1bmN0aW9uIj09dHlwZW9mIFoucHJlUnVuJiYoWi5wcmVSdW49W1oucHJlUnVuXSk7Wi5w''@;'; + put 'put ''cmVSdW4ubGVuZ3RoOyl3bihaLnByZVJ1bi5zaGlmdCgpKTtGcih4cil9ZnVuY3Rpb24gS24oKXtxbnx8KHFuPSEwLEZyKHF0KSl9ZnVuY3Rpb24gTnQoKXtGcihwcil9ZnVuY3Rpb24gc24oKXtGcihucil9ZnVuY3Rpb24gVW4oKXtpZihaLnBvc3RSdW4pZm9yKCJmdW5jdGlvbiI9PXR5cGVv''@;'; + put 'put ''ZiBaLnBvc3RSdW4mJihaLnBvc3RSdW49W1oucG9zdFJ1bl0pO1oucG9zdFJ1bi5sZW5ndGg7KXRuKFoucG9zdFJ1bi5zaGlmdCgpKTtGcihBbil9ZnVuY3Rpb24gd24ocHQpe3hyLnVuc2hpZnQocHQpfWZ1bmN0aW9uIHRuKHB0KXtBbi51bnNoaWZ0KHB0KX1mdW5jdGlvbiB6bihwdCxJdCl7''@;'; + put 'put ''X3Quc2V0KHB0LEl0KX1mdW5jdGlvbiBUcihwdCxJdCxQdCl7Zm9yKHZhciBmZT0wO2ZlPHB0Lmxlbmd0aDsrK2ZlKV90W0l0Kys+PjBdPXB0LmNoYXJDb2RlQXQoZmUpO1B0fHwoX3RbSXQ+PjBdPTApfSghTWF0aC5pbXVsfHwtNSE9PU1hdGguaW11bCg0Mjk0OTY3Mjk1LDUpKSYmKE1hdGgu''@;'; + put 'put ''aW11bD1mdW5jdGlvbihJdCxQdCl7dmFyIGl0PTY1NTM1Jkl0LFh0PTY1NTM1JlB0O3JldHVybiBpdCpYdCsoKEl0Pj4+MTYpKlh0K2l0KihQdD4+PjE2KTw8MTYpfDB9KSxNYXRoLmltdWw9TWF0aC5pbXVsLE1hdGguY2x6MzJ8fChNYXRoLmNsejMyPWZ1bmN0aW9uKHB0KXtwdD4+Pj0wO2Zv''@;'; + put 'put ''cih2YXIgSXQ9MDtJdDwzMjtJdCsrKWlmKHB0JjE8PDMxLUl0KXJldHVybiBJdDtyZXR1cm4gMzJ9KSxNYXRoLmNsejMyPU1hdGguY2x6MzIsTWF0aC50cnVuY3x8KE1hdGgudHJ1bmM9ZnVuY3Rpb24ocHQpe3JldHVybiBwdDwwP01hdGguY2VpbChwdCk6TWF0aC5mbG9vcihwdCl9KSxNYXRo''@;'; + put 'put ''LnRydW5jPU1hdGgudHJ1bmM7dmFyIEJuPU1hdGguYWJzLEluPShNYXRoLE1hdGgsTWF0aCxNYXRoLE1hdGgsTWF0aCxNYXRoLE1hdGgsTWF0aCxNYXRoLnNxcnQpLEpuPU1hdGguY2VpbCxvcj1NYXRoLmZsb29yLGdyPU1hdGgucG93LFJyPShNYXRoLE1hdGgsTWF0aCxNYXRoLm1pbiksbjA9''@;'; + put 'put ''KE1hdGgsTWF0aCxNYXRoLDApLGQwPW51bGwsbTA9bnVsbDtmdW5jdGlvbiBEaShwdCl7bjArKyxaLm1vbml0b3JSdW5EZXBlbmRlbmNpZXMmJloubW9uaXRvclJ1bkRlcGVuZGVuY2llcyhuMCl9ZnVuY3Rpb24gVzAocHQpe2lmKG4wLS0sWi5tb25pdG9yUnVuRGVwZW5kZW5jaWVzJiZaLm1v''@;'; + put 'put ''bml0b3JSdW5EZXBlbmRlbmNpZXMobjApLDA9PW4wJiYobnVsbCE9PWQwJiYoY2xlYXJJbnRlcnZhbChkMCksZDA9bnVsbCksbTApKXt2YXIgSXQ9bTA7bTA9bnVsbCxJdCgpfX1aLnByZWxvYWRlZEltYWdlcz17fSxaLnByZWxvYWRlZEF1ZGlvcz17fTt2YXIgRW89bnVsbCxxbz0iZGF0YTph''@;'; + put 'put ''cHBsaWNhdGlvbi9vY3RldC1zdHJlYW07YmFzZTY0LCI7ZnVuY3Rpb24gY2EocHQpe3JldHVybiBTdHJpbmcucHJvdG90eXBlLnN0YXJ0c1dpdGg/cHQuc3RhcnRzV2l0aChxbyk6MD09PXB0LmluZGV4T2YocW8pfXZhciBsbD1bZnVuY3Rpb24ocHQsSXQpe3ZhciBQdD1GKHB0KSxmZT1GKEl0''@;'; + put 'put ''KTt2bi5jcmVhdGVQYXRoKCIvIixVMC5kaXJuYW1lKFB0KSksdm4ud3JpdGVGaWxlKFUwLmpvaW4oIi8iLFB0KSxmZSl9XTtmdW5jdGlvbiBRaShwdCxJdCxQdCl7cmV0dXJuIGxsW3B0XShJdCxQdCl9eXQ9VGUrMTk3MjMyLHF0LnB1c2goKSxFbz0iZGF0YTphcHBsaWNhdGlvbi9vY3RldC1z''@;'; + put 'put ''dHJlYW07YmFzZTY0LEFBQUFBQUFBOEQ4QUFBQUFBQUR3UHdBQUFBQUFBUEEvQUFBQUFBQUE4RDhBQUFBQUFBRHdQd0FBQUFBQUFQQS9BQUFBQUFBQThEOEFBQUFBQUFEd1B3QUFBQUFBQVBBL0FBQUFBQUFBOEQ4QUFBQUFBQUR3UHdBQUFBQUFBUEEvQUNBQUFBQUFBQUFBQUFBQUFBQUFBQUFB''@;'; + put 'put ''QUFBQUFBQUFCUUFBQUFBQUFBQUFJTUVBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQkFBQUFBQUFBQUFBQUFBUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCU1FBQUFBQUFBQUZKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB''@;'; + put 'put ''QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFGSkFBQUFBQUFBQVVrQUFJTUVBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRkFBQUFBQUFBQUFBQUFBUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCU1FBQUFBQUFBQUZKQUFB''@;'; + put 'put ''QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFGSkFBQUFBQUFBQVVrQUNFQUFBQUFBQUFBQUFBQUFBQUJCQW9DOEFBQWdBQUFBQkFBQUFBQUFBQUFJUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB''@;'; + put 'put ''QUFBQUFBQUFBQUlDV1FBQUFBQUFBZ0paQUJKRERBQUFBQUFBQUFBQUFBQUFRUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBV0VBQUFBQUFBQUJZUUFBQURBQUFBQUFBQUFBQUFBQUFBQUFB''@;'; + put 'put ''QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCWVFBQUFBQUFBQUZoQUFBQUFBQUFBQUFBQUFBQUFBQUFRUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBVWtBQUFBQUFB''@;'; + put 'put ''QUJTUUFBZ0F3SUFBQUFBQUFBQUFBQUFFRUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFZQUFBQUFBQUFBQUFBQUFBQUFCQ1FBQUFBQUFBQUVKQUFBQUFBQUFnZzBBQUFBQUFBTUNJUUFBQUFBQUFBRkpBQUFBQUFBQUFVa0FBQUFBQUFBQUFBQUFBQUFBQUFFSkFBQUFBQUFBQVFrQUFBQUFBQUNDRFFB''@;'; + put 'put ''QUFBQUFBd0loQUFBQUFBQUFBVWtBQUFBQUFBQUJTUUFDd3dRQUFBQUFBQUFBQUFBQUFFRUJBTmdBQWt3QUFBQUVBQUFBQUFBQUFRQUVBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRkpBQUFBQUFBQUFVa0FBRUFBQ0FBQUFBQUFBQUFB''@;'; + put 'put ''QUFCQkFBQUFBQUFBQUFBQUZBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQllRQUFBQUFBQUFGaEFBTERCQUFBQUFBQUFBQUFBQUFBQUFCdzZBQUFRQUFBQUFRQUFBQUFBQUFBQUFRQUFBQUFBQUFBQUFBQUFBQUFB''@;'; + put 'put ''QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVdFQUFBQUFBQUFCWVFFQWdQZ01BQUFBQUFBQUFBQUFBRUVBa093QUFlZ0FBQUFFQUFBQUFBQUFBQUFFQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUZKQUFBQUFB''@;'; + put 'put ''QUFBVWtBQUFBQUFBQUFBQUFBQUFBQUFBQkJBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJTUUFBQUFBQUFBRkpBLy8vLy8vLy83My8vLy8vLy8vL3ZmLy8vLy8vLy8rLy8vLy8vLy8vLzcv''@;'; + put 'put ''OEFBQUFBQUFENFB6TXpNek16TTlNL1BBQUFBQUFBQUFDYW1abVptWm1wUHdFQUFBQUFBQUFBQVFBQUFBQUFBQUFBQUFBQUFBRHdQd0VBQUFBQUFBQUFBZ0FBQUFBQUFBQUFBQUFBQUFEd1B3SUFBQUFBQUFBQUF3QUFBQUFBQUFBQUFBQUFBQURnUHdNQUFBQUFBQUFBQkFBQUFBQUFBQUFBQUFB''@;'; + put 'put ''QUFBRHdQd1FBQUFBQUFBQUFCUUFBQUFBQUFBQXpNek16TXpQelB3VUFBQUFBQUFBQUJnQUFBQUFBQUFDYW1abVptWm5wUHdZQUFBQUFBQUFBQndBQUFBQUFBQUFBQUFBQUFBRHdQd2NBQUFBQUFBQUFDQUFBQUFBQUFBQUFBQUFBQUFEZ1B3Z0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB''@;'; + put 'put ''QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFFQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUVBQUFBRUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFFQUFBQUFBQUFBQUFBQUFBQUFB''@;'; + put 'put ''QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRUFBQUFCQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFRQUFBQUVBQUFBQkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB''@;'; + put 'put ''QUFBQUFBQUFFQUFBQUJBQUFBQUFBQUFBQUFBQUFBQUFBQU16TXpNek16MDc4QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRUFBQUFEQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB''@;'; + put 'put ''QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFFQUFBQUVBQUFBQUFBQUFBQUFBQUFBZ0VaQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRUFBQUFFQUFBQUFBQUFBQUFBQUFBQUFBQUFtcG1abVptWjJiOEFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUVB''@;'; + put 'put ''QUFBRUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUF6TXpNek16UGpQd0FBQUFBQUFBQUFBQUFBQUFFQUFBQUZBQUFBQUFBQUFBQUFBQUFBQUFBQWV4U3VSK0Y2NUw4QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRUFBQUFGQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB''@;'; + put 'put ''QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUVBQUFBR0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFFQUFBQUhBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRUFBQUFJQUFBQUFB''@;'; + put 'put ''QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUVBQUFBRUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFFQUFBQUFBQUFBQUFFQUFBQUVBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB''@;'; + put 'put ''QUFBSUFBQUFBQUFBQUFBRUFBQUFFQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU1BQUFBQUFBQUFBQUVBQUFBRUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFRQUFBQUFBQUFBQUFFQUFBQUVBQUFBQUFBQUFBQUFBQUFB''@;'; + put 'put ''QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBVUFBQUFBQUFBQUFBRUFBQUFUQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQnI0VlFBQUFRQUFBQUVBQUFBRUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB''@;'; + put 'put ''UUFBQUFJQUFBQUJBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBSUFBQUFJQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU1BQUFBSUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB''@;'; + put 'put ''QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFFQUFBQURBQUFBQUFBQUFBQUFBQUFBZ0daQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRUFBQUFFQUFBQUFBQUFBQUFBQUFBQWdHWkFtcG1abVptWjJiOEFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUVBQUFB''@;'; + put 'put ''RkFBQUFBQUFBQUFBQUFBQUFnR1pBZXhTdVIrRjY1TDhBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFFQUFBQUVBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRUFBQUFBQUFBQUFBQUFBRUFBQUFFQUFBQUFBQUFBQUFBQUFBQWdFWkFBQUFBQUFBQUFBQUFBQUFB''@;'; + put 'put ''QUFBQUFCZ0FBQUFBQUFBQUFRQUFBQUVBQUFBRUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQWdBQUFBQUFBQUFBUUFBQUFFQUFBQUJBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJnQUFBQUFBQUFBQUFBQUFBRUFBQUFFQUFBQUFBQUFB''@;'; + put 'put ''QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVlBQUFBQUFBQUFBQUVBQUFBRUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFjQUFBQUFBQUFBQUFFQUFBQUVBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB''@;'; + put 'put ''Z0FBQUFBQUFBQUFBRUFBQUFFQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQWtBQUFBQUFBQUFBQUVBQUFBRUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJFQUFBQUFBQUFBQUFFQUFBQUVBQUFBQUFBQUFBQUFBQUFBQUFB''@;'; + put 'put ''QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCSUFBQUFBQUFBQUFBRUFBQUFFQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQk1BQUFBQUFBQUFBQUVBQUFBRUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJRQUFBQUFBQUFB''@;'; + put 'put ''QUFFQUFBQUVBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCVUFBQUFBQUFBQUFBRUFBQUFFQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQW9BQUFBQUFBQUFBQUVBQUFBRUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB''@;'; + put 'put ''QUFBQUFBQUFBQUFBQUFBQUFzQUFBQUFBQUFBQUFFQUFBQUVBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBd0FBQUFBQUFBQUFBRUFBQUFFQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQTBBQUFBQUFBQUFBQUVBQUFBRUFB''@;'; + put 'put ''QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUE0QUFBQUFBQUFBQUFFQUFBQUVBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBOEFBQUFBQUFBQUFBRUFBQUFFQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB''@;'; + put 'put ''QUFBQUFBQkFBQUFBQUFBQUFBQUVBQUFBRUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJZQUFBQUFBQUFBQUFFQUFBQUVBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCZ0FBQUFBQUFBQUFBRUFBQUFFQUFBQUFBQUFBQUFB''@;'; + put 'put ''QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQmNBQUFBQUFBQUFBQUVBQUFBRUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJrQUFBQUFBQUFBQUFFQUFBQUtBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRHdW''@;'; + put 'put ''UUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFQQy9BQUFBQUFBQUFRQUFBQUFBQUFBQUFBQUFBQUFBQU5BL0FBQUFBQUFBMEQ4QUFBQUFBQURRUHdBQUFBQUFBTkEvQUFBQUFBQUEwRDhBQUFBQUFBRFFQd0FBQUFBQUFOQS9BQUFBQUFBQTBEOEFBQUFBQUFEUVB3QUFBQUFBQU5BL0FB''@;'; + put 'put ''QUFBQUFBMEQ4QUFBQUFBQURRUHdBQUFBQUFBTkEvQUFBQUFBQUEwRDhBQUFBQUFBRFFQd0FBQUFBQUFOQS9BQUFBQUFBQTBEOEFBQUFBQUFEUVB3QUFBQUFBQU5BL0FBQUFBQUFBMEQ4QUFBQUFBQURRUHdBQUFBQUFBTkEvQUFBQUFBQUEwRDhBQUFBQUFBRFFQd0FBQUFBQUFOQS9BQUFBQUFB''@;'; + put 'put ''QTBEOEFBQUFBQUFEUVB3QUFBQUFBQU5BL0FBQUFBQUFBMEQ4QUFBQUFBQURRUHdBQUFBQUFBTkEvQUFBQUFBQUEwRDhBQUFBQUFBRFFQMWlvTmMwN1R0VS9KWFVDbWdnYjJqOEFBQUFBQUFEZ1B3QUFBQUFBQU9BL0xOU2E1aDJuNmo5cTNuR0tqdVRvUDFpb05jMDdUdFUvV0tnMXpUdE8xVDlZ''@;'; + put 'put ''cURYTk8wN1ZQd0FBQUFBQUFPQS9YZHhHQTNnTDRqOEFBQUFBQUFEUVAxaW9OYzA3VHRVL0FBQUFBQUFBMEQvVHZPTVVIY25SUHdBQUFBQUFBT0EvQUFBQUFBQUE0RDhBQUFBQUFBRGdQd0FBQUFBQUFPQS9BQUFBQUFBQTREOEFBQUFBQUFEZ1B3QUFBQUFBQU9BL0FBQUFBQUFBNEQ4QUFBQUFB''@;'; + put 'put ''QURnUHdBQUFBQUFBT0EvMDd6akZCM0owVC9Udk9NVUhjblJQMTNjUmdONEMrSS9YZHhHQTNnTDRqOWQzRVlEZUF2aVB3MXhySXZiYU53L1pGM2NSZ040N1QvU2IxOEh6aG5uUHhCNk5xcytWK1UvRUhvMnF6NVg1VC9TYjE4SHpobm5QM2dMSkNoK2pPTS90Ulg3eSs3SjRUL1NiMThIemhublA5''@;'; + put 'put ''SnZYd2ZPR2VjL1dLZzF6VHRPMVQrSWhWclR2T1BZUDlKdlh3Zk9HZWMvZUFza0tINk00ei9FUXExcDNuSHNQOUp2WHdmT0dlYy8wbTlmQjg0WjV6KzFGZnZMN3NuaFA5SnZYd2ZPR2VjL0VIbzJxejVYNVQrMUZmdkw3c25oUDNnTEpDaCtqT00vMG05ZkI4NFo1ei9TYjE4SHpobm5QNFk0MXNW''@;'; + put 'put ''dE5PNC8wbTlmQjg0WjV6L1NiMThIemhublAzZ0xKQ2grak9NL1dLZzF6VHRPMVQvVHZPTVVIY25SUDFpb05jMDdUdFUvcGdwR0pYVUMzajhBQUFBQUFBRGdQMWlvTmMwN1R0VS9EWEdzaTl0bzNEOEFBQUFBQUFEZ1B3MXhySXZiYU53L0FBQUFBQUFBNEQ4TmNheUwyMmpjUDFpb05jMDdUdFUv''@;'; + put 'put ''QUFBQUFBQUE0RDhBQUFBQUFBRGdQOU84NHhRZHlkRS8wN3pqRkIzSjBUOEFBQUFBQUFEZ1A5Tzg0eFFkeWRFL2F0NXhpbzdrNkQ4QUFBQUFBQURnUHdBQUFBQUFBT0EvQUFBQUFBQUE0RDhBQUFBQUFBRGdQMWlvTmMwN1R0VS9pSVZhMDd6ajJEL1R2T01VSGNuUlB3QUFBQUFBQU9BL0FBQUFB''@;'; + put 'put ''QUFBNEQvU2IxOEh6aG5uUHdBQUFBQUFBT0EvQUFBQUFBQUE0RDhOY2F5TDIyamNQL1JzVm4ydXR0NC9FVFk4dlZLV3lULzBiRlo5cnJiZVB6c0JUWVFOVCtFL0FBQUFBQUFBMEQ4QUFBQUFBQURRUHdBQUFBQUFBTkEvQUFBQUFBQUEwRDhBQUFBQUFBRFFQd0FBQUFBQUFOQS9BQUFBQUFBQTBE''@;'; + put 'put ''OEFBQUFBQUFEUVB3QUFBQUFBQU5BL0FBQUFBQUFBMEQ4QUFBQUFBQURRUHdBQUFBQUFBTkEvQUFBQUFBQUEwRDhBQUFBQUFBRFFQd0FBQUFBQUFOQS9BQUFBQUFBQTBEOEFBQUFBQUFEUVB3QUFBQUFBQU5BL0FBQUFBQUFBMEQ4QUFBQUFBQURRUHdBQUFBQUFBTkEvQUFBQUFBQUEwRDhBQUFB''@;'; + put 'put ''QUFBRFFQd0FBQUFBQUFOQS9BQUFBQUFBQTBEOEFBQUFBQUFEUVB3QUFBQUFBQU5BL0FBQUFBQUFBMEQ4QUFBQUFBQURRUHdBQUFBQUFBTkEvQUFBQUFBQUEwRDhBQUFBQUFBRFFQd0FBQUFBQUFOQS9BQUFBQUFBQTBEOVlxRFhOTzA3VlB3QUFBQUFBQU9BL0FBQUFBQUFBNEQ4KzZObXMrbHpG''@;'; + put 'put ''UHdBQUFBQUFBT0EvQUFBQUFBQUE0RDhBQUFBQUFBRGdQd0FBQUFBQUFPQS9nbk5HbFBZR3h6OE5jYXlMMjJqY1B3QUFBQUFBQU9BL1dLZzF6VHRPMVQ5WXFEWE5PMDdWUDdVVis4dnV5ZUUvdFJYN3krN0o0VDhBQUFBQUFBRFFQd0FBQUFBQUFPQS9BQUFBQUFBQTREOEFBQUFBQUFEZ1B3QUFB''@;'; + put 'put ''QUFBQU5BL0FBQUFBQUFBMEQ4SDhCWklVUHpjUDZLME4vakNaTlkvV0tnMXpUdE8xVDhOY2F5TDIyamNQdzF4ckl2YmFOdy9BQUFBQUFBQTREOEFBQUFBQUFEd1B3QUFBQUFBQVBBL0FBQUFBQUFBMEQ4TmNheUwyMmpjUHdBQUFBQUFBTkEvV0tnMXpUdE8xVDlZcURYTk8wN1ZQMWlvTmMwN1R0''@;'; + put 'put ''VS9XS2cxelR0TzFUOVlxRFhOTzA3VlAxaW9OYzA3VHRVL1dLZzF6VHRPMVQ5WXFEWE5PMDdWUHdBQUFBQUFBTkEvV0tnMXpUdE8xVDlZcURYTk8wN1ZQd0FBQUFBQUFOQS9XS2cxelR0TzFUOVlxRFhOTzA3VlAxaW9OYzA3VHRVL0FBQUFBQUFBOEQ4QUFBQUFBQURRUHdBQUFBQUFBTkEvQUFB''@;'; + put 'put ''QUFBQUEwRDhBQUFBQUFBRFFQd0FBQUFBQUFOQS9BQUFBQUFBQTBEOEFBQUFBQUFEUVB3QUFBQUFBQU5BL0FBQUFBQUFBMEQ4QUFBQUFBQURRUHdBQUFBQUFBTkEvQUFBQUFBQUEwRDhBQUFBQUFBRFFQd0FBQUFBQUFOQS9BQUFBQUFBQTBEOEFBQUFBQUFEUVA4UkNyV25lY2V3L0FBQUFBQUFB''@;'; + put 'put ''MEQ5LzJUMTVXS2pSUHdBQUFBQUFBTkEvQUFBQUFBQUEwRDhBQUFBQUFBRFFQd0FBQUFBQUFOQS9lQXNrS0g2TTR6L1NiMThIemhublA4UkNyV25lY2V3L0UvSkJ6MmJWMHo4QUFBQUFBQURRUHdBQUFBQUFBTkEvQUFBQUFBQUEwRDhBQUFBQUFBRFFQd0FBQUFBQUFOQS9FSG8ycXo1WDVUOEFB''@;'; + put 'put ''QUFBQUFEUVB3QUFBQUFBQU5BL0FBQUFBQUFBMEQvVHZPTVVIY25SUHdBQUFBQUFBTkEvQUFBQUFBQUEwRC9Udk9NVUhjblJQd0FBQUFBQUFPQS8wbTlmQjg0WjV6OEFBQUFBQUFEZ1B3QUFBQUFBQU5BL0FBQUFBQUFBMEQ4QUFBQUFBQURRUHdBQUFBQUFBTkEvVWRvYmZHRXk0ejlSMmh0OFlU''@;'; + put 'put ''TGpQMUhhRzN4aE11TS9VZG9iZkdFeTR6OVIyaHQ4WVRMalAxSGFHM3hoTXVNL1Vkb2JmR0V5NHo5UjJodDhZVExqUDFIYUczeGhNdU0vVWRvYmZHRXk0ejlSMmh0OFlUTGpQMUhhRzN4aE11TS9VZG9iZkdFeTR6OVIyaHQ4WVRMalAxSGFHM3hoTXVNL1Vkb2JmR0V5NHo5UjJodDhZVExqUDFI''@;'; + put 'put ''YUczeGhNdU0vVWRvYmZHRXk0ejlSMmh0OFlUTGpQMUhhRzN4aE11TS9VZG9iZkdFeTR6OVIyaHQ4WVRMalAxSGFHM3hoTXVNL1Vkb2JmR0V5NHo5UjJodDhZVExqUDFIYUczeGhNdU0vVWRvYmZHRXk0ejlSMmh0OFlUTGpQMUhhRzN4aE11TS9VZG9iZkdFeTR6OVIyaHQ4WVRMalAxSGFHM3ho''@;'; + put 'put ''TXVNL1Vkb2JmR0V5NHo5UjJodDhZVExqUDFIYUczeGhNdU0vVWRvYmZHRXk0ejlSMmh0OFlUTGpQMUhhRzN4aE11TS9VZG9iZkdFeTR6OVIyaHQ4WVRMalAxSGFHM3hoTXVNL1Vkb2JmR0V5NHo5UjJodDhZVExqUDFIYUczeGhNdU0vVWRvYmZHRXk0ejlSMmh0OFlUTGpQMUhhRzN4aE11TS9V''@;'; + put 'put ''ZG9iZkdFeTR6OVIyaHQ4WVRMalAxSGFHM3hoTXVNL1Vkb2JmR0V5NHo5UjJodDhZVExqUDFIYUczeGhNdU0vVWRvYmZHRXk0ejlSMmh0OFlUTGpQMUhhRzN4aE11TS9VZG9iZkdFeTR6OVIyaHQ4WVRMalAxSGFHM3hoTXVNL1Vkb2JmR0V5NHo5UjJodDhZVExqUDFIYUczeGhNdU0vVWRvYmZH''@;'; + put 'put ''RXk0ejlSMmh0OFlUTGpQMUhhRzN4aE11TS9VZG9iZkdFeTR6OVIyaHQ4WVRMalAxSGFHM3hoTXVNL1Vkb2JmR0V5NHo5UjJodDhZVExqUDFIYUczeGhNdU0vVWRvYmZHRXk0ejlSMmh0OFlUTGpQMUhhRzN4aE11TS9VZG9iZkdFeTR6OVIyaHQ4WVRMalAxSGFHM3hoTXVNL1Vkb2JmR0V5NHo5''@;'; + put 'put ''UjJodDhZVExqUDFIYUczeGhNdU0vVWRvYmZHRXk0ejlSMmh0OFlUTGpQMUhhRzN4aE11TS9VZG9iZkdFeTR6OVIyaHQ4WVRMalAxSGFHM3hoTXVNL1Vkb2JmR0V5NHo5UjJodDhZVExqUDFIYUczeGhNdU0vVWRvYmZHRXk0ejlSMmh0OFlUTGpQMUhhRzN4aE11TS9VZG9iZkdFeTR6OVIyaHQ4''@;'; + put 'put ''WVRMalAxSGFHM3hoTXVNL1Vkb2JmR0V5NHo5UjJodDhZVExqUDFIYUczeGhNdU0vVWRvYmZHRXk0ejlSMmh0OFlUTGpQMUhhRzN4aE11TS9VZG9iZkdFeTR6OVIyaHQ4WVRMalAxSGFHM3hoTXVNL1Vkb2JmR0V5NHo5UjJodDhZVExqUDFIYUczeGhNdU0vVWRvYmZHRXk0ejlSMmh0OFlUTGpQ''@;'; + put 'put ''MUhhRzN4aE11TS9VZG9iZkdFeTR6OVIyaHQ4WVRMalAxSGFHM3hoTXVNL1Vkb2JmR0V5NHo5UjJodDhZVExqUDFIYUczeGhNdU0vVWRvYmZHRXk0ejlSMmh0OFlUTGpQMUhhRzN4aE11TS9VZG9iZkdFeTR6OVIyaHQ4WVRMalAxSGFHM3hoTXVNL1Vkb2JmR0V5NHo5UjJodDhZVExqUDFIYUcz''@;'; + put 'put ''eGhNdU0vVWRvYmZHRXk0ejlSMmh0OFlUTGpQMUhhRzN4aE11TS9VZG9iZkdFeTR6OVIyaHQ4WVRMalAxSGFHM3hoTXVNL1Vkb2JmR0V5NHo5UjJodDhZVExqUDFIYUczeGhNdU0vVWRvYmZHRXk0ejlSMmh0OFlUTGpQMUhhRzN4aE11TS9VZG9iZkdFeTR6OVIyaHQ4WVRMalAxSGFHM3hoTXVN''@;'; + put 'put ''L1Vkb2JmR0V5NHo5UjJodDhZVExqUDFIYUczeGhNdU0vVWRvYmZHRXk0ejlSMmh0OFlUTGpQMUhhRzN4aE11TS9VZG9iZkdFeTR6OVIyaHQ4WVRMalAxSGFHM3hoTXVNL1Vkb2JmR0V5NHo5UjJodDhZVExqUDFIYUczeGhNdU0vVWRvYmZHRXk0ejlSMmh0OFlUTGpQMUhhRzN4aE11TS9VZG9i''@;'; + put 'put ''ZkdFeTR6OVIyaHQ4WVRMalAxSGFHM3hoTXVNL1Vkb2JmR0V5NHo5UjJodDhZVExqUDFIYUczeGhNdU0vVWRvYmZHRXk0ejlSMmh0OFlUTGpQMUhhRzN4aE11TS9VZG9iZkdFeTR6OVIyaHQ4WVRMalAxSGFHM3hoTXVNL1Vkb2JmR0V5NHo5UjJodDhZVExqUDFIYUczeGhNdU0vVWRvYmZHRXk0''@;'; + put 'put ''ejlSMmh0OFlUTGpQMUhhRzN4aE11TS9VZG9iZkdFeTR6OVIyaHQ4WVRMalAxSGFHM3hoTXVNL1Vkb2JmR0V5NHo5UjJodDhZVExqUDFIYUczeGhNdU0vVWRvYmZHRXk0ejlSMmh0OFlUTGpQMUhhRzN4aE11TS9VZG9iZkdFeTR6OVIyaHQ4WVRMalAxSGFHM3hoTXVNL1Vkb2JmR0V5NHo5UjJo''@;'; + put 'put ''dDhZVExqUDFIYUczeGhNdU0vVWRvYmZHRXk0ejlSMmh0OFlUTGpQMUhhRzN4aE11TS9VZG9iZkdFeTR6OVIyaHQ4WVRMalAxSGFHM3hoTXVNL1Vkb2JmR0V5NHo5UjJodDhZVExqUDFIYUczeGhNdU0vVWRvYmZHRXk0ejlSMmh0OFlUTGpQMUhhRzN4aE11TS9VZG9iZkdFeTR6OVIyaHQ4WVRM''@;'; + put 'put ''alAxSGFHM3hoTXVNL1Vkb2JmR0V5NHo5UjJodDhZVExqUDFIYUczeGhNdU0vVWRvYmZHRXk0ejlSMmh0OFlUTGpQMUhhRzN4aE11TS9VZG9iZkdFeTR6OVIyaHQ4WVRMalAxSGFHM3hoTXVNL1Vkb2JmR0V5NHo5UjJodDhZVExqUDFIYUczeGhNdU0vVWRvYmZHRXk0ejlSMmh0OFlUTGpQMUhh''@;'; + put 'put ''RzN4aE11TS9VZG9iZkdFeTR6OVIyaHQ4WVRMalAxSGFHM3hoTXVNL1Vkb2JmR0V5NHo5UjJodDhZVExqUDFIYUczeGhNdU0vVWRvYmZHRXk0ejlSMmh0OFlUTGpQMUhhRzN4aE11TS9VZG9iZkdFeTR6OVIyaHQ4WVRMalAxSGFHM3hoTXVNL1Vkb2JmR0V5NHo5UjJodDhZVExqUDFIYUczeGhN''@;'; + put 'put ''dU0vVWRvYmZHRXk0ejlSMmh0OFlUTGpQMUhhRzN4aE11TS9VZG9iZkdFeTR6OVIyaHQ4WVRMalAxSGFHM3hoTXVNL1Vkb2JmR0V5NHo5UjJodDhZVExqUDFIYUczeGhNdU0vVWRvYmZHRXk0ejlSMmh0OFlUTGpQMUhhRzN4aE11TS9VZG9iZkdFeTR6OVIyaHQ4WVRMalAxSGFHM3hoTXVNL1Vk''@;'; + put 'put ''b2JmR0V5NHo5UjJodDhZVExqUDFIYUczeGhNdU0vVWRvYmZHRXk0ejlSMmh0OFlUTGpQMUhhRzN4aE11TS9VZG9iZkdFeTR6L1R2T01VSGNuUlA5Tzg0eFFkeWRFLzA3empGQjNKMFQvVHZPTVVIY25SUDlPODR4UWR5ZEUvMDd6akZCM0owVC9Udk9NVUhjblJQOU84NHhRZHlkRS8wN3pqRkIz''@;'; + put 'put ''SjBUL1R2T01VSGNuUlA5Tzg0eFFkeWRFLzA3empGQjNKMFQvVHZPTVVIY25SUDlPODR4UWR5ZEUvMDd6akZCM0owVC9Udk9NVUhjblJQOU84NHhRZHlkRS8wN3pqRkIzSjBUL1R2T01VSGNuUlA5Tzg0eFFkeWRFLzA3empGQjNKMFQvVHZPTVVIY25SUDlPODR4UWR5ZEUvMDd6akZCM0owVC9U''@;'; + put 'put ''dk9NVUhjblJQOU84NHhRZHlkRS8wN3pqRkIzSjBUL1R2T01VSGNuUlA5Tzg0eFFkeWRFLzA3empGQjNKMFQvVHZPTVVIY25SUDlPODR4UWR5ZEUvMDd6akZCM0owVC9Udk9NVUhjblJQL1JzVm4ydXR0WS90Ulg3eSs3SjRUKzFGZnZMN3NuaFA4UkNyV25lY2V3L0VIbzJxejVYNVQvMTI5ZUJj''@;'; + put 'put ''MGJNUDFpb05jMDdUdFUvV0tnMXpUdE8xVCtJaFZyVHZPUFlQd0ZOaEExUHIrSS8wN3pqRkIzSjBUOVlxRFhOTzA3VlA5Tzg0eFFkeWRFLzA3empGQjNKMFQrMUZmdkw3c25oUDdVVis4dnV5ZUUvdFJYN3krN0o0VCsxRmZ2TDdzbmhQN1VWKzh2dXllRS90Ulg3eSs3SjRUKzFGZnZMN3NuaFA3''@;'; + put 'put ''VVYrOHZ1eWVFL3RSWDd5KzdKNFQrMUZmdkw3c25oUDlPODR4UWR5ZEUvMDd6akZCM0owVDhCVFlRTlQ2L2lQd0ZOaEExUHIrSS9BVTJFRFUrdjRqKzFGZnZMN3NuaFA4eGRTOGdIUGZBL0VIbzJxejVYNVQ4UWVqYXJQbGZsUDlKdlh3Zk9HZWMvMG05ZkI4NFo1ejhRZWphclBsZmxQM2dMSkNo''@;'; + put 'put ''K2pPTS9hdDV4aW83azZEL1NiMThIemhublA5Tzg0eFFkeWRFL0FBQUFBQUFBNEQ4UWVqYXJQbGZsUDdVVis4dnV5ZUUvTE5TYTVoMm42ai9TYjE4SHpobm5QMnJlY1lxTzVPZy9FSG8ycXo1WDVUOXEzbkdLanVUb1A5SnZYd2ZPR2VjL0VIbzJxejVYNVQ5NEN5UW9mb3pqUDlKdlh3Zk9HZWMv''@;'; + put 'put ''RUhvMnF6NVg1VCtHT05iRmJUVHVQeEI2TnFzK1YrVS9FSG8ycXo1WDVUOTRDeVFvZm96alA5Tzg0eFFkeWRFLzA3empGQjNKMFQvVHZPTVVIY25SUDZZS1JpVjFBdDQvdFJYN3krN0o0VDlJdjMwZE9HZk1QN1VWKzh2dXllRS90Ulg3eSs3SjRUOEFBQUFBQUFEZ1A3VVYrOHZ1eWVFL3RSWDd5''@;'; + put 'put ''KzdKNFQvVHZPTVVIY25SUDdVVis4dnV5ZUUvdFJYN3krN0o0VDlJdjMwZE9HZk1QMGkvZlIwNFo4dy9BQUFBQUFBQTREOUl2MzBkT0dmTVB5elVtdVlkcCtvL3RSWDd5KzdKNFQrMUZmdkw3c25oUDdVVis4dnV5ZUUvdFJYN3krN0o0VDlZcURYTk8wN1ZQd0FBQUFBQUFPQS8wN3pqRkIzSjBU''@;'; + put 'put ''KzFGZnZMN3NuaFB3QUFBQUFBQU9BLzBtOWZCODRaNXo4QUFBQUFBQURnUHdBQUFBQUFBT0EvQUFBQUFBQUE0RDhDbWdnYm5sN1ZQK0MrRHB3em90QS9BcG9JRzU1ZTFUOEJUWVFOVDYvaVA5Tzg0eFFkeWRFLzA3empGQjNKMFQvVHZPTVVIY25SUDlPODR4UWR5ZEUvMDd6akZCM0owVC9Udk9N''@;'; + put 'put ''VUhjblJQOU84NHhRZHlkRS8wN3pqRkIzSjBUL1R2T01VSGNuUlA5Tzg0eFFkeWRFLzA3empGQjNKMFQvVHZPTVVIY25SUDlPODR4UWR5ZEUvMDd6akZCM0owVC9Udk9NVUhjblJQOU84NHhRZHlkRS8wN3pqRkIzSjBUL1R2T01VSGNuUlA5Tzg0eFFkeWRFLzA3empGQjNKMFQvVHZPTVVIY25S''@;'; + put 'put ''UDlPODR4UWR5ZEUvMDd6akZCM0owVC9Udk9NVUhjblJQOU84NHhRZHlkRS8wN3pqRkIzSjBUL1R2T01VSGNuUlA5Tzg0eFFkeWRFLzA3empGQjNKMFQvVHZPTVVIY25SUDlPODR4UWR5ZEUvMDd6akZCM0owVC9Udk9NVUhjblJQOU84NHhRZHlkRS9XS2cxelR0TzFUKzFGZnZMN3NuaFA3VVYr''@;'; + put 'put ''OHZ1eWVFL1B1alpyUHBjeFQrMUZmdkw3c25oUDdVVis4dnV5ZUUvdFJYN3krN0o0VCsxRmZ2TDdzbmhQeDA0WjBScGI4Zy9XS2cxelR0TzFUKzFGZnZMN3NuaFAxaW9OYzA3VHRVL1dLZzF6VHRPMVQ4QUFBQUFBQURnUHdBQUFBQUFBT0EvMDd6akZCM0owVCsxRmZ2TDdzbmhQN1VWKzh2dXll''@;'; + put 'put ''RS90Ulg3eSs3SjRUL1R2T01VSGNuUlA5Tzg0eFFkeWRFLzV4Mm42RWd1NFQraXREZjR3bVRXUDBpL2ZSMDRaOHcvV0tnMXpUdE8xVDlZcURYTk8wN1ZQN1VWKzh2dXllRS9BQUFBQUFBQThEOEFBQUFBQUFEd1A5Tzg0eFFkeWRFL2VBc2tLSDZNNHovVHZPTVVIY25SUDFpb05jMDdUdFUvV0tn''@;'; + put 'put ''MXpUdE8xVDlZcURYTk8wN1ZQMWlvTmMwN1R0VS9XS2cxelR0TzFUOVlxRFhOTzA3VlAxaW9OYzA3VHRVL1dLZzF6VHRPMVQvVHZPTVVIY25SUDFpb05jMDdUdFUvV0tnMXpUdE8xVC9Udk9NVUhjblJQMWlvTmMwN1R0VS9XS2cxelR0TzFUOVlxRFhOTzA3VlB3QUFBQUFBQVBBLzA3empGQjNK''@;'; + put 'put ''MFQvVHZPTVVIY25SUDlPODR4UWR5ZEUvMDd6akZCM0owVC9Udk9NVUhjblJQOU84NHhRZHlkRS8wN3pqRkIzSjBUL1R2T01VSGNuUlA5Tzg0eFFkeWRFLzA3empGQjNKMFQvVHZPTVVIY25SUDlPODR4UWR5ZEUvMDd6akZCM0owVC9Udk9NVUhjblJQOU84NHhRZHlkRS8wN3pqRkIzSjBUOEFB''@;'; + put 'put ''QUFBQUFEd1A5Tzg0eFFkeWRFLzZwV3lESEdzMXovVHZPTVVIY25SUDlPODR4UWR5ZEUvMDd6akZCM0owVC9Udk9NVUhjblJQN1VWKzh2dXllRS9hdDV4aW83azZEOEFBQUFBQUFEd1A1amRrNGVGV3RjLzA3empGQjNKMFQvVHZPTVVIY25SUDlPODR4UWR5ZEUvMDd6akZCM0owVC9Udk9NVUhj''@;'; + put 'put ''blJQOFJDclduZWNldy8wN3pqRkIzSjBUL1R2T01VSGNuUlA5Tzg0eFFkeWRFLzA3empGQjNKMFQvVHZPTVVIY25SUDlPODR4UWR5ZEUvU0w5OUhUaG56RDk0Q3lRb2ZvempQNFk0MXNWdE5PNC9lQXNrS0g2TTR6L1R2T01VSGNuUlA5Tzg0eFFkeWRFLzA3empGQjNKMFQvVHZPTVVIY25SUDFH''@;'; + put 'put ''Z1QrUkowZzVBdE1oMnZwODZOY0E2SXQrbDFDWFZ2L09DUGtlYUxvby9uK1Y1Y0hmVytiOSsvUkFiTEp6bVA1YnMyQWpFNjh3L3pjNmlkeXJnMEQrdzQ3OUFFQ0R0djYyaDFGNUUyOWcvTzZGODVsR1dkai9UYm5ENWVvUjdQNEhNenFKM0t1Uy8wYTNYOUtDZ3lEOXEzemNac0QrRVA3N0trQmxl''@;'; + put 'put ''LzRRL0hKWUdmbFREeEwrbFNTbm85dUlqUUtuWkE2M0FrTUUvQ01TUVFaTnBpVC82Uko0a1hUUFF2d0h3bVRZdHdsNC9EWng5TDgrVWx6K0p0ZmdVQU9PSlArV3BXRVkweTdHL2p3REp6NkZucHI5Y3RjYjd6TFNJUDAya2oxUTZzNUEvNXNjRW9XSFdvTC9IYVdjY0UvZUN2eXAvYStVdGNGeS81''@;'; + put 'put ''RmRpVkFpYWRUL1I4WWRWY2dTM1A1WFVDV2dpUERQQVpDTVFyK3QzRU1DbklhcndaM2pIUDlyL0FHdlZyc0UvVGloRXdDRlU5NytxU0lXeGhTRDFQNTFvVnlIbEovWS9UUzdHd0RxT3pUOVpheWkxRjlIY3Z3TS9xbUcvSjh3L3BrZFRQWmwvMmorMmdUdFFwenl1UDFGTTNnQXozN20vOVhhVi85''@;'; + put 'put ''b0xwai9VcFRXOEQvYVVQeCt0SUx3czNKQS9LQ3p4Z0xMSkkwQWpXdUZNQW9xM1AwaWpaVkdXS1g4L3U3U0c5OEdla3o4WHFIdFRSMzJndnlFcnJ1QnRsSXMvTTNQY2hOWWV0YitnZUlTSjlmeVBQMmsxSk82eDlKRy91TTB6ZWw2L2FqK1NQcTJpUHpUTnYzNnc1OFpQUHBpL0J5T2JVQzNIcEQ4''@;'; + put 'put ''K0dNSjdXTG1SdnkxOGZhMUxqY1kvQUFBQVFQc2grVDhBQUFBQUxVUjBQZ0FBQUlDWVJ2ZzhBQUFBWUZITWVEc0FBQUNBZ3h2d09RQUFBRUFnSlhvNEFBQUFnQ0tDNHpZQUFBQUFIZk5wTlFBQUFBQUFBUEMvdkFRQkFPZ3FBQUFEQUFBQUVDMEFBQU1BQUFEb0x3QUFBd0FBQUxBd0FBQURBQUFB''@;'; + put 'put ''QURJQUFBTUFBQUI0TlFBQUF3QUFBTFE0QUFBREFBQUF4QzRBQUFNQUFBQjhPUUFBQXdBQUFJUTZBQUFEQUFBQUVEOEFBQU1BQUFBMFBRQUFBQUFBQU5Rc0FBQUFBQUFBd0M4QUFBQUFBQUFRTUFBQUFBQUFBTmd4QUFBQUFBQUFLRElBQUFBQUFBQ01PQUFBQUFBQUFHQXVBQUFBQUFBQVZEa0FB''@;'; + put 'put ''QUFBQUFCY09nQUFBQUFBQU9nK0FBQUFBQUFBREQwQUFBUUFBQUE0UHdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFFQUFBQUNBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB''@;'; + put 'put ''QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRUFBQUFDQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQURBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRUFBQUFBQUFBQUFVQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB''@;'; + put 'put ''QUFRQUFBQUFBQUFBQ0FBQUFBUUFBQUFFQUFBQURBQUFBQUFBQUFBQUFBQUFJMlFJQUdOa0NBQ2paQWdBNDJRSUFTTmtDQUZqWkFnQm8yUUlBZU5rQ0FCalpBZ0FZMlFJQVdOa0NBRmpaQWdBZkFBQUFQd0FBQUg4QUFBQUFBQUFBb29VQkFBRUFBQUNvS3dBQWFBQUFBQVFBQUFEVkNBRUFBUUFB''@;'; + put 'put ''QUNBc0FBQ0lBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFjQVVCQUFFQUFBQUFBQUFBNEFBQUFBQUFBQUI0QlFFQUFRQUFBQUFBQUFEZ0FBQUFBUUFBQUg4RkFRQUJBQUFBQUFBQUFLZ0FBQUFDQUFBQWlRVUJBQUVBQUFBQUFBQUE0QUFBQUFNQUFBQ1RCUUVBQVFBQUFBQUFB''@;'; + put 'put ''QURnQUFBQUJBQUFBS0VGQVFBQkFBQUFBQUFBQU9BQUFBQUZBQUFBcXdVQkFBRUFBQUFBQUFBQTRBQUFBQVlBQUFDNEJRRUFBUUFBQUFBQUFBRGdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFZQUFBQUhBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB''@;'; + put 'put ''QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUlBQUFBLy8vLy93QUFBQUFBQUFBQUJBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBMmdn''@;'; + put 'put ''QkFBRUFBQURFTFFBQUdBRUFBQUVBQUFEZkNBRUFBUUFBQU1RdEFBQVlBUUFBQWdBQUFPVUlBUUFCQUFBQXhDMEFBQmdCQUFBREFBQUE3Z2dCQUFFQUFBREVMUUFBR0FFQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVBnSUFRQUJBQUFBQUFBQUFIQUJBQUFCQUFBQUFna0JBQUVB''@;'; + put 'put ''QUFBQUFBQUFjQUVBQUFJQUFBQU5DUUVBQVFBQUFBQUFBQUE0QVFBQUF3QUFBQnNKQVFBQkFBQUFBQUFBQURnQkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFDQUFBQUFrQUFBQUFBQUFBQUFBQUFBb0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB''@;'; + put 'put ''QUFBQ3dBQUFBd0FBQUFOQUFBQURnQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUZBQUFBQVFBQUFBWUFBQUFDQUFBQUFnQUFBQWNBQUFBQ0FBQUFBQUFBQUdJWUFnQm5BUUlBK0FJQ0FEZ0pBZ0F2RUFJQWJoUUNBTzRYQWdEL0Z3SUFBQUFBQUdJSkFRQUJBQUFBS0M4QUFLZ0JBQUFBQUFBQUFB''@;'; + put 'put ''QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQm1DUUVBQVFBQUFBQUFBQURJQVFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJBQUFBYmdrQkFBRUFBQUE0TUFBQUFBSUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFEd0FBQUJB''@;'; + put 'put ''QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFRQUFBS1lLQVFBQkFBQUFBQUFBQUNBQ0FBQUNBQUFBc0FvQkFBRUFBQUFB''@;'; + put 'put ''QUFBQVdBSUFBQUFBQUFDNUNnRUFBUUFBQUFBQUFBQllBZ0FBQXdBQUFNSUtBUUFCQUFBQUFBQUFBRmdDQUFBQUFBQUF6QW9CQUFFQUFBQUFBQUFBSUFJQUFBTUFBQURZQ2dFQUFRQUFBQUFBQUFBZ0FnQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQkVBQUFBU0FBQUFB''@;'; + put 'put ''QUFBQUFBQUFBQVRBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJRQUFBQVZBQUFBRmdBQUFCY0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFDQUFBQUFNQUFBQUpBQUFBQXdBQUFBTUFBQUFLQUFBQUJBQUFBQUFBQUFCaUdBSUFad0VDQURnSkFnRDRBZ0lBYmhRQ0FD''@;'; + put 'put ''OFFBZ0QvRndJQTdoY0NBQUFBQUFBQUFBQUFsUXdCQVAvLy8vODhNUUFBa0FJQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUpnTUFRRC8vLy8vQUFBQUFMQUNBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQ29qUUVBQVFBQUFGQXlBQURvQWdBQUFBQUFBQUFBQUFB''@;'; + put 'put ''QUFBQUFBQUFBQUFBQUFBQVlBQUFBR1FBQUFCb0FBQUFBQUFBQUJBQUFBQUFBQUFBYkFBQUFIQUFBQUIwQUFBQWVBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQjhBQUFBZ0FBQUFJUUFBQUNJQUFBQUNBQUFBQUFBQUFBQUFBQUFBQUFBQUN3QUFBQUFBQUFBTUFBQUFCUUFBQUFRQUFBQU5BQUFB''@;'; + put 'put ''QlFBQUFBTUFBQUNWRUFFQW94QUJBTGtRQVFEeitRSUF4eEFCQU5ZUUFRRGJFQUVBK1JBQkFQUDVBZ0FMRVFFQU94RUJBUFA1QWdCWkVRRUFnUkVCQUk4UkFRQytFUUVBOGhFQkFBTVNBUUFvRWdFQVN4SUJBRkVTQVFCdEVnRUFpaElCQUtVU0FRREdFZ0VBNEJJQkFBSVRBUUFoRXdFQVJ4TUJB''@;'; + put 'put ''RjhUQVFCL0V3RUFuQk1CQU1BVEFRRE1Fd0VBOC9rQ0FOY1RBUUQ5RXdFQUlSUUJBRWNVQVFEeitRSUFmUlFCQUpVVUFRQ2lGQUVBMFJRQkFNd1RBUUR6K1FJQTNoUUJBT2NVQVFBSUZRRUFReFVCQUk0VkFRRGlGUUVBQkJZQkFCa1dBUUF3RmdFQVJoWUJBRjRXQVFEeitRSUFkQllCQUk4V0FR''@;'; + put 'put ''Q3pGZ0VBMXhZQkFQd1dBUUR6K1FJQUhSY0JBRGNYQVFCSkZ3RUFWaGNCQUdNWEFRQjNGd0VBaGhjQkFJNFhBUUNqRndFQXNSY0JBTzhYQVFENkZ3RUF6Qk1CQVBQNUFnQUFHQUVBREJnQkFCc1lBUUJMRWdFQTgva0NBQzRZQVFCWEdBRUFkUmdCQUlVWUFRQ1dHQUVBblJnQkFLd1lBUUM4R0FF''@;'; + put 'put ''QUFCa0JBQWNaQVFCTEVnRUE4L2tDQUJFWkFRQTlHUUVBU0JrQkFGRVpBUUJhR1FFQWF4a0JBSHdaQVFDUUdRRUF6Qk1CQVBQNUFnQ2NHUUVBckJrQkFMb1pBUURJR1FFQTFSa0JBT0laQVFENEdRRUFBUm9CQUJBYUFRQWRHZ0VBTGhvQkFNd1RBUUR6K1FJQU9Sb0JBRmdhQVFEeitRSUFhaG9C''@;'; + put 'put ''QUhrYUFRQ3BHZ0VBc3hvQkFNQWFBUUROR2dFQTJob0JBT2NhQVFEcUdnRUE4L2tDQU80YUFRRHorUUlBRVJzQkFFSWJBUUJ4R3dFQWlCc0JBS01iQVFDK0d3RUF6Qk1CQVBQNUFnRGFHd0VBOC9rQ0FBSWNBUUFPSEFFQUlSd0JBRFFjQVFCSkhBRUFYaHdCQUdJY0FRQkxFZ0VBOC9rQ0FHNGNB''@;'; + put 'put ''UUR6K1FJQWZod0JBSXdjQVFDWUhBRUFwUndCQU1VY0FRRGJIQUVBOC9rQ0FPOGNBUUE0SFFFQWZoMEJBSzRkQVFEaEhRRUE2QjBCQUE4ZUFRQTJIZ0VBOC9rQ0FEc2VBUUFBQUFBQUFBQUFBUEJIQVFBQkFBQUFBQUFBQUFnREFBQUJBQUFBcng0QkFBRUFBQUFBQUFBQUNBTUFBQUlBQUFEcFJ3''@;'; + put 'put ''RUFBUUFBQUFBQUFBQkFBd0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBakFBQUFBQUFBQUNRQUFBQWxBQUFBQmdBQUFDWUFBQUFuQUFBQUtBQUFBQ2tBQUFBcUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFDc0FBQUFzQUFBQUxRQUFBQzRBQUFBRUFBQUFMd0FBQUFBQUFBQUFBQUFBRGdB''@;'; + put 'put ''QUFBQUFBQUFQQUFBQUJ3QUFBQVVBQUFBUUFBQUFCZ0FBQUFBQUFBQi9BQUlBaVFBQ0FIa3hBUURPQUFJQUNRRUNBQ3NCQWdBeEFRSUFZaGdDQUZnQkFnQm5BUUlBaEFFQ0FJOEJBZ0N4QVFJQTV3RUNBQjBDQWdCWUFnSUFqZ0lDQUxBQ0FnQy9BZ0lBOEFJQ0FQZ0NBZ0EvSlFFQVNDVUJBQlVE''@;'; + put 'put ''QWdCUkpRRUFYd01DQUZvbEFRQnBBd0lBWXlVQkFITURBZ0RDQXdJQS9RTUNBRzhsQVFBNEJBSUFRd1FDQUlnRUFnQ1dCQUlBNEFRQ0FPNEVBZ0Q4QkFJQUJ3VUNBRGdGQWdCNEJRSUFnQVVDQUlnRkFnRERCUUlBK1FVQ0FBVUdBZ0IrTVFFQUVRWUNBQnNHQWdBbUJnSUFRd1lDQUhrR0FnQTRD''@;'; + put 'put ''UUlBV2drQ0FHWUpBZ0FsREFJQVZnd0NBSUlNQWdDNERBSUF4UXdDQU9jTUFnQUpEUUlBRWcwQ0FGd05BZ0JtRFFJQXF3MENBT0VOQWdEc0RRSUFjUTRDQUlZT0FnQjNKUUVBa0E0Q0FKb09BZ0RRRGdJQUVBOENBQjRQQWdCeUR3SUFnUThDQUpBUEFnRGZEd0lBaGpFQkFCOFFBZ0FwRUFJQUx4''@;'; + put 'put ''QUNBRnNRQWdDQ0VBSUFreEFDQUo0UUFnRGpFQUlBS0JFQ0FEY1JBZ0JIRVFJQVdSRUNBR2tSQWdCNUVRSUFoaEVDQUpBUkFnREdFUUlBenhFQ0FBOFNBZ0FpRWdJQWl6RUJBQ29TQWdCZ0VnSUFoeElDQUwwU0FnRGtFZ0lBOGhJQ0FDZ1RBZ0J5RXdJQXZCTUNBTWNUQWdEOUV3SUFBaFFDQUI4''@;'; + put 'put ''VUFnQThGQUlBUnhRQ0FHNFVBZ0NHRkFJQXZCUUNBUElVQWdEK0ZBSUFKUlVDQURBVkFnQmhGUUlBa2hVQ0FIZzhBUUM1RlFJQTVSVUNBQnNXQWdCUkZnSUFXeFlDQUhnV0FnQzRGZ0lBN2hZQ0FKRXhBUUFHRndJQU1oY0NBRmtYQWdDUEZ3SUF6QmNDQU80WEFnRDBGd0lBL3hjQ0FDWVlBZ0FB''@;'; + put 'put ''QUFBQXE0MEJBQUVBQUFESU5RQUFlQU1BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBTWRJQVFBQkFBQUFBQUFBQUpnREFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBREFBQUFBQUFBQUFNUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB''@;'; + put 'put ''QUFBQUFBQUFBQUFBQUFBTWdBQUFBQUFBQUF6QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVJBQUFBQUFBQUFCSUFBQUFJQUFBQUJnQUFBQk1BQUFBSEFBQUFBQUFBQUFBQUFBQ3RKZ0VBQVFBQUFOdzRBQURRQXdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBc0NZQkFB''@;'; + put 'put ''RUFBQUFBQUFBQThBTUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBTkFBQUFBQUFBQUExQUFBQU5nQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQlFBQUFEY0FBQUFBQUFBQUFBQUFBQlFBQUFB''@;'; + put 'put ''QUFBQUFGUUFBQUFrQUFBQUhBQUFBRmdBQUFBZ0FBQUFBQUFBQWVURUJBR0lZQWdCbkFRSUFmakVCQUhrR0FnQTRDUUlBaGpFQkFGc1FBZ0FQRWdJQWl6RUJBRWNVQWdCdUZBSUFlRHdCQUpFeEFRRHVGd0lBL3hjQ0FBQUFBQUNXTVFFQUFRQUFBS1E1QUFBb0JBQUFBQUFBQUFBQUFBQUFBQUFB''@;'; + put 'put ''QUFBQUFBQUFBQUFBQUFBQW1qRUJBQUVBQUFBQUFBQUFTQVFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU9BQUFBQUFBQUFBNUFBQUFPZ0FBQUFvQUFBQTdBQUFBUEFBQUFEMEFBQUErQUFBQVB3QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQkFBQUFBUVFBQUFFSUFBQUJEQUFBQUFBQUFB''@;'; + put 'put ''QUFBQUFBQUFBQUFBQUFBQUJjQUFBQUFBQUFBR0FBQUFBc0FBQUFJQUFBQUdRQUFBQWtBQUFBQUFBQUF6Z0FDQUE0N0FRQmlHQUlBWndFQ0FJUUJBZ0FaT3dFQUh6c0JBQ283QVFBeE93RUFqd0VDQU9jQkFnQTVPd0VBUHpzQkFFbzdBUUNPQWdJQXNBSUNBUGdDQWdCUk93RUFYd01DQUhNREFn''@;'; + put 'put ''RDlBd0lBV3pzQkFJZ0VBZ0NXQkFJQTRBUUNBR1k3QVFEdUJBSUFianNCQUhjN0FRQ0ZPd0VBanpzQkFNTUZBZ0NZT3dFQUJRWUNBQ1lHQWdCREJnSUFuanNCQUlvR0FnQzFCZ0lBM2dZQ0FBRUhBZ0FxQndJQVRRY0NBSFlIQWdDWkJ3SUF3Z2NDQU9VSEFnQU9DQUlBTVFnQ0FGb0lBZ0I5Q0FJ''@;'; + put 'put ''QXBnZ0NBTWtJQWdEeUNBSUFGUWtDQURnSkFnQ2xPd0VBV2drQ0FMRTdBUUNDREFJQTV3d0NBS3NOQWdDK093RUFrQThDQU1zN0FRQWZFQUlBTHhBQ0FOVTdBUUJiRUFJQWdoQUNBSk1RQWdEa093RUE5anNCQUo0UUFnQW9FUUlBTnhFQ0FFY1JBZ0JaRVFJQWFSRUNBQVk4QVFBUlBBRUFIRHdC''@;'; + put 'put ''QUhrUkFnQVBFZ0lBRkJJQ0FDRThBUUFxUEFFQU16d0JBRU04QVFCS1BBRUFZQklDQUljU0FnQzlFZ0lBOGhJQ0FBSVVBZ0FmRkFJQVVqd0JBRzRVQWdCWlBBRUEvaFFDQUdJOEFRQXdGUUlBYWp3QkFKSVZBZ0I0UEFFQXVSVUNBT1VWQWdCL1BBRUFlQllDQUxnV0FnQ0pQQUVBN2hZQ0FBWVhB''@;'; + put 'put ''Z0JaRndJQWt6d0JBS0U4QVFDUEZ3SUFsaGNDQU13WEFnRHVGd0lBL3hjQ0FDWVlBZ0FBQUFBQXN6d0JBQUVBQUFDc09nQUFnQVFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBTGM4QVFBQkFBQUFBQUFBQUtBRUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB''@;'; + put 'put ''QUFSQUFBQUVVQUFBQUFBQUFBQUFBQUFFWUFBQUJIQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQWFBQUFBQUFBQUFCc0FBQUFNQUFBQUNRQUFBQndBQUFBS0FBQUFBQUFBQUVGQ0FBQ3dvUUVBUVVr''@;'; + put 'put ''QUFJcWhBUUJCVWdBQVhhRUJBRUZZQUFERm9RRUFRaUFBQUFHa0FRQkNTUUFBRXFRQkFFTkNBQUJLb2dFQVEwOEFBRGlpQVFCRFdBQUFWNklCQUVnZ0FBQjdvZ0VBU0VJQUFJV2lBUUJJU1FBQUVhTUJBRWhZQUFDVW9nRUFTR0lBQU1XaUFRQklhUUFBK0tJQkFFaHlBQUNxb2dFQVNIZ0FBTnVp''@;'; + put 'put ''QVFCSklBQUFJNlFCQUV0Q0FBRGNvUUVBUzBrQUFDU2lBUUJMVWdBQUVLSUJBRXRZQUFEOW9RRUFUa0lBQUNPakFRQk9TUUFBYXFNQkFFNVNBQUNDb3dFQVRsZ0FBRTZqQVFCUVFRQUE0Nk1CQUZCQ0FBQ2Zvd0VBVUVrQUFOT2pBUUJRV0FBQXY2TUJBRklnQUFEYXBRRUFVeUFBQVBLakFRQmFS''@;'; + put 'put ''QUFBWUtRQkFBQUFBQUFBQUFBQUFRQUFBQUFBQUFCZFJ3RUEvLy8vLzF3OUFBRFlCQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFZVWNCQVAvLy8vOEFBQUFBK0FRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFEd0FBQUdsSEFRQUJBQUFBSUVNQUFBQUFBQUFRQUFBQWNV''@;'; + put 'put ''Y0JBQUVBQUFBZ1F3QUFBQUFBQUJFQUFBQjVSd0VBQVFBQUFDQkRBQUFBQUFBQUVRQUFBSUpIQVFBQkFBQUFJRU1BQUFBQUFBQVJBQUFBaWtjQkFBRUFBQUFnUXdBQUFBQUFBQk1BQUFDU1J3RUFBUUFBQUNSREFBQUFBQUFBRkFBQUFKcEhBUUFCQUFBQUpFTUFBQUFBQUFBVkFBQUFva2NCQUFF''@;'; + put 'put ''QUFBQWtRd0FBQUFBQUFCVUFBQUNyUndFQUFRQUFBQ1JEQUFBQUFBQUFGUUFBQUxOSEFRQUJBQUFBSkVNQUFBQUFBQUFXQUFBQXUwY0JBQUVBQUFBb1F3QUFBQUFBQUJjQUFBREVSd0VBQVFBQUFDaERBQUFBQUFBQUdBQUFBTTFIQVFBQkFBQUFLRU1BQUFBQUFBQVlBQUFBMTBjQkFBRUFBQUFv''@;'; + put 'put ''UXdBQUFBQUFBQmdBQUFEZ1J3RUFBUUFBQUNoREFBQUFBQUFBR1FBQUFPbEhBUUFCQUFBQUxFTUFBQUFBQUFBWkFBQUE4RWNCQUFFQUFBQXNRd0FBQUFBQUFCb0FBQUQyUndFQUFRQUFBREJEQUFBQUFBQUFDZ0FBQVA5SEFRQUJBQUFBTkVNQUFBQUFBQUFMQUFBQUIwZ0JBQUVBQUFBMFF3QUFB''@;'; + put 'put ''QUFBQUF3QUFBQVBTQUVBQVFBQUFEUkRBQUFBQUFBQURBQUFBQmhJQVFBQkFBQUFORU1BQUFBQUFBQU1BQUFBSUVnQkFBRUFBQUEwUXdBQUFBQUFBQTRBQUFBb1NBRUFBUUFBQURSREFBQUFBQUFBRGdBQUFDOUlBUUFCQUFBQU5FTUFBQUFBQUFBTkFBQUFOMGdCQUFFQUFBQTBRd0FBQUFBQUFB''@;'; + put 'put ''VUFBQUEvU0FFQUFRQUFBRFJEQUFBQUFBQUFCZ0FBQUVkSUFRQUJBQUFBTkVNQUFBQUFBQUFIQUFBQVQwZ0JBQUVBQUFBMFF3QUFBQUFBQUFjQUFBQllTQUVBQVFBQUFEUkRBQUFBQUFBQUJ3QUFBR0JJQVFBQkFBQUFORU1BQUFBQUFBQUpBQUFBYUVnQkFBRUFBQUEwUXdBQUFBQUFBQWtBQUFC''@;'; + put 'put ''dlNBRUFBUUFBQURSREFBQUFBQUFBQ0FBQUFIZElBUUFCQUFBQU5FTUFBQUFBQUFBQUFBQUFmMGdCQUFFQUFBQTRRd0FBQUFBQUFBRUFBQUNJU0FFQUFRQUFBRGhEQUFBQUFBQUFBZ0FBQUpGSUFRQUJBQUFBT0VNQUFBQUFBQUFDQUFBQW0wZ0JBQUVBQUFBNFF3QUFBQUFBQUFJQUFBQ2tTQUVB''@;'; + put 'put ''QVFBQUFEaERBQUFBQUFBQUJBQUFBSzFJQVFBQkFBQUFPRU1BQUFBQUFBQUVBQUFBdFVnQkFBRUFBQUE0UXdBQUFBQUFBQU1BQUFDK1NBRUFBUUFBQURoREFBQUFBQUFBRWdBQUFNZElBUUFCQUFBQUlFTUFBQUFBQUFBYkFBQUF6MGdCQUFFQUFBQThRd0FBQUFBQUFCd0FBQURYU0FFQUFRQUFB''@;'; + put 'put ''RHhEQUFBQUFBQUFIUUFBQU45SUFRQUJBQUFBUEVNQUFBQUFBQUFkQUFBQTZFZ0JBQUVBQUFBOFF3QUFBQUFBQUIwQUFBRHdTQUVBQVFBQUFEeERBQUFBQUFBQUhnQUFBUGhJQVFBQkFBQUFRRU1BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQTBBQUFBT0FBQUFEd0FBQUJBQUFB''@;'; + put 'put ''QVJBQUFBRWdBQUFCTUFBQUFVQUFBQUZRQUFBR05NQVFCTVF3QUFBUUFBQUdoREFBQUFBQUFBQUFBQUFFZ0FBQUJKQUFBQUFRQUFBQUFBQUFDaWhRRUFBQUFBQUZ4REFBQmtRd0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQkFBQUFBZ0FBQUFBQUFBQUJBQUFBQVFBQUFBRUFBQUFCQUFB''@;'; + put 'put ''QUFnQUFBQUlBQUFBQkFBQUFBZ0FBQUFRQUFBQVlBUUFBTUFFQUFMQUFBQUNJVkFFQWpWUUJBSkZVQVFDWVZBRUFuRlFCQUFBQUFBQUJBQUFBQWdBQUFBTUFBQUFFQUFBQUJRQUFBQUFBQUFBZEFBQUFBQUFBQUFBQUFBQWVBQUFBQUFBQUFBQUFBQUFmQUFBQUFBQUFBQUFBQUFDUldRRUFLRVFB''@;'; + put 'put ''QUFFQUFBQ0FSQUFBQUFBQUFBQUFBQUJLQUFBQVN3QUFBRXdBQUFCTkFBQUFUZ0FBQUU4QUFBQlFBQUFBVVFBQUFGSUFBQUJUQUFBQVZBQUFBRXNBQUFCVkFBQUFTd0FBQUZZQUFBQlhBQUFBV0FBQUFGa0FBQUFBQUFBQW5sa0JBQUFBQUFBNFJBQUFLTnNDQUFFQUFBQ2tXUUVBQUFBQUFFQkVB''@;'; + put 'put ''QUFvMndJQUFnQUFBS2haQVFBQUFBQUFTRVFBQUNqYkFnQURBQUFBclZrQkFBQUFBQUJRUkFBQUtOc0NBQVFBQUFDeldRRUFBQUFBQUZoRUFBQW8yd0lBQlFBQUFMbFpBUUFBQUFBQWNFUUFBQ2piQWdBR0FBQUF3MWtCQUFBQUFBQjRSQUFBS05zQ0FBY0FBQURKV1FFQUFBQUFBR0JFQUFBbzJ3''@;'; + put 'put ''SUFCd0FBQU0xWkFRQUFBQUFBWUVRQUFDamJBZ0FIQUFBQTBsa0JBQUFBQUFCb1JBQUFLTnNDQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUNBQUFBREFBQUFBQUFBQUFBUUFBQUNBQUFBQUJBQUFBQUFBQUFBQUFBQUFBQUFBQUF3QUFBQVFBQUFBQUFBQUFQR2NCQUZSbkFRQnpad0VBa0dj''@;'; + put 'put ''QkFLOW5BUUMyWndFQXYyY0JBRHhuQVFCQlp3RUFTR2NCQUUxbkFRRGVaZ0VBOEdZQkFQNW1BUUFNWndFQUdtY0JBQ0ZuQVFBd1p3RUFQR2NCQUFBQUFBRHorUUlBQUFBQUFCMFNBZ0FCQUFBQStHa0JBQWNBQUFDOGFRRUFBd0FBQU1ZbEFnQUZBQUFBQUdvQkFBOEFBQUNRalFFQUNBQUFBSkNO''@;'; + put 'put ''QVFBUUFBQUFDR29CQUFRQUFBQUlhZ0VBRVFBQUFBMXFBUUFGQUFBQURXb0JBQUlBQUFBVGFnRUFCZ0FBQUJwcUFRQUVBQUFBSm1vQkFBY0FBQUF1YWdFQUJ3QUFBRDVxQVFBRkFBQUFSR29CQUFnQUFBQmJhZ0VBQ0FBQUFFUnFBUUFKQUFBQVpHb0JBQWNBQUFCc2FnRUFDZ0FBQUlacUFRQUhB''@;'; + put 'put ''QUFBam1vQkFBc0FBQUNvYWdFQUJnQUFBSzlxQVFBTUFBQUF6V29CQUFrQUFBQ3ZhZ0VBRFFBQUFOZHFBUUFJQUFBQTRHb0JBQTRBQUFBQmF3RUFDQUFBQUFwckFRQVNBQUFBSzJzQkFBVUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFnQUFBQUVBQUFBQUFBQUFBQUFBQUFBQUFBQUFn''@;'; + put 'put ''QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUlBQUFBREFBQUFBSUFBQUFBQUFBQUF3QUFBQUFBQUFBQUFBQUFBQUFBQUFnQUFBQUVBQUFBQUFBQUFBTUFBQUFoQUFBQUJBQUFBQUFBQUFBQUFBQUFBQUFBQUFnQUFBQUVBQUFBQUFBQUFBUUFBQUFpQUFBQUJRQUFBQUFBQUFBQUFBQUFBQUFBQUFV''@;'; + put 'put ''QUFBQkFBQUFBaUVjQUFKaEhBQUFHQUFBQUJBQUFBS1JIQUFBR0FBQUFDQUFBQUFZQUFBQUVBQUFBckVjQUFBQUVBQUFJQUFBQS8vLy8vd0FBQUFBQUFBQUFJd0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUExQUFBQUFBQUFBQUFBQUFBZ0FBQUFBQUFBQUFBQUFBQUdBQUFBQUFBQUFBY0FBQUFB''@;'; + put 'put ''QUFBQUFBQUFBQUFBQUFELy8vLy9BQUFBQUFBQUFBQUdBQUFBQUFBQUFBY0FBQUFBQUFBQUFBQUFBQUFBQUFBWUFBQUFBQUFBQUFBQUFBQUlBQUFBQUFBQUFBY0FBQUFBQUFBQUFBQUFBQUFBQUFELy8vLy9BQUFBQUFBQUFBQUlBQUFBQUFBQUFBY0FBQUFBQUFBQUFBQUFBQUFBQUFBY0FBQUFB''@;'; + put 'put ''QUFBQUFBQUFBQUpBQUFBQUFBQUFBY0FBQUFBQUFBQUNRQUFBQXNBQUFBSUFBQUFDZ0FBQURCSkFBQzBTQUFBR0VrQUFBRUFBQUFCQUFBQUNnQUFBQllBQUFBTEFBQUFXZ0FBQUNRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQXdBQUFBQUFBQUFCd0FBQUFBQUFBQUFBQUFBQUFBQUFB''@;'; + put 'put ''Z0FBQUFBQUFBQUFBQUFBQTBBQUFBQUFBQUFCd0FBQUFBQUFBQUhBQUFBQWdBQUFBVUFBQUFJQUFBQUFBQUFBQUFBQUFBR0FBQUFBd0FBQUE0QUFBQUxBQUFBQUFBQUFBQUFBQUFBQUFBQUNBQUFBQUFBQUFBQUFBQUFEd0FBQUFBQUFBQUhBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB''@;'; + put 'put ''bEFBQUFFQUFBQUFBQUFBQUhBQUFBQUFBQUFBZ0FBQUFJQUFBQUFBQUFBQUFBQUFBbUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCQUFBQUQvLy8vL0FBQUFBQUFBQUFBbkFBQUFBQUFBQUFBQUFBQUhBQUFBQUFBQUFBRUFBQUFBQUFBQUFRQUFBQUVBQUFBQkFBQUFBUUFBQUFFQUFBQUJBQUFB''@;'; + put 'put ''QVFBQUFBRUFBQUFDQUFBQUF3QUFBQUVBQUFBQkFBQUFBZ0FBQUFFQUFBQUJBQUFBQVFBQUFBRUFBQUFCQUFBQUFRQUFBQUVBQUFBQkFBQUFBUUFBQUFFQUFBQUJBQUFBQVFBQUFBRUFBQUFCQUFBQUFRQUFBQUVBQUFBQkFBQUFBUUFBQUFJQUFBQUJBQUFBQkFBQUFBVUFBQUFCQUFBQUFRQUFB''@;'; + put 'put ''QUVBQUFBQkFBQUFBUUFBQUFFQUFBQUdBQUFBQVFBQUFBRUFBQUFIQUFBQUNBQUFBQWtBQUFBS0FBQUFDZ0FBQUFvQUFBQUtBQUFBQ2dBQUFBb0FBQUFLQUFBQUNnQUFBQW9BQUFBS0FBQUFBUUFBQUFFQUFBQUxBQUFBQVFBQUFBd0FBQUFCQUFBQURRQUFBQTRBQUFBUEFBQUFFQUFBQUJFQUFB''@;'; + put 'put ''QVNBQUFBRXdBQUFCUUFBQUFWQUFBQUZnQUFBQk1BQUFBVEFBQUFFd0FBQUJNQUFBQVhBQUFBR0FBQUFCa0FBQUFUQUFBQUdnQUFBQnNBQUFBY0FBQUFIUUFBQUJNQUFBQVRBQUFBRXdBQUFCTUFBQUFUQUFBQUFRQUFBQjRBQUFBQkFBQUFBUUFBQUJNQUFBQUJBQUFBSHdBQUFDQUFBQUFoQUFB''@;'; + put 'put ''QUlnQUFBQ01BQUFBVEFBQUFKQUFBQUNVQUFBQW1BQUFBRXdBQUFCTUFBQUFUQUFBQUV3QUFBQ2NBQUFBb0FBQUFLUUFBQUJNQUFBQXFBQUFBS3dBQUFDd0FBQUF0QUFBQUV3QUFBQk1BQUFBVEFBQUFFd0FBQUJNQUFBQUJBQUFBQVFBQUFBRUFBQUFCQUFBQUFRQUFBQk1BQUFBVEFBQUFFd0FB''@;'; + put 'put ''QUJNQUFBQVRBQUFBRXdBQUFCTUFBQUFUQUFBQUV3QUFBQk1BQUFBVEFBQUFFd0FBQUJNQUFBQVRBQUFBRXdBQUFCTUFBQUFUQUFBQUV3QUFBQk1BQUFBVEFBQUFFd0FBQUJNQUFBQVRBQUFBRXdBQUFCTUFBQUFUQUFBQUV3QUFBQk1BQUFBVEFBQUFFd0FBQUJNQUFBQVRBQUFBRXdBQUFCTUFB''@;'; + put 'put ''QUFUQUFBQUV3QUFBQk1BQUFBVEFBQUFFd0FBQUJNQUFBQVRBQUFBRXdBQUFCTUFBQUFUQUFBQUV3QUFBQk1BQUFBVEFBQUFFd0FBQUJNQUFBQVRBQUFBRXdBQUFCTUFBQUFUQUFBQUV3QUFBQk1BQUFBVEFBQUFFd0FBQUJNQUFBQVRBQUFBTGdBQUFCTUFBQUFUQUFBQUV3QUFBQzhBQUFBVEFB''@;'; + put 'put ''QUFFd0FBQUJNQUFBQVRBQUFBRXdBQUFCTUFBQUFUQUFBQUV3QUFBQk1BQUFBVEFBQUFFd0FBQUJNQUFBQVRBQUFBRXdBQUFCTUFBQUFUQUFBQUV3QUFBQk1BQUFBVEFBQUFFd0FBQUJNQUFBQVRBQUFBRXdBQUFCTUFBQUFUQUFBQUV3QUFBQk1BQUFBVEFBQUFFd0FBQUJNQUFBQVRBQUFBRXdB''@;'; + put 'put ''QUFCTUFBQUFUQUFBQUV3QUFBQk1BQUFBVEFBQUFFd0FBQUJNQUFBQVRBQUFBRXdBQUFCTUFBQUFUQUFBQUV3QUFBQk1BQUFBVEFBQUFFd0FBQURBQUFBQVRBQUFBRXdBQUFCTUFBQUFUQUFBQUV3QUFBQk1BQUFBVEFBQUFFd0FBQUJNQUFBQVRBQUFBRXdBQUFCTUFBQUFUQUFBQUV3QUFBQk1B''@;'; + put 'put ''QUFBVEFBQUFBQUFBQUFFQUFBQUJBQUFBQWdBQUFBTUFBQUFCQUFBQUJBQUFBQUVBQUFBRkFBQUFBUUFBQUFZQUFBQUhBQUFBQndBQUFBRUFBQUFHQUFBQUJnQUFBQVlBQUFBR0FBQUFCZ0FBQUFZQUFBQUdBQUFBQmdBQUFBWUFBQUFHQUFBQUJnQUFBQVlBQUFBR0FBQUFCZ0FBQUFZQUFBQUdB''@;'; + put 'put ''QUFBQXdBQUFBWUFBQUFHQUFBQUJnQUFBQVlBQUFBR0FBQUFCZ0FBQUFZQUFBQUdBQUFBQmdBQUFBWUFBQUFHQUFBQUJnQUFBQVlBQUFBR0FBQUFCZ0FBQUFZQUFBQUdBQUFBQmdBQUFJQUFBQUI1c3dFQVdyTUJBQ0I4QVFDR3N3RUFmck1CQUl5ekFRQUFBQUFBSm9BQkFDK0FBUUEyZ0FFQVJJ''@;'; + put 'put ''QUJBSHF5QVFDaXN3RUFTNEFCQUZLQUFRQUJBQUFBQ0FBQUFQLy8vLzhBQUFBQUFBQUFBQ2dBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBOElFQkFBZ0FBQUFEQUFBQStZRUJBUDJCQVFBTEFBQUFCZ0FBQUtpTkFRQUpnZ0VBQWdBQUFBRUFBQUFNZ2dFQUVJSUJBQVFBQUFBQ0FBQUFGWUlCQUJt''@;'; + put 'put ''Q0FRQUVBQUFBQkFBQUFCNkNBUUFqZ2dFQUJRQUFBQVVBQUFBcGdnRUFMWUlCQUFRQUFBQUhBQUFBTW9JQkFEYUNBUUFGQUFBQUNRQUFBRHlDQVFCQWdnRUFCQUFBQUFvQUFBQkZnZ0VBU29JQkFBUUFBQUFNQUFBQVQ0SUJBT0tHQVFBQUFBQUFBUUFBQU9xR0FRQUJBQUFBQUFBQUFIV3lBUUFC''@;'; + put 'put ''QUFBQUFRQUFBQjBTQWdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFNdUZBUUF4QUFBQUFBQUFBQUFBQUFDanJRRUFFQUFBQUVVZUFnQ0FBQUFBeElVQkFFQUFBQUFPb0FFQUVBQUFBTWFGQVFCQUFBQUFBQUFBQUFBQUFBQ1NoUUVBQVFBQUFKbUZBUUFDQUFBQW5vVUJBQU1BQUFETXBnRUFC''@;'; + put 'put ''QUFBQURDZEFRQUZBQUFBb29VQkFBWUFBQUFkRWdJQUNBQUFBS2FGQVFBaEFBQUFxb1VCQUNJQUFBQ3VoUUVBSWdBQUFMS0ZBUUFCQUFBQXQ0VUJBQWNBQUFDOWhRRUFKd0FBQUFBQUFBQUFBQUFBQVFBQUFBQUFBQUFBQUFBQS8vLy8vd0FBQUFBcEFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFQ''@;'; + put 'put ''MktBUUFFaXdFQUFBQUFBS1dOQVFDb2pRRUFxNDBCQUFBQUFBQUFBQUFBQVFBQUFBSUFBQUQvLy8vL2FJMEJBRzZOQVFBZEVnSUFBQUFBQUdRQUFBQmxBQUFBWmdBQUFHUUFBQUFJQUFBQUNBQUFBQUFBQUFBQUFBQUFLZ0FBQUJFQUFBQUFBQUFBQUFBQUFBQUFBQUFJQUFBQUNBQUFBQUFBQUFB''@;'; + put 'put ''SkFBQUFLd0FBQUJFQUFBQUFBQUFBQUFBQUFBQUFBQUFJQUFBQS8vLy8vd0FBQUFBQUFBQUFMQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQURNcGdFQVlGVUFBSUFHQUFBQUFBQUErWndCQUdCVkFBQ3dCZ0FBQUFBQUFOS2xBUUJnVlFBQTRBWUFBQUFBQUFBQm5RRUFZRlVBQU9BR0FBQUFBQUFB''@;'; + put 'put ''QnAwQkFHQlZBQUFRQndBQUFBQUFBQTJkQVFCNFZRQUFFQWNBQUFBQUFBQVRuUUVBWUZVQUFFQUhBQUFBQUFBQUY1MEJBR0JWQUFCd0J3QUFBQUFBQUIwU0FnQmdWUUFBb0FjQUFBQUFBQUFnblFFQVlGVUFBS0FIQUFBQUFBQUFLcDBCQUdCVkFBQlFCZ0FBQUFBQUFEQ2RBUUJnVlFBQTBBY0FB''@;'; + put 'put ''QUFBQUFBNG5RRUFZRlVBQUFBSUFBQUFBQUFBUXAwQkFHQlZBQUF3Q0FBQUFBQUFBRkNkQVFCZ1ZRQUFZQWdBQUFBQUFBQlduUUVBWUZVQUFKQUlBQUFBQUFBQVg1MEJBR0JWQUFEQUNBQUFBQUFBQUdlZEFRQmdWUUFBOEFnQUFBQUFBQUJ3blFFQVlGVUFBQ0FKQUFBQUFBQUFlSjBCQUdCVkFB''@;'; + put 'put ''QlFDUUFBQUFBQUFIMmRBUUJnVlFBQWdBa0FBQUFBQUFDQm5RRUFZRlVBQUxBSkFBQUFBQUFBaUowQkFHQlZBQURnQ1FBQUFBQUFBSTZkQVFCZ1ZRQUFFQW9BQUFBQUFBQ1luUUVBa0ZVQUFFQUtBQUFBQUFBQW9aMEJBR0JWQUFDQUJnQUFBQUFBQUthZEFRQmdWUUFBZ0FZQUFBQUFBQUN3blFF''@;'; + put 'put ''QVlGVUFBSEFLQUFBQUFBQUF0NTBCQUdCVkFBQ2dDZ0FBQUFBQUFNU2RBUUJnVlFBQTBBb0FBQUFBQUFEU25RRUFZRlVBQUFBTEFBQUFBQUFBNEowQkFHQlZBQUF3Q3dBQUFBQUFBT3lkQVFCZ1ZRQUFZQXNBQUFBQUFBRDVuUUVBWUZVQUFKQUxBQUFBQUFBQUFwNEJBR0JWQUFEQUN3QUFBQUFB''@;'; + put 'put ''QUF5ZUFRQmdWUUFBOEFzQUFBQUFBQUFWbmdFQVlGVUFBQ0FNQUFBQUFBQUFIWjRCQUdCVkFBQlFEQUFBQUFBQUFDV2VBUUJnVlFBQWdBd0FBQUFBQUFBdW5nRUFZRlVBQUxBTUFBQUFBQUFBTXA0QkFHQlZBQURnREFBQUFBQUFBRDJlQVFCZ1ZRQUFFQTBBQUFBQUFBQkJuZ0VBWUZVQUFFQU5B''@;'; + put 'put ''QUFBQUFBQVM1NEJBR0JWQUFCd0RRQUFBQUFBQUZTZUFRQmdWUUFBb0EwQUFBQUFBQUJjbmdFQVlGVUFBTkFOQUFBQUFBQUFhWjRCQUdCVkFBQUFEZ0FBQUFBQUFIV2VBUUJnVlFBQU1BNEFBQUFBQUFDQW5nRUFZRlVBQUdBT0FBQUFBQUFBa0o0QkFHQlZBQUNRRGdBQUFBQUFBSjZlQVFCZ1ZR''@;'; + put 'put ''QUF3QTRBQUFBQUFBQ3RuZ0VBWUZVQUFQQU9BQUFBQUFBQXQ1NEJBR0JWQUFBZ0R3QUFBQUFBQU1DZUFRQmdWUUFBVUE4QUFBQUFBQURLbmdFQVlGVUFBSUFQQUFBQUFBQUExSjRCQUdCVkFBQ3dEd0FBQUFBQUFOdWVBUUJnVlFBQTRBOEFBQUFBQUFEaW5nRUFZRlVBQUJBUUFBQUFBQUFBN0o0''@;'; + put 'put ''QkFLaFZBQUFBQUFBQUFBQUFBUE9lQVFDb1ZRQUFBQUFBQUFBQUFBRFZuQUVBd0ZVQUFBQUFBQUFBQUFBQSs1NEJBTmhWQUFCQUVBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJiQUFBQVhBQUFBQmNBQUFBRUFBQUFBZ0FBQUF3QUFBQmRBQUFBWEFBQUFCY0FBQUFGQUFBQUFBQUFBQTBB''@;'; + put 'put ''QUFCYkFBQUFYQUFBQUJjQUFBQUVBQUFBQWdBQUFBd0FBQUJlQUFBQVh3QUFBQmdBQUFBR0FBQUFBd0FBQUE0QUFBQmdBQUFBWVFBQUFCY0FBQUFIQUFBQUFBQUFBQThBQUFCYkFBQUFYQUFBQUJjQUFBQUlBQUFBQWdBQUFBd0FBQUFRQUFBQUVRQUFBQklBQUFBVEFBQUEvWjhCQUFTZ0FRQUFB''@;'; + put 'put ''QUFBREtBQkFBNmdBUUIvSGdJQUVLQUJBQXdBQUFBRUFBQUFCZ0FBQUFJQUFBQURBQUFBQVFBQUFBa0FBQUFJQUFBQUN3QUFBQXdBQUFBTkFBQUFEZ0FBQUE4QUFBQVFBQUFBRVFBQUFCSUFBQUFWQUFBQUZnQUFBQmNBQUFBWUFBQUFHUUFBQUJvQUFBQWJBQUFBSEFBQUFCOEFBQUFnQUFBQUlR''@;'; + put 'put ''QUFBQ0lBQUFBakFBQUFKQUFBQUNVQUFBQW1BQUFBS1FBQUFDb0FBQUFyQUFBQUxBQUFBQzBBQUFBdUFBQUFMd0FBQURBQUFBQXpBQUFBTkFBQUFEVUFBQUEyQUFBQU53QUFBRGdBQUFBNUFBQUFPZ0FBQUQwQUFBQStBQUFBUHdBQUFFQUFBQUJCQUFBQVFnQUFBRU1BQUFCRUFBQUFSd0FBQUVn''@;'; + put 'put ''QUFBQkpBQUFBU2dBQUFFc0FBQUJNQUFBQVRRQUFBRTRBQUFCUkFBQUFVZ0FBQUZNQUFBQlVBQUFBVlFBQUFGWUFBQUJYQUFBQVdBQUFBRjJoQVFCdG9RRUFlcUVCQUFBQUFBQUFBQUFBQkFBQUFIK2hBUUFBQUFBQUFBQUFBSXFoQVFCdG9RRUFlcUVCQUFBQUFBQ2hvUUVBQlFBQUFIK2hBUUFB''@;'; + put 'put ''QUFBQXFhRUJBTENoQVFCdG9RRUF3S0VCQUFBQUFBQUFBQUFBQmdBQUFIK2hBUURyc1FFQUFBQUFBTVdoQVFCdG9RRUF3S0VCQUFBQUFBQ2hvUUVBQndBQUFIK2hBUURyc1FFQXFhRUJBTnloQVFEcG9RRUF3S0VCQUFBQUFBQUFBQUFBQ2dBQUFQZWhBUURyc1FFQUFBQUFBUDJoQVFEcG9RRUF3''@;'; + put 'put ''S0VCQUFBQUFBQ3BvUUVBQ3dBQUFQZWhBUURyc1FFQXFhRUJBQkNpQVFEcG9RRUFIcUlCQUFBQUFBQUFBQUFBQ0FBQUFQZWhBUUFBQUFBQUFBQUFBQ1NpQVFEcG9RRUFIcUlCQUFBQUFBQ3BvUUVBQ1FBQUFQZWhBUUFBQUFBQXFhRUJBRGlpQVFBNG9nRUFBQUFBQUFBQUFBQUFBQUFBREFBQUFF''@;'; + put 'put ''Q2lBUUFBQUFBQUFBQUFBRXFpQVFBNG9nRUE2N0VCQUFBQUFBQUFBQUFBRGdBQUFFQ2lBUURyc1FFQUFBQUFBRmVpQVFBNG9nRUE2N0VCQUFBQUFBQ2hvUUVBRHdBQUFFQ2lBUURyc1FFQXFhRUJBR3VpQVFBNG9nRUFBQUFBQUFBQUFBQ2hvUUVBRFFBQUFFQ2lBUUFBQUFBQXFhRUJBSHVpQVFC''@;'; + put 'put ''N29nRUFBQUFBQUFBQUFBQUFBQUFBRUFBQUFIK2hBUUFBQUFBQUFBQUFBSVdpQVFCN29nRUE2N0VCQUFBQUFBQUFBQUFBRWdBQUFIK2hBUURyc1FFQUFBQUFBSlNpQVFCN29nRUE2N0VCQUFBQUFBQ2hvUUVBRXdBQUFIK2hBUURyc1FFQXFhRUJBS3FpQVFCN29nRUFBQUFBQUx1aUFRQUFBQUFB''@;'; + put 'put ''RkFBQUFIK2hBUUFBQUFBQUFBQUFBTVdpQVFCN29nRUE2N0VCQUx1aUFRQUFBQUFBRmdBQUFIK2hBUURyc1FFQUFBQUFBTnVpQVFCN29nRUE2N0VCQUx1aUFRQ2hvUUVBRndBQUFIK2hBUURyc1FFQXFhRUJBUGlpQVFCN29nRUFBQUFBQUx1aUFRQ2hvUUVBRlFBQUFIK2hBUUFBQUFBQXFhRUJB''@;'; + put 'put ''QkdqQVFCN29nRUFBQUFBQUFBQUFBQ2hvUUVBRVFBQUFIK2hBUUFBQUFBQXFhRUJBQ09qQVFBNW93RUE2N0VCQUFBQUFBQUFBQUFBR2dBQUFQZWhBUURyc1FFQUFBQUFBRTZqQVFBNW93RUE2N0VCQUFBQUFBQ3BvUUVBR3dBQUFQZWhBUURyc1FFQXFhRUJBR3FqQVFBNW93RUFBQUFBQUFBQUFB''@;'; + put 'put ''Q3BvUUVBR1FBQUFQZWhBUUFBQUFBQXFhRUJBSUtqQVFBNW93RUFtYU1CQUFBQUFBQUFBQUFBR0FBQUFQZWhBUUFBQUFBQUFBQUFBSitqQVFDdG93RUE2N0VCQUFBQUFBQUFBQUFBSGdBQUFQZWhBUURyc1FFQUFBQUFBTCtqQVFDdG93RUE2N0VCQUFBQUFBQ3BvUUVBSHdBQUFQZWhBUURyc1FF''@;'; + put 'put ''QXFhRUJBTk9qQVFDdG93RUFBQUFBQUFBQUFBQ3BvUUVBSFFBQUFQZWhBUUFBQUFBQXFhRUJBT09qQVFDdG93RUFtYU1CQUFBQUFBQUFBQUFBSEFBQUFQZWhBUUFBQUFBQUFBQUFBUEtqQVFEeW93RUFBQUFBQUFBQUFBQUFBQUFBSUFBQUFQbWpBUUFBQUFBQUFBQUFBQUdrQVFBTXBBRUE2N0VC''@;'; + put 'put ''QUFBQUFBQUFBQUFBQWdBQUFQZWhBUURyc1FFQUFBQUFBQktrQVFBTXBBRUE2N0VCQUFBQUFBQ3BvUUVBQXdBQUFQZWhBUURyc1FFQXFhRUJBQ09rQVFBTXBBRUFBQUFBQUFBQUFBQ3BvUUVBQVFBQUFQZWhBUUFBQUFBQXFhRUJBTnFsQVFBTXBBRUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFQZWhB''@;'; + put 'put ''UUFBQUFBQUFBQUFBRENrQVFCS3BBRUFXYVFCQUFBQUFBQ3BvUUVBSVFBQUFQZWhBUUFBQUFBQXFhRUJBR0NrQVFCdHBBRUFBQUFBQUFBQUFBQUFBQUFBSWdBQUFQbWpBUUFBQUFBQUFBQUFBQWdBQUFBRUFBQUFBQUFBQUFvQUFBQXRBQUFBRWdBQUFBQUFBQUFBQUFBQUFBQUFBQWdBQUFELy8v''@;'; + put 'put ''Ly9BQUFBQUFBQUFBQXVBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQW1uQVFER0FBQUFENmNCQU1FQUFBQVdwd0VBd2dBQUFCeW5BUURBQUFBQUk2Y0JBSkVEQUFBcHB3RUF4UUFBQUMrbkFRRERBQUFBTnFjQkFNUUFBQUE3cHdFQWtnTUFBRUNuQVFESEFBQUFSNmNCQUtjREFBQkxwd0VBSVNB''@;'; + put 'put ''QUFGS25BUUNVQXdBQVdLY0JBTkFBQUFCY3B3RUF5UUFBQUdPbkFRREtBQUFBYWFjQkFNZ0FBQUJ3cHdFQWxRTUFBSGluQVFDWEF3QUFmS2NCQU1zQUFBQ0Jwd0VBa3dNQUFJZW5BUUROQUFBQWpxY0JBTTRBQUFDVXB3RUF6QUFBQUp1bkFRQ1pBd0FBb0tjQkFNOEFBQUNscHdFQW1nTUFBS3Vu''@;'; + put 'put ''QVFDYkF3QUFzcWNCQUp3REFBQzFwd0VBMFFBQUFMeW5BUUNkQXdBQXY2Y0JBRklCQUFERnB3RUEwd0FBQU15bkFRRFVBQUFBMHFjQkFOSUFBQURacHdFQXFRTUFBTituQVFDZkF3QUE1NmNCQU5nQUFBRHVwd0VBMVFBQUFQV25BUURXQUFBQStxY0JBS1lEQUFEK3B3RUFvQU1BQUFHb0FRQXpJ''@;'; + put 'put ''QUFBQjZnQkFLZ0RBQUFMcUFFQW9RTUFBQStvQVFCZ0FRQUFGcWdCQUtNREFBQWNxQUVBM2dBQUFDS29BUUNrQXdBQUpxZ0JBSmdEQUFBc3FBRUEyZ0FBQURPb0FRRGJBQUFBT2FnQkFOa0FBQUJBcUFFQXBRTUFBRWlvQVFEY0FBQUFUYWdCQUo0REFBQlFxQUVBM1FBQUFGZW9BUUI0QVFBQVhL''@;'; + put 'put ''Z0JBSllEQUFCaHFBRUE0UUFBQUdpb0FRRGlBQUFBYnFnQkFMUUFBQUIwcUFFQTVnQUFBSHFvQVFEZ0FBQUFnYWdCQURVaEFBQ0pxQUVBc1FNQUFJK29BUUFtQUFBQWs2Z0JBQ2NpQUFDWHFBRUFJQ0lBQUp1b0FRRGxBQUFBb2FnQkFFZ2lBQUNucUFFQTR3QUFBSzZvQVFEa0FBQUFzNmdCQUI0''@;'; + put 'put ''Z0FBQzVxQUVBc2dNQUFMNm9BUUNtQUFBQXhhZ0JBQ0lnQUFES3FBRUFLU0lBQU02b0FRRG5BQUFBMWFnQkFMZ0FBQURicUFFQW9nQUFBT0NvQVFESEF3QUE1S2dCQU1ZQ0FBRHBxQUVBWXlZQUFPK29BUUJGSWdBQTlLZ0JBS2tBQUFENXFBRUF0U0VBQVArb0FRQXFJZ0FBQTZrQkFLUUFBQUFL''@;'; + put 'put ''cVFFQTB5RUFBQStwQVFBZ0lBQUFGcWtCQUpNaEFBQWJxUUVBc0FBQUFCK3BBUUMwQXdBQUpha0JBR1ltQUFBcnFRRUE5d0FBQURLcEFRRHBBQUFBT2FrQkFPb0FBQUEvcVFFQTZBQUFBRWFwQVFBRklnQUFUS2tCQUFNZ0FBQlJxUUVBQWlBQUFGYXBBUUMxQXdBQVhxa0JBR0VpQUFCa3FRRUF0''@;'; + put 'put ''d01BQUdpcEFRRHdBQUFBYktrQkFPc0FBQUJ4cVFFQXJDQUFBSGFwQVFBRElnQUFmS2tCQUpJQkFBQ0JxUUVBQUNJQUFJaXBBUUM5QUFBQWo2a0JBTHdBQUFDV3FRRUF2Z0FBQUoycEFRQkVJQUFBbzZrQkFMTURBQUNwcVFFQVpTSUFBS3lwQVFBK0FBQUFyNmtCQU5RaEFBQzBxUUVBbENFQUFM''@;'; + put 'put ''bXBBUUJsSmdBQXdLa0JBQ1lnQUFESHFRRUE3UUFBQU02cEFRRHVBQUFBMUtrQkFLRUFBQURhcVFFQTdBQUFBT0dwQVFBUklRQUE1NmtCQUI0aUFBRHRxUUVBS3lJQUFQR3BBUUM1QXdBQTlxa0JBTDhBQUFEOXFRRUFDQ0lBQUFLcUFRRHZBQUFBQjZvQkFMb0RBQUFOcWdFQTBDRUFBQktxQVFD''@;'; + put 'put ''N0F3QUFHYW9CQUNrakFBQWVxZ0VBcXdBQUFDU3FBUUNRSVFBQUthb0JBQWdqQUFBdnFnRUFIQ0FBQURXcUFRQmtJZ0FBT0tvQkFBb2pBQUEvcWdFQUZ5SUFBRWFxQVFES0pRQUFTcW9CQUE0Z0FBQk9xZ0VBT1NBQUFGV3FBUUFZSUFBQVc2b0JBRHdBQUFCZXFnRUFyd0FBQUdPcUFRQVVJQUFB''@;'; + put 'put ''YWFvQkFMVUFBQUJ2cWdFQXR3QUFBRWF6QVFBU0lnQUFkcW9CQUx3REFBQjVxZ0VBQnlJQUFIK3FBUUNnQUFBQWhLb0JBQk1nQUFDS3FnRUFZQ0lBQUkycUFRQUxJZ0FBa0tvQkFLd0FBQUNVcWdFQUNTSUFBSnFxQVFDRUlnQUFuNm9CQVBFQUFBQ21xZ0VBdlFNQUFLbXFBUUR6QUFBQXNLb0JB''@;'; + put 'put ''UFFBQUFDMnFnRUFVd0VBQUx5cUFRRHlBQUFBdzZvQkFENGdBQURKcWdFQXlRTUFBTStxQVFDL0F3QUExNm9CQUpVaUFBRGRxZ0VBS0NJQUFPQ3FBUUNxQUFBQTVhb0JBTG9BQUFEcXFnRUErQUFBQVBHcUFRRDFBQUFBK0tvQkFKY2lBQUQvcWdFQTlnQUFBQVNyQVFDMkFBQUFDYXNCQUFJaUFB''@;'; + put 'put ''QU9xd0VBTUNBQUFCV3JBUUNsSWdBQUdxc0JBTVlEQUFBZXF3RUF3QU1BQUNHckFRRFdBd0FBSmFzQkFMRUFBQUFzcXdFQW93QUFBREtyQVFBeUlBQUFPS3NCQUE4aUFBQTlxd0VBSFNJQUFFS3JBUURJQXdBQVJxc0JBQ0lBQUFCTHF3RUEwaUVBQUZDckFRQWFJZ0FBVnFzQkFDb2pBQUJicXdF''@;'; + put 'put ''QXV3QUFBR0dyQVFDU0lRQUFacXNCQUFrakFBQnNxd0VBSFNBQUFIS3JBUUFjSVFBQWQ2c0JBSzRBQUFCN3F3RUFDeU1BQUlLckFRREJBd0FBaHFzQkFBOGdBQUNLcXdFQU9pQUFBSkdyQVFBWklBQUFsNnNCQUJvZ0FBQ2Rxd0VBWVFFQUFLU3JBUURGSWdBQXFhc0JBS2NBQUFDdXF3RUFyUUFB''@;'; + put 'put ''QUxLckFRRERBd0FBdUtzQkFNSURBQUMvcXdFQVBDSUFBTU9yQVFCZ0pnQUF5cXNCQUlJaUFBRE9xd0VBaGlJQUFOT3JBUUFSSWdBQTE2c0JBSU1pQUFEYnF3RUF1UUFBQU9DckFRQ3lBQUFBNWFzQkFMTUFBQURxcXdFQWh5SUFBTytyQVFEZkFBQUE5YXNCQU1RREFBRDVxd0VBTkNJQUFBQ3NB''@;'; + put 'put ''UUM0QXdBQUJxd0JBTkVEQUFBUHJBRUFDU0FBQUJhc0FRRCtBQUFBSEt3QkFOd0NBQUFpckFFQTF3QUFBQ2lzQVFBaUlRQUFMcXdCQU5FaEFBQXpyQUVBK2dBQUFEcXNBUUNSSVFBQVA2d0JBUHNBQUFCRnJBRUErUUFBQUV5c0FRQ29BQUFBVUt3QkFOSURBQUJXckFFQXhRTUFBRjZzQVFEOEFB''@;'; + put 'put ''QUFZNndCQUJnaEFBQnFyQUVBdmdNQUFHMnNBUUQ5QUFBQWRLd0JBS1VBQUFCNHJBRUEvd0FBQUgyc0FRQzJBd0FBZ3F3QkFBMGdBQUNHckFFQURDQUFBQWNBQUFBSUFBQUFBUUVBQUFnQUFBQUlBQUFBQUFBQUFBQUFBQUF2QUFBQUV3QUFBQUFBQUFBQUFBQUFBQUFBQUFnQUFBQVFBQUFBQUFB''@;'; + put 'put ''QUFBQUFBQUF3QUFBQUZBQUFBQUFBQUFBQUFBQUFBQUFBQUFhekFRQUpBQUFBQ0xNQkFBb0FBQUFOc3dFQUNnQUFBQld6QVFBTEFBQUFHN01CQUFzQUFBQWtzd0VBREFBQUFDZXpBUUFNQUFBQUxiTUJBQTBBQUFBeXN3RUFEUUFBQURxekFRQU9BQUFBUDdNQkFBNEFBQUJHc3dFQUR3QUFBRXl6''@;'; + put 'put ''QVFBUEFBQUFXTE1CQUJBQUFBQmlBQUFBTVFBQUFESUFBQUFVQUFBQU13QUFBR01BQUFBMEFBQUFGUUFBQURVQUFBQUlBQUFBQkFBQUFQLy8vLzhBQUFBQUFBQUFBQlVBQUFBQUFBQUFBQUFBQUFBQUFBQ2p0QUVBVlYzSmY4bC8vd0N1dEFFQXV5M1V2cTdVL3dDNXRBRUFGSGY5L2NDRy93REV0''@;'; + put 'put ''QUVBVlYzSmY4bC8vd0RQdEFFQXV5M1V2cTdVL3dEYXRBRUFGSGY5L2NDRy93RGx0QUVBS21iLy8vK1ovd0R3dEFFQVZWM0pmOGwvL3dEN3RBRUF1eTNVdnE3VS93QUd0UUVBRkhmOS9jQ0cvd0FSdFFFQUttYi8vLytaL3dBY3RRRUFsNjJ3T0d5dy93QW50UUVBVlYzSmY4bC8vd0F5dFFFQXV5''@;'; + put 'put ''M1V2cTdVL3dBOXRRRUFGSGY5L2NDRy93Qkl0UUVBS21iLy8vK1ovd0JUdFFFQWw2MndPR3l3L3dCZXRRRUE2UHp3OEFKLy93QnB0UUVBVlYzSmY4bC8vd0IwdFFFQXV5M1V2cTdVL3dCL3RRRUFGSGY5L2NDRy93Q0t0UUVBS21iLy8vK1ovd0NWdFFFQWw2MndPR3l3L3dDZ3RRRUE2UHp3OEFK''@;'; + put 'put ''Ly93Q3J0UUVBRWVDL3Yxc1gvd0MydFFFQVZWM0pmOGwvL3dEQnRRRUF1eTNVdnE3VS93RE10UUVBRkhmOS9jQ0cvd0RYdFFFQUttYi8vLytaL3dEaXRRRUFsNjJ3T0d5dy93RHR0UUVBNlB6dzhBSi8vd0Q0dFFFQUVlQy92MXNYL3dBRHRnRUFBQUJtWm1abS93QU90Z0VBa3huMzN1djMvd0FZ''@;'; + put 'put ''dGdFQWprdmhuc3JoL3dBaXRnRUFrYnk5TVlLOS93QXN0Z0VBbnhELzcvUC8vd0EydGdFQWp5N252ZGZuL3dCQXRnRUFqMy9XYTY3Vy93Qkt0Z0VBazlDMUlYRzEvd0JVdGdFQW54RC83L1AvL3dCZXRnRUFqeTdudmRmbi93Qm90Z0VBajMvV2E2N1cvd0J5dGdFQWtieTlNWUs5L3dCOHRnRUFs''@;'; + put 'put ''ZkdjQ0ZHYy93Q0d0Z0VBbnhELzcvUC8vd0NRdGdFQWxDdnZ4dHZ2L3dDYXRnRUFqa3ZobnNyaC93Q2t0Z0VBajMvV2E2N1cvd0N1dGdFQWtieTlNWUs5L3dDNHRnRUFsZkdjQ0ZHYy93REN0Z0VBbnhELzcvUC8vd0RNdGdFQWxDdnZ4dHZ2L3dEV3RnRUFqa3ZobnNyaC93RGd0Z0VBajMvV2E2''@;'; + put 'put ''N1cvd0RxdGdFQWtLbkdRcExHL3dEMHRnRUFrOUMxSVhHMS93RCt0Z0VBbC9HVUNFV1Uvd0FJdHdFQWxBai85L3YvL3dBU3R3RUFreG4zM3V2My93QWN0d0VBbEN2dnh0dnYvd0FtdHdFQWprdmhuc3JoL3dBd3R3RUFqMy9XYTY3Vy93QTZ0d0VBa0tuR1FwTEcvd0JFdHdFQWs5QzFJWEcxL3dC''@;'; + put 'put ''T3R3RUFsL0dVQ0VXVS93Qll0d0VBbEFqLzkvdi8vd0JpdHdFQWt4bjMzdXYzL3dCc3R3RUFsQ3Z2eHR2di93QjJ0d0VBamt2aG5zcmgvd0NBdHdFQWozL1dhNjdXL3dDS3R3RUFrS25HUXBMRy93Q1V0d0VBazlDMUlYRzEvd0NldHdFQWxmR2NDRkdjL3dDb3R3RUFtT3RyQ0RCci93Q3l0d0VB''@;'; + put 'put ''Ris5VVZEQUYvd0M4dHdFQWQvODhBRHd3L3dESHR3RUFGK3lNakZFSy93RFJ0d0VBR01LL3Y0RXQvd0RidHdFQUhYRGYzOEo5L3dEbHR3RUFIalQyOXVqRC93RHZ0d0VBZVNicXgrcmwvd0Q1dHdFQWVGL05nTTNCL3dBRHVBRUFmS1dYTlplUC93QU51QUVBZlB4bUFXWmUvd0FYdUFFQUYrOVVW''@;'; + put 'put ''REFGL3dBaHVBRUFmUHhtQVdaZS93QXN1QUVBZC84OEFEd3cvd0EzdUFFQUYreU1qRkVLL3dCQnVBRUFHTUsvdjRFdC93Qkx1QUVBSFhEZjM4Sjkvd0JWdUFFQUhqVDI5dWpEL3dCZnVBRUFBQUQxOWZYMS93QnB1QUVBZVNicXgrcmwvd0J6dUFFQWVGL05nTTNCL3dCOXVBRUFmS1dYTlplUC93''@;'; + put 'put ''Q0h1QUVBSElmWTJMTmwvd0NRdUFFQUFBRDE5ZlgxL3dDWnVBRUFlMyswV3JTcy93Q2l1QUVBRmRlbXBtRWEvd0NydUFFQUhYRGYzOEo5L3dDMHVBRUFlRi9OZ00zQi93Qzl1QUVBZWYyRkFZVngvd0RHdUFFQUZkZW1wbUVhL3dEUHVBRUFIWERmMzhKOS93RFl1QUVBQUFEMTlmWDEvd0RodUFF''@;'; + put 'put ''QWVGL05nTTNCL3dEcXVBRUFlZjJGQVlWeC93RHp1QUVBRit5TWpGRUsvd0Q4dUFFQUhJZlkyTE5sL3dBRnVRRUFIalQyOXVqRC93QU91UUVBZVNicXgrcmwvd0FYdVFFQWUzKzBXclNzL3dBZ3VRRUFmUHhtQVdaZS93QXB1UUVBRit5TWpGRUsvd0F5dVFFQUhJZlkyTE5sL3dBN3VRRUFIalQy''@;'; + put 'put ''OXVqRC93QkV1UUVBQUFEMTlmWDEvd0JOdVFFQWVTYnF4K3JsL3dCV3VRRUFlMyswV3JTcy93QmZ1UUVBZlB4bUFXWmUvd0JvdVFFQUYreU1qRkVLL3dCeHVRRUFHTUsvdjRFdC93QjZ1UUVBSFhEZjM4Sjkvd0NEdVFFQUhqVDI5dWpEL3dDTXVRRUFlU2JxeCtybC93Q1Z1UUVBZUYvTmdNM0Iv''@;'; + put 'put ''d0NldVFFQWZLV1hOWmVQL3dDbnVRRUFmUHhtQVdaZS93Q3d1UUVBRit5TWpGRUsvd0M1dVFFQUdNSy92NEV0L3dEQ3VRRUFIWERmMzhKOS93REx1UUVBSGpUMjl1akQvd0RVdVFFQUFBRDE5ZlgxL3dEZHVRRUFlU2JxeCtybC93RG11UUVBZUYvTmdNM0Ivd0R2dVFFQWZLV1hOWmVQL3dENHVR''@;'; + put 'put ''RUFmUHhtQVdaZS93QUJ1Z0VBaHhUNTVmWDUvd0FLdWdFQWRVclltZGpKL3dBVHVnRUFaN21pTEtKZi93QWN1Z0VBaUE3Nzdmajcvd0FsdWdFQWZ6YmlzdUxpL3dBdXVnRUFjWGpDWnNLay93QTN1Z0VBWXI2TEk0dEYvd0JBdWdFQWlBNzc3Zmo3L3dCSnVnRUFmemJpc3VMaS93QlN1Z0VBY1hq''@;'; + put 'put ''Q1pzS2svd0JidWdFQVo3bWlMS0pmL3dCa3VnRUFadjl0QUcwcy93QnR1Z0VBaUE3Nzdmajcvd0IydWdFQWR5THN6T3ptL3dCL3VnRUFkVXJZbWRqSi93Q0l1Z0VBY1hqQ1pzS2svd0NSdWdFQVo3bWlMS0pmL3dDYXVnRUFadjl0QUcwcy93Q2p1Z0VBaUE3Nzdmajcvd0NzdWdFQWR5THN6T3pt''@;'; + put 'put ''L3dDMXVnRUFkVXJZbWRqSi93Qyt1Z0VBY1hqQ1pzS2svd0RIdWdFQWFaK3VRYTUyL3dEUXVnRUFZcjZMSTR0Ri93RFp1Z0VBWnY5WUFGZ2svd0RpdWdFQWhnYjk5L3o5L3dEcnVnRUFoeFQ1NWZYNS93RDB1Z0VBZHlMc3pPem0vd0Q5dWdFQWRVclltZGpKL3dBR3V3RUFjWGpDWnNLay93QVB1''@;'; + put 'put ''d0VBYVordVFhNTIvd0FZdXdFQVlyNkxJNHRGL3dBaHV3RUFadjlZQUZnay93QXF1d0VBaGdiOTkvejkvd0F6dXdFQWh4VDU1Zlg1L3dBOHV3RUFkeUxzek96bS93QkZ1d0VBZFVyWW1kakovd0JPdXdFQWNYakNac0trL3dCWHV3RUFhWit1UWE1Mi93Qmd1d0VBWXI2TEk0dEYvd0JwdXdFQVp2''@;'; + put 'put ''OXRBRzBzL3dCeXV3RUFaZjlFQUVRYi93Qjd1d0VBa0JUMDRPejAvd0NFdXdFQWxFYmFucnphL3dDTnV3RUF4SHVuaUZhbi93Q1d1d0VBaUE3Nzdmajcvd0NmdXdFQWtqWGpzODNqL3dDb3V3RUFva3JHakpiRy93Q3h1d0VBeXBXZGlFR2Qvd0M2dXdFQWlBNzc3Zmo3L3dERHV3RUFralhqczgz''@;'; + put 'put ''ai93RE11d0VBb2tyR2pKYkcvd0RWdXdFQXhIdW5pRmFuL3dEZXV3RUExdUdCZ1E5OC93RG51d0VBaUE3Nzdmajcvd0R3dXdFQWxDdm12OVBtL3dENXV3RUFsRWJhbnJ6YS93QUN2QUVBb2tyR2pKYkcvd0FMdkFFQXhIdW5pRmFuL3dBVXZBRUExdUdCZ1E5OC93QWR2QUVBaUE3Nzdmajcvd0Ft''@;'; + put 'put ''dkFFQWxDdm12OVBtL3dBdnZBRUFsRWJhbnJ6YS93QTR2QUVBb2tyR2pKYkcvd0JCdkFFQXZtU3hqR3V4L3dCS3ZBRUF5cFdkaUVHZC93QlR2QUVBMWZ4dWJnRnIvd0JjdkFFQWhnYjk5L3o5L3dCbHZBRUFrQlQwNE96MC93QnV2QUVBbEN2bXY5UG0vd0IzdkFFQWxFYmFucnphL3dDQXZBRUFv''@;'; + put 'put ''a3JHakpiRy93Q0p2QUVBdm1TeGpHdXgvd0NTdkFFQXlwV2RpRUdkL3dDYnZBRUExZnh1YmdGci93Q2t2QUVBaGdiOTkvejkvd0N0dkFFQWtCVDA0T3owL3dDMnZBRUFsQ3ZtdjlQbS93Qy92QUVBbEViYW5yemEvd0RJdkFFQW9rckdqSmJHL3dEUnZBRUF2bVN4akd1eC93RGF2QUVBeXBXZGlF''@;'; + put 'put ''R2Qvd0RqdkFFQTF1R0JnUTk4L3dEc3ZBRUExZjlOVFFCTC93RDF2QUVBY3RPZUc1NTMvd0QvdkFFQUV2eloyVjhDL3dBSnZRRUFyVit6ZFhDei93QVR2UUVBY3RPZUc1NTMvd0FkdlFFQUV2eloyVjhDL3dBbnZRRUFyVit6ZFhDei93QXh2UUVBNmRIbjV5bUsvd0E3dlFFQWN0T2VHNTUzL3dC''@;'; + put 'put ''RnZRRUFFdnpaMlY4Qy93QlB2UUVBclYremRYQ3ovd0JadlFFQTZkSG41eW1LL3dCanZRRUFQdENtWnFZZS93QnR2UUVBY3RPZUc1NTMvd0IzdlFFQUV2eloyVjhDL3dDQnZRRUFyVit6ZFhDei93Q0x2UUVBNmRIbjV5bUsvd0NWdlFFQVB0Q21acVllL3dDZnZRRUFIL3ptNXFzQy93Q3B2UUVB''@;'; + put 'put ''Y3RPZUc1NTMvd0N6dlFFQUV2eloyVjhDL3dDOXZRRUFyVit6ZFhDei93REh2UUVBNmRIbjV5bUsvd0RSdlFFQVB0Q21acVllL3dEYnZRRUFIL3ptNXFzQy93RGx2UUVBRzlLbXBuWWQvd0R2dlFFQWN0T2VHNTUzL3dENXZRRUFFdnpaMlY4Qy93QUR2Z0VBclYremRYQ3ovd0FOdmdFQTZkSG41''@;'; + put 'put ''eW1LL3dBWHZnRUFQdENtWnFZZS93QWh2Z0VBSC96bTVxc0Mvd0FydmdFQUc5S21wbllkL3dBMXZnRUFBQUJtWm1abS93QS92Z0VBVEJuejRQUGIvd0JJdmdFQVh6M2RxTjIxL3dCUnZnRUFqS3JLUTZMSy93QmF2Z0VBUVJINThQbm8vd0JqdmdFQVZ5N2t1dVM4L3dCc3ZnRUFlMlhNZTh6RS93''@;'; + put 'put ''QjF2Z0VBamNXK0s0eSsvd0IrdmdFQVFSSDU4UG5vL3dDSHZnRUFWeTdrdXVTOC93Q1F2Z0VBZTJYTWU4ekUvd0NadmdFQWpLcktRNkxLL3dDaXZnRUFrZk9zQ0dpcy93Q3J2Z0VBUVJINThQbm8vd0MwdmdFQVRTbnJ6T3ZGL3dDOXZnRUFYejNkcU4yMS93REd2Z0VBZTJYTWU4ekUvd0RQdmdF''@;'; + put 'put ''QWpLcktRNkxLL3dEWXZnRUFrZk9zQ0dpcy93RGh2Z0VBUVJINThQbm8vd0RxdmdFQVRTbnJ6T3ZGL3dEenZnRUFYejNkcU4yMS93RDh2Z0VBZTJYTWU4ekUvd0FGdndFQWlhRFRUclBUL3dBT3Z3RUFqY1crSzR5Ky93QVh2d0VBay9LZUNGaWUvd0FndndFQVBBejg5L3p3L3dBcHZ3RUFUQm56''@;'; + put 'put ''NFBQYi93QXl2d0VBVFNucnpPdkYvd0E3dndFQVh6M2RxTjIxL3dCRXZ3RUFlMlhNZTh6RS93Qk52d0VBaWFEVFRyUFQvd0JXdndFQWpjVytLNHkrL3dCZnZ3RUFrL0tlQ0ZpZS93Qm92d0VBUEF6ODkvencvd0J4dndFQVRCbno0UFBiL3dCNnZ3RUFUU25yek92Ri93Q0R2d0VBWHozZHFOMjEv''@;'; + put 'put ''d0NNdndFQWUyWE1lOHpFL3dDVnZ3RUFpYURUVHJQVC93Q2V2d0VBamNXK0s0eSsvd0NudndFQWtmT3NDR2lzL3dDd3Z3RUFsdStCQ0VDQi93QzV2d0VBU2hYMTVmWGcvd0RFdndFQVVFalpvZG1iL3dEUHZ3RUFZcktqTWFOVS93RGF2d0VBU1EvNDdmanAvd0RsdndFQVRqYmt1dVN6L3dEd3Z3''@;'; + put 'put ''RUFWbWpFZE1SMi93RDd2d0VBWXI2TEk0dEYvd0FHd0FFQVNRLzQ3ZmpwL3dBUndBRUFUamJrdXVTei93QWN3QUVBVm1qRWRNUjIvd0Fud0FFQVlyS2pNYU5VL3dBeXdBRUFadjl0QUcwcy93QTl3QUVBU1EvNDdmanAvd0JJd0FFQVRTenB4K25BL3dCVHdBRUFVRWpab2RtYi93QmV3QUVBVm1q''@;'; + put 'put ''RWRNUjIvd0Jwd0FFQVlyS2pNYU5VL3dCMHdBRUFadjl0QUcwcy93Qi93QUVBU1EvNDdmanAvd0NLd0FFQVRTenB4K25BL3dDVndBRUFVRWpab2RtYi93Q2d3QUVBVm1qRWRNUjIvd0Nyd0FFQVlKNnJRYXRkL3dDMndBRUFZcjZMSTR0Ri93REJ3QUVBYlA5YUFGb3kvd0RNd0FFQVNBZjg5L3ox''@;'; + put 'put ''L3dEWHdBRUFTaFgxNWZYZy93RGl3QUVBVFN6cHgrbkEvd0R0d0FFQVVFalpvZG1iL3dENHdBRUFWbWpFZE1SMi93QUR3UUVBWUo2clFhdGQvd0FPd1FFQVlyNkxJNHRGL3dBWndRRUFiUDlhQUZveS93QWt3UUVBU0FmODkvejEvd0F2d1FFQVNoWDE1ZlhnL3dBNndRRUFUU3pweCtuQS93QkZ3''@;'; + put 'put ''UUVBVUVqWm9kbWIvd0JRd1FFQVZtakVkTVIyL3dCYndRRUFZSjZyUWF0ZC93Qm13UUVBWXI2TEk0dEYvd0J4d1FFQVp2OXRBRzBzL3dCOHdRRUFaZjlFQUVRYi93Q0h3UUVBQUFEdzhQRHcvd0NSd1FFQUFBQzl2YjI5L3dDYndRRUFBQUJqWTJOai93Q2x3UUVBQUFEMzkvZjMvd0N2d1FFQUFB''@;'; + put 'put ''RE16TXpNL3dDNXdRRUFBQUNXbHBhVy93RER3UUVBQUFCU1VsSlMvd0ROd1FFQUFBRDM5L2YzL3dEWHdRRUFBQURNek16TS93RGh3UUVBQUFDV2xwYVcvd0Ryd1FFQUFBQmpZMk5qL3dEMXdRRUFBQUFsSlNVbC93RC93UUVBQUFEMzkvZjMvd0FKd2dFQUFBRFoyZG5aL3dBVHdnRUFBQUM5dmIy''@;'; + put 'put ''OS93QWR3Z0VBQUFDV2xwYVcvd0Fud2dFQUFBQmpZMk5qL3dBeHdnRUFBQUFsSlNVbC93QTd3Z0VBQUFEMzkvZjMvd0JGd2dFQUFBRFoyZG5aL3dCUHdnRUFBQUM5dmIyOS93Qlp3Z0VBQUFDV2xwYVcvd0Jqd2dFQUFBQnpjM056L3dCdHdnRUFBQUJTVWxKUy93QjN3Z0VBQUFBbEpTVWwvd0NC''@;'; + put 'put ''d2dFQUFBRC8vLy8vL3dDTHdnRUFBQUR3OFBEdy93Q1Z3Z0VBQUFEWjJkblovd0Nmd2dFQUFBQzl2YjI5L3dDcHdnRUFBQUNXbHBhVy93Q3p3Z0VBQUFCemMzTnovd0M5d2dFQUFBQlNVbEpTL3dESHdnRUFBQUFsSlNVbC93RFJ3Z0VBQUFELy8vLy8vd0Rid2dFQUFBRHc4UER3L3dEbHdnRUFB''@;'; + put 'put ''QURaMmRuWi93RHZ3Z0VBQUFDOXZiMjkvd0Q1d2dFQUFBQ1dscGFXL3dBRHd3RUFBQUJ6YzNOei93QU53d0VBQUFCU1VsSlMvd0FYd3dFQUFBQWxKU1VsL3dBaHd3RUFBQUFBQUFBQS93QXJ3d0VBRlREKy91Yk8vd0Ezd3dFQUU1UDkvYTVyL3dCRHd3RUFEdkRtNWxVTi93QlB3d0VBRXlEKy91''@;'; + put 'put ''M2Uvd0Jid3dFQUZIajkvYjZGL3dCbnd3RUFFY0w5L1kwOC93Qnp3d0VBRGYzWjJVY0Ivd0Ivd3dFQUV5RCsvdTNlL3dDTHd3RUFGSGo5L2I2Ri93Q1h3d0VBRWNMOS9ZMDgvd0Nqd3dFQUR2RG01bFVOL3dDdnd3RUFEZnFtcGpZRC93Qzd3d0VBRXlEKy91M2Uvd0RId3dFQUZWdjkvZENpL3dE''@;'; + put 'put ''VHd3RUFFNVA5L2E1ci93RGZ3d0VBRWNMOS9ZMDgvd0Ryd3dFQUR2RG01bFVOL3dEM3d3RUFEZnFtcGpZRC93QUR4QUVBRXlEKy91M2Uvd0FQeEFFQUZWdjkvZENpL3dBYnhBRUFFNVA5L2E1ci93QW54QUVBRWNMOS9ZMDgvd0F6eEFFQUVPcng4V2tUL3dBL3hBRUFEZjNaMlVnQi93Qkx4QUVB''@;'; + put 'put ''RFBlTWpDMEUvd0JYeEFFQUZSVC8vL1hyL3dCanhBRUFGVEQrL3ViTy93QnZ4QUVBRlZ2OS9kQ2kvd0I3eEFFQUU1UDkvYTVyL3dDSHhBRUFFY0w5L1kwOC93Q1R4QUVBRU9yeDhXa1Qvd0NmeEFFQURmM1oyVWdCL3dDcnhBRUFEUGVNakMwRS93QzN4QUVBRlJULy8vWHIvd0REeEFFQUZURCsv''@;'; + put 'put ''dWJPL3dEUHhBRUFGVnY5L2RDaS93RGJ4QUVBRTVQOS9hNXIvd0RueEFFQUVjTDkvWTA4L3dEenhBRUFFT3J4OFdrVC93RC94QUVBRGYzWjJVZ0Ivd0FMeFFFQURmcW1wallEL3dBWHhRRUFEUFovZnljRS93QWp4UUVBR1RiKy91akkvd0FzeFFFQUUzbjkvYnVFL3dBMXhRRUFCY1hqNDBvei93''@;'; + put 'put ''QSt4UUVBR2lYKy92RFovd0JIeFFFQUdIUDkvY3lLL3dCUXhRRUFEYVQ4L0kxWi93Qlp4UUVBQTlyWDF6QWYvd0JpeFFFQUdpWCsvdkRaL3dCcnhRRUFHSFA5L2N5Sy93QjB4UUVBRGFUOC9JMVovd0I5eFFFQUJjWGo0MG96L3dDR3hRRUFBUCt6c3dBQS93Q1B4UUVBR2lYKy92RFovd0NZeFFF''@;'; + put 'put ''QUdGLzkvZFNlL3dDaHhRRUFFM245L2J1RS93Q3F4UUVBRGFUOC9JMVovd0N6eFFFQUJjWGo0MG96L3dDOHhRRUFBUCt6c3dBQS93REZ4UUVBR2lYKy92RFovd0RPeFFFQUdGLzkvZFNlL3dEWHhRRUFFM245L2J1RS93RGd4UUVBRGFUOC9JMVovd0RweFFFQUI3THY3MlZJL3dEeXhRRUFBOXJY''@;'; + put 'put ''MXpBZi93RDd4UUVBQVArWm1RQUEvd0FFeGdFQUdCTC8vL2ZzL3dBTnhnRUFHVGIrL3VqSS93QVd4Z0VBR0YvOS9kU2Uvd0FmeGdFQUUzbjkvYnVFL3dBb3hnRUFEYVQ4L0kxWi93QXh4Z0VBQjdMdjcyVkkvd0E2eGdFQUE5clgxekFmL3dCRHhnRUFBUCtabVFBQS93Qk14Z0VBR0JMLy8vZnMv''@;'; + put 'put ''d0JWeGdFQUdUYisvdWpJL3dCZXhnRUFHRi85L2RTZS93Qm54Z0VBRTNuOS9idUUvd0J3eGdFQURhVDgvSTFaL3dCNXhnRUFCN0x2NzJWSS93Q0N4Z0VBQTlyWDF6QWYvd0NMeGdFQUFQK3pzd0FBL3dDVXhnRUFBUDkvZndBQS93Q2R4Z0VBamtUanBzN2ovd0NweGdFQXZwbWFhajJhL3dDMnhn''@;'; + put 'put ''RUFrTk8wSDNpMC93REN4Z0VBUVdIZnN0K0svd0RPeGdFQVVyaWdNNkFzL3dEYXhnRUFBR1A3KzVxWi93RG14Z0VBL3VIajR4b2Mvd0R5eGdFQUY0LzkvYjl2L3dEK3hnRUFGZi8vLzM4QS93QUt4d0VBeGlyV3lyTFcvd0FXeHdFQWprVGpwczdqL3dBaXh3RUF2cG1hYWoyYS93QXZ4d0VBS21i''@;'; + put 'put ''Ly8vK1ovd0E4eHdFQWtOTzBIM2kwL3dCSXh3RUFRV0hmc3QrSy93QlV4d0VBVXJpZ002QXMvd0JneHdFQUFHUDcrNXFaL3dCc3h3RUEvdUhqNHhvYy93QjR4d0VBRjQvOS9iOXYvd0NFeHdFQUZmLy8vMzhBL3dDUXh3RUF4aXJXeXJMVy93Q2N4d0VBamtUanBzN2ovd0NveHdFQXZwbWFhajJh''@;'; + put 'put ''L3dDMXh3RUFLbWIvLy8rWi93REN4d0VBRDhXeHNWa28vd0RQeHdFQWtOTzBIM2kwL3dEYnh3RUFRV0hmc3QrSy93RG54d0VBVXJpZ002QXMvd0R6eHdFQUFHUDcrNXFaL3dEL3h3RUEvdUhqNHhvYy93QUx5QUVBRjQvOS9iOXYvd0FYeUFFQUZmLy8vMzhBL3dBanlBRUF4aXJXeXJMVy93QXZ5''@;'; + put 'put ''QUVBamtUanBzN2ovd0E2eUFFQWtOTzBIM2kwL3dCRnlBRUFRV0hmc3QrSy93QlF5QUVBamtUanBzN2ovd0JieUFFQWtOTzBIM2kwL3dCbXlBRUFRV0hmc3QrSy93Qnh5QUVBVXJpZ002QXMvd0I4eUFFQWprVGpwczdqL3dDSHlBRUFrTk8wSDNpMC93Q1N5QUVBUVdIZnN0K0svd0NkeUFFQVVy''@;'; + put 'put ''aWdNNkFzL3dDb3lBRUFBR1A3KzVxWi93Q3p5QUVBamtUanBzN2ovd0MreUFFQWtOTzBIM2kwL3dESnlBRUFRV0hmc3QrSy93RFV5QUVBVXJpZ002QXMvd0RmeUFFQUFHUDcrNXFaL3dEcXlBRUEvdUhqNHhvYy93RDF5QUVBamtUanBzN2ovd0FBeVFFQWtOTzBIM2kwL3dBTHlRRUFRV0hmc3Qr''@;'; + put 'put ''Sy93QVd5UUVBVXJpZ002QXMvd0FoeVFFQUFHUDcrNXFaL3dBc3lRRUEvdUhqNHhvYy93QTN5UUVBRjQvOS9iOXYvd0JDeVFFQWprVGpwczdqL3dCTnlRRUFrTk8wSDNpMC93Qll5UUVBUVdIZnN0K0svd0JqeVFFQVVyaWdNNkFzL3dCdXlRRUFBR1A3KzVxWi93QjV5UUVBL3VIajR4b2Mvd0NF''@;'; + put 'put ''eVFFQUY0LzkvYjl2L3dDUHlRRUFGZi8vLzM4QS93Q2F5UUVBamtUanBzN2ovd0NseVFFQWtOTzBIM2kwL3dDd3lRRUFRV0hmc3QrSy93Qzd5UUVBVXJpZ002QXMvd0RHeVFFQUFHUDcrNXFaL3dEUnlRRUEvdUhqNHhvYy93RGN5UUVBRjQvOS9iOXYvd0RueVFFQUZmLy8vMzhBL3dEeXlRRUF4''@;'; + put 'put ''aXJXeXJMVy93RDl5UUVBQTA3Nys3U3Uvd0FKeWdFQWtqWGpzODNqL3dBVnlnRUFUU25yek92Ri93QWh5Z0VBQTA3Nys3U3Uvd0F0eWdFQWtqWGpzODNqL3dBNXlnRUFUU25yek92Ri93QkZ5Z0VBeWh2azNzdmsvd0JSeWdFQUEwNzcrN1N1L3dCZHlnRUFralhqczgzai93QnB5Z0VBVFNucnpP''@;'; + put 'put ''dkYvd0IxeWdFQXlodmszc3ZrL3dDQnlnRUFHRmorL3RtbS93Q055Z0VBQTA3Nys3U3Uvd0NaeWdFQWtqWGpzODNqL3dDbHlnRUFUU25yek92Ri93Q3h5Z0VBeWh2azNzdmsvd0M5eWdFQUdGaisvdG1tL3dESnlnRUFLakwvLy8vTS93RFZ5Z0VBQTA3Nys3U3Uvd0RoeWdFQWtqWGpzODNqL3dE''@;'; + put 'put ''dHlnRUFUU25yek92Ri93RDV5Z0VBeWh2azNzdmsvd0FGeXdFQUdGaisvdG1tL3dBUnl3RUFLakwvLy8vTS93QWR5d0VBSEN6bDVkaTkvd0FweXdFQUEwNzcrN1N1L3dBMXl3RUFralhqczgzai93QkJ5d0VBVFNucnpPdkYvd0JOeXdFQXlodmszc3ZrL3dCWnl3RUFHRmorL3RtbS93Qmx5d0VB''@;'; + put 'put ''S2pMLy8vL00vd0J4eXdFQUhDemw1ZGk5L3dCOXl3RUE2U1A5L2Rycy93Q0p5d0VBQTA3Nys3U3Uvd0NWeXdFQWtqWGpzODNqL3dDaHl3RUFUU25yek92Ri93Q3R5d0VBeWh2azNzdmsvd0M1eXdFQUdGaisvdG1tL3dERnl3RUFLakwvLy8vTS93RFJ5d0VBSEN6bDVkaTkvd0RkeXdFQTZTUDkv''@;'; + put 'put ''ZHJzL3dEcHl3RUFBQUR5OHZMeS93RDF5d0VBYkRYaXMrTE4vd0FCekFFQUVWSDkvYzJzL3dBTnpBRUFteC9veTlYby93QVp6QUVBYkRYaXMrTE4vd0FsekFFQUVWSDkvYzJzL3dBeHpBRUFteC9veTlYby93QTl6QUVBNUN2MDlNcmsvd0JKekFFQWJEWGlzK0xOL3dCVnpBRUFFVkg5L2Mycy93''@;'; + put 'put ''Qmh6QUVBbXgvb3k5WG8vd0J0ekFFQTVDdjA5TXJrL3dCNXpBRUFPQzMxNXZYSi93Q0Z6QUVBYkRYaXMrTE4vd0NSekFFQUVWSDkvYzJzL3dDZHpBRUFteC9veTlYby93Q3B6QUVBNUN2MDlNcmsvd0MxekFFQU9DMzE1dlhKL3dEQnpBRUFJMUgvLy9LdS93RE56QUVBYkRYaXMrTE4vd0RaekFF''@;'; + put 'put ''QUVWSDkvYzJzL3dEbHpBRUFteC9veTlYby93RHh6QUVBNUN2MDlNcmsvd0Q5ekFFQU9DMzE1dlhKL3dBSnpRRUFJMUgvLy9LdS93QVZ6UUVBR1NmeDhlTE0vd0FoelFFQWJEWGlzK0xOL3dBdHpRRUFFVkg5L2Mycy93QTV6UUVBbXgvb3k5WG8vd0JGelFFQTVDdjA5TXJrL3dCUnpRRUFPQzMx''@;'; + put 'put ''NXZYSi93QmR6UUVBSTFILy8vS3Uvd0JwelFFQUdTZng4ZUxNL3dCMXpRRUFBQURNek16TS93Q0J6UUVBNXYyT2pnRlMvd0NMelFFQVRiOWtKMlFaL3dDV3pRRUE1dHpGeFJ0OS93Q2d6UUVBNkhiZTNuZXUvd0NxelFFQTVUN3g4YmJhL3dDMHpRRUE2UjM5L2VEdi93Qyt6UUVBT3liMTV2WFEv''@;'; + put 'put ''d0RJelFFQVBXZmh1T0dHL3dEU3pRRUFQNmE4Zjd4Qi93RGN6UUVBUk1XU1RaSWgvd0RtelFFQTV2Mk9qZ0ZTL3dEd3pRRUFSTVdTVFpJaC93RDd6UUVBVGI5a0oyUVovd0FHemdFQTV0ekZ4UnQ5L3dBUXpnRUE2SGJlM25ldS93QWF6Z0VBNVQ3eDhiYmEvd0FremdFQTZSMzkvZUR2L3dBdXpn''@;'; + put 'put ''RUFBQUQzOS9mMy93QTR6Z0VBT3liMTV2WFEvd0JDemdFQVBXZmh1T0dHL3dCTXpnRUFQNmE4Zjd4Qi93Qld6Z0VBNTB6cDZhUEovd0JmemdFQUFBRDM5L2YzL3dCb3pnRUFQNEhYb2RkcS93Qnh6Z0VBNU56UTBCeUwvd0I2emdFQTVUN3g4YmJhL3dDRHpnRUFQV2ZodU9HRy93Q016Z0VBU01h''@;'; + put 'put ''c1Rhd20vd0NWemdFQTVOelEwQnlML3dDZXpnRUE1VDd4OGJiYS93Q256Z0VBQUFEMzkvZjMvd0N3emdFQVBXZmh1T0dHL3dDNXpnRUFTTWFzVGF3bS93REN6Z0VBNXR6RnhSdDkvd0RMemdFQTUwenA2YVBKL3dEVXpnRUE2UjM5L2VEdi93RGR6Z0VBT3liMTV2WFEvd0RtemdFQVA0SFhvZGRx''@;'; + put 'put ''L3dEdnpnRUFSTVdTVFpJaC93RDR6Z0VBNXR6RnhSdDkvd0FCendFQTUwenA2YVBKL3dBS3p3RUE2UjM5L2VEdi93QVR6d0VBQUFEMzkvZjMvd0FjendFQU95YjE1dlhRL3dBbHp3RUFQNEhYb2RkcS93QXV6d0VBUk1XU1RaSWgvd0EzendFQTV0ekZ4UnQ5L3dCQXp3RUE2SGJlM25ldS93Qkp6''@;'; + put 'put ''d0VBNVQ3eDhiYmEvd0JTendFQTZSMzkvZUR2L3dCYnp3RUFPeWIxNXZYUS93Qmt6d0VBUFdmaHVPR0cvd0J0endFQVA2YThmN3hCL3dCMnp3RUFSTVdTVFpJaC93Qi96d0VBNXR6RnhSdDkvd0NJendFQTZIYmUzbmV1L3dDUnp3RUE1VDd4OGJiYS93Q2F6d0VBNlIzOS9lRHYvd0NqendFQUFB''@;'; + put 'put ''RDM5L2YzL3dDc3p3RUFPeWIxNXZYUS93QzF6d0VBUFdmaHVPR0cvd0MrendFQVA2YThmN3hCL3dESHp3RUFSTVdTVFpJaC93RFF6d0VBenY5TFFBQkwvd0RhendFQVpmOUVBRVFiL3dEbHp3RUF6cTJEZGlxRC93RHZ6d0VBeDFlcm1YQ3Ivd0Q1endFQXh6UFB3cVhQL3dBRDBBRUEwaFhvNTlU''@;'; + put 'put ''by93QU4wQUVBVEI3dzJmRFQvd0FYMEFFQVVFVGJwdHVnL3dBaDBBRUFXSHV1V3E1aC93QXIwQUVBWWNWNEczZzMvd0ExMEFFQXp2OUxRQUJML3dBLzBBRUFZY1Y0RzNnMy93QkswQUVBWmY5RUFFUWIvd0JWMEFFQXpxMkRkaXFEL3dCZjBBRUF4MWVybVhDci93QnAwQUVBeHpQUHdxWFAvd0J6''@;'; + put 'put ''MEFFQTBoWG81OVRvL3dCOTBBRUFBQUQzOS9mMy93Q0gwQUVBVEI3dzJmRFQvd0NSMEFFQVVFVGJwdHVnL3dDYjBBRUFXSHV1V3E1aC93Q2wwQUVBeEViRHI0M0Qvd0N1MEFFQUFBRDM5L2YzL3dDMzBBRUFVbHEvZjc5Ny93REEwQUVBeWFpVWV6S1Uvd0RKMEFFQXh6UFB3cVhQL3dEUzBBRUFV''@;'; + put 'put ''RVRicHR1Zy93RGIwQUVBWnYrSUFJZzMvd0RrMEFFQXlhaVVlektVL3dEdDBBRUF4elBQd3FYUC93RDIwQUVBQUFEMzkvZjMvd0QvMEFFQVVFVGJwdHVnL3dBSTBRRUFaditJQUlnMy93QVIwUUVBenEyRGRpcUQvd0FhMFFFQXhFYkRyNDNEL3dBajBRRUEwaFhvNTlUby93QXMwUUVBVEI3dzJm''@;'; + put 'put ''RFQvd0ExMFFFQVVscS9mNzk3L3dBKzBRRUFZY1Y0RzNnMy93QkgwUUVBenEyRGRpcUQvd0JRMFFFQXhFYkRyNDNEL3dCWjBRRUEwaFhvNTlUby93QmkwUUVBQUFEMzkvZjMvd0JyMFFFQVRCN3cyZkRUL3dCMDBRRUFVbHEvZjc5Ny93QjkwUUVBWWNWNEczZzMvd0NHMFFFQXpxMkRkaXFEL3dD''@;'; + put 'put ''UDBRRUF4MWVybVhDci93Q1kwUUVBeHpQUHdxWFAvd0NoMFFFQTBoWG81OVRvL3dDcTBRRUFUQjd3MmZEVC93Q3owUUVBVUVUYnB0dWcvd0M4MFFFQVdIdXVXcTVoL3dERjBRRUFZY1Y0RzNnMy93RE8wUUVBenEyRGRpcUQvd0RYMFFFQXgxZXJtWENyL3dEZzBRRUF4elBQd3FYUC93RHAwUUVB''@;'; + put 'put ''MGhYbzU5VG8vd0R5MFFFQUFBRDM5L2YzL3dENzBRRUFUQjd3MmZEVC93QUUwZ0VBVUVUYnB0dWcvd0FOMGdFQVdIdXVXcTVoL3dBVzBnRUFZY1Y0RzNnMy93QWYwZ0VBdlF2eTdPZnkvd0FvMGdFQWx6M2JwcjNiL3dBeDBnRUFqY1crSzR5Ky93QTYwZ0VBdVFqMjhlNzIvd0JEMGdFQW15amh2''@;'; + put 'put ''Y25oL3dCTTBnRUFrWERQZEtuUC93QlYwZ0VBai9ld0JYQ3cvd0JlMGdFQXVRajI4ZTcyL3dCbjBnRUFteWpodmNuaC93QncwZ0VBa1hEUGRLblAvd0I1MGdFQWpjVytLNHkrL3dDQzBnRUFqL2VOQkZxTi93Q0wwZ0VBdVFqMjhlNzIvd0NVMGdFQXFCam0wTkhtL3dDZDBnRUFsejNicHIzYi93''@;'; + put 'put ''Q20wZ0VBa1hEUGRLblAvd0N2MGdFQWpjVytLNHkrL3dDNDBnRUFqL2VOQkZxTi93REIwZ0VBdVFqMjhlNzIvd0RLMGdFQXFCam0wTkhtL3dEVDBnRUFsejNicHIzYi93RGMwZ0VBa1hEUGRLblAvd0RsMGdFQWpyZkFOcERBL3dEdTBnRUFqL2V3QlhDdy93RDMwZ0VBai9oN0EwNTcvd0FBMHdF''@;'; + put 'put ''QTZRai8vL2Y3L3dBSjB3RUF2UXZ5N09meS93QVMwd0VBcUJqbTBOSG0vd0FiMHdFQWx6M2JwcjNiL3dBazB3RUFrWERQZEtuUC93QXQwd0VBanJmQU5wREEvd0EyMHdFQWovZXdCWEN3L3dBLzB3RUFqL2g3QTA1Ny93Qkkwd0VBNlFqLy8vZjcvd0JSMHdFQXZRdnk3T2Z5L3dCYTB3RUFxQmpt''@;'; + put 'put ''ME5IbS93Qmowd0VBbHozYnByM2Ivd0JzMHdFQWtYRFBkS25QL3dCMTB3RUFqcmZBTnBEQS93Qiswd0VBai9ld0JYQ3cvd0NIMHdFQWovZU5CRnFOL3dDUTB3RUFqL2xZQWpoWS93Q1owd0VBeUE3dzdPTHcvd0NrMHdFQWx6M2JwcjNiL3dDdjB3RUFndENaSEpDWi93QzYwd0VBendqMzl1LzMv''@;'; + put 'put ''d0RGMHdFQW15amh2Y25oL3dEUTB3RUFqNERQWjZuUC93RGIwd0VBZ3Z1S0FvR0svd0RtMHdFQXp3ajM5dS8zL3dEeDB3RUFteWpodmNuaC93RDgwd0VBajREUFo2blAvd0FIMUFFQWd0Q1pISkNaL3dBUzFBRUFkL3hzQVd4Wi93QWQxQUVBendqMzl1LzMvd0FvMUFFQXFCam0wTkhtL3dBejFB''@;'; + put 'put ''RUFsejNicHIzYi93QSsxQUVBajREUFo2blAvd0JKMUFFQWd0Q1pISkNaL3dCVTFBRUFkL3hzQVd4Wi93QmYxQUVBendqMzl1LzMvd0JxMUFFQXFCam0wTkhtL3dCMTFBRUFsejNicHIzYi93Q0ExQUVBajREUFo2blAvd0NMMUFFQWpyZkFOcERBL3dDVzFBRUFndnVLQW9HSy93Q2gxQUVBZHZ4''@;'; + put 'put ''a0FXUlEvd0NzMUFFQTZRai8vL2Y3L3dDMzFBRUF5QTd3N09Mdy93REMxQUVBcUJqbTBOSG0vd0ROMUFFQWx6M2JwcjNiL3dEWTFBRUFqNERQWjZuUC93RGoxQUVBanJmQU5wREEvd0R1MUFFQWd2dUtBb0dLL3dENTFBRUFkdnhrQVdSUS93QUUxUUVBNlFqLy8vZjcvd0FQMVFFQXlBN3c3T0x3''@;'; + put 'put ''L3dBYTFRRUFxQmptME5IbS93QWwxUUVBbHozYnByM2Ivd0F3MVFFQWo0RFBaNm5QL3dBNzFRRUFqcmZBTnBEQS93QkcxUUVBZ3Z1S0FvR0svd0JSMVFFQWQveHNBV3haL3dCYzFRRUFkZnRHQVVZMi93Qm4xUUVBRXU1L2Z6c0kvd0J4MVFFQXcvOUxMUUJML3dCODFRRUFGUGF6czFnRy93Q0cx''@;'; + put 'put ''UUVBRnVqZzRJSVUvd0NRMVFFQUY1djkvYmhqL3dDYTFRRUFHRWorL3VDMi93Q2sxUUVBcFJUcjJOcnIvd0N1MVFFQXNTL1NzcXZTL3dDNDFRRUFzMVNzZ0hPcy93REMxUUVBdmJXSVZDZUkvd0RNMVFFQUV1NS9menNJL3dEVzFRRUF2YldJVkNlSS93RGgxUUVBdy85TExRQkwvd0RzMVFFQUZQ''@;'; + put 'put ''YXpzMWdHL3dEMjFRRUFGdWpnNElJVS93QUExZ0VBRjV2OS9iaGovd0FLMWdFQUdFaisvdUMyL3dBVTFnRUFBQUQzOS9mMy93QWUxZ0VBcFJUcjJOcnIvd0FvMWdFQXNTL1NzcXZTL3dBeTFnRUFzMVNzZ0hPcy93QTgxZ0VBRjd2eDhhTkEvd0JGMWdFQUFBRDM5L2YzL3dCTzFnRUFza1hEbVk3''@;'; + put 'put ''RC93QlgxZ0VBRWYzbTVtRUIvd0JnMWdFQUY1djkvYmhqL3dCcDFnRUFzUy9Tc3F2Uy93QnkxZ0VBdVp1WlhqeVovd0I3MWdFQUVmM201bUVCL3dDRTFnRUFGNXY5L2Joai93Q04xZ0VBQUFEMzkvZjMvd0NXMWdFQXNTL1NzcXZTL3dDZjFnRUF1WnVaWGp5Wi93Q28xZ0VBRlBhenMxZ0cvd0N4''@;'; + put 'put ''MWdFQUY3dng4YU5BL3dDNjFnRUFHRWorL3VDMi93REQxZ0VBcFJUcjJOcnIvd0RNMWdFQXNrWERtWTdEL3dEVjFnRUF2YldJVkNlSS93RGUxZ0VBRlBhenMxZ0cvd0RuMWdFQUY3dng4YU5BL3dEdzFnRUFHRWorL3VDMi93RDUxZ0VBQUFEMzkvZjMvd0FDMXdFQXBSVHIyTnJyL3dBTDF3RUFz''@;'; + put 'put ''a1hEbVk3RC93QVUxd0VBdmJXSVZDZUkvd0FkMXdFQUZQYXpzMWdHL3dBbTF3RUFGdWpnNElJVS93QXYxd0VBRjV2OS9iaGovd0E0MXdFQUdFaisvdUMyL3dCQjF3RUFwUlRyMk5yci93Qksxd0VBc1MvU3NxdlMvd0JUMXdFQXMxU3NnSE9zL3dCYzF3RUF2YldJVkNlSS93Qmwxd0VBRlBhenMx''@;'; + put 'put ''Z0cvd0J1MXdFQUZ1amc0SUlVL3dCMzF3RUFGNXY5L2Joai93Q0Exd0VBR0VqKy91QzIvd0NKMXdFQUFBRDM5L2YzL3dDUzF3RUFwUlRyMk5yci93Q2Ixd0VBc1MvU3NxdlMvd0NrMXdFQXMxU3NnSE9zL3dDdDF3RUF2YldJVkNlSS93QzIxd0VBdkE3djUrSHYvd0MvMXdFQTFrUEp5WlRIL3dE''@;'; + put 'put ''STF3RUE2dDdkM1J4My93RFIxd0VBdVFqMjhlNzIvd0RhMXdFQTB5blkxN1hZL3dEajF3RUE1SXZmMzJXdy93RHMxd0VBNytqT3poSlcvd0QxMXdFQXVRajI4ZTcyL3dEKzF3RUEweW5ZMTdYWS93QUgyQUVBNUl2ZjMyV3cvd0FRMkFFQTZ0N2QzUngzL3dBWjJBRUE3UCtZbUFCRC93QWkyQUVB''@;'; + put 'put ''dVFqMjhlNzIvd0FyMkFFQXpDYmExTG5hL3dBMDJBRUExa1BKeVpUSC93QTkyQUVBNUl2ZjMyV3cvd0JHMkFFQTZ0N2QzUngzL3dCUDJBRUE3UCtZbUFCRC93QlkyQUVBdVFqMjhlNzIvd0JoMkFFQXpDYmExTG5hL3dCcTJBRUExa1BKeVpUSC93QnoyQUVBNUl2ZjMyV3cvd0I4MkFFQTZkSG41''@;'; + put 'put ''eW1LL3dDRjJBRUE3K2pPemhKVy93Q08yQUVBN1ArUmtRQS8vd0NYMkFFQXd3WDU5L1Q1L3dDZzJBRUF2QTd2NStIdi93Q3AyQUVBekNiYTFMbmEvd0N5MkFFQTFrUEp5WlRIL3dDNzJBRUE1SXZmMzJXdy93REUyQUVBNmRIbjV5bUsvd0ROMkFFQTcrak96aEpXL3dEVzJBRUE3UCtSa1FBLy93''@;'; + put 'put ''RGYyQUVBd3dYNTkvVDUvd0RvMkFFQXZBN3Y1K0h2L3dEeDJBRUF6Q2JhMUxuYS93RDYyQUVBMWtQSnlaVEgvd0FEMlFFQTVJdmYzMld3L3dBTTJRRUE2ZEhuNXltSy93QVYyUUVBNytqT3poSlcvd0FlMlFFQTdQK1ltQUJEL3dBbjJRRUE4djluWndBZi93QXcyUUVBdEFqMTcrMzEvd0E4MlFF''@;'; + put 'put ''QXFDWGN2TDNjL3dCSTJRRUFzR1N4ZFd1eC93QlUyUUVBdGdmMzh2RDMvd0JnMlFFQXJSeml5OG5pL3dCczJRRUFyVHJJbnBySS93QjQyUUVBdG9DamFsR2ovd0NFMlFFQXRnZjM4dkQzL3dDUTJRRUFyUnppeThuaS93Q2MyUUVBclRySW5wckkvd0NvMlFFQXNHU3hkV3V4L3dDMDJRRUF2TG1Q''@;'; + put 'put ''VkNlUC93REEyUUVBdGdmMzh2RDMvd0RNMlFFQXFoTHIydHJyL3dEWTJRRUFxQ1hjdkwzYy93RGsyUUVBclRySW5wckkvd0R3MlFFQXNHU3hkV3V4L3dEODJRRUF2TG1QVkNlUC93QUkyZ0VBdGdmMzh2RDMvd0FVMmdFQXFoTHIydHJyL3dBZzJnRUFxQ1hjdkwzYy93QXMyZ0VBclRySW5wckkv''@;'; + put 'put ''d0E0MmdFQXJGTzZnSDI2L3dCRTJnRUF0b0NqYWxHai93QlEyZ0VBdnRpR1NoU0cvd0JjMmdFQXZ3TDkvUHY5L3dCbzJnRUF0QWoxNyszMS93QjAyZ0VBcWhMcjJ0cnIvd0NBMmdFQXFDWGN2TDNjL3dDTTJnRUFyVHJJbnBySS93Q1kyZ0VBckZPNmdIMjYvd0NrMmdFQXRvQ2phbEdqL3dDdzJn''@;'; + put 'put ''RUF2dGlHU2hTRy93QzgyZ0VBdndMOS9Qdjkvd0RJMmdFQXRBajE3KzMxL3dEVTJnRUFxaExyMnRyci93RGcyZ0VBcUNYY3ZMM2Mvd0RzMmdFQXJUcklucHJJL3dENDJnRUFyRk82Z0gyNi93QUUyd0VBdG9DamFsR2ovd0FRMndFQXZMbVBWQ2VQL3dBYzJ3RUF2Lzk5UHdCOS93QW8yd0VBOHY5''@;'; + put 'put ''blp3QWYvd0F5MndFQWx2RmhCVEJoL3dBOTJ3RUErZHl5c2hnci93Qkgyd0VBQmFQVzFtQk4vd0JSMndFQURYZjA5S1dDL3dCYjJ3RUFEemI5L2R2SC93Qmwyd0VBamlEdzBlWHcvd0J2MndFQWpWZmVrc1hlL3dCNTJ3RUFqNmZEUTVQRC93Q0Qyd0VBbE02c0lXYXMvd0NOMndFQTh2OW5ad0Fm''@;'; + put 'put ''L3dDWDJ3RUFsTTZzSVdhcy93Q2kyd0VBbHZGaEJUQmgvd0N0MndFQStkeXlzaGdyL3dDMzJ3RUFCYVBXMW1CTi93REIyd0VBRFhmMDlLV0Mvd0RMMndFQUR6YjkvZHZIL3dEVjJ3RUFBQUQzOS9mMy93RGYyd0VBamlEdzBlWHcvd0RwMndFQWpWZmVrc1hlL3dEejJ3RUFqNmZEUTVQRC93RDky''@;'; + put 'put ''d0VBREpidjc0cGkvd0FHM0FFQUFBRDM5L2YzL3dBUDNBRUFqNERQWjZuUC93QVkzQUVBK1AvS3lnQWcvd0FoM0FFQURYZjA5S1dDL3dBcTNBRUFqVmZla3NYZS93QXozQUVBai9ld0JYR3cvd0E4M0FFQStQL0t5Z0FnL3dCRjNBRUFEWGYwOUtXQy93Qk8zQUVBQUFEMzkvZjMvd0JYM0FFQWpW''@;'; + put 'put ''ZmVrc1hlL3dCZzNBRUFqL2V3QlhHdy93QnAzQUVBK2R5eXNoZ3Ivd0J5M0FFQURKYnY3NHBpL3dCNzNBRUFEemI5L2R2SC93Q0UzQUVBamlEdzBlWHcvd0NOM0FFQWo0RFBaNm5QL3dDVzNBRUFsTTZzSVdhcy93Q2YzQUVBK2R5eXNoZ3Ivd0NvM0FFQURKYnY3NHBpL3dDeDNBRUFEemI5L2R2''@;'; + put 'put ''SC93QzYzQUVBQUFEMzkvZjMvd0REM0FFQWppRHcwZVh3L3dETTNBRUFqNERQWjZuUC93RFYzQUVBbE02c0lXYXMvd0RlM0FFQStkeXlzaGdyL3dEbjNBRUFCYVBXMW1CTi93RHczQUVBRFhmMDlLV0Mvd0Q1M0FFQUR6YjkvZHZIL3dBQzNRRUFqaUR3MGVYdy93QUwzUUVBalZmZWtzWGUvd0FV''@;'; + put 'put ''M1FFQWo2ZkRRNVBEL3dBZDNRRUFsTTZzSVdhcy93QW0zUUVBK2R5eXNoZ3Ivd0F2M1FFQUJhUFcxbUJOL3dBNDNRRUFEWGYwOUtXQy93QkIzUUVBRHpiOS9kdkgvd0JLM1FFQUFBRDM5L2YzL3dCVDNRRUFqaUR3MGVYdy93QmMzUUVBalZmZWtzWGUvd0JsM1FFQWo2ZkRRNVBEL3dCdTNRRUFs''@;'; + put 'put ''TTZzSVdhcy93QjMzUUVBOHY5blp3QWYvd0NCM1FFQUFBQWFHaG9hL3dDTTNRRUErZHl5c2hnci93Q1czUUVBQmFQVzFtQk4vd0NnM1FFQURYZjA5S1dDL3dDcTNRRUFEemI5L2R2SC93QzAzUUVBQUFEZzRPRGcvd0MrM1FFQUFBQzZ1cnE2L3dESTNRRUFBQUNIaDRlSC93RFMzUUVBQUFCTlRV''@;'; + put 'put ''MU4vd0RjM1FFQTh2OW5ad0FmL3dEbTNRRUFBQUJOVFUxTi93RHgzUUVBQUFBYUdob2Evd0Q4M1FFQStkeXlzaGdyL3dBRzNnRUFCYVBXMW1CTi93QVEzZ0VBRFhmMDlLV0Mvd0FhM2dFQUR6YjkvZHZIL3dBazNnRUFBQUQvLy8vLy93QXUzZ0VBQUFEZzRPRGcvd0E0M2dFQUFBQzZ1cnE2L3dC''@;'; + put 'put ''QzNnRUFBQUNIaDRlSC93Qk0zZ0VBREpidjc0cGkvd0JWM2dFQUFBRC8vLy8vL3dCZTNnRUFBQUNabVptWi93Qm4zZ0VBK1AvS3lnQWcvd0J3M2dFQURYZjA5S1dDL3dCNTNnRUFBQUM2dXJxNi93Q0MzZ0VBQUFCQVFFQkEvd0NMM2dFQStQL0t5Z0FnL3dDVTNnRUFEWGYwOUtXQy93Q2QzZ0VB''@;'; + put 'put ''QUFELy8vLy8vd0NtM2dFQUFBQzZ1cnE2L3dDdjNnRUFBQUJBUUVCQS93QzQzZ0VBK2R5eXNoZ3Ivd0RCM2dFQURKYnY3NHBpL3dESzNnRUFEemI5L2R2SC93RFQzZ0VBQUFEZzRPRGcvd0RjM2dFQUFBQ1ptWm1aL3dEbDNnRUFBQUJOVFUxTi93RHUzZ0VBK2R5eXNoZ3Ivd0QzM2dFQURKYnY3''@;'; + put 'put ''NHBpL3dBQTN3RUFEemI5L2R2SC93QUozd0VBQUFELy8vLy8vd0FTM3dFQUFBRGc0T0RnL3dBYjN3RUFBQUNabVptWi93QWszd0VBQUFCTlRVMU4vd0F0M3dFQStkeXlzaGdyL3dBMjN3RUFCYVBXMW1CTi93QS8zd0VBRFhmMDlLV0Mvd0JJM3dFQUR6YjkvZHZIL3dCUjN3RUFBQURnNE9EZy93''@;'; + put 'put ''QmEzd0VBQUFDNnVycTYvd0JqM3dFQUFBQ0hoNGVIL3dCczN3RUFBQUJOVFUxTi93QjEzd0VBK2R5eXNoZ3Ivd0IrM3dFQUJhUFcxbUJOL3dDSDN3RUFEWGYwOUtXQy93Q1Ezd0VBRHpiOS9kdkgvd0NaM3dFQUFBRC8vLy8vL3dDaTN3RUFBQURnNE9EZy93Q3Izd0VBQUFDNnVycTYvd0MwM3dF''@;'; + put 'put ''QUFBQ0hoNGVIL3dDOTN3RUFBQUJOVFUxTi93REczd0VBQXlEOS9lRGQvd0RQM3dFQTlGejYrcCsxL3dEWTN3RUE0OXpGeFJ1Sy93RGgzd0VBRFJ6Ky91dmkvd0RxM3dFQS9FajcrN1M1L3dEejN3RUE3cFAzOTJpaC93RDgzd0VBNFAydXJnRisvd0FGNEFFQURSeisvdXZpL3dBTzRBRUEvRWo3''@;'; + put 'put ''KzdTNS93QVg0QUVBN3BQMzkyaWgvd0FnNEFFQTQ5ekZ4UnVLL3dBcDRBRUExZng2ZWdGMy93QXk0QUVBRFJ6Ky91dmkvd0E3NEFFQUF6ejgvTVhBL3dCRTRBRUE5Rno2K3ArMS93Qk40QUVBN3BQMzkyaWgvd0JXNEFFQTQ5ekZ4UnVLL3dCZjRBRUExZng2ZWdGMy93Qm80QUVBRFJ6Ky91dmkv''@;'; + put 'put ''d0J4NEFFQUF6ejgvTVhBL3dCNjRBRUE5Rno2K3ArMS93Q0Q0QUVBN3BQMzkyaWgvd0NNNEFFQTVzUGQzVFNYL3dDVjRBRUE0UDJ1cmdGKy93Q2U0QUVBMWZ4NmVnRjMvd0NuNEFFQURnei8vL2Z6L3dDdzRBRUFBeUQ5L2VEZC93QzU0QUVBQXp6OC9NWEEvd0RDNEFFQTlGejYrcCsxL3dETDRB''@;'; + put 'put ''RUE3cFAzOTJpaC93RFU0QUVBNXNQZDNUU1gvd0RkNEFFQTRQMnVyZ0YrL3dEbTRBRUExZng2ZWdGMy93RHY0QUVBRGd6Ly8vZnovd0Q0NEFFQUF5RDkvZURkL3dBQjRRRUFBeno4L01YQS93QUs0UUVBOUZ6NitwKzEvd0FUNFFFQTdwUDM5MmloL3dBYzRRRUE1c1BkM1RTWC93QWw0UUVBNFAy''@;'; + put 'put ''dXJnRisvd0F1NFFFQTFmeDZlZ0YzL3dBMzRRRUF4LzlxU1FCcS93QkE0UUVBOWYrbHBRQW0vd0JNNFFFQXA2dVZNVGFWL3dCWjRRRUFBdERYMXpBbi93Qmw0UUVBQ3JqMDlHMUQvd0J4NFFFQUZKMzkvYTVoL3dCOTRRRUFIbTcrL3VDUS93Q0o0UUVBaUJqNDRQUDQvd0NWNFFFQWlrUHBxOW5w''@;'; + put 'put ''L3dDaDRRRUFqM0hSZEszUi93Q3Q0UUVBbDUyMFJYVzAvd0M1NFFFQTlmK2xwUUFtL3dERjRRRUFsNTIwUlhXMC93RFM0UUVBcDZ1Vk1UYVYvd0RmNFFFQUF0RFgxekFuL3dEcjRRRUFDcmowOUcxRC93RDM0UUVBRkozOS9hNWgvd0FENGdFQUhtNysvdUNRL3dBUDRnRUFLa0QvLy8rLy93QWI0''@;'; + put 'put ''Z0VBaUJqNDRQUDQvd0FuNGdFQWlrUHBxOW5wL3dBejRnRUFqM0hSZEszUi93QS80Z0VBRGFUOC9JMVovd0JLNGdFQUtrRC8vLysvL3dCVjRnRUFqMWJia2IvYi93Qmc0Z0VBL3VIWDF4a2Mvd0JyNGdFQUZKMzkvYTVoL3dCMjRnRUFpa1BwcTlucC93Q0I0Z0VBa2NHMkxIdTIvd0NNNGdFQS91''@;'; + put 'put ''SFgxeGtjL3dDWDRnRUFGSjM5L2E1aC93Q2k0Z0VBS2tELy8vKy8vd0N0NGdFQWlrUHBxOW5wL3dDNDRnRUFrY0cyTEh1Mi93REQ0Z0VBQXREWDF6QW4vd0RPNGdFQURhVDgvSTFaL3dEWjRnRUFIbTcrL3VDUS93RGs0Z0VBaUJqNDRQUDQvd0R2NGdFQWoxYmJrYi9iL3dENjRnRUFsNTIwUlhX''@;'; + put 'put ''MC93QUY0d0VBQXREWDF6QW4vd0FRNHdFQURhVDgvSTFaL3dBYjR3RUFIbTcrL3VDUS93QW00d0VBS2tELy8vKy8vd0F4NHdFQWlCajQ0UFA0L3dBODR3RUFqMWJia2IvYi93Qkg0d0VBbDUyMFJYVzAvd0JTNHdFQUF0RFgxekFuL3dCZDR3RUFDcmowOUcxRC93Qm80d0VBRkozOS9hNWgvd0J6''@;'; + put 'put ''NHdFQUhtNysvdUNRL3dCKzR3RUFpQmo0NFBQNC93Q0o0d0VBaWtQcHE5bnAvd0NVNHdFQWozSFJkSzNSL3dDZjR3RUFsNTIwUlhXMC93Q3E0d0VBQXREWDF6QW4vd0MxNHdFQUNyajA5RzFEL3dEQTR3RUFGSjM5L2E1aC93REw0d0VBSG03Ky91Q1Evd0RXNHdFQUtrRC8vLysvL3dEaDR3RUFp''@;'; + put 'put ''Qmo0NFBQNC93RHM0d0VBaWtQcHE5bnAvd0QzNHdFQWozSFJkSzNSL3dBQzVBRUFsNTIwUlhXMC93QU41QUVBOWYrbHBRQW0vd0FaNUFFQWEvOW9BR2czL3dBbTVBRUFBdERYMXpBbi93QXk1QUVBQ3JqMDlHMUQvd0ErNUFFQUZKMzkvYTVoL3dCSzVBRUFIM1ArL3VDTC93Qlc1QUVBTTJydjJl''@;'; + put 'put ''K0wvd0JpNUFFQVBvTFpwdGxxL3dCdTVBRUFVM205WnIxai93QjY1QUVBWjlPWUdwaFEvd0NHNUFFQTlmK2xwUUFtL3dDUzVBRUFaOU9ZR3BoUS93Q2Y1QUVBYS85b0FHZzMvd0NzNUFFQUF0RFgxekFuL3dDNDVBRUFDcmowOUcxRC93REU1QUVBRkozOS9hNWgvd0RRNUFFQUgzUCsvdUNML3dE''@;'; + put 'put ''YzVBRUFLa0QvLy8rLy93RG81QUVBTTJydjJlK0wvd0QwNUFFQVBvTFpwdGxxL3dBQTVRRUFVM205WnIxai93QU01UUVBRGFUOC9JMVovd0FYNVFFQUtrRC8vLysvL3dBaTVRRUFRb2pQa2M5Zy93QXQ1UUVBL3VIWDF4a2Mvd0E0NVFFQUZKMzkvYTVoL3dCRDVRRUFQb0xacHRscS93Qk81UUVB''@;'; + put 'put ''WXRLV0dwWkIvd0JaNVFFQS91SFgxeGtjL3dCazVRRUFGSjM5L2E1aC93QnY1UUVBS2tELy8vKy8vd0I2NVFFQVBvTFpwdGxxL3dDRjVRRUFZdEtXR3BaQi93Q1E1UUVBQXREWDF6QW4vd0NiNVFFQURhVDgvSTFaL3dDbTVRRUFIM1ArL3VDTC93Q3g1UUVBTTJydjJlK0wvd0M4NVFFQVFvalBr''@;'; + put 'put ''YzlnL3dESDVRRUFaOU9ZR3BoUS93RFM1UUVBQXREWDF6QW4vd0RkNVFFQURhVDgvSTFaL3dEbzVRRUFIM1ArL3VDTC93RHo1UUVBS2tELy8vKy8vd0QrNVFFQU0ycnYyZStML3dBSjVnRUFRb2pQa2M5Zy93QVU1Z0VBWjlPWUdwaFEvd0FmNWdFQUF0RFgxekFuL3dBcTVnRUFDcmowOUcxRC93''@;'; + put 'put ''QTE1Z0VBRkozOS9hNWgvd0JBNWdFQUgzUCsvdUNML3dCTDVnRUFNMnJ2MmUrTC93Qlc1Z0VBUG9MWnB0bHEvd0JoNWdFQVUzbTlacjFqL3dCczVnRUFaOU9ZR3BoUS93QjM1Z0VBQXREWDF6QW4vd0NDNWdFQUNyajA5RzFEL3dDTjVnRUFGSjM5L2E1aC93Q1k1Z0VBSDNQKy91Q0wvd0NqNWdF''@;'; + put 'put ''QUtrRC8vLysvL3dDdTVnRUFNMnJ2MmUrTC93QzU1Z0VBUG9MWnB0bHEvd0RFNWdFQVUzbTlacjFqL3dEUDVnRUFaOU9ZR3BoUS93RGE1Z0VBRFN6Ky91RFMvd0RqNWdFQUNZdjgvSkp5L3dEczVnRUFBZFBlM2kwbS93RDE1Z0VBRFNYKy91WFovd0QrNWdFQUMyejgvSzZSL3dBSDV3RUFCN1A3''@;'; + put 'put ''KzJwSy93QVE1d0VBL2VETHl4Z2Qvd0FaNXdFQURTWCsvdVhaL3dBaTV3RUFDMno4L0s2Ui93QXI1d0VBQjdQNysycEsvd0EwNXdFQUFkUGUzaTBtL3dBOTV3RUEvZWVscFE4Vi93Qkc1d0VBRFNYKy91WFovd0JQNXdFQURGejgvTHVoL3dCWTV3RUFDWXY4L0pKeS93Qmg1d0VBQjdQNysycEsv''@;'; + put 'put ''d0JxNXdFQUFkUGUzaTBtL3dCejV3RUEvZWVscFE4Vi93Qjg1d0VBRFNYKy91WFovd0NGNXdFQURGejgvTHVoL3dDTzV3RUFDWXY4L0pKeS93Q1g1d0VBQjdQNysycEsvd0NnNXdFQUE5RHY3enNzL3dDcDV3RUEvZURMeXhnZC93Q3k1d0VBKy8rWm1RQU4vd0M3NXdFQURnLy8vL1h3L3dERTV3''@;'; + put 'put ''RUFEU3orL3VEUy93RE41d0VBREZ6OC9MdWgvd0RXNXdFQUNZdjgvSkp5L3dEZjV3RUFCN1A3KzJwSy93RG81d0VBQTlEdjd6c3Mvd0R4NXdFQS9lREx5eGdkL3dENjV3RUErLytabVFBTi93QUQ2QUVBRGcvLy8vWHcvd0FNNkFFQURTeisvdURTL3dBVjZBRUFERno4L0x1aC93QWU2QUVBQ1l2''@;'; + put 'put ''OC9KSnkvd0FuNkFFQUI3UDcrMnBLL3dBdzZBRUFBOUR2N3pzcy93QTU2QUVBL2VETHl4Z2Qvd0JDNkFFQS9lZWxwUThWL3dCTDZBRUErZjluWndBTi93QlU2QUVBL3VIazVCb2Mvd0JkNkFFQWtySzROMzY0L3dCbTZBRUFVNU92VGE5Sy93QnY2QUVBL3VIazVCb2Mvd0I0NkFFQWtySzROMzY0''@;'; + put 'put ''L3dDQjZBRUFVNU92VGE5Sy93Q0s2QUVBejRTam1FNmovd0NUNkFFQS91SGs1Qm9jL3dDYzZBRUFrcks0TjM2NC93Q2w2QUVBVTVPdlRhOUsvd0N1NkFFQXo0U2ptRTZqL3dDMzZBRUFGZi8vLzM4QS93REE2QUVBL3VIazVCb2Mvd0RKNkFFQWtySzROMzY0L3dEUzZBRUFVNU92VGE5Sy93RGI2''@;'; + put 'put ''QUVBejRTam1FNmovd0RrNkFFQUZmLy8vMzhBL3dEdDZBRUFLc3ovLy84ei93RDI2QUVBL3VIazVCb2Mvd0QvNkFFQWtySzROMzY0L3dBSTZRRUFVNU92VGE5Sy93QVI2UUVBejRTam1FNmovd0FhNlFFQUZmLy8vMzhBL3dBajZRRUFLc3ovLy84ei93QXM2UUVBRDhHbXBsWW8vd0ExNlFFQS91''@;'; + put 'put ''SGs1Qm9jL3dBKzZRRUFrcks0TjM2NC93Qkg2UUVBVTVPdlRhOUsvd0JRNlFFQXo0U2ptRTZqL3dCWjZRRUFGZi8vLzM4QS93Qmk2UUVBS3N6Ly8vOHovd0JyNlFFQUQ4R21wbFlvL3dCMDZRRUE2SG4zOTRHLy93Qjk2UUVBL3VIazVCb2Mvd0NHNlFFQWtySzROMzY0L3dDUDZRRUFVNU92VGE5''@;'; + put 'put ''Sy93Q1k2UUVBejRTam1FNmovd0NoNlFFQUZmLy8vMzhBL3dDcTZRRUFLc3ovLy84ei93Q3o2UUVBRDhHbXBsWW8vd0M4NlFFQTZIbjM5NEcvL3dERjZRRUFBQUNabVptWi93RE82UUVBY25qQ1pzS2wvd0RYNlFFQUM1djgvSTFpL3dEZzZRRUFuRTNMamFETC93RHA2UUVBY25qQ1pzS2wvd0R5''@;'; + put 'put ''NlFFQUM1djgvSTFpL3dENzZRRUFuRTNMamFETC93QUU2Z0VBNUdibjU0ckQvd0FONmdFQWNuakNac0tsL3dBVzZnRUFDNXY4L0kxaS93QWY2Z0VBbkUzTGphREwvd0FvNmdFQTVHYm41NHJEL3dBeDZnRUFPcHZZcHRoVS93QTY2Z0VBY25qQ1pzS2wvd0JENmdFQUM1djgvSTFpL3dCTTZnRUFu''@;'; + put 'put ''RTNMamFETC93QlY2Z0VBNUdibjU0ckQvd0JlNmdFQU9wdllwdGhVL3dCbjZnRUFJdEQvLzlrdi93Qnc2Z0VBY25qQ1pzS2wvd0I1NmdFQUM1djgvSTFpL3dDQzZnRUFuRTNMamFETC93Q0w2Z0VBNUdibjU0ckQvd0NVNmdFQU9wdllwdGhVL3dDZDZnRUFJdEQvLzlrdi93Q202Z0VBR1ZybDVj''@;'; + put 'put ''U1Uvd0N2NmdFQWNuakNac0tsL3dDNDZnRUFDNXY4L0kxaS93REI2Z0VBbkUzTGphREwvd0RLNmdFQTVHYm41NHJEL3dEVDZnRUFPcHZZcHRoVS93RGM2Z0VBSXRELy85a3Yvd0RsNmdFQUdWcmw1Y1NVL3dEdTZnRUFBQUN6czdPei93RDM2Z0VBZUZUVGpkUEgvd0FCNndFQTAxSzl2SUM5L3dB''@;'; + put 'put ''TTZ3RUFLa3ovLy8rei93QVc2d0VBcnlYYXZycmEvd0FnNndFQUJJdjcrNEJ5L3dBcTZ3RUFrR1RUZ0xIVC93QTA2d0VBRnB6OS9iUmkvd0ErNndFQU9vYmVzOTVwL3dCSTZ3RUE2Uy84L00zbC93QlM2d0VBQUFEWjJkblovd0JjNndFQWVGVFRqZFBIL3dCbTZ3RUEwMUs5dklDOS93Qng2d0VB''@;'; + put 'put ''VFNucnpPdkYvd0I4NndFQUtrei8vLyt6L3dDRzZ3RUFyeVhhdnJyYS93Q1E2d0VBQkl2Nys0Qnkvd0NhNndFQWtHVFRnTEhUL3dDazZ3RUFGcHo5L2JSaS93Q3U2d0VBT29iZXM5NXAvd0M0NndFQTZTLzgvTTNsL3dEQzZ3RUFBQURaMmRuWi93RE02d0VBZUZUVGpkUEgvd0RXNndFQTAxSzl2''@;'; + put 'put ''SUM5L3dEaDZ3RUFUU25yek92Ri93RHM2d0VBSlpELy8rMXYvd0QzNndFQUtrei8vLyt6L3dBQjdBRUFyeVhhdnJyYS93QUw3QUVBQkl2Nys0Qnkvd0FWN0FFQWtHVFRnTEhUL3dBZjdBRUFGcHo5L2JSaS93QXA3QUVBT29iZXM5NXAvd0F6N0FFQTZTLzgvTTNsL3dBOTdBRUFBQURaMmRuWi93''@;'; + put 'put ''Qkg3QUVBZUZUVGpkUEgvd0JRN0FFQUtrei8vLyt6L3dCWjdBRUFyeVhhdnJyYS93Qmk3QUVBZUZUVGpkUEgvd0JyN0FFQUtrei8vLyt6L3dCMDdBRUFyeVhhdnJyYS93Qjk3QUVBQkl2Nys0Qnkvd0NHN0FFQWVGVFRqZFBIL3dDUDdBRUFLa3ovLy8rei93Q1k3QUVBcnlYYXZycmEvd0NoN0FF''@;'; + put 'put ''QUJJdjcrNEJ5L3dDcTdBRUFrR1RUZ0xIVC93Q3o3QUVBZUZUVGpkUEgvd0M4N0FFQUtrei8vLyt6L3dERjdBRUFyeVhhdnJyYS93RE83QUVBQkl2Nys0Qnkvd0RYN0FFQWtHVFRnTEhUL3dEZzdBRUFGcHo5L2JSaS93RHA3QUVBZUZUVGpkUEgvd0R5N0FFQUtrei8vLyt6L3dENzdBRUFyeVhh''@;'; + put 'put ''dnJyYS93QUU3UUVBQkl2Nys0Qnkvd0FON1FFQWtHVFRnTEhUL3dBVzdRRUFGcHo5L2JSaS93QWY3UUVBT29iZXM5NXAvd0FvN1FFQWVGVFRqZFBIL3dBeDdRRUFLa3ovLy8rei93QTY3UUVBcnlYYXZycmEvd0JEN1FFQUJJdjcrNEJ5L3dCTTdRRUFrR1RUZ0xIVC93QlY3UUVBRnB6OS9iUmkv''@;'; + put 'put ''d0JlN1FFQU9vYmVzOTVwL3dCbjdRRUE2Uy84L00zbC93Qnc3UUVBZUZUVGpkUEgvd0I1N1FFQUtrei8vLyt6L3dDQzdRRUFyeVhhdnJyYS93Q0w3UUVBQkl2Nys0Qnkvd0NVN1FFQWtHVFRnTEhUL3dDZDdRRUFGcHo5L2JSaS93Q203UUVBT29iZXM5NXAvd0N2N1FFQTZTLzgvTTNsL3dDNDdR''@;'; + put 'put ''RUFBQURaMmRuWi93REI3UUVBN2YyZW5nRkMvd0RQN1FFQXNZS2lYaytpL3dEZTdRRUErclRWMVQ1UC93RHM3UUVBQ3JqMDlHMUQvd0Q2N1FFQUZKMzkvYTVoL3dBSTdnRUFIM1ArL3VDTC93QVc3Z0VBTVdEMTV2V1kvd0FrN2dFQVQwSGRxOTJrL3dBeTdnRUFjbmpDWnNLbC93QkE3Z0VBajd1''@;'; + put 'put ''OU1vaTkvd0JPN2dFQTdmMmVuZ0ZDL3dCYzdnRUFqN3U5TW9pOS93QnI3Z0VBc1lLaVhrK2kvd0I2N2dFQStyVFYxVDVQL3dDSTdnRUFDcmowOUcxRC93Q1c3Z0VBRkozOS9hNWgvd0NrN2dFQUgzUCsvdUNML3dDeTdnRUFLa0QvLy8rLy93REE3Z0VBTVdEMTV2V1kvd0RPN2dFQVQwSGRxOTJr''@;'; + put 'put ''L3dEYzdnRUFjbmpDWnNLbC93RHE3Z0VBRGFUOC9JMVovd0QzN2dFQUtrRC8vLysvL3dBRTd3RUFVVTNWbWRXVS93QVI3d0VBL3VIWDF4a2Mvd0FlN3dFQUZKMzkvYTVoL3dBcjd3RUFUMEhkcTkyay93QTQ3d0VBajhTNks0TzYvd0JGN3dFQS91SFgxeGtjL3dCUzd3RUFGSjM5L2E1aC93QmY3''@;'; + put 'put ''d0VBS2tELy8vKy8vd0JzN3dFQVQwSGRxOTJrL3dCNTd3RUFqOFM2SzRPNi93Q0c3d0VBK3JUVjFUNVAvd0NUN3dFQURhVDgvSTFaL3dDZzd3RUFIM1ArL3VDTC93Q3Q3d0VBTVdEMTV2V1kvd0M2N3dFQVVVM1ZtZFdVL3dESDd3RUFqN3U5TW9pOS93RFU3d0VBK3JUVjFUNVAvd0RoN3dFQURh''@;'; + put 'put ''VDgvSTFaL3dEdTd3RUFIM1ArL3VDTC93RDc3d0VBS2tELy8vKy8vd0FJOEFFQU1XRDE1dldZL3dBVjhBRUFVVTNWbWRXVS93QWk4QUVBajd1OU1vaTkvd0F2OEFFQStyVFYxVDVQL3dBODhBRUFDcmowOUcxRC93Qko4QUVBRkozOS9hNWgvd0JXOEFFQUgzUCsvdUNML3dCajhBRUFNV0QxNXZX''@;'; + put 'put ''WS93Qnc4QUVBVDBIZHE5Mmsvd0I5OEFFQWNuakNac0tsL3dDSzhBRUFqN3U5TW9pOS93Q1g4QUVBK3JUVjFUNVAvd0NrOEFFQUNyajA5RzFEL3dDeDhBRUFGSjM5L2E1aC93Qys4QUVBSDNQKy91Q0wvd0RMOEFFQUtrRC8vLysvL3dEWThBRUFNV0QxNXZXWS93RGw4QUVBVDBIZHE5Mmsvd0R5''@;'; + put 'put ''OEFFQWNuakNac0tsL3dELzhBRUFqN3U5TW9pOS93QU04UUVBa3cvLzhQai8vd0FiOFFFQUdDUDYrdXZYL3dBdDhRRUFmLy8vQVAvLy93QTM4UUVBY1lEL2YvL1Uvd0JIOFFFQWZ3Ly84UC8vL3dCUzhRRUFLaHIxOWZYYy93QmQ4UUVBRnpyLy8rVEUvd0JwOFFFQUFBQUFBQUFBL3dCMDhRRUFH''@;'; + put 'put ''VEgvLyt2Ti93Q0k4UUVBcXYvL0FBRC8vd0NTOFFFQXdNN2lpaXZpL3dDaThRRUFBTDZscFNvcS93Q3Q4UUVBRjJQZTNyaUgvd0M4OFFFQWdHZWdYNTZnL3dETDhRRUFQLy8vZi84QS93RGI4UUVBRWRyUzBta2Uvd0RxOFFFQUM2Ly8vMzlRL3dEMThRRUFtcFB0WkpYdC93QUo4Z0VBSVNMLy8v''@;'; + put 'put ''amMvd0FYOGdFQTl1ZmMzQlE4L3dBazhnRUFmLy8vQVAvLy93QXU4Z0VBcXYrTEFBQ0wvd0E4OGdFQWYvK0xBSXVML3dCSzhnRUFIdSs0dUlZTC93QmQ4Z0VBQUFDcHFhbXAvd0JyOGdFQVZmOWtBR1FBL3dCNjhnRUFBQUNwcWFtcC93Q0k4Z0VBSjI2OXZiZHIvd0NYOGdFQTFQK0xpd0NML3dD''@;'; + put 'put ''bzhnRUFPbzVyVldzdi93Qzg4Z0VBRi8vLy80d0Evd0RNOGdFQXhzRE1tVExNL3dEYzhnRUFBUCtMaXdBQS93RHA4Z0VBQ25ucDZaWjYvd0Q1OGdFQVZUMjhqN3lQL3dBTDh3RUFyNCtMU0QyTC93QWU4d0VBZjJkUEwwOVAvd0F4OHdFQWYyZFBMMDlQL3dCRTh3RUFnUC9SQU03Ui93Qlg4d0VB''@;'; + put 'put ''eC8vVGxBRFQvd0JuOHdFQTZPdi8veFNUL3dCMTh3RUFpdi8vQUwvLy93Q0c4d0VBQUFCcGFXbHAvd0NUOHdFQUFBQnBhV2xwL3dDZzh3RUFsT0gvSHBELy93Q3c4d0VBQU02eXNpSWkvd0MvOHdFQUhBLy8vL3J3L3dEUTh3RUFWY0NMSW9zaS93RGg4d0VBMVAvLy93RC8vd0R1OHdFQUFBRGMz''@;'; + put 'put ''TnpjL3dEOTh3RUFxZ2YvK1BqLy93QU45QUVBSS8vLy85Y0Evd0FYOUFFQUh0bmEycVVnL3dBbTlBRUFBQUNBZ0lDQS93QXc5QUVBVmYrQUFJQUEvd0E3OUFFQU85RC9yZjh2L3dCTTlBRUFBQUNBZ0lDQS93Qlc5QUVBVlEvLzhQL3cvd0JrOUFFQTZaYi8vMm0wL3dCeDlBRUFBSXpOelZ4Yy93''@;'; + put 'put ''Q0E5QUVBd3YrQ1N3Q0Mvd0NNOUFFQUtnLy8vLy93L3dDWDlBRUFKbXJ3OE9hTS93Q2k5QUVBcWhUNjV1YjYvd0N3OUFFQThBLy8vL0QxL3dERDlBRUFRUC84ZlB3QS93RFM5QUVBSmpILy8vck4vd0RrOUFFQWlUL21yZGptL3dEejlBRUFBSGZ3OElDQS93QUQ5UUVBZngvLzRQLy8vd0FTOVFF''@;'; + put 'put ''QUtpajYrdnJTL3dBczlRRUFBQURUMDlQVC93QTc5UUVBVldUdWtPNlEvd0JMOVFFQUFBRFQwOVBUL3dCYTlRRUErRW4vLzdiQi93QnA5UUVBRElULy82QjYvd0I2OVFFQWZkR3lJTEtxL3dDTjlRRUFqM1g2aDg3Ni93Q2Y5UUVBbERpWmQ0aVovd0N6OVFFQWxEaVpkNGlaL3dESDlRRUFselRl''@;'; + put 'put ''c01UZS93RGI5UUVBS2gvLy8vL2cvd0RzOVFFQVZmLy9BUDhBL3dEMjlRRUFWY0ROTXMweS93QUY5Z0VBRlJUNit2RG0vd0FROWdFQTFQLy8vd0QvL3dBZDlnRUFBUCtBZ0FBQS93QXA5Z0VBY1lETlpzMnEvd0EvOWdFQXF2L05BQUROL3dCUDlnRUF6SmpUdWxYVC93Qmg5Z0VBdDN6YmszRGIv''@;'; + put 'put ''d0J6OWdFQVo2bXpQTE54L3dDSDlnRUFzSS91ZTJqdS93Q2M5Z0VBYi8vNkFQcWEvd0N6OWdFQWZhZlJTTkhNL3dESTlnRUE1T1RIeHhXRi93RGQ5Z0VBcXNad0dSbHcvd0R2OWdFQWFnbi85Zi82L3dEKzlnRUFCQjcvLytUaC93QU45d0VBR2tuLy8rUzEvd0FiOXdFQUdWSC8vOTZ0L3dBczl3''@;'; + put 'put ''RUFxditBQUFDQS93QTI5d0VBR3hmOS9mWG0vd0JEOXdFQUt2K0FnSUFBL3dCTzl3RUFPTUNPYTQ0ai93QmQ5d0VBRy8vLy82VUEvd0JwOXdFQUMvLy8vMFVBL3dCNDl3RUExbnZhMm5EVy93Q0U5d0VBSmtqdTd1aXEvd0NYOXdFQVZXVDdtUHVZL3dDbTl3RUFmMFB1cis3dS93QzU5d0VBOFh6''@;'; + put 'put ''YjIzQ1Qvd0RNOXdFQUdpbi8vKy9WL3dEYzl3RUFGRWIvLzlxNS93RHI5d0VBRkxETnpZVS8vd0QxOXdFQTl6Ly8vOERML3dELzl3RUExRWJkM2FEZC93QUorQUVBaER2bXNPRG0vd0FaK0FFQTFQK0FnQUNBL3dBbCtBRUFBUC8vL3dBQS93QXUrQUVBQUQyOHZJK1Avd0E5K0FFQW43WGhRV25o''@;'; + put 'put ''L3dCTStBRUFFZHlMaTBVVC93QmQrQUVBQklyNitvQnkvd0JwK0FFQUU1cjA5S1JnL3dCNStBRUFaNnFMTG90WC93Q0grQUVBRVJELy8vWHUvd0NWK0FFQURiZWdvRkl0L3dDaCtBRUFBQURBd01EQS93Q3QrQUVBaTJ6cmg4N3Ivd0M2K0FFQXI0L05hbHJOL3dESitBRUFsRGlRY0lDUS93RFkr''@;'; + put 'put ''QUVBbERpUWNJQ1Evd0RuK0FFQUFBWC8vL3I2L3dEeCtBRUFhdi8vQVA5Ly93QUMrUUVBa3B1MFJvSzAvd0FSK1FFQUdGVFMwclNNL3dBYStRRUFmLytBQUlDQS93QWsrUUVBMUIzWTJML1kvd0F4K1FFQUJyai8vMk5IL3dBOStRRUFlN2JnUU9EUS93Qk0rUUVBMUhQdTdvTHUvd0JZK1FFQUcw''@;'; + put 'put ''VDE5ZDZ6L3dCaitRRUFBQUQvLy8vLy93QnUrUUVBQUFEMTlmWDEvd0IrK1FFQUt2Ly8vLzhBL3dDSytRRUFPTURObXMweS93Q2IrUUVBTFVQODkveTUvd0NrK1FFQVJGdmRyZDJPL3dDdCtRRUFZcktqTWFOVS93QzIrUUVBS2pMLy8vL00vd0MvK1FFQVBsWG13dWFaL3dESStRRUFWV1RHZU1a''@;'; + put 'put ''NS93RFIrUUVBWTd1RUk0UkQvd0RhK1FFQUtqTC8vLy9NL3dEaitRRUFQbFhtd3VhWi93RHMrUUVBVldUR2VNWjUvd0QxK1FFQVlyS2pNYU5VL3dEKytRRUFhLzlvQUdnMy93QUgrZ0VBS2pMLy8vL00vd0FRK2dFQU4xSHcyZkNqL3dBWitnRUFSRnZkcmQyTy93QWkrZ0VBVldUR2VNWjUvd0Fy''@;'; + put 'put ''K2dFQVlyS2pNYU5VL3dBMCtnRUFhLzlvQUdnMy93QTkrZ0VBS2pMLy8vL00vd0JHK2dFQU4xSHcyZkNqL3dCUCtnRUFSRnZkcmQyTy93QlkrZ0VBVldUR2VNWjUvd0JoK2dFQVlKNnJRYXRkL3dCcStnRUFZN3VFSTRSRC93QnorZ0VBYlA5YUFGb3kvd0I4K2dFQUtobi8vLy9sL3dDRitnRUFM''@;'; + put 'put ''VVA4OS95NS93Q08rZ0VBTjFIdzJmQ2ovd0NYK2dFQVJGdmRyZDJPL3dDZytnRUFWV1RHZU1aNS93Q3ArZ0VBWUo2clFhdGQvd0N5K2dFQVk3dUVJNFJEL3dDNytnRUFiUDlhQUZveS93REUrZ0VBS2huLy8vL2wvd0ROK2dFQUxVUDg5L3k1L3dEVytnRUFOMUh3MmZDai93RGYrZ0VBUkZ2ZHJk''@;'; + put 'put ''Mk8vd0RvK2dFQVZXVEdlTVo1L3dEeCtnRUFZSjZyUWF0ZC93RDYrZ0VBWTd1RUk0UkQvd0FEK3dFQWEvOW9BR2czL3dBTSt3RUFidjlGQUVVcC93QVYrd0VBTVVuNDdmaXgvd0FnK3dFQWRXSE5mODI3L3dBcit3RUFrTUs0TEgrNC93QTIrd0VBS2pMLy8vL00vd0JCK3dFQVkwTGFvZHEwL3dC''@;'; + put 'put ''TSt3RUFoS3JFUWJiRS93Qlgrd0VBbHN1b0lsNm8vd0JpK3dFQUtqTC8vLy9NL3dCdCt3RUFZMExhb2RxMC93QjQrd0VBaEtyRVFiYkUvd0NEK3dFQWtNSzRMSCs0L3dDTyt3RUFwTCtVSlRTVS93Q1ord0VBS2pMLy8vL00vd0NrK3dFQVJUcnB4K20wL3dDdit3RUFkV0hOZjgyNy93QzYrd0VB''@;'; + put 'put ''aEtyRVFiYkUvd0RGK3dFQWtNSzRMSCs0L3dEUSt3RUFwTCtVSlRTVS93RGIrd0VBS2pMLy8vL00vd0RtK3dFQVJUcnB4K20wL3dEeCt3RUFkV0hOZjgyNy93RDgrd0VBaEtyRVFiYkUvd0FIL0FFQWk5akFIWkhBL3dBUy9BRUFsc3VvSWw2by93QWQvQUVBbnVlRURDeUUvd0FvL0FFQUtpYi8v''@;'; + put 'put ''Ly9aL3dBei9BRUFNVW40N2ZpeC93QSsvQUVBUlRycHgrbTAvd0JKL0FFQWRXSE5mODI3L3dCVS9BRUFoS3JFUWJiRS93QmYvQUVBaTlqQUhaSEEvd0JxL0FFQWxzdW9JbDZvL3dCMS9BRUFudWVFREN5RS93Q0EvQUVBS2liLy8vL1ovd0NML0FFQU1VbjQ3Zml4L3dDVy9BRUFSVHJweCttMC93''@;'; + put 'put ''Q2gvQUVBZFdITmY4Mjcvd0NzL0FFQWhLckVRYmJFL3dDMy9BRUFpOWpBSFpIQS93REMvQUVBbHN1b0lsNm8vd0ROL0FFQXBMK1VKVFNVL3dEWS9BRUFudWRZQ0IxWS93RGovQUVBSlVMLy8vZTgvd0R1L0FFQUhLLysvc1JQL3dENS9BRUFFTzdaMlY4Ty93QUUvUUVBS2lyLy8vL1Uvd0FQL1FF''@;'; + put 'put ''QUhIRCsvdG1PL3dBYS9RRUFGdFgrL3BrcC93QWwvUUVBRC96TXpFd0Mvd0F3L1FFQUtpci8vLy9VL3dBNy9RRUFISEQrL3RtTy93QkcvUUVBRnRYKy9wa3Avd0JSL1FFQUVPN1oyVjhPL3dCYy9RRUFEZmlabVRRRS93Qm4vUUVBS2lyLy8vL1Uvd0J5L1FFQUgyMysvdU9SL3dCOS9RRUFISy8r''@;'; + put 'put ''L3NSUC93Q0kvUUVBRnRYKy9wa3Avd0NUL1FFQUVPN1oyVjhPL3dDZS9RRUFEZmlabVRRRS93Q3AvUUVBS2lyLy8vL1Uvd0MwL1FFQUgyMysvdU9SL3dDLy9RRUFISy8rL3NSUC93REsvUUVBRnRYKy9wa3Avd0RWL1FFQUV1bnM3SEFVL3dEZy9RRUFEL3pNekV3Qy93RHIvUUVBRFBlTWpDMEUv''@;'; + put 'put ''d0QyL1FFQUtobi8vLy9sL3dBQi9nRUFKVUwvLy9lOC93QU0vZ0VBSDIzKy91T1Ivd0FYL2dFQUhLLysvc1JQL3dBaS9nRUFGdFgrL3BrcC93QXQvZ0VBRXVuczdIQVUvd0E0L2dFQUQvek16RXdDL3dCRC9nRUFEUGVNakMwRS93Qk8vZ0VBS2huLy8vL2wvd0JaL2dFQUpVTC8vL2U4L3dCay9n''@;'; + put 'put ''RUFIMjMrL3VPUi93QnYvZ0VBSEsvKy9zUlAvd0I2L2dFQUZ0WCsvcGtwL3dDRi9nRUFFdW5zN0hBVS93Q1EvZ0VBRC96TXpFd0Mvd0NiL2dFQURmaVptVFFFL3dDbS9nRUFEZkJtWmlVRy93Q3gvZ0VBSWwvLy8rMmcvd0M4L2dFQUdMTCsvckpNL3dESC9nRUFCZDN3OERzZy93RFMvZ0VBS2sz''@;'; + put 'put ''Ly8vK3kvd0RkL2dFQUhhTCsvc3hjL3dEby9nRUFFY0w5L1kwOC93RHovZ0VBL3VIajR4b2Mvd0QrL2dFQUtrMy8vLyt5L3dBSi93RUFIYUwrL3N4Yy93QVUvd0VBRWNMOS9ZMDgvd0FmL3dFQUJkM3c4RHNnL3dBcS93RUE5dis5dlFBbS93QTEvd0VBS2szLy8vK3kvd0JBL3dFQUhvaisvdGwy''@;'; + put 'put ''L3dCTC93RUFHTEwrL3JKTS93Qlcvd0VBRWNMOS9ZMDgvd0JoL3dFQUJkM3c4RHNnL3dCcy93RUE5dis5dlFBbS93QjMvd0VBS2szLy8vK3kvd0NDL3dFQUhvaisvdGwyL3dDTi93RUFHTEwrL3JKTS93Q1kvd0VBRWNMOS9ZMDgvd0NqL3dFQUI5VDgvRTRxL3dDdS93RUEvdUhqNHhvYy93QzUv''@;'; + put 'put ''d0VBOWYreHNRQW0vd0RFL3dFQUtqTC8vLy9NL3dEUC93RUFJbC8vLysyZy93RGEvd0VBSG9qKy90bDIvd0RsL3dFQUdMTCsvckpNL3dEdy93RUFFY0w5L1kwOC93RDcvd0VBQjlUOC9FNHEvd0FHQUFJQS91SGo0eG9jL3dBUkFBSUE5Zit4c1FBbS93QWNBQUlBS2pMLy8vL00vd0FuQUFJQUls''@;'; + put 'put ''Ly8vKzJnL3dBeUFBSUFIb2orL3RsMi93QTlBQUlBR0xMKy9ySk0vd0JJQUFJQUVjTDkvWTA4L3dCVEFBSUFCOVQ4L0U0cS93QmVBQUlBL3VIajR4b2Mvd0JwQUFJQTl2Kzl2UUFtL3dCMEFBSUE4ditBZ0FBbS93Qi9BQUlBa3cvLzhQai8vd0NKQUFJQUdDUDYrdXZYL3dDV0FBSUFGeVQvLysv''@;'; + put 'put ''Yi93Q2tBQUlBRnlUdTd0L00vd0N5QUFJQUZ5VE56Y0N3L3dEQUFBSUFHQ0tMaTRONC93RE9BQUlBY1lEL2YvL1Uvd0RaQUFJQWNZRC9mLy9VL3dEbEFBSUFjWUR1ZHU3Ry93RHhBQUlBY1lETlpzMnEvd0Q5QUFJQWNZQ0xSWXQwL3dBSkFRSUFmdy8vOFAvLy93QVBBUUlBZncvLzhQLy8vd0FX''@;'; + put 'put ''QVFJQWZ3L3U0Tzd1L3dBZEFRSUFmdzdOd2MzTi93QWtBUUlBZnc2TGc0dUwvd0FyQVFJQUtocjE5ZlhjL3dBeEFRSUFGenIvLytURS93QTRBUUlBRnpyLy8rVEUvd0JBQVFJQUZ6cnU3dFczL3dCSUFRSUFGanJOemJlZS93QlFBUUlBRnpxTGkzMXIvd0JpR0FJQUFBQUFBQUFBL3dCWUFRSUFH''@;'; + put 'put ''VEgvLyt2Ti93Qm5BUUlBcXYvL0FBRC8vd0JzQVFJQXF2Ly9BQUQvL3dCeUFRSUFxdi91QUFEdS93QjRBUUlBcXYvTkFBRE4vd0IrQVFJQXF2K0xBQUNML3dDRUFRSUF3TTdpaWl2aS93Q1BBUUlBQUw2bHBTb3Evd0NWQVFJQUFMLy8vMEJBL3dDY0FRSUFBTC91N2pzNy93Q2pBUUlBQUwvTnpU''@;'; + put 'put ''TXovd0NxQVFJQUFMNkxpeU1qL3dDeEFRSUFGMlBlM3JpSC93QzdBUUlBRjJULy85T2Ivd0RHQVFJQUYyUHU3c1dSL3dEUkFRSUFGMlBOemFwOS93RGNBUUlBRjJPTGkzTlYvd0RuQVFJQWdHZWdYNTZnL3dEeEFRSUFnMmYvbVBYLy93RDhBUUlBZzJidWp1WHUvd0FIQWdJQWcyZk5lc1hOL3dB''@;'; + put 'put ''U0FnSUFnMmFMVTRhTC93QWRBZ0lBUC8vL2YvOEEvd0FvQWdJQVAvLy9mLzhBL3dBMEFnSUFQLy91ZHU0QS93QkFBZ0lBUC8vTlpzMEEvd0JNQWdJQVAvK0xSWXNBL3dCWUFnSUFFZHJTMG1rZS93QmlBZ0lBRWR2Ly8zOGsvd0J0QWdJQUVkdnU3blloL3dCNEFnSUFFZHJOeldZZC93Q0RBZ0lB''@;'; + put 'put ''RWR5TGkwVVQvd0NPQWdJQUM2Ly8vMzlRL3dDVUFnSUFCNm4vLzNKVy93Q2JBZ0lBQnFudTdtcFEvd0NpQWdJQUJxbk56VnRGL3dDcEFnSUFCcWlMaXo0di93Q3dBZ0lBbXBQdFpKWHQvd0MvQWdJQUlTTC8vL2pjL3dESUFnSUFJU0wvLy9qYy93RFNBZ0lBSWlQdTd1ak4vd0RjQWdJQUlpTE56''@;'; + put 'put ''Y2l4L3dEbUFnSUFJeUtMaTRoNC93RHdBZ0lBOXVmYzNCUTgvd0Q0QWdJQWYvLy9BUC8vL3dEOUFnSUFmLy8vQVAvLy93QURBd0lBZi8vdUFPN3Uvd0FKQXdJQWYvL05BTTNOL3dBUEF3SUFmLytMQUl1TC93QVZBd0lBSHUrNHVJWUwvd0FqQXdJQUh2RC8vN2tQL3dBeUF3SUFIdkR1N3EwTy93''@;'; + put 'put ''QkJBd0lBSHZETnpaVU0vd0JRQXdJQUh2Q0xpMlVJL3dCZkF3SUFWZjlrQUdRQS93QnBBd0lBSjI2OXZiZHIvd0J6QXdJQU9vNXJWV3N2L3dDQ0F3SUFPby8veXY5dy93Q1NBd0lBT28vdXZPNW8vd0NpQXdJQU9vL05vczFhL3dDeUF3SUFPbytMYm9zOS93RENBd0lBRi8vLy80d0Evd0ROQXdJ''@;'; + put 'put ''QUZmLy8vMzhBL3dEWkF3SUFGZi91N25ZQS93RGxBd0lBRmYvTnpXWUEvd0R4QXdJQUZmK0xpMFVBL3dEOUF3SUF4c0RNbVRMTS93QUlCQUlBeHNIL3Z6Ny8vd0FVQkFJQXhzRHVzanJ1L3dBZ0JBSUF4c0RObWpMTi93QXNCQUlBeHNDTGFDS0wvd0E0QkFJQUNubnA2Wlo2L3dCREJBSUFWVDI4''@;'; + put 'put ''ajd5UC93QlFCQUlBVlQ3L3dmL0Ivd0JlQkFJQVZUN3V0TzYwL3dCc0JBSUFWVDdObTgyYi93QjZCQUlBVlQ2TGFZdHAvd0NJQkFJQXI0K0xTRDJML3dDV0JBSUFmMmRQTDA5UC93Q2tCQUlBZjJqL2wvLy8vd0N6QkFJQWYyZnVqZTd1L3dEQ0JBSUFmMmpOZWMzTi93RFJCQUlBZjJpTFVvdUwv''@;'; + put 'put ''d0RnQkFJQWYyZFBMMDlQL3dEdUJBSUFnUC9SQU03Ui93RDhCQUlBeC8vVGxBRFQvd0FIQlFJQTZPdi8veFNUL3dBUUJRSUE2T3YvL3hTVC93QWFCUUlBNk92dTdoS0ovd0FrQlFJQTZPdk56UkIyL3dBdUJRSUE1K3lMaXdwUS93QTRCUUlBaXYvL0FMLy8vd0JFQlFJQWl2Ly9BTC8vL3dCUkJR''@;'; + put 'put ''SUFpdi91QUxMdS93QmVCUUlBaXYvTkFKck4vd0JyQlFJQWl2K0xBR2lML3dCNEJRSUFBQUJwYVdscC93Q0FCUUlBQUFCcGFXbHAvd0NJQlFJQWxPSC9IcEQvL3dDVEJRSUFsT0gvSHBELy93Q2ZCUUlBbE9IdUhJYnUvd0NyQlFJQWxPSE5HSFROL3dDM0JRSUFsT0dMRUU2TC93RERCUUlBQU02''@;'; + put 'put ''eXNpSWkvd0ROQlFJQUFNLy8vekF3L3dEWUJRSUFBTS91N2l3cy93RGpCUUlBQU0vTnpTWW0vd0R1QlFJQUFNK0xpeG9hL3dENUJRSUFIQS8vLy9ydy93QUZCZ0lBVmNDTElvc2kvd0FSQmdJQUFBRGMzTnpjL3dBYkJnSUFxZ2YvK1BqLy93QW1CZ0lBSS8vLy85Y0Evd0FyQmdJQUkvLy8vOWNB''@;'; + put 'put ''L3dBeEJnSUFJLy91N3NrQS93QTNCZ0lBSS8vTnphMEEvd0E5QmdJQUkvK0xpM1VBL3dCREJnSUFIdG5hMnFVZy93Qk5CZ0lBSHRyLy84RWwvd0JZQmdJQUh0cnU3clFpL3dCakJnSUFIdHJOelpzZC93QnVCZ0lBSHRxTGkya1Uvd0I1QmdJQUFBREF3TURBL3dCK0JnSUFBQUFBQUFBQS93Q0VC''@;'; + put 'put ''Z0lBQUFBREF3TUQvd0NLQmdJQUFBQWFHaG9hL3dDUkJnSUFBQUQvLy8vLy93Q1pCZ0lBQUFBY0hCd2Mvd0NnQmdJQUFBQWZIeDhmL3dDbkJnSUFBQUFoSVNFaC93Q3VCZ0lBQUFBa0pDUWsvd0MxQmdJQUFBQW1KaVltL3dDOEJnSUFBQUFwS1NrcC93RERCZ0lBQUFBckt5c3Ivd0RLQmdJQUFB''@;'; + put 'put ''QXVMaTR1L3dEUkJnSUFBQUF3TURBdy93RFlCZ0lBQUFBRkJRVUYvd0RlQmdJQUFBQXpNek16L3dEbEJnSUFBQUEyTmpZMi93RHNCZ0lBQUFBNE9EZzQvd0R6QmdJQUFBQTdPenM3L3dENkJnSUFBQUE5UFQwOS93QUJCd0lBQUFCQVFFQkEvd0FJQndJQUFBQkNRa0pDL3dBUEJ3SUFBQUJGUlVW''@;'; + put 'put ''Ri93QVdCd0lBQUFCSFIwZEgvd0FkQndJQUFBQktTa3BLL3dBa0J3SUFBQUFJQ0FnSS93QXFCd0lBQUFCTlRVMU4vd0F4QndJQUFBQlBUMDlQL3dBNEJ3SUFBQUJTVWxKUy93QS9Cd0lBQUFCVVZGUlUvd0JHQndJQUFBQlhWMWRYL3dCTkJ3SUFBQUJaV1ZsWi93QlVCd0lBQUFCY1hGeGMvd0Ji''@;'; + put 'put ''QndJQUFBQmVYbDVlL3dCaUJ3SUFBQUJoWVdGaC93QnBCd0lBQUFCalkyTmovd0J3QndJQUFBQUtDZ29LL3dCMkJ3SUFBQUJtWm1abS93QjlCd0lBQUFCcGFXbHAvd0NFQndJQUFBQnJhMnRyL3dDTEJ3SUFBQUJ1Ym01dS93Q1NCd0lBQUFCd2NIQncvd0NaQndJQUFBQnpjM056L3dDZ0J3SUFB''@;'; + put 'put ''QUIxZFhWMS93Q25Cd0lBQUFCNGVIaDQvd0N1QndJQUFBQjZlbnA2L3dDMUJ3SUFBQUI5ZlgxOS93QzhCd0lBQUFBTkRRME4vd0RDQndJQUFBQi9mMzkvL3dESkJ3SUFBQUNDZ29LQy93RFFCd0lBQUFDRmhZV0Yvd0RYQndJQUFBQ0hoNGVIL3dEZUJ3SUFBQUNLaW9xSy93RGxCd0lBQUFDTWpJ''@;'; + put 'put ''eU0vd0RzQndJQUFBQ1BqNCtQL3dEekJ3SUFBQUNSa1pHUi93RDZCd0lBQUFDVWxKU1Uvd0FCQ0FJQUFBQ1dscGFXL3dBSUNBSUFBQUFQRHc4UC93QU9DQUlBQUFDWm1abVovd0FWQ0FJQUFBQ2NuSnljL3dBY0NBSUFBQUNlbnA2ZS93QWpDQUlBQUFDaG9hR2gvd0FxQ0FJQUFBQ2pvNk9qL3dB''@;'; + put 'put ''eENBSUFBQUNtcHFhbS93QTRDQUlBQUFDb3FLaW8vd0EvQ0FJQUFBQ3JxNnVyL3dCR0NBSUFBQUN0cmEydC93Qk5DQUlBQUFDd3NMQ3cvd0JVQ0FJQUFBQVNFaElTL3dCYUNBSUFBQUN6czdPei93QmhDQUlBQUFDMXRiVzEvd0JvQ0FJQUFBQzR1TGk0L3dCdkNBSUFBQUM2dXJxNi93QjJDQUlB''@;'; + put 'put ''QUFDOXZiMjkvd0I5Q0FJQUFBQy92NysvL3dDRUNBSUFBQURDd3NMQy93Q0xDQUlBQUFERXhNVEUvd0NTQ0FJQUFBREh4OGZIL3dDWkNBSUFBQURKeWNuSi93Q2dDQUlBQUFBVUZCUVUvd0NtQ0FJQUFBRE16TXpNL3dDdENBSUFBQURQejgvUC93QzBDQUlBQUFEUjBkSFIvd0M3Q0FJQUFBRFUx''@;'; + put 'put ''TlRVL3dEQ0NBSUFBQURXMXRiVy93REpDQUlBQUFEWjJkblovd0RRQ0FJQUFBRGIyOXZiL3dEWENBSUFBQURlM3Q3ZS93RGVDQUlBQUFEZzRPRGcvd0RsQ0FJQUFBRGo0K1BqL3dEc0NBSUFBQUFYRnhjWC93RHlDQUlBQUFEbDVlWGwvd0Q1Q0FJQUFBRG82T2pvL3dBQUNRSUFBQURyNit2ci93''@;'; + put 'put ''QUhDUUlBQUFEdDdlM3Qvd0FPQ1FJQUFBRHc4UER3L3dBVkNRSUFBQUR5OHZMeS93QWNDUUlBQUFEMTlmWDEvd0FqQ1FJQUFBRDM5L2YzL3dBcUNRSUFBQUQ2K3ZyNi93QXhDUUlBQUFEOC9Qejgvd0E0Q1FJQVZmLy9BUDhBL3dBK0NRSUFWZi8vQVA4QS93QkZDUUlBVmYvdUFPNEEvd0JNQ1FJ''@;'; + put 'put ''QVZmL05BTTBBL3dCVENRSUFWZitMQUlzQS93QmFDUUlBTzlEL3JmOHYvd0JtQ1FJQUFBREF3TURBL3dCckNRSUFBQUFBQUFBQS93QnhDUUlBQUFBREF3TUQvd0IzQ1FJQUFBQWFHaG9hL3dCK0NRSUFBQUQvLy8vLy93Q0dDUUlBQUFBY0hCd2Mvd0NOQ1FJQUFBQWZIeDhmL3dDVUNRSUFBQUFo''@;'; + put 'put ''SVNFaC93Q2JDUUlBQUFBa0pDUWsvd0NpQ1FJQUFBQW1KaVltL3dDcENRSUFBQUFwS1NrcC93Q3dDUUlBQUFBckt5c3Ivd0MzQ1FJQUFBQXVMaTR1L3dDK0NRSUFBQUF3TURBdy93REZDUUlBQUFBRkJRVUYvd0RMQ1FJQUFBQXpNek16L3dEU0NRSUFBQUEyTmpZMi93RFpDUUlBQUFBNE9EZzQv''@;'; + put 'put ''d0RnQ1FJQUFBQTdPenM3L3dEbkNRSUFBQUE5UFQwOS93RHVDUUlBQUFCQVFFQkEvd0QxQ1FJQUFBQkNRa0pDL3dEOENRSUFBQUJGUlVWRi93QURDZ0lBQUFCSFIwZEgvd0FLQ2dJQUFBQktTa3BLL3dBUkNnSUFBQUFJQ0FnSS93QVhDZ0lBQUFCTlRVMU4vd0FlQ2dJQUFBQlBUMDlQL3dBbENn''@;'; + put 'put ''SUFBQUJTVWxKUy93QXNDZ0lBQUFCVVZGUlUvd0F6Q2dJQUFBQlhWMWRYL3dBNkNnSUFBQUJaV1ZsWi93QkJDZ0lBQUFCY1hGeGMvd0JJQ2dJQUFBQmVYbDVlL3dCUENnSUFBQUJoWVdGaC93QldDZ0lBQUFCalkyTmovd0JkQ2dJQUFBQUtDZ29LL3dCakNnSUFBQUJtWm1abS93QnFDZ0lBQUFC''@;'; + put 'put ''cGFXbHAvd0J4Q2dJQUFBQnJhMnRyL3dCNENnSUFBQUJ1Ym01dS93Qi9DZ0lBQUFCd2NIQncvd0NHQ2dJQUFBQnpjM056L3dDTkNnSUFBQUIxZFhWMS93Q1VDZ0lBQUFCNGVIaDQvd0NiQ2dJQUFBQjZlbnA2L3dDaUNnSUFBQUI5ZlgxOS93Q3BDZ0lBQUFBTkRRME4vd0N2Q2dJQUFBQi9mMzkv''@;'; + put 'put ''L3dDMkNnSUFBQUNDZ29LQy93QzlDZ0lBQUFDRmhZV0Yvd0RFQ2dJQUFBQ0hoNGVIL3dETENnSUFBQUNLaW9xSy93RFNDZ0lBQUFDTWpJeU0vd0RaQ2dJQUFBQ1BqNCtQL3dEZ0NnSUFBQUNSa1pHUi93RG5DZ0lBQUFDVWxKU1Uvd0R1Q2dJQUFBQ1dscGFXL3dEMUNnSUFBQUFQRHc4UC93RDdD''@;'; + put 'put ''Z0lBQUFDWm1abVovd0FDQ3dJQUFBQ2NuSnljL3dBSkN3SUFBQUNlbnA2ZS93QVFDd0lBQUFDaG9hR2gvd0FYQ3dJQUFBQ2pvNk9qL3dBZUN3SUFBQUNtcHFhbS93QWxDd0lBQUFDb3FLaW8vd0FzQ3dJQUFBQ3JxNnVyL3dBekN3SUFBQUN0cmEydC93QTZDd0lBQUFDd3NMQ3cvd0JCQ3dJQUFB''@;'; + put 'put ''QVNFaElTL3dCSEN3SUFBQUN6czdPei93Qk9Dd0lBQUFDMXRiVzEvd0JWQ3dJQUFBQzR1TGk0L3dCY0N3SUFBQUM2dXJxNi93QmpDd0lBQUFDOXZiMjkvd0JxQ3dJQUFBQy92NysvL3dCeEN3SUFBQURDd3NMQy93QjRDd0lBQUFERXhNVEUvd0IvQ3dJQUFBREh4OGZIL3dDR0N3SUFBQURKeWNu''@;'; + put 'put ''Si93Q05Dd0lBQUFBVUZCUVUvd0NUQ3dJQUFBRE16TXpNL3dDYUN3SUFBQURQejgvUC93Q2hDd0lBQUFEUjBkSFIvd0NvQ3dJQUFBRFUxTlRVL3dDdkN3SUFBQURXMXRiVy93QzJDd0lBQUFEWjJkblovd0M5Q3dJQUFBRGIyOXZiL3dERUN3SUFBQURlM3Q3ZS93RExDd0lBQUFEZzRPRGcvd0RT''@;'; + put 'put ''Q3dJQUFBRGo0K1BqL3dEWkN3SUFBQUFYRnhjWC93RGZDd0lBQUFEbDVlWGwvd0RtQ3dJQUFBRG82T2pvL3dEdEN3SUFBQURyNit2ci93RDBDd0lBQUFEdDdlM3Qvd0Q3Q3dJQUFBRHc4UER3L3dBQ0RBSUFBQUR5OHZMeS93QUpEQUlBQUFEMTlmWDEvd0FRREFJQUFBRDM5L2YzL3dBWERBSUFB''@;'; + put 'put ''QUQ2K3ZyNi93QWVEQUlBQUFEOC9Qejgvd0FsREFJQVZRLy84UC93L3dBdURBSUFWUS8vOFAvdy93QTREQUlBVlEvdTRPN2cvd0JDREFJQVZRN053YzNCL3dCTURBSUFWUTZMZzR1RC93QldEQUlBNlpiLy8ybTAvd0JlREFJQTZwSC8vMjYwL3dCbkRBSUE2NDN1N21xbi93QndEQUlBN0lmTnpX''@;'; + put 'put ''Q1Evd0I1REFJQTZwU0xpenBpL3dDQ0RBSUFBSXpOelZ4Yy93Q01EQUlBQUpULy8ycHEvd0NYREFJQUFKVHU3bU5qL3dDaURBSUFBSlhOelZWVi93Q3REQUlBQUpTTGl6bzYvd0M0REFJQXd2K0NTd0NDL3dDL0RBSUFLZ0QvLy8vK0FBREZEQUlBS2cvLy8vL3cvd0RMREFJQUtnLy8vLy93L3dE''@;'; + put 'put ''U0RBSUFLZy91N3U3Zy93RFpEQUlBS2c3TnpjM0Ivd0RnREFJQUtnNkxpNHVEL3dEbkRBSUFKbXJ3OE9hTS93RHREQUlBSjNELy8vYVAvd0QwREFJQUozRHU3dWFGL3dEN0RBSUFKMi9OemNaei93QUNEUUlBSjIrTGk0Wk8vd0FKRFFJQXFoVDY1dWI2L3dBU0RRSUE4QS8vLy9EMS93QWdEUUlB''@;'; + put 'put ''OEEvLy8vRDEvd0F2RFFJQTd3L3U3dURsL3dBK0RRSUE4QTdOemNIRi93Qk5EUUlBN3c2TGk0T0cvd0JjRFFJQVFQLzhmUHdBL3dCbURRSUFKakgvLy9yTi93QnpEUUlBSmpILy8vck4vd0NCRFFJQUpUTHU3dW0vL3dDUERRSUFKakhOemNtbC93Q2REUUlBSnpHTGk0bHcvd0NyRFFJQWlUL21y''@;'; + put 'put ''ZGptL3dDMURRSUFpa0QvdisvLy93REFEUUlBaWtEdXN0L3Uvd0RMRFFJQWlqL05tc0ROL3dEV0RRSUFpVUNMYUlPTC93RGhEUUlBQUhmdzhJQ0Evd0RzRFFJQWZ4Ly80UC8vL3dEMkRRSUFmeC8vNFAvLy93QUJEZ0lBZngvdTBlN3Uvd0FNRGdJQWZ4L050TTNOL3dBWERnSUFmeCtMZW91TC93''@;'; + put 'put ''QWlEZ0lBSTNQdTd0MkMvd0F4RGdJQUkzVC8vK3lML3dCQkRnSUFJM1B1N3R5Qy93QlJEZ0lBSTNQTnpiNXcvd0JoRGdJQUkzT0xpNEZNL3dCeERnSUFLaWo2K3ZyUy93Q0dEZ0lBQUFEVDA5UFQvd0NRRGdJQUFBRFQwOVBUL3dDYURnSUErRW4vLzdiQi93Q2tEZ0lBK1ZILy82NjUvd0N2RGdJ''@;'; + put 'put ''QStGSHU3cUt0L3dDNkRnSUErVkROell5Vi93REZEZ0lBK1ZDTGkxOWwvd0RRRGdJQURJVC8vNkI2L3dEY0RnSUFESVQvLzZCNi93RHBEZ0lBQzRUdTdwVnkvd0QyRGdJQURJWE56WUZpL3dBRER3SUFESVdMaTFkQy93QVFEd0lBZmRHeUlMS3Evd0FlRHdJQWozWDZoODc2L3dBckR3SUFqMC8v''@;'; + put 'put ''c09MLy93QTVEd0lBajAvdXBOUHUvd0JIRHdJQWprL05qYmJOL3dCVkR3SUFqMDZMWUh1TC93QmpEd0lBcjQvL2hIRC8vd0J5RHdJQWxEaVpkNGlaL3dDQkR3SUFsRGlaZDRpWi93Q1FEd0lBbHpUZXNNVGUvd0NmRHdJQWx6WC95dUgvL3dDdkR3SUFselh1dk5MdS93Qy9Ed0lBbHpYTm9yWE4v''@;'; + put 'put ''d0RQRHdJQWxqV0xibnVML3dEZkR3SUFLaC8vLy8vZy93RHJEd0lBS2gvLy8vL2cvd0Q0RHdJQUtoL3U3dTdSL3dBRkVBSUFLaC9OemMyMC93QVNFQUlBS2grTGk0dDYvd0FmRUFJQVZjRE5NczB5L3dBcEVBSUFGUlQ2K3ZEbS93QXZFQUlBMVAvLy93RC8vd0EzRUFJQTFQLy8vd0QvL3dCQUVB''@;'; + put 'put ''SUExUC91N2dEdS93QkpFQUlBMVAvTnpRRE4vd0JTRUFJQTFQK0xpd0NML3dCYkVBSUE3N213c0RCZy93QmlFQUlBNU12Ly96U3ovd0JxRUFJQTVNdnU3akNuL3dCeUVBSUE1TXpOelNtUS93QjZFQUlBNU11TGl4eGkvd0NDRUFJQWNZRE5aczJxL3dDVEVBSUFxdi9OQUFETi93Q2VFQUlBekpq''@;'; + put 'put ''VHVsWFQvd0NyRUFJQXk1bi80R2IvL3dDNUVBSUF5NW51MFYvdS93REhFQUlBeTVuTnRGTE4vd0RWRUFJQXk1cUxlamVML3dEakVBSUF0M3piazNEYi93RHdFQUlBdDMzL3E0TC8vd0QrRUFJQXQzM3VuM251L3dBTUVRSUF0MzNOaVdqTi93QWFFUUlBdDN5TFhVZUwvd0FvRVFJQVo2bXpQTE54''@;'; + put 'put ''L3dBM0VRSUFzSS91ZTJqdS93QkhFUUlBYi8vNkFQcWEvd0JaRVFJQWZhZlJTTkhNL3dCcEVRSUE1T1RIeHhXRi93QjVFUUlBcXNad0dSbHcvd0NHRVFJQWFnbi85Zi82L3dDUUVRSUFCQjcvLytUaC93Q2FFUUlBQkI3Ly8rVGgvd0NsRVFJQUJCN3U3dFhTL3dDd0VRSUFBeDNOemJlMS93QzdF''@;'; + put 'put ''UUlBQlIyTGkzMTcvd0RHRVFJQUdrbi8vK1MxL3dEUEVRSUFHVkgvLzk2dC93RGJFUUlBR1ZILy85NnQvd0RvRVFJQUdWTHU3cytoL3dEMUVRSUFHVkxOemJPTC93QUNFZ0lBR1ZLTGkzbGUvd0FQRWdJQXF2K0FBQUNBL3dBVUVnSUFxditBQUFDQS93QWRFZ0lBS2dELy8vLytBQUFpRWdJQUd4''@;'; + put 'put ''ZjkvZlhtL3dBcUVnSUFPTUNPYTQ0ai93QTBFZ0lBT01IL3dQOCsvd0EvRWdJQU9NRHVzKzQ2L3dCS0VnSUFPTURObXMweS93QlZFZ0lBT01DTGFZc2kvd0JnRWdJQUcvLy8vNlVBL3dCbkVnSUFHLy8vLzZVQS93QnZFZ0lBRy8vdTdwb0Evd0IzRWdJQUcvL056WVVBL3dCL0VnSUFHLytMaTFv''@;'; + put 'put ''QS93Q0hFZ0lBQy8vLy8wVUEvd0NSRWdJQUMvLy8vMFVBL3dDY0VnSUFDLy91N2tBQS93Q25FZ0lBQy8vTnpUY0Evd0N5RWdJQUMvK0xpeVVBL3dDOUVnSUExbnZhMm5EVy93REVFZ0lBMW56Ly80UDYvd0RNRWdJQTFuenU3bnJwL3dEVUVnSUExbnpOelduSi93RGNFZ0lBMVh5TGkwZUovd0Rr''@;'; + put 'put ''RWdJQUpranU3dWlxL3dEeUVnSUFWV1Q3bVB1WS93RDhFZ0lBVldYL212K2Evd0FIRXdJQVZXVHVrTzZRL3dBU0V3SUFWV1ROZk0xOC93QWRFd0lBVldTTFZJdFUvd0FvRXdJQWYwUHVyKzd1L3dBMkV3SUFmMFQvdS8vLy93QkZFd0lBZjBUdXJ1N3Uvd0JVRXdJQWYwVE5sczNOL3dCakV3SUFm''@;'; + put 'put ''ME9MWm91TC93QnlFd0lBOFh6YjIzQ1Qvd0NBRXdJQThYMy8vNEtyL3dDUEV3SUE4WDN1N25tZi93Q2VFd0lBOFgzTnpXaUovd0N0RXdJQThYeUxpMGRkL3dDOEV3SUFHaW4vLysvVi93REhFd0lBRkViLy85cTUvd0RSRXdJQUZFYi8vOXE1L3dEY0V3SUFFMFh1N3N1dC93RG5Fd0lBRTBYTnph''@;'; + put 'put ''K1Yvd0R5RXdJQUZFV0xpM2RsL3dEOUV3SUFGTEROellVLy93QUNGQUlBOXovLy84REwvd0FIRkFJQTlVbi8vN1hGL3dBTkZBSUE5VW51N3FtNC93QVRGQUlBOVVyTnpaR2Uvd0FaRkFJQTlVbUxpMk5zL3dBZkZBSUExRWJkM2FEZC93QWtGQUlBMUVULy83di8vd0FxRkFJQTFFVHU3cTd1L3dB''@;'; + put 'put ''d0ZBSUExRVROelpiTi93QTJGQUlBMUVPTGkyYUwvd0E4RkFJQWhEdm1zT0RtL3dCSEZBSUF4TjN3b0NEdy93Qk9GQUlBdjgvL216RC8vd0JXRkFJQXdNL3VrU3p1L3dCZUZBSUF3TS9OZlNiTi93Qm1GQUlBd00rTFZScUwvd0J1RkFJQUFQLy8vd0FBL3dCeUZBSUFBUC8vL3dBQS93QjNGQUlB''@;'; + put 'put ''QVAvdTdnQUEvd0I4RkFJQUFQL056UUFBL3dDQkZBSUFBUCtMaXdBQS93Q0dGQUlBQUQyOHZJK1Avd0NRRkFJQUFENy8vOEhCL3dDYkZBSUFBRDd1N3JTMC93Q21GQUlBQUQ3TnpadWIvd0N4RkFJQUFENkxpMmxwL3dDOEZBSUFuN1hoUVduaC93REdGQUlBbjdmL1NIYi8vd0RSRkFJQW43ZnVR''@;'; + put 'put ''Mjd1L3dEY0ZBSUFuN2JOT2wvTi93RG5GQUlBbjdlTEowQ0wvd0R5RkFJQUVkeUxpMFVUL3dEK0ZBSUFCSXI2K29CeS93QUZGUUlBQ1piLy80eHAvd0FORlFJQUNaYnU3b0ppL3dBVkZRSUFDWmJOelhCVS93QWRGUUlBQ1phTGkwdzUvd0FsRlFJQUU1cjA5S1JnL3dBd0ZRSUFaNnFMTG90WC93''@;'; + put 'put ''QTVGUUlBWjZ2L1ZQK2Yvd0JERlFJQVo2dnVUdTZVL3dCTkZRSUFaNnZOUTgyQS93QlhGUUlBWjZxTExvdFgvd0JoRlFJQUVSRC8vL1h1L3dCcUZRSUFFUkQvLy9YdS93QjBGUUlBRWhIdTd1WGUvd0IrRlFJQUVoSE56Y1cvL3dDSUZRSUFFaENMaTRhQy93Q1NGUUlBRGJlZ29GSXQvd0NaRlFJ''@;'; + put 'put ''QURiai8vNEpIL3dDaEZRSUFEYmp1N25sQy93Q3BGUUlBRGJqTnpXZzUvd0N4RlFJQURibUxpMGNtL3dDNUZRSUFpMnpyaDg3ci93REJGUUlBa0hqL2g4Ny8vd0RLRlFJQWtIanVmc0R1L3dEVEZRSUFrSGpOYktiTi93RGNGUUlBa1hlTFNuQ0wvd0RsRlFJQXI0L05hbHJOL3dEdkZRSUFyNUQv''@;'; + put 'put ''ZzIvLy93RDZGUUlBcjVEdWVtZnUvd0FGRmdJQXI1RE5hVm5OL3dBUUZnSUFyNUNMUnp5TC93QWJGZ0lBbERpUWNJQ1Evd0FsRmdJQWxUai94dUwvL3dBd0ZnSUFsVGp1dWRQdS93QTdGZ0lBbERuTm43Yk4vd0JHRmdJQWxUaUxiSHVML3dCUkZnSUFsRGlRY0lDUS93QmJGZ0lBQUFYLy8vcjYv''@;'; + put 'put ''d0JnRmdJQUFBWC8vL3I2L3dCbUZnSUFBQVh1N3VucC93QnNGZ0lBQUFUTnpjbkovd0J5RmdJQUFBT0xpNG1KL3dCNEZnSUFhdi8vQVA5Ly93Q0VGZ0lBYXYvL0FQOS8vd0NSRmdJQWF2L3VBTzUyL3dDZUZnSUFhdi9OQU0xbS93Q3JGZ0lBYXYrTEFJdEYvd0M0RmdJQWtwdTBSb0swL3dEQ0Zn''@;'; + put 'put ''SUFrcHovWTdqLy93RE5GZ0lBa3B6dVhLenUvd0RZRmdJQWtwek5UNVROL3dEakZnSUFrNXVMTm1TTC93RHVGZ0lBR0ZUUzByU00vd0R5RmdJQUZMRC8vNlZQL3dEM0ZnSUFGTER1N3BwSi93RDhGZ0lBRkxETnpZVS8vd0FCRndJQUZMQ0xpMW9yL3dBR0Z3SUExQjNZMkwvWS93QU9Gd0lBMUI3''@;'; + put 'put ''Ly8rSC8vd0FYRndJQTFCN3U3dEx1L3dBZ0Z3SUExQjNOemJYTi93QXBGd0lBMUIyTGkzdUwvd0F5RndJQUJyai8vMk5IL3dBNUZ3SUFCcmovLzJOSC93QkJGd0lBQnJqdTdseEMvd0JKRndJQUJyak56VTg1L3dCUkZ3SUFCcm1MaXpZbS93Q2pHQUlBS2dELy8vLytBQUJaRndJQWU3YmdRT0RR''@;'; + put 'put ''L3dCakZ3SUFnZi8vQVBYLy93QnVGd0lBZ2YvdUFPWHUvd0I1RndJQWdmL05BTVhOL3dDRUZ3SUFnZitMQUlhTC93Q1BGd0lBMUhQdTdvTHUvd0NXRndJQTQ5ZlEwQ0NRL3dDZ0Z3SUE2OEgvL3o2Vy93Q3JGd0lBNjhEdTdqcU0vd0MyRndJQTY4RE56VEo0L3dEQkZ3SUE2OENMaXlKUy93RE1G''@;'; + put 'put ''d0lBRzBUMTlkNnovd0RTRndJQUcwWC8vK2U2L3dEWkZ3SUFHMFR1N3RpdS93RGdGd0lBRzBUTnpicVcvd0RuRndJQUcwT0xpMzVtL3dEdUZ3SUFBQUQvLy8vLy93RDBGd0lBQUFEMTlmWDEvd0QvRndJQUt2Ly8vLzhBL3dBR0dBSUFLdi8vLy84QS93QU9HQUlBS3YvdTd1NEEvd0FXR0FJQUt2''@;'; + put 'put ''L056YzBBL3dBZUdBSUFLditMaTRzQS93QW1HQUlBT01ETm1zMHkvd0NhSEFJQWZ5d0NBTFlZQWdDNEdBSUF1aGdDQUx3WUFnQytHQUlBd0JnQ0FNSVlBZ0RFR0FJQXhoZ0NBTWtZQWdETUdBSUF6eGdDQU5JWUFnRFZHQUlBMkJnQ0FOc1lBZ0RlR0FJQTRSZ0NBT1FZQWdBQUFBQUFCQUFBQUFR''@;'; + put 'put ''QUFBQUxBQUFBTmdBQUFCWUFBQUFBQUFBQUFBQUFBQUFBQUFBSUFBQUFFQUFBQUJnQUFBQUFBQUFBQUFBQUFCY0FBQUFBQUFBQUFBQUFBQUFBQUFBSUFBQUFFQUFBQUJnQUFBQUFBQUFBQUFBQUFCZ0FBQUFBQUFBQUFBQUFBQUFBQUFBSUFBQUFCQUFBQUFBQUFBQUFBQUFBTndBQUFBQUFBQUFB''@;'; + put 'put ''QUFBQUFBQUFBQUFBQUFBSUFBQUFCQUFBQUFBQUFBQUFBQUFBT0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFER0pRSUFD''@;'; + put 'put ''UUFBQU13bEFnQUtBQUFBMVNVQ0FBc0FBQUFYSmdJQURBQUFBQjBtQWdBTkFBQUFJaVlDQUE0QUFBRFZKUUlBRHdBQUFLb21BZ0FRQUFBQXNTWUNBQkVBQUFDNUpnSUFFZ0FBQU1BbUFnQVRBQUFBekNZQ0FCUUFBQUFYSmdJQUZRQUFBTmdtQWdBV0FBQUE0Q1lDQUJjQUFBRHFKZ0lBR0FBQUFQ''@;'; + put 'put ''Z21BZ0FaQUFBQS95WUNBQm9BQUFBRUp3SUFHd0FBQUFjbkFnQWNBQUFBRENjQ0FCMEFBQUFVSndJQUhnQUFBQm9uQWdBZkFBQUFJQ2NDQUNBQUFBQW5Kd0lBSVFBQUFDMG5BZ0FoQUFBQU5TY0NBQ0lBQUFBOEp3SUFJd0FBQU5VbEFnQWtBQUFBc1NZQ0FCRUFBQUM1SmdJQUVnQUFBRE1wQWdB''@;'; + put 'put ''bEFBQUF3Q1lDQUJNQUFBRE1KZ0lBRkFBQUFCY21BZ0FWQUFBQVBpa0NBQ1lBQUFEZ0pnSUFGd0FBQU9vbUFnQVlBQUFBK0NZQ0FCa0FBQUQvSmdJQUdnQUFBQVFuQWdBYkFBQUFCeWNDQUJ3QUFBQkdLUUlBSndBQUFCUW5BZ0FlQUFBQUdpY0NBQjhBQUFBZ0p3SUFJQUFBQUNjbkFnQWhBQUFB''@;'; + put 'put ''TFNjQ0FDRUFBQUExSndJQUlnQUFBRHduQWdBakFBQUFHUUFBQUJvQUFBQWJBQUFBSEFBQUFCMEFBQUFlQUFBQUh3QUFBQ2dBQUFBcEFBQUFJQUFBQUNvQUFBQU1BQUFBR1FBQUFDRUFBQUFFQUFBQUJRQUFBQUVBQUFBQUFBQUFBQUFBQUFBQUFBQUFGUW9BQUFrQUFBQUFBQUFBQUFBQUFBQUFB''@;'; + put 'put ''QUFBQUFBVkVBd1RIQjRERFI4Z0lTSWpHeG9SR1JrWkdSa1pHUmtaR1JZU0FnNExEeHdZR0JnWUdCZ1dGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFFjQkJ3V0hCZ1lHQmdZR0JZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0hDUWNIQndjSEJ3Y0hCd2NIQndjSEJ3Y0hCd2NIQndjSEJ3Y0hC''@;'; + put 'put ''d2NIQndjSEJ3Y0hCd2NIQndjSEJ3Y0hCd1dIQndjSEJ3Y0hCd2NIQlljR2h3Y0Zod2NIQndjRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWWNGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmh3V0ZoWVdGaFlXRmdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB''@;'; + put 'put ''QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy84QUFBQUFBQUFBQlA3Ly80ZisvLzhIQUFBQUFBQUFBQUQvLzMvLy8vOS8vLy8vLy8vLy8vTi8vdjMv''@;'; + put 'put ''Ly8vLy8zLy8vLy8vLy8vLy93L2cvLy8vL3pIOC8vLy9BQUFBQUFBQUFQLy8vLy8vLy8vLy8vLy9BUUQ0QXdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFRTmYvLy92Ly8vLy9mMzlVL2Y4UEFQN2YvLy8vLy8vLy8vLyszLy8vLy84REFQLy8vLy8vLzU4Wi8vLy96ejhEQUFBQUFBQUEv''@;'; + put 'put ''di8vLzM4Qy92Ly8vMzhBQUFBQUFBQUFBQUQvLy84SEJ3QUFBQUFBL3YvL0IvNEhBQUFBQVA3Ly8vLy8vLy8vLzN6L2Z5OEFZQUFBQU9ELy8vLy8vLzhqQUFBQS93TUFBQURnbi9uLy8vM0ZBd0FBQUxBREFBTUE0SWY1Ly8vOWJRTUFBQUJlQUFBY0FPQ3YrLy8vL2UwakFBQUFBQUVBQUFEZ24v''@;'; + put 'put ''bi8vLzNOSXdBQUFMQURBQUFBNE1jOTFoakh2d01BQUFBQUFBQUFBT0RmL2YvLy9lOERBQUFBQUFNQUFBRGczLzMvLy8zdkF3QUFBRUFEQUFBQTROLzkvLy85L3dNQUFBQUFBd0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUQrLy8vLy8zOE5BRDhBQUFBQUFBQUFsaVh3L3E1c0RTQWZBQUFBQUFB''@;'; + put 'put ''QUFBQUFBQUFBQUFBQS8vNy8vLzhEQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFELy8vLy9Qd0QvLy8vL2Z3RHQyZ2NBQUFBQVVBRlFNWUtyWWl3QUFBQUFRQURKZ1BVSEFBQUFBQWdCQXYvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy84UC8vLy8vLy8v''@;'; + put 'put ''Ly8vLy8vOEQvLzgvUC8vLy8vOC9QLytxLy8vL1AvLy8vLy8vLzk5ZjNCL1BELzhmM0I4QUFBQUFRRXdBQUFBQUFBQUFBQUFBQndBQUFBQUFBQUFBQUFBQUFBQUFBSUFBQUFEK0F3QUEvdi8vLy8vLy8vLy8veDhBL3YvLy8vLy8vLy8vLy84SDRQLy8vLzhmQUFBQUFBQUFBQUFBQUFBQUFBQUFB''@;'; + put 'put ''QUFBQUFBQUFBQUFBQUQvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL3o4QUFBQUFBQUFBQUFBQUFQLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9Ed0FBQUFBQUFBQUFBQUFBQUFBQUFBQmcvd2YrLy8rSC92Ly9Cd0FBQUFBQUFJQUEvLzkvLy8vL2YvLy8vLzhBQUFBQUFBQUEvLy8vLy8vLy8v''@;'; + put 'put ''Ly8vLzhCQVBnREFBTUFBQUFBQVAvLy8vLy8vLy8vUHdBQUFBTUFBQURBMS8vLysvLy8vLzkvZjFUOS93OEEvdC8vLy8vLy8vLy8vLzdmLy8vLy8zc0EvLy8vLy8vL254bi8vLy9QUHdNQUFBQUFBQUQrLy8vL2Z3TCsvLy8vZndEKy8vdi8vN3NXQVAvLy93Y0hBQUFBQUFEKy8vOEgvLzhIQVA4''@;'; + put 'put ''RC8vLy8vLy8vLy8vL2ZQOS83Ly8vUGY4RDd2Ly8vLy8vLy9QL1B4Ny96LzhBQU82ZitmLy8vY1hUbnptQXNNLy9Bd0RraC9uLy8vMXQwNGM1QUY3QS94OEE3cS83Ly8vOTdmTy9Pd0FBd2Y4QUFPNmYrZi8vL2Mzemp6bkFzTVAvQUFEc3h6M1dHTWUvdzhjOWdBQ0Evd0FBN3QvOS8vLzk3OFBm''@;'; + put 'put ''UFdBQXcvOEFBT3pmL2YvLy9lL0QzejFnUU1QL0FBRHMzLzMvLy8zL3c4ODlnQUREL3dBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVA3Ly8vLy9mLzhILzMvL0F3QUFBQUNXSmZEK3Jtei9PMTgvL3dNQUFBQUFBQUFBQS84RG9NTC8vdi8vL3dQKy85OFB2LzcvUC80Q0FBQUFBQUFBQUFBQUFBQUFB''@;'; + put 'put ''QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVA4ZkFnQUFBS0FBQUFEKy96NEEvdi8vLy8vLy8vLy8veDltL3YvLy8vLy8vLy8vLy85M0dRQUFBQm9BQUFBYkFBQUFIQUFBQUIwQUFBQWVBQUFBSHdBQUFDZ0FBQUFwQUFBQUlBQUFBQ29BQUFBTUFBQUFHUUFBQUNFQUFBQUdBQUFBQndBQUFB''@;'; + put 'put ''RUFBQUFCQUFBQUFBQUFBQUFBQUFBQUZRb0FBQlVBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFWRUF3VEhCNEREUjhnSVNJakd4b1JHUmtaR1JrWkdSa1pHUllTQWc0TER4d1lHQmdZR0JnV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoUWNCQndXSEJnWUdCZ1lHQllXRmhZV0ZoWVdGaFlXRmhZ''@;'; + put 'put ''V0ZoWVdGaFlXSENRY0hCd0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVR0JnWUdCZ1lHQmdZR0JnWUdCZ1lH''@;'; + put 'put ''QndjSEJ3Y0FBQUFBQUFBQUFBQUJBU3NBQUFBc0FBQUFMUUFBQUM0QUFBQXZBQUFBTFFBQUFEQUFBQUF4QUFBQU1nQUFBQmtBQUFBYUFBQUFHd0FBQUJ3QUFBQWRBQUFBSGdBQUFCOEFBQUFvQUFBQUtRQUFBQ0FBQUFBcUFBQUFEQUFBQUJrQUFBQWhBQUFBQmdBQUFBY0FBQUFCQUFBQUFRQUFB''@;'; + put 'put ''QUFBQUFBQUFBQUFBQlVLQUFBSkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUZSQU1FeHdlQXcwZklDRWlJeHNhRVJrWkdSa1pHUmtaR1JrV0VnSU9DdzhjR0JnWUdCZ1lGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlVSEFRY0Zod1lHQmdZR0JnV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0Zo''@;'; + put 'put ''d2tIQndjQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCZ1lHQmdZR0JnWUdCZ1lHQmdZR0JnY0hCd2NIQUFB''@;'; + put 'put ''QUFBQUFBQUFBQVFFckFBQUFMQUFBQUMwQUFBQXVBQUFBTHdBQUFDMEFBQUF3QUFBQU1RQUFBRElBQUFBQTNRQUFZT1lBQU5qa0FBRE01d0FBek9jQUFEanBBQURZNUFBQUdRQUFBQm9BQUFBYkFBQUFIQUFBQUIwQUFBQWVBQUFBSHdBQUFDZ0FBQUFwQUFBQUlBQUFBQ29BQUFBTUFBQUFHUUFB''@;'; + put 'put ''QUNFQUFBQUlBQUFBQlFBQUFBRUFBQUFCQUFBQUFBQUFBQUFBQUFBQUZRb0FBQWtBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFWRUF3VEhCNEREUjhnSVNJakd4b1JHUmtaR1JrWkdSa1pHUllTQWc0TER4d1lHQmdZR0JnV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoUWNCQndXSEJnWUdCZ1lH''@;'; + put 'put ''QllXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXSENRY0hCd0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB''@;'; + put 'put ''QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQ0lBQUFBakFBQUFKQUFBQUNVQUFBQW1BQUFBSndBQUFDZ0FBQUF6QUFBQU5BQUFBQ2tBQUFBMUFBQUFEUUFBQUJvQUFBQXFBQUFBQ1FB''@;'; + put 'put ''QUFBb0FBQUFDQUFBQUFBQUFBQUFBQUFBQUFBQUFBQlVLQUFBSkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUZSQU1FeHdlQXcwZklDRWlJeHNhRVJrWkdSa1pHUmtaR1JrV0VnSU9DdzhjR0JnWUdCZ1lGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlVSEFRY0Zod1lHQmdZR0JnV0ZoWVdGaFlX''@;'; + put 'put ''RmhZV0ZoWVdGaFlXRmhZV0Zod2tIQndjSEJ3Y0hCd2NIQndjSEJ3Y0hCd2NIQndjSEJ3Y0hCd2NIQndjSEJ3Y0hCd2NIQndjSEJ3Y0hCd2NGaHdjSEJ3Y0hCd2NIQndXSEJvY0hCWWNIQndjSEJZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdIQllXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdG''@;'; + put 'put ''aFlXRmhZV0ZoWVdGaFlXRmhZY0ZoWVdGaFlXRmhZQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBckFBQUFMQUFBQUMwQUFBQXVBQUFBTHdBQUFEQUFBQUF4QUFBQU5nQUFBRGNBQUFBeUFBQUFPQUFBQUE0QUFBQWJBQUFBTXdBQUFBc0FBQUFNQUFBQUFn''@;'; + put 'put ''QUFBQUFCQUFBQUFBQUFBQUFBQUFBVkNnQUFDUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQlVRREJNY0hnTU5IeUFoSWlNYkdoRVpHUmtaR1JrWkdSa1pGaElDRGdzUEhCZ1lHQmdZR0JZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZCd0VIQlljR0JnWUdCZ1lGaFlXRmhZV0ZoWVdGaFlXRmhZ''@;'; + put 'put ''V0ZoWVdGaFljSkJ3Y0hCd2NIQndjSEJ3Y0hCd2NIQndjSEJ3Y0hCd2NIQndjSEJ3Y0hCd2NIQndjSEJ3Y0hCd2NIQndjSEJZY0hCd2NIQndjSEJ3Y0Zod2FIQndXSEJ3Y0hCd1dGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmh3V0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlX''@;'; + put 'put ''RmhZV0ZoWVdIQllXRmhZV0ZoWVdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUF6NDBCQUxJekFnQlRqZ0VBdXpNQ0FNSXpBZ0RMTXdJQUdRQUFBQm9BQUFBYkFBQUFIQUFBQUIwQUFBQWVBQUFBSHdBQUFDZ0FBQUFwQUFBQUlBQUFBQ29BQUFBTUFBQUFH''@;'; + put 'put ''UUFBQUNFQUFBQUdBQUFBQndBQUFBRUFBQUFCQUFBQUFBQUFBQUFBQUFBQUZRb0FBQlVBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFWRUF3VEhCNEREUjhnSVNJakd4b1JHUmtaR1JrWkdSa1pHUmNTQWc0TER4d1lHQmdZR0JnV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoUWNCQndXSEJnWUdC''@;'; + put 'put ''Z1lHQllXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXSENRY0hCd0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV''@;'; + put 'put ''R0JnWUdCZ1lHQmdZR0JnWUdCZ1lHQndjSEJ3Y0FBQUFBQUFBQUFBQUJBU3NBQUFBc0FBQUFMUUFBQUM0QUFBQXZBQUFBTFFBQUFEQUFBQUF4QUFBQU1nQUFBRVRzQUFDdzdRQUFITzhBQUlqd0FBQ0k4QUFBOVBFQUFCenZBQUFaQUFBQUdnQUFBQnNBQUFBY0FBQUFIUUFBQUI0QUFBQWZBQUFB''@;'; + put 'put ''S0FBQUFDa0FBQUFnQUFBQUtnQUFBQXdBQUFBWkFBQUFJUUFBQUFRQUFBQUZBQUFBQVFBQUFBQUFBQUFBQUFBQUFBQUFBQUFWQ2dBQUNRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCVVFEQk1jSGdNTkh5QWhJaU1iR2hFWkdSa1pHUmtaR1JrWkZ4SUNEZ3NQSEJnWUdCZ1lHQllXRmhZV0ZoWVdG''@;'; + put 'put ''aFlXRmhZV0ZoWVdGaFlXRkJ3RUhCWWNHQmdZR0JnWUZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWWNKQndjSEJ3Y0hCd2NIQndjSEJ3Y0hCd2NIQndjSEJ3Y0hCd2NIQndjSEJ3Y0hCd2NIQndjSEJ3Y0hCd2NIQlljSEJ3Y0hCd2NIQndjRmh3YUhCd1dIQndjSEJ3V0ZoWVdGaFlXRmhZV0Zo''@;'; + put 'put ''WVdGaFlXRmhZV0ZoWVdGaHdXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0hCWVdGaFlXRmhZV0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUdRQUFBQm9BQUFBYkFBQUFIQUFBQUIwQUFBQWVBQUFBSHdBQUFDZ0FBQUFwQUFB''@;'; + put 'put ''QUlBQUFBQ29BQUFBTUFBQUFHUUFBQUNFQUFBQUlBQUFBQlFBQUFBRUFBQUFCQUFBQUFBQUFBQUFBQUFBQUZRb0FBQWtBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFWRUF3VEhCNEREUjhnSVNJakd4b1JHUmtaR1JrWkdSa1pHUmNTQWc0TER4d1lHQmdZR0JnV0ZoWVdGaFlXRmhZV0ZoWVdGaFlX''@;'; + put 'put ''RmhZV0ZoUWNCQndXSEJnWUdCZ1lHQllXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXSENRY0hCd0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB''@;'; + put 'put ''QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQmtBQUFBYUFBQUFHd0FBQUJ3QUFBQWRBQUFBSGdBQUFCOEFBQUFvQUFBQUtRQUFBQ0FBQUFBcUFB''@;'; + put 'put ''QUFEQUFBQUJrQUFBQWhBQUFBQmdBQUFBY0FBQUFCQUFBQUFRQUFBQUFBQUFBQUFBQUFBQlVLQUFBSkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUZSQU1FeHdlQXcwZklDRWlJeHNhRVJrWkdSa1pHUmtaR1JrWEVnSU9DdzhjR0JnWUdCZ1lGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlVSEFR''@;'; + put 'put ''Y0Zod1lHQmdZR0JnV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0Zod2tIQndjQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG''@;'; + put 'put ''QlFVRkJRVUZCZ1lHQmdZR0JnWUdCZ1lHQmdZR0JnY0hCd2NIQUFBQUFBQUFBQUFBQVFFckFBQUFMQUFBQUMwQUFBQXVBQUFBTHdBQUFDMEFBQUF3QUFBQU1RQUFBRElBQUFBaUFBQUFJd0FBQUNRQUFBQWxBQUFBSmdBQUFDY0FBQUFvQUFBQU13QUFBRFFBQUFBcEFBQUFOUUFBQUEwQUFBQWFB''@;'; + put 'put ''QUFBS2dBQUFBa0FBQUFLQUFBQUFnQUFBQUFBQUFBQUFBQUFBQUFBQUFBVkNnQUFDUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQlVRREJNY0hnTU5IeUFoSWlNYkdoRVpHUmtaR1JrWkdSa1pGeElDRGdzUEhCZ1lHQmdZR0JZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZCd0VIQlljR0JnWUdC''@;'; + put 'put ''Z1lGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFljSkJ3Y0hCd2NIQndjSEJ3Y0hCd2NIQndjSEJ3Y0hCd2NIQndjSEJ3Y0hCd2NIQndjSEJ3Y0hCd2NIQndjSEJZY0hCd2NIQndjSEJ3Y0Zod2FIQndXSEJ3Y0hCd1dGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmh3V0ZoWVdGaFlXRmhZ''@;'; + put 'put ''V0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdIQllXRmhZV0ZoWVdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFLd0FBQUN3QUFBQXRBQUFBTGdBQUFDOEFBQUF3QUFBQU1RQUFBRFlBQUFBM0FBQUFNZ0FBQURnQUFBQU9BQUFBR3dBQUFETUFBQUFM''@;'; + put 'put ''QUFBQURBQUFBQUlBQUFBQUFRQUFBQUFBQUFBQUFBQUFGUW9BQUFrQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBVkVBd1RIQjRERFI4Z0lTSWpHeG9SR1JrWkdSa1pHUmtaR1JjU0FnNExEeHdZR0JnWUdCZ1dGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFFjQkJ3V0hCZ1lHQmdZR0JZV0ZoWVdG''@;'; + put 'put ''aFlXRmhZV0ZoWVdGaFlXRmhZV0hDUWNIQndjSEJ3Y0hCd2NIQndjSEJ3Y0hCd2NIQndjSEJ3Y0hCd2NIQndjSEJ3Y0hCd2NIQndjSEJ3Y0hCd1dIQndjSEJ3Y0hCd2NIQlljR2h3Y0Zod2NIQndjRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWWNGaFlXRmhZV0ZoWVdGaFlXRmhZV0Zo''@;'; + put 'put ''WVdGaFlXRmhZV0ZoWVdGaFlXRmh3V0ZoWVdGaFlXRmdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUYwMEFnQmpOQUlBWmpRQ0FHdzBBZ0FHTkFJQWN6UUNBSHcwQWdDRU5BSUFuUE1BQUJRQUFBQkRMbFZVUmkwNEFBQUFBQUFBQUFBQUFBQUFBTjRTQkpV''@;'; + put 'put ''QUFBQUEvLy8vLy8vLy8vLy8vLy8vQWdBQXdBTUFBTUFFQUFEQUJRQUF3QVlBQU1BSEFBREFDQUFBd0FrQUFNQUtBQURBQ3dBQXdBd0FBTUFOQUFEQURnQUF3QThBQU1BUUFBREFFUUFBd0JJQUFNQVRBQURBRkFBQXdCVUFBTUFXQUFEQUZ3QUF3QmdBQU1BWkFBREFHZ0FBd0JzQUFNQWNBQURB''@;'; + put 'put ''SFFBQXdCNEFBTUFmQUFEQUFBQUFzd0VBQU1NQ0FBRERBd0FBd3dRQUFNTUZBQUREQmdBQXd3Y0FBTU1JQUFERENRQUF3d29BQU1NTEFBREREQUFBd3cwQUFOTU9BQURERHdBQXd3QUFETHNCQUF6REFnQU13d01BRE1NRUFBelRnUFFBQUFrQUFBQUFBQUFBQUFBQUFCRUFBQUFBQUFBQUFBQUFB''@;'; + put 'put ''QUFBQUFBQUFBQUFEd0FBQUFBQUFBQVFBQUFBL1BrQ0FBQUVBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRC8vLy8vQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBOVFBQUJRQUFBQUFBQUFBQUFBQUFFUUFBQUFBQUFB''@;'; + put 'put ''QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUVRQUFBQkFBQUFBRS9nSUFBQVFBQUFBQUFBQUFBQUFBQVFBQUFBQUFBQUFBQUFBQUFBQUFDdi8vLy84QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFEMUFBQ0U5UUFBQlFBQUFBQUFBQUFBQUFB''@;'; + put 'put ''QUVRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRWdBQUFCQUFBQUFNQWdNQUFBQUFBQUFBQUFBQUFBQUFBZ0FBQUFBQUFBQUFBQUFBQUFBQS8vLy8vLzhBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB''@;'; + put 'put ''QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB''@;'; + put 'put ''QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFtT2dDQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFEQUFBQUJBQUFBQVFBQUFBR0FB''@;'; + put 'put ''QUFnL21pQUVST2JnRDhLUlVBMFZjbkFOMDA5UUJpMjhBQVBKbVZBRUdRUXdCalVmNEF1OTZyQUxkaHhRQTZiaVFBMGsxQ0FFa0c0QUFKNmk0QUhKTFJBT3NkL2dBcHNSd0E2RDZuQVBVMWdnQkV1eTRBbk9tRUFMUW1jQUJCZmw4QTFwRTVBRk9ET1FDYzlEa0FpMStFQUNqNXZRRDRIenNBM3Yr''@;'; + put 'put ''WEFBK1lCUUFSTCs4QUNscUxBRzBmYlFEUGZqWUFDY3NuQUVaUHR3Q2VaajhBTGVwZkFMb25kUURsNjhjQVBYdnhBUGM1QndDU1Vvb0ErMnZxQUIreFh3QUlYWTBBTUFOV0FIdjhSZ0R3cTJzQUlMelBBRGIwbWdEanFSMEFYbUdSQUFnYjVnQ0ZtV1VBb0JSZkFJMUFhQUNBMlA4QUozTk5BQVlH''@;'; + put 'put ''TVFES1ZoVUF5YWh6QUh2aVlBQnJqTUFBSUFBQUFBa0FBQUFLQUFBQURRQUFBQXNBQUFBTUFBQUFoUUFBQUFBZ0FBQUJJQUFBQWlBQUFBTWdBQUFFSUFBQUJTQUFBQVlnQUFBSUlBQUFDU0FBQUFvZ0FBQW9JQUFBS1NBQUFGOGdBQUFBTUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB''@;'; + put 'put ''QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQk1BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVAvLy8vLy9BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUtBQUFBWkFBQUFPZ0RBQUFRSndBQW9J''@;'; + put 'put ''WUJBRUJDRHdDQWxwZ0FBT0gxQlY5d2lRRC9DUzhQZEFBQUFQMVhBZ0J1QUFBQS8xY0NBSElBQUFBQldBSUFaZ0FBQUFOWUFnQmhBQUFBQlZnQ0FHVUFBQUFIV0FJQWR3QUFBQWxZQWdCWEFBQUFGbGdDQUhNQUFBQWtXQUlBVXdBQUFEQllBZ0JrQUFBQVBWZ0NBRVFBQUFCSldBSUFBQUFBQUFB''@;'; + put 'put ''QUFBQUFBQUFBQUFBRUFBUUFHd0FiQUNBQUlBQWpBQ0VBQ2dBQ0FCWUFDUUFoQUNFQUlRQVZBQndBQVFBVUFCUUFGQUFVQUJRQUZBQVVBQWdBQkFBRkFCc0FBZ0FYQUJzQUlBQWZBQjRBSFFBSkFCTUFBQUFWQUJJQUZRQURBQWNBRlFBVkFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBSUFBUUFCUUFG''@;'; + put 'put ''QUFZQUd3QWFBQmdBR1FBZ0FBY0FGUUFVQUJRQUZBQVVBQlFBRkFBTEFCUUFEUUFVQUF3QUZBQVVBQlFBRGdBVUFCUUFGQUFRQUJRQUR3QVVBQkVBQUFBQUFBQUFyZ0F1QUM4QU13QTFBREFBTndDcUFOc0Eyd0RiQU5zQUFBQTlBSWNBTndBM0FOc0Eyd0FBQUNnQU5RQXVBRElBTHdCaUFBQUFB''@;'; + put 'put ''QUJIQUFBQUFBRGJBRkVBQUFEYkFOc0Eyd0FBQU5zQWhBQlZBTnNBZ2dEYkFBQUFnUURiQUFBQVBnQkNBRUVBU0FCRUFGSUFXd0FBQUFBQVhnQmZBTnNBQUFEYkFOc0Eyd0FBQUFBQWV3QkpBRmNBVWdCYUFGb0FYUUFBQUY4QUFBQmZBQUFBWlFCZEFGOEFBQUJkQUc0QWFnQUFBR2tBQUFCdUFB''@;'; + put 'put ''QUEyd0NUQUpvQW9RQ29BS3NBY0FDeEFMZ0F2d0RHQU0wQTB3QUFBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFB''@;'; + put 'put ''QkFBTUFCQUFIQUFNQUJBQUZBQVVBQmdBR0FBZ0FCd0FIQUJFQUZnQVNBQkVBRWdBSUFBZ0FEd0FQQUJjQUR3QVlBQThBR1FBYUFCb0FIZ0FXQURRQUhnQUZBRElBQmdBaUFDSUFNd0FYQUJnQU5RQVpBQm9BR2dBcUFEWUFLZ0EwQURjQU1nQkZBRHNBUEFBekFEc0FQQUJHQURVQVJ3QklBRXdB''@;'; + put 'put ''TmdBaUFFa0FTZ0EzQUVVQVRnQlFBR0lBVVFCU0FGUUFSZ0JIQUZVQVNBQk1BRllBU1FCS0FGZ0FXZ0JPQUVRQVVBQlJBRklBVkFBNEFDOEFMQUJWQUNrQVZnQWJBQkFBV0FCYUFGMEFYUUJkQUYwQVhRQmRBRjBBWGdCZUFGNEFYZ0JlQUY0QVhnQmZBRjhBWHdCZkFGOEFYd0JmQUdBQUNRQmdB''@;'; + put 'put ''R0FBWUFCZ0FHQUFZUUJoQUdNQUFnQmpBR01BWXdCakFHTUFaQUFBQUdRQUFBQmtBR1FBWkFCbEFBQUFaUUJsQUdVQVpRQmxBR1lBWmdBQUFHWUFaZ0JtQUdZQVp3QUFBR2NBWndCbkFHY0FhQUFBQUdnQWFBQm9BR2dBYUFCY0FGd0FYQUJjQUZ3QVhBQmNBRndBWEFCY0FGd0FYQUJjQUZ3QVhB''@;'; + put 'put ''QmNBRndBWEFCY0FGd0FYQUJjQUZ3QVhBQmNBRndBWEFCY0FGd0FYQUJjQUZ3QVhBQmNBRndBWEFCY0FGd0FYQUJjQUZ3QVhBQmNBRndBWEFCY0FGd0FYQUJjQUFBQVhBQUJBRjBBWFFCZUFGNEFYd0JmQUZ3QVhBQmNBRndBWEFCZ0FGd0FYQUJjQUdFQVhBQmNBR0lBWWdCaUFHSUFZZ0JpQUdJ''@;'; + put 'put ''QVl3QmtBR1VBWmdCbUFGd0FYQUJuQUZ3QVhBQmNBR0FBWEFCY0FHRUFYQUJoQUZ3QWFBQmhBRndBWWdCaUFHSUFZZ0JpQUdJQVlnQmlBR01BWkFCbEFHVUFYQUJtQUZ3QVhBQmNBR2NBYUFCaEFHSUFZZ0JpQUdJQVlnQmlBR0lBWWdCaUFHSUFZZ0JpQUdJQVlnQmlBR0lBWWdCaUFHSUFZZ0Jp''@;'; + put 'put ''QUdJQVlnQUFBRndBWEFCY0FGd0FYQUJjQUZ3QVhBQmNBRndBWEFCY0FBQUFDZ0FMQUF3QURRQU9BQW9BRHdBUUFCRUFFZ0FUQUFvQUZBQVZBQlVBRlFBV0FCY0FGUUFZQUJVQUZRQVpBQlVBRlFBVkFCb0FGUUFWQUFvQUZRQVZBQlVBRmdBWEFCZ0FGUUFWQUJrQUZRQVZBQlVBR2dBVkFCVUFG''@;'; + put 'put ''UUFWQUJzQURBQU1BQ1FBSGdBZUFDQUFJUUFnQUNFQUpBQWxBQ1lBTFFBeUFDOEFMZ0FxQUNVQUpnQW9BQ2tBTXdBcUFEUUFLd0ExQURZQU53QThBRElBUndBOUFDSUFSUUFpQUQ4QVFBQkdBRE1BTkFCSUFEVUFOZ0EzQUM4QVNRQXFBRWNBU2dCRkFFd0FYQUE4QUVZQVhBQTlBRTBBU0FCT0FF''@;'; + put 'put ''OEFVZ0JKQUVFQVVBQlJBRW9BVEFCVEFGUUFNUUJWQUZZQVZ3Qk5BRTRBV0FCUEFGSUFXUUJRQUZFQVdnQmJBRk1BUkFCVUFGVUFWZ0JYQUVzQVJBQXNBRmdBTEFCWkFEZ0FMQUJhQUZzQUhRQWRBQjBBSFFBZEFCMEFIUUFmQUI4QUh3QWZBQjhBSHdBZkFDTUFJd0FqQUNNQUl3QWpBQ01BSndC''@;'; + put 'put ''Y0FDY0FKd0FuQUNjQUp3QXdBREFBT1FBY0FEa0FPUUE1QURrQU9RQTZBRndBT2dCY0FEb0FPZ0E2QURzQVhBQTdBRHNBT3dBN0FEc0FQZ0ErQUZ3QVBnQStBRDRBUGdCQ0FGd0FRZ0JDQUVJQVFnQkRBRndBUXdCREFFTUFRd0JEQUFrQVhBQmNBRndBWEFCY0FGd0FYQUJjQUZ3QVhBQmNBRndB''@;'; + put 'put ''WEFCY0FGd0FYQUJjQUZ3QVhBQmNBRndBWEFCY0FGd0FYQUJjQUZ3QVhBQmNBRndBWEFCY0FGd0FYQUJjQUZ3QVhBQmNBRndBWEFCY0FGd0FYQUJjQUZ3QVhBQmNBRndBQ0FDdS85RUFDZ0N1LzY3L0N3Q3UvNjcvcnYrdS82Ny9ydit1LzY3L0JRRFJBSzcvMFFEUkFORUEwUURSQU5FQTBRRFJB''@;'; + put 'put ''SzcvKy8rdS93NEE3UCt1LzY3L3J2K3UvOUVBMFFEUkFORUEwUUFOQUNVQURBQkNBQkFBVUFBVEFHMEFld0FVQUpnQUR3Q21BTU1BcnYrdS82Ny9ydit1LzY3L3J2K3UvNjcvcnYrdS82Ny9ydit1LzY3L3J2K3UvNjcvcnYrdS82Ny9ydit1LzY3L0Z3Q3UvM2NBcnY4SEFDNEFydjhtQUs3L0Z3''@;'; + put 'put ''QVJBQ01BcnY4TkFLNy9ydit1LzY3L09nQ3UvNjcvTlFDdS82Ny9ydjhvQUs3L0J3Q3UvenNBUlFDdS8wZ0Fydit1LzY3L3J2K3UvNjcvcnYvOC8rZ0E5di8vL3hvQUFBQW5BQUVBTWdDdS82Ny9BZ0FrQUFNQUx3Q3UvNjcvcnYrdS82Ny8vditVQUs3L0NRQWJBSzcvdlArdS82Ny9yLyt1LzY3''@;'; + put 'put ''L3J2K3UvNjcvcnYrdS93QUFBQUFBQUczbTdONEZBQXNBU1FBeEFWTUFmd0V3QVdrQWVBSC9BSUVCVXdLQ0FZTUJoQUdGQVlZQlZBS0hBWWdCaVFGV0Fvb0JWd0tMQVl3QmpnSGRBWThCV1FLUUFWc0NrUUdTQVpNQllBS1VBV01DbGdGcEFwY0JhQUtZQVprQm5BRnZBcDBCY2dLZkFYVUNwZ0dB''@;'; + put 'put ''QXFjQnFBR3BBWU1DckFHdEFhNEJpQUt2QWJBQnNRR0tBcklCaXdLM0FaSUN1QUc1QWJ3QnZRSEVBY1lCeEFIRkFjVUJ4Z0hIQWNrQnh3SElBY2dCeVFIS0Fjd0J5Z0hMQWNzQnpBSHhBZk1COFFIeUFmSUI4d0gwQWZVQjlnR1ZBZmNCdndFZ0FwNEJoZ09zQTRnRHJRT0pBNjREaWdPdkE0d0R6''@;'; + put 'put ''QU9PQTgwRGp3UE9BNWtEUlFPWkE3NGZvd1BDQS9jRCtBUDZBL3NEWUI2YkhwNGUzd0JaSDFFZld4OVRIMTBmVlI5ZkgxY2Z2Qit6SDh3Znd4L3NIK1VmL0Ivekh6b0NaU3c3QWp3Q1BRS2FBVDRDWml4QkFrSUNRd0tBQVVRQ2lRSkZBb3dDOUFPNEEva0Q4Z1A5QTNzRC9nTjhBLzhEZlFQQUJN''@;'; + put 'put ''OEVKaUhKQXlvaGF3QXJJZVVBTWlGT0lZTWhoQ0ZnTEdFc1lpeHJBbU1zZlIxa0xIMENiU3hSQW00c2NRSnZMRkFDY0N4U0FuSXNjeXgxTEhZc2Zpdy9BbjhzUUFMeUxQTXNmYWQ1SFl1bmpLZU5wMlVDcXFkbUFzY1FKeTNORUMwdGRnTjNBNXdEdFFDU0E5QURtQVBSQTZZRDFRT2dBOVlEbWdQ''@;'; + put 'put ''d0E2RUQ4UU9WQS9VRHp3UFhBd0FBQUFCQkFDQWF3QUFnSHdBQkFTOHlBUUVGT1FFQkQwb0JBUzE1QVFFRmNBTUJBNUVESUJHakF5QUpBQVJRRUJBRUlDQmdCQUVoaWdRQk5jRUVBUTNRQkFFL0ZBVUJFekVGTUNhZ0FRRUZzd0VCQTgwQkFRL2VBUUVSK0FFQkp5SUNBUkhZQXdFWEFCNEJsYUFl''@;'; + put 'put ''QVY4SUgvZ0lHQi80QmlnZitBZzRIL2dJU0IvNEJtZ2YrQWlJSC9nSW1CLzRDS2dmK0FpNEgvZ0N1aCsyQXNnZnFnVFlIL2dDMmgrY0F1Z2YrQUxxSDVBQytCK0FBdm9mZ2dKR0FnRUpFQVVCQTJBaEVCQUFMREF2Wnl3QkJZQXNBV1ByTEFFRFFLWUJMWUNtQVJjaXB3RU5NcWNCUFhtbkFRTitw''@;'; + put 'put ''d0VKa0tjQkE2Q25BUWtoL3lBYUFBQUFBSHNnZG1GeUlIQmhkR2dnUFNCUWIybHVkR1Z5WDNOMGNtbHVaMmxtZVNna01DazdJSFpoY2lCa1lYUmhJRDBnVUc5cGJuUmxjbDl6ZEhKcGJtZHBabmtvSkRFcE95QkdVeTVqY21WaGRHVlFZWFJvS0NJdklpd2dVRUZVU0M1a2FYSnVZVzFsS0hCaGRH''@;'; + put 'put ''Z3BLVHNnUmxNdWQzSnBkR1ZHYVd4bEtGQkJWRWd1YW05cGJpZ2lMeUlzSUhCaGRHZ3BMQ0JrWVhSaEtUc2dmUUJqYjNKbEFIaGtiM1IyWlhKemFXOXVBREV1TndBeExqUUFNUzR5QUY5c1pISmhkMThBWDJoa2NtRjNYd0JmZEdSeVlYZGZBRjlvYkdSeVlYZGZBRjkwYkdSeVlYZGZBSGhrYjNR''@;'; + put 'put ''Z2RtVnljMmx2YmlBaUpYTWlJSFJ2YnlCc2IyNW5BQ0FsWkNBQUpTNHdNbVlBSlhNbFpDQXRBQ01sTURKNEpUQXllQ1V3TW5nbE1ESjRBSE5sZEd4cGJtVjNhV1IwYUNnQUpTNHpaZ0JUSUFCRElBQXlJQUJGSUFCbElBQkdJQUIwSUNWMUlBQlVJQUJrYjNRNlpHOTBBR2QyT21SdmRBQmpZVzV2''@;'; + put 'put ''Ympwa2IzUUFjR3hoYVc0NlpHOTBBSEJzWVdsdUxXVjRkRHBrYjNRQWVHUnZkRHA0Wkc5MEFIaGtiM1F4TGpJNmVHUnZkQUI0Wkc5ME1TNDBPbmhrYjNRQVNTQUFJbDl6ZFdKbmNtRndhRjlqYm5RaU9pQWxaQUFpWDJkMmFXUWlPaUFsWkFBaVpXUm5aWE1pT2lCYkNnQWlYMmQyYVdRaU9pQWxa''@;'; + put 'put ''Q3dLQUNKMFlXbHNJam9nSldRc0NnQWlhR1ZoWkNJNklDVmtBQ0p2WW1wbFkzUnpJam9nV3dvQUltNXZaR1Z6SWpvZ1d3b0FJbTVoYldVaU9pQWlKWE1pQUZ3aUFGd3ZBRnhpQUZ4bUFGeHVBRnh5QUZ4MEFDSnpkV0puY21Gd2FITWlPaUJiQ2dBaUpYTWlPaUFBSWlWeklnQkRiM1ZzWkNCdWIz''@;'; + put 'put ''UWdjR0Z5YzJVZ2VHUnZkQ0FpSlhNaUNnQmJDZ0FpYjNBaU9pQWlKV01pTEFvQUluSmxZM1FpT2lCYkpTNHdNMllzSlM0d00yWXNKUzR3TTJZc0pTNHdNMlpkQ2dBaWIzQWlPaUFpVENJc0NnQWliM0FpT2lBaVZDSXNDZ0FpY0hRaU9pQmJKUzR3TTJZc0pTNHdNMlpkTEFvQUltRnNhV2R1SWpv''@;'; + put 'put ''Z0lpVmpJaXdLQUNKM2FXUjBhQ0k2SUNVdU1ETm1MQW9BSW5SbGVIUWlPaUFpSlhNaUNnQWlaM0poWkNJNklDSnViMjVsSWl3S0FDSmpiMnh2Y2lJNklDSWxjeUlLQUNKbmNtRmtJam9nSW14cGJtVmhjaUlzQ2dBaVozSmhaQ0k2SUNKeVlXUnBZV3dpTEFvQUltOXdJam9nSWtZaUxBb0FJbk5w''@;'; + put 'put ''ZW1VaU9pQWxMakF6Wml3S0FDSm1ZV05sSWpvZ0lpVnpJZ29BSW05d0lqb2dJbE1pTEFvQUluTjBlV3hsSWpvZ0lpVnpJZ29BSW05d0lqb2dJblFpTEFvQUltWnZiblJqYUdGeUlqb2dKV1FLQUNKd01DSTZJRnNsTGpBelppd2xMakF6Wml3bExqQXpabDBzQ2dBaWNERWlPaUJiSlM0d00yWXNK''@;'; + put 'put ''UzR3TTJZc0pTNHdNMlpkTEFvQUluTjBiM0J6SWpvZ1d3QjdJbVp5WVdNaU9pQWxMakF6Wml3Z0ltTnZiRzl5SWpvZ0lpVnpJbjBBWFFvQUluQXdJam9nV3lVdU1ETm1MQ1V1TURObVhTd0tBQ0p3TVNJNklGc2xMakF6Wml3bExqQXpabDBzQ2dBaWNHOXBiblJ6SWpvZ1d3QmJKUzR3TTJZc0pT''@;'; + put 'put ''NHdNMlpkQUdSeVlYZGZBR3hrY21GM1h3Qm9aSEpoZDE4QWRHUnlZWGRmQUdoc1pISmhkMThBZEd4a2NtRjNYd0FpWkdseVpXTjBaV1FpT2lBbGN5d0tBQ0p6ZEhKcFkzUWlPaUFsY3dCRWRYQnNhV05oZEdVZ1kyeDFjM1JsY2lCdVlXMWxJQ0lsY3lJS0FIaGtiM1FBYW5OdmJnQnFjMjl1TUFC''@;'; + put 'put ''a2IzUmZhbk52YmdCNFpHOTBYMnB6YjI0QWFuTnZianBxYzI5dUFHcHpiMjR3T21wemIyNEFaRzkwWDJwemIyNDZhbk52YmdCNFpHOTBYMnB6YjI0NmFuTnZiZ0J1SUQ0OUlEUUFaM1p5Wlc1a1pYSmZZMjl5WlY5bWFXY3VZd0JtYVdkZlltVjZhV1Z5QUdacFoxOXlaWE52YkhabFgyTnZiRzl5''@;'; + put 'put ''QUdacFp3Qm1hV2M2Wm1sbkFHMWhjQUJ5WldOMElDVnpJQ1ZrTENWa0lDVmtMQ1ZrQ2dCamFYSmpiR1VnSlhNZ0pXUXNKV1FzSldRS0FIQnZiSGtnSlhNQUlDVmtMQ1ZrQUdkMmNtVnVaR1Z5WDJOdmNtVmZiV0Z3TG1NQWJXRndYMjkxZEhCMWRGOXphR0Z3WlFCeVpXTjBZVzVuYkdVZ0tDVmtM''@;'; + put 'put ''Q1ZrS1NBb0pXUXNKV1FwSUNWeklDVnpDZ0E4WVhKbFlTQnphR0Z3WlQwaVkybHlZMnhsSWdBOFlYSmxZU0J6YUdGd1pUMGljbVZqZENJQVBHRnlaV0VnYzJoaGNHVTlJbkJ2YkhraUFDQm9jbVZtUFNJQUlIUnBkR3hsUFNJQUlHRnNkRDBpSWdBZ1kyOXZjbVJ6UFNJQUpXUXNKV1FzSldRQUpX''@;'; + put 'put ''UXNKV1FzSldRc0pXUUFKV1FzSldRQUxDVmtMQ1ZrQUNJK0NnQThMMjFoY0Q0S0FHSmhjMlVnY21WbVpYSmxjZ29BWkdWbVlYVnNkQ0FBUEcxaGNDQnBaRDBpQUNJZ2JtRnRaVDBpQUdsemJXRndPbTFoY0FCamJXRndPbTFoY0FCcGJXRndPbTFoY0FCamJXRndlRHB0WVhBQWFXMWhjRjl1Y0Rw''@;'; + put 'put ''dFlYQUFZMjFoY0hoZmJuQTZiV0Z3QUNNZ0pYTUtBQ1ZrSUNWa0lDVmtJQ1ZrSUNWa0lDVmtJQ1ZrSUNWa0lDVmtJQ1V1TVdZZ0pXUWdKV1FnSldRZ0pXUWdKV1FnSldRS0FDVmtJQ1ZrSUNWa0lDVmtJQ1ZrSUNWa0lDVmtJQ1ZrSUNWa0lDVXVNV1lnSldRZ0pXUWdKV1FnSldRS0FDVmtJQ1Zr''@;'; + put 'put ''SUNWa0lDVmtJQ1ZrSUNWa0lDVmtJQ1ZrSUNWa0lDVXVNMllnSldRZ0pTNDBaaUFsWkNBbFpDQWxaQ0FsWkNBbFpDQWxaQ0FsWkNBbFpBb0FKV1FnSldRZ0l5VXdNbmdsTURKNEpUQXllQW9BWjNaeVpXNWtaWEpmWTI5eVpWOXRjQzVqQUcxd1gzSmxjMjlzZG1WZlkyOXNiM0lBSldRZ0pXUWdK''@;'; + put 'put ''V1FnSldRZ0pXUWdKV1FnSlM0eFppQWxMalJtSUNWa0lDVXVNV1lnSlM0eFppQWxaQ0FsWkNBbGMxd3dNREVLQUNNZ1pXNWtJRzltSUVaSlJ5Qm1hV3hsQ2dBalJrbEhJRE11TWdvQUl5QkhaVzVsY21GMFpXUWdZbmtnSlhNZ2RtVnljMmx2YmlBbGN5QW9KWE1wQ2dBaklGUnBkR3hsT2lBbGN3''@;'; + put 'put ''b0FJeUJRWVdkbGN6b2dKV1FLQUZCdmNuUnlZV2wwQ2dCRFpXNTBaWElLQUVsdVkyaGxjd29BVEdWMGRHVnlDZ0F4TURBdU1EQUtBRk5wYm1kc1pRb0FMVElLQURFeU1EQUFJRElLQUcxd0FHMXdPbTF3QUNCZElDQWxaQ0IwY25WbElDVnpDZ0FnWFNBZ0pXUWdabUZzYzJVZ0pYTUtBQ0J6WlhS''@;'; + put 'put ''c2FXNWxkMmxrZEdnS0FDVnpJQUJ6WlhSb2MySUFKUzQxWnlBbExqVm5JQ1V1TldjZ0pYTmpiMnh2Y2dvQUpTQUFibVYzY0dGMGFDQUFJRzF2ZG1WMGJ3b0FJR3hwYm1WMGJ3b0FjM1J5YjJ0bENnQWdZM1Z5ZG1WMGJ3b0FZMnh2YzJWd1lYUm9JR1pwYkd3S0FHTnNiM05sY0dGMGFDQnpkSEp2''@;'; + put 'put ''YTJVS0FDQmxiR3hwY0hObFgzQmhkR2dnWm1sc2JBb0FJR1ZzYkdsd2MyVmZjR0YwYUNCemRISnZhMlVLQUNBdkpYTWdjMlYwWDJadmJuUUtBQ0J0YjNabGRHOGdBQ0FsY3lCaGJHbG5ibVZrZEdWNGRBb0FXeUF2VW1WamRDQmJJQUFnWFFvQUlDQXZRbTl5WkdWeUlGc2dNQ0F3SURBZ1hRb2dJ''@;'; + put 'put ''QzlCWTNScGIyNGdQRHdnTDFOMVluUjVjR1VnTDFWU1NTQXZWVkpKSUNWeklENCtDaUFnTDFOMVluUjVjR1VnTDB4cGJtc0tMMEZPVGlCd1pHWnRZWEpyQ2dCbmMyRjJaUW9BSlNVZ0pYTUtBREFnTUNBd0lHVmtaMlZqYjJ4dmNnb0FaVzVrY0dGblpRcHphRzkzY0dGblpRcG5jbVZ6ZEc5eVpR''@;'; + put 'put ''b0FKU1ZRWVdkbFZISmhhV3hsY2dvQUpTVWxKVVZ1WkZCaFoyVTZJQ1ZrQ2dBbEpTVWxVR0ZuWlRvZ0pXUWdKV1FLQUNVbEpTVlFZV2RsUW05MWJtUnBibWRDYjNnNklDVmtJQ1ZrSUNWa0lDVmtDZ0JNWVc1a2MyTmhjR1VBVUc5eWRISmhhWFFBSlNVbEpWQmhaMlZQY21sbGJuUmhkR2x2Ympv''@;'; + put 'put ''Z0pYTUtBRHc4SUM5UVlXZGxVMmw2WlNCYkpXUWdKV1JkSUQ0K0lITmxkSEJoWjJWa1pYWnBZMlVLQUNWa0lDVmtJQ1ZrSUdKbFoybHVjR0ZuWlFvQVozTmhkbVVLSldRZ0pXUWdKV1FnSldRZ1ltOTRjSEpwYlNCamJHbHdJRzVsZDNCaGRHZ0tBQ1ZuSUNWbklITmxkRjl6WTJGc1pTQWxaQ0J5''@;'; + put 'put ''YjNSaGRHVWdKV2NnSldjZ2RISmhibk5zWVhSbENnQmpZVzUyWVhNZ2MybDZaU0FvSldRc0pXUXBJR1Y0WTJWbFpITWdVRVJHSUd4cGJXbDBJQ2dsWkNrS0NTaHpkV2RuWlhOMElITmxkSFJwYm1jZ1lTQmliM1Z1WkdsdVp5QmliM2dnYzJsNlpTd2djMlZsSUdSdmRDZ3hLU2tLQUZzZ0wwTnli''@;'; + put 'put ''M0JDYjNnZ1d5VmtJQ1ZrSUNWa0lDVmtYU0F2VUVGSFJWTWdjR1JtYldGeWF3b0FKV1FnSldRZ2MyVjBiR0Y1WlhJS0FDVWxKU1ZVYVhSc1pUb2dKWE1LQUNVbFVHRm5aWE02SUNoaGRHVnVaQ2tLQUNVbFVHRm5aWE02SURFS0FDVWxRbTkxYm1ScGJtZENiM2c2SUNoaGRHVnVaQ2tLQUNVbEpT''@;'; + put 'put ''VkNiM1Z1WkdsdVowSnZlRG9nSldRZ0pXUWdKV1FnSldRS0FDVWxSVzVrUTI5dGJXVnVkSE1LYzJGMlpRb0FjMlYwZFhCTVlYUnBiakVLQUZzZ2UwTmhkR0ZzYjJkOUlEdzhJQzlWVWtrZ1BEd2dMMEpoYzJVZ0pYTWdQajRnUGo0S0wxQlZWQ0J3WkdadFlYSnJDZ0FsSlVKbFoybHVVSEp2Ykc5''@;'; + put 'put ''bkFDOUViM1JFYVdOMElESXdNQ0JrYVdOMElHUmxaZ0JFYjNSRWFXTjBJR0psWjJsdUFDOXpaWFIxY0V4aGRHbHVNU0I3QUcxaGNtc0FMMFZ1WTI5a2FXNW5WbVZqZEc5eUlESTFOaUJoY25KaGVTQmtaV1lBSUVWdVkyOWthVzVuVm1WamRHOXlJREFBU1ZOUFRHRjBhVzR4Ulc1amIyUnBibWNn''@;'; + put 'put ''TUNBeU5UVWdaMlYwYVc1MFpYSjJZV3dnY0hWMGFXNTBaWEoyWVd3QVJXNWpiMlJwYm1kV1pXTjBiM0lnTkRVZ0wyaDVjR2hsYmlCd2RYUUFKU0JUWlhRZ2RYQWdTVk5QSUV4aGRHbHVJREVnWTJoaGNtRmpkR1Z5SUdWdVkyOWthVzVuQUM5emRHRnlibVYwU1ZOUElIc0FJQ0FnSUNBZ0lDQmtk''@;'; + put 'put ''WEFnWkhWd0lHWnBibVJtYjI1MElHUjFjQ0JzWlc1bmRHZ2daR2xqZENCaVpXZHBiZ0FnSUNBZ0lDQWdJSHNnTVNCcGJtUmxlQ0F2UmtsRUlHNWxJSHNnWkdWbUlIMTdJSEJ2Y0NCd2IzQWdmU0JwWm1Wc2MyVUFJQ0FnSUNBZ0lDQjlJR1p2Y21Gc2JBQWdJQ0FnSUNBZ0lDOUZibU52WkdsdVp5''@;'; + put 'put ''QkZibU52WkdsdVoxWmxZM1J2Y2lCa1pXWUFJQ0FnSUNBZ0lDQmpkWEp5Wlc1MFpHbGpkQ0JsYm1RZ1pHVm1hVzVsWm05dWRBQjlJR1JsWmdBdlZHbHRaWE10VW05dFlXNGdjM1JoY201bGRFbFRUeUJrWldZQUwxUnBiV1Z6TFVsMFlXeHBZeUJ6ZEdGeWJtVjBTVk5QSUdSbFpnQXZWR2x0WlhN''@;'; + put 'put ''dFFtOXNaQ0J6ZEdGeWJtVjBTVk5QSUdSbFpnQXZWR2x0WlhNdFFtOXNaRWwwWVd4cFl5QnpkR0Z5Ym1WMFNWTlBJR1JsWmdBdlNHVnNkbVYwYVdOaElITjBZWEp1WlhSSlUwOGdaR1ZtQUM5SVpXeDJaWFJwWTJFdFQySnNhWEYxWlNCemRHRnlibVYwU1ZOUElHUmxaZ0F2U0dWc2RtVjBhV05o''@;'; + put 'put ''TFVKdmJHUWdjM1JoY201bGRFbFRUeUJrWldZQUwwaGxiSFpsZEdsallTMUNiMnhrVDJKc2FYRjFaU0J6ZEdGeWJtVjBTVk5QSUdSbFpnQXZRMjkxY21sbGNpQnpkR0Z5Ym1WMFNWTlBJR1JsWmdBdlEyOTFjbWxsY2kxUFlteHBjWFZsSUhOMFlYSnVaWFJKVTA4Z1pHVm1BQzlEYjNWeWFXVnlM''@;'; + put 'put ''VUp2YkdRZ2MzUmhjbTVsZEVsVFR5QmtaV1lBTDBOdmRYSnBaWEl0UW05c1pFOWliR2x4ZFdVZ2MzUmhjbTVsZEVsVFR5QmtaV1lBWTJ4bFlYSjBiMjFoY21zQWZTQmlhVzVrSUdSbFpnQWxKVUpsWjJsdVVtVnpiM1Z5WTJVNklIQnliMk56WlhRZ1ozSmhjR2gyYVhvZ01DQXdBQzlqYjI5eVpD''@;'; + put 'put ''MW1iMjUwTFdaaGJXbHNlU0F2VkdsdFpYTXRVbTl0WVc0Z1pHVm1BQzlrWldaaGRXeDBMV1p2Ym5RdFptRnRhV3g1SUM5VWFXMWxjeTFTYjIxaGJpQmtaV1lBTDJOdmIzSmtabTl1ZENCamIyOXlaQzFtYjI1MExXWmhiV2xzZVNCbWFXNWtabTl1ZENBNElITmpZV3hsWm05dWRDQmtaV1lBTDBs''@;'; + put 'put ''dWRsTmpZV3hsUm1GamRHOXlJREV1TUNCa1pXWUFMM05sZEY5elkyRnNaU0I3QUNBZ0lDQWdJQ0JrZFhBZ01TQmxlR05vSUdScGRpQXZTVzUyVTJOaGJHVkdZV04wYjNJZ1pYaGphQ0JrWldZQUlDQWdJQ0FnSUhOallXeGxBQ1VnYzNSNWJHVnpBQzl6YjJ4cFpDQjdJRnRkSURBZ2MyVjBaR0Z6''@;'; + put 'put ''YUNCOUlHSnBibVFnWkdWbUFDOWtZWE5vWldRZ2V5QmJPU0JKYm5aVFkyRnNaVVpoWTNSdmNpQnRkV3dnWkhWd0lGMGdNQ0J6WlhSa1lYTm9JSDBnWW1sdVpDQmtaV1lBTDJSdmRIUmxaQ0I3SUZzeElFbHVkbE5qWVd4bFJtRmpkRzl5SUcxMWJDQTJJRWx1ZGxOallXeGxSbUZqZEc5eUlHMTFi''@;'; + put 'put ''RjBnTUNCelpYUmtZWE5vSUgwZ1ltbHVaQ0JrWldZQUwybHVkbWx6SUhzdlptbHNiQ0I3Ym1WM2NHRjBhSDBnWkdWbUlDOXpkSEp2YTJVZ2UyNWxkM0JoZEdoOUlHUmxaaUF2YzJodmR5QjdjRzl3SUc1bGQzQmhkR2g5SUdSbFpuMGdZbWx1WkNCa1pXWUFMMkp2YkdRZ2V5QXlJSE5sZEd4cGJt''@;'; + put 'put ''VjNhV1IwYUNCOUlHSnBibVFnWkdWbUFDOW1hV3hzWldRZ2V5QjlJR0pwYm1RZ1pHVm1BQzkxYm1acGJHeGxaQ0I3SUgwZ1ltbHVaQ0JrWldZQUwzSnZkVzVrWldRZ2V5QjlJR0pwYm1RZ1pHVm1BQzlrYVdGbmIyNWhiSE1nZXlCOUlHSnBibVFnWkdWbUFDOTBZWEJsY21Wa0lIc2dmU0JpYVc1''@;'; + put 'put ''a0lHUmxaZ0FsSUdodmIydHpJR1p2Y2lCelpYUjBhVzVuSUdOdmJHOXlJQUF2Ym05a1pXTnZiRzl5SUhzZ2MyVjBhSE5pWTI5c2IzSWdmU0JpYVc1a0lHUmxaZ0F2WldSblpXTnZiRzl5SUhzZ2MyVjBhSE5pWTI5c2IzSWdmU0JpYVc1a0lHUmxaZ0F2WjNKaGNHaGpiMnh2Y2lCN0lITmxkR2h6''@;'; + put 'put ''WW1OdmJHOXlJSDBnWW1sdVpDQmtaV1lBTDI1dmNHTnZiRzl5SUh0d2IzQWdjRzl3SUhCdmNIMGdZbWx1WkNCa1pXWUFMMkpsWjJsdWNHRm5aU0I3Q1NVZ2FTQnFJRzV3WVdkbGN3QUpMMjV3WVdkbGN5QmxlR05vSUdSbFpnQUpMMm9nWlhoamFDQmtaV1lBQ1M5cElHVjRZMmdnWkdWbUFBa3Zj''@;'; + put 'put ''M1J5SURFd0lITjBjbWx1WnlCa1pXWUFDVzV3WVdkbGN5QXhJR2QwSUhzQUNRbG5jMkYyWlFBSkNRbGpiMjl5WkdadmJuUWdjMlYwWm05dWRBQUpDUWt3SURBZ2JXOTJaWFJ2QUFrSkNTaGNLQ2tnYzJodmR5QnBJSE4wY2lCamRuTWdjMmh2ZHlBb0xDa2djMmh2ZHlCcUlITjBjaUJqZG5NZ2My''@;'; + put 'put ''aHZkeUFvWENrcElITm9iM2NBQ1FsbmNtVnpkRzl5WlFBSmZTQnBaZ0F2YzJWMFgyWnZiblFnZXdBSlptbHVaR1p2Ym5RZ1pYaGphQUFKYzJOaGJHVm1iMjUwSUhObGRHWnZiblFBSlNCa2NtRjNJSFJsZUhRZ1ptbDBkR1ZrSUhSdklHbDBjeUJsZUhCbFkzUmxaQ0IzYVdSMGFBQXZZV3hwWjI1''@;'; + put 'put ''bFpIUmxlSFFnZXdrSkNTVWdkMmxrZEdnZ2RHVjRkQUFKTDNSbGVIUWdaWGhqYUNCa1pXWUFDUzkzYVdSMGFDQmxlR05vSUdSbFpnQUpaM05oZG1VQUNRbDNhV1IwYUNBd0lHZDBJSHNBQ1FrSlcxMGdNQ0J6WlhSa1lYTm9BQWtKQ1hSbGVIUWdjM1J5YVc1bmQybGtkR2dnY0c5d0lIZHBaSFJv''@;'; + put 'put ''SUdWNFkyZ2djM1ZpSUhSbGVIUWdiR1Z1WjNSb0lHUnBkaUF3SUhSbGVIUWdZWE5vYjNjQUNRbDlJR2xtQUFsbmNtVnpkRzl5WlFBdlltOTRjSEpwYlNCN0NRa0pDU1VnZUdOdmNtNWxjaUI1WTI5eWJtVnlJSGh6YVhwbElIbHphWHBsQUFrSk5DQXlJSEp2Ykd3QUNRbHRiM1psZEc4QUNRa3lJ''@;'; + put 'put ''R052Y0hrQUNRbGxlR05vSURBZ2NteHBibVYwYndBSkNUQWdaWGhqYUNCeWJHbHVaWFJ2QUFrSmNHOXdJRzVsWnlBd0lISnNhVzVsZEc4QUNRbGpiRzl6WlhCaGRHZ0FMMlZzYkdsd2MyVmZjR0YwYUNCN0FBa3ZjbmtnWlhoamFDQmtaV1lBQ1M5eWVDQmxlR05vSUdSbFpnQUpMM2tnWlhoamFD''@;'; + put 'put ''QmtaV1lBQ1M5NElHVjRZMmdnWkdWbUFBbHRZWFJ5YVhnZ1kzVnljbVZ1ZEcxaGRISnBlQUFKYm1WM2NHRjBhQUFKZUNCNUlIUnlZVzV6YkdGMFpRQUpjbmdnY25rZ2MyTmhiR1VBQ1RBZ01DQXhJREFnTXpZd0lHRnlZd0FKYzJWMGJXRjBjbWw0QUM5bGJtUndZV2RsSUhzZ2MyaHZkM0JoWjJV''@;'; + put 'put ''Z2ZTQmlhVzVrSUdSbFpnQXZjMmh2ZDNCaFoyVWdleUI5SUdSbFpnQXZiR0Y1WlhKamIyeHZjbk5sY1FBSld3a2xJR3hoZVdWeUlHTnZiRzl5SUhObGNYVmxibU5sSUMwZ1pHRnlhMlZ6ZENCMGJ5QnNhV2RvZEdWemRBQUpDVnN3SURBZ01GMEFDUWxiTGpJZ0xqZ2dMamhkQUFrSld5NDBJQzQ0''@;'; + put 'put ''SUM0NFhRQUpDVnN1TmlBdU9DQXVPRjBBQ1FsYkxqZ2dMamdnTGpoZEFBbGRBR1JsWmdBdmJHRjVaWEpzWlc0Z2JHRjVaWEpqYjJ4dmNuTmxjU0JzWlc1bmRHZ2daR1ZtQUM5elpYUnNZWGxsY2lCN0wyMWhlR3hoZVdWeUlHVjRZMmdnWkdWbUlDOWpkWEpzWVhsbGNpQmxlR05vSUdSbFpnQUpi''@;'; + put 'put ''R0Y1WlhKamIyeHZjbk5sY1NCamRYSnNZWGxsY2lBeElITjFZaUJzWVhsbGNteGxiaUJ0YjJRZ1oyVjBBQWxoYkc5aFpDQndiM0FnYzJWMGFITmlZMjlzYjNJQUNTOXViMlJsWTI5c2IzSWdlMjV2Y0dOdmJHOXlmU0JrWldZQUNTOWxaR2RsWTI5c2IzSWdlMjV2Y0dOdmJHOXlmU0JrWldZQUNT''@;'; + put 'put ''OW5jbUZ3YUdOdmJHOXlJSHR1YjNCamIyeHZjbjBnWkdWbUFDOXZibXhoZVdWeUlIc2dZM1Z5YkdGNVpYSWdibVVnZTJsdWRtbHpmU0JwWmlCOUlHUmxaZ0F2YjI1c1lYbGxjbk1nZXdBSkwyMTVkWEJ3WlhJZ1pYaGphQ0JrWldZQUNTOXRlV3h2ZDJWeUlHVjRZMmdnWkdWbUFBbGpkWEpzWVhs''@;'; + put 'put ''bGNpQnRlV3h2ZDJWeUlHeDBBQWxqZFhKc1lYbGxjaUJ0ZVhWd2NHVnlJR2QwQUFsdmNnQUplMmx1ZG1semZTQnBaZ0F2WTNWeWJHRjVaWElnTUNCa1pXWUFKU1ZGYm1SU1pYTnZkWEpqWlFBbEpVVnVaRkJ5YjJ4dlp3QWxKVUpsWjJsdVUyVjBkWEFBTVRRZ1pHVm1ZWFZzZEMxbWIyNTBMV1po''@;'; + put 'put ''Yldsc2VTQnpaWFJmWm05dWRBQWxJQzloY25KdmQyeGxibWQwYUNBeE1DQmtaV1lBSlNBdllYSnliM2QzYVdSMGFDQTFJR1JsWmdBbElHMWhhMlVnYzNWeVpTQndaR1p0WVhKcklHbHpJR2hoY20xc1pYTnpJR1p2Y2lCUVV5MXBiblJsY25CeVpYUmxjbk1nYjNSb1pYSWdkR2hoYmlCRWFYTjBh''@;'; + put 'put ''V3hzWlhJQUwzQmtabTFoY21zZ2QyaGxjbVVnZTNCdmNIMGdlM1Z6WlhKa2FXTjBJQzl3WkdadFlYSnJJQzlqYkdWaGNuUnZiV0Z5YXlCc2IyRmtJSEIxZEgwZ2FXWmxiSE5sQUNVZ2JXRnJaU0FuUER3bklHRnVaQ0FuUGo0bklITmhabVVnYjI0Z1VGTWdUR1YyWld3Z01TQmtaWFpwWTJWekFD''@;'; + put 'put ''OXNZVzVuZFdGblpXeGxkbVZzSUhkb1pYSmxJSHR3YjNBZ2JHRnVaM1ZoWjJWc1pYWmxiSDE3TVgwZ2FXWmxiSE5sQURJZ2JIUWdld0FnSUNBZ2RYTmxjbVJwWTNRZ0tEdzhLU0JqZG00Z0tGc3BJR04yYmlCc2IyRmtJSEIxZEFBZ0lDQWdkWE5sY21ScFkzUWdLRDQrS1NCamRtNGdLRnNwSUdO''@;'; + put 'put ''MmJpQnNiMkZrSUhCMWRBQjlJR2xtQUNVbFJXNWtVMlYwZFhBQUpTVlVjbUZwYkdWeUNnQWxKU1VsVUdGblpYTTZJQ1ZrQ2dCbGJtUUtjbVZ6ZEc5eVpRb0FKU1ZGVDBZS0FDVWhVRk10UVdSdlltVXRNeTR3QUNCRlVGTkdMVE11TUFvQUpTVWxKVU55WldGMGIzSTZJQ1Z6SUhabGNuTnBiMjRn''@;'; + put 'put ''SlhNZ0tDVnpLUW9BY0hNeU9uQnpBRHdoTFMwZ0FEeHdiMng1YkdsdVpRQWdjRzlwYm5SelBTSUFJaTgrQ2dBZ1ptbHNiRDBpQUhWeWJDZ2piRjhsWkNrQWRYSnNLQ055WHlWa0tRQWlJR1pwYkd3dGIzQmhZMmwwZVQwaUpXWUFJaUJ6ZEhKdmEyVTlJZ0FpSUhOMGNtOXJaUzEzYVdSMGFEMGlB''@;'; + put 'put ''Q0lnYzNSeWIydGxMV1JoYzJoaGNuSmhlVDBpSlhNQU5Td3lBREVzTlFBaUlITjBjbTlyWlMxdmNHRmphWFI1UFNJbFpnQm5kbkpsYm1SbGNsOWpiM0psWDNOMlp5NWpBSE4yWjE5d2NtbHVkRjlqYjJ4dmNnQThjR0YwYUFBZ2FXUTlJZ0JmY0NJZ0FDQmtQU0lBSldNQVBHUmxabk0rQ2p4eVlX''@;'; + put 'put ''UnBZV3hIY21Ga2FXVnVkQ0JwWkQwaWNsOGxaQ0lnWTNnOUlqVXdKU1VpSUdONVBTSTFNQ1VsSWlCeVBTSTNOU1VsSWlCbWVEMGlKV1FsSlNJZ1puazlJaVZrSlNVaVBnb0FQSE4wYjNBZ2IyWm1jMlYwUFNJd0lpQnpkSGxzWlQwaWMzUnZjQzFqYjJ4dmNqb0FPM04wYjNBdGIzQmhZMmwwZVRv''@;'; + put 'put ''QU1TNEFPeUl2UGdvQVBITjBiM0FnYjJabWMyVjBQU0l4SWlCemRIbHNaVDBpYzNSdmNDMWpiMnh2Y2pvQU95SXZQZ284TDNKaFpHbGhiRWR5WVdScFpXNTBQZ284TDJSbFpuTStDZ0E4WkdWbWN6NEtQR3hwYm1WaGNrZHlZV1JwWlc1MElHbGtQU0pzWHlWa0lpQm5jbUZrYVdWdWRGVnVhWFJ6''@;'; + put 'put ''UFNKMWMyVnlVM0JoWTJWUGJsVnpaU0lnQUhneFBTSUFJaUI1TVQwaUFDSWdlREk5SWdBaUlIa3lQU0lBSWlBK0NnQThjM1J2Y0NCdlptWnpaWFE5SWlVdU1ETm1JaUJ6ZEhsc1pUMGljM1J2Y0MxamIyeHZjam9BT3lJdlBnbzhMMnhwYm1WaGNrZHlZV1JwWlc1MFBnbzhMMlJsWm5NK0NnQThj''@;'; + put 'put ''RzlzZVdkdmJnQThaV3hzYVhCelpRQWdZM2c5SWdBaUlHTjVQU0lBSWlCeWVEMGlBQ0lnY25rOUlnQThkR1Y0ZEFBZ2RHVjRkQzFoYm1Ob2IzSTlJbk4wWVhKMElnQWdkR1Y0ZEMxaGJtTm9iM0k5SW1WdVpDSUFJSFJsZUhRdFlXNWphRzl5UFNKdGFXUmtiR1VpQUNCNFBTSUFJaUI1UFNJQUlH''@;'; + put 'put ''WnZiblF0Wm1GdGFXeDVQU0lsY3dBc0pYTUFJR1p2Ym5RdGQyVnBaMmgwUFNJbGN5SUFJR1p2Ym5RdGMzUnlaWFJqYUQwaUpYTWlBQ0JtYjI1MExYTjBlV3hsUFNJbGN5SUFJR1p2Ym5RdFptRnRhV3g1UFNJbGN5SUFJR1p2Ym5RdGQyVnBaMmgwUFNKaWIyeGtJZ0FnWm05dWRDMXpkSGxzWlQw''@;'; + put 'put ''aWFYUmhiR2xqSWdBZ2RHVjRkQzFrWldOdmNtRjBhVzl1UFNJQUpYTnZkbVZ5YkdsdVpRQWxjMnhwYm1VdGRHaHliM1ZuYUFBZ1ltRnpaV3hwYm1VdGMyaHBablE5SW5OMWNHVnlJZ0FnWW1GelpXeHBibVV0YzJocFpuUTlJbk4xWWlJQUlHWnZiblF0YzJsNlpUMGlKUzR5WmlJQUlHWnBiR3c5''@;'; + put 'put ''SWlWeklnQWdabWxzYkQwaUl5VXdNbmdsTURKNEpUQXllQ0lBYzNablgzUmxlSFJ6Y0dGdUFENEFQSFJsZUhSUVlYUm9JSGhzYVc1ck9taHlaV1k5SWlNbGMxOXdJaUJ6ZEdGeWRFOW1abk5sZEQwaU5UQWxKU0krQUR4MGMzQmhiaUI0UFNJd0lpQmtlVDBpQUNJK0FEd3ZkSE53WVc0K1BDOTBa''@;'; + put 'put ''WGgwVUdGMGFENEFQQzkwWlhoMFBnb0FQQzluUGdvQVBHY0FJR2xrUFNKaFh3QWdlR3hwYm1zNmFISmxaajBpQUNCNGJHbHVhenAwYVhSc1pUMGlBQ0IwWVhKblpYUTlJZ0E4ZEdsMGJHVStBRHd2ZEdsMGJHVStDZ0E4WnlCcFpEMGlBRjhsY3dBaUlHTnNZWE56UFNJbGN3QmpiR0Z6Y3dBZ2RI''@;'; + put 'put ''Smhibk5tYjNKdFBTSnpZMkZzWlNnQUtTQnliM1JoZEdVb0pXUXBJSFJ5WVc1emJHRjBaU2dBS1NJK0NnQThMM04yWno0S0FEd2hMUzBBSUZCaFoyVnpPaUFsWkNBdExUNEtBRHh6ZG1jZ2QybGtkR2c5SWlWa2NIUWlJR2hsYVdkb2REMGlKV1J3ZENJS0FDQjJhV1YzUW05NFBTSWxMakptSUNV''@;'; + put 'put ''dU1tWWdKUzR5WmlBbExqSm1JZ0FnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ0FnZUcxc2JuTTZlR3hwYm1zOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6RTVPVGt2ZUd4cGJtc2lBRHcvZUcxc0lIWmxjbk5wYjI0OUlqRXVNQ0lnWlc1amIyUnBibWM5''@;'; + put 'put ''SWxWVVJpMDRJaUJ6ZEdGdVpHRnNiMjVsUFNKdWJ5SS9QZ29BYzNSNWJHVnphR1ZsZEFBOFAzaHRiQzF6ZEhsc1pYTm9aV1YwSUdoeVpXWTlJZ0FpSUhSNWNHVTlJblJsZUhRdlkzTnpJajgrQ2dBOElVUlBRMVJaVUVVZ2MzWm5JRkJWUWt4SlF5QWlMUzh2VnpOREx5OUVWRVFnVTFaSElERXVN''@;'; + put 'put ''Uzh2UlU0aUNnQWdJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5MMGR5WVhCb2FXTnpMMU5XUnk4eExqRXZSRlJFTDNOMlp6RXhMbVIwWkNJK0NnQThJUzB0SUVkbGJtVnlZWFJsWkNCaWVTQUFaR0Z5YTJKc2RXVUFaR0Z5YTJONVlXNEFaR0Z5YTJkeVlYa0FaR0Z5YTJkeVpYa0FaR0Z5YTIxaFoy''@;'; + put 'put ''VnVkR0VBWkdGeWEzSmxaQUJzYVdkb2RHZHlaV1Z1QUNNZ0FDQmpjbVZoZEdVZ2JHbHVaU0FBSUMxbWFXeHNJQUFnTFdSaGMyZ2dOUUFnTFdSaGMyZ2dNZ0JuZG5KbGJtUmxjbDlqYjNKbFgzUnJMbU1BZEd0blpXNWZjSEpwYm5SZmRHRm5jd0JuY21Gd2FDQnNZV0psYkFBZ0xYUmhaM01nZXlW''@;'; + put 'put ''a0pYTWxjSDBBZEd0blpXNWZjSEpwYm5SZlkyOXNiM0lBSkdNQUlDMTNhV1IwYUNBQUlDMXpiVzl2ZEdnZ1ltVjZhV1Z5SUFBZ1kzSmxZWFJsSUhCdmJIbG5iMjRnQUNBdGIzVjBiR2x1WlNBQUlHTnlaV0YwWlNCdmRtRnNJQUFnWTNKbFlYUmxJSFJsZUhRZ0FDQXRkR1Y0ZENCN0FIMEFJQzFt''@;'; + put 'put ''YjI1MElIc0FJQ1ZrZlFBZ0xXRnVZMmh2Y2lCM0FDQXRZVzVqYUc5eUlHVUFJd0FnVkdsMGJHVTZJQUFnVUdGblpYTTZJQ1ZrQ2dBaklFZGxibVZ5WVhSbFpDQmllU0FBS1FvQWRHc0FkR3M2ZEdzQUlDQWdJQ0FnUENFdExTQUFJQzB0UGdvQVJYSnliM0lnWkhWeWFXNW5JR052Ym5abGNuTnBi''@;'; + put 'put ''MjRnZEc4Z0lsVlVSaTA0SWk0Z0lGRjFhWFJwYm1jdUNnQWdQSFk2YzJoaGNHVWdjM1I1YkdVOUluQnZjMmwwYVc5dU9tRmljMjlzZFhSbE95QUFJSGRwWkhSb09pQWxaRHNnYUdWcFoyaDBPaUFsWkNJZ1ptbHNiR1ZrUFNKbVlXeHpaU0krQUR4Mk9uQmhkR2dnZGowaUFDQnRJQUFsTGpCbUxD''@;'; + put 'put ''VXVNR1lnQUNCc0lBQWdaU0FBSWk4K0FEd3ZkanB6YUdGd1pUNEtBRHgyT25OMGNtOXJaU0JqYjJ4dmNqMGlBQ0lnZDJWcFoyaDBQU0lsTGpCbWNIUUFJaUJrWVhOb2MzUjViR1U5SW1SaGMyZ0FJaUJrWVhOb2MzUjViR1U5SW1SdmRBQWlJQzgrQUNNbE1ESjRKVEF5ZUNVd01uZ0FaM1p5Wlc1''@;'; + put 'put ''a1pYSmZZMjl5WlY5MmJXd3VZd0IyYld4ZmNISnBiblJmWTI5c2IzSUFJSGRwWkhSb09pQWxaRHNnYUdWcFoyaDBPaUFsWkNJQUlENEFQSFk2Y0dGMGFDQWdkajBpQUM4K1BDOTJPbk5vWVhCbFBnb0FiU0FBSlhNbExqQm1MQ1V1TUdZZ0FHTWdBQ0JtYVd4c1pXUTlJblJ5ZFdVaUlHWnBiR3hq''@;'; + put 'put ''YjJ4dmNqMGlBQ0lnQUNCbWFXeHNaV1E5SW1aaGJITmxJaUFBSlM0d1ppQWxMakJtSUFCc0lBQjRJR1VnSWk4K0FDQWdQSFk2YjNaaGJDQnpkSGxzWlQwaWNHOXphWFJwYjI0NllXSnpiMngxZEdVN0FDQnNaV1owT2lBbExqSm1PeUIwYjNBNklDVXVNbVk3QUNCM2FXUjBhRG9nSlM0eVpqc2dh''@;'; + put 'put ''R1ZwWjJoME9pQWxMakptSWdBOEwzWTZiM1poYkQ0S0FEeDJPbkpsWTNRZ2MzUjViR1U5SW5CdmMybDBhVzl1T21GaWMyOXNkWFJsT3lBQUlITjBjbTlyWldROUltWmhiSE5sSWlCbWFXeHNaV1E5SW1aaGJITmxJajRLQUR4Mk9uUmxlSFJpYjNnZ2FXNXpaWFE5SWpBc01Dd3dMREFpSUhOMGVX''@;'; + put 'put ''eGxQU0p3YjNOcGRHbHZianBoWW5OdmJIVjBaVHNnZGkxMFpYaDBMWGR5WVhCd2FXNW5PaWRtWVd4elpTYzdjR0ZrWkdsdVp6b25NQ2M3QUdadmJuUXRabUZ0YVd4NU9pQW5KWE1uT3dCbWIyNTBMWGRsYVdkb2REb2dKWE03QUdadmJuUXRjM1J5WlhSamFEb2dKWE03QUdadmJuUXRjM1I1YkdV''@;'; + put 'put ''NklDVnpPd0FnWm05dWRDMXphWHBsT2lBbExqSm1jSFE3QUdOdmJHOXlPaVZ6T3dCamIyeHZjam9qSlRBeWVDVXdNbmdsTURKNE93QjJiV3hmZEdWNGRITndZVzRBSWo0OFkyVnVkR1Z5UGdBOEwyTmxiblJsY2o0OEwzWTZkR1Y0ZEdKdmVENEtBRHd2ZGpweVpXTjBQZ29BUEM5aFBnb0FQR0VB''@;'; + put 'put ''SUdoeVpXWTlJaVZ6SWdBZ2RHbDBiR1U5SWlWeklnQWdkR0Z5WjJWMFBTSWxjeUlBUGdvQVBDOTJPbWR5YjNWd1Bnb0FQQzlFU1ZZK0NnQThSRWxXSUdsa1BTZGZWazFNTWw4bklITjBlV3hsUFNKd2IzTnBkR2x2YmpweVpXeGhkR2wyWlR0MmFYTnBZbWxzYVhSNU9taHBaR1JsYmlJK0NnQThJ''@;'; + put 'put ''UzB0SUdsdWMyVnlkQ0JoYm5rZ2IzUm9aWElnYUhSdGJDQmpiMjUwWlc1MElHaGxjbVVnTFMwK0NnQThSRWxXSUdsa1BTZGZibTkwVmsxTU1WOG5JSE4wZVd4bFBTSndiM05wZEdsdmJqcHlaV3hoZEdsMlpUc2lQZ29BUENFdExTQjBhR2x6SUhOb2IzVnNaQ0J2Ym14NUlHUnBjM0JzWVhrZ2Iy''@;'; + put 'put ''NGdUazlPTFVsRklHSnliM2R6WlhKeklDMHRQZ29BUEVneVBsTnZjbko1TENCMGFHbHpJR1JwWVdkeVlXMGdkMmxzYkNCdmJteDVJR1JwYzNCc1lYa2dZMjl5Y21WamRHeDVJRzl1SUVsdWRHVnlibVYwSUVWNGNHeHZjbVZ5SURVZ0tHRnVaQ0IxY0NrZ1luSnZkM05sY25NdVBDOUlNajRLQUR4''@;'; + put 'put ''RVNWWWdhV1E5SjE5dWIzUldUVXd5WHljZ2MzUjViR1U5SW5CdmMybDBhVzl1T25KbGJHRjBhWFpsT3lJK0NnQThJUzB0SUdsdWMyVnlkQ0JoYm5rZ2IzUm9aWElnVGs5T0xVbEZJR2gwYld3Z1kyOXVkR1Z1ZENCb1pYSmxJQzB0UGdvQVBDOUNUMFJaUGdvOEwwaFVUVXcrQ2dBOFNFVkJSRDRB''@;'; + put 'put ''UEUxRlZFRWdhSFIwY0MxbGNYVnBkajBpUTI5dWRHVnVkQzFVZVhCbElpQmpiMjUwWlc1MFBTSjBaWGgwTDJoMGJXdzdJR05vWVhKelpYUTlWVlJHTFRnaVBnb0FQRlJKVkV4RlBnQThMMVJKVkV4RlBnQThJUzB0SUZCaFoyVnpPaUFsWkNBdExUNEtBQ0FnSUR4VFExSkpVRlFnVEVGT1IxVkJS''@;'; + put 'put ''MFU5SjBwaGRtRnpZM0pwY0hRblBnb0FJQ0FnWm5WdVkzUnBiMjRnWW5KdmQzTmxjbU5vWldOcktDa0tBQ0FnSUhzS0FDQWdJQ0FnSUhaaGNpQjFZU0E5SUhkcGJtUnZkeTV1WVhacFoyRjBiM0l1ZFhObGNrRm5aVzUwQ2dBZ0lDQWdJQ0IyWVhJZ2JYTnBaU0E5SUhWaExtbHVaR1Y0VDJZZ0tD''@;'; + put 'put ''QW5UVk5KUlNBbklDa0tBQ0FnSUNBZ0lIWmhjaUJwWlhabGNuTTdDZ0FnSUNBZ0lDQjJZWElnYVhSbGJUc0tBQ0FnSUNBZ0lIWmhjaUJXVFV4NVpYTTlibVYzSUVGeWNtRjVLQ2RmVmsxTU1WOG5MQ2RmVmsxTU1sOG5LVHNLQUNBZ0lDQWdJSFpoY2lCV1RVeHViejF1WlhjZ1FYSnlZWGtvSjE5''@;'; + put 'put ''dWIzUldUVXd4WHljc0oxOXViM1JXVFV3eVh5Y3BPd29BSUNBZ0lDQWdhV1lnS0NCdGMybGxJRDRnTUNBcGV5QWdJQ0FnSUM4dklFbG1JRWx1ZEdWeWJtVjBJRVY0Y0d4dmNtVnlMQ0J5WlhSMWNtNGdkbVZ5YzJsdmJpQnVkVzFpWlhJS0FDQWdJQ0FnSUNBZ0lHbGxkbVZ5Y3owZ2NHRnljMlZK''@;'; + put 'put ''Ym5RZ0tIVmhMbk4xWW5OMGNtbHVaeUFvYlhOcFpTczFMQ0IxWVM1cGJtUmxlRTltSUNnbkxpY3NJRzF6YVdVZ0tTa3BDZ0FnSUNBZ0lDQjlDZ0FnSUNBZ0lDQnBaaUFvYVdWMlpYSnpQajAxS1hzS0FDQWdJQ0FnSUNCbWIzSWdLSGdnYVc0Z1ZrMU1lV1Z6S1hzS0FDQWdJQ0FnSUNBZ0lHbDBa''@;'; + put 'put ''VzBnUFNCa2IyTjFiV1Z1ZEM1blpYUkZiR1Z0Wlc1MFFubEpaQ2hXVFV4NVpYTmJlRjBwT3dvQUlDQWdJQ0FnSUNBZ2FXWWdLR2wwWlcwcElIc0tBQ0FnSUNBZ0lDQWdJQ0FnYVhSbGJTNXpkSGxzWlM1MmFYTnBZbWxzYVhSNVBTZDJhWE5wWW14bEp6c0tBQ0FnSUNBZ0lDQWdJSDBLQUNBZ0lD''@;'; + put 'put ''QWdJQ0I5Q2dBZ0lDQWdJQ0FnWm05eUlDaDRJR2x1SUZaTlRHNXZLWHNLQUNBZ0lDQWdJQ0FnSUdsMFpXMGdQU0JrYjJOMWJXVnVkQzVuWlhSRmJHVnRaVzUwUW5sSlpDaFdUVXh1YjF0NFhTazdDZ0FnSUNBZ0lDQWdJQ0FnSUdsMFpXMHVjM1I1YkdVdWRtbHphV0pwYkdsMGVUMG5hR2xrWkdW''@;'; + put 'put ''dUp6c0tBQ0FnSUNBZ2ZXVnNjMlY3Q2dBZ0lDQWdJSDBLQUNBZ0lIMEtBQ0FnSUR3dlUwTlNTVkJVUGdvQVBDOUlSVUZFUGdBOFFrOUVXU0J2Ym14dllXUTlKMkp5YjNkelpYSmphR1ZqYXlncE95YytDZ0E4UkVsV0lHbGtQU2RmVmsxTU1WOG5JSE4wZVd4bFBTSndiM05wZEdsdmJqcHlaV3ho''@;'; + put 'put ''ZEdsMlpUc2daR2x6Y0d4aGVUcHBibXhwYm1VN0lIWnBjMmxpYVd4cGRIazZhR2xrWkdWdUFDQjNhV1IwYURvZ0pXUndkRHNnYUdWcFoyaDBPaUFsWkhCMElqNEtBRHhUVkZsTVJUNEtBSFpjT2lvZ2V5QmlaV2hoZG1sdmNqb2dkWEpzS0NOa1pXWmhkV3gwSTFaTlRDazdaR2x6Y0d4aGVUcHBi''@;'; + put 'put ''bXhwYm1VdFlteHZZMnQ5Q2dBOEwxTlVXVXhGUGdvQVBIaHRiRHB1WVcxbGMzQmhZMlVnYm5NOUluVnlianB6WTJobGJXRnpMVzFwWTNKdmMyOW1kQzFqYjIwNmRtMXNJaUJ3Y21WbWFYZzlJbllpSUM4K0NnQWdQSFk2WjNKdmRYQWdjM1I1YkdVOUluQnZjMmwwYVc5dU9uSmxiR0YwYVhabE95''@;'; + put 'put ''QUFJSGRwWkhSb09pQWxaSEIwT3lCb1pXbG5hSFE2SUNWa2NIUWlBQ0JqYjI5eVpHOXlhV2RwYmowaU1Dd3dJaUJqYjI5eVpITnBlbVU5SWlWa0xDVmtJaUErQUR4SVZFMU1QZ29BQ2p3aExTMGdSMlZ1WlhKaGRHVmtJR0o1SUFBZ2RtVnljMmx2YmlBQUlDZ0FLUW90TFQ0S0FHRnhkV0VBWm5W''@;'; + put 'put ''amFITnBZUUJzYVcxbEFHOXNhWFpsQUhSbFlXd0FkbTFzQUhadGJEcDJiV3dBTHk4cUtpb2dZMjl0YldWdWREb2dKWE1LQUM4dktpb3FJSEJ2Ykhsc2FXNWxDZ0J6WTJGc1pTQWdJQ0E4SlRrdU0yWXNJQ1U1TGpObUxDQWxPUzR6Wmo0S0FISnZkR0YwWlNBZ0lEd2xPUzR6Wml3Z0pUa3VNMllz''@;'; + put 'put ''SUNVNUxqTm1QZ29BZEhKaGJuTnNZWFJsUENVNUxqTm1MQ0FsT1M0elppd2dKVGt1TTJZK0NnQnpjR2hsY21WZmMzZGxaWEFnZXdvZ0lDQWdKWE1LSUNBZ0lDVmtMQW9BYkdsdVpXRnlYM053YkdsdVpRQThKVGt1TTJZc0lDVTVMak5tTENBbE9TNHpaajRzSUNVdU0yWUtBQ1Z6SUNBZ0lDVnpB''@;'; + put 'put ''Q0FnSUNCMGIyeGxjbUZ1WTJVZ01DNHdNUW9nSUNBZ0pYTWdJQ0FnSlhNZ0lDQWdKWE1nSUNBZ0pYTjlDZ0FsY3lWekFDVnpJSFJ5WVc1emJXbDBJQ1V1TTJZQVVtVmtBRWR5WldWdUFFSnNkV1VBY21kaVBDVTVMak5tTENBbE9TNHpaaXdnSlRrdU0yWStJSFJ5WVc1emJXbDBJQ1V1TTJZQWIy''@;'; + put 'put ''OXdjeXdnYVc1MFpYSnVZV3dnWlhKeWIzSTZJSFZ1YUdGdVpHeGxaQ0JqYjJ4dmNpQjBlWEJsUFNWa0lDVnpDZ0JuZG5KbGJtUmxjbDlqYjNKbFgzQnZkaTVqQUhCdmRsOWpiMnh2Y2w5aGMxOXpkSElBY0dsbmJXVnVkQ0I3SUdOdmJHOXlJQ1Z6SUgwS0FIQnZkaUJ5Wlc1a1pYSmxjanBsYkNB''@;'; + put 'put ''dElDVnpDZ0F2THlvcUtpQmlaWHBwWlhJS0FHSmZjM0JzYVc1bEFDQWdJQ0FnSUNBZ2RHOXNaWEpoYm1ObElEQXVNREVLSUNBZ0lDVnpJQ0FnSUNWeklDQWdJQ1Z6SUNBZ0lDVnpmUW9BTHk4cUtpb2djRzlzZVdkdmJnb0FJQ0FnSUhSdmJHVnlZVzVqWlNBd0xqRUtJQ0FnSUNWeklDQWdJQ1Z6''@;'; + put 'put ''SUNBZ0lDVnpJQ0FnSUNWemZRb0FjRzlzZVdkdmJpQjdJQ1ZrTEFvQVBDVTVMak5tTENBbE9TNHpaaXdnSlRrdU0yWStBQ1Z6Q2lBZ0lDQWxjd0FLSUNBZ0lDVnpJQ0FnSUNWeklDQWdJQ1Z6SUNBZ0lDVnpmUW9BTHk4cUtpb2daV3hzYVhCelpRb0FkRzl5ZFhNZ2V5QWxMak5tTENBbExqTm1D''@;'; + put 'put ''aUFnSUNBbGN5QWdJQ0FsY3lBZ0lDQWxjeUFnSUNBbGMzMEtBSE53YUdWeVpTQjdQQ1U1TGpObUxDQWxPUzR6Wml3Z0pUa3VNMlkrTENBeExqQUtJQ0FnSUNWeklDQWdJQ1Z6SUNBZ0lDVnpJQ0FnSUNWemZRb0FMeThxS2lvZ2RHVjRkSE53WVc0NklDVnpMQ0JtYjI1MGMybDZaU0E5SUNVdU0y''@;'; + put 'put ''WXNJR1p2Ym5SdVlXMWxJRDBnSlhNS0FITmpZV3hsSUNVdU0yWUtBSFJsZUhRZ2V3b2dJQ0FnZEhSbUlDSWxjeUlzQ2lBZ0lDQWlKWE1pTENBbExqTm1MQ0FsTGpObUNpQWdJQ0FsY3lBZ0lDQWxjeUFnSUNBbGN5QWdJQ0FsY3lBZ0lDQWxjMzBLQUNBZ0lDQnViMTl6YUdGa2IzY0tBQzh2S2lv''@;'; + put 'put ''cUlHVnVaRjlsWkdkbENnQXZMeW9xS2lCaVpXZHBibDlsWkdkbENnQXZMeW9xS2lCbGJtUmZibTlrWlFvQUx5OHFLaW9nWW1WbmFXNWZibTlrWlRvZ0pYTUtBQzh2S2lvcUlHVnVaRjlqYkhWemRHVnlDZ0F2THlvcUtpQmlaV2RwYmw5amJIVnpkR1Z5Q2dBdkx5b3FLaUJsYm1SZmNHRm5aUW9B''@;'; + put 'put ''THk4cUtpb2dZbVZuYVc1ZmNHRm5aUW9BTHk4cUtpb2daVzVrWDJ4aGVXVnlDZ0F2THlvcUtpQmlaV2RwYmw5c1lYbGxjam9nSlhNc0lDVmtMeVZrQ2dBdkx5b3FLaUJsYm1SZlozSmhjR2dLQUM4dktpb3FJR0psWjJsdVgyZHlZWEJvSUNWekNnQmpZVzFsY21FZ2V5QnNiMk5oZEdsdmJpQThK''@;'; + put 'put ''UzR6WmlBc0lDVXVNMllnTENBbExqTm1QZ29nSUNBZ0lDQWdJQ0JzYjI5clgyRjBJQ0E4SlM0elppQXNJQ1V1TTJZZ0xDQWxMak5tUGdvZ0lDQWdJQ0FnSUNCeWFXZG9kQ0I0SUNvZ2FXMWhaMlZmZDJsa2RHZ2dMeUJwYldGblpWOW9aV2xuYUhRS0lDQWdJQ0FnSUNBZ1lXNW5iR1VnSlM0elpn''@;'; + put 'put ''cDlDZ0F2TDNOcmVRcHdiR0Z1WlNCN0lEd3dMQ0F4TENBd1Bpd2dNU0JvYjJ4c2IzY0tJQ0FnSUhSbGVIUjFjbVVnZXdvZ0lDQWdJQ0FnSUhCcFoyMWxiblFnZXlCaWIzcHZJSFIxY21KMWJHVnVZMlVnTUM0NU5Rb2dJQ0FnSUNBZ0lDQWdJQ0JqYjJ4dmNsOXRZWEFnZXdvZ0lDQWdJQ0FnSUNB''@;'; + put 'put ''Z0lDQWdJQ0FnV3pBdU1EQWdjbWRpSUR3d0xqQTFMQ0F3TGpJd0xDQXdMalV3UGwwS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUZzd0xqVXdJSEpuWWlBOE1DNHdOU3dnTUM0eU1Dd2dNQzQxTUQ1ZENpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCYk1DNDNOU0J5WjJJZ1BERXVNREFzSURFdU1EQXNJREV1''@;'; + put 'put ''TURBK1hRb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1d6QXVOelVnY21kaUlEd3dMakkxTENBd0xqSTFMQ0F3TGpJMVBsMEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lGc3hMakF3SUhKbllpQThNQzQxTUN3Z01DNDFNQ3dnTUM0MU1ENWRDaUFnSUNBZ0lDQWdJQ0FnSUgwS0lDQWdJQ0FnSUNBZ0lDQWdj''@;'; + put 'put ''Mk5oYkdVZ1BERXVNREFzSURFdU1EQXNJREV1TlRBK0lDb2dNaTQxTUFvZ0lDQWdJQ0FnSUNBZ0lDQjBjbUZ1YzJ4aGRHVWdQREF1TURBc0lEQXVNREFzSURBdU1EQStDaUFnSUNBZ0lDQWdmUW9nSUNBZ0lDQWdJR1pwYm1semFDQjdJR0Z0WW1sbGJuUWdNU0JrYVdabWRYTmxJREFnZlFvZ0lD''@;'; + put 'put ''QWdmUW9nSUNBZ2MyTmhiR1VnTVRBd01EQUtmUW92TDIxcGMzUUtabTluSUhzZ1ptOW5YM1I1Y0dVZ01nb2dJQ0FnWkdsemRHRnVZMlVnTlRBS0lDQWdJR052Ykc5eUlISm5ZaUE4TVM0d01Dd2dNUzR3TUN3Z01TNHdNRDRnS2lBd0xqYzFDaUFnSUNCbWIyZGZiMlptYzJWMElEQXVNVEFLSUNB''@;'; + put 'put ''Z0lHWnZaMTloYkhRZ01TNDFNQW9nSUNBZ2RIVnlZblZzWlc1alpTQXhMamMxQ24wS0x5OW5ibVFLY0d4aGJtVWdleUE4TUM0d01Dd2dNUzR3TUN3Z01DNHdNRDRzSURBS0lDQWdJSFJsZUhSMWNtVWdld29nSUNBZ0lDQWdJSEJwWjIxbGJuUjdJR052Ykc5eUlISm5ZaUE4TUM0eU5Td2dNQzQw''@;'; + put 'put ''TlN3Z01DNHdNRDRnZlFvZ0lDQWdJQ0FnSUc1dmNtMWhiQ0I3SUdKMWJYQnpJREF1TnpVZ2MyTmhiR1VnTUM0d01TQjlDaUFnSUNBZ0lDQWdabWx1YVhOb0lIc2djR2h2Ym1jZ01DNHhNQ0I5Q2lBZ0lDQjlDbjBLQUd4cFoyaDBYM052ZFhKalpTQjdJRHd4TlRBd0xETXdNREFzTFRJMU1EQStJ''@;'; + put 'put ''R052Ykc5eUlGZG9hWFJsSUgwS0FDTjJaWEp6YVc5dUlETXVOanNLQUdkc2IySmhiRjl6WlhSMGFXNW5jeUI3SUdGemMzVnRaV1JmWjJGdGJXRWdNUzR3SUgwS0FDTmtaV1poZFd4MElIc2dabWx1YVhOb0lIc2dZVzFpYVdWdWRDQXdMakVnWkdsbVpuVnpaU0F3TGprZ2ZTQjlDZ0FqYVc1amJI''@;'; + put 'put ''VmtaU0FpWTI5c2IzSnpMbWx1WXlJS0kybHVZMngxWkdVZ0luUmxlSFIxY21WekxtbHVZeUlLSTJsdVkyeDFaR1VnSW5Ob1lYQmxjeTVwYm1NaUNnQWpaR1ZqYkdGeVpTQWxjeUE5SUNWek93b0FRbXhoWTJzQVYyaHBkR1VBWW1GclpYSnpZMmh2WXdCaWNtRnpjd0JpY21sbmFIUm5iMnhrQUdK''@;'; + put 'put ''eWIyNTZaUUJpY205dWVtVXlBR05zWldGeUFHTnZiMnhqYjNCd1pYSUFZMjl3Y0dWeUFHUmhjbXRpY205M2JnQmtZWEpyY0hWeWNHeGxBR1JoY210MFlXNEFaR0Z5YTNkdmIyUUFaR3RuY21WbGJtTnZjSEJsY2dCa2RYTjBlWEp2YzJVQVptVnNaSE53WVhJQVpteGxjMmdBWjNKaGVUQTFBR2R5''@;'; + put 'put ''WldWdVkyOXdjR1Z5QUdoMWJuUmxjbk5uY21WbGJnQnNhV2RvZEY5d2RYSndiR1VBYkdsbmFIUjNiMjlrQUcxaGJtUmhjbWx1YjNKaGJtZGxBRzFsWkdsMWJXWnZjbVZ6ZEdkeVpXVnVBRzFsWkdsMWJXZHZiR1JsYm5KdlpBQnRaV1JwZFcxM2IyOWtBRzFsWkY5d2RYSndiR1VBYldsallRQnVa''@;'; + put 'put ''Vzl1WW14MVpRQnVaVzl1Y0dsdWF3QnVaWGR0YVdSdWFXZG9kR0pzZFdVQWJtVjNkR0Z1QUc5c1pHZHZiR1FBY1hWaGNuUjZBSEpwWTJoaWJIVmxBSE5qWVhKc1pYUUFjMlZ0YVZOM1pXVjBRMmh2WXdCemFXeDJaWElBYzNCcFkzbHdhVzVyQUhOMWJXMWxjbk5yZVFCMlpYSjVaR0Z5YTJKeWIz''@;'; + put 'put ''ZHVBSFpsY25sZmJHbG5hSFJmY0hWeWNHeGxBSEJ2ZGdCd2IzWTZjRzkyQUNWeklDVnpDZ0F1WENJZ0FDQWxaQ0FsWkFBZ0pYTUtBQ0FsWkFCbWFXeHNJQUJsYkd4cGNITmxJR0YwZEhKekpXUWdKWE4zYVdRZ0pTNDFaaUJvZENBbExqVm1JR0YwSUNnbExqVm1MQ1V1TldZcE93b0FMbVowSUNW''@;'; + put 'put ''ekNnQXVjSE1nSldRcVhHNG9VMFoxTHlVdU1HWjFDZ0FpSlhNaUlHRjBJQ2dsTGpWbUxDVXVOV1lwT3dvQUpUQXpid0FsY3lWeklHbHpJRzV2ZENCaElIUnliMlptSUdadmJuUUtBR1J2ZENCd2FXTWdjR3gxWjJsdU9pQUFVZ0JkQ2k1UVJRb0FMbEJUSUNVdU5XWWdKUzQxWmdvQUpYTWdkRzhn''@;'; + put 'put ''WTJoaGJtZGxJR1J5WVhkcGJtY2djMmw2WlN3Z2JYVnNkR2x3YkhrZ2RHaGxJSGRwWkhSb0lHRnVaQ0JvWldsbmFIUWdiMjRnZEdobElDNVFVeUJzYVc1bElHRmliM1psSUdGdVpDQjBhR1VnYm5WdFltVnlJRzl1SUhSb1pTQjBkMjhnYkdsdVpYTWdZbVZzYjNjZ0tISnZkVzVrWldRZ2RHOGdk''@;'; + put 'put ''R2hsSUc1bFlYSmxjM1FnYVc1MFpXZGxjaWtnWW5rZ1lTQnpZMkZzWlNCbVlXTjBiM0lLQUM1dWNpQlRSaUFsTGpCbUNuTmpZV3hsZEdocFkydHVaWE56SUQwZ0pTNHdaZ29BSlhNZ1pHOXVKM1FnWTJoaGJtZGxJR0Z1ZVhSb2FXNW5JR0psYkc5M0lIUm9hWE1nYkdsdVpTQnBiaUIwYUdseklH''@;'; + put 'put ''UnlZWGRwYm1jS0FDVnpJRzV2YmkxbVlYUmhiQ0J5ZFc0dGRHbHRaU0J3YVdNZ2RtVnljMmx2YmlCa1pYUmxjbTFwYm1GMGFXOXVMQ0IyWlhKemFXOXVJRElLQUdKdmVISmhaRDB5TGpBZ0pYTWdkMmxzYkNCaVpTQnlaWE5sZENCMGJ5QXdMakFnWW5rZ1ozQnBZeUJ2Ym14NUNnQnpZMkZzWlQw''@;'; + put 'put ''eExqQWdKWE1nY21WeGRXbHlaV1FnWm05eUlHTnZiWEJoY21semIyNXpDZ0FsY3lCaWIzaHlZV1FnYVhNZ2JtOTNJREF1TUNCcGJpQm5jR2xqTENCbGJITmxJR2wwSUhKbGJXRnBibk1nTWk0d0NnQWxjeUJrWVhOb2QybGtJR2x6SURBdU1TQnBiaUF4TUhSb0lFVmthWFJwYjI0c0lEQXVNRFVn''@;'; + put 'put ''YVc0Z1JGZENJRElnWVc1a0lHbHVJR2R3YVdNS0FDVnpJR1pwYkd4MllXd2dhWE1nTUM0eklHbHVJREV3ZEdnZ1JXUnBkR2x2YmlBb1ptbHNiQ0F3SUcxbFlXNXpJR0pzWVdOcktTd2dNQzQxSUdsdUlHZHdhV01nS0dacGJHd2dNQ0J0WldGdWN5QjNhR2wwWlNrc0lIVnVaR1ZtYVc1bFpDQnBi''@;'; + put 'put ''aUJFVjBJZ01nb0FKWE1nWm1sc2JDQm9ZWE1nYm04Z2JXVmhibWx1WnlCcGJpQkVWMElnTWl3Z1ozQnBZeUJqWVc0Z2RYTmxJR1pwYkd3Z2IzSWdabWxzYkdWa0xDQXhNSFJvSUVWa2FYUnBiMjRnZFhObGN5Qm1hV3hzSUc5dWJIa0tBQ1Z6SUVSWFFpQXlJR1J2WlhOdUozUWdkWE5sSUdacGJH''@;'; + put 'put ''d2dZVzVrSUdSdlpYTnVKM1FnWkdWbWFXNWxJR1pwYkd4MllXd0tBQ1Z6SUhKbGMyVjBJSGR2Y210eklHbHVJR2R3YVdNZ1lXNWtJREV3ZEdnZ1pXUnBkR2x2Yml3Z1luVjBJR2x6YmlkMElHUmxabWx1WldRZ2FXNGdSRmRDSURJS0FDVnpJRVJYUWlBeUlHTnZiWEJoZEdsaWFXeHBkSGtnWkdW''@;'; + put 'put ''bWFXNXBkR2x2Ym5NS0FHbG1JR0p2ZUhKaFpDQStJREV1TUNBbUppQmtZWE5vZDJsa0lEd2dNQzR3TnpVZ2RHaGxiaUJZQ2dsbWFXeHNkbUZzSUQwZ01Uc0tDV1JsWm1sdVpTQm1hV3hzSUZrZ1dUc0tDV1JsWm1sdVpTQnpiMnhwWkNCWklGazdDZ2xrWldacGJtVWdjbVZ6WlhRZ1dTQnpZMkZz''@;'; + put 'put ''WlQweExqQWdXVHNLV0FvQWNtVnpaWFFnSlhNZ2MyVjBJSFJ2SUd0dWIzZHVJSE4wWVhSbENnQWxjeUJIVGxVZ2NHbGpJSFp6TGlBeE1IUm9JRVZrYVhScGIyNGdaRndvWlNkMFpXNTBaUW9BYVdZZ1ptbHNiSFpoYkNBK0lEQXVOQ0IwYUdWdUlGZ0tDV1JsWm1sdVpTQnpaWFJtYVd4c2RtRnNJ''@;'; + put 'put ''RmtnWm1sc2JIWmhiQ0E5SURFZ0xTQlpPd29KWkdWbWFXNWxJR0p2YkdRZ1dTQjBhR2xqYTI1bGMzTWdNaUJaT3dvQUNTVnpJR2xtSUhsdmRTQjFjMlVnWjNCcFl5QmhibVFnYVhRZ1ltRnlabk1nYjI0Z1pXNWpiM1Z1ZEdWeWFXNW5JQ0p6YjJ4cFpDSXNDZ0FKSlhNSmFXNXpkR0ZzYkNCaElH''@;'; + put 'put ''MXZjbVVnY21WalpXNTBJSFpsY25OcGIyNGdiMllnWjNCcFl5QnZjaUJ6ZDJsMFkyZ2dkRzhnUkZkQ0lHOXlJREV3ZEdnZ1JXUnBkR2x2YmlCd2FXTTdDZ0FKSlhNSmMyOXljbmtzSUhSb1pTQm5jbTltWmlCbWIyeHJjeUJqYUdGdVoyVmtJR2R3YVdNN0lITmxibVFnWVc1NUlHTnZiWEJzWVds''@;'; + put 'put ''dWRDQjBieUIwYUdWdE93b0FXQ0JsYkhObElGb0tDV1JsWm1sdVpTQnpaWFJtYVd4c2RtRnNJRmtnWm1sc2JIWmhiQ0E5SUZrN0NnbGtaV1pwYm1VZ1ltOXNaQ0JaSUZrN0NnbGtaV1pwYm1VZ1ptbHNiR1ZrSUZrZ1ptbHNiQ0JaT3dwYUNnQWxjeUJoY25KdmQyaGxZV1FnYUdGeklHNXZJRzFs''@;'; + put 'put ''WVc1cGJtY2dhVzRnUkZkQ0lESXNJR0Z5Y205M2FHVmhaQ0E5SURjZ2JXRnJaWE1nWm1sc2JHVmtJR0Z5Y205M2FHVmhaSE1nYVc0Z1ozQnBZeUJoYm1RZ2FXNGdNVEIwYUNCRlpHbDBhVzl1Q2dBbGN5Qmhjbkp2ZDJobFlXUWdhWE1nZFc1a1pXWnBibVZrSUdsdUlFUlhRaUF5TENCcGJtbDBh''@;'; + put 'put ''V0ZzYkhrZ01TQnBiaUJuY0dsakxDQXlJR2x1SURFd2RHZ2dSV1JwZEdsdmJnb0FZWEp5YjNkb1pXRmtJRDBnTnlBbGN5QnViM1FnZFhObFpDQmllU0JuY21Gd2FIWnBlZ29BSlhNZ1IwNVZJSEJwWXlCemRYQndiM0owY3lCaElHSnZlSEpoWkNCMllYSnBZV0pzWlNCMGJ5QmtjbUYzSUdKdmVH''@;'; + put 'put ''VnpJSGRwZEdnZ2NtOTFibVJsWkNCamIzSnVaWEp6T3lCRVYwSWdZVzVrSURFd2RHZ2dSV1F1SUdSdklHNXZkQW9BWW05NGNtRmtJRDBnTUNBbGN5QnVieUJ5YjNWdVpHVmtJR052Y201bGNuTWdhVzRnWjNKaGNHaDJhWG9LQUNWeklFZE9WU0J3YVdNZ2MzVndjRzl5ZEhNZ1lTQnNhVzVsZEdo''@;'; + put 'put ''cFkyc2dkbUZ5YVdGaWJHVWdkRzhnYzJWMElHeHBibVVnZEdocFkydHVaWE56T3lCRVYwSWdZVzVrSURFd2RHZ2dSV1F1SUdSdklHNXZkQW9BYkdsdVpYUm9hV05ySUQwZ01Ec2diMnhrYkdsdVpYUm9hV05ySUQwZ2JHbHVaWFJvYVdOckNnQWxjeUF1VUZNZ2R5OXZJR0Z5WjNNZ1kyRjFjMlZ6''@;'; + put 'put ''SUVkT1ZTQndhV01nZEc4Z2MyTmhiR1VnWkhKaGQybHVaeUIwYnlCbWFYUWdPQzQxZURFeElIQmhjR1Z5T3lCRVYwSWdaRzlsY3lCdWIzUUtBQ1Z6SUcxaGVIQnphSFFnWVc1a0lHMWhlSEJ6ZDJsa0lHaGhkbVVnYm04Z2JXVmhibWx1WnlCcGJpQkVWMElnTWk0d0xDQnpaWFFnY0dGblpTQmli''@;'; + put 'put ''M1Z1WkdGeWFXVnpJR2x1SUdkd2FXTWdZVzVrSUdsdUlERXdkR2dnUldScGRHbHZiZ29BSlhNZ2JXRjRjSE5vZENCaGJtUWdiV0Y0Y0hOM2FXUWdZWEpsSUhCeVpXUmxabWx1WldRZ2RHOGdNVEV1TUNCaGJtUWdPQzQxSUdsdUlHZHdhV01LQUcxaGVIQnphSFFnUFNBbFpncHRZWGh3YzNkcFpD''@;'; + put 'put ''QTlJQ1ZtQ2dCRWIzUTZJRnNLQUdSbFptbHVaU0JoZEhSeWN6QWdKU1VnSlNVN0lHUmxabWx1WlNCMWJtWnBiR3hsWkNBbEpTQWxKVHNnWkdWbWFXNWxJSEp2ZFc1a1pXUWdKU1VnSlNVN0lHUmxabWx1WlNCa2FXRm5iMjVoYkhNZ0pTVWdKU1VLQUNWekpYTWdkVzV6ZFhCd2IzSjBaV1FLQUNW''@;'; + put 'put ''eklISmxjM1J2Y21VZ2NHOXBiblFnYzJsNlpTQmhibVFnWm05dWRBb3VjSE1nWEc0b0xsTUtMbVowSUZ4dUtFUkdDZ0FsY3lCRGNtVmhkRzl5T2lBbGN5QjJaWEp6YVc5dUlDVnpJQ2dsY3lrS0FDVnpJRlJwZEd4bE9pQWxjd29BSlhNZ2MyRjJaU0J3YjJsdWRDQnphWHBsSUdGdVpDQm1iMjUw''@;'; + put 'put ''Q2k1dWNpQXVVeUJjYmlndWN3b3VibklnUkVZZ1hHNG9MbVlLQUhCcFl3QndhV002Y0dsakFIQnVaenB6ZG1jQVoybG1Pbk4yWndCcWNHVm5Pbk4yWndCcWNHVTZjM1puQUdwd1p6cHpkbWNBY0c1bk9tWnBad0JuYVdZNlptbG5BR3B3WldjNlptbG5BR3B3WlRwbWFXY0FhbkJuT21acFp3Qndi''@;'; + put 'put ''bWM2ZG5KdGJBQm5hV1k2ZG5KdGJBQnFjR1ZuT25aeWJXd0FhbkJsT25aeWJXd0FhbkJuT25aeWJXd0FaWEJ6T25CekFIQnpPbkJ6QUNoc2FXSXBPbkJ6QUhCdVp6cHRZWEFBWjJsbU9tMWhjQUJxY0dWbk9tMWhjQUJxY0dVNmJXRndBR3B3WnpwdFlYQUFjSE02YldGd0FHVndjenB0WVhBQWMz''@;'; + put 'put ''Wm5PbTFoY0FCd2JtYzZaRzkwQUdkcFpqcGtiM1FBYW5CbFp6cGtiM1FBYW5CbE9tUnZkQUJxY0djNlpHOTBBSEJ6T21SdmRBQmxjSE02Wkc5MEFITjJaenBrYjNRQWNHNW5PbmhrYjNRQVoybG1PbmhrYjNRQWFuQmxaenA0Wkc5MEFHcHdaVHA0Wkc5MEFHcHdaenA0Wkc5MEFIQnpPbmhrYjNR''@;'; + put 'put ''QVpYQnpPbmhrYjNRQWMzWm5PbmhrYjNRQWMzWm5Pbk4yWndCd2JtYzZkbTFzQUdkcFpqcDJiV3dBYW5CbFp6cDJiV3dBYW5CbE9uWnRiQUJxY0djNmRtMXNBR2RwWmpwMGF3QnBiV0ZuWlNCamNtVmhkR1VnY0dodmRHOGdJbkJvYjNSdlh5VnpJaUF0Wm1sc1pTQWlKWE1pQ2dBa1l5QmpjbVZo''@;'; + put 'put ''ZEdVZ2FXMWhaMlVnSlM0eVppQWxMakptSUMxcGJXRm5aU0FpY0dodmRHOWZKWE1pQ2dBOGRqcHBiV0ZuWlNCemNtTTlJaVZ6SWlCemRIbHNaVDBpSUhCdmMybDBhVzl1T21GaWMyOXNkWFJsT3lCM2FXUjBhRG9sTGpKbU95Qm9aV2xuYUhRNkpTNHlaanNnYkdWbWREb2xMakptSURzZ2RHOXdP''@;'; + put 'put ''aVV1TW1ZaUFDQXZQZ29BWjNac2IyRmthVzFoWjJWZlkyOXlaUzVqQUdOdmNtVmZiRzloWkdsdFlXZGxYM0J6YkdsaUFGc2dBQ1ZuSUNWbklBQmRJQ0FsWkNCMGNuVmxJQ1Z6Q2dCZElDQWxaQ0JtWVd4elpTQWxjd29BWTI5eVpWOXNiMkZrYVcxaFoyVmZjSE1BWjNOaGRtVWdKV2NnSldjZ2RI''@;'; + put 'put ''Smhibk5zWVhSbElHNWxkM0JoZEdnS0FIVnpaWEpmYzJoaGNHVmZKV1FLQUdkeVpYTjBiM0psQ2dCamIzSmxYMnh2WVdScGJXRm5aVjkyY20xc0FGTm9ZWEJsSUhzS0FDQWdZWEJ3WldGeVlXNWpaU0JCY0hCbFlYSmhibU5sSUhzS0FDQWdJQ0J0WVhSbGNtbGhiQ0JOWVhSbGNtbGhiQ0I3Q2dB''@;'; + put 'put ''Z0lDQWdJQ0JoYldKcFpXNTBTVzUwWlc1emFYUjVJREF1TXpNS0FDQWdJQ0FnSUNBZ1pHbG1ablZ6WlVOdmJHOXlJREVnTVNBeENnQWdJQ0FnZlFvQUlDQWdJSFJsZUhSMWNtVWdTVzFoWjJWVVpYaDBkWEpsSUhzZ2RYSnNJQ0lsY3lJZ2ZRb0FJQ0I5Q2dCamIzSmxYMnh2WVdScGJXRm5aVjlt''@;'; + put 'put ''YVdjQUpXUWdKV1FnSldRZ0pXUWdKV1FnSldRZ0pXUWdKV1FnSldRZ0pTNHhaaUFsWkNBbFpDQWxaQ0FsWkNBbFpDQWxaQW9nSldRZ0pYTUtBQ0FsWkNBbFpDQWxaQ0FsWkNBbFpDQWxaQ0FsWkNBbFpDQWxaQ0FsWkFvQVkyOXlaVjlzYjJGa2FXMWhaMlZmYzNabkFEeHBiV0ZuWlNCNGJHbHVh''@;'; + put 'put ''enBvY21WbVBTSUFJaUIzYVdSMGFEMGlKV2R3ZUNJZ2FHVnBaMmgwUFNJbFozQjRJaUJ3Y21WelpYSjJaVUZ6Y0dWamRGSmhkR2x2UFNKNFRXbGtXVTFwWkNCdFpXVjBJaUI0UFNJbFp5SWdlVDBpSldjaUFDQjBjbUZ1YzJadmNtMDlJbkp2ZEdGMFpTZ2xaQ0FsWnlBbFp5a2lBQ0lnZDJsa2RH''@;'; + put 'put ''ZzlJaVZuY0hnaUlHaGxhV2RvZEQwaUpXZHdlQ0lnY0hKbGMyVnlkbVZCYzNCbFkzUlNZWFJwYnowaWVFMXBibGxOYVc0Z2JXVmxkQ0lnZUQwaUpXY2lJSGs5SWlWbklnQXZQZ29BWkc5MFgyeGhlVzkxZEFCd2FHRnpaUUJrYjNRZ1pHOWxjeUJ1YjNRZ2MzVndjRzl5ZENCMGFHVWdZWE53WldO''@;'; + put 'put ''MElHRjBkSEpwWW5WMFpTQm1iM0lnWkdselkyOXVibVZqZEdWa0lHZHlZWEJvY3lCdmNpQm5jbUZ3YUhNZ2QybDBhQ0JqYkhWemRHVnljd29BWTI5dGNHOTFibVFBZGlBOVBTQnVBR1J2ZEdsdWFYUXVZd0J5WlcxdmRtVmZabkp2YlY5eVlXNXJBRzl5WkdWeUFHVmtaMlVnYkdGaVpXeHpJSGRw''@;'; + put 'put ''ZEdnZ2MzQnNhVzVsY3oxamRYSjJaV1FnYm05MElITjFjSEJ2Y25SbFpDQnBiaUJrYjNRZ0xTQjFjMlVnZUd4aFltVnNjd29BUlVSZmJHRmlaV3dvWm1VcEFHUnZkSE53YkdsdVpYTXVZd0JmWkc5MFgzTndiR2x1WlhNQVpteGhkQ0JsWkdkbElHSmxkSGRsWlc0Z1lXUnFZV05sYm5RZ2JtOWta''@;'; + put 'put ''WE1nYjI1bElHOW1JSGRvYVdOb0lHaGhjeUJoSUhKbFkyOXlaQ0J6YUdGd1pTQXRJSEpsY0d4aFkyVWdjbVZqYjNKa2N5QjNhWFJvSUVoVVRVd3RiR2xyWlNCc1lXSmxiSE1LQUNBZ1JXUm5aU0FsY3lBbGN5QWxjd29BZUhoNEFERXdNREF3QUhzbGMzMEFZWFY0WndCc1lXSmxiRjltYkc5aGRB''@;'; + put 'put ''Qm1hWGhsWkFBb2JDQTlJRVZFWDJ4aFltVnNLR1psS1NrQWMyVjBSV1JuWlV4aFltVnNVRzl6QUdVZ0lUMGdUbFZNVEFCbVlYTjBaM0l1WXdCa1pXeGxkR1ZmWm1GemRGOWxaR2RsQUc0Z0lUMGdUa1JmYm1WNGRDaHVLUUJtWVhOMFgyNXZaR1VBZFNBaFBTQjJBR1poYzNSZmJtOWtaV0Z3Y0FC''@;'; + put 'put ''T1JGOXVaWGgwS0hZcElEMDlJRTVWVEV3QVptbHVaRjltWVhOMFgyNXZaR1VvWnl3Z2Jpa0FaR1ZzWlhSbFgyWmhjM1JmYm05a1pRQmtaV3hsZEdWZlpteGhkRjlsWkdkbEFHMWxjbWRsWDI5dVpYZGhlU0JuYkdsMFkyZ0tBRzFsY21kbFgyOXVaWGRoZVFCellXWmxYMlJsYkdWMFpWOW1ZWE4w''@;'; + put 'put ''WDJWa1oyVUFiR2NBWTI5dGNBQmpiblFnUFQwZ2Mzb0FiV2x1WTNKdmMzTXVZd0JtYVhoTVlXSmxiRTl5WkdWeUFISmxiV2x1WTNKdmMzTUFiV2x1WTNKdmMzTWdKWE02SUNWa0lHTnliM056YVc1bmN5d2dKUzR5WmlCelpXTnpMZ29BZGdCdVpXbG5hR0p2Y2dBb2NuWWdQVDBnTUNrZ2ZId2dL''@;'; + put 'put ''RTVFWDI5eVpHVnlLSEoyS1MxT1JGOXZjbVJsY2loMktTa3FaR2x5SUQ0Z01BQmpiMjV6ZEhKaGFXNXBibWRmWm14aGRGOWxaR2RsS0djc2RpeGxLU0E5UFNCR1FVeFRSUUJtYkdGMFgzSmxiM0prWlhJQVRrUmZjbUZ1YXloMktTQTlQU0J5QUhCdmMzUnZjbVJsY2dCbWJHRjBhVzVrWlhnb1lX''@;'; + put 'put ''ZG9aV0ZrS0dVcEtTQThJRTB0UG01eWIzZHpBR1pzWVhSZmMyVmhjbU5vQUdac1lYUnBibVJsZUNoaFozUmhhV3dvWlNrcElEd2dUUzArYm1OdmJITUFiM1YwQUc5eVpHVnlhVzVuSUNjbGN5Y2dibTkwSUhKbFkyOW5ibWw2WldRdUNnQnZjbVJsY21sdVp5QW5KWE1uSUc1dmRDQnlaV052WjI1''@;'; + put 'put ''cGVtVmtJR1p2Y2lCdWIyUmxJQ2NsY3ljdUNnQnRaWEpuWlRJNklHZHlZWEJvSUNWekxDQnlZVzVySUNWa0lHaGhjeUJ2Ym14NUlDVmtJRHdnSldRZ2JtOWtaWE1LQUcxcGJtTnliM056T2lCd1lYTnpJQ1ZrSUdsMFpYSWdKV1FnZEhKNWFXNW5JQ1ZrSUdOMWNsOWpjbTl6Y3lBbFpDQmlaWE4w''@;'; + put 'put ''WDJOeWIzTnpJQ1ZrQ2dCT1JGOXZjbVJsY2loMktTQThJRTVFWDI5eVpHVnlLSGNwQUdKaGJHRnVZMlVBZEhKaGJuTndiM05sWDNOMFpYQUFjM1Z5Y0hKcGMyVUtBR2x1YzNSaGJHeGZhVzVmY21GdWF5d2diR2x1WlNBbFpEb2dKWE1nSlhNZ2NtRnVheUFsWkNCcElEMGdKV1FnWVc0Z1BTQXdD''@;'; + put 'put ''Z0JIUkY5eVlXNXJLR2NwVzNKZExtNGdQRDBnUjBSZmNtRnVheWhuS1Z0eVhTNWhiZ0JwYm5OMFlXeHNYMmx1WDNKaGJtc0FhVzV6ZEdGc2JGOXBibDl5WVc1ckxDQnNhVzVsSUNWa09pQk9SRjl2Y21SbGNpZ2xjeWtnV3lWa1hTQStJRWRFWDNKaGJtc29VbTl2ZENsYkpXUmRMbUZ1SUZzbFpG''@;'; + put 'put ''MEtBR2x1YzNSaGJHeGZhVzVmY21GdWF5d2diR2x1WlNBbFpEb2djbUZ1YXlBbFpDQnViM1FnYVc0Z2NtRnVheUJ5WVc1blpTQmJKV1FzSldSZENnQnBibk4wWVd4c1gybHVYM0poYm1zc0lHeHBibVVnSldRNklFZEVYM0poYm1zb1p5bGJKV1JkTG5ZZ0t5Qk9SRjl2Y21SbGNpZ2xjeWtnV3lW''@;'; + put 'put ''a1hTQStJRWRFWDNKaGJtc29aeWxiSldSZExtRjJJQ3NnUjBSZmNtRnVheWhTYjI5MEtWc2xaRjB1WVc0Z1d5VmtYUW9BWDI1bGQxOXlZVzVyQUcxamJHbHRhWFFBY21GdWF5aG5MQ0F5TENCdWMybDBaWEl5S0djcEtTQTlQU0F3QUhCdmMybDBhVzl1TG1NQVpHOTBYM0J2YzJsMGFXOXVBRUZT''@;'; + put 'put ''UFNVd0xqUnNaZ2tnUVhKbFlUMGdKVEF1Tkd4bUNRQkVkVzF0ZVQwbFpBb0FSMjlwYm1jZ2RHOGdZWEJ3YkhrZ1lXNXZkR2hsY2lCbGVIQmhibk5wYjI0dUNnQnVaWGgwSTJsMFpYSTlKV1FLQUdod0FHTnZibTVsWTNSSGNtRndhQUJGWkdkbElHeGxibWQwYUNBbFppQnNZWEpuWlhJZ2RHaGhi''@;'; + put 'put ''aUJ0WVhocGJYVnRJQ1YxSUdGc2JHOTNaV1F1Q2tOb1pXTnJJR1p2Y2lCdmRtVnlkMmxrWlNCdWIyUmxLSE1wTGdvQWJuTnNhVzFwZEFCamIyNTBZV2x1WDI1dlpHVnpJR05zZFhOMElDVnpJSEpoYm1zZ0pXUWdiV2x6YzJsdVp5QnViMlJsQ2dCdWMyeHBiV2wwTVFCdVpYZHlZVzVyQUUxaGVI''@;'; + put 'put ''SmhibXNnUFNBbFpDd2diV2x1Y21GdWF5QTlJQ1ZrQ2dCc1pXRmtaWElnSVQwZ1RsVk1UQUJ5WVc1ckxtTUFZMngxYzNSbGNsOXNaV0ZrWlhJQUtFNUVYMVZHWDNOcGVtVW9iaWtnUEQwZ01Ta2dmSHdnS0c0Z1BUMGdiR1ZoWkdWeUtRQmhaMmhsWVdRb1pTa2dQVDBnVlVaZlptbHVaQ2hoWjJo''@;'; + put 'put ''bFlXUW9aU2twQUcxcGJtMWhlRjlsWkdkbGN3QmhaM1JoYVd3b1pTa2dQVDBnVlVaZlptbHVaQ2hoWjNSaGFXd29aU2twQUhKaGJtc0FjMkZ0WlFCdGFXNEFjMjkxY21ObEFHMWhlQUJ6YVc1ckFHeGxkbVZzSUdGemMybG5ibTFsYm5RZ1kyOXVjM1J5WVdsdWRITUFiR1YyWld3Z1ozSmhjR2dn''@;'; + put 'put ''Y21WakFIOXliMjkwQUg5MGIzQUFmMkp2ZEFCamIyMXdZV04wQUY5M1pXRnJYeVZrQUhKaGJtdHBibWM2SUdaaGFXeDFjbVVnZEc4Z1kzSmxZWFJsSUhOMGNtOXVaeUJqYjI1emRISmhhVzUwSUdWa1oyVWdZbVYwZDJWbGJpQnViMlJsY3lBbGN5QmhibVFnSlhNS0FDVnpJR2hoY3lCMWJuSmxZ''@;'; + put 'put ''MjluYm1sNlpXUWdjbUZ1YXowbGN3QnNaWFpsYkNCbFpHZGxJSEpsWXdCc1pYWmxiQ0J1YjJSbElISmxZd0J6WVcxbGFHVmhaQUJ6WVcxbGRHRnBiQUIwYjI4Z2JXRnVlU0FvUGlBbFpDa2djMkZ0Wlh0b1pXRmtMSFJoYVd4OUlHZHliM1Z3Y3lCbWIzSWdibTlrWlNBbGN3b0FZMjl0WW1sQlVp''@;'; + put 'put ''QTlJQ1ZzWmdvQUpXeG1MQ1ZrQUhSb1pTQmhjM0JsWTNRZ1lYUjBjbWxpZFhSbElHaGhjeUJpWldWdUlHUnBjMkZpYkdWa0lHUjFaU0IwYnlCcGJYQnNaVzFsYm5SaGRHbHZiaUJtYkdGM2N5QXRJR0YwZEhKcFluVjBaU0JwWjI1dmNtVmtMZ29BUlVSZmRHOWZkbWx5ZENobEtTQTlQU0JPVlV4''@;'; + put 'put ''TUFHTnNZWE56TWk1akFHMWxjbWRsWDJOb1lXbHVBRVZFWDNSdlgzWnBjblFvYjNKcFp5a2dQVDBnVGxWTVRBQnRZV3RsWDJOb1lXbHVBRVZFWDNSdlgzWnBjblFvYjNKcFp5a2dJVDBnVGxWTVRBQk9SRjl5WVc1cktHWnliMjBwSUR3Z1RrUmZjbUZ1YXloMGJ5a0FZMngxYzNSbGNpNWpBRzFo''@;'; + put 'put ''Y0Y5d1lYUm9BQ1Z6SUhkaGN5QmhiSEpsWVdSNUlHbHVJR0VnY21GdWEzTmxkQ3dnWkdWc1pYUmxaQ0JtY205dElHTnNkWE4wWlhJZ0pYTUtBR3hvWldGa0FHeDBZV2xzQUNWeklDMCtJQ1Z6T2lCemNHeHBibVVnYzJsNlpTQStJREVnYm05MElITjFjSEJ2Y25SbFpBb0FKWE1nTFQ0Z0pYTTZJ''@;'; + put 'put ''R2hsWVdRZ2JtOTBJR2x1YzJsa1pTQm9aV0ZrSUdOc2RYTjBaWElnSlhNS0FDVnpJQzArSUNWek9pQjBZV2xzSUdseklHbHVjMmxrWlNCb1pXRmtJR05zZFhOMFpYSWdKWE1LQUdKbGVpMCtjMlpzWVdjQVkyOXRjRzkxYm1RdVl3QnRZV3RsUTI5dGNHOTFibVJGWkdkbEFHSmxlaTArWldac1lX''@;'; + put 'put ''Y0FKWE1nTFQ0Z0pYTTZJSFJoYVd3Z2JtOTBJR2x1YzJsa1pTQjBZV2xzSUdOc2RYTjBaWElnSlhNS0FDVnpJQzArSUNWek9pQm9aV0ZrSUdseklHbHVjMmxrWlNCMFlXbHNJR05zZFhOMFpYSWdKWE1LQUhObFoyMWxiblFnV3lWekxDVnpYU0JrYjJWeklHNXZkQ0JwYm5SbGNuTmxZM1FnWW05''@;'; + put 'put ''NElHeHNQU1Z6TEhWeVBTVnpDZ0JpYjNoSmJuUmxjbk5sWTNSbUFDZ2xMalZuTENVdU5XY3BBR05zZFhOMFpYSWdibUZ0WldRZ0pYTWdibTkwSUdadmRXNWtDZ0JqYjI1alpXNTBjbUYwWlQxMGNuVmxJRzFoZVNCdWIzUWdkMjl5YXlCamIzSnlaV04wYkhrdUNnQnlaV0oxYVd4MFpGOTJiR2x6''@;'; + put 'put ''ZEhNNklISmhibXNnYkdWaFpDQWxjeUJ1YjNRZ2FXNGdiM0prWlhJZ0pXUWdiMllnY21GdWF5QWxaQW9BWkdWblpXNWxjbUYwWlNCamIyNWpaVzUwY21GMFpXUWdjbUZ1YXlBbGN5d2xaQW9BVGtSZmFXNG9jbWxuYUhRcExuTnBlbVVnS3lCT1JGOXZkWFFvY21sbmFIUXBMbk5wZW1VZ1BUMGdN''@;'; + put 'put ''QUJqYjI1akxtTUFiV1Z5WjJWMmFYSjBkV0ZzQUdSdmREb2dUM1YwSUc5bUlHMWxiVzl5ZVFvQVRrUmZiM1YwS0hZcExuTnBlbVVnUFQwZ01nQm1iR0YwTG1NQWMyVjBZbTkxYm1SekFFZEVYMjFwYm5KaGJtc29aeWtnUFQwZ01BQmhZbTl0YVc1aGRHbHZiZ0J1WldGMGIxOXNZWGx2ZFhRQWJt''@;'; + put 'put ''VmhkRzhBWm1Sd0FITm1aSEFBZEhkdmNHa0FZMmx5WTI4QWNHRjBZMmgzYjNKckFHOXpZV2RsQUc1dmNBQnViM0F4QUc1dmNESUFKV3htTENWc1ppd2xiR1lsWXdCdWIyUmxJQ1Z6TENCd2IzTnBkR2x2YmlBbGN5d2daWGh3WldOMFpXUWdkSGR2SUdSdmRXSnNaWE1LQUc1dmRISmhibk5zWVhS''@;'; + put 'put ''bEFHNXZaR1VnSlhNZ2FXNGdaM0poY0dnZ0pYTWdhR0Z6SUc1dklIQnZjMmwwYVc5dUNnQnpMQ1ZzWml3bGJHWWxiZ0FnWlN3bGJHWXNKV3htSlc0QWNHOXpJR0YwZEhKcFluVjBaU0JtYjNJZ1pXUm5aU0FvSlhNc0pYTXBJR1J2WlhOdUozUWdhR0YyWlNBemJpc3hJSEJ2YVc1MGN3b0FKV3ht''@;'; + put 'put ''TENWc1ppVnVBSE41Ym5SaGVDQmxjbkp2Y2lCcGJpQndiM01nWVhSMGNtbGlkWFJsSUdadmNpQmxaR2RsSUNnbGN5d2xjeWtLQUNWc1ppd2xiR1lzSld4bUxDVnNaZ0J6ZEdGeWRBQnpaV3htQUhKaGJtUnZiUUJ1YjJSbElIQnZjMmwwYVc5dWN5QmhjbVVnYVdkdWIzSmxaQ0IxYm14bGMzTWdj''@;'; + put 'put ''M1JoY25ROWNtRnVaRzl0Q2dCaGN5QnlaWEYxYVhKbFpDQmllU0IwYUdVZ0xXNGdabXhoWndvQVgyNWxZWFJ2WDJOakFHZHlZWEJvSUNWeklHbHpJR1JwYzJOdmJtNWxZM1JsWkM0Z1NHVnVZMlVzSUhSb1pTQmphWEpqZFdsMElHMXZaR1ZzQ2dCQmJIUmxjbTVoZEdsMlpXeDVMQ0JqYjI1emFX''@;'; + put 'put ''UmxjaUJ5ZFc1dWFXNW5JRzVsWVhSdklIVnphVzVuSUMxSGNHRmphejEwY25WbElHOXlJR1JsWTI5dGNHOXphVzVuQ2dCMGFHVWdaM0poY0dnZ2FXNTBieUJqYjI1dVpXTjBaV1FnWTI5dGNHOXVaVzUwY3k0S0FGTnZiSFpwYm1jZ2JXOWtaV3dnSldRZ2FYUmxjbUYwYVc5dWN5QWxaQ0IwYjJ3''@;'; + put 'put ''Z0pXWUtBRTVFWDJsa0tHNXdLU0E5UFNCcEFHNWxZWFJ2YVc1cGRDNWpBRzFoYTJWSGNtRndhRVJoZEdFQVppQThJR2R5WVhCb1cycGRMbTVsWkdkbGN3Qmtabk5EZVdOc1pRQnRiMlJsYkNBbFpDQnpiV0Z5ZEY5cGJtbDBJQ1ZrSUhOMGNtVnpjM2QwSUNWa0lHbDBaWEpoZEdsdmJuTWdKV1Fn''@;'; + put 'put ''ZEc5c0lDVm1DZ0JqYjI1MlpYSjBJR2R5WVhCb09pQUFiV0ZxYjNKcGVtRjBhVzl1Q2dBbFpDQnViMlJsY3lBbExqSm1JSE5sWXdvQWJHVjJaV3h6WjJGd0FHeGhlVzkxZENCaFltOXlkR1ZrQ2dCemRISmxjM04zZEFBbGN5QmhkSFJ5YVdKMWRHVWdkbUZzZFdVZ2JYVnpkQ0JpWlNBeElHOXlJ''@;'; + put 'put ''RElnTFNCcFoyNXZjbWx1WndvQWJXOWtaV3dBWTJseVkzVnBkQUJ6ZFdKelpYUUFjMmh2Y25Sd1lYUm9BRzFrY3dCbFpHZGxjeUJwYmlCbmNtRndhQ0FsY3lCb1lYWmxJRzV2SUd4bGJpQmhkSFJ5YVdKMWRHVXVJRWhsYm1ObExDQjBhR1VnYldSeklHMXZaR1ZzQ2dCcGN5QnBibUZ3Y0hKdmNI''@;'; + put 'put ''SnBZWFJsTGlCU1pYWmxjblJwYm1jZ2RHOGdkR2hsSUhOb2IzSjBaWE4wSUhCaGRHZ2diVzlrWld3dUNnQlZibXR1YjNkdUlIWmhiSFZsSUNWeklHWnZjaUJoZEhSeWFXSjFkR1VnSW0xdlpHVnNJaUJwYmlCbmNtRndhQ0FsY3lBdElHbG5ibTl5WldRS0FHMXZaR1VBUzBzQWJXRnFiM0lBYUds''@;'; + put 'put ''bGNnQkpiR3hsWjJGc0lIWmhiSFZsSUNWeklHWnZjaUJoZEhSeWFXSjFkR1VnSW0xdlpHVWlJR2x1SUdkeVlYQm9JQ1Z6SUMwZ2FXZHViM0psWkFvQWJXRnJaVk53YkdsdVpUb2dabUZwYkdWa0lIUnZJRzFoYTJVZ2MzQnNhVzVsSUdWa1oyVWdLQ1Z6TENWektRb0FjM0JzYVc1bElDVnpJQ1Z6''@;'; + put 'put ''Q2dCaUlEMDlJRzRBYm1WaGRHOXpjR3hwYm1WekxtTUFiV0ZyWlY5aVlYSnlhV1Z5Y3dCMGFHVWdZbTkxYm1ScGJtY2dZbTk0WlhNZ2IyWWdjMjl0WlNCdWIyUmxjeUIwYjNWamFDQXRJR1poYkd4cGJtY2dZbUZqYXlCMGJ5QnpkSEpoYVdkb2RDQnNhVzVsSUdWa1oyVnpDZ0J6YjIxbElHNXZa''@;'; + put 'put ''R1Z6SUhkcGRHZ2diV0Z5WjJsdUlDZ2xMakF5Wml3bExqQXlaaWtnZEc5MVkyZ2dMU0JtWVd4c2FXNW5JR0poWTJzZ2RHOGdjM1J5WVdsbmFIUWdiR2x1WlNCbFpHZGxjd29BY0c5c2VXeHBibVZ6QUd4cGJtVWdjMlZuYldWdWRITUFiM0owYUc5bmIyNWhiQ0JzYVc1bGN3QkRjbVZoZEdsdVp5''@;'; + put 'put ''QmxaR2RsY3lCMWMybHVaeUFsY3dvQWNHOXNlV3hwYm1VZ0pYTWdKWE1LQUcxa2MwMXZaR1ZzT2lCa1pXeDBZU0E5SUNWbUNnQlRaWFIwYVc1bklIVndJSE4wY21WemN5Qm1kVzVqZEdsdmJnQlRiMngyYVc1bklHMXZaR1ZzT2lBQUNtWnBibUZzSUdVZ1BTQWxaaUFsWkNCcGRHVnlZWFJwYjI1''@;'; + put 'put ''eklDVXVNbVlnYzJWakNnQkVZVzF3YVc1bkFHUmxabUYxYkhSa2FYTjBBQ0JwYmlBbGN5QXRJSE5sZEhScGJtY2dkRzhnSlM0d01tWUtBR0poWkNCbFpHZGxJR3hsYmlBaUpYTWlBRk5sZEhScGJtY2dhVzVwZEdsaGJDQndiM05wZEdsdmJuTUtBSE4wWVhKMFBTVnpJRzV2ZENCemRYQndiM0ow''@;'; + put 'put ''WldRZ2QybDBhQ0J0YjJSbFBYTmxiR1lnTFNCcFoyNXZjbVZrQ2dCVFpYUjBhVzVuSUhWd0lITndjbWx1WnlCdGIyUmxiRG9nQUNVdU1tWWdjMlZqQ2dBS1ptbHVZV3dnWlNBOUlDVm1BQ0VBSUNWa0pYTWdhWFJsY21GMGFXOXVjeUFsTGpKbUlITmxZd29BVFdGNExpQnBkR1Z5WVhScGIyNXpJ''@;'; + put 'put ''Q2dsWkNrZ2NtVmhZMmhsWkNCdmJpQm5jbUZ3YUNBbGN3b0FKWE1nSlM0elpnb0FKUzR6WmlBQVRrUmZhR1ZoY0dsdVpHVjRLSFlwSUR3Z01BQnpkSFZtWmk1akFHNWxZWFJ2WDJWdWNYVmxkV1VBUTJGc1kzVnNZWFJwYm1jZ2MyaHZjblJsYzNRZ2NHRjBhSE02SUFCemNHVmphV1pwWldRZ2Nt''@;'; + put 'put ''OXZkQ0J1YjJSbElDSWxjeUlnZDJGeklHNXZkQ0JtYjNWdVpDNEFWWE5wYm1jZ1pHVm1ZWFZzZENCallXeGpkV3hoZEdsdmJpQm1iM0lnY205dmRDQnViMlJsQ2dCeVpYQnZjMmwwYVc5dUlDVnpDZ0FsY3lBNklDVm1JQ1ZtQ2dBbGN5QTZJQ1ZtSUNWbUlDVm1JQ1ZtQ2dBZ0lBQkhjbUZ3YUNB''@;'; + put 'put ''bGN5Qm9ZWE1nWVhKeVlYa2djR0ZqYTJsdVp5QjNhWFJvSUhWelpYSWdkbUZzZFdWeklHSjFkQ0J1YnlBaWMyOXlkSFlpSUdGMGRISnBZblYwWlhNZ1lYSmxJR1JsWm1sdVpXUXVBSEJwYmdCWFlYSnVhVzVuT2lCdWIyUmxJQ1Z6TENCd2IzTnBkR2x2YmlBbGN5d2daWGh3WldOMFpXUWdkSGR2''@;'; + put 'put ''SUdac2IyRjBjd29BWTI5dmNtUnpBR3hoZVc5MWRDQWxjd29BWlc1a0lDVnpDZ0JwWkhnZ1BUMGdjM29BYkdGNWIzVjBMbU1BWlhod1lXNWtRMngxYzNSbGNnQnBJRDA5SUdSbFp3Qm5aWFJGWkdkbFRHbHpkQUJmWkdkZkpXUUFaR1Z5YVhabElHZHlZWEJvSUNWeklHOW1JQ1Z6Q2dCdWIyUmxJ''@;'; + put 'put ''Q0lsY3lJZ2FYTWdZMjl1ZEdGcGJtVmtJR2x1SUhSM2J5QnViMjR0WTI5dGNHRnlZV0pzWlNCamJIVnpkR1Z5Y3lBaUpYTWlJR0Z1WkNBaUpYTWlDZ0JmY0c5eWRGOGxjMThsYzE4bGMxOGxiR1FBWDNCdmNuUmZKWE5mS0NWa0tWOG9KV1FwWHlWc1pBQWxiR1lzSld4bUxDVnNaaXdsYkdZbFl3''@;'; + put 'put ''Qm5jbUZ3YUNBbGN5d2dZMjl2Y21RZ0pYTXNJR1Y0Y0dWamRHVmtJR1p2ZFhJZ1pHOTFZbXhsY3dvQWMzQnNhVzVsY3lCaGJtUWdZMngxYzNSbGNpQmxaR2RsY3lCdWIzUWdjM1Z3Y0c5eWRHVmtJQzBnZFhOcGJtY2diR2x1WlNCelpXZHRaVzUwY3dvQWJXRjRhWFJsY2dCVU1BQm1aSEFnWkc5''@;'; + put 'put ''bGN5QnViM1FnYzNWd2NHOXlkQ0J6ZEdGeWREMXpaV3htSUMwZ2FXZHViM0pwYm1jS0FIaE1ZWGx2ZFhRZ0FEazZjSEpwYzIwQWRISnBaWE1nUFNBbFpDd2diVzlrWlNBOUlDVnpDZ0JrWlhKcGRtVmtBR2x1Wm04QWMyWmtjQ0J2Ym14NUlITjFjSEJ2Y25SeklITjBZWEowUFhKaGJtUnZiUW9B''@;'; + put 'put ''U3dCeVpYQjFiSE5wZG1WbWIzSmpaUUJzWlhabGJITUFjMjF2YjNSb2FXNW5BSEYxWVdSMGNtVmxBR0psWVhWMGFXWjVBRzkyWlhKc1lYQmZjMmh5YVc1ckFISnZkR0YwYVc5dUFHeGhZbVZzWDNOamFHVnRaUUJzWVdKbGJGOXpZMmhsYldVZ1BTQWxaQ0ErSURRZ09pQnBaMjV2Y21sdVp3b0Fa''@;'; + put 'put ''bUZ6ZEFCaGRtZGZaR2x6ZEFCbmNtRndhRjlrYVhOMEFIQnZkMlZ5WDJScGMzUUFjM0J5YVc1bkFHUnBiV1Z1QUdScGJRQnpjSEpwYm1kZlpXeGxZM1J5YVdOaGJGOWpiMjUwY205c09nb0FJQ0J5WlhCMWJITnBkbVVnWVc1a0lHRjBkSEpoWTNScGRtVWdaWGh3YjI1bGJuUnpPaUFsTGpBelpp''@;'; + put 'put ''QWxMakF6WmdvQUlDQnlZVzVrYjIwZ2MzUmhjblFnSldRZ2MyVmxaQ0FsWkFvQUlDQkxJRG9nSlM0d00yWWdReUE2SUNVdU1ETm1DZ0FnSUcxaGVDQnNaWFpsYkhNZ0pXUWdZMjloY25ObGJsOXpZMmhsYldVZ0pXUWdZMjloY25ObGJsOXViMlJsSUNWa0NnQWdJSEYxWVdSMGNtVmxJSE5wZW1V''@;'; + put 'put ''Z0pXUWdiV0Y0WDJ4bGRtVnNJQ1ZrQ2dBZ0lFSmhjbTVsY3kxSWRYUjBJR052Ym5OMFlXNTBJQ1V1TURObUlIUnZiR1Z5WVc1alpTQWdKUzR3TTJZZ2JXRjRhWFJsY2lBbFpBb0FJQ0JqYjI5c2FXNW5JQ1V1TURObUlITjBaWEFnYzJsNlpTQWdKUzR3TTJZZ1lXUmhjSFJwZG1VZ0pXUUtBQ0Fn''@;'; + put 'put ''WW1WaGRYUnBabmxmYkdWaGRtVnpJQ1ZrSUc1dlpHVWdkMlZwWjJoMGN5QWxaQ0J5YjNSaGRHbHZiaUFsTGpBelpnb0FJQ0J6Ylc5dmRHaHBibWNnSlhNZ2IzWmxjbXhoY0NBbFpDQnBibWwwYVdGc1gzTmpZV3hwYm1jZ0pTNHdNMllnWkc5ZmMyaHlhVzVyYVc1bklDVmtDZ0FnSUc5amRISmxa''@;'; + put 'put ''U0J6WTJobGJXVWdKWE1nYldWMGFHOWtJQ1Z6Q2dBZ0lHVmtaMlZmYkdGaVpXeHBibWRmYzJOb1pXMWxJQ1ZrQ2dCVFVGSkpUa2RmUlV4RlExUlNTVU5CVEFCVFVGSkpUa2RmVFVGWVJVNVVBRk5VVWtWVFUxOU5RVmhGVGxRQVUxUlNSVk5UWDBGUVVGSlBXQUJUVkZKRlUxTUFWVTVKUms5U1RW''@;'; + put 'put ''OVRWRkpGVTFNQVJsVk1URjlUVkZKRlUxTUFUazlPUlFCT1QxSk5RVXdBUmtGVFZBQklXVUpTU1VRQVUxUlNSVk5UWDAxQlNrOVNTVnBCVkVsUFRsOUhVa0ZRU0Y5RVNWTlVBRk5VVWtWVFUxOU5RVXBQVWtsYVFWUkpUMDVmUVZaSFgwUkpVMVFBVTFSU1JWTlRYMDFCU2s5U1NWcEJWRWxQVGw5''@;'; + put 'put ''UVQxZEZVbDlFU1ZOVUFGTlFVa2xPUndCVVVrbEJUa2RNUlFCU1RrY0FEU0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBkR1Z5SUQwZ0pXUXNJSE4wWlhBZ1BTQWxaaUJHYm05eWJTQTlJQ1ZtSUc1NklEMGdKV1FnSUVzZ1BTQWxaaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0Fn''@;'; + put 'put ''SUNBZ0lDQUFjM0J5YVc1blgyVnNaV04wY21sallXeGZaVzFpWldSa2FXNW5YM05zYjNjQVpHMWxZVzRnUFNBbFppd2djbWh2SUQwZ0pXWUtBSE5sYm1RZ2NtRnVaRzl0SUdOdmIzSmthVzVoZEdWekNnQnpZMkZzYVc1bklHWmhZM1J2Y2lBOUlDVm1DZ0JSVlVGRVgxUlNSVVZmU0ZsQ1VrbEVM''@;'; + put 'put ''Q0J6YVhwbElHeGhjbWRsY2lCMGFHRnVJQ1ZrTENCemQybDBZMmdnZEc4Z1ptRnpkQ0J4ZFdGa2RISmxaUUJqZEhKc0xUNXZkbVZ5YkdGd1BTVmtDZ0FsWkNBbFpBb0FkVzVwWm05eWJWOXpkSEpsYzNNdVl3QlZibWxtYjNKdFUzUnlaWE56VTIxdmIzUm9aWEpmYm1WM0FGTndZWEp6WlUxaGRI''@;'; + put 'put ''SnBlRjlwYzE5emVXMXRaWFJ5YVdNb1Fpd2dSa0ZNVTBVcEFIVnVhV1p2Y20xZmMzUnlaWE56QUh4bFpHZGxiR0ZpWld4OEFHeGxiZ0J1YjNKdFlXeHBlbVVBYjNabGNteGhjQUJQZG1WeWJHRndJSFpoYkhWbElDSWxjeUlnZFc1emRYQndiM0owWldRZ0xTQnBaMjV2Y21Wa0NnQlZibkpsWTI5''@;'; + put 'put ''bmJtbDZaV1FnYjNabGNteGhjQ0IyWVd4MVpTQWlKWE1pSUMwZ2RYTnBibWNnWm1Gc2MyVUtBRlp2Y205dWIya0FiM1psY214aGNEb2dKWE1nZG1Gc2RXVWdKV1FnYzJOaGJHbHVaeUFsTGpBMFpnb0FiM1psY214aGNGOXpZMkZzYVc1bkFIWnZjbTl1YjJrQWMyTmhiR2x1WndCMmNITmpBR2x3''@;'; + put 'put ''YzJWd0FHOXpZMkZzWlFCdmJHUWdjMk5oYkdsdVp3QnpZMkZzWlhoNUFIZ2dZVzVrSUhrZ2MyTmhiR2x1WndCdmNuUm9id0J2Y25Sb2IyZHZibUZzSUdOdmJuTjBjbUZwYm5SekFHOXlkR2h2WDNsNEFHOXlkR2h2ZUhrQWVIa2diM0owYUc5bmIyNWhiQ0JqYjI1emRISmhhVzUwY3dCdmNuUm9i''@;'; + put 'put ''M2w0QUhsNElHOXlkR2h2WjI5dVlXd2dZMjl1YzNSeVlXbHVkSE1BY0c5eWRHaHZBSEJ6WlhWa2J5MXZjblJvYjJkdmJtRnNJR052Ym5OMGNtRnBiblJ6QUhCdmNuUm9iMTk1ZUFCd2IzSjBhRzk0ZVFCNGVTQndjMlYxWkc4dGIzSjBhRzluYjI1aGJDQmpiMjV6ZEhKaGFXNTBjd0J3YjNKMGFH''@;'; + put 'put ''OTVlQUI1ZUNCd2MyVjFaRzh0YjNKMGFHOW5iMjVoYkNCamIyNXpkSEpoYVc1MGN3QndjbWx6YlFCQlpHcDFjM1JwYm1jZ0pYTWdkWE5wYm1jZ0pYTUtBRlZ1YUdGdVpHeGxaQ0JoWkdwMWMzUWdiM0IwYVc5dUlDVnpDZ0JPZFcxaVpYSWdiMllnYVhSbGNtRjBhVzl1Y3lBOUlDVmtDZ0JPZFcx''@;'; + put 'put ''aVpYSWdiMllnYVc1amNtVmhjMlZ6SUQwZ0pXUUtBRzkyWlhKc1lYQWdXeVZrWFNBNklDVmtDZ0IyYjNKdlgyMWhjbWRwYmdCelpYQUFaWE5sY0FCT2IyUmxJSE5sY0dGeVlYUnBiMjQ2SUdGa1pEMGxaQ0FvSldZc0pXWXBDZ0FsWml3bFpnQnpZMkZzWlNBOUlDZ2xMakF6Wml3bExqQXpaaWtL''@;'; + put 'put ''QUVWa1oyVWdjMlZ3WVhKaGRHbHZiam9nWVdSa1BTVmtJQ2dsWml3bFppa0tBRU5oYkdOMWJHRjBhVzVuSUdOcGNtTjFhWFFnYlc5a1pXd0FZMjl1YW5WbllYUmxYMmR5WVdScFpXNTBPaUIxYm1WNGNHVmpkR1ZrSUd4bGJtZDBhQ0F3SUhabFkzUnZjZ29BUTJGc1kzVnNZWFJwYm1jZ2MzVmlj''@;'; + put 'put ''MlYwSUcxdlpHVnNBR2R5WVhCb0lHbHpJR1JwYzJOdmJtNWxZM1JsWkM0Z1NHVnVZMlVzSUhSb1pTQmphWEpqZFdsMElHMXZaR1ZzQ2dCcGN5QjFibVJsWm1sdVpXUXVJRkpsZG1WeWRHbHVaeUIwYnlCMGFHVWdjMmh2Y25SbGMzUWdjR0YwYUNCdGIyUmxiQzRLQUVOaGJHTjFiR0YwYVc1bklF''@;'; + put 'put ''MUVVeUJ0YjJSbGJBQkRZV3hqZFd4aGRHbHVaeUJ6YUc5eWRHVnpkQ0J3WVhSb2N3QTZJQ1V1TW1ZZ2MyVmpDZ0JUWlhSMGFXNW5JR2x1YVhScFlXd2djRzl6YVhScGIyNXpBRG9nSlM0eVppQnpaV01BWTJjQVpHVnNkR0VnUEQwZ01IaEdSa1pHQUdOdmJuTjBjbUZwYm5RdVl3QnRhMDVEYjI1''@;'; + put 'put ''emRISmhhVzUwUndCMlp3QmpiMjF3Y21WemN5QWxaeUFLQUhOallXeGxJR0o1SUNWbkxDVm5JQW9BWW1WemRHTnZjM1FnUENCSVZVZEZYMVpCVEFCamIyMXdkWFJsVTJOaGJHVllXUUJIY21Gd2FIWnBlaUJpZFdsc2RDQjNhWFJvYjNWMElHRnVlU0IwY21saGJtZDFiR0YwYVc5dUlHeHBZbkpo''@;'; + put 'put ''Y25rS0FHUmxiR0YxYm1GNVgzUnlhV0Z1WjNWc1lYUnBiMjQ2SUNWekNnQmtaV3hoZFc1aGVWOTBjbWs2SUNWekNnQjBjbmxwYm1jZ2RHOGdaR1ZzWlhSbElHRWdibTl1TFd4cGJtVUtBQXBwYm5SbGNuTmxZM1JwYjI0Z1lYUWdKUzR6WmlBbExqTm1DZ0J6WldjakpXUWdPaUFvSlM0elppd2dK''@;'; + put 'put ''UzR6WmlrZ0tDVXVNMllzSUNVdU0yWXBDZ0J5WlcxdmRtVmZiM1psY214aGNEb2dSM0poY0doMmFYb2dibTkwSUdKMWFXeDBJSGRwZEdnZ2RISnBZVzVuZFd4aGRHbHZiaUJzYVdKeVlYSjVDZ0J0WVd0bFFXUmtVRzlzZVRvZ2RXNXJibTkzYmlCemFHRndaU0IwZVhCbElDVnpDZ0J0WVd0bFVH''@;'; + put 'put ''OXNlVG9nZFc1cmJtOTNiaUJ6YUdGd1pTQjBlWEJsSUNWekNnQjRJVDFPVlV4TUFITnRZWEowWDJsdWFWOTRMbU1BU1UxRVUxOW5hWFpsYmw5a2FXMEFhV3hzTFdOdmJtUnBkR2x2Ym1Wa0FISnZiM1FnUFNBbGN5QnRZWGdnYzNSbGNITWdkRzhnY205dmRDQTlJQ1ZrQ2dCMGQyOXdhVG9nZFhO''@;'; + put 'put ''bElHOW1JSGRsYVdkb2REMHdJR055WldGMFpYTWdaR2x6WTI5dWJtVmpkR1ZrSUdOdmJYQnZibVZ1ZEM0S0FGSmhibXNnYzJWd1lYSmhkR2x2YmlBOUlBQWxMakF6YkdZZ0FHRnlaV0VBYVc1elpYUUFKWE1nWTI5dmNtUWdKUzQxWnlBbExqVm5JR2gwSUNWbUlIZHBaSFJvSUNWbUNnQWxMakF6''@;'; + put 'put ''WmdCeVpXTWdKV1lnSldZZ0pXWWdKV1lLQUNWbUlDMGdKV1lnSldZZ0pXWWdKV1lnUFNBbFppQW9KV1lnSldZZ0pXWWdKV1lwQ2dCMGNubHBibWNnZEc4Z1lXUmtJSFJ2SUhKbFkzUWdleVZtSUNzdkxTQWxaaXdnSldZZ0t5OHRJQ1ZtZlFvQWRHOTBZV3dnWVdSa1pXUWdjMjhnWm1GeUlEMGdK''@;'; + put 'put ''V1FLQUdGa1pHbHVaeUFsWkNCcGRHVnRjeXdnZEc5MFlXd2dZWEpsWVNBOUlDVm1MQ0IzSUQwZ0pXWXNJR0Z5WldFdmR6MGxaZ29BWTI5dGNHOTFibVJGWkdkbGN6b2dZMjkxYkdRZ2JtOTBJR052Ym5OMGNuVmpkQ0J2WW5OMFlXTnNaWE1nTFNCbVlXeHNhVzVuSUdKaFkyc2dkRzhnYzNSeVlX''@;'; + put 'put ''bG5hSFFnYkdsdVpTQmxaR2RsY3dvQVkyOXRjRzkxYm1SRlpHZGxjem9nYm05a1pYTWdkRzkxWTJnZ0xTQm1ZV3hzYVc1bklHSmhZMnNnZEc4Z2MzUnlZV2xuYUhRZ2JHbHVaU0JsWkdkbGN3b0FjR0ZqYXlCMllXeDFaU0FsWkNCcGN5QnpiV0ZzYkdWeUlIUm9ZVzRnWlhObGNDQW9KUzR3TTJZ''@;'; + put 'put ''c0pTNHdNMllwQ2dCelpYQWdkbUZzZFdVZ0tDVXVNRE5tTENVdU1ETm1LU0JwY3lCemJXRnNiR1Z5SUhSb1lXNGdaWE5sY0NBb0pTNHdNMllzSlM0d00yWXBDZ0JqWXlWelh5VmtBR05qSlhNckpXUUFZMTlqYm5RZ1BUMGdNQUJqYjIxd0xtTUFabWx1WkVORGIyMXdBR2R5YVdRb0pXUXNKV1Fw''@;'; + put 'put ''T2lBbGN3b0FkMmQwSUQ0Z01BQlJkV0ZrVkhKbFpTNWpBRkYxWVdSVWNtVmxYM0psY0hWc2MybDJaVjltYjNKalpWOWhZMk4xYlhWc1lYUmxBSEYwTWkwK2JpQStJREFBY1hReExUNXVJRDRnTUNBbUppQnhkREl0UG00Z1BpQXdBRkYxWVdSVWNtVmxYM0psY0hWc2MybDJaVjltYjNKalpWOXBi''@;'; + put 'put ''blJsY21GamRBQmthWE4wSUQ0Z01BQWhLSEV0UG13cEFGRjFZV1JVY21WbFgyRmtaRjlwYm5SbGNtNWhiQUJwYVNBOElERThQR1JwYlNBbUppQnBhU0ErUFNBd0FIRXRQbkYwYzF0cGFWMEFjUzArYmlBOVBTQXhBQ0VvY1MwK2NYUnpLUUJ4TFQ1c0FIZHBaSFJvSUQ0Z01BQlJkV0ZrVkhKbFpW''@;'; + put 'put ''OXVaWGNBUVMwK1ptOXliV0YwSUQwOUlFWlBVazFCVkY5RFUxSUFVM0JoY25ObFRXRjBjbWw0TG1NQVUzQmhjbk5sVFdGMGNtbDRYM1J5WVc1emNHOXpaUUJCSUNZbUlFSUFVM0JoY25ObFRXRjBjbWw0WDJGa1pBQkJMVDVtYjNKdFlYUWdQVDBnUWkwK1ptOXliV0YwSUNZbUlFRXRQbVp2Y20x''@;'; + put 'put ''aGRDQTlQU0JHVDFKTlFWUmZRMU5TQUVFdFBuUjVjR1VnUFQwZ1FpMCtkSGx3WlFCVGNHRnljMlZOWVhSeWFYaGZhWE5mYzNsdGJXVjBjbWxqQUVFdFBtWnZjbTFoZENBOVBTQkdUMUpOUVZSZlEwOVBVa1FBVTNCaGNuTmxUV0YwY21sNFgyWnliMjFmWTI5dmNtUnBibUYwWlY5bWIzSnRZWFFB''@;'; + put 'put ''YlNBK0lEQWdKaVlnYmlBK0lEQWdKaVlnYm5vZ1BqMGdNQUJUY0dGeWMyVk5ZWFJ5YVhoZlpuSnZiVjlqYjI5eVpHbHVZWFJsWDJGeWNtRjVjMTlwYm5SbGNtNWhiQUJCQUdwaFcyMWhjMnRiYW1GYmFsMWRYU0E5UFNCcVlWdHFYUUJUY0dGeWMyVk5ZWFJ5YVhoZmMzVnRYM0psY0dWaGRGOWxi''@;'; + put 'put ''blJ5YVdWekFHbGtJRHdnYmlvb2VXMWhlQzE1YldsdUt6RXBBR3BoVzIxaGMydGJhV1JkWFNBOVBTQnFZVnRxWFFCVGNHRnljMlZOWVhSeWFYaGZiWFZzZEdsd2JIbGZaR1Z1YzJVeUFFRXRQblI1Y0dVZ1BUMGdUVUZVVWtsWVgxUlpVRVZmVWtWQlRBQlRjR0Z5YzJWTllYUnlhWGhmYlhWc2RH''@;'; + put 'put ''bHdiSGxmZG1WamRHOXlBRUV0UG5SNWNHVWdQVDBnVFVGVVVrbFlYMVJaVUVWZlVrVkJUQ0I4ZkNCQkxUNTBlWEJsSUQwOUlFMUJWRkpKV0Y5VVdWQkZYMGxPVkVWSFJWSUFVM0JoY25ObFRXRjBjbWw0WDIxMWJIUnBjR3g1WDJSbGJuTmxNUUJUY0dGeWMyVk5ZWFJ5YVhoZmJYVnNkR2x3Ykhr''@;'; + put 'put ''QWFtTmJiV0Z6YTF0cVlsdHJYVjFkSUQwOUlHcGlXMnRkQUZOd1lYSnpaVTFoZEhKcGVGOXRkV3gwYVhCc2VUTUFhbVJiYldGemExdHFZMXRyWFYxZElEMDlJR3BqVzJ0ZEFGTndZWEp6WlUxaGRISnBlRjlqYjI5eVpHbHVZWFJsWDJadmNtMWZZV1JrWDJWdWRISnBaWE1BVTNCaGNuTmxUV0Yw''@;'; + put 'put ''Y21sNFgyUnBkbWxrWlY5eWIzZGZZbmxmWkdWbmNtVmxBRzRnUGlBeEFHZGxibVZ5WVd3dVl3QnBjbUZ1WkFCdmJtVmliRzlqYXdCdGFXNWthWE4wQUdGeWRHbGpkV3hoZEdsdmJsOXdiM01BY205dmRBQlFjbWx2Y21sMGVWRjFaWFZsTG1NQVVISnBiM0pwZEhsUmRXVjFaVjl3ZFhOb0FHZGhh''@;'; + put 'put ''VzRnUEQwZ2NTMCtibWRoYVc0QVUzQmhjbk5sVFdGMGNtbDRYMmx6WDNONWJXMWxkSEpwWXloQkxDQkdRVXhUUlNrQWNHOXpkRjl3Y205alpYTnpMbU1BYVdSbFlXeGZaR2x6ZEdGdVkyVmZiV0YwY21sNEFHeGxiaUErSURBQVUzUnlaWE56VFdGcWIzSnBlbUYwYVc5dVUyMXZiM1JvWlhJeVgy''@;'; + put 'put ''NWxkd0J1ZWlBK0lEQUFhV1JsWVd4ZlpHbHpkRjl6WTJobGJXVWdkbUZzZFdVZ2QzSnZibWNBVTNCaGNuTmxUV0YwY21sNFgybHpYM041YlcxbGRISnBZeWhCTENCR1FVeFRSU2tnSmlZZ1FTMCtkSGx3WlNBOVBTQk5RVlJTU1ZoZlZGbFFSVjlTUlVGTUFGTndZWEp6WlZOMGNtVnpjMDFoYW05''@;'; + put 'put ''eWFYcGhkR2x2YmxOdGIyOTBhR1Z5WDI1bGR3QnBaR2xoWnlBK1BTQXdBRk4wY21WemMwMWhhbTl5YVhwaGRHbHZibE50YjI5MGFHVnlYM050YjI5MGFBQW9JV3BqYmlrZ0ppWWdLQ0YyWVd3cEFHZGxkRjlsWkdkbFgyeGhZbVZzWDIxaGRISnBlQUJVY21saGJtZHNaVk50YjI5MGFHVnlYMjVs''@;'; + put 'put ''ZHdCcVpHbGhaeUErUFNBd0FGTndjbWx1WjFOdGIyOTBhR1Z5WDI1bGR3QWhabXhoWndCVGNISnBibWRUYlc5dmRHaGxjbDl6Ylc5dmRHZ0FibVZwWjJoaVBTVmtDZ0J5YjI5MElEMGdKWE1LQUY5aWJHOWphMThsWkFCekxUNXplaUErSURBQVlteHZZMnQwY21WbExtTUFjRzl3QUdGamRIVmhi''@;'; + put 'put ''QUJ1YjJSbGJHbHpkQzVqQUdsdWMyVnlkRTV2WkdWc2FYTjBBRjl6Y0dGdVh5VmtBRjlqYkc5dVpWOGxaQUJwY0FCa1pXZHNhWE4wTG1NQWNtVnRiM1psUkdWbmJHbHpkQUJGY25KdmNnQlhZWEp1YVc1bkFDVnpPaUFBZFhObGNtOTFkRG9nWTI5MWJHUWdibTkwSUdGc2JHOWpZWFJsSUcxbGJX''@;'; + put 'put ''OXllUW9BWDBGSFgzTjBjbVJoZEdFQVgwRkhYMlJoZEdGa2FXTjBBR0ZuWkdsamRHOW1PaUIxYm10dWIzZHVJR3RwYm1RZ0pXUUtBQ1ZqSld4a0FHMWxiVzl5ZVNCaGJHeHZZMkYwYVc5dUlHWmhhV3gxY21VQVlXZGtaV3hsZEdVZ2IyNGdkM0p2Ym1jZ1ozSmhjR2dBWDBGSFgzQmxibVJwYm1j''@;'; + put 'put ''QVlXZHlaV052Y21SZlkyRnNiR0poWTJzZ2IyWWdZU0JpWVdRZ2IySnFaV04wQUhCbGJtUWdaR2xqZEc5bUlHRWdZbUZrSUc5aWFtVmpkQUJ0YjNabElIUnZJR1p5YjI1MElHeHZZMnNnYVc1amIyNXphWE4wWlc1amVRQmNYQUJtWVhSaGJDQm1iR1Y0SUhOallXNXVaWElnYVc1MFpYSnVZV3dn''@;'; + put 'put ''WlhKeWIzSXRMVzV2SUdGamRHbHZiaUJtYjNWdVpBQWxjd29BWm1GMFlXd2dabXhsZUNCelkyRnVibVZ5SUdsdWRHVnlibUZzSUdWeWNtOXlMUzFsYm1RZ2IyWWdZblZtWm1WeUlHMXBjM05sWkFCbVlYUmhiQ0JsY25KdmNpQXRJSE5qWVc1dVpYSWdhVzV3ZFhRZ1luVm1abVZ5SUc5MlpYSm1i''@;'; + put 'put ''RzkzQUc5MWRDQnZaaUJrZVc1aGJXbGpJRzFsYlc5eWVTQnBiaUJoWVdkZloyVjBYMjVsZUhSZlluVm1abVZ5S0NrQWFXNXdkWFFBYzNsdWRHRjRJR0Z0WW1sbmRXbDBlU0F0SUdKaFpHeDVJR1JsYkdsdGFYUmxaQ0J1ZFcxaVpYSWdKd0FuSUdsdUlHeHBibVVnSldRZ2IyWWdBQ0J6Y0d4cGRI''@;'; + put 'put ''TWdhVzUwYnlCMGQyOGdkRzlyWlc1ekNnQWxjd0JzYVc1bEFDVmtJQ1V4V3lKZEpXNEFiM1YwSUc5bUlHUjVibUZ0YVdNZ2JXVnRiM0o1SUdsdUlHRmhaMTlqY21WaGRHVmZZblZtWm1WeUtDa0FiM1YwSUc5bUlHUjVibUZ0YVdNZ2JXVnRiM0o1SUdsdUlHRmhaMlZ1YzNWeVpWOWlkV1ptWlhK''@;'; + put 'put ''ZmMzUmhZMnNvS1FBNklBQWdhVzRnYkdsdVpTQWxaQUFnYm1WaGNpQW5BQ0J6WTJGdWJtbHVaeUJoSUhGMWIzUmxaQ0J6ZEhKcGJtY2dLRzFwYzNOcGJtY2daVzVrY1hWdmRHVS9JR3h2Ym1kbGNpQjBhR0Z1SUNWa1B5a0FDbE4wY21sdVp5QnpkR0Z5ZEdsdVp6b2lBQ0J6WTJGdWJtbHVaeUJo''@;'; + put 'put ''SUVoVVRVd2djM1J5YVc1bklDaHRhWE56YVc1bklDYytKejhnWW1Ga0lHNWxjM1JwYm1jL0lHeHZibWRsY2lCMGFHRnVJQ1ZrUHlrQUNsTjBjbWx1WnlCemRHRnlkR2x1WnpvOEFDQnpZMkZ1Ym1sdVp5QmhJQzhxTGk0dUtpOGdZMjl0YldWdWRDQW9iV2x6YzJsdVp5QW5LaTgvSUd4dmJtZGxj''@;'; + put 'put ''aUIwYUdGdUlDVmtQeWtBWm14bGVDQnpZMkZ1Ym1WeUlIQjFjMmd0WW1GamF5QnZkbVZ5Wm14dmR3QWlJZ0J6ZEhKcFkzUUFiR2x1Wld4bGJtZDBhQUE3Q2dBZ1cydGxlVDBBWFFBZ1d3QXNDZ0E5QUY4bGJHUmZVMVZUVUVWRFZBQmthUUJ6ZEhKcFkzUWdBSHNLQUYwN0NnQVM3dTRVQ1FQdS91''@;'; + put 'put ''N3U3Z0h1N3U0Qjd1NEsvdTRUR1JYdUV3SHU3dTd1Q3hIdTd1N3U3dTd1N3U0Qjd1NFdDUUVCSFE4WDd1NGFGeHZ1N2h6dTd1N3VBUm43N3U3dUFlNFE3dTRlN3U3dTdnQUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJWEVRSUNBZ0lDQWdJ''@;'; + put 'put ''Q0FnSUNBZ0lTRUFJVEFnSVdBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSVVBaFVDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWc0Q0R3SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lD''@;'; + put 'put ''QWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lCQWdNRUJRWUhDQWtLQ3d3TkN3TUVCUThIQXd3TkJnd05EZ3dOR2hVV0FBRUFBd2NPQmc4SURBMFNF''@;'; + put 'put ''eW9RRVFrUUx6QVJNaGNURFJRU0xoSVVRUk15RXl4QUtrSVpMRUpHSWd3TkRpTVBDUkFSQ2hBUnlSQVJMVVZHL0FFRzlnOEg5aVFDRUJFdk1EWk5UaWdtT3p3cU5qRTVQVDh2T2tEWVJEQStKVGRETlVzck9FbE1BQU1KQUFBQUFRNENDd3dJSXlRbE5qczlBQTBRRWhzV0hCSW5NaUlYTXg0OEJn''@;'; + put 'put ''YzFCUThSRkJncEFCTXBBQUFBQUFBM0ZTZ2RIZ0FoSmpRZk1ENFpMQUFiQUNBYUtnQXJPaTR2QURFNE9TMEFBZ0lCQUFNREFRQUJBQUVCQVFBQ0FRRUFBZ0lEQVFFQUFBVUFBUU1CQXdVREFRRUJBUUlBQVFBRUFnQUNBUUVEQWdFQUF3SUJBQUVCQUFFQkFRTUFHQmtaR1JvYkhCd2RIUjRlSHg4''@;'; + put 'put ''Z0lDRWhJaUlqSkNRbUp5VWxLQ2dwS1NrcUtpc3JLeXdzTFMwdUx5OHdNVEV5TXpRMk5UYzNOemc0T0RrNU9qcnU3di91N3U3dTd1NGZJTzRBNys3dTdnenU3dTRJRGU3dTd2anU3dTd1N3U3MTd2OERDQVFoQlFzU0V5Y1VGUllwTWtFWEdCa2FMRE0wUWtkSUcwb2NIUzRlVHg4Z2EyVjVBR0Yw''@;'; + put 'put ''ZEhKcFluVjBaU0J0WVdOeWIzTWdibTkwSUdsdGNHeGxiV1Z1ZEdWa0FDVnpPaVZ6QUVOdmRXeGtJRzV2ZENCdmNHVnVJQ0lsY3lJZ1ptOXlJSGR5YVhScGJtY2dPaUFsY3dvQVRtOGdiR2xpZWlCemRYQndiM0owTGdvQUxpVmtBRzV2Ym1GdFpTNW5kZ0JuZG5keWFYUmxYMjV2WDNvZ2NISnZZ''@;'; + put 'put ''bXhsYlNBbFpBb0FiV1Z0YjNKNUlHRnNiRzlqWVhScGIyNGdabUZwYkhWeVpRb0FUbThnYkdsaWVpQnpkWEJ3YjNKMENnQm5kbkJ5YVc1MFpqb2dKWE1LQUMwNU9UazVPVGs1T1RrNU9UazVPVGt1T1RrQVozSmhjR2gyYVhvQU1pNDBNQzR4QURJd01UWXhNakkxTGpBek1EUUFjbVZ1WkdWeUFH''@;'; + put 'put ''UmxkbWxqWlFCc2IyRmthVzFoWjJVQVpIbHVZVzFwWXlCc2IyRmthVzVuSUc1dmRDQmhkbUZwYkdGaWJHVUtBRlZ6YVc1bklDVnpPaUFsY3pvbGN3b0FaM1oxYzJWeWMyaGhjR1V1WXdCbmRuVnpaWEp6YUdGd1pWOW1hVzVrQUdkMmRYTmxjbk5vWVhCbFgyWnBiR1ZmWVdOalpYTnpBRVpwYkdW''@;'; + put 'put ''dVlXMWxJQ0lsY3lJZ2FYTWdkVzV6WVdabENnQWxjeUIzYUdsc1pTQnZjR1Z1YVc1bklDVnpDZ0IxY3kwK1pnQm5kblZ6WlhKemFHRndaVjl2Y0dWdUFDSWxjeUlnZDJGeklHNXZkQ0JtYjNWdVpDQmhjeUJoSUdacGJHVWdiM0lnWVhNZ1lTQnphR0Z3WlNCc2FXSnlZWEo1SUcxbGJXSmxjZ29B''@;'; + put 'put ''TDAxbFpHbGhRbTk0QUNoYllTMTZYVnRoTFhwQkxWcGRLaWs5SWloYlhpSmRLaWtpQUdOaGJtNXZkQ0JqYjIxd2FXeGxJSEpsWjNWc1lYSWdaWGh3Y21WemMybHZiaUFsY3dBbGJHWWxNbk1BY0hRQWRtbGxkMEp2ZUFBbGJHWWdKV3htSUNWc1ppQWxiR1lBYVc0QWNIZ0FjR01BSWdCamJRQnRi''@;'; + put 'put ''UUFsSlVKdmRXNWthVzVuUW05NE9nQUIwTkhTMDlUVjF0ZlkyUUE4YzNabkFGZEZRbEFBZDJWaWNBQW9iR2xpS1FDSlVFNUhEUW9hQ2dCd2JtY0FKU0ZRVXkxQlpHOWlaUzBBUWswQVltMXdBRWRKUmpnQVoybG1BUC9ZLytBQWFuQmxad0FsVUVSR0xRQndaR1lBeGREVHhnQmxjSE1BUEQ5NGJX''@;'; + put 'put ''d0FlRzFzQUZKSlJrWUFjbWxtWmdBQUFBRUFBR2xqYndBbFpDQWxaQ0FsWkNBbFpBQk1ZWGx2ZFhRZ2QyRnpJRzV2ZENCa2IyNWxDZ0JtWVdsc2RYSmxJRzFoYkd4dll5ZHBibWNnWm05eUlISmxjM1ZzZENCemRISnBibWNBWjJNNklFOTFkQ0J2WmlCdFpXMXZjbmtLQUY5alkxOEFiM0pwWndC''@;'; + put 'put ''dmNBQmpZMjl0Y0hNdVl3QnRZWEJEYkhWemRBQmpZMmR5WVhCb2FXNW1id0JqWTJkdWIyUmxhVzVtYndBb0pUUnNaQ2tnSlRkc1pDQnViMlJsY3lBbE4yeGtJR1ZrWjJWekNnQWdJQ0FnSUNBZ0pUZGtJRzV2WkdWeklDVTNaQ0JsWkdkbGN5QWxOMnhrSUdOdmJYQnZibVZ1ZEhNZ0pYTUtBR1Ju''@;'; + put 'put ''QUVWeWNtOXlPaUJ1YjJSbElDSWxjeUlnWW1Wc2IyNW5jeUIwYnlCMGQyOGdibTl1TFc1bGMzUmxaQ0JqYkhWemRHVnljeUFpSlhNaUlHRnVaQ0FpSlhNaUNnQnpiM0owZGdCeWIzY2diV0ZxYjNJQVkyOXNkVzF1SUcxaGFtOXlBR0Z5Y21GNUlIQmhZMnRwYm1jNklDVnpJQ1ZrSUhKdmQzTWdK''@;'; + put 'put ''V1FnWTI5c2RXMXVjd29BWW1KYkpYTmRJQ1V1TldjZ0pTNDFaeUFsTGpWbklDVXVOV2NLQUhOMFpYQWdjMmw2WlNBOUlDVmtDZ0J3YjNOYkpXUmRJQ1ZrSUNWa0NnQmpZeUFvSldRZ1kyVnNiSE1wSUdGMElDZ2xaQ3dsWkNrZ0tDVmtMQ1ZrS1FvQVkyTWdLQ1ZrSUdObGJHeHpLU0JoZENBb0pX''@;'; + put 'put ''UXNKV1FwQ2dBbGN5QnVieTRnWTJWc2JITWdKV1FnVnlBbFpDQklJQ1ZrQ2dBZ0lDVmtJQ1ZrSUdObGJHd0tBR3hwWW5CaFkyczZJR1JwYzJNZ1BTQWxaaUFvSUR3Z01Da0tBRkJoWTJ0cGJtYzZJR052YlhCMWRHVWdaM0pwWkNCemFYcGxDZ0JoSUNWbUlHSWdKV1lnWXlBbFppQmtJQ1ZtSUhJ''@;'; + put 'put ''Z0pXWUtBSEp2YjNRZ0pXUWdLQ1ZtS1NBbFpDQW9KV1lwQ2dBZ2NqRWdKV1lnY2pJZ0pXWUtBSEJwYm1adkFIQmhZMnN1WXdCblpYUlFZV05yU1c1bWJ3QWdJRzFoY21kcGJpQWxaQW9BY0dGamEyMXZaR1VBY0dGeWMyVlFZV05yVFc5a1pVbHVabThBWVhKeVlYa0FZWE53WldOMEFDVm1BSEJo''@;'; + put 'put ''WTJzZ2FXNW1iem9LQUNBZ2JXOWtaU0FnSUNWekNnQWdJR0Z6Y0dWamRDQWxaZ29BSUNCemFYcGxJQ0FnSldRS0FDQWdabXhoWjNNZ0lDVmtDZ0IxYm1SbFptbHVaV1FBY0dGamF3QkJjbkp2ZHlCMGVYQmxJQ0lsY3lJZ2RXNXJibTkzYmlBdElHbG5ibTl5YVc1bkNnQnViM0p0WVd3QVkzSnZk''@;'; + put 'put ''d0IwWldVQVpHOTBBR2x1ZGdCMlpXVUFjR1Z1QUcxd2RIa0FZM1Z5ZG1VQWFXTjFjblpsQUd3QWFHRnNaZ0JwYm5abGJYQjBlUUJmWW1GamEyZHliM1Z1WkFCZlpISmhkMThBUTI5MWJHUWdibTkwSUhCaGNuTmxJQ0pmWW1GamEyZHliM1Z1WkNJZ1lYUjBjbWxpZFhSbElHbHVJR2R5WVhCb0lD''@;'; + put 'put ''VnpDZ0FnSUNJbGN5SUtBRzV2SUcxbGJXOXllU0JtY205dElIcHRZV3hzYjJNb0tRb0FiMkpxQUdWdGFYUXVZd0J3YjNCZmIySnFYM04wWVhSbEFHTnNkWE4wQUNWc1pBQndZV2RsSldRc0pXUmZBRlJ2ZEdGc0lITnBlbVVnUGlBeElHbHVJQ0lsY3lJZ1kyOXNiM0lnYzNCbFl5QUFTV3hzWldk''@;'; + put 'put ''aGJDQnNaVzVuZEdnZ2RtRnNkV1VnYVc0Z0lpVnpJaUJqYjJ4dmNpQmhkSFJ5YVdKMWRHVWdBR3h1Y21OdmJHOXljMk5vWlcxbEFHVnRhWFJmWldSblpWOXNZV0psYkFBbGN5MGxjd0JtYjNKM1lYSmtBR0poWTJzQUlDMCtJQUFnTFMwZ0FHbHVJR1ZrWjJVZ0pYTWxjeVZ6Q2dCc1lXSmxiR0Zz''@;'; + put 'put ''YVdkdVpXUUFaV1JuWldoeVpXWUFaV1JuWlZWU1RBQnNZV0psYkdoeVpXWUFiR0ZpWld4VlVrd0FkR0ZwYkdoeVpXWUFkR0ZwYkZWU1RBQm9aV0ZrYUhKbFpnQm9aV0ZrVlZKTUFHVmtaMlYwWVhKblpYUUFiR0ZpWld4MFlYSm5aWFFBZEdGcGJIUmhjbWRsZEFCb1pXRmtkR0Z5WjJWMEFHVmta''@;'; + put 'put ''MlYwYjI5c2RHbHdBR3hoWW1Wc2RHOXZiSFJwY0FCMFlXbHNkRzl2YkhScGNBQm9aV0ZrZEc5dmJIUnBjQUFCYm1WemRHbHVaeUJ1YjNRZ1lXeHNiM2RsWkNCcGJpQnpkSGxzWlRvZ0pYTUtBSFZ1YldGMFkyaGxaQ0FuS1NjZ2FXNGdjM1I1YkdVNklDVnpDZ0IwY25WdVkyRjBhVzVuSUhOMGVX''@;'; + put 'put ''eGxJQ2NsY3ljS0FIVnViV0YwWTJobFpDQW5LQ2NnYVc0Z2MzUjViR1U2SUNWekNnQmhiR3dBYVc0Z1kyeDFjM1JsY2lBbGN3b0FUVzl5WlNCMGFHRnVJRElnWTI5c2IzSnpJSE53WldOcFptbGxaQ0JtYjNJZ1lTQm5jbUZrYVdWdWRDQXRJR2xuYm05eWFXNW5JSEpsYldGcGJtbHVad29BWjNK''@;'; + put 'put ''aFpHbGxiblFnY0dWdUlHTnZiRzl5Y3lCdWIzUWdlV1YwSUhOMWNIQnZjblJsWkM0S0FFbHRZV2RsY3lCMWJuTjFjSEJ2Y25SbFpDQnBiaUFpWW1GamEyZHliM1Z1WkNJZ1lYUjBjbWxpZFhSbENnQnNZWGxsY25NZ2JtOTBJSE4xY0hCdmNuUmxaQ0JwYmlBbGN5QnZkWFJ3ZFhRS0FFeGhlVzkx''@;'; + put 'put ''ZENCM1lYTWdibTkwSUdSdmJtVXVJQ0JOYVhOemFXNW5JR3hoZVc5MWRDQndiSFZuYVc1elB5QUtBR2QyVW1WdVpHVnlTbTlpY3lBbGN6b2dKUzR5WmlCelpXTnpMZ29BYkdGNWIzVjBJSGRoY3lCdWIzUWdaRzl1WlFvQWNtVnVaR1Z5WlhJZ1ptOXlJQ1Z6SUdseklIVnVZWFpoYVd4aFlteGxD''@;'; + put 'put ''Z0J3WVdkbFpHbHlQU1Z6SUdsbmJtOXlaV1FLQUhacFpYZHdiM0owQUNWc1ppd2xiR1lzSld4bUxDY2xXMTRuWFNjQUpXeG1MQ1ZzWml3bGJHWXNKVnRlTEYwbGN3QWxiR1lzSld4bUxDVnNaaXdsYkdZc0pXeG1BRzkxZEhCMWRHOXlaR1Z5QUc5a1pYTm1hWEp6ZEFCa1oyVnpabWx5YzNRQWJH''@;'; + put 'put ''RjVaWEp6QUd4aGVXVnljMlZzWldOMEFGUm9aU0JzWVhsbGNuTmxiR1ZqZENCaGRIUnlhV0oxZEdVZ0lpVnpJaUJrYjJWeklHNXZkQ0J0WVhSamFDQmhibmtnYkdGNVpYSWdjM0JsWTJsbVpXUWdZbmtnZEdobElHeGhlV1Z5Y3lCaGRIUnlhV0oxZEdVZ0xTQnBaMjV2Y21Wa0xnb0FiR0Y1WlhK''@;'; + put 'put ''elpYQUFPZ2tnQUd4aGVXVnliR2x6ZEhObGNBQXNBRlJvWlNCamFHRnlZV04wWlhJZ0p5VmpKeUJoY0hCbFlYSnpJR2x1SUdKdmRHZ2dkR2hsSUd4aGVXVnljMlZ3SUdGdVpDQnNZWGxsY214cGMzUnpaWEFnWVhSMGNtbGlkWFJsY3lBdElHeGhlV1Z5YkdsemRITmxjQ0JwWjI1dmNtVmtMZ29B''@;'; + put 'put ''Y0dGa0FFSk1BSEJoWjJWa2FYSUFjMjlzYVdRQUFITmxkR3hwYm1WM2FXUjBhQUF4QUFCemNHd3RQbk5wZW1VZ1BpQXdBR2x1YVhSZmMzQnNhVzVsYzE5aVlnQmllaTV6YVhwbElENGdNQUJpWlhwcFpYSmZZbUlBWW5vdWMybDZaU0FsSURNZ1BUMGdNUUFsYkdZQVptOXVkSEJoZEdnQVJFOVVS''@;'; + put 'put ''azlPVkZCQlZFZ0FSMFJHVDA1VVVFRlVTQUJwYldGblpYQmhkR2dBY1hWaGJuUjFiUUJ5WVc1clpHbHlBRXhTQUVKVUFGSk1BRzV2WkdWelpYQUFjbUZ1YTNObGNBQmxjWFZoYkd4NUFITm9iM2RpYjNobGN3Qm1iMjUwYm1GdFpYTUFjMmw2WlFCd1lXZGxBR05sYm5SbGNnQnliM1JoZEdVQWIz''@;'; + put 'put ''SnBaVzUwWVhScGIyNEFiR0Z1WkhOallYQmxBR05zZFhOMFpYSnlZVzVyQUdOdmJtTmxiblJ5WVhSbEFHUndhUUJ5WlhOdmJIVjBhVzl1QUc5eVpHVnlhVzVuQUdacGJHeGpiMnh2Y2dCbWIyNTBjMmw2WlFCbWIyNTBibUZ0WlFCbWIyNTBZMjlzYjNJQWVHeGhZbVZzQUhCbGJuZHBaSFJvQUhC''@;'; + put 'put ''bGNtbHdhR1Z5YVdWekFITnJaWGNBWkdsemRHOXlkR2x2YmdCdWIycDFjM1JwWm5rQWJHRjVaWElBWjNKdmRYQUFZMjl0YldWdWRBQjJaWEowYVdObGN3QjZBSGRsYVdkb2RBQnNZV0psYkdac2IyRjBBR1JwY2dCaGNuSnZkMmhsWVdRQVlYSnliM2QwWVdsc0FHaGxZV1JzWVdKbGJBQjBZV2xz''@;'; + put 'put ''YkdGaVpXd0FiR0ZpWld4bWIyNTBjMmw2WlFCc1lXSmxiR1p2Ym5SdVlXMWxBR3hoWW1Wc1ptOXVkR052Ykc5eUFHeGhZbVZzWkdsemRHRnVZMlVBYkdGaVpXeGhibWRzWlFCdGFXNXNaVzRBWkdWamIzSmhkR1VBWVhKeWIzZHphWHBsQUdOdmJuTjBjbUZwYm5RQWRHRnBiR05zYVhBQWFHVmha''@;'; + put 'put ''R05zYVhBQWJHRmlaV3hxZFhOMEFHeHZZMkZzQUdkc2IySmhiQUFsYkdZc0pXeG1KV01BSld4bUpXTUFjbUYwYVc4QVlYVjBid0JqYjIxd2NtVnpjd0JsZUhCaGJtUUFabWxzYkFCblpBQndjd0J6ZG1jQVkyaGhjbk5sZEFCMWRHWXRPQUJzWVhScGJpMHhBR3hoZEdsdU1RQnNNUUJKVTA4dE9E''@;'; + put 'put ''ZzFPUzB4QUVsVFQxODRPRFU1TFRFQVNWTlBPRGcxT1MweEFFbFRUeTFKVWkweE1EQUFZbWxuTFRVQVltbG5OUUIxZEdZNEFGVnVjM1Z3Y0c5eWRHVmtJR05vWVhKelpYUWdJaVZ6SWlBdElHRnpjM1Z0YVc1bklIVjBaaTA0Q2dCVmJuTjFjSEJ2Y25SbFpDQmphR0Z5YzJWMElIWmhiSFZsSUNW''@;'; + put 'put ''a0NnQlZWRVl0T0FCQ1NVY3ROUUJwYmlCc1lXSmxiQ0J2WmlCbmNtRndhQ0FsY3dvQWFXNGdiR0ZpWld3Z2IyWWdibTlrWlNBbGN3b0FhVzRnYkdGaVpXd2diMllnWldSblpTQWxjeUFsY3lBbGN3b0FhMmx1WkNBOVBTQk1WRjlPVDA1RkFHeGhZbVZzY3k1akFHMWhhMlZmYkdGaVpXd0FYRXdB''@;'; + put 'put ''WEVjQVhFVUFYRWdBWEZRQUppTXhNenNBSmlNeE1Ec0FKbkYxYjNRN0FDWWpNVFl3T3dBbVlXMXdPd0FtWjNRN0FDWWpNems3QUNZak5EVTdBQ1pzZERzQUpYTWdKV1FnYm05a1pYTWdKV1FnWldSblpYTWdiV0Y0YVhSbGNqMGxaQ0JpWVd4aGJtTmxQU1ZrQ2dCdVpYUjNiM0pySUhOcGJYQnNa''@;'; + put 'put ''WGc2SUFBbFpDQUFKWE1sWkNCdWIyUmxjeUFsWkNCbFpHZGxjeUFsWkNCcGRHVnlJQ1V1TW1ZZ2MyVmpDZ0IxY0dSaGRHVTZJRzFwYzIxaGRHTm9aV1FnYkdOaElHbHVJSFJ5WldWMWNHUmhkR1Z6Q2dCVWNtVmxYMlZrWjJVdWMybDZaU0E5UFNCT1gyNXZaR1Z6SUMwZ01RQnVjeTVqQUdabFlY''@;'; + put 'put ''TnBZbXhsWDNSeVpXVUFJVlJTUlVWZlJVUkhSU2hsS1FCdFpYSm5aVjkwY21WbGN3QW9jakF0UG1obFlYQmZhVzVrWlhnZ1BpQXRNU2tnZkh3Z0tISXhMVDVvWldGd1gybHVaR1Y0SUQ0Z0xURXBBRk5VYzJWMFZXNXBiMjRBY2kwK2FHVmhjRjlwYm1SbGVDQStQU0F3QUdGa1pGOTBjbVZsWDJW''@;'; + put 'put ''a1oyVTZJRzFwYzNOcGJtY2dkSEpsWlNCbFpHZGxDZ0JoWkdSZmRISmxaVjlsWkdkbE9pQmxiWEIwZVNCdmRYUmxaR2RsSUd4cGMzUUtBR0ZrWkY5MGNtVmxYMlZrWjJVNklHVnRjSFI1SUdsdVpXUm5aU0JzYVhOMENnQjBjbTkxWW14bElHbHVJR2x1YVhSZmNtRnVhd29BQ1NWeklDVmtDZ0J6''@;'; + put 'put ''WldGeVkyaHphWHBsQUdkeVlYQm9JQUFnQUc1dlpHVWdBSE4wYjNBS0FDVXVOV2NBY0c5ekFISmxZM1J6QUhoc2NBQnNjQUJvWldGa1gyeHdBSFJoYVd4ZmJIQUFiSGRwWkhSb0FHeG9aV2xuYUhRQVltSUFKUzQxWnl3bExqVm5MQ1V1TldjQUxDVXVOV2NBSlM0MVp5d2xMalZuQUhOaGJYQnNa''@;'; + put 'put ''WEJ2YVc1MGN3QWxMalZuSUNVdU5XY0FjeXdsTGpWbkxDVXVOV2NnQUdVc0pTNDFaeXdsTGpWbklBQWxMalZuTENVdU5XY3NKUzQxWnl3bExqVm5BQ1V1TW1ZQUpTNDFaeXdsTGpWbkxDVXVOV2NzSlM0MVp5QUFMM0JoZEdoaWIzZ2dld29nSUNBZ0wxZ2daWGhqYUNCdVpXY2dKUzQxWnlCemRX''@;'; + put 'put ''SWdaR1ZtQ2lBZ0lDQXZXU0JsZUdOb0lDVXVOV2NnYzNWaUlHUmxaZ29nSUNBZ0wzZ2daWGhqYUNCdVpXY2dKUzQxWnlCemRXSWdaR1ZtQ2lBZ0lDQXZlU0JsZUdOb0lDVXVOV2NnYzNWaUlHUmxaZ29nSUNBZ2JtVjNjR0YwYUNCNElIa2diVzkyWlhSdkNpQWdJQ0JZSUhrZ2JHbHVaWFJ2Q2lB''@;'; + put 'put ''Z0lDQllJRmtnYkdsdVpYUnZDaUFnSUNCNElGa2diR2x1WlhSdkNpQWdJQ0JqYkc5elpYQmhkR2dnYzNSeWIydGxDbjBnWkdWbUNnQXZjR0YwYUdKdmVDQjdDaUFnSUNBdldTQmxlR05vSUNVdU5XY2djM1ZpSUdSbFpnb2dJQ0FnTDFnZ1pYaGphQ0FsTGpWbklITjFZaUJrWldZS0lDQWdJQzk1''@;'; + put 'put ''SUdWNFkyZ2dKUzQxWnlCemRXSWdaR1ZtQ2lBZ0lDQXZlQ0JsZUdOb0lDVXVOV2NnYzNWaUlHUmxaZ29nSUNBZ2JtVjNjR0YwYUNCNElIa2diVzkyWlhSdkNpQWdJQ0JZSUhrZ2JHbHVaWFJ2Q2lBZ0lDQllJRmtnYkdsdVpYUnZDaUFnSUNCNElGa2diR2x1WlhSdkNpQWdJQ0JqYkc5elpYQmhk''@;'; + put 'put ''R2dnYzNSeWIydGxDaUI5SUdSbFpnb3ZaR0puYzNSaGNuUWdleUJuYzJGMlpTQWxMalZuSUNVdU5XY2dkSEpoYm5Oc1lYUmxJSDBnWkdWbUNpOWhjbkp2ZDJ4bGJtZDBhQ0F4TUNCa1pXWUtMMkZ5Y205M2QybGtkR2dnWVhKeWIzZHNaVzVuZEdnZ01pQmthWFlnWkdWbUNpOWhjbkp2ZDJobFlX''@;'; + put 'put ''UWdld29nSUNBZ1ozTmhkbVVLSUNBZ0lISnZkR0YwWlFvZ0lDQWdZM1Z5Y21WdWRIQnZhVzUwQ2lBZ0lDQnVaWGR3WVhSb0NpQWdJQ0J0YjNabGRHOEtJQ0FnSUdGeWNtOTNiR1Z1WjNSb0lHRnljbTkzZDJsa2RHZ2dNaUJrYVhZZ2NteHBibVYwYndvZ0lDQWdNQ0JoY25KdmQzZHBaSFJvSUc1''@;'; + put 'put ''bFp5QnliR2x1WlhSdkNpQWdJQ0JqYkc5elpYQmhkR2dnWm1sc2JBb2dJQ0FnWjNKbGMzUnZjbVVLZlNCaWFXNWtJR1JsWmdvdmJXRnJaV0Z5Y205M0lIc0tJQ0FnSUdOMWNuSmxiblJ3YjJsdWRDQmxlR05vSUhCdmNDQnpkV0lnWlhoamFDQmpkWEp5Wlc1MGNHOXBiblFnY0c5d0lITjFZaUJo''@;'; + put 'put ''ZEdGdUNpQWdJQ0JoY25KdmQyaGxZV1FLZlNCaWFXNWtJR1JsWmdvdmNHOXBiblFnZXlBZ0lDQnVaWGR3WVhSb0lDQWdJRElnTUNBek5qQWdZWEpqSUdacGJHeDlJR1JsWmk5dFlXdGxkbVZqSUhzS0lDQWdJQzlaSUdWNFkyZ2daR1ZtQ2lBZ0lDQXZXQ0JsZUdOb0lHUmxaZ29nSUNBZ0wza2da''@;'; + put 'put ''WGhqYUNCa1pXWUtJQ0FnSUM5NElHVjRZMmdnWkdWbUNpQWdJQ0J1Wlhkd1lYUm9JSGdnZVNCdGIzWmxkRzhLSUNBZ0lGZ2dXU0JzYVc1bGRHOGdjM1J5YjJ0bENpQWdJQ0JZSUZrZ2JXOTJaWFJ2Q2lBZ0lDQjRJSGtnYldGclpXRnljbTkzQ24wZ1pHVm1DZ0JzYjNOMElDVnpJQ1Z6SUdWa1oy''@;'; + put 'put ''VUtBRzV2SUhCdmMybDBhVzl1SUdadmNpQmxaR2RsSUhkcGRHZ2diR0ZpWld3Z0pYTUFibThnY0c5emFYUnBiMjRnWm05eUlHVmtaMlVnZDJsMGFDQjBZV2xzSUd4aFltVnNJQ1Z6QUc1dklIQnZjMmwwYVc5dUlHWnZjaUJsWkdkbElIZHBkR2dnYUdWaFpDQnNZV0psYkNBbGN3QnVieUJ3YjNO''@;'; + put 'put ''cGRHbHZiaUJtYjNJZ1pXUm5aU0IzYVhSb0lIaHNZV0psYkNBbGN3Qm1iM0pqWld4aFltVnNjd0FsWkNCdmRYUWdiMllnSldRZ2JHRmlaV3h6SUhCdmMybDBhVzl1WldRdUNnQWxaQ0J2ZFhRZ2IyWWdKV1FnWlhoMFpYSnBiM0lnYkdGaVpXeHpJSEJ2YzJsMGFXOXVaV1F1Q2dBbFpDQnZZbXB6''@;'; + put 'put ''SUNWa0lIaHNZV0psYkhNZ1ptOXlZMlU5SldRZ1ltSTlLQ1V1TURKbUxDVXVNREptS1NBb0pTNHdNbVlzSlM0d01tWXBDZ0J2WW1wbFkzUnpDZ0FnV3lWa1hTQW9KUzR3TW1Zc0pTNHdNbVlwSUNnbExqQXlaaXdsTGpBeVppa2dKWEFnSWlWeklnb0FlR3hoWW1Wc2N3b0FJRnNsWkYwZ0pYQWdj''@;'; + put 'put ''MlYwSUNWa0lDZ2xMakF5Wml3bExqQXlaaWtnS0NVdU1ESm1MQ1V1TURKbUtTQWxjd29BYzJoaGNHVm1hV3hsSUc1dmRDQnpaWFFnYjNJZ2JtOTBJR1p2ZFc1a0lHWnZjaUJsY0hObUlHNXZaR1VnSlhNS0FHTnZkV3hrYmlkMElHOXdaVzRnWlhCelppQm1hV3hsSUNWekNnQWxKU1VsUW05MWJt''@;'; + put 'put ''UnBibWRDYjNnNklDVmtJQ1ZrSUNWa0lDVmtBSEpsWVdRQVFtOTFibVJwYm1kQ2IzZ2dibTkwSUdadmRXNWtJR2x1SUdWd2MyWWdabWxzWlNBbGN3b0FZMkZ1SjNRZ1ptbHVaQ0JzYVdKeVlYSjVJR1pwYkdVZ0pYTUtBR05oYmlkMElHOXdaVzRnYkdsaWNtRnllU0JtYVd4bElDVnpDZ0JGVDBZ''@;'; + put 'put ''QVFrVkhTVTRBUlU1RUFGUlNRVWxNUlZJQUwzVnpaWEpmYzJoaGNHVmZKV1FnZXdvQUpTVkNaV2RwYmtSdlkzVnRaVzUwT2dvQUpTVkZibVJFYjJOMWJXVnVkQW9BZlNCaWFXNWtJR1JsWmdvQVZWUkdMVGdnYVc1d2RYUWdkWE5sY3lCdWIyNHRUR0YwYVc0eElHTm9ZWEpoWTNSbGNuTWdkMmhw''@;'; + put 'put ''WTJnZ1kyRnVibTkwSUdKbElHaGhibVJzWldRZ1lua2dkR2hwY3lCUWIzTjBVMk55YVhCMElHUnlhWFpsY2dvQVkyRnVibTkwSUhKbExXRnNiRzlqWVhSbElIQnpDZ0J5YjNWMFpYTndiR2x1WlhOcGJtbDBPaUJqWVc1dWIzUWdZV3hzYjJOaGRHVWdjSE1LQUhKdmRYUmxjM0JzYVc1bGN6b2dK''@;'; + put 'put ''V1FnWldSblpYTXNJQ1ZrSUdKdmVHVnpJQ1V1TW1ZZ2MyVmpDZ0JwYmlCeWIzVjBaWE53YkdsdVpYTXNJR05oYm01dmRDQm1hVzVrSUU1UFVrMUJUQ0JsWkdkbENnQnBiaUJ5YjNWMFpYTndiR2x1WlhNc0lHbHNiR1ZuWVd3Z2RtRnNkV1Z6SUc5bUlIQnlaWFlnSldRZ1lXNWtJRzVsZUhRZ0pX''@;'; + put 'put ''UXNJR3hwYm1VZ0pXUUtBR2x1SUhKdmRYUmxjM0JzYVc1bGN5d2daV1JuWlNCcGN5QmhJR3h2YjNBZ1lYUWdKWE1LQUdsdUlISnZkWFJsYzNCc2FXNWxjeXdnVUhOb2IzSjBaWE4wY0dGMGFDQm1ZV2xzWldRS0FHbHVJSEp2ZFhSbGMzQnNhVzVsY3l3Z1VISnZkWFJsYzNCc2FXNWxJR1poYVd4''@;'; + put 'put ''bFpBb0FWVzVoWW14bElIUnZJSEpsWTJ4aGFXMGdZbTk0SUhOd1lXTmxJR2x1SUhOd2JHbHVaU0J5YjNWMGFXNW5JR1p2Y2lCbFpHZGxJQ0lsY3lJZ0xUNGdJaVZ6SWk0Z1UyOXRaWFJvYVc1bklHbHpJSEJ5YjJKaFlteDVJSE5sY21sdmRYTnNlU0IzY205dVp5NEtBR2x1SUdOb1pXTnJjR0Yw''@;'; + put 'put ''YUN3Z1ltOTRJREFnYUdGeklFeE1JR052YjNKa0lENGdWVklnWTI5dmNtUUtBR2x1SUdOb1pXTnJjR0YwYUN3Z1ltOTRJQ1ZrSUdoaGN5Qk1UQ0JqYjI5eVpDQStJRlZTSUdOdmIzSmtDZ0JwYmlCamFHVmphM0JoZEdnc0lHSnZlR1Z6SUNWa0lHRnVaQ0FsWkNCa2IyNG5kQ0IwYjNWamFBb0Fh''@;'; + put 'put ''VzRnWTJobFkydHdZWFJvTENCemRHRnlkQ0J3YjNKMElHNXZkQ0JwYmlCbWFYSnpkQ0JpYjNnS0FHbHVJR05vWldOcmNHRjBhQ3dnWlc1a0lIQnZjblFnYm05MElHbHVJR3hoYzNRZ1ltOTRDZ0FsWkNCaWIzaGxjem9LQUNWa0lDZ2xMalZuTENBbExqVm5LU3dnS0NVdU5XY3NJQ1V1TldjcENn''@;'; + put 'put ''QmpiMjV6ZEhKaGFXNWxaQUJ1YjNRZ1kyOXVjM1J5WVdsdVpXUUFjM1JoY25RZ2NHOXlkRG9nS0NVdU5XY3NJQ1V1TldjcExDQjBZVzVuWlc1MElHRnVaMnhsT2lBbExqVm5MQ0FsY3dvQVpXNWtJSEJ2Y25RNklDZ2xMalZuTENBbExqVm5LU3dnZEdGdVoyVnVkQ0JoYm1kc1pUb2dKUzQxWnl3''@;'; + put 'put ''Z0pYTUtBSE5wWkdWeklEMDlJRFFBYzJoaGNHVnpMbU1BY205MWJtUmZZMjl5Ym1WeWN3QmlZV1FnYkdGaVpXd2dabTl5YldGMElDVnpDZ0JjVGdCdFlYSm5hVzRBSld4bUxDVnNaZ0J5WldkMWJHRnlBR04xYzNSdmJRQnphR0Z3WldacGJHVUFQRzVwYkQ0QVRtOGdiM0lnYVcxd2NtOXdaWEln''@;'; + put 'put ''YzJoaGNHVm1hV3hsUFNJbGN5SWdabTl5SUc1dlpHVWdJaVZ6SWdvQVRtOGdiM0lnYVcxd2NtOXdaWElnYVcxaFoyVTlJaVZ6SWlCbWIzSWdibTlrWlNBaUpYTWlDZ0JzWVdKbGJHeHZZd0J1YjJSbElDY2xjeWNzSUdkeVlYQm9JQ2NsY3ljZ2MybDZaU0IwYjI4Z2MyMWhiR3dnWm05eUlHeGhZ''@;'; + put 'put ''bVZzQ2dCbGNITm1BSFZ6YVc1bklDVnpJR1p2Y2lCMWJtdHViM2R1SUhOb1lYQmxJQ1Z6Q2dCd2IyeDVaMjl1QUc5MllXd0FZMmx5WTJ4bEFIQnZhVzUwQUdWblp3QjBjbWxoYm1kc1pRQndiR0ZwYm5SbGVIUUFjR3hoYVc0QVpHbGhiVzl1WkFCMGNtRndaWHBwZFcwQWNHRnlZV3hzWld4dloz''@;'; + put 'put ''SmhiUUJvYjNWelpRQndaVzUwWVdkdmJnQm9aWGhoWjI5dUFITmxjSFJoWjI5dUFHOWpkR0ZuYjI0QWJtOTBaUUIwWVdJQVptOXNaR1Z5QUdKdmVETmtBR052YlhCdmJtVnVkQUJqZVd4cGJtUmxjZ0J5WldOMEFISmxZM1JoYm1kc1pRQnpjWFZoY21VQVpHOTFZbXhsWTJseVkyeGxBR1J2ZFdK''@;'; + put 'put ''c1pXOWpkR0ZuYjI0QWRISnBjR3hsYjJOMFlXZHZiZ0JwYm5aMGNtbGhibWRzWlFCcGJuWjBjbUZ3WlhwcGRXMEFhVzUyYUc5MWMyVUFkVzVrWlhKc2FXNWxBRTFrYVdGdGIyNWtBRTF6Y1hWaGNtVUFUV05wY21Oc1pRQndjbTl0YjNSbGNnQmpaSE1BZEdWeWJXbHVZWFJ2Y2dCMWRISUFhVzV6''@;'; + put 'put ''ZFd4aGRHOXlBSEpwWW05emFYUmxBSEp1WVhOMFlXSUFjSEp2ZEdWaGMyVnphWFJsQUhCeWIzUmxhVzV6ZEdGaUFIQnlhVzFsY25OcGRHVUFjbVZ6ZEhKcFkzUnBiMjV6YVhSbEFHWnBkbVZ3YjNabGNtaGhibWNBZEdoeVpXVndiM1psY21oaGJtY0FibTkyWlhKb1lXNW5BR0Z6YzJWdFlteDVB''@;'; + put 'put ''SE5wWjI1aGRIVnlaUUJ5Y0hKdmJXOTBaWElBYkdGeWNtOTNBSEpoY25KdmR3QnNjSEp2Ylc5MFpYSUFjbVZqYjNKa0FFMXlaV052Y21RQWMzUmhjZ0FqT0RBNE1EZ3dBQ05tWTJaalptTUFJek13TXpBek1BQWpaVGhsT0dVNEFDTmxNR1V3WlRBQUkyWXdaakJtTUFBak1UQXhNREV3QUNObU9H''@;'; + put 'put ''WTRaamdBYVc0Z2JtOWtaU0FsY3dvQWNtOTFibVJsWkFCa2FXRm5iMjVoYkhNQWNtRmthV0ZzQUhOMGNtbHdaV1FBZDJWa1oyVmtBRjhBYm05a1pTQWxjeXdnY0c5eWRDQWxjeXdnZFc1eVpXTnZaMjVwZW1Wa0lHTnZiWEJoYzNNZ2NHOXBiblFnSnlWekp5QXRJR2xuYm05eVpXUUtBRzV2WkdV''@;'; + put 'put ''Z0pYTXNJSEJ2Y25RZ0pYTWdkVzV5WldOdloyNXBlbVZrQ2dBbExqVm5JQ1V1TldjZ2RISmhibk5zWVhSbElHNWxkM0JoZEdnZ2RYTmxjbDl6YUdGd1pWOGxaQW9BYVc1MmFYTUFBR1pwYkd4bFpBQUFjd0JsQUhjQWMzQnNhVzVsY3k1akFHSmxaMmx1Y0dGMGFBQlFMVDVsYm1RdWRHaGxkR0Vn''@;'; + put 'put ''UENBeUlDb2dUVjlRU1FCbGJtUndZWFJvQUcxaGEyVlRaV3htUldSblpRQm5aWFJ6Y0d4cGJtVndiMmx1ZEhNNklHNXZJSE53YkdsdVpTQndiMmx1ZEhNZ1lYWmhhV3hoWW14bElHWnZjaUJsWkdkbElDZ2xjeXdsY3lrS0FIQnZiSGxzYVc1bFRXbGtjRzlwYm5RQWMzQmhiaTArWm05dWRBQjBa''@;'; + put 'put ''WGgwYzNCaGJpNWpBSFJsZUhSemNHRnVYM05wZW1VQVptOXVkQzArYm1GdFpRQm1iMjUwYm1GdFpUb2dJaVZ6SWlCeVpYTnZiSFpsWkNCMGJ6b2dKWE1LQUdadmJuUnVZVzFsT2lCMWJtRmliR1VnZEc4Z2NtVnpiMngyWlNBaUpYTWlDZ0JqYjNWeUFHRnlhV0ZzQUdobGJIWmxkR2xqWVFCYmFX''@;'; + put 'put ''NTBaWEp1WVd3Z2RHbHRaWE5kQUZ0cGJuUmxjbTVoYkNCamIzVnlhV1Z5WFFCYmFXNTBaWEp1WVd3Z1lYSnBZV3hkQUVGMllXNTBSMkZ5WkdVdFFtOXZhd0JWVWxjZ1IyOTBhR2xqSUV3QVltOXZhd0J6WVc1ekxWTmxjbWxtQUVGMllXNTBSMkZ5WkdVdFFtOXZhMDlpYkdseGRXVUFiMkpzYVhG''@;'; + put 'put ''MVpRQnBkR0ZzYVdNQVFYWmhiblJIWVhKa1pTMUVaVzFwQUdSbGJXa0FRWFpoYm5SSFlYSmtaUzFFWlcxcFQySnNhWEYxWlFCQ2IyOXJiV0Z1TFVSbGJXa0FWVkpYSUVKdmIydHRZVzRnVEFCelpYSnBaZ0JDYjI5cmJXRnVMVVJsYldsSmRHRnNhV01BUW05dmEyMWhiaTFNYVdkb2RBQnNhV2Rv''@;'; + put 'put ''ZEFCQ2IyOXJiV0Z1TFV4cFoyaDBTWFJoYkdsakFFTnZkWEpwWlhJQWJXOXViM053WVdObEFFTnZkWEpwWlhJdFFtOXNaQUJEYjNWeWFXVnlMVUp2YkdSUFlteHBjWFZsQUVOdmRYSnBaWEl0VDJKc2FYRjFaUUJJWld4MlpYUnBZMkVBU0dWc2RtVjBhV05oTFVKdmJHUUFTR1ZzZG1WMGFXTmhM''@;'; + put 'put ''VUp2YkdSUFlteHBjWFZsQUVobGJIWmxkR2xqWVMxT1lYSnliM2NBWTI5dVpHVnVjMlZrQUVobGJIWmxkR2xqWVMxT1lYSnliM2N0UW05c1pBQklaV3gyWlhScFkyRXRUbUZ5Y205M0xVSnZiR1JQWW14cGNYVmxBRWhsYkhabGRHbGpZUzFPWVhKeWIzY3RUMkpzYVhGMVpRQklaV3gyWlhScFky''@;'; + put 'put ''RXRUMkpzYVhGMVpRQk9aWGREWlc1MGRYSjVVMk5vYkdKckxVSnZiR1FBUTJWdWRIVnllU0JUWTJodmIyeGliMjlySUV3QVRtVjNRMlZ1ZEhWeWVWTmphR3hpYXkxQ2IyeGtTWFJoYkdsakFFNWxkME5sYm5SMWNubFRZMmhzWW1zdFNYUmhiR2xqQUU1bGQwTmxiblIxY25sVFkyaHNZbXN0VW05''@;'; + put 'put ''dFlXNEFjbTl0WVc0QVVHRnNZWFJwYm04dFFtOXNaQUJRWVd4aGRHbHVieUJNYVc1dmRIbHdaUUJRWVd4aGRHbHVieTFDYjJ4a1NYUmhiR2xqQUZCaGJHRjBhVzV2TFVsMFlXeHBZd0JRWVd4aGRHbHVieTFTYjIxaGJnQlRlVzFpYjJ3QVptRnVkR0Z6ZVFCVWFXMWxjeTFDYjJ4a0FGUnBiV1Z6''@;'; + put 'put ''QUZScGJXVnpMVUp2YkdSSmRHRnNhV01BVkdsdFpYTXRTWFJoYkdsakFGcGhjR1pEYUdGdVkyVnllUzFOWldScGRXMUpkR0ZzYVdNQVZWSlhJRU5vWVc1alpYSjVJRXdBYldWa2FYVnRBRnBoY0daRWFXNW5ZbUYwY3dCRWFXNW5ZbUYwY3dCcGJuQjFkSE5qWVd4bEFHNXZBSFJ5ZFdVQWVXVnpB''@;'; + put 'put ''SFYwYVd4ekxtTUFkU0E5UFNCVlJsOW1hVzVrS0hVcEFGVkdYM05sZEc1aGJXVUFBV1pwYkdVZ2JHOWhaR2x1WnlCcGN5QmthWE5oWW14bFpDQmlaV05oZFhObElIUm9aU0JsYm5acGNtOXViV1Z1ZENCamIyNTBZV2x1Y3lCVFJWSldSVkpmVGtGTlJUMGlKWE1pQ21GdVpDQjBhR1VnUjFaZlJr''@;'; + put 'put ''bE1SVjlRUVZSSUlIWmhjbWxoWW14bElHbHpJSFZ1YzJWMElHOXlJR1Z0Y0hSNUxnb0FVR0YwYUNCd2NtOTJhV1JsWkNCMGJ5Qm1hV3hsT2lBaUpYTWlJR2hoY3lCaVpXVnVJR2xuYm05eVpXUWdZbVZqWVhWelpTQm1hV3hsY3lCaGNtVWdiMjVzZVNCd1pYSnRhWFIwWldRZ2RHOGdZbVVnYkc5''@;'; + put 'put ''aFpHVmtJR1p5YjIwZ2RHaGxJR1JwY21WamRHOXlhV1Z6SUdsdUlDSWxjeUlnZDJobGJpQnlkVzV1YVc1bklHbHVJR0Z1SUdoMGRIQWdjMlZ5ZG1WeUxnb0FKWE1sY3lWekFDOEFPZ0JsYkd4cGNITmxBRlJwYldWekxWSnZiV0Z1QUdOc2RYTjBaWElBWDE5amJIVnpkR1Z5Ym05a1pYTUFZMngx''@;'; + put 'put ''YzNSbGNpQmplV05zWlNBbGN5QXRMU0FsY3lCdWIzUWdjM1Z3Y0c5eWRHVmtDZ0IwWVdsc0lHTnNkWE4wWlhJZ0pYTWdhVzV6YVdSbElHaGxZV1FnWTJ4MWMzUmxjaUFsY3dvQWFHVmhaQ0JqYkhWemRHVnlJQ1Z6SUdsdWMybGtaU0IwWVdsc0lHTnNkWE4wWlhJZ0pYTUtBSFJoYVd3Z2JtOWta''@;'; + put 'put ''U0FsY3lCcGJuTnBaR1VnYUdWaFpDQmpiSFZ6ZEdWeUlDVnpDZ0JvWldGa0lHNXZaR1VnSlhNZ2FXNXphV1JsSUhSaGFXd2dZMngxYzNSbGNpQWxjd29BWDE4QWJHRmlaV3dBYzJoaGNHVUFZbTk0QUZSM2J5QmpiSFZ6ZEdWeWN5QnVZVzFsWkNBbGN5QXRJSFJvWlNCelpXTnZibVFnZDJsc2JD''@;'; + put 'put ''QmlaU0JwWjI1dmNtVmtDZ0J0WVhCT0FFRkZiR2xuQUVGaFkzVjBaUUJCWTJseVl3QkJaM0poZG1VQVFXeHdhR0VBUVhKcGJtY0FRWFJwYkdSbEFFRjFiV3dBUW1WMFlRQkRZMlZrYVd3QVEyaHBBRVJoWjJkbGNnQkVaV3gwWVFCRlZFZ0FSV0ZqZFhSbEFFVmphWEpqQUVWbmNtRjJaUUJGY0hO''@;'; + put 'put ''cGJHOXVBRVYwWVFCRmRXMXNBRWRoYlcxaEFFbGhZM1YwWlFCSlkybHlZd0JKWjNKaGRtVUFTVzkwWVFCSmRXMXNBRXRoY0hCaEFFeGhiV0prWVFCTmRRQk9kR2xzWkdVQVRuVUFUMFZzYVdjQVQyRmpkWFJsQUU5amFYSmpBRTluY21GMlpRQlBiV1ZuWVFCUGJXbGpjbTl1QUU5emJHRnphQUJQ''@;'; + put 'put ''ZEdsc1pHVUFUM1Z0YkFCUWFHa0FVR2tBVUhKcGJXVUFVSE5wQUZKb2J3QlRZMkZ5YjI0QVUybG5iV0VBVkVoUFVrNEFWR0YxQUZSb1pYUmhBRlZoWTNWMFpRQlZZMmx5WXdCVlozSmhkbVVBVlhCemFXeHZiZ0JWZFcxc0FGaHBBRmxoWTNWMFpRQlpkVzFzQUZwbGRHRUFZV0ZqZFhSbEFHRmph''@;'; + put 'put ''WEpqQUdGamRYUmxBR0ZsYkdsbkFHRm5jbUYyWlFCaGJHVm1jM2x0QUdGc2NHaGhBR0Z0Y0FCaGJtUUFZVzVuQUdGeWFXNW5BR0Z6ZVcxd0FHRjBhV3hrWlFCaGRXMXNBR0prY1hWdkFHSmxkR0VBWW5KMlltRnlBR0oxYkd3QVkyRndBR05qWldScGJBQmpaV1JwYkFCalpXNTBBR05vYVFCamFY''@;'; + put 'put ''SmpBR05zZFdKekFHTnZibWNBWTI5d2VRQmpjbUZ5Y2dCamRYQUFZM1Z5Y21WdUFHUkJjbklBWkdGbloyVnlBR1JoY25JQVpHVm5BR1JsYkhSaEFHUnBZVzF6QUdScGRtbGtaUUJsWVdOMWRHVUFaV05wY21NQVpXZHlZWFpsQUdWdGNIUjVBR1Z0YzNBQVpXNXpjQUJsY0hOcGJHOXVBR1Z4ZFds''@;'; + put 'put ''MkFHVjBZUUJsZEdnQVpYVnRiQUJsZFhKdkFHVjRhWE4wQUdadWIyWUFabTl5WVd4c0FHWnlZV014TWdCbWNtRmpNVFFBWm5KaFl6TTBBR1p5WVhOc0FHZGhiVzFoQUdkbEFHZDBBR2hCY25JQWFHRnljZ0JvWldGeWRITUFhR1ZzYkdsd0FHbGhZM1YwWlFCcFkybHlZd0JwWlhoamJBQnBaM0po''@;'; + put 'put ''ZG1VQWFXMWhaMlVBYVc1bWFXNEFhVzUwQUdsdmRHRUFhWEYxWlhOMEFHbHphVzRBYVhWdGJBQnJZWEJ3WVFCc1FYSnlBR3hoYldKa1lRQnNZVzVuQUd4aGNYVnZBR3hoY25JQWJHTmxhV3dBYkdSeGRXOEFiR1VBYkdac2IyOXlBR3h2ZDJGemRBQnNiM29BYkhKdEFHeHpZWEYxYndCc2MzRjFi''@;'; + put 'put ''d0JzZEFCdFlXTnlBRzFrWVhOb0FHMXBZM0p2QUcxcFpHUnZkQUJ0ZFFCdVlXSnNZUUJ1WW5Od0FHNWtZWE5vQUc1bEFHNXBBRzV2ZEFCdWIzUnBiZ0J1YzNWaUFHNTBhV3hrWlFCdWRRQnZZV04xZEdVQWIyTnBjbU1BYjJWc2FXY0FiMmR5WVhabEFHOXNhVzVsQUc5dFpXZGhBRzl0YVdOeWIy''@;'; + put 'put ''NEFiM0JzZFhNQWIzSUFiM0prWmdCdmNtUnRBRzl6YkdGemFBQnZkR2xzWkdVQWIzUnBiV1Z6QUc5MWJXd0FjR0Z5WVFCd1lYSjBBSEJsY20xcGJBQndaWEp3QUhCb2FRQndhUUJ3YVhZQWNHeDFjMjF1QUhCdmRXNWtBSEJ5YVcxbEFIQnliMlFBY0hKdmNBQndjMmtBY1hWdmRBQnlRWEp5QUhK''@;'; + put 'put ''aFpHbGpBSEpoYm1jQWNtRnhkVzhBY21GeWNnQnlZMlZwYkFCeVpIRjFid0J5WldGc0FISmxad0J5Wm14dmIzSUFjbWh2QUhKc2JRQnljMkZ4ZFc4QWNuTnhkVzhBYzJKeGRXOEFjMk5oY205dUFITmtiM1FBYzJWamRBQnphSGtBYzJsbmJXRUFjMmxuYldGbUFITnBiUUJ6Y0dGa1pYTUFjM1Zp''@;'; + put 'put ''QUhOMVltVUFjM1Z0QUhOMWNBQnpkWEF4QUhOMWNESUFjM1Z3TXdCemRYQmxBSE42YkdsbkFIUmhkUUIwYUdWeVpUUUFkR2hsZEdFQWRHaGxkR0Z6ZVcwQWRHaHBibk53QUhSb2IzSnVBSFJwYkdSbEFIUnBiV1Z6QUhSeVlXUmxBSFZCY25JQWRXRmpkWFJsQUhWaGNuSUFkV05wY21NQWRXZHlZ''@;'; + put 'put ''WFpsQUhWdGJBQjFjSE5wYUFCMWNITnBiRzl1QUhWMWJXd0FkMlZwWlhKd0FIaHBBSGxoWTNWMFpRQjVaVzRBZVhWdGJBQjZaWFJoQUhwM2FnQjZkMjVxQUZWVVJqZ2dZMjlrWlhNZ1BpQTBJR0o1ZEdWeklHRnlaU0J1YjNRZ1kzVnljbVZ1ZEd4NUlITjFjSEJ2Y25SbFpDQW9aM0poY0dnZ0pY''@;'; + put 'put ''TXBJQzBnZEhKbFlYUmxaQ0JoY3lCTVlYUnBiaTB4TGlCUVpYSm9ZWEJ6SUNJdFIyTm9ZWEp6WlhROWJHRjBhVzR4SWlCcGN5QnVaV1ZrWldRL0NnQkpiblpoYkdsa0lDVmtMV0o1ZEdVZ1ZWUkdPQ0JtYjNWdVpDQnBiaUJwYm5CMWRDQnZaaUJuY21Gd2FDQWxjeUF0SUhSeVpXRjBaV1FnWVhN''@;'; + put 'put ''Z1RHRjBhVzR0TVM0Z1VHVnlhR0Z3Y3lBaUxVZGphR0Z5YzJWMFBXeGhkR2x1TVNJZ2FYTWdibVZsWkdWa1B3b0FZbm91YzJsNlpRQnZkbVZ5YkdGd1gySmxlbWxsY2dCMWNuWmxaQUJ2YlhCdmRXNWtBR0ZzYzJVQWFXNWxBRzl1WlFCdkFISjBhRzhBYjJ4NWJHbHVaUUJ3YkdsdVpRQnlkV1VB''@;'; + put 'put ''WlhNQVZXNXJibTkzYmlBaWMzQnNhVzVsY3lJZ2RtRnNkV1U2SUNJbGN5SWdMU0JwWjI1dmNtVmtDZ0J6Y0d4cGJtVnpBRzlrWWdCUGNuUm9iMmR2Ym1Gc0lHVmtaMlZ6SUdSdklHNXZkQ0JqZFhKeVpXNTBiSGtnYUdGdVpHeGxJR1ZrWjJVZ2JHRmlaV3h6TGlCVWNua2dkWE5wYm1jZ2VHeGhZ''@;'; + put 'put ''bVZzY3k0S0FHOXlkR2h2SUNWeklDVnpDZ0JqYUdGdWFRQnZjblJvYnk1akFHTm9ZVzVUWldGeVkyZ0FZM0FBSlNVaFVGTXRRV1J2WW1VdE1pNHdDaVVsSlNWQ2IzVnVaR2x1WjBKdmVEb2dLR0YwWlc1a0tRb3ZjRzlwYm5RZ2V3b2dJQzlaSUdWNFkyZ2daR1ZtQ2lBZ0wxZ2daWGhqYUNCa1pX''@;'; + put 'put ''WUtJQ0J1Wlhkd1lYUm9DaUFnV0NCWklETWdNQ0F6TmpBZ1lYSmpJR1pwYkd3S2ZTQmtaV1lLTDJObGJHd2dld29nSUM5WklHVjRZMmdnWkdWbUNpQWdMMWdnWlhoamFDQmtaV1lLSUNBdmVTQmxlR05vSUdSbFpnb2dJQzk0SUdWNFkyZ2daR1ZtQ2lBZ2JtVjNjR0YwYUFvZ0lIZ2dlU0J0YjNa''@;'; + put 'put ''bGRHOEtJQ0I0SUZrZ2JHbHVaWFJ2Q2lBZ1dDQlpJR3hwYm1WMGJ3b2dJRmdnZVNCc2FXNWxkRzhLSUNCamJHOXpaWEJoZEdnZ2MzUnliMnRsQ24wZ1pHVm1DaTl1YjJSbElIc0tJQzkxSUdWNFkyZ2daR1ZtQ2lBdmNpQmxlR05vSUdSbFpnb2dMMlFnWlhoamFDQmtaV1lLSUM5c0lHVjRZMmdn''@;'; + put 'put ''WkdWbUNpQnVaWGR3WVhSb0lHd2daQ0J0YjNabGRHOEtJSElnWkNCc2FXNWxkRzhnY2lCMUlHeHBibVYwYnlCc0lIVWdiR2x1WlhSdkNpQmpiRzl6WlhCaGRHZ2dabWxzYkFwOUlHUmxaZ29LQUNWa0lDVmtJSFJ5WVc1emJHRjBaUW9BTUM0NElEQXVPQ0F3TGpnZ2MyVjBjbWRpWTI5c2IzSUtB''@;'; + put 'put ''SE5vYjNkd1lXZGxDaVVsSlNWVWNtRnBiR1Z5Q2lVbEpTVkNiM1Z1WkdsdVowSnZlRG9nSldRZ0pXUWdKV1FnSldRS0FHNWxkM0JoZEdnZ0pXUWdKV1FnYlc5MlpYUnZDZ0FsWkNBbFpDQnNhVzVsZEc4S0FDVmtJQ1ZrSUd4cGJtVjBieUJ6ZEhKdmEyVUtBR05vWVc1dVpXd2dKV1FnS0NWbUxD''@;'; + put 'put ''Vm1LUW9BSUMwK0NnQWdJQ0FnSUFBb0tDVm1MQ1ZtS1N3b0pXWXNKV1lwS1NBbGN5QWxjd0JDWDFKSlIwaFVBRUpmUkU5WFRnQkNYMHhGUmxRQVFsOVZVQUJDWDA1UFJFVUFjMlZuQUc1bGVIUmZjMlZuQUdSbFkybGtaVjl3YjJsdWRBQnBibU52YlhCaGNtRmliR1VnYzJWbmJXVnVkSE1nSVNF''@;'; + put 'put ''Z0xTMGdRV0p2Y25ScGJtY0tBSE14TFQ1amIyMXRYMk52YjNKa1BUMXpNaTArWTI5dGJWOWpiMjl5WkFCcGMxOXdZWEpoYkd4bGJBQm5jbUZ3YUNCSElIc0tBQ0J1YjJSbFczTm9ZWEJsUFhCdmFXNTBYUW9BSUNBbFpDQmJjRzl6UFNJbFpDd2xaQ0pkQ2dBZ0lDVmtJQzB0SUNWa1cyeGxiajBp''@;'; + put 'put ''SldZaVhRb0FmUW9BWTI5c2IzSWdKWE1BSlhNZ2FYTWdibTkwSUdFZ2EyNXZkMjRnWTI5c2IzSXVDZ0JsY25KdmNpQnBiaUJqYjJ4NGJHRjBaU2dwQ2dCemIyeHBaQUJwYm5acGMybGliR1VBWW05c1pBQnpaWFJzYVc1bGQybGtkR2dBWm1sc2JHVmtBSFZ1Wm1sc2JHVmtBSFJoY0dWeVpXUUFa''@;'; + put 'put ''M1p5Wlc1a1pYSmZjMlYwWDNOMGVXeGxPaUIxYm5OMWNIQnZjblJsWkNCemRIbHNaU0FsY3lBdElHbG5ibTl5YVc1bkNnQm5kbkpsYm1SbGNpNWpBR2QyY21WdVpHVnlYM1Z6WlhKemFHRndaUUJ1WVcxbEFHNWhiV1ZiTUYwQVltOTBhQUJzWVhsdmRYUUFUR0Y1YjNWMElIUjVjR1U2SUNJbGN5''@;'; + put 'put ''SWdibTkwSUhKbFkyOW5ibWw2WldRdUlGVnpaU0J2Ym1VZ2IyWTZKWE1LQUdwdllnQm5kbXh2WVdScGJXRm5aUzVqQUdkMmJHOWhaR2x0WVdkbEFIVnpBSFZ6TFQ1dVlXMWxBSFZ6TFQ1dVlXMWxXekJkQUU1dklHeHZZV1JwYldGblpTQndiSFZuYVc0Z1ptOXlJQ0lsY3lJS0FGRUFUR1ZtZEFC''@;'; + put 'put ''TFVGOU1aV1owQUZKcFoyaDBBRXRRWDFKcFoyaDBBRlZ3QUV0UVgxVndBRVJ2ZDI0QVMxQmZSRzkzYmdCd2JIVnpBRXRRWDBGa1pBQnRhVzUxY3dCTFVGOVRkV0owY21GamRBQkdBR1ZrWjJVQWRHRnBiSEJ2Y25RQWFHVmhaSEJ2Y25RQWEyVjVBRlZTVEFCdWIyUmxBR1JwWjNKaGNHZ0FaM0po''@;'; + put 'put ''Y0dnQWMzVmlaM0poY0dnQVgweFVXRjlzYVdKeVlYSjVBSFJsZUhSc1lYbHZkWFFBYjJKcWNDMCtiR0pzQUhoc1lXSmxiSE11WXdCNGJHRmthblZ6ZEFCNGJHbHVkR1Z5YzJWamRHbHZibk1BYkhBZ0lUMGdZMnh3QUdkbGRHbHVkSEp6ZUdrQWIySnFjREV0UG5ONkxuZ2dQVDBnTUNBbUppQnZZ''@;'; + put 'put ''bXB3TVMwK2Mzb3VlU0E5UFNBd0FHeGliR1Z1WTJ4dmMybHVad0IyY0FCNGJHaGtlSFZ1Ykc5aFpBQnphWHBsUFQxbWNtVmxaQUJ5WldOMExtSnZkVzVrWVhKNVd6SmRJRHdnU1U1VVgwMUJXQUJ2WW1wd2JIQnRhM01BY21WamRDNWliM1Z1WkdGeWVWc3pYU0E4SUVsT1ZGOU5RVmdBYjNWMElH''@;'; + put 'put ''OW1JRzFsYlc5eWVRb0FJeVV5ZUNVeWVDVXllQ1V5ZUFBbGJHWWxiR1lsYkdZQUwyRmpZMlZ1ZERNdk1RQXZZV05qWlc1ME15OHlBQzloWTJObGJuUXpMek1BTDJGalkyVnVkRFF2TVFBdllXTmpaVzUwTkM4eUFDOWhZMk5sYm5RMEx6TUFMMkZqWTJWdWREUXZOQUF2WVdOalpXNTBOUzh4QUM5''@;'; + put 'put ''aFkyTmxiblExTHpJQUwyRmpZMlZ1ZERVdk13QXZZV05qWlc1ME5TODBBQzloWTJObGJuUTFMelVBTDJGalkyVnVkRFl2TVFBdllXTmpaVzUwTmk4eUFDOWhZMk5sYm5RMkx6TUFMMkZqWTJWdWREWXZOQUF2WVdOalpXNTBOaTgxQUM5aFkyTmxiblEyTHpZQUwyRmpZMlZ1ZERjdk1RQXZZV05q''@;'; + put 'put ''Wlc1ME55OHlBQzloWTJObGJuUTNMek1BTDJGalkyVnVkRGN2TkFBdllXTmpaVzUwTnk4MUFDOWhZMk5sYm5RM0x6WUFMMkZqWTJWdWREY3ZOd0F2WVdOalpXNTBPQzh4QUM5aFkyTmxiblE0THpJQUwyRmpZMlZ1ZERndk13QXZZV05qWlc1ME9DODBBQzloWTJObGJuUTRMelVBTDJGalkyVnVk''@;'; + put 'put ''RGd2TmdBdllXTmpaVzUwT0M4M0FDOWhZMk5sYm5RNEx6Z0FMMkpzZFdWek15OHhBQzlpYkhWbGN6TXZNZ0F2WW14MVpYTXpMek1BTDJKc2RXVnpOQzh4QUM5aWJIVmxjelF2TWdBdllteDFaWE0wTHpNQUwySnNkV1Z6TkM4MEFDOWliSFZsY3pVdk1RQXZZbXgxWlhNMUx6SUFMMkpzZFdWek5T''@;'; + put 'put ''OHpBQzlpYkhWbGN6VXZOQUF2WW14MVpYTTFMelVBTDJKc2RXVnpOaTh4QUM5aWJIVmxjell2TWdBdllteDFaWE0yTHpNQUwySnNkV1Z6Tmk4MEFDOWliSFZsY3pZdk5RQXZZbXgxWlhNMkx6WUFMMkpzZFdWek55OHhBQzlpYkhWbGN6Y3ZNZ0F2WW14MVpYTTNMek1BTDJKc2RXVnpOeTgwQUM5''@;'; + put 'put ''aWJIVmxjemN2TlFBdllteDFaWE0zTHpZQUwySnNkV1Z6Tnk4M0FDOWliSFZsY3pndk1RQXZZbXgxWlhNNEx6SUFMMkpzZFdWek9DOHpBQzlpYkhWbGN6Z3ZOQUF2WW14MVpYTTRMelVBTDJKc2RXVnpPQzgyQUM5aWJIVmxjemd2TndBdllteDFaWE00THpnQUwySnNkV1Z6T1M4eEFDOWliSFZs''@;'; + put 'put ''Y3prdk1nQXZZbXgxWlhNNUx6TUFMMkpzZFdWek9TODBBQzlpYkhWbGN6a3ZOUUF2WW14MVpYTTVMellBTDJKc2RXVnpPUzgzQUM5aWJIVmxjemt2T0FBdllteDFaWE01THprQUwySnlZbWN4TUM4eEFDOWljbUpuTVRBdk1UQUFMMkp5WW1jeE1DOHlBQzlpY21Kbk1UQXZNd0F2WW5KaVp6RXdM''@;'; + put 'put ''elFBTDJKeVltY3hNQzgxQUM5aWNtSm5NVEF2TmdBdlluSmlaekV3THpjQUwySnlZbWN4TUM4NEFDOWljbUpuTVRBdk9RQXZZbkppWnpFeEx6RUFMMkp5WW1jeE1TOHhNQUF2WW5KaVp6RXhMekV4QUM5aWNtSm5NVEV2TWdBdlluSmlaekV4THpNQUwySnlZbWN4TVM4MEFDOWljbUpuTVRFdk5R''@;'; + put 'put ''QXZZbkppWnpFeEx6WUFMMkp5WW1jeE1TODNBQzlpY21Kbk1URXZPQUF2WW5KaVp6RXhMemtBTDJKeVltY3pMekVBTDJKeVltY3pMeklBTDJKeVltY3pMek1BTDJKeVltYzBMekVBTDJKeVltYzBMeklBTDJKeVltYzBMek1BTDJKeVltYzBMelFBTDJKeVltYzFMekVBTDJKeVltYzFMeklBTDJK''@;'; + put 'put ''eVltYzFMek1BTDJKeVltYzFMelFBTDJKeVltYzFMelVBTDJKeVltYzJMekVBTDJKeVltYzJMeklBTDJKeVltYzJMek1BTDJKeVltYzJMelFBTDJKeVltYzJMelVBTDJKeVltYzJMellBTDJKeVltYzNMekVBTDJKeVltYzNMeklBTDJKeVltYzNMek1BTDJKeVltYzNMelFBTDJKeVltYzNMelVB''@;'; + put 'put ''TDJKeVltYzNMellBTDJKeVltYzNMemNBTDJKeVltYzRMekVBTDJKeVltYzRMeklBTDJKeVltYzRMek1BTDJKeVltYzRMelFBTDJKeVltYzRMelVBTDJKeVltYzRMellBTDJKeVltYzRMemNBTDJKeVltYzRMemdBTDJKeVltYzVMekVBTDJKeVltYzVMeklBTDJKeVltYzVMek1BTDJKeVltYzVM''@;'; + put 'put ''elFBTDJKeVltYzVMelVBTDJKeVltYzVMellBTDJKeVltYzVMemNBTDJKeVltYzVMemdBTDJKeVltYzVMemtBTDJKMVoyNHpMekVBTDJKMVoyNHpMeklBTDJKMVoyNHpMek1BTDJKMVoyNDBMekVBTDJKMVoyNDBMeklBTDJKMVoyNDBMek1BTDJKMVoyNDBMelFBTDJKMVoyNDFMekVBTDJKMVoy''@;'; + put 'put ''NDFMeklBTDJKMVoyNDFMek1BTDJKMVoyNDFMelFBTDJKMVoyNDFMelVBTDJKMVoyNDJMekVBTDJKMVoyNDJMeklBTDJKMVoyNDJMek1BTDJKMVoyNDJMelFBTDJKMVoyNDJMelVBTDJKMVoyNDJMellBTDJKMVoyNDNMekVBTDJKMVoyNDNMeklBTDJKMVoyNDNMek1BTDJKMVoyNDNMelFBTDJK''@;'; + put 'put ''MVoyNDNMelVBTDJKMVoyNDNMellBTDJKMVoyNDNMemNBTDJKMVoyNDRMekVBTDJKMVoyNDRMeklBTDJKMVoyNDRMek1BTDJKMVoyNDRMelFBTDJKMVoyNDRMelVBTDJKMVoyNDRMellBTDJKMVoyNDRMemNBTDJKMVoyNDRMemdBTDJKMVoyNDVMekVBTDJKMVoyNDVMeklBTDJKMVoyNDVMek1B''@;'; + put 'put ''TDJKMVoyNDVMelFBTDJKMVoyNDVMelVBTDJKMVoyNDVMellBTDJKMVoyNDVMemNBTDJKMVoyNDVMemdBTDJKMVoyNDVMemtBTDJKMWNIVXpMekVBTDJKMWNIVXpMeklBTDJKMWNIVXpMek1BTDJKMWNIVTBMekVBTDJKMWNIVTBMeklBTDJKMWNIVTBMek1BTDJKMWNIVTBMelFBTDJKMWNIVTFM''@;'; + put 'put ''ekVBTDJKMWNIVTFMeklBTDJKMWNIVTFMek1BTDJKMWNIVTFMelFBTDJKMWNIVTFMelVBTDJKMWNIVTJMekVBTDJKMWNIVTJMeklBTDJKMWNIVTJMek1BTDJKMWNIVTJMelFBTDJKMWNIVTJMelVBTDJKMWNIVTJMellBTDJKMWNIVTNMekVBTDJKMWNIVTNMeklBTDJKMWNIVTNMek1BTDJKMWNI''@;'; + put 'put ''VTNMelFBTDJKMWNIVTNMelVBTDJKMWNIVTNMellBTDJKMWNIVTNMemNBTDJKMWNIVTRMekVBTDJKMWNIVTRMeklBTDJKMWNIVTRMek1BTDJKMWNIVTRMelFBTDJKMWNIVTRMelVBTDJKMWNIVTRMellBTDJKMWNIVTRMemNBTDJKMWNIVTRMemdBTDJKMWNIVTVMekVBTDJKMWNIVTVMeklBTDJK''@;'; + put 'put ''MWNIVTVMek1BTDJKMWNIVTVMelFBTDJKMWNIVTVMelVBTDJKMWNIVTVMellBTDJKMWNIVTVMemNBTDJKMWNIVTVMemdBTDJKMWNIVTVMemtBTDJSaGNtc3lNeTh4QUM5a1lYSnJNak12TWdBdlpHRnlhekl6THpNQUwyUmhjbXN5TkM4eEFDOWtZWEpyTWpRdk1nQXZaR0Z5YXpJMEx6TUFMMlJo''@;'; + put 'put ''Y21zeU5DODBBQzlrWVhKck1qVXZNUUF2WkdGeWF6STFMeklBTDJSaGNtc3lOUzh6QUM5a1lYSnJNalV2TkFBdlpHRnlhekkxTHpVQUwyUmhjbXN5Tmk4eEFDOWtZWEpyTWpZdk1nQXZaR0Z5YXpJMkx6TUFMMlJoY21zeU5pODBBQzlrWVhKck1qWXZOUUF2WkdGeWF6STJMellBTDJSaGNtc3lO''@;'; + put 'put ''eTh4QUM5a1lYSnJNamN2TWdBdlpHRnlhekkzTHpNQUwyUmhjbXN5Tnk4MEFDOWtZWEpyTWpjdk5RQXZaR0Z5YXpJM0x6WUFMMlJoY21zeU55ODNBQzlrWVhKck1qZ3ZNUUF2WkdGeWF6STRMeklBTDJSaGNtc3lPQzh6QUM5a1lYSnJNamd2TkFBdlpHRnlhekk0THpVQUwyUmhjbXN5T0M4MkFD''@;'; + put 'put ''OWtZWEpyTWpndk53QXZaR0Z5YXpJNEx6Z0FMMmR1WW5Vekx6RUFMMmR1WW5Vekx6SUFMMmR1WW5Vekx6TUFMMmR1WW5VMEx6RUFMMmR1WW5VMEx6SUFMMmR1WW5VMEx6TUFMMmR1WW5VMEx6UUFMMmR1WW5VMUx6RUFMMmR1WW5VMUx6SUFMMmR1WW5VMUx6TUFMMmR1WW5VMUx6UUFMMmR1WW5V''@;'; + put 'put ''MUx6VUFMMmR1WW5VMkx6RUFMMmR1WW5VMkx6SUFMMmR1WW5VMkx6TUFMMmR1WW5VMkx6UUFMMmR1WW5VMkx6VUFMMmR1WW5VMkx6WUFMMmR1WW5VM0x6RUFMMmR1WW5VM0x6SUFMMmR1WW5VM0x6TUFMMmR1WW5VM0x6UUFMMmR1WW5VM0x6VUFMMmR1WW5VM0x6WUFMMmR1WW5VM0x6Y0FMMmR1''@;'; + put 'put ''WW5VNEx6RUFMMmR1WW5VNEx6SUFMMmR1WW5VNEx6TUFMMmR1WW5VNEx6UUFMMmR1WW5VNEx6VUFMMmR1WW5VNEx6WUFMMmR1WW5VNEx6Y0FMMmR1WW5VNEx6Z0FMMmR1WW5VNUx6RUFMMmR1WW5VNUx6SUFMMmR1WW5VNUx6TUFMMmR1WW5VNUx6UUFMMmR1WW5VNUx6VUFMMmR1WW5VNUx6WUFM''@;'; + put 'put ''MmR1WW5VNUx6Y0FMMmR1WW5VNUx6Z0FMMmR1WW5VNUx6a0FMMmR5WldWdWN6TXZNUUF2WjNKbFpXNXpNeTh5QUM5bmNtVmxibk16THpNQUwyZHlaV1Z1Y3pRdk1RQXZaM0psWlc1ek5DOHlBQzluY21WbGJuTTBMek1BTDJkeVpXVnVjelF2TkFBdlozSmxaVzV6TlM4eEFDOW5jbVZsYm5NMUx6''@;'; + put 'put ''SUFMMmR5WldWdWN6VXZNd0F2WjNKbFpXNXpOUzgwQUM5bmNtVmxibk0xTHpVQUwyZHlaV1Z1Y3pZdk1RQXZaM0psWlc1ek5pOHlBQzluY21WbGJuTTJMek1BTDJkeVpXVnVjell2TkFBdlozSmxaVzV6Tmk4MUFDOW5jbVZsYm5NMkx6WUFMMmR5WldWdWN6Y3ZNUUF2WjNKbFpXNXpOeTh5QUM5''@;'; + put 'put ''bmNtVmxibk0zTHpNQUwyZHlaV1Z1Y3pjdk5BQXZaM0psWlc1ek55ODFBQzluY21WbGJuTTNMellBTDJkeVpXVnVjemN2TndBdlozSmxaVzV6T0M4eEFDOW5jbVZsYm5NNEx6SUFMMmR5WldWdWN6Z3ZNd0F2WjNKbFpXNXpPQzgwQUM5bmNtVmxibk00THpVQUwyZHlaV1Z1Y3pndk5nQXZaM0ps''@;'; + put 'put ''Wlc1ek9DODNBQzluY21WbGJuTTRMemdBTDJkeVpXVnVjemt2TVFBdlozSmxaVzV6T1M4eUFDOW5jbVZsYm5NNUx6TUFMMmR5WldWdWN6a3ZOQUF2WjNKbFpXNXpPUzgxQUM5bmNtVmxibk01THpZQUwyZHlaV1Z1Y3prdk53QXZaM0psWlc1ek9TODRBQzluY21WbGJuTTVMemtBTDJkeVpYbHpN''@;'; + put 'put ''eTh4QUM5bmNtVjVjek12TWdBdlozSmxlWE16THpNQUwyZHlaWGx6TkM4eEFDOW5jbVY1Y3pRdk1nQXZaM0psZVhNMEx6TUFMMmR5Wlhsek5DODBBQzluY21WNWN6VXZNUUF2WjNKbGVYTTFMeklBTDJkeVpYbHpOUzh6QUM5bmNtVjVjelV2TkFBdlozSmxlWE0xTHpVQUwyZHlaWGx6Tmk4eEFD''@;'; + put 'put ''OW5jbVY1Y3pZdk1nQXZaM0psZVhNMkx6TUFMMmR5Wlhsek5pODBBQzluY21WNWN6WXZOUUF2WjNKbGVYTTJMellBTDJkeVpYbHpOeTh4QUM5bmNtVjVjemN2TWdBdlozSmxlWE0zTHpNQUwyZHlaWGx6Tnk4MEFDOW5jbVY1Y3pjdk5RQXZaM0psZVhNM0x6WUFMMmR5Wlhsek55ODNBQzluY21W''@;'; + put 'put ''NWN6Z3ZNUUF2WjNKbGVYTTRMeklBTDJkeVpYbHpPQzh6QUM5bmNtVjVjemd2TkFBdlozSmxlWE00THpVQUwyZHlaWGx6T0M4MkFDOW5jbVY1Y3pndk53QXZaM0psZVhNNEx6Z0FMMmR5Wlhsek9TOHhBQzluY21WNWN6a3ZNZ0F2WjNKbGVYTTVMek1BTDJkeVpYbHpPUzgwQUM5bmNtVjVjemt2''@;'; + put 'put ''TlFBdlozSmxlWE01THpZQUwyZHlaWGx6T1M4M0FDOW5jbVY1Y3prdk9BQXZaM0psZVhNNUx6a0FMMjl5WVc1blpYTXpMekVBTDI5eVlXNW5aWE16THpJQUwyOXlZVzVuWlhNekx6TUFMMjl5WVc1blpYTTBMekVBTDI5eVlXNW5aWE0wTHpJQUwyOXlZVzVuWlhNMEx6TUFMMjl5WVc1blpYTTBM''@;'; + put 'put ''elFBTDI5eVlXNW5aWE0xTHpFQUwyOXlZVzVuWlhNMUx6SUFMMjl5WVc1blpYTTFMek1BTDI5eVlXNW5aWE0xTHpRQUwyOXlZVzVuWlhNMUx6VUFMMjl5WVc1blpYTTJMekVBTDI5eVlXNW5aWE0yTHpJQUwyOXlZVzVuWlhNMkx6TUFMMjl5WVc1blpYTTJMelFBTDI5eVlXNW5aWE0yTHpVQUwy''@;'; + put 'put ''OXlZVzVuWlhNMkx6WUFMMjl5WVc1blpYTTNMekVBTDI5eVlXNW5aWE0zTHpJQUwyOXlZVzVuWlhNM0x6TUFMMjl5WVc1blpYTTNMelFBTDI5eVlXNW5aWE0zTHpVQUwyOXlZVzVuWlhNM0x6WUFMMjl5WVc1blpYTTNMemNBTDI5eVlXNW5aWE00THpFQUwyOXlZVzVuWlhNNEx6SUFMMjl5WVc1''@;'; + put 'put ''blpYTTRMek1BTDI5eVlXNW5aWE00THpRQUwyOXlZVzVuWlhNNEx6VUFMMjl5WVc1blpYTTRMellBTDI5eVlXNW5aWE00THpjQUwyOXlZVzVuWlhNNEx6Z0FMMjl5WVc1blpYTTVMekVBTDI5eVlXNW5aWE01THpJQUwyOXlZVzVuWlhNNUx6TUFMMjl5WVc1blpYTTVMelFBTDI5eVlXNW5aWE01''@;'; + put 'put ''THpVQUwyOXlZVzVuWlhNNUx6WUFMMjl5WVc1blpYTTVMemNBTDI5eVlXNW5aWE01THpnQUwyOXlZVzVuWlhNNUx6a0FMMjl5Y21Rekx6RUFMMjl5Y21Rekx6SUFMMjl5Y21Rekx6TUFMMjl5Y21RMEx6RUFMMjl5Y21RMEx6SUFMMjl5Y21RMEx6TUFMMjl5Y21RMEx6UUFMMjl5Y21RMUx6RUFM''@;'; + put 'put ''Mjl5Y21RMUx6SUFMMjl5Y21RMUx6TUFMMjl5Y21RMUx6UUFMMjl5Y21RMUx6VUFMMjl5Y21RMkx6RUFMMjl5Y21RMkx6SUFMMjl5Y21RMkx6TUFMMjl5Y21RMkx6UUFMMjl5Y21RMkx6VUFMMjl5Y21RMkx6WUFMMjl5Y21RM0x6RUFMMjl5Y21RM0x6SUFMMjl5Y21RM0x6TUFMMjl5Y21RM0x6''@;'; + put 'put ''UUFMMjl5Y21RM0x6VUFMMjl5Y21RM0x6WUFMMjl5Y21RM0x6Y0FMMjl5Y21RNEx6RUFMMjl5Y21RNEx6SUFMMjl5Y21RNEx6TUFMMjl5Y21RNEx6UUFMMjl5Y21RNEx6VUFMMjl5Y21RNEx6WUFMMjl5Y21RNEx6Y0FMMjl5Y21RNEx6Z0FMMjl5Y21RNUx6RUFMMjl5Y21RNUx6SUFMMjl5Y21R''@;'; + put 'put ''NUx6TUFMMjl5Y21RNUx6UUFMMjl5Y21RNUx6VUFMMjl5Y21RNUx6WUFMMjl5Y21RNUx6Y0FMMjl5Y21RNUx6Z0FMMjl5Y21RNUx6a0FMM0JoYVhKbFpERXdMekVBTDNCaGFYSmxaREV3THpFd0FDOXdZV2x5WldReE1DOHlBQzl3WVdseVpXUXhNQzh6QUM5d1lXbHlaV1F4TUM4MEFDOXdZV2x5''@;'; + put 'put ''WldReE1DODFBQzl3WVdseVpXUXhNQzgyQUM5d1lXbHlaV1F4TUM4M0FDOXdZV2x5WldReE1DODRBQzl3WVdseVpXUXhNQzg1QUM5d1lXbHlaV1F4TVM4eEFDOXdZV2x5WldReE1TOHhNQUF2Y0dGcGNtVmtNVEV2TVRFQUwzQmhhWEpsWkRFeEx6SUFMM0JoYVhKbFpERXhMek1BTDNCaGFYSmxa''@;'; + put 'put ''REV4THpRQUwzQmhhWEpsWkRFeEx6VUFMM0JoYVhKbFpERXhMellBTDNCaGFYSmxaREV4THpjQUwzQmhhWEpsWkRFeEx6Z0FMM0JoYVhKbFpERXhMemtBTDNCaGFYSmxaREV5THpFQUwzQmhhWEpsWkRFeUx6RXdBQzl3WVdseVpXUXhNaTh4TVFBdmNHRnBjbVZrTVRJdk1USUFMM0JoYVhKbFpE''@;'; + put 'put ''RXlMeklBTDNCaGFYSmxaREV5THpNQUwzQmhhWEpsWkRFeUx6UUFMM0JoYVhKbFpERXlMelVBTDNCaGFYSmxaREV5THpZQUwzQmhhWEpsWkRFeUx6Y0FMM0JoYVhKbFpERXlMemdBTDNCaGFYSmxaREV5THprQUwzQmhhWEpsWkRNdk1RQXZjR0ZwY21Wa015OHlBQzl3WVdseVpXUXpMek1BTDNC''@;'; + put 'put ''aGFYSmxaRFF2TVFBdmNHRnBjbVZrTkM4eUFDOXdZV2x5WldRMEx6TUFMM0JoYVhKbFpEUXZOQUF2Y0dGcGNtVmtOUzh4QUM5d1lXbHlaV1ExTHpJQUwzQmhhWEpsWkRVdk13QXZjR0ZwY21Wa05TODBBQzl3WVdseVpXUTFMelVBTDNCaGFYSmxaRFl2TVFBdmNHRnBjbVZrTmk4eUFDOXdZV2x5''@;'; + put 'put ''WldRMkx6TUFMM0JoYVhKbFpEWXZOQUF2Y0dGcGNtVmtOaTgxQUM5d1lXbHlaV1EyTHpZQUwzQmhhWEpsWkRjdk1RQXZjR0ZwY21Wa055OHlBQzl3WVdseVpXUTNMek1BTDNCaGFYSmxaRGN2TkFBdmNHRnBjbVZrTnk4MUFDOXdZV2x5WldRM0x6WUFMM0JoYVhKbFpEY3ZOd0F2Y0dGcGNtVmtP''@;'; + put 'put ''Qzh4QUM5d1lXbHlaV1E0THpJQUwzQmhhWEpsWkRndk13QXZjR0ZwY21Wa09DODBBQzl3WVdseVpXUTRMelVBTDNCaGFYSmxaRGd2TmdBdmNHRnBjbVZrT0M4M0FDOXdZV2x5WldRNEx6Z0FMM0JoYVhKbFpEa3ZNUUF2Y0dGcGNtVmtPUzh5QUM5d1lXbHlaV1E1THpNQUwzQmhhWEpsWkRrdk5B''@;'; + put 'put ''QXZjR0ZwY21Wa09TODFBQzl3WVdseVpXUTVMellBTDNCaGFYSmxaRGt2TndBdmNHRnBjbVZrT1M4NEFDOXdZV2x5WldRNUx6a0FMM0JoYzNSbGJERXpMekVBTDNCaGMzUmxiREV6THpJQUwzQmhjM1JsYkRFekx6TUFMM0JoYzNSbGJERTBMekVBTDNCaGMzUmxiREUwTHpJQUwzQmhjM1JsYkRF''@;'; + put 'put ''MEx6TUFMM0JoYzNSbGJERTBMelFBTDNCaGMzUmxiREUxTHpFQUwzQmhjM1JsYkRFMUx6SUFMM0JoYzNSbGJERTFMek1BTDNCaGMzUmxiREUxTHpRQUwzQmhjM1JsYkRFMUx6VUFMM0JoYzNSbGJERTJMekVBTDNCaGMzUmxiREUyTHpJQUwzQmhjM1JsYkRFMkx6TUFMM0JoYzNSbGJERTJMelFB''@;'; + put 'put ''TDNCaGMzUmxiREUyTHpVQUwzQmhjM1JsYkRFMkx6WUFMM0JoYzNSbGJERTNMekVBTDNCaGMzUmxiREUzTHpJQUwzQmhjM1JsYkRFM0x6TUFMM0JoYzNSbGJERTNMelFBTDNCaGMzUmxiREUzTHpVQUwzQmhjM1JsYkRFM0x6WUFMM0JoYzNSbGJERTNMemNBTDNCaGMzUmxiREU0THpFQUwzQmhj''@;'; + put 'put ''M1JsYkRFNEx6SUFMM0JoYzNSbGJERTRMek1BTDNCaGMzUmxiREU0THpRQUwzQmhjM1JsYkRFNEx6VUFMM0JoYzNSbGJERTRMellBTDNCaGMzUmxiREU0THpjQUwzQmhjM1JsYkRFNEx6Z0FMM0JoYzNSbGJERTVMekVBTDNCaGMzUmxiREU1THpJQUwzQmhjM1JsYkRFNUx6TUFMM0JoYzNSbGJE''@;'; + put 'put ''RTVMelFBTDNCaGMzUmxiREU1THpVQUwzQmhjM1JsYkRFNUx6WUFMM0JoYzNSbGJERTVMemNBTDNCaGMzUmxiREU1THpnQUwzQmhjM1JsYkRFNUx6a0FMM0JoYzNSbGJESXpMekVBTDNCaGMzUmxiREl6THpJQUwzQmhjM1JsYkRJekx6TUFMM0JoYzNSbGJESTBMekVBTDNCaGMzUmxiREkwTHpJ''@;'; + put 'put ''QUwzQmhjM1JsYkRJMEx6TUFMM0JoYzNSbGJESTBMelFBTDNCaGMzUmxiREkxTHpFQUwzQmhjM1JsYkRJMUx6SUFMM0JoYzNSbGJESTFMek1BTDNCaGMzUmxiREkxTHpRQUwzQmhjM1JsYkRJMUx6VUFMM0JoYzNSbGJESTJMekVBTDNCaGMzUmxiREkyTHpJQUwzQmhjM1JsYkRJMkx6TUFMM0Jo''@;'; + put 'put ''YzNSbGJESTJMelFBTDNCaGMzUmxiREkyTHpVQUwzQmhjM1JsYkRJMkx6WUFMM0JoYzNSbGJESTNMekVBTDNCaGMzUmxiREkzTHpJQUwzQmhjM1JsYkRJM0x6TUFMM0JoYzNSbGJESTNMelFBTDNCaGMzUmxiREkzTHpVQUwzQmhjM1JsYkRJM0x6WUFMM0JoYzNSbGJESTNMemNBTDNCaGMzUmxi''@;'; + put 'put ''REk0THpFQUwzQmhjM1JsYkRJNEx6SUFMM0JoYzNSbGJESTRMek1BTDNCaGMzUmxiREk0THpRQUwzQmhjM1JsYkRJNEx6VUFMM0JoYzNSbGJESTRMellBTDNCaGMzUmxiREk0THpjQUwzQmhjM1JsYkRJNEx6Z0FMM0JwZVdjeE1DOHhBQzl3YVhsbk1UQXZNVEFBTDNCcGVXY3hNQzh5QUM5d2FY''@;'; + put 'put ''bG5NVEF2TXdBdmNHbDVaekV3THpRQUwzQnBlV2N4TUM4MUFDOXdhWGxuTVRBdk5nQXZjR2w1WnpFd0x6Y0FMM0JwZVdjeE1DODRBQzl3YVhsbk1UQXZPUUF2Y0dsNVp6RXhMekVBTDNCcGVXY3hNUzh4TUFBdmNHbDVaekV4THpFeEFDOXdhWGxuTVRFdk1nQXZjR2w1WnpFeEx6TUFMM0JwZVdj''@;'; + put 'put ''eE1TODBBQzl3YVhsbk1URXZOUUF2Y0dsNVp6RXhMellBTDNCcGVXY3hNUzgzQUM5d2FYbG5NVEV2T0FBdmNHbDVaekV4THprQUwzQnBlV2N6THpFQUwzQnBlV2N6THpJQUwzQnBlV2N6THpNQUwzQnBlV2MwTHpFQUwzQnBlV2MwTHpJQUwzQnBlV2MwTHpNQUwzQnBlV2MwTHpRQUwzQnBlV2Mx''@;'; + put 'put ''THpFQUwzQnBlV2MxTHpJQUwzQnBlV2MxTHpNQUwzQnBlV2MxTHpRQUwzQnBlV2MxTHpVQUwzQnBlV2MyTHpFQUwzQnBlV2MyTHpJQUwzQnBlV2MyTHpNQUwzQnBlV2MyTHpRQUwzQnBlV2MyTHpVQUwzQnBlV2MyTHpZQUwzQnBlV2MzTHpFQUwzQnBlV2MzTHpJQUwzQnBlV2MzTHpNQUwzQnBl''@;'; + put 'put ''V2MzTHpRQUwzQnBlV2MzTHpVQUwzQnBlV2MzTHpZQUwzQnBlV2MzTHpjQUwzQnBlV2M0THpFQUwzQnBlV2M0THpJQUwzQnBlV2M0THpNQUwzQnBlV2M0THpRQUwzQnBlV2M0THpVQUwzQnBlV2M0THpZQUwzQnBlV2M0THpjQUwzQnBlV2M0THpnQUwzQnBlV2M1THpFQUwzQnBlV2M1THpJQUwz''@;'; + put 'put ''QnBlV2M1THpNQUwzQnBlV2M1THpRQUwzQnBlV2M1THpVQUwzQnBlV2M1THpZQUwzQnBlV2M1THpjQUwzQnBlV2M1THpnQUwzQnBlV2M1THprQUwzQnlaMjR4TUM4eEFDOXdjbWR1TVRBdk1UQUFMM0J5WjI0eE1DOHlBQzl3Y21kdU1UQXZNd0F2Y0hKbmJqRXdMelFBTDNCeVoyNHhNQzgxQUM5''@;'; + put 'put ''d2NtZHVNVEF2TmdBdmNISm5iakV3THpjQUwzQnlaMjR4TUM4NEFDOXdjbWR1TVRBdk9RQXZjSEpuYmpFeEx6RUFMM0J5WjI0eE1TOHhNQUF2Y0hKbmJqRXhMekV4QUM5d2NtZHVNVEV2TWdBdmNISm5iakV4THpNQUwzQnlaMjR4TVM4MEFDOXdjbWR1TVRFdk5RQXZjSEpuYmpFeEx6WUFMM0J5''@;'; + put 'put ''WjI0eE1TODNBQzl3Y21kdU1URXZPQUF2Y0hKbmJqRXhMemtBTDNCeVoyNHpMekVBTDNCeVoyNHpMeklBTDNCeVoyNHpMek1BTDNCeVoyNDBMekVBTDNCeVoyNDBMeklBTDNCeVoyNDBMek1BTDNCeVoyNDBMelFBTDNCeVoyNDFMekVBTDNCeVoyNDFMeklBTDNCeVoyNDFMek1BTDNCeVoyNDFM''@;'; + put 'put ''elFBTDNCeVoyNDFMelVBTDNCeVoyNDJMekVBTDNCeVoyNDJMeklBTDNCeVoyNDJMek1BTDNCeVoyNDJMelFBTDNCeVoyNDJMelVBTDNCeVoyNDJMellBTDNCeVoyNDNMekVBTDNCeVoyNDNMeklBTDNCeVoyNDNMek1BTDNCeVoyNDNMelFBTDNCeVoyNDNMelVBTDNCeVoyNDNMellBTDNCeVoy''@;'; + put 'put ''NDNMemNBTDNCeVoyNDRMekVBTDNCeVoyNDRMeklBTDNCeVoyNDRMek1BTDNCeVoyNDRMelFBTDNCeVoyNDRMelVBTDNCeVoyNDRMellBTDNCeVoyNDRMemNBTDNCeVoyNDRMemdBTDNCeVoyNDVMekVBTDNCeVoyNDVMeklBTDNCeVoyNDVMek1BTDNCeVoyNDVMelFBTDNCeVoyNDVMelVBTDNC''@;'; + put 'put ''eVoyNDVMellBTDNCeVoyNDVMemNBTDNCeVoyNDVMemdBTDNCeVoyNDVMemtBTDNCMVluVXpMekVBTDNCMVluVXpMeklBTDNCMVluVXpMek1BTDNCMVluVTBMekVBTDNCMVluVTBMeklBTDNCMVluVTBMek1BTDNCMVluVTBMelFBTDNCMVluVTFMekVBTDNCMVluVTFMeklBTDNCMVluVTFMek1B''@;'; + put 'put ''TDNCMVluVTFMelFBTDNCMVluVTFMelVBTDNCMVluVTJMekVBTDNCMVluVTJMeklBTDNCMVluVTJMek1BTDNCMVluVTJMelFBTDNCMVluVTJMelVBTDNCMVluVTJMellBTDNCMVluVTNMekVBTDNCMVluVTNMeklBTDNCMVluVTNMek1BTDNCMVluVTNMelFBTDNCMVluVTNMelVBTDNCMVluVTNM''@;'; + put 'put ''ellBTDNCMVluVTNMemNBTDNCMVluVTRMekVBTDNCMVluVTRMeklBTDNCMVluVTRMek1BTDNCMVluVTRMelFBTDNCMVluVTRMelVBTDNCMVluVTRMellBTDNCMVluVTRMemNBTDNCMVluVTRMemdBTDNCMVluVTVMekVBTDNCMVluVTVMeklBTDNCMVluVTVMek1BTDNCMVluVTVMelFBTDNCMVlu''@;'; + put 'put ''VTVMelVBTDNCMVluVTVMellBTDNCMVluVTVMemNBTDNCMVluVTVMemdBTDNCMVluVTVMemtBTDNCMVluVm5iak12TVFBdmNIVmlkV2R1TXk4eUFDOXdkV0oxWjI0ekx6TUFMM0IxWW5WbmJqUXZNUUF2Y0hWaWRXZHVOQzh5QUM5d2RXSjFaMjQwTHpNQUwzQjFZblZuYmpRdk5BQXZjSFZpZFdk''@;'; + put 'put ''dU5TOHhBQzl3ZFdKMVoyNDFMeklBTDNCMVluVm5ialV2TXdBdmNIVmlkV2R1TlM4MEFDOXdkV0oxWjI0MUx6VUFMM0IxWW5WbmJqWXZNUUF2Y0hWaWRXZHVOaTh5QUM5d2RXSjFaMjQyTHpNQUwzQjFZblZuYmpZdk5BQXZjSFZpZFdkdU5pODFBQzl3ZFdKMVoyNDJMellBTDNCMVluVm5iamN2''@;'; + put 'put ''TVFBdmNIVmlkV2R1Tnk4eUFDOXdkV0oxWjI0M0x6TUFMM0IxWW5WbmJqY3ZOQUF2Y0hWaWRXZHVOeTgxQUM5d2RXSjFaMjQzTHpZQUwzQjFZblZuYmpjdk53QXZjSFZpZFdkdU9DOHhBQzl3ZFdKMVoyNDRMeklBTDNCMVluVm5iamd2TXdBdmNIVmlkV2R1T0M4MEFDOXdkV0oxWjI0NEx6VUFM''@;'; + put 'put ''M0IxWW5WbmJqZ3ZOZ0F2Y0hWaWRXZHVPQzgzQUM5d2RXSjFaMjQ0THpnQUwzQjFZblZuYmprdk1RQXZjSFZpZFdkdU9TOHlBQzl3ZFdKMVoyNDVMek1BTDNCMVluVm5iamt2TkFBdmNIVmlkV2R1T1M4MUFDOXdkV0oxWjI0NUx6WUFMM0IxWW5WbmJqa3ZOd0F2Y0hWaWRXZHVPUzg0QUM5d2RX''@;'; + put 'put ''SjFaMjQ1THprQUwzQjFiM0l4TUM4eEFDOXdkVzl5TVRBdk1UQUFMM0IxYjNJeE1DOHlBQzl3ZFc5eU1UQXZNd0F2Y0hWdmNqRXdMelFBTDNCMWIzSXhNQzgxQUM5d2RXOXlNVEF2TmdBdmNIVnZjakV3THpjQUwzQjFiM0l4TUM4NEFDOXdkVzl5TVRBdk9RQXZjSFZ2Y2pFeEx6RUFMM0IxYjNJ''@;'; + put 'put ''eE1TOHhNQUF2Y0hWdmNqRXhMekV4QUM5d2RXOXlNVEV2TWdBdmNIVnZjakV4THpNQUwzQjFiM0l4TVM4MEFDOXdkVzl5TVRFdk5RQXZjSFZ2Y2pFeEx6WUFMM0IxYjNJeE1TODNBQzl3ZFc5eU1URXZPQUF2Y0hWdmNqRXhMemtBTDNCMWIzSXpMekVBTDNCMWIzSXpMeklBTDNCMWIzSXpMek1B''@;'; + put 'put ''TDNCMWIzSTBMekVBTDNCMWIzSTBMeklBTDNCMWIzSTBMek1BTDNCMWIzSTBMelFBTDNCMWIzSTFMekVBTDNCMWIzSTFMeklBTDNCMWIzSTFMek1BTDNCMWIzSTFMelFBTDNCMWIzSTFMelVBTDNCMWIzSTJMekVBTDNCMWIzSTJMeklBTDNCMWIzSTJMek1BTDNCMWIzSTJMelFBTDNCMWIzSTJM''@;'; + put 'put ''elVBTDNCMWIzSTJMellBTDNCMWIzSTNMekVBTDNCMWIzSTNMeklBTDNCMWIzSTNMek1BTDNCMWIzSTNMelFBTDNCMWIzSTNMelVBTDNCMWIzSTNMellBTDNCMWIzSTNMemNBTDNCMWIzSTRMekVBTDNCMWIzSTRMeklBTDNCMWIzSTRMek1BTDNCMWIzSTRMelFBTDNCMWIzSTRMelVBTDNCMWIz''@;'; + put 'put ''STRMellBTDNCMWIzSTRMemNBTDNCMWIzSTRMemdBTDNCMWIzSTVMekVBTDNCMWIzSTVMeklBTDNCMWIzSTVMek1BTDNCMWIzSTVMelFBTDNCMWIzSTVMelVBTDNCMWIzSTVMellBTDNCMWIzSTVMemNBTDNCMWIzSTVMemdBTDNCMWIzSTVMemtBTDNCMWNtUXpMekVBTDNCMWNtUXpMeklBTDNC''@;'; + put 'put ''MWNtUXpMek1BTDNCMWNtUTBMekVBTDNCMWNtUTBMeklBTDNCMWNtUTBMek1BTDNCMWNtUTBMelFBTDNCMWNtUTFMekVBTDNCMWNtUTFMeklBTDNCMWNtUTFMek1BTDNCMWNtUTFMelFBTDNCMWNtUTFMelVBTDNCMWNtUTJMekVBTDNCMWNtUTJMeklBTDNCMWNtUTJMek1BTDNCMWNtUTJMelFB''@;'; + put 'put ''TDNCMWNtUTJMelVBTDNCMWNtUTJMellBTDNCMWNtUTNMekVBTDNCMWNtUTNMeklBTDNCMWNtUTNMek1BTDNCMWNtUTNMelFBTDNCMWNtUTNMelVBTDNCMWNtUTNMellBTDNCMWNtUTNMemNBTDNCMWNtUTRMekVBTDNCMWNtUTRMeklBTDNCMWNtUTRMek1BTDNCMWNtUTRMelFBTDNCMWNtUTRM''@;'; + put 'put ''elVBTDNCMWNtUTRMellBTDNCMWNtUTRMemNBTDNCMWNtUTRMemdBTDNCMWNtUTVMekVBTDNCMWNtUTVMeklBTDNCMWNtUTVMek1BTDNCMWNtUTVMelFBTDNCMWNtUTVMelVBTDNCMWNtUTVMellBTDNCMWNtUTVMemNBTDNCMWNtUTVMemdBTDNCMWNtUTVMemtBTDNCMWNuQnNaWE16THpFQUwz''@;'; + put 'put ''QjFjbkJzWlhNekx6SUFMM0IxY25Cc1pYTXpMek1BTDNCMWNuQnNaWE0wTHpFQUwzQjFjbkJzWlhNMEx6SUFMM0IxY25Cc1pYTTBMek1BTDNCMWNuQnNaWE0wTHpRQUwzQjFjbkJzWlhNMUx6RUFMM0IxY25Cc1pYTTFMeklBTDNCMWNuQnNaWE0xTHpNQUwzQjFjbkJzWlhNMUx6UUFMM0IxY25C''@;'; + put 'put ''c1pYTTFMelVBTDNCMWNuQnNaWE0yTHpFQUwzQjFjbkJzWlhNMkx6SUFMM0IxY25Cc1pYTTJMek1BTDNCMWNuQnNaWE0yTHpRQUwzQjFjbkJzWlhNMkx6VUFMM0IxY25Cc1pYTTJMellBTDNCMWNuQnNaWE0zTHpFQUwzQjFjbkJzWlhNM0x6SUFMM0IxY25Cc1pYTTNMek1BTDNCMWNuQnNaWE0z''@;'; + put 'put ''THpRQUwzQjFjbkJzWlhNM0x6VUFMM0IxY25Cc1pYTTNMellBTDNCMWNuQnNaWE0zTHpjQUwzQjFjbkJzWlhNNEx6RUFMM0IxY25Cc1pYTTRMeklBTDNCMWNuQnNaWE00THpNQUwzQjFjbkJzWlhNNEx6UUFMM0IxY25Cc1pYTTRMelVBTDNCMWNuQnNaWE00THpZQUwzQjFjbkJzWlhNNEx6Y0FM''@;'; + put 'put ''M0IxY25Cc1pYTTRMemdBTDNCMWNuQnNaWE01THpFQUwzQjFjbkJzWlhNNUx6SUFMM0IxY25Cc1pYTTVMek1BTDNCMWNuQnNaWE01THpRQUwzQjFjbkJzWlhNNUx6VUFMM0IxY25Cc1pYTTVMellBTDNCMWNuQnNaWE01THpjQUwzQjFjbkJzWlhNNUx6Z0FMM0IxY25Cc1pYTTVMemtBTDNKa1lu''@;'; + put 'put ''VXhNQzh4QUM5eVpHSjFNVEF2TVRBQUwzSmtZblV4TUM4eUFDOXlaR0oxTVRBdk13QXZjbVJpZFRFd0x6UUFMM0prWW5VeE1DODFBQzl5WkdKMU1UQXZOZ0F2Y21SaWRURXdMemNBTDNKa1luVXhNQzg0QUM5eVpHSjFNVEF2T1FBdmNtUmlkVEV4THpFQUwzSmtZblV4TVM4eE1BQXZjbVJpZFRF''@;'; + put 'put ''eEx6RXhBQzl5WkdKMU1URXZNZ0F2Y21SaWRURXhMek1BTDNKa1luVXhNUzgwQUM5eVpHSjFNVEV2TlFBdmNtUmlkVEV4THpZQUwzSmtZblV4TVM4M0FDOXlaR0oxTVRFdk9BQXZjbVJpZFRFeEx6a0FMM0prWW5Vekx6RUFMM0prWW5Vekx6SUFMM0prWW5Vekx6TUFMM0prWW5VMEx6RUFMM0pr''@;'; + put 'put ''WW5VMEx6SUFMM0prWW5VMEx6TUFMM0prWW5VMEx6UUFMM0prWW5VMUx6RUFMM0prWW5VMUx6SUFMM0prWW5VMUx6TUFMM0prWW5VMUx6UUFMM0prWW5VMUx6VUFMM0prWW5VMkx6RUFMM0prWW5VMkx6SUFMM0prWW5VMkx6TUFMM0prWW5VMkx6UUFMM0prWW5VMkx6VUFMM0prWW5VMkx6WUFM''@;'; + put 'put ''M0prWW5VM0x6RUFMM0prWW5VM0x6SUFMM0prWW5VM0x6TUFMM0prWW5VM0x6UUFMM0prWW5VM0x6VUFMM0prWW5VM0x6WUFMM0prWW5VM0x6Y0FMM0prWW5VNEx6RUFMM0prWW5VNEx6SUFMM0prWW5VNEx6TUFMM0prWW5VNEx6UUFMM0prWW5VNEx6VUFMM0prWW5VNEx6WUFMM0prWW5VNEx6''@;'; + put 'put ''Y0FMM0prWW5VNEx6Z0FMM0prWW5VNUx6RUFMM0prWW5VNUx6SUFMM0prWW5VNUx6TUFMM0prWW5VNUx6UUFMM0prWW5VNUx6VUFMM0prWW5VNUx6WUFMM0prWW5VNUx6Y0FMM0prWW5VNUx6Z0FMM0prWW5VNUx6a0FMM0prWjNreE1DOHhBQzl5WkdkNU1UQXZNVEFBTDNKa1oza3hNQzh5QUM5''@;'; + put 'put ''eVpHZDVNVEF2TXdBdmNtUm5lVEV3THpRQUwzSmtaM2t4TUM4MUFDOXlaR2Q1TVRBdk5nQXZjbVJuZVRFd0x6Y0FMM0prWjNreE1DODRBQzl5WkdkNU1UQXZPUUF2Y21SbmVURXhMekVBTDNKa1oza3hNUzh4TUFBdmNtUm5lVEV4THpFeEFDOXlaR2Q1TVRFdk1nQXZjbVJuZVRFeEx6TUFMM0pr''@;'; + put 'put ''WjNreE1TODBBQzl5WkdkNU1URXZOUUF2Y21SbmVURXhMellBTDNKa1oza3hNUzgzQUM5eVpHZDVNVEV2T0FBdmNtUm5lVEV4THprQUwzSmtaM2t6THpFQUwzSmtaM2t6THpJQUwzSmtaM2t6THpNQUwzSmtaM2swTHpFQUwzSmtaM2swTHpJQUwzSmtaM2swTHpNQUwzSmtaM2swTHpRQUwzSmta''@;'; + put 'put ''M2sxTHpFQUwzSmtaM2sxTHpJQUwzSmtaM2sxTHpNQUwzSmtaM2sxTHpRQUwzSmtaM2sxTHpVQUwzSmtaM2syTHpFQUwzSmtaM2syTHpJQUwzSmtaM2syTHpNQUwzSmtaM2syTHpRQUwzSmtaM2syTHpVQUwzSmtaM2syTHpZQUwzSmtaM2szTHpFQUwzSmtaM2szTHpJQUwzSmtaM2szTHpNQUwz''@;'; + put 'put ''SmtaM2szTHpRQUwzSmtaM2szTHpVQUwzSmtaM2szTHpZQUwzSmtaM2szTHpjQUwzSmtaM2s0THpFQUwzSmtaM2s0THpJQUwzSmtaM2s0THpNQUwzSmtaM2s0THpRQUwzSmtaM2s0THpVQUwzSmtaM2s0THpZQUwzSmtaM2s0THpjQUwzSmtaM2s0THpnQUwzSmtaM2s1THpFQUwzSmtaM2s1THpJ''@;'; + put 'put ''QUwzSmtaM2s1THpNQUwzSmtaM2s1THpRQUwzSmtaM2s1THpVQUwzSmtaM2s1THpZQUwzSmtaM2s1THpjQUwzSmtaM2s1THpnQUwzSmtaM2s1THprQUwzSmtjSFV6THpFQUwzSmtjSFV6THpJQUwzSmtjSFV6THpNQUwzSmtjSFUwTHpFQUwzSmtjSFUwTHpJQUwzSmtjSFUwTHpNQUwzSmtjSFUw''@;'; + put 'put ''THpRQUwzSmtjSFUxTHpFQUwzSmtjSFUxTHpJQUwzSmtjSFUxTHpNQUwzSmtjSFUxTHpRQUwzSmtjSFUxTHpVQUwzSmtjSFUyTHpFQUwzSmtjSFUyTHpJQUwzSmtjSFUyTHpNQUwzSmtjSFUyTHpRQUwzSmtjSFUyTHpVQUwzSmtjSFUyTHpZQUwzSmtjSFUzTHpFQUwzSmtjSFUzTHpJQUwzSmtj''@;'; + put 'put ''SFUzTHpNQUwzSmtjSFUzTHpRQUwzSmtjSFUzTHpVQUwzSmtjSFUzTHpZQUwzSmtjSFUzTHpjQUwzSmtjSFU0THpFQUwzSmtjSFU0THpJQUwzSmtjSFU0THpNQUwzSmtjSFU0THpRQUwzSmtjSFU0THpVQUwzSmtjSFU0THpZQUwzSmtjSFU0THpjQUwzSmtjSFU0THpnQUwzSmtjSFU1THpFQUwz''@;'; + put 'put ''SmtjSFU1THpJQUwzSmtjSFU1THpNQUwzSmtjSFU1THpRQUwzSmtjSFU1THpVQUwzSmtjSFU1THpZQUwzSmtjSFU1THpjQUwzSmtjSFU1THpnQUwzSmtjSFU1THprQUwzSmtlV3hpZFRFd0x6RUFMM0prZVd4aWRURXdMekV3QUM5eVpIbHNZblV4TUM4eUFDOXlaSGxzWW5VeE1DOHpBQzl5Wkhs''@;'; + put 'put ''c1luVXhNQzgwQUM5eVpIbHNZblV4TUM4MUFDOXlaSGxzWW5VeE1DODJBQzl5Wkhsc1luVXhNQzgzQUM5eVpIbHNZblV4TUM4NEFDOXlaSGxzWW5VeE1DODVBQzl5Wkhsc1luVXhNUzh4QUM5eVpIbHNZblV4TVM4eE1BQXZjbVI1YkdKMU1URXZNVEVBTDNKa2VXeGlkVEV4THpJQUwzSmtlV3hp''@;'; + put 'put ''ZFRFeEx6TUFMM0prZVd4aWRURXhMelFBTDNKa2VXeGlkVEV4THpVQUwzSmtlV3hpZFRFeEx6WUFMM0prZVd4aWRURXhMemNBTDNKa2VXeGlkVEV4THpnQUwzSmtlV3hpZFRFeEx6a0FMM0prZVd4aWRUTXZNUUF2Y21SNWJHSjFNeTh5QUM5eVpIbHNZblV6THpNQUwzSmtlV3hpZFRRdk1RQXZj''@;'; + put 'put ''bVI1YkdKMU5DOHlBQzl5Wkhsc1luVTBMek1BTDNKa2VXeGlkVFF2TkFBdmNtUjViR0oxTlM4eEFDOXlaSGxzWW5VMUx6SUFMM0prZVd4aWRUVXZNd0F2Y21SNWJHSjFOUzgwQUM5eVpIbHNZblUxTHpVQUwzSmtlV3hpZFRZdk1RQXZjbVI1YkdKMU5pOHlBQzl5Wkhsc1luVTJMek1BTDNKa2VX''@;'; + put 'put ''eGlkVFl2TkFBdmNtUjViR0oxTmk4MUFDOXlaSGxzWW5VMkx6WUFMM0prZVd4aWRUY3ZNUUF2Y21SNWJHSjFOeTh5QUM5eVpIbHNZblUzTHpNQUwzSmtlV3hpZFRjdk5BQXZjbVI1YkdKMU55ODFBQzl5Wkhsc1luVTNMellBTDNKa2VXeGlkVGN2TndBdmNtUjViR0oxT0M4eEFDOXlaSGxzWW5V''@;'; + put 'put ''NEx6SUFMM0prZVd4aWRUZ3ZNd0F2Y21SNWJHSjFPQzgwQUM5eVpIbHNZblU0THpVQUwzSmtlV3hpZFRndk5nQXZjbVI1YkdKMU9DODNBQzl5Wkhsc1luVTRMemdBTDNKa2VXeGlkVGt2TVFBdmNtUjViR0oxT1M4eUFDOXlaSGxzWW5VNUx6TUFMM0prZVd4aWRUa3ZOQUF2Y21SNWJHSjFPUzgx''@;'; + put 'put ''QUM5eVpIbHNZblU1THpZQUwzSmtlV3hpZFRrdk53QXZjbVI1YkdKMU9TODRBQzl5Wkhsc1luVTVMemtBTDNKa2VXeG5iakV3THpFQUwzSmtlV3huYmpFd0x6RXdBQzl5Wkhsc1oyNHhNQzh5QUM5eVpIbHNaMjR4TUM4ekFDOXlaSGxzWjI0eE1DODBBQzl5Wkhsc1oyNHhNQzgxQUM5eVpIbHNa''@;'; + put 'put ''MjR4TUM4MkFDOXlaSGxzWjI0eE1DODNBQzl5Wkhsc1oyNHhNQzg0QUM5eVpIbHNaMjR4TUM4NUFDOXlaSGxzWjI0eE1TOHhBQzl5Wkhsc1oyNHhNUzh4TUFBdmNtUjViR2R1TVRFdk1URUFMM0prZVd4bmJqRXhMeklBTDNKa2VXeG5iakV4THpNQUwzSmtlV3huYmpFeEx6UUFMM0prZVd4bmJq''@;'; + put 'put ''RXhMelVBTDNKa2VXeG5iakV4THpZQUwzSmtlV3huYmpFeEx6Y0FMM0prZVd4bmJqRXhMemdBTDNKa2VXeG5iakV4THprQUwzSmtlV3huYmpNdk1RQXZjbVI1YkdkdU15OHlBQzl5Wkhsc1oyNHpMek1BTDNKa2VXeG5ialF2TVFBdmNtUjViR2R1TkM4eUFDOXlaSGxzWjI0MEx6TUFMM0prZVd4''@;'; + put 'put ''bmJqUXZOQUF2Y21SNWJHZHVOUzh4QUM5eVpIbHNaMjQxTHpJQUwzSmtlV3huYmpVdk13QXZjbVI1YkdkdU5TODBBQzl5Wkhsc1oyNDFMelVBTDNKa2VXeG5iall2TVFBdmNtUjViR2R1Tmk4eUFDOXlaSGxzWjI0Mkx6TUFMM0prZVd4bmJqWXZOQUF2Y21SNWJHZHVOaTgxQUM5eVpIbHNaMjQy''@;'; + put 'put ''THpZQUwzSmtlV3huYmpjdk1RQXZjbVI1YkdkdU55OHlBQzl5Wkhsc1oyNDNMek1BTDNKa2VXeG5iamN2TkFBdmNtUjViR2R1Tnk4MUFDOXlaSGxzWjI0M0x6WUFMM0prZVd4bmJqY3ZOd0F2Y21SNWJHZHVPQzh4QUM5eVpIbHNaMjQ0THpJQUwzSmtlV3huYmpndk13QXZjbVI1YkdkdU9DODBB''@;'; + put 'put ''Qzl5Wkhsc1oyNDRMelVBTDNKa2VXeG5iamd2TmdBdmNtUjViR2R1T0M4M0FDOXlaSGxzWjI0NEx6Z0FMM0prZVd4bmJqa3ZNUUF2Y21SNWJHZHVPUzh5QUM5eVpIbHNaMjQ1THpNQUwzSmtlV3huYmprdk5BQXZjbVI1YkdkdU9TODFBQzl5Wkhsc1oyNDVMellBTDNKa2VXeG5iamt2TndBdmNt''@;'; + put 'put ''UjViR2R1T1M4NEFDOXlaSGxzWjI0NUx6a0FMM0psWkhNekx6RUFMM0psWkhNekx6SUFMM0psWkhNekx6TUFMM0psWkhNMEx6RUFMM0psWkhNMEx6SUFMM0psWkhNMEx6TUFMM0psWkhNMEx6UUFMM0psWkhNMUx6RUFMM0psWkhNMUx6SUFMM0psWkhNMUx6TUFMM0psWkhNMUx6UUFMM0psWkhN''@;'; + put 'put ''MUx6VUFMM0psWkhNMkx6RUFMM0psWkhNMkx6SUFMM0psWkhNMkx6TUFMM0psWkhNMkx6UUFMM0psWkhNMkx6VUFMM0psWkhNMkx6WUFMM0psWkhNM0x6RUFMM0psWkhNM0x6SUFMM0psWkhNM0x6TUFMM0psWkhNM0x6UUFMM0psWkhNM0x6VUFMM0psWkhNM0x6WUFMM0psWkhNM0x6Y0FMM0ps''@;'; + put 'put ''WkhNNEx6RUFMM0psWkhNNEx6SUFMM0psWkhNNEx6TUFMM0psWkhNNEx6UUFMM0psWkhNNEx6VUFMM0psWkhNNEx6WUFMM0psWkhNNEx6Y0FMM0psWkhNNEx6Z0FMM0psWkhNNUx6RUFMM0psWkhNNUx6SUFMM0psWkhNNUx6TUFMM0psWkhNNUx6UUFMM0psWkhNNUx6VUFMM0psWkhNNUx6WUFM''@;'; + put 'put ''M0psWkhNNUx6Y0FMM0psWkhNNUx6Z0FMM0psWkhNNUx6a0FMM05sZERFekx6RUFMM05sZERFekx6SUFMM05sZERFekx6TUFMM05sZERFMEx6RUFMM05sZERFMEx6SUFMM05sZERFMEx6TUFMM05sZERFMEx6UUFMM05sZERFMUx6RUFMM05sZERFMUx6SUFMM05sZERFMUx6TUFMM05sZERFMUx6''@;'; + put 'put ''UUFMM05sZERFMUx6VUFMM05sZERFMkx6RUFMM05sZERFMkx6SUFMM05sZERFMkx6TUFMM05sZERFMkx6UUFMM05sZERFMkx6VUFMM05sZERFMkx6WUFMM05sZERFM0x6RUFMM05sZERFM0x6SUFMM05sZERFM0x6TUFMM05sZERFM0x6UUFMM05sZERFM0x6VUFMM05sZERFM0x6WUFMM05sZERF''@;'; + put 'put ''M0x6Y0FMM05sZERFNEx6RUFMM05sZERFNEx6SUFMM05sZERFNEx6TUFMM05sZERFNEx6UUFMM05sZERFNEx6VUFMM05sZERFNEx6WUFMM05sZERFNEx6Y0FMM05sZERFNEx6Z0FMM05sZERFNUx6RUFMM05sZERFNUx6SUFMM05sZERFNUx6TUFMM05sZERFNUx6UUFMM05sZERFNUx6VUFMM05s''@;'; + put 'put ''ZERFNUx6WUFMM05sZERFNUx6Y0FMM05sZERFNUx6Z0FMM05sZERFNUx6a0FMM05sZERJekx6RUFMM05sZERJekx6SUFMM05sZERJekx6TUFMM05sZERJMEx6RUFMM05sZERJMEx6SUFMM05sZERJMEx6TUFMM05sZERJMEx6UUFMM05sZERJMUx6RUFMM05sZERJMUx6SUFMM05sZERJMUx6TUFM''@;'; + put 'put ''M05sZERJMUx6UUFMM05sZERJMUx6VUFMM05sZERJMkx6RUFMM05sZERJMkx6SUFMM05sZERJMkx6TUFMM05sZERJMkx6UUFMM05sZERJMkx6VUFMM05sZERJMkx6WUFMM05sZERJM0x6RUFMM05sZERJM0x6SUFMM05sZERJM0x6TUFMM05sZERJM0x6UUFMM05sZERJM0x6VUFMM05sZERJM0x6''@;'; + put 'put ''WUFMM05sZERJM0x6Y0FMM05sZERJNEx6RUFMM05sZERJNEx6SUFMM05sZERJNEx6TUFMM05sZERJNEx6UUFMM05sZERJNEx6VUFMM05sZERJNEx6WUFMM05sZERJNEx6Y0FMM05sZERJNEx6Z0FMM05sZERNeE1DOHhBQzl6WlhRek1UQXZNVEFBTDNObGRETXhNQzh5QUM5elpYUXpNVEF2TXdB''@;'; + put 'put ''dmMyVjBNekV3THpRQUwzTmxkRE14TUM4MUFDOXpaWFF6TVRBdk5nQXZjMlYwTXpFd0x6Y0FMM05sZERNeE1DODRBQzl6WlhRek1UQXZPUUF2YzJWME16RXhMekVBTDNObGRETXhNUzh4TUFBdmMyVjBNekV4THpFeEFDOXpaWFF6TVRFdk1nQXZjMlYwTXpFeEx6TUFMM05sZERNeE1TODBBQzl6''@;'; + put 'put ''WlhRek1URXZOUUF2YzJWME16RXhMellBTDNObGRETXhNUzgzQUM5elpYUXpNVEV2T0FBdmMyVjBNekV4THprQUwzTmxkRE14TWk4eEFDOXpaWFF6TVRJdk1UQUFMM05sZERNeE1pOHhNUUF2YzJWME16RXlMekV5QUM5elpYUXpNVEl2TWdBdmMyVjBNekV5THpNQUwzTmxkRE14TWk4MEFDOXpa''@;'; + put 'put ''WFF6TVRJdk5RQXZjMlYwTXpFeUx6WUFMM05sZERNeE1pODNBQzl6WlhRek1USXZPQUF2YzJWME16RXlMemtBTDNObGRETXpMekVBTDNObGRETXpMeklBTDNObGRETXpMek1BTDNObGRETTBMekVBTDNObGRETTBMeklBTDNObGRETTBMek1BTDNObGRETTBMelFBTDNObGRETTFMekVBTDNObGRE''@;'; + put 'put ''TTFMeklBTDNObGRETTFMek1BTDNObGRETTFMelFBTDNObGRETTFMelVBTDNObGRETTJMekVBTDNObGRETTJMeklBTDNObGRETTJMek1BTDNObGRETTJMelFBTDNObGRETTJMelVBTDNObGRETTJMellBTDNObGRETTNMekVBTDNObGRETTNMeklBTDNObGRETTNMek1BTDNObGRETTNMelFBTDNO''@;'; + put 'put ''bGRETTNMelVBTDNObGRETTNMellBTDNObGRETTNMemNBTDNObGRETTRMekVBTDNObGRETTRMeklBTDNObGRETTRMek1BTDNObGRETTRMelFBTDNObGRETTRMelVBTDNObGRETTRMellBTDNObGRETTRMemNBTDNObGRETTRMemdBTDNObGRETTVMekVBTDNObGRETTVMeklBTDNObGRETTVMek1B''@;'; + put 'put ''TDNObGRETTVMelFBTDNObGRETTVMelVBTDNObGRETTVMellBTDNObGRETTVMemNBTDNObGRETTVMemdBTDNObGRETTVMemtBTDNOd1pXTjBjbUZzTVRBdk1RQXZjM0JsWTNSeVlXd3hNQzh4TUFBdmMzQmxZM1J5WVd3eE1DOHlBQzl6Y0dWamRISmhiREV3THpNQUwzTndaV04wY21Gc01UQXZO''@;'; + put 'put ''QUF2YzNCbFkzUnlZV3d4TUM4MUFDOXpjR1ZqZEhKaGJERXdMellBTDNOd1pXTjBjbUZzTVRBdk53QXZjM0JsWTNSeVlXd3hNQzg0QUM5emNHVmpkSEpoYkRFd0x6a0FMM053WldOMGNtRnNNVEV2TVFBdmMzQmxZM1J5WVd3eE1TOHhNQUF2YzNCbFkzUnlZV3d4TVM4eE1RQXZjM0JsWTNSeVlX''@;'; + put 'put ''d3hNUzh5QUM5emNHVmpkSEpoYkRFeEx6TUFMM053WldOMGNtRnNNVEV2TkFBdmMzQmxZM1J5WVd3eE1TODFBQzl6Y0dWamRISmhiREV4THpZQUwzTndaV04wY21Gc01URXZOd0F2YzNCbFkzUnlZV3d4TVM4NEFDOXpjR1ZqZEhKaGJERXhMemtBTDNOd1pXTjBjbUZzTXk4eEFDOXpjR1ZqZEhK''@;'; + put 'put ''aGJETXZNZ0F2YzNCbFkzUnlZV3d6THpNQUwzTndaV04wY21Gc05DOHhBQzl6Y0dWamRISmhiRFF2TWdBdmMzQmxZM1J5WVd3MEx6TUFMM053WldOMGNtRnNOQzgwQUM5emNHVmpkSEpoYkRVdk1RQXZjM0JsWTNSeVlXdzFMeklBTDNOd1pXTjBjbUZzTlM4ekFDOXpjR1ZqZEhKaGJEVXZOQUF2''@;'; + put 'put ''YzNCbFkzUnlZV3cxTHpVQUwzTndaV04wY21Gc05pOHhBQzl6Y0dWamRISmhiRFl2TWdBdmMzQmxZM1J5WVd3Mkx6TUFMM053WldOMGNtRnNOaTgwQUM5emNHVmpkSEpoYkRZdk5RQXZjM0JsWTNSeVlXdzJMellBTDNOd1pXTjBjbUZzTnk4eEFDOXpjR1ZqZEhKaGJEY3ZNZ0F2YzNCbFkzUnlZ''@;'; + put 'put ''V3czTHpNQUwzTndaV04wY21Gc055ODBBQzl6Y0dWamRISmhiRGN2TlFBdmMzQmxZM1J5WVd3M0x6WUFMM053WldOMGNtRnNOeTgzQUM5emNHVmpkSEpoYkRndk1RQXZjM0JsWTNSeVlXdzRMeklBTDNOd1pXTjBjbUZzT0M4ekFDOXpjR1ZqZEhKaGJEZ3ZOQUF2YzNCbFkzUnlZV3c0THpVQUwz''@;'; + put 'put ''TndaV04wY21Gc09DODJBQzl6Y0dWamRISmhiRGd2TndBdmMzQmxZM1J5WVd3NEx6Z0FMM053WldOMGNtRnNPUzh4QUM5emNHVmpkSEpoYkRrdk1nQXZjM0JsWTNSeVlXdzVMek1BTDNOd1pXTjBjbUZzT1M4MEFDOXpjR1ZqZEhKaGJEa3ZOUUF2YzNCbFkzUnlZV3c1THpZQUwzTndaV04wY21G''@;'; + put 'put ''c09TODNBQzl6Y0dWamRISmhiRGt2T0FBdmMzQmxZM1J5WVd3NUx6a0FMM04yWnk5aGJHbGpaV0pzZFdVQUwzTjJaeTloYm5ScGNYVmxkMmhwZEdVQUwzTjJaeTloY1hWaEFDOXpkbWN2WVhGMVlXMWhjbWx1WlFBdmMzWm5MMkY2ZFhKbEFDOXpkbWN2WW1WcFoyVUFMM04yWnk5aWFYTnhkV1VB''@;'; + put 'put ''TDNOMlp5OWliR0ZqYXdBdmMzWm5MMkpzWVc1amFHVmtZV3h0YjI1a0FDOXpkbWN2WW14MVpRQXZjM1puTDJKc2RXVjJhVzlzWlhRQUwzTjJaeTlpY205M2JnQXZjM1puTDJKMWNteDVkMjl2WkFBdmMzWm5MMk5oWkdWMFlteDFaUUF2YzNabkwyTm9ZWEowY21WMWMyVUFMM04yWnk5amFHOWpi''@;'; + put 'put ''MnhoZEdVQUwzTjJaeTlqYjNKaGJBQXZjM1puTDJOdmNtNW1iRzkzWlhKaWJIVmxBQzl6ZG1jdlkyOXlibk5wYkdzQUwzTjJaeTlqY21sdGMyOXVBQzl6ZG1jdlkzbGhiZ0F2YzNabkwyUmhjbXRpYkhWbEFDOXpkbWN2WkdGeWEyTjVZVzRBTDNOMlp5OWtZWEpyWjI5c1pHVnVjbTlrQUM5emRt''@;'; + put 'put ''Y3ZaR0Z5YTJkeVlYa0FMM04yWnk5a1lYSnJaM0psWlc0QUwzTjJaeTlrWVhKclozSmxlUUF2YzNabkwyUmhjbXRyYUdGcmFRQXZjM1puTDJSaGNtdHRZV2RsYm5SaEFDOXpkbWN2WkdGeWEyOXNhWFpsWjNKbFpXNEFMM04yWnk5a1lYSnJiM0poYm1kbEFDOXpkbWN2WkdGeWEyOXlZMmhwWkFB''@;'; + put 'put ''dmMzWm5MMlJoY210eVpXUUFMM04yWnk5a1lYSnJjMkZzYlc5dUFDOXpkbWN2WkdGeWEzTmxZV2R5WldWdUFDOXpkbWN2WkdGeWEzTnNZWFJsWW14MVpRQXZjM1puTDJSaGNtdHpiR0YwWldkeVlYa0FMM04yWnk5a1lYSnJjMnhoZEdWbmNtVjVBQzl6ZG1jdlpHRnlhM1IxY25GMWIybHpaUUF2''@;'; + put 'put ''YzNabkwyUmhjbXQyYVc5c1pYUUFMM04yWnk5a1pXVndjR2x1YXdBdmMzWm5MMlJsWlhCemEzbGliSFZsQUM5emRtY3ZaR2x0WjNKaGVRQXZjM1puTDJScGJXZHlaWGtBTDNOMlp5OWtiMlJuWlhKaWJIVmxBQzl6ZG1jdlptbHlaV0p5YVdOckFDOXpkbWN2Wm14dmNtRnNkMmhwZEdVQUwzTjJa''@;'; + put 'put ''eTltYjNKbGMzUm5jbVZsYmdBdmMzWm5MMloxWTJoemFXRUFMM04yWnk5bllXbHVjMkp2Y204QUwzTjJaeTluYUc5emRIZG9hWFJsQUM5emRtY3ZaMjlzWkFBdmMzWm5MMmR2YkdSbGJuSnZaQUF2YzNabkwyZHlZWGtBTDNOMlp5OW5jbVZsYmdBdmMzWm5MMmR5WldWdWVXVnNiRzkzQUM5emRt''@;'; + put 'put ''Y3ZaM0psZVFBdmMzWm5MMmh2Ym1WNVpHVjNBQzl6ZG1jdmFHOTBjR2x1YXdBdmMzWm5MMmx1WkdsaGJuSmxaQUF2YzNabkwybHVaR2xuYndBdmMzWm5MMmwyYjNKNUFDOXpkbWN2YTJoaGEya0FMM04yWnk5c1lYWmxibVJsY2dBdmMzWm5MMnhoZG1WdVpHVnlZbXgxYzJnQUwzTjJaeTlzWVhk''@;'; + put 'put ''dVozSmxaVzRBTDNOMlp5OXNaVzF2Ym1Ob2FXWm1iMjRBTDNOMlp5OXNhV2RvZEdKc2RXVUFMM04yWnk5c2FXZG9kR052Y21Gc0FDOXpkbWN2YkdsbmFIUmplV0Z1QUM5emRtY3ZiR2xuYUhSbmIyeGtaVzV5YjJSNVpXeHNiM2NBTDNOMlp5OXNhV2RvZEdkeVlYa0FMM04yWnk5c2FXZG9kR2R5''@;'; + put 'put ''WldWdUFDOXpkbWN2YkdsbmFIUm5jbVY1QUM5emRtY3ZiR2xuYUhSd2FXNXJBQzl6ZG1jdmJHbG5hSFJ6WVd4dGIyNEFMM04yWnk5c2FXZG9kSE5sWVdkeVpXVnVBQzl6ZG1jdmJHbG5hSFJ6YTNsaWJIVmxBQzl6ZG1jdmJHbG5hSFJ6YkdGMFpXZHlZWGtBTDNOMlp5OXNhV2RvZEhOc1lYUmxa''@;'; + put 'put ''M0psZVFBdmMzWm5MMnhwWjJoMGMzUmxaV3hpYkhWbEFDOXpkbWN2YkdsbmFIUjVaV3hzYjNjQUwzTjJaeTlzYVcxbEFDOXpkbWN2YkdsdFpXZHlaV1Z1QUM5emRtY3ZiR2x1Wlc0QUwzTjJaeTl0WVdkbGJuUmhBQzl6ZG1jdmJXRnliMjl1QUM5emRtY3ZiV1ZrYVhWdFlYRjFZVzFoY21sdVpR''@;'; + put 'put ''QXZjM1puTDIxbFpHbDFiV0pzZFdVQUwzTjJaeTl0WldScGRXMXZjbU5vYVdRQUwzTjJaeTl0WldScGRXMXdkWEp3YkdVQUwzTjJaeTl0WldScGRXMXpaV0ZuY21WbGJnQXZjM1puTDIxbFpHbDFiWE5zWVhSbFlteDFaUUF2YzNabkwyMWxaR2wxYlhOd2NtbHVaMmR5WldWdUFDOXpkbWN2YldW''@;'; + put 'put ''a2FYVnRkSFZ5Y1hWdmFYTmxBQzl6ZG1jdmJXVmthWFZ0ZG1sdmJHVjBjbVZrQUM5emRtY3ZiV2xrYm1sbmFIUmliSFZsQUM5emRtY3ZiV2x1ZEdOeVpXRnRBQzl6ZG1jdmJXbHpkSGx5YjNObEFDOXpkbWN2Ylc5alkyRnphVzRBTDNOMlp5OXVZWFpoYW05M2FHbDBaUUF2YzNabkwyNWhkbmtB''@;'; + put 'put ''TDNOMlp5OXZiR1JzWVdObEFDOXpkbWN2YjJ4cGRtVUFMM04yWnk5dmJHbDJaV1J5WVdJQUwzTjJaeTl2Y21GdVoyVUFMM04yWnk5dmNtRnVaMlZ5WldRQUwzTjJaeTl2Y21Ob2FXUUFMM04yWnk5d1lXeGxaMjlzWkdWdWNtOWtBQzl6ZG1jdmNHRnNaV2R5WldWdUFDOXpkbWN2Y0dGc1pYUjFj''@;'; + put 'put ''bkYxYjJselpRQXZjM1puTDNCaGJHVjJhVzlzWlhSeVpXUUFMM04yWnk5d1lYQmhlV0YzYUdsd0FDOXpkbWN2Y0dWaFkyaHdkV1ptQUM5emRtY3ZjR1Z5ZFFBdmMzWm5MM0JwYm1zQUwzTjJaeTl3YkhWdEFDOXpkbWN2Y0c5M1pHVnlZbXgxWlFBdmMzWm5MM0IxY25Cc1pRQXZjM1puTDNKbFpB''@;'; + put 'put ''QXZjM1puTDNKdmMzbGljbTkzYmdBdmMzWm5MM0p2ZVdGc1lteDFaUUF2YzNabkwzTmhaR1JzWldKeWIzZHVBQzl6ZG1jdmMyRnNiVzl1QUM5emRtY3ZjMkZ1WkhsaWNtOTNiZ0F2YzNabkwzTmxZV2R5WldWdUFDOXpkbWN2YzJWaGMyaGxiR3dBTDNOMlp5OXphV1Z1Ym1FQUwzTjJaeTl6YVd4''@;'; + put 'put ''MlpYSUFMM04yWnk5emEzbGliSFZsQUM5emRtY3ZjMnhoZEdWaWJIVmxBQzl6ZG1jdmMyeGhkR1ZuY21GNUFDOXpkbWN2YzJ4aGRHVm5jbVY1QUM5emRtY3ZjMjV2ZHdBdmMzWm5MM053Y21sdVoyZHlaV1Z1QUM5emRtY3ZjM1JsWld4aWJIVmxBQzl6ZG1jdmRHRnVBQzl6ZG1jdmRHVmhiQUF2''@;'; + put 'put ''YzNabkwzUm9hWE4wYkdVQUwzTjJaeTkwYjIxaGRHOEFMM04yWnk5MGRYSnhkVzlwYzJVQUwzTjJaeTkyYVc5c1pYUUFMM04yWnk5M2FHVmhkQUF2YzNabkwzZG9hWFJsQUM5emRtY3ZkMmhwZEdWemJXOXJaUUF2YzNabkwzbGxiR3h2ZHdBdmMzWm5MM2xsYkd4dmQyZHlaV1Z1QUM5NWJHZHVN''@;'; + put 'put ''eTh4QUM5NWJHZHVNeTh5QUM5NWJHZHVNeTh6QUM5NWJHZHVOQzh4QUM5NWJHZHVOQzh5QUM5NWJHZHVOQzh6QUM5NWJHZHVOQzgwQUM5NWJHZHVOUzh4QUM5NWJHZHVOUzh5QUM5NWJHZHVOUzh6QUM5NWJHZHVOUzgwQUM5NWJHZHVOUzgxQUM5NWJHZHVOaTh4QUM5NWJHZHVOaTh5QUM5NWJH''@;'; + put 'put ''ZHVOaTh6QUM5NWJHZHVOaTgwQUM5NWJHZHVOaTgxQUM5NWJHZHVOaTgyQUM5NWJHZHVOeTh4QUM5NWJHZHVOeTh5QUM5NWJHZHVOeTh6QUM5NWJHZHVOeTgwQUM5NWJHZHVOeTgxQUM5NWJHZHVOeTgyQUM5NWJHZHVOeTgzQUM5NWJHZHVPQzh4QUM5NWJHZHVPQzh5QUM5NWJHZHVPQzh6QUM5''@;'; + put 'put ''NWJHZHVPQzgwQUM5NWJHZHVPQzgxQUM5NWJHZHVPQzgyQUM5NWJHZHVPQzgzQUM5NWJHZHVPQzg0QUM5NWJHZHVPUzh4QUM5NWJHZHVPUzh5QUM5NWJHZHVPUzh6QUM5NWJHZHVPUzgwQUM5NWJHZHVPUzgxQUM5NWJHZHVPUzgyQUM5NWJHZHVPUzgzQUM5NWJHZHVPUzg0QUM5NWJHZHVPUzg1''@;'; + put 'put ''QUM5NWJHZHVZblV6THpFQUwzbHNaMjVpZFRNdk1nQXZlV3huYm1KMU15OHpBQzk1YkdkdVluVTBMekVBTDNsc1oyNWlkVFF2TWdBdmVXeG5ibUoxTkM4ekFDOTViR2R1WW5VMEx6UUFMM2xzWjI1aWRUVXZNUUF2ZVd4bmJtSjFOUzh5QUM5NWJHZHVZblUxTHpNQUwzbHNaMjVpZFRVdk5BQXZl''@;'; + put 'put ''V3huYm1KMU5TODFBQzk1YkdkdVluVTJMekVBTDNsc1oyNWlkVFl2TWdBdmVXeG5ibUoxTmk4ekFDOTViR2R1WW5VMkx6UUFMM2xzWjI1aWRUWXZOUUF2ZVd4bmJtSjFOaTgyQUM5NWJHZHVZblUzTHpFQUwzbHNaMjVpZFRjdk1nQXZlV3huYm1KMU55OHpBQzk1YkdkdVluVTNMelFBTDNsc1oy''@;'; + put 'put ''NWlkVGN2TlFBdmVXeG5ibUoxTnk4MkFDOTViR2R1WW5VM0x6Y0FMM2xzWjI1aWRUZ3ZNUUF2ZVd4bmJtSjFPQzh5QUM5NWJHZHVZblU0THpNQUwzbHNaMjVpZFRndk5BQXZlV3huYm1KMU9DODFBQzk1YkdkdVluVTRMellBTDNsc1oyNWlkVGd2TndBdmVXeG5ibUoxT0M4NEFDOTViR2R1WW5V''@;'; + put 'put ''NUx6RUFMM2xzWjI1aWRUa3ZNZ0F2ZVd4bmJtSjFPUzh6QUM5NWJHZHVZblU1THpRQUwzbHNaMjVpZFRrdk5RQXZlV3huYm1KMU9TODJBQzk1YkdkdVluVTVMemNBTDNsc1oyNWlkVGt2T0FBdmVXeG5ibUoxT1M4NUFDOTViRzl5WW5Jekx6RUFMM2xzYjNKaWNqTXZNZ0F2ZVd4dmNtSnlNeTh6''@;'; + put 'put ''QUM5NWJHOXlZbkkwTHpFQUwzbHNiM0ppY2pRdk1nQXZlV3h2Y21KeU5DOHpBQzk1Ykc5eVluSTBMelFBTDNsc2IzSmljalV2TVFBdmVXeHZjbUp5TlM4eUFDOTViRzl5WW5JMUx6TUFMM2xzYjNKaWNqVXZOQUF2ZVd4dmNtSnlOUzgxQUM5NWJHOXlZbkkyTHpFQUwzbHNiM0ppY2pZdk1nQXZl''@;'; + put 'put ''V3h2Y21KeU5pOHpBQzk1Ykc5eVluSTJMelFBTDNsc2IzSmljall2TlFBdmVXeHZjbUp5Tmk4MkFDOTViRzl5WW5JM0x6RUFMM2xzYjNKaWNqY3ZNZ0F2ZVd4dmNtSnlOeTh6QUM5NWJHOXlZbkkzTHpRQUwzbHNiM0ppY2pjdk5RQXZlV3h2Y21KeU55ODJBQzk1Ykc5eVluSTNMemNBTDNsc2Iz''@;'; + put 'put ''Smljamd2TVFBdmVXeHZjbUp5T0M4eUFDOTViRzl5WW5JNEx6TUFMM2xzYjNKaWNqZ3ZOQUF2ZVd4dmNtSnlPQzgxQUM5NWJHOXlZbkk0THpZQUwzbHNiM0ppY2pndk53QXZlV3h2Y21KeU9DODRBQzk1Ykc5eVluSTVMekVBTDNsc2IzSmljamt2TWdBdmVXeHZjbUp5T1M4ekFDOTViRzl5WW5J''@;'; + put 'put ''NUx6UUFMM2xzYjNKaWNqa3ZOUUF2ZVd4dmNtSnlPUzgyQUM5NWJHOXlZbkk1THpjQUwzbHNiM0ppY2prdk9BQXZlV3h2Y21KeU9TODVBQzk1Ykc5eWNtUXpMekVBTDNsc2IzSnlaRE12TWdBdmVXeHZjbkprTXk4ekFDOTViRzl5Y21RMEx6RUFMM2xzYjNKeVpEUXZNZ0F2ZVd4dmNuSmtOQzh6''@;'; + put 'put ''QUM5NWJHOXljbVEwTHpRQUwzbHNiM0p5WkRVdk1RQXZlV3h2Y25Ka05TOHlBQzk1Ykc5eWNtUTFMek1BTDNsc2IzSnlaRFV2TkFBdmVXeHZjbkprTlM4MUFDOTViRzl5Y21RMkx6RUFMM2xzYjNKeVpEWXZNZ0F2ZVd4dmNuSmtOaTh6QUM5NWJHOXljbVEyTHpRQUwzbHNiM0p5WkRZdk5RQXZl''@;'; + put 'put ''V3h2Y25Ka05pODJBQzk1Ykc5eWNtUTNMekVBTDNsc2IzSnlaRGN2TWdBdmVXeHZjbkprTnk4ekFDOTViRzl5Y21RM0x6UUFMM2xzYjNKeVpEY3ZOUUF2ZVd4dmNuSmtOeTgyQUM5NWJHOXljbVEzTHpjQUwzbHNiM0p5WkRndk1RQXZlV3h2Y25Ka09DOHlBQzk1Ykc5eWNtUTRMek1BTDNsc2Iz''@;'; + put 'put ''SnlaRGd2TkFBdmVXeHZjbkprT0M4MUFDOTViRzl5Y21RNEx6WUFMM2xzYjNKeVpEZ3ZOd0F2ZVd4dmNuSmtPQzg0QUM5NWJHOXljbVE1THpFQUwzbHNiM0p5WkRrdk1nQXZlV3h2Y25Ka09TOHpBQzk1Ykc5eWNtUTVMelFBTDNsc2IzSnlaRGt2TlFBdmVXeHZjbkprT1M4MkFDOTViRzl5Y21R''@;'; + put 'put ''NUx6Y0FMM2xzYjNKeVpEa3ZPQUF2ZVd4dmNuSmtPUzg1QUdGc2FXTmxZbXgxWlFCaGJuUnBjWFZsZDJocGRHVUFZVzUwYVhGMVpYZG9hWFJsTVFCaGJuUnBjWFZsZDJocGRHVXlBR0Z1ZEdseGRXVjNhR2wwWlRNQVlXNTBhWEYxWlhkb2FYUmxOQUJoY1hWaGJXRnlhVzVsQUdGeGRXRnRZWEpw''@;'; + put 'put ''Ym1VeEFHRnhkV0Z0WVhKcGJtVXlBR0Z4ZFdGdFlYSnBibVV6QUdGeGRXRnRZWEpwYm1VMEFHRjZkWEpsQUdGNmRYSmxNUUJoZW5WeVpUSUFZWHAxY21VekFHRjZkWEpsTkFCaVpXbG5aUUJpYVhOeGRXVUFZbWx6Y1hWbE1RQmlhWE54ZFdVeUFHSnBjM0YxWlRNQVltbHpjWFZsTkFCaWJHRnVZ''@;'; + put 'put ''MmhsWkdGc2JXOXVaQUJpYkhWbEFHSnNkV1V4QUdKc2RXVXlBR0pzZFdVekFHSnNkV1UwQUdKc2RXVjJhVzlzWlhRQVluSnZkMjRBWW5KdmQyNHhBR0p5YjNkdU1nQmljbTkzYmpNQVluSnZkMjQwQUdKMWNteDVkMjl2WkFCaWRYSnNlWGR2YjJReEFHSjFjbXg1ZDI5dlpESUFZblZ5YkhsM2Iy''@;'; + put 'put ''OWtNd0JpZFhKc2VYZHZiMlEwQUdOaFpHVjBZbXgxWlFCallXUmxkR0pzZFdVeEFHTmhaR1YwWW14MVpUSUFZMkZrWlhSaWJIVmxNd0JqWVdSbGRHSnNkV1UwQUdOb1lYSjBjbVYxYzJVQVkyaGhjblJ5WlhWelpURUFZMmhoY25SeVpYVnpaVElBWTJoaGNuUnlaWFZ6WlRNQVkyaGhjblJ5WlhW''@;'; + put 'put ''elpUUUFZMmh2WTI5c1lYUmxBR05vYjJOdmJHRjBaVEVBWTJodlkyOXNZWFJsTWdCamFHOWpiMnhoZEdVekFHTm9iMk52YkdGMFpUUUFZMjl5WVd3QVkyOXlZV3d4QUdOdmNtRnNNZ0JqYjNKaGJETUFZMjl5WVd3MEFHTnZjbTVtYkc5M1pYSmliSFZsQUdOdmNtNXphV3hyQUdOdmNtNXphV3hy''@;'; + put 'put ''TVFCamIzSnVjMmxzYXpJQVkyOXlibk5wYkdzekFHTnZjbTV6YVd4ck5BQmpjbWx0YzI5dUFHTjVZVzRBWTNsaGJqRUFZM2xoYmpJQVkzbGhiak1BWTNsaGJqUUFaR0Z5YTJkdmJHUmxibkp2WkFCa1lYSnJaMjlzWkdWdWNtOWtNUUJrWVhKcloyOXNaR1Z1Y205a01nQmtZWEpyWjI5c1pHVnVj''@;'; + put 'put ''bTlrTXdCa1lYSnJaMjlzWkdWdWNtOWtOQUJrWVhKclozSmxaVzRBWkdGeWEydG9ZV3RwQUdSaGNtdHZiR2wyWldkeVpXVnVBR1JoY210dmJHbDJaV2R5WldWdU1RQmtZWEpyYjJ4cGRtVm5jbVZsYmpJQVpHRnlhMjlzYVhabFozSmxaVzR6QUdSaGNtdHZiR2wyWldkeVpXVnVOQUJrWVhKcmIz''@;'; + put 'put ''SmhibWRsQUdSaGNtdHZjbUZ1WjJVeEFHUmhjbXR2Y21GdVoyVXlBR1JoY210dmNtRnVaMlV6QUdSaGNtdHZjbUZ1WjJVMEFHUmhjbXR2Y21Ob2FXUUFaR0Z5YTI5eVkyaHBaREVBWkdGeWEyOXlZMmhwWkRJQVpHRnlhMjl5WTJocFpETUFaR0Z5YTI5eVkyaHBaRFFBWkdGeWEzTmhiRzF2YmdC''@;'; + put 'put ''a1lYSnJjMlZoWjNKbFpXNEFaR0Z5YTNObFlXZHlaV1Z1TVFCa1lYSnJjMlZoWjNKbFpXNHlBR1JoY210elpXRm5jbVZsYmpNQVpHRnlhM05sWVdkeVpXVnVOQUJrWVhKcmMyeGhkR1ZpYkhWbEFHUmhjbXR6YkdGMFpXZHlZWGtBWkdGeWEzTnNZWFJsWjNKaGVURUFaR0Z5YTNOc1lYUmxaM0po''@;'; + put 'put ''ZVRJQVpHRnlhM05zWVhSbFozSmhlVE1BWkdGeWEzTnNZWFJsWjNKaGVUUUFaR0Z5YTNOc1lYUmxaM0psZVFCa1lYSnJkSFZ5Y1hWdmFYTmxBR1JoY210MmFXOXNaWFFBWkdWbGNIQnBibXNBWkdWbGNIQnBibXN4QUdSbFpYQndhVzVyTWdCa1pXVndjR2x1YXpNQVpHVmxjSEJwYm1zMEFHUmxa''@;'; + put 'put ''WEJ6YTNsaWJIVmxBR1JsWlhCemEzbGliSFZsTVFCa1pXVndjMnQ1WW14MVpUSUFaR1ZsY0hOcmVXSnNkV1V6QUdSbFpYQnphM2xpYkhWbE5BQmthVzFuY21GNUFHUnBiV2R5WlhrQVpHOWtaMlZ5WW14MVpRQmtiMlJuWlhKaWJIVmxNUUJrYjJSblpYSmliSFZsTWdCa2IyUm5aWEppYkhWbE13''@;'; + put 'put ''QmtiMlJuWlhKaWJIVmxOQUJtYVhKbFluSnBZMnNBWm1seVpXSnlhV05yTVFCbWFYSmxZbkpwWTJzeUFHWnBjbVZpY21samF6TUFabWx5WldKeWFXTnJOQUJtYkc5eVlXeDNhR2wwWlFCbWIzSmxjM1JuY21WbGJnQm5ZV2x1YzJKdmNtOEFaMmh2YzNSM2FHbDBaUUJuYjJ4a0FHZHZiR1F4QUdk''@;'; + put 'put ''dmJHUXlBR2R2YkdRekFHZHZiR1EwQUdkdmJHUmxibkp2WkFCbmIyeGtaVzV5YjJReEFHZHZiR1JsYm5KdlpESUFaMjlzWkdWdWNtOWtNd0JuYjJ4a1pXNXliMlEwQUdkeVlYa0FaM0poZVRBQVozSmhlVEVBWjNKaGVURXdBR2R5WVhreE1EQUFaM0poZVRFeEFHZHlZWGt4TWdCbmNtRjVNVE1B''@;'; + put 'put ''WjNKaGVURTBBR2R5WVhreE5RQm5jbUY1TVRZQVozSmhlVEUzQUdkeVlYa3hPQUJuY21GNU1Ua0FaM0poZVRJQVozSmhlVEl3QUdkeVlYa3lNUUJuY21GNU1qSUFaM0poZVRJekFHZHlZWGt5TkFCbmNtRjVNalVBWjNKaGVUSTJBR2R5WVhreU53Qm5jbUY1TWpnQVozSmhlVEk1QUdkeVlYa3pB''@;'; + put 'put ''R2R5WVhrek1BQm5jbUY1TXpFQVozSmhlVE15QUdkeVlYa3pNd0JuY21GNU16UUFaM0poZVRNMUFHZHlZWGt6TmdCbmNtRjVNemNBWjNKaGVUTTRBR2R5WVhrek9RQm5jbUY1TkFCbmNtRjVOREFBWjNKaGVUUXhBR2R5WVhrME1nQm5jbUY1TkRNQVozSmhlVFEwQUdkeVlYazBOUUJuY21GNU5E''@;'; + put 'put ''WUFaM0poZVRRM0FHZHlZWGswT0FCbmNtRjVORGtBWjNKaGVUVUFaM0poZVRVd0FHZHlZWGsxTVFCbmNtRjVOVElBWjNKaGVUVXpBR2R5WVhrMU5BQm5jbUY1TlRVQVozSmhlVFUyQUdkeVlYazFOd0JuY21GNU5UZ0FaM0poZVRVNUFHZHlZWGsyQUdkeVlYazJNQUJuY21GNU5qRUFaM0poZVRZ''@;'; + put 'put ''eUFHZHlZWGsyTXdCbmNtRjVOalFBWjNKaGVUWTFBR2R5WVhrMk5nQm5jbUY1TmpjQVozSmhlVFk0QUdkeVlYazJPUUJuY21GNU53Qm5jbUY1TnpBQVozSmhlVGN4QUdkeVlYazNNZ0JuY21GNU56TUFaM0poZVRjMEFHZHlZWGszTlFCbmNtRjVOellBWjNKaGVUYzNBR2R5WVhrM09BQm5jbUY1''@;'; + put 'put ''TnprQVozSmhlVGdBWjNKaGVUZ3dBR2R5WVhrNE1RQm5jbUY1T0RJQVozSmhlVGd6QUdkeVlYazROQUJuY21GNU9EVUFaM0poZVRnMkFHZHlZWGs0TndCbmNtRjVPRGdBWjNKaGVUZzVBR2R5WVhrNUFHZHlZWGs1TUFCbmNtRjVPVEVBWjNKaGVUa3lBR2R5WVhrNU13Qm5jbUY1T1RRQVozSmhl''@;'; + put 'put ''VGsxQUdkeVlYazVOZ0JuY21GNU9UY0FaM0poZVRrNEFHZHlZWGs1T1FCbmNtVmxiZ0JuY21WbGJqRUFaM0psWlc0eUFHZHlaV1Z1TXdCbmNtVmxialFBWjNKbFpXNTVaV3hzYjNjQVozSmxlUUJuY21WNU1BQm5jbVY1TVFCbmNtVjVNVEFBWjNKbGVURXdNQUJuY21WNU1URUFaM0psZVRFeUFH''@;'; + put 'put ''ZHlaWGt4TXdCbmNtVjVNVFFBWjNKbGVURTFBR2R5WlhreE5nQm5jbVY1TVRjQVozSmxlVEU0QUdkeVpYa3hPUUJuY21WNU1nQm5jbVY1TWpBQVozSmxlVEl4QUdkeVpYa3lNZ0JuY21WNU1qTUFaM0psZVRJMEFHZHlaWGt5TlFCbmNtVjVNallBWjNKbGVUSTNBR2R5WlhreU9BQm5jbVY1TWpr''@;'; + put 'put ''QVozSmxlVE1BWjNKbGVUTXdBR2R5Wlhrek1RQm5jbVY1TXpJQVozSmxlVE16QUdkeVpYa3pOQUJuY21WNU16VUFaM0psZVRNMkFHZHlaWGt6TndCbmNtVjVNemdBWjNKbGVUTTVBR2R5WlhrMEFHZHlaWGswTUFCbmNtVjVOREVBWjNKbGVUUXlBR2R5WlhrME13Qm5jbVY1TkRRQVozSmxlVFEx''@;'; + put 'put ''QUdkeVpYazBOZ0JuY21WNU5EY0FaM0psZVRRNEFHZHlaWGswT1FCbmNtVjVOUUJuY21WNU5UQUFaM0psZVRVeEFHZHlaWGsxTWdCbmNtVjVOVE1BWjNKbGVUVTBBR2R5WlhrMU5RQm5jbVY1TlRZQVozSmxlVFUzQUdkeVpYazFPQUJuY21WNU5Ua0FaM0psZVRZQVozSmxlVFl3QUdkeVpYazJN''@;'; + put 'put ''UUJuY21WNU5qSUFaM0psZVRZekFHZHlaWGsyTkFCbmNtVjVOalVBWjNKbGVUWTJBR2R5WlhrMk53Qm5jbVY1TmpnQVozSmxlVFk1QUdkeVpYazNBR2R5WlhrM01BQm5jbVY1TnpFQVozSmxlVGN5QUdkeVpYazNNd0JuY21WNU56UUFaM0psZVRjMUFHZHlaWGszTmdCbmNtVjVOemNBWjNKbGVU''@;'; + put 'put ''YzRBR2R5WlhrM09RQm5jbVY1T0FCbmNtVjVPREFBWjNKbGVUZ3hBR2R5WlhrNE1nQm5jbVY1T0RNQVozSmxlVGcwQUdkeVpYazROUUJuY21WNU9EWUFaM0psZVRnM0FHZHlaWGs0T0FCbmNtVjVPRGtBWjNKbGVUa0FaM0psZVRrd0FHZHlaWGs1TVFCbmNtVjVPVElBWjNKbGVUa3pBR2R5Wlhr''@;'; + put 'put ''NU5BQm5jbVY1T1RVQVozSmxlVGsyQUdkeVpYazVOd0JuY21WNU9UZ0FaM0psZVRrNUFHaHZibVY1WkdWM0FHaHZibVY1WkdWM01RQm9iMjVsZVdSbGR6SUFhRzl1Wlhsa1pYY3pBR2h2Ym1WNVpHVjNOQUJvYjNSd2FXNXJBR2h2ZEhCcGJtc3hBR2h2ZEhCcGJtc3lBR2h2ZEhCcGJtc3pBR2h2''@;'; + put 'put ''ZEhCcGJtczBBR2x1WkdsaGJuSmxaQUJwYm1ScFlXNXlaV1F4QUdsdVpHbGhibkpsWkRJQWFXNWthV0Z1Y21Wa013QnBibVJwWVc1eVpXUTBBR2x1WkdsbmJ3QnBiblpwY3dCcGRtOXllUUJwZG05eWVURUFhWFp2Y25reUFHbDJiM0o1TXdCcGRtOXllVFFBYTJoaGEya0FhMmhoYTJreEFHdG9Z''@;'; + put 'put ''V3RwTWdCcmFHRnJhVE1BYTJoaGEyazBBR3hoZG1WdVpHVnlBR3hoZG1WdVpHVnlZbXgxYzJnQWJHRjJaVzVrWlhKaWJIVnphREVBYkdGMlpXNWtaWEppYkhWemFESUFiR0YyWlc1a1pYSmliSFZ6YURNQWJHRjJaVzVrWlhKaWJIVnphRFFBYkdGM2JtZHlaV1Z1QUd4bGJXOXVZMmhwWm1admJn''@;'; + put 'put ''QnNaVzF2Ym1Ob2FXWm1iMjR4QUd4bGJXOXVZMmhwWm1admJqSUFiR1Z0YjI1amFHbG1abTl1TXdCc1pXMXZibU5vYVdabWIyNDBBR3hwWjJoMFlteDFaUUJzYVdkb2RHSnNkV1V4QUd4cFoyaDBZbXgxWlRJQWJHbG5hSFJpYkhWbE13QnNhV2RvZEdKc2RXVTBBR3hwWjJoMFkyOXlZV3dBYkds''@;'; + put 'put ''bmFIUmplV0Z1QUd4cFoyaDBZM2xoYmpFQWJHbG5hSFJqZVdGdU1nQnNhV2RvZEdONVlXNHpBR3hwWjJoMFkzbGhialFBYkdsbmFIUm5iMnhrWlc1eWIyUUFiR2xuYUhSbmIyeGtaVzV5YjJReEFHeHBaMmgwWjI5c1pHVnVjbTlrTWdCc2FXZG9kR2R2YkdSbGJuSnZaRE1BYkdsbmFIUm5iMnhr''@;'; + put 'put ''Wlc1eWIyUTBBR3hwWjJoMFoyOXNaR1Z1Y205a2VXVnNiRzkzQUd4cFoyaDBaM0poZVFCc2FXZG9kR2R5WlhrQWJHbG5hSFJ3YVc1ckFHeHBaMmgwY0dsdWF6RUFiR2xuYUhSd2FXNXJNZ0JzYVdkb2RIQnBibXN6QUd4cFoyaDBjR2x1YXpRQWJHbG5hSFJ6WVd4dGIyNEFiR2xuYUhSellXeHRi''@;'; + put 'put ''MjR4QUd4cFoyaDBjMkZzYlc5dU1nQnNhV2RvZEhOaGJHMXZiak1BYkdsbmFIUnpZV3h0YjI0MEFHeHBaMmgwYzJWaFozSmxaVzRBYkdsbmFIUnphM2xpYkhWbEFHeHBaMmgwYzJ0NVlteDFaVEVBYkdsbmFIUnphM2xpYkhWbE1nQnNhV2RvZEhOcmVXSnNkV1V6QUd4cFoyaDBjMnQ1WW14MVpU''@;'; + put 'put ''UUFiR2xuYUhSemJHRjBaV0pzZFdVQWJHbG5hSFJ6YkdGMFpXZHlZWGtBYkdsbmFIUnpiR0YwWldkeVpYa0FiR2xuYUhSemRHVmxiR0pzZFdVQWJHbG5hSFJ6ZEdWbGJHSnNkV1V4QUd4cFoyaDBjM1JsWld4aWJIVmxNZ0JzYVdkb2RITjBaV1ZzWW14MVpUTUFiR2xuYUhSemRHVmxiR0pzZFdV''@;'; + put 'put ''MEFHeHBaMmgwZVdWc2JHOTNBR3hwWjJoMGVXVnNiRzkzTVFCc2FXZG9kSGxsYkd4dmR6SUFiR2xuYUhSNVpXeHNiM2N6QUd4cFoyaDBlV1ZzYkc5M05BQnNhVzFsWjNKbFpXNEFiR2x1Wlc0QWJXRm5aVzUwWVFCdFlXZGxiblJoTVFCdFlXZGxiblJoTWdCdFlXZGxiblJoTXdCdFlXZGxiblJo''@;'; + put 'put ''TkFCdFlYSnZiMjRBYldGeWIyOXVNUUJ0WVhKdmIyNHlBRzFoY205dmJqTUFiV0Z5YjI5dU5BQnRaV1JwZFcxaGNYVmhiV0Z5YVc1bEFHMWxaR2wxYldKc2RXVUFiV1ZrYVhWdGIzSmphR2xrQUcxbFpHbDFiVzl5WTJocFpERUFiV1ZrYVhWdGIzSmphR2xrTWdCdFpXUnBkVzF2Y21Ob2FXUXpB''@;'; + put 'put ''RzFsWkdsMWJXOXlZMmhwWkRRQWJXVmthWFZ0Y0hWeWNHeGxBRzFsWkdsMWJYQjFjbkJzWlRFQWJXVmthWFZ0Y0hWeWNHeGxNZ0J0WldScGRXMXdkWEp3YkdVekFHMWxaR2wxYlhCMWNuQnNaVFFBYldWa2FYVnRjMlZoWjNKbFpXNEFiV1ZrYVhWdGMyeGhkR1ZpYkhWbEFHMWxaR2wxYlhOd2Nt''@;'; + put 'put ''bHVaMmR5WldWdUFHMWxaR2wxYlhSMWNuRjFiMmx6WlFCdFpXUnBkVzEyYVc5c1pYUnlaV1FBYldsa2JtbG5hSFJpYkhWbEFHMXBiblJqY21WaGJRQnRhWE4wZVhKdmMyVUFiV2x6ZEhseWIzTmxNUUJ0YVhOMGVYSnZjMlV5QUcxcGMzUjVjbTl6WlRNQWJXbHpkSGx5YjNObE5BQnRiMk5qWVhO''@;'; + put 'put ''cGJnQnVZWFpoYW05M2FHbDBaUUJ1WVhaaGFtOTNhR2wwWlRFQWJtRjJZV3B2ZDJocGRHVXlBRzVoZG1GcWIzZG9hWFJsTXdCdVlYWmhhbTkzYUdsMFpUUUFibUYyZVFCdVlYWjVZbXgxWlFCdWIyNWxBRzlzWkd4aFkyVUFiMnhwZG1Wa2NtRmlBRzlzYVhabFpISmhZakVBYjJ4cGRtVmtjbUZp''@;'; + put 'put ''TWdCdmJHbDJaV1J5WVdJekFHOXNhWFpsWkhKaFlqUUFiM0poYm1kbEFHOXlZVzVuWlRFQWIzSmhibWRsTWdCdmNtRnVaMlV6QUc5eVlXNW5aVFFBYjNKaGJtZGxjbVZrQUc5eVlXNW5aWEpsWkRFQWIzSmhibWRsY21Wa01nQnZjbUZ1WjJWeVpXUXpBRzl5WVc1blpYSmxaRFFBYjNKamFHbGtB''@;'; + put 'put ''Rzl5WTJocFpERUFiM0pqYUdsa01nQnZjbU5vYVdRekFHOXlZMmhwWkRRQWNHRnNaV2R2YkdSbGJuSnZaQUJ3WVd4bFozSmxaVzRBY0dGc1pXZHlaV1Z1TVFCd1lXeGxaM0psWlc0eUFIQmhiR1ZuY21WbGJqTUFjR0ZzWldkeVpXVnVOQUJ3WVd4bGRIVnljWFZ2YVhObEFIQmhiR1YwZFhKeGRX''@;'; + put 'put ''OXBjMlV4QUhCaGJHVjBkWEp4ZFc5cGMyVXlBSEJoYkdWMGRYSnhkVzlwYzJVekFIQmhiR1YwZFhKeGRXOXBjMlUwQUhCaGJHVjJhVzlzWlhSeVpXUUFjR0ZzWlhacGIyeGxkSEpsWkRFQWNHRnNaWFpwYjJ4bGRISmxaRElBY0dGc1pYWnBiMnhsZEhKbFpETUFjR0ZzWlhacGIyeGxkSEpsWkRR''@;'; + put 'put ''QWNHRndZWGxoZDJocGNBQndaV0ZqYUhCMVptWUFjR1ZoWTJod2RXWm1NUUJ3WldGamFIQjFabVl5QUhCbFlXTm9jSFZtWmpNQWNHVmhZMmh3ZFdabU5BQndaWEoxQUhCcGJtc0FjR2x1YXpFQWNHbHVheklBY0dsdWF6TUFjR2x1YXpRQWNHeDFiUUJ3YkhWdE1RQndiSFZ0TWdCd2JIVnRNd0J3''@;'; + put 'put ''YkhWdE5BQndiM2RrWlhKaWJIVmxBSEIxY25Cc1pRQndkWEp3YkdVeEFIQjFjbkJzWlRJQWNIVnljR3hsTXdCd2RYSndiR1UwQUhKbFpBQnlaV1F4QUhKbFpESUFjbVZrTXdCeVpXUTBBSEp2YzNsaWNtOTNiZ0J5YjNONVluSnZkMjR4QUhKdmMzbGljbTkzYmpJQWNtOXplV0p5YjNkdU13Qnli''@;'; + put 'put ''M041WW5KdmQyNDBBSEp2ZVdGc1lteDFaUUJ5YjNsaGJHSnNkV1V4QUhKdmVXRnNZbXgxWlRJQWNtOTVZV3hpYkhWbE13QnliM2xoYkdKc2RXVTBBSE5oWkdSc1pXSnliM2R1QUhOaGJHMXZiZ0J6WVd4dGIyNHhBSE5oYkcxdmJqSUFjMkZzYlc5dU13QnpZV3h0YjI0MEFITmhibVI1WW5KdmQy''@;'; + put 'put ''NEFjMlZoWjNKbFpXNEFjMlZoWjNKbFpXNHhBSE5sWVdkeVpXVnVNZ0J6WldGbmNtVmxiak1BYzJWaFozSmxaVzQwQUhObFlYTm9aV3hzQUhObFlYTm9aV3hzTVFCelpXRnphR1ZzYkRJQWMyVmhjMmhsYkd3ekFITmxZWE5vWld4c05BQnphV1Z1Ym1FQWMybGxibTVoTVFCemFXVnVibUV5QUhO''@;'; + put 'put ''cFpXNXVZVE1BYzJsbGJtNWhOQUJ6YTNsaWJIVmxBSE5yZVdKc2RXVXhBSE5yZVdKc2RXVXlBSE5yZVdKc2RXVXpBSE5yZVdKc2RXVTBBSE5zWVhSbFlteDFaUUJ6YkdGMFpXSnNkV1V4QUhOc1lYUmxZbXgxWlRJQWMyeGhkR1ZpYkhWbE13QnpiR0YwWldKc2RXVTBBSE5zWVhSbFozSmhlUUJ6''@;'; + put 'put ''YkdGMFpXZHlZWGt4QUhOc1lYUmxaM0poZVRJQWMyeGhkR1ZuY21GNU13QnpiR0YwWldkeVlYazBBSE5zWVhSbFozSmxlUUJ6Ym05M0FITnViM2N4QUhOdWIzY3lBSE51YjNjekFITnViM2MwQUhOd2NtbHVaMmR5WldWdUFITndjbWx1WjJkeVpXVnVNUUJ6Y0hKcGJtZG5jbVZsYmpJQWMzQnlh''@;'; + put 'put ''VzVuWjNKbFpXNHpBSE53Y21sdVoyZHlaV1Z1TkFCemRHVmxiR0pzZFdVQWMzUmxaV3hpYkhWbE1RQnpkR1ZsYkdKc2RXVXlBSE4wWldWc1lteDFaVE1BYzNSbFpXeGliSFZsTkFCMFlXNEFkR0Z1TVFCMFlXNHlBSFJoYmpNQWRHRnVOQUIwYUdsemRHeGxBSFJvYVhOMGJHVXhBSFJvYVhOMGJH''@;'; + put 'put ''VXlBSFJvYVhOMGJHVXpBSFJvYVhOMGJHVTBBSFJ2YldGMGJ3QjBiMjFoZEc4eEFIUnZiV0YwYnpJQWRHOXRZWFJ2TXdCMGIyMWhkRzgwQUhSMWNuRjFiMmx6WlFCMGRYSnhkVzlwYzJVeEFIUjFjbkYxYjJselpUSUFkSFZ5Y1hWdmFYTmxNd0IwZFhKeGRXOXBjMlUwQUhacGIyeGxkQUIyYVc5''@;'; + put 'put ''c1pYUnlaV1FBZG1sdmJHVjBjbVZrTVFCMmFXOXNaWFJ5WldReUFIWnBiMnhsZEhKbFpETUFkbWx2YkdWMGNtVmtOQUIzYUdWaGRBQjNhR1ZoZERFQWQyaGxZWFF5QUhkb1pXRjBNd0IzYUdWaGREUUFkMmhwZEdVQWQyaHBkR1Z6Ylc5clpRQjVaV3hzYjNjQWVXVnNiRzkzTVFCNVpXeHNiM2N5''@;'; + put 'put ''QUhsbGJHeHZkek1BZVdWc2JHOTNOQUI1Wld4c2IzZG5jbVZsYmdCc1lXTnJBR2hwZEdVQWFXZG9kR2R5WlhrQVdERXhMd0F2SlhNdkpYTUFhVzFoWjJWelkyRnNaUUJtWVd4elpRQmliR0ZqYXdCa2IzUjBaV1FBWkdGemFHVmtBR053TFQ1emNtTUFhSFJ0YkhSaFlteGxMbU1BWlcxcGRGOW9k''@;'; + put 'put ''RzFzWDJsdFp3QmpjQzArYzNKald6QmRBSFJ5WVc1emNHRnlaVzUwQUY4bFpBQWxaQUF5QURNQU5BQTFBRFlBTndBNEFEa0FNVEFBTVRFQU1USUFNVE1BTVRRQU1UVUFNVFlBTVRjQU1UZ0FNVGtBTWpBQVFXZHViMlJsYVc1bWIxOTBBRUZuWldSblpXbHVabTlmZEFCeWIzZG5BR052YkdjQVFX''@;'; + put 'put ''ZHlZWEJvYVc1bWIxOTBBR1JsYkhnZ1BqMGdNQUJ3YjNOZmFIUnRiRjkwWW13QVpHVnNlU0ErUFNBd0FIUmhZbXhsSUhOcGVtVWdkRzl2SUhOdFlXeHNJR1p2Y2lCamIyNTBaVzUwQ2dCbWFYaGxaQ0IwWVdKc1pTQnphWHBsSUhkcGRHZ2dkVzV6Y0dWamFXWnBaV1FnZDJsa2RHZ2diM0lnYUdW''@;'; + put 'put ''cFoyaDBDZ0JqWld4c0lITnBlbVVnZEc5dklITnRZV3hzSUdadmNpQmpiMjUwWlc1MENnQm1hWGhsWkNCalpXeHNJSE5wZW1VZ2QybDBhQ0IxYm5Od1pXTnBabWxsWkNCM2FXUjBhQ0J2Y2lCb1pXbG5hSFFLQUU1dklHOXlJR2x0Y0hKdmNHVnlJR2x0WVdkbElHWnBiR1U5SWlWeklnb0FjR1Z1''@;'; + put 'put ''WTI5c2IzSUFMVDRBWmxCUkxtTUFVRkZqYUdWamF3QklaV0Z3SUc5MlpYSm1iRzkzQ2dBbElWQlRMVUZrYjJKbExUSXVNQW92Ym05a1pTQjdDaUFnTDFrZ1pYaGphQ0JrWldZS0lDQXZXQ0JsZUdOb0lHUmxaZ29nSUM5NUlHVjRZMmdnWkdWbUNpQWdMM2dnWlhoamFDQmtaV1lLSUNCdVpYZHdZ''@;'; + put 'put ''WFJvQ2lBZ2VDQjVJRzF2ZG1WMGJ3b2dJSGdnV1NCc2FXNWxkRzhLSUNCWUlGa2diR2x1WlhSdkNpQWdXQ0I1SUd4cGJtVjBid29nSUdOc2IzTmxjR0YwYUNCbWFXeHNDbjBnWkdWbUNpOWpaV3hzSUhzS0lDQXZXU0JsZUdOb0lHUmxaZ29nSUM5WUlHVjRZMmdnWkdWbUNpQWdMM2tnWlhoamFD''@;'; + put 'put ''QmtaV1lLSUNBdmVDQmxlR05vSUdSbFpnb2dJRzVsZDNCaGRHZ0tJQ0I0SUhrZ2JXOTJaWFJ2Q2lBZ2VDQlpJR3hwYm1WMGJ3b2dJRmdnV1NCc2FXNWxkRzhLSUNCWUlIa2diR2x1WlhSdkNpQWdZMnh2YzJWd1lYUm9JSE4wY205clpRcDlJR1JsWmdvQWMyaHZkM0JoWjJVS0FHWmhhV3hsWkNC''@;'; + put 'put ''aGRDQnViMlJsSUNWa1d6QmRDZ0J1Y0MwK1kyVnNiSE5iTUYwQWJXRjZaUzVqQUdOb2ExTm5jbUZ3YUFCbVlXbHNaV1FnWVhRZ2JtOWtaU0FsWkZzeFhRb0FibkF0UG1ObGJHeHpXekZkQUdScGRHVnRjd0JtYVc1a1UxWmxjblFBSlNVbEpWQmhaMlU2SURFZ01Rb2xKU1VsVUdGblpVSnZkVzVr''@;'; + put 'put ''YVc1blFtOTRPaUFsWkNBbFpDQWxaQ0FsWkFvQUpXWWdKV1lnZEhKaGJuTnNZWFJsQ2dBd0lEQWdNU0J6WlhSeVoySmpiMnh2Y2dvQUpXWWdKV1lnSldZZ0pXWWdibTlrWlFvQU1DQXdJREFnYzJWMGNtZGlZMjlzYjNJS0FDVm1JQ1ZtSUNWbUlDVm1JR05sYkd3S0FERWdNQ0F3SUhObGRISm5Z''@;'; + put 'put ''bU52Ykc5eUNnQjFibVY0Y0dWamRHVmtJR05oYzJVZ2FXNGdiRzlqWVhSbFgyVnVaSEJ2YVc1MENnQXdBSFJ5WVhCbGVtOXBaQzVqQUd4dlkyRjBaVjlsYm1Sd2IybHVkQUJoWkdSZmMyVm5iV1Z1ZERvZ1pYSnliM0lLQUc1bGQyNXZaR1U2SUZGMVpYSjVMWFJoWW14bElHOTJaWEptYkc5M0Nn''@;'; + put 'put ''QnVaWGR1YjJSbEFHNWxkM1J5WVhBNklGUnlZWEJsZW05cFpDMTBZV0pzWlNCdmRtVnlabXh2ZHlBbFpBb0FibVYzZEhKaGNBQnBibVJsZUM1akFGSlVjbVZsVTJWaGNtTm9BRzR0UG14bGRtVnNJRDQ5SURBQVVsUnlaV1ZKYm5ObGNuUUFiR1YyWld3Z1BqMGdNQ0FtSmlCc1pYWmxiQ0E4UFNB''@;'; + put 'put ''b0ttNHBMVDVzWlhabGJBQnlMVDVpYjNWdVpHRnllVnRwWFNBOFBTQnlMVDVpYjNWdVpHRnllVnRPVlUxRVNVMVRJQ3NnYVYwQWNpQW1KaUJ1SUNZbUlHNWxkd0JTVkhKbFpVbHVjMlZ5ZERJQWJHVjJaV3dnUGowZ01DQW1KaUJzWlhabGJDQThQU0J1TFQ1c1pYWmxiQUJHUVV4VFJRQnViMlJs''@;'; + put 'put ''TG1NQVRtOWtaVU52ZG1WeUFISWdKaVlnYmdCUWFXTnJRbkpoYm1Ob0FFRmtaRUp5WVc1amFBQnBJRHdnVGs5RVJVTkJVa1FBYm1WM0FHNGdKaVlnYVNBK1BTQXdJQ1ltSUdrZ1BDQk9UMFJGUTBGU1JBQkVhWE5qYjI1Q2NtRnVZMmdBY2dCeVpXTjBZVzVuYkdVdVl3QlNaV04wUVhKbFlRQnlJ''@;'; + put 'put ''Q1ltSUhKeUFFTnZiV0pwYm1WU1pXTjBBSElnSmlZZ2N3QlBkbVZ5YkdGd0FHNEFjM0JzYVhRdWNTNWpBRk53YkdsMFRtOWtaUUJpQUc0dFBtTnZkVzUwSUNzZ0tDcHViaWt0UG1OdmRXNTBJRDA5SUU1UFJFVkRRVkpFSUNzZ01RQk1iMkZrVG05a1pYTUFjUUJ3QUhKMGNDMCtjM0JzYVhRdVVH''@;'; + put 'put ''RnlkR2wwYVc5dWMxc3dYUzV3WVhKMGFYUnBiMjViYVYwZ1BUMGdNQ0I4ZkNCeWRIQXRQbk53YkdsMExsQmhjblJwZEdsdmJuTmJNRjB1Y0dGeWRHbDBhVzl1VzJsZElEMDlJREVBY25Sd0xUNXpjR3hwZEM1UVlYSjBhWFJwYjI1eld6QmRMbU52ZFc1MFd6QmRJQ3NnY25Sd0xUNXpjR3hwZEM1''@;'; + put 'put ''UVlYSjBhWFJwYjI1eld6QmRMbU52ZFc1MFd6RmRJRDA5SUU1UFJFVkRRVkpFSUNzZ01RQk5aWFJvYjJSYVpYSnZBSEowY0MwK2MzQnNhWFF1VUdGeWRHbDBhVzl1YzFzd1hTNWpiM1Z1ZEZzd1hTQStQU0J5ZEhBdFBrMXBia1pwYkd3Z0ppWWdjblJ3TFQ1emNHeHBkQzVRWVhKMGFYUnBiMjV6''@;'; + put 'put ''V3pCZExtTnZkVzUwV3pGZElENDlJSEowY0MwK1RXbHVSbWxzYkFBaGNuUndMVDV6Y0d4cGRDNVFZWEowYVhScGIyNXpXekJkTG5SaGEyVnVXMmxkQUVOc1lYTnphV1o1QUVkbGRFSnlZVzVqYUdWekFHNHRQbUp5WVc1amFGdHBYUzVqYUdsc1pBQUFBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNB''@;'; + put 'put ''Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0Fn''@;'; + put 'put ''SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQVFJREJBVUdCd2dKQ2dz''@;'; + put 'put ''TURRNFBFQkVTRXhRVkZoY1lHUm9iSEIwZUh5QWhJaU1rSlNZbktBSUNBZ0lDQWhBTVdRRUFIMUFJQXdjU0V4UlhGaGNJQzJrTUh3b0ZEQTRwRVNzUExSQXZNQ0F5QmpRMUd4d2RIZ3NNSVNJakpDVW1KeWdNR0JrWEJBb2JIQm9nS2dvaElpTWtKU1luS0F3S0RsTUtMRmd4V0ZoWVdGaFlEQnNj''@;'; + put 'put ''RHk1WU15RWlJeVFsSmljb0d4ei9VLy8vSVNJakpDVW1KeWdNLy84Ri8vLy9DUlQvLy8vLy93d2JIUDhRRlJZaElpTWtKU1luS0JzYy8vLy8veUVpSXlRbEppY29EUDhTRXhRUkZoZi8vLy8vLy84TUd4ei8vLzhTSVNJakpDVW1KeWdiSFAvLy8vOGhJaU1rSlNZbktBei8vLy8vLy84VC8vLy8v''@;'; + put 'put ''Ly8vREJzYy8vLy8veUVpSXlRbEppY29HeHovLy8vL0lTSWpKQ1VtSnlnU0V4UVZGaGNZR2YvLy8vLy8vLy8vL3lNa0pTWW5HeElURkJZWElqWm9BUjg0VmlFZ0Foc2JHMTRiR3pjNWNEYlN3azhFUENKSElqOGlSQ0lpV0NKbElpSUZCbDlnT1FRSENBa0tDd3dORGdSbVoxMXFiUVVHYjFnN2NR''@;'; + put 'put ''Y0lDUW9MREEwT0JISThXM00rWVVZYkVoTVVGaGNFQlFZL1FXSkpCd2dKQ2dzTURRNEZCZ0JjQUFBSENBa0tDd3dORGdRQUFFOEFBQUJUUWdBQUFBQUFCQVVHQUVSVVZRY0lDUW9MREEwT0JRWUFBQUFBQndnSkNnc01EUTRFQUNvc0xrY3hNd0FBQUFBQUFBUUZCZ0FBQUVvSENBa0tDd3dORGdV''@;'; + put 'put ''R0FBQUFBQWNJQ1FvTERBME9CQUFBQUFBQUFFd0FBQUFBQUFBRUJRWUFBQUFBQndnSkNnc01EUTRGQmdBQUFBQUhDQWtLQ3d3TkRpa3JMUzh3TWpRMUFBQUFBQUFBQUFBQUtTc3RNRElBQkM4QUpDTUFFaFFXR2h3ZUlCZ0FCUWN2THk4QUx5OEFBQWtJS0FBQUFTSUNCZ0FBQUFBQUNBQUFBQUFB''@;'; + put 'put ''QUFBQUFBQUFBQUFsQXlZVENpa1ZDeW9YRGkwWkVSc01LeDBOTEI4UElSQUFNd0F3QUM5REFERUFMd0ExTGlkQ01rRUFPamdBUERSRkFEWUFRQUFBUHdCRU56czVQUUFDQXdNQkFRSUJBUUVEQXdNREF3TURBd0VCQVFFQkFRRUJBUUVCQVFFQkFRRUNBUUVDQUFZQkF3TURBd01CQUFFQ0F3QUVB''@;'; + put 'put ''UUlEQUFRQUJBQUVBQU1DQVFJQkFnRlRlVzUwWVhnZ1pYSnliM0k2SUc1dmJpMXpjR0ZqWlNCemRISnBibWNnZFhObFpDQmlaV1p2Y21VZ1BGUkJRa3hGUGdCVGVXNTBZWGdnWlhKeWIzSTZJRzV2YmkxemNHRmpaU0J6ZEhKcGJtY2dkWE5sWkNCaFpuUmxjaUE4TDFSQlFreEZQZ0FBS1NvcUtp''@;'; + put 'put ''c3NMQzB0TFMwdExTMHRMUzB1THpBeE1qTTBOVFkzT0RrNk96dzlQajQvUDBGQVFrSkNRa0pDUTBORVJFUkdSVWRIUjBsSVNraExTRXhJVFUxT1RrOVAvd01QRUJFak9pUTlKVUFWUXlaRkowZ1lTeGxOR2lnY1RoMGVVRkZTV1Zwc2EyNWpaRmRwYldWdGIzSjVJR1Y0YUdGMWMzUmxaQUFsY3lC''@;'; + put 'put ''cGJpQnNhVzVsSUNWa0lBb0FMaTR1SUNWeklDNHVMZ29BVkVGQ1RFVUFWRklBVkVnQVZFUUFTRlJOVEFCR1QwNVVBRUlBVlFCUEFFa0FVMVZRQUZOVlFnQlRBRUpTQUVoU0FGWlNBRWxOUndCVmJtdHViM2R1SUVoVVRVd2daV3hsYldWdWRDQThKWE0rSUc5dUlHeHBibVVnSldRZ0NnQThTVTFI''@;'; + put 'put ''UGdCSmJHeGxaMkZzSUdGMGRISnBZblYwWlNBbGN5QnBiaUFsY3lBdElHbG5ibTl5WldRS0FITmpZV3hsQUhOeVl3QThRbEkrQUdGc2FXZHVBRWxIU0ZRQVJVWlVBRVZPVkVWU0FFbHNiR1ZuWVd3Z2RtRnNkV1VnSlhNZ1ptOXlJRUZNU1VkT0lDMGdhV2R1YjNKbFpBb0FQRVpQVGxRK0FHTnZi''@;'; + put 'put ''Rzl5QUdaaFkyVUFjRzlwYm5RdGMybDZaUUJRVDBsT1ZDMVRTVnBGQUVsdGNISnZjR1Z5SUNWeklIWmhiSFZsSUNWeklDMGdhV2R1YjNKbFpBQWxjeUIyWVd4MVpTQWxjeUErSUNWa0lDMGdkRzl2SUd4aGNtZGxJQzBnYVdkdWIzSmxaQUFsY3lCMllXeDFaU0FsY3lBOElDVmtJQzBnZEc5dklI''@;'; + put 'put ''TnRZV3hzSUMwZ2FXZHViM0psWkFBOFZFUStBR0poYkdsbmJnQmlaMk52Ykc5eUFHSnZjbVJsY2dCalpXeHNjR0ZrWkdsdVp3QmpaV3hzYzNCaFkybHVad0JqYjJ4emNHRnVBR1pwZUdWa2MybDZaUUJuY21Ga2FXVnVkR0Z1WjJ4bEFHaGxhV2RvZEFCb2NtVm1BR2xrQUhCdmNuUUFjbTkzYzNC''@;'; + put 'put ''aGJnQnphV1JsY3dCemRIbHNaUUIwWVhKblpYUUFkR2wwYkdVQWRHOXZiSFJwY0FCMllXeHBaMjRBZDJsa2RHZ0FWMGxFVkVnQVQxUlVUMDBBVDFBQVNVUkVURVVBU1d4c1pXZGhiQ0IyWVd4MVpTQWxjeUJtYjNJZ1ZrRk1TVWRPSUMwZ2FXZHViM0psWkFvQUlDd0FUMVZPUkVWRUFFRkVTVUZN''@;'; + put 'put ''QUVsc2JHVm5ZV3dnZG1Gc2RXVWdKWE1nWm05eUlGTlVXVXhGSUMwZ2FXZHViM0psWkFvQVUwOU1TVVFBU1U1V1NWTkpRa3hGQUVsT1ZrbFRBRVJQVkZSRlJBQkVRVk5JUlVRQVZXNXlaV052WjI1cGVtVmtJR05vWVhKaFkzUmxjaUFuSldNbklDZ2xaQ2tnYVc0Z2MybGtaWE1nWVhSMGNtbGlk''@;'; + put 'put ''WFJsQ2dCU1QxZFRVRUZPQUZKUFYxTlFRVTRnZG1Gc2RXVWdZMkZ1Ym05MElHSmxJREFnTFNCcFoyNXZjbVZrQ2dCSVJVbEhTRlFBUjFKQlJFbEZUbFJCVGtkTVJRQlNWVVVBUVV4VFJRQkpiR3hsWjJGc0lIWmhiSFZsSUNWeklHWnZjaUJHU1ZoRlJGTkpXa1VnTFNCcFoyNXZjbVZrQ2dCRFQw''@;'; + put 'put ''eFRVRUZPQUVOUFRGTlFRVTRnZG1Gc2RXVWdZMkZ1Ym05MElHSmxJREFnTFNCcFoyNXZjbVZrQ2dCRFJVeE1VMUJCUTBsT1J3QkRSVXhNVUVGRVJFbE9Sd0JDVDFKRVJWSUFTV3hzWldkaGJDQjJZV3gxWlNBbGN5Qm1iM0lnUWtGTVNVZE9JR2x1SUZSRUlDMGdhV2R1YjNKbFpBb0FSVmhVQUVs''@;'; + put 'put ''c2JHVm5ZV3dnZG1Gc2RXVWdKWE1nWm05eUlFRk1TVWRPSUdsdUlGUkVJQzBnYVdkdWIzSmxaQW9BUEZSQlFreEZQZ0JqWld4c1ltOXlaR1Z5QUdOdmJIVnRibk1BY205M2N3QlZibXR1YjNkdUlIWmhiSFZsSUNWeklHWnZjaUJTVDFkVElDMGdhV2R1YjNKbFpBb0FWVzVyYm05M2JpQjJZV3gx''@;'; + put 'put ''WlNBbGN5Qm1iM0lnUTA5TVZVMU9VeUF0SUdsbmJtOXlaV1FLQUVORlRFeFRRazlTUkVWU0FEeElWRTFNUGdBOEwwaFVUVXcrQUMwdEFFeGhZbVZzSUdOc2IzTmxaQ0JpWldadmNtVWdaVzVrSUc5bUlFaFVUVXdnWld4bGJXVnVkQW9BVlc1amJHOXpaV1FnWTI5dGJXVnVkQW9BYWlBOVBTQXdB''@;'; + put 'put ''R04yZEM1akFGQnZZbk53WVhSb0FISnZkWFJsTG1NQWJHbGljR0YwYUM4bGN6b2xaRG9nSlhNS0FITm9iM0owWlhOMExtTUFjMjkxY21ObElIQnZhVzUwSUc1dmRDQnBiaUJoYm5rZ2RISnBZVzVuYkdVQVpHVnpkR2x1WVhScGIyNGdjRzlwYm5RZ2JtOTBJR2x1SUdGdWVTQjBjbWxoYm1kc1pR''@;'; + put 'put ''QmpZVzV1YjNRZ1ptbHVaQ0IwY21saGJtZHNaU0J3WVhSb0FHTmhibTV2ZENCdFlXeHNiMk1nYjNCekFHTmhibTV2ZENCeVpXRnNiRzlqSUc5d2N3QjBjbWxoYm1kMWJHRjBhVzl1SUdaaGFXeGxaQUJqWVc1dWIzUWdiV0ZzYkc5aklIUnlhWE1BWTJGdWJtOTBJSEpsWVd4c2IyTWdkSEpwY3dC''@;'; + put 'put ''allXNXViM1FnYldGc2JHOWpJR1J4TG5CdWJITUFZMkZ1Ym05MElISmxZV3hzYjJNZ1pIRXVjRzVzY3dCallXNXViM1FnYldGc2JHOWpJSEJ1YkhNQVkyRnVibTkwSUcxaGJHeHZZeUJ3Ym14d2N3QmpZVzV1YjNRZ2NtVmhiR3h2WXlCd2JteHpBR05oYm01dmRDQnlaV0ZzYkc5aklIQnViSEJ6''@;'; + put 'put ''QUVORVFWUkJBRWxFQUVsRVVrVkdBRWxFVWtWR1V3QkZUbFJKVkZrQVJVNVVTVlJKUlZNQVRrMVVUMHRGVGdCT1RWUlBTMFZPVXdCT1QxUkJWRWxQVGlnQUtBQjhBR2gwZEhBNkx5OTNkM2N1ZHpNdWIzSm5MMWhOVEM4eE9UazRMMjVoYldWemNHRmpaUUJvZEhSd09pOHZkM2QzTG5jekxtOXla''@;'; + put 'put ''eTh5TURBd0wzaHRiRzV6THdCNGJXdzlhSFIwY0RvdkwzZDNkeTUzTXk1dmNtY3ZXRTFNTHpFNU9UZ3ZibUZ0WlhOd1lXTmxBQzlrWlhZdmRYSmhibVJ2YlFCbVlXeHNZbUZqYXlnMEtRQm5aWFIwYVcxbGIyWmtZWGxmY21WeklEMDlJREFBZUcxc2NHRnljMlV1WXdCbllYUm9aWEpmZEdsdFpW''@;'; + put 'put ''OWxiblJ5YjNCNUFFVllVRUZVWDBWT1ZGSlBVRmxmUkVWQ1ZVY0FNUUJGYm5SeWIzQjVPaUFsY3lBdExUNGdNSGdsTUNwc2VDQW9KV3gxSUdKNWRHVnpLUW9BYVc1MllXeHBaQ0JoY21kMWJXVnVkQUJ3Y21WbWFYZ2diWFZ6ZENCdWIzUWdZbVVnWW05MWJtUWdkRzhnYjI1bElHOW1JSFJvWlNC''@;'; + put 'put ''eVpYTmxjblpsWkNCdVlXMWxjM0JoWTJVZ2JtRnRaWE1BY21WelpYSjJaV1FnY0hKbFptbDRJQ2g0Yld4dWN5a2diWFZ6ZENCdWIzUWdZbVVnWkdWamJHRnlaV1FnYjNJZ2RXNWtaV05zWVhKbFpBQnlaWE5sY25abFpDQndjbVZtYVhnZ0tIaHRiQ2tnYlhWemRDQnViM1FnWW1VZ2RXNWtaV05z''@;'; + put 'put ''WVhKbFpDQnZjaUJpYjNWdVpDQjBieUJoYm05MGFHVnlJRzVoYldWemNHRmpaU0J1WVcxbEFHTmhibTV2ZENCemRYTndaVzVrSUdsdUlHVjRkR1Z5Ym1Gc0lIQmhjbUZ0WlhSbGNpQmxiblJwZEhrQWNHRnljMmx1WnlCbWFXNXBjMmhsWkFCd1lYSnphVzVuSUdGaWIzSjBaV1FBY0dGeWMyVnlJ''@;'; + put 'put ''RzV2ZENCemRYTndaVzVrWldRQWNHRnljMlZ5SUhOMWMzQmxibVJsWkFCcGJHeGxaMkZzSUdOb1lYSmhZM1JsY2loektTQnBiaUJ3ZFdKc2FXTWdhV1FBZEdWNGRDQmtaV05zWVhKaGRHbHZiaUJ1YjNRZ2QyVnNiQzFtYjNKdFpXUUFXRTFNSUdSbFkyeGhjbUYwYVc5dUlHNXZkQ0IzWld4c0xX''@;'; + put 'put ''WnZjbTFsWkFCcGJtTnZiWEJzWlhSbElHMWhjbXQxY0NCcGJpQndZWEpoYldWMFpYSWdaVzUwYVhSNUFHMTFjM1FnYm05MElIVnVaR1ZqYkdGeVpTQndjbVZtYVhnQWRXNWliM1Z1WkNCd2NtVm1hWGdBWTJGdWJtOTBJR05vWVc1blpTQnpaWFIwYVc1bklHOXVZMlVnY0dGeWMybHVaeUJvWVhN''@;'; + put 'put ''Z1ltVm5kVzRBY21WeGRXVnpkR1ZrSUdabFlYUjFjbVVnY21WeGRXbHlaWE1nV0UxTVgwUlVSQ0J6ZFhCd2IzSjBJR2x1SUVWNGNHRjBBR1Z1ZEdsMGVTQmtaV05zWVhKbFpDQnBiaUJ3WVhKaGJXVjBaWElnWlc1MGFYUjVBSFZ1Wlhod1pXTjBaV1FnY0dGeWMyVnlJSE4wWVhSbElDMGdjR3hs''@;'; + put 'put ''WVhObElITmxibVFnWVNCaWRXY2djbVZ3YjNKMEFHUnZZM1Z0Wlc1MElHbHpJRzV2ZENCemRHRnVaR0ZzYjI1bEFHVnljbTl5SUdsdUlIQnliMk5sYzNOcGJtY2daWGgwWlhKdVlXd2daVzUwYVhSNUlISmxabVZ5Wlc1alpRQjFibU5zYjNObFpDQkRSRUZVUVNCelpXTjBhVzl1QUdWdVkyOWth''@;'; + put 'put ''VzVuSUhOd1pXTnBabWxsWkNCcGJpQllUVXdnWkdWamJHRnlZWFJwYjI0Z2FYTWdhVzVqYjNKeVpXTjBBSFZ1YTI1dmQyNGdaVzVqYjJScGJtY0FXRTFNSUc5eUlIUmxlSFFnWkdWamJHRnlZWFJwYjI0Z2JtOTBJR0YwSUhOMFlYSjBJRzltSUdWdWRHbDBlUUJ5WldabGNtVnVZMlVnZEc4Z1pY''@;'; + put 'put ''aDBaWEp1WVd3Z1pXNTBhWFI1SUdsdUlHRjBkSEpwWW5WMFpRQnlaV1psY21WdVkyVWdkRzhnWW1sdVlYSjVJR1Z1ZEdsMGVRQnlaV1psY21WdVkyVWdkRzhnYVc1MllXeHBaQ0JqYUdGeVlXTjBaWElnYm5WdFltVnlBR0Z6ZVc1amFISnZibTkxY3lCbGJuUnBkSGtBY21WamRYSnphWFpsSUdW''@;'; + put 'put ''dWRHbDBlU0J5WldabGNtVnVZMlVBZFc1a1pXWnBibVZrSUdWdWRHbDBlUUJwYkd4bFoyRnNJSEJoY21GdFpYUmxjaUJsYm5ScGRIa2djbVZtWlhKbGJtTmxBR3AxYm1zZ1lXWjBaWElnWkc5amRXMWxiblFnWld4bGJXVnVkQUJrZFhCc2FXTmhkR1VnWVhSMGNtbGlkWFJsQUcxcGMyMWhkR05v''@;'; + put 'put ''WldRZ2RHRm5BSEJoY25ScFlXd2dZMmhoY21GamRHVnlBSFZ1WTJ4dmMyVmtJSFJ2YTJWdUFHNXZkQ0IzWld4c0xXWnZjbTFsWkNBb2FXNTJZV3hwWkNCMGIydGxiaWtBYm04Z1pXeGxiV1Z1ZENCbWIzVnVaQUJ6ZVc1MFlYZ2daWEp5YjNJQWIzVjBJRzltSUcxbGJXOXllUUFDQXdRRkJnY0lB''@;'; + put 'put ''QUFKQ2dzTURRNFBFQkVBQUFBQUFBQUFBQUFBQUFBU0V3QVVBQUFBQUFBQUFBQUFBQUFBQUFBVkZnQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFR''@;'; + put 'put ''RUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRVhBQUFBQUFBQUFBQUFBQUFBQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUmdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB''@;'; + put 'put ''QUdRTWFHeHdkSGdBQUh5QWhJaU1rSlJBUkFBQUFBQUFBQUFBQUFBQUFFaE1tRkFBQUFBQUFBQUFBQUFBQUFBQUFKeFlBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVC''@;'; + put 'put ''QVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCRndBQUFBQUFBQUFBQUFBQUFBRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFWUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB''@;'; + put 'put ''QUFBQUFBQUFBQUFBRU5FUVZSQlcxVlRMVUZUUTBsSkFGVlVSaTB4TmdCVlZFWXRNVFpDUlFCVlZFWXRNVFpNUlFCMlpYSnphVzl1QUdWdVkyOWthVzVuQUhOMFlXNWtZV3h2Ym1VQVJFOURWRmxRUlFCVFdWTlVSVTBBVUZWQ1RFbERBRVZPVkVsVVdRQkJWRlJNU1ZOVUFFVk1SVTFGVGxRQVRr''@;'; + put 'put ''OVVRVlJKVDA0QVNVNURURlZFUlFCSlIwNVBVa1VBUlUxUVZGa0FRVTVaQUZCRFJFRlVRUUJKVFZCTVNVVkVBRkpGVVZWSlVrVkVBRVpKV0VWRUFFTkVRVlJCQUVsRUFFbEVVa1ZHQUVsRVVrVkdVd0JGVGxSSlZFbEZVd0JPVFZSUFMwVk9BRTVOVkU5TFJVNVRBRTVFUVZSQkFGUWhJaGtOQVFJ''@;'; + put 'put ''REVVc2NEQkFFQ3gwU0hpZG9ibTl3Y1dJZ0JRWVBFeFFWR2dnV0J5Z2tGeGdKQ2c0Ykh5VWpnNEo5SmlvclBEMCtQME5IU2sxWVdWcGJYRjFlWDJCaFkyUmxabWRwYW10c2NuTjBlWHA3ZkFCSmJHeGxaMkZzSUdKNWRHVWdjMlZ4ZFdWdVkyVUFSRzl0WVdsdUlHVnljbTl5QUZKbGMzVnNkQ0J1''@;'; + put 'put ''YjNRZ2NtVndjbVZ6Wlc1MFlXSnNaUUJPYjNRZ1lTQjBkSGtBVUdWeWJXbHpjMmx2YmlCa1pXNXBaV1FBVDNCbGNtRjBhVzl1SUc1dmRDQndaWEp0YVhSMFpXUUFUbThnYzNWamFDQm1hV3hsSUc5eUlHUnBjbVZqZEc5eWVRQk9ieUJ6ZFdOb0lIQnliMk5sYzNNQVJtbHNaU0JsZUdsemRITUFW''@;'; + put 'put ''bUZzZFdVZ2RHOXZJR3hoY21kbElHWnZjaUJrWVhSaElIUjVjR1VBVG04Z2MzQmhZMlVnYkdWbWRDQnZiaUJrWlhacFkyVUFUM1YwSUc5bUlHMWxiVzl5ZVFCU1pYTnZkWEpqWlNCaWRYTjVBRWx1ZEdWeWNuVndkR1ZrSUhONWMzUmxiU0JqWVd4c0FGSmxjMjkxY21ObElIUmxiWEJ2Y21GeWFX''@;'; + put 'put ''eDVJSFZ1WVhaaGFXeGhZbXhsQUVsdWRtRnNhV1FnYzJWbGF3QkRjbTl6Y3kxa1pYWnBZMlVnYkdsdWF3QlNaV0ZrTFc5dWJIa2dabWxzWlNCemVYTjBaVzBBUkdseVpXTjBiM0o1SUc1dmRDQmxiWEIwZVFCRGIyNXVaV04wYVc5dUlISmxjMlYwSUdKNUlIQmxaWElBVDNCbGNtRjBhVzl1SUhS''@;'; + put 'put ''cGJXVmtJRzkxZEFCRGIyNXVaV04wYVc5dUlISmxablZ6WldRQVNHOXpkQ0JwY3lCa2IzZHVBRWh2YzNRZ2FYTWdkVzV5WldGamFHRmliR1VBUVdSa2NtVnpjeUJwYmlCMWMyVUFRbkp2YTJWdUlIQnBjR1VBU1M5UElHVnljbTl5QUU1dklITjFZMmdnWkdWMmFXTmxJRzl5SUdGa1pISmxjM01B''@;'; + put 'put ''UW14dlkyc2daR1YyYVdObElISmxjWFZwY21Wa0FFNXZJSE4xWTJnZ1pHVjJhV05sQUU1dmRDQmhJR1JwY21WamRHOXllUUJKY3lCaElHUnBjbVZqZEc5eWVRQlVaWGgwSUdacGJHVWdZblZ6ZVFCRmVHVmpJR1p2Y20xaGRDQmxjbkp2Y2dCSmJuWmhiR2xrSUdGeVozVnRaVzUwQUVGeVozVnRa''@;'; + put 'put ''VzUwSUd4cGMzUWdkRzl2SUd4dmJtY0FVM2x0WW05c2FXTWdiR2x1YXlCc2IyOXdBRVpwYkdWdVlXMWxJSFJ2YnlCc2IyNW5BRlJ2YnlCdFlXNTVJRzl3Wlc0Z1ptbHNaWE1nYVc0Z2MzbHpkR1Z0QUU1dklHWnBiR1VnWkdWelkzSnBjSFJ2Y25NZ1lYWmhhV3hoWW14bEFFSmhaQ0JtYVd4bElH''@;'; + put 'put ''UmxjMk55YVhCMGIzSUFUbThnWTJocGJHUWdjSEp2WTJWemN3QkNZV1FnWVdSa2NtVnpjd0JHYVd4bElIUnZieUJzWVhKblpRQlViMjhnYldGdWVTQnNhVzVyY3dCT2J5QnNiMk5yY3lCaGRtRnBiR0ZpYkdVQVVtVnpiM1Z5WTJVZ1pHVmhaR3h2WTJzZ2QyOTFiR1FnYjJOamRYSUFVM1JoZEdV''@;'; + put 'put ''Z2JtOTBJSEpsWTI5MlpYSmhZbXhsQUZCeVpYWnBiM1Z6SUc5M2JtVnlJR1JwWldRQVQzQmxjbUYwYVc5dUlHTmhibU5sYkdWa0FFWjFibU4wYVc5dUlHNXZkQ0JwYlhCc1pXMWxiblJsWkFCT2J5QnRaWE56WVdkbElHOW1JR1JsYzJseVpXUWdkSGx3WlFCSlpHVnVkR2xtYVdWeUlISmxiVzky''@;'; + put 'put ''WldRQVJHVjJhV05sSUc1dmRDQmhJSE4wY21WaGJRQk9ieUJrWVhSaElHRjJZV2xzWVdKc1pRQkVaWFpwWTJVZ2RHbHRaVzkxZEFCUGRYUWdiMllnYzNSeVpXRnRjeUJ5WlhOdmRYSmpaWE1BVEdsdWF5Qm9ZWE1nWW1WbGJpQnpaWFpsY21Wa0FGQnliM1J2WTI5c0lHVnljbTl5QUVKaFpDQnRa''@;'; + put 'put ''WE56WVdkbEFFWnBiR1VnWkdWelkzSnBjSFJ2Y2lCcGJpQmlZV1FnYzNSaGRHVUFUbTkwSUdFZ2MyOWphMlYwQUVSbGMzUnBibUYwYVc5dUlHRmtaSEpsYzNNZ2NtVnhkV2x5WldRQVRXVnpjMkZuWlNCMGIyOGdiR0Z5WjJVQVVISnZkRzlqYjJ3Z2QzSnZibWNnZEhsd1pTQm1iM0lnYzI5amEy''@;'; + put 'put ''VjBBRkJ5YjNSdlkyOXNJRzV2ZENCaGRtRnBiR0ZpYkdVQVVISnZkRzlqYjJ3Z2JtOTBJSE4xY0hCdmNuUmxaQUJUYjJOclpYUWdkSGx3WlNCdWIzUWdjM1Z3Y0c5eWRHVmtBRTV2ZENCemRYQndiM0owWldRQVVISnZkRzlqYjJ3Z1ptRnRhV3g1SUc1dmRDQnpkWEJ3YjNKMFpXUUFRV1JrY21W''@;'; + put 'put ''emN5Qm1ZVzFwYkhrZ2JtOTBJSE4xY0hCdmNuUmxaQ0JpZVNCd2NtOTBiMk52YkFCQlpHUnlaWE56SUc1dmRDQmhkbUZwYkdGaWJHVUFUbVYwZDI5eWF5QnBjeUJrYjNkdUFFNWxkSGR2Y21zZ2RXNXlaV0ZqYUdGaWJHVUFRMjl1Ym1WamRHbHZiaUJ5WlhObGRDQmllU0J1WlhSM2IzSnJBRU52''@;'; + put 'put ''Ym01bFkzUnBiMjRnWVdKdmNuUmxaQUJPYnlCaWRXWm1aWElnYzNCaFkyVWdZWFpoYVd4aFlteGxBRk52WTJ0bGRDQnBjeUJqYjI1dVpXTjBaV1FBVTI5amEyVjBJRzV2ZENCamIyNXVaV04wWldRQVEyRnVibTkwSUhObGJtUWdZV1owWlhJZ2MyOWphMlYwSUhOb2RYUmtiM2R1QUU5d1pYSmhk''@;'; + put 'put ''R2x2YmlCaGJISmxZV1I1SUdsdUlIQnliMmR5WlhOekFFOXdaWEpoZEdsdmJpQnBiaUJ3Y205bmNtVnpjd0JUZEdGc1pTQm1hV3hsSUdoaGJtUnNaUUJTWlcxdmRHVWdTUzlQSUdWeWNtOXlBRkYxYjNSaElHVjRZMlZsWkdWa0FFNXZJRzFsWkdsMWJTQm1iM1Z1WkFCWGNtOXVaeUJ0WldScGRX''@;'; + put 'put ''MGdkSGx3WlFCT2J5Qmxjbkp2Y2lCcGJtWnZjbTFoZEdsdmJnQUFFaEFURkJVV0Z4Z1pHaHNjSFI0ZklDRVFFQ0lqRUNRbEppY29LU29yRUN3dExoRXZNQkVSTVJFUkVUSXpORFUyTnpnNUVSQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBNkVCQVFFQkFRRUJBUUVCQVFFQkFRRUJB''@;'; + put 'put ''UUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkE3RUR3OVBqOUFRUkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFR''@;'; + put 'put ''RUJBUUVCQkNFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJCREVCQkVFRVZHUnhCSUVFa1FFQkFRU2t0TVRSQVFUaEJQVUJBUUVCQlJFQkFRRUJBUUVCQVFFQkFRRUZJUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFF''@;'; + put 'put ''QkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVGTVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJCVVZW''@;'; + put 'put ''WlhFQkJZV1JBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQmFFRnRjWFY1ZllHRmlFQkFRRUJBUUVCQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9BQUFBQVA3L0FQd0JBQUQ0QVFB''@;'; + put 'put ''QWVBQUFBQUQvKzkvN0FBQ0FBQUFBZ0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUE4QVB6LzRLLy8vLy8vLy8vLy8vLy8zLy8vLy8vL0lFQ3dBQUFBQUFBQUFBQUFBQUFBQUVBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVB3REFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB''@;'; + put 'put ''QVB3QUFBQUFBSWIrLy8vL0FFQkpBQUFBQUFBWUFOLy9BTWdBQUFBQUFBQUFBUUE4QUFBQUFBQUFBQUFBQUFBQUVPQUJIZ0JnLzc4QUFBQUFBQUQvQndBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFENHp3TUFBQUFEQUNEL2Z3QUFBRTRBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUHdBQUFBQUFBQUFB''@;'; + put 'put ''QUFRQUNBZUFEQUFBUUFBQUFBQUFBQUFFQUFnQUFBQUFQd1BBQUFBQUFBQUFCQUFJQUFBQUFBQUFBQUFBQUFBQUFBUUFDQUFBQUFBQXdBQUFBQUFBQUFBRUFBZ0FBQUFBUDBBQUFBQUFBQUFBQUFBSUFBQUFBRC9Cd0FBQUFBQUFBQUFBQ0FBQUFBQUFQOEFBQUFBQUFBQUVBQWdBQUFBQUFBQUFB''@;'; + put 'put ''QUFBQUFBQUFBQUlBQUFBQUEvQWdBQUFBQUFBQUFBQUFRQUFBQUFFQUFBQUFBQUFJQUFnTURmQUF3QUFBQUFBQUFBQUFBQUFBQUFId0FBQUFBQUFQNy8vLzhBL1AvL0FBQUFBQUFBQUFEOEFBQUFBQUFBd1AvZi93Y0FBQUFBQUFBQUFBQUFnQVlBL0FBQUdENEFBSUMvQU13QUFBQUFBQUFBQUFB''@;'; + put 'put ''QUFBZ0FBQUFBQUFBQUFBQUFBR0QvLy84ZkFBRC9Bd0FBQUFBQUFBQUFBQUFBQUFFQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUdBQUFBRUFBQmdBQUFBQUFBQUFBQUE0QUFBQUFCQUFBQUJ3QUFBQUFBQUFBQUFBQUFBQUFBQUFNQUFB''@;'; + put 'put ''L244dkFBRC9BLzkvQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUE0eEFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQXhQLy8vLzhBQUFEQUFBQUFBQUFBQUFBQkFPQ2ZBQUFBQUg4L0FBQUFBQUFBQUFBQUFBQUFBQUFBQUJBQUVBQUEvUC8vL3g4QUFBQUFB''@;'; + put 'put ''QXdBQUFBQUFBQkFBQXp3QUFBQUFBQUF3UGdBQUFBQUFBQUF3QUFBQUFBQUFBQUEvd0QvLy84aEVBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFELy8vLy9md0FBOEFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFvQVBnQU9BQTRBQmdnUGovLy8vOC8vLy8vLzkvSC96eGYv''@;'; + put 'put ''OS9BQUQvLy84REFBRC8vLy8vQVFCN0E5REJyMElBREIrOC8vOEFBQUFBQUFMLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL3c4QS8vLy8vMzhBQUFEL0J3QUEvLy8vLy8vLy8vLy8vejhBQUFBQUFBRDgvLy8rLy8vLy8vLy8vLy8vLy8v''@;'; + put 'put ''Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy94Ly9Bd0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU9DSEEvNEFBQUFBQUFBQUFBQUFBQUFBQUFHQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVAvLy8vLy9mLzhQ''@;'; + put 'put ''QUFBQUFBQUFBQUQvLy8vNy8vLy8vLy8vLy8vLy93OEEvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vOC9BQUFBL3c4ZS8vLy9BZnpCNEFBQUFBQUFBQUFBQUFBQUhnRUFBQUFBQUFBQUFBQUFDQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUC8vQUFBQUFQLy8vLzhQQUFBQS8vLy9m''@;'; + put 'put ''Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vMzhBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRC8vLy8vLy8vLy93QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFQLy8vLy8vLzM4QUFBQUFBQURBQU9BQUFBQUFBQUFBQUFBQUFJQVBjQUFBQUFBQUFBQUFBQUFBQUFBQS93''@;'; + put 'put ''RC8vMzhBQXdBQUFBQUFBQUFBQUFBQUFBWUFBQUFBQUFBQUFBQUFBQUFBQUVRSUFBQUFELzhEQUFBQUFBQUE4QUFBQUFBQUFBQUFBQkRBQUFELy93TUhBQUFBQUFENEFBQUFBQWlBQUFBQUFBQUFBQUFBQUFnQS96OEF3QUFBQUFBQUFBQUFBQUFBQUFBQUFQQUFBSUFMQUFBQUFBQUFBSUFDQUFE''@;'; + put 'put ''QUFBQkRBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT0FBQUFRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQWdBQUFBQUFBQWdBQUFBQUFBQUFBQUFBQUFBQUFBQUQ4''@;'; + put 'put ''L3dNQUFBQUFBQUFBQUFBQUFBQUFBTUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFERC8vLzhEZndELy8vLy85LzkvRHdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBZ1A3L0FQd0JBQUQ0QVFBQStEOEFBQUFBQUFBQUFBQUFBQUFBQUFCL2Z3QXdoLy8vLy8vL2ovOEFBQUFBQUFEZy8vOEgv''@;'; + put 'put ''dzhBQUFBQUFBRC8vLy8vL3o4QUFBQUFEd0FBQUFBQUFBQUFBQUFBQUFBQWdBQUFBQUFBQUFFQUFBQUFBQUFBQUFBQUFBQUFBQUNBL3dBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBREFqd0FBQUlBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFoLzhBL3dFQUFB''@;'; + put 'put ''RGdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFEK0FBQUEvd0FBQVA4QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQS8vLy9md0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFNQS8vUDgvQUFBQUF3QUFBQUFBQVA0REFBQUFBQUFBQUFBQUFBQUFBQmdBRHdB''@;'; + put 'put ''QUFBQUFBQUFBQUFBQUFBQUFBT0VCQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU1BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQThBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFnQWNBQUFBQUFBQUFBQUFBQUFBQS8vLy8vLy8v''@;'; + put 'put ''Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9Qd0QvLy8vL2YvNy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLzgvQUFBQUFQLy8vLy8vLy8vL1B3QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBLy8vLy8vLy8vLy8vLzM4QS8vOERBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB''@;'; + put 'put ''QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQ0FBQUlBQUFBQ0FBQUlBQUFBQ0FBQUlBQUFBQ0FBQUFBQWdBQUFBSUFBQWdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQXdELy8vLy8vdy8vLy8vLy8vLy8vLy8vLy84UEFQOS8vbi8rLy83L0FB''@;'; + put 'put ''QUFBUDhILy8vL2YvLy8vLy8vLy84UC8vLy8vLzhIQUFBQUFBQUFBQURBLy8vL0J3RC8vLy8vL3dmL0FRTUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUQvLy8vL0FRQy8vLy8vLy8vLy8vOGYvLzhQQVAvLy8vL2ZCd0FBLy84QkFQLy8vLy8vLy85Ly9mLy8vLy8vLy8vLy8vLy8vLy8vLy8v''@;'; + put 'put ''Ly8vLy8vLzhlLy8vLy8vLy8vejhQQVAvLy93QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFQai8vLy8vLy8vLy8rSC9BQUFBQUFBQS8vLy8vLy8vLy84L0FBQUFBQUFBQVAvLy8vLy8vLy8vLy8vLy8vLy9Ed0FBQUFBQUFBQUFBQUFBQUFBQUFBQUEvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v''@;'; + put 'put ''Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL3dBQkFnTUVCUVlIQ0FuLy8vLy8vLy8vQ2dzTURRNFBFQkVTRXhRVkZoY1lHUm9iSEIwZUh5QWhJaVAvLy8vLy8vOEtDd3dORGc4UUVSSVRGQlVXRnhnWkdoc2NIUjRmSUNFaUkvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v''@;'; + put 'put ''Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy84QUFRSUVCd01HQlFBU0VS''@;'; + put 'put ''TVVGUllYR0JrYUd4d2RIaDhnSVJFaUl5UVJKU1luS0NrcUt5d1JMUzR2RUJBd0VCQVFFQkFRRURFeU14QTBOUkFRRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFVFlSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJF''@;'; + put 'put ''UkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkUzRVJFUkVUZ1JPVG83UEQwK0VSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVQ4UUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFS''@;'; + put 'put ''UUVFUlFrTkVSVVpIU0VrUUVCQktTMHhOVGhBUUVFOVFFQkFRRUZFUUVCQVFFQkFRRUJBUkVSRlNVeEFRRUJBUUVCQVFFQkFRRVJFUkVWUVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUkVWVVFFQkFRVmhBUUVCQVFF''@;'; + put 'put ''QkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJCWEVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJCWVdWcGJFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUZ3UUVC''@;'; + put 'put ''QVFFQkFRRUJBUUVCQVFFQkFRRUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy84QUFBQUFBQUFBQVA3Ly93ZisvLzhIQUFBQUFBQUVJQVQvLzMvLy8vOS8vLy8vLy8vLy8vLy8vLy8vLy8v''@;'; + put 'put ''Ly8vLy8vLy8vLy8vLy84UC9Bd0FmVUFBQUFBQUFBQUFBQUFBZ0FBQUFBQURmUEVEWC8vLzcvLy8vLy8vLy8vLy92Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy9BL3ovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vQVA3Ly8vOS9BdjcvLy8vL0FBQUFBQUQvdjdZQS8vLy9Cd2NBQUFEL0IvLy8vLy8v''@;'; + put 'put ''Ly8vKy84UC8vLy8vLy8vLy8vLy8vLy92SC83aC81OEFBUC8vLy8vLy93RGcvLy8vLy8vLy8vLy8vLy8vQXdELy8vLy8vd2N3QlAvLy8vei9Id0FBLy8vL0FRQUFBQUFBQUFBQS9SOEFBQUFBQUFEd0EvOS8vLy8vLy8vLy8rLy8zK0gvei8vKy91NmYrZi8vL2NYam4xbUFzTS8vQXdEdWgvbi8v''@;'; + put 'put ''LzF0dzRjWkFsN0EvejhBN3IvNy8vLzk3ZU8vR3dFQXovOEFBTzZmK2YvLy9lM2pueG5Bc00vL0FnRHN4ejNXR01mL3c4Y2RnUURBL3dBQTd0LzkvLy85NytQZkhXQUR6LzhBQU96Zi9mLy8vZS9qM3gxZ1FNLy9CZ0RzMy8zLy8vLy81OTlkZ0FEUC93RDg3UDkvL1AvLyt5OS9nRi8vQUFBTUFQ''@;'; + put 'put ''Ny8vLy8vZi84SFB5RC9Bd0FBQUFDV0pmRCtydXovTzE4Zy8vTUFBQUFBQVFBQUFQOERBQUQvL3YvLy94Lysvd1AvLy83Ly8vOGZBQUFBQUFBQUFBRC8vLy8vLy85LytmOEQvLy9ud2YvL2YwRC9NLy8vLy8rL0lQLy8vLy8vOS8vLy8vLy8vLy8vL3oxL1BmLy8vLy8vUGYvLy8vODlmejMvZi8v''@;'; + put 'put ''Ly8vLy8vLzg5Ly8vLy8vLy8vLytIQUFBQUFQLy9BQUQvLy8vLy8vLy8vLy8vSHdEKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8rZi8vLysvLzhILy8vLy8vLy8vLy8veHdFQS85OFBBUC8vRHdELy93OEEvOThOQVAvLy8vLy8vOC8v''@;'; + put 'put ''L3dHQUVQOERBQUFBQVA4RC8vLy8vLy8vLy8vLy8vOEEvLy8vLy84SC8vLy8vLy8vLy84L0FQLy8veC8vRC84QndQLy8vLzgvSHdELy8vLy8vdy8vLy84RC93TUFBQUFBLy8vL0QvLy8vLy8vLy85Ly92OGZBUDhEL3dPQUFBQUFBQUFBQUFBQUFBRC8vLy8vLy8vdi8rOFAvd01BQUFBQS8vLy8v''@;'; + put 'put ''Ly96Ly8vLy8vLy92LzhEQVAvLy8vLy8vejhBLytQLy8vLy8vejhBQUFBQUFBQUFBQUFBQUFBQTNtOEEvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL0FBQUFBQUFBQUFELy96OC8vLy8vL3o4Ly82ci8vLzgvLy8vLy8vLy8zMS9jSDg4UC94L2NId0FBQUFBQUFBQUFBQUFBQUFBQUFv''@;'; + put 'put ''QUFBUDhmQUFBQUFBQUFBQUFBQUFBQWhQd3ZQbEM5Ly9QZ1F3QUEvLy8vLy84QkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQXdQLy8vLy8vL3dNQUFQLy8vLy8vZi8vLy8vLy9mLy8vLy8vLy8vLy8vLy8vLy8vLy8vOGZlQXdBLy8vLy83OGcvLy8vLy8v''@;'; + put 'put ''Ly80QUFBUC8vZndCL2YzOS9mMzkvZi8vLy8vOEFBQUFBQUlBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU9BQUFBRCtBejRmL3YvLy8vLy8vLy8vLzMvZy92Ly8vLy8vLy8vLy8vLzM0UC8vLy84Ly92Ly8vLy8vLy8vLy8vOS9BQUQvLy84SEFBQUFBQUFBLy8vLy8vLy8vLy8v''@;'; + put 'put ''Ly8vLy8vLy8vLy8vLy8vLy8vLy9Qd0FBQUFBQUFBQUFBUC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vOGZBQUFBQUFBQS8vLy8vLy8vLy8vLy8vLy8vLy8vLy84ZkFBQUFBQUFBQUFELy8vLy8vei8vSC8vLy93OEFBUC8vLy8vL2YvQ1AvLy8vZ1AvLy8vLy8vLy8vLy84QUFBQUFn''@;'; + put 'put ''UC84Ly8vLy8vLy8vLy8vLy8vL2VROEEvd2NBQUFBQUFBQUFBQUQvdS9mLy8vOEFBQUQvLy8vLy8vOFBBUC8vLy8vLy8vLy9Ed0QvQXdBQS9Bai8vLy8vL3dmLy8vLy9Cd0QvLy84Zi8vLy8vLy8vOS84QWdQOERBQUFBQVAvLy8vLy8vMzhBL3ovL0EvLy9md1QvLy8vLy8vLy9md1VBQURqLy96''@;'; + put 'put ''d0FmbjUrQUg5L0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQS8vLy8vLzhIL3dQLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy93OEEvLzkvK1AvLy8vLy9ELy8vLy8vLy8vLy8vLy8vLy84Ly8vLy8vLy8vLy8vLy8vLy8vd01BQUFBQWZ3RDQ0UC85ZjEvYi8vLy8vLy8vLy8vLy8vLy8vd01BQUFE''@;'; + put 'put ''NC8vLy8vLy8vLy8vLy8vLy9Qd0FBLy8vLy8vLy8vLy84Ly8vLy8vLy9BQUFBQUFEL0R3QUFBQUFBQUFBQUFBQUFBQUFBMy8vLy8vLy8vLy8vLy8vLy8vLy8vLzhmQUFEL0EvNy8vd2YrLy84SHdQLy8vLy8vLy8vLy8vOS8vUHo4SEFBQUFBRC83Ly8vZi8vL3QvOC8vejhBQUFBQS8vLy8vLy8v''@;'; + put 'put ''Ly8vLy8vLy8vLy8vQndBQUFBQUFBQUFBLy8vLy8vLy9Id0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFQLy8veC8vLy8vLy8vOEJBQUFBQUFELy8vOS9BQUQvLy84SEFBQUFBQUFBLy8vL1AvLy8vLzhQL3o0QUFBQUFBUC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v''@;'; + put 'put ''LzgvL3dNQUFBQUFBQUFBQUFBQVAvMy8vLy8vdjVILy96OEFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUQvL3o4QS8vLy9Bd0FBQUFBQUFBQUEvLy8vLy8vLy84QUFBQUFBQUFBQUFHL3c3LzcvL3c4QUFBQUFBUC8vL3g4QUFBQUFBQUFBQUFBQUFBQUFBQUFBLy8vLy8vLy9Qd0QvL3o4QS8v''@;'; + put 'put ''OEhBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRC8vLy8vLy8vLy8vOEJBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVAvLy8vLy8vLy8vUHdBQUFNRC9BQUQ4Ly8vLy8vLy9BUUFBLy8vL0FmOEQvLy8vLy8vL3gvOEFBQUFBQUFBQUFQLy8vLy8vLy8vL0hnRC9Bd0FBQUFBQUFBQUFBQUFBQUFB''@;'; + put 'put ''QUFBQUFBQUFBLy8vLy8vLy9Qd0QvQXdBQUFBQUFBUC8vLy8vLy8vLy8vLy8vLy85L0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQS8vLy8vLy8vLy8vLy8vLy9Cd0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUQvLy8vLy8zOEFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFQLy8vLy8v''@;'; + put 'put ''Ly84QkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBLy8vLy8vLy8vLzhmQVAvLy8vLy9md0FBK1A4QUFBQUFBQUFBQUFBQUFBQURBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVAvLy8vLy8vLy8vLy8vZi8vLy8vLy8vLy8vZlpONy82Ky8vLy8vLy8vLy92''@;'; + put 'put ''K2ZmMy8vLy8zdGYvUDMvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy96Ly8vLy85Ly8vMy8vLy85Ly8vMy8vLy85Ly8vMy8vLy85Ly8vLy8vZi8vLy8zLy8vZlAvLy8vLy8vLzcvLy8vNWIrOXdxRTZwYXFsdmYzWHYvNy93L3UrLzhQQUFBQUFB''@;'; + put 'put ''QUFBQUJNUTE5QlRFd0FURU5mUTFSWlVFVUFBQUFBVEVOZlRsVk5SVkpKUXdBQVRFTmZWRWxOUlFBQUFBQUFURU5mUTA5TVRFRlVSUUFBVEVOZlRVOU9SVlJCVWxrQVRFTmZUVVZUVTBGSFJWTUFURUZPUndCRExsVlVSaTA0QUZCUFUwbFlBRTFWVTB4ZlRFOURVRUZVU0FBUkFBb0FFUkVSQUFB''@;'; + put 'put ''QUFBVUFBQUFBQUFBSkFBQUFBQXNBQUFBQUFBQUFBQkVBRHdvUkVSRURDZ2NBQVJNSkN3c0FBQWtHQ3dBQUN3QUdFUUFBQUJFUkVRQUFBQUFBQUFBQUFBQUFBQUFBQUFBTEFBQUFBQUFBQUFBUkFBb0tFUkVSQUFvQUFBSUFDUXNBQUFBSkFBc0FBQXNBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB''@;'; + put 'put ''QUFBQUFBQUFEQUFBQUFBQUFBQUFBQUFBREFBQUFBQU1BQUFBQUFrTUFBQUFBQUFNQUFBTUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUE0QUFBQUFBQUFBQUFBQUFBMEFBQUFFRFFBQUFBQUpEZ0FBQUFBQURnQUFEZ0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVFB''@;'; + put 'put ''QUFBQUFBQUFBQUFBQUFQQUFBQUFBOEFBQUFBQ1JBQUFBQUFBQkFBQUJBQUFCSUFBQUFTRWhJQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRWdBQUFCSVNFZ0FBQUFBQUFBa0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBc0FBQUFBQUFBQUFB''@;'; + put 'put ''QUFBQW9BQUFBQUNnQUFBQUFKQ3dBQUFBQUFDd0FBQ3dBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFNQUFBQUFBQUFBQUFBQUFBTUFBQUFBQXdBQUFBQUNRd0FBQUFBQUF3QUFBd0FBQzBySUNBZ01GZ3dlQUFvYm5Wc2JDa0FMVEJZS3pCWUlEQllMVEI0S3pCNElEQjRBR2x1WmdC''@;'; + put 'put ''SlRrWUFUa0ZPQURBeE1qTTBOVFkzT0RsQlFrTkVSVVl1QUdGc2JuVnRBR0ZzY0doaEFHSnNZVzVyQUdOdWRISnNBR1JwWjJsMEFHZHlZWEJvQUd4dmQyVnlBSEJ5YVc1MEFIQjFibU4wQUhOd1lXTmxBSFZ3Y0dWeUFIaGthV2RwZEFCRExsVlVSaTA0QUFBQUFBQUFBQUFBUXdBdmNISnZZeTl6''@;'; + put 'put ''Wld4bUwyWmtMd0J5ZDJFQWFXNW1hVzVwZEhrQWJtRnVBQWtBQ2dBTkFBd0FCd0FiQUZ0Yk9tRnNiblZ0T2wxZlhRQmJYbHM2WVd4dWRXMDZYVjlkQUZ0Yk9uTndZV05sT2wxZEFGdGVXenB6Y0dGalpUcGRYUUJiV3pwa2FXZHBkRHBkWFFCYlhsczZaR2xuYVhRNlhWMEFMM1J0Y0M5MGJYQm1h''@;'; + put 'put ''V3hsWDFoWVdGaFlXQUIzS3c9PSI7dmFyIE1hPXl0O2Z1bmN0aW9uIG5sKHB0LEl0LFB0LGZlKXtmMigiQXNzZXJ0aW9uIGZhaWxlZDogIitGKHB0KSsiLCBhdDogIitbSXQ/RihJdCk6InVua25vd24gZmlsZW5hbWUiLFB0LGZlP0YoZmUpOiJ1bmtub3duIGZ1bmN0aW9uIl0pfWZ1bmN0aW9u''@;'; + put 'put ''IGdsKCl7ZjIoKX1mdW5jdGlvbiBBaSgpe3JldHVybiBOfHwidW5kZWZpbmVkIiE9dHlwZW9mIGRhdGVOb3d8fChZfHxXKSYmc2VsZi5wZXJmb3JtYW5jZSYmc2VsZi5wZXJmb3JtYW5jZS5ub3d9eXQrPTE2O3ZhciB2aT17RVBFUk06MSxFTk9FTlQ6MixFU1JDSDozLEVJTlRSOjQsRUlPOjUs''@;'; + put 'put ''RU5YSU86NixFMkJJRzo3LEVOT0VYRUM6OCxFQkFERjo5LEVDSElMRDoxMCxFQUdBSU46MTEsRVdPVUxEQkxPQ0s6MTEsRU5PTUVNOjEyLEVBQ0NFUzoxMyxFRkFVTFQ6MTQsRU5PVEJMSzoxNSxFQlVTWToxNixFRVhJU1Q6MTcsRVhERVY6MTgsRU5PREVWOjE5LEVOT1RESVI6MjAsRUlTRElS''@;'; + put 'put ''OjIxLEVJTlZBTDoyMixFTkZJTEU6MjMsRU1GSUxFOjI0LEVOT1RUWToyNSxFVFhUQlNZOjI2LEVGQklHOjI3LEVOT1NQQzoyOCxFU1BJUEU6MjksRVJPRlM6MzAsRU1MSU5LOjMxLEVQSVBFOjMyLEVET006MzMsRVJBTkdFOjM0LEVOT01TRzo0MixFSURSTTo0MyxFQ0hSTkc6NDQsRUwyTlNZ''@;'; + put 'put ''TkM6NDUsRUwzSExUOjQ2LEVMM1JTVDo0NyxFTE5STkc6NDgsRVVOQVRDSDo0OSxFTk9DU0k6NTAsRUwySExUOjUxLEVERUFETEs6MzUsRU5PTENLOjM3LEVCQURFOjUyLEVCQURSOjUzLEVYRlVMTDo1NCxFTk9BTk86NTUsRUJBRFJRQzo1NixFQkFEU0xUOjU3LEVERUFETE9DSzozNSxFQkZP''@;'; + put 'put ''TlQ6NTksRU5PU1RSOjYwLEVOT0RBVEE6NjEsRVRJTUU6NjIsRU5PU1I6NjMsRU5PTkVUOjY0LEVOT1BLRzo2NSxFUkVNT1RFOjY2LEVOT0xJTks6NjcsRUFEVjo2OCxFU1JNTlQ6NjksRUNPTU06NzAsRVBST1RPOjcxLEVNVUxUSUhPUDo3MixFRE9URE9UOjczLEVCQURNU0c6NzQsRU5PVFVO''@;'; + put 'put ''SVE6NzYsRUJBREZEOjc3LEVSRU1DSEc6NzgsRUxJQkFDQzo3OSxFTElCQkFEOjgwLEVMSUJTQ046ODEsRUxJQk1BWDo4MixFTElCRVhFQzo4MyxFTk9TWVM6MzgsRU5PVEVNUFRZOjM5LEVOQU1FVE9PTE9ORzozNixFTE9PUDo0MCxFT1BOT1RTVVBQOjk1LEVQRk5PU1VQUE9SVDo5NixFQ09O''@;'; + put 'put ''TlJFU0VUOjEwNCxFTk9CVUZTOjEwNSxFQUZOT1NVUFBPUlQ6OTcsRVBST1RPVFlQRTo5MSxFTk9UU09DSzo4OCxFTk9QUk9UT09QVDo5MixFU0hVVERPV046MTA4LEVDT05OUkVGVVNFRDoxMTEsRUFERFJJTlVTRTo5OCxFQ09OTkFCT1JURUQ6MTAzLEVORVRVTlJFQUNIOjEwMSxFTkVURE9X''@;'; + put 'put ''TjoxMDAsRVRJTUVET1VUOjExMCxFSE9TVERPV046MTEyLEVIT1NUVU5SRUFDSDoxMTMsRUlOUFJPR1JFU1M6MTE1LEVBTFJFQURZOjExNCxFREVTVEFERFJSRVE6ODksRU1TR1NJWkU6OTAsRVBST1RPTk9TVVBQT1JUOjkzLEVTT0NLVE5PU1VQUE9SVDo5NCxFQUREUk5PVEFWQUlMOjk5LEVO''@;'; + put 'put ''RVRSRVNFVDoxMDIsRUlTQ09OTjoxMDYsRU5PVENPTk46MTA3LEVUT09NQU5ZUkVGUzoxMDksRVVTRVJTOjg3LEVEUVVPVDoxMjIsRVNUQUxFOjExNixFTk9UU1VQOjk1LEVOT01FRElVTToxMjMsRUlMU0VROjg0LEVPVkVSRkxPVzo3NSxFQ0FOQ0VMRUQ6MTI1LEVOT1RSRUNPVkVSQUJMRTox''@;'; + put 'put ''MzEsRU9XTkVSREVBRDoxMzAsRVNUUlBJUEU6ODZ9O2Z1bmN0aW9uIGIwKHB0KXtyZXR1cm4gWi5fX19lcnJub19sb2NhdGlvbiYmKEx0W1ouX19fZXJybm9fbG9jYXRpb24oKT4+Ml09cHQpLHB0fWZ1bmN0aW9uIHNhKHB0LEl0KXt2YXIgUHQ7aWYoMD09PXB0KVB0PURhdGUubm93KCk7ZWxz''@;'; + put 'put ''ZXtpZigxIT09cHR8fCFBaSgpKXJldHVybiBiMCh2aS5FSU5WQUwpLC0xO1B0PWdsKCl9cmV0dXJuIEx0W0l0Pj4yXT1QdC8xZTN8MCxMdFtJdCs0Pj4yXT1QdCUxZTMqMWUzKjFlM3wwLDB9ZnVuY3Rpb24gcmwoKXtyZXR1cm4gc2EuYXBwbHkobnVsbCxhcmd1bWVudHMpfWZ1bmN0aW9uIF9p''@;'; + put 'put ''KCl7fWZ1bmN0aW9uIG91KHB0LEl0KXtyZXR1cm4gYjAodmkuRVBFUk0pLC0xfXZhciBIYz17MDoiU3VjY2VzcyIsMToiTm90IHN1cGVyLXVzZXIiLDI6Ik5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkiLDM6Ik5vIHN1Y2ggcHJvY2VzcyIsNDoiSW50ZXJydXB0ZWQgc3lzdGVtIGNhbGwiLDU6''@;'; + put 'put ''IkkvTyBlcnJvciIsNjoiTm8gc3VjaCBkZXZpY2Ugb3IgYWRkcmVzcyIsNzoiQXJnIGxpc3QgdG9vIGxvbmciLDg6IkV4ZWMgZm9ybWF0IGVycm9yIiw5OiJCYWQgZmlsZSBudW1iZXIiLDEwOiJObyBjaGlsZHJlbiIsMTE6Ik5vIG1vcmUgcHJvY2Vzc2VzIiwxMjoiTm90IGVub3VnaCBjb3Jl''@;'; + put 'put ''IiwxMzoiUGVybWlzc2lvbiBkZW5pZWQiLDE0OiJCYWQgYWRkcmVzcyIsMTU6IkJsb2NrIGRldmljZSByZXF1aXJlZCIsMTY6Ik1vdW50IGRldmljZSBidXN5IiwxNzoiRmlsZSBleGlzdHMiLDE4OiJDcm9zcy1kZXZpY2UgbGluayIsMTk6Ik5vIHN1Y2ggZGV2aWNlIiwyMDoiTm90IGEgZGly''@;'; + put 'put ''ZWN0b3J5IiwyMToiSXMgYSBkaXJlY3RvcnkiLDIyOiJJbnZhbGlkIGFyZ3VtZW50IiwyMzoiVG9vIG1hbnkgb3BlbiBmaWxlcyBpbiBzeXN0ZW0iLDI0OiJUb28gbWFueSBvcGVuIGZpbGVzIiwyNToiTm90IGEgdHlwZXdyaXRlciIsMjY6IlRleHQgZmlsZSBidXN5IiwyNzoiRmlsZSB0b28g''@;'; + put 'put ''bGFyZ2UiLDI4OiJObyBzcGFjZSBsZWZ0IG9uIGRldmljZSIsMjk6IklsbGVnYWwgc2VlayIsMzA6IlJlYWQgb25seSBmaWxlIHN5c3RlbSIsMzE6IlRvbyBtYW55IGxpbmtzIiwzMjoiQnJva2VuIHBpcGUiLDMzOiJNYXRoIGFyZyBvdXQgb2YgZG9tYWluIG9mIGZ1bmMiLDM0OiJNYXRoIHJl''@;'; + put 'put ''c3VsdCBub3QgcmVwcmVzZW50YWJsZSIsMzU6IkZpbGUgbG9ja2luZyBkZWFkbG9jayBlcnJvciIsMzY6IkZpbGUgb3IgcGF0aCBuYW1lIHRvbyBsb25nIiwzNzoiTm8gcmVjb3JkIGxvY2tzIGF2YWlsYWJsZSIsMzg6IkZ1bmN0aW9uIG5vdCBpbXBsZW1lbnRlZCIsMzk6IkRpcmVjdG9yeSBu''@;'; + put 'put ''b3QgZW1wdHkiLDQwOiJUb28gbWFueSBzeW1ib2xpYyBsaW5rcyIsNDI6Ik5vIG1lc3NhZ2Ugb2YgZGVzaXJlZCB0eXBlIiw0MzoiSWRlbnRpZmllciByZW1vdmVkIiw0NDoiQ2hhbm5lbCBudW1iZXIgb3V0IG9mIHJhbmdlIiw0NToiTGV2ZWwgMiBub3Qgc3luY2hyb25pemVkIiw0NjoiTGV2''@;'; + put 'put ''ZWwgMyBoYWx0ZWQiLDQ3OiJMZXZlbCAzIHJlc2V0Iiw0ODoiTGluayBudW1iZXIgb3V0IG9mIHJhbmdlIiw0OToiUHJvdG9jb2wgZHJpdmVyIG5vdCBhdHRhY2hlZCIsNTA6Ik5vIENTSSBzdHJ1Y3R1cmUgYXZhaWxhYmxlIiw1MToiTGV2ZWwgMiBoYWx0ZWQiLDUyOiJJbnZhbGlkIGV4Y2hh''@;'; + put 'put ''bmdlIiw1MzoiSW52YWxpZCByZXF1ZXN0IGRlc2NyaXB0b3IiLDU0OiJFeGNoYW5nZSBmdWxsIiw1NToiTm8gYW5vZGUiLDU2OiJJbnZhbGlkIHJlcXVlc3QgY29kZSIsNTc6IkludmFsaWQgc2xvdCIsNTk6IkJhZCBmb250IGZpbGUgZm10Iiw2MDoiRGV2aWNlIG5vdCBhIHN0cmVhbSIsNjE6''@;'; + put 'put ''Ik5vIGRhdGEgKGZvciBubyBkZWxheSBpbykiLDYyOiJUaW1lciBleHBpcmVkIiw2MzoiT3V0IG9mIHN0cmVhbXMgcmVzb3VyY2VzIiw2NDoiTWFjaGluZSBpcyBub3Qgb24gdGhlIG5ldHdvcmsiLDY1OiJQYWNrYWdlIG5vdCBpbnN0YWxsZWQiLDY2OiJUaGUgb2JqZWN0IGlzIHJlbW90ZSIs''@;'; + put 'put ''Njc6IlRoZSBsaW5rIGhhcyBiZWVuIHNldmVyZWQiLDY4OiJBZHZlcnRpc2UgZXJyb3IiLDY5OiJTcm1vdW50IGVycm9yIiw3MDoiQ29tbXVuaWNhdGlvbiBlcnJvciBvbiBzZW5kIiw3MToiUHJvdG9jb2wgZXJyb3IiLDcyOiJNdWx0aWhvcCBhdHRlbXB0ZWQiLDczOiJDcm9zcyBtb3VudCBw''@;'; + put 'put ''b2ludCAobm90IHJlYWxseSBlcnJvcikiLDc0OiJUcnlpbmcgdG8gcmVhZCB1bnJlYWRhYmxlIG1lc3NhZ2UiLDc1OiJWYWx1ZSB0b28gbGFyZ2UgZm9yIGRlZmluZWQgZGF0YSB0eXBlIiw3NjoiR2l2ZW4gbG9nLiBuYW1lIG5vdCB1bmlxdWUiLDc3OiJmLmQuIGludmFsaWQgZm9yIHRoaXMg''@;'; + put 'put ''b3BlcmF0aW9uIiw3ODoiUmVtb3RlIGFkZHJlc3MgY2hhbmdlZCIsNzk6IkNhbiAgIGFjY2VzcyBhIG5lZWRlZCBzaGFyZWQgbGliIiw4MDoiQWNjZXNzaW5nIGEgY29ycnVwdGVkIHNoYXJlZCBsaWIiLDgxOiIubGliIHNlY3Rpb24gaW4gYS5vdXQgY29ycnVwdGVkIiw4MjoiQXR0ZW1wdGlu''@;'; + put 'put ''ZyB0byBsaW5rIGluIHRvbyBtYW55IGxpYnMiLDgzOiJBdHRlbXB0aW5nIHRvIGV4ZWMgYSBzaGFyZWQgbGlicmFyeSIsODQ6IklsbGVnYWwgYnl0ZSBzZXF1ZW5jZSIsODY6IlN0cmVhbXMgcGlwZSBlcnJvciIsODc6IlRvbyBtYW55IHVzZXJzIiw4ODoiU29ja2V0IG9wZXJhdGlvbiBvbiBu''@;'; + put 'put ''b24tc29ja2V0Iiw4OToiRGVzdGluYXRpb24gYWRkcmVzcyByZXF1aXJlZCIsOTA6Ik1lc3NhZ2UgdG9vIGxvbmciLDkxOiJQcm90b2NvbCB3cm9uZyB0eXBlIGZvciBzb2NrZXQiLDkyOiJQcm90b2NvbCBub3QgYXZhaWxhYmxlIiw5MzoiVW5rbm93biBwcm90b2NvbCIsOTQ6IlNvY2tldCB0''@;'; + put 'put ''eXBlIG5vdCBzdXBwb3J0ZWQiLDk1OiJOb3Qgc3VwcG9ydGVkIiw5NjoiUHJvdG9jb2wgZmFtaWx5IG5vdCBzdXBwb3J0ZWQiLDk3OiJBZGRyZXNzIGZhbWlseSBub3Qgc3VwcG9ydGVkIGJ5IHByb3RvY29sIGZhbWlseSIsOTg6IkFkZHJlc3MgYWxyZWFkeSBpbiB1c2UiLDk5OiJBZGRyZXNz''@;'; + put 'put ''IG5vdCBhdmFpbGFibGUiLDEwMDoiTmV0d29yayBpbnRlcmZhY2UgaXMgbm90IGNvbmZpZ3VyZWQiLDEwMToiTmV0d29yayBpcyB1bnJlYWNoYWJsZSIsMTAyOiJDb25uZWN0aW9uIHJlc2V0IGJ5IG5ldHdvcmsiLDEwMzoiQ29ubmVjdGlvbiBhYm9ydGVkIiwxMDQ6IkNvbm5lY3Rpb24gcmVz''@;'; + put 'put ''ZXQgYnkgcGVlciIsMTA1OiJObyBidWZmZXIgc3BhY2UgYXZhaWxhYmxlIiwxMDY6IlNvY2tldCBpcyBhbHJlYWR5IGNvbm5lY3RlZCIsMTA3OiJTb2NrZXQgaXMgbm90IGNvbm5lY3RlZCIsMTA4OiJDYW4ndCBzZW5kIGFmdGVyIHNvY2tldCBzaHV0ZG93biIsMTA5OiJUb28gbWFueSByZWZl''@;'; + put 'put ''cmVuY2VzIiwxMTA6IkNvbm5lY3Rpb24gdGltZWQgb3V0IiwxMTE6IkNvbm5lY3Rpb24gcmVmdXNlZCIsMTEyOiJIb3N0IGlzIGRvd24iLDExMzoiSG9zdCBpcyB1bnJlYWNoYWJsZSIsMTE0OiJTb2NrZXQgYWxyZWFkeSBjb25uZWN0ZWQiLDExNToiQ29ubmVjdGlvbiBhbHJlYWR5IGluIHBy''@;'; + put 'put ''b2dyZXNzIiwxMTY6IlN0YWxlIGZpbGUgaGFuZGxlIiwxMjI6IlF1b3RhIGV4Y2VlZGVkIiwxMjM6Ik5vIG1lZGl1bSAoaW4gdGFwZSBkcml2ZSkiLDEyNToiT3BlcmF0aW9uIGNhbmNlbGVkIiwxMzA6IlByZXZpb3VzIG93bmVyIGRpZWQiLDEzMToiU3RhdGUgbm90IHJlY292ZXJhYmxlIn0s''@;'; + put 'put ''VTA9e3NwbGl0UGF0aDpmdW5jdGlvbihwdCl7cmV0dXJuL14oXC8/fCkoW1xzXFNdKj8pKCg/OlwuezEsMn18W15cL10rP3wpKFwuW14uXC9dKnwpKSg/OltcL10qKSQvLmV4ZWMocHQpLnNsaWNlKDEpfSxub3JtYWxpemVBcnJheTpmdW5jdGlvbihwdCxJdCl7Zm9yKHZhciBQdD0wLGZlPXB0''@;'; + put 'put ''Lmxlbmd0aC0xO2ZlPj0wO2ZlLS0pe3ZhciBpdD1wdFtmZV07Ii4iPT09aXQ/cHQuc3BsaWNlKGZlLDEpOiIuLiI9PT1pdD8ocHQuc3BsaWNlKGZlLDEpLFB0KyspOlB0JiYocHQuc3BsaWNlKGZlLDEpLFB0LS0pfWlmKEl0KWZvcig7UHQ7UHQtLSlwdC51bnNoaWZ0KCIuLiIpO3JldHVybiBw''@;'; + put 'put ''dH0sbm9ybWFsaXplOmZ1bmN0aW9uKHB0KXt2YXIgSXQ9Ii8iPT09cHQuY2hhckF0KDApLFB0PSIvIj09PXB0LnN1YnN0cigtMSk7cmV0dXJuIShwdD1VMC5ub3JtYWxpemVBcnJheShwdC5zcGxpdCgiLyIpLmZpbHRlcihmdW5jdGlvbihmZSl7cmV0dXJuISFmZX0pLCFJdCkuam9pbigiLyIp''@;'; + put 'put ''KSYmIUl0JiYocHQ9Ii4iKSxwdCYmUHQmJihwdCs9Ii8iKSwoSXQ/Ii8iOiIiKStwdH0sZGlybmFtZTpmdW5jdGlvbihwdCl7dmFyIEl0PVUwLnNwbGl0UGF0aChwdCksUHQ9SXRbMF0sZmU9SXRbMV07cmV0dXJuIFB0fHxmZT8oZmUmJihmZT1mZS5zdWJzdHIoMCxmZS5sZW5ndGgtMSkpLFB0''@;'; + put 'put ''K2ZlKToiLiJ9LGJhc2VuYW1lOmZ1bmN0aW9uKHB0KXtpZigiLyI9PT1wdClyZXR1cm4iLyI7dmFyIEl0PXB0Lmxhc3RJbmRleE9mKCIvIik7cmV0dXJuLTE9PT1JdD9wdDpwdC5zdWJzdHIoSXQrMSl9LGV4dG5hbWU6ZnVuY3Rpb24ocHQpe3JldHVybiBVMC5zcGxpdFBhdGgocHQpWzNdfSxq''@;'; + put 'put ''b2luOmZ1bmN0aW9uKCl7dmFyIHB0PUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywwKTtyZXR1cm4gVTAubm9ybWFsaXplKHB0LmpvaW4oIi8iKSl9LGpvaW4yOmZ1bmN0aW9uKHB0LEl0KXtyZXR1cm4gVTAubm9ybWFsaXplKHB0KyIvIitJdCl9LHJlc29sdmU6ZnVuY3Rp''@;'; + put 'put ''b24oKXtmb3IodmFyIHB0PSIiLEl0PSExLFB0PWFyZ3VtZW50cy5sZW5ndGgtMTtQdD49LTEmJiFJdDtQdC0tKXt2YXIgZmU9UHQ+PTA/YXJndW1lbnRzW1B0XTp2bi5jd2QoKTtpZigic3RyaW5nIiE9dHlwZW9mIGZlKXRocm93IG5ldyBUeXBlRXJyb3IoIkFyZ3VtZW50cyB0byBwYXRoLnJl''@;'; + put 'put ''c29sdmUgbXVzdCBiZSBzdHJpbmdzIik7aWYoIWZlKXJldHVybiIiO3B0PWZlKyIvIitwdCxJdD0iLyI9PT1mZS5jaGFyQXQoMCl9cmV0dXJuKEl0PyIvIjoiIikrKHB0PVUwLm5vcm1hbGl6ZUFycmF5KHB0LnNwbGl0KCIvIikuZmlsdGVyKGZ1bmN0aW9uKGl0KXtyZXR1cm4hIWl0fSksIUl0''@;'; + put 'put ''KS5qb2luKCIvIikpfHwiLiJ9LHJlbGF0aXZlOmZ1bmN0aW9uKHB0LEl0KXtmdW5jdGlvbiBQdChqbil7Zm9yKHZhciBfPTA7Xzxqbi5sZW5ndGgmJiIiPT09am5bX107XysrKTtmb3IodmFyIEFvPWpuLmxlbmd0aC0xO0FvPj0wJiYiIj09PWpuW0FvXTtBby0tKTtyZXR1cm4gXz5Bbz9bXTpq''@;'; + put 'put ''bi5zbGljZShfLEFvLV8rMSl9cHQ9VTAucmVzb2x2ZShwdCkuc3Vic3RyKDEpLEl0PVUwLnJlc29sdmUoSXQpLnN1YnN0cigxKTtmb3IodmFyIGZlPVB0KHB0LnNwbGl0KCIvIikpLGl0PVB0KEl0LnNwbGl0KCIvIikpLGE9TWF0aC5taW4oZmUubGVuZ3RoLGl0Lmxlbmd0aCksWHQ9YSxocj0w''@;'; + put 'put ''O2hyPGE7aHIrKylpZihmZVtocl0hPT1pdFtocl0pe1h0PWhyO2JyZWFrfXZhciBQaT1bXTtmb3IoaHI9WHQ7aHI8ZmUubGVuZ3RoO2hyKyspUGkucHVzaCgiLi4iKTtyZXR1cm4oUGk9UGkuY29uY2F0KGl0LnNsaWNlKFh0KSkpLmpvaW4oIi8iKX19LFJzPXt0dHlzOltdLGluaXQ6ZnVuY3Rp''@;'; + put 'put ''b24oKXt9LHNodXRkb3duOmZ1bmN0aW9uKCl7fSxyZWdpc3RlcjpmdW5jdGlvbihwdCxJdCl7UnMudHR5c1twdF09e2lucHV0OltdLG91dHB1dDpbXSxvcHM6SXR9LHZuLnJlZ2lzdGVyRGV2aWNlKHB0LFJzLnN0cmVhbV9vcHMpfSxzdHJlYW1fb3BzOntvcGVuOmZ1bmN0aW9uKHB0KXt2YXIg''@;'; + put 'put ''SXQ9UnMudHR5c1twdC5ub2RlLnJkZXZdO2lmKCFJdCl0aHJvdyBuZXcgdm4uRXJybm9FcnJvcih2aS5FTk9ERVYpO3B0LnR0eT1JdCxwdC5zZWVrYWJsZT0hMX0sY2xvc2U6ZnVuY3Rpb24ocHQpe3B0LnR0eS5vcHMuZmx1c2gocHQudHR5KX0sZmx1c2g6ZnVuY3Rpb24ocHQpe3B0LnR0eS5v''@;'; + put 'put ''cHMuZmx1c2gocHQudHR5KX0scmVhZDpmdW5jdGlvbihwdCxJdCxQdCxmZSxpdCl7aWYoIXB0LnR0eXx8IXB0LnR0eS5vcHMuZ2V0X2NoYXIpdGhyb3cgbmV3IHZuLkVycm5vRXJyb3IodmkuRU5YSU8pO2Zvcih2YXIgYT0wLFh0PTA7WHQ8ZmU7WHQrKyl7dmFyIGhyO3RyeXtocj1wdC50dHku''@;'; + put 'put ''b3BzLmdldF9jaGFyKHB0LnR0eSl9Y2F0Y2goUGkpe3Rocm93IG5ldyB2bi5FcnJub0Vycm9yKHZpLkVJTyl9aWYodm9pZCAwPT09aHImJjA9PT1hKXRocm93IG5ldyB2bi5FcnJub0Vycm9yKHZpLkVBR0FJTik7aWYobnVsbD09aHIpYnJlYWs7YSsrLEl0W1B0K1h0XT1ocn1yZXR1cm4gYSYm''@;'; + put 'put ''KHB0Lm5vZGUudGltZXN0YW1wPURhdGUubm93KCkpLGF9LHdyaXRlOmZ1bmN0aW9uKHB0LEl0LFB0LGZlLGl0KXtpZighcHQudHR5fHwhcHQudHR5Lm9wcy5wdXRfY2hhcil0aHJvdyBuZXcgdm4uRXJybm9FcnJvcih2aS5FTlhJTyk7Zm9yKHZhciBhPTA7YTxmZTthKyspdHJ5e3B0LnR0eS5v''@;'; + put 'put ''cHMucHV0X2NoYXIocHQudHR5LEl0W1B0K2FdKX1jYXRjaChYdCl7dGhyb3cgbmV3IHZuLkVycm5vRXJyb3IodmkuRUlPKX1yZXR1cm4gZmUmJihwdC5ub2RlLnRpbWVzdGFtcD1EYXRlLm5vdygpKSxhfX0sZGVmYXVsdF90dHlfb3BzOntnZXRfY2hhcjpmdW5jdGlvbihwdCl7aWYoIXB0Lmlu''@;'; + put 'put ''cHV0Lmxlbmd0aCl7dmFyIEl0PW51bGw7aWYoTil7dmFyIGZlPW5ldyBCdWZmZXIoMjU2KSxpdD0wLGE9IndpbjMyIiE9cHJvY2Vzcy5wbGF0Zm9ybSxYdD1wcm9jZXNzLnN0ZGluLmZkO2lmKGEpe3ZhciBocj0hMTt0cnl7WHQ9bWwub3BlblN5bmMoIi9kZXYvc3RkaW4iLCJyIiksaHI9ITB9''@;'; + put 'put ''Y2F0Y2goUGkpe319dHJ5e2l0PW1sLnJlYWRTeW5jKFh0LGZlLDAsMjU2LG51bGwpfWNhdGNoKFBpKXtpZigtMT09UGkudG9TdHJpbmcoKS5pbmRleE9mKCJFT0YiKSl0aHJvdyBQaTtpdD0wfWhyJiZtbC5jbG9zZVN5bmMoWHQpLEl0PWl0PjA/ZmUuc2xpY2UoMCxpdCkudG9TdHJpbmcoInV0''@;'; + put 'put ''Zi04Iik6bnVsbH1lbHNlInVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cmJiJmdW5jdGlvbiI9PXR5cGVvZiB3aW5kb3cucHJvbXB0P251bGwhPT0oSXQ9d2luZG93LnByb21wdCgiSW5wdXQ6ICIpKSYmKEl0Kz0iXG4iKToiZnVuY3Rpb24iPT10eXBlb2YgcmVhZGxpbmUmJm51bGwhPT0oSXQ9''@;'; + put 'put ''cmVhZGxpbmUoKSkmJihJdCs9IlxuIik7aWYoIUl0KXJldHVybiBudWxsO3B0LmlucHV0PXNvKEl0LCEwKX1yZXR1cm4gcHQuaW5wdXQuc2hpZnQoKX0scHV0X2NoYXI6ZnVuY3Rpb24ocHQsSXQpe251bGw9PT1JdHx8MTA9PT1JdD8oWi5wcmludChDZShwdC5vdXRwdXQsMCkpLHB0Lm91dHB1''@;'; + put 'put ''dD1bXSk6MCE9SXQmJnB0Lm91dHB1dC5wdXNoKEl0KX0sZmx1c2g6ZnVuY3Rpb24ocHQpe3B0Lm91dHB1dCYmcHQub3V0cHV0Lmxlbmd0aD4wJiYoWi5wcmludChDZShwdC5vdXRwdXQsMCkpLHB0Lm91dHB1dD1bXSl9fSxkZWZhdWx0X3R0eTFfb3BzOntwdXRfY2hhcjpmdW5jdGlvbihwdCxJ''@;'; + put 'put ''dCl7bnVsbD09PUl0fHwxMD09PUl0PyhaLnByaW50RXJyKENlKHB0Lm91dHB1dCwwKSkscHQub3V0cHV0PVtdKTowIT1JdCYmcHQub3V0cHV0LnB1c2goSXQpfSxmbHVzaDpmdW5jdGlvbihwdCl7cHQub3V0cHV0JiZwdC5vdXRwdXQubGVuZ3RoPjAmJihaLnByaW50RXJyKENlKHB0Lm91dHB1''@;'; + put 'put ''dCwwKSkscHQub3V0cHV0PVtdKX19fSxYMD17b3BzX3RhYmxlOm51bGwsbW91bnQ6ZnVuY3Rpb24ocHQpe3JldHVybiBYMC5jcmVhdGVOb2RlKG51bGwsIi8iLDE2ODk1LDApfSxjcmVhdGVOb2RlOmZ1bmN0aW9uKHB0LEl0LFB0LGZlKXtpZih2bi5pc0Jsa2RldihQdCl8fHZuLmlzRklGTyhQ''@;'; + put 'put ''dCkpdGhyb3cgbmV3IHZuLkVycm5vRXJyb3IodmkuRVBFUk0pO1gwLm9wc190YWJsZXx8KFgwLm9wc190YWJsZT17ZGlyOntub2RlOntnZXRhdHRyOlgwLm5vZGVfb3BzLmdldGF0dHIsc2V0YXR0cjpYMC5ub2RlX29wcy5zZXRhdHRyLGxvb2t1cDpYMC5ub2RlX29wcy5sb29rdXAsbWtub2Q6''@;'; + put 'put ''WDAubm9kZV9vcHMubWtub2QscmVuYW1lOlgwLm5vZGVfb3BzLnJlbmFtZSx1bmxpbms6WDAubm9kZV9vcHMudW5saW5rLHJtZGlyOlgwLm5vZGVfb3BzLnJtZGlyLHJlYWRkaXI6WDAubm9kZV9vcHMucmVhZGRpcixzeW1saW5rOlgwLm5vZGVfb3BzLnN5bWxpbmt9LHN0cmVhbTp7bGxzZWVr''@;'; + put 'put ''OlgwLnN0cmVhbV9vcHMubGxzZWVrfX0sZmlsZTp7bm9kZTp7Z2V0YXR0cjpYMC5ub2RlX29wcy5nZXRhdHRyLHNldGF0dHI6WDAubm9kZV9vcHMuc2V0YXR0cn0sc3RyZWFtOntsbHNlZWs6WDAuc3RyZWFtX29wcy5sbHNlZWsscmVhZDpYMC5zdHJlYW1fb3BzLnJlYWQsd3JpdGU6WDAuc3Ry''@;'; + put 'put ''ZWFtX29wcy53cml0ZSxhbGxvY2F0ZTpYMC5zdHJlYW1fb3BzLmFsbG9jYXRlLG1tYXA6WDAuc3RyZWFtX29wcy5tbWFwLG1zeW5jOlgwLnN0cmVhbV9vcHMubXN5bmN9fSxsaW5rOntub2RlOntnZXRhdHRyOlgwLm5vZGVfb3BzLmdldGF0dHIsc2V0YXR0cjpYMC5ub2RlX29wcy5zZXRhdHRy''@;'; + put 'put ''LHJlYWRsaW5rOlgwLm5vZGVfb3BzLnJlYWRsaW5rfSxzdHJlYW06e319LGNocmRldjp7bm9kZTp7Z2V0YXR0cjpYMC5ub2RlX29wcy5nZXRhdHRyLHNldGF0dHI6WDAubm9kZV9vcHMuc2V0YXR0cn0sc3RyZWFtOnZuLmNocmRldl9zdHJlYW1fb3BzfX0pO3ZhciBpdD12bi5jcmVhdGVOb2Rl''@;'; + put 'put ''KHB0LEl0LFB0LGZlKTtyZXR1cm4gdm4uaXNEaXIoaXQubW9kZSk/KGl0Lm5vZGVfb3BzPVgwLm9wc190YWJsZS5kaXIubm9kZSxpdC5zdHJlYW1fb3BzPVgwLm9wc190YWJsZS5kaXIuc3RyZWFtLGl0LmNvbnRlbnRzPXt9KTp2bi5pc0ZpbGUoaXQubW9kZSk/KGl0Lm5vZGVfb3BzPVgwLm9w''@;'; + put 'put ''c190YWJsZS5maWxlLm5vZGUsaXQuc3RyZWFtX29wcz1YMC5vcHNfdGFibGUuZmlsZS5zdHJlYW0saXQudXNlZEJ5dGVzPTAsaXQuY29udGVudHM9bnVsbCk6dm4uaXNMaW5rKGl0Lm1vZGUpPyhpdC5ub2RlX29wcz1YMC5vcHNfdGFibGUubGluay5ub2RlLGl0LnN0cmVhbV9vcHM9WDAub3Bz''@;'; + put 'put ''X3RhYmxlLmxpbmsuc3RyZWFtKTp2bi5pc0NocmRldihpdC5tb2RlKSYmKGl0Lm5vZGVfb3BzPVgwLm9wc190YWJsZS5jaHJkZXYubm9kZSxpdC5zdHJlYW1fb3BzPVgwLm9wc190YWJsZS5jaHJkZXYuc3RyZWFtKSxpdC50aW1lc3RhbXA9RGF0ZS5ub3coKSxwdCYmKHB0LmNvbnRlbnRzW0l0''@;'; + put 'put ''XT1pdCksaXR9LGdldEZpbGVEYXRhQXNSZWd1bGFyQXJyYXk6ZnVuY3Rpb24ocHQpe2lmKHB0LmNvbnRlbnRzJiZwdC5jb250ZW50cy5zdWJhcnJheSl7Zm9yKHZhciBJdD1bXSxQdD0wO1B0PHB0LnVzZWRCeXRlczsrK1B0KUl0LnB1c2gocHQuY29udGVudHNbUHRdKTtyZXR1cm4gSXR9cmV0''@;'; + put 'put ''dXJuIHB0LmNvbnRlbnRzfSxnZXRGaWxlRGF0YUFzVHlwZWRBcnJheTpmdW5jdGlvbihwdCl7cmV0dXJuIHB0LmNvbnRlbnRzP3B0LmNvbnRlbnRzLnN1YmFycmF5P3B0LmNvbnRlbnRzLnN1YmFycmF5KDAscHQudXNlZEJ5dGVzKTpuZXcgVWludDhBcnJheShwdC5jb250ZW50cyk6bmV3IFVp''@;'; + put 'put ''bnQ4QXJyYXl9LGV4cGFuZEZpbGVTdG9yYWdlOmZ1bmN0aW9uKHB0LEl0KXtpZihwdC5jb250ZW50cyYmcHQuY29udGVudHMuc3ViYXJyYXkmJkl0PnB0LmNvbnRlbnRzLmxlbmd0aCYmKHB0LmNvbnRlbnRzPVgwLmdldEZpbGVEYXRhQXNSZWd1bGFyQXJyYXkocHQpLHB0LnVzZWRCeXRlcz1w''@;'; + put 'put ''dC5jb250ZW50cy5sZW5ndGgpLCFwdC5jb250ZW50c3x8cHQuY29udGVudHMuc3ViYXJyYXkpe3ZhciBQdD1wdC5jb250ZW50cz9wdC5jb250ZW50cy5sZW5ndGg6MDtpZihQdD49SXQpcmV0dXJuO0l0PU1hdGgubWF4KEl0LFB0KihQdDwxMDQ4NTc2PzI6MS4xMjUpfDApLDAhPVB0JiYoSXQ9''@;'; + put 'put ''TWF0aC5tYXgoSXQsMjU2KSk7dmFyIGl0PXB0LmNvbnRlbnRzO3JldHVybiBwdC5jb250ZW50cz1uZXcgVWludDhBcnJheShJdCksdm9pZChwdC51c2VkQnl0ZXM+MCYmcHQuY29udGVudHMuc2V0KGl0LnN1YmFycmF5KDAscHQudXNlZEJ5dGVzKSwwKSl9Zm9yKCFwdC5jb250ZW50cyYmSXQ+''@;'; + put 'put ''MCYmKHB0LmNvbnRlbnRzPVtdKTtwdC5jb250ZW50cy5sZW5ndGg8SXQ7KXB0LmNvbnRlbnRzLnB1c2goMCl9LHJlc2l6ZUZpbGVTdG9yYWdlOmZ1bmN0aW9uKHB0LEl0KXtpZihwdC51c2VkQnl0ZXMhPUl0KXtpZigwPT1JdClyZXR1cm4gcHQuY29udGVudHM9bnVsbCx2b2lkKHB0LnVzZWRC''@;'; + put 'put ''eXRlcz0wKTtpZighcHQuY29udGVudHN8fHB0LmNvbnRlbnRzLnN1YmFycmF5KXt2YXIgUHQ9cHQuY29udGVudHM7cmV0dXJuIHB0LmNvbnRlbnRzPW5ldyBVaW50OEFycmF5KG5ldyBBcnJheUJ1ZmZlcihJdCkpLFB0JiZwdC5jb250ZW50cy5zZXQoUHQuc3ViYXJyYXkoMCxNYXRoLm1pbihJ''@;'; + put 'put ''dCxwdC51c2VkQnl0ZXMpKSksdm9pZChwdC51c2VkQnl0ZXM9SXQpfWlmKHB0LmNvbnRlbnRzfHwocHQuY29udGVudHM9W10pLHB0LmNvbnRlbnRzLmxlbmd0aD5JdClwdC5jb250ZW50cy5sZW5ndGg9SXQ7ZWxzZSBmb3IoO3B0LmNvbnRlbnRzLmxlbmd0aDxJdDspcHQuY29udGVudHMucHVz''@;'; + put 'put ''aCgwKTtwdC51c2VkQnl0ZXM9SXR9fSxub2RlX29wczp7Z2V0YXR0cjpmdW5jdGlvbihwdCl7dmFyIEl0PXt9O3JldHVybiBJdC5kZXY9dm4uaXNDaHJkZXYocHQubW9kZSk/cHQuaWQ6MSxJdC5pbm89cHQuaWQsSXQubW9kZT1wdC5tb2RlLEl0Lm5saW5rPTEsSXQudWlkPTAsSXQuZ2lkPTAs''@;'; + put 'put ''SXQucmRldj1wdC5yZGV2LEl0LnNpemU9dm4uaXNEaXIocHQubW9kZSk/NDA5Njp2bi5pc0ZpbGUocHQubW9kZSk/cHQudXNlZEJ5dGVzOnZuLmlzTGluayhwdC5tb2RlKT9wdC5saW5rLmxlbmd0aDowLEl0LmF0aW1lPW5ldyBEYXRlKHB0LnRpbWVzdGFtcCksSXQubXRpbWU9bmV3IERhdGUo''@;'; + put 'put ''cHQudGltZXN0YW1wKSxJdC5jdGltZT1uZXcgRGF0ZShwdC50aW1lc3RhbXApLEl0LmJsa3NpemU9NDA5NixJdC5ibG9ja3M9TWF0aC5jZWlsKEl0LnNpemUvSXQuYmxrc2l6ZSksSXR9LHNldGF0dHI6ZnVuY3Rpb24ocHQsSXQpe3ZvaWQgMCE9PUl0Lm1vZGUmJihwdC5tb2RlPUl0Lm1vZGUp''@;'; + put 'put ''LHZvaWQgMCE9PUl0LnRpbWVzdGFtcCYmKHB0LnRpbWVzdGFtcD1JdC50aW1lc3RhbXApLHZvaWQgMCE9PUl0LnNpemUmJlgwLnJlc2l6ZUZpbGVTdG9yYWdlKHB0LEl0LnNpemUpfSxsb29rdXA6ZnVuY3Rpb24ocHQsSXQpe3Rocm93IHZuLmdlbmVyaWNFcnJvcnNbdmkuRU5PRU5UXX0sbWtu''@;'; + put 'put ''b2Q6ZnVuY3Rpb24ocHQsSXQsUHQsZmUpe3JldHVybiBYMC5jcmVhdGVOb2RlKHB0LEl0LFB0LGZlKX0scmVuYW1lOmZ1bmN0aW9uKHB0LEl0LFB0KXtpZih2bi5pc0RpcihwdC5tb2RlKSl7dmFyIGZlO3RyeXtmZT12bi5sb29rdXBOb2RlKEl0LFB0KX1jYXRjaChhKXt9aWYoZmUpZm9yKHZh''@;'; + put 'put ''ciBpdCBpbiBmZS5jb250ZW50cyl0aHJvdyBuZXcgdm4uRXJybm9FcnJvcih2aS5FTk9URU1QVFkpfWRlbGV0ZSBwdC5wYXJlbnQuY29udGVudHNbcHQubmFtZV0scHQubmFtZT1QdCxJdC5jb250ZW50c1tQdF09cHQscHQucGFyZW50PUl0fSx1bmxpbms6ZnVuY3Rpb24ocHQsSXQpe2RlbGV0''@;'; + put 'put ''ZSBwdC5jb250ZW50c1tJdF19LHJtZGlyOmZ1bmN0aW9uKHB0LEl0KXt2YXIgUHQ9dm4ubG9va3VwTm9kZShwdCxJdCk7Zm9yKHZhciBmZSBpbiBQdC5jb250ZW50cyl0aHJvdyBuZXcgdm4uRXJybm9FcnJvcih2aS5FTk9URU1QVFkpO2RlbGV0ZSBwdC5jb250ZW50c1tJdF19LHJlYWRkaXI6''@;'; + put 'put ''ZnVuY3Rpb24ocHQpe3ZhciBJdD1bIi4iLCIuLiJdO2Zvcih2YXIgUHQgaW4gcHQuY29udGVudHMpIXB0LmNvbnRlbnRzLmhhc093blByb3BlcnR5KFB0KXx8SXQucHVzaChQdCk7cmV0dXJuIEl0fSxzeW1saW5rOmZ1bmN0aW9uKHB0LEl0LFB0KXt2YXIgZmU9WDAuY3JlYXRlTm9kZShwdCxJ''@;'; + put 'put ''dCw0MTQ3MSwwKTtyZXR1cm4gZmUubGluaz1QdCxmZX0scmVhZGxpbms6ZnVuY3Rpb24ocHQpe2lmKCF2bi5pc0xpbmsocHQubW9kZSkpdGhyb3cgbmV3IHZuLkVycm5vRXJyb3IodmkuRUlOVkFMKTtyZXR1cm4gcHQubGlua319LHN0cmVhbV9vcHM6e3JlYWQ6ZnVuY3Rpb24ocHQsSXQsUHQs''@;'; + put 'put ''ZmUsaXQpe3ZhciBhPXB0Lm5vZGUuY29udGVudHM7aWYoaXQ+PXB0Lm5vZGUudXNlZEJ5dGVzKXJldHVybiAwO3ZhciBYdD1NYXRoLm1pbihwdC5ub2RlLnVzZWRCeXRlcy1pdCxmZSk7aWYoTyhYdD49MCksWHQ+OCYmYS5zdWJhcnJheSlJdC5zZXQoYS5zdWJhcnJheShpdCxpdCtYdCksUHQp''@;'; + put 'put ''O2Vsc2UgZm9yKHZhciBocj0wO2hyPFh0O2hyKyspSXRbUHQraHJdPWFbaXQraHJdO3JldHVybiBYdH0sd3JpdGU6ZnVuY3Rpb24ocHQsSXQsUHQsZmUsaXQsYSl7aWYoIWZlKXJldHVybiAwO3ZhciBYdD1wdC5ub2RlO2lmKFh0LnRpbWVzdGFtcD1EYXRlLm5vdygpLEl0LnN1YmFycmF5JiYo''@;'; + put 'put ''IVh0LmNvbnRlbnRzfHxYdC5jb250ZW50cy5zdWJhcnJheSkpe2lmKGEpcmV0dXJuIFh0LmNvbnRlbnRzPUl0LnN1YmFycmF5KFB0LFB0K2ZlKSxYdC51c2VkQnl0ZXM9ZmUsZmU7aWYoMD09PVh0LnVzZWRCeXRlcyYmMD09PWl0KXJldHVybiBYdC5jb250ZW50cz1uZXcgVWludDhBcnJheShJ''@;'; + put 'put ''dC5zdWJhcnJheShQdCxQdCtmZSkpLFh0LnVzZWRCeXRlcz1mZSxmZTtpZihpdCtmZTw9WHQudXNlZEJ5dGVzKXJldHVybiBYdC5jb250ZW50cy5zZXQoSXQuc3ViYXJyYXkoUHQsUHQrZmUpLGl0KSxmZX1pZihYMC5leHBhbmRGaWxlU3RvcmFnZShYdCxpdCtmZSksWHQuY29udGVudHMuc3Vi''@;'; + put 'put ''YXJyYXkmJkl0LnN1YmFycmF5KVh0LmNvbnRlbnRzLnNldChJdC5zdWJhcnJheShQdCxQdCtmZSksaXQpO2Vsc2UgZm9yKHZhciBocj0wO2hyPGZlO2hyKyspWHQuY29udGVudHNbaXQraHJdPUl0W1B0K2hyXTtyZXR1cm4gWHQudXNlZEJ5dGVzPU1hdGgubWF4KFh0LnVzZWRCeXRlcyxpdCtm''@;'; + put 'put ''ZSksZmV9LGxsc2VlazpmdW5jdGlvbihwdCxJdCxQdCl7dmFyIGZlPUl0O2lmKDE9PT1QdD9mZSs9cHQucG9zaXRpb246Mj09PVB0JiZ2bi5pc0ZpbGUocHQubm9kZS5tb2RlKSYmKGZlKz1wdC5ub2RlLnVzZWRCeXRlcyksZmU8MCl0aHJvdyBuZXcgdm4uRXJybm9FcnJvcih2aS5FSU5WQUwp''@;'; + put 'put ''O3JldHVybiBmZX0sYWxsb2NhdGU6ZnVuY3Rpb24ocHQsSXQsUHQpe1gwLmV4cGFuZEZpbGVTdG9yYWdlKHB0Lm5vZGUsSXQrUHQpLHB0Lm5vZGUudXNlZEJ5dGVzPU1hdGgubWF4KHB0Lm5vZGUudXNlZEJ5dGVzLEl0K1B0KX0sbW1hcDpmdW5jdGlvbihwdCxJdCxQdCxmZSxpdCxhLFh0KXtp''@;'; + put 'put ''Zighdm4uaXNGaWxlKHB0Lm5vZGUubW9kZSkpdGhyb3cgbmV3IHZuLkVycm5vRXJyb3IodmkuRU5PREVWKTt2YXIgaHIsUGksam49cHQubm9kZS5jb250ZW50cztpZigyJlh0fHxqbi5idWZmZXIhPT1JdCYmam4uYnVmZmVyIT09SXQuYnVmZmVyKXtpZigoaXQ+MHx8aXQrZmU8cHQubm9kZS51''@;'; + put 'put ''c2VkQnl0ZXMpJiYoam49am4uc3ViYXJyYXk/am4uc3ViYXJyYXkoaXQsaXQrZmUpOkFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGpuLGl0LGl0K2ZlKSksUGk9ITAsIShocj16cChmZSkpKXRocm93IG5ldyB2bi5FcnJub0Vycm9yKHZpLkVOT01FTSk7SXQuc2V0KGpuLGhyKX1lbHNlIFBp''@;'; + put 'put ''PSExLGhyPWpuLmJ5dGVPZmZzZXQ7cmV0dXJue3B0cjpocixhbGxvY2F0ZWQ6UGl9fSxtc3luYzpmdW5jdGlvbihwdCxJdCxQdCxmZSxpdCl7aWYoIXZuLmlzRmlsZShwdC5ub2RlLm1vZGUpKXRocm93IG5ldyB2bi5FcnJub0Vycm9yKHZpLkVOT0RFVik7cmV0dXJuIDImaXR8fFgwLnN0cmVh''@;'; + put 'put ''bV9vcHMud3JpdGUocHQsSXQsMCxmZSxQdCwhMSksMH19fSx1YT17ZGJzOnt9LGluZGV4ZWREQjpmdW5jdGlvbigpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgaW5kZXhlZERCKXJldHVybiBpbmRleGVkREI7dmFyIHB0PW51bGw7cmV0dXJuIm9iamVjdCI9PXR5cGVvZiB3aW5kb3cmJihwdD13''@;'; + put 'put ''aW5kb3cuaW5kZXhlZERCfHx3aW5kb3cubW96SW5kZXhlZERCfHx3aW5kb3cud2Via2l0SW5kZXhlZERCfHx3aW5kb3cubXNJbmRleGVkREIpLE8ocHQsIklEQkZTIHVzZWQsIGJ1dCBpbmRleGVkREIgbm90IHN1cHBvcnRlZCIpLHB0fSxEQl9WRVJTSU9OOjIxLERCX1NUT1JFX05BTUU6IkZJ''@;'; + put 'put ''TEVfREFUQSIsbW91bnQ6ZnVuY3Rpb24ocHQpe3JldHVybiBYMC5tb3VudC5hcHBseShudWxsLGFyZ3VtZW50cyl9LHN5bmNmczpmdW5jdGlvbihwdCxJdCxQdCl7dWEuZ2V0TG9jYWxTZXQocHQsZnVuY3Rpb24oZmUsaXQpe2lmKGZlKXJldHVybiBQdChmZSk7dWEuZ2V0UmVtb3RlU2V0KHB0''@;'; + put 'put ''LGZ1bmN0aW9uKGEsWHQpe2lmKGEpcmV0dXJuIFB0KGEpO3VhLnJlY29uY2lsZShJdD9YdDppdCxJdD9pdDpYdCxQdCl9KX0pfSxnZXREQjpmdW5jdGlvbihwdCxJdCl7dmFyIGZlLFB0PXVhLmRic1twdF07aWYoUHQpcmV0dXJuIEl0KG51bGwsUHQpO3RyeXtmZT11YS5pbmRleGVkREIoKS5v''@;'; + put 'put ''cGVuKHB0LHVhLkRCX1ZFUlNJT04pfWNhdGNoKGl0KXtyZXR1cm4gSXQoaXQpfWlmKCFmZSlyZXR1cm4gSXQoIlVuYWJsZSB0byBjb25uZWN0IHRvIEluZGV4ZWREQiIpO2ZlLm9udXBncmFkZW5lZWRlZD1mdW5jdGlvbihpdCl7dmFyIGhyLGE9aXQudGFyZ2V0LnJlc3VsdCxYdD1pdC50YXJn''@;'; + put 'put ''ZXQudHJhbnNhY3Rpb247KGhyPWEub2JqZWN0U3RvcmVOYW1lcy5jb250YWlucyh1YS5EQl9TVE9SRV9OQU1FKT9YdC5vYmplY3RTdG9yZSh1YS5EQl9TVE9SRV9OQU1FKTphLmNyZWF0ZU9iamVjdFN0b3JlKHVhLkRCX1NUT1JFX05BTUUpKS5pbmRleE5hbWVzLmNvbnRhaW5zKCJ0aW1lc3Rh''@;'; + put 'put ''bXAiKXx8aHIuY3JlYXRlSW5kZXgoInRpbWVzdGFtcCIsInRpbWVzdGFtcCIse3VuaXF1ZTohMX0pfSxmZS5vbnN1Y2Nlc3M9ZnVuY3Rpb24oKXt1YS5kYnNbcHRdPVB0PWZlLnJlc3VsdCxJdChudWxsLFB0KX0sZmUub25lcnJvcj1mdW5jdGlvbihpdCl7SXQodGhpcy5lcnJvciksaXQucHJl''@;'; + put 'put ''dmVudERlZmF1bHQoKX19LGdldExvY2FsU2V0OmZ1bmN0aW9uKHB0LEl0KXt2YXIgUHQ9e307ZnVuY3Rpb24gZmUoUGkpe3JldHVybiIuIiE9PVBpJiYiLi4iIT09UGl9ZnVuY3Rpb24gaXQoUGkpe3JldHVybiBmdW5jdGlvbihqbil7cmV0dXJuIFUwLmpvaW4yKFBpLGpuKX19Zm9yKHZhciBh''@;'; + put 'put ''PXZuLnJlYWRkaXIocHQubW91bnRwb2ludCkuZmlsdGVyKGZlKS5tYXAoaXQocHQubW91bnRwb2ludCkpO2EubGVuZ3RoOyl7dmFyIGhyLFh0PWEucG9wKCk7dHJ5e2hyPXZuLnN0YXQoWHQpfWNhdGNoKFBpKXtyZXR1cm4gSXQoUGkpfXZuLmlzRGlyKGhyLm1vZGUpJiZhLnB1c2guYXBwbHko''@;'; + put 'put ''YSx2bi5yZWFkZGlyKFh0KS5maWx0ZXIoZmUpLm1hcChpdChYdCkpKSxQdFtYdF09e3RpbWVzdGFtcDpoci5tdGltZX19cmV0dXJuIEl0KG51bGwse3R5cGU6ImxvY2FsIixlbnRyaWVzOlB0fSl9LGdldFJlbW90ZVNldDpmdW5jdGlvbihwdCxJdCl7dmFyIFB0PXt9O3VhLmdldERCKHB0Lm1v''@;'; + put 'put ''dW50cG9pbnQsZnVuY3Rpb24oZmUsaXQpe2lmKGZlKXJldHVybiBJdChmZSk7dHJ5e3ZhciBhPWl0LnRyYW5zYWN0aW9uKFt1YS5EQl9TVE9SRV9OQU1FXSwicmVhZG9ubHkiKTthLm9uZXJyb3I9ZnVuY3Rpb24oUGkpe0l0KHRoaXMuZXJyb3IpLFBpLnByZXZlbnREZWZhdWx0KCl9LGEub2Jq''@;'; + put 'put ''ZWN0U3RvcmUodWEuREJfU1RPUkVfTkFNRSkuaW5kZXgoInRpbWVzdGFtcCIpLm9wZW5LZXlDdXJzb3IoKS5vbnN1Y2Nlc3M9ZnVuY3Rpb24oUGkpe3ZhciBqbj1QaS50YXJnZXQucmVzdWx0O2lmKCFqbilyZXR1cm4gSXQobnVsbCx7dHlwZToicmVtb3RlIixkYjppdCxlbnRyaWVzOlB0fSk7''@;'; + put 'put ''UHRbam4ucHJpbWFyeUtleV09e3RpbWVzdGFtcDpqbi5rZXl9LGpuLmNvbnRpbnVlKCl9fWNhdGNoKFBpKXtyZXR1cm4gSXQoUGkpfX0pfSxsb2FkTG9jYWxFbnRyeTpmdW5jdGlvbihwdCxJdCl7dmFyIFB0LGZlO3RyeXtmZT12bi5sb29rdXBQYXRoKHB0KS5ub2RlLFB0PXZuLnN0YXQocHQp''@;'; + put 'put ''fWNhdGNoKGEpe3JldHVybiBJdChhKX1yZXR1cm4gdm4uaXNEaXIoUHQubW9kZSk/SXQobnVsbCx7dGltZXN0YW1wOlB0Lm10aW1lLG1vZGU6UHQubW9kZX0pOnZuLmlzRmlsZShQdC5tb2RlKT8oZmUuY29udGVudHM9WDAuZ2V0RmlsZURhdGFBc1R5cGVkQXJyYXkoZmUpLEl0KG51bGwse3Rp''@;'; + put 'put ''bWVzdGFtcDpQdC5tdGltZSxtb2RlOlB0Lm1vZGUsY29udGVudHM6ZmUuY29udGVudHN9KSk6SXQobmV3IEVycm9yKCJub2RlIHR5cGUgbm90IHN1cHBvcnRlZCIpKX0sc3RvcmVMb2NhbEVudHJ5OmZ1bmN0aW9uKHB0LEl0LFB0KXt0cnl7aWYodm4uaXNEaXIoSXQubW9kZSkpdm4ubWtkaXIo''@;'; + put 'put ''cHQsSXQubW9kZSk7ZWxzZXtpZighdm4uaXNGaWxlKEl0Lm1vZGUpKXJldHVybiBQdChuZXcgRXJyb3IoIm5vZGUgdHlwZSBub3Qgc3VwcG9ydGVkIikpO3ZuLndyaXRlRmlsZShwdCxJdC5jb250ZW50cyx7Y2FuT3duOiEwfSl9dm4uY2htb2QocHQsSXQubW9kZSksdm4udXRpbWUocHQsSXQu''@;'; + put 'put ''dGltZXN0YW1wLEl0LnRpbWVzdGFtcCl9Y2F0Y2goZmUpe3JldHVybiBQdChmZSl9UHQobnVsbCl9LHJlbW92ZUxvY2FsRW50cnk6ZnVuY3Rpb24ocHQsSXQpe3RyeXt2bi5sb29rdXBQYXRoKHB0KTt2YXIgZmU9dm4uc3RhdChwdCk7dm4uaXNEaXIoZmUubW9kZSk/dm4ucm1kaXIocHQpOnZu''@;'; + put 'put ''LmlzRmlsZShmZS5tb2RlKSYmdm4udW5saW5rKHB0KX1jYXRjaChpdCl7cmV0dXJuIEl0KGl0KX1JdChudWxsKX0sbG9hZFJlbW90ZUVudHJ5OmZ1bmN0aW9uKHB0LEl0LFB0KXt2YXIgZmU9cHQuZ2V0KEl0KTtmZS5vbnN1Y2Nlc3M9ZnVuY3Rpb24oaXQpe1B0KG51bGwsaXQudGFyZ2V0LnJl''@;'; + put 'put ''c3VsdCl9LGZlLm9uZXJyb3I9ZnVuY3Rpb24oaXQpe1B0KHRoaXMuZXJyb3IpLGl0LnByZXZlbnREZWZhdWx0KCl9fSxzdG9yZVJlbW90ZUVudHJ5OmZ1bmN0aW9uKHB0LEl0LFB0LGZlKXt2YXIgaXQ9cHQucHV0KFB0LEl0KTtpdC5vbnN1Y2Nlc3M9ZnVuY3Rpb24oKXtmZShudWxsKX0saXQu''@;'; + put 'put ''b25lcnJvcj1mdW5jdGlvbihhKXtmZSh0aGlzLmVycm9yKSxhLnByZXZlbnREZWZhdWx0KCl9fSxyZW1vdmVSZW1vdGVFbnRyeTpmdW5jdGlvbihwdCxJdCxQdCl7dmFyIGZlPXB0LmRlbGV0ZShJdCk7ZmUub25zdWNjZXNzPWZ1bmN0aW9uKCl7UHQobnVsbCl9LGZlLm9uZXJyb3I9ZnVuY3Rp''@;'; + put 'put ''b24oaXQpe1B0KHRoaXMuZXJyb3IpLGl0LnByZXZlbnREZWZhdWx0KCl9fSxyZWNvbmNpbGU6ZnVuY3Rpb24ocHQsSXQsUHQpe3ZhciBmZT0wLGl0PVtdO09iamVjdC5rZXlzKHB0LmVudHJpZXMpLmZvckVhY2goZnVuY3Rpb24oQW8pe3ZhciAkbz1JdC5lbnRyaWVzW0FvXTsoISRvfHxwdC5l''@;'; + put 'put ''bnRyaWVzW0FvXS50aW1lc3RhbXA+JG8udGltZXN0YW1wKSYmKGl0LnB1c2goQW8pLGZlKyspfSk7dmFyIGE9W107aWYoT2JqZWN0LmtleXMoSXQuZW50cmllcykuZm9yRWFjaChmdW5jdGlvbihBbyl7cHQuZW50cmllc1tBb118fChhLnB1c2goQW8pLGZlKyspfSksIWZlKXJldHVybiBQdChu''@;'; + put 'put ''dWxsKTt2YXIgWHQ9MCxQaT0oInJlbW90ZSI9PT1wdC50eXBlP3B0LmRiOkl0LmRiKS50cmFuc2FjdGlvbihbdWEuREJfU1RPUkVfTkFNRV0sInJlYWR3cml0ZSIpLGpuPVBpLm9iamVjdFN0b3JlKHVhLkRCX1NUT1JFX05BTUUpO2Z1bmN0aW9uIF8oQW8pe3JldHVybiBBbz9fLmVycm9yZWQ/''@;'; + put 'put ''dm9pZCAwOihfLmVycm9yZWQ9ITAsUHQoQW8pKTorK1h0Pj1mZT9QdChudWxsKTp2b2lkIDB9UGkub25lcnJvcj1mdW5jdGlvbihBbyl7Xyh0aGlzLmVycm9yKSxBby5wcmV2ZW50RGVmYXVsdCgpfSxpdC5zb3J0KCkuZm9yRWFjaChmdW5jdGlvbihBbyl7ImxvY2FsIj09PUl0LnR5cGU/dWEu''@;'; + put 'put ''bG9hZFJlbW90ZUVudHJ5KGpuLEFvLGZ1bmN0aW9uKFNpLCRvKXtpZihTaSlyZXR1cm4gXyhTaSk7dWEuc3RvcmVMb2NhbEVudHJ5KEFvLCRvLF8pfSk6dWEubG9hZExvY2FsRW50cnkoQW8sZnVuY3Rpb24oU2ksJG8pe2lmKFNpKXJldHVybiBfKFNpKTt1YS5zdG9yZVJlbW90ZUVudHJ5KGpu''@;'; + put 'put ''LEFvLCRvLF8pfSl9KSxhLnNvcnQoKS5yZXZlcnNlKCkuZm9yRWFjaChmdW5jdGlvbihBbyl7ImxvY2FsIj09PUl0LnR5cGU/dWEucmVtb3ZlTG9jYWxFbnRyeShBbyxfKTp1YS5yZW1vdmVSZW1vdGVFbnRyeShqbixBbyxfKX0pfX0sajA9e2lzV2luZG93czohMSxzdGF0aWNJbml0OmZ1bmN0''@;'; + put 'put ''aW9uKCl7ajAuaXNXaW5kb3dzPSEhcHJvY2Vzcy5wbGF0Zm9ybS5tYXRjaCgvXndpbi8pO3ZhciBwdD1wcm9jZXNzLmJpbmRpbmcoImNvbnN0YW50cyIpO3B0LmZzJiYocHQ9cHQuZnMpLGowLmZsYWdzRm9yTm9kZU1hcD17MTAyNDpwdC5PX0FQUEVORCw2NDpwdC5PX0NSRUFULDEyODpwdC5P''@;'; + put 'put ''X0VYQ0wsMDpwdC5PX1JET05MWSwyOnB0Lk9fUkRXUiw0MDk2OnB0Lk9fU1lOQyw1MTI6cHQuT19UUlVOQywxOnB0Lk9fV1JPTkxZfX0sYnVmZmVyRnJvbTpmdW5jdGlvbihwdCl7cmV0dXJuIEJ1ZmZlci5hbGxvYz9CdWZmZXIuZnJvbShwdCk6bmV3IEJ1ZmZlcihwdCl9LG1vdW50OmZ1bmN0''@;'; + put 'put ''aW9uKHB0KXtyZXR1cm4gTyhOKSxqMC5jcmVhdGVOb2RlKG51bGwsIi8iLGowLmdldE1vZGUocHQub3B0cy5yb290KSwwKX0sY3JlYXRlTm9kZTpmdW5jdGlvbihwdCxJdCxQdCxmZSl7aWYoIXZuLmlzRGlyKFB0KSYmIXZuLmlzRmlsZShQdCkmJiF2bi5pc0xpbmsoUHQpKXRocm93IG5ldyB2''@;'; + put 'put ''bi5FcnJub0Vycm9yKHZpLkVJTlZBTCk7dmFyIGl0PXZuLmNyZWF0ZU5vZGUocHQsSXQsUHQpO3JldHVybiBpdC5ub2RlX29wcz1qMC5ub2RlX29wcyxpdC5zdHJlYW1fb3BzPWowLnN0cmVhbV9vcHMsaXR9LGdldE1vZGU6ZnVuY3Rpb24ocHQpe3ZhciBJdDt0cnl7SXQ9bWwubHN0YXRTeW5j''@;'; + put 'put ''KHB0KSxqMC5pc1dpbmRvd3MmJihJdC5tb2RlPUl0Lm1vZGV8KDI5MiZJdC5tb2RlKT4+Mil9Y2F0Y2goUHQpe3Rocm93IFB0LmNvZGU/bmV3IHZuLkVycm5vRXJyb3IodmlbUHQuY29kZV0pOlB0fXJldHVybiBJdC5tb2RlfSxyZWFsUGF0aDpmdW5jdGlvbihwdCl7Zm9yKHZhciBJdD1bXTtw''@;'; + put 'put ''dC5wYXJlbnQhPT1wdDspSXQucHVzaChwdC5uYW1lKSxwdD1wdC5wYXJlbnQ7cmV0dXJuIEl0LnB1c2gocHQubW91bnQub3B0cy5yb290KSxJdC5yZXZlcnNlKCksVTAuam9pbi5hcHBseShudWxsLEl0KX0sZmxhZ3NGb3JOb2RlOmZ1bmN0aW9uKHB0KXtwdCY9LTIwOTcxNTMscHQmPS0yMDQ5''@;'; + put 'put ''LHB0Jj0tMzI3NjkscHQmPS01MjQyODk7dmFyIEl0PTA7Zm9yKHZhciBQdCBpbiBqMC5mbGFnc0Zvck5vZGVNYXApcHQmUHQmJihJdHw9ajAuZmxhZ3NGb3JOb2RlTWFwW1B0XSxwdF49UHQpO2lmKHB0KXRocm93IG5ldyB2bi5FcnJub0Vycm9yKHZpLkVJTlZBTCk7cmV0dXJuIEl0fSxub2Rl''@;'; + put 'put ''X29wczp7Z2V0YXR0cjpmdW5jdGlvbihwdCl7dmFyIFB0LEl0PWowLnJlYWxQYXRoKHB0KTt0cnl7UHQ9bWwubHN0YXRTeW5jKEl0KX1jYXRjaChmZSl7dGhyb3cgZmUuY29kZT9uZXcgdm4uRXJybm9FcnJvcih2aVtmZS5jb2RlXSk6ZmV9cmV0dXJuIGowLmlzV2luZG93cyYmIVB0LmJsa3Np''@;'; + put 'put ''emUmJihQdC5ibGtzaXplPTQwOTYpLGowLmlzV2luZG93cyYmIVB0LmJsb2NrcyYmKFB0LmJsb2Nrcz0oUHQuc2l6ZStQdC5ibGtzaXplLTEpL1B0LmJsa3NpemV8MCkse2RldjpQdC5kZXYsaW5vOlB0Lmlubyxtb2RlOlB0Lm1vZGUsbmxpbms6UHQubmxpbmssdWlkOlB0LnVpZCxnaWQ6UHQu''@;'; + put 'put ''Z2lkLHJkZXY6UHQucmRldixzaXplOlB0LnNpemUsYXRpbWU6UHQuYXRpbWUsbXRpbWU6UHQubXRpbWUsY3RpbWU6UHQuY3RpbWUsYmxrc2l6ZTpQdC5ibGtzaXplLGJsb2NrczpQdC5ibG9ja3N9fSxzZXRhdHRyOmZ1bmN0aW9uKHB0LEl0KXt2YXIgUHQ9ajAucmVhbFBhdGgocHQpO3RyeXtp''@;'; + put 'put ''Zih2b2lkIDAhPT1JdC5tb2RlJiYobWwuY2htb2RTeW5jKFB0LEl0Lm1vZGUpLHB0Lm1vZGU9SXQubW9kZSksdm9pZCAwIT09SXQudGltZXN0YW1wKXt2YXIgZmU9bmV3IERhdGUoSXQudGltZXN0YW1wKTttbC51dGltZXNTeW5jKFB0LGZlLGZlKX12b2lkIDAhPT1JdC5zaXplJiZtbC50cnVu''@;'; + put 'put ''Y2F0ZVN5bmMoUHQsSXQuc2l6ZSl9Y2F0Y2goaXQpe3Rocm93IGl0LmNvZGU/bmV3IHZuLkVycm5vRXJyb3IodmlbaXQuY29kZV0pOml0fX0sbG9va3VwOmZ1bmN0aW9uKHB0LEl0KXt2YXIgUHQ9VTAuam9pbjIoajAucmVhbFBhdGgocHQpLEl0KSxmZT1qMC5nZXRNb2RlKFB0KTtyZXR1cm4g''@;'; + put 'put ''ajAuY3JlYXRlTm9kZShwdCxJdCxmZSl9LG1rbm9kOmZ1bmN0aW9uKHB0LEl0LFB0LGZlKXt2YXIgaXQ9ajAuY3JlYXRlTm9kZShwdCxJdCxQdCxmZSksYT1qMC5yZWFsUGF0aChpdCk7dHJ5e3ZuLmlzRGlyKGl0Lm1vZGUpP21sLm1rZGlyU3luYyhhLGl0Lm1vZGUpOm1sLndyaXRlRmlsZVN5''@;'; + put 'put ''bmMoYSwiIix7bW9kZTppdC5tb2RlfSl9Y2F0Y2goWHQpe3Rocm93IFh0LmNvZGU/bmV3IHZuLkVycm5vRXJyb3IodmlbWHQuY29kZV0pOlh0fXJldHVybiBpdH0scmVuYW1lOmZ1bmN0aW9uKHB0LEl0LFB0KXt2YXIgZmU9ajAucmVhbFBhdGgocHQpLGl0PVUwLmpvaW4yKGowLnJlYWxQYXRo''@;'; + put 'put ''KEl0KSxQdCk7dHJ5e21sLnJlbmFtZVN5bmMoZmUsaXQpfWNhdGNoKGEpe3Rocm93IGEuY29kZT9uZXcgdm4uRXJybm9FcnJvcih2aVthLmNvZGVdKTphfX0sdW5saW5rOmZ1bmN0aW9uKHB0LEl0KXt2YXIgUHQ9VTAuam9pbjIoajAucmVhbFBhdGgocHQpLEl0KTt0cnl7bWwudW5saW5rU3lu''@;'; + put 'put ''YyhQdCl9Y2F0Y2goZmUpe3Rocm93IGZlLmNvZGU/bmV3IHZuLkVycm5vRXJyb3IodmlbZmUuY29kZV0pOmZlfX0scm1kaXI6ZnVuY3Rpb24ocHQsSXQpe3ZhciBQdD1VMC5qb2luMihqMC5yZWFsUGF0aChwdCksSXQpO3RyeXttbC5ybWRpclN5bmMoUHQpfWNhdGNoKGZlKXt0aHJvdyBmZS5j''@;'; + put 'put ''b2RlP25ldyB2bi5FcnJub0Vycm9yKHZpW2ZlLmNvZGVdKTpmZX19LHJlYWRkaXI6ZnVuY3Rpb24ocHQpe3ZhciBJdD1qMC5yZWFsUGF0aChwdCk7dHJ5e3JldHVybiBtbC5yZWFkZGlyU3luYyhJdCl9Y2F0Y2goUHQpe3Rocm93IFB0LmNvZGU/bmV3IHZuLkVycm5vRXJyb3IodmlbUHQuY29k''@;'; + put 'put ''ZV0pOlB0fX0sc3ltbGluazpmdW5jdGlvbihwdCxJdCxQdCl7dmFyIGZlPVUwLmpvaW4yKGowLnJlYWxQYXRoKHB0KSxJdCk7dHJ5e21sLnN5bWxpbmtTeW5jKFB0LGZlKX1jYXRjaChpdCl7dGhyb3cgaXQuY29kZT9uZXcgdm4uRXJybm9FcnJvcih2aVtpdC5jb2RlXSk6aXR9fSxyZWFkbGlu''@;'; + put 'put ''azpmdW5jdGlvbihwdCl7dmFyIEl0PWowLnJlYWxQYXRoKHB0KTt0cnl7cmV0dXJuIEl0PW1sLnJlYWRsaW5rU3luYyhJdCksSXQ9cDMucmVsYXRpdmUocDMucmVzb2x2ZShwdC5tb3VudC5vcHRzLnJvb3QpLEl0KX1jYXRjaChQdCl7dGhyb3cgUHQuY29kZT9uZXcgdm4uRXJybm9FcnJvcih2''@;'; + put 'put ''aVtQdC5jb2RlXSk6UHR9fX0sc3RyZWFtX29wczp7b3BlbjpmdW5jdGlvbihwdCl7dmFyIEl0PWowLnJlYWxQYXRoKHB0Lm5vZGUpO3RyeXt2bi5pc0ZpbGUocHQubm9kZS5tb2RlKSYmKHB0Lm5mZD1tbC5vcGVuU3luYyhJdCxqMC5mbGFnc0Zvck5vZGUocHQuZmxhZ3MpKSl9Y2F0Y2goUHQp''@;'; + put 'put ''e3Rocm93IFB0LmNvZGU/bmV3IHZuLkVycm5vRXJyb3IodmlbUHQuY29kZV0pOlB0fX0sY2xvc2U6ZnVuY3Rpb24ocHQpe3RyeXt2bi5pc0ZpbGUocHQubm9kZS5tb2RlKSYmcHQubmZkJiZtbC5jbG9zZVN5bmMocHQubmZkKX1jYXRjaChJdCl7dGhyb3cgSXQuY29kZT9uZXcgdm4uRXJybm9F''@;'; + put 'put ''cnJvcih2aVtJdC5jb2RlXSk6SXR9fSxyZWFkOmZ1bmN0aW9uKHB0LEl0LFB0LGZlLGl0KXtpZigwPT09ZmUpcmV0dXJuIDA7dHJ5e3JldHVybiBtbC5yZWFkU3luYyhwdC5uZmQsajAuYnVmZmVyRnJvbShJdC5idWZmZXIpLFB0LGZlLGl0KX1jYXRjaChhKXt0aHJvdyBuZXcgdm4uRXJybm9F''@;'; + put 'put ''cnJvcih2aVthLmNvZGVdKX19LHdyaXRlOmZ1bmN0aW9uKHB0LEl0LFB0LGZlLGl0KXt0cnl7cmV0dXJuIG1sLndyaXRlU3luYyhwdC5uZmQsajAuYnVmZmVyRnJvbShJdC5idWZmZXIpLFB0LGZlLGl0KX1jYXRjaChhKXt0aHJvdyBuZXcgdm4uRXJybm9FcnJvcih2aVthLmNvZGVdKX19LGxs''@;'; + put 'put ''c2VlazpmdW5jdGlvbihwdCxJdCxQdCl7dmFyIGZlPUl0O2lmKDE9PT1QdClmZSs9cHQucG9zaXRpb247ZWxzZSBpZigyPT09UHQmJnZuLmlzRmlsZShwdC5ub2RlLm1vZGUpKXRyeXtmZSs9bWwuZnN0YXRTeW5jKHB0Lm5mZCkuc2l6ZX1jYXRjaChhKXt0aHJvdyBuZXcgdm4uRXJybm9FcnJv''@;'; + put 'put ''cih2aVthLmNvZGVdKX1pZihmZTwwKXRocm93IG5ldyB2bi5FcnJub0Vycm9yKHZpLkVJTlZBTCk7cmV0dXJuIGZlfX19LEJsPXtESVJfTU9ERToxNjg5NSxGSUxFX01PREU6MzMyNzkscmVhZGVyOm51bGwsbW91bnQ6ZnVuY3Rpb24ocHQpe08oVyksQmwucmVhZGVyfHwoQmwucmVhZGVyPW5l''@;'; + put 'put ''dyBGaWxlUmVhZGVyU3luYyk7dmFyIEl0PUJsLmNyZWF0ZU5vZGUobnVsbCwiLyIsQmwuRElSX01PREUsMCksUHQ9e307ZnVuY3Rpb24gZmUoYSl7Zm9yKHZhciBYdD1hLnNwbGl0KCIvIiksaHI9SXQsUGk9MDtQaTxYdC5sZW5ndGgtMTtQaSsrKXt2YXIgam49WHQuc2xpY2UoMCxQaSsxKS5q''@;'; + put 'put ''b2luKCIvIik7UHRbam5dfHwoUHRbam5dPUJsLmNyZWF0ZU5vZGUoaHIsWHRbUGldLEJsLkRJUl9NT0RFLDApKSxocj1QdFtqbl19cmV0dXJuIGhyfWZ1bmN0aW9uIGl0KGEpe3ZhciBYdD1hLnNwbGl0KCIvIik7cmV0dXJuIFh0W1h0Lmxlbmd0aC0xXX1yZXR1cm4gQXJyYXkucHJvdG90eXBl''@;'; + put 'put ''LmZvckVhY2guY2FsbChwdC5vcHRzLmZpbGVzfHxbXSxmdW5jdGlvbihhKXtCbC5jcmVhdGVOb2RlKGZlKGEubmFtZSksaXQoYS5uYW1lKSxCbC5GSUxFX01PREUsMCxhLGEubGFzdE1vZGlmaWVkRGF0ZSl9KSwocHQub3B0cy5ibG9ic3x8W10pLmZvckVhY2goZnVuY3Rpb24oYSl7QmwuY3Jl''@;'; + put 'put ''YXRlTm9kZShmZShhLm5hbWUpLGl0KGEubmFtZSksQmwuRklMRV9NT0RFLDAsYS5kYXRhKX0pLChwdC5vcHRzLnBhY2thZ2VzfHxbXSkuZm9yRWFjaChmdW5jdGlvbihhKXthLm1ldGFkYXRhLmZpbGVzLmZvckVhY2goZnVuY3Rpb24oWHQpe3ZhciBocj1YdC5maWxlbmFtZS5zdWJzdHIoMSk7''@;'; + put 'put ''QmwuY3JlYXRlTm9kZShmZShociksaXQoaHIpLEJsLkZJTEVfTU9ERSwwLGEuYmxvYi5zbGljZShYdC5zdGFydCxYdC5lbmQpKX0pfSksSXR9LGNyZWF0ZU5vZGU6ZnVuY3Rpb24ocHQsSXQsUHQsZmUsaXQsYSl7dmFyIFh0PXZuLmNyZWF0ZU5vZGUocHQsSXQsUHQpO3JldHVybiBYdC5tb2Rl''@;'; + put 'put ''PVB0LFh0Lm5vZGVfb3BzPUJsLm5vZGVfb3BzLFh0LnN0cmVhbV9vcHM9Qmwuc3RyZWFtX29wcyxYdC50aW1lc3RhbXA9KGF8fG5ldyBEYXRlKS5nZXRUaW1lKCksTyhCbC5GSUxFX01PREUhPT1CbC5ESVJfTU9ERSksUHQ9PT1CbC5GSUxFX01PREU/KFh0LnNpemU9aXQuc2l6ZSxYdC5jb250''@;'; + put 'put ''ZW50cz1pdCk6KFh0LnNpemU9NDA5NixYdC5jb250ZW50cz17fSkscHQmJihwdC5jb250ZW50c1tJdF09WHQpLFh0fSxub2RlX29wczp7Z2V0YXR0cjpmdW5jdGlvbihwdCl7cmV0dXJue2RldjoxLGlubzp2b2lkIDAsbW9kZTpwdC5tb2RlLG5saW5rOjEsdWlkOjAsZ2lkOjAscmRldjp2b2lk''@;'; + put 'put ''IDAsc2l6ZTpwdC5zaXplLGF0aW1lOm5ldyBEYXRlKHB0LnRpbWVzdGFtcCksbXRpbWU6bmV3IERhdGUocHQudGltZXN0YW1wKSxjdGltZTpuZXcgRGF0ZShwdC50aW1lc3RhbXApLGJsa3NpemU6NDA5NixibG9ja3M6TWF0aC5jZWlsKHB0LnNpemUvNDA5Nil9fSxzZXRhdHRyOmZ1bmN0aW9u''@;'; + put 'put ''KHB0LEl0KXt2b2lkIDAhPT1JdC5tb2RlJiYocHQubW9kZT1JdC5tb2RlKSx2b2lkIDAhPT1JdC50aW1lc3RhbXAmJihwdC50aW1lc3RhbXA9SXQudGltZXN0YW1wKX0sbG9va3VwOmZ1bmN0aW9uKHB0LEl0KXt0aHJvdyBuZXcgdm4uRXJybm9FcnJvcih2aS5FTk9FTlQpfSxta25vZDpmdW5j''@;'; + put 'put ''dGlvbihwdCxJdCxQdCxmZSl7dGhyb3cgbmV3IHZuLkVycm5vRXJyb3IodmkuRVBFUk0pfSxyZW5hbWU6ZnVuY3Rpb24ocHQsSXQsUHQpe3Rocm93IG5ldyB2bi5FcnJub0Vycm9yKHZpLkVQRVJNKX0sdW5saW5rOmZ1bmN0aW9uKHB0LEl0KXt0aHJvdyBuZXcgdm4uRXJybm9FcnJvcih2aS5F''@;'; + put 'put ''UEVSTSl9LHJtZGlyOmZ1bmN0aW9uKHB0LEl0KXt0aHJvdyBuZXcgdm4uRXJybm9FcnJvcih2aS5FUEVSTSl9LHJlYWRkaXI6ZnVuY3Rpb24ocHQpe3ZhciBJdD1bIi4iLCIuLiJdO2Zvcih2YXIgUHQgaW4gcHQuY29udGVudHMpIXB0LmNvbnRlbnRzLmhhc093blByb3BlcnR5KFB0KXx8SXQu''@;'; + put 'put ''cHVzaChQdCk7cmV0dXJuIEl0fSxzeW1saW5rOmZ1bmN0aW9uKHB0LEl0LFB0KXt0aHJvdyBuZXcgdm4uRXJybm9FcnJvcih2aS5FUEVSTSl9LHJlYWRsaW5rOmZ1bmN0aW9uKHB0KXt0aHJvdyBuZXcgdm4uRXJybm9FcnJvcih2aS5FUEVSTSl9fSxzdHJlYW1fb3BzOntyZWFkOmZ1bmN0aW9u''@;'; + put 'put ''KHB0LEl0LFB0LGZlLGl0KXtpZihpdD49cHQubm9kZS5zaXplKXJldHVybiAwO3ZhciBhPXB0Lm5vZGUuY29udGVudHMuc2xpY2UoaXQsaXQrZmUpLFh0PUJsLnJlYWRlci5yZWFkQXNBcnJheUJ1ZmZlcihhKTtyZXR1cm4gSXQuc2V0KG5ldyBVaW50OEFycmF5KFh0KSxQdCksYS5zaXplfSx3''@;'; + put 'put ''cml0ZTpmdW5jdGlvbihwdCxJdCxQdCxmZSxpdCl7dGhyb3cgbmV3IHZuLkVycm5vRXJyb3IodmkuRUlPKX0sbGxzZWVrOmZ1bmN0aW9uKHB0LEl0LFB0KXt2YXIgZmU9SXQ7aWYoMT09PVB0P2ZlKz1wdC5wb3NpdGlvbjoyPT09UHQmJnZuLmlzRmlsZShwdC5ub2RlLm1vZGUpJiYoZmUrPXB0''@;'; + put 'put ''Lm5vZGUuc2l6ZSksZmU8MCl0aHJvdyBuZXcgdm4uRXJybm9FcnJvcih2aS5FSU5WQUwpO3JldHVybiBmZX19fTt5dCs9MTYseXQrPTE2LHl0Kz0xNjt2YXIgdm49e3Jvb3Q6bnVsbCxtb3VudHM6W10sZGV2aWNlczp7fSxzdHJlYW1zOltdLG5leHRJbm9kZToxLG5hbWVUYWJsZTpudWxsLGN1''@;'; + put 'put ''cnJlbnRQYXRoOiIvIixpbml0aWFsaXplZDohMSxpZ25vcmVQZXJtaXNzaW9uczohMCx0cmFja2luZ0RlbGVnYXRlOnt9LHRyYWNraW5nOntvcGVuRmxhZ3M6e1JFQUQ6MSxXUklURToyfX0sRXJybm9FcnJvcjpudWxsLGdlbmVyaWNFcnJvcnM6e30sZmlsZXN5c3RlbXM6bnVsbCxzeW5jRlNS''@;'; + put 'put ''ZXF1ZXN0czowLGhhbmRsZUZTRXJyb3I6ZnVuY3Rpb24ocHQpe2lmKCEocHQgaW5zdGFuY2VvZiB2bi5FcnJub0Vycm9yKSl0aHJvdyBwdCsiIDogIitodCgpO3JldHVybiBiMChwdC5lcnJubyl9LGxvb2t1cFBhdGg6ZnVuY3Rpb24ocHQsSXQpe2lmKEl0PUl0fHx7fSwhKHB0PVUwLnJlc29s''@;'; + put 'put ''dmUodm4uY3dkKCkscHQpKSlyZXR1cm57cGF0aDoiIixub2RlOm51bGx9O3ZhciBQdD17Zm9sbG93X21vdW50OiEwLHJlY3Vyc2VfY291bnQ6MH07Zm9yKHZhciBmZSBpbiBQdCl2b2lkIDA9PT1JdFtmZV0mJihJdFtmZV09UHRbZmVdKTtpZihJdC5yZWN1cnNlX2NvdW50PjgpdGhyb3cgbmV3''@;'; + put 'put ''IHZuLkVycm5vRXJyb3IodmkuRUxPT1ApO2Zvcih2YXIgaXQ9VTAubm9ybWFsaXplQXJyYXkocHQuc3BsaXQoIi8iKS5maWx0ZXIoZnVuY3Rpb24oU2kpe3JldHVybiEhU2l9KSwhMSksYT12bi5yb290LFh0PSIvIixocj0wO2hyPGl0Lmxlbmd0aDtocisrKXt2YXIgUGk9aHI9PT1pdC5sZW5n''@;'; + put 'put ''dGgtMTtpZihQaSYmSXQucGFyZW50KWJyZWFrO2lmKGE9dm4ubG9va3VwTm9kZShhLGl0W2hyXSksWHQ9VTAuam9pbjIoWHQsaXRbaHJdKSx2bi5pc01vdW50cG9pbnQoYSkmJighUGl8fFBpJiZJdC5mb2xsb3dfbW91bnQpJiYoYT1hLm1vdW50ZWQucm9vdCksIVBpfHxJdC5mb2xsb3cpZm9y''@;'; + put 'put ''KHZhciBqbj0wO3ZuLmlzTGluayhhLm1vZGUpOyl7dmFyIF89dm4ucmVhZGxpbmsoWHQpO2lmKFh0PVUwLnJlc29sdmUoVTAuZGlybmFtZShYdCksXyksYT12bi5sb29rdXBQYXRoKFh0LHtyZWN1cnNlX2NvdW50Okl0LnJlY3Vyc2VfY291bnR9KS5ub2RlLGpuKys+NDApdGhyb3cgbmV3IHZu''@;'; + put 'put ''LkVycm5vRXJyb3IodmkuRUxPT1ApfX1yZXR1cm57cGF0aDpYdCxub2RlOmF9fSxnZXRQYXRoOmZ1bmN0aW9uKHB0KXtmb3IodmFyIEl0Ozspe2lmKHZuLmlzUm9vdChwdCkpe3ZhciBQdD1wdC5tb3VudC5tb3VudHBvaW50O3JldHVybiBJdD8iLyIhPT1QdFtQdC5sZW5ndGgtMV0/UHQrIi8i''@;'; + put 'put ''K0l0OlB0K0l0OlB0fUl0PUl0P3B0Lm5hbWUrIi8iK0l0OnB0Lm5hbWUscHQ9cHQucGFyZW50fX0saGFzaE5hbWU6ZnVuY3Rpb24ocHQsSXQpe2Zvcih2YXIgUHQ9MCxmZT0wO2ZlPEl0Lmxlbmd0aDtmZSsrKVB0PShQdDw8NSktUHQrSXQuY2hhckNvZGVBdChmZSl8MDtyZXR1cm4ocHQrUHQ+''@;'; + put 'put ''Pj4wKSV2bi5uYW1lVGFibGUubGVuZ3RofSxoYXNoQWRkTm9kZTpmdW5jdGlvbihwdCl7dmFyIEl0PXZuLmhhc2hOYW1lKHB0LnBhcmVudC5pZCxwdC5uYW1lKTtwdC5uYW1lX25leHQ9dm4ubmFtZVRhYmxlW0l0XSx2bi5uYW1lVGFibGVbSXRdPXB0fSxoYXNoUmVtb3ZlTm9kZTpmdW5jdGlv''@;'; + put 'put ''bihwdCl7dmFyIEl0PXZuLmhhc2hOYW1lKHB0LnBhcmVudC5pZCxwdC5uYW1lKTtpZih2bi5uYW1lVGFibGVbSXRdPT09cHQpdm4ubmFtZVRhYmxlW0l0XT1wdC5uYW1lX25leHQ7ZWxzZSBmb3IodmFyIFB0PXZuLm5hbWVUYWJsZVtJdF07UHQ7KXtpZihQdC5uYW1lX25leHQ9PT1wdCl7UHQu''@;'; + put 'put ''bmFtZV9uZXh0PXB0Lm5hbWVfbmV4dDticmVha31QdD1QdC5uYW1lX25leHR9fSxsb29rdXBOb2RlOmZ1bmN0aW9uKHB0LEl0KXt2YXIgUHQ9dm4ubWF5TG9va3VwKHB0KTtpZihQdCl0aHJvdyBuZXcgdm4uRXJybm9FcnJvcihQdCxwdCk7Zm9yKHZhciBmZT12bi5oYXNoTmFtZShwdC5pZCxJ''@;'; + put 'put ''dCksaXQ9dm4ubmFtZVRhYmxlW2ZlXTtpdDtpdD1pdC5uYW1lX25leHQpaWYoaXQucGFyZW50LmlkPT09cHQuaWQmJml0Lm5hbWU9PT1JdClyZXR1cm4gaXQ7cmV0dXJuIHZuLmxvb2t1cChwdCxJdCl9LGNyZWF0ZU5vZGU6ZnVuY3Rpb24ocHQsSXQsUHQsZmUpe2lmKCF2bi5GU05vZGUpe3Zu''@;'; + put 'put ''LkZTTm9kZT1mdW5jdGlvbihocixQaSxqbixfKXtocnx8KGhyPXRoaXMpLHRoaXMucGFyZW50PWhyLHRoaXMubW91bnQ9aHIubW91bnQsdGhpcy5tb3VudGVkPW51bGwsdGhpcy5pZD12bi5uZXh0SW5vZGUrKyx0aGlzLm5hbWU9UGksdGhpcy5tb2RlPWpuLHRoaXMubm9kZV9vcHM9e30sdGhp''@;'; + put 'put ''cy5zdHJlYW1fb3BzPXt9LHRoaXMucmRldj1ffSx2bi5GU05vZGUucHJvdG90eXBlPXt9O3ZhciBhPTE0NjtPYmplY3QuZGVmaW5lUHJvcGVydGllcyh2bi5GU05vZGUucHJvdG90eXBlLHtyZWFkOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gMzY1PT0oMzY1JnRoaXMubW9kZSl9LHNldDpmdW5j''@;'; + put 'put ''dGlvbihocil7aHI/dGhpcy5tb2RlfD0zNjU6dGhpcy5tb2RlJj0tMzY2fX0sd3JpdGU6e2dldDpmdW5jdGlvbigpe3JldHVybih0aGlzLm1vZGUmYSk9PT1hfSxzZXQ6ZnVuY3Rpb24oaHIpe2hyP3RoaXMubW9kZXw9YTp0aGlzLm1vZGUmPX5hfX0saXNGb2xkZXI6e2dldDpmdW5jdGlvbigp''@;'; + put 'put ''e3JldHVybiB2bi5pc0Rpcih0aGlzLm1vZGUpfX0saXNEZXZpY2U6e2dldDpmdW5jdGlvbigpe3JldHVybiB2bi5pc0NocmRldih0aGlzLm1vZGUpfX19KX12YXIgWHQ9bmV3IHZuLkZTTm9kZShwdCxJdCxQdCxmZSk7cmV0dXJuIHZuLmhhc2hBZGROb2RlKFh0KSxYdH0sZGVzdHJveU5vZGU6''@;'; + put 'put ''ZnVuY3Rpb24ocHQpe3ZuLmhhc2hSZW1vdmVOb2RlKHB0KX0saXNSb290OmZ1bmN0aW9uKHB0KXtyZXR1cm4gcHQ9PT1wdC5wYXJlbnR9LGlzTW91bnRwb2ludDpmdW5jdGlvbihwdCl7cmV0dXJuISFwdC5tb3VudGVkfSxpc0ZpbGU6ZnVuY3Rpb24ocHQpe3JldHVybiAzMjc2OD09KDYxNDQw''@;'; + put 'put ''JnB0KX0saXNEaXI6ZnVuY3Rpb24ocHQpe3JldHVybiAxNjM4ND09KDYxNDQwJnB0KX0saXNMaW5rOmZ1bmN0aW9uKHB0KXtyZXR1cm4gNDA5NjA9PSg2MTQ0MCZwdCl9LGlzQ2hyZGV2OmZ1bmN0aW9uKHB0KXtyZXR1cm4gODE5Mj09KDYxNDQwJnB0KX0saXNCbGtkZXY6ZnVuY3Rpb24ocHQp''@;'; + put 'put ''e3JldHVybiAyNDU3Nj09KDYxNDQwJnB0KX0saXNGSUZPOmZ1bmN0aW9uKHB0KXtyZXR1cm4gNDA5Nj09KDYxNDQwJnB0KX0saXNTb2NrZXQ6ZnVuY3Rpb24ocHQpe3JldHVybiA0OTE1Mj09KDQ5MTUyJnB0KX0sZmxhZ01vZGVzOntyOjAscnM6MTA1MjY3MiwicisiOjIsdzo1Nzcsd3g6NzA1''@;'; + put 'put ''LHh3OjcwNSwidysiOjU3OCwid3grIjo3MDYsInh3KyI6NzA2LGE6MTA4OSxheDoxMjE3LHhhOjEyMTcsImErIjoxMDkwLCJheCsiOjEyMTgsInhhKyI6MTIxOH0sbW9kZVN0cmluZ1RvRmxhZ3M6ZnVuY3Rpb24ocHQpe3ZhciBJdD12bi5mbGFnTW9kZXNbcHRdO2lmKHZvaWQgMD09PUl0KXRo''@;'; + put 'put ''cm93IG5ldyBFcnJvcigiVW5rbm93biBmaWxlIG9wZW4gbW9kZTogIitwdCk7cmV0dXJuIEl0fSxmbGFnc1RvUGVybWlzc2lvblN0cmluZzpmdW5jdGlvbihwdCl7dmFyIEl0PVsiciIsInciLCJydyJdWzMmcHRdO3JldHVybiA1MTImcHQmJihJdCs9InciKSxJdH0sbm9kZVBlcm1pc3Npb25z''@;'; + put 'put ''OmZ1bmN0aW9uKHB0LEl0KXtyZXR1cm4gdm4uaWdub3JlUGVybWlzc2lvbnN8fCgtMT09PUl0LmluZGV4T2YoInIiKXx8MjkyJnB0Lm1vZGUpJiYoLTE9PT1JdC5pbmRleE9mKCJ3Iil8fDE0NiZwdC5tb2RlKSYmKC0xPT09SXQuaW5kZXhPZigieCIpfHw3MyZwdC5tb2RlKT8wOnZpLkVBQ0NF''@;'; + put 'put ''U30sbWF5TG9va3VwOmZ1bmN0aW9uKHB0KXtyZXR1cm4gdm4ubm9kZVBlcm1pc3Npb25zKHB0LCJ4Iil8fChwdC5ub2RlX29wcy5sb29rdXA/MDp2aS5FQUNDRVMpfSxtYXlDcmVhdGU6ZnVuY3Rpb24ocHQsSXQpe3RyeXtyZXR1cm4gdm4ubG9va3VwTm9kZShwdCxJdCksdmkuRUVYSVNUfWNh''@;'; + put 'put ''dGNoKGZlKXt9cmV0dXJuIHZuLm5vZGVQZXJtaXNzaW9ucyhwdCwid3giKX0sbWF5RGVsZXRlOmZ1bmN0aW9uKHB0LEl0LFB0KXt2YXIgZmU7dHJ5e2ZlPXZuLmxvb2t1cE5vZGUocHQsSXQpfWNhdGNoKGEpe3JldHVybiBhLmVycm5vfXZhciBpdD12bi5ub2RlUGVybWlzc2lvbnMocHQsInd4''@;'; + put 'put ''Iik7aWYoaXQpcmV0dXJuIGl0O2lmKFB0KXtpZighdm4uaXNEaXIoZmUubW9kZSkpcmV0dXJuIHZpLkVOT1RESVI7aWYodm4uaXNSb290KGZlKXx8dm4uZ2V0UGF0aChmZSk9PT12bi5jd2QoKSlyZXR1cm4gdmkuRUJVU1l9ZWxzZSBpZih2bi5pc0RpcihmZS5tb2RlKSlyZXR1cm4gdmkuRUlT''@;'; + put 'put ''RElSO3JldHVybiAwfSxtYXlPcGVuOmZ1bmN0aW9uKHB0LEl0KXtyZXR1cm4gcHQ/dm4uaXNMaW5rKHB0Lm1vZGUpP3ZpLkVMT09QOnZuLmlzRGlyKHB0Lm1vZGUpJiYoInIiIT09dm4uZmxhZ3NUb1Blcm1pc3Npb25TdHJpbmcoSXQpfHw1MTImSXQpP3ZpLkVJU0RJUjp2bi5ub2RlUGVybWlz''@;'; + put 'put ''c2lvbnMocHQsdm4uZmxhZ3NUb1Blcm1pc3Npb25TdHJpbmcoSXQpKTp2aS5FTk9FTlR9LE1BWF9PUEVOX0ZEUzo0MDk2LG5leHRmZDpmdW5jdGlvbihwdCxJdCl7SXQ9SXR8fHZuLk1BWF9PUEVOX0ZEUztmb3IodmFyIFB0PXB0PXB0fHwwO1B0PD1JdDtQdCsrKWlmKCF2bi5zdHJlYW1zW1B0''@;'; + put 'put ''XSlyZXR1cm4gUHQ7dGhyb3cgbmV3IHZuLkVycm5vRXJyb3IodmkuRU1GSUxFKX0sZ2V0U3RyZWFtOmZ1bmN0aW9uKHB0KXtyZXR1cm4gdm4uc3RyZWFtc1twdF19LGNyZWF0ZVN0cmVhbTpmdW5jdGlvbihwdCxJdCxQdCl7dm4uRlNTdHJlYW18fCh2bi5GU1N0cmVhbT1mdW5jdGlvbigpe30s''@;'; + put 'put ''dm4uRlNTdHJlYW0ucHJvdG90eXBlPXt9LE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHZuLkZTU3RyZWFtLnByb3RvdHlwZSx7b2JqZWN0OntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ub2RlfSxzZXQ6ZnVuY3Rpb24oWHQpe3RoaXMubm9kZT1YdH19LGlzUmVhZDp7Z2V0OmZ1bmN0aW9u''@;'; + put 'put ''KCl7cmV0dXJuIDEhPSgyMDk3MTU1JnRoaXMuZmxhZ3MpfX0saXNXcml0ZTp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDAhPSgyMDk3MTU1JnRoaXMuZmxhZ3MpfX0saXNBcHBlbmQ6e2dldDpmdW5jdGlvbigpe3JldHVybiAxMDI0JnRoaXMuZmxhZ3N9fX0pKTt2YXIgZmU9bmV3IHZuLkZTU3Ry''@;'; + put 'put ''ZWFtO2Zvcih2YXIgaXQgaW4gcHQpZmVbaXRdPXB0W2l0XTtwdD1mZTt2YXIgYT12bi5uZXh0ZmQoSXQsUHQpO3JldHVybiBwdC5mZD1hLHZuLnN0cmVhbXNbYV09cHQscHR9LGNsb3NlU3RyZWFtOmZ1bmN0aW9uKHB0KXt2bi5zdHJlYW1zW3B0XT1udWxsfSxjaHJkZXZfc3RyZWFtX29wczp7''@;'; + put 'put ''b3BlbjpmdW5jdGlvbihwdCl7dmFyIEl0PXZuLmdldERldmljZShwdC5ub2RlLnJkZXYpO3B0LnN0cmVhbV9vcHM9SXQuc3RyZWFtX29wcyxwdC5zdHJlYW1fb3BzLm9wZW4mJnB0LnN0cmVhbV9vcHMub3BlbihwdCl9LGxsc2VlazpmdW5jdGlvbigpe3Rocm93IG5ldyB2bi5FcnJub0Vycm9y''@;'; + put 'put ''KHZpLkVTUElQRSl9fSxtYWpvcjpmdW5jdGlvbihwdCl7cmV0dXJuIHB0Pj44fSxtaW5vcjpmdW5jdGlvbihwdCl7cmV0dXJuIDI1NSZwdH0sbWFrZWRldjpmdW5jdGlvbihwdCxJdCl7cmV0dXJuIHB0PDw4fEl0fSxyZWdpc3RlckRldmljZTpmdW5jdGlvbihwdCxJdCl7dm4uZGV2aWNlc1tw''@;'; + put 'put ''dF09e3N0cmVhbV9vcHM6SXR9fSxnZXREZXZpY2U6ZnVuY3Rpb24ocHQpe3JldHVybiB2bi5kZXZpY2VzW3B0XX0sZ2V0TW91bnRzOmZ1bmN0aW9uKHB0KXtmb3IodmFyIEl0PVtdLFB0PVtwdF07UHQubGVuZ3RoOyl7dmFyIGZlPVB0LnBvcCgpO0l0LnB1c2goZmUpLFB0LnB1c2guYXBwbHko''@;'; + put 'put ''UHQsZmUubW91bnRzKX1yZXR1cm4gSXR9LHN5bmNmczpmdW5jdGlvbihwdCxJdCl7ImZ1bmN0aW9uIj09dHlwZW9mIHB0JiYoSXQ9cHQscHQ9ITEpLHZuLnN5bmNGU1JlcXVlc3RzKyssdm4uc3luY0ZTUmVxdWVzdHM+MSYmY29uc29sZS5sb2coIndhcm5pbmc6ICIrdm4uc3luY0ZTUmVxdWVz''@;'; + put 'put ''dHMrIiBGUy5zeW5jZnMgb3BlcmF0aW9ucyBpbiBmbGlnaHQgYXQgb25jZSwgcHJvYmFibHkganVzdCBkb2luZyBleHRyYSB3b3JrIik7dmFyIFB0PXZuLmdldE1vdW50cyh2bi5yb290Lm1vdW50KSxmZT0wO2Z1bmN0aW9uIGl0KFh0KXtyZXR1cm4gTyh2bi5zeW5jRlNSZXF1ZXN0cz4wKSx2''@;'; + put 'put ''bi5zeW5jRlNSZXF1ZXN0cy0tLEl0KFh0KX1mdW5jdGlvbiBhKFh0KXtpZihYdClyZXR1cm4gYS5lcnJvcmVkP3ZvaWQgMDooYS5lcnJvcmVkPSEwLGl0KFh0KSk7KytmZT49UHQubGVuZ3RoJiZpdChudWxsKX1QdC5mb3JFYWNoKGZ1bmN0aW9uKFh0KXtpZighWHQudHlwZS5zeW5jZnMpcmV0''@;'; + put 'put ''dXJuIGEobnVsbCk7WHQudHlwZS5zeW5jZnMoWHQscHQsYSl9KX0sbW91bnQ6ZnVuY3Rpb24ocHQsSXQsUHQpe3ZhciBhLGZlPSIvIj09PVB0LGl0PSFQdDtpZihmZSYmdm4ucm9vdCl0aHJvdyBuZXcgdm4uRXJybm9FcnJvcih2aS5FQlVTWSk7aWYoIWZlJiYhaXQpe3ZhciBYdD12bi5sb29r''@;'; + put 'put ''dXBQYXRoKFB0LHtmb2xsb3dfbW91bnQ6ITF9KTtpZihQdD1YdC5wYXRoLHZuLmlzTW91bnRwb2ludChhPVh0Lm5vZGUpKXRocm93IG5ldyB2bi5FcnJub0Vycm9yKHZpLkVCVVNZKTtpZighdm4uaXNEaXIoYS5tb2RlKSl0aHJvdyBuZXcgdm4uRXJybm9FcnJvcih2aS5FTk9URElSKX12YXIg''@;'; + put 'put ''aHI9e3R5cGU6cHQsb3B0czpJdCxtb3VudHBvaW50OlB0LG1vdW50czpbXX0sUGk9cHQubW91bnQoaHIpO3JldHVybiBQaS5tb3VudD1ocixoci5yb290PVBpLGZlP3ZuLnJvb3Q9UGk6YSYmKGEubW91bnRlZD1ocixhLm1vdW50JiZhLm1vdW50Lm1vdW50cy5wdXNoKGhyKSksUGl9LHVubW91''@;'; + put 'put ''bnQ6ZnVuY3Rpb24ocHQpe3ZhciBJdD12bi5sb29rdXBQYXRoKHB0LHtmb2xsb3dfbW91bnQ6ITF9KTtpZighdm4uaXNNb3VudHBvaW50KEl0Lm5vZGUpKXRocm93IG5ldyB2bi5FcnJub0Vycm9yKHZpLkVJTlZBTCk7dmFyIFB0PUl0Lm5vZGUsZmU9UHQubW91bnRlZCxpdD12bi5nZXRNb3Vu''@;'; + put 'put ''dHMoZmUpO09iamVjdC5rZXlzKHZuLm5hbWVUYWJsZSkuZm9yRWFjaChmdW5jdGlvbihYdCl7Zm9yKHZhciBocj12bi5uYW1lVGFibGVbWHRdO2hyOyl7dmFyIFBpPWhyLm5hbWVfbmV4dDstMSE9PWl0LmluZGV4T2YoaHIubW91bnQpJiZ2bi5kZXN0cm95Tm9kZShociksaHI9UGl9fSksUHQu''@;'; + put 'put ''bW91bnRlZD1udWxsO3ZhciBhPVB0Lm1vdW50Lm1vdW50cy5pbmRleE9mKGZlKTtPKC0xIT09YSksUHQubW91bnQubW91bnRzLnNwbGljZShhLDEpfSxsb29rdXA6ZnVuY3Rpb24ocHQsSXQpe3JldHVybiBwdC5ub2RlX29wcy5sb29rdXAocHQsSXQpfSxta25vZDpmdW5jdGlvbihwdCxJdCxQ''@;'; + put 'put ''dCl7dmFyIGl0PXZuLmxvb2t1cFBhdGgocHQse3BhcmVudDohMH0pLm5vZGUsYT1VMC5iYXNlbmFtZShwdCk7aWYoIWF8fCIuIj09PWF8fCIuLiI9PT1hKXRocm93IG5ldyB2bi5FcnJub0Vycm9yKHZpLkVJTlZBTCk7dmFyIFh0PXZuLm1heUNyZWF0ZShpdCxhKTtpZihYdCl0aHJvdyBuZXcg''@;'; + put 'put ''dm4uRXJybm9FcnJvcihYdCk7aWYoIWl0Lm5vZGVfb3BzLm1rbm9kKXRocm93IG5ldyB2bi5FcnJub0Vycm9yKHZpLkVQRVJNKTtyZXR1cm4gaXQubm9kZV9vcHMubWtub2QoaXQsYSxJdCxQdCl9LGNyZWF0ZTpmdW5jdGlvbihwdCxJdCl7cmV0dXJuIEl0PXZvaWQgMCE9PUl0P0l0OjQzOCxJ''@;'; + put 'put ''dCY9NDA5NSx2bi5ta25vZChwdCxJdHw9MzI3NjgsMCl9LG1rZGlyOmZ1bmN0aW9uKHB0LEl0KXtyZXR1cm4gSXQ9dm9pZCAwIT09SXQ/SXQ6NTExLEl0Jj0xMDIzLHZuLm1rbm9kKHB0LEl0fD0xNjM4NCwwKX0sbWtkaXJUcmVlOmZ1bmN0aW9uKHB0LEl0KXtmb3IodmFyIFB0PXB0LnNwbGl0''@;'; + put 'put ''KCIvIiksZmU9IiIsaXQ9MDtpdDxQdC5sZW5ndGg7KytpdClpZihQdFtpdF0pe2ZlKz0iLyIrUHRbaXRdO3RyeXt2bi5ta2RpcihmZSxJdCl9Y2F0Y2goYSl7aWYoYS5lcnJubyE9dmkuRUVYSVNUKXRocm93IGF9fX0sbWtkZXY6ZnVuY3Rpb24ocHQsSXQsUHQpe3JldHVybiB2b2lkIDA9PT1Q''@;'; + put 'put ''dCYmKFB0PUl0LEl0PTQzOCksdm4ubWtub2QocHQsSXR8PTgxOTIsUHQpfSxzeW1saW5rOmZ1bmN0aW9uKHB0LEl0KXtpZighVTAucmVzb2x2ZShwdCkpdGhyb3cgbmV3IHZuLkVycm5vRXJyb3IodmkuRU5PRU5UKTt2YXIgZmU9dm4ubG9va3VwUGF0aChJdCx7cGFyZW50OiEwfSkubm9kZTtp''@;'; + put 'put ''ZighZmUpdGhyb3cgbmV3IHZuLkVycm5vRXJyb3IodmkuRU5PRU5UKTt2YXIgaXQ9VTAuYmFzZW5hbWUoSXQpLGE9dm4ubWF5Q3JlYXRlKGZlLGl0KTtpZihhKXRocm93IG5ldyB2bi5FcnJub0Vycm9yKGEpO2lmKCFmZS5ub2RlX29wcy5zeW1saW5rKXRocm93IG5ldyB2bi5FcnJub0Vycm9y''@;'; + put 'put ''KHZpLkVQRVJNKTtyZXR1cm4gZmUubm9kZV9vcHMuc3ltbGluayhmZSxpdCxwdCl9LHJlbmFtZTpmdW5jdGlvbihwdCxJdCl7dmFyIGhyLFBpLFB0PVUwLmRpcm5hbWUocHQpLGZlPVUwLmRpcm5hbWUoSXQpLGl0PVUwLmJhc2VuYW1lKHB0KSxhPVUwLmJhc2VuYW1lKEl0KTt0cnl7aHI9dm4u''@;'; + put 'put ''bG9va3VwUGF0aChwdCx7cGFyZW50OiEwfSkubm9kZSxQaT12bi5sb29rdXBQYXRoKEl0LHtwYXJlbnQ6ITB9KS5ub2RlfWNhdGNoKGxlKXt0aHJvdyBuZXcgdm4uRXJybm9FcnJvcih2aS5FQlVTWSl9aWYoIWhyfHwhUGkpdGhyb3cgbmV3IHZuLkVycm5vRXJyb3IodmkuRU5PRU5UKTtpZiho''@;'; + put 'put ''ci5tb3VudCE9PVBpLm1vdW50KXRocm93IG5ldyB2bi5FcnJub0Vycm9yKHZpLkVYREVWKTt2YXIgQW8sam49dm4ubG9va3VwTm9kZShocixpdCksXz1VMC5yZWxhdGl2ZShwdCxmZSk7aWYoIi4iIT09Xy5jaGFyQXQoMCkpdGhyb3cgbmV3IHZuLkVycm5vRXJyb3IodmkuRUlOVkFMKTtpZigi''@;'; + put 'put ''LiIhPT0oXz1VMC5yZWxhdGl2ZShJdCxQdCkpLmNoYXJBdCgwKSl0aHJvdyBuZXcgdm4uRXJybm9FcnJvcih2aS5FTk9URU1QVFkpO3RyeXtBbz12bi5sb29rdXBOb2RlKFBpLGEpfWNhdGNoKGxlKXt9aWYoam4hPT1Bbyl7dmFyIFNpPXZuLmlzRGlyKGpuLm1vZGUpLCRvPXZuLm1heURlbGV0''@;'; + put 'put ''ZShocixpdCxTaSk7aWYoJG8pdGhyb3cgbmV3IHZuLkVycm5vRXJyb3IoJG8pO2lmKCRvPUFvP3ZuLm1heURlbGV0ZShQaSxhLFNpKTp2bi5tYXlDcmVhdGUoUGksYSkpdGhyb3cgbmV3IHZuLkVycm5vRXJyb3IoJG8pO2lmKCFoci5ub2RlX29wcy5yZW5hbWUpdGhyb3cgbmV3IHZuLkVycm5v''@;'; + put 'put ''RXJyb3IodmkuRVBFUk0pO2lmKHZuLmlzTW91bnRwb2ludChqbil8fEFvJiZ2bi5pc01vdW50cG9pbnQoQW8pKXRocm93IG5ldyB2bi5FcnJub0Vycm9yKHZpLkVCVVNZKTtpZihQaSE9PWhyJiYoJG89dm4ubm9kZVBlcm1pc3Npb25zKGhyLCJ3IikpKXRocm93IG5ldyB2bi5FcnJub0Vycm9y''@;'; + put 'put ''KCRvKTt0cnl7dm4udHJhY2tpbmdEZWxlZ2F0ZS53aWxsTW92ZVBhdGgmJnZuLnRyYWNraW5nRGVsZWdhdGUud2lsbE1vdmVQYXRoKHB0LEl0KX1jYXRjaChsZSl7Y29uc29sZS5sb2coIkZTLnRyYWNraW5nRGVsZWdhdGVbJ3dpbGxNb3ZlUGF0aCddKCciK3B0KyInLCAnIitJdCsiJykgdGhy''@;'; + put 'put ''ZXcgYW4gZXhjZXB0aW9uOiAiK2xlLm1lc3NhZ2UpfXZuLmhhc2hSZW1vdmVOb2RlKGpuKTt0cnl7aHIubm9kZV9vcHMucmVuYW1lKGpuLFBpLGEpfWNhdGNoKGxlKXt0aHJvdyBsZX1maW5hbGx5e3ZuLmhhc2hBZGROb2RlKGpuKX10cnl7dm4udHJhY2tpbmdEZWxlZ2F0ZS5vbk1vdmVQYXRo''@;'; + put 'put ''JiZ2bi50cmFja2luZ0RlbGVnYXRlLm9uTW92ZVBhdGgocHQsSXQpfWNhdGNoKGxlKXtjb25zb2xlLmxvZygiRlMudHJhY2tpbmdEZWxlZ2F0ZVsnb25Nb3ZlUGF0aCddKCciK3B0KyInLCAnIitJdCsiJykgdGhyZXcgYW4gZXhjZXB0aW9uOiAiK2xlLm1lc3NhZ2UpfX19LHJtZGlyOmZ1bmN0''@;'; + put 'put ''aW9uKHB0KXt2YXIgUHQ9dm4ubG9va3VwUGF0aChwdCx7cGFyZW50OiEwfSkubm9kZSxmZT1VMC5iYXNlbmFtZShwdCksaXQ9dm4ubG9va3VwTm9kZShQdCxmZSksYT12bi5tYXlEZWxldGUoUHQsZmUsITApO2lmKGEpdGhyb3cgbmV3IHZuLkVycm5vRXJyb3IoYSk7aWYoIVB0Lm5vZGVfb3Bz''@;'; + put 'put ''LnJtZGlyKXRocm93IG5ldyB2bi5FcnJub0Vycm9yKHZpLkVQRVJNKTtpZih2bi5pc01vdW50cG9pbnQoaXQpKXRocm93IG5ldyB2bi5FcnJub0Vycm9yKHZpLkVCVVNZKTt0cnl7dm4udHJhY2tpbmdEZWxlZ2F0ZS53aWxsRGVsZXRlUGF0aCYmdm4udHJhY2tpbmdEZWxlZ2F0ZS53aWxsRGVs''@;'; + put 'put ''ZXRlUGF0aChwdCl9Y2F0Y2goWHQpe2NvbnNvbGUubG9nKCJGUy50cmFja2luZ0RlbGVnYXRlWyd3aWxsRGVsZXRlUGF0aCddKCciK3B0KyInKSB0aHJldyBhbiBleGNlcHRpb246ICIrWHQubWVzc2FnZSl9UHQubm9kZV9vcHMucm1kaXIoUHQsZmUpLHZuLmRlc3Ryb3lOb2RlKGl0KTt0cnl7''@;'; + put 'put ''dm4udHJhY2tpbmdEZWxlZ2F0ZS5vbkRlbGV0ZVBhdGgmJnZuLnRyYWNraW5nRGVsZWdhdGUub25EZWxldGVQYXRoKHB0KX1jYXRjaChYdCl7Y29uc29sZS5sb2coIkZTLnRyYWNraW5nRGVsZWdhdGVbJ29uRGVsZXRlUGF0aCddKCciK3B0KyInKSB0aHJldyBhbiBleGNlcHRpb246ICIrWHQu''@;'; + put 'put ''bWVzc2FnZSl9fSxyZWFkZGlyOmZ1bmN0aW9uKHB0KXt2YXIgUHQ9dm4ubG9va3VwUGF0aChwdCx7Zm9sbG93OiEwfSkubm9kZTtpZighUHQubm9kZV9vcHMucmVhZGRpcil0aHJvdyBuZXcgdm4uRXJybm9FcnJvcih2aS5FTk9URElSKTtyZXR1cm4gUHQubm9kZV9vcHMucmVhZGRpcihQdCl9''@;'; + put 'put ''LHVubGluazpmdW5jdGlvbihwdCl7dmFyIFB0PXZuLmxvb2t1cFBhdGgocHQse3BhcmVudDohMH0pLm5vZGUsZmU9VTAuYmFzZW5hbWUocHQpLGl0PXZuLmxvb2t1cE5vZGUoUHQsZmUpLGE9dm4ubWF5RGVsZXRlKFB0LGZlLCExKTtpZihhKXRocm93IG5ldyB2bi5FcnJub0Vycm9yKGEpO2lm''@;'; + put 'put ''KCFQdC5ub2RlX29wcy51bmxpbmspdGhyb3cgbmV3IHZuLkVycm5vRXJyb3IodmkuRVBFUk0pO2lmKHZuLmlzTW91bnRwb2ludChpdCkpdGhyb3cgbmV3IHZuLkVycm5vRXJyb3IodmkuRUJVU1kpO3RyeXt2bi50cmFja2luZ0RlbGVnYXRlLndpbGxEZWxldGVQYXRoJiZ2bi50cmFja2luZ0Rl''@;'; + put 'put ''bGVnYXRlLndpbGxEZWxldGVQYXRoKHB0KX1jYXRjaChYdCl7Y29uc29sZS5sb2coIkZTLnRyYWNraW5nRGVsZWdhdGVbJ3dpbGxEZWxldGVQYXRoJ10oJyIrcHQrIicpIHRocmV3IGFuIGV4Y2VwdGlvbjogIitYdC5tZXNzYWdlKX1QdC5ub2RlX29wcy51bmxpbmsoUHQsZmUpLHZuLmRlc3Ry''@;'; + put 'put ''b3lOb2RlKGl0KTt0cnl7dm4udHJhY2tpbmdEZWxlZ2F0ZS5vbkRlbGV0ZVBhdGgmJnZuLnRyYWNraW5nRGVsZWdhdGUub25EZWxldGVQYXRoKHB0KX1jYXRjaChYdCl7Y29uc29sZS5sb2coIkZTLnRyYWNraW5nRGVsZWdhdGVbJ29uRGVsZXRlUGF0aCddKCciK3B0KyInKSB0aHJldyBhbiBl''@;'; + put 'put ''eGNlcHRpb246ICIrWHQubWVzc2FnZSl9fSxyZWFkbGluazpmdW5jdGlvbihwdCl7dmFyIFB0PXZuLmxvb2t1cFBhdGgocHQpLm5vZGU7aWYoIVB0KXRocm93IG5ldyB2bi5FcnJub0Vycm9yKHZpLkVOT0VOVCk7aWYoIVB0Lm5vZGVfb3BzLnJlYWRsaW5rKXRocm93IG5ldyB2bi5FcnJub0Vy''@;'; + put 'put ''cm9yKHZpLkVJTlZBTCk7cmV0dXJuIFUwLnJlc29sdmUodm4uZ2V0UGF0aChQdC5wYXJlbnQpLFB0Lm5vZGVfb3BzLnJlYWRsaW5rKFB0KSl9LHN0YXQ6ZnVuY3Rpb24ocHQsSXQpe3ZhciBmZT12bi5sb29rdXBQYXRoKHB0LHtmb2xsb3c6IUl0fSkubm9kZTtpZighZmUpdGhyb3cgbmV3IHZu''@;'; + put 'put ''LkVycm5vRXJyb3IodmkuRU5PRU5UKTtpZighZmUubm9kZV9vcHMuZ2V0YXR0cil0aHJvdyBuZXcgdm4uRXJybm9FcnJvcih2aS5FUEVSTSk7cmV0dXJuIGZlLm5vZGVfb3BzLmdldGF0dHIoZmUpfSxsc3RhdDpmdW5jdGlvbihwdCl7cmV0dXJuIHZuLnN0YXQocHQsITApfSxjaG1vZDpmdW5j''@;'; + put 'put ''dGlvbihwdCxJdCxQdCl7dmFyIGZlO2lmKCEoZmU9InN0cmluZyI9PXR5cGVvZiBwdD92bi5sb29rdXBQYXRoKHB0LHtmb2xsb3c6IVB0fSkubm9kZTpwdCkubm9kZV9vcHMuc2V0YXR0cil0aHJvdyBuZXcgdm4uRXJybm9FcnJvcih2aS5FUEVSTSk7ZmUubm9kZV9vcHMuc2V0YXR0cihmZSx7''@;'; + put 'put ''bW9kZTo0MDk1Jkl0fC00MDk2JmZlLm1vZGUsdGltZXN0YW1wOkRhdGUubm93KCl9KX0sbGNobW9kOmZ1bmN0aW9uKHB0LEl0KXt2bi5jaG1vZChwdCxJdCwhMCl9LGZjaG1vZDpmdW5jdGlvbihwdCxJdCl7dmFyIFB0PXZuLmdldFN0cmVhbShwdCk7aWYoIVB0KXRocm93IG5ldyB2bi5FcnJu''@;'; + put 'put ''b0Vycm9yKHZpLkVCQURGKTt2bi5jaG1vZChQdC5ub2RlLEl0KX0sY2hvd246ZnVuY3Rpb24ocHQsSXQsUHQsZmUpe3ZhciBpdDtpZighKGl0PSJzdHJpbmciPT10eXBlb2YgcHQ/dm4ubG9va3VwUGF0aChwdCx7Zm9sbG93OiFmZX0pLm5vZGU6cHQpLm5vZGVfb3BzLnNldGF0dHIpdGhyb3cg''@;'; + put 'put ''bmV3IHZuLkVycm5vRXJyb3IodmkuRVBFUk0pO2l0Lm5vZGVfb3BzLnNldGF0dHIoaXQse3RpbWVzdGFtcDpEYXRlLm5vdygpfSl9LGxjaG93bjpmdW5jdGlvbihwdCxJdCxQdCl7dm4uY2hvd24ocHQsSXQsUHQsITApfSxmY2hvd246ZnVuY3Rpb24ocHQsSXQsUHQpe3ZhciBmZT12bi5nZXRT''@;'; + put 'put ''dHJlYW0ocHQpO2lmKCFmZSl0aHJvdyBuZXcgdm4uRXJybm9FcnJvcih2aS5FQkFERik7dm4uY2hvd24oZmUubm9kZSxJdCxQdCl9LHRydW5jYXRlOmZ1bmN0aW9uKHB0LEl0KXtpZihJdDwwKXRocm93IG5ldyB2bi5FcnJub0Vycm9yKHZpLkVJTlZBTCk7dmFyIFB0O2lmKCEoUHQ9InN0cmlu''@;'; + put 'put ''ZyI9PXR5cGVvZiBwdD92bi5sb29rdXBQYXRoKHB0LHtmb2xsb3c6ITB9KS5ub2RlOnB0KS5ub2RlX29wcy5zZXRhdHRyKXRocm93IG5ldyB2bi5FcnJub0Vycm9yKHZpLkVQRVJNKTtpZih2bi5pc0RpcihQdC5tb2RlKSl0aHJvdyBuZXcgdm4uRXJybm9FcnJvcih2aS5FSVNESVIpO2lmKCF2''@;'; + put 'put ''bi5pc0ZpbGUoUHQubW9kZSkpdGhyb3cgbmV3IHZuLkVycm5vRXJyb3IodmkuRUlOVkFMKTt2YXIgaXQ9dm4ubm9kZVBlcm1pc3Npb25zKFB0LCJ3Iik7aWYoaXQpdGhyb3cgbmV3IHZuLkVycm5vRXJyb3IoaXQpO1B0Lm5vZGVfb3BzLnNldGF0dHIoUHQse3NpemU6SXQsdGltZXN0YW1wOkRh''@;'; + put 'put ''dGUubm93KCl9KX0sZnRydW5jYXRlOmZ1bmN0aW9uKHB0LEl0KXt2YXIgUHQ9dm4uZ2V0U3RyZWFtKHB0KTtpZighUHQpdGhyb3cgbmV3IHZuLkVycm5vRXJyb3IodmkuRUJBREYpO2lmKDA9PSgyMDk3MTU1JlB0LmZsYWdzKSl0aHJvdyBuZXcgdm4uRXJybm9FcnJvcih2aS5FSU5WQUwpO3Zu''@;'; + put 'put ''LnRydW5jYXRlKFB0Lm5vZGUsSXQpfSx1dGltZTpmdW5jdGlvbihwdCxJdCxQdCl7dmFyIGl0PXZuLmxvb2t1cFBhdGgocHQse2ZvbGxvdzohMH0pLm5vZGU7aXQubm9kZV9vcHMuc2V0YXR0cihpdCx7dGltZXN0YW1wOk1hdGgubWF4KEl0LFB0KX0pfSxvcGVuOmZ1bmN0aW9uKHB0LEl0LFB0''@;'; + put 'put ''LGZlLGl0KXtpZigiIj09PXB0KXRocm93IG5ldyB2bi5FcnJub0Vycm9yKHZpLkVOT0VOVCk7dmFyIGE7aWYoUHQ9dm9pZCAwPT09UHQ/NDM4OlB0LFB0PTY0JihJdD0ic3RyaW5nIj09dHlwZW9mIEl0P3ZuLm1vZGVTdHJpbmdUb0ZsYWdzKEl0KTpJdCk/NDA5NSZQdHwzMjc2ODowLCJvYmpl''@;'; + put 'put ''Y3QiPT10eXBlb2YgcHQpYT1wdDtlbHNle3B0PVUwLm5vcm1hbGl6ZShwdCk7dHJ5e2E9dm4ubG9va3VwUGF0aChwdCx7Zm9sbG93OiEoMTMxMDcyJkl0KX0pLm5vZGV9Y2F0Y2goQW8pe319dmFyIGhyPSExO2lmKDY0Jkl0KWlmKGEpe2lmKDEyOCZJdCl0aHJvdyBuZXcgdm4uRXJybm9FcnJv''@;'; + put 'put ''cih2aS5FRVhJU1QpfWVsc2UgYT12bi5ta25vZChwdCxQdCwwKSxocj0hMDtpZighYSl0aHJvdyBuZXcgdm4uRXJybm9FcnJvcih2aS5FTk9FTlQpO2lmKHZuLmlzQ2hyZGV2KGEubW9kZSkmJihJdCY9LTUxMyksNjU1MzYmSXQmJiF2bi5pc0RpcihhLm1vZGUpKXRocm93IG5ldyB2bi5FcnJu''@;'; + put 'put ''b0Vycm9yKHZpLkVOT1RESVIpO2lmKCFocil7dmFyIFBpPXZuLm1heU9wZW4oYSxJdCk7aWYoUGkpdGhyb3cgbmV3IHZuLkVycm5vRXJyb3IoUGkpfTUxMiZJdCYmdm4udHJ1bmNhdGUoYSwwKSxJdCY9LTY0MTt2YXIgam49dm4uY3JlYXRlU3RyZWFtKHtub2RlOmEscGF0aDp2bi5nZXRQYXRo''@;'; + put 'put ''KGEpLGZsYWdzOkl0LHNlZWthYmxlOiEwLHBvc2l0aW9uOjAsc3RyZWFtX29wczphLnN0cmVhbV9vcHMsdW5nb3R0ZW46W10sZXJyb3I6ITF9LGZlLGl0KTtqbi5zdHJlYW1fb3BzLm9wZW4mJmpuLnN0cmVhbV9vcHMub3BlbihqbiksWi5sb2dSZWFkRmlsZXMmJiEoMSZJdCkmJih2bi5yZWFk''@;'; + put 'put ''RmlsZXN8fCh2bi5yZWFkRmlsZXM9e30pLHB0IGluIHZuLnJlYWRGaWxlc3x8KHZuLnJlYWRGaWxlc1twdF09MSxaLnByaW50RXJyKCJyZWFkIGZpbGU6ICIrcHQpKSk7dHJ5e2lmKHZuLnRyYWNraW5nRGVsZWdhdGUub25PcGVuRmlsZSl7dmFyIF89MDsxIT0oMjA5NzE1NSZJdCkmJihffD12''@;'; + put 'put ''bi50cmFja2luZy5vcGVuRmxhZ3MuUkVBRCksMCE9KDIwOTcxNTUmSXQpJiYoX3w9dm4udHJhY2tpbmcub3BlbkZsYWdzLldSSVRFKSx2bi50cmFja2luZ0RlbGVnYXRlLm9uT3BlbkZpbGUocHQsXyl9fWNhdGNoKEFvKXtjb25zb2xlLmxvZygiRlMudHJhY2tpbmdEZWxlZ2F0ZVsnb25PcGVu''@;'; + put 'put ''RmlsZSddKCciK3B0KyInLCBmbGFncykgdGhyZXcgYW4gZXhjZXB0aW9uOiAiK0FvLm1lc3NhZ2UpfXJldHVybiBqbn0sY2xvc2U6ZnVuY3Rpb24ocHQpe3B0LmdldGRlbnRzJiYocHQuZ2V0ZGVudHM9bnVsbCk7dHJ5e3B0LnN0cmVhbV9vcHMuY2xvc2UmJnB0LnN0cmVhbV9vcHMuY2xvc2Uo''@;'; + put 'put ''cHQpfWNhdGNoKEl0KXt0aHJvdyBJdH1maW5hbGx5e3ZuLmNsb3NlU3RyZWFtKHB0LmZkKX19LGxsc2VlazpmdW5jdGlvbihwdCxJdCxQdCl7aWYoIXB0LnNlZWthYmxlfHwhcHQuc3RyZWFtX29wcy5sbHNlZWspdGhyb3cgbmV3IHZuLkVycm5vRXJyb3IodmkuRVNQSVBFKTtyZXR1cm4gcHQu''@;'; + put 'put ''cG9zaXRpb249cHQuc3RyZWFtX29wcy5sbHNlZWsocHQsSXQsUHQpLHB0LnVuZ290dGVuPVtdLHB0LnBvc2l0aW9ufSxyZWFkOmZ1bmN0aW9uKHB0LEl0LFB0LGZlLGl0KXtpZihmZTwwfHxpdDwwKXRocm93IG5ldyB2bi5FcnJub0Vycm9yKHZpLkVJTlZBTCk7aWYoMT09KDIwOTcxNTUmcHQu''@;'; + put 'put ''ZmxhZ3MpKXRocm93IG5ldyB2bi5FcnJub0Vycm9yKHZpLkVCQURGKTtpZih2bi5pc0RpcihwdC5ub2RlLm1vZGUpKXRocm93IG5ldyB2bi5FcnJub0Vycm9yKHZpLkVJU0RJUik7aWYoIXB0LnN0cmVhbV9vcHMucmVhZCl0aHJvdyBuZXcgdm4uRXJybm9FcnJvcih2aS5FSU5WQUwpO3ZhciBh''@;'; + put 'put ''PXZvaWQgMCE9PWl0O2lmKGEpe2lmKCFwdC5zZWVrYWJsZSl0aHJvdyBuZXcgdm4uRXJybm9FcnJvcih2aS5FU1BJUEUpfWVsc2UgaXQ9cHQucG9zaXRpb247dmFyIFh0PXB0LnN0cmVhbV9vcHMucmVhZChwdCxJdCxQdCxmZSxpdCk7cmV0dXJuIGF8fChwdC5wb3NpdGlvbis9WHQpLFh0fSx3''@;'; + put 'put ''cml0ZTpmdW5jdGlvbihwdCxJdCxQdCxmZSxpdCxhKXtpZihmZTwwfHxpdDwwKXRocm93IG5ldyB2bi5FcnJub0Vycm9yKHZpLkVJTlZBTCk7aWYoMD09KDIwOTcxNTUmcHQuZmxhZ3MpKXRocm93IG5ldyB2bi5FcnJub0Vycm9yKHZpLkVCQURGKTtpZih2bi5pc0RpcihwdC5ub2RlLm1vZGUp''@;'; + put 'put ''KXRocm93IG5ldyB2bi5FcnJub0Vycm9yKHZpLkVJU0RJUik7aWYoIXB0LnN0cmVhbV9vcHMud3JpdGUpdGhyb3cgbmV3IHZuLkVycm5vRXJyb3IodmkuRUlOVkFMKTsxMDI0JnB0LmZsYWdzJiZ2bi5sbHNlZWsocHQsMCwyKTt2YXIgWHQ9dm9pZCAwIT09aXQ7aWYoWHQpe2lmKCFwdC5zZWVr''@;'; + put 'put ''YWJsZSl0aHJvdyBuZXcgdm4uRXJybm9FcnJvcih2aS5FU1BJUEUpfWVsc2UgaXQ9cHQucG9zaXRpb247dmFyIGhyPXB0LnN0cmVhbV9vcHMud3JpdGUocHQsSXQsUHQsZmUsaXQsYSk7WHR8fChwdC5wb3NpdGlvbis9aHIpO3RyeXtwdC5wYXRoJiZ2bi50cmFja2luZ0RlbGVnYXRlLm9uV3Jp''@;'; + put 'put ''dGVUb0ZpbGUmJnZuLnRyYWNraW5nRGVsZWdhdGUub25Xcml0ZVRvRmlsZShwdC5wYXRoKX1jYXRjaChQaSl7Y29uc29sZS5sb2coIkZTLnRyYWNraW5nRGVsZWdhdGVbJ29uV3JpdGVUb0ZpbGUnXSgnIitwYXRoKyInKSB0aHJldyBhbiBleGNlcHRpb246ICIrUGkubWVzc2FnZSl9cmV0dXJu''@;'; + put 'put ''IGhyfSxhbGxvY2F0ZTpmdW5jdGlvbihwdCxJdCxQdCl7aWYoSXQ8MHx8UHQ8PTApdGhyb3cgbmV3IHZuLkVycm5vRXJyb3IodmkuRUlOVkFMKTtpZigwPT0oMjA5NzE1NSZwdC5mbGFncykpdGhyb3cgbmV3IHZuLkVycm5vRXJyb3IodmkuRUJBREYpO2lmKCF2bi5pc0ZpbGUocHQubm9kZS5t''@;'; + put 'put ''b2RlKSYmIXZuLmlzRGlyKHB0Lm5vZGUubW9kZSkpdGhyb3cgbmV3IHZuLkVycm5vRXJyb3IodmkuRU5PREVWKTtpZighcHQuc3RyZWFtX29wcy5hbGxvY2F0ZSl0aHJvdyBuZXcgdm4uRXJybm9FcnJvcih2aS5FT1BOT1RTVVBQKTtwdC5zdHJlYW1fb3BzLmFsbG9jYXRlKHB0LEl0LFB0KX0s''@;'; + put 'put ''bW1hcDpmdW5jdGlvbihwdCxJdCxQdCxmZSxpdCxhLFh0KXtpZigxPT0oMjA5NzE1NSZwdC5mbGFncykpdGhyb3cgbmV3IHZuLkVycm5vRXJyb3IodmkuRUFDQ0VTKTtpZighcHQuc3RyZWFtX29wcy5tbWFwKXRocm93IG5ldyB2bi5FcnJub0Vycm9yKHZpLkVOT0RFVik7cmV0dXJuIHB0LnN0''@;'; + put 'put ''cmVhbV9vcHMubW1hcChwdCxJdCxQdCxmZSxpdCxhLFh0KX0sbXN5bmM6ZnVuY3Rpb24ocHQsSXQsUHQsZmUsaXQpe3JldHVybiBwdCYmcHQuc3RyZWFtX29wcy5tc3luYz9wdC5zdHJlYW1fb3BzLm1zeW5jKHB0LEl0LFB0LGZlLGl0KTowfSxtdW5tYXA6ZnVuY3Rpb24ocHQpe3JldHVybiAw''@;'; + put 'put ''fSxpb2N0bDpmdW5jdGlvbihwdCxJdCxQdCl7aWYoIXB0LnN0cmVhbV9vcHMuaW9jdGwpdGhyb3cgbmV3IHZuLkVycm5vRXJyb3IodmkuRU5PVFRZKTtyZXR1cm4gcHQuc3RyZWFtX29wcy5pb2N0bChwdCxJdCxQdCl9LHJlYWRGaWxlOmZ1bmN0aW9uKHB0LEl0KXtpZigoSXQ9SXR8fHt9KS5m''@;'; + put 'put ''bGFncz1JdC5mbGFnc3x8InIiLEl0LmVuY29kaW5nPUl0LmVuY29kaW5nfHwiYmluYXJ5IiwidXRmOCIhPT1JdC5lbmNvZGluZyYmImJpbmFyeSIhPT1JdC5lbmNvZGluZyl0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgZW5jb2RpbmcgdHlwZSAiJytJdC5lbmNvZGluZysnIicpO3ZhciBQdCxm''@;'; + put 'put ''ZT12bi5vcGVuKHB0LEl0LmZsYWdzKSxhPXZuLnN0YXQocHQpLnNpemUsWHQ9bmV3IFVpbnQ4QXJyYXkoYSk7cmV0dXJuIHZuLnJlYWQoZmUsWHQsMCxhLDApLCJ1dGY4Ij09PUl0LmVuY29kaW5nP1B0PUNlKFh0LDApOiJiaW5hcnkiPT09SXQuZW5jb2RpbmcmJihQdD1YdCksdm4uY2xvc2Uo''@;'; + put 'put ''ZmUpLFB0fSx3cml0ZUZpbGU6ZnVuY3Rpb24ocHQsSXQsUHQpeyhQdD1QdHx8e30pLmZsYWdzPVB0LmZsYWdzfHwidyI7dmFyIGZlPXZuLm9wZW4ocHQsUHQuZmxhZ3MsUHQubW9kZSk7aWYoInN0cmluZyI9PXR5cGVvZiBJdCl7dmFyIGl0PW5ldyBVaW50OEFycmF5KCRlKEl0KSsxKSxhPVBl''@;'; + put 'put ''KEl0LGl0LDAsaXQubGVuZ3RoKTt2bi53cml0ZShmZSxpdCwwLGEsdm9pZCAwLFB0LmNhbk93bil9ZWxzZXtpZighQXJyYXlCdWZmZXIuaXNWaWV3KEl0KSl0aHJvdyBuZXcgRXJyb3IoIlVuc3VwcG9ydGVkIGRhdGEgdHlwZSIpO3ZuLndyaXRlKGZlLEl0LDAsSXQuYnl0ZUxlbmd0aCx2b2lk''@;'; + put 'put ''IDAsUHQuY2FuT3duKX12bi5jbG9zZShmZSl9LGN3ZDpmdW5jdGlvbigpe3JldHVybiB2bi5jdXJyZW50UGF0aH0sY2hkaXI6ZnVuY3Rpb24ocHQpe3ZhciBJdD12bi5sb29rdXBQYXRoKHB0LHtmb2xsb3c6ITB9KTtpZihudWxsPT09SXQubm9kZSl0aHJvdyBuZXcgdm4uRXJybm9FcnJvcih2''@;'; + put 'put ''aS5FTk9FTlQpO2lmKCF2bi5pc0RpcihJdC5ub2RlLm1vZGUpKXRocm93IG5ldyB2bi5FcnJub0Vycm9yKHZpLkVOT1RESVIpO3ZhciBQdD12bi5ub2RlUGVybWlzc2lvbnMoSXQubm9kZSwieCIpO2lmKFB0KXRocm93IG5ldyB2bi5FcnJub0Vycm9yKFB0KTt2bi5jdXJyZW50UGF0aD1JdC5w''@;'; + put 'put ''YXRofSxjcmVhdGVEZWZhdWx0RGlyZWN0b3JpZXM6ZnVuY3Rpb24oKXt2bi5ta2RpcigiL3RtcCIpLHZuLm1rZGlyKCIvaG9tZSIpLHZuLm1rZGlyKCIvaG9tZS93ZWJfdXNlciIpfSxjcmVhdGVEZWZhdWx0RGV2aWNlczpmdW5jdGlvbigpe3ZhciBwdDtpZih2bi5ta2RpcigiL2RldiIpLHZu''@;'; + put 'put ''LnJlZ2lzdGVyRGV2aWNlKHZuLm1ha2VkZXYoMSwzKSx7cmVhZDpmdW5jdGlvbigpe3JldHVybiAwfSx3cml0ZTpmdW5jdGlvbihQdCxmZSxpdCxhLFh0KXtyZXR1cm4gYX19KSx2bi5ta2RldigiL2Rldi9udWxsIix2bi5tYWtlZGV2KDEsMykpLFJzLnJlZ2lzdGVyKHZuLm1ha2VkZXYoNSww''@;'; + put 'put ''KSxScy5kZWZhdWx0X3R0eV9vcHMpLFJzLnJlZ2lzdGVyKHZuLm1ha2VkZXYoNiwwKSxScy5kZWZhdWx0X3R0eTFfb3BzKSx2bi5ta2RldigiL2Rldi90dHkiLHZuLm1ha2VkZXYoNSwwKSksdm4ubWtkZXYoIi9kZXYvdHR5MSIsdm4ubWFrZWRldig2LDApKSwidW5kZWZpbmVkIiE9dHlwZW9m''@;'; + put 'put ''IGNyeXB0byl7dmFyIEl0PW5ldyBVaW50OEFycmF5KDEpO3B0PWZ1bmN0aW9uKCl7cmV0dXJuIGNyeXB0by5nZXRSYW5kb21WYWx1ZXMoSXQpLEl0WzBdfX1lbHNlIHB0PU4/ZnVuY3Rpb24oKXtyZXR1cm4gTCg0MTM0OCkucmFuZG9tQnl0ZXMoMSlbMF19OmZ1bmN0aW9uKCl7cmV0dXJuIDI1''@;'; + put 'put ''NipNYXRoLnJhbmRvbSgpfDB9O3ZuLmNyZWF0ZURldmljZSgiL2RldiIsInJhbmRvbSIscHQpLHZuLmNyZWF0ZURldmljZSgiL2RldiIsInVyYW5kb20iLHB0KSx2bi5ta2RpcigiL2Rldi9zaG0iKSx2bi5ta2RpcigiL2Rldi9zaG0vdG1wIil9LGNyZWF0ZVNwZWNpYWxEaXJlY3Rvcmllczpm''@;'; + put 'put ''dW5jdGlvbigpe3ZuLm1rZGlyKCIvcHJvYyIpLHZuLm1rZGlyKCIvcHJvYy9zZWxmIiksdm4ubWtkaXIoIi9wcm9jL3NlbGYvZmQiKSx2bi5tb3VudCh7bW91bnQ6ZnVuY3Rpb24oKXt2YXIgcHQ9dm4uY3JlYXRlTm9kZSgiL3Byb2Mvc2VsZiIsImZkIiwxNjg5NSw3Myk7cmV0dXJuIHB0Lm5v''@;'; + put 'put ''ZGVfb3BzPXtsb29rdXA6ZnVuY3Rpb24oSXQsUHQpe3ZhciBpdD12bi5nZXRTdHJlYW0oK1B0KTtpZighaXQpdGhyb3cgbmV3IHZuLkVycm5vRXJyb3IodmkuRUJBREYpO3ZhciBhPXtwYXJlbnQ6bnVsbCxtb3VudDp7bW91bnRwb2ludDoiZmFrZSJ9LG5vZGVfb3BzOntyZWFkbGluazpmdW5j''@;'; + put 'put ''dGlvbigpe3JldHVybiBpdC5wYXRofX19O3JldHVybiBhLnBhcmVudD1hLGF9fSxwdH19LHt9LCIvcHJvYy9zZWxmL2ZkIil9LGNyZWF0ZVN0YW5kYXJkU3RyZWFtczpmdW5jdGlvbigpe1ouc3RkaW4/dm4uY3JlYXRlRGV2aWNlKCIvZGV2Iiwic3RkaW4iLFouc3RkaW4pOnZuLnN5bWxpbmso''@;'; + put 'put ''Ii9kZXYvdHR5IiwiL2Rldi9zdGRpbiIpLFouc3Rkb3V0P3ZuLmNyZWF0ZURldmljZSgiL2RldiIsInN0ZG91dCIsbnVsbCxaLnN0ZG91dCk6dm4uc3ltbGluaygiL2Rldi90dHkiLCIvZGV2L3N0ZG91dCIpLFouc3RkZXJyP3ZuLmNyZWF0ZURldmljZSgiL2RldiIsInN0ZGVyciIsbnVsbCxa''@;'; + put 'put ''LnN0ZGVycik6dm4uc3ltbGluaygiL2Rldi90dHkxIiwiL2Rldi9zdGRlcnIiKTt2YXIgcHQ9dm4ub3BlbigiL2Rldi9zdGRpbiIsInIiKTtPKDA9PT1wdC5mZCwiaW52YWxpZCBoYW5kbGUgZm9yIHN0ZGluICgiK3B0LmZkKyIpIik7dmFyIEl0PXZuLm9wZW4oIi9kZXYvc3Rkb3V0IiwidyIp''@;'; + put 'put ''O08oMT09PUl0LmZkLCJpbnZhbGlkIGhhbmRsZSBmb3Igc3Rkb3V0ICgiK0l0LmZkKyIpIik7dmFyIFB0PXZuLm9wZW4oIi9kZXYvc3RkZXJyIiwidyIpO08oMj09PVB0LmZkLCJpbnZhbGlkIGhhbmRsZSBmb3Igc3RkZXJyICgiK1B0LmZkKyIpIil9LGVuc3VyZUVycm5vRXJyb3I6ZnVuY3Rp''@;'; + put 'put ''b24oKXt2bi5FcnJub0Vycm9yfHwodm4uRXJybm9FcnJvcj1mdW5jdGlvbihJdCxQdCl7dGhpcy5ub2RlPVB0LHRoaXMuc2V0RXJybm89ZnVuY3Rpb24oZmUpe2Zvcih2YXIgaXQgaW4gdGhpcy5lcnJubz1mZSx2aSlpZih2aVtpdF09PT1mZSl7dGhpcy5jb2RlPWl0O2JyZWFrfX0sdGhpcy5z''@;'; + put 'put ''ZXRFcnJubyhJdCksdGhpcy5tZXNzYWdlPUhjW0l0XSx0aGlzLnN0YWNrJiZPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywic3RhY2siLHt2YWx1ZToobmV3IEVycm9yKS5zdGFjayx3cml0YWJsZTohMH0pfSx2bi5FcnJub0Vycm9yLnByb3RvdHlwZT1uZXcgRXJyb3Isdm4uRXJybm9FcnJv''@;'; + put 'put ''ci5wcm90b3R5cGUuY29uc3RydWN0b3I9dm4uRXJybm9FcnJvcixbdmkuRU5PRU5UXS5mb3JFYWNoKGZ1bmN0aW9uKHB0KXt2bi5nZW5lcmljRXJyb3JzW3B0XT1uZXcgdm4uRXJybm9FcnJvcihwdCksdm4uZ2VuZXJpY0Vycm9yc1twdF0uc3RhY2s9IjxnZW5lcmljIGVycm9yLCBubyBzdGFj''@;'; + put 'put ''az4ifSkpfSxzdGF0aWNJbml0OmZ1bmN0aW9uKCl7dm4uZW5zdXJlRXJybm9FcnJvcigpLHZuLm5hbWVUYWJsZT1uZXcgQXJyYXkoNDA5Niksdm4ubW91bnQoWDAse30sIi8iKSx2bi5jcmVhdGVEZWZhdWx0RGlyZWN0b3JpZXMoKSx2bi5jcmVhdGVEZWZhdWx0RGV2aWNlcygpLHZuLmNyZWF0''@;'; + put 'put ''ZVNwZWNpYWxEaXJlY3RvcmllcygpLHZuLmZpbGVzeXN0ZW1zPXtNRU1GUzpYMCxJREJGUzp1YSxOT0RFRlM6ajAsV09SS0VSRlM6Qmx9fSxpbml0OmZ1bmN0aW9uKHB0LEl0LFB0KXtPKCF2bi5pbml0LmluaXRpYWxpemVkLCJGUy5pbml0IHdhcyBwcmV2aW91c2x5IGNhbGxlZC4gSWYgeW91''@;'; + put 'put ''IHdhbnQgdG8gaW5pdGlhbGl6ZSBsYXRlciB3aXRoIGN1c3RvbSBwYXJhbWV0ZXJzLCByZW1vdmUgYW55IGVhcmxpZXIgY2FsbHMgKG5vdGUgdGhhdCBvbmUgaXMgYXV0b21hdGljYWxseSBhZGRlZCB0byB0aGUgZ2VuZXJhdGVkIGNvZGUpIiksdm4uaW5pdC5pbml0aWFsaXplZD0hMCx2bi5l''@;'; + put 'put ''bnN1cmVFcnJub0Vycm9yKCksWi5zdGRpbj1wdHx8Wi5zdGRpbixaLnN0ZG91dD1JdHx8Wi5zdGRvdXQsWi5zdGRlcnI9UHR8fFouc3RkZXJyLHZuLmNyZWF0ZVN0YW5kYXJkU3RyZWFtcygpfSxxdWl0OmZ1bmN0aW9uKCl7dm4uaW5pdC5pbml0aWFsaXplZD0hMTt2YXIgcHQ9Wi5fZmZsdXNo''@;'; + put 'put ''O3B0JiZwdCgwKTtmb3IodmFyIEl0PTA7SXQ8dm4uc3RyZWFtcy5sZW5ndGg7SXQrKyl7dmFyIFB0PXZuLnN0cmVhbXNbSXRdOyFQdHx8dm4uY2xvc2UoUHQpfX0sZ2V0TW9kZTpmdW5jdGlvbihwdCxJdCl7dmFyIFB0PTA7cmV0dXJuIHB0JiYoUHR8PTM2NSksSXQmJihQdHw9MTQ2KSxQdH0s''@;'; + put 'put ''am9pblBhdGg6ZnVuY3Rpb24ocHQsSXQpe3ZhciBQdD1VMC5qb2luLmFwcGx5KG51bGwscHQpO3JldHVybiBJdCYmIi8iPT1QdFswXSYmKFB0PVB0LnN1YnN0cigxKSksUHR9LGFic29sdXRlUGF0aDpmdW5jdGlvbihwdCxJdCl7cmV0dXJuIFUwLnJlc29sdmUoSXQscHQpfSxzdGFuZGFyZGl6''@;'; + put 'put ''ZVBhdGg6ZnVuY3Rpb24ocHQpe3JldHVybiBVMC5ub3JtYWxpemUocHQpfSxmaW5kT2JqZWN0OmZ1bmN0aW9uKHB0LEl0KXt2YXIgUHQ9dm4uYW5hbHl6ZVBhdGgocHQsSXQpO3JldHVybiBQdC5leGlzdHM/UHQub2JqZWN0OihiMChQdC5lcnJvciksbnVsbCl9LGFuYWx5emVQYXRoOmZ1bmN0''@;'; + put 'put ''aW9uKHB0LEl0KXt0cnl7cHQ9KFB0PXZuLmxvb2t1cFBhdGgocHQse2ZvbGxvdzohSXR9KSkucGF0aH1jYXRjaChpdCl7fXZhciBmZT17aXNSb290OiExLGV4aXN0czohMSxlcnJvcjowLG5hbWU6bnVsbCxwYXRoOm51bGwsb2JqZWN0Om51bGwscGFyZW50RXhpc3RzOiExLHBhcmVudFBhdGg6''@;'; + put 'put ''bnVsbCxwYXJlbnRPYmplY3Q6bnVsbH07dHJ5e3ZhciBQdD12bi5sb29rdXBQYXRoKHB0LHtwYXJlbnQ6ITB9KTtmZS5wYXJlbnRFeGlzdHM9ITAsZmUucGFyZW50UGF0aD1QdC5wYXRoLGZlLnBhcmVudE9iamVjdD1QdC5ub2RlLGZlLm5hbWU9VTAuYmFzZW5hbWUocHQpLFB0PXZuLmxvb2t1''@;'; + put 'put ''cFBhdGgocHQse2ZvbGxvdzohSXR9KSxmZS5leGlzdHM9ITAsZmUucGF0aD1QdC5wYXRoLGZlLm9iamVjdD1QdC5ub2RlLGZlLm5hbWU9UHQubm9kZS5uYW1lLGZlLmlzUm9vdD0iLyI9PT1QdC5wYXRofWNhdGNoKGl0KXtmZS5lcnJvcj1pdC5lcnJub31yZXR1cm4gZmV9LGNyZWF0ZUZvbGRl''@;'; + put 'put ''cjpmdW5jdGlvbihwdCxJdCxQdCxmZSl7dmFyIGl0PVUwLmpvaW4yKCJzdHJpbmciPT10eXBlb2YgcHQ/cHQ6dm4uZ2V0UGF0aChwdCksSXQpLGE9dm4uZ2V0TW9kZShQdCxmZSk7cmV0dXJuIHZuLm1rZGlyKGl0LGEpfSxjcmVhdGVQYXRoOmZ1bmN0aW9uKHB0LEl0LFB0LGZlKXtwdD0ic3Ry''@;'; + put 'put ''aW5nIj09dHlwZW9mIHB0P3B0OnZuLmdldFBhdGgocHQpO2Zvcih2YXIgaXQ9SXQuc3BsaXQoIi8iKS5yZXZlcnNlKCk7aXQubGVuZ3RoOyl7dmFyIGE9aXQucG9wKCk7aWYoYSl7dmFyIFh0PVUwLmpvaW4yKHB0LGEpO3RyeXt2bi5ta2RpcihYdCl9Y2F0Y2goaHIpe31wdD1YdH19cmV0dXJu''@;'; + put 'put ''IFh0fSxjcmVhdGVGaWxlOmZ1bmN0aW9uKHB0LEl0LFB0LGZlLGl0KXt2YXIgYT1VMC5qb2luMigic3RyaW5nIj09dHlwZW9mIHB0P3B0OnZuLmdldFBhdGgocHQpLEl0KSxYdD12bi5nZXRNb2RlKGZlLGl0KTtyZXR1cm4gdm4uY3JlYXRlKGEsWHQpfSxjcmVhdGVEYXRhRmlsZTpmdW5jdGlv''@;'; + put 'put ''bihwdCxJdCxQdCxmZSxpdCxhKXt2YXIgWHQ9SXQ/VTAuam9pbjIoInN0cmluZyI9PXR5cGVvZiBwdD9wdDp2bi5nZXRQYXRoKHB0KSxJdCk6cHQsaHI9dm4uZ2V0TW9kZShmZSxpdCksUGk9dm4uY3JlYXRlKFh0LGhyKTtpZihQdCl7aWYoInN0cmluZyI9PXR5cGVvZiBQdCl7Zm9yKHZhciBq''@;'; + put 'put ''bj1uZXcgQXJyYXkoUHQubGVuZ3RoKSxfPTAsQW89UHQubGVuZ3RoO188QW87KytfKWpuW19dPVB0LmNoYXJDb2RlQXQoXyk7UHQ9am59dm4uY2htb2QoUGksMTQ2fGhyKTt2YXIgU2k9dm4ub3BlbihQaSwidyIpO3ZuLndyaXRlKFNpLFB0LDAsUHQubGVuZ3RoLDAsYSksdm4uY2xvc2UoU2kp''@;'; + put 'put ''LHZuLmNobW9kKFBpLGhyKX1yZXR1cm4gUGl9LGNyZWF0ZURldmljZTpmdW5jdGlvbihwdCxJdCxQdCxmZSl7dmFyIGl0PVUwLmpvaW4yKCJzdHJpbmciPT10eXBlb2YgcHQ/cHQ6dm4uZ2V0UGF0aChwdCksSXQpLGE9dm4uZ2V0TW9kZSghIVB0LCEhZmUpO3ZuLmNyZWF0ZURldmljZS5tYWpv''@;'; + put 'put ''cnx8KHZuLmNyZWF0ZURldmljZS5tYWpvcj02NCk7dmFyIFh0PXZuLm1ha2VkZXYodm4uY3JlYXRlRGV2aWNlLm1ham9yKyssMCk7cmV0dXJuIHZuLnJlZ2lzdGVyRGV2aWNlKFh0LHtvcGVuOmZ1bmN0aW9uKGhyKXtoci5zZWVrYWJsZT0hMX0sY2xvc2U6ZnVuY3Rpb24oaHIpe2ZlJiZmZS5i''@;'; + put 'put ''dWZmZXImJmZlLmJ1ZmZlci5sZW5ndGgmJmZlKDEwKX0scmVhZDpmdW5jdGlvbihocixQaSxqbixfLEFvKXtmb3IodmFyIFNpPTAsJG89MDskbzxfOyRvKyspe3ZhciBsZTt0cnl7bGU9UHQoKX1jYXRjaChWMSl7dGhyb3cgbmV3IHZuLkVycm5vRXJyb3IodmkuRUlPKX1pZih2b2lkIDA9PT1s''@;'; + put 'put ''ZSYmMD09PVNpKXRocm93IG5ldyB2bi5FcnJub0Vycm9yKHZpLkVBR0FJTik7aWYobnVsbD09bGUpYnJlYWs7U2krKyxQaVtqbiskb109bGV9cmV0dXJuIFNpJiYoaHIubm9kZS50aW1lc3RhbXA9RGF0ZS5ub3coKSksU2l9LHdyaXRlOmZ1bmN0aW9uKGhyLFBpLGpuLF8sQW8pe2Zvcih2YXIg''@;'; + put 'put ''U2k9MDtTaTxfO1NpKyspdHJ5e2ZlKFBpW2puK1NpXSl9Y2F0Y2goJG8pe3Rocm93IG5ldyB2bi5FcnJub0Vycm9yKHZpLkVJTyl9cmV0dXJuIF8mJihoci5ub2RlLnRpbWVzdGFtcD1EYXRlLm5vdygpKSxTaX19KSx2bi5ta2RldihpdCxhLFh0KX0sY3JlYXRlTGluazpmdW5jdGlvbihwdCxJ''@;'; + put 'put ''dCxQdCxmZSxpdCl7dmFyIGE9VTAuam9pbjIoInN0cmluZyI9PXR5cGVvZiBwdD9wdDp2bi5nZXRQYXRoKHB0KSxJdCk7cmV0dXJuIHZuLnN5bWxpbmsoUHQsYSl9LGZvcmNlTG9hZEZpbGU6ZnVuY3Rpb24ocHQpe2lmKHB0LmlzRGV2aWNlfHxwdC5pc0ZvbGRlcnx8cHQubGlua3x8cHQuY29u''@;'; + put 'put ''dGVudHMpcmV0dXJuITA7dmFyIEl0PSEwO2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgWE1MSHR0cFJlcXVlc3QpdGhyb3cgbmV3IEVycm9yKCJMYXp5IGxvYWRpbmcgc2hvdWxkIGhhdmUgYmVlbiBwZXJmb3JtZWQgKGNvbnRlbnRzIHNldCkgaW4gY3JlYXRlTGF6eUZpbGUsIGJ1dCBpdCB3YXMg''@;'; + put 'put ''bm90LiBMYXp5IGxvYWRpbmcgb25seSB3b3JrcyBpbiB3ZWIgd29ya2Vycy4gVXNlIC0tZW1iZWQtZmlsZSBvciAtLXByZWxvYWQtZmlsZSBpbiBlbWNjIG9uIHRoZSBtYWluIHRocmVhZC4iKTtpZighWi5yZWFkKXRocm93IG5ldyBFcnJvcigiQ2Fubm90IGxvYWQgd2l0aG91dCByZWFkKCkg''@;'; + put 'put ''b3IgWE1MSHR0cFJlcXVlc3QuIik7dHJ5e3B0LmNvbnRlbnRzPXNvKFoucmVhZChwdC51cmwpLCEwKSxwdC51c2VkQnl0ZXM9cHQuY29udGVudHMubGVuZ3RofWNhdGNoKFB0KXtJdD0hMX1yZXR1cm4gSXR8fGIwKHZpLkVJTyksSXR9LGNyZWF0ZUxhenlGaWxlOmZ1bmN0aW9uKHB0LEl0LFB0''@;'; + put 'put ''LGZlLGl0KXtmdW5jdGlvbiBhKCl7dGhpcy5sZW5ndGhLbm93bj0hMSx0aGlzLmNodW5rcz1bXX1pZihhLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24oU2kpe2lmKCEoU2k+dGhpcy5sZW5ndGgtMXx8U2k8MCkpe3ZhciAkbz1TaSV0aGlzLmNodW5rU2l6ZTtyZXR1cm4gdGhpcy5nZXR0ZXIoU2kv''@;'; + put 'put ''dGhpcy5jaHVua1NpemV8MClbJG9dfX0sYS5wcm90b3R5cGUuc2V0RGF0YUdldHRlcj1mdW5jdGlvbihTaSl7dGhpcy5nZXR0ZXI9U2l9LGEucHJvdG90eXBlLmNhY2hlTGVuZ3RoPWZ1bmN0aW9uKCl7dmFyIFNpPW5ldyBYTUxIdHRwUmVxdWVzdDtpZihTaS5vcGVuKCJIRUFEIixQdCwhMSks''@;'; + put 'put ''U2kuc2VuZChudWxsKSwhKFNpLnN0YXR1cz49MjAwJiZTaS5zdGF0dXM8MzAwfHwzMDQ9PT1TaS5zdGF0dXMpKXRocm93IG5ldyBFcnJvcigiQ291bGRuJ3QgbG9hZCAiK1B0KyIuIFN0YXR1czogIitTaS5zdGF0dXMpO3ZhciBsZSwkbz1OdW1iZXIoU2kuZ2V0UmVzcG9uc2VIZWFkZXIoIkNv''@;'; + put 'put ''bnRlbnQtbGVuZ3RoIikpLFYxPShsZT1TaS5nZXRSZXNwb25zZUhlYWRlcigiQWNjZXB0LVJhbmdlcyIpKSYmImJ5dGVzIj09PWxlLGxzPShsZT1TaS5nZXRSZXNwb25zZUhlYWRlcigiQ29udGVudC1FbmNvZGluZyIpKSYmImd6aXAiPT09bGUsTW49MTA0ODU3NjtWMXx8KE1uPSRvKTt2YXIg''@;'; + put 'put ''aTI9dGhpcztpMi5zZXREYXRhR2V0dGVyKGZ1bmN0aW9uKG8yKXt2YXIgamM9bzIqTW4sQXM9KG8yKzEpKk1uLTE7aWYoQXM9TWF0aC5taW4oQXMsJG8tMSksdm9pZCAwPT09aTIuY2h1bmtzW28yXSYmKGkyLmNodW5rc1tvMl09ZnVuY3Rpb24obzIsamMpe2lmKG8yPmpjKXRocm93IG5ldyBF''@;'; + put 'put ''cnJvcigiaW52YWxpZCByYW5nZSAoIitvMisiLCAiK2pjKyIpIG9yIG5vIGJ5dGVzIHJlcXVlc3RlZCEiKTtpZihqYz4kby0xKXRocm93IG5ldyBFcnJvcigib25seSAiKyRvKyIgYnl0ZXMgYXZhaWxhYmxlISBwcm9ncmFtbWVyIGVycm9yISIpO3ZhciBBcz1uZXcgWE1MSHR0cFJlcXVlc3Q7''@;'; + put 'put ''aWYoQXMub3BlbigiR0VUIixQdCwhMSksJG8hPT1NbiYmQXMuc2V0UmVxdWVzdEhlYWRlcigiUmFuZ2UiLCJieXRlcz0iK28yKyItIitqYyksInVuZGVmaW5lZCIhPXR5cGVvZiBVaW50OEFycmF5JiYoQXMucmVzcG9uc2VUeXBlPSJhcnJheWJ1ZmZlciIpLEFzLm92ZXJyaWRlTWltZVR5cGUm''@;'; + put 'put ''JkFzLm92ZXJyaWRlTWltZVR5cGUoInRleHQvcGxhaW47IGNoYXJzZXQ9eC11c2VyLWRlZmluZWQiKSxBcy5zZW5kKG51bGwpLCEoQXMuc3RhdHVzPj0yMDAmJkFzLnN0YXR1czwzMDB8fDMwND09PUFzLnN0YXR1cykpdGhyb3cgbmV3IEVycm9yKCJDb3VsZG4ndCBsb2FkICIrUHQrIi4gU3Rh''@;'; + put 'put ''dHVzOiAiK0FzLnN0YXR1cyk7cmV0dXJuIHZvaWQgMCE9PUFzLnJlc3BvbnNlP25ldyBVaW50OEFycmF5KEFzLnJlc3BvbnNlfHxbXSk6c28oQXMucmVzcG9uc2VUZXh0fHwiIiwhMCl9KGpjLEFzKSksdm9pZCAwPT09aTIuY2h1bmtzW28yXSl0aHJvdyBuZXcgRXJyb3IoImRvWEhSIGZhaWxl''@;'; + put 'put ''ZCEiKTtyZXR1cm4gaTIuY2h1bmtzW28yXX0pLChsc3x8ISRvKSYmKE1uPSRvPTEsJG89dGhpcy5nZXR0ZXIoMCkubGVuZ3RoLE1uPSRvLGNvbnNvbGUubG9nKCJMYXp5RmlsZXMgb24gZ3ppcCBmb3JjZXMgZG93bmxvYWQgb2YgdGhlIHdob2xlIGZpbGUgd2hlbiBsZW5ndGggaXMgYWNjZXNz''@;'; + put 'put ''ZWQiKSksdGhpcy5fbGVuZ3RoPSRvLHRoaXMuX2NodW5rU2l6ZT1Nbix0aGlzLmxlbmd0aEtub3duPSEwfSwidW5kZWZpbmVkIiE9dHlwZW9mIFhNTEh0dHBSZXF1ZXN0KXtpZighVyl0aHJvdyJDYW5ub3QgZG8gc3luY2hyb25vdXMgYmluYXJ5IFhIUnMgb3V0c2lkZSB3ZWJ3b3JrZXJzIGlu''@;'; + put 'put ''IG1vZGVybiBicm93c2Vycy4gVXNlIC0tZW1iZWQtZmlsZSBvciAtLXByZWxvYWQtZmlsZSBpbiBlbWNjIjt2YXIgWHQ9bmV3IGE7T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoWHQse2xlbmd0aDp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubGVuZ3RoS25vd258fHRoaXMuY2FjaGVMZW5n''@;'; + put 'put ''dGgoKSx0aGlzLl9sZW5ndGh9fSxjaHVua1NpemU6e2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmxlbmd0aEtub3dufHx0aGlzLmNhY2hlTGVuZ3RoKCksdGhpcy5fY2h1bmtTaXplfX19KTt2YXIgaHI9e2lzRGV2aWNlOiExLGNvbnRlbnRzOlh0fX1lbHNlIGhyPXtpc0RldmljZTohMSx1''@;'; + put 'put ''cmw6UHR9O3ZhciBQaT12bi5jcmVhdGVGaWxlKHB0LEl0LGhyLGZlLGl0KTtoci5jb250ZW50cz9QaS5jb250ZW50cz1oci5jb250ZW50czpoci51cmwmJihQaS5jb250ZW50cz1udWxsLFBpLnVybD1oci51cmwpLE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKFBpLHt1c2VkQnl0ZXM6e2dldDpm''@;'; + put 'put ''dW5jdGlvbigpe3JldHVybiB0aGlzLmNvbnRlbnRzLmxlbmd0aH19fSk7dmFyIGpuPXt9O3JldHVybiBPYmplY3Qua2V5cyhQaS5zdHJlYW1fb3BzKS5mb3JFYWNoKGZ1bmN0aW9uKEFvKXt2YXIgU2k9UGkuc3RyZWFtX29wc1tBb107am5bQW9dPWZ1bmN0aW9uKCl7aWYoIXZuLmZvcmNlTG9h''@;'; + put 'put ''ZEZpbGUoUGkpKXRocm93IG5ldyB2bi5FcnJub0Vycm9yKHZpLkVJTyk7cmV0dXJuIFNpLmFwcGx5KG51bGwsYXJndW1lbnRzKX19KSxqbi5yZWFkPWZ1bmN0aW9uKFNpLCRvLGxlLFYxLGxzKXtpZighdm4uZm9yY2VMb2FkRmlsZShQaSkpdGhyb3cgbmV3IHZuLkVycm5vRXJyb3IodmkuRUlP''@;'; + put 'put ''KTt2YXIgTW49U2kubm9kZS5jb250ZW50cztpZihscz49TW4ubGVuZ3RoKXJldHVybiAwO3ZhciB4bj1NYXRoLm1pbihNbi5sZW5ndGgtbHMsVjEpO2lmKE8oeG4+PTApLE1uLnNsaWNlKWZvcih2YXIgaTI9MDtpMjx4bjtpMisrKSRvW2xlK2kyXT1NbltscytpMl07ZWxzZSBmb3IoaTI9MDtp''@;'; + put 'put ''Mjx4bjtpMisrKSRvW2xlK2kyXT1Nbi5nZXQobHMraTIpO3JldHVybiB4bn0sUGkuc3RyZWFtX29wcz1qbixQaX0sY3JlYXRlUHJlbG9hZGVkRmlsZTpmdW5jdGlvbihwdCxJdCxQdCxmZSxpdCxhLFh0LGhyLFBpLGpuKXtCcm93c2VyLmluaXQoKTt2YXIgXz1JdD9VMC5yZXNvbHZlKFUwLmpv''@;'; + put 'put ''aW4yKHB0LEl0KSk6cHQ7ZnVuY3Rpb24gU2koJG8pe2Z1bmN0aW9uIGxlKGxzKXtqbiYmam4oKSxocnx8dm4uY3JlYXRlRGF0YUZpbGUocHQsSXQsbHMsZmUsaXQsUGkpLGEmJmEoKSxXMCgpfXZhciBWMT0hMTtaLnByZWxvYWRQbHVnaW5zLmZvckVhY2goZnVuY3Rpb24obHMpe1YxfHxscy5j''@;'; + put 'put ''YW5IYW5kbGUoXykmJihscy5oYW5kbGUoJG8sXyxsZSxmdW5jdGlvbigpe1h0JiZYdCgpLFcwKCl9KSxWMT0hMCl9KSxWMXx8bGUoJG8pfURpKCksInN0cmluZyI9PXR5cGVvZiBQdD9Ccm93c2VyLmFzeW5jTG9hZChQdCxmdW5jdGlvbigkbyl7U2koJG8pfSxYdCk6U2koUHQpfSxpbmRleGVk''@;'; + put 'put ''REI6ZnVuY3Rpb24oKXtyZXR1cm4gd2luZG93LmluZGV4ZWREQnx8d2luZG93Lm1vekluZGV4ZWREQnx8d2luZG93LndlYmtpdEluZGV4ZWREQnx8d2luZG93Lm1zSW5kZXhlZERCfSxEQl9OQU1FOmZ1bmN0aW9uKCl7cmV0dXJuIkVNX0ZTXyIrd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lfSxE''@;'; + put 'put ''Ql9WRVJTSU9OOjIwLERCX1NUT1JFX05BTUU6IkZJTEVfREFUQSIsc2F2ZUZpbGVzVG9EQjpmdW5jdGlvbihwdCxJdCxQdCl7SXQ9SXR8fGZ1bmN0aW9uKCl7fSxQdD1QdHx8ZnVuY3Rpb24oKXt9O3ZhciBmZT12bi5pbmRleGVkREIoKTt0cnl7dmFyIGl0PWZlLm9wZW4odm4uREJfTkFNRSgp''@;'; + put 'put ''LHZuLkRCX1ZFUlNJT04pfWNhdGNoKGEpe3JldHVybiBQdChhKX1pdC5vbnVwZ3JhZGVuZWVkZWQ9ZnVuY3Rpb24oKXtjb25zb2xlLmxvZygiY3JlYXRpbmcgZGIiKSxpdC5yZXN1bHQuY3JlYXRlT2JqZWN0U3RvcmUodm4uREJfU1RPUkVfTkFNRSl9LGl0Lm9uc3VjY2Vzcz1mdW5jdGlvbigp''@;'; + put 'put ''e3ZhciBocj1pdC5yZXN1bHQudHJhbnNhY3Rpb24oW3ZuLkRCX1NUT1JFX05BTUVdLCJyZWFkd3JpdGUiKSxQaT1oci5vYmplY3RTdG9yZSh2bi5EQl9TVE9SRV9OQU1FKSxqbj0wLF89MCxBbz1wdC5sZW5ndGg7ZnVuY3Rpb24gU2koKXswPT1fP0l0KCk6UHQoKX1wdC5mb3JFYWNoKGZ1bmN0''@;'; + put 'put ''aW9uKCRvKXt2YXIgbGU9UGkucHV0KHZuLmFuYWx5emVQYXRoKCRvKS5vYmplY3QuY29udGVudHMsJG8pO2xlLm9uc3VjY2Vzcz1mdW5jdGlvbigpeysram4rXz09QW8mJlNpKCl9LGxlLm9uZXJyb3I9ZnVuY3Rpb24oKXtfKyssam4rXz09QW8mJlNpKCl9fSksaHIub25lcnJvcj1QdH0saXQu''@;'; + put 'put ''b25lcnJvcj1QdH0sbG9hZEZpbGVzRnJvbURCOmZ1bmN0aW9uKHB0LEl0LFB0KXtJdD1JdHx8ZnVuY3Rpb24oKXt9LFB0PVB0fHxmdW5jdGlvbigpe307dmFyIGZlPXZuLmluZGV4ZWREQigpO3RyeXt2YXIgaXQ9ZmUub3Blbih2bi5EQl9OQU1FKCksdm4uREJfVkVSU0lPTil9Y2F0Y2goYSl7''@;'; + put 'put ''cmV0dXJuIFB0KGEpfWl0Lm9udXBncmFkZW5lZWRlZD1QdCxpdC5vbnN1Y2Nlc3M9ZnVuY3Rpb24oKXt2YXIgWHQ9aXQucmVzdWx0O3RyeXt2YXIgaHI9WHQudHJhbnNhY3Rpb24oW3ZuLkRCX1NUT1JFX05BTUVdLCJyZWFkb25seSIpfWNhdGNoKCRvKXtyZXR1cm4gdm9pZCBQdCgkbyl9dmFy''@;'; + put 'put ''IFBpPWhyLm9iamVjdFN0b3JlKHZuLkRCX1NUT1JFX05BTUUpLGpuPTAsXz0wLEFvPXB0Lmxlbmd0aDtmdW5jdGlvbiBTaSgpezA9PV8/SXQoKTpQdCgpfXB0LmZvckVhY2goZnVuY3Rpb24oJG8pe3ZhciBsZT1QaS5nZXQoJG8pO2xlLm9uc3VjY2Vzcz1mdW5jdGlvbigpe3ZuLmFuYWx5emVQ''@;'; + put 'put ''YXRoKCRvKS5leGlzdHMmJnZuLnVubGluaygkbyksdm4uY3JlYXRlRGF0YUZpbGUoVTAuZGlybmFtZSgkbyksVTAuYmFzZW5hbWUoJG8pLGxlLnJlc3VsdCwhMCwhMCwhMCksKytqbitfPT1BbyYmU2koKX0sbGUub25lcnJvcj1mdW5jdGlvbigpe18rKyxqbitfPT1BbyYmU2koKX19KSxoci5v''@;'; + put 'put ''bmVycm9yPVB0fSxpdC5vbmVycm9yPVB0fX0sXzA9e0RFRkFVTFRfUE9MTE1BU0s6NSxtYXBwaW5nczp7fSx1bWFzazo1MTEsY2FsY3VsYXRlQXQ6ZnVuY3Rpb24ocHQsSXQpe2lmKCIvIiE9PUl0WzBdKXt2YXIgUHQ7aWYoLTEwMD09PXB0KVB0PXZuLmN3ZCgpO2Vsc2V7dmFyIGZlPXZuLmdl''@;'; + put 'put ''dFN0cmVhbShwdCk7aWYoIWZlKXRocm93IG5ldyB2bi5FcnJub0Vycm9yKHZpLkVCQURGKTtQdD1mZS5wYXRofUl0PVUwLmpvaW4yKFB0LEl0KX1yZXR1cm4gSXR9LGRvU3RhdDpmdW5jdGlvbihwdCxJdCxQdCl7dHJ5e3ZhciBmZT1wdChJdCl9Y2F0Y2goaXQpe2lmKGl0JiZpdC5ub2RlJiZV''@;'; + put 'put ''MC5ub3JtYWxpemUoSXQpIT09VTAubm9ybWFsaXplKHZuLmdldFBhdGgoaXQubm9kZSkpKXJldHVybi12aS5FTk9URElSO3Rocm93IGl0fXJldHVybiBMdFtQdD4+Ml09ZmUuZGV2LEx0W1B0KzQ+PjJdPTAsTHRbUHQrOD4+Ml09ZmUuaW5vLEx0W1B0KzEyPj4yXT1mZS5tb2RlLEx0W1B0KzE2''@;'; + put 'put ''Pj4yXT1mZS5ubGluayxMdFtQdCsyMD4+Ml09ZmUudWlkLEx0W1B0KzI0Pj4yXT1mZS5naWQsTHRbUHQrMjg+PjJdPWZlLnJkZXYsTHRbUHQrMzI+PjJdPTAsTHRbUHQrMzY+PjJdPWZlLnNpemUsTHRbUHQrNDA+PjJdPTQwOTYsTHRbUHQrNDQ+PjJdPWZlLmJsb2NrcyxMdFtQdCs0OD4+Ml09''@;'; + put 'put ''ZmUuYXRpbWUuZ2V0VGltZSgpLzFlM3wwLEx0W1B0KzUyPj4yXT0wLEx0W1B0KzU2Pj4yXT1mZS5tdGltZS5nZXRUaW1lKCkvMWUzfDAsTHRbUHQrNjA+PjJdPTAsTHRbUHQrNjQ+PjJdPWZlLmN0aW1lLmdldFRpbWUoKS8xZTN8MCxMdFtQdCs2OD4+Ml09MCxMdFtQdCs3Mj4+Ml09ZmUuaW5v''@;'; + put 'put ''LDB9LGRvTXN5bmM6ZnVuY3Rpb24ocHQsSXQsUHQsZmUpe3ZhciBpdD1uZXcgVWludDhBcnJheSh0dC5zdWJhcnJheShwdCxwdCtQdCkpO3ZuLm1zeW5jKEl0LGl0LDAsUHQsZmUpfSxkb01rZGlyOmZ1bmN0aW9uKHB0LEl0KXtyZXR1cm4iLyI9PT0ocHQ9VTAubm9ybWFsaXplKHB0KSlbcHQu''@;'; + put 'put ''bGVuZ3RoLTFdJiYocHQ9cHQuc3Vic3RyKDAscHQubGVuZ3RoLTEpKSx2bi5ta2RpcihwdCxJdCwwKSwwfSxkb01rbm9kOmZ1bmN0aW9uKHB0LEl0LFB0KXtzd2l0Y2goNjE0NDAmSXQpe2Nhc2UgMzI3Njg6Y2FzZSA4MTkyOmNhc2UgMjQ1NzY6Y2FzZSA0MDk2OmNhc2UgNDkxNTI6YnJlYWs7''@;'; + put 'put ''ZGVmYXVsdDpyZXR1cm4tdmkuRUlOVkFMfXJldHVybiB2bi5ta25vZChwdCxJdCxQdCksMH0sZG9SZWFkbGluazpmdW5jdGlvbihwdCxJdCxQdCl7aWYoUHQ8PTApcmV0dXJuLXZpLkVJTlZBTDt2YXIgZmU9dm4ucmVhZGxpbmsocHQpLGl0PU1hdGgubWluKFB0LCRlKGZlKSksYT1fdFtJdCtp''@;'; + put 'put ''dF07cmV0dXJuIFFlKGZlLEl0LFB0KzEpLF90W0l0K2l0XT1hLGl0fSxkb0FjY2VzczpmdW5jdGlvbihwdCxJdCl7aWYoLTgmSXQpcmV0dXJuLXZpLkVJTlZBTDt2YXIgZmU9dm4ubG9va3VwUGF0aChwdCx7Zm9sbG93OiEwfSksaXQ9IiI7cmV0dXJuIDQmSXQmJihpdCs9InIiKSwyJkl0JiYo''@;'; + put 'put ''aXQrPSJ3IiksMSZJdCYmKGl0Kz0ieCIpLGl0JiZ2bi5ub2RlUGVybWlzc2lvbnMoZmUubm9kZSxpdCk/LXZpLkVBQ0NFUzowfSxkb0R1cDpmdW5jdGlvbihwdCxJdCxQdCl7dmFyIGZlPXZuLmdldFN0cmVhbShQdCk7cmV0dXJuIGZlJiZ2bi5jbG9zZShmZSksdm4ub3BlbihwdCxJdCwwLFB0''@;'; + put 'put ''LFB0KS5mZH0sZG9SZWFkdjpmdW5jdGlvbihwdCxJdCxQdCxmZSl7Zm9yKHZhciBpdD0wLGE9MDthPFB0O2ErKyl7dmFyIGhyPUx0W0l0Kyg4KmErNCk+PjJdLFBpPXZuLnJlYWQocHQsX3QsTHRbSXQrOCphPj4yXSxocixmZSk7aWYoUGk8MClyZXR1cm4tMTtpZihpdCs9UGksUGk8aHIpYnJl''@;'; + put 'put ''YWt9cmV0dXJuIGl0fSxkb1dyaXRldjpmdW5jdGlvbihwdCxJdCxQdCxmZSl7Zm9yKHZhciBpdD0wLGE9MDthPFB0O2ErKyl7dmFyIFBpPXZuLndyaXRlKHB0LF90LEx0W0l0KzgqYT4+Ml0sTHRbSXQrKDgqYSs0KT4+Ml0sZmUpO2lmKFBpPDApcmV0dXJuLTE7aXQrPVBpfXJldHVybiBpdH0s''@;'; + put 'put ''dmFyYXJnczowLGdldDpmdW5jdGlvbihwdCl7cmV0dXJuIF8wLnZhcmFyZ3MrPTQsTHRbXzAudmFyYXJncy00Pj4yXX0sZ2V0U3RyOmZ1bmN0aW9uKCl7cmV0dXJuIEYoXzAuZ2V0KCkpfSxnZXRTdHJlYW1Gcm9tRkQ6ZnVuY3Rpb24oKXt2YXIgcHQ9dm4uZ2V0U3RyZWFtKF8wLmdldCgpKTtp''@;'; + put 'put ''ZighcHQpdGhyb3cgbmV3IHZuLkVycm5vRXJyb3IodmkuRUJBREYpO3JldHVybiBwdH0sZ2V0U29ja2V0RnJvbUZEOmZ1bmN0aW9uKCl7dmFyIHB0PVNPQ0tGUy5nZXRTb2NrZXQoXzAuZ2V0KCkpO2lmKCFwdCl0aHJvdyBuZXcgdm4uRXJybm9FcnJvcih2aS5FQkFERik7cmV0dXJuIHB0fSxn''@;'; + put 'put ''ZXRTb2NrZXRBZGRyZXNzOmZ1bmN0aW9uKHB0KXt2YXIgSXQ9XzAuZ2V0KCksUHQ9XzAuZ2V0KCk7aWYocHQmJjA9PT1JdClyZXR1cm4gbnVsbDt2YXIgZmU9X19yZWFkX3NvY2thZGRyKEl0LFB0KTtpZihmZS5lcnJubyl0aHJvdyBuZXcgdm4uRXJybm9FcnJvcihmZS5lcnJubyk7cmV0dXJu''@;'; + put 'put ''IGZlLmFkZHI9RE5TLmxvb2t1cF9hZGRyKGZlLmFkZHIpfHxmZS5hZGRyLGZlfSxnZXQ2NDpmdW5jdGlvbigpe3ZhciBwdD1fMC5nZXQoKSxJdD1fMC5nZXQoKTtyZXR1cm4gTyhwdD49MD8wPT09SXQ6LTE9PT1JdCkscHR9LGdldFplcm86ZnVuY3Rpb24oKXtPKDA9PT1fMC5nZXQoKSl9fTtm''@;'; + put 'put ''dW5jdGlvbiBnYyhwdCxJdCl7XzAudmFyYXJncz1JdDt0cnl7dmFyIFB0PV8wLmdldFN0cigpO3JldHVybiB2bi51bmxpbmsoUHQpLDB9Y2F0Y2goZmUpe3JldHVybih2b2lkIDA9PT12bnx8IShmZSBpbnN0YW5jZW9mIHZuLkVycm5vRXJyb3IpKSYmZjIoZmUpLC1mZS5lcnJub319ZnVuY3Rp''@;'; + put 'put ''b24gZ2QocHQsSXQpe18wLnZhcmFyZ3M9SXQ7dHJ5e3ZhciBQdD1fMC5nZXRTdHJlYW1Gcm9tRkQoKSxpdD0oXzAuZ2V0KCksXzAuZ2V0KCkpLGE9XzAuZ2V0KCksWHQ9XzAuZ2V0KCksaHI9aXQ7cmV0dXJuIHZuLmxsc2VlayhQdCxocixYdCksTHRbYT4+Ml09UHQucG9zaXRpb24sUHQuZ2V0''@;'; + put 'put ''ZGVudHMmJjA9PT1ociYmMD09PVh0JiYoUHQuZ2V0ZGVudHM9bnVsbCksMH1jYXRjaChQaSl7cmV0dXJuKHZvaWQgMD09PXZufHwhKFBpIGluc3RhbmNlb2Ygdm4uRXJybm9FcnJvcikpJiZmMihQaSksLVBpLmVycm5vfX1mdW5jdGlvbiBCMShwdCxJdCl7XzAudmFyYXJncz1JdDt0cnl7dmFy''@;'; + put 'put ''IFB0PV8wLmdldFN0cmVhbUZyb21GRCgpLGZlPV8wLmdldCgpLGl0PV8wLmdldCgpO3JldHVybiBfMC5kb1JlYWR2KFB0LGZlLGl0KX1jYXRjaChhKXtyZXR1cm4odm9pZCAwPT09dm58fCEoYSBpbnN0YW5jZW9mIHZuLkVycm5vRXJyb3IpKSYmZjIoYSksLWEuZXJybm99fWZ1bmN0aW9uIGF1''@;'; + put 'put ''KHB0LEl0KXtfMC52YXJhcmdzPUl0O3RyeXt2YXIgUHQ9XzAuZ2V0U3RyZWFtRnJvbUZEKCksZmU9XzAuZ2V0KCksaXQ9XzAuZ2V0KCk7cmV0dXJuIF8wLmRvV3JpdGV2KFB0LGZlLGl0KX1jYXRjaChhKXtyZXR1cm4odm9pZCAwPT09dm58fCEoYSBpbnN0YW5jZW9mIHZuLkVycm5vRXJyb3Ip''@;'; + put 'put ''KSYmZjIoYSksLWEuZXJybm99fWZ1bmN0aW9uIFAxKHB0LEl0KXtfMC52YXJhcmdzPUl0O3RyeXt2YXIgUHQ9XzAuZ2V0KCksZmU9XzAuZ2V0KCksaXQ9XzAuZ2V0KCksYT1fMC5nZXQoKSxYdD1fMC5nZXQoKSxocj1fMC5nZXQoKTtocjw8PTEyO3ZhciBQaSxqbj0hMTtpZigtMT09PVh0KXtp''@;'; + put 'put ''ZighKFBpPVdnKEJ0LGZlKSkpcmV0dXJuLXZpLkVOT01FTTtZZyhQaSwwLGZlKSxqbj0hMH1lbHNle3ZhciBfPXZuLmdldFN0cmVhbShYdCk7aWYoIV8pcmV0dXJuLXZpLkVCQURGO3ZhciBBbz12bi5tbWFwKF8sdHQsUHQsZmUsaHIsaXQsYSk7UGk9QW8ucHRyLGpuPUFvLmFsbG9jYXRlZH1y''@;'; + put 'put ''ZXR1cm4gXzAubWFwcGluZ3NbUGldPXttYWxsb2M6UGksbGVuOmZlLGFsbG9jYXRlZDpqbixmZDpYdCxmbGFnczphfSxQaX1jYXRjaChTaSl7cmV0dXJuKHZvaWQgMD09PXZufHwhKFNpIGluc3RhbmNlb2Ygdm4uRXJybm9FcnJvcikpJiZmMihTaSksLVNpLmVycm5vfX1mdW5jdGlvbiBtYyhw''@;'; + put 'put ''dCxJdCl7XzAudmFyYXJncz1JdDt0cnl7dmFyIFB0PV8wLmdldFN0cigpLGZlPV8wLmdldCgpO3JldHVybiBfMC5kb1N0YXQodm4uc3RhdCxQdCxmZSl9Y2F0Y2goaXQpe3JldHVybih2b2lkIDA9PT12bnx8IShpdCBpbnN0YW5jZW9mIHZuLkVycm5vRXJyb3IpKSYmZjIoaXQpLC1pdC5lcnJu''@;'; + put 'put ''b319ZnVuY3Rpb24geDIocHQsSXQpe18wLnZhcmFyZ3M9SXQ7dHJ5e3ZhciBQdD1fMC5nZXRTdHJlYW1Gcm9tRkQoKSxmZT1fMC5nZXQoKTtyZXR1cm4gXzAuZG9TdGF0KHZuLnN0YXQsUHQucGF0aCxmZSl9Y2F0Y2goaXQpe3JldHVybih2b2lkIDA9PT12bnx8IShpdCBpbnN0YW5jZW9mIHZu''@;'; + put 'put ''LkVycm5vRXJyb3IpKSYmZjIoaXQpLC1pdC5lcnJub319dmFyIFBsPXtwcGlkOjEscGlkOjQyLHNpZDo0MixwZ2lkOjQyfTtmdW5jdGlvbiBkMyhwdCxJdCl7XzAudmFyYXJncz1JdDt0cnl7cmV0dXJuIFBsLnBpZH1jYXRjaChQdCl7cmV0dXJuKHZvaWQgMD09PXZufHwhKFB0IGluc3RhbmNl''@;'; + put 'put ''b2Ygdm4uRXJybm9FcnJvcikpJiZmMihQdCksLVB0LmVycm5vfX1mdW5jdGlvbiBRMihwdCxJdCl7XzAudmFyYXJncz1JdDt0cnl7dmFyIFB0PV8wLmdldFN0cmVhbUZyb21GRCgpO3N3aXRjaChfMC5nZXQoKSl7Y2FzZSAwOnJldHVybihpdD1fMC5nZXQoKSk8MD8tdmkuRUlOVkFMOnZuLm9w''@;'; + put 'put ''ZW4oUHQucGF0aCxQdC5mbGFncywwLGl0KS5mZDtjYXNlIDE6Y2FzZSAyOmNhc2UgMTM6Y2FzZSAxNDpjYXNlIDEzOmNhc2UgMTQ6cmV0dXJuIDA7Y2FzZSAzOnJldHVybiBQdC5mbGFncztjYXNlIDQ6dmFyIGl0PV8wLmdldCgpO3JldHVybiBQdC5mbGFnc3w9aXQsMDtjYXNlIDEyOmNhc2Ug''@;'; + put 'put ''MTI6cmV0dXJuIGl0PV8wLmdldCgpLGV0W2l0KzA+PjFdPTIsMDtjYXNlIDE2OmNhc2UgODpkZWZhdWx0OnJldHVybi12aS5FSU5WQUw7Y2FzZSA5OnJldHVybiBiMCh2aS5FSU5WQUwpLC0xfX1jYXRjaChocil7cmV0dXJuKHZvaWQgMD09PXZufHwhKGhyIGluc3RhbmNlb2Ygdm4uRXJybm9F''@;'; + put 'put ''cnJvcikpJiZmMihociksLWhyLmVycm5vfX1mdW5jdGlvbiBzMShwdCxJdCl7XzAudmFyYXJncz1JdDt0cnl7dmFyIFB0PV8wLmdldFN0cmVhbUZyb21GRCgpLGZlPV8wLmdldCgpLGl0PV8wLmdldCgpO3JldHVybiB2bi5yZWFkKFB0LF90LGZlLGl0KX1jYXRjaChhKXtyZXR1cm4odm9pZCAw''@;'; + put 'put ''PT09dm58fCEoYSBpbnN0YW5jZW9mIHZuLkVycm5vRXJyb3IpKSYmZjIoYSksLWEuZXJybm99fWZ1bmN0aW9uIFowKHB0LEl0KXtfMC52YXJhcmdzPUl0O3RyeXt2YXIgUHQ9XzAuZ2V0U3RyKCksZmU9XzAuZ2V0KCk7cmV0dXJuIF8wLmRvQWNjZXNzKFB0LGZlKX1jYXRjaChpdCl7cmV0dXJu''@;'; + put 'put ''KHZvaWQgMD09PXZufHwhKGl0IGluc3RhbmNlb2Ygdm4uRXJybm9FcnJvcikpJiZmMihpdCksLWl0LmVycm5vfX1mdW5jdGlvbiBmaShwdCxJdCl7XzAudmFyYXJncz1JdDt0cnl7dmFyIFB0PV8wLmdldFN0cigpLGZlPV8wLmdldCgpLGl0PV8wLmdldCgpO3JldHVybiB2bi5vcGVuKFB0LGZl''@;'; + put 'put ''LGl0KS5mZH1jYXRjaChYdCl7cmV0dXJuKHZvaWQgMD09PXZufHwhKFh0IGluc3RhbmNlb2Ygdm4uRXJybm9FcnJvcikpJiZmMihYdCksLVh0LmVycm5vfX1mdW5jdGlvbiBSMChwdCxJdCl7XzAudmFyYXJncz1JdDt0cnl7dmFyIFB0PV8wLmdldFN0cmVhbUZyb21GRCgpLGZlPV8wLmdldCgp''@;'; + put 'put ''O3N3aXRjaChmZSl7Y2FzZSAyMTUwOTpjYXNlIDIxNTA1OmNhc2UgMjE1MTA6Y2FzZSAyMTUxMTpjYXNlIDIxNTEyOmNhc2UgMjE1MDY6Y2FzZSAyMTUwNzpjYXNlIDIxNTA4OmNhc2UgMjE1MjM6cmV0dXJuIFB0LnR0eT8wOi12aS5FTk9UVFk7Y2FzZSAyMTUxOTppZighUHQudHR5KXJldHVy''@;'; + put 'put ''bi12aS5FTk9UVFk7dmFyIGl0PV8wLmdldCgpO3JldHVybiBMdFtpdD4+Ml09MCwwO2Nhc2UgMjE1MjA6cmV0dXJuIFB0LnR0eT8tdmkuRUlOVkFMOi12aS5FTk9UVFk7Y2FzZSAyMTUzMTpyZXR1cm4gaXQ9XzAuZ2V0KCksdm4uaW9jdGwoUHQsZmUsaXQpO2RlZmF1bHQ6ZjIoImJhZCBpb2N0''@;'; + put 'put ''bCBzeXNjYWxsICIrZmUpfX1jYXRjaChhKXtyZXR1cm4odm9pZCAwPT09dm58fCEoYSBpbnN0YW5jZW9mIHZuLkVycm5vRXJyb3IpKSYmZjIoYSksLWEuZXJybm99fWZ1bmN0aW9uIG1vKHB0LEl0KXtfMC52YXJhcmdzPUl0O3RyeXt2YXIgUHQ9XzAuZ2V0U3RyZWFtRnJvbUZEKCk7cmV0dXJu''@;'; + put 'put ''IHZuLmNsb3NlKFB0KSwwfWNhdGNoKGZlKXtyZXR1cm4odm9pZCAwPT09dm58fCEoZmUgaW5zdGFuY2VvZiB2bi5FcnJub0Vycm9yKSkmJmYyKGZlKSwtZmUuZXJybm99fWZ1bmN0aW9uIHJzKHB0LEl0KXtfMC52YXJhcmdzPUl0O3RyeXt2YXIgUHQ9XzAuZ2V0KCksZmU9XzAuZ2V0KCksaXQ9''@;'; + put 'put ''XzAubWFwcGluZ3NbUHRdO2lmKCFpdClyZXR1cm4gMDtpZihmZT09PWl0Lmxlbil7dmFyIGE9dm4uZ2V0U3RyZWFtKGl0LmZkKTtfMC5kb01zeW5jKFB0LGEsZmUsaXQuZmxhZ3MpLHZuLm11bm1hcChhKSxfMC5tYXBwaW5nc1tQdF09bnVsbCxpdC5hbGxvY2F0ZWQmJmViKGl0Lm1hbGxvYyl9''@;'; + put 'put ''cmV0dXJuIDB9Y2F0Y2goWHQpe3JldHVybih2b2lkIDA9PT12bnx8IShYdCBpbnN0YW5jZW9mIHZuLkVycm5vRXJyb3IpKSYmZjIoWHQpLC1YdC5lcnJub319dmFyIGhzPVMoWzgsMCwxLDAsMiwwLDEsMCwzLDAsMSwwLDIsMCwxLDAsNCwwLDEsMCwyLDAsMSwwLDMsMCwxLDAsMiwwLDEsMCw1''@;'; + put 'put ''LDAsMSwwLDIsMCwxLDAsMywwLDEsMCwyLDAsMSwwLDQsMCwxLDAsMiwwLDEsMCwzLDAsMSwwLDIsMCwxLDAsNiwwLDEsMCwyLDAsMSwwLDMsMCwxLDAsMiwwLDEsMCw0LDAsMSwwLDIsMCwxLDAsMywwLDEsMCwyLDAsMSwwLDUsMCwxLDAsMiwwLDEsMCwzLDAsMSwwLDIsMCwxLDAsNCwwLDEs''@;'; + put 'put ''MCwyLDAsMSwwLDMsMCwxLDAsMiwwLDEsMCw3LDAsMSwwLDIsMCwxLDAsMywwLDEsMCwyLDAsMSwwLDQsMCwxLDAsMiwwLDEsMCwzLDAsMSwwLDIsMCwxLDAsNSwwLDEsMCwyLDAsMSwwLDMsMCwxLDAsMiwwLDEsMCw0LDAsMSwwLDIsMCwxLDAsMywwLDEsMCwyLDAsMSwwLDYsMCwxLDAsMiww''@;'; + put 'put ''LDEsMCwzLDAsMSwwLDIsMCwxLDAsNCwwLDEsMCwyLDAsMSwwLDMsMCwxLDAsMiwwLDEsMCw1LDAsMSwwLDIsMCwxLDAsMywwLDEsMCwyLDAsMSwwLDQsMCwxLDAsMiwwLDEsMCwzLDAsMSwwLDIsMCwxLDBdLCJpOCIsVik7ZnVuY3Rpb24gbjIoKXt9ZnVuY3Rpb24gVDIocHQpe1ouZXhpdChw''@;'; + put 'put ''dCl9ZnVuY3Rpb24gVGkocHQpe1QyKHB0KX12YXIgQnM9eXQ7ZnVuY3Rpb24gTmYocHQpe3ZhciBmZSxpdDtOZi5jYWxsZWQ/ZmU9THRbKGl0PUx0W0JzPj4yXSk+PjJdOihOZi5jYWxsZWQ9ITAsWWwuVVNFUj1ZbC5MT0dOQU1FPSJ3ZWJfdXNlciIsWWwuUEFUSD0iLyIsWWwuUFdEPSIvIixZ''@;'; + put 'put ''bC5IT01FPSIvaG9tZS93ZWJfdXNlciIsWWwuTEFORz0iQy5VVEYtOCIsWWwuXz1aLnRoaXNQcm9ncmFtLGZlPW9lKDEwMjQpLGl0PW9lKDI1NiksTHRbaXQ+PjJdPWZlLEx0W0JzPj4yXT1pdCk7dmFyIGE9W10sWHQ9MDtmb3IodmFyIGhyIGluIHB0KSJzdHJpbmciPT10eXBlb2YgcHRbaHJd''@;'; + put 'put ''JiYoYS5wdXNoKFBpPWhyKyI9IitwdFtocl0pLFh0Kz1QaS5sZW5ndGgpO2lmKFh0PjEwMjQpdGhyb3cgbmV3IEVycm9yKCJFbnZpcm9ubWVudCBzaXplIGV4Y2VlZGVkIFRPVEFMX0VOVl9TSVpFISIpO2Zvcih2YXIgXz0wO188YS5sZW5ndGg7XysrKXt2YXIgUGk7VHIoUGk9YVtfXSxmZSks''@;'; + put 'put ''THRbaXQrNCpfPj4yXT1mZSxmZSs9UGkubGVuZ3RoKzF9THRbaXQrNCphLmxlbmd0aD4+Ml09MH15dCs9MTY7dmFyIFlsPXt9O2Z1bmN0aW9uIE5jKHB0KXtyZXR1cm4gMCE9PXB0JiYocHQ9RihwdCksWWwuaGFzT3duUHJvcGVydHkocHQpKT8oTmMucmV0JiZlYihOYy5yZXQpLE5jLnJldD13''@;'; + put 'put ''dChZbFtwdF0pKTowfWZ1bmN0aW9uIGNvKHB0KXt2YXIgSXQ9RGF0ZS5ub3coKTtyZXR1cm4gTHRbcHQ+PjJdPUl0LzFlM3wwLEx0W3B0KzQ+PjJdPUl0JTFlMyoxZTN8MCwwfXZhciBDND1KbixyMj1CbixXaT1CbixVcz1vcixtcz1ncixGMT1JbixLbD1JbjtmdW5jdGlvbiBfcygpe2YyKCJ0''@;'; + put 'put ''cmFwISIpfWZ1bmN0aW9uIFJpKHB0LEl0KXt0aHJvdyBaLnNldFRocmV3KHB0LEl0fHwxKSwibG9uZ2ptcCJ9ZnVuY3Rpb24gSDEocHQsSXQsUHQpe3JldHVybiB0dC5zZXQodHQuc3ViYXJyYXkoSXQsSXQrUHQpLHB0KSxwdH1mdW5jdGlvbiBKMihwdCxJdCxQdCl7aWYoMD09PXB0KXJldHVy''@;'; + put 'put ''biBiMCh2aS5FSU5WQUwpLC0xO3ZhciBmZT1GKHB0KSxpdD1GKEl0KTtyZXR1cm4iIj09PWZlfHwtMSE9PWZlLmluZGV4T2YoIj0iKT8oYjAodmkuRUlOVkFMKSwtMSk6KFlsLmhhc093blByb3BlcnR5KGZlKSYmIVB0fHwoWWxbZmVdPWl0LE5mKFlsKSksMCl9ZnVuY3Rpb24gQzAocHQpe3Zh''@;'; + put 'put ''ciBJdD1EYXRlLm5vdygpLzFlM3wwO3JldHVybiBwdCYmKEx0W3B0Pj4yXT1JdCksSXR9ZnVuY3Rpb24gdTEocHQpe3JldHVybiAwIT09cHQmJllnKHB0LDAsMTYpLDB9aWYoZ2w9Tj9mdW5jdGlvbigpe3ZhciBJdD1wcm9jZXNzLmhydGltZSgpO3JldHVybiAxZTMqSXRbMF0rSXRbMV0vMWU2''@;'; + put 'put ''fToidW5kZWZpbmVkIiE9dHlwZW9mIGRhdGVOb3c/ZGF0ZU5vdzoib2JqZWN0Ij09dHlwZW9mIHNlbGYmJnNlbGYucGVyZm9ybWFuY2UmJiJmdW5jdGlvbiI9PXR5cGVvZiBzZWxmLnBlcmZvcm1hbmNlLm5vdz9mdW5jdGlvbigpe3JldHVybiBzZWxmLnBlcmZvcm1hbmNlLm5vdygpfToib2Jq''@;'; + put 'put ''ZWN0Ij09dHlwZW9mIHBlcmZvcm1hbmNlJiYiZnVuY3Rpb24iPT10eXBlb2YgcGVyZm9ybWFuY2Uubm93P2Z1bmN0aW9uKCl7cmV0dXJuIHBlcmZvcm1hbmNlLm5vdygpfTpEYXRlLm5vdyx2bi5zdGF0aWNJbml0KCkscXQudW5zaGlmdChmdW5jdGlvbigpeyFaLm5vRlNJbml0JiYhdm4uaW5p''@;'; + put 'put ''dC5pbml0aWFsaXplZCYmdm4uaW5pdCgpfSkscHIucHVzaChmdW5jdGlvbigpe3ZuLmlnbm9yZVBlcm1pc3Npb25zPSExfSksbnIucHVzaChmdW5jdGlvbigpe3ZuLnF1aXQoKX0pLHF0LnVuc2hpZnQoZnVuY3Rpb24oKXtScy5pbml0KCl9KSxuci5wdXNoKGZ1bmN0aW9uKCl7UnMuc2h1dGRv''@;'; + put 'put ''d24oKX0pLE4pe3ZhciBtbD1MKDM1MTU5KSxwMz1MKDc1NzAxKTtqMC5zdGF0aWNJbml0KCl9TmYoWWwpLGxuPW9lKDQpLFF0PWduPWRlKHl0KSx5bj1kZShkbj1RdCtlciksTHRbbG4+PjJdPXluLGp0PSEwO3ZhciBZdT0hMTtmdW5jdGlvbiBzbyhwdCxJdCxQdCl7dmFyIGZlPVB0PjA/UHQ6''@;'; + put 'put ''JGUocHQpKzEsaXQ9bmV3IEFycmF5KGZlKSxhPVBlKHB0LGl0LDAsaXQubGVuZ3RoKTtyZXR1cm4gSXQmJihpdC5sZW5ndGg9YSksaXR9ZnVuY3Rpb24gWWEocHQpe2Zvcih2YXIgSXQ9W10sUHQ9MDtQdDxwdC5sZW5ndGg7UHQrKyl7dmFyIGZlPXB0W1B0XTtmZT4yNTUmJihZdSYmTyghMSwi''@;'; + put 'put ''Q2hhcmFjdGVyIGNvZGUgIitmZSsiICgiK1N0cmluZy5mcm9tQ2hhckNvZGUoZmUpKyIpICBhdCBvZmZzZXQgIitQdCsiIG5vdCBpbiAweDAwLTB4RkYuIiksZmUmPTI1NSksSXQucHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlKGZlKSl9cmV0dXJuIEl0LmpvaW4oIiIpfXZhciBhcz0iZnVuY3Rp''@;'; + put 'put ''b24iPT10eXBlb2YgYXRvYj9hdG9iOmZ1bmN0aW9uKHB0KXt2YXIgaXQsYSxYdCxocixQaSxqbixJdD0iQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLz0iLFB0PSIiLF89MDtwdD1wdC5yZXBsYWNlKC9bXkEtWmEtejAtOVwr''@;'; + put 'put ''XC9cPV0vZywiIik7ZG97WHQ9SXQuaW5kZXhPZihwdC5jaGFyQXQoXysrKSksaXQ9KDE1Jihocj1JdC5pbmRleE9mKHB0LmNoYXJBdChfKyspKSkpPDw0fChQaT1JdC5pbmRleE9mKHB0LmNoYXJBdChfKyspKSk+PjIsYT0oMyZQaSk8PDZ8KGpuPUl0LmluZGV4T2YocHQuY2hhckF0KF8rKykp''@;'; + put 'put ''KSxQdCs9U3RyaW5nLmZyb21DaGFyQ29kZShYdDw8Mnxocj4+NCksNjQhPT1QaSYmKFB0Kz1TdHJpbmcuZnJvbUNoYXJDb2RlKGl0KSksNjQhPT1qbiYmKFB0Kz1TdHJpbmcuZnJvbUNoYXJDb2RlKGEpKX13aGlsZShfPHB0Lmxlbmd0aCk7cmV0dXJuIFB0fTtmdW5jdGlvbiBYYShwdCl7aWYo''@;'; + put 'put ''ImJvb2xlYW4iPT10eXBlb2YgTiYmTil7dmFyIEl0O3RyeXtJdD1CdWZmZXIuZnJvbShwdCwiYmFzZTY0Iil9Y2F0Y2goYSl7SXQ9bmV3IEJ1ZmZlcihwdCwiYmFzZTY0Iil9cmV0dXJuIG5ldyBVaW50OEFycmF5KEl0LmJ1ZmZlcixJdC5ieXRlT2Zmc2V0LEl0LmJ5dGVMZW5ndGgpfXRyeXtm''@;'; + put 'put ''b3IodmFyIFB0PWFzKHB0KSxmZT1uZXcgVWludDhBcnJheShQdC5sZW5ndGgpLGl0PTA7aXQ8UHQubGVuZ3RoOysraXQpZmVbaXRdPVB0LmNoYXJDb2RlQXQoaXQpO3JldHVybiBmZX1jYXRjaChhKXt0aHJvdyBuZXcgRXJyb3IoIkNvbnZlcnRpbmcgYmFzZTY0IHN0cmluZyB0byBieXRlcyBm''@;'; + put 'put ''YWlsZWQuIil9fWZ1bmN0aW9uIFV1KHB0KXtpZihjYShwdCkpcmV0dXJuIFhhKHB0LnNsaWNlKHFvLmxlbmd0aCkpfWZ1bmN0aW9uIEExKHB0KXt0cnl7cmV0dXJuIFouZHluQ2FsbF9kKHB0KX1jYXRjaChJdCl7aWYoIm51bWJlciIhPXR5cGVvZiBJdCYmImxvbmdqbXAiIT09SXQpdGhyb3cg''@;'; + put 'put ''SXQ7Wi5zZXRUaHJldygxLDApfX1mdW5jdGlvbiBtaChwdCxJdCxQdCxmZSl7dHJ5e3JldHVybiBaLmR5bkNhbGxfZGRkZChwdCxJdCxQdCxmZSl9Y2F0Y2goaXQpe2lmKCJudW1iZXIiIT10eXBlb2YgaXQmJiJsb25nam1wIiE9PWl0KXRocm93IGl0O1ouc2V0VGhyZXcoMSwwKX19ZnVuY3Rp''@;'; + put 'put ''b24gX2EocHQsSXQpe3RyeXtyZXR1cm4gWi5keW5DYWxsX2RpKHB0LEl0KX1jYXRjaChQdCl7aWYoIm51bWJlciIhPXR5cGVvZiBQdCYmImxvbmdqbXAiIT09UHQpdGhyb3cgUHQ7Wi5zZXRUaHJldygxLDApfX1mdW5jdGlvbiBqcChwdCl7dHJ5e3JldHVybiBaLmR5bkNhbGxfaShwdCl9Y2F0''@;'; + put 'put ''Y2goSXQpe2lmKCJudW1iZXIiIT10eXBlb2YgSXQmJiJsb25nam1wIiE9PUl0KXRocm93IEl0O1ouc2V0VGhyZXcoMSwwKX19ZnVuY3Rpb24gazQocHQsSXQpe3RyeXtyZXR1cm4gWi5keW5DYWxsX2lpKHB0LEl0KX1jYXRjaChQdCl7aWYoIm51bWJlciIhPXR5cGVvZiBQdCYmImxvbmdqbXAi''@;'; + put 'put ''IT09UHQpdGhyb3cgUHQ7Wi5zZXRUaHJldygxLDApfX1mdW5jdGlvbiBzbChwdCxJdCxQdCl7dHJ5e3JldHVybiBaLmR5bkNhbGxfaWlpKHB0LEl0LFB0KX1jYXRjaChmZSl7aWYoIm51bWJlciIhPXR5cGVvZiBmZSYmImxvbmdqbXAiIT09ZmUpdGhyb3cgZmU7Wi5zZXRUaHJldygxLDApfX1m''@;'; + put 'put ''dW5jdGlvbiB1bChwdCxJdCxQdCxmZSxpdCl7dHJ5e3JldHVybiBaLmR5bkNhbGxfaWlpZGQocHQsSXQsUHQsZmUsaXQpfWNhdGNoKGEpe2lmKCJudW1iZXIiIT10eXBlb2YgYSYmImxvbmdqbXAiIT09YSl0aHJvdyBhO1ouc2V0VGhyZXcoMSwwKX19ZnVuY3Rpb24gWTAocHQsSXQsUHQsZmUp''@;'; + put 'put ''e3RyeXtyZXR1cm4gWi5keW5DYWxsX2lpaWkocHQsSXQsUHQsZmUpfWNhdGNoKGl0KXtpZigibnVtYmVyIiE9dHlwZW9mIGl0JiYibG9uZ2ptcCIhPT1pdCl0aHJvdyBpdDtaLnNldFRocmV3KDEsMCl9fWZ1bmN0aW9uIHZzKHB0LEl0LFB0LGZlLGl0KXt0cnl7cmV0dXJuIFouZHluQ2FsbF9p''@;'; + put 'put ''aWlpaShwdCxJdCxQdCxmZSxpdCl9Y2F0Y2goYSl7aWYoIm51bWJlciIhPXR5cGVvZiBhJiYibG9uZ2ptcCIhPT1hKXRocm93IGE7Wi5zZXRUaHJldygxLDApfX1mdW5jdGlvbiBmYShwdCxJdCxQdCxmZSxpdCxhKXt0cnl7cmV0dXJuIFouZHluQ2FsbF9paWlpaWkocHQsSXQsUHQsZmUsaXQs''@;'; + put 'put ''YSl9Y2F0Y2goWHQpe2lmKCJudW1iZXIiIT10eXBlb2YgWHQmJiJsb25nam1wIiE9PVh0KXRocm93IFh0O1ouc2V0VGhyZXcoMSwwKX19ZnVuY3Rpb24gRm8ocHQsSXQsUHQsZmUsaXQsYSxYdCl7dHJ5e3JldHVybiBaLmR5bkNhbGxfaWlpaWlpaShwdCxJdCxQdCxmZSxpdCxhLFh0KX1jYXRj''@;'; + put 'put ''aChocil7aWYoIm51bWJlciIhPXR5cGVvZiBociYmImxvbmdqbXAiIT09aHIpdGhyb3cgaHI7Wi5zZXRUaHJldygxLDApfX1mdW5jdGlvbiBtZChwdCxJdCxQdCxmZSxpdCxhLFh0LGhyLFBpLGpuLF8pe3RyeXtyZXR1cm4gWi5keW5DYWxsX2lpaWlpaWlpaWlpKHB0LEl0LFB0LGZlLGl0LGEs''@;'; + put 'put ''WHQsaHIsUGksam4sXyl9Y2F0Y2goQW8pe2lmKCJudW1iZXIiIT10eXBlb2YgQW8mJiJsb25nam1wIiE9PUFvKXRocm93IEFvO1ouc2V0VGhyZXcoMSwwKX19ZnVuY3Rpb24geTEocHQpe3RyeXtaLmR5bkNhbGxfdihwdCl9Y2F0Y2goSXQpe2lmKCJudW1iZXIiIT10eXBlb2YgSXQmJiJsb25n''@;'; + put 'put ''am1wIiE9PUl0KXRocm93IEl0O1ouc2V0VGhyZXcoMSwwKX19ZnVuY3Rpb24gdzEocHQsSXQpe3RyeXtaLmR5bkNhbGxfdmkocHQsSXQpfWNhdGNoKFB0KXtpZigibnVtYmVyIiE9dHlwZW9mIFB0JiYibG9uZ2ptcCIhPT1QdCl0aHJvdyBQdDtaLnNldFRocmV3KDEsMCl9fWZ1bmN0aW9uIGxm''@;'; + put 'put ''KHB0LEl0LFB0KXt0cnl7Wi5keW5DYWxsX3ZpaShwdCxJdCxQdCl9Y2F0Y2goZmUpe2lmKCJudW1iZXIiIT10eXBlb2YgZmUmJiJsb25nam1wIiE9PWZlKXRocm93IGZlO1ouc2V0VGhyZXcoMSwwKX19ZnVuY3Rpb24gdmQocHQsSXQsUHQsZmUpe3RyeXtaLmR5bkNhbGxfdmlpaShwdCxJdCxQ''@;'; + put 'put ''dCxmZSl9Y2F0Y2goaXQpe2lmKCJudW1iZXIiIT10eXBlb2YgaXQmJiJsb25nam1wIiE9PWl0KXRocm93IGl0O1ouc2V0VGhyZXcoMSwwKX19ZnVuY3Rpb24gJGwocHQsSXQsUHQsZmUsaXQsYSxYdCl7dHJ5e1ouZHluQ2FsbF92aWlpZGRpKHB0LEl0LFB0LGZlLGl0LGEsWHQpfWNhdGNoKGhy''@;'; + put 'put ''KXtpZigibnVtYmVyIiE9dHlwZW9mIGhyJiYibG9uZ2ptcCIhPT1ocil0aHJvdyBocjtaLnNldFRocmV3KDEsMCl9fWZ1bmN0aW9uIHh1KHB0LEl0LFB0LGZlLGl0KXt0cnl7Wi5keW5DYWxsX3ZpaWlpKHB0LEl0LFB0LGZlLGl0KX1jYXRjaChhKXtpZigibnVtYmVyIiE9dHlwZW9mIGEmJiJs''@;'; + put 'put ''b25nam1wIiE9PWEpdGhyb3cgYTtaLnNldFRocmV3KDEsMCl9fWZ1bmN0aW9uIGx1KHB0LEl0LFB0LGZlLGl0LGEpe3RyeXtaLmR5bkNhbGxfdmlpaWlpKHB0LEl0LFB0LGZlLGl0LGEpfWNhdGNoKFh0KXtpZigibnVtYmVyIiE9dHlwZW9mIFh0JiYibG9uZ2ptcCIhPT1YdCl0aHJvdyBYdDta''@;'; + put 'put ''LnNldFRocmV3KDEsMCl9fWZ1bmN0aW9uIFR1KHB0LEl0LFB0LGZlLGl0LGEsWHQpe3RyeXtaLmR5bkNhbGxfdmlpaWlpaShwdCxJdCxQdCxmZSxpdCxhLFh0KX1jYXRjaChocil7aWYoIm51bWJlciIhPXR5cGVvZiBociYmImxvbmdqbXAiIT09aHIpdGhyb3cgaHI7Wi5zZXRUaHJldygxLDAp''@;'; + put 'put ''fX1mdW5jdGlvbiBzZihwdCxJdCxQdCxmZSxpdCxhLFh0LGhyLFBpLGpuKXt0cnl7Wi5keW5DYWxsX3ZpaWlpaWlpaWkocHQsSXQsUHQsZmUsaXQsYSxYdCxocixQaSxqbil9Y2F0Y2goXyl7aWYoIm51bWJlciIhPXR5cGVvZiBfJiYibG9uZ2ptcCIhPT1fKXRocm93IF87Wi5zZXRUaHJldygx''@;'; + put 'put ''LDApfX1aLmFzbUdsb2JhbEFyZz17TWF0aCxJbnQ4QXJyYXksSW50MTZBcnJheSxJbnQzMkFycmF5LFVpbnQ4QXJyYXksVWludDE2QXJyYXksVWludDMyQXJyYXksRmxvYXQzMkFycmF5LEZsb2F0NjRBcnJheSxOYU46TmFOLEluZmluaXR5OjEvMH0sWi5hc21MaWJyYXJ5QXJnPXthYm9ydDpm''@;'; + put 'put ''Mixhc3NlcnQ6TyxlbmxhcmdlTWVtb3J5OmJuLGdldFRvdGFsTWVtb3J5OlhuLGFib3J0T25DYW5ub3RHcm93TWVtb3J5Ok5uLGludm9rZV9kOkExLGludm9rZV9kZGRkOm1oLGludm9rZV9kaTpfYSxpbnZva2VfaTpqcCxpbnZva2VfaWk6azQsaW52b2tlX2lpaTpzbCxpbnZva2VfaWlpZGQ6''@;'; + put 'put ''dWwsaW52b2tlX2lpaWk6WTAsaW52b2tlX2lpaWlpOnZzLGludm9rZV9paWlpaWk6ZmEsaW52b2tlX2lpaWlpaWk6Rm8saW52b2tlX2lpaWlpaWlpaWlpOm1kLGludm9rZV92OnkxLGludm9rZV92aTp3MSxpbnZva2VfdmlpOmxmLGludm9rZV92aWlpOnZkLGludm9rZV92aWlpZGRpOiRsLGlu''@;'; + put 'put ''dm9rZV92aWlpaTp4dSxpbnZva2VfdmlpaWlpOmx1LGludm9rZV92aWlpaWlpOlR1LGludm9rZV92aWlpaWlpaWlpOnNmLF9fX2Fzc2VydF9mYWlsOm5sLF9fX2J1aWxkRW52aXJvbm1lbnQ6TmYsX19fY2xvY2tfZ2V0dGltZTpybCxfX19sb2NrOl9pLF9fX21hcF9maWxlOm91LF9fX3NldEVy''@;'; + put 'put ''ck5vOmIwLF9fX3N5c2NhbGwxMDpnYyxfX19zeXNjYWxsMTQwOmdkLF9fX3N5c2NhbGwxNDU6QjEsX19fc3lzY2FsbDE0NjphdSxfX19zeXNjYWxsMTkyOlAxLF9fX3N5c2NhbGwxOTU6bWMsX19fc3lzY2FsbDE5Nzp4MixfX19zeXNjYWxsMjA6ZDMsX19fc3lzY2FsbDIyMTpRMixfX19zeXNj''@;'; + put 'put ''YWxsMzpzMSxfX19zeXNjYWxsMzM6WjAsX19fc3lzY2FsbDU6ZmksX19fc3lzY2FsbDU0OlIwLF9fX3N5c2NhbGw2Om1vLF9fX3N5c2NhbGw5MTpycyxfX191bmxvY2s6bjIsX19leGl0OlQyLF9jbG9ja19nZXR0aW1lOnNhLF9lbXNjcmlwdGVuX2FzbV9jb25zdF9paWk6UWksX2Vtc2NyaXB0''@;'; + put 'put ''ZW5fZ2V0X25vdzpnbCxfZW1zY3JpcHRlbl9nZXRfbm93X2lzX21vbm90b25pYzpBaSxfZW1zY3JpcHRlbl9tZW1jcHlfYmlnOkgxLF9leGl0OlRpLF9nZXRlbnY6TmMsX2dldHRpbWVvZmRheTpjbyxfbGx2bV9jZWlsX2Y2NDpDNCxfbGx2bV9mYWJzX2YzMjpyMixfbGx2bV9mYWJzX2Y2NDpX''@;'; + put 'put ''aSxfbGx2bV9mbG9vcl9mNjQ6VXMsX2xsdm1fcG93X2Y2NDptcyxfbGx2bV9zcXJ0X2YzMjpGMSxfbGx2bV9zcXJ0X2Y2NDpLbCxfbGx2bV90cmFwOl9zLF9sb25nam1wOlJpLF9zZXRlbnY6SjIsX3RpbWU6QzAsX3RpbWVzOnUxLERZTkFNSUNUT1BfUFRSOmxuLHRlbXBEb3VibGVQdHI6TWEs''@;'; + put 'put ''QUJPUlQ6RWUsU1RBQ0tUT1A6Z24sU1RBQ0tfTUFYOmRuLGN0dHpfaTg6aHN9O3ZhciAkZyxLbz1mdW5jdGlvbihwdCxJdCxQdCl7dmFyIGZlPW5ldyBwdC5JbnQ4QXJyYXkoUHQpLGl0PW5ldyBwdC5JbnQxNkFycmF5KFB0KSxhPW5ldyBwdC5JbnQzMkFycmF5KFB0KSxYdD1uZXcgcHQuVWlu''@;'; + put 'put ''dDhBcnJheShQdCksaHI9bmV3IHB0LlVpbnQxNkFycmF5KFB0KSxqbj0obmV3IHB0LlVpbnQzMkFycmF5KFB0KSxuZXcgcHQuRmxvYXQzMkFycmF5KFB0KSksXz1uZXcgcHQuRmxvYXQ2NEFycmF5KFB0KSxBbz0wfEl0LkRZTkFNSUNUT1BfUFRSLFNpPTB8SXQudGVtcERvdWJsZVB0cixsZT0w''@;'; + put 'put ''fEl0LlNUQUNLVE9QLGxzPTB8SXQuY3R0el9pOCxNbj0wLHhuPTAsaTI9MCxqYz1wdC5OYU4sQXM9cHQuSW5maW5pdHksRG49MCxjZj1wdC5NYXRoLmZsb29yLGVvPXB0Lk1hdGguYWJzLEQwPXB0Lk1hdGguc3FydCxxbD1wdC5NYXRoLnBvdyxoYT1wdC5NYXRoLmNvcyxEYT1wdC5NYXRoLnNp''@;'; + put 'put ''bixUOD1wdC5NYXRoLnRhbixKcD1wdC5NYXRoLmFjb3MsWHA9cHQuTWF0aC5hc2luLFpmPXB0Lk1hdGguYXRhbixVbD1wdC5NYXRoLmF0YW4yLHpmPXB0Lk1hdGguZXhwLEl1PXB0Lk1hdGguY2VpbCxBcj1wdC5NYXRoLmltdWwseWQ9cHQuTWF0aC5jbHozMix3Mj1JdC5hYm9ydCx3ZD1JdC5l''@;'; + put 'put ''bmxhcmdlTWVtb3J5LEtwPUl0LmdldFRvdGFsTWVtb3J5LGZmPUl0LmFib3J0T25DYW5ub3RHcm93TWVtb3J5LENoPUl0Lmludm9rZV9kaSxiZD1JdC5pbnZva2VfaSxhMD1JdC5pbnZva2VfaWksRmw9SXQuaW52b2tlX2lpaSxKcz1JdC5pbnZva2VfaWlpaSx0YT1JdC5pbnZva2VfaWlpaWks''@;'; + put 'put ''YzE9SXQuaW52b2tlX2lpaWlpaWksWmM9SXQuaW52b2tlX3Ysc3M9SXQuaW52b2tlX3ZpLFoxPUl0Lmludm9rZV92aWksemM9SXQuaW52b2tlX3ZpaWksR2M9SXQuaW52b2tlX3ZpaWlpLGN1PUl0Lmludm9rZV92aWlpaWkseDQ9SXQuaW52b2tlX3ZpaWlpaWksUHI9SXQuX19fYXNzZXJ0X2Zh''@;'; + put 'put ''aWwsRk09SXQuX19fY2xvY2tfZ2V0dGltZSwkcD1JdC5fX19sb2NrLE84PUl0Ll9fX21hcF9maWxlLHFwPUl0Ll9fX3NldEVyck5vLHBmPUl0Ll9fX3N5c2NhbGwxMCxraD1JdC5fX19zeXNjYWxsMTQwLGU2PUl0Ll9fX3N5c2NhbGwxNDUsdDY9SXQuX19fc3lzY2FsbDE0NixSOD1JdC5fX19z''@;'; + put 'put ''eXNjYWxsMTkyLEFjPUl0Ll9fX3N5c2NhbGwxOTUsR2Y9SXQuX19fc3lzY2FsbDE5NyxzYj1JdC5fX19zeXNjYWxsMjAsX2Q9SXQuX19fc3lzY2FsbDIyMSxtOT1JdC5fX19zeXNjYWxsMyx0bT1JdC5fX19zeXNjYWxsMzMsQjg9SXQuX19fc3lzY2FsbDUsbjY9SXQuX19fc3lzY2FsbDU0LEp1''@;'; + put 'put ''PUl0Ll9fX3N5c2NhbGw2LFQ0PUl0Ll9fX3N5c2NhbGw5MSxyNj1JdC5fX191bmxvY2ssSTQ9SXQuX2Vtc2NyaXB0ZW5fYXNtX2NvbnN0X2lpaSxubT1JdC5fZW1zY3JpcHRlbl9tZW1jcHlfYmlnLFh1PUl0Ll9leGl0LER1PUl0Ll9nZXRlbnYsZzM9SXQuX2dldHRpbWVvZmRheSxibD1JdC5f''@;'; + put 'put ''bGx2bV90cmFwLHplPUl0Ll9sb25nam1wLFZ0PUl0Ll9zZXRlbnYsaG49SXQuX3RpbWUsUm49SXQuX3RpbWVzO2Z1bmN0aW9uIGVpKGwsYyl7bHw9MCxjfD0wO3ZhciBSZSxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLEs9MCxwZT0wLGdlPTAsYmU9MCxPZT0w''@;'; + put 'put ''LExlPTA7UmU9bGUsbGU9bGUrMTZ8MCxiPVJlKzh8MCxMZT00LE9lPTB8QjAoNDApLGFbT2U+PjJdPTAsSz1SZSxNbj0wLGY9MHxhMCgyOSwwfGwpLHA9TW4sTW49MCwwIT0oMHxwKSYwIT0oMHx4bik/KChtPTB8Z2koMHxhW3A+PjJdLDB8T2UsMHxMZSkpfHx6ZSgwfHAsMHx4biksRG49eG4p''@;'; + put 'put ''Om09LTE7ZTpkb3tpZigxIT0oMHxtKSlpZihNbj0wLGJlPTB8YTAoMjMsZjw8M3wwKSxwPU1uLE1uPTAsMCE9KDB8cCkmMCE9KDB8eG4pPyhmPTB8Z2koMHxhW3A+PjJdLDB8T2UsMHxMZSksZnx8emUoMHxwLDB8eG4pLERuPXhuKTpmPS0xLDEhPSgwfGYpKXtpZigwfGZlWzE5NDk1NF0pe2lm''@;'; + put 'put ''KE1uPTAsZj0wfGJkKDMpLHA9TW4sTW49MCwwIT0oMHxwKSYwIT0oMHx4bik/KChtPTB8Z2koMHxhW3A+PjJdLDB8T2UsMHxMZSkpfHx6ZSgwfHAsMHx4biksRG49eG4pOm09LTEsMT09KDB8bSkpe0Q9MCxrPTAsTT0wLGI9MCx3PTAsYz1iZSxBPWJlLGY9RG4sbT0wLGdlPTc0O2JyZWFrfXBl''@;'; + put 'put ''PWZ9ZWxzZSBwZT0wO2lmKE1uPTAsZj0wfEZsKDk3LDB8bCwxMTAwNjQpLHA9TW4sTW49MCwwIT0oMHxwKSYwIT0oMHx4bik/KChtPTB8Z2koMHxhW3A+PjJdLDB8T2UsMHxMZSkpfHx6ZSgwfHAsMHx4biksRG49eG4pOm09LTEsMSE9KDB8bSkpe2FbNDczMjNdPTA7dDpkb3tpZigwfGYmJih3''@;'; + put 'put ''PTB8ZmVbZj4+MF0sdzw8MjQ+PjI0KSlmb3IoQT1mLHA9dyxtPTA7Oyl7aWYodz1BKzF8MCwhKHA8PDI0Pj4yNCkpYnJlYWsgdDtzd2l0Y2gocDw8MjQ+PjI0fDApe2Nhc2UgOTk6Zj04LGdlPTE2O2JyZWFrO2Nhc2UgMTA1OmY9MTgsZ2U9MTY7YnJlYWs7Y2FzZSAxMDk6Zj0xLGdlPTE2O2Jy''@;'; + put 'put ''ZWFrO2Nhc2UgMTE0OmY9NCxnZT0xNjticmVhaztjYXNlIDExNTpmPTIsZ2U9MTY7YnJlYWs7ZGVmYXVsdDpmPW19MTY9PSgwfGdlKSYmKGdlPTAsYVs0NzMyM109Znw9bSksQT13LHA9MHxmZVt3Pj4wXSxtPWZ9fXdoaWxlKDApO2lmKDB8YyYmKE1uPTAsSnMoMjAsMCwxMTAwNjgsMHxiKSxm''@;'; + put 'put ''PU1uLE1uPTAsMCE9KDB8ZikmMCE9KDB8eG4pPygocD0wfGdpKDB8YVtmPj4yXSwwfE9lLDB8TGUpKXx8emUoMHxmLDB8eG4pLERuPXhuKTpwPS0xLDE9PSgwfHApKSl7RD0wLGs9cGUsTT0wLGI9MCx3PTAsYz1iZSxBPWJlLGY9RG4sbT0wLGdlPTc0O2JyZWFrfWlmKE1uPTAsRz0wfEZsKDk4''@;'; + put 'put ''LDB8bCwwKSxmPU1uLE1uPTAsMCE9KDB8ZikmMCE9KDB8eG4pPygocD0wfGdpKDB8YVtmPj4yXSwwfE9lLDB8TGUpKXx8emUoMHxmLDB8eG4pLERuPXhuKTpwPS0xLDEhPSgwfHApKXtpZihNPTB8YVtHKzE2Pj4yXSwyJmFbNDczMjNdfDAmJihNbj0wLFoxKDI2LDB8YVsxNTcxMl0sMHxNKSxm''@;'; + put 'put ''PU1uLE1uPTAsMCE9KDB8ZikmMCE9KDB8eG4pPygocD0wfGdpKDB8YVtmPj4yXSwwfE9lLDB8TGUpKXx8emUoMHxmLDB8eG4pLERuPXhuKTpwPS0xLDE9PSgwfHApKSl7RD0wLGs9cGUsTT0wLGI9MCx3PUcsYz1iZSxBPWJlLGY9RG4sbT0wLGdlPTc0O2JyZWFrfWlmKE1uPTAsbT0wfGEwKDI1''@;'; + put 'put ''LDB8bCksZj1NbixNbj0wLDAhPSgwfGYpJjAhPSgwfHhuKT8oKHA9MHxnaSgwfGFbZj4+Ml0sMHxPZSwwfExlKSl8fHplKDB8ZiwwfHhuKSxEbj14bik6cD0tMSwxIT0oMHxwKSl7Zm9yKEQ9MDttOyl7aWYoTW49MCxmPTB8RmwoOTksMHxsLDB8bSkscD1NbixNbj0wLDAhPSgwfHApJjAhPSgw''@;'; + put 'put ''fHhuKT8oKEE9MHxnaSgwfGFbcD4+Ml0sMHxPZSwwfExlKSl8fHplKDB8cCwwfHhuKSxEbj14bik6QT0tMSwxPT0oMHxBKSl7az1wZSxNPTAsYj0wLHc9RyxjPWJlLEE9YmUsZj1EbixtPTAsZ2U9NzQ7YnJlYWsgZX1mb3Iodz1EO2Y7KXsyPT0oMHxhWzQ3MTM0XSkmJjAhPSgwfGFbOCsoMHxh''@;'; + put 'put ''W2YrMTY+PjJdKT4+Ml0pfHwoZ2U9MzIpO3Q6ZG97aWYoMzI9PSgwfGdlKSl7Z2U9MDtkb3tpZigwfGZlWzE5NDk1NF0pe2lmKChiPSgwfGFbYVsoMz09KDB8KGs9MyZhW2Y+PjJdKSk/ZjpmKzQ4fDApKzQwPj4yXT4+Ml0pPj4+NCk+Pj4wPihrPSgwfGFbYVsoMj09KDB8ayk/ZjpmKy00OHww''@;'; + put 'put ''KSs0MD4+Ml0+PjJdKT4+PjQpPj4+MCl7aWYoTW49MCxwPTB8SnMoMzQsMHxwZSwwfGssMHxiKSxBPU1uLE1uPTAsMCE9KDB8QSkmMCE9KDB8eG4pPygoYz0wfGdpKDB8YVtBPj4yXSwwfE9lLDB8TGUpKXx8emUoMHxBLDB8eG4pLERuPXhuKTpjPS0xLDE9PSgwfGMpKXtrPXBlLE09MCxiPTAs''@;'; + put 'put ''dz1HLGM9YmUsQT1iZSxmPURuLG09MCxnZT03NDticmVhayBlfWlmKDB8cClicmVhayB0O2lmKE1uPTAsemMoNjQsMHxwZSwwfGssMHxiKSxwPU1uLE1uPTAsMCE9KDB8cCkmMCE9KDB8eG4pPygoQT0wfGdpKDB8YVtwPj4yXSwwfE9lLDB8TGUpKXx8emUoMHxwLDB8eG4pLERuPXhuKTpBPS0x''@;'; + put 'put ''LDE9PSgwfEEpKXtrPXBlLE09MCxiPTAsdz1HLGM9YmUsQT1iZSxmPURuLG09MCxnZT03NDticmVhayBlfWJyZWFrfWlmKE1uPTAscD0wfEpzKDM0LDB8cGUsMHxiLDB8ayksQT1NbixNbj0wLDAhPSgwfEEpJjAhPSgwfHhuKT8oKGM9MHxnaSgwfGFbQT4+Ml0sMHxPZSwwfExlKSl8fHplKDB8''@;'; + put 'put ''QSwwfHhuKSxEbj14bik6Yz0tMSwxPT0oMHxjKSl7az1wZSxNPTAsYj0wLHc9RyxjPWJlLEE9YmUsZj1EbixtPTAsZ2U9NzQ7YnJlYWsgZX1pZigwfHApYnJlYWsgdDtpZihNbj0wLHpjKDY0LDB8cGUsMHxiLDB8aykscD1NbixNbj0wLDAhPSgwfHApJjAhPSgwfHhuKT8oKEE9MHxnaSgwfGFb''@;'; + put 'put ''cD4+Ml0sMHxPZSwwfExlKSl8fHplKDB8cCwwfHhuKSxEbj14bik6QT0tMSwxPT0oMHxBKSl7az1wZSxNPTAsYj0wLHc9RyxjPWJlLEE9YmUsZj1EbixtPTAsZ2U9NzQ7YnJlYWsgZX1icmVha319d2hpbGUoMCk7aWYoYVtiZSsodzw8MykrND4+Ml09ZixNbj0wLGM9MHxhMCgzMCwwfGYpLHA9''@;'; + put 'put ''TW4sTW49MCwwIT0oMHxwKSYwIT0oMHx4bik/KChBPTB8Z2koMHxhW3A+PjJdLDB8T2UsMHxMZSkpfHx6ZSgwfHAsMHx4biksRG49eG4pOkE9LTEsMT09KDB8QSkpe2s9cGUsTT0wLGI9MCx3PUcsYz1iZSxBPWJlLGY9RG4sbT0wLGdlPTc0O2JyZWFrIGV9YVtiZSsodzw8Myk+PjJdPWMsdz13''@;'; + put 'put ''KzF8MH19d2hpbGUoMCk7aWYoTW49MCxmPTB8RmwoMTAwLDB8bCwwfGYpLHA9TW4sTW49MCwwIT0oMHxwKSYwIT0oMHx4bik/KChBPTB8Z2koMHxhW3A+PjJdLDB8T2UsMHxMZSkpfHx6ZSgwfHAsMHx4biksRG49eG4pOkE9LTEsMT09KDB8QSkpe2s9cGUsTT0wLGI9MCx3PUcsYz1iZSxBPWJl''@;'; + put 'put ''LGY9RG4sbT0wLGdlPTc0O2JyZWFrIGV9fWlmKE1uPTAsbT0wfEZsKDg2LDB8bCwwfG0pLGY9TW4sTW49MCwwIT0oMHxmKSYwIT0oMHx4bik/KChwPTB8Z2koMHxhW2Y+PjJdLDB8T2UsMHxMZSkpfHx6ZSgwfGYsMHx4biksRG49eG4pOnA9LTEsMT09KDB8cCkpe2s9cGUsTT0wLGI9MCx3PUcs''@;'; + put 'put ''Yz1iZSxBPWJlLGY9RG4sbT0wLGdlPTc0O2JyZWFrIGV9RD13fWlmKE1uPTAsYj0wfGEwKDMxLEQ8PDN8MCksZj1NbixNbj0wLDAhPSgwfGYpJjAhPSgwfHhuKT8oKHA9MHxnaSgwfGFbZj4+Ml0sMHxPZSwwfExlKSl8fHplKDB8ZiwwfHhuKSxEbj14bik6cD0tMSwxIT0oMHxwKSlpZihNbj0w''@;'; + put 'put ''LEdjKDI4LDB8YmUsMHxELDgsMTAxKSxmPU1uLE1uPTAsMCE9KDB8ZikmMCE9KDB8eG4pPygocD0wfGdpKDB8YVtmPj4yXSwwfE9lLDB8TGUpKXx8emUoMHxmLDB8eG4pLERuPXhuKTpwPS0xLDEhPSgwfHApKWlmKE1uPTAsc3MoMTEwLDIrKG09MHxhW00+PjJdKXwwKSxmPU1uLE1uPTAsMCE9''@;'; + put 'put ''KDB8ZikmMCE9KDB8eG4pPygocD0wfGdpKDB8YVtmPj4yXSwwfE9lLDB8TGUpKXx8emUoMHxmLDB8eG4pLERuPXhuKTpwPS0xLDEhPSgwfHApKXtmb3IoYz0odz0wfGFbTSsxNj4+Ml0pKyg0MCptfDApfDAsdz13Kyg0MCoobSsxfDApfDApfDAsUj0wfGFbMTU3MTJdLEE9MDshKCgwfEEpPj0o''@;'; + put 'put ''MHxEKSk7KXtpZigoMHxBKT4wJiYxNiZhWzQ3MzIzXXwwJiYoTW49MCxaMSgyNiwwfFIsMHxNKSxmPU1uLE1uPTAsMCE9KDB8ZikmMCE9KDB8eG4pPygocD0wfGdpKDB8YVtmPj4yXSwwfE9lLDB8TGUpKXx8emUoMHxmLDB8eG4pLERuPXhuKTpwPS0xLDE9PSgwfHApKSl7az1wZSxNPWIsdz1H''@;'; + put 'put ''LGM9YmUsQT1iZSxmPURuLG09UixnZT03NDticmVhayBlfWlmKCgwfChtPTB8YVsxMTIrKDB8YVsxNisoMHxhWygzPT0oMHwoaz0zJmFbKGY9MHxhW2JlKyhBPDwzKSs0Pj4yXSk+PjJdKSk/ZjpmKzQ4fDApKzQwPj4yXSk+PjJdKT4+Ml0pKT09KDB8KGY9MHxhWzExMisoMHxhWzE2KygwfGFb''@;'; + put 'put ''KDI9PSgwfGspP2Y6ZistNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSkpKXtpZihNbj0wLEdjKDI5LDB8TSwwfG0sMHx3LDB8YyksZj1NbixNbj0wLDAhPSgwfGYpJjAhPSgwfHhuKT8oKHA9MHxnaSgwfGFbZj4+Ml0sMHxPZSwwfExlKSl8fHplKDB8ZiwwfHhuKSxEbj14bik6cD0tMSwxPT0oMHxw''@;'; + put 'put ''KSl7az1wZSxNPWIsdz1HLGM9YmUsQT1iZSxmPURuLG09UixnZT03NDticmVhayBlfX1lbHNle2lmKE1uPTAsemMoNjUsMHxNLDB8ZiwwfHcpLGY9TW4sTW49MCwwIT0oMHxmKSYwIT0oMHx4bik/KChwPTB8Z2koMHxhW2Y+PjJdLDB8T2UsMHxMZSkpfHx6ZSgwfGYsMHx4biksRG49eG4pOnA9''@;'; + put 'put ''LTEsMT09KDB8cCkpe2s9cGUsTT1iLHc9RyxjPWJlLEE9YmUsZj1EbixtPVIsZ2U9NzQ7YnJlYWsgZX1pZihNbj0wLHpjKDY1LDB8TSwwfG0sMHxjKSxmPU1uLE1uPTAsMCE9KDB8ZikmMCE9KDB8eG4pPygocD0wfGdpKDB8YVtmPj4yXSwwfE9lLDB8TGUpKXx8emUoMHxmLDB8eG4pLERuPXhu''@;'; + put 'put ''KTpwPS0xLDE9PSgwfHApKXtrPXBlLE09Yix3PUcsYz1iZSxBPWJlLGY9RG4sbT1SLGdlPTc0O2JyZWFrIGV9fWlmKE1uPTAsZj0wfEpzKDM1LDB8TSwwfHcsMHxjKSxwPU1uLE1uPTAsMCE9KDB8cCkmMCE9KDB8eG4pPygobT0wfGdpKDB8YVtwPj4yXSwwfE9lLDB8TGUpKXx8emUoMHxwLDB8''@;'; + put 'put ''eG4pLERuPXhuKTptPS0xLDE9PSgwfG0pKXtrPXBlLE09Yix3PUcsYz1iZSxBPWJlLGY9RG4sbT1SLGdlPTc0O2JyZWFrIGV9aWYoMHxmKXtrPXBlLE09Yix3PUcsYz1iZSxBPWJlO2JyZWFrIGV9aWYoZj1iKyhBPDwzKXwwLE1uPTAsR2MoMzAsMHxLLDB8TSwwfGMsMHx3KSxwPU1uLE1uPTAs''@;'; + put 'put ''MCE9KDB8cCkmMCE9KDB8eG4pPygobT0wfGdpKDB8YVtwPj4yXSwwfE9lLDB8TGUpKXx8emUoMHxwLDB8eG4pLERuPXhuKTptPS0xLDE9PSgwfG0pKXtrPXBlLE09Yix3PUcsYz1iZSxBPWJlLGY9RG4sbT1SLGdlPTc0O2JyZWFrIGV9aWYoaz0wfGFbKG09SykrND4+Ml0sYVtmPj4yXT1hW20+''@;'; + put 'put ''PjJdLGFbZis0Pj4yXT1rLE1uPTAsc3MoMTExLDB8TSksZj1NbixNbj0wLDAhPSgwfGYpJjAhPSgwfHhuKT8oKHA9MHxnaSgwfGFbZj4+Ml0sMHxPZSwwfExlKSl8fHplKDB8ZiwwfHhuKSxEbj14bik6cD0tMSwxPT0oMHxwKSl7az1wZSxNPWIsdz1HLGM9YmUsQT1iZSxmPURuLG09UixnZT03''@;'; + put 'put ''NDticmVhayBlfUE9QSsxfDB9TW49MCxaYyg4KSxmPU1uLE1uPTAsMCE9KDB8ZikmMCE9KDB8eG4pPygocD0wfGdpKDB8YVtmPj4yXSwwfE9lLDB8TGUpKXx8emUoMHxmLDB8eG4pLERuPXhuKTpwPS0xLDEhPSgwfHApPyhNbj0wLGY9MHxhMCgzMiwwfEcpLHA9TW4sTW49MCwwIT0oMHxwKSYw''@;'; + put 'put ''IT0oMHx4bik/KChtPTB8Z2koMHxhW3A+PjJdLDB8T2UsMHxMZSkpfHx6ZSgwfHAsMHx4biksRG49eG4pOm09LTEsMSE9KDB8bSk/KGFbRysyMD4+Ml09ZixNbj0wLGY9MHxhMCgzMywwfEcpLHA9TW4sTW49MCwwIT0oMHxwKSYwIT0oMHx4bik/KChtPTB8Z2koMHxhW3A+PjJdLDB8T2UsMHxM''@;'; + put 'put ''ZSkpfHx6ZSgwfHAsMHx4biksRG49eG4pOm09LTEsMSE9KDB8bSk/KGFbRysyND4+Ml09ZixNbj0wLHpjKDY2LDB8RCwwfGIsMHxHKSxmPU1uLE1uPTAsMCE9KDB8ZikmMCE9KDB8eG4pPygocD0wfGdpKDB8YVtmPj4yXSwwfE9lLDB8TGUpKXx8emUoMHxmLDB8eG4pLERuPXhuKTpwPS0xLDEh''@;'; + put 'put ''PSgwfHApPyhPZT0wfFBmKDE4OTI5NiwxLDB8T2UsMHxMZSksTGU9RG4sZj1Nbj0wLE1uPTAsMCE9KDB8ZikmMCE9KDB8eG4pPygocD0wfGdpKDB8YVtmPj4yXSwwfE9lLDB8TGUpKXx8emUoMHxmLDB8eG4pLERuPXhuKTpwPS0xLDEhPSgwfHApPyhrPXBlLE09Yix3PUcsYz1iZSxBPWJlLGY9''@;'; + put 'put ''MCxtPVIsZ2U9NzQpOihrPXBlLE09Yix3PUcsYz1iZSxBPWJlLGY9RG4sbT1SLGdlPTc0KSk6KGs9cGUsTT1iLHc9RyxjPWJlLEE9YmUsZj1EbixtPVIsZ2U9NzQpKTooaz1wZSxNPWIsdz1HLGM9YmUsQT1iZSxmPURuLG09UixnZT03NCkpOihrPXBlLE09Yix3PUcsYz1iZSxBPWJlLGY9RG4s''@;'; + put 'put ''bT1SLGdlPTc0KSk6KGs9cGUsTT1iLHc9RyxjPWJlLEE9YmUsZj1EbixtPVIsZ2U9NzQpfWVsc2Ugaz1wZSxNPWIsdz1HLGM9YmUsQT1iZSxmPURuLG09MCxnZT03NDtlbHNlIGs9cGUsTT1iLHc9RyxjPWJlLEE9YmUsZj1EbixtPTAsZ2U9NzQ7ZWxzZSBrPXBlLE09MCx3PUcsYz1iZSxBPWJl''@;'; + put 'put ''LGY9RG4sbT0wLGdlPTc0fWVsc2UgRD0wLGs9cGUsTT0wLGI9MCx3PUcsYz1iZSxBPWJlLGY9RG4sbT0wLGdlPTc0fWVsc2UgRD0wLGs9cGUsTT0wLGI9MCx3PUcsYz1iZSxBPWJlLGY9RG4sbT0wLGdlPTc0fWVsc2UgRD0wLGs9cGUsTT0wLGI9MCx3PTAsYz1iZSxBPWJlLGY9RG4sbT0wLGdl''@;'; + put 'put ''PTc0fWVsc2UgRD0wLGs9MCxNPTAsYj0wLHc9MCxjPTAsQT1iZSxmPURuLG09MCxnZT03NDtlbHNlIEQ9MCxrPTAsTT0wLGI9MCx3PTAsYz0wLEE9MCxmPURuLG09MCxnZT03NH13aGlsZSgwKTtlOmZvcig7Oyl7aWYoNzQ9PSgwfGdlKSl7aWYoZ2U9MCwwfGYpe1I9bTtjb250aW51ZX1pZihN''@;'; + put 'put ''bj0wLHNzKDExMiwwfHcpLGY9TW4sTW49MCwwIT0oMHxmKSYwIT0oMHx4bik/KChwPTB8Z2koMHxhW2Y+PjJdLDB8T2UsMHxMZSkpfHx6ZSgwfGYsMHx4biksRG49eG4pOnA9LTEsMT09KDB8cCkpe2Y9RG4sQT1wPUEsYz1SPWMsdz1HPXcsYj1LPWIsTT1wZT1NLGs9YmU9ayxEPWdlPUQsZ2U9''@;'; + put 'put ''NzQ7Y29udGludWV9aWYoNCZhWzQ3MzIzXXwwJiYoTW49MCxjdSg4LDB8bSwwfHcsMHxELDB8TSwwfGMpLGY9TW4sTW49MCwwIT0oMHxmKSYwIT0oMHx4bik/KChwPTB8Z2koMHxhW2Y+PjJdLDB8T2UsMHxMZSkpfHx6ZSgwfGYsMHx4biksRG49eG4pOnA9LTEsMT09KDB8cCkpKXtmPURuLG09''@;'; + put 'put ''cD1tLEE9Uj1BLGM9Rz1jLHc9Sz13LGI9cGU9YixNPWJlPU0sRD1nZT1ELGdlPTc0O2NvbnRpbnVlfWlmKE1uPTAseDQoMTAsMHxsLDB8dywwfEQsMHxNLDB8YywwKSxmPU1uLE1uPTAsMCE9KDB8ZikmMCE9KDB8eG4pPygocD0wfGdpKDB8YVtmPj4yXSwwfE9lLDB8TGUpKXx8emUoMHxmLDB8''@;'; + put 'put ''eG4pLERuPXhuKTpwPS0xLDE9PSgwfHApKXtmPURuLG09cD1tLEE9Uj1BLGM9Rz1jLHc9Sz13LGI9cGU9YixNPWJlPU0sRD1nZT1ELGdlPTc0O2NvbnRpbnVlfVI9bX1pZigwfGZlWzE5NDk1NF0pe2lmKE1uPTAsc3MoMTEzLDB8ayksZj1NbixNbj0wLDAhPSgwfGYpJjAhPSgwfHhuKT8oKHA9''@;'; + put 'put ''MHxnaSgwfGFbZj4+Ml0sMHxPZSwwfExlKSl8fHplKDB8ZiwwfHhuKSxEbj14bik6cD0tMSwxPT0oMHxwKSl7Zj1EbixtPVIsZ2U9NzQ7Y29udGludWV9Zj0wfWVsc2UgZj0wO2Zvcig7ISgoMHxmKT49KDB8RCkpOyl7aWYoTW49MCxzcygxMDUsMHxhW00rKGY8PDMpKzQ+PjJdKSxwPU1uLE1u''@;'; + put 'put ''PTAsMCE9KDB8cCkmMCE9KDB8eG4pPygobT0wfGdpKDB8YVtwPj4yXSwwfE9lLDB8TGUpKXx8emUoMHxwLDB8eG4pLERuPXhuKTptPS0xLDE9PSgwfG0pKXtmPURuLG09UixnZT03NDtjb250aW51ZSBlfWY9ZisxfDB9aWYoTW49MCxzcygxMDUsMHxiKSxmPU1uLE1uPTAsMCE9KDB8ZikmMCE9''@;'; + put 'put ''KDB8eG4pPygocD0wfGdpKDB8YVtmPj4yXSwwfE9lLDB8TGUpKXx8emUoMHxmLDB8eG4pLERuPXhuKTpwPS0xLDEhPSgwfHApKWlmKE1uPTAsc3MoMTE0LDB8dyksZj1NbixNbj0wLDAhPSgwfGYpJjAhPSgwfHhuKT8oKHA9MHxnaSgwfGFbZj4+Ml0sMHxPZSwwfExlKSl8fHplKDB8ZiwwfHhu''@;'; + put 'put ''KSxEbj14bik6cD0tMSwxIT0oMHxwKSl7aWYoTW49MCxzcygxMDUsMHxBKSxmPU1uLE1uPTAsMCE9KDB8ZikmMCE9KDB8eG4pPygocD0wfGdpKDB8YVtmPj4yXSwwfE9lLDB8TGUpKXx8emUoMHxmLDB8eG4pLERuPXhuKTpwPS0xLDEhPSgwfHApKWJyZWFrO2Y9RG4sbT1SLGdlPTc0fWVsc2Ug''@;'; + put 'put ''Zj1EbixtPVIsZ2U9NzQ7ZWxzZSBmPURuLG09UixnZT03NH1GdCgwfE9lKSxsZT1SZX1mdW5jdGlvbiBmYihsLGMsZil7dmFyIHA7bHw9MCxfWyhjfD0wKT4+M109K19bYz4+M10rICtfWyhmfD0wKT4+M10sX1socD1jKzh8MCk+PjNdPStfW3A+PjNdKyArX1tmKzg+PjNdLGFbbD4+Ml09YVtj''@;'; + put 'put ''Pj4yXSxhW2wrND4+Ml09YVtjKzQ+PjJdLGFbbCs4Pj4yXT1hW2MrOD4+Ml0sYVtsKzEyPj4yXT1hW2MrMTI+PjJdfWZ1bmN0aW9uIGtkKGwsYyl7dmFyIGYscDtyZXR1cm4gYz0wfGw2KDB8YVsyNCsoY3w9MCk+PjJdLGx8PTApLCsoKygwfGFbbCs0ND4+Ml0pLysoMSsoMHxhW2MrMjQ+PjJd''@;'; + put 'put ''KXwwKSooK19bNTYrKHA9MHxhW2MrMzY+PjJdKT4+M10tKGY9K19bcCs0MD4+M10pKStmKX1mdW5jdGlvbiBtMyhsLGMpe3ZhciBmLHA7cmV0dXJuIHA9MHxsNigwfGFbMjArKGN8PTApPj4yXSxsfD0wKSwwfH5+KCgxLSsoMHxhW2wrNDQ+PjJdKS8rKDErKDB8YVtwKzI0Pj4yXSl8MCkpKigr''@;'; + put 'put ''X1s2NCsoYz0wfGFbcCszNj4+Ml0pPj4zXS0oZj0rX1tjKzQ4Pj4zXSkpK2YpfWZ1bmN0aW9uIGw2KGwsYyl7cmV0dXJuKGw9MHxtaVs2MyZhWyhsfD0wKT4+Ml1dKGwsOCsoY3w9MCl8MCw1MTIpKXx8UHIoMTEwMTU1LDExMDE2MSw0MjMsMTEwMTY5KSwobD0wfG1pWzYzJmFbKGw9MHxhW2wr''@;'; + put 'put ''MTY+PjJdKT4+Ml1dKGwsYysxNnwwLDUxMikpPzB8bDooUHIoMTEwMTgwLDExMDE2MSw0MjUsMTEwMTY5KSwwKX1mdW5jdGlvbiBZeihsLGMsZixwLG0sQSl7bHw9MCxjfD0wLG18PTAsQXw9MDt2YXIgRCxnZSxiZSxPZSxMZSxSZSxIZSxWZSx3PTAsYj0wLGs9MCxNPTAsUj0wLEc9MCxLPTAs''@;'; + put 'put ''cGU9MCxxZT0wLG50PTAsV2U9MCxvdD0wO2ZvcihWZT1sZSxsZT1sZSszMnwwLEhlPVZlKzE2fDAsYmU9VmUrOHwwLGs9VmUsdz0wfGFbMTEyKygwfGFbMTYrKDB8YVsoMz09KDMmYVsoZnw9MCk+PjJdfDApP2Y6Zis0OHwwKSs0MD4+Ml0pPj4yXSk+PjJdLDB8ZmVbKGdlPTB8YVs0KyhwfD0w''@;'; + put 'put ''KT4+Ml0pPj4wXT8odz1+figuNSooKHBlPStfW3crNDg+PjNdKSsoYj0rX1t3KzY0Pj4zXSkpKSxiPStrZChnZSxtKSk6KGI9K19bdys1Nj4+M10scGU9K19bdys0MD4+M10sdz0wfG0zKGdlLG0pLGI9LjUqKHBlK2IpKSxfW0E+PjNdPVI9KFI9K19bQT4+M10pPChLPSsoMHwocWU9fn5iKSkp''@;'; + put 'put ''P1I6SyxfWyhPZT1BKzh8MCk+PjNdPUc9KEc9K19bT2U+PjNdKTwocGU9KygwfHcpKT9HOnBlLF9bKExlPUErMTZ8MCk+PjNdPUs9KGI9K19bTGU+PjNdKT5LP2I6SyxfWyhSZT1BKzI0fDApPj4zXT1wZT0oYj0rX1tSZT4+M10pPnBlP2I6cGUsYVtrPj4yXT1xZSxhW2srND4+Ml09dyxUMChj''@;'; + put 'put ''LDExMDY4MixrKSxEPTB8YVtwPj4yXSxrPWdlLE09MSxwPXFlOyEoKDB8TSk+PSgwfEQpKTspMHxmZVsoaz1nZSsoNTYqTXwwKXwwKT4+MF0/cD1+fitrZChrLG0pOnc9MHxtMyhrLG0pLF9bQT4+M109b3Q9UjwobnQ9KygwfHApKT9SOm50LF9bT2U+PjNdPVdlPUc8KGI9KygwfHcpKT9HOmIs''@;'; + put 'put ''X1tMZT4+M109bnQ9Sz5udD9LOm50LF9bUmU+PjNdPWI9cGU+Yj9wZTpiLGFbYmU+PjJdPXAsYVtiZSs0Pj4yXT13LFQwKGMsMTEwNzA0LGJlKSxNPU0rMXwwLFI9b3QsRz1XZSxLPW50LHBlPWI7dz0wfGFbMTEyKygwfGFbMTYrKDB8YVsoMj09KDMmYVtmPj4yXXwwKT9mOmYrLTQ4fDApKzQw''@;'; + put 'put ''Pj4yXSk+PjJdKT4+Ml0sMHxmZVtrPj4wXT8odz1+figuNSooKG90PStfW3crNDg+PjNdKSsoYj0rX1t3KzY0Pj4zXSkpKSxiPStrZChrLG0pKTooYj0rX1t3KzU2Pj4zXSxvdD0rX1t3KzQwPj4zXSx3PTB8bTMoayxtKSxiPS41KihvdCtiKSksX1tBPj4zXT1SPChXZT0rKDB8KHFlPX5+Yikp''@;'; + put 'put ''KT9SOldlLF9bT2U+PjNdPUc8KG90PSsoMHx3KSk/RzpvdCxfW0xlPj4zXT1LPldlP0s6V2UsX1tSZT4+M109cGU+b3Q/cGU6b3QsYVtIZT4+Ml09cWUsYVtIZSs0Pj4yXT13LFQwKGMsMTEwNzE4LEhlKSxhW2w+PjJdPWFbQT4+Ml0sYVtsKzQ+PjJdPWFbQSs0Pj4yXSxhW2wrOD4+Ml09YVtB''@;'; + put 'put ''Kzg+PjJdLGFbbCsxMj4+Ml09YVtBKzEyPj4yXSxhW2wrMTY+PjJdPWFbQSsxNj4+Ml0sYVtsKzIwPj4yXT1hW0ErMjA+PjJdLGFbbCsyND4+Ml09YVtBKzI0Pj4yXSxhW2wrMjg+PjJdPWFbQSsyOD4+Ml0sbGU9VmV9ZnVuY3Rpb24gbVIobCl7dmFyIGM9MDtmb3IobD0wfHMwKGx8PTApO2w7''@;'; + put 'put ''KXtmb3IoYz0wfHMwKDB8YVtsKzE2Pj4yXSk7YzspYVtjKzMyPj4yXT0wfF9SKDB8YVtjKzI0Pj4yXSksYz0wfGFbYz4+Ml07bD0wfGFbbD4+Ml19fWZ1bmN0aW9uIGhiKGwpe3ZhciBjPTA7Zm9yKGw9MHxzMChsfD0wKTtsOyl7Zm9yKGM9MHxzMCgwfGFbbCsxNj4+Ml0pO2M7KTB8YVtjKzI0''@;'; + put 'put ''Pj4yXSYmd1IoYyksYz0wfGFbYz4+Ml07bD0wfGFbbD4+Ml19fWZ1bmN0aW9uIFljKGwsYyl7Y3w9MDt2YXIgZj0wO2ZvcihmPTB8czAobHw9MCk7Zjspe2ZvcihsPTB8czAoMHxhW2YrMTY+PjJdKTtsOylBUihsLGMpLGw9MHxhW2w+PjJdO2Y9MHxhW2Y+PjJdfX1mdW5jdGlvbiBpbShsKXt2''@;'; + put 'put ''YXIgYz0wLGY9MCxwPTAsbT0wLEE9MCx3PTA7Zm9yKHA9MHxzMChsfD0wKTtwOyl7Zm9yKHc9cCs4fDAsbT0wfHMwKDB8YVtwKzE2Pj4yXSk7bTspe2w9bSsyNHwwO2U6ZG97aWYoMHxhW2w+PjJdKWZvcig4JmFbNDczMjNdfDAmJkY4KG0sfn4rX1t3Pj4zXSksQT1tKzMyfDAsR00oMHxhW0E+''@;'; + put 'put ''PjJdKSxjPTB8YVtsPj4yXSxmPW0rMjh8MCxsPTA7Oyl7aWYoKDB8bCk+PSgwfGMpKWJyZWFrIGU7YVs0NCsoMHxhWygwfGFbZj4+Ml0pKyhsPDwyKT4+Ml0pPj4yXT0xKygwfGFbKDB8YVs0KygwfGFbQT4+Ml0pPj4yXSkrKDEyKmx8MCkrND4+Ml0pLGw9bCsxfDB9fXdoaWxlKDApO209MHxh''@;'; + put 'put ''W20+PjJdfXA9MHxhW3A+PjJdfX1mdW5jdGlvbiBGOChsLGMpe2N8PTA7dmFyIEEsYixmPTAscD0wLG09MCx3PTAsaz0wLE09MDtiPWxlLGxlPWxlKzMyfDAsZj1iLEE9MjQrKGx8PTApfDA7ZTpkb3tpZigoMHxhW0E+PjJdKT49Milmb3Iodz0wfGFbMTU3MTJdLE09K19bbCs4Pj4zXSxrPStf''@;'; + put 'put ''W2wrMTY+PjNdLGFbZj4+Ml09YyxfW2YrOD4+M109TSxfW2YrMTY+PjNdPWssVDAodywxMTA3MzksZiksbT1sKzMyfDAsbD1sKzI4fDAsYz0wOzspe2lmKCgwfGMpPj0oMHxhW0E+PjJdKSlicmVhayBlO3A9MHxhWygwfGFbNCsoMHxhW20+PjJdKT4+Ml0pKygxMipjfDApKzg+PjJdO3Q6ZG97''@;'; + put 'put ''aWYoMHxwdShwKSlmb3IodlIodywwfGFbKDB8YVtsPj4yXSkrKGM8PDIpPj4yXSksX3UoMTEwNzU5LHcpLGY9MHxtaVs2MyZhW3A+PjJdXShwLDAsMTI4KTs7KXtpZighZilicmVhayB0O191KDExMDc2NCx3KSx2Uih3LDB8YVsoMHxhW2w+PjJdKSsoYVtmPj4yXTw8Mik+PjJdKSxfdSgxNTM1''@;'; + put 'put ''OTksdyksZj0wfG1pWzYzJmFbcD4+Ml1dKHAsZiw4KX19d2hpbGUoMCk7Yz1jKzF8MH19d2hpbGUoMCk7bGU9Yn1mdW5jdGlvbiB2UihsLGMpe2x8PTA7dmFyIG0sZj0wLHA9MCxBPTAsdz0wLGI9MCxrPTA7bT1sZSxsZT1sZSs4MHwwLHA9bSs0MHwwLGY9bSwwfGZlWyhjfD0wKT4+MF0/KGI9''@;'; + put 'put ''K19bYys4Pj4zXSx3PStfW2MrMTY+PjNdLGs9K19bYysyND4+M10scD0wfG9tKDB8YVtjKzMyPj4yXSksQT0wfG9tKDB8YVtjKzM2Pj4yXSksX1tmPj4zXT1iLF9bZis4Pj4zXT13LF9bZisxNj4+M109YixfW2YrMjQ+PjNdPWssYVtmKzMyPj4yXT1wLGFbZiszNj4+Ml09QSxUMChsLDExMDc3''@;'; + put 'put ''MCxmKSk6KGs9K19bYysxNj4+M10sdz0rX1tjKzg+PjNdLGI9K19bYysyND4+M10sQT0wfG9tKDB8YVtjKzMyPj4yXSksZj0wfG9tKDB8YVtjKzM2Pj4yXSksX1twPj4zXT1rLF9bcCs4Pj4zXT13LF9bcCsxNj4+M109YixfW3ArMjQ+PjNdPXcsYVtwKzMyPj4yXT1BLGFbcCszNj4+Ml09ZixU''@;'; + put 'put ''MChsLDExMDc3MCxwKSksbGU9bX1mdW5jdGlvbiBvbShsKXtzd2l0Y2goMHwobHw9MCkpe2Nhc2UgMDpsPTExMDgyMTticmVhaztjYXNlIDE6bD0xMTA4MTY7YnJlYWs7Y2FzZSAyOmw9MTEwODA5O2JyZWFrO2Nhc2UgMzpsPTExMDgwMjticmVhaztjYXNlIDQ6bD0xMTA3OTQ7YnJlYWs7ZGVm''@;'; + put 'put ''YXVsdDpsPTB9cmV0dXJuIDB8bH1mdW5jdGlvbiBBUihsLGMpe2N8PTA7dmFyIE0sRCxHLHBlLGJlLE9lLExlLFJlLGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxSPTAsSz0wLGdlPTA7UmU9bGUsbGU9bGUrMTZ8MCxPZT0wfGFbMzIrKGx8PTApPj4yXSxMZT0wfGFbbCsyOD4+Ml0sTT00''@;'; + put 'put ''KyhwZT1SZSs4fDApfDAsRD0oYmU9UmUpKzR8MCxiPTAsbD0wfGFbKEc9bCsyNHwwKT4+Ml07ZTpmb3IoO0s9YisxfDAsISgoMHxLKT49KDB8bCkpOylmb3IoUj1MZSsoYjw8Mil8MCxrPUs7Oyl7aWYoKDB8ayk+PSgwfGwpKXtiPUs7Y29udGludWUgZX10OmRve2lmKDA9PSgwfG1mKE9lLGIs''@;'; + put 'put ''aykpJiYwPT0oMHxtZihPZSxrLGIpKSYmKGdlPUxlKyhrPDwyKXwwLDB8ZGIoMHxhW1I+PjJdLDB8YVtnZT4+Ml0pKSlzd2l0Y2gobT0wfGFbUj4+Ml0sbD0wfGFbbSs0OD4+Ml0sdz0wfGFbZ2U+PjJdLGY9MHxhW3crNDg+PjJdLHA9MD09KDB8ZiksbD1sP3A/MTorX1tsKzg+PjNdIT0rX1tm''@;'; + put 'put ''Kzg+PjNdOjFecCxBPTEmbCxWTShwZSxtLHcsMCxBKSxsPTB8YVtwZT4+Ml0sdz0wfGFbTT4+Ml0sbT0xXkEsVk0oYmUsMHxhW1I+PjJdLDB8YVtnZT4+Ml0sMSxtKSxmPTB8YVtiZT4+Ml0scD0wfGFbRD4+Ml0sMHx3KXtjYXNlLTE6aWYoU2goMHxhW2dlPj4yXSwwfGFbUj4+Ml0sQSwwLGws''@;'; + put 'put ''YyksU2goMHxhW2dlPj4yXSwwfGFbUj4+Ml0sbSwxLGYsYyksMSE9KDB8cCkpYnJlYWsgdDtqTSgwfGFbUj4+Ml0sMHxhW2dlPj4yXSxtLGMpO2JyZWFrIHQ7Y2FzZSAwOnN3aXRjaCgwfHApe2Nhc2UtMTpTaCgwfGFbZ2U+PjJdLDB8YVtSPj4yXSxBLDAsbCxjKSxTaCgwfGFbZ2U+PjJdLDB8''@;'; + put 'put ''YVtSPj4yXSxtLDEsZixjKTticmVhayB0O2Nhc2UgMDpjYXNlIDE6U2goMHxhW1I+PjJdLDB8YVtnZT4+Ml0sMCxBLGwsYyksU2goMHxhW1I+PjJdLDB8YVtnZT4+Ml0sMSxtLGYsYyk7YnJlYWsgdDtkZWZhdWx0OmJyZWFrIHR9Y2FzZSAxOmlmKFNoKDB8YVtSPj4yXSwwfGFbZ2U+PjJdLDAs''@;'; + put 'put ''QSxsLGMpLFNoKDB8YVtSPj4yXSwwfGFbZ2U+PjJdLDEsbSxmLGMpLC0xIT0oMHxwKSlicmVhayB0O2pNKDB8YVtSPj4yXSwwfGFbZ2U+PjJdLG0sYyk7YnJlYWsgdDtkZWZhdWx0OmJyZWFrIHR9fXdoaWxlKDApO2s9aysxfDAsbD0wfGFbRz4+Ml19bGU9UmV9ZnVuY3Rpb24gZGIobCxjKXty''@;'; + put 'put ''ZXR1cm4rX1s4KyhsfD0wKT4+M10hPStfWzgrKGN8PTApPj4zXSYmUHIoMTEwODkyLDExMDE2MSw4NDMsMTEwOTIzKSwwfCgrX1tsKzE2Pj4zXT09K19bYysxNj4+M10mJitfW2wrMjQ+PjNdPT0rX1tjKzI0Pj4zXSYmKDB8YVtsKzMyPj4yXSk9PSgwfGFbYyszMj4+Ml0pPygwfGFbbCszNj4+''@;'; + put 'put ''Ml0pPT0oMHxhW2MrMzY+PjJdKSYxOjApfWZ1bmN0aW9uIFZNKGwsYyxmLHAsbSl7bHw9MCxjfD0wLGZ8PTAscHw9MCxtfD0wO3ZhciBBPTAsdz0wLGI9MDtmb3IoQT0wOzspe2lmKCEoYz0wfHM2KGMscCkpKXt3PTA7YnJlYWt9aWYoIShmPTB8czYoZixtKSkpe2I9NjticmVha31pZighKDB8''@;'; + put 'put ''ZGIoYyxmKSkpe2I9NzticmVha31BPUErMXwwfTY9PSgwfGIpP1ByKDEzODM5NCwxMTAxNjEsODcxLDExMDg0MSk6Nz09KDB8YikmJih3PTB8ZnVuY3Rpb24gYW0obCxjLGYscCl7bHw9MCxjfD0wLGZ8PTAscHw9MDt2YXIgbT0wLEE9MCx3PTA7Zm9yKHc9MTshKCgwfHcpPigwfGYpKTspe0E9''@;'; + put 'put ''MHxzNihsLHApLG09K19bQSs4Pj4zXT09K19bbCsxNj4+M107ZG97aWYoMHxmZVtsPj4wXSl7aWYobSl7bT00PT0oMHxhW2wrMzI+PjJdKTticmVha31tPTI9PSgwfGFbbCszNj4+Ml0pO2JyZWFrfWlmKG0pe209MT09KDB8YVtsKzMyPj4yXSk7YnJlYWt9bT0zPT0oMHxhW2wrMzY+PjJdKTti''@;'; + put 'put ''cmVha313aGlsZSgwKTtsPUEsdz13KzF8MCxjPW0/MC1jfDA6Y31yZXR1cm4gMHxjfShjLDB8eTkoYyxmKSxBKzF8MCwxLXB8MCkpLGFbbD4+Ml09QSxhW2wrND4+Ml09d31mdW5jdGlvbiBTaChsLGMsZixwLG0sQSl7Y3w9MCxmfD0wLHB8PTAsbXw9MDt2YXIgRCxSLHc9MCxiPTAsaz0wLE09''@;'; + put 'put ''MCxHPTA7Zm9yKFI9MjArKEF8PTApfDAsRD1BKzI0fDAsQT0wfGw2KDB8YVsoMD09KDB8ZmVbKGx8PTApPj4wXSk/UjpEKT4+Ml0sbCksejEoMHxhW0ErMzI+PjJdLDB8YVtsKzQwPj4yXSwwfGFbYys0MD4+Ml0pLGI9MTshKCgwfGIpPigwfG0pKTspe2s9MHxzNihsLGYpLE09MHxzNihjLHAp''@;'; + put 'put ''O2Rve2lmKDB8ZmVbbD4+MF0pe2lmKHc9MHxsNigwfGFbUj4+Ml0sayksK19bays4Pj4zXT09K19bbCsxNj4+M10pe2lmKEc9Mj09KDB8YVtsKzMyPj4yXSksQT0wIT0oMHxtZigwfGFbQSszMj4+Ml0sMHxhW2wrNDA+PjJdLDB8YVtjKzQwPj4yXSkpLGw9MHxhW3crMzI+PjJdLEcpe2lmKEEp''@;'; + put 'put ''e3oxKGwsMHxhW2srNDA+PjJdLDB8YVtNKzQwPj4yXSksQT13O2JyZWFrfXoxKGwsMHxhW00rNDA+PjJdLDB8YVtrKzQwPj4yXSksQT13O2JyZWFrfWlmKEEpe3oxKGwsMHxhW00rNDA+PjJdLDB8YVtrKzQwPj4yXSksQT13O2JyZWFrfXoxKGwsMHxhW2srNDA+PjJdLDB8YVtNKzQwPj4yXSks''@;'; + put 'put ''QT13O2JyZWFrfWlmKEc9Mj09KDB8YVtsKzM2Pj4yXSksQT0wIT0oMHxtZigwfGFbQSszMj4+Ml0sMHxhW2wrNDA+PjJdLDB8YVtjKzQwPj4yXSkpLGw9MHxhW3crMzI+PjJdLEcpe2lmKEEpe3oxKGwsMHxhW00rNDA+PjJdLDB8YVtrKzQwPj4yXSksQT13O2JyZWFrfXoxKGwsMHxhW2srNDA+''@;'; + put 'put ''PjJdLDB8YVtNKzQwPj4yXSksQT13O2JyZWFrfWlmKEEpe3oxKGwsMHxhW2srNDA+PjJdLDB8YVtNKzQwPj4yXSksQT13O2JyZWFrfXoxKGwsMHxhW00rNDA+PjJdLDB8YVtrKzQwPj4yXSksQT13O2JyZWFrfWlmKHc9MHxsNigwfGFbRD4+Ml0sayksK19bays4Pj4zXT09K19bbCsxNj4+M10p''@;'; + put 'put ''e2lmKEc9MT09KDB8YVtsKzMyPj4yXSksQT0wIT0oMHxtZigwfGFbQSszMj4+Ml0sMHxhW2wrNDA+PjJdLDB8YVtjKzQwPj4yXSkpLGw9MHxhW3crMzI+PjJdLEcpe2lmKEEpe3oxKGwsMHxhW00rNDA+PjJdLDB8YVtrKzQwPj4yXSksQT13O2JyZWFrfXoxKGwsMHxhW2srNDA+PjJdLDB8YVtN''@;'; + put 'put ''KzQwPj4yXSksQT13O2JyZWFrfWlmKEEpe3oxKGwsMHxhW2srNDA+PjJdLDB8YVtNKzQwPj4yXSksQT13O2JyZWFrfXoxKGwsMHxhW00rNDA+PjJdLDB8YVtrKzQwPj4yXSksQT13O2JyZWFrfWlmKEc9MT09KDB8YVtsKzM2Pj4yXSksQT0wIT0oMHxtZigwfGFbQSszMj4+Ml0sMHxhW2wrNDA+''@;'; + put 'put ''PjJdLDB8YVtjKzQwPj4yXSkpLGw9MHxhW3crMzI+PjJdLEcpe2lmKEEpe3oxKGwsMHxhW2srNDA+PjJdLDB8YVtNKzQwPj4yXSksQT13O2JyZWFrfXoxKGwsMHxhW00rNDA+PjJdLDB8YVtrKzQwPj4yXSksQT13O2JyZWFrfWlmKEEpe3oxKGwsMHxhW00rNDA+PjJdLDB8YVtrKzQwPj4yXSks''@;'; + put 'put ''QT13O2JyZWFrfXoxKGwsMHxhW2srNDA+PjJdLDB8YVtNKzQwPj4yXSksQT13O2JyZWFrfXdoaWxlKDApO2w9ayxjPU0sYj1iKzF8MH19ZnVuY3Rpb24gak0obCxjLGYscCl7bHw9MCxjfD0wLGZ8PTAscHw9MDtmb3IodmFyIG09MDswfGRiKGwsYyk7KW09MHxzNihsLDEpLGM9MHxzNihjLGYp''@;'; + put 'put ''LGw9bTshZnVuY3Rpb24gYjkobCxjLGYpe2x8PTAsY3w9MDt2YXIgcCxtLEE7cD1sZSxsZT1sZSsxNnwwLGFbKG09cCk+PjJdPWZ8PTAsbWlbNjMmYVsoQT0wfGFbKDB8YVsobD1sKzR8MCk+PjJdKSsoMTIqY3wwKSs4Pj4yXSk+PjJdXShBLG0sMiksYVttPj4yXT1jLG1pWzYzJmFbKGY9MHxh''@;'; + put 'put ''WygwfGFbbD4+Ml0pKygxMipmfDApKzg+PjJdKT4+Ml1dKGYsbSwyKSxsZT1wfShtPTB8YVszMisoMHxsNigwfGFbKDA9PSgwfGZlW2w+PjBdKT9wKzIwfDA6cCsyNHwwKT4+Ml0sbCkpPj4yXSwwfGFbbCs0MD4+Ml0sMHxhW2MrNDA+PjJdKX1mdW5jdGlvbiBzNihsLGMpe3JldHVybihsfD0w''@;'; + put 'put ''KT8wfGFbKDA9PSgwfChjfD0wKSk/bCs0OHwwOmwrNTJ8MCk+PjJdOihQcigxMTA4MjgsMTEwMTYxLDc5OCwxMTA4MzIpLDApfWZ1bmN0aW9uIHk5KGwsYyl7dmFyIGYscCxtO3JldHVybiBtPWxlLGxlPWxlKzE2fDAscD1tLChmPTB8ZmVbKGx8PTApPj4wXSk8PDI0Pj4yND09KDB8ZmVbKGN8''@;'; + put 'put ''PTApPj4wXSkmJitfW2wrOD4+M109PStfW2MrOD4+M10/KGw9Zjw8MjQ+PjI0PzB8eVIobCxjLDQsMik6MHx5UihsLGMsMywxKSxsZT1tLDB8bCk6KCRyKDEsMTEwODU0LHApLHplKDE4OTI5NiwxKSwwKX1mdW5jdGlvbiB5UihsLGMsZixwKXtmfD0wLHB8PTA7dmFyIGIsayxtPTAsQT0wLHc9''@;'; + put 'put ''MCxNPTAsRD0wLFI9MCxHPTA7Yj0rX1syNCsobHw9MCk+PjNdLGs9K19bMTYrKGN8PTApPj4zXTtkb3tpZighKGI8a3x8KEE9K19bbCsxNj4+M10sdz0rX1tjKzI0Pj4zXSxBPncpKSl7aWYoazxiJkE8ayl7Yz0wfEg4KGwsYyxmLHApO2JyZWFrfWlmKGs8QSZBPHcpe2M9MC0oMHxIOChjLGws''@;'; + put 'put ''ZixwKSl8MDticmVha31pZihBIT1rKXtpZihiPT1rKXJldHVybiAwfCgoMHwoZj0wfGFbbCszNj4+Ml0pKT09KDB8YVtjKzMyPj4yXSk/MDooMHxmKT09KDB8cCk/MTotMSk7Yz0oMHwoZj0wfGFbbCszMj4+Ml0pKT09KDB8YVtjKzM2Pj4yXSk/MDooMHxmKT09KDB8cCk/MTotMTticmVha31p''@;'; + put 'put ''ZihiIT13KXtpZihiPHcpcmV0dXJuIEc9KDB8YVtsKzM2Pj4yXSk9PSgwfGYpLGY9MHxENCgwfGFbYyszMj4+Ml0sMHxhW2wrMzI+PjJdLGYscCksMHwoRz9mOjAtZnwwKTtHPSgwfGFbYyszNj4+Ml0pPT0oMHxwKSxjPTB8RDQoMHxhW2wrMzI+PjJdLDB8YVtjKzMyPj4yXSxmLHApLGM9Rz9j''@;'; + put 'put ''OjAtY3wwO2JyZWFrfWlmKCgwfChHPTB8YVtsKzMyPj4yXSkpPT0oMHwoUj0wfGFbYyszMj4+Ml0pKSl7aWYoKDB8YVtsKzM2Pj4yXSk9PSgwfChjPTB8YVtjKzM2Pj4yXSkpKXtjPTA7YnJlYWt9fWVsc2UgYz0wfGFbYyszNj4+Ml07aWYoRD0oMHxSKT09KDB8ZiksKDB8Uik9PSgwfGMpKXtp''@;'; + put 'put ''ZihEKXtjPTE7YnJlYWt9aWYoKDB8Uik9PSgwfHApKXtjPS0xO2JyZWFrfWlmKCgwfEcpIT0oMHxmKSYmKDB8YVtsKzM2Pj4yXSkhPSgwfGYpKXtjPTE7YnJlYWt9aWYoKDB8RykhPSgwfHApJiYoMHxhW2wrMzY+PjJdKSE9KDB8cCkpe2M9LTE7YnJlYWt9Yz0wO2JyZWFrfWlmKEQmKG09KDB8''@;'; + put 'put ''Yyk9PSgwfHApKSl7aWYoYz0oMHxhW2wrMzY+PjJdKT09KDB8cCksKDB8Ryk9PSgwfGYpKXtpZighYyl7Yz0tMTticmVha319ZWxzZSBpZihjKXtjPTE7YnJlYWt9Yz0wO2JyZWFrfWlmKCgwfFIpPT0oMHxwKSYoTT0oMHxjKT09KDB8ZikpKXtpZihjPSgwfEcpPT0oMHxwKSwoMHxhW2wrMzY+''@;'; + put 'put ''PjJdKT09KDB8Zikpe2lmKCFjKXtjPS0xO2JyZWFrfX1lbHNlIGlmKGMpe2M9MTticmVha31jPTA7YnJlYWt9aWYoIVIpe2lmKE0pe2M9MHxOOChHLDB8YVtsKzM2Pj4yXSxmKTticmVha31pZihtKXtjPTAtKDB8TjgoRywwfGFbbCszNj4+Ml0scCkpfDA7YnJlYWt9fWlmKG09MHxhW2wrMzY+''@;'; + put 'put ''PjJdLEQmMD09KDB8Yykpe2M9MHxOOChtLEcsZik7YnJlYWt9Yz0wLSgwfE44KG0sRyxwKSl8MDticmVha31jPTB9d2hpbGUoMCk7cmV0dXJuIDB8Y31mdW5jdGlvbiBIOChsLGMsZixwKXtmfD0wLHB8PTA7dmFyIHcsYixtPTAsQT0wO3c9K19bMjQrKGx8PTApPj4zXSxiPStfWzI0KyhjfD0w''@;'; + put 'put ''KT4+M107ZG97aWYodzxiKXtpZigoMHwobD0wfGFbbCszNj4+Ml0pKT09KDB8ZikmJigwfGFbYyszMj4+Ml0pPT0oMHxwKSl7bD0tMTticmVha31pZigoMHxsKT09KDB8cCkmJigwfGFbYyszMj4+Ml0pPT0oMHxmKSl7bD0xO2JyZWFrfWw9MH1lbHNle2lmKEE9KDB8KG09MHxhW2MrMzI+PjJd''@;'; + put 'put ''KSk9PSgwfHApLHc9PWIpe2lmKEEpe2w9MHxENCgwfGFbbCszNj4+Ml0sMHxhW2MrMzY+PjJdLGYscCk7YnJlYWt9bD0wLSgwfEQ0KDB8YVtjKzM2Pj4yXSwwfGFbbCszNj4+Ml0sZixwKSl8MDticmVha31pZihBJiYoMHxhW2MrMzY+PjJdKT09KDB8cCkpe2w9LTE7YnJlYWt9aWYoKDB8bSk9''@;'; + put 'put ''PSgwfGYpJiYoMHxhW2MrMzY+PjJdKT09KDB8Zikpe2w9MTticmVha31sPTB9fXdoaWxlKDApO3JldHVybiAwfGx9ZnVuY3Rpb24gTjgobCxjLGYpe3JldHVybiAwfCgoMHwobHw9MCkpPT0oMHwoZnw9MCkpPygoMHwoY3w9MCkpPT0oMHxmKSk8PDMxPj4zMToxKX1mdW5jdGlvbiBENChsLGMs''@;'; + put 'put ''ZixwKXtpZihjfD0wLCgwfChsfD0wKSk9PSgwfChwfD0wKSkpe2lmKGM9MD09KDB8bCkpcmV0dXJuIDA7YyY9MX1yZXR1cm4oMCE9KDB8bCl8KDB8YykhPSgwfChmfD0wKSkpPDwzMT4+MzF8MH1mdW5jdGlvbiB3UihsKXt2YXIgZixBLHcsYz0wLHA9MCxtPTA7QT0wfGFbMjgrKGx8PTApPj4y''@;'; + put 'put ''XSx3PTB8YVtsKzI0Pj4yXSxmPTB8YVtsKzMyPj4yXSxsPTA7ZTpmb3IoO3A9bCsxfDAsISgoMHxwKT49KDB8dykpOylmb3IobT1BKyhsPDwyKXwwLGM9cDs7KXtpZigoMHxjKT09KDB8dykpe2w9cDtjb250aW51ZSBlfXN3aXRjaCgwfHk5KDB8YVttPj4yXSwwfGFbQSsoYzw8Mik+PjJdKSl7''@;'; + put 'put ''Y2FzZSAxOnoxKGYsbCxjKTticmVhaztjYXNlLTE6ejEoZixjLGwpfWM9YysxfDB9fWZ1bmN0aW9uIFpNKGwsYyl7Y3w9MDt2YXIgZixtLHA9MDthWyhtPTI0KyhsfD0wKXwwKT4+Ml09Zj0xKyhwPTB8YVttPj4yXSl8MCxhW2MrNDA+PjJdPXAsbD0obD0wfGFbKHA9bCsyOHwwKT4+Ml0pPzB8''@;'; + put 'put ''VjAobCxmPDwyKTowfFFuKGY8PDIpLGFbcD4+Ml09bCxhW2wrKCgwfGFbbT4+Ml0pLTE8PDIpPj4yXT1jfWZ1bmN0aW9uIHpNKGwsYyxmKXtsfD0wLGN8PTA7dmFyIEEscD0wLG09MDtBPWxlLGxlPWxlKzE2fDAsX1sobT1BKT4+M109Zj0rZiwocD0wfG1pWzYzJmFbbD4+Ml1dKGwsbSw1MTIp''@;'; + put 'put ''KXx8KHA9MHx2cigyNCksX1twKzg+PjNdPStfW20+PjNdLGFbcCsxNj4+Ml09MHxpcygyNTcyOCwwfGFbNDU4MV0pLG1pWzYzJmFbbD4+Ml1dKGwscCwxKSksbWlbNjMmYVsobT0wfGFbcCsxNj4+Ml0pPj4yXV0obSxjLDEpLGxlPUF9ZnVuY3Rpb24gQ2kobCxjLGYpe2x8PTA7dmFyIEEsdyxw''@;'; + put 'put ''PTAsbT0wO0E9MCE9KDB8ZmVbMzYrKGN8PTApPj4wXSksdz00MCsoZnw9MCl8MDtkb3tpZigoMHxhW2MrMjQ+PjJdKT09KDB8Zikpe2lmKHA9K19bdz4+M10sQSl7bT0uNSooK19bZis2ND4+M10rICtfW2YrNDg+PjNdKTticmVha31tPStfW2YrNDg+PjNdLHA9LjUqKCtfW2YrNTY+PjNdK3Ap''@;'; + put 'put ''O2JyZWFrfWlmKEEpe209LjUqKCtfW2YrNjQ+PjNdKyArX1tmKzQ4Pj4zXSkscD0rX1tmKzU2Pj4zXTticmVha31tPStfW2YrNjQ+PjNdLHA9LjUqKCtfW2YrNTY+PjNdKyArX1t3Pj4zXSk7YnJlYWt9d2hpbGUoMCk7X1tsPj4zXT1wLF9bbCs4Pj4zXT1tfWZ1bmN0aW9uIGdiKGwsYyl7dmFy''@;'; + put 'put ''IGY9MDtyZXR1cm4oMHwoZj0wfGFbMjArKGx8PTApPj4yXSkpIT0oMHxhWzIwKyhjfD0wKT4+Ml0pJiYoMHxmKSE9KDB8YVtjKzI0Pj4yXSkmJihmPTB8YVtsKzI0Pj4yXSksMHxmfWZ1bmN0aW9uIGgyKGwsYyl7dmFyIGY7Zj0uNSooK19bNjQrKGN8PTApPj4zXSsgK19bYys0OD4+M10pLF9b''@;'; + put 'put ''KGx8PTApPj4zXT0uNSooK19bYys1Nj4+M10rICtfW2MrNDA+PjNdKSxfW2wrOD4+M109Zn1mdW5jdGlvbiB3OShsLGMsZixwLG0sQSx3KXtmPStmLHA9K3AsbT0rbSxBfD0wLHd8PTA7dmFyIGI9MCxrPTA7ZmVbKGx8PTApPj4wXT1jfD0wLF9bbCs4Pj4zXT1mLHA8bT8oYj0wLGs9QSxjPXcs''@;'; + put 'put ''Zj1wLHA9bSk6KGI9MSxrPXcsYz1BLGY9bSksX1tsKzI0Pj4zXT1wLF9bbCsxNj4+M109ZixhW2wrMzY+PjJdPWMsYVtsKzMyPj4yXT1rLGZlW2wrMT4+MF09Yn1mdW5jdGlvbiBsbShsLGMsZil7bHw9MCxmfD0wO3ZhciBwPTA7cD0wfGFbMzYrKGN8PTApPj4yXTtkb3tpZigoMHxhW3ArND4+''@;'; + put 'put ''Ml0pIT0oMHxmKSl7aWYoKDB8YVtwKzEyPj4yXSk9PSgwfGYpKXtwPX5+KC41KigrX1tjKzU2Pj4zXSsgK19bYys0MD4+M10pKSxmPX5+K19bYys0OD4+M107YnJlYWt9aWYoKDB8YVtwKzg+PjJdKT09KDB8Zikpe3A9fn4rX1tjKzQwPj4zXSxmPX5+KC41KigrX1tjKzY0Pj4zXSsgK19bYys0''@;'; + put 'put ''OD4+M10pKTticmVha30oMHxhW3A+PjJdKT09KDB8Zik/KHA9fn4rX1tjKzU2Pj4zXSxmPX5+KC41KigrX1tjKzY0Pj4zXSsgK19bYys0OD4+M10pKSk6KHA9MCxmPTApfWVsc2UgcD1+figuNSooK19bYys1Nj4+M10rICtfW2MrNDA+PjNdKSksZj1+fitfW2MrNjQ+PjNdfXdoaWxlKDApO2Fb''@;'; + put 'put ''bD4+Ml09cCxhW2wrND4+Ml09Zn1mdW5jdGlvbiBfUihsKXtsfD0wO3ZhciBmLHAsYz0wLG09MCxBPTA7Zm9yKGY9MHx2cig4KSxhW2Y+PjJdPWwsYVsocD1mKzR8MCk+PjJdPTB8dnIoMTIqbHwwKSxjPTA7ISgoMHxjKT49KDB8bCkpOylBPTB8a0UoKSxhWyhtPTB8YVtwPj4yXSkrKDEyKmN8''@;'; + put 'put ''MCkrOD4+Ml09QSxhW20rKDEyKmN8MCk+PjJdPTAsYz1jKzF8MDtyZXR1cm4gMHxmfWZ1bmN0aW9uIHoxKGwsYyxmKXt2YXIgcCxtO2x8PTAsY3w9MCxwPWxlLGxlPWxlKzE2fDAsYVsobT1wKT4+Ml09Znw9MCxtaVs2MyZhWyhmPTB8YVsoMHxhW2wrND4+Ml0pKygxMipjfDApKzg+PjJdKT4+''@;'; + put 'put ''Ml1dKGYsbSwxKSxsZT1wfWZ1bmN0aW9uIG1mKGwsYyxmKXt2YXIgcCxtO3JldHVybiBsfD0wLGN8PTAscD1sZSxsZT1sZSsxNnwwLGFbKG09cCk+PjJdPWZ8PTAsZj0wIT0oMHxtaVs2MyZhWyhmPTB8YVsoMHxhW2wrND4+Ml0pKygxMipjfDApKzg+PjJdKT4+Ml1dKGYsbSw1MTIpKSYxLGxl''@;'; + put 'put ''PXAsMHxmfWZ1bmN0aW9uIEdNKGwpe3ZhciBjPTAsZj0wLHA9MCxtPTA7c3dpdGNoKDB8KGM9MHxhWyhsfD0wKT4+Ml0pKXtjYXNlIDA6YnJlYWs7Y2FzZSAxOmFbNCsoMHxhW2wrND4+Ml0pPj4yXT0wO2JyZWFrO2RlZmF1bHQ6Zm9yKHA9MHxmdW5jdGlvbiBMNChsKXtsfD0wO3ZhciBjO3Jl''@;'; + put 'put ''dHVybiBjPTB8dnIoOCksYVtjKzQ+PjJdPTB8dnIobDw8MiksYVtjPj4yXT0tMSwwfGN9KGMpLG09bCs0fDAsZj0wLGM9MDs7KXtpZigoMHxmKT49KDB8YVtsPj4yXSkpe2M9MDticmVha30wfGFbKDB8YVttPj4yXSkrKDEyKmZ8MCk+PjJdfHwoYz0wfFdNKGwsZixjLHApKSxmPWYrMXwwfWZv''@;'; + put 'put ''cig7ISgoMHwoZj0wfFlNKHApKSk8PS0xKTspYVsoMHxhW20+PjJdKSsoMTIqZnwwKSs0Pj4yXT1jLGM9YysxfDA7IWZ1bmN0aW9uIHNtKGwpe0Z0KDB8YVs0KyhsfD0wKT4+Ml0pLEZ0KGwpfShwKX19ZnVuY3Rpb24gV00obCxjLGYscCl7Znw9MCxwfD0wO3ZhciB3LGIsayxtPTAsQT0wO2Zv''@;'; + put 'put ''cihhWyhrPShBPTB8YVsoYj00KyhsfD0wKXwwKT4+Ml0pKygxMiooY3w9MCl8MCl8MCk+PjJdPTEsdz00KyhBPTB8YVtBKygxMipjfDApKzg+PjJdKXwwLGY9ZisxfDAsQT0wfHMwKEEpO0E7KTB8YVsoMHxhW2I+PjJdKSsoMTIqKG09MHxhWyhtPSgwfChtPTB8YVs4KygwfGFbdz4+Ml0pPj4y''@;'; + put 'put ''XSkpPDA/MHxhW0ErOD4+Ml06QSsoMC1tKXwwKT4+Ml0pfDApPj4yXXx8KGY9MHxXTShsLG0sZixwKSksQT0wfGFbQT4+Ml07cmV0dXJuIGFbaz4+Ml09MixmdW5jdGlvbiBfOShsLGMpe2N8PTA7dmFyIGY7YVsobHw9MCk+PjJdPWY9MSsoMHxhW2w+PjJdKXwwLGFbKDB8YVtsKzQ+PjJdKSso''@;'; + put 'put ''Zjw8Mik+PjJdPWN9KHAsYyksZisxfDB9ZnVuY3Rpb24gWU0obCl7dmFyIGMsZj0wO3JldHVybi0xPT0oMHwoYz0wfGFbKGx8PTApPj4yXSkpP2w9LTE6KGY9MHxhWygwfGFbbCs0Pj4yXSkrKGM8PDIpPj4yXSxhW2w+PjJdPWMrLTEsbD1mKSwwfGx9ZnVuY3Rpb24gdW0obCl7dmFyIGMsZjty''@;'; + put 'put ''ZXR1cm4gYVsoZj0wfGFbMTYrKGx8PTApPj4yXSkrKDQwKihjPTB8YVtsPj4yXSl8MCkrMzI+PjJdPWMsYVtsPj4yXT1jKzEsZisoNDAqY3wwKXwwfWZ1bmN0aW9uIHYzKGwsYyxmLHApe2N8PTAsZnw9MCxwPStwO3ZhciBtLEE9MDtyZXR1cm4gYVsoQT00KyhsfD0wKXwwKT4+Ml09MSsobT0w''@;'; + put 'put ''fGFbQT4+Ml0pLGw9KEE9MHxhW2wrMjA+PjJdKSsoMjQqbXwwKXwwLGFbQSsoMjQqbXwwKSsxMj4+Ml09YVtjKzMyPj4yXSxhW0ErKDI0Km18MCkrMTY+PjJdPWFbZiszMj4+Ml0sX1tsPj4zXT1wLGFbQSsoMjQqbXwwKSs4Pj4yXT0wLE1SKGMsbSksTVIoZixtKSwwfGx9ZnVuY3Rpb24gTVIo''@;'; + put 'put ''bCxjKXt2YXIgZixwO2FbKDB8YVsyOCsobHw9MCk+PjJdKSsoKHA9MHxpdFsoZj1sKzE2fDApPj4xXSk8PDE2Pj4xNjw8Mik+PjJdPWN8PTAsaXRbZj4+MV09cCsxPDwxNj4+MTZ9ZnVuY3Rpb24gVXoobCxjLGYpe3ZhciBwPTA7cmV0dXJuKDB8KHA9MHxhWzEyKyhjfD0wKT4+Ml0pKT09KDB8''@;'; + put 'put ''YVszMisoZnw9MCk+PjJdKSYmKHA9MHxhW2MrMTY+PjJdKSwoMHxhWzE2KyhsfD0wKT4+Ml0pKyg0MCpwfDApfDB9ZnVuY3Rpb24gQzkobCxjKXt2YXIgZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTA7UkEoQT0wfGFbKGx8PTApPj4yXSwzLGN8PTApLGM9MHxhW0ErOTI+PjJdO2Rve2lmKGMpe2lm''@;'; + put 'put ''KGFbbCs3Nj4+Ml09dz0wfGFbMTIrKGY9MHxhW2MrMTY+PjJdKT4+Ml0sYVtsKzg0Pj4yXT1wPTB8YVtmKzE2Pj4yXSxhWyhtPWwrODB8MCk+PjJdPWFbZj4+Ml0sYVtsKzg4Pj4yXT1hW2MrND4+Ml0sYVsoZj1sKzE1MnwwKT4+Ml09cD1hW2Y+PjJdfGFbcD4+Ml0sYz0wfGFbQSs4MD4+Ml0p''@;'; + put 'put ''e2FbbCs2MD4+Ml09YVsxMisoQT0wfGFbYysxNj4+Ml0pPj4yXSxhW2wrNjg+PjJdPWI9MHxhW0ErMTY+PjJdLGFbbCs3Mj4+Ml09YVtjKzQ+PjJdLGFbZj4+Ml09cHxhW2I+PjJdLGFbbCs2ND4+Ml09YVsoMD09KDB8dyk/bTpBKT4+Ml0sYz0zMDA7YnJlYWt9YVtsKzYwPj4yXT0wLGM9OTk5''@;'; + put 'put ''O2JyZWFrfWM9OTk5fXdoaWxlKDApO3JldHVybiAwfGN9ZnVuY3Rpb24geFIobCl7dmFyIGMsZj0wO3JldHVybiBjPTB8YVs2MCsobHw9MCk+PjJdLDB8ZnVuY3Rpb24gTkcobCl7dmFyIHcsayxjPTAsZj0wLHA9MCxtPTAsQT0wLGI9MDtrPWxlLGxlPWxlKzE2fDAsYj1rKzh8MCx3PWsscD0w''@;'; + put 'put ''fGFbKGx8PTApPj4yXSwwIT0oMHwoYz0wfGFbbCs3Nj4+Ml0pKSYmMCE9KDB8KGY9MHxhW2M+PjJdKSk/KENvWzEyNyZmXShsKSxtPTEyKTptPTQ7ZG97aWYoND09KDB8bSkpaWYoMD09KDB8YVtsKzQwPj4yXSkmJjA9PSgwfGFbKEE9bCszNnwwKT4+Ml0pKXtpZigwfGZlW3ArMTM+PjBdJiZj''@;'; + put 'put ''cmUobCksIShmPTB8YVsoYz1sKzMyfDApPj4yXSkpe2FbQT4+Ml09YVsxNTY3OV0sbT0xMjticmVha31wPTB8blMoZiwxMDY1MTIpLGFbQT4+Ml09cCxwP209MTI6KGI9MHxhWzE2KygwfGFbbCsxMj4+Ml0pPj4yXSxBPTB8YVtjPj4yXSxjPTB8JGsoMHxhWzQ3NjQzXSksYVt3Pj4yXT1BLGFb''@;'; + put 'put ''dys0Pj4yXT1jLEdzWzYzJmJdKDk4MTY5LHcpLGM9MSl9ZWxzZSBtPTEyfXdoaWxlKDApO3JldHVybiAxMj09KDB8bSkmJigxMDI0JmFbbCsxNTI+PjJdPyhHc1s2MyZhWzE2KygwfGFbbCsxMj4+Ml0pPj4yXV0oOTgyMDcsYiksYz0xKTpjPTApLGxlPWssMHxjfShsKT9sPTE6KDAhPSgwfGMp''@;'; + put 'put ''JiYwIT0oMHwoZj0wfGFbYz4+Ml0pKSYmQ29bMTI3JmZdKGwpLGw9MCksMHxsfWZ1bmN0aW9uIGs5KGwpe3ZhciBjLGY9MDswfChjPTB8YVs2MCsobHw9MCk+PjJdKSYmMHwoZj0wfGFbYys0Pj4yXSkmJkNvWzEyNyZmXShsKSxhWzI0KygwfGFbbD4+Ml0pPj4yXT0wLGZyZShsKX1mdW5jdGlv''@;'; + put 'put ''biB6OChsLGMsZil7Znw9MDt2YXIgdyxwPTAsbT0wLEE9MDtwPStfWzUwNCsoY3w9MCk+PjNdLG09K19bYys1MTI+PjNdLDB8YVtjKzM2MD4+Ml0/QT0tKG0rICtfW2YrOD4+M10pOihBPStfW2Y+PjNdK3AsZj1mKzh8MCxwPW0pLG09K19bYys1Mjg+PjNdKih3PStfW2MrMzUyPj4zXSkqKCtf''@;'; + put 'put ''W2Y+PjNdK3ApLF9bKGx8PTApPj4zXT0rX1tjKzUyMD4+M10qdypBLF9bbCs4Pj4zXT1tfWZ1bmN0aW9uIE1oKGwsYyxmLHApe2N8PTAsZnw9MCxwfD0wO3ZhciBtLEEsYix3PTAsaz0wO209K19bNTA0KyhsfD0wKT4+M10sQT0rX1tsKzUxMj4+M10sYj0rX1tsKzUyMD4+M10qKHc9K19bbCsz''@;'; + put 'put ''NTI+PjNdKSx3Kj0rX1tsKzUyOD4+M107ZTpkb3tpZigwfGFbbCszNjA+PjJdKWZvcihsPTA7Oyl7aWYoKDB8bCk+PSgwfHApKWJyZWFrIGU7az0tYiooK19bYysobDw8NCkrOD4+M10rQSksX1tmKyhsPDw0KSs4Pj4zXT0oK19bYysobDw8NCk+PjNdK20pKncsX1tmKyhsPDw0KT4+M109ayxs''@;'; + put 'put ''PWwrMXwwfWVsc2UgZm9yKGw9MDs7KXtpZigoMHxsKT49KDB8cCkpYnJlYWsgZTtfW2YrKGw8PDQpPj4zXT0oK19bYysobDw8NCk+PjNdK20pKmIsX1tmKyhsPDw0KSs4Pj4zXT0oK19bYysobDw8NCkrOD4+M10rQSkqdyxsPWwrMXwwfX13aGlsZSgwKTtyZXR1cm4gMHxmfWZ1bmN0aW9uIEp6''@;'; + put 'put ''KGwpe3ZhciBjPTAsZj0wOzB8KGM9MHxhWzYwKyhsfD0wKT4+Ml0pJiYwfChmPTB8YVtjKzE2Pj4yXSkmJlJjWzMxJmZdKGwsMHxhWygwfGFbMzA4KygwfGFbbD4+Ml0pPj4yXSkrKChjPTB8YVtsKzE2MD4+Ml0pPDwyKT4+Ml0sYywwfGFbbCsxNTY+PjJdKX1mdW5jdGlvbiBtYihsKXt2YXIg''@;'; + put 'put ''YyxmPTA7MHwoYz0wfGFbNjArKGx8PTApPj4yXSkmJjB8KGY9MHxhW2MrMjA+PjJdKSYmQ29bMTI3JmZdKGwpfWZ1bmN0aW9uIEc4KGwpe3ZhciBjLGY9MDswfChjPTB8YVs2MCsobHw9MCk+PjJdKSYmMHwoZj0wfGFbYys0MD4+Ml0pJiZDb1sxMjcmZl0obCl9ZnVuY3Rpb24gY20obCl7dmFy''@;'; + put 'put ''IGMsZj0wOzB8KGM9MHxhWzYwKyhsfD0wKT4+Ml0pJiYwfChmPTB8YVtjKzQ0Pj4yXSkmJkNvWzEyNyZmXShsKX1mdW5jdGlvbiBZZihsKXt2YXIgYyxmPTA7MHwoYz0wfGFbNjArKGx8PTApPj4yXSkmJjB8KGY9MHxhW2MrNDg+PjJdKSYmQ29bMTI3JmZdKGwpfWZ1bmN0aW9uIGZtKGwpe3Zh''@;'; + put 'put ''ciBjLGY9MDswfChjPTB8YVs2MCsobHw9MCk+PjJdKSYmMHwoZj0wfGFbYys1Mj4+Ml0pJiZDb1sxMjcmZl0obCl9ZnVuY3Rpb24gRzEobCxjLGYscCxtKXt2YXIgQSx3PTA7MHwoQT0wfGFbNjArKGx8PTApPj4yXSkmJjB8KHc9MHxhW0ErNzI+PjJdKSYmcDhbMTUmd10obCxjfD0wLGZ8PTAs''@;'; + put 'put ''cHw9MCxtfD0wKX1mdW5jdGlvbiBFaChsKXt2YXIgYyxmPTA7MHwoYz0wfGFbNjArKGx8PTApPj4yXSkmJjB8KGY9MHxhW2MrNzY+PjJdKSYmQ29bMTI3JmZdKGwpfWZ1bmN0aW9uIFc4KGwsYyl7dmFyIGYscD0wOzB8KGY9MHxhWzYwKyhsfD0wKT4+Ml0pJiYwfChwPTB8YVtmKzgwPj4yXSkm''@;'; + put 'put ''JkdzWzYzJnBdKGwsY3w9MCl9ZnVuY3Rpb24gTzQobCl7dmFyIGMsZj0wOzB8KGM9MHxhWzYwKyhsfD0wKT4+Ml0pJiYwfChmPTB8YVtjKzg0Pj4yXSkmJkNvWzEyNyZmXShsKX1mdW5jdGlvbiBobShsLGMsZil7Y3w9MDt2YXIgcCxBLHcsYixrLG09MCxNPTA7az1sZSxsZT1sZSs0OHwwLHA9''@;'; + put 'put ''ayszMnwwLEE9ayx3PWsrMTZ8MCxiPTB8YVs2MCsobHw9MCk+PjJdLE09MHxhWyhmfD0wKT4+Ml07ZG97aWYoMHxNJiYwfGZlW00+PjBdKXtpZigwfChNPTB8YVtsKzE2Pj4yXSkmJjA9PSgwfGFbTSsxNDQ+PjJdKSlicmVhazs4MTkyJmFbbCsxNTI+PjJdPyhhW0E+PjJdPWFbYz4+Ml0sYVtB''@;'; + put 'put ''KzQ+PjJdPWFbYys0Pj4yXSxhW0ErOD4+Ml09YVtjKzg+PjJdLGFbQSsxMj4+Ml09YVtjKzEyPj4yXSk6KGFbcD4+Ml09YVtjPj4yXSxhW3ArND4+Ml09YVtjKzQ+PjJdLGFbcCs4Pj4yXT1hW2MrOD4+Ml0sYVtwKzEyPj4yXT1hW2MrMTI+PjJdLHo4KHcsbCxwKSxhW0E+PjJdPWFbdz4+Ml0s''@;'; + put 'put ''YVtBKzQ+PjJdPWFbdys0Pj4yXSxhW0ErOD4+Ml09YVt3Kzg+PjJdLGFbQSsxMj4+Ml09YVt3KzEyPj4yXSksMHxiJiYwfChtPTB8YVtiKzg4Pj4yXSkmJihhW3A+PjJdPWFbQT4+Ml0sYVtwKzQ+PjJdPWFbQSs0Pj4yXSxhW3ArOD4+Ml09YVtBKzg+PjJdLGFbcCsxMj4+Ml09YVtBKzEyPj4y''@;'; + put 'put ''XSxkbFsxMjcmbV0obCxwLGYpKX19d2hpbGUoMCk7bGU9a31mdW5jdGlvbiBtYShsLGMpe3ZhciBwLG0sQSx3LGY9MDtwPTB8YVs2MCsobHw9MCk+PjJdLG09MTYrKDB8YVtsKzE2Pj4yXSl8MCwoQT0wIT0oMHwodz0wfCRzKGN8PTAsNTgpKSkpJiYoZmVbdz4+MF09MCksMHxwJiYodTYoMHxh''@;'; + put 'put ''W2wrNjg+PjJdLGMsbSksMHwoZj0wfGFbcCs5Mj4+Ml0pKSYmR3NbNjMmZl0obCxtKSxBJiYoZmVbdz4+MF09NTgpfWZ1bmN0aW9uIHU2KGwsYyxmKXtsfD0wO3ZhciBwLG0sQSxiLGssTSx3PTA7TT1sZSxsZT1sZSszMnwwLEE9TSsxNnwwLGs9TSs4fDAsYj1NLGFbKGZ8PTApPj4yXT1jfD0w''@;'; + put 'put ''LGFbZiszMj4+Ml09NSxwPTB8dm0oYyksMCE9KDB8KG09MHxhW2wrMTY+PjJdKSkmJjAhPSgwfHR3KHAsbSwwfGFbbCsyMD4+Ml0sNCwxMDIpKXx8KHc9Myk7ZTpkb3tpZigzPT0oMHx3KSl7c3dpdGNoKDB8UzMoYyxmLDB8YVtsKzI0Pj4yXSkpe2Nhc2UgMDpicmVhayBlO2Nhc2UgMTpicmVh''@;'; + put 'put ''aztkZWZhdWx0OiRyKDEsMTExMDQ2LEEpO2JyZWFrIGV9bD0wfFFuKDE2KygwfFVvKGMpKXwwKSxhW2I+PjJdPWMsb28obCwxMTEwMTEsYiksMHxwdmUobCkmJihhW2s+PjJdPWMsJHIoMCwxMTEwMjAsaykpLEZ0KGwpfX13aGlsZSgwKTtsZT1NfWZ1bmN0aW9uIGhsKGwsYyl7dmFyIHAsbSxB''@;'; + put 'put ''LHcsZj0wO3A9MHxhWzYwKyhsfD0wKT4+Ml0sbT01NisoMHxhW2wrMTY+PjJdKXwwLChBPTAhPSgwfCh3PTB8JHMoY3w9MCw1OCkpKSkmJihmZVt3Pj4wXT0wKSwwfHAmJih1NigwfGFbbCs2OD4+Ml0sYyxtKSwwfChmPTB8YVtwKzkyPj4yXSkpJiZHc1s2MyZmXShsLG0pLEEmJihmZVt3Pj4w''@;'; + put 'put ''XT01OCl9ZnVuY3Rpb24gVWYobCxjLGYscCl7Znw9MCxwPStwO3ZhciBBLHcsbT0wLGI9MDtiPTk2KygwfGFbKHc9MTYrKGx8PTApfDApPj4yXSl8MCwwfChBPTB8YVtsKzYwPj4yXSkmJih1NigwfGFbbCs2OD4+Ml0sY3w9MCxiKSwwfChtPTB8YVtBKzkyPj4yXSkpJiZHc1s2MyZtXShsLGIp''@;'; + put 'put ''LGFbMTM2KyhiPTB8YVt3Pj4yXSk+PjJdPWYsam5bYisxNDA+PjJdPXB9ZnVuY3Rpb24gZDIobCxjKXt2YXIgYixrLGY9MCxwPTAsbT0wLEE9MCx3PTA7az1sZSxsZT1sZSsxNnwwLGI9ayx3PTB8YVs2MCsobHw9MCk+PjJdLGFbMTYwKyhsPTB8YVtsKzE2Pj4yXSk+PjJdPWN8PTA7ZTpkb3tp''@;'; + put 'put ''ZigwIT0oMHxjKSYwIT0oMHx3KSl7dz1sKzE0NHwwLEE9bCsxNTJ8MCxtPWwrMTQ4fDAsbD1jO3Q6Zm9yKDs7KXtpZihwPWwrNHwwLCEobD0wfGFbbD4+Ml0pKWJyZWFrIGU7bjpkb3tzd2l0Y2goMHxmZVtsPj4wXSl7Y2FzZSAxMTU6aWYoISgwfFppKGwsMTExMDY3KSkpe2Fbdz4+Ml09Myxs''@;'; + put 'put ''PXA7Y29udGludWUgdH1pZighKDB8WmkobCwxMTEwODgpKSl7Zm9yKGY9MTE1O2M9bCsxfDAsZjw8MjQ+PjI0OylsPWMsZj0wfGZlW2M+PjBdO19bQT4+M109K2twKGMpLGw9cDtjb250aW51ZSB0fWJyZWFrO2Nhc2UgMTAwOmlmKCEoMHxaaShsLDEzNzMyNykpKXthW3c+PjJdPTEsbD1wO2Nv''@;'; + put 'put ''bnRpbnVlIHR9aWYoISgwfFppKGwsMTM3MzIwKSkpe2Fbdz4+Ml09MixsPXA7Y29udGludWUgdH1icmVhaztjYXNlIDEwNTppZigwfFppKGwsMTM0MzM1KSYmMHxaaShsLDExMTA3MykpYnJlYWsgbjthW3c+PjJdPTAsbD1wO2NvbnRpbnVlIHQ7Y2FzZSA5ODppZighKDB8WmkobCwxMTEwODMp''@;'; + put 'put ''KSl7X1tBPj4zXT0yLGw9cDtjb250aW51ZSB0fWJyZWFrO2Nhc2UgMTAyOmlmKCEoMHxaaShsLDExMTEwMSkpKXthW20+PjJdPTEsbD1wO2NvbnRpbnVlIHR9YnJlYWs7Y2FzZSAxMTc6aWYoISgwfFppKGwsMTExMTA4KSkpe2FbbT4+Ml09MCxsPXA7Y29udGludWUgdH1icmVhaztjYXNlIDEx''@;'; + put 'put ''NjppZighKDB8WmkobCwxMTExMTcpKSl7bD1wO2NvbnRpbnVlIHR9fX13aGlsZSgwKTthW2I+PjJdPWwsJHIoMCwxMTExMjUsYiksbD1wfX19d2hpbGUoMCk7bGU9a31mdW5jdGlvbiAkdShsLGMsZixwKXtjfD0wLGZ8PTAscHw9MDt2YXIgQSxiLG09MCx3PTA7Yj1sZSxsZT1sZSszMnwwLEE9''@;'; + put 'put ''YiwwfChmPTB8YVs2MCsobHw9MCk+PjJdKSYmMHwobT0wfGFbKHc9Zis5NnwwKT4+Ml0pJiYwfGFbMTQ0KygwfGFbbCsxNj4+Ml0pPj4yXSYmKF9bQT4+M109LjUqKCtfWyhmPWMrMTZ8MCk+PjNdKyArX1tjPj4zXSksX1tBKzg+PjNdPS41KigrX1tjKzI0Pj4zXSsgK19bYys4Pj4zXSksYVso''@;'; + put 'put ''Yz1BKzE2fDApPj4yXT1hW2Y+PjJdLGFbYys0Pj4yXT1hW2YrND4+Ml0sYVtjKzg+PjJdPWFbZis4Pj4yXSxhW2MrMTI+PjJdPWFbZisxMj4+Ml0sODE5MiZhW2wrMTUyPj4yXXx8KE1oKGwsQSxBLDIpLG09MHxhW3c+PjJdKSxkbFsxMjcmbV0obCxBLHApKSxsZT1ifWZ1bmN0aW9uIGthKGws''@;'; + put 'put ''YyxmLHApe2N8PTAsZnw9MCxwfD0wO3ZhciBELEcsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsUj0wO2lmKEc9bGUsbGU9bGUrNDh8MCxEPUcsMHwobT0wfGFbNjArKGx8PTApPj4yXSkmJjB8YVsoUj1tKzEwMHwwKT4+Ml0mJjB8YVsxNDQrKGs9MHxhWyhNPWwrMTZ8MCk+PjJdKT4+Ml0pe2lm''@;'; + put 'put ''KDQmcCl7bT0tNSZwLHc9cD1rKzE2fDAsYj0oQT1EKSs0MHwwO2Rve2FbQT4+Ml09YVt3Pj4yXSxBPUErNHwwLHc9dys0fDB9d2hpbGUoKDB8QSk8KDB8YikpO3c9ays1NnwwLGI9KEE9cCkrNDB8MDtkb3thW0E+PjJdPWFbdz4+Ml0sQT1BKzR8MCx3PXcrNHwwfXdoaWxlKCgwfEEpPCgwfGIp''@;'; + put 'put ''KTtBPTF9ZWxzZSBtPXAsQT0wO2lmKDgxOTImYVtsKzE1Mj4+Ml0/UmNbMzEmYVtSPj4yXV0obCxjLGYsbSk6KHA9ZisxMHwwLCgwfGFbNDczNjNdKTwoMHxmKT8oYVs0NzM2M109cCxwPTB8VjAoMHxhWzQ3MzY0XSxwPDw0KSxhWzQ3MzY0XT1wKTpwPTB8YVs0NzM2NF0sTWgobCxjLHAsZiks''@;'; + put 'put ''UmNbMzEmYVtSPj4yXV0obCxwLGYsbSkpLDB8QSl7dz1ELGI9NDArKEE9MTYrKDB8YVtNPj4yXSl8MCl8MDtkb3thW0E+PjJdPWFbdz4+Ml0sQT1BKzR8MCx3PXcrNHwwfXdoaWxlKCgwfEEpPCgwfGIpKX19bGU9R31mdW5jdGlvbiB5MyhsLGMsZil7dmFyIHAsbSxBO2x8PTAsZnw9MCxwPWxl''@;'; + put 'put ''LGxlPWxlKzY0fDAsYVsobT1wKT4+Ml09YVsoY3w9MCk+PjJdLGFbbSs0Pj4yXT1hW2MrND4+Ml0sYVttKzg+PjJdPWFbYys4Pj4yXSxhW20rMTI+PjJdPWFbYysxMj4+Ml0sYVsoQT1tKzMyfDApPj4yXT1hWyhjPWMrMTZ8MCk+PjJdLGFbQSs0Pj4yXT1hW2MrND4+Ml0sYVtBKzg+PjJdPWFb''@;'; + put 'put ''Yys4Pj4yXSxhW0ErMTI+PjJdPWFbYysxMj4+Ml0sX1ttKzE2Pj4zXT0rX1ttPj4zXSxfW20rMjQ+PjNdPStfW20rNDA+PjNdLF9bbSs0OD4+M109K19bQT4+M10sX1ttKzU2Pj4zXT0rX1ttKzg+PjNdLGthKGwsbSw0LGYpLGxlPXB9ZnVuY3Rpb24gUWYobCxjLGYscCxtLEEpe2N8PTAsZnw9''@;'; + put 'put ''MCxwfD0wLG18PTAsQXw9MDt2YXIgYix3PTAsaz0wO2I9MHxhWzYwKyhsfD0wKT4+Ml07ZG97aWYoMHxiJiYwfCh3PTB8YVsoaz1iKzEwNHwwKT4+Ml0pJiYwfGFbMTQ0KygwfGFbbCsxNj4+Ml0pPj4yXSl7aWYoODE5MiZhW2wrMTUyPj4yXXwwKXtodlsxNSZ3XShsLGMsZixwLG0sMjU1JkEp''@;'; + put 'put ''O2JyZWFrfXc9ZisxMHwwLCgwfGFbNDczNjNdKTwoMHxmKT8oYVs0NzM2M109dyx3PTB8VjAoMHxhWzQ3MzY0XSx3PDw0KSxhWzQ3MzY0XT13KTp3PTB8YVs0NzM2NF0sTWgobCxjLHcsZiksaHZbMTUmYVtrPj4yXV0obCx3LGYscCxtLDI1NSZBKX19d2hpbGUoMCl9ZnVuY3Rpb24gV28obCxj''@;'; + put 'put ''LGYpe2N8PTAsZnw9MDt2YXIgcD0wLG09MCxBPTA7cD0wfGFbNjArKGx8PTApPj4yXTtkb3tpZigwfHAmJjB8KG09MHxhWyhBPXArMTA4fDApPj4yXSkmJjB8YVsxNDQrKDB8YVtsKzE2Pj4yXSk+PjJdKXtpZig4MTkyJmFbbCsxNTI+PjJdfDApe2RsWzEyNyZtXShsLGMsZik7YnJlYWt9cD1m''@;'; + put 'put ''KzEwfDAsKDB8YVs0NzM2M10pPCgwfGYpPyhhWzQ3MzYzXT1wLHA9MHxWMCgwfGFbNDczNjRdLHA8PDQpLGFbNDczNjRdPXApOnA9MHxhWzQ3MzY0XSxNaChsLGMscCxmKSxkbFsxMjcmYVtBPj4yXV0obCxwLGYpfX13aGlsZSgwKX1mdW5jdGlvbiBkbShsLGMpe3ZhciBmLHA9MDtmPTB8YVs2''@;'; + put 'put ''MCsobHw9MCk+PjJdLDB8KGN8PTApJiYhKDA9PSgwfGYpfDA9PSgwfGZlW2M+PjBdKSkmJjB8KHA9MHxhW2YrMTEyPj4yXSkmJkdzWzYzJnBdKGwsYyl9ZnVuY3Rpb24gcU0obCxjLGYscCxtLEEpe2N8PTAsZnw9MCxwfD0wLG18PTAsQXw9MDt2YXIgUmUsSGUsbnQsV2Usb3QsU3Qsa3Qsdz0w''@;'; + put 'put ''LGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLEs9MCxwZT0wLGdlPTAsYmU9MCxPZT0wLExlPTAsVmU9MCxxZT0wLHN0PTA7aWYoa3Q9bGUsbGU9bGUrMTEyfDAsbnQ9a3QrNjR8MCxTdD1rdCxNPWt0Kzk2fDAsUmU9a3QrNDh8MCxIZT1rdCszMnwwLFdlPTB8YVs2MCsobHw9MCk+PjJdLGx8fFBy''@;'; + put 'put ''KDExMTI4MiwxMTExNzgsNjkxLDExMTE4OSksY3x8UHIoMTExMjA4LDExMTE3OCw2OTIsMTExMTg5KSwwfGZlW2M+PjBdfHxQcigxMTEyMTMsMTExMTc4LDY5MywxMTExODkpLG90PTB8cHJlKGMpKXtpZihhW250Pj4yXT1hWyhwZT1sKzQzMnwwKT4+Ml0sYVtudCs0Pj4yXT1hW3BlKzQ+PjJd''@;'; + put 'put ''LGFbbnQrOD4+Ml09YVtwZSs4Pj4yXSxhW250KzEyPj4yXT1hW3BlKzEyPj4yXSxtcmUoTSxvdCxudCksISgoMHwocGU9MHxhW00+PjJdKSk8MSYoMHwoaz0wfGFbTSs0Pj4yXSkpPDEpKXtmb3IoYVsoTT1TdCsxNnwwKT4+Ml09YVtmPj4yXSxhW00rND4+Ml09YVtmKzQ+PjJdLGFbTSs4Pj4y''@;'; + put 'put ''XT1hW2YrOD4+Ml0sYVtNKzEyPj4yXT1hW2YrMTI+PjJdLGFbU3Q+PjJdPWFbZj4+Ml0sYVtTdCs0Pj4yXT1hW2YrND4+Ml0sYVtTdCs4Pj4yXT1hW2YrOD4+Ml0sYVtTdCsxMj4+Ml09YVtmKzEyPj4yXSxWZT1TdCs4fDAscWU9U3QrMjR8MCxjPTE7ISgoMHxjKT49KDB8cCkpOylfW1N0Pj4z''@;'; + put 'put ''XT0rX1soK19bU3Q+PjNdPChPZT0rX1soc3Q9ZisoYzw8NCl8MCk+PjNdKT9TdDpzdCk+PjNdLF9bVmU+PjNdPStfWygrX1tWZT4+M108KExlPStfW2YrKGM8PDQpKzg+PjNdKT9TdDpzdCkrOD4+M10sX1tNPj4zXT0rX1soK19bTT4+M10+T2U/TTpzdCk+PjNdLF9bcWU+PjNdPStfWygrX1tx''@;'; + put 'put ''ZT4+M10+TGU/TTpzdCkrOD4+M10sYz1jKzF8MDtHPShnZT0oYj0rX1tNPj4zXSktKHc9K19bU3Q+PjNdKSkvKFI9KygwfHBlKSksSz0oTGU9KGJlPStfW3FlPj4zXSktKE9lPStfW1ZlPj4zXSkpLyhEPSsoMHxrKSk7ZTpkb3tzd2l0Y2goMHxlRShBKSl7Y2FzZSAxOmlmKEc8Syl7Uio9RyxE''@;'; + put 'put ''Kj1HO2JyZWFrIGV9Uio9SyxEKj1LO2JyZWFrIGU7Y2FzZSAyOlIqPUc7YnJlYWs7Y2FzZSAzOkQqPUs7YnJlYWs7Y2FzZSA0OlIqPUcsRCo9S319d2hpbGUoMCk7UjxnZSYmKF9bU3Q+PjNdPXcrPWdlPS41KihnZS1SKSxfW00+PjNdPWItPWdlKSxEPExlJiYoX1tWZT4+M109T2UrKExlPS41''@;'; + put 'put ''KihMZS1EKSksX1txZT4+M109YmUtTGUpLDgxOTImYVtsKzE1Mj4+Ml18fChhW250Pj4yXT1hW1N0Pj4yXSxhW250KzQ+PjJdPWFbU3QrND4+Ml0sYVtudCs4Pj4yXT1hW1N0Kzg+PjJdLGFbbnQrMTI+PjJdPWFbU3QrMTI+PjJdLHo4KFJlLGwsbnQpLGFbU3Q+PjJdPWFbUmU+PjJdLGFbU3Qr''@;'; + put 'put ''ND4+Ml09YVtSZSs0Pj4yXSxhW1N0Kzg+PjJdPWFbUmUrOD4+Ml0sYVtTdCsxMj4+Ml09YVtSZSsxMj4+Ml0sYVtudD4+Ml09YVtNPj4yXSxhW250KzQ+PjJdPWFbTSs0Pj4yXSxhW250Kzg+PjJdPWFbTSs4Pj4yXSxhW250KzEyPj4yXT1hW00rMTI+PjJdLHo4KEhlLGwsbnQpLGFbTT4+Ml09''@;'; + put 'put ''YVtIZT4+Ml0sYVtNKzQ+PjJdPWFbSGUrND4+Ml0sYVtNKzg+PjJdPWFbSGUrOD4+Ml0sYVtNKzEyPj4yXT1hW0hlKzEyPj4yXSxiPStfW00+PjNdLHc9K19bU3Q+PjNdKSx3PmImJihfW1N0Pj4zXT1iLF9bTT4+M109dyksKHc9K19bVmU+PjNdKT4oYj0rX1txZT4+M10pJiYoX1tWZT4+M109''@;'; + put 'put ''YixfW3FlPj4zXT13KSwwfFdlJiYoc3Q9MHxhW2wrNzI+PjJdLGFbbnQ+PjJdPWFbU3Q+PjJdLGFbbnQrND4+Ml09YVtTdCs0Pj4yXSxhW250Kzg+PjJdPWFbU3QrOD4+Ml0sYVtudCsxMj4+Ml09YVtTdCsxMj4+Ml0sYVtudCsxNj4+Ml09YVtTdCsxNj4+Ml0sYVtudCsyMD4+Ml09YVtTdCsy''@;'; + put 'put ''MD4+Ml0sYVtudCsyND4+Ml09YVtTdCsyND4+Ml0sYVtudCsyOD4+Ml09YVtTdCsyOD4+Ml0sZnVuY3Rpb24gTFIobCxjLGYscCxtKXtjfD0wLGZ8PTAscHw9MCxtfD0wO3ZhciBBLGIsayxELHc9MCxNPTA7RD1sZSxsZT1sZSsxNzZ8MCxrPUQrOHwwLGI9RCxBPUQrNDB8MCwobHw9MCl8fFBy''@;'; + put 'put ''KDExMTI4MiwxMTEyODYsNTIsMTExMzAwKSxjfHxQcigxMTEzMTIsMTExMjg2LDUzLDExMTMwMCksKHc9MHxhW2MrOD4+Ml0pfHxQcigxMTEzMTUsMTExMjg2LDU0LDExMTMwMCksMHxmZVt3Pj4wXXx8UHIoMTExMzI0LDExMTI4Niw1NSwxMTEzMDApLGlkKEEsMHxhW2MrMjg+PjJdKSx3PUEr''@;'; + put 'put ''KDB8VW8oQSkpfDAsZmVbdz4+MF09NTgsZmVbdysxPj4wXT0wLHN2KEEsbSksOTk5PT0oMHxmdW5jdGlvbiBYeihsLGMpe3JldHVybihjPTB8UkEoMHxhWyhsfD0wKT4+Ml0sNCxjfD0wKSk/KGFbbCs5Mj4+Ml09YVsxMisoYz0wfGFbYysxNj4+Ml0pPj4yXSxhW2wrOTY+PjJdPWFbYz4+Ml0s''@;'; + put 'put ''Yz0zMDApOmM9OTk5LDB8Y30obCxBKSkmJihhW2I+PjJdPUEsJHIoMCwxMTEzMzYsYikpLDB8KG09MHxhW2wrOTI+PjJdKSYmMHwoTT0wfGFbbT4+Ml0pJiYoYVtrPj4yXT1hW2Y+PjJdLGFbays0Pj4yXT1hW2YrND4+Ml0sYVtrKzg+PjJdPWFbZis4Pj4yXSxhW2srMTI+PjJdPWFbZisxMj4+''@;'; + put 'put ''Ml0sYVtrKzE2Pj4yXT1hW2YrMTY+PjJdLGFbaysyMD4+Ml09YVtmKzIwPj4yXSxhW2srMjQ+PjJdPWFbZisyND4+Ml0sYVtrKzI4Pj4yXT1hW2YrMjg+PjJdLFJjWzMxJk1dKGwsYyxrLHApKSxsZT1EfShsLG90LG50LG0sc3QpKX19ZWxzZSAwIT0oMHxXZSkmMCE9KDB8YU4oYykpJiYwfChr''@;'; + put 'put ''PTB8YVtXZSsxMTY+PjJdKSYmcDhbMTUma10obCxjLGYscCwyNTUmbSk7bGU9a3R9ZnVuY3Rpb24gZUUobCl7cmV0dXJuIDB8KDB8ZmVbKGx8PTApPj4wXT8wfHkwKGwsMTQxMTE2KT8wfHkwKGwsMTQxMDQ4KT8wfHkwKGwsMTExMjIxKT8oMHx0MShsKSk8PDI0Pj4yNCE9MCYxOjQ6MzoyOjAp''@;'; + put 'put ''fWZ1bmN0aW9uIHhoKGwsYyl7Yz0rYywwfGFbNjArKGx8PTApPj4yXSYmKF9bMTUyKygwfGFbbCsxNj4+Ml0pPj4zXT1jKX1mdW5jdGlvbiB0RShsLGMpe3JldHVybihjPTB8UkEobHw9MCwxLGN8PTApKT8oYVtsKzE4ND4+Ml09YVs0KyhjPTB8YVtjKzE2Pj4yXSk+PjJdLGFbbCsxNzI+PjJd''@;'; + put 'put ''PWFbYysxMj4+Ml0sYVtsKzE3Nj4+Ml09YVtjPj4yXSxhW2wrMTgwPj4yXT1hW2MrMTY+PjJdLGM9MzAwKTpjPTk5OSwwfGN9ZnVuY3Rpb24gTTkobCxjKXtsfD0wO3ZhciBwLG0sQSx3LGIsayxmPTA7cD1sZSxsZT1sZSs4MHwwLG09cCxrPXArMzJ8MCxhWyhmPXArNDh8MCk+PjJdPWFbKGN8''@;'; + put 'put ''PTApPj4yXSxhW2YrND4+Ml09YVtjKzQ+PjJdLGFbZis4Pj4yXT1hW2MrOD4+Ml0sYVtmKzEyPj4yXT1hW2MrMTI+PjJdLGZ1bmN0aW9uIEJSKGwsYyxmKXtmfD0wO3ZhciBwPTAsbT0wLEE9MCx3PTA7MHxhWzM2MCsoY3w9MCk+PjJdPyhtPS0rX1tmPj4zXSxBPXA9K19bYyszNTI+PjNdLHc9''@;'; + put 'put ''Yys1MjB8MCxwPStfW2YrOD4+M10vKCtfW2MrNTI4Pj4zXSpwKS0rX1tjKzUwND4+M10pOihtPStfW2YrOD4+M10sQT1wPStfW2MrMzUyPj4zXSx3PWMrNTI4fDAscD0rX1tmPj4zXS8oK19bYys1MjA+PjNdKnApLStfW2MrNTA0Pj4zXSksQT1tLygrX1t3Pj4zXSpBKS0rX1tjKzUxMj4+M10s''@;'; + put 'put ''X1sobHw9MCk+PjNdPXAsX1tsKzg+PjNdPUF9KGssbCxmKSx3PStfW2srOD4+M10sX1ttKzE2Pj4zXT0oQT0xLytfW2wrMzUyPj4zXSkrKGI9K19baz4+M10pLF9bbSsyND4+M109QSt3LF9bbT4+M109Yi1BLF9bbSs4Pj4zXT13LUEsYz0wfGFbMTY4KygwfGFbbD4+Ml0pPj4yXSxhW2Y+PjJd''@;'; + put 'put ''PWFbbT4+Ml0sYVtmKzQ+PjJdPWFbbSs0Pj4yXSxhW2YrOD4+Ml09YVttKzg+PjJdLGFbZisxMj4+Ml09YVttKzEyPj4yXSxhW2YrMTY+PjJdPWFbbSsxNj4+Ml0sYVtmKzIwPj4yXT1hW20rMjA+PjJdLGFbZisyND4+Ml09YVttKzI0Pj4yXSxhW2YrMjg+PjJdPWFbbSsyOD4+Ml0sYz0wfGZ1''@;'; + put 'put ''bmN0aW9uIFBSKGwsYyl7Y3w9MDt2YXIgbSxBLGY9MCxwPTA7QT1sZSxsZT1sZSszMnwwLG09QSxwPTB8RHQobHw9MCk7ZTpmb3IoOzspe2lmKCFwKXtwPTk7YnJlYWt9Zm9yKGY9MHx3MChsLHApO2Y7KXtpZihhW20+PjJdPWFbYz4+Ml0sYVttKzQ+PjJdPWFbYys0Pj4yXSxhW20rOD4+Ml09''@;'; + put 'put ''YVtjKzg+PjJdLGFbbSsxMj4+Ml09YVtjKzEyPj4yXSxhW20rMTY+PjJdPWFbYysxNj4+Ml0sYVttKzIwPj4yXT1hW2MrMjA+PjJdLGFbbSsyND4+Ml09YVtjKzI0Pj4yXSxhW20rMjg+PjJdPWFbYysyOD4+Ml0sKDB8a0ooZixtKSk8PDI0Pj4yNCl7cD02O2JyZWFrIGV9Zj0wfFMwKGwsZil9''@;'; + put 'put ''cD0wfHp0KGwscCl9ZG97aWYoNiE9KDB8cCkmJjk9PSgwfHApKXtmb3IoZj0wfFBuKGwpO2Y7KXtpZihhW20+PjJdPWFbYz4+Ml0sYVttKzQ+PjJdPWFbYys0Pj4yXSxhW20rOD4+Ml09YVtjKzg+PjJdLGFbbSsxMj4+Ml09YVtjKzEyPj4yXSxhW20rMTY+PjJdPWFbYysxNj4+Ml0sYVttKzIw''@;'; + put 'put ''Pj4yXT1hW2MrMjA+PjJdLGFbbSsyND4+Ml09YVtjKzI0Pj4yXSxhW20rMjg+PjJdPWFbYysyOD4+Ml0sKDB8QmxlKGYsbSkpPDwyND4+MjQpe3A9MTI7YnJlYWt9Zj0wfFRuKGwsZil9aWYoMTI9PSgwfHApfHwoYVttPj4yXT1hW2M+PjJdLGFbbSs0Pj4yXT1hW2MrND4+Ml0sYVttKzg+PjJd''@;'; + put 'put ''PWFbYys4Pj4yXSxhW20rMTI+PjJdPWFbYysxMj4+Ml0sYVttKzE2Pj4yXT1hW2MrMTY+PjJdLGFbbSsyMD4+Ml09YVtjKzIwPj4yXSxhW20rMjQ+PjJdPWFbYysyND4+Ml0sYVttKzI4Pj4yXT1hW2MrMjg+PjJdLGY9MHxnbShsLG0pKSlicmVhaztmPWw7YnJlYWt9fXdoaWxlKDApO3JldHVy''@;'; + put 'put ''biBsZT1BLDB8Zn0oYyxmKSwoMHxjKSE9KDB8YVsoZj1sKzU3NnwwKT4+Ml0pJiYoZnVuY3Rpb24gRlIobCl7dmFyIGM9MDtjPTB8YVs1NzYrKGx8PTApPj4yXTtlOmRve2lmKDB8Yylzd2l0Y2goMHxraShjKSl7Y2FzZSAwOmZlWyhjPTExMisoMHxhW2MrMTY+PjJdKXwwKT4+MF09LTImZmVb''@;'; + put 'put ''Yz4+MF07YnJlYWsgZTtjYXNlIDE6ZmVbKGM9MTE3KygwfGFbYysxNj4+Ml0pfDApPj4wXT0tMiZmZVtjPj4wXTticmVhayBlO2Nhc2UgMjpmZVsoYz0xMTUrKDB8YVtjKzE2Pj4yXSl8MCk+PjBdPS0yJmZlW2M+PjBdO2JyZWFrIGU7ZGVmYXVsdDpicmVhayBlfX13aGlsZSgwKTthW2wrNTg0''@;'; + put 'put ''Pj4yXT0wfShsKSxhW2Y+PjJdPWMsZnVuY3Rpb24gbEUobCl7dmFyIGYsYz0wOzB8KGM9MHxhWyhmPTU4NCsobHw9MCl8MCk+PjJdKSYmKEZ0KGMpLGFbZj4+Ml09MCksYz0wfGFbbCs1NzY+PjJdO2U6ZG97aWYoMHxjKXN3aXRjaCgwfGtpKGMpKXtjYXNlIDA6aWYoZmVbKGw9MTEyKygwfGFb''@;'; + put 'put ''YysxNj4+Ml0pfDApPj4wXT0xfGZlW2w+PjBdLCEobD0wfHNpKGMsMCwxNDExMDEsMCkpKWJyZWFrIGU7YVtmPj4yXT0wfG0yKDB8SG8oYyxsKSxjKTticmVhayBlO2Nhc2UgMTppZihmZVsobD0xMTcrKDB8YVtjKzE2Pj4yXSl8MCk+PjBdPTF8ZmVbbD4+MF0sIShsPTB8c2koMHxjcihjKSwx''@;'; + put 'put ''LDE0MTEwMSwwKSkpYnJlYWsgZTthW2Y+PjJdPTB8bTIoMHxIbyhjLGwpLGMpO2JyZWFrIGU7Y2FzZSAyOmlmKGZlWyhsPTExNSsoMHxhW2MrMTY+PjJdKXwwKT4+MF09MXxmZVtsPj4wXSwhKGw9MHxzaSgwfGNyKDB8YVsoMj09KDMmYVtjPj4yXXwwKT9jOmMrLTQ4fDApKzQwPj4yXSksMiwx''@;'; + put 'put ''NDExMDEsMCkpKWJyZWFrIGU7YVtmPj4yXT0wfG0yKDB8SG8oYyxsKSxjKTticmVhayBlO2RlZmF1bHQ6YnJlYWsgZX19d2hpbGUoMCl9KGwpLGZlW2wrNTM3Pj4wXT0xKSxsZT1wfWZ1bmN0aW9uIGdtKGwsYyl7Y3w9MDt2YXIgcCxBLHcsYixNLGY9MCxtPTAsaz0wO2ZvcihNPWxlLGxlPWxl''@;'; + put 'put ''KzMyfDAscD1NLHc9MHxhWzE4MCsoQT0wfGFbMTYrKGx8PTApPj4yXSk+PjJdLGI9QSsxODR8MCxmPTE7Oyl7aWYoKDB8Zik+KDB8dykpe2s9NDticmVha31pZihtPTB8YVsoMHxhW2I+PjJdKSsoZjw8Mik+PjJdLGFbcD4+Ml09YVtjPj4yXSxhW3ArND4+Ml09YVtjKzQ+PjJdLGFbcCs4Pj4y''@;'; + put 'put ''XT1hW2MrOD4+Ml0sYVtwKzEyPj4yXT1hW2MrMTI+PjJdLGFbcCsxNj4+Ml09YVtjKzE2Pj4yXSxhW3ArMjA+PjJdPWFbYysyMD4+Ml0sYVtwKzI0Pj4yXT1hW2MrMjQ+PjJdLGFbcCsyOD4+Ml09YVtjKzI4Pj4yXSxtPTB8Z20obSxwKSl7bD1tO2JyZWFrfWY9ZisxfDB9ZG97aWYoND09KDB8''@;'; + put 'put ''aykpe2lmKCtfW2MrMTY+PjNdPj0rX1tBKzE2Pj4zXSYmK19bQSszMj4+M10+PStfW2M+PjNdJiYrX1tjKzI0Pj4zXT49K19bQSsyND4+M10mJitfW0ErNDA+PjNdPj0rX1tjKzg+PjNdKWJyZWFrO2w9MH19d2hpbGUoMCk7cmV0dXJuIGxlPU0sMHxsfWZ1bmN0aW9uIFk4KGwsYyl7Y3w9MDt2''@;'; + put 'put ''YXIgbSxmPTAscD0wLEE9MDtmPTU5MisobHw9MCl8MDtkb3tpZigoMHxkaShjKSk9PSgwfGMpKXtpZigwfFNjKGMpKXtndShmLDAsMTExNDg2KTticmVha31ndShmLDAsMTExNDk0KTticmVha31ndShmLDAsMTExNTAwKX13aGlsZSgwKTtmb3IoZ3UoZiwxLDB8dGkoYykpLGFbbCs1OTY+PjJd''@;'; + put 'put ''PTIsbT1sKzYwNHwwLGY9MCxwPTI7Zj0wfEhzKGMsMCxmKTspZ3UobSxwLDB8YVtmKzg+PjJdKSxndShtLHArMXwwLDB8SG8oYyxmKSksZ3UobSxwKzJ8MCwwKSxwPXArM3wwO2FbbCs2MDg+PjJdPXAsKChmPTB8c2koYywwLDE0MTA1NSwwKSl8fDB8KGY9MHxzaShjLDAsMTExNDc3LDApKSkm''@;'; + put 'put ''JihBPTExKSwxMT09KDB8QSkmJihhW2wrNTg4Pj4yXT0wfG0yKDB8SG8oYyxmKSxjKSl9ZnVuY3Rpb24gYjMobCxjKXtjfD0wO3ZhciBBLGY9MCxwPTAsbT0wLHc9MDtmb3IoZ3UobT01OTIrKGx8PTApfDAsMCwxMTE0ODEpLGd1KG0sMSwwfHRpKGMpKSxhW2wrNTk2Pj4yXT0yLG09bCs2MDR8''@;'; + put 'put ''MCxBPTB8ZGkoMHxjcihjKSkscD0yLGY9MDtmPTB8SHMoQSwxLGYpOylndShtLHAsMHxhW2YrOD4+Ml0pLGd1KG0sMXxwLDB8SG8oYyxmKSkscD1wKzJ8MDthW2wrNjA4Pj4yXT1wLCgoZj0wfHNpKDB8Y3IoYyksMSwxNDEwNTUsMCkpfHwwfChmPTB8c2koMHxjcihjKSwxLDExMTQ3NywwKSkp''@;'; + put 'put ''JiYodz02KSw2PT0oMHx3KSYmKGFbbCs1ODg+PjJdPTB8bTIoMHxIbyhjLGYpLGMpKX1mdW5jdGlvbiBhMihsLGMpe2N8PTA7dmFyIHcsYixrLGY9MCxwPTAsbT0wLEE9MCxNPTAsRD0wO2d1KHc9NTkyKyhsfD0wKXwwLDAsMTExNDUwKSxNPWMrNDh8MCxndSh3LDEsMHx0aSgwfGFbKDM9PSgz''@;'; + put 'put ''JmFbYz4+Ml18MCk/YzpNKSs0MD4+Ml0pKSxndSh3LDMsKE09MCE9KDB8U2MoMHxjcigwfGFbKDM9PSgzJmFbYz4+Ml18MCk/YzpNKSs0MD4+Ml0pKSkpPzEzNzczODoxNDE3NDcpLE09YystNDh8MCxndSh3LDQsMHx0aSgwfGFbKDI9PSgzJmFbYz4+Ml18MCk/YzpNKSs0MD4+Ml0pKSxhW2wr''@;'; + put 'put ''NTk2Pj4yXT03LGI9bCs2MDR8MCxrPTB8ZGkoMHxjcigwfGFbKDI9PSgzJmFbYz4+Ml18MCk/YzpNKSs0MD4+Ml0pKSxBPTcsZj0wO2U6Zm9yKDs7KXtmb3IoOzspe2lmKCEoZj0wfEhzKGssMixmKSkpYnJlYWsgZTtpZighKDB8WmkobT0wfGFbKHA9Zis4fDApPj4yXSwxMTE0NTUpKSl7RD01''@;'; + put 'put ''O2JyZWFrfWlmKCEoMHxaaShtLDExMTQ2NCkpKXtEPTc7YnJlYWt9aWYoMHxaaShtLDExMTQ3MykpYnJlYWs7Z3Uodyw2LDB8SG8oYyxmKSl9NT09KDB8RCk/KEQ9MCxndSh3LDIsMHxIbyhjLGYpKSk6Nz09KDB8RCkmJihEPTAsZ3Uodyw1LDB8SG8oYyxmKSkpLGd1KGIsQSwwfGFbcD4+Ml0p''@;'; + put 'put ''LGd1KGIsQSsxfDAsMHxIbyhjLGYpKSxBPUErMnwwfWFbbCs2MDg+PjJdPUEsKChmPTB8c2koMHxjcigwfGFbKDI9PSgzJmFbYz4+Ml18MCk/YzpNKSs0MD4+Ml0pLDIsMTQxMDU1LDApKXx8MHwoZj0wfHNpKDB8Y3IoMHxhWygyPT0oMyZhW2M+PjJdfDApP2M6TSkrNDA+PjJdKSwyLDExMTQ3''@;'; + put 'put ''NywwKSkpJiYoRD0xMyksMTM9PSgwfEQpJiYoYVtsKzU4OD4+Ml09MHxtMigwfEhvKGMsZiksYykpfWZ1bmN0aW9uIFU4KGwsYyxmKXt2YXIgQSxwPTAsbT0wO2ZvcihBPTB8ZnVuY3Rpb24gXzMobCxjLGYpe2x8PTAsY3w9MCxmfD0wO3ZhciBwO3JldHVybiBwPTB8UW4oMTIpLGM9Yz8wfHJh''@;'; + put 'put ''KGMpOjAsYVtwKzQ+PjJdPWMsYVtwKzg+PjJdPTB8cmEoZiksYVtwPj4yXT1hWyhmPWwrMTAwfDApPj4yXSxhW2Y+PjJdPXAsMHxwfShsfD0wLGN8PTAsMHxhWyhmfD0wKT4+Ml0pLGY9MHxhW2YrND4+Ml07bT0wfGFbZis0Pj4yXTspe2ZvcihjPTA7cD0wfGFbbSsoMjAqY3wwKSs0Pj4yXTsp''@;'; + put 'put ''R0cobCwwfGFbZj4+Ml0scCwwfGFbbSsoMjAqY3wwKSs4Pj4yXSxBLG0rKDIwKmN8MCl8MCksYz1jKzF8MDtmPWYrOHwwfX1mdW5jdGlvbiB1RShsLGMsZil7bHw9MCxjfD0wO3ZhciBMZSxIZSxWZSxxZSxudCxXZSxvdCxTdCxrdCxzdCxFdCxadCxjdCxidCxhbixTbixIbixwPTAsbT0wLEE9''@;'; + put 'put ''MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAsSz0wLHBlPTAsZ2U9MCxiZT0wLE9lPTAsUmU9MDtIbj1sZSxsZT1sZSs0NjR8MCxidD1Ibis0MTZ8MCxTbj1Ibis0MDB8MCxFdD1IbiszODR8MCxNPUhuKzM1MnwwLEQ9SG4rMzIwfDAsUj1IbisyODh8MCxHPUhuKzI1NnwwLHBlPUhuKzIy''@;'; + put 'put ''NHwwLGdlPUhuKzE5MnwwLGJlPUhuKzE2MHwwLE9lPUhuKzEyOHwwLExlPUhuKzk2fDAsSGU9SG4rNjR8MCxWZT1IbiszMnwwLFp0PUhuLG50PS4xMjUqKDIqKHA9K19bKHFlPTB8YVszMisoZnw9MCk+PjJdKT4+M10pKyArX1sob3Q9ZisxNnwwKT4+M10pLGFuPS41KigyKitfWyhTdD1xZSs4''@;'; + put 'put ''fDApPj4zXSsodz0rX1soY3Q9ZisyNHwwKT4+M10pKSxxZXx8UHIoMTExNTMzLDExMTU0Myw0NDUsMTExNTUzKSxBPShtPWJ0KSszNnwwO2Rve2FbbT4+Ml09MCxtPW0rNHwwfXdoaWxlKCgwfG0pPCgwfEEpKTtfWyhXZT1xZSsxNnwwKT4+M109K19bZj4+M10tcCxfWyhzdD1xZSsyNHwwKT4+''@;'; + put 'put ''M109dysgK19bKGt0PWYrOHwwKT4+M10sd2MoTSxjLGYsYnQpLGI9MHxhW00+PjJdLG09MHxhW00rND4+Ml0scD0rX1tNKzg+PjNdLGFbU24+PjJdPWFbKE09TSsxNnwwKT4+Ml0sYVtTbis0Pj4yXT1hW00rND4+Ml0sYVtTbis4Pj4yXT1hW00rOD4+Ml0sYVtTbisxMj4+Ml09YVtNKzEyPj4y''@;'; + put 'put ''XTtlOmRve2lmKGIpe2lmKF9bc3Q+PjNdPStfW2t0Pj4zXSx3YyhELGMsZixidCksQT0wfGFbRD4+Ml0sTT0wfGFbRCs0Pj4yXSx3PStfW0QrOD4+M10sYVtFdD4+Ml09YVsoRD1EKzE2fDApPj4yXSxhW0V0KzQ+PjJdPWFbRCs0Pj4yXSxhW0V0Kzg+PjJdPWFbRCs4Pj4yXSxhW0V0KzEyPj4y''@;'; + put 'put ''XT1hW0QrMTI+PjJdLCFBKXthW2w+PjJdPTAsYVtsKzQ+PjJdPU0sX1tsKzg+PjNdPXcsYVsobD1sKzE2fDApPj4yXT1hW0V0Pj4yXSxhW2wrND4+Ml09YVtFdCs0Pj4yXSxhW2wrOD4+Ml09YVtFdCs4Pj4yXSxhW2wrMTI+PjJdPWFbRXQrMTI+PjJdO2JyZWFrfWlmKHc8cD8oYVtTbj4+Ml09''@;'; + put 'put ''YVtFdD4+Ml0sYVtTbis0Pj4yXT1hW0V0KzQ+PjJdLGFbU24rOD4+Ml09YVtFdCs4Pj4yXSxhW1NuKzEyPj4yXT1hW0V0KzEyPj4yXSxtPU0scD13KTpBPWIsX1tzdD4+M109K19ba3Q+PjNdLStfW1N0Pj4zXSx3YyhSLGMsZixidCksTT0wfGFbUj4+Ml0sYj0wfGFbUis0Pj4yXSx3PStfW1Ir''@;'; + put 'put ''OD4+M10sYVtFdD4+Ml09YVsoUj1SKzE2fDApPj4yXSxhW0V0KzQ+PjJdPWFbUis0Pj4yXSxhW0V0Kzg+PjJdPWFbUis4Pj4yXSxhW0V0KzEyPj4yXT1hW1IrMTI+PjJdLCFNKXthW2w+PjJdPTAsYVtsKzQ+PjJdPWIsX1tsKzg+PjNdPXcsYVsobD1sKzE2fDApPj4yXT1hW0V0Pj4yXSxhW2wr''@;'; + put 'put ''ND4+Ml09YVtFdCs0Pj4yXSxhW2wrOD4+Ml09YVtFdCs4Pj4yXSxhW2wrMTI+PjJdPWFbRXQrMTI+PjJdO2JyZWFrfWlmKHc8cD8oYVtTbj4+Ml09YVtFdD4+Ml0sYVtTbis0Pj4yXT1hW0V0KzQ+PjJdLGFbU24rOD4+Ml09YVtFdCs4Pj4yXSxhW1NuKzEyPj4yXT1hW0V0KzEyPj4yXSxtPWIs''@;'; + put 'put ''cD13KTpNPUEsX1tXZT4+M109K19bZj4+M10sX1tzdD4+M109K19bY3Q+PjNdKyArX1trdD4+M10sd2MoRyxjLGYsYnQpLEE9MHxhW0c+PjJdLGI9MHxhW0crND4+Ml0sdz0rX1tHKzg+PjNdLGFbRXQ+PjJdPWFbKEc9RysxNnwwKT4+Ml0sYVtFdCs0Pj4yXT1hW0crND4+Ml0sYVtFdCs4Pj4y''@;'; + put 'put ''XT1hW0crOD4+Ml0sYVtFdCsxMj4+Ml09YVtHKzEyPj4yXSwhQSl7YVtsPj4yXT0wLGFbbCs0Pj4yXT1iLF9bbCs4Pj4zXT13LGFbKGw9bCsxNnwwKT4+Ml09YVtFdD4+Ml0sYVtsKzQ+PjJdPWFbRXQrND4+Ml0sYVtsKzg+PjJdPWFbRXQrOD4+Ml0sYVtsKzEyPj4yXT1hW0V0KzEyPj4yXTti''@;'; + put 'put ''cmVha31pZih3PHAmJihhW1NuPj4yXT1hW0V0Pj4yXSxhW1NuKzQ+PjJdPWFbRXQrND4+Ml0sYVtTbis4Pj4yXT1hW0V0Kzg+PjJdLGFbU24rMTI+PjJdPWFbRXQrMTI+PjJdLE09QSxtPWIscD13KSxfW3N0Pj4zXT0rX1trdD4+M10tK19bU3Q+PjNdLHdjKHBlLGMsZixidCksQT0wfGFbcGU+''@;'; + put 'put ''PjJdLGI9MHxhW3BlKzQ+PjJdLHc9K19bcGUrOD4+M10sYVtFdD4+Ml09YVsocGU9cGUrMTZ8MCk+PjJdLGFbRXQrND4+Ml09YVtwZSs0Pj4yXSxhW0V0Kzg+PjJdPWFbcGUrOD4+Ml0sYVtFdCsxMj4+Ml09YVtwZSsxMj4+Ml0sIUEpe2FbbD4+Ml09MCxhW2wrND4+Ml09YixfW2wrOD4+M109''@;'; + put 'put ''dyxhWyhsPWwrMTZ8MCk+PjJdPWFbRXQ+PjJdLGFbbCs0Pj4yXT1hW0V0KzQ+PjJdLGFbbCs4Pj4yXT1hW0V0Kzg+PjJdLGFbbCsxMj4+Ml09YVtFdCsxMj4+Ml07YnJlYWt9aWYodzxwJiYoYVtTbj4+Ml09YVtFdD4+Ml0sYVtTbis0Pj4yXT1hW0V0KzQ+PjJdLGFbU24rOD4+Ml09YVtFdCs4''@;'; + put 'put ''Pj4yXSxhW1NuKzEyPj4yXT1hW0V0KzEyPj4yXSxNPUEsbT1iLHA9dyksX1tXZT4+M109K19bb3Q+PjNdKyArX1tmPj4zXSxfW3N0Pj4zXT0rX1tjdD4+M10rICtfW2t0Pj4zXSx3YyhnZSxjLGYsYnQpLEE9MHxhW2dlPj4yXSxiPTB8YVtnZSs0Pj4yXSx3PStfW2dlKzg+PjNdLGFbRXQ+PjJd''@;'; + put 'put ''PWFbKGdlPWdlKzE2fDApPj4yXSxhW0V0KzQ+PjJdPWFbZ2UrND4+Ml0sYVtFdCs4Pj4yXT1hW2dlKzg+PjJdLGFbRXQrMTI+PjJdPWFbZ2UrMTI+PjJdLCFBKXthW2w+PjJdPTAsYVtsKzQ+PjJdPWIsX1tsKzg+PjNdPXcsYVsobD1sKzE2fDApPj4yXT1hW0V0Pj4yXSxhW2wrND4+Ml09YVtF''@;'; + put 'put ''dCs0Pj4yXSxhW2wrOD4+Ml09YVtFdCs4Pj4yXSxhW2wrMTI+PjJdPWFbRXQrMTI+PjJdO2JyZWFrfWlmKHc8cCYmKGFbU24+PjJdPWFbRXQ+PjJdLGFbU24rND4+Ml09YVtFdCs0Pj4yXSxhW1NuKzg+PjJdPWFbRXQrOD4+Ml0sYVtTbisxMj4+Ml09YVtFdCsxMj4+Ml0sTT1BLG09YixwPXcp''@;'; + put 'put ''LF9bc3Q+PjNdPStfW2t0Pj4zXSx3YyhiZSxjLGYsYnQpLEE9MHxhW2JlPj4yXSxiPTB8YVtiZSs0Pj4yXSx3PStfW2JlKzg+PjNdLGFbRXQ+PjJdPWFbKGJlPWJlKzE2fDApPj4yXSxhW0V0KzQ+PjJdPWFbYmUrND4+Ml0sYVtFdCs4Pj4yXT1hW2JlKzg+PjJdLGFbRXQrMTI+PjJdPWFbYmUr''@;'; + put 'put ''MTI+PjJdLCFBKXthW2w+PjJdPTAsYVtsKzQ+PjJdPWIsX1tsKzg+PjNdPXcsYVsobD1sKzE2fDApPj4yXT1hW0V0Pj4yXSxhW2wrND4+Ml09YVtFdCs0Pj4yXSxhW2wrOD4+Ml09YVtFdCs4Pj4yXSxhW2wrMTI+PjJdPWFbRXQrMTI+PjJdO2JyZWFrfWlmKHc8cCYmKGFbU24+PjJdPWFbRXQ+''@;'; + put 'put ''PjJdLGFbU24rND4+Ml09YVtFdCs0Pj4yXSxhW1NuKzg+PjJdPWFbRXQrOD4+Ml0sYVtTbisxMj4+Ml09YVtFdCsxMj4+Ml0sTT1BLG09YixwPXcpLF9bc3Q+PjNdPStfW2t0Pj4zXS0rX1tTdD4+M10sd2MoT2UsYyxmLGJ0KSxBPTB8YVtPZT4+Ml0sYj0wfGFbT2UrND4+Ml0sdz0rX1tPZSs4''@;'; + put 'put ''Pj4zXSxhW0V0Pj4yXT1hWyhPZT1PZSsxNnwwKT4+Ml0sYVtFdCs0Pj4yXT1hW09lKzQ+PjJdLGFbRXQrOD4+Ml09YVtPZSs4Pj4yXSxhW0V0KzEyPj4yXT1hW09lKzEyPj4yXSwhQSl7YVtsPj4yXT0wLGFbbCs0Pj4yXT1iLF9bbCs4Pj4zXT13LGFbKGw9bCsxNnwwKT4+Ml09YVtFdD4+Ml0s''@;'; + put 'put ''YVtsKzQ+PjJdPWFbRXQrND4+Ml0sYVtsKzg+PjJdPWFbRXQrOD4+Ml0sYVtsKzEyPj4yXT1hW0V0KzEyPj4yXTticmVha313PHA/KGFbU24+PjJdPWFbRXQ+PjJdLGFbU24rND4+Ml09YVtFdCs0Pj4yXSxhW1NuKzg+PjJdPWFbRXQrOD4+Ml0sYVtTbisxMj4+Ml09YVtFdCsxMj4+Ml0sbT1i''@;'; + put 'put ''LHA9dyk6QT1NLGI9MD09KDB8YVtidCsyOD4+Ml0pO2Rve2lmKDB8YVtidCsyND4+Ml0pUmU9Yj8zODo0NjtlbHNlIGlmKGIpe2lmKDB8YVtidCszMj4+Ml0pe1JlPTM4O2JyZWFrfTA9PSgwfGFbYnQrMTI+PjJdKSYwPT0oMHxhW2J0Pj4yXSl8fChSZT0zOCl9ZWxzZSBSZT00Nn13aGlsZSgw''@;'; + put 'put ''KTt0OmRve2lmKDM4PT0oMHxSZSkpe2lmKCEoMHxhW2J0KzMyPj4yXSkpe19bV2U+PjNdPStfW2Y+PjNdLStfW3FlPj4zXSxHPUxlKzR8MCxwZT1MZSs4fDAsZ2U9TGUrMTZ8MCxNPXN0LGI9a3Qsdz0rX1tjdD4+M107bjpmb3IoOzspe2Zvcig7Oyl7aWYoX1tNPj4zXT0rX1tiPj4zXSt3LCEo''@;'; + put 'put ''K19bV2U+PjNdPD0rX1tvdD4+M10rICtfW2Y+PjNdKSl7UmU9NDY7YnJlYWsgdH1pZih3YyhMZSxjLGYsYnQpLEQ9MHxhW0xlPj4yXSxSPTB8YVtHPj4yXSxrPStfW3BlPj4zXSxhW0V0Pj4yXT1hW2dlPj4yXSxhW0V0KzQ+PjJdPWFbZ2UrND4+Ml0sYVtFdCs4Pj4yXT1hW2dlKzg+PjJdLGFb''@;'; + put 'put ''RXQrMTI+PjJdPWFbZ2UrMTI+PjJdLCFEKWJyZWFrIG47aWYoazxwKWJyZWFrO009V2UsYj1XZSx3PW50fWFbU24+PjJdPWFbRXQ+PjJdLGFbU24rND4+Ml09YVtFdCs0Pj4yXSxhW1NuKzg+PjJdPWFbRXQrOD4+Ml0sYVtTbisxMj4+Ml09YVtFdCsxMj4+Ml0sTT1XZSxiPVdlLHc9bnQsQT1E''@;'; + put 'put ''LG09UixwPWt9YVtsPj4yXT0wLGFbbCs0Pj4yXT1SLF9bbCs4Pj4zXT1rLGFbKGw9bCsxNnwwKT4+Ml09YVtFdD4+Ml0sYVtsKzQ+PjJdPWFbRXQrND4+Ml0sYVtsKzg+PjJdPWFbRXQrOD4+Ml0sYVtsKzEyPj4yXT1hW0V0KzEyPj4yXTticmVhayBlfVJlPTQ2fX13aGlsZSgwKTt0OmRve2lm''@;'; + put 'put ''KDQ2PT0oMHxSZSkmJjA9PSgwfGFbYnQrMTI+PjJdKSYwPT0oMHxhW2J0Pj4yXSkpe2ZvcihfW1dlPj4zXT0rX1tmPj4zXS0rX1txZT4+M10sRD1IZSs0fDAsUj1IZSs4fDAsRz1IZSsxNnwwLHc9az0rX1trdD4+M10saz0rX1tjdD4+M10razs7KXtpZihfW3N0Pj4zXT1rLCEoaz49dy0rX1tT''@;'; + put 'put ''dD4+M10pKWJyZWFrIHQ7aWYod2MoSGUsYyxmLGJ0KSxiPTB8YVtIZT4+Ml0sTT0wfGFbRD4+Ml0sdz0rX1tSPj4zXSxhW0V0Pj4yXT1hW0c+PjJdLGFbRXQrND4+Ml09YVtHKzQ+PjJdLGFbRXQrOD4+Ml09YVtHKzg+PjJdLGFbRXQrMTI+PjJdPWFbRysxMj4+Ml0sIWIpYnJlYWs7dzxwJiYo''@;'; + put 'put ''YVtTbj4+Ml09YVtFdD4+Ml0sYVtTbis0Pj4yXT1hW0V0KzQ+PjJdLGFbU24rOD4+Ml09YVtFdCs4Pj4yXSxhW1NuKzEyPj4yXT1hW0V0KzEyPj4yXSxBPWIsbT1NLHA9dyksdz0rX1trdD4+M10saz0rX1tzdD4+M10tYW59YVtsPj4yXT0wLGFbbCs0Pj4yXT1NLF9bbCs4Pj4zXT13LGFbKGw9''@;'; + put 'put ''bCsxNnwwKT4+Ml09YVtFdD4+Ml0sYVtsKzQ+PjJdPWFbRXQrND4+Ml0sYVtsKzg+PjJdPWFbRXQrOD4+Ml0sYVtsKzEyPj4yXT1hW0V0KzEyPj4yXTticmVhayBlfX13aGlsZSgwKTtfW1dlPj4zXT1rPStfW290Pj4zXSsodz0rX1tmPj4zXSksX1tzdD4+M109K19ba3Q+PjNdLShLPStfW1N0''@;'; + put 'put ''Pj4zXSksYj0wfGFbYnQrND4+Ml07ZG97aWYoMHxhW2J0Kzg+PjJdKU09MHxhW2J0Pj4yXSxSZT01OTtlbHNle2lmKCEoMD09KDB8YikmMD09KDB8KE09MHxhW2J0Pj4yXSkpKSl7UmU9NTk7YnJlYWt9aWYoMHxhW2J0KzIwPj4yXSl7Yj0wLE09MCxSZT01OTticmVha30wfGFbYnQrMzI+PjJd''@;'; + put 'put ''JiYoYj0wLE09MCxSZT01OSl9fXdoaWxlKDApO3Q6ZG97aWYoNTk9PSgwfFJlKSl7bjpkb3tpZigwPT0oMHxiKSYwPT0oMHxNKSl7X1tXZT4+M109ayxHPVZlKzR8MCxwZT1WZSs4fDAsZ2U9VmUrMTZ8MCxNPXN0LGI9a3Qsdz1LO3I6Zm9yKDs7KXtmb3IoOzspe2lmKF9bTT4+M109K19bYj4+''@;'; + put 'put ''M10tdywhKCtfW1dlPj4zXT49KHc9K19bZj4+M10pLStfW3FlPj4zXSkpYnJlYWsgbjtpZih3YyhWZSxjLGYsYnQpLEQ9MHxhW1ZlPj4yXSxSPTB8YVtHPj4yXSxrPStfW3BlPj4zXSxhW0V0Pj4yXT1hW2dlPj4yXSxhW0V0KzQ+PjJdPWFbZ2UrND4+Ml0sYVtFdCs4Pj4yXT1hW2dlKzg+PjJd''@;'; + put 'put ''LGFbRXQrMTI+PjJdPWFbZ2UrMTI+PjJdLCFEKWJyZWFrIHI7aWYoazxwKWJyZWFrO009V2UsYj1XZSx3PW50fWFbU24+PjJdPWFbRXQ+PjJdLGFbU24rND4+Ml09YVtFdCs0Pj4yXSxhW1NuKzg+PjJdPWFbRXQrOD4+Ml0sYVtTbisxMj4+Ml09YVtFdCsxMj4+Ml0sTT1XZSxiPVdlLHc9bnQs''@;'; + put 'put ''QT1ELG09UixwPWt9YVtsPj4yXT0wLGFbbCs0Pj4yXT1SLF9bbCs4Pj4zXT1rLGFbKGw9bCsxNnwwKT4+Ml09YVtFdD4+Ml0sYVtsKzQ+PjJdPWFbRXQrND4+Ml0sYVtsKzg+PjJdPWFbRXQrOD4+Ml0sYVtsKzEyPj4yXT1hW0V0KzEyPj4yXTticmVhayBlfX13aGlsZSgwKTtpZigwfGFbYnQr''@;'; + put 'put ''MjA+PjJdfHwwfGFbYnQrMzI+PjJdKWJyZWFrO2ZvcihfW1dlPj4zXT0rX1tvdD4+M10rdyxEPVp0KzR8MCxSPVp0Kzh8MCxHPVp0KzE2fDAsaz13PStfW2t0Pj4zXSx3LT0rX1tTdD4+M107Oyl7aWYoX1tzdD4+M109dywhKHc8PStfW2N0Pj4zXStrKSlicmVhayB0O2lmKHdjKFp0LGMsZixi''@;'; + put 'put ''dCksYj0wfGFbWnQ+PjJdLE09MHxhW0Q+PjJdLHc9K19bUj4+M10sYVtFdD4+Ml09YVtHPj4yXSxhW0V0KzQ+PjJdPWFbRys0Pj4yXSxhW0V0Kzg+PjJdPWFbRys4Pj4yXSxhW0V0KzEyPj4yXT1hW0crMTI+PjJdLCFiKWJyZWFrO3c8cCYmKGFbU24+PjJdPWFbRXQ+PjJdLGFbU24rND4+Ml09''@;'; + put 'put ''YVtFdCs0Pj4yXSxhW1NuKzg+PjJdPWFbRXQrOD4+Ml0sYVtTbisxMj4+Ml09YVtFdCsxMj4+Ml0sQT1iLG09TSxwPXcpLGs9K19ba3Q+PjNdLHc9K19bc3Q+PjNdK2FufWFbbD4+Ml09MCxhW2wrND4+Ml09TSxfW2wrOD4+M109dyxhWyhsPWwrMTZ8MCk+PjJdPWFbRXQ+PjJdLGFbbCs0Pj4y''@;'; + put 'put ''XT1hW0V0KzQ+PjJdLGFbbCs4Pj4yXT1hW0V0Kzg+PjJdLGFbbCsxMj4+Ml09YVtFdCsxMj4+Ml07YnJlYWsgZX19d2hpbGUoMCk7YVtsPj4yXT1BLGFbbCs0Pj4yXT1tLF9bbCs4Pj4zXT1wLGFbKGw9bCsxNnwwKT4+Ml09YVtTbj4+Ml0sYVtsKzQ+PjJdPWFbU24rND4+Ml0sYVtsKzg+PjJd''@;'; + put 'put ''PWFbU24rOD4+Ml0sYVtsKzEyPj4yXT1hW1NuKzEyPj4yXX1lbHNlIGFbbD4+Ml09MCxhW2wrND4+Ml09bSxfW2wrOD4+M109cCxsPWwrMTZ8MCxhW2w+PjJdPWFbU24+PjJdLGFbbCs0Pj4yXT1hW1NuKzQ+PjJdLGFbbCs4Pj4yXT1hW1NuKzg+PjJdLGFbbCsxMj4+Ml09YVtTbisxMj4+Ml19''@;'; + put 'put ''d2hpbGUoMCk7bGU9SG59ZnVuY3Rpb24gd2MobCxjLGYscCl7bHw9MCxjfD0wLHB8PTA7dmFyIFIsRyxnZSxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsSz0wLHBlPTA7Zm9yKGdlPWxlLGxlPWxlKzQ4fDAsRz1nZSszMnwwLHBlPWdlKzE2fDAsUj1nZSwobT0wfGFbMzIrKGZ8PTApPj4y''@;'; + put 'put ''XSl8fFByKDExMTUzMywxMTE1NDMsMzgyLDExMTU2MiksYVtSPj4yXT1hWyhEPW0rMTZ8MCk+PjJdLGFbUis0Pj4yXT1hW0QrND4+Ml0sYVtSKzg+PjJdPWFbRCs4Pj4yXSxhW1IrMTI+PjJdPWFbRCsxMj4+Ml0sRD1jKzR8MCxrPTAsbT0wOyEoKDB8ayk+PSgwfGFbRD4+Ml0pKTspe2I9KHc9''@;'; + put 'put ''MHxhW2M+PjJdKSsoNDAqa3wwKXwwO2Rve2lmKCgwfGIpIT0oMHxmKSl7aWYoK19bdysoNDAqa3wwKSsxNj4+M10+MCYmK19bdysoNDAqa3wwKSsyND4+M10+MClicmVhazttPW0rKDAhPSgwfFI0KGYsYikpJjEpfDB9fXdoaWxlKDApO2s9aysxfDB9aWYoVGgoZixHKSxrPTB8TjQoaz0wfGFb''@;'; + put 'put ''YysyND4+Ml0sMHxhW2s+PjJdLEcpKXtmb3IoYj1rLEE9MDtiOykoMHwodz0wfGFbMTYrKDB8YVtiKzQ+PjJdKT4+Ml0pKSE9KDB8ZikmJihBZih3LHBlKSwoTT0rQzMoRyxwZSkpPjAmJihtPW0rMXwwLEE9K0o4KGYsdyxHLE0scCkrQSksMCE9KDB8KGM9MHxhW3crMzI+PjJdKSkmJjAhPSgw''@;'; + put 'put ''fGZlW2MrMzY+PjBdKSYmKFRoKHcscGUpLChLPStDMyhHLHBlKSk+MCkmJihtPW0rMXwwLEE9K1ZSKGYsdyxHLEsscCkrQSkpLGI9MHxhW2I+PjJdOyhmdW5jdGlvbiBaOShsKXtsfD0wO3ZhciBjPTA7ZG97Yz1sLGw9MHxhW2w+PjJdLEZ0KGMpfXdoaWxlKDAhPSgwfGwpKX0pKGspLGFbbD4+''@;'; + put 'put ''Ml09bSxfW2wrOD4+M109QSxhWyhwZT1sKzE2fDApPj4yXT1hW1I+PjJdLGFbcGUrND4+Ml09YVtSKzQ+PjJdLGFbcGUrOD4+Ml09YVtSKzg+PjJdLGFbcGUrMTI+PjJdPWFbUisxMj4+Ml19ZWxzZSBhW2w+PjJdPW0sX1tsKzg+PjNdPTAsYVsocGU9bCsxNnwwKT4+Ml09YVtSPj4yXSxhW3Bl''@;'; + put 'put ''KzQ+PjJdPWFbUis0Pj4yXSxhW3BlKzg+PjJdPWFbUis4Pj4yXSxhW3BlKzEyPj4yXT1hW1IrMTI+PjJdO2xlPWdlfWZ1bmN0aW9uIFI0KGwsYyl7dmFyIGY9MCxwPTAsbT0wLEE9MDtyZXR1cm4gbD0wfGFbMzIrKGx8PTApPj4yXSwwPT0rX1sxNisoY3w9MCk+PjNdJiYwPT0rX1tjKzI0Pj4z''@;'; + put 'put ''XT8wfChsPTAhPSgwfGwpJiYoZj0rX1tjPj4zXSk+KHA9K19bbCsxNj4+M10pJiZmPCtfW2w+PjNdK3AmJihtPStfW2MrOD4+M10pPihBPStfW2wrMjQ+PjNdKT9tPCtfW2wrOD4+M10rQSYxOjApOihQcigxMTE1OTksMTExNTQzLDIxOSwxMTE2MzYpLDApfWZ1bmN0aW9uIFRoKGwsYyl7dmFy''@;'; + put 'put ''IGYscDthWyhjfD0wKT4+Ml09fn4ocD0rX1sxNisobD0wfGFbMzIrKGx8PTApPj4yXSk+PjNdKSxhW2MrND4+Ml09fn4oZj0rX1tsKzI0Pj4zXSksYVtjKzg+PjJdPX5+KCtfW2w+PjNdK3ApLGFbYysxMj4+Ml09fn4oK19bbCs4Pj4zXStmKX1mdW5jdGlvbiBBZihsLGMpe3ZhciBmLHA7YVso''@;'; + put 'put ''Y3w9MCk+PjJdPX5+KHA9K19bKGx8PTApPj4zXSksYVtjKzQ+PjJdPX5+KGY9K19bbCs4Pj4zXSksYVtjKzg+PjJdPX5+KCtfW2wrMTY+PjNdK3ApLGFbYysxMj4+Ml09fn4oK19bbCsyND4+M10rZil9ZnVuY3Rpb24gQzMobCxjKXt2YXIgYixrLHA9MCxtPTAsQT0wLHc9MCxNPTAsRD0wO3Jl''@;'; + put 'put ''dHVybisoKDB8KGI9MHxhWzgrKGx8PTApPj4yXSkpPj0oMHwoaz0wfGFbKGN8PTApPj4yXSkpJiYoMHwoTT0wfGFbbD4+Ml0pKTw9KDB8KEQ9MHxhW2MrOD4+Ml0pKSYmKDB8KHA9MHxhW2wrMTI+PjJdKSk+PSgwfChtPTB8YVtjKzQ+PjJdKSkmJigwfChBPTB8YVtsKzQ+PjJdKSk8PSgwfCh3''@;'; + put 'put ''PTB8YVtjKzEyPj4yXSkpPygrKDB8YVsoKDB8cCk8KDB8dyk/bDpjKSsxMj4+Ml0pLSsoMHxhWygoMHxBKT4oMHxtKT9sOmMpKzQ+PjJdKSkqKCsoMHxhWygoMHxiKTwoMHxEKT9sOmMpKzg+PjJdKS0rKDB8YVsoKDB8TSk+KDB8ayk/bDpjKT4+Ml0pKTowKX1mdW5jdGlvbiBKOChsLGMsZixw''@;'; + put 'put ''LG0pe2Z8PTAscD0rcCxtfD0wO3ZhciBiLGssQT0wLHc9MDtyZXR1cm4gaz1sZSxsZT1sZSsxNnwwLGI9ayxsPTB8Y0UobHw9MCxjfD0wKSwobD0wfGFbKG09bSsoKCgwfGwpPDA/NTpsKTw8Mil8MCk+PjJdKT8oQWYobCxiKSxBPShBPStDMyhmLGIpKT5wP0E6MCwwIT0oMHxhWzMyKyhsPTB8''@;'; + put 'put ''YVttPj4yXSk+PjJdKSYmKFRoKGwsYiksKHc9K0MzKGYsYikpPnApJiYoQT13PkE/dzpBKSxBPjB8fChhW20+PjJdPWMsQT1wKSk6KGFbbT4+Ml09YyxBPXApLGxlPWssK0F9ZnVuY3Rpb24gVlIobCxjLGYscCxtKXtmfD0wLHA9K3AsbXw9MDt2YXIgYixrLEE9MCx3PTA7cmV0dXJuIGs9bGUs''@;'; + put 'put ''bGU9bGUrMTZ8MCxiPWssbD0wfGNFKGx8PTAsY3w9MCksKGw9MHxhWyhtPW0rKCgoMHxsKTwwPzU6bCk8PDIpfDApPj4yXSk/KEFmKGwsYiksQT0oQT0rQzMoZixiKSk+cD9BOjAsMCE9KDB8YVszMisobD0wfGFbbT4+Ml0pPj4yXSkmJihUaChsLGIpLCh3PStDMyhmLGIpKT5wKSYmKEE9dz5B''@;'; + put 'put ''P3c6QSksQT4wfHwoYVttPj4yXT1jLEE9cCkpOihhW20+PjJdPWMsQT1wKSxsZT1rLCtBfWZ1bmN0aW9uIGNFKGwsYyl7dmFyIHAsZj0wLG09MCxBPTAsdz0wLGI9MDsoMHwoZj0wfGFbMzIrKGx8PTApPj4yXSkpPT0oMHwocD0wfGFbMzIrKGN8PTApPj4yXSkpJiZQcigxMTE1NzgsMTExNTQz''@;'; + put 'put ''LDI3NiwxMTE1ODgpO2Rve2lmKDAhPSgwfGZlW2YrMzY+PjBdKSYmMCE9KDB8ZmVbcCszNj4+MF0pKXtpZigwPT0odz0rX1tsPj4zXSkmJjA9PStfW2wrOD4+M10pe2Y9LTE7YnJlYWt9aWYoMD09KGI9K19bYz4+M10pJjA9PShBPStfW2MrOD4+M10pKWY9LTE7ZWxzZXtpZihBPChtPStfW2wr''@;'; + put 'put ''OD4+M10pKXtpZihiPHcpe2Y9MDticmVha31mPWI+dz8yOjE7YnJlYWt9aWYoZj1iPHcsQT5tKXtpZihmKXtmPTY7YnJlYWt9Zj1iPnc/ODo3O2JyZWFrfWY9Zj8zOmI+dz81Oi0xfX1lbHNlIGY9LTF9d2hpbGUoMCk7cmV0dXJuIDB8Zn1mdW5jdGlvbiBrMyhsLGMpe2x8PTA7dmFyIEEsdyxi''@;'; + put 'put ''LGssTSxmPTAscD0wLG09MDtpZigoZj0wfGFbMzIrKGN8PTApPj4yXSk/KHA9K19bZj4+M10sbT0rX1tmKzg+PjNdKToocD0wLG09MCksaz1+fitjZigrKChNPStfW2M+PjNdKS1wKSksYj1+fitjZigrKChBPStfW2MrOD4+M10pLW0pKSwyMTQ3NDgzNjQ3PT0oMHwodz1+fitJdSgrKE0rcCsg''@;'; + put 'put ''K19bYysxNj4+M10pKSkpJiZQcigxMTE2NzYsMTExNTQzLDI2NCwxMTE3MDMpLDIxNDc0ODM2NDchPSgwfChmPX5+K0l1KCsoQSttKyArX1tjKzI0Pj4zXSkpKSkpcmV0dXJuIGFbbD4+Ml09ayxhW2wrND4+Ml09YixhW2wrOD4+Ml09dyx2b2lkKGFbbCsxMj4+Ml09Zik7UHIoMTExNzEzLDEx''@;'; + put 'put ''MTU0MywyNjYsMTExNzAzKX1mdW5jdGlvbiBDYihsLGMpe2N8PTA7dmFyIGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wO2ZvcihtPTAscD0wfGFbKGx8PTApPj4yXSxmPTB8YVtsKzQ+PjJdO2w9YystMXwwLCEoKDB8Yyk8PTApOylBPShjPWY+Pj5sJjEpLTF8MCxtPShiPXA+Pj5sJjEpPDwxfG08''@;'; + put 'put ''PDJ8Yl5jLGM9bCxwPSh3PUEmKHBeZikpXnBeKEEmPTAtYiksZj13XmZeQTtyZXR1cm4gMHxtfWZ1bmN0aW9uIHZtKGwpe3ZhciBjPTAsZj0wLHA9MCxtPTA7aWYoKGM9MHxVbyhsfD0wKSk+Pj4wPj0oMHxhWzQ3MzY1XSk+Pj4wPyhhWzQ3MzY1XT1jPWMrMTF8MCxjPTB8VjAoMHxhWzQ3MzY2''@;'; + put 'put ''XSxjKSxhWzQ3MzY2XT1jLGM/Zj00OmM9MCk6KGM9MHxhWzQ3MzY2XSxmPTQpLDQ9PSgwfGYpKXtmb3IobT1jOyhmPTB8ZmVbbD4+MF0pPDwyND4+MjQ7KTB8UXVlKHA9MjU1JmYpJiYoZj0yNTUmKDB8Q3AocCkpKSxmZVttPj4wXT1mLG09bSsxfDAsbD1sKzF8MDtmZVttPj4wXT0wfXJldHVy''@;'; + put 'put ''biAwfGN9ZnVuY3Rpb24gUzMobCxjLGYpe2x8PTA7dmFyIE0sRCxLLHBlLGJlLE9lLExlLFJlLEhlLFZlLHFlLG50LFdlLG90LFN0LHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLFI9MCxHPTAsZ2U9MCxrdD0wO2ZvcihTdD1sZSxsZT1sZSsxNDR8MCxLPVN0Kzk2fDAsRD1TdCs4MHwwLGJlPVN0''@;'; + put 'put ''KzEyNHwwLHBlPVN0KzcyfDAsT2U9U3QrNjR8MCxMZT1TdCs1NnwwLG50PVN0KzQ4fDAsV2U9U3QrNDB8MCxvdD1TdCszMnwwLFJlPVN0KzI0fDAsSGU9U3QrMTZ8MCxWZT1TdCs4fDAscWU9U3QsbT1TdCsxMjB8MCxiPVN0KzExNnwwLGs9U3QrMTEyfDAsTT1TdCsxMDh8MCxhWzMyKyhjfD0w''@;'; + put 'put ''KT4+Ml09Znw9MCxHPWw7MzI9PSgwfGZlW0c+PjBdKTspRz1HKzF8MDthW00+PjJdPTI1NSxsPTB8ZmVbRz4+MF07ZTpkb3tpZihsPDwyND4+MjQ9PTM1KXtpZihhW0Q+PjJdPW0sYVtEKzQ+PjJdPWIsYVtEKzg+PjJdPWssYVtEKzEyPj4yXT1NLCgwfGlsKEcsMTExNzU1LEQpKTw9Mil7bD0w''@;'; + put 'put ''fGZlW0c+PjBdLFI9MTI7YnJlYWt9c3dpdGNoKDB8Zil7Y2FzZSAwOl9bbnQ+PjNdPWt0PS4wMDM5MjE1Njg2Mjc0NTA5OCorKCgwfGFbbT4+Ml0pPj4+MCksX1tXZT4+M109cD0uMDAzOTIxNTY4NjI3NDUwOTgqKygoMHxhW2I+PjJdKT4+PjApLF9bb3Q+PjNdPUE9LjAwMzkyMTU2ODYyNzQ1''@;'; + put 'put ''MDk4KisoKDB8YVtrPj4yXSk+Pj4wKSx3PS4wMDM5MjE1Njg2Mjc0NTA5OCorKCgwfGFbTT4+Ml0pPj4+MCksalIoa3QscCxBLHBlLE9lLExlKSxfW2M+PjNdPStfW3BlPj4zXSxfW2MrOD4+M109K19bT2U+PjNdLF9bYysxNj4+M109K19bTGU+PjNdLF9bYysyND4+M109dyxsPTA7YnJlYWsg''@;'; + put 'put ''ZTtjYXNlIDE6ZmVbYz4+MF09YVttPj4yXSxmZVtjKzE+PjBdPWFbYj4+Ml0sZmVbYysyPj4wXT1hW2s+PjJdLGZlW2MrMz4+MF09YVtNPj4yXSxsPTA7YnJlYWsgZTtjYXNlIDM6X1tudD4+M109QT0uMDAzOTIxNTY4NjI3NDUwOTgqKygoMHxhW20+PjJdKT4+PjApLF9bV2U+PjNdPXc9LjAw''@;'; + put 'put ''MzkyMTU2ODYyNzQ1MDk4KisoKDB8YVtiPj4yXSk+Pj4wKSxfW290Pj4zXT1rdD0uMDAzOTIxNTY4NjI3NDUwOTgqKygoMHxhW2s+PjJdKT4+PjApLGg2KEEsdyxrdCxSZSxIZSxWZSxxZSksZmVbYz4+MF09MjU1Kn5+K19bUmU+PjNdLGZlW2MrMT4+MF09MjU1Kn5+K19bSGU+PjNdLGZlW2Mr''@;'; + put 'put ''Mj4+MF09MjU1Kn5+K19bVmU+PjNdLGZlW2MrMz4+MF09MjU1Kn5+K19bcWU+PjNdLGw9MDticmVhayBlO2Nhc2UgMjphW2M+PjJdPSgoNjU1MzUqKDB8YVttPj4yXSl8MCk+Pj4wKS8yNTV8MCxhW2MrND4+Ml09KCg2NTUzNSooMHxhW2I+PjJdKXwwKT4+PjApLzI1NXwwLGFbYys4Pj4yXT0o''@;'; + put 'put ''KDY1NTM1KigwfGFbaz4+Ml0pfDApPj4+MCkvMjU1fDAsYVtjKzEyPj4yXT0oKDY1NTM1KigwfGFbTT4+Ml0pfDApPj4+MCkvMjU1fDAsbD0wO2JyZWFrIGU7Y2FzZSA0Ol9bYz4+M109LjAwMzkyMTU2ODYyNzQ1MDk4KisoKDB8YVttPj4yXSk+Pj4wKSxfW2MrOD4+M109LjAwMzkyMTU2ODYy''@;'; + put 'put ''NzQ1MDk4KisoKDB8YVtiPj4yXSk+Pj4wKSxfW2MrMTY+PjNdPS4wMDM5MjE1Njg2Mjc0NTA5OCorKCgwfGFbaz4+Ml0pPj4+MCksX1tjKzI0Pj4zXT0uMDAzOTIxNTY4NjI3NDUwOTgqKygoMHxhW00+PjJdKT4+PjApLGw9MDticmVhayBlO2RlZmF1bHQ6bD0wO2JyZWFrIGV9fWVsc2UgUj0x''@;'; + put 'put ''Mn13aGlsZSgwKTtlOmRve2lmKDEyPT0oMHxSKSl7aWYoIShsPDwyND4+MjQhPTQ2JiYoKDI1NSZsKS00OHwwKT4+PjA+PTEwKSl7aWYoKGw9MHxVbyhHKSk+Pj4wPj0oMHxhWzQ3MzY3XSk+Pj4wKXtpZihhWzQ3MzY3XT1sPWwrMTF8MCxsPTB8VjAoMHxhWzQ3MzY4XSxsKSxhWzQ3MzY4XT1s''@;'; + put 'put ''LCFsKXtsPS0xO2JyZWFrfX1lbHNlIGw9MHxhWzQ3MzY4XTtiPWwsbT1HO3Q6Zm9yKDs7KXtzd2l0Y2goaz1tKzF8MCwobT0wfGZlW20+PjBdKTw8MjQ+PjI0KXtjYXNlIDA6YnJlYWsgdDtjYXNlIDQ0Om09MzJ9ZmVbYj4+MF09bSxiPWIrMXwwLG09a31pZihmZVtiPj4wXT0wLGFbSz4+Ml09''@;'; + put 'put ''cGUsYVtLKzQ+PjJdPU9lLGFbSys4Pj4yXT1MZSwzPT0oMHxpbChsLDExMTc2OSxLKSkpc3dpdGNoKHc9K19bcGU+PjNdLHc9dzwxP3c6MSx3PXc+MD93OjAsX1twZT4+M109dyxBPStfW09lPj4zXSxBPUE8MT9BOjEsQT1BPjA/QTowLF9bT2U+PjNdPUEscD0rX1tMZT4+M10scD1wPDE/cDox''@;'; + put 'put ''LHA9cD4wP3A6MCxfW0xlPj4zXT1wLDB8Zil7Y2FzZSAwOl9bYz4+M109dyxfW2MrOD4+M109QSxfW2MrMTY+PjNdPXAsX1tjKzI0Pj4zXT0xLGw9MDticmVhayBlO2Nhc2UgMTpNMyh3LEEscCxudCxXZSxvdCksZmVbYz4+MF09fn4oMjU1KitfW250Pj4zXSksZmVbYysxPj4wXT1+figyNTUq''@;'; + put 'put ''K19bV2U+PjNdKSxmZVtjKzI+PjBdPX5+KDI1NSorX1tvdD4+M10pLGZlW2MrMz4+MF09LTEsbD0wO2JyZWFrIGU7Y2FzZSAzOk0zKHcsQSxwLG50LFdlLG90KSxoNigrX1tudD4+M10sK19bV2U+PjNdLCtfW290Pj4zXSxSZSxIZSxWZSxxZSksZmVbYz4+MF09MjU1Kn5+K19bUmU+PjNdLGZl''@;'; + put 'put ''W2MrMT4+MF09MjU1Kn5+K19bSGU+PjNdLGZlW2MrMj4+MF09MjU1Kn5+K19bVmU+PjNdLGZlW2MrMz4+MF09MjU1Kn5+K19bcWU+PjNdLGw9MDticmVhayBlO2Nhc2UgMjpNMyh3LEEscCxudCxXZSxvdCksYVtjPj4yXT1+fig2NTUzNSorX1tudD4+M10pLGFbYys0Pj4yXT1+fig2NTUzNSor''@;'; + put 'put ''X1tXZT4+M10pLGFbYys4Pj4yXT1+fig2NTUzNSorX1tvdD4+M10pLGFbYysxMj4+Ml09NjU1MzUsbD0wO2JyZWFrIGU7Y2FzZSA0Ok0zKHcsQSxwLG50LFdlLG90KSxfW2M+PjNdPStfW250Pj4zXSxfW2MrOD4+M109K19bV2U+PjNdLF9bYysxNj4+M109K19bb3Q+PjNdLF9bYysyND4+M109''@;'; + put 'put ''MSxsPTA7YnJlYWsgZTtkZWZhdWx0Omw9MDticmVhayBlfX1pZihtPTB8RTMoRyksYVtiZT4+Ml09bSxtKXtpZigoMD09KDB8KGw9MHxhWzQ3MzY5XSkpfHwoMHxmZVsoZ2U9MHxhW2w+PjJdKT4+MF0pIT0oMHxmZVttPj4wXSl8fDAhPSgwfFppKGdlLG0pKSkmJihsPTB8dHcoYmUsMjU5NDgs''@;'; + put 'put ''MjQ5MSwxMiwxMDMpLGFbNDczNjldPWwsIWwpKXN3aXRjaCgwfGYpe2Nhc2UgMDpjYXNlIDQ6YVtjPj4yXT0wLGFbYys0Pj4yXT0wLGFbYys4Pj4yXT0wLGFbYysxMj4+Ml09MCxhW2MrMTY+PjJdPTAsYVtjKzIwPj4yXT0wLF9bYysyND4+M109MSxsPTE7YnJlYWsgZTtjYXNlIDE6ZmVbYysy''@;'; + put 'put ''Pj4wXT0wLGZlW2MrMT4+MF09MCxmZVtjPj4wXT0wLGZlW2MrMz4+MF09LTEsbD0xO2JyZWFrIGU7Y2FzZSAzOmFbYz4+Ml09MCxsPTE7YnJlYWsgZTtjYXNlIDI6YVtjKzg+PjJdPTAsYVtjKzQ+PjJdPTAsYVtjPj4yXT0wLGFbYysxMj4+Ml09NjU1MzUsbD0xO2JyZWFrIGU7ZGVmYXVsdDps''@;'; + put 'put ''PTE7YnJlYWsgZX1zd2l0Y2goMHxmKXtjYXNlIDA6X1tjPj4zXT0uMDAzOTIxNTY4NjI3NDUwOTgqKygwfFh0W2wrND4+MF0pLF9bYys4Pj4zXT0uMDAzOTIxNTY4NjI3NDUwOTgqKygwfFh0W2wrNT4+MF0pLF9bYysxNj4+M109LjAwMzkyMTU2ODYyNzQ1MDk4KisoMHxYdFtsKzY+PjBdKSxf''@;'; + put 'put ''W2MrMjQ+PjNdPS4wMDM5MjE1Njg2Mjc0NTA5OCorKDB8WHRbbCsxMD4+MF0pLGw9MDticmVhayBlO2Nhc2UgMTpmZVtjPj4wXT0wfGZlW2wrNz4+MF0sZmVbYysxPj4wXT0wfGZlW2wrOD4+MF0sZmVbYysyPj4wXT0wfGZlW2wrOT4+MF0sZmVbYyszPj4wXT0wfGZlW2wrMTA+PjBdLGw9MDti''@;'; + put 'put ''cmVhayBlO2Nhc2UgMzpfW250Pj4zXT1BPS4wMDM5MjE1Njg2Mjc0NTA5OCorKDB8WHRbbCs3Pj4wXSksX1tXZT4+M109dz0uMDAzOTIxNTY4NjI3NDUwOTgqKygwfFh0W2wrOD4+MF0pLF9bb3Q+PjNdPWt0PS4wMDM5MjE1Njg2Mjc0NTA5OCorKDB8WHRbbCs5Pj4wXSksaDYoQSx3LGt0LFJl''@;'; + put 'put ''LEhlLFZlLHFlKSxmZVtjPj4wXT0yNTUqfn4rX1tSZT4+M10sZmVbYysxPj4wXT0yNTUqfn4rX1tIZT4+M10sZmVbYysyPj4wXT0yNTUqfn4rX1tWZT4+M10sZmVbYyszPj4wXT0yNTUqfn4rX1txZT4+M10sbD0wO2JyZWFrIGU7Y2FzZSAyOmFbYz4+Ml09MjU3KigwfFh0W2wrNz4+MF0pLGFb''@;'; + put 'put ''Yys0Pj4yXT0yNTcqKDB8WHRbbCs4Pj4wXSksYVtjKzg+PjJdPTI1NyooMHxYdFtsKzk+PjBdKSxhW2MrMTI+PjJdPTI1NyooMHxYdFtsKzEwPj4wXSksbD0wO2JyZWFrIGU7Y2FzZSA0Ol9bYz4+M109LjAwMzkyMTU2ODYyNzQ1MDk4KisoMHxYdFtsKzc+PjBdKSxfW2MrOD4+M109LjAwMzky''@;'; + put 'put ''MTU2ODYyNzQ1MDk4KisoMHxYdFtsKzg+PjBdKSxfW2MrMTY+PjNdPS4wMDM5MjE1Njg2Mjc0NTA5OCorKDB8WHRbbCs5Pj4wXSksX1tjKzI0Pj4zXT0uMDAzOTIxNTY4NjI3NDUwOTgqKygwfFh0W2wrMTA+PjBdKSxsPTA7YnJlYWsgZTtkZWZhdWx0Omw9MDticmVhayBlfX1lbHNlIGw9LTF9''@;'; + put 'put ''fXdoaWxlKDApO3JldHVybiBsZT1TdCwwfGx9ZnVuY3Rpb24galIobCxjLGYscCxtLEEpe3B8PTAsbXw9MCxBfD0wO3ZhciB3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MDtpZih3PShiPShSPShSPShjPStjKT4oZj0rZik/YzpmKTwobD0rbCk/bDpSKS0oKGI9YzxmP2M6Zik+bD9sOmIpKS9SLFI+''@;'; + put 'put ''MClpZih3PjApe2s9KFItbCkvYixNPShSLWMpL2IsRD0oUi1mKS9iO2Rve2lmKFIhPWwpe2lmKFI9PWMpe2w9aysyLUQ7YnJlYWt9bD1SPT1mP00rNC1rOjB9ZWxzZSBsPShjLWYpL2J9d2hpbGUoMCk7KGwqPTYwKTwwJiYobCs9MzYwKX1lbHNlIGw9MDtlbHNlIHc9MCxsPTA7X1twPj4zXT0u''@;'; + put 'put ''MDAyNzc3Nzc3Nzc3Nzc3Nzc4KmwsX1tBPj4zXT1SLF9bbT4+M109d31mdW5jdGlvbiBoNihsLGMsZixwLG0sQSx3KXtjPStjLGY9K2YsbXw9MCxBfD0wLHd8PTAsX1socHw9MCk+PjNdPTEtKGw9K2wpLF9bbT4+M109MS1jLF9bQT4+M109MS1mLF9bdz4+M109Zj0oYz0rX1twPj4zXSk8KGY9''@;'; + put 'put ''K19bbT4+M10pP2M6ZixfW3c+PjNdPWY9KGM9K19bQT4+M10pPGY/YzpmLF9bcD4+M109K19bcD4+M10tZixfW20+PjNdPStfW20+PjNdLStfW3c+PjNdLF9bQT4+M109K19bQT4+M10tK19bdz4+M119ZnVuY3Rpb24gTTMobCxjLGYscCxtLEEpe2w9K2wsYz0rYyxmPStmLHB8PTAsbXw9MCxB''@;'; + put 'put ''fD0wO3ZhciB3PTAsYj0wLGs9MCxNPTAsRD0wO2U6ZG97aWYoYzw9MCl3PWYsYj1mLGw9ZixNPTg7ZWxzZSBzd2l0Y2goYj1sPj0xPzA6NipsLEQ9fn5iLGItPSsoMHxEKSxsPSgxLWMpKmYsaz0oMS1iKmMpKmYsYz0oMS0oMS1iKSpjKSpmLDB8RCl7Y2FzZSAwOnc9bCxiPWMsbD1mLE09ODti''@;'; + put 'put ''cmVhayBlO2Nhc2UgMTp3PWwsYj1mLGw9ayxNPTg7YnJlYWsgZTtjYXNlIDI6dz1jLGI9ZixNPTg7YnJlYWsgZTtjYXNlIDM6dz1mLGI9ayxNPTg7YnJlYWsgZTtjYXNlIDQ6dz1mLGI9bCxsPWMsTT04O2JyZWFrIGU7Y2FzZSA1Onc9ayxiPWwsbD1mLE09ODticmVhayBlO2RlZmF1bHQ6YnJl''@;'; + put 'put ''YWsgZX19d2hpbGUoMCk7OD09KDB8TSkmJihfW3A+PjNdPWwsX1ttPj4zXT1iLF9bQT4+M109dyl9ZnVuY3Rpb24gRTMobCl7dmFyIGM9MCxmPTA7aWYoISgoYz0wfGZlWyhsfD0wKT4+MF0pPDwyND4+MjQ9PTk4fHwoZj1sKzF8MCxjPDwyND4+MjQ9PTExOXwwPT0oMHxzMihmLDEzNzI2Niw0''@;'; + put 'put ''KSkpfHxjPDwyND4+MjQ9PTEwOHwwPT0oMHxzMihmLDEzNzI3MSw0KSl8fDA9PSgwfHMyKGYsMTM3Mjc2LDgpKSkpe2Rve2lmKGM8PDI0Pj4yND09NDcpaWYoYz0wfCRzKGYsNDcpKXtpZig0NyE9KDB8ZmVbZj4+MF0pKXtsPShmPTA9PSgwfGw0KDEzNzI4NSxmLDQpKSk/YysxfDA6bDticmVh''@;'; + put 'put ''a31pZigwfChjPTB8YVs0NzM3MF0pJiYwfGZlW2M+PjBdJiYwfGw0KDEzNzI4NSxjLDMpKXtsPTB8U2QoYyxsKzJ8MCk7YnJlYWt9bD1sKzJ8MH1lbHNlIGw9ZjtlbHNlIDAhPSgwfChjPTB8YVs0NzM3MF0pKSYmMCE9KDB8ZmVbYz4+MF0pJiYwIT0oMHxsNCgxMzcyODUsYywzKSkmJihsPTB8''@;'; + put 'put ''U2QoYyxsKSl9d2hpbGUoMCk7bD0wfHZtKGwpfXJldHVybiAwfGx9ZnVuY3Rpb24gU2QobCxjKXtjfD0wO3ZhciBwLG0sZj0wLEE9MDtyZXR1cm4gbT1sZSxsZT1sZSsxNnwwLHA9bSxBPTB8VW8obHw9MCksZj0xMysoQT0oMHxVbyhjKSkrQXwwKXwwLChBKzN8MCk+Pj4wPCgwfGFbNDczNzFd''@;'; + put 'put ''KT4+PjA/Zj0wfGFbNDczNzJdOihhWzQ3MzcxXT1mLGY9MHxWMCgwfGFbNDczNzJdLGYpLGFbNDczNzJdPWYpLGFbcD4+Ml09bCxhW3ArND4+Ml09YyxvbyhmLDEzNzI5MCxwKSxsZT1tLDB8YVs0NzM3Ml19ZnVuY3Rpb24gRDkobCl7YVs0NzM3MF09bHw9MH1mdW5jdGlvbiBmRShsLGMsZixw''@;'; + put 'put ''LG0pe3ZhciBBLHc7cmV0dXJuIEE9bGUsbGU9bGUrMjA4fDAsZnVuY3Rpb24gaEUobCxjLGYscCxtLEEsdyl7Zj0rZixwPStwLG09K20sQT0rQSx3PSt3O3ZhciBiLGs7X1sobHw9MCk+PjNdPWM9K2MsX1tsKzg+PjNdPWYsX1soaz1sKzE2fDApPj4zXT1wLF9bKGI9bCsyNHwwKT4+M109bSxf''@;'; + put 'put ''W2wrMzI+PjNdPTAsZj0rVWwoKyArRGEoK0EpL20sKyAraGEoK0EpL3ApLF9bbCs1Nj4+M109ZixtPStVbCgrICtEYSgrdykvbSwrICtoYSgrdykvcCksX1tsKzQwPj4zXT0xLF9bbCs0OD4+M109MCxtLT02LjI4MzE4NTMwNzE3OTU4NiorY2YoLjE1OTE1NDk0MzA5MTg5NTM1KihtLWYpKSxf''@;'; + put 'put ''W2wrNjQ+PjNdPXctQT4zLjE0MTU5MjY1MzU4OTc5MyZtLWY8My4xNDE1OTI2NTM1ODk3OTM/bSs2LjI4MzE4NTMwNzE3OTU4NjptLGZ1bmN0aW9uIEI0KGwpe3ZhciBmLG0sYz0wLHA9MDtjPStEMCgrKChwPStfWzE2KyhsfD0wKT4+M10pKnAtKGM9K19bbCsyND4+M10pKmMpKSxwPWMqK19b''@;'; + put 'put ''bCs0MD4+M10sYyo9K19bbCs0OD4+M10sX1tsKzEwND4+M109KG09K19bbD4+M10pLXAsX1tsKzExMj4+M109KGY9K19bbCs4Pj4zXSktYyxfW2wrMTIwPj4zXT1tK3AsX1tsKzEyOD4+M109ZitjfShsKSxmdW5jdGlvbiBnRShsKXt2YXIgZixtLEEsayxjPTAscD0wLHc9MCxiPTA7cD0rX1sx''@;'; + put 'put ''NisobHw9MCk+PjNdLGs9K2hhKCsoYj0rX1tsKzU2Pj4zXSkpKnAsYz0rX1tsKzI0Pj4zXSxiPStEYSgrYikqYyxwPStoYSgrKHc9K19bbCs2ND4+M10pKSpwLGM9K0RhKCt3KSpjLF9bbCs3Mj4+M109KGY9K19bbCs0MD4+M10pKmsrKHc9K19bbD4+M10pLShtPStfW2wrNDg+PjNdKSpiLF9b''@;'; + put 'put ''bCs4MD4+M109bSprKyhBPStfW2wrOD4+M10pK2YqYixfW2wrODg+PjNdPXcrZipwLW0qYyxfW2wrOTY+PjNdPUErbSpwK2YqY30obCksZnVuY3Rpb24gelIobCl7dmFyIGIsayxNLEQsRyxjPTAsZj0wLHA9MCxtPTAsQT0wLHc9MCxSPTA7bT0oTT0rX1syNCsobHw9MCk+PjNdKS8oRD0rX1ts''@;'; + put 'put ''KzE2Pj4zXSksRz0rZW8oKyhSPStfW2wrNDg+PjNdKSk8LjEsaz0rX1tsKzQwPj4zXTtkb3tpZihHKXtpZihwPS0oZj0rWmYoKyhjPVIvaykqbSkpLGs8MCl7Yz0rWmYoK2MvbSksbT1wLHA9My4xNDE1OTI2NTM1ODk3OTMtZixmPTQuNzEyMzg4OTgwMzg0NjktYyxjPTEuNTcwNzk2MzI2Nzk0''@;'; + put 'put ''ODk2Ni1jO2JyZWFrfWM9K1pmKCtjL20pLG09LTMuMTQxNTkyNjUzNTg5NzkzLWYsZj0xLjU3MDc5NjMyNjc5NDg5NjYtYyxjPS0xLjU3MDc5NjMyNjc5NDg5NjYtYzticmVha31pZihwPTEuNTcwNzk2MzI2Nzk0ODk2NisoZj0rWmYoKyhjPWsvUikvbSkpLFI8MCl7Yz0rWmYoK2MqbSksbT1m''@;'; + put 'put ''Ky0xLjU3MDc5NjMyNjc5NDg5NjYsZj1jKzMuMTQxNTkyNjUzNTg5NzkzO2JyZWFrfWM9K1pmKCtjKm0pLG09cCxwPWYrNC43MTIzODg5ODAzODQ2OSxmPWMsYys9LTMuMTQxNTkyNjUzNTg5NzkzO2JyZWFrfXdoaWxlKDApO20tPTYuMjgzMTg1MzA3MTc5NTg2KitjZiguMTU5MTU0OTQzMDkx''@;'; + put 'put ''ODk1MzUqKG0tKHc9K19bbCs1Nj4+M10pKSksYy09Ni4yODMxODUzMDcxNzk1ODYqK2NmKC4xNTkxNTQ5NDMwOTE4OTUzNSooYy13KSksQT1wLTYuMjgzMTg1MzA3MTc5NTg2KitjZiguMTU5MTU0OTQzMDkxODk1MzUqKHAtdykpLHc9Zi02LjI4MzE4NTMwNzE3OTU4NiorY2YoLjE1OTE1NDk0''@;'; + put 'put ''MzA5MTg5NTM1KihmLXcpKSxmPW08PShiPStfW2wrNjQ+PjNdKT8raGEoK20pKkQqaysgK19bbD4+M10tTSorRGEoK20pKlI6KG09K19bbCs3Mj4+M10pPChmPStfW2wrODg+PjNdKT9tOmYsX1tsKzEzNj4+M109ZixwPWM8PWI/K2hhKCtjKSpEKlIrICtfW2wrOD4+M10rICtEYSgrYykqTSpr''@;'; + put 'put ''OihtPStfW2wrODA+PjNdKTwocD0rX1tsKzk2Pj4zXSk/bTpwLF9bbCsxNDQ+PjNdPXAsYz1BPD1iPytoYSgrQSkqRCprKyArX1tsPj4zXS1NKitEYSgrQSkqUjooQT0rX1tsKzcyPj4zXSk+KGM9K19bbCs4OD4+M10pP0E6YyxfW2wrMTUyPj4zXT1jLWYsYz13PD1iPytoYSgrdykqRCpSKyAr''@;'; + put 'put ''X1tsKzg+PjNdKyArRGEoK3cpKk0qazooUj0rX1tsKzgwPj4zXSk+KGM9K19bbCs5Nj4+M10pP1I6YyxfW2wrMTYwPj4zXT1jLXB9KGwpLF9bbCsxNjg+PjNdPXc9KCh3PStfW2s+PjNdKS0rX1tiPj4zXSkvdyxfW2wrMTc2Pj4zXT0oMi13KSp3LF9bbCsxODQ+PjNdPXc9MS13LF9bbCsxOTI+''@;'; + put 'put ''PjNdPXcqd30odz1BLCtfWyhsfD0wKT4+M10sK19bbCs4Pj4zXSxjPStjLGY9K2YscD0rcCxtPSttKSxsPTB8ZnVuY3Rpb24gZDYobCl7bHw9MDt2YXIgayxNLEQsUixnZSxjPTAsZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsRz0wLEs9MCxwZT0wLGJlPTAsT2U9MCxMZT0wLFJlPTAsSGU9MCxW''@;'; + put 'put ''ZT0wLHFlPTAsbnQ9MCxXZT0wO2ZvcihnZT0wfHZyKDgpLG09K19bbCs2ND4+M10tKEE9K19bbCs1Nj4+M10pLHBlPTEsYz0wO0s9bS8rKDB8cGUpLGM8PDI0Pj4yND09MCYoMHxwZSk8MTAyNDspe2U6ZG97aWYoSzw9MS41NzA3OTYzMjY3OTQ4OTY2KWZvcihmPUEscD0wLGM9MTs7KXtpZigh''@;'; + put 'put ''KGM8PDI0Pj4yNCE9MCYoMHxwKTwoMHxwZSkpKWJyZWFrIGU7Yz0rTDkobCxmLEc9ZitLKTw9MWUtNSYxLGY9RyxwPXArMXwwfWVsc2UgYz0wfXdoaWxlKDApO3BlPDw9MX1mb3IoYj0raGEoK0EpLFJlPStEYSgrQSksSGU9KE9lPStfWyhwPWwrMTZ8MCk+PjNdKSpiLHc9KGY9K19bKGs9bCsy''@;'; + put 'put ''NHwwKT4+M10pKlJlLGIqPWYsbT0oTGU9K19bKE09bCs0MHwwKT4+M10pKkhlKyhmPStfW2w+PjNdKS0oYmU9K19bKEQ9bCs0OHwwKT4+M10pKncsdz1iZSpIZStMZSp3KyhHPStfWyhSPWwrOHwwKT4+M10pLE9lKj0tUmUsZnVuY3Rpb24gWlIobCxjLGYpe2x8PTAsYz0rYyxmPStmO3ZhciBw''@;'; + put 'put ''O2FbNDczNzNdPTEwMCxwPTB8dnIoMTYwMCksYVtsPj4yXT1wLF9bcD4+M109YyxfW3ArOD4+M109ZixhW2wrND4+Ml09MX0oZ2UsZixHKSxkRShnZSxtLHcpLEc9K1Q4KC41KkspLEc9LjMzMzMzMzMzMzMzMzMzMzMqK0RhKCtLKSooK0QwKCsoRypHKjMrNCkpLTEpLGY9QSxBPXcsdz1iZSpP''@;'; + put 'put ''ZStMZSpiLGI9TGUqT2UtYmUqYixjPTA7ISgoMHxjKT49KDB8cGUpKTspUmU9K2hhKCsoYmU9ZitLKSksSGU9K0RhKCtiZSksV2U9KHFlPStfW3A+PjNdKSpSZSxMZT0oVmU9K19baz4+M10pKkhlLFJlKj1WZSxwRShnZSxtK2IqRyxBK3cqRywoT2U9KFZlPStfW00+PjNdKSpXZSsgK19bbD4+''@;'; + put 'put ''M10tKG50PStfW0Q+PjNdKSpMZSktKEhlPVZlKihxZSo9LUhlKS1udCpSZSkqRywoTGU9bnQqV2UrVmUqTGUrICtfW1I+PjNdKS0oUmU9bnQqcWUrVmUqUmUpKkcsT2UsTGUpLGY9YmUsbT1PZSxBPUxlLHc9UmUsYj1IZSxjPWMrMXwwO3JldHVybiBmdW5jdGlvbiB4MyhsKXt2YXIgYztkRShs''@;'; + put 'put ''fD0wLCtfWyhjPTB8YVtsPj4yXSk+PjNdLCtfW2MrOD4+M10pLGFbbD4+Ml09MHxVYSgwfGFbbD4+Ml0sYVtsKzQ+PjJdPDw0KSxhWzQ3MzczXT0wfShnZSksMHxnZX0odyksbGU9QSwwfGx9ZnVuY3Rpb24gTDkobCxjLGYpe3ZhciBtLEEsdyxiLHA9MDtyZXR1cm4gbT0rX1syNCsobHw9MCk+''@;'; + put 'put ''PjNdLyhiPStfW2wrMTY+PjNdKSx3PStoYSgrKHA9KGY9K2YpKyhjPStjKSkpLEE9K2hhKDIqcCkscD0raGEoMypwKSwrKCguMDAxKm0rNC45OCkqbSsuMjA3KS8obSsuMDA2NykqYioremYoKygoKCtfWzMyKyhsPW08LjI1PzEwMzkyOjEwNjQ4KT4+M10qbSsgK19bbCs0MD4+M10pKm0rICtf''@;'; + put 'put ''W2wrNDg+PjNdKS8oK19bbCs1Nj4+M10rbSkqdysoKCtfW2w+PjNdKm0rICtfW2wrOD4+M10pKm0rICtfW2wrMTY+PjNdKS8oK19bbCsyND4+M10rbSkrKCgrX1tsKzY0Pj4zXSptKyArX1tsKzcyPj4zXSkqbSsgK19bbCs4MD4+M10pLygrX1tsKzg4Pj4zXSttKSpBKygoK19bbCs5Nj4+M10q''@;'; + put 'put ''bSsgK19bbCsxMDQ+PjNdKSptKyArX1tsKzExMj4+M10pLygrX1tsKzEyMD4+M10rbSkqcCsoKCgrX1tsKzE2MD4+M10qbSsgK19bbCsxNjg+PjNdKSptKyArX1tsKzE3Nj4+M10pLygrX1tsKzE4ND4+M10rbSkqdysoKCtfW2wrMTI4Pj4zXSptKyArX1tsKzEzNj4+M10pKm0rICtfW2wrMTQ0''@;'; + put 'put ''Pj4zXSkvKCtfW2wrMTUyPj4zXSttKSsoKCtfW2wrMTkyPj4zXSptKyArX1tsKzIwMD4+M10pKm0rICtfW2wrMjA4Pj4zXSkvKCtfW2wrMjE2Pj4zXSttKSpBKygoK19bbCsyMjQ+PjNdKm0rICtfW2wrMjMyPj4zXSkqbSsgK19bbCsyNDA+PjNdKS8oK19bbCsyNDg+PjNdK20pKnApKihmLWMp''@;'; + put 'put ''KSl9ZnVuY3Rpb24gZEUobCxjLGYpe3ZhciBwLG07cEUobHw9MCwrX1sobT0wfGFbbD4+Ml0pKygocD0oMHxhW2wrND4+Ml0pLTF8MCk8PDQpPj4zXSwrX1ttKyhwPDw0KSs4Pj4zXSxjPStjLGY9K2YsYyxmKX1mdW5jdGlvbiBwRShsLGMsZixwLG0sQSx3KXtjPStjLGY9K2YscD0rcCxtPStt''@;'; + put 'put ''LEE9K0Esdz0rdzt2YXIgTSxELGI9MCxrPTA7KDMrKGI9MHxhWyhNPTQrKGx8PTApfDApPj4yXSl8MCk8KDB8KGs9MHxhWzQ3MzczXSkpP2w9MHxhW2w+PjJdOihhWzQ3MzczXT1rPDwxLGI9MHxVYSgwfGFbbD4+Ml0sazw8NSksYVtsPj4yXT1iLGw9YixiPTB8YVtNPj4yXSksX1tsKyhiPDw0''@;'; + put 'put ''KT4+M109YyxEPWIrMXwwLF9bbCsoYjw8NCkrOD4+M109ZixfW2wrKEQ8PDQpPj4zXT1wLGs9YisyfDAsX1tsKyhEPDw0KSs4Pj4zXT1tLF9bbCsoazw8NCk+PjNdPUEsYVtNPj4yXT1iKzMsX1tsKyhrPDw0KSs4Pj4zXT13fWZ1bmN0aW9uIHZFKGwpe3ZhciBjPTAsZj0wLHA9MDtzd2l0Y2go''@;'; + put 'put ''MHxmZVs0KyhsfD0wKT4+MF0pe2Nhc2UgMTpsPTcyKyhmPTB8YVtsPj4yXSl8MCxmPWYrNTZ8MCxwPTU7YnJlYWs7Y2FzZSAzOmw9MjQrKGY9MHxhW2w+PjJdKXwwLGY9Zis4fDAscD01O2JyZWFrO2Nhc2UgMjpsPTMyKyhmPTB8YVtsPj4yXSl8MCxmPWYrMTZ8MCxwPTU7YnJlYWs7ZGVmYXVs''@;'; + put 'put ''dDpjPTB9cmV0dXJuIDU9PSgwfHApJiYoYz0rX1tsPj4zXS0rX1tmPj4zXSksK2N9ZnVuY3Rpb24gTWQobCxjLGYpe2x8PTAsZnw9MDt2YXIgcCxtLEEsdyxiLGssTT0wLEQ9MCxSPTAsRz0wLEs9MDtrPWxlLGxlPWxlKzk2fDAsQT1rKzY0fDAsbT1rKzMyfDAscD1rKzE2fDAsdz1rLChiPTB8''@;'; + put 'put ''aXRbNCsoY3w9MCk+PjFdKTw8MTY+PjE2Pj0xJiYoX1t3Pj4zXT0uNSooKE09K19bKEc9Yys4fDApPj4zXSkrKEQ9K19bYysyND4+M10pKSsgK19bZj4+M10sX1t3Kzg+PjNdPS41KigrX1tjKzE2Pj4zXSsgK19bYyszMj4+M10pKyArX1tmKzg+PjNdLFI9MHxhW2M+PjJdLEs9ZisxNnwwLGY9''@;'; + put 'put ''MHxmZVtjKzY+PjBdLGFbcD4+Ml09YVt3Pj4yXSxhW3ArND4+Ml09YVt3KzQ+PjJdLGFbcCs4Pj4yXT1hW3crOD4+Ml0sYVtwKzEyPj4yXT1hW3crMTI+PjJdLGFbbT4+Ml09YVtLPj4yXSxhW20rND4+Ml09YVtLKzQ+PjJdLGFbbSs4Pj4yXT1hW0srOD4+Ml0sYVttKzEyPj4yXT1hW0srMTI+''@;'; + put 'put ''PjJdLGFbbSsxNj4+Ml09YVtLKzE2Pj4yXSxhW20rMjA+PjJdPWFbSysyMD4+Ml0sYVttKzI0Pj4yXT1hW0srMjQ+PjJdLGFbbSsyOD4+Ml09YVtLKzI4Pj4yXSxhW0E+PjJdPWFbRz4+Ml0sYVtBKzQ+PjJdPWFbRys0Pj4yXSxhW0ErOD4+Ml09YVtHKzg+PjJdLGFbQSsxMj4+Ml09YVtHKzEy''@;'; + put 'put ''Pj4yXSxhW0ErMTY+PjJdPWFbRysxNj4+Ml0sYVtBKzIwPj4yXT1hW0crMjA+PjJdLGFbQSsyND4+Ml09YVtHKzI0Pj4yXSxhW0ErMjg+PjJdPWFbRysyOD4+Ml0sZnVuY3Rpb24gVVIobCxjLGYscCxtLEEsdyxiKXtsfD0wLGN8PTAsZnw9MCxwfD0wLG09K20sQXw9MCx3fD0wLGJ8PTA7dmFy''@;'; + put 'put ''IEsscGUsZ2UsYmUsT2UsTGUsUmUsSGUsVmUsV2Usb3QsU3Qsa3Qsc3QsRXQsY3QsYnQsYW4sU24sSG4sdXIsRXIsaz0wLE09MCxEPTAsUj0wLEc9MCxxZT0wLG50PTAsWnQ9MCxIcj0wO2ZvcihFcj1sZSxsZT1sZSsxMjh8MCxjdD1FcisxMDR8MCxIbj1Fcis0OHwwLHVyPUVyKzE2fDAsYVso''@;'; + put 'put ''WnQ9YnQ9RXIpPj4yXT0wLGFbWnQrND4+Ml09MCxTbj0oYW49K19bcD4+M10pLW0sRXQ9YW4rbSxfWyhadD1idCs4fDApPj4zXT0uNSooK19bdysyND4+M10tK19bdys4Pj4zXSkrICtfW3ArOD4+M10sVzgobCwxKSxXZT11cisxNnwwLG90PXVyKzR8MCxTdD11cisyNHwwLGt0PUhuKzR8MCxz''@;'; + put 'put ''dD1IbisxNnwwLEs9MD09KDB8YikscGU9SG4rMjR8MCxnZT1Ibis4fDAsYmU9SG4rMzJ8MCxPZT1Ibis0MHwwLExlPUhuKzQ4fDAsUmU9QSsxNnwwLEhlPUErNHwwLFZlPXVyKzh8MCxSPTA7ISgoMHxSKT49KDB8YykpOyl7c3dpdGNoKDB8ZmVbZisoMjQqUnwwKSs2Pj4wXSl7Y2FzZSAxMDg6''@;'; + put 'put ''bT1TbjticmVhaztjYXNlIDExNDptPUV0LStfW2YrKDI0KlJ8MCkrOD4+M107YnJlYWs7ZGVmYXVsdDptPWFuLS41KitfW2YrKDI0KlJ8MCkrOD4+M119Zm9yKF9bcD4+M109bSxfW1p0Pj4zXT0rX1tadD4+M10tK19bKHFlPWYrKDI0KlJ8MCkrMTZ8MCk+PjNdLG50PWYrKDI0KlJ8MCkrNHww''@;'; + put 'put ''LEQ9MHxhW2YrKDI0KlJ8MCk+PjJdLEc9MDshKCgwfEcpPj0oMHxpdFtudD4+MV0pKTspKGI9MHxhWyhNPUQrNHwwKT4+Ml0pPyhfW1dlPj4zXT0rX1soK19bYisxNj4+M10+MD9iOkEpKzE2Pj4zXSxhW3VyPj4yXT1hWygwPT0oMHxhW2I+PjJdKT9BOmIpPj4yXSxhW290Pj4yXT13PTB8YVso''@;'; + put 'put ''MD09KDB8YVtiKzQ+PjJdKT9BOmIpKzQ+PjJdLChiPTEyNyZhW2IrMjQ+PjJdKT9ifD0tMTI4JmFbU3Q+PjJdOkhyPTEyKTooX1tXZT4+M109K19bUmU+PjNdLGFbdXI+PjJdPWFbQT4+Ml0sYVtvdD4+Ml09dz0wfGFbSGU+PjJdLEhyPTEyKSwxMj09KDB8SHIpJiYoSHI9MCxiPS0xMjgmYVtT''@;'; + put 'put ''dD4+Ml0pLGFbU3Q+PjJdPWIsbWEobCx3KSxhW0huPj4yXT1hW0Q+PjJdLGFba3Q+PjJdPXVyLF9bc3Q+PjNdPStfW0QrMTY+PjNdLF9bcGU+PjNdPWs9Sz8xOitfW0QrMjQ+PjNdLGFbVmU+PjJdPWFbOCsoMHxhW00+PjJdKT4+Ml0sYVtnZT4+Ml09YVtEKzg+PjJdLF9bYmU+PjNdPStfWyhN''@;'; + put 'put ''PUQrMzJ8MCk+PjNdLF9bT2U+PjNdPStfW3FlPj4zXSxmZVtMZT4+MF09MTA4LF9bYnQ+PjNdPW0sYVtjdD4+Ml09YVtidD4+Ml0sYVtjdCs0Pj4yXT1hW2J0KzQ+PjJdLGFbY3QrOD4+Ml09YVtidCs4Pj4yXSxhW2N0KzEyPj4yXT1hW2J0KzEyPj4yXSxobShsLGN0LEhuKSxfW3A+PjNdPWs9''@;'; + put 'put ''K19bTT4+M10rbSxEPUQrNTZ8MCxHPUcrMXwwLG09aztSPVIrMXwwfU80KGwpLGxlPUVyfShsLGI8PDE2Pj4xNixSLHAsLjUqKEQtTSksbSxBLGYpKSxsZT1rfWZ1bmN0aW9uIEFFKGwsYyxmKXtsfD0wLGZ8PTA7dmFyIHcsYixNLEQsSyxwZSxnZSxiZSxMZSxPZSxwPTAsbT0wLEE9MCxrPTAs''@;'; + put 'put ''Uj0wLEc9MDtpZihMZT1sZSxsZT1sZSsxNzZ8MCxLPUxlKzk2fDAsYmU9TGUrMTM2fDAsTT1MZSxEPUxlKzEyOHwwLGFbKGdlPUxlKzY0fDApPj4yXT1hWyhSPTQ4KyhjfD0wKXwwKT4+Ml0sYVtnZSs0Pj4yXT1hW1IrND4+Ml0sYVtnZSs4Pj4yXT1hW1IrOD4+Ml0sYVtnZSsxMj4+Ml09YVtS''@;'; + put 'put ''KzEyPj4yXSxhW2dlKzE2Pj4yXT1hW1IrMTY+PjJdLGFbZ2UrMjA+PjJdPWFbUisyMD4+Ml0sYVtnZSsyND4+Ml09YVtSKzI0Pj4yXSxhW2dlKzI4Pj4yXT1hW1IrMjg+PjJdLHc9K19bZj4+M10sYj0rX1tmKzg+PjNdLHA9MHxhWyhSPWMrODR8MCk+PjJdLE9lPTB8YVtjPj4yXT8xOjAhPSgw''@;'; + put 'put ''fGFbYys4Pj4yXSksMHwobT0wfGFbKHBlPWMrMTA4fDApPj4yXSkmJmJvKGYsbSwxODY1NDQpLF9bZ2U+PjNdPStfW2dlPj4zXSt3LF9bKEc9Z2UrMTZ8MCk+PjNdPStfW0c+PjNdK3csX1soRz1nZSs4fDApPj4zXT0rX1tHPj4zXStiLF9bKEc9Z2UrMjR8MCk+PjNdPStfW0c+PjNdK2IsT2Um''@;'; + put 'put ''JjA9PSg0JmFbbCsxNTI+PjJdfDApPyhhW0s+PjJdPWFbZ2U+PjJdLGFbSys0Pj4yXT1hW2dlKzQ+PjJdLGFbSys4Pj4yXT1hW2dlKzg+PjJdLGFbSysxMj4+Ml09YVtnZSsxMj4+Ml0sYVtLKzE2Pj4yXT1hW2dlKzE2Pj4yXSxhW0srMjA+PjJdPWFbZ2UrMjA+PjJdLGFbSysyND4+Ml09YVtn''@;'; + put 'put ''ZSsyND4+Ml0sYVtLKzI4Pj4yXT1hW2dlKzI4Pj4yXSxHPTB8TzkobCxmLGMsSyxiZSkpOkc9MCwhKDMyJihtPTB8aXRbKGs9Yys0MnwwKT4+MV0pKSl7Zm9yKChBPTB8YVtjKzIwPj4yXSkmJihtPTB8R1IobCxBLDB8YVtjKzI4Pj4yXSw2NTUzNSZtLEQpLDQmaXRbaz4+MV0/KGs9MHxYdFtj''@;'; + put 'put ''KzMzPj4wXSxhW0s+PjJdPWFbZ2U+PjJdLGFbSys0Pj4yXT1hW2dlKzQ+PjJdLGFbSys4Pj4yXT1hW2dlKzg+PjJdLGFbSysxMj4+Ml09YVtnZSsxMj4+Ml0sYVtLKzE2Pj4yXT1hW2dlKzE2Pj4yXSxhW0srMjA+PjJdPWFbZ2UrMjA+PjJdLGFbSysyND4+Ml09YVtnZSsyND4+Ml0sYVtLKzI4''@;'; + put 'put ''Pj4yXT1hW2dlKzI4Pj4yXSxLNShsLDB8RWQoTSxLLGspLDQsNCxtKSk6KGFbSz4+Ml09YVtnZT4+Ml0sYVtLKzQ+PjJdPWFbZ2UrND4+Ml0sYVtLKzg+PjJdPWFbZ2UrOD4+Ml0sYVtLKzEyPj4yXT1hW2dlKzEyPj4yXSxhW0srMTY+PjJdPWFbZ2UrMTY+PjJdLGFbSysyMD4+Ml09YVtnZSsy''@;'; + put 'put ''MD4+Ml0sYVtLKzI0Pj4yXT1hW2dlKzI0Pj4yXSxhW0srMjg+PjJdPWFbZ2UrMjg+PjJdLHkzKGwsSyxtKSksRnQoMHxhW0Q+PjJdKSk7bT0wfGFbcD4+Ml07KUdhKGwsbSxmKSxwPXArNHwwO2ZvcihwPTB8YVtSPj4yXSx4aChsLDEpLG09YysyNHwwO0E9cCs0fDAscD0wfGFbcD4+Ml07KTB8''@;'; + put 'put ''ZmVbcCsxMDA+PjBdPyhXUihsLHAsZiwwfGFbbT4+Ml0sMHxhW0E+PjJdKSxwPUEpOnA9QTswfGZlW2MrMzM+PjBdJiYoYVtLPj4yXT1hW2dlPj4yXSxhW0srND4+Ml09YVtnZSs0Pj4yXSxhW0srOD4+Ml09YVtnZSs4Pj4yXSxhW0srMTI+PjJdPWFbZ2UrMTI+PjJdLGFbSysxNj4+Ml09YVtn''@;'; + put 'put ''ZSsxNj4+Ml0sYVtLKzIwPj4yXT1hW2dlKzIwPj4yXSxhW0srMjQ+PjJdPWFbZ2UrMjQ+PjJdLGFbSysyOD4+Ml09YVtnZSsyOD4+Ml0seUUobCxjLEspKX0wfEcmJlA0KGwsYmUpLE9lJiY0JmFbbCsxNTI+PjJdfDAmJihhW0s+PjJdPWFbZ2U+PjJdLGFbSys0Pj4yXT1hW2dlKzQ+PjJdLGFb''@;'; + put 'put ''Sys4Pj4yXT1hW2dlKzg+PjJdLGFbSysxMj4+Ml09YVtnZSsxMj4+Ml0sYVtLKzE2Pj4yXT1hW2dlKzE2Pj4yXSxhW0srMjA+PjJdPWFbZ2UrMjA+PjJdLGFbSysyND4+Ml09YVtnZSsyND4+Ml0sYVtLKzI4Pj4yXT1hW2dlKzI4Pj4yXSwwfE85KGwsZixjLEssYmUpKSYmUDQobCxiZSksMHxh''@;'; + put 'put ''W3BlPj4yXSYmd0UoZiwxODY1NDQpLGxlPUxlfWZ1bmN0aW9uIGJvKGwsYyxmKXtjfD0wLGZ8PTA7dmFyIHcscD0wLG09MCxBPTA7MHwobT0wfGFbKHc9MTYrKGx8PTApfDApPj4yXSkmJigwfGFbYz4+Ml0/KGFbZj4+Ml09bSxtPTB8YVtjPj4yXSxBPXcpOihtPTAsQT1mKSxhW0E+PjJdPW0p''@;'; + put 'put ''LDB8KG09MHxhW2wrMjA+PjJdKSYmKDB8YVsoQT1jKzR8MCk+PjJdPyhhW2YrND4+Ml09bSxtPTB8YVtBPj4yXSxBPXcpOihtPTAsQT1mKSxhW0ErND4+Ml09bSksKHA9K19bbCszMj4+M10pPj0wJiYoK19bKG09YysxNnwwKT4+M10+PTA/KF9bZisxNj4+M109cCxwPStfW20+PjNdLGY9dyk6''@;'; + put 'put ''cD0tMSxfW2YrMTY+PjNdPXApfWZ1bmN0aW9uIE85KGwsYyxmLHAsbSl7Y3w9MCxmfD0wLHB8PTA7dmFyIHcsYixrLE0sRCxSLEcsSyxwZSxnZSxiZSxBPTA7YmU9bGUsbGU9bGUrMjI0fDAsTT1iZSs4fDAsYj1iZSxnZT1iZSs0MHwwLHc9YmUrMTg0fDAsQT1iZSs1NnwwLGFbKG18PTApPj4y''@;'; + put 'put ''XT1hWyhEPTIwOCsoaz0wfGFbMTYrKGx8PTApPj4yXSl8MCk+PjJdLGFbbSs0Pj4yXT1hWyhSPWsrMjI4fDApPj4yXSxhW20rOD4+Ml09YVsoRz1rKzI0NHwwKT4+Ml0sYVttKzEyPj4yXT1hWyhLPWsrMjEyfDApPj4yXSxmZVttKzE2Pj4wXT0oaXRbKHBlPWsrMjYwfDApPj4xXTw8MTUmNjU1''@;'; + put 'put ''MzUpPDwxNj4+MTY+PjE1LDAhPSgwfChtPTB8YVtmKzE2Pj4yXSkpJiYwIT0oMHxmZVttPj4wXSk/QT0wOih1cyhnZSwxMjgsQSksKG09MHxhWyhBPWMrNjB8MCk+PjJdKXx8KG09MHxyYSgwfHlGKGwsMHxhW2srOD4+Ml0sZ2UpKSxhW0E+PjJdPW0sZmVbYys2ND4+MF09MSksdW8oZ2UsbSks''@;'; + put 'put ''YVs0NzM3NF09MSsoQT0wfGFbNDczNzRdKSxhW2I+PjJdPUEsb28odywxMzczOTEsYiksdW8oZ2UsdyksKG09MHxhWyhBPWdlKzR8MCk+PjJdKT4+PjA+PSgwfGFbZ2UrOD4+Ml0pPj4+MCYmKFEwKGdlLDEpLG09MHxhW0E+PjJdKSxmZVttPj4wXT0wLGFbQT4+Ml09bT0wfGFbZ2U+PjJdLEE9''@;'; + put 'put ''MSksbT0wfFExKGwsMCwwfGFbZj4+Ml0sMHxhW2YrMTI+PjJdLDB8YVtmKzg+PjJdLG0sMHxhW2srOD4+Ml0pLEEmJkMyKGdlKTtkb3tpZigwfG0pe2lmKDA9PSgwfGFbRD4+Ml0pJiYwPT0oMSZpdFtwZT4+MV0pKWJyZWFrO2FbTT4+Ml09YVtwPj4yXSxhW00rND4+Ml09YVtwKzQ+PjJdLGFb''@;'; + put 'put ''TSs4Pj4yXT1hW3ArOD4+Ml0sYVtNKzEyPj4yXT1hW3ArMTI+PjJdLGFbTSsxNj4+Ml09YVtwKzE2Pj4yXSxhW00rMjA+PjJdPWFbcCsyMD4+Ml0sYVtNKzI0Pj4yXT1hW3ArMjQ+PjJdLGFbTSsyOD4+Ml09YVtwKzI4Pj4yXSxSQyhsLE0pLEcxKGwsMHxhW0Q+PjJdLDB8YVtSPj4yXSwwfGFb''@;'; + put 'put ''Rz4+Ml0sMHxhW0s+PjJdKX19d2hpbGUoMCk7cmV0dXJuIGxlPWJlLDB8bX1mdW5jdGlvbiBHUihsLGMsZixwLG0pe3ZhciB3LGI7cmV0dXJuIGx8PTAsZnw9MCxwfD0wLGI9bGUsbGU9bGUrMTZ8MCwoMHx1ayhjfD0wLG18PTAsdz1iKSk8PDI0Pj4yND8oaGwobCwwfGFbbT4+Ml0pLFVmKGws''@;'; + put 'put ''KGM9MHxhW20rND4+Ml0pfHwxMzczMTQsZiwram5bdz4+Ml0pLGM9cD4+PjEmMXwyKTooaGwobCxjKSxjPTEpLG1hKGwsMTM3Mzc5KSxsZT1iLDB8Y31mdW5jdGlvbiBFZChsLGMsZil7Znw9MDt2YXIgcD0wLG09MCxBPTAsdz0wLGI9MDtyZXR1cm4gYVsobHw9MCk+PjJdPWFbKGN8PTApPj4y''@;'; + put 'put ''XSxhW2wrND4+Ml09YVtjKzQ+PjJdLGFbbCs4Pj4yXT1hW2MrOD4+Ml0sYVtsKzEyPj4yXT1hW2MrMTI+PjJdLGFbKHA9bCszMnwwKT4+Ml09YVsoYz1jKzE2fDApPj4yXSxhW3ArND4+Ml09YVtjKzQ+PjJdLGFbcCs4Pj4yXT1hW2MrOD4+Ml0sYVtwKzEyPj4yXT1hW2MrMTI+PjJdLCgwfGYp''@;'; + put 'put ''PjE/KF9bbD4+M109dz0rX1tsPj4zXSsoYj0uNSorKDB8ZikpLF9bKGY9bCs4fDApPj4zXT1BPStfW2Y+PjNdK2IsX1twPj4zXT1tPStfW3A+PjNdLWIsX1socD1sKzQwfDApPj4zXT1iPStfW3A+PjNdLWIpOihtPStfW3A+PjNdLEE9K19bbCs4Pj4zXSx3PStfW2w+PjNdLGI9K19bbCs0MD4+''@;'; + put 'put ''M10pLF9bbCsxNj4+M109bSxfW2wrMjQ+PjNdPUEsX1tsKzQ4Pj4zXT13LF9bbCs1Nj4+M109YiwwfGx9ZnVuY3Rpb24gR2EobCxjLGYpe2x8PTAsZnw9MDt2YXIgbSxBLE0sRCxSLEcsSyxnZSxwPTAsdz0wLGI9MCxrPTAscGU9MDtnZT1sZSxsZT1sZSsxNzZ8MCxSPWdlKzk2fDAsRz1nZSsx''@;'; + put 'put ''MzZ8MCxNPWdlLEQ9Z2UrMTI4fDAsYVsoSz1nZSs2NHwwKT4+Ml09YVsocGU9NDgrKGN8PTApfDApPj4yXSxhW0srND4+Ml09YVtwZSs0Pj4yXSxhW0srOD4+Ml09YVtwZSs4Pj4yXSxhW0srMTI+PjJdPWFbcGUrMTI+PjJdLGFbSysxNj4+Ml09YVtwZSsxNj4+Ml0sYVtLKzIwPj4yXT1hW3Bl''@;'; + put 'put ''KzIwPj4yXSxhW0srMjQ+PjJdPWFbcGUrMjQ+PjJdLGFbSysyOD4+Ml09YVtwZSsyOD4+Ml0sQT0rX1tmKzg+PjNdLHBlPTB8YVtjPj4yXT8xOjAhPSgwfGFbYys4Pj4yXSksX1tLPj4zXT0rX1tLPj4zXSsobT0rX1tmPj4zXSksX1soaz1LKzE2fDApPj4zXT0rX1trPj4zXSttLF9bKGs9Sys4''@;'; + put 'put ''fDApPj4zXT0rX1trPj4zXStBLF9bKGs9SysyNHwwKT4+M109K19baz4+M10rQSxwZSYmMD09KDQmYVtsKzE1Mj4+Ml18MCk/KGFbUj4+Ml09YVtLPj4yXSxhW1IrND4+Ml09YVtLKzQ+PjJdLGFbUis4Pj4yXT1hW0srOD4+Ml0sYVtSKzEyPj4yXT1hW0srMTI+PjJdLGFbUisxNj4+Ml09YVtL''@;'; + put 'put ''KzE2Pj4yXSxhW1IrMjA+PjJdPWFbSysyMD4+Ml0sYVtSKzI0Pj4yXT1hW0srMjQ+PjJdLGFbUisyOD4+Ml09YVtLKzI4Pj4yXSxrPTB8TzkobCxmLGMsUixHKSk6az0wLHA9MHxpdFsoYj1jKzQyfDApPj4xXTtlOmRve2lmKCEoMzImcCkpc3dpdGNoKHc9MHxhW2MrMjA+PjJdLDB8dyYmKHA9''@;'; + put 'put ''MHxHUihsLHcsMHxhW2MrMjg+PjJdLDY1NTM1JnAsRCksNCZpdFtiPj4xXT8oYj0wfFh0W2MrMzM+PjBdLGFbUj4+Ml09YVtLPj4yXSxhW1IrND4+Ml09YVtLKzQ+PjJdLGFbUis4Pj4yXT1hW0srOD4+Ml0sYVtSKzEyPj4yXT1hW0srMTI+PjJdLGFbUisxNj4+Ml09YVtLKzE2Pj4yXSxhW1Ir''@;'; + put 'put ''MjA+PjJdPWFbSysyMD4+Ml0sYVtSKzI0Pj4yXT1hW0srMjQ+PjJdLGFbUisyOD4+Ml09YVtLKzI4Pj4yXSxLNShsLDB8RWQoTSxSLGIpLDQsNCxwKSk6KGFbUj4+Ml09YVtLPj4yXSxhW1IrND4+Ml09YVtLKzQ+PjJdLGFbUis4Pj4yXT1hW0srOD4+Ml0sYVtSKzEyPj4yXT1hW0srMTI+PjJd''@;'; + put 'put ''LGFbUisxNj4+Ml09YVtLKzE2Pj4yXSxhW1IrMjA+PjJdPWFbSysyMD4+Ml0sYVtSKzI0Pj4yXT1hW0srMjQ+PjJdLGFbUisyOD4+Ml09YVtLKzI4Pj4yXSx5MyhsLFIscCkpLEZ0KDB8YVtEPj4yXSkpLDB8ZmVbYyszMz4+MF0mJihhW1I+PjJdPWFbSz4+Ml0sYVtSKzQ+PjJdPWFbSys0Pj4y''@;'; + put 'put ''XSxhW1IrOD4+Ml09YVtLKzg+PjJdLGFbUisxMj4+Ml09YVtLKzEyPj4yXSxhW1IrMTY+PjJdPWFbSysxNj4+Ml0sYVtSKzIwPj4yXT1hW0srMjA+PjJdLGFbUisyND4+Ml09YVtLKzI0Pj4yXSxhW1IrMjg+PjJdPWFbSysyOD4+Ml0seUUobCxjLFIpKSxwPWMrODh8MCwwfGZlW2MrOTI+PjBd''@;'; + put 'put ''KXtjYXNlIDE6QUUobCwwfGFbcD4+Ml0sZik7YnJlYWsgZTtjYXNlIDM6WVIobCwwfGFbcD4+Ml0sZik7YnJlYWsgZTtkZWZhdWx0Ok1kKGwsMHxhW3A+PjJdLGYpO2JyZWFrIGV9fXdoaWxlKDApOzB8ayYmUDQobCxHKSxwZSYmNCZhW2wrMTUyPj4yXXwwJiYoYVtSPj4yXT1hW0s+PjJdLGFb''@;'; + put 'put ''Uis0Pj4yXT1hW0srND4+Ml0sYVtSKzg+PjJdPWFbSys4Pj4yXSxhW1IrMTI+PjJdPWFbSysxMj4+Ml0sYVtSKzE2Pj4yXT1hW0srMTY+PjJdLGFbUisyMD4+Ml09YVtLKzIwPj4yXSxhW1IrMjQ+PjJdPWFbSysyND4+Ml0sYVtSKzI4Pj4yXT1hW0srMjg+PjJdLDB8TzkobCxmLGMsUixHKSkm''@;'; + put 'put ''JlA0KGwsRyksbGU9Z2V9ZnVuY3Rpb24gV1IobCxjLGYscCxtKXtjfD0wLG18PTA7dmFyIGIsayxSLEcsSyxPZSxMZSxSZSxBPTAsdz0wLE09MCxEPTAscGU9MCxnZT0wLGJlPTAsSGU9MCxWZT0wO2lmKFJlPWxlLGxlPWxlKzMyfDAsT2U9UmUrMTZ8MCxMZT1SZSxEPStfWyhmfD0wKT4+M10s''@;'; + put 'put ''YmU9K19bZis4Pj4zXSxobChsfD0wLE09MD09KDB8KHB8PTApKT8xMzczMTQ6cCksbWEobCxNKSxrPStfW2MrNzI+PjNdLFI9KEc9K19bYys0OD4+M10pK0QsRD0oSz0rX1tjKzY0Pj4zXSkrRCxiZT0oYj0rX1tjKzU2Pj4zXSkrYmUsMCE9KDEmKGY9MHxmZVsoTT1jKzEwMHwwKT4+MF0pKSYm''@;'; + put 'put ''KCgwfGhyW2MrODA+PjFdKSsoMHxocltjKzg0Pj4xXSl8MCk8KDB8YVsxMDQrKHc9MHxhW2MrOTY+PjJdKT4+Ml0pKXtmPTB8aXRbYys4Nj4+MV07ZG97aWYoZjw8MTY+PjE2KXtpZigoKDB8aHJbYys4Mj4+MV0pKyg2NTUzNSZmKXwwKT09KDB8YVt3KzEwMD4+Ml0pKXtmPXA9KChWZT0oKEhl''@;'; + put 'put ''PTB8ZmVbdyszMj4+MF0pPDwyND4+MjQpLzJ8MCk8PDI0Pj4yNCkrKDB8WHRbdyszMz4+MF0pfDAscCY9MjU1LEE9YmUtKyhWZTw8MjQ+PjI0KSx3PUhlO2JyZWFrfWY9MCxwPSgoKHc9MHxmZVt3KzMyPj4wXSk8PDI0Pj4yNCkvMnwwKTw8MjQ+PjI0LEE9YmU7YnJlYWt9Zj0ocD0oKChWZT0w''@;'; + put 'put ''fGZlW3crMzI+PjBdKTw8MjQ+PjI0KS8yfDApPDwyND4+MjQpKygwfFh0W3crMzM+PjBdKXwwLEE9YmUsdz1WZX13aGlsZSgwKTtfW0xlKzg+PjNdPUEtKygwfHApLF9bTGU+PjNdPUQrICsoKCh3PDwyND4+MjQpLzJ8MCk8PDI0Pj4yNCksYVtPZT4+Ml09YVtMZT4+Ml0sYVtPZSs0Pj4yXT1h''@;'; + put 'put ''W0xlKzQ+PjJdLGFbT2UrOD4+Ml09YVtMZSs4Pj4yXSxhW09lKzEyPj4yXT1hW0xlKzEyPj4yXSxSOShsLE9lLDAsay1iKyArKDI1NSZmfDApKyArKHc8PDI0Pj4yNCkpLGY9MHxmZVtNPj4wXX1pZigyJmYmJigoMHxocltjKzgyPj4xXSkrKDY1NTM1JihwZT0wfGl0W2MrODY+PjFdKSl8MCk8''@;'; + put 'put ''KDB8YVsxMDArKGdlPTB8YVtjKzk2Pj4yXSk+PjJdKSl7Zj0wfGl0W2MrODQ+PjFdO2Rve2lmKGY8PDE2Pj4xNil7aWYoKCgwfGhyW2MrODA+PjFdKSsoNjU1MzUmZil8MCk9PSgwfGFbZ2UrMTA0Pj4yXSkpe3A9KDI1NSYoVmU9KChmPTB8ZmVbZ2UrMzI+PjBdKTw8MjQ+PjI0KS8yfDApKSso''@;'; + put 'put ''MHxYdFtnZSszMz4+MF0pJjI1NSxfW0xlPj4zXT1SLSsoVmU8PDI0Pj4yNCk7YnJlYWt9X1tMZT4+M109Ui0oQT0rKCgoKGY9MHxmZVtnZSszMj4+MF0pPDwyND4+MjQpLzJ8MCk8PDI0Pj4yNCkpLHA9MCE9KDB8bSkmJigwfGl0W20rODY+PjFdKSE9cGU8PDE2Pj4xNj8yNTUmfn4oK19bZ2Ur''@;'; + put 'put ''NjQ+PjNdLUstQSk6MH1lbHNle2lmKHA9MjU1Jih3PSgoVmU9KChmPTB8ZmVbZ2UrMzI+PjBdKTw8MjQ+PjI0KS8yfDApPDwyND4+MjQpKygwfFh0W2dlKzMzPj4wXSl8MCksX1tMZT4+M109Ui0oQT0rKFZlPDwyND4+MjQpKS0rKDB8KHcmPTI1NSkpLCgwfGFbZ2UrMTA0Pj4yXSk9PSgwfGhy''@;'; + put 'put ''W2MrODA+PjFdKSl7cD13PDwxJjI1NTticmVha30wIT0oMHxtKSYmKDB8aXRbbSs4Nj4+MV0pIT1wZTw8MTY+PjE2JiYocD0yNTUmfn4oKygyNTUmcCktSysgK19bZ2UrNjQ+PjNdLUEpKX19d2hpbGUoMCk7X1tMZSs4Pj4zXT1iZS0rKCgoZjw8MjQ+PjI0KS8yfDApPDwyND4+MjQpLGFbT2U+''@;'; + put 'put ''PjJdPWFbTGU+PjJdLGFbT2UrND4+Ml09YVtMZSs0Pj4yXSxhW09lKzg+PjJdPWFbTGUrOD4+Ml0sYVtPZSsxMj4+Ml09YVtMZSsxMj4+Ml0sUjkobCxPZSxLLUcrICsoMjU1JnApKyArKGY8PDI0Pj4yNCksMCl9bGU9UmV9ZnVuY3Rpb24geUUobCxjLGYpe2Z8PTA7dmFyIE0scD0wLG09MCxB''@;'; + put 'put ''PTAsdz0wLGI9MCxrPTAsRD0wO009bGUsbGU9bGUrMTYwfDAsaz1NKzExMnwwLGI9TSxtPU0rMTQ0fDAsbWEobHw9MCwwPT0oMHwodz0wfGFbMjQrKGN8PTApPj4yXSkpPzEzNzMxNDp3KSwzODQmKHA9MHxpdFsodz1jKzQyfDApPj4xXSk/KGFbbSs0Pj4yXT0wLGFbbT4+Ml09MCwyNTYmKHAm''@;'; + put 'put ''PTY1NTM1KT8ocD0xMzczMjcsQT00KToxMjgmcHwwJiYocD0xMzczMjAsQT00KSw0PT0oMHxBKSYmKGFbbT4+Ml09cCksZDIobCxtKSk6ZDIobCwwfGFbMzM2KygwfGFbbD4+Ml0pPj4yXSkseGgobCwrKDB8WHRbKEE9YyszM3wwKT4+MF0pKTtlOmRve2lmKDQmaXRbdz4+MV0pdz0wfFh0W0E+''@;'; + put 'put ''PjBdLGFbaz4+Ml09YVtmPj4yXSxhW2srND4+Ml09YVtmKzQ+PjJdLGFbays4Pj4yXT1hW2YrOD4+Ml0sYVtrKzEyPj4yXT1hW2YrMTI+PjJdLGFbaysxNj4+Ml09YVtmKzE2Pj4yXSxhW2srMjA+PjJdPWFbZisyMD4+Ml0sYVtrKzI0Pj4yXT1hW2YrMjQ+PjJdLGFbaysyOD4+Ml09YVtmKzI4''@;'; + put 'put ''Pj4yXSxLNShsLDB8RWQoYixrLHcpLDQsNCwwKTtlbHNle2lmKCEoKHA9MTUzNjAmaXRbYyszNj4+MV0pPDwxNj4+MTYpKXsoMjU1JihwPTB8ZmVbQT4+MF0pKT4xJiYoX1tmPj4zXT0rX1tmPj4zXSsoRD0uNSorKDI1NSZwKSksX1soYj1mKzh8MCk+PjNdPStfW2I+PjNdK0QsX1soYj1mKzE2''@;'; + put 'put ''fDApPj4zXT0rX1tiPj4zXS1ELF9bKGI9ZisyNHwwKT4+M109K19bYj4+M10tRCksYVtrPj4yXT1hW2Y+PjJdLGFbays0Pj4yXT1hW2YrND4+Ml0sYVtrKzg+PjJdPWFbZis4Pj4yXSxhW2srMTI+PjJdPWFbZisxMj4+Ml0sYVtrKzE2Pj4yXT1hW2YrMTY+PjJdLGFbaysyMD4+Ml09YVtmKzIw''@;'; + put 'put ''Pj4yXSxhW2srMjQ+PjJdPWFbZisyND4+Ml0sYVtrKzI4Pj4yXT1hW2YrMjg+PjJdLHkzKGwsaywwKTticmVha31zd2l0Y2gobT1iKzE2fDAsdz0wfFh0W0E+PjBdLGFbaz4+Ml09YVtmPj4yXSxhW2srND4+Ml09YVtmKzQ+PjJdLGFbays4Pj4yXT1hW2YrOD4+Ml0sYVtrKzEyPj4yXT1hW2Yr''@;'; + put 'put ''MTI+PjJdLGFbaysxNj4+Ml09YVtmKzE2Pj4yXSxhW2srMjA+PjJdPWFbZisyMD4+Ml0sYVtrKzI0Pj4yXT1hW2YrMjQ+PjJdLGFbaysyOD4+Ml09YVtmKzI4Pj4yXSxFZChtLGssdyksKCg2NTUzNSZwKS0xMDI0fDApPj4+MTAmNDE5NDMwM3wwKXtjYXNlIDc6V28obCxtLDIpO2JyZWFrIGU7''@;'; + put 'put ''Y2FzZSAzOldvKGwsYiszMnwwLDIpO2JyZWFrIGU7Y2FzZSAxOldvKGwsYis0OHwwLDIpO2JyZWFrIGU7Y2FzZSAwOmFbYj4+Ml09YVsoZj1iKzY0fDApPj4yXSxhW2IrND4+Ml09YVtmKzQ+PjJdLGFbYis4Pj4yXT1hW2YrOD4+Ml0sYVtiKzEyPj4yXT1hW2YrMTI+PjJdLFdvKGwsYiwyKTti''@;'; + put 'put ''cmVhayBlO2Nhc2UgMTE6V28obCxtLDMpO2JyZWFrIGU7Y2FzZSA1OldvKGwsYiszMnwwLDMpO2JyZWFrIGU7Y2FzZSAyOmFbKGY9Yis4MHwwKT4+Ml09YVttPj4yXSxhW2YrND4+Ml09YVttKzQ+PjJdLGFbZis4Pj4yXT1hW20rOD4+Ml0sYVtmKzEyPj4yXT1hW20rMTI+PjJdLFdvKGwsYis0''@;'; + put 'put ''OHwwLDMpO2JyZWFrIGU7Y2FzZSA4OmFbYj4+Ml09YVsoZj1iKzY0fDApPj4yXSxhW2IrND4+Ml09YVtmKzQ+PjJdLGFbYis4Pj4yXT1hW2YrOD4+Ml0sYVtiKzEyPj4yXT1hW2YrMTI+PjJdLFdvKGwsYiwzKTticmVhayBlO2Nhc2UgMTM6V28obCxtLDQpO2JyZWFrIGU7Y2FzZSA2OmFbKGY9''@;'; + put 'put ''Yis4MHwwKT4+Ml09YVttPj4yXSxhW2YrND4+Ml09YVttKzQ+PjJdLGFbZis4Pj4yXT1hW20rOD4+Ml0sYVtmKzEyPj4yXT1hW20rMTI+PjJdLFdvKGwsYiszMnwwLDQpO2JyZWFrIGU7Y2FzZSAxMDphWyhmPWIrODB8MCk+PjJdPWFbbT4+Ml0sYVtmKzQ+PjJdPWFbbSs0Pj4yXSxhW2YrOD4+''@;'; + put 'put ''Ml09YVttKzg+PjJdLGFbZisxMj4+Ml09YVttKzEyPj4yXSxhWyhmPWIrOTZ8MCk+PjJdPWFbKGs9YiszMnwwKT4+Ml0sYVtmKzQ+PjJdPWFbays0Pj4yXSxhW2YrOD4+Ml09YVtrKzg+PjJdLGFbZisxMj4+Ml09YVtrKzEyPj4yXSxXbyhsLGIrNDh8MCw0KTticmVhayBlO2Nhc2UgMTI6YVti''@;'; + put 'put ''Pj4yXT1hWyhmPWIrNjR8MCk+PjJdLGFbYis0Pj4yXT1hW2YrND4+Ml0sYVtiKzg+PjJdPWFbZis4Pj4yXSxhW2IrMTI+PjJdPWFbZisxMj4+Ml0sV28obCxiLDQpO2JyZWFrIGU7Y2FzZSA5OldvKGwsbSwyKSxXbyhsLGIrNDh8MCwyKTticmVhayBlO2Nhc2UgNDphW2I+PjJdPWFbKGY9Yis2''@;'; + put 'put ''NHwwKT4+Ml0sYVtiKzQ+PjJdPWFbZis0Pj4yXSxhW2IrOD4+Ml09YVtmKzg+PjJdLGFbYisxMj4+Ml09YVtmKzEyPj4yXSxXbyhsLGIsMiksV28obCxiKzMyfDAsMik7YnJlYWsgZTtkZWZhdWx0OmJyZWFrIGV9fX13aGlsZSgwKTtsZT1NfWZ1bmN0aW9uIFA0KGwsYyl7Y3w9MDt2YXIgZj0w''@;'; + put 'put ''LHA9MCxtPTA7MD09KDB8YVsoZj0yMDgrKG09MHxhWzE2KyhsfD0wKT4+Ml0pfDApPj4yXSkmJjA9PSgxJml0W20rMjYwPj4xXSk/bD0wOihFaChsKSxsPTB8YVtmPj4yXSksKDB8bCkhPSgwfGFbYz4+Ml0pJiYoRnQobCksYVtmPj4yXT1hW2M+PjJdKSwoMHwoZj0wfGFbKGw9bSsyMjh8MCk+''@;'; + put 'put ''PjJdKSkhPSgwfGFbKHA9Yys0fDApPj4yXSkmJihGdChmKSxhW2w+PjJdPWFbcD4+Ml0pLCgwfChmPTB8YVsobD1tKzI0NHwwKT4+Ml0pKSE9KDB8YVsocD1jKzh8MCk+PjJdKSYmKEZ0KGYpLGFbbD4+Ml09YVtwPj4yXSksKDB8KGY9MHxhWyhsPW0rMjEyfDApPj4yXSkpIT0oMHxhWyhwPWMr''@;'; + put 'put ''MTJ8MCk+PjJdKSYmKEZ0KGYpLGFbbD4+Ml09YVtwPj4yXSksaXRbKG09bSsyNjB8MCk+PjFdPS0yJml0W20+PjFdfDEmZmVbYysxNj4+MF19ZnVuY3Rpb24gd0UobCxjKXtsfD0wO3ZhciBmLHA9MDswfChwPTB8YVsoY3w9MCk+PjJdKSYmKGFbbCsxNj4+Ml09cCksMHwocD0wfGFbYys0Pj4y''@;'; + put 'put ''XSkmJihhW2wrMjA+PjJdPXApLChmPStfW2MrMTY+PjNdKT49MCYmKF9bbCszMj4+M109Zil9ZnVuY3Rpb24gUjkobCxjLGYscCl7dmFyIG0sQSx3O2x8PTAsZj0rZixwPStwLG09bGUsbGU9bGUrNjR8MCxBPW0rMzJ8MCxhWyh3PW0pPj4yXT1hWyhjfD0wKT4+Ml0sYVt3KzQ+PjJdPWFbYys0''@;'; + put 'put ''Pj4yXSxhW3crOD4+Ml09YVtjKzg+PjJdLGFbdysxMj4+Ml09YVtjKzEyPj4yXSxfW3crMTY+PjNdPStfW2M+PjNdK2YsX1t3KzI0Pj4zXT0rX1tjKzg+PjNdK3AsYVtBPj4yXT1hW3c+PjJdLGFbQSs0Pj4yXT1hW3crND4+Ml0sYVtBKzg+PjJdPWFbdys4Pj4yXSxhW0ErMTI+PjJdPWFbdysx''@;'; + put 'put ''Mj4+Ml0sYVtBKzE2Pj4yXT1hW3crMTY+PjJdLGFbQSsyMD4+Ml09YVt3KzIwPj4yXSxhW0ErMjQ+PjJdPWFbdysyND4+Ml0sYVtBKzI4Pj4yXT1hW3crMjg+PjJdLHkzKGwsQSwxKSxsZT1tfWZ1bmN0aW9uIFlSKGwsYyxmKXtsfD0wO3ZhciBtLEEsdyxNLHA9MCxiPTAsaz0wO2lmKEE9bGUs''@;'; + put 'put ''bGU9bGUrNjR8MCxNPShiPStfWyhmfD0wKT4+M10pKyArX1soY3w9MCk+PjNdLHc9KGs9K19bZis4Pj4zXSkrICtfW2MrOD4+M10says9K19bYysyND4+M10sX1sobT1BKT4+M109Yis9K19bYysxNj4+M10sX1ttKzg+PjNdPWssX1ttKzMyPj4zXT1NLF9bbSs0MD4+M109dyxfW20rMTY+PjNd''@;'; + put 'put ''PU0sX1ttKzI0Pj4zXT1rLF9bbSs0OD4+M109YixfW20rNTY+PjNdPXcsKHA9MHxhW2MrMzY+PjJdKXx8KHA9MHxhW2YrNTY+PjJdKSwoZj0wfGFbYyszMj4+Ml0pfHxQcigxMzczMzQsMTM3MzQyLDYyMywxMzczNTQpLDB8ZmVbZj4+MF0pcmV0dXJuIHFNKGwsZixtLDQsMSxwKSx2b2lkKGxl''@;'; + put 'put ''PUEpO1ByKDEzNzM2OCwxMzczNDIsNjI0LDEzNzM1NCl9ZnVuY3Rpb24gSzgobCl7RnQoMHxhWyhsfD0wKT4+Ml0pLEZ0KDB8YVtsKzQ+PjJdKSxGdCgwfGFbbCs4Pj4yXSksRnQoMHxhW2wrMTY+PjJdKSxGdCgwfGFbbCsxMj4+Ml0pLEZ0KDB8YVtsKzIwPj4yXSksRnQoMHxhW2wrMjQ+PjJd''@;'; + put 'put ''KX1mdW5jdGlvbiBRUihsKXt2YXIgYz0wLGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MDtpZigwfChsfD0wKSl7Zm9yKGI9bCs0fDAsZj0wLG09MHxhW2w+PjJdOyEoKDB8Zik+PSgwfGl0W2I+PjFdKSk7KXtmb3Ioaz1tKzR8MCxjPTAscD0wfGFbbT4+Ml07ISgoMHxjKT49KDB8aXRbaz4+''@;'; + put 'put ''MV0pKTspRnQoMHxhW3A+PjJdKSwwfChBPTB8YVtwKzg+PjJdKSYmMHwodz0wfGFbcCsxMj4+Ml0pJiZDb1sxMjcmd10oQSksYz1jKzF8MCxwPXArNTZ8MDtmPWYrMXwwLG09bSsyNHwwfTB8KGM9MHxhW2w+PjJdKSYmRnQoYyksRnQobCl9fWZ1bmN0aW9uIEFtKGwsYyl7c3dpdGNoKGN8PTAs''@;'; + put 'put ''MHxmZVs0KyhsfD0wKT4+MF0pe2Nhc2UgMTohZnVuY3Rpb24gbkcobCl7dmFyIHAsYz0wLGY9MDtpZihwPTg0KyhsfD0wKXwwLC0xPT0oMHxhW2wrMTAwPj4yXSkpTmwoMHxhW3A+PjJdKTtlbHNle2ZvcihjPTB8YVtwPj4yXSxGdCgwfGFbbCs5Mj4+Ml0pLEZ0KDB8YVtsKzk2Pj4yXSk7Zj0w''@;'; + put 'put ''fGFbYz4+Ml07KUpSKGYpLGM9Yys0fDA7RnQoMHxhW3A+PjJdKX1LOChsKSxGdChsKX0oMHxhW2w+PjJdKTticmVhaztjYXNlIDM6IWZ1bmN0aW9uIHRHKGwpe0Z0KDB8YVszMisobHw9MCk+PjJdKSxGdChsKX0oMHxhW2w+PjJdKTticmVhaztkZWZhdWx0OlFSKDB8YVtsPj4yXSl9MHxjJiZG''@;'; + put 'put ''dChsKX1mdW5jdGlvbiBKUihsKXtBbSg4OCsobHw9MCl8MCwwKSxLOChsKSxGdChsKX1mdW5jdGlvbiByRyhsLGMsZil7Znw9MDt2YXIgcD0wO3JldHVybiAyIT0oMHxmZVs0KyhsPTB8YVs3MisoMHxhWzEwNCsoMHxhWzE2KyhsfD0wKT4+Ml0pPj4yXSk+PjJdKT4+MF0pJiYwIT0oMHwocD0w''@;'; + put 'put ''fFhSKDB8YVtsPj4yXSxjfD0wKSkpPyhhW2Y+PjJdPVh0W3ArMzU+PjBdLGw9cCs0OHwwKTpsPTAsMHxsfWZ1bmN0aW9uIFhSKGwsYyl7Y3w9MDt2YXIgZj0wLHA9MDswIT0oMHwoZj0wfGFbNCsobHw9MCk+PjJdKSkmJjA9PSgwfHkwKGYsYykpfHwocD0zKTtlOmRve2lmKDM9PSgwfHApKWZv''@;'; + put 'put ''cihmPTB8YVtsKzg0Pj4yXTs7KXtpZighKGw9MHxhW2Y+PjJdKSl7bD0wO2JyZWFrIGV9aWYobD0wfGlHKGwsYykpYnJlYWs7Zj1mKzR8MH19d2hpbGUoMCk7cmV0dXJuIDB8bH1mdW5jdGlvbiBpRyhsLGMpe3ZhciBmO3JldHVybiBjfD0wLDAhPSgwfChmPTB8YVs0KyhsfD0wKT4+Ml0pKSYm''@;'; + put 'put ''MD09KDB8eTAoZixjKSl8fChsPTE9PSgwfGZlW2wrOTI+PjBdKT8wfFhSKDB8YVtsKzg4Pj4yXSxjKTowKSwwfGx9ZnVuY3Rpb24gRjQobCl7dmFyIGMsZjtyZXR1cm4gZj1sZSxsZT1sZSsxNnwwLGM9ZiwobHw9MCk+Pj4wPDIxP2w9MHxhWzU1ODQwKyhsPDwyKT4+Ml06KGFbYz4+Ml09bCxv''@;'; + put 'put ''bygxOTQ5NTksMTM3Mzk1LGMpLGw9MTk0OTU5KSxsZT1mLDB8bH1mdW5jdGlvbiBUMyhsLGMsZixwKXtwfD0wO3ZhciBtPTAsQT0wOyhtPTB8S2EobHw9MCxjfD0wLGZ8PTAsMCwwKSk/aXRbKEE9MTcwKygwfGFbbSsxNj4+Ml0pfDApPj4xXT0oMHwoZj0wfGhyW0E+PjFdKSk+KDB8cCk/Zjpw''@;'; + put 'put ''OihoMChBPTB8S2EobCxjLGYsMCwxKSwxMzc0NjAsMTc2LDEpLGl0WzE3MCsoMHxhW0ErMTY+PjJdKT4+MV09cCxsPShtPTB8YVsxODArKGw9MHxhWyhjPWMrMTZ8MCk+PjJdKT4+Ml0pPzB8VjAobSw4KyhhW2wrMTg0Pj4yXTw8Mil8MCk6MHxRbig4KyhhW2wrMTg0Pj4yXTw8Mil8MCksYVsx''@;'; + put 'put ''ODArKHA9MHxhW2M+PjJdKT4+Ml09bCxhWyhwPXArMTg0fDApPj4yXT0xKyhtPTB8YVtwPj4yXSksYVtsKyhtPDwyKT4+Ml09QSxhWygwfGFbMTgwKyhjPTB8YVtjPj4yXSk+PjJdKSsoYVtjKzE4ND4+Ml08PDIpPj4yXT0wLGw9KG09MHxhWzE3MisobD0wfGFbKGM9ZisxNnwwKT4+Ml0pPj4y''@;'; + put 'put ''XSk/MHxWMChtLDgrKGFbbCsxNzY+PjJdPDwyKXwwKTowfFFuKDgrKGFbbCsxNzY+PjJdPDwyKXwwKSxhWzE3MisocD0wfGFbYz4+Ml0pPj4yXT1sLGFbKHA9cCsxNzZ8MCk+PjJdPTErKGY9MHxhW3A+PjJdKSxhW2wrKGY8PDIpPj4yXT1BLGFbKDB8YVsxNzIrKEE9MHxhW2M+PjJdKT4+Ml0p''@;'; + put 'put ''KyhhW0ErMTc2Pj4yXTw8Mik+PjJdPTApfWZ1bmN0aW9uIGc2KGwpe3ZhciBjPTAsZj0wLHA9MCxtPTAsQT0wLHc9MDtmb3IoYz0wfGFbMTkyKygwfGFbMTYrKGx8PTApPj4yXSk+PjJdO0E9MHxhWzE2NCsoMHxhWyhwPWMrMTZ8MCk+PjJdKT4+Ml07KTB8S2EobCxjLEEsMCwwKXx8KGgwKG09''@;'; + put 'put ''MHxLYShsLGMsQSwwLDEpLDEzNzQ2MCwxNzYsMSksaXRbMTcwKygwfGFbbSsxNj4+Ml0pPj4xXT0wLGM9KGY9MHxhWzE4MCsoYz0wfGFbcD4+Ml0pPj4yXSk/MHxWMChmLDgrKGFbYysxODQ+PjJdPDwyKXwwKTowfFFuKDgrKGFbYysxODQ+PjJdPDwyKXwwKSxhWzE4MCsodz0wfGFbcD4+Ml0p''@;'; + put 'put ''Pj4yXT1jLGFbKHc9dysxODR8MCk+PjJdPTErKGY9MHxhW3c+PjJdKSxhW2MrKGY8PDIpPj4yXT1tLGFbKDB8YVsxODArKHA9MHxhW3A+PjJdKT4+Ml0pKyhhW3ArMTg0Pj4yXTw8Mik+PjJdPTAsYz0oZj0wfGFbMTcyKyhjPTB8YVsocD1BKzE2fDApPj4yXSk+PjJdKT8wfFYwKGYsOCsoYVtj''@;'; + put 'put ''KzE3Nj4+Ml08PDIpfDApOjB8UW4oOCsoYVtjKzE3Nj4+Ml08PDIpfDApLGFbMTcyKyhmPTB8YVtwPj4yXSk+PjJdPWMsYVsoZj1mKzE3NnwwKT4+Ml09MSsodz0wfGFbZj4+Ml0pLGFbYysodzw8Mik+PjJdPW0sYVsoMHxhWzE3MisoYz0wfGFbcD4+Ml0pPj4yXSkrKGFbYysxNzY+PjJdPDwy''@;'; + put 'put ''KT4+Ml09MCksYz1BfWZ1bmN0aW9uIHY2KGwsYyl7Y3w9MDt2YXIgcCxtLHcsYixELFIsZj0wLEE9MCxrPTAsTT0wLEc9MCxLPTA7c3dpdGNoKFI9bGUsbGU9bGUrMjcyfDAsTT1SKzEwNHwwLEQ9UisxMzZ8MCx3PVIrNzJ8MCxtPVIrMTQ0fDAsYVsoYj1SKSs0OD4+Ml09bHw9MCwwfGtpKGwp''@;'; + put 'put ''KXtjYXNlIDA6Zj0wfGFbbCs2MD4+Ml07YnJlYWs7Y2FzZSAxOmY9MHxjcihsKTticmVhaztjYXNlIDI6Zj0wfGNyKDB8YVsoMj09KDMmYVtsPj4yXXwwKT9sOmwrLTQ4fDApKzQwPj4yXSl9cmV0dXJuIGFbKEE9Yis1MnwwKT4+Ml09ZixrPTB8YVtmKzYwPj4yXSxfW2IrMzI+PjNdPStfW2Mr''@;'; + put 'put ''MTY+PjNdLGFbYisxNj4+Ml09YVtjKzQ+PjJdLGFbYisyMD4+Ml09YVtjKzg+PjJdLGFbYis0MD4+Ml09MCxwPTB8ZnVuY3Rpb24gYkIobCxjLGYpe2x8PTAsY3w9MCxmfD0wO3ZhciBwLG0sQTtyZXR1cm4gbT1sZSxsZT1sZSsxNjB8MCxwPW0rOHwwLGFbKEE9bSk+PjJdPTAsYVtBKzQ+PjJd''@;'; + put 'put ''PTAsYVs0NzQwM109QSxhWzQ3NDAyXT0wLGFbNDc0MDBdPTAsYVs0NzQwNF09YVsxNDQrKDB8YVsxNisoMHxhW2YrNTI+PjJdKT4+Ml0pPj4yXSxhWzQ3NDA1XT0wfGlzKDU2MTA0LDB8YVs0NTgwXSksYVs0NzQwNl09MHxpcyg1NjE0MCwwfGFbNDU4MF0pLHVzKHAsMTI4LG0rMjR8MCksYVs0''@;'; + put 'put ''NzQwMV09cCwwfGZ1bmN0aW9uIFpFKGwsYyxmKXtyZXR1cm4gbHw9MCxmfD0wLGFbNDc0MTBdPWN8PTAsdXMoMTg5NjQ0LDEyOCwwKSxhWzQ3NDA4XT1sLGZlWzE4OTY2M109MCxmZVsxODk2NjBdPTAsZmVbMTg5NjYxXT0wLGFbNDc0MThdPTAsYVs0NzQxOV09MCxmZVsxODk2NjJdPTEsYz0w''@;'; + put 'put ''fGZ1bmN0aW9uIGF4KGwpe3JldHVybiAwfGZ1bmN0aW9uIG1fKGwsYyxmKXtyZXR1cm4gMHxmdW5jdGlvbiB6QihsLGMsZixwKXtsfD0wLGZ8PTAscHw9MDt2YXIgbT0wLEE9MCx3PTAsYj0wOyhjfD0wKT8obT0wfF9vWzYzJmFbYz4+Ml1dKDQ5NikpPyhhW20rMTI+PjJdPUE9MHxhW2M+PjJd''@;'; + put 'put ''LGFbbSsxNj4+Ml09YVtjKzQ+PjJdLGFbbSsyMD4+Ml09YVtjKzg+PjJdLGM9QSxBPTYpOm09MDoobT0wfEIwKDQ5NikpPyhhW20rMTI+PjJdPTM1LGFbbSsxNj4+Ml09MTA3LGFbbSsyMD4+Ml09MTA1LGM9MzUsQT02KTptPTA7ZG97aWYoNj09KDB8QSkpe2lmKGFbbSs4Pj4yXT0wLGFbbSsz''@;'; + put 'put ''Mj4+Ml09MCxhW20rMzc2Pj4yXT0xNixiPW0rMTJ8MCx3PTB8X29bNjMmY10oMjU2KSxhWyhjPW0rMzg4fDApPj4yXT13LCF3KXtDb1sxMjcmYVttKzIwPj4yXV0obSksbT0wO2JyZWFrfWlmKEE9MHxfb1s2MyZhW2I+PjJdXSgxMDI0KSxhWyh3PW0rNDR8MCk+PjJdPUEsIUEpe0NvWzEyNyZh''@;'; + put 'put ''WyhmPW0rMjB8MCk+PjJdXSgwfGFbYz4+Ml0pLENvWzEyNyZhW2Y+PjJdXShtKSxtPTA7YnJlYWt9aWYoYVttKzQ4Pj4yXT1BKzEwMjQscClhW20rMzUyPj4yXT1wO2Vsc2UgaWYocD0wfHZHKGIpLGFbbSszNTI+PjJdPXAsIXApe0NvWzEyNyZhWyhmPW0rMjB8MCk+PjJdXSgwfGFbdz4+Ml0p''@;'; + put 'put ''LENvWzEyNyZhW2Y+PjJdXSgwfGFbYz4+Ml0pLENvWzEyNyZhW2Y+PjJdXShtKSxtPTA7YnJlYWt9aWYoYVttKzM3Mj4+Ml09MCxhW20rMzY0Pj4yXT0wLGFbbSszMDA+PjJdPTAsYVttKzQ2ND4+Ml09MCxhW20rNDYwPj4yXT0wLGFbbSsxMjQ+PjJdPTAsYVttKzI0ND4+Ml09MCxmZVsoYz1t''@;'; + put 'put ''KzQ2OHwwKT4+MF09MzMsZmVbKEE9bSsyMzJ8MCk+PjBdPTAsZmVbbSsyMzM+PjBdPTAsYVttKzM5Mj4+Ml09MCxhW20rMzk2Pj4yXT0wLGZlW20rNDAwPj4wXT0wLGFbKHA9bSsyMjh8MCk+PjJdPTAsb0EobSs0MTJ8MCxiKSxvQShtKzQzNnwwLGIpLHZfKG0sbCksMHxsJiYwPT0oMHxhW3A+''@;'; + put 'put ''PjJdKSl7QV8obSksbT0wO2JyZWFrfWlmKGYpe2ZlW0E+PjBdPTEsYVttKzIyND4+Ml09NjAwOTIsZmVbYz4+MF09MHxmZVtmPj4wXTticmVha31hW20rMjI0Pj4yXT01ODIyMDticmVha319d2hpbGUoMCk7cmV0dXJuIDB8bX0obHw9MCxjfD0wLGZ8PTAsMCl9KGx8PTAsMCwwKX0oMHxmdW5j''@;'; + put 'put ''dGlvbiBVb2UobCl7dmFyIGMsZjtzd2l0Y2goZj1sZSxsZT1sZSsxNnwwLGM9ZiwwfChsfD0wKSl7Y2FzZSAwOmw9MTAxOTcxO2JyZWFrO2Nhc2UgMTpsPTEwMTgzOTticmVhaztjYXNlIDI6bD0xMDE5Nzc7YnJlYWs7ZGVmYXVsdDphW2M+PjJdPWwsJHIoMSwxMDE5NDEsYyksbD0xMDE5NzF9''@;'; + put 'put ''cmV0dXJuIGxlPWYsMHxsfSgwfFh0WzExNSsoMHxhWzE2KygwfGFbKGY9Zis1MnwwKT4+Ml0pPj4yXSk+PjBdKSksYVs0NzQwN109YyxmdW5jdGlvbiB3RyhsLGMpe2N8PTA7dmFyIGY9MCxwPTA7MHwobHw9MCkmJihwPSgwfGFbKGY9bCs0fDApPj4yXSk9PSgwfGFbbD4+Ml0pLGFbbD4+Ml09''@;'; + put 'put ''YyxwKSYmKGFbZj4+Ml09Yyl9KGMsMHxhWzE0NCsoMHxhWzE2KygwfGFbZj4+Ml0pPj4yXSk+PjJdKSxmdW5jdGlvbiBkeChsLGMsZil7Znw9MCwwfChsfD0wKSYmKGFbbCs1Mj4+Ml09Y3w9MCxhW2wrNTY+PjJdPWYpfSgwfGFbNDc0MDddLDcwLDI3KSxmdW5jdGlvbiBRQihsLGMpezB8KGx8''@;'; + put 'put ''PTApJiYoYVtsKzYwPj4yXT1jfD0wKX0oMHxhWzQ3NDA3XSw3MSksMH0obCxwLGYpPyhhW2M+PjJdPTIsbD0wKTooZnVuY3Rpb24gbUIoKXt2YXIgRyxwZSxsPTAsYz0wLGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxLPTA7cGU9bGUsbGU9bGUrMTIwMHwwLEc9cGUr''@;'; + put 'put ''ODAwfDAsZj1wZSxhWzQ3Mzk3XT0wLGFbNDczOThdPS0yLGM9RyxtPTIwMCxrPWYsRD0wLFI9MCxNPUc7ZTpmb3IoOzspe2lmKGl0W00+PjFdPUQsKGMrKG08PDEpKy0yfDApPj4+MD5NPj4+MCl3PW07ZWxzZXtpZihsPTErKGI9TS1jPj4xKXwwLG0+Pj4wPjk5OTkpe0s9OTU7YnJlYWt9c3dp''@;'; + put 'put ''dGNoKChwPTB8QjAoNioodz0odz1tPDwxKT4+PjA8MWU0P3c6MWU0KXwzKSk/KGdvKDB8cCwwfGMsbDw8MXwwKSxnbygwfChtPXArKHc+Pj4xPDwyKXwwKSwwfGssbDw8MnwwKSwoMHxjKT09KDB8Ryk/KGw9MCxjPXApOihGdChjKSxsPTAsYz1wKSk6KGw9NCxtPWspLHA9YysoYjw8MSl8MCwx''@;'; + put 'put ''NSYoKEE9MD09KDB8bCkpPyhjKyh3PDwxKSstMnwwKT4+PjA+cD4+PjA/MDo5OmwpKXtjYXNlIDk6bD0xLEs9OTY7YnJlYWsgZTtjYXNlIDQ6Sz05NTticmVhayBlO2Nhc2UgMDpmPUE/bSsoYjw8Mil8MDpmLGs9bSxNPUE/cDpNO2JyZWFrO2RlZmF1bHQ6bD0wO2JyZWFrIGV9fWlmKDMxPT0o''@;'; + put 'put ''MHxEKSl7bD0wLEs9OTY7YnJlYWt9QT0obD0wfGl0WzY1NTM0KyhEPDwxKT4+MV0pPDwxNj4+MTY7ZG97aWYobDw8MTY+PjE2IT0tODIpe2lmKC0yPT0oMHwocD0wfGFbNDczOThdKSkmJihwPTB8S0UoKSxhWzQ3Mzk4XT1wKSwoMHxwKT49MT9tPXA+Pj4wPDI5Nj8wfFh0WzEzOTMyMStwPj4w''@;'; + put 'put ''XToyOihhWzQ3Mzk4XT0wLG09MCksKHA9bStBfDApPj4+MDw9MjcxJiYoMHxtKT09KDB8ZmVbMTM5NjE3K3A+PjBdKSl7aWYobD0oRD0wfGZlWzEzOTg4OStwPj4wXSk8PDI0Pj4yNCxEPDwyND4+MjQ8MSl7cD0wLWx8MCxLPTIzO2JyZWFrfWFbNDczOThdPS0yLGFbKGY9Zis0fDApPj4yXT1h''@;'; + put 'put ''WzQ3Mzk5XSxBPTA9PSgwfFIpPzA6UistMXwwLHA9TTticmVha31LPTIyfWVsc2UgSz0yMn13aGlsZSgwKTtpZigyMj09KDB8SykpaWYoSz0wLHA9MjU1JihEPTB8ZmVbMTQwMTYxK0Q+PjBdKSxEPDwyND4+MjQpSz0yMztlbHNle3A9MHxhWzQ3Mzk4XTt0OmRve3N3aXRjaCgwfFIpe2Nhc2Ug''@;'; + put 'put ''MDphWzQ3Mzk3XT0xKygwfGFbNDczOTddKSxIYSgxNDM3NjEpLHA9TTticmVhaztjYXNlIDM6aWYoKDB8cCk8MSl7aWYocCl7cD1NO2JyZWFrIHR9bD0xLEs9OTY7YnJlYWsgZX1hWzQ3Mzk4XT0tMixwPU07YnJlYWsgdDtkZWZhdWx0OnA9TX19d2hpbGUoMCk7Zm9yKDtsPDwxNj4+MTYhPTg7''@;'; + put 'put ''KXtpZigoMHxwKT09KDB8Yykpe2w9MSxLPTk2O2JyZWFrIGV9Zj1mKy00fDAscD1sPXArLTJ8MCxsPTB8aXRbNjU1MzQrKGl0W2w+PjFdPDwxKT4+MV19YVsoZj1mKzR8MCk+PjJdPWFbNDczOTldLGw9MSxBPTN9ZG97aWYoMjM9PSgwfEspKXtzd2l0Y2goSz0wLGw9MHxhW2YrKDEtKEE9MHxY''@;'; + put 'put ''dFsxNDAyNzcrcD4+MF0pPDwyKT4+Ml0sMHxwKXtjYXNlIDQ6Sz0yNjticmVhayBlO2Nhc2UgMjphWzQ3NDAwXT0wfEpiKDB8YVtmKy00Pj4yXSwyKTticmVhaztjYXNlIDM6YVs0NzQwMF09MHxKYigwfGFbZistND4+Ml0sMSk7YnJlYWs7Y2FzZSA1Omw9MHxTbSgpO2JyZWFrO2Nhc2UgODpI''@;'; + put 'put ''RSgwfGFbNDc0MDFdKTticmVhaztjYXNlIDk6VTkoMHxhW2Y+PjJdKTticmVhaztjYXNlIDE4OmNhc2UgMjA6Y2FzZSAyMjpjYXNlIDI0OmNhc2UgMjY6Y2FzZSAyODpjYXNlIDMwOmNhc2UgMzI6VjQoMHxhW2Y+PjJdKTticmVhaztjYXNlIDE5OmNhc2UgMjE6Y2FzZSAyMzpjYXNlIDI1OmNh''@;'; + put 'put ''c2UgMjc6Y2FzZSAyOTpjYXNlIDMxOmNhc2UgMzM6VGQoKTticmVhaztjYXNlIDM0OmNhc2UgNDE6Y2FzZSA0MjpjYXNlIDQzOmNhc2UgNDQ6Y2FzZSA0NTpjYXNlIDY0Omw9MHxhW2YrLTQ+PjJdO2JyZWFrO2Nhc2UgMzU6Y2FzZSA0MDpjYXNlIDQ4OmNhc2UgNDk6Y2FzZSA1MzpjYXNlIDU0''@;'; + put 'put ''OmNhc2UgNjU6bD0wfGFbZj4+Ml07YnJlYWs7Y2FzZSAzODppZigobT0wfGFbNCsobD0wfGFbNDc0MDFdKT4+Ml0pPj4+MD49KDB8YVtsKzg+PjJdKT4+PjAmJihRMChsLDEpLGw9bT0wfGFbNDc0MDFdLG09MHxhW20rND4+Ml0pLGZlW20+PjBdPTAsYVtsKzQ+PjJdPUQ9MHxhW2w+PjJdLDB8''@;'; + put 'put ''WGIoRCkpe0s9NTE7YnJlYWsgZX1hWzgwKygwfGFbZj4+Ml0pPj4yXT1hWzQ3NDAyXSxsPTB8aXMoNTYwMzIsMHxhWzQ1ODBdKSxhWzg0KygwfGFbZj4+Ml0pPj4yXT1sLGFbNDc0MDJdPWFbZj4+Ml0sYVsxMDgrKDB8YVtmPj4yXSk+PjJdPWFbYVs0NzQwM10+PjJdLGw9MHxhW2Y+PjJdO2Jy''@;'; + put 'put ''ZWFrO2Nhc2UgMzk6aWYoKG09MHxhWzQrKGw9MHxhWzQ3NDAxXSk+PjJdKT4+PjA+PSgwfGFbbCs4Pj4yXSk+Pj4wJiYoUTAobCwxKSxsPW09MHxhWzQ3NDAxXSxtPTB8YVttKzQ+PjJdKSxmZVttPj4wXT0wLGFbbCs0Pj4yXT1EPTB8YVtsPj4yXSwwfFhiKEQpKXtLPTU2O2JyZWFrIGV9YVs0''@;'; + put 'put ''NzQwMl09YVs4MCsobD0wfGFbNDc0MDJdKT4+Ml07YnJlYWs7Y2FzZSA1MDpmZVsxMisoMHxhW2YrLTg+PjJdKT4+MF09MSxsPTB8YVtmPj4yXTticmVhaztjYXNlIDUxOmIxKCk7YnJlYWs7Y2FzZSA1MjpsPTB8aHUoKTticmVhaztjYXNlIDU1OmZlWyhsPTEwMCsoMHxhW2YrLTg+PjJdKXww''@;'; + put 'put ''KT4+MF09MXxmZVtsPj4wXSxsPTB8YVtmPj4yXTticmVhaztjYXNlIDU2Ok1tKDB8YVtmKy00Pj4yXSwwfGFbZj4+Ml0sMSk7YnJlYWs7Y2FzZSA1NzpjYXNlIDU5OmNhc2UgNjE6bD0wfGFbZistMTI+PjJdO2JyZWFrO2Nhc2UgNTg6TW0oMHxhW2YrLTQ+PjJdLDB8YVtmPj4yXSwyKTticmVh''@;'; + put 'put ''aztjYXNlIDYwOk1tKDB8YVtmKy00Pj4yXSwwfGFbZj4+Ml0sMyk7YnJlYWs7Y2FzZSA2MjpNbSgwfGFbZj4+Ml0sMHxTbSgpLDIpO2JyZWFrO2Nhc2UgNjM6bD0wfGFbZistOD4+Ml19aWYoRD1mKygobT0wLUF8MCk8PDIpfDAsbT1NKyhtPDwxKXwwLGY9RCs0fDAsYVtEKzQ+PjJdPWwsKHA9''@;'; + put 'put ''KEQ9MHxpdFttPj4xXSkrKDB8aXRbNjU3NjYrKChsPSgwfFh0WzE0MDQ0OStwPj4wXSktNDF8MCk8PDEpPj4xXSl8MCk+Pj4wPDI3MiYmKDB8ZmVbMTM5NjE3K3A+PjBdKT09KDB8RCkpe2w9MHxmZVsxMzk4ODkrcD4+MF0sQT1SLHA9bTticmVha31sPTB8ZmVbMTQwNTE5K2w+PjBdLEE9Uixw''@;'; + put 'put ''PW19fXdoaWxlKDApO209dyxEPWwsUj1BLE09cCsyfDB9MjY9PSgwfEspPyhEMygpLGw9MSxLPTk2KTo1MT09KDB8Syk/KEhhKDE0MDM0NyksRDMoKSxsPTEsSz05Nik6NTY9PSgwfEspPyhIYSgxNDAzOTgpLEQzKCksbD0xLEs9OTYpOjk1PT0oMHxLKSYmKEhhKDE0MDU1OCksbD0yLEs9OTYp''@;'; + put 'put ''LDk2PT0oMHxLKSYmKDB8YykhPSgwfEcpJiZGdChjKSxsZT1wZX0oKSxhW2M+PjJdPTB8ZnVuY3Rpb24gWDkoKXt2YXIgbDtyZXR1cm4gbD0oZmVbMTg5NjYxXXxmZVsxODk2NjBdKTw8MjQ+PjI0LEFfKDB8YVs0NzQwN10pLEMyKDE4OTY0NCksMHxsfSgpLGw9MHxhWzQ3NDAwXSksTmwoMHxh''@;'; + put 'put ''WzQ3NDA1XSksTmwoMHxhWzQ3NDA2XSksYVs0NzQwNV09MCxhWzQ3NDA2XT0wLGFbNDc0MDNdPTAsQzIocCksbGU9bSwwfGx9KDB8YVtjPj4yXSxELGIpLHA/KDE9PSgwfGZlWyhmPXArNHwwKT4+MF0pPygwPT0oMHxhWzI0KygwfGFbcD4+Ml0pPj4yXSkmJjB8d20obCkmJihBPTB8cmEoMHx3''@;'; + put 'put ''bShsKSksYVsyNCsoMHxhW3A+PjJdKT4+Ml09QSksaz0wfGJFKGssMHxhW3A+PjJdLDAsYiksYVtEPj4yXT1hW0Q+PjJdfGssTWIodywtKEs9LjUqK19bNjQrKGs9MHxhW3A+PjJdKT4+M10pLC0oRz0uNSorX1trKzcyPj4zXSksSyxHKSxrPTB8YVtwPj4yXSxhW00+PjJdPWFbdz4+Ml0sYVtN''@;'; + put 'put ''KzQ+PjJdPWFbdys0Pj4yXSxhW00rOD4+Ml09YVt3Kzg+PjJdLGFbTSsxMj4+Ml09YVt3KzEyPj4yXSxhW00rMTY+PjJdPWFbdysxNj4+Ml0sYVtNKzIwPj4yXT1hW3crMjA+PjJdLGFbTSsyND4+Ml09YVt3KzI0Pj4yXSxhW00rMjg+PjJdPWFbdysyOD4+Ml0sX0UoayxNLDE1KSk6KENFKDB8''@;'; + put 'put ''YVsxNDQrKDB8YVtrKzE2Pj4yXSk+PjJdLDB8YVtwPj4yXSxiKSxNYih3LC0oRz0uNSorX1syNCsoTT0wfGFbcD4+Ml0pPj4zXSksLShLPS41KitfW00rMzI+PjNdKSxHLEspLGFbKE09OCsoMHxhW3A+PjJdKXwwKT4+Ml09YVt3Pj4yXSxhW00rND4+Ml09YVt3KzQ+PjJdLGFbTSs4Pj4yXT1h''@;'; + put 'put ''W3crOD4+Ml0sYVtNKzEyPj4yXT1hW3crMTI+PjJdLGFbTSsxNj4+Ml09YVt3KzE2Pj4yXSxhW00rMjA+PjJdPWFbdysyMD4+Ml0sYVtNKzI0Pj4yXT1hW3crMjQ+PjJdLGFbTSsyOD4+Ml09YVt3KzI4Pj4yXSksX1tjKzI0Pj4zXT0rX1t3KzE2Pj4zXS0rX1t3Pj4zXSxfW2MrMzI+PjNdPStf''@;'; + put 'put ''W3crMjQ+PjNdLStfW3crOD4+M10sYVtjKzcyPj4yXT1wLDE9PSgwfGZlW2Y+PjBdKSYmKEZ0KDB8YVtjPj4yXSksYVtjPj4yXT0wfHJhKDE0MTYxMSkpLGY9MHxhW0Q+PjJdKToodXMoTSwxMjgsbSksZmVbYys4Mj4+MF09MCxmPTB8cmEoMHxmdW5jdGlvbiAkUihsLGMpe2x8PTAsY3w9MDt2''@;'; + put 'put ''YXIgZj0wO2U6ZG97c3dpdGNoKDB8a2kobCkpe2Nhc2UgMDpjYXNlIDE6dW8oYywwfHRpKGwpKTticmVhaztjYXNlIDI6aWYodW8oYywwfHRpKDB8YVsoMz09KDMmYVtsPj4yXXwwKT9sOmwrNDh8MCkrNDA+PjJdKSksZj1sKy00OHwwLHVvKGMsMHx0aSgwfGFbKDI9PSgzJmFbbD4+Ml18MCk/''@;'; + put 'put ''bDpmKSs0MD4+Ml0pKSwwfFNjKDB8Y3IoMHxhWygyPT0oMyZhW2w+PjJdfDApP2w6ZikrNDA+PjJdKSkpe3VvKGMsMTM3NzM4KTticmVhayBlfXVvKGMsMTQxNzQ3KTticmVhayBlfX13aGlsZSgwKTtyZXR1cm4obD0wfGFbKGY9Yys0fDApPj4yXSk+Pj4wPj0oMHxhW2MrOD4+Ml0pPj4+MCYm''@;'; + put 'put ''KFEwKGMsMSksbD0wfGFbZj4+Ml0pLGZlW2w+PjBdPTAsYVtmPj4yXT1jPTB8YVtjPj4yXSwwfGN9KGwsTSkpLGFbYz4+Ml09ZixmPTE9PSgwfGFbYysxMj4+Ml0pPzB8eWsoZik6MHxPTihmLDB8YVtBPj4yXSksRnQoMHxhW2M+PjJdKSxhW2M+PjJdPWYsdzcoMHxhWzE0NCsoMHxhW2srMTY+''@;'; + put 'put ''PjJdKT4+Ml0sYyksQzIoTSksZj0wfGFbRD4+Ml0pLGxlPVIsMHxmfWZ1bmN0aW9uIHdtKGwpe3ZhciBjPTAsZj0wOzAhPSgwfChjPTB8TGkobHw9MCwxMzc3MjkpKSkmJjAhPSgwfGZlW2M+PjBdKXx8KGY9Myk7ZG97aWYoMz09KDB8Zikpe2lmKDB8KGM9MHxMaShsLDE0MDgyMykpJiYwfGZl''@;'; + put 'put ''W2M+PjBdKWJyZWFrO2M9MH19d2hpbGUoMCk7cmV0dXJuIDB8Y31mdW5jdGlvbiBiRShsLGMsZixwKXtsfD0wLGZ8PTAscHw9MDt2YXIgYixNLEcscGUsZ2UsbT0wLEE9MCx3PTAsaz0wLEQ9MCxSPTAsSz0wO2ZvcihnZT1sZSxsZT1sZSsxNnwwLEs9Z2UrOHwwLEc9Z2UsMHwobT0wfGFbKHBl''@;'; + put 'put ''PTEwOCsoY3w9MCl8MCk+PjJdKSYmYm8ocCxtLDE4NjU3NiksYVtjKzgwPj4yXT1mLG09MHxmdW5jdGlvbiB0QihsLGMsZil7bHw9MCxmfD0wO3ZhciBnZSxiZSxPZSxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAsSz0wLHBlPTA7Zm9yKGdlPTB8YVsoYj04NCsoY3w9''@;'; + put 'put ''MCl8MCk+PjJdLGJlPTB8eDcoKSxPZT0wfGtFKCksbT0wLHA9MCx3PTB8czAoZ2UpO3c7KXtmb3IoQT0wfHMwKDB8YVt3Kzg+PjJdKTtBOylBPTB8YVtBPj4yXSxtPW0rMXwwO3A9cCsxfDAsMHxmZVt3KzEyPj4wXSYmU0UoT2UscCksdz0wfGFbdz4+Ml19Zm9yKHA9MHx2cig0KyhtPDwyKXww''@;'; + put 'put ''KSxhW2I+PjJdPXAsbT0wLEE9MCx3PTAsRz0wLEs9MHxzMChnZSk7Szspe2ZvcihwZT02NTUzNSZHLFI9MCxEPTB8czAoMHxhW0srOD4+Ml0pO0Q7KWFbcD4+Ml09TT0wfGFbRCs4Pj4yXSx3PTB8bkIobCxNLGMsZil8dyxiPTB8ckIoYmUsRyxSLE0pLGl0W00rODY+PjFdPXBlLGl0W00rODQ+''@;'; + put 'put ''PjFdPWIsYj1iKygwfGhyW00rODA+PjFdKXwwLDB8VGIoT2Usaz1HKygwfGhyW00rODI+PjFdKXwwKSYmKGZlWyhSPU0rMTAwfDApPj4wXT0yfGZlW1I+PjBdKSxSPWIscD1wKzR8MCxEPTB8YVtEPj4yXSxtPSgwfGIpPigwfG0pP2I6bSxBPSgwfGspPigwfEEpP2s6QTtHPUcrMXwwLEs9MHxh''@;'; + put 'put ''W0s+PjJdfXJldHVybiBhW2MrMTAwPj4yXT1BLGFbYysxMDQ+PjJdPW0sTmwoZ2UpLE5sKE9lKSxBeShiZSksMHx3fShsLGMscCksMTI4JihsPTB8aXRbKEQ9YyszNnwwKT4+MV0pfHwoZmVbYyszMj4+MF09MiksZj1jKzMzfDAsMzImbHx8KGZlW2Y+PjBdPTEpLGZ1bmN0aW9uIEtSKGwpe2x8''@;'; + put 'put ''PTA7dmFyIGMsZixBLHA9MCxtPTA7QT1sZSxsZT1sZSsxNnwwLG09QSs0fDAsYVsoYz1BKT4+Ml09YVs0NjQ3XSwxIT0oMHwoZj0wfGFbbCsxMDA+PjJdKSkmJjEhPSgwfGFbKHA9bCsxMDR8MCk+PjJdKT8oYVtsKzkyPj4yXT0wfHZyKDQrKGY8PDIpfDApLGFbbCs5Nj4+Ml09MHx2cig0Kyhh''@;'; + put 'put ''W3A+PjJdPDwyKXwwKSxmZVttPj4wXT0wfGZlW2M+PjBdLGZlW20rMT4+MF09MHxmZVtjKzE+PjBdLGZlW20rMj4+MF09MHxmZVtjKzI+PjBdLGZlW20rMz4+MF09MHxmZVtjKzM+PjBdLHA9MHxvYygxMzc0NzMsbSwwKSxmZVttPj4wXT0wfGZlW2M+PjBdLGZlW20rMT4+MF09MHxmZVtjKzE+''@;'; + put 'put ''PjBdLGZlW20rMj4+MF09MHxmZVtjKzI+PjBdLGZlW20rMz4+MF09MHxmZVtjKzM+PjBdLG09MHxvYygxMzc0NzgsbSwwKSxoMChwLDEzNzQ4MywyODAsMSksaDAobSwxMzc0ODMsMjgwLDEpLGZ1bmN0aW9uIFA5KGwsYyxmKXtjfD0wO3ZhciBiLGsscD0wLG09MCxBPTAsdz0wLE09MCxEPTAs''@;'; + put 'put ''Uj0wO2ZvcihiPTEwNCsobHw9MCl8MCxrPWwrMTAwfDAsdz0xNisoZnw9MCl8MCxwPTAsbT0wOyEoKDB8cCk+KDB8YVtiPj4yXSkpOyloMChBPTB8R3IoZiwwfEY0KHApLDEpLDEzNzQ0NywzMDQsMSksYVsxNzYrKDB8YVsoTT1BKzE2fDApPj4yXSk+PjJdPTAsUj0wfHZyKDQrKGFbaz4+Ml08''@;'; + put 'put ''PDIpfDApLGFbMTcyKyhEPTB8YVtNPj4yXSk+PjJdPVIsYVtEKzE4ND4+Ml09MCxEPTB8dnIoNCsoYVtrPj4yXTw8Mil8MCksYVsxODArKDB8YVtNPj4yXSk+PjJdPUQsbT9hWzE2NCsoMHxhW20rMTY+PjJdKT4+Ml09QTphWzE5MisoMHxhW3c+PjJdKT4+Ml09QSxwPXArMXwwLG09QTtmb3Io''@;'; + put 'put ''dz1jKzE2fDAscD0wLG09MDshKCgwfHApPigwfGFbaz4+Ml0pKTspaDAoQT0wfEdyKGMsMHxGNChwKSwxKSwxMzc0NDcsMzA0LDEpLGFbMTc2KygwfGFbKFI9QSsxNnwwKT4+Ml0pPj4yXT0wLE09MHx2cig0KyhhW2I+PjJdPDwyKXwwKSxhWzE3MisoRD0wfGFbUj4+Ml0pPj4yXT1NLGFbRCsx''@;'; + put 'put ''ODQ+PjJdPTAsRD0wfHZyKDQrKGFbYj4+Ml08PDIpfDApLGFbMTgwKygwfGFbUj4+Ml0pPj4yXT1ELG0/YVsxNjQrKDB8YVttKzE2Pj4yXSk+PjJdPUE6YVsxOTIrKDB8YVt3Pj4yXSk+PjJdPUEscD1wKzF8MCxtPUE7Zm9yKHA9MHxhW2wrODQ+PjJdO209MHxhW3A+PjJdOylUMyhmLEQ9MHxH''@;'; + put 'put ''cihmLDB8RjQoMHxoclsoUj1tKzg0fDApPj4xXSksMCksUj0wfEdyKGYsMHxGNCgoMHxoclttKzgwPj4xXSkrKDB8aHJbUj4+MV0pfDApLDApLH5+K19bbSs2ND4+M10pLFQzKGMsRD0wfEdyKGMsMHxGNCgwfGhyWyhSPW0rODZ8MCk+PjFdKSwwKSxSPTB8R3IoYywwfEY0KCgwfGhyW20rODI+''@;'; + put 'put ''PjFdKSsoMHxocltSPj4xXSl8MCksMCksfn4rX1ttKzcyPj4zXSkscD1wKzR8MDtnNihmKSxnNihjKX0obCxwLG0pLGs3KHAsMiwyMTQ3NDgzNjQ3KSxrNyhtLDIsMjE0NzQ4MzY0NyksZnVuY3Rpb24gbTYobCxjLGYpe2Z8PTA7dmFyIEEscD0wLG09MCx3PTA7Zm9yKEE9OTIrKGx8PTApfDAs''@;'; + put 'put ''cD0wLG09MCxjPTB8YVsxNisoMHxhWzE5MisoMHxhWzE2KyhjfD0wKT4+Ml0pPj4yXSk+PjJdO2M9MHxhW2MrMTY0Pj4yXTspYVsoMHxhW0E+PjJdKSsobTw8Mik+PjJdPSgwfGFbKHc9MjMyKyhjPTB8YVtjKzE2Pj4yXSl8MCk+PjJdKS1wLHA9MHxhW3c+PjJdLG09bSsxfDA7Zm9yKGw9bCs5''@;'; + put 'put ''NnwwLHA9MCxtPTAsYz0wfGFbMTYrKDB8YVsxOTIrKDB8YVtmKzE2Pj4yXSk+PjJdKT4+Ml07Yz0wfGFbYysxNjQ+PjJdOylhWygwfGFbbD4+Ml0pKyhtPDwyKT4+Ml09KDB8YVsodz0yMzIrKGM9MHxhW2MrMTY+PjJdKXwwKT4+Ml0pLXAscD0wfGFbdz4+Ml0sbT1tKzF8MH0obCxwLG0pLGZ1''@;'; + put 'put ''bmN0aW9uIFNiKGwsYyl7bHw9MDt2YXIgZj0wLHA9MCxtPTA7Zm9yKGY9MTkyKygwfGFbMTYrKGN8PTApPj4yXSl8MDtmPTB8YVtmPj4yXTspKHA9MHxhWzE3MisoZj0wfGFbKG09ZisxNnwwKT4+Ml0pPj4yXSkmJihGdChwKSxmPTB8YVttPj4yXSksKHA9MHxhW2YrMTgwPj4yXSkmJihGdChw''@;'; + put 'put ''KSxmPTB8YVttPj4yXSksZj1mKzE2NHwwO0MxKGwpLEMxKGMpfShwLG0pKTpmdW5jdGlvbiB5bShsKXt2YXIgayxNLEQsYz0wLGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wLFI9MCxHPTA7Zm9yKGFbKEQ9OTIrKGx8PTApfDApPj4yXT0wfHZyKDQrKGFbbCsxMDA+PjJdPDwyKXwwKSxrPTB8dnIo''@;'; + put 'put ''NCsoYVtsKzEwND4+Ml08PDIpfDApLGFbbCs5Nj4+Ml09ayxNPWwrMzJ8MCxiPTB8YVtsKzg0Pj4yXTt3PTB8YVtiPj4yXTspe2ZvcihjPStfW3crNzI+PjNdLHA9KGw9MHxpdFt3KzgyPj4xXSk8PDE2Pj4xNj09MT9+fmM6KDB8KHA9fn4oKGMtKygwfEFyKCgwfGZlW00+PjBdKS0xfDAsKDY1''@;'; + put 'put ''NTM1JmwpLTF8MCkpKS8rKDY1NTM1JmwpKSkpPjE/cDoxLGM9K19bdys2ND4+M10sQT0obT0wfGl0W3crODA+PjFdKTw8MTY+PjE2PT0xP35+YzooMHwoQT1+figoYy0rKDB8QXIoKDB8ZmVbTT4+MF0pLTF8MCwoNjU1MzUmbSktMXwwKSkpLysoNjU1MzUmbSkpKSk+MT9BOjEsZj0oNjU1MzUm''@;'; + put 'put ''bCkrKFI9MHxoclt3Kzg2Pj4xXSl8MCxsPVI7ISgoMHxsKT49KDB8ZikpOylhWyhSPSgwfGFbRD4+Ml0pKyhsPDwyKXwwKT4+Ml09KDB8KEc9MHxhW1I+PjJdKSk+KDB8cCk/RzpwLGw9bCsxfDA7Zm9yKGY9KDY1NTM1Jm0pKyhsPTB8aHJbdys4ND4+MV0pfDA7ISgoMHxsKT49KDB8ZikpOylh''@;'; + put 'put ''WyhHPWsrKGw8PDIpfDApPj4yXT0oMHwoUj0wfGFbRz4+Ml0pKT4oMHxBKT9SOkEsbD1sKzF8MDtiPWIrNHwwfX0obCksbGU9QX0oYyksbD0wfEFyKDErKHc9MHxhW2MrMTA0Pj4yXSl8MCxrPTB8ZmVbYyszMj4+MF0pLGI9WHRbZj4+MF08PDEsaz0wfEFyKDErKE09MHxhW2MrMTAwPj4yXSl8''@;'; + put 'put ''MCxrKSxBPWMrOTZ8MCxsPWIrbHwwLGY9MDshKCgwfGYpPj0oMHx3KSk7KWw9KDB8YVsoMHxhW0E+PjJdKSsoZjw8Mik+PjJdKStsfDAsZj1mKzF8MDtmb3Iodz1jKzkyfDAsZj1rK2J8MCxBPTA7ISgoMHxBKT49KDB8TSkpOylmPSgwfGFbKDB8YVt3Pj4yXSkrKEE8PDIpPj4yXSkrZnwwLEE9''@;'; + put 'put ''QSsxfDA7dz1jKzM4fDA7ZG97aWYoMSZpdFtEPj4xXSl7aWYoQT02NTUzNSYoRD0wfGl0W3c+PjFdKSxEPDwxNj4+MTYmJihSPTB8aXRbYys0MD4+MV0pPDwxNj4+MTYpe2lmKCEoKDB8bCk+KDB8QSl8KDB8Zik+KDY1NTM1JlJ8MCkpKXtmPTAsbD0wO2JyZWFrfSRyKDAsMTM3NTI5LEcpLG09''@;'; + put 'put ''MSxmPTAsbD0wO2JyZWFrfSRyKDAsMTM3NTYzLEspLG09MX19d2hpbGUoMCk7cmV0dXJuIF9bYys2ND4+M109KygwfCgoMHxsKT4oMHwoSz0wfGhyW3c+PjFdKSk/bDpLKSksX1tjKzcyPj4zXT0rKDB8KCgwfGYpPigwfChLPTB8aHJbYys0MD4+MV0pKT9mOkspKSwwfGFbcGU+PjJdJiZ3RShw''@;'; + put 'put ''LDE4NjU3NiksbGU9Z2UsMHxtfWZ1bmN0aW9uIE1iKGwsYyxmLHAsbSl7Zj0rZixwPStwLG09K20sX1sobHw9MCk+PjNdPWM9K2MsX1tsKzg+PjNdPWYsX1tsKzE2Pj4zXT1wLF9bbCsyND4+M109bX1mdW5jdGlvbiBfRShsLGMsZil7Y3w9MCxmfD0wO3ZhciBSLGdlLGJlLFJlLFZlLHFlLG50''@;'; + put 'put ''LG90LFN0LGt0LHN0LHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsRz0wLEs9MCxwZT0wLE9lPTAsTGU9MCxIZT0wLFdlPTAsRXQ9MCxadD0wO3N0PWxlLGxlPWxlKzY0fDAsU3Q9c3QrMzJ8MCxrdD1zdCxXZT0wfGFbODQrKGx8PTApPj4yXSwwfChBPTB8YVtsKzgwPj4yXSkmJjB8''@;'; + put 'put ''KHA9MHxhW0ErMjQ+PjJdKSYmMD09KDB8YVsobT1sKzI0fDApPj4yXSkmJihhW20+PjJdPTB8cmEocCkpLG90PWwrNDh8MCwoMHwoQT1+figoYj0rX1socD1jKzE2fDApPj4zXSktKHc9K19bYz4+M10pLSsoMHx+fitfW2wrNjQ+PjNdKSkpKTw9LTEmJlByKDEzNzQ5NiwxMzczNDIsMTc2MSwx''@;'; + put 'put ''Mzc1MDYpLCgwfChHPX5+KChMZT0rX1soaz1jKzI0fDApPj4zXSktKEQ9K19bKE09Yys4fDApPj4zXSktKFI9KygwfH5+K19bbCs3Mj4+M10pKSkpKTw9LTEmJlByKDEzNzUxOSwxMzczNDIsMTc2NCwxMzc1MDYpLG09NjU1MzUmKEs9MHxpdFtsKzM2Pj4xXSk7ZTpkb3tpZigxJm0pe3Q6ZG97''@;'; + put 'put ''aWYoKDB8QSk+MClzd2l0Y2goNiZtKXtjYXNlIDQ6X1twPj4zXT13K1I7YnJlYWsgdDtjYXNlIDI6X1twPj4zXT1iKyhFdD0rKDB8QSkpLF9bYz4+M109dys9RXQ7YnJlYWsgdDtkZWZhdWx0Ol9bYz4+M109dys9RXQ9KyhBPj4+MXwwKSxfW3A+PjNdPWItRXQ7YnJlYWsgdH19d2hpbGUoMCk7''@;'; + put 'put ''aWYoKDB8Ryk+MClzd2l0Y2goMjQmSyl7Y2FzZSAxNjpfW2s+PjNdPUxlPUQrUixHPTAscD0wO2JyZWFrIGU7Y2FzZSA4Ol9baz4+M109TGUrPUV0PSsoMHxHKSxfW00+PjNdPUQrRXQsRz0wLHA9MDticmVhayBlO2RlZmF1bHQ6X1tNPj4zXT1EKyhFdD0rKEc+Pj4xfDApKSxfW2s+PjNdPUxl''@;'; + put 'put ''LT1FdCxHPTAscD0wO2JyZWFrIGV9ZWxzZSBHPTAscD0wfWVsc2UgcD1BfXdoaWxlKDApO2ZvcihiPSsoMHxYdFtsKzMzPj4wXSksRD0rKChwZT0wfGZlWyhxZT1sKzMyfDApPj4wXSk8PDI0Pj4yNCksaz1+figrKDB8KGs9cC0oMHxBcihLPSgwfHApLygwfChBPTB8YVsobnQ9bCsxMDR8MCk+''@;'; + put 'put ''PjJdKSl8MCxBKSl8MCkpKygoMHxrKT4tMT8uNTotLjUpKSxWZT1sKzk2fDAsTT1wZTw8MjQ+PjI0LHA9fn4odytiK0QpLG09MDshKCgwfG0pPigwfEEpKTspQT0wfGFbKEhlPSgwfGFbVmU+PjJdKSsobTw8Mil8MCk+PjJdLGFbSGU+PjJdPXAscD1wK0srKCgwfG0pPCgwfGspJjEpK0ErTXww''@;'; + put 'put ''LG09bSsxfDAsQT0wfGFbbnQ+PjJdO2ZvcihNPX5+KCsoMHwoTT1HLSgwfEFyKEs9KDB8RykvKDB8KEE9MHxhWyhIZT1sKzEwMHwwKT4+Ml0pKXwwLEEpKXwwKSkrKCgwfE0pPi0xPy41Oi0uNSkpLFJlPWwrOTJ8MCxrPXBlPDwyND4+MjQscD1+fihMZS1iLUQpLG09MDshKCgwfG0pPigwfEEp''@;'; + put 'put ''KTspQT0wfGFbKE9lPSgwfGFbUmU+PjJdKSsobTw8Mil8MCk+PjJdLGFbT2U+PjJdPXAscD1wLUsrKCgoMHxtKTwoMHxNKSk8PDMxPj4zMSktQS1rfDAsbT1tKzF8MCxBPTB8YVtIZT4+Ml07Zm9yKHBlPTA9PSgwfGYpLGdlPWt0KzE2fDAsYmU9a3QrMjR8MCxPZT1rdCs4fDAscD1XZTtrPTB8''@;'; + put 'put ''YVtwPj4yXTspQT0wfGl0W2srODQ+PjFdLHBlPyhtPTAsTT0wfGl0W2srODA+PjFdLEc9MHxpdFtrKzg2Pj4xXSxLPTB8aXRbays4Mj4+MV0pOihtPUE8PDE2Pj4xNj09MD84OjAsbT0oRz0wfGl0W2srODY+PjFdKTw8MTY+PjE2PT0wPzR8bTptLG09KCgoNjU1MzUmKE09MHxpdFtrKzgwPj4x''@;'; + put 'put ''XSkpKyg2NTUzNSZBKXwwKT09KDB8YVtudD4+Ml0pPzJ8bTptKXwoKDY1NTM1JihLPTB8aXRbays4Mj4+MV0pKSsoNjU1MzUmRyl8MCk9PSgwfGFbSGU+PjJdKSksX1trdD4+M109KygwfGFbKFp0PTB8YVtWZT4+Ml0pKygoQSY9NjU1MzUpPDwyKT4+Ml0pLF9bZ2U+PjNdPSsoKDB8YVtadCso''@;'; + put 'put ''KDY1NTM1Jk0pK0E8PDIpPj4yXSktKFdlPTB8ZmVbcWU+PjBdKXwwKSxfW2JlPj4zXT0rKDB8YVsoTT0wfGFbUmU+PjJdKSsoKDY1NTM1JkcpPDwyKT4+Ml0pLF9bT2U+PjNdPSsoKDB8YVtNKygoNjU1MzUmSykrKDY1NTM1JkcpPDwyKT4+Ml0pK1dlfDApLGFbU3Q+PjJdPWFba3Q+PjJdLGFb''@;'; + put 'put ''U3QrND4+Ml09YVtrdCs0Pj4yXSxhW1N0Kzg+PjJdPWFba3QrOD4+Ml0sYVtTdCsxMj4+Ml09YVtrdCsxMj4+Ml0sYVtTdCsxNj4+Ml09YVtrdCsxNj4+Ml0sYVtTdCsyMD4+Ml09YVtrdCsyMD4+Ml0sYVtTdCsyND4+Ml09YVtrdCsyND4+Ml0sYVtTdCsyOD4+Ml09YVtrdCsyOD4+Ml0scVIo''@;'; + put 'put ''ayxTdCxtJmYpLHA9cCs0fDA7ZmVbbCszNT4+MF09ZixhW290Pj4yXT1hW2M+PjJdLGFbb3QrND4+Ml09YVtjKzQ+PjJdLGFbb3QrOD4+Ml09YVtjKzg+PjJdLGFbb3QrMTI+PjJdPWFbYysxMj4+Ml0sYVtvdCsxNj4+Ml09YVtjKzE2Pj4yXSxhW290KzIwPj4yXT1hW2MrMjA+PjJdLGFbb3Qr''@;'; + put 'put ''MjQ+PjJdPWFbYysyND4+Ml0sYVtvdCsyOD4+Ml09YVtjKzI4Pj4yXSxsZT1zdH1mdW5jdGlvbiBDRShsLGMsZil7bHw9MCxjfD0wLGZ8PTA7dmFyIGJlLE9lLExlLFJlLEhlLFZlLHFlLG50LFdlLG90LFN0LGt0LHN0LEV0LFp0LGN0LGJ0LGFuLFNuLEhuLHA9MCxtPTAsQT0wLHc9MCxiPTAs''@;'; + put 'put ''az0wLE09MCxEPTAsUj0wLEc9MCxLPTAscGU9MCxnZT0wLHVyPTAsSHI9MCxFcj0wO2ZvcihIbj1sZSxsZT1sZSsxMTJ8MCxzdD1Ibis0OHwwLFp0PUhuLGFbKEV0PUhuKzE2fDApPj4yXT0wLGFbRXQrND4+Ml09MCxhW0V0Kzg+PjJdPTAsYVtFdCsxMj4+Ml09MCxhW0V0KzE2Pj4yXT0wLGFb''@;'; + put 'put ''RXQrMjA+PjJdPTAsYVtFdCsyND4+Ml09MCxhW0V0KzI4Pj4yXT0wLGJ0PWYrMTZ8MCxhbj1mKzMyfDAsU249RXQrMTZ8MCxrPShHPTB8aXRbKGN0PWMrNHwwKT4+MV0pPDwxNj4+MTYscD0wLEE9LTEsYj0wOzspe2lmKCgwfGIpPj0oMHxrKSl7cD0xO2JyZWFrfWlmKCgwfGl0WyhtPTB8YVtj''@;'; + put 'put ''Pj4yXSkrKDI0KmJ8MCkrND4+MV0pPjEpe3A9MDticmVha31pZihtPTB8YVs0KygwfGFbbSsoMjQqYnwwKT4+Ml0pPj4yXSl7aWYoMTI3JmFbbSsyND4+Ml18MCl7cD0wO2JyZWFrfV9bU24+PjNdPXc9K19bKCtfW20rMTY+PjNdPjA/bTpidCkrMTY+PjNdLG09MD09KDB8YVttPj4yXSk/YnQ6''@;'; + put 'put ''bX1lbHNlIF9bU24+PjNdPXc9K19bYW4+PjNdLG09YnQ7aWYoYVtFdD4+Ml09bT0wfGFbbT4+Ml0sLTEhPUEpe2lmKHchPUEpe3A9MDticmVha319ZWxzZSBBPXc7aWYocCl7aWYoMHxaaShtLHApKXtwPTA7YnJlYWt9fWVsc2UgcD1tO2I9YisxfDB9Zm9yKGZlW2MrNj4+MF09cCxvdD1mKzQ4''@;'; + put 'put ''fDAsU3Q9ZisyMHwwLGt0PUV0KzR8MCxPZT1mKzQwfDAsTGU9RXQrMjR8MCxSZT1sKzE0NHwwLEhlPXN0KzR8MCxiZT1adCs4fDAsVmU9c3QrMTZ8MCxxZT1zdCsyNHwwLG50PXN0Kzh8MCxXZT1zdCsxMnwwLGY9MD09KDB8cCksQT0wLEs9MCxwZT0wLGdlPTAsaz0wLHA9RzshKCgwfGspPj0o''@;'; + put 'put ''cDw8MTY+PjE2fDApKTspe2Zvcih3PTAsUj0wLGI9MCxEPTAsQT0wLG09MHxhW2M+PjJdOyEoKDB8Yik+PSgwfGl0W20rKDI0Kmt8MCkrND4+MV0pKTspYVtzdD4+Ml09MHxtMigwfGFbKDB8YVttKygyNCprfDApPj4yXSkrKDU2KmJ8MCk+PjJdLDB8YVtvdD4+Ml0pLChwPTB8YVsoMHxhWyht''@;'; + put 'put ''PSgwfGFbYz4+Ml0pKygyNCprfDApfDApPj4yXSkrKDU2KmJ8MCkrND4+Ml0pPygocD0xMjcmYVtwKzI0Pj4yXSl8fChwPTEyNyZhW09lPj4yXSksYVtMZT4+Ml09LTEyOCZhW0xlPj4yXXxwLF9bU24+PjNdPStfWygrX1sxNisoRz0wfGFbKDB8YVttPj4yXSkrKDU2KmJ8MCkrND4+Ml0pPj4z''@;'; + put 'put ''XT4wP0c6YnQpKzE2Pj4zXSxhW0V0Pj4yXT1hWygwPT0oMHxhW0c+PjJdKT9idDpHKT4+Ml0sYVtrdD4+Ml09YVsoMD09KDB8YVtHKzQ+PjJdKT9idDpHKSs0Pj4yXSk6KF9bU24+PjNdPStfW2FuPj4zXSxhW0V0Pj4yXT1hW2J0Pj4yXSxhW2t0Pj4yXT1hW1N0Pj4yXSxhW0xlPj4yXT0tMTI4''@;'; + put 'put ''JmFbTGU+PjJdfDEyNyZhW09lPj4yXSksYVtIZT4+Ml09MHxtaVs2MyZhWyhtPTB8YVtSZT4+Ml0pPj4yXV0obSxFdCwxKSxvRChadCxsLHN0KSxIcj0rX1tadD4+M10sTT0rX1tiZT4+M10sRnQoMHxhWygwfGFbKDB8YVtjPj4yXSkrKDI0Kmt8MCk+PjJdKSsoNTYqYnwwKT4+Ml0pLGFbKEc9''@;'; + put 'put ''MHxhWyhtPTB8YVtjPj4yXSkrKDI0Kmt8MCk+PjJdKSsoNTYqYnwwKT4+Ml09YVtzdD4+Ml0sX1tHKyg1NipifDApKzMyPj4zXT1IcixfW0crKDU2KmJ8MCkrMTY+PjNdPStfW1ZlPj4zXSxfW0crKDU2KmJ8MCkrMjQ+PjNdPStfW3FlPj4zXSxhW0crKDU2KmJ8MCkrND4+Ml09YVtIZT4+Ml0s''@;'; + put 'put ''YVtHKyg1NipifDApKzg+PjJdPWFbbnQ+PjJdLGFbRysoNTYqYnwwKSsxMj4+Ml09YVtXZT4+Ml0sdz0oRXI9K19bcWU+PjNdKT53P0VyOncsUj1IcitSLGI9YisxfDAsRD0odXI9K19bU24+PjNdKT5EP3VyOkQsQT1NPkE/TTpBO19bbSsoMjQqa3wwKSs4Pj4zXT1SLHA9MD09KDB8ayk7ZG97''@;'; + put 'put ''aWYoZil7aWYocCl7TT1ELHc9RC13LHA9bTticmVha31NPUQsdz1wZS1nZStELXcscD1tKygyNCprfDApfDA7YnJlYWt9TT1BLHc9cD9EOkEscD1tKygyNCprfDApfDB9d2hpbGUoMCk7X1twKzE2Pj4zXT13LEs9Uj5LP1I6SyxwZT1NK3BlLGdlPStfW20rKDI0Kmt8MCkrMTY+PjNdK2dlLGs9''@;'; + put 'put ''aysxfDAscD0wfGl0W2N0Pj4xXX1fW2MrMjQ+PjNdPUssX1tjKzMyPj4zXT1wPDwxNj4+MTY9PTE/QTpwZSxsZT1Ibn1mdW5jdGlvbiBxUihsLGMsZil7Y3w9MCxmfD0wO3ZhciBSLEssZ2UsTGUsUmUscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxHPTAscGU9MCxiZT0wLE9lPTAs''@;'; + put 'put ''SGU9MDtMZT1sZSxsZT1sZSs2NHwwLGdlPUxlKzMyfDAsT2U9TGUsMD09KDB8YVsobT0yNCsobHw9MCl8MCk+PjJdKSYmMHwocD0wfGFbMjQrKDB8YVtsKzk2Pj4yXSk+PjJdKSYmKGFbbT4+Ml09MHxyYShwKSkscD02NTUzNSYoYmU9MHxpdFsoSz1sKzM2fDApPj4xXSk7ZTpkb3tpZigxJnAp''@;'; + put 'put ''e0Q9K19bbCs3Mj4+M10sYj0odz0rX1sobT1jKzE2fDApPj4zXSktKGs9K19bYz4+M10pLShBPStfW2wrNjQ+PjNdKTt0OmRve2lmKGI+MClzd2l0Y2goNiZwKXtjYXNlIDQ6X1ttPj4zXT13PWsrQSxBPWs7YnJlYWsgdDtjYXNlIDI6X1ttPj4zXT13PWIrdyxfW2M+PjNdPUE9aytiO2JyZWFr''@;'; + put 'put ''IHQ7ZGVmYXVsdDpfW2M+PjNdPUE9KE09LjUqYikrayxfW20+PjNdPXctPU07YnJlYWsgdH1lbHNlIEE9a313aGlsZSgwKTtpZigoaz0oTT0rX1socD1jKzI0fDApPj4zXSktKGI9K19bKG09Yys4fDApPj4zXSktRCk+MClzd2l0Y2goMjQmYmUpe2Nhc2UgMTY6X1twPj4zXT1rPWIrRDticmVh''@;'; + put 'put ''ayBlO2Nhc2UgODpfW3A+PjNdPUQ9aytNLF9bbT4+M109Yis9ayxrPUQ7YnJlYWsgZTtkZWZhdWx0Ol9bbT4+M109Yj0oayo9LjUpK2IsX1twPj4zXT1rPU0tazticmVhayBlfWVsc2Ugaz1NfWVsc2UgQT0rX1tjPj4zXSxiPStfW2MrOD4+M10sdz0rX1tjKzE2Pj4zXSxrPStfW2MrMjQ+PjNd''@;'; + put 'put ''fXdoaWxlKDApO3N3aXRjaChhWyhHPWwrNDh8MCk+PjJdPWFbYz4+Ml0sYVtHKzQ+PjJdPWFbYys0Pj4yXSxhW0crOD4+Ml09YVtjKzg+PjJdLGFbRysxMj4+Ml09YVtjKzEyPj4yXSxhW0crMTY+PjJdPWFbYysxNj4+Ml0sYVtHKzIwPj4yXT1hW2MrMjA+PjJdLGFbRysyND4+Ml09YVtjKzI0''@;'; + put 'put ''Pj4yXSxhW0crMjg+PjJdPWFbYysyOD4+Ml0sZmVbbCszNT4+MF09ZixfW09lPj4zXT1NPUErKEhlPSsoMHxYdFtsKzMzPj4wXSkpKyhSZT0rKDB8WHRbbCszND4+MF0pKSxfWyhHPU9lKzh8MCk+PjNdPUQ9YitIZStSZSxfWyhjPU9lKzE2fDApPj4zXT1iPXctSGUtUmUsX1soUj1PZSsyNHww''@;'; + put 'put ''KT4+M109az1rLUhlLVJlLG09bCs4OHwwLDB8ZmVbbCs5Mj4+MF0pe2Nhc2UgMTpiZT0wfGFbbT4+Ml0sYVtnZT4+Ml09YVtPZT4+Ml0sYVtnZSs0Pj4yXT1hW09lKzQ+PjJdLGFbZ2UrOD4+Ml09YVtPZSs4Pj4yXSxhW2dlKzEyPj4yXT1hW09lKzEyPj4yXSxhW2dlKzE2Pj4yXT1hW09lKzE2''@;'; + put 'put ''Pj4yXSxhW2dlKzIwPj4yXT1hW09lKzIwPj4yXSxhW2dlKzI0Pj4yXT1hW09lKzI0Pj4yXSxhW2dlKzI4Pj4yXT1hW09lKzI4Pj4yXSxfRShiZSxnZSxmKTticmVhaztjYXNlIDM6QT0rX1syNCsocD0wfGFbbT4+Ml0pPj4zXSx3PWItTS0rX1twKzE2Pj4zXTtlOmRve2lmKHc+MClzd2l0Y2go''@;'; + put 'put ''NiZiZSl7Y2FzZSA0Ol9bYz4+M109Yi13O2JyZWFrIGU7Y2FzZSAyOl9bT2U+PjNdPXcrTTticmVhayBlO2RlZmF1bHQ6YnJlYWsgZX19d2hpbGUoMCk7QT1rLUQtQTtlOmRve2lmKEE+MClzd2l0Y2goMjQmYmUpe2Nhc2UgMTY6X1tSPj4zXT1rLUE7YnJlYWsgZTtjYXNlIDg6X1tHPj4zXT1B''@;'; + put 'put ''K0Q7YnJlYWsgZTtkZWZhdWx0OmJyZWFrIGV9fXdoaWxlKDApO2FbZ2U+PjJdPWFbT2U+PjJdLGFbZ2UrND4+Ml09YVtPZSs0Pj4yXSxhW2dlKzg+PjJdPWFbT2UrOD4+Ml0sYVtnZSsxMj4+Ml09YVtPZSsxMj4+Ml0sYVtnZSsxNj4+Ml09YVtPZSsxNj4+Ml0sYVtnZSsyMD4+Ml09YVtPZSsy''@;'; + put 'put ''MD4+Ml0sYVtnZSsyND4+Ml09YVtPZSsyND4+Ml0sYVtnZSsyOD4+Ml09YVtPZSsyOD4+Ml0sZnVuY3Rpb24gZUIobCxjKXthWyhsfD0wKT4+Ml09YVsoY3w9MCk+PjJdLGFbbCs0Pj4yXT1hW2MrND4+Ml0sYVtsKzg+PjJdPWFbYys4Pj4yXSxhW2wrMTI+PjJdPWFbYysxMj4+Ml0sYVtsKzE2''@;'; + put 'put ''Pj4yXT1hW2MrMTY+PjJdLGFbbCsyMD4+Ml09YVtjKzIwPj4yXSxhW2wrMjQ+PjJdPWFbYysyND4+Ml0sYVtsKzI4Pj4yXT1hW2MrMjg+PjJdfShwLGdlKTticmVhaztkZWZhdWx0OkE9K19bMzIrKHA9MHxhW20+PjJdKT4+M10sdz1iLU0tK19bcCsyND4+M107ZTpkb3tpZih3PjAmJihwZT02''@;'; + put 'put ''JmJlLHBlPDwxNj4+MTYhPTYpKXN3aXRjaCg3JnBlKXtjYXNlIDQ6X1tjPj4zXT1iLXc7YnJlYWsgZTtjYXNlIDI6X1tPZT4+M109dytNO2JyZWFrIGU7ZGVmYXVsdDpfW09lPj4zXT0oSGU9LjUqdykrTSxfW2M+PjNdPWItSGU7YnJlYWsgZX19d2hpbGUoMCk7QT1rLUQtQTtlOmRve2lmKEE+''@;'; + put 'put ''MClzd2l0Y2goMjQmYmUpe2Nhc2UgMTY6X1tSPj4zXT1rLUE7YnJlYWsgZTtjYXNlIDg6X1tHPj4zXT1BK0Q7YnJlYWsgZTtkZWZhdWx0Ol9bRz4+M109KEhlPS41KkEpK0QsX1tSPj4zXT1rLUhlO2JyZWFrIGV9fXdoaWxlKDApO2FbKGJlPXArOHwwKT4+Ml09YVtPZT4+Ml0sYVtiZSs0Pj4y''@;'; + put 'put ''XT1hW09lKzQ+PjJdLGFbYmUrOD4+Ml09YVtPZSs4Pj4yXSxhW2JlKzEyPj4yXT1hW09lKzEyPj4yXSxhW2JlKzE2Pj4yXT1hW09lKzE2Pj4yXSxhW2JlKzIwPj4yXT1hW09lKzIwPj4yXSxhW2JlKzI0Pj4yXT1hW09lKzI0Pj4yXSxhW2JlKzI4Pj4yXT1hW09lKzI4Pj4yXSxmdW5jdGlvbiBF''@;'; + put 'put ''YihsLGMpe2N8PTA7dmFyIHAsZj0wLG09MDtmb3IocD0wfGl0WzQrKGx8PTApPj4xXSxmPTA7ISgoMHxmKT49KDB8cCkpOykwfGZlWyhtPSgwfGFbbD4+Ml0pKygyNCpmfDApKzZ8MCk+PjBdfHwoZmVbbT4+MF09YyksZj1mKzF8MH0oMHxhW20+PjJdLDUxMj09KDEwMjMmKE9lPTc2OCZpdFtL''@;'; + put 'put ''Pj4xXSkpPzEwODoyNTY9PSgxMDIzJk9lKT8xMTQ6MTEwKX1sZT1MZX1mdW5jdGlvbiBuQihsLGMsZixwKXtsfD0wLHB8PTA7dmFyIGssTSxSLEcsSyxwZSxtPTAsQT0wLHc9MCxiPTAsRD0wO3N3aXRjaChLPWxlLGxlPWxlKzE2fDAsRz1LKzh8MCxSPUssYVs5NisoY3w9MCk+PjJdPWZ8PTAs''@;'; + put 'put ''NjQmKGI9MHxpdFsoTT1jKzM2fDApPj4xXSl8fChmZVtjKzM0Pj4wXT13PTY0Jml0W2YrMzY+PjFdPzB8ZmVbZiszND4+MF06MiksMzImYnx8KCh3PTB8ZmVbZis4OD4+MF0pPDwyND4+MjQ8PS0xJiYodz0zMiZpdFtmKzM2Pj4xXT8wfGZlW2YrMzM+PjBdOjEpLGZlW2MrMzM+PjBdPXcpLHc9''@;'; + put 'put ''Yys4OHwwLDB8ZmVbKGs9Yys5MnwwKT4+MF0pe2Nhc2UgMTpiPTB8YkUobCwwfGFbdz4+Ml0sYyxwKSxmPTB8YVt3Pj4yXSx3PWIsYj1mKzY0fDAsZj1mKzcyfDA7YnJlYWs7Y2FzZSAzOmI9MHxmdW5jdGlvbiBpQihsLGMpe3ZhciBtLHcsYixrLGY9MCxwPTAsQT0wO3JldHVybiBrPWxlLGxl''@;'; + put 'put ''PWxlKzE2fDAsdz1rLFVHKEE9ays4fDAsMHxhWyhjPTUyKyhjfD0wKXwwKT4+Ml0sMHxhWyhtPTMyKyhsfD0wKXwwKT4+Ml0pLGI9MHxhW0E+PjJdLC0xPT0oKEE9MHxhW0ErND4+Ml0pJmJ8MCk/KGFbdz4+Ml09YVttPj4yXSwkcigxLDEzNzY5Nyx3KSxjPTEscD0wLGY9MCk6KGZlWzExNCso''@;'; + put 'put ''MHxhWzE2KygwfGFbYz4+Ml0pPj4yXSk+PjBdPTEsYz0wLHA9KygwfEEpLGY9KygwfGIpKSxhW2w+PjJdPTAsYVtsKzQ+PjJdPTAsYVtsKzg+PjJdPTAsYVtsKzEyPj4yXT0wLF9bbCsxNj4+M109ZixfW2wrMjQ+PjNdPXAsbGU9aywwfGN9KDB8YVt3Pj4yXSxwKSxmPTB8YVt3Pj4yXSx3PWIs''@;'; + put 'put ''Yj1mKzE2fDAsZj1mKzI0fDA7YnJlYWs7ZGVmYXVsdDpDRSgwfGFbMTQ0KygwfGFbbCsxNj4+Ml0pPj4yXSwwfGFbdz4+Ml0scCksZj0wfGFbdz4+Ml0sdz0wLGI9ZisyNHwwLGY9ZiszMnwwfUE9K19bYj4+M10rKG09KygoMHxYdFtjKzMzPj4wXSkrKDB8WHRbYyszND4+MF0pPDwxfDApKSxt''@;'; + put 'put ''PStfW2Y+PjNdK20sZj1jKzM4fDA7ZG97aWYoMSZpdFtNPj4xXSl7aWYoKGI9MHxpdFtmPj4xXSk8PDE2Pj4xNiYmKEQ9MHxpdFtjKzQwPj4xXSk8PDE2Pj4xNil7aWYoIShBPisoNjU1MzUmYil8bT4rKDY1NTM1JkQpKSl7QT0wLG09MDticmVha31pZigzPT0oMHxmZVtrPj4wXSkpe0E9MCxt''@;'; + put 'put ''PTA7YnJlYWt9JHIoMCwxMzc2MTQsUiksdz0xLEE9MCxtPTA7YnJlYWt9JHIoMCwxMzc2NDcsRyksdz0xfX13aGlsZSgwKTtyZXR1cm4gX1tjKzY0Pj4zXT1BPihwZT0rKDB8aHJbZj4+MV0pKT9BOnBlLF9bYys3Mj4+M109bT4oQT0rKDB8aHJbYys0MD4+MV0pKT9tOkEsbGU9SywwfHd9ZnVu''@;'; + put 'put ''Y3Rpb24gckIobCxjLGYscCl7bHw9MCxjfD0wLGZ8PTA7dmFyIGIsayxtPTAsQT0wLHc9MDtiPSgwfGhyWyhrPTgwKyhwfD0wKXwwKT4+MV0pLTF8MCx3PTA7ZTpmb3IoOzspZm9yKG09Zjs7KXtpZih3KWJyZWFrIGU7Zm9yKEE9YittfDA7Oyl7aWYoKDB8QSk8KDB8bSkpe2Y9bSx3PTE7Y29u''@;'; + put 'put ''dGludWUgZX1pZigwfHhRKGwsQSxjKSlicmVhaztBPUErLTF8MH1tPUErMXwwfWZvcih3PXArODJ8MCxtPWY7KDB8bSk8KGYrKDB8aHJbaz4+MV0pfDApOyl7Zm9yKEE9YzshKCgwfEEpPj0oKDB8aHJbdz4+MV0pK2N8MCkpOyllNChsLG0sQSksQT1BKzF8MDttPW0rMXwwfXJldHVybiAwfGZ9''@;'; + put 'put ''ZnVuY3Rpb24ga0UoKXtyZXR1cm4gMHxpcyg1NTkyNCwwfGFbNDU4MV0pfWZ1bmN0aW9uIFNFKGwsYyl7dmFyIGYscDtsfD0wLGY9bGUsbGU9bGUrMTZ8MCxhWyhwPWYpPj4yXT1jfD0wLG1pWzYzJmFbbD4+Ml1dKGwscCwxKSxsZT1mfWZ1bmN0aW9uIFRiKGwsYyl7dmFyIGYscDtyZXR1cm4g''@;'; + put 'put ''bHw9MCxmPWxlLGxlPWxlKzE2fDAsYVsocD1mKT4+Ml09Y3w9MCxjPTAhPSgwfG1pWzYzJmFbbD4+Ml1dKGwscCw1MTIpKSYxLGxlPWYsMHxjfWZ1bmN0aW9uIERiKCl7dmFyIGMsZixsPTA7Zm9yKGM9MHxhWzQ3Mzg3XSxmPTB8YVs0NzM3NV0sbD0xOzspe2lmKCgwfGwpPigwfGMpKXtsPTU7''@;'; + put 'put ''YnJlYWt9aWYoKDB8YVs0KygwfGFbZisobDw8Mik+PjJdKT4+Ml0pIT0oMHxsKSl7bD00O2JyZWFrfWw9bCsxfDB9aWYoND09KDB8bCkpUHIoMTM4Mzk0LDEzNzc0MSw1OSwxMzc3NDcpO2Vsc2UgaWYoNT09KDB8bCkpcmV0dXJufWZ1bmN0aW9uIEY5KGwpe3ZhciBtLEEsdyxjPTAsZj0wLHA9''@;'; + put 'put ''MDtmb3Iodz0wfGFbKEE9MHxhWyhtPTB8YVs0NzM3NV0pKygobHw9MCk8PDIpPj4yXSk+PjJdO3A9bSsobDw8Mil8MCwhKCgwfGFbKGY9MHxhW20rKChjPSgwfGwpLzJ8MCk8PDIpPj4yXSk+PjJdKT49KDB8dykpOylhW3A+PjJdPWYsYVtmKzQ+PjJdPWwsbD1jO2FbcD4+Ml09QSxhW0ErND4+''@;'; + put 'put ''Ml09bH1mdW5jdGlvbiBIOShsKXtsfD0wO3ZhciBmLGM9MDtyZXR1cm4gZj1sZSxsZT1sZSsxNnwwLCgwfChjPTB8YVs0NzM4N10pKT09KDB8YVs0NzM4Nl0pPygkcigxLDEzNzc1NSxmKSxsPTEpOihhWzQ3Mzg3XT1jPWMrMXwwLGFbKDB8YVs0NzM3NV0pKyhjPDwyKT4+Ml09bCxGOShjKSxE''@;'; + put 'put ''YigpLGw9MCksbGU9ZiwwfGx9ZnVuY3Rpb24gTUUoKXt2YXIgbD0wLGM9MCxmPTAscD0wO3JldHVybihjPTB8YVs0NzM4N10pPyhsPTB8YVsoZj00KyhwPTB8YVs0NzM3NV0pfDApPj4yXSxhW2Y+PjJdPWFbcCsoYzw8Mik+PjJdLGFbNDczODddPWM9YystMXwwLDB8YyYmZnVuY3Rpb24gYUIo''@;'; + put 'put ''bCl7dmFyIHAsbSxBLHcsYixjPTAsZj0wLGs9MCxNPTAsRD0wO2ZvcihBPTB8YVsobT0wfGFbKHA9MHxhWzQ3Mzc1XSkrKChsfD0wKTw8Mik+PjJdKT4+Ml0sYj0oMHwodz0wfGFbNDczODddKSkvMnwwOyEoKDB8bCk+KDB8Yil8fChmPWw8PDEsYz0wfGFbcCsoZjw8Mik+PjJdLCgwfGYpPCgw''@;'; + put 'put ''fHcpJiYoRD0xfGYsaz0wfGFbcCsoRDw8Mik+PjJdLE09KDB8YVtjPj4yXSk8KDB8YVtrPj4yXSksZj1NP0Q6ZixjPU0/azpjKSwoMHxBKT49KDB8YVtjPj4yXSkpKTspYVtwKyhsPDwyKT4+Ml09YyxhW2MrND4+Ml09bCxsPWY7YVtwKyhsPDwyKT4+Ml09bSxhW20rND4+Ml09bH0oMSksRGIo''@;'; + put 'put ''KSk6bD0wLDB8bH1mdW5jdGlvbiBsQihsLGMpe2FbKGx8PTApPj4yXT1jfD0wLEY5KDB8YVtsKzQ+PjJdKSxEYigpfWZ1bmN0aW9uIEVFKGwsYyxmKXt2YXIgYixrLE0sRCxwPTAsbT0wLEE9MCx3PTAsUj0wO2Zvcih3PSgwfGZlWyh3PTB8YVsoTT0xNisobHw9MCl8MCk+PjJdKSsoNDAqKDB8''@;'; + put 'put ''YVsxMisoZnw9MCk+PjJdKXwwKSszNj4+MF0pIT0oMHxmZVt3Kyg0MCooMHxhW2YrMTY+PjJdKXwwKSszNj4+MF0pLG09KDB8KGI9fn4oLjUqKCtfWzY0KyhjfD0wKT4+M10tMy0rX1tjKzQ4Pj4zXSkpKSk8KDB8KGs9fn4oLjUqKCtfW2MrNTY+PjNdLTMtK19bYys0MD4+M10pKSkpP2I6ayxE''@;'; + put 'put ''PWMrNHwwLHA9MDs7KXtpZigoMHxwKT49KDB8KGw9MHxhW0Q+PjJdKSkpe209cDticmVha31pZigoMHxmZVsoUj0wfGFbTT4+Ml0pKyg0MCooMHxhWzEyKyhBPTB8YVtjKzgrKHA8PDIpPj4yXSk+PjJdKXwwKSszNj4+MF0pPT0oMHxmZVtSKyg0MCooMHxhW0ErMTY+PjJdKXwwKSszNj4+MF0p''@;'; + put 'put ''KXttPXA7YnJlYWt9eEUoQSxtKSxwPXArMXwwfWZvcig7ISgoMHxtKT49KDB8bCkpOyl3fCgwfChwPTB8YVtjKzgrKG08PDIpPj4yXSkpPT0oMHxmKSYmKHhFKHAsMHxmZVsoMHxhW00+PjJdKSsoNDAqKDB8YVtwKzEyPj4yXSl8MCkrMzY+PjBdP2I6ayksbD0wfGFbRD4+Ml0pLG09bSsxfDB9''@;'; + put 'put ''ZnVuY3Rpb24geEUobCxjKXt2YXIgZixwO2N8PTAsYVsoZj04KyhsfD0wKXwwKT4+Ml09MSsocD0wfGFbZj4+Ml0pLCgwfHApPj0oMHxjKSYmKGFbZj4+Ml09MCxfW2w+PjNdPStfW2w+PjNdKzE2Mzg0KX1mdW5jdGlvbiBIbChsLGMsZixwLG0pe2x8PTAscHw9MCxtfD0wO3ZhciBBPTAsdz0w''@;'; + put 'put ''O0E9MHxtaVs2MyZhWyhjfD0wKT4+Ml1dKGMsZnw9MCw1MTIpO2Rve2lmKEEpdz1BO2Vsc2V7aWYobD0wfHVtKGwpLHApe3c9cCsoKEE9MHxhW2wrMzI+PjJdKTw8NSl8MCxhWyhwPXArKEE8PDUpKzh8MCk+PjJdPWFbZj4+Ml0sYVtwKzQ+PjJdPWFbZis0Pj4yXSxhW3ArOD4+Ml09YVtmKzg+''@;'; + put 'put ''PjJdLGFbcCsxMj4+Ml09YVtmKzEyPj4yXSxhW3c+PjJdPWwsZmVbbCszNj4+MF09bSxtaVs2MyZhW2M+PjJdXShjLHcsMSk7YnJlYWt9UHIoMTM4MTgzLDEzODEzMSwyOTEsMTM4MTkwKX19d2hpbGUoMCk7cmV0dXJuIDB8YVt3Pj4yXX1mdW5jdGlvbiBjQihsKXtsfD0wO3ZhciBjPTAsZj0w''@;'; + put 'put ''LHA9MCxtPTAsQT0wLHc9MDtlOmRve2lmKC41KigrX1tsKzY0Pj4zXS0zLStfW2wrNDg+PjNdKTwyKWZvcihBPTB8YVtsKzMyPj4yXSx3PWwrMzZ8MCxtPTA7Oyl7aWYoKDB8bSk+PSgwfEEpKWJyZWFrIGU7Yz0wfGFbKDB8YVt3Pj4yXSkrKG08PDIpPj4yXTt0OmRve2lmKDB8ZmVbYyszNj4+''@;'; + put 'put ''MF0paWYocD0wfGFbYysyMD4+Ml0sKDB8cCk9PSgwfGwpKXtjPWY9MHxhW2MrMjQ+PjJdLGY9MHxhW2Y+PjJdO2Rve2lmKGFbYz4+Ml09OHxmLCEoYz0wfGFbYVtjKzM2Pj4yXT4+Ml0pKWJyZWFrIHQ7Zj0wfGFbKGM9MHxhW2MrMjQ+PjJdKT4+Ml19d2hpbGUoISgxJmZ8MCkpfWVsc2V7Zj1w''@;'; + put 'put ''LGM9MHxhW3A+PjJdO2Rve2lmKGFbZj4+Ml09OHxjLCEoYz0wfGFbOCsoMHxhW2YrMzY+PjJdKT4+Ml0pKWJyZWFrIHQ7Yz0wfGFbKGY9MHxhW2MrMjA+PjJdKT4+Ml19d2hpbGUoISgxJmN8MCkpfX13aGlsZSgwKTttPW0rMXwwfX13aGlsZSgwKTtlOmRve2lmKC41KigrX1tsKzU2Pj4zXS0z''@;'; + put 'put ''LStfW2wrNDA+PjNdKTwyKWZvcihBPTB8YVtsKzMyPj4yXSx3PWwrMzZ8MCxtPTA7Oyl7aWYoKDB8bSk+PSgwfEEpKWJyZWFrIGU7Yz0wfGFbKDB8YVt3Pj4yXSkrKG08PDIpPj4yXTt0OmRve2lmKCEoMHxmZVtjKzM2Pj4wXSkpaWYocD0wfGFbYysyMD4+Ml0sKDB8cCk9PSgwfGwpKXtjPWY9''@;'; + put 'put ''MHxhW2MrMjQ+PjJdLGY9MHxhW2Y+PjJdO2Rve2lmKGFbYz4+Ml09MTZ8ZiwhKGM9MHxhWzQrKDB8YVtjKzM2Pj4yXSk+PjJdKSlicmVhayB0O2Y9MHxhWyhjPTB8YVtjKzI0Pj4yXSk+PjJdfXdoaWxlKCEoMSZmfDApKX1lbHNle2Y9cCxjPTB8YVtwPj4yXTtkb3tpZihhW2Y+PjJdPTE2fGMs''@;'; + put 'put ''IShjPTB8YVsxMisoMHxhW2YrMzY+PjJdKT4+Ml0pKWJyZWFrIHQ7Yz0wfGFbKGY9MHxhW2MrMjA+PjJdKT4+Ml19d2hpbGUoISgxJmN8MCkpfX13aGlsZSgwKTttPW0rMXwwfX13aGlsZSgwKX1mdW5jdGlvbiAkOChsLGMpe2N8PTA7dmFyIEEsZj0wLHA9MCxtPTAsdz0wLGI9MCxrPTAsTT0w''@;'; + put 'put ''LEQ9MCxSPTAsRz0wLEs9MCxwZT0wO209LjUqKCh3PStfWzY0KyhsfD0wKT4+M10tK19bbCs0OD4+M10pKyhBPStfW2wrNTY+PjNdLStfW2wrNDA+PjNdKSkrNTAwLC41Kih3Ky0zKTwyPyhtPShNPTA9PSg4JmFbbD4+Ml18MCkpPzE2Mzg0Om0sSz1NPzE2Mzg0OkEpOks9QSwuNSooQSstMyk8''@;'; + put 'put ''MiYmKHc9KE09MD09KDE2JmFbbD4+Ml18MCkpPzE2Mzg0OncsbT1NPzE2Mzg0Om0pLDAhPSgwfChwPTB8YVs4KyhmPTB8YVsoTT1sKzM2fDApPj4yXSk+PjJdKSkmJjAhPSgwfChiPTB8YVtmKzQ+PjJdKSkmJihiPTB8djMoYyxwLGIsbSksYVsocD1sKzR8MCk+PjJdPTErKGY9MHxhW3A+PjJd''@;'; + put 'put ''KSxhW2wrOCsoZjw8Mik+PjJdPWIsZj0wfGFbTT4+Ml0pLDAhPSgwfChwPTB8YVtmKzQ+PjJdKSkmJjAhPSgwfChrPTB8YVtmPj4yXSkpJiYoaz0wfHYzKGMscCxrLG0pLGFbKGI9bCs0fDApPj4yXT0xKyhmPTB8YVtiPj4yXSksYVtsKzgrKGY8PDIpPj4yXT1rLGY9MHxhW00+PjJdKSwwIT0o''@;'; + put 'put ''MHwocD0wfGFbZis4Pj4yXSkpJiYwIT0oMHwoRD0wfGFbZisxMj4+Ml0pKSYmKEQ9MHx2MyhjLHAsRCxtKSxhWyhrPWwrNHwwKT4+Ml09MSsoZj0wfGFbaz4+Ml0pLGFbbCs4KyhmPDwyKT4+Ml09RCxmPTB8YVtNPj4yXSksMCE9KDB8KHA9MHxhW2YrMTI+PjJdKSkmJjAhPSgwfChSPTB8YVtm''@;'; + put 'put ''Pj4yXSkpJiYoUj0wfHYzKGMscCxSLG0pLGFbKEQ9bCs0fDApPj4yXT0xKyhmPTB8YVtEPj4yXSksYVtsKzgrKGY8PDIpPj4yXT1SLGY9MHxhW00+PjJdKSwwIT0oMHwocD0wfGFbZis0Pj4yXSkpJiYwIT0oMHwoRz0wfGFbZisxMj4+Ml0pKSYmKEc9MHx2MyhjLHAsRyx3KSxhWyhSPWwrNHww''@;'; + put 'put ''KT4+Ml09MSsoZj0wfGFbUj4+Ml0pLGFbbCs4KyhmPDwyKT4+Ml09RyxmPTB8YVtNPj4yXSksMHwocD0wfGFbZis4Pj4yXSkmJjB8KHBlPTB8YVtmPj4yXSkmJihjPTB8djMoYyxwLHBlLEspLGFbKEc9bCs0fDApPj4yXT0xKyhwZT0wfGFbRz4+Ml0pLGFbbCs4KyhwZTw8Mik+PjJdPWMpfWZ1''@;'; + put 'put ''bmN0aW9uIHE4KGwsYyxmLHAsbSl7bHw9MCxjfD0wLHB8PTAsbXw9MDt2YXIgdyxiLGssQT0wLE09MDtmb3Ioaz1sZSxsZT1sZSs5NnwwLGI9ayxhWyh3PWsrNjR8MCk+PjJdPWFbKGZ8PTApPj4yXSxhW3crND4+Ml09YVtmKzQ+PjJdLGFbdys4Pj4yXT1hW2YrOD4+Ml0sYVt3KzEyPj4yXT1h''@;'; + put 'put ''W2YrMTI+PjJdLGFbdysxNj4+Ml09YVtmKzE2Pj4yXSxhW3crMjA+PjJdPWFbZisyMD4+Ml0sYVt3KzI0Pj4yXT1hW2YrMjQ+PjJdLGFbdysyOD4+Ml09YVtmKzI4Pj4yXSxJMyh3LG0sMSxiKSxmPTB8QmIocCwxLGIpLEE9MDshKCgwfEEpPj0oMHxjKSk7KWFbdz4+Ml09YVsoTT1sKyg3MipB''@;'; + put 'put ''fDApKzQwfDApPj4yXSxhW3crND4+Ml09YVtNKzQ+PjJdLGFbdys4Pj4yXT1hW00rOD4+Ml0sYVt3KzEyPj4yXT1hW00rMTI+PjJdLGFbdysxNj4+Ml09YVtNKzE2Pj4yXSxhW3crMjA+PjJdPWFbTSsyMD4+Ml0sYVt3KzI0Pj4yXT1hW00rMjQ+PjJdLGFbdysyOD4+Ml09YVtNKzI4Pj4yXSxJ''@;'; + put 'put ''Myh3LG0sMCxiKSxmPTB8QmIocCxmLGIpLEE9QSsxfDA7bGU9a31mdW5jdGlvbiBOOShsLGMpe2x8PTAsY3w9MDt2YXIgQSxmPTAscD0wLG09MCx3PTA7Zm9yKGY9MDshKCgwfGYpPigwfGwpKTspYVtjKyhmPDwyKT4+Ml09ZixmPWYrMXwwO2ZvcihBPWwrMXwwLGY9MTshKCgwfGYpPigwfGwp''@;'; + put 'put ''KTspcD1jKyhmPDwyKXwwLG09YysoKHc9fn4oK3FjKCkqKyhBLWZ8MCkrICsoMHxmKSkpPDwyKXwwLCgwfGYpIT0oMHx3KSYmKHc9MHxhW3A+PjJdLGFbcD4+Ml09YVttPj4yXSxhW20+PjJdPXcpLGY9ZisxfDB9ZnVuY3Rpb24gZnUobCxjLGYscCxtKXtjfD0wLGZ8PTAscHw9MCxtfD0wO3Zh''@;'; + put 'put ''ciB3LGIsRCxBPTAsaz0wLE09MCxSPTAsRz0wLEs9MDtmb3IoRD0wfHZyKChrPTErKEE9NSoobHw9MCl8MCl8MCk8PDIpLGFbNDczODhdPTB8dnIoazw8NCksYVs0NzM4OV09MHx2cig1NisoNTYqbHwwKXwwKSxrPTB8dnIobDw8MiksYVs0NzM5MF09ayxNPTA7ISgoMHxNKT4oMHxBKXx8MHxf''@;'; + put 'put ''bShmKyg3MipNfDApfDAsYykpOylNPU0rMXwwO2Zvcih3PTB8YVs0NzM4OF0sYj0wfGFbNDczODldLEE9MTshKCgwfEEpPigwfGwpKTspYVt3KyhBPDw0KSs4Pj4yXT1hW2MrKDU2KkF8MCkrNDg+PjJdLGFbdysoQTw8NCkrND4+Ml09YVsoUj1jKyg1NipBfDApKzQ0fDApPj4yXSxhW3crKEE8''@;'; + put 'put ''PDQpPj4yXT1BLGFbKEc9YisoNTYqQXwwKXwwKT4+Ml09YVsoSz1jKyg1NipBfDApfDApPj4yXSxhW0crND4+Ml09YVtLKzQ+PjJdLGFbRys4Pj4yXT1hW0srOD4+Ml0sYVtHKzEyPj4yXT1hW0srMTI+PjJdLGFbYisoNTYqQXwwKSsxNj4+Ml09YVtSPj4yXSxhW2IrKDU2KkF8MCkrMzI+PjJd''@;'; + put 'put ''PUEsYVtiKyg1NipBfDApKzQ4Pj4yXT0xLEE9QSsxfDA7cmV0dXJuIGFbNDczOTFdPWwsYVs0NzM5Ml09MCxhW2s+PjJdPTEsQT0oMHwoQT0wfGFbZisoNzIqTXwwKSs0MD4+Ml0pKTw9MD8oMHwoQT0wfGFbZisoNzIqTXwwKSs0OD4+Ml0pKT4wPzB8TG8oRCxtLDAsYyxmLDAsTSxBLHAsMik6''@;'; + put 'put ''MDowfExvKEQsbSwwLGMsZiwwLE0sQSxwLDEpLEZ0KEQpLEZ0KDB8YVs0NzM4OF0pLEZ0KDB8YVs0NzM4OV0pLEZ0KDB8YVs0NzM5MF0pLDB8QX1mdW5jdGlvbiB4ZChsLGMsZil7dmFyIHAsbSxBLHc7cmV0dXJuIHc9K19bKCtfWyhjfD0wKT4+M10+K19bKGZ8PTApPj4zXT9jOmYpPj4zXSxf''@;'; + put 'put ''WzE2KyhsfD0wKT4+M109QT0rX1soK19bYysxNj4+M108K19bZisxNj4+M10/YzpmKSsxNj4+M10sX1tsPj4zXT13LG09K19bKCtfW2MrOD4+M10+K19bZis4Pj4zXT9jOmYpKzg+PjNdLF9bbCsyND4+M109cD0rX1soK19bYysyND4+M108K19bZisyND4+M10/YzpmKSsyND4+M10sX1tsKzg+''@;'; + put 'put ''PjNdPW0sISh3Pj1BKSYhKG0+PXApJjF8MH1mdW5jdGlvbiBfbShsLGMpe2N8PTA7dmFyIG0sZj0wLHA9MDttPTB8YVs0KyhsfD0wKT4+Ml07ZG97aWYoMj09KDB8YVtsKzY4Pj4yXSl8fCgwfG0pPDF8KDB8YVtsPj4yXSk8MSlsPTA7ZWxzZXtpZighKCgwfGFbbCs0MD4+Ml0pPDEmJigwfGFb''@;'; + put 'put ''bCs0ND4+Ml0pPDEpKXtpZigoMHxhW2wrNDg+PjJdKT49MSl7bD0wO2JyZWFrfWlmKCgwfGFbbCs1Mj4+Ml0pPj0xKXtsPTA7YnJlYWt9fWw9KGY9K19bYysoNTYqbXwwKSsyND4+M10pPjFlLTcrKHA9K19bYysoNTYqbXwwKSs4Pj4zXSk/MTpmPHArLTFlLTc/MDorX1tjKyg1NiptfDApKzE2''@;'; + put 'put ''Pj4zXT4rX1tjKyg1NiptfDApPj4zXSYxfX13aGlsZSgwKTtyZXR1cm4gMHxsfWZ1bmN0aW9uIExvKGwsYyxmLHAsbSxBLHcsYixrLE0pe2x8PTAsY3w9MCxmfD0wLHB8PTAsbXw9MCxBfD0wLGJ8PTAsTXw9MDt2YXIgU3QsRD0wLFI9MCxHPTAsSz0wLHBlPTAsZ2U9MCxiZT0wLE9lPTAsTGU9''@;'; + put 'put ''MCxSZT0wLEhlPTAsVmU9MCxxZT0wLG50PTAsV2U9MCxvdD0wLGt0PTAsc3Q9MCxFdD0wLFp0PTAsY3Q9MCxidD0wLGFuPTAsU249MCxIbj0wLHVyPTAsSHI9MCxFcj0wO1N0PTA9PSgwfChrfD0wKSksb3Q9d3w9MDtlOmZvcig7cWU9bSsoNzIqb3R8MCl8MCwhKCgwfG90KTwxfHwodz1sKyhv''@;'; + put 'put ''dDw8Mil8MCwwfGFbdz4+Ml0pKTspe2Fbdz4+Ml09MSxSZT1tKyg3MipvdHwwKSs4fDAsSGU9bSsoNzIqb3R8MCkrMjR8MCwoSz0rX1soT2U9bSsoNzIqb3R8MCkrMTZ8MCk+PjNdKT4oRz0rX1soVmU9bSsoNzIqb3R8MCkrMzJ8MCk+PjNdKSYmKGN0PStfW3ArKDU2KihXZT0wfGFbcWU+PjJd''@;'; + put 'put ''KXwwKT4+M10pPT0rX1twKyg1NipXZXwwKSsxNj4+M10mJihhbj0rX1twKyg1NiooV2U9MHxhW20rKDcyKm90fDApKzQ+PjJdKXwwKT4+M10pPT0rX1twKyg1NipXZXwwKSsxNj4+M10mJih3PWMrKGY8PDUpfDAsU3Q/KF9bdz4+M109Y3QscGU9SyxLPWFuKTooX1t3Pj4zXT1HLHBlPS1jdCxH''@;'; + put 'put ''PS1hbiksX1tjKyhmPDw1KSs4Pj4zXT1HLF9bYysoZjw8NSkrMTY+PjNdPUssX1tjKyhmPDw1KSsyND4+M109cGUsZj1mKzF8MCksbnQ9MHxhWyh3PW0rKDcyKm90fDApKzQwfDApPj4yXTtkb3tpZigoMHxudCk8MSYmKDB8YVsoU249bSsoNzIqb3R8MCkrNDR8MCk+PjJdKTwxKXtpZihSPW0r''@;'; + put 'put ''KDcyKm90fDApKzUyfDAsKDB8YVsodz1tKyg3MipvdHwwKSs0OHwwKT4+Ml0pPjAmJigwfChIbj0wfGFbUj4+Ml0pKT4wKXtpZihEPTB8YVttKyg3MipIbnwwKT4+Ml0sTT0wfGFbcWU+PjJdLCgwfEhuKT09KDB8Yikpe009MHxYcyhBLE0sRCksZj0wfExvKGwsYyxmLHAsbSxBLDB8YVtSPj4y''@;'; + put 'put ''XSxvdCxrLDEpLEE9TSxNPTE7YnJlYWt9TT0wfFhzKEEsRCxNKSxmPTB8TG8obCxjLGYscCxtLEEsMHxhW3c+PjJdLG90LGssMSksQT1NLHc9UixNPTE7YnJlYWt9Zj0wfExvKGwsYyxmLHAsbSxBLG50LG90LGssMiksZj0wfExvKGwsYyxmLHAsbSxBLDB8YVtTbj4+Ml0sb3QsaywyKSxmPTB8''@;'; + put 'put ''TG8obCxjLGYscCxtLEEsMHxhW3c+PjJdLG90LGssMSksdz1SLE09MX1lbHNlIEVyPTE5fXdoaWxlKDApO2Rve2lmKDE5PT0oMHxFcikpe2lmKEVyPTAsKDB8KGdlPTB8YVsoV2U9bSsoNzIqb3R8MCkrNDh8MCk+PjJdKSk8MSYmKDB8YVsodXI9bSsoNzIqb3R8MCkrNTJ8MCk+PjJdKTwxKXtp''@;'; + put 'put ''ZihSPW0rKDcyKm90fDApKzQ0fDAsKDB8bnQpPjAmJigwfChIcj0wfGFbUj4+Ml0pKT4wKXtpZihEPTB8YVttKyg3MipvdHwwKSs0Pj4yXSxNPTB8YVttKyg3MipudHwwKSs0Pj4yXSwoMHxIcik9PSgwfGIpKXtNPTB8WHMoQSxNLEQpLGY9MHxMbyhsLGMsZixwLG0sQSwwfGFbUj4+Ml0sb3Qs''@;'; + put 'put ''aywyKSxBPU0sTT0yO2JyZWFrfU09MHxYcyhBLEQsTSksZj0wfExvKGwsYyxmLHAsbSxBLDB8YVt3Pj4yXSxvdCxrLDIpLEE9TSx3PVIsTT0yO2JyZWFrfWY9MHxMbyhsLGMsZixwLG0sQSxudCxvdCxrLDIpLGY9MHxMbyhsLGMsZixwLG0sQSwwfGFbUj4+Ml0sb3QsaywyKSxmPTB8TG8obCxj''@;'; + put 'put ''LGYscCxtLEEsMHxhW1dlPj4yXSxvdCxrLDEpLHc9dXIsTT0xO2JyZWFrfWlmKEQ9KDB8KGJlPTB8YVsoTGU9bSsoNzIqb3R8MCkrNDR8MCk+PjJdKSk+MCwoMHxudCk+MCl7aWYoRCl7aWYoKDB8Z2UpPjAmJigwfChzdD0wfGFbKGt0PW0rKDcyKm90fDApKzUyfDApPj4yXSkpPjApe2lmKFI9''@;'; + put 'put ''MHxhW20rKDcyKnN0fDApPj4yXSxEPTB8YVttKyg3MipudHwwKSs0Pj4yXSwhKDI9PSgwfE0pJigwfHN0KT09KDB8Yil8fDE9PSgwfE0pJigwfGJlKT09KDB8YikpKXtNPTB8WHMoQSxSLEQpLGY9MHxMbyhsLGMsZixwLG0sQSwwfGFbdz4+Ml0sb3QsaywyKSxmPTB8TG8obCxjLGYscCxtLEEs''@;'; + put 'put ''MHxhW1dlPj4yXSxvdCxrLDEpLGY9MHxMbyhsLGMsZixwLG0sTSwwfGFbTGU+PjJdLG90LGssMiksQT1NLHc9a3QsTT0xO2JyZWFrfU09MHxYcyhBLEQsUiksZj0wfExvKGwsYyxmLHAsbSxBLDB8YVtMZT4+Ml0sb3QsaywyKSxmPTB8TG8obCxjLGYscCxtLEEsMHxhW2t0Pj4yXSxvdCxrLDEp''@;'; + put 'put ''LGY9MHxMbyhsLGMsZixwLG0sTSwwfGFbdz4+Ml0sb3QsaywyKSxBPU0sdz1XZSxNPTE7YnJlYWt9aWYoK2VvKCsoK19bVmU+PjNdLStfW3ArKDU2KihEPTB8YVtxZT4+Ml0pfDApKzI0Pj4zXSkpPD0xZS03JiYrZW8oKygrX1tIZT4+M10tK19bcCsoNTYqRHwwKSsxNj4+M10pKTw9MWUtNyl7''@;'; + put 'put ''aWYoUj0wfGFbbSsoNzIqbnR8MCkrND4+Ml0sRD0wfGFbcCsoNTYqRHwwKSs0ND4+Ml0sMT09KDB8TSkmKDB8bnQpPT0oMHxiKSl7TT0wfFhzKEEsRCxSKSxmPTB8TG8obCxjLGYscCxtLEEsMHxhW3c+PjJdLG90LGssMiksZj0wfExvKGwsYyxmLHAsbSxNLDB8YVtXZT4+Ml0sb3QsaywxKSxm''@;'; + put 'put ''PTB8TG8obCxjLGYscCxtLE0sMHxhW0xlPj4yXSxvdCxrLDIpLEE9TSx3PW0rKDcyKm90fDApKzUyfDAsTT0xO2JyZWFrfU09MHxYcyhBLFIsRCksZj0wfExvKGwsYyxmLHAsbSxBLDB8YVtMZT4+Ml0sb3QsaywyKSxmPTB8TG8obCxjLGYscCxtLEEsMHxhW1dlPj4yXSxvdCxrLDEpLGY9MHxM''@;'; + put 'put ''byhsLGMsZixwLG0sQSwwfGFbbSsoNzIqb3R8MCkrNTI+PjJdLG90LGssMSksQT1NLE09MjticmVha31pZihSPTB8YVttKyg3MipvdHwwKSs0Pj4yXSxEPTB8YVttKyg3MipudHwwKSs0Pj4yXSwxPT0oMHxNKSYoMHxiZSk9PSgwfGIpKXtNPTB8WHMoQSxELFIpLGY9MHxMbyhsLGMsZixwLG0s''@;'; + put 'put ''QSwwfGFbTGU+PjJdLG90LGssMiksZj0wfExvKGwsYyxmLHAsbSxNLDB8YVttKyg3MipvdHwwKSs1Mj4+Ml0sb3QsaywxKSxmPTB8TG8obCxjLGYscCxtLE0sMHxhW1dlPj4yXSxvdCxrLDEpLEE9TSxNPTI7YnJlYWt9TT0wfFhzKEEsUixEKSxmPTB8TG8obCxjLGYscCxtLEEsMHxhW3c+PjJd''@;'; + put 'put ''LG90LGssMiksZj0wfExvKGwsYyxmLHAsbSxBLDB8YVtXZT4+Ml0sb3QsaywxKSxmPTB8TG8obCxjLGYscCxtLEEsMHxhW20rKDcyKm90fDApKzUyPj4yXSxvdCxrLDEpLEE9TSx3PUxlLE09MjticmVha319ZWxzZSBpZighRClicmVhayBlO2lmKCgwfGdlKT4wJiYoMHwoWnQ9MHxhWyhFdD1t''@;'; + put 'put ''Kyg3MipvdHwwKSs1MnwwKT4+Ml0pKT4wKXtpZigrZW8oKygrX1tPZT4+M10tK19bcCsoNTYqKFI9MHxhW3FlPj4yXSl8MCkrOD4+M10pKTw9MWUtNyYmK2VvKCsoK19bUmU+PjNdLStfW3ArKDU2KlJ8MCk+PjNdKSk8PTFlLTcpe2lmKEQ9MHxhW20rKDcyKlp0fDApPj4yXSwyPT0oMHxNKSYo''@;'; + put 'put ''MHxnZSk9PSgwfGIpKXtNPTB8WHMoQSxELFIpLGY9MHxMbyhsLGMsZixwLG0sQSwwfGFbV2U+PjJdLG90LGssMSksZj0wfExvKGwsYyxmLHAsbSxNLDB8YVt3Pj4yXSxvdCxrLDIpLGY9MHxMbyhsLGMsZixwLG0sTSwwfGFbbSsoNzIqb3R8MCkrNDQ+PjJdLG90LGssMiksQT1NLHc9RXQsTT0x''@;'; + put 'put ''O2JyZWFrfU09MHxYcyhBLFIsRCksZj0wfExvKGwsYyxmLHAsbSxBLDB8YVttKyg3MipvdHwwKSs0ND4+Ml0sb3QsaywyKSxmPTB8TG8obCxjLGYscCxtLEEsMHxhW0V0Pj4yXSxvdCxrLDEpLGY9MHxMbyhsLGMsZixwLG0sQSwwfGFbdz4+Ml0sb3QsaywyKSxBPU0sdz1XZSxNPTE7YnJlYWt9''@;'; + put 'put ''aWYoRD0wfGFbbSsoNzIqWnR8MCk+PjJdLFI9MHxhW3ArKDU2KigwfGFbbSsoNzIqb3R8MCkrND4+Ml0pfDApKzQ0Pj4yXSwyPT0oMHxNKSYoMHxadCk9PSgwfGIpKXtNPTB8WHMoQSxSLEQpLGY9MHxMbyhsLGMsZixwLG0sQSwwfGFbRXQ+PjJdLG90LGssMSksZj0wfExvKGwsYyxmLHAsbSxN''@;'; + put 'put ''LDB8YVttKyg3MipvdHwwKSs0ND4+Ml0sb3QsaywyKSxmPTB8TG8obCxjLGYscCxtLE0sMHxhW3c+PjJdLG90LGssMiksQT1NLHc9V2UsTT0xO2JyZWFrfU09MHxYcyhBLEQsUiksZj0wfExvKGwsYyxmLHAsbSxBLDB8YVt3Pj4yXSxvdCxrLDIpLGY9MHxMbyhsLGMsZixwLG0sQSwwfGFbV2U+''@;'; + put 'put ''PjJdLG90LGssMSksZj0wfExvKGwsYyxmLHAsbSxBLDB8YVttKyg3MipvdHwwKSs0ND4+Ml0sb3QsaywyKSxBPU0sdz1FdCxNPTE7YnJlYWt9aWYoK2VvKCsoKEc9K19bT2U+PjNdKS0rX1twKyg1NiooUj0wfGFbcWU+PjJdKXwwKSs4Pj4zXSkpPD0xZS03JiYrZW8oKygrX1tSZT4+M10tK19b''@;'; + put 'put ''cCsoNTYqUnwwKT4+M10pKTw9MWUtNyYmK2VvKCsoK19bVmU+PjNdLStfW3ArKDU2KihidD0wfGFbbSsoNzIqb3R8MCkrND4+Ml0pfDApKzg+PjNdKSk8PTFlLTcmJitlbygrKCtfW0hlPj4zXS0rX1twKyg1NipidHwwKT4+M10pKTw9MWUtNyl7aWYoMT09KDB8TSkpe009MHxYcyhBLFIsYnQp''@;'; + put 'put ''LGY9MHxMbyhsLGMsZixwLG0sQSwwfGFbdz4+Ml0sb3QsaywyKSxmPTB8TG8obCxjLGYscCxtLEEsMHxhW20rKDcyKm90fDApKzQ0Pj4yXSxvdCxrLDIpLGY9MHxMbyhsLGMsZixwLG0sTSwwfGFbbSsoNzIqb3R8MCkrNTI+PjJdLG90LGssMSksQT1NLHc9V2UsTT0xO2JyZWFrfU09MHxYcyhB''@;'; + put 'put ''LGJ0LFIpLGY9MHxMbyhsLGMsZixwLG0sQSwwfGFbbSsoNzIqb3R8MCkrNTI+PjJdLG90LGssMSksZj0wfExvKGwsYyxmLHAsbSxBLDB8YVtXZT4+Ml0sb3QsaywxKSxmPTB8TG8obCxjLGYscCxtLE0sMHxhW3c+PjJdLG90LGssMiksQT1NLHc9bSsoNzIqb3R8MCkrNDR8MCxNPTI7YnJlYWt9''@;'; + put 'put ''aWYoK2VvKCsoRy0rX1twKyg1NiooYj0wfGFbbSsoNzIqb3R8MCkrND4+Ml0pfDApKzI0Pj4zXSkpPD0xZS03JiYrZW8oKygrX1tSZT4+M10tK19bcCsoNTYqYnwwKSsxNj4+M10pKTw9MWUtNyYmK2VvKCsoK19bVmU+PjNdLStfW3ArKDU2KlJ8MCkrMjQ+PjNdKSk8PTFlLTcmJitlbygrKCtf''@;'; + put 'put ''W0hlPj4zXS0rX1twKyg1NipSfDApKzE2Pj4zXSkpPD0xZS03KXtpZihEPTB8YVtwKyg1NipifDApKzQ0Pj4yXSxiPTB8YVtwKyg1NipSfDApKzQ0Pj4yXSwxPT0oMHxNKSl7TT0wfFhzKEEsYixEKSxmPTB8TG8obCxjLGYscCxtLEEsMHxhW3c+PjJdLG90LGssMiksZj0wfExvKGwsYyxmLHAs''@;'; + put 'put ''bSxBLDB8YVttKyg3MipvdHwwKSs0ND4+Ml0sb3QsaywyKSxmPTB8TG8obCxjLGYscCxtLE0sMHxhW20rKDcyKm90fDApKzUyPj4yXSxvdCxrLDEpLEE9TSx3PVdlLE09MTticmVha31NPTB8WHMoQSxELGIpLGY9MHxMbyhsLGMsZixwLG0sQSwwfGFbbSsoNzIqb3R8MCkrNTI+PjJdLG90LGss''@;'; + put 'put ''MSksZj0wfExvKGwsYyxmLHAsbSxBLDB8YVtXZT4+Ml0sb3QsaywxKSxmPTB8TG8obCxjLGYscCxtLE0sMHxhW3c+PjJdLG90LGssMiksQT1NLHc9bSsoNzIqb3R8MCkrNDR8MCxNPTI7YnJlYWt9Zj0wfExvKGwsYyxmLHAsbSxBLG50LG90LGssMiksZj0wfExvKGwsYyxmLHAsbSxBLDB8YVtX''@;'; + put 'put ''ZT4+Ml0sb3QsaywxKSxmPTB8TG8obCxjLGYscCxtLEEsMHxhW20rKDcyKm90fDApKzQ0Pj4yXSxvdCxrLDIpLHc9bSsoNzIqb3R8MCkrNTJ8MCxNPTF9fXdoaWxlKDApO2I9b3Qsb3Q9MHxhW3c+PjJdfXJldHVybiAwfGZ9ZnVuY3Rpb24gWHMobCxjLGYpe2x8PTAsY3w9MCxmfD0wO3ZhciBw''@;'; + put 'put ''LG0sQSx3LE0sRCxLLHBlLGI9MCxrPTAsUj0wLEc9MCxnZT0wO3JldHVybiBtPWxlLGxlPWxlKzE2fDAsZ2U9bSs0fDAsYj1tLGFbNDczOTJdPXA9MSsoMHxhWzQ3MzkyXSl8MCxEPTB8YVs0NzM4OV0sZnVuY3Rpb24gUmIobCxjLGYscCl7Znw9MCxwfD0wO3ZhciBELFIsRyxtPTAsQT0wLHc9''@;'; + put 'put ''MCxiPTAsaz0wLE09MDtmb3IoUj0oRD0wfGFbNDczODldKSsoNTYqKGx8PTApfDApfDAsRz1EKyg1NiooY3w9MCl8MCl8MCxtPTAsQT0tNCxiPTA7NCE9KDB8Yik7KSgwfCh3PTB8YVtEKyg1NipsfDApKzE2KyhiPDwyKT4+Ml0pKT49MSYmKGs9K2U1KFIsRCsoNTYqd3wwKXwwLEcpKT5BJiYo''@;'; + put 'put ''bT1iLEE9ayksYj1iKzF8MDtmb3IoYVtmPj4yXT1tLG09MCxiPTAsQT0tNDs0IT0oMHxiKTspKDB8KHc9MHxhW0QrKDU2KmN8MCkrMTYrKGI8PDIpPj4yXSkpPj0xJiYoTT0rZTUoRyxEKyg1Nip3fDApfDAsUikpPkEmJihtPWIsQT1NKSxiPWIrMXwwO2FbcD4+Ml09bX0oYyxmLGdlLGIpLHc9''@;'; + put 'put ''MHxhW0QrKDU2KmN8MCkrMzIrKChnZT0wfGFbZ2U+PjJdKTw8Mik+PjJdLGI9MHxhW0QrKDU2KmZ8MCkrMzIrKGFbYj4+Ml08PDIpPj4yXSxBPTErKFI9MHxhWzQ3MzkxXSl8MCxhWzQ3MzkxXT1SPVIrMnwwLGFbKHBlPTB8YVs0NzM4OF0pKyhBPDw0KT4+Ml09YyxhW3BlKyhSPDw0KT4+Ml09''@;'; + put 'put ''ZixhWyhLPXBlKyhBPDw0KSs0fDApPj4yXT1hWyhHPXBlKyh3PDw0KSs0fDApPj4yXSxhW3BlKyhhW0c+PjJdPDw0KSs4Pj4yXT1BLGFbcGUrKEE8PDQpKzg+PjJdPVIsYVtwZSsoUjw8NCkrND4+Ml09QSxhW3BlKyhSPDw0KSs4Pj4yXT1hWyhrPXBlKyhiPDw0KSs4fDApPj4yXSxhW3BlKyhh''@;'; + put 'put ''W2s+PjJdPDw0KSs0Pj4yXT1SLGFbRz4+Ml09YixhW2s+PjJdPXcsRz0wfGFbKGs9RCsoNTYqY3wwKSs0OHwwKT4+Ml0sTT0wfGFbKGI9RCsoNTYqZnwwKSs0OHwwKT4+Ml0sYVtEKyg1NipjfDApKzE2KyhnZTw8Mik+PjJdPWYsYVtEKyg1NipjfDApKzMyKyhHPDwyKT4+Ml09QSxhW0QrKDU2''@;'; + put 'put ''KmN8MCkrMTYrKEc8PDIpPj4yXT1hW3BlKyhhW0s+PjJdPDw0KT4+Ml0sYVtEKyg1NipmfDApKzMyKyhNPDwyKT4+Ml09UixhW0QrKDU2KmZ8MCkrMTYrKE08PDIpPj4yXT1jLGFbaz4+Ml09MSsoMHxhW2s+PjJdKSxhW2I+PjJdPTErKDB8YVtiPj4yXSksYVsoZj0wfGFbNDczOTBdKSsobDw8''@;'; + put 'put ''Mik+PjJdPXcsYVtmKyhwPDwyKT4+Ml09QSxsZT1tLDB8cH1mdW5jdGlvbiBlNShsLGMsZil7dmFyIG0sQSxiLHA9MCx3PTA7cmV0dXJuIGI9K19bKGN8PTApPj4zXS0odz0rX1sobHw9MCk+PjNdKSxBPStfW2MrOD4+M10tKHA9K19bbCs4Pj4zXSksbT0ocD0rX1s4KyhmfD0wKT4+M10tcCkq''@;'; + put 'put ''QSsodz0rX1tmPj4zXS13KSpiLCsocD1wKmItdypBPj0wP20vKCtEMCgrKHAqcCt3KncpKSorRDAoKyhBKkErYipiKSkpOi1tLygrRDAoKyhwKnArdyp3KSkqK0QwKCsoQSpBK2IqYikpKS0yKX1mdW5jdGlvbiBJMyhsLGMsZixwKXtjfD0wLGZ8PTA7dmFyIGssbT0wLEE9MCx3PTAsYj0wLE09''@;'; + put 'put ''MDthWyhwfD0wKT4+Ml09YVsobHw9MCk+PjJdLGFbcCs0Pj4yXT1hW2wrND4+Ml0sYVtwKzg+PjJdPWFbbCs4Pj4yXSxhW3ArMTI+PjJdPWFbbCsxMj4+Ml0sYVsodz1wKzMyfDApPj4yXT1hWyhiPWwrMTZ8MCk+PjJdLGFbdys0Pj4yXT1hW2IrND4+Ml0sYVt3Kzg+PjJdPWFbYis4Pj4yXSxh''@;'; + put 'put ''W3crMTI+PjJdPWFbYisxMj4+Ml0sZj8obT1sKzI0fDAsQT1sLHc9bCs4fDAsZj1iKToobT1sKzh8MCxBPWIsdz1sKzI0fDAsZj1sKSxrPStfW0E+PjNdLE09K19bdz4+M10sX1twKzE2Pj4zXT0rX1tmPj4zXSxfW3ArMjQ+PjNdPU0sX1twKzQ4Pj4zXT1rLF9bcCs1Nj4+M109K19bbT4+M107''@;'; + put 'put ''ZTpkb3tpZigwfGMpZm9yKGY9MDs7KXtpZig0PT0oMHxmKSlicmVhayBlO009K19bKGI9cCsoZjw8NCkrOHwwKT4+M10sX1tiPj4zXT0rX1soYz1wKyhmPDw0KXwwKT4+M10sX1tjPj4zXT0tTSxmPWYrMXwwfX13aGlsZSgwKX1mdW5jdGlvbiBCYihsLGMsZil7Znw9MDt2YXIgdyxiLGssTSxE''@;'; + put 'put ''LHA9MCxtPTAsQT0wLFI9MCxHPTA7Zm9yKGI9MSsoY3w9MCl8MCxrPWMrMnwwLE09KGx8PTApKyg1NipjfDApKzQ0fDAsRD1sKyg1Nioodz1jKzN8MCl8MCkrNDR8MCxwPTAsbT1jOyEoKDB8bSk+KDB8dykpOyl7ZG97aWYoKDB8bSkhPSgwfGMpKXtpZigoMHxtKT09KDB8dykpe2FbRD4+Ml09''@;'; + put 'put ''YyxBPWs7YnJlYWt9YVtsKyg1NiptfDApKzQ0Pj4yXT1tKzEsQT1tKy0xfDA7YnJlYWt9YVtNPj4yXT1iLEE9d313aGlsZSgwKTthW2wrKDU2Km18MCkrNDg+PjJdPUEsYVtsKyg1NiptfDApKzMyPj4yXT0wLGFbKEc9bCsoNTYqbXwwKXwwKT4+Ml09YVsoUj1mKyhwPDw0KXwwKT4+Ml0sYVtH''@;'; + put 'put ''KzQ+PjJdPWFbUis0Pj4yXSxhW0crOD4+Ml09YVtSKzg+PjJdLGFbRysxMj4+Ml09YVtSKzEyPj4yXSxyMShsKyg1NipBfDApKzE2fDAsMHxSLDE2KSxwPXArMXwwLG09bSsxfDB9cmV0dXJuIGMrNHwwfWZ1bmN0aW9uIFY5KGwsYyxmLHAsbSl7bHw9MCxjfD0wLGZ8PTAsbXw9MDt2YXIgayxN''@;'; + put 'put ''LEE9MCx3PTAsYj0wO2ZvcihhWzQ3MzkzXT0ocHw9MCk8PDEsYVs0NzM5NF09cCxNPTB8dnIoODAqcHwwKSxhWzQ3Mzk1XT0xLGFbNDczOTZdPTEsdTIoMHxtLDAsNzIqcHwwKSxBPTB8ZnVuY3Rpb24gajkobCxjLGYscCl7bHw9MCxjfD0wLGZ8PTAscHw9MDt2YXIgbSxBLHcsRCxSLEcsZ2Us''@;'; + put 'put ''T2UsYj0wLGs9MCxNPTAsSz0wLHBlPTAsYmU9MDtyZXR1cm4gbT0wfHdmKCksYVtwKyg0MCptfDApPj4yXT0yLGZ1bmN0aW9uIGFHKGwsYyxmKXtsfD0wO3ZhciBwLG07cD0rX1s4KyhjfD0wKT4+M10sbT0rX1s4KyhmfD0wKT4+M107ZG97aWYoIShwPm0rMWUtNykpe2lmKCEoK2VvKCsocC1t''@;'; + put 'put ''KSk8PTFlLTcpKXthW2w+PjJdPWFbZj4+Ml0sYVtsKzQ+PjJdPWFbZis0Pj4yXSxhW2wrOD4+Ml09YVtmKzg+PjJdLGFbbCsxMj4+Ml09YVtmKzEyPj4yXTticmVha31pZigrX1tjPj4zXT4rX1tmPj4zXSsxZS03KXthW2w+PjJdPWFbYz4+Ml0sYVtsKzQ+PjJdPWFbYys0Pj4yXSxhW2wrOD4+''@;'; + put 'put ''Ml09YVtjKzg+PjJdLGFbbCsxMj4+Ml09YVtjKzEyPj4yXTticmVha31hW2w+PjJdPWFbZj4+Ml0sYVtsKzQ+PjJdPWFbZis0Pj4yXSxhW2wrOD4+Ml09YVtmKzg+PjJdLGFbbCsxMj4+Ml09YVtmKzEyPj4yXTticmVha31hW2w+PjJdPWFbYz4+Ml0sYVtsKzQ+PjJdPWFbYys0Pj4yXSxhW2wr''@;'; + put 'put ''OD4+Ml09YVtjKzg+PjJdLGFbbCsxMj4+Ml09YVtjKzEyPj4yXX13aGlsZSgwKX0oYmU9cCsoNDAqbXwwKSs4fDAsaz1jKyg1NipsfDApfDAsTT1jKyg1NipsfDApKzE2fDApLFI9MHx3ZigpLGFbcCsoNDAqbXwwKSszNj4+Ml09UixhW3ArKDQwKlJ8MCk+PjJdPTMsYVtwKyg0MCpSfDApKzI4''@;'; + put 'put ''Pj4yXT1tLGI9MHx3ZigpLGFbcCsoNDAqbXwwKSszMj4+Ml09YixhW3ArKDQwKmJ8MCk+PjJdPTIsZnVuY3Rpb24gTEUobCxjLGYpe2x8PTA7dmFyIHAsbTtwPStfWzgrKGN8PTApPj4zXSxtPStfWzgrKGZ8PTApPj4zXTtkb3tpZighKHA8bSstMWUtNykpe2lmKCEoK2VvKCsocC1tKSk8PTFl''@;'; + put 'put ''LTcpKXthW2w+PjJdPWFbZj4+Ml0sYVtsKzQ+PjJdPWFbZis0Pj4yXSxhW2wrOD4+Ml09YVtmKzg+PjJdLGFbbCsxMj4+Ml09YVtmKzEyPj4yXTticmVha31pZigrX1tjPj4zXTwrX1tmPj4zXSl7YVtsPj4yXT1hW2M+PjJdLGFbbCs0Pj4yXT1hW2MrND4+Ml0sYVtsKzg+PjJdPWFbYys4Pj4y''@;'; + put 'put ''XSxhW2wrMTI+PjJdPWFbYysxMj4+Ml07YnJlYWt9YVtsPj4yXT1hW2Y+PjJdLGFbbCs0Pj4yXT1hW2YrND4+Ml0sYVtsKzg+PjJdPWFbZis4Pj4yXSxhW2wrMTI+PjJdPWFbZisxMj4+Ml07YnJlYWt9YVtsPj4yXT1hW2M+PjJdLGFbbCs0Pj4yXT1hW2MrND4+Ml0sYVtsKzg+PjJdPWFbYys4''@;'; + put 'put ''Pj4yXSxhW2wrMTI+PjJdPWFbYysxMj4+Ml19d2hpbGUoMCl9KGdlPXArKDQwKmJ8MCkrOHwwLGssTSksYVtwKyg0MCpifDApKzI4Pj4yXT1tLE09MHx3ZigpLGFbcCsoNDAqYnwwKSszMj4+Ml09TSxhW3ArKDQwKk18MCk+PjJdPTMsYVtwKyg0MCpNfDApKzI4Pj4yXT1iLGs9MHx3ZigpLGFb''@;'; + put 'put ''cCsoNDAqYnwwKSszNj4+Ml09ayxhW3ArKDQwKmt8MCk+PjJdPTEsYVtwKyg0MCprfDApKzQ+PjJdPWwsYVtwKyg0MCprfDApKzI4Pj4yXT1iLGI9MHx3ZigpLGFbcCsoNDAqa3wwKSszMj4+Ml09YixhW3ArKDQwKmJ8MCk+PjJdPTMsYVtwKyg0MCpifDApKzI4Pj4yXT1rLEE9MHx3ZigpLGFb''@;'; + put 'put ''cCsoNDAqa3wwKSszNj4+Ml09QSxhW3ArKDQwKkF8MCk+PjJdPTMsYVtwKyg0MCpBfDApKzI4Pj4yXT1rLGs9MHx3NihmKSx3PTB8dzYoZiksRD0wfHc2KGYpLEc9MHx3NihmKSxLPWYrKDcyKmt8MCkrOHwwLHBlPWYrKDcyKnd8MCkrOHwwLGFbKE9lPWYrKDcyKkd8MCkrMjR8MCk+PjJdPWFb''@;'; + put 'put ''YmU+PjJdLGFbT2UrND4+Ml09YVtiZSs0Pj4yXSxhW09lKzg+PjJdPWFbYmUrOD4+Ml0sYVtPZSsxMj4+Ml09YVtiZSsxMj4+Ml0scjEoMHxwZSwwfGJlLDE2KSxhW0s+PjJdPWFbcGU+PjJdLGFbSys0Pj4yXT1hW3BlKzQ+PjJdLGFbSys4Pj4yXT1hW3BlKzg+PjJdLGFbSysxMj4+Ml09YVtw''@;'; + put 'put ''ZSsxMj4+Ml0sSz1mKyg3MiprfDApKzI0fDAscGU9ZisoNzIqd3wwKSsyNHwwLGFbKGJlPWYrKDcyKkR8MCkrOHwwKT4+Ml09YVtnZT4+Ml0sYVtiZSs0Pj4yXT1hW2dlKzQ+PjJdLGFbYmUrOD4+Ml09YVtnZSs4Pj4yXSxhW2JlKzEyPj4yXT1hW2dlKzEyPj4yXSxyMSgwfHBlLDB8Z2UsMTYp''@;'; + put 'put ''LGFbSz4+Ml09YVtwZT4+Ml0sYVtLKzQ+PjJdPWFbcGUrND4+Ml0sYVtLKzg+PjJdPWFbcGUrOD4+Ml0sYVtLKzEyPj4yXT1hW3BlKzEyPj4yXSxfW2YrKDcyKkd8MCkrMTY+PjNdPTEwNzM3NDE4MjQsX1tmKyg3MipHfDApKzg+PjNdPTEwNzM3NDE4MjQsX1tmKyg3MipEfDApKzMyPj4zXT0t''@;'; + put 'put ''MTA3Mzc0MTgyNCxfW2YrKDcyKkR8MCkrMjQ+PjNdPS0xMDczNzQxODI0LGFbZisoNzIqd3wwKT4+Ml09bCxhW2YrKDcyKmt8MCkrND4+Ml09bCxhW2YrKDcyKnd8MCkrNDA+PjJdPUcsYVtmKyg3MiprfDApKzQwPj4yXT1HLGFbZisoNzIqd3wwKSs0OD4+Ml09RCxhW2YrKDcyKmt8MCkrNDg+''@;'; + put 'put ''PjJdPUQsYVtmKyg3MipEfDApKzQwPj4yXT1rLGFbZisoNzIqR3wwKSs0OD4+Ml09ayxhW2YrKDcyKkR8MCkrNDQ+PjJdPXcsYVtmKyg3MipHfDApKzUyPj4yXT13LGFbZisoNzIqa3wwKSs1Nj4+Ml09YixhW2YrKDcyKnd8MCkrNTY+PjJdPUEsYVtmKyg3MipEfDApKzU2Pj4yXT1NLGFbZiso''@;'; + put 'put ''NzIqR3wwKSs1Nj4+Ml09UixhW2YrKDcyKnd8MCkrNjg+PjJdPTEsYVtmKyg3MiprfDApKzY4Pj4yXT0xLGFbZisoNzIqR3wwKSs2OD4+Ml09MSxhW2YrKDcyKkR8MCkrNjg+PjJdPTEsYVtwKyg0MCpSfDApKzI0Pj4yXT1HLGFbcCsoNDAqTXwwKSsyND4+Ml09RCxhW3ArKDQwKmJ8MCkrMjQ+''@;'; + put 'put ''PjJdPWssYVtwKyg0MCpBfDApKzI0Pj4yXT13LGFbYysoNTYqbHwwKSszMj4+Ml09MSwwfG19KDB8YVtmKzQ+PjJdLGMsbSxNKSxwPTE7ISgoMHxwKT4oMHxsKSk7KWFbYysoNTYqcHwwKSs0MD4+Ml09QSxhW2MrKDU2KnB8MCkrMzY+PjJdPUEscD1wKzF8MDtmb3Ioaz0wfGZ1bmN0aW9uIFBi''@;'; + put 'put ''KGwpe3ZhciBjPTA7Zm9yKGM9KygwfChsfD0wKSksbD0wO2M+PTE7KWM9K28kKGMpLGw9bCsxfDA7cmV0dXJuIGwrLTF8MH0obCksQT0yLGI9MTshKCgwfGIpPigwfGspKTspe2ZvcihwPTB8SUUobCxiKy0xfDApLHc9MHxJRShsLGIpOzspe2lmKCgwfHApPj0oMHx3KSl7cD0xO2JyZWFrfUE2''@;'; + put 'put ''KDB8YVtmKyhBPDwyKT4+Ml0sYyxtLE0pLHA9cCsxfDAsQT1BKzF8MH1mb3IoOyEoKDB8cCk+KDB8bCkpOylGYihwLGMsbSxNKSxwPXArMXwwO2I9YisxfDB9Zm9yKHA9MHxJRShsLGspOyEoKDB8cCk+PSgwfGwpKTspQTYoMHxhW2YrKEE8PDIpPj4yXSxjLG0sTSksQT1BKzF8MCxwPXArMXww''@;'; + put 'put ''O3JldHVybiBGdChNKSwwfGFbNDczOTVdfWZ1bmN0aW9uIElFKGwsYyl7Y3w9MDt2YXIgcCxmPTA7Zm9yKGY9cD0rKDB8KGx8PTApKSxsPTA7ISgoMHxsKT49KDB8YykpOylmPStvJChmKSxsPWwrMXwwO3JldHVybiAwfH5+K0l1KCtwL2YpfWZ1bmN0aW9uIEE2KGwsYyxmLHApe2Z8PTAscHw9''@;'; + put 'put ''MDt2YXIgRXQsRHIsSnIsTHIsbDAsVmksbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAsSz0wLHBlPTAsZ2U9MCxiZT0wLE9lPTAsTGU9MCxSZT0wLEhlPTAsVmU9MCxxZT0wLG50PTAsV2U9MCxvdD0wLFN0PTAsa3Q9MCxzdD0wLFp0PTAsY3Q9MCxidD0wLGFuPTAsU249MCxI''@;'; + put 'put ''bj0wLHVyPTAsSHI9MCxFcj0wLGZyPTAsT2k9MDtWaT1sZSxsZT1sZSs5NnwwLG09VmkrMTZ8MCxKcj1WaSxrPShjfD0wKSsoNTYqKGx8PTApfDApfDAscGU9NTYrKGdlPURyPVZpKzMyfDApfDA7ZG97YVtnZT4+Ml09YVtrPj4yXSxnZT1nZSs0fDAsaz1rKzR8MH13aGlsZSgoMHxnZSk8KDB8''@;'; + put 'put ''cGUpKTtMcj1EcisxNnwwLHc9K19bKGwwPURyKzI0fDApPj4zXSxiPStfWyhFdD1Ecis4fDApPj4zXTtkb3tpZih3PmIrMWUtNylzdD00O2Vsc2V7aWYoISh3PGIrLTFlLTcpJiYrX1tMcj4+M10+K19bRHI+PjNdKXtzdD00O2JyZWFrfXN0PTA9PSgwfHQ1KGwsYywxKSksbT0wfGFbRHIrMzY+''@;'; + put 'put ''PjJdLHN0PyhEPTAsc3Q9Nyk6KG09MHxINChEcixMcixtLGMscCksc3Q9MjApfX13aGlsZSgwKTtpZig0PT0oMHxzdCkmJihhW20+PjJdPWFbRHI+PjJdLGFbbSs0Pj4yXT1hW0RyKzQ+PjJdLGFbbSs4Pj4yXT1hW0RyKzg+PjJdLGFbbSsxMj4+Ml09YVtEcisxMj4+Ml0sYVtEcj4+Ml09YVtM''@;'; + put 'put ''cj4+Ml0sYVtEcis0Pj4yXT1hW0xyKzQ+PjJdLGFbRHIrOD4+Ml09YVtMcis4Pj4yXSxhW0RyKzEyPj4yXT1hW0xyKzEyPj4yXSxhW0xyPj4yXT1hW20+PjJdLGFbTHIrND4+Ml09YVttKzQ+PjJdLGFbTHIrOD4+Ml09YVttKzg+PjJdLGFbTHIrMTI+PjJdPWFbbSsxMj4+Ml0sa3Q9MHxhWyhT''@;'; + put 'put ''dD1EciszNnwwKT4+Ml0sYVtTdD4+Ml09bT0wfGFbKHN0PURyKzQwfDApPj4yXSxhW3N0Pj4yXT1rdCwwfHQ1KGwsYywyKT8obT0wfEg0KERyLExyLG0sYyxwKSxzdD0xOSk6KEQ9MSxzdD03KSksNz09KDB8c3QpKXtNPTB8SDQoRHIsTHIsbSxjLHApLG09MHx3NihmKSxhW2YrKDcyKm18MCkr''@;'; + put 'put ''Njg+PjJdPTEsaz1mKyg3MipNfDApfDAscGU9NzIrKGdlPWYrKDcyKm18MCl8MCl8MDtkb3thW2dlPj4yXT1hW2s+PjJdLGdlPWdlKzR8MCxrPWsrNHwwfXdoaWxlKCgwfGdlKTwoMHxwZSkpO19bZisoNzIqbXwwKSsxNj4+M109Sz0rX1tFdD4+M10sX1tmKyg3MipNfDApKzMyPj4zXT1LLF9b''@;'; + put 'put ''ZisoNzIqbXwwKSs4Pj4zXT1LPStfW0RyPj4zXSxfW2YrKDcyKk18MCkrMjQ+PjNdPUssYVtmKyg3MipNfDApKzQ4Pj4yXT1tLGFbZisoNzIqTXwwKSs1Mj4+Ml09MCxhW2YrKDcyKm18MCkrNDA+PjJdPU0sYVtmKyg3MiptfDApKzQ0Pj4yXT0wLCgwfChBPTB8YVtmKyg3MiptfDApKzQ4Pj4y''@;'; + put 'put ''XSkpPjAmJigoMHxhWyhrPWYrKDcyKkF8MCkrNDB8MCk+PjJdKT09KDB8TSkmJihhW2s+PjJdPW0pLCgwfGFbKEE9ZisoNzIqQXwwKSs0NHwwKT4+Ml0pPT0oMHxNKSYmKGFbQT4+Ml09bSkpLCgwfChBPTB8YVtmKyg3MiptfDApKzUyPj4yXSkpPjAmJigoMHxhWyhrPWYrKDcyKkF8MCkrNDB8''@;'; + put 'put ''MCk+PjJdKT09KDB8TSkmJihhW2s+PjJdPW0pLCgwfGFbKEE9ZisoNzIqQXwwKSs0NHwwKT4+Ml0pPT0oMHxNKSYmKGFbQT4+Ml09bSkpLFN0PTB8d2YoKSxzdD0wfHdmKCksYVtwKyg0MCoob3Q9MHxhWyhrdD1mKyg3MipNfDApKzU2fDApPj4yXSl8MCk+PjJdPTIsYVsoV2U9cCsoNDAqb3R8''@;'; + put 'put ''MCkrOHwwKT4+Ml09YVtEcj4+Ml0sYVtXZSs0Pj4yXT1hW0RyKzQ+PjJdLGFbV2UrOD4+Ml09YVtEcis4Pj4yXSxhW1dlKzEyPj4yXT1hW0RyKzEyPj4yXSxhW3ArKDQwKm90fDApKzQ+PjJdPWwsYVtwKyg0MCpvdHwwKSszMj4+Ml09c3QsYVtwKyg0MCpvdHwwKSszNj4+Ml09U3QsYVtwKyg0''@;'; + put 'put ''MCpTdHwwKT4+Ml09MyxhW3ArKDQwKlN0fDApKzI0Pj4yXT1NLGFbcCsoNDAqU3R8MCkrMjg+PjJdPW90LGFbcCsoNDAqc3R8MCk+PjJdPTMsYVtwKyg0MCpzdHwwKSsyND4+Ml09bSxhW3ArKDQwKnN0fDApKzI4Pj4yXT1vdCxhW2t0Pj4yXT1TdCxhW2YrKDcyKm18MCkrNTY+PjJdPXN0LHN0''@;'; + put 'put ''PUQ/MTk6MjB9aWYoMTk9PSgwfHN0KT8wfHQ1KGwsYywxKT8oQT0xLHN0PTMyKTooQT0xLHN0PTIxKToyMD09KDB8c3QpJiYoMHx0NShsLGMsMik/KEE9MCxzdD0zMik6KEE9MCxzdD0yMSkpLDIxPT0oMHxzdCkpe1I9MHxINChMcixEciwwfGFbRHIrNDA+PjJdLGMscCksRD0wfHc2KGYpLGFb''@;'; + put 'put ''ZisoNzIqRHwwKSs2OD4+Ml09MSxrPWYrKDcyKlJ8MCl8MCxwZT03MisoZ2U9ZisoNzIqRHwwKXwwKXwwO2Rve2FbZ2U+PjJdPWFbaz4+Ml0sZ2U9Z2UrNHwwLGs9ays0fDB9d2hpbGUoKDB8Z2UpPCgwfHBlKSk7X1tmKyg3MipEfDApKzE2Pj4zXT1LPStfW2wwPj4zXSxfW2YrKDcyKlJ8MCkr''@;'; + put 'put ''MzI+PjNdPUssX1tmKyg3MipEfDApKzg+PjNdPUs9K19bTHI+PjNdLF9bZisoNzIqUnwwKSsyND4+M109SyxhW2YrKDcyKlJ8MCkrNDg+PjJdPUQsYVtmKyg3MipSfDApKzUyPj4yXT0wLGFbZisoNzIqRHwwKSs0MD4+Ml09UixhW2YrKDcyKkR8MCkrNDQ+PjJdPTAsKDB8KGs9MHxhW2YrKDcy''@;'; + put 'put ''KkR8MCkrNDg+PjJdKSk+MCYmKCgwfGFbKE09ZisoNzIqa3wwKSs0MHwwKT4+Ml0pPT0oMHxSKSYmKGFbTT4+Ml09RCksKDB8YVsoaz1mKyg3MiprfDApKzQ0fDApPj4yXSk9PSgwfFIpJiYoYVtrPj4yXT1EKSksKDB8KGs9MHxhW2YrKDcyKkR8MCkrNTI+PjJdKSk+MCYmKCgwfGFbKE09Ziso''@;'; + put 'put ''NzIqa3wwKSs0MHwwKT4+Ml0pPT0oMHxSKSYmKGFbTT4+Ml09RCksKDB8YVsoaz1mKyg3MiprfDApKzQ0fDApPj4yXSk9PSgwfFIpJiYoYVtrPj4yXT1EKSksb3Q9MHx3ZigpLGt0PTB8d2YoKSxhW3ArKDQwKihXZT0wfGFbKFN0PWYrKDcyKlJ8MCkrNTZ8MCk+PjJdKXwwKT4+Ml09MixhWyhu''@;'; + put 'put ''dD1wKyg0MCpXZXwwKSs4fDApPj4yXT1hW0xyPj4yXSxhW250KzQ+PjJdPWFbTHIrND4+Ml0sYVtudCs4Pj4yXT1hW0xyKzg+PjJdLGFbbnQrMTI+PjJdPWFbTHIrMTI+PjJdLGFbcCsoNDAqV2V8MCkrND4+Ml09bCxhW3ArKDQwKldlfDApKzMyPj4yXT1rdCxhW3ArKDQwKldlfDApKzM2Pj4y''@;'; + put 'put ''XT1vdCxhW3ArKDQwKm90fDApPj4yXT0zLGFbcCsoNDAqb3R8MCkrMjQ+PjJdPVIsYVtwKyg0MCpvdHwwKSsyOD4+Ml09V2UsYVtwKyg0MCprdHwwKT4+Ml09MyxhW3ArKDQwKmt0fDApKzI0Pj4yXT1ELGFbcCsoNDAqa3R8MCkrMjg+PjJdPVdlLGFbU3Q+PjJdPW90LGFbZisoNzIqRHwwKSs1''@;'; + put 'put ''Nj4+Ml09a3Qsa3Q9bSxtPTB9ZWxzZSAzMj09KDB8c3QpJiYoa3Q9bSxSPTB8SDQoTHIsRHIsMHxhW0RyKzQwPj4yXSxjLHApLG09MSk7ZTpkb3tpZigoMHxrdCk+MCl7b3Q9ZisoNzIqUnwwKSsyNHwwLFN0PWYrKDcyKlJ8MCkrMzJ8MCxXZT0wIT0oMHxtKSxWZT1BP2MrKDU2Kmx8MCkrNDh8''@;'; + put 'put ''MDpjKyg1NipsfDApKzQ0fDAscWU9SnIrOHwwLEE9MCxtPTAsSGU9a3Q7dDpmb3IoOzspe2lmKGs9ZisoNzIqSGV8MCl8MCwhKDB8REUoTGU9ZisoNzIqSGV8MCkrMjR8MCxvdCkpKWJyZWFrIGU7T2U9MHxhWyhNPWYrKDcyKkhlfDApKzU2fDApPj4yXSxEPTB8d2YoKSxHPTB8d2YoKSxhW3Ar''@;'; + put 'put ''KDQwKk9lfDApPj4yXT0xLGFbcCsoNDAqT2V8MCkrND4+Ml09bCxhW3ArKDQwKk9lfDApKzMyPj4yXT1ELGFbcCsoNDAqT2V8MCkrMzY+PjJdPUcsYVtwKyg0MCpEfDApPj4yXT0zLGFbcCsoNDAqRHwwKSsyND4+Ml09SGUsYVtwKyg0MCpEfDApKzI4Pj4yXT1PZSxhW3ArKDQwKkd8MCk+PjJd''@;'; + put 'put ''PTMsUmU9MHx3NihmKSxhW3ArKDQwKkd8MCkrMjQ+PjJdPVJlLG50PWYrKDcyKlJlfDApfDAsYVtmKyg3MipSZXwwKSs2OD4+Ml09MSxhW3ArKDQwKkd8MCkrMjg+PjJdPU9lLEE9KDB8SGUpPT0oMHxrdCk/UmU6QSwrZW8oKygrX1soT2U9ZisoNzIqSGV8MCkrMzJ8MCk+PjNdLStfW1N0Pj4z''@;'; + put 'put ''XSkpPD0xZS03JiYrZW8oKygrX1tMZT4+M10tK19bb3Q+PjNdKSk8PTFlLTcmJihtPVJlKSxwZT0oZ2U9bnQpKzcyfDA7ZG97YVtnZT4+Ml09YVtrPj4yXSxnZT1nZSs0fDAsaz1rKzR8MH13aGlsZSgoMHxnZSk8KDB8cGUpKTthW00+PjJdPUQsYVtmKyg3MipSZXwwKSs1Nj4+Ml09RyxiZT1m''@;'; + put 'put ''Kyg3MipIZXwwKSs0OHwwLGs9KDB8YVsoTT1mKyg3MipIZXwwKSs1MnwwKT4+Ml0pPDE7ZG97aWYoKDB8YVtiZT4+Ml0pPDEpe2lmKGspYnJlYWsgdDtrPTB8YVsoZ2U9ZisoNzIqSGV8MCkrNDB8MCk+PjJdO2Rve2lmKCgwfGspPjAmJigwfChIbj0wfGFbKFNuPWYrKDcyKkhlfDApKzQ0fDAp''@;'; + put 'put ''Pj4yXSkpPjApe2lmKCgwfChrPTB8YVsocGU9ZisoNzIqSGV8MCkrNjB8MCk+PjJdKSk8PTApe2FbZisoNzIqUmV8MCkrNDA+PjJdPUhuLGFbZisoNzIqUmV8MCkrNDQ+PjJdPS0xLGFbU24+PjJdPS0xLGFbZisoNzIqSG58MCkrNDg+PjJdPVJlO2JyZWFrfTE9PSgwfGFbZisoNzIqSGV8MCkr''@;'; + put 'put ''NjQ+PjJdKT8oYVtmKyg3MipSZXwwKSs0MD4+Ml09SG4sYVtTbj4+Ml09LTEsYVtmKyg3MipSZXwwKSs0ND4+Ml09ayxhW2YrKDcyKigwfGFbZ2U+PjJdKXwwKSs0OD4+Ml09SGUsRz1SZSxEPUhuKTooYVtmKyg3MipSZXwwKSs0ND4+Ml09LTEsYVsoYmU9ZisoNzIqUmV8MCkrNDB8MCk+PjJd''@;'; + put 'put ''PWFbU24+PjJdLGFbU24+PjJdPUQ9MHxhW2dlPj4yXSxhW2dlPj4yXT1rLGFbZisoNzIqa3wwKSs0OD4+Ml09SGUsRz1IZSxrPTB8YVtiZT4+Ml0pLGFbZisoNzIqRHwwKSs0OD4+Ml09RyxhW2YrKDcyKmt8MCkrNDg+PjJdPVJlLGFbZisoNzIqUmV8MCkrNjA+PjJdPTAsYVtwZT4+Ml09MH1l''@;'; + put 'put ''bHNlIHN0PTc3fXdoaWxlKDApO2Rve2lmKDc3PT0oMHxzdCkpe2lmKHN0PTAsRD1mKyg3MiprfDApKzQ4fDAsaz1mKyg3MiprfDApKzUyfDAsKDB8KEc9MHxhW0Q+PjJdKSk+MCYmKDB8YVtrPj4yXSk+MCl7aWYoKDB8KGs9MHxhW2YrKDcyKkd8MCkrND4+Ml0pKT4wJiYwPT0oMHx5NihrLGMs''@;'; + put 'put ''THIpKSl7YVtmKyg3MipSZXwwKSs0ND4+Ml09LTEsYVtmKyg3MipIZXwwKSs0ND4+Ml09LTEsYVtnZT4+Ml09LTEsYVtmKyg3MiooMHxhW2YrKDcyKlJlfDApKzQwPj4yXSl8MCkrNTI+PjJdPVJlO2JyZWFrfWFbZisoNzIqSGV8MCkrNDQ+PjJdPS0xLGFbZisoNzIqUmV8MCkrNDQ+PjJdPS0x''@;'; + put 'put ''LGFbZisoNzIqUmV8MCkrNDA+PjJdPS0xLGFbZisoNzIqKDB8YVtnZT4+Ml0pfDApKzQ4Pj4yXT1IZTticmVha31hW0Q+PjJdPUhlLGFbaz4+Ml09UmV9fXdoaWxlKDApO2lmKCtlbygrKCtfW09lPj4zXS0rX1tTdD4+M10pKTw9MWUtNyYmV2UmK2VvKCsoK19bTGU+PjNdLStfW290Pj4zXSkp''@;'; + put 'put ''PD0xZS03KXsoMHwoaz0wfGFbVmU+PjJdKSk+MCYmMCE9KDB8eTYoayxjLERyKSk/KGFbZisoNzIqKDB8YVtNPj4yXSl8MCkrNDA+PjJdPUhlLEQ9ZisoNzIqUmV8MCkrNTJ8MCxrPVJlKTooYVtmKyg3MiooMHxhW2YrKDcyKlJlfDApKzUyPj4yXSl8MCkrNDQ+PjJdPVJlLEQ9TSxrPUhlKSxh''@;'; + put 'put ''W0Q+PjJdPS0xLGFbZisoNzIqa3wwKSs0OD4+Ml09LTEsaz0wfGFbTT4+Ml07YnJlYWt9Rz1mKyg3Miooaz0wfGFbTT4+Ml0pfDApKzQ0fDAsKDB8KEQ9MHxhWyhNPWYrKDcyKmt8MCkrNDB8MCk+PjJdKSk+MCYmKEhyPSgwfEQpPT0oMHxIZSksKDB8KHVyPTB8YVtHPj4yXSkpPjApJiYoYVtm''@;'; + put 'put ''Kyg3MiprfDApKzYwPj4yXT1Icj91cjpELGFbZisoNzIqa3wwKSs2ND4+Ml09SHI/MToyKSxhW00+PjJdPUhlLGFbRz4+Ml09UmV9ZWxzZXtpZighayl7K2VvKCsoSz0odz0rX1tPZT4+M10pLShiPStfW0V0Pj4zXSkpKTw9MWUtNz9nZT0rX1tMZT4+M10+K19bRHI+PjNdOihfW3FlPj4zXT13''@;'; + put 'put ''LF9bSnI+PjNdPUsvKCtfW2wwPj4zXS1iKSooK19bTHI+PjNdLSh3PStfW0RyPj4zXSkpK3csZ2U9MCE9KDB8b0coSnIsTGUpKSksaz0wfGFbKHBlPWYrKDcyKkhlfDApKzQwfDApPj4yXTtkb3tpZigoMHxrKT4wJiYoMHwoZnI9MHxhWyhFcj1mKyg3MipIZXwwKSs0NHwwKT4+Ml0pKT4wKXtp''@;'; + put 'put ''ZigoMHwoaz0wfGFbKEc9ZisoNzIqSGV8MCkrNjB8MCk+PjJdKSk8PTApe2FbZisoNzIqUmV8MCkrNDA+PjJdPWZyLGFbZisoNzIqUmV8MCkrNDQ+PjJdPS0xLGFbRXI+PjJdPS0xLGFbZisoNzIqZnJ8MCkrNDg+PjJdPVJlO2JyZWFrfTE9PSgwfGFbZisoNzIqSGV8MCkrNjQ+PjJdKT8oYVtm''@;'; + put 'put ''Kyg3MipSZXwwKSs0MD4+Ml09ZnIsYVtFcj4+Ml09LTEsYVtmKyg3MipSZXwwKSs0ND4+Ml09ayxhW2YrKDcyKigwfGFbcGU+PjJdKXwwKSs0OD4+Ml09SGUsRD1SZSxNPWZyKTooYVtmKyg3MipSZXwwKSs0ND4+Ml09LTEsYVsoT2k9ZisoNzIqUmV8MCkrNDB8MCk+PjJdPWFbRXI+PjJdLGFb''@;'; + put 'put ''RXI+PjJdPU09MHxhW3BlPj4yXSxhW3BlPj4yXT1rLGFbZisoNzIqa3wwKSs0OD4+Ml09SGUsRD1IZSxrPTB8YVtPaT4+Ml0pLGFbZisoNzIqTXwwKSs0OD4+Ml09RCxhW2YrKDcyKmt8MCkrNDg+PjJdPVJlLGFbZisoNzIqUmV8MCkrNjA+PjJdPTAsYVtHPj4yXT0wfWVsc2Ugc3Q9MTA2fXdo''@;'; + put 'put ''aWxlKDApO2Rve2lmKDEwNj09KDB8c3QpKXtpZihzdD0wLE09ZisoNzIqa3wwKSs0OHwwLGs9ZisoNzIqa3wwKSs1MnwwLCgwfChEPTB8YVtNPj4yXSkpPjAmJigwfGFbaz4+Ml0pPjApe2lmKCgwfChrPTB8YVtmKyg3MipEfDApKzQ+PjJdKSk+MCYmMD09KDB8eTYoayxjLExyKSkpe2FbZiso''@;'; + put 'put ''NzIqUmV8MCkrNDQ+PjJdPS0xLGFbZisoNzIqSGV8MCkrNDQ+PjJdPS0xLGFbcGU+PjJdPS0xLGFbZisoNzIqKDB8YVtmKyg3MipSZXwwKSs0MD4+Ml0pfDApKzUyPj4yXT1SZTticmVha31hW2YrKDcyKkhlfDApKzQ0Pj4yXT0tMSxhW2YrKDcyKlJlfDApKzQ0Pj4yXT0tMSxhW2YrKDcyKlJl''@;'; + put 'put ''fDApKzQwPj4yXT0tMSxhW2YrKDcyKigwfGFbcGU+PjJdKXwwKSs0OD4+Ml09SGU7YnJlYWt9YVtNPj4yXT1IZSxhW2s+PjJdPVJlfX13aGlsZSgwKTsrZW8oKygrX1tPZT4+M10tK19bU3Q+PjNdKSk8PTFlLTcmJldlJitlbygrKCtfW0xlPj4zXS0rX1tvdD4+M10pKTw9MWUtNz8oYVtmKyg3''@;'; + put 'put ''Miooaz0wfGFbYmU+PjJdKXwwKSs0MD4+Ml09SGUsYVtmKyg3MiprfDApKzQ0Pj4yXT0tMSxhW2YrKDcyKihPaT0wfGFbKGs9ZisoNzIqSGV8MCkrNTJ8MCk+PjJdKXwwKSs0MD4+Ml09UmUsYVtmKyg3MipPaXwwKSs0ND4+Ml09LTEsYVtmKyg3MipSZXwwKSs0OD4+Ml09T2ksYVtmKyg3MipS''@;'; + put 'put ''ZXwwKSs1Mj4+Ml09LTEsYVtrPj4yXT0tMSxrPS0xKTpzdD0xMTY7ZG97aWYoMTE2PT0oMHxzdCkpe2lmKHN0PTAsYVtmKyg3Miooaz0wfGFbYmU+PjJdKXwwKSs0MD4+Ml09SGUsTT1mKyg3MiprfDApKzQ0fDAsZ2Upe2FbTT4+Ml09UmUsYVtmKyg3MiooTGU9MHxhWyhPaT1mKyg3MipIZXww''@;'; + put 'put ''KSs1MnwwKT4+Ml0pfDApKzQwPj4yXT1SZSxhW2YrKDcyKkxlfDApKzQ0Pj4yXT0tMSxhW09pPj4yXT0tMTticmVha31hW00+PjJdPS0xLGFbZisoNzIqKE9pPTB8YVsoaz1mKyg3MipIZXwwKSs1MnwwKT4+Ml0pfDApKzQwPj4yXT1IZSxhW2YrKDcyKk9pfDApKzQ0Pj4yXT1SZSxhW2YrKDcy''@;'; + put 'put ''KlJlfDApKzQ4Pj4yXT1PaSxhW2YrKDcyKlJlfDApKzUyPj4yXT0tMSxrPTB8YVtrPj4yXTticmVha319d2hpbGUoMCk7YnJlYWt9az0wfGFbKGdlPWYrKDcyKkhlfDApKzQwfDApPj4yXTtkb3tpZigoMHxrKT4wJiYoMHwoY3Q9MHxhWyhadD1mKyg3MipIZXwwKSs0NHwwKT4+Ml0pKT4wKXtp''@;'; + put 'put ''ZigoMHwoaz0wfGFbKHBlPWYrKDcyKkhlfDApKzYwfDApPj4yXSkpPD0wKXthW2YrKDcyKlJlfDApKzQwPj4yXT1jdCxhW2YrKDcyKlJlfDApKzQ0Pj4yXT0tMSxhW1p0Pj4yXT0tMSxhW2YrKDcyKmN0fDApKzQ4Pj4yXT1SZTticmVha30xPT0oMHxhW2YrKDcyKkhlfDApKzY0Pj4yXSk/KGFb''@;'; + put 'put ''ZisoNzIqUmV8MCkrNDA+PjJdPWN0LGFbWnQ+PjJdPS0xLGFbZisoNzIqUmV8MCkrNDQ+PjJdPWssYVtmKyg3MiooMHxhW2dlPj4yXSl8MCkrNDg+PjJdPUhlLEc9UmUsRD1jdCk6KGFbZisoNzIqUmV8MCkrNDQ+PjJdPS0xLGFbKE9pPWYrKDcyKlJlfDApKzQwfDApPj4yXT1hW1p0Pj4yXSxh''@;'; + put 'put ''W1p0Pj4yXT1EPTB8YVtnZT4+Ml0sYVtnZT4+Ml09ayxhW2YrKDcyKmt8MCkrNDg+PjJdPUhlLEc9SGUsaz0wfGFbT2k+PjJdKSxhW2YrKDcyKkR8MCkrNDg+PjJdPUcsYVtmKyg3MiprfDApKzQ4Pj4yXT1SZSxhW2YrKDcyKlJlfDApKzYwPj4yXT0wLGFbcGU+PjJdPTB9ZWxzZSBzdD01MX13''@;'; + put 'put ''aGlsZSgwKTtkb3tpZig1MT09KDB8c3QpKXtpZihzdD0wLEQ9ZisoNzIqa3wwKSs0OHwwLGs9ZisoNzIqa3wwKSs1MnwwLCgwfChHPTB8YVtEPj4yXSkpPjAmJigwfGFbaz4+Ml0pPjApe2lmKCgwfChrPTB8YVtmKyg3MipHfDApKzQ+PjJdKSk+MCYmMD09KDB8eTYoayxjLExyKSkpe2FbZiso''@;'; + put 'put ''NzIqUmV8MCkrNDQ+PjJdPS0xLGFbZisoNzIqSGV8MCkrNDQ+PjJdPS0xLGFbZ2U+PjJdPS0xLGFbZisoNzIqKDB8YVtmKyg3MipSZXwwKSs0MD4+Ml0pfDApKzUyPj4yXT1SZTticmVha31hW2YrKDcyKkhlfDApKzQ0Pj4yXT0tMSxhW2YrKDcyKlJlfDApKzQ0Pj4yXT0tMSxhW2YrKDcyKlJl''@;'; + put 'put ''fDApKzQwPj4yXT0tMSxhW2YrKDcyKigwfGFbZ2U+PjJdKXwwKSs0OD4+Ml09SGU7YnJlYWt9YVtEPj4yXT1IZSxhW2s+PjJdPVJlfX13aGlsZSgwKTtpZigrZW8oKygrX1tPZT4+M10tK19bU3Q+PjNdKSk8PTFlLTcmJldlJitlbygrKCtfW0xlPj4zXS0rX1tvdD4+M10pKTw9MWUtNyl7KDB8''@;'; + put 'put ''KGs9MHxhW1ZlPj4yXSkpPjAmJjAhPSgwfHk2KGssYyxEcikpPyhhW2YrKDcyKigwfGFbYmU+PjJdKXwwKSs0MD4+Ml09SGUsTT1mKyg3MipSZXwwKSs1MnwwLGs9UmUpOihhW2YrKDcyKigwfGFbZisoNzIqUmV8MCkrNDg+PjJdKXwwKSs0ND4+Ml09UmUsaz1IZSksYVtNPj4yXT0tMSxhW2Yr''@;'; + put 'put ''KDcyKmt8MCkrNDg+PjJdPS0xLGs9MHxhW2JlPj4yXTticmVha31HPWYrKDcyKihrPTB8YVtiZT4+Ml0pfDApKzQ0fDAsKDB8KEQ9MHxhWyhNPWYrKDcyKmt8MCkrNDB8MCk+PjJdKSk+MCYmKGFuPSgwfEQpPT0oMHxIZSksKDB8KGJ0PTB8YVtHPj4yXSkpPjApJiYoYVtmKyg3MiprfDApKzYw''@;'; + put 'put ''Pj4yXT1hbj9idDpELGFbZisoNzIqa3wwKSs2ND4+Ml09YW4/MToyKSxhW00+PjJdPUhlLGFbRz4+Ml09UmV9fXdoaWxlKDApO2lmKGFbbnQ+PjJdPWwsYVtmKyg3MipIZXwwKSs0Pj4yXT1sLCEoKDB8ayk+MCkpYnJlYWsgZTtIZT1rfUN1KDEzODQyNCwxOSwxLDB8YVsxNTcxMl0pfWVsc2Ug''@;'; + put 'put ''QT0wLG09MH13aGlsZSgwKTtIYihsLGt0LFIsMSxmLHApLEhiKGwsQSxtLDIsZixwKSxhW2MrKDU2Kmx8MCkrMzI+PjJdPTEsbGU9Vml9ZnVuY3Rpb24gRmIobCxjLGYscCl7Znw9MCxwfD0wO3ZhciBtPTAsQT0wLHc9MDswfGFbKGN8PTApKyg1NioobHw9MCl8MCkrMzI+PjJdfHwoYVsodz1j''@;'; + put 'put ''Kyg1NipsfDApKzM2fDApPj4yXT1hW2YrKDcyKigwfEg0KG09YysoNTYqbHwwKXwwLEE9YysoNTYqbHwwKSsxNnwwLDB8YVt3Pj4yXSxjLHApKXwwKSs1Nj4+Ml0sYVsobD1jKyg1NipsfDApKzQwfDApPj4yXT1hW2YrKDcyKigwfEg0KEEsbSwwfGFbbD4+Ml0sYyxwKSl8MCkrNTY+PjJdKX1m''@;'; + put 'put ''dW5jdGlvbiBINChsLGMsZixwLG0pe2Z8PTAscHw9MCxtfD0wO3ZhciBHLHBlLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxLPTAsZ2U9MDtHPTgrKGx8PTApfDAscGU9OCsoY3w9MCl8MDtlOmZvcig7Oyl7dDpkb3tzd2l0Y2goMHxhW20rKDQwKmZ8MCk+PjJdKXtjYXNlIDM6Z2U9Mzti''@;'; + put 'put ''cmVhayBlO2Nhc2UgMjpBPStfW0c+PjNdLHc9bSsoNDAqZnwwKSs4fDAsaz0xZS03KyhiPStfW20rKDQwKmZ8MCkrMTY+PjNdKTtkb3tpZighKEE+aykpe2lmKCEoQTwoTT1iKy0xZS03KSkmJitfW2w+PjNdPitfW3c+PjNdKWJyZWFrO2lmKCtlbygrKEEtYikpPD0xZS03JiYrZW8oKygrX1ts''@;'; + put 'put ''Pj4zXS0oRD0rX1t3Pj4zXSkpKTw9MWUtNyl7QT0rX1twZT4+M107ZG97aWYoIShBPmspKXtpZighKEE8TSkmJitfW2M+PjNdPkQpYnJlYWs7Zj1tKyg0MCpmfDApKzMyfDA7YnJlYWsgdH19d2hpbGUoMCk7Zj1tKyg0MCpmfDApKzM2fDA7YnJlYWsgdH1mPW0rKDQwKmZ8MCkrMzJ8MDticmVh''@;'; + put 'put ''ayB0fX13aGlsZSgwKTtmPW0rKDQwKmZ8MCkrMzZ8MDticmVhaztjYXNlIDE6K2VvKCsoKEE9K19bRz4+M10pLStfW3ArKDU2Kih3PTB8YVttKyg0MCpmfDApKzQ+PjJdKXwwKSs4Pj4zXSkpPD0xZS03JiYrZW8oKygoUj0rX1tsPj4zXSktK19bcCsoNTYqd3wwKT4+M10pKTw9MWUtNz9iPVI6''@;'; + put 'put ''Z2U9MTk7ZG97aWYoMTk9PSgwfGdlKSl7aWYoZ2U9MCwrZW8oKyhBLStfW3ArKDU2Knd8MCkrMjQ+PjNdKSk8PTFlLTcmJitlbygrKChLPStfW2w+PjNdKS0rX1twKyg1Nip3fDApKzE2Pj4zXSkpPD0xZS03KXtiPUs7YnJlYWt9aWYoMHx5Nih3LHAsbCkpe2Y9bSsoNDAqZnwwKSszMnwwO2Jy''@;'; + put 'put ''ZWFrIHR9Zj1tKyg0MCpmfDApKzM2fDA7YnJlYWsgdH19d2hpbGUoMCk7aWYoK2VvKCsoQS0rX1twZT4+M10pKTw9MWUtNyl7aWYoK19bYz4+M108Yil7Zj1tKyg0MCpmfDApKzMyfDA7YnJlYWsgdH1mPW0rKDQwKmZ8MCkrMzZ8MDticmVhayB0fWlmKDB8eTYodyxwLGMpKXtmPW0rKDQwKmZ8''@;'; + put 'put ''MCkrMzJ8MDticmVhayB0fWY9bSsoNDAqZnwwKSszNnwwO2JyZWFrIHQ7ZGVmYXVsdDpnZT0zMTticmVhayBlfX13aGlsZSgwKTtmPTB8YVtmPj4yXX1yZXR1cm4gMz09KDB8Z2UpPzB8YVttKyg0MCpmfDApKzI0Pj4yXTooMzE9PSgwfGdlKSYmKEN1KDEzODM1OCwzNSwxLDB8YVsxNTcxMl0p''@;'; + put 'put ''LFByKDEzODM5NCwxMzgzOTYsMzQ5LDEzODQwOCkpLDApfWZ1bmN0aW9uIHk2KGwsYyxmKXtmfD0wO3ZhciBtLEEsdyxiLHA9MCxrPTAsTT0wO0E9KGN8PTApKyg1NioobHw9MCl8MCkrMTZ8MCx3PStfW2MrKDU2Kmx8MCkrMjQ+PjNdLGI9YysoNTYqbHwwKXwwLG09K19bYysoNTYqbHwwKSs4''@;'; + put 'put ''Pj4zXTtkb3tpZighKHc+bSsxZS03KSl7aWYoISh3PG0rLTFlLTcpJiYrX1tBPj4zXT4rX1tiPj4zXSl7az00O2JyZWFrfWlmKCtlbygrKHctKHA9K19bZis4Pj4zXSkpKTw9MWUtNyl7cD0rX1tmPj4zXTwrX1tBPj4zXT8xOi0xO2JyZWFrfWlmKCtlbygrKG0tcCkpPD0xZS03KXtwPStfW2Y+''@;'; + put 'put ''PjNdPCtfW2I+PjNdPzE6LTE7YnJlYWt9cD0oK19bYj4+M10tKE09K19bQT4+M10pKSoocC13KS0oK19bZj4+M10tTSkqKG0tdyk7YnJlYWt9az00fXdoaWxlKDApO2Rve2lmKDQ9PSgwfGspKXtpZigrZW8oKyh3LShwPStfW2YrOD4+M10pKSk8PTFlLTcpe3A9K19bZj4+M108K19bQT4+M10/''@;'; + put 'put ''MTotMTticmVha31pZigrZW8oKyhtLXApKTw9MWUtNyl7cD0rX1tmPj4zXTwrX1tiPj4zXT8xOi0xO2JyZWFrfXA9KCtfW0E+PjNdLShNPStfW2I+PjNdKSkqKHAtbSktKCtfW2Y+PjNdLU0pKih3LW0pO2JyZWFrfX13aGlsZSgwKTtyZXR1cm4gcD4wfDB9ZnVuY3Rpb24gdDUobCxjLGYpe3Jl''@;'; + put 'put ''dHVybiBsfD0wLDB8YVsoY3w9MCkrKDU2KigwfGFbKDE9PSgwfChmfD0wKSk/YysoNTYqbHwwKSs0OHwwOmMrKDU2Kmx8MCkrNDR8MCk+PjJdKXwwKSszMj4+Ml19ZnVuY3Rpb24gdzYobCl7bHw9MDt2YXIgYyxmLHA9MDtyZXR1cm4gcD1sZSxsZT1sZSsxNnwwLGY9cCwoMHwoYz0wfGFbNDcz''@;'; + put 'put ''OTVdKSk8KDB8YVs0NzM5NF0pPyhhW2wrKDcyKmN8MCk+PjJdPS0xLGFbbCsoNzIqY3wwKSs0Pj4yXT0tMSxhW2wrKDcyKmN8MCkrNjg+PjJdPTEsYVs0NzM5NV09YysxLGxlPXAsMHxjKToocD0wfGFbMTU3MTJdLGFbZj4+Ml09YyxUMChwLDEzODQ4MyxmKSxQcigxMzgzOTQsMTM4Mzk2LDg4''@;'; + put 'put ''LDEzODUyMSksMCl9ZnVuY3Rpb24gd2YoKXt2YXIgbDtyZXR1cm4oMHwobD0wfGFbNDczOTZdKSk8KDB8YVs0NzM5M10pPyhhWzQ3Mzk2XT1sKzEsMHxsKTooQ3UoMTM4NDQ0LDMwLDEsMHxhWzE1NzEyXSksUHIoMTM4Mzk0LDEzODM5Niw3MiwxMzg0NzUpLDApfWZ1bmN0aW9uIERFKGwsYyl7''@;'; + put 'put ''dmFyIGYscDtyZXR1cm4gMHwoKGY9K19bOCsobHw9MCk+PjNdKT4xZS03KyhwPStfWzgrKGN8PTApPj4zXSk/MTpmPHArLTFlLTc/MDorX1tsPj4zXT49K19bYz4+M10mMSl9ZnVuY3Rpb24gb0cobCxjKXt2YXIgZixwO3JldHVybiAwfCgoZj0rX1s4KyhsfD0wKT4+M10pPChwPStfWzgrKGN8''@;'; + put 'put ''PTApPj4zXSktMWUtNz8xOmY+cCsxZS03PzA6K19bbD4+M108K19bYz4+M10mMSl9ZnVuY3Rpb24gSGIobCxjLGYscCxtLEEpe2x8PTAsY3w9MCxBfD0wO3ZhciBwZSxnZSx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAsSz0wLGJlPTA7Z2U9KG18PTApKyg3MiooZnw9MCl8MCkrMjR8MCxw''@;'; + put 'put ''ZT0xPT0oMHwocHw9MCkpO2U6Zm9yKDtLPW0rKDcyKmN8MCkrMjR8MCxrPW0rKDcyKmN8MCkrNDh8MCxNPW0rKDcyKmN8MCkrNTJ8MCxEPW0rKDcyKmN8MCl8MCxSPW0rKDcyKmN8MCkrNHwwLEc9bSsoNzIqY3wwKSs1NnwwLCEoKDB8Yyk8PTApOylmb3IoOzspe2lmKCEoMHxERShLLGdlKSkp''@;'; + put 'put ''YnJlYWsgZTtwPSgwfChmPTB8YVtrPj4yXSkpPjA7ZG97aWYocGUpe2lmKHAmJigwfGFbbSsoNzIqZnwwKSs0Pj4yXSk9PSgwfGwpKWJyZWFrO2lmKCgwfChmPTB8YVtNPj4yXSkpPD0wKXtjPWY7Y29udGludWUgZX1pZigoMHxhW20rKDcyKmZ8MCkrND4+Ml0pIT0oMHxsKSl7Yz1mO2NvbnRp''@;'; + put 'put ''bnVlIGV9fWVsc2V7aWYocCYmKDB8YVttKyg3MipmfDApPj4yXSk9PSgwfGwpKWJyZWFrO2lmKCgwfChmPTB8YVtNPj4yXSkpPD0wKXtjPWY7Y29udGludWUgZX1pZigoMHxhW20rKDcyKmZ8MCk+PjJdKSE9KDB8bCkpe2M9Zjtjb250aW51ZSBlfX19d2hpbGUoMCk7aWYoKDB8YVtEPj4yXSkh''@;'; + put 'put ''PSgwfGFbbSsoNzIqZnwwKT4+Ml0pKXtjPWY7Y29udGludWUgZX1pZigoMHxhW1I+PjJdKSE9KDB8YVttKyg3MipmfDApKzQ+PjJdKSl7Yz1mO2NvbnRpbnVlIGV9Yj0wfGFbRz4+Ml0sKDB8YVsodz1BKyg0MCoocD0wfGFbQSsoNDAqKGJlPTB8YVttKyg3MipmfDApKzU2Pj4yXSl8MCkrMjg+''@;'; + put 'put ''PjJdKXwwKSszMnwwKT4+Ml0pPT0oMHxiZSk/YVt3Pj4yXT1iOmFbQSsoNDAqcHwwKSszNj4+Ml09YixhW2s+PjJdPXA9MHxhW20rKDcyKmZ8MCkrNDg+PjJdO2Rve2lmKCgwfHApPjApe2lmKCgwfGFbKHc9bSsoNzIqcHwwKSs0MHwwKT4+Ml0pPT0oMHxmKSl7YVt3Pj4yXT1jO2JyZWFrfSgw''@;'; + put 'put ''fGFbKHA9bSsoNzIqcHwwKSs0NHwwKT4+Ml0pPT0oMHxmKSYmKGFbcD4+Ml09Yyl9fXdoaWxlKDApO2FbTT4+Ml09cD0wfGFbbSsoNzIqZnwwKSs1Mj4+Ml07ZG97aWYoKDB8cCk+MCl7aWYoKDB8YVsodz1tKyg3MipwfDApKzQwfDApPj4yXSk9PSgwfGYpKXthW3c+PjJdPWM7YnJlYWt9KDB8''@;'; + put 'put ''YVsocD1tKyg3MipwfDApKzQ0fDApPj4yXSk9PSgwfGYpJiYoYVtwPj4yXT1jKX19d2hpbGUoMCk7YVtLPj4yXT1hWyhiZT1tKyg3MipmfDApKzI0fDApPj4yXSxhW0srND4+Ml09YVtiZSs0Pj4yXSxhW0srOD4+Ml09YVtiZSs4Pj4yXSxhW0srMTI+PjJdPWFbYmUrMTI+PjJdLGFbbSsoNzIq''@;'; + put 'put ''ZnwwKSs2OD4+Ml09Mn19ZnVuY3Rpb24gT0UobCxjKXtyZXR1cm4gbHw9MCwoY3w9MCkmJihjPTB8ZnVuY3Rpb24gTmIobCl7dmFyIGM7cmV0dXJuIGx8PTAsMHwoYz0wfHZyKDgpKSYmKGFbYys0Pj4yXT1sLGFbYz4+Ml09MCksMHxjfShjKSxhW2M+PjJdPWwsbD1jKSwwfGx9ZnVuY3Rpb24g''@;'; + put 'put ''VmIoKXt2YXIgbDtyZXR1cm4gMHwobD0wfHZyKDE5OTIpKSYmKGFbbD4+Ml09MHxmdW5jdGlvbiBkQihsKXt2YXIgYztyZXR1cm4gYz0wfHo5KGx8PTApLGFbYys0Pj4yXT0wLGFbKGw9bCsxOTcyfDApPj4yXT0xKygwfGFbbD4+Ml0pLDB8Y30obCkpLDB8bH1mdW5jdGlvbiBqYihsKXtyZXR1''@;'; + put 'put ''cm4gWmIobHw9MCwwfGFbbD4+Ml0pLEZ0KDB8YVtsPj4yXSksRnQobCksMH1mdW5jdGlvbiBaYihsLGMpe2N8PTA7dmFyIEEsdyxiLGY9MCxwPTAsbT0wO0E9MTk4MCsobHw9MCl8MCx3PWwrMTkxMnwwLGI9bCsxOTM2fDA7ZTpkb3tpZigoMHxhW2MrND4+Ml0pPjApZm9yKGY9MDs7KXtpZig2''@;'; + put 'put ''ND09KDB8ZikpYnJlYWsgZTswfChtPTB8YVsocD1jKzgrKDIwKmZ8MCkrMTZ8MCk+PjJdKSYmKFpiKGwsbSksRnQoMHxhW3A+PjJdKSxXYihjLGYpLGFbQT4+Ml09KDB8YVtBPj4yXSktMSwwfGFbdz4+Ml0pJiYoYVtiPj4yXT0xKygwfGFbYj4+Ml0pKSxmPWYrMXwwfWVsc2UgZm9yKGY9MDs7''@;'; + put 'put ''KXtpZig2ND09KDB8ZikpYnJlYWsgZTswfGFbYys4KygyMCpmfDApKzE2Pj4yXSYmKFdiKGMsZiksYVtBPj4yXT0oMHxhW0E+PjJdKS0xLDB8YVt3Pj4yXSkmJihhW2I+PjJdPTErKDB8YVtiPj4yXSkpLGY9ZisxfDB9fXdoaWxlKDApfWZ1bmN0aW9uIE40KGwsYyxmKXtsfD0wLGZ8PTA7dmFy''@;'; + put 'put ''IHA9MCxtPTAsQT0wLHc9MCxiPTA7KGN8PTApfHxQcigxMzg4NzksMTM4NTI5LDE5NCwxMzg1MzcpLCgwfChwPTB8YVtjKzQ+PjJdKSk8PS0xJiZQcigxMzg1NDksMTM4NTI5LDE5NSwxMzg1MzcpLGZ8fFByKDEzODgyMSwxMzg1MjksMTk2LDEzODUzNyksYVsoYj1sKzE5NTJ8MCk+PjJdPTEr''@;'; + put 'put ''KDB8YVtiPj4yXSk7ZTpkb3tpZigoMHxwKT4wKWZvcihiPTAscD0wOzspe2lmKDY0PT0oMHxiKSlicmVhayBlO2lmKDAhPSgwfGFbKG09Yys4KygyMCpifDApKzE2fDApPj4yXSkmJjAhPSgwfFliKGYsYys4KygyMCpifDApfDApKSlpZihBPTB8TjQobCwwfGFbbT4+Ml0sZikscCl7Zm9yKG09''@;'; + put 'put ''cDt3PTB8YVttPj4yXTspbT13O2FbbT4+Ml09QX1lbHNlIHA9QTtiPWIrMXwwfWVsc2UgZm9yKEE9MCxwPTA7Oyl7aWYoNjQ9PSgwfEEpKWJyZWFrIGU7bT1jKzgrKDIwKkF8MCl8MCwwIT0oMHxhW2MrOCsoMjAqQXwwKSsxNj4+Ml0pJiYwIT0oMHxZYihmLG0pKSYmKHA9MHxPRShwLG0pKSxB''@;'; + put 'put ''PUErMXwwfX13aGlsZSgwKTtyZXR1cm4gMHxwfWZ1bmN0aW9uIHpiKGwsYyxmLHAsbSl7bHw9MCxjfD0wLGZ8PTAscHw9MCxtfD0wO3ZhciBNLEQsUixHLEssQT0wLHc9MCxiPTAsaz0wLHBlPTA7aWYoSz1sZSxsZT1sZSs2NHwwLEQ9SyszMnwwLFI9SysxNnwwLEc9SyxhWyhNPUsrNTJ8MCk+''@;'; + put 'put ''PjJdPTAsMCE9KDB8YykmMCE9KDB8cCl8fFByKDEzODczNSwxMzg1MjksMjQ3LDEzODU2MyksKDB8bSk+LTEmJigwfGFbNCsoaz0wfGFbcD4+Ml0pPj4yXSk+PSgwfG0pKXtmb3IoQT0wOyEoKDB8QSk+PTIpOyl7aWYoKDB8YVtjKyhBPDwyKT4+Ml0pPigwfGFbYysoQSsyPDwyKT4+Ml0pKXt3''@;'; + put 'put ''PTg7YnJlYWt9QT1BKzF8MH1yZXR1cm4gOD09KDB8dykmJlByKDEzODYxMCwxMzg1MjksMjUwLDEzODU2Myksdz0wfGFbKEE9bCsxOTA4fDApPj4yXSwwfGFbKGI9bCsxOTEyfDApPj4yXSYmKGFbKHBlPTB8dz9sKzE5MjR8MDpsKzE5MTZ8MCk+PjJdPTErKDB8YVtwZT4+Ml0pKSx3fHwoYVso''@;'; + put 'put ''cGU9bCsxOTY0fDApPj4yXT0xKygwfGFbcGU+PjJdKSksMHxHYihsLGMsZixrLE0sbSk/KDB8YVtiPj4yXSYmKGFbKHBlPTB8YVtBPj4yXT9sKzE5NDh8MDpsKzE5NDR8MCk+PjJdPTErKDB8YVtwZT4+Ml0pKSxBPTB8ejkobCksYVsocGU9bCsxOTc2fDApPj4yXT0xKygwfGFbcGU+PjJdKSxh''@;'; + put 'put ''W0ErND4+Ml09MSsoMHxhWzQrKHBlPTB8YVtwPj4yXSk+PjJdKSxHOShSLHBlKSxhW0Q+PjJdPWFbUj4+Ml0sYVtEKzQ+PjJdPWFbUis0Pj4yXSxhW0QrOD4+Ml09YVtSKzg+PjJdLGFbRCsxMj4+Ml09YVtSKzEyPj4yXSxhWyhwZT1EKzE2fDApPj4yXT1hW3A+PjJdLGI2KGwsRCxBLDApLEc5''@;'; + put 'put ''KEcsMHxhW00+PjJdKSxhW0Q+PjJdPWFbRz4+Ml0sYVtEKzQ+PjJdPWFbRys0Pj4yXSxhW0QrOD4+Ml09YVtHKzg+PjJdLGFbRCsxMj4+Ml09YVtHKzEyPj4yXSxhW3BlPj4yXT1hW00+PjJdLGI2KGwsRCxBLDApLGFbcD4+Ml09QSxhWyhBPWwrMTk4MHwwKT4+Ml09MisoMHxhW0E+PjJdKSxB''@;'; + put 'put ''PTEpOkE9MCxsZT1LLDB8QX1yZXR1cm4gUHIoMTM4NTc1LDEzODUyOSwyNDgsMTM4NTYzKSwwfWZ1bmN0aW9uIEdiKGwsYyxmLHAsbSxBKXtsfD0wLGN8PTAsZnw9MCxwfD0wLG18PTAsQXw9MDt2YXIgTSxELFIsRyxLLHBlLHc9MCxiPTAsaz0wO2lmKHBlPWxlLGxlPWxlKzgwfDAsRD1wZSs1''@;'; + put 'put ''MnwwLEc9cGUrMzJ8MCxLPXBlKzE2fDAsTT1wZSxhWyhSPXBlKzQ4fDApPj4yXT0wLDAhPSgwfGMpJjAhPSgwfHApJjAhPSgwfG0pfHxQcigxMzg2NTMsMTM4NTI5LDMxMSwxMzg2NjcpLCgwfEEpPi0xJiYoMHwodz0wfGFbKGI9cCs0fDApPj4yXSkpPj0oMHxBKSl7MHxhW2wrMTkxMj4+Ml0m''@;'; + put 'put ''JihhWyh3PTB8YVtsKzE5MDg+PjJdP2wrMTk0OHwwOmwrMTk0NHwwKT4+Ml09MSsoMHxhW3c+PjJdKSx3PTB8YVtiPj4yXSk7ZG97aWYoKDB8dyk+KDB8QSkpe2lmKHc9cCs4KygyMCooYj0wfFJFKGMscCkpfDApKzE2fDAsYj1wKzgrKDIwKmJ8MCl8MCwwfEdiKGwsYyxmLDB8YVt3Pj4yXSxS''@;'; + put 'put ''LEEpKXtHOShLLDB8YVt3Pj4yXSksYVtiPj4yXT1hW0s+PjJdLGFbYis0Pj4yXT1hW0srND4+Ml0sYVtiKzg+PjJdPWFbSys4Pj4yXSxhW2IrMTI+PjJdPWFbSysxMj4+Ml0sYVtEKzE2Pj4yXT1rPTB8YVtSPj4yXSxHOShNLGspLGFbRD4+Ml09YVtNPj4yXSxhW0QrND4+Ml09YVtNKzQ+PjJd''@;'; + put 'put ''LGFbRCs4Pj4yXT1hW00rOD4+Ml0sYVtEKzEyPj4yXT1hW00rMTI+PjJdLGFbKGs9bCsxOTgwfDApPj4yXT0xKygwfGFbaz4+Ml0pLGs9MHxiNihsLEQscCxtKTticmVha31JaChHLGMsYiksYVtiPj4yXT1hW0c+PjJdLGFbYis0Pj4yXT1hW0crND4+Ml0sYVtiKzg+PjJdPWFbRys4Pj4yXSxh''@;'; + put 'put ''W2IrMTI+PjJdPWFbRysxMj4+Ml0saz0wO2JyZWFrfWlmKCgwfHcpPT0oMHxBKSl7YVtEPj4yXT1hW2M+PjJdLGFbRCs0Pj4yXT1hW2MrND4+Ml0sYVtEKzg+PjJdPWFbYys4Pj4yXSxhW0QrMTI+PjJdPWFbYysxMj4+Ml0sYVtEKzE2Pj4yXT1mLGFbKGs9bCsxOTgwfDApPj4yXT0xKygwfGFb''@;'; + put 'put ''az4+Ml0pLGs9MHxiNihsLEQscCxtKTticmVha31QcigxMzg3MTIsMTM4NTI5LDM0MSwxMzg2NjcpfXdoaWxlKDApO3JldHVybiBsZT1wZSwwfGt9cmV0dXJuIFByKDEzODY4MCwxMzg1MjksMzEyLDEzODY2NyksMH1mdW5jdGlvbiB6OShsKXtyZXR1cm4gYVsobD0xOTY4KyhsfD0wKXwwKT4+''@;'; + put 'put ''Ml09MSsoMHxhW2w+PjJdKSxwQihsPTB8QjAoMTI4OCkpLDB8bH1mdW5jdGlvbiBwQihsKXt2YXIgYz0wO2ZvcihhWyhsfD0wKT4+Ml09MCxhW2wrND4+Ml09LTEsYz0wOzY0IT0oMHxjKTspQ20obCs4KygyMCpjfDApfDApLGM9YysxfDB9ZnVuY3Rpb24gQ20obCl7VzkobHw9MCksYVtsKzE2''@;'; + put 'put ''Pj4yXT0wfWZ1bmN0aW9uIEc5KGwsYyl7bHw9MDt2YXIgQSx3LGIsZj0wLHA9MCxtPTA7Zm9yKGI9bGUsbGU9bGUrMzJ8MCxBPWIrMTZ8MCx3PWIsKGN8PTApfHxQcigxMzg4NzksMTM4NzE4LDk5LDEzODcyNSksVzkoQSksZj0xLG09MDs2NCE9KDB8bSk7KXtkb3tpZigwfGFbYys4KygyMCpt''@;'; + put 'put ''fDApKzE2Pj4yXSl7aWYocD1jKzgrKDIwKm18MCl8MCxmKXthW0E+PjJdPWFbcD4+Ml0sYVtBKzQ+PjJdPWFbcCs0Pj4yXSxhW0ErOD4+Ml09YVtwKzg+PjJdLGFbQSsxMj4+Ml09YVtwKzEyPj4yXSxmPTA7YnJlYWt9SWgodyxBLHApLGFbQT4+Ml09YVt3Pj4yXSxhW0ErND4+Ml09YVt3KzQ+''@;'; + put 'put ''PjJdLGFbQSs4Pj4yXT1hW3crOD4+Ml0sYVtBKzEyPj4yXT1hW3crMTI+PjJdLGY9MDticmVha319d2hpbGUoMCk7bT1tKzF8MH1hW2w+PjJdPWFbQT4+Ml0sYVtsKzQ+PjJdPWFbQSs0Pj4yXSxhW2wrOD4+Ml09YVtBKzg+PjJdLGFbbCsxMj4+Ml09YVtBKzEyPj4yXSxsZT1ifWZ1bmN0aW9u''@;'; + put 'put ''IFJFKGwsYyl7dmFyIGIsayxNLGY9MCxwPTAsbT0wLEE9MCx3PTAsRD0wLFI9MCxHPTAsSz0wO2ZvcihNPWxlLGxlPWxlKzMyfDAsYj1NKzE2fDAsaz1NLDAhPSgwfChsfD0wKSkmMCE9KDB8KGN8PTApKXx8UHIoMTM4NzM1LDEzODcxOCwxMjUsMTM4NzQyKSxmPTAscD0wLG09MCxBPTEsdz0w''@;'; + put 'put ''OzY0IT0oMHx3KTspMHxhW2MrOCsoMjAqd3wwKSsxNj4+Ml0mJihLPTB8YmYoUj1jKzgrKDIwKnd8MCl8MCksSWgoayxsLFIpLGFbYj4+Ml09YVtrPj4yXSxhW2IrND4+Ml09YVtrKzQ+PjJdLGFbYis4Pj4yXT1hW2srOD4+Ml0sYVtiKzEyPj4yXT1hW2srMTI+PjJdLGY9KEc9KEQ9MCE9KDB8''@;'; + put 'put ''QSl8KDB8KFI9KDB8YmYoYikpLUt8MCkpPCgwfG0pKXwoMHxLKTwoMHxwKSYoMHxSKT09KDB8bSkpP3c6ZixwPUc/SzpwLG09Rz9SOm0sQT1EPzA6QSksdz13KzF8MDtyZXR1cm4gbGU9TSwwfGZ9ZnVuY3Rpb24gYjYobCxjLGYscCl7bHw9MCxmfD0wLHB8PTA7dmFyIG09MCxBPTAsdz0wOyhj''@;'; + put 'put ''fD0wKXx8UHIoMTM4OTAxLDEzODcxOCwxNjcsMTM4NzUzKSxmfHxQcigxMzg4NzksMTM4NzE4LDE2OCwxMzg3NTMpO2Rve2lmKCgwfGFbZj4+Ml0pPDY0KXtmb3IobD0wOzspe2lmKCgwfGwpPj02NCl7cD0xMDticmVha31pZighKDB8YVtmKzgrKDIwKmx8MCkrMTY+PjJdKSl7cD04O2JyZWFr''@;'; + put 'put ''fWw9bCsxfDB9aWYoOD09KDB8cCkpe2FbKG09Zis4KygyMCpsfDApfDApPj4yXT1hW2M+PjJdLGFbbSs0Pj4yXT1hW2MrND4+Ml0sYVttKzg+PjJdPWFbYys4Pj4yXSxhW20rMTI+PjJdPWFbYysxMj4+Ml0sYVttKzE2Pj4yXT1hW2MrMTY+PjJdLG09MCxBPWY7YnJlYWt9MTA9PSgwfHApJiZQ''@;'; + put 'put ''cigxMzg3NjMsMTM4NzE4LDE3OCwxMzg3NTMpfWVsc2V7aWYoMHxhW2wrMTkxMj4+Ml0mJihhWyh3PTB8YVtsKzE5MDg+PjJdP2wrMTk0OHwwOmwrMTk0NHwwKT4+Ml09MSsoMHxhW3c+PjJdKSkscCl7VWIobCxmLGMscCksbT0xLEE9MD09KDB8YVtmKzQ+PjJdKT9sKzE5NzJ8MDpsKzE5NzZ8''@;'; + put 'put ''MDticmVha31QcigxMzg3NzYsMTM4NzE4LDE4NywxMzg3NTMpfX13aGlsZSgwKTtyZXR1cm4gYVtBPj4yXT0xKygwfGFbQT4+Ml0pLDB8bX1mdW5jdGlvbiBXYihsLGMpe2lmKDAhPSgwfChsfD0wKSkmKGN8PTApPj4+MDw2NHx8UHIoMTM4NzgwLDEzODcxOCwyMDEsMTM4ODA4KSwwfGFbbCs4''@;'; + put 'put ''KygyMCpjfDApKzE2Pj4yXSlyZXR1cm4gQ20obCs4KygyMCpjfDApfDApLHZvaWQoYVtsPj4yXT0oMHxhW2w+PjJdKS0xKTtQcigxMzkzMDIsMTM4NzE4LDIwMiwxMzg4MDgpfWZ1bmN0aW9uIFc5KGwpe2x8PTA7dmFyIGM9MDtmb3IoYz0wOzQhPSgwfGMpOylhW2wrKGM8PDIpPj4yXT0wLGM9''@;'; + put 'put ''YysxfDB9ZnVuY3Rpb24gYmYobCl7dmFyIGM9MCxmPTA7KGx8PTApfHxQcigxMzg4MjEsMTM4ODIzLDEyOCwxMzg4MzUpO2U6ZG97aWYoKDB8YVtsPj4yXSk+KDB8YVtsKzg+PjJdKSljPTA7ZWxzZSBmb3IoYz0xLGY9MDs7KXtpZigyPT0oMHxmKSlicmVhayBlO2M9KDB8QXIoMHxhW2wrKGYr''@;'; + put 'put ''Mjw8Mik+PjJdLGMpKS0oMHxhW2wrKGY8PDIpPj4yXSl8MCxmPWYrMXwwfX13aGlsZSgwKTtyZXR1cm4gMHxjfWZ1bmN0aW9uIEloKGwsYyxmKXtsfD0wO3ZhciBtLEEscD0wLHc9MCxiPTAsaz0wO0E9bGUsbGU9bGUrMTZ8MCxtPUEsMCE9KDB8KGN8PTApKSYwIT0oMHwoZnw9MCkpfHxQcigx''@;'; + put 'put ''Mzg4NDQsMTM4ODIzLDE5NSwxMzg4NTIpO2Rve2lmKCgwfGFbYz4+Ml0pPigwfGFbYys4Pj4yXSkpYVtsPj4yXT1hW2Y+PjJdLGFbbCs0Pj4yXT1hW2YrND4+Ml0sYVtsKzg+PjJdPWFbZis4Pj4yXSxhW2wrMTI+PjJdPWFbZisxMj4+Ml07ZWxzZXtpZigoMHxhW2Y+PjJdKT4oMHxhW2YrOD4+''@;'; + put 'put ''Ml0pKXthW2w+PjJdPWFbYz4+Ml0sYVtsKzQ+PjJdPWFbYys0Pj4yXSxhW2wrOD4+Ml09YVtjKzg+PjJdLGFbbCsxMj4+Ml09YVtjKzEyPj4yXTticmVha31mb3IocD0wOzIhPSgwfHApOylhW20rKHA8PDIpPj4yXT0oMHwoaz0wfGFbYysocDw8Mik+PjJdKSk8KDB8KHc9MHxhW2YrKHA8PDIp''@;'; + put 'put ''Pj4yXSkpP2s6dyxhW20rKCh3PXArMnwwKTw8Mik+PjJdPSgwfChrPTB8YVtjKyh3PDwyKT4+Ml0pKT4oMHwoYj0wfGFbZisodzw8Mik+PjJdKSk/azpiLHA9cCsxfDA7YVtsPj4yXT1hW20+PjJdLGFbbCs0Pj4yXT1hW20rND4+Ml0sYVtsKzg+PjJdPWFbbSs4Pj4yXSxhW2wrMTI+PjJdPWFb''@;'; + put 'put ''bSsxMj4+Ml19fXdoaWxlKDApO2xlPUF9ZnVuY3Rpb24gWWIobCxjKXt2YXIgZj0wLHA9MDtmb3IoMCE9KDB8KGx8PTApKSYwIT0oMHwoY3w9MCkpP2Y9MDpQcigxMzg4NjQsMTM4ODIzLDIxNiwxMzg4NzEpOzspe2lmKCgwfGYpPj0yKXtmPTE7YnJlYWt9aWYoKDB8YVtsKyhmPDwyKT4+Ml0p''@;'; + put 'put ''PigwfGFbYysoKHA9ZisyfDApPDwyKT4+Ml0pKXtmPTA7YnJlYWt9aWYoKDB8YVtjKyhmPDwyKT4+Ml0pPigwfGFbbCsocDw8Mik+PjJdKSl7Zj0wO2JyZWFrfWY9ZisxfDB9cmV0dXJuIDB8Zn1mdW5jdGlvbiBVYihsLGMsZixwKXtsfD0wLGZ8PTAscHw9MDt2YXIgQSxtPTAsdz0wLGI9MDso''@;'; + put 'put ''Y3w9MCl8fFByKDEzODg3OSwxMzg4ODEsNDAsMTM4ODkxKSxmfHxQcigxMzg5MDEsMTM4ODgxLDQxLDEzODg5MSksMHxhWyhiPWwrMTkxMnwwKT4+Ml0mJihhWyh3PTB8YVtsKzE5MDg+PjJdP2wrMTkzMnwwOmwrMTkyOHwwKT4+Ml09MSsoMHxhW3c+PjJdKSksdz0wfGFbKEE9Yys0fDApPj4y''@;'; + put 'put ''XSxmdW5jdGlvbiBQRShsLGMsZil7bHw9MCxmfD0wO3ZhciBBLHcscD0wLG09MCxiPTAsaz0wO2Zvcih3PWxlLGxlPWxlKzE2fDAsQT13LChjfD0wKXx8UHIoMTM4ODc5LDEzODg4MSwxMDYsMTM5MjkwKSxmP3A9MDpQcigxMzg5MDEsMTM4ODgxLDEwNywxMzkyOTApOyEoKDB8cCk+PTY0KTsp''@;'; + put 'put ''e2lmKCEoMHxhW2MrOCsoMjAqcHwwKSsxNj4+Ml0pKXttPTc7YnJlYWt9YVsoYj1sKzQrKDIwKnB8MCl8MCk+PjJdPWFbKGs9Yys4KygyMCpwfDApfDApPj4yXSxhW2IrND4+Ml09YVtrKzQ+PjJdLGFbYis4Pj4yXT1hW2srOD4+Ml0sYVtiKzEyPj4yXT1hW2srMTI+PjJdLGFbYisxNj4+Ml09''@;'; + put 'put ''YVtrKzE2Pj4yXSxwPXArMXwwfWZvcig3PT0oMHxtKSYmUHIoMTM5MzAyLDEzODg4MSwxMTEsMTM5MjkwKSxwPWwrNHwwLGFbKGs9bCsxMjg0fDApPj4yXT1hW2Y+PjJdLGFbays0Pj4yXT1hW2YrND4+Ml0sYVtrKzg+PjJdPWFbZis4Pj4yXSxhW2srMTI+PjJdPWFbZisxMj4+Ml0sYVtrKzE2''@;'; + put 'put ''Pj4yXT1hW2YrMTY+PjJdLGFbKGY9bCsxMzA0fDApPj4yXT1hW3A+PjJdLGFbZis0Pj4yXT1hW3ArND4+Ml0sYVtmKzg+PjJdPWFbcCs4Pj4yXSxhW2YrMTI+PjJdPWFbcCsxMj4+Ml0scD0xOzY1IT0oMHxwKTspSWgoQSxmLGwrNCsoMjAqcHwwKXwwKSxhW2Y+PjJdPWFbQT4+Ml0sYVtmKzQ+''@;'; + put 'put ''PjJdPWFbQSs0Pj4yXSxhW2YrOD4+Ml09YVtBKzg+PjJdLGFbZisxMj4+Ml09YVtBKzEyPj4yXSxwPXArMXwwO2FbbCsxMzIwPj4yXT0wfGJmKGYpLHBCKGMpLGxlPXd9KGwsYyxmKSxmPWwrMTMyNHwwLGZ1bmN0aW9uIFFiKGwpe3ZhciBiLGssTSxELFIsRyxLLHBlLGJlLE9lLExlLGM9MCxm''@;'; + put 'put ''PTAscD0wLG09MCxBPTAsdz0wLGdlPTAsUmU9MDtmb3IoTGU9bGUsbGU9bGUrNDh8MCxiPUxlKzMyfDAsTT1MZSsxNnwwLEQ9TGUsZnVuY3Rpb24gZ0IobCl7dmFyIGYscCxtLGM9MDtmb3IoZj1sZSxsZT1sZSsxNnwwLHA9ZixhWzE4NDgrKGx8PTApPj4yXT0wLGFbbCsxODQ0Pj4yXT0wLGM9''@;'; + put 'put ''bCsxODUyfDAsbT1sKzE4Njh8MCxmdW5jdGlvbiBCRShsKXtsfD0wO3ZhciBmLHAsYz0wO2ZvcihwPWxlLGxlPWxlKzE2fDAsYVsoZj1wKT4+Ml09MSxhW2YrOD4+Ml09LTEsYz0xOzIhPSgwfGMpOylhW2YrKGMrMjw8Mik+PjJdPTAsYVtmKyhjPDwyKT4+Ml09MCxjPWMrMXwwO2FbbD4+Ml09''@;'; + put 'put ''YVtmPj4yXSxhW2wrND4+Ml09YVtmKzQ+PjJdLGFbbCs4Pj4yXT1hW2YrOD4+Ml0sYVtsKzEyPj4yXT1hW2YrMTI+PjJdLGxlPXB9KHApLGFbbT4+Ml09YVtwPj4yXSxhW20rND4+Ml09YVtwKzQ+PjJdLGFbbSs4Pj4yXT1hW3ArOD4+Ml0sYVttKzEyPj4yXT1hW3ArMTI+PjJdLGFbYz4+Ml09''@;'; + put 'put ''YVtwPj4yXSxhW2MrND4+Ml09YVtwKzQ+PjJdLGFbYys4Pj4yXT1hW3ArOD4+Ml0sYVtjKzEyPj4yXT1hW3ArMTI+PjJdLGFbbCsxODg4Pj4yXT0wLGFbbCsxODg0Pj4yXT0wLGM9MDs2NSE9KDB8Yyk7KWFbbCsxNTg0KyhjPDwyKT4+Ml09MCxhW2wrMTMyNCsoYzw8Mik+PjJdPS0xLGM9Yysx''@;'; + put 'put ''fDA7bGU9Zn0obHw9MCksZnVuY3Rpb24gRkUobCl7bHw9MDt2YXIgTSxELFIsRyxjPTAsZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLEs9MCxwZT0wLGdlPTA7Zm9yKEc9bGUsbGU9bGUrMzA0fDAsTT1HKzMyfDAsRD1HKzE2fDAsUj1HLGM9MDs2NSE9KDB8Yyk7KWFbTSsoYzw8Mik+PjJd''@;'; + put 'put ''PTB8YmYobCs0KygyMCpjfDApfDApLGM9YysxfDA7Yz0wLGY9MCxwPTAsQT0wO2U6Zm9yKDs2NCE9KDB8QSk7KWZvcihiPUErMXwwLGs9bCs0KygyMCpBfDApfDAsdz1NKyhBPDwyKXwwLG09Yjs7KXtpZig2NT09KDB8bSkpe0E9Yjtjb250aW51ZSBlfUloKFIsayxsKzQrKDIwKm18MCl8MCks''@;'; + put 'put ''YVtEPj4yXT1hW1I+PjJdLGFbRCs0Pj4yXT1hW1IrND4+Ml0sYVtEKzg+PjJdPWFbUis4Pj4yXSxhW0QrMTI+PjJdPWFbUisxMj4+Ml0sZ2U9KHBlPShLPShLPTB8YmYoRCkpLSgwfGFbdz4+Ml0pLSgwfGFbTSsobTw8Mik+PjJdKXwwKT4+PjA+cD4+PjApP206YyxtPW0rMXwwLGM9Z2UsZj1w''@;'; + put 'put ''ZT9BOmYscD1wZT9LOnB9WTkobCxmLDApLFk5KGwsYywxKSxsZT1HfShsKSxwZT1sKzE4NDR8MCxiZT1sKzE4NDh8MCxPZT1sKzE4OTJ8MCxSPWwrMTg1MnwwLEc9bCsxODg0fDAsSz1sKzE4Njh8MCxrPWwrMTg4OHwwLG09MCxwPTA7ISgoKGM9MHxhW2JlPj4yXSkrKGY9MHxhW3BlPj4yXSl8''@;'; + put 'put ''MCk+PTY1KTspe2lmKCEoKDB8Zik8KDB8KHc9NjUtKDB8YVtPZT4+Ml0pfDApKSYoMHxjKTwoMHx3KSkpe2dlPTEyO2JyZWFrfWZvcihBPS0xLHc9MDs2NSE9KDB8dyk7KTB8YVtsKzE1ODQrKHc8PDIpPj4yXT8oYz1BLGY9bSk6KEloKE0sUmU9bCs0KygyMCp3fDApfDAsUiksYVtiPj4yXT1h''@;'; + put 'put ''W00+PjJdLGFbYis0Pj4yXT1hW00rND4+Ml0sYVtiKzg+PjJdPWFbTSs4Pj4yXSxhW2IrMTI+PjJdPWFbTSsxMj4+Ml0sYz0wfGJmKGIpLGY9MHxhW0c+PjJdLEloKEQsUmUsSyksYVtiPj4yXT1hW0Q+PjJdLGFbYis0Pj4yXT1hW0QrND4+Ml0sYVtiKzg+PjJdPWFbRCs4Pj4yXSxhW2IrMTI+''@;'; + put 'put ''PjJdPWFbRCsxMj4+Ml0sYz0oZj0oMHwoYz0oUmU9MHxiZihiKSktKDB8YVtrPj4yXSkrKGYtYyl8MCkpPi0xKT9jOjAtY3wwLGY9MSYoMV5mKSwoMHxjKTw9KDB8QSk/KDB8Yyk9PSgwfEEpPyhjPUEsZj0oUmU9KDB8YVtsKzE4NDQrKGY8PDIpPj4yXSk8KDB8YVtsKzE4NDQrKG08PDIpPj4y''@;'; + put 'put ''XSkpP2Y6bSxwPVJlP3c6cCk6KGM9QSxmPW0pOnA9dyksQT1jLHc9dysxfDAsbT1mO1k5KGwscCxtKX1pZigxMj09KDB8Z2UpKXtmb3IoYz0oMHxmKT49KDY1LSgwfGFbT2U+PjJdKXwwKSYxLGY9MDs2NSE9KDB8Zik7KTB8YVtsKzE1ODQrKGY8PDIpPj4yXXx8WTkobCxmLGMpLGY9ZisxfDA7''@;'; + put 'put ''Zj0wfGFbcGU+PjJdLGM9MHxhW2JlPj4yXX02NSE9KGMrZnwwKSYmUHIoMTM5MDQ2LDEzODg4MSwyMTAsMTM5MTMyKSwoMHxmKTwoMHwoUmU9MHxhW09lPj4yXSkpfCgwfGMpPCgwfFJlKT9QcigxMzkxNDMsMTM4ODgxLDIxMiwxMzkxMzIpOmxlPUxlfShsKSxtPTB8YmYobCsxODUyfDApLG09''@;'; + put 'put ''KDB8YmYobCsxODY4fDApKSttfDAsMHxhW2I+PjJdJiYwIT0oMHxtKSYwPT0oMHxhW2wrMTkwOD4+Ml0pJiYoam5bKGI9bCsxOTYwfDApPj4yXT0rKCgwfGFbbCsxMzIwPj4yXSk+Pj4wKS8rKDB8bSkrICtqbltiPj4yXSksYj0wfHo5KGwpLGFbcD4+Ml09YixhW0E+PjJdPXcsYVtiKzQ+PjJd''@;'; + put 'put ''PXcsZnVuY3Rpb24ga20obCxjLGYscCl7bHw9MCxmfD0wLHB8PTA7dmFyIG09MDtmb3IoKGN8PTApfHxQcigxMzg4NzksMTM4ODgxLDI5NywxMzg5NDMpLGZ8fFByKDEzODk1MywxMzg4ODEsMjk4LDEzODk0MykscD9tPTA6UHIoMTM4OTU1LDEzODg4MSwyOTksMTM4OTQzKTs7KXtpZigoMHxt''@;'; + put 'put ''KT49NjUpe3A9MTQ7YnJlYWt9aWYoKHA9MHxhW2wrMTMyNCsobTw8Mik+PjJdKT4+PjA+PTIpe3A9OTticmVha31zd2l0Y2goMHxwKXtjYXNlIDA6YjYobCxsKzQrKDIwKm18MCl8MCxjLDApO2JyZWFrO2Nhc2UgMTpiNihsLGwrNCsoMjAqbXwwKXwwLGYsMCl9bT1tKzF8MH1pZig5PT0oMHxw''@;'; + put 'put ''KSlQcigxMzg5NTcsMTM4ODgxLDMwMywxMzg5NDMpO2Vsc2UgaWYoMTQ9PSgwfHApKTt9KGwsYyxiLGYpLDY1IT0oKDB8YVthW3A+PjJdPj4yXSkrKDB8YVtjPj4yXSl8MCkmJlByKDEzODkwMywxMzg4ODEsODYsMTM4ODkxKX1mdW5jdGlvbiBZOShsLGMsZil7Znw9MDt2YXIgbSxBLHcsYixw''@;'; + put 'put ''PTA7Yj1sZSxsZT1sZSsxNnwwLHc9YiwwfGFbKHA9MTU4NCsobHw9MCkrKChjfD0wKTw8Mil8MCk+PjJdJiZQcigxMzkyNDYsMTM4ODgxLDI1NywxMzkyODEpLGFbbCsxMzI0KyhjPDwyKT4+Ml09ZixhW3A+PjJdPTEsbT1sKzE4NTIrKGY8PDQpfDAscD1sKzQrKDIwKmN8MCl8MCwwfGFbKEE9''@;'; + put 'put ''bCsxODQ0KyhmPDwyKXwwKT4+Ml0/KEloKHcscCxtKSxhW20+PjJdPWFbdz4+Ml0sYVttKzQ+PjJdPWFbdys0Pj4yXSxhW20rOD4+Ml09YVt3Kzg+PjJdLGFbbSsxMj4+Ml09YVt3KzEyPj4yXSk6KGFbbT4+Ml09YVtwPj4yXSxhW20rND4+Ml09YVtwKzQ+PjJdLGFbbSs4Pj4yXT1hW3ArOD4+''@;'; + put 'put ''Ml0sYVttKzEyPj4yXT1hW3ArMTI+PjJdKSxhW2wrMTg4NCsoZjw8Mik+PjJdPTB8YmYobSksYVtBPj4yXT0xKygwfGFbQT4+Ml0pLGxlPWJ9ZnVuY3Rpb24gSmIobCxjKXt2YXIgZjtyZXR1cm4gbHw9MCxjfD0wLGY9MHx2cig4KSxmZVtmKzQ+PjBdPWMsYVtmPj4yXT1sLDB8Zn1mdW5jdGlv''@;'; + put 'put ''biBEMygpe3ZhciBsPTAsYz0wO2ZvcihsPTB8YVs0NzQwMl0sMHwoYz0wfGFbNDc0MDBdKSYmKEFtKGMsMSksYVs0NzQwMF09MCksYVsxNDAyMV09Njc7bDspYz0wfGFbbCs4MD4+Ml0sVkUobCksbD1jO2FbMTQwMjFdPTU2LGFbMTQwMzBdPTY4LG1pWzYzJmFbKGM9MHxhWzQ3NDA1XSk+PjJd''@;'; + put 'put ''XShjLDAsNjQpLGFbMTQwMzBdPTU2LGFbMTQwMzldPTY5LG1pWzYzJmFbKGM9MHxhWzQ3NDA2XSk+PjJdXShjLDAsNjQpLGFbMTQwMzldPTU2LGZ1bmN0aW9uIHlCKCl7dmFyIGw9MCxjPTA7Zm9yKGw9MHxhWzQ3NDAzXTtjPTB8YVtsKzQ+PjJdOylGdChsKSxsPWN9KCl9ZnVuY3Rpb24gU20o''@;'; + put 'put ''KXt2YXIgZixwLGw9MCxjPTAsbT0wLEE9MDtmPTB8YVs0NzQwNl0scD0wfHZyKDQwKSwwfHB1KDB8YVs0NzQwNV0pJiZVOSgwKSxsPTB8cHUoZiksaXRbcCs0Pj4xXT1sO2U6ZG97aWYobClmb3IoYVtwPj4yXT0wfHZyKDI0Kmx8MCksbD0wLGM9MHxtaVs2MyZhW2Y+PjJdXShmLDAsMTI4KTs7''@;'; + put 'put ''KXtpZighYyl7bD1mO2JyZWFrIGV9YVsobT0oMHxhW3A+PjJdKSsoMjQqbHwwKXwwKT4+Ml09YVsoQT1jKzh8MCk+PjJdLGFbbSs0Pj4yXT1hW0ErND4+Ml0sYVttKzg+PjJdPWFbQSs4Pj4yXSxhW20rMTI+PjJdPWFbQSsxMj4+Ml0sYVttKzE2Pj4yXT1hW0ErMTY+PjJdLGFbbSsyMD4+Ml09''@;'; + put 'put ''YVtBKzIwPj4yXSxsPWwrMXwwLGM9MHxtaVs2MyZhW2Y+PjJdXShmLGMsOCl9ZWxzZSBsPWZ9d2hpbGUoMCk7cmV0dXJuIG1pWzYzJmFbbD4+Ml1dKGYsMCw2NCksMHxwfWZ1bmN0aW9uIEhFKGwpe2x8PTA7dmFyIGYsYz0wLHA9MDtmPTB8dnIoNjQpLChjPTB8YVsocD1sKzR8MCk+PjJdKT4+''@;'; + put 'put ''PjA+PSgwfGFbbCs4Pj4yXSk+Pj4wJiYoUTAobCwxKSxjPTB8YVtwPj4yXSksZmVbYz4+MF09MCxhW3A+PjJdPWw9MHxhW2w+PjJdLGFbZis4Pj4yXT0wfHJhKGwpLGFbZisxMj4+Ml09YVthWzQ3NDAzXT4+Ml0sbWlbNjMmYVsocD0wfGFbNDc0MDVdKT4+Ml1dKHAsZiwxKX1mdW5jdGlvbiBV''@;'; + put 'put ''OShsKXtsfD0wO3ZhciBBLHcsYz0wLGY9MCxwPTAsbT0wLGI9MDtBPTB8dnIoMzIpLGM9MHxwdSh3PTB8YVs0NzQwNV0pLGI9QSs4fDAsZmVbQSsxND4+MF09bDtlOmRve2lmKGMpZm9yKGl0W0ErMTI+PjFdPWMsYVtiPj4yXT0wfHZyKDU2KmN8MCksbD0wLGM9MHxzMCh3KTs7KXtpZighYyli''@;'; + put 'put ''cmVhayBlO3A9Yys4fDAsbT01NisoZj0oMHxhW2I+PjJdKSsoNTYqbHwwKXwwKXwwO2Rve2FbZj4+Ml09YVtwPj4yXSxmPWYrNHwwLHA9cCs0fDB9d2hpbGUoKDB8Zik8KDB8bSkpO2w9bCsxfDAsYz0wfGFbYz4+Ml19ZWxzZSBhW2I+PjJdPTB8dnIoNTYpLGl0W0ErMTI+PjFdPTEsbT0wfHJh''@;'; + put 'put ''KDE5NTA1OSksYj0wfGFbYj4+Ml0sYVtiPj4yXT1tLGFbYis0Pj4yXT1hW2FbNDc0MDNdPj4yXX13aGlsZSgwKTttaVs2MyZhW3c+PjJdXSh3LDAsNjQpLG1pWzYzJmFbKGI9MHxhWzQ3NDA2XSk+PjJdXShiLEEsMSl9ZnVuY3Rpb24gVjQobCl7bHw9MDt2YXIgQSx3LGIsYz0wLGY9MCxwPTAs''@;'; + put 'put ''bT0wO2I9bGUsbGU9bGUrMzJ8MCxBPWIsdz0wfHZyKDgpLG09MHxhW2FbNDc0MDNdPj4yXSxhW0E+PjJdPWFbbD4+Ml0sYVtBKzQ+PjJdPWFbbCs0Pj4yXSxhW0ErOD4+Ml09YVtsKzg+PjJdLGFbQSsxMj4+Ml09YVtsKzEyPj4yXSxhW0ErMTY+PjJdPWFbbCsxNj4+Ml0sYVtBKzIwPj4yXT1h''@;'; + put 'put ''W2wrMjA+PjJdLGFbQSsyND4+Ml09YVtsKzI0Pj4yXSxhW0ErMjg+PjJdPWFbbCsyOD4+Ml0sMHxtJiYoMD09KDB8YVsobD1BKzR8MCk+PjJdKSYmMHwoYz0wfGFbbSs0Pj4yXSkmJihhW2w+PjJdPWMpLCtfWyhsPUErMTZ8MCk+PjNdPDAmJihmPStfW20rMTY+PjNdKT49MCYmKF9bbD4+M109''@;'; + put 'put ''ZiksMD09KDB8YVtBPj4yXSkmJjB8KHA9MHxhW20+PjJdKSYmKGFbQT4+Ml09cCksMHwobD0xMjcmYVttKzI0Pj4yXSkmJihhWyhtPUErMjR8MCk+PjJdPTEyNyYocD0wfGFbbT4+Ml0pfGx8LTEyOCZwKSksYVt3Pj4yXT0wfG1pWzYzJmFbKG09MHxhWzE0NCsoMHxhWzQ3NDA0XSk+PjJdKT4+''@;'; + put 'put ''Ml1dKG0sQSwxKSxhW3crND4+Ml09YVs0NzQwM10sYVs0NzQwM109dyxsZT1ifWZ1bmN0aW9uIFRkKCl7dmFyIGwsYztsPTB8YVs0KyhjPTB8YVs0NzQwM10pPj4yXSxGdChjKSxhWzQ3NDAzXT1sfWZ1bmN0aW9uIFhiKGwpe2x8PTA7Zm9yKHZhciBjPTA7Oyl7aWYoISgoYz0wfGZlW2w+PjBd''@;'; + put 'put ''KTw8MjQ+PjI0KSl7bD0wO2JyZWFrfWlmKGM8PDI0Pj4yNCE9MzIpe2w9MTticmVha31sPWwrMXwwfXJldHVybiAwfGx9ZnVuY3Rpb24gYjEoKXt2YXIgbCxjLGY9MDtmPTB8aXMoNTYwNjgsMHxhWzQ1ODBdKSxsPTB8YVs0NzQwMl0sYz0wfHZyKDE2KSxhW2MrOD4+Ml09ZiwyJmZlW2wrMTEy''@;'; + put 'put ''Pj4wXSYmKGZlW2MrMTI+PjBdPTEpLG1pWzYzJmFbKGY9MHxhW2wrODQ+PjJdKT4+Ml1dKGYsYywxKX1mdW5jdGlvbiBodSgpe3ZhciBsO3JldHVybiAwfG1pWzYzJmFbKGw9MHxhWzg0KygwfGFbNDc0MDJdKT4+Ml0pPj4yXV0obCwwLDI1Nil9ZnVuY3Rpb24gTW0obCxjLGYpe2x8PTAsY3w9''@;'; + put 'put ''MCxmfD0wO3ZhciBwLG0sQT0wO209MHx2cigxNiksQT0wfGFbOCsoMHxtaVs2MyZhWyhBPTB8YVs4NCsocD0wfGFbNDc0MDJdKT4+Ml0pPj4yXV0oQSwwLDI1NikpPj4yXSxhW20rOD4+Ml09bCxtaVs2MyZhW0E+PjJdXShBLG0sMSksZmVbbCs5Mj4+MF09ZiwxJmZlW3ArMTEyPj4wXSYmKGZl''@;'; + put 'put ''W2wrMTAwPj4wXT0xKSxhW2wrODg+PjJdPWN9ZnVuY3Rpb24gVkUobCl7TmwoMHxhWzg0KyhsfD0wKT4+Ml0pLEs4KGwpLEZ0KGwpfWZ1bmN0aW9uIEhhKGwpe2x8PTA7dmFyIGMsZixwPTA7Zj1sZSxsZT1sZSsxNnwwLGM9ZiwwfGZlWzE4OTY2MV18fChmZVsxODk2NjFdPTEscD0wfHV0KCks''@;'; + put 'put ''YVtjPj4yXT1sLGFbYys0Pj4yXT1wLCRyKDEsMTQwNTc1LGMpLCRiKCkpLGxlPWZ9ZnVuY3Rpb24gdXQoKXtyZXR1cm4gMHxmdW5jdGlvbiAkQihsKXt2YXIgYz0wLGY9MCxwPTAsbT0wLEE9MDtyZXR1cm4obHw9MCk/KDB8KGY9MHxhWyhjPWwrMjg0fDApPj4yXSkmJmY+Pj4wPj0obT0wfGFb''@;'; + put 'put ''KHA9bCsyOTJ8MCk+PjJdKT4+PjAmJihSY1szMSZhWzQ4KyhBPTB8YVtsKzE0ND4+Ml0pPj4yXV0oQSxtLGYsbCs0MDR8MCksYVtwPj4yXT1hW2M+PjJdKSxsPTErKDB8YVtsKzQwND4+Ml0pfDApOmw9MCwwfGx9KDB8YVs0NzQwN10pfWZ1bmN0aW9uICRiKCl7dmFyIGYscCxsPTAsYz0wO3A9''@;'; + put 'put ''bGUsbGU9bGUrMTZ8MCxmPXAsYVs0KyhsPTB8YVs0NzQxMF0pPj4yXT1hW2w+PjJdLCgwfChjPTB8YVs0NzQxOV0pKT4wJiYoZlQobCwwfGFbNDc0MTddLGMpLGw9MHxhWzQ3NDEwXSksZlQobCwwfGFbNDc0MTZdLDB8YVs0NzQxOF0pLChsPTB8YVs0KyhjPTB8YVs0NzQxMF0pPj4yXSk+Pj4w''@;'; + put 'put ''Pj0oMHxhW2MrOD4+Ml0pPj4+MCYmKFEwKGMsMSksYz1sPTB8YVs0NzQxMF0sbD0wfGFbbCs0Pj4yXSksYVtjKzQ+PjJdPWwrMSxmZVtsPj4wXT0wLGFbNCsobD0wfGFbNDc0MTBdKT4+Ml09Yz0wfGFbbD4+Ml0sYVtmPj4yXT1jLCRyKDMsMTQwNTkxLGYpLGxlPXB9ZnVuY3Rpb24gR0UobCl7''@;'; + put 'put ''dmFyIGMsZixwO2x8PTAsYz1sZSxsZT1sZSsxNnwwLGY9YyxhWzQ3NDA5XT0yNjgsZmVbMTg5NjYxXT0xLHA9MHx1dCgpLGFbZj4+Ml09bCxhW2YrND4+Ml09cCwkcigxLDE0MDY1OSxmKSxsZT1jfWZ1bmN0aW9uIFdFKGwpe3ZhciBjO3JldHVybiBsfD0wLGM9MHx2cigxMjApLGFbYysxMDA+''@;'; + put 'put ''PjJdPS0xLGZlW2MrODg+PjBdPS0xLG41KGMsNTY0MDAsMjIsbCwxNDE2MTEpLDB8Y31mdW5jdGlvbiBrQihsKXt2YXIgYztyZXR1cm4gbHw9MCxjPTB8dnIoMTA0KSxpdFtjKzgwPj4xXT0xLGl0W2MrODI+PjFdPTEsbjUoYyw1NjIyNCwyMixsLDE0MDk2NSksMHxjfWZ1bmN0aW9uIElkKGws''@;'; + put 'put ''YyxmKXtsfD0wLGN8PTAsZnw9MDt2YXIgbSxwPTA7cmV0dXJuIG09bGUsbGU9bGUrMzJ8MCxhWyhwPW0pPj4yXT0wLGFbcCs0Pj4yXT0wLGFbcCs4Pj4yXT0wLGFbcCsxMj4+Ml09MCxhW3ArMTY+PjJdPTAsYVtwKzIwPj4yXT0wLGFbcCsyND4+Ml09MCxhW3ArMjg+PjJdPTAsX1twKzE2Pj4z''@;'; + put 'put ''XT0tMSxhW3ArMjQ+PjJdPTEyNyZmLDB8YyYmbjUocCw1NjIwMCwzLGMsMTQwODE2KSxwPTB8bWlbNjMmYVsoZj0wfGFbbCsxNDQ+PjJdKT4+Ml1dKGYscCwxKSxsZT1tLDB8cH1mdW5jdGlvbiBsRyhsKXtsfD0wLGFbNDczOTldPTAsbjUoMTg5NTk2LDU2MTkyLDEsbCwxNDA3NTIpfWZ1bmN0''@;'; + put 'put ''aW9uIFlFKGwpe3ZhciBjO3JldHVybiBsfD0wLG41KGM9MHx2cig0MCksNTYxNzYsMixsLDE0MDY5OCksMHxjfWZ1bmN0aW9uIG41KGwsYyxmLHAsbSl7bHw9MCxjfD0wLGZ8PTAscHw9MCxtfD0wO3ZhciBrLE0sRCxBPTAsdz0wLGI9MDtmb3IoRD1sZSxsZT1sZSsxNnwwLE09RCxrPUQrOHww''@;'; + put 'put ''O2I9MHxhW3A+PjJdOylBPTB8YVtwKzQ+PjJdLGFbaz4+Ml09Yiwodz0wfHR3KGssYyxmLDgsMTA0KSk/QT0yNTUmKDB8KEE9MHxCaVsxMjcmYVt3KzQ+PjJdXShsLEEpKXxYdFsxODk2NjBdKTooYVtNPj4yXT1iLGFbTSs0Pj4yXT1tLCRyKDAsMTQwNzA0LE0pLEE9MSksZmVbMTg5NjYwXT1B''@;'; + put 'put ''LHA9cCs4fDA7bGU9RH1mdW5jdGlvbiBEZChsLGMsZixwLG0pe3ZhciBBLHcsYixrLE0sRDtjfD0wLGZ8PTAscHw9MCxtfD0wLE09bGUsbGU9bGUrNDh8MCxrPU0rMjR8MCxiPU0rOHwwLHc9TSxBPTB8X0wobHw9MCxEPU0rMzZ8MCwxMCk7ZG97aWYoKDB8YVtEPj4yXSkhPSgwfGwpKXtpZigo''@;'; + put 'put ''MHxBKT4oMHxwKSl7YVtiPj4yXT1jLGFbYis0Pj4yXT1sLGFbYis4Pj4yXT1wLCRyKDAsMTQwODg3LGIpLGw9MTticmVha31pZigoMHxBKTwoMHxmKSl7YVtrPj4yXT1jLGFbays0Pj4yXT1sLGFbays4Pj4yXT1mLCRyKDAsMTQwOTI2LGspLGw9MTticmVha31hW20+PjJdPUEsbD0wO2JyZWFr''@;'; + put 'put ''fWFbdz4+Ml09YyxhW3crND4+Ml09bCwkcigwLDE0MDg1Nix3KSxsPTF9d2hpbGUoMCk7cmV0dXJuIGxlPU0sMHxsfWZ1bmN0aW9uIEtFKCl7dmFyIHcsYixsPTAsYz0wLGY9MCxwPTAsbT0wLEE9MDtiPWxlLGxlPWxlKzE2fDAsdz1iLGFbNDc0MDldPTAsYz0wO2U6ZG97dDpkb3tzd2l0Y2go''@;'; + put 'put ''MHxmZVsxODk2NjNdKXtjYXNlIDI6bD0tMTticmVhayBlO2Nhc2UgMDpmZVsxODk2NjNdPTEsQT02LGw9MTQxNzMyLGM9MDticmVhaztkZWZhdWx0OmlmKDB8ZmVbKGw9MHxhWzQ3NDA4XSk+PjBdKXtBPShjPTB8SzkobCkpLWx8MDticmVhayB0fWZlWzE4OTY2M109MixBPTcsbD0xNDE3Mzk7''@;'; + put 'put ''YnJlYWsgdH19d2hpbGUoMCk7YVs0NzQxN109YVs0NzQxNl0sYVs0NzQxOV09YVs0NzQxOF0sYVs0NzQxNl09bCxhWzQ3NDE4XT1BLG09MHxhWzQ3NDA3XSwocD0oZj0wfGFbNDc0MTJdKS0oMHxhWzQ3NDExXSl8MCk/KGY+Pj4wPCgwfGFbNDc0MTNdKT4+PjA/bD1mOihRMCgxODk2NDQsMSks''@;'; + put 'put ''bD0wfGFbNDc0MTJdKSxmZVtsPj4wXT0wLGFbNDc0MTJdPWw9MHxhWzQ3NDExXSxsPTB8cHgobSxsLHAsMCkpOmw9MHxweChtLGwsQSwwPT0oMHxBKSYxKSwwIT0oMHxsKXwwIT0oMHxmZVsxODk2NjFdKXx8KG09MHxxQigwfEtCKDB8YVs0NzQwN10pKSxBPTB8dXQoKSxhW3c+PjJdPW0sYVt3''@;'; + put 'put ''KzQ+PjJdPUEsJHIoMSwxNDA1NzUsdyksJGIoKSxmZVsxODk2NjFdPTEsYVs0NzQwOV09MjY4KSwwfGMmJihhWzQ3NDA4XT1jKSxsPTB8YVs0NzQwOV19d2hpbGUoMD09KDB8bCkpO3JldHVybiBsZT1iLDB8bH1mdW5jdGlvbiBLOShsKXt2YXIgcCxBLGM9MCxmPTAsbT0wO0E9bGUsbGU9bGUr''@;'; + put 'put ''MTZ8MCxwPUEsYz0xKyhsfD0wKXwwLGY9MHxmZVtsPj4wXTtlOmRve2lmKGY8PDI0Pj4yND09NjApeyhmPTB8ZmVbYz4+MF0pPDwyND4+MjQ9PTMzPzB8czIobCsyfDAsMTQxNzQ3LDIpPyhmPWMsbT01KTooYz1mPTB8RGgobCs0fDApLGY9MHxmZVtmPj4wXSxtPTgpOm09Njt0OmZvcig7Oylp''@;'; + put 'put ''Zig1IT0oMHxtKSlpZig2IT0oMHxtKSl7aWYoOD09KDB8bSkpe2lmKGY8PDI0Pj4yND09NjIpe209MTA7YnJlYWt9bT05O2JyZWFrfX1lbHNle3N3aXRjaChmPDwyND4+MjQpe2Nhc2UgNjI6Y2FzZSAwOm09ODtjb250aW51ZSB0fWY9YysxfDAsbT01fWVsc2UgYz1mLGY9MHxmZVtmPj4wXSxt''@;'; + put 'put ''PTY7aWYoOT09KDB8bSkpeyRyKDAsMTQxNzUwLHApLGZlWzE4OTY2MF09MTticmVha31pZigxMD09KDB8bSkpe2M9YysxfDA7YnJlYWt9fWVsc2UgZm9yKGM9bCxsPWY7Oyl7c3dpdGNoKGw8PDI0Pj4yNCl7Y2FzZSA2MDpjYXNlIDA6YnJlYWsgZTtjYXNlIDM4OjM1PT0oMHxmZVsoZj1jKzF8''@;'; + put 'put ''MCk+PjBdKT9tPTE1OmY9MHxPbGUoZiwxODk2NDQpO2JyZWFrO2RlZmF1bHQ6bT0xNX0xNT09KDB8bSkmJihtPTAsKGY9MHxhWzQ3NDEyXSk+Pj4wPj0oMHxhWzQ3NDEzXSk+Pj4wJiYoUTAoMTg5NjQ0LDEpLGY9MHxhWzQ3NDEyXSksYVs0NzQxMl09ZisxLGZlW2Y+PjBdPWwsZj1jKzF8MCks''@;'; + put 'put ''Yz1mLGw9MHxmZVtmPj4wXX19d2hpbGUoMCk7cmV0dXJuIGxlPUEsMHxjfWZ1bmN0aW9uIERoKGwpe3ZhciBiLGssYz0wLGY9MCxwPTAsbT0wLEE9MCx3PTA7az1sZSxsZT1sZSsxNnwwLGI9ayxtPTEsYz1sfD0wO2U6Zm9yKDs7KXtwPTA9PSgwfG0pLGY9Yzt0OmZvcig7Oyl7aWYocClicmVh''@;'; + put 'put ''ayBlO3N3aXRjaChBPWYrMXwwLDB8ZmVbZj4+MF0pe2Nhc2UgMDpjPUE7YnJlYWsgZTtjYXNlIDYwOnc9NTticmVhayB0O2Nhc2UgNjI6Yz0tMTticmVhayB0O2RlZmF1bHQ6Zj1BfX01PT0oMHx3KSYmKHc9MCxjPTEpLG09bStjfDAsYz1BfWY9YystMXwwO2Rve2lmKDB8ZmVbZj4+MF0pe2lm''@;'; + put 'put ''KChjPWMrLTN8MCk+Pj4wPj1sPj4+MCYmMD09KDB8czIoYywxNDE3NDcsMikpKWJyZWFrOyRyKDAsMTQxNzkxLGIpLGZlWzE4OTY2MF09MX19d2hpbGUoMCk7cmV0dXJuIGxlPWssMHxmfWZ1bmN0aW9uIHJfKGwsYyl7bHw9MCxjfD0wO3ZhciBmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAs''@;'; + put 'put ''TT0wLEQ9MCxSPTAsRz0wLEs9MCxwZT0wLGdlPTAsYmU9MCxPZT0wO2lmKGY9MHxCMCgyOCkpe2ZvcihwPTAsbT0wOyEoKDB8cCk+PSgwfGMpKTspYmU9KDB8YVs0KygwfGFbbCsocDw8Mik+PjJdKT4+Ml0pK218MCxwPXArMXwwLG09YmU7Zm9yKGFbKEs9Zis4fDApPj4yXT0wfCQ5KG08PDQp''@;'; + put 'put ''LGFbKHBlPWYrMTJ8MCk+PjJdPTB8JDkoNCsoYzw8Mil8MCksYVsoZ2U9ZisxNnwwKT4+Ml09MHwkOShwPW08PDIpLHA9MHwkOShwKSxhWyhiZT1mKzIwfDApPj4yXT1wLGFbZis0Pj4yXT1tLGFbZj4+Ml09YyxtPTAsdz0wO2FbKDB8YVtwZT4+Ml0pKyh3PDwyKT4+Ml09bSwhKCgwfHcpPj0o''@;'; + put 'put ''MHxjKSk7KXtmb3IoRD1tKy0xfDAsQT0wLGI9bSxSPU09MHxhWzQrKEc9MHxhWyhrPWwrKHc8PDIpfDApPj4yXSk+PjJdOyEoKDB8QSk+PSgwfFIpKTspYVsoUj0oMHxhW0s+PjJdKSsoYjw8NCl8MCk+PjJdPWFbKHA9KDB8YVtHPj4yXSkrKEE8PDQpfDApPj4yXSxhW1IrND4+Ml09YVtwKzQ+''@;'; + put 'put ''PjJdLGFbUis4Pj4yXT1hW3ArOD4+Ml0sYVtSKzEyPj4yXT1hW3ArMTI+PjJdLGFbKDB8YVtnZT4+Ml0pKyhiPDwyKT4+Ml09Uj1iKzF8MCxhWyhwPTB8YVtiZT4+Ml0pKyhiPDwyKT4+Ml09YistMSxBPUErMXwwLGI9UixSPTB8YVs0KyhPZT0wfGFbaz4+Ml0pPj4yXSxHPU9lO2FbKDB8YVtn''@;'; + put 'put ''ZT4+Ml0pKygoT2U9RCtNfDApPDwyKT4+Ml09bSxhW3ArKG08PDIpPj4yXT1PZSxtPWIsdz13KzF8MH0hZnVuY3Rpb24gUzYobCl7YVsyNCsobHw9MCk+PjJdPTB8ZnVuY3Rpb24gQmQobCl7dmFyIHAsbSxjPTAsZj0wO2ZvcihtPTB8QjAoKHA9MisobHw9MCl8MCk8PDIpLGM9MHxzaCgwfEFy''@;'; + put 'put ''KGwsbCksOCksZj0wOyEoKDB8Zik+PSgwfGwpKTspYVttKyhmPDwyKT4+Ml09YyxjPWMrKGw8PDMpfDAsZj1mKzF8MDtmb3IoOyEoKDB8bCk+PSgwfHApKTspYVttKyhsPDwyKT4+Ml09MCxsPWwrMXwwO3JldHVybiAwfG19KDB8YVtsKzQ+PjJdKSxmdW5jdGlvbiBoNShsKXt2YXIgZixBLHcs''@;'; + put 'put ''YixNLEQsUixHLGM9MCxwPTAsbT0wLGs9MCxLPTAscGU9MDtmb3IoRz1sZSxsZT1sZSszMnwwLHc9RysxNnwwLEE9RyxiPTB8YVs0KyhsfD0wKT4+Ml0sTT0wfGFbbCs4Pj4yXSxEPTB8YVtsKzE2Pj4yXSxSPTB8YVtsKzIwPj4yXSxmPTB8YVtsKzI0Pj4yXSxjPTA7ISgoMHxjKT49KDB8Yikp''@;'; + put 'put ''Oyl7Zm9yKG09TSsoKEs9MHxhW1IrKGM8PDIpPj4yXSk8PDQpfDAsYVtBPj4yXT1hWyhwPU0rKGM8PDQpfDApPj4yXSxhW0ErND4+Ml09YVtwKzQ+PjJdLGFbQSs4Pj4yXT1hW3ArOD4+Ml0sYVtBKzEyPj4yXT1hW3ArMTI+PjJdLGFbdz4+Ml09YVttPj4yXSxhW3crND4+Ml09YVttKzQ+PjJd''@;'; + put 'put ''LGFbdys4Pj4yXT1hW20rOD4+Ml0sYVt3KzEyPj4yXT1hW20rMTI+PjJdLHBlPSt6NChBLHcpLF9bKG09MHxhW2YrKGM8PDIpPj4yXSkrKEs8PDMpPj4zXT1wZSxfWygwfGFbZisoSzw8Mik+PjJdKSsoYzw8Myk+PjNdPXBlLGw9KDB8Syk9PSgwfChsPWMrLTF8MCkpP2MrLTJ8MDpsOyEoKDB8''@;'; + put 'put ''bCk8PS0xKTspMHxZMShjLGwsTSxELFIpJiYwfFkxKGwsYyxNLEQsUikmJihrPU0rKGw8PDQpfDAsYVtBPj4yXT1hW3A+PjJdLGFbQSs0Pj4yXT1hW3ArND4+Ml0sYVtBKzg+PjJdPWFbcCs4Pj4yXSxhW0ErMTI+PjJdPWFbcCsxMj4+Ml0sYVt3Pj4yXT1hW2s+PjJdLGFbdys0Pj4yXT1hW2sr''@;'; + put 'put ''ND4+Ml0sYVt3Kzg+PjJdPWFbays4Pj4yXSxhW3crMTI+PjJdPWFbaysxMj4+Ml0sMHxkNShBLHcsYixiLGIsTSxEKSkmJihhW0E+PjJdPWFbcD4+Ml0sYVtBKzQ+PjJdPWFbcCs0Pj4yXSxhW0ErOD4+Ml09YVtwKzg+PjJdLGFbQSsxMj4+Ml09YVtwKzEyPj4yXSxhW3c+PjJdPWFbaz4+Ml0s''@;'; + put 'put ''YVt3KzQ+PjJdPWFbays0Pj4yXSxhW3crOD4+Ml09YVtrKzg+PjJdLGFbdysxMj4+Ml09YVtrKzEyPj4yXSxwZT0rejQoQSx3KSxfW20rKGw8PDMpPj4zXT1wZSxfWygwfGFbZisobDw8Mik+PjJdKSsoYzw8Myk+PjNdPXBlKSxsPWwrLTF8MDtjPWMrMXwwfWxlPUd9KGwpfShmKX1lbHNlIGY9''@;'; + put 'put ''MDtyZXR1cm4gMHxmfWZ1bmN0aW9uICQ5KGwpe3JldHVybiAwfCgobHw9MCk/MHxCMChsKTowKX1mdW5jdGlvbiBfNihsLGMpe2N8PTA7dmFyIGYscCxtLEEsdyxiLGssTT0wLEQ9MDtmb3Ioaz1sZSxsZT1sZSs0OHwwLHc9ayszMnwwLEE9aysxNnwwLG09ayxiPTB8YVsobHw9MCk+PjJdLHA9''@;'; + put 'put ''KGY9MHxhW2wrND4+Ml0pLTF8MCxsPTA7Oyl7aWYoKDB8bCk+PSgwfGYpKXtsPTE7YnJlYWt9aWYoTT1iKyhsPDw0KXwwLGFbbT4+Ml09YVsoRD1iKygoKHArbHwwKSUoMHxmKXwwKTw8NCl8MCk+PjJdLGFbbSs0Pj4yXT1hW0QrND4+Ml0sYVttKzg+PjJdPWFbRCs4Pj4yXSxhW20rMTI+PjJd''@;'; + put 'put ''PWFbRCsxMj4+Ml0sYVtBPj4yXT1hW00+PjJdLGFbQSs0Pj4yXT1hW00rND4+Ml0sYVtBKzg+PjJdPWFbTSs4Pj4yXSxhW0ErMTI+PjJdPWFbTSsxMj4+Ml0sYVt3Pj4yXT1hW2M+PjJdLGFbdys0Pj4yXT1hW2MrND4+Ml0sYVt3Kzg+PjJdPWFbYys4Pj4yXSxhW3crMTI+PjJdPWFbYysxMj4+''@;'; + put 'put ''Ml0sMT09KDB8VWMobSxBLHcpKSl7bD0wO2JyZWFrfWw9bCsxfDB9cmV0dXJuIGxlPWssMHxsfWZ1bmN0aW9uIHE5KGwsYyxmLHAsbSl7bHw9MCxjfD0wLGZ8PTAscHw9MCxtfD0wO3ZhciBiLE0sRCxSLEcsSyxiZSxBPTAsdz0wLGs9MCxwZT0wLGdlPTA7Zm9yKGJlPWxlLGxlPWxlKzY0fDAs''@;'; + put 'put ''RD1iZSs0OHwwLE09YmUrMzJ8MCxwZT00LGs9MHxCMCg0MCksYVtrPj4yXT0wLFI9YmUrMTZ8MCxHPWJlLEs9MHxhW2Y+PjJdLGI9MHxhW2YrND4+Ml0scGU9MHxQZigxODk2ODAsMSwwfGssMHxwZSksaz1EbixmPU1uPTAsTW49MCwwIT0oMHxmKSYwIT0oMHx4bik/KChBPTB8Z2koMHxhW2Y+''@;'; + put 'put ''PjJdLDB8cGUsMHxrKSl8fHplKDB8ZiwwfHhuKSxEbj14bik6QT0tMSxmPTE9PSgwfEEpP0RuOjA7Oyl7aWYoMHxmKXtmPS0xO2JyZWFrfWlmKE1uPTAsYVtEPj4yXT1hW3A+PjJdLGFbRCs0Pj4yXT1hW3ArND4+Ml0sYVtEKzg+PjJdPWFbcCs4Pj4yXSxhW0QrMTI+PjJdPWFbcCsxMj4+Ml0s''@;'; + put 'put ''WjEoMjgsMHxSLDB8RCksZj1NbixNbj0wLDAhPSgwfGYpJjAhPSgwfHhuKT8oKEE9MHxnaSgwfGFbZj4+Ml0sMHxwZSwwfGspKXx8emUoMHxmLDB8eG4pLERuPXhuKTpBPS0xLDEhPSgwfEEpKWlmKGFbcD4+Ml09YVtSPj4yXSxhW3ArND4+Ml09YVtSKzQ+PjJdLGFbcCs4Pj4yXT1hW1IrOD4+''@;'; + put 'put ''Ml0sYVtwKzEyPj4yXT1hW1IrMTI+PjJdLE1uPTAsYVtEPj4yXT1hWyh3PXArMTZ8MCk+PjJdLGFbRCs0Pj4yXT1hW3crND4+Ml0sYVtEKzg+PjJdPWFbdys4Pj4yXSxhW0QrMTI+PjJdPWFbdysxMj4+Ml0sWjEoMjgsMHxHLDB8RCksZj1NbixNbj0wLDAhPSgwfGYpJjAhPSgwfHhuKT8oKEE9''@;'; + put 'put ''MHxnaSgwfGFbZj4+Ml0sMHxwZSwwfGspKXx8emUoMHxmLDB8eG4pLERuPXhuKTpBPS0xLDEhPSgwfEEpKWlmKGFbdz4+Ml09YVtHPj4yXSxhW3crND4+Ml09YVtHKzQ+PjJdLGFbdys4Pj4yXT1hW0crOD4+Ml0sYVt3KzEyPj4yXT1hW0crMTI+PjJdLGFbNDc0NTldPTAsTW49MCxzcygxMTUs''@;'; + put 'put ''NCksZj1NbixNbj0wLDAhPSgwfGYpJjAhPSgwfHhuKT8oKEE9MHxnaSgwfGFbZj4+Ml0sMHxwZSwwfGspKXx8emUoMHxmLDB8eG4pLERuPXhuKTpBPS0xLDEhPSgwfEEpKXtpZihBPTB8YVs0NzQ2MF0sYVs0NzQ1OV09MSsoZj0wfGFbNDc0NTldKSxhWyhmPUErKGY8PDQpfDApPj4yXT1hW0s+''@;'; + put 'put ''PjJdLGFbZis0Pj4yXT1hW0srND4+Ml0sYVtmKzg+PjJdPWFbSys4Pj4yXSxhW2YrMTI+PjJdPWFbSysxMj4+Ml0sTW49MCxhW00+PjJdPWFbcD4+Ml0sYVtNKzQ+PjJdPWFbcCs0Pj4yXSxhW00rOD4+Ml09YVtwKzg+PjJdLGFbTSsxMj4+Ml09YVtwKzEyPj4yXSxhW0Q+PjJdPWFbdz4+Ml0s''@;'; + put 'put ''YVtEKzQ+PjJdPWFbdys0Pj4yXSxhW0QrOD4+Ml09YVt3Kzg+PjJdLGFbRCsxMj4+Ml09YVt3KzEyPj4yXSxmPTB8YzEoMSwwfGwsMHxjLDB8SywwfGIsMHxNLDB8RCksQT1NbixNbj0wLDAhPSgwfEEpJjAhPSgwfHhuKT8oKHc9MHxnaSgwfGFbQT4+Ml0sMHxwZSwwfGspKXx8emUoMHxBLDB8''@;'; + put 'put ''eG4pLERuPXhuKTp3PS0xLDEhPSgwfHcpKXtnZT04O2JyZWFrfWY9RG59ZWxzZSBmPURuO2Vsc2UgZj1EbjtlbHNlIGY9RG59cmV0dXJuIDg9PSgwfGdlKSYmKC0xPT0oMHxmKT9mPS0xOihhW20rND4+Ml09YVs0NzQ1OV0sYVttPj4yXT1hWzQ3NDYwXSxmPTApKSxGdCgwfHBlKSxsZT1iZSww''@;'; + put 'put ''fGZ9ZnVuY3Rpb24gYTUobCxjKXt2YXIgZixwLG0sQSx3O2x8PTAsQT0rRDAoKyh3PShtPStfWyhwPTgrKGN8PTApfDApPj4zXSkqbSsoZj0rX1tjPj4zXSkqZikpLHc+MWUtNiYmKF9bYz4+M109Zi9BLF9bcD4+M109bS9BKSxhW2w+PjJdPWFbYz4+Ml0sYVtsKzQ+PjJdPWFbYys0Pj4yXSxh''@;'; + put 'put ''W2wrOD4+Ml09YVtjKzg+PjJdLGFbbCsxMj4+Ml09YVtjKzEyPj4yXX1mdW5jdGlvbiAkRShsKXt2YXIgbSxjPTAsZj0wLHA9MDttPWxlLGxlPWxlKzMyfDAscD1tKzE2fDAsZj1tLCgwfGFbNDc0NjNdKTwoMHwobHw9MCkpJiYoKGM9MHxhWzQ3NDYwXSk/KGY9MHxVYShjLGw8PDQpLGFbNDc0''@;'; + put 'put ''NjBdPWYsZnx8KGY9MHxhWzE1NzEyXSxhW3A+PjJdPTE0MTgzMSxhW3ArND4+Ml09NTM3LGFbcCs4Pj4yXT0xNDE5ODQsVDAoZiwxNDE4MzkscCksemUoMTg5NjgwLDEpKSk6KHA9MHxCMChsPDw0KSxhWzQ3NDYwXT1wLHB8fChwPTB8YVsxNTcxMl0sYVtmPj4yXT0xNDE4MzEsYVtmKzQ+PjJd''@;'; + put 'put ''PTUzMSxhW2YrOD4+Ml09MTQxOTY2LFQwKHAsMTQxODM5LGYpLHplKDE4OTY4MCwxKSkpLGFbNDc0NjNdPWwpLGxlPW19ZnVuY3Rpb24gb18obCxjKXt2YXIgZixwO3JldHVybisgK0QwKCsoKHA9K19bOCsoY3w9MCk+PjNdLStfWzgrKGx8PTApPj4zXSkqcCsoZj0rX1tjPj4zXS0rX1tsPj4z''@;'; + put 'put ''XSkqZikpfWZ1bmN0aW9uIEVtKGwpe3ZhciBjO3JldHVybisoYz0xLShsPStsKSkqYyooMypsKX1mdW5jdGlvbiBfZihsLGMsZil7dmFyIHA7bHw9MCxfWyhjfD0wKT4+M109K19bYz4+M10qKGY9K2YpLF9bKHA9Yys4fDApPj4zXT0rX1twPj4zXSpmLGFbbD4+Ml09YVtjPj4yXSxhW2wrND4+''@;'; + put 'put ''Ml09YVtjKzQ+PjJdLGFbbCs4Pj4yXT1hW2MrOD4+Ml0sYVtsKzEyPj4yXT1hW2MrMTI+PjJdfWZ1bmN0aW9uIE9kKGwpe3JldHVybisobD0rbCkqbCozKigxLWwpfWZ1bmN0aW9uIHFFKGwsYyxmKXt2YXIgcDtsfD0wLF9bKGN8PTApPj4zXT0rX1tjPj4zXSsgK19bKGZ8PTApPj4zXSxfWyhw''@;'; + put 'put ''PWMrOHwwKT4+M109K19bcD4+M10rICtfW2YrOD4+M10sYVtsPj4yXT1hW2M+PjJdLGFbbCs0Pj4yXT1hW2MrND4+Ml0sYVtsKzg+PjJdPWFbYys4Pj4yXSxhW2wrMTI+PjJdPWFbYysxMj4+Ml19ZnVuY3Rpb24gZUEobCxjLGYpe3ZhciBwO2x8PTAsX1soY3w9MCk+PjNdPStfW2M+PjNdLStf''@;'; + put 'put ''WyhmfD0wKT4+M10sX1socD1jKzh8MCk+PjNdPStfW3A+PjNdLStfW2YrOD4+M10sYVtsPj4yXT1hW2M+PjJdLGFbbCs0Pj4yXT1hW2MrND4+Ml0sYVtsKzg+PjJdPWFbYys4Pj4yXSxhW2wrMTI+PjJdPWFbYysxMj4+Ml19ZnVuY3Rpb24gTkIobCl7cmV0dXJuKyhsPTEtKGw9K2wpKSpsKmx9''@;'; + put 'put ''ZnVuY3Rpb24gZXgobCl7cmV0dXJuKyhsPStsKSpsKmx9ZnVuY3Rpb24gbF8obCxjKXtsfD0wLGN8PTA7dmFyIGY9MCxwPTAsbT0wLEE9MCx3PTA7Zm9yKGY9MCxwPTE7ISgoMHxwKT49KDB8YykpOylmPStEMCgrKChBPStfW2wrKHA8PDQpKzg+PjNdLStfW2wrKCh3PXArLTF8MCk8PDQpKzg+''@;'; + put 'put ''PjNdKSpBKyhtPStfW2wrKHA8PDQpPj4zXS0rX1tsKyh3PDw0KT4+M10pKm0pKStmLHA9cCsxfDA7cmV0dXJuK2Z9ZnVuY3Rpb24gVzEobCxjLGYpe2x8PTAsY3w9MDt2YXIgQSx3LGIsayxNLGJlLE9lLFJlLFZlLHFlLG50LFdlLG90LHA9MCxtPTAsRD0wLFI9MCxHPTAsSz0wLHBlPTAsZ2U9''@;'; + put 'put ''MCxMZT0wLEhlPTAsU3Q9MCxrdD0wO290PWxlLGxlPWxlKzY0fDAsYmU9b3QrMzJ8MCxSZT0oT2U9b3QpKzE2fDAsVmU9MTYrKGZ8PTApfDAscWU9ZiszMnwwLG50PWYrNDh8MCxXZT1mKzh8MCxBPWYrMjR8MCx3PWYrNDB8MCxiPWYrNTZ8MCxrPU9lKzh8MCxNPU9lKzI0fDAsbT0wO2U6Zm9y''@;'; + put 'put ''KDs7KXtpZigoMHxtKT49KDB8Yykpe3A9MTticmVha31hW09lPj4yXT1hWyhEPWwrKG08PDUpfDApPj4yXSxhW09lKzQ+PjJdPWFbRCs0Pj4yXSxhW09lKzg+PjJdPWFbRCs4Pj4yXSxhW09lKzEyPj4yXT1hW0QrMTI+PjJdLGFbUmU+PjJdPWFbKEQ9bCsobTw8NSkrMTZ8MCk+PjJdLGFbUmUr''@;'; + put 'put ''ND4+Ml09YVtEKzQ+PjJdLGFbUmUrOD4+Ml09YVtEKzg+PjJdLGFbUmUrMTI+PjJdPWFbRCsxMj4+Ml0sRD0wfGhHKGYsT2UsYmUpO3Q6ZG97aWYoNCE9KDB8RCkpZm9yKFI9K19bT2U+PjNdLEc9K19baz4+M10sSz0rX1tSZT4+M10scGU9K19bTT4+M10scD0wOzspe2lmKCgwfHApPj0oMHxE''@;'; + put 'put ''KSlicmVhayB0O2lmKCEoKGdlPStfW2JlKyhwPDwzKT4+M10pPDFlLTZ8Z2U+Ljk5OTk5OXx8KEhlPWdlKmdlKmdlLGt0PTMqZ2UsU3Q9MS1nZSxnZT1rdCpnZSpTdCxMZT1TdCpTdCxrdCo9TGUsU3QqPUxlLExlPStfW1ZlPj4zXSprdCsgK19bZj4+M10qU3QrICtfW3FlPj4zXSpnZSsgK19b''@;'; + put 'put ''bnQ+PjNdKkhlLEhlPStfW0E+PjNdKmt0KyArX1tXZT4+M10qU3QrICtfW3c+PjNdKmdlKyArX1tiPj4zXSpIZSxnZT1MZS1SLFN0PUhlLUcsU3QqU3QrZ2UqZ2U8LjAwMSl8fChrdD1MZS1LLFN0PUhlLXBlLFN0KlN0K2t0Kmt0PC4wMDEpKSl7cD0wO2JyZWFrIGV9cD1wKzF8MH19d2hpbGUo''@;'; + put 'put ''MCk7bT1tKzF8MH1yZXR1cm4gbGU9b3QsMHxwfWZ1bmN0aW9uIGhHKGwsYyxmKXtsfD0wLGZ8PTA7dmFyIGdlLGJlLE9lLExlLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxLPTAscGU9MDtMZT1sZSxsZT1sZSs5NnwwLGdlPUxlKzQ4fDAsYmU9TGUrMjR8MCxrPUxl''@;'; + put 'put ''LEE9K19bMTYrKGN8PTApPj4zXS0oRz0rX1tjPj4zXSksYj0rX1tjKzI0Pj4zXS0oSz0rX1tjKzg+PjNdKSxhWyhPZT1MZSs4MHwwKT4+Ml09MDtlOmRve2lmKDAhPUEpaWYoYi89QSxNPWwrMTZ8MCxEPWwrMzJ8MCxSPWwrNDh8MCx4bSgrX1tsKzg+PjNdLStfW2w+PjNdKmIsK19bbCsyND4+''@;'; + put 'put ''M10tK19bTT4+M10qYiwrX1tsKzQwPj4zXS0rX1tEPj4zXSpiLCtfW2wrNTY+PjNdLStfW1I+PjNdKmIsZ2UpLF9bZ2U+PjNdPWIqRy1LKyArX1tnZT4+M10scD0wfExoKGdlLGJlKSw0PT0oMHxwKSljPTQ7ZWxzZXtmb3IobT1nZSs4fDAsdz1nZSsxNnwwLGs9Z2UrMjR8MCxBPTEvQSxjPTA7''@;'; + put 'put ''ISgoMHxjKT49KDB8cCkpOykoYj0rX1tiZSsoYzw8Myk+PjNdKT49MCZiPD0xJiYoeG0oK19bbD4+M10sK19bTT4+M10sK19bRD4+M10sK19bUj4+M10sZ2UpLChLPSgrX1tnZT4+M10tRysoKCtfW2s+PjNdKmIrICtfW3c+PjNdKSpiKyArX1ttPj4zXSkqYikqQSk+PTAmSzw9MSkmJnRBKGIs''@;'; + put 'put ''ZixPZSksYz1jKzF8MDtjPTB8YVtPZT4+Ml19ZWxzZXtpZih4bSgrX1tsPj4zXSwrX1tsKzE2Pj4zXSwrX1tsKzMyPj4zXSwrX1tsKzQ4Pj4zXSxnZSksX1tnZT4+M109K19bZ2U+PjNdLUcscGU9MHxMaChnZSxiZSksMCE9Yil7aWYoND09KDB8cGUpKXtjPTQ7YnJlYWt9Zm9yKE09bCs4fDAs''@;'; + put 'put ''RD1sKzI0fDAsUj1sKzQwfDAscD1sKzU2fDAsbT1nZSs4fDAsdz1nZSsxNnwwLGs9Z2UrMjR8MCxBPTEvYixjPTA7ISgoMHxjKT49KDB8cGUpKTspKGI9K19bYmUrKGM8PDMpPj4zXSk+PTAmYjw9MSYmKHhtKCtfW00+PjNdLCtfW0Q+PjNdLCtfW1I+PjNdLCtfW3A+PjNdLGdlKSwoRz0oK19b''@;'; + put 'put ''Z2U+PjNdLUsrKCgrX1trPj4zXSpiKyArX1t3Pj4zXSkqYisgK19bbT4+M10pKmIpKkEpPj0wJkc8PTEpJiZ0QShiLGYsT2UpLGM9YysxfDA7Yz0wfGFbT2U+PjJdO2JyZWFrfXhtKCtfW2wrOD4+M10sK19bbCsyND4+M10sK19bbCs0MD4+M10sK19bbCs1Nj4+M10sZ2UpLF9bZ2U+PjNdPStf''@;'; + put 'put ''W2dlPj4zXS1LLGM9ND09KDB8KHc9MHxMaChnZSxrKSkpO3Q6ZG97aWYoND09KDB8cGUpKXtpZihjKXtjPTQ7YnJlYWsgZX1mb3IoYz0wOzspe2lmKCgwfGMpPj0oMHx3KSlicmVhayB0O3RBKCtfW2srKGM8PDMpPj4zXSxmLE9lKSxjPWMrMXwwfX1lbHNle2lmKGMpZm9yKGM9MDs7KXtpZigo''@;'; + put 'put ''MHxjKT49KDB8cGUpKWJyZWFrIHQ7dEEoK19bYmUrKGM8PDMpPj4zXSxmLE9lKSxjPWMrMXwwfWVsc2UgcD0wO2Zvcig7Oyl7aWYoKDB8cCk+PSgwfHBlKSlicmVhayB0O2ZvcihtPWJlKyhwPDwzKXwwLGM9MDshKCgwfGMpPj0oMHx3KSk7KShBPStfW20+PjNdKT09K19baysoYzw8Myk+PjNd''@;'; + put 'put ''JiZ0QShBLGYsT2UpLGM9YysxfDA7cD1wKzF8MH19fXdoaWxlKDApO2M9MHxhW09lPj4yXX19d2hpbGUoMCk7cmV0dXJuIGxlPUxlLDB8Y31mdW5jdGlvbiB4bShsLGMsZixwLG0pe19bMjQrKG18PTApPj4zXT0ocD0rcCktKGw9K2wpKzMqKChjPStjKS0oZj0rZikpLF9bbSsxNj4+M109Myoo''@;'; + put 'put ''ZitsKS02KmMsX1ttKzg+PjNdPTMqKGMtbCksX1ttPj4zXT1sfWZ1bmN0aW9uIHRBKGwsYyxmKXtmfD0wO3ZhciBwPTA7KGw9K2wpPj0wJmw8PTEmJihfWyhjfD0wKSsoKHA9MHxhW2Y+PjJdKTw8Myk+PjNdPWwsYVtmPj4yXT1wKzEpfWZ1bmN0aW9uIHM1KGwsYyl7cmV0dXJuKygrX1s4Kyhj''@;'; + put 'put ''fD0wKT4+M10qK19bOCsobHw9MCk+PjNdKyArX1tjPj4zXSorX1tsPj4zXSl9ZnVuY3Rpb24gdHgobCl7dmFyIGM7cmV0dXJuKyhjPTEtKGw9K2wpKSpjKihjKzMqbCl9ZnVuY3Rpb24gVkIobCl7cmV0dXJuKyhsPStsKSpsKigzKigxLWwpK2wpfWZ1bmN0aW9uIHU1KGwsYyxmKXtsfD0wLGN8''@;'; + put 'put ''PTAsZnw9MDt2YXIgYmUsT2UsTGUsUmUsVmUscWUsU3QscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLEs9MCxwZT0wLGdlPTAsSGU9MCxudD0wLFdlPTAsb3Q9MCxrdD0wO1N0PWxlLGxlPWxlKzExMnwwLG50PVN0KzgwfDAscWU9U3QrNjR8MCxWZT1TdCs0OHwwLG90''@;'; + put 'put ''PTQsV2U9MHxCMCg0MCksYVtXZT4+Ml09MCxiZT1TdCszMnwwLE9lPVN0KzE2fDAsTGU9U3QsUmU9U3QrOTZ8MCxvdD0wfFBmKDE4OTg1NiwxLDB8V2UsMHxvdCksV2U9RG4scD1Nbj0wLE1uPTAsMCE9KDB8cCkmMCE9KDB8eG4pPygobT0wfGdpKDB8YVtwPj4yXSwwfG90LDB8V2UpKXx8emUo''@;'; + put 'put ''MHxwLDB8eG4pLERuPXhuKTptPS0xLHA9MT09KDB8bSk/RG46MDtlOmZvcig7Oyl7aWYoMHxwKXtwPS0yO2JyZWFrfWlmKE1uPTAsc3MoMTE2LDB8YVsoQT1sKzR8MCk+PjJdKSxwPU1uLE1uPTAsMCE9KDB8cCkmMCE9KDB8eG4pPygobT0wfGdpKDB8YVtwPj4yXSwwfG90LDB8V2UpKXx8emUo''@;'; + put 'put ''MHxwLDB8eG4pLERuPXhuKTptPS0xLDEhPSgwfG0pKWlmKGFbNDc1MDNdPTAsYVs0NzUwNF09MCxNbj0wLHNzKDExNyxhW0E+PjJdPDwxfDApLHA9TW4sTW49MCwwIT0oMHxwKSYwIT0oMHx4bik/KChtPTB8Z2koMHxhW3A+PjJdLDB8b3QsMHxXZSkpfHx6ZSgwfHAsMHx4biksRG49eG4pOm09''@;'; + put 'put ''LTEsMSE9KDB8bSkpe2ZvcihhWzQ3NTA3XT1NPSgwfGFbNDc1MDZdKS8yfDAsYVs0NzUwOF09TSstMSxNPTB8YVtBPj4yXSxBPTB8YVtsPj4yXSxwPTAsbT0tMSx3PUFzOyEoKDB8cCk+PSgwfE0pKTspcGU9KGdlPXc+KGt0PStfW0ErKHA8PDQpPj4zXSkpP3A6bSxwPXArMXwwLG09cGUsdz1n''@;'; + put 'put ''ZT9rdDp3O2FbT2U+PjJdPWFbKGdlPUErKG08PDQpfDApPj4yXSxhW09lKzQ+PjJdPWFbZ2UrND4+Ml0sYVtPZSs4Pj4yXT1hW2dlKzg+PjJdLGFbT2UrMTI+PjJdPWFbZ2UrMTI+PjJdLGFbYmU+PjJdPWFbKGdlPUErKCgwPT0oMHxtKT9NOm0pKy0xPDw0KXwwKT4+Ml0sYVtiZSs0Pj4yXT1h''@;'; + put 'put ''W2dlKzQ+PjJdLGFbYmUrOD4+Ml09YVtnZSs4Pj4yXSxhW2JlKzEyPj4yXT1hW2dlKzEyPj4yXSxhW0xlPj4yXT1hWyhnZT1BKygoKDB8bSk9PShNKy0xfDApPzA6bSsxfDApPDw0KXwwKT4+Ml0sYVtMZSs0Pj4yXT1hW2dlKzQ+PjJdLGFbTGUrOD4+Ml09YVtnZSs4Pj4yXSxhW0xlKzEyPj4y''@;'; + put 'put ''XT1hW2dlKzEyPj4yXSxnZT0rX1tiZT4+M109PShrdD0rX1tPZT4+M10pJiZrdD09K19bTGU+PjNdJiYrX1tMZSs4Pj4zXT4rX1tPZSs4Pj4zXT8xNToxMjt0OmRve2lmKDEyPT0oMHxnZSkpe2lmKGdlPTAsTW49MCxwPTB8SnMoMzYsMHxiZSwwfE9lLDB8TGUpLG09TW4sTW49MCwwIT0oMHxt''@;'; + put 'put ''KSYwIT0oMHx4bik/KChBPTB8Z2koMHxhW20+PjJdLDB8b3QsMHxXZSkpfHx6ZSgwfG0sMHx4biksRG49eG4pOkE9LTEsMT09KDB8QSkpe3A9RG47Y29udGludWUgZX1pZigxPT0oMHxwKSlmb3IoQT0wfGFbNDc1MTBdLHA9MHxhWzQ3NTExXSxtPTA7Oyl7aWYoKDB8bSk+PSgwfE0pKWJyZWFr''@;'; + put 'put ''IHQ7Yj0wfGFbbD4+Ml0sKDB8bSk+MCYmK19bYisobTw8NCk+PjNdPT0rX1tiKygoSGU9bSstMXwwKTw8NCk+PjNdJiYrX1tiKyhtPDw0KSs4Pj4zXT09K19bYisoSGU8PDQpKzg+PjNdfHwoYVtBKygocGU9MHxhWzQ3NTAzXSk8PDMpPj4yXT1iKyhtPDw0KSxhW0ErKHBlPDwzKSs0Pj4yXT1B''@;'; + put 'put ''KygoKDB8cGUpJSgwfE0pfDApPDwzKSxhW3ArKHBlPDwyKT4+Ml09QSsocGU8PDMpLGFbNDc1MDNdPXBlKzEpLG09bSsxfDB9ZWxzZSBnZT0xNX19d2hpbGUoMCk7dDpkb3tpZigxNT09KDB8Z2UpKWZvcihnZT0wLGI9MHxhWzQ3NTEwXSxwPTB8YVs0NzUxMV0sQT1NOzspe2lmKG09QSstMXww''@;'; + put 'put ''LCgwfEEpPD0wKWJyZWFrIHQ7az0wfGFbbD4+Ml0sKDB8QSk8KDB8TSkmJitfW2srKG08PDQpPj4zXT09K19baysoQTw8NCk+PjNdJiYrX1trKyhtPDw0KSs4Pj4zXT09K19baysoQTw8NCkrOD4+M118fChhW2IrKChBPTB8YVs0NzUwM10pPDwzKT4+Ml09aysobTw8NCksYVtiKyhBPDwzKSs0''@;'; + put 'put ''Pj4yXT1iKygoKDB8QSklKDB8TSl8MCk8PDMpLGFbcCsoQTw8Mik+PjJdPWIrKEE8PDMpLGFbNDc1MDNdPUErMSksQT1tfX13aGlsZSgwKTtpZihNbj0wLFoxKDI5LDB8cCwwfGFbNDc1MDNdKSxwPU1uLE1uPTAsMCE9KDB8cCkmMCE9KDB8eG4pPygobT0wfGdpKDB8YVtwPj4yXSwwfG90LDB8''@;'; + put 'put ''V2UpKXx8emUoMHxwLDB8eG4pLERuPXhuKTptPS0xLDEhPSgwfG0pKXtiPTAscD0wfGFbNDc1MDRdO3Q6Zm9yKDs7KXtpZigoMHxiKT49KDB8cCkpe0s9MDticmVha31mb3IoQT1rPWIrMXwwOzspe2lmKCgwfEEpPj0oMHxwKSl7Yj1rO2NvbnRpbnVlIHR9aWYoTW49MCxaMSgzMCwwfGIsMHxB''@;'; + put 'put ''KSxwPU1uLE1uPTAsMCE9KDB8cCkmMCE9KDB8eG4pPygobT0wfGdpKDB8YVtwPj4yXSwwfG90LDB8V2UpKXx8emUoMHxwLDB8eG4pLERuPXhuKTptPS0xLDE9PSgwfG0pKXtwPURuO2NvbnRpbnVlIGV9QT1BKzF8MCxwPTB8YVs0NzUwNF19fWZvcig7ISgoMHxLKT49KDB8cCkpOyl7aWYoTW49''@;'; + put 'put ''MCxtPTB8RmwoMTA1LDB8SywwfGMpLEE9TW4sTW49MCwwIT0oMHxBKSYwIT0oMHx4bik/KChiPTB8Z2koMHxhW0E+PjJdLDB8b3QsMHxXZSkpfHx6ZSgwfEEsMHx4biksRG49eG4pOmI9LTEsMT09KDB8Yikpe3A9RG47Y29udGludWUgZX1pZigwfG0pYnJlYWs7Sz1LKzF8MH1pZigoMHxLKT09''@;'; + put 'put ''KDB8cCkpe2lmKHA9MHxhWzE1NzEyXSxNbj0wLGFbVmU+PjJdPTE0MTg1OCxhW1ZlKzQ+PjJdPTE5MixhW1ZlKzg+PjJdPTE0MTg2OSxKcygzMiwwfHAsMTQxODM5LDB8VmUpLHA9TW4sTW49MCwwIT0oMHxwKSYwIT0oMHx4bik/KChtPTB8Z2koMHxhW3A+PjJdLDB8b3QsMHxXZSkpfHx6ZSgw''@;'; + put 'put ''fHAsMHx4biksRG49eG4pOm09LTEsMT09KDB8bSkpe3A9RG47Y29udGludWV9Z2U9NDE7YnJlYWt9Zm9yKHBlPWMrMTZ8MCxrPTA7ISgoMHxrKT49KDB8cCkpOyl7aWYoTW49MCxtPTB8RmwoMTA1LDB8aywwfHBlKSxBPU1uLE1uPTAsMCE9KDB8QSkmMCE9KDB8eG4pPygoYj0wfGdpKDB8YVtB''@;'; + put 'put ''Pj4yXSwwfG90LDB8V2UpKXx8emUoMHxBLDB8eG4pLERuPXhuKTpiPS0xLDE9PSgwfGIpKXtwPURuO2NvbnRpbnVlIGV9aWYoMHxtKWJyZWFrO2s9aysxfDB9aWYoKDB8ayk9PSgwfHApKXtpZihwPTB8YVsxNTcxMl0sTW49MCxhW3FlPj4yXT0xNDE4NTgsYVtxZSs0Pj4yXT0yMDAsYVtxZSs4''@;'; + put 'put ''Pj4yXT0xNDE5MDIsSnMoMzIsMHxwLDE0MTgzOSwwfHFlKSxwPU1uLE1uPTAsMCE9KDB8cCkmMCE9KDB8eG4pPygobT0wfGdpKDB8YVtwPj4yXSwwfG90LDB8V2UpKXx8emUoMHxwLDB8eG4pLERuPXhuKTptPS0xLDE9PSgwfG0pKXtwPURuO2NvbnRpbnVlfWdlPTQ4O2JyZWFrfWlmKE1uPTAs''@;'; + put 'put ''cD0wfEZsKDEwNiwwfEssMHxrKSxtPU1uLE1uPTAsMCE9KDB8bSkmMCE9KDB8eG4pPygoQT0wfGdpKDB8YVttPj4yXSwwfG90LDB8V2UpKXx8emUoMHxtLDB8eG4pLERuPXhuKTpBPS0xLDEhPSgwfEEpKXtpZighcCl7aWYocD0wfGFbMTU3MTJdLE1uPTAsYVtudD4+Ml09MTQxODU4LGFbbnQr''@;'; + put 'put ''ND4+Ml09MjA3LGFbbnQrOD4+Ml09MTQxOTQwLEpzKDMyLDB8cCwxNDE4MzksMHxudCkscD1NbixNbj0wLDAhPSgwfHApJjAhPSgwfHhuKT8oKG09MHxnaSgwfGFbcD4+Ml0sMHxvdCwwfFdlKSl8fHplKDB8cCwwfHhuKSxEbj14bik6bT0tMSwxPT0oMHxtKSl7cD1Ebjtjb250aW51ZX1pZihN''@;'; + put 'put ''bj0wLHNzKDExOCwyKSxwPU1uLE1uPTAsMCE9KDB8cCkmMCE9KDB8eG4pPygobT0wfGdpKDB8YVtwPj4yXSwwfG90LDB8V2UpKXx8emUoMHxwLDB8eG4pLERuPXhuKTptPS0xLDE9PSgwfG0pKXtwPURuO2NvbnRpbnVlfWdlPTUzO2JyZWFrfWlmKCgwfEspPT0oMHxrKSl7aWYoTW49MCxzcygx''@;'; + put 'put ''MTgsMikscD1NbixNbj0wLDAhPSgwfHApJjAhPSgwfHhuKT8oKG09MHxnaSgwfGFbcD4+Ml0sMHxvdCwwfFdlKSl8fHplKDB8cCwwfHhuKSxEbj14bik6bT0tMSwxPT0oMHxtKSl7cD1Ebjtjb250aW51ZX1nZT01NjticmVha31pZihhW1JlPj4yXT1jLGFbUmUrND4+Ml09MCxhWyhtPVJlKzh8''@;'; + put 'put ''MCk+PjJdPXBlLGFbUmUrMTI+PjJdPTAsTW49MCxaMSgzMSwxLDB8UmUpLHA9TW4sTW49MCwwIT0oMHxwKSYwIT0oMHx4bik/KChBPTB8Z2koMHxhW3A+PjJdLDB8b3QsMHxXZSkpfHx6ZSgwfHAsMHx4biksRG49eG4pOkE9LTEsMSE9KDB8QSkpe2FbNDc1MDldPWFbNDc1MDddLFI9Szt0OmZv''@;'; + put 'put ''cig7Oyl7aWYoLTE9PSgwfFIpKXtBPW0scD0wO2JyZWFrfWZvcihhWyhHPTB8YVs0NzUxM10pKyg1MipSfDApPj4yXT0yLHA9MDs7KXtpZigoMHxwKT49Myl7Z2U9NjU7YnJlYWt9aWYoMHwoZ2U9MHxhW0crKDUyKlJ8MCkrNCsocDw8NCkrMTI+PjJdKSYmMT09KDB8YVtnZT4+Ml0pKXtnZT02''@;'; + put 'put ''ODticmVha31wPXArMXwwfWlmKDY1PT0oMHxnZSkpaWYoZ2U9MCwzPT0oMHxwKSl7aWYoTW49MCxwPTB8SnMoMzYsMHxwZSwwfGFbYVsocD0wfGFbNDc1MDVdKSsoYVs0NzUwN108PDIpPj4yXT4+Ml0sMHxhWyhrPTB8YVtwKyhhWzQ3NTA4XTw8Mik+PjJdKT4+Ml0pLEE9TW4sTW49MCwwIT0o''@;'; + put 'put ''MHxBKSYwIT0oMHx4bik/KChiPTB8Z2koMHxhW0E+PjJdLDB8b3QsMHxXZSkpfHx6ZSgwfEEsMHx4biksRG49eG4pOmI9LTEsMT09KDB8Yikpe3A9RG47Y29udGludWUgZX1EPShiPTE9PSgwfHApKT9tOmssYj1iP2s6bX1lbHNlIGdlPTY4O2lmKDY4PT0oMHxnZSkpe2lmKGdlPTAsTW49MCxw''@;'; + put 'put ''PTB8SnMoMzYsMHxhWyhrPTB8YVtHKyg1MipSfDApKzQrKHA8PDQpPj4yXSk+PjJdLDB8YVthW0crKDUyKlJ8MCkrNCsoKChwKzF8MCklM3wwKTw8NCkrND4+Ml0+PjJdLDB8YVsoTT0wfGFbRysoNTIqUnwwKSs0KyhwPDw0KSs0Pj4yXSk+PjJdKSxBPU1uLE1uPTAsMCE9KDB8QSkmMCE9KDB8''@;'; + put 'put ''eG4pPygoYj0wfGdpKDB8YVtBPj4yXSwwfG90LDB8V2UpKXx8emUoMHxBLDB8eG4pLERuPXhuKTpiPS0xLDE9PSgwfGIpKXtwPURuO2NvbnRpbnVlIGV9RD0oYj0xPT0oMHxwKSk/azpNLGI9Yj9NOmt9ZG97aWYoKDB8Uik9PSgwfEspKXtpZihNbj0wLFoxKDMxLDIsMHxiKSxwPU1uLE1uPTAs''@;'; + put 'put ''MCE9KDB8cCkmMCE9KDB8eG4pPygoQT0wfGdpKDB8YVtwPj4yXSwwfG90LDB8V2UpKXx8emUoMHxwLDB8eG4pLERuPXhuKTpBPS0xLDE9PSgwfEEpKXtwPURuO2NvbnRpbnVlIGV9aWYoTW49MCxaMSgzMSwxLDB8RCkscD1NbixNbj0wLDAhPSgwfHApJjAhPSgwfHhuKT8oKEE9MHxnaSgwfGFb''@;'; + put 'put ''cD4+Ml0sMHxvdCwwfFdlKSl8fHplKDB8cCwwfHhuKSxEbj14bik6QT0tMSwxPT0oMHxBKSl7cD1Ebjtjb250aW51ZSBlfXA9MH1lbHNle2lmKCgwfGFbKE09MHxhWzQ3NTA1XSkrKGFbNDc1MDddPDwyKT4+Ml0pIT0oMHxEKSYmKDB8YVtNKyhhWzQ3NTA4XTw8Mik+PjJdKSE9KDB8RCkpe2lm''@;'; + put 'put ''KE1uPTAsYj0wfGEwKDM0LDB8RCkscD1NbixNbj0wLDAhPSgwfHApJjAhPSgwfHhuKT8oKEE9MHxnaSgwfGFbcD4+Ml0sMHxvdCwwfFdlKSl8fHplKDB8cCwwfHhuKSxEbj14bik6QT0tMSwxPT0oMHxBKSl7cD1Ebjtjb250aW51ZSBlfWlmKE1uPTAsWjEoMzIsMiwwfGIpLHA9TW4sTW49MCww''@;'; + put 'put ''IT0oMHxwKSYwIT0oMHx4bik/KChBPTB8Z2koMHxhW3A+PjJdLDB8b3QsMHxXZSkpfHx6ZSgwfHAsMHx4biksRG49eG4pOkE9LTEsMT09KDB8QSkpe3A9RG47Y29udGludWUgZX1pZihNbj0wLFoxKDMxLDEsMHxEKSxwPU1uLE1uPTAsMCE9KDB8cCkmMCE9KDB8eG4pPygoQT0wfGdpKDB8YVtw''@;'; + put 'put ''Pj4yXSwwfG90LDB8V2UpKXx8emUoMHxwLDB8eG4pLERuPXhuKTpBPS0xLDE9PSgwfEEpKXtwPURuO2NvbnRpbnVlIGV9aWYoKDB8Yik8PSgwfGFbNDc1MDldKSl7cD0wO2JyZWFrfWFbNDc1MDldPWIscD0wO2JyZWFrfWlmKE1uPTAsaz0wfGEwKDM0LDB8YikscD1NbixNbj0wLDAhPSgwfHAp''@;'; + put 'put ''JjAhPSgwfHhuKT8oKEE9MHxnaSgwfGFbcD4+Ml0sMHxvdCwwfFdlKSl8fHplKDB8cCwwfHhuKSxEbj14bik6QT0tMSwxPT0oMHxBKSl7cD1Ebjtjb250aW51ZSBlfWlmKE1uPTAsWjEoMzIsMSwwfGspLHA9TW4sTW49MCwwIT0oMHxwKSYwIT0oMHx4bik/KChBPTB8Z2koMHxhW3A+PjJdLDB8''@;'; + put 'put ''b3QsMHxXZSkpfHx6ZSgwfHAsMHx4biksRG49eG4pOkE9LTEsMT09KDB8QSkpe3A9RG47Y29udGludWUgZX1pZihNbj0wLFoxKDMxLDIsMHxiKSxwPU1uLE1uPTAsMCE9KDB8cCkmMCE9KDB8eG4pPygoQT0wfGdpKDB8YVtwPj4yXSwwfG90LDB8V2UpKXx8emUoMHxwLDB8eG4pLERuPXhuKTpB''@;'; + put 'put ''PS0xLDE9PSgwfEEpKXtwPURuO2NvbnRpbnVlIGV9aWYoKDB8ayk+PSgwfGFbNDc1MDldKSl7cD0wO2JyZWFrfWFbNDc1MDldPWsscD0wfX13aGlsZSgwKTtmb3IoOzspe2lmKCgwfHApPj0zKXtSPS0xO2NvbnRpbnVlIHR9aWYoMHwoQT0wfGFbRysoNTIqUnwwKSs0KyhwPDw0KSsxMj4+Ml0p''@;'; + put 'put ''JiYxPT0oMHxhW0E+PjJdKSlicmVhaztwPXArMXwwfVI9KEEtKDB8YVs0NzUxM10pfDApLzUyfDB9Zm9yKDtBOylBPTB8YVtBKzQ+PjJdLHA9cCsxfDA7aWYoTW49MCxzcygxMTgsMHxwKSxBPU1uLE1uPTAsMCE9KDB8QSkmMCE9KDB8eG4pPygoYj0wfGdpKDB8YVtBPj4yXSwwfG90LDB8V2Up''@;'; + put 'put ''KXx8emUoMHxBLDB8eG4pLERuPXhuKTpiPS0xLDEhPSgwfGIpKXtnZT05NDticmVha31wPURufWVsc2UgcD1Ebn1lbHNlIHA9RG59ZWxzZSBwPURufWVsc2UgcD1EbjtlbHNlIHA9RG59aWYoNDE9PSgwfGdlKSlwPS0xO2Vsc2UgaWYoNDg9PSgwfGdlKSlwPS0xO2Vsc2UgaWYoNTM9PSgwfGdl''@;'; + put 'put ''KSlhW2YrND4+Ml09MixhWyhwPTB8YVs0NzUxMl0pPj4yXT1hW2M+PjJdLGFbcCs0Pj4yXT1hW2MrND4+Ml0sYVtwKzg+PjJdPWFbYys4Pj4yXSxhW3ArMTI+PjJdPWFbYysxMj4+Ml0sYVsoV2U9cCsxNnwwKT4+Ml09YVtwZT4+Ml0sYVtXZSs0Pj4yXT1hW3BlKzQ+PjJdLGFbV2UrOD4+Ml09''@;'; + put 'put ''YVtwZSs4Pj4yXSxhW1dlKzEyPj4yXT1hW3BlKzEyPj4yXSxhW2Y+PjJdPXAscD0wO2Vsc2UgaWYoNTY9PSgwfGdlKSlhW2YrND4+Ml09MixhWyhwPTB8YVs0NzUxMl0pPj4yXT1hW2M+PjJdLGFbcCs0Pj4yXT1hW2MrND4+Ml0sYVtwKzg+PjJdPWFbYys4Pj4yXSxhW3ArMTI+PjJdPWFbYysx''@;'; + put 'put ''Mj4+Ml0sYVsoV2U9cCsxNnwwKT4+Ml09YVtwZT4+Ml0sYVtXZSs0Pj4yXT1hW3BlKzQ+PjJdLGFbV2UrOD4+Ml09YVtwZSs4Pj4yXSxhW1dlKzEyPj4yXT1hW3BlKzEyPj4yXSxhW2Y+PjJdPXAscD0wO2Vsc2UgaWYoOTQ9PSgwfGdlKSl7Zm9yKGFbZis0Pj4yXT1wLEE9MHxhWzQ3NTEyXTtw''@;'; + put 'put ''PXArLTF8MCxtOylhWyhXZT1BKyhwPDw0KXwwKT4+Ml09YVsobnQ9MHxhW20+PjJdKT4+Ml0sYVtXZSs0Pj4yXT1hW250KzQ+PjJdLGFbV2UrOD4+Ml09YVtudCs4Pj4yXSxhW1dlKzEyPj4yXT1hW250KzEyPj4yXSxtPTB8YVttKzQ+PjJdO2FbZj4+Ml09QSxwPTB9cmV0dXJuIEZ0KDB8b3Qp''@;'; + put 'put ''LGxlPVN0LDB8cH1mdW5jdGlvbiBKZihsLGMsZil7dmFyIG0scD0wO3JldHVybiAwfCgocD0oK19bKGZ8PTApPj4zXS0obT0rX1soY3w9MCk+PjNdKSkqKCtfWzgrKGx8PTApPj4zXS0ocD0rX1tjKzg+PjNdKSktKCtfW2w+PjNdLW0pKigrX1tmKzg+PjNdLXApKT4wPzE6cDwwPzI6Myl9ZnVu''@;'; + put 'put ''Y3Rpb24gckEobCxjLGYscCl7Y3w9MDt2YXIgYixrLE0sbT0wLEE9MCx3PTA7TT0xPT0oMHxKZihtPTB8YVthWyhmfD0wKSsoKCgobHw9MCktMSsocHw9MCl8MCklKDB8cCl8MCk8PDIpPj4yXT4+Ml0sYj0wfGFbYVtmKyhsPDwyKT4+Ml0+PjJdLEE9MHxhW2FbZisoKChsKzF8MCklKDB8cCl8''@;'; + put 'put ''MCk8PDIpPj4yXT4+Ml0pKSxrPTB8YVthW2YrKGM8PDIpPj4yXT4+Ml0sTT8xPT0oMHxKZihiLGssbSkpPyhtPTB8SmYoayxiLEEpLEE9MSx3PTUpOm09MDoobT0wfEpmKGIsayxBKSxBPTIsdz01KTtlOmRve2lmKDU9PSgwfHcpKWlmKCgwfG0pPT0oMHxBKSlmb3IobT0wOzspe2lmKCgwfG0p''@;'; + put 'put ''Pj0oMHxwKSl7bT0xO2JyZWFrIGV9aWYoQT1tLCEoKDB8KHc9KDB8KG09bSsxfDApKSUoMHxwKXwwKSk9PSgwfGMpfCgwfEEpPT0oMHxjKXwoMHxBKT09KDB8bCl8KDB8dyk9PSgwfGwpKSYmMHx1XyhiLGssMHxhW2FbZisoQTw8Mik+PjJdPj4yXSwwfGFbYVtmKyh3PDwyKT4+Ml0+PjJdKSl7''@;'; + put 'put ''bT0wO2JyZWFrfX1lbHNlIG09MH13aGlsZSgwKTtyZXR1cm4gMHxtfWZ1bmN0aW9uIHJ4KGwsYyxmKXtsfD0wLGN8PTAsZnw9MDt2YXIgQSxwPTAsbT0wLHc9MDtmb3IoKDB8KHA9MHxhWzQ3NTA0XSkpPCgwfChtPTB8YVs0NzUxNV0pKT93PXA6KGZ1bmN0aW9uIFRtKGwpe3ZhciBtLGM9MCxm''@;'; + put 'put ''PTAscD0wO209bGUsbGU9bGUrMzJ8MCxwPW0rMTZ8MCxmPW0sKDB8YVs0NzUxNV0pPCgwfChsfD0wKSkmJigoYz0wfGFbNDc1MTNdKT8oZj0wfFVhKGMsNTIqbHwwKSxhWzQ3NTEzXT1mLGZ8fChmPTB8YVsxNTcxMl0sYVtwPj4yXT0xNDE4NTgsYVtwKzQ+PjJdPTU1OCxhW3ArOD4+Ml09MTQy''@;'; + put 'put ''MDQzLFQwKGYsMTQxODM5LHApLHplKDE4OTg1NiwxKSkpOihwPTB8QjAoNTIqbHwwKSxhWzQ3NTEzXT1wLHB8fChwPTB8YVsxNTcxMl0sYVtmPj4yXT0xNDE4NTgsYVtmKzQ+PjJdPTU1MixhW2YrOD4+Ml09MTQyMDI0LFQwKHAsMTQxODM5LGYpLHplKDE4OTg1NiwxKSkpLGFbNDc1MTVdPWwp''@;'; + put 'put ''LGxlPW19KG0rMjB8MCksdz0wfGFbNDc1MDRdKSxBPTB8YVs0NzUxM10sYVs0NzUwNF09dysxLGFbKG09QSsoNTIqd3wwKXwwKT4+Ml09MCxhW0ErKDUyKnd8MCkrND4+Ml09bCxhW0ErKDUyKnd8MCkrOD4+Ml09YyxhW0ErKDUyKnd8MCkrMTY+PjJdPTAsYVtBKyg1Mip3fDApKzIwPj4yXT1j''@;'; + put 'put ''LGFbQSsoNTIqd3wwKSsyND4+Ml09ZixhW0ErKDUyKnd8MCkrMzI+PjJdPTAsYVtBKyg1Mip3fDApKzM2Pj4yXT1mLGFbQSsoNTIqd3wwKSs0MD4+Ml09bCxhW0ErKDUyKnd8MCkrNDg+PjJdPTAscD0wOzMhPSgwfHApOylhW0ErKDUyKnd8MCkrNCsocDw8NCkrOD4+Ml09bSxwPXArMXwwfWZ1''@;'; + put 'put ''bmN0aW9uIHVfKGwsYyxmLHApe3B8PTA7dmFyIEEsbT0wLHc9MCxiPTA7cmV0dXJuIDMhPSgwfChBPTB8SmYobHw9MCxjfD0wLGZ8PTApKSkmJjMhPSgwfCh3PTB8SmYobCxjLHApKSkmJjMhPSgwfChiPTB8SmYoZixwLGwpKSkmJjMhPSgwfChtPTB8SmYoZixwLGMpKSk/KDE9PSgwfEEpXjE9''@;'; + put 'put ''PSgwfHcpKSYoMT09KDB8YileMT09KDB8bSkpJjF8MDowPT0oMHxjNShsLGMsZikpJiYwPT0oMHxjNShsLGMscCkpJiYwPT0oMHxjNShmLHAsbCkpPzAhPSgwfGM1KGYscCxjKSl8MDoxfWZ1bmN0aW9uIGM1KGwsYyxmKXt2YXIgcCx3LG09MCxBPTA7cmV0dXJuIHc9K19bKGN8PTApPj4zXS0o''@;'; + put 'put ''bT0rX1sobHw9MCk+PjNdKSxwPStfW2MrOD4+M10tKEE9K19bbCs4Pj4zXSksbT0rX1soZnw9MCk+PjNdLW0sQT0rX1tmKzg+PjNdLUEsMHwoMz09KDB8SmYobCxjLGYpKSYmQSpwK20qdz49MD9BKkErbSptPD1wKnArdyp3JjE6MCl9ZnVuY3Rpb24gTGgobCxjKXtjfD0wO3ZhciBmPTAscD0w''@;'; + put 'put ''LG09MCxBPTAsdz0wLGI9MCxrPTA7cD0rX1syNCsobHw9MCk+PjNdO2U6ZG97aWYocDwxZS03JnA+LTFlLTcpbD0wfG94KGwsYyk7ZWxzZSBmb3Iodz0rX1tsKzE2Pj4zXS8oMypwKSxBPStfW2wrOD4+M10vcCxtPXcqdyxwPTIqdyptLXcqQSsgK19bbD4+M10vcCxtPS4zMzMzMzMzMzMzMzMz''@;'; + put 'put ''MzMzKkEtbSxtKj1tKm0qNCxBPXAqcCttLEE8MD8oYj0rVWwoKyArRDAoKy1BKSwrLXApLHA9Miora2ooLjUqK0QwKCstbSkpLF9bYz4+M109cCoraGEoLjMzMzMzMzMzMzMzMzMzMzMqYiksX1tjKzg+PjNdPStoYSguMzMzMzMzMzMzMzMzMzMzMyooYis2LjI4MzE4NTMwNzE3OTU4NikpKnAs''@;'; + put 'put ''cD0raGEoLjMzMzMzMzMzMzMzMzMzMzMqKGIrLTYuMjgzMTg1MzA3MTc5NTg2KSkqcCxsPTIsZj03KTooYj0uNSooK0QwKCtBKS1wKSxtPStraihiKSxwPStraigtcC1iKSttLF9bYz4+M109cCxBPjA/bD0xOihwKj0tLjUsX1tjKzE2Pj4zXT1wLGw9MSxmPTcpKSw3PT0oMHxmKSYmKF9bYyso''@;'; + put 'put ''bDw8Myk+PjNdPXAsbD0zKSxmPTA7Oyl7aWYoKDB8Zik+PSgwfGwpKWJyZWFrIGU7X1soaz1jKyhmPDwzKXwwKT4+M109K19baz4+M10tdyxmPWYrMXwwfX13aGlsZSgwKTtyZXR1cm4gMHxsfWZ1bmN0aW9uIG94KGwsYyl7Y3w9MDt2YXIgZj0wLHA9MDtmPStfWzE2KyhsfD0wKT4+M107ZG97''@;'; + put 'put ''aWYoZjwxZS03JmY+LTFlLTcpbD0wfGZfKGwsYyk7ZWxzZXtpZighKChmPShwPStfW2wrOD4+M10vKDIqZikpKnAtK19bbD4+M10vZik8MCkpe2lmKDA9PWYpe19bYz4+M109LXAsbD0xO2JyZWFrfWY9K0QwKCtmKS1wLF9bYz4+M109ZixfW2MrOD4+M109LTIqcC1mLGw9MjticmVha31sPTB9''@;'; + put 'put ''fXdoaWxlKDApO3JldHVybiAwfGx9ZnVuY3Rpb24gZl8obCxjKXt2YXIgZixwO3JldHVybiBmPStfWyhsfD0wKT4+M10sKHA9K19bbCs4Pj4zXSk8MWUtNyZwPi0xZS03P2w9ZjwxZS03JmY+LTFlLTc/NDowOihfWyhjfD0wKT4+M109LWYvcCxsPTEpLDB8bH1mdW5jdGlvbiBoXyhsKXtGdCgw''@;'; + put 'put ''fGFbKGx8PTApPj4yXSksRnQobCl9ZnVuY3Rpb24gUmQobCxjKXtjfD0wO3ZhciBtLGIsZj0wLHA9MCxBPTAsdz0wLGs9MCxNPTAsRD0wLFI9MDtmb3IoZj0wfGFbNDc1MThdLCgwfChiPSgzKihwPTB8YVs0KyhsfD0wKT4+Ml0pfDApLTJ8MCkpPigwfGFbNDc1MTddKT8oZj1mPzB8VWEoZixi''@;'; + put 'put ''PDw0KTowfEIwKGI8PDQpLGFbNDc1MThdPWYsYVs0NzUxN109Yix3PWYsQT1mKToodz1mLEE9ZiksYVt3Pj4yXT1hWyhtPTB8YVtsPj4yXSk+PjJdLGFbdys0Pj4yXT1hW20rND4+Ml0sYVt3Kzg+PjJdPWFbbSs4Pj4yXSxhW3crMTI+PjJdPWFbbSsxMj4+Ml0scjEodysxNnwwLDB8bSwxNiks''@;'; + put 'put ''cD1wKy0xfDAsZj0xLGw9MjshKCgwfGYpPj0oMHxwKSk7KWs9dysobCsyPDw0KXwwLE09dysobCsxPDw0KXwwLGFbKFI9dysobDw8NCl8MCk+PjJdPWFbKEQ9bSsoZjw8NCl8MCk+PjJdLGFbUis0Pj4yXT1hW0QrND4+Ml0sYVtSKzg+PjJdPWFbRCs4Pj4yXSxhW1IrMTI+PjJdPWFbRCsxMj4+''@;'; + put 'put ''Ml0scjEoMHxNLDB8RCwxNiksYVtrPj4yXT1hW00+PjJdLGFbays0Pj4yXT1hW00rND4+Ml0sYVtrKzg+PjJdPWFbTSs4Pj4yXSxhW2srMTI+PjJdPWFbTSsxMj4+Ml0sZj1mKzF8MCxsPWwrM3wwO2FbKEQ9dysobDw8NCl8MCk+PjJdPWFbKFI9bSsoZjw8NCl8MCk+PjJdLGFbRCs0Pj4yXT1h''@;'; + put 'put ''W1IrND4+Ml0sYVtEKzg+PjJdPWFbUis4Pj4yXSxhW0QrMTI+PjJdPWFbUisxMj4+Ml0scjEodysobCsxPDw0KXwwLDB8UiwxNiksYVtjKzQ+PjJdPWIsYVtjPj4yXT1BfWZ1bmN0aW9uIFVjKGwsYyxmKXt2YXIgbSxwPTA7cmV0dXJuIDB8KChwPSgrX1soZnw9MCk+PjNdLShtPStfWyhjfD0w''@;'; + put 'put ''KT4+M10pKSooK19bOCsobHw9MCk+PjNdLShwPStfW2MrOD4+M10pKS0oK19bbD4+M10tbSkqKCtfW2YrOD4+M10tcCkpPjFlLTQ/MToocDwtMWUtNCk8PDMxPj4zMSl9ZnVuY3Rpb24gZjUobCxjLGYpe2Z8PTA7dmFyIHA9MCxtPTAsQT0wO3JldHVybiAxJihsPShtPStfWyhsfD0wKT4+M10p''@;'; + put 'put ''IT0oQT0rX1soY3w9MCk+PjNdKT9tPChwPStfW2Y+PjNdKSZwPEE/MTpBPHA/cDxtOjA6KEE9K19bbCs4Pj4zXSk8KG09K19bZis4Pj4zXSkmbTwocD0rX1tjKzg+PjNdKT8xOnA8bT9tPEE6MCl8MH1mdW5jdGlvbiBDNihsLGMsZixwKXtjfD0wLGZ8PTAscHw9MDt2YXIgQSx3LGIsayxELG09''@;'; + put 'put ''MCxNPTA7RD1sZSxsZT1sZSs0OHwwLGI9RCszMnwwLHc9RCsxNnwwLGFbKEE9RCk+PjJdPWFbKGx8PTApPj4yXSxhW0ErND4+Ml09YVtsKzQ+PjJdLGFbQSs4Pj4yXT1hW2wrOD4+Ml0sYVtBKzEyPj4yXT1hW2wrMTI+PjJdLGFbdz4+Ml09YVtjPj4yXSxhW3crND4+Ml09YVtjKzQ+PjJdLGFb''@;'; + put 'put ''dys4Pj4yXT1hW2MrOD4+Ml0sYVt3KzEyPj4yXT1hW2MrMTI+PjJdLGFbYj4+Ml09YVtmPj4yXSxhW2IrND4+Ml09YVtmKzQ+PjJdLGFbYis4Pj4yXT1hW2YrOD4+Ml0sYVtiKzEyPj4yXT1hW2YrMTI+PjJdLDA9PSgwfChrPTB8VWMoQSx3LGIpKSkmJihhW0E+PjJdPWFbbD4+Ml0sYVtBKzQ+''@;'; + put 'put ''PjJdPWFbbCs0Pj4yXSxhW0ErOD4+Ml09YVtsKzg+PjJdLGFbQSsxMj4+Ml09YVtsKzEyPj4yXSxhW3c+PjJdPWFbYz4+Ml0sYVt3KzQ+PjJdPWFbYys0Pj4yXSxhW3crOD4+Ml09YVtjKzg+PjJdLGFbdysxMj4+Ml09YVtjKzEyPj4yXSxhW2I+PjJdPWFbZj4+Ml0sYVtiKzQ+PjJdPWFbZis0''@;'; + put 'put ''Pj4yXSxhW2IrOD4+Ml09YVtmKzg+PjJdLGFbYisxMj4+Ml09YVtmKzEyPj4yXSwwIT0oMHxmNShBLHcsYikpKT9tPTE6TT0zO2Rve2lmKDM9PSgwfE0pKXtpZihhW0E+PjJdPWFbbD4+Ml0sYVtBKzQ+PjJdPWFbbCs0Pj4yXSxhW0ErOD4+Ml09YVtsKzg+PjJdLGFbQSsxMj4+Ml09YVtsKzEy''@;'; + put 'put ''Pj4yXSxhW3c+PjJdPWFbYz4+Ml0sYVt3KzQ+PjJdPWFbYys0Pj4yXSxhW3crOD4+Ml09YVtjKzg+PjJdLGFbdysxMj4+Ml09YVtjKzEyPj4yXSxhW2I+PjJdPWFbcD4+Ml0sYVtiKzQ+PjJdPWFbcCs0Pj4yXSxhW2IrOD4+Ml09YVtwKzg+PjJdLGFbYisxMj4+Ml09YVtwKzEyPj4yXSwwPT0o''@;'; + put 'put ''MHwobT0wfFVjKEEsdyxiKSkpJiYoYVtBPj4yXT1hW2w+PjJdLGFbQSs0Pj4yXT1hW2wrND4+Ml0sYVtBKzg+PjJdPWFbbCs4Pj4yXSxhW0ErMTI+PjJdPWFbbCsxMj4+Ml0sYVt3Pj4yXT1hW2M+PjJdLGFbdys0Pj4yXT1hW2MrND4+Ml0sYVt3Kzg+PjJdPWFbYys4Pj4yXSxhW3crMTI+PjJd''@;'; + put 'put ''PWFbYysxMj4+Ml0sYVtiPj4yXT1hW3A+PjJdLGFbYis0Pj4yXT1hW3ArND4+Ml0sYVtiKzg+PjJdPWFbcCs4Pj4yXSxhW2IrMTI+PjJdPWFbcCsxMj4+Ml0sMHxmNShBLHcsYikpKXttPTE7YnJlYWt9YVtBPj4yXT1hW2Y+PjJdLGFbQSs0Pj4yXT1hW2YrND4+Ml0sYVtBKzg+PjJdPWFbZis4''@;'; + put 'put ''Pj4yXSxhW0ErMTI+PjJdPWFbZisxMj4+Ml0sYVt3Pj4yXT1hW3A+PjJdLGFbdys0Pj4yXT1hW3ArND4+Ml0sYVt3Kzg+PjJdPWFbcCs4Pj4yXSxhW3crMTI+PjJdPWFbcCsxMj4+Ml0sYVtiPj4yXT1hW2w+PjJdLGFbYis0Pj4yXT1hW2wrND4+Ml0sYVtiKzg+PjJdPWFbbCs4Pj4yXSxhW2Ir''@;'; + put 'put ''MTI+PjJdPWFbbCsxMj4+Ml0sbD0wfFVjKEEsdyxiKSxhW0E+PjJdPWFbZj4+Ml0sYVtBKzQ+PjJdPWFbZis0Pj4yXSxhW0ErOD4+Ml09YVtmKzg+PjJdLGFbQSsxMj4+Ml09YVtmKzEyPj4yXSxhW3c+PjJdPWFbcD4+Ml0sYVt3KzQ+PjJdPWFbcCs0Pj4yXSxhW3crOD4+Ml09YVtwKzg+PjJd''@;'; + put 'put ''LGFbdysxMj4+Ml09YVtwKzEyPj4yXSxhW2I+PjJdPWFbYz4+Ml0sYVtiKzQ+PjJdPWFbYys0Pj4yXSxhW2IrOD4+Ml09YVtjKzg+PjJdLGFbYisxMj4+Ml09YVtjKzEyPj4yXSxNPSgwfEFyKG0saykpPDAsbT0oMHxBcigwfFVjKEEsdyxiKSxsKSk+Pj4zMSxtPU0/bTowfX13aGlsZSgwKTty''@;'; + put 'put ''ZXR1cm4gbGU9RCwwfG19ZnVuY3Rpb24gejQobCxjKXt2YXIgZixwLG0sQTtyZXR1cm4gY3w9MCxwPWxlLGxlPWxlKzMyfDAsbT1wKzE2fDAsYVsoQT1wKT4+Ml09YVsobHw9MCk+PjJdLGFbQSs0Pj4yXT1hW2wrND4+Ml0sYVtBKzg+PjJdPWFbbCs4Pj4yXSxhW0ErMTI+PjJdPWFbbCsxMj4+''@;'; + put 'put ''Ml0sYVttPj4yXT1hW2M+PjJdLGFbbSs0Pj4yXT1hW2MrND4+Ml0sYVttKzg+PjJdPWFbYys4Pj4yXSxhW20rMTI+PjJdPWFbYysxMj4+Ml0sZj0rRDAoKyArZnVuY3Rpb24gazYobCxjKXt2YXIgZixwO3JldHVybisoKHA9K19bOCsobHw9MCk+PjNdLStfWzgrKGN8PTApPj4zXSkqcCsoZj0r''@;'; + put 'put ''X1tsPj4zXS0rX1tjPj4zXSkqZil9KEEsbSkpLGxlPXAsK2Z9ZnVuY3Rpb24gWTEobCxjLGYscCxtKXt2YXIgQSx3LGIsayxNLEQsUjtyZXR1cm4gQT1sZSxsZT1sZSs2NHwwLHc9QSs0OHwwLGI9QSszMnwwLGs9QSsxNnwwLFI9KGZ8PTApKyhhWyhtfD0wKSsoKGx8PTApPDwyKT4+Ml08PDQp''@;'; + put 'put ''fDAsRD1mKyhsPDw0KXwwLHA9ZisoYVsocHw9MCkrKGw8PDIpPj4yXTw8NCl8MCxtPWYrKChjfD0wKTw8NCl8MCxhWyhNPUEpPj4yXT1hW1I+PjJdLGFbTSs0Pj4yXT1hW1IrND4+Ml0sYVtNKzg+PjJdPWFbUis4Pj4yXSxhW00rMTI+PjJdPWFbUisxMj4+Ml0sYVtrPj4yXT1hW0Q+PjJdLGFb''@;'; + put 'put ''ays0Pj4yXT1hW0QrND4+Ml0sYVtrKzg+PjJdPWFbRCs4Pj4yXSxhW2srMTI+PjJdPWFbRCsxMj4+Ml0sYVtiPj4yXT1hW3A+PjJdLGFbYis0Pj4yXT1hW3ArND4+Ml0sYVtiKzg+PjJdPWFbcCs4Pj4yXSxhW2IrMTI+PjJdPWFbcCsxMj4+Ml0sYVt3Pj4yXT1hW20+PjJdLGFbdys0Pj4yXT1h''@;'; + put 'put ''W20rND4+Ml0sYVt3Kzg+PjJdPWFbbSs4Pj4yXSxhW3crMTI+PjJdPWFbbSsxMj4+Ml0sbT0wfGlBKE0sayxiLHcpLGxlPUEsMHxtfWZ1bmN0aW9uIGQ1KGwsYyxmLHAsbSxBLHcpe2x8PTAsY3w9MCxmfD0wLHB8PTAsbXw9MCxBfD0wLHd8PTA7dmFyIGssTSxELFIsSyxiPTAsRz0wLHBlPTAs''@;'; + put 'put ''Z2U9MDtmb3IoSz1sZSxsZT1sZSs2NHwwLFI9Sys0OHwwLEQ9SyszMnwwLE09SysxNnwwLGs9SyxiPTA7Oyl7aWYoKDB8Yik+PSgwfGYpKXtHPTQ7YnJlYWt9aWYoZ2U9QSsoYjw8NCl8MCxwZT1BKyhhW3crKGI8PDIpPj4yXTw8NCl8MCxhW2s+PjJdPWFbbD4+Ml0sYVtrKzQ+PjJdPWFbbCs0''@;'; + put 'put ''Pj4yXSxhW2srOD4+Ml09YVtsKzg+PjJdLGFbaysxMj4+Ml09YVtsKzEyPj4yXSxhW00+PjJdPWFbYz4+Ml0sYVtNKzQ+PjJdPWFbYys0Pj4yXSxhW00rOD4+Ml09YVtjKzg+PjJdLGFbTSsxMj4+Ml09YVtjKzEyPj4yXSxhW0Q+PjJdPWFbZ2U+PjJdLGFbRCs0Pj4yXT1hW2dlKzQ+PjJdLGFb''@;'; + put 'put ''RCs4Pj4yXT1hW2dlKzg+PjJdLGFbRCsxMj4+Ml09YVtnZSsxMj4+Ml0sYVtSPj4yXT1hW3BlPj4yXSxhW1IrND4+Ml09YVtwZSs0Pj4yXSxhW1IrOD4+Ml09YVtwZSs4Pj4yXSxhW1IrMTI+PjJdPWFbcGUrMTI+PjJdLDB8QzYoayxNLEQsUikpe3A9MDticmVha31iPWIrMXwwfWU6ZG97aWYo''@;'; + put 'put ''ND09KDB8RykpZm9yKDs7KXtpZigoMHxwKT49KDB8bSkpe3A9MTticmVhayBlfWlmKHBlPUErKHA8PDQpfDAsZ2U9QSsoYVt3KyhwPDwyKT4+Ml08PDQpfDAsYVtrPj4yXT1hW2w+PjJdLGFbays0Pj4yXT1hW2wrND4+Ml0sYVtrKzg+PjJdPWFbbCs4Pj4yXSxhW2srMTI+PjJdPWFbbCsxMj4+''@;'; + put 'put ''Ml0sYVtNPj4yXT1hW2M+PjJdLGFbTSs0Pj4yXT1hW2MrND4+Ml0sYVtNKzg+PjJdPWFbYys4Pj4yXSxhW00rMTI+PjJdPWFbYysxMj4+Ml0sYVtEPj4yXT1hW3BlPj4yXSxhW0QrND4+Ml09YVtwZSs0Pj4yXSxhW0QrOD4+Ml09YVtwZSs4Pj4yXSxhW0QrMTI+PjJdPWFbcGUrMTI+PjJdLGFb''@;'; + put 'put ''Uj4+Ml09YVtnZT4+Ml0sYVtSKzQ+PjJdPWFbZ2UrND4+Ml0sYVtSKzg+PjJdPWFbZ2UrOD4+Ml0sYVtSKzEyPj4yXT1hW2dlKzEyPj4yXSwwfEM2KGssTSxELFIpKXtwPTA7YnJlYWt9cD1wKzF8MCxHPTR9fXdoaWxlKDApO3JldHVybiBsZT1LLDB8cH1mdW5jdGlvbiBpQShsLGMsZixwKXt2''@;'; + put 'put ''YXIgbSxBLHcsYixrO3JldHVybiBsfD0wLGN8PTAsZnw9MCxBPWxlLGxlPWxlKzQ4fDAsdz1BKzMyfDAsYj1BKzE2fDAsYVsoaz1BKT4+Ml09YVsocHw9MCk+PjJdLGFbays0Pj4yXT1hW3ArND4+Ml0sYVtrKzg+PjJdPWFbcCs4Pj4yXSxhW2srMTI+PjJdPWFbcCsxMj4+Ml0sYVtiPj4yXT1h''@;'; + put 'put ''W2w+PjJdLGFbYis0Pj4yXT1hW2wrND4+Ml0sYVtiKzg+PjJdPWFbbCs4Pj4yXSxhW2IrMTI+PjJdPWFbbCsxMj4+Ml0sYVt3Pj4yXT1hW2M+PjJdLGFbdys0Pj4yXT1hW2MrND4+Ml0sYVt3Kzg+PjJdPWFbYys4Pj4yXSxhW3crMTI+PjJdPWFbYysxMj4+Ml0sbT0wfFVjKGssYix3KSxhW2s+''@;'; + put 'put ''PjJdPWFbcD4+Ml0sYVtrKzQ+PjJdPWFbcCs0Pj4yXSxhW2srOD4+Ml09YVtwKzg+PjJdLGFbaysxMj4+Ml09YVtwKzEyPj4yXSxhW2I+PjJdPWFbYz4+Ml0sYVtiKzQ+PjJdPWFbYys0Pj4yXSxhW2IrOD4+Ml09YVtjKzg+PjJdLGFbYisxMj4+Ml09YVtjKzEyPj4yXSxhW3c+PjJdPWFbZj4+''@;'; + put 'put ''Ml0sYVt3KzQ+PjJdPWFbZis0Pj4yXSxhW3crOD4+Ml09YVtmKzg+PjJdLGFbdysxMj4+Ml09YVtmKzEyPj4yXSxwPTB8VWMoayxiLHcpLGFbaz4+Ml09YVtsPj4yXSxhW2srND4+Ml09YVtsKzQ+PjJdLGFbays4Pj4yXT1hW2wrOD4+Ml0sYVtrKzEyPj4yXT1hW2wrMTI+PjJdLGFbYj4+Ml09''@;'; + put 'put ''YVtjPj4yXSxhW2IrND4+Ml09YVtjKzQ+PjJdLGFbYis4Pj4yXT1hW2MrOD4+Ml0sYVtiKzEyPj4yXT1hW2MrMTI+PjJdLGFbdz4+Ml09YVtmPj4yXSxhW3crND4+Ml09YVtmKzQ+PjJdLGFbdys4Pj4yXT1hW2YrOD4+Ml0sYVt3KzEyPj4yXT1hW2YrMTI+PjJdLGY9KDB8VWMoayxiLHcpKT4w''@;'; + put 'put ''LGxlPUEsKGY/cHxtOnAmbSk+Pj4zMV4xfDB9ZnVuY3Rpb24gZF8obCxjLGYpe2N8PTAsZnw9MDt2YXIgQSx3LGIsayxNLEQsUixHLEsscGUsZ2UscD0wLG09MCxiZT0wLE9lPTA7Zm9yKGdlPWxlLGxlPWxlKzgwfDAsYj1nZSs2NHwwLHc9Z2UrNDh8MCxBPWdlKzMyfDAsaz1nZSsxNnwwLFI9''@;'; + put 'put ''Z2UsSz0wfGFbOCsobHw9MCk+PjJdLHBlPTB8YVtsKzE2Pj4yXSxNPTB8YVtsKzIwPj4yXSxEPTB8QjAoMTYrKChHPTB8YVtsKzQ+PjJdKTw8Myl8MCksLTIyMjI9PSgwfGMpJiYoYVtiPj4yXT1hW2Y+PjJdLGFbYis0Pj4yXT1hW2YrND4+Ml0sYVtiKzg+PjJdPWFbZis4Pj4yXSxhW2IrMTI+''@;'; + put 'put ''PjJdPWFbZisxMj4+Ml0sYz0wfGZ1bmN0aW9uIHBfKGwsYyl7Y3w9MDt2YXIgcCxtLHcsYixrLE0sRCxmPTAsQT0wLFI9MCxHPTA7Zm9yKEQ9bGUsbGU9bGUrMzJ8MCxtPUQrOHwwLHA9RCxiPTgrKGx8PTApfDAsaz1sKzEyfDAsTT00Kyh3PUQrMjR8MCl8MCxmPTA7Oyl7aWYoKDB8Zik+PSgw''@;'; + put 'put ''fGFbbD4+Ml0pKXtmPS0xMTExO2JyZWFrfWlmKGFbdz4+Ml09KDB8YVtiPj4yXSkrKChSPTB8YVsoRz0wfGFbaz4+Ml0pKyhmPDwyKT4+Ml0pPDw0KSxhW00+PjJdPSgwfGFbRysoKEE9ZisxfDApPDwyKT4+Ml0pLVIsYVtwPj4yXT1hW3c+PjJdLGFbcCs0Pj4yXT1hW3crND4+Ml0sYVttPj4y''@;'; + put 'put ''XT1hW2M+PjJdLGFbbSs0Pj4yXT1hW2MrND4+Ml0sYVttKzg+PjJdPWFbYys4Pj4yXSxhW20rMTI+PjJdPWFbYysxMj4+Ml0sMHxfNihwLG0pKWJyZWFrO2Y9QX1yZXR1cm4gbGU9RCwwfGZ9KGwsYikpLCgwfGMpPi0xPyhtPTB8YVsobD0wfGFbbCsxMj4+Ml0pKyhjKzE8PDIpPj4yXSxsPTB8''@;'; + put 'put ''YVtsKyhjPDwyKT4+Ml0pOihtPUcsbD1HKSxjPTA7Oyl7aWYoKDB8Yyk+PSgwfGwpKXtjPWw7YnJlYWt9YVtSPj4yXT1hWyhPZT1LKyhjPDw0KXwwKT4+Ml0sYVtSKzQ+PjJdPWFbT2UrND4+Ml0sYVtSKzg+PjJdPWFbT2UrOD4+Ml0sYVtSKzEyPj4yXT1hW09lKzEyPj4yXSxiZT1LKyhhW3Bl''@;'; + put 'put ''KyhjPDwyKT4+Ml08PDQpfDAsYVtrPj4yXT1hWyhPZT1LKyhhW00rKGM8PDIpPj4yXTw8NCl8MCk+PjJdLGFbays0Pj4yXT1hW09lKzQ+PjJdLGFbays4Pj4yXT1hW09lKzg+PjJdLGFbaysxMj4+Ml09YVtPZSsxMj4+Ml0sYVtBPj4yXT1hW1I+PjJdLGFbQSs0Pj4yXT1hW1IrND4+Ml0sYVtB''@;'; + put 'put ''Kzg+PjJdPWFbUis4Pj4yXSxhW0ErMTI+PjJdPWFbUisxMj4+Ml0sYVt3Pj4yXT1hW2JlPj4yXSxhW3crND4+Ml09YVtiZSs0Pj4yXSxhW3crOD4+Ml09YVtiZSs4Pj4yXSxhW3crMTI+PjJdPWFbYmUrMTI+PjJdLGFbYj4+Ml09YVtmPj4yXSxhW2IrND4+Ml09YVtmKzQ+PjJdLGFbYis4Pj4y''@;'; + put 'put ''XT1hW2YrOD4+Ml0sYVtiKzEyPj4yXT1hW2YrMTI+PjJdLDAhPSgwfGlBKGssQSx3LGIpKSYmKGFbdz4+Ml09YVtmPj4yXSxhW3crND4+Ml09YVtmKzQ+PjJdLGFbdys4Pj4yXT1hW2YrOD4+Ml0sYVt3KzEyPj4yXT1hW2YrMTI+PjJdLGFbYj4+Ml09YVtSPj4yXSxhW2IrND4+Ml09YVtSKzQ+''@;'; + put 'put ''PjJdLGFbYis4Pj4yXT1hW1IrOD4+Ml0sYVtiKzEyPj4yXT1hW1IrMTI+PjJdLDAhPSgwfGQ1KHcsYixsLG0sRyxLLHBlKSkpPyhhW3c+PjJdPWFbZj4+Ml0sYVt3KzQ+PjJdPWFbZis0Pj4yXSxhW3crOD4+Ml09YVtmKzg+PjJdLGFbdysxMj4+Ml09YVtmKzEyPj4yXSxhW2I+PjJdPWFbUj4+''@;'; + put 'put ''Ml0sYVtiKzQ+PjJdPWFbUis0Pj4yXSxhW2IrOD4+Ml09YVtSKzg+PjJdLGFbYisxMj4+Ml09YVtSKzEyPj4yXSxwPSt6NCh3LGIpKTpwPTAsX1tEKyhjPDwzKT4+M109cCxjPWMrMXwwfWZvcig7Oyl7aWYoKDB8Yyk+PSgwfG0pKXtjPW07YnJlYWt9X1tEKyhjPDwzKT4+M109MCxjPWMrMXww''@;'; + put 'put ''fWZvcig7ISgoMHxjKT49KDB8RykpOylhW1I+PjJdPWFbKGJlPUsrKGM8PDQpfDApPj4yXSxhW1IrND4+Ml09YVtiZSs0Pj4yXSxhW1IrOD4+Ml09YVtiZSs4Pj4yXSxhW1IrMTI+PjJdPWFbYmUrMTI+PjJdLE9lPUsrKGFbcGUrKGM8PDIpPj4yXTw8NCl8MCxhW2s+PjJdPWFbKGJlPUsrKGFb''@;'; + put 'put ''TSsoYzw8Mik+PjJdPDw0KXwwKT4+Ml0sYVtrKzQ+PjJdPWFbYmUrND4+Ml0sYVtrKzg+PjJdPWFbYmUrOD4+Ml0sYVtrKzEyPj4yXT1hW2JlKzEyPj4yXSxhW0E+PjJdPWFbUj4+Ml0sYVtBKzQ+PjJdPWFbUis0Pj4yXSxhW0ErOD4+Ml09YVtSKzg+PjJdLGFbQSsxMj4+Ml09YVtSKzEyPj4y''@;'; + put 'put ''XSxhW3c+PjJdPWFbT2U+PjJdLGFbdys0Pj4yXT1hW09lKzQ+PjJdLGFbdys4Pj4yXT1hW09lKzg+PjJdLGFbdysxMj4+Ml09YVtPZSsxMj4+Ml0sYVtiPj4yXT1hW2Y+PjJdLGFbYis0Pj4yXT1hW2YrND4+Ml0sYVtiKzg+PjJdPWFbZis4Pj4yXSxhW2IrMTI+PjJdPWFbZisxMj4+Ml0sMCE9''@;'; + put 'put ''KDB8aUEoayxBLHcsYikpJiYoYVt3Pj4yXT1hW2Y+PjJdLGFbdys0Pj4yXT1hW2YrND4+Ml0sYVt3Kzg+PjJdPWFbZis4Pj4yXSxhW3crMTI+PjJdPWFbZisxMj4+Ml0sYVtiPj4yXT1hW1I+PjJdLGFbYis0Pj4yXT1hW1IrND4+Ml0sYVtiKzg+PjJdPWFbUis4Pj4yXSxhW2IrMTI+PjJdPWFb''@;'; + put 'put ''UisxMj4+Ml0sMCE9KDB8ZDUodyxiLGwsbSxHLEsscGUpKSk/KGFbdz4+Ml09YVtmPj4yXSxhW3crND4+Ml09YVtmKzQ+PjJdLGFbdys4Pj4yXT1hW2YrOD4+Ml0sYVt3KzEyPj4yXT1hW2YrMTI+PjJdLGFbYj4+Ml09YVtSPj4yXSxhW2IrND4+Ml09YVtSKzQ+PjJdLGFbYis4Pj4yXT1hW1Ir''@;'; + put 'put ''OD4+Ml0sYVtiKzEyPj4yXT1hW1IrMTI+PjJdLHA9K3o0KHcsYikpOnA9MCxfW0QrKGM8PDMpPj4zXT1wLGM9YysxfDA7cmV0dXJuIF9bRCsoRzw8Myk+PjNdPTAsX1tEKyhHKzE8PDMpPj4zXT0wLGxlPWdlLDB8RH1mdW5jdGlvbiB2RyhsKXt2YXIgYztyZXR1cm4gMHwoYz0wfF9vWzYzJmFb''@;'; + put 'put ''KGx8PTApPj4yXV0oMTg4KSkmJihvQShjKzgwfDAsbCksb0EoYysxMDR8MCxsKSxQZChjLGwpLFBkKGMrMjB8MCxsKSxQZChjKzQwfDAsbCksUGQoYys2MHwwLGwpLGZlW2MrMTMxPj4wXT0wLFBkKGMrMTMyfDAsbCksYVtjKzE1Mj4+Ml09MCxhW2MrMTU2Pj4yXT0wLGZlW2MrMTYwPj4wXT0w''@;'; + put 'put ''LGFbKGw9YysxNjR8MCk+PjJdPTAsYVtsKzQ+PjJdPTAsYVtsKzg+PjJdPTAsYVtsKzEyPj4yXT0wLGFbbCsxNj4+Ml09MCxhW2wrMjA+PjJdPTAsZmVbYysxMjg+PjBdPTEsZmVbYysxMjk+PjBdPTAsZmVbYysxMzA+PjBdPTApLDB8Y31mdW5jdGlvbiBvQShsLGMpe2N8PTAsYVsobHw9MCk+''@;'; + put 'put ''PjJdPTAsYVtsKzQ+PjJdPTAsYVtsKzg+PjJdPTAsYVtsKzEyPj4yXT0wLGFbbCsxNj4+Ml09MCxhW2wrMjA+PjJdPWN9ZnVuY3Rpb24gdl8obCxjKXtjfD0wO3ZhciBmLHA9MCxtPTA7YVsyNzYrKGx8PTApPj4yXT01NixmdW5jdGlvbiBxSyhsKXthWyhsfD0wKT4+Ml09MTUsYVtsKzE2Pj4y''@;'; + put 'put ''XT0xLGFbbCsxMj4+Ml09MCxhW2wrMjA+PjJdPTB9KGwrMjUyfDApLDB8YyYmKGFbbCsyMjg+PjJdPTB8ZnVuY3Rpb24gV0IobCxjKXtsfD0wLGN8PTA7dmFyIGY9MCxwPTA7Zj0wO2Rve3A9ZixmPWYrMXwwfXdoaWxlKDAhPSgwfGZlW2wrcD4+MF0pKTtyZXR1cm4oYz0wfF9vWzYzJmFbYz4+''@;'; + put 'put ''Ml1dKGYpKT9nbygwfGMsMHxsLDB8Zik6Yz0wLDB8Y30oYyxsKzEyfDApKSxhW2wrMzU2Pj4yXT0wLFVLKGwrMTQ4fDAsbCsxNDR8MCwwKSxhW2w+PjJdPTAsYVtsKzQ+PjJdPTAsYz1sKzExNnwwLG09NjQrKHA9bCs1MnwwKXwwO2Rve2FbcD4+Ml09MCxwPXArNHwwfXdoaWxlKCgwfHApPCgw''@;'; + put 'put ''fG0pKTthW2M+PjJdPWwsYVtsKzEyMD4+Ml09MCxhWyhjPWwrMTI4fDApPj4yXT0wLGFbYys0Pj4yXT0wLGFbYys4Pj4yXT0wLGFbYysxMj4+Ml09MCxhW2wrMjQ+PjJdPWM9MHxhW2wrOD4+Ml0sYVtsKzI4Pj4yXT1jLGFbbCszNj4+Ml09MCxhW2wrNDA+PjJdPTAsYz1sKzMxMnwwLGFbKHA9''@;'; + put 'put ''bCs0MDR8MCk+PjJdPTAsYVtwKzQ+PjJdPTAsZj1sKzMwNHwwLGFbKHA9bCsyODB8MCk+PjJdPTAsYVtwKzQ+PjJdPTAsYVtwKzg+PjJdPTAsYVtwKzEyPj4yXT0wLGFbcCsxNj4+Ml09MCxtPShwPWMpKzM2fDA7ZG97YVtwPj4yXT0wLHA9cCs0fDB9d2hpbGUoKDB8cCk8KDB8bSkpO2l0W2Mr''@;'; + put 'put ''MzY+PjFdPTAsZmVbZj4+MF09MSxhW2wrMzA4Pj4yXT0wLGFbbCszNjA+PjJdPTAsYVtsKzM2OD4+Ml09MCxhW2wrMzgwPj4yXT0wLGFbbCsyMzY+PjJdPTAsYVtsKzI0OD4+Ml09MCxhW2wrMjQwPj4yXT0wLGFbbCs0NzI+PjJdPTAsYVtsKzQ3Nj4+Ml09MCxmZVtsKzQ4ND4+MF09MCxmZVts''@;'; + put 'put ''KzQ4NT4+MF09MCxhW2wrNDg4Pj4yXT0wLGFbbCs0OTI+PjJdPTB9ZnVuY3Rpb24gQV8obCl7dmFyIGM9MCxmPTAscD0wLG09MCxBPTA7aWYoMHwobHw9MCkpe2ZvcihmPWwrMzY0fDAsbT1sKzIwfDAsYz0wfGFbbCszNjA+PjJdOzspe2lmKCFjKXtpZighKGM9MHxhW2Y+PjJdKSlicmVhazth''@;'; + put 'put ''W2Y+PjJdPTB9QT0wfGFbYz4+Ml0sQ29bMTI3JmFbbT4+Ml1dKDB8YVtjKzM2Pj4yXSksYUEoMHxhW2MrNDQ+PjJdLGwpLENvWzEyNyZhW20+PjJdXShjKSxjPUF9Zm9yKGY9bCszMDB8MCxjPTB8YVtsKzI5Nj4+Ml07Oyl7aWYoIWMpe2lmKCEoYz0wfGFbZj4+Ml0pKWJyZWFrO2FbZj4+Ml09''@;'; + put 'put ''MH1BPTB8YVtjKzg+PjJdLENvWzEyNyZhW20+PjJdXShjKSxjPUF9YUEoMHxhW2wrMzcyPj4yXSxsKSxhQSgwfGFbbCszNjg+PjJdLGwpLEltKGwrNDEyfDApLEltKGwrNDM2fDApLGM9bCsxMnwwLENvWzEyNyZhW20+PjJdXSgwfGFbbCsyMjg+PjJdKSwwPT0oMHxmZVtsKzQ4ND4+MF0pJiYw''@;'; + put 'put ''fChwPTB8YVtsKzM1Mj4+Ml0pJiZmdW5jdGlvbiBHQihsLGMsZil7Y3w9MCxmfD0wO3ZhciBtLEEsdyxwPTA7Zm9yKHc9bGUsbGU9bGUrMTZ8MCxlYyhtPXcsQT0yMCsobHw9MCl8MCksZj1mKzh8MDtwPTB8RG0obSk7KSEoMHxhW3ArMTY+PjJdKXx8Q29bMTI3JmFbZj4+Ml1dKDB8YVtwKzIw''@;'; + put 'put ''Pj4yXSk7TG0obCksTG0obCsxMzJ8MCksTG0oQSksTG0obCs0MHwwKSxMbShsKzYwfDApLEltKGwrODB8MCksSW0obCsxMDR8MCksYzw8MjQ+PjI0JiYoQ29bMTI3JmFbZj4+Ml1dKDB8YVtsKzE4ND4+Ml0pLENvWzEyNyZhW2Y+PjJdXSgwfGFbbCsxNjQ+PjJdKSksQ29bMTI3JmFbZj4+Ml1d''@;'; + put 'put ''KGwpLGxlPXd9KHAsMD09KDB8YVtsKzQ3Mj4+Ml0pJjEsYyksQ29bMTI3JmFbbT4+Ml1dKDB8YVtsKzM4OD4+Ml0pLENvWzEyNyZhW20+PjJdXSgwfGFbbCs0NjA+PjJdKSxDb1sxMjcmYVttPj4yXV0oMHxhW2wrOD4+Ml0pLENvWzEyNyZhW20+PjJdXSgwfGFbbCs0ND4+Ml0pLENvWzEyNyZh''@;'; + put 'put ''W20+PjJdXSgwfGFbbCszOTI+PjJdKSxDb1sxMjcmYVttPj4yXV0oMHxhW2wrMjM2Pj4yXSksMHwoYz0wfGFbbCsyNDg+PjJdKSYmQ29bMTI3JmNdKDB8YVtsKzI0MD4+Ml0pLENvWzEyNyZhW20+PjJdXShsKX19ZnVuY3Rpb24gYUEobCxjKXtsfD0wO3ZhciBmPTA7Zm9yKGM9MjArKGN8PTAp''@;'; + put 'put ''fDA7bDspZj0wfGFbbCs0Pj4yXSxDb1sxMjcmYVtjPj4yXV0oMHxhW2wrMTY+PjJdKSxDb1sxMjcmYVtjPj4yXV0obCksbD1mfWZ1bmN0aW9uIEltKGwpe3ZhciBmLGM9MCxwPTA7Zm9yKGY9MjArKGx8PTApfDAsYz0wfGFbbD4+Ml07YzspcD0wfGFbYz4+Ml0sQ29bMTI3JmFbOCsoMHxhW2Y+''@;'; + put 'put ''PjJdKT4+Ml1dKGMpLGM9cDtmb3IoYz0wfGFbbCs0Pj4yXTtjOylwPTB8YVtjPj4yXSxDb1sxMjcmYVs4KygwfGFbZj4+Ml0pPj4yXV0oYyksYz1wfWZ1bmN0aW9uIGVjKGwsYyl7dmFyIGY7YVsobHw9MCk+PjJdPWY9MHxhWyhjfD0wKT4+Ml0sYVtsKzQ+PjJdPWYrKGFbYys4Pj4yXTw8Mil9''@;'; + put 'put ''ZnVuY3Rpb24gRG0obCl7dmFyIGYsYz0wLHA9MDtmPTB8YVs0KyhsfD0wKT4+Ml0scD0wfGFbbD4+Ml07ZG97aWYoKDB8cCk9PSgwfGYpKXtjPTA7YnJlYWt9Yz1wLGFbbD4+Ml09cD1wKzR8MCxjPTB8YVtjPj4yXX13aGlsZSghKDB8YykpO3JldHVybiAwfGN9ZnVuY3Rpb24gTG0obCl7dmFy''@;'; + put 'put ''IGYscCxjPTAsbT0wLEE9MDtmb3IoZj04KyhsfD0wKXwwLHA9bCsxNnwwLGM9MDttPTB8YVs4KygwfGFbcD4+Ml0pPj4yXSxBPTB8YVtsPj4yXSwhKGM+Pj4wPj0oMHxhW2Y+PjJdKT4+PjApOylDb1sxMjcmbV0oMHxhW0ErKGM8PDIpPj4yXSksYz1jKzF8MDtDb1sxMjcmbV0oQSl9ZnVuY3Rp''@;'; + put 'put ''b24gbEEobCxjLGYscCl7bHw9MCxmfD0wLHB8PTA7dmFyIG0sQSxiLHc9MDtyZXR1cm4gbT1sZSxsZT1sZSsxNnwwLGFbKEE9bSk+PjJdPWN8PTAsdz0wfHEwWzEyNyZhWyh3PTB8YVsoYj1sKzE0NHwwKT4+Ml0pPj4yXV0odyxjLGYsQSkscD0wfHNBKGwsMHxhW2I+PjJdLGMsZix3LDB8YVtB''@;'; + put 'put ''Pj4yXSxwLDA9PSgwfGZlW2wrNDgwPj4wXSkmMSksbGU9bSwwfHB9ZnVuY3Rpb24gc0EobCxjLGYscCxtLEEsdyxiKXtsfD0wLGN8PTAsZnw9MCxwfD0wLG18PTAsd3w9MCxifD0wO3ZhciBLLHBlLGdlLGJlLE9lLExlLFJlLEhlLFZlLHFlLG50LFdlLG90LFN0LGt0LHN0LEV0LFp0LGN0LGJ0''@;'; + put 'put ''LGFuLFNuLEhuLHVyLEhyLEVyLGZyLERyLEpyLExyLGwwLFZpLE9pLFJvLGxvLFRhLGphLGdhLHhpLERsLG9zLG9sLEwwLHhhLHoyLEcyLEZmLFphLFcyLHFhLEVwLGhjLHRmLHExLHhwLE9MLGc4LGR2LG04LGFxLGs9MCxNPTAsRD0wLFI9MCxHPTAsdjE9MCxicz0wLEtqPTAsY3c9MCxzUz0w''@;'; + put 'put ''LHVTPTAsY1M9MCxMbD0wLENmZT0wLG9xPTA7YXE9bGUsbGU9bGUrMTZ8MCxhWyhMbD1hcSk+PjJdPUF8PTAsKDB8YVsocGU9bCsxNDR8MCk+PjJdKT09KDB8Yyk/KFI9bCsyODR8MCxHPWwrMjg4fDAsdjE9bCsyOTZ8MCk6KFI9Rz0wfGFbKHYxPWwrMjk2fDApPj4yXSxHPUcrNHwwKSxnZT1i''@;'; + put 'put ''PDwyND4+MjQhPTAsRXA9bCsyNTJ8MCxiZT1sKzgwfDAsT2U9bCs0NzZ8MCxMZT1sKzg0fDAsUmU9bCszMjB8MCxIZT1sKzQxMnwwLFZlPWwrMzE2fDAscWU9bCs0MjR8MCxudD1sKzQyOHwwLFdlPWwrMzI0fDAsaGM9bCs0fDAsb3Q9bCs0ODV8MCxTdD0xMzIrKEs9MHxhW2wrMzUyPj4yXSl8''@;'; + put 'put ''MCxrdD1sKzMxMnwwLHRmPUsrMTI5fDAsc3Q9SysxMjh8MCxFdD1LKzgwfDAsWnQ9Sys5MnwwLGN0PUsrOTZ8MCxidD1sKzEzNnwwLGFuPWwrODh8MCxTbj1sKzQ4OHwwLHExPWwrMTEyfDAseHA9SysxMzF8MCxPTD1sKzExNnwwLGc4PUsrMTMwfDAsZHY9bCsxMDh8MCxtOD1sKzM1NnwwLEhu''@;'; + put 'put ''PWwrMzQwfDAsdXI9bCsxMzJ8MCxIcj1sKzM0NHwwLEVyPWwrMzQ4fDAsZnI9bCszMjh8MCxEcj1sKzM0OXwwLEpyPWwrNDIwfDAsTHI9SysxMjB8MCxsMD1LKzExNnwwLFZpPWwrOTJ8MCxPaT1sKzQ3MnwwLFJvPWwrMzM2fDAsbG89bCszMzJ8MCxUYT1sKzk2fDAsamE9bCsyNTZ8MCxnYT1s''@;'; + put 'put ''KzQ2NHwwLHhpPWwrNDYwfDAsRGw9SysxNjB8MCxvcz1LKzE4NHwwLG9sPUsrMTgwfDAsTDA9SysxNjR8MCx4YT1sKzEyOHwwLHoyPWwrMTJ8MCxHMj1sKzE2fDAsRmY9bCsyNjh8MCxaYT1sKzEyMHwwLFcyPUsrMTc2fDAscWE9SysxNjh8MCxEPWMsTT1mLGM9bTtlOmZvcig7Oyl7YVtSPj4y''@;'; + put 'put ''XT1NLGFbRz4+Ml09Zj0wfGFbTGw+PjJdLEE9Zjt0OmRve2lmKCgwfGMpPDEpe2lmKGdlJjAhPSgwfGMpKXtrPTc7YnJlYWsgZX1zd2l0Y2goMHxjKXtjYXNlLTE6QT01LGs9MjgwO2JyZWFrIGU7Y2FzZSAwOms9OTticmVhayBlO2Nhc2UtMjpBPTY7YnJlYWsgZTtjYXNlLTQ6az0xMDticmVh''@;'; + put 'put ''ayBlO2Nhc2UtMTU6Yz0xNTticmVhayB0fWFbTGw+PjJdPXAsYz0wLWN8MCxBPXB9fXdoaWxlKDApO209MHxSMlsxMjcmYVtFcD4+Ml1dKEVwLGMsTSxBLEQpO3Q6ZG97c3dpdGNoKDB8bSl7Y2FzZSAyOms9NTg7YnJlYWsgZTtjYXNlLTE6az0xODQ7YnJlYWsgZTtjYXNlIDE6aWYoMHwoQT0w''@;'; + put 'put ''fGx4KGwsMCxNLDB8YVtMbD4+Ml0pKSl7az0yODA7YnJlYWsgZX1BPTB8YVtwZT4+Ml07YnJlYWs7Y2FzZSA0OmlmKDB8YVtMZT4+Ml0pe2lmKGs9MHxiMihIZSxELE0sMHxhW0xsPj4yXSksYVtWZT4+Ml09aywhayl7QT0xLGs9MjgwO2JyZWFrIGV9YVtudD4+Ml09YVtxZT4+Ml0sYVtXZT4+''@;'; + put 'put ''Ml09MCxBPTB9ZWxzZSBBPTE7YVtSZT4+Ml09MCxrPTI3NDticmVhaztjYXNlIDc6KEE9MHxhW0xlPj4yXSk/KHA4WzE1JkFdKDB8YVtoYz4+Ml0sMHxhW1ZlPj4yXSwwfGFbUmU+PjJdLDB8YVtXZT4+Ml0sMSksYVtWZT4+Ml09MCxDZihIZSksQT1EKTprPTI3NTticmVhaztjYXNlIDU3Omlm''@;'; + put 'put ''KDB8KEE9MHxseChsLDEsTSwwfGFbTGw+PjJdKSkpe2s9MjgwO2JyZWFrIGV9QT0wfGFbcGU+PjJdO2JyZWFrO2Nhc2UgNjppZihmZVtvdD4+MF09MCxrPTB8XzEobCxTdCw3NTM5NSwzNiksYVtrdD4+Ml09aywhayl7QT0xLGs9MjgwO2JyZWFrIGV9aWYoZmVbdGY+PjBdPTEsMHxhW0xlPj4y''@;'; + put 'put ''XSl7aWYoISgwfHEwWzEyNyZhW0QrNTI+PjJdXShELE0sMHxhW0xsPj4yXSxSKSkpe0E9MzIsaz0yODA7YnJlYWsgZX1pZighKEE9MHxiMihIZSxELE0rKEE9MHxhW0QrNjQ+PjJdKXwwLDAtQSsoMHxhW0xsPj4yXSl8MCkpKXtBPTEsaz0yODA7YnJlYWsgZX11QShBKSxhW250Pj4yXT1hW3Fl''@;'; + put 'put ''Pj4yXSxhW1dlPj4yXT1BLEE9MCxrPTM0fWVsc2Ugaz0zMzticmVhaztjYXNlIDE0Oms9MzM7YnJlYWs7Y2FzZSA4OmlmKChBPTB8YVtWZT4+Ml0pPyhwOFsxNSZhW0xlPj4yXV0oMHxhW2hjPj4yXSxBLDB8YVtSZT4+Ml0sMHxhW1dlPj4yXSwwKSxDZihIZSksQT0wKTpBPTEsMCE9KDB8YVtS''@;'; + put 'put ''ZT4+Ml0pfHwwfGZlW290Pj4wXSl7Zj0wfGZlW3RmPj4wXSxmZVt0Zj4+MF09MTtkb3tpZigwfGFbU24+PjJdJiYwfGFbcTE+PjJdKXtpZighKG09MHxfMShsLFN0LDc1Mzk1LDM2KSkpe0E9MSxrPTI4MDticmVhayBlfWlmKDB8ZmVbb3Q+PjBdP2FbKGM9bSsyMHwwKT4+Ml09YVttOD4+Ml06''@;'; + put 'put ''Yz1tKzIwfDAsZmVbeHA+PjBdPTAsISgwfFIyWzEyNyZhW3ExPj4yXV0oMHxhW09MPj4yXSwwLDB8YVtjPj4yXSwwfGFbbSsxNj4+Ml0sMHxhW20rMjQ+PjJdKSkpe0E9MjEsaz0yODA7YnJlYWsgZX1pZighKDB8ZmVbeHA+PjBdKSl7aWYoMHxhW1JlPj4yXSlicmVhaztmZVt0Zj4+MF09Zjti''@;'; + put 'put ''cmVha31pZigwPT0oMHxmZVtnOD4+MF0pJiYwfChicz0wfGFbZHY+PjJdKSYmMD09KDB8X29bNjMmYnNdKDB8YVtoYz4+Ml0pKSl7QT0yMixrPTI4MDticmVhayBlfX19d2hpbGUoMCk7ZmVbb3Q+PjBdPTB9KGM9MHxhW2FuPj4yXSk/KENvWzEyNyZjXSgwfGFbaGM+PjJdKSxBPUQpOms9Mjc0''@;'; + put 'put ''O2JyZWFrO2Nhc2UgMzQ6aWYoaz0wfE9tKGwsRCxNLDB8YVtMbD4+Ml0pLGFbSG4+PjJdPWssIWspe0E9MSxrPTI4MDticmVhayBlfWs9ODA7YnJlYWs7Y2FzZSAyMjppZihrPTB8Yl8obCxELE0sMHxhW0xsPj4yXSksYVtIcj4+Ml09aywhayl7QT0xLGs9MjgwO2JyZWFrIGV9ZmVbRXI+PjBd''@;'; + put 'put ''PTAsYVtmcj4+Ml09MCxmZVtEcj4+MF09MCxrPTgwO2JyZWFrO2Nhc2UgMjM6ZmVbRXI+PjBdPTEsYVtmcj4+Ml09MTQyMTg4LGs9ODA7YnJlYWs7Y2FzZSAyNDpmZVtEcj4+MF09MSxhW2ZyPj4yXT0xNDIxOTQsaz04MDticmVhaztjYXNlIDI1OmFbZnI+PjJdPTE0MjE5NyxrPTgwO2JyZWFr''@;'; + put 'put ''O2Nhc2UgMjY6YVtmcj4+Ml09MTQyMjAzLGs9ODA7YnJlYWs7Y2FzZSAyNzphW2ZyPj4yXT0xNDIyMTAsaz04MDticmVhaztjYXNlIDI4OmFbZnI+PjJdPTE0MjIxNyxrPTgwO2JyZWFrO2Nhc2UgMjk6YVtmcj4+Ml09MTQyMjI2LGs9ODA7YnJlYWs7Y2FzZSAzMDphW2ZyPj4yXT0xNDIyMzQs''@;'; + put 'put ''az04MDticmVhaztjYXNlIDMyOmNhc2UgMzE6aWYoMCE9KDB8ZmVbc3Q+PjBdKSYmMCE9KDB8YVt1cj4+Ml0pKXtpZighKDB8c3goSGUsMD09KDB8YVtmcj4+Ml0pPzMyPT0oMHxtKT8xNDIyNDM6MTQyMjUzOjE0MjI1NSkpKXtBPTEsaz0yODA7YnJlYWsgZX1pZighKDB8Y0EoSGUsRCxNLDB8''@;'; + put 'put ''YVtMbD4+Ml0pKSl7QT0xLGs9MjgwO2JyZWFrIGV9YVtmcj4+Ml09YVtudD4+Ml0sQT1EfWVsc2Ugaz0yNzU7YnJlYWs7Y2FzZSAzNjpjYXNlIDM1OmlmKDB8ZmVbc3Q+PjBdKXtpZighKDB8T2goMHxhW0huPj4yXSwwfGFbSHI+PjJdLDB8ZmVbRXI+PjBdLDB8ZmVbRHI+PjBdLDAsbCkpKXtB''@;'; + put 'put ''PTEsaz0yODA7YnJlYWsgZX1pZigwIT0oMHxhW3VyPj4yXSkmJjAhPSgwfChLaj0wfGFbZnI+PjJdKSkpe3N3aXRjaCgwfGZlW0tqPj4wXSl7Y2FzZSA0MDprPTkzO2JyZWFrO2Nhc2UgNzg6Nzk9PSgwfGZlW0tqKzE+PjBdKSYmKGs9OTMpfWlmKDkzPT0oMHxrKSl7aWYoaz0wLCgwfChBPTB8''@;'; + put 'put ''YVtxZT4+Ml0pKT09KDB8YVtKcj4+Ml0pKXtpZighKCgwfHZsKEhlKSk8PDI0Pj4yNCkpe0E9MSxrPTI4MDticmVhayBlfUE9MHxhW3FlPj4yXX1pZihhW3FlPj4yXT1BKzEsZmVbQT4+MF09NDEsKDB8KEE9MHxhW3FlPj4yXSkpPT0oMHxhW0pyPj4yXSkpe2lmKCEoKDB8dmwoSGUpKTw8MjQ+''@;'; + put 'put ''PjI0KSl7QT0xLGs9MjgwO2JyZWFrIGV9QT0wfGFbcWU+PjJdfWFbcWU+PjJdPUErMSxmZVtBPj4wXT0wLGFbZnI+PjJdPWFbbnQ+PjJdLGFbbnQ+PjJdPWFbcWU+PjJdfWFbRz4+Ml09TSxodlsxNSZhW3VyPj4yXV0oMHxhW2hjPj4yXSwwfGFbYVtIbj4+Ml0+PjJdLDB8YVthW0hyPj4yXT4+''@;'; + put 'put ''Ml0sMHxhW2ZyPj4yXSwwLDM2PT0oMHxtKSYxKSxDZihIZSksQT1EfWVsc2Ugaz0yNzV9ZWxzZSBrPTI3NTticmVhaztjYXNlIDM4OmNhc2UgMzc6aWYoMHxmZVtzdD4+MF0pe2lmKDB8KEE9MHxfXyhsLEQsMHxmZVtFcj4+MF0sTSsoQT0wfGFbRCs2ND4+Ml0pfDAsMC1BKygwfGFbTGw+PjJd''@;'; + put 'put ''KXwwLEV0KSkpe2s9MjgwO2JyZWFrIGV9aWYoYz0wfGFbY3Q+PjJdLGFbY3Q+PjJdPWFbWnQ+PjJdLCEoMHxPaCgwfGFbSG4+PjJdLDB8YVtIcj4+Ml0sMHxmZVtFcj4+MF0sMCxjLGwpKSl7QT0xLGs9MjgwO2JyZWFrIGV9aWYoMCE9KDB8YVt1cj4+Ml0pJiYwIT0oMHwoY3c9MHxhW2ZyPj4y''@;'; + put 'put ''XSkpKXtzd2l0Y2goMHxmZVtjdz4+MF0pe2Nhc2UgNDA6az0xMDg7YnJlYWs7Y2FzZSA3ODo3OT09KDB8ZmVbY3crMT4+MF0pJiYoaz0xMDgpfWlmKDEwOD09KDB8aykpe2lmKGs9MCwoMHwoQT0wfGFbcWU+PjJdKSk9PSgwfGFbSnI+PjJdKSl7aWYoISgoMHx2bChIZSkpPDwyND4+MjQpKXtB''@;'; + put 'put ''PTEsaz0yODA7YnJlYWsgZX1BPTB8YVtxZT4+Ml19aWYoYVtxZT4+Ml09QSsxLGZlW0E+PjBdPTQxLCgwfChBPTB8YVtxZT4+Ml0pKT09KDB8YVtKcj4+Ml0pKXtpZighKCgwfHZsKEhlKSk8PDI0Pj4yNCkpe0E9MSxrPTI4MDticmVhayBlfUE9MHxhW3FlPj4yXX1hW3FlPj4yXT1BKzEsZmVb''@;'; + put 'put ''QT4+MF09MCxhW2ZyPj4yXT1hW250Pj4yXSxhW250Pj4yXT1hW3FlPj4yXX1hW0c+PjJdPU0saHZbMTUmYVt1cj4+Ml1dKDB8YVtoYz4+Ml0sMHxhW2FbSG4+PjJdPj4yXSwwfGFbYVtIcj4+Ml0+PjJdLDB8YVtmcj4+Ml0sYywzOD09KDB8bSkmMSksQ2YoSGUpLEE9RH1lbHNlIGs9Mjc1fWVs''@;'; + put 'put ''c2Ugaz0yNzU7YnJlYWs7Y2FzZSAxMjppZigwfGZlW3N0Pj4wXSl7aWYoQT0wfENfKGwsRCxNKyhBPTB8YVtEKzY0Pj4yXSl8MCwwLUErKDB8YVtMbD4+Ml0pfDApLGY9MHxhW0xyPj4yXSwoYz0wfGFba3Q+PjJdKT8oYVtjKzQ+PjJdPWYsYVs4KygwfGFba3Q+PjJdKT4+Ml09KDB8YVtsMD4+''@;'; + put 'put ''Ml0pLSgwfGFbTHI+PjJdKSxhW0xyPj4yXT1hW2wwPj4yXSwwfGFbYnQ+PjJdPyhhW0c+PjJdPU0sbFNbMCZhW2J0Pj4yXV0oMHxhW2hjPj4yXSwwfGFbKGM9MHxhW2t0Pj4yXSk+PjJdLDB8WHRbYyszMz4+MF0sMHxhW2MrND4+Ml0sMHxhW2MrOD4+Ml0sMHxhW204Pj4yXSwwLDAsMCksYz0w''@;'; + put 'put ''KTpjPTEpOihhW2wwPj4yXT1mLGM9MSksQSl7az0yODA7YnJlYWsgZX1BPWMsaz0yNzR9ZWxzZSBrPTI3NTticmVhaztjYXNlIDU6aWYoZmVbb3Q+PjBdPTAsZmVbdGY+PjBdPTEsMHxhW0xlPj4yXSl7aWYoaz0wfGIyKEhlLEQsTSsoaz0wfGFbRCs2ND4+Ml0pfDAsMC1rKygwfGFbTGw+PjJd''@;'; + put 'put ''KXwwKSxhW1JlPj4yXT1rLCFrKXtBPTEsaz0yODA7YnJlYWsgZX1hW250Pj4yXT1hW3FlPj4yXSxBPTB9ZWxzZSBhW1JlPj4yXT03NTM5NSxBPTE7aWYoMD09KDB8ZmVbZzg+PjBdKSYmMD09KDB8YVtTbj4+Ml0pJiYwfChzUz0wfGFbZHY+PjJdKSYmMD09KDB8X29bNjMmc1NdKDB8YVtoYz4+''@;'; + put 'put ''Ml0pKSl7QT0yMixrPTI4MDticmVhayBlfWlmKDB8YVtrdD4+Ml0paz0xMzM7ZWxzZXtpZihjPTB8XzEobCxTdCw3NTM5NSwzNiksYVtrdD4+Ml09YywhYyl7QT0xLGs9MjgwO2JyZWFrIGV9YVtjKzI0Pj4yXT0wLGs9MTMzfWJyZWFrO2Nhc2UgMTM6QT0xLGs9MTMzO2JyZWFrO2Nhc2UgMTU6''@;'; + put 'put ''MCE9KDB8ZmVbc3Q+PjBdKSYmMCE9KDB8YVtrdD4+Ml0pJiYwIT0oMHxhW2J0Pj4yXSk/KGFbRz4+Ml09TSxsU1swJmFbYnQ+PjJdXSgwfGFbaGM+PjJdLDB8YVsoQT0wfGFba3Q+PjJdKT4+Ml0sMHxYdFtBKzMzPj4wXSwwLDAsMHxhW0ErMjA+PjJdLDB8YVtBKzE2Pj4yXSwwfGFbQSsyND4+''@;'; + put 'put ''Ml0sMCksQT1EKTprPTI3NTticmVhaztjYXNlIDE2OmlmKDAhPSgwfGZlW3N0Pj4wXSkmJjAhPSgwfGFba3Q+PjJdKSl7aWYobT0wfGIyKEV0LEQsTSwwfGFbTGw+PjJdKSxhWzI4KygwfGFba3Q+PjJdKT4+Ml09bSwhKDB8YVsyOCsoMHxhW2t0Pj4yXSk+PjJdKSl7QT0xLGs9MjgwO2JyZWFr''@;'; + put 'put ''IGV9aWYoYVtjdD4+Ml09YVtadD4+Ml0sMHxhW1ZpPj4yXSl7YVtHPj4yXT1NLGh2WzE1JmFbVmk+PjJdXSgwfGFbaGM+PjJdLDB8YVsoQT0wfGFba3Q+PjJdKT4+Ml0sMHxhW0ErMjA+PjJdLDB8YVtBKzE2Pj4yXSwwfGFbQSsyND4+Ml0sMHxhW0ErMjg+PjJdKSxBPUQ7YnJlYWsgdH0wfGFb''@;'; + put 'put ''YnQ+PjJdPyhhW0c+PjJdPU0sbFNbMCZhW2J0Pj4yXV0oMHxhW2hjPj4yXSwwfGFbKEE9MHxhW2t0Pj4yXSk+PjJdLDAsMCwwLDB8YVtBKzIwPj4yXSwwfGFbQSsxNj4+Ml0sMHxhW0ErMjQ+PjJdLDB8YVtBKzI4Pj4yXSksQT1EKTprPTI3NX1lbHNlIGs9Mjc1O2JyZWFrO2Nhc2UgOTppZigw''@;'; + put 'put ''fG1pWzYzJmFbRCs0ND4+Ml1dKEQsTSwwfGFbTGw+PjJdKSl7YVtrdD4+Ml09MCxrPTI3NTticmVhayB0fWlmKCEoMHxmZVtzdD4+MF0pKXthW1p0Pj4yXT1hW2N0Pj4yXSxhW2t0Pj4yXT0wLGs9Mjc1O2JyZWFrIHR9aWYoIShBPTB8YjIoRXQsRCxNLDB8YVtMbD4+Ml0pKSl7QT0xLGs9Mjgw''@;'; + put 'put ''O2JyZWFrIGV9aWYoYz0wfF8xKGwsSyxBLDM2KSxhW2t0Pj4yXT1jLCFjKXtBPTEsaz0yODA7YnJlYWsgZX1pZigoMHxhW2M+PjJdKSE9KDB8QSkpe2FbWnQ+PjJdPWFbY3Q+PjJdLGFba3Q+PjJdPTAsaz0yNzU7YnJlYWsgdH1hW2N0Pj4yXT1hW1p0Pj4yXSxhWzI0KygwfGFba3Q+PjJdKT4+''@;'; + put 'put ''Ml09MCxmZVszMysoMHxhW2t0Pj4yXSk+PjBdPTAsZmVbMzQrKDB8YVtrdD4+Ml0pPj4wXT0xJigxXihBPTB8YVtPaT4+Ml0/MTowIT0oMHxhW3YxPj4yXSkpKSwwfGFbYnQ+PjJdP0E9RDprPTI3NTticmVhaztjYXNlIDEwOmlmKCEoMHxmZVtzdD4+MF0pKXthW1p0Pj4yXT1hW2N0Pj4yXSxh''@;'; + put 'put ''W2t0Pj4yXT0wLGs9Mjc1O2JyZWFrIHR9aWYoIShBPTB8YjIoRXQsRCxNLDB8YVtMbD4+Ml0pKSl7QT0xLGs9MjgwO2JyZWFrIGV9aWYoYz0wfF8xKGwsU3QsQSwzNiksYVtrdD4+Ml09YywhYyl7QT0xLGs9MjgwO2JyZWFrIGV9aWYoKDB8YVtjPj4yXSkhPSgwfEEpKXthW1p0Pj4yXT1hW2N0''@;'; + put 'put ''Pj4yXSxhW2t0Pj4yXT0wLGs9Mjc1O2JyZWFrIHR9YVtjdD4+Ml09YVtadD4+Ml0sYVsyNCsoMHxhW2t0Pj4yXSk+PjJdPTAsZmVbMzMrKDB8YVtrdD4+Ml0pPj4wXT0xLGZlWzM0KygwfGFba3Q+PjJdKT4+MF09MSYoMV4oQT0wfGFbT2k+PjJdPzE6MCE9KDB8YVt2MT4+Ml0pKSksMHxhW2J0''@;'; + put 'put ''Pj4yXT9BPUQ6az0yNzU7YnJlYWs7Y2FzZSAxODppZihhW1JvPj4yXT0wLGFbbG8+PjJdPTAsMHxhW1RhPj4yXSl7aWYoTT0wfGIyKEhlLEQsTSwwfGFbTGw+PjJdKSxhW2xvPj4yXT1NLCFNKXtBPTEsaz0yODA7YnJlYWsgZX1hW250Pj4yXT1hW3FlPj4yXSxBPUR9ZWxzZSBrPTI3NTticmVh''@;'; + put 'put ''aztjYXNlIDIxOmlmKCEoMHxxMFsxMjcmYVtEKzUyPj4yXV0oRCxNLDB8YVtMbD4+Ml0sUikpKXtBPTMyLGs9MjgwO2JyZWFrIGV9aWYoMHxhW2xvPj4yXSl7aWYoIShBPTB8YjIoSGUsRCxNKyhBPTB8YVtEKzY0Pj4yXSl8MCwwLUErKDB8YVtMbD4+Ml0pfDApKSl7QT0xLGs9MjgwO2JyZWFr''@;'; + put 'put ''IGV9dUEoQSksYVtSbz4+Ml09QSxhW250Pj4yXT1hW3FlPj4yXSxBPUR9ZWxzZSBrPTI3NTticmVhaztjYXNlIDE5OmlmKDAhPSgwfGFbbG8+PjJdKSYmMCE9KDB8YVtUYT4+Ml0pKXtpZighKEE9MHxiMihIZSxELE0rKEE9MHxhW0QrNjQ+PjJdKXwwLDAtQSsoMHxhW0xsPj4yXSl8MCkpKXtB''@;'; + put 'put ''PTEsaz0yODA7YnJlYWsgZX1hW0c+PjJdPU0scDhbMTUmYVtUYT4+Ml1dKDB8YVtoYz4+Ml0sMHxhW2xvPj4yXSwwfGFbbTg+PjJdLEEsMHxhW1JvPj4yXSksQT0wfWVsc2UgQT0xO0NmKEhlKSxrPTI3NDticmVhaztjYXNlIDIwOjAhPSgwfGFbUm8+PjJdKSYmMCE9KDB8YVtUYT4+Ml0pPyhh''@;'; + put 'put ''W0c+PjJdPU0scDhbMTUmYVtUYT4+Ml1dKDB8YVtoYz4+Ml0sMHxhW2xvPj4yXSwwfGFbbTg+PjJdLDAsMHxhW1JvPj4yXSksQT0wKTpBPTEsQ2YoSGUpLGs9Mjc0O2JyZWFrO2Nhc2UgNTg6aWYoMHxhW2JlPj4yXSYmXzIobCxELE0sMHxhW0xsPj4yXSksMHwoQT0wfGZBKGwsRCxMbCxwLHcs''@;'; + put 'put ''YikpKXtrPTI4MDticmVhayBlfWlmKCEoMHxhW0xsPj4yXSkpe2s9MTg5O2JyZWFrIGV9QT1EO2JyZWFrO2Nhc2UgNDQ6QT0wfGFbZ2E+PjJdO2Rve2lmKCgwfGFbamE+PjJdKT4+PjA+PUE+Pj4wKXtpZighQSl7aWYobT0wfGFbejI+PjJdLGFbZ2E+PjJdPTMyLG09MHxfb1s2MyZtXSgzMiks''@;'; + put 'put ''YVt4aT4+Ml09bSxtKWJyZWFrO2s9MTk4O2JyZWFrIGV9aWYoZj0wfGFbRzI+PjJdLG09MHxhW3hpPj4yXSxhW2dhPj4yXT1BPDw9MSwhKEE9MHxCaVsxMjcmZl0obSxBKSkpe2s9MTkzO2JyZWFrIGV9aWYoYVt4aT4+Ml09QSwwfChBPTB8YVtvcz4+Ml0pKXtpZighKEE9MHxCaVsxMjcmYVtH''@;'; + put 'put ''Mj4+Ml1dKEEsYVtnYT4+Ml08PDIpKSl7QT0xLGs9MjgwO2JyZWFrIGV9YVtvcz4+Ml09QX19fXdoaWxlKDApO2lmKGZlWygwfGFbeGk+PjJdKSsoMHxhW2phPj4yXSk+PjBdPTAsMHxmZVtEbD4+MF0pe2lmKCgwfChBPTB8dXgobCkpKTwwKXtBPTEsaz0yODA7YnJlYWsgZX1hWygwfGFbb3M+''@;'; + put 'put ''PjJdKSsoYVtvbD4+Ml08PDIpPj4yXT1BLGFbb2w+PjJdPTErKDB8YVtvbD4+Ml0pLGFbKDB8YVtMMD4+Ml0pKygyOCpBfDApPj4yXT02LDB8YVt4YT4+Ml0/QT1EOms9Mjc1fWVsc2Ugaz0yNzU7YnJlYWs7Y2FzZSA1MDppZigxMjQ9PSgwfGZlWyhBPSgwfGFbeGk+PjJdKSsoMHxhW2phPj4y''@;'; + put 'put ''XSl8MCk+PjBdKSl7QT0yLGs9MjgwO2JyZWFrIGV9ZmVbQT4+MF09NDQsMCE9KDB8ZmVbRGw+PjBdKSYmMCE9KDB8YVt4YT4+Ml0pP0E9RDprPTI3NTticmVhaztjYXNlIDQ5OmlmKChBPTB8ZmVbKGY9MHxhW3hpPj4yXSkrKGM9MHxhW2phPj4yXSk+PjBdKTw8MjQ+PjI0PT00NCl7QT0yLGs9''@;'; + put 'put ''MjgwO2JyZWFrIGV9QTw8MjQ+PjI0PT0wJjAhPSgwfGZlW0RsPj4wXSkmJjMhPSgwfGFbKHVTPSgwfGFbTDA+PjJdKSsoMjgqKDB8YVsoMHxhW29zPj4yXSkrKCgwfGFbb2w+PjJdKS0xPDwyKT4+Ml0pfDApfDApPj4yXSk/KGFbdVM+PjJdPTUsQT0wPT0oMHxhW3hhPj4yXSkmMSxmPTB8YVt4''@;'; + put 'put ''aT4+Ml0sYz0wfGFbamE+PjJdKTpBPTEsZmVbZitjPj4wXT0xMjQsaz0yNzQ7YnJlYWs7Y2FzZSA1OTpjYXNlIDYwOmlmKGZlW3RmPj4wXT0xLDB8YVtTbj4+Ml0pe2lmKCEoYz0wfGIyKEV0LEQsTSsoYz0wfGFbRCs2ND4+Ml0pfDAsMC1jKygwfGFbTGw+PjJdKXwwKSkpe0E9MSxrPTI4MDti''@;'; + put 'put ''cmVhayBlfWY9MHxfMShsLFN0LGMsMCksYVtadD4+Ml09YVtjdD4+Ml07ZG97aWYoMHxhW0ZmPj4yXSl7aWYoMHxmZVtnOD4+MF0pe2lmKDB8YVt2MT4+Ml0pe2s9MjE5O2JyZWFrfX1lbHNlIGlmKDB8ZmVbdGY+PjBdKXtrPTIxOTticmVha31pZighZil7QT0xMSxrPTI4MDticmVhayBlfWlm''@;'; + put 'put ''KCEoMHxmZVtmKzM0Pj4wXSkpe0E9MjQsaz0yODA7YnJlYWsgZX19ZWxzZSBrPTIxOX13aGlsZSgwKTtpZigyMTk9PSgwfGspJiYoaz0wLDA9PSgwfGYpKSl7aWYoZmVbc3Q+PjBdPTB8ZmVbZzg+PjBdLDYwIT0oMHxtKSl7az0yNzU7YnJlYWsgdH1pZighKEE9MHxhW1phPj4yXSkpe2s9Mjc1''@;'; + put 'put ''O2JyZWFrIHR9ZGxbMTI3JkFdKDB8YVtoYz4+Ml0sYywxKSxBPUQ7YnJlYWsgdH1pZigwfGZlWyhBPWYrMzJ8MCk+PjBdKXtBPTEyLGs9MjgwO2JyZWFrIGV9aWYoMHxhW2YrND4+Ml0pe2lmKGM9MD09KDB8KEE9MHxjeChsLGYsNjA9PSgwfG0pJjEpKSkpe0E9MSYoMV5jKSxrPTI3NDticmVh''@;'; + put 'put ''ayB0fWs9MjgwO2JyZWFrIGV9aWYoISgwfGFbcTE+PjJdKSl7ZmVbc3Q+PjBdPTB8ZmVbZzg+PjBdLGs9Mjc1O2JyZWFrIHR9aWYoZmVbeHA+PjBdPTAsZmVbQT4+MF09MSxtPTA9PSgwfFIyWzEyNyZhW3ExPj4yXV0oMHxhW09MPj4yXSwwLDB8YVtmKzIwPj4yXSwwfGFbZisxNj4+Ml0sMHxh''@;'; + put 'put ''W2YrMjQ+PjJdKSksZmVbQT4+MF09MCxtKXtBPTIxLGs9MjgwO2JyZWFrIGV9aWYoYz0wfGZlW2c4Pj4wXSwhKDB8ZmVbeHA+PjBdKSl7ZmVbc3Q+PjBdPWMsQT1EO2JyZWFrIHR9QT0wfWVsc2UgZmVbc3Q+PjBdPWM9MHxmZVtnOD4+MF0sQT0xO2lmKGM8PDI0Pj4yND09MCYmMCE9KDB8KGNT''@;'; + put 'put ''PTB8YVtkdj4+Ml0pKSYmMD09KDB8X29bNjMmY1NdKDB8YVtoYz4+Ml0pKSl7QT0yMixrPTI4MDticmVhayBlfWs9Mjc0O2JyZWFrO2Nhc2UgNDA6aWYoMHxhW3hhPj4yXSl7aWYoTT0wfE9tKGwsRCxNLDB8YVtMbD4+Ml0pLGFbSG4+PjJdPU0sIU0pe0E9MSxrPTI4MDticmVhayBlfWFbb2w+''@;'; + put 'put ''PjJdPTAsYVtXMj4+Ml09MCxmZVtEbD4+MF09MSxBPUR9ZWxzZSBrPTI3NTticmVhaztjYXNlIDQyOmNhc2UgNDE6aWYoMHxmZVtEbD4+MF0pe2lmKDB8YVt4YT4+Ml0pe2lmKCEoQT0wfF9vWzYzJmFbejI+PjJdXSgyMCkpKXtBPTEsaz0yODA7YnJlYWsgZX1hWyhrPUErNHwwKT4+Ml09MCxh''@;'; + put 'put ''W2srND4+Ml09MCxhW2srOD4+Ml09MCxhW2srMTI+PjJdPTAsYVtBPj4yXT00MT09KDB8bSk/MjoxLGFbRz4+Ml09TSxkbFsxMjcmYVt4YT4+Ml1dKDB8YVtoYz4+Ml0sMHxhW2FbSG4+PjJdPj4yXSxBKSxBPTB9ZWxzZSBBPTE7ZmVbRGw+PjBdPTAsaz0yNzR9ZWxzZSBrPTI3NTticmVhaztj''@;'; + put 'put ''YXNlIDQzOjAhPSgwfGZlW0RsPj4wXSkmJihhWygwfGFbTDA+PjJdKSsoMjgqKDB8YVsoMHxhW29zPj4yXSkrKCgwfGFbb2w+PjJdKS0xPDwyKT4+Ml0pfDApPj4yXT0zLDAhPSgwfGFbeGE+PjJdKSk/QT1EOms9Mjc1O2JyZWFrO2Nhc2UgNTE6Yz0wLGs9MjQ3O2JyZWFrO2Nhc2UgNTM6Yz0x''@;'; + put 'put ''LGs9MjQ3O2JyZWFrO2Nhc2UgNTI6Yz0yLGs9MjQ3O2JyZWFrO2Nhc2UgNTQ6Yz0zLGs9MjQ3O2JyZWFrO2Nhc2UgNDU6Zj0wLGs9MjU4O2JyZWFrO2Nhc2UgNDc6Zj0xLGs9MjU4O2JyZWFrO2Nhc2UgNDY6Zj0yLGs9MjU4O2JyZWFrO2Nhc2UgNDg6Zj0zLGs9MjU4O2JyZWFrO2Nhc2UgNTU6''@;'; + put 'put ''aWYoISgwfGhBKGwsRCxNLDB8YVtMbD4+Ml0pKSl7QT0xLGs9MjgwO2JyZWFrIGV9QT1EO2JyZWFrO2Nhc2UgNTY6aWYoISgwfFNfKGwsRCxNLDB8YVtMbD4+Ml0pKSl7QT0xLGs9MjgwO2JyZWFrIGV9QT1EO2JyZWFrO2Nhc2UgMDoxND09KDB8Yyk/QT1EOms9Mjc1O2JyZWFrO2Nhc2UgMzow''@;'; + put 'put ''fGFbTGU+PjJdP0E9RDprPTI3NTticmVhaztjYXNlIDExOjAhPSgwfGZlW3N0Pj4wXSkmJjAhPSgwfGFbYnQ+PjJdKT9BPUQ6az0yNzU7YnJlYWs7Y2FzZSAxNzowfGFbVGE+PjJdP0E9RDprPTI3NTticmVhaztjYXNlIDMzOjAhPSgwfGZlW3N0Pj4wXSkmJjAhPSgwfGFbdXI+PjJdKT9BPUQ6''@;'; + put 'put ''az0yNzU7YnJlYWs7Y2FzZSAzOTowfGFbeGE+PjJdP0E9RDprPTI3NTticmVhaztkZWZhdWx0Oms9Mjc1fX13aGlsZSgwKTtpZigzMz09KDB8aykpe2lmKCEoMHxxMFsxMjcmYVtEKzUyPj4yXV0oRCxNLDB8YVtMbD4+Ml0sUikpKXtBPTMyLGs9MjgwO2JyZWFrfUE9MSxrPTM0fWVsc2UgaWYo''@;'; + put 'put ''ODA9PSgwfGspKWs9MCwwIT0oMHxmZVtzdD4+MF0pJiYwIT0oMHxhW3VyPj4yXSk/QT1EOms9Mjc1O2Vsc2UgaWYoMTMzPT0oMHxrKSlpZihrPTAsMCE9KDB8ZmVbc3Q+PjBdKSYmMCE9KDB8YVtrdD4+Ml0pKXtpZihjPTB8YjIoRXQsRCxNKyhjPTB8YVtEKzY0Pj4yXSl8MCwwLWMrKDB8YVtM''@;'; + put 'put ''bD4+Ml0pfDApLGFbMTYrKDB8YVtrdD4+Ml0pPj4yXT1jLCEoMHxhWzE2KyhjPTB8YVtrdD4+Ml0pPj4yXSkpe0E9MSxrPTI4MDticmVha31hW2MrMjA+PjJdPWFbbTg+PjJdLGFbY3Q+PjJdPWFbWnQ+PjJdLDEzPT0oMHxtKSYwIT0oMHxhW2J0Pj4yXSk/QT1EOms9Mjc0fWVsc2Ugaz0yNzQ7''@;'; + put 'put ''ZWxzZSBpZigyNDc9PSgwfGspKWlmKGs9MCwwfGZlW0RsPj4wXSl7aWYoQT0wfGFbTGw+PjJdLGMmJihBPUErKDAtKDB8YVtEKzY0Pj4yXSkpfDApLCgwfChmPTB8dXgobCkpKTwwKXtBPTEsaz0yODA7YnJlYWt9aWYoYVsoMHxhW0wwPj4yXSkrKDI4KmZ8MCk+PjJdPTQsYVsoMHxhW0wwPj4y''@;'; + put 'put ''XSkrKDI4KmZ8MCkrND4+Ml09YywhKEE9MHxPbShsLEQsTSxBKSkpe0E9MSxrPTI4MDticmVha31hWygwfGFbTDA+PjJdKSsoMjgqZnwwKSs4Pj4yXT1jPTB8YVtBPj4yXSxBPTA7ZG97bT1BLEE9QSsxfDB9d2hpbGUoMCE9KDB8ZmVbYyttPj4wXSkpO2FbcWE+PjJdPSgwfGFbcWE+PjJdKStB''@;'; + put 'put ''LDB8YVt4YT4+Ml0/QT1EOms9Mjc1fWVsc2Ugaz0yNzU7ZWxzZSBpZigyNTg9PSgwfGspKWlmKDB8ZmVbRGw+PjBdKWlmKEE9MSYoYz0wPT0oMHxhW3hhPj4yXSkpLGFbb2w+PjJdPWs9KDB8YVtvbD4+Ml0pLTF8MCxhWygwfGFbTDA+PjJdKSsoMjgqKDB8YVsoMHxhW29zPj4yXSkrKGs8PDIp''@;'; + put 'put ''Pj4yXSl8MCkrND4+Ml09ZiwwfGFbb2w+PjJdKWs9Mjc0O2Vsc2V7aWYoIWMpe2lmKCEoYz0wfGtfKGwpKSl7QT0xLGs9MjgwO2JyZWFrfWFbRz4+Ml09TSxkbFsxMjcmYVt4YT4+Ml1dKDB8YVtoYz4+Ml0sMHxhW2FbSG4+PjJdPj4yXSxjKX1mZVtEbD4+MF09MCxhW3FhPj4yXT0wLGs9Mjc0''@;'; + put 'put ''fWVsc2Ugaz0yNzU7aWYoMzQ9PSgwfGspKWlmKGs9MCwwIT0oMHxmZVtzdD4+MF0pJiYwIT0oMHxhW2t0Pj4yXSkpe2lmKCEoYz0wfGIyKEV0LEQsTSsoYz0wfGFbRCs2ND4+Ml0pfDAsMC1jKygwfGFbTGw+PjJdKXwwKSkpe0E9MSxrPTI4MDticmVha311QShjKSxhWzI0KygwfGFba3Q+PjJd''@;'; + put 'put ''KT4+Ml09YyxhW2N0Pj4yXT1hW1p0Pj4yXSwxND09KDB8bSkmMCE9KDB8YVtidD4+Ml0pP0E9RDprPTI3NH1lbHNlIGs9Mjc0O3N3aXRjaCgyNzQ9PSgwfGspJiYoaz0wLEE8PDI0Pj4yND9rPTI3NTpBPUQpLDI3NT09KDB8aykmJihrPTAsMHxhW2JlPj4yXSYmXzIobCxELE0sMHxhW0xsPj4y''@;'; + put 'put ''XSksQT1EKSwwfGFbT2U+PjJdKXtjYXNlIDM6az0yNzg7YnJlYWsgZTtjYXNlIDI6QT0zNSxrPTI4MDticmVhayBlfUQ9QSxNPWM9MHxhW0xsPj4yXSxjPTB8cTBbMTI3JmFbQT4+Ml1dKEEsYyxwLExsKX1lOnN3aXRjaCgwfGspe2Nhc2UgNzphW3c+PjJdPU0sQT0wO2JyZWFrO2Nhc2UgOTph''@;'; + put 'put ''W1I+PjJdPWYsQT00O2JyZWFrO2Nhc2UgMTA6aWYoIShBPSgwfEQpPT0oMHxhW3BlPj4yXSkpJiYwPT0oMHxmZVsyMCsoMHxhW3YxPj4yXSk+PjBdKSl7YVt3Pj4yXT1NLEE9MDticmVha30wIT0oMHxmZVtsKzQ4ND4+MF0pfDFeQT8tMT09KDB8UjJbMTI3JmFbRXA+PjJdXShFcCwtNCxwLHAs''@;'; + put 'put ''RCkpP0E9Mjk6KGFbdz4+Ml09TSxBPTApOkE9MzticmVhaztjYXNlIDU4OmRve2lmKDB8ZmVbb3Q+PjBdJiYoQ2ZlPTB8ZmVbdGY+PjBdLGZlW3RmPj4wXT0xLDB8YVtTbj4+Ml0pJiYwfGFbcTE+PjJdKXtpZighKEE9MHxfMShsLFN0LDc1Mzk1LDM2KSkpe0E9MTticmVhayBlfWlmKGFbKExs''@;'; + put 'put ''PUErMjB8MCk+PjJdPWFbbTg+PjJdLGZlW3hwPj4wXT0wLCEoMHxSMlsxMjcmYVtxMT4+Ml1dKDB8YVtPTD4+Ml0sMCwwfGFbTGw+PjJdLDB8YVtBKzE2Pj4yXSwwfGFbQSsyND4+Ml0pKSl7QT0yMTticmVhayBlfWlmKCEoMHxmZVt4cD4+MF0pKXtmZVt0Zj4+MF09Q2ZlO2JyZWFrfWlmKDA9''@;'; + put 'put ''PSgwfGZlW2c4Pj4wXSkmJjB8KG9xPTB8YVtkdj4+Ml0pJiYwPT0oMHxfb1s2MyZvcV0oMHxhW2hjPj4yXSkpKXtBPTIyO2JyZWFrIGV9fX13aGlsZSgwKTthW2wrMjc2Pj4yXT01OCxBPTB8d18obCxNLHAsdyk7YnJlYWs7Y2FzZSAxODQ6QT0yOD09KDB8Yyk/MTA6MTI9PSgwfGMpPzE3OjI7''@;'; + put 'put ''YnJlYWs7Y2FzZSAxODk6YVtsKzI3Nj4+Ml09NTksQT0wO2JyZWFrO2Nhc2UgMTkzOmFbZ2E+PjJdPSgwfGFbZ2E+PjJdKT4+PjEsQT0xO2JyZWFrO2Nhc2UgMTk4OmFbZ2E+PjJdPTAsQT0xO2JyZWFrO2Nhc2UgMjc4OmFbdz4+Ml09YVtMbD4+Ml0sQT0wfXJldHVybiBsZT1hcSwwfEF9ZnVu''@;'; + put 'put ''Y3Rpb24gbHgobCxjLGYscCl7bHw9MCxjfD0wLGZ8PTAscHw9MDt2YXIgYixELFIsRyxLLG09MCxBPTAsdz0wLGs9MCxNPTA7Sz1sZSxsZT1sZSszMnwwLE09SysxMnwwLHc9Sys4fDAsYj1LKzR8MCxrPUssYVsoRz1LKzE2fDApPj4yXT0wLGFbTT4+Ml09MCxhW3c+PjJdPTAsYVtrPj4yXT0t''@;'; + put 'put ''MSxEPWwrMTQ0fDAsUj1sKzI4NHwwLG09MCE9KDB8Yyk7ZTpkb3tpZigwfFhqWzMmKGZlW2wrMjMyPj4wXTw8MjQ+PjI0PzI6MSldKGMsMHxhW0Q+PjJdLGYscCxSLHcsYixHLE0saykpe2lmKDE9PSgwfGFbaz4+Ml0pJigxXm0pJiYoZmVbMTMwKygwfGFbbCszNTI+PjJdKT4+MF09MSwxPT0o''@;'; + put 'put ''MHxhWyhBPWwrNDg4fDApPj4yXSkpJiYoYVtBPj4yXT0wKSwwfGFbKEE9bCsxNDB8MCk+PjJdKXtpZihjPTB8YVtHPj4yXSl7aWYoIShjPTB8YjIobCs0MzZ8MCxwPTB8YVtEPj4yXSxjLGMrKDB8QmlbMTI3JmFbcCsyOD4+Ml1dKHAsYykpfDApKSl7Yz0xO2JyZWFrfWFbbCs0NTI+PjJdPWFb''@;'; + put 'put ''bCs0NDg+PjJdfWVsc2UgYz0wO2lmKG09MHxhW3c+PjJdKXtpZighKG09MHxiMihsKzQzNnwwLHc9MHxhW0Q+PjJdLG0sMC0oMHxhW3crNjQ+PjJdKSsoMHxhW2I+PjJdKXwwKSkpe2M9MTticmVha319ZWxzZSBtPTA7UmNbMzEmYVtBPj4yXV0oMHxhW2wrND4+Ml0sbSxjLDB8YVtrPj4yXSks''@;'; + put 'put ''Zj1tfWVsc2UgMHxhW2wrODA+PjJdPyhfMihsLDB8YVtEPj4yXSxmLHApLGY9MCxjPTApOihmPTAsYz0wKTtkb3tpZighKDB8YVtsKzIyOD4+Ml0pKXtpZihBPW09MHxhW00+PjJdLDB8bSl7aWYoKDB8KGs9MHxhW20rNjQ+PjJdKSk9PSgwfGFbNjQrKE09MHxhW0Q+PjJdKT4+Ml0pJiYyIT0o''@;'; + put 'put ''MHxrKXwoMHxtKT09KDB8TSkpe2FbRD4+Ml09QTticmVha31hW1I+PjJdPWFbRz4+Ml0sYz0xOTticmVhayBlfWlmKDB8KG09MHxhW0c+PjJdKSl7aWYoQT1sKzQzNnwwLCFjJiYhKGM9MHxiMihBLGM9MHxhW0Q+PjJdLG0sbSsoMHxCaVsxMjcmYVtjKzI4Pj4yXV0oYyxtKSl8MCkpKXtjPTE7''@;'; + put 'put ''YnJlYWsgZX1pZihjPTB8SG0obCxjKSxDZihBKSwxOCE9KDB8YykpYnJlYWsgZTthW1I+PjJdPWFbRz4+Ml0sYz0xODticmVhayBlfX19d2hpbGUoMCk7MCE9KDB8Yyl8MCE9KDB8ZikmJkNmKGwrNDM2fDApLGM9MH1lbHNlIGM9bT8zMTozMH13aGlsZSgwKTtyZXR1cm4gbGU9SywwfGN9ZnVu''@;'; + put 'put ''Y3Rpb24gYjIobCxjLGYscCl7bHw9MCxjfD0wLGZ8PTAscHw9MDtkb3tpZigwfGNBKGwsYyxmLHApKXtpZigoMHwoYz0wfGFbKGY9bCsxMnwwKT4+Ml0pKT09KDB8YVtsKzg+PjJdKSl7aWYoISgoMHx2bChsKSk8PDI0Pj4yNCkpe2M9MDticmVha31jPTB8YVtmPj4yXX1hW2Y+PjJdPWMrMSxm''@;'; + put 'put ''ZVtjPj4wXT0wLGM9MHxhW2wrMTY+PjJdfWVsc2UgYz0wfXdoaWxlKDApO3JldHVybiAwfGN9ZnVuY3Rpb24gQ2YobCl7dmFyIHAsYz0wLGY9MCxtPTAsQT0wO2M9MHxhWyhwPTQrKGx8PTApfDApPj4yXTtlOmRve2lmKGMpZm9yKGY9MHxhW2w+PjJdOzspe2lmKCFmKXtjPWw7YnJlYWsgZX1B''@;'; + put 'put ''PTB8YVtmPj4yXSxhW2Y+PjJdPWMsYVtwPj4yXT1mLG09ZixmPUEsYz1tfWVsc2UgYVtwPj4yXT1hW2w+PjJdLGM9bH13aGlsZSgwKTthW2M+PjJdPTAsYVtsKzE2Pj4yXT0wLGFbbCsxMj4+Ml09MCxhW2wrOD4+Ml09MH1mdW5jdGlvbiBfMShsLGMsZixwKXtsfD0wLGZ8PTAscHw9MDt2YXIg''@;'; + put 'put ''bT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAsSz0wLHBlPTAsZ2U9MCxiZT0wLE9lPTAsTGU9MCxSZT0wLEhlPTA7UmU9OCsoY3w9MCl8MDtlOmRve2lmKDB8YVtSZT4+Ml0pe2ZvcihMZT0wfHlBKGwsZiksaz0wfGFbYz4+Ml0sTT1MZSYwLShiPTB8YVtSZT4+Ml0pLE9lPWMr''@;'; + put 'put ''NHwwLEQ9KHc9YistMXwwKT4+PjIsQT0wLHcmPUxlO209MHxhW2srKHc8PDIpPj4yXTspe2lmKCgwfEZtKGYsMHxhW20+PjJdKSk8PDI0Pj4yNClicmVhayBlO0E9bT1BPDwyND4+MjQ/QToyNTUmKE0+Pj4oKDB8WHRbT2U+PjBdKS0xfDApJkR8MSksdz13LShiZT0yNTUmbSkrKHc+Pj4wPGJl''@;'; + put 'put ''Pj4+MD9iOjApfDB9aWYocCl7aWYoISgoMHxhW2MrMTI+PjJdKT4+PigobT0yNTUmKEE9MHxmZVtPZT4+MF0pKS0xfDApKSl7bT1jKzE2fDAsQT1jLFI9Mjc7YnJlYWt9aWYoSz1tKzEmMjU1LHBlPShnZT0xPDwodz1BKzEmMjU1KSktMXwwLGJlPTB8X29bNjMmYVthWyhtPWMrMTZ8MCk+PjJd''@;'; + put 'put ''Pj4yXV0oQT1nZTw8Mikpe2Zvcih1MigwfGJlLDAsMHxBKSxHPTAtZ2V8MCxEPXcrLTF8MCxSPXBlPj4+MixNPTA7IShNPj4+MD49KDB8YVtSZT4+Ml0pPj4+MCk7KXtpZigwfChBPTB8YVsoMHxhW2M+PjJdKSsoTTw8Mik+PjJdKSl7Zm9yKGI9MjU1JigoKEE9MHx5QShsLDB8YVtBPj4yXSkp''@;'; + put 'put ''JkcpPj4+RCZSfDEpLEEmPXBlLHc9MDswfGFbKGs9YmUrKEE8PDIpfDApPj4yXTspQT1BKyhBPj4+MDwoSGU9MjU1JihrPXc8PDI0Pj4yND09MD9iOncpKT4+PjA/Z2U6MCktSGV8MCx3PWs7YVtrPj4yXT1hWygwfGFbYz4+Ml0pKyhNPDwyKT4+Ml19TT1NKzF8MH1mb3IoQ29bMTI3JmFbOCso''@;'; + put 'put ''MHxhW20+PjJdKT4+Ml1dKDB8YVtjPj4yXSksYVtjPj4yXT1iZSxmZVtPZT4+MF09SyxhW1JlPj4yXT1nZSxiPTI1NSYoKExlJkcpPj4+RCZSfDEpLEE9cGUmTGUsdz0wOzspe2lmKCEoMHxhW2JlKyhBPDwyKT4+Ml0pKXt3PUEsQT1jLFI9Mjc7YnJlYWsgZX1BPUErKEE+Pj4wPChSZT0yNTUm''@;'; + put 'put ''KEhlPXc8PDI0Pj4yND09MD9iOncpKT4+PjA/Z2U6MCktUmV8MCx3PUhlfX1lbHNlIG09MH1lbHNlIG09MH1lbHNle2lmKHApe2lmKGZlW2MrND4+MF09NixhW1JlPj4yXT02NCxBPTB8X29bNjMmYVthWyhtPWMrMTZ8MCk+PjJdPj4yXV0oMjU2KSxhW2M+PjJdPUEsQSl7dTIoMHxBLDAsMjU2''@;'; + put 'put ''KSx3PTB8eUEobCxmKSx3Jj0oMHxhW1JlPj4yXSktMSxBPWMsUj0yNzticmVha31hW1JlPj4yXT0wLG09MDticmVha31tPTB9fXdoaWxlKDApO3JldHVybiAyNz09KDB8UikmJihtPTB8X29bNjMmYVthW20+PjJdPj4yXV0ocCksYVsoMHxhW0E+PjJdKSsodzw8Mik+PjJdPW0sKG09MHxhWygw''@;'; + put 'put ''fGFbQT4+Ml0pKyh3PDwyKT4+Ml0pPyh1MigwfG0sMCwwfHApLGFbYVsoMHxhW0E+PjJdKSsodzw8Mik+PjJdPj4yXT1mLGFbKG09YysxMnwwKT4+Ml09MSsoMHxhW20+PjJdKSxtPTB8YVsoMHxhW0E+PjJdKSsodzw8Mik+PjJdKTptPTApLDB8bX1mdW5jdGlvbiB1QShsKXt2YXIgYz0wLGY9''@;'; + put 'put ''MCxwPTA7Zm9yKHA9bHw9MCxjPWw7KGY9MHxmZVtwPj4wXSk8PDI0Pj4yNDspe3N3aXRjaChmPDwyND4+MjR8MCl7Y2FzZSAxMDpjYXNlIDEzOmNhc2UgMzI6KDB8YykhPSgwfGwpPzMyIT0oMHxmZVtjKy0xPj4wXSkmJihmZVtjPj4wXT0zMixjPWMrMXwwKTpjPWw7YnJlYWs7ZGVmYXVsdDpm''@;'; + put 'put ''ZVtjPj4wXT1mLGM9YysxfDB9cD1wKzF8MH0oMHxjKSE9KDB8bCkmJihsPTMyPT0oMHxmZVsobD1jKy0xfDApPj4wXSk/bDpjKSxmZVtsPj4wXT0wfWZ1bmN0aW9uIHdfKGwsYyxmLHApe3JldHVybiAwPT0oMHwoYz0wfEJtKGx8PTAsMCwwfGFbbCsxNDQ+PjJdLGN8PTAsZnw9MCxwfD0wLDA9''@;'; + put 'put ''PSgwfGZlW2wrNDgwPj4wXSkmMSkpKSYmKDB8eF8obCkpPDwyND4+MjQ9PTAmJihjPTEpLDB8Y31mdW5jdGlvbiBPbShsLGMsZixwKXt2YXIgQSxtPTA7Yz0wfGIyKDgwKyhBPTB8YVszNTIrKGx8PTApPj4yXSl8MCxjfD0wLGZ8PTAscHw9MCk7ZG97aWYoMCE9KDB8YykmJjAhPSgwfChtPTB8''@;'; + put 'put ''XzEobCxBKzIwfDAsYywyNCkpKSlpZigoMHxhW20+PjJdKT09KDB8Yykpe2lmKGFbQSs5Nj4+Ml09YVtBKzkyPj4yXSwhKDB8SV8obCxtKSkpe209MDticmVha319ZWxzZSBhW0ErOTI+PjJdPWFbQSs5Nj4+Ml07ZWxzZSBtPTB9d2hpbGUoMCk7cmV0dXJuIDB8bX1mdW5jdGlvbiBiXyhsLGMs''@;'; + put 'put ''ZixwKXtjfD0wLGZ8PTAscHw9MDt2YXIgayxNLEQsUixtPTAsQT0wLHc9MCxiPTA7az04MCsoRD0wfGFbMzUyKyhsfD0wKT4+Ml0pfDAsKDB8KEE9MHxhWyhSPUQrOTJ8MCk+PjJdKSk9PSgwfGFbKE09RCs4OHwwKT4+Ml0pPygwfHZsKGspKTw8MjQ+PjI0PyhBPTB8YVtSPj4yXSx3PTQpOm09''@;'; + put 'put ''MDp3PTQ7ZTpkb3tpZig0PT0oMHx3KSlpZihhW1I+PjJdPUErMSxmZVtBPj4wXT0wLGM9MHxiMihrLGMsZixwKSwwIT0oMHxjKSYmKGI9YysxfDAsbT0wfF8xKGwsRCs0MHwwLGIsMTIpLDAhPSgwfG0pKSl7aWYoKDB8YVttPj4yXSkhPSgwfGIpKXthW1I+PjJdPWFbRCs5Nj4+Ml07YnJlYWt9''@;'; + put 'put ''aWYoYVsodz1EKzk2fDApPj4yXT1BPTB8YVtSPj4yXSwwfGZlW2wrMjMyPj4wXSl7Zj0wfGZlW2I+PjBdO3Q6ZG97aWYoZjw8MjQ+PjI0PT0xMjApe2lmKDEwOT09KDB8ZmVbYysyPj4wXSkmJjEwOD09KDB8ZmVbYyszPj4wXSkmJjExMD09KDB8ZmVbYys0Pj4wXSkmJjExNT09KDB8ZmVbYys1''@;'; + put 'put ''Pj4wXSkpe3N3aXRjaCgwfGZlW2MrNj4+MF0pe2Nhc2UgMDpBPUQrMTUyfDA7YnJlYWs7Y2FzZSA1ODpBPTB8XzEobCxEKzYwfDAsYys3fDAsOCk7YnJlYWs7ZGVmYXVsdDpwPTAsYz0xMjA7YnJlYWsgdH1hW20rND4+Ml09QSxmZVttKzk+PjBdPTE7YnJlYWsgZX1wPTAsYz0xMjB9ZWxzZSBw''@;'; + put 'put ''PTAsYz1mfXdoaWxlKDApO3Q6Zm9yKDs7KXtzd2l0Y2goYzw8MjQ+PjI0KXtjYXNlIDA6YnJlYWsgZTtjYXNlIDU4OmY9MDticmVhayB0fXA9Yz1wKzF8MCxjPTB8ZmVbYitjPj4wXX1mb3IoO2M9KDB8QSk9PSgwfGFbTT4+Ml0pLCEoKDB8Zik+PSgwfHApKTspe2lmKGMpe2lmKCEoKDB8dmwo''@;'; + put 'put ''aykpPDwyND4+MjQpKXttPTA7YnJlYWsgZX1BPTB8YVtSPj4yXX1jPTB8ZmVbYitmPj4wXSxhW1I+PjJdPUErMSxmZVtBPj4wXT1jLGY9ZisxfDAsQT0wfGFbUj4+Ml19aWYoYyl7aWYoISgoMHx2bChrKSk8PDI0Pj4yNCkpe209MDticmVha31BPTB8YVtSPj4yXX1pZihhW1I+PjJdPUErMSxm''@;'; + put 'put ''ZVtBPj4wXT0wLEE9MHxfMShsLEQrNjB8MCwwfGFbdz4+Ml0sOCksYVttKzQ+PjJdPUEsQSl7aWYoKDB8YVtBPj4yXSk9PSgwfChjPTB8YVt3Pj4yXSkpKXthW3c+PjJdPWFbUj4+Ml07YnJlYWt9YVtSPj4yXT1jO2JyZWFrfW09MH19ZWxzZSBtPTB9d2hpbGUoMCk7cmV0dXJuIDB8bX1mdW5j''@;'; + put 'put ''dGlvbiBzeChsLGMpe2N8PTA7dmFyIG0sQSxmPTAscD0wLHc9MDtmb3IobT0xMisobHw9MCl8MCxBPWwrOHwwOzspe2lmKCEoKGY9MHxmZVtjPj4wXSk8PDI0Pj4yNCkpe3c9NzticmVha31pZigoMHwocD0wfGFbbT4+Ml0pKT09KDB8YVtBPj4yXSkpe2lmKCEoKDB8dmwobCkpPDwyND4+MjQp''@;'; + put 'put ''KXtjPTA7YnJlYWt9cD0wfGFbbT4+Ml0sZj0wfGZlW2M+PjBdfWFbbT4+Ml09cCsxLGZlW3A+PjBdPWYsYz1jKzF8MH1yZXR1cm4gNz09KDB8dykmJihjPTB8YVtsKzE2Pj4yXSksMHxjfWZ1bmN0aW9uIGNBKGwsYyxmLHApe2x8PTAsY3w9MCxwfD0wO3ZhciBBLHcsYixtPTA7Yj1sZSxsZT1s''@;'; + put 'put ''ZSsxNnwwLGFbKHc9Yik+PjJdPWZ8PTAsMD09KDB8YVsoQT1sKzEyfDApPj4yXSkmJigwfHZsKGwpKTw8MjQ+PjI0PT0wP2Y9MDptPTM7ZTpkb3tpZigzPT0oMHxtKSl7Zm9yKGY9Yys1NnwwLG09bCs4fDA7ISgoMHxSMlsxMjcmYVtmPj4yXV0oYyx3LHAsQSwwfGFbbT4+Ml0pKT4+PjA8Mik7''@;'; + put 'put ''KWlmKCEoKDB8dmwobCkpPDwyND4+MjQpKXtmPTA7YnJlYWsgZX1mPTB8YVtsKzE2Pj4yXX19d2hpbGUoMCk7cmV0dXJuIGxlPWIsMHxmfWZ1bmN0aW9uIE9oKGwsYyxmLHAsbSxBKXtjfD0wLGZ8PTAsbXw9MCxBfD0wO3ZhciBELFIsdz0wLGI9MCxrPTAsTT0wO3c9KHB8PTApPDwyND4+MjQ9''@;'; + put 'put ''PTAsRD0wfGFbKFI9MTIrKGx8PTApfDApPj4yXTtlOmRve2lmKHcmMD09KDB8bSkpTT05O2Vsc2V7Zm9yKGI9bCsyMHwwLHA9MDshKCgwfHApPj0oMHxEKSk7KXtpZigoMHxhWygwfGFbYj4+Ml0pKygxMipwfDApPj4yXSk9PSgwfGMpKXtwPTE7YnJlYWsgZX1wPXArMXwwfSF3JiYwPT0oMHxh''@;'; + put 'put ''WyhrPWwrOHwwKT4+Ml0pJiYwPT0oMHxmZVtjKzk+PjBdKSYmKGFbaz4+Ml09YyksTT05fX13aGlsZSgwKTtlOmRve2lmKDk9PSgwfE0pKXtiPWwrMTZ8MDtkb3tpZigoMHxEKT09KDB8YVtiPj4yXSkpe2lmKEQpe2lmKCEocD0wfEJpWzEyNyZhW0ErMTY+PjJdXSgwfGFbKHc9bCsyMHwwKT4+''@;'; + put 'put ''Ml0sMjQqRHwwKSkpe3A9MDticmVhayBlfWFbYj4+Ml09RDw8MSxhW3c+PjJdPXA7YnJlYWt9aWYoYVtiPj4yXT04LHA9MHxfb1s2MyZhW0ErMTI+PjJdXSg5NiksYVtsKzIwPj4yXT1wLDB8cClicmVhazthW2I+PjJdPTAscD0wO2JyZWFrIGV9cD0wfGFbbCsyMD4+Ml19d2hpbGUoMCk7YVtw''@;'; + put 'put ''KygxMiooQT0wfGFbUj4+Ml0pfDApPj4yXT1jLGFbcCsoMTIqQXwwKSs4Pj4yXT1tLGZlW3ArKDEyKkF8MCkrND4+MF09ZixmPDwyND4+MjR8fChmZVtjKzg+PjBdPTEpLGFbUj4+Ml09MSsoMHxhW1I+PjJdKSxwPTF9fXdoaWxlKDApO3JldHVybiAwfHB9ZnVuY3Rpb24gdmwobCl7dmFyIGM9''@;'; + put 'put ''MCxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MDtwPTB8YVsoYz00KyhsfD0wKXwwKT4+Ml07ZG97aWYocCl7aWYoIShBPTB8YVsobT1sKzE2fDApPj4yXSkpe2FbbD4+Ml09cCxhW2M+PjJdPWFbcD4+Ml0sYVtwPj4yXT0wLGFbbT4+Ml09Yz04KyhEPTB8YVtsPj4yXSl8MCxh''@;'; + put 'put ''W2wrOD4+Ml09KDB8YVtEKzQ+PjJdKSsoRCs4KSxhW2wrMTI+PjJdPWMsYz0xO2JyZWFrfSgoMHxhWyhmPWwrOHwwKT4+Ml0pLUF8MCk8KDB8YVtwKzQ+PjJdKT8oTT0wfGFbcD4+Ml0sYVtwPj4yXT1hW2w+PjJdLGFbbD4+Ml09RD0wfGFbYz4+Ml0sYVtjPj4yXT1NLGdvKEQrOHwwLDB8KGM9''@;'; + put 'put ''MHxhW20+PjJdKSwoMHxhW2Y+PjJdKS1jfDApLGFbKEQ9bCsxMnwwKT4+Ml09KDB8YVtEPj4yXSktKDB8YVttPj4yXSkrKDgrKGM9MHxhW2w+PjJdKSksYVttPj4yXT1jKzgsYVtmPj4yXT0oMHxhW2MrND4+Ml0pKyhjKzgpLGM9MSk6dz02fWVsc2Ugdz02fXdoaWxlKDApO2U6ZG97aWYoNj09''@;'; + put 'put ''KDB8dykpe3A9MHxhW2w+PjJdLE09bCsxNnwwO2Rve2lmKHApe2lmKGM9az0wfGFbTT4+Ml0sKDB8aykhPShwKzh8MCkpe2I9TTticmVha31pZihmPSgwfGFbKHc9bCsxMnwwKT4+Ml0pLWN8MCwoMHwoQT0oMHxhWyhtPWwrOHwwKT4+Ml0pLWM8PDEpKTwwKXtjPTA7YnJlYWsgZX1pZighKGM9''@;'; + put 'put ''MHxMXyhBKSkpe2M9MDticmVhayBlfWlmKCEoYz0wfEJpWzEyNyZhWzQrKDB8YVtsKzIwPj4yXSk+PjJdXShwLGMpKSl7Yz0wO2JyZWFrIGV9YVtsPj4yXT1jLGFbYys0Pj4yXT1BLGFbdz4+Ml09OCsoYz0wfGFbbD4+Ml0pK2YsYVtNPj4yXT1jKzgsYVttPj4yXT1jKzgrQSxjPTE7YnJlYWsg''@;'; + put 'put ''ZX1iPU0sYz0wfGFbTT4+Ml19d2hpbGUoMCk7aWYoKDB8KGM9KDB8YVsoaz1sKzh8MCk+PjJdKS1jfDApKT49MCl7aWYoKDB8Yyk+PTEwMjQpe2lmKCgwfChjPDw9MSkpPDApe2M9MDticmVha319ZWxzZSBjPTEwMjQ7MCE9KDB8KGY9MHxMXyhjKSkpJiYwIT0oMHwoRD0wfF9vWzYzJmFbYVts''@;'; + put 'put ''KzIwPj4yXT4+Ml1dKGYpKSk/KGFbRCs0Pj4yXT1jLGFbRD4+Ml09YVtsPj4yXSxhW2w+PjJdPUQsZj1sPTB8YVsodz1sKzEyfDApPj4yXSxtPXA9MHxhW00+PjJdLCgwfGwpPT0oMHxwKT8oQT1EKzh8MCxwPW0pOihnbygwfChBPUQrOHwwKSwwfHAsZi1tfDApLHA9MHxhW2I+PjJdLGY9MHxh''@;'; + put 'put ''W3c+PjJdKSxhW3c+PjJdPUQrOCsoZi1wKSxhW00+PjJdPUEsYVtrPj4yXT1EKzgrYyxjPTEpOmM9MH1lbHNlIGM9MH19d2hpbGUoMCk7cmV0dXJuIDB8Y31mdW5jdGlvbiBfXyhsLGMsZixwLG0sQSl7dmFyIHc9MDtsPTB8QUEobHw9MCxjfD0wLGZ8PTAscHw9MCxtfD0wLEF8PTApO2Rve2lm''@;'; + put 'put ''KCFsKXtpZihsPTB8YVsoYz1BKzEyfDApPj4yXSxmPDwyND4+MjQ9PTAmJigwfGFbQSsxNj4+Ml0pIT0oMHxsKSYmMzI9PSgwfGZlWyh3PWwrLTF8MCk+PjBdKSYmKGFbYz4+Ml09dyxsPXcpLCgwfGwpPT0oMHxhW0ErOD4+Ml0pKXtpZighKCgwfHZsKEEpKTw8MjQ+PjI0KSl7bD0xO2JyZWFr''@;'; + put 'put ''fWw9MHxhW2M+PjJdfWFbYz4+Ml09bCsxLGZlW2w+PjBdPTAsbD0wfX13aGlsZSgwKTtyZXR1cm4gMHxsfWZ1bmN0aW9uIENfKGwsYyxmLHApe2N8PTAsZnw9MCxwfD0wO3ZhciBXZSxvdCxTdCxrdCxzdCxadCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxLPTAscGU9MCxn''@;'; + put 'put ''ZT0wLGJlPTAsT2U9MCxMZT0wLFJlPTAsSGU9MCxWZT0wLHFlPTAsbnQ9MCxFdD0wO2lmKFp0PWxlLGxlPWxlKzE2fDAsV2U9WnQsb3Q9WnQrNHwwLFN0PTEwNCsobT0wfGFbMzUyKyhsfD0wKT4+Ml0pfDAsa3Q9MHxhWyhzdD1sKzI3MnwwKT4+Ml0sYVtzdD4+Ml09MSwwPT0oMHxhW1N0Pj4y''@;'; + put 'put ''XSkmJigwfHZsKFN0KSk8PDI0Pj4yND09MCltPTE7ZWxzZXtEPWMrMjB8MCxSPWwrNDg0fDAsRz1sKzE0NHwwLEs9bCs0MTJ8MCxwZT1jKzY0fDAsZ2U9bSsxMzJ8MCxiZT1sKzQyOHwwLE9lPWwrNDI0fDAsTGU9bCsyMjR8MCxSZT1sKzExMnwwLE09bSsxMzB8MCxIZT1tKzEyOHwwLFZlPW0r''@;'; + put 'put ''MTMxfDAscWU9bCsxMTZ8MCxudD1tKzExMnwwLGI9bSsxMTZ8MCxrPWMrNDB8MDtlOmZvcig7Oyl7dDpkb3tzd2l0Y2goMHxxMFsxMjcmYVtEPj4yXV0oYyxmLHAsV2UpKXtjYXNlLTQ6bT0wO2JyZWFrIGU7Y2FzZS0xOkV0PTM3O2JyZWFrIGU7Y2FzZSAwOkV0PTM5O2JyZWFrIGU7Y2FzZSAy''@;'; + put 'put ''ODppZigwPT0oMHxmZVtSPj4wXSkmJigwfGFbRz4+Ml0pPT0oMHxjKSl7RXQ9MTk7YnJlYWsgZX1pZighKG09MHxiMihLLGMsZisobT0wfGFbcGU+PjJdKXwwLDAtbSsoMHxhW1dlPj4yXSl8MCkpKXttPTE7YnJlYWsgZX1pZihBPTB8XzEobCxnZSxtLDApLGFbT2U+PjJdPWFbYmU+PjJdLCFB''@;'; + put 'put ''KXtFdD05O2JyZWFrIGV9aWYoMHxmZVsodz1BKzMyfDApPj4wXSl7RXQ9MTE7YnJlYWsgZX1pZighKDB8YVsobT1BKzE2fDApPj4yXSkpe2lmKGZlW3c+PjBdPTEsbT0wfENfKGwsMHxhW0xlPj4yXSxtPTB8YVtBKzQ+PjJdLG0rKDB8YVtBKzg+PjJdKXwwKSxmZVt3Pj4wXT0wLG0pYnJlYWsg''@;'; + put 'put ''ZTticmVhayB0fWlmKDB8YVtSZT4+Ml0pe2lmKGZlW1ZlPj4wXT0wLGZlW3c+PjBdPTEsQT0wPT0oMHxSMlsxMjcmYVtSZT4+Ml1dKDB8YVtxZT4+Ml0sMCwwfGFbQSsyMD4+Ml0sMHxhW20+PjJdLDB8YVtBKzI0Pj4yXSkpLGZlW3c+PjBdPTAsQSl7bT0yMTticmVhayBlfWlmKDB8ZmVbVmU+''@;'; + put 'put ''PjBdKWJyZWFrIHR9ZmVbSGU+PjBdPTB8ZmVbTT4+MF07YnJlYWs7Y2FzZSA2OmNhc2UgOTppZighKDB8Y0EoU3QsYyxmLDB8YVtXZT4+Ml0pKSl7bT0xO2JyZWFrIGV9YnJlYWs7Y2FzZS0zOmFbV2U+PjJdPWYrKDB8YVtwZT4+Ml0pLEV0PTIyO2JyZWFrO2Nhc2UgNzpFdD0yMjticmVhaztj''@;'; + put 'put ''YXNlIDEwOmlmKCgwfChtPTB8QmlbMTI3JmFbaz4+Ml1dKGMsZikpKTwwKXtFdD0yNzticmVhayBlfWZvcihBPTB8VzQobSxvdCksZj0wOyEoKDB8Zik+PSgwfEEpKTspe2lmKCgwfGFbbnQ+PjJdKT09KDB8KG09MHxhW2I+PjJdKSkpe2lmKCEoKDB8dmwoU3QpKTw8MjQ+PjI0KSl7bT0xLEV0''@;'; + put 'put ''PTM1O2JyZWFrIGV9bT0wfGFbYj4+Ml19dz0wfGZlW290K2Y+PjBdLGFbYj4+Ml09bSsxLGZlW20+PjBdPXcsZj1mKzF8MH1icmVhaztkZWZhdWx0OkV0PTQxO2JyZWFrIGV9fXdoaWxlKDApO2lmKDIyPT0oMHxFdCkpe2lmKEV0PTAsKDB8YVtudD4+Ml0pPT0oMHwobT0wfGFbYj4+Ml0pKSl7''@;'; + put 'put ''aWYoISgoMHx2bChTdCkpPDwyND4+MjQpKXttPTE7YnJlYWt9bT0wfGFbYj4+Ml19YVtiPj4yXT1tKzEsZmVbbT4+MF09MTB9Zj0wfGFbV2U+PjJdfTk9PSgwfEV0KT8oZmVbSGU+PjBdPTB8ZmVbTT4+MF0sbT0wKToxMT09KDB8RXQpPygoMHxhW0c+PjJdKT09KDB8YykmJihhW2wrMjg0Pj4y''@;'; + put 'put ''XT1mKSxtPTEyKToxOT09KDB8RXQpPyhhW2wrMjg0Pj4yXT1mLG09MTApOjI3PT0oMHxFdCk/KDB8YVtHPj4yXSk9PSgwfGMpPyhhW2wrMjg0Pj4yXT1mLG09MTQsRXQ9MzUpOihtPTE0LEV0PTM1KTozNz09KDB8RXQpPygoMHxhW0c+PjJdKT09KDB8YykmJihhW2wrMjg0Pj4yXT1mKSxtPTQp''@;'; + put 'put ''OjM5PT0oMHxFdCk/KCgwfGFbRz4+Ml0pPT0oMHxjKSYmKGFbbCsyODQ+PjJdPWFbV2U+PjJdKSxtPTQpOjQxPT0oMHxFdCkmJigoMHxhW0c+PjJdKT09KDB8YykmJihhW2wrMjg0Pj4yXT1mKSxtPTIzKSxhW3N0Pj4yXT1rdH1yZXR1cm4gbGU9WnQsMHxtfWZ1bmN0aW9uIF8yKGwsYyxmLHAp''@;'; + put 'put ''e2x8PTAsY3w9MCxwfD0wO3ZhciBELFIsRyxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxLPTA7aWYoRz1sZSxsZT1sZSsxNnwwLFI9Rys0fDAsYVsoRD1HKT4+Ml09Znw9MCwwfGZlW2MrNjg+PjBdKWRsWzEyNyZhW2wrODA+PjJdXSgwfGFbbCs0Pj4yXSxmLHAtZnwwKTtlbHNleygwfGFbbCsx''@;'; + put 'put ''NDQ+PjJdKT09KDB8Yyk/KG09bCsyODh8MCxBPWwrMjg0fDApOm09NCsoQT0wfGFbbCsyOTY+PjJdKXwwLHc9bCs0NHwwLGI9Yys1NnwwLGs9bCs0OHwwLE09bCs4MHwwLGY9bCs0fDA7ZG97YVtSPj4yXT1hW3c+PjJdLGw9MHxSMlsxMjcmYVtiPj4yXV0oYyxELHAsUiwwfGFbaz4+Ml0pLGFb''@;'; + put 'put ''bT4+Ml09YVtEPj4yXSxkbFsxMjcmYVtNPj4yXV0oMHxhW2Y+PjJdLEs9MHxhW3c+PjJdLCgwfGFbUj4+Ml0pLUt8MCksYVtBPj4yXT1hW0Q+PjJdfXdoaWxlKGw+Pj4wPjEpfWxlPUd9ZnVuY3Rpb24gZkEobCxjLGYscCxtLEEpe3B8PTAsbXw9MCxBfD0wO3ZhciBrLE0sRCxSLHc9MCxiPTA7''@;'; + put 'put ''c3dpdGNoKEQ9bGUsbGU9bGUrMTZ8MCxrPUQsTT0wfGFbKGZ8PTApPj4yXSwoMHxhWzE0NCsobHw9MCk+PjJdKT09KDB8KGN8PTApKT8oYVsoYj1sKzI4NHwwKT4+Ml09TSx3PWwrMjg4fDApOnc9NCsoYj0wfGFbbCsyOTY+PjJdKXwwLGFbYj4+Ml09TSxhW2Y+PjJdPTAsUj0wfHEwWzEyNyZh''@;'; + put 'put ''W2MrMTI+PjJdXShjLE0scCxrKSxhW3c+PjJdPXA9MHxhW2s+PjJdLDB8Uil7Y2FzZSA0MjowfGFbbCs4MD4+Ml0mJihfMihsLGMsTSxwKSxwPTB8YVtrPj4yXSksYVtmPj4yXT1wLGFbbT4+Ml09cCxwPTI9PSgwfGFbbCs0NzY+PjJdKT8zNTowO2JyZWFrO2Nhc2UgMDphW2I+PjJdPXAscD00''@;'; + put 'put ''O2JyZWFrO2Nhc2UtMjpBPDwyND4+MjQ/KGFbbT4+Ml09TSxwPTApOnA9NjticmVhaztjYXNlLTQ6Y2FzZS0xOkE8PDI0Pj4yND8oYVttPj4yXT1NLHA9MCk6cD0yO2JyZWFrO2RlZmF1bHQ6YVtiPj4yXT1wLHA9MjN9cmV0dXJuIGxlPUQsMHxwfWZ1bmN0aW9uIHV4KGwpe3ZhciBiLGM9MCxm''@;'; + put 'put ''PTAscD0wLG09MCxBPTAsdz0wLGs9MDswfGFbKGs9MTg0KyhiPTB8YVszNTIrKGx8PTApPj4yXSl8MCk+PjJdP2Y9NDooYz0wfF9vWzYzJmFbbCsxMj4+Ml1dKGFbbCs0NjQ+PjJdPDwyKSxhW2s+PjJdPWMsYz8oYVtjPj4yXT0wLGY9NCk6Yz0tMSk7ZG97aWYoND09KDB8Zikpe2lmKHA9MHxh''@;'; + put 'put ''WyhtPWIrMTY0fDApPj4yXSwoYz0wfGFbKHc9YisxNzZ8MCk+PjJdKT4+PjA8KGY9MHxhWyhBPWIrMTcyfDApPj4yXSk+Pj4wKUE9cDtlbHNle2lmKHApe2lmKCEoYz0wfEJpWzEyNyZhW2wrMTY+PjJdXShwLDU2KmZ8MCkpKXtjPS0xO2JyZWFrfWY9YyxjPWFbQT4+Ml08PDF9ZWxzZXtpZigh''@;'; + put 'put ''KGM9MHxfb1s2MyZhW2wrMTI+PjJdXSg4OTYpKSl7Yz0tMTticmVha31mPWMsYz0zMn1hW0E+PjJdPWMsYVttPj4yXT1mLGM9MHxhW3c+PjJdLEE9Zn1hW3c+PjJdPWMrMSwwfChmPTB8YVtiKzE4MD4+Ml0pJiYoMHwoZj0wfGFbKG09QSsoMjgqKGw9MHxhWygwfGFbaz4+Ml0pKyhmKy0xPDwy''@;'; + put 'put ''KT4+Ml0pfDApKzE2fDApPj4yXSkmJihhW0ErKDI4KmZ8MCkrMjQ+PjJdPWMpLChwPTB8YVsoZj1BKygyOCpsfDApKzIwfDApPj4yXSl8fChhW0ErKDI4Kmx8MCkrMTI+PjJdPWMpLGFbbT4+Ml09YyxhW2Y+PjJdPXArMSksYVsoaz1BKygyOCpjfDApKzEyfDApPj4yXT0wLGFbays0Pj4yXT0w''@;'; + put 'put ''LGFbays4Pj4yXT0wLGFbaysxMj4+Ml09MH19d2hpbGUoMCk7cmV0dXJuIDB8Y31mdW5jdGlvbiBjeChsLGMsZil7Y3w9MCxmfD0wO3ZhciBELFIsRyxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTA7Rz1sZSxsZT1sZSsxNnwwLEQ9RywocD0wfGFbKFI9MzAwKyhsfD0wKXwwKT4+Ml0pPyhh''@;'; + put 'put ''W1I+PjJdPWFbcCs4Pj4yXSxNPXAsbT00KToocD0wfF9vWzYzJmFbbCsxMj4+Ml1dKDI0KSk/KE09cCxtPTQpOnA9MTtkb3tpZig0PT0oMHxtKSYmKGZlWyhBPWMrMzJ8MCk+PjBdPTEsYVsodz1jKzEyfDApPj4yXT0wLGFbKGs9TSs4fDApPj4yXT1hWyhiPWwrMjk2fDApPj4yXSxhW2I+PjJd''@;'; + put 'put ''PU0sYVtNKzEyPj4yXT1jLGFbTSsxNj4+Ml09YVsocD1sKzMwOHwwKT4+Ml0sZmVbTSsyMD4+MF09ZixhW00+PjJdPTAsYVtNKzQ+PjJdPTAsZj0obT0wfGFbYys0Pj4yXSkrKDB8YVtjKzg+PjJdKXwwLGFbRD4+Ml09bSwwfGZlW2MrMzM+PjBdPyhwPTB8cTBbMTI3JmFbKHA9MHxhWyhjPWwr''@;'; + put 'put ''MjI0fDApPj4yXSk+PjJdXShwLG0sZixEKSxwPTB8c0EobCwwfGFbYz4+Ml0sbSxmLHAsMHxhW0Q+PjJdLEQsMCkpOnA9MHxCbShsLDB8YVtwPj4yXSwwfGFbbCsyMjQ+PjJdLG0sZixELDApLCFwKSl7aWYoKDB8ZikhPSgwfChwPTB8YVtEPj4yXSkpJiYzPT0oMHxhW2wrNDc2Pj4yXSkpe2Fb''@;'; + put 'put ''dz4+Ml09cC1tLGFbbCsyNzY+PjJdPTYwLHA9MDticmVha31mZVtBPj4wXT0wLGFbYj4+Ml09YVtrPj4yXSxhW2s+PjJdPWFbUj4+Ml0sYVtSPj4yXT1NLHA9MH19d2hpbGUoMCk7cmV0dXJuIGxlPUcsMHxwfWZ1bmN0aW9uIGtfKGwpe3ZhciBmLHAsbSxBLGM9MDtyZXR1cm4gQT1sZSxsZT1s''@;'; + put 'put ''ZSsxNnwwLGY9QSs0fDAscD1BLChjPTB8X29bNjMmYVsxMisobHw9MCk+PjJdXSgoMjAqKDB8YVsobT0xNzYrKGM9MHxhW2wrMzUyPj4yXSl8MCk+PjJdKXwwKSsoMHxhW2MrMTY4Pj4yXSl8MCkpPyhhW3A+PjJdPWMrKDIwKigwfGFbbT4+Ml0pfDApLGFbZj4+Ml09YysyMCxkQShsLDAsYyxm''@;'; + put 'put ''LHApKTpjPTAsbGU9QSwwfGN9ZnVuY3Rpb24gaEEobCxjLGYscCl7Y3w9MCxmfD0wLHB8PTA7dmFyIGssbT0wLEE9MCx3PTAsYj0wO3JldHVybiAwfGFbKGs9NjQrKGx8PTApfDApPj4yXT8wIT0oMHwoQT0wfGIyKG09bCs0MTJ8MCxjLEE9ZisoYVsodz1jKzY0fDApPj4yXTw8MSl8MCxmPUEr''@;'; + put 'put ''KDB8QmlbMTI3JmFbYysyOD4+Ml1dKGMsQSkpfDApKSkmJihhW2wrNDI4Pj4yXT1hW2wrNDI0Pj4yXSwwIT0oMHwoYj0wfGIyKG0sYyxiPTB8QmlbMTI3JmFbYyszMj4+Ml1dKGMsZikscCsoMC0oYVt3Pj4yXTw8MSkpfDApKSkpPyhSbShiKSxkbFsxMjcmYVtrPj4yXV0oMHxhW2wrND4+Ml0s''@;'; + put 'put ''QSxiKSxDZihtKSxmPTEpOmY9MDooMHxhW2wrODA+PjJdJiZfMihsLGMsZixwKSxmPTEpLDB8Zn1mdW5jdGlvbiBTXyhsLGMsZixwKXtjfD0wLGZ8PTAscHw9MDt2YXIgQSxtPTAsdz0wO3JldHVybiAwfGFbKEE9NjgrKGx8PTApfDApPj4yXT8oYz0wfGIyKG09bCs0MTJ8MCxjLGYrKCh3PTB8''@;'; + put 'put ''YVtjKzY0Pj4yXSk8PDIpfDAscCsoMHxBcih3LC0zKSl8MCkpPyhSbShjKSxHc1s2MyZhW0E+PjJdXSgwfGFbbCs0Pj4yXSxjKSxDZihtKSxjPTEpOmM9MDooMHxhW2wrODA+PjJdJiZfMihsLGMsZixwKSxjPTEpLDB8Y31mdW5jdGlvbiBSbShsKXtsfD0wO3ZhciBjPTAsZj0wLHA9MDtlOmZv''@;'; + put 'put ''cig7Oyl7c3dpdGNoKDB8ZmVbbD4+MF0pe2Nhc2UgMDpicmVhayBlO2Nhc2UgMTM6Zj1sLGM9MTMscD00O2JyZWFrIGV9bD1sKzF8MH1pZig0PT0oMHxwKSl7Zm9yKDtjPDwyND4+MjQ9PTEzPyhmZVtmPj4wXT0xMCxsPTEwPT0oMHxmZVsocD1sKzF8MCk+PjBdKT9sKzJ8MDpwKTooZmVbZj4+''@;'; + put 'put ''MF09YyxsPWwrMXwwKSxmPWYrMXwwLChjPTB8ZmVbbD4+MF0pPDwyND4+MjQ7KXA9NDtmZVtmPj4wXT0wfX1mdW5jdGlvbiBkQShsLGMsZixwLG0pe3B8PTAsbXw9MDt2YXIgQT0wLHc9MCxiPTAsaz0wO2lmKGFbKGZ8PTApPj4yXT1iPTB8YVsoMHxhWyhrPTE2NCsoMHxhWzM1MisobHw9MCk+''@;'; + put 'put ''PjJdKXwwKT4+Ml0pKygyOCooY3w9MCl8MCk+PjJdLGFbZis0Pj4yXT1hWygwfGFbaz4+Ml0pKygyOCpjfDApKzQ+PjJdLDQ9PSgwfGIpKXtmb3IoYVtmKzg+PjJdPWFbbT4+Ml0sYz0wfGFbKDB8YVtrPj4yXSkrKDI4KmN8MCkrOD4+Ml07Yj0wfGZlW2M+PjBdLGFbbT4+Ml09MSsoaz0wfGFb''@;'; + put 'put ''bT4+Ml0pLGZlW2s+PjBdPWIsMHxmZVtjPj4wXTspYz1jKzF8MDthW2YrMTI+PjJdPTAsYVtmKzE2Pj4yXT0wfWVsc2V7Zm9yKGFbKHc9ZisxMnwwKT4+Ml09QT0wfGFbKDB8YVtrPj4yXSkrKDI4KmN8MCkrMjA+PjJdLGFbKGI9ZisxNnwwKT4+Ml09YVtwPj4yXSxhW3A+PjJdPSgwfGFbcD4+''@;'; + put 'put ''Ml0pKygyMCpBfDApLGM9KDB8YVtrPj4yXSkrKDI4KmN8MCkrMTJ8MCxBPTA7Yz0wfGFbYz4+Ml0sIShBPj4+MD49KDB8YVt3Pj4yXSk+Pj4wKTspZEEobCxjLCgwfGFbYj4+Ml0pKygyMCpBfDApfDAscCxtKSxjPSgwfGFbaz4+Ml0pKygyOCpjfDApKzI0fDAsQT1BKzF8MDthW2YrOD4+Ml09''@;'; + put 'put ''MH19ZnVuY3Rpb24gQm0obCxjLGYscCxtLEEsdyl7bHw9MCxjfD0wLGZ8PTAsbXw9MCxBfD0wLHd8PTA7dmFyIGJlLE9lLExlLFJlLEhlLFZlLHFlLG50LFdlLG90LFN0LGt0LHN0LEV0LFp0LGN0LGJ0LGFuLFNuLEhuLHVyLEhyLEVyLGZyLERyLEpyLExyLGwwLFZpLE9pLFJvLFRhLGphLGdh''@;'; + put 'put ''LHhpLERsLG9zLG9sLEwwLHoyLEcyLEZmLFphLFcyLHYxLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLEs9MCxwZT0wLGdlPTAsbG89MCx4YT0wLHFhPTAsYnM9MDt2MT1sZSxsZT1sZSs0OHwwLEwwPXYxKzMyfDAsVzI9djErMjR8MCxUYT12MSxhWyhaYT12MSsyOHwwKT4+Ml09cHw9MCxqYT0w''@;'; + put 'put ''fGFbbCszNTI+PjJdLCgwfGFbbCsxNDQ+PjJdKT09KDB8Zik/KHhhPWwrMjg0fDAsbG89bCsyODh8MCk6KHhhPWxvPTB8YVtsKzI5Nj4+Ml0sbG89bG8rNHwwKSxhW3hhPj4yXT1wLGJlPWYrNHwwLHoyPWwrODB8MCxPZT1sKzQ3NnwwLExlPWYrNDR8MCxSZT1mKzY0fDAsSGU9amErODB8MCxW''@;'; + put 'put ''ZT1qYSs5NnwwLHFlPWphKzkyfDAsbnQ9amErMTI5fDAsV2U9bCsxMTJ8MCxvdD1sKzExNnwwLFN0PWwrNDI4fDAsa3Q9bCs0MjR8MCxzdD1sKzMwNHwwLEV0PWwrMTIwfDAsRzI9bCs0fDAsWnQ9amErMTMwfDAsZ2E9bCs2MHwwLGN0PWwrMzY0fDAsYnQ9bCsxMnwwLGFuPWwrMzYwfDAsU249''@;'; + put 'put ''ZisyOHwwLEZmPWwrMzA4fDAseGk9Zis1NnwwLEhuPWwrMTZ8MCx1cj1sKzUyfDAsSHI9bCs0MTJ8MCxFcj1sKzM4OHwwLGZyPWwrNTZ8MCxEcj1sKzIzMnwwLEpyPWwrMjMzfDAsTHI9bCs0Njh8MCxsMD1sKzEwNHwwLFZpPWwrMzcyfDAsT2k9Zis0MHwwLFJvPWwrNzJ8MCxEbD1mKzY4fDAs''@;'; + put 'put ''b3M9bCs0NHwwLG9sPWwrNDh8MDtlOmZvcig7Oyl7YVtMMD4+Ml09Z2U9MHxhW1phPj4yXSxnZT0wfHEwWzEyNyZhW2JlPj4yXV0oZixnZSxtLEwwKSxhW2xvPj4yXT1wPTB8YVtMMD4+Ml0saz1wO3Q6ZG97c3dpdGNoKDB8Z2Upe2Nhc2UtMzpxYT02O2JyZWFrIGU7Y2FzZS00OnFhPTE1O2Jy''@;'; + put 'put ''ZWFrIGU7Y2FzZSAwOnFhPTIwO2JyZWFrIGU7Y2FzZS0xOnFhPTIxO2JyZWFrIGU7Y2FzZS0yOnFhPTIzO2JyZWFrIGU7Y2FzZSAxMjpwPTE3O2JyZWFrIGU7Y2FzZS01OnFhPTEzNDticmVhayBlO2Nhc2UgOTpnZT0yNTUmKDB8bWlbNjMmYVtMZT4+Ml1dKGYsKDB8YVtaYT4+Ml0pKyhnZT0w''@;'; + put 'put ''fGFbUmU+PjJdKXwwLGsrKDAtZ2UpfDApKSxmZVtXMj4+MF09Z2U7ZG97aWYoIShnZTw8MjQ+PjI0KSl7aWYoIShiPTB8YjIoSGUsZiwoMHxhW1phPj4yXSkrKGI9MHxhW1JlPj4yXSl8MCwwLWIrKDB8YVtMMD4+Ml0pfDApKSl7cD0xLHFhPTU2O2JyZWFrIGV9aWYoaz0wfF8xKGwsamEsYiww''@;'; + put 'put ''KSxhW3FlPj4yXT1hW1ZlPj4yXSwwIT0oMHxmZVtudD4+MF0pJiYwPT0oMHxmZVtadD4+MF0pKXtpZighayl7aWYoMHwocD0wfGFbRXQ+PjJdKSl7ZGxbMTI3JnBdKDB8YVtHMj4+Ml0sYiwwKTticmVha31pZighKDB8YVt6Mj4+Ml0pKWJyZWFrO18yKGwsZiwwfGFbWmE+PjJdLDB8YVtMMD4+''@;'; + put 'put ''Ml0pO2JyZWFrfX1lbHNle2lmKCFrKXtwPTExLHFhPTU2O2JyZWFrIGV9aWYoISgwfGZlW2srMzQ+PjBdKSl7cD0yNCxxYT01NjticmVhayBlfX1pZigwfGZlWyhwPWsrMzJ8MCk+PjBdKXtwPTEyLHFhPTU2O2JyZWFrIGV9aWYoMHxhW2srMjg+PjJdKXtwPTE1LHFhPTU2O2JyZWFrIGV9aWYo''@;'; + put 'put ''ISgwfGFbays0Pj4yXSkpe2lmKCEoMHxhW1dlPj4yXSkpe2lmKCEoMHxhW3oyPj4yXSkpYnJlYWs7XzIobCxmLDB8YVtaYT4+Ml0sMHxhW0wwPj4yXSk7YnJlYWt9aWYoZmVbcD4+MF09MSxiPTB8cEEobCksZmVbcD4+MF09MCwhYil7cD0xLHFhPTU2O2JyZWFrIGV9aWYoISgwfFIyWzEyNyZh''@;'; + put 'put ''W1dlPj4yXV0oMHxhW290Pj4yXSxiLDB8YVtrKzIwPj4yXSwwfGFbaysxNj4+Ml0sMHxhW2srMjQ+PjJdKSkpe3A9MjEscWE9NTY7YnJlYWsgZX1hW2t0Pj4yXT1hW1N0Pj4yXTticmVha31pZigwfGZlW3N0Pj4wXSl7aWYocD0wfGN4KGwsaywwKSl7cWE9NTg7YnJlYWsgZX1icmVha30ocD0w''@;'; + put 'put ''fGFbRXQ+PjJdKT9kbFsxMjcmcF0oMHxhW0cyPj4yXSwwfGFbaz4+Ml0sMCk6MHxhW3oyPj4yXSYmXzIobCxmLDB8YVtaYT4+Ml0sMHxhW0wwPj4yXSk7YnJlYWsgdH1pZigwfChwPTB8YVtnYT4+Ml0pKXtkbFsxMjcmcF0oMHxhW0cyPj4yXSxXMiwxKTticmVha30wfGFbejI+PjJdJiZfMihs''@;'; + put 'put ''LGYsMHxhW1phPj4yXSwwfGFbTDA+PjJdKX13aGlsZSgwKTticmVhaztjYXNlIDE6Y2FzZSAyOmlmKHA9MHxhW2N0Pj4yXSlhW2N0Pj4yXT1hW3A+PjJdO2Vsc2V7aWYoIShwPTB8X29bNjMmYVtidD4+Ml1dKDQ4KSkpe3A9MSxxYT03NTticmVhayBlfWlmKGI9MHxfb1s2MyZhW2J0Pj4yXV0o''@;'; + put 'put ''MzIpLGFbcCszNj4+Ml09YiwhYil7cWE9NjM7YnJlYWsgZX1hW3ArNDA+PjJdPWIrMzJ9Zm9yKGFbKFI9cCs0NHwwKT4+Ml09MCxhW3A+PjJdPWFbYW4+PjJdLGFbYW4+PjJdPXAsZ2U9cCsxMnwwLGFbcCsxNj4+Ml09MCxhW3ArMjA+PjJdPTAsYVsoSz1wKzR8MCk+PjJdPXBlPSgwfGFbWmE+''@;'; + put 'put ''PjJdKSsoMHxhW1JlPj4yXSl8MCxhWyhHPXArOHwwKT4+Ml09MHxCaVsxMjcmYVtTbj4+Ml1dKGYscGUpLGFbRmY+PjJdPTErKDB8YVtGZj4+Ml0pLEc9KEs9MHxhW0s+PjJdKSsoMHxhW0c+PjJdKXwwLGFbVGE+PjJdPUssYVtXMj4+Ml09YVsoSz1wKzM2fDApPj4yXSxiPTB8YVsocGU9cCs0''@;'; + put 'put ''MHwwKT4+Ml07YnM9MHxSMlsxMjcmYVt4aT4+Ml1dKGYsVGEsRyxXMixiKy0xfDApLEQ9KGI9MHxhW1cyPj4yXSktKGs9TT0wfGFbSz4+Ml0pfDAsISgxPT0oMHxicyl8fCgwfGFbVGE+PjJdKT4+PjA+PUc+Pj4wKTspe2lmKCEoYj0wfEJpWzEyNyZhW0huPj4yXV0oTSxrPSgwfGFbcGU+PjJd''@;'; + put 'put ''KS1rPDwxKSkpe3FhPTY5O2JyZWFrIGV9YVtLPj4yXT1iLGFbcGU+PjJdPWJzPWIra3wwLGFbVzI+PjJdPWIrRCxiPWJzfWlmKGFbcCsyND4+Ml09RCxhW2dlPj4yXT1rLGZlW2I+PjBdPTAsMHwocD0wfEVfKGwsZiwwfGFbWmE+PjJdLGdlLFIpKSl7cWE9NzU7YnJlYWsgZX0ocD0wfGFbdXI+''@;'; + put 'put ''PjJdKT9kbFsxMjcmcF0oMHxhW0cyPj4yXSwwfGFbZ2U+PjJdLDB8YVtFcj4+Ml0pOjB8YVt6Mj4+Ml0mJl8yKGwsZiwwfGFbWmE+PjJdLDB8YVtMMD4+Ml0pLENmKEhyKTticmVhaztjYXNlIDM6Y2FzZSA0OmlmKGJzPSgwfGFbWmE+PjJdKSsoMHxhW1JlPj4yXSl8MCxhW1cyPj4yXT0wLGJz''@;'; + put 'put ''PTB8YjIoSHIsZixicyxicysoMHxCaVsxMjcmYVtTbj4+Ml1dKGYsYnMpKXwwKSxhW1RhPj4yXT1icywhYnMpe3A9MSxxYT04OTticmVhayBlfWlmKGFbU3Q+PjJdPWFba3Q+PjJdLDB8KHA9MHxFXyhsLGYsMHxhW1phPj4yXSxUYSxXMikpKXtxYT03OTticmVhayBlfWlmKGFbU3Q+PjJdPWFb''@;'; + put 'put ''a3Q+PjJdLChwPTB8YVt1cj4+Ml0pPyhkbFsxMjcmcF0oMHxhW0cyPj4yXSwwfGFbVGE+PjJdLDB8YVtFcj4+Ml0pLGI9MCk6Yj0xLChwPTB8YVtmcj4+Ml0pPygwfGFbdXI+PjJdJiYoYVt4YT4+Ml09YVtsbz4+Ml0scD0wfGFbZnI+PjJdKSxHc1s2MyZwXSgwfGFbRzI+PjJdLDB8YVtUYT4+''@;'; + put 'put ''Ml0pKTowfGImJjB8YVt6Mj4+Ml0mJl8yKGwsZiwwfGFbWmE+PjJdLDB8YVtMMD4+Ml0pLENmKEhyKSxVQihsLDB8YVtXMj4+Ml0pLDA9PSgwfGFbRmY+PjJdKSYmMiE9KC0yJmFbT2U+PjJdfDApKXtxYT05MjticmVhayBlfWJyZWFrO2Nhc2UgNTppZigoMHxhW0ZmPj4yXSk9PSgwfGMpKXtw''@;'; + put 'put ''PTEzO2JyZWFrIGV9aWYoYVthbj4+Ml09YVsoRD0wfGFbYW4+PjJdKT4+Ml0sYVtEPj4yXT1hW2N0Pj4yXSxhW2N0Pj4yXT1ELCgwfChiPTB8QmlbMTI3JmFbU24+PjJdXShmLHA9KDB8YVtaYT4+Ml0pKyhhW1JlPj4yXTw8MSl8MCkpKSE9KDB8YVtEKzg+PjJdKSl7cWE9OTY7YnJlYWsgZX1p''@;'; + put 'put ''ZigwfHQzKDB8YVtEKzQ+PjJdLHAsYikpe3FhPTk2O2JyZWFrIGV9aWYoYVtGZj4+Ml09KDB8YVtGZj4+Ml0pLTEscD0wfGFbZnI+PjJdKXtpZihNPUQrMTJ8MCwwIT0oMHwoYj0wfGFbRCsxNj4+Ml0pKSYwIT0oMHxmZVtEcj4+MF0pKXtmb3IocD0oMHxhW00+PjJdKSsoMHxhW0QrMjg+PjJd''@;'; + put 'put ''KXwwOyhrPTB8ZmVbYj4+MF0pPDwyND4+MjQ7KWZlW3A+PjBdPWsscD1wKzF8MCxiPWIrMXwwO2I9MHxhW0QrMjA+PjJdO246ZG97aWYoMCE9KDB8YikmMCE9KDB8ZmVbSnI+PjBdKSlmb3IoZmVbcD4+MF09MHxmZVtMcj4+MF07Oyl7aWYocD1wKzF8MCwhKChrPTB8ZmVbYj4+MF0pPDwyND4+''@;'; + put 'put ''MjQpKWJyZWFrIG47ZmVbcD4+MF09ayxiPWIrMXwwfX13aGlsZSgwKTtmZVtwPj4wXT0wLHA9MHxhW2ZyPj4yXX1Hc1s2MyZwXSgwfGFbRzI+PjJdLDB8YVtNPj4yXSl9ZWxzZSAwfGFbejI+PjJdJiZfMihsLGYsMHxhW1phPj4yXSwwfGFbTDA+PjJdKTtmb3Ioaz1EKzQ0fDA7TT0wfGFbaz4+''@;'; + put 'put ''Ml07KShwPTB8YVtsMD4+Ml0pPyhHc1s2MyZwXSgwfGFbRzI+PjJdLDB8YVthW00+PjJdPj4yXSkscD1NLGI9MHxhW2s+PjJdKToocD1NLGI9TSksYVtrPj4yXT1hW2IrND4+Ml0sYVtNKzQ+PjJdPWFbVmk+PjJdLGFbVmk+PjJdPU0sYVs0KygwfGFbcD4+Ml0pPj4yXT1hW00rOD4+Ml07aWYo''@;'; + put 'put ''ISgwfGFbRmY+PjJdKSl7cWE9MTE3O2JyZWFrIGV9YnJlYWs7Y2FzZSAxMDppZigoMHwocD0wfEJpWzEyNyZhW09pPj4yXV0oZiwwfGFbWmE+PjJdKSkpPDApe3A9MTQ7YnJlYWsgZX1pZigwfChiPTB8YVtnYT4+Ml0pKXtnZT0wfGFbRzI+PjJdLGJzPTB8VzQocCxXMiksZGxbMTI3JmJdKGdl''@;'; + put 'put ''LFcyLGJzKTticmVhayB0fTB8YVt6Mj4+Ml0mJl8yKGwsZiwwfGFbWmE+PjJdLDB8YVtMMD4+Ml0pO2JyZWFrO2Nhc2UgNzppZigwfChwPTB8YVtnYT4+Ml0pKXtmZVtXMj4+MF09MTAsZGxbMTI3JnBdKDB8YVtHMj4+Ml0sVzIsMSk7YnJlYWsgdH0wfGFbejI+PjJdJiZfMihsLGYsMHxhW1ph''@;'; + put 'put ''Pj4yXSxrKTticmVhaztjYXNlIDg6aWYoKHA9MHxhW1JvPj4yXSk/Q29bMTI3JnBdKDB8YVtHMj4+Ml0pOjB8YVt6Mj4+Ml0mJl8yKGwsZiwwfGFbWmE+PjJdLGspLDB8KHA9MHxQbShsLGYsTDAsbSxBLHcpKSlicmVhayBlO2lmKCEoMHxhW0wwPj4yXSkpe3FhPTEzMzticmVhayBlfWJyZWFr''@;'; + put 'put ''O2Nhc2UgNjppZighKGI9MHxhW2dhPj4yXSkpe2lmKCEoMHxhW3oyPj4yXSkpYnJlYWsgdDtfMihsLGYsMHxhW1phPj4yXSxrKTticmVhayB0fWlmKDB8ZmVbRGw+PjBdKXtkbFsxMjcmYl0oMHxhW0cyPj4yXSxicz0wfGFbWmE+PjJdLHAtYnN8MCk7YnJlYWsgdH1mb3IocD1rO2FbVzI+PjJd''@;'; + put 'put ''PWFbb3M+PjJdLGJzPTB8UjJbMTI3JmFbeGk+PjJdXShmLFphLHAsVzIsMHxhW29sPj4yXSksYVtsbz4+Ml09YVtaYT4+Ml0sZGxbMTI3JmJdKDB8YVtHMj4+Ml0sZ2U9MHxhW29zPj4yXSwoMHxhW1cyPj4yXSktZ2V8MCksIShicz4+PjA8Mik7KWFbeGE+PjJdPWFbWmE+PjJdLHA9MHxhW0ww''@;'; + put 'put ''Pj4yXTticmVhaztjYXNlIDExOmlmKCEoMHxoQShsLGYsMHxhW1phPj4yXSxrKSkpe3A9MTticmVhayBlfWJyZWFrO2Nhc2UgMTM6aWYoISgwfFNfKGwsZiwwfGFbWmE+PjJdLGspKSl7cD0xO2JyZWFrIGV9YnJlYWs7ZGVmYXVsdDowfGFbejI+PjJdJiZfMihsLGYsMHxhW1phPj4yXSxrKX19''@;'; + put 'put ''d2hpbGUoMCk7c3dpdGNoKGFbWmE+PjJdPWJzPTB8YVtMMD4+Ml0sYVt4YT4+Ml09YnMsMHxhW09lPj4yXSl7Y2FzZSAyOnA9MzU7YnJlYWsgZTtjYXNlIDM6cWE9MTYwO2JyZWFrIGV9fXN3aXRjaCgwfHFhKXtjYXNlIDY6aWYodzw8MjQ+PjI0KXthW0E+PjJdPWFbWmE+PjJdLHA9MDticmVh''@;'; + put 'put ''a31hW2xvPj4yXT1tLChwPTB8YVtnYT4+Ml0pPyhmZVtXMj4+MF09MTAsZGxbMTI3JnBdKDB8YVtHMj4+Ml0sVzIsMSkpOjB8YVt6Mj4+Ml0mJl8yKGwsZiwwfGFbWmE+PjJdLG0pLGM/KDB8YVtGZj4+Ml0pPT0oMHxjKT8oYVtBPj4yXT1tLHA9MCk6cD0xMzpwPTM7YnJlYWs7Y2FzZSAxNTpp''@;'; + put 'put ''Zih3PDwyND4+MjQpe2FbQT4+Ml09YVtaYT4+Ml0scD0wO2JyZWFrfSgwfGMpPjA/KDB8YVtGZj4+Ml0pPT0oMHxjKT8oYVtBPj4yXT1hW1phPj4yXSxwPTApOnA9MTM6cD0zO2JyZWFrO2Nhc2UgMjA6YVt4YT4+Ml09cCxwPTQ7YnJlYWs7Y2FzZSAyMTp3PDwyND4+MjQ/KGFbQT4+Ml09YVta''@;'; + put 'put ''YT4+Ml0scD0wKTpwPTU7YnJlYWs7Y2FzZSAyMzp3PDwyND4+MjQ/KGFbQT4+Ml09YVtaYT4+Ml0scD0wKTpwPTY7YnJlYWs7Y2FzZSA1NjpjYXNlIDU4OmJyZWFrO2Nhc2UgNjM6Q29bMTI3JmFbbCsyMD4+Ml1dKHApLHA9MSxxYT03NTticmVhaztjYXNlIDY5OnA9MSxxYT03NTticmVhaztj''@;'; + put 'put ''YXNlIDc5OlVCKGwsMHxhW1cyPj4yXSkscWE9ODk7YnJlYWs7Y2FzZSA5MjpjYXNlIDExNzpwPTB8ZngobCwwfGFbTDA+PjJdLG0sQSk7YnJlYWs7Y2FzZSA5NjphW3hhPj4yXT1wLHA9NzticmVhaztjYXNlIDEzMzphW2wrMjc2Pj4yXT02MSxwPTA7YnJlYWs7Y2FzZSAxMzQ6aWYodzw8MjQ+''@;'; + put 'put ''PjI0KXthW0E+PjJdPWFbWmE+PjJdLHA9MDticmVha31wPTB8YVtnYT4+Ml07ZG97aWYocCl7aWYoMHxmZVtEbD4+MF0pe2RsWzEyNyZwXSgwfGFbRzI+PjJdLGJzPTB8YVtaYT4+Ml0sbS1ic3wwKTticmVha31hW1cyPj4yXT1hW29zPj4yXSxSMlsxMjcmYVt4aT4+Ml1dKGYsWmEsbSxXMiww''@;'; + put 'put ''fGFbb2w+PjJdKSxkbFsxMjcmYVtnYT4+Ml1dKDB8YVtHMj4+Ml0sYnM9MHxhW29zPj4yXSwoMHxhW1cyPj4yXSktYnN8MCk7YnJlYWt9MHxhW3oyPj4yXSYmXzIobCxmLDB8YVtaYT4+Ml0sbSl9d2hpbGUoMCk7aWYoIWMpe2FbeGE+PjJdPW0scD0zO2JyZWFrfWlmKCgwfGFbRmY+PjJdKT09''@;'; + put 'put ''KDB8Yykpe2FbQT4+Ml09bSxwPTA7YnJlYWt9YVt4YT4+Ml09bSxwPTEzO2JyZWFrO2Nhc2UgMTYwOmFbQT4+Ml09YVtMMD4+Ml0scD0wfXJldHVybiBsZT12MSwwfHB9ZnVuY3Rpb24gcEEobCl7dmFyIE0sRCxSLEcsSyxjPTAsZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wO0s9bGUsbGU9''@;'; + put 'put ''bGUrMTZ8MCxEPUssQT0xNTYrKE09MHxhWzM1MisobHw9MCk+PjJdKXwwLFI9bCs0MTJ8MCxHPWwrNDI0fDA7ZTpkb3tpZigwfGFbQT4+Ml0pe2lmKCgwfChjPTB8YVtHPj4yXSkpPT0oMHxhWyh3PWwrNDIwfDApPj4yXSkpe2lmKCEoKDB8dmwoUikpPDwyND4+MjQpKXtjPTA7YnJlYWt9Yz0w''@;'; + put 'put ''fGFbRz4+Ml19Zm9yKGFbRz4+Ml09YysxLGZlW2M+PjBdPTYxLGY9KDB8YVsyMCsoMHxhW0E+PjJdKT4+Ml0pKygoMCE9KDB8ZmVbKG09bCs0Njh8MCk+PjBdKSk8PDMxPj4zMSl8MCxwPTA7Oyl7aWYoKDB8cCk+PSgwfGYpKXtjPTEsaz1tLGI9MTI7YnJlYWsgZX1pZigoMHwoYz0wfGFbRz4+''@;'; + put 'put ''Ml0pKT09KDB8YVt3Pj4yXSkpe2lmKCEoKDB8dmwoUikpPDwyND4+MjQpKXtjPTA7YnJlYWsgZX1jPTB8YVtHPj4yXX1rPTB8ZmVbKDB8YVsxNisoMHxhW0E+PjJdKT4+Ml0pK3A+PjBdLGFbRz4+Ml09YysxLGZlW2M+PjBdPWsscD1wKzF8MH19ZWxzZSBjPTAsdz1sKzQyMHwwLGs9bCs0Njh8''@;'; + put 'put ''MCxiPTEyfXdoaWxlKDApO2U6ZG97aWYoMTI9PSgwfGIpKXtlYyhELE0rNjB8MCk7dDpmb3IoOzspe2Rve2lmKCEoZj0wfERtKEQpKSlicmVhayB0O0E9Zis0fDB9d2hpbGUoISgwfGFbQT4+Ml0pKTtpZihjPDwyND4+MjQpe2lmKCgwfChjPTB8YVtHPj4yXSkpPT0oMHxhW3c+PjJdKSl7aWYo''@;'; + put 'put ''ISgoMHx2bChSKSk8PDI0Pj4yNCkpe2M9MDticmVhayBlfWM9MHxhW0c+PjJdfWFbRz4+Ml09YysxLGZlW2M+PjBdPTEyfWZvcihtPTB8YVtmPj4yXTtwPSgwfChjPTB8YVtHPj4yXSkpPT0oMHxhW3c+PjJdKSwoZj0wfGZlW20+PjBdKTw8MjQ+PjI0Oyl7aWYocCl7aWYoISgoMHx2bChSKSk8''@;'; + put 'put ''PDI0Pj4yNCkpe2M9MDticmVhayBlfWM9MHxhW0c+PjJdLGY9MHxmZVttPj4wXX1hW0c+PjJdPWMrMSxmZVtjPj4wXT1mLG09bSsxfDB9aWYocCl7aWYoISgoMHx2bChSKSk8PDI0Pj4yNCkpe2M9MDticmVhayBlfWM9MHxhW0c+PjJdfWZvcihhW0c+PjJdPWMrMSxmZVtjPj4wXT02MSxwPSgw''@;'; + put 'put ''fGFbMjArKDB8YVtBPj4yXSk+PjJdKSsoKDAhPSgwfGZlW2s+PjBdKSk8PDMxPj4zMSl8MCxmPTA7Oyl7aWYoKDB8Zik+PSgwfHApKXtjPTE7Y29udGludWUgdH1pZigoMHwoYz0wfGFbRz4+Ml0pKT09KDB8YVt3Pj4yXSkpe2lmKCEoKDB8dmwoUikpPDwyND4+MjQpKXtjPTA7YnJlYWsgZX1j''@;'; + put 'put ''PTB8YVtHPj4yXX1iPTB8ZmVbKDB8YVsxNisoMHxhW0E+PjJdKT4+Ml0pK2Y+PjBdLGFbRz4+Ml09YysxLGZlW2M+PjBdPWIsZj1mKzF8MH19ZWMoRCxNKTt0OmZvcig7Oyl7ZG97aWYoIShmPTB8RG0oRCkpKWJyZWFrIHR9d2hpbGUoISgwfGZlW2YrMzI+PjBdKSk7aWYoYzw8MjQ+PjI0KXtp''@;'; + put 'put ''ZigoMHwoYz0wfGFbRz4+Ml0pKT09KDB8YVt3Pj4yXSkpe2lmKCEoKDB8dmwoUikpPDwyND4+MjQpKXtjPTA7YnJlYWsgZX1jPTB8YVtHPj4yXX1hW0c+PjJdPWMrMSxmZVtjPj4wXT0xMn1mb3IocD0wfGFbZj4+Ml07Oyl7aWYoISgoZj0wfGZlW3A+PjBdKTw8MjQ+PjI0KSl7Yz0xO2NvbnRp''@;'; + put 'put ''bnVlIHR9aWYoKDB8KGM9MHxhW0c+PjJdKSk9PSgwfGFbdz4+Ml0pKXtpZighKCgwfHZsKFIpKTw8MjQ+PjI0KSl7Yz0wO2JyZWFrIGV9Yz0wfGFbRz4+Ml0sZj0wfGZlW3A+PjBdfWFbRz4+Ml09YysxLGZlW2M+PjBdPWYscD1wKzF8MH19aWYoKDB8KGM9MHxhW0c+PjJdKSk9PSgwfGFbdz4+''@;'; + put 'put ''Ml0pKXtpZighKCgwfHZsKFIpKTw8MjQ+PjI0KSl7Yz0wO2JyZWFrfWM9MHxhW0c+PjJdfWFbRz4+Ml09YysxLGZlW2M+PjBdPTAsYz0wfGFbbCs0Mjg+PjJdfX13aGlsZSgwKTtyZXR1cm4gbGU9SywwfGN9ZnVuY3Rpb24gRV8obCxjLGYscCxtKXtjfD0wLGZ8PTAsbXw9MDt2YXIgYnQsYW4s''@;'; + put 'put ''U24sdXIsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxLPTAscGU9MCxnZT0wLGJlPTAsT2U9MCxMZT0wLFJlPTAsSGU9MCxWZT0wLHFlPTAsbnQ9MCxXZT0wLG90PTAsU3Q9MCxrdD0wLHN0PTAsRXQ9MCxadD0wLGN0PTAsSG49MCxIcj0wO3VyPWxlLGxlPWxlKzgwfDAsYnQ9dXIr''@;'; + put 'put ''MTZ8MCxhbj11ciwoQT0wfF8xKGx8PTAsYj0yMCsoU249MHxhW2wrMzUyPj4yXSl8MCwwfGFbKHB8PTApPj4yXSwwKSk/KHc9QSxxZT02KTowIT0oMHwoQT0wfFRfKFNuKzgwfDAsMHxhW3A+PjJdKSkpJiYwIT0oMHwodz0wfF8xKGwsYixBLDI0KSkpPzAhPSgwfGZlW2wrMjMyPj4wXSkmJjA9''@;'; + put 'put ''PSgwfElfKGwsdykpP0E9MTpxZT02OkE9MTtlOmRve2lmKDY9PSgwfHFlKSl7aWYoUmU9MHxhW3crMTI+PjJdLCgwfChBPShiZT0wfHEwWzEyNyZhWyhiPWMrMzZ8MCk+PjJdXShjLGYsMHxhWyhrPWwrMzc2fDApPj4yXSwwfGFbKGdlPWwrMzg4fDApPj4yXSkpK1JlfDApKT4oMHwoTT0wfGFb''@;'; + put 'put ''az4+Ml0pKSl7aWYoYVtrPj4yXT1BPUErMTZ8MCwhKEE9MHxCaVsxMjcmYVtsKzE2Pj4yXV0oMHxhW2dlPj4yXSxBPDw0KSkpe2Fbaz4+Ml09TSxBPTE7YnJlYWt9YVtnZT4+Ml09QSwoMHxiZSk+KDB8TSkmJnEwWzEyNyZhW2I+PjJdXShjLGYsYmUsQSl9Zm9yKGN0PTB8YVtnZT4+Ml0sSz1j''@;'; + put 'put ''KzI4fDAsRXQ9bCs0MTJ8MCxadD1sKzQyOHwwLExlPXcrMjB8MCxHPWwrNDI0fDAscGU9MCxSPTAsYj0wOyEoKDB8Uik+PSgwfGJlKSk7KXtpZighKEQ9MHxiXyhsLGMsRD0wfGFbKDB8YVtnZT4+Ml0pKyhSPDw0KT4+Ml0sRCsoMHxCaVsxMjcmYVtLPj4yXV0oYyxEKSl8MCkpKXtBPTE7YnJl''@;'; + put 'put ''YWsgZX1pZigwfGZlWyhBPSgwfGFbRD4+Ml0pLTF8MCk+PjBdKXtxZT0xNTticmVha31pZihmZVtBPj4wXT0xLGY9cGUrMXwwLGFbY3QrKHBlPDwyKT4+Ml09YVtEPj4yXSwwfGZlWyhNPTB8YVtnZT4+Ml0pKyhSPDw0KSsxMj4+MF0pe2lmKHN0PTB8YjIoRXQsYywwfGFbTSsoUjw8NCkrND4+''@;'; + put 'put ''Ml0sMHxhW00rKFI8PDQpKzg+PjJdKSxhW2N0KyhmPDwyKT4+Ml09c3QsIXN0KXtBPTE7YnJlYWsgZX19ZWxzZXt0OmRve2lmKDB8ZmVbRCs4Pj4wXSl7Zm9yKEE9MDs7KXtpZigoMHxBKT49KDB8UmUpKXtBPTE7YnJlYWsgdH1pZigoMHxEKT09KDB8YVsoaz0wfGFbTGU+PjJdKSsoMTIqQXww''@;'; + put 'put ''KT4+Ml0pKWJyZWFrO0E9QSsxfDB9QT0wfGZlW2srKDEyKkF8MCkrND4+MF19ZWxzZSBBPTF9d2hpbGUoMCk7aWYoMHwoQT0wfF9fKGwsYyxBLDB8YVtNKyhSPDw0KSs0Pj4yXSwwfGFbTSsoUjw8NCkrOD4+Ml0sRXQpKSlicmVhayBlO2FbY3QrKGY8PDIpPj4yXT1hW1p0Pj4yXX1hW1p0Pj4y''@;'; + put 'put ''XT1hW0c+PjJdLEE9MHxhW0QrND4+Ml07ZG97aWYoQSl7aWYoMHxmZVtEKzk+PjBdKXtpZihBPTB8Z0EobCxBLEQsMHxhW2N0KyhmPDwyKT4+Ml0sbSkpYnJlYWsgZTtBPXBlO2JyZWFrfWZlWygwfGFbRD4+Ml0pLTE+PjBdPTIsYj1iKzF8MCxBPXBlKzJ8MDticmVha31BPXBlKzJ8MH13aGls''@;'; + put 'put ''ZSgwKTtwZT1BLFI9UisxfDB9aWYoMTU9PSgwfHFlKSl7aWYoKDB8YVtsKzE0ND4+Ml0pIT0oMHxjKSl7QT04O2JyZWFrfWFbbCsyODQ+PjJdPWFbKDB8YVtnZT4+Ml0pKyhSPDw0KT4+Ml0sQT04O2JyZWFrfWFbbCszODA+PjJdPXBlLEE9MHxhW3crOD4+Ml07dDpkb3tpZigwIT0oMHxBKSYm''@;'; + put 'put ''KE9lPTB8YVtBPj4yXSwwIT0oMHxmZVtPZSstMT4+MF0pKSlmb3IoQT0wOzspe2lmKCgwfEEpPj0oMHxwZSkpe2Y9MCxSPWIsc3Q9cGU7YnJlYWsgdH1pZigoMHxhW2N0KyhBPDwyKT4+Ml0pPT0oMHxPZSkpe3FlPTM3O2JyZWFrIHR9QT1BKzJ8MH1lbHNlIEE9LTEscWU9Mzd9d2hpbGUoMCk7''@;'; + put 'put ''Zm9yKDM3PT0oMHxxZSkmJihhW2wrMzg0Pj4yXT1BLGY9MCxSPWIsc3Q9cGUpOyEoKDB8Zik+PSgwfFJlKSk7KXtrPSgwfGFbKGI9MHxhWyhNPShBPTB8YVtMZT4+Ml0pKygxMipmfDApfDApPj4yXSk+PjJdKS0xfDA7dDpkb3tpZigwPT0oMHxmZVtrPj4wXSkmJihIZT1BKygxMipmfDApKzh8''@;'; + put 'put ''MCxWZT0wfGFbSGU+PjJdLDAhPSgwfFZlKSkpe0E9MHxhW2IrND4+Ml07ZG97aWYoQSl7aWYoMHxmZVtiKzk+PjBdKXtpZihBPTB8Z0EobCxBLGIsVmUsbSkpYnJlYWsgZTtBPVIsYj1zdDticmVhayB0fWZlW2s+PjBdPTIsQT1SKzF8MDticmVha31mZVtrPj4wXT0xLEE9Un13aGlsZSgwKTth''@;'; + put 'put ''W2N0KyhzdDw8Mik+PjJdPWFbYVtNPj4yXT4+Ml0sYVtjdCsoc3QrMTw8Mik+PjJdPWFbSGU+PjJdLGI9c3QrMnwwfWVsc2UgQT1SLGI9c3R9d2hpbGUoMCk7Zj1mKzF8MCxSPUEsc3Q9Yn1hW2N0KyhzdDw8Mik+PjJdPTA7dDpkb3tpZihSKXtNPTB8YVsoRD1sKzM5NnwwKT4+Ml0sQT0yNTUm''@;'; + put 'put ''KGY9MHxmZVsoa3Q9bCs0MDB8MCk+PjBdKTtkb3tpZihSPDwxPj5BKXtBPWY7ZG97U3Q9QSxBPUErMTw8MjQ+PjI0fXdoaWxlKDAhPShSPj4oMjU1JlN0KXwwKSk7aWYoZmVba3Q+PjBdPUE9KDI1NSZBKT4zP0E6MyxiPTB8QmlbMTI3JmFbbCsxNj4+Ml1dKDB8YVsoaz1sKzM5MnwwKT4+Ml0s''@;'; + put 'put ''MTI8PChBJj0yNTUpKSl7YVtrPj4yXT1iLGI9MTw8QSxxZT01NTticmVha31mZVtrdD4+MF09ZixBPTE7YnJlYWsgZX1BPTE8PEEsaz1sKzM5MnwwLE0/KGI9QSxBPU0pOihiPUEscWU9NTUpfXdoaWxlKDApO246ZG97aWYoNTU9PSgwfHFlKSlmb3IoQT1iOzspe2lmKCFBKXtBPS0xO2JyZWFr''@;'; + put 'put ''IG59YVsoMHxhW2s+PjJdKSsoMTIqKFN0PUErLTF8MCl8MCk+PjJdPS0xLEE9U3R9fXdoaWxlKDApO2FbRD4+Ml09U3Q9QSstMXwwLExlPVNuKzQwfDAsUmU9bCs0MjR8MCxIZT1sKzQyMHwwLHFlPTAtYnwwLG50PShWZT1iKy0xfDApPj4+MixXZT1sKzIzM3wwLG90PWwrNDY4fDAsQT0wLE9l''@;'; + put 'put ''PVI7bjpmb3IoOzspe2Zvcig7Oyl7aWYoKDB8QSk+PSgwfHN0KSlicmVhayB0O2lmKDI9PSgwfGZlWyhmPShNPTB8YVsoYz1jdCsoQTw8Mil8MCk+PjJdKS0xfDApPj4wXSkpYnJlYWs7ZmVbZj4+MF09MCxBPUErMnwwfWlmKG1BKGwsYW4pLFJoKGJ0LGFuKSxmZVtmPj4wXT0wLCEoZj0wfF8x''@;'; + put 'put ''KGwsTGUsTSwwKSkpe0E9MTticmVha31pZighKGY9MHxhW2YrND4+Ml0pKXtBPTE7YnJlYWt9aWYoIShiZT0wfGFbZis0Pj4yXSkpe0E9Mjc7YnJlYWt9Zm9yKEc9YmUrMjB8MCxLPWJlKzE2fDAsUj0wO0Q9MHxhW0s+PjJdLCEoKDB8Uik+PSgwfChmPTB8YVtHPj4yXSkpKTspe2lmKEQ9MHxm''@;'; + put 'put ''ZVtEK1I+PjBdLCgwfChmPTB8YVtSZT4+Ml0pKT09KDB8YVtIZT4+Ml0pKXtpZighKCgwfHZsKEV0KSk8PDI0Pj4yNCkpe0E9MTticmVhayBufWY9MHxhW1JlPj4yXX1hW1JlPj4yXT1mKzEsZmVbZj4+MF09RCxSPVIrMXwwfXA1KGJ0LEQsZik7ZG97Z2U9TSxNPU0rMXwwfXdoaWxlKDU4IT0o''@;'; + put 'put ''MHxmZVtnZT4+MF0pKTtmb3IocDUoYnQsTSwwfEc0KE0pKTs7KXtpZigoMHwoZj0wfGFbUmU+PjJdKSk9PSgwfGFbSGU+PjJdKSl7aWYoISgoMHx2bChFdCkpPDwyND4+MjQpKXtBPTE7YnJlYWsgbn1mPTB8YVtSZT4+Ml19aWYoZ2U9MHxmZVtNPj4wXSxhW1JlPj4yXT1mKzEsZmVbZj4+MF09''@;'; + put 'put ''Z2UsISgwfGZlW00+PjBdKSlicmVhaztNPU0rMXwwfWZvcihnZT0wfE02KGJ0KSxHPTB8YVtrPj4yXSxLPWdlJnFlLE09MCxwZT1WZSZnZTsoMHxhW0crKDEyKnBlfDApPj4yXSk9PSgwfFN0KTspe2lmKCgwfGFbRysoMTIqcGV8MCkrND4+Ml0pPT0oMHxnZSkpe2ZvcihmPTB8YVtHKygxMipw''@;'; + put 'put ''ZXwwKSs4Pj4yXSxEPTB8YVtadD4+Ml07ISgoUj0oSHI9MHxmZVtEPj4wXSk8PDI0Pj4yND09MCl8SHI8PDI0Pj4yNCE9KDB8ZmVbZj4+MF0pKTspZj1mKzF8MCxEPUQrMXwwO2lmKFIpe0E9ODticmVhayBufX1NPDwyND4+MjR8fChNPTI1NSYoSz4+PigoMHxYdFtrdD4+MF0pLTF8MCkmbnR8''@;'; + put 'put ''MSkpLHBlPXBlKygoMHxwZSk8KDB8KEhyPTI1NSZNKSk/YjowKS1IcnwwfWlmKDB8ZmVbV2U+PjBdKWZvcihmZVsoMHxhW1JlPj4yXSktMT4+MF09MHxmZVtvdD4+MF0sZj0wfGFbYVtiZT4+Ml0+PjJdOzspe2lmKCgwfChNPTB8YVtSZT4+Ml0pKT09KDB8YVtIZT4+Ml0pKXtpZighKCgwfHZs''@;'; + put 'put ''KEV0KSk8PDI0Pj4yNCkpe0E9MTticmVhayBufU09MHxhW1JlPj4yXX1pZihIcj0wfGZlW2Y+PjBdLGFbUmU+PjJdPU0rMSxmZVtNPj4wXT1IciwhKDB8ZmVbZj4+MF0pKWJyZWFrO2Y9ZisxfDB9aWYoSHI9MHxhW1p0Pj4yXSxhW1p0Pj4yXT1hW1JlPj4yXSxhW2M+PjJdPUhyLGFbKDB8YVtr''@;'; + put 'put ''Pj4yXSkrKDEyKnBlfDApPj4yXT1TdCxhWygwfGFbaz4+Ml0pKygxMipwZXwwKSs0Pj4yXT1nZSxhWygwfGFbaz4+Ml0pKygxMipwZXwwKSs4Pj4yXT1IcixBPUErMnwwLCEoT2U9T2UrLTF8MCkpYnJlYWsgdH1icmVhayBlfUE9MH13aGlsZSgwKTtmb3IoOzspe2lmKCgwfEEpPj0oMHxzdCkp''@;'; + put 'put ''e0E9bTticmVha31mZVsoMHxhW2N0KyhBPDwyKT4+Ml0pLTE+PjBdPTAsQT1BKzJ8MH1mb3IoO0E9MHxhW0E+PjJdOylmZVsoMHxhW2FbQSsxMj4+Ml0+PjJdKS0xPj4wXT0wLEE9QSs0fDA7aWYoMHxmZVtsKzIzMj4+MF0pe2lmKEE9MHxhW3crND4+Ml0pe2lmKCEoQT0wfGFbQSs0Pj4yXSkp''@;'; + put 'put ''e0E9Mjc7YnJlYWt9Zm9yKHc9MHxhW3A+PjJdO2I9dysxfDAsNTghPSgwfGZlW3c+PjBdKTspdz1ifWVsc2V7aWYoIShBPTB8YVtTbisxNTY+PjJdKSl7QT0wO2JyZWFrfWI9MHxhW3A+PjJdfWlmKDAhPSgwfGZlW2wrMjMzPj4wXSkmJjAhPSgwfChIbj0wfGFbYVtBPj4yXT4+Ml0pKSlmb3Io''@;'; + put 'put ''dz0wO2s9dysxfDAsMHxmZVtIbit3Pj4wXTspdz1rO2Vsc2Ugaz0wO2ZvcihhW3ArND4+Ml09YixhW3ArMTY+PjJdPWFbKFI9QSsyMHwwKT4+Ml0sYVtwKzg+PjJdPWFbYVtBPj4yXT4+Ml0sYVtwKzIwPj4yXT1rLEc9MDtLPUcrMXwwLDB8ZmVbYitHPj4wXTspRz1LO2lmKCgwfChNPUsrayso''@;'; + put 'put ''dz0wfGFbUj4+Ml0pfDApKT4oMHxhWyhmPUErMjR8MCk+PjJdKSl7aWYoIShEPTB8X29bNjMmYVtsKzEyPj4yXV0odz1NKzI0fDApKSl7QT0xO2JyZWFrfWZvcihhW2Y+PjJdPXcsZ28oMHxELDB8YVsoZj1BKzE2fDApPj4yXSwwfGFbUj4+Ml0pLHc9bCszNjB8MDt3PTB8YVt3Pj4yXTspKDB8''@;'; + put 'put ''YVsoTT13KzEyfDApPj4yXSk9PSgwfGFbZj4+Ml0pJiYoYVtNPj4yXT1EKTtDb1sxMjcmYVtsKzIwPj4yXV0oMHxhW2Y+PjJdKSxhW2Y+PjJdPUQsTT1ELHc9MHxhW1I+PjJdfWVsc2UgZj1NPUErMTZ8MCxNPTB8YVtNPj4yXTtnbygwfCh3PU0rd3wwKSwwfGIsMHxLKSwwfGsmJihmZVsoSHI9''@;'; + put 'put ''dytHfDApPj4wXT0wfGZlW2wrNDY4Pj4wXSxnbyhIcisxfDAsMHxhW2FbQT4+Ml0+PjJdLDB8aykpLGFbcD4+Ml09YVtmPj4yXSxBPTB9ZWxzZSBBPTB9fXdoaWxlKDApO3JldHVybiBsZT11ciwwfEF9ZnVuY3Rpb24gVUIobCxjKXtjfD0wO3ZhciBmLHAsbSxBPTAsdz0wO2ZvcihwPTEwNCso''@;'; + put 'put ''bHw9MCl8MCxtPWwrMzcyfDAsZj1sKzR8MDtjOykobD0wfGFbcD4+Ml0pJiZHc1s2MyZsXSgwfGFbZj4+Ml0sMHxhW2FbYz4+Ml0+PjJdKSxsPWMsQT0wfGFbKHc9Yys0fDApPj4yXSxhW3c+PjJdPWFbbT4+Ml0sYVttPj4yXT1jLGFbNCsoMHxhW2w+PjJdKT4+Ml09YVtjKzg+PjJdLGM9QX1m''@;'; + put 'put ''dW5jdGlvbiBmeChsLGMsZixwKXtjfD0wLGZ8PTAscHw9MDt2YXIgdyxiLGssTSxELFIsSyxtPTAsQT0wLEc9MCxwZT0wO0s9bGUsbGU9bGUrMTZ8MCxiPUssYVsyNzYrKGx8PTApPj4yXT02MixhWyhrPWwrMjg0fDApPj4yXT1jLE09bCsxNDR8MCxEPWwrMjg4fDAsUj1sKzgwfDAsdz1sKzQ3''@;'; + put 'put ''NnwwLG09YztlOmZvcig7Oyl7c3dpdGNoKGFbYj4+Ml09MCxwZT0wfHEwWzEyNyZhWyhwZT0wfGFbTT4+Ml0pPj4yXV0ocGUsbSxmLGIpLGFbRD4+Ml09Yz0wfGFbYj4+Ml0sQT1jLDB8cGUpe2Nhc2UtMTU6Rz0zO2JyZWFrIGU7Y2FzZS00Okc9NzticmVhayBlO2Nhc2UgMDpHPTEyO2JyZWFr''@;'; + put 'put ''IGU7Y2FzZS0xOkc9MTM7YnJlYWsgZTtjYXNlLTI6Rz0xNTticmVhayBlO2Nhc2UgMTU6MHxhW1I+PjJdJiZfMihsLDB8YVtNPj4yXSxtLEEpO2JyZWFrO2Nhc2UgMTE6aWYoISgwfGhBKGwsMHxhW00+PjJdLG0sQSkpKXtjPTE7YnJlYWsgZX1icmVhaztjYXNlIDEzOmlmKCEoMHxTXyhsLDB8''@;'; + put 'put ''YVtNPj4yXSxtLEEpKSl7Yz0xO2JyZWFrIGV9YnJlYWs7ZGVmYXVsdDpjPTk7YnJlYWsgZX1zd2l0Y2goYVtrPj4yXT1jPTB8YVtiPj4yXSwwfGFbdz4+Ml0pe2Nhc2UgMjpjPTM1O2JyZWFrIGU7Y2FzZSAzOkc9MTg7YnJlYWsgZX1tPWN9ZG97aWYoMz09KDB8Rykpe2lmKDB8YVtSPj4yXSl7''@;'; + put 'put ''aWYoXzIobCwwfGFbTT4+Ml0sbSxBKSwyPT0oMHxhW3c+PjJdKSl7Yz0zNTticmVha31jPTB8YVtiPj4yXX1hW3A+PjJdPWMsYz0wfWVsc2UgNz09KDB8Ryk/KGFbcD4+Ml09bSxjPTApOjEyPT0oMHxHKT8oYVtrPj4yXT1jLGM9NCk6MTM9PSgwfEcpPzB8ZmVbbCs0ODA+PjBdP2M9NTooYVtw''@;'; + put 'put ''Pj4yXT1tLGM9MCk6MTU9PSgwfEcpPzB8ZmVbbCs0ODA+PjBdP2M9NjooYVtwPj4yXT1tLGM9MCk6MTg9PSgwfEcpJiYoYVtwPj4yXT1jLGM9MCl9d2hpbGUoMCk7cmV0dXJuIGxlPUssMHxjfWZ1bmN0aW9uIFBtKGwsYyxmLHAsbSxBKXtsfD0wLGN8PTAscHw9MCxtfD0wLEF8PTA7dmFyIGss''@;'; + put 'put ''TSxELFIsRyxLLE9lLExlLFJlLEhlLFZlLHFlLFdlLHc9MCxiPTAscGU9MCxnZT0wLGJlPTAsbnQ9MDtXZT1sZSxsZT1sZSsxNnwwLHFlPVdlKzR8MCxIZT1XZSxhWyhWZT1XZSs4fDApPj4yXT13PTB8YVsoZnw9MCk+PjJdLCgwfGFbbCsxNDQ+PjJdKT09KDB8Yyk/KGFbKGdlPWwrMjg0fDAp''@;'; + put 'put ''Pj4yXT13LGJlPWwrMjg4fDApOihnZT1iZT0wfGFbbCsyOTY+PjJdLGJlPWJlKzR8MCksYVtnZT4+Ml09dyxhW2Y+PjJdPTAsaz1jKzh8MCxNPWwrNjB8MCxPZT1sKzgwfDAsTGU9bCs0fDAsUmU9bCs0NzZ8MCxEPWMrNjh8MCxSPWwrNDR8MCxHPWMrNTZ8MCxLPWwrNDh8MDtlOmZvcig7Oyl7''@;'; + put 'put ''Yj0wfHEwWzEyNyZhW2s+PjJdXShjLDB8YVtWZT4+Ml0scCxxZSksYVtiZT4+Ml09dz0wfGFbcWU+PjJdLHBlPXc7dDpkb3tzd2l0Y2goMHxiKXtjYXNlIDQwOm50PTY7YnJlYWsgZTtjYXNlIDA6bnQ9MjM7YnJlYWsgZTtjYXNlLTI6bnQ9MjQ7YnJlYWsgZTtjYXNlLTQ6Y2FzZS0xOm50PTI2''@;'; + put 'put ''O2JyZWFrIGU7Y2FzZSA3OmlmKDB8KHc9MHxhW00+PjJdKSl7ZmVbSGU+PjBdPTEwLGRsWzEyNyZ3XSgwfGFbTGU+PjJdLEhlLDEpO2JyZWFrIHR9MHxhW09lPj4yXSYmXzIobCxjLDB8YVtWZT4+Ml0scGUpO2JyZWFrO2Nhc2UgNjppZighKGI9MHxhW00+PjJdKSl7aWYoISgwfGFbT2U+PjJd''@;'; + put 'put ''KSlicmVhayB0O18yKGwsYywwfGFbVmU+PjJdLHBlKTticmVhayB0fWlmKDB8ZmVbRD4+MF0pe2RsWzEyNyZiXSgwfGFbTGU+PjJdLHBlPTB8YVtWZT4+Ml0sdy1wZXwwKTticmVhayB0fWZvcih3PXBlO2FbSGU+PjJdPWFbUj4+Ml0scGU9MHxSMlsxMjcmYVtHPj4yXV0oYyxWZSx3LEhlLDB8''@;'; + put 'put ''YVtLPj4yXSksYVtiZT4+Ml09YVtxZT4+Ml0sZGxbMTI3JmJdKDB8YVtMZT4+Ml0sdz0wfGFbUj4+Ml0sKDB8YVtIZT4+Ml0pLXd8MCksIShwZT4+PjA8Mik7KWFbZ2U+PjJdPWFbVmU+PjJdLHc9MHxhW3FlPj4yXTticmVhaztkZWZhdWx0Om50PTI4O2JyZWFrIGV9fXdoaWxlKDApO3N3aXRj''@;'; + put 'put ''aChhW1ZlPj4yXT1wZT0wfGFbcWU+PjJdLGFbZ2U+PjJdPXBlLDB8YVtSZT4+Ml0pe2Nhc2UgMzpudD0zMDticmVhayBlO2Nhc2UgMjp3PTM1O2JyZWFrIGV9fXJldHVybiA2PT0oMHxudCk/KCh3PTB8YVtsKzc2Pj4yXSk/Q29bMTI3JnddKDB8YVtMZT4+Ml0pOjB8YVtPZT4+Ml0mJl8yKGws''@;'; + put 'put ''YywwfGFbVmU+PjJdLHBlKSxhW2Y+PjJdPXc9MHxhW3FlPj4yXSxhW20+PjJdPXcsdz0yPT0oMHxhW1JlPj4yXSk/MzU6MCk6MjM9PSgwfG50KT8oYVtnZT4+Ml09dyx3PTQpOjI0PT0oMHxudCk/QTw8MjQ+PjI0PyhhW20+PjJdPWFbVmU+PjJdLHc9MCk6dz02OjI2PT0oMHxudCk/QTw8MjQ+''@;'; + put 'put ''PjI0PyhhW20+PjJdPWFbVmU+PjJdLHc9MCk6dz0yMDoyOD09KDB8bnQpPyhhW2dlPj4yXT13LHc9MjMpOjMwPT0oMHxudCkmJihhW20+PjJdPWFbcWU+PjJdLHc9MCksbGU9V2UsMHx3fWZ1bmN0aW9uIGh4KGwsYyxmLHApe3JldHVybiAwPT0oMHwoYz0wfEJtKGx8PTAsMSwwfGFbbCsxNDQ+''@;'; + put 'put ''PjJdLGN8PTAsZnw9MCxwfD0wLDA9PSgwfGZlW2wrNDgwPj4wXSkmMSkpKSYmKDB8eF8obCkpPDwyND4+MjQ9PTAmJihjPTEpLDB8Y31mdW5jdGlvbiB4XyhsKXt2YXIgUixjPTAsZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTA7Zm9yKFI9MTYrKGx8PTApfDAsbD1sKzM2MHww''@;'; + put 'put ''Ozspe2lmKCEobD0wfGFbbD4+Ml0pKXtsPTE7YnJlYWt9aWYoKDB8KGY9MHxhWyhEPWwrNHwwKT4+Ml0pKT09KDB8KHA9KG09MHxhWyhrPWwrMzZ8MCk+PjJdKSsoYj0xKygwfGFbbCsyND4+Ml0pfDApfDApKSl7bD0xO2JyZWFrfWlmKCgwfChBPShjPTB8YVsoTT1sKzh8MCk+PjJdKStifDAp''@;'; + put 'put ''KT4oKDB8YVsodz1sKzQwfDApPj4yXSktbXwwKSl7aWYoIShwPTB8QmlbMTI3JmFbUj4+Ml1dKG0sQSkpKXtsPTA7YnJlYWt9KDB8YVsoYz1sKzEyfDApPj4yXSk9PSgwfChtPTB8YVtrPj4yXSkpJiYoYVtjPj4yXT1wKSwwfChmPTB8YVsoYz1sKzE2fDApPj4yXSkmJihhW2M+PjJdPXArKGYt''@;'; + put 'put ''bSkpLGFbaz4+Ml09cCxhW3c+PjJdPXArQSxwPXArYnwwLGY9MHxhW0Q+PjJdLGM9MHxhW00+PjJdfWdvKDB8cCwwfGYsMHxjKSxhW0Q+PjJdPXB9cmV0dXJuIDB8bH1mdW5jdGlvbiBUXyhsLGMpe2N8PTA7dmFyIHAsbSxmPTAsQT0wLHc9MDtmb3IocD0xMisobHw9MCl8MCxtPWwrOHwwOzsp''@;'; + put 'put ''e2lmKCgwfChmPTB8YVtwPj4yXSkpPT0oMHxhW20+PjJdKSl7aWYoISgoMHx2bChsKSk8PDI0Pj4yNCkpe2M9MDticmVha31mPTB8YVtwPj4yXX1pZih3PTB8ZmVbYz4+MF0sYVtwPj4yXT1mKzEsZmVbZj4+MF09dywhKDB8ZmVbYz4+MF0pKXtBPTY7YnJlYWt9Yz1jKzF8MH1yZXR1cm4gNj09''@;'; + put 'put ''KDB8QSkmJihjPTB8YVsodz1sKzE2fDApPj4yXSxhW3c+PjJdPWFbcD4+Ml0pLDB8Y31mdW5jdGlvbiBJXyhsLGMpe3ZhciB3LGIsayxNLEQsZj0wLHA9MCxtPTAsQT0wLFI9MDtiPTgwKyhSPTB8YVszNTIrKGx8PTApPj4yXSl8MCxrPVIrOTJ8MCxNPVIrODh8MCxEPVIrNjB8MCxSPVIrOTZ8''@;'; + put 'put ''MCx3PTQrKGN8PTApfDAsQT0wfGFbYz4+Ml07ZTpmb3IoOzspe3N3aXRjaCgwfGZlW0E+PjBdKXtjYXNlIDA6Zj0xO2JyZWFrIGU7Y2FzZSA1ODpmb3IobT0wfGFbYz4+Ml07cD0oMHwoZj0wfGFbaz4+Ml0pKT09KDB8YVtNPj4yXSksKDB8bSkhPSgwfEEpOyl7aWYocCl7aWYoISgoMHx2bChi''@;'; + put 'put ''KSk8PDI0Pj4yNCkpe2Y9MDticmVhayBlfWY9MHxhW2s+PjJdfXA9MHxmZVttPj4wXSxhW2s+PjJdPWYrMSxmZVtmPj4wXT1wLG09bSsxfDB9aWYocCl7aWYoISgoMHx2bChiKSk8PDI0Pj4yNCkpe2Y9MDticmVhayBlfWY9MHxhW2s+PjJdfWlmKGFbaz4+Ml09ZisxLGZlW2Y+PjBdPTAsIShm''@;'; + put 'put ''PTB8XzEobCxELDB8YVtSPj4yXSw4KSkpe2Y9MDticmVhayBlfSgwfGFbZj4+Ml0pPT0oMHwocD0wfGFbUj4+Ml0pKT9hW1I+PjJdPWFbaz4+Ml06YVtrPj4yXT1wLGFbdz4+Ml09Zn1BPUErMXwwfXJldHVybiAwfGZ9ZnVuY3Rpb24gZ0EobCxjLGYscCxtKXtsfD0wLGZ8PTAsbXw9MDt2YXIg''@;'; + put 'put ''QT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxLPTA7az0wfGZlWyhwfD0wKT4+MF0sQT0wPT0oMHwodz0wfGFbKGN8PTApPj4yXSkpO2Rve2lmKGs8PDI0Pj4yNClpZihBfHwxMjAhPSgwfGZlW3c+PjBdKXx8MTA5IT0oMHxmZVt3KzE+PjBdKXx8MTA4IT0oMHxmZVt3KzI+PjBdKSlE''@;'; + put 'put ''PTAsYj0xMTtlbHNle2lmKChBPTB8ZmVbdyszPj4wXSk8PDI0Pj4yND09MTEwJiYxMTU9PSgwfGZlW3crND4+MF0pJiYwPT0oMHxmZVt3KzU+PjBdKSl7QT0zOTticmVha31EPUE8PDI0Pj4yND09MCYxLGI9MTF9ZWxzZSBBPyhEPTAsYj0xMSk6QT0yOH13aGlsZSgwKTtlOmRve2lmKDExPT0o''@;'; + put 'put ''MHxiKSl7Zm9yKE09RDw8MjQ+PjI0IT0wLEE9MSx3PTEsUj0wO2I9dzw8MjQ+PjI0IT0wLGs8PDI0Pj4yNDspe2Rve2lmKGIpe2lmKCgwfFIpPD0zNiYmazw8MjQ+PjI0PT0oMHxmZVsxNDIyNTcrUj4+MF0pKWJyZWFrO3c9MH1lbHNlIHc9MH13aGlsZSgwKTtkb3tpZighKE18QTw8MjQ+PjI0''@;'; + put 'put ''PT0wKSl7aWYoKDB8Uik8PTI5JiZrPDwyND4+MjQ9PSgwfGZlWzE0MjI5NCtSPj4wXSkpYnJlYWs7QT0wfX13aGlsZSgwKTtSPWs9UisxfDAsaz0wfGZlW3Araz4+MF19aWYoKDI1NSZEfDApIT0oYiYzNj09KDB8UikmMXwwKSl7QT1NPzM4OjQwO2JyZWFrfWlmKEE8PDI0Pj4yNCE9MCYyOT09''@;'; + put 'put ''KDB8UikpQT00MDtlbHNle1I9UisoMCE9KDB8ZmVbKEc9bCs0Njh8MCk+PjBdKSYxKXwwLGI9MHxhWyhBPWwrMzcyfDApPj4yXTtkb3tpZighYil7aWYoISh3PTB8X29bNjMmYVsoQT1sKzEyfDApPj4yXV0oMjgpKSl7QT0xO2JyZWFrIGV9aWYoRD0wfF9vWzYzJmFbQT4+Ml1dKGI9UisyNHww''@;'; + put 'put ''KSxhW3crMTY+PjJdPUQsRCl7YVt3KzI0Pj4yXT1iLGI9dzticmVha31Db1sxMjcmYVtsKzIwPj4yXV0odyksQT0xO2JyZWFrIGV9aWYoKDB8Uik+KDB8YVsodz1iKzI0fDApPj4yXSkpe2lmKCEoRD0wfEJpWzEyNyZhW2wrMTY+PjJdXSgwfGFbKGs9YisxNnwwKT4+Ml0sTT1SKzI0fDApKSl7''@;'; + put 'put ''QT0xO2JyZWFrIGV9YVtrPj4yXT1ELGFbdz4+Ml09TX1hW0E+PjJdPWFbYis0Pj4yXX13aGlsZSgwKTthW2IrMjA+PjJdPVIsZ28oMHxhWyh3PWIrMTZ8MCk+PjJdLDB8cCwwfFIpLChBPTB8ZmVbRz4+MF0pPDwyND4+MjQmJihmZVsoMHxhW3c+PjJdKSsoUistMSk+PjBdPUEpLGFbYj4+Ml09''@;'; + put 'put ''YyxhW2IrMTI+PjJdPWYsYVtiKzg+PjJdPWFbKHc9Yys0fDApPj4yXSxhW3c+PjJdPUE9MD09KDB8ZmVbcD4+MF0pJiYoMTUyKygwfGFbbCszNTI+PjJdKXwwKT09KDB8Yyk/MDpiLGFbYis0Pj4yXT1hW20+PjJdLGFbbT4+Ml09YiwwIT0oMHxmKSYmMCE9KDB8KEs9MHxhW2wrMTAwPj4yXSkp''@;'; + put 'put ''JiZkbFsxMjcmS10oMHxhW2wrND4+Ml0sMHxhW2M+PjJdLDB8YVt3Pj4yXT9wOjApLEE9MH19fXdoaWxlKDApO3JldHVybiAwfEF9ZnVuY3Rpb24gbUEobCxjKXt2YXIgZjtsfD0wLGFbKGY9Y3w9MCk+PjJdPTAsYVtmKzQ+PjJdPTAsYVsoYz1jKzh8MCk+PjJdPTB8ZnVuY3Rpb24gRF8obCl7''@;'; + put 'put ''bHw9MDtmb3IodmFyIGM9MDtjPTB8YVtsKzQ3Mj4+Ml07KWw9YztyZXR1cm4gMHxhW2wrNDkyPj4yXX0obCksYVtjKzQ+PjJdPTB9ZnVuY3Rpb24gUmgobCxjKXt2YXIgZj0wLHA9MCxtPTAsQT0wO0E9MTkzNjY4MjM0MV5hWzQrKGY9Y3w9MCk+PjJdLGFbKHA9bHw9MCk+PjJdPTE4ODY2MTA4''@;'; + put 'put ''MDVeYVtmPj4yXSxhW3ArND4+Ml09QSxmPTE2ODUwMjUzNzdeYVs0KyhBPXA9Yys4fDApPj4yXSxhWyhtPWwrOHwwKT4+Ml09MTg1MjA3NTg4NV5hW0E+PjJdLGFbbSs0Pj4yXT1mLGM9MTgxOTg5NTY1M15hWyhtPWMpKzQ+PjJdLGFbKGY9bCsxNnwwKT4+Ml09MTg1MjE0MjE3N15hW20+PjJd''@;'; + put 'put ''LGFbZis0Pj4yXT1jLGY9MTk1MjgwMTg5MF5hW3ArND4+Ml0sYVsoYz1sKzI0fDApPj4yXT0yMDM3NjcxMjgzXmFbcD4+Ml0sYVtjKzQ+PjJdPWYsYVtsKzQwPj4yXT1sKzMyLGFbKGM9bCs0OHwwKT4+Ml09MCxhW2MrND4+Ml09MH1mdW5jdGlvbiBwNShsLGMsZil7dmFyIG0sQSx3LGIsayxN''@;'; + put 'put ''LEQsUixHLEsscGUsZ2UsYmUscD0wLE9lPTAsTGU9MCxSZT0wLEhlPTAsVmU9MCxxZT0wLG50PTA7RD0oY3w9MCkrKGZ8PTApfDAsUj00MCsobHw9MCl8MCxHPWwrNDB8MCxLPWwrMzJ8MCxwZT1sKzMzfDAsZ2U9bCszNHwwLGJlPWwrMzV8MCxtPWwrMzZ8MCxBPWwrMzd8MCx3PWwrMzh8MCxi''@;'; + put 'put ''PWwrMzl8MCxrPWwrMjR8MCxNPWwrNDh8MCxmPWM7ZG97Zm9yKDs7KXtpZihwPTB8YVtSPj4yXSxmPj4+MD49RD4+PjApe2M9MDticmVha31pZihwPj4+MD49Rz4+PjApe2M9MTticmVha31jPTB8ZmVbZj4+MF0sYVtSPj4yXT1wKzEsZmVbcD4+MF09YyxmPWYrMXwwfWlmKHA+Pj4wPEc+Pj4w''@;'; + put 'put ''KWJyZWFrO3FlPTB8WHRbSz4+MF0sbnQ9MHxabygwfFh0W3BlPj4wXSwwLDgpLHA9RG4sVmU9MHxabygwfFh0W2dlPj4wXSwwLDE2KSxwfD1EbixSZT0wfFpvKDB8WHRbYmU+PjBdLDAsMjQpLHA9cHxEbnwwfFh0W20+PjBdLE9lPTB8Wm8oMHxYdFtBPj4wXSwwLDQwKSxwfD1EbixIZT0wfFpv''@;'; + put 'put ''KDB8WHRbdz4+MF0sMCw0OCkscHw9RG4sTGU9MHxabygwfFh0W2I+PjBdLDAsNTYpLExlfD1udHxxZXxWZXxSZXxPZXxIZSxPZT0ocHw9RG4pXmFbKEhlPWspKzQ+PjJdLGFbKFJlPWspPj4yXT1MZV5hW0hlPj4yXSxhW1JlKzQ+PjJdPU9lLHZBKGwsMikscF49YVsoUmU9bCkrND4+Ml0sYVso''@;'; + put 'put ''T2U9bCk+PjJdPWFbUmU+PjJdXkxlLGFbT2UrND4+Ml09cCxhW1I+PjJdPUssT2U9MHx6bCgwfGFbKE9lPU0pPj4yXSwwfGFbT2UrND4+Ml0sOCwwKSxhWyhwPU0pPj4yXT1PZSxhW3ArND4+Ml09RG59d2hpbGUoYyl9ZnVuY3Rpb24gRzQobCl7bHw9MDt2YXIgYz0wO2ZvcihjPTA7MHxmZVts''@;'; + put 'put ''Pj4wXTspYz1jKzF8MCxsPWwrMXwwO3JldHVybiAwfGN9ZnVuY3Rpb24gTTYobCl7dmFyIHcsYz0wLGY9MCxwPTAsbT0wLEE9MDtzd2l0Y2goZj0wfFpvKDB8KGY9MHx6bCgwfGFbKGY9NDgrKGx8PTApfDApPj4yXSwwfGFbZis0Pj4yXSwwfChBPSgwfGFbbCs0MD4+Ml0pLShwPWwrMzJ8MCl8''@;'; + put 'put ''MCksMCkpLDB8RG4sNTYpLGM9RG4sQTw8MjQ+PjI0fDApe2Nhc2UgNzpmPTB8Wm8oMHxYdFtsKzM4Pj4wXSwwLDQ4KXxmLGN8PURuLG09MzticmVhaztjYXNlIDY6bT0zO2JyZWFrO2Nhc2UgNTptPTQ7YnJlYWs7Y2FzZSA0Om09NTticmVhaztjYXNlIDM6bT02O2JyZWFrO2Nhc2UgMjptPTc7''@;'; + put 'put ''YnJlYWs7Y2FzZSAxOm09OH1yZXR1cm4gMz09KDB8bSkmJihmfD1BPTB8Wm8oMHxYdFtsKzM3Pj4wXSwwLDQwKSxjfD1EbixtPTQpLDQ9PSgwfG0pJiYoY3w9MHxYdFtsKzM2Pj4wXSxtPTUpLDU9PSgwfG0pJiYoZnw9QT0wfFpvKDB8WHRbbCszNT4+MF0sMCwyNCksY3w9RG4sbT02KSw2PT0o''@;'; + put 'put ''MHxtKSYmKGZ8PUE9MHxabygwfFh0W2wrMzQ+PjBdLDAsMTYpLGN8PURuLG09NyksNz09KDB8bSkmJihBPTB8Wm8oMHxYdFtsKzMzPj4wXSwwLDgpLGN8PURuLGZ8PUEsbT04KSw4PT0oMHxtKSYmKGY9MHxmfFh0W3A+PjBdKSxtPWFbNCsodz1BPWwrMjR8MCk+PjJdXmMsYVsocD1BKT4+Ml09''@;'; + put 'put ''YVt3Pj4yXV5mLGFbcCs0Pj4yXT1tLHZBKGwsMiksY149YVsocD1sKSs0Pj4yXSxhWyhtPWwpPj4yXT1hW3A+PjJdXmYsYVttKzQ+PjJdPWMsZj0wfGFbNCsoYz1tPWwrMTZ8MCk+PjJdLGFbKHA9bSk+PjJdPTI1NV5hW2M+PjJdLGFbcCs0Pj4yXT1mLHZBKGwsNCkscD1sLERuPWFbNCsobD1s''@;'; + put 'put ''Kzh8MCk+PjJdXmFbcCs0Pj4yXV5hW20rND4+Ml1eYVtBKzQ+PjJdLGFbbD4+Ml1eYVtwPj4yXV5hW20+PjJdXmFbQT4+Ml18MH1mdW5jdGlvbiB2QShsLGMpe2N8PTA7dmFyIHAsbSxBLGY9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAsSz0wLHBlPTAsZ2U9MDtmb3IocD04KyhsfD0w''@;'; + put 'put ''KXwwLG09bCsyNHwwLEE9bCsxNnwwLGY9MDshKCgwfGYpPj0oMHxjKSk7KUs9MHx6bCgwfGFbKEs9bCk+PjJdLDB8YVtLKzQ+PjJdLDB8KEc9MHxhWyh3PXApPj4yXSksMHwodz0wfGFbdys0Pj4yXSkpLE09RG4sUj0wfFpvKDB8RywwfHcsMTMpLEQ9RG4sdz0oUnwodz0wfHdsKDB8RywwfHcs''@;'; + put 'put ''NTEpKSleSyxEPShEfERuKV5NLGs9MHx6bCgwfGFbKGs9QSk+PjJdLDB8YVtrKzQ+PjJdLDB8KEc9MHxhWyhSPW0pPj4yXSksMHwoUj0wfGFbUis0Pj4yXSkpLGI9RG4sZ2U9MHxabygwfEcsMHxSLDE2KSxwZT1EbixLPTB8emwoMHxNLDB8SywwfChSPShnZXwoUj0wfHdsKDB8RywwfFIsNDgp''@;'; + put 'put ''KSleayksMHwocGU9KHBlfERuKV5iKSksTT1EbixhWyhnZT1sKT4+Ml09SyxhW2dlKzQ+PjJdPU0sZ2U9MHxabygwfFIsMHxwZSwyMSksRz1EbixwZT0wfHdsKDB8UiwwfHBlLDQzKSxhWyhSPW0pPj4yXT0oZ2V8cGUpXkssYVtSKzQ+PjJdPShHfERuKV5NLGI9MHx6bCgwfGssMHxiLDB8dyww''@;'; + put 'put ''fEQpLGs9RG4sUj0wfFpvKDB8dywwfEQsMTcpLE09RG4sRD0wfHdsKDB8dywwfEQsNDcpLGFbKHc9cCk+PjJdPShSfEQpXmIsYVt3KzQ+PjJdPShNfERuKV5rLGFbKHc9QSk+PjJdPWssYVt3KzQ+PjJdPWIsZj1mKzF8MH1mdW5jdGlvbiBBQShsLGMsZixwLG0sQSl7cHw9MCxtfD0wO3ZhciBS''@;'; + put 'put ''LEcsSyxwZSxnZSxiZSxMZSxSZSxIZSxWZSxxZSxudCxXZSxvdCxTdCxrdCxzdCxFdCxadCxjdCxidCxhbixTbix3PTAsYj0wLGs9MCxNPTAsRD0wLE9lPTAsSG49MDtTbj1sZSxsZT1sZSsxNnwwLGN0PVNuLGJ0PVNuKzR8MCxSPTE2KyhjfD0wKXwwLEc9Yys0MHwwLEs9MTQ0KyhsfD0wKXww''@;'; + put 'put ''LHBlPWwrMjg0fDAsZ2U9KGZ8PTApPDwyND4+MjQ9PTAsYmU9MTIrKEF8PTApfDAsTGU9QSsxNnwwLFJlPUErOHwwLEhlPWMrNDR8MCxWZT1jKzY0fDAscWU9bCs0MzZ8MCxudD1sKzQ1MnwwLFdlPWwrNDQ4fDAsb3Q9KDgwKyhhbj0wfGFbbCszNTI+PjJdKXwwKT09KDB8QSksU3Q9bCsyNjh8''@;'; + put 'put ''MCxrdD1hbisxMzB8MCxzdD1hbisxMjl8MCxFdD1sKzI5NnwwLFp0PWwrMjI0fDAsdz0wO2U6Zm9yKDs7KXt0OmZvcig7Oyl7c3dpdGNoKDB8cTBbMTI3JmFbUj4+Ml1dKGMscCxtLGN0KSl7Y2FzZS00Onc9MCxEPTYxO2JyZWFrIGU7Y2FzZSAwOkQ9NDticmVhayBlO2Nhc2UtMTpEPTY7YnJl''@;'; + put 'put ''YWsgZTtjYXNlIDY6RD0yMTticmVhayB0O2Nhc2UtMzpEPTIyO2JyZWFrIHQ7Y2FzZSA3OmNhc2UgMzk6RD0yMzticmVhayB0O2Nhc2UgMTA6Yj0wfEJpWzEyNyZhW0c+PjJdXShjLHApO246ZG97aWYoKDB8Yik8MCkoMHxhW0s+PjJdKT09KDB8Yyk/KGFbcGU+PjJdPXAsYj0xLHc9MTQpOihi''@;'; + put 'put ''PTEsdz0xNCk7ZWxzZXtpZihnZSYzMj09KDB8Yikpe2lmKCgwfGFbTGU+PjJdKT09KDB8KGs9MHxhW2JlPj4yXSkpKXtiPTQ7YnJlYWt9aWYoMzI9PSgwfGZlW2srLTE+PjBdKSl7Yj00O2JyZWFrfX1mb3IoTT0wfFc0KGIsYnQpLGs9MDs7KXtpZigoMHxrKT49KDB8TSkpe2I9MDticmVhayBu''@;'; + put 'put ''fWlmKCgwfChiPTB8YVtiZT4+Ml0pKT09KDB8YVtSZT4+Ml0pKXtpZighKCgwfHZsKEEpKTw8MjQ+PjI0KSl7Yj0xLHc9MTticmVhayBufWI9MHxhW2JlPj4yXX1Ibj0wfGZlW2J0K2s+PjBdLGFbYmU+PjJdPWIrMSxmZVtiPj4wXT1IbixrPWsrMXwwfX19d2hpbGUoMCk7c3dpdGNoKDcmYil7''@;'; + put 'put ''Y2FzZSA0OmNhc2UgMDpicmVhayB0fWJyZWFrO2Nhc2UgOTppZigoYj0yNTUmKDB8bWlbNjMmYVtIZT4+Ml1dKGMscCsoYj0wfGFbVmU+PjJdKXwwLDAtYisoMHxhW2N0Pj4yXSl8MCkpKTw8MjQ+PjI0KXtEPTMxO2JyZWFrIHR9aWYoIShiPTB8YjIocWUsYyxwKyhiPTB8YVtWZT4+Ml0pfDAs''@;'; + put 'put ''MC1iKygwfGFbY3Q+PjJdKXwwKSkpe3c9MSxEPTYxO2JyZWFrIGV9TT0wfF8xKGwsYW4sYiwwKSxhW1dlPj4yXT1hW250Pj4yXTtkb3tpZihvdCl7aWYoISgwfGFbU3Q+PjJdKSl7aWYoTSlicmVhazticmVhayB0fWlmKDB8ZmVba3Q+PjBdKXtpZihiPTAhPSgwfE0pLDB8YVtFdD4+Ml0pe09l''@;'; + put 'put ''PWIsRD00NzticmVha31EPTQ1O2JyZWFrfWlmKGI9MCE9KDB8TSksMHxmZVtzdD4+MF0pe09lPWIsRD00NzticmVha31EPTQ1O2JyZWFrfWlmKDB8ZmVbc3Q+PjBdKXtpZihiPTAhPSgwfE0pLDB8ZmVba3Q+PjBdKXtEPTQ1O2JyZWFrfU9lPWIsRD00NzticmVha31pZihNKXtEPTQ2O2JyZWFr''@;'; + put 'put ''fXc9MTEsRD02MTticmVhayBlfXdoaWxlKDApO2lmKDQ1PT0oMHxEKSl7aWYoIWIpe3c9MTEsRD02MTticmVhayBlfUQ9NDZ9ZWxzZSBpZig0Nz09KDB8RCkmJihEPTAsIU9lKSlicmVhayB0O2lmKDQ2PT0oMHxEKSYmKEQ9MCwwPT0oMHxmZVtNKzM0Pj4wXSkpKXt3PTI0LEQ9NjE7YnJlYWsg''@;'; + put 'put ''ZX1pZigwfGZlWyhrPU0rMzJ8MCk+PjBdKXtEPTQ5O2JyZWFrIGV9aWYoMHxhW00rMjg+PjJdKXtEPTUyO2JyZWFrIGV9aWYoIShiPTB8YVtNKzQ+PjJdKSl7RD01NTticmVhayBlfWlmKE09YisoMHxhW00rOD4+Ml0pfDAsZmVbaz4+MF09MSxNPTB8QUEobCwwfGFbWnQ+PjJdLGYsYixNLEEp''@;'; + put 'put ''LGZlW2s+PjBdPTAsYj0wPT0oMHxNKSlicmVhayB0O2I9MSYoMV5iKSx3PU07YnJlYWs7ZGVmYXVsdDpEPTU4O2JyZWFrIGV9aWYoYilicmVhayBlfWlmKDIxPT0oMHxEKSl7aWYoRD0wLCEoMHxjQShBLGMscCwwfGFbY3Q+PjJdKSkpe3c9MSxEPTYxO2JyZWFrfX1lbHNlIGlmKDIyPT0oMHxE''@;'; + put 'put ''KSlhW2N0Pj4yXT1wKygwfGFbVmU+PjJdKSxEPTIzO2Vsc2UgaWYoMzE9PSgwfEQpKXtpZihEPTAsKDB8KHA9MHxhW2JlPj4yXSkpPT0oMHxhW1JlPj4yXSkpe2lmKCEoKDB8dmwoQSkpPDwyND4+MjQpKXt3PTEsRD02MTticmVha31wPTB8YVtiZT4+Ml19YVtiZT4+Ml09cCsxLGZlW3A+PjBd''@;'; + put 'put ''PWJ9ZG97aWYoMjM9PSgwfEQpKXtpZihEPTAscD0wfGFbYmU+PjJdLGdlJiYoKDB8YVtMZT4+Ml0pPT0oMHxwKXx8MzI9PSgwfGZlW3ArLTE+PjBdKSkpYnJlYWs7aWYoKDB8cCk9PSgwfGFbUmU+PjJdKSl7aWYoISgoMHx2bChBKSk8PDI0Pj4yNCkpe3c9MSxEPTYxO2JyZWFrIGV9cD0wfGFb''@;'; + put 'put ''YmU+PjJdfWFbYmU+PjJdPXArMSxmZVtwPj4wXT0zMn19d2hpbGUoMCk7cD0wfGFbY3Q+PjJdfXJldHVybiA0PT0oMHxEKT8oMHxhW0s+PjJdKT09KDB8Yyk/KGFbcGU+PjJdPWFbY3Q+PjJdLHc9NCxEPTYxKToodz00LEQ9NjEpOjY9PSgwfEQpPygwfGFbSz4+Ml0pPT0oMHxjKT8oYVtwZT4+''@;'; + put 'put ''Ml09cCx3PTQsRD02MSk6KHc9NCxEPTYxKTo0OT09KDB8RCk/KDB8YVtLPj4yXSk9PSgwfGMpPyhhW3BlPj4yXT1wLHc9MTIsRD02MSk6KHc9MTIsRD02MSk6NTI9PSgwfEQpPygwfGFbSz4+Ml0pPT0oMHxjKT8oYVtwZT4+Ml09cCx3PTE1LEQ9NjEpOih3PTE1LEQ9NjEpOjU1PT0oMHxEKT8o''@;'; + put 'put ''MHxhW0s+PjJdKT09KDB8Yyk/KGFbcGU+PjJdPXAsdz0xNixEPTYxKToodz0xNixEPTYxKTo1OD09KDB8RCkmJigoMHxhW0s+PjJdKT09KDB8Yyk/KGFbcGU+PjJdPXAsdz0yMyxEPTYxKToodz0yMyxEPTYxKSksbGU9U24sMHx3fWZ1bmN0aW9uIExfKGwpe3ZhciBjO3JldHVybiBjPTgrKGx8''@;'; + put 'put ''PTApfDAsMHwoKDB8bCk8MT8wOigwfGMpPjA/YzowKX1mdW5jdGlvbiB5QShsLGMpe3ZhciBmLHAsbTtyZXR1cm4gY3w9MCxmPWxlLGxlPWxlKzgwfDAscD1mKzE2fDAsbUEobHw9MCxtPWYpLFJoKHAsbSkscDUocCxjLDB8RzQoYykpLGM9MHxNNihwKSxsZT1mLDB8Y31mdW5jdGlvbiBGbShs''@;'; + put 'put ''LGMpe2x8PTAsY3w9MDtmb3IodmFyIGY9MDs7KXtpZigoZj0wfGZlW2w+PjBdKTw8MjQ+PjI0IT0oMHxmZVtjPj4wXSkpe2M9MDticmVha31pZighKGY8PDI0Pj4yNCkpe2M9MTticmVha31jPWMrMXwwLGw9bCsxfDB9cmV0dXJuIDB8Y31mdW5jdGlvbiBIbShsLGMpe2N8PTA7dmFyIHcsayxm''@;'; + put 'put ''PTAscD0wLG09MCxBPTAsYj0wO2s9bGUsbGU9bGUrMTA0MHwwLHc9ayxwPTB8YVsxMjQrKGx8PTApPj4yXTtlOmRve2lmKHApe2ZvcihmPTA7MjU2IT0oMHxmKTspYVt3KyhmPDwyKT4+Ml09LTEsZj1mKzF8MDthWyhtPXcrMTAyOHwwKT4+Ml09MCxhWyhiPXcrMTAyNHwwKT4+Ml09MCxhWyhB''@;'; + put 'put ''PXcrMTAzMnwwKT4+Ml09MDtkb3tpZigwfG1pWzYzJnBdKDB8YVtsKzI0ND4+Ml0sYyx3KSl7aWYoZj0wfF9vWzYzJihwPTB8YVtsKzEyPj4yXSldKGY9MTkwOCksYVtsKzIzNj4+Ml09ZixmKXtpZighKGY9MHxxMFsxMjcmKGZlW2wrMjMyPj4wXTw8MjQ+PjI0PzY1OjY0KV0oZix3LDB8YVtt''@;'; + put 'put ''Pj4yXSwwfGFbYj4+Ml0pKSlicmVhazthW2wrMjQwPj4yXT1hW2I+PjJdLGFbbCsyNDg+PjJdPWFbQT4+Ml0sYVtsKzE0ND4+Ml09ZixmPTB9ZWxzZShmPTB8YVtBPj4yXSkmJkNvWzEyNyZmXSgwfGFbYj4+Ml0pLGY9MTticmVhayBlfX13aGlsZSgwKTswfChmPTB8YVtBPj4yXSkmJkNvWzEy''@;'; + put 'put ''NyZmXSgwfGFbYj4+Ml0pLGY9MTh9ZWxzZSBmPTE4fXdoaWxlKDApO3JldHVybiBsZT1rLDB8Zn1mdW5jdGlvbiBQZChsLGMpe2N8PTAsZmVbNCsobHw9MCk+PjBdPTAsYVtsKzg+PjJdPTAsYVtsKzEyPj4yXT0wLGFbbD4+Ml09MCxhW2wrMTY+PjJdPWN9ZnVuY3Rpb24gcHgobCxjLGYscCl7''@;'; + put 'put ''Y3w9MCxmfD0wLHB8PTA7dmFyIG09MCxBPTAsdz0wLGI9MDttPTA9PSgwfChsfD0wKSk7ZTpkb3tpZihtfCgwfGYpPDB8fDA9PSgwfGMpJjAhPSgwfGYpKXc9MztlbHNle3N3aXRjaCgwfGFbKEE9bCs0NzZ8MCk+PjJdKXtjYXNlIDM6YVtsKzI4MD4+Ml09MzMsbT0wO2JyZWFrIGU7Y2FzZSAy''@;'; + put 'put ''OmFbbCsyODA+PjJdPTM2LG09MDticmVhayBlO2Nhc2UgMDppZigwPT0oMHxhW2wrNDcyPj4yXSkmJigwfGd4KGwpKTw8MjQ+PjI0PT0wKXthW2wrMjgwPj4yXT0xLG09MDticmVhayBlfX1pZihhW0E+PjJdPTEsMHxmKXtpZighKG09MHxteChsLGYpKSl7bT0wO2JyZWFrfWdvKDB8bSwwfGMs''@;'; + put 'put ''MHxmKSxtPTB8RG8obCxmLHApO2JyZWFrfWlmKGZlW2wrNDgwPj4wXT1wLHApe2lmKGFbKGM9bCsyOTJ8MCk+PjJdPWI9MHxhWyhtPWwrMjR8MCk+PjJdLGFbbCs0MD4+Ml09cD0wfGFbbCsyOD4+Ml0scD0wfHEwWzEyNyZhWyhmPWwrMjc2fDApPj4yXV0obCxiLHAsbSksYVtsKzI4MD4+Ml09''@;'; + put 'put ''cCwwfHApe2FbbCsyODg+PjJdPWFbbCsyODQ+PjJdLGFbZj4+Ml09NjYsbT0wO2JyZWFrfXN3aXRjaCgwfGFbQT4+Ml0pe2Nhc2UgMzpSY1szMSZhWzQ4KyhiPTB8YVtsKzE0ND4+Ml0pPj4yXV0oYiwwfGFbYz4+Ml0sMHxhW20+PjJdLGwrNDA0fDApLGFbYz4+Ml09YVttPj4yXSxtPTI7YnJl''@;'; + put 'put ''YWsgZTtjYXNlIDE6Y2FzZSAwOmFbQT4+Ml09MixtPTE7YnJlYWsgZTtkZWZhdWx0Om09MTticmVhayBlfX1lbHNlIG09MX19d2hpbGUoMCk7cmV0dXJuIDM9PSgwfHcpJiYobXx8KGFbbCsyODA+PjJdPTQxKSxtPTApLDB8bX1mdW5jdGlvbiBneChsKXt2YXIgYztyZXR1cm4gMHxhWyhjPTQ5''@;'; + put 'put ''MisobHw9MCl8MCk+PjJdfHwoYVtjPj4yXT0wfGZ1bmN0aW9uIEpCKCl7dmFyIGMsbD0wLGY9MDtyZXR1cm4gYz1sZSxsZT1sZSsxNnwwLDB8ZnVuY3Rpb24gUl8obCl7bHw9MDt2YXIgcCxtLGM9MCxmPTAsQT0wO2lmKG09bGUsbGU9bGUrMTZ8MCwoMHwocD0wfGZ1bmN0aW9uIENBZShsLGMs''@;'; + put 'put ''Zil7bHw9MCxmfD0wO3ZhciBtLEEsdyxwPTAsYj0wO3JldHVybiB3PWxlLGxlPWxlKzQ4fDAsQT13KzE2fDAsbT13LHA9dyszMnwwLDQxOTQzNjgmKGN8PTApPyhhW3A+PjJdPWYsZj0wfGFbKGI9MysoMHxhW3A+PjJdKSYtNCk+PjJdLGFbcD4+Ml09Yis0LHA9Zik6cD0wLGFbbT4+Ml09bCxh''@;'; + put 'put ''W20rND4+Ml09MzI3Njh8YyxhW20rOD4+Ml09cCwwPT0oNTI0Mjg4JmN8MCl8KDB8KHA9MHxCOCg1LDB8bSkpKTwwfHwoYVtBPj4yXT1wLGFbQSs0Pj4yXT0yLGFbQSs4Pj4yXT0xLF9kKDIyMSwwfEEpKSxiPTB8dWgocCksbGU9dywwfGJ9KDE0MjM2NSwwLG0pKSk8MCljPTA7ZWxzZXtmb3Io''@;'; + put 'put ''Yz0wOzspe2lmKGY9KEE9MHxJY2UocCxsK2N8MCw0LWN8MCkpK2N8MCwoMHxBKT4wKXtpZighKGY+Pj4wPDQpKXtjPTE7YnJlYWt9Yz1mfWlmKDQhPSgwfGFbNDc2NDNdKSl7Yz0wO2JyZWFrfX0hZnVuY3Rpb24gX2NlKGwpe3ZhciBjLGY7Yz1sZSxsZT1sZSsxNnwwLGFbKGY9Yyk+PjJdPTB8''@;'; + put 'put ''dCQobHw9MCksbD0wfHVoKC00PT0oMHwobD0wfEp1KDYsMHxmKSkpPzA6bCksbGU9Y30ocCl9cmV0dXJuIGxlPW0sMHxjfShsPWMpP2w9MHx2eCgxNDIzNjUsMHxhW2w+PjJdKTooZj0wfGZ1bmN0aW9uIFhCKCl7dmFyIGwsYztyZXR1cm4gYz1sZSxsZT1sZSsxNnwwLDB8ZzMoMHwobD1jKSww''@;'; + put 'put ''KT8oUHIoMTQyMzkwLDE0MjQxMiw4MTksMTQyNDIzKSwwKToobGU9YywwfGFbbCs0Pj4yXSl9KCksZj0oMHxGaigpKV5mLGFbbD4+Ml09ZixsPTB8dngoMTQyMzc4LDB8QXIoZiwyMTQ3NDgzNjQ3KSkpLGxlPWMsMHxsfSgpKSxsPTB8ZmVbbCsyMzI+PjBdPzB8ZnVuY3Rpb24gT18obCxjKXtj''@;'; + put 'put ''fD0wO3ZhciBiLGssTSxELFIsRyxLLHBlLGdlLGY9MCxwPTAsbT0wLEE9MCx3PTAsYmU9MDtEPTQyNCsobHw9MCl8MCxSPWwrNDIwfDAsRz1sKzQxMnwwLEs9bCs0Mjh8MCxwZT0xNTIrKE09MHxhW2wrMzUyPj4yXSl8MCxnZT1sKzM2OHwwLGI9TSs2MHwwLGs9TSs4MHwwO2U6Zm9yKDs7KXtB''@;'; + put 'put ''PWM7dDpmb3IoOzspe2lmKCEoMHxmZVtjPj4wXSkpe2M9MTticmVhayBlfXN3aXRjaCgocD0wfGZlW0E+PjBdKTw8MjQ+PjI0KXtjYXNlIDA6Y2FzZSAxMjpiZT01O2JyZWFrIHQ7Y2FzZSA2MTpicmVhayB0fWlmKCgwfChmPTB8YVtEPj4yXSkpPT0oMHxhW1I+PjJdKSl7aWYoISgoMHx2bChH''@;'; + put 'put ''KSk8PDI0Pj4yNCkpe2M9MDticmVhayBlfWY9MHxhW0Q+PjJdLHA9MHxmZVtBPj4wXX1hW0Q+PjJdPWYrMSxmZVtmPj4wXT1wLEE9QSsxfDB9aWYoNSE9KDB8YmUpKXtpZigoMHxhW0s+PjJdKT09KDB8KGM9MHxhW0Q+PjJdKSkpcD1wZTtlbHNle2lmKCgwfGMpPT0oMHxhW1I+PjJdKSl7aWYo''@;'; + put 'put ''ISgoMHx2bChHKSk8PDI0Pj4yNCkpe2M9MDticmVha31jPTB8YVtEPj4yXX1pZihhW0Q+PjJdPWMrMSxmZVtjPj4wXT0wLCEocD0wfF8xKGwsYiwwfGFbSz4+Ml0sOCkpKXtjPTA7YnJlYWt9aWYoYz13PTB8YVtLPj4yXSwoMHwoZj0wfGFbcD4+Ml0pKT09KDB8dykpe2lmKHc9MHxUXyhrLGYp''@;'; + put 'put ''LGFbcD4+Ml09dywhdyl7Yz0wO2JyZWFrfWM9MHxhW0s+PjJdfWFbRD4+Ml09Y310OmZvcig7Oyl7c3dpdGNoKG09KDB8Yyk9PSgwfGFbUj4+Ml0pLChmPTB8ZmVbKHc9QSsxfDApPj4wXSk8PDI0Pj4yNCl7Y2FzZSAwOmNhc2UgMTI6YnJlYWsgdH1pZihtKXtpZighKCgwfHZsKEcpKTw8MjQ+''@;'; + put 'put ''PjI0KSl7Yz0wO2JyZWFrIGV9Yz0wfGFbRD4+Ml0sZj0wfGZlW3c+PjBdfWFbRD4+Ml09YysxLGZlW2M+PjBdPWYsQT13LGM9MHxhW0Q+PjJdfWlmKG0pe2lmKCEoKDB8dmwoRykpPDwyND4+MjQpKXtjPTA7YnJlYWt9Yz0wfGFbRD4+Ml19aWYoYVtEPj4yXT1jKzEsZmVbYz4+MF09MCwwfGdB''@;'; + put 'put ''KGwscCwwLDB8YVtLPj4yXSxnZSkpe2M9MDticmVha31hW0Q+PjJdPWFbSz4+Ml0sYz0wPT0oMHxmZVt3Pj4wXSk/dzpBKzJ8MH1lbHNle2lmKGJlPTAsKDB8KGM9MHxhW0Q+PjJdKSk9PSgwfGFbUj4+Ml0pKXtpZighKCgwfHZsKEcpKTw8MjQ+PjI0KSl7Yz0wO2JyZWFrfWM9MHxhW0Q+PjJd''@;'; + put 'put ''fWFbRD4+Ml09YysxLGZlW2M+PjBdPTAsMHwoYz0wfF8xKGwsTSwwfGFbSz4+Ml0sMCkpJiYoZmVbYyszMj4+MF09MSksYz0wPT0oMHxmZVtBPj4wXSk/QTpBKzF8MCxhW0Q+PjJdPWFbSz4+Ml19fXJldHVybiAwfGN9KGwsMTQyMzI0KToxLDB8bH1mdW5jdGlvbiBteChsLGMpe2x8PTAsY3w9''@;'; + put 'put ''MDt2YXIgZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxLPTAscGU9MCxnZT0wO2U6ZG97aWYobCl7aWYoKDB8Yyk8MCl7YVtsKzI4MD4+Ml09MSxmPTA7YnJlYWt9c3dpdGNoKDB8YVtsKzQ3Nj4+Ml0pe2Nhc2UgMzphW2wrMjgwPj4yXT0zMyxmPTA7YnJlYWsg''@;'; + put 'put ''ZTtjYXNlIDI6YVtsKzI4MD4+Ml09MzYsZj0wO2JyZWFrIGU7ZGVmYXVsdDppZihmPXA9MHxhWyhHPWwrMjh8MCk+PjJdLCgoaz0wfGFbKFI9bCszMnwwKT4+Ml0pLXB8MCk+PSgwfGMpKWJyZWFrIGU7aWYoKDB8KHA9KGI9cC0oTT0wfGFbKHBlPWwrMjR8MCk+PjJdKXwwKStjfDApKTwwKXth''@;'; + put 'put ''W2wrMjgwPj4yXT0xLGY9MDticmVhayBlfXA9KGM9KHc9KDB8KEE9TS0oZ2U9bT0wfGFbKEQ9bCs4fDApPj4yXSl8MCkpPjEwMjQpPzEwMjQ6QSkrcHwwO2Rve2lmKCgwfHApPihrLWdlfDApKXtmPTA9PSgwfChmPWstTXwwKSk/MTAyNDpmO2Rve2Y8PD0xfXdoaWxlKCgwfGYpPCgwfHApJigw''@;'; + put 'put ''fGYpPjApO2lmKCgwfGYpPDEpe2FbbCsyODA+PjJdPTEsZj0wO2JyZWFrIGV9aWYoIShwPTB8X29bNjMmYVtsKzEyPj4yXV0oZikpKXthW2wrMjgwPj4yXT0xLGY9MDticmVhayBlfWlmKGFbUj4+Ml09cCtmLGY9MHxhW3BlPj4yXSl7Z28oMHxwLGYrKDAtKEs9KDB8KEs9KGdlPWYpLSgwfGFb''@;'; + put 'put ''RD4+Ml0pfDApKTwxMDI0P0s6MTAyNCkpfDAsKDB8YVtHPj4yXSktZ2UrS3wwKSxDb1sxMjcmYVtsKzIwPj4yXV0oMHxhW0Q+PjJdKSxhW0Q+PjJdPXAsYVtHPj4yXT1mPXArKCgwfGFbRz4+Ml0pLSgwfGFbcGU+PjJdKSkrS3wwLHA9cCtLfDAsSz0yMjticmVha31hW0c+PjJdPWY9cCsoMHxh''@;'; + put 'put ''W0c+PjJdKXwwLGFbRD4+Ml09cCxLPTIyO2JyZWFrfXcmJihyMSgwfG0sbSsocD1BLWN8MCl8MCxjK2J8MCksYVtHPj4yXT1mPSgwfGFbRz4+Ml0pKyhwPTAtcHwwKXwwLHA9KDB8YVtwZT4+Ml0pK3B8MCxLPTIyKX13aGlsZSgwKTsyMj09KDB8SykmJihhW3BlPj4yXT1wKSxhW2wrMjg4Pj4y''@;'; + put 'put ''XT0wLGFbbCsyODQ+PjJdPTAsYVtsKzI5Mj4+Ml09MDticmVhayBlfX1lbHNlIGY9MH13aGlsZSgwKTtyZXR1cm4gMHxmfWZ1bmN0aW9uIERvKGwsYyxmKXtsfD0wLGN8PTAsZnw9MDt2YXIgcD0wLG09MCxBPTAsdz0wLGI9MCxrPTA7ZTpkb3tpZihsKXtzd2l0Y2goMHxhWyhwPWwrNDc2fDAp''@;'; + put 'put ''Pj4yXSl7Y2FzZSAzOmFbbCsyODA+PjJdPTMzLGM9MDticmVhayBlO2Nhc2UgMjphW2wrMjgwPj4yXT0zNixjPTA7YnJlYWsgZTtjYXNlIDA6aWYoMD09KDB8YVtsKzQ3Mj4+Ml0pJiYoMHxneChsKSk8PDI0Pj4yND09MCl7YVtsKzI4MD4+Ml09MSxjPTA7YnJlYWsgZX19aWYoYVtwPj4yXT0x''@;'; + put 'put ''LGFbKEE9bCsyOTJ8MCk+PjJdPWI9MHxhWyhtPWwrMjR8MCk+PjJdLGFbKGs9bCsyOHwwKT4+Ml09dz0oMHxhW2s+PjJdKStjfDAsYVtsKzQwPj4yXT13LGFbKGs9bCszNnwwKT4+Ml09KDB8YVtrPj4yXSkrYyxmZVtsKzQ4MD4+MF09Zix3PTB8cTBbMTI3JmFbKGM9bCsyNzZ8MCk+PjJdXShs''@;'; + put 'put ''LGIsdyxtKSxhW2wrMjgwPj4yXT13LDB8dyl7YVtsKzI4OD4+Ml09YVtsKzI4ND4+Ml0sYVtjPj4yXT02NixjPTA7YnJlYWt9c3dpdGNoKDB8YVtwPj4yXSl7Y2FzZSAzOmM9MjticmVhaztjYXNlIDE6Y2FzZSAwOmlmKGYpe2FbcD4+Ml09MixjPTE7YnJlYWsgZX1jPTE7YnJlYWs7ZGVmYXVs''@;'; + put 'put ''dDpjPTF9UmNbMzEmYVs0OCsoaz0wfGFbbCsxNDQ+PjJdKT4+Ml1dKGssMHxhW0E+PjJdLDB8YVttPj4yXSxsKzQwNHwwKSxhW0E+PjJdPWFbbT4+Ml19ZWxzZSBjPTB9d2hpbGUoMCk7cmV0dXJuIDB8Y31mdW5jdGlvbiB2eChsLGMpe2x8PTAsY3w9MDt2YXIgcCxtLGY9MDtyZXR1cm4gbT1s''@;'; + put 'put ''ZSxsZT1sZSsxNnwwLHA9bSwwfChmPTB8RHUoMTQyNDQzKSkmJjA9PSgwfFppKGYsMTQyNDYzKSkmJihmPTB8YVsxNTcxMl0sYVtwPj4yXT1sLGFbcCs0Pj4yXT04LGFbcCs4Pj4yXT1jLGFbcCsxMj4+Ml09NCxUMChmLDE0MjQ2NSxwKSksbGU9bSwwfGN9ZnVuY3Rpb24gS0IobCl7cmV0dXJu''@;'; + put 'put ''IDB8KChsfD0wKT8wfGFbbCsyODA+PjJdOjQxKX1mdW5jdGlvbiBxQihsKXtzd2l0Y2goMHwobHw9MCkpe2Nhc2UgNDE6bD0xNDI1MDI7YnJlYWs7Y2FzZSAxOmw9MTQzNzc0O2JyZWFrO2Nhc2UgMjpsPTE0Mzc2MTticmVhaztjYXNlIDM6bD0xNDM3NDQ7YnJlYWs7Y2FzZSA0Omw9MTQzNzEy''@;'; + put 'put ''O2JyZWFrO2Nhc2UgNTpsPTE0MzY5NzticmVhaztjYXNlIDY6bD0xNDM2Nzk7YnJlYWs7Y2FzZSA3Omw9MTQzNjY0O2JyZWFrO2Nhc2UgODpsPTE0MzY0NDticmVhaztjYXNlIDk6bD0xNDM2MTY7YnJlYWs7Y2FzZSAxMDpsPTE0MzU4MTticmVhaztjYXNlIDExOmw9MTQzNTY0O2JyZWFrO2Nh''@;'; + put 'put ''c2UgMTI6bD0xNDM1Mzc7YnJlYWs7Y2FzZSAxMzpsPTE0MzUxNzticmVhaztjYXNlIDE0Omw9MTQzNDc5O2JyZWFrO2Nhc2UgMTU6bD0xNDM0NTI7YnJlYWs7Y2FzZSAxNjpsPTE0MzQxMDticmVhaztjYXNlIDE3Omw9MTQzMzYzO2JyZWFrO2Nhc2UgMTg6bD0xNDMzNDY7YnJlYWs7Y2FzZSAx''@;'; + put 'put ''OTpsPTE0MzI5NTticmVhaztjYXNlIDIwOmw9MTQzMjcyO2JyZWFrO2Nhc2UgMjE6bD0xNDMyMjY7YnJlYWs7Y2FzZSAyMjpsPTE0MzE5OTticmVhaztjYXNlIDIzOmw9MTQzMTQ4O2JyZWFrO2Nhc2UgMjQ6bD0xNDMxMTI7YnJlYWs7Y2FzZSAyNTpsPTE0MzA2MDticmVhaztjYXNlIDI2Omw9''@;'; + put 'put ''MTQzMDE1O2JyZWFrO2Nhc2UgMjc6bD0xNDNlMzticmVhaztjYXNlIDI4Omw9MTQyOTc0O2JyZWFrO2Nhc2UgMjk6bD0xNDI5MzY7YnJlYWs7Y2FzZSAzMDpsPTE0MjkwNDticmVhaztjYXNlIDMxOmw9MTQyODcxO2JyZWFrO2Nhc2UgMzI6bD0xNDI4Mzc7YnJlYWs7Y2FzZSAzMzpsPTE0Mjgy''@;'; + put 'put ''MDticmVhaztjYXNlIDM0Omw9MTQyNzk5O2JyZWFrO2Nhc2UgMzU6bD0xNDI3ODM7YnJlYWs7Y2FzZSAzNjpsPTE0Mjc2NjticmVhaztjYXNlIDM3Omw9MTQyNzIyO2JyZWFrO2Nhc2UgMzg6bD0xNDI2NDI7YnJlYWs7Y2FzZSAzOTpsPTE0MjU4MzticmVhaztjYXNlIDQwOmw9MTQyNTE5O2Jy''@;'; + put 'put ''ZWFrO2RlZmF1bHQ6bD0wfXJldHVybiAwfGx9ZnVuY3Rpb24gVzQobCxjKXtsfD0wLGN8PTA7ZG97aWYoKDB8bCk+PTApe2lmKCgwfGwpPDEyOCl7ZmVbYz4+MF09bCxsPTE7YnJlYWt9aWYoKDB8bCk8MjA0OCl7ZmVbYz4+MF09bD4+PjZ8MTkyLGZlW2MrMT4+MF09NjMmbHwxMjgsbD0yO2Jy''@;'; + put 'put ''ZWFrfWlmKCgwfGwpPDY1NTM2KXtmZVtjPj4wXT1sPj4+MTJ8MjI0LGZlW2MrMT4+MF09bD4+PjYmNjN8MTI4LGZlW2MrMj4+MF09NjMmbHwxMjgsbD0zO2JyZWFrfSgwfGwpPDExMTQxMTI/KGZlW2M+PjBdPWw+Pj4xOHwyNDAsZmVbYysxPj4wXT1sPj4+MTImNjN8MTI4LGZlW2MrMj4+MF09''@;'; + put 'put ''bD4+PjYmNjN8MTI4LGZlW2MrMz4+MF09NjMmbHwxMjgsbD00KTpsPTB9ZWxzZSBsPTB9d2hpbGUoMCk7cmV0dXJuIDB8bH1mdW5jdGlvbiB0UChsLGMsZixwKXtsfD0wLGN8PTAsZnw9MCxwfD0wO3ZhciBtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MDtmb3IobT0wOzspe2lm''@;'; + put 'put ''KDM2ND09KDB8bSkpe209MDticmVha31mZVtsK20+PjBdPTB8ZmVbNTY1NzYrbT4+MF0sbT1tKzF8MH1lOmZvcig7Oyl7aWYoKDB8bSk+PTEyOCl7QT01O2JyZWFrfXN3aXRjaCgwfGZlWzU2NjQ4K20+PjBdKXtjYXNlIDA6Y2FzZSAyODpicmVhaztkZWZhdWx0OmlmKCgwfGFbYysobTw8Mik+''@;'; + put 'put ''PjJdKSE9KDB8bSkpe2w9MDticmVhayBlfX1tPW0rMXwwfWU6ZG97aWYoNT09KDB8QSkpe2ZvcihHPWwrNzJ8MCxrPWwrMzcyfDAsTT1sKzg4NHwwLEQ9MD09KDB8ZiksYj0wOyEoKDB8Yik+PTI1Nik7KXtSPTB8YVtjKyhiPDwyKT4+Ml07ZG97aWYoLTE9PSgwfFIpKWZlW0crYj4+MF09MSxp''@;'; + put 'put ''dFtrKyhiPDwxKT4+MV09LTEsZmVbTSsoYjw8Mik+PjBdPTEsZmVbTSsoYjw8MikrMT4+MF09MDtlbHNle2lmKCgwfFIpPDApe2lmKER8KDB8Uik8LTQpe2w9MDticmVhayBlfWZlW0crYj4+MF09My1SLGZlW00rKGI8PDIpPj4wXT0wLGl0W2srKGI8PDEpPj4xXT0wO2JyZWFrfWlmKCgwfFIp''@;'; + put 'put ''PDEyOCl7c3dpdGNoKChtPTB8ZmVbNTY2NDgrUj4+MF0pPDwyND4+MjQpe2Nhc2UgMDpjYXNlIDI4OmJyZWFrO2RlZmF1bHQ6aWYoKDB8UikhPSgwfGIpKXtsPTA7YnJlYWsgZX19ZmVbRytiPj4wXT1tLGZlW00rKGI8PDIpPj4wXT0xLGZlW00rKGI8PDIpKzE+PjBdPVIsaXRbaysoYjw8MSk+''@;'; + put 'put ''PjFdPTA9PSgwfFIpPy0xOjY1NTM1JlI7YnJlYWt9aWYoKDB8RmQoUikpPDApe2ZlW0crYj4+MF09MCxpdFtrKyhiPDwxKT4+MV09LTEsZmVbTSsoYjw8Mik+PjBdPTEsZmVbTSsoYjw8MikrMT4+MF09MDticmVha31pZigoMHxSKT42NTUzNSl7bD0wO2JyZWFrIGV9ZmVbRytiPj4wXT1hWzU2''@;'; + put 'put ''OTQwKygoWHRbMTQzNzg4KyhtPVI+Pj44KT4+MF08PDN8KEE9Uj4+PjUmNykpPDwyKT4+Ml0mKHc9MTw8KDMxJlIpKT8yMjphWzU2OTQwKygoWHRbMTQ0MDQ0K20+PjBdPDwzfEEpPDwyKT4+Ml0md3wwPzI2OjI4LGZlW00rKGI8PDIpPj4wXT0wfFc0KFIsTSsoYjw8MikrMXwwKSxpdFtrKyhi''@;'; + put 'put ''PDwxKT4+MV09Un19d2hpbGUoMCk7Yj1iKzF8MH1hW2wrMzY4Pj4yXT1wLGFbbCszNjQ+PjJdPWYsRHx8KGFbbCszMjg+PjJdPTEwOCxhW2wrMzMyPj4yXT0xMDgsYVtsKzMzNj4+Ml09MTA4LGFbbCszNDA+PjJdPTEwOSxhW2wrMzQ0Pj4yXT0xMDksYVtsKzM0OD4+Ml09MTA5LGFbbCszNTI+''@;'; + put 'put ''PjJdPTExMCxhW2wrMzU2Pj4yXT0xMTAsYVtsKzM2MD4+Ml09MTEwKSxhW2wrNTY+PjJdPTEzLGFbbCs2MD4+Ml09MTR9fXdoaWxlKDApO3JldHVybiAwfGx9ZnVuY3Rpb24gRmQobCl7c3dpdGNoKChsfD0wKT4+OHwwKXtjYXNlIDIyMzpjYXNlIDIyMjpjYXNlIDIyMTpjYXNlIDIyMDpjYXNl''@;'; + put 'put ''IDIxOTpjYXNlIDIxODpjYXNlIDIxNzpjYXNlIDIxNjpsPS0xO2JyZWFrO2Nhc2UgMDowfGZlWzU2NjQ4K2w+PjBdfHwobD0tMSk7YnJlYWs7Y2FzZSAyNTU6NjU1MzUhPSgxfGwpfHwobD0tMSl9cmV0dXJuIDB8bH1mdW5jdGlvbiBHaShsLGMsZixwLG0sQSx3KXtsfD0wLGN8PTAsZnw9MCxt''@;'; + put 'put ''fD0wLEF8PTAsd3w9MCwocHw9MCk/ZnVuY3Rpb24gbTUobCxjLGYscCxtLEEpe2N8PTAsZnw9MCxwfD0wLG18PTAsQXw9MDt2YXIgayxNLEQsUix3PTAsYj0wO2lmKFI9bGUsbGU9bGUrMTZ8MCxEPVIsMSE9KDB8YVszMisobHw9MCk+PjJdKSYmUHIoOTQ5MTksOTQ5NDMsMTE2Myw5NTMzNSks''@;'; + put 'put ''MSE9KDB8YVtsKzE2Pj4yXSkmJlByKDk1MzY0LDk0OTQzLDExNjQsOTUzMzUpLGs9MHxhW2w+PjJdLE09MHxhW2wrND4+Ml0sYj0wIT0oMHwodz0wfGFbZj4+Ml0pKSxtKXtmb3IoYnx8KHc9MHxRbigwfEFyKHA8PDMsTSkpKSxiPTA7ISgoMHxiKT49KDB8cCkpOylhW0Q+PjJdPXcrKCgwfEFy''@;'; + put 'put ''KGIsTSkpPDwzKSxLZihsLGMrKCgwfEFyKGIsaykpPDwzKXwwLEQsbSksYj1iKzF8MDtBfHxIZCh3LHAsTSl9ZWxzZXtmb3IoYnx8KHc9MHxRbigwfEFyKHA8PDMsaykpKSxiPTA7ISgoMHxiKT49KDB8cCkpOylhW0Q+PjJdPXcrKCgwfEFyKGIsaykpPDwzKSxLZihsLGMrKCgwfEFyKGIsTSkp''@;'; + put 'put ''PDwzKXwwLEQsMCksYj1iKzF8MDtBfHxIZCh3LHAsayl9YVtmPj4yXT13LGxlPVJ9KGwsZixtLHcsYyxBKTpmdW5jdGlvbiBnNShsLGMsZixwLG0sQSl7Y3w9MCxmfD0wLHB8PTAsbXw9MCxBfD0wO3ZhciBLLHBlLGdlLGJlLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxPZT0wLExlPTA7''@;'; + put 'put ''aWYoMSE9KDB8YVszMisobHw9MCk+PjJdKSYmUHIoOTQ5MTksOTQ5NDMsMTEyMSw5NTQ4MyksMSE9KDB8YVtsKzE2Pj4yXSkmJlByKDk1MzY0LDk0OTQzLDExMjIsOTU0ODMpLEs9MHxhW2wrMjg+PjJdLHBlPTB8YVtsKzIwPj4yXSxnZT0wfGFbbCsyND4+Ml0sYmU9MHxhW2w+PjJdLEc9MHxh''@;'; + put 'put ''W2wrND4+Ml0sdz0wIT0oMHwobD0wfGFbZj4+Ml0pKSxtKXtmb3Iod3x8KGw9MHxRbigwfEFyKHA8PDMsRykpKSxtPTB8QXIoRyxwKSx3PTA7Oyl7aWYoKDB8dyk+PSgwfG0pKXt3PTA7YnJlYWt9X1tsKyh3PDwzKT4+M109MCx3PXcrMXwwfWU6Zm9yKDshKCgwfHcpPj0oMHxiZSkpOylmb3Io''@;'; + put 'put ''TT13KzF8MCxEPTB8YVtwZSsoTTw8Mik+PjJdLFI9MHxBcih3LHApLHc9MHxhW3BlKyh3PDwyKT4+Ml07Oyl7aWYoKDB8dyk+PSgwfEQpKXt3PU07Y29udGludWUgZX1mb3IoYj1LKyh3PDwzKXwwLGs9Z2UrKHc8PDIpfDAsbT0wOyEoKDB8bSk+PSgwfHApKTspTGU9bCsoKDB8QXIoMHxhW2s+''@;'; + put 'put ''PjJdLHApKSttPDwzKXwwLF9bTGU+PjNdPStfW0xlPj4zXSsgK19bYysobStSPDwzKT4+M10qK19bYj4+M10sbT1tKzF8MDt3PXcrMXwwfUEmJkhkKGwsRyxwKX1lbHNle3d8fChsPTB8UW4oMHxBcihwPDwzLGJlKSkpLG09MDtlOmZvcig7ISgoMHxtKT49KDB8YmUpKTspe2ZvcihSPTB8QXIo''@;'; + put 'put ''bSxwKSx3PTA7ISgoMHx3KT49KDB8cCkpOylfW2wrKHcrUjw8Myk+PjNdPTAsdz13KzF8MDtmb3IoRD0wfGFbcGUrKChNPW0rMXwwKTw8Mik+PjJdLHc9MHxhW3BlKyhtPDwyKT4+Ml07Oyl7aWYoKDB8dyk+PSgwfEQpKXttPU07Y29udGludWUgZX1mb3IoYj1LKyh3PDwzKXwwLGs9Z2UrKHc8''@;'; + put 'put ''PDIpfDAsbT0wOyEoKDB8bSk+PSgwfHApKTspT2U9K19bYysoKDB8QXIoMHxhW2s+PjJdLHApKSttPDwzKT4+M10qK19bYj4+M10sX1soRz1sKyhtK1I8PDMpfDApPj4zXT0rX1tHPj4zXStPZSxtPW0rMXwwO3c9dysxfDB9fUEmJkhkKGwsYmUscCl9YVtmPj4yXT1sfShsLGYsbSx3LGMsQSl9''@;'; + put 'put ''ZnVuY3Rpb24gS2YobCxjLGYscCl7Y3w9MCxmfD0wLHB8PTA7dmFyIEQsUixHLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEs9MDtzd2l0Y2goMSE9KDB8YVszMisobHw9MCk+PjJdKSYmUHIoOTQ5MTksOTQ5NDMsMTIyMiw5NTM5MiksMHwodz0wfGFbbCsxNj4+Ml0pKXtjYXNlIDQ6Y2FzZSAx''@;'; + put 'put ''OmJyZWFrO2RlZmF1bHQ6UHIoOTU0MjEsOTQ5NDMsMTIyMyw5NTM5Mil9Uj0wfGFbbCsyMD4+Ml0sRD0wfGFbbCsyND4+Ml0sRz0wfGFbbD4+Ml0saz0wfGFbbCs0Pj4yXSxiPTB8YVtmPj4yXTtlOmRve3N3aXRjaCgwfHcpe2Nhc2UgMTppZihNPTB8YVtsKzI4Pj4yXSxsPTAhPSgwfHApLG09''@;'; + put 'put ''MCE9KDB8YiksYyl7aWYoIWwpe209bT9iOjB8UW4oRzw8MyksbD0wO3Q6Zm9yKDs7KXtpZigoMHxsKT49KDB8RykpYnJlYWsgZTtmb3IoX1sodz1tKyhsPDwzKXwwKT4+M109MCxwPTB8YVtSKygoYj1sKzF8MCk8PDIpPj4yXSxsPTB8YVtSKyhsPDwyKT4+Ml0sQT0wOzspe2lmKCgwfGwpPj0o''@;'; + put 'put ''MHxwKSl7bD1iO2NvbnRpbnVlIHR9X1t3Pj4zXT1LPUErICtfW2MrKGFbRCsobDw8Mik+PjJdPDwzKT4+M10qK19bTSsobDw8Myk+PjNdLGw9bCsxfDAsQT1LfX19Zm9yKG09bT9iOjB8UW4oazw8MyksbD0wOzspe2lmKCgwfGwpPj0oMHxrKSl7bD0wO2JyZWFrfV9bbSsobDw8Myk+PjNdPTAs''@;'; + put 'put ''bD1sKzF8MH10OmZvcig7Oyl7aWYoKDB8bCk+PSgwfEcpKWJyZWFrIGU7Zm9yKGI9MHxhW1IrKCh3PWwrMXwwKTw8Mik+PjJdLHA9YysobDw8Myl8MCxsPTB8YVtSKyhsPDwyKT4+Ml07Oyl7aWYoKDB8bCk+PSgwfGIpKXtsPXc7Y29udGludWUgdH1fWyhrPW0rKGFbRCsobDw8Mik+PjJdPDwz''@;'; + put 'put ''KXwwKT4+M109K19baz4+M10rICtfW3A+PjNdKitfW00rKGw8PDMpPj4zXSxsPWwrMXwwfX19ZWxzZXtpZighbCl7bT1tP2I6MHxRbihHPDwzKSxsPTA7dDpmb3IoOzspe2lmKCgwfGwpPj0oMHxHKSlicmVhayBlO2ZvcihfWyh3PW0rKGw8PDMpfDApPj4zXT0wLHA9MHxhW1IrKChiPWwrMXww''@;'; + put 'put ''KTw8Mik+PjJdLGw9MHxhW1IrKGw8PDIpPj4yXSxBPTA7Oyl7aWYoKDB8bCk+PSgwfHApKXtsPWI7Y29udGludWUgdH1fW3c+PjNdPUs9QSsgK19bTSsobDw8Myk+PjNdLGw9bCsxfDAsQT1LfX19Zm9yKG18fChiPTB8UW4oazw8MykpLGw9MDs7KXtpZigoMHxsKT49KDB8aykpe2w9MDticmVh''@;'; + put 'put ''a31fW2IrKGw8PDMpPj4zXT0wLGw9bCsxfDB9dDpmb3IoOzspe2lmKCgwfGwpPj0oMHxHKSl7bT1iO2JyZWFrIGV9Zm9yKHc9MHxhW1IrKChtPWwrMXwwKTw8Mik+PjJdLGw9MHxhW1IrKGw8PDIpPj4yXTs7KXtpZigoMHxsKT49KDB8dykpe2w9bTtjb250aW51ZSB0fV9bKGM9YisoYVtEKyhs''@;'; + put 'put ''PDwyKT4+Ml08PDMpfDApPj4zXT0rX1tjPj4zXSsgK19bTSsobDw8Myk+PjNdLGw9bCsxfDB9fX1jYXNlIDQ6aWYoTT0wfGFbbCsyOD4+Ml0sbD0wIT0oMHxwKSxtPTAhPSgwfGIpLGMpe2lmKCFsKXttPW0/YjowfFFuKEc8PDMpLGw9MDt0OmZvcig7Oyl7aWYoKDB8bCk+PSgwfEcpKWJyZWFr''@;'; + put 'put ''IGU7Zm9yKF9bKHc9bSsobDw8Myl8MCk+PjNdPTAscD0wfGFbUisoKGI9bCsxfDApPDwyKT4+Ml0sbD0wfGFbUisobDw8Mik+PjJdLEE9MDs7KXtpZigoMHxsKT49KDB8cCkpe2w9Yjtjb250aW51ZSB0fV9bdz4+M109Sz1BKyArX1tjKyhhW0QrKGw8PDIpPj4yXTw8Myk+PjNdKisoMHxhW00r''@;'; + put 'put ''KGw8PDIpPj4yXSksbD1sKzF8MCxBPUt9fX1mb3IobT1tP2I6MHxRbihrPDwzKSxsPTA7Oyl7aWYoKDB8bCk+PSgwfGspKXtsPTA7YnJlYWt9X1ttKyhsPDwzKT4+M109MCxsPWwrMXwwfXQ6Zm9yKDs7KXtpZigoMHxsKT49KDB8RykpYnJlYWsgZTtmb3IoYj0wfGFbUisoKHc9bCsxfDApPDwy''@;'; + put 'put ''KT4+Ml0scD1jKyhsPDwzKXwwLGw9MHxhW1IrKGw8PDIpPj4yXTs7KXtpZigoMHxsKT49KDB8Yikpe2w9dztjb250aW51ZSB0fV9bKGs9bSsoYVtEKyhsPDwyKT4+Ml08PDMpfDApPj4zXT0rX1trPj4zXSsgK19bcD4+M10qKygwfGFbTSsobDw8Mik+PjJdKSxsPWwrMXwwfX19ZWxzZXtpZigh''@;'; + put 'put ''bCl7bT1tP2I6MHxRbihHPDwzKSxsPTA7dDpmb3IoOzspe2lmKCgwfGwpPj0oMHxHKSlicmVhayBlO2ZvcihfWyh3PW0rKGw8PDMpfDApPj4zXT0wLHA9MHxhW1IrKChiPWwrMXwwKTw8Mik+PjJdLGw9MHxhW1IrKGw8PDIpPj4yXSxBPTA7Oyl7aWYoKDB8bCk+PSgwfHApKXtsPWI7Y29udGlu''@;'; + put 'put ''dWUgdH1fW3c+PjNdPUs9QSsgKygwfGFbTSsobDw8Mik+PjJdKSxsPWwrMXwwLEE9S319fWZvcihtfHwoYj0wfFFuKGs8PDMpKSxsPTA7Oyl7aWYoKDB8bCk+PSgwfGspKXtsPTA7YnJlYWt9X1tiKyhsPDwzKT4+M109MCxsPWwrMXwwfXQ6Zm9yKDs7KXtpZigoMHxsKT49KDB8Rykpe209Yjti''@;'; + put 'put ''cmVhayBlfWZvcih3PTB8YVtSKygobT1sKzF8MCk8PDIpPj4yXSxsPTB8YVtSKyhsPDwyKT4+Ml07Oyl7aWYoKDB8bCk+PSgwfHcpKXtsPW07Y29udGludWUgdH1fWyhjPWIrKGFbRCsobDw8Mik+PjJdPDwzKXwwKT4+M109K19bYz4+M10rICsoMHxhW00rKGw8PDIpPj4yXSksbD1sKzF8MH19''@;'; + put 'put ''fWRlZmF1bHQ6UHIoMTM4Mzk0LDk0OTQzLDEzMTUsOTUzOTIpfX13aGlsZSgwKTthW2Y+PjJdPW19ZnVuY3Rpb24gSGQobCxjLGYpe2x8PTA7dmFyIEEscD0wLG09MCx3PTA7Zm9yKGdvKDB8KEE9MHxRbihwPTB8QXIoKGN8PTApPDwzLGZ8PTApKSksMHxsLDB8cCkscD0wOyEoKDB8cCk+PSgw''@;'; + put 'put ''fGMpKTspe2Zvcih3PTB8QXIocCxmKSxtPTA7ISgoMHxtKT49KDB8ZikpOylfW2wrKCgwfEFyKG0sYykpK3A8PDMpPj4zXT0rX1tBKyhtK3c8PDMpPj4zXSxtPW0rMXwwO3A9cCsxfDB9RnQoQSl9ZnVuY3Rpb24gVDYobCxjKXt2YXIgVmUscWUsbnQsV2UsZj0wLHA9MCxtPTAsQT0wLHc9MCxi''@;'; + put 'put ''PTAsaz0wLE09MCxEPTAsUj0wLEc9MCxLPTAscGU9MCxnZT0wLGJlPTAsT2U9MCxMZT0wLFJlPTAsSGU9MCxvdD0wO2lmKFZlPTB8YVsyMCsobHw9MCk+PjJdLHFlPTB8YVtsKzI0Pj4yXSxudD0wfGFbMjArKGN8PTApPj4yXSxXZT0wfGFbYysyND4+Ml0sMT09KDB8KEhlPTB8YVtsKzMyPj4y''@;'; + put 'put ''XSkpJiYoMHxIZSk9PSgwfGFbYyszMj4+Ml0pfHxQcig5NTAwNSw5NDk0MywxNDA4LDk1NTEyKSxIZT0wfGFbbD4+Ml0sKDB8YVtsKzQ+PjJdKT09KDB8YVtjPj4yXSkmJigwfChSPTB8YVtsKzE2Pj4yXSkpPT0oMHxhW2MrMTY+PjJdKSYmMCE9KDB8KG90PTB8UW4oYVsoRD1jKzR8MCk+PjJd''@;'; + put 'put ''PDwyKSkpKXtmb3IoZj0wOzspe2lmKCgwfGYpPj0oMHxhW0Q+PjJdKSl7cD0wLGY9MDticmVha31hW290KyhmPDwyKT4+Ml09LTEsZj1mKzF8MH1lOmZvcig7ISgoMHxmKT49KDB8SGUpKTspZm9yKGI9ZisxfDAsaz1WZSsoYjw8Mil8MCxNPS0yLWZ8MCx3PTB8YVtWZSsoZjw8Mik+PjJdOzsp''@;'; + put 'put ''e2lmKCgwfHcpPj0oMHxhW2s+PjJdKSl7Zj1iO2NvbnRpbnVlIGV9Zm9yKEE9bnQrKDErKG09MHxhW3FlKyh3PDwyKT4+Ml0pPDwyKXwwLG09MHxhW250KyhtPDwyKT4+Ml07ISgoMHxtKT49KDB8YVtBPj4yXSkpOykoMHxhWyhmPW90KyhhW1dlKyhtPDwyKT4+Ml08PDIpfDApPj4yXSkhPSgw''@;'; + put 'put ''fE0pJiYoYVtmPj4yXT1NLHA9cCsxfDApLG09bSsxfDA7dz13KzF8MH1mPTB8dWMoSGUsMHxhW0Q+PjJdLHAsUiwxKTtlOmRve2lmKGYpe09lPTB8YVtmKzIwPj4yXSxMZT0wfGFbZisyND4+Ml07dDpkb3tzd2l0Y2goMHxSKXtjYXNlIDE6Z2U9MHxhW2wrMjg+PjJdLFI9MHxhW2MrMjg+PjJd''@;'; + put 'put ''LGM9MHxhW2YrMjg+PjJdLGFbT2U+PjJdPTAscD0wLG09MDtuOmZvcig7Oyl7aWYoKDB8cCk+PSgwfEhlKSl7UmU9bTticmVhayB0fWZvcihLPVZlKygoRz1wKzF8MCk8PDIpfDAscGU9T2UrKHA8PDIpfDAsbD0wfGFbVmUrKHA8PDIpPj4yXTshKCgwfGwpPj0oMHxhW0s+PjJdKSk7KXtmb3Io''@;'; + put 'put ''TT1udCsoMSsoaz0wfGFbcWUrKGw8PDIpPj4yXSk8PDIpfDAsRD1nZSsobDw8Myl8MCxrPTB8YVtudCsoazw8Mik+PjJdOyEoKDB8ayk+PSgwfGFbTT4+Ml0pKTspe2lmKCgwfChiPTB8YVsodz1vdCsoKEE9MHxhWyhwPVdlKyhrPDwyKXwwKT4+Ml0pPDwyKXwwKT4+Ml0pKTwoMHxhW3BlPj4y''@;'; + put 'put ''XSkpYVt3Pj4yXT1tLGFbTGUrKG08PDIpPj4yXT1hW3A+PjJdLF9bYysobTw8Myk+PjNdPStfW1IrKGs8PDMpPj4zXSorX1tEPj4zXSxtPW0rMXwwO2Vsc2V7aWYoKDB8YVtMZSsoYjw8Mik+PjJdKSE9KDB8QSkpYnJlYWsgbjtfWyhiZT1jKyhiPDwzKXwwKT4+M109K19bYmU+PjNdKyArX1tS''@;'; + put 'put ''KyhrPDwzKT4+M10qK19bRD4+M119az1rKzF8MH1sPWwrMXwwfWFbT2UrKEc8PDIpPj4yXT1tLHA9R31Qcig5NTUzNCw5NDk0MywxNDY4LDk1NTEyKTticmVhaztjYXNlIDI6YmU9MHxhW2wrMjg+PjJdLGM9MHxhW2MrMjg+PjJdLEc9MHxhW2YrMjg+PjJdLGFbT2U+PjJdPTAscD0wLG09MDtu''@;'; + put 'put ''OmZvcig7Oyl7aWYoKDB8cCk+PSgwfEhlKSl7UmU9bTticmVhayB0fWZvcihwZT1WZSsoKEs9cCsxfDApPDwyKXwwLGdlPU9lKyhwPDwyKXwwLFI9MHxhW1ZlKyhwPDwyKT4+Ml07ISgoMHxSKT49KDB8YVtwZT4+Ml0pKTspe2ZvcihNPW50KygxKyhrPTB8YVtxZSsoUjw8Mik+PjJdKTw8Mil8''@;'; + put 'put ''MCxEPWJlKygobD1SPDwxKTw8Myl8MCxsPWJlKygoMXxsKTw8Myl8MCxrPTB8YVtudCsoazw8Mik+PjJdOyEoKDB8ayk+PSgwfGFbTT4+Ml0pKTspe2lmKCgwfChiPTB8YVsodz1vdCsoKEE9MHxhWyhwPVdlKyhrPDwyKXwwKT4+Ml0pPDwyKXwwKT4+Ml0pKTwoMHxhW2dlPj4yXSkpYVt3Pj4y''@;'; + put 'put ''XT1tLGFbTGUrKG08PDIpPj4yXT1hW3A+PjJdLF9bRysoKGI9bTw8MSk8PDMpPj4zXT0rX1soQT1jKygodz1rPDwxKTw8Myl8MCk+PjNdKitfW0Q+PjNdLStfWyh3PWMrKCgxfHcpPDwzKXwwKT4+M10qK19bbD4+M10sX1tHKygoMXxiKTw8Myk+PjNdPStfW0E+PjNdKitfW2w+PjNdKyArX1t3''@;'; + put 'put ''Pj4zXSorX1tEPj4zXSxtPW0rMXwwO2Vsc2V7aWYoKDB8YVtMZSsoYjw8Mik+PjJdKSE9KDB8QSkpYnJlYWsgbjtfWyhwPUcrKChiPDw9MSk8PDMpfDApPj4zXT0rX1twPj4zXSsgK19bKEE9YysoKHc9azw8MSk8PDMpfDApPj4zXSorX1tEPj4zXS0rX1sodz1jKygoMXx3KTw8Myl8MCk+PjNd''@;'; + put 'put ''KitfW2w+PjNdLF9bKGI9RysoKDF8Yik8PDMpfDApPj4zXT0rX1tBPj4zXSorX1tsPj4zXSsgK19bdz4+M10qK19bRD4+M10rICtfW2I+PjNdfWs9aysxfDB9Uj1SKzF8MH1hW09lKyhLPDwyKT4+Ml09bSxwPUt9UHIoOTU1MzQsOTQ5NDMsMTQ5Nyw5NTUxMik7YnJlYWs7Y2FzZSA0OmdlPTB8''@;'; + put 'put ''YVtsKzI4Pj4yXSxSPTB8YVtjKzI4Pj4yXSxjPTB8YVtmKzI4Pj4yXSxhW09lPj4yXT0wLHA9MCxtPTA7bjpmb3IoOzspe2lmKCgwfG0pPj0oMHxIZSkpe1JlPXA7YnJlYWsgdH1mb3IoSz1WZSsoKEc9bSsxfDApPDwyKXwwLHBlPU9lKyhtPDwyKXwwLE09MHxhW1ZlKyhtPDwyKT4+Ml07ISgo''@;'; + put 'put ''MHxNKT49KDB8YVtLPj4yXSkpOyl7Zm9yKEQ9bnQrKDErKGs9MHxhW3FlKyhNPDwyKT4+Ml0pPDwyKXwwLGw9Z2UrKE08PDIpfDAsaz0wfGFbbnQrKGs8PDIpPj4yXTshKCgwfGspPj0oMHxhW0Q+PjJdKSk7KXtpZigoMHwoYj0wfGFbKHc9b3QrKChBPTB8YVsobT1XZSsoazw8Mil8MCk+PjJd''@;'; + put 'put ''KTw8Mil8MCk+PjJdKSk8KDB8YVtwZT4+Ml0pKWFbdz4+Ml09cCxhW0xlKyhwPDwyKT4+Ml09YVttPj4yXSxhW2MrKHA8PDIpPj4yXT0wfEFyKDB8YVtSKyhrPDwyKT4+Ml0sMHxhW2w+PjJdKSxwPXArMXwwO2Vsc2V7aWYoKDB8YVtMZSsoYjw8Mik+PjJdKSE9KDB8QSkpYnJlYWsgbjt3PTB8''@;'; + put 'put ''QXIoMHxhW1IrKGs8PDIpPj4yXSwwfGFbbD4+Ml0pLGFbKGJlPWMrKGI8PDIpfDApPj4yXT0oMHxhW2JlPj4yXSkrd31rPWsrMXwwfU09TSsxfDB9YVtPZSsoRzw8Mik+PjJdPXAsbT1HfVByKDk1NTM0LDk0OTQzLDE1MjMsOTU1MTIpO2JyZWFrO2Nhc2UgODphW09lPj4yXT0wLHA9MCxtPTA7''@;'; + put 'put ''bjpmb3IoOzspe2lmKCgwfG0pPj0oMHxIZSkpe1JlPXA7YnJlYWsgdH1mb3IoUj1WZSsoKGw9bSsxfDApPDwyKXwwLGM9T2UrKG08PDIpfDAsTT0wfGFbVmUrKG08PDIpPj4yXTshKCgwfE0pPj0oMHxhW1I+PjJdKSk7KXtmb3IoRD1udCsoMSsoaz0wfGFbcWUrKE08PDIpPj4yXSk8PDIpfDAs''@;'; + put 'put ''az0wfGFbbnQrKGs8PDIpPj4yXTshKCgwfGspPj0oMHxhW0Q+PjJdKSk7KXtpZigoMHwoYj0wfGFbKHc9b3QrKChBPTB8YVsobT1XZSsoazw8Mil8MCk+PjJdKTw8Mil8MCk+PjJdKSk+PSgwfGFbYz4+Ml0pKXtpZigoMHxhW0xlKyhiPDwyKT4+Ml0pIT0oMHxBKSlicmVhayBufWVsc2UgYVt3''@;'; + put 'put ''Pj4yXT1wLGFbTGUrKHA8PDIpPj4yXT1hW20+PjJdLHA9cCsxfDA7az1rKzF8MH1NPU0rMXwwfWFbT2UrKGw8PDIpPj4yXT1wLG09bH1Qcig5NTUzNCw5NDk0MywxNTQzLDk1NTEyKTticmVhaztkZWZhdWx0OlJhKGYpLGY9MDticmVhayBlfX13aGlsZSgwKTthW2YrOD4+Ml09UmV9ZWxzZSBm''@;'; + put 'put ''PTB9d2hpbGUoMCk7RnQob3QpfWVsc2UgZj0wO3JldHVybiAwfGZ9ZnVuY3Rpb24gWTQobCxjLGYpe3ZhciBvdCxTdCxrdCxFdCxadCxjdCxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAsSz0wLHBlPTAsZ2U9MCxiZT0wLE9lPTAsTGU9MCxSZT0wLEhlPTAsVmU9MCxx''@;'; + put 'put ''ZT0wLG50PTAsV2U9MCxzdD0wLGJ0PTAsYW49MCxTbj0wLEhuPTAsdXI9MDtpZihFdD0wfGFbMjArKGx8PTApPj4yXSxadD0wfGFbbCsyND4+Ml0sY3Q9MHxhWzIwKyhjfD0wKT4+Ml0sb3Q9MHxhW2MrMjQ+PjJdLFN0PTB8YVsyMCsoZnw9MCk+PjJdLGt0PTB8YVtmKzI0Pj4yXSwxPT0oMHwo''@;'; + put 'put ''c3Q9MHxhW2wrMzI+PjJdKSkmJigwfHN0KT09KDB8YVtjKzMyPj4yXSl8fFByKDk1MDA1LDk0OTQzLDE1NzQsOTU1NTkpLHN0PTB8YVtsPj4yXSwoMHxhW2wrND4+Ml0pPT0oMHxhW2M+PjJdKSYmKDB8YVtjKzQ+PjJdKT09KDB8YVtmPj4yXSkmJigwfChwZT0wfGFbbCsxNj4+Ml0pKT09KDB8''@;'; + put 'put ''YVtjKzE2Pj4yXSkmJigwfHBlKT09KDB8YVtmKzE2Pj4yXSkmJjAhPSgwfChidD0wfFFuKGFbKEs9Zis0fDApPj4yXTw8MikpKSl7Zm9yKHA9MDs7KXtpZigoMHxwKT49KDB8YVtLPj4yXSkpe209MCxwPTA7YnJlYWt9YVtidCsocDw8Mik+PjJdPS0xLHA9cCsxfDB9ZTpmb3IoOyEoKDB8cCk+''@;'; + put 'put ''PSgwfHN0KSk7KWZvcihEPXArMXwwLFI9RXQrKEQ8PDIpfDAsRz0tMi1wfDAsTT0wfGFbRXQrKHA8PDIpPj4yXTs7KXtpZigoMHxNKT49KDB8YVtSPj4yXSkpe3A9RDtjb250aW51ZSBlfWZvcihrPWN0KygxKyhiPTB8YVtadCsoTTw8Mik+PjJdKTw8Mil8MCxiPTB8YVtjdCsoYjw8Mik+PjJd''@;'; + put 'put ''OyEoKDB8Yik+PSgwfGFbaz4+Ml0pKTspe2Zvcih3PVN0KygxKyhBPTB8YVtvdCsoYjw8Mik+PjJdKTw8Mil8MCxBPTB8YVtTdCsoQTw8Mik+PjJdOyEoKDB8QSk+PSgwfGFbdz4+Ml0pKTspKDB8YVsocD1idCsoYVtrdCsoQTw8Mik+PjJdPDwyKXwwKT4+Ml0pIT0oMHxHKSYmKGFbcD4+Ml09''@;'; + put 'put ''RyxtPW0rMXwwKSxBPUErMXwwO2I9YisxfDB9TT1NKzF8MH1wPTB8dWMoc3QsMHxhW0s+PjJdLG0scGUsMSk7ZTpkb3tpZihwKXtxZT0wfGFbcCsyMD4+Ml0sbnQ9MHxhW3ArMjQ+PjJdO3Q6ZG97c3dpdGNoKDB8cGUpe2Nhc2UgMTpSZT0wfGFbbCsyOD4+Ml0sTGU9MHxhW2MrMjg+PjJdLGY9''@;'; + put 'put ''MHxhW2YrMjg+PjJdLGdlPTB8YVtwKzI4Pj4yXSxhW3FlPj4yXT0wLG09MCxBPTA7bjpmb3IoOzspe2lmKCgwfG0pPj0oMHxzdCkpe1dlPUE7YnJlYWsgdH1mb3IoT2U9RXQrKChiZT1tKzF8MCk8PDIpfDAsYz1xZSsobTw8Mil8MCxwZT0wfGFbRXQrKG08PDIpPj4yXTshKCgwfHBlKT49KDB8''@;'; + put 'put ''YVtPZT4+Ml0pKTspe2ZvcihLPWN0KygxKyhHPTB8YVtadCsocGU8PDIpPj4yXSk8PDIpfDAsbD1SZSsocGU8PDMpfDAsRz0wfGFbY3QrKEc8PDIpPj4yXTshKCgwfEcpPj0oMHxhW0s+PjJdKSk7KXtmb3IoRD1TdCsoMSsoTT0wfGFbb3QrKEc8PDIpPj4yXSk8PDIpfDAsUj1MZSsoRzw8Myl8''@;'; + put 'put ''MCxNPTB8YVtTdCsoTTw8Mik+PjJdOyEoKDB8TSk+PSgwfGFbRD4+Ml0pKTspe2lmKCgwfChrPTB8YVsoYj1idCsoKHc9MHxhWyhtPWt0KyhNPDwyKXwwKT4+Ml0pPDwyKXwwKT4+Ml0pKTwoMHxhW2M+PjJdKSlhW2I+PjJdPUEsYVtudCsoQTw8Mik+PjJdPWFbbT4+Ml0sX1tnZSsoQTw8Myk+''@;'; + put 'put ''PjNdPStfW1I+PjNdKitfW2w+PjNdKitfW2YrKE08PDMpPj4zXSxBPUErMXwwO2Vsc2V7aWYoKDB8YVtudCsoazw8Mik+PjJdKSE9KDB8dykpYnJlYWsgbjtfWyhWZT1nZSsoazw8Myl8MCk+PjNdPStfW1ZlPj4zXSsgK19bUj4+M10qK19bbD4+M10qK19bZisoTTw8Myk+PjNdfU09TSsxfDB9''@;'; + put 'put ''Rz1HKzF8MH1wZT1wZSsxfDB9YVtxZSsoYmU8PDIpPj4yXT1BLG09YmV9UHIoOTU1ODIsOTQ5NDMsMTY0Miw5NTU1OSk7YnJlYWs7Y2FzZSAyOlZlPTB8YVtsKzI4Pj4yXSxIZT0wfGFbYysyOD4+Ml0sZ2U9MHxhW2YrMjg+PjJdLGJlPTB8YVtwKzI4Pj4yXSxhW3FlPj4yXT0wLG09MCxBPTA7''@;'; + put 'put ''bjpmb3IoOzspe2lmKCgwfEEpPj0oMHxzdCkpe1dlPW07YnJlYWsgdH1mb3IoTGU9RXQrKChPZT1BKzF8MCk8PDIpfDAsUmU9cWUrKEE8PDIpfDAsbD0wfGFbRXQrKEE8PDIpPj4yXTshKCgwfGwpPj0oMHxhW0xlPj4yXSkpOyl7Zm9yKHBlPWN0KygxKyhEPTB8YVtadCsobDw8Mik+PjJdKTw8''@;'; + put 'put ''Mil8MCxjPVZlKygoZj1sPDwxKTw8Myl8MCxmPVZlKygoMXxmKTw8Myl8MCxEPTB8YVtjdCsoRDw8Mik+PjJdOyEoKDB8RCk+PSgwfGFbcGU+PjJdKSk7KXtmb3IoUj1TdCsoMSsoTT0wfGFbb3QrKEQ8PDIpPj4yXSk8PDIpfDAsRz1IZSsoKEs9RDw8MSk8PDMpfDAsSz1IZSsoKDF8Syk8PDMp''@;'; + put 'put ''fDAsTT0wfGFbU3QrKE08PDIpPj4yXTshKCgwfE0pPj0oMHxhW1I+PjJdKSk7KXtpZigoMHwoaz0wfGFbKGI9YnQrKCh3PTB8YVsoQT1rdCsoTTw8Mil8MCk+PjJdKTw8Mil8MCk+PjJdKSk8KDB8YVtSZT4+Ml0pKWFbYj4+Ml09bSxhW250KyhtPDwyKT4+Ml09YVtBPj4yXSxfW2JlKygoaz1t''@;'; + put 'put ''PDwxKTw8Myk+PjNdPSgoSG49K19bRz4+M10pKihTbj0rX1tjPj4zXSktKHVyPStfW0s+PjNdKSooYW49K19bZj4+M10pKSorX1sodz1nZSsoKGI9TTw8MSk8PDMpfDApPj4zXS0odXIqU24rYW4qSG4pKitfWyhiPWdlKygoMXxiKTw8Myl8MCk+PjNdLF9bYmUrKCgxfGspPDwzKT4+M109KCh1''@;'; + put 'put ''cj0rX1tHPj4zXSkqKFNuPStfW2Y+PjNdKSsoYW49K19bSz4+M10pKihIbj0rX1tjPj4zXSkpKitfW3c+PjNdKyh1cipIbi1TbiphbikqK19bYj4+M10sbT1tKzF8MDtlbHNle2lmKCgwfGFbbnQrKGs8PDIpPj4yXSkhPSgwfHcpKWJyZWFrIG47X1soQT1iZSsoKGs8PD0xKTw8Myl8MCk+PjNd''@;'; + put 'put ''PStfW0E+PjNdKygoU249K19bRz4+M10pKihIbj0rX1tjPj4zXSktKGFuPStfW0s+PjNdKSoodXI9K19bZj4+M10pKSorX1sodz1nZSsoKGI9TTw8MSk8PDMpfDApPj4zXS0oYW4qSG4rdXIqU24pKitfWyhiPWdlKygoMXxiKTw8Myl8MCk+PjNdLF9bKGs9YmUrKCgxfGspPDwzKXwwKT4+M109''@;'; + put 'put ''KChhbj0rX1tHPj4zXSkqKEhuPStfW2Y+PjNdKSsodXI9K19bSz4+M10pKihTbj0rX1tjPj4zXSkpKitfW3c+PjNdKyhhbipTbi1Ibip1cikqK19bYj4+M10rICtfW2s+PjNdfU09TSsxfDB9RD1EKzF8MH1sPWwrMXwwfWFbcWUrKE9lPDwyKT4+Ml09bSxBPU9lfVByKDk1NTgyLDk0OTQzLDE2''@;'; + put 'put ''NzQsOTU1NTkpO2JyZWFrO2Nhc2UgNDpSZT0wfGFbbCsyOD4+Ml0sTGU9MHxhW2MrMjg+PjJdLGM9MHxhW2YrMjg+PjJdLGY9MHxhW3ArMjg+PjJdLGFbcWU+PjJdPTAsbT0wLEE9MDtuOmZvcig7Oyl7aWYoKDB8QSk+PSgwfHN0KSl7V2U9bTticmVhayB0fWZvcihiZT1FdCsoKGdlPUErMXww''@;'; + put 'put ''KTw8Mil8MCxPZT1xZSsoQTw8Mil8MCxLPTB8YVtFdCsoQTw8Mik+PjJdOyEoKDB8Syk+PSgwfGFbYmU+PjJdKSk7KXtmb3IobD1jdCsoMSsoRD0wfGFbWnQrKEs8PDIpPj4yXSk8PDIpfDAscGU9UmUrKEs8PDIpfDAsRD0wfGFbY3QrKEQ8PDIpPj4yXTshKCgwfEQpPj0oMHxhW2w+PjJdKSk7''@;'; + put 'put ''KXtmb3IoUj1TdCsoMSsoTT0wfGFbb3QrKEQ8PDIpPj4yXSk8PDIpfDAsRz1MZSsoRDw8Mil8MCxNPTB8YVtTdCsoTTw8Mik+PjJdOyEoKDB8TSk+PSgwfGFbUj4+Ml0pKTspe2lmKCgwfChrPTB8YVsoYj1idCsoKHc9MHxhWyhBPWt0KyhNPDwyKXwwKT4+Ml0pPDwyKXwwKT4+Ml0pKTwoMHxh''@;'; + put 'put ''W09lPj4yXSkpYVtiPj4yXT1tLGFbbnQrKG08PDIpPj4yXT1hW0E+PjJdLEhlPTB8QXIoMHxhW0c+PjJdLDB8YVtwZT4+Ml0pLEhlPTB8QXIoSGUsMHxhW2MrKE08PDIpPj4yXSksYVsoVmU9ZisobTw8Mil8MCk+PjJdPSgwfGFbVmU+PjJdKStIZSxtPW0rMXwwO2Vsc2V7aWYoKDB8YVtudCso''@;'; + put 'put ''azw8Mik+PjJdKSE9KDB8dykpYnJlYWsgbjtIZT0wfEFyKDB8YVtHPj4yXSwwfGFbcGU+PjJdKSxIZT0wfEFyKEhlLDB8YVtjKyhNPDwyKT4+Ml0pLGFbKFZlPWYrKGs8PDIpfDApPj4yXT0oMHxhW1ZlPj4yXSkrSGV9TT1NKzF8MH1EPUQrMXwwfUs9SysxfDB9YVtxZSsoZ2U8PDIpPj4yXT1t''@;'; + put 'put ''LEE9Z2V9UHIoOTU1ODIsOTQ5NDMsMTcwNiw5NTU1OSk7YnJlYWs7Y2FzZSA4OmFbcWU+PjJdPTAsbT0wLEE9MDtuOmZvcig7Oyl7aWYoKDB8QSk+PSgwfHN0KSl7V2U9bTticmVhayB0fWZvcihwZT1FdCsoKGw9QSsxfDApPDwyKXwwLGM9cWUrKEE8PDIpfDAsRz0wfGFbRXQrKEE8PDIpPj4y''@;'; + put 'put ''XTshKCgwfEcpPj0oMHxhW3BlPj4yXSkpOyl7Zm9yKEs9Y3QrKDErKEQ9MHxhW1p0KyhHPDwyKT4+Ml0pPDwyKXwwLEQ9MHxhW2N0KyhEPDwyKT4+Ml07ISgoMHxEKT49KDB8YVtLPj4yXSkpOyl7Zm9yKFI9U3QrKDErKE09MHxhW290KyhEPDwyKT4+Ml0pPDwyKXwwLE09MHxhW1N0KyhNPDwy''@;'; + put 'put ''KT4+Ml07ISgoMHxNKT49KDB8YVtSPj4yXSkpOyl7aWYoKDB8KGs9MHxhWyhiPWJ0Kygodz0wfGFbKEE9a3QrKE08PDIpfDApPj4yXSk8PDIpfDApPj4yXSkpPj0oMHxhW2M+PjJdKSl7aWYoKDB8YVtudCsoazw8Mik+PjJdKSE9KDB8dykpYnJlYWsgbn1lbHNlIGFbYj4+Ml09bSxhW250Kyht''@;'; + put 'put ''PDwyKT4+Ml09YVtBPj4yXSxtPW0rMXwwO009TSsxfDB9RD1EKzF8MH1HPUcrMXwwfWFbcWUrKGw8PDIpPj4yXT1tLEE9bH1Qcig5NTU4Miw5NDk0MywxNzI5LDk1NTU5KTticmVhaztkZWZhdWx0OlJhKHApLHA9MDticmVhayBlfX13aGlsZSgwKTthW3ArOD4+Ml09V2V9ZWxzZSBwPTB9d2hp''@;'; + put 'put ''bGUoMCk7RnQoYnQpfWVsc2UgcD0wO3JldHVybiAwfHB9ZnVuY3Rpb24gTzMobCxjLGYscCxtKXtjfD0wLGZ8PTAscHw9MCxtfD0wO3ZhciBBPTAsdz0wLGI9MDtpZigyIT0oMHxhWzMyKyhsfD0wKT4+Ml0pJiZQcig5NTEwMCw5NDk0MywxOTcxLDk1NjA3KSwoMHxjKT49MSl7Zm9yKCgwfChB''@;'; + put 'put ''PSh3PTB8YVtsKzg+PjJdKStjfDApKT49KDB8YVtsKzEyPj4yXSkmJmZ1bmN0aW9uIHY1KGwsYyl7Y3w9MDt2YXIgZj0wLHA9MCxtPTA7Mj09KDB8YVszMisobHw9MCk+PjJdKT8oYVsoZj1sKzIwfDApPj4yXT0wfFYwKDB8YVtmPj4yXSxtPWM8PDIpLGFbKGY9bCsyNHwwKT4+Ml09MHxWMCgw''@;'; + put 'put ''fGFbZj4+Ml0sbSksKDB8KGY9MHxhW2wrNDA+PjJdKSk+MCYmKHA9MHxhWyhtPWwrMjh8MCk+PjJdLGY9MHxBcihmLGMpLGY9cD8wfFYwKHAsZik6MHxRbihmKSxhW20+PjJdPWYpKTooYVsoZj1sKzI0fDApPj4yXT0wfFYwKDB8YVtmPj4yXSxjPDwyKSwoMHwoZj0wfGFbbCs0MD4+Ml0pKT4w''@;'; + put 'put ''JiYocD0wfGFbKG09bCsyOHwwKT4+Ml0sZj0wfEFyKGYsYyksZj1wPzB8VjAocCxmKTowfFFuKGYpLGFbbT4+Ml09ZikpLGFbbCsxMj4+Ml09Y30obCxBKzEwfDApLGdvKCgwfGFbbCsyMD4+Ml0pKyhiPXc8PDIpfDAsMHxmLDB8KEE9Yzw8MikpLGdvKCgwfGFbbCsyND4+Ml0pK2J8MCwwfHAs''@;'; + put 'put ''MHxBKSwwfChBPTB8YVtsKzQwPj4yXSkmJihiPTB8QXIoQSxjKSx3PTB8QXIoQSx3KSxnbygoMHxhW2wrMjg+PjJdKSt3fDAsMHxtLDB8YikpLG09bCs0fDAsdz0wOyEoKDB8dyk+PSgwfGMpKTspKDB8KEE9MHxhW2YrKHc8PDIpPj4yXSkpPj0oMHxhW2w+PjJdKSYmKGFbbD4+Ml09QSsxKSwo''@;'; + put 'put ''MHwoQT0wfGFbcCsodzw8Mik+PjJdKSk+PSgwfGFbbT4+Ml0pJiYoYVttPj4yXT1BKzEpLHc9dysxfDA7YVsoYj1sKzh8MCk+PjJdPSgwfGFbYj4+Ml0pK2N9cmV0dXJuIDB8bH1mdW5jdGlvbiBVNChsKXtsfD0wO3ZhciBjPTAsZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAs''@;'; + put 'put ''Uj0wO2U6ZG97aWYobCl7TT0wfGFbbCsyMD4+Ml0saz0wfGFbbCsyND4+Ml07dDpkb3tzd2l0Y2goMHxhW2wrMTY+PjJdKXtjYXNlIDE6dz0wfGFbbCsyOD4+Ml0scD0wfGFbbD4+Ml0sYz0wO246Zm9yKDs7KXtpZigoMHxjKT49KDB8cCkpYnJlYWsgdDtmb3IoZj0xLysoKEE9MHxhW00rKCht''@;'; + put 'put ''PWMrMXwwKTw8Mik+PjJdKS0oYz0wfGFbTSsoYzw8Mik+PjJdKXwwKTs7KXtpZigoMHxjKT49KDB8QSkpe2M9bTtjb250aW51ZSBufV9bKGs9dysoYzw8Myl8MCk+PjNdPStfW2s+PjNdKmYsYz1jKzF8MH19Y2FzZSAyOm09MHxhW2wrMjg+PjJdLEE9MHxhW2w+PjJdLGM9MDtuOmZvcig7Oyl7''@;'; + put 'put ''aWYoKDB8Yyk+PSgwfEEpKWJyZWFrIHQ7Zm9yKGY9MS8rKChiPTB8YVtNKygodz1jKzF8MCk8PDIpPj4yXSktKHA9MHxhW00rKGM8PDIpPj4yXSl8MCk7Oyl7aWYoKDB8cCk+PSgwfGIpKXtjPXc7Y29udGludWUgbn0oMHxhW2srKHA8PDIpPj4yXSkhPSgwfGMpJiYoX1soUj1tKygoRD1wPDwx''@;'; + put 'put ''KTw8Myl8MCk+PjNdPStfW1I+PjNdKmYsX1soRD1tKygoMXxEKTw8Myl8MCk+PjNdPStfW0Q+PjNdKmYpLHA9cCsxfDB9fWNhc2UgNDpQcigxMzgzOTQsOTQ5NDMsMjE5Miw5NTY0OCk7YnJlYWs7Y2FzZSA4OmJyZWFrO2RlZmF1bHQ6bD0wO2JyZWFrIGV9fXdoaWxlKDApfWVsc2UgbD0wfXdo''@;'; + put 'put ''aWxlKDApO3JldHVybiAwfGx9ZnVuY3Rpb24gQTUobCl7dmFyIGM9MCxmPTAscD0wLG09MCxBPTA7aWYoMCE9KDB8KGx8PTApKSYmKGY9MHxhWyhjPWwrOHwwKT4+Ml0sKDB8KHA9MHxhW2wrND4+Ml0pKT09KDB8YVtsPj4yXSkpKXtmb3IoQT0wfGFbbCsyND4+Ml0sbD0wfGFbbCsyMD4+Ml0s''@;'; + put 'put ''bT0wfHVjKHAscCxmLDgsMSksZ28oMHxhW20rMjA+PjJdLDB8bCw0KyhwPDwyKXwwKSxnbygwfGFbbSsyND4+Ml0sMHxBLGY8PDJ8MCksYVttKzg+PjJdPWFbYz4+Ml0sbD0wfGFoKG0sMSksUmEobSksbD0wfHdwKGwpLGY9MHxRbihhWyhwPWwrOHwwKT4+Ml08PDMpLGFbbCsyOD4+Ml09Zixw''@;'; + put 'put ''PTB8YVtwPj4yXSxjPTA7ISgoMHxjKT49KDB8cCkpOylfW2YrKGM8PDMpPj4zXT0xLGM9YysxfDA7YVtsKzE2Pj4yXT0xLGFbbCs0MD4+Ml09OH1lbHNlIGw9MDtyZXR1cm4gMHxsfWZ1bmN0aW9uIEJoKCl7cmV0dXJuIDQuNjU2NjEyODc1MjQ1Nzk3ZS0xMCorKDB8VDEoKSl9ZnVuY3Rpb24g''@;'; + put 'put ''eXgobCl7cmV0dXJuKDB8KGx8PTApKT4xPzB8KDB8VDEoKSklKDB8bCk6KFByKDk1NjgyLDk1Njg4LDU4LDk1Njk4KSwwKX1mdW5jdGlvbiBOZChsKXtsfD0wO3ZhciBjPTAsZj0wLHA9MCxtPTAsQT0wO2U6ZG97aWYoKDB8bCk8MSljPTA7ZWxzZXtmb3IoYz0wfFFuKGw8PDIpLGY9MDsoMHxm''@;'; + put 'put ''KSE9KDB8bCk7KWFbYysoZjw8Mik+PjJdPWYsZj1mKzF8MDtmb3IoOzspe2lmKCgwfGwpPD0xKWJyZWFrIGU7cD0wfHl4KGwpLG09MHxhWyhBPWMrKChmPWwrLTF8MCk8PDIpfDApPj4yXSxhW0E+PjJdPWFbKHA9YysocDw8Mil8MCk+PjJdLGFbcD4+Ml09bSxsPWZ9fX13aGlsZSgwKTtyZXR1''@;'; + put 'put ''cm4gMHxjfWZ1bmN0aW9uIHk1KGwsYyxmKXtsfD0wLGN8PTAsZnw9MDt2YXIgcD0wLG09MCxBPTA7Zm9yKHA9MCxtPTA7ISgoMHxwKT49KDB8bCkpOylBPStfW2YrKHA8PDMpPj4zXSorX1tjKyhwPDwzKT4+M10rbSxwPXArMXwwLG09QTtyZXR1cm4rbX1mdW5jdGlvbiBieChsLGMsZixwKXts''@;'; + put 'put ''fD0wLGN8PTAsZnw9MCxwPStwO3ZhciBtPTAsQT0wO2ZvcihtPTA7ISgoMHxtKT49KDB8bCkpOylfWyhBPWYrKG08PDMpfDApPj4zXT0rX1tBPj4zXSpwKyArX1tjKyhtPDwzKT4+M10sbT1tKzF8MDtyZXR1cm4gMHxmfWZ1bmN0aW9uIFBfKGwsYyxmLHApe2x8PTAsY3w9MCxmfD0wLHA9K3A7''@;'; + put 'put ''dmFyIG09MCxBPTA7Zm9yKG09MDshKCgwfG0pPj0oMHxsKSk7KV9bKEE9YysobTw8Myl8MCk+PjNdPStfW2YrKG08PDMpPj4zXSpwKyArX1tBPj4zXSxtPW0rMXwwO3JldHVybiAwfGN9ZnVuY3Rpb24gZHUobCxjLGYscCl7bHw9MCxwfD0wO3ZhciBBLG09MCx3PTA7Zm9yKEE9MHxBcihmfD0w''@;'; + put 'put ''LGN8PTApLHA9MHxBcihwLGMpLG09MCxmPTA7ISgoMHxmKT49KDB8YykpOyltPSh3PStfW2wrKGYrQTw8Myk+PjNdLStfW2wrKGYrcDw8Myk+PjNdKSp3K20sZj1mKzF8MDtyZXR1cm4rKCh3PStEMCgrbSkpPjFlLTE1P3c6MWUtMTUpfWZ1bmN0aW9uIF9jKGwsYyxmLHApe2x8PTAscHw9MDt2''@;'; + put 'put ''YXIgQSxtPTAsdz0wO2ZvcihBPTB8QXIoZnw9MCxjfD0wKSxwPTB8QXIocCxjKSxtPTAsZj0wOyEoKDB8Zik+PSgwfGMpKTspbT0odz0rX1tsKyhmK0E8PDMpPj4zXS0rX1tsKyhmK3A8PDMpPj4zXSkqdyttLGY9ZisxfDA7cmV0dXJuKyArRDAoK20pfWZ1bmN0aW9uIGJBKGwsYyxmKXtsfD0w''@;'; + put 'put ''LGN8PTAsZnw9MDt2YXIgcD0wLG09MCxBPTA7Zm9yKHA9MCxtPTA7ISgoMHxtKT49KDB8ZikpOylwPShBPStfW2wrKG08PDMpPj4zXS0rX1tjKyhtPDwzKT4+M10pKkErcCxtPW0rMXwwO3JldHVybisgK0QwKCtwKX1mdW5jdGlvbiBfeChsLGMpe2N8PTAsMT09KDB8R28obHw9MCkpPyhsPTB8''@;'; + put 'put ''YVsxMzIrKDB8YVsxNisoMHxEdChsKSk+PjJdKT4+Ml0sYVtsPj4yXT0wLGFbbCs0Pj4yXT0wLGFbbCs4Pj4yXT0wLGFbbCsxMj4+Ml09MCk6KGZ1bmN0aW9uIHlhKGwpe3ZhciBjOygwfChjPTB8Y3IoMHxhW2FbMTEyKygwfGFbMTYrKDB8RHQobHw9MCkpPj4yXSk+PjJdPj4yXSkpKSE9KDB8''@;'; + put 'put ''KGw9MHxhWzQ2OTI1XSkpJiYoYVs0NjU1NV09MCxhWzQ2OTI1XT1jLGFbNDY5MjZdPTB8c2koYywwLDk1NzEzLDApLGFbNDY5MjddPTB8c2koMHxhWzQ2OTI1XSwxLDk1NzIxLDApLGFbNDY5MjhdPTB8c2koMHxhWzQ2OTI1XSwxLDk1NzM4LDApLGw9MHxhWzQ2OTI1XSksYVs0NjkyOV09MHxM''@;'; + put 'put ''aShsLDk1NzM4KSxrQSgxODYyMDgpLGFbNDY1NTRdPTEsX1syMzI4MF09K01sKDB8YVs0NjkyNV0sMHxhWzQ2OTI2XSwxLDApLGFbNDY1NTZdPWFbNDY5MjddLGFbNDY1NTddPWFbNDY5MjhdLGFbNDY1NThdPWFbNDY5MjldfShsKSxjPSgwfHQxKDB8TGkoYyw5NTcwNCkpKTw8MjQ+PjI0PzB8''@;'; + put 'put ''ZnVuY3Rpb24gVHQobCl7bHw9MDt2YXIgbSxjPTAsZj0wLHA9MDtmb3IobT1sZSxsZT1sZSsxNDR8MCxwPW0sZj1tKzh8MCxhWzQ2NTU1XT0xKyhjPTB8YVs0NjU1NV0pLGFbcD4+Ml09YyxvbyhmLDk2MjM0LHApLHA9KGY9MHxZXygwfGRzKGwsZiwxKSkpKzh8MCxjPTB8RHQobCk7YzspWW4o''@;'; + put 'put ''MHxhW3A+PjJdLGMsMSksYVsxMisoMHxhWzExMisoMHxhW2MrMTY+PjJdKT4+Ml0pPj4yXT1mLGM9MHx6dChsLGMpO3JldHVybiBsZT1tLDB8Zn0obCk6MHxmdW5jdGlvbiB3UChsLGMpe3ZhciBrLGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wLE09MDtmb3IoZnVuY3Rpb24gYlAobCxjKXtsfD0w''@;'; + put 'put ''O3ZhciBBLGIsZj0wLHA9MCxtPTA7Yj1sZSxsZT1sZSsxNnwwLEE9Yis4fDAsMCE9KDB8KHA9MHxhWzI0KyhjfD0wKT4+Ml0pKSYmMCE9KDB8KGY9MHxHcihsLHAsMCkpKXx8KG09Myk7ZTpkb3tpZigzPT0oMHxtKSl7cD1jKzIwfDA7dDpkb3tpZigwfGFbcD4+Ml0pZm9yKGY9MHxEdChsKTs7''@;'; + put 'put ''KXtpZighZilicmVhayB0O2lmKCgwfHBKKDB8YVthWzExMisoMHxhW2YrMTY+PjJdKT4+Ml0+PjJdLDB8YVtwPj4yXSwwKSk8PDI0Pj4yNClicmVhayBlO2Y9MHx6dChsLGYpfX13aGlsZSgwKTtmPTB8RHQobCl9fXdoaWxlKDApO2FbQSs0Pj4yXT0wLGFbQT4+Ml09MCxZeChsLGYsYywxLEEp''@;'; + put 'put ''LGxlPWJ9KGx8PTAsY3w9MCksdz0wfGFbNCsoaz0wfGFbYz4+Ml0pPj4yXTt3Oyl7Zm9yKGI9MHxEdChNPTB8YVt3Kzg+PjJdKSxsPTB8YVsxNisoZj0wfGFbMTEyKygwfGFbYisxNj4+Ml0pPj4yXSkrND4+Ml0sZj0wfGFbZis4Pj4yXSxtPWIsYj0wfHp0KE0sYik7YjspKDB8KEE9MHxhWzE2''@;'; + put 'put ''KyhwPTB8YVsxMTIrKDB8YVtiKzE2Pj4yXSk+PjJdKSs0Pj4yXSkpPCgwfGwpJiYobT1iLGY9MHxhW3ArOD4+Ml0sbD1BKSxiPTB8enQoTSxiKTthWyhNPTQrKGI9MHxhWzExMisoMHxhW2YrMTY+PjJdKT4+Ml0pfDApPj4yXT04fGFbTT4+Ml0sYVt3Pj4yXT1tLE09MHxhW3crND4+Ml0sVV8o''@;'; + put 'put ''MzYrKDB8YVtiKzEyPj4yXSl8MCx3KSx3PU19cmV0dXJuIGtBKGMpLDB8a30obCwxODYyMDgpLGZ1bmN0aW9uIFNQKGwsYyxmKXtKeChsfD0wLGN8PTAsK19bMzIrKGZ8PTApPj4zXSl9KGwsYywxODYyMDgpLGZ1bmN0aW9uIEZfKGwpe1F4KGx8PTApfShjKSl9ZnVuY3Rpb24gb1AobCxjKXt2''@;'; + put 'put ''YXIgZjtyZXR1cm4gbHw9MCxjfD0wLGY9MHxRbigzMiksYVtmPj4yXT00LF9bZis4Pj4zXT0uNzUsYVtmKzE2Pj4yXT0xMDczNzQxODI0LGFbZisyMD4+Ml09MSxhW2YrMjQ+PjJdPWwsYVtmKzI4Pj4yXT1jLDB8Zn1mdW5jdGlvbiBydChsKXtGdChsfD0wKX1mdW5jdGlvbiBsdChsKXt2YXIg''@;'; + put 'put ''Yz0wLGY9MDtpZihsfD0wKXtmPTB8YVtsKzg+PjJdO2Rve2lmKDB8Zil7aWYoMHxhW2w+PjJdKXtpZihSYShmKSwhKGM9MHxhW2wrMTI+PjJdKSlicmVhaztSYShjKTticmVha30wfGFbbCszNj4+Ml0mJihSYShmKSwwfChjPTB8YVtsKzEyPj4yXSkpJiZSYShjKX19d2hpbGUoMCk7UmEoMHxh''@;'; + put 'put ''W2wrMTY+PjJdKSxSYSgwfGFbbCsyMD4+Ml0pLDB8KGM9MHxhW2wrMjQ+PjJdKSYmKDB8YVtsPj4yXSk+MCYmRnQoYyksbHQoMHxhW2wrMjg+PjJdKSxGdChsKX19ZnVuY3Rpb24gdzUobCxjLGYscCxtLEEsdyxiLGssTSl7bHw9MCxjfD0wLGZ8PTAscHw9MCxtfD0wLEF8PTAsd3w9MCxifD0w''@;'; + put 'put ''LGt8PTAsTXw9MDt2YXIgV2UsU3Qsa3Qsc3QsRXQsWnQsRD0wLFI9MCxHPTAsSz0wLHBlPTAsZ2U9MCxiZT0wLE9lPTAsTGU9MCxSZT0wLEhlPTAsVmU9MCxxZT0wLG50PTAsb3Q9MDtadD1sZSxsZT1sZSszMnwwLEs9WnQrMjR8MCxXZT1adCsyMHwwLGt0PVp0KzE2fDAsUj1adCsxMnwwLHN0''@;'; + put 'put ''PVp0Kzh8MCxFdD1adCs0fDAsTGU9WnQsYVsoU3Q9WnQrMjh8MCk+PjJdPTAsYVtLPj4yXT0wLGFba3Q+PjJdPTAsYVtzdD4+Ml09MCxhW0V0Pj4yXT0wLGFbYz4+Ml09MCxhW3A+PjJdPTAsYVt3Pj4yXT0wLGFbYj4+Ml09MCxvdD0wfGFbbD4+Ml0sYVtNPj4yXT1hWyhHPWsrMjR8MCk+PjJd''@;'; + put 'put ''LEQ9MHxhW0c+PjJdO2U6ZG97c3dpdGNoKDB8RCl7Y2FzZSAxMjphW0c+PjJdPTMsYVtNPj4yXT0zLHc1KGwsYyxmLHAsbSxBLHcsYixrLE0pLDA9PSgwfGFbYz4+Ml0pJiYoYVtHPj4yXT00LGFbTT4+Ml09NCx3NShsLGMsZixwLG0sQSx3LGIsayxNKSwwPT0oMHxhW2M+PjJdKSkmJihhW0c+''@;'; + put 'put ''PjJdPTYsYVtNPj4yXT02LHc1KGwsYyxmLHAsbSxBLHcsYixrLE0pLDA9PSgwfGFbYz4+Ml0pKSYmKGFbRz4+Ml09OSxhW00+PjJdPTksdzUobCxjLGYscCxtLEEsdyxiLGssTSksMD09KDB8YVtjPj4yXSkpJiYoYVtHPj4yXT0yLGFbTT4+Ml09Mix3NShsLGMsZixwLG0sQSx3LGIsayxNKSks''@;'; + put 'put ''YVtHPj4yXT0xMixHPTAsSz0wLGs9MCxSPTAsRD0wLE09MDticmVhaztjYXNlIDk6Y2FzZSAxMDppZihmPTB8YVtrKzIwPj4yXSw5PT0oMHxEKT9IXyhsLGYsa3QsUixXZSk6R24obCxmLGt0LFIsV2UpLE9lPTB8YVtsKzIwPj4yXSxMZT0wfGFbbCsyND4+Ml0sYmU9MHxhW1I+PjJdLDB8YVtr''@;'; + put 'put ''KzI4Pj4yXSl7aWYoKDB8YmUpPT0oMHxvdCkpe0c9MCxLPTAsaz0wLFI9MCxEPTAsTT0wO2JyZWFrIGV9fWVsc2UgaWYoKDB8YmUpPT0oMHxvdCl8fCtfW2srOD4+M10qKygwfG90KTwrKDB8YmUpKXtHPTAsSz0wLGs9MCxSPTAsRD0wLE09MDticmVhayBlfWlmKCgwfGJlKT49KDB8YVtrPj4y''@;'; + put 'put ''XSkpe0hlPTB8UW4oVmU9KHFlPTB8YVtXZT4+Ml0pPDwyKSxWZT0wfFFuKFZlKSxxZT0wfFFuKHFlPDwzKSxhW1dlPj4yXT0wLGdlPTB8YVtrdD4+Ml0scGU9MCxSPTA7dDpmb3IoOyEoKDB8cGUpPj0oMHxvdCkpOylpZigtMT09KDB8YVsoZj1nZSsocGU8PDIpfDApPj4yXSkpe2ZvcihHPTB8''@;'; + put 'put ''YVsoaz1PZSsoKEs9cGUrMXwwKTw8Mil8MCk+PjJdLGY9MCxNPUQ9MHxhW09lKyhwZTw8Mik+PjJdOyEoKDB8TSk+PSgwfEcpKTspZj0oKDB8YVtnZSsoYVtMZSsoTTw8Mik+PjJdPDwyKT4+Ml0pPj4+MzFeMSkrZnwwLE09TSsxfDA7Zm9yKFJlPTEvKygwfGYpLGY9Rzs7KXtpZigoMHxEKT49''@;'; + put 'put ''KDB8Zikpe3BlPUs7Y29udGludWUgdH0oMHxhW2dlKyhhWyhNPUxlKyhEPDwyKXwwKT4+Ml08PDIpPj4yXSk+LTE/KGFbSGUrKFI8PDIpPj4yXT1wZSxhW1ZlKyhhW1dlPj4yXTw8Mik+PjJdPWFbZ2UrKGFbTT4+Ml08PDIpPj4yXSxhW1dlPj4yXT1NPTErKGY9MHxhW1dlPj4yXSl8MCxfW3Fl''@;'; + put 'put ''KyhmPDwzKT4+M109UmUsZj0wfGFbaz4+Ml0pOk09UixEPUQrMXwwLFI9TX19ZWxzZSBhW0hlKyhSPDwyKT4+Ml09cGUsYVtWZSsoYVtXZT4+Ml08PDIpPj4yXT1hW2Y+PjJdLGFbV2U+PjJdPWs9MSsoSz0wfGFbV2U+PjJdKXwwLF9bcWUrKEs8PDMpPj4zXT0xLHBlPXBlKzF8MCxSPWs7b3Q9''@;'; + put 'put ''MHxvNChSLG90LGJlLEhlLFZlLHFlLDEsOCksYVt3Pj4yXT1vdCxvdD0wfFd5KG90KSxhW2I+PjJdPW90LHc9MHxZNChvdCxsLDB8YVt3Pj4yXSksYVtjPj4yXT13LHc/KEtmKDB8YVtiPj4yXSxtLEEsMCksYVsoSz0zNisoRz0wfGFbYz4+Ml0pfDApPj4yXT0zfGFbSz4+Ml0sYVtjPj4yXT0w''@;'; + put 'put ''fHdwKEcpLGFbcD4+Ml09MCxHPXFlLEs9VmUsaz1IZSxSPUhlLEQ9VmUsTT1xZSk6KEc9cWUsSz1WZSxrPUhlLFI9SGUsRD1WZSxNPXFlKX1lbHNlIEc9MCxLPTAsaz0wLFI9MCxEPTAsTT0wO2JyZWFrO2Nhc2UgNTpudD0yNjticmVhaztjYXNlIDE6YmkobCwwfGFbKE09aysyMHwwKT4+Ml0s''@;'; + put 'put ''U3QsSyksMj09KDB8KGY9MHxhW0c+PjJdKSk/KGY9TSxudD0yNCk6bnQ9MjU7YnJlYWs7Y2FzZSAyOmY9aysyMHwwLG50PTI0O2JyZWFrO2Nhc2UgMzpGMChsLDB8YVtrKzIwPj4yXSxzdCxFdCxMZSksbnQ9MTI7YnJlYWs7Y2FzZSA0OkgwKGwsMHxhW2srMjA+PjJdLHN0LEV0LExlKSxudD0x''@;'; + put 'put ''MjticmVhaztjYXNlIDY6ZjEobCxzdCxFdCxMZSksbnQ9MTI7YnJlYWs7ZGVmYXVsdDpHPTAsSz0wLGs9MCxSPTAsRD0wLE09MH19d2hpbGUoMCk7ZG97aWYoMTI9PSgwfG50KSl7aWYocGU9MHxhW0xlPj4yXSwwfGFbaysyOD4+Ml0pe2lmKCgwfHBlKT09KDB8b3QpKXtHPTAsSz0wLGs9MCxS''@;'; + put 'put ''PTAsRD0wLE09MDticmVha319ZWxzZSBpZigoMHxwZSk9PSgwfG90KXx8K19bays4Pj4zXSorKDB8b3QpPCsoMHxwZSkpe0c9MCxLPTAsaz0wLFI9MCxEPTAsTT0wO2JyZWFrfWlmKCgwfHBlKT49KDB8YVtrPj4yXSkpe2dlPTB8UW4oYmU9b3Q8PDIpLGJlPTB8UW4oYmUpLE9lPTB8UW4ob3Q8''@;'; + put 'put ''PDMpLGFbV2U+PjJdPTAsUj0wfGFbRXQ+PjJdLEc9MHxhW3N0Pj4yXSxEPTAsZj0wO2U6Zm9yKDshKCgwfEQpPj0oMHxhW0xlPj4yXSkpOylmb3IoSz1EKzF8MCxrPVIrKEs8PDIpfDAsTT0wfGFbUisoRDw8Mik+PjJdOzspe2lmKCgwfE0pPj0oMHxhW2s+PjJdKSl7RD1LO2NvbnRpbnVlIGV9''@;'; + put 'put ''YVtnZSsoZjw8Mik+PjJdPWFbRysoTTw8Mik+PjJdLGFbYmUrKGFbV2U+PjJdPDwyKT4+Ml09RCxhW1dlPj4yXT1xZT0xKyhWZT0wfGFbV2U+PjJdKXwwLF9bT2UrKFZlPDwzKT4+M109MSxNPU0rMXwwLGY9cWV9b3Q9MHxvNChmLG90LHBlLGdlLGJlLE9lLDEsOCksYVt3Pj4yXT1vdCxhW2I+''@;'; + put 'put ''PjJdPTB8V3kob3QpLGFbcD4+Ml09MCx3PTB8WTQoMHxhW2I+PjJdLGwsMHxhW3c+PjJdKSxhW2M+PjJdPXcsdz8oS2YoMHxhW2I+PjJdLG0sQSwwKSxhW2I+PjJdPTB8VTQoMHxhW2I+PjJdKSxhWyhLPTM2KyhHPTB8YVtjPj4yXSl8MCk+PjJdPTN8YVtLPj4yXSxhW2M+PjJdPTB8d3AoRyks''@;'; + put 'put ''Rz1PZSxLPWJlLGs9Z2UsUj1nZSxEPWJlLE09T2UpOihHPU9lLEs9YmUsaz1nZSxSPWdlLEQ9YmUsTT1PZSl9ZWxzZSBHPTAsSz0wLGs9MCxSPTAsRD0wLE09MH1lbHNlIDI0PT0oMHxudCkmJihWbShsLDB8YVtmPj4yXSxTdCxLKSxmPTB8YVtHPj4yXSxudD0yNSl9d2hpbGUoMCk7MjU9PSgw''@;'; + put 'put ''fG50KSYmKG50PTU9PSgwfGYpPzI2OjI3KSwyNj09KDB8bnQpJiYoZnVuY3Rpb24gQ3gobCxjLGYscCl7Y3w9MCxmfD0wLHB8PTA7dmFyIGdlLGJlLE9lLExlLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLEs9MCxwZT0wO2ZvcihiZT0wfGFbMjArKGx8PTApPj4yXSxPZT0w''@;'; + put 'put ''fGFbbCsyND4+Ml0sQT0wfGFbbCs0Pj4yXSxLPTB8UW4oKExlPTB8YVtsPj4yXSk8PDIpLGFbZj4+Ml09SyxtPTA7ISgoMHxtKT49KDB8TGUpKTspYVtLKyhtPDwyKT4+Ml09bSxtPW0rMXwwO2FbcD4+Ml09QSxnZT0wfGFbbCsyOD4+Ml07ZTpkb3tpZihjKXtmb3IocGU9MHxOZChMZSksSz0w''@;'; + put 'put ''LG09MCx3PTA7ISgoMHxLKT49KDB8TGUpKTspe2lmKCgwfGFbKEQ9KE09MHxhW2Y+PjJdKSsoKGs9MHxhW3BlKyhLPDwyKT4+Ml0pPDwyKXwwKT4+Ml0pPT0oMHxrKSl7Zm9yKEc9KygoUj0wfGFbYmUrKGsrMTw8Mik+PjJdKS0oYz0wfGFbYmUrKGs8PDIpPj4yXSl8MCksQT0xOyEoKDB8Yyk+''@;'; + put 'put ''PSgwfFIpKTspKDB8aykhPSgwfChsPTB8YVtPZSsoYzw8Mik+PjJdKSkmJigwfGFbTSsobDw8Mik+PjJdKT09KDB8bCkmJihiPStfW2dlKyhjPDwzKT4+M10vKCsoKDB8YVtiZSsobCsxPDwyKT4+Ml0pLSgwfGFbYmUrKGw8PDIpPj4yXSl8MCkqRyksMCE9KDB8QSl8fGI+dz8oQT0wLG09bCx3''@;'; + put 'put ''PWIpOkE9MCksYz1jKzF8MDtBfHwoYVtNKyhtPDwyKT4+Ml09ayxhW0Q+PjJdPW0sYVtwPj4yXT0oMHxhW3A+PjJdKS0xKX1LPUsrMXwwfUZ0KHBlKX1lbHNlIGZvcihtPTAsdz0wLGs9MDs7KXtpZigoMHxrKT49KDB8TGUpKWJyZWFrIGU7Zm9yKFI9Sysoazw8Mil8MCxHPSsoKEQ9MHxhW2Jl''@;'; + put 'put ''KygoTT1rKzF8MCk8PDIpPj4yXSktKGM9MHxhW2JlKyhrPDwyKT4+Ml0pfDApLEE9MTshKCgwfGMpPj0oMHxEKSk7KSgwfGspIT0oMHwobD0wfGFbT2UrKGM8PDIpPj4yXSkpJiYoMHxhW0srKGw8PDIpPj4yXSk9PSgwfGwpJiYoMHxhW1I+PjJdKT09KDB8aykmJihiPStfW2dlKyhjPDwzKT4+''@;'; + put 'put ''M10vKCsoKDB8YVtiZSsobCsxPDwyKT4+Ml0pLSgwfGFbYmUrKGw8PDIpPj4yXSl8MCkqRyksMCE9KDB8QSl8fGI+dz8oQT0wLG09bCx3PWIpOkE9MCksYz1jKzF8MDswfEF8fChhW0srKG08PDIpPj4yXT1rLGFbSysoazw8Mik+PjJdPW0sYVtwPj4yXT0oMHxhW3A+PjJdKS0xKSxrPU19fXdo''@;'; + put 'put ''aWxlKDApfShsLDB8YVtrKzIwPj4yXSxTdCxLKSxudD0yNyk7ZG97aWYoMjc9PSgwfG50KSl7aWYoZj0wfGFbSz4+Ml0sMHxhW2srMjg+PjJdKXtpZigoMHxmKT09KDB8b3QpKXtHPTAsSz0wLGs9MCxSPTAsRD0wLE09MDticmVha319ZWxzZSBpZigoMHxmKT09KDB8b3QpfHwrX1trKzg+PjNd''@;'; + put 'put ''KisoMHxvdCk8KygwfGYpKXtHPTAsSz0wLGs9MCxSPTAsRD0wLE09MDticmVha31pZigoMHxmKT49KDB8YVtrPj4yXSkpe2ZvcihwZT0wfFFuKGdlPW90PDwyKSxnZT0wfFFuKGdlKSxiZT0wfFFuKG90PDwzKSxhW1dlPj4yXT0wLEs9MHxhW1N0Pj4yXSxmPTAsRz0wOyEoKDB8Ryk+PSgwfG90''@;'; + put 'put ''KSk7KSgwfChEPTB8YVsoTT1LKyhHPDwyKXwwKT4+Ml0pKT4tMSYmKGFbcGUrKGFbV2U+PjJdPDwyKT4+Ml09RyxhW2dlKyhhW1dlPj4yXTw8Mik+PjJdPWYsYVtXZT4+Ml09Uj0xKyhudD0wfGFbV2U+PjJdKXwwLF9bYmUrKG50PDwzKT4+M109MSwoMHxEKSE9KDB8RykmJihhW3BlKyhSPDwy''@;'; + put 'put ''KT4+Ml09YVtNPj4yXSxhW2dlKyhhW1dlPj4yXTw8Mik+PjJdPWYsYVtXZT4+Ml09MSsobnQ9MHxhW1dlPj4yXSksX1tiZSsobnQ8PDMpPj4zXT0xLGFbSysoYVtNPj4yXTw8Mik+PjJdPS0xKSxhW00+PjJdPS0xLGY9ZisxfDApLEc9RysxfDA7b3Q9MHxvNCgwfGFbV2U+PjJdLG90LGYscGUs''@;'; + put 'put ''Z2UsYmUsMSw4KSxhW3c+PjJdPW90LG90PTB8V3kob3QpLGFbYj4+Ml09b3Qsdz0wfFk0KG90LGwsMHxhW3c+PjJdKSxhW2M+PjJdPXcsdz8oS2YoMHxhW2I+PjJdLG0sQSwwKSxhW2I+PjJdPTB8VTQoMHxhW2I+PjJdKSxhWyhLPTM2KyhHPTB8YVtjPj4yXSl8MCk+PjJdPTN8YVtLPj4yXSxh''@;'; + put 'put ''W2M+PjJdPTB8d3AoRyksYVtwPj4yXT0wLEc9YmUsSz1nZSxrPXBlLFI9cGUsRD1nZSxNPWJlKTooRz1iZSxLPWdlLGs9cGUsUj1wZSxEPWdlLE09YmUpfWVsc2UgRz0wLEs9MCxrPTAsUj0wLEQ9MCxNPTB9fXdoaWxlKDApOzB8KGY9MHxhW1N0Pj4yXSkmJkZ0KGYpLDB8KGY9MHxhW2t0Pj4y''@;'; + put 'put ''XSkmJkZ0KGYpLDB8ayYmRnQoUiksMHxLJiZGdChEKSwwfEcmJkZ0KE0pLDB8KGY9MHxhW3N0Pj4yXSkmJkZ0KGYpLDB8KGY9MHxhW0V0Pj4yXSkmJkZ0KGYpLGxlPVp0fWZ1bmN0aW9uIEYwKGwsYyxmLHAsbSl7Y3w9MCxwfD0wLG18PTA7dmFyIGJlLEhlLEE9MCx3PTAsYj0wLGs9MCxNPTAs''@;'; + put 'put ''RD0wLFI9MCxHPTAsSz0wLHBlPTAsZ2U9MCxPZT0wLExlPTAsUmU9MDtmb3IoT2U9MHxhWzIwKyhsfD0wKT4+Ml0sTGU9MHxhW2wrMjQ+PjJdLGFbKGZ8PTApPj4yXT0wfFFuKFJlPShIZT0wfGFbbD4+Ml0pPDwyKSxhW3A+PjJdPTB8UW4oUmUrNHwwKSxSZT0wfFFuKFJlKSxBPTA7ISgoMHxB''@;'; + put 'put ''KT49KDB8SGUpKTspYVtSZSsoQTw8Mik+PjJdPUEsQT1BKzF8MDthW20+PjJdPTAsYVsoZ2U9MHxhW3A+PjJdKT4+Ml09MCxiZT0wfGFbbCsyOD4+Ml07ZTpkb3tpZihjKXtmb3IoZ2U9MHxOZChIZSksUj0wLEE9MDs7KXtpZigoMHxSKT49KDB8SGUpKXtwZT0wLGw9MCxiPTA7YnJlYWt9bD0w''@;'; + put 'put ''fGFbZ2UrKFI8PDIpPj4yXTt0OmRve2lmKC0xIT0oMHxhW1JlKyhsPDwyKT4+Ml0pJiYoSz0wfGFbT2UrKGw8PDIpPj4yXSwxPT0oKDB8YVtPZSsobCsxPDwyKT4+Ml0pLUt8MCkpKXtmb3IoYVtSZSsoKGs9MHxhW0xlKyhLPDwyKT4+Ml0pPDwyKT4+Ml09LTEsYVsoTT0wfGFbZj4+Ml0pKyhB''@;'; + put 'put ''PDwyKT4+Ml09ayxEPU9lKyhrKzE8PDIpfDAsdz0wfGFbT2UrKGs8PDIpPj4yXSxBPUErMXwwOyEoKDB8dyk+PSgwfGFbRD4+Ml0pKTspKDB8aykhPSgwfChjPTB8YVsobD1MZSsodzw8Mil8MCk+PjJdKSkmJjE9PSgoMHxhW09lKyhjKzE8PDIpPj4yXSktKDB8YVtPZSsoYzw8Mik+PjJdKXww''@;'; + put 'put ''KSYmKGFbUmUrKGM8PDIpPj4yXT0tMSxhW00rKEE8PDIpPj4yXT1hW2w+PjJdLEE9QSsxfDApLHc9dysxfDA7aWYoKEEtKGM9MHxhWyh3PTB8YVtwPj4yXSkrKChsPTB8YVttPj4yXSk8PDIpPj4yXSl8MCk8NSl7YVttPj4yXT1wZT1sKzF8MCxhW3crKHBlPDwyKT4+Ml09QTticmVha31mb3Io''@;'; + put 'put ''Yz1jKzF8MCxhW20+PjJdPWw9bCsxfDAsYVt3KyhsPDwyKT4+Ml09YyxsPWM7Oyl7aWYoISgoMHxjKTwoMHxBKSYoMHxsKTwoMHxBKSkpYnJlYWsgdDtwZT0oMHxBKTwoMHwocGU9YyszfDApKT9BOnBlLGFbbT4+Ml09RD0xKygwfGFbbT4+Ml0pfDAsYVt3KyhEPDwyKT4+Ml09cGUsbD1sKzF8''@;'; + put 'put ''MCxjPXBlfX19d2hpbGUoMCk7Uj1SKzF8MH1mb3IoOzspe2lmKCgwfHBlKT49KDB8SGUpKXtsPTA7YnJlYWt9aWYoLTEhPSgwfChjPTB8YVsoUj1SZSsoKEQ9MHxhW2dlKyhwZTw8Mik+PjJdKTw8Mil8MCk+PjJdKSkpe2ZvcihLPTB8YVtPZSsoRCsxPDwyKT4+Ml0saz0xLE09MHxhW09lKyhE''@;'; + put 'put ''PDwyKT4+Ml07ISgoMHxNKT49KDB8SykpOykoMHxEKSE9KDB8KHc9MHxhW0xlKyhNPDwyKT4+Ml0pKSYmLTEhPSgwfGFbUmUrKHc8PDIpPj4yXSkmJigtMSE9KDB8Yyk/KEc9K19bYmUrKE08PDMpPj4zXSwwIT0oMHxrKXx8Rz5iPyhrPTAsbD13LGI9Ryk6az0wKTpjPS0xKSxNPU0rMXwwO2t8''@;'; + put 'put ''fChhW1JlKyhsPDwyKT4+Ml09LTEsYVtSPj4yXT0tMSxhWyhSPTB8YVtmPj4yXSkrKEE8PDIpPj4yXT1ELEs9QSsyfDAsYVtSKyhBKzE8PDIpPj4yXT1sLFI9MHxhW3A+PjJdLGFbbT4+Ml09QT0xKygwfGFbbT4+Ml0pfDAsYVtSKyhBPDwyKT4+Ml09SyxBPUspfXBlPXBlKzF8MH1mb3IoOyEo''@;'; + put 'put ''KDB8bCk+PSgwfEhlKSk7KSgwfGFbUmUrKGw8PDIpPj4yXSk9PSgwfGwpJiYoTGU9QSsxfDAsYVsoMHxhW2Y+PjJdKSsoQTw8Mik+PjJdPWwsT2U9MHxhW3A+PjJdLGFbbT4+Ml09QT0xKygwfGFbbT4+Ml0pfDAsYVtPZSsoQTw8Mik+PjJdPUxlLEE9TGUpLGw9bCsxfDA7RnQoZ2UpfWVsc2V7''@;'; + put 'put ''QT0wLGw9MDt0OmZvcig7Oyl7Zm9yKDs7KXtpZigoMHxsKT49KDB8SGUpKXtsPTAsYj0wLGM9MDticmVhayB0fWlmKGM9bCxsPWwrMXwwLC0xIT0oMHxhW1JlKyhjPDwyKT4+Ml0pJiYxPT0oKDB8YVtPZSsobDw8Mik+PjJdKS0oYz0wfGFbT2UrKGM8PDIpPj4yXSl8MCkpYnJlYWt9Zm9yKGFb''@;'; + put 'put ''UmUrKChNPTB8YVtMZSsoYzw8Mik+PjJdKTw8Mik+PjJdPS0xLGFbKEQ9MHxhW2Y+PjJdKSsoQTw8Mik+PjJdPU0sUj1PZSsoTSsxPDwyKXwwLGs9MHxhW09lKyhNPDwyKT4+Ml0sQT1BKzF8MDshKCgwfGspPj0oMHxhW1I+PjJdKSk7KSgwfE0pIT0oMHwodz0wfGFbKGM9TGUrKGs8PDIpfDAp''@;'; + put 'put ''Pj4yXSkpJiYxPT0oKDB8YVtPZSsodysxPDwyKT4+Ml0pLSgwfGFbT2UrKHc8PDIpPj4yXSl8MCkmJihhW1JlKyh3PDwyKT4+Ml09LTEsYVtEKyhBPDwyKT4+Ml09YVtjPj4yXSxBPUErMXwwKSxrPWsrMXwwO2lmKChBLSh3PTB8YVtnZSsoKGM9MHxhW20+PjJdKTw8Mik+PjJdKXwwKTw1KWFb''@;'; + put 'put ''bT4+Ml09cD1jKzF8MCxhW2dlKyhwPDwyKT4+Ml09QTtlbHNlIGZvcih3PXcrMXwwLGFbbT4+Ml09Yz1jKzF8MCxhW2dlKyhjPDwyKT4+Ml09dyxjPXc7Oyl7aWYoISgoMHx3KTwoMHxBKSYoMHxjKTwoMHxBKSkpY29udGludWUgdDtwPSgwfEEpPCgwfChwPXcrM3wwKSk/QTpwLGFbbT4+Ml09''@;'; + put 'put ''cGU9MSsoMHxhW20+PjJdKXwwLGFbZ2UrKHBlPDwyKT4+Ml09cCxjPWMrMXwwLHc9cH19dDpmb3IoOzspe2Rve2ZvcihSPWM7Oyl7aWYoKDB8Uik+PSgwfEhlKSl7bD0wO2JyZWFrIHR9aWYoLTEhPSgwfCh3PTB8YVsoSz1SZSsoUjw8Mil8MCk+PjJdKSkpYnJlYWs7Uj1SKzF8MH1mb3IocGU9''@;'; + put 'put ''MHxhW09lKygoYz1SKzF8MCk8PDIpPj4yXSxNPTEsRD0wfGFbT2UrKFI8PDIpPj4yXTshKCgwfEQpPj0oMHxwZSkpOykoMHxSKSE9KDB8KGs9MHxhW0xlKyhEPDwyKT4+Ml0pKSYmLTEhPSgwfGFbUmUrKGs8PDIpPj4yXSkmJigtMSE9KDB8dyk/KEc9K19bYmUrKEQ8PDMpPj4zXSwwIT0oMHxN''@;'; + put 'put ''KXx8Rz5iPyhNPTAsbD1rLGI9Ryk6TT0wKTp3PS0xKSxEPUQrMXwwfXdoaWxlKDAhPSgwfE0pKTthW1JlKyhsPDwyKT4+Ml09LTEsYVtLPj4yXT0tMSxhWyhwZT0wfGFbZj4+Ml0pKyhBPDwyKT4+Ml09UixwPUErMnwwLGFbcGUrKEErMTw8Mik+PjJdPWwsYVttPj4yXT1wZT0xKygwfGFbbT4+''@;'; + put 'put ''Ml0pfDAsYVtnZSsocGU8PDIpPj4yXT1wLEE9cH1mb3IoOzspe2lmKCgwfGwpPj0oMHxIZSkpYnJlYWsgZTsoMHxhW1JlKyhsPDwyKT4+Ml0pPT0oMHxsKSYmKExlPUErMXwwLGFbKDB8YVtmPj4yXSkrKEE8PDIpPj4yXT1sLGFbbT4+Ml09QT0xKygwfGFbbT4+Ml0pfDAsYVtnZSsoQTw8Mik+''@;'; + put 'put ''PjJdPUxlLEE9TGUpLGw9bCsxfDB9fX13aGlsZSgwKTtGdChSZSl9ZnVuY3Rpb24gSDAobCxjLGYscCxtKXtsfD0wLGN8PTAsZnw9MCxwfD0wLG18PTA7dmFyIGJlLFJlLFZlLHFlLG50LEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAsSz0wLHBlPTAsZ2U9MCxPZT0wLExlPTAsSGU9''@;'; + put 'put ''MDtmb3IobnQ9bGUsbGU9bGUrMTZ8MCxLPW50Kzh8MCxxZT1udCxhWyhWZT1udCs0fDApPj4yXT0wLGFbcWU+PjJdPTAsTGU9MHxhW2wrMjA+PjJdLE9lPTB8YVtsKzI0Pj4yXSxhW2Y+PjJdPTB8UW4oSGU9KFJlPTB8YVtsPj4yXSk8PDIpLGFbcD4+Ml09MHxRbihIZSs0fDApLEhlPTB8UW4o''@;'; + put 'put ''SGUpLEE9MDshKCgwfEEpPj0oMHxSZSkpOylhW0hlKyhBPDwyKT4+Ml09QSxBPUErMXwwOyhmdW5jdGlvbiBBeChsLGMsZixwKXtjfD0wLGZ8PTAscHw9MDt2YXIgRyxPZSxMZSxSZSxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEs9MCxwZT0wLGdlPTAsYmU9MCxIZT0wO2Zvcihw''@;'; + put 'put ''ZT0wfGFbMjArKGx8PTApPj4yXSxnZT0wfGFbbCsyND4+Ml0sRz0wfGFbbD4+Ml0sT2U9MHxRbihiZT0oSGU9MHxhW2wrND4+Ml0pPDwyKSxMZT0wfFFuKGJlKzR8MCksUmU9MHxRbihiZSksYmU9MHxRbihiZSksSz1MZSs0fDAsbD0wOyEoKDB8bCk+PSgwfEhlKSk7KWFbT2UrKGw8PDIpPj4y''@;'; + put 'put ''XT0wLGw9bCsxfDA7Zm9yKGFbSz4+Ml09SGUsbD0wOzspe2lmKCgwfGwpPj0oMHxIZSkpe3c9MSxNPTA7YnJlYWt9YVtSZSsobDw8Mik+PjJdPS0xLGw9bCsxfDB9ZTpmb3IoOyEoKDB8TSk+PSgwfEcpKTspe2ZvcihSPXBlKygoRD1NKzF8MCk8PDIpfDAsbD0wfGFbKEE9cGUrKE08PDIpfDAp''@;'; + put 'put ''Pj4yXTshKCgwfGwpPj0oMHwobT0wfGFbUj4+Ml0pKSk7KWFbKGs9SysoYVtPZSsoYVtnZSsobDw8Mik+PjJdPDwyKT4+Ml08PDIpfDApPj4yXT0oMHxhW2s+PjJdKS0xLGw9bCsxfDA7Zm9yKGw9dyxrPTB8YVtBPj4yXTs7KXtpZigoMHxrKT49KDB8bSkpe3c9bCxNPUQ7Y29udGludWUgZX0o''@;'; + put 'put ''MHxhWyhBPVJlKygoYj0wfGFbKG09T2UrKGFbKHc9Z2UrKGs8PDIpfDApPj4yXTw8Mil8MCk+PjJdKTw8Mil8MCk+PjJdKTwoMHxNKT8oYVtBPj4yXT1NLDB8YVsobT1LKyhiPDwyKXwwKT4+Ml0/KGFbYmUrKGI8PDIpPj4yXT1sLGFbSysobDw8Mik+PjJdPTEsQT1sKzF8MCxtPU9lKyhhW3c+''@;'; + put 'put ''PjJdPDwyKXwwKTooYVttPj4yXT0xLEE9bCxsPWIsbT1iZSsoYjw8Mil8MCksYVttPj4yXT1sLGw9QSk6KGFbbT4+Ml09YVsoYj1iZSsoYjw8Mil8MCk+PjJdLGFbKGI9SysoYVtiPj4yXTw8Mil8MCk+PjJdPTErKDB8YVtiPj4yXSkpLGs9aysxfDAsbT0wfGFbUj4+Ml19fWZvcihhW0xlPj4y''@;'; + put 'put ''XT0wLGw9MCxtPTA7ISgoMHxsKT49KDB8dykpOylhWyhLPUxlKygocGU9bCsxfDApPDwyKXwwKT4+Ml09Z2U9KDB8YVtLPj4yXSkrbXwwLGw9cGUsbT1nZTtmb3IoYVtmPj4yXT1iZSxsPTA7Oyl7aWYoKDB8bCk+PSgwfEhlKSl7bD13O2JyZWFrfWFbKGdlPUxlKyhhW09lKyhsPDwyKT4+Ml08''@;'; + put 'put ''PDIpfDApPj4yXT0xKyhmPTB8YVtnZT4+Ml0pLGFbYmUrKGY8PDIpPj4yXT1sLGw9bCsxfDB9Zm9yKDshKCgwfGwpPD0wKTspYVtMZSsobDw8Mik+PjJdPWFbTGUrKChIZT1sKy0xfDApPDwyKT4+Ml0sbD1IZTthW0xlPj4yXT0wLGFbcD4+Ml09TGUsYVtjPj4yXT13LEZ0KFJlKSxGdChPZSl9''@;'; + put 'put ''KShsLEssVmUscWUpLGFbbT4+Ml09MCxhWyhnZT0wfGFbcD4+Ml0pPj4yXT0wLGJlPTB8YVtsKzI4Pj4yXSxBPTAsbD0wO2U6Zm9yKDs7KXtrPTB8YVtLPj4yXSxNPTB8YVtxZT4+Ml07ZG97aWYoKDB8bCk+PSgwfGspKWJyZWFrIGU7RD1sLGI9MHxhWyhHPU0rKChsPWwrMXwwKTw8Mil8MCk+''@;'; + put 'put ''PjJdLEQ9MHxhW00rKEQ8PDIpPj4yXX13aGlsZSgoYi1EfDApPDIpO2ZvcihNPTB8YVtWZT4+Ml0saz0wfGFbZ2UrKGFbbT4+Ml08PDIpPj4yXTshKCgwfEQpPj0oMHxiKSk7KWFbSGUrKGFbKHBlPU0rKEQ8PDIpfDApPj4yXTw8Mik+PjJdPS0xLGI9QSsxfDAsYVsoMHxhW2Y+PjJdKSsoQTw8''@;'; + put 'put ''Mik+PjJdPWFbcGU+PjJdLChiLWt8MCk+Mz8oYVttPj4yXT1BPTErKDB8YVttPj4yXSl8MCxhW2dlKyhBPDwyKT4+Ml09YixBPWIpOkE9ayxrPUEsRD1EKzF8MCxBPWIsYj0wfGFbRz4+Ml07KDB8QSk8PSgwfGspfHwoYVttPj4yXT1wZT0xKygwfGFbbT4+Ml0pfDAsYVtnZSsocGU8PDIpPj4y''@;'; + put 'put ''XT1BKX1lOmRve2lmKGMpe2ZvcihnZT0wfE5kKFJlKSxwZT0wLGw9MCx3PTA7Oyl7aWYoKDB8cGUpPj0oMHxSZSkpe2w9MDticmVha31pZigtMSE9KDB8KGI9MHxhWyhjPUhlKygoRz0wfGFbZ2UrKHBlPDwyKT4+Ml0pPDwyKXwwKT4+Ml0pKSl7Zm9yKEs9MHxhW0xlKyhHKzE8PDIpPj4yXSxN''@;'; + put 'put ''PTEsRD0wfGFbTGUrKEc8PDIpPj4yXTshKCgwfEQpPj0oMHxLKSk7KSgwfEcpIT0oMHwoaz0wfGFbT2UrKEQ8PDIpPj4yXSkpJiYtMSE9KDB8YVtIZSsoazw8Mik+PjJdKSYmKC0xIT0oMHxiKT8oUj0rX1tiZSsoRDw8Myk+PjNdLDAhPSgwfE0pfHxSPnc/KE09MCxsPWssdz1SKTpNPTApOmI9''@;'; + put 'put ''LTEpLEQ9RCsxfDA7TXx8KGFbSGUrKGw8PDIpPj4yXT0tMSxhW2M+PjJdPS0xLGFbKGM9MHxhW2Y+PjJdKSsoQTw8Mik+PjJdPUcsSz1BKzJ8MCxhW2MrKEErMTw8Mik+PjJdPWwsYz0wfGFbcD4+Ml0sYVttPj4yXT1BPTErKDB8YVttPj4yXSl8MCxhW2MrKEE8PDIpPj4yXT1LLEE9Syl9cGU9''@;'; + put 'put ''cGUrMXwwfWZvcig7ISgoMHxsKT49KDB8UmUpKTspKDB8YVtIZSsobDw8Mik+PjJdKT09KDB8bCkmJihMZT1BKzF8MCxhWygwfGFbZj4+Ml0pKyhBPDwyKT4+Ml09bCxPZT0wfGFbcD4+Ml0sYVttPj4yXT1BPTErKDB8YVttPj4yXSl8MCxhW09lKyhBPDwyKT4+Ml09TGUsQT1MZSksbD1sKzF8''@;'; + put 'put ''MDtGdChnZSl9ZWxzZXtsPTAsdz0wLGI9MDt0OmZvcig7Oyl7ZG97Zm9yKGM9Yjs7KXtpZigoMHxjKT49KDB8UmUpKXtsPTA7YnJlYWsgdH1pZigtMSE9KDB8KGs9MHxhWyhLPUhlKyhjPDwyKXwwKT4+Ml0pKSlicmVhaztjPWMrMXwwfWZvcihwZT0wfGFbTGUrKChiPWMrMXwwKTw8Mik+PjJd''@;'; + put 'put ''LEQ9MSxHPTB8YVtMZSsoYzw8Mik+PjJdOyEoKDB8Ryk+PSgwfHBlKSk7KSgwfGMpIT0oMHwoTT0wfGFbT2UrKEc8PDIpPj4yXSkpJiYtMSE9KDB8YVtIZSsoTTw8Mik+PjJdKSYmKC0xIT0oMHxrKT8oUj0rX1tiZSsoRzw8Myk+PjNdLDAhPSgwfEQpfHxSPnc/KEQ9MCxsPU0sdz1SKTpEPTAp''@;'; + put 'put ''Oms9LTEpLEc9RysxfDB9d2hpbGUoMCE9KDB8RCkpO2FbSGUrKGw8PDIpPj4yXT0tMSxhW0s+PjJdPS0xLGFbKHBlPTB8YVtmPj4yXSkrKEE8PDIpPj4yXT1jLHA9QSsyfDAsYVtwZSsoQSsxPDwyKT4+Ml09bCxhW20+PjJdPXBlPTErKDB8YVttPj4yXSl8MCxhW2dlKyhwZTw8Mik+PjJdPXAs''@;'; + put 'put ''QT1wfWZvcig7Oyl7aWYoKDB8bCk+PSgwfFJlKSlicmVhayBlOygwfGFbSGUrKGw8PDIpPj4yXSk9PSgwfGwpJiYoTGU9QSsxfDAsYVsoMHxhW2Y+PjJdKSsoQTw8Mik+PjJdPWwsYVttPj4yXT1BPTErKDB8YVttPj4yXSl8MCxhW2dlKyhBPDwyKT4+Ml09TGUsQT1MZSksbD1sKzF8MH19fXdo''@;'; + put 'put ''aWxlKDApO0Z0KDB8YVtWZT4+Ml0pLEZ0KDB8YVtxZT4+Ml0pLEZ0KEhlKSxsZT1udH1mdW5jdGlvbiBmMShsLGMsZixwKXtmfD0wLHB8PTA7dmFyIEsscGUsT2UsUmUsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAsZ2U9MCxiZT0wLExlPTA7Zm9yKGdlPTB8YVsyMCsobHw9''@;'; + put 'put ''MCk+PjJdLGJlPTB8YVtsKzI0Pj4yXSxhWyhjfD0wKT4+Ml09MHxRbihMZT0oUmU9MHxhW2w+PjJdKTw8MiksYVtmPj4yXT0wfFFuKExlKzR8MCksTGU9MHxRbihMZSkscGU9MHxRbihSZTw8NCksbT0wOyEoKDB8bSk+PSgwfFJlKSk7KWFbTGUrKG08PDIpPj4yXT1tLG09bSsxfDA7Zm9yKGFb''@;'; + put 'put ''cD4+Ml09MCxhW2FbZj4+Ml0+PjJdPTAsSz0wfGFbbCsyOD4+Ml0sT2U9MHxOZChSZSksbT0wLEQ9MDs7KXtpZigoMHxEKT49KDB8UmUpKXtHPTA7YnJlYWt9bD0wfGFbT2UrKEQ8PDIpPj4yXTtlOmRve2lmKC0xIT0oMHxhW0xlKyhsPDwyKT4+Ml0pJiYoUj0wfGFbZ2UrKGw8PDIpPj4yXSwx''@;'; + put 'put ''PT0oKDB8YVtnZSsobCsxPDwyKT4+Ml0pLVJ8MCkpKXtmb3IoYVtMZSsoKGI9MHxhW2JlKyhSPDwyKT4+Ml0pPDwyKT4+Ml09LTEsYVsoaz0wfGFbYz4+Ml0pKyhtPDwyKT4+Ml09YixNPWdlKyhiKzE8PDIpfDAsdz0wfGFbZ2UrKGI8PDIpPj4yXSxtPW0rMXwwOyEoKDB8dyk+PSgwfGFbTT4+''@;'; + put 'put ''Ml0pKTspKDB8YikhPSgwfChBPTB8YVsobD1iZSsodzw8Mil8MCk+PjJdKSkmJjE9PSgoMHxhW2dlKyhBKzE8PDIpPj4yXSktKDB8YVtnZSsoQTw8Mik+PjJdKXwwKSYmKGFbTGUrKEE8PDIpPj4yXT0tMSxhW2srKG08PDIpPj4yXT1hW2w+PjJdLG09bSsxfDApLHc9dysxfDA7aWYoKG0tKEE9''@;'; + put 'put ''MHxhWyh3PTB8YVtmPj4yXSkrKChsPTB8YVtwPj4yXSk8PDIpPj4yXSl8MCk8NSl7YVtwPj4yXT1HPWwrMXwwLGFbdysoRzw8Mik+PjJdPW07YnJlYWt9Zm9yKEE9QSsxfDAsYVtwPj4yXT1sPWwrMXwwLGFbdysobDw8Mik+PjJdPUEsbD1BOzspe2lmKCEoKDB8QSk8KDB8bSkmKDB8bCk8KDB8''@;'; + put 'put ''bSkpKWJyZWFrIGU7Rz0oMHxtKTwoMHwoRz1BKzN8MCkpP206RyxhW3A+PjJdPU09MSsoMHxhW3A+PjJdKXwwLGFbdysoTTw8Mik+PjJdPUcsbD1sKzF8MCxBPUd9fX13aGlsZSgwKTtEPUQrMXwwfWZvcig7Oyl7aWYoKDB8Ryk+PSgwfFJlKSl7bD0wO2JyZWFrfWlmKC0xIT0oMHwobD0wfGFb''@;'; + put 'put ''KFI9TGUrKChEPTB8YVtPZSsoRzw8Mik+PjJdKTw8Mil8MCk+PjJdKSkpe2ZvcihNPTB8YVtnZSsoRCsxPDwyKT4+Ml0sQT0wLGs9MHxhW2dlKyhEPDwyKT4+Ml07ISgoMHxrKT49KDB8TSkpOykoMHxEKSE9KDB8KGI9MHxhW2JlKyhrPDwyKT4+Ml0pKSYmLTEhPSgwfGFbTGUrKGI8PDIpPj4y''@;'; + put 'put ''XSkmJih3PUE8PDEsLTE9PSgwfGwpP2w9LTE6KF9bcGUrKHc8PDMpPj4zXT0rKDB8YiksX1twZSsoKDF8dyk8PDMpPj4zXT0rX1tLKyhrPDwzKT4+M10sQT1BKzF8MCkpLGs9aysxfDA7aWYoKDB8QSk+MCl7Zm9yKHgxKHBlLEEsMTYsODEpLEE9KDB8QSk8Mz9BOjMsbD0wOyEoKDB8bCk+PSgw''@;'; + put 'put ''fEEpKTspYVtMZSsoKE09fn4rX1twZSsobDw8MTw8Myk+PjNdKTw8Mik+PjJdPS0xLGFbKDB8YVtjPj4yXSkrKG08PDIpPj4yXT1NLGw9bCsxfDAsbT1tKzF8MDthW1I+PjJdPS0xLFI9bSsxfDAsYVsoMHxhW2M+PjJdKSsobTw8Mik+PjJdPUQsRD0wfGFbZj4+Ml0sYVtwPj4yXT1tPTErKDB8''@;'; + put 'put ''YVtwPj4yXSl8MCxhW0QrKG08PDIpPj4yXT1SLG09Un19Rz1HKzF8MH1mb3IoOyEoKDB8bCk+PSgwfFJlKSk7KSgwfGFbTGUrKGw8PDIpPj4yXSk9PSgwfGwpJiYoYmU9bSsxfDAsYVsoMHxhW2M+PjJdKSsobTw8Mik+PjJdPWwsZ2U9MHxhW2Y+PjJdLGFbcD4+Ml09bT0xKygwfGFbcD4+Ml0p''@;'; + put 'put ''fDAsYVtnZSsobTw8Mik+PjJdPWJlLG09YmUpLGw9bCsxfDA7RnQoT2UpLEZ0KExlKX1mdW5jdGlvbiBiaShsLGMsZixwKXtjfD0wLGZ8PTAscHw9MDt2YXIgTSxwZSxnZSxiZSxtPTAsQT0wLHc9MCxiPTAsaz0wLEQ9MCxSPTAsRz0wLEs9MDtmb3IocGU9MHxhWzIwKyhsfD0wKT4+Ml0sZ2U9''@;'; + put 'put ''MHxhW2wrMjQ+PjJdLG09MHxhW2wrND4+Ml0sTT0wfFFuKChiZT0wfGFbbD4+Ml0pPDwyKSxhW2Y+PjJdPU0sbD0wOyEoKDB8bCk+PSgwfGJlKSk7KWFbTSsobDw8Mik+PjJdPWwsbD1sKzF8MDthW3A+PjJdPW07ZTpkb3tpZihjKXtmb3IoYz0wfE5kKGJlKSxsPTA7ISgoMHxsKT49KDB8YmUp''@;'; + put 'put ''KTspe2Zvcih3PXBlKygxKyhBPTB8YVtjKyhsPDwyKT4+Ml0pPDwyKXwwLG09MHxhW3BlKyhBPDwyKT4+Ml07ISgoMHxtKT49KDB8YVt3Pj4yXSkpOykoMHxBKSE9KDB8KGs9MHxhWyhiPWdlKyhtPDwyKXwwKT4+Ml0pKSYmKDB8YVsoUj0oRD0wfGFbZj4+Ml0pKyhrPDwyKXwwKT4+Ml0pPT0o''@;'; + put 'put ''MHxrKSYmKDB8YVsoRz1EKyhBPDwyKXwwKT4+Ml0pPT0oMHxBKSYmKGFbUj4+Ml09QSxhW0c+PjJdPWFbYj4+Ml0sYVtwPj4yXT0oMHxhW3A+PjJdKS0xKSxtPW0rMXwwO2w9bCsxfDB9RnQoYyl9ZWxzZXttPTA7dDpmb3IoOzspe2lmKCgwfG0pPj0oMHxiZSkpYnJlYWsgZTtmb3IoQT1wZSso''@;'; + put 'put ''KGM9bSsxfDApPDwyKXwwLHc9TSsobTw8Mil8MCxiPU0rKG08PDIpfDAsbD0wfGFbcGUrKG08PDIpPj4yXTs7KXtpZigoMHxsKT49KDB8YVtBPj4yXSkpe209Yztjb250aW51ZSB0fSgwfG0pIT0oMHwoZj0wfGFbKGs9Z2UrKGw8PDIpfDApPj4yXSkpJiYoMHxhWyhLPU0rKGY8PDIpfDApPj4y''@;'; + put 'put ''XSk9PSgwfGYpJiYoMHxhW3c+PjJdKT09KDB8bSkmJihhW0s+PjJdPW0sYVtiPj4yXT1hW2s+PjJdLGFbcD4+Ml09KDB8YVtwPj4yXSktMSksbD1sKzF8MH19fX13aGlsZSgwKX1mdW5jdGlvbiBWbShsLGMsZixwKXtjfD0wLGZ8PTAscHw9MDt2YXIgcGUsZ2UsYmUsT2UsbT0wLEE9MCx3PTAs''@;'; + put 'put ''Yj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAsSz0wO2ZvcihnZT0wfGFbMjArKGx8PTApPj4yXSxiZT0wfGFbbCsyND4+Ml0sQT0wfGFbbCs0Pj4yXSxHPTB8UW4oKE9lPTB8YVtsPj4yXSk8PDIpLGFbZj4+Ml09RyxtPTA7ISgoMHxtKT49KDB8T2UpKTspYVtHKyhtPDwyKT4+Ml09bSxtPW0rMXww''@;'; + put 'put ''O2FbcD4+Ml09QSxwZT0wfGFbbCsyOD4+Ml07ZTpkb3tpZihjKXtmb3IoSz0wfE5kKE9lKSxHPTAsbT0wLHc9MDshKCgwfEcpPj0oMHxPZSkpOyl7aWYoKDB8YVsoRD0oTT0wfGFbZj4+Ml0pKygoaz0wfGFbSysoRzw8Mik+PjJdKTw8Mil8MCk+PjJdKT09KDB8aykpe2ZvcihSPTB8YVtnZSso''@;'; + put 'put ''aysxPDwyKT4+Ml0sYz0wfGFbZ2UrKGs8PDIpPj4yXSxBPTE7ISgoMHxjKT49KDB8UikpOykoMHxrKSE9KDB8KGw9MHxhW2JlKyhjPDwyKT4+Ml0pKSYmKDB8YVtNKyhsPDwyKT4+Ml0pPT0oMHxsKSYmKGI9K19bcGUrKGM8PDMpPj4zXSwwIT0oMHxBKXx8Yj53PyhBPTAsbT1sLHc9Yik6QT0w''@;'; + put 'put ''KSxjPWMrMXwwO0F8fChhW00rKG08PDIpPj4yXT1rLGFbRD4+Ml09bSxhW3A+PjJdPSgwfGFbcD4+Ml0pLTEpfUc9RysxfDB9RnQoSyl9ZWxzZSBmb3IobT0wLHc9MCxrPTA7Oyl7aWYoKDB8ayk+PSgwfE9lKSlicmVhayBlO2ZvcihEPTB8YVtnZSsoKE09aysxfDApPDwyKT4+Ml0sUj1HKyhr''@;'; + put 'put ''PDwyKXwwLEE9MSxjPTB8YVtnZSsoazw8Mik+PjJdOyEoKDB8Yyk+PSgwfEQpKTspKDB8aykhPSgwfChsPTB8YVtiZSsoYzw8Mik+PjJdKSkmJigwfGFbRysobDw8Mik+PjJdKT09KDB8bCkmJigwfGFbUj4+Ml0pPT0oMHxrKSYmKGI9K19bcGUrKGM8PDMpPj4zXSwwIT0oMHxBKXx8Yj53PyhB''@;'; + put 'put ''PTAsbT1sLHc9Yik6QT0wKSxjPWMrMXwwOzB8QXx8KGFbRysobTw8Mik+PjJdPWssYVtHKyhrPDwyKT4+Ml09bSxhW3A+PjJdPSgwfGFbcD4+Ml0pLTEpLGs9TX19d2hpbGUoMCl9ZnVuY3Rpb24gSF8obCxjLGYscCxtKXtjfD0wLGZ8PTAscHw9MCxtfD0wO3ZhciBELFIsRyxBPTAsdz0wLGI9''@;'; + put 'put ''MCxrPTAsTT0wO2ZvcihSPTB8YVsyMCsobHw9MCk+PjJdLEc9MHxhW2wrMjQ+PjJdLGs9MHxRbigoRD0wfGFbbD4+Ml0pPDwyKSxhW2Y+PjJdPWssbD0wOyEoKDB8bCk+PSgwfEQpKTspYVtrKyhsPDwyKT4+Ml09LTEwMCxsPWwrMXwwO2FbcD4+Ml09MCxhW20+PjJdPTA7ZTpkb3tpZihjKXtm''@;'; + put 'put ''b3IoYj0wfE5kKEQpLHc9MDshKCgwfHcpPj0oMHxEKSk7KXtsPShNPTB8YVtmPj4yXSkrKChrPTB8YVtiKyh3PDwyKT4+Ml0pPDwyKXwwO3Q6ZG97aWYoLTEwMD09KDB8YVtsPj4yXSkpZm9yKGM9MHxhW3A+PjJdLGFbcD4+Ml09YysxLGFbbD4+Ml09YyxjPVIrKGsrMTw8Mil8MCxsPTB8YVtS''@;'; + put 'put ''KyhrPDwyKT4+Ml07Oyl7aWYoKDB8bCk+PSgwfGFbYz4+Ml0pKWJyZWFrIHQ7KDB8aykhPSgwfChBPTB8YVtHKyhsPDwyKT4+Ml0pKSYmKGFbTSsoQTw8Mik+PjJdPS0xLGFbbT4+Ml09MSsoMHxhW20+PjJdKSksbD1sKzF8MH19d2hpbGUoMCk7dz13KzF8MH1GdChiKX1lbHNle2M9MDt0OmZv''@;'; + put 'put ''cig7Oyl7aWYoKDB8Yyk+PSgwfEQpKWJyZWFrIGU7aWYoLTEwMD09KDB8YVtrKyhjPDwyKT4+Ml0pKWZvcihhW3A+PjJdPTErKEE9MHxhW3A+PjJdKSxhW2srKGM8PDIpPj4yXT1BLHc9UisoKEE9YysxfDApPDwyKXwwLGw9MHxhW1IrKGM8PDIpPj4yXTs7KXtpZigoMHxsKT49KDB8YVt3Pj4y''@;'; + put 'put ''XSkpe2M9QTtjb250aW51ZSB0fSgwfGMpIT0oMHwoYj0wfGFbRysobDw8Mik+PjJdKSkmJihhW2srKGI8PDIpPj4yXT0tMSxhW20+PjJdPTErKDB8YVttPj4yXSkpLGw9bCsxfDB9ZWxzZSBjPWMrMXwwfX19d2hpbGUoMCk7YVttPj4yXT0oMHxhW20+PjJdKSsoMHxhW3A+PjJdKX1mdW5jdGlv''@;'; + put 'put ''biBHbihsLGMsZixwLG0pe2N8PTAsZnw9MCxwfD0wLG18PTA7dmFyIE0sRCxSLEcsSyxwZSxBPTAsdz0wLGI9MCxrPTA7Zm9yKHBlPWxlLGxlPWxlKzE2fDAsUj1wZSs0fDAsRz1wZSxLPTB8YVsyMCsobHw9MCk+PjJdLEQ9MHxhW2wrMjQ+PjJdLGw9MHxRbigodz0wfGFbbD4+Ml0pPDwyKSxh''@;'; + put 'put ''W2Y+PjJdPWwsQT0wO2FbUj4+Ml09QSwhKCgwfEEpPj0oMHx3KSk7KWFbbCsoQTw8Mik+PjJdPS0xMDAsQT0xKygwfGFbUj4+Ml0pfDA7YVtwPj4yXT0wLGFbbT4+Ml09MCxNPTB8ZnVuY3Rpb24gSnQobCxjKXtsfD0wLGN8PTA7dmFyIG0sZj0wLHA9MDtmb3IobT0wfFFuKDI4KSxhW20+PjJd''@;'; + put 'put ''PTAsYVttKzQ+PjJdPWwsYVttKzg+PjJdPWMsYVttKzEyPj4yXT0tMSxhWyhwPW0rMTZ8MCk+PjJdPTB8UW4oNCsoYzw8Mil8MCksZj0wOyEoKDB8Zik+KDB8YykpOylhWygwfGFbcD4+Ml0pKyhmPDwyKT4+Ml09MCxmPWYrMXwwO2ZvcihhWyhwPW0rMjB8MCk+PjJdPTB8UW4oYz00KyhsPDwy''@;'; + put 'put ''KXwwKSxmPTA7ISgoMHxmKT4oMHxsKSk7KWFbKDB8YVtwPj4yXSkrKGY8PDIpPj4yXT0wLGY9ZisxfDA7Zm9yKGM9MHxRbihjKSxhW20rMjQ+PjJdPWMsZj0wOyEoKDB8Zik+KDB8bCkpOylhW2MrKGY8PDIpPj4yXT0tOTk5LGY9ZisxfDA7cmV0dXJuIDB8bX0odywodzw8MSktMnwwKTtlOmRv''@;'; + put 'put ''e2lmKGMpe2ZvcihBPTB8TmQodyksbD0wOyEoKDB8bCk+PSgwfHcpKTspYVtSPj4yXT1rPTB8YVtBKyhsPDwyKT4+Ml0sSzAoTSxrLCgwfGFbSysoaysxPDwyKT4+Ml0pLSgwfGFbSysoazw8Mik+PjJdKXwwKSxsPWwrMXwwO0Z0KEEpfWVsc2UgZm9yKGw9MDs7KXtpZihhW1I+PjJdPWwsKDB8''@;'; + put 'put ''bCk+PSgwfHcpKWJyZWFrIGU7SzAoTSxsLCgwfGFbSysoKGs9bCsxfDApPDwyKT4+Ml0pLSgwfGFbSysobDw8Mik+PjJdKXwwKSxsPWt9fXdoaWxlKDApO2U6Zm9yKDtrPTA9PSgwfE5pKE0sUixHKSksbD0wfGFbcD4+Ml0sIWs7KWZvcihhW3A+PjJdPWwrMSxhWygwfGFbZj4+Ml0pKyhhW1I+''@;'; + put 'put ''PjJdPDwyKT4+Ml09bCxsPTB8YVtSPj4yXSxrPTB8YVtLKyhsPDwyKT4+Ml07Oyl7aWYoKDB8ayk+PSgwfGFbSysobCsxPDwyKT4+Ml0pKWNvbnRpbnVlIGU7aWYoKDB8bCkhPSgwfChiPTB8YVtEKyhrPDwyKT4+Ml0pKSl7dDpkb3tpZigtMTAwPT0oMHxhWygwfGFbZj4+Ml0pKyhiPDwyKT4+''@;'; + put 'put ''Ml0pKWZvcihabShNLGIpLGFbKDB8YVtmPj4yXSkrKGI8PDIpPj4yXT0tMSxBPUsrKGIrMTw8Mil8MCxsPTB8YVtLKyhiPDwyKT4+Ml07Oyl7aWYoKDB8bCk+PSgwfGFbQT4+Ml0pKWJyZWFrIHQ7KDB8YikhPSgwfCh3PTB8YVsoYz1EKyhsPDwyKXwwKT4+Ml0pKSYmLTEwMD09KDB8YVsoMHxh''@;'; + put 'put ''W2Y+PjJdKSsodzw8Mik+PjJdKSYmKHc9MHxJNihNLHcpLGFbRz4+Ml09dyxLMChNLDB8YVtjPj4yXSx3KzF8MCkpLGw9bCsxfDB9fXdoaWxlKDApO2FbbT4+Ml09MSsoMHxhW20+PjJdKSxsPTB8YVtSPj4yXX1rPWsrMXwwfWFbbT4+Ml09KDB8YVttPj4yXSkrbCxmdW5jdGlvbiBsUChsKXt2''@;'; + put 'put ''YXIgYz0wLGY9MCxwPTAsbT0wO2lmKDB8KGx8PTApKXtpZigwfChjPTB8YVsocD1sKzE2fDApPj4yXSkpe2ZvcihtPWwrOHwwLGY9MDshKCgwfGYpPigwfGFbbT4+Ml0pKTspamkoMHxhW2MrKGY8PDIpPj4yXSwxMDUpLGY9ZisxfDAsYz0wfGFbcD4+Ml07RnQoYyl9MHwoYz0wfGFbbCsyMD4+''@;'; + put 'put ''Ml0pJiZGdChjKSxGdCgwfGFbbCsyND4+Ml0pLEZ0KGwpfX0oTSksbGU9cGV9ZnVuY3Rpb24gYVAobCxjLGYscCl7Y3w9MCxmfD0wLHB8PTA7dmFyIG07bT0wIT0oMHxsaChsfD0wLDApKSYmMT09KDB8YVtsKzE2Pj4yXSk/bDowfEE1KGwpO2Rve2lmKGMpe2lmKDB8bGgoYywwKSYmMT09KDB8''@;'; + put 'put ''YVtjKzE2Pj4yXSkpYnJlYWs7Yz0wfEprKGMsMCl9ZWxzZSBjPTB9d2hpbGUoMCk7cmV0dXJuIGM9MHxqbShmPTB8Vl8obSxjLGYpLHApLCgwfG0pIT0oMHxsKSYmKGFbZiszNj4+Ml09MSksMHxjfWZ1bmN0aW9uIFZfKGwsYyxmKXtjfD0wLGZ8PTA7dmFyIHA9MDtyZXR1cm4obHw9MCk/KHA9''@;'; + put 'put ''MHxRbig0NCksYVtwPj4yXT0wLGFbcCs0Pj4yXT1hW2wrND4+Ml0sYVtwKzg+PjJdPWwsYVtwKzEyPj4yXT1jLGFbcCsxNj4+Ml09MCxhW3ArMjA+PjJdPTAsYVtwKzI0Pj4yXT1mLGFbcCsyOD4+Ml09MCxhW3ArMzI+PjJdPTAsYVtwKzM2Pj4yXT0wLGw9cCk6bD0wLDB8bH1mdW5jdGlvbiBq''@;'; + put 'put ''bShsLGMpe2x8PTAsY3w9MDt2YXIgcCxtLEEsdyxNLGY9MCxiPTAsaz0wO3JldHVybiBNPWxlLGxlPWxlKzMyfDAscD1NKzIwfDAsQT1NKzEyfDAsdz1NKzh8MCxiPU0rNHwwLGs9TSxhWyhtPU0rMTZ8MCk+PjJdPTAsKDB8YVtsPj4yXSk8KCgwfGFbYysxNj4+Ml0pLTF8MCkmJihmdW5jdGlv''@;'; + put 'put ''biBDcihsLGMsZixwLG0sQSx3LGIsayxNKXt2YXIgRCxSLEcsSyxwZSxnZSxiZSxPZSxMZTtjfD0wLGZ8PTAscHw9MCxtfD0wLEF8PTAsd3w9MCxifD0wLGt8PTAsTXw9MCxMZT1sZSxsZT1sZSszMnwwLFI9TGUrMTJ8MCxHPUxlKzh8MCxLPUxlKzR8MCxwZT1MZSxhWyhEPUxlKzE2fDApPj4y''@;'; + put 'put ''XT1sfD0wLGFbUj4+Ml09MCxhW0c+PjJdPTAsYVtLPj4yXT0wLGFbcGU+PjJdPTAsYVt3Pj4yXT0wLGFbYj4+Ml09MCxhW2M+PjJdPTAsYVtBPj4yXT0wLGFbcD4+Ml09MCxnZT1rKzI4fDAsYmU9ays4fDAsT2U9KygwfGFbbCs0Pj4yXSksbT1mO2Rve2lmKHc1KGwsRCxtLFIsMCxwZSxHLEss''@;'; + put 'put ''ayxNKSwhKChtPTB8YVtEPj4yXSkmJihmPTB8YVttKzQ+PjJdLG09MHxhW3c+PjJdLG0/KGw9MHxUNihtLDB8YVtHPj4yXSksUmEoMHxhW3c+PjJdKSxSYSgwfGFbRz4+Ml0pLGFbdz4+Ml09bCxsPTB8VDYoMHxhW0s+PjJdLDB8YVtiPj4yXSksUmEoMHxhW2I+PjJdKSxSYSgwfGFbSz4+Ml0p''@;'; + put 'put ''LGFbYj4+Ml09bCk6KGFbdz4+Ml09YVtHPj4yXSxhW2I+PjJdPWFbSz4+Ml0pLG09MHxhW2M+PjJdLDB8bSYmUmEobSksYVtjPj4yXT1hW0Q+PjJdLG09MHxhW3A+PjJdLDB8bSYmUmEobSksbT0wfGFbUj4+Ml0sYVtwPj4yXT1tLGw9MHxhW0E+PjJdLGwmJihGdChsKSxtPTB8YVtSPj4yXSks''@;'; + put 'put ''YVtBPj4yXT1hW3BlPj4yXSxsPTB8YVtEPj4yXSxhW3BlPj4yXT0wLCtfW2JlPj4zXSpPZTwrKDB8ZikpKSlicmVha313aGlsZSgxPT0oMHxhW2dlPj4yXSkpO2xlPUxlfSgwfGFbbCs4Pj4yXSxiLDB8YVtsKzEyPj4yXSxrLDAsbSxBLHcsYyxwKSwwfChmPTB8YVtiPj4yXSkpJiYoaz0wfFZf''@;'; + put 'put ''KGYsYj0wfGFbaz4+Ml0sMHxhW20+PjJdKSxhW2wrMjg+PjJdPWssYVtrKzQwPj4yXT1hW3A+PjJdLGFbaz4+Ml09MSsoMHxhW2w+PjJdKSxhW2srND4+Ml09YVtmPj4yXSxhW2srOD4+Ml09ZixhW2srMTI+PjJdPWIsYVtrKzE2Pj4yXT1hW0E+PjJdLGFbbCsyMD4+Ml09YVt3Pj4yXSxhW2sr''@;'; + put 'put ''MzI+PjJdPWwsam0oayxjKSksbGU9TSwwfGx9ZnVuY3Rpb24gX0EobCl7bHw9MDtmb3IodmFyIGM9MDtjPTB8YVtsKzI4Pj4yXTspbD1jO3JldHVybiAwfGx9ZnVuY3Rpb24gSzAobCxjLGYpe2N8PTAsZnw9MDt2YXIgQSxiLGssTSxwPTAsbT0wLHc9MCxEPTA7Zm9yKEE9OCsobHw9MCl8MCxr''@;'; + put 'put ''PWwrMjB8MCxiPWwrMjR8MCxNPWwrMTZ8MCxsfHxQcigxMzg5NTMsOTU3NDMsNjksOTU3NTkpOzspe2lmKCgwfGFbQT4+Ml0pPCgwfGYpKXt3PTQ7YnJlYWt9aWYoIShtPTB8YVsocD0oMHxhW2s+PjJdKSsoYzw8Mil8MCk+PjJdKSlicmVhaztEPTB8YVsoMHxhW2I+PjJdKSsoYzw8Mik+PjJd''@;'; + put 'put ''LGFbcD4+Ml09MCxhW2w+PjJdPSgwfGFbbD4+Ml0pLTEsa2YobSwxMDUsKDB8YVtNPj4yXSkrKEQ8PDIpfDApfXJldHVybiA0PT0oMHx3KSYmUHIoOTU3NzgsOTU3NDMsNzAsOTU3NTkpLGFbbD4+Ml09MSsoMHxhW2w+PjJdKSwoMHxhWyhwPWwrMTJ8MCk+PjJdKTwoMHxmKSYmKGFbcD4+Ml09''@;'; + put 'put ''ZiksYVsoMHxhW2I+PjJdKSsoYzw8Mik+PjJdPWYscD0wfFFuKDQpLGFbcD4+Ml09YyxwPShtPTB8YVsoMHxhW00+PjJdKSsoZjw8Mik+PjJdKT8wfGZ1bmN0aW9uIEppKGwsYyl7cmV0dXJuIGx8PTAsYz0wfFl0KGN8PTApLDB8bCYmKGFbYys0Pj4yXT1sLGFbbCs4Pj4yXT1jKSwwfGN9KG0s''@;'; + put 'put ''cCk6MHxZdChwKSxhWygwfGFbaz4+Ml0pKyhjPDwyKT4+Ml09cCxhWygwfGFbTT4+Ml0pKyhmPDwyKT4+Ml09cCwwfGx9ZnVuY3Rpb24gTmkobCxjLGYpe2N8PTAsZnw9MDt2YXIgcD0wLG09MCxBPTA7aWYoMCE9KDB8KGx8PTApKSYmKDB8YVtsPj4yXSk+PTEpe2lmKGFbZj4+Ml09cD0wfGFb''@;'; + put 'put ''KG09bCsxMnwwKT4+Ml0sYVtsPj4yXT0oMHxhW2w+PjJdKS0xLGFbYz4+Ml09YVsoMHxmdW5jdGlvbiBGaChsKXtyZXR1cm4gMHxhWyhsfD0wKT4+Ml19KEE9MHxhWygwfGFbKGY9bCsxNnwwKT4+Ml0pKyhwPDwyKT4+Ml0pKT4+Ml0sa2YoQSwxMDUsKDB8YVtmPj4yXSkrKHA8PDIpfDApLCEo''@;'; + put 'put ''MHxhWyhmPTB8YVtmPj4yXSkrKHA8PDIpPj4yXSkpe2Zvcig7ISgoMHxwKTw9LTF8fDB8YVtmKyhwPDwyKT4+Ml0pOylwPXArLTF8MDthW20+PjJdPXB9YVsoMHxhW2wrMjA+PjJdKSsoKHA9MHxhW2M+PjJdKTw8Mik+PjJdPTAsYVsoMHxhW2wrMjQ+PjJdKSsocDw8Mik+PjJdPS05OTkscD0x''@;'; + put 'put ''fWVsc2UgcD0wO3JldHVybiAwfHB9ZnVuY3Rpb24gSTYobCxjKXtyZXR1cm4gMHxhWygwfGFbMjQrKGx8PTApPj4yXSkrKChjfD0wKTw8Mik+PjJdfWZ1bmN0aW9uIFptKGwsYyl7Y3w9MDt2YXIgZj0wLHA9MCxtPTAsQT0wLHc9MDtpZigwIT0oMHwobHw9MCkpJiYoMHwocD0wfGFbbD4+Ml0p''@;'; + put 'put ''KT49MSl7aWYoZj0wfGFbKDB8YVsodz1sKzI0fDApPj4yXSkrKGM8PDIpPj4yXSxhW2w+PjJdPXArLTEsa2YoMHxhWygwfGFbKG09bCsyMHwwKT4+Ml0pKyhjPDwyKT4+Ml0sMTA1LCgwfGFbKHA9bCsxNnwwKT4+Ml0pKyhmPDwyKXwwKSwoMHxmKT09KDB8YVsobD1sKzEyfDApPj4yXSkmJjA9''@;'; + put 'put ''PSgwfGFbKEE9MHxhW3A+PjJdKSsoZjw8Mik+PjJdKSl7Zm9yKDshKCgwfGYpPD0tMXx8MHxhW0ErKGY8PDIpPj4yXSk7KWY9ZistMXwwO2FbbD4+Ml09Zn1hWygwfGFbbT4+Ml0pKyhjPDwyKT4+Ml09MCxhWygwfGFbdz4+Ml0pKyhjPDwyKT4+Ml09LTk5OSxmPTF9ZWxzZSBmPTA7cmV0dXJu''@;'; + put 'put ''IDB8Zn1mdW5jdGlvbiBqXyhsLGMsZil7Y3w9MCxmfD0wO3ZhciBnZSxIZSxWZSxxZSxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAsSz0wLHBlPTAsYmU9MCxPZT0wLExlPTAsUmU9MDtmb3IoMHxsaChsfD0wLDApfHxQcig5NTc5NSw5NTgzMSwyNjAsOTU4NDYpLEhl''@;'; + put 'put ''PTB8dHYobCksVmU9MHxhW0hlKzIwPj4yXSxxZT0wfGFbSGUrMjQ+PjJdLGw9SGUrMjh8MCwxPT0oMHxhWyhwPUhlKzE2fDApPj4yXSk/UmU9MHxhW2w+PjJdOihGdCgwfGFbbD4+Ml0pLGFbcD4+Ml09MSxSZT0wfFFuKGFbSGUrOD4+Ml08PDMpLGFbbD4+Ml09UmUpLGdlPTB8UW4oYVtIZT4+''@;'; + put 'put ''Ml08PDIpLGw9MDs7KXtpZigoMHxsKT49KDB8KHA9MHxhW0hlPj4yXSkpKXtwZT0wLGw9cDticmVha31hW2dlKyhsPDwyKT4+Ml09LTEsbD1sKzF8MH1lOmZvcig7Oyl7aWYoKDB8cGUpPj0oMHxsKSl7QT0wLGs9MCxtPTAsTGU9MCxPZT1sO2JyZWFrfWZvcihiPSgwfGFbKHc9VmUrKChLPXBl''@;'; + put 'put ''KzF8MCk8PDIpfDApPj4yXSktKDB8YVsoRD1WZSsocGU8PDIpfDApPj4yXSl8MCxhW2dlKyhwZTw8Mik+PjJdPXBlLHA9MHxhW0Q+PjJdOyEoKDB8cCk+PSgwfChHPTB8YVt3Pj4yXSkpKTspKDB8cGUpIT0oMHwobD0wfGFbcWUrKHA8PDIpPj4yXSkpJiYoYVtnZSsobDw8Mik+PjJdPXBlKSxw''@;'; + put 'put ''PXArMXwwO2ZvcihSPSsoMHxiKSxwPTB8YVtEPj4yXTshKCgwfHApPj0oMHxHKSk7KXtpZigoMHxwZSkhPSgwfChsPTB8YVtxZSsocDw8Mik+PjJdKSkpe2ZvcihNPSsoKHc9MHxhW1ZlKyhsKzE8PDIpPj4yXSktKGw9MHxhW1ZlKyhsPDwyKT4+Ml0pfDApK1I7ISgoMHxsKT49KDB8dykpOylN''@;'; + put 'put ''PSgwfGFbZ2UrKGFbcWUrKGw8PDIpPj4yXTw8Mik+PjJdKT09KDB8cGUpP00rLTE6TSxsPWwrMXwwO2lmKF9bUmUrKHA8PDMpPj4zXT1NLCEoTT4wKSl7YmU9MjM7YnJlYWsgZX19cD1wKzF8MH1wZT1LLGw9MHxhW0hlPj4yXX1mb3IoMjM9PSgwfGJlKSYmUHIoOTU4NjgsOTU4MzEsMjkwLDk1''@;'; + put 'put ''ODQ2KTshKCgwfExlKT49KDB8T2UpKTspe2ZvcihiPVZlKygodz1MZSsxfDApPDwyKXwwLHA9MHxhW1ZlKyhMZTw8Mik+PjJdOyEoKDB8cCk+PSgwfGFbYj4+Ml0pKTspKDB8TGUpPT0oMHwobD0wfGFbcWUrKHA8PDIpPj4yXSkpP2w9bTooaz0rX2MoZixjLExlLGwpK2ssQT0rX1tSZSsocDw8''@;'; + put 'put ''Myk+PjNdK0EsbD1tKzF8MCksbT1sLHA9cCsxfDA7TGU9dyxPZT0wfGFbSGU+PjJdfUE9ay8oQS8oUj0rKDB8bSkpKlIpLGw9MDtlOmZvcig7ISgoMHxsKT49KDB8T2UpKTspZm9yKHc9bCsxfDAsYj0wfGFbVmUrKHc8PDIpPj4yXSxwPTB8YVtWZSsobDw8Mik+PjJdOzspe2lmKCgwfHApPj0o''@;'; + put 'put ''MHxiKSl7bD13O2NvbnRpbnVlIGV9bT1SZSsocDw8Myl8MCwoMHxsKSE9KDB8YVtxZSsocDw8Mik+PjJdKSYmKF9bbT4+M109K19bbT4+M10qQSkscD1wKzF8MH1yZXR1cm4gMHxIZX1mdW5jdGlvbiBreChsLGMsZixwLG0pe2N8PTAsZj0rZixwfD0wLG18PTA7dmFyIGt0LHN0LEV0LFp0LGN0''@;'; + put 'put ''LGFuLFNuLHVyLEhyLEVyLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAsSz0wLHBlPTAsZ2U9MCxiZT0wLE9lPTAsTGU9MCxSZT0wLEhlPTAsVmU9MCxxZT0wLG50PTAsV2U9MCxvdD0wLFN0PTAsYnQ9MCxIbj0wLGZyPTAsRHI9MDtmb3IoYW49MHxhWyhsfD0wKT4+Ml0sU249MHxh''@;'; + put 'put ''W2wrMjA+PjJdLEhuPTB8YVtsKzI0Pj4yXSwwfGxoKGwsMCl8fFByKDk1Nzk1LDk1ODMxLDMzMyw5NTg3NiksdXI9MHxqXyhsLGMscCksSHI9MHxRbig1NiksX1soRXI9SHIrMzJ8MCk+PjNdPTEsYVtIcisyMD4+Ml09MCxhW0hyKzI0Pj4yXT0wLF9bSHIrNDA+PjNdPS4wMSxhW0hyKzQ4Pj4y''@;'; + put 'put ''XT1+fitEMCgrICsoMHxhW2w+PjJdKSksWnQ9MHxRbihBPWFuPDwzKSxhW0hyKzEyPj4yXT1adCxsPTA7ISgoMHxsKT49KDB8YW4pKTspX1tadCsobDw8Myk+PjNdPWYsbD1sKzF8MDtmb3IoY3Q9MHxRbihhbjw8MiksRXQ9MHxRbihBKSxiPTA7Oyl7aWYoKDB8Yik+PSgwfGFuKSl7Uj0wO2Jy''@;'; + put 'put ''ZWFrfWZvcihfWyhrPUV0KyhiPDwzKXwwKT4+M109MCxEPVNuKygoTT1iKzF8MCk8PDIpfDAsdz0wfGFbU24rKGI8PDIpPj4yXSxsPTAsZj0wOyEoKDB8dyk+PSgwfGFbRD4+Ml0pKTspKDB8YikhPSgwfChBPTB8YVtIbisodzw8Mik+PjJdKSkmJihmPStfYyhwLGMsYixBKSxfW2s+PjNdPWY9''@;'; + put 'put ''K19baz4+M10rZixsPWwrMXwwKSx3PXcrMXwwO2lmKCgwfGwpPD0wKXtLPTE0O2JyZWFrfV9baz4+M109Zi8rKDB8bCksYj1NfWZvcigxND09KDB8SykmJlByKDk1OTA4LDk1ODMxLDM1OCw5NTg3Nik7Oyl7aWYoKDB8Uik+PSgwfGFuKSl7bD0wLE09MDticmVha31hW2N0KyhSPDwyKT4+Ml09''@;'; + put 'put ''LTEsUj1SKzF8MH1lOmZvcig7ISgoMHxNKT49KDB8YW4pKTspe2ZvcihhW2N0KyhNPDwyKT4+Ml09TSxSPVNuKygoRD1NKzF8MCk8PDIpfDAsdz0wfGFbKGI9U24rKE08PDIpfDApPj4yXTshKCgwfHcpPj0oMHwoQT0wfGFbUj4+Ml0pKSk7KSgwfGFbKEE9Y3QrKGFbSG4rKHc8PDIpPj4yXTw8''@;'; + put 'put ''Mil8MCk+PjJdKSE9KDB8TSkmJihhW0E+PjJdPU0sbD1sKzF8MCksdz13KzF8MDtmb3Ioaz0wfGFbYj4+Ml07Oyl7aWYoKDB8ayk+PSgwfEEpKXtNPUQ7Y29udGludWUgZX1mb3IoYj1TbisoMSsodz0wfGFbSG4rKGs8PDIpPj4yXSk8PDIpfDAsdz0wfGFbU24rKHc8PDIpPj4yXTshKCgwfHcp''@;'; + put 'put ''Pj0oMHxhW2I+PjJdKSk7KSgwfGFbKEE9Y3QrKGFbSG4rKHc8PDIpPj4yXTw8Mil8MCk+PjJdKSE9KDB8TSkmJihhW0E+PjJdPU0sbD1sKzF8MCksdz13KzF8MDtrPWsrMXwwLEE9MHxhW1I+PjJdfX1hWyhrdD1Icis0fDApPj4yXT0wfHVjKGFuLGFuLEE9bCthbnwwLDEsMSksQT0wfHVjKGFu''@;'; + put 'put ''LGFuLEEsMSwxKSxhWyhzdD1Icis4fDApPj4yXT1BLGw9MHxhW2t0Pj4yXTtkb3tpZigwPT0oMHxBKXwwPT0oMHxsKSlRNChIciksYnQ9MDtlbHNle290PTB8YVtsKzIwPj4yXSxXZT0wfGFbbCsyND4+Ml0scWU9MHxhW2wrMjg+PjJdLFN0PTB8YVtBKzI4Pj4yXSxPZT0wfGFbQSsyND4+Ml0s''@;'; + put 'put ''YVsobnQ9MHxhW0ErMjA+PjJdKT4+Ml09MCxhW290Pj4yXT0wLGY9MCxHPTAsSz0wLHc9MDtlOmZvcig7Oyl7aWYoKDB8Syk+PSgwfGFuKSl7Sz01ODticmVha31mb3IoYVtjdCsoSzw8Mik+PjJdPUxlPUsrYW58MCxIZT1TbisoKFJlPUsrMXwwKTw8Mil8MCxWZT1FdCsoSzw8Myl8MCxwZT0w''@;'; + put 'put ''LGdlPTAsYj0wfGFbKGs9U24rKEs8PDIpfDApPj4yXTshKCgwfGIpPj0oMHwobD0wfGFbSGU+PjJdKSkpOyl7aWYoKDB8YVsobD1jdCsoKEE9MHxhW0huKyhiPDwyKT4+Ml0pPDwyKXwwKT4+Ml0pIT0oMHxMZSkpe3N3aXRjaChhW2w+PjJdPUxlLGFbV2UrKHc8PDIpPj4yXT1BLDB8bSl7Y2Fz''@;'; + put 'put ''ZSAwOmJlPTE7YnJlYWs7Y2FzZSAxOmJlPS41KigrX1tFdCsoQTw8Myk+PjNdKyArX1tWZT4+M10pO2JyZWFrO2Nhc2UgMjpiZT0rcWwoKyArZHUocCxjLEssQSksLjQpO2JyZWFrO2RlZmF1bHQ6Sz00MjticmVhayBlfV9bcWUrKHc8PDMpPj4zXT1Ecj0tMS8oYmUqYmUpLGFbT2UrKHc8PDIp''@;'; + put 'put ''Pj4yXT1BLF9bKFI9U3QrKHc8PDMpfDApPj4zXT1mcj1EcipiZSxHPStfYyhwLGMsSyxBKSpmcitHLHc9dysxfDAscGU9RHIrcGUsZ2U9KGZyPStfW1I+PjNdKStnZSxmPWZyKmJlK2Z9Yj1iKzF8MH1mb3IoUj0wfGFbaz4+Ml07ISgoMHxSKT49KDB8bCkpOyl7Zm9yKE09U24rKDErKGs9MHxh''@;'; + put 'put ''W0huKyhSPDwyKT4+Ml0pPDwyKXwwLEQ9RXQrKGs8PDMpfDAsYj0wfGFbU24rKGs8PDIpPj4yXTshKCgwfGIpPj0oMHxhW00+PjJdKSk7KXtpZigoMHxhWyhsPWN0KyhhWyhBPUhuKyhiPDwyKXwwKT4+Ml08PDIpfDApPj4yXSkhPSgwfExlKSl7c3dpdGNoKGFbbD4+Ml09TGUsMHxtKXtjYXNl''@;'; + put 'put ''IDA6YmU9MjticmVhaztjYXNlIDE6YmU9LjUqKDIqK19bRD4+M10rICtfW1ZlPj4zXSsgK19bRXQrKGFbQT4+Ml08PDMpPj4zXSk7YnJlYWs7Y2FzZSAyOmJlPStxbCgrICtkdShwLGMsSywwfGFbQT4+Ml0pLC40KTticmVhaztkZWZhdWx0Oks9NTM7YnJlYWsgZX1hW1dlKyh3PDwyKT4+Ml09''@;'; + put 'put ''YVtBPj4yXSxfW3FlKyh3PDwzKT4+M109ZnI9LTEvKGJlKmJlKSxhW09lKyh3PDwyKT4+Ml09YVtBPj4yXSxfWyhsPVN0Kyh3PDwzKXwwKT4+M109RHI9ZnIqYmUsRz0rX2MocCxjLDB8YVtBPj4yXSxrKSpEcitHLHc9dysxfDAscGU9ZnIrcGUsZ2U9KERyPStfW2w+PjNdKStnZSxmPURyKmJl''@;'; + put 'put ''K2Z9Yj1iKzF8MH1SPVIrMXwwLGw9MHxhW0hlPj4yXX1hW1dlKyh3PDwyKT4+Ml09SyxfWyhWZT1adCsoSzw8Myl8MCk+PjNdPURyPS1wZSorX1tWZT4+M10sX1txZSsodzw8Myk+PjNdPURyLXBlLGFbT2UrKHc8PDIpPj4yXT1LLF9bU3QrKHc8PDMpPj4zXT0tZ2UsYVtvdCsoUmU8PDIpPj4y''@;'; + put 'put ''XT13PXcrMXwwLGFbbnQrKFJlPDwyKT4+Ml09dyxLPVJlfWlmKDQyPT0oMHxLKSlDdSg5NTkxNSwyOSwxLDB8YVsxNTcxMl0pLFByKDEzODM5NCw5NTgzMSw0MTgsOTU4NzYpO2Vsc2UgaWYoNTM9PSgwfEspKUN1KDk1OTE1LDI5LDEsMHxhWzE1NzEyXSksUHIoMTM4Mzk0LDk1ODMxLDQ2MCw5''@;'; + put 'put ''NTg3Nik7ZWxzZSBpZig1OD09KDB8Sykpe2ZvcihmPUcvZixsPTA7ISgoMHxsKT49KDB8dykpOylfWyhIbj1TdCsobDw8Myl8MCk+PjNdPStfW0huPj4zXSpmLGw9bCsxfDA7X1tFcj4+M109ZixhWzgrKDB8YVtrdD4+Ml0pPj4yXT13LGFbOCsoMHxhW3N0Pj4yXSk+PjJdPXcsRnQoY3QpLEZ0''@;'; + put 'put ''KEV0KSxSYSh1ciksYnQ9SHI7YnJlYWt9fX13aGlsZSgwKTtyZXR1cm4gMHxidH1mdW5jdGlvbiBRNChsKXt2YXIgYz0wOzB8KGx8PTApJiYoMHwoYz0wfGFbbCs0Pj4yXSkmJlJhKGMpLDB8KGM9MHxhW2wrOD4+Ml0pJiZSYShjKSwwfChjPTB8YVtsKzEyPj4yXSkmJkZ0KGMpLDB8KGM9MHxh''@;'; + put 'put ''W2wrMjA+PjJdKSYmQ29bMTI3JmFbbCsxNj4+Ml1dKGMpLEZ0KGwpKX1mdW5jdGlvbiB6bShsLGMsZixwLG0pe2N8PTAsZnw9MCxwfD0wLG09K207dmFyIGJ0LGFuLFNuLEhuLEhyLEVyLGZyLERyLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAsSz0wLHBlPTAsZ2U9MCxiZT0wLE9l''@;'; + put 'put ''PTAsTGU9MCxSZT0wLEhlPTAsVmU9MCxxZT0wLG50PTAsV2U9MCxvdD0wLFN0PTAsa3Q9MCxzdD0wLEV0PTAsWnQ9MCxjdD0wLHVyPTAsSnI9MDtpZihEcj1sZSxsZT1sZSsxNnwwLGZyPURyKzh8MCxEPURyKzR8MCxrPURyLE09MHxhWzQrKGx8PTApPj4yXSx3PTB8YVtsKzg+PjJdLGFbKEhy''@;'; + put 'put ''PURyKzEyfDApPj4yXT0wLGFbZnI+PjJdPTAsYVtEPj4yXT0wLGJ0PTB8YVtsKzEyPj4yXSxhW2s+PjJdPTAsYW49MHx0dih3KSwwIT0oMHwoRXI9MHxRbihBPShIbj0wfEFyKFNuPTB8YVtNPj4yXSxjKSk8PDMpKSkmJihnbygwfEVyLDB8ZiwwfCh1cj0wfEFyKGM8PDMsU24pKSksY3Q9MHxR''@;'; + put 'put ''bihBKSxhW2ZyPj4yXT1jdCwwIT0oMHxjdCkpKXtzd2l0Y2goWnQ9MHxhW3crMjA+PjJdLGN0PTB8YVt3KzI0Pj4yXSxTdD0wfGFbdysyOD4+Ml0sa3Q9MHxhW2FuKzI4Pj4yXSxzdD0wfGFbTSsyOD4+Ml0sMHxhWyhFdD1sKzI0fDApPj4yXSl7Y2FzZSAxOihmdW5jdGlvbiB4eChsLGMsZixw''@;'; + put 'put ''LG0sQSl7Y3w9MCxmfD0wLHB8PTAsbXw9MCxBfD0wO3ZhciBIZSxWZSxxZSxXZSx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAsSz0wLHBlPTAsZ2U9MCxiZT0wLE9lPTAsTGU9MCxSZT0wLG50PTAsb3Q9MDtLPTB8YVs4KyhsfD0wKT4+Ml0sV2U9MHxhW2wrMTI+PjJdLFZlPTB8YVtsKzE2''@;'; + put 'put ''Pj4yXSxxZT0wfGFbMjArKG50PTB8YVtsKzMyPj4yXSk+PjJdLG50PTB8YVtudCsyND4+Ml0sZ2U9MHxhWyhNPWwrMjB8MCk+PjJdLHBlPTB8YVsoRD1sKzI0fDApPj4yXSxHPTB8YVsoUj1sKzI4fDApPj4yXSxIZT0rX1tsPj4zXTtlOmRve2lmKDM9PSgyfEspKXtpZighZ2Upe2ZvcigwIT0o''@;'; + put 'put ''MHxwZSl8MCE9KDB8Ryk/UHIoOTYwOTQsOTU4MzEsNjkyLDk2MTExKToodz0wLGI9MCk7ISgoMHx3KT49KDB8V2UpKTspUmU9MHxhW1ZlKyh3PDwyKT4+Ml0sdz13KzF8MCxiPWIrfn4oKGJlPSsoKDB8YVtxZSsoUmUrMTw8Mik+PjJdKS0oMHxhW3FlKyhSZTw8Mik+PjJdKXwwKSsxKSpiZSl8''@;'; + put 'put ''MDtnZT0wfFFuKHBlPWI8PDIpLGFbTT4+Ml09Z2UscGU9MHxRbihwZSksYVtEPj4yXT1wZSxHPTB8UW4oYjw8MyksYVtSPj4yXT1HfWZvcihMZT0wLGw9MDshKCgwfExlKT49KDB8V2UpKTspe3c9MHxhW250KygoYj0wfGFbKE9lPXFlKygoSz0wfGFbVmUrKExlPDwyKT4+Ml0pPDwyKXwwKT4+''@;'; + put 'put ''Ml0pPDwyKT4+Ml0sYj0wfGFbbnQrKGIrMTw8Mik+PjJdO3Q6ZG97aWYoKDB8dykhPSgwfGIpKXtmb3Iob3Q9K2R1KHAsZix3LGIpLG90Kj1vdCxiZT0rKCgwfGFbKFI9cWUrKEsrMTw8Mil8MCk+PjJdKS0oMHxhW09lPj4yXSl8MCksYVtnZSsobDw8Mik+PjJdPUssYVtwZSsobDw8Mik+PjJd''@;'; + put 'put ''PUssX1tHKyhsPDwzKT4+M109SGUvb3Qsaz1iZSpiZSpvdCxiZT0tSGUvKG90KmJlKSxiPTB8YVtPZT4+Ml07bD1sKzF8MCwhKCgwfGIpPj0oMHwodz0wfGFbUj4+Ml0pKSk7KWFbZ2UrKGw8PDIpPj4yXT1LLGFbcGUrKGw8PDIpPj4yXT1hW250KyhiPDwyKT4+Ml0sX1tHKyhsPDwzKT4+M109''@;'; + put 'put ''YmUsYj1iKzF8MDtmb3Ioaz1IZS9rLEQ9MHxhW09lPj4yXTs7KXtpZigoMHxEKT49KDB8dykpYnJlYWsgdDtmb3IoYVtnZSsobDw8Mik+PjJdPU09MHxhW250KyhEPDwyKT4+Ml0sYVtwZSsobDw8Mik+PjJdPUssX1tHKyhsPDwzKT4+M109YmUsYj0wfGFbT2U+PjJdO2w9bCsxfDAsISgoMHxi''@;'; + put 'put ''KT49KDB8KHc9MHxhW1I+PjJdKSkpOylSZT0wfGFbbnQrKGI8PDIpPj4yXSxhW2dlKyhsPDwyKT4+Ml09TSxhW3BlKyhsPDwyKT4+Ml09UmUsX1tHKyhsPDwzKT4+M109ayxiPWIrMXwwO0Q9RCsxfDB9fX13aGlsZSgwKTtMZT1MZSsxfDB9dz0wfG80KGwsYyxjLGdlLHBlLEcsMSw4KSxsPTB9''@;'; + put 'put ''ZWxzZXtzd2l0Y2goMHxLKXtjYXNlIDI6Y2FzZSA0OmJyZWFrO2RlZmF1bHQ6dz0wLGw9MDticmVhayBlfWRve2lmKGdlKU9lPUcsTGU9cGUsUmU9Z2U7ZWxzZXtpZighKDAhPSgwfHBlKXwwIT0oMHxHKSkpe1JlPTB8UW4oTGU9V2U8PDIpLGFbTT4+Ml09UmUsTGU9MHxRbihMZSksYVtEPj4y''@;'; + put 'put ''XT1MZSxPZT0wfFFuKFdlPDwzKSxhW1I+PjJdPU9lO2JyZWFrfVByKDk2MDk0LDk1ODMxLDczNCw5NjExMSl9fXdoaWxlKDApO2ZvcihsPTB8UW4oMHxBcihjPDwzLGYpKSxiPTB8QXIoZixjKSx3PTA7Oyl7aWYoKDB8dyk+PSgwfGIpKXtHPTA7YnJlYWt9X1tsKyh3PDwzKT4+M109MCx3PXcr''@;'; + put 'put ''MXwwfWZvcig7ISgoMHxHKT49KDB8V2UpKTspe2ZvcihrPStkdShwLGYsMHxhW250KygoRD0wfGFbKE09cWUrKChLPTB8YVtWZSsoRzw8Mik+PjJdKTw8Mil8MCk+PjJdKTw8Mik+PjJdLDB8YVtudCsoRCsxPDwyKT4+Ml0pLGFbUmUrKEc8PDIpPj4yXT1LLGFbTGUrKEc8PDIpPj4yXT1LLF9b''@;'; + put 'put ''T2UrKEc8PDMpPj4zXT1rPUhlL2ssTT0wfGFbTT4+Ml0sRD0wfGFbcWUrKEsrMTw8Mik+PjJdLEs9MHxBcihLLGYpLGI9TTshKCgwfGIpPj0oMHxEKSk7KXtmb3IoUj0wfEFyKDB8YVtudCsoYjw8Mik+PjJdLGYpLHc9MDshKCgwfHcpPj0oMHxmKSk7KV9bKGdlPWwrKHcrSzw8Myl8MCk+PjNd''@;'; + put 'put ''PStfW2dlPj4zXSsgK19bcCsodytSPDwzKT4+M10sdz13KzF8MDtiPWIrMXwwfWZvcihrKj0xLysoRC1NfDApLHc9MDshKCgwfHcpPj0oMHxmKSk7KV9bKGdlPWwrKHcrSzw8Myl8MCk+PjNdPWsqK19bZ2U+PjNdLHc9dysxfDA7Rz1HKzF8MH13PTB8bzQoRyxjLGMsUmUsTGUsT2UsMSw4KX19''@;'; + put 'put ''d2hpbGUoMCk7YVttPj4yXT13LGFbQT4+Ml09bH0pKDB8YVtsKzIwPj4yXSxTbixjLGYsayxEKSwoQT0wfGFbaz4+Ml0pPyhNPTB8eXAoTSxBKSxudD0wLFdlPTApOihudD0wLFdlPTAsQT0wKTticmVhaztjYXNlIDI6bnQ9K19bOCsoQT0wfGFbbCsyMD4+Ml0pPj4zXSxXZT0rX1tBPj4zXSxB''@;'; + put 'put ''PTA7YnJlYWs7ZGVmYXVsdDpudD0wLFdlPTAsQT0wfVZlPTA9PSgwfGJ0KSxxZT1sKzQwfDAsSGU9bCs0OHwwLHc9MHxhW0Q+PjJdLGI9MSxrPTA7ZTpmb3IoO1JlPWsrMXwwLCgwfGspPCgwfHApJmI+bTspe3Q6ZG97aWYoND09KDB8YVtFdD4+Ml0pKWZvcihEPTB8YVtmcj4+Ml0saz0wOzsp''@;'; + put 'put ''e2lmKCgwfGspPj0oMHxTbikpYnJlYWsgdDtmb3IoUj0wfEFyKGssYyksbD0wOyEoKDB8bCk+PSgwfGMpKTspX1tEKyhsK1I8PDMpPj4zXT0wLGw9bCsxfDA7az1rKzF8MH1lbHNle2ZvcihLPTA7ISgoMHxLKT49KDB8U24pKTspe2ZvcihMZT1adCsoKE9lPUsrMXwwKTw8Mil8MCxHPTAsYmU9''@;'; + put 'put ''MHxhW1p0KyhLPDwyKT4+Ml0saz0tMTshKCgwfGJlKT49KDB8YVtMZT4+Ml0pKTspe2lmKCgwfEspPT0oMHwobD0wfGFbKEQ9Y3QrKGJlPDwyKXwwKT4+Ml0pKSlrPWJlO2Vsc2V7aWYoZ2U9K19jKGYsYyxLLGwpLDA9PShwZT0rX1soUj1TdCsoYmU8PDMpfDApPj4zXSkpcGU9MDtlbHNle2lm''@;'; + put 'put ''KDA9PWdlKXtmb3IocGU9cGUvK19bc3QrKGJlPDwzKT4+M10qMWUtNCxsPTA7ISgoMHxsKT49KDB8YykpOylnZT1wZSooK0JoKCkrMWUtNCksSnI9ZisoKDB8QXIoMHxhW0Q+PjJdLGMpKStsPDwzKXwwLF9bSnI+PjNdPWdlKyArX1tKcj4+M10sbD1sKzF8MDtnZT0rX2MoZixjLEssMHxhW0Q+''@;'; + put 'put ''PjJdKSxwZT0rX1tSPj4zXX1wZS89Z2V9X1trdCsoYmU8PDMpPj4zXT1wZSxHPXBlK0d9YmU9YmUrMXwwfWlmKCgwfGspPD0tMSl7b3Q9MjU7YnJlYWsgZX1fW2t0KyhrPDwzKT4+M109LUcsSz1PZX1HaShhbiwwLGYsMCxmciwwLGMpfX13aGlsZSgwKTt0OmRve2lmKCFWZSlmb3IoRD0wfGFb''@;'; + put 'put ''ZnI+PjJdLGs9MDs7KXtpZigoMHxrKT49KDB8U24pKWJyZWFrIHQ7Zm9yKFI9YnQrKGs8PDMpfDAsSz0wfEFyKGssYyksbD0wOyEoKDB8bCk+PSgwfGMpKTspX1soSnI9RCsoKExlPWwrS3wwKTw8Myl8MCk+PjNdPStfW0pyPj4zXSsgK19bRXIrKExlPDwzKT4+M10qK19bUj4+M10sbD1sKzF8''@;'; + put 'put ''MDtrPWsrMXwwfX13aGlsZSgwKTt0OmRve3N3aXRjaCgwfGFbRXQ+PjJdKXtjYXNlIDE6Zm9yKGs9MHxhW2ZyPj4yXSxsPTA7Oyl7aWYoKDB8bCk+PSgwfFNuKSl7b3Q9NTA7YnJlYWsgdH1mb3IoUj0wfEFyKGwsYyksRD0wOyEoKDB8RCk+PSgwfGMpKTspX1soSnI9aysoKG90PUQrUnwwKTw8''@;'; + put 'put ''Myl8MCk+PjNdPStfW0pyPj4zXSsgK19bdysob3Q8PDMpPj4zXSxEPUQrMXwwO2w9bCsxfDB9Y2FzZSAyOlluZShTbixjLGYsMHxhW2ZyPj4yXSxXZSxudCksaz0wfGFbZnI+PjJdLEc9K19bcWU+PjNdLGw9MHxhW0hlPj4yXSwyPT0oMHxhW0V0Pj4yXSk/c1AoTSxXZSxjLGYsayxHLGwsSHIp''@;'; + put 'put ''Om90PTUxO2JyZWFrO2RlZmF1bHQ6az0wfGFbZnI+PjJdLG90PTUwfX13aGlsZSgwKTtpZig1MD09KDB8b3QpJiYoRz0rX1txZT4+M10sbD0wfGFbSGU+PjJdLG90PTUxKSw1MT09KDB8b3QpJiYob3Q9MCxCMyhNLGMsZixrLEcsbCwwLEhyKSksMHxhW0hyPj4yXSlicmVhaztiPSt1UChTbixj''@;'; + put 'put ''LGYsMHxhW2ZyPj4yXSksYi89K0QwKCsgK3k1KEhuLGYsZikpLGdvKDB8ZiwwfGFbZnI+PjJdLDB8dXIpLGs9UmV9MjU9PSgwfG90KSYmUHIoOTYwNDksOTU4MzEsODk1LDk2MDYwKSxSYShhbiksQSYmKFJhKEEpLFJhKE0pKX1lbHNlIFJhKGFuKSxiPTEsdz0wO3JldHVybiBGdChFciksMHwo''@;'; + put 'put ''QT0wfGFbZnI+PjJdKSYmRnQoQSksMHx3JiZGdCh3KSxsZT1EciwrYn1mdW5jdGlvbiBZbmUobCxjLGYscCxtLEEpe2x8PTAsY3w9MCxmfD0wLHB8PTAsQT0rQTt2YXIgdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLEs9MCxwZT0wO0EqPW09K20sdz0wO2U6Zm9yKDshKCgwfHcpPj0oMHxs''@;'; + put 'put ''KSk7KWZvcihEPXcrMXwwLFI9MHxBcih3LGMpLGI9RDs7KXtpZigoMHxiKT09KDB8bCkpe3c9RDtjb250aW51ZSBlfWZvcihNPTB8QXIoYixjKSxtPTEvK2R1KGYsYyx3LGIpLGs9MDshKCgwfGspPj0oMHxjKSk7KUs9QSooKCtfW2YrKChwZT1rK1J8MCk8PDMpPj4zXS0rX1tmKygoRz1rK018''@;'; + put 'put ''MCk8PDMpPj4zXSkqbSksX1socGU9cCsocGU8PDMpfDApPj4zXT1LKyArX1twZT4+M10sX1soRz1wKyhHPDwzKXwwKT4+M109K19bRz4+M10tSyxrPWsrMXwwO2I9YisxfDB9fWZ1bmN0aW9uIHNQKGwsYyxmLHAsbSxBLHcsYil7dmFyIGssTTtmfD0wLHB8PTAsbXw9MCxBPStBLHd8PTAsYnw9''@;'; + put 'put ''MCxNPTB8ZnVuY3Rpb24gT3gobCxjKXtsfD0wLGM9K2M7dmFyIGYscDtyZXR1cm4gZj0wfFFuKDgpLHA9MHxRbigxNiksYVtmPj4yXT1wLF9bcD4+M109YyxhW3ArOD4+Ml09bCxhW2YrND4+Ml09MjUsMHxmfShsfD0wLGM9K2MpLGs9MHxmdW5jdGlvbiBCeChsLGMpe2M9K2M7dmFyIGIsayxN''@;'; + put 'put ''LEQsRyxLLHBlLGY9MCxwPTAsbT0wLEE9MCx3PTAsUj0wO0Q9MHxhWyhsfD0wKT4+Ml0sRz0wfGFbbCsyMD4+Ml0sSz0wfGFbbCsyND4+Ml0saz0wfGFbbCsyOD4+Ml0sTT0wfFFuKDgpLHc9MHxRbig4KyhEPDwzKXwwKSxhW00+PjJdPXcsX1t3Pj4zXT0rKDB8RCksdz13Kzh8MCxiPTEvKHBl''@;'; + put 'put ''PSsoRCstMXwwKSksYyo9cGUsbD0wO2U6Zm9yKDshKCgwfGwpPj0oMHxEKSk7KWZvcihwPXcrKGw8PDMpfDAsX1twPj4zXT1iLG09bCsxfDAsQT0wfGFbRysobTw8Mik+PjJdLGY9MHxhW0crKGw8PDIpPj4yXTs7KXtpZigoMHxmKT49KDB8QSkpe2w9bTtjb250aW51ZSBlfSgwfGwpPT0oMHxh''@;'; + put 'put ''W0srKGY8PDIpPj4yXSkmJigoUj0rX1trKyhmPDwzKT4+M10pPj0wP1I6LVIpPjAmJihfW3A+PjNdPTEvKFIrYykpLGY9ZisxfDB9cmV0dXJuIGFbTSs0Pj4yXT0yNywwfE19KGwsYyksZ1AoTSxrLDB8YVtsPj4yXSxmLHAsbSxBLHcsYil9ZnVuY3Rpb24gdVAobCxjLGYscCl7bHw9MCxjfD0w''@;'; + put 'put ''LGZ8PTAscHw9MDt2YXIgbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wO2ZvcihBPTAsYj0wOyEoKDB8QSk+PSgwfGwpKTspe2ZvcihrPTB8QXIoQSxjKSxtPTAsdz0wOyEoKDB8bSk+PSgwfGMpKTspRD1tK2t8MCxtPW0rMXwwLHc9KE09K19bcCsoRDw8Myk+PjNdLStfW2YrKEQ8PDMpPj4z''@;'; + put 'put ''XSkqTSt3O0E9QSsxfDAsYj0rRDAoK3cpK2J9cmV0dXJuK2J9ZnVuY3Rpb24gVHgobCxjLGYscCxtKXtjfD0wLGY9K2YscHw9MCxtfD0wO3ZhciBWZSxxZSxvdCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLEs9MCxwZT0wLGdlPTAsYmU9MCxPZT0wLExlPTAsUmU9MCxIZT0wLG50''@;'; + put 'put ''PTAsV2U9MCxTdD0wLGt0PTA7Zm9yKFdlPTB8YVsobHw9MCk+PjJdLEs9MHxhW2wrMjA+PjJdLHBlPTB8YVtsKzI0Pj4yXSwwfGxoKGwsMCl8fFByKDk1Nzk1LDk1ODMxLDEwMzQsOTYxMzMpLG90PTB8UW4oZ2U9V2U8PDMpLGI9MDshKCgwfGIpPj0oMHxXZSkpOyl7Zm9yKF9bKEQ9b3QrKGI8''@;'; + put 'put ''PDMpfDApPj4zXT0wLEc9SysoKFI9YisxfDApPDwyKXwwLE09MHxhW0srKGI8PDIpPj4yXSxBPTAsaz0wOyEoKDB8TSk+PSgwfGFbRz4+Ml0pKTspKDB8YikhPSgwfCh3PTB8YVtwZSsoTTw8Mik+PjJdKSkmJihrPStfYyhwLGMsYix3KSxfW0Q+PjNdPWs9K19bRD4+M10rayxBPUErMXwwKSxN''@;'; + put 'put ''PU0rMXwwO2lmKCgwfEEpPD0wKXtudD0xMTticmVha31fW0Q+PjNdPWsvKygwfEEpLGI9Un1mb3IoMTE9PSgwfG50KSYmUHIoOTU5MDgsOTU4MzEsMTA0Niw5NjEzMyksQT0wfFFuKDU2KSxfWyhxZT1BKzMyfDApPj4zXT0xLGFbQSsyMD4+Ml09MCxhW0ErMjQ+PjJdPTAsX1tBKzQwPj4zXT0u''@;'; + put 'put ''MDEsYVtBKzQ4Pj4yXT1+fitEMCgrICsoMHxhW2w+PjJdKSksVmU9MHxRbihnZSksYVtBKzEyPj4yXT1WZSx3PTA7ISgoMHx3KT49KDB8V2UpKTspX1tWZSsodzw8Myk+PjNdPWYsdz13KzF8MDtkb3tpZigoMHxXZSk+Mil7aWYobSl7dz0wfG1QKFdlLGMscCk7YnJlYWt9dz0wfEZ4KFdlLGMs''@;'; + put 'put ''cCk7YnJlYWt9dz0wfHR2KGwpfXdoaWxlKDApO2lmKGFbKG09QSs0fDApPj4yXT0wfHlwKGwsdyksUmEodyksYj0wfHR2KDB8YVttPj4yXSksYVtBKzg+PjJdPWIsMD09KDB8Yil8MD09KDB8KHc9MHxhW20+PjJdKSkpWl8oQSksQT0wO2Vsc2V7Zm9yKGdlPTB8YVt3KzIwPj4yXSxwZT0wfGFb''@;'; + put 'put ''dysyND4+Ml0sSz0wfGFbdysyOD4+Ml0sbT0wfGFbYisyOD4+Ml0sUmU9MCxIZT0wLEQ9MDshKCgwfEQpPj0oMHxXZSkpOyl7Zm9yKFI9Z2UrKChHPUQrMXwwKTw8Mil8MCxMZT0wLGY9MCxiPS0xLGJlPVJlLE9lPUhlLE09MHxhW2dlKyhEPDwyKT4+Ml07ISgoMHxNKT49KDB8YVtSPj4yXSkp''@;'; + put 'put ''OykoMHwodz0wfGFbcGUrKE08PDIpPj4yXSkpPT0oMHxEKT8oaz1MZSx3PU0pOihTdD0rcWwoKyArZHUocCxjLEQsdyksLjYpLF9bSysoTTw8Myk+PjNdPWs9MS8oU3QqU3QpLF9bKGw9bSsoTTw8Myl8MCk+PjNdPWt0PWsqU3QsT2U9a3QqK19jKHAsYyxELHcpK09lLGsrPUxlLGY9KGt0PStf''@;'; + put 'put ''W2w+PjNdKStmLHc9YixiZT1rdCpTdCtiZSksTGU9ayxiPXcsTT1NKzF8MDtpZihfWyhsPVZlKyhEPDwzKXwwKT4+M109az0tTGUqK19bbD4+M10sKDB8Yik8PS0xKXtudD0zMTticmVha31fW0srKGI8PDMpPj4zXT1rLUxlLF9bbSsoYjw8Myk+PjNdPS1mLFJlPWJlLEhlPU9lLEQ9R31mb3Io''@;'; + put 'put ''MzE9PSgwfG50KSYmUHIoOTYxNTQsOTU4MzEsMTExMiw5NjEzMyksaz1IZS9SZSxiPTB8YVtnZSsoV2U8PDIpPj4yXSx3PTA7ISgoMHx3KT49KDB8YikpOylfWyhXZT1tKyh3PDwzKXwwKT4+M109K19bV2U+PjNdKmssdz13KzF8MDtfW3FlPj4zXT1rLEZ0KG90KX1yZXR1cm4gMHxBfWZ1bmN0''@;'; + put 'put ''aW9uIFpfKGwpe1E0KGx8PTApfWZ1bmN0aW9uIFUxKGwsYyxmKXt6bShsfD0wLGN8PTAsZnw9MCw1MCwuMDAxKX1mdW5jdGlvbiBJeChsLGMsZixwKXtjfD0wLGZ8PTAscHw9MDt2YXIgUmUsSGUsVmUscWUsbnQsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAsSz0wLHBlPTAs''@;'; + put 'put ''Z2U9MCxiZT0wLE9lPTAsTGU9MCxXZT0wLG90PTA7Zm9yKG50PTB8YVsobHw9MCk+PjJdLFdlPTB8YVtsKzIwPj4yXSxvdD0wfGFbbCsyND4+Ml0sMHxsaChsLDApfHxQcig5NTc5NSw5NTgzMSwxMTQ5LDk2MTY1KSxSZT0wfGpfKGwsYyxwKSxIZT0wfGFbUmUrMjg+PjJdLGw9MHxRbig4KSxW''@;'; + put 'put ''ZT0wfFFuKG50PDwyKSxxZT0wfFFuKG50PDwzKSx3PTA7Oyl7aWYoKDB8dyk+PSgwfG50KSl7Rz0wO2JyZWFrfWZvcihfWyhNPXFlKyh3PDwzKXwwKT4+M109MCxSPVdlKygoRD13KzF8MCk8PDIpfDAsYj0wfGFbV2UrKHc8PDIpPj4yXSxtPTAsaz0wOyEoKDB8Yik+PSgwfGFbUj4+Ml0pKTsp''@;'; + put 'put ''KDB8dykhPSgwfChBPTB8YVtvdCsoYjw8Mik+PjJdKSkmJihrPStfYyhwLGMsdyxBKSxfW00+PjNdPWs9K19bTT4+M10rayxtPW0rMXwwKSxiPWIrMXwwO2lmKCgwfG0pPD0wKXtLPTExO2JyZWFrfV9bTT4+M109ay8rKDB8bSksdz1EfWZvcigxMT09KDB8SykmJlByKDk1OTA4LDk1ODMxLDEx''@;'; + put 'put ''NjcsOTYxNjUpOzspe2lmKCgwfEcpPj0oMHxudCkpe0Q9MCxtPTA7YnJlYWt9YVtWZSsoRzw8Mik+PjJdPS0xLEc9RysxfDB9ZTpmb3IoOyEoKDB8RCk+PSgwfG50KSk7KXtmb3IoYVtWZSsoRDw8Mik+PjJdPUQsRz1XZSsoKFI9RCsxfDApPDwyKXwwLHc9MHxhWyhiPVdlKyhEPDwyKXwwKT4+''@;'; + put 'put ''Ml07ISgoMHx3KT49KDB8KEE9MHxhW0c+PjJdKSkpOykoMHxhWyhBPVZlKyhhW290Kyh3PDwyKT4+Ml08PDIpfDApPj4yXSkhPSgwfEQpJiYoYVtBPj4yXT1ELG09bSsxfDApLHc9dysxfDA7Zm9yKE09MHxhW2I+PjJdOzspe2lmKCgwfE0pPj0oMHxBKSl7RD1SO2NvbnRpbnVlIGV9Zm9yKGI9''@;'; + put 'put ''V2UrKDErKHc9MHxhW290KyhNPDwyKT4+Ml0pPDwyKXwwLHc9MHxhW1dlKyh3PDwyKT4+Ml07ISgoMHx3KT49KDB8YVtiPj4yXSkpOykoMHxhWyhBPVZlKyhhW290Kyh3PDwyKT4+Ml08PDIpfDApPj4yXSkhPSgwfEQpJiYoYVtBPj4yXT1ELG09bSsxfDApLHc9dysxfDA7TT1NKzF8MCxBPTB8''@;'; + put 'put ''YVtHPj4yXX19aWYocD0wfHVjKG50LG50LG0sMSwxKSxhW2w+PjJdPXAscCl7Zm9yKHBlPTB8YVtwKzI0Pj4yXSxnZT0wfGFbcCsyOD4+Ml0sYVsoSz0wfGFbcCsyMD4+Ml0pPj4yXT0wLEE9MCxtPTA7ISgoMHxBKT49KDB8bnQpKTspe2ZvcihhW1ZlKyhBPDwyKT4+Ml09YmU9QStudHwwLExl''@;'; + put 'put ''PVdlKygoT2U9QSsxfDApPDwyKXwwLGM9cWUrKEE8PDMpfDAsYj0wfGFbKE09V2UrKEE8PDIpfDApPj4yXTshKCgwfGIpPj0oMHwoQT0wfGFbTGU+PjJdKSkpOykoMHxhWyh3PVZlKygoQT0wfGFbb3QrKGI8PDIpPj4yXSk8PDIpfDApPj4yXSkhPSgwfGJlKSYmKGFbdz4+Ml09YmUsYVtwZSso''@;'; + put 'put ''bTw8Mik+PjJdPUEsX1soRz1nZSsobTw8Myl8MCk+PjNdPS41KigrX1txZSsoQTw8Myk+PjNdKyArX1tjPj4zXSksX1tHPj4zXT0rX1tIZSsoYjw8Myk+PjNdLG09bSsxfDApLGI9YisxfDA7Zm9yKEc9MHxhW00+PjJdOyEoKDB8Ryk+PSgwfEEpKTspe2ZvcihNPVdlKygxKyhiPTB8YVtvdCso''@;'; + put 'put ''Rzw8Mik+PjJdKTw8Mil8MCxEPXFlKyhiPDwzKXwwLFI9SGUrKEc8PDMpfDAsYj0wfGFbV2UrKGI8PDIpPj4yXTshKCgwfGIpPj0oMHxhW00+PjJdKSk7KSgwfGFbKHc9VmUrKGFbKEE9b3QrKGI8PDIpfDApPj4yXTw8Mil8MCk+PjJdKSE9KDB8YmUpJiYoYVt3Pj4yXT1iZSxhW3BlKyhtPDwy''@;'; + put 'put ''KT4+Ml09YVtBPj4yXSxfWyh3PWdlKyhtPDwzKXwwKT4+M109LjUqKDIqK19bRD4+M10rICtfW2M+PjNdKyArX1txZSsoYVtBPj4yXTw8Myk+PjNdKSxfW3c+PjNdPStfW0hlKyhiPDwzKT4+M10rICtfW1I+PjNdLG09bSsxfDApLGI9YisxfDA7Rz1HKzF8MCxBPTB8YVtMZT4+Ml19YVtLKyhP''@;'; + put 'put ''ZTw8Mik+PjJdPW0sQT1PZX1hW3ArOD4+Ml09bSxXZT0wfEtzZSgpLGFbKG90PWwrNHwwKT4+Ml09V2UsZ28oMHxXZSwwfGYsMTY4KSxhWzE2KyhvdD0wfGFbb3Q+PjJdKT4+Ml09MCxhW290KzQwPj4yXT0xLF9bKFdlPW90Kzk2fDApPj4zXT0uNSorX1tXZT4+M10sYVtvdCs4MD4+Ml09MjAs''@;'; + put 'put ''RnQoVmUpLEZ0KHFlKSxSYShSZSl9ZWxzZSBEeChsKSxsPTA7cmV0dXJuIDB8bH1mdW5jdGlvbiBEeChsKXt2YXIgYz0wOzB8KGx8PTApJiYoMHwoYz0wfGFbbD4+Ml0pJiZSYShjKSwwfChsPTB8YVtsKzQ+PjJdKSYmZFYobCkpfWZ1bmN0aW9uIGNQKGwsYyxmLHAsbSl7dmFyIEEsdztsfD0w''@;'; + put 'put ''LGN8PTAsZnw9MCxwfD0wLG18PTAsQT1sZSxsZT1sZSsxNnwwLGFbKHc9QSk+PjJdPTAsZnVuY3Rpb24gS3ZlKGwsYyxmLHAsbSxBLHcpe2x8PTAsY3w9MCxmfD0wLG18PTAsQXw9MCx3fD0wO3ZhciBKcixMcixsMCxWaSxPaSxsbyxUYSxqYSx4aSxEbCxvcyxiPTAsaz0wLE09MCxEPTAsUj0w''@;'; + put 'put ''LEc9MCxLPTAscGU9MCxnZT0wLGJlPTAsT2U9MCxMZT0wLFJlPTAsSGU9MCxWZT0wLHFlPTAsbnQ9MCxXZT0wLG90PTAsU3Q9MCxrdD0wLHN0PTAsRXQ9MCxadD0wLGN0PTAsYnQ9MCxhbj0wLFNuPTAsSG49MCx1cj0wLEhyPTAsRXI9MCxmcj0wLERyPTAsUm89MCxnYT0wLG9sPTAsTDA9MCx4''@;'; + put 'put ''YT0wO2lmKG9zPWxlLGxlPWxlKzMyfDAsVGE9b3MrMjB8MCxqYT1vcysxNnwwLHhpPW9zKzEyfDAsRGw9b3MrOHwwLEpyPW9zLHBlPStfWyhwfD0wKT4+M10sUj0rX1soRz1wKzI0fDApPj4zXSxEPStfWyhLPXArMzJ8MCk+PjNdLExyPStfW3ArNzI+PjNdLGwwPTB8YVtwKzgwPj4yXSxWaT0r''@;'; + put 'put ''X1twKzg4Pj4zXSxMZT0rX1twKzk2Pj4zXSxPaT0wfGFbcCsxMDQ+PjJdLGFbKGxvPW9zKzI0fDApPj4yXT0wLGFbVGE+PjJdPTEwLGFbamE+PjJdPTAsYVt4aT4+Ml09MCxhW0RsPj4yXT0wLF9bSnI+PjNdPTAsISgwPT0oMHxjKXwoMHxsMCk8MXx8KFJvPTB8YVtjPj4yXSwoMHxsKTwxfCgw''@;'; + put 'put ''fChNPTB8YVtjKzQ+PjJdKSk8MSkpKXtpZigoMHxNKTwoMHxhW3ArNTI+PjJdKT8oZ2U9MCxiPTAsaz0wKTooaz0wfFFuKDgwKmx8MCksYVtqYT4+Ml09ayxhW3hpPj4yXT0wfFFuKDgwKSxhW0RsPj4yXT0wfFFuKDgwKSxnZT0xLGI9ayksYVt3Pj4yXT0wLCgwfFJvKT09KDB8TSkpe3VyPTB8''@;'; + put 'put ''YWgoYywxKSxIcj0wfGFbdXIrMjA+PjJdLEVyPTB8YVt1cisyND4+Ml0sZnI9MHxhW2YrMjA+PjJdLERyPTB8YVtmKzI0Pj4yXSxIbj0wfGFbZisyOD4+Ml07ZTpkb3tpZigwfGFbcCsxNj4+Ml0pZm9yKG53KDB8YVtwKzEwOD4+Ml0pLGs9MHxBcihSbyxsKSxiPTA7Oyl7aWYoKDB8Yik+PSgw''@;'; + put 'put ''fGspKWJyZWFrIGU7X1tBKyhiPDwzKT4+M109K0JoKCksYj1iKzF8MH19d2hpbGUoMCk7UjwwJiYoUj0rSUQodXIsbCxBKSxfW0c+PjNdPVIpLEQ8MCYmKF9bSz4+M109LjIsRD0uMikscGU+PTAmJihfW3A+PjNdPS0xLHBlPS0xKSxTbj0rcWwoK1IsKyhhbj0xLXBlKSksRXQ9K3FsKCtELC4z''@;'; + put 'put ''MzMzMzMzMzMzMzMzMzMzKigyLXBlKSkvUixadD0wfFFuKGN0PWw8PDMpLGJ0PTB8UW4oY3Q9MHxBcihSbyxjdCkpLG90PTAhPSgwfGdlKSxTdD1wKzExNnwwLGt0PS4yKkV0LHN0PXArNjR8MCxudD0tMT09cGUsV2U9MCE9KDB8bSksYj0wLFZlPTAscWU9MDtlOmZvcig7Oyl7VmU9VmUrMXww''@;'; + put 'put ''LGdvKDB8YnQsMHxBLDB8Y3QpLG90JiYoYj0wfFlrKGwsUm8sMTAsQSwwPT0oMHxhW1N0Pj4yXSk/MDptKSksZ2U9MCxSPTA7dDpmb3IoOygwfGdlKTwoMHxSbyk7KXtmb3Ioaz0wOyEoKDB8ayk+PSgwfGwpKTspX1tadCsoazw8Myk+PjNdPTAsaz1rKzF8MDtmb3IoZj1IcisoKFJlPWdlKzF8''@;'; + put 'put ''MCk8PDIpfDAsSGU9MHxBcihnZSxsKSxNPTB8YVtIcisoZ2U8PDIpPj4yXTshKCgwfE0pPj0oMHxhW2Y+PjJdKSk7KXtrPTB8YVsoRz1FcisoTTw8Mil8MCk+PjJdO246ZG97aWYoKDB8aykhPSgwfGdlKSlmb3IoRD0rX2MoQSxsLGdlLGspKkV0LGs9MDs7KXtpZigoMHxrKT49KDB8bCkpYnJl''@;'; + put 'put ''YWsgbjtwZT1EKigrX1tBKyhrK0hlPDwzKT4+M10tK19bQSsoKDB8QXIoMHxhW0c+PjJdLGwpKStrPDwzKT4+M10pLF9bKE9lPVp0KyhrPDwzKXwwKT4+M109K19bT2U+PjNdLXBlLGs9aysxfDB9fXdoaWxlKDApO009TSsxfDB9Zm9yKEc9ZnIrKFJlPDwyKXwwLGY9MHxhW2ZyKyhnZTw8Mik+''@;'; + put 'put ''PjJdOyEoKDB8Zik+PSgwfGFbRz4+Ml0pKTspe2s9MHxhWyhLPURyKyhmPDwyKXwwKT4+Ml07bjpkb3tpZigoMHxrKSE9KDB8Z2UpKWZvcihEPStkdShBLGwsZ2UsayksTT1IbisoZjw8Myl8MCxwZT0xL0Qsaz0wOzspe2lmKCgwfGspPj0oMHxsKSlicmVhayBuO29sPShvbD1ELShMMD0rX1tN''@;'; + put 'put ''Pj4zXSkpKm9sKmt0KigrX1tBKyhrK0hlPDwzKT4+M10tK19bQSsoKDB8QXIoMHxhW0s+PjJdLGwpKStrPDwzKT4+M10pKnBlLF9bKE9lPVp0KyhrPDwzKXwwKT4+M109KEQ8TDA/b2w6LW9sKSsgK19bT2U+PjNdLGs9aysxfDB9fXdoaWxlKDApO2Y9ZisxfDB9bjpkb3tpZihvdCl7aWYockwo''@;'; + put 'put ''YiwrX1tzdD4+M10sQSsoSGU8PDMpfDAsZ2UsbG8sVGEsamEseGksRGwsSnIsdyksZj0wfGFbbG8+PjJdLDB8YVt3Pj4yXSlicmVhayBlO2ZvcihHPTB8YVtEbD4+Ml0sSz0wfGFbeGk+PjJdLGdlPTB8YVtqYT4+Ml0saz0wOzspe2lmKCgwfGspPj0oMHxmKSl7RD0wLGs9MDticmVhayBufWZv''@;'; + put 'put ''cihMMD0oTDA9K19bRysoazw8Myk+PjNdKT4xZS0xNT9MMDoxZS0xNSxiZT1LKyhrPDwzKXwwLE9lPTB8QXIoayxsKSxEPStxbCgrTDAsK2FuKSxEPTEvKG50P0wwKkwwOkQpLE09MDshKCgwfE0pPj0oMHxsKSk7KV9bKHhhPVp0KyhNPDwzKXwwKT4+M109K19bYmU+PjNdKlNuKigrX1tBKyhN''@;'; + put 'put ''K0hlPDwzKT4+M10tK19bZ2UrKE0rT2U8PDMpPj4zXSkqRCsgK19beGE+PjNdLE09TSsxfDA7az1rKzF8MH19ZWxzZSBpZihXZSYwIT0oMHxhW1N0Pj4yXSkpZm9yKGs9MDs7KXtpZigoMHxrKT09KDB8Um8pKXtEPTAsaz0wO2JyZWFrIG59cjpkb3tpZigoMHxrKSE9KDB8Z2UpKWZvcihMMD0r''@;'; + put 'put ''ZHUoQSxsLGdlLGspLGY9bSsoazw8Myl8MCxHPTB8QXIoayxsKSxEPStxbCgrTDAsK2FuKSxEPTEvKG50P0wwKkwwOkQpLE09MDs7KXtpZigoMHxNKT49KDB8bCkpYnJlYWsgcjtfWyhPZT1adCsoTTw8Myl8MCk+PjNdPStfW2Y+PjNdKlNuKigrX1tBKyhNK0hlPDwzKT4+M10tK19bQSsoTStH''@;'; + put 'put ''PDwzKT4+M10pKkQrICtfW09lPj4zXSxNPU0rMXwwfX13aGlsZSgwKTtrPWsrMXwwfWVsc2UgZm9yKGs9MDs7KXtpZigoMHxrKT09KDB8Um8pKXtEPTAsaz0wO2JyZWFrIG59cjpkb3tpZigoMHxrKSE9KDB8Z2UpKWZvcihMMD0rZHUoQSxsLGdlLGspLGY9MHxBcihrLGwpLEQ9K3FsKCtMMCwr''@;'; + put 'put ''YW4pLEQ9MS8obnQ/TDAqTDA6RCksTT0wOzspe2lmKCgwfE0pPj0oMHxsKSlicmVhayByO19bKE9lPVp0KyhNPDwzKXwwKT4+M109KCtfW0ErKE0rSGU8PDMpPj4zXS0rX1tBKyhNK2Y8PDMpPj4zXSkqU24qRCsgK19bT2U+PjNdLE09TSsxfDB9fXdoaWxlKDApO2s9aysxfDB9fXdoaWxlKDAp''@;'; + put 'put ''O2Zvcig7ISgoMHxrKT49KDB8bCkpOylEPShMMD0rX1tadCsoazw8Myk+PjNdKSpMMCtELGs9aysxfDA7Uj0oRD0rRDAoK0QpKStSO246ZG97aWYoRD4wKWZvcihEPTEvRCxrPTA7Oyl7aWYoKDB8ayk+PSgwfGwpKXtrPTA7YnJlYWsgbn1fWyh4YT1adCsoazw8Myl8MCk+PjNdPStfW3hhPj4z''@;'; + put 'put ''XSpELGs9aysxfDB9ZWxzZSBrPTB9d2hpbGUoMCk7Zm9yKDs7KXtpZigoMHxrKT49KDB8bCkpe2dlPVJlO2NvbnRpbnVlIHR9X1soeGE9QSsoaytIZTw8Myl8MCk+PjNdPStfW3hhPj4zXSsgK19bWnQrKGs8PDMpPj4zXSpMZSxrPWsrMXwwfX1pZigwfGImJmV2KGIpLCEoKDB8VmUpPCgwfGww''@;'; + put 'put ''KSYoTGU9K01rKE9pLExlLFIscWUsVmkpKT5Mcikpe2dhPTcwO2JyZWFrfXFlPVJ9NzA9PSgwfGdhKSYmMHxhW3ArMTEyPj4yXSYmRWsobCx1cixBKSxGdChidCksKDB8dXIpIT0oMHxjKSYmUmEodXIpLEZ0KFp0KSxrPWI9MHxhW2phPj4yXX1lbHNlIGFbdz4+Ml09LTEwMDswfGsmJkZ0KGIp''@;'; + put 'put ''LDB8KGI9MHxhW3hpPj4yXSkmJkZ0KGIpLDB8KGI9MHxhW0RsPj4yXSkmJkZ0KGIpfWxlPW9zfShwLGMsMHxhW2w+PjJdLDB8YVtsKzQ+PjJdLGYsbSx3KSwwfGFbdz4+Ml0/UHIoOTYxODQsOTU4MzEsMTI2Miw5NjE5MCk6bGU9QX1mdW5jdGlvbiBMeChsLGMsZixwLG0sQSl7bHw9MCxjfD0w''@;'; + put 'put ''LGZ8PTAscHw9MCxtfD0wO3ZhciB3PTAsYj0wO2FbKEF8PTApPj4yXT0wLEE9MHxhW2YrMTIwPj4yXTtlOmRve3N3aXRjaCgwfEEpe2Nhc2UgNTpjYXNlIDY6KDB8YVtjPj4yXSk+MiYmKFUxKGM9MHxUeChjLGwsMCxtLDYhPSgwfEEpJjEpLGwsbSksWl8oYykpO2JyZWFrO2Nhc2UgNDpmb3Io''@;'; + put 'put ''QT0wOzspe2lmKDE9PSgwfEEpKWJyZWFrIGU7Y1AoYj0wfEl4KGMsbCxmLG0pLGMscCxsLG0pLER4KGIpLEE9QSsxfDB9Y2FzZSAxOmY9MCx3PTY7YnJlYWs7Y2FzZSAyOmY9MSx3PTY7YnJlYWs7Y2FzZSAzOmY9Mix3PTZ9fXdoaWxlKDApO2U6ZG97aWYoNj09KDB8dykpZm9yKEE9MDs7KXtp''@;'; + put 'put ''ZigxPT0oMHxBKSlicmVhayBlO3ptKGI9MHxreChjLGwsLjA1LG0sZiksbCxtLDUwLC4wMDEpLFE0KGIpLEE9QSsxfDB9fXdoaWxlKDApfWZ1bmN0aW9uIGdQKGwsYyxmLHAsbSxBLHcsYixrKXtsfD0wLGN8PTAscHw9MCxtfD0wLEF8PTAsdz0rdyxifD0wLGt8PTA7dmFyIEcsTT0wLEQ9MCxS''@;'; + put 'put ''PTAsSz0wLHBlPTA7Zm9yKEc9MHxRbihLPShmfD0wKTw8MyksSz0wfFFuKEspLEQ9MCxSPTA7KDB8RCk8KDB8cCk7KXtmb3Ioaz0wOyEoKDB8ayk+PSgwfGYpKTspcGU9KDB8QXIoayxwKSkrRHwwLF9bRysoazw8Myk+PjNdPStfW20rKHBlPDwzKT4+M10sX1tLKyhrPDwzKT4+M109K19bQSso''@;'; + put 'put ''cGU8PDMpPj4zXSxrPWsrMXwwO2ZvcihNPStSMyhsLGMsZixHLEssdyxiKSxrPTA7ISgoMHxrKT49KDB8ZikpOylfW0ErKCgwfEFyKGsscCkpK0Q8PDMpPj4zXT0rX1tHKyhrPDwzKT4+M10saz1rKzF8MDtEPUQrMXwwLFI9TStSfXJldHVybiBGdChHKSxGdChLKSwrUn1mdW5jdGlvbiBSMyhs''@;'; + put 'put ''LGMsZixwLG0sQSx3KXtwfD0wLG18PTAsQT0rQSx3fD0wO3ZhciBHLHBlLGdlLGJlLE9lLGI9MCxrPTAsTT0wLEQ9MCxSPTAsSz0wLExlPTAsUmU9MDtmb3IoYmU9MHxhWzQrKGx8PTApPj4yXSxwZT0wfGFbNCsoY3w9MCk+PjJdLGI9MHxRbihnZT0oZnw9MCk8PDMpLE09MHxRbihnZSksTGU9''@;'; + put 'put ''MHxRbihnZSksRD0wfFFuKGdlKSxSPTB8ZnVuY3Rpb24gd3gobCxjLGYpe2x8PTAsY3w9MCxmfD0wO3ZhciBwPTAsbT0wO2ZvcihwPTA7ISgoMHxwKT49KDB8bCkpOylfWyhtPWYrKHA8PDMpfDApPj4zXT0rX1tjKyhwPDwzKT4+M10tK19bbT4+M10scD1wKzF8MDtyZXR1cm4gMHxmfShmLG0s''@;'; + put 'put ''TT0wfG1pWzYzJmJlXShsLHAsTSkpLEs9KygwfGYpLEc9KE9lPStEMCgrICt5NShmLFIsUikpL0spKkEsSz0xL0ssUj0wLG09TGUsaz0xLEE9T2U7QT5HJigwfFIpPCgwfHcpOylBPSt5NShmLE0sYj0wfG1pWzYzJnBlXShjLE0sYikpLCgwfFIpPjA/YngoZixiLG0sQS9rKTpnbygwfG0sMHxi''@;'; + put 'put ''LDB8Z2UpLFBfKGYscCxtLGs9QS8reTUoZixtLFJlPTB8bWlbNjMmYmVdKGwsbSxEKSkpLExlPTB8UF8oZixNLFJlLC1rKSxSPVIrMXwwLGs9QSxEPVJlLEE9K0QwKCsgK3k1KGYsTGUsTGUpKSpLO3JldHVybiBGdChiKSxGdChNKSxGdChtKSxGdChEKSwrQX1mdW5jdGlvbiBCMyhsLGMsZixw''@;'; + put 'put ''LG0sQSx3LGIpe3ZhciBrO3N3aXRjaChjfD0wLGZ8PTAscHw9MCxtPSttLEF8PTAsd3w9MCxrPTB8YVsobHw9MCk+PjJdLGFbKGJ8PTApPj4yXT0wLDB8dyl7Y2FzZSAwOnc9MHxmdW5jdGlvbiBiNShsKXt2YXIgYztyZXR1cm4gbHw9MCxjPTB8UW4oOCksYVtjPj4yXT1sLGFbYys0Pj4yXT0y''@;'; + put 'put ''NiwwfGN9KGwpLGI9MHxmdW5jdGlvbiBwUChsKXt2YXIgdyxrLE0sRCxSLGM9MCxmPTAscD0wLG09MCxBPTAsYj0wO3c9MHxhWyhsfD0wKT4+Ml0saz0wfGFbbCsyMD4+Ml0sTT0wfGFbbCsyND4+Ml0sRD0wfGFbbCsyOD4+Ml0sUj0wfFFuKDgpLGY9MHxRbig4KyhhW2w+PjJdPDwzKXwwKSxh''@;'; + put 'put ''W1I+PjJdPWYsX1tmPj4zXT0rKDB8dyksZj1mKzh8MCxsPTA7ZTpmb3IoOyEoKDB8bCk+PSgwfHcpKTspZm9yKHA9ZisobDw8Myl8MCxfW3A+PjNdPTEsbT1sKzF8MCxBPTB8YVtrKyhtPDwyKT4+Ml0sYz0wfGFbaysobDw8Mik+PjJdOzspe2lmKCgwfGMpPj0oMHxBKSl7bD1tO2NvbnRpbnVl''@;'; + put 'put ''IGV9KDB8bCk9PSgwfGFbTSsoYzw8Mik+PjJdKSYmKChiPStfW0QrKGM8PDMpPj4zXSk+PTA/YjotYik+MCYmKF9bcD4+M109MS9iKSxjPWMrMXwwfXJldHVybiBhW1IrND4+Ml09MjcsMHxSfShsKSxtPStnUCh3LGIsayxjLGYscCxtLEEsMCksZnVuY3Rpb24gaFAobCl7MHwobHw9MCkmJkZ0''@;'; + put 'put ''KGwpfSh3KSxmdW5jdGlvbiBQeChsKXtGdCgwfGFbKGx8PTApPj4yXSksMHxsJiZGdChsKX0oYik7YnJlYWs7Y2FzZSAxOihmdW5jdGlvbiBGaShsLGMsZixwLG0sQSl7Y3w9MCxmfD0wLHB8PTAsbXw9MCxBfD0wO3ZhciBnZSxiZSxPZSxMZSxSZSxIZSxWZSxxZSxudCxXZSxvdCx3PTAsYj0w''@;'; + put 'put ''LGs9MCxNPTAsRD0wLFI9MCxHPTAsSz0wLHBlPTA7Zm9yKG90PWxlLGxlPWxlKzE2fDAsV2U9b3QsbnQ9MHxRbihxZT0oVmU9MHxhWzQrKGx8PTApPj4yXSk8PDMpLE9lPTB8UW4ocWUpLExlPTB8UW4ocWUpLFJlPTB8YVtsKzIwPj4yXSxIZT0wfGFbbCsyND4+Ml0sZ2U9MHxhW2wrMjg+PjJd''@;'; + put 'put ''LGJlPTB8YVsxNTcxMl0scGU9MDsoMHxwZSk8KDB8Yyk7KXtmb3IoQT0wOzspe2lmKCgwfEEpPj0oMHxWZSkpe2w9MDticmVha31LPSgwfEFyKEEsYykpK3BlfDAsX1tudCsoQTw8Myk+PjNdPStfW2YrKEs8PDMpPj4zXSxfW0xlKyhBPDwzKT4+M109K19bcCsoSzw8Myk+PjNdLEE9QSsxfDB9''@;'; + put 'put ''Zm9yKDs7KXtpZighKCgwfGwpPCgwfG0pKSl7QT0wO2JyZWFrfWZvcihEPTA7ISgoMHxEKT49KDB8VmUpKTspe2ZvcihLPTB8YVtSZSsoKEc9RCsxfDApPDwyKT4+Ml0sTT1SPTB8YVtSZSsoRDw8Mik+PjJdLGI9MCx3PTA7ISgoMHxNKT49KDB8SykpOylrPStfW2dlKyhNPDwzKT4+M10sKDB8''@;'; + put 'put ''KEE9MHxhW0hlKyhNPDwyKT4+Ml0pKT09KDB8RCk/dz1rOmI9K19bbnQrKEE8PDMpPj4zXSprK2IsTT1NKzF8MDswPT1iJiYoYVtXZT4+Ml09Sy1SLFQwKGJlLDk2MjEyLFdlKSksX1tPZSsoRDw8Myk+PjNdPSgrX1tMZSsoRDw8Myk+PjNdLWIpL3csRD1HfWdvKDB8bnQsMHxPZSwwfHFlKSxs''@;'; + put 'put ''PWwrMXwwfWZvcig7ISgoMHxBKT49KDB8VmUpKTspX1twKygoMHxBcihBLGMpKStwZTw8Myk+PjNdPStfW250KyhBPDwzKT4+M10sQT1BKzF8MDtwZT1wZSsxfDB9RnQobnQpLEZ0KE9lKSxGdChMZSksbGU9b3R9KShsLGMsZixwLEEsMCksbT0wO2JyZWFrO2RlZmF1bHQ6bT0wfXJldHVybitt''@;'; + put 'put ''fWZ1bmN0aW9uIG1QKGwsYyxmKXtsfD0wLGN8PTAsZnw9MDt2YXIgbSxBLHcsayxNLEQsUixwPTAsYj0wLEc9MDtmb3IoUj1sZSxsZT1sZSszMnwwLE09UisyMHwwLG09UisxNnwwLEE9UisxMnwwLHc9Uis4fDAsX1soaz1SKT4+M109MSxEPTB8UW4oYj1sPDwzKSxiPTB8UW4oYiksYz0wOyEo''@;'; + put 'put ''KDB8Yyk+PSgwfGwpKTspX1tEKyhjPDwzKT4+M109K19bZisoKHA9Yzw8MSk8PDMpPj4zXSxfW2IrKGM8PDMpPj4zXT0rX1tmKygoMXxwKTw8Myk+PjNdLGM9YysxfDA7Zm9yKGFbTT4+Ml09YywoMHxsKT4yP2Y9MHxmdW5jdGlvbiBvOWUobCxjLGYscCl7cmV0dXJuIGZ8PTAscHw9MCxwPWxl''@;'; + put 'put ''LGxlPWxlKzE2fDAsYVsoZj1wKT4+Ml09OTM2MzEsJHIoMSw5MzcwOSxmKSxsZT1wLDB9KDAsMCxsLHcpOihhW3c+PjJdPTAsZj0wKSxwPTB8dWMobCxsLDEsMSwyKSxjPTA7YVtNPj4yXT1jLCEoKDB8Yyk+PSgwfGFbdz4+Ml0pKTspYVttPj4yXT1hW2YrKChHPWM8PDEpPDwyKT4+Ml0sYVtB''@;'; + put 'put ''Pj4yXT1hW2YrKCgxfEcpPDwyKT4+Ml0sTzMocCwxLG0sQSxrKSxjPTErKDB8YVtNPj4yXSl8MDtmb3IoMj09KDB8bCkmJihhW20+PjJdPTAsYVtBPj4yXT0xLE8zKHAsMSxtLEEsaykpLGM9MDthW00+PjJdPWMsISgoMHxjKT49KDB8bCkpOylPMyhwLDEsTSxNLGspLGM9MSsoMHxhW00+PjJd''@;'; + put 'put ''KXwwO3JldHVybiBsPTB8Y2oocCksUmEocCksRz0wfGFoKGwsMCksUmEobCksRnQoZiksRnQoRCksRnQoYiksbGU9UiwwfEd9ZnVuY3Rpb24gRngobCxjLGYpe2x8PTAsY3w9MCxmfD0wO3ZhciBBLGIsTSxwPTAsbT0wLHc9MCxrPTA7Zm9yKE09bGUsbGU9bGUrMTZ8MCxBPU0rOHwwLF9bKHc9''@;'; + put 'put ''TSk+PjNdPTEsYj0wfFFuKGs9bDw8Myksaz0wfFFuKGspLHA9MDshKCgwfHApPj0oMHxsKSk7KW09MHxBcihwLGMpLF9bYisocDw8Myk+PjNdPStfW2YrKG08PDMpPj4zXSxfW2srKHA8PDMpPj4zXT0rX1tmKyhtKzE8PDMpPj4zXSxwPXArMXwwO2ZvcihhW0E+PjJdPXAscD0wfGZ1bmN0aW9u''@;'; + put 'put ''IGE5ZShsLGMsZixwKXtsfD0wLGZ8PTAscHw9MDt2YXIgbT0wO2U6ZG97c3dpdGNoKDB8Zil7Y2FzZSAyOnA9MHxRbigxNiksbT0wfFFuKDI0KSxhW20rOD4+Ml09MCxhW20rND4+Ml09cCxhW20+PjJdPTIsYVtwPj4yXT0wLGFbcCs0Pj4yXT0xLGFbbSsxNj4+Ml09Zj1wKzh8MCxhW20rMjA+''@;'; + put 'put ''PjJdPTAsYVttKzEyPj4yXT0yLGFbZj4+Ml09MSxhW3ArMTI+PjJdPTA7YnJlYWs7Y2FzZSAxOnA9MHxRbig0KSxtPTB8UW4oMTIpLGFbbSs4Pj4yXT0wLGFbbSs0Pj4yXT1wLGFbbT4+Ml09MSxhW3A+PjJdPTA7YnJlYWs7ZGVmYXVsdDppZihpOWUoMCwwLDApLGw9KDB8Zik+MCxwKXtpZigh''@;'; + put 'put ''bCl7bT0wO2JyZWFrIGV9YmwoKX1lbHNle2lmKCFsKXttPTA7YnJlYWsgZX1ibCgpfX19d2hpbGUoMCk7cmV0dXJuIDB8bX0oYiwwLGwsMCksbT0wfHVjKGwsbCwxLDEsMiksYz0wOzspe2lmKGFbQT4+Ml09YywhKCgwfGMpPCgwfGwpKSl7Yz0wO2JyZWFrfWZvcihmPTE7ISgoMHxmKT49KDB8''@;'; + put 'put ''YVtwKygxMipjfDApPj4yXSkpOylPMyhtLDEsQSwoMHxhW3ArKDEyKmN8MCkrND4+Ml0pKyhmPDwyKXwwLHcpLGY9ZisxfDAsYz0wfGFbQT4+Ml07Yz1jKzF8MH1mb3IoO2FbQT4+Ml09YywhKCgwfGMpPj0oMHxsKSk7KU8zKG0sMSxBLEEsdyksYz0xKygwfGFbQT4+Ml0pfDA7cmV0dXJuIHc9''@;'; + put 'put ''MHxhaCgwfGNqKG0pLDApLFJhKG0pLEZ0KGIpLEZ0KGspLGZ1bmN0aW9uIGw5ZShsKXt2YXIgYz0wOzB8KGx8PTApJiYoMHwoYz0wfGFbbCs0Pj4yXSkmJkZ0KGMpLDB8KGM9MHxhW2wrOD4+Ml0pJiZGdChjKSxGdChsKSl9KHApLGxlPU0sMHx3fWZ1bmN0aW9uIFZ4KGwsYyxmKXtmfD0wO3Zh''@;'; + put 'put ''ciBtLHA9MCxBPTAsdz0wLGI9MDtmb3IoQT0wfGFbKG09KGx8PTApKygyMCooY3w9MCl8MCl8MCk+PjJdLHc9MHxhW2wrKDIwKmN8MCkrND4+Ml0scD0wOzspe2lmKCgwfHApPj0oMHxBKSl7Yj00O2JyZWFrfWlmKCgwfGFbdysocDw8Mik+PjJdKT09KDB8ZikpYnJlYWs7cD1wKzF8MH00PT0o''@;'; + put 'put ''MHxiKSYmKGFbbT4+Ml09QSsxLGFbdysoQTw8Mik+PjJdPWYsdz0wfGFbbCsoMjAqZnwwKSs0Pj4yXSxhWyhBPWwrKDIwKmZ8MCl8MCk+PjJdPTErKGI9MHxhW0E+PjJdKSxhW3crKGI8PDIpPj4yXT1jLDB8YVtsKzg+PjJdKSYmKGpuWyhiPTB8YVtsKygyMCpjfDApKzg+PjJdKT4+Ml09K2pu''@;'; + put 'put ''W2I+PjJdLTEsam5bKGI9MHxhW2wrKDIwKmZ8MCkrOD4+Ml0pPj4yXT0ram5bYj4+Ml0tMSl9ZnVuY3Rpb24gQVAobCxjKXtjfD0wO3ZhciBmLHA9MDtyZXR1cm4gMHxhWyhmPTQrKGx8PTApfDApPj4yXT8oYVtjPj4yXT1hWyhwPTB8YVtsPj4yXSk+PjJdLGFbYys0Pj4yXT1hW3ArND4+Ml0s''@;'; + put 'put ''YVtjKzg+PjJdPWFbcCs4Pj4yXSxhW2MrMTI+PjJdPWFbcCsxMj4+Ml0sYVsoYz0wfGFbbD4+Ml0pPj4yXT1hWyhwPWMrKCgwfGFbZj4+Ml0pLTE8PDQpfDApPj4yXSxhW2MrND4+Ml09YVtwKzQ+PjJdLGFbYys4Pj4yXT1hW3ArOD4+Ml0sYVtjKzEyPj4yXT1hW3ArMTI+PjJdLGFbZj4+Ml09''@;'; + put 'put ''KDB8YVtmPj4yXSktMSxfNShsLDApLGw9MSk6bD0wLDB8bH1mdW5jdGlvbiBqeChsLGMpe2N8PTA7dmFyIE0sRCxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxrPTA7Zm9yKEQ9bGUsbGU9bGUrMTZ8MCxNPUQsKDB8KEE9MHxhWyhiPTQrKGx8PTApfDApPj4yXSkpPT0oMHxhWyhmPWwrOHwwKT4+''@;'; + put 'put ''Ml0pPyhhW2Y+PjJdPUE8PDEsZj0wfFVhKDB8YVtsPj4yXSxBPDw1KSxhW2w+PjJdPWYsaz1sLHc9MHxhW2I+PjJdKTooaz1sLHc9QSxmPTB8YVtsPj4yXSksYVtiPj4yXT13KzEsYVsoYj1mKyhBPDw0KXwwKT4+Ml09YVtjPj4yXSxhW2IrND4+Ml09YVtjKzQ+PjJdLGFbYis4Pj4yXT1hW2Mr''@;'; + put 'put ''OD4+Ml0sYVtiKzEyPj4yXT1hW2MrMTI+PjJdOyEoKDB8QSk8PTApOyl7aWYoISgocD0rX1soZj0wfGFbaz4+Ml0pKyhBPDw0KSs4Pj4zXSk8KG09K19bZisoKGw9QT4+PjEpPDw0KSs4Pj4zXSkpKXtpZihwIT1tfHwhKDEmKDB8VDEoKSkpKWJyZWFrO2Y9MHxhW2s+PjJdfWFbTT4+Ml09YVso''@;'; + put 'put ''Yj1mKyhBPDw0KXwwKT4+Ml0sYVtNKzQ+PjJdPWFbYis0Pj4yXSxhW00rOD4+Ml09YVtiKzg+PjJdLGFbTSsxMj4+Ml09YVtiKzEyPj4yXSxhW2I+PjJdPWFbKGM9ZisobDw8NCl8MCk+PjJdLGFbYis0Pj4yXT1hW2MrND4+Ml0sYVtiKzg+PjJdPWFbYys4Pj4yXSxhW2IrMTI+PjJdPWFbYysx''@;'; + put 'put ''Mj4+Ml0sYVsoYj0oMHxhW2s+PjJdKSsobDw8NCl8MCk+PjJdPWFbTT4+Ml0sYVtiKzQ+PjJdPWFbTSs0Pj4yXSxhW2IrOD4+Ml09YVtNKzg+PjJdLGFbYisxMj4+Ml09YVtNKzEyPj4yXSxBPWx9bGU9RH1mdW5jdGlvbiBfNShsLGMpe2N8PTA7dmFyIHcsYixNLGY9MCxwPTAsbT0wLEE9MCxr''@;'; + put 'put ''PTAsRD0wO2ZvcihNPWxlLGxlPWxlKzE2fDAsdz1NLGI9NCsobHw9MCl8MDs7KXtBPTF8KGY9Yzw8MSksKDB8Zik8KDB8YVtiPj4yXSkmJigocD0rX1soRD0wfGFbbD4+Ml0pKyhmPDw0KSs4Pj4zXSk8KG09K19bRCsoYzw8NCkrOD4+M10pfHxwPT1tJiYwIT0oMSYoMHxUMSgpKXwwKSl8fChr''@;'; + put 'put ''PTYpLDY9PSgwfGspJiYoaz0wLGY9Yyk7ZG97aWYoKDB8QSk8KDB8YVtiPj4yXSkpe2lmKCEoKHA9K19bKEQ9MHxhW2w+PjJdKSsoQTw8NCkrOD4+M10pPChtPStfW0QrKGY8PDQpKzg+PjNdKXx8cD09bSYmMSYoMHxUMSgpKSkpYnJlYWs7Zj1BfX13aGlsZSgwKTtpZigoMHxmKT09KDB8Yykp''@;'; + put 'put ''YnJlYWs7YVt3Pj4yXT1hWyhEPShBPTB8YVtsPj4yXSkrKGY8PDQpfDApPj4yXSxhW3crND4+Ml09YVtEKzQ+PjJdLGFbdys4Pj4yXT1hW0QrOD4+Ml0sYVt3KzEyPj4yXT1hW0QrMTI+PjJdLGFbRD4+Ml09YVsoQT1BKyhjPDw0KXwwKT4+Ml0sYVtEKzQ+PjJdPWFbQSs0Pj4yXSxhW0QrOD4+''@;'; + put 'put ''Ml09YVtBKzg+PjJdLGFbRCsxMj4+Ml09YVtBKzEyPj4yXSxhWyhEPSgwfGFbbD4+Ml0pKyhjPDw0KXwwKT4+Ml09YVt3Pj4yXSxhW0QrND4+Ml09YVt3KzQ+PjJdLGFbRCs4Pj4yXT1hW3crOD4+Ml0sYVtEKzEyPj4yXT1hW3crMTI+PjJdLGM9Zn1sZT1NfWZ1bmN0aW9uIFp4KGwsYyxmLHAs''@;'; + put 'put ''bSxBLHcsYil7bHw9MCxjfD0wLGY9K2YscD0rcCxBfD0wLHd8PTAsYnw9MDt2YXIgTSxrPTAsRD0wLFI9MDtpZigoTT0wIT0oMHwobXw9MCkpKT9EPTM6MHxCMmUobCxjLG09MHxRbihjPDwzKSxjKT8obD0xLEQ9MTcpOkQ9MywzPT0oMHxEKSl7Zm9yKGs9MHx2cihjPDwyKSxhW0E+PjJdPWss''@;'; + put 'put ''bD0wOyEoKDB8bCk+PSgwfGMpKTspYVtrKyhsPDwyKT4+Ml09bCxsPWwrMXwwO2ZvcihRNyhtLGssMCxsPWMrLTF8MCkscD0ocD0oK19bbSsoYVtrKyhsPDwyKT4+Ml08PDMpPj4zXS0oUj0rX1ttKyhhW2s+PjJdPDwzKT4+M10pKSpwLysoMHxsKSk8Zj9mOnAsbD0wLEE9MSxmPVI7ISgoMHxB''@;'; + put 'put ''KT49KDB8YykpOylsPWwrKChSPStfW20rKGFbaysoQTw8Mik+PjJdPDwzKT4+M10pLWY+cCYxKXwwLEE9QSsxfDAsZj1SO2FbYj4+Ml09bDtlOmRve2lmKGwpZm9yKGI9MHxRbihsPDwyKSxhW3c+PjJdPWIsbD0wLEE9MTs7KXtpZigoMHxBKT49KDB8YykpYnJlYWsgZTsrX1ttKyhhW2srKEE8''@;'; + put 'put ''PDIpPj4yXTw8Myk+PjNdLStfW20rKGFbaysoQSstMTw8Mik+PjJdPDwzKT4+M10+cCYmKGFbYisobDw8Mik+PjJdPUEsbD1sKzF8MCksQT1BKzF8MH1lbHNlIGs9MHxRbig0KSxhW3c+PjJdPWssYVtrPj4yXT1jfXdoaWxlKDApO00/bD0wOihsPTAsRD0xNyl9cmV0dXJuIDE3PT0oMHxEKSYm''@;'; + put 'put ''RnQobSksMHxsfWZ1bmN0aW9uIHp4KGwsYyl7bHw9MCxjfD0wO3ZhciBSLEcsSyxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxwZT0wO2ZvcigwfChmPTB8YVs0NjkzMF0pJiZCNyhmKSxhWzQ2OTMwXT0wfGNnKGMsYywwKSwwfChmPTB8YVs0NjkzMV0pJiZGdChmKSxhWzQ2''@;'; + put 'put ''OTMxXT0wfHZyKGM8PDIpLDB8KGY9MHxhWzQ2OTMyXSkmJkZ0KGYpLFI9MHx2cihjPDwzKSxhWzQ2OTMyXT1SLEc9MHxhWzQ2OTMwXSxLPTB8YVs0NjkzMV0sdz0wOzspe2lmKCgwfHcpPj0oMHxjKSl7cD0xMDticmVha31mb3IocD1sKyh3PDwyKXwwLEE9Rysodzw8Mil8MCxtPTAsZj0wOygw''@;'; + put 'put ''fGYpIT0oMHxjKTspX1soMHxhW0E+PjJdKSsoZjw8Myk+PjNdPWI9K19bKDB8YVtwPj4yXSkrKGY8PDMpPj4zXSxtPW08KGI9K2VvKCtiKSk/YjptLGY9ZisxfDA7aWYoMD09bSl7cD0xNTticmVha31fW1IrKHc8PDMpPj4zXT0xL20sYVtLKyh3PDwyKT4+Ml09dyx3PXcrMXwwfWU6ZG97aWYo''@;'; + put 'put ''MTA9PSgwfHApKXtEPWMrLTF8MCxmPTAsTT0wO3Q6Zm9yKDsoMHxNKTwoMHxEKTspe2ZvcihwPU0saz1mLG09MDshKCgwfHApPj0oMHxjKSk7KWI9K2VvKCsgK19bKDB8YVtHKygobD0wfGFbSysocDw8Mik+PjJdKTw8Mik+PjJdKSsoTTw8Myk+PjNdKSx3PShsPW08KGIqPStfW1IrKGw8PDMp''@;'; + put 'put ''Pj4zXSkpP3A6ayxwPXArMXwwLGs9dyxtPWw/YjptO2lmKDA9PW0pe2Y9MDticmVhayBlfWZvcihmPUsrKE08PDIpfDAsKDB8aykhPSgwfE0pJiYodz0wfGFbZj4+Ml0sYVtmPj4yXT1hWyhsPUsrKGs8PDIpfDApPj4yXSxhW2w+PjJdPXcpLG09MS8rX1soQT0wfGFbRysoYVtmPj4yXTw8Mik+''@;'; + put 'put ''PjJdKSsoTTw8Myk+PjNdLHA9bD1NKzF8MDs7KXtpZigoMHxwKT49KDB8Yykpe2Y9ayxNPWw7Y29udGludWUgdH1fWyhmPSh3PTB8YVtHKyhhW0srKHA8PDIpPj4yXTw8Mik+PjJdKSsoTTw8Myl8MCk+PjNdPWI9K19bZj4+M10qbTtuOmRve2lmKDAhPWIpZm9yKGY9bDs7KXtpZigoMHxmKT49''@;'; + put 'put ''KDB8YykpYnJlYWsgbjtfWyhwZT13KyhmPDwzKXwwKT4+M109K19bcGU+PjNdLStfW0ErKGY8PDMpPj4zXSpiLGY9ZisxfDB9fXdoaWxlKDApO3A9cCsxfDB9fWY9MCE9K19bKDB8YVtHKyhhW0srKEQ8PDIpPj4yXTw8Mik+PjJdKSsoRDw8Myk+PjNdJjF9ZWxzZSAxNT09KDB8cCkmJihfW1Ir''@;'; + put 'put ''KHc8PDMpPj4zXT0wLGY9MCl9d2hpbGUoMCk7cmV0dXJuIDB8Zn1mdW5jdGlvbiB5UChsLGMsZil7bHw9MCxjfD0wLGZ8PTA7dmFyIGssTSxwPTAsbT0wLEE9MCx3PTAsYj0wO2ZvcihrPTB8YVs0NjkzMF0sTT0wfGFbNDY5MzFdLGI9MDs7KXtpZigoMHxiKT49KDB8Zikpe3A9ZjticmVha31m''@;'; + put 'put ''b3Iodz1rKygoQT0wfGFbTSsoYjw8Mik+PjJdKTw8Mil8MCxtPTAscD0wOygwfHApIT0oMHxiKTspbT0rX1tsKyhwPDwzKT4+M10qK19bKDB8YVt3Pj4yXSkrKHA8PDMpPj4zXSttLHA9cCsxfDA7X1tsKyhiPDwzKT4+M109K19bYysoQTw8Myk+PjNdLW0sYj1iKzF8MH1mb3IoO2M9cCstMXww''@;'; + put 'put ''LCEoKDB8cCk8PTApOyl7Zm9yKEE9TSsoYzw8Mil8MCxtPTA7ISgoMHxwKT49KDB8ZikpOyltPStfW2wrKHA8PDMpPj4zXSorX1soMHxhW2srKGFbQT4+Ml08PDIpPj4yXSkrKHA8PDMpPj4zXSttLHA9cCsxfDA7X1socD1sKyhjPDwzKXwwKT4+M109KCtfW3A+PjNdLW0pLytfWygwfGFbayso''@;'; + put 'put ''YVtBPj4yXTw8Mik+PjJdKSsoYzw8Myk+PjNdLHA9Y319ZnVuY3Rpb24gR18obCl7dmFyIGM7cmV0dXJuIGx8PTAsYz0wfFFuKDgpLGFbYz4+Ml09bCxhW2MrND4+Ml09MCwwfGN9ZnVuY3Rpb24gV18obCxjKXtjfD0wO3ZhciBmPTAscD0wO2lmKDB8KGx8PTApKWRve2Y9bCxsPTB8YVtsKzQ+''@;'; + put 'put ''PjJdLDB8KHA9MHxhW2Y+PjJdKSYmQ29bMTI3JmNdKHApLEZ0KGYpfXdoaWxlKDAhPSgwfGwpKX1mdW5jdGlvbiBDQShsLGMpe3JldHVybiBsfD0wLGM9MHxHXyhjfD0wKSxhW2MrND4+Ml09bCwwfGN9ZnVuY3Rpb24gTHUobCl7cmV0dXJuIDB8YVsobHw9MCk+PjJdfWZ1bmN0aW9uIEdtKGwp''@;'; + put 'put ''e3JldHVybiAwfGFbNCsobHw9MCk+PjJdfWZ1bmN0aW9uIFl0KGwpe3ZhciBjO3JldHVybiBsfD0wLGM9MHxRbigxMiksYVtjPj4yXT1sLGFbYys0Pj4yXT0wLGFbYys4Pj4yXT0wLDB8Y31mdW5jdGlvbiBqaShsLGMpe2N8PTA7dmFyIGY9MCxwPTA7aWYoMHwobHw9MCkpZG97Zj1sLGw9MHxh''@;'; + put 'put ''W2wrND4+Ml0sMHwocD0wfGFbZj4+Ml0pJiZDb1sxMjcmY10ocCksRnQoZil9d2hpbGUoMCE9KDB8bCkpfWZ1bmN0aW9uIGtmKGwsYyxmKXtmfD0wO3ZhciBwPTAsbT0wLEE9MDswfChsfD0wKSYmKHA9MHxhW2wrND4+Ml0sbT0wfGFbbCs4Pj4yXSwwfChBPTB8YVtsPj4yXSkmJkNvWzEyNyYo''@;'; + put 'put ''Y3w9MCldKEEpLEZ0KGwpLDB8cCYmKGFbcCs4Pj4yXT1tKSxhWygwfG0/bSs0fDA6Zik+PjJdPXApfWZ1bmN0aW9uIGtBKGwpe2FbKGx8PTApPj4yXT0wLGFbbCs0Pj4yXT0wfWZ1bmN0aW9uIFlfKGwpe3ZhciBjO3JldHVybiBsfD0wLGtBKDM2KyhjPTB8dnIoNjQpKXwwKSxhW2MrOD4+Ml09''@;'; + put 'put ''bCwwfGN9ZnVuY3Rpb24gV3gobCl7cmV0dXJuIDB8R28oMHxhWzgrKGx8PTApPj4yXSl9ZnVuY3Rpb24gVV8obCxjKXt2YXIgZixwO2x8PTAsYVs0KyhjfD0wKT4+Ml09MCxhWygwPT0oMHwocD0wfGFbKGY9bCs0fDApPj4yXSkpP2w6cCs0fDApPj4yXT1jLGFbZj4+Ml09Y31mdW5jdGlvbiBR''@;'; + put 'put ''XyhsLGMpe3ZhciBmO2N8PTAsKGY9MHxhWyhsfD0wKT4+Ml0pP2FbYys0Pj4yXT1mOihhW2w+PjJdPWMsbD1sKzR8MCksYVtsPj4yXT1jfWZ1bmN0aW9uIFl4KGwsYyxmLHAsbSl7bHw9MCxjfD0wLHB8PTAsbXw9MDt2YXIgQT0wLHc9MCxiPTAsaz0wLE09MCxEPTA7Zm9yKGFbKEQ9OCsoZnw9''@;'; + put 'put ''MCl8MCk+PjJdPTErKE09MHxhW0Q+PjJdKSxhWzE2KygwfGFbMTEyKygwfGFbKEQ9YysxNnwwKT4+Ml0pPj4yXSkrND4+Ml09TSxhWzI0KygwfGFbMTEyKygwfGFbRD4+Ml0pPj4yXSk+PjJdPU0sTT0wPT0oMHxwKSxrPTB8U3MobCxjKTtrOyl7KDB8KEE9MHxhWygyPT0oMHwocD0zJmFbaz4+''@;'; + put 'put ''Ml0pKT9rOmsrLTQ4fDApKzQwPj4yXSkpPT0oMHxjKT8ocD0wfGFbKDM9PSgwfHApP2s6ays0OHwwKSs0MD4+Ml0sMHxhWyhBPTB8YVsxMjArKDB8YVtrKzE2Pj4yXSk+PjJdKT4+Ml18fChhW0E+PjJdPS0xKSk6KDB8YVsocD0wfGFbMTIwKygwfGFbaysxNj4+Ml0pPj4yXSk+PjJdfHwoYVtw''@;'; + put 'put ''Pj4yXT0xKSxwPUEpLGI9MHxhWzE2Kyh3PTB8YVsxMTIrKDB8YVsoQT1wKzE2fDApPj4yXSk+PjJdKSs0Pj4yXTtkb3tpZihiKSgwfGFbOCsoQT0wfGFbMTEyKygwfGFbRD4+Ml0pPj4yXSk+PjJdKSE9KDB8cCkmJihhWyh3PUErMjR8MCk+PjJdPSgwfChBPTB8YVt3Pj4yXSkpPCgwfGIpP0E6''@;'; + put 'put ''Yik7ZWxzZSBpZihhW3crOD4+Ml09YyxfUChtLGspLFl4KGwscCxmLDAsbSksYVsoYj0yNCsoMHxhWzExMisoMHxhW0Q+PjJdKT4+Ml0pfDApPj4yXT1hWzI0KygwfGFbMTEyKygwfGFbKCgwfGFbYj4+Ml0pPCgwfGFbMjQrKDB8YVsxMTIrKDB8YVtBPj4yXSk+PjJdKT4+Ml0pP2M6cCkrMTY+''@;'; + put 'put ''PjJdKT4+Ml0pPj4yXSwoMHxhWzI0KygwfGFbMTEyKygwfGFbQT4+Ml0pPj4yXSk+PjJdKT49KDB8YVsxNisoMHxhWzExMisoMHxhW0Q+PjJdKT4+Ml0pKzQ+PjJdKSl7cD0wO2Rve3c9MHxDUChtKSwwfGFbMTIrKDB8YVsxMTIrKDB8YVsxNisoQT0wfGFbKCgzJmFbdz4+Ml18MCk9PSgwfCgo''@;'; + put 'put ''QT0xPT0oMHxhW2FbMTIwKygwfGFbdysxNj4+Ml0pPj4yXT4+Ml0pKT8yOjMpKT93OncrKDQ4KihBPy0xOjEpfDApfDApKzQwPj4yXSk+PjJdKT4+Ml0pPj4yXXx8KHB8fChwPTB8VXgobCxmKSksSl8ocCxBKSl9d2hpbGUoKDB8dykhPSgwfGspKTtpZigwfHApe2lmKDA9PSgwfGFbMTIrKDB8''@;'; + put 'put ''YVsxMTIrKDB8YVtEPj4yXSk+PjJdKT4+Ml0pJiYoMHxXeChwKSk+MSYmSl8ocCxjKSwhTSYmKDB8YVsxMisoMHxhWzExMisoMHxhW0Q+PjJdKT4+Ml0pPj4yXSk9PSgwfHApKXtRXyhmLHApO2JyZWFrfVVfKGYscCl9fX13aGlsZSgwKTtrPTB8TnMobCxrLGMpfSFNJiYwPT0oMHxhWzEyKygw''@;'; + put 'put ''fGFbMTEyKygwfGFbRD4+Ml0pPj4yXSk+PjJdKSYmKEpfKEQ9MHxVeChsLGYpLGMpLFFfKGYsRCkpfWZ1bmN0aW9uIF9QKGwsYyl7YVs0KygwfGFbMTIwKygwfGFbMTYrKGN8PTApPj4yXSk+PjJdKT4+Ml09YVsobHw9MCk+PjJdLGFbbD4+Ml09YyxhWyhjPWwrNHwwKT4+Ml09MSsoMHxhW2M+''@;'; + put 'put ''PjJdKX1mdW5jdGlvbiBDUChsKXt2YXIgYyxmLHA7cmV0dXJuKGM9MHxhWyhsfD0wKT4+Ml0pfHxQcigxMzgzOTQsOTYyNTQsNjUsOTYyNjYpLCgwfChwPTB8YVsoZj1sKzR8MCk+PjJdKSk+MD8oYVtsPj4yXT1hWzQrKDB8YVsxMjArKDB8YVtjKzE2Pj4yXSk+PjJdKT4+Ml0sYVtmPj4yXT1w''@;'; + put 'put ''Ky0xLDB8Yyk6KFByKDk2MjQ0LDk2MjU0LDYxLDk2MjY2KSwwKX1mdW5jdGlvbiBVeChsLGMpe3JldHVybiAwfFlfKDB8ZnVuY3Rpb24ga1AobCxjKXtsfD0wO3ZhciBmLHAsbSxBO3JldHVybiBmPWxlLGxlPWxlKzE0NHwwLG09ZixwPWYrOHwwLGFbKEE9MTIrKGN8PTApfDApPj4yXT0xKyhj''@;'; + put 'put ''PTB8YVtBPj4yXSksYVttPj4yXT1jLG9vKHAsOTYyMzQsbSksaDAoYz0wfGRzKGwscCwxKSwxMzc0ODMsMjgwLDEpLGxlPWYsMHxjfShsfD0wLGN8PTApKX1mdW5jdGlvbiBKXyhsLGMpe1luKDB8YVs4KyhsfD0wKT4+Ml0sY3w9MCwxKSxhWzEyKygwfGFbMTEyKygwfGFbYysxNj4+Ml0pPj4y''@;'; + put 'put ''XSk+PjJdPWx9ZnVuY3Rpb24gUXgobCl7dmFyIGM9MCxmPTA7Zm9yKGM9MHxhWzM2KyhsfD0wKT4+Ml07YzspZj0wfGFbYys0Pj4yXSxReChjKSxjPWY7IWZ1bmN0aW9uIEd4KGwpezB8KGx8PTApJiYoWW0oMHxhW2wrMzI+PjJdKSxGdChsKSl9KGwpfWZ1bmN0aW9uIEp4KGwsYyxmKXtsfD0w''@;'; + put 'put ''LGY9K2Y7dmFyIHA9MCxtPTAsQT0wLHc9MDtmb3IocD0zNisoY3w9MCl8MCxtPTA7cD0wfGFbcD4+Ml07KUp4KGwscCxmKSxwPXArNHwwLG09bSsxfDA7cD0wfGZ1bmN0aW9uIEM1KGwsYyxmKXtmPStmO3ZhciBBLHcsYixrLE0scD0wLG09MCxEPTAsUj0wLEc9MDtmb3IoRD0wfGFbOCsoY3w9''@;'; + put 'put ''MCk+PjJdLGZ1bmN0aW9uIE5oKGwsYyl7bHw9MDt2YXIgbSxmPTAscD0wO2ZvcihmPTB8RHQobT0wfGFbOCsoY3w9MCk+PjJdKTtmOyl7Zm9yKHA9MHx3MChsLGYpO3A7KSgwfGFbMTIrKDB8YVsxMTIrKDB8YVsxNisoMHxhWygyPT0oMyZhW3A+PjJdfDApP3A6cCstNDh8MCkrNDA+PjJdKT4+''@;'; + put 'put ''Ml0pPj4yXSk+PjJdKT09KDB8YykmJlpkKG0scCwxKSxwPTB8UzAobCxwKTtmPTB8enQobSxmKX19KGx8PTAsYyksTT0wfGZ1bmN0aW9uIHFfKGwpe3ZhciBtLHcsTSxjPTAsZj0wLHA9MCxBPTAsYj0wLGs9MDtmb3IoTT1sZSxsZT1sZSsxNnwwLG09MHxmdW5jdGlvbiBJUChsLGMpe2x8PTAs''@;'; + put 'put ''Y3w9MDt2YXIgayxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxNPTAsRD0wO2ZvcihrPWxlLGxlPWxlKzE0NHwwLGI9ays4fDAsdz1rLGY9aysxNnwwLGFbNDY5MzRdPTErKEE9MHxhWzQ2OTM0XSksYVt3Pj4yXT1BLG9vKGYsOTYzMTIsdyksaDAodz0wfGRzKGwsZiwxKSwxMzc0ODMsMjgwLDEp''@;'; + put 'put ''LGFbNDY5MzRdPTErKEE9MHxhWzQ2OTM0XSksYVtiPj4yXT1BLG9vKGYsOTYzMTIsYiksZmVbYj4+MF09MHxmZVsoQT1sKzI0fDApPj4wXSxmZVtiKzE+PjBdPTB8ZmVbQSsxPj4wXSxmZVtiKzI+PjBdPTB8ZmVbQSsyPj4wXSxmZVtiKzM+PjBdPTB8ZmVbQSszPj4wXSxiPTB8b2MoZixiLDAp''@;'; + put 'put ''LGY9MHxEdChsKTtmOylZbih3LGYsMSksaDAoQT0wfEdyKGIsMHx0aShmKSwxKSwxMzc0NDcsMzA0LDEpLGFbMTYrKDB8YVsxMTIrKDB8YVtmKzE2Pj4yXSk+PjJdKT4+Ml09QSxmPTB8enQobCxmKTtmb3IocD0wfER0KGwpO3A7KXtmb3IoQT0xNisobT0wfGFbMTYrKDB8YVsxMTIrKDB8YVtw''@;'; + put 'put ''KzE2Pj4yXSk+PjJdKT4+Ml0pfDAsZj0wfHcwKGwscCk7ZjspWmQodyxmLDEpLGgwKEQ9MHxLYShiLG0sTT0wfGFbMTYrKDB8YVsxMTIrKDB8YVsxNisoMHxhWygyPT0oMyZhW2Y+PjJdfDApP2Y6ZistNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSk+PjJdLDAsMSksMTM3NDYwLDE3NiwxKSxhWzEx''@;'; + put 'put ''NisoMHxhW0QrMTY+PjJdKT4+Ml09ZixhWyhEPTIzNisoMHxhW0E+PjJdKXwwKT4+Ml09MSsoMHxhW0Q+PjJdKSxhWyhNPTIzNisoMHxhW00rMTY+PjJdKXwwKT4+Ml09MSsoMHxhW00+PjJdKSxmPTB8UzAobCxmKTtwPTB8enQobCxwKX1yZXR1cm4gYVtjPj4yXT1iLGxlPWssMHx3fShsfD0w''@;'; + put 'put ''LEE9TSksYj0wfEdvKEE9MHxhW0E+PjJdKSx3PTB8ZnVuY3Rpb24gRFAobCl7bHw9MDt2YXIgZixjPTA7Zm9yKGY9MHxmdW5jdGlvbiBMUCgpe3JldHVybiAwfGlzKDE4MjQwLDB8YVs0NTgxXSl9KCksYz0wfER0KGwpO2M7KU01KGYsYyksYz0wfHp0KGwsYyk7cmV0dXJuIDB8Zn0oQSksYj1i''@;'; + put 'put ''Ky0zfDAscD0wOyEoKDB8cCk+PSgwfGIpKTspe2ZvcihmPTB8U3MoQSxrPTB8T1AodykpO2Y7KSgwfGspPT0oMHwobD0wfGFbKDI9PSgwfChjPTMmYVtmPj4yXSkpP2Y6ZistNDh8MCkrNDA+PjJdKSkmJihsPTB8YVsoMz09KDB8Yyk/ZjpmKzQ4fDApKzQwPj4yXSksaVQodyxsKSxmPTB8TnMo''@;'; + put 'put ''QSxmLGspO2ZvcihTNShBLGssbSksZj0wfFNzKEEsayk7ZjspKDB8ayk9PSgwfChsPTB8YVsoMj09KDB8KGM9MyZhW2Y+PjJdKSk/ZjpmKy00OHwwKSs0MD4+Ml0pKSYmKGw9MHxhWygzPT0oMHxjKT9mOmYrNDh8MCkrNDA+PjJdKSxhWyhjPTIzNisoMHxhW2wrMTY+PjJdKXwwKT4+Ml09KDB8''@;'; + put 'put ''YVtjPj4yXSktMSxNNSh3LGwpLGY9MHxOcyhBLGYsayk7b2koQSxrKSxwPXArMXwwfXJldHVybiBDMShBKSxmdW5jdGlvbiBWZChsKXtObChsfD0wKX0odyksbGU9TSwwfG19KEQpLGw9MHxmdW5jdGlvbiBrNShsKXt2YXIgYz0wLGY9MCxwPTAsbT0wLEE9MDtpZigxIT0oMHxHbyhsfD0wKSkp''@;'; + put 'put ''e2ZvcihmPTB8RHQobCk7Zjspe2ZvcihjPTAscD0wfFNzKGwsZik7cDspYz1jKzF8MCxwPTB8TnMobCxwLGYpOzE9PSgwfGMpJiZNbyhmLGYsMCwwKSxmPTB8enQobCxmKX1mb3IoYz0wLG09MCxmPTB8RHQobCk7ZjspYz0ocD0oMHwoQT0oMHxhWzMyKyhBPTB8YVsxMTIrKDB8YVtmKzE2Pj4y''@;'; + put 'put ''XSk+PjJdKT4+Ml0pKygwfGFbQSsxNisxMj4+Ml0pfDApKT4oMHxjKSk/QTpjLG09cD9mOm0sZj0wfHp0KGwsZik7Zm9yKGM9MHxXbSgpLGY9MTYrKDB8YVsxMTIrKDB8YVsocD1tKzE2fDApPj4yXSk+PjJdKSs0fDA7KDB8KGY9MHxhW2Y+PjJdKSkhPSgwfG0pOylIaChjLDAsZiksYVsoQT00''@;'; + put 'put ''KyhmPTB8YVsxMTIrKDB8YVtmKzE2Pj4yXSk+PjJdKXwwKT4+Ml09MTZ8YVtBPj4yXSxmPWYrMTZ8MDtpZihIaChjLDAsbSksYVsobD00KyhBPTB8YVsxMTIrKDB8YVtwPj4yXSk+PjJdKXwwKT4+Ml09MTZ8YVtsPj4yXSwwfGFbQSszMj4+Ml0pe2ZvcihsPTB8V20oKSxmPTI0KygwfGFbMTEy''@;'; + put 'put ''KygwfGFbcD4+Ml0pPj4yXSl8MDsoMHwoZj0wfGFbZj4+Ml0pKSE9KDB8bSk7KUhoKGwsMCxmKSxhWyhBPTQrKGY9MHxhWzExMisoMHxhW2YrMTY+PjJdKT4+Ml0pfDApPj4yXT0xNnxhW0E+PjJdLGY9ZisxNnwwOyFmdW5jdGlvbiAkXyhsLGMpeyhmdW5jdGlvbiBQMyhsLGMpe2x8PTA7dmFy''@;'; + put 'put ''IGY9MCxwPTAsbT0wOzB8KGY9MHxhWyhjfD0wKT4+Ml0pJiYoYVs0KyhtPTB8YVsocD1sKzR8MCk+PjJdKT4+Ml09ZixhW2YrOD4+Ml09bSxhW3A+PjJdPWFbYys0Pj4yXSxhWyhmPWwrOHwwKT4+Ml09KDB8YVtmPj4yXSkrKDB8YVtjKzg+PjJdKSl9KShsfD0wLDB8ZnVuY3Rpb24gS18obCl7''@;'; + put 'put ''dmFyIGYsYz0wLHA9MCxtPTAsQT0wO2ZvcihmPWM9MHxhWyhsfD0wKT4+Ml07YzspcD0wfGFbKEE9Yys0fDApPj4yXSxhW0E+PjJdPWFbKG09Yys4fDApPj4yXSxhW20+PjJdPXAsYz1wO3JldHVybiBBPTB8YVsobT1sKzR8MCk+PjJdLGFbbT4+Ml09ZixhW2w+PjJdPUEsMHxsfShjfD0wKSks''@;'; + put 'put ''RnQoYyl9KGMsbCl9fWVsc2UgSGgoYz0wfFdtKCksMCxBPTB8RHQobCkpLGFbKEE9NCsoMHxhWzExMisoMHxhW0ErMTY+PjJdKT4+Ml0pfDApPj4yXT0xNnxhW0E+PjJdO3JldHVybiAwfGN9KDB8ZnVuY3Rpb24gZUMobCl7bHw9MDt2YXIgbSxjPTAsZj0wLHA9MDtmb3IobT1sZSxsZT1sZSsx''@;'; + put 'put ''NDR8MCxjPW0scD1tKzh8MCxhWzQ2OTMzXT0xKyhmPTB8YVs0NjkzM10pLGFbYz4+Ml09ZixvbyhwLDk2MzAzLGMpLGgwKHA9MHxkcyhsLHAsMSksMTM3NDgzLDI4MCwxKSxjPTB8RHQobCk7YzspWW4ocCxjLDEpLGFbMTYrKDB8YVsxMTIrKDB8YVsoZj1jKzE2fDApPj4yXSk+PjJdKSsxMj4+''@;'; + put 'put ''Ml09MCxhWzMyKygwfGFbMTEyKygwfGFbZj4+Ml0pPj4yXSk+PjJdPTAsYVsoZj00KygwfGFbMTEyKygwfGFbZj4+Ml0pPj4yXSl8MCk+PjJdPS0yJmFbZj4+Ml0sYz0wfHp0KGwsYyk7Zm9yKGM9MHxEdChsKTtjOykxJmFbNCsoZj0wfGFbMTEyKygwfGFbYysxNj4+Ml0pPj4yXSk+PjJdfHwo''@;'; + put 'put ''YVtmKzE2Pj4yXT0wLHJUKGwsYyxwKSksYz0wfHp0KGwsYyk7cmV0dXJuIGxlPW0sMHxwfShNKSksZnVuY3Rpb24geFAobCxjKXtjfD0wO3ZhciBmPTA7Zm9yKGY9MHxEdChsfD0wKTtmOykxNiZhWzQrKDB8YVsxMTIrKDB8YVtmKzE2Pj4yXSk+PjJdKT4+Ml18fF9HKGwsZixjKSxmPTB8enQo''@;'; + put 'put ''bCxmKX0oRCxsKSxEPTB8ZnVuY3Rpb24gcmMobCxjKXt2YXIgbSxBLGY9MCxwPTA7QT1sZSxsZT1sZSsxNnwwLG09QSxmPTB8dEMobHw9MCxjfD0wKSxhW20+PjJdPWY7ZTpkb3tpZihmKWZvcihwPTA7Oyl7aWYoKDB8cCk+PTEwKWJyZWFrIGU7aWYobD0wfG5UKGwsYyxtKSwoMHxmKT09KDB8''@;'; + put 'put ''KGY9MHxhW20+PjJdKSl8MD09KDB8ZikpYnJlYWs7cD1wKzF8MH19d2hpbGUoMCk7cmV0dXJuIGxlPUEsMHxsfShsLEQpLGw9MHxENihEKSxiPStmdW5jdGlvbiBUUChsKXtsfD0wO3ZhciBjPTAsZj0wLHA9MCxtPTA7Zm9yKGM9MDtsPTB8YVtsPj4yXTspYz0ocD0rX1s0MCsobT0wfGFbMTYr''@;'; + put 'put ''KDB8YVthWzExMisoMHxhWzE2KygwfGFbbD4+Ml0pPj4yXSk+PjJdPj4yXSk+PjJdKT4+M10pPihmPShmPStfW20rMzI+PjNdKT5jP2Y6Yyk/cDpmLGw9bCs0fDA7cmV0dXJuK2N9KEQpLHc9LjE1OTE1NDk0MzA5MTg5NTM1KihtPSsoMHxsKSkqKGIrZiksQT0oaz0xPT0oMHxsKSk/MDp3LGw9''@;'; + put 'put ''RDtsPTB8YVtsPj4yXTspe2lmKDgmYVs0KygwfGFbMTEyKygwfGFbMTYrKDB8YVtsPj4yXSk+PjJdKT4+Ml0pPj4yXXwwKXtwPTQ7YnJlYWt9bD1sKzR8MH1mb3IoND09KDB8cCkmJmZ1bmN0aW9uIHF4KGwsYyl7dmFyIGYscD0wLG09MDsoMHwoZj0wfGFbKGx8PTApPj4yXSkpIT0oMHwoY3w9''@;'; + put 'put ''MCkpJiYocD0wfGFbKG09Yys4fDApPj4yXSxhW2w+PjJdPWMsYVttPj4yXT0wLGFbNCsobD0wfGFbKGM9bCs0fDApPj4yXSk+PjJdPWYsYVtmKzg+PjJdPWwsYVtjPj4yXT1wLGFbcCs0Pj4yXT0wKX0oRCxsKSxmPTEvbSxwPTAsbD1EO2w9MHxhW2w+PjJdOylhWzE2KygwfGFbMTEyKygwfGFb''@;'; + put 'put ''KFI9MTYrKDB8YVtsPj4yXSl8MCk+PjJdKT4+Ml0pPj4yXT1wLF9bMjQrKDB8YVsxMTIrKDB8YVtSPj4yXSk+PjJdKT4+M109MCxHPStoYSgrKG09Ni4yODMxODUzMDcxNzk1ODYqZiorKDB8cCkpKSpBLF9bKFI9MHxhWzEzMisoMHxhW1I+PjJdKT4+Ml0pPj4zXT1HLF9bUis4Pj4zXT0rRGEo''@;'; + put 'put ''K20pKkEscD1wKzF8MCxsPWwrNHwwO3JldHVybiBfW2MrMTY+PjNdPUc9az8uNSpiOncsX1tjKzI0Pj4zXT1HLF9bYys0OD4+M109LTEsQzEoTSksMHxEfShsLGMsZiksYVtjKzMyPj4yXT1wLGw9MHxENihwKSxmPSgwfG0pPjA/K2Z1bmN0aW9uIE1QKGwsYyxmLHAsbSl7Y3w9MCxmfD0wLHB8''@;'; + put 'put ''PTAsbT0rbTt2YXIgRyxLLHBlLGdlLGJlLExlLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxPZT0wO2ZvcihMZT1sZSxsZT1sZSs0OHwwLGJlPUxlLE9lPTB8dnIoNTYqKGx8PTApfDApLGFbYmUrNDA+PjJdPWFbcCszNj4+Ml0sX1soSz1iZSs4fDApPj4zXT1iPStfWyhHPXArMTZ8MCk+''@;'; + put 'put ''PjNdLF9bYmU+PjNdPWIsYVtiZSs0ND4+Ml09YVtwPj4yXSxfW2JlKzE2Pj4zXT1iPTYuMjgzMTg1MzA3MTc5NTg2LysoMHxjKSxfWyhwZT1iZSsyNHwwKT4+M109LTEsX1soZ2U9YmUrMzJ8MCk+PjNdPS0xLGs9MCxSPTAsQT0wO3c9MHxhW2Y+PjJdOyk4JmFbNCsoMHxhWzExMisoMHxhWzE2''@;'; + put 'put ''KyhmPTB8YVt3Pj4yXSk+PjJdKT4+Ml0pPj4yXT8oYVsoRD1PZSsoNTYqUnwwKXwwKT4+Ml09ZixfW09lKyg1NipSfDApKzg+PjNdPWIqKygwfGspLGY9UisxfDAsQT0rRVAoRCxiZSxtKSk6Zj1SLGs9aysxfDAsUj1mLGY9dys0fDA7ZTpkb3tzd2l0Y2goMHxSKXtjYXNlIDE6X1tPZSs0MD4+''@;'; + put 'put ''M109MSxmPTA7YnJlYWs7Y2FzZSAyOlhfKE9lLE9lKzU2fDAsKGI9K19bT2UrNjQ+PjNdLStfW09lKzg+PjNdKT4zLjE0MTU5MjY1MzU4OTc5Mz82LjI4MzE4NTMwNzE3OTU4Ni1iOmIpLGY9MDticmVhaztkZWZhdWx0OmZvcihEPU9lKzh8MCxNPU9lLGY9MDs7KXtpZigoMHxmKT49KDB8Uikp''@;'; + put 'put ''e2Y9MDticmVhayBlfSgwfChmPWYrMXwwKSk9PSgwfFIpPyh3PU9lLGI9K19bRD4+M10rNi4yODMxODUzMDcxNzk1ODYtK19bTSs4Pj4zXSxrPU0rNTZ8MCk6KHc9az1NKzU2fDAsYj0rX1tNKzY0Pj4zXS0rX1tNKzg+PjNdKSxYXyhNLHcsYiksTT1rfX19d2hpbGUoMCk7Zm9yKDshKCgwfGYp''@;'; + put 'put ''Pj0oMHxSKSk7KVh4KE9lKyg1NipmfDApfDAsYmUsYyxtKSxmPWYrMXwwO3JldHVybiBGdChPZSksMT09KDB8bCk/KG5jKHAsLShtPUErLjUqbSksMCwwKSxfW0c+PjNdPStfW0c+PjNdK20sYVsoT2U9cCs1NnwwKT4+Ml09MXxhW09lPj4yXSk6X1tHPj4zXT0rX1tLPj4zXSxsZT1MZSwrKC41''@;'; + put 'put ''KigrX1tnZT4+M10rICtfW3BlPj4zXSktMy4xNDE1OTI2NTM1ODk3OTMpfShtLGwscCxjLGYpOjMuMTQxNTkyNjUzNTg5NzkzLDE9PSgwfGwpJiYwfChBPTB8YVtjPj4yXSkmJjB8YVs4KygwfGFbMTEyKygwfGFbQSsxNj4+Ml0pPj4yXSk+PjJdJiYoX1sodz1jKzQ4fDApPj4zXT1mLGY8MCkm''@;'; + put 'put ''JihfW3c+PjNdPWYrNi4yODMxODUzMDcxNzk1ODYpfWZ1bmN0aW9uIEVQKGwsYyxmKXtsfD0wLGY9K2Y7dmFyIHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wO2Zvcih3PTAsbT0wLEE9MCxwPTQwKyhjfD0wKXwwO2I9MHxhW3A+PjJdOykoMHwocD0ocD0wfGFbYj4+Ml0pPzB8YVs4KygwfGFbMTEy''@;'; + put 'put ''KygwfGFbcCsxNj4+Ml0pPj4yXSk+PjJdOjApKT09KDB8YVtsPj4yXSk/KHA9dysxfDAsbT1tK2YrMiooaz0rX1tiKzE2Pj4zXSksQT1BPGs/azpBKTpwPXcsdz1wLHA9Yis0fDA7cmV0dXJuIF9bbCszMj4+M109bSxhW2wrNDg+PjJdPXcsX1tsKzE2Pj4zXT1BK2YrICtfW2M+PjNdLF9bbCsy''@;'; + put 'put ''ND4+M109QSwrQX1mdW5jdGlvbiBYXyhsLGMsZil7dmFyIHAsbTsoZj0oZj0oKHA9K19bMTYrKGx8PTApPj4zXSkqK19bMzIrKGN8PTApPj4zXSsobT0rX1tjKzE2Pj4zXSkqK19bbCszMj4+M10pLygyKihmPStmKSptKnApKTwxPzE6Zik+K19bKGw9bCs0MHwwKT4+M10mJihfW2w+PjNdPWYp''@;'; + put 'put ''LGY+K19bKGw9Yys0MHwwKT4+M10mJihfW2w+PjNdPWYpfWZ1bmN0aW9uIFh4KGwsYyxmLHApe3A9K3A7dmFyIHBlLGdlLGJlLE9lLExlLEhlLFZlLHFlLG50LFdlLG90LG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLEs9MCxSZT0wLFN0PTAsa3Q9MCxzdD0wO2ZvcihrPStf''@;'; + put 'put ''WyhXZT0yNCsoY3w9MCl8MCk+PjNdLGI9K19bKG90PWMrMzJ8MCk+PjNdLG09K19bMTYrKGx8PTApPj4zXSorX1tsKzQwPj4zXSwoVmU9MT09KDB8KGZ8PTApKSk/KG09Ni4yODMxODUzMDcxNzk1ODYqKEE9bT4oQT0uMTU5MTU0OTQzMDkxODk1MzUqKFJlPStfW2wrMzI+PjNdKSk/bTpBKS1S''@;'; + put 'put ''ZSk+MD8ocD1tLysoMHxhW2wrNDg+PjJdKStwLE09MCxtPUEpOihNPTAsbT1BKTpNPStfW2wrOD4+M10tK19bbCszMj4+M10vKDIqbSksZ2U9KHBlPStfW2wrMjQ+PjNdK20pPihxZT0rX1sobnQ9Yys4fDApPj4zXSksT2U9KDErKDB8YVsoYmU9bCs0OHwwKT4+Ml0pfDApLzJ8MCxMZT0xL20s''@;'; + put 'put ''UmU9cC9tKi41LEhlPWwrOHwwLFI9Yys0MHwwLEc9MCxLPTAsQT1NO1I9MHxhW1I+PjJdOyl7aWYoKDB8KHc9KHc9MHxhW1I+PjJdKT8wfGFbOCsoMHxhWzExMisoMHxhW3crMTY+PjJdKT4+Ml0pPj4yXTowKSk9PSgwfGFbbD4+Ml0pJiYoMHxENigwfGFbUiszMj4+Ml0pKT49MSl7RD0oTT0r''@;'; + put 'put ''X1tSKzE2Pj4zXSkqTGU7ZG97aWYoIVZlKXtpZigxPT0oMHxhW2JlPj4yXSkpe0E9K19bSGU+PjNdO2JyZWFrfUE9QStSZStEO2JyZWFrfTAhPUEmJihBPTI9PSgwfGFbYmU+PjJdKT8zLjE0MTU5MjY1MzU4OTc5MzpEK0EpLGI9QSxrPWs8MD9BOmt9d2hpbGUoMCk7bmMoUixzdD0raGEoK0Ep''@;'; + put 'put ''Km0sa3Q9K0RhKCtBKSptLCtLeChSLHN0LGt0LEEpKSxBPShWZT8oTStwKSpMZTpEK1JlKStBLHc9Rz1HKzF8MCxNPSgwfEcpPT0oMHxPZSk/QTpLfWVsc2Ugdz1HLE09SztSPVIrNHwwLEc9dyxLPU19bT1nZT9wZTpxZSwoMHxmKT4xJiYoMHwoU3Q9MHxhW2w+PjJdKSk9PSgwfGFbYys0ND4+''@;'; + put 'put ''Ml0pJiYoX1syNCsoMHxhWzExMisoMHxhW1N0KzE2Pj4yXSk+PjJdKT4+M109SyksX1tudD4+M109bSxfW1dlPj4zXT1rLF9bb3Q+PjNdPWJ9ZnVuY3Rpb24gbmMobCxjLGYscCl7Yz0rYyxmPStmO3ZhciBELFIsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRz0wLEs9MDtmb3IoUj0wIT0ocD0r''@;'; + put 'put ''cCksbT0wfER0KEQ9MHxhWzgrKGx8PTApPj4yXSk7bTspdz0rX1soaz0wfGFbMTMyKygwfGFbbSsxNj4+Ml0pPj4yXSk+PjNdLEE9K19bKE09ays4fDApPj4zXSxSPyhiPShHPStoYSgrcCkpKnctKEs9K0RhKCtwKSkqQSxBPUsqdytHKkEpOmI9dyxfW2s+PjNdPWIrYyxfW00+PjNdPUErZixt''@;'; + put 'put ''PTB8enQoRCxtKTtmb3IobT1sKzM2fDA7bT0wfGFbbT4+Ml07KW5jKG0sYyxmLHApLG09bSs0fDB9ZnVuY3Rpb24gS3gobCxjLGYscCl7Yz0rYyxmPStmLHA9K3A7dmFyIEQsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsUj0wLEc9MDtEPTB8YVs4KyhsfD0wKT4+Ml0sbT0rX1tsKzQ4Pj4zXTtk''@;'; + put 'put ''b3tpZihtPj0wKW09KG09My4xNDE1OTI2NTM1ODk3OTMtbStwKTwwP20rNi4yODMxODUzMDcxNzk1ODY6bTtlbHNle2lmKDI9PSgwfEQ2KDB8YVtsKzMyPj4yXSkpKXttPXArLTEuNTcwNzk2MzI2Nzk0ODk2NjticmVha31mb3IobT0oaz0rX1s4Kyh3PTB8YVsxMzIrKDB8YVsoUj0xNisoTT0w''@;'; + put 'put ''fGFbbD4+Ml0pfDApPj4yXSk+PjJdKT4+M10rZikqaysobT0rX1t3Pj4zXStjKSptLHc9MHxEdChEKSxBPU07dzspKDB8dykhPSgwfE0pJiYoYj0oaz0rX1s4KyhHPTB8YVsxMzIrKDB8YVt3KzE2Pj4yXSk+PjJdKT4+M10rZikqaysoYj0rX1tHPj4zXStjKSpiKTxtJiYobT1iLEE9dyksdz0w''@;'; + put 'put ''fHp0KEQsdyk7aWYoKDB8TSkhPSgwfEEpKXtpZigobT0rX1sodz0wfGFbMTMyKyhBPTB8YVtSPj4yXSk+PjJdKT4+M10pPi0oaz0rX1tsKzE2Pj4zXS0oYj0rX1tsKzI0Pj4zXSkpJiYwIT0oMSZhW2wrNTY+PjJdfDApKXtmPStEMCgrKGYqZitjKmMpKSxjPStVbCgrICtfW3crOD4+M10sKyht''@;'; + put 'put ''K2spKSxtPStoYSgrYyksbT1wKzEuNTcwNzk2MzI2Nzk0ODk2Ni1jLStYcCgrKGstYi9tKS9mKm0pO2JyZWFrfW09KG09cCszLjE0MTU5MjY1MzU4OTc5My0obT0rVWwoKyArX1t3Kzg+PjNdLCttKSktK19bMjQrKDB8YVtBKzExMj4+Ml0pPj4zXSk+Ni4yODMxODUzMDcxNzk1ODY/bSstNi4y''@;'; + put 'put ''ODMxODUzMDcxNzk1ODY6bTticmVha31tPTB9fXdoaWxlKDApO3JldHVybittfWZ1bmN0aW9uIFdtKCl7cmV0dXJuIDB8dnIoMTIpfWZ1bmN0aW9uIFltKGwpe3ZhciBjPTAsZj0wO2lmKDB8KGx8PTApKXtmb3IoYz0wfGFbbD4+Ml07YzspZj0wfGFbYys0Pj4yXSxGdChjKSxjPWY7RnQobCl9''@;'; + put 'put ''fWZ1bmN0aW9uIEhoKGwsYyxmKXtsfD0wLGN8PTA7dmFyIG0scD0wO209MHxmdW5jdGlvbiAkeChsKXtsfD0wO3ZhciBjO3JldHVybiBjPTB8dnIoMTIpLGFbYz4+Ml09bCwwfGN9KGZ8PTApLGFbKGY9bCs4fDApPj4yXT0xKygwfGFbZj4+Ml0pLDA9PSgwfGMpfCgwfChwPTB8YVsoZj1sKzR8''@;'; + put 'put ''MCk+PjJdKSk9PSgwfGMpPyhhWygwfHA/cCs0fDA6bCk+PjJdPW0sYVttKzg+PjJdPXAscD0wKTooZj0wfGFbKHA9Yys0fDApPj4yXSxhW3A+PjJdPW0sYVttKzg+PjJdPWMscD1mLGY9Zis4fDApLGFbZj4+Ml09bSxhW20rND4+Ml09cH1mdW5jdGlvbiBlVChsKXtsfD0wO3ZhciBmLHAsYz0w''@;'; + put 'put ''O2ZvcihwPTQrKGY9MHxXbSgpKXwwLGM9MDtsPTB8YVtsPj4yXTspSGgoZixjLDB8YVtsPj4yXSksYz0wfGFbcD4+Ml0sbD1sKzR8MDtyZXR1cm4gMHxmfWZ1bmN0aW9uIHRUKGwsYyxmLHApe2N8PTAsZnw9MCxwfD0wO3ZhciBBLHcsYixtPTAsaz0wLE09MDtmb3IobT1sfD0wOzspe2lmKCEo''@;'; + put 'put ''az0wfGFbbT4+Ml0pKXtNPTY7YnJlYWt9aWYoKDB8YVtrPj4yXSk9PSgwfGMpKWJyZWFrO209ays0fDB9Zm9yKDY9PSgwfE0pJiZQcig5NjI3MCw5NjI3NywyMTcsOTYyODgpLGFbKDB8KG09MHxhWyhiPWsrOHwwKT4+Ml0pP20rNHwwOmwpPj4yXT1jPTB8YVsoQT1rKzR8MCk+PjJdLHc9bCs0''@;'; + put 'put ''fDAsYVsoMHxjP2MrOHwwOncpPj4yXT1tLGM9MCxtPWw7bT0wfGFbbT4+Ml07KXtpZigoMHxhW20+PjJdKT09KDB8Zikpe009OTticmVha31jPW0sbT1tKzR8MH1pZig5PT0oMHxNKSl7ZG97aWYocCl7aWYoKDB8bSk9PSgwfGFbdz4+Ml0pKXthW3c+PjJdPWssYVtBPj4yXT0wLGFbYj4+Ml09''@;'; + put 'put ''bSxtPW0rNHwwO2JyZWFrfWFbYj4+Ml09bSxhW0E+PjJdPWFbKG09bSs0fDApPj4yXSxhWzgrKDB8YVttPj4yXSk+PjJdPWs7YnJlYWt9aWYoKDB8bSk9PSgwfGFbbD4+Ml0pKXthW2w+PjJdPWssYVtBPj4yXT1tLGFbYj4+Ml09MCxtPW0rOHwwO2JyZWFrfWFbYys0Pj4yXT1rLGFbYj4+Ml09''@;'; + put 'put ''YyxhW0E+PjJdPW0sbT1tKzh8MDticmVha313aGlsZSgwKTthW20+PjJdPWt9fWZ1bmN0aW9uIEQ2KGwpe3JldHVybiAwfGFbOCsobHw9MCk+PjJdfWZ1bmN0aW9uIHRDKGwsYyl7bHw9MCxjfD0wO3ZhciBNLGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxEPTA7Zm9yKE09MHxmdW5jdGlv''@;'; + put 'put ''biBFNSgpe3JldHVybiAwfGlzKDE4Mjc2LDB8YVs0NTgxXSl9KCkscD0wfER0KGMpO3A7KXtmb3IoZj0wfHcwKGMscCk7ZjspYVthWzEyMCsoMHxhW2YrMTY+PjJdKT4+Ml0+PjJdPTAsZj0wfFMwKGMsZik7cD0wfHp0KGMscCl9Zm9yKGs9MSxmPTA7dz0wfGFbbD4+Ml07KXtmb3IoQT0wfFNz''@;'; + put 'put ''KGMsYj0wfGFbdz4+Ml0pO0E7KXtpZigoMHxhW2FbMTIwKygwfGFbKG09QSsxNnwwKT4+Ml0pPj4yXT4+Ml0pPjApe2ZvcihsPTB8bWlbNjMmYVtNPj4yXV0oTSwwLDEyOCk7bDspKDB8YVthWzEyMCsoMHxhWzE2KyhwPTB8YVtsKzg+PjJdKT4+Ml0pPj4yXT4+Ml0pPigwfGFbYVsxMjArKDB8''@;'; + put 'put ''YVttPj4yXSk+PjJdPj4yXSkmJigwfGFbKDI9PSgwfChEPTMmYVtwPj4yXSkpP3A6cCstNDh8MCkrNDA+PjJdKSE9KDB8YikmJihmPWYrKCgwfGFbKDM9PSgwfEQpP3A6cCs0OHwwKSs0MD4+Ml0pIT0oMHxiKSYxKXwwKSxsPTB8bWlbNjMmYVtNPj4yXV0oTSxsLDgpO2xUKE0sQSl9QT0wfE5z''@;'; + put 'put ''KGMsQSxiKX1mb3IocD0wfFNzKGMsYik7cDspMHxhWyhsPTB8YVsxMjArKDB8YVtwKzE2Pj4yXSk+PjJdKT4+Ml18fChhW2w+PjJdPWsseDUoTSxwKSkscD0wfE5zKGMscCxiKTtsPXcrNHwwLGs9aysxfDB9cmV0dXJuIGZ1bmN0aW9uIFJQKGwpe05sKGx8PTApfShNKSwwfGZ9ZnVuY3Rpb24g''@;'; + put 'put ''blQobCxjLGYpe2x8PTA7dmFyIHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MDtwPTB8YVsoZnw9MCk+PjJdLE09MHxEdChjfD0wKTtlOmZvcig7TTspe2ZvcihrPTB8U3MoYyxNKTtrOyl7Zm9yKCgwfChtPTB8YVsoMz09KDB8KEE9MyZhW2s+PjJdKSk/azprKzQ4fDApKzQwPj4yXSkpPT0o''@;'; + put 'put ''MHxNKSYmKG09MHxhWygyPT0oMHxBKT9rOmsrLTQ4fDApKzQwPj4yXSksYj0wOyEoKDB8Yik+PTIpOyl7aWYodz0wfGVUKGwpLHRUKGwsTSxtLGIpLCgwfChBPTB8dEMobCxjKSkpPCgwfHApKXtpZihZbSh3KSwhQSl7cD0wO2JyZWFrIGV9cD1BfWVsc2UgWW0obCksbD13O2I9YisxfDB9az0w''@;'; + put 'put ''fE5zKGMsayxNKX1NPTB8enQoYyxNKX1yZXR1cm4gYVtmPj4yXT1wLDB8bH1mdW5jdGlvbiBfRyhsLGMsZil7bHw9MCxjfD0wLGZ8PTA7dmFyIHcscD0wLG09MCxBPTA7Zm9yKHc9MHxXbSgpLHA9MHx3MChsLGMpO3A7KW09cCstNDh8MCxIaCh3LDAsMHxhWygyPT0oMyZhW3A+PjJdfDApP3A6''@;'; + put 'put ''bSkrNDA+PjJdKSxhWyhtPTQrKDB8YVsxMTIrKDB8YVsxNisoMHxhWygyPT0oMyZhW3A+PjJdfDApP3A6bSkrNDA+PjJdKT4+Ml0pPj4yXSl8MCk+PjJdPTMyfGFbbT4+Ml0scD0wfFMwKGwscCk7Zm9yKHA9MHxNZihsLGMpO3A7KW09cCs0OHwwLEhoKHcsMCwwfGFbKDM9PSgzJmFbcD4+Ml18''@;'; + put 'put ''MCk/cDptKSs0MD4+Ml0pLGFbKG09NCsoMHxhWzExMisoMHxhWzE2KygwfGFbKDM9PSgzJmFbcD4+Ml18MCk/cDptKSs0MD4+Ml0pPj4yXSk+PjJdKXwwKT4+Ml09MzJ8YVttPj4yXSxwPTB8SDMobCxwKTtlOmRve2lmKCgwfEQ2KHcpKT4xKXtmb3IobT1mKzR8MCxsPWY7Oyl7aWYoIShwPTB8''@;'; + put 'put ''YVtsPj4yXSkpe0E9MTM7YnJlYWsgZX1pZihsPXArNHwwLDMyJmFbNCsoMHxhWzExMisoMHxhWzE2KygwfGFbcD4+Ml0pPj4yXSk+PjJdKT4+Ml0mJjMyJmFbNCsoMHxhWzExMisoMHxhWzE2KygwfGFbYVsoKDB8cCk9PSgwfGFbbT4+Ml0pP2Y6bCk+PjJdPj4yXSk+PjJdKT4+Ml0pPj4yXXww''@;'; + put 'put ''KWJyZWFrfUhoKGYscCxjKX1lbHNlIEE9MTN9d2hpbGUoMCk7ZTpkb3tpZigxMz09KDB8QSkpe3Q6ZG97aWYoKDB8RDYodykpPjApe2ZvcihwPWY7Oyl7aWYoIShwPTB8YVtwPj4yXSkpYnJlYWsgdDtpZigzMiZhWzQrKDB8YVsxMTIrKDB8YVsxNisoMHxhW3A+PjJdKT4+Ml0pPj4yXSk+PjJd''@;'; + put 'put ''fDApYnJlYWs7cD1wKzR8MH1IaChmLHAsYyk7YnJlYWsgZX19d2hpbGUoMCk7SGgoZiwwLGMpfX13aGlsZSgwKTtmb3IocD13O3A9MHxhW3A+PjJdOylhWyhmPTQrKDB8YVsxMTIrKDB8YVsxNisoMHxhW3A+PjJdKT4+Ml0pPj4yXSl8MCk+PjJdPS0zMyZhW2Y+PjJdLHA9cCs0fDA7WW0odyl9''@;'; + put 'put ''ZnVuY3Rpb24gTW8obCxjLGYscCl7bHw9MCxjfD0wLGZ8PTAscHw9MDtmb3IodmFyIG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wO0E9MHxhWzE2KygwfGFbMTEyKygwfGFbYysxNj4+Ml0pPj4yXSk+PjJdOyl7aWYodz1mKzF8MCxtPTB8YVsxMisoYz0xNisoaz0wfGFbMTEyKygwfGFbKGI9QSsx''@;'; + put 'put ''NnwwKT4+Ml0pPj4yXSl8MCk+PjJdKXtpZigoMHxtKT4oMHxmKSl7TT0xMTticmVha31tPWM9MHxhW2MrND4+Ml0sKDB8Yyk9PSgwfHApP2M9azooZj1rKzI0fDAsMCE9KDB8YVtrKzMyPj4yXSkmJigwfGFbZj4+Ml0pPT0oMHxwKXx8KHA9YyksYVtmPj4yXT1tLGFbMzIrKGM9MHxhWzExMiso''@;'; + put 'put ''MHxhW2I+PjJdKT4+Ml0pPj4yXT1hW2MrMTYrMTI+PjJdLGM9MHxhWzExMisoMHxhW2I+PjJdKT4+Ml0pLGM9YysxNnwwfWFbYys0Pj4yXT1sLGFbMTYrKDB8YVsxMTIrKDB8YVtiPj4yXSk+PjJdKSsxMj4+Ml09dyxjPUEsZj13fTExPT0oMHxNKSYmKDB8YVtrKzMyPj4yXSk8PSgwfGYpJiYo''@;'; + put 'put ''YVtrKzI0Pj4yXT1sLGFbMzIrKDB8YVsxMTIrKDB8YVtiPj4yXSk+PjJdKT4+Ml09dyl9ZnVuY3Rpb24gclQobCxjLGYpe2x8PTAsZnw9MDt2YXIgcD0wLG09MCxBPTA7Zm9yKGFbKEE9NCsoMHxhWzExMisoMHxhWzE2KyhjfD0wKT4+Ml0pPj4yXSl8MCk+PjJdPTF8YVtBPj4yXSxBPTB8U3Mo''@;'; + put 'put ''bCxjKTtBOykoMHwocD0wfGFbKDI9PSgwfChtPTMmYVtBPj4yXSkpP0E6QSstNDh8MCkrNDA+PjJdKSk9PSgwfGMpJiYocD0wfGFbKDM9PSgwfG0pP0E6QSs0OHwwKSs0MD4+Ml0pLDEmYVs0KygwfGFbMTEyKygwfGFbKG09cCsxNnwwKT4+Ml0pPj4yXSk+PjJdfHwoWmQoZixBLDEpLGFbMTYr''@;'; + put 'put ''KDB8YVsxMTIrKDB8YVttPj4yXSk+PjJdKT4+Ml09YyxyVChsLHAsZikpLEE9MHxOcyhsLEEsYyl9ZnVuY3Rpb24gUzUobCxjLGYpe2x8PTAsZnw9MDt2YXIgSyxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAscGU9MDtmb3IoSz0wfFFuKHBlPShSPTB8YVsyMzYrKDB8''@;'; + put 'put ''YVsxNisoY3w9MCk+PjJdKT4+Ml0pPDwyKSxwZT0wfFFuKHBlKSxiPTAsRD0wfFNzKGwsYyksRz0wLG09MDtEOyl7Zm9yKCgwfChBPTB8YVsoMj09KDB8KHA9MyZhW0Q+PjJdKSk/RDpEKy00OHwwKSs0MD4+Ml0pKT09KDB8YykmJihBPTB8YVsoMz09KDB8cCk/RDpEKzQ4fDApKzQwPj4yXSks''@;'; + put 'put ''dz0wLE09MHxTcyhsLGMpLGs9YjtNOykoMHxNKSE9KDB8RCk/KCgwfChwPTB8YVsoMj09KDB8KGI9MyZhW00+PjJdKSk/TTpNKy00OHwwKSs0MD4+Ml0pKT09KDB8YykmJihwPTB8YVsoMz09KDB8Yik/TTpNKzQ4fDApKzQwPj4yXSksKGI9MHxLYShsLEEscCwwLDApKT9BPj4+MDxwPj4+MD8o''@;'; + put 'put ''cD1rKzF8MCwoYj0wfGFbMTE2KygwfGFbKHc9YisxNnwwKT4+Ml0pPj4yXSkmJihvaShmLGIpLGFbMTE2KygwfGFbdz4+Ml0pPj4yXT0wKSx3PTEpOih3PTEscD1rKTpwPWspOnA9ayxNPTB8TnMobCxNLGMpLGs9cDt3PyhhW0srKG08PDIpPj4yXT1BLHA9RyxtPW0rMXwwKTooYVtwZSsoRzw8''@;'; + put 'put ''Mik+PjJdPUEscD1HKzF8MCksYj1rLEQ9MHxOcyhsLEQsYyksRz1wfXA9UistMS1ifDA7ZTpkb3tpZigoMHxwKT4wKXtpZigoMHxwKTwoMHxHKSlBPTA7ZWxzZXtpZigoMHxwKSE9KDB8RykpYnJlYWs7Zm9yKEE9MTYrKG09MHxhW0s+PjJdKXwwLHA9MDs7KXtpZigoMHxwKT49KDB8RykpYnJl''@;'; + put 'put ''YWsgZTtoMCgwfEthKGwsbSxSPTB8YVtwZSsocDw8Mik+PjJdLDAsMSksMTM3NDYwLDE3NiwxKSxhWyhmPTIzNisoMHxhW0E+PjJdKXwwKT4+Ml09MSsoMHxhW2Y+PjJdKSxhWyhSPTIzNisoMHxhW1IrMTY+PjJdKXwwKT4+Ml09MSsoMHxhW1I+PjJdKSxwPXArMXwwfX1mb3IoOzspe2lmKCgw''@;'; + put 'put ''fEEpPj0oMHxHKSl7bT0yO2JyZWFrfWlmKCgwfChtPTF8QSkpPj0oMHxHKSl7bT0yO2JyZWFrfWgwKDB8S2EobCxmPTB8YVtwZSsoQTw8Mik+PjJdLFI9MHxhW3BlKyhtPDwyKT4+Ml0sMCwxKSwxMzc0NjAsMTc2LDEpLGFbKGY9MjM2KygwfGFbZisxNj4+Ml0pfDApPj4yXT0xKygwfGFbZj4+''@;'; + put 'put ''Ml0pLGFbKFI9MjM2KygwfGFbUisxNj4+Ml0pfDApPj4yXT0xKygwfGFbUj4+Ml0pLEE9QSsyfDAscD1wKy0xfDB9Zm9yKDs7KXtpZigoMHxwKTw9MClicmVhayBlO2gwKDB8S2EobCxSPTB8YVtwZT4+Ml0sRz0wfGFbcGUrKG08PDIpPj4yXSwwLDEpLDEzNzQ2MCwxNzYsMSksYVsoUj0yMzYr''@;'; + put 'put ''KDB8YVtSKzE2Pj4yXSl8MCk+PjJdPTErKDB8YVtSPj4yXSksYVsoRz0yMzYrKDB8YVtHKzE2Pj4yXSl8MCk+PjJdPTErKDB8YVtHPj4yXSksbT1tKzF8MCxwPXArLTF8MH19fXdoaWxlKDApO0Z0KHBlKSxGdChLKX1mdW5jdGlvbiBNNShsLGMpe3ZhciBmLHAsbTtsfD0wLGY9bGUsbGU9bGUr''@;'; + put 'put ''MTZ8MCxhWyhtPWYpKzg+PjJdPWFbMjM2KygwfGFbKHA9MTYrKGN8PTApfDApPj4yXSk+PjJdLGw9MTIrKDB8bWlbNjMmYVtsPj4yXV0obCxtLDEpKXwwLGFbMTY0KygwfGFbcD4+Ml0pPj4yXT1hW2w+PjJdLGFbbD4+Ml09YyxsZT1mfWZ1bmN0aW9uIGlUKGwsYyl7bHw9MDt2YXIgbSx3LGY9''@;'; + put 'put ''MCxwPTAsQT0wO2lmKHc9bGUsbGU9bGUrMTZ8MCxhWyhBPXcpKzg+PjJdPWFbMjM2KygwfGFbKG09MTYrKGN8PTApfDApPj4yXSk+PjJdLChBPTB8bWlbNjMmYVtsPj4yXV0obCxBLDQpKXx8UHIoOTYzMjIsOTYzMjUsMTA3LDk2MzM1KSwoMHwoZj0wfGFbKHA9QSsxMnwwKT4+Ml0pKT09KDB8''@;'; + put 'put ''YykpYVtwPj4yXT1jPTB8YVsxNjQrKDB8YVttPj4yXSk+PjJdLGN8fG1pWzYzJmFbbD4+Ml1dKGwsQSwyKTtlbHNle2Rve3A9MCE9KDB8KGY9MHxhWyhsPTE2NCsoMHxhW2YrMTY+PjJdKXwwKT4+Ml0pKX13aGlsZShwJigwfGYpIT0oMHxjKSk7cCYmKGFbbD4+Ml09YVsxNjQrKDB8YVtmKzE2''@;'; + put 'put ''Pj4yXSk+PjJdKX1sZT13fWZ1bmN0aW9uIE9QKGwpe3ZhciBmLGM9MCxwPTAsbT0wO3JldHVybihmPTB8bWlbNjMmYVsobHw9MCk+PjJdXShsLDAsMTI4KSk/KGFbKG09ZisxMnwwKT4+Ml09cD0wfGFbMTY0KygwfGFbMTYrKGM9MHxhW20+PjJdKT4+Ml0pPj4yXSxwfHxtaVs2MyZhW2w+PjJd''@;'; + put 'put ''XShsLGYsMikpOmM9MCwwfGN9ZnVuY3Rpb24geDUobCxjKXt2YXIgZixwO2x8PTAsZj1sZSxsZT1sZSsxNnwwLGFbKHA9ZikrOD4+Ml09Y3w9MCxtaVs2MyZhW2w+PjJdXShsLHAsMSksbGU9Zn1mdW5jdGlvbiBsVChsLGMpe3ZhciBmLHA7bHw9MCxmPWxlLGxlPWxlKzE2fDAsYVsocD1mKSs4''@;'; + put 'put ''Pj4yXT1jfD0wLG1pWzYzJmFbbD4+Ml1dKGwscCwyKSxsZT1mfWZ1bmN0aW9uIE5sKGwpe2x8PTA7dmFyIGM9MCxmPTAscD0wLG09MCxBPTAsdz0wO2Rve2lmKDAhPSgwfGwpJiYoMHxhW2wrMjQ+PjJdKTw9MCl7aWYoYz0wfGFbKEE9MzIrKHc9MHxhW2wrND4+Ml0pfDApPj4yXSl7aWYoKDB8''@;'; + put 'put ''KGM9MHxxMFsxMjcmY10obCwyLDAsdykpKTwwKXtjPS0xO2JyZWFrfX1lbHNlIGM9MDtpZigwfGFbbCsyOD4+Ml0mJmVoKGwsMCksbT0wPT0oMHxjKSl7aWYobWlbNjMmYVthW2wrMTY+PjJdPj4yXV0obCwwLDY0KSwoMHxwdShsKSk+MCl7Yz0tMTticmVha30oMHxhWzEyKyhjPTB8YVsoZj1s''@;'; + put 'put ''Kzh8MCk+PjJdKT4+Ml0pPjA/KHEwWzEyNyZhWyhwPWwrMTJ8MCk+PjJdXShsLDB8YVtjKzg+PjJdLDAsdyksYz0wfGFbZj4+Ml0pOnA9bCsxMnwwLHEwWzEyNyZhW3A+PjJdXShsLGMsMCx3KX0oYz0wfGFbbCsyMD4+Ml0pP20mMT09KDB8YykmJnEwWzEyNyZhW2wrMTI+PjJdXShsLGwsMCx3''@;'; + put 'put ''KTpGdChsKSwoYz0wfGFbQT4+Ml0pJiZxMFsxMjcmY10obCw2LDAsdyksYz0wfWVsc2UgYz0tMX13aGlsZSgwKTtyZXR1cm4gMHxjfWZ1bmN0aW9uIEYzKGwpe3ZhciBjPTAsZj0wLHA9MDtmPTB8YVsoYz0wfGFbKHA9OCsobHw9MCl8MCk+PjJdKT4+Ml07ZTpkb3tpZigxMiZmKWw9MHxhW2Mr''@;'; + put 'put ''ND4+Ml07ZWxzZXtpZighKDMmZikpe2w9MHxhWyhmPWMrOHwwKT4+Ml0sYVtmPj4yXT0wO2JyZWFrfWZvcihsPTB8czAobCksZj0oYz0wfGFbOCsoZj0wfGFbcD4+Ml0pPj4yXSkrKGFbZisxMj4+Ml08PDIpfDA7Oyl7aWYoYz4+PjA+PWY+Pj4wKWJyZWFrIGU7YVtjPj4yXT0wLGM9Yys0fDB9''@;'; + put 'put ''fX13aGlsZSgwKTtyZXR1cm4gYVsocD0wfGFbcD4+Ml0pPj4yXT0tNDA5NyZhW3A+PjJdLGFbcCsxNj4+Ml09MCxhW3ArND4+Ml09MCwwfGx9ZnVuY3Rpb24gczAobCl7dmFyIGM9MCxmPTAscD0wLG09MCxBPTA7aWYoNDA5NiYoYz0wfGFbKGw9MHxhWyhBPTgrKGx8PTApfDApPj4yXSk+PjJd''@;'; + put 'put ''KSlsPTB8YVtsKzQ+PjJdO2Vsc2V7ZTpkb3tpZigzJmMpZm9yKHA9MHxhW2wrOD4+Ml0sbT1wKyhhW2wrMTI+PjJdPDwyKXwwLGM9MCxsPTA7Oyl7aWYocD4+PjA+PW0+Pj4wKWJyZWFrIGU7aWYoZj0wfGFbcD4+Ml0pe2ZvcihjP2FbYz4+Ml09ZjooYz1mLGw9Zik7Zj0wfGFbYz4+Ml07KWM9''@;'; + put 'put ''ZjthW3A+PjJdPWN9cD1wKzR8MH1lbHNle2lmKDExMiZjfDApe2w9MHxhW2wrOD4+Ml07YnJlYWt9aWYobD0wfGFbbCs0Pj4yXSl7Zm9yKDs7KXtpZighKGY9MHxhWyhjPWwrNHwwKT4+Ml0pKXtwPWw7YnJlYWt9YVtjPj4yXT1hW2Y+PjJdLGFbZj4+Ml09bCxsPWZ9Zm9yKDs7KXtpZighKGM9''@;'; + put 'put ''MHxhW3A+PjJdKSlicmVhayBlO2lmKGY9MHxhW2MrND4+Ml0pe2Zvcig7YVtjKzQ+PjJdPWFbZj4+Ml0sYVtmPj4yXT1jLGM9MHxhW2YrND4+Ml07KW09ZixmPWMsYz1tO2FbcD4+Ml09ZixwPWZ9ZWxzZSBwPWN9fWVsc2UgbD0wfX13aGlsZSgwKTthWzQrKEE9MHxhW0E+PjJdKT4+Ml09bCxh''@;'; + put 'put ''W0E+PjJdPTQwOTZ8YVtBPj4yXX1yZXR1cm4gMHxsfWZ1bmN0aW9uIGlzKGwsYyl7bHw9MCxjfD0wO3ZhciBrLGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wO2s9bGUsbGU9bGUrMTZ8MCxBPWs7ZTpkb3tpZigwIT0oMHxsKSYwIT0oMHxjKSYmKG09MHxCMCg0MCksMCE9KDB8bSkpKXthW20+PjJd''@;'; + put 'put ''PTAsYVttKzE2Pj4yXT0wLGFbbSs0Pj4yXT0wLEptKG0sbCwwKSxiPWwrMzJ8MCxhWyhmPW0rMjB8MCk+PjJdPTAsYVtmKzQ+PjJdPTAsYVtmKzg+PjJdPTAsYVtmKzEyPj4yXT0wLGFbZisxNj4+Ml09MCxmPTB8YVtiPj4yXTtkb3tpZihmKWlmKGFbQT4+Ml09MCwoMHwoZj0wfHEwWzEyNyZm''@;'; + put 'put ''XShtLDEsQSxsKSkpPj0wKWlmKGYpe2lmKDB8KHA9MHxhW0E+PjJdKSl7aWYoYVtjKzQ+PjJdJmFbcD4+Ml0pe2Y9bTticmVha31mPW0sdz0xMjticmVha31pZigwfGFbKGY9bCsyOHwwKT4+Ml0pe2lmKEZ0KG0pLCEocD0wfHEwWzEyNyZhW2Y+PjJdXSgwLDAsNDAsbCkpKXtmPTA7YnJlYWsg''@;'; + put 'put ''ZX1hW3A+PjJdPTAsYVtwKzE2Pj4yXT0wLGFbcCs0Pj4yXT0wLEptKHAsbCwwKSxhW3ArMjA+PjJdPTEsYVtwKzI0Pj4yXT0wLGFbcCszMj4+Ml09MCxhW3ArMjg+PjJdPTAsZj1wLG09cCx3PTExfWVsc2UgZj1tLHc9MTJ9ZWxzZSBmPW0sdz0xMTtlbHNlIGY9bSx3PTEyO2Vsc2UgZj1tLHc9''@;'; + put 'put ''MTF9d2hpbGUoMCk7aWYoMTE9PSgwfHcpJiYocD0wfHEwWzEyNyZhW2YrMTI+PjJdXShmLDAsMjgsbCksYVtBPj4yXT1wLHA/KGFbcD4+Ml09YVtjKzQ+PjJdLGFbKEE9cCs0fDApPj4yXT0wLGFbQSs0Pj4yXT0wLGFbQSs4Pj4yXT0wLGFbQSsxMj4+Ml09MCxhW0ErMTY+PjJdPTAsYVtBKzIw''@;'; + put 'put ''Pj4yXT0wKTooZj1tLHc9MTIpKSwxMj09KDB8dykpe0Z0KGYpLGY9MDticmVha31hW2YrOD4+Ml09cCxhW2Y+PjJdPWFbYz4+Ml0sYVtmKzE2Pj4yXT1jLChwPTB8YVtiPj4yXSkmJnEwWzEyNyZwXShmLDUsbSxsKX1lbHNlIGY9MH13aGlsZSgwKTtyZXR1cm4gbGU9aywwfGZ9ZnVuY3Rpb24g''@;'; + put 'put ''Q2MobCxjKXt2YXIgbSxBLHcsZj0wLHA9MCxiPTAsaz0wO209MHxhW2FbMTYrKGx8PTApPj4yXT4+Ml0sZj00MDk2Jih3PTB8YVsoQT0wfGFbKGs9bCs4fDApPj4yXSk+PjJdKSwoY3w9MCk/MHxhW0ErMTY+PjJdP2M9LTE6KHA9MCxiPTUpOmY/KHA9ZixjPTB8YVtBKzQ+PjJdLGI9NSk6Yz0t''@;'; + put 'put ''MTtlOmRve2lmKDU9PSgwfGIpKXtpZihhW0E+PjJdPS00MDk3JncsISgzJncpKXtpZihmPUErNHwwLDEyJnd8fChhW2Y+PjJdPTAsZj1BKzh8MCksYVtmPj4yXT1jLDB8cCl7Yz0wO2JyZWFrfWFbMTYrKDB8YVtrPj4yXSk+PjJdPS0xLGM9MDticmVha31pZihhW0ErND4+Ml09MCwhcClmb3Io''@;'; + put 'put ''YVtBKzE2Pj4yXT0wOzspe2lmKCFjKXtjPTA7YnJlYWsgZX1rPTB8YVtjPj4yXSxtaVs2MyZtXShsLGMsMzIpLGM9a31mb3IobD0ocD0wfGFbQSs4Pj4yXSkrKGFbQSsxMj4+Ml08PDIpfDA7Oyl7aWYocD4+PjA+PWw+Pj4wKXtjPTA7YnJlYWsgZX0oZj0wfGFbcD4+Ml0pJiYoYVtwPj4yXT1j''@;'; + put 'put ''LGM9MHxhW2Y+PjJdLGFbZj4+Ml09MCkscD1wKzR8MH19fXdoaWxlKDApO3JldHVybiAwfGN9ZnVuY3Rpb24gcHUobCl7dmFyIHAsYz0wLGY9MDs0MDk2JmFbKGY9MHxhWyhjPTgrKGx8PTApfDApPj4yXSk+PjJdJiYoQ2MobCwwKSxmPTB8YVtjPj4yXSksbD0wfGFbKHA9ZisxNnwwKT4+Ml07''@;'; + put 'put ''ZG97aWYoKDB8bCk8MCl7aWYoMTImKGM9MHxhW2Y+PjJdKXwwKXtsPTB8RUEoMHxhW2YrND4+Ml0pLGFbcD4+Ml09bDticmVha31pZigxMTImYyl7Zm9yKGw9MCxjPWYrOHwwO2M9MHxhW2M+PjJdOylsPWwrMXwwO2FbcD4+Ml09bH19fXdoaWxlKDApO3JldHVybiAwfGx9ZnVuY3Rpb24gRUEo''@;'; + put 'put ''bCl7cmV0dXJuKGx8PTApPzErKDB8RUEoMHxhW2wrND4+Ml0pKSsoMHxFQSgwfGFbbD4+Ml0pKXwwOjB9ZnVuY3Rpb24gZWgobCxjKXtjfD0wO3ZhciBtLGY9MCxwPTAsQT0wOzQwOTYmYVthWzgrKGx8PTApPj4yXT4+Ml18MCYmQ2MobCwwKSwobT0wIT0oMHxjKSk/KDQwOTYmYVthW2MrOD4+''@;'; + put 'put ''Ml0+PjJdfDAmJkNjKGMsMCksKDB8YVtjKzE2Pj4yXSk9PSgwfGFbbCsxNj4+Ml0pPyhmPWMscD03KTpjPTApOihmPTAscD03KTtlOmRve2lmKDc9PSgwfHApKXtmb3IoO2Y7KXtpZigoMHxmKT09KDB8bCkpe2M9MDticmVhayBlfWY9MHxhW2YrMjg+PjJdLHA9N31pZigwfChwPTB8YVsoZj1s''@;'; + put 'put ''KzI4fDApPj4yXSkmJihhWyhBPXArMjR8MCk+PjJdPSgwfGFbQT4+Ml0pLTEpLGFbbCszMj4+Ml09MCxhW2Y+PjJdPTAsbSl7YVtmPj4yXT1jLGFbbD4+Ml09MjgsYVsoQT1jKzI0fDApPj4yXT0xKygwfGFbQT4+Ml0pO2JyZWFrfWFbbD4+Ml09YVthW2wrMTY+PjJdPj4yXSxjPXA7YnJlYWt9''@;'; + put 'put ''fXdoaWxlKDApO3JldHVybiAwfGN9ZnVuY3Rpb24gSm0obCxjLGYpe2N8PTAsZnw9MDt2YXIgcD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wO0c9MHxhWyhtPTQrKGx8PTApfDApPj4yXTtlOmRve2lmKEcpaWYoYyl7aWYoUj0wfGFbYVtsKzE2Pj4yXT4+Ml0sNDA5NiZh''@;'; + put 'put ''W2FbKEE9bCs4fDApPj4yXT4+Ml18MCYmQ2MobCwwKSwwfChwPTB8YVtHKzMyPj4yXSkmJigwfHEwWzEyNyZwXShsLDMsYyxHKSk8MCl7Yz0wO2JyZWFrfWlmKGFbbT4+Ml09YyxhW2wrMTI+PjJdPTA9PSgwfChwPTB8YVtjKzI4Pj4yXSkpPzUyOnAsMTEyJihwPTB8YVthW0E+PjJdPj4yXSkp''@;'; + put 'put ''Yz1HO2Vsc2V7ZG97aWYoISgyJnApKXtpZigzJnApe2lmKDM9PSgzJmZ8MCkpe2M9RzticmVhayBlfWJyZWFrfWlmKDEmZil7Yz1HO2JyZWFrIGV9YnJlYWt9aWYoMiZmfDApe2M9RzticmVhayBlfX13aGlsZSgwKTt3PTB8czAobCksYVsocD0wfGFbQT4+Ml0pPj4yXT0tNDA5NyYoRD0wfGFb''@;'; + put 'put ''cD4+Ml0pLGFbcCs0Pj4yXT0wLGFbcCsxNj4+Ml09MDt0OmRve2lmKDMmRHwwKWZvcihEPTB8YVtwKzg+PjJdLG09RCsoYVtwKzEyPj4yXTw8Mil8MCxwPUQ7Oyl7aWYocD4+PjA+PW0+Pj4wKWJyZWFrIHQ7YVtwPj4yXT0wLHA9cCs0fDB9fXdoaWxlKDApO2ZvcihiPTA9PSgyJmZ8MCksaz1j''@;'; + put 'put ''Kzh8MCxNPWMrNHwwLEQ9YysyNHwwOzspe2lmKCF3KXtjPUc7YnJlYWsgZX1mPTB8YVt3Pj4yXSxiJiYocD0ocD0oMHwocD0wfGFbaz4+Ml0pKTwwPzB8YVt3Kzg+PjJdOncrKDAtcCl8MCkrKDB8YVtjPj4yXSl8MCwoMHwoQT0wfGFbTT4+Ml0pKTwwJiYocD0wfGFbcD4+Ml0pLHA9KG09MHxh''@;'; + put 'put ''W0Q+PjJdKT8wfG1pWzYzJm1dKGwscCxjKTowfHNUKDAscCxBKSxhW3crND4+Ml09cCksbWlbNjMmUl0obCx3LDMyKSx3PWZ9fX1lbHNlIGM9RztlbHNlIGFbbT4+Ml09YyxHPTB8YVtjKzI4Pj4yXSxhW2wrMTI+PjJdPTA9PSgwfEcpPzUyOkd9d2hpbGUoMCk7cmV0dXJuIDB8Y31mdW5jdGlv''@;'; + put 'put ''biBzVChsLGMsZil7bHw9MDt2YXIgcD0wLG09MCxBPTA7aWYobT1jfD0wLCgwfChmfD0wKSk+PTEpe2ZvcihtPSgoQT1jK2YrLTF8MCk+Pj4wPGM+Pj4wP2M6QSkrKDEtbSkmLTIscD1jOyEocD4+PjA+PUE+Pj4wKTspbD0wfEFyKCgoMHxYdFtwPj4wXSk8PDgpK2wrKDB8WHRbcCsxPj4wXSl8''@;'; + put 'put ''MCwxNzEwOTgxMSkscD1wKzJ8MDsocD1jK218MCk+Pj4wPkE+Pj4wP2M9ZjooYz1mLGw9MHxBcigoKDB8WHRbcD4+MF0pPDw4KStsfDAsMTcxMDk4MTEpKX1lbHNle2Zvcig7KHA9MHxmZVtjPj4wXSk8PDI0Pj4yNDspbD1mPTB8QXIoKCgyNTUmcCk8PDgpK2wrKDI1NSYoQT0wfGZlW2MrMT4+''@;'; + put 'put ''MF0pKXwwLDE3MTA5ODExKSxjPWMrKEE8PDI0Pj4yND8yOjEpfDA7Yz1jLW18MH1yZXR1cm4gMHxBcihsK2N8MCwxNzEwOTgxMSl9ZnVuY3Rpb24gJHIobCxjLGYpe3ZhciBwLG07cmV0dXJuIGx8PTAsY3w9MCxwPWxlLGxlPWxlKzE2fDAsYVsobT1wKT4+Ml09Znw9MCxmPTB8bkMobCxjLG0p''@;'; + put 'put ''LGxlPXAsMHxmfWZ1bmN0aW9uIG5DKGwsYyxmKXtjfD0wLGZ8PTA7dmFyIHAsbSxBLHcsYj0wO0E9bGUsbGU9bGUrMTZ8MCxwPUEsYVs0NjkzOF09dz0obT0zPT0oMHwobHw9MCkpKT8wfGFbNDY5MzhdOjI9PSgwfGwpPzE6bCxhWzQ2OTM5XT0oYj0wfGFbNDY5MzldKT4+PjA+dz4+PjA/Yjp3''@;'; + put 'put ''O2Rve2lmKHc+Pj4wPCgwfGFbNDY5MzZdKT4+PjApe2lmKCEobD0wfGFbNDY5MzddKSYmKGw9MHxoZmUoKSxhWzQ2OTM3XT1sLCFsKSl7bD0xO2JyZWFrfW18fChkZmUobCksbD0wfGFbNDY5MzddKSx2TChsLGMsZiksbD0wfWVsc2V7aWYoMHxhWzQ2OTM1XSl7TlAobCxjLGYpLGw9MDticmVh''@;'; + put 'put ''a31tP2w9MHxhWzE1NzEyXTooYj0wfGFbMTU3MTJdLGFbcD4+Ml09MT09KDB8bCk/OTYzNDk6OTYzNTUsVDAoYiw5NjM2MyxwKSxsPWIpLHZMKGwsYyxmKSxsPTB9fXdoaWxlKDApO3JldHVybiBsZT1BLDB8bH1mdW5jdGlvbiBOUChsLGMsZil7bHw9MCxjfD0wLGZ8PTA7dmFyIHA9MCxtPTA7''@;'; + put 'put ''MD09KDB8YVs0Njk0MF0pJiYobT0wfEIwKDB8YVs0NTkwXSksYVs0Njk0MF09bSwwPT0oMHxtKSk/X3UoOTYzNjgsMHxhWzE1NzEyXSk6cD00O2Rve2lmKDQ9PSgwfHApKXtmb3IoMyE9KDB8bCkmJihfb1s2MyZhWzQ2OTM1XV0oMT09KDB8bCk/OTYzNDk6OTYzNTUpLF9vWzYzJmFbNDY5MzVd''@;'; + put 'put ''XSg5NzAyNykpOzspe2lmKCgwfChsPTB8bUwoMHxhWzQ2OTQwXSwwfGFbNDU5MF0sYyxmKSkpPi0xJigwfGwpPCgwfChwPTB8YVs0NTkwXSkpKXtwPTc7YnJlYWt9aWYoYVs0NTkwXT1tPSgwfChwPDw9MSkpPigwfChtPWwrMXwwKSk/cDptLCEoMHxVYSgwfGFbNDY5NDBdLG0pKSl7cD05O2Jy''@;'; + put 'put ''ZWFrfX1pZig3PT0oMHxwKSl7X29bNjMmYVs0NjkzNV1dKDB8YVs0Njk0MF0pO2JyZWFrfWlmKDk9PSgwfHApKXtfdSg5NjM2OCwwfGFbMTU3MTJdKTticmVha319fXdoaWxlKDApfWZ1bmN0aW9uIFhtKGwsYyl7dmFyIGYscDtsfD0wLGY9bGUsbGU9bGUrMTZ8MCxhWyhwPWYpPj4yXT1jfD0w''@;'; + put 'put ''LG5DKDEsbCxwKSxsZT1mfWZ1bmN0aW9uIHVzKGwsYyxmKXtsfD0wLGN8PTA7dmFyIHA9MDsoZnw9MCk/cD0wOihjPWY9MD09KDB8Yyk/MTAyNDpjLGY9MHxCMChmKSxwPTEpLGFbbCsxMj4+Ml09cCxhW2w+PjJdPWYsYVtsKzg+PjJdPWYrYyxhW2wrND4+Ml09ZixmZVtmPj4wXT0wfWZ1bmN0''@;'; + put 'put ''aW9uIFEwKGwsYyl7dmFyIGYsdyxwPTAsbT0wLEE9MCxiPTA7cmV0dXJuIHA9KEE9KDB8YVsodz04KyhsfD0wKXwwKT4+Ml0pLShtPTB8YVtsPj4yXSl8MCk8PDEscD0oQT1BKyhjfD0wKXwwKT4+PjA+cD4+PjA/QTpwLGM9bSxtPSgwfGFbKEE9bCs0fDApPj4yXSktbXwwLDB8YVsoZj1sKzEy''@;'; + put 'put ''fDApPj4yXT9jPTB8VWEoYyxwKTooZ28oMHwoYj0wfEIwKHApKSwwfGMsMHxtKSxhW2Y+PjJdPTEsYz1iKSxhW2w+PjJdPWMsYVtBPj4yXT1jK20sYVt3Pj4yXT1jK3AsMH1mdW5jdGlvbiBmVChsLGMsZil7Y3w9MDt2YXIgbSxwPTA7cmV0dXJuKChwPTB8YVsobT00KyhsfD0wKXwwKT4+Ml0p''@;'; + put 'put ''KyhmfD0wKXwwKT4+PjA+KDB8YVtsKzg+PjJdKT4+PjAmJihRMChsLGYpLHA9MHxhW20+PjJdKSxnbygwfHAsMHxjLDB8ZiksYVttPj4yXT0oMHxhW20+PjJdKStmLDB8Zn1mdW5jdGlvbiB1byhsLGMpe3JldHVybiAwfGZUKGx8PTAsY3w9MCwwfFVvKGMpKX1mdW5jdGlvbiBDMihsKXswfGFb''@;'; + put 'put ''MTIrKGx8PTApPj4yXSYmRnQoMHxhW2w+PjJdKX1mdW5jdGlvbiBMNihsKXt2YXIgYyxmO3JldHVybihmPTB8YVsoYz00KyhsfD0wKXwwKT4+Ml0pPj4+MD4oMHxhW2w+PjJdKT4+PjA/KGFbYz4+Ml09ZistMSxsPTB8WHRbZj4+MF0pOmw9LTEsMHxsfWZ1bmN0aW9uIFZoKGwsYyl7dmFyIGY9''@;'; + put 'put ''MDtyZXR1cm4gMCE9KDB8KGN8PTApKSYwPT0oMHwoZj0wfGFvKGx8PTAsOTY0MTYsMCkpKSYmKGZ1bmN0aW9uIHJDKGwpe3ZhciBwLGM9MCxmPTA7Zm9yKGJDKHA9MHxkaShsfD0wKSxwLDEwNywwLDEpLGY9MHxEdChwKTtmOyl7Zm9yKGlDKGwsZiksYz0wfHcwKHAsZik7Yzspb0MobCxjKSxj''@;'; + put 'put ''PTB8UzAocCxjKTtmPTB8enQocCxmKX19KGwpLGY9MHxhbyhsLDk2NDE2LDApKSwwfGZ9ZnVuY3Rpb24gVDUobCl7dmFyIGM9MDtmZVsoYz0yNCsobHw9MCl8MCk+PjBdPTY0fGZlW2M+PjBdLGZ1bmN0aW9uIGpQKGwpe3ZhciBwLG0sYz0wLGY9MDtmPTB8aDAobHw9MCw5NjQxNiwyMCwwKSxh''@;'; + put 'put ''WyhwPWYrOHwwKT4+Ml09MHxaaChsLDE4MzY0LDB8YVs0NTg5XSksYVsobT1mKzEyfDApPj4yXT0wfFpoKGwsMTgzNjQsMHxhWzQ1ODldKSxhWyhmPWYrMTZ8MCk+PjJdPTB8WmgobCwxODM2NCwwfGFbNDU4OV0pLChjPTB8azEobCkpPyhsPTB8VmgoYywwKSxlaCgwfGFbcD4+Ml0sMHxhW2wr''@;'; + put 'put ''OD4+Ml0pLGVoKDB8YVttPj4yXSwwfGFbbCsxMj4+Ml0pLGVoKDB8YVtmPj4yXSwwfGFbbCsxNj4+Ml0pKTowPT0oMHwoYz0wfGFbNDY5NDFdKSl8KDB8Yyk9PSgwfGwpfHwoYz0wfFZoKGMsMCksamgoMHxhW2MrOD4+Ml0sMHxhW3A+PjJdLGwsMSksamgoMHxhW2MrMTI+PjJdLDB8YVttPj4y''@;'; + put 'put ''XSxsLDIpLGpoKDB8YVtjKzE2Pj4yXSwwfGFbZj4+Ml0sbCwwKSl9KGwpLGFDKDA9PSgwfChjPTB8azEobCkpKT9sOmMsbCl9ZnVuY3Rpb24gaUMobCxjKXt2YXIgZjtsfD0wLDAhPSgwfChmPTB8aWMoY3w9MCkpKSYmMCE9KDB8YVtmKzg+PjJdKXx8YUMobCxjKX1mdW5jdGlvbiBvQyhsLGMp''@;'; + put 'put ''e3ZhciBmO2x8PTAsMCE9KDB8KGY9MHxpYyhjfD0wKSkpJiYwIT0oMHxhW2YrOD4+Ml0pfHxhQyhsLGMpfWZ1bmN0aW9uIGljKGwpe3JldHVybiAwfGFvKGx8PTAsOTY0MDQsMCl9ZnVuY3Rpb24gYUMobCxjKXtsfD0wO3ZhciBtLGY9MCxwPTA7Zj0wfGgwKGN8PTAsOTY0MDQsMTYsMCksbT0w''@;'; + put 'put ''fEo0KGwsMyZhW2M+PjJdKSxwPWYrOHwwO2U6ZG97aWYoISgwfGFbcD4+Ml0pKWZvcihsPTB8ZGkobCksYVtwPj4yXT0wfEo0KGwsMyZhW2M+PjJdKSxsPTB8eEEoYyksZj1mKzEyfDAsYVtmPj4yXT0wfE10KDB8Y3IoYyksKCgwfGwpPjQ/bDo0KTw8MiksbD0wfG1pWzYzJmFbbT4+Ml1dKG0s''@;'; + put 'put ''MCwxMjgpOzspe2lmKCFsKWJyZWFrIGU7cD0wfHIwKHA9MHxjcihjKSwwfGFbbCsxMj4+Ml0pLGFbKDB8YVtmPj4yXSkrKGFbbCsxNj4+Ml08PDIpPj4yXT1wLGw9MHxtaVs2MyZhW20+PjJdXShtLGwsOCl9fXdoaWxlKDApfWZ1bmN0aW9uIEo0KGwsYyl7dmFyIGYscDtjfD0wLHA9bGUsbGU9''@;'; + put 'put ''bGUrMTZ8MCxmPXAsbD0wfFZoKGx8PTAsMCk7ZTpkb3tpZihsKXN3aXRjaCgwfGMpe2Nhc2UgMDpsPTB8YVtsKzE2Pj4yXTticmVhayBlO2Nhc2UgMTpsPTB8YVtsKzg+PjJdO2JyZWFrIGU7Y2FzZSAyOmNhc2UgMzpsPTB8YVtsKzEyPj4yXTticmVhayBlO2RlZmF1bHQ6YVtmPj4yXT1jLCRy''@;'; + put 'put ''KDEsOTY0MjksZiksbD0wO2JyZWFrIGV9ZWxzZSBsPTB9d2hpbGUoMCk7cmV0dXJuIGxlPXAsMHxsfWZ1bmN0aW9uIHhBKGwpe3JldHVybiAwfCgobD0wfEo0KDB8ZGkoMHxjcihsfD0wKSksMyZhW2w+PjJdKSk/MHxwdShsKTowKX1mdW5jdGlvbiBqaChsLGMsZixwKXtjfD0wLGZ8PTAscHw9''@;'; + put 'put ''MDt2YXIgbT0wLEE9MDtmb3IobT0wfG1pWzYzJmFbKGx8PTApPj4yXV0obCwwLDEyOCk7bTspQT0wfGpkKGYsMHxhW20rOD4+Ml0sMHxhW20rMTI+PjJdLDB8YVttKzE2Pj4yXSxwKSxmZVtBKzIyPj4wXT0wfGZlW20rMjI+PjBdLGZlW0ErMjE+PjBdPTB8ZmVbbSsyMT4+MF0sbWlbNjMmYVtj''@;'; + put 'put ''Pj4yXV0oYyxBLDEpLG09MHxtaVs2MyZhW2w+PjJdXShsLG0sOCl9ZnVuY3Rpb24gamQobCxjLGYscCxtKXt2YXIgQTtyZXR1cm4gY3w9MCxmfD0wLHB8PTAsbXw9MCxBPTB8TXQobHw9MCwyNCksZmVbQSsyMD4+MF09bSxhW0ErOD4+Ml09MHxyMChsLGMpLGFbQSsxMj4+Ml09MHxyMChsLGYp''@;'; + put 'put ''LGFbQSsxNj4+Ml09cCwwfEF9ZnVuY3Rpb24gVEEobCxjKXt2YXIgZixwO3JldHVybiBsfD0wLGY9bGUsbGU9bGUrMzJ8MCxhWyhwPWYpKzg+PjJdPWN8PTAsYz0wfG1pWzYzJmFbbD4+Ml1dKGwscCw0KSxsZT1mLDB8Y31mdW5jdGlvbiBsQyhsLGMpe3ZhciBmO3JldHVybiBjfD0wLGY9MHxl''@;'; + put 'put ''aChsfD0wLDApLGM9MHxUQShsLGMpLGVoKGwsZiksMHxjfWZ1bmN0aW9uIHNDKGwsYyl7cmV0dXJuIGN8PTAsMHwoKGw9MHxpYyhsfD0wKSk/MHxUQSgwfGFbbCs4Pj4yXSxjKTowKX1mdW5jdGlvbiBzaShsLGMsZixwKXt2YXIgbSxBO3JldHVybiBjfD0wLGZ8PTAscHw9MCxBPWxlLGxlPWxl''@;'; + put 'put ''KzE2fDAsbT1BLChsfD0wKXx8KGw9MHxhWzQ2OTQxXSl8fChmZVttPj4wXT0wfGZlWzE4NDAwXSxmZVttKzE+PjBdPTB8ZmVbMTg0MDFdLGZlW20rMj4+MF09MHxmZVsxODQwMl0sZmVbbSszPj4wXT0wfGZlWzE4NDAzXSxsPTB8b2MoMCxtLDApLGFbNDY5NDFdPWwpLGw9cD8wfGZ1bmN0aW9u''@;'; + put 'put ''IFpQKGwsYyxmLHApe2N8PTAsZnw9MCxwfD0wO3ZhciBiLG09MCxBPTAsdz0wO2I9MHxkaShsfD0wKSxWaChsLDEpLG09MHxsQyhBPTB8SjQobCxjKSxmKTtlOmRve2lmKG0pdz1tKzEyfDAsZTAobCwwfGFbdz4+Ml0pLGFbdz4+Ml09MHxyMChsLHApLHc9MTY7ZWxzZXtpZigwfChtPTB8VEEo''@;'; + put 'put ''QSxmKSkpe209MHxqZChsLGYscCwwfGFbbSsxNj4+Ml0sYyksbWlbNjMmYVtBPj4yXV0oQSxtLDEpLHc9MTY7YnJlYWt9c3dpdGNoKG09MHxqZChsLGYscCwwfHB1KEE9MHxKNChiLGMpKSxjKSxtaVs2MyZhW0E+PjJdXShBLG0sMSksMHxjKXtjYXNlIDA6YkMoYixiLDU3LG0sMSksdz0xNjti''@;'; + put 'put ''cmVhayBlO2Nhc2UgMTpmb3IoZj0wfER0KGIpOzspe2lmKCFmKXt3PTE2O2JyZWFrIGV9dUMobCxmLG0pLGY9MHx6dChiLGYpfWNhc2UgMjpjYXNlIDM6Zm9yKEE9MHxEdChiKTs7KXtpZighQSl7dz0xNjticmVhayBlfWZvcihmPTB8dzAoYixBKTtmOyl1QyhsLGYsbSksZj0wfFMwKGIsZik7''@;'; + put 'put ''QT0wfHp0KGIsQSl9ZGVmYXVsdDpicmVhayBlfX19d2hpbGUoMCk7cmV0dXJuIDE2PT0oMHx3KSYmMD09KDB8YykmMCE9KDB8bSkmJlZsKGwsbSxwKSx0byhsLGwsbSksMHxtfShsLGMsZixwKTowfGZ1bmN0aW9uIGhUKGwsYyxmKXtyZXR1cm4gZnw9MCwwfChsPShsPTB8SjQobHw9MCxjfD0w''@;'; + put 'put ''KSk/MHxUQShsLGYpOjApfShsLGMsZiksbGU9QSwwfGx9ZnVuY3Rpb24gdUMobCxjLGYpe2x8PTAsZnw9MDt2YXIgbSxwPTAsQT0wO2M9MHxpYyhjfD0wKSwoMHwocD0wfGFbKG09ZisxNnwwKT4+Ml0pKT4zP2FbKGM9YysxMnwwKT4+Ml09MHxxMFsxMjcmYVs4KygwfGFbKEE9MHxhW2wrNjQ+''@;'; + put 'put ''PjJdKT4+Ml0pPj4yXV0oMHxhW0ErMTI+PjJdLDB8YVtjPj4yXSxwPDw9MixwKzR8MCk6Yz1jKzEyfDAsQT0wfHIwKGwsMHxhW2YrMTI+PjJdKSxhWygwfGFbYz4+Ml0pKyhhW20+PjJdPDwyKT4+Ml09QX1mdW5jdGlvbiBWbChsLGMsZil7Y3w9MCxmfD0wO3ZhciB3LHA9MCxtPTAsQT0wLGI9''@;'; + put 'put ''MDt3PTB8Y3IobHw9MCksQT0xMisoMHxpYyhsKSl8MCxlMCh3LDB8YVsoMHxhW0E+PjJdKSsoYVsoYj1jKzE2fDApPj4yXTw8Mik+PjJdKSxtPTB8cjAodyxmKSxhWygwfGFbQT4+Ml0pKyhhW2I+PjJdPDwyKT4+Ml09bTtkb3tpZighKDMmYVtsPj4yXSkpe2lmKEE9MHxsQyhwPTB8YVsxNiso''@;'; + put 'put ''MHxWaCh3LDApKT4+Ml0sMHxhWyhtPWMrOHwwKT4+Ml0pKXtlMCh3LDB8YVsoYj1BKzEyfDApPj4yXSksYVtiPj4yXT0wfHIwKHcsZik7YnJlYWt9Yj0wfGpkKHcsMHxhW20+PjJdLGYsMHxhW2I+PjJdLDMmYVtsPj4yXSksbWlbNjMmYVtwPj4yXV0ocCxiLDEpO2JyZWFrfX13aGlsZSgwKTty''@;'; + put 'put ''ZXR1cm4gdG8odyxsLGMpLDB9ZnVuY3Rpb24gSHMobCxjLGYpe2Z8PTAsbD0wfEo0KGx8PTAsY3w9MCk7ZG97aWYobCl7aWYoYz0wfGFbbD4+Ml0sZil7bD0wfG1pWzYzJmNdKGwsZiw4KTticmVha31sPTB8bWlbNjMmY10obCwwLDEyOCk7YnJlYWt9bD0wfXdoaWxlKDApO3JldHVybiAwfGx9''@;'; + put 'put ''ZnVuY3Rpb24gY0MobCl7dmFyIGM9MDtyZXR1cm4gYVs0Njk0Ml09bHw9MCwwfChjPTB8aWMobCkpJiYoazIobCxjKSxIaShsLDB8YVtjPj4yXSkpLChjPTB8VmgobCwwKSk/MD09KDB8JDQobCwwfGFbYys4Pj4yXSkpJiYwPT0oMHwkNChsLDB8YVtjKzEyPj4yXSkpJiYwPT0oMHwkNChsLDB8''@;'; + put 'put ''YVtjKzE2Pj4yXSkpPyhIaShsLDB8YVtjPj4yXSksYz0wKTpjPTE6Yz0wLDB8Y31mdW5jdGlvbiBrMihsLGMpe2N8PTA7dmFyIHAsbSxmPTA7Zm9yKG09MHxjcihsfD0wKSxwPTB8eEEobCksYz1jKzEyfDAsbD0wO2Y9MHxhW2M+PjJdLCEoKDB8bCk+PSgwfHApKTspZTAobSwwfGFbZisobDw8''@;'; + put 'put ''Mik+PjJdKSxsPWwrMXwwO3h0KG0sZil9ZnVuY3Rpb24gTGkobCxjKXtyZXR1cm4oYz0wfHNDKGx8PTAsY3w9MCkpPyhsPTB8YVsxMisoMHxpYyhsKSk+PjJdLGM9MHxhW2wrKGFbYysxNj4+Ml08PDIpPj4yXSk6Yz0wLDB8Y31mdW5jdGlvbiBIbyhsLGMpe3JldHVybiBjfD0wLGw9MHxhWzEy''@;'; + put 'put ''KygwfGljKGx8PTApKT4+Ml0sMHxhW2wrKGFbYysxNj4+Ml08PDIpPj4yXX1mdW5jdGlvbiBrYyhsLGMsZil7cmV0dXJuIGZ8PTAsKGM9MHxzQyhsfD0wLGN8PTApKT8oVmwobCxjLGYpLGM9MCk6Yz0tMSwwfGN9ZnVuY3Rpb24gSTUobCxjLGYscCl7Y3w9MCxmfD0wLHB8PTA7dmFyIG09MDty''@;'; + put 'put ''ZXR1cm4obT0wfHNpKG09MHxjcihsfD0wKSwzJmFbbD4+Ml0sYywwKSl8fChtPTB8c2kobT0wfGNyKGwpLDMmYVtsPj4yXSxjLHApKSxWbChsLG0sZiksMH1mdW5jdGlvbiBSNihsLGMpe2N8PTA7dmFyIEEsZj0wLHA9MCxtPTA7QT0wfGNyKGx8PTApLG09MHxhW2w+PjJdO2U6ZG97aWYoMyYo''@;'; + put 'put ''YVtjPj4yXV5tKSlmPTE7ZWxzZSBmb3IoZj0xLHA9MDs7KXtpZighKHA9MHxIcyhBLDMmbSxwKSkpYnJlYWsgZTtpZighKGY9MHxzQyhjLDB8YVtwKzg+PjJdKSkpe2Y9MTticmVhayBlfVZsKGMsZixtPTB8SG8obCxwKSksMHxPbyhtKSYmazAoMHxIbyhjLGYpKSxmPTAsbT0wfGFbbD4+Ml19''@;'; + put 'put ''fXdoaWxlKDApO3JldHVybiAwfGZ9ZnVuY3Rpb24gdzAobCxjKXt2YXIgZj0wO3JldHVybihjPTB8U2YobHw9MCxjfD0wKSk/KENjKDB8YVsoZj1sKzQ0fDApPj4yXSwwfGFbKGw9YyszMnwwKT4+Ml0pLGM9MHxtaVs2MyZhWyhjPTB8YVtmPj4yXSk+PjJdXShjLDAsMTI4KSxhW2w+PjJdPTB8''@;'; + put 'put ''RjMoMHxhW2Y+PjJdKSk6Yz0wLDB8Y31mdW5jdGlvbiBTZihsLGMpe3ZhciBmLHA7cmV0dXJuIHA9bGUsbGU9bGUrNDh8MCxmPXAsKDB8YVsyNCsoY3w9MCk+PjJdKT09KDB8KGx8PTApKT9sPWMrMjh8MDooYVtmKzE2Pj4yXT1jLGw9MHxtaVs2MyZhWyhsPTB8YVtsKzQwPj4yXSk+PjJdXShs''@;'; + put 'put ''LGYsNCkpLGxlPXAsMHxsfWZ1bmN0aW9uIFMwKGwsYyl7dmFyIGY9MCxwPTA7cmV0dXJuKGY9MHxTZihsfD0wLDB8YVsoMz09KDMmYVsoY3w9MCk+PjJdfDApP2M6Yys0OHwwKSs0MD4+Ml0pKT8oQ2MoMHxhWyhwPWwrNDR8MCk+PjJdLDB8YVsoZj1mKzMyfDApPj4yXSksbD0wfG1pWzYzJmFb''@;'; + put 'put ''KGw9MHxhW3A+PjJdKT4+Ml1dKGwsYyw4KSxhW2Y+PjJdPTB8RjMoMHxhW3A+PjJdKSk6bD0wLDB8bH1mdW5jdGlvbiBNZihsLGMpe3ZhciBmPTA7cmV0dXJuKGM9MHxTZihsfD0wLGN8PTApKT8oQ2MoMHxhWyhmPWwrNDR8MCk+PjJdLDB8YVsobD1jKzI4fDApPj4yXSksYz0wfG1pWzYzJmFb''@;'; + put 'put ''KGM9MHxhW2Y+PjJdKT4+Ml1dKGMsMCwxMjgpLGFbbD4+Ml09MHxGMygwfGFbZj4+Ml0pKTpjPTAsMHxjfWZ1bmN0aW9uIEgzKGwsYyl7dmFyIGY9MCxwPTA7cmV0dXJuKGY9MHxTZihsfD0wLDB8YVsoMj09KDMmYVsoY3w9MCk+PjJdfDApP2M6YystNDh8MCkrNDA+PjJdKSk/KENjKDB8YVso''@;'; + put 'put ''cD1sKzQ0fDApPj4yXSwwfGFbKGY9ZisyOHwwKT4+Ml0pLGw9MHxtaVs2MyZhWyhsPTB8YVtwPj4yXSk+PjJdXShsLGMsOCksYVtmPj4yXT0wfEYzKDB8YVtwPj4yXSkpOmw9MCwwfGx9ZnVuY3Rpb24gU3MobCxjKXt2YXIgZj0wO3JldHVybihmPTB8dzAobHw9MCxjfD0wKSl8fChmPTB8TWYo''@;'; + put 'put ''bCxjKSksMHxmfWZ1bmN0aW9uIE5zKGwsYyxmKXtsfD0wLGN8PTAsZnw9MDtlOmRve2lmKDI9PSgzJmFbYz4+Ml18MCkpe2lmKCEoYz0wfFMwKGwsYykpKXtjPTA7ZG97aWYoIShjPWM/MHxIMyhsLGMpOjB8TWYobCxmKSkpe2M9MDticmVhayBlfX13aGlsZSgoMHxhW2MrNDA+PjJdKT09KDB8''@;'; + put 'put ''ZikpfX1lbHNlIGRve2lmKGM9MHxIMyhsLGMpLCFjKXtjPTA7YnJlYWsgZX19d2hpbGUoKDB8YVtjKzQwPj4yXSk9PSgwfGYpKX13aGlsZSgwKTtyZXR1cm4gMHxjfWZ1bmN0aW9uIFdQKGwsYyl7RDUobHw9MCxjfD0wKX1mdW5jdGlvbiBENShsLGMpe2x8PTA7dmFyIGYscCxtLEEsYix3PTAs''@;'; + put 'put ''az0wLE09MCxEPTA7Zm9yKGI9bGUsbGU9bGUrMTZ8MCxmPWIsQT0yPT0oMHwodz0zJmFbKGN8PTApPj4yXSkpP2M6YystNDh8MCxwPTB8YVsodz0zPT0oMHx3KT9jOmMrNDh8MCkrNDA+PjJdLG09MHxhW0ErNDA+PjJdO2wmJihhW2Y+PjJdPWFbYz4+Ml0sYVtmKzQ+PjJdPWFbYys0Pj4yXSxh''@;'; + put 'put ''W2YrOD4+Ml09YVtjKzg+PjJdLGFbZisxMj4+Ml09YVtjKzEyPj4yXSwhKDB8WDQobCxwLG0sZikpKTspaz0wfFNmKGwscCksaDEoMHxhWyhEPWwrNDR8MCk+PjJdLGsrMzJ8MCxBKSxoMSgwfGFbKE09bCs0OHwwKT4+Ml0saysyNHwwLEEpLGs9MHxTZihsLG0pLGgxKDB8YVtEPj4yXSxrKzI4''@;'; + put 'put ''fDAsdyksaDEoMHxhW00+PjJdLGsrMjB8MCx3KSxsPTB8azEobCk7bGU9Yn1mdW5jdGlvbiBYNChsLGMsZixwKXtsfD0wLHB8PTA7dmFyIG0sdyxBPTA7cmV0dXJuIHc9bGUsbGU9bGUrNDh8MCxtPXcsMD09KDB8KGN8PTApKXwwPT0oMHwoZnw9MCkpfHwoYVttPj4yXT1hW3A+PjJdLGFbbSs0''@;'; + put 'put ''Pj4yXT1hW3ArND4+Ml0sYVttKzg+PjJdPWFbcCs4Pj4yXSxhW20rMTI+PjJdPWFbcCsxMj4+Ml0sYVttKzQwPj4yXT1jLDA9PSgwfChBPTB8U2YobCxmKSkpKT9sPTA6KENjKDB8YVsocD1sKzQ4fDApPj4yXSwwfGFbKEE9QSsyMHwwKT4+Ml0pLGw9MHxtaVs2MyZhWyhsPTB8YVtwPj4yXSk+''@;'; + put 'put ''PjJdXShsLG0sNCksYVtBPj4yXT0wfEYzKDB8YVtwPj4yXSkpLGxlPXcsMHxsfWZ1bmN0aW9uIGgxKGwsYyxmKXtmfD0wLENjKGx8PTAsMHxhWyhjfD0wKT4+Ml0pLG1pWzYzJmFbbD4+Ml1dKGwsZiwxKSxhW2M+PjJdPTB8RjMobCl9ZnVuY3Rpb24gS2EobCxjLGYscCxtKXtsfD0wLGN8PTAs''@;'; + put 'put ''Znw9MCxwfD0wLG18PTA7dmFyIGIsayxNLFIsQT0wLHc9MCxEPTAsRz0wO1I9bGUsbGU9bGUrNDh8MCxiPVIrMjR8MCxNPVIrMTZ8MCxrPVI7ZG97aWYoMHxLNChsLDIscCxNLDApKWFbKEc9ayk+PjJdPTAsYVtHKzQ+PjJdPTAsQT0wfGFbKEc9TSkrND4+Ml0sYVsoRD1rKzh8MCk+PjJdPWFb''@;'; + put 'put ''Rz4+Ml0sYVtEKzQ+PjJdPUEsYVtrPj4yXT0yLEQ9NztlbHNlIGlmKHApRD0xNztlbHNle2lmKDB8bSYmMD09KDB8REEobCkpKXtEPTE4O2JyZWFrfWFbaz4+Ml09MCxhW2srND4+Ml09MCxhW2srOD4+Ml09MCxhW2srMTI+PjJdPTAsRD03fX13aGlsZSgwKTtlOmRve2lmKDc9PSgwfEQpKXth''@;'; + put 'put ''W2I+PjJdPWFbaz4+Ml0sYVtiKzQ+PjJdPWFbays0Pj4yXSxhW2IrOD4+Ml09YVtrKzg+PjJdLGFbYisxMj4+Ml09YVtrKzEyPj4yXSxBPTB8WDQobCxjLGYsYik7dDpkb3tpZighQSl7aWYoMHx0NyhsKSYmKGFbYj4+Ml09YVtrPj4yXSxhW2IrND4+Ml09YVtrKzQ+PjJdLGFbYis4Pj4yXT1h''@;'; + put 'put ''W2srOD4+Ml0sYVtiKzEyPj4yXT1hW2srMTI+PjJdLDB8KHc9MHxYNChsLGYsYyxiKSkpKXtBPXc7YnJlYWt9ZG97aWYoMHxtKXtpZihBPTB8ZGkobCksYVtiPj4yXT1hW2s+PjJdLGFbYis0Pj4yXT1hW2srND4+Ml0sYVtiKzg+PjJdPWFbays4Pj4yXSxhW2IrMTI+PjJdPWFbaysxMj4+Ml0s''@;'; + put 'put ''ISgoQT0wfFg0KEEsYyxmLGIpKXx8MHx0NyhsKSYmKEE9MHxkaShsKSxhW2I+PjJdPWFbaz4+Ml0sYVtiKzQ+PjJdPWFbays0Pj4yXSxhW2IrOD4+Ml09YVtrKzg+PjJdLGFbYisxMj4+Ml09YVtrKzEyPj4yXSxBPTB8WDQoQSxmLGMsYiksQSkpKWJyZWFrO1dQKGwsQSk7YnJlYWsgdH19d2hp''@;'; + put 'put ''bGUoMCk7RD0xNzticmVhayBlfX13aGlsZSgwKX19d2hpbGUoMCk7cmV0dXJuIDE3PT0oMHxEKSYmKG0/RD0xODpBPTApLDE4PT0oMHxEKSYmKDAhPSgwfGZ1bmN0aW9uIEdQKGwsYyxmKXtjfD0wLGZ8PTA7dmFyIG0sQSxwPTA7cmV0dXJuIEE9bGUsbGU9bGUrMzJ8MCxwPUErMTZ8MCxtPUEs''@;'; + put 'put ''cD0wIT0oMHxEQShsfD0wKSkmJihhW20+PjJdPTAsYVttKzQ+PjJdPTAsYVttKzg+PjJdPTAsYVttKzEyPj4yXT0wLGFbcD4+Ml09YVttPj4yXSxhW3ArND4+Ml09YVttKzQ+PjJdLGFbcCs4Pj4yXT1hW20rOD4+Ml0sYVtwKzEyPj4yXT1hW20rMTI+PjJdLDAhPSgwfFg0KGwsYyxmLHApKSk/''@;'; + put 'put ''MDoyNTUmKCgwfFh0W2wrMjQ+PjBdKT4+PjImMV4xKXwoMHxjKSE9KDB8ZiksbGU9QSwwfHB9KGwsYyxmKSkmJjAhPSgwfEs0KGwsMixwLE0sMSkpPyhBPTB8ZnVuY3Rpb24gcFQobCxjLGYscCxtKXtmfD0wLHB8PTAsbXw9MDt2YXIgQSx3LGIsayxNLEQ9MDtyZXR1cm4gWW4obHw9MCxjfD0w''@;'; + put 'put ''LDEpLFluKGwsZiwxKSx3PTQ4KyhBPTB8TXQobCw5NikpfDAsTT0wfE4zKGwsMiksYj0wfGFbdz4+Ml0saz0wfGFbQT4+Ml0sYVsoRD1BKzh8MCk+PjJdPXAsYVtEKzQ+PjJdPW0sYVsoRD1BKzU2fDApPj4yXT1wLGFbRCs0Pj4yXT1tLGFbQT4+Ml09MTIma3wobT1NPDw0KXwyLGFbdz4+Ml09''@;'; + put 'put ''MTImYnxtfDMsYVtBKzg4Pj4yXT1jLGFbQSs0MD4+Ml09ZixENShsLEEpLDY0JmZlW2wrMjQ+PjBdJiYoaDAoQSw5NjQwNCwxNiwwKSxvQyhsLEEpKSx2MChsLEEpLDB8QX0obCxjLGYsMHxhWyhBPU0pPj4yXSwwfGFbQSs0Pj4yXSksTDUobCwyLEEpKTpBPTApLGxlPVIsMHxBfWZ1bmN0aW9u''@;'; + put 'put ''IEttKGwsYyxmKXt2YXIgcCxtLEEsdztmfD0wLEE9KGY9Mz09KDMmYVsoY3w9MCk+PjJdfDApKT9jKy00OHwwOmMsZj1mP2M6Yys0OHwwLGM9MHxhW0ErNDA+PjJdLHc9MHxTZihsfD0wLDB8YVtmKzQwPj4yXSksJG0oMHxhWyhtPWwrNDR8MCk+PjJdLHcrMzJ8MCxBKSwkbSgwfGFbKHA9bCs0''@;'; + put 'put ''OHwwKT4+Ml0sdysyNHwwLEEpLGM9MHxTZihsLGMpLCRtKDB8YVttPj4yXSxjKzI4fDAsZiksJG0oMHxhW3A+PjJdLGMrMjB8MCxmKX1mdW5jdGlvbiAkbShsLGMsZil7Znw9MCxDYyhsfD0wLDB8YVsoY3w9MCk+PjJdKSxtaVs2MyZhW2w+PjJdXShsLGYsMiksYVtjPj4yXT0wfEYzKGwpfWZ1''@;'; + put 'put ''bmN0aW9uIHFtKGwsYyl7bHw9MDt2YXIgZixwLG09MCxBPTA7cmV0dXJuIGY9bGUsbGU9bGUrMTZ8MCxBPTB8YVsoMz09KDB8KG09MyZhWyhjPTI9PSgzJmFbKGN8PTApPj4yXXwwKT9jOmMrLTQ4fDApPj4yXSkpP2M6Yys0OHwwKSs0MD4+Ml0sbT0wfGFbKDI9PSgwfG0pP2M6YystNDh8MCkr''@;'; + put 'put ''NDA+PjJdLGFbKHA9Zik+PjJdPWFbYz4+Ml0sYVtwKzQ+PjJdPWFbYys0Pj4yXSxhW3ArOD4+Ml09YVtjKzg+PjJdLGFbcCsxMj4+Ml09YVtjKzEyPj4yXSwwfFg0KGwsQSxtLHApPygoMHxkaShsKSk9PSgwfGwpJiYoNjQmZmVbbCsyND4+MF0mJmZ1bmN0aW9uIGRUKGwpe3ZhciBjOzB8KGM9''@;'; + put 'put ''MHxpYyhsfD0wKSkmJihrMihsLGMpLEhpKGwsOTY0MDQpKX0oYyksd2kobCxjKSxwMihjKSxCNihsLDIsMHxhWyhBPWMrOHwwKT4+Ml0sMHxhW0ErND4+Ml0pKSwwfGJDKGwsYyw1OCwwLDApP2M9LTE6KCgwfGRpKGwpKT09KDB8bCkmJnh0KGwsYyksYz0wKSk6Yz0tMSxsZT1mLDB8Y31mdW5j''@;'; + put 'put ''dGlvbiBaZChsLGMsZil7dmFyIEEsdyxwPTAsbT0wO3c9bGUsbGU9bGUrMTZ8MCxwPXcsbT0wfFluKGx8PTAsMHxhWygzPT0oMyZhWyhjfD0wKT4+Ml18MCk/YzpjKzQ4fDApKzQwPj4yXSxmfD0wKSxBPTB8WW4obCwwfGFbKDI9PSgzJmFbYz4+Ml18MCk/YzpjKy00OHwwKSs0MD4+Ml0sZik7''@;'; + put 'put ''ZG97aWYoMCE9KDB8bSkmMCE9KDB8QSkpe2lmKGFbcD4+Ml09YVtjPj4yXSxhW3ArND4+Ml09YVtjKzQ+PjJdLGFbcCs4Pj4yXT1hW2MrOD4+Ml0sYVtwKzEyPj4yXT1hW2MrMTI+PjJdLDAhPSgwfGYpJihtPTA9PSgwfChwPTB8WDQobCxtLEEscCkpKSkpRDUobCxjKSxwPWM7ZWxzZSBpZiht''@;'; + put 'put ''KWJyZWFrO3JldHVybiBsZT13LDB8KCgwfChmPTMmYVtwPj4yXSkpPT0oMyZhW2M+PjJdfDApP3A6cCsoNDgqKDM9PSgwfGYpPy0xOjEpfDApfDApfX13aGlsZSgwKTtyZXR1cm4gbGU9dywwfWZ1bmN0aW9uIG9jKGwsYyxmKXtsfD0wLGN8PTA7dmFyIHAsbSxBLHc9MCxiPTAsaz0wO3JldHVy''@;'; + put 'put ''biBBPWxlLGxlPWxlKzE2fDAsbT1BLGI9MHxmdW5jdGlvbiBZUChsKXt2YXIgYyxwLGY9MCxtPTA7cmV0dXJuIGY9KGM9MCE9KDB8KGx8PTApKSk/MD09KDB8KGY9MHxhW2w+PjJdKSk/MTg3MzY6ZjoxODczNixtPTB8X29bNjMmYVtmPj4yXV0obCkscD0wfEJpWzEyNyZhW2YrND4+Ml1dKG0s''@;'; + put 'put ''ODApLGFbcD4+Ml09ZixhW3ArMTI+PjJdPW0sYz8oYVtwKzQ+PjJdPTA9PSgwfChtPTB8YVtsKzQ+PjJdKSk/MTg2MTI6bSxsPTA9PSgwfChsPTB8YVtsKzg+PjJdKSk/MTg3MTI6bCk6KGFbcCs0Pj4yXT0xODYxMixsPTE4NzEyKSxhW3ArOD4+Ml09bCxmZVtwKzUyPj4wXT0xLDB8cH0oZnw9''@;'; + put 'put ''MCkscD0wfEJpWzEyNyZhWzQrKDB8YVtiPj4yXSk+PjJdXSgwfGFbYisxMj4+Ml0sNzIpLGFbcD4+Ml09LTQmYVtwPj4yXSxhWyh3PXArNjR8MCk+PjJdPWIsYVsoaz1wKzI0fDApPj4yXT1jPTB8YVtjPj4yXSxmZVtrPj4wXT0yNTUmY3w4LGFbcCs2MD4+Ml09cCxmPTB8QmlbMTI3JmFbYVti''@;'; + put 'put ''KzQ+PjJdPj4yXV0ocCxmKSxhWzE2KygwfGFbdz4+Ml0pPj4yXT1mLDB8SzQocCwwLGwsbSwxKSYmKGI9MHxhWyh3PW0pKzQ+PjJdLGFbKGs9cCs4fDApPj4yXT1hW3c+PjJdLGFbays0Pj4yXT1iKSxMNShrPTB8aG8ocCksMCxwKSxsZT1BLDB8a31mdW5jdGlvbiBobyhsKXt2YXIgYz0wLGY9''@;'; + put 'put ''MDtyZXR1cm4gYVszNisobHw9MCk+PjJdPTB8WmgobCwxODc5MiwwfGFbNDU4OV0pLGFbbCs0MD4+Ml09MHxaaChsLDE4NzU2LDB8YVs0NTg5XSksYz0oMHxkaShsKSk9PSgwfGwpLGFbbCs0ND4+Ml09MHxaaChsLGM/MTg0MDQ6MTg0NDAsMHxhWzQ1ODldKSxjPSgwfGRpKGwpKT09KDB8bCks''@;'; + put 'put ''YVtsKzQ4Pj4yXT0wfFpoKGwsYz8xODQ3NjoxODUxMiwwfGFbNDU4OV0pLGFbbCs1Mj4+Ml09MHxaaChsLDE4NTQ4LDB8YVs0NTg5XSksMCE9KDB8KGM9MHxrMShsKSkpJiYoZj0wfE4zKGMsMCksYVtsPj4yXT0xNSZhW2w+PjJdfGY8PDQsbWlbNjMmYVsoZj0wfGFbYys1Mj4+Ml0pPj4yXV0o''@;'; + put 'put ''ZixsLDEpLCEoNjQmZmVbYysyND4+MF0pKXx8VDUobCksdjAobCxsKSwwfGx9ZnVuY3Rpb24gTjMobCxjKXt2YXIgZjtyZXR1cm4gYz0wfHpsKDB8YVsoYz1mPTI0KygwfGFbNjQrKGx8PTApPj4yXSkrKChjfD0wKTw8Myl8MCk+PjJdLDB8YVtjKzQ+PjJdLDEsMCksbD1EbixhW2Y+PjJdPWMs''@;'; + put 'put ''YVtmKzQ+PjJdPWwsRG49bCwwfGN9ZnVuY3Rpb24gQzEobCl7dmFyIGM9MCxmPTAscD0wLG09MDsobT0wPT0oMHwocD0wfGsxKGx8PTApKSkpJiYwIT0oMHxhWzE2KygwfGFbYVsoYz1sKzY0fDApPj4yXT4+Ml0pPj4yXSk/KHdpKGwsbCksQjYobCwwLDB8YVsobT1sKzh8MCk+PjJdLDB8YVtt''@;'; + put 'put ''KzQ+PjJdKSxDb1sxMjcmYVsxNisoMHxhWyhjPTB8YVtjPj4yXSk+PjJdKT4+Ml1dKDB8YVtjKzEyPj4yXSksYz0wKTpmPTQ7ZG97aWYoND09KDB8Zikpe2ZvcihjPTB8eXMobCk7YzspZj0wfE1zKGMpLEMxKGMpLGM9Zjtmb3IoYz0wfER0KGwpO2M7KWY9MHx6dChsLGMpLHFyKGwsYyksYz1m''@;'; + put 'put ''O2lmKEdkKGwpLHdpKGwsbCksMD09KDB8JDQobCwwfGFbbCs0MD4+Ml0pKSYmMD09KDB8JDQobCwwfGFbbCszNj4+Ml0pKSYmMD09KDB8JDQobCwwfGFbbCs0OD4+Ml0pKSYmMD09KDB8JDQobCwwfGFbbCs0ND4+Ml0pKSYmMD09KDB8JDQobCwwfGFbbCs1Mj4+Ml0pKSl7aWYoNjQmZmVbbCsy''@;'; + put 'put ''ND4+MF0mJjB8Y0MobCkpe2M9LTE7YnJlYWt9aWYocDIobCksQjYobCwwLDB8YVsoZj1sKzh8MCk+PjJdLDB8YVtmKzQ+PjJdKSwhbSl7cjcocCxsKSx4dChwLGwpLGM9MDticmVha31mb3IoYz1sKzY0fDA7cD0wfGFbNDgrKGY9MHxhW2M+PjJdKT4+Ml07KWhpKGwsMHxhW3A+PjJdKTtDb1sx''@;'; + put 'put ''MjcmYVsyMCsoMHxhW2YrND4+Ml0pPj4yXV0oMHxhW2YrMTY+PjJdKSwwfHJyKGwpP2M9LTE6KEdzWzYzJmFbKHA9MTIrKDB8YVsoYz0wfGFbYz4+Ml0pPj4yXSl8MCk+PjJdXShtPTB8YVtjKzEyPj4yXSxsKSxHc1s2MyZhW3A+PjJdXShtLGMpLGM9MCl9ZWxzZSBjPS0xfX13aGlsZSgwKTty''@;'; + put 'put ''ZXR1cm4gMHxjfWZ1bmN0aW9uIEdvKGwpe3JldHVybiAwfHB1KDB8YVs0MCsobHw9MCk+PjJdKX1mdW5jdGlvbiBWMyhsKXt2YXIgYz0wLGY9MDtmb3IoYz0wLGY9MHxEdChsfD0wKTtmOyljPSgwfHpkKGwsZiwwLDEpKStjfDAsZj0wfHp0KGwsZik7cmV0dXJuIDB8Y31mdW5jdGlvbiB6ZChs''@;'; + put 'put ''LGMsZixwKXt2YXIgbTtyZXR1cm4gZnw9MCxwfD0wLChtPTB8U2YobHw9MCxjfD0wKSk/KGM9cD8wfGU3KDB8YVtsKzQ0Pj4yXSxtKzMyfDApOjAsZiYmKGM9KDB8ZTcoMHxhW2wrNDQ+PjJdLG0rMjh8MCkpK2N8MCkpOmM9MCwwfGN9ZnVuY3Rpb24gZTcobCxjKXt2YXIgZjtyZXR1cm4gQ2Mo''@;'; + put 'put ''bHw9MCwwfGFbKGN8PTApPj4yXSksZj0wfHB1KGwpLGFbYz4+Ml09MHxGMyhsKSwwfGZ9ZnVuY3Rpb24gU2MobCl7cmV0dXJuIDEmZmVbMjQrKGx8PTApPj4wXXwwfWZ1bmN0aW9uIHQ3KGwpe3JldHVybiAwPT0oMHxTYyhsfD0wKSl8MH1mdW5jdGlvbiBEQShsKXtyZXR1cm4oMHxYdFsyNCso''@;'; + put 'put ''bHw9MCk+PjBdKT4+PjEmMXwwfWZ1bmN0aW9uIEs0KGwsYyxmLHAsbSl7bHw9MCxjfD0wLHB8PTAsbXw9MDt2YXIgdyxBPTAsYj0wO3c9MCE9KDB8KGZ8PTApKTtkb3tpZih3KXtpZigzNyE9KDB8ZmVbZj4+MF0pJiYwfChBPTB8UjJbMTI3JmFbNCsoMHxhWzQrKEE9MHxhW2wrNjQ+PjJdKT4+''@;'; + put 'put ''Ml0pPj4yXV0oMHxhW0ErMTY+PjJdLGMsZixwLG0pKSlicmVhazsoQT0wfG1DKGwsYyxmLHApKXx8KGI9NSl9ZWxzZSBiPTV9d2hpbGUoMCk7cmV0dXJuIDU9PSgwfGIpJiYobT93JjAhPSgwfChBPTB8UjJbMTI3JmFbNCsoMHxhWzQrKEE9MHxhW2wrNjQ+PjJdKT4+Ml0pPj4yXV0oMHxhW0Er''@;'; + put 'put ''MTY+PjJdLGMsMCxwLG0pKSkmJmZ1bmN0aW9uIHZDKGwsYyxmLHAsbSl7Y3w9MCxmfD0wLHB8PTAsbXw9MDt2YXIgdyxBPTA7dz0wfE10KGx8PTAsMzIpLGFbKEE9dysxNnwwKT4+Ml09cCxhW0ErND4+Ml09bSxhW3crMjQ+PjJdPTB8cjAobCxmKSwoYz0wfGFbNTYrKGY9MHxhWyhBPWwrNjR8''@;'; + put 'put ''MCk+PjJdKSsoKHA9Mz09KDB8Yyk/MjpjKTw8Mik+PjJdKT8obT1jLGM9Zik6KG09MHxaaChsLDE4NjQwLDB8YVs0NTg5XSksYVs1NisoMHxhW0E+PjJdKSsocDw8Mik+PjJdPW0sYz0wfGFbQT4+Ml0pLChjPTB8YVtjKzY4KyhwPDwyKT4+Ml0pfHwoYz0wfFpoKGwsMTg2NzYsMHxhWzQ1ODld''@;'; + put 'put ''KSxhWzY4KygwfGFbQT4+Ml0pKyhwPDwyKT4+Ml09YyksbWlbNjMmYVttPj4yXV0obSx3LDEpLG1pWzYzJmFbYz4+Ml1dKGMsdywxKX0obCxjLGYsMHxhWyhiPXApPj4yXSwwfGFbYis0Pj4yXSk6QT0wKSwwfEF9ZnVuY3Rpb24gTEEobCxjLGYscCl7cmV0dXJuIDB8cTBbMTI3JmFbOCsoMHxh''@;'; + put 'put ''WzQrKGw9MHxhWzY0KyhsfD0wKT4+Ml0pPj4yXSk+PjJdXSgwfGFbbCsxNj4+Ml0sY3w9MCxmfD0wLHB8PTApfWZ1bmN0aW9uIEI2KGwsYyxmLHApe3ZUKGx8PTAsY3w9MCxmfD0wLHB8PTApLFJjWzMxJmFbMTIrKDB8YVs0KyhsPTB8YVtsKzY0Pj4yXSk+PjJdKT4+Ml1dKDB8YVtsKzE2Pj4y''@;'; + put 'put ''XSxjLGYscCl9ZnVuY3Rpb24gdGkobCl7dmFyIEEsdyxjPTAsZj0wLHA9MCxtPTA7dz1sZSxsZT1sZSsxNnwwLEE9dyxjPTB8ZnVuY3Rpb24gYWMobCxjLGYscCl7cmV0dXJuIDB8KGw9KGw9MHxtVChsfD0wLGN8PTAsZnw9MCxwfD0wKSk/MHxhW2wrMjQ+PjJdOjApfShmPTB8Y3IobHw9MCks''@;'; + put 'put ''MyZhW2w+PjJdLDB8YVsoYz1tPWwrOHwwKT4+Ml0sMHxhW2MrND4+Ml0pO2Rve2lmKCFjKXtpZigwfChmPTB8YVsxNisoMHxhWzQrKGM9MHxhW2YrNjQ+PjJdKT4+Ml0pPj4yXSkmJjB8KHA9MHxxMFsxMjcmZl0oMHxhW2MrMTY+PjJdLDMmYVtsPj4yXSwwfGFbKHA9bSk+PjJdLDB8YVtwKzQ+''@;'; + put 'put ''PjJdKSkpe2M9cDticmVha30yPT0oMyZhW2w+PjJdfDApP2M9MDoocD0wfGFbbT4+Ml0sbT0wfGFbbSs0Pj4yXSxhW0E+PjJdPTM3LGFbKGM9QSs4fDApPj4yXT1wLGFbYys0Pj4yXT1tLG9vKDE5NDc3Myw5NjQ1NixBKSxjPTE5NDc3Myl9fXdoaWxlKDApO3JldHVybiBsZT13LDB8Y31mdW5j''@;'; + put 'put ''dGlvbiBMNShsLGMsZil7ZGxbMTI3JmFbMjQrKDB8YVs0KyhsPTB8YVs2NCsobHw9MCk+PjJdKT4+Ml0pPj4yXV0oMHxhW2wrMTY+PjJdLGN8PTAsZnw9MCl9ZnVuY3Rpb24gbUMobCxjLGYscCl7Znw9MCxwfD0wO3ZhciBiLG09MCxBPTAsdz0wO3JldHVybiBiPWxlLGxlPWxlKzMyfDAsdz1i''@;'; + put 'put ''LDAhPSgwfChjPTB8YVs1NisoMHxhWzY0KyhsfD0wKT4+Ml0pKygoMz09KDB8KGN8PTApKT8yOmMpPDwyKT4+Ml0pKSYmMCE9KDB8KG09MHxacihsLGYpKSkmJihhW3crMjQ+PjJdPW0sMCE9KDB8KEE9MHxtaVs2MyZhW2M+PjJdXShjLHcsNCkpKSk/KHc9MHxhWzQrKGY9QSsxNnwwKT4+Ml0s''@;'; + put 'put ''YVsoYz1wKT4+Ml09YVtmPj4yXSxhW2MrND4+Ml09dyxjPTEpOmM9MCxsZT1iLDB8Y31mdW5jdGlvbiBtVChsLGMsZixwKXt2YXIgbSxBO3JldHVybiBwfD0wLEE9bGUsbGU9bGUrMzJ8MCxtPUEsKGw9MHxhWzY4KygwfGFbNjQrKGx8PTApPj4yXSkrKCgzPT0oMHwoY3w9MCkpPzI6Yyk8PDIp''@;'; + put 'put ''Pj4yXSk/KGFbKGM9bSsxNnwwKT4+Ml09Znw9MCxhW2MrND4+Ml09cCxsPTB8bWlbNjMmYVtsPj4yXV0obCxtLDQpKTpsPTAsbGU9QSwwfGx9ZnVuY3Rpb24gdlQobCxjLGYscCl7dmFyIG07cmV0dXJuKGM9MHxtVChsfD0wLG09Mz09KDB8KGN8PTApKT8yOmMsZnw9MCxwfD0wKSk/KG1pWzYz''@;'; + put 'put ''JmFbKGY9MHxhWzU2KygwfGFbKHA9bCs2NHwwKT4+Ml0pKyhtPDwyKT4+Ml0pPj4yXV0oZixjLDIpLG1pWzYzJmFbKHA9MHxhWzY4KygwfGFbcD4+Ml0pKyhtPDwyKT4+Ml0pPj4yXV0ocCxjLDIpLGUwKGwsMHxhW2MrMjQ+PjJdKSx4dChsLGMpLGM9MSk6Yz0wLDB8Y31mdW5jdGlvbiBHZChs''@;'; + put 'put ''KXthWzQ2OTQyXT1sfD0wLFozKDU2KygwfGFbKGw9bCs2NHwwKT4+Ml0pfDApLFozKDY4KygwfGFbbD4+Ml0pfDApfWZ1bmN0aW9uIFozKGwpe2x8PTA7dmFyIGM9MCxmPTAscD0wO2ZvcihjPTA7MyE9KDB8Yyk7KTB8KHA9MHxhWyhmPWwrKGM8PDIpfDApPj4yXSkmJihObChwKSxhW2Y+PjJd''@;'; + put 'put ''PTApLGM9YysxfDB9ZnVuY3Rpb24gd2UobCl7dmFyIGMsZixwO3JldHVybiBsfD0wLGM9bGUsbGU9bGUrMzJ8MCxwPWMrMTJ8MCxmPWMsYVs0NjgyXT1hWzQ2NzldLGFbNDY4M109YVs0NjgwXSxhW3A+PjJdPWwsYVtwKzQ+PjJdPTB8VW8obCksYVtwKzg+PjJdPTAsYVtmPj4yXT0xODczNixh''@;'; + put 'put ''W2YrND4+Ml09MTg2MTIsYVtmKzg+PjJdPTE4NzI0LGw9MHxuRihwLGYpLGZ1bmN0aW9uIHBvKGwpe2FbNDY5NjZdPWx8PTAsYVs0NzI1XT0xfSgwKSxsZT1jLDB8bH1mdW5jdGlvbiBNdChsLGMpe3ZhciBmO3JldHVybiBmPWxlLGxlPWxlKzE2fDAsKGw9MHxCaVsxMjcmYVs0KygwfGFbKGw9''@;'; + put 'put ''MHxhWzY0KyhsfD0wKT4+Ml0pPj4yXSk+PjJdXSgwfGFbbCsxMj4+Ml0sY3w9MCkpfHwkcigxLDk2NDYyLGYpLGxlPWYsMHxsfWZ1bmN0aW9uIHh0KGwsYyl7bHw9MCwwfChjfD0wKSYmR3NbNjMmYVsxMisoMHxhWyhsPTB8YVtsKzY0Pj4yXSk+PjJdKT4+Ml1dKDB8YVtsKzEyPj4yXSxjKX1m''@;'; + put 'put ''dW5jdGlvbiBDbihsLGMsZil7cmV0dXJuIGx8PTAsZnw9MCxhWzQ2NTY0XT1jfD0wLGFbNDY1NjVdPWYsYVs0Njk0N109MTg2MjQ4LDB8KChsPTB8bWlbNjMmYVsobD0wfGFbbCs0MD4+Ml0pPj4yXV0obCwxODc3NzIsNCkpPzB8YVtsKzE2Pj4yXTowKX1mdW5jdGlvbiBEdChsKXtyZXR1cm4g''@;'; + put 'put ''MHwoKGw9MHxtaVs2MyZhWyhsPTB8YVszNisobHw9MCk+PjJdKT4+Ml1dKGwsMCwxMjgpKT8wfGFbbCsxNj4+Ml06MCl9ZnVuY3Rpb24genQobCxjKXt2YXIgZj0wO3JldHVybiAwfCgwIT0oMHwoYz0wfFNmKGx8PTAsY3w9MCkpKSYmMCE9KDB8KGY9MHxtaVs2MyZhWyhmPTB8YVtsKzM2Pj4y''@;'; + put 'put ''XSk+PjJdXShmLGMsOCkpKT8wfGFbZisxNj4+Ml06MCl9ZnVuY3Rpb24gUG4obCl7cmV0dXJuIDB8KChsPTB8bWlbNjMmYVsobD0wfGFbMzYrKGx8PTApPj4yXSk+PjJdXShsLDAsMjU2KSk/MHxhW2wrMTY+PjJdOjApfWZ1bmN0aW9uIFRuKGwsYyl7dmFyIGY9MDtyZXR1cm4gMHwoMCE9KDB8''@;'; + put 'put ''KGM9MHxTZihsfD0wLGN8PTApKSkmJjAhPSgwfChmPTB8bWlbNjMmYVsoZj0wfGFbbCszNj4+Ml0pPj4yXV0oZixjLDE2KSkpPzB8YVtmKzE2Pj4yXTowKX1mdW5jdGlvbiBPbihsLGMsZixwKXtwfD0wO3ZhciBtPTAsQT0wO209MHxDbihsfD0wLGN8PTAsZnw9MCk7ZG97aWYoMCE9KDB8cCkm''@;'; + put 'put ''MD09KDB8bSkpe2lmKCgwfChtPTB8ZGkobCkpKSE9KDB8bCkmJjB8KEE9MHxDbihtLGMsZikpKXtZbihsLEEsMSksbT1BO2JyZWFrfTB8TEEobCwxLGMsZik/KGFpKGwsbT0wfE1yKGwsYyxmLG09MHxOMyhsLDEpLERuKSkseXIobCxtKSk6bT0wfX13aGlsZSgwKTtyZXR1cm4gMHxtfWZ1bmN0''@;'; + put 'put ''aW9uIFluKGwsYyxmKXtjfD0wLGZ8PTA7dmFyIHA9MDtpZigoMHwocD0wfGRpKGx8PTApKSk9PSgwfGFbYysyND4+Ml0pKXtpZigwIT0oMHxmKSYwPT0oMHwocD0wfENuKGwsMHxhWyhwPWMrOHwwKT4+Ml0sMHxhW3ArND4+Ml0pKSkpe2lmKHA9MHxrMShsKSlyZXR1cm4gYXIobCxmPTB8WW4o''@;'; + put 'put ''cCxjLGYpKSwwfGY7cD0wfX1lbHNlIHA9MDtyZXR1cm4gMHxwfWZ1bmN0aW9uIE1yKGwsYyxmLHAsbSl7dmFyIEEsdztyZXR1cm4gY3w9MCxmfD0wLHB8PTAsbXw9MCxtPTB8TXQobHw9MCw2NCksQT0wfGFbbT4+Ml0sYVsodz1tKzh8MCk+PjJdPWMsYVt3KzQ+PjJdPWYsYVttPj4yXT0xMiZB''@;'; + put 'put ''fHA8PDR8MSxhW20rMjQ+PjJdPTB8ZGkobCksNjQmZmVbMjQrKDB8ZGkobCkpPj4wXSYmaDAobSw5NjQwNCwxNiwwKSwwfG19ZnVuY3Rpb24gYWkobCxjKXtsfD0wLGN8PTA7ZG97YXIobCxjKSxsPTB8azEobCl9d2hpbGUoMCE9KDB8bCkpfWZ1bmN0aW9uIHlyKGwsYyl7Y3w9MCw2NCZmZVsy''@;'; + put 'put ''NCsoMHxkaShsfD0wKSk+PjBdJiZpQyhsLGMpLHYwKGwsYyl9ZnVuY3Rpb24gYXIobCxjKXtjfD0wO3ZhciBmLHA9MDtwdSgwfGFbKHA9NDArKGx8PTApfDApPj4yXSksZj0oMHxkaShsKSk9PSgwfGwpP2MrMjh8MDowfE10KGwsMzYpLGFbZisxNj4+Ml09YyxtaVs2MyZhWyhwPTB8YVtwPj4y''@;'; + put 'put ''XSk+PjJdXShwLGYsMSksbWlbNjMmYVsocD0wfGFbbCszNj4+Ml0pPj4yXV0ocCxmLDEpfWZ1bmN0aW9uIEdyKGwsYyxmKXtjfD0wLGZ8PTA7dmFyIEEsayxwPTAsbT0wLHc9MCxiPTA7cmV0dXJuIGs9bGUsbGU9bGUrMTZ8MCxBPWssdz0wfGRpKGx8PTApLDB8SzQobCwxLGMsQSwwKT8ocD0w''@;'; + put 'put ''fENuKGwsMHxhWyhwPUEpPj4yXSwwfGFbcCs0Pj4yXSkpfHwoMD09KDB8Zil8KDB8dyk9PSgwfGwpfHwwPT0oMHwobT0wfENuKHcsMHxhWyhtPUEpPj4yXSwwfGFbbSs0Pj4yXSkpKT9iPTY6cD0wfFluKGwsbSwxKSk6Yj02LDY9PSgwfGIpJiYoMCE9KDB8ZikmJjAhPSgwfEs0KGwsMSxjLEEs''@;'; + put 'put ''MSkpPyhhaShsLHA9MHxNcihsLHc9MHxhWyhiPUEpPj4yXSxiPTB8YVtiKzQ+PjJdLHA9MHxOMyhsLDEpLERuKSkseXIobCxwKSxMNShsLDEscCkpOnA9MCksbGU9aywwfHB9ZnVuY3Rpb24gcXIobCxjKXt2YXIgcCxmPTAsbT0wO2lmKDB8Q24obHw9MCwwfGFbKGY9cD04KyhjfD0wKXwwKT4+''@;'; + put 'put ''Ml0sMHxhW2YrND4+Ml0pKXtpZigoMHxkaShsKSk9PSgwfGwpKXtmb3IoZj0wfFNzKGwsYyk7ZjspbT0wfE5zKGwsZixjKSxxbShsLGYpLGY9bTs2NCZmZVtsKzI0Pj4wXSYmZnVuY3Rpb24gTzYobCl7dmFyIGM7MHwoYz0wfGljKGx8PTApKSYmKGsyKGwsYyksSGkobCw5NjQwNCkpfShjKSx3''@;'; + put 'put ''aShsLGMpLHAyKGMpLEI2KGwsMSwwfGFbKG09cCk+PjJdLDB8YVttKzQ+PjJdKX0wfGJDKGwsYyw1OSwwLDApP2Y9LTE6KCgwfGRpKGwpKT09KDB8bCkmJnh0KGwsYyksZj0wKX1lbHNlIGY9LTE7cmV0dXJuIDB8Zn1mdW5jdGlvbiBvaShsLGMpe2x8PTA7dmFyIHAsdyxmPTAsbT0wLEE9MDt3''@;'; + put 'put ''PWxlLGxlPWxlKzE2fDAscD13LGY9MHxhWyhjfD0wKT4+Ml07ZG97aWYoISgzJmYpKXtpZigoMHxrMShjKSk9PSgwfGwpKXtmPTB8YVtjPj4yXSxBPTU7YnJlYWt9JHIoMSw5NjQ4OCxwKSxtPS0xO2JyZWFrfUE9NX13aGlsZSgwKTtlOmRve2lmKDU9PSgwfEEpKXN3aXRjaCgzJmYpe2Nhc2Ug''@;'; + put 'put ''MTptPTB8cXIobCxjKTticmVhayBlO2Nhc2UgMjpjYXNlIDM6bT0wfHFtKGwsYyk7YnJlYWsgZTtjYXNlIDA6bT0wfEMxKGMpO2JyZWFrIGV9fXdoaWxlKDApO3JldHVybiBsZT13LDB8bX1mdW5jdGlvbiBjcihsKXt2YXIgYz0wO3N3aXRjaCgzJmFbKGx8PTApPj4yXSl7Y2FzZSAyOmNhc2Ug''@;'; + put 'put ''MzpjPTB8YVsyNCsoMHxhW2wrNDA+PjJdKT4+Ml07YnJlYWs7Y2FzZSAxOmM9MHxhW2wrMjQ+PjJdO2JyZWFrO2Nhc2UgMDpjPWx9cmV0dXJuIDB8Y31mdW5jdGlvbiBkaShsKXt2YXIgYz0wO3N3aXRjaCgzJmFbKGx8PTApPj4yXSl7Y2FzZSAyOmNhc2UgMzpjPTI0KygwfGFbbCs0MD4+Ml0p''@;'; + put 'put ''fDA7YnJlYWs7Y2FzZSAxOmM9bCsyNHwwO2JyZWFrO2Nhc2UgMDpjPWwrNjB8MH1yZXR1cm4gMHxhW2M+PjJdfWZ1bmN0aW9uIHYwKGwsYyl7dmFyIGY7Y3w9MCwwfGZlWzUyKyhmPTB8YVs2NCsobHw9MCk+PjJdKT4+MF0/VWkobCxjLDB8YVtmKzQ4Pj4yXSk6TjAobCxjLDEwMCwwKX1mdW5j''@;'; + put 'put ''dGlvbiBVaShsLGMsZil7bHw9MCxjfD0wLGZ8PTA7dmFyIHA9MDtlOmRve2lmKDB8Zil7c3dpdGNoKFVpKGwsYywwfGFbZis4Pj4yXSksMyZhW2M+PjJdKXtjYXNlIDA6cD0wfGFbZj4+Ml07YnJlYWs7Y2FzZSAxOnA9MTIrKDB8YVtmPj4yXSl8MDticmVhaztjYXNlIDI6cD0yNCsoMHxhW2Y+''@;'; + put 'put ''PjJdKXwwO2JyZWFrO2RlZmF1bHQ6YnJlYWsgZX0wfChwPTB8YVtwPj4yXSkmJmRsWzEyNyZwXShsLGMsMHxhW2YrND4+Ml0pfX13aGlsZSgwKX1mdW5jdGlvbiB0byhsLGMsZil7dmFyIHA7Y3w9MCxmfD0wLDB8ZmVbNTIrKHA9MHxhWzY0KyhsfD0wKT4+Ml0pPj4wXT9BMChsLGMsZiwwfGFb''@;'; + put 'put ''cCs0OD4+Ml0pOk4wKGwsYywxMDEsZil9ZnVuY3Rpb24gQTAobCxjLGYscCl7bHw9MCxjfD0wLGZ8PTAscHw9MDt2YXIgbT0wO2U6ZG97aWYoMHxwKXtzd2l0Y2goQTAobCxjLGYsMHxhW3ArOD4+Ml0pLDMmYVtjPj4yXSl7Y2FzZSAwOm09NCsoMHxhW3A+PjJdKXwwO2JyZWFrO2Nhc2UgMTpt''@;'; + put 'put ''PTE2KygwfGFbcD4+Ml0pfDA7YnJlYWs7Y2FzZSAyOm09MjgrKDB8YVtwPj4yXSl8MDticmVhaztkZWZhdWx0OmJyZWFrIGV9MHwobT0wfGFbbT4+Ml0pJiZSY1szMSZtXShsLGMsMHxhW3ArND4+Ml0sZil9fXdoaWxlKDApfWZ1bmN0aW9uIHdpKGwsYyl7dmFyIGY7Y3w9MCwwfGZlWzUyKyhm''@;'; + put 'put ''PTB8YVs2NCsobHw9MCk+PjJdKT4+MF0/WXIobCxjLDB8YVtmKzQ4Pj4yXSk6TjAobCxjLDEwMiwwKX1mdW5jdGlvbiBZcihsLGMsZil7bHw9MCxjfD0wLGZ8PTA7dmFyIHA9MDtlOmRve2lmKDB8Zil7c3dpdGNoKFlyKGwsYywwfGFbZis4Pj4yXSksMyZhW2M+PjJdKXtjYXNlIDA6cD04Kygw''@;'; + put 'put ''fGFbZj4+Ml0pfDA7YnJlYWs7Y2FzZSAxOnA9MjArKDB8YVtmPj4yXSl8MDticmVhaztjYXNlIDI6cD0zMisoMHxhW2Y+PjJdKXwwO2JyZWFrO2RlZmF1bHQ6YnJlYWsgZX0wfChwPTB8YVtwPj4yXSkmJmRsWzEyNyZwXShsLGMsMHxhW2YrND4+Ml0pfX13aGlsZSgwKX1mdW5jdGlvbiBoaShs''@;'; + put 'put ''LGMpe2N8PTA7dmFyIGY9MCxwPTAsbT0wO2Y9MHxhWyhwPTQ4KygwfGFbNjQrKGx8PTApPj4yXSl8MCk+PjJdO2U6ZG97aWYoZil7aWYoKDB8YVtmPj4yXSkhPSgwfGMpKXtmb3IoOzspe2lmKCFmKXtmPS0xO2JyZWFrIGV9aWYoKDB8YVsobT0wfGFbKHA9Zis4fDApPj4yXSk+PjJdKT09KDB8''@;'; + put 'put ''YykpYnJlYWs7Zj1tfW0mJihhW3A+PjJdPWFbbSs4Pj4yXSl9ZWxzZSBhW3A+PjJdPWFbZis4Pj4yXTt4dChsLGYpLGY9MH1lbHNlIGY9LTF9d2hpbGUoMCk7cmV0dXJuIDB8Zn1mdW5jdGlvbiBOcihsLGMpe3ZhciBmO2N8PTAsZj0wfGRpKGx8PTApO2U6ZG97aWYoKDB8Zik9PSgwfGRpKGMp''@;'; + put 'put ''KSlzd2l0Y2goMyZhW2M+PjJdKXtjYXNlIDA6Zm9yKDs7KXtpZigoMHxjKT09KDB8bCkpe2M9MTticmVhayBlfWlmKCEoYz0wfGsxKGMpKSl7Yz0wO2JyZWFrfX1icmVhaztjYXNlIDE6Yz0wIT0oMHxPbihsLDB8YVsoYz1jKzh8MCk+PjJdLDB8YVtjKzQ+PjJdLDApKTticmVhayBlO2RlZmF1''@;'; + put 'put ''bHQ6Yz0wIT0oMHxaZChsLGMsMCkpO2JyZWFrIGV9ZWxzZSBjPTB9d2hpbGUoMCk7cmV0dXJuIDEmY3wwfWZ1bmN0aW9uIGtpKGwpe3JldHVybiAzJmFbKGx8PTApPj4yXXwwfWZ1bmN0aW9uIE4wKGwsYyxmLHApe2N8PTAsZnw9MCxwfD0wO3ZhciBBLHcsYixtPTA7c3dpdGNoKGI9bGUsbGU9''@;'; + put 'put ''bGUrMTZ8MCx3PWIsQT0wfGgwKGx8PTAsOTY1MTIsNDQsMCksMHxmKXtjYXNlIDEwMDowfGlvKG09MHx0MChBLGMsMTAwKSxjKXx8b2EobSxsLGMscCk7YnJlYWs7Y2FzZSAxMDE6MD09KDB8aW8oMHx0MChBLGMsMTAwKSxjKSkmJjA9PSgwfGlvKDB8dDAoQSxjLDEwMiksYykpJiYwPT0oMHxp''@;'; + put 'put ''byhtPTB8dDAoQSxjLDEwMSksYykpJiZvYShtLGwsYyxwKTticmVhaztjYXNlIDEwMjokMCgwfHQwKEEsYywxMDApLGMpLCQwKDB8dDAoQSxjLDEwMSksYyksMHxpbyhtPTB8dDAoQSxjLDEwMiksYyl8fG9hKG0sbCxjLHApO2JyZWFrO2RlZmF1bHQ6JHIoMSw5NjUyNCx3KX1sZT1ifWZ1bmN0''@;'; + put 'put ''aW9uIHQwKGwsYyxmKXtsfD0wLGN8PTAsZnw9MDt2YXIgcCxBLG09MDtBPWxlLGxlPWxlKzE2fDAscD1BO2U6ZG97c3dpdGNoKDMmYVtjPj4yXSl7Y2FzZSAwOnN3aXRjaCgwfGYpe2Nhc2UgMTAwOmY9bCs4fDA7YnJlYWsgZTtjYXNlIDEwMTpmPWwrMjB8MDticmVhayBlO2Nhc2UgMTAyOmY9''@;'; + put 'put ''bCszMnwwO2JyZWFrIGU7ZGVmYXVsdDptPTE0O2JyZWFrIGV9Y2FzZSAxOnN3aXRjaCgwfGYpe2Nhc2UgMTAwOmY9bCsxMnwwO2JyZWFrIGU7Y2FzZSAxMDE6Zj1sKzI0fDA7YnJlYWsgZTtjYXNlIDEwMjpmPWwrMzZ8MDticmVhayBlO2RlZmF1bHQ6bT0xNDticmVhayBlfWNhc2UgMjpzd2l0''@;'; + put 'put ''Y2goMHxmKXtjYXNlIDEwMDpmPWwrMTZ8MDticmVhayBlO2Nhc2UgMTAxOmY9bCsyOHwwO2JyZWFrIGU7Y2FzZSAxMDI6Zj1sKzQwfDA7YnJlYWsgZTtkZWZhdWx0Om09MTQ7YnJlYWsgZX1kZWZhdWx0Om09MTR9fXdoaWxlKDApO3JldHVybiAxND09KDB8bSkmJigkcigxLDk2NTU4LHApLGY9''@;'; + put 'put ''MCksKGw9MHxhW2Y+PjJdKXx8KGw9MHxaaChsPTB8Y3IoYyksMTg4MjgsMHxhWzQ1ODldKSxhW2Y+PjJdPWwpLGxlPUEsMHxsfWZ1bmN0aW9uIGlvKGwsYyl7dmFyIGYscCxtO3JldHVybiBsfD0wLGY9bGUsbGU9bGUrMzJ8MCxwPWYsbT0wfE5hKGN8PTApLGFbKGM9cCs4fDApPj4yXT1tLGFb''@;'; + put 'put ''Yys0Pj4yXT1EbixjPTB8bWlbNjMmYVtsPj4yXV0obCxwLDQpLGxlPWYsMHxjfWZ1bmN0aW9uIG9hKGwsYyxmLHApe2x8PTAsY3w9MCxwfD0wO3ZhciBtLEE9MDtyZXR1cm4gbT0wfE10KDB8Y3IoZnw9MCksMzIpLGFbbSsyMD4+Ml09ZixBPTB8TmEoZiksYVsoZj1tKzh8MCk+PjJdPUEsYVtm''@;'; + put 'put ''KzQ+PjJdPURuLGFbbSsxNj4+Ml09YywwfHAmJihBPTB8TXQoYyw4KSxhW20rMjQ+PjJdPUEsYVtBPj4yXT1wKSxtaVs2MyZhW2w+PjJdXShsLG0sMSksMHxtfWZ1bmN0aW9uICQwKGwsYyl7MHwoYz0wfGlvKGx8PTAsY3w9MCkpJiZtaVs2MyZhW2w+PjJdXShsLGMsMil9ZnVuY3Rpb24gTmEo''@;'; + put 'put ''bCl7cmV0dXJuIERuPTB8YVs0KyhsPTgrKGx8PTApfDApPj4yXSwwfGFbbD4+Ml19ZnVuY3Rpb24gYW8obCxjLGYpe2N8PTAsZnw9MDt2YXIgQSx3LGsscD0wLG09MCxiPTA7Zm9yKGs9bGUsbGU9bGUrMTZ8MCx3PWsscD1BPTB8YVsxNisobHw9MCk+PjJdOzspe2lmKCFwKXtwPTA7YnJlYWt9''@;'; + put 'put ''aWYoKDB8KG09MHxhW3A+PjJdKSk9PSgwfGMpKXtiPTc7YnJlYWt9aWYoKDB8ZmVbYz4+MF0pPT0oMHxmZVttPj4wXSkmJjA9PSgwfFppKGMsbSkpKXtiPTc7YnJlYWt9aWYoKDB8KHA9MHxhW3ArND4+Ml0pKT09KDB8QSkpe3A9MDticmVha319ZG97aWYoNz09KDB8Yikpe2lmKCEoNCZhW2w+''@;'; + put 'put ''PjJdKSl7aWYoKDB8cCk9PSgwfEEpJjA9PSgwfGYpKXtwPUE7YnJlYWt9eDAobCxwLGYpO2JyZWFrfWYmJigoMHxBKT09KDB8cCk/cD1BOiRyKDEsOTY1ODMsdykpfX13aGlsZSgwKTtyZXR1cm4gbGU9aywwfHB9ZnVuY3Rpb24geDAobCxjLGYpe2Z8PTA7dmFyIHA9MDthWzE2KyhsfD0wKT4+''@;'; + put 'put ''Ml09Y3w9MCxhW2w+PjJdPS01JihwPTB8YVtsPj4yXSl8KGY9Zjw8MiY0KSwyJnB8MCYmKGFbbCsoNDgqKHA9Mz09KDMmcHwwKT8tMToxKXwwKSsxNj4+Ml09YyxhWyhwPWwrKDQ4KnB8MCl8MCk+PjJdPS01JmFbcD4+Ml18Zil9ZnVuY3Rpb24gaDAobCxjLGYscCl7Y3w9MCxmfD0wLHB8PTA7''@;'; + put 'put ''dmFyIG0sdyxBPTA7dz0wfGNyKGx8PTApLG09MHxhbyhsLGMsMCk7ZTpkb3tpZigwIT0oMHxmKSYwPT0oMHxtKSlzd2l0Y2goZj0wfE10KHcsZiksYVtmPj4yXT0wfHIwKHcsYyksMyZhW2w+PjJdKXtjYXNlIDA6Y2FzZSAxOmNhc2UgMjpjYXNlIDM6anIobCxmKSxBPWY7YnJlYWsgZX1lbHNl''@;'; + put 'put ''IEE9bX13aGlsZSgwKTtyZXR1cm4gMHxwJiZhbyhsLGMsMSksMHxBfWZ1bmN0aW9uIGpyKGwsYyl7Y3w9MDt2YXIgZj0wLHA9MCxtPTA7Zj0wfGFbMTYrKGx8PTApPj4yXTtkb3tpZihmKXtpZigoMHwobT0wfGFbKHA9Zis0fDApPj4yXSkpPT0oMHxmKSl7YVtwPj4yXT1jLHA9ZixmPWM7YnJl''@;'; + put 'put ''YWt9YVtjKzQ+PjJdPW0scD1jO2JyZWFrfXA9YyxmPWN9d2hpbGUoMCk7YVtmKzQ+PjJdPXAsNCZhW2w+PjJdfHx4MChsLGMsMCl9ZnVuY3Rpb24gSGkobCxjKXt2YXIgZixwO3JldHVybiBjfD0wLHA9MHxjcihsfD0wKSwoZj0wfGFvKGwsYywwKSk/KGZ1bmN0aW9uIHZvKGwsYyl7Y3w9MDt2''@;'; + put 'put ''YXIgZj0wO2w9MHxhWzE2KyhsfD0wKT4+Ml07ZG97bD0wfGFbKGY9bCs0fDApPj4yXX13aGlsZSgoMHxsKSE9KDB8YykpO2FbZj4+Ml09YVtjKzQ+PjJdfShsLGYpLDMmYVtsPj4yXT8oYkMoMHxkaShwKSxsLDYwLGYsMCksYz1mKTooeG8ocCxsLGYpLGM9ZiksZTAocCwwfGFbZj4+Ml0pLHh0''@;'; + put 'put ''KHAsYyksYz0wKTpjPS0xLDB8Y31mdW5jdGlvbiB4byhsLGMsZil7bHw9MCwoMHxhWzE2KyhjfD0wKT4+Ml0pPT0oMHwoZnw9MCkpJiZ4MChjLCgwfChsPTB8YVtmKzQ+PjJdKSk9PSgwfGYpPzA6bCwwKX1mdW5jdGlvbiAkaShsLGMsZixwLG0pe2x8PTAsY3w9MCxmfD0wLG18PTA7dmFyIHcs''@;'; + put 'put ''QT0wO3c9KEE9KDB8KHB8PTApKT4tMSk/cDowLXB8MDtlOmRve3N3aXRjaCgwfGMpe2Nhc2UgMDppZihoMChsLGYsdyxtKSwhQSlmb3IoYz0wfHlzKGwpOzspe2lmKCFjKWJyZWFrIGU7JGkoYywwLGYscCxtKSxjPTB8TXMoYyl9YnJlYWs7Y2FzZSAzOmNhc2UgMjpjYXNlIDE6Zm9yKHA9MT09''@;'; + put 'put ''KDB8YyksYz0wfER0KGwpOzspe2lmKCFjKWJyZWFrIGU7dDpkb3tpZihwKWgwKGMsZix3LG0pO2Vsc2UgZm9yKEE9MHx3MChsLGMpOzspe2lmKCFBKWJyZWFrIHQ7aDAoQSxmLHcsbSksQT0wfFMwKGwsQSl9fXdoaWxlKDApO2M9MHx6dChsLGMpfX19d2hpbGUoMCl9ZnVuY3Rpb24gbDIobCxj''@;'; + put 'put ''LGYpe2x8PTAsY3w9MCxmfD0wO3ZhciBwPTAsbT0wO2U6ZG97c3dpdGNoKDB8Yyl7Y2FzZSAwOmJDKGwsbCw2MSxmLDEpO2JyZWFrO2Nhc2UgMzpjYXNlIDI6Y2FzZSAxOmZvcihtPTE9PSgwfGMpLHA9MHxEdChsKTs7KXtpZighcClicmVhayBlO3Q6ZG97aWYobSlIaShwLGYpO2Vsc2UgZm9y''@;'; + put 'put ''KGM9MHx3MChsLHApOzspe2lmKCFjKWJyZWFrIHQ7SGkoYyxmKSxjPTB8UzAobCxjKX19d2hpbGUoMCk7cD0wfHp0KGwscCl9fX13aGlsZSgwKX1mdW5jdGlvbiBwMihsKXt2YXIgYyxmLHA9MDtpZihmPTB8Y3IobHw9MCksMHwobD0wfGFbKGM9bCsxNnwwKT4+Ml0pKWRve3A9bCxsPTB8YVts''@;'; + put 'put ''KzQ+PjJdLGUwKGYsMHxhW3A+PjJdKSx4dChmLHApfXdoaWxlKCgwfGwpIT0oMHxhW2M+PjJdKSk7YVtjPj4yXT0wfWZ1bmN0aW9uIHJyKGwpe3JldHVybiAwfCQ0KGx8PTAsMHxJcihsKSl9ZnVuY3Rpb24gSXIobCl7dmFyIGYsYz0wO3JldHVybihjPTB8YVsoZj0obHw9MCk/MjArKDB8YVts''@;'; + put 'put ''KzY0Pj4yXSl8MDoxODc4NDQpPj4yXSl8fChjPTB8WmgobCwxODg2NCwwfGFbNDU4OV0pLGFbZj4+Ml09YyxhWyhsPTE4NjMxMik+PjJdPS0yMTQ3NDgzNjQ4LGFbbCs0Pj4yXT0wLGFbKGw9MTg2MzIwKT4+Ml09MjE0NzQ4MzY0NyxhW2wrND4+Ml09LTEpLDB8Y31mdW5jdGlvbiBacihsLGMp''@;'; + put 'put ''e3JldHVybiBjfD0wLDB8ZnVuY3Rpb24gcWkobCxjKXtyZXR1cm4gMHwobD0obD0wfHJpKGx8PTAsY3w9MCkpPzB8YVtsKzE2Pj4yXTowKX0oMHxJcihsfD0wKSxjKX1mdW5jdGlvbiByaShsLGMpe3ZhciBmLHA7cmV0dXJuIGx8PTAsZj1sZSxsZT1sZSszMnwwLGFbKHA9ZikrMTY+PjJdPWN8''@;'; + put 'put ''PTAsYz0wfG1pWzYzJmFbbD4+Ml1dKGwscCw0KSxsZT1mLDB8Y31mdW5jdGlvbiByMChsLGMpe2x8PTA7dmFyIGY9MCxwPTA7cmV0dXJuKGN8PTApPygoZj0wfHJpKHA9MHxJcihsKSxjKSk/KGM9MHx6bCgwfGFbKGM9cD1mKzh8MCk+PjJdLDB8YVtjKzQ+PjJdLDEsMCksYVtwPj4yXT1jLGFb''@;'; + put 'put ''cCs0Pj4yXT1Ebik6KGY9MjQrKDB8VW8oYykpfDAsZj1sPzB8TXQobCxmKTowfEIwKGYpLGFbKGw9Zis4fDApPj4yXT0xLGFbbCs0Pj4yXT0wLGlkKGw9ZisyMHwwLGMpLGFbZisxNj4+Ml09bCxtaVs2MyZhW3A+PjJdXShwLGYsMSkpLGY9MHxhW2YrMTY+PjJdKTpmPTAsMHxmfWZ1bmN0aW9u''@;'; + put 'put ''IGUwKGwsYyl7bHw9MDt2YXIgZj0wLHA9MCxtPTAsQT0wO3JldHVybiAwIT0oMHwoY3w9MCkpJiYwIT0oMHwocD0wfHJpKGY9MHxJcihsKSxjKSkpPygoMHxhW3ArMTY+PjJdKT09KDB8YykmJihBPTB8emwoMHxhWyhBPWM9cCs4fDApPj4yXSwwfGFbQSs0Pj4yXSwtMSwtMSksbT1EbixhW2M+''@;'; + put 'put ''PjJdPUEsYVtjKzQ+PjJdPW0sMD09KDB8QSkmMD09KDB8bSl8MD09KDB8YVsoYz0xODYzMjApPj4yXSkmMD09KDB8YVtjKzQ+PjJdKSkmJmZ1bmN0aW9uIFFuZShsLGMsZil7Y3w9MCxmfD0wLGFbNDY5ODRdPWx8PTAsbWlbNjMmYVtjPj4yXV0oYyxmLDIpfShsLGYscCksbD0wKTpsPS0xLDB8''@;'; + put 'put ''bH1mdW5jdGlvbiBPbyhsKXtyZXR1cm4gMHwobD0obHw9MCk/YVs0NjU3OF0mYVsobD1sKy0xMnwwKT4+Ml06MCl9ZnVuY3Rpb24gazAobCl7dmFyIGM9MCxmPTAscD0wOzB8KGx8PTApJiYoYz1hWzQrKHA9bD1sKy0xMnwwKT4+Ml18YVs0KyhmPTE4NjMxMik+PjJdLGFbbD4+Ml09YVtwPj4y''@;'; + put 'put ''XXxhW2Y+PjJdLGFbbCs0Pj4yXT1jKX1mdW5jdGlvbiBRbCgpe3ZhciBsPTAsYz0wLGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTA7MHxhWzQ2OTcwXXx8KGFbNDY5NzBdPTEsMHxhWzQ2OTcxXXx8KGFbNDY5NzFdPTEpLDB8YVs0Njk2Ml18fChhWzQ2OTYyXT1hWzE1NjQ3XSksMHxh''@;'; + put 'put ''WzQ2OTYzXXx8KGFbNDY5NjNdPWFbMTU2NzldKSwwIT0oMHwodz0wfGFbNDY5NzJdKSkmJjAhPSgwfGFbdz4+Ml0pfHwoQWwoKSx3PTB8cTIoMHxhWzQ2OTYyXSwxNjM4NCksYVthWzQ2OTcyXT4+Ml09dyksZTEoKSk7ZTpmb3IoOzspe2ZlWyhBPTB8YVs0Njk3M10pPj4wXT0wfGZlWzE5NDgw''@;'; + put 'put ''NV0sbD0oMHxhWzI4KygwfGFbYVs0Njk3Ml0+PjJdKT4+Ml0pKygwfGFbNDY5NzFdKXwwLGM9QTt0OmZvcig7Oyl7Zm9yKHA9Yzs7KXtjPTB8YVsxODkwNCsoWHRbcD4+MF08PDIpPj4yXSwwfGl0WzYzODU2KyhsPDwxKT4+MV0mJihhWzQ2OTc0XT1sLGFbNDY5NzVdPXApO246Zm9yKDs7KXtm''@;'; + put 'put ''PTI1NSZjO2Rve2lmKCgwfGwpPT0oMHxpdFs2NDI1MisoKGM9ZisoMHxpdFs2NDA0MisobDw8MSk+PjFdKXwwKTw8MSk+PjFdKSlicmVhayBuO2w9KHc9MHxpdFs2NDc4OCsobDw8MSk+PjFdKTw8MTY+PjE2fXdoaWxlKHc8PDE2Pj4xNjw9OTIpO2M9MHxhWzE5OTI4KyhmPDwyKT4+Ml19aWYo''@;'; + put 'put ''bD0wfGl0WzY0OTk4KyhjPDwxKT4+MV0sYz1wKzF8MCwyMTk9PSgwfGl0WzY0MDQyKyhsPDwxKT4+MV0pKWJyZWFrO3A9Y31uOmZvcig7Oyl7dz1BO3I6Zm9yKDs7KXsobD0wfGl0WzYzODU2KyhsPDwxKT4+MV0pPDwxNj4+MTY/bD1sPDwxNj4+MTY6KGw9MHxpdFs2Mzg1NisoYVs0Njk3NF08''@;'; + put 'put ''PDEpPj4xXSxjPTB8YVs0Njk3NV0pLGFbNDY5NjRdPUEsYVs0Njk2NV09KG09YyktdyxmZVsxOTQ4MDVdPTB8ZmVbYz4+MF0sZmVbYz4+MF09MCxhWzQ2OTczXT1jO2k6Zm9yKDs7KXtzd2l0Y2goMHxsKXtjYXNlIDE6az0yNzticmVhayBlO2Nhc2UgMTI6az01MzticmVhayBlO2Nhc2UgMTM6''@;'; + put 'put ''az01NTticmVhayBlO2Nhc2UgMTQ6az01NzticmVhayBlO2Nhc2UgMTU6az02MTticmVhayBlO2Nhc2UgMTY6az02NTticmVhayBlO2Nhc2UgMTc6az02NzticmVhayBlO2Nhc2UgMTg6az02OTticmVhayBlO2Nhc2UgMTk6az03MjticmVhayBlO2Nhc2UgMjA6az03NTticmVhayBlO2Nhc2Ug''@;'; + put 'put ''MjE6az03ODticmVhayBlO2Nhc2UgMjM6az04NjticmVhayBlO2Nhc2UgMzM6az0xMTg7YnJlYWsgZTtjYXNlIDM5OmNhc2UgMzg6Y2FzZSAzNzpjYXNlIDM2OmI9MDticmVhayBlO2Nhc2UgMjprPTI5O2JyZWFrIHQ7Y2FzZSAzOms9MzI7YnJlYWsgdDtjYXNlIDQ6az0zNTticmVhayB0O2Nh''@;'; + put 'put ''c2UgNTprPTM3O2JyZWFrIHQ7Y2FzZSA2Oms9Mzk7YnJlYWsgdDtjYXNlIDc6az00MjticmVhayB0O2Nhc2UgODprPTQ0O2JyZWFrIHQ7Y2FzZSA5Oms9NDc7YnJlYWsgdDtjYXNlIDEwOms9NDk7YnJlYWsgdDtjYXNlIDExOms9NTE7YnJlYWsgdDtjYXNlIDIyOms9ODM7YnJlYWsgdDtjYXNl''@;'; + put 'put ''IDI0Oms9ODk7YnJlYWsgdDtjYXNlIDI1Oms9OTI7YnJlYWsgdDtjYXNlIDI2Oms9OTU7YnJlYWsgdDtjYXNlIDI3Oms9OTg7YnJlYWsgdDtjYXNlIDI4Oms9MTAxO2JyZWFrIHQ7Y2FzZSAyOTprPTEwNDticmVhayB0O2Nhc2UgMzA6az0xMDk7YnJlYWsgdDtjYXNlIDMxOms9MTEyO2JyZWFr''@;'; + put 'put ''IHQ7Y2FzZSAzMjprPTExNTticmVhayB0O2Nhc2UgMzQ6az0xMjE7YnJlYWsgdDtjYXNlIDA6YnJlYWsgaTtjYXNlIDM1OmJyZWFrO2RlZmF1bHQ6az0xMzQ7YnJlYWsgZX1pZihwPTB8YVs0Njk2NF0sZmVbYz4+MF09MHxmZVsxOTQ4MDVdLDB8YVs0NCsoZj0wfGFbKGw9MHxhWzQ2OTcyXSk+''@;'; + put 'put ''PjJdKT4+Ml0/bD0wfGFbNDY5NzddOihhWzQ2OTc3XT1NPTB8YVtmKzE2Pj4yXSxhW2Y+PjJdPWFbNDY5NjJdLGFbNDQrKGY9MHxhW2w+PjJdKT4+Ml09MSxsPU0pLCgwfGFbNDY5NzNdKT4+PjA8PSgoMHxhW2YrND4+Ml0pK2x8MCk+Pj4wKXtrPTEyODticmVhayByfXN3aXRjaCgwfGJyKCkp''@;'; + put 'put ''e2Nhc2UgMDprPTEzMjticmVhayBuO2Nhc2UgMjprPTEzMzticmVhayByO2Nhc2UgMTpicmVhaztkZWZhdWx0OmNvbnRpbnVlIGV9YVs0Njk3M109YVs0Njk2NF0sbD0zNisoKCgwfGFbNDY5NzFdKS0xfDApLzJ8MCl8MH1mZVtjPj4wXT0wfGZlWzE5NDgwNV0sYz0wfGFbNDY5NzVdLGw9MHxh''@;'; + put 'put ''WzQ2OTc0XX1pZigxMjghPSgwfGspKTEzMyE9KDB8ayl8fChrPTAsYVs0Njk3M109Yz0oMHxhWzQrKDB8YVthWzQ2OTcyXT4+Ml0pPj4yXSkrKDB8YVs0Njk3N10pfDAsbD0wfFduKCksQT0wfGFbNDY5NjRdKTtlbHNlIGlmKGs9MCxmPW0tcHwwLGFbNDY5NzNdPWM9KHA9MHxhWzQ2OTY0XSkr''@;'; + put 'put ''KGYrLTEpfDAsbT0wfCRuKGw9MHxXbigpKSxBPTB8YVs0Njk2NF0sbSl7az0xMjk7YnJlYWt9fTEyOSE9KDB8ayk/MTMyIT0oMHxrKXx8KGs9MCxhWzQ2OTczXT1jPW0tcC0xKygwfGFbNDY5NjRdKXwwLGw9MHxXbigpLEE9MHxhWzQ2OTY0XSk6KGs9MCxhWzQ2OTczXT1jPXArZnwwLGw9bSl9''@;'; + put 'put ''c3dpdGNoKDB8ayl7Y2FzZSAyOTpjYXNlIDk1Oms9MCwwfChsPTB8YVs0Njk2NV0pJiYoYVsyOCsoMHxhW2FbNDY5NzJdPj4yXSk+PjJdPTEwPT0oMHxmZVsoMHxhWzQ2OTY0XSkrKGwrLTEpPj4wXSkmMSksYVs0NzI1XT0xKygwfGFbNDcyNV0pO2NvbnRpbnVlIGU7Y2FzZSAzMjprPTAsMHwo''@;'; + put 'put ''bD0wfGFbNDY5NjVdKSYmKGFbMjgrKDB8YVthWzQ2OTcyXT4+Ml0pPj4yXT0xMD09KDB8ZmVbKDB8YVs0Njk2NF0pKyhsKy0xKT4+MF0pJjEpLGFbNDY5NzFdPTM7Y29udGludWUgZTtjYXNlIDM1OmNhc2UgMzc6Y2FzZSA0MjpjYXNlIDQ3OmNhc2UgNDk6Y2FzZSA1MTppZihrPTAsIShsPTB8''@;'; + put 'put ''YVs0Njk2NV0pKWNvbnRpbnVlIGU7YVsyOCsoMHxhW2FbNDY5NzJdPj4yXSk+PjJdPTEwPT0oMHxmZVsoMHxhWzQ2OTY0XSkrKGwrLTEpPj4wXSkmMTtjb250aW51ZSBlO2Nhc2UgMzk6az0wLDB8KGw9MHxhWzQ2OTY1XSkmJihhWzI4KygwfGFbYVs0Njk3Ml0+PjJdKT4+Ml09MTA9PSgwfGZl''@;'; + put 'put ''WygwfGFbNDY5NjRdKSsobCstMSk+PjBdKSYxKSxhWzQ2OTcxXT0xO2NvbnRpbnVlIGU7Y2FzZSA0NDprPTAsMHwobD0wfGFbNDY5NjVdKSYmKGFbMjgrKDB8YVthWzQ2OTcyXT4+Ml0pPj4yXT0xMD09KDB8ZmVbKDB8YVs0Njk2NF0pKyhsKy0xKT4+MF0pJjEpLEtzKCk7Y29udGludWUgZTtj''@;'; + put 'put ''YXNlIDgzOms9MCwwfChsPTB8YVs0Njk2NV0pJiYoYVsyOCsoMHxhW2FbNDY5NzJdPj4yXSk+PjJdPTEwPT0oMHxmZVsoMHxhWzQ2OTY0XSkrKGwrLTEpPj4wXSkmMSksYVs0Njk3MV09NSx0aCgpO2NvbnRpbnVlIGU7Y2FzZSA4OTprPTAsMHwobD0wfGFbNDY5NjVdKSYmKGFbMjgrKDB8YVth''@;'; + put 'put ''WzQ2OTcyXT4+Ml0pPj4yXT0xMD09KDB8ZmVbKDB8YVs0Njk2NF0pKyhsKy0xKT4+MF0pJjEpLEJyKDk4NzQ0KTtjb250aW51ZSBlO2Nhc2UgOTI6az0wLDB8KGw9MHxhWzQ2OTY1XSkmJihhWzI4KygwfGFbYVs0Njk3Ml0+PjJdKT4+Ml09MTA9PSgwfGZlWygwfGFbNDY5NjRdKSsobCstMSk+''@;'; + put 'put ''PjBdKSYxKSxCcig5NjYxNik7Y29udGludWUgZTtjYXNlIDk4OmNhc2UgMTE1Oms9MCxsPTB8YVs0Njk2NF0sMHwoYz0wfGFbNDY5NjVdKSYmKGFbMjgrKDB8YVthWzQ2OTcyXT4+Ml0pPj4yXT0xMD09KDB8ZmVbbCsoYystMSk+PjBdKSYxKSxCcihsKTtjb250aW51ZSBlO2Nhc2UgMTAxOms9''@;'; + put 'put ''MCwwfChsPTB8YVs0Njk2NV0pJiYoYVsyOCsoMHxhW2FbNDY5NzJdPj4yXSk+PjJdPTEwPT0oMHxmZVsoMHxhWzQ2OTY0XSkrKGwrLTEpPj4wXSkmMSksYVs0Njk3MV09NyxhWzQ2OTc2XT0xLHRoKCk7Y29udGludWUgZTtjYXNlIDEwNDppZihrPTAsMHwobD0wfGFbNDY5NjVdKSYmKGFbMjgr''@;'; + put 'put ''KDB8YVthWzQ2OTcyXT4+Ml0pPj4yXT0xMD09KDB8ZmVbKDB8YVs0Njk2NF0pKyhsKy0xKT4+MF0pJjEpLGFbNDY5NzZdPU09KDB8YVs0Njk3Nl0pLTF8MCwhTSl7az0xMDg7YnJlYWsgZX1CcigwfGFbNDY5NjRdKTtjb250aW51ZSBlO2Nhc2UgMTA5Oms9MCxsPTB8YVs0Njk2NF0sMHwoYz0w''@;'; + put 'put ''fGFbNDY5NjVdKSYmKGFbMjgrKDB8YVthWzQ2OTcyXT4+Ml0pPj4yXT0xMD09KDB8ZmVbbCsoYystMSk+PjBdKSYxKSxhWzQ2OTc2XT0xKygwfGFbNDY5NzZdKSxCcihsKTtjb250aW51ZSBlO2Nhc2UgMTEyOms9MCxsPTB8YVs0Njk2NF0sMHwoYz0wfGFbNDY5NjVdKSYmKGFbMjgrKDB8YVth''@;'; + put 'put ''WzQ2OTcyXT4+Ml0pPj4yXT0xMD09KDB8ZmVbbCsoYystMSk+PjBdKSYxKSxCcihsKSxhWzQ3MjVdPTErKDB8YVs0NzI1XSk7Y29udGludWUgZTtjYXNlIDEyMTprPTAsbD0wfGFbNDY5NjRdLDB8KGM9MHxhWzQ2OTY1XSkmJihhWzI4KygwfGFbYVs0Njk3Ml0+PjJdKT4+Ml09MTA9PSgwfGZl''@;'; + put 'put ''W2wrKGMrLTEpPj4wXSkmMSksQ3UobCxjLDEsMHxhWzQ2OTYzXSk7Y29udGludWUgZX19c3dpdGNoKDB8ayl7Y2FzZSAyNzoobD0wfGFbNDY5NjVdKSYmKGFbMjgrKDB8YVthWzQ2OTcyXT4+Ml0pPj4yXT0xMD09KDB8ZmVbKDB8YVs0Njk2NF0pKyhsKy0xKT4+MF0pJjEpLGI9LTE7YnJlYWs7''@;'; + put 'put ''Y2FzZSA1MzoobD0wfGFbNDY5NjVdKSYmKGFbMjgrKDB8YVthWzQ2OTcyXT4+Ml0pPj4yXT0xMD09KDB8ZmVbKDB8YVs0Njk2NF0pKyhsKy0xKT4+MF0pJjEpLGI9MjU5O2JyZWFrO2Nhc2UgNTU6KGw9MHxhWzQ2OTY1XSkmJihhWzI4KygwfGFbYVs0Njk3Ml0+PjJdKT4+Ml09MTA9PSgwfGZl''@;'; + put 'put ''WygwfGFbNDY5NjRdKSsobCstMSk+PjBdKSYxKSxiPTI2MDticmVhaztjYXNlIDU3OjB8KGw9MHxhWzQ2OTY1XSkmJihhWzI4KygwfGFbYVs0Njk3Ml0+PjJdKT4+Ml09MTA9PSgwfGZlWygwfGFbNDY5NjRdKSsobCstMSk+PjBdKSYxKSwwfGFbNDY5NjldfHwoYVs0Njk2OV09MjU4KSxiPTI1''@;'; + put 'put ''ODticmVhaztjYXNlIDYxOjB8KGw9MHxhWzQ2OTY1XSkmJihhWzI4KygwfGFbYVs0Njk3Ml0+PjJdKT4+Ml09MTA9PSgwfGZlWygwfGFbNDY5NjRdKSsobCstMSk+PjBdKSYxKSwwfGFbNDY5NjldfHwoYVs0Njk2OV09MjYxKSxiPTI2MTticmVhaztjYXNlIDY1OihsPTB8YVs0Njk2NV0pJiYo''@;'; + put 'put ''YVsyOCsoMHxhW2FbNDY5NzJdPj4yXSk+PjJdPTEwPT0oMHxmZVsoMHxhWzQ2OTY0XSkrKGwrLTEpPj4wXSkmMSksYj0yNjM7YnJlYWs7Y2FzZSA2NzoobD0wfGFbNDY5NjVdKSYmKGFbMjgrKDB8YVthWzQ2OTcyXT4+Ml0pPj4yXT0xMD09KDB8ZmVbKDB8YVs0Njk2NF0pKyhsKy0xKT4+MF0p''@;'; + put 'put ''JjEpLGI9MjYyO2JyZWFrO2Nhc2UgNjk6MHwobD0wfGFbNDY5NjVdKSYmKGFbMjgrKDB8YVthWzQ2OTcyXT4+Ml0pPj4yXT0xMD09KDB8ZmVbKDB8YVs0Njk2NF0pKyhsKy0xKT4+MF0pJjEpLGI9MjYxPT0oMHxhWzQ2OTY5XSk/MjY0OjQ1O2JyZWFrO2Nhc2UgNzI6MHwobD0wfGFbNDY5NjVd''@;'; + put 'put ''KSYmKGFbMjgrKDB8YVthWzQ2OTcyXT4+Ml0pPj4yXT0xMD09KDB8ZmVbKDB8YVs0Njk2NF0pKyhsKy0xKT4+MF0pJjEpLGI9MjU4PT0oMHxhWzQ2OTY5XSk/MjY0OjQ1O2JyZWFrO2Nhc2UgNzU6bD0wfGFbNDY5NjRdLDB8KGM9MHxhWzQ2OTY1XSkmJihhWzI4KygwfGFbYVs0Njk3Ml0+PjJd''@;'; + put 'put ''KT4+Ml09MTA9PSgwfGZlW2wrKGMrLTEpPj4wXSkmMSksYVs0Njk5Ml09MHxyMCgwfGFbNDY5NDJdLGwpLGI9MjY3O2JyZWFrO2Nhc2UgNzg6MHwobD0wfGFbNDY5NjVdKSYmKGFbMjgrKDB8YVthWzQ2OTcyXT4+Ml0pPj4yXT0xMD09KDB8ZmVbKDB8YVs0Njk2NF0pKyhsKy0xKT4+MF0pJjEp''@;'; + put 'put ''LDB8ZnVuY3Rpb24gUDYoKXt2YXIgZixwLEEsdyxiLGw9MCxjPTAsbT0wLGs9MDtyZXR1cm4gYj1sZSxsZT1sZSsyMDgwfDAsdz1iKzh8MCxwPWIsbD1iKzEwNTZ8MCxjPWIrMzJ8MCxBPWIrMTZ8MCwoZj0oaz0wfGZlWygwfGFbNDY5NjVdKS0xKygwfGFbNDY5NjRdKT4+MF0pPDwyND4+MjQ9''@;'; + put 'put ''PTQ2KXwoKDI1NSZrKS00OHwwKT4+PjA8MTA/ZiYmMCE9KDB8ZnVuY3Rpb24gSjAoKXt2YXIgYyxsPTA7Zm9yKGM9MHxhWzQ2OTY0XSxsPSgwfGFbNDY5NjVdKS0yfDA7Oyl7aWYoKDB8bCk8PS0xKXtsPTA7YnJlYWt9aWYoNDY9PSgwfGZlW2MrbD4+MF0pKXtsPTE7YnJlYWt9bD1sKy0xfDB9''@;'; + put 'put ''cmV0dXJuIDB8bH0oKSk/bT00Omw9MDptPTQsND09KDB8bSkmJihrPTB8YVs0Njk2Nl0sdXMoQSwxMDI0LGwpLHVvKEEsOTY4MjcpLHVvKEEsMHxhWzQ2OTY0XSksYVtwPj4yXT1hWzQ3MjVdLG9vKGMsOTY4NzEscCksdW8oQSxjKSx1byhBLDA9PSgwfGspPzk2ODIxOmspLHVvKEEsOTY4ODgp''@;'; + put 'put ''LChsPTB8YVsoYz1BKzR8MCk+PjJdKT4+PjA+PSgwfGFbQSs4Pj4yXSk+Pj4wJiYoUTAoQSwxKSxsPTB8YVtjPj4yXSksZmVbbD4+MF09MCxhW2M+PjJdPWw9MHxhW0E+PjJdLGFbdz4+Ml09bCwkcigwLDk2OTEzLHcpLEMyKEEpLGw9MSksbGU9YiwwfGx9KCkmJihrPSgwfGFbNDY5NjVdKS0x''@;'; + put 'put ''fDAsZmVbYz4+MF09MHxmZVsxOTQ4MDVdLGFbNDY5NzNdPU09QStrfDAsYVs0Njk2NF09QSxhWzQ2OTY1XT1rLGZlWzE5NDgwNV09MHxmZVtNPj4wXSxmZVtNPj4wXT0wLGFbNDY5NzNdPU0pLGFbNDY5OTJdPTB8cjAoMHxhWzQ2OTQyXSwwfGFbNDY5NjRdKSxiPTI2NzticmVhaztjYXNlIDg2''@;'; + put 'put ''OjB8KGw9MHxhWzQ2OTY1XSkmJihhWzI4KygwfGFbYVs0Njk3Ml0+PjJdKT4+Ml09MTA9PSgwfGZlWygwfGFbNDY5NjRdKSsobCstMSk+PjBdKSYxKSxhWzQ2OTcxXT0xLGZ1bmN0aW9uIGxyKCl7YVs0Njk5Ml09MHxyMCgwfGFbNDY5NDJdLDB8YVs0Njk3OF0pLGZlW2FbNDY5NzhdPj4wXT0w''@;'; + put 'put ''fSgpLGI9MjY4O2JyZWFrO2Nhc2UgMTA4OmFbNDY5NzFdPTEsZnVuY3Rpb24gZHIoKXthWzQ2OTkyXT0wfGZ1bmN0aW9uIHBpKGwsYyl7bHw9MDt2YXIgZj0wLHA9MCxtPTAsQT0wO3JldHVybihjfD0wKT8oKGY9MHxyaShwPTB8SXIobCksYykpPyhtPTB8emwoMHxhWyhtPUE9Zis4fDApPj4y''@;'; + put 'put ''XSwwfGFbbSs0Pj4yXSwxLDApLGFbQT4+Ml09bSxhW0ErND4+Ml09RG4pOihmPTI0KygwfFVvKGMpKXwwLGY9bD8wfE10KGwsZik6MHxCMChmKSxtPTB8YVs0KyhBPTE4NjMxMik+PjJdLGFbKGw9Zis4fDApPj4yXT0xfGFbQT4+Ml0sYVtsKzQ+PjJdPW0saWQobD1mKzIwfDAsYyksYVtmKzE2''@;'; + put 'put ''Pj4yXT1sLG1pWzYzJmFbcD4+Ml1dKHAsZiwxKSksZj0wfGFbZisxNj4+Ml0pOmY9MCwwfGZ9KDB8YVs0Njk0Ml0sMHxhWzQ2OTc4XSksZmVbYVs0Njk3OF0+PjBdPTB9KCksYj0yNjg7YnJlYWs7Y2FzZSAxMTg6bD0wfGFbNDY5NjRdLDB8KGM9MHxhWzQ2OTY1XSkmJihhWzI4KygwfGFbYVs0''@;'; + put 'put ''Njk3Ml0+PjJdKT4+Ml09MTA9PSgwfGZlW2wrKGMrLTEpPj4wXSkmMSksYj0wfGZlW2w+PjBdO2JyZWFrO2Nhc2UgMTM0OldyKDk2NjE5KX1yZXR1cm4gMHxifWZ1bmN0aW9uIEFsKCl7dmFyIGw9MCxjPTAsZj0wO2M9MHxhWzQ2OTcyXTtkb3tpZihjKXtpZigwPj0oKGw9MHxhWzQ2OTgzXSkt''@;'; + put 'put ''MXwwKT4+PjApe2lmKGM9MHx1aShjLChsPWwrOHwwKTw8MiksYVs0Njk3Ml09YyxjKXthWyhmPWMrKGFbNDY5ODNdPDwyKXwwKT4+Ml09MCxhW2YrND4+Ml09MCxhW2YrOD4+Ml09MCxhW2YrMTI+PjJdPTAsYVtmKzE2Pj4yXT0wLGFbZisyMD4+Ml09MCxhW2YrMjQ+PjJdPTAsYVtmKzI4Pj4y''@;'; + put 'put ''XT0wLGY9OTticmVha31Xcig5Njk3Nyl9fWVsc2V7aWYobD0wfGVhKDQpLGFbNDY5NzJdPWwsbCl7YVtsPj4yXT0wLGw9MSxmPTk7YnJlYWt9V3IoOTY5NzcpfX13aGlsZSgwKTs5PT0oMHxmKSYmKGFbNDY5ODNdPWwpfWZ1bmN0aW9uIHEyKGwsYyl7dmFyIGY7cmV0dXJuIGx8PTAsY3w9MCwo''@;'; + put 'put ''Zj0wfGVhKDQ4KSl8fFdyKDk2OTMyKSxhW2YrMTI+PjJdPWMsYz0wfGVhKGMrMnwwKSxhW2YrND4+Ml09YyxjPyhhW2YrMjA+PjJdPTEsdTAoZixsKSwwfGYpOihXcig5NjkzMiksMCl9ZnVuY3Rpb24gZTEoKXt2YXIgYyxsPTA7YVs0Njk3N109YVsxNisobD0wfGFbKGM9MHxhWzQ2OTcyXSk+''@;'; + put 'put ''PjJdKT4+Ml0sYVs0Njk3M109bD0wfGFbbCs4Pj4yXSxhWzQ2OTY0XT1sLGFbNDY5NjJdPWFbYVtjPj4yXT4+Ml0sZmVbMTk0ODA1XT0wfGZlW2w+PjBdfWZ1bmN0aW9uIEtzKCl7dmFyIG0sQSxsPTAsYz0wLGY9MCxwPTA7aWYobT1sZSxsZT1sZSszMnwwLHA9bSxjPW0rMTZ8MCxmPW0rMTJ8''@;'; + put 'put ''MCxsPTA9PSgwfHMyKGw9MSsoQT0wfGFbNDY5NjRdKXwwLDk2OTE2LDQpKT9BKzV8MDpsLGFbcD4+Ml09ZixhW3ArND4+Ml09bSsyMCxhW3ArOD4+Ml09YywoMHwocD0wfGlsKGwsOTY5MjEscCkpKT4wJiYoYVs0NzI1XT0oMHxhW2Y+PjJdKS0xLDEhPSgwfHApKSl7bD1jPWwrKDB8YVtjPj4y''@;'; + put 'put ''XSl8MDtlOmZvcig7Oyl7c3dpdGNoKChmPTB8ZmVbbD4+MF0pPDwyND4+MjQpe2Nhc2UgMDpjYXNlIDM0OmJyZWFrIGV9bD1sKzF8MH0oMHxsKSE9KDB8YykmZjw8MjQ+PjI0PT0zNCYmKGZlW2w+PjBdPTAsZnVuY3Rpb24gSTAobCxjKXtsfD0wO3ZhciBmPTA7KDB8KGY9MHxhWzQ2OTgxXSkp''@;'; + put 'put ''PCgwfChjfD0wKSk/KGY9Zj8wfFVhKDB8YVs0Njk4Ml0sYysxfDApOjB8QjAoYysxfDApLGFbNDY5ODJdPWYsYVs0Njk4MV09Yyk6Zj0wfGFbNDY5ODJdLGlkKGYsbCksYVs0Njk2Nl09YVs0Njk4Ml19KGMsbC1jfDApKX1sZT1tfWZ1bmN0aW9uIHRoKCl7dmFyIGw9MDsobD0wfGFbNDY5Nzhd''@;'; + put 'put ''KXx8KGw9MHxCMCgxMDI0KSxhWzQ2OTc4XT1sLGFbNDY5ODBdPWwrMTAyNCksYVs0Njk3OV09bCxmZVtsPj4wXT0wfWZ1bmN0aW9uIEJyKGwpe2x8PTA7dmFyIGM9MCxmPTAscD0wLG09MCxBPTAsdz0wOyhmPTB8YVs0Njk3OV0pPj4+MD4oYz0wfGFbNDY5NzhdKT4+PjAmJihmPWYrLTF8MCxw''@;'; + put 'put ''PTMpO2U6Zm9yKDs7KXszPT0oMHxwKSYmKGFbNDY5NzldPWYpLG09cD0wfGFbNDY5ODBdO2Rve2lmKEE9bCxsPWwrMXwwLHc9ZixmPWYrMXwwLGZlW3c+PjBdPUE9MHxmZVtBPj4wXSwhKEE8PDI0Pj4yNCkpYnJlYWsgZX13aGlsZShmPj4+MDxwPj4+MCk7YVs0Njk3OV09ZixjPTB8VWEoYyx3''@;'; + put 'put ''PW0tKHA9Yyk8PDEpLGFbNDY5NzhdPWMsYVs0Njk4MF09Yyt3LGY9YysoZi1wKXwwLHA9M31hWzQ2OTc5XT1mfWZ1bmN0aW9uIFduKCl7dmFyIG0sbD0wLGM9MCxmPTAscD0wO2ZvcihtPTB8YVs0Njk3M10scD0wfGFbNDY5NjRdLGM9KDB8YVsyOCsoMHxhW2FbNDY5NzJdPj4yXSk+PjJdKSso''@;'; + put 'put ''MHxhWzQ2OTcxXSl8MDshKHA+Pj4wPj1tPj4+MCk7KXtsPShsPTB8ZmVbcD4+MF0pPDwyND4+MjQ/MHxhWzE4OTA0KygoMjU1JmwpPDwyKT4+Ml06MSwwfGl0WzYzODU2KyhjPDwxKT4+MV0mJihhWzQ2OTc0XT1jLGFbNDY5NzVdPXApO2U6Zm9yKDs7KXtmPTI1NSZsO2Rve2lmKCgwfGMpPT0o''@;'; + put 'put ''MHxpdFs2NDI1MisoKGw9ZisoMHxpdFs2NDA0MisoYzw8MSk+PjFdKXwwKTw8MSk+PjFdKSlicmVhayBlO2M9KGw9MHxpdFs2NDc4OCsoYzw8MSk+PjFdKTw8MTY+PjE2fXdoaWxlKGw8PDE2Pj4xNjw9OTIpO2w9MHxhWzE5OTI4KyhmPDwyKT4+Ml19cD1wKzF8MCxjPTB8aXRbNjQ5OTgrKGw8''@;'; + put 'put ''PDEpPj4xXX1yZXR1cm4gMHxjfWZ1bmN0aW9uICRuKGwpe3ZhciBjPTA7Zm9yKDB8aXRbNjM4NTYrKChsfD0wKTw8MSk+PjFdJiYoYz0wfGFbNDY5NzNdLGFbNDY5NzRdPWwsYVs0Njk3NV09Yyk7KDB8bCkhPSgwfGl0WzY0MjUyKygoYz0xKygwfGl0WzY0MDQyKyhsPDwxKT4+MV0pfDApPDwx''@;'; + put 'put ''KT4+MV0pOylsPTB8aXRbNjQ3ODgrKGw8PDEpPj4xXTtyZXR1cm4gMHwoKGM9MHxpdFs2NDk5OCsoYzw8MSk+PjFdKTw8MTY+PjE2PT05Mj8wOmM8PDE2Pj4xNil9ZnVuY3Rpb24gYnIoKXt2YXIgbD0wLGM9MCxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wO2lm''@;'; + put 'put ''KHA9MHxhWzQ2OTY0XSxrPU09MHxhWzQ2OTczXSxNPj4+MD4oKHc9MHxhWzQrKG09MHxhWyhiPTB8YVs0Njk3Ml0pPj4yXSk+PjJdKSsoMSsoMHxhWzQ2OTc3XSkpfDApPj4+MCYmV3IoOTY2NzQpLEE9ay1wfDAsMHxhW20rNDA+PjJdKXtmb3IoTT1BKy0xfDAsQT13LG09MDshKCgwfG0pPj0o''@;'; + put 'put ''MHxNKSk7KWZlW0E+PjBdPTB8ZmVbcD4+MF0sQT1BKzF8MCxwPXArMXwwLG09bSsxfDA7cD0wfGFbYj4+Ml07ZG97aWYoMj09KDB8YVtwKzQ0Pj4yXSkpYVs0Njk3N109MCxhW3ArMTY+PjJdPTAsZj1wLEQ9MTc7ZWxzZXtmb3IoOzspe2lmKDB8KG09KEE9MHxhWyh3PXArMTJ8MCk+PjJdKS1N''@;'; + put 'put ''LTF8MCkpe0Q9MTY7YnJlYWt9aWYoYj0wfGFbKG09cCs0fDApPj4yXSwhKDB8YVtwKzIwPj4yXSkpe0Q9MTI7YnJlYWt9aWYoYVt3Pj4yXT1wPTA9PSgwfChwPUE8PDEpKT8oQT4+PjMpK0F8MDpwLHA9MHx1aShiLHArMnwwKSxhW20+PjJdPXAsIXApYnJlYWs7YVs0Njk3M109Yj1wKyhrLWIp''@;'; + put 'put ''fDAscD0wfGFbYVs0Njk3Ml0+PjJdLGs9Yn1pZigxMj09KDB8RCkpYVttPj4yXT0wO2Vsc2UgaWYoMTY9PSgwfEQpKXtpZihjPTB8bWlbNjMmYVthWzgrKDB8YVs0Njk2N10pPj4yXT4+Ml1dKDB8YVs0Njk2OF0sKDB8YVtwKzQ+PjJdKStNfDAsbT4+PjA8ODE5Mj9tOjgxOTIpLGY9MHxhW2Fb''@;'; + put 'put ''NDY5NzJdPj4yXSxhWzQ2OTc3XT1jLGFbZisxNj4+Ml09YyxjKXtsPTA7YnJlYWt9RD0xNzticmVha31Xcig5NjczMCl9fXdoaWxlKDApO2Rve2lmKDE3PT0oMHxEKSl7aWYoTSl7YVtmKzQ0Pj4yXT0yLGw9MixjPTA7YnJlYWt9SWkoMHxhWzQ2OTYyXSksbD0xLGM9MHxhWzQ2OTc3XSxmPTB8''@;'; + put 'put ''YVthWzQ2OTcyXT4+Ml07YnJlYWt9fXdoaWxlKDApO3A9YytNfDA7ZG97aWYocD4+PjA+KDB8YVtmKzEyPj4yXSk+Pj4wKXtpZihEPTB8dWkoMHxhW2YrND4+Ml0scCsoYz4+PjEpfDApLGFbNCsoMHxhWyhjPTB8YVs0Njk3Ml0pPj4yXSk+PjJdPUQsYz0wfGFbNCsoMHxhW2M+PjJdKT4+Ml0p''@;'; + put 'put ''e1I9MHxhWzQ2OTc3XSxHPWM7YnJlYWt9V3IoOTY3NzQpfWVsc2UgUj1jLEc9MHxhW2YrND4+Ml19d2hpbGUoMCk7YVs0Njk3N109Uj1SK018MCxmZVtHK1I+PjBdPTAsZmVbMSsoMHxhWzQ2OTc3XSkrKDB8YVs0KygwfGFbKEc9MHxhWzQ2OTcyXSk+PjJdKT4+Ml0pPj4wXT0wLGFbNDY5NjRd''@;'; + put 'put ''PWFbNCsoMHxhW0c+PjJdKT4+Ml19ZWxzZSBsPTE9PSgwfEEpPzE6MjtyZXR1cm4gMHxsfWZ1bmN0aW9uIFdyKGwpe3ZhciBjLGY7Yz1sZSxsZT1sZSsxNnwwLGY9MHxhWzE1NzEyXSxhW2M+PjJdPWx8PTAsVDAoZiw5NjY3MCxjKSxYdSgyKX1mdW5jdGlvbiB1aShsLGMpe3JldHVybiAwfFVh''@;'; + put 'put ''KGx8PTAsY3w9MCl9ZnVuY3Rpb24gSWkobCl7bHw9MDt2YXIgYz0wLGY9MDswIT0oMHwoZj0wfGFbNDY5NzJdKSkmJjAhPSgwfChjPTB8YVtmPj4yXSkpfHwoQWwoKSxjPTB8cTIoMHxhWzQ2OTYyXSwxNjM4NCksYVsoZj0wfGFbNDY5NzJdKT4+Ml09YyxmfHwoYz0wKSksdTAoYyxsKSxlMSgp''@;'; + put 'put ''fWZ1bmN0aW9uIHUwKGwsYyl7dmFyIGY7Y3w9MCxmPTB8YVs0NzY0M10semkobHw9MCksYVtsPj4yXT1jLGFbbCs0MD4+Ml09MSwoMHwoYz0oYz0wfGFbNDY5NzJdKT8wfGFbYz4+Ml06MCkpIT0oMHxsKSYmKGFbbCszMj4+Ml09MSxhW2wrMzY+PjJdPTApLGFbbCsyND4+Ml09MCxhWzQ3NjQz''@;'; + put 'put ''XT1mfWZ1bmN0aW9uIHppKGwpe3ZhciBjPTA7MHwobHw9MCkmJihhW2wrMTY+PjJdPTAsZmVbYVsoYz1sKzR8MCk+PjJdPj4wXT0wLGZlWzErKDB8YVtjPj4yXSk+PjBdPTAsYVtsKzg+PjJdPWFbYz4+Ml0sYVtsKzI4Pj4yXT0xLGFbbCs0ND4+Ml09MCwoMHwoYz0oYz0wfGFbNDY5NzJdKT8w''@;'; + put 'put ''fGFbYz4+Ml06MCkpPT0oMHxsKSYmZTEoKSl9ZnVuY3Rpb24gZWEobCl7cmV0dXJuIDB8QjAobHw9MCl9ZnVuY3Rpb24gWW8obCl7bHw9MDt2YXIgcCxtLEEsYixrLE0sYz0wLGY9MCx3PTA7TT1sZSxsZT1sZSsyMTEyfDAsaz1NKzMyfDAsdz1NKzI0fDAsQT1NKzE2fDAsbT1NKzh8MCxwPU0s''@;'; + put 'put ''Yz1NKzU2fDAsdXMoYj1NKzQwfDAsMTAyNCxNKzEwODB8MCksMHwoZj0wfGFbNDY5NjZdKSYmKHVvKGIsZiksdW8oYiw5NzAyNykpLHVvKGIsbCksYVtwPj4yXT1hWzQ3MjVdLG9vKGMsOTcwMzAscCksdW8oYixjKTtlOmRve2lmKDB8ZmVbYVs0Njk2NF0+PjBdKXVvKGIsOTcwNDIpLHVvKGIs''@;'; + put 'put ''MHxhWzQ2OTY0XSksYz1iKzR8MCxsPTB8YVtjPj4yXSxsPj4+MD49KDB8YVtiKzg+PjJdKT4+PjAmJihRMChiLDEpLGw9MHxhW2M+PjJdKSxhW2M+PjJdPWwrMSxmZVtsPj4wXT0zOTtlbHNlIHN3aXRjaCgwfCgoMHxhWzQ2OTcxXSktMXwwKS8yKXtjYXNlIDI6aWYoYVttPj4yXT0xNjM4NCxv''@;'; + put 'put ''byhjLDk3MDUwLG0pLHVvKGIsYyksISgwfGZlWyhsPTB8YVs0Njk3OF0pPj4wXSkpYnJlYWsgZTt3PTB8VW8obCksdW8oYiw5NzExMiksbD0wfGFbNDY5NzhdLCgwfHcpPjgwJiYoZmVbbCs4MD4+MF09MCksdW8oYixsKTticmVhayBlO2Nhc2UgMzppZihhW0E+PjJdPTE2Mzg0LG9vKGMsOTcx''@;'; + put 'put ''MzEsQSksdW8oYixjKSwhKDB8ZmVbKGw9MHxhWzQ2OTc4XSk+PjBdKSlicmVhayBlO3c9MHxVbyhsKSx1byhiLDk3MTk5KSxsPTB8YVs0Njk3OF0sKDB8dyk+ODAmJihmZVtsKzgwPj4wXT0wKSx1byhiLGwpO2JyZWFrIGU7Y2FzZSAxOmFbdz4+Ml09MTYzODQsb28oYyw5NzIxOCx3KSx1byhi''@;'; + put 'put ''LGMpO2JyZWFrIGU7ZGVmYXVsdDpicmVhayBlfX13aGlsZSgwKTsobD0wfGFbKGY9Yis0fDApPj4yXSk+Pj4wPj0oMHxhWyhjPWIrOHwwKT4+Ml0pPj4+MCYmKFEwKGIsMSksbD0wfGFbZj4+Ml0pLGFbZj4+Ml09bCsxLGZlW2w+PjBdPTEwLChsPTB8YVtmPj4yXSk+Pj4wPj0oMHxhW2M+PjJd''@;'; + put 'put ''KT4+PjAmJihRMChiLDEpLGw9MHxhW2Y+PjJdKSxmZVtsPj4wXT0wLGFbZj4+Ml09dz0wfGFbYj4+Ml0sYVtrPj4yXT13LCRyKDEsOTY5MTMsayksQzIoYiksbGU9TX1mdW5jdGlvbiBFYyhsLGMsZil7dmFyIHAsbSxBO3JldHVybiBjfD0wLGZ8PTAscD1sZSxsZT1sZSs4MHwwLG09cCxmdW5j''@;'; + put 'put ''dGlvbiBrRyhsLGMsZil7Y3w9MCwwfChmfD0wKSYmKDB8Sm0oYywwLDApKSE9KDB8ZikmJkptKGMsZiwwKX0oMCwwfGFbKEE9NTIrKGx8PTApfDApPj4yXSwxODU0OCksYVsobD1tKzh8MCk+PjJdPWMsYVtsKzQ+PjJdPWYsZj0wfG1pWzYzJmFbKGY9MHxhW0E+PjJdKT4+Ml1dKGYsbSw0KSxs''@;'; + put 'put ''ZT1wLDB8Zn1mdW5jdGlvbiBkcyhsLGMsZil7bHw9MCxmfD0wO3ZhciBtLEEscD0wO3JldHVybiBBPWxlLGxlPWxlKzE2fDAsbT1BLDAhPSgwfChjfD0wKSkmJjAhPSgwfEs0KGwsMCxjLG0sMCkpJiYwIT0oMHwocD0wfEVjKGwsMHxhWyhwPW0pPj4yXSwwfGFbcCs0Pj4yXSkpKXx8KDAhPSgw''@;'; + put 'put ''fGYpJiYwIT0oMHxLNChsLDAsYyxtLDEpKT8ocD0wfGZ1bmN0aW9uIE91KGwsYyxmKXt2YXIgcD0wLG09MCxBPTA7cmV0dXJuKHA9MHxFYyhsfD0wLGN8PTAsZnw9MCkpfHwocD0wfE10KGwsNzIpLGFbcCs2ND4+Ml09YVtsKzY0Pj4yXSxhWyhtPXArMjR8MCk+PjJdPUE9MHxhW2wrMjQ+PjJd''@;'; + put 'put ''LGZlW20+PjBdPTI1NSZBJi05LGFbcCs1Nj4+Ml09bCxhW3ArNjA+PjJdPWFbbCs2MD4+Ml0sYVsobD1wKzh8MCk+PjJdPWMsYVtsKzQ+PjJdPWYsaG8ocCkpLDB8cH0obCwwfGFbKHA9bSk+PjJdLDB8YVtwKzQ+PjJdKSxMNShsLDAscCkpOnA9MCksbGU9QSwwfHB9ZnVuY3Rpb24geXMobCl7''@;'; + put 'put ''cmV0dXJuIDB8bWlbNjMmYVsobD0wfGFbNTIrKGx8PTApPj4yXSk+PjJdXShsLDAsMTI4KX1mdW5jdGlvbiBNcyhsKXt2YXIgYz0wO3JldHVybiAwfChsPShjPTB8azEobHw9MCkpPzB8bWlbNjMmYVsoYz0wfGFbYys1Mj4+Ml0pPj4yXV0oYyxsLDgpOjApfWZ1bmN0aW9uIGsxKGwpe3JldHVy''@;'; + put 'put ''biAwfGFbNTYrKGx8PTApPj4yXX1mdW5jdGlvbiByNyhsLGMpe3JldHVybiAwfG1pWzYzJmFbKGw9MHxhWzUyKyhsfD0wKT4+Ml0pPj4yXV0obCxjfD0wLDIpfWZ1bmN0aW9uIFpoKGwsYyxmKXt2YXIgcCxtO3JldHVybiBsfD0wLGZ8PTAsbT0wfGFbKHA9MjgrKGN8PTApfDApPj4yXSxhW3A+''@;'; + put 'put ''PjJdPTcsYVs0Njk4NF09bCxmPTB8aXMoYyxmKSxhW3A+PjJdPW0sYVs0Njk4NF09MCwwfGZ9ZnVuY3Rpb24gJDQobCxjKXt2YXIgZixwO3JldHVybiBsfD0wLGY9MjgrKDB8Sm0oY3w9MCwwLDApKXwwLHA9MHxhW2Y+PjJdLGFbZj4+Ml09NyxhWzQ2OTg0XT1sLDB8TmwoYyk/bD0xOihhW2Y+''@;'; + put 'put ''PjJdPXAsYVs0Njk4NF09MCxsPTApLDB8bH1mdW5jdGlvbiBFRyhsLGMpe2x8PTAsY3w9MDt2YXIgZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxLPTAscGU9MDtlOmRve2lmKDAhPSgwfGwpJiYwIT0oMHxmZVtsPj4wXSkpe2ZlW2M+PjBdPTM0LHBlPTAsbT0x''@;'; + put 'put ''JigoKE09MHxmZVtsPj4wXSktNDUmMjU1KTwyfCgoMjU1Jk0pLTQ4fDApPj4+MDwxMCksQT0wLHc9MCxiPTAsZj1jKzF8MCxwPWwrMXwwO3Q6Zm9yKDs7KXtmb3Ioaz1mOzspe2lmKCEoTTw8MjQ+PjI0KSlicmVhayB0O2Y9MjU1Jk07bjpkb3tpZihNPDwyND4+MjQ9PTM0KWZlW2s+PjBdPTky''@;'; + put 'put ''LEQ9bSxSPTEsaz1rKzF8MDtlbHNle2lmKCFtKXtEPTAsUj0oUj1NPDwyND4+MjQ+LTEmTTw8MjQ+PjI0IT05NSYwPT0oMHxpdihmKSkpPzE6QTticmVha31zd2l0Y2goTTw8MjQ+PjI0KXtjYXNlIDQ1OkQ9KFI9MD09KDB8YikpP206MCxSPVI/QToxO2JyZWFrIG47Y2FzZSA0NjpEPShSPTA9''@;'; + put 'put ''PSgwfHcpKT9tOjAsUj1SP0E6MSx3PXcrMXwwO2JyZWFrIG47ZGVmYXVsdDpEPShSPShmKy00OHwwKT4+PjA8MTApP206MCxSPVI/QToxO2JyZWFrIG59fX13aGlsZSgwKTtpZihmPWsrMXwwLGZlW2s+PjBdPU0sSz1wKzF8MCxHPTB8ZmVbcD4+MF0sYj1iKzF8MCxwPTB8YVs1MDMxXSl7aWYo''@;'; + put 'put ''bT0yNTUmRyxwZSYoQT1HPDwyND4+MjQhPTApJiYhKE08PDI0Pj4yND09OTJ8TTw8MjQ+PjI0Pi0xJihNKy00NSYyNTUpPjEmMD09KDB8aXYoTTw8MjQ+PjI0KSleMSkmJiEoRzw8MjQ+PjI0Pi0xJihHKy00NSYyNTUpPjEmMD09KDB8aXYobSkpKSlicmVhaztpZigoMHxiKTwoMHxwKXwxXkEp''@;'; + put 'put ''bT1ELEE9UixrPWYscD1LLE09RztlbHNle2lmKE08PDI0Pj4yND09OTJ8TTw8MjQ+PjI0Pi0xJjA9PSgwfGl2KE08PDI0Pj4yNCkpJihNKy00NSYyNTUpPjFeMSl7cGU9MSxtPUQsQT1SLE09RyxwPUs7Y29udGludWUgdH1pZihHPDwyND4+MjQ+LTEmKEcrLTQ1JjI1NSk+MSYwPT0oMHxpdiht''@;'; + put 'put ''KSkpe3BlPTEsbT1ELEE9UixNPUcscD1LO2NvbnRpbnVlIHR9ZmVbZj4+MF09OTIsZmVbaysyPj4wXT0xMCxtPUQsQT0xLGI9MCxrPWsrM3wwLHA9SyxNPUd9fWVsc2UgbT1ELEE9UixrPWYscD1LLE09R31mZVtmPj4wXT05MixmZVtrKzI+PjBdPTEwLHBlPTAsbT1ELEE9MSxiPTAsTT1HLGY9''@;'; + put 'put ''ayszfDAscD1LfWlmKGZlW2s+PjBdPTM0LGZlW2srMT4+MF09MCxBKWw9YztlbHNle2lmKDE9PSgwfGIpJiYoKDB8ZmVbbD4+MF0pLTQ1JjI1NSk8Mil7bD1jO2JyZWFrfWZvcihmPTIwMTI4Ozspe2lmKCEocD0wfGFbZj4+Ml0pKWJyZWFrIGU7aWYoISgwfHkwKHAsbCkpKXtsPWM7YnJlYWt9''@;'; + put 'put ''Zj1mKzR8MH19fWVsc2UgbD05NzMwOX13aGlsZSgwKTtyZXR1cm4gMHxsfWZ1bmN0aW9uIE9BKGwpe3JldHVybiAwfGZ1bmN0aW9uIFNHKGwsYyl7cmV0dXJuIGN8PTAsMHxPbyhsfD0wKT9mdW5jdGlvbiBNRyhsLGMpe2x8PTA7dmFyIGY9MCxwPTAsbT0wO2ZvcihmZVsoY3w9MCk+PjBdPTYw''@;'; + put 'put ''LHA9YztmPXArMXwwLChtPTB8ZmVbbD4+MF0pPDwyND4+MjQ7KWZlW2Y+PjBdPW0sbD1sKzF8MCxwPWY7ZmVbZj4+MF09NjIsZmVbcCsyPj4wXT0wfShsLGMpOmM9MHxFRyhsLGMpLDB8Y30obHw9MCwwfEpuZShsKSl9ZnVuY3Rpb24gSm5lKGwpe3ZhciBjPTA7cmV0dXJuIGM9MisoKDB8VW8o''@;'; + put 'put ''bHw9MCkpPDwxKXwwLGw9MHxhWzQ2OTg2XSwoYz1jPj4+MD4xMDI0P2M6MTAyNCk+Pj4wPigwfGFbNDY5ODVdKT4+PjAmJihsPWw/MHxVYShsLGMpOjB8QjAoYyksYVs0Njk4Nl09bCxhWzQ2OTg1XT1jKSwwfGx9ZnVuY3Rpb24gVEcobCl7dmFyIGM9MCxmPTAscD0wLG09MCxBPTAsdz0wOzAh''@;'; + put 'put ''PSgwfChBPTB8dGkobHw9MCkpKSYmMzchPSgwfGZlW0E+PjBdKT9jPTA6Zj0zO2U6ZG97aWYoMz09KDB8Zikpe2M9MHxpYyhsKTt0OmRve2lmKDB8YyYmKHA9MHxpYygwfGsxKGwpKSwwfHApKWZvcihBPTB8cHUoMHxhWzgrKDB8aWMoMHxkaShsKSkpPj4yXSksbT1jKzEyfDAsZj1wKzEyfDAs''@;'; + put 'put ''Yz0wOzspe2lmKCgwfGMpPj0oMHxBKSlicmVhayB0O2lmKDB8KHA9MHxhWygwfGFbbT4+Ml0pKyhjPDwyKT4+Ml0pJiYwfCh3PTB8YVsoMHxhW2Y+PjJdKSsoYzw8Mik+PjJdKSYmMHxaaShwLHcpKXtjPTA7YnJlYWsgZX1jPWMrMXwwfX13aGlsZSgwKTtpZihjPTB8VmgobCwwKSl7aWYoISgo''@;'; + put 'put ''MHxwdSgwfGFbYys4Pj4yXSkpPjApKXJldHVybigwfHB1KDB8YVtjKzEyPj4yXSkpPDF8MDtjPTB9ZWxzZSBjPTF9fXdoaWxlKDApO3JldHVybiAwfGN9ZnVuY3Rpb24gWG5lKGwsYyl7bHw9MCxjfD0wO3ZhciBmLHA9MDtyZXR1cm4gYVs0Njk4N109MCwwfChmPTB8TGkobCw5NzMxOSkpJiYo''@;'; + put 'put ''KDB8ZmVbZj4+MF0pLTQ4fDApPj4+MDwxMCYmMD09KDB8KHA9MHxfTChmLDAsMTApKSl8KDB8cCk+NTkmJihhWzUwMzFdPXApLEtuZShsLDEpLC0xIT0oMHwkbmUobCxjLDEpKSYmLTEhPSgwfHFuZShsLGMpKSYmLTEhPSgwfGVyZShsLGMpKT8oYVs1MDMxXT0xMjgsbD0wfF9vWzYzJmFbOCso''@;'; + put 'put ''MHxhWzgrKDB8YVtsKzY0Pj4yXSk+PjJdKT4+Ml1dKGMpKTpsPS0xLDB8bH1mdW5jdGlvbiBLbmUobCxjKXtjfD0wO3ZhciBmPTA7Zm9yKGFbKGx8PTApPj4yXT0tOSZhW2w+PjJdLGY9MHx5cyhsKTtmOylLbmUoZiwwKSxmPTB8TXMoZik7ZTpkb3tpZigwfGMpZm9yKGM9MHxEdChsKTs7KXtp''@;'; + put 'put ''ZighYylicmVhayBlO2ZvcihhW2M+PjJdPS05JmFbYz4+Ml0sZj0wfHcwKGwsYyk7ZjspYVtmPj4yXT0tOSZhW2Y+PjJdLGY9MHxTMChsLGYpO2M9MHx6dChsLGMpfX13aGlsZSgwKX1mdW5jdGlvbiAkbmUobCxjLGYpe2x8PTAsY3w9MDt2YXIgcD0wLG09MCxBPTAsdz0wLGI9MCxrPTA7MD09''@;'; + put 'put ''KDB8KGZ8PTApKSYmMCE9KDB8azEobCkpPyh3PTAsbT0xOTUwNTksaz0xMDk1MTQpOihrPTA9PSgxJmZlW2wrMjQ+PjBdKT8xOTUwNTk6OTczNjMsbT0wPT0oMHxEQShsKSksYVs0Njk4OF09MHxzaShsLDIsMTExNDU1LDApLGFbNDY5ODldPTB8c2kobCwyLDExMTQ2NCwwKSx3PTEsbT1tPzE5''@;'; + put 'put ''NTA1OTo5NzM2NiksMCE9KDB8KHA9MHx0aShsKSkpJiYzNyE9KDB8ZmVbcD4+MF0pPyhBPTEsYj0xMDI2MDQpOihBPTAsYj0xOTUwNTkscD0xOTUwNTkpO2Rve2lmKC0xIT0oMHxPNShsLGMpKSYmLTEhPSgwfEgyKGwsYyxtKSkpe2lmKG09MD09KDB8QSksQXx3fDApe2lmKC0xPT0oMHxIMihs''@;'; + put 'put ''LGMsaykpKXtwPS0xO2JyZWFrfWlmKC0xPT0oMHxIMihsLGMsMTAyNTk3KSkpe3A9LTE7YnJlYWt9fWlmKCFtJiYtMT09KDB8RjYobCxjLHApKSl7cD0tMTticmVha30tMSE9KDB8SDIobCxjLGIpKSYmLTEhPSgwfEgyKGwsYyw5NzM3NCkpJiYoYVs0Njk4N109MSsoMHxhWzQ2OTg3XSksLTEh''@;'; + put 'put ''PSgwfFlkKGwsYyxmKSkpPyhhW2w+PjJdPTh8YVtsPj4yXSxwPTApOnA9LTF9ZWxzZSBwPS0xfXdoaWxlKDApO3JldHVybiAwfHB9ZnVuY3Rpb24gcW5lKGwsYyl7bHw9MCxjfD0wO3ZhciBmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wO2U6ZG97aWYoLTE9PSgwfEFDKGwsYykpKWY9''@;'; + put 'put ''LTE7ZWxzZSBmb3IoTT0wfFZoKDB8ZGkobCksMCksYj0wPT0oMHxNKSxrPU0rMTJ8MCxNPU0rOHwwLHc9MHxEdChsKTs7KXtpZighdyl7Zj0wO2JyZWFrIGV9aWYoMHx0cmUobCx3LCgwfGFbdz4+Ml0pPj4+NCwwKSYmLTE9PSgwfHlDKHcsYyxmPWI/MDowfGFbTT4+Ml0pKSl7Zj0tMTticmVh''@;'; + put 'put ''ayBlfWZvcihBPTB8dzAobCx3KSxmPXc7QTspe2lmKG09QSstNDh8MCwoMHxmKSE9KDB8KHA9MHxhWygyPT0oMyZhW0E+PjJdfDApP0E6bSkrNDA+PjJdKSkmJjAhPSgwfHRyZShsLHAsKDB8YVt3Pj4yXSk+Pj40LDApKSl7aWYoLTE9PSgwfHlDKDB8YVsoMj09KDMmYVtBPj4yXXwwKT9BOm0p''@;'; + put 'put ''KzQwPj4yXSxjLGY9Yj8wOjB8YVtNPj4yXSkpKXtmPS0xO2JyZWFrIGV9Zj0wfGFbKDI9PSgzJmFbQT4+Ml18MCk/QTptKSs0MD4+Ml19aWYoMHxBVChsLEEpJiYtMT09KDB8d0MoQSxjLHA9Yj8wOjB8YVtrPj4yXSkpKXtmPS0xO2JyZWFrIGV9QT0wfFMwKGwsQSl9dz0wfHp0KGwsdyl9fXdo''@;'; + put 'put ''aWxlKDApO3JldHVybiAwfGZ9ZnVuY3Rpb24gZXJlKGwsYyl7cmV0dXJuIGx8PTAsY3w9MCxhWzQ2OTg3XT0oMHxhWzQ2OTg3XSktMSwwfCgtMT09KDB8TzUobCxjKSk/LTE6KC0xPT0oMHxIMihsLGMsMTExMDA4KSkpPDwzMT4+MzEpfWZ1bmN0aW9uIE81KGwsYyl7bHw9MCxjfD0wO3ZhciBm''@;'; + put 'put ''PTA7Zm9yKGY9MHxhWzQ2OTg3XTs7KXtpZigoMHxmKTw9MCl7Zj0wO2JyZWFrfWlmKC0xPT0oMHxIMihsLGMsMTUzNTk3KSkpe2Y9LTE7YnJlYWt9Zj1mKy0xfDB9cmV0dXJuIDB8Zn1mdW5jdGlvbiBIMihsLGMsZil7cmV0dXJuIDB8QmlbMTI3JmFbNCsoMHxhWzgrKDB8YVs2NCsobHw9MCk+''@;'; + put 'put ''PjJdKT4+Ml0pPj4yXV0oY3w9MCxmfD0wKX1mdW5jdGlvbiBBQyhsLGMpe2ZvcihjfD0wLGw9MHx5cyhsfD0wKTs7KXtpZighbCl7bD0wO2JyZWFrfWlmKDB8VEcobCkpQUMobCxjKTtlbHNle2lmKC0xPT0oMHwkbmUobCxjLDApKSl7bD0tMTticmVha31pZigtMT09KDB8cW5lKGwsYykpKXts''@;'; + put 'put ''PS0xO2JyZWFrfWlmKC0xPT0oMHxlcmUobCxjKSkpe2w9LTE7YnJlYWt9fWw9MHxNcyhsKX1yZXR1cm4gMHxsfWZ1bmN0aW9uIHRyZShsLGMsZixwKXtmfD0wLHB8PTA7dmFyIG09MDtyZXR1cm4gMD09KDB8ZnVuY3Rpb24geEcobCxjKXtmb3IoY3w9MCxsPTB8eXMobHw9MCk7Oyl7aWYoIWwp''@;'; + put 'put ''e2w9MDticmVha31pZigwPT0oMHxURyhsKSkmJjB8WW4obCxjLDApKXtsPTE7YnJlYWt9bD0wfE1zKGwpfXJldHVybiAwfGx9KGx8PTAsY3w9MCkpJiYwIT0oMHxmdW5jdGlvbiBJRyhsLGMsZixwKXtsfD0wLGN8PTAsZnw9MCxwfD0wO2U6ZG97aWYoMDxwPj4+MHwoMD09KDB8cCk/KDB8YVtj''@;'; + put 'put ''Pj4yXSk+Pj40Pj4+MDxmPj4+MDowKSljPTA7ZWxzZSBmb3IoYz0wfE1mKGwsYyk7Oyl7aWYoIWMpe2M9MTticmVhayBlfWlmKDA8cD4+PjB8KDA9PSgwfHApPygwfGFbYVtjKzQwPj4yXT4+Ml0pPj4+ND4+PjA8Zj4+PjA6MCkpe2M9MDticmVhayBlfWM9MHxIMyhsLGMpfX13aGlsZSgwKTty''@;'; + put 'put ''ZXR1cm4gMHxjfShsLGMsZixwKSk/MD09KDB8ZnVuY3Rpb24gcnJlKGwsYyl7cmV0dXJuIDB8KGw9MHxNZihsfD0wLGN8PTApPzA6MD09KDB8dzAobCxjKSkmMSl9KGwsYykpJiYwPT0oMHxmdW5jdGlvbiBpcmUobCl7dmFyIGM9MCxmPTAscD0wO2w9MHxpYyhsfD0wKTtlOmRve2lmKGwpZm9y''@;'; + put 'put ''KGY9bCs4fDAscD0wfGFbZj4+Ml0sYz1sKzEyfDAsbD0wfG1pWzYzJmFbcD4+Ml1dKHAsMCwxMjgpOzspe2lmKCFsKXtsPTA7YnJlYWsgZX1pZigoMHxhWygwfGFbYz4+Ml0pKyhhW2wrMTY+PjJdPDwyKT4+Ml0pIT0oMHxhW2wrMTI+PjJdKSl7bD0xO2JyZWFrIGV9bD0wfG1pWzYzJmFbKHA9''@;'; + put 'put ''MHxhW2Y+PjJdKT4+Ml1dKHAsbCw4KX1lbHNlIGw9MH13aGlsZSgwKTtyZXR1cm4gMHxsfShjKSk/bT01Omw9MTptPTUsNT09KDB8bSkmJihsPTApLDB8bH1mdW5jdGlvbiB5QyhsLGMsZil7dmFyIHA7Y3w9MCxmfD0wLHA9MHxjcihsfD0wKTtkb3tpZigtMSE9KDB8TzUocCxjKSkmJi0xIT0o''@;'; + put 'put ''MHx5VChsLGMpKSl7aWYoMD09KDB8d1QobCkpJiYtMT09KDB8UVAobCxjLGYpKSl7bD0tMTticmVha31sPTB8SDIocCxjLDk3MzMwKX1lbHNlIGw9LTF9d2hpbGUoMCk7cmV0dXJuIDB8bH1mdW5jdGlvbiBBVChsLGMpe2ZvcihjfD0wLGw9MHx5cyhsfD0wKTs7KXtpZighbCl7bD0xO2JyZWFr''@;'; + put 'put ''fWlmKDA9PSgwfFRHKGwpKSYmMHxaZChsLGMsMCkpe2w9MDticmVha31sPTB8TXMobCl9cmV0dXJuIDB8bH1mdW5jdGlvbiB3QyhsLGMsZil7Y3w9MCxmfD0wO3ZhciBtLHA9MCxBPTA7QT0wfGFbKDM9PSgwfChwPTMmYVsobHw9MCk+PjJdKSk/bDpsKzQ4fDApKzQwPj4yXSxwPTB8YVsoMj09''@;'; + put 'put ''KDB8cCk/bDpsKy00OHwwKSs0MD4+Ml0sbT0wfGNyKEEpO2Rve2lmKC0xIT0oMHxPNShtLGMpKSYmLTEhPSgwfHlUKEEsYykpJiYtMSE9KDB8bnJlKGwsYywwfGFbNDY5ODhdKSkmJi0xIT0oMHxIMihtLGMsKEE9MCE9KDB8U2MoMHxjcihBKSkpKT8xMDAwNzk6MTAwMDg0KSkmJi0xIT0oMHx5''@;'; + put 'put ''VChwLGMpKSYmLTEhPSgwfG5yZShsLGMsMHxhWzQ2OTg5XSkpKXtpZigwfHdUKGwpKXtpZigtMT09KDB8TDIobCxjLDEpKSl7bD0tMTticmVha319ZWxzZSBpZigtMT09KDB8UVAobCxjLGYpKSl7bD0tMTticmVha31sPTB8SDIobSxjLDk3MzMwKX1lbHNlIGw9LTF9d2hpbGUoMCk7cmV0dXJu''@;'; + put 'put ''IDB8bH1mdW5jdGlvbiB5VChsLGMpe2N8PTA7dmFyIGYsbSxBLGIscD0wLHc9MCxrPTA7cmV0dXJuIGI9bGUsbGU9bGUrMzJ8MCxBPWIsZj1iKzh8MCxwPTB8dGkobHw9MCksbT0wfGNyKGwpLHA/LTE9PSgwfEY2KG0sYyxwKSk/bD0tMTp3PTQ6KGw9MHxhWzQrKGs9bCs4fDApPj4yXSxhWyhw''@;'; + put 'put ''PUEpPj4yXT1hW2s+PjJdLGFbcCs0Pj4yXT1sLG9vKGYsOTczNTAsQSksLTE9PSgwfEgyKG0sYyxmKSk/bD0tMTp3PTQpLDQ9PSgwfHcpJiYobD0wKSxsZT1iLDB8bH1mdW5jdGlvbiBucmUobCxjLGYpe2x8PTAsY3w9MCxmfD0wO3ZhciBwPTAsbT0wO2U6ZG97aWYoMCE9KDB8ZikmJihwPTB8''@;'; + put 'put ''Y3IobCksbT0wfEhvKGwsZiksMCE9KDB8ZmVbbT4+MF0pKSlpZigtMT09KDB8SDIocCxjLDEwNzk4NCkpKWw9LTE7ZWxzZXtkb3tpZigwfE9vKG0pKXtpZigtMT09KDB8RjYocCxjLG0pKSl7bD0tMTticmVhayBlfX1lbHNle2lmKCEobD0wfCRzKG0sNTgpKSl7aWYoLTE9PSgwfEpQKHAsYyxt''@;'; + put 'put ''LDApKSl7bD0tMTticmVhayBlfWJyZWFrfWlmKGZlW2w+PjBdPTAsLTE9PSgwfEpQKHAsYyxtLDApKSl7bD0tMTticmVhayBlfWlmKC0xPT0oMHxIMihwLGMsMTA3OTg0KSkpe2w9LTE7YnJlYWsgZX1pZigtMT09KDB8SlAocCxjLGwrMXwwLDApKSl7bD0tMTticmVhayBlfWZlW2w+PjBdPTU4''@;'; + put 'put ''fX13aGlsZSgwKTtsPTB9ZWxzZSBsPTB9d2hpbGUoMCk7cmV0dXJuIDB8bH1mdW5jdGlvbiB3VChsKXtyZXR1cm4oMHxhWyhsfD0wKT4+Ml0pPj4+MyYxfDB9ZnVuY3Rpb24gUVAobCxjLGYpe2x8PTAsY3w9MCxmfD0wO3ZhciBwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTA7ZTpkb3tpZigy''@;'; + put 'put ''JmFbbD4+Ml0pe3N3aXRjaCgwfEwyKGwsYywwKSl7Y2FzZS0xOnA9LTE7YnJlYWsgZTtjYXNlIDA6cD0wLE09NDticmVhayBlfXA9MSxNPTR9ZWxzZSBwPTAsTT00fXdoaWxlKDApO2U6ZG97aWYoND09KDB8TSkpe209MHxpYyhsKSxrPTB8Y3IobCk7dDpkb3tpZihtKWZvcihiPW0rMTJ8MCx3''@;'; + put 'put ''PTB8bWlbNjMmYVtmPj4yXV0oZiwwLDEyOCk7Oyl7aWYoIXcpYnJlYWsgdDtkb3tpZigyJmFbbD4+Ml0pe2lmKDB8KEE9MHxhWzQ2OTg4XSkmJigwfGFbdysxNj4+Ml0pPT0oMHxhW0ErMTY+PjJdKSlicmVhazswIT0oMHwoQT0wfGFbNDY5ODldKSkmJigwfGFbdysxNj4+Ml0pPT0oMHxhW0Er''@;'; + put 'put ''MTY+PjJdKXx8KE09MTIpfWVsc2UgTT0xMn13aGlsZSgwKTtpZigxMj09KDB8TSkmJihNPTAsKDB8YVsoMHxhW2I+PjJdKSsoYVsobT13KzE2fDApPj4yXTw8Mik+PjJdKSE9KDB8YVt3KzEyPj4yXSkpKXtpZihBPXArMXwwLHApe2lmKC0xPT0oMHxIMihrLGMsOTczNDUpKSl7cD0tMTticmVh''@;'; + put 'put ''ayBlfWlmKC0xPT0oMHxPNShrLGMpKSl7cD0tMTticmVhayBlfX1lbHNle2lmKC0xPT0oMHxPNShrLGMpKSl7cD0tMTticmVhayBlfWlmKC0xPT0oMHxIMihrLGMsOTczNDIpKSl7cD0tMTticmVhayBlfWFbNDY5ODddPTErKDB8YVs0Njk4N10pfWlmKC0xPT0oMHxGNihrLGMsMHxhW3crOD4+''@;'; + put 'put ''Ml0pKSl7cD0tMTticmVhayBlfWlmKC0xPT0oMHxIMihrLGMsOTczNDgpKSl7cD0tMTticmVhayBlfWlmKC0xPT0oMHxGNihrLGMsMHxhWygwfGFbYj4+Ml0pKyhhW20+PjJdPDwyKT4+Ml0pKSl7cD0tMTticmVhayBlfXA9QX13PTB8bWlbNjMmYVtmPj4yXV0oZix3LDgpfX13aGlsZSgwKTtp''@;'; + put 'put ''ZigoMHxwKT4wKXtpZigtMT09KDB8SDIoayxjLDk3MzQwKSkpe3A9LTE7YnJlYWt9YVs0Njk4N109KDB8YVs0Njk4N10pLTF9YVtsPj4yXT04fGFbbD4+Ml0scD0wfX13aGlsZSgwKTtyZXR1cm4gMHxwfWZ1bmN0aW9uIEwyKGwsYyxmKXt2YXIgcDtyZXR1cm4gY3w9MCxmfD0wLHA9MHx0aShs''@;'; + put 'put ''fD0wKSxsPTB8Y3IobCksMHwobD0wIT0oMHxwKSYmMCE9KDB8ZmVbcD4+MF0pPy0xIT0oMHxIMihsLGMsOTczMzMpKSYmLTEhPSgwfEY2KGwsYyxwKSk/MCE9KDB8ZikmJi0xPT0oMHxIMihsLGMsOTczNDApKT8tMToxOi0xOjApfWZ1bmN0aW9uIEY2KGwsYyxmKXtyZXR1cm4gMHxKUChsfD0w''@;'; + put 'put ''LGN8PTAsZnw9MCwxKX1mdW5jdGlvbiBKUChsLGMsZixwKXtyZXR1cm4gZnw9MCwwfEgyKGx8PTAsY3w9MCxmPShwfD0wKT8wfE9BKGYpOjB8RUcoZiwwfEpuZShmKSkpfWZ1bmN0aW9uIFlkKGwsYyxmKXtjfD0wLGZ8PTA7dmFyIHAsbT0wO3JldHVybihwPTB8VmgobHw9MCwwKSk/LTEhPSgw''@;'; + put 'put ''fFhQKGwsYywxMTE0OTQsMHxhW3ArMTY+PjJdLGYpKSYmLTEhPSgwfFhQKGwsYywxMTE0ODEsMHxhW3ArOD4+Ml0sZikpJiYtMSE9KDB8WFAobCxjLDExMTQ1MCwwfGFbcCsxMj4+Ml0sZikpP209NTpsPS0xOm09NSw1PT0oMHxtKSYmKGw9MCksMHxsfWZ1bmN0aW9uIFhQKGwsYyxmLHAsbSl7''@;'; + put 'put ''bHw9MCxjfD0wLGZ8PTAscHw9MDt2YXIgayxELE0sQT0wLHc9MCxiPTAsUj0wLEc9MDtmb3Ioaz0wPT0oMHwoTT0oRD0wIT0oMHwobXw9MCkpKT8wOjB8ZWgocCwwKSkpLGI9MHxtaVs2MyZhW3A+PjJdXShwLDAsMTI4KSxtPTA7Oyl7aWYoIWIpe1I9MjM7YnJlYWt9Uj0wIT0oMHwoUj0wfGFb''@;'; + put 'put ''KHc9YisxMnwwKT4+Ml0pKSYmMCE9KDB8ZmVbUj4+MF0pPzEyOjc7ZG97aWYoNz09KDB8UikpaWYoUj0wLDB8ZmVbYisyMj4+MF0pUj0xMjtlbHNlIGlmKCFrKXtpZihBPTB8bWlbNjMmYVtNPj4yXV0oTSxiLDQpLDB8KEc9MHxhW0ErMTI+PjJdKSYmMHxmZVtHPj4wXSl7Uj0xMjticmVha30w''@;'; + put 'put ''fGZlW0ErMjI+PjBdfHwoUj0xMil9fXdoaWxlKDApO2lmKDEyPT0oMHxSKSl7aWYoUj0wLEE9bSsxfDAsbSl7aWYoLTE9PSgwfEgyKGwsYyw5NzM0NSkpKXttPS0xO2JyZWFrfWlmKC0xPT0oMHxPNShsLGMpKSl7bT0tMTticmVha319ZWxzZXtpZigtMT09KDB8TzUobCxjKSkpe209LTE7YnJl''@;'; + put 'put ''YWt9aWYoLTE9PSgwfEgyKGwsYyxmKSkpe209LTE7YnJlYWt9aWYoLTE9PSgwfEgyKGwsYyw5NzM0MikpKXttPS0xO2JyZWFrfWFbNDY5ODddPTErKDB8YVs0Njk4N10pfWlmKC0xPT0oMHxGNihsLGMsMHxhW2IrOD4+Ml0pKSl7bT0tMTticmVha31pZigtMT09KDB8SDIobCxjLDk3MzQ4KSkp''@;'; + put 'put ''e209LTE7YnJlYWt9aWYoLTE9PSgwfEY2KGwsYywwfGFbdz4+Ml0pKSl7bT0tMTticmVha31tPUF9Yj0wfG1pWzYzJmFbcD4+Ml1dKHAsYiw4KX1kb3tpZigyMz09KDB8Uikpe2lmKCgwfG0pPjApe2lmKGFbNDY5ODddPSgwfGFbNDY5ODddKS0xLDEhPSgwfG0pKXtpZigtMT09KDB8SDIobCxj''@;'; + put 'put ''LDE1MzU5OSkpKXttPS0xO2JyZWFrfWlmKC0xPT0oMHxPNShsLGMpKSl7bT0tMTticmVha319aWYoRHwobT0tMT09KDB8SDIobCxjLDk3Mzc3KSkpKXttPW08PDMxPj4zMTticmVha319ZWxzZSBpZihEKXttPTA7YnJlYWt9ZWgocCxNKSxtPTB9fXdoaWxlKDApO3JldHVybiAwfG19ZnVuY3Rp''@;'; + put 'put ''b24gYkMobCxjLGYscCxtKXtsfD0wLGZ8PTAscHw9MCxtfD0wO3ZhciBBPTA7c3dpdGNoKDMmYVsoY3w9MCk+PjJdKXtjYXNlIDA6QT04MjticmVhaztjYXNlIDE6QT04MzticmVhaztjYXNlIDM6Y2FzZSAyOkE9ODR9cmV0dXJuKGM9MHxCaVsxMjcmQV0obCxjKSk/KGJUKGwsYyxmLHAsQSxt''@;'; + put 'put ''KSxjPTApOmM9LTEsMHxjfWZ1bmN0aW9uIGJUKGwsYyxmLHAsbSxBKXtsfD0wLGN8PTAsZnw9MCxwfD0wLG18PTA7dmFyIGIsdz0wLGs9MDtmb3IoKGI9MCE9KDB8KEF8PTApKSkmJmRsWzEyNyZmXShsLGMscCksdz0wfHlzKGwpO3c7KTB8KGs9MHxCaVsxMjcmbV0odyxjKSkmJmJUKHcsayxm''@;'; + put 'put ''LHAsbSxBKSx3PTB8TXModyk7Ynx8ZGxbMTI3JmZdKGwsYyxwKX1mdW5jdGlvbiBscmUoKXt2YXIgbD0wLGM9MDtmb3IobD0wfGFbNDY5OTRdO2w7KXpoKGwrOHwwKSx6aCgyNCsoMHxhWzQ2OTk0XSl8MCksemgoMTYrKDB8YVs0Njk5NF0pfDApLGM9MHxCRygwfGFbNDY5OTRdKSxhWzQ2OTk0''@;'; + put 'put ''XT1jLGw9Y31mdW5jdGlvbiBERygpeyhmdW5jdGlvbiB5bygpeyFmdW5jdGlvbiAkYShsKXtsfD0wO3ZhciB3LGM9MCxmPTAscD0wLG09MCxBPTAsYj0wLGs9MCxNPTAsRD0wO2lmKGZlWyhiPTB8YVs0Njk3M10pPj4wXT0wfGZlWzE5NDgwNV0sYj4+PjA8KDIrKGM9MHxhWzQrKGY9MHxhWyh3''@;'; + put 'put ''PTB8YVs0Njk3Ml0pPj4yXSk+PjJdKXwwKT4+PjApe2ZvcihwPWMrKDIrKDB8YVs0Njk3N10pKXwwLG09YysoMisoMHxhW2YrMTI+PjJdKSl8MCxrPWMsQT1mOyEocD4+PjA8PWs+Pj4wKTspZmVbKGs9bSstMXwwKT4+MF09MHxmZVsoZj1wKy0xfDApPj4wXSxwPWYsbT1rLGs9MHxhWzQrKEE9''@;'; + put 'put ''MHxhW3c+PjJdKT4+Ml07Yz1iKyhmPW0tcHwwKXwwLGFbNDY5NzddPWI9MHxhW0ErMTI+PjJdLGFbQSsxNj4+Ml09YixjPj4+MDwoaysyfDApPj4+MD9Xcig5NzI3Nyk6KE09bCtmfDAsRD1jKX1lbHNlIE09bCxEPWI7ZmVbKGw9RCstMXwwKT4+MF09NjQsYVs0Njk2NF09TSxmZVsxOTQ4MDVd''@;'; + put 'put ''PTB8ZmVbbD4+MF0sYVs0Njk3M109bH0oMHxhWzQ2OTY0XSl9KSgpLGZ1bmN0aW9uIFZzKGwpe3ZhciBtLGM9MCxmPTAscD0wLEE9MCx3PTA7Zm9yKGFbNDY5NDJdPWx8PTAsbT0wfGFbbCs2ND4+Ml0scD0wOzMhPSgwfHApOyl7Yz0wfGFbKEE9bSs1NisocDw8Mil8MCk+PjJdO2U6ZG97aWYo''@;'; + put 'put ''MHxjKWZvcihjPTB8bWlbNjMmYVtjPj4yXV0oYywwLDEyOCk7Oyl7aWYoIWMpYnJlYWsgZTtmPTB8bWlbNjMmYVsoZj0wfGFbQT4+Ml0pPj4yXV0oZixjLDgpLDM3PT0oMHxmZVthW2MrMjQ+PjJdPj4wXSk/KHZUKGwscCwwfGFbKHc9YysxNnwwKT4+Ml0sMHxhW3crND4+Ml0pLGM9Zik6Yz1m''@;'; + put 'put ''fX13aGlsZSgwKTtwPXArMXwwfX0oMHxhWzQ2OTkzXSl9ZnVuY3Rpb24gTEcobCxjLGYpe2x8PTA7dmFyIG0sQSxwPTA7QT1sZSxsZT1sZSsxNnwwLG09QSwocD0wfGFbNDY5OTNdKXx8KGZlWzE4Nzk4MF09MSYoY3w9MCl8KDI1NSYoZnw9MCkpPDwxJjJ8LTEyJmZlWzE4Nzk4MF18OCxwPTB8''@;'; + put 'put ''YVs0Njk5Nl0sZmVbbT4+MF09MHxmZVsxODc5ODBdLGZlW20rMT4+MF09MHxmZVsxODc5ODFdLGZlW20rMj4+MF09MHxmZVsxODc5ODJdLGZlW20rMz4+MF09MHxmZVsxODc5ODNdLHA9MHxvYyhsLG0scCksYVs0Njk5M109cCksYVs0Njk0Ml09cCxhWzQ2OTk0XT0wfFBHKDB8YVs0Njk5NF0s''@;'; + put 'put ''cCksZTAoMCxsKSxsZT1BfWZ1bmN0aW9uIE9HKCl7dmFyIHAsbD0wLGM9MCxmPTAsbT0wLEE9MDtmb3Ioa1QoMikscD0wfGZlWzk4MTI2XSxBPTAsbD0yNCsoZj0wfGFbNDY5OTRdKXwwO2M9MHxhW2w+PjJdOylBPWw9MjY3PT0oMHxhW2M+PjJdKSYmKDB8ZmVbKG09MHxhW2MrND4+Ml0pPj4w''@;'; + put 'put ''XSk9PXA8PDI0Pj4yNCYmMD09KDB8WmkobSw5ODEyNikpPzB8YVtjKzg+PjJdOkEsbD1jKzEyfDA7bD1mKzE2fDA7ZTpmb3IoO2Y9MHxhW2w+PjJdLGw9ZisxMnwwLDB8YVtsPj4yXTspaWYoYz1mKzR8MCwyNjI9PSgwfGFbZj4+Ml0pKWZvcihmPTB8YVtjPj4yXSxjPTB8RHQoZik7Oyl7aWYo''@;'; + put 'put ''IWMpY29udGludWUgZTtNVChtPTB8WW4oMHxhW2FbNDY5OTRdPj4yXSxjLDApLDAsMHxhW2w+PjJdLEEpLGM9MHx6dChmLGMpfWVsc2UgZm9yKDs7KXtpZighKGM9MHxhW2M+PjJdKSljb250aW51ZSBlO01UKDB8YVtjKzQ+PjJdLDB8YVtjKzg+PjJdLDB8YVtsPj4yXSxBKSxjPWMrMTJ8MH16''@;'; + put 'put ''aCg4KygwfGFbNDY5OTRdKXwwKSx6aCgxNisoMHxhWzQ2OTk0XSl8MCksemgoMjQrKDB8YVs0Njk5NF0pfDApLGFbNCsoMHxhWzQ2OTk0XSk+PjJdPTB9ZnVuY3Rpb24gRm1lKCl7dmFyIGw9MDtmb3Ioa1QoMSksbD04KygwfGFbNDY5OTRdKXwwO2w9MHxhW2w+PjJdOyl0RigwfGFbbCs0Pj4y''@;'; + put 'put ''XSksbD1sKzEyfDA7emgoOCsoMHxhWzQ2OTk0XSl8MCksemgoMjQrKDB8YVs0Njk5NF0pfDApLHpoKDE2KygwfGFbNDY5OTRdKXwwKSxhWzQrKDB8YVs0Njk5NF0pPj4yXT0wfWZ1bmN0aW9uIHozKCl7dmFyIGw9MCxjPTA7KGM9MHxhWzgrKGw9MHxhWzQ2OTk0XSk+PjJdKT8oYz0wfGZ1bmN0''@;'; + put 'put ''aW9uIENDKGwpe3JldHVybiAwfF9DKDI2NSxsfD0wLDApfShjKSxhWzEyKyhsPTB8YVs0Njk5NF0pPj4yXT0wLGFbbCs4Pj4yXT0wKTooKGM9MHxhW2wrND4+Ml0pPyhjPTB8ZnVuY3Rpb24gcTQobCl7cmV0dXJuIDB8X0MoMjYyLGx8PTAsMCl9KGMpLGw9MHxhWzQ2OTk0XSk6Yz0wLGFbbCs0''@;'; + put 'put ''Pj4yXT0wKSwwfGMmJkNUKGwrMTZ8MCxjKX1mdW5jdGlvbiBLUChsLGMsZil7bHw9MCxjfD0wLChmfD0wKSYmKGM9MHxmdW5jdGlvbiBlRihsLGMpe2N8PTA7dmFyIHAsbSxBLHcsZj0wO3JldHVybiB3PWxlLGxlPWxlKzEwNDB8MCxtPXcsQT13Kzh8MCxwPShmPTIrKGY9MHxVbyhsfD0wKSkr''@;'; + put 'put ''KDB8VW8oYykpfDApPj4+MDwxMDI1P0E6MHxCMChmKSxhW20+PjJdPWwsYVttKzQ+PjJdPWMsb28ocCw5ODE2MyxtKSxmPTB8cjAoMHxhWzQ2OTkzXSxwKSxlMCgwfGFbNDY5OTNdLGwpLGUwKDB8YVs0Njk5M10sYyksKDB8cCkhPSgwfEEpJiZGdChwKSxsZT13LDB8Zn0oYyxmKSksZj0wfGZ1''@;'; + put 'put ''bmN0aW9uIHVyZShsLGMpe3JldHVybiAwfF9DKDI1OSxsfD0wLGN8PTApfSgwfEdyKDB8YVthWzQ2OTk0XT4+Ml0sbCwxKSxjKSxDVCg4KygwfGFbNDY5OTRdKXwwLGYpLGUwKDB8YVs0Njk5M10sbCl9ZnVuY3Rpb24gX1QobCxjKXtsfD0wO3ZhciBtLGY9MCxwPTA7Zm9yKDB8KGN8PTApJiZG''@;'; + put 'put ''RygpLGM9MjQrKDB8YVs0Njk5NF0pfDA7Yz0wfGFbYz4+Ml07KTB8YVtjKzg+PjJdfHxGRygpLGM9YysxMnwwO2ZvcihrVChtPTI2MD09KDB8bCk/MjoyNTk9PSgwfGwpJjEpLGM9MjQrKGw9MHxhWzQ2OTk0XSl8MDtwPTB8YVtjPj4yXTspe2Rve2lmKDI2NyE9KDB8YVtwPj4yXSkpe2lmKCEo''@;'; + put 'put ''MCE9KDB8ZmVbMjErKGM9MHxhW3ArND4+Ml0pPj4wXSkmKDB8KGY9MHxhW2w+PjJdKSk9PSgwfGFbNDY5OTNdKSkmJihjPTB8c2koZixtLDB8YVtjKzg+PjJdLDB8YVtwKzg+PjJdKSwoMHxhWyhsPTB8YVs0Njk5NF0pPj4yXSkhPSgwfGFbNDY5OTNdKSkpYnJlYWs7ZmVbYysyMj4+MF09MX19''@;'; + put 'put ''d2hpbGUoMCk7Yz1wKzEyfDB9emgobCsyNHwwKX1mdW5jdGlvbiBSRyhsLGMpe2M9MHxmdW5jdGlvbiBxUChsLGMpe3JldHVybiAwfF9DKDI2NyxsfD0wLGN8PTApfShsfD0wLGN8PTApLENUKDI0KygwfGFbNDY5OTRdKXwwLGMpfWZ1bmN0aW9uIF9sKGwpe3ZhciBjO2FbNDY5OTRdPTB8UEco''@;'; + put 'put ''Yz0wfGFbNDY5OTRdLDB8ZHMoMHxhW2M+PjJdLGx8PTAsMSkpLGUwKDB8YVs0Njk5M10sbCl9ZnVuY3Rpb24gc3JlKCl7dmFyIGMsbD0wO2M9MHxhWyhsPTB8YVs0Njk5NF0pPj4yXSxsPTB8QkcobCksYVs0Njk5NF09bCxhW2wrND4+Ml09Y31mdW5jdGlvbiAkUChsLGMpe2N8PTA7dmFyIHAs''@;'; + put 'put ''bSxBLGY9MDtyZXR1cm4gQT1sZSxsZT1sZSsxMDI0fDAsbT1BLGlkKGY9KGY9MSsoZj0wfFVvKGx8PTApKSsoMHxVbyhjKSl8MCk+Pj4wPDEwMjU/bTowfEIwKGYpLGwpLHN2KGYsYykscD0wfHIwKDB8YVs0Njk5M10sZiksZTAoMHxhWzQ2OTkzXSxsKSxlMCgwfGFbNDY5OTNdLGMpLCgwfGYp''@;'; + put 'put ''IT0oMHxtKSYmRnQoZiksbGU9QSwwfHB9ZnVuY3Rpb24gQkcobCl7dmFyIGM7cmV0dXJuIGM9MHxhWzMyKygwfGFbNDY5OTRdKT4+Ml0seHQoMHxhWzQ2OTkzXSxsfD0wKSwwfGN9ZnVuY3Rpb24gUEcobCxjKXt2YXIgZjtyZXR1cm4gbHw9MCxjfD0wLGY9MHxNdCgwfGFbNDY5OTNdLDM2KSxh''@;'; + put 'put ''W2YrMzI+PjJdPWwsYVtmPj4yXT1jLDB8Zn1mdW5jdGlvbiBDVChsLGMpe3ZhciBmLHA7Y3w9MCwwfChwPTB8YVsoZj00KyhsfD0wKXwwKT4+Ml0pJiYoYVtwKzEyPj4yXT1jKSxhW2Y+PjJdPWMsMHxhW2w+PjJdfHwoYVtsPj4yXT1jKX1mdW5jdGlvbiBfQyhsLGMsZil7dmFyIHA7cmV0dXJu''@;'; + put 'put ''IGx8PTAsY3w9MCxmfD0wLHA9MHxNdCgwfGFbNDY5OTNdLDE2KSxhW3A+PjJdPWwsYVtwKzQ+PjJdPWMsYVtwKzg+PjJdPWYsMHxwfWZ1bmN0aW9uIEZHKCl7dmFyIGw7bD1sZSxsZT1sZSsxNnwwLCRyKDAsOTgxMzAsbCksbGU9bH1mdW5jdGlvbiBrVChsKXt2YXIgbSxjPTAsZj0wLHA9MCxB''@;'; + put 'put ''PTA7Zm9yKG09Mj09KDB8KGx8PTApKSxjPTI0KygwfGFbNDY5OTRdKXwwO2M9MHxhW2M+PjJdOylwPTB8YVsoZj1jKzR8MCk+PjJdLG0mJigwfGZlW3A+PjBdKT09KDB8ZmVbOTgxMjZdKSYmISgwfFppKHAsOTgxMjYpKXx8KEE9MHxzaSgwfGFbYVs0Njk5NF0+PjJdLGwscCwwKSxhW2Y+PjJd''@;'; + put 'put ''PUEsQXx8KGFbZj4+Ml09MHxzaSgwfGFbYVs0Njk5NF0+PjJdLGwscCwxOTUwNTkpKSxhW2M+PjJdPTI2NixlMCgwfGFbNDY5OTNdLHApKSxjPWMrMTJ8MH1mdW5jdGlvbiB6aChsKXtTVCgwfGFbKGx8PTApPj4yXSksYVtsKzQ+PjJdPTAsYVtsPj4yXT0wfWZ1bmN0aW9uIFNUKGwpe2x8PTA7''@;'; + put 'put ''Zm9yKHZhciBjPTA7bDspe3N3aXRjaChjPTB8YVtsKzEyPj4yXSwwfGFbbD4+Ml0pe2Nhc2UgMjY1OlNUKDB8YVtsKzQ+PjJdKTticmVhaztjYXNlIDI2NjpjYXNlIDI2NzplMCgwfGFbNDY5OTNdLDB8YVtsKzg+PjJdKX14dCgwfGFbNDY5OTNdLGwpLGw9Y319ZnVuY3Rpb24gdEYobCl7bHw9''@;'; + put 'put ''MDt2YXIgYz0wLGY9MDtmb3IoYz0yNCsoMHxhWzQ2OTk0XSl8MDtjPTB8YVtjPj4yXTspMjY2PT0oMHxhW2M+PjJdKSYmMHwoZj0wfGFbYys0Pj4yXSkmJlZsKGwsZiwwfGFbYys4Pj4yXSksYz1jKzEyfDB9ZnVuY3Rpb24gTVQobCxjLGYscCl7bHw9MCxjfD0wLHB8PTA7dmFyIG09MDttPTQr''@;'; + put 'put ''KGZ8PTApfDA7ZTpkb3tpZigyNjI9PSgwfGFbZj4+Ml0pKWZvcihmPTB8YVttPj4yXSxtPTB8RHQoZik7Oyl7aWYoIW0pYnJlYWsgZTtlcChsLGMsMHxZbigwfGFbYVs0Njk5NF0+PjJdLG0sMCksMCxwKSxtPTB8enQoZixtKX1lbHNlIGZvcig7Oyl7aWYoIShtPTB8YVttPj4yXSkpYnJlYWsg''@;'; + put 'put ''ZTtlcChsLGMsZj0wfFluKDB8YVthWzQ2OTk0XT4+Ml0sMHxhW20rND4+Ml0sMCksMHxhW20rOD4+Ml0scCksbT1tKzEyfDB9fXdoaWxlKDApfWZ1bmN0aW9uIGVwKGwsYyxmLHAsbSl7Y3w9MCxwfD0wO3ZhciBBPTA7MHwoZj0wfEthKDB8YVthWzQ2OTk0XT4+Ml0sbHw9MCxmfD0wLG18PTAs''@;'; + put 'put ''MSkpJiYoSEcoZiwxMTE0NTUsKGw9KDB8KG09MHxhWygyPT0oMHwoQT0zJmFbZj4+Ml0pKT9mOmYrLTQ4fDApKzQwPj4yXSkpPT0oMHxsKT8oMHxhWygzPT0oMHxBKT9mOmYrNDh8MCkrNDA+PjJdKSE9KDB8bSk6MCk/cDpjKSxIRyhmLDExMTQ2NCxsP2M6cCksdEYoZikpfWZ1bmN0aW9uIEhH''@;'; + put 'put ''KGwsYyxmKXtsfD0wLGN8PTA7dmFyIHA9MDswfChmfD0wKSYmKChwPTB8c2koMHxhW2FbNDY5OTRdPj4yXSwyLGMsMCkpfHwocD0wfHNpKDB8YVthWzQ2OTk0XT4+Ml0sMixjLDE5NTA1OSkpLFZsKGwscCxmKSl9ZnVuY3Rpb24gbkYobCxjKXtyZXR1cm4gMHxmdW5jdGlvbiBIbWUobCxjLGYp''@;'; + put 'put ''e3JldHVybiBsfD0wLGZ8PTAsYVs0Njk2Ml09Y3w9MCxhWzQ2OTkzXT1sLGFbNDY5NDJdPTAsYVs0Njk5Nl09bD0wfGY/ZjoxODYwMCxmdW5jdGlvbiBwMChsLGMpe2N8PTAsYVs0Njk2N109bHw9MCxhWzQ2OTY4XT1jLGFbNDY5NjldPTB9KGwsYyksZnVuY3Rpb24gYXJlKCl7dmFyIEcscGUs''@;'; + put 'put ''bD0wLGM9MCxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsSz0wO3BlPWxlLGxlPWxlKzEyMDB8MCxHPXBlKzgwMHwwLGY9cGUsYVs0Njk5MF09MCxhWzQ2OTkxXT0tMixjPUcsbT0yMDAsaz1mLEQ9MCxSPTAsTT1HO2U6Zm9yKDs7KXtpZihpdFtNPj4xXT1ELChjKyht''@;'; + put 'put ''PDwxKSstMnwwKT4+PjA+TT4+PjApdz1tO2Vsc2V7aWYobD0xKyhiPU0tYz4+MSl8MCxtPj4+MD45OTk5KXtLPTc1O2JyZWFrfXN3aXRjaCgocD0wfEIwKDYqKHc9KHc9bTw8MSk+Pj4wPDFlND93OjFlNCl8MykpPyhnbygwfHAsMHxjLGw8PDF8MCksZ28oMHwobT1wKyh3Pj4+MTw8Mil8MCks''@;'; + put 'put ''MHxrLGw8PDJ8MCksKDB8Yyk9PSgwfEcpPyhsPTAsYz1wKTooRnQoYyksbD0wLGM9cCkpOihsPTQsbT1rKSxwPWMrKGI8PDEpfDAsMTUmKChBPTA9PSgwfGwpKT8oYysodzw8MSkrLTJ8MCk+Pj4wPnA+Pj4wPzA6OTpsKSl7Y2FzZSA5Omw9MSxLPTc2O2JyZWFrIGU7Y2FzZSA0Oks9NzU7YnJl''@;'; + put 'put ''YWsgZTtjYXNlIDA6Zj1BP20rKGI8PDIpfDA6ZixrPW0sTT1BP3A6TTticmVhaztkZWZhdWx0Omw9MDticmVhayBlfX1pZig2PT0oMHxEKSl7bD0wLEs9NzY7YnJlYWt9QT0obD0wfGZlWzk3MzgxK0Q+PjBdKTw8MjQ+PjI0O2Rve2lmKGw8PDI0Pj4yNCE9LTE4KXtpZigtMj09KDB8KHA9MHxh''@;'; + put 'put ''WzQ2OTkxXSkpJiYocD0wfFFsKCksYVs0Njk5MV09cCksKDB8cCk+PTE/bT1wPj4+MDwyNjk/MHxYdFs5NzQ2MStwPj4wXToyOihhWzQ2OTkxXT0wLG09MCksKHA9bStBfDApPj4+MDw9NTkmJigwfG0pPT0oMHxYdFs5NzczMCtwPj4wXSkpe2lmKGw9KEQ9MHxmZVs5Nzc5MCtwPj4wXSk8PDI0''@;'; + put 'put ''Pj4yNCxEPDwyND4+MjQ8MSl7cD0wLWx8MCxLPTIzO2JyZWFrfWFbNDY5OTFdPS0yLGFbKGY9Zis0fDApPj4yXT1hWzQ2OTkyXSxBPTA9PSgwfFIpPzA6UistMXwwLHA9TTticmVha31LPTIyfWVsc2UgSz0yMn13aGlsZSgwKTtpZigyMj09KDB8SykpaWYoSz0wLHA9MjU1JihEPTB8ZmVbOTc4''@;'; + put 'put ''NTArRD4+MF0pLEQ8PDI0Pj4yNClLPTIzO2Vsc2V7cD0wfGFbNDY5OTFdO3Q6ZG97c3dpdGNoKDB8Uil7Y2FzZSAwOmFbNDY5OTBdPTErKDB8YVs0Njk5MF0pLFlvKDE0Mzc2MSkscD1NO2JyZWFrO2Nhc2UgMzppZigoMHxwKTwxKXtpZihwKXtwPU07YnJlYWsgdH1sPTEsSz03NjticmVhayBl''@;'; + put 'put ''fWFbNDY5OTFdPS0yLHA9TTticmVhayB0O2RlZmF1bHQ6cD1NfX13aGlsZSgwKTtmb3IoO2w8PDI0Pj4yNCE9MTg7KXtpZigoMHxwKT09KDB8Yykpe2w9MSxLPTc2O2JyZWFrIGV9Zj1mKy00fDAscD1sPXArLTJ8MCxsPTB8ZmVbOTczODErKDB8aXRbbD4+MV0pPj4wXX1hWyhmPWYrNHwwKT4+''@;'; + put 'put ''Ml09YVs0Njk5Ml0sbD0xLEE9M31kb3tpZigyMz09KDB8Sykpe0s9MCxsPTB8YVtmKygxLShtPTB8WHRbOTc5MzArcD4+MF0pPDwyKT4+Ml07dDpkb3tzd2l0Y2goMHxwKXtjYXNlIDI6bHJlKCksREcoKTticmVhaztjYXNlIDM6MHxhWzQ2OTkzXSYmKGxyZSgpLERHKCksQzEoMHxhWzQ2OTkz''@;'; + put 'put ''XSksYVs0Njk0Ml09MCxhWzQ2OTkzXT0wKTticmVhaztjYXNlIDY6TEcoMHxhW2Y+PjJdLDB8YVtmKy00Pj4yXSwwfGFbZistOD4+Ml0pO2JyZWFrO2Nhc2UgNzpjYXNlIDUzOmNhc2UgNTk6Y2FzZSA2MDpjYXNlIDYxOmw9MHxhW2Y+PjJdO2JyZWFrO2Nhc2UgODpjYXNlIDEwOmNhc2UgMTE6''@;'; + put 'put ''Y2FzZSAyNzpjYXNlIDM5OmNhc2UgNTQ6Y2FzZSA1NTpsPTA7YnJlYWs7Y2FzZSA5OmNhc2UgMTI6Y2FzZSAyNjpsPTE7YnJlYWs7Y2FzZSAyMTppZigwfGFbZistND4+Ml0pe09HKCk7YnJlYWsgdH1GbWUoKTticmVhayB0O2Nhc2UgMjQ6Y2FzZSAyNTp6MygpO2JyZWFrO2Nhc2UgMzA6S1Ao''@;'; + put 'put ''MHxhW2Y+PjJdLDAsMCk7YnJlYWs7Y2FzZSAzMTpLUCgwfGFbZistOD4+Ml0sMHxhW2Y+PjJdLDApO2JyZWFrO2Nhc2UgMzI6S1AoMHxhW2YrLTE2Pj4yXSwwfGFbZistOD4+Ml0sMHxhW2Y+PjJdKTticmVhaztjYXNlIDMzOl9UKDB8YVtmKy04Pj4yXSwwfGFbZistND4+Ml0pO2JyZWFrO2Nh''@;'; + put 'put ''c2UgMzQ6X1QoMjU4LDApO2JyZWFrO2Nhc2UgMzU6bD0yNTg7YnJlYWs7Y2FzZSAzNjpsPTI1OTticmVhaztjYXNlIDM3Omw9MjYwO2JyZWFrO2Nhc2UgMzg6bD0wfGFbZistND4+Ml07YnJlYWs7Y2FzZSA0ODpSRygwfGFbZistOD4+Ml0sMHxhW2Y+PjJdKTticmVhaztjYXNlIDQ5OlJHKDB8''@;'; + put 'put ''YVtmPj4yXSwwKTticmVhaztjYXNlIDUxOl9sKDB8YVtmPj4yXSk7YnJlYWs7Y2FzZSA1MjpzcmUoKTticmVhaztjYXNlIDYyOmw9MHwkUCgwfGFbZistOD4+Ml0sMHxhW2Y+PjJdKX19d2hpbGUoMCk7aWYoRD1mKygobT0wLW18MCk8PDIpfDAsbT1NKyhtPDwxKXwwLGY9RCs0fDAsYVtEKzQ+''@;'; + put 'put ''PjJdPWwsKHA9KEQ9MHxpdFttPj4xXSkrKDB8ZmVbOTgwNTYrKGw9KDB8WHRbOTc5OTMrcD4+MF0pLTI0fDApPj4wXSl8MCk+Pj4wPDYwJiYoMHxYdFs5NzczMCtwPj4wXSk9PSgwfEQpKXtsPTB8ZmVbOTc3OTArcD4+MF0sQT1SLHA9bTticmVha31sPTB8ZmVbOTgwOTErbD4+MF0sQT1SLHA9''@;'; + put 'put ''bX19d2hpbGUoMCk7bT13LEQ9bCxSPUEsTT1wKzJ8MH03NT09KDB8SykmJihZbygxNDA1NTgpLGw9MixLPTc2KSw3Nj09KDB8SykmJigwfGMpIT0oMHxHKSYmRnQoYyksbGU9cGV9KCksKGw9MHxhWzQ2OTQyXSl8fChmdW5jdGlvbiBqcygpe3ZhciBsPTA7emkobD0obD0wfGFbNDY5NzJdKT8w''@;'; + put 'put ''fGFbbD4+Ml06MCl9KCksbD0wfGFbNDY5NDJdKSwwfGx9KDAsbHw9MCxjfD0wKX1mdW5jdGlvbiBjcmUobCl7dmFyIEEsYz0wLGY9MCxwPTAsbT0wLHc9MDtmb3IoQT1sZSxsZT1sZSsxMTJ8MCxmPUEsbT1BKzR8MCwoYz0wfGFbMjQrKGx8PTApPj4yXSk/KGFbZj4+Ml09YysxLG9vKG0sOTgy''@;'; + put 'put ''MjUsZikpOmZlW20+PjBdPTAsYz0xMSsodz0xKyhjPTB8VW8oZj0wfChmPTB8YVtsKzIwPj4yXSk/Zjo5ODIyOSkpKyh3PTB8VW8obSkpKygwfFVvKDB8YVsocD1sKzUyfDApPj4yXSkpfDApfDAsKDB8YVs0Njk5N10pPj4+MDwodysxfDApPj4+MD8oYVs0Njk5N109YyxjPTB8VWEoMHxhWzQ2''@;'; + put 'put ''OTk4XSxjKSxhWzQ2OTk4XT1jKTpjPTB8YVs0Njk5OF0saWQoYyxmKSxzdigwfGFbNDY5OThdLG0pLGM9KGM9MHxhWzQ2OTk4XSkrKDB8VW8oYykpfDAsZmVbYz4+MF09NDYsZmVbYysxPj4wXT0wLGM9MHxyYSgwfGFbcD4+Ml0pLHA9MHxhWzQ2OTk4XTtmPTB8TSQoYyw1OCk7KXN2KHAsZisx''@;'; + put 'put ''fDApLG09KHc9MHxhWzQ2OTk4XSkrKDB8VW8odykpfDAsZmVbbT4+MF09NDYsZmVbbSsxPj4wXT0wLGZlW2Y+PjBdPTAscD13O3N2KHAsYyksRnQoYyksYVtsKzMyPj4yXT1hWzQ2OTk4XSxsZT1BfWZ1bmN0aW9uIFI1KGwsYyxmKXtsfD0wO3ZhciBBLHcscD0wLG09MDtyZXR1cm4gdz1sZSxs''@;'; + put 'put ''ZT1sZSsxNnwwLEE9dys4fDAsbT13LDAhPSgwfChjfD0wKSkmMCE9KDB8KGZ8PTApKT8oMTAyNCZhW2wrMTUyPj4yXXwwJiYoR3NbNjMmYVsxNisoMHxhW2wrMTI+PjJdKT4+Ml1dKDk4MjA3LG0pLFh1KDEpKSwoMHxmdW5jdGlvbiBWRyhsLGMsZil7Y3w9MCxmfD0wO3ZhciBSLHA9MCxtPTAs''@;'; + put 'put ''QT0wLHc9MCxiPTAsaz0wLE09MCxEPTA7Uj1sZSxsZT1sZSsxNnwwLEQ9UixwPTB8YVsxMDQrKDB8YVsobHw9MCk+PjJdKT4+Ml07ZG97aWYocClmPTB8bWlbNjMmcF0obCxjLGYpO2Vsc2V7aWYoIShBPTB8YVsoYj1sKzQwfDApPj4yXSkpe2Y9MHxDdShjLDEsZiwwfGFbbCszNj4+Ml0pO2Jy''@;'; + put 'put ''ZWFrfXA9bCs0NHwwLG09MHxhWyh3PWwrNDh8MCk+PjJdO2Rve2lmKCgoMHxhW3A+PjJdKS0xLW18MCk+Pj4wPGY+Pj4wKXtpZihhW3A+PjJdPW09Zis0MDk2K20mLTQwOTYscD0wfFVhKEEsbSksYVtiPj4yXT1wLHApe2s9cCxNPTB8YVt3Pj4yXTticmVha31Hc1s2MyZhWzE2KygwfGFbbCsx''@;'; + put 'put ''Mj4+Ml0pPj4yXV0oOTgyNjQsRCksWHUoMSl9ZWxzZSBrPUEsTT1tfXdoaWxlKDApO2dvKGsrTXwwLDB8YywwfGYpLGFbdz4+Ml09RD0oMHxhW3c+PjJdKStmfDAsZmVbKDB8YVtiPj4yXSkrRD4+MF09MH19d2hpbGUoMCk7cmV0dXJuIGxlPVIsMHxmfShsLGMsZikpPT0oMHxmKT9wPWY6KG09''@;'; + put 'put ''MHxhWzE2KygwfGFbbCsxMj4+Ml0pPj4yXSxhW0E+PjJdPWYsR3NbNjMmbV0oOTgyMzksQSksWHUoMSkpKTpwPTAsbGU9dywwfHB9ZnVuY3Rpb24gRW4obCxjKXt2YXIgZjtyZXR1cm4gMHwoKGM9KDB8UjUobHw9MCxjfD0wLGY9MHxVbyhjKSkpPT0oMHxmKSk/MTotMSl9ZnVuY3Rpb24gckYo''@;'; + put 'put ''bCxjKXt2YXIgZixwO3JldHVybiBsfD0wLGY9bGUsbGU9bGUrMTZ8MCxmZVsocD1mKT4+MF09Y3w9MCxsPTE9PSgwfFI1KGwscCwxKSksbGU9ZiwwfChsP2M6LTEpfWZ1bmN0aW9uIGlGKGwpe3ZhciBjO3JldHVybiAwfCgwIT0oMHwoYz0wfGFbMzYrKGx8PTApPj4yXSkpJiYwPT0oMHxmZVts''@;'; + put 'put ''KzE0ND4+MF0pJiYwPT0oMHxhWzEwNCsoMHxhW2w+PjJdKT4+Ml0pPzB8Q0woYyk6MCl9ZnVuY3Rpb24gZnJlKGwpe3ZhciBmLHAsYz0wO3A9bGUsbGU9bGUrMTZ8MCxmPTB8YVs3NisobHw9MCk+PjJdLDEwMjQmYVtsKzE1Mj4+Ml18MCYmKEdzWzYzJmFbMTYrKDB8YVtsKzEyPj4yXSk+PjJd''@;'; + put 'put ''XSg5ODI5MSxwKSxYdSgxKSksMCE9KDB8ZikmJjAhPSgwfChjPTB8YVtmKzg+PjJdKSk/Q29bMTI3JmNdKGwpOihpRihsKSxmdW5jdGlvbiBvRihsKXt2YXIgYyxmPTAscD0wOzB8YVsoYz0zMisobHw9MCl8MCk+PjJdJiYoMHwocD0wfGFbKGY9bCszNnwwKT4+Ml0pKSE9KDB8YVsxNTY3OV0p''@;'; + put 'put ''JiYwPT0oMHxmZVtsKzE0ND4+MF0pJiYoMHxwJiYoZXcocCksYVtmPj4yXT0wKSxhW2M+PjJdPTApfShsKSksbGU9cH1mdW5jdGlvbiBPcihsLGMsZil7bHw9MCxjfD0wO3ZhciBBLHcsYixwPTAsbT0wO2I9bGUsbGU9bGUrMTA1NnwwLG09Yix3PWIrMjR8MCxhWyhBPWIrOHwwKT4+Ml09Znw9''@;'; + put 'put ''MCwoMHwocD0wfG1MKHcsMTAyNCxjLEEpKSk+PTA/KCgwfHApPjEwMjM/KHA9MHxRbihwKzF8MCksYVtBPj4yXT1mLG09cCxwPTB8SWoocCxjLEEpKTptPXcsUjUobCxtLHApLCgwfG0pIT0oMHx3KSYmRnQobSkpOihhW20+PjJdPTB8JGsoMHxhWzQ3NjQzXSksJHIoMSw5ODMwOCxtKSksbGU9''@;'; + put 'put ''Yn1mdW5jdGlvbiBacyhsLGMpe3ZhciBmLHA7Zj1sZSxsZT1sZSsxNnwwLFI1KGx8PTAsMHxhRihwPWYsYz0rYyksMHxhW3A+PjJdKSxsZT1mfWZ1bmN0aW9uIGFGKGwsYyl7bHw9MDt2YXIgZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MDtpZigoYz0rYyk8LTFlMTUpcD05ODMyMixm''@;'; + put 'put ''PTE5O2Vsc2UgaWYoYz4xZTE1KXA9OTgzMjMsZj0xODtlbHNlIGlmKHA9fn4oKChjKj0xZTQpPDA/LS41Oi41KStjKSl7Zm9yKGs9NCx3PTAsZj0xOTQ4MjYscD0oTT0oMHxwKTwwKT8wLXB8MDpwOzAhPSgwfHApfCgwfGspPjA7KWI9KDB8cCkvMTB8MCxBPWYrLTF8MCwwPT0oMHwobT0oMHxw''@;'; + put 'put ''KSUxMHwwKSkmdzw8MjQ+PjI0PT0wP3A9MDooZmVbQT4+MF09NDh8bSxwPTEsZj1BKSwxPT0oMHxrKSYmKHA8PDI0Pj4yNCYmKGZlWyhmPWYrLTF8MCk+PjBdPTQ2KSxwPTEpLGs9aystMXwwLHc9cCxwPWI7TSYmKGZlWyhmPWYrLTF8MCk+PjBdPTQ1KSxwPWYsZj0xOTQ4MjYtZnwwfWVsc2Ug''@;'; + put 'put ''cD0xMzgzOTQsZj0xO3JldHVybiBhW2w+PjJdPWYsMHxwfWZ1bmN0aW9uIG5oKGwsYyl7dmFyIGYscDtmPWxlLGxlPWxlKzE2fDAsUjUobHw9MCwwfGFGKHA9ZiwrX1soY3w9MCk+PjNdKSwwfGFbcD4+Ml0pLFI1KGwsMTAyNjA0LDEpLFI1KGwsYz0wfGFGKHAsK19bYys4Pj4zXSksMHxhW3A+''@;'; + put 'put ''PjJdKSxsZT1mfWZ1bmN0aW9uIEczKGwsYyxmKXtsfD0wLGN8PTAsZnw9MDt2YXIgbSxBLHA9MCx3PTA7Zm9yKEE9bGUsbGU9bGUrMTZ8MCxtPUEscD0wO2FbbT4+Ml09YVsodz1jKyhwPDw0KXwwKT4+Ml0sYVttKzQ+PjJdPWFbdys0Pj4yXSxhW20rOD4+Ml09YVt3Kzg+PjJdLGFbbSsxMj4+''@;'; + put 'put ''Ml09YVt3KzEyPj4yXSxuaChsLG0pLCEoKDB8KHA9cCsxfDApKT49KDB8ZikpOylSNShsLDEwMjYwNCwxKTtsZT1BfWZ1bmN0aW9uIHhUKGwsYyl7Y3w9MDt2YXIgZj0wLHA9MDtyZXR1cm4oZj0wfGFbKHA9MTYwKyhsfD0wKXwwKT4+Ml0pPyhwPTB8YVs0N2UzXSkmJigoZj0wfGFbcCs0Pj4y''@;'; + put 'put ''XSl8fChmPTB8dnIoNjMyKSxhWzQrKDB8YVs0N2UzXSk+PjJdPWYpKTooZj0wfHZyKDYzMiksYVtwPj4yXT1mLGFbbCsxNjQ+PjJdPWYpLGFbNDdlM109ZixhW2YrNTI+PjJdPWMsYVtmPj4yXT1sLDAhPSgwfFJBKGwsMyxjKSl8MH1mdW5jdGlvbiB6RyhsKXt2YXIgYztyZXR1cm4gYVsxNjQr''@;'; + put 'put ''KGx8PTApPj4yXT1jPTB8YVtsKzE2MD4+Ml0sMHxjfWZ1bmN0aW9uIE5tZShsKXt2YXIgYyxmLHA9MDtyZXR1cm4gMHwoZj0wfGFbNCsoYz0wfGFbKGw9MTY0KyhsfD0wKXwwKT4+Ml0pPj4yXSkmJjA9PSgwfGFbKHA9Zis1MnwwKT4+Ml0pJiYoYVtwPj4yXT1hW2MrNTI+PjJdKSxhW2w+PjJd''@;'; + put 'put ''PWYsMHxmfWZ1bmN0aW9uIGd1KGwsYyxmKXtmfD0wO3ZhciBwLG09MDttPTEwKyhjfD0wKXwwLCgwfGFbKHA9OCsobHw9MCl8MCk+PjJdKT4oMHxjKT9sPTB8YVtsPj4yXTooYVtwPj4yXT1tLG09MHxWMCgwfGFbbD4+Ml0sbTw8MiksYVtsPj4yXT1tLGw9bSksYVtsKyhjPDwyKT4+Ml09Zn1m''@;'; + put 'put ''dW5jdGlvbiBkcmUobCl7dmFyIGM7MHwoYz0wfGFbKGx8PTApPj4yXSkmJkZ0KGMpLGFbbD4+Ml09MCxhW2wrOD4+Ml09MCxhW2wrND4+Ml09MH1mdW5jdGlvbiBsRihsKXt2YXIgZixjPTAscD0wO2ZvcihjPTB8YVsoZj0xNjArKGx8PTApfDApPj4yXTtjOylwPTB8YVtjKzQ+PjJdLGRyZShj''@;'; + put 'put ''KzYwNHwwKSxkcmUoYys1OTJ8MCksRnQoMHxhW2MrNTg0Pj4yXSksRnQoMHxhW2MrNTg4Pj4yXSksRnQoYyksYz1wO2FbNDdlM109MCxhWzQ2OTk5XT0wLGFbbCsxOTI+PjJdPTAsYVtsKzE2ND4+Ml09MCxhW2Y+PjJdPTAsYVtsKzI4Pj4yXT0wfWZ1bmN0aW9uIEdHKGwsYyxmLHAsbSxBKXts''@;'; + put 'put ''fD0wLGN8PTAscHw9MCxtfD0wLEF8PTA7dmFyIHcsayxELGI9MCxNPTA7Zm9yKEQ9bGUsbGU9bGUrMTI4fDAsTT1ELHF5KGs9RCs2NHwwLGZ8PTAsNjMpLDB8KHc9MHwkcyhrLDU4KSkmJihmZVt3Pj4wXT0wKSxsPWwrNjArKGM8PDIpfDA7Oyl7aWYoIShjPTB8YVtsPj4yXSkpe2M9bCxsPTA7''@;'; + put 'put ''YnJlYWt9aWYocXkoTSwwfGFbYys0Pj4yXSw2MyksMHwoYz0wfCRzKE0sNTgpKSYmKGZlW2M+PjBdPTApLCgwfFppKGssTSkpPDEpe2I9OTticmVha31sPTB8YVtsPj4yXX1mb3IoOzk9PSgwfGIpJiYoYz1sLGw9MHxhW2w+PjJdKSwhKCFsfHwocXkoTSwwfGFbbCs0Pj4yXSw2MyksbD0wfCRz''@;'; + put 'put ''KE0sNTgpLDB8bCYmKGZlW2w+PjBdPTApLDB8WmkoayxNKSl8fChsPTB8YVtjPj4yXSwoMHxhW2wrOD4+Ml0pPD0oMHxwKSkpOyliPTk7cmV0dXJuIE09MHxRbigyMCksYVtNPj4yXT1hW2M+PjJdLGFbYz4+Ml09TSxhW00rND4+Ml09ZixhW00rOD4+Ml09cCxhW00rMTI+PjJdPW0sYVtNKzE2''@;'; + put 'put ''Pj4yXT1BLGxlPUQsMX1mdW5jdGlvbiBkMShsLGMpe3JldHVybiBjfD0wLGM9bGUsbGU9bGUrMTZ8MCwkcigxLDk4Mzk2LGMpLGxlPWMsMH1mdW5jdGlvbiBSQShsLGMsZil7bHw9MDt2YXIgdyxiLGssRCxwZSxnZSxwPTAsbT0wLEE9MCxNPTAsUj0wLEc9MCxLPTA7Z2U9bGUsbGU9bGUrMTQ0''@;'; + put 'put ''fDAscGU9Z2UsRz1nZSsxNnwwLEQ9KChjfD0wKS0zfDApPj4+MDwyPzA6YyxxeShSPWdlKzgwfDAsZnw9MCw2MyksKGY9MHwkcyhSLDU4KSk/KHA9ZisxfDAsZmVbZj4+MF09MCwoZj0wfCRzKHAsNTgpKT8oZmVbZj4+MF09MCxNPWYrMXwwKTpNPTApOihNPTAscD0wKSx3PTAhPSgwfHApLGI9''@;'; + put 'put ''MD09KDB8TSksaz0oMHxEKT09KDB8YyksQT1sKzYwKyhjPDwyKXwwO2U6Zm9yKDs7KXtpZighKGY9MHxhW0E+PjJdKSl7Zj0wO2JyZWFrfXF5KEcsMHxhW2YrND4+Ml0sNjMpLChmPTB8JHMoRyw1OCkpPyhmZVtmPj4wXT0wLGY9ZisxfDApOmY9MDtkb3tpZighKDB8WmkoRyxSKSkpe2lmKHcm''@;'; + put 'put ''KG09MCE9KDB8ZikpJiYwfFppKGYscCl8fCFiJiYwfFppKE0sMHxhWzgrKDB8YVsxMisoMHxhW0E+PjJdKT4+Ml0pPj4yXSkpYnJlYWs7aWYoa3wxXm0pe0s9MTY7YnJlYWsgZX1pZigwfFJBKGwsRCxmKSl7Sz0xNjticmVhayBlfX19d2hpbGUoMCk7QT0wfGFbQT4+Ml19ZG97aWYoMTY9PSgw''@;'; + put 'put ''fEspKWlmKGY9MHxhW0E+PjJdKXtpZigwPT0oMHxhWyhwPWYrMTZ8MCk+PjJdKSYmKGQxKDAsMCksMD09KDB8YVtwPj4yXSkpKXtmPTA7YnJlYWt9KDB8YVtsKzg+PjJdKT4wJiYoSz0wfGFbMTU3MTJdLFI9MHxhW2YrND4+Ml0sRz0wfGFbOCsoMHxhW2YrMTI+PjJdKT4+Ml0sYVtwZT4+Ml09''@;'; + put 'put ''YVsyMDE2OCsoYzw8Mik+PjJdLGFbcGUrND4+Ml09UixhW3BlKzg+PjJdPUcsVDAoSyw5ODQyNyxwZSkpfWVsc2UgZj0wfXdoaWxlKDApO3JldHVybiBhW2wrODArKGM8PDIpPj4yXT1mLGxlPWdlLDB8Zn1mdW5jdGlvbiBXRyhsLGMsZil7bHw9MCxjfD0wLGZ8PTA7dmFyIHA9MCxtPTAsQT0w''@;'; + put 'put ''LHc9MDtkb3tpZihmKXtpZigwfGFbNTA0N10mJih1cygxODgwMDQsMCwwKSxhWzUwNDddPTApLGY9MHwkcyhBPTB8cmEoZiksNTgpKXtmb3IoZmVbZj4+MF09MCxmPTEsbT1wPWwrNjArKGM8PDIpfDA7bD0wfGFbbT4+Ml07KTB8KGw9MHwkcyhjPTB8cmEoMHxhW2wrND4+Ml0pLDU4KSkmJihm''@;'; + put 'put ''ZVtsPj4wXT0wKSwwIT0oMHxmZVtBPj4wXSkmJjAhPSgwfHkwKEEsYykpfHwoKGY9MHxhWzQ3MDAyXSk+Pj4wPj0oMHxhWzQ3MDAzXSk+Pj4wJiYoUTAoMTg4MDA0LDEpLGY9MHxhWzQ3MDAyXSksYVs0NzAwMl09ZisxLGZlW2Y+PjBdPTMyLHVvKDE4ODAwNCwwfGFbNCsoMHxhW20+PjJdKT4+''@;'; + put 'put ''Ml0pLChmPTB8YVs0NzAwMl0pPj4+MD49KDB8YVs0NzAwM10pPj4+MCYmKFEwKDE4ODAwNCwxKSxmPTB8YVs0NzAwMl0pLGFbNDcwMDJdPWYrMSxmZVtmPj4wXT01OCx1bygxODgwMDQsMHxhWzgrKDB8YVsxMisoMHxhW20+PjJdKT4+Ml0pPj4yXSksZj0wKSxGdChjKSxtPTB8YVttPj4yXTtG''@;'; + put 'put ''dChBKSxmPDwyND4+MjQmJihtPTAsdz0xOSl9ZWxzZSBGdChBKSxtPTAscD1sKzYwKyhjPDwyKXwwLGY9MSx3PTE5O2lmKDE5PT0oMHx3KSl7Zm9yKDtsPTB8YVtwPj4yXTspMHwobD0wfCRzKGM9MHxyYSgwfGFbbCs0Pj4yXSksNTgpKSYmKGZlW2w+PjBdPTApLDAhPSgwfG0pJiYwPT0oMHx5''@;'; + put 'put ''MChtLGMpKXx8KChmPTB8YVs0NzAwMl0pPj4+MD49KDB8YVs0NzAwM10pPj4+MCYmKFEwKDE4ODAwNCwxKSxmPTB8YVs0NzAwMl0pLGFbNDcwMDJdPWYrMSxmZVtmPj4wXT0zMix1bygxODgwMDQsYyksZj0wKSxtPWMscD0wfGFbcD4+Ml0sdz0xOTtpZihmPDwyND4+MjQpe2Y9MTk1MDU5O2Jy''@;'; + put 'put ''ZWFrfX0oZj0wfGFbNDcwMDJdKT4+PjA+PSgwfGFbNDcwMDNdKT4+PjAmJihRMCgxODgwMDQsMSksZj0wfGFbNDcwMDJdKSxmZVtmPj4wXT0wLGFbNDcwMDJdPWY9MHxhWzQ3MDAxXX1lbHNlIGY9MH13aGlsZSgwKTtyZXR1cm4gMHxmfWZ1bmN0aW9uIHByZShsKXt2YXIgYztyZXR1cm4obHw9''@;'; + put 'put ''MCl8fFByKDExMTIwOCw5ODQ0NCw1NzMsOTg0NTgpLDB8ZmVbbD4+MF18fFByKDExMTIxMyw5ODQ0NCw1NzQsOTg0NTgpLDB8KChjPTB8YVs0NzAwNV0pPzB8bWlbNjMmYVtjPj4yXV0oYyxsLDUxMik6MCl9ZnVuY3Rpb24gZ3JlKGwpe3ZhciBmLHAsbSxBLGIsayxjPTAsdz0wO2s9bGUsbGU9''@;'; + put 'put ''bGUrMTZ8MCxiPWsrOHwwLHc9aywobHw9MCl8fFByKDExMTMxMiw5ODQ0NCw1ODksOTg0NzUpLChmPTB8YVsobT1sKzh8MCk+PjJdKXx8UHIoMTExMzE1LDk4NDQ0LDU5MCw5ODQ3NSksMHxmZVtmPj4wXXx8UHIoMTExMzI0LDk4NDQ0LDU5MSw5ODQ3NSkscD0wfGFbKEE9bCsyMHwwKT4+Ml07''@;'; + put 'put ''ZG97aWYoIXApe2lmKCEoYz0wfGZEKGYpKSl7YVt3Pj4yXT1hW20+PjJdLCRyKDAsOTg0OTksdyksYz0wO2JyZWFrfWlmKHc9MHxuUyhjLDEzODgyMSksYVtBPj4yXT13LCF3KXthW2I+PjJdPTB8JGsoMHxhWzQ3NjQzXSksYVtiKzQ+PjJdPWMsJHIoMCw5ODUyNCxiKSxjPTA7YnJlYWt9aWYo''@;'; + put 'put ''KDB8KGM9MHxhWzQ3MDA2XSkpPjQ5KXtmZVtsKzE3Pj4wXT0xLGM9MTticmVha31hWzQ3MDA2XT1jKzEsYz0xO2JyZWFrfW4zKHAsMCwwKSwwfGFbQT4+Ml0/Yz0xOlByKDk4NTQ1LDk4NDQ0LDYxNCw5ODQ3NSl9d2hpbGUoMCk7cmV0dXJuIGxlPWssMHxjfWZ1bmN0aW9uIFlHKGwpe3ZhciBj''@;'; + put 'put ''PTAsZj0wOzB8ZmVbMTcrKGx8PTApPj4wXSYmMHwoZj0wfGFbKGM9bCsyMHwwKT4+Ml0pJiYoZXcoZiksYVtjPj4yXT0wKX1mdW5jdGlvbiBtcmUobCxjLGYpe2x8PTAsZnw9MDt2YXIgcD0wLG09MCxBPTA7KGN8PTApPyhtPSsoMHwocD0wfGFbYys0OD4+Ml0pKSxwPyhfW2YrOD4+M109bSxf''@;'; + put 'put ''W2Y+PjNdPW0sQT1tKTooQT0rX1tmPj4zXSxtPStfW2YrOD4+M10pLHA9fn4oKyg3MiooMHxhW2MrNDA+PjJdKXwwKS9BKSxmPX5+KCsoNzIqKDB8YVtjKzQ0Pj4yXSl8MCkvbSkpOihwPS0xLGY9LTEpLGFbbD4+Ml09cCxhW2wrND4+Ml09Zn1mdW5jdGlvbiBVRyhsLGMsZil7bHw9MCxjfD0w''@;'; + put 'put ''O3ZhciB3LGIsayxwPTAsbT0wLEE9MCxNPTA7az1sZSxsZT1sZSs0OHwwLHA9aysxNnwwLHc9ayxiPWsrMzJ8MCwwIT0oMHwoZnw9MCkpJiYwIT0oMHxmZVtmPj4wXSk/KCgwfGFbNDcwMDddKSE9KDB8KG09MHxhWzQ3MTMzXSkpJiYoYVs0NzAwN109bSwwfChBPTB8YVs0NzAwNV0pKSYmKE5s''@;'; + put 'put ''KEEpLGFbNDcwMDVdPTApLF9bdys4Pj4zXT1NPShNPStfWzI0KygwfGFbOCsoMHxhW2MrMTY+PjJdKT4+Ml0pPj4zXSk+PTE/TTo5NixfW3c+PjNdPU0sYz0wfGZ1bmN0aW9uIHZyZShsKXt2YXIgbSxjPTAsZj0wLHA9MDttPWxlLGxlPWxlKzE2fDAscD1tLChsfD0wKXx8UHIoMTExMjA4LDk4''@;'; + put 'put ''NDQ0LDYzOCw5ODU1MSksMHxhWzQ3MDA1XXx8KGFbNDcwMDVdPTB8aXMoMjAxOTIsMHxhWzQ1ODldKSksYz0wfHByZShsKTtlOmRve2lmKGMpWUcoYyk7ZWxzZSBpZihjPTB8dnIoNjQpLGMpe2lmKGFbKGY9Yys4fDApPj4yXT0wfHIwKDAsbCksISgoMHxncmUoYykpPDwyND4+MjQpKXtTQyhj''@;'; + put 'put ''KSxjPTA7YnJlYWt9c3dpdGNoKDB8YVtjKzIwPj4yXXx8UHIoOTg1NDUsOTg0NDQsNjUzLDk4NTUxKSwwfEFyZShjKSl7Y2FzZSAwOmlmKGw9MHxhTigwfGFbZj4+Ml0pLGFbYys1Mj4+Ml09bCwhbCl7YVtwPj4yXT1hW2Y+PjJdLCRyKDAsOTg1NjgscCksU0MoYyksYz0wO2JyZWFrIGV9YnJl''@;'; + put 'put ''YWs7Y2FzZSAyOnlyZShjKTticmVhaztjYXNlIDM6UUcoYyk7YnJlYWs7Y2FzZSAxOmk3KGMpO2JyZWFrO2Nhc2UgNDpKRyhjKTticmVhaztjYXNlIDY6c0YoYyk7YnJlYWs7Y2FzZSAxMTp1RihjKTticmVhaztjYXNlIDg6d3JlKGMpO2JyZWFrO2Nhc2UgNTpjRihjKTticmVhaztjYXNlIDEy''@;'; + put 'put ''OmZGKGMpfVlHKGMpLG1pWzYzJmFbKHA9MHxhWzQ3MDA1XSk+PjJdXShwLGMsMSl9ZWxzZSBjPTB9d2hpbGUoMCk7cmV0dXJuIGxlPW0sMHxjfShmKSxhW3A+PjJdPWFbdz4+Ml0sYVtwKzQ+PjJdPWFbdys0Pj4yXSxhW3ArOD4+Ml09YVt3Kzg+PjJdLGFbcCsxMj4+Ml09YVt3KzEyPj4yXSxt''@;'; + put 'put ''cmUoYixjLHApLGM9MHxhW2I+PjJdLHA9MHxhW2IrND4+Ml0pOihjPS0xLHA9LTEpLGFbbD4+Ml09YyxhW2wrND4+Ml09cCxsZT1rfWZ1bmN0aW9uIFNDKGwpe3ZhciBjOzB8KGM9MHxhWzgrKGx8PTApPj4yXSkmJmUwKDAsYyksRnQobCl9ZnVuY3Rpb24gQXJlKGwpe3ZhciBtLEEsdyxrLGM9''@;'; + put 'put ''MCxmPTAscD0wLGI9MDtrPWxlLGxlPWxlKzIyNHwwLG09aysyMDB8MCxBPWssYz0wfGFbKHc9MjArKGx8PTApfDApPj4yXTtlOmRve2lmKDAhPSgwfGMpJiYyMD09KDB8RyQobSwxLDIwLGMpKSl7Zm9yKGY9MDs7KXtpZihmPj4+MD49MTApe2I9MTM7YnJlYWsgZX1pZighKDB8dDMobSwwfGFb''@;'; + put 'put ''MjAyMjgrKGY8PDQpPj4yXSwwfGFbMjAyMjgrKGY8PDQpKzQ+PjJdKSkpYnJlYWs7Zj1mKzF8MH1zd2l0Y2goYVsocD1sKzI4fDApPj4yXT1hWzIwMjI4KyhmPDw0KSsxMj4+Ml0sYVsobD1sKzI0fDApPj4yXT1jPTB8YVsyMDIyOCsoZjw8NCkrOD4+Ml0sMHxmKXtjYXNlIDc6YnJlYWs7Y2Fz''@;'; + put 'put ''ZSA4OmlmKDB8dDMobSs4fDAsOTg3ODQsNCkpYnJlYWsgZTthW3A+PjJdPTk4Nzg5LGFbbD4+Ml09MTEsYz0xMTticmVhayBlO2RlZmF1bHQ6YnJlYWsgZX1mb3IoOzspe2lmKCEoMHx5ZyhBLDIwMCwwfGFbdz4+Ml0pKSl7Yj0xMTticmVha31pZighKDB8dDMoQSw5ODc3OSw0KSkpe2I9ODti''@;'; + put 'put ''cmVha319aWYoOD09KDB8Yikpe2FbcD4+Ml09MTAxODAzLGFbbD4+Ml09OCxjPTg7YnJlYWt9aWYoMTE9PSgwfGIpKXtjPTB8YVtsPj4yXTticmVha319ZWxzZSBiPTEzfXdoaWxlKDApO3JldHVybiAxMz09KDB8YikmJihhW2wrMjg+PjJdPTk4Nzk0LGFbbCsyND4+Ml09MCxjPTApLGxlPWss''@;'; + put 'put ''MHxjfWZ1bmN0aW9uIHlyZShsKXt2YXIgYyxmLHAsbTttPWxlLGxlPWxlKzE2fDAsYz1tKzR8MCxmPW0sYVs0OCsobHw9MCk+PjJdPTAsbjMoMHxhWyhwPWwrMjB8MCk+PjJdLDYsMCksKDB8dHAoMHxhW3A+PjJdLDIsYykpPDwyND4+MjQmJigwfHRwKDB8YVtwPj4yXSwyLGYpKTw8MjQ+PjI0''@;'; + put 'put ''JiYoYVtsKzQwPj4yXT1hW2M+PjJdLGFbbCs0ND4+Ml09YVtmPj4yXSksbGU9bX1mdW5jdGlvbiBRRyhsKXt2YXIgYyxmLHAsbTttPWxlLGxlPWxlKzE2fDAsYz1tKzR8MCxmPW0sYVs0OCsobHw9MCk+PjJdPTAsbjMoMHxhWyhwPWwrMjB8MCk+PjJdLDE2LDApLCgwfEVmKDB8YVtwPj4yXSw0''@;'; + put 'put ''LGMpKTw8MjQ+PjI0JiYoMHxFZigwfGFbcD4+Ml0sNCxmKSk8PDI0Pj4yNCYmKGFbbCs0MD4+Ml09YVtjPj4yXSxhW2wrNDQ+PjJdPWFbZj4+Ml0pLGxlPW19ZnVuY3Rpb24gaTcobCl7dmFyIGMsZixwLG0sQSx3O3c9bGUsbGU9bGUrMTZ8MCxjPXcrMTJ8MCxmPXcrOHwwLHA9dys0fDAsbT13''@;'; + put 'put ''LGFbNDgrKGx8PTApPj4yXT0wLG4zKDB8YVsoQT1sKzIwfDApPj4yXSwxNiwwKSwoMHx0cCgwfGFbQT4+Ml0sMixjKSk8PDI0Pj4yNCYmKDB8dHAoMHxhW0E+PjJdLDIsZikpPDwyND4+MjQmJigwfHRwKDB8YVtBPj4yXSwyLHApKTw8MjQ+PjI0JiYoMHx0cCgwfGFbQT4+Ml0sMixtKSk8PDI0''@;'; + put 'put ''Pj4yNCYmKGFbbCs0MD4+Ml09YVtjPj4yXTw8MTZ8YVtmPj4yXSxhW2wrNDQ+PjJdPWFbcD4+Ml08PDE2fGFbbT4+Ml0pLGxlPXd9ZnVuY3Rpb24gSkcobCl7dmFyIGMscCxtLHcsYixrLEQsZj0wLEE9MCxNPTA7Zm9yKEQ9bGUsbGU9bGUrMzJ8MCxjPUQrMTZ8MCxwPUQrMTJ8MCxtPUQrOHww''@;'; + put 'put ''LHc9RCs0fDAsYj1ELGFbNDgrKGx8PTApPj4yXT0wLGs9bCsyMHwwOygwfEVmKDB8YVtrPj4yXSwxLGMpKTw8MjQ+PjI0OylpZigyNTUhPSgwfChmPTB8YVtjPj4yXSkpJiYhKDB8JHMoOTg3NjcsZikpKXtpZigxOTI9PSgwfGYpKXtNPTY7YnJlYWt9aWYoQT0wfGFbaz4+Ml0sMTk0PT0oMHxm''@;'; + put 'put ''KSl7TT0xMTticmVha31pZighKCgwfEVmKEEsMixwKSk8PDI0Pj4yNCkpYnJlYWs7bjMoMHxhW2s+PjJdLCgwfGFbcD4+Ml0pLTJ8MCwxKX02PT0oMHxNKT8oMHxFZigwfGFbaz4+Ml0sMyxiKSk8PDI0Pj4yNCYmKDB8RWYoMHxhW2s+PjJdLDIsbSkpPDwyND4+MjQmJigwfEVmKDB8YVtrPj4y''@;'; + put 'put ''XSwyLHcpKTw8MjQ+PjI0JiYoYVtsKzQ0Pj4yXT1hW20+PjJdLGFbbCs0MD4+Ml09YVt3Pj4yXSk6MTE9PSgwfE0pJiYoMHxFZihBLDMsYikpPDwyND4+MjQmJigwfEVmKDB8YVtrPj4yXSwyLG0pKTw8MjQ+PjI0JiYoMHxFZigwfGFbaz4+Ml0sMix3KSk8PDI0Pj4yNCYmKGFbbCs0ND4+Ml09''@;'; + put 'put ''YVttPj4yXSxhW2wrNDA+PjJdPWFbdz4+Ml0pLGxlPUR9ZnVuY3Rpb24gc0YobCl7dmFyIGMscCxtLEEsdyxiLEQsZj0wLGs9MCxNPTA7Zm9yKEQ9bGUsbGU9bGUrMTA1NnwwLGs9RCxjPUQrMzJ8MCxwPUQrMjh8MCxtPUQrMjR8MCxBPUQrMjB8MCx3PUQrMTZ8MCxhWzQ4KyhsfD0wKT4+Ml09''@;'; + put 'put ''NzIsbjMoMHxhWyhiPWwrMjB8MCk+PjJdLDAsMCk7MHx5ZyhjLDEwMjQsMHxhW2I+PjJdKTspaWYoKGY9MHx0UyhjLDk4NzUyKSkmJihhW2s+PjJdPXAsYVtrKzQ+PjJdPW0sYVtrKzg+PjJdPUEsYVtrKzEyPj4yXT13LDQ9PSgwfGlsKGYsMTA0MzExLGspKSkpe009NTticmVha301PT0oMHxN''@;'; + put 'put ''KSYmKGFbbCszMj4+Ml09az0wfGFbcD4+Ml0sYVtsKzM2Pj4yXT1NPTB8YVttPj4yXSxhW2wrNDA+PjJdPSgwfGFbQT4+Ml0pLWssYVtsKzQ0Pj4yXT0oMHxhW3c+PjJdKS1NKSxsZT1EfWZ1bmN0aW9uIHVGKGwpe3ZhciBjLGYscCxtLEEsdztBPWxlLGxlPWxlKzE2fDAsYz1BKzR8MCxmPUEs''@;'; + put 'put ''YVs0OCsobHw9MCk+PjJdPTAsbjMoMHxhWyhwPWwrMjB8MCk+PjJdLDE1LDApLHc9ODg9PSgwfEdqKDB8YVtwPj4yXSkpLG09MHxhW3A+PjJdLHc/KG4zKG0sMjQsMCksKDB8dHAoMHxhW3A+PjJdLDQsYykpPDwyND4+MjQmJigwfHRwKDB8YVtwPj4yXSw0LGYpKTw8MjQ+PjI0JiYoYVtsKzQw''@;'; + put 'put ''Pj4yXT1hW2M+PjJdLGFbbCs0ND4+Ml09YVtmPj4yXSkpOihuMyhtLDI2LDApLCgwfHRwKDB8YVtwPj4yXSwyLGMpKTw8MjQ+PjI0JiYoMHx0cCgwfGFbcD4+Ml0sMixmKSk8PDI0Pj4yNCYmKGFbbCs0MD4+Ml09YVtjPj4yXSxhW2wrNDQ+PjJdPWFbZj4+Ml0pKSxsZT1BfWZ1bmN0aW9uIHdy''@;'; + put 'put ''ZShsKXtsfD0wO3ZhciBrLE0sRCxSLEcsSyxwZSxnZSxiZSxPZSxMZSxSZSxIZSxWZSxxZSxudCxXZSxvdCxTdCxrdCxjPTAsZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTA7a3Q9bGUsbGU9bGUrMzUyfDAsV2U9a3QrODB8MCxudD1rdCs3MnwwLFN0PWt0KzY0fDAsb3Q9a3QrNTZ8MCxxZT1rdCs0''@;'; + put 'put ''OHwwLGM9a3QrNDB8MCxwZT1rdCszMnwwLGdlPWt0KzI0fDAsYmU9a3QrMTZ8MCxPZT1rdCs4fDAsTGU9a3QsUmU9a3QrMzI4fDAsSGU9a3QrMTI4fDAsVmU9a3QrOTZ8MCwwfGFbNDcwMDhdfHwoMHxmdW5jdGlvbiBVY2UobCxjLGYpe2x8PTAsY3w9MCxmfD0wO3ZhciBPZSxSZSxwPTAsbT0w''@;'; + put 'put ''LEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAsSz0wLHBlPTAsZ2U9MCxiZT0wLExlPTAsSGU9MDtSZT1sZSxsZT1sZSs0OHwwLGI9UmUsT2U9MHxmdW5jdGlvbiBRY2UoKXt2YXIgbD0wLGM9MDtsPTB8QjAoMjApO2Rve2lmKGwpe2lmKGM9MHxCMCgyMDQ4KSxhW2wrMTY+PjJdPWMs''@;'; + put 'put ''Yyl7YVtsPj4yXT01MTIsYVtsKzQ+PjJdPTEwMjRlMyxhW2wrOD4+Ml09MTI4LGFbbCsxMj4+Ml09MDticmVha31GdChsKSxsPTA7YnJlYWt9fXdoaWxlKDApO3JldHVybiAwfGx9KCk7ZTpkb3tpZihPZSl7aWYoIShMZT0wfFIkKDAsMCkpKXtOaihPZSksYz0xMjticmVha31hWyhwPWIrOHww''@;'; + put 'put ''KT4+Ml09MCxhW3ArND4+Ml09MCxhW3ArOD4+Ml09MCxhW3ArMTI+PjJdPTAsYVtwKzE2Pj4yXT0wLGFbYj4+Ml09TGUsYVtiKzQ+PjJdPU9lLGFbYisxNj4+Ml09YyxhW2IrMzI+PjJdPWYsYVsocD1iKzI4fDApPj4yXT0tMSxjPTB8SmNlKGIpO3Q6ZG97aWYoYylBPTAsdz0wLGI9MCxtPTAs''@;'; + put 'put ''cD0wO2Vsc2UgaWYodz1iKzIwfDAsbT0wfGFbdz4+Ml0sYVtsPj4yXT1tKy0xLGs9MHxhW2IrOD4+Ml0sYz0wfGFbcD4+Ml0sKDB8Yyk8KDB8bSkpaWYoQT0wfHNoKDEsNjgpLEEpe2lmKGFbQSs2MD4+Ml09Z2U9Yz4+PjMxXjEsYVtBKzI4Pj4yXT1tLDA9PSg4JmZ8MCl8MCE9KDB8Z2UpKXtp''@;'; + put 'put ''ZigwfChjPTB8QiQoMCxPZSxrLEEpKSl7dz0wLGI9MCxtPTAscD0wO2JyZWFrfWlmKCgwfChtPTB8YVtBKzQwPj4yXSkpPjApe2lmKCEocD0wfEIwKGM9NCsobTw8Mil8MCkpKXt3PTAsYj0wLGM9MTIsbT0wLHA9MDticmVha31hW0ErMzI+PjJdPXAsdTIoMHxwLC0xLDB8Yyl9ZWxzZSBwPTA7''@;'; + put 'put ''aWYoZ2U9MHxzaChtPDwxfDEsNCksYVtBKzM2Pj4yXT1nZSwhZ2Upe3c9MCxiPTAsYz0xMixtPTAscD0wO2JyZWFrfWlmKCEoYz0wfHNoKDB8YVt3Pj4yXSwxMikpKXt3PTAsYj0wLGM9MTIsbT0wLHA9MDticmVha31pZihhW0ErMTY+PjJdPWMsYz0wfEIkKExlLE9lLGssQSkpe3c9MCxiPTAs''@;'; + put 'put ''bT0wLHA9MDticmVha31jPXB9ZWxzZSBjPTA7aWYoYz0wfFhjZShMZSxPZSxrLGdlPWIrMjR8MCxjKSl3PTAsYj0wLG09MCxwPTA7ZWxzZSBpZihhW2dlPj4yXT0xKyhjPTB8YVtnZT4+Ml0pLDAhPSgwfChjPTB8bjEoTGUsMCwwLGMpKSkmJjAhPSgwfChiZT0wfHV2KExlLGssYykpKSlpZihj''@;'; + put 'put ''PTB8S2NlKExlLE9lLGJlKSl3PTAsYj0wLG09MCxwPTA7ZWxzZSBpZihLPTB8QjAoYz0ocD0wfGFbZ2U+PjJdKTw8MikpaWYocGU9MHxCMChjKSl7aWYoKDB8cCk+MCYmdTIoMHxLLDAscDw8MnwwKSxrTChiZSwwLEssMCksKDB8KG09MHxhW2dlPj4yXSkpPjApe2M9MCxwPTA7ZG97YVtwZSso''@;'; + put 'put ''cDw8Mik+PjJdPWMsYz1jKzErKDB8YVsoRz1LKyhwPDwyKXwwKT4+Ml0pfDAsYVtHPj4yXT0wLHA9cCsxfDB9d2hpbGUoKDB8cCk8KDB8bSkpO0Q9Y31lbHNlIEQ9MDtpZihSPTB8c2goRCsxfDAsMzIpKWlmKGFbQT4+Ml09UixhWyhHPUErNHwwKT4+Ml09RCxjPTB8a0woYmUsUixLLHBlKSl3''@;'; + put 'put ''PUssYj1wZSxtPUsscD1wZTtlbHNle2ZvcihhW0ErMjA+PjJdPTAsYz0wfGFbKG09YmUrMjR8MCk+PjJdLHA9MDtwPXArMXwwLCEoKDB8YVtjPj4yXSk8PS0xKTspYz1jKzMyfDA7aWYoTT0wfHNoKHAsMzIpKXtpZihhW0ErOD4+Ml09TSwoMHwobT0wfGFbKHA9MHxhW20+PjJdKT4+Ml0pKT4t''@;'; + put 'put ''MSl7Yz0wO2Rve2lmKGFbTSsoYzw8NSkrOD4+Ml09UisoYVtwZSsobTw8Mik+PjJdPDw1KSxhW00rKGM8PDUpKzEyPj4yXT1tLGFbKGI9TSsoYzw8NSkrMTZ8MCk+PjJdPTAsMHwodz0wfGFbKGs9cCsxMnwwKT4+Ml0pKXttPTA7ZG97SGU9bSxtPW0rMXwwfXdoaWxlKCgwfGFbdysoSGU8PDIp''@;'; + put 'put ''Pj4yXSk+LTEpO2lmKHc9MHxCMChtPDw9MiksYVtiPj4yXT13LCF3KXt3PUssYj1wZSxjPTEyLG09SyxwPXBlO2JyZWFrIHR9Z28oMHx3LDB8YVtrPj4yXSwwfG0pfWFbTSsoYzw8NSkrMjA+PjJdPWFbcCsxNj4+Ml0sYz1jKzF8MCxtPTB8YVsocD1wKzMyfDApPj4yXX13aGlsZSgoMHxtKT4t''@;'; + put 'put ''MSl9ZWxzZSBjPTA7YVtNKyhjPDw1KSs4Pj4yXT0wLGFbRz4+Ml09RCxhW0ErMTI+PjJdPVIrKGFbcGUrKGFbYVtiZSsyOD4+Ml0+PjJdPDwyKT4+Ml08PDUpLGFbQSs1Mj4+Ml09YVtnZT4+Ml0sYVtBKzU2Pj4yXT1mLHdnKExlKSxOaihPZSksRnQoSyksRnQocGUpLGFbbCs0Pj4yXT1BLGM9''@;'; + put 'put ''MDticmVhayBlfXc9SyxiPXBlLGM9MTIsbT1LLHA9cGV9ZWxzZSB3PUssYj1wZSxjPTEyLG09SyxwPXBlfWVsc2Ugdz1LLGI9cGUsYz0xMixtPUsscD0wO2Vsc2Ugdz1LLGI9MCxjPTEyLG09MCxwPTA7ZWxzZSB3PTAsYj0wLGM9MTIsbT0wLHA9MH1lbHNlIHc9MCxiPTAsYz0xMixtPTAscD0w''@;'; + put 'put ''O2Vsc2UgQT0wLHc9MCxiPTAsYz02LG09MCxwPTB9d2hpbGUoMCk7d2coTGUpLE5qKE9lKSwwfHcmJkZ0KG0pLDB8YiYmRnQocCksYVtsKzQ+PjJdPUEsJGNlKGwpfWVsc2UgYz0xMn13aGlsZSgwKTtyZXR1cm4gbGU9UmUsMHxjfSgxODgwMzYsOTg2MzcsMSkmJihhW2M+PjJdPTk4NjM3LCRy''@;'; + put 'put ''KDEsOTg2NjQsYykpLGFbNDcwMDhdPTE4ODAzNiksbjMoMHxhWyhrPWwrMjB8MCk+PjJdLDAsMCksTT1WZSsxMnwwLEQ9VmUrMjB8MCxSPVZlKzh8MCxHPVZlKzE2fDAsSz1WZSs0fDAsYz0wLG09MCxwPTAsZj0wO2U6Zm9yKDswfHlnKEhlLDIwMCwwfGFbaz4+Ml0pJiZtPDwyND4+MjQ9PTB8''@;'; + put 'put ''Yzw8MjQ+PjI0PT0wOyl7QT1IZSxiPWY7dDpmb3IoOzspe3c9cDtuOmZvcig7Oyl7Zm9yKDs7KXtpZigwfGxmZSgxODgwMzYsQSw0LFZlLDApKXtwPXcsZj1iO2NvbnRpbnVlIGV9aWYoZmVbQSsoMHxhW00+PjJdKT4+MF09MCxmZVtBKygwfGFbRD4+Ml0pPj4wXT0wLGY9QSsoMHxhW1I+PjJd''@;'; + put 'put ''KXwwLHA9QSsoMHxhW0c+PjJdKXwwLEE9QSsoMSsoMHxhW0s+PjJdKSl8MCwhKDB8WmkoZiwxNDExMTYpKSlicmVhaztpZighKDB8WmkoZiwxNDEwNDgpKSlicmVhayBuO2lmKCEoMHxaaShmLDk4NzExKSkmJihhW1dlPj4yXT1nZSxhW1dlKzQ+PjJdPWJlLGFbV2UrOD4+Ml09T2UsYVtXZSsx''@;'; + put 'put ''Mj4+Ml09TGUsND09KDB8aWwocCw5ODcxOSxXZSkpKSlicmVhayB0fWlmKGFbcWU+PjJdPXBlLGFbcWUrND4+Ml09UmUsMiE9KDB8aWwocCw5ODcwMSxxZSkpPyhhW290Pj4yXT1wZSwxPT0oMHxpbChwLDEwMTIwOSxvdCkpPyhmPTEscD0wfElUKCtfW3BlPj4zXSw5ODcwOCkpOihmPW0scD13''@;'; + put 'put ''KSk6KGY9MSxwPTB8SVQoK19bcGU+PjNdLFJlKSksYzw8MjQ+PjI0KXttPWYsZj1iO2NvbnRpbnVlIGV9Yz0wLG09Zix3PXB9aWYoYVtTdD4+Ml09cGUsYVtTdCs0Pj4yXT1SZSwyIT0oMHxpbChwLDk4NzAxLFN0KSk/KGFbbnQ+PjJdPXBlLDE9PSgwfGlsKHAsMTAxMjA5LG50KSk/KGM9MSxm''@;'; + put 'put ''PTB8SVQoK19bcGU+PjNdLDk4NzA4KSk6Zj1iKTooYz0xLGY9MHxJVCgrX1twZT4+M10sUmUpKSxtPDwyND4+MjQpe3A9dztjb250aW51ZSBlfW09MCxwPXcsYj1mfWM9MSxtPTEscD1+figrX1tPZT4+M10rMS0rX1tnZT4+M10pPj4+MCxmPX5+KCtfW0xlPj4zXSsxLStfW2JlPj4zXSk+Pj4w''@;'; + put 'put ''fWFbbCs0OD4+Ml09MCxhW2wrNDA+PjJdPXAsYVtsKzQ0Pj4yXT1mLGxlPWt0fWZ1bmN0aW9uIGNGKGwpe3ZhciBjLGYscCxtPTAsQT0wO2Y9bGUsbGU9bGUrMzJ8MCxjPWYsYVs0OCsobHw9MCk+PjJdPTAsbjMoMHxhWyhwPWwrMjB8MCk+PjJdLDAsMCksMHxmdW5jdGlvbiBWbWUobCxjKXts''@;'; + put 'put ''fD0wLGN8PTA7dmFyIGYscCx3LG09MCxBPTA7Zm9yKHc9bGUsbGU9bGUrMTA0MHwwLGY9dyxwPXcrMTZ8MDs7KXtpZighKDB8eWcocCwxMDI0LGwpKSl7bD0xO2JyZWFrfWlmKDB8KG09MHx0UyhwLDk4NjI3KSkpe0E9NDticmVha319cmV0dXJuIDQ9PSgwfEEpJiYoYVtmKzQ+PjJdPXAsYVtm''@;'; + put 'put ''Pj4yXT1tKzksYVtmKzg+PjJdPWwsbD0wfGZ1bmN0aW9uIGptZShsLGMpe2N8PTA7dmFyIHAsbSxmPTA7cmV0dXJuIG09bGUsbGU9bGUrMTAyNHwwLHA9bSxicmUobHw9MCksOTE9PSgwfChmPShmPTB8ZmVbYVtsPj4yXT4+MF0pPDwyND4+MjQ/Zjw8MjQ+PjI0OjI1NSYoMHxYRyhsKSkpKSYm''@;'; + put 'put ''KGFbbD4+Ml09MSsoMHxhW2w+PjJdKSxNQyhsLHApLDA9PSgwfFRUKHAsYykpKSYmKE1DKGwscCksMD09KDB8VFQocCxjKzh8MCkpKSYmKE1DKGwscCksMD09KDB8VFQocCxjKzE2fDApKSk/KE1DKGwscCksZj0wIT0oMHxUVChwLGMrMjR8MCkpJjEpOmY9MSxsZT1tLDB8Zn0oZixjKSksbGU9''@;'; + put 'put ''dywwfGx9KDB8YVtwPj4yXSxjKXx8KGFbbCszMj4+Ml09fn4oQT0rX1tjPj4zXSksYVtsKzM2Pj4yXT1+fihtPStfW2MrOD4+M10pLGFbbCs0MD4+Ml09fn4oK19bYysxNj4+M10tQSksYVtsKzQ0Pj4yXT1+figrX1tjKzI0Pj4zXS1tKSksbGU9Zn1mdW5jdGlvbiBmRihsKXt2YXIgYyxmLHAs''@;'; + put 'put ''bTttPWxlLGxlPWxlKzE2fDAsYz1tKzR8MCxmPW0sYVs0OCsobHw9MCk+PjJdPTAsbjMoMHxhWyhwPWwrMjB8MCk+PjJdLDYsMCksKDB8RWYoMHxhW3A+PjJdLDEsYykpPDwyND4+MjQmJigwfEVmKDB8YVtwPj4yXSwxLGYpKTw8MjQ+PjI0JiYoYVtsKzQwPj4yXT1hW2M+PjJdLGFbbCs0ND4+''@;'; + put 'put ''Ml09YVtmPj4yXSksbGU9bX1mdW5jdGlvbiBFZihsLGMsZil7bHw9MCxjfD0wO3ZhciBwPTAsbT0wO2ZvcihhWyhmfD0wKT4+Ml09MCxwPTA7Oyl7aWYocD4+PjA+PWM+Pj4wKXtwPTE7YnJlYWt9aWYobT0wfEdqKGwpLDB8RSQobCkpe3A9MDticmVha31hW2Y+PjJdPWFbZj4+Ml08PDh8bSxw''@;'; + put 'put ''PXArMXwwfXJldHVybiAwfHB9ZnVuY3Rpb24gYnJlKGwpe3ZhciBjPTA7Zm9yKGM9MHxhWyhsfD0wKT4+Ml07KDI1NSYoYz0oYz0wfGZlW2M+PjBdKTw8MjQ+PjI0P2M8PDI0Pj4yNDoyNTUmKDB8WEcobCkpKSk8PDI0Pj4yNCYmMHwkYygyNTUmYyk7KWFbbD4+Ml09Yz0xKygwfGFbbD4+Ml0p''@;'; + put 'put ''fDB9ZnVuY3Rpb24gWEcobCl7dmFyIGM9MDtyZXR1cm4gMHx5ZygwfGFbKGM9NCsobHw9MCl8MCk+PjJdLDEwMjQsMHxhW2wrOD4+Ml0pPyhhW2w+PjJdPWM9MHxhW2M+PjJdLGw9MHxmZVtjPj4wXSk6bD0wLDB8bH1mdW5jdGlvbiBNQyhsLGMpe2N8PTA7dmFyIGY9MCxwPTAsbT0wO2Zvcihi''@;'; + put 'put ''cmUobHw9MCksZj0wLHA9MHxhW2w+PjJdOyhwPShtPShwPTB8ZmVbcD4+MF0pPDwyND4+MjQ/cDw8MjQ+PjI0OjI1NSYoMHxYRyhsKSkpPDwyND4+MjQpJiY0Nj09KDB8cCl8KHArLTQ4fDApPj4+MDwxMDspaWYoZmVbYytmPj4wXT1tLGY9ZisxfDAsYVtsPj4yXT1wPTErKDB8YVtsPj4yXSl8''@;'; + put 'put ''MCwxMDIzPT0oMHxmKSl7Zj0xMDIzO2JyZWFrfWZlW2MrZj4+MF09MH1mdW5jdGlvbiBUVChsLGMpe3ZhciBmLHAsbTtyZXR1cm4gY3w9MCxwPWxlLGxlPWxlKzE2fDAsZj0raTMobHw9MCxtPXApLCgwfGFbbT4+Ml0pPT0oMHxsKT9sPTE6KF9bYz4+M109ZixsPTApLGxlPXAsMHxsfWZ1bmN0''@;'; + put 'put ''aW9uIElUKGwsYyl7bD0rbCxjfD0wO3ZhciBmPTA7ZG97aWYoMHxaaShjLDk4NzM1KSl7aWYoISgwfFppKGMsOTg3MzgpKSl7Zj1sKj0uNzUsbD1sPj0wPy41Oi0uNTticmVha31pZighKDB8WmkoYyw5ODc0MSkpKXtmPWwqPTEyLGw9bD49MD8uNTotLjU7YnJlYWt9aWYoMHxaaShjLDk4NzA4''@;'; + put 'put ''KSYmMHxaaShjLDk4NzQ0KSl7aWYoMHxaaShjLDk4NzQ2KSlyZXR1cm4gZj0yLjgzNDY0NTY2NjM5OTk5OTcqbCwwfCgoYz0wPT0oMHxaaShjLDk4NzQ5KSkpP35+KGYrKGY+PTA/LjU6LS41KSk6MCk7Zj1sKj0yOC4zNDY0NTY2NjQsbD1sPj0wPy41Oi0uNTticmVha31mPWw+PTA/LjU6LS41''@;'; + put 'put ''fWVsc2UgZj1sKj03MixsPWw+PTA/LjU6LS41fXdoaWxlKDApO3JldHVybiAwfH5+KGwrZil9ZnVuY3Rpb24gdHAobCxjLGYpe2x8PTAsY3w9MDt2YXIgcD0wLG09MDtmb3IoYVsoZnw9MCk+PjJdPTAscD0wOzspe2lmKHA+Pj4wPj1jPj4+MCl7cD0xO2JyZWFrfWlmKG09MHxHaihsKSwwfEUk''@;'; + put 'put ''KGwpKXtwPTA7YnJlYWt9YVtmPj4yXT1hW2Y+PjJdfG08PChwPDwzKSxwPXArMXwwfXJldHVybiAwfHB9ZnVuY3Rpb24gS0coKXt2YXIgbDtyZXR1cm4gc2koMCwxLDEwODIyNCwxMDU0OTMpLGZ1bmN0aW9uIHg5KGwsYyl7KGZ1bmN0aW9uIFE4KGwpe3ZhciBjPTAsZj0wO2M9MHxhWzMyKyhs''@;'; + put 'put ''fD0wKT4+Ml07ZTpkb3tpZigwfGMpZm9yKDs7KXtpZighKGY9MHxhW2M+PjJdKSlicmVhayBlOzEwMz09KDB8ZmVbZj4+MF0pJiYwfHRTKGYsMTExNTA5KSYmVTgobCwwLDB8YVtjKzQ+PjJdKSxjPWMrOHwwfX13aGlsZSgwKX0pKGx8PTApLGZlW2wrNDQ+PjBdPTAsZnVuY3Rpb24gc0UobCl7''@;'; + put 'put ''dmFyIGM7KGM9MHxSQShsfD0wLDIsMTExNTIyKSk/KGFbbCsxNDg+PjJdPWFbMTIrKDB8YVtjKzE2Pj4yXSk+PjJdLGw9MzAwKTpsPTk5OX0obCksZnVuY3Rpb24geWxlKGwpe3ZhciBjPTA7YVsoYz0xMDgrKGx8PTApfDApPj4yXT0wLGFbbCsxMTI+PjJdPTMyLGFbbCsxMTY+PjJdPS0xLGFb''@;'; + put 'put ''bCsxMjA+PjJdPTMzLGFbbCsxMjQ+PjJdPTYzLGFbbCsxMjg+PjJdPTU1LGFbbCsxMzI+PjJdPTAsYVtsKzEzNj4+Ml09MCxhW2wrMTQwPj4yXT0wLGM9MHxpcyhjLDB8YVs0NTgxXSksYVtsKzE0ND4+Ml09Y30obCl9KGw9MHxmdW5jdGlvbiBrQyhsLGMpe3ZhciBmO3JldHVybiBsfD0wLGN8''@;'; + put 'put ''PTAsMHwoZj0wfHZyKDM5MikpJiYoYVtmPj4yXT0yMDE1NixhW2YrMTY+PjJdPTIzLGFbZiszMj4+Ml09bCxhW2YrMzY+PjJdPWMpLDB8Zn0oMCwxKSksMHxsfWZ1bmN0aW9uIERUKGwsYyxmKXtjfD0wO3ZhciBwLG0sQSx3LGIsaz0wLE09MCxEPTAsUj0wO3JldHVybiBiPWxlLGxlPWxlKzMw''@;'; + put 'put ''NHwwLHc9YisyNHwwLEE9Yis4fDAscD1iLG09Yis0MHwwLDk5OSE9KDB8dEUobHw9MCxmfD0wKSk/LTE9PSgwfGZ1bmN0aW9uIERSKGwsYyl7bHw9MDt2YXIgbSxBLGIsZj0wLHA9MCx3PTA7cmV0dXJuIGI9bGUsbGU9bGUrMTZ8MCxtPWIsaDAoY3w9MCwxMzc0ODMsMjgwLDEpLGFbMTQ0Kygw''@;'; + put 'put ''fGFbKEE9YysxNnwwKT4+Ml0pPj4yXT1sLCgwfGRpKGMpKSE9KDB8YykmJihhWzE0NCsoMHxhWzE2KygwfGRpKGMpKT4+Ml0pPj4yXT1sKSxmPWwrMTcyfDAsMCE9KDB8KHA9MHxMaShjLDExMTIyNikpKSYmKGFbZj4+Ml09MCw5OTk9PSgwfHRFKGwscCkpKT8oZj0wfFdHKGwsMSxwKSxhW20+''@;'; + put 'put ''PjJdPXAsYVttKzQ+PjJdPWYsJHIoMSwxMTEyMzMsbSksZj0tMSk6KHA9MHxhW2Y+PjJdKT8oc2MoMSksZnVuY3Rpb24gV29lKGwsYyl7bHw9MCxjfD0wO3ZhciBtLGssTSxmPTAscD0wLEE9MCx3PTAsYj0wO009bGUsbGU9bGUrMTZ8MCxtPU0rOHwwLEE9TSxmPTB8dnIoOTYpLGFbOCsoMHxh''@;'; + put 'put ''WyhrPWwrMTZ8MCk+PjJdKT4+Ml09ZiwoKGY9MHxMaShsLDEwMTIxMykpfHwwfChmPTB8RHUoMTAxMjIyKSkpJiYoYj0zKSwzPT0oMHxiKSYmVnQoMTAxMjM0LDB8ZiwxKSxmPTI1NSYoMHxmdW5jdGlvbiBZb2UobCl7dmFyIGMsZjtyZXR1cm4gZj1sZSxsZT1sZSsxNnwwLGM9ZiwwIT0oMHx5''@;'; + put 'put ''MChsPTB8QmEobHw9MCwwfHNpKGwsMCwxMDE4MDcsMCksMTAxODE1KSwxMDE4MjEpKSYmMCE9KDB8eTAobCwxMDE4MjkpKSYmMCE9KDB8eTAobCwxMDE4MzYpKSYmMCE9KDB8eTAobCwxMDE4MzkpKSYmMCE9KDB8eTAobCwxMDE4NTApKSYmMCE9KDB8eTAobCwxMDE4NjEpKSYmMCE9KDB8eTAo''@;'; + put 'put ''bCwxMDE4NzEpKT8wIT0oMHx5MChsLDEwMTg4MikpJiYwIT0oMHx5MChsLDEwMTg4OCkpPygwIT0oMHx5MChsLDEwMTgxNSkpJiYwIT0oMHx5MChsLDEwMTg5MykpJiYoYVtjPj4yXT1sLCRyKDAsMTAxODk4LGMpKSxsPTApOmw9MjpsPTEsbGU9ZiwwfGx9KGwpKSxmZVsxMTUrKDB8YVtrPj4y''@;'; + put 'put ''XSk+PjBdPWYsZj0wfExpKGwsMTAxMjQ1KSxhWzQ3MTMzXT1mLDA9PSgwfGYpJiYoYVs0NzEzM109YVs0NzEzMl0pLHA9K01sKGwsMHxzaShsLDAsMTAxMjU1LDApLDAsMCksX1thWzgrKDB8YVtrPj4yXSk+PjJdPj4zXT1wLGY9MHxMaShsLDEwMTI2Myk7ZTpkb3tpZihmKXtzd2l0Y2goMHxm''@;'; + put 'put ''ZVtmPj4wXSl7Y2FzZSA3NjppZighKDB8WmkoZiwxMDEyNzEpKSl7Zj0xO2JyZWFrIGV9YnJlYWs7Y2FzZSA2NjppZighKDB8WmkoZiwxMDEyNzQpKSl7Zj0yO2JyZWFrIGV9YnJlYWs7Y2FzZSA4MjpmPShmPTA9PSgwfFppKGYsMTAxMjc3KSkpPzM6MDticmVhayBlO2RlZmF1bHQ6Zj0wO2Jy''@;'; + put 'put ''ZWFrIGV9Zj0wfWVsc2UgZj0wfXdoaWxlKDApO2FbMTE2KygwfGFbaz4+Ml0pPj4yXT1mPDwyfChjPDwyND4+MjQ9PTA/MDpmKSxwPStNbChsLDB8c2kobCwwLDEwMTI4MCwwKSwuMjUsLjAyKSxfW0E+PjNdPXAsYVsyNDgrKDB8YVtrPj4yXSk+PjJdPX5+KChwKj03MikrKHA+PTA/LjU6LS41''@;'; + put 'put ''KSksKGY9MHx2MihsLDB8c2kobCwwLDEwMTI4OCwwKSwwKSk/KGFbbT4+Ml09QSwwfGlsKGYsMTAxMjA5LG0pPyhwPStfW0E+PjNdKTwuMDImJihfW0E+PjNdPS4wMixwPS4wMik6KF9bQT4+M109LjUscD0uNSksMHx0UyhmLDEwMTI5NikmJihmZVsyNzYrKDB8YVtrPj4yXSk+PjBdPTEpKToo''@;'; + put 'put ''X1tBPj4zXT0uNSxwPS41KSxhWzI1MisoMHxhW2s+PjJdKT4+Ml09fn4oKHAqPTcyKSsocD49MD8uNTotLjUpKSxBPTI1NSYoMHxlcyhsLDB8c2kobCwwLDEwMTMwNCwwKSwwLDApKSxmZVsyNDMrKDB8YVtrPj4yXSk+PjBdPUEsQT0wfGtOKDB8djIobCwwfHNpKGwsMCwxMDEzMTQsMCksMCks''@;'; + put 'put ''MjA2NzYsMjA2OTIpLGFbMjQ0KygwfGFbaz4+Ml0pPj4yXT1BLGZ1bmN0aW9uIHVRKGwpe3ZhciBmLGM9MCxwPTA7Zj0wfExpKGx8PTAsMTAxNzY1KTtlOmRve2lmKDB8ZiYmKHA9MHxmZVtmPj4wXSxwPDwyND4+MjQpKXN3aXRjaChwPDwyND4+MjR8MCl7Y2FzZSA5NzppZihwPDwyND4+MjQh''@;'; + put 'put ''PTk3fHwwfFppKGYsMTAxNzcxKSlicmVhayBlO2FbODQrKDB8YVs4KygwfGFbbCsxNj4+Ml0pPj4yXSk+PjJdPTQ7YnJlYWsgZTtjYXNlIDk5OmlmKHA8PDI0Pj4yNCE9OTl8fDB8WmkoZiwxMDE3NzYpKWJyZWFrIGU7YVs4NCsoMHxhWzgrKDB8YVtsKzE2Pj4yXSk+PjJdKT4+Ml09MzticmVh''@;'; + put 'put ''ayBlO2Nhc2UgMTAxOmlmKHA8PDI0Pj4yNCE9MTAxfHwwfFppKGYsMTAxNzg1KSlicmVhayBlO2FbODQrKDB8YVs4KygwfGFbbCsxNj4+Ml0pPj4yXSk+PjJdPTU7YnJlYWsgZTtjYXNlIDEwMjppZihwPDwyND4+MjQhPTEwMnx8MHxaaShmLDEwMTc5MikpYnJlYWsgZTthWzg0KygwfGFbOCso''@;'; + put 'put ''MHxhW2wrMTY+PjJdKT4+Ml0pPj4yXT0yO2JyZWFrIGU7ZGVmYXVsdDppZighKChjPStrcChmKSk+MCkpYnJlYWsgZTthWzg0KyhsPTB8YVs4KygwfGFbbCsxNj4+Ml0pPj4yXSk+PjJdPTEsX1tsKzE2Pj4zXT1jO2JyZWFrIGV9fXdoaWxlKDApfShsKSxBPTB8Y1EobCwxMDEzMjQsNjQrKDB8''@;'; + put 'put ''YVs4KygwfGFbaz4+Ml0pPj4yXSl8MCksZmVbODArKGY9MHxhWzgrKDB8YVtrPj4yXSk+PjJdKT4+MF09QSxjUShsLDEwMTMyOSxmKzQ4fDApLGY9MHx0MSgwfExpKGwsMTAxMzM0KSksZmVbODIrKDB8YVs4KygwfGFbaz4+Ml0pPj4yXSk+PjBdPWYsZj0wfExpKGwsMTAxMzQxKTtkb3tpZihm''@;'; + put 'put ''KWY9OTA9PSgwfHIzKGYpKSYxLGI9Mjc7ZWxzZXtpZigwfChmPTB8TGkobCwxMDEzNDgpKSl7Zj0oMzJ8ZmVbZj4+MF0pPDwyND4+MjQ9PTEwOCYxLGI9Mjc7YnJlYWt9MHwoZj0wfExpKGwsMTAxMzYwKSkmJihmPTB8dDEoZiksYj0yNyl9fXdoaWxlKDApOzI3PT0oMHxiKSYmKGZlWzgxKygw''@;'; + put 'put ''fGFbOCsoMHxhW2s+PjJdKT4+Ml0pPj4wXT1mKSxhWzQ3MTM1XT0wfGtOKDB8TGkobCwxMDEzNzApLDIwNzA4LDIwNzI0KSxmZVsxOTQ5NTRdPTB8dDEoMHxMaShsLDEwMTM4MikpLGFbNDcxMzhdPTAsYVs0NzEzOV09MCxfWzI0KygwfGFbOCsoMHxhW2s+PjJdKT4+Ml0pPj4zXT0wLDMwPT0o''@;'; + put 'put ''MHwoYj0wIT0oMHwoZj0wfExpKGwsMTAxMzk0KSkpJiYwIT0oMHxmZVtmPj4wXSk/MzI6MzApKSYmMHwodz0wfExpKGwsMTAxMzk4KSkmJjB8ZmVbdz4+MF0mJihmPXcsYj0zMiksMzI9PSgwfGIpJiYocD0ra3AoZiksX1syNCsoMHxhWzgrKDB8YVtrPj4yXSk+PjJdKT4+M109cCksZmsobCks''@;'; + put 'put ''X1syMzI5NV09MWUzNyxhWzQ3MTQwXT0wfHNpKGwsMCwxMDE0MDksMCksYVs0NzE0M109MHxzaShsLDAsMTQxMDM0LDApLGFbNDcxNDRdPTB8c2kobCwwLDEwNTQ5NiwwKSxhWzQ3MTQ1XT0wfHNpKGwsMSwxNDEwNDgsMCksYVs0NzE0Nl09MHxzaShsLDEsMTQxMTE2LDApLGFbNDcxNDddPTB8''@;'; + put 'put ''c2kobCwxLDEwODIzMCwwKSxhWzQ3MTQ4XT0wfHNpKGwsMSwxNDA4MjMsMCksYVs0NzE0OV09MHxzaShsLDEsMTAxNDE4LDApLGFbNDcxNTddPTB8c2kobCwxLDE0MTA4MiwwKSxhWzQ3MTUwXT0wfHNpKGwsMSwxMDE0MjgsMCksYVs0NzE1MV09MHxzaShsLDEsMTAxNDM3LDApLGFbNDcxNTJd''@;'; + put 'put ''PTB8c2kobCwxLDEwMTQ0NiwwKSxiPTB8c2kobCwxLDEwODIyNCwwKSxhWzQ3MTU0XT1iLGJ8fChhWzQ3MTU0XT0wfHNpKGwsMSwxMDgyMjQsMTA1NDkzKSksYVs0NzE1NV09MHxzaShsLDEsMTAxNDU2LDApLGFbNDcxNThdPTB8c2kobCwxLDEwMTMwNCwwKSxhWzQ3MTcyXT0wfHNpKGwsMSwx''@;'; + put 'put ''MDE0NjMsMCksYVs0NzE2MV09MHxzaShsLDEsMTAxNDA5LDApLGFbNDcxNTNdPTB8c2kobCwxLDEwNTQ5NiwwKSxhWzQ3MTU5XT0wfHNpKGwsMSwxNDEwNzYsMCksYVs0NzE2MF09MHxzaShsLDEsMTAxNDcyLDApLGFbNDcxNjNdPTB8c2kobCwxLDEwMTQ4NCwwKSxhWzQ3MTYyXT0wfHNpKGws''@;'; + put 'put ''MSwxMDEzNDgsMCksYVs0NzE2NF09MHxzaShsLDEsMTAxNDg5LDApLGFbNDcxNjVdPTB8c2kobCwxLDE0MTAyNCwwKSxhWzQ3MTY2XT0wfHNpKGwsMSwxMzcyOTcsMCksYVs0NzE1Nl09MHxzaShsLDEsMTAxNTAwLDApLGFbNDcxNjddPTB8c2kobCwxLDEwMTUxMCwwKSxhWzQ3MTY4XT0wfHNp''@;'; + put 'put ''KGwsMSwxMDE1MTYsMCksYVs0NzE2OV09MHxzaShsLDEsMTAxNTIyLDApLGFbNDcxNzBdPTB8c2kobCwxLDEwMTUzMCwwKSxhWzQ3MTcxXT0wfHNpKGwsMSwxMDE1MzksMCksYVs0NzE3M109MHxzaShsLDEsMTQxMDM0LDApLGFbNDcxNzRdPTB8c2kobCwyLDEwMTU0MSwwKSxhWzQ3MTc2XT0w''@;'; + put 'put ''fHNpKGwsMiwxNDA4MjMsMCksYVs0NzE3N109MHxzaShsLDIsMTAxNDE4LDApLGFbNDcxNzldPTB8c2kobCwyLDEwMTQyOCwwKSxhWzQ3MTgwXT0wfHNpKGwsMiwxMDE0MzcsMCksYVs0NzE4MV09MHxzaShsLDIsMTAxNDQ2LDApLGFbNDcxODJdPTB8c2kobCwyLDEwODIyNCwwKSxhWzQ3MTgz''@;'; + put 'put ''XT0wfHNpKGwsMiwxMDE0NTYsMCksYVs0NzE5Ml09MHxzaShsLDIsMTAxNTQ4LDApLGFbNDcxODRdPTB8c2kobCwyLDEwMTU1OSwwKSxhWzQ3MTk1XT0wfHNpKGwsMiwxMDE1NjMsMCksYVs0NzE5Nl09MHxzaShsLDIsMTAxNTczLDApLGFbNDcxOTddPTB8c2kobCwyLDEwMTU4MywwKSxhWzQ3''@;'; + put 'put ''MTk4XT0wfHNpKGwsMiwxMDE1OTMsMCksYVs0NzE5OV09MHxzaShsLDIsMTAxNjAzLDApLGFbNDcyMDBdPTB8c2kobCwyLDEwMTYxNywwKSxhWzQ3MjAxXT0wfHNpKGwsMiwxMDE2MzEsMCksYVs0NzIwMl09MHxzaShsLDIsMTAxNjQ2LDApLGFbNDcyMDNdPTB8c2kobCwyLDEwMTY2MCwwKSxh''@;'; + put 'put ''WzQ3MTc1XT0wfHNpKGwsMiwxMDE2NzEsMCksYVs0NzE4N109MHxzaShsLDIsMTAxMzA0LDApLGFbNDcxODVdPTB8c2kobCwyLDE0MTA4MiwwKSxhWzQ3MTg2XT0wfHNpKGwsMiwxMDE2NzgsMCksYVs0NzE4OF09MHxzaShsLDIsMTAxNjg3LDApLGFbNDcxODldPTB8c2kobCwyLDEwMTY5Nyww''@;'; + put 'put ''KSxhWzQ3MTkwXT0wfHNpKGwsMiwxMDE1MTAsMCksYVs0NzE5MV09MHxzaShsLDIsMTAxNTIyLDApLGFbNDcyMDRdPTB8c2kobCwyLDEwMTcwOCwwKSxhWzQ3MjA1XT0wfHNpKGwsMiwxMDE3MTcsMCksYVs0NzIwNl09MHxzaShsLDIsMTAxNDYzLDApLGY9MHxmdW5jdGlvbiBGVChsKXt2YXIg''@;'; + put 'put ''cCxtLHcsYz0wLGY9MCxBPTA7cmV0dXJuIHc9bGUsbGU9bGUrMTZ8MCxtPXcrOHwwLHA9dywwIT0oMHwoYz0wfExpKGx8PTAsOTk3OTYpKSkmJjAhPSgwfGZlW2M+PjBdKXx8MCE9KDB8KGM9MHxMaShsLDk5ODA4KSkpJiYwIT0oMHxmZVtjPj4wXSk/KGY9YyxBPTUpOmM9MCw1PT0oMHxBKSYm''@;'; + put 'put ''KChjPTB8R2goZiwwLDEyMCkpfHwoYVtwPj4yXT0wfHRpKGwpLCRyKDAsOTk4MTUscCksYVttPj4yXT1mLCRyKDMsOTk4NjgsbSkpKSxsZT13LDB8Y30obCksYVs4OCsoMHxhWzgrKDB8YVtrPj4yXSk+PjJdKT4+Ml09ZiwwfChmPTB8TGkobCwxNDEwNjApKSYmMHxmZVtmPj4wXSYmKGw9MHxt''@;'; + put 'put ''MihmLGwpLGFbOTIrKDB8YVs4KygwfGFbaz4+Ml0pPj4yXSk+PjJdPWwpLGxlPU19KGMsMSZhW2FbbCsxODA+PjJdPj4yXSksZj0wfGFbOCsoMHxhW0E+PjJdKT4+Ml0sYVs4KygwfGFbMTYrKDB8ZGkoYykpPj4yXSk+PjJdPWYsZnVuY3Rpb24gb2xlKCl7dmFyIGwsYyxmO2w9bGUsbGU9bGUr''@;'; + put 'put ''MzJ8MCxjPWwrMTZ8MCxhWyhmPWwpPj4yXT0wLGFbZis0Pj4yXT0wLGFbZis4Pj4yXT0wLGFbZisxMj4+Ml09MCxhW2M+PjJdPWFbZj4+Ml0sYVtjKzQ+PjJdPWFbZis0Pj4yXSxhW2MrOD4+Ml09YVtmKzg+PjJdLGFbYysxMj4+Ml09YVtmKzEyPj4yXSxvSigwLGMpLGFbYz4+Ml09YVtmPj4y''@;'; + put 'put ''XSxhW2MrND4+Ml09YVtmKzQ+PjJdLGFbYys4Pj4yXT1hW2YrOD4+Ml0sYVtjKzEyPj4yXT1hW2YrMTI+PjJdLGNOKDAsYyksYVtjPj4yXT1hW2Y+PjJdLGFbYys0Pj4yXT1hW2YrND4+Ml0sYVtjKzg+PjJdPWFbZis4Pj4yXSxhW2MrMTI+PjJdPWFbZisxMj4+Ml0sS1EoMCxjKSxsZT1sfSgp''@;'; + put 'put ''LDB8KGY9MHxhW3A+PjJdKSYmKENvWzEyNyZmXShjKSwwfCh3PTB8YVtwKzQ+PjJdKSkmJihhWzE0OCsoMHxhW0E+PjJdKT4+Ml09dyksc2MoMCksZj0wKTpmPS0xLGxlPWIsMHxmfShsLGMpKT9sPS0xOihmPTE2KyhsPTB8YVtjKzE2Pj4yXSl8MCwwfGZlWzgxKygwfGFbbCs4Pj4yXSk+PjBd''@;'; + put 'put ''PyhNPStfW2Y+PjNdLEQ9K19bbCs0MD4+M10sUj0rX1tsKzMyPj4zXSxhW0E+PjJdPX5+KChrPStfW2wrMjQ+PjNdKSsoaz49MD8uNTotLjUpKSxhW0ErND4+Ml09fn4oTSsoTT49MD8uNTotLjUpKSxhW0ErOD4+Ml09fn4oRCsoRD49MD8uNTotLjUpKSxhW0ErMTI+PjJdPX5+KFIrKFI+PTA/''@;'; + put 'put ''LjU6LS41KSksb28obSw5ODg5OSxBKSk6KEQ9K19bbCsyND4+M10sTT0rX1tsKzMyPj4zXSxrPStfW2wrNDA+PjNdLGFbdz4+Ml09fn4oKFI9K19bZj4+M10pKyhSPj0wPy41Oi0uNSkpLGFbdys0Pj4yXT1+fihEKyhEPj0wPy41Oi0uNSkpLGFbdys4Pj4yXT1+fihNKyhNPj0wPy41Oi0uNSkp''@;'; + put 'put ''LGFbdysxMj4+Ml09fn4oaysoaz49MD8uNTotLjUpKSxvbyhtLDk4ODk5LHcpKSxJNShjLDEwMjY3MSxtLDE5NTA1OSksbD0wKToobD0wfFdHKGwsMSxmKSxhW3A+PjJdPWYsYVtwKzQ+PjJdPWwsJHIoMSwxMTEyMzMscCksbD0tMSksbGU9YiwwfGx9ZnVuY3Rpb24ga3JlKGwsYyxmLHAsbSl7''@;'; + put 'put ''cHw9MCxtfD0wO3ZhciB3LGssRCxBPTAsYj0wLE09MDtEPWxlLGxlPWxlKzE2fDAsdz1EKzh8MCxBPUQsYz0wfGFbNjArKGN8PTApPj4yXSx4VChsfD0wLGZ8PTApLGFbNTYrKGs9MHxhW2wrMTY0Pj4yXSk+PjJdPTB8QzkoaywwfGFbays1Mj4+Ml0pLDAhPSgwfGgwKGMsMTM3NDgzLDAsMSkp''@;'; + put 'put ''JiYwIT0oMHxhWzgrKDB8YVtjKzE2Pj4yXSk+PjJdKXx8NjcxMDg4NjQmYVtrKzE1Mj4+Ml0/TT01OihYbSg5ODkxMSxBKSxjPS0xKTtkb3tpZig1PT0oMHxNKSl7aWYoMHxwJiYoYj0wfEIwKDQwOTYpLGFbcD4+Ml09YiwwfGIpKXthWyhBPWsrNDB8MCk+PjJdPWIsYVtrKzQ0Pj4yXT00MDk2''@;'; + put 'put ''LGFbKGY9ays0OHwwKT4+Ml09MCxjPTB8ZzIobCxjKSxrOShrKSxjfHwoYVtwPj4yXT1hW0E+PjJdLGFbbT4+Ml09YVtmPj4yXSksbEYobCk7YnJlYWt9JHIoMSw5ODkzMix3KSxjPS0xfX13aGlsZSgwKTtyZXR1cm4gbGU9RCwwfGN9ZnVuY3Rpb24gTFQobCxjKXtVOChsfD0wLDAsY3w9MCl9''@;'; + put 'put ''ZnVuY3Rpb24gQkEobCxjLGYscCl7bHw9MCxjfD0wLGZ8PTAscHw9MDt2YXIgSGUsVmUscWUsbnQsV2Usa3QsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAsSz0wLHBlPTAsZ2U9MCxiZT0wLE9lPTAsTGU9MCxSZT0wLG90PTAsU3Q9MDtrdD1sZSxsZT1sZSs0Mjg4fDAsV2U9''@;'; + put 'put ''a3QrOHwwLG50PWt0LG90PTQsU3Q9MHxCMCg0MCksYVtTdD4+Ml09MCxIZT1rdCs0MTUyfDAsVmU9a3QrNDE0OHwwLHFlPWt0KzQxMjh8MCxiPWt0KzQxMTJ8MCxrPWt0KzE2fDAsTW49MCx3PTB8YTAoMjQsMHxsKSxtPU1uLE1uPTAsMCE9KDB8bSkmMCE9KDB8eG4pPygoQT0wfGdpKDB8YVtt''@;'; + put 'put ''Pj4yXSwwfFN0LDB8b3QpKXx8emUoMHxtLDB8eG4pLERuPXhuKTpBPS0xO2U6ZG97aWYoMSE9KDB8QSkpe2lmKCF3KXthW2M+PjJdPTAsbT0wO2JyZWFrfWlmKE1uPTAsRD0wfEpzKDI5LDB8ZiwwfFZlLDB8SGUpLG09TW4sTW49MCwwIT0oMHxtKSYwIT0oMHx4bik/KChBPTB8Z2koMHxhW20+''@;'; + put 'put ''PjJdLDB8U3QsMHxvdCkpfHx6ZSgwfG0sMHx4biksRG49eG4pOkE9LTEsMSE9KDB8QSkpaWYoTW49MCxNPTB8YTAoMjMsNDApLG09TW4sTW49MCwwIT0oMHxtKSYwIT0oMHx4bik/KChBPTB8Z2koMHxhW20+PjJdLDB8U3QsMHxvdCkpfHx6ZSgwfG0sMHx4biksRG49eG4pOkE9LTEsMSE9KDB8''@;'; + put 'put ''QSkpaWYoTW49MCxjdSg3LDB8cWUsMHxiLDB8aywyNCw4NSksbT1NbixNbj0wLDAhPSgwfG0pJjAhPSgwfHhuKT8oKEE9MHxnaSgwfGFbbT4+Ml0sMHxTdCwwfG90KSl8fHplKDB8bSwwfHhuKSxEbj14bik6QT0tMSwxIT0oMHxBKSlpZihNbj0wLGY9MHxhMCgyNSwwfGwpLG09TW4sTW49MCww''@;'; + put 'put ''IT0oMHxtKSYwIT0oMHx4bik/KChBPTB8Z2koMHxhW20+PjJdLDB8U3QsMHxvdCkpfHx6ZSgwfG0sMHx4biksRG49eG4pOkE9LTEsMSE9KDB8QSkpe2Zvcih3PTB8YVsoYj1xZSsxNnwwKT4+Ml0sbT1mO207KXtpZihNbj0wLEZsKDB8dywwfG0sMCksQT1NbixNbj0wLDAhPSgwfEEpJjAhPSgw''@;'; + put 'put ''fHhuKT8oKGY9MHxnaSgwfGFbQT4+Ml0sMHxTdCwwfG90KSl8fHplKDB8QSwwfHhuKSxEbj14bik6Zj0tMSwxPT0oMHxmKSl7UmU9MCxMZT1iLE9lPU0sYmU9RCxtPURuLE09MTU7YnJlYWsgZX1pZihNbj0wLG09MHxGbCg4NiwwfGwsMHxtKSxBPU1uLE1uPTAsMCE9KDB8QSkmMCE9KDB8eG4p''@;'; + put 'put ''PygoZj0wfGdpKDB8YVtBPj4yXSwwfFN0LDB8b3QpKXx8emUoMHxBLDB8eG4pLERuPXhuKTpmPS0xLDE9PSgwfGYpKXtSZT0wLExlPWIsT2U9TSxiZT1ELG09RG4sTT0xNTticmVhayBlfX1TdD0wfFBmKDE4ODA2OCwxLDB8U3QsMHxvdCksb3Q9RG4sbT1Nbj0wLE1uPTAsMCE9KDB8bSkmMCE9''@;'; + put 'put ''KDB8eG4pPygoQT0wfGdpKDB8YVttPj4yXSwwfFN0LDB8b3QpKXx8emUoMHxtLDB8eG4pLERuPXhuKTpBPS0xLDE9PSgwfEEpPyhSZT1NLExlPWIsT2U9TSxiZT1ELG09RG4sTT0xNSk6KFJlPU0sTGU9YixPZT1NLGJlPUQsbT0wLE09MTUpfWVsc2UgUmU9MCxMZT0wLE9lPU0sYmU9RCxtPURu''@;'; + put 'put ''LE09MTU7ZWxzZSBSZT0wLExlPTAsT2U9TSxiZT1ELG09RG4sTT0xNTtlbHNlIFJlPTAsTGU9MCxPZT1NLGJlPUQsbT1EbixNPTE1O2Vsc2UgUmU9MCxMZT0wLE9lPTAsYmU9RCxtPURuLE09MTV9ZWxzZSBSZT0wLExlPTAsT2U9MCxiZT0wLG09RG4sTT0xNX13aGlsZSgwKTtkb3tpZigxNT09''@;'; + put 'put ''KDB8TSkpe2U6Zm9yKDs7KXt0OmRve2lmKG0pTT0xLGs9MCxEPVJlLGI9MCx3PU9lLGY9T2U7ZWxzZXtpZihNbj0wLGY9MHxhMCgyNSwwfGwpLG09TW4sTW49MCwwIT0oMHxtKSYwIT0oMHx4bik/KChBPTB8Z2koMHxhW20+PjJdLDB8U3QsMHxvdCkpfHx6ZSgwfG0sMHx4biksRG49eG4pOkE9''@;'; + put 'put ''LTEsMT09KDB8QSkpe209RG4sYmU9Sz1iZSxPZT1wZT1PZSxMZT1nZT1MZSxSZT1NPVJlLE09MTU7Y29udGludWUgZX1mb3IoZ2U9YmUrKDB8YVtWZT4+Ml0pfDAsaz0wLE09MCxiPTA7Zjspe2lmKE1uPTAsbT0wfEZsKDB8YVtMZT4+Ml0sMHxmLC0xKSxBPU1uLE1uPTAsMCE9KDB8QSkmMCE9''@;'; + put 'put ''KDB8eG4pPygodz0wfGdpKDB8YVtBPj4yXSwwfFN0LDB8b3QpKXx8emUoMHxBLDB8eG4pLERuPXhuKTp3PS0xLDE9PSgwfHcpKXttPURuLGJlPUs9YmUsT2U9cGU9T2UsTGU9Z2U9TGUsUmU9TT1SZSxNPTE1O2NvbnRpbnVlIGV9aWYoMD09KDB8bSkmJjM9PSgwfGZlWzExOSsoMHxhW2YrMTY+''@;'; + put 'put ''PjJdKT4+MF0pKXtpZihNKXc9TTtlbHNle2lmKE1uPTAsYVtudD4+Ml09YixKcygzMCwwfGdlLDEzNzM5NSwwfG50KSxtPU1uLE1uPTAsMCE9KDB8bSkmMCE9KDB8eG4pPygoQT0wfGdpKDB8YVttPj4yXSwwfFN0LDB8b3QpKXx8emUoMHxtLDB8eG4pLERuPXhuKTpBPS0xLDE9PSgwfEEpKXtt''@;'; + put 'put ''PURuLGJlPUs9YmUsT2U9cGU9T2UsTGU9Z2U9TGUsUmU9TT1SZSxNPTE1O2NvbnRpbnVlIGV9aWYoTW49MCx3PTB8SnMoMzEsMHxsLDB8YmUsMSksbT1NbixNbj0wLDAhPSgwfG0pJjAhPSgwfHhuKT8oKEE9MHxnaSgwfGFbbT4+Ml0sMHxTdCwwfG90KSl8fHplKDB8bSwwfHhuKSxEbj14bik6''@;'; + put 'put ''QT0tMSwxPT0oMHxBKSl7bT1EbixiZT1LPWJlLE9lPXBlPU9lLExlPWdlPUxlLFJlPU09UmUsTT0xNTtjb250aW51ZSBlfWlmKE1uPTAsdGEoNTMsMHx3LDEzNzQ4MywyODAsMSksbT1NbixNbj0wLDAhPSgwfG0pJjAhPSgwfHhuKT8oKEE9MHxnaSgwfGFbbT4+Ml0sMHxTdCwwfG90KSl8fHpl''@;'; + put 'put ''KDB8bSwwfHhuKSxEbj14bik6QT0tMSwxPT0oMHxBKSl7bT1EbixiZT1LPWJlLE9lPXBlPU9lLExlPWdlPUxlLFJlPU09UmUsTT0xNTtjb250aW51ZSBlfWFbUmUrKGI8PDIpPj4yXT13LGs9MSxiPWIrMXwwfWlmKE1uPTAsdGEoNTQsMHxsLDB8ZiwwfHcsMHxxZSksbT1NbixNbj0wLDAhPSgw''@;'; + put 'put ''fG0pJjAhPSgwfHhuKT8oKEE9MHxnaSgwfGFbbT4+Ml0sMHxTdCwwfG90KSl8fHplKDB8bSwwfHhuKSxEbj14bik6QT0tMSwxPT0oMHxBKSl7bT1EbixiZT1LPWJlLE9lPXBlPU9lLExlPWdlPUxlLFJlPU09UmUsTT0xNTtjb250aW51ZSBlfX1lbHNlIHc9TTtpZihNbj0wLGY9MHxGbCg4Niww''@;'; + put 'put ''fGwsMHxmKSxtPU1uLE1uPTAsMCE9KDB8bSkmMCE9KDB8eG4pPygoQT0wfGdpKDB8YVttPj4yXSwwfFN0LDB8b3QpKXx8emUoMHxtLDB8eG4pLERuPXhuKTpBPS0xLDE9PSgwfEEpKXttPURuLGJlPUs9YmUsT2U9cGU9T2UsTGU9Z2U9TGUsUmU9TT1SZSxNPTE1O2NvbnRpbnVlIGV9TT13fWlm''@;'; + put 'put ''KE1uPTAsZj0wfGEwKDI1LDB8bCksbT1NbixNbj0wLDAhPSgwfG0pJjAhPSgwfHhuKT8oKEE9MHxnaSgwfGFbbT4+Ml0sMHxTdCwwfG90KSl8fHplKDB8bSwwfHhuKSxEbj14bik6QT0tMSwxPT0oMHxBKSl7bT1EbixiZT1LPWJlLE9lPXBlPU9lLExlPWdlPUxlLFJlPU09UmUsTT0xNTtjb250''@;'; + put 'put ''aW51ZSBlfWZvcih3PTEwLEQ9UmUsUj1PZSxHPU9lLHBlPU9lOzspe2lmKCFmKXtNPTAsdz1HLGY9cGU7YnJlYWsgdH1pZihNbj0wLG09MHxGbCgwfGFbTGU+PjJdLDB8ZiwtMSksQT1NbixNbj0wLDAhPSgwfEEpJjAhPSgwfHhuKT8oKE09MHxnaSgwfGFbQT4+Ml0sMHxTdCwwfG90KSl8fHpl''@;'; + put 'put ''KDB8QSwwfHhuKSxEbj14bik6TT0tMSwxPT0oMHxNKSl7bT1EbixiZT1LPWJlLE9lPXBlPU9lLExlPWdlPUxlLFJlPU09UmUsTT0xNTtjb250aW51ZSBlfWlmKG0pTT1wZTtlbHNle2lmKE1uPTAsYVtXZT4+Ml09YixKcygzMCwwfGdlLDEzNzM5NSwwfFdlKSxtPU1uLE1uPTAsMCE9KDB8bSkm''@;'; + put 'put ''MCE9KDB8eG4pPygoQT0wfGdpKDB8YVttPj4yXSwwfFN0LDB8b3QpKXx8emUoMHxtLDB8eG4pLERuPXhuKTpBPS0xLDE9PSgwfEEpKXttPURuLGJlPUs9YmUsT2U9cGU9T2UsTGU9Z2U9TGUsUmU9TT1SZSxNPTE1O2NvbnRpbnVlIGV9aWYoTW49MCxLPTB8SnMoMzEsMHxsLDB8YmUsMSksbT1N''@;'; + put 'put ''bixNbj0wLDAhPSgwfG0pJjAhPSgwfHhuKT8oKEE9MHxnaSgwfGFbbT4+Ml0sMHxTdCwwfG90KSl8fHplKDB8bSwwfHhuKSxEbj14bik6QT0tMSwxPT0oMHxBKSl7bT1EbixiZT1LPWJlLE9lPXBlPU9lLExlPWdlPUxlLFJlPU09UmUsTT0xNTtjb250aW51ZSBlfWlmKE1uPTAsdGEoNTMsMHxL''@;'; + put 'put ''LDEzNzQ4MywyODAsMSksQT1NbixNbj0wLDAhPSgwfEEpJjAhPSgwfHhuKT8oKG09MHxnaSgwfGFbQT4+Ml0sMHxTdCwwfG90KSl8fHplKDB8QSwwfHhuKSxEbj14bik6bT0tMSwxPT0oMHxtKSl7bT1EbixiZT1LPWJlLE9lPXBlPU9lLExlPWdlPUxlLFJlPU09UmUsTT0xNTtjb250aW51ZSBl''@;'; + put 'put ''fWlmKE1uPTAsdGEoNTQsMHxsLDB8ZiwwfEssMHxxZSksbT1NbixNbj0wLDAhPSgwfG0pJjAhPSgwfHhuKT8oKEE9MHxnaSgwfGFbbT4+Ml0sMHxTdCwwfG90KSl8fHplKDB8bSwwfHhuKSxEbj14bik6QT0tMSwxPT0oMHxBKSl7bT1EbixiZT1LPWJlLE9lPXBlPU9lLExlPWdlPUxlLFJlPU09''@;'; + put 'put ''UmUsTT0xNTtjb250aW51ZSBlfWlmKCgwfGIpPT0oMHx3KSl7aWYodz1iPDwxLE1uPTAsTT0wfEZsKDg3LDB8UixiPDwzfDApLG09TW4sTW49MCwwIT0oMHxtKSYwIT0oMHx4bik/KChBPTB8Z2koMHxhW20+PjJdLDB8U3QsMHxvdCkpfHx6ZSgwfG0sMHx4biksRG49eG4pOkE9LTEsMT09KDB8''@;'; + put 'put ''QSkpe209RG4sYmU9Sz1iZSxPZT1wZT1PZSxMZT1nZT1MZSxSZT1NPVJlLE09MTU7Y29udGludWUgZX1tPU0sUj1NLEc9TSxBPU19ZWxzZSBtPUQsQT1wZTthW20rKGI8PDIpPj4yXT1LLEQ9bSxiPWIrMXwwLE09QX1pZihNbj0wLGY9MHxGbCg4NiwwfGwsMHxmKSxtPU1uLE1uPTAsMCE9KDB8''@;'; + put 'put ''bSkmMCE9KDB8eG4pPygoQT0wfGdpKDB8YVttPj4yXSwwfFN0LDB8b3QpKXx8emUoMHxtLDB8eG4pLERuPXhuKTpBPS0xLDE9PSgwfEEpKXttPURuLGJlPUs9YmUsT2U9cGU9T2UsTGU9Z2U9TGUsUmU9TT1SZSxNPTE1O2NvbnRpbnVlIGV9cGU9TX19fXdoaWxlKDApO2lmKE1uPTAsc3MoMTA4''@;'; + put 'put ''LDB8cWUpLG09TW4sTW49MCwwIT0oMHxtKSYwIT0oMHx4bik/KChBPTB8Z2koMHxhW20+PjJdLDB8U3QsMHxvdCkpfHx6ZSgwfG0sMHx4biksRG49eG4pOkE9LTEsMSE9KDB8QSkpaWYoKDB8YmUpPT0oMHxIZSl8fChNbj0wLHNzKDEwNSwwfGJlKSxtPU1uLE1uPTAsMCE9KDB8bSkmMCE9KDB8''@;'; + put 'put ''eG4pPygoQT0wfGdpKDB8YVttPj4yXSwwfFN0LDB8b3QpKXx8emUoMHxtLDB8eG4pLERuPXhuKTpBPS0xLDEhPSgwfEEpKSl7aWYoIU0pe2lmKE1uPTAsbT0wfEZsKDg3LDB8ZixiPDwyfDApLEE9TW4sTW49MCwwIT0oMHxBKSYwIT0oMHx4bik/KChmPTB8Z2koMHxhW0E+PjJdLDB8U3QsMHxv''@;'; + put 'put ''dCkpfHx6ZSgwfEEsMHx4biksRG49eG4pOmY9LTEsMT09KDB8Zikpe209RG4sYmU9Sz1iZSxPZT1wZT1PZSxMZT1nZT1MZSxSZT1NPVJlLE09MTU7Y29udGludWV9TT01ODticmVha31mb3IoYVtjPj4yXT0wLG09MDshKCgwfG0pPj0oMHxiKSk7KXtpZihNbj0wLGEwKDI2LDB8YVtEKyhtPDwy''@;'; + put 'put ''KT4+Ml0pLEE9TW4sTW49MCwwIT0oMHxBKSYwIT0oMHx4bik/KChmPTB8Z2koMHxhW0E+PjJdLDB8U3QsMHxvdCkpfHx6ZSgwfEEsMHx4biksRG49eG4pOmY9LTEsMT09KDB8Zikpe209RG4sYmU9Sz1iZSxPZT1wZT1PZSxMZT1nZT1MZSxSZT1NPVJlLE09MTU7Y29udGludWUgZX1tPW0rMXww''@;'; + put 'put ''fWlmKE1uPTAsc3MoMTA1LDB8dyksbT1NbixNbj0wLDAhPSgwfG0pJjAhPSgwfHhuKT8oKEE9MHxnaSgwfGFbbT4+Ml0sMHxTdCwwfG90KSl8fHplKDB8bSwwfHhuKSxEbj14bik6QT0tMSwxIT0oMHxBKSl7TT01NjticmVha31tPURuLGJlPUs9YmUsT2U9cGU9T2UsTGU9Z2U9TGUsUmU9TT1S''@;'; + put 'put ''ZSxNPTE1fWVsc2UgbT1EbixiZT1LPWJlLE9lPXBlPU9lLExlPWdlPUxlLFJlPU09UmUsTT0xNTtlbHNlIG09RG4sYmU9Sz1iZSxPZT1wZT1PZSxMZT1nZT1MZSxSZT1NPVJlLE09MTV9aWYoNTY9PSgwfE0pKXttPTA7YnJlYWt9aWYoNTg9PSgwfE0pKXthW2M+PjJdPWIsZmVbcD4+MF09azti''@;'; + put 'put ''cmVha319fXdoaWxlKDApO3JldHVybiBGdCgwfFN0KSxsZT1rdCwwfG19ZnVuY3Rpb24gU3JlKGwsYyxmKXtjfD0wLGZ8PTA7dmFyIHAsbT0wO3JldHVybiAwIT0oMHwobHw9MCkpJiYwIT0oMHxmdW5jdGlvbiBINihsKXtsfD0wO3ZhciBjPTA7ZTpmb3IoOzspe3N3aXRjaChjPWwsbD1sKzF8''@;'; + put 'put ''MCwoYz0wfGZlW2M+PjBdKTw8MjQ+PjI0KXtjYXNlIDk1OmNvbnRpbnVlIGU7Y2FzZSAwOmw9MTticmVhayBlfWlmKCEoMHxpdigyNTUmYykpKXtsPTA7YnJlYWt9fXJldHVybiAwfGx9KGwpKXx8KGw9OTg5ODgpLCgwfChwPTB8VW8obCkpKT49MTA0PyhmPTB8UW4ocCsyNXwwKSk/bT02OmY9''@;'; + put 'put ''MDptPTYsNj09KDB8bSkmJihpZChmLGwpLGFbYz4+Ml09cCksMHxmfWZ1bmN0aW9uIGVXKGwsYyxmLHAsbSl7bHw9MCxwfD0wLG18PTAsYVsoY3w9MCk+PjJdPWZ8PTAsYVtjKzQ+PjJdPWYrNDA5NixhW2MrMTI+PjJdPTAsYVtjKzg+PjJdPTAsYVtsPj4yXT1jLGFbbCs0Pj4yXT1jLGFbbCs4''@;'; + put 'put ''Pj4yXT1mLGFbbCsxMj4+Ml09cCxhW2wrMTY+PjJdPW19ZnVuY3Rpb24gdFcobCxjLGYscCl7bHw9MCxmfD0wO3ZhciBiLGssbT0wLEE9MCx3PTAsTT0wO25XKHB8PTAsY3w9MCksYj1wKzEyfDAsaz1wKzE2fDAsYz0wO2U6Zm9yKDtNPTB8RXJlKHApLE07KWZvcihjPWMrMXwwLG09MHxhW2I+''@;'; + put 'put ''PjJdLDB8bSYmR3NbNjMmbV0oTSxmKSx3PTB8U3MobCxNKTs7KXtpZighdyljb250aW51ZSBlOygwfChtPTB8YVsoMz09KDB8KEE9MyZhW3c+PjJdKSk/dzp3KzQ4fDApKzQwPj4yXSkpPT0oMHxNKSYmKG09MHxhWygyPT0oMHxBKT93OncrLTQ4fDApKzQwPj4yXSksMHxCaVsxMjcmYVtrPj4y''@;'; + put 'put ''XV0obSwtMSl8fG5XKHAsbSksdz0wfE5zKGwsdyxNKX1yZXR1cm4gMHxjfWZ1bmN0aW9uIE1yZShsKXt2YXIgYz0wO2ZvcihsPTB8YVsxMisoMHxhWyhsfD0wKT4+Ml0pPj4yXTtsOyljPTB8YVtsKzEyPj4yXSxabWUobCksbD1jfWZ1bmN0aW9uIFptZShsKXtGdCgwfGFbKGx8PTApPj4yXSks''@;'; + put 'put ''RnQobCl9ZnVuY3Rpb24gblcobCxjKXtjfD0wO3ZhciBtLEEsYixNLGY9MCxwPTAsdz0wLGs9MDtpZihNPWxlLGxlPWxlKzE2fDAsaz1NKzh8MCxtPU0sKDB8YVsoQT04KyhsfD0wKXwwKT4+Ml0pPT0oMHxhWzQrKGY9MHxhWyhiPWwrNHwwKT4+Ml0pPj4yXSkpe2Y9MHxhW2YrMTI+PjJdO2Rv''@;'; + put 'put ''e2lmKGYpdz1mO2Vsc2V7aWYoKHA9MHxRbigxNikpfHwoJHIoMSw5ODk2OSxtKSx6ZSgxODgwNjgsMSkpLGFbcCs4Pj4yXT1hW2I+PjJdLGFbcCsxMj4+Ml09MCxmPTB8UW4oNGU2KSxhW3A+PjJdPWYsZil7YVtwKzQ+PjJdPWYrNGU2LGFbMTIrKDB8YVtiPj4yXSk+PjJdPXAsdz1wO2JyZWFr''@;'; + put 'put ''fSRyKDEsOTg5NjksayksemUoMTg4MDY4LDEpfX13aGlsZSgwKTthW2I+PjJdPXcsYVtBPj4yXT1hW3c+PjJdfUJpWzEyNyZhW2wrMTY+PjJdXShjLDEpLGFbQT4+Ml09NCsoaz0wfGFbQT4+Ml0pLGFbaz4+Ml09YyxsZT1NfWZ1bmN0aW9uIEVyZShsKXt2YXIgZixwLG0sYz0wLEE9MDtyZXR1''@;'; + put 'put ''cm4oMHwoYz0wfGFbKG09OCsobHw9MCl8MCk+PjJdKSk9PSgwfGFbKHA9MHxhWyhmPWwrNHwwKT4+Ml0pPj4yXSk/KDB8cCk9PSgwfGFbbD4+Ml0pP2M9MDooYVtmPj4yXT1jPTB8YVtwKzg+PjJdLGFbbT4+Ml09Yz0wfGFbYys0Pj4yXSxBPTQpOkE9NCw0PT0oMHxBKSYmKGFbbT4+Ml09Yz1j''@;'; + put 'put ''Ky00fDAsYz0wfGFbYz4+Ml0pLDB8Y31mdW5jdGlvbiByVyhsLGMsZil7bHw9MCxjfD0wLGZ8PTA7dmFyIGJlLE9lLExlLFJlLHFlLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxLPTAscGU9MCxnZT0wLEhlPTAsVmU9MDtxZT1sZSxsZT1sZSs0MjcyfDAsUmU9cWUs''@;'; + put 'put ''SGU9NCxWZT0wfEIwKDQwKSxhW1ZlPj4yXT0wLGJlPXFlKzQxNDR8MCxPZT1xZSs0MTQwfDAsTGU9cWUrNDEyMHwwLHc9cWUrNDEwNHwwLGI9cWUrOHwwLE1uPTAsbT0wfGEwKDI0LDB8bCksQT1NbixNbj0wLDAhPSgwfEEpJjAhPSgwfHhuKT8oKHA9MHxnaSgwfGFbQT4+Ml0sMHxWZSwwfEhl''@;'; + put 'put ''KSl8fHplKDB8QSwwfHhuKSxEbj14bik6cD0tMTtlOmRve2lmKDEhPSgwfHApKWlmKG0paWYoTW49MCxNPTB8SnMoMjksMHxmLDB8T2UsMHxiZSkscD1NbixNbj0wLDAhPSgwfHApJjAhPSgwfHhuKT8oZj0wfGdpKDB8YVtwPj4yXSwwfFZlLDB8SGUpLGZ8fHplKDB8cCwwfHhuKSxEbj14bik6''@;'; + put 'put ''Zj0tMSwxIT0oMHxmKSlpZihNbj0wLGs9MHxhMCgyMyw0MCkscD1NbixNbj0wLDAhPSgwfHApJjAhPSgwfHhuKT8oZj0wfGdpKDB8YVtwPj4yXSwwfFZlLDB8SGUpLGZ8fHplKDB8cCwwfHhuKSxEbj14bik6Zj0tMSwxIT0oMHxmKSlpZihNbj0wLGN1KDcsMHxMZSwwfHcsMHxiLDI0LDg1KSxw''@;'; + put 'put ''PU1uLE1uPTAsMCE9KDB8cCkmMCE9KDB8eG4pPyhmPTB8Z2koMHxhW3A+PjJdLDB8VmUsMHxIZSksZnx8emUoMHxwLDB8eG4pLERuPXhuKTpmPS0xLDEhPSgwfGYpKWlmKE1uPTAsbT0wfGEwKDI1LDB8bCkscD1NbixNbj0wLDAhPSgwfHApJjAhPSgwfHhuKT8oZj0wfGdpKDB8YVtwPj4yXSww''@;'; + put 'put ''fFZlLDB8SGUpLGZ8fHplKDB8cCwwfHhuKSxEbj14bik6Zj0tMSwxIT0oMHxmKSl7Zm9yKEE9MHxhWyh3PUxlKzE2fDApPj4yXSxwPW07cDspe2lmKE1uPTAsRmwoMHxBLDB8cCwwKSxmPU1uLE1uPTAsMCE9KDB8ZikmMCE9KDB8eG4pPygobT0wfGdpKDB8YVtmPj4yXSwwfFZlLDB8SGUpKXx8''@;'; + put 'put ''emUoMHxmLDB8eG4pLERuPXhuKTptPS0xLDE9PSgwfG0pKXtnZT13LHBlPWssSz1NLHA9RG4saz0xNDticmVhayBlfWlmKE1uPTAscD0wfEZsKDg2LDB8bCwwfHApLGY9TW4sTW49MCwwIT0oMHxmKSYwIT0oMHx4bik/KChtPTB8Z2koMHxhW2Y+PjJdLDB8VmUsMHxIZSkpfHx6ZSgwfGYsMHx4''@;'; + put 'put ''biksRG49eG4pOm09LTEsMT09KDB8bSkpe2dlPXcscGU9ayxLPU0scD1EbixrPTE0O2JyZWFrIGV9fVZlPTB8UGYoMTg4MDY4LDEsMHxWZSwwfEhlKSxIZT1EbixwPU1uPTAsTW49MCwwIT0oMHxwKSYwIT0oMHx4bik/KChmPTB8Z2koMHxhW3A+PjJdLDB8VmUsMHxIZSkpfHx6ZSgwfHAsMHx4''@;'; + put 'put ''biksRG49eG4pOmY9LTEsMT09KDB8Zik/KGdlPXcscGU9ayxLPU0scD1EbixrPTE0KTooZ2U9dyxwZT1rLEs9TSxwPTAsaz0xNCl9ZWxzZSBnZT0wLHBlPWssSz1NLHA9RG4saz0xNDtlbHNlIGdlPTAscGU9ayxLPU0scD1EbixrPTE0O2Vsc2UgZ2U9MCxwZT1rLEs9TSxwPURuLGs9MTQ7ZWxz''@;'; + put 'put ''ZSBnZT0wLHBlPTAsSz1NLHA9RG4saz0xNDtlbHNlIGY9MCxwPTA7ZWxzZSBnZT0wLHBlPTAsSz0wLHA9RG4saz0xNH13aGlsZSgwKTtlOmRve2lmKDE0PT0oMHxrKSl7dDpmb3IoOzspe2lmKDB8cCl7aWYoTW49MCxzcygxMDgsMHxMZSkscD1NbixNbj0wLDAhPSgwfHApJjAhPSgwfHhuKT8o''@;'; + put 'put ''KGY9MHxnaSgwfGFbcD4+Ml0sMHxWZSwwfEhlKSl8fHplKDB8cCwwfHhuKSxEbj14bik6Zj0tMSwxPT0oMHxmKSl7cD1EbixLPVI9SyxwZT1HPXBlLGdlPWs9Z2Usaz0xNDtjb250aW51ZX1pZihNbj0wLHNzKDEwNSwwfHBlKSxwPU1uLE1uPTAsMCE9KDB8cCkmMCE9KDB8eG4pPygoZj0wfGdp''@;'; + put 'put ''KDB8YVtwPj4yXSwwfFZlLDB8SGUpKXx8emUoMHxwLDB8eG4pLERuPXhuKTpmPS0xLDE9PSgwfGYpKXtwPURuLEs9Uj1LLHBlPUc9cGUsZ2U9az1nZSxrPTE0O2NvbnRpbnVlfWlmKCgwfEspPT0oMHxiZSkpe2Y9MCxwPTA7YnJlYWsgZX1pZihNbj0wLHNzKDEwNSwwfEspLHA9TW4sTW49MCww''@;'; + put 'put ''IT0oMHxwKSYwIT0oMHx4bik/KChmPTB8Z2koMHxhW3A+PjJdLDB8VmUsMHxIZSkpfHx6ZSgwfHAsMHx4biksRG49eG4pOmY9LTEsMT09KDB8Zikpe3A9RG4sSz1SPUsscGU9Rz1wZSxnZT1rPWdlLGs9MTQ7Y29udGludWV9az0xOTticmVha31pZihNbj0wLG09MHxhMCgyNSwwfGwpLHA9TW4s''@;'; + put 'put ''TW49MCwwIT0oMHxwKSYwIT0oMHx4bik/KChmPTB8Z2koMHxhW3A+PjJdLDB8VmUsMHxIZSkpfHx6ZSgwfHAsMHx4biksRG49eG4pOmY9LTEsMSE9KDB8Zikpe2ZvcihHPUsrKDB8YVtPZT4+Ml0pfDAsdz0xMCxNPXBlLHA9MCxrPXBlLFI9cGU7bTspe2lmKE1uPTAsZj0wfEZsKDB8YVtnZT4+''@;'; + put 'put ''Ml0sMHxtLC0xKSxBPU1uLE1uPTAsMCE9KDB8QSkmMCE9KDB8eG4pPygoYj0wfGdpKDB8YVtBPj4yXSwwfFZlLDB8SGUpKXx8emUoMHxBLDB8eG4pLERuPXhuKTpiPS0xLDE9PSgwfGIpKXtwPURuLEs9Uj1LLHBlPUc9cGUsZ2U9az1nZSxrPTE0O2NvbnRpbnVlIHR9aWYoZiliPVI7ZWxzZXtp''@;'; + put 'put ''ZihNbj0wLGFbUmU+PjJdPXAsSnMoMzAsMHxHLDEzNzM5NSwwfFJlKSxmPU1uLE1uPTAsMCE9KDB8ZikmMCE9KDB8eG4pPygoQT0wfGdpKDB8YVtmPj4yXSwwfFZlLDB8SGUpKXx8emUoMHxmLDB8eG4pLERuPXhuKTpBPS0xLDE9PSgwfEEpKXtwPURuLEs9Uj1LLHBlPUc9cGUsZ2U9az1nZSxr''@;'; + put 'put ''PTE0O2NvbnRpbnVlIHR9aWYoTW49MCxEPTB8SnMoMzEsMHxsLDB8SywxKSxmPU1uLE1uPTAsMCE9KDB8ZikmMCE9KDB8eG4pPygoQT0wfGdpKDB8YVtmPj4yXSwwfFZlLDB8SGUpKXx8emUoMHxmLDB8eG4pLERuPXhuKTpBPS0xLDE9PSgwfEEpKXtwPURuLEs9Uj1LLHBlPUc9cGUsZ2U9az1n''@;'; + put 'put ''ZSxrPTE0O2NvbnRpbnVlIHR9aWYoTW49MCx0YSg1MywwfEQsMTM3NDgzLDI4MCwxKSxmPU1uLE1uPTAsMCE9KDB8ZikmMCE9KDB8eG4pPygoQT0wfGdpKDB8YVtmPj4yXSwwfFZlLDB8SGUpKXx8emUoMHxmLDB8eG4pLERuPXhuKTpBPS0xLDE9PSgwfEEpKXtwPURuLEs9Uj1LLHBlPUc9cGUs''@;'; + put 'put ''Z2U9az1nZSxrPTE0O2NvbnRpbnVlIHR9aWYoTW49MCx0YSg1NCwwfGwsMHxtLDB8RCwwfExlKSxmPU1uLE1uPTAsMCE9KDB8ZikmMCE9KDB8eG4pPygoQT0wfGdpKDB8YVtmPj4yXSwwfFZlLDB8SGUpKXx8emUoMHxmLDB8eG4pLERuPXhuKTpBPS0xLDE9PSgwfEEpKXtwPURuLEs9Uj1LLHBl''@;'; + put 'put ''PUc9cGUsZ2U9az1nZSxrPTE0O2NvbnRpbnVlIHR9aWYoKDB8cCk9PSgwfHcpKXtpZih3PXA8PDEsTW49MCxiPTB8RmwoODcsMHxrLHA8PDN8MCksZj1NbixNbj0wLDAhPSgwfGYpJjAhPSgwfHhuKT8oKEE9MHxnaSgwfGFbZj4+Ml0sMHxWZSwwfEhlKSl8fHplKDB8ZiwwfHhuKSxEbj14bik6''@;'; + put 'put ''QT0tMSwxPT0oMHxBKSl7cD1EbixLPVI9SyxwZT1HPXBlLGdlPWs9Z2Usaz0xNDtjb250aW51ZSB0fUE9YixrPWIsZj1ifWVsc2UgQT1NLGY9UjthW0ErKHA8PDIpPj4yXT1ELHA9cCsxfDAsTT1BLGI9Zn1pZihNbj0wLG09MHxGbCg4NiwwfGwsMHxtKSxmPU1uLE1uPTAsMCE9KDB8ZikmMCE9''@;'; + put 'put ''KDB8eG4pPygoQT0wfGdpKDB8YVtmPj4yXSwwfFZlLDB8SGUpKXx8emUoMHxmLDB8eG4pLERuPXhuKTpBPS0xLDE9PSgwfEEpKXtwPURuLEs9Uj1LLHBlPUc9cGUsZ2U9az1nZSxrPTE0O2NvbnRpbnVlIHR9Uj1ifWlmKE1uPTAsc3MoMTA4LDB8TGUpLGY9TW4sTW49MCwwIT0oMHxmKSYwIT0o''@;'; + put 'put ''MHx4bik/KChtPTB8Z2koMHxhW2Y+PjJdLDB8VmUsMHxIZSkpfHx6ZSgwfGYsMHx4biksRG49eG4pOm09LTEsMSE9KDB8bSkpaWYoTW49MCxmPTB8RmwoODcsMHxSLHA8PDJ8MCksbT1NbixNbj0wLDAhPSgwfG0pJjAhPSgwfHhuKT8oKEE9MHxnaSgwfGFbbT4+Ml0sMHxWZSwwfEhlKSl8fHpl''@;'; + put 'put ''KDB8bSwwfHhuKSxEbj14bik6QT0tMSwxIT0oMHxBKSl7aWYoKDB8Syk9PSgwfGJlKSlicmVhayBlO2lmKE1uPTAsc3MoMTA1LDB8SyksbT1NbixNbj0wLDAhPSgwfG0pJjAhPSgwfHhuKT8oKEE9MHxnaSgwfGFbbT4+Ml0sMHxWZSwwfEhlKSl8fHplKDB8bSwwfHhuKSxEbj14bik6QT0tMSwx''@;'; + put 'put ''IT0oMHxBKSl7az0zOTticmVha31wPURuLEs9Uj1LLHBlPUc9cGUsZ2U9az1nZSxrPTE0fWVsc2UgcD1EbixLPVI9SyxwZT1HPXBlLGdlPWs9Z2Usaz0xNDtlbHNlIHA9RG4sSz1SPUsscGU9Rz1wZSxnZT1rPWdlLGs9MTR9ZWxzZSBwPURuLEs9Uj1LLHBlPUc9cGUsZ2U9az1nZSxrPTE0fWlm''@;'; + put 'put ''KDE5PT0oMHxrKSl7Zj0wLHA9MDticmVha31pZigzOT09KDB8aykpYnJlYWt9fXdoaWxlKDApO3JldHVybiBhW2M+PjJdPXAsRnQoMHxWZSksbGU9cWUsMHxmfWZ1bmN0aW9uIHhyZShsLGMpe2N8PTA7dmFyIGY9MCxwPTAsbT0wO2ZvcihmPTAsbT0wfER0KGx8PTApO207KXtmb3IocD0wfHcw''@;'; + put 'put ''KGMsbSk7cDspMHxZbihsLDB8YVsoMj09KDMmYVtwPj4yXXwwKT9wOnArLTQ4fDApKzQwPj4yXSwwKSYmKFpkKGwscCwxKSxmPWYrMXwwKSxwPTB8UzAoYyxwKTttPTB8enQobCxtKX1yZXR1cm4gMHxmfWZ1bmN0aW9uIFRyZShsKXtyZXR1cm4obD0wfGFvKGx8PTAsOTg5OTMsMCkpPzB8YVts''@;'; + put 'put ''Kzg+PjJdOihQcig5ODk5OCw5OTAwMSw1MjksOTkwMTApLDApfWZ1bmN0aW9uIHptZShsLGMsZil7Y3w9MCxmfD0wO3ZhciBHLEssYmUsT2UscD0wLEE9MCx3PTAsaz0wLE09MCxEPTAsUj0wLExlPTAsUmU9MDtpZihPZT1sZSxsZT1sZSs0MzIwfDAsSz1PZSxiZT1PZSs0MTg0fDAsRz1PZSs0''@;'; + put 'put ''MTYwfDAscD1PZSs0MHwwLDB8R28obHw9MCkpe2ZvcigkaShsLDAsOTkwMTksLTEyLDApLCRpKGwsMSw5OTAzMSwxNiwwKSxSPTB8U3JlKGYscCxiZSksaz0wfGZ1bmN0aW9uIEdtZShsKXtsfD0wO3ZhciB3LGM9MCxmPTAscD0wLG09MCxBPTA7Zm9yKHc9bGUsbGU9bGUrMTZ8MCxmZVsoQT13''@;'; + put 'put ''KT4+MF09MHxmZVsxODU5Nl0sZmVbQSsxPj4wXT0wfGZlWzE4NTk3XSxmZVtBKzI+PjBdPTB8ZmVbMTg1OThdLGZlW0ErMz4+MF09MHxmZVsxODU5OV0sTHJlKEE9MHxvYyg5OTEyMCxBLDApLGwpLGM9MHxEdChsKTtjOykwfGFbMTIrKDB8YW8oYyw5OTAzMSwwKSk+PjJdfHwoaDAobT0wfEdy''@;'; + put 'put ''KEEsMHx0aShjKSwxKSw5OTAzMSwxNiwxKSxhWzEyKygwfGFbbSsxNj4+Ml0pPj4yXT1jLGFbMTIrKDB8YW8oYyw5OTAzMSwwKSk+PjJdPW0pLGM9MHx6dChsLGMpO2ZvcihmPTB8RHQobCk7Zjspe2ZvcihwPTB8YVsxMisoMHxhbyhmLDk5MDMxLDApKT4+Ml0sYz0wfHcwKGwsZik7Yzspe209''@;'; + put 'put ''MHxhWzEyKygwfGFvKDB8YVsoMj09KDMmYVtjPj4yXXwwKT9jOmMrLTQ4fDApKzQwPj4yXSw5OTAzMSwwKSk+PjJdO2Rve2lmKCgwfG0pIT0oMHxwKSl7aWYobT4+PjA+cD4+PjApe0thKEEscCxtLDAsMSk7YnJlYWt9S2EoQSxtLHAsMCwxKTticmVha319d2hpbGUoMCk7Yz0wfFMwKGwsYyl9''@;'; + put 'put ''Zj0wfHp0KGwsZil9cmV0dXJuIGxlPXcsMHxBfShsKSxNPTB8UW4oKDB8R28oaykpPDwyKSxlVyhHLE9lKzQxNDR8MCxPZSs0OHwwLDI0LDg4KSxBPTB8RHQoayksRD1HKzE2fDAsdz1SKygwfGFbcD4+Ml0pfDAsZj0wO0E7KTB8QmlbMTI3JmFbRD4+Ml1dKEEsLTEpfHwoYVtLPj4yXT1mLG9v''@;'; + put 'put ''KHcsOTk5MzMsSyksTGU9MHxkcyhrLFIsMSksaDAoUmU9MHxkcyhsLFIsMSksOTkwMTksMTIsMCksZmVbOCsoMHxhbyhSZSw5OTAxOSwwKSk+PjBdPTEscD0wfHRXKGssQSxMZSxHKSxXbWUoTGUsUmUpLHhDKFJlKSxZbWUobCxSZSksYVtNKyhmPDwyKT4+Ml09UmUsb2koayxMZSksZj1mKzF8''@;'; + put 'put ''MCksQT0wfHp0KGssQSk7QzEoayksbDIobCwwLDk5MDE5KSxsMihsLDEsOTkwMzEpLE1yZShHKSxwPTB8VjAoTSxmPDwyKSwoMHxSKSE9KDB8YmUpJiZGdChSKX1lbHNlIHA9MCxmPTA7cmV0dXJuIGFbYz4+Ml09ZixsZT1PZSwwfHB9ZnVuY3Rpb24gV21lKGwsYyl7Y3w9MDt2YXIgZj0wLHA9''@;'; + put 'put ''MCxtPTA7Zm9yKHA9MHxEdChsfD0wKTtwOyl7bT0wfGFbMTIrKDB8YVtwKzE2Pj4yXSk+PjJdO2U6ZG97aWYoMT09KDMmYVttPj4yXXwwKSlZbihjLG0sMSk7ZWxzZSBmb3IoZj0wfER0KG0pOzspe2lmKCFmKWJyZWFrIGU7WW4oYyxmLDEpLGY9MHx6dChtLGYpfX13aGlsZSgwKTtwPTB8enQo''@;'; + put 'put ''bCxwKX19ZnVuY3Rpb24geEMobCl7cmV0dXJuIDB8eHJlKGx8PTAsMHxhW2wrNjA+PjJdKX1mdW5jdGlvbiBZbWUobCxjKXtEcmUobHw9MCxjfD0wLDApfWZ1bmN0aW9uIERyZShsLGMsZil7Y3w9MDt2YXIgQSxtPTA7Zm9yKEE9MD09KDB8KGZ8PTApKSxsPTB8eXMobHw9MCk7bDspMD09KDB8''@;'; + put 'put ''ZmVbOCsoMHxhbyhsLDk5MDE5LDApKT4+MF0pJiYwfChtPTB8VW1lKGwsYyxmKSkmJkRyZShsLG0sMSYoQT8wPT0oMHxzMigwfHRpKGwpLDEwODAwNiw3KSk6MSkpLGw9MHxNcyhsKX1mdW5jdGlvbiBVbWUobCxjLGYpe2N8PTAsZnw9MDt2YXIgcD0wLG09MCxBPTA7Zm9yKHA9MCxBPTB8RHQo''@;'; + put 'put ''bHw9MCk7QTspKG09MHxHcihjLDB8dGkoQSksMCkpJiYocHx8KHA9MHxkcyhjLDB8dGkobCksMSkpLFluKHAsbSwxKSksQT0wfHp0KGwsQSk7cmV0dXJuIDAhPSgwfGYpJjA9PSgwfHApJiYocD0wfGRzKGMsMHx0aShsKSwxKSksMHxwJiYoeHJlKHAsbCksUjYobCxwKSwwPT0oMHxzMigwfHRp''@;'; + put 'put ''KHApLDEwODAwNiw3KSkpJiYoYVs4KygwfGgwKHAsOTg5OTMsMTIsMCkpPj4yXT1sKSwwfHB9ZnVuY3Rpb24gTHJlKGwsYyl7bHw9MDt2YXIgcCxBLHcsZj0wLG09MCxiPTAsaz0wLE09MDtmb3Iodz1sZSxsZT1sZSsxNnwwLEE9dyxmPTB8eXMoY3w9MCkscD0wfGFbMTU3MTJdO2Y7KXtlOmRv''@;'; + put 'put ''e2lmKDB8czIoMHx0aShmKSwxMDgwMDYsNykpTHJlKGwsZik7ZWxzZSBmb3IobT0wfEdyKGwsMHx0aShmKSwxKSxoMChtLDk5MDMxLDE2LDEpLGFbMTIrKDB8YVttKzE2Pj4yXSk+PjJdPWYsYz0wfER0KGYpOzspe2lmKCFjKWJyZWFrIGU7MHxhWzEyKygwfGFvKGMsOTkwMzEsMCkpPj4yXSYm''@;'; + put 'put ''KE09MHx0aShjKSxrPTB8dGkoZiksYj0wfHRpKDB8YVsxMisoMHxhbyhjLDk5MDMxLDApKT4+Ml0pLGFbQT4+Ml09TSxhW0ErND4+Ml09ayxhW0ErOD4+Ml09YixUMChwLDk5MTIzLEEpKSxhWzEyKygwfGFvKGMsOTkwMzEsMCkpPj4yXT1tLGM9MHx6dChmLGMpfX13aGlsZSgwKTtmPTB8TXMo''@;'; + put 'put ''Zil9bGU9d31mdW5jdGlvbiBvNyhsLGMsZil7Znw9MDt2YXIgQSx3LGIscD0wLG09MCxrPTAsTT0wLEQ9MCxSPTAsRz0wO2s9fn4oKEc9K19bKGx8PTApPj4zXSkrKEc+PTA/LjU6LS41KSksbD1+figoRz0rX1tsKzg+PjNdKSsoRz49MD8uNTotLjUpKSxiPSgoMHwoRD0odz1+figoRz0rX1so''@;'; + put 'put ''Y3w9MCk+PjNdKSsoRz49MD8uNTotLjUpKSkta3wwKSk+LTE/RDowLUR8MCk8PDEsRD1EPj4zMXwxLE09KCgwfChSPShBPX5+KChHPStfW2MrOD4+M10pKyhHPj0wPy41Oi0uNSkpKS1sfDApKT4tMT9SOjAtUnwwKTw8MSxSPVI+PjMxfDE7ZTpkb3tpZigoMHxiKT4oMHxNKSlmb3IobT0wLWJ8''@;'; + put 'put ''MCxwPU0tKGI+PjEpfDAsYz1rOzspe2lmKGU0KGYsYyxsKSwoMHxjKT09KDB8dykpYnJlYWsgZTtwPXArTSsoKGs9KDB8cCk+LTEpP206MCl8MCxjPWMrRHwwLGw9KGs/UjowKStsfDB9ZWxzZSBmb3IobT0wLU18MCxwPWssYz1iLShNPj4xKXwwOzspe2lmKGU0KGYscCxsKSwoMHxsKT09KDB8''@;'; + put 'put ''QSkpYnJlYWsgZTtwPSgoTT0oMHxjKT4tMSk/RDowKStwfDAsYz1jK2IrKE0/bTowKXwwLGw9bCtSfDB9fXdoaWxlKDApfWZ1bmN0aW9uIFVkKGwsYyxmLHApe2x8PTAsY3w9MCxmfD0wLHB8PTA7dmFyIGssTSxSLG09MCxBPTAsdz0wLGI9MCxEPTA7Uj1sZSxsZT1sZSsxNnwwLE09UixrPVIr''@;'; + put 'put ''NHwwO2Rve2lmKCgwfGwpPDEpZj0wO2Vsc2V7aWYoKDB8YVsobT1wKzE2fDApPj4yXSk+Pj4wPDQpe2Y9MHxRbWUobCxjLGYscCk7YnJlYWt9Zm9yKEQ9MHxRbihsPDw1KSxmPTA7KDB8ZikhPSgwfGwpOylpZyhBPTB8YVtjKyhmPDwyKT4+Ml0pLGFbKHc9RCsoZjw8NSl8MCk+PjJdPWFbKEE9''@;'; + put 'put ''MTYrKDB8YVtBKzE2Pj4yXSl8MCk+PjJdLGFbdys0Pj4yXT1hW0ErND4+Ml0sYVt3Kzg+PjJdPWFbQSs4Pj4yXSxhW3crMTI+PjJdPWFbQSsxMj4+Ml0sYVt3KzE2Pj4yXT1hW0ErMTY+PjJdLGFbdysyMD4+Ml09YVtBKzIwPj4yXSxhW3crMjQ+PjJdPWFbQSsyND4+Ml0sYVt3KzI4Pj4yXT1h''@;'; + put 'put ''W0ErMjg+PjJdLGY9ZisxfDA7aWYoND09KDB8YVttPj4yXSkpe3c9cCsyOHwwO2U6ZG97aWYoMiZhW3c+PjJdfDApZm9yKG09cCsyNHwwLGFbbT4+Ml09MHx2cihsPDwyKSxmPTA7Oyl7aWYoKDB8Zik9PSgwfGwpKWJyZWFrIGU7MHwoQT0wfExpKDB8YVtjKyhmPDwyKT4+Ml0sOTkxOTApKSYm''@;'; + put 'put ''KGFbTT4+Ml09aywoQT0oMHxpbChBLDEzNzM5NSxNKSk+MCkmKDB8KGI9MHxhW2s+PjJdKSk+LTEpJiYoYVsoMHxhW20+PjJdKSsoZjw8Mik+PjJdPWIpLGY9ZisxfDB9fXdoaWxlKDApO2Y9MHxpVyhsLEQscCksMiZhW3c+PjJdJiZGdCgwfGFbcCsyND4+Ml0pfWVsc2UgZj0wO0Z0KEQpfX13''@;'; + put 'put ''aGlsZSgwKTtyZXR1cm4gbGU9UiwwfGZ9ZnVuY3Rpb24gUW1lKGwsYyxmLHApe2x8PTAsY3w9MCxmfD0wO3ZhciBxZSxudCxzdCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxLPTAscGU9MCxnZT0wLGJlPTAsTGU9MCxSZT0wLEhlPTAsVmU9MCxXZT0wLG90PTAsRXQ9MDtp''@;'; + put 'put ''ZihzdD1sZSxsZT1sZSsxNDR8MCxudD1zdCsxMzZ8MCxxZT1zdCs2NHwwLGJlPXN0LGdlPXN0KzEyMHwwLFdlPXN0Kzk2fDAsb3Q9MHxhWzIwKyhwfD0wKT4+Ml0sYVsoUmU9c3QrMTA0fDApPj4yXT0wLGFbUmUrND4+Ml09MCxhW1JlKzg+PjJdPTAsYVtSZSsxMj4+Ml09MCwoMHxsKT49MSl7''@;'; + put 'put ''Zm9yKEQ9MD09KDB8b3QpLFI9Z2UrNHwwLEc9Z2UrOHwwLEs9Z2UrMTJ8MCxIZT1SZSs0fDAsTGU9UmUrOHwwLFZlPVJlKzEyfDAsTT0wLG09MDsoMHxNKSE9KDB8bCk7KWlnKHBlPTB8YVtjKyhNPDwyKT4+Ml0pLCFEJiYwIT0oMHxmZVtvdCtNPj4wXSkmJihhW2dlPj4yXT1BPX5+KChFdD0r''@;'; + put 'put ''X1sxNisoaz0wfGFbcGUrMTY+PjJdKT4+M10pKyhFdD49MD8uNTotLjUpKSxhW1I+PjJdPXc9fn4oKEV0PStfW2srMjQ+PjNdKSsoRXQ+PTA/LjU6LS41KSksYVtHPj4yXT1iPX5+KChFdD0rX1trKzMyPj4zXSkrKEV0Pj0wPy41Oi0uNSkpLGFbSz4+Ml09az1+figoRXQ9K19bays0MD4+M10p''@;'; + put 'put ''KyhFdD49MD8uNTotLjUpKSxtPyhhW1JlPj4yXT1hWygoMHxhW1JlPj4yXSk+KDB8QSk/Z2U6UmUpPj4yXSxhW0hlPj4yXT1hWygoMHxhW0hlPj4yXSk+KDB8dyk/Z2U6UmUpKzQ+PjJdLGFbTGU+PjJdPWFbKCgwfGFbTGU+PjJdKTwoMHxiKT9nZTpSZSkrOD4+Ml0sYVtWZT4+Ml09YVsoKDB8''@;'; + put 'put ''YVtWZT4+Ml0pPCgwfGspP2dlOlJlKSsxMj4+Ml0pOihhW1JlPj4yXT1hW2dlPj4yXSxhW1JlKzQ+PjJdPWFbZ2UrND4+Ml0sYVtSZSs4Pj4yXT1hW2dlKzg+PjJdLGFbUmUrMTI+PjJdPWFbZ2UrMTI+PjJdKSxtPW0rMXwwKSxNPU0rMXwwO2ZvcihHPTB8UW4obDw8NSksbT0wOygwfG0pIT0o''@;'; + put 'put ''MHxsKTspYVsoYmU9RysobTw8NSl8MCk+PjJdPWFbKGdlPTE2KygwfGFbMTYrKDB8YVtjKyhtPDwyKT4+Ml0pPj4yXSl8MCk+PjJdLGFbYmUrND4+Ml09YVtnZSs0Pj4yXSxhW2JlKzg+PjJdPWFbZ2UrOD4+Ml0sYVtiZSsxMj4+Ml09YVtnZSsxMj4+Ml0sYVtiZSsxNj4+Ml09YVtnZSsxNj4+''@;'; + put 'put ''Ml0sYVtiZSsyMD4+Ml09YVtnZSsyMD4+Ml0sYVtiZSsyND4+Ml09YVtnZSsyND4+Ml0sYVtiZSsyOD4+Ml09YVtnZSsyOD4+Ml0sbT1tKzF8MDtpZigoMHwoUj0wfE9UKGwsRywwfGFbKEQ9cCs4fDApPj4yXSkpKT49MSl7Zm9yKChNPTAhPSgwfG90KSk/KEE9KCgwfGFbTGU+PjJdKSsoMHxh''@;'; + put 'put ''W1JlPj4yXSl8MCkvMnwwLG09KCgwfGFbVmU+PjJdKSsoMHxhW0hlPj4yXSl8MCkvMnwwKTooQT0wLG09MCksYVtXZSs0Pj4yXT1tLGFbV2U+PjJdPUEsaz0wfHZyKGw8PDQpLGI9cCsxNnwwLG09MDshKCgwfG0pPj0oMHxsKSk7KUE9MHxhW2MrKG08PDIpPj4yXSx3PWsrKG08PDQpfDAsYVtr''@;'; + put 'put ''KyhtPDw0KSsxMj4+Ml09bSwzPT0oMHxhW2I+PjJdKT8oUmU9MTYrKDB8YVtBKzE2Pj4yXSl8MCxIZT0wfGFbRD4+Ml0sVmU9MHx0aShBKSxhW3FlPj4yXT1hW1JlPj4yXSxhW3FlKzQ+PjJdPWFbUmUrND4+Ml0sYVtxZSs4Pj4yXT1hW1JlKzg+PjJdLGFbcWUrMTI+PjJdPWFbUmUrMTI+PjJd''@;'; + put 'put ''LGFbcWUrMTY+PjJdPWFbUmUrMTY+PjJdLGFbcWUrMjA+PjJdPWFbUmUrMjA+PjJdLGFbcWUrMjQ+PjJdPWFbUmUrMjQ+PjJdLGFbcWUrMjg+PjJdPWFbUmUrMjg+PjJdLGFbbnQ+PjJdPWFbV2U+PjJdLGFbbnQrND4+Ml09YVtXZSs0Pj4yXSxvVyhxZSx3LFIsSGUsbnQpKTooYVtudD4+Ml09''@;'; + put 'put ''YVtXZT4+Ml0sYVtudCs0Pj4yXT1hW1dlKzQ+PjJdLFJyZShmLEEsdyxSLHAsbnQpKSxtPW0rMXwwO2Zvcih3PTB8dnIobDw8MiksbT0wOyEoKDB8bSk+PSgwfGwpKTspYVt3KyhtPDwyKT4+Ml09aysobTw8NCksbT1tKzF8MDt4MSh3LGwsNCw4OSksYj0wfHg3KCksbT0wfHZyKGw8PDMpO3Q6''@;'; + put 'put ''ZG97aWYoTSl7Zm9yKEE9MDs7KXtpZigoMHxBKT49KDB8bCkpe0E9MDticmVha30wfGZlW290K0E+PjBdJiYocD1tKyhhWzEyKyhmPTB8YVt3KyhBPDwyKT4+Ml0pPj4yXTw8Myl8MCxhW250Pj4yXT1hW1dlPj4yXSxhW250KzQ+PjJdPWFbV2UrND4+Ml0sbFcoZixiLHAsbnQpKSxBPUErMXww''@;'; + put 'put ''fWZvcig7Oyl7aWYoKDB8QSk+PSgwfGwpKWJyZWFrIHQ7MHxmZVtvdCtBPj4wXXx8aEYoQSxXZT0wfGFbdysoQTw8Mik+PjJdLGIsbSsoYVtXZSsxMj4+Ml08PDMpfDAsUiwwfGFbRD4+Ml0sRyksQT1BKzF8MH19ZWxzZSBmb3IoQT0wOzspe2lmKCgwfEEpPj0oMHxsKSlicmVhayB0O2hGKEEs''@;'; + put 'put ''b3Q9MHxhW3crKEE8PDIpPj4yXSxiLG0rKGFbb3QrMTI+PjJdPDwzKXwwLFIsMHxhW0Q+PjJdLEcpLEE9QSsxfDB9fXdoaWxlKDApO2ZvcihGdCh3KSxBPTA7ISgoMHxBKT49KDB8bCkpOylGdCgwfGFbaysoQTw8NCkrND4+Ml0pLEE9QSsxfDA7RnQoayksQXkoYiksRnQoRyl9ZWxzZSBtPTB9''@;'; + put 'put ''ZWxzZSBtPTA7cmV0dXJuIGxlPXN0LDB8bX1mdW5jdGlvbiBpVyhsLGMsZil7Y3w9MCxmfD0wO3ZhciBwZSxnZSxiZSxPZSxMZSxIZSxWZSxxZSxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAsSz0wLFJlPTA7cWU9bGUsbGU9bGUrMTZ8MCxBPXFlLEhlPTB8dnIoKGx8''@;'; + put 'put ''PTApPDwzKSxWZT1mKzI4fDAscD0oMHwobT0wfGFbZis0Pj4yXSkpPjA7ZG97aWYoMSZhW1ZlPj4yXSl7aWYocCl7az0wLFJlPW0sbT0obCstMSttfDApLygwfG0pfDA7YnJlYWt9az0wLFJlPW09fn4rSXUoKyArRDAoKyArKDB8bCkpKSxtPShsKy0xK218MCkvKDB8bSl8MDticmVha31pZihw''@;'; + put 'put ''KXtrPTEsUmU9KGwrLTErbXwwKS8oMHxtKXwwO2JyZWFrfWs9MSxSZT0obCstMSsobT1+fitJdSgrICtEMCgrICsoMHxsKSkpKXwwKS8oMHxtKXwwO2JyZWFrfXdoaWxlKDApO2ZvcihiZT0wfHZyKDgrKG08PDMpfDApLE9lPTB8dnIoOCsoUmU8PDMpfDApLGI9Zis4fDAscD0wLEE9TGU9MHx2''@;'; + put 'put ''cigyNCpsfDApOyEoKDB8cCk+PSgwfGwpKTspRz0rX1tjKyhwPDw1KSs4Pj4zXSxSPStfW2MrKHA8PDUpKzI0Pj4zXSxfW0E+PjNdPStfW2MrKHA8PDUpKzE2Pj4zXS0rX1tjKyhwPDw1KT4+M10rKEs9KygoMHxhW2I+PjJdKT4+PjApKSxfW0ErOD4+M109Ui1HK0ssYVtBKzE2Pj4yXT1wLHA9''@;'; + put 'put ''cCsxfDAsQT1BKzI0fDA7Zm9yKGdlPTB8dnIobDw8MikscD0wOyEoKDB8cCk+PSgwfGwpKTspYVtnZSsocDw8Mik+PjJdPUxlKygyNCpwfDApLHA9cCsxfDA7Zm9yKChwPTB8YVtmKzI0Pj4yXSk/KGFbNDcwNTZdPXAseDEoZ2UsbCw0LDkwKSk6NjQmYVtWZT4+Ml18fHgxKGdlLGwsNCw5MSks''@;'; + put 'put ''cGU9MD09KDB8aykscD0wLEE9MCxiPTA7Oyl7aWYoKDB8Yik+PSgwfGwpKXt3PTAscD0wO2JyZWFrfV9bKGY9YmUrKEE8PDMpfDApPj4zXT0oSz0rX1tmPj4zXSk+KEc9K19bKGs9MHxhW2dlKyhiPDwyKT4+Ml0pPj4zXSk/SzpHLF9bKGY9T2UrKHA8PDMpfDApPj4zXT0oRz0rX1tmPj4zXSk+''@;'; + put 'put ''KEs9K19bays4Pj4zXSk/RzpLLHBlPyhwPShmPSgwfChwPXArMXwwKSk9PSgwfFJlKSk/MDpwLEE9QSsoMSZmKXwwKToocD1wKygxJihmPSgwfChBPUErMXwwKSk9PSgwfG0pKSl8MCxBPWY/MDpBKSxiPWIrMXwwfWZvcig7Oyl7aWYoKDB8cCk+KDB8bSkpe3c9MCxwPVJlO2JyZWFrfUs9K19b''@;'; + put 'put ''KGY9YmUrKHA8PDMpfDApPj4zXSxfW2Y+PjNdPXcsdz1LK3cscD1wKzF8MH1mb3IoOyEoKDB8cCk8PTApOylLPStfW09lKygoZj1wKy0xfDApPDwzKT4+M10sX1tPZSsocDw8Myk+PjNdPXcsdz1LK3cscD1mO2ZvcihfW09lPj4zXT13LHA9MCxBPTAsZj0wOyEoKDB8Zik+PSgwfGwpKTspe009''@;'; + put 'put ''LSh3PStfW2MrKChrPTB8YVsxNisoMHxhW2dlKyhmPDwyKT4+Ml0pPj4yXSk8PDUpPj4zXSksSz0tKEc9K19bYysoazw8NSkrOD4+M10pLEQ9K19bYysoazw8NSkrMTY+PjNdLFI9K19bYysoazw8NSkrMjQ+PjNdLGI9MHxhW1ZlPj4yXTtkb3tpZighKDQmYikpe2lmKDgmYil7dz13LUQrICtf''@;'; + put 'put ''W2JlKyhBKzE8PDMpPj4zXTticmVha313PS41KihNLUQrICtfW2JlKyhBPDwzKT4+M10rICtfW2JlKyhBKzE8PDMpPj4zXSk7YnJlYWt9dz0rX1tiZSsoQTw8Myk+PjNdfXdoaWxlKDApO2FbSGUrKGs8PDMpPj4yXT1+fnc7ZG97aWYoISgxNiZiKSl7aWYoMzImYil7dz0rX1tPZSsocCsxPDwz''@;'; + put 'put ''KT4+M107YnJlYWt9dz0uNSooSy1SKyArX1tPZSsocDw8Myk+PjNdKyArX1tPZSsocCsxPDwzKT4+M10pO2JyZWFrfXc9Ry1SKyArX1tPZSsocDw8Myk+PjNdfXdoaWxlKDApO2FbSGUrKGs8PDMpKzQ+PjJdPX5+dyxwZT8ocD0oaz0oMHwocD1wKzF8MCkpPT0oMHxSZSkpPzA6cCxBPUErKDEm''@;'; + put 'put ''ayl8MCk6KHA9cCsoMSYoaz0oMHwoQT1BKzF8MCkpPT0oMHxtKSkpfDAsQT1rPzA6QSksZj1mKzF8MH1yZXR1cm4gRnQoTGUpLEZ0KGdlKSxGdChiZSksRnQoT2UpLGxlPXFlLDB8SGV9ZnVuY3Rpb24gT1QobCxjLGYpe2N8PTA7dmFyIGssZ2UsTSxwPTAsbT0wLEE9MCx3PTAsYj0wLEQ9MCxS''@;'; + put 'put ''PTA7Zm9yKGdlPWxlLGxlPWxlKzk2fDAsTT1nZSxrPSgxMDAqKGx8PTApfDApLTF8MCxwPSsoKGZ8PTApPDwxfDApLEQ9MCxSPTAsZj0wOyEoKDB8Zik+PSgwfGwpKTspRD1ELShiPStfW2MrKGY8PDUpKzE2Pj4zXS0rX1tjKyhmPDw1KT4+M10rcCktKHc9K19bYysoZjw8NSkrMjQ+PjNdLStf''@;'; + put 'put ''W2MrKGY8PDUpKzg+PjNdK3ApLFItPXcqYixmPWYrMXwwO3JldHVybihiPUQqRC00Kih3PSsoMHxrKSkqUik8MD8oX1tNPj4zXT1iLCRyKDEsOTk0MTcsTSksZj0tMSk6KG09KChwPStEMCgrYikpLUQpLyhBPTIqdyksQT0oLUQtcCkvQSxmPTA9PSgwfChmPX5+bSkpPzE6ZiksbGU9Z2UsMHxm''@;'; + put 'put ''fWZ1bmN0aW9uIG9XKGwsYyxmLHAsbSxBKXtjfD0wLGZ8PTAscHw9MCxtfD0wO3ZhciBELFIsRyxLLHBlLE9lLExlLFJlLHc9MCxiPTAsaz0wLE09MDtmb3IoT2U9bGUsbGU9bGUrMzJ8MCxHPStfWyhsfD0wKT4+M10sSz0rX1tsKzg+PjNdLEQ9K19bbCsxNj4+M10sUj0rX1tsKzI0Pj4zXSxw''@;'; + put 'put ''ZT0wfHg3KCksaz0wfGFbbSs0Pj4yXSxtPSgwfChsPShiPTB8YVttPj4yXSktcHwwKSk+LTE/KDB8bCkvKDB8Zil8MDooKGwrMXwwKS8oMHxmKXwwKS0xfDAsTT0oMHwodz1rLXB8MCkpPi0xPygwfHcpLygwfGYpfDA6KCh3KzF8MCkvKDB8Zil8MCktMXwwLGI9KDB8KGI9cC1+fihHKyhHPj0w''@;'; + put 'put ''Py41Oi0uNSkpK2Irfn4oRCsoRD49MD8uNTotLjUpKXwwKSk+LTE/KDB8YikvKDB8Zil8MDooKGIrMXwwKS8oMHxmKXwwKS0xfDAsdz0oMHwoaz1wLX5+KEsrKEs+PTA/LjU6LS41KSkrayt+fihSKyhSPj0wPy41Oi0uNSkpfDApKT4tMT8oMHxrKS8oMHxmKXwwOigoaysxfDApLygwfGYpfDAp''@;'; + put 'put ''LTF8MDshKCgwfG0pPigwfGIpKTspe2ZvcihsPU07ISgoMHxsKT4oMHx3KSk7KWU0KHBlLG0sbCksbD1sKzF8MDttPW0rMXwwfWFbKGs9Yys0fDApPj4yXT0wfElRKHBlKSxiPTB8VFEocGUpLGFbKE09Yys4fDApPj4yXT1iLHc9fn4rSXUoKyhEKyhSZT0rKHA8PDF8MCkpLUcpLyhMZT0rKDB8''@;'; + put 'put ''ZikpKSxsPX5+K0l1KCsoUitSZS1LKS9MZSksYVtjPj4yXT1sK3csQXkocGUpLGxlPU9lfWZ1bmN0aW9uIFJyZShsLGMsZixwLG0sQSl7Y3w9MCxmfD0wLHB8PTAsQXw9MDt2YXIgUmUsVmUscWUsbnQsb3QsU3Qsa3Qsc3QsRXQsWnQsY3QsYnQsYW4sU24sSHIsdz0wLGI9MCxrPTAsTT0wLEQ9''@;'; + put 'put ''MCxSPTAsRz0wLEs9MCxwZT0wLGdlPTAsYmU9MCxPZT0wLExlPTAsSGU9MCxXZT0wLEVyPTAsZnI9MDtIcj1sZSxsZT1sZSsxMjh8MCxzdD1IcisxMTJ8MCxrdD1IcisxMDR8MCxadD1Icis2NHwwLGN0PUhyKzU2fDAscWU9SHIrNDB8MCxudD1Icis5NnwwLFZlPUhyKzg4fDAsTGU9SHIrMjR8''@;'; + put 'put ''MCxSZT1Icis4MHwwLEhlPUhyKzcyfDAsYW49MHxhWzgrKG18PTApPj4yXSxFdD0wfGFbbSsxMj4+Ml0sb3Q9MD09KDB8KGx8PTApKT9jOmwsU249MHx4NygpLFN0PSgwfGFbQT4+Ml0pLX5+KChiZT0rX1sxNisoV2U9MHxhWyhidD1jKzE2fDApPj4yXSk+PjNdKSsoYmU+PTA/LjU6LS41KSl8''@;'; + put 'put ''MCxXZT0oMHxhW0ErND4+Ml0pLX5+KChiZT0rX1tXZSsyND4+M10pKyhiZT49MD8uNTotLjUpKXwwO2U6ZG97aWYoMT09KDB8YVttKzE2Pj4yXSkpe2ZvcihMZT0wfFFuKCgwfEdvKGMpKTw8MiksbD0wLEE9MHxEdChjKTtBOylhW0xlKyhsPDwyKT4+Ml09YVsxMTIrKDB8YVsoSGU9QSsxNnww''@;'; + put 'put ''KT4+Ml0pPj4yXSxhWzExMisoMHxhW0hlPj4yXSk+PjJdPTAsbD1sKzF8MCxBPTB8enQoYyxBKTtmb3IoUj1TdC1hbnwwLEc9V2UtYW58MCxLPVN0K2FufDAscGU9V2UrYW58MCxEPTE7ISgoMHxEKT4oMHxhWzE4MCsobD0wfGFbYnQ+PjJdKT4+Ml0pKTspe2w9fn4oKGJlPStfWzE2Kyh3PTB8''@;'; + put 'put ''YVsxNisoTT0wfGFbKDB8YVtsKzE4ND4+Ml0pKyhEPDwyKT4+Ml0pPj4yXSk+PjNdKSsoYmU+PTA/LjU6LS41KSksQT1+figoYmU9K19bdysyND4+M10pKyhiZT49MD8uNTotLjUpKSxtPX5+KChiZT0rX1t3KzMyPj4zXSkrKGJlPj0wPy41Oi0uNSkpLHc9fn4oKGJlPStfW3crNDA+PjNdKSso''@;'; + put 'put ''YmU+PTA/LjU6LS41KSk7dDpkb3tpZigoMHxtKT4oMHxsKSYoMHx3KT4oMHxBKSl7Zm9yKGI9RytBfDAsaz1wZSt3fDAsQT0oMHwobD1SK2x8MCkpPi0xPygwfGwpLygwfHApfDA6KChsKzF8MCkvKDB8cCl8MCktMXwwLGI9KDB8Yik+LTE/KDB8YikvKDB8cCl8MDooKGIrMXwwKS8oMHxwKXww''@;'; + put 'put ''KS0xfDAsdz0oMHwobT1LK218MCkpPi0xPygwfG0pLygwfHApfDA6KChtKzF8MCkvKDB8cCl8MCktMXwwLG09KDB8ayk+LTE/KDB8aykvKDB8cCl8MDooKGsrMXwwKS8oMHxwKXwwKS0xfDA7ISgoMHxBKT4oMHx3KSk7KXtmb3IobD1iOyEoKDB8bCk+KDB8bSkpOyllNChTbixBLGwpLGw9bCsx''@;'; + put 'put ''fDA7QT1BKzF8MH1mb3IobD0wfER0KE0pOzspe2lmKCFsKWJyZWFrIHQ7YVsyMTIrKDB8YVtsKzE2Pj4yXSk+PjJdPU0sbD0wfHp0KE0sbCl9fX13aGlsZSgwKTtEPUQrMXwwfWZvcihwZT1xZSs4fDAsZ2U9WnQrNHwwLGJlPSsoMHxhbiksT2U9Y3QrNHwwLEs9bnQrNHwwLEc9VmUrNHwwLFI9''@;'; + put 'put ''MHxEdChjKTtSOyl7Y0QocWUsUiksRXI9K19bcGU+PjNdLGFbWnQ+PjJdPU09U3Qrfn4oKGZyPStfW3FlPj4zXSkrKGZyPj0wPy41Oi0uNSkpfDAsYVtnZT4+Ml09RD1XZSt+fihFcisoRXI+PTA/LjU6LS41KSl8MCxsPTB8YVsoQT1SKzE2fDApPj4yXTt0OmRve2lmKDB8YVtsKzIxMj4+Ml0p''@;'; + put 'put ''Zm9yKGw9KDB8TSk+LTE/KDB8TSkvKDB8cCl8MDooKE0rMXwwKS8oMHxwKXwwKS0xfDAsYVtadD4+Ml09bCxsPSgwfEQpPi0xPygwfEQpLygwfHApfDA6KChEKzF8MCkvKDB8cCl8MCktMXwwLGFbZ2U+PjJdPWwsbD0wfHcwKG90LFIpOzspe2lmKCFsKWJyZWFrIHQ7KDB8YVsyMTIrKDB8YVtB''@;'; + put 'put ''Pj4yXSk+PjJdKSE9KDB8YVsyMTIrKDB8YVsxNisoMHxhWygyPT0oMyZhW2w+PjJdfDApP2w6bCstNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSkmJihhW3N0Pj4yXT1hW1p0Pj4yXSxhW3N0KzQ+PjJdPWFbWnQrND4+Ml0sTjYobCxzdCxTbixTdCxXZSxwLEV0KSksbD0wfFMwKG90LGwpfWVsc2V7''@;'; + put 'put ''Zm9yKGFbY3Q+PjJdPX5+KC41KigrX1tsKzk2Pj4zXSsgK19bbCs4OD4+M10pK2JlKSxhW09lPj4yXT1+figuNSorX1tsKzgwPj4zXStiZSksYVtrdD4+Ml09YVtadD4+Ml0sYVtrdCs0Pj4yXT1hW1p0KzQ+PjJdLGFbc3Q+PjJdPWFbY3Q+PjJdLGFbc3QrND4+Ml09YVtjdCs0Pj4yXSxkRihu''@;'; + put 'put ''dCxrdCxzdCksbD0wfGFbbnQ+PjJdLG09MHxhW0s+PjJdLGFba3Q+PjJdPWFbWnQ+PjJdLGFba3QrND4+Ml09YVtadCs0Pj4yXSxhW3N0Pj4yXT1hW2N0Pj4yXSxhW3N0KzQ+PjJdPWFbY3QrND4+Ml0sbnAoVmUsa3Qsc3QpLEE9KDB8bCk+LTE/KDB8bCkvKDB8cCl8MDooKGwrMXwwKS8oMHxw''@;'; + put 'put ''KXwwKS0xfDAsaz0oMHxtKT4tMT8oMHxtKS8oMHxwKXwwOigobSsxfDApLygwfHApfDApLTF8MCx3PSgwfCh3PTB8YVtWZT4+Ml0pKT4tMT8oMHx3KS8oMHxwKXwwOigodysxfDApLygwfHApfDApLTF8MCxtPSgwfChiPTB8YVtHPj4yXSkpPi0xPygwfGIpLygwfHApfDA6KChiKzF8MCkvKDB8''@;'; + put 'put ''cCl8MCktMXwwOyEoKDB8QSk+KDB8dykpOyl7Zm9yKGw9azshKCgwfGwpPigwfG0pKTspZTQoU24sQSxsKSxsPWwrMXwwO0E9QSsxfDB9Zm9yKGFbWnQ+PjJdPWw9KDB8TSk+LTE/KDB8TSkvKDB8cCl8MDooKE0rMXwwKS8oMHxwKXwwKS0xfDAsYVtnZT4+Ml09bD0oMHxEKT4tMT8oMHxEKS8o''@;'; + put 'put ''MHxwKXwwOigoRCsxfDApLygwfHApfDApLTF8MCxsPTB8dzAob3QsUik7Oyl7aWYoIWwpYnJlYWsgdDthW3N0Pj4yXT1hW1p0Pj4yXSxhW3N0KzQ+PjJdPWFbWnQrND4+Ml0sTjYobCxzdCxTbixTdCxXZSxwLEV0KSxsPTB8UzAob3QsbCl9fX13aGlsZSgwKTtSPTB8enQoYyxSKX1mb3IobD0w''@;'; + put 'put ''LEE9MHxEdChjKTtBOylhWzExMisoMHxhW0ErMTY+PjJdKT4+Ml09YVtMZSsobDw8Mik+PjJdLGw9bCsxfDAsQT0wfHp0KGMsQSk7RnQoTGUpfWVsc2UgZm9yKHBlPUxlKzh8MCxnZT1adCs0fDAsYmU9KygwfGFuKSxPZT1jdCs0fDAsSz1SZSs0fDAsRz1IZSs0fDAsUj0wfER0KGMpOzspe2lm''@;'; + put 'put ''KCFSKWJyZWFrIGU7Zm9yKGNEKExlLFIpLGZyPStfW3BlPj4zXSxhW1p0Pj4yXT1NPVN0K35+KChFcj0rX1tMZT4+M10pKyhFcj49MD8uNTotLjUpKXwwLGFbZ2U+PjJdPUQ9V2Urfn4oZnIrKGZyPj0wPy41Oi0uNSkpfDAsYVtjdD4+Ml09fn4oLjUqKCtfWzk2KyhsPTB8YVtSKzE2Pj4yXSk+''@;'; + put 'put ''PjNdKyArX1tsKzg4Pj4zXSkrYmUpLGFbT2U+PjJdPX5+KC41KitfW2wrODA+PjNdK2JlKSxhW2t0Pj4yXT1hW1p0Pj4yXSxhW2t0KzQ+PjJdPWFbWnQrND4+Ml0sYVtzdD4+Ml09YVtjdD4+Ml0sYVtzdCs0Pj4yXT1hW2N0KzQ+PjJdLGRGKFJlLGt0LHN0KSxsPTB8YVtSZT4+Ml0sbT0wfGFb''@;'; + put 'put ''Sz4+Ml0sYVtrdD4+Ml09YVtadD4+Ml0sYVtrdCs0Pj4yXT1hW1p0KzQ+PjJdLGFbc3Q+PjJdPWFbY3Q+PjJdLGFbc3QrND4+Ml09YVtjdCs0Pj4yXSxucChIZSxrdCxzdCksQT0oMHxsKT4tMT8oMHxsKS8oMHxwKXwwOigobCsxfDApLygwfHApfDApLTF8MCxrPSgwfG0pPi0xPygwfG0pLygw''@;'; + put 'put ''fHApfDA6KChtKzF8MCkvKDB8cCl8MCktMXwwLHc9KDB8KHc9MHxhW0hlPj4yXSkpPi0xPygwfHcpLygwfHApfDA6KCh3KzF8MCkvKDB8cCl8MCktMXwwLG09KDB8KGI9MHxhW0c+PjJdKSk+LTE/KDB8YikvKDB8cCl8MDooKGIrMXwwKS8oMHxwKXwwKS0xfDA7ISgoMHxBKT4oMHx3KSk7KXtm''@;'; + put 'put ''b3IobD1rOyEoKDB8bCk+KDB8bSkpOyllNChTbixBLGwpLGw9bCsxfDA7QT1BKzF8MH1mb3IoYVtadD4+Ml09bD0oMHxNKT4tMT8oMHxNKS8oMHxwKXwwOigoTSsxfDApLygwfHApfDApLTF8MCxhW2dlPj4yXT1sPSgwfEQpPi0xPygwfEQpLygwfHApfDA6KChEKzF8MCkvKDB8cCl8MCktMXww''@;'; + put 'put ''LGw9MHx3MChvdCxSKTtsOylhW3N0Pj4yXT1hW1p0Pj4yXSxhW3N0KzQ+PjJdPWFbWnQrND4+Ml0sTjYobCxzdCxTbixTdCxXZSxwLEV0KSxsPTB8UzAob3QsbCk7Uj0wfHp0KGMsUil9fXdoaWxlKDApO2FbKHc9Zis0fDApPj4yXT0wfElRKFNuKSxhWyhiPWYrOHwwKT4+Ml09MHxUUShTbiks''@;'; + put 'put ''bD1+fitJdSgrKCtfWzMyKyhBPTB8YVtidD4+Ml0pPj4zXSsoRXI9Kyhhbjw8MXwwKSktK19bQSsxNj4+M10pLyhmcj0rKDB8cCkpKSxBPX5+K0l1KCsoK19bQSs0MD4+M10rRXItK19bQSsyND4+M10pL2ZyKSxhW2Y+PjJdPUErbCxBeShTbiksbGU9SHJ9ZnVuY3Rpb24gbFcobCxjLGYscCl7''@;'; + put 'put ''Y3w9MDt2YXIgQSx3LGssTTtmb3Ioaz1sZSxsZT1sZSszMnwwLHc9aysxNnwwLE09MHxhWzQrKGx8PTApPj4yXSxBPTB8YVtsKzg+PjJdLGFbKGZ8PTApPj4yXT0wLSgwfGFbKHB8PTApPj4yXSksYVsoZis0fDApPj4yXT0wLSgwfGFbcCs0Pj4yXSksbD0wLHA9TTshKCgwfGwpPj0oMHxBKSk7''@;'; + put 'put ''KWFbdz4+Ml09YVtwPj4yXSxhW3crND4+Ml09YVtwKzQ+PjJdLE1RKGMsdyksbD1sKzF8MCxwPXArOHwwO2xlPWt9ZnVuY3Rpb24gaEYobCxjLGYscCxtLEEsdyl7Znw9MCxwfD0wLG18PTAsQXw9MDt2YXIgTSxELFIsRyxiPTAsaz0wLEs9MCxwZT0wO009K19bKHd8PTApKygoaz0wfGFbMTIr''@;'; + put 'put ''KGN8PTApPj4yXSk8PDUpPj4zXSxEPStfW3crKGs8PDUpKzg+PjNdLFI9K19bdysoazw8NSkrMTY+PjNdLEc9K19bdysoazw8NSkrMjQ+PjNdLDA9PSgwfChsfD0wKSkmJjAhPSgwfHJoKCgwfH5+K0l1KCsoKHBlPSsoQTw8MXwwKSktTStSKS8oSz0rKDB8bSkpKSkvLTJ8MCwoMHx+fitJdSgr''@;'; + put 'put ''KHBlLUQrRykvSykpLy0yfDAsYyxmLHAsbSx3KSl8fChiPTMpO2U6ZG97aWYoMz09KDB8YikmJjA9PSgwfHJoKDAsMCxjLGYscCxtLHcpKSlpZigoMHx+fitJdSgrKFItTSkpKTwoMHx+fitJdSgrKEctRCkpKSlmb3Ioaz0xOzspe2ZvcihiPTAta3wwLGw9MDs7KXtpZigoMHxsKTw9KDB8Yikp''@;'; + put 'put ''e0E9YjticmVha31pZigwfHJoKGIsbCxjLGYscCxtLHcpKWJyZWFrIGU7bD1sKy0xfDB9Zm9yKDshKCgwfEEpPj0oMHxrKSk7KXtpZigwfHJoKEEsbCxjLGYscCxtLHcpKWJyZWFrIGU7QT1BKzF8MH1mb3IoOyEoKDB8bCk+PSgwfGspKTspe2lmKDB8cmgoQSxsLGMsZixwLG0sdykpYnJlYWsg''@;'; + put 'put ''ZTtsPWwrMXwwfWZvcig7ISgoMHxBKTw9KDB8YikpOyl7aWYoMHxyaChBLGwsYyxmLHAsbSx3KSlicmVhayBlO0E9QSstMXwwfWZvcig7ISgoMHxsKTw9MCk7KXtpZigwfHJoKEEsbCxjLGYscCxtLHcpKWJyZWFrIGU7bD1sKy0xfDB9az1rKzF8MH1lbHNlIGZvcihrPTE7Oyl7Zm9yKGI9MC1r''@;'; + put 'put ''fDAsbD0wOzspe2lmKCgwfGwpPj0oMHxrKSl7QT1iO2JyZWFrfWlmKDB8cmgobCxiLGMsZixwLG0sdykpYnJlYWsgZTtsPWwrMXwwfWZvcig7ISgoMHxBKT49KDB8aykpOyl7aWYoMHxyaChsLEEsYyxmLHAsbSx3KSlicmVhayBlO0E9QSsxfDB9Zm9yKDshKCgwfGwpPD0oMHxiKSk7KXtpZigw''@;'; + put 'put ''fHJoKGwsQSxjLGYscCxtLHcpKWJyZWFrIGU7bD1sKy0xfDB9Zm9yKDshKCgwfEEpPD0oMHxiKSk7KXtpZigwfHJoKGwsQSxjLGYscCxtLHcpKWJyZWFrIGU7QT1BKy0xfDB9Zm9yKDshKCgwfGwpPj0wKTspe2lmKDB8cmgobCxBLGMsZixwLG0sdykpYnJlYWsgZTtsPWwrMXwwfWs9aysxfDB9''@;'; + put 'put ''fXdoaWxlKDApfWZ1bmN0aW9uIHJoKGwsYyxmLHAsbSxBLHcpe2x8PTAsY3w9MCxwfD0wLG18PTAsQXw9MCx3fD0wO3ZhciBNLFIsRyxLLHBlLGJlLGI9MCxrPTAsRD0wLE9lPTAsTGU9MCxSZT0wLEhlPTA7Zm9yKGJlPWxlLGxlPWxlKzQ4fDAscGU9YmUrMzJ8MCxSPTB8YVs4KyhmfD0wKT4+''@;'; + put 'put ''Ml0sRz0oSz1iZSkrNHwwLGI9MHxhWyhNPWYrNHwwKT4+Ml0saz0wOzspe2lmKCgwfGspPj0oMHxSKSl7RD01O2JyZWFrfWlmKE9lPTB8YVsoTGU9YikrND4+Ml0sYVtLPj4yXT0oMHxhW0xlPj4yXSkrbCxhW0c+PjJdPU9lK2MsYVtwZT4+Ml09YVtLPj4yXSxhW3BlKzQ+PjJdPWFbSys0Pj4y''@;'; + put 'put ''XSwwfGRhZShwLHBlKSl7Yj0wO2JyZWFrfWI9Yis4fDAsaz1rKzF8MH1pZig1PT0oMHxEKSl7Zm9yKEhlPStfW3crKChmPTB8YVtmKzEyPj4yXSk8PDUpPj4zXSxSZT0rX1t3KyhmPDw1KSs4Pj4zXSxhW20+PjJdPSgwfEFyKEEsbCkpLX5+KEhlKyhIZT49MD8uNTotLjUpKSxhWyhmPW0rNHww''@;'; + put 'put ''KT4+Ml09KDB8QXIoQSxjKSktfn4oUmUrKFJlPj0wPy41Oi0uNSkpLGI9MHxhW00+PjJdLGs9MDshKCgwfGspPj0oMHxSKSk7KUxlPTB8YVsoT2U9YikrND4+Ml0sYVtLPj4yXT0oMHxhW09lPj4yXSkrbCxhW0c+PjJdPUxlK2MsYVtwZT4+Ml09YVtLPj4yXSxhW3BlKzQ+PjJdPWFbSys0Pj4y''@;'; + put 'put ''XSxNUShwLHBlKSxiPWIrOHwwLGs9aysxfDA7Yj0xfXJldHVybiBsZT1iZSwwfGJ9ZnVuY3Rpb24gZEYobCxjLGYpe3ZhciBwO3A9KDB8YVs0KyhjfD0wKT4+Ml0pLSgwfGFbNCsoZnw9MCk+PjJdKXwwLGFbKGx8PTApPj4yXT0oMHxhW2M+PjJdKS0oMHxhW2Y+PjJdKSxhW2wrND4+Ml09cH1m''@;'; + put 'put ''dW5jdGlvbiBucChsLGMsZil7dmFyIHA7cD0oMHxhWzQrKGZ8PTApPj4yXSkrKDB8YVs0KyhjfD0wKT4+Ml0pfDAsYVsobHw9MCk+PjJdPSgwfGFbZj4+Ml0pKygwfGFbYz4+Ml0pLGFbbCs0Pj4yXT1wfWZ1bmN0aW9uIE42KGwsYyxmLHAsbSxBLHcpe2x8PTAsZnw9MCxwfD0wLG18PTAsQXw9''@;'; + put 'put ''MCx3fD0wO3ZhciBwZSxnZSxiZSxSZSxIZSxWZSxxZSxudCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxLPTAsT2U9MCxMZT0wO250PWxlLGxlPWxlKzExMnwwLEhlPW50Kzk2fDAsUmU9bnQrODB8MCxwZT1udCs0OHwwLGdlPW50KzMyfDAscWU9bnQsRD1udCs2NHwwLF9bKFZlPW50KzE2fDAp''@;'; + put 'put ''Pj4zXT0rKDB8YVsoY3w9MCk+PjJdKSxfWyhiZT1WZSs4fDApPj4zXT0rKDB8YVtjKzQ+PjJdKTtlOmRve2lmKDAhPSgwfHcpJiYoT2U9bCsxNnwwLE09MHxhWzgrKDB8YVtPZT4+Ml0pPj4yXSwwIT0oMHxNKSkpZm9yKEs9KygwfHApLEc9KygwfG0pLFI9MS8rKDB8QSksRD1xZSs4fDAsdz0w''@;'; + put 'put ''Ozspe2lmKCgwfHcpPj0oMHxhW00rND4+Ml0pKWJyZWFrIGU7Zm9yKGw9MHxhWyhtPTB8YVtNPj4yXSkrKDQ4Knd8MCk+PjJdLGM9MHxhW20rKDQ4Knd8MCkrND4+Ml0sQT0wfGFbbSsoNDgqd3wwKSs4Pj4yXSxwPTB8YVttKyg0OCp3fDApKzEyPj4yXSxhW3BlPj4yXT1hWyhNPW0rKDQ4Knd8''@;'; + put 'put ''MCkrMTZ8MCk+PjJdLGFbcGUrND4+Ml09YVtNKzQ+PjJdLGFbcGUrOD4+Ml09YVtNKzg+PjJdLGFbcGUrMTI+PjJdPWFbTSsxMj4+Ml0sYVtnZT4+Ml09YVsobT1tKyg0OCp3fDApKzMyfDApPj4yXSxhW2dlKzQ+PjJdPWFbbSs0Pj4yXSxhW2dlKzg+PjJdPWFbbSs4Pj4yXSxhW2dlKzEyPj4y''@;'; + put 'put ''XT1hW20rMTI+PjJdLEE/KGFbVmU+PjJdPWFbcGU+PjJdLGFbVmUrND4+Ml09YVtwZSs0Pj4yXSxhW1ZlKzg+PjJdPWFbcGUrOD4+Ml0sYVtWZSsxMj4+Ml09YVtwZSsxMj4+Ml0sYVtxZT4+Ml09YVtsPj4yXSxhW3FlKzQ+PjJdPWFbbCs0Pj4yXSxhW3FlKzg+PjJdPWFbbCs4Pj4yXSxhW3Fl''@;'; + put 'put ''KzEyPj4yXT1hW2wrMTI+PjJdLE09MSk6KGFbVmU+PjJdPWFbbD4+Ml0sYVtWZSs0Pj4yXT1hW2wrND4+Ml0sYVtWZSs4Pj4yXT1hW2wrOD4+Ml0sYVtWZSsxMj4+Ml09YVtsKzEyPj4yXSxhW3FlPj4yXT1hWyhNPWwrMTZ8MCk+PjJdLGFbcWUrND4+Ml09YVtNKzQ+PjJdLGFbcWUrOD4+Ml09''@;'; + put 'put ''YVtNKzg+PjJdLGFbcWUrMTI+PjJdPWFbTSsxMj4+Ml0sTT0yKSxfW1ZlPj4zXT1iPStfW1ZlPj4zXStLLF9bYmU+PjNdPWs9K19bYmU+PjNdK0csYj49MD9iKj1SOmI9KGIrMSkqUi0xLF9bVmU+PjNdPWIsX1tiZT4+M109Yj1rPj0wP2sqUjooaysxKSpSLTEsX1txZT4+M109Yj0rX1txZT4+''@;'; + put 'put ''M10rSyxfW0Q+PjNdPWs9K19bRD4+M10rRyxiPj0wP2IqPVI6Yj0oYisxKSpSLTEsX1txZT4+M109YixfW0Q+PjNdPWI9az49MD9rKlI6KGsrMSkqUi0xLGFbUmU+PjJdPWFbVmU+PjJdLGFbUmUrND4+Ml09YVtWZSs0Pj4yXSxhW1JlKzg+PjJdPWFbVmUrOD4+Ml0sYVtSZSsxMj4+Ml09YVtW''@;'; + put 'put ''ZSsxMj4+Ml0sYVtIZT4+Ml09YVtxZT4+Ml0sYVtIZSs0Pj4yXT1hW3FlKzQ+PjJdLGFbSGUrOD4+Ml09YVtxZSs4Pj4yXSxhW0hlKzEyPj4yXT1hW3FlKzEyPj4yXSxvNyhSZSxIZSxmKTshKCgwfE0pPj0oMHxjKSk7KWFbVmU+PjJdPWFbcWU+PjJdLGFbVmUrND4+Ml09YVtxZSs0Pj4yXSxh''@;'; + put 'put ''W1ZlKzg+PjJdPWFbcWUrOD4+Ml0sYVtWZSsxMj4+Ml09YVtxZSsxMj4+Ml0sYVtxZT4+Ml09YVsoQT1sKyhNPDw0KXwwKT4+Ml0sYVtxZSs0Pj4yXT1hW0ErND4+Ml0sYVtxZSs4Pj4yXT1hW0ErOD4+Ml0sYVtxZSsxMj4+Ml09YVtBKzEyPj4yXSxfW3FlPj4zXT1iPStfW3FlPj4zXStLLF9b''@;'; + put 'put ''RD4+M109az0rX1tEPj4zXStHLGI+PTA/Yio9UjpiPShiKzEpKlItMSxfW3FlPj4zXT1iLF9bRD4+M109Yj1rPj0wP2sqUjooaysxKSpSLTEsYVtSZT4+Ml09YVtWZT4+Ml0sYVtSZSs0Pj4yXT1hW1ZlKzQ+PjJdLGFbUmUrOD4+Ml09YVtWZSs4Pj4yXSxhW1JlKzEyPj4yXT1hW1ZlKzEyPj4y''@;'; + put 'put ''XSxhW0hlPj4yXT1hW3FlPj4yXSxhW0hlKzQ+PjJdPWFbcWUrND4+Ml0sYVtIZSs4Pj4yXT1hW3FlKzg+PjJdLGFbSGUrMTI+PjJdPWFbcWUrMTI+PjJdLG83KFJlLEhlLGYpLE09TSsxfDA7MHxwJiYoYVtWZT4+Ml09YVtxZT4+Ml0sYVtWZSs0Pj4yXT1hW3FlKzQ+PjJdLGFbVmUrOD4+Ml09''@;'; + put 'put ''YVtxZSs4Pj4yXSxhW1ZlKzEyPj4yXT1hW3FlKzEyPj4yXSxhW3FlPj4yXT1hW2dlPj4yXSxhW3FlKzQ+PjJdPWFbZ2UrND4+Ml0sYVtxZSs4Pj4yXT1hW2dlKzg+PjJdLGFbcWUrMTI+PjJdPWFbZ2UrMTI+PjJdLF9bcWU+PjNdPWI9K19bcWU+PjNdK0ssX1tEPj4zXT1rPStfW0Q+PjNdK0cs''@;'; + put 'put ''Yj49MD9iKj1SOmI9KGIrMSkqUi0xLF9bcWU+PjNdPWIsX1tEPj4zXT1iPWs+PTA/aypSOihrKzEpKlItMSxhW1JlPj4yXT1hW1ZlPj4yXSxhW1JlKzQ+PjJdPWFbVmUrND4+Ml0sYVtSZSs4Pj4yXT1hW1ZlKzg+PjJdLGFbUmUrMTI+PjJdPWFbVmUrMTI+PjJdLGFbSGU+PjJdPWFbcWU+PjJd''@;'; + put 'put ''LGFbSGUrND4+Ml09YVtxZSs0Pj4yXSxhW0hlKzg+PjJdPWFbcWUrOD4+Ml0sYVtIZSsxMj4+Ml09YVtxZSsxMj4+Ml0sbzcoUmUsSGUsZikpLHc9dysxfDAsTT0wfGFbOCsoMHxhW09lPj4yXSk+PjJdfWVsc2UgTGU9NH13aGlsZSgwKTs0PT0oMHxMZSkmJihjRChELDB8YVsoMj09KDMmYVts''@;'; + put 'put ''Pj4yXXwwKT9sOmwrLTQ4fDApKzQwPj4yXSksYVtxZT4+Ml09YVtEPj4yXSxhW3FlKzQ+PjJdPWFbRCs0Pj4yXSxhW3FlKzg+PjJdPWFbRCs4Pj4yXSxhW3FlKzEyPj4yXT1hW0QrMTI+PjJdLF9bcWU+PjNdPWI9K19bcWU+PjNdKyArKDB8cCksX1soTT1xZSs4fDApPj4zXT1rPStfW00+PjNd''@;'; + put 'put ''KyArKDB8bSksYj49MD9iLz0rKDB8QSk6Yj0oYisxKS8rKDB8QSktMSxfW3FlPj4zXT1iLF9bTT4+M109Yj1rPj0wP2svKygwfEEpOihrKzEpLysoMHxBKS0xLGFbUmU+PjJdPWFbVmU+PjJdLGFbUmUrND4+Ml09YVtWZSs0Pj4yXSxhW1JlKzg+PjJdPWFbVmUrOD4+Ml0sYVtSZSsxMj4+Ml09''@;'; + put 'put ''YVtWZSsxMj4+Ml0sYVtIZT4+Ml09YVtxZT4+Ml0sYVtIZSs0Pj4yXT1hW3FlKzQ+PjJdLGFbSGUrOD4+Ml09YVtxZSs4Pj4yXSxhW0hlKzEyPj4yXT1hW3FlKzEyPj4yXSxvNyhSZSxIZSxmKSksbGU9bnR9ZnVuY3Rpb24gdVcobCxjLGYpe3ZhciB3LGssTSxSLHA9MCxtPTAsQT0wLGI9MCxH''@;'; + put 'put ''PTA7aWYoUj1sZSxsZT1sZSs4MHwwLEE9Uis2NHwwLG09UisyNHwwLHA9Uix3PVIrNTZ8MCwoMHwoTT0wfE9UKGx8PTAsY3w9MCwwfGFbKGs9OCsoZnw9MCl8MCk+PjJdKSkpPj0xKXtmb3IoYVt3KzQ+PjJdPTAsYVt3Pj4yXT0wLGI9MHx2cihsPDw0KSxmPTA7ISgoMHxmKT49KDB8bCkpOylh''@;'; + put 'put ''W2IrKGY8PDQpKzEyPj4yXT1mLHA9MHxhW2s+PjJdLGFbbT4+Ml09YVsoRz1jKyhmPDw1KXwwKT4+Ml0sYVttKzQ+PjJdPWFbRys0Pj4yXSxhW20rOD4+Ml09YVtHKzg+PjJdLGFbbSsxMj4+Ml09YVtHKzEyPj4yXSxhW20rMTY+PjJdPWFbRysxNj4+Ml0sYVttKzIwPj4yXT1hW0crMjA+PjJd''@;'; + put 'put ''LGFbbSsyND4+Ml09YVtHKzI0Pj4yXSxhW20rMjg+PjJdPWFbRysyOD4+Ml0sYVtBPj4yXT1hW3c+PjJdLGFbQSs0Pj4yXT1hW3crND4+Ml0sb1cobSxiKyhmPDw0KXwwLE0scCxBKSxmPWYrMXwwO2ZvcihtPTB8dnIobDw8MiksZj0wOyEoKDB8Zik+PSgwfGwpKTspYVttKyhmPDwyKT4+Ml09''@;'; + put 'put ''YisoZjw8NCksZj1mKzF8MDtmb3IoeDEobSxsLDQsODkpLEE9MHx4NygpLGY9MHx2cihsPDwzKSxwPTA7ISgoMHxwKT49KDB8bCkpOyloRihwLEc9MHxhW20rKHA8PDIpPj4yXSxBLGYrKGFbRysxMj4+Ml08PDMpfDAsTSwwfGFbaz4+Ml0sYykscD1wKzF8MDtmb3IoRnQobSkscD0wOyEoKDB8''@;'; + put 'put ''cCk+PSgwfGwpKTspRnQoMHxhW2IrKHA8PDQpKzQ+PjJdKSxwPXArMXwwO0Z0KGIpLEF5KEEpfWVsc2UgZj0wO3JldHVybiBsZT1SLDB8Zn1mdW5jdGlvbiBWNihsLGMsZil7Y3w9MCxmfD0wO3ZhciBwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MDswfChsPTB8YVs5NisocD0w''@;'; + put 'put ''fGFbMTYrKGx8PTApPj4yXSk+PjJdKSYmKF9bKEQ9bCs1NnwwKT4+M109K19bRD4+M10rICsoMHxjKSxfWyhEPWwrNjR8MCk+PjNdPStfW0Q+PjNdKyArKDB8ZikpLDB8KGw9MHxhW3ArMTA4Pj4yXSkmJihfWyhEPWwrNTZ8MCk+PjNdPStfW0Q+PjNdKyArKDB8YyksX1soRD1sKzY0fDApPj4z''@;'; + put 'put ''XT0rX1tEPj4zXSsgKygwfGYpKSwwfChsPTB8YVtwKzEwMD4+Ml0pJiYoX1soRD1sKzU2fDApPj4zXT0rX1tEPj4zXSsgKygwfGMpLF9bKEQ9bCs2NHwwKT4+M109K19bRD4+M10rICsoMHxmKSksMHwobD0wfGFbcCsxMDQ+PjJdKSYmKF9bKEQ9bCs1NnwwKT4+M109K19bRD4+M10rICsoMHxj''@;'; + put 'put ''KSxfWyhEPWwrNjR8MCk+PjNdPStfW0Q+PjNdKyArKDB8ZikpLEQ9MHxhW3ArOD4+Ml07ZTpkb3tpZigwfEQpZm9yKE09KygwfGMpLGI9KygwfGYpLGM9MHxhW0QrND4+Ml0sbD0wOzspe2lmKCgwfGwpPj0oMHxjKSlicmVhayBlO2ZvcihmPTB8YVsoaz0wfGFbRD4+Ml0pKyg0OCpsfDApPj4y''@;'; + put 'put ''XSxtPTB8YVtrKyg0OCpsfDApKzQ+PjJdLEE9MHxhW2srKDQ4Kmx8MCkrOD4+Ml0sdz0wfGFbaysoNDgqbHwwKSsxMj4+Ml0scD0wOyEoKDB8cCk+PSgwfG0pKTspX1soUj1mKyhwPDw0KXwwKT4+M109K19bUj4+M10rTSxfWyhSPWYrKHA8PDQpKzh8MCk+PjNdPStfW1I+PjNdK2IscD1wKzF8''@;'; + put 'put ''MDswfEEmJihfWyhSPWsrKDQ4Kmx8MCkrMTZ8MCk+PjNdPStfW1I+PjNdK00sX1soUj1rKyg0OCpsfDApKzI0fDApPj4zXT0rX1tSPj4zXStiKSwwfHcmJihfWyhSPWsrKDQ4Kmx8MCkrMzJ8MCk+PjNdPStfW1I+PjNdK00sX1soUj1rKyg0OCpsfDApKzQwfDApPj4zXT0rX1tSPj4zXStiKSxs''@;'; + put 'put ''PWwrMXwwfX13aGlsZSgwKX1mdW5jdGlvbiBjVyhsLGMsZil7dmFyIG0sQSx3LGIsayxNLEQscD0wLFI9MDtmb3IoUj0xNisobD0wfGFbKHc9MTYrKGx8PTApfDApPj4yXSl8MCxrPStfWyhwPWwrMzJ8MCk+PjNdKyhtPSsoMHwoY3w9MCkpKSxEPStfWyhNPWwrMjR8MCk+PjNdKyhBPSsoMHwo''@;'; + put 'put ''Znw9MCkpKSxiPStfWyhsPWwrNDB8MCk+PjNdK0EsX1tSPj4zXT0rX1tSPj4zXSttLF9bTT4+M109RCxfW3A+PjNdPWssX1tsPj4zXT1iLDAhPSgwfChwPTB8YVsxMisobD0wfGFbdz4+Ml0pPj4yXSkpJiYwIT0oMHxmZVtwKzgxPj4wXSkmJihfWyhSPXArNTZ8MCk+PjNdPStfW1I+PjNdK20s''@;'; + put 'put ''X1socD1wKzY0fDApPj4zXT0rX1twPj4zXStBKSxwPTE7ISgoMHxwKT4oMHxhW2wrMTgwPj4yXSkpOyljVygwfGFbKDB8YVtsKzE4ND4+Ml0pKyhwPDwyKT4+Ml0sYyxmKSxwPXArMXwwLGw9MHxhW3c+PjJdfWZ1bmN0aW9uIGZXKGwsYyxmLHApe3ZhciBtO3JldHVybihtPTB8VWQobHw9MCxj''@;'; + put 'put ''fD0wLGZ8PTAscHw9MCkpPyhsPTB8ZnVuY3Rpb24gQnJlKGwsYyxmLHAsbSl7bHw9MCxjfD0wLGZ8PTAscHw9MCxtfD0wO3ZhciBBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLEs9MCxwZT0wLGdlPTAsYmU9MCxPZT0wO2U6ZG97aWYoKDB8bCk8MSltPTAtbHwwO2Vsc2UgZm9yKGJl''@;'; + put 'put ''PTA9PSgwfHApLHBlPTA9PSgwfG0pLGI9MDs7KXtpZigoMHxiKT09KDB8bCkpe209MDticmVhayBlfWZvcihnZT0wfGFbYysoYjw8Mik+PjJdLEE9YmU/Z2U6cCxSPS4wMTM4ODg4ODg4ODg4ODg4ODgqKEQ9KygwfChrPTB8YVtmKyhiPDwzKT4+Ml0pKSksSz0uMDEzODg4ODg4ODg4ODg4ODg4''@;'; + put 'put ''KihHPSsoMHwoTT0wfGFbZisoYjw8MykrND4+Ml0pKSksdz0wfER0KGdlKTt3Oyl7X1soT2U9MHxhWzEzMisobT0wfGFbdysxNj4+Ml0pPj4yXSk+PjNdPStfW09lPj4zXStSLF9bKE9lPU9lKzh8MCk+PjNdPStfW09lPj4zXStLLF9bKE9lPW0rMTZ8MCk+PjNdPStfW09lPj4zXStELF9bKE9l''@;'; + put 'put ''PW0rMjR8MCk+PjNdPStfW09lPj4zXStHLDB8KG09MHxhW20rMTA4Pj4yXSkmJihfWyhPZT1tKzU2fDApPj4zXT0rX1tPZT4+M10rRCxfWyhPZT1tKzY0fDApPj4zXT0rX1tPZT4+M10rRyk7dDpkb3tpZighcGUpZm9yKG09MHx3MChBLHcpOzspe2lmKCFtKWJyZWFrIHQ7VjYobSxrLE0pLG09''@;'; + put 'put ''MHxTMChBLG0pfX13aGlsZSgwKTt3PTB8enQoZ2Usdyl9Y1coZ2UsayxNKSxiPWIrMXwwfX13aGlsZSgwKTtyZXR1cm4gMHxtfShsLGMsbSxmLDB8YVtwKzEyPj4yXSksRnQobSkpOmw9MSwwfGx9ZnVuY3Rpb24gVEMobCxjLGYscCl7dmFyIEQsUixHLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0w''@;'; + put 'put ''LEs9MCxwZT0wO2lmKEc9bGUsbGU9bGUrMzJ8MCxSPUcsIShEPTB8ZlcobHw9MCxjfD0wLGZ8PTAscHw9MCkpKXtmb3IoaWcoZiksYVtSPj4yXT1hWyhNPTE2KygwfGFbZisxNj4+Ml0pfDApPj4yXSxhW1IrND4+Ml09YVtNKzQ+PjJdLGFbUis4Pj4yXT1hW00rOD4+Ml0sYVtSKzEyPj4yXT1h''@;'; + put 'put ''W00rMTI+PjJdLGFbUisxNj4+Ml09YVtNKzE2Pj4yXSxhW1IrMjA+PjJdPWFbTSsyMD4+Ml0sYVtSKzI0Pj4yXT1hW00rMjQ+PjJdLGFbUisyOD4+Ml09YVtNKzI4Pj4yXSxtPVIrOHwwLEE9UisxNnwwLHc9UisyNHwwLHA9MDshKCgwfHApPj0oMHxsKSk7KXtmb3IoYj0wfGFbMTgwKyhrPTB8''@;'; + put 'put ''YVsxNisoMHxhW2MrKHA8PDIpPj4yXSk+PjJdKT4+Ml0saz1rKzE4NHwwLGY9MTshKCgwfGYpPigwfGIpKTspX1tSPj4zXT0rX1soK19bUj4+M108K19bKHBlPTE2KygwfGFbMTYrKDB8YVsoMHxhW2s+PjJdKSsoZjw8Mik+PjJdKT4+Ml0pfDApPj4zXT9SOnBlKT4+M10sSz0xNisocGU9MHxh''@;'; + put 'put ''WzE2KygwfGFbKDB8YVtrPj4yXSkrKGY8PDIpPj4yXSk+PjJdKXwwLF9bbT4+M109K19bKCtfW20+PjNdPCtfW3BlKzI0Pj4zXT9SOkspKzg+PjNdLF9bQT4+M109K19bKCtfW0E+PjNdPitfW3BlKzMyPj4zXT9SOkspKzE2Pj4zXSxfW3c+PjNdPStfWygrX1t3Pj4zXT4rX1twZSs0MD4+M10/''@;'; + put 'put ''UjpLKSsyND4+M10sZj1mKzF8MDtwPXArMXwwfWFbTT4+Ml09YVtSPj4yXSxhW00rND4+Ml09YVtSKzQ+PjJdLGFbTSs4Pj4yXT1hW1IrOD4+Ml0sYVtNKzEyPj4yXT1hW1IrMTI+PjJdLGFbTSsxNj4+Ml09YVtSKzE2Pj4yXSxhW00rMjA+PjJdPWFbUisyMD4+Ml0sYVtNKzI0Pj4yXT1hW1Ir''@;'; + put 'put ''MjQ+PjJdLGFbTSsyOD4+Ml09YVtSKzI4Pj4yXX1yZXR1cm4gbGU9RywwfER9ZnVuY3Rpb24gYTcobCxjLGYscCl7dmFyIEE7cmV0dXJuIGx8PTAsY3w9MCxmfD0wLEE9bGUsbGU9bGUrMTZ8MCwocHw9MCl8fFByKDk5NTM0LDk5NTQwLDE0MDAsOTk1NDcpLGY9MHx4YyhsLGYsZiksYVtwKzg+''@;'; + put 'put ''PjJdPWYsYVtwKzEyPj4yXT0wLGFbcCsyMD4+Ml09MCxTMShsLGMscCksbGU9QSwwfGFbcCsxNj4+Ml19ZnVuY3Rpb24geGMobCxjLGYpe2N8PTAsZnw9MDt2YXIgcCxtLHcsQT0wO3c9bGUsbGU9bGUrMTZ8MCxBPXcscD13KzR8MCxtPTB8TGkobHw9MCw5OTY4OSk7ZTpkb3tpZihtKWlmKGFb''@;'; + put 'put ''QT4+Ml09cCxBPTE9PSgwfGlsKG0sMTM3Mzk1LEEpKSxsPTB8YVtwPj4yXSxBJigwfGwpPi0xKWM9bDtlbHNle3N3aXRjaCgwfGZlW20+PjBdKXtjYXNlIDg0OmNhc2UgMTE2OmJyZWFrO2RlZmF1bHQ6YnJlYWsgZX1jPWZ9fXdoaWxlKDApO3JldHVybiBsZT13LDB8Y31mdW5jdGlvbiBTMShs''@;'; + put 'put ''LGMsZil7cmV0dXJuIGN8PTAsZnw9MCwwfGZ1bmN0aW9uIE4yKGwsYyxmKXtsfD0wLGN8PTA7dmFyIG0sQSx3LGssRCxnZSxwPTAsYj0wLGJlPTA7Z2U9bGUsbGU9bGUrNjR8MCxiPWdlKzh8MCx3PWdlLG09Z2UrNDh8MCxBPWdlKzQ0fDAsKGZ8PTApfHxQcig5OTUzNCw5OTU0MCwxMjkyLDk5''@;'; + put 'put ''NTgxKSxhWyhmKzI4fDApPj4yXT0wLGFbKEQ9ZisxNnwwKT4+Ml09YyxhWyhrPWYrNHwwKT4+Ml09MCxhW2YrMjQ+PjJdPTA7ZTpkb3tpZigwfGwmJihwPTB8ZmVbbD4+MF0scDw8MjQ+PjI0KSlzd2l0Y2gocDw8MjQ+PjI0fDApe2Nhc2UgOTc6aWYoMHxzMihsLDk5NTk5LDUpKXtpZigwfHMy''@;'; + put 'put ''KGwsOTk2MDUsNikpYnJlYWsgZTthW0Q+PjJdPTUsYVtiPj4yXT1tLGI9KDB8aWwobCs1fDAsOTk2MTIsYikpPjAsam5bZj4+Ml09YiYoYmU9K2puW20+PjJdKT4wP2JlOjE7YnJlYWsgZX1pZihhW0Q+PjJdPTQsYj0wfENsKGwrNXwwLGYpLGFbdz4+Ml09QSwhKChiPSgwfGlsKGIsMTM3Mzk1''@;'; + put 'put ''LHcpKT4wKSYoMHwoYz0wfGFbQT4+Ml0pKT4wKSlicmVhayBlO2Fbaz4+Ml09YzticmVhayBlO2Nhc2UgOTk6aWYocDw8MjQ+PjI0IT05OXx8MHxaaShsLDEwODAwNikpYnJlYWsgZTthW0Q+PjJdPTE7YnJlYWsgZTtjYXNlIDEwMzppZihwPDwyND4+MjQhPTEwM3x8MHxaaShsLDExMTQ5NCkp''@;'; + put 'put ''YnJlYWsgZTthW0Q+PjJdPTM7YnJlYWsgZTtjYXNlIDExMDppZihwPDwyND4+MjQhPTExMHx8MHxaaShsLDExMTQ4MSkpYnJlYWsgZTthW0Q+PjJdPTI7YnJlYWsgZTtkZWZhdWx0OmJyZWFrIGV9fXdoaWxlKDApO3JldHVybiBsZT1nZSwwfGFbRD4+Ml19KDB8TGkobHw9MCw5OTU3MiksYyxm''@;'; + put 'put ''KX1mdW5jdGlvbiBDbChsLGMpe2x8PTAsY3w9MDt2YXIgZj0wLHA9MCxtPTA7ZTpkb3tpZig5NT09KDB8ZmVbbD4+MF0pKWZvcihwPWMrMjh8MCxmPTE7Oyl7bD1sKzF8MDt0OmZvcig7Oyl7aWYoIShmJiYoYz0wfGZlW2w+PjBdLGM8PDI0Pj4yNCkpKWJyZWFrIGU7c3dpdGNoKGM8PDI0Pj4y''@;'; + put 'put ''NHwwKXtjYXNlIDk5Om09MTA7YnJlYWsgdDtjYXNlIDEwNTptPTk7YnJlYWsgdDtjYXNlIDExNzptPTExO2JyZWFrIHQ7Y2FzZSAxMTY6bT0xMjticmVhayB0O2Nhc2UgOTg6Yz0zMjticmVhayB0O2Nhc2UgMTA4Om09NzticmVhayB0O2Nhc2UgMTE0Om09ODticmVhayB0O2RlZmF1bHQ6Zj0w''@;'; + put 'put ''fX03PT0oMHxtKT8obT0wLGM9NCk6OD09KDB8bSk/KG09MCxjPTgpOjk9PSgwfG0pPyhtPTAsYz02NCk6MTA9PSgwfG0pPyhtPTAsYz0xKToxMT09KDB8bSk/KG09MCxjPTIpOjEyPT0oMHxtKSYmKG09MCxjPTE2KSxhW3A+PjJdPWFbcD4+Ml18Y319d2hpbGUoMCk7cmV0dXJuIDB8bH1mdW5j''@;'; + put 'put ''dGlvbiBKbWUobCxjLGYscCl7bHw9MCxjfD0wLGZ8PTA7dmFyIHcsYixtPTAsQT0wO2I9bGUsbGU9bGUrODB8MCxBPWIrNjR8MCx3PWIsYVsocHw9MCk+PjJdPTA7ZG97bT0wfGZlW2M+PjBdLGM9YysxfDB9d2hpbGUoMCE9KDB8JGMobSkpKTtlOmRve3N3aXRjaCgwfG0pe2Nhc2UgNjk6aWYo''@;'; + put 'put ''YVtsPj4yXT0wLCEoYz0wfHBGKGMsbCs4fDApKSl7YVtwPj4yXT0xLGM9MDticmVhayBlfWYmJihhW2wrNzI+PjJdPWFbZj4+Ml0pO2JyZWFrO2Nhc2UgMTAxOmlmKGFbbD4+Ml09MSwhKGM9MHxwRihjLGwrOHwwKSkpe2FbcD4+Ml09MSxjPTA7YnJlYWsgZX1mJiYoYVtsKzcyPj4yXT1hW2Y+''@;'; + put 'put ''PjJdKTticmVhaztjYXNlIDgwOmlmKGFbbD4+Ml09MiwhKGM9MHxJQyhjLGwrOHwwKSkpe2FbcD4+Ml09MSxjPTA7YnJlYWsgZX1mJiYoYVtsKzcyPj4yXT1hW2YrND4+Ml0pO2JyZWFrO2Nhc2UgMTEyOmlmKGFbbD4+Ml09MywhKGM9MHxJQyhjLGwrOHwwKSkpe2FbcD4+Ml09MSxjPTA7YnJl''@;'; + put 'put ''YWsgZX1mJiYoYVtsKzcyPj4yXT1hW2YrND4+Ml0pO2JyZWFrO2Nhc2UgOTg6aWYoYVtsPj4yXT00LCEoYz0wfElDKGMsbCs4fDApKSl7YVtwPj4yXT0xLGM9MDticmVhayBlfWYmJihhW2wrNzI+PjJdPWFbZis4Pj4yXSk7YnJlYWs7Y2FzZSA2NjppZihhW2w+PjJdPTUsIShjPTB8SUMoYyxs''@;'; + put 'put ''Kzh8MCkpKXthW3A+PjJdPTEsYz0wO2JyZWFrIGV9ZiYmKGFbbCs3Mj4+Ml09YVtmKzg+PjJdKTticmVhaztjYXNlIDk5OmlmKCEoYz0wfHJwKGMsQSkpKXthW3A+PjJdPTEsYz0wO2JyZWFrIGV9aWYobT0wfFJUKDB8YVtBPj4yXSx3KSxhW0E+PjJdPW0sIW0pe2FbcD4+Ml09MSxjPTA7YnJl''@;'; + put 'put ''YWsgZX1pZigwfGFbdz4+Ml0pe2FbbD4+Ml09MTQsbT13LEE9NjQrKHA9bCs4fDApfDA7ZG97YVtwPj4yXT1hW20+PjJdLHA9cCs0fDAsbT1tKzR8MH13aGlsZSgoMHxwKTwoMHxBKSk7aWYoIWYpYnJlYWsgZTthW2wrNzI+PjJdPWFbZis0MD4+Ml07YnJlYWsgZX1pZihhW2w+PjJdPTksYVts''@;'; + put 'put ''Kzg+PjJdPWFbdys4Pj4yXSwhZilicmVhayBlO2FbbCs3Mj4+Ml09YVtmKzI0Pj4yXTticmVhayBlO2Nhc2UgNjc6aWYoIShjPTB8cnAoYyxBKSkpe2FbcD4+Ml09MSxjPTA7YnJlYWsgZX1pZihtPTB8UlQoMHxhW0E+PjJdLHcpLGFbQT4+Ml09bSwhbSl7YVtwPj4yXT0xLGM9MDticmVhayBl''@;'; + put 'put ''fWlmKDB8YVt3Pj4yXSl7YVtsPj4yXT0xMyxtPXcsQT02NCsocD1sKzh8MCl8MDtkb3thW3A+PjJdPWFbbT4+Ml0scD1wKzR8MCxtPW0rNHwwfXdoaWxlKCgwfHApPCgwfEEpKTtpZighZilicmVhayBlO2FbbCs3Mj4+Ml09YVtmKzQwPj4yXTticmVhayBlfWlmKGFbbD4+Ml09OCxhW2wrOD4+''@;'; + put 'put ''Ml09YVt3Kzg+PjJdLCFmKWJyZWFrIGU7YVtsKzcyPj4yXT1hW2YrMjA+PjJdO2JyZWFrIGU7Y2FzZSA3NjppZihhW2w+PjJdPTYsIShjPTB8SUMoYyxsKzh8MCkpKXthW3A+PjJdPTEsYz0wO2JyZWFrIGV9ZiYmKGFbbCs3Mj4+Ml09YVtmKzEyPj4yXSk7YnJlYWs7Y2FzZSA4NDppZihhW2w+''@;'; + put 'put ''PjJdPTcsIShjPTB8UWMoYyxsKzh8MCkpKXthW3A+PjJdPTEsYz0wO2JyZWFrIGV9aWYoIShjPTB8UWMoYyxsKzE2fDApKSl7YVtwPj4yXT0xLGM9MDticmVhayBlfWlmKCEoYz0wfFByZShjLGwrMjR8MCkpKXthW3A+PjJdPTEsYz0wO2JyZWFrIGV9aWYoIShjPTB8UWMoYyxsKzMyfDApKSl7''@;'; + put 'put ''YVtwPj4yXT0xLGM9MDticmVhayBlfWlmKCEoYz0wfHJwKGMsbCs0MHwwKSkpe2FbcD4+Ml09MSxjPTA7YnJlYWsgZX1mJiYoYVtsKzcyPj4yXT1hW2YrMTY+PjJdKTticmVhaztjYXNlIDcwOmlmKGFbbD4+Ml09MTAsIShjPTB8UWMoYyxsKzh8MCkpKXthW3A+PjJdPTEsYz0wO2JyZWFrIGV9''@;'; + put 'put ''aWYoIShjPTB8cnAoYyxsKzE2fDApKSl7YVtwPj4yXT0xLGM9MDticmVhayBlfWYmJihhW2wrNzI+PjJdPWFbZisyOD4+Ml0pO2JyZWFrO2Nhc2UgODM6aWYoYVtsPj4yXT0xMSwhKGM9MHxycChjLGwrOHwwKSkpe2FbcD4+Ml09MSxjPTA7YnJlYWsgZX1mJiYoYVtsKzcyPj4yXT1hW2YrMzI+''@;'; + put 'put ''PjJdKTticmVhaztjYXNlIDczOmlmKGFbbD4+Ml09MTIsIShjPTB8cEYoYyxsKzh8MCkpKXthW3A+PjJdPTEsYz0wO2JyZWFrIGV9aWYoIShjPTB8cnAoYyxsKzQwfDApKSl7YVtwPj4yXT0xLGM9MDticmVhayBlfWYmJihhW2wrNzI+PjJdPWFbZiszNj4+Ml0pO2JyZWFrO2Nhc2UgMTE2Omlm''@;'; + put 'put ''KGFbbD4+Ml09MTUsIShjPTB8WG1lKGMsbCs4fDApKSl7YVtwPj4yXT0xLGM9MDticmVhayBlfWYmJihhW2wrNzI+PjJdPWFbZis0ND4+Ml0pO2JyZWFrO2Nhc2UgMDpjPTA7YnJlYWs7ZGVmYXVsdDphW3A+PjJdPTEsYz0wfX13aGlsZSgwKTtyZXR1cm4gbGU9YiwwfGN9ZnVuY3Rpb24gcEYo''@;'; + put 'put ''bCxjKXt2YXIgcCxtLHcsZj0wLEE9MDtyZXR1cm4gdz1sZSxsZT1sZSsxNnwwLF9bKGN8PTApPj4zXT0raTMobHw9MCxwPXcpLCgwfChtPTB8YVtwPj4yXSkpIT0oMHxsKSYmKF9bYys4Pj4zXT0raTMobSxwKSwoMHxtKSE9KDB8KEE9MHxhW3A+PjJdKSkpJiYoX1tjKzE2Pj4zXT0raTMoQSxw''@;'; + put 'put ''KSwoMHxBKSE9KDB8KGY9MHxhW3A+PjJdKSkpPyhfW2MrMjQ+PjNdPStpMyhmLHApLGw9KDB8Zik9PSgwfChsPTB8YVtwPj4yXSkpPzA6bCk6bD0wLGxlPXcsMHxsfWZ1bmN0aW9uIElDKGwsYyl7Y3w9MDt2YXIgQSxiLGssZj0wLHA9MCxtPTAsdz0wO2s9bGUsbGU9bGUrMTZ8MCxBPWssbD0w''@;'; + put 'put ''fGo2KGx8PTAsYj1rKzR8MCk7ZG97aWYobCl7Zm9yKHc9MHxzaChmPTB8YVtiPj4yXSwyNCksYVtjPj4yXT1mLHA9dyxtPTA7Oyl7aWYoKDB8bSk+PSgwfGYpKXtmPTk7YnJlYWt9aWYoX1twPj4zXT0raTMobCxBKSwoMHxsKT09KDB8KGY9MHxhW0E+PjJdKSkpe2Y9NTticmVha31pZihfW3Ar''@;'; + put 'put ''OD4+M109K2kzKGYsQSksKDB8Zik9PSgwfChsPTB8YVtBPj4yXSkpKXtmPTc7YnJlYWt9X1twKzE2Pj4zXT0wLHA9cCsyNHwwLGY9MHxhW2M+PjJdLG09bSsxfDB9aWYoNT09KDB8Zikpe2FbYj4+Ml09bSxGdCh3KSxsPTA7YnJlYWt9aWYoNz09KDB8Zikpe2FbYj4+Ml09bSxGdCh3KSxsPTA7''@;'; + put 'put ''YnJlYWt9aWYoOT09KDB8Zikpe2FbYj4+Ml09bSxhW2MrND4+Ml09dzticmVha319ZWxzZSBsPTB9d2hpbGUoMCk7cmV0dXJuIGxlPWssMHxsfWZ1bmN0aW9uIHJwKGwsYyl7Y3w9MDt2YXIgcCx3LGIsZj0wLG09MCxBPTA7Yj1sZSxsZT1sZSsxNnwwLGw9MHxqNihsfD0wLHc9YikscD0wfGFb''@;'; + put 'put ''dz4+Ml07ZG97aWYoMD09KDB8bCl8KDB8cCk8MSlsPTA7ZWxzZXtmb3IoOyhmPShBPTB8ZmVbbD4+MF0pPDwyND4+MjQ9PTApXkE8PDI0Pj4yNCE9NDU7KWw9bCsxfDA7aWYoZilsPTA7ZWxzZXtmb3IobT1BPTB8c2gocCsxfDAsMSksZj1wOzspe2lmKGw9bCsxfDAsKDB8Zik8PTApe2Y9OTti''@;'; + put 'put ''cmVha31pZighKChmPTB8ZmVbbD4+MF0pPDwyND4+MjQpKXtmPTg7YnJlYWt9ZmVbbT4+MF09ZixhW3c+PjJdPWY9KDB8YVt3Pj4yXSktMXwwLG09bSsxfDB9aWYoOD09KDB8Zikpe0Z0KEEpLGw9MDticmVha31pZig5PT0oMHxmKSl7ZmVbbT4+MF09MCxhW2M+PjJdPUE7YnJlYWt9fX19d2hp''@;'; + put 'put ''bGUoMCk7cmV0dXJuIGxlPWIsMHxsfWZ1bmN0aW9uIFJUKGwsYyl7dmFyIGY7c3dpdGNoKGN8PTAsMHwoZj0wfGZlWyhsfD0wKT4+MF0pKXtjYXNlIDkxOmw9MHxmdW5jdGlvbiBCVChsLGMpe2x8PTA7dmFyIEEsayxNLEQsZj0wLHA9MCxtPTAsdz0wLGI9MDtEPWxlLGxlPWxlKzE2fDAsaz1E''@;'; + put 'put ''LGFbKGN8PTApPj4yXT0xLEE9MHxRYyhsLE09Yys4fDApO2Rve2lmKDAhPSgwfEEpJiYwIT0oMHwodz0wfFFjKEEsYysxNnwwKSkpJiYwIT0oMHwocD0wfFFjKHcsYysyNHwwKSkpJiYwIT0oMHwobT0wfFFjKHAsYyszMnwwKSkpJiYwIT0oMHwoZj0wfGo2KG0sYj1jKzQwfDApKSkpe2Zvciht''@;'; + put 'put ''PTB8c2goYz0wfGFbYj4+Ml0sOCkscD0wOzspe2lmKCgwfHApPj0oMHxjKSl7Zj0xMzticmVha31pZighKGY9MHxRYyhmLGspKSl7Zj05O2JyZWFrfWlmKGpuW20rKHA8PDMpPj4yXT0rX1trPj4zXSwhKGY9MHxycChmLG0rKHA8PDMpKzR8MCkpKXtmPTEyO2JyZWFrfXA9cCsxfDAsYz0wfGFb''@;'; + put 'put ''Yj4+Ml19aWYoOT09KDB8Zikpe0Z0KG0pLGw9MDticmVha31pZigxMj09KDB8Zikpe0Z0KG0pLGw9MDticmVha31pZigxMz09KDB8Zikpe2FbTSszNj4+Ml09bTticmVha319ZWxzZSBsPTB9d2hpbGUoMCk7cmV0dXJuIGxlPUQsMHxsfShsKzF8MCxjKTticmVhaztjYXNlIDQwOmw9MHxmdW5j''@;'; + put 'put ''dGlvbiBQVChsLGMpe2x8PTA7dmFyIGIsTSxSLGY9MCxwPTAsbT0wLEE9MCx3PTAsaz0wLEQ9MDtSPWxlLGxlPWxlKzE2fDAsTT1SLGFbKGN8PTApPj4yXT0yLGI9MHxRYyhsLGMrOHwwKTtkb3tpZigwIT0oMHxiKSYmMCE9KDB8KGs9MHxRYyhiLGMrMTZ8MCkpKSYmMCE9KDB8KHA9MHxRYyhr''@;'; + put 'put ''LGMrMjR8MCkpKSYmMCE9KDB8KG09MHxRYyhwLGMrMzJ8MCkpKSYmMCE9KDB8KEE9MHxRYyhtLGMrNDB8MCkpKSYmMCE9KDB8KHc9MHxRYyhBLGMrNDh8MCkpKSYmMCE9KDB8KGY9MHxqNih3LEQ9Yys1NnwwKSkpKXtmb3IoQT0wfHNoKHA9MHxhW0Q+PjJdLDgpLG09MDs7KXtpZigoMHxtKT49''@;'; + put 'put ''KDB8cCkpe2Y9MTU7YnJlYWt9aWYoIShmPTB8UWMoZixNKSkpe2Y9MTE7YnJlYWt9aWYoam5bQSsobTw8Myk+PjJdPStfW00+PjNdLCEoZj0wfHJwKGYsQSsobTw8MykrNHwwKSkpe2Y9MTQ7YnJlYWt9bT1tKzF8MCxwPTB8YVtEPj4yXX1pZigxMT09KDB8Zikpe0Z0KEEpLGw9MDticmVha31p''@;'; + put 'put ''ZigxND09KDB8Zikpe0Z0KEEpLGw9MDticmVha31pZigxNT09KDB8Zikpe2FbYys2MD4+Ml09QTticmVha319ZWxzZSBsPTB9d2hpbGUoMCk7cmV0dXJuIGxlPVIsMHxsfShsKzF8MCxjKTticmVhaztjYXNlIDQ3OmNhc2UgMzU6YVtjPj4yXT0wLGFbYys4Pj4yXT1sO2JyZWFrO2RlZmF1bHQ6''@;'; + put 'put ''MHxpdihmKT8oYVtjPj4yXT0wLGFbYys4Pj4yXT1sKTpsPTB9cmV0dXJuIDB8bH1mdW5jdGlvbiBRYyhsLGMpe2N8PTA7dmFyIHAsbSxmPTA7cmV0dXJuIG09bGUsbGU9bGUrMTZ8MCxwPStpMyhsfD0wLGY9bSksKDB8KGY9MHxhW2Y+PjJdKSk9PSgwfGwpP2Y9MDpfW2M+PjNdPXAsbGU9bSww''@;'; + put 'put ''fGZ9ZnVuY3Rpb24gUHJlKGwsYyl7Y3w9MDt2YXIgZixwPTA7cmV0dXJuIGY9bGUsbGU9bGUrMTZ8MCxsPTB8ajYobHw9MCxwPWYpLGFbYz4+Ml09KDB8KHA9MHxhW3A+PjJdKSk8MD8wOjB8cD8yOjEsbGU9ZiwwfGx9ZnVuY3Rpb24gWG1lKGwsYyl7dmFyIGYscDtyZXR1cm4gZj1sZSxsZT1s''@;'; + put 'put ''ZSsxNnwwLGFbKGN8PTApPj4yXT0wfGZ1bmN0aW9uIElBZShsLGMsZil7cmV0dXJuIDB8ZiQobHw9MCxjfD0wLGZ8PTAsLTEsMCl9KGx8PTAscD1mLDEwKSxsZT1mLDB8KCgwfChjPTB8YVtwPj4yXSkpPT0oMHxsKT8wOmMpfWZ1bmN0aW9uIGo2KGwsYyl7dmFyIGYscDtyZXR1cm4gZj1sZSxs''@;'; + put 'put ''ZT1sZSsxNnwwLGFbKGN8PTApPj4yXT0wfF9MKGx8PTAscD1mLDEwKSxsZT1mLDB8KCgwfChjPTB8YVtwPj4yXSkpPT0oMHxsKT8wOmMpfWZ1bmN0aW9uIEdoKGwsYyxmKXtyZXR1cm4gMHxmdW5jdGlvbiBMYShsLGMsZixwKXtsfD0wLGN8PTAsZnw9MCxwfD0wO3ZhciBNLFIsbT0wLEE9MCx3''@;'; + put 'put ''PTAsYj0wLGs9MCxEPTA7Uj1sZSxsZT1sZSs5NnwwLE09UixEPVIrODB8MDtkb3tpZihsKXtmb3IocHx8KHA9MHxzaCgxLDIwKSxhW3ArND4+Ml09Zj4+PjA+ODA/Zjo4MCksaz0wfGFbcCs0Pj4yXSwoZj0wfGFbcD4+Ml0pPyh1MigoYj0wfFVhKDB8YVtwKzg+PjJdLDB8QXIodz1mKzEwMHww''@;'; + put 'put ''LGspKSkrKDB8QXIoayxmKSl8MCwwLDEwMCprfDApLGY9bCk6KHc9MTAwLGY9bCxiPTB8c2goMTAwLGspKTtmPTB8Sm1lKE0sZixjLEQpOyl7bD0wfGFbcD4+Ml0sbT13PDwxLEE9MHxBcih3LGspLCgwfGwpPT0oMHx3KT8odTIoKGI9MHxVYShiLDB8QXIobSxrKSkpK0F8MCwwLDB8QSksbD0w''@;'; + put 'put ''fGFbcD4+Ml0pOm09dyxBPU0sdz04MCsobD1iKygwfEFyKGwsaykpfDApfDA7ZG97YVtsPj4yXT1hW0E+PjJdLGw9bCs0fDAsQT1BKzR8MH13aGlsZSgoMHxsKTwoMHx3KSk7YVtwPj4yXT0xKygwfGFbcD4+Ml0pLHc9bX1pZigwfGFbRD4+Ml0mJihhWyhEPXArMTZ8MCk+PjJdPTF8YVtEPj4y''@;'; + put 'put ''XSksZj0wfGFbcD4+Ml0pe2FbcCs4Pj4yXT0wfFVhKGIsMHxBcihmLGspKTticmVha31GdChiKSxGdChwKSxwPTA7YnJlYWt9fXdoaWxlKDApO3JldHVybiBsZT1SLDB8cH0obHw9MCxjfD0wLGZ8PTAsMCl9ZnVuY3Rpb24gZ0YobCl7cmV0dXJuIDB8R2gobHw9MCwwLDApfWZ1bmN0aW9uIEZy''@;'; + put 'put ''ZShsKXt2YXIgcCxjPTAsZj0wLG09MCxBPTAsdz0wO2lmKHA9MHxhWzEyKyhsfD0wKT4+Ml0sMHxsKXtmb3IobT0wfGFbbCs4Pj4yXSxBPWwrNHwwLHc9MD09KDB8cCksYz0wOyEoKDB8Yyk+PSgwfGFbbD4+Ml0pKTspZj1tKygwfEFyKDB8YVtBPj4yXSxjKSl8MCx3fHxDb1sxMjcmcF0oZiks''@;'; + put 'put ''S21lKGYpLGM9YysxfDA7RnQobSksRnQobCl9fWZ1bmN0aW9uIEttZShsKXtzd2l0Y2goMHxhWyhsfD0wKT4+Ml0pe2Nhc2UgMzpjYXNlIDI6Y2FzZSA1OmNhc2UgNDpjYXNlIDY6RnQoMHxhW2wrOCs0Pj4yXSk7YnJlYWs7Y2FzZSA3OmNhc2UgMTI6RnQoMHxhW2wrNDA+PjJdKTticmVhaztj''@;'; + put 'put ''YXNlIDk6Y2FzZSA4OmNhc2UgMTE6RnQoMHxhW2wrOD4+Ml0pO2JyZWFrO2Nhc2UgMTQ6Y2FzZSAxMzohZnVuY3Rpb24gJG1lKGwpe3ZhciBjPTAsZj0wLHA9MDtzd2l0Y2goMHxhWyhsfD0wKT4+Ml0pe2Nhc2UgMTpmb3IocD1sKzQwfDAsYz1sKzgrMzZ8MCxsPTA7Zj0wfGFbYz4+Ml0sISgo''@;'; + put 'put ''MHxsKT49KDB8YVtwPj4yXSkpOylGdCgwfGFbZisobDw8MykrND4+Ml0pLGw9bCsxfDA7RnQoZik7YnJlYWs7Y2FzZSAyOmZvcihwPWwrNTZ8MCxmPWwrNjB8MCxsPTA7Yz0wfGFbZj4+Ml0sISgoMHxsKT49KDB8YVtwPj4yXSkpOylGdCgwfGFbYysobDw8MykrND4+Ml0pLGw9bCsxfDA7RnQo''@;'; + put 'put ''Yyl9fShsKzh8MCk7YnJlYWs7Y2FzZSAxMDpGdCgwfGFbbCsxNj4+Ml0pfX1mdW5jdGlvbiBEQyhsLGMsZil7bHw9MCxmfD0wO3ZhciBrLEQsUixwPTAsbT0wLEE9MCx3PTAsYj0wLE09MDtSPWxlLGxlPWxlKzE2fDAsaz1SKzR8MCxEPVIsYVsoY3w9MCk+PjJdPTAsYVtmPj4yXT0wIT0oMHxT''@;'; + put 'put ''YygwfGNyKGwpKSkmMSxwPTB8YVs0NzE4NF07ZTpkb3tpZigwfHAmJihBPTB8SG8obCxwKSx3PTB8ZmVbQT4+MF0sdzw8MjQ+PjI0KSl7Zm9yKHA9MjAzODg7Oyl7aWYoIShtPTB8YVtwPj4yXSkpYnJlYWsgZTtpZih3PDwyND4+MjQ9PSgwfGZlW20+PjBdKSYmMD09KDB8WmkoQSxtKSkpYnJl''@;'; + put 'put ''YWs7cD1wKzEyfDB9YVtjPj4yXT1hW3ArND4+Ml0sYVtmPj4yXT1hW3ArOD4+Ml19fXdoaWxlKDApOzB8KHA9MHxhWzQ3MTk1XSkmJjE9PSgwfGFbZj4+Ml0pJiYoYj0wfEhvKGwscCksMHxmZVtiPj4wXSkmJmhXKGIsZiksMHwocD0wfGFbNDcxOTZdKSYmMT09KDB8YVtjPj4yXSkmJihNPTB8''@;'; + put 'put ''SG8obCxwKSwwfGZlW00+PjBdKSYmaFcoTSxjKSwwfGZlWzE1MysoMHxhW2wrMTY+PjJdKT4+MF0mJihiPWwrLTQ4fDAsREMoMHxLYSh3PTB8Y3IoMHxhWygyPT0oMyZhW2w+PjJdfDApP2w6YikrNDA+PjJdKSwwfGFbKDI9PSgwfChNPTMmYVtsPj4yXSkpP2w6YikrNDA+PjJdLDB8YVsoMz09''@;'; + put 'put ''KDB8TSk/bDpsKzQ4fDApKzQwPj4yXSwwLDApLGssRCksYVtmPj4yXT1hW2s+PjJdfGFbZj4+Ml0sYVtjPj4yXT1hW0Q+PjJdfGFbYz4+Ml0pLGxlPVJ9ZnVuY3Rpb24gaFcobCxjKXtsfD0wLGN8PTA7dmFyIGssTSxSLGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wLEQ9MDtSPWxlLGxlPWxlKzE2''@;'; + put 'put ''fDAsTT1SLGs9Uis0fDAsYj0wLGY9MDtlOmZvcig7Oyl7Zm9yKGFbYz4+Ml09ZixtPSgwfGIpPDQsQT0zPT0oMHxiKSx3PTA9PSgwfGIpOzspe2lmKCEobSYwIT0oMHxmZVtsPj4wXSkpKWJyZWFrIGU7aWYoYVtrPj4yXT0wLHA9MHxkVyhsLGspLCEoZj0wfGFbaz4+Ml0pKXtEPTU7YnJlYWsg''@;'; + put 'put ''ZX1pZighKEEmKGw9OD09KDB8ZikpKSYmKCEodyZsKXx8MHxmZVtwPj4wXSkpYnJlYWs7YVtrPj4yXT0wLGw9cH1mPWFbYz4+Ml18Zjw8KGI8PDMpLGI9YisxfDAsbD1wfTU9PSgwfEQpJiYoYVtNPj4yXT1sLCRyKDAsOTk2OTQsTSkpLGxlPVJ9ZnVuY3Rpb24gZFcobCxjKXtsfD0wLGN8PTA7''@;'; + put 'put ''dmFyIHAsbSxmPTA7aWYobT1sZSxsZT1sZSsxNnwwLGFbKHA9bSk+PjJdPTAsKDB8KGY9MHxtRihsLDIwNDQ4LHApKSk9PSgwfGwpKXtmb3IoOygwfGwpIT0oMHwoZj0wfG1GKGwsMjA0NjQscCkpKTspbD1mO2Y9MHxtRihsLDIwNTEyLHApfXJldHVybiAwIT0oMHwobD0wfGFbcD4+Ml0pKSYw''@;'; + put 'put ''PT0oMTUmbHwwKSYmKGFbcD4+Ml09bHw9MSksYVtjPj4yXT1hW2M+PjJdfGwsbGU9bSwwfGZ9ZnVuY3Rpb24gbUYobCxjLGYpe2x8PTAsY3w9MCxmfD0wO2Zvcih2YXIgcD0wLG09MCxBPTA7cD0wfGFbYz4+Ml07KXtpZighKDB8czIobCxwLG09MHxVbyhwKSkpKXtBPTQ7YnJlYWt9Yz1jKzh8''@;'; + put 'put ''MH1yZXR1cm4gND09KDB8QSkmJihhW2Y+PjJdPWFbZj4+Ml18YVtjKzQ+PjJdLGw9bCttfDApLDB8bH1mdW5jdGlvbiBsNyhsLGMpe2x8PTAsY3w9MDt2YXIgZj0wLHA9MCxtPTAsQT0wLHc9MDtmb3IoQT0wLGY9MDs0IT0oMHxBKTspe2ZvcihtPWM+PihBPDwzKSYxNSxwPTE0MDA7MHxhW3Ar''@;'; + put 'put ''MTY+PjJdOyl7aWYoKDB8bSk9PSgwfGFbcD4+Ml0pKXt3PTY7YnJlYWt9cD1wKzI0fDB9Nj09KDB8dykmJih3PTAsZj0rX1twKzg+PjNdK2YpLEE9QSsxfDB9cmV0dXJuIDEwKmYqK01sKGwsMHxhWzQ3MTg4XSwxLDApfWZ1bmN0aW9uIEFGKGwsYyxmLHAsbSxBKXtjfD0wLGZ8PTAscHw9MCxt''@;'; + put 'put ''fD0wO3ZhciBiLGssRCxLLHBlLGdlLHc9MCxNPTAsUj0wLEc9MDtyZXR1cm4gRD1sZSxsZT1sZSs4MHwwLGI9RCs3MnwwLGs9RCs4fDAsTT1ELHc9K2w3KGx8PTAsQXw9MCksX1tNPj4zXT13Kj13LGFbbSsxMj4+Ml09QSxhWyhBPW0rMzJ8MCk+PjJdPWFbKG09YysoKGw9cCszfDApPDw0KXww''@;'; + put 'put ''KT4+Ml0sYVtBKzQ+PjJdPWFbbSs0Pj4yXSxhW0ErOD4+Ml09YVttKzg+PjJdLGFbQSsxMj4+Ml09YVttKzEyPj4yXSwoMHxwKT4oMHxmKSYmKEc9K19bYysocDw8NCkrOD4+M10tK19bYysobDw8NCkrOD4+M10pKkcrKFI9K19bYysocDw8NCk+PjNdLStfW20+PjNdKSpSPHcmJihwPXArLTN8''@;'; + put 'put ''MCksYVsoZ2U9ays0OHwwKT4+Ml09YVsocGU9YysocDw8NCl8MCk+PjJdLGFbZ2UrND4+Ml09YVtwZSs0Pj4yXSxhW2dlKzg+PjJdPWFbcGUrOD4+Ml0sYVtnZSsxMj4+Ml09YVtwZSsxMj4+Ml0sYVsoSz1rKzMyfDApPj4yXT1hWyhsPWMrKHArMTw8NCl8MCk+PjJdLGFbSys0Pj4yXT1hW2wr''@;'; + put 'put ''ND4+Ml0sYVtLKzg+PjJdPWFbbCs4Pj4yXSxhW0srMTI+PjJdPWFbbCsxMj4+Ml0sYVsobT1rKzE2fDApPj4yXT1hWyhmPWMrKHArMjw8NCl8MCk+PjJdLGFbbSs0Pj4yXT1hW2YrND4+Ml0sYVttKzg+PjJdPWFbZis4Pj4yXSxhW20rMTI+PjJdPWFbZisxMj4+Ml0sYVtrPj4yXT1hW0E+PjJd''@;'; + put 'put ''LGFbays0Pj4yXT1hW0ErND4+Ml0sYVtrKzg+PjJdPWFbQSs4Pj4yXSxhW2srMTI+PjJdPWFbQSsxMj4+Ml0sYVtiPj4yXT1rLGFbYis0Pj4yXT1NLHFJKGIsOTIsaywxKSxhW3BlPj4yXT1hW2dlPj4yXSxhW3BlKzQ+PjJdPWFbZ2UrND4+Ml0sYVtwZSs4Pj4yXT1hW2dlKzg+PjJdLGFbcGUr''@;'; + put 'put ''MTI+PjJdPWFbZ2UrMTI+PjJdLGFbbD4+Ml09YVtLPj4yXSxhW2wrND4+Ml09YVtLKzQ+PjJdLGFbbCs4Pj4yXT1hW0srOD4+Ml0sYVtsKzEyPj4yXT1hW0srMTI+PjJdLGFbZj4+Ml09YVttPj4yXSxhW2YrND4+Ml09YVttKzQ+PjJdLGFbZis4Pj4yXT1hW20rOD4+Ml0sYVtmKzEyPj4yXT1h''@;'; + put 'put ''W20rMTI+PjJdLGFbKE09YysocCszPDw0KXwwKT4+Ml09YVtrPj4yXSxhW00rND4+Ml09YVtrKzQ+PjJdLGFbTSs4Pj4yXT1hW2srOD4+Ml0sYVtNKzEyPj4yXT1hW2srMTI+PjJdLGxlPUQsMHxwfWZ1bmN0aW9uIE9hKGwsYyxmLHAsbSxBKXtjfD0wLGZ8PTAscHw9MCxtfD0wO3ZhciBrLE0s''@;'; + put 'put ''UixwZSxnZSx3PTAsYj0wLEQ9MCxHPTAsSz0wO3JldHVybiBSPWxlLGxlPWxlKzgwfDAsaz1SKzcyfDAsTT1SKzh8MCxEPVIsYj0rbDcobHw9MCxBfD0wKSxfW0Q+PjNdPWIqPWIsYVttKzg+PjJdPUEsYVsobT1tKzE2fDApPj4yXT1hWyhsPWMrKGY8PDQpfDApPj4yXSxhW20rND4+Ml09YVts''@;'; + put 'put ''KzQ+PjJdLGFbbSs4Pj4yXT1hW2wrOD4+Ml0sYVttKzEyPj4yXT1hW2wrMTI+PjJdLCgwfHApPigwfGYpJiYoSz0rX1tjKyhmPDw0KSs4Pj4zXS0rX1tjKygodz1mKzN8MCk8PDQpKzg+PjNdKSpLKyhHPStfW2w+PjNdLStfW2MrKHc8PDQpPj4zXSkqRzxifHwodz1mKSxhW00+PjJdPWFbKHA9''@;'; + put 'put ''YysodyszPDw0KXwwKT4+Ml0sYVtNKzQ+PjJdPWFbcCs0Pj4yXSxhW00rOD4+Ml09YVtwKzg+PjJdLGFbTSsxMj4+Ml09YVtwKzEyPj4yXSxhWyhBPU0rMTZ8MCk+PjJdPWFbKGY9YysodysyPDw0KXwwKT4+Ml0sYVtBKzQ+PjJdPWFbZis0Pj4yXSxhW0ErOD4+Ml09YVtmKzg+PjJdLGFbQSsx''@;'; + put 'put ''Mj4+Ml09YVtmKzEyPj4yXSxhWyhwZT1NKzMyfDApPj4yXT1hWyhsPWMrKHcrMTw8NCl8MCk+PjJdLGFbcGUrND4+Ml09YVtsKzQ+PjJdLGFbcGUrOD4+Ml09YVtsKzg+PjJdLGFbcGUrMTI+PjJdPWFbbCsxMj4+Ml0sYVsoZ2U9TSs0OHwwKT4+Ml09YVttPj4yXSxhW2dlKzQ+PjJdPWFbbSs0''@;'; + put 'put ''Pj4yXSxhW2dlKzg+PjJdPWFbbSs4Pj4yXSxhW2dlKzEyPj4yXT1hW20rMTI+PjJdLGFbaz4+Ml09Z2UsYVtrKzQ+PjJdPUQscUkoayw5MixNLDApLGFbKEQ9Yysodzw8NCl8MCk+PjJdPWFbZ2U+PjJdLGFbRCs0Pj4yXT1hW2dlKzQ+PjJdLGFbRCs4Pj4yXT1hW2dlKzg+PjJdLGFbRCsxMj4+''@;'; + put 'put ''Ml09YVtnZSsxMj4+Ml0sYVtsPj4yXT1hW3BlPj4yXSxhW2wrND4+Ml09YVtwZSs0Pj4yXSxhW2wrOD4+Ml09YVtwZSs4Pj4yXSxhW2wrMTI+PjJdPWFbcGUrMTI+PjJdLGFbZj4+Ml09YVtBPj4yXSxhW2YrND4+Ml09YVtBKzQ+PjJdLGFbZis4Pj4yXT1hW0ErOD4+Ml0sYVtmKzEyPj4yXT1h''@;'; + put 'put ''W0ErMTI+PjJdLGFbcD4+Ml09YVtNPj4yXSxhW3ArND4+Ml09YVtNKzQ+PjJdLGFbcCs4Pj4yXT1hW00rOD4+Ml0sYVtwKzEyPj4yXT1hW00rMTI+PjJdLGxlPVIsMHx3fWZ1bmN0aW9uIFBBKGwsYyxmLHAsbSl7bHw9MDt2YXIgQSxiLHc9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLEs9MDtNPShr''@;'; + put 'put ''PTEwKihwPStwKS8oK0QwKCsoKE09K19bKGZ8PTApPj4zXS0oRz0rX1soY3w9MCk+PjNdKSkqTSsoRD0rX1tmKzg+PjNdLShLPStfW2MrOD4+M10pKSpEKSkrMWUtNCkpKigoTT49MD8xZS00Oi0xZS00KStNKSxiPUctKFI9LjUqKGsqPShEPj0wPzFlLTQ6LTFlLTQpK0QpKSxBPUstKEQ9LjUq''@;'; + put 'put ''TSksRD1LK0Qsdz0oRz1SK0cpPih3PShLPWIrTSk+KE09RytNKT9LOk0pP0c6dyxwPUQ+KHA9KFI9QStrKT4oaz1EK2spP1I6ayk/RDpwLGs9RDwoaz1SPGs/UjprKT9EOmssX1tsPj4zXT1iPChNPUc8KE09SzxNP0s6TSk/RzpNKT9iOk0sX1tsKzg+PjNdPUE8az9BOmssX1tsKzE2Pj4zXT1i''@;'; + put 'put ''Pnc/Yjp3LF9bbCsyND4+M109QT5wP0E6cH1mdW5jdGlvbiBRZChsLGMsZixwLG0sQSx3KXtmfD0wLHB8PTAsbT0rbSxBPStBLHd8PTA7dmFyIGssTSxELFIsRyxLLHBlLGdlLGJlLGI9MDtmb3IoSz1sZSxsZT1sZSs0OHwwLE09SyszMnwwLGs9SysxNnwwLEc9SyxSPTB8YVsoRD0xMisoMHxh''@;'; + put 'put ''WzE2KyhsfD0wKT4+Ml0pfDApPj4yXSxhW0Q+PjJdPWN8PTAsZDIobCwwfGFbMzM2KygwfGFbbD4+Ml0pPj4yXSkseGgobCxBKSxwZT0xMC8oK0QwKCsoKGJlPStfW3A+PjNdLStfW2Y+PjNdKSpiZSsoZ2U9K19bKGM9cCs4fDApPj4zXS0rX1tmKzg+PjNdKSpnZSkpKzFlLTQpLF9bcD4+M109''@;'; + put 'put ''cGUqKChiZT49MD8xZS00Oi0xZS00KStiZSksX1tjPj4zXT0oKGdlPj0wPzFlLTQ6LTFlLTQpK2dlKSpwZSxjPTA7ISgoMHxjKT49NCkmJihiPXc+PihjPDwzKSYyNTUpOylhW2s+PjJdPWFbZj4+Ml0sYVtrKzQ+PjJdPWFbZis0Pj4yXSxhW2srOD4+Ml09YVtmKzg+PjJdLGFbaysxMj4+Ml09''@;'; + put 'put ''YVtmKzEyPj4yXSxhW00+PjJdPWFbcD4+Ml0sYVtNKzQ+PjJdPWFbcCs0Pj4yXSxhW00rOD4+Ml09YVtwKzg+PjJdLGFbTSsxMj4+Ml09YVtwKzEyPj4yXSxaNihHLGwsayxNLG0sQSxiKSxhW2Y+PjJdPWFbRz4+Ml0sYVtmKzQ+PjJdPWFbRys0Pj4yXSxhW2YrOD4+Ml09YVtHKzg+PjJdLGFb''@;'; + put 'put ''ZisxMj4+Ml09YVtHKzEyPj4yXSxjPWMrMXwwO2FbRD4+Ml09UixsZT1LfWZ1bmN0aW9uIFo2KGwsYyxmLHAsbSxBLHcpe2x8PTAsY3w9MCxmfD0wLHB8PTAsbT0rbSxBPStBO3ZhciBrLE0sRCxLLGI9MCxSPTAsRz0wLHBlPTA7Zm9yKEs9bGUsbGU9bGUrMzJ8MCxNPUsrMTZ8MCxrPUssRD0x''@;'; + put 'put ''NSYod3w9MCksYj0xNDAwO1I9MHxhW2I+PjJdOyl7aWYoKDB8RCk9PSgwfFIpKXtHPTQ7YnJlYWt9Yj1iKzI0fDB9ND09KDB8RykmJihfW3A+PjNdPShwZT0rX1tiKzg+PjNdKm0pKitfW3A+PjNdLF9bKFI9cCs4fDApPj4zXT1wZSorX1tSPj4zXSxHPTB8YVtiKzE2Pj4yXSxhW2s+PjJdPWFb''@;'; + put 'put ''Zj4+Ml0sYVtrKzQ+PjJdPWFbZis0Pj4yXSxhW2srOD4+Ml09YVtmKzg+PjJdLGFbaysxMj4+Ml09YVtmKzEyPj4yXSxhW00+PjJdPWFbcD4+Ml0sYVtNKzQ+PjJdPWFbcCs0Pj4yXSxhW00rOD4+Ml09YVtwKzg+PjJdLGFbTSsxMj4+Ml09YVtwKzEyPj4yXSx1d1sxNSZHXShjLGssTSxtLEEs''@;'; + put 'put ''dyksX1tmPj4zXT0rX1twPj4zXSsgK19bZj4+M10sX1soRz1mKzh8MCk+PjNdPStfW1I+PjNdKyArX1tHPj4zXSksYVtsPj4yXT1hW2Y+PjJdLGFbbCs0Pj4yXT1hW2YrND4+Ml0sYVtsKzg+PjJdPWFbZis4Pj4yXSxhW2wrMTI+PjJdPWFbZisxMj4+Ml0sbGU9S31mdW5jdGlvbiB4ZihsKXts''@;'; + put 'put ''fD0wO3ZhciBtLEEsYz0wLGY9MCxwPTA7aWYoQT1sZSxsZT1sZSsxNnwwLChtPTB8dnIoMzA0KSl8fCRyKDEsOTk4NzYsQSksYVttPj4yXT1sPTB8YVsocD1sKzE2fDApPj4yXSxhW3A+PjJdPW0sbCl7Zj1sKzE2fDAscD00MCsoYz1tKzE2fDApfDA7ZG97YVtjPj4yXT1hW2Y+PjJdLGM9Yys0''@;'; + put 'put ''fDAsZj1mKzR8MH13aGlsZSgoMHxjKTwoMHxwKSk7Zj1sKzU2fDAscD00MCsoYz1tKzU2fDApfDA7ZG97YVtjPj4yXT1hW2Y+PjJdLGM9Yys0fDAsZj1mKzR8MH13aGlsZSgoMHxjKTwoMHxwKSk7YVttKzE0ND4+Ml09YVtsKzE0ND4+Ml0sYVttKzE0OD4+Ml09YVtsKzE0OD4+Ml0sX1ttKzE1''@;'; + put 'put ''Mj4+M109K19bbCsxNTI+PjNdLGFbbSsxMzY+PjJdPWFbbCsxMzY+PjJdLGY9bCs5NnwwLHA9NDArKGM9bSs5NnwwKXwwO2Rve2FbYz4+Ml09YVtmPj4yXSxjPWMrNHwwLGY9Zis0fDB9d2hpbGUoKDB8Yyk8KDB8cCkpfWVsc2UgYVttKzE0ND4+Ml09MyxhW20rMTQ4Pj4yXT0wLF9bbSsxNTI+''@;'; + put 'put ''PjNdPTE7cmV0dXJuIGxlPUEsMHxtfWZ1bmN0aW9uIE9DKGwpe3ZhciBjO2lmKGM9MHxhWyhsPTE2KyhsfD0wKXwwKT4+Ml0pcmV0dXJuIEZ0KDB8YVtjKzIxMj4+Ml0pLEZ0KDB8YVtjKzIwOD4+Ml0pLEZ0KDB8YVtjKzIxNj4+Ml0pLEZ0KDB8YVtjKzIyMD4+Ml0pLEZ0KDB8YVtjKzIyND4+''@;'; + put 'put ''Ml0pLEZ0KDB8YVtjKzIyOD4+Ml0pLEZ0KDB8YVtjKzIzMj4+Ml0pLEZ0KDB8YVtjKzIzNj4+Ml0pLEZ0KDB8YVtjKzI0MD4+Ml0pLEZ0KDB8YVtjKzI0ND4+Ml0pLEZ0KDB8YVtjKzI0OD4+Ml0pLEZ0KDB8YVtjKzI1Mj4+Ml0pLEZ0KDB8YVtjKzI1Nj4+Ml0pLEZ0KDB8YVtjKzI3Mj4+Ml0p''@;'; + put 'put ''LEZ0KDB8YVtjKzI4ND4+Ml0pLEZ0KDB8YVtjKzI4MD4+Ml0pLGFbbD4+Ml09YVtjPj4yXSx2b2lkIEZ0KGMpO1ByKDk5OTAyLDk5OTA2LDExNyw5OTkxMyl9ZnVuY3Rpb24gUTEobCxjLGYscCxtLEEsdyl7dmFyIGIsaztmfD0wLHB8PTAsbXw9MCxBfD0wLHd8PTAsaz0wfGFbMTYrKGx8PTAp''@;'; + put 'put ''Pj4yXSwwIT0oMHwoY3w9MCkpJjAhPSgzMjc2OCYoYj0wfGFbbCsxNTI+PjJdKXwwKSYmKGFbaysxOTI+PjJdPWMpLDAhPSg2NTUzNiZifDApJiYoYVtrKzIxMj4+Ml09MHxtMihBLHcpLDAhPSgwfGYpKSYmMCE9KDB8ZmVbZj4+MF0pPyhhW2srMjA4Pj4yXT0wfG0yKGYsdyksbD0xKTpsPTA7''@;'; + put 'put ''ZG97aWYoNDE5NDMwNCZiKXtpZigwfHAmJjB8ZmVbcD4+MF0pe2FbaysyMjg+PjJdPTB8bTIocCx3KSxpdFsobD1rKzI2MHwwKT4+MV09MXxpdFtsPj4xXSxsPTE7YnJlYWt9KGM9MHxhW2srMTkyPj4yXSkmJihhW2srMjI4Pj4yXT0wfHJhKGMpLGw9MSl9fXdoaWxlKDApO3JldHVybiAwIT0o''@;'; + put 'put ''MHxtKSYwIT0oODM4ODYwOCZifDApJiYwIT0oMHxmZVttPj4wXSkmJihhW2srMjQ0Pj4yXT0wfG0yKG0sdyksbD0xKSwwfGx9ZnVuY3Rpb24geUYobCxjLGYpe2N8PTA7dmFyIG0sQSx3LGIscD0wO2lmKGI9bGUsbGU9bGUrODB8MCx3PWIsQT1iKzh8MCxwPTB8YVs5MisoMHxhWzgrKDB8YVsx''@;'; + put 'put ''NisobT0wfGFbMTY4KygwfGFbKGx8PTApPj4yXSk+PjJdKT4+Ml0pPj4yXSk+PjJdLFMyKGwsZnw9MCksMCE9KDB8KGw9MHxMaShjLDE0MTA2MCkpKSYmMCE9KDB8ZmVbbD4+MF0pKXVvKGYsbCksKGw9MHxhWyhwPWYrNHwwKT4+Ml0pPj4+MD49KDB8YVtmKzg+PjJdKT4+PjAmJihRMChmLDEp''@;'; + put 'put ''LGw9MHxhW3A+PjJdKSxmZVtsPj4wXT0wLGFbcD4+Ml09bD0wfGFbZj4+Ml07ZWxzZXtzd2l0Y2goKDB8bSkhPSgwfGMpJjAhPSgwfHApJiYodW8oZixwKSwobD0wfGFbKHA9Zis0fDApPj4yXSk+Pj4wPj0oMHxhW2YrOD4+Ml0pPj4+MCYmKFEwKGYsMSksbD0wfGFbcD4+Ml0pLGFbcD4+Ml09''@;'; + put 'put ''bCsxLGZlW2w+PjBdPTk1KSwwfGtpKGMpKXtjYXNlIDA6cD0oMHxtKT09KDB8Yyk/MTExNDk0Ojk5OTI3LGw9KDB8YVtjPj4yXSk+Pj40O2JyZWFrO2Nhc2UgMTpwPTExMTQ4MSxsPSgwfGFbYz4+Ml0pPj4+NDticmVhaztjYXNlIDI6cD0xMTE0NTAsbD0oMHxhW2M+PjJdKT4+PjQ7YnJlYWs7''@;'; + put 'put ''ZGVmYXVsdDpwPTAsbD0wfXVvKGYscCksYVt3Pj4yXT1sLG9vKEEsOTk5MzMsdyksdW8oZixBKSwobD0wfGFbKHA9Zis0fDApPj4yXSk+Pj4wPj0oMHxhW2YrOD4+Ml0pPj4+MCYmKFEwKGYsMSksbD0wfGFbcD4+Ml0pLGZlW2w+PjBdPTAsYVtwPj4yXT1sPTB8YVtmPj4yXX1yZXR1cm4gbGU9''@;'; + put 'put ''YiwwfGx9ZnVuY3Rpb24gUzIobCxjKXtjfD0wO3ZhciBtLEEsdyxmPTAscD0wO3c9bGUsbGU9bGUrMTQ0fDAsQT13LG09dys4fDAsKDB8KGY9MHxhWzE2MCsobHw9MCk+PjJdKSk+MSYmNjQmYVtsKzE1Mj4+Ml18MCYmKHVvKGMsMHxhWygwfGFbMzA4KygwfGFbbD4+Ml0pPj4yXSkrKGY8PDIp''@;'; + put 'put ''Pj4yXSksKGY9MHxhWyhwPWMrNHwwKT4+Ml0pPj4+MD49KDB8YVtjKzg+PjJdKT4+PjAmJihRMChjLDEpLGY9MHxhW3A+PjJdKSxhW3A+PjJdPWYrMSxmZVtmPj4wXT05NSksKDB8KHA9MHxhW2wrMTk2Pj4yXSkpPjB8KDB8KGY9MHxhW2wrMjAwPj4yXSkpPjAmJihhW0E+PjJdPXAsYVtBKzQ+''@;'; + put 'put ''PjJdPWYsb28obSw5OTkzNyxBKSx1byhjLG0pKSxsZT13fWZ1bmN0aW9uIHBXKGwsYyxmKXtjfD0wO3ZhciBELFIsRyxLLHBlLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MDtpZihwZT1sZSxsZT1sZSs0OHwwLFI9cGUrMTZ8MCxHPXBlLEs9K19bMTUyKygwfGFbMTYrKGx8PTApPj4yXSk+''@;'; + put 'put ''PjNdLCgoRD0wfHM3KGZ8PTAsMCxtPXBlKzMyfDApKS0xfDApPj4+MD49Mil7Zm9yKF9bRz4+M109Yj0uNSooKHA9K19bYysxNj4+M10pKyArX1tjPj4zXSksX1tHKzg+PjNdPWs9LjUqKChBPStfW2MrMjQ+PjNdKSsgK19bYys4Pj4zXSksYj1wLWIsaz1BLWssKE09Sz4uNSkmJnhoKGwsLjUp''@;'; + put 'put ''LEE9MCxtPTB8YVs4Kyh3PTB8YVttPj4yXSk+PjJdO2Y9MHxhW20+PjJdOykwPT0ram5bKGM9bSs0fDApPj4yXT9wPUE6KGhsKGwsZikscD0wfGFbbSsxMj4+Ml0/Ni4yODMxODUzMDcxNzk1ODYqK2puW2M+PjJdK0E6Ni4yODMxODUzMDcxNzk1ODYsYVtSPj4yXT1hW0c+PjJdLGFbUis0Pj4y''@;'; + put 'put ''XT1hW0crND4+Ml0sYVtSKzg+PjJdPWFbRys4Pj4yXSxhW1IrMTI+PjJdPWFbRysxMj4+Ml0sYz0wfGZFKFIsYixrLEEscCksUWYobCwwfGFbYz4+Ml0sMHxhW2MrND4+Ml0sMCwwLDEpLGhfKGMpKSxBPXAsbT1tKzEyfDA7TSYmeGgobCxLKSxGQSh3KX1yZXR1cm4gbGU9cGUsMHxEfWZ1bmN0''@;'; + put 'put ''aW9uIHM3KGwsYyxmKXtsfD0wLGN8PTAsZnw9MDt2YXIgTSxSLEcsSyxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxEPTA7Sz1sZSxsZT1sZSsxNnwwLEQ9Sys4fDAsTT1LLEc9MHx2cigxMiksQT0wfHJhKGwpO2U6ZG97aWYoIWMpZm9yKGM9MSxwPUE7Oyl7c3dpdGNoKDB8ZmVbcD4+MF0pe2Nh''@;'; + put 'put ''c2UgMDpicmVhayBlO2Nhc2UgNTg6Yz1jKzF8MH1wPXArMXwwfX13aGlsZSgwKTtmb3IoYVtHKzQ+PjJdPUEsUj0wfHZyKDEyKygxMipjfDApfDApLGFbRys4Pj4yXT1SLGs9MSxtPTAsYz0wLHA9QTs7KXtpZighKHA9MHxsdihwLDEwNzk4NCkpKXtwPTIwO2JyZWFrfWlmKCEoKHc9K0hUKHAp''@;'; + put 'put ''KT49MCkpe3A9MTc7YnJlYWt9aWYoKGI9dy1rKT4wJiYoMD09KDB8YVs1MTU2XSl8fGI8MWUtNSZiPi0xZS01P3c9azooYVtNPj4yXT1sLCRyKDAsOTk5NDgsTSksYVs1MTU2XT0wLHc9ayxjPTMpKSxiPWstdyx3PjAmJihmZVtSKygxMiptfDApKzg+PjBdPTEpLDB8ZmVbcD4+MF0mJihhW1Ir''@;'; + put 'put ''KDEyKm18MCk+PjJdPXApLHA9bSsxfDAsam5bUisoMTIqbXwwKSs0Pj4yXT13LGI8MWUtNSZiPi0xZS01KXttPXAscD0zMDticmVha31rPWIsbT1wLHA9MH1lOmRve2lmKDE3PT0oMHxwKSkwfGFbNTE1Nl0/KGFbRD4+Ml09bCwkcigxLDk5OTgzLEQpLGFbNTE1Nl09MCxjPTIpOmM9MSxGQShH''@;'; + put 'put ''KTtlbHNlIGlmKDIwPT0oMHxwKSlpZihrPjApe2ZvcihwPTAsQT0wOyEoKDB8cCk+PSgwfG0pKTspRD1BKygwPT0ram5bUisoMTIqcHwwKSs0Pj4yXSYxKXwwLHA9cCsxfDAsQT1EO2lmKCgwfEEpPD0wKXtqblsocD1SKygxMioobSstMXwwKXwwKSs0fDApPj4yXT1rKyAram5bcD4+Ml0scD0z''@;'; + put 'put ''MDticmVha31mb3Iodz1rLysoMHxBKSxwPTA7Oyl7aWYoKDB8cCk+PSgwfG0pKXtwPTMwO2JyZWFrIGV9MD09K2puWyhBPVIrKDEyKnB8MCkrNHwwKT4+Ml0mJihqbltBPj4yXT13KSxwPXArMXwwfX1lbHNlIHA9MzB9d2hpbGUoMCk7aWYoMzA9PSgwfHApKXtmb3IoO3A9bSstMXwwLCEoKDB8''@;'; + put 'put ''bSk8PTB8fCtqbltSKygxMipwfDApKzQ+PjJdPjApOyltPXA7YVtSKygxMiptfDApPj4yXT0wLGFbRz4+Ml09bSxhW2Y+PjJdPUd9cmV0dXJuIGxlPUssMHxjfWZ1bmN0aW9uIEZBKGwpe0Z0KDB8YVs0KyhsfD0wKT4+Ml0pLEZ0KDB8YVtsKzg+PjJdKSxGdChsKX1mdW5jdGlvbiBIVChsKXt2''@;'; + put 'put ''YXIgZixwLGM9MCxtPTA7cmV0dXJuIHA9bGUsbGU9bGUrMTZ8MCxmPXAsKGw9MHwkcyhsfD0wLDU5KSk/KG09bCsxfDAsZmVbbD4+MF09MCxjPShjPStpMyhtLGYpKT49MCYmKDB8YVtmPj4yXSkhPSgwfG0pP2M6LTEpOmM9MCxsZT1wLCtjfWZ1bmN0aW9uIHdGKGwsYyxmLHApe2N8PTAscHw9''@;'; + put 'put ''MDt2YXIgRyxLLHBlLGdlLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTA7aWYoZ2U9bGUsbGU9bGUrODB8MCxLPWdlLHBlPStfWzE1MisoMHxhWzE2KyhsfD0wKT4+Ml0pPj4zXSwoKEc9MHxzNyhmfD0wLDAsQT1nZSs2NHwwKSktMXwwKT4+PjA+PTIpe2ZvcihwPyhhW0s+PjJdPWFb''@;'; + put 'put ''KFI9YyszMnwwKT4+Ml0sYVtLKzQ+PjJdPWFbUis0Pj4yXSxhW0srOD4+Ml09YVtSKzg+PjJdLGFbSysxMj4+Ml09YVtSKzEyPj4yXSxhWyhSPUsrMTZ8MCk+PjJdPWFbKEQ9Yys0OHwwKT4+Ml0sYVtSKzQ+PjJdPWFbRCs0Pj4yXSxhW1IrOD4+Ml09YVtEKzg+PjJdLGFbUisxMj4+Ml09YVtE''@;'; + put 'put ''KzEyPj4yXSxhWyhSPUsrMzJ8MCk+PjJdPWFbYz4+Ml0sYVtSKzQ+PjJdPWFbYys0Pj4yXSxhW1IrOD4+Ml09YVtjKzg+PjJdLGFbUisxMj4+Ml09YVtjKzEyPj4yXSxhWyhSPUsrNDh8MCk+PjJdPWFbKEQ9YysxNnwwKT4+Ml0sYVtSKzQ+PjJdPWFbRCs0Pj4yXSxhW1IrOD4+Ml09YVtEKzg+''@;'; + put 'put ''PjJdLGFbUisxMj4+Ml09YVtEKzEyPj4yXSk6KGFbSz4+Ml09YVtjPj4yXSxhW0srND4+Ml09YVtjKzQ+PjJdLGFbSys4Pj4yXT1hW2MrOD4+Ml0sYVtLKzEyPj4yXT1hW2MrMTI+PjJdLGFbKFI9SysxNnwwKT4+Ml09YVsoRD1jKzE2fDApPj4yXSxhW1IrND4+Ml09YVtEKzQ+PjJdLGFbUis4''@;'; + put 'put ''Pj4yXT1hW0QrOD4+Ml0sYVtSKzEyPj4yXT1hW0QrMTI+PjJdLGFbKFI9SyszMnwwKT4+Ml09YVsoRD1jKzMyfDApPj4yXSxhW1IrND4+Ml09YVtEKzQ+PjJdLGFbUis4Pj4yXT1hW0QrOD4+Ml0sYVtSKzEyPj4yXT1hW0QrMTI+PjJdLGFbKFI9Sys0OHwwKT4+Ml09YVsoRD1jKzQ4fDApPj4y''@;'; + put 'put ''XSxhW1IrND4+Ml09YVtEKzQ+PjJdLGFbUis4Pj4yXT1hW0QrOD4+Ml0sYVtSKzEyPj4yXT1hW0QrMTI+PjJdKSxNPShrPStfWyhiPUsrMTZ8MCk+PjNdKS0obT0rX1tLPj4zXSksX1soRD1LKzMyfDApPj4zXT1tLF9bYj4+M109bSwoUj1wZT4uNSkmJnhoKGwsLjUpLHc9Sys0OHwwLHA9MHxh''@;'; + put 'put ''WzgrKEE9MHxhW0E+PjJdKT4+Ml07Zj0wfGFbcD4+Ml07KTAhPStqblsoYz1wKzR8MCk+PjJdJiYoaGwobCxmKSxfW0Q+PjNdPW09MHxhW3ArMTI+PjJdP00qK2puW2M+PjJdKyArX1tLPj4zXTprLF9bYj4+M109bSxrYShsLEssNCwxKSxfW3c+PjNdPW09K19bYj4+M10sX1tLPj4zXT1tKSxw''@;'; + put 'put ''PXArMTJ8MDtSJiZ4aChsLHBlKSxGQShBKX1yZXR1cm4gbGU9Z2UsMHxHfWZ1bmN0aW9uIFJDKGwsYyl7Y3w9MDt2YXIgcCxmPTAsbT0wLEE9MCx3PTA7Zj0wfGFbMTYrKGx8PTApPj4yXSw0MjU5ODQwJihwPTB8YVtsKzE1Mj4+Ml0pfDAmJihhW2YrMjY0Pj4yXT1BPShtPTEzMTA3MiZwKT4+''@;'; + put 'put ''PjE2XjIsYVsodz1mKzI2OHwwKT4+Ml09QSsyLEZ0KDB8YVsoQT1mKzI3MnwwKT4+Ml0pLGY9MHx2cihhW3c+PjJdPDw0KSxhW0E+PjJdPWYsYVtmPj4yXT1hW2M+PjJdLGFbZis0Pj4yXT1hW2MrND4+Ml0sYVtmKzg+PjJdPWFbYys4Pj4yXSxhW2YrMTI+PjJdPWFbYysxMj4+Ml0sYVsoQT1m''@;'; + put 'put ''KzE2fDApPj4yXT1hWyhjPWMrMTZ8MCk+PjJdLGFbQSs0Pj4yXT1hW2MrND4+Ml0sYVtBKzg+PjJdPWFbYys4Pj4yXSxhW0ErMTI+PjJdPWFbYysxMj4+Ml0sODE5MiZwfHxNaChsLGYsZiwyKSxtfHxXSShmKSl9ZnVuY3Rpb24gSEEobCxjKXt2YXIgRCxHLHBlLGY9MCxwPTAsbT0wLEE9MCx3''@;'; + put 'put ''PTAsYj0wLGs9MCxNPTAsUj0wLEs9MDtwZT1sZSxsZT1sZSsxNDR8MCxmPXBlKzgwfDAsbT1wZSsxNnwwLEE9cGUsISgoTT0rX1soY3w9MCk+PjNdKT4oRD0rX1soRz0xNisobHw9MCl8MCk+PjNdKSkmJiEoTTwoUj0rX1tsPj4zXSkpJiYhKChwPStfW2MrOD4+M10pPihiPStfW2wrMjQ+PjNd''@;'; + put 'put ''KSkmJiEocDwoaz0rX1tsKzg+PjNdKSkmJiEoKE09K19bYysxNj4+M10pPkR8TTxSKSYmISgoTT0rX1tjKzI0Pj4zXSk+YnxNPGspJiYhKChNPStfW2MrMzI+PjNdKT5EfE08UikmJiEoKE09K19bYys0MD4+M10pPmJ8TTxrKSYmISgoTT0rX1tjKzQ4Pj4zXSk+RHxNPFIpJiYhKChSPStfW2Mr''@;'; + put 'put ''NTY+PjNdKT5ifFI8ayl8fChLPTExKTtlOmRve2lmKDExPT0oMHxLKSl7aWYoISgwfEJDKGMpKSl7d3UoQSxjLDMsLjUsZixtKSxIQShsLGYpLEhBKGwsbSk7YnJlYWt9Zm9yKEE9bCsyNHwwLHc9bCs4fDAsbT0wOzspe2lmKDQ9PSgwfG0pKWJyZWFrIGU7KHA9K19bYysobTw8NCk+PjNdKT4r''@;'; + put 'put ''X1tHPj4zXT8oZj1HLEs9MTYpOnA8K19bbD4+M10mJihmPWwsSz0xNiksMTY9PSgwfEspJiYoSz0wLF9bZj4+M109cCksKHA9K19bYysobTw8NCkrOD4+M10pPitfW0E+PjNdPyhmPUcsSz0xOSk6cDwrX1t3Pj4zXSYmKGY9bCxLPTE5KSwxOT09KDB8SykmJihLPTAsX1tmKzg+PjNdPXApLG09''@;'; + put 'put ''bSsxfDB9fX13aGlsZSgwKTtsZT1wZX1mdW5jdGlvbiBCQyhsKXt2YXIgYyxmLHAsbSxBLGIsdz0wO3JldHVybiBjPWxlLGxlPWxlKzQ4fDAsZj1jKzMyfDAscD1jKzE2fDAsYj00OCsobHw9MCl8MCx3PWwrMTZ8MCxhWyhtPWMpPj4yXT1hW2w+PjJdLGFbbSs0Pj4yXT1hW2wrND4+Ml0sYVtt''@;'; + put 'put ''Kzg+PjJdPWFbbCs4Pj4yXSxhW20rMTI+PjJdPWFbbCsxMj4+Ml0sYVtwPj4yXT1hW2I+PjJdLGFbcCs0Pj4yXT1hW2IrND4+Ml0sYVtwKzg+PjJdPWFbYis4Pj4yXSxhW3ArMTI+PjJdPWFbYisxMj4+Ml0sYVtmPj4yXT1hW3c+PjJdLGFbZis0Pj4yXT1hW3crND4+Ml0sYVtmKzg+PjJdPWFb''@;'; + put 'put ''dys4Pj4yXSxhW2YrMTI+PjJdPWFbdysxMj4+Ml0sQT0rbFEobSxwLGYpLHc9bCszMnwwLGFbbT4+Ml09YVtsPj4yXSxhW20rND4+Ml09YVtsKzQ+PjJdLGFbbSs4Pj4yXT1hW2wrOD4+Ml0sYVttKzEyPj4yXT1hW2wrMTI+PjJdLGFbcD4+Ml09YVtiPj4yXSxhW3ArND4+Ml09YVtiKzQ+PjJd''@;'; + put 'put ''LGFbcCs4Pj4yXT1hW2IrOD4+Ml0sYVtwKzEyPj4yXT1hW2IrMTI+PjJdLGFbZj4+Ml09YVt3Pj4yXSxhW2YrND4+Ml09YVt3KzQ+PjJdLGFbZis4Pj4yXT1hW3crOD4+Ml0sYVtmKzEyPj4yXT1hW3crMTI+PjJdLGw9QTw0JitsUShtLHAsZik8NCYxLGxlPWMsMHxsfWZ1bmN0aW9uIGJGKGws''@;'; + put 'put ''Yyl7bHw9MDt2YXIgcGUsYmUsT2UsTGUsUmUsSGUsVmUscWUsbnQsV2Usb3QsZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxLPTAsZ2U9MCxTdD0wLGt0PTAsc3Q9MCxFdD0wLFp0PTAsY3Q9MCxidD0wO2lmKG90PWxlLGxlPWxlKzI3MnwwLGJlPW90KzI1Nnww''@;'; + put 'put ''LE9lPW90KzIyNHwwLExlPW90KzE5MnwwLEhlPW90KzY0fDAsVmU9b3QscWU9b3QrMTYwfDAsbnQ9b3QrOTZ8MCxXZT1vdCszMnwwLHBlPTB8YVsxNDQrKGdlPTB8YVsxNisoY3w9MCk+PjJdKT4+Ml0sYVsoUmU9b3QrMTI4fDApPj4yXT1hWyhLPWdlKzE2fDApPj4yXSxhW1JlKzQ+PjJdPWFb''@;'; + put 'put ''Sys0Pj4yXSxhW1JlKzg+PjJdPWFbSys4Pj4yXSxhW1JlKzEyPj4yXT1hW0srMTI+PjJdLGFbUmUrMTY+PjJdPWFbSysxNj4+Ml0sYVtSZSsyMD4+Ml09YVtLKzIwPj4yXSxhW1JlKzI0Pj4yXT1hW0srMjQ+PjJdLGFbUmUrMjg+PjJdPWFbSysyOD4+Ml0sZ2U9MHxhWzg4KygwfGFbZ2UrOD4+''@;'; + put 'put ''Ml0pPj4yXSxhW1ZlPj4yXT0wLGFbVmUrND4+Ml09MCxhW1ZlKzg+PjJdPTAsYVtWZSsxMj4+Ml09MCxhW1ZlKzE2Pj4yXT0wLGFbVmUrMjA+PjJdPTAsYVtWZSsyND4+Ml09MCxhW1ZlKzI4Pj4yXT0wLGdlKXtmb3IoK19bUmU+PjNdPT0rX1soYz1SZSsxNnwwKT4+M10mJitfWyhmPVJlKzh8''@;'; + put 'put ''MCk+PjNdPT0rX1socD1SZSsyNHwwKT4+M10mJihfW2Y+PjNdPTE3OTc2OTMxMzQ4NjIzMTU3ZTI5MixfW1JlPj4zXT0xNzk3NjkzMTM0ODYyMzE1N2UyOTIsX1twPj4zXT0tMTc5NzY5MzEzNDg2MjMxNTdlMjkyLF9bYz4+M109LTE3OTc2OTMxMzQ4NjIzMTU3ZTI5Miksdz1PZSs4fDAsYj1P''@;'; + put 'put ''ZSsxNnwwLGs9T2UrMjR8MCxNPUhlKzE2fDAsRD1IZSsyNHwwLFI9cGUrMTQ0fDAsRz1MZSsxNnwwLEs9Z2UrMTJ8MCxjPTAscD0wfGFbZ2UrOD4+Ml0sZj0wLG09MCxBPTA7ISgoMHxBKT49KDB8YVtnZT4+Ml0pKTspe3N3aXRjaChhW0hlPj4yXT1hW1ZlPj4yXSxhW0hlKzQ+PjJdPWFbVmUr''@;'; + put 'put ''ND4+Ml0sYVtIZSs4Pj4yXT1hW1ZlKzg+PjJdLGFbSGUrMTI+PjJdPWFbVmUrMTI+PjJdLGFbSGUrMTY+PjJdPWFbVmUrMTY+PjJdLGFbSGUrMjA+PjJdPWFbVmUrMjA+PjJdLGFbSGUrMjQ+PjJdPWFbVmUrMjQ+PjJdLGFbSGUrMjg+PjJdPWFbVmUrMjg+PjJdLDB8YVtwPj4yXSl7Y2FzZSAx''@;'; + put 'put ''OmNhc2UgMDpfW09lPj4zXT0oRXQ9K19bcCs4Pj4zXSktKFp0PStfW3ArMjQ+PjNdKSxfW3c+PjNdPShrdD0rX1twKzE2Pj4zXSktKHN0PStfW3ArMzI+PjNdKSxfW2I+PjNdPVp0K0V0LF9baz4+M109c3Qra3QsYVsoU3Q9cCs4MHwwKT4+Ml09YVtPZT4+Ml0sYVtTdCs0Pj4yXT1hW09lKzQ+''@;'; + put 'put ''PjJdLGFbU3QrOD4+Ml09YVtPZSs4Pj4yXSxhW1N0KzEyPj4yXT1hW09lKzEyPj4yXSxhWyhTdD1wKzk2fDApPj4yXT1hW2I+PjJdLGFbU3QrND4+Ml09YVtiKzQ+PjJdLGFbU3QrOD4+Ml09YVtiKzg+PjJdLGFbU3QrMTI+PjJdPWFbYisxMj4+Ml0sYVtiZT4+Ml09YVtPZT4+Ml0sYVtiZSs0''@;'; + put 'put ''Pj4yXT1hW09lKzQ+PjJdLGFbYmUrOD4+Ml09YVtPZSs4Pj4yXSxhW2JlKzEyPj4yXT1hW09lKzEyPj4yXSxOQShSZSxiZSksYVtiZT4+Ml09YVtiPj4yXSxhW2JlKzQ+PjJdPWFbYis0Pj4yXSxhW2JlKzg+PjJdPWFbYis4Pj4yXSxhW2JlKzEyPj4yXT1hW2IrMTI+PjJdLE5BKFJlLGJlKTti''@;'; + put 'put ''cmVhaztjYXNlIDM6Y2FzZSAyOlN0PXArODB8MCxOVChxZSwwfGFbNCsoY3Q9cCs4fDApPj4yXSwwfGFbY3Q+PjJdLFJlKSxhW1N0Pj4yXT1hW3FlPj4yXSxhW1N0KzQ+PjJdPWFbcWUrND4+Ml0sYVtTdCs4Pj4yXT1hW3FlKzg+PjJdLGFbU3QrMTI+PjJdPWFbcWUrMTI+PjJdLGFbU3QrMTY+''@;'; + put 'put ''PjJdPWFbcWUrMTY+PjJdLGFbU3QrMjA+PjJdPWFbcWUrMjA+PjJdLGFbU3QrMjQ+PjJdPWFbcWUrMjQ+PjJdLGFbU3QrMjg+PjJdPWFbcWUrMjg+PjJdO2JyZWFrO2Nhc2UgNTpjYXNlIDQ6Y3Q9cCs4MHwwLE5UKG50LDB8YVs0KyhTdD1wKzh8MCk+PjJdLDB8YVtTdD4+Ml0sUmUpLGFbY3Q+''@;'; + put 'put ''PjJdPWFbbnQ+PjJdLGFbY3QrND4+Ml09YVtudCs0Pj4yXSxhW2N0Kzg+PjJdPWFbbnQrOD4+Ml0sYVtjdCsxMj4+Ml09YVtudCsxMj4+Ml0sYVtjdCsxNj4+Ml09YVtudCsxNj4+Ml0sYVtjdCsyMD4+Ml09YVtudCsyMD4+Ml0sYVtjdCsyND4+Ml09YVtudCsyND4+Ml0sYVtjdCsyOD4+Ml09''@;'; + put 'put ''YVtudCsyOD4+Ml07YnJlYWs7Y2FzZSA2OmN0PXArODB8MCxOVChXZSwwfGFbNCsoU3Q9cCs4fDApPj4yXSwwfGFbU3Q+PjJdLFJlKSxhW2N0Pj4yXT1hW1dlPj4yXSxhW2N0KzQ+PjJdPWFbV2UrND4+Ml0sYVtjdCs4Pj4yXT1hW1dlKzg+PjJdLGFbY3QrMTI+PjJdPWFbV2UrMTI+PjJdLGFb''@;'; + put 'put ''Y3QrMTY+PjJdPWFbV2UrMTY+PjJdLGFbY3QrMjA+PjJdPWFbV2UrMjA+PjJdLGFbY3QrMjQ+PjJdPWFbV2UrMjQ+PjJdLGFbY3QrMjg+PjJdPWFbV2UrMjg+PjJdO2JyZWFrO2Nhc2UgNzphWyhjdD1wKzExMnwwKT4+Ml09MHx2cig1NiksU3Q9MHxyYSgwfGFbcCs0MD4+Ml0pLGFbKGJ0PTB8''@;'; + put 'put ''YVtjdD4+Ml0pPj4yXT1TdCxmZVtidCs0OD4+MF09MHxmZVsxMDAwMjkrKDB8YVtwKzI0Pj4yXSk+PjBdLGFbSGU+PjJdPWYsX1tNPj4zXT1tLGFbRD4+Ml09LTEyOCZhW0Q+PjJdfDEyNyZjLGJ0PTB8bWlbNjMmYVsoYnQ9MHxhW1I+PjJdKT4+Ml1dKGJ0LEhlLDEpLGFbNCsoU3Q9MHxhW2N0''@;'; + put 'put ''Pj4yXSk+PjJdPWJ0LG9EKGJlLHBlLFN0KSxacmUoTGUsK19bcCs4Pj4zXSwrX1twKzE2Pj4zXSwwfGFbY3Q+PjJdKSxhWyhjdD1wKzgwfDApPj4yXT1hW0xlPj4yXSxhW2N0KzQ+PjJdPWFbTGUrND4+Ml0sYVtjdCs4Pj4yXT1hW0xlKzg+PjJdLGFbY3QrMTI+PjJdPWFbTGUrMTI+PjJdLGFb''@;'; + put 'put ''Y3QrMTY+PjJdPWFbTGUrMTY+PjJdLGFbY3QrMjA+PjJdPWFbTGUrMjA+PjJdLGFbY3QrMjQ+PjJdPWFbTGUrMjQ+PjJdLGFbY3QrMjg+PjJdPWFbTGUrMjg+PjJdLGFbYmU+PjJdPWFbTGU+PjJdLGFbYmUrND4+Ml09YVtMZSs0Pj4yXSxhW2JlKzg+PjJdPWFbTGUrOD4+Ml0sYVtiZSsxMj4+''@;'; + put 'put ''Ml09YVtMZSsxMj4+Ml0sTkEoUmUsYmUpLGFbYmU+PjJdPWFbRz4+Ml0sYVtiZSs0Pj4yXT1hW0crND4+Ml0sYVtiZSs4Pj4yXT1hW0crOD4+Ml0sYVtiZSsxMj4+Ml09YVtHKzEyPj4yXSxOQShSZSxiZSksMHxhW0s+PjJdfHwoYVtLPj4yXT0xMDkpO2JyZWFrO2Nhc2UgMTA6Zj0wfGFbcCsx''@;'; + put 'put ''Nj4+Ml0sbT0rX1twKzg+PjNdO2JyZWFrO2Nhc2UgMTU6Yz0wfGFbcCs4Pj4yXX1wPXArMTIwfDAsQT1BKzF8MH1hW2w+PjJdPWFbUmU+PjJdLGFbbCs0Pj4yXT1hW1JlKzQ+PjJdLGFbbCs4Pj4yXT1hW1JlKzg+PjJdLGFbbCsxMj4+Ml09YVtSZSsxMj4+Ml0sYVtsKzE2Pj4yXT1hW1JlKzE2''@;'; + put 'put ''Pj4yXSxhW2wrMjA+PjJdPWFbUmUrMjA+PjJdLGFbbCsyND4+Ml09YVtSZSsyND4+Ml0sYVtsKzI4Pj4yXT1hW1JlKzI4Pj4yXX1lbHNlIGFbbD4+Ml09YVtSZT4+Ml0sYVtsKzQ+PjJdPWFbUmUrND4+Ml0sYVtsKzg+PjJdPWFbUmUrOD4+Ml0sYVtsKzEyPj4yXT1hW1JlKzEyPj4yXSxhW2wr''@;'; + put 'put ''MTY+PjJdPWFbUmUrMTY+PjJdLGFbbCsyMD4+Ml09YVtSZSsyMD4+Ml0sYVtsKzI0Pj4yXT1hW1JlKzI0Pj4yXSxhW2wrMjg+PjJdPWFbUmUrMjg+PjJdO2xlPW90fWZ1bmN0aW9uIE5BKGwsYyl7dmFyIHAsZj0wOyhmPStfWyhjfD0wKT4+M10pPitfWyhwPTE2KyhsfD0wKXwwKT4+M10mJihf''@;'; + put 'put ''W3A+PjNdPWYpLGY8K19bbD4+M10mJihfW2w+PjNdPWYpLChmPStfW2MrOD4+M10pPitfWyhjPWwrMjR8MCk+PjNdJiYoX1tjPj4zXT1mKSxmPCtfWyhjPWwrOHwwKT4+M10mJihfW2M+PjNdPWYpfWZ1bmN0aW9uIE5UKGwsYyxmLHApe2x8PTAsZnw9MCxwfD0wO3ZhciBrLE0sRCxSLEcscGUs''@;'; + put 'put ''bT0wLEE9MCx3PTAsYj0wLEs9MDtmb3IocGU9bGUsbGU9bGUrNDh8MCxrPXBlKzMyfDAsX1soUj0oRD1wZSkrMTZ8MCk+PjNdPW09K19bKGN8PTApPj4zXSxfW0Q+PjNdPW0sX1soRz1EKzI0fDApPj4zXT1tPStfW2MrOD4+M10sX1soTT1EKzh8MCk+PjNdPW0sYj0xOyEoKDB8Yik+PSgwfGYp''@;'; + put 'put ''KTspKG09K19bKHc9YysyNHwwKT4+M10pPCtfW0Q+PjNdPyhBPUQsSz01KTptPitfW1I+PjNdJiYoQT1SLEs9NSksNT09KDB8SykmJihLPTAsX1tBPj4zXT1tKSwobT0rX1tjKzMyPj4zXSk8K19bTT4+M10/KGM9RCxLPTgpOm0+K19bRz4+M10mJihjPVIsSz04KSw4PT0oMHxLKSYmKEs9MCxf''@;'; + put 'put ''W2MrOD4+M109bSksYj1iKzF8MCxjPXc7YVtrPj4yXT1hW0Q+PjJdLGFbays0Pj4yXT1hW0QrND4+Ml0sYVtrKzg+PjJdPWFbRCs4Pj4yXSxhW2srMTI+PjJdPWFbRCsxMj4+Ml0sTkEocCxrKSxhW2s+PjJdPWFbUj4+Ml0sYVtrKzQ+PjJdPWFbUis0Pj4yXSxhW2srOD4+Ml09YVtSKzg+PjJd''@;'; + put 'put ''LGFbaysxMj4+Ml09YVtSKzEyPj4yXSxOQShwLGspLGFbbD4+Ml09YVtEPj4yXSxhW2wrND4+Ml09YVtEKzQ+PjJdLGFbbCs4Pj4yXT1hW0QrOD4+Ml0sYVtsKzEyPj4yXT1hW0QrMTI+PjJdLGFbbCsxNj4+Ml09YVtEKzE2Pj4yXSxhW2wrMjA+PjJdPWFbRCsyMD4+Ml0sYVtsKzI0Pj4yXT1h''@;'; + put 'put ''W0QrMjQ+PjJdLGFbbCsyOD4+Ml09YVtEKzI4Pj4yXSxsZT1wZX1mdW5jdGlvbiBacmUobCxjLGYscCl7bHw9MCxjPStjLGY9K2Y7dmFyIHcsYixrLEQsbT0wLEE9MCxNPTA7c3dpdGNoKEQ9bGUsbGU9bGUrMTZ8MCx3PUQrOHwwLGI9RCxtPStfWzMyKyhwfD0wKT4+M10saz0rX1twKzQwPj4z''@;'; + put 'put ''XSwwfGZlW3ArNDg+PjBdKXtjYXNlIDEwODpfW3c+PjNdPWMsbSs9YyxBPWIsTT01O2JyZWFrO2Nhc2UgMTEwOl9bdz4+M109Yy0obSo9LjUpLG0rPWMsQT1iLE09NTticmVhaztjYXNlIDExNDpfW2I+PjNdPWMsbT1jLW0sQT13LE09NTticmVhaztkZWZhdWx0OmM9MCxtPTB9NT09KDB8TSkm''@;'; + put 'put ''JihfW0E+PjNdPW0sYz0rX1t3Pj4zXSxtPStfW2I+PjNdKSxmPStfW3ArMTY+PjNdK2YsX1tsPj4zXT1jLF9bbCs4Pj4zXT1mLWssX1tsKzE2Pj4zXT1tLF9bbCsyND4+M109ZixsZT1EfWZ1bmN0aW9uIGdXKGwsYyl7Y3w9MDt2YXIgcCx3LGIsayxmPTAsbT0wLEE9MCxNPTA7Zm9yKGs9bGUs''@;'; + put 'put ''bGU9bGUrMTZ8MCxiPWssdz0wfGFbMTUyKyhsfD0wKT4+Ml0sX1tsKzQ4OD4+M109cD0oQT0uMDEzODg4ODg4ODg4ODg4ODg4KitfW2wrMzUyPj4zXSkqKE09K19bbCs0MzI+PjNdKSxfW2wrNDk2Pj4zXT1BKj1tPStfW2wrNDQwPj4zXSxfW2wrNTIwPj4zXT0uMDEzODg4ODg4ODg4ODg4ODg4''@;'; + put 'put ''Kk0sX1soZj1sKzUyOHwwKT4+M109LjAxMzg4ODg4ODg4ODg4ODg4OCptLDQwOTYmd3wwJiYoX1tmPj4zXT0tLjAxMzg4ODg4ODg4ODg4ODg4OCptKSxNPSsoKDB8YVtsKzQ0OD4+Ml0pPj4+MCksbT0rKCgwfGFbbCs0NTI+PjJdKT4+PjApLF9bbCszNjg+PjNdPSgoZj0wPT0oMHxhW2wrMzYw''@;'; + put 'put ''Pj4yXSkpP006bSkvcCxfW2wrMzc2Pj4zXT0oZj9tOk0pL0EsZG0obCwwfHYyKGMsMHxzaShjLDAsMTAxNTIyLDApLDE5NTA1OSkpLGFbbCsxNjA+PjJdPTAsZnVuY3Rpb24gR3JlKGwsYyl7Y3w9MDt2YXIgZjtmPTB8eGYobHw9MCksYVtmKzQ+PjJdPTAsYVtmKzg+PjJdPWMsYVtmKzEyPj4y''@;'; + put 'put ''XT0wLEhIKGwsMHxhWzEyKygwfGFbYysxNj4+Ml0pPj4yXSxjKSxmdW5jdGlvbiBUUihsLGMpe2N8PTA7dmFyIGY9MDswfChjPTB8YVs2MCsobHw9MCk+PjJdKSYmMHwoZj0wfGFbYys4Pj4yXSkmJkNvWzEyNyZmXShsKX0obCxjKX0obCxjKSwyJnd8MCYmZnVuY3Rpb24gbVcobCxjKXtjfD0w''@;'; + put 'put ''O3ZhciBmPTAscD0wLG09MCxBPTA7Zm9yKGhsKGx8PTAsMTM0ODAwKSwwfChmPTB8TGkoYywxNDA5NzcpKSYmMHxmZVtmPj4wXSYmaGwobCxmKSwwfChmPTB8TGkoYywxMDE0NDYpKSYmMHxmZVtmPj4wXSYmbWEobCxmKSxEb2UobCxjKSxBPTB8RHQoYyk7QTspezB8KGY9MHxMaShBLDE0MDgy''@;'; + put 'put ''MykpJiYwfGZlW2Y+PjBdJiZtYShsLGYpLDB8KGY9MHxMaShBLDEzNzcyOSkpJiYwfGZlW2Y+PjBdJiZobChsLGYpLGY9MHxMaShBLDEwMTQxOCk7ZG97aWYoMHxmJiYwfGZlW2Y+PjBdKXtpZighKDB8JHMoZiw1OCkpKXttYShsLGYpO2JyZWFrfWZvcihmPXA9MHxyYShmKTtmPTB8bHYoZiwx''@;'; + put 'put ''MDc5ODQpOykwfGZlW2Y+PjBdPyhtYShsLGYpLGY9MCk6Zj0wO0Z0KHApfX13aGlsZSgwKTtmb3IoMHwoZj0wfExpKEEsMTAxNDQ2KSkmJjB8ZmVbZj4+MF0mJm1hKGwsZiksbT0wfHcwKGMsQSk7bTspe2Y9MHxMaShtLDE0MDgyMyk7ZG97aWYoMHxmJiYwfGZlW2Y+PjBdKXtpZighKDB8JHMo''@;'; + put 'put ''Ziw1OCkpKXttYShsLGYpO2JyZWFrfWZvcihmPXA9MHxyYShmKTtmPTB8bHYoZiwxMDc5ODQpOykwfGZlW2Y+PjBdPyhtYShsLGYpLGY9MCk6Zj0wO0Z0KHApfX13aGlsZSgwKTswfChmPTB8TGkobSwxMDE0NDYpKSYmMHxmZVtmPj4wXSYmbWEobCxmKSxtPTB8UzAoYyxtKX1BPTB8enQoYyxB''@;'; + put 'put ''KX19KGwsYyksZj0wfER0KGMpO2Y7KWZlWzExNisoMHxhW2YrMTY+PjJdKT4+MF09MCxmPTB8enQoYyxmKTtmb3IoZnVuY3Rpb24gV3JlKGwsYyl7Y3w9MDt2YXIgbSxBLGIsZj0wLHA9MCx3PTA7Yj1sZSxsZT1sZSsxNnwwLHA9Yis4fDAsQT1iLGFbKG09MTU2KyhsfD0wKXwwKT4+Ml09Zj0w''@;'; + put 'put ''fGFbMzEyKyh3PTB8YVtsPj4yXSk+PjJdLCh3PTB8YVt3KzMxNj4+Ml0pPyhmPXcrNHwwLCgwfGFbdz4+Ml0pPjEmJjA9PSg2NCZhW2wrMTUyPj4yXXwwKSYmKGFbQT4+Ml09YVtsKzUyPj4yXSwkcigwLDEwMDU2NyxBKSxhW3crOD4+Ml09MSsoMHxhW20+PjJdKSkscD0wfGFbZj4+Ml0sZj13''@;'; + put 'put ''Kzh8MCk6KDB8Zik+MSYmMD09KDY0JmFbbCsxNTI+PjJdfDApPyhhW3A+PjJdPWFbbCs1Mj4+Ml0sJHIoMCwxMDA1NjcscCksYVttPj4yXT0xLHA9MSxmPTApOihwPTEsZj0wKSxhW2wrMTYwPj4yXT1wLGFbYz4+Ml09ZixsZT1ifShsLGIpOygwfHZXKGwpKTw8MjQ+PjI0Oyl7Zm9yKCgwfFBD''@;'; + put 'put ''KGwpKT4xJiZKeihsKSxGQyhsKTsoMHxBVyhsKSk8PDI0Pj4yNDspWXJlKGwsYyksX0YobCk7KDB8UEMobCkpPjEmJm1iKGwpLHlXKGwsYil9KGZ1bmN0aW9uIFVyZShsKXsoZnVuY3Rpb24gSk0obCl7dmFyIGMsZj0wOzB8KGM9MHxhWzYwKyhsfD0wKT4+Ml0pJiYwfChmPTB8YVtjKzEyPj4y''@;'; + put 'put ''XSkmJkNvWzEyNyZmXShsKSxmdW5jdGlvbiBqRyhsKXt2YXIgYyxmPTA7MHwoYz0wfGFbNzYrKGx8PTApPj4yXSkmJjB8KGY9MHxhW2MrND4+Ml0pJiZDb1sxMjcmZl0obCksaUYobCl9KGwpfSkobHw9MCksT0MobCl9KShsKSxsZT1rfWZ1bmN0aW9uIHZXKGwpe3JldHVybigwfGFbMTYwKyhs''@;'; + put 'put ''fD0wKT4+Ml0pPD0oMHxhW2wrMTU2Pj4yXSl8MH1mdW5jdGlvbiBQQyhsKXt2YXIgYztyZXR1cm4gMHxhWygwPT0oMHwoYz0wfGFbMzE2KygwfGFbKGx8PTApPj4yXSk+PjJdKSk/bCsxNTZ8MDpjKT4+Ml19ZnVuY3Rpb24gRkMobCl7dmFyIGMsZjtjPTB8YVs0KyhmPTE3MisobHw9MCl8MCk+''@;'; + put 'put ''PjJdLGFbKGw9bCsxOTZ8MCk+PjJdPWFbZj4+Ml0sYVtsKzQ+PjJdPWN9ZnVuY3Rpb24gQVcobCl7dmFyIGYsYz0wO3JldHVybiAwfCgoMHwoZj0wfGFbMTk2KyhsfD0wKT4+Ml0pKT4tMSYmKDB8Zik8KDB8YVtsKzE2ND4+Ml0pJiYoMHwoYz0wfGFbbCsyMDA+PjJdKSk+LTE/KDB8Yyk8KDB8''@;'; + put 'put ''YVtsKzE2OD4+Ml0pJjE6MCl9ZnVuY3Rpb24gWXJlKGwsYyl7Y3w9MDt2YXIgYixrLE0sRCxSLGY9MCxwPTAsbT0wLEE9MCx3PTAsRz0wO1I9bGUsbGU9bGUrMTc2fDAsYj1SLGY9Uis0OHwwLGs9UiszMnwwLE09MHxhWzE2KyhsfD0wKT4+Ml0sRD0wfGFbbCsxNTI+PjJdLCgwfGFbbCsxNjA+''@;'; + put 'put ''PjJdKTw9MSYmKDB8YVtsKzE5Nj4+Ml0pPD0wP209MDoodXMoaywxMjgsZiksbT0wfGFbKHA9TSsyMTJ8MCk+PjJdLFMyKGwsayksdW8oayxtKSwoZj0wfGFbKEE9ays0fDApPj4yXSk+Pj4wPj0oMHxhW2srOD4+Ml0pPj4+MCYmKFEwKGssMSksZj0wfGFbQT4+Ml0pLGZlW2Y+PjBdPTAsYVtB''@;'; + put 'put ''Pj4yXT1mPTB8YVtrPj4yXSxhW3A+PjJdPWYpLEQ5KDB8TGkoYywxMDAwMzIpKSxmdW5jdGlvbiBRcmUobCl7dmFyIEQsYmUsYz0wLGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsUj0wLEc9MCxLPTAscGU9MCxnZT0wLE9lPTA7YmU9bGUsbGU9bGUrNDh8MCxEPWJlKzMyfDAsYj1i''@;'; + put 'put ''ZSs4fDAsaz1iZSsxNnwwLE09YmUsSz0wfGFbKHBlPTE5NisobHw9MCl8MCk+PjJdLHBlPTB8YVtwZSs0Pj4yXSxhWyhHPW09YmUrMjR8MCk+PjJdPUssYVtHKzQ+PjJdPXBlLHc9MHxhWyhHPWwrMTY0fDApPj4yXSxHPTB8YVtHKzQ+PjJdLGFbKGdlPWIpPj4yXT13LGFbZ2UrND4+Ml09Ryww''@;'; + put 'put ''fGFbKGdlPWwrMzYwfDApPj4yXT8oYVtEPj4yXT1hW20+PjJdLGFbRCs0Pj4yXT1hW20rND4+Ml0sakkoayxEKSxrPTB8YVsocGU9ayk+PjJdLHBlPTB8YVtwZSs0Pj4yXSxhWyhHPW0pPj4yXT1rLGFbRys0Pj4yXT1wZSxhW0Q+PjJdPWFbYj4+Ml0sYVtEKzQ+PjJdPWFbYis0Pj4yXSxqSShN''@;'; + put 'put ''LEQpLHc9MHxhWyhHPU0pPj4yXSxHPTB8YVtHKzQ+PjJdLGFbYj4+Ml09dyxhW2IrND4+Ml09RyxiPXBlKTooaz1LLGI9cGUpLF9bbCsyODg+PjNdPUE9KGY9K19bbCszMjA+PjNdKSorKDB8ayktK19bbCsyNDA+PjNdLF9bbCsyOTY+PjNdPVI9KHA9K19bbCszMjg+PjNdKSorKDB8YiktK19b''@;'; + put 'put ''bCsyNDg+PjNdLF9bbCszMDQ+PjNdPWYrQSxfW2wrMzEyPj4zXT1wK1IsbT1sKzQ3MnwwLDB8YVsyOCsoMHxhW2wrMTI+PjJdKT4+Ml0/KGFbbT4+Ml09YVsoKDB8YVttPj4yXSk8KDB8YVsoSz1sKzQ1NnwwKT4+Ml0pP206Syk+PjJdLGFbKHBlPWwrNDc2fDApPj4yXT1hWygoMHxhW3BlPj4y''@;'; + put 'put ''XSk8KDB8YVtsKzQ2MD4+Ml0pP206SykrND4+Ml0sYVsocGU9bCs0ODB8MCk+PjJdPWFbKCgwfGFbcGU+PjJdKT4oMHxhW2wrNDY0Pj4yXSk/bTpLKSs4Pj4yXSxhWyhwZT1sKzQ4NHwwKT4+Ml09YVsoKDB8YVtwZT4+Ml0pPigwfGFbbCs0Njg+PjJdKT9tOkspKzEyPj4yXSk6KGFbbT4+Ml09''@;'; + put 'put ''YVsocGU9bCs0NTZ8MCk+PjJdLGFbbSs0Pj4yXT1hW3BlKzQ+PjJdLGFbbSs4Pj4yXT1hW3BlKzg+PjJdLGFbbSsxMj4+Ml09YVtwZSsxMj4+Ml0pLGM9K19bbCszMzY+PjNdLDEyOCYoTT0wfGFbbCsxNTI+PjJdKT8oX1tsKzI1Nj4+M109cD1jLShmPS41KitfW2wrMzY4Pj4zXSksUj0oQT0r''@;'; + put 'put ''X1tsKzM0ND4+M10pLShPZT0uNSorX1tsKzM3Nj4+M10pLGYrPWMsQT1PZStBLGM9cCk6KF9bbCsyNTY+PjNdPWM9KCsoMHxrKS0uNSorKDB8dykpKmYrYyxSPUE9KCsoMHxiKS0uNSorKDB8RykpKnArICtfW2wrMzQ0Pj4zXSxmKz1jLEErPXApLF9bbCsyNjQ+PjNdPVIsX1tsKzI3Mj4+M109''@;'; + put 'put ''ZixfW2wrMjgwPj4zXT1BLDB8YVtnZT4+Ml0/KG09bCszODR8MCxfW2wrNTEyPj4zXT0tQS0rX1tsKzM5Mj4+M10vKHA9K19bbCszNTI+PjNdKSw0MDk2Jk0/KGY9LWYsYz0rX1ttPj4zXS9wKTpmPStfW20+PjNdL3AsX1tsKzUwND4+M109Zi1jKTooX1tsKzUwND4+M109K19bbCszODQ+PjNd''@;'; + put 'put ''LyhwPStfW2wrMzUyPj4zXSktYyw0MDk2Jk0/KGY9LUEsYz0rX1tsKzM5Mj4+M10vcCk6KGY9K19bbCszOTI+PjNdL3AsYz1SKSxfW2wrNTEyPj4zXT1mLWMpLGxlPWJlfShsKSxmdW5jdGlvbiBReihsKXt2YXIgYyxmPTA7MHwoYz0wfGFbNjArKGx8PTApPj4yXSkmJjB8KGY9MHxhW2MrMjQ+''@;'; + put 'put ''PjJdKSYmQ29bMTI3JmZdKGwpfShsKSxtYShsLDEzNzMxNCksaGwobCwxMzQ4MDApO2Rve2lmKDQyNTk4NDAmRHwwKXtpZigwPT0oMHxhW00rMjA4Pj4yXSkmJjA9PSgxJml0W00rMjYwPj4xXSkpYnJlYWs7NjU1MzYwJkQ/KGFbTSsyNjQ+PjJdPShBPTEzMTA3MiZEKT4+PjE2XjIsZj0wfHZy''@;'; + put 'put ''KDMyKyhBPj4+MTJeMzIpfDApLGFbZj4+Ml09YVsocD1sKzI4OHwwKT4+Ml0sYVtmKzQ+PjJdPWFbcCs0Pj4yXSxhW2YrOD4+Ml09YVtwKzg+PjJdLGFbZisxMj4+Ml09YVtwKzEyPj4yXSxhWyhwPWYrMTZ8MCk+PjJdPWFbKEc9bCszMDR8MCk+PjJdLGFbcCs0Pj4yXT1hW0crND4+Ml0sYVtw''@;'; + put 'put ''Kzg+PjJdPWFbRys4Pj4yXSxhW3ArMTI+PjJdPWFbRysxMj4+Ml0sQT9wPTI6KFdJKGYpLHA9NCkpOihmPTAscD0wKSw4MTkyJkR8fE1oKGwsZixmLHApLGFbTSsyNzI+PjJdPWYsYVtNKzI2OD4+Ml09cH19d2hpbGUoMCk7MzI3NjgmRHwwJiYwfCh3PTB8YVsxMisoMHxhW2MrMTY+PjJdKT4+''@;'; + put 'put ''Ml0pJiYoYVtNKzE5Mj4+Ml09YVt3Pj4yXSkscD0wIT0oNCZEfDApO2Rve2lmKCFwKXtpZigwPT0oMHxhWyhmPU0rMjA4fDApPj4yXSkmJjA9PSgxJml0W00rMjYwPj4xXSkpYnJlYWs7YVtiPj4yXT1hWyhHPWwrMjU2fDApPj4yXSxhW2IrND4+Ml09YVtHKzQ+PjJdLGFbYis4Pj4yXT1hW0cr''@;'; + put 'put ''OD4+Ml0sYVtiKzEyPj4yXT1hW0crMTI+PjJdLGFbYisxNj4+Ml09YVtHKzE2Pj4yXSxhW2IrMjA+PjJdPWFbRysyMD4+Ml0sYVtiKzI0Pj4yXT1hW0crMjQ+PjJdLGFbYisyOD4+Ml09YVtHKzI4Pj4yXSxSQyhsLGIpLEcxKGwsMHxhW2Y+PjJdLDB8YVtNKzIyOD4+Ml0sMHxhW00rMjQ0Pj4y''@;'; + put 'put ''XSwwfGFbTSsyMTI+PjJdKX19d2hpbGUoMCk7KGZ1bmN0aW9uIEpyZShsLGMpe2x8PTA7dmFyIEQsRyxwZSxmPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsUj0wLEs9MDtwZT1sZSxsZT1sZSs0OHwwLEc9cGUsRD1wZSs0MHwwLFI9cGUrMzZ8MCxLPXBlKzMyfDAsKGY9MHxMaShjfD0wLDE0''@;'; + put 'put ''MDk3NykpPyh3PTEmKEE9MD09KDB8ZmVbZj4+MF0pKSxmPUE/MTM3MTk4OmYpOih3PTEsZj0xMzcxOTgpLEE9MTE2PT0oMHxmZVtmPj4wXSksMjU2JihtPTB8YVtsKzE1Mj4+Ml0pP0EmJiEoMHxaaShmLDEzNzM3OSkpfHwoYj1mLGs9dyxNPTgpOkE/KGI9KGs9MD09KDB8WmkoZiwxMzczNzkp''@;'; + put 'put ''KSk/MTM3MTk4OmYsaz1rPzE6dyxNPTgpOihiPWYsaz13LE09OCksOD09KDB8TSkmJiEoMCE9KDB8aykmMCE9KDMzNTU0NDMyJm18MCkpJiYoKDB8dWsoYixELFIpKTw8MjQ+PjI0PyhhW0s+PjJdPTAsaGwobCxBPTB8YVtEPj4yXSksbWEobCwxMzczNzkpLFZJKGMsSyksVWYobCwoZj0wfGFb''@;'; + put 'put ''RCs0Pj4yXSl8fDEzNzMxNCxtPTB8ZXMoYywwfGFbNDcxNDNdLDAsMCksK2puW1I+PjJdKSxLPSgwfGFbSz4+Ml0pPj4+MSYxfDIsYVtHPj4yXT1hWyhSPWwrMjU2fDApPj4yXSxhW0crND4+Ml09YVtSKzQ+PjJdLGFbRys4Pj4yXT1hW1IrOD4+Ml0sYVtHKzEyPj4yXT1hW1IrMTI+PjJdLGFb''@;'; + put 'put ''RysxNj4+Ml09YVtSKzE2Pj4yXSxhW0crMjA+PjJdPWFbUisyMD4+Ml0sYVtHKzI0Pj4yXT1hW1IrMjQ+PjJdLGFbRysyOD4+Ml09YVtSKzI4Pj4yXSx5MyhsLEcsSyksRnQoQSkpOihobChsLGIpLG1hKGwsMTM3Mzc5KSxhW0c+PjJdPWFbKEs9bCsyNTZ8MCk+PjJdLGFbRys0Pj4yXT1hW0sr''@;'; + put 'put ''ND4+Ml0sYVtHKzg+PjJdPWFbSys4Pj4yXSxhW0crMTI+PjJdPWFbSysxMj4+Ml0sYVtHKzE2Pj4yXT1hW0srMTY+PjJdLGFbRysyMD4+Ml09YVtLKzIwPj4yXSxhW0crMjQ+PjJdPWFbSysyND4+Ml0sYVtHKzI4Pj4yXT1hW0srMjg+PjJdLHkzKGwsRywxKSkpLDB8KGY9MHxhWzg4KygwfGFb''@;'; + put 'put ''OCsoMHxhW2MrMTY+PjJdKT4+Ml0pPj4yXSkmJmZ1bmN0aW9uIGR2ZShsLGMpe2x8PTAsY3w9MDt2YXIgUixwZSxnZSxiZSxPZSxMZSxSZSxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxHPTAsSz0wLEhlPTAsVmU9MCxxZT0wO2ZvcihSZT1sZSxsZT1sZSs5NnwwLFI9UmUr''@;'; + put 'put ''NDh8MCxwZT1SZSsxNnwwLExlPVJlKzh8MCxPZT1SZSxhWyhnZT1SZSs4MHwwKT4+Ml09MWUzLG09MHxRbigxNmUzKSxiZT1sKzI1NnwwLHA9MSx3PTEsQT0wLEc9MCxLPTB8YVtjKzg+PjJdOyEoKDB8Ryk+PSgwfGFbYz4+Ml0pKTspe2Y9MHxhW0s+PjJdO2U6ZG97c3dpdGNoKDB8Zil7Y2Fz''@;'; + put 'put ''ZSAxOmNhc2UgMDphW3BlPj4yXT1hWyhNPUsrODB8MCk+PjJdLGFbcGUrND4+Ml09YVtNKzQ+PjJdLGFbcGUrOD4+Ml09YVtNKzg+PjJdLGFbcGUrMTI+PjJdPWFbTSsxMj4+Ml0sYVtwZSsxNj4+Ml09YVtNKzE2Pj4yXSxhW3BlKzIwPj4yXT1hW00rMjA+PjJdLGFbcGUrMjQ+PjJdPWFbTSsy''@;'; + put 'put ''ND4+Ml0sYVtwZSsyOD4+Ml09YVtNKzI4Pj4yXSxhW1I+PjJdPWFbYmU+PjJdLGFbUis0Pj4yXT1hW2JlKzQ+PjJdLGFbUis4Pj4yXT1hW2JlKzg+PjJdLGFbUisxMj4+Ml09YVtiZSsxMj4+Ml0sYVtSKzE2Pj4yXT1hW2JlKzE2Pj4yXSxhW1IrMjA+PjJdPWFbYmUrMjA+PjJdLGFbUisyND4+''@;'; + put 'put ''Ml09YVtiZSsyND4+Ml0sYVtSKzI4Pj4yXT1hW2JlKzI4Pj4yXSwwfG15KHBlLFIpJiYoX1ttPj4zXT0rX1soVmU9Sys4fDApPj4zXS0rX1socWU9SysyNHwwKT4+M10sX1ttKzg+PjNdPStfWyhNPUsrMTZ8MCk+PjNdLStfWyhIZT1LKzMyfDApPj4zXSxfW20rMTY+PjNdPStfW3FlPj4zXSsg''@;'; + put 'put ''K19bVmU+PjNdLF9bbSsyND4+M109K19bSGU+PjNdKyArX1tNPj4zXSwkdShsLG0sMiwwPT0oMHxmKT93OjApKSxmPXc7YnJlYWs7Y2FzZSAzOmNhc2UgMjphW3BlPj4yXT1hWyhxZT1LKzgwfDApPj4yXSxhW3BlKzQ+PjJdPWFbcWUrND4+Ml0sYVtwZSs4Pj4yXT1hW3FlKzg+PjJdLGFbcGUr''@;'; + put 'put ''MTI+PjJdPWFbcWUrMTI+PjJdLGFbcGUrMTY+PjJdPWFbcWUrMTY+PjJdLGFbcGUrMjA+PjJdPWFbcWUrMjA+PjJdLGFbcGUrMjQ+PjJdPWFbcWUrMjQ+PjJdLGFbcGUrMjg+PjJdPWFbcWUrMjg+PjJdLGFbUj4+Ml09YVtiZT4+Ml0sYVtSKzQ+PjJdPWFbYmUrND4+Ml0sYVtSKzg+PjJdPWFb''@;'; + put 'put ''YmUrOD4+Ml0sYVtSKzEyPj4yXT1hW2JlKzEyPj4yXSxhW1IrMTY+PjJdPWFbYmUrMTY+PjJdLGFbUisyMD4+Ml09YVtiZSsyMD4+Ml0sYVtSKzI0Pj4yXT1hW2JlKzI0Pj4yXSxhW1IrMjg+PjJdPWFbYmUrMjg+PjJdLDB8bXkocGUsUikmJmthKGwsbT0wfGpIKG0sZ2UsMHxhWzQrKGY9Sys4''@;'; + put 'put ''fDApPj4yXSwwfGFbZj4+Ml0pLDB8YVtmPj4yXSwyPT0oMHxhW0s+PjJdKT93OjApLGY9dzticmVhaztjYXNlIDU6Y2FzZSA0OmFbcGU+PjJdPWFbKHFlPUsrODB8MCk+PjJdLGFbcGUrND4+Ml09YVtxZSs0Pj4yXSxhW3BlKzg+PjJdPWFbcWUrOD4+Ml0sYVtwZSsxMj4+Ml09YVtxZSsxMj4+''@;'; + put 'put ''Ml0sYVtwZSsxNj4+Ml09YVtxZSsxNj4+Ml0sYVtwZSsyMD4+Ml09YVtxZSsyMD4+Ml0sYVtwZSsyND4+Ml09YVtxZSsyND4+Ml0sYVtwZSsyOD4+Ml09YVtxZSsyOD4+Ml0sYVtSPj4yXT1hW2JlPj4yXSxhW1IrND4+Ml09YVtiZSs0Pj4yXSxhW1IrOD4+Ml09YVtiZSs4Pj4yXSxhW1IrMTI+''@;'; + put 'put ''PjJdPWFbYmUrMTI+PjJdLGFbUisxNj4+Ml09YVtiZSsxNj4+Ml0sYVtSKzIwPj4yXT1hW2JlKzIwPj4yXSxhW1IrMjQ+PjJdPWFbYmUrMjQ+PjJdLGFbUisyOD4+Ml09YVtiZSsyOD4+Ml0sMHxteShwZSxSKSYmUWYobCxtPTB8akgobSxnZSwwfGFbNCsoZj1LKzh8MCk+PjJdLDB8YVtmPj4y''@;'; + put 'put ''XSksMHxhW2Y+PjJdLDAsMCw0PT0oMHxhW0s+PjJdKT8yNTUmdzowKSxmPXc7YnJlYWs7Y2FzZSA2OmFbcGU+PjJdPWFbKHFlPUsrODB8MCk+PjJdLGFbcGUrND4+Ml09YVtxZSs0Pj4yXSxhW3BlKzg+PjJdPWFbcWUrOD4+Ml0sYVtwZSsxMj4+Ml09YVtxZSsxMj4+Ml0sYVtwZSsxNj4+Ml09''@;'; + put 'put ''YVtxZSsxNj4+Ml0sYVtwZSsyMD4+Ml09YVtxZSsyMD4+Ml0sYVtwZSsyND4+Ml09YVtxZSsyND4+Ml0sYVtwZSsyOD4+Ml09YVtxZSsyOD4+Ml0sYVtSPj4yXT1hW2JlPj4yXSxhW1IrND4+Ml09YVtiZSs0Pj4yXSxhW1IrOD4+Ml09YVtiZSs4Pj4yXSxhW1IrMTI+PjJdPWFbYmUrMTI+PjJd''@;'; + put 'put ''LGFbUisxNj4+Ml09YVtiZSsxNj4+Ml0sYVtSKzIwPj4yXT1hW2JlKzIwPj4yXSxhW1IrMjQ+PjJdPWFbYmUrMjQ+PjJdLGFbUisyOD4+Ml09YVtiZSsyOD4+Ml0sMHxteShwZSxSKSYmV28obCxtPTB8akgobSxnZSwwfGFbNCsoZj1LKzh8MCk+PjJdLDB8YVtmPj4yXSksMHxhW2Y+PjJdKSxm''@;'; + put 'put ''PXc7YnJlYWs7Y2FzZSA3OmFbcGU+PjJdPWFbKHFlPUsrODB8MCk+PjJdLGFbcGUrND4+Ml09YVtxZSs0Pj4yXSxhW3BlKzg+PjJdPWFbcWUrOD4+Ml0sYVtwZSsxMj4+Ml09YVtxZSsxMj4+Ml0sYVtwZSsxNj4+Ml09YVtxZSsxNj4+Ml0sYVtwZSsyMD4+Ml09YVtxZSsyMD4+Ml0sYVtwZSsy''@;'; + put 'put ''ND4+Ml09YVtxZSsyND4+Ml0sYVtwZSsyOD4+Ml09YVtxZSsyOD4+Ml0sYVtSPj4yXT1hW2JlPj4yXSxhW1IrND4+Ml09YVtiZSs0Pj4yXSxhW1IrOD4+Ml09YVtiZSs4Pj4yXSxhW1IrMTI+PjJdPWFbYmUrMTI+PjJdLGFbUisxNj4+Ml09YVtiZSsxNj4+Ml0sYVtSKzIwPj4yXT1hW2JlKzIw''@;'; + put 'put ''Pj4yXSxhW1IrMjQ+PjJdPWFbYmUrMjQ+PjJdLGFbUisyOD4+Ml09YVtiZSsyOD4+Ml0sMHxteShwZSxSKSYmKF9bbT4+M109K19bSys4Pj4zXSxfW20rOD4+M109K19bSysxNj4+M10sZj0wfGFbSysxMTI+PjJdLGFbUj4+Ml09YVttPj4yXSxhW1IrND4+Ml09YVttKzQ+PjJdLGFbUis4Pj4y''@;'; + put 'put ''XT1hW20rOD4+Ml0sYVtSKzEyPj4yXT1hW20rMTI+PjJdLGhtKGwsUixmKSksZj13O2JyZWFrO2Nhc2UgODpobChsLDB8YVtLKzg+PjJdKSxmPTE7YnJlYWs7Y2FzZSA5Om1hKGwsMHxhW0srOD4+Ml0pLGY9MTticmVhaztjYXNlIDEzOmlmKDIhPSgwfGFbSys4Pj4yXSkpe3FlPTB8YVsxMiso''@;'; + put 'put ''VmU9MHxhWzM2KyhmPUsrMTZ8MCk+PjJdKT4+Ml0sRD0ram5bVmUrOD4+Ml0sZj1+fig1Ny4yOTU3Nzk1MTMwODIzMiorVWwoKygrX1tLKzQwPj4zXS0rX1tLKzI0Pj4zXSksKygrX1tLKzMyPj4zXS0rX1tmPj4zXSkpKSxobChsLDB8YVtWZSs0Pj4yXSksVWYobCxxZSxmLEQpLGY9MjticmVh''@;'; + put 'put ''ayBlfXc9MHxhWzQrKHFlPTB8YVtLKzY4Pj4yXSk+PjJdLE09MHxhW3FlKzEyPj4yXSxEPStqbltxZSs4Pj4yXSxmPShiPStfW0srNDA+PjNdKT09KGs9K19bSysxNj4+M10pJiYrX1tLKzQ4Pj4zXT09K19bSysyND4+M10/MDp+fig1Ny4yOTU3Nzk1MTMwODIzMiorSnAoKyhrLWIpLytfW0sr''@;'; + put 'put ''MzI+PjNdKSksaGwobCx3KSxVZihsLE0sZixEKSxmPTM7YnJlYWs7Y2FzZSAxNDokcigwLDEwMDQ4MSxPZSksZj13O2JyZWFrO2Nhc2UgMTI6cD8oJHIoMCwxMDA1MjEsTGUpLHA9MCxmPXcpOihwPTAsZj13KTticmVhaztjYXNlIDExOlpBKDB8YVtLKzg+PjJdKSxkMihsLDE4ODIyOCksQT0x''@;'; + put 'put ''ODgyMjgsZj13O2JyZWFrO2RlZmF1bHQ6Zj13fX13aGlsZSgwKTt3PWYsRz1HKzF8MCxLPUsrMTIwfDB9MHxBJiZkMihsLDB8YVszMzYrKDB8YVtsPj4yXSk+PjJdKSxGdChtKSxsZT1SZX0obCxmKSxsZT1wZX0pKGwsYyksMHwoZj0wfGFbMTIrKDB8YVtjKzE2Pj4yXSk+PjJdKSYmYjcobCw0''@;'; + put 'put ''LGYpO2Rve2lmKCFwKXtpZigwPT0oMHxhW00rMjA4Pj4yXSkmJjA9PSgxJml0W00rMjYwPj4xXSkpYnJlYWs7RWgobCl9fXdoaWxlKDApOyhmdW5jdGlvbiBYcmUobCxjLGYpe2N8PTAsZnw9MDt2YXIgcD0wLG09MCxBPTA7YVsoQT0yOCsoMHxhWyhsfD0wKT4+Ml0pfDApPj4yXT0xKygwfGFb''@;'; + put 'put ''QT4+Ml0pLChBPTAhPSg0JmZ8MCkpfHxWQShsLGMsZik7ZTpkb3tpZigxJmYpe2ZvcihHOChsKSxwPTB8RHQoYyk7cDspakEobCxwKSxwPTB8enQoYyxwKTtmb3IoY20obCksWWYobCksbT0wfER0KGMpO207KXtmb3IocD0wfHcwKGMsbSk7cDspSEMobCxwKSxwPTB8UzAoYyxwKTttPTB8enQo''@;'; + put 'put ''YyxtKX1mbShsKX1lbHNle2lmKDE2JmZ8MCl7Zm9yKFlmKGwpLG09MHxEdChjKTttOyl7Zm9yKHA9MHx3MChjLG0pO3A7KUhDKGwscCkscD0wfFMwKGMscCk7bT0wfHp0KGMsbSl9Zm9yKGZtKGwpLEc4KGwpLHA9MHxEdChjKTtwOylqQShsLHApLHA9MHx6dChjLHApO2NtKGwpO2JyZWFrfWlm''@;'; + put 'put ''KCEoOCZmKSlmb3IobT0wfER0KGMpOzspe2lmKCFtKWJyZWFrIGU7Zm9yKGpBKGwsbSkscD0wfHcwKGMsbSk7cDspakEobCwwfGFbKDI9PSgzJmFbcD4+Ml18MCk/cDpwKy00OHwwKSs0MD4+Ml0pLEhDKGwscCkscD0wfFMwKGMscCk7bT0wfHp0KGMsbSl9Zm9yKEc4KGwpLHA9MHxEdChjKTtw''@;'; + put 'put ''OykoMHxLcmUoYyxwKSk8PDI0Pj4yNCYmakEobCxwKSxwPTB8enQoYyxwKTtmb3IoY20obCksWWYobCksbT0wfER0KGMpO207KXtmb3IocD0wfHcwKGMsbSk7cDspKDB8Q0YoYyxwKSk8PDI0Pj4yNCYmSEMobCxwKSxwPTB8UzAoYyxwKTttPTB8enQoYyxtKX1mbShsKX19d2hpbGUoMCk7QSYm''@;'; + put 'put ''VkEobCxjLGYpfSkobCxjLEQpLGZ1bmN0aW9uIFhNKGwpe3ZhciBjLGY9MDswfChjPTB8YVs2MCsobHw9MCk+PjJdKSYmMHwoZj0wfGFbYysyOD4+Ml0pJiZDb1sxMjcmZl0obCl9KGwpLDB8bSYmKEMyKGspLGFbTSsyMTI+PjJdPW0pLGxlPVJ9ZnVuY3Rpb24gX0YobCl7dmFyIGMsZixtLEEs''@;'; + put 'put ''dyxwPTAsYj0wLGs9MDt3PWxlLGxlPWxlKzMyfDAsZj13KzI0fDAsaz13Kzh8MCxtPXcsYj0xODgrKGx8PTApfDAsYVsoYz13KzE2fDApPj4yXT1hWyhBPWwrMTk2fDApPj4yXSxhW2MrND4+Ml09YVtBKzQ+PjJdLGFbZj4+Ml09YVtiPj4yXSxhW2YrND4+Ml09YVtiKzQ+PjJdLFZUKGssYyxm''@;'; + put 'put ''KSxiPTB8YVtrKzQ+PjJdLGFbKHA9QSk+PjJdPWFbaz4+Ml0sYVtwKzQ+PjJdPWIsKDB8QVcobCkpPDwyND4+MjR8fChwPWwrMTgwfDAsMHxhW2wrMTg0Pj4yXT9hW0E+PjJdPWFbbCsxNzI+PjJdOmFbbCsyMDA+PjJdPWFbbCsxNzY+PjJdLGFbYz4+Ml09YVtBPj4yXSxhW2MrND4+Ml09YVtB''@;'; + put 'put ''KzQ+PjJdLGFbZj4+Ml09YVtwPj4yXSxhW2YrND4+Ml09YVtwKzQ+PjJdLFZUKG0sYyxmKSxiPTB8YVttKzQ+PjJdLGFbKGs9QSk+PjJdPWFbbT4+Ml0sYVtrKzQ+PjJdPWIpLGxlPXd9ZnVuY3Rpb24geVcobCxjKXtsfD0wO3ZhciBmPTA7KGY9MHxhWyhjfD0wKT4+Ml0pPyhhW2wrMTYwPj4y''@;'; + put 'put ''XT1hW2Y+PjJdLGFbYz4+Ml09Zis0KTphWyhmPWwrMTYwfDApPj4yXT0xKygwfGFbZj4+Ml0pfWZ1bmN0aW9uIFZUKGwsYyxmKXt2YXIgcDtwPSgwfGFbNCsoZnw9MCk+PjJdKSsoMHxhWzQrKGN8PTApPj4yXSl8MCxhWyhsfD0wKT4+Ml09KDB8YVtmPj4yXSkrKDB8YVtjPj4yXSksYVtsKzQ+''@;'; + put 'put ''PjJdPXB9ZnVuY3Rpb24gVkEobCxjLGYpe3ZhciBnZSxiZSxPZSxSZSxIZSxWZSxxZSxudCxXZSxvdCxTdCxrdCxzdCxFdCxadCxjdCxidCxTbixwPTAsbT0wLEE9MCx3PTAsaz0wLE09MCxEPTAsUj0wLEc9MCxLPTAscGU9MCxMZT0wLGFuPTAsSG49MDtmb3IoU249bGUsbGU9bGUrMTI4fDAs''@;'; + put 'put ''Z2U9U24rNzJ8MCxidD1Tbis2NHwwLFN0PVNuKzExMnwwLEV0PTE2KyhjfD0wKXwwLFp0PTAhPSg0JihmfD0wKXwwKSxjdD0xNisobHw9MCl8MCxiZT0oa3Q9U24pKzMyfDAsT2U9a3QrMTZ8MCxSZT1rdCs4fDAsSGU9a3QrMjR8MCxWZT1rdCs0OHwwLHFlPWt0KzQwfDAsbnQ9a3QrNTZ8MCxX''@;'; + put 'put ''ZT0wPT0oOCZmfDApLG90PTQrKHN0PVNuKzEwNHwwKXwwLHBlPTE7ISgoMHxwZSk+KDB8YVsxODArKHA9MHxhW0V0Pj4yXSk+PjJdKSk7KXtpZigoMHxyUShsLEs9MHxhWygwfGFbcCsxODQ+PjJdKSsocGU8PDIpPj4yXSkpPDwyND4+MjQpe1p0JiZWQShsLEssZiksSW9lKGwsSyksRz0wfGFb''@;'; + put 'put ''KFI9MjA4KyhEPTB8YVtjdD4+Ml0pfDApPj4yXT8xOjAhPSgxJml0W0QrMjYwPj4xXSksRDkoMHxMaShLLDEwMDAzMikpLFp0fDFeR3x8KGFbZ2U+PjJdPWFbKE09MTYrKDB8YVtLKzE2Pj4yXSl8MCk+PjJdLGFbZ2UrND4+Ml09YVtNKzQ+PjJdLGFbZ2UrOD4+Ml09YVtNKzg+PjJdLGFbZ2Ur''@;'; + put 'put ''MTI+PjJdPWFbTSsxMj4+Ml0sYVtnZSsxNj4+Ml09YVtNKzE2Pj4yXSxhW2dlKzIwPj4yXT1hW00rMjA+PjJdLGFbZ2UrMjQ+PjJdPWFbTSsyND4+Ml0sYVtnZSsyOD4+Ml09YVtNKzI4Pj4yXSxSQyhsLGdlKSxHMShsLDB8YVtSPj4yXSwwfGFbRCsyMjg+PjJdLDB8YVtEKzI0ND4+Ml0sMHxh''@;'; + put 'put ''W0QrMjEyPj4yXSkpLGFbU3Q+PjJdPTAsKHA9MHxWSShLLFN0KSk/KGQyKGwscCksaz0xJmFbU3Q+PjJdKTprPTAscD0wfFh0WzExMisoMHxhWyhNPUsrMTZ8MCk+PjJdKT4+MF07ZG97aWYoMSZwKXA9MHxCYShLLDAsMTA2MjQwKSxtPTB8QmEoSywwLDEwNjI0OCksYW49Mjk7ZWxzZXtpZigy''@;'; + put 'put ''JnB8MCl7cD0wfEJhKEssMCwxMDYyNTYpLG09MHxCYShLLDAsMTA2MjY0KSxhbj0yOTticmVha31pZig4JnB8MCl7cD0wfEJhKEssMCwxMDYyNzIpLG09MHxCYShLLDAsMTA2MjgwKSxhbj0yOTticmVha31pZig0JnB8MCl7cD0wfEJhKEssMCwxMDYyODgpLG09MHxCYShLLDAsMTA2Mjk2KSxh''@;'; + put 'put ''bj0yOTticmVha31pZihtPShwPTB8TGkoSywxNDA4MjMpKT8wPT0oMHxmZVtwPj4wXSk/MDpwOjAscD0ocD0wfExpKEssMTM3NzI5KSk/MD09KDB8ZmVbcD4+MF0pP206cDptLChBPTB8TGkoSywxMDE0MTgpKSYmKG09MD09KDB8ZmVbQT4+MF0pP206QSksMCE9KDB8aykmMCE9KDB8bSkpYW49''@;'; + put 'put ''Mjk7ZWxzZXtpZigwfChBPTB8TGkoSywxNDA5NzcpKSYmMHxmZVtBPj4wXSl7bT1BLGFuPTI5O2JyZWFrfXA9MD09KDB8cCk/MTM3MzE0OnAsdz0wPT0oMHxtKT8xMzQ4MDA6bSxhW3N0Pj4yXT0wLGs/YW49MzE6bT0wfX19d2hpbGUoMCk7Mjk9PSgwfGFuKSYmKGFbc3Q+PjJdPTAscD0wPT0o''@;'; + put 'put ''MHxwKT8xMzczMTQ6cCx3PTA9PSgwfG0pPzEzNDgwMDptLGFuPTMxKSwzMT09KDB8YW4pJiYoYW49MCwoMHx1ayh3LHN0LGdlKSk8PDI0Pj4yND8oaGwobCwwfGFbc3Q+PjJdKSxVZihsLChtPTB8YVtvdD4+Ml0pfHwxMzczMTQsQT0wfGVzKEssMHxhWzQ3MTQzXSwwLDApLCtqbltnZT4+Ml0p''@;'; + put 'put ''LG09KDB8YVtTdD4+Ml0pPj4+MSYxfDIpOihobChsLHcpLG09MSkpLDB8KEE9MHxhWzQ3MTQyXSkmJjB8KExlPTB8SG8oSyxBKSkmJjB8ZmVbTGU+PjBdJiZ4aChsLCtNbChLLDB8YVs0NzE0Ml0sMSwwKSksaz0wfGFbU3Q+PjJdO2Rve2lmKDQmaykoQT0wfGVzKEssMHxhWzQ3MTQxXSwxLDAp''@;'; + put 'put ''KXxtfDAmJihhW2t0Pj4yXT1hWyhIbj0xNisodz0wfGFbTT4+Ml0pfDApPj4yXSxhW2t0KzQ+PjJdPWFbSG4rND4+Ml0sYVtrdCs4Pj4yXT1hW0huKzg+PjJdLGFba3QrMTI+PjJdPWFbSG4rMTI+PjJdLGFbYmU+PjJdPWFbKHc9dyszMnwwKT4+Ml0sYVtiZSs0Pj4yXT1hW3crND4+Ml0sYVti''@;'; + put 'put ''ZSs4Pj4yXT1hW3crOD4+Ml0sYVtiZSsxMj4+Ml09YVt3KzEyPj4yXSxfW09lPj4zXT0rX1tiZT4+M10sX1tIZT4+M109K19bUmU+PjNdLF9bVmU+PjNdPStfW2t0Pj4zXSxfW250Pj4zXT0rX1txZT4+M10sbWEobCxBP3A6MTM3Mzc5KSxLNShsLGt0LDQsayxtKSk7ZWxzZXtpZighKDY0Jmsp''@;'; + put 'put ''KXtpZigwfGVzKEssMHxhWzQ3MTQxXSwxLDApKXttYShsLHApLGFbZ2U+PjJdPWFbKEhuPTE2KygwfGFbTT4+Ml0pfDApPj4yXSxhW2dlKzQ+PjJdPWFbSG4rND4+Ml0sYVtnZSs4Pj4yXT1hW0huKzg+PjJdLGFbZ2UrMTI+PjJdPWFbSG4rMTI+PjJdLGFbZ2UrMTY+PjJdPWFbSG4rMTY+PjJd''@;'; + put 'put ''LGFbZ2UrMjA+PjJdPWFbSG4rMjA+PjJdLGFbZ2UrMjQ+PjJdPWFbSG4rMjQ+PjJdLGFbZ2UrMjg+PjJdPWFbSG4rMjg+PjJdLHkzKGwsZ2UsbSk7YnJlYWt9aWYoIW0pYnJlYWs7bWEobCwxMzczNzkpLGFbZ2U+PjJdPWFbKEhuPTE2KygwfGFbTT4+Ml0pfDApPj4yXSxhW2dlKzQ+PjJdPWFb''@;'; + put 'put ''SG4rND4+Ml0sYVtnZSs4Pj4yXT1hW0huKzg+PjJdLGFbZ2UrMTI+PjJdPWFbSG4rMTI+PjJdLGFbZ2UrMTY+PjJdPWFbSG4rMTY+PjJdLGFbZ2UrMjA+PjJdPWFbSG4rMjA+PjJdLGFbZ2UrMjQ+PjJdPWFbSG4rMjQ+PjJdLGFbZ2UrMjg+PjJdPWFbSG4rMjg+PjJdLHkzKGwsZ2UsbSk7YnJl''@;'; + put 'put ''YWt9YVtrdD4+Ml09YVsoaz0xNisoSG49MHxhW00+PjJdKXwwKT4+Ml0sYVtrdCs0Pj4yXT1hW2srND4+Ml0sYVtrdCs4Pj4yXT1hW2srOD4+Ml0sYVtrdCsxMj4+Ml09YVtrKzEyPj4yXSxhW2JlPj4yXT1hWyhIbj1IbiszMnwwKT4+Ml0sYVtiZSs0Pj4yXT1hW0huKzQ+PjJdLGFbYmUrOD4+''@;'; + put 'put ''Ml09YVtIbis4Pj4yXSxhW2JlKzEyPj4yXT1hW0huKzEyPj4yXSxfW09lPj4zXT0rX1tiZT4+M10sX1tIZT4+M109K19bUmU+PjNdLF9bVmU+PjNdPStfW2t0Pj4zXSxfW250Pj4zXT0rX1txZT4+M10sMHxlcyhLLDB8YVs0NzE0MV0sMSwwKT9tYShsLHApOm1hKGwsMTM3Mzc5KSwoMHx3Rihs''@;'; + put 'put ''LGt0LHcsMCkpPjEmJihhW2J0Pj4yXT0wfHRpKEspLCRyKDMsMTAwNDAwLGJ0KSksYVtnZT4+Ml09YVsoSG49MTYrKDB8YVtNPj4yXSl8MCk+PjJdLGFbZ2UrND4+Ml09YVtIbis0Pj4yXSxhW2dlKzg+PjJdPWFbSG4rOD4+Ml0sYVtnZSsxMj4+Ml09YVtIbisxMj4+Ml0sYVtnZSsxNj4+Ml09''@;'; + put 'put ''YVtIbisxNj4+Ml0sYVtnZSsyMD4+Ml09YVtIbisyMD4+Ml0sYVtnZSsyND4+Ml09YVtIbisyND4+Ml0sYVtnZSsyOD4+Ml09YVtIbisyOD4+Ml0seTMobCxnZSwwKX19d2hpbGUoMCk7RnQoMHxhW3N0Pj4yXSksMHwocD0wfGFbMTIrKDB8YVtNPj4yXSk+PjJdKSYmYjcobCw1LHApLEcmJiha''@;'; + put 'put ''dCYmKGFbZ2U+PjJdPWFbKEhuPTE2KygwfGFbTT4+Ml0pfDApPj4yXSxhW2dlKzQ+PjJdPWFbSG4rND4+Ml0sYVtnZSs4Pj4yXT1hW0huKzg+PjJdLGFbZ2UrMTI+PjJdPWFbSG4rMTI+PjJdLGFbZ2UrMTY+PjJdPWFbSG4rMTY+PjJdLGFbZ2UrMjA+PjJdPWFbSG4rMjA+PjJdLGFbZ2UrMjQ+''@;'; + put 'put ''PjJdPWFbSG4rMjQ+PjJdLGFbZ2UrMjg+PjJdPWFbSG4rMjg+PjJdLFJDKGwsZ2UpLEcxKGwsMHxhW1I+PjJdLDB8YVtEKzIyOD4+Ml0sMHxhW0QrMjQ0Pj4yXSwwfGFbRCsyMTI+PjJdKSksRWgobCkpO2U6ZG97aWYoIVdlKWZvcihtPTB8RHQoSyk7Oyl7aWYoIW0pYnJlYWsgZTtmb3IoakEo''@;'; + put 'put ''bCxtKSxwPTB8dzAoSyxtKTtwOylIQyhsLHApLHA9MHxTMChLLHApO209MHx6dChLLG0pfX13aGlsZSgwKTtodmUobCxjKSxadHx8VkEobCxLLGYpfXBlPXBlKzF8MH1sZT1Tbn1mdW5jdGlvbiBqQShsLGMpe3ZhciBBLHcsYixmPTAscD0wLG09MCxrPTA7Yj1sZSxsZT1sZSszMnwwLGY9YixB''@;'; + put 'put ''PTB8YVsobHw9MCk+PjJdLHc9MTYrKGN8PTApfDA7ZTpkb3tpZigwfGFbOCsoMHxhW3c+PjJdKT4+Ml0mJigwfHhvZShsLDB8Y3IoYyksYykpPDwyND4+MjQmJihrPWwrMjU2fDAsYVtmPj4yXT1hW2s+PjJdLGFbZis0Pj4yXT1hW2srND4+Ml0sYVtmKzg+PjJdPWFbays4Pj4yXSxhW2YrMTI+''@;'; + put 'put ''PjJdPWFbaysxMj4+Ml0sYVtmKzE2Pj4yXT1hW2srMTY+PjJdLGFbZisyMD4+Ml09YVtrKzIwPj4yXSxhW2YrMjQ+PjJdPWFbaysyND4+Ml0sYVtmKzI4Pj4yXT1hW2srMjg+PjJdLCgwfGN2ZShjLGYpKTw8MjQ+PjI0KSYmKHA9MTE2KygwfGFbdz4+Ml0pfDAsbT0wfGFbQSsyOD4+Ml0sKDB8''@;'; + put 'put ''bSkhPSgwfGZlW3A+PjBdKSkpe2ZlW3A+PjBdPW0sZG0obCwwfHRpKGMpKSxmPTB8djIoYywwfGFbNDcxNjldLDE5NTA1OSksMHxmZVtmPj4wXSYmZG0obCxmKSxmPTB8djIoYywwfGFbNDcxNTddLDE5NTA1OSk7dDpkb3tpZigwfGZlW2Y+PjBdKWZvcihaQShmKSxmPTE4ODIyODs7KXtpZihw''@;'; + put 'put ''PWYsZj1mKzR8MCwhKHA9MHxhW3A+PjJdKSlicmVhayB0O2lmKDEwNT09KDB8ZmVbcD4+MF0pJiYhKDB8WmkocCwxMzQzMzUpKSlicmVhayBlfX13aGlsZSgwKTtmdmUobCxjKSxHc1s2MyZhWzIwKygwfGFbNCsoMHxhWzgrKDB8YVt3Pj4yXSk+PjJdKT4+Ml0pPj4yXV0obCxjKSwwfChmPTB8''@;'; + put 'put ''YVsxMDgrKDB8YVt3Pj4yXSk+PjJdKSYmMHxmZVtmKzgxPj4wXSYmYjcobCwxMCxmKSxUb2UobCl9fXdoaWxlKDApO2xlPWJ9ZnVuY3Rpb24gSEMobCxjKXtjfD0wO3ZhciBBLGY9MCxwPTAsbT0wLHc9MDtBPWxlLGxlPWxlKzMyfDAsYVsobT1BKT4+Ml09YVsoZj0yNTYrKGx8PTApfDApPj4y''@;'; + put 'put ''XSxhW20rND4+Ml09YVtmKzQ+PjJdLGFbbSs4Pj4yXT1hW2YrOD4+Ml0sYVttKzEyPj4yXT1hW2YrMTI+PjJdLGFbbSsxNj4+Ml09YVtmKzE2Pj4yXSxhW20rMjA+PjJdPWFbZisyMD4+Ml0sYVttKzI0Pj4yXT1hW2YrMjQ+PjJdLGFbbSsyOD4+Ml09YVtmKzI4Pj4yXTtlOmRve2lmKCgwfGtG''@;'; + put 'put ''KGMsbSkpPDwyND4+MjQmJihwPWMrLTQ4fDAsKDB8d1cobCxjKSk8PDI0Pj4yNCkpe3c9Yys0OHwwLGlkKGY9MHxCMCgzKyhmPTB8VW8oMHx0aSgwfGFbKDM9PSgzJmFbYz4+Ml18MCk/Yzp3KSs0MD4+Ml0pKSkrKDB8VW8oMHx0aSgwfGFbKDI9PSgzJmFbYz4+Ml18MCk/YzpwKSs0MD4+Ml0p''@;'; + put 'put ''KSl8MCksMHx0aSgwfGFbKDM9PSgzJmFbYz4+Ml18MCk/Yzp3KSs0MD4+Ml0pKSx3PTA9PSgwfFNjKDB8Y3IoMHxhWygyPT0oMyZhW2M+PjJdfDApP2M6cCkrNDA+PjJdKSkpLG09ZisoMHxVbyhmKSl8MCx3PyhmZVttPj4wXT0wfGZlWzE0MTc0N10sZmVbbSsxPj4wXT0wfGZlWzE0MTc0OF0s''@;'; + put 'put ''ZmVbbSsyPj4wXT0wfGZlWzE0MTc0OV0pOihmZVttPj4wXT0wfGZlWzEzNzczOF0sZmVbbSsxPj4wXT0wfGZlWzEzNzczOV0sZmVbbSsyPj4wXT0wfGZlWzEzNzc0MF0pLHN2KGYsMHx0aSgwfGFbKDI9PSgzJmFbYz4+Ml18MCk/YzpwKSs0MD4+Ml0pKSxkbShsLGYpLEZ0KGYpLGY9MHx2Mihj''@;'; + put 'put ''LDB8YVs0NzE5MV0sMTk1MDU5KSwwfGZlW2Y+PjBdJiZkbShsLGYpLGY9MHx2MihjLDB8YVs0NzE4NV0sMTk1MDU5KTt0OmRve2lmKDB8ZmVbZj4+MF0pZm9yKFpBKGYpLGY9MTg4MjI4Ozspe2lmKHA9ZixmPWYrNHwwLCEocD0wfGFbcD4+Ml0pKXtmPTE4ODIyODticmVhayB0fWlmKDEwNT09''@;'; + put 'put ''KDB8ZmVbcD4+MF0pJiYhKDB8WmkocCwxMzQzMzUpKSlicmVhayBlfWVsc2UgZj0wfXdoaWxlKDApO0xIKGwsYyxmKSxHVShsLGMsZiksV1UobCl9fXdoaWxlKDApO2xlPUF9ZnVuY3Rpb24gS3JlKGwsYyl7Y3w9MDt2YXIgZixwPTA7Zm9yKGY9MTYrKGx8PTApfDAsbD0xOzspe2lmKCgwfGwp''@;'; + put 'put ''PigwfGFbMTgwKyhwPTB8YVtmPj4yXSk+PjJdKSl7bD0xO2JyZWFrfWlmKDB8TnIoMHxhWygwfGFbcCsxODQ+PjJdKSsobDw8Mik+PjJdLGMpKXtsPTA7YnJlYWt9bD1sKzF8MH1yZXR1cm4gMHxsfWZ1bmN0aW9uIENGKGwsYyl7Y3w9MDt2YXIgZixwPTA7Zm9yKGY9MTYrKGx8PTApfDAsbD0x''@;'; + put 'put ''Ozspe2lmKCgwfGwpPigwfGFbMTgwKyhwPTB8YVtmPj4yXSk+PjJdKSl7bD0xO2JyZWFrfWlmKDB8TnIoMHxhWygwfGFbcCsxODQ+PjJdKSsobDw8Mik+PjJdLGMpKXtsPTA7YnJlYWt9bD1sKzF8MH1yZXR1cm4gMHxsfWZ1bmN0aW9uIGtGKGwsYyl7Y3w9MDt2YXIgcCxtLHcsYixmPTAsQT0w''@;'; + put 'put ''O2I9bGUsbGU9bGUrNjR8MCx3PWIrMzJ8MCxwPWIsMCE9KDB8KGY9MHxhWzgrKGw9MHxhWyhtPTE2KyhsfD0wKXwwKT4+Ml0pPj4yXSkpJiYoYVtwPj4yXT1hWyhmPWYrOHwwKT4+Ml0sYVtwKzQ+PjJdPWFbZis0Pj4yXSxhW3ArOD4+Ml09YVtmKzg+PjJdLGFbcCsxMj4+Ml09YVtmKzEyPj4y''@;'; + put 'put ''XSxhW3ArMTY+PjJdPWFbZisxNj4+Ml0sYVtwKzIwPj4yXT1hW2YrMjA+PjJdLGFbcCsyND4+Ml09YVtmKzI0Pj4yXSxhW3ArMjg+PjJdPWFbZisyOD4+Ml0sYVt3Pj4yXT1hW2M+PjJdLGFbdys0Pj4yXT1hW2MrND4+Ml0sYVt3Kzg+PjJdPWFbYys4Pj4yXSxhW3crMTI+PjJdPWFbYysxMj4+''@;'; + put 'put ''Ml0sYVt3KzE2Pj4yXT1hW2MrMTY+PjJdLGFbdysyMD4+Ml09YVtjKzIwPj4yXSxhW3crMjQ+PjJdPWFbYysyND4+Ml0sYVt3KzI4Pj4yXT1hW2MrMjg+PjJdLDAhPSgwfG15KHAsdykpKT9sPTE6QT0zO2Rve2lmKDM9PSgwfEEpKXtpZihmPTB8YVtsKzk2Pj4yXSl7aWYoYVt3Pj4yXT1hW2M+''@;'; + put 'put ''PjJdLGFbdys0Pj4yXT1hW2MrND4+Ml0sYVt3Kzg+PjJdPWFbYys4Pj4yXSxhW3crMTI+PjJdPWFbYysxMj4+Ml0sYVt3KzE2Pj4yXT1hW2MrMTY+PjJdLGFbdysyMD4+Ml09YVtjKzIwPj4yXSxhW3crMjQ+PjJdPWFbYysyND4+Ml0sYVt3KzI4Pj4yXT1hW2MrMjg+PjJdLCgwfEJOKGYsdykp''@;'; + put 'put ''PDwyND4+MjQpe2w9MTticmVha31sPTB8YVttPj4yXX1pZigwfChsPTB8YVtsKzEwOD4+Ml0pJiYwfGZlW2wrODE+PjBdJiYoYVt3Pj4yXT1hW2M+PjJdLGFbdys0Pj4yXT1hW2MrND4+Ml0sYVt3Kzg+PjJdPWFbYys4Pj4yXSxhW3crMTI+PjJdPWFbYysxMj4+Ml0sYVt3KzE2Pj4yXT1hW2Mr''@;'; + put 'put ''MTY+PjJdLGFbdysyMD4+Ml09YVtjKzIwPj4yXSxhW3crMjQ+PjJdPWFbYysyND4+Ml0sYVt3KzI4Pj4yXT1hW2MrMjg+PjJdLCgwfEJOKGwsdykpPDwyND4+MjQpKXtsPTE7YnJlYWt9bD0wfX13aGlsZSgwKTtyZXR1cm4gbGU9YiwwfGx9ZnVuY3Rpb24gd1cobCxjKXtsfD0wLGN8PTA7dmFy''@;'; + put 'put ''IGY9MCxwPTA7ZTpkb3tpZigoMHxhW2wrMTU2Pj4yXSk+PTImJihmPTB8djIoYywwfGFbNDcxOTBdLDE5NTA1OSksKDB8TkkobCxmKSk8PDI0Pj4yND09MCkpaWYoMHxmZVtmPj4wXSlmPTA7ZWxzZSBmb3IoZj0wOzspe2lmKCgwfGYpPj0yKXtmPTA7YnJlYWsgZX1pZihwPTB8djIoMHxhWygo''@;'; + put 'put ''MyZhW2M+PjJdfDApPT0oMHwoKHA9MT09KDB8ZikpPzI6MykpP2M6YysoNDgqKHA/LTE6MSl8MCl8MCkrNDA+PjJdLDB8YVs0NzE2N10sMTk1MDU5KSwhKDB8ZmVbcD4+MF0pKXtmPTE7YnJlYWsgZX1pZigoMHxOSShsLHApKTw8MjQ+PjI0KXtmPTE7YnJlYWt9Zj1mKzF8MH1lbHNlIGY9MX13''@;'; + put 'put ''aGlsZSgwKTtyZXR1cm4gMHxmfWZ1bmN0aW9uIFpBKGwpe2x8PTA7dmFyIG0sQSx3LGIsayxNLEQsUixHLGM9MCxmPTAscD0wO0c9bGUsbGU9bGUrMTkyfDAsUj1HKzI0fDAsRD1HKzE2fDAsTT1HKzh8MCxrPUcsbT1HKzQ4fDAsYj1HKzMyfDAsMHxmZVsxMDAyODJdJiYodXMoMTg4NDkyLDEy''@;'; + put 'put ''OCwxOTQ4MjYpLGZlWzEwMDI4Ml09MCksdXMoYiwxMjgsRys1NnwwKSxhW20+PjJdPWwsQT1iKzR8MCx3PWIrOHwwLGM9MCxmPTA7ZTpmb3IoOzspe3A9Yzt0OmZvcig7Oylzd2l0Y2goMHxNb2UobSxiKSl7Y2FzZSAwOmM9MjE7YnJlYWsgZTtjYXNlIDQwOmlmKHA8PDI0Pj4yNCl7Yz03O2Jy''@;'; + put 'put ''ZWFrIGV9cD0xO2NvbnRpbnVlIHQ7Y2FzZSA0MTppZihwPDwyND4+MjQpe3A9MDtjb250aW51ZSB0fWM9OTticmVhayBlO2RlZmF1bHQ6YnJlYWsgdH1pZighKHA8PDI0Pj4yNCkpe2lmKDYzPT0oMHxmKSl7Yz0xMjticmVha30oYz0wfGFbNDcxMjRdKT4+PjA+PSgwfGFbNDcxMjVdKT4+PjAm''@;'; + put 'put ''JihRMCgxODg0OTIsMSksYz0wfGFbNDcxMjRdKSxhWzQ3MTI0XT1jKzEsZmVbYz4+MF09MCxhWzE4ODIyOCsoZjw8Mik+PjJdPWFbNDcxMjRdLGY9ZisxfDB9KGM9MHxhW0E+PjJdKT4+PjA+PSgwfGFbdz4+Ml0pPj4+MCYmKFEwKGIsMSksYz0wfGFbQT4+Ml0pLGZlW2M+PjBdPTAsYVtBPj4y''@;'; + put 'put ''XT1jPTB8YVtiPj4yXSx1bygxODg0OTIsYyksKGM9MHxhWzQ3MTI0XSk+Pj4wPj0oMHxhWzQ3MTI1XSk+Pj4wJiYoUTAoMTg4NDkyLDEpLGM9MHxhWzQ3MTI0XSksYVs0NzEyNF09YysxLGZlW2M+PjBdPTAsYz1wfWRve2lmKDc9PSgwfGMpKWFbaz4+Ml09bCwkcigxLDEwMDI4MyxrKSxhWzQ3''@;'; + put 'put ''MDU3XT0wLEMyKGIpO2Vsc2UgaWYoOT09KDB8YykpYVtNPj4yXT1sLCRyKDEsMTAwMzE3LE0pLGFbNDcwNTddPTAsQzIoYik7ZWxzZSBpZigxMj09KDB8YykpYVtEPj4yXT1sLCRyKDAsMTAwMzQ1LEQpLGFbNDcxMjBdPTAsQzIoYik7ZWxzZSBpZigyMT09KDB8Yykpe2lmKHA8PDI0Pj4yNCl7''@;'; + put 'put ''YVtSPj4yXT1sLCRyKDEsMTAwMzY4LFIpLGFbNDcwNTddPTAsQzIoYik7YnJlYWt9YVsxODgyMjgrKGY8PDIpPj4yXT0wLEMyKGIpLChjPTB8YVs0NzEyNF0pPj4+MD49KDB8YVs0NzEyNV0pPj4+MCYmKFEwKDE4ODQ5MiwxKSxjPTB8YVs0NzEyNF0pLGZlW2M+PjBdPTAsYVs0NzEyNF09YVs0''@;'; + put 'put ''NzEyM119fXdoaWxlKDApO3JldHVybiBsZT1HLDE4ODIyOH1mdW5jdGlvbiBpcChsKXt2YXIgbSxBLGIsYz0wLGY9MCxwPTAsdz0wO2I9bGUsbGU9bGUrMTA0MHwwLEE9YixtPWIrOHwwLHA9MCxjPWx8PTA7ZTpmb3IoOzspe2Rve2lmKGY9YyxjPWMrMXwwLCEoKGY9MHxmZVtmPj4wXSk8PDI0''@;'; + put 'put ''Pj4yNCkpYnJlYWsgZX13aGlsZSgoKGY8PDI0Pj4yNCktNDh8MCk+Pj4wPj0xMCk7aWYoKDB8cCk+PTEwMjMpe3c9NzticmVha31mZVttK3A+PjBdPWYscD1wKzF8MH1yZXR1cm4gNz09KDB8dykmJihhW0E+PjJdPWwsJHIoMCw2NjgxOSxBKSksZmVbbStwPj4wXT0wLHc9NjU1MzUmKDB8cjMo''@;'; + put 'put ''bSkpLGxlPWIsMHx3fWZ1bmN0aW9uIGpUKGwpe2x8PTA7dmFyIG0sayxNLGM9MCxmPTAscD0wLEE9MCx3PTAsYj0wO2lmKE09bGUsbGU9bGUrMTE4NHwwLEE9TSxwPU0rMjR8MCx1cyhrPU0rOHwwLDEwMjQsTSsxNTJ8MCksKG09K19bMTUyKyhjPTB8YVsodz1sKzE2fDApPj4yXSk+PjNdKSE9''@;'; + put 'put ''K19bKGY9OCsoYVtjKzEyPj4yXTw8Myl8MCk+PjNdJiYoX1tmPj4zXT1tLHVvKGssNjY4ODIpLF9bQT4+M109K19bMTUyKygwfGFbdz4+Ml0pPj4zXSxvbyhwLDY2ODk2LEEpLE1GKHAsMCksdW8oayxwKSwoYz0wfGFbKHA9ays0fDApPj4yXSk+Pj4wPj0oMHxhWyhmPWsrOHwwKT4+Ml0pPj4+''@;'; + put 'put ''MCYmKFEwKGssMSksYz0wfGFbcD4+Ml0pLGFbcD4+Ml09YysxLGZlW2M+PjBdPTQxLChjPTB8YVtwPj4yXSk+Pj4wPj0oMHxhW2Y+PjJdKT4+PjAmJihRMChrLDEpLGM9MHxhW3A+PjJdKSxmZVtjPj4wXT0wLGFbcD4+Ml09Yz0wfGFbaz4+Ml0sUDUobCw2NjkwMSxjKSxjPTB8YVt3Pj4yXSks''@;'; + put 'put ''MHwoYz0wfGFbYysxNjA+PjJdKSl7dz1rKzR8MCxiPWsrOHwwO2U6Zm9yKDtBPWMrNHwwLGM9MHxhW2M+PjJdLGM7KXtzd2l0Y2goMHxmZVtjPj4wXSl7Y2FzZSAxMDI6aWYoISgwfFppKGMsMTExMTAxKSkpe2M9QTtjb250aW51ZSBlfWJyZWFrO2Nhc2UgOTg6aWYoISgwfFppKGMsMTExMDgz''@;'; + put 'put ''KSkpe2M9QTtjb250aW51ZSBlfWJyZWFrO2Nhc2UgMTE1OmlmKCEoMHxaaShjLDExMTA4OCkpKXtjPUE7Y29udGludWUgZX19dW8oayxjKTtkb3twPWMsYz1jKzF8MH13aGlsZSgwIT0oMHxmZVtwPj4wXSkpO2lmKDB8ZmVbYz4+MF0pe2ZvcigoZj0wfGFbdz4+Ml0pPj4+MD49KDB8YVtiPj4y''@;'; + put 'put ''XSk+Pj4wJiYoUTAoaywxKSxmPTB8YVt3Pj4yXSksYVt3Pj4yXT1mKzEsZmVbZj4+MF09NDAscD0wOzB8ZmVbYz4+MF07KXswfHAmJigoZj0wfGFbdz4+Ml0pPj4+MD49KDB8YVtiPj4yXSk+Pj4wJiYoUTAoaywxKSxmPTB8YVt3Pj4yXSksYVt3Pj4yXT1mKzEsZmVbZj4+MF09NDQpLHVvKGss''@;'; + put 'put ''Yyk7ZG97Zj1jLGM9YysxfDB9d2hpbGUoMCE9KDB8ZmVbZj4+MF0pKTtwPXArMXwwfShjPTB8YVt3Pj4yXSk+Pj4wPj0oMHxhW2I+PjJdKT4+PjAmJihRMChrLDEpLGM9MHxhW3c+PjJdKSxhW3c+PjJdPWMrMSxmZVtjPj4wXT00MX0oYz0wfGFbdz4+Ml0pPj4+MD49KDB8YVtiPj4yXSk+Pj4w''@;'; + put 'put ''JiYoUTAoaywxKSxjPTB8YVt3Pj4yXSksZmVbYz4+MF09MCxhW3c+PjJdPWM9MHxhW2s+PjJdLFA1KGwsNjY5MDEsYyksYz1BfUMyKGspfWxlPU19ZnVuY3Rpb24gTkMobCl7RUYoMTYrKDB8YVsxNisobHw9MCk+PjJdKXwwKSxQNShsLDc1ODM0LDE5Mzc1OCl9ZnVuY3Rpb24gVkMobCxjLGYs''@;'; + put 'put ''cCl7Y3w9MCxmfD0wLHB8PTA7dmFyIG0sQSxiLGssdz0wO2ZvcihrPWxlLGxlPWxlKzEwNDB8MCxiPWssdz1rKzE2fDAsKGw9MHxhWyhtPTQrKEE9MHxhWzExNDE2KyhhWzEyKygwfGFbMTYrKGx8PTApPj4yXSk+PjJdPDwyKT4+Ml0pfDApPj4yXSk+Pj4wPj0oMHxhW0ErOD4+Ml0pPj4+MCYm''@;'; + put 'put ''KFEwKEEsMSksbD0wfGFbbT4+Ml0pLGFbbT4+Ml09bCsxLGZlW2w+PjBdPWMsYVtiPj4yXT1wLG9vKHcsNjY4NDYsYiksdW8oQSx3KSxsPTA7ISgoMHxsKT49KDB8cCkpOylhW2I+PjJdPWFbKHc9ZisobDw8NCl8MCk+PjJdLGFbYis0Pj4yXT1hW3crND4+Ml0sYVtiKzg+PjJdPWFbdys4Pj4y''@;'; + put 'put ''XSxhW2IrMTI+PjJdPWFbdysxMj4+Ml0sQjUoQSxiKSxsPWwrMXwwO2xlPWt9ZnVuY3Rpb24gQjUobCxjKXt2YXIgZixwO2x8PTAsZj1sZSxsZT1sZSsxMDI0fDAsV2gocD1mLCtfWyhjfD0wKT4+M10pLHVvKGwscCksV2gocCwrZnVuY3Rpb24gdWFlKGwpe3JldHVybisobD0rbCl9KCtfW2Mr''@;'; + put 'put ''OD4+M10pKSx1byhsLHApLGxlPWZ9ZnVuY3Rpb24gV2gobCxjKXt2YXIgZixwO2x8PTAsZj1sZSxsZT1sZSsxNnwwLF9bKHA9Zik+PjNdPShjPStjKT4tMWUtOCZjPDFlLTg/MDpjLG9vKGwsNjY4NTEscCksTUYobCwxKSxsZT1mfWZ1bmN0aW9uIE1GKGwsYyl7Y3w9MDt2YXIgZj0wLHA9MDtp''@;'; + put 'put ''ZihmPTB8JHMobHw9MCw0Nikpe2Zvcig7MHxmZVsobD1mKzF8MCk+PjBdOylmPWw7ZTpmb3IoOzspe3N3aXRjaCgwfGZlW2Y+PjBdKXtjYXNlIDQ2OnA9NTticmVhayBlO2Nhc2UgNDg6YnJlYWs7ZGVmYXVsdDpwPTY7YnJlYWsgZX1mZVtmPj4wXT0wLGY9ZistMXwwfTU9PSgwfHApP2ZlW2Y+''@;'; + put 'put ''PjBdPTA6Nj09KDB8cCkmJihmPWYrMXwwKSwwfGMmJihwPTEwKX1lbHNlIDB8YyYmKGY9bCsoMHxVbyhsKSl8MCxwPTEwKTsxMD09KDB8cCkmJihmZVtmPj4wXT0zMixmZVtmKzE+PjBdPTApfWZ1bmN0aW9uIEVGKGwpe3ZhciBjLGYscCxtLEEsdzt3PWxlLGxlPWxlKzMyfDAsQT13KzE2fDAs''@;'; + put 'put ''bT13LGM9MHxmZVszKyhsfD0wKT4+MF0sZj0wfFh0W2w+PjBdLHA9MHxYdFtsKzE+PjBdLGw9MHxYdFtsKzI+PjBdLGM8PDI0Pj4yND09LTE/KGFbbT4+Ml09ZixhW20rND4+Ml09cCxhW20rOD4+Ml09bCxvbygxOTM3NTgsNzU3MTQsbSkpOihhW0E+PjJdPWYsYVtBKzQ+PjJdPXAsYVtBKzg+''@;'; + put 'put ''PjJdPWwsYVtBKzEyPj4yXT0yNTUmYyxvbygxOTM3NTgsNjY4NjQsQSkpLGxlPXd9ZnVuY3Rpb24gUDUobCxjLGYpe3hXKDB8YVsxMTQxNisoYVsxMisoMHxhWzE2KyhsfD0wKT4+Ml0pPj4yXTw8Mik+PjJdLGN8PTAsZnw9MCl9ZnVuY3Rpb24geFcobCxjLGYpe3ZhciBwLG0sQSx3O2x8PTAs''@;'; + put 'put ''Y3w9MCxwPWxlLGxlPWxlKzEwNDB8MCxBPXAsbT1wKzh8MCx3PTB8VW8oZnw9MCksYVtBPj4yXT1jLGFbQSs0Pj4yXT13LG9vKG0sNjY4NTcsQSksdW8obCxtKSx1byhsLGYpLChjPTB8YVsoZj1sKzR8MCk+PjJdKT4+PjA+PSgwfGFbbCs4Pj4yXSk+Pj4wJiYoUTAobCwxKSxjPTB8YVtmPj4y''@;'; + put 'put ''XSksYVtmPj4yXT1jKzEsZmVbYz4+MF09MzIsbGU9cH1mdW5jdGlvbiB4RihsLGMsZixwKXtjfD0wLGZ8PTAscHw9MDt2YXIgUixLLHBlLGJlLE9lLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxHPTAsZ2U9MCxMZT0wO09lPWxlLGxlPWxlKzExMjB8MCxLPU9lKzY0fDAsYmU9T2UrODB8''@;'; + put 'put ''MCxBPU9lKzMyfDAsUj1PZSsxNnwwLEc9T2UsbT0uMDE3NDUzMjkyNTE5OTQzMjk1KisoMHxhWzEzNisocGU9MHxhWzE2KyhsfD0wKT4+Ml0pPj4yXSksKDB8aHJbODIzMisoMHxhWzQ2NjkwXSk+PjFdKTwxND9aVChsKToodXMoYmUsMTAyNCxPZSs5NnwwKSwoZ2U9Mj09KDB8YykpPyhBRChm''@;'; + put 'put ''LEEscCxtLDIpLChjPTB8YVsoZj1iZSs0fDApPj4yXSk+Pj4wPj0oMHxhW2JlKzg+PjJdKT4+PjAmJihRMChiZSwxKSxjPTB8YVtmPj4yXSksYVtmPj4yXT1jKzEsZmVbYz4+MF09OTEsYVtLPj4yXT1hW0E+PjJdLGFbSys0Pj4yXT1hW0ErND4+Ml0sYVtLKzg+PjJdPWFbQSs4Pj4yXSxhW0sr''@;'; + put 'put ''MTI+PjJdPWFbQSsxMj4+Ml0sQjUoYmUsSyksYVtLPj4yXT1hWyhHPUErMTZ8MCk+PjJdLGFbSys0Pj4yXT1hW0crND4+Ml0sYVtLKzg+PjJdPWFbRys4Pj4yXSxhW0srMTI+PjJdPWFbRysxMj4+Ml0sQjUoYmUsSykpOihBRChmLEEscCwwLDMpLEQ9K19bQSsyND4+M10saz0rX1tBPj4zXSww''@;'; + put 'put ''PT1tPyhNPS4yNSpELG09Yj0rX1tBKzg+PjNdLHc9ayk6KExlPU09LjI1KkQsdz0raGEoK20pKkxlK2ssYj0rX1tBKzg+PjNdLG09K0RhKCttKSpMZStiKSxfW1I+PjNdPXcsX1tSKzg+PjNdPW0sX1tHPj4zXT1rLF9bRys4Pj4zXT1iLChjPTB8YVsoZj1iZSs0fDApPj4yXSk+Pj4wPj0oMHxh''@;'; + put 'put ''W2JlKzg+PjJdKT4+PjAmJihRMChiZSwxKSxjPTB8YVtmPj4yXSksYVtmPj4yXT1jKzEsZmVbYz4+MF09NDAsYVtLPj4yXT1hW1I+PjJdLGFbSys0Pj4yXT1hW1IrND4+Ml0sYVtLKzg+PjJdPWFbUis4Pj4yXSxhW0srMTI+PjJdPWFbUisxMj4+Ml0sQjUoYmUsSyksVFcoYmUsTSksYVtLPj4y''@;'; + put 'put ''XT1hW0c+PjJdLGFbSys0Pj4yXT1hW0crND4+Ml0sYVtLKzg+PjJdPWFbRys4Pj4yXSxhW0srMTI+PjJdPWFbRysxMj4+Ml0sQjUoYmUsSyksVFcoYmUsRCkpLHVvKGJlLDY2OTA3KSxmPXBlKzU2fDAsKG09K2puWyhjPXBlKzE0MHwwKT4+Ml0pPjA/KHpUKGJlLG0sZikselQoYmUsK2puW2M+''@;'; + put 'put ''PjJdLHBlKzk2fDApKTooelQoYmUsMCxmKSx6VChiZSwxLHBlKzk2fDApKSxMNihiZSksZj0oYz0wfGFbKEE9YmUrNHwwKT4+Ml0pPj4+MD49KDB8YVsocD1iZSs4fDApPj4yXSk+Pj4wLGdlPyhmJiYoUTAoYmUsMSksYz0wfGFbQT4+Ml0pLGFbQT4+Ml09YysxLGZlW2M+PjBdPTkzKTooZiYm''@;'; + put 'put ''KFEwKGJlLDEpLGM9MHxhW0E+PjJdKSxhW0E+PjJdPWMrMSxmZVtjPj4wXT00MSksKGM9MHxhW0E+PjJdKT4+PjA+PSgwfGFbcD4+Ml0pPj4+MCYmKFEwKGJlLDEpLGM9MHxhW0E+PjJdKSxmZVtjPj4wXT0wLGFbQT4+Ml09Z2U9MHxhW2JlPj4yXSxQNShsLDY2OTA0LGdlKSxDMihiZSkpLGxl''@;'; + put 'put ''PU9lfWZ1bmN0aW9uIFpUKGwpe0VGKDU2KygwfGFbMTYrKGx8PTApPj4yXSl8MCksUDUobCw2NjkwNCwxOTM3NTgpfWZ1bmN0aW9uIFRXKGwsYyl7dmFyIGYscDtsfD0wLGY9bGUsbGU9bGUrMTAyNHwwLFdoKHA9ZixjPStjKSx1byhsLHApLGxlPWZ9ZnVuY3Rpb24gelQobCxjLGYpe3ZhciBw''@;'; + put 'put ''LG0sQTtsfD0wLGZ8PTAscD1sZSxsZT1sZSsxMDQwfDAsbT1wKzh8MCxfWyhBPXApPj4zXT1jPStjLG9vKG0sOTQxNjgsQSksTUYobSwxKSxFRihmKSx4VyhsLG0sMTkzNzU4KSxsZT1wfWZ1bmN0aW9uIEdUKGwsYyl7Y3w9MDt2YXIgZj0wO2ZvcihhWyhsfD0wKT4+Ml09LTkmYVtsPj4yXSxm''@;'; + put 'put ''PTB8eXMobCk7ZjspR1QoZiwwKSxmPTB8TXMoZik7ZTpkb3tpZigwfGMpZm9yKGM9MHxEdChsKTs7KXtpZighYylicmVhayBlO2ZvcihhW2M+PjJdPS05JmFbYz4+Ml0sZj0wfHcwKGwsYyk7ZjspYVtmPj4yXT0tOSZhW2Y+PjJdLGY9MHxTMChsLGYpO2M9MHx6dChsLGMpfX13aGlsZSgwKX1m''@;'; + put 'put ''dW5jdGlvbiBURihsLGMsZixwKXtsfD0wLGN8PTAscHw9MDt2YXIgUixHLHBlLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxLPTA7aWYocGU9bGUsbGU9bGUrMTZ8MCxLPXBlKzh8MCxHPXBlLFI9MCE9KDB8KGZ8PTApKSl7Zm9yKEQ9MHxpcygxMTgzNiwwfGFbNDU4MV0pLCRpKGwsMSwx''@;'; + put 'put ''NDEwNjAsMTIsMCksJGkobCwyLDE0MTA2MCwxMiwwKSwkaShsLDAsMTQxMDYwLC0xMiwwKSxtPTB8RFcobCwwLEQpLGs9MHxEdChsKSxiPTAsQT0wO2s7KXtmb3IoMHxzMigwfHRpKGspLDEwODAwNiw3KT8oTT1BKzF8MCxBPUErbXwwKTooTT1BLEE9MHxsaWUoRCwwfHRpKGspKSksYVs4Kygw''@;'; + put 'put ''fGFvKGssMTQxMDYwLDApKT4+Ml09QSx3PTB8dzAobCxrKSxBPWI7dzspYVs4KygwfGFvKHcsMTQxMDYwLDApKT4+Ml09QSx3PTB8UzAobCx3KSxBPUErMXwwO2s9MHx6dChsLGspLGI9QSxBPU19TmwoRCl9ZWxzZSBtPTA7YVtwPj4yXT0xKyhEPTB8YVtwPj4yXSksdmEoYyxEKSxFbihjLDk3''@;'; + put 'put ''Mzc0KSxmdW5jdGlvbiBJRihsLGMsZixwKXtjfD0wLGZ8PTAscHw9MDt2YXIgbSxBLHcsYixrPTA7dz1sZSxsZT1sZSszMnwwLEE9dysxNnwwLG09dys4fDAsYj13LGs9MHx0aShsfD0wKSx2YShjLDB8YVtwPj4yXSksYVtiPj4yXT0wfG9wKGsscCksT3IoYyw2NzEyNCxiKSwwfGYmJihFbihj''@;'; + put 'put ''LDk3MzQ1KSx2YShjLDB8YVtwPj4yXSksaz0wIT0oMHxTYyhsKSksYVttPj4yXT1rPzEwNzY1MjoxMzczMDgsT3IoYyw2NzczOCxtKSx2YShjLDB8YVtwPj4yXSksaz0wIT0oMHxEQShsKSksYVtBPj4yXT1rPzEwNzY1MjoxMzczMDgsT3IoYyw2Nzc1NSxBKSksbGU9d30obCxjLGYscCksakMo''@;'; + put 'put ''bCxjLHApLEVuKGMsOTczNDUpLHZhKGMsMHxhW3A+PjJdKSxSPyhhW0c+PjJdPW0sT3IoYyw2NzAxNixHKSk6KGFbSz4+Ml09YVs4KygwfGFvKGwsMTQxMDYwLDApKT4+Ml0sT3IoYyw2NzAzNixLKSksZnVuY3Rpb24gbjdlKGwsYyxmLHAsbSl7Y3w9MCxmfD0wLHB8PTAsbXw9MDt2YXIgQT0w''@;'; + put 'put ''LHc9MDtpZihBPTB8RHQobHw9MCkpe2ZvcihFbihjLDk3MzQ1KSwodz0wIT0oMHxmKSk/KHB8fChhW20+PjJdPTErKHA9MHxhW20+PjJdKSx2YShjLHApLEVuKGMsNjcwOTgpKSxwPTApOihhW20+PjJdPTErKHA9MHxhW20+PjJdKSx2YShjLHApLEVuKGMsNjcxMTIpLHZhKGMsMHxhW20+PjJd''@;'; + put 'put ''KSxwPTApO0E7KXtpZigwfHMyKDB8dGkoQSksMTA4MDA2LDcpKXtkb3tpZihwKXtpZih3KXtFbihjLDk3MzQ1KTticmVha31FbihjLDEwMDk5OSk7YnJlYWt9cD0xfXdoaWxlKDApO3VpZShBLGMsZixtKX1BPTB8enQobCxBKX1hW20+PjJdPSgwfGFbbT4+Ml0pLTEsRW4oYywxNTM1OTkpLHZh''@;'; + put 'put ''KGMsMHxhW20+PjJdKSxFbihjLDk3MzQwKX1lbHNlIDAhPSgwfGYpJjAhPSgwfHApJiYoYVttPj4yXT0oMHxhW20+PjJdKS0xLEVuKGMsMTUzNTk5KSx2YShjLDB8YVttPj4yXSksRW4oYyw5NzM0MCkpfShsLGMsZiwwfGZ1bmN0aW9uIHNpZShsLGMsZixwKXtjfD0wLGZ8PTAscHw9MDt2YXIg''@;'; + put 'put ''bSx3LGIsQT0wO2lmKGI9bGUsbGU9bGUrMTZ8MCx3PWIsbT0wfHlzKGx8PTApKXtmb3IoRW4oYyw5NzM0NSksYVtwPj4yXT0xKyhBPTB8YVtwPj4yXSksdmEoYyxBKSwoQT0wIT0oMHxmKSk/KEVuKGMsNjcwOTgpLGw9MCxmPW0pOihFbihjLDY3MTU4KSx2YShjLDB8YVtwPj4yXSksbD0wLGY9''@;'; + put 'put ''bSk7ZjspbD9FbihjLDk3MzQ1KTpsPTEsQT9PVyhmLGMscCk6KGFbdz4+Ml09YVs4KygwfGFvKGYsMTQxMDYwLDApKT4+Ml0sT3IoYywxMzczOTUsdykpLGY9MHxNcyhmKTtBfHwoYVtwPj4yXT0oMHxhW3A+PjJdKS0xLEVuKGMsMTUzNTk5KSx2YShjLDB8YVtwPj4yXSksRW4oYyw5NzM0MCkp''@;'; + put 'put ''LGw9MX1lbHNlIGw9MDtyZXR1cm4gbGU9YiwwfGx9KGwsYyxmLHApLHApLGZ1bmN0aW9uIGJhKGwsYyxmLHApe2N8PTAsZnw9MCxwfD0wO3ZhciBtPTAsQT0wLHc9MCxiPTA7bT0wfER0KGx8PTApO2U6ZG97aWYoMHxtKXtmb3IoOzspe2lmKCFtKWJyZWFrIGU7aWYoMHx3MChsLG0pKWJyZWFr''@;'; + put 'put ''O209MHx6dChsLG0pfWZvcihFbihjLDk3MzQ1KSxhW3A+PjJdPTErKGI9MHxhW3A+PjJdKSx2YShjLGIpLEVuKGMsNjcwNDgpLChiPTAhPSgwfGYpKXx8dmEoYywwfGFbcD4+Ml0pLEE9MDttOyl7Zm9yKHc9MHx3MChsLG0pO3c7KXtkb3tpZihBKXtpZihiKXtFbihjLDk3MzQ1KTticmVha31F''@;'; + put 'put ''bihjLDEwMDk5OSk7YnJlYWt9QT0xfXdoaWxlKDApO0xXKHcsYyxmLHApLHc9MHxTMChsLHcpfW09MHx6dChsLG0pfWFbcD4+Ml09KDB8YVtwPj4yXSktMSxFbihjLDE1MzU5OSksdmEoYywwfGFbcD4+Ml0pLEVuKGMsOTczNDApfX13aGlsZSgwKX0obCxjLGYscCksRW4oYywxNTM1OTkpLGFb''@;'; + put 'put ''cD4+Ml09Sz0oMHxhW3A+PjJdKS0xfDAsdmEoYyxLKSxFbihjLFI/MTExMDA4Ojc1MzU3KSxsZT1wZX1mdW5jdGlvbiBEVyhsLGMsZil7Y3w9MCxmfD0wO3ZhciBwPTA7Zm9yKCgwfGRpKGx8PTApKSE9KDB8bCkmJihwPWMrMXwwLGFbOCsoMHxhbyhsLDE0MTA2MCwwKSk+PjJdPWMsMHxzMigw''@;'; + put 'put ''fHRpKGwpLDEwODAwNiw3KXx8ZnVuY3Rpb24gUFcobCxjLGYpe2Z8PTA7dmFyIHAsQSxtPTA7QT1sZSxsZT1sZSsxNnwwLG09QSwocD0wfG1pWzYzJmFbKGx8PTApPj4yXV0obCxjfD0wLDUxMikpPygwfGFbcCsxMj4+Ml0pIT0oMHxmKSYmKGFbbT4+Ml09YywkcigwLDY3NzY4LG0pKToobT0w''@;'; + put 'put ''fHNoKDEsMTYpLGFbbSs4Pj4yXT0wfHJhKGMpLGFbbSsxMj4+Ml09ZixtaVs2MyZhW2w+PjJdXShsLG0sMSkpLGxlPUF9KGYsYz0wfHRpKGwpLDB8YVs4KygwfGFvKGwsMTQxMDYwLDApKT4+Ml0pLGM9cCkscD0wfHlzKGwpO3A7KWw9MHxEVyhwLGMsZikscD0wfE1zKHApLGM9bDtyZXR1cm4g''@;'; + put 'put ''MHxjfWZ1bmN0aW9uIGxpZShsLGMpe3JldHVybiAwfCgobD0wfG1pWzYzJmFbKGx8PTApPj4yXV0obCxjfD0wLDUxMikpPzB8YVtsKzEyPj4yXTotMSl9ZnVuY3Rpb24gdmEobCxjKXtmb3IobHw9MCxjfD0wOyEoKDB8Yyk8PTApOylFbihsLDkwNTc0KSxjPWMrLTF8MH1mdW5jdGlvbiBqQyhs''@;'; + put 'put ''LGMsZil7Y3w9MCxmfD0wO3ZhciB3LGIsTSxELFIscD0wLG09MCxBPTAsaz0wO1I9bGUsbGU9bGUrMTZ8MCxEPVIrOHwwLE09UixwPTB8SHModz0wfGRpKGx8PTApLGI9MyZhW2w+PjJdLDApO2U6ZG97aWYoMHxwKWZvcihrPWYrNXwwOzspe2lmKCFwKWJyZWFrIGU7bT0wfEhvKGwscCk7ZG97''@;'; + put 'put ''aWYoMHxtKXtpZihBPXArOHwwLCEoMHxmZVttPj4wXSkmJigxMDghPSgwfGZlWyhtPTB8YVtBPj4yXSk+PjBdKXx8MHxaaShtLDEwODIyNCkpKWJyZWFrO2lmKEVuKGMsOTczNDUpLHZhKGMsMHxhW2Y+PjJdKSxhW00+PjJdPTB8b3AoMHxhW0E+PjJdLGYpLE9yKGMsNjcxNzQsTSksMHxmZVtr''@;'; + put 'put ''Pj4wXSYmMHxTbCgwfGFbQT4+Ml0pKXtyN2UoMHxIbyhsLHApLGMsZik7YnJlYWt9YVtEPj4yXT0wfG9wKDB8SG8obCxwKSxmKSxPcihjLDY3MTgxLEQpfX13aGlsZSgwKTtwPTB8SHModyxiLHApfX13aGlsZSgwKTtsZT1SfWZ1bmN0aW9uIExXKGwsYyxmLHApe2x8PTAsY3w9MCxwfD0wO3Zh''@;'; + put 'put ''ciBtLEEsdyxrLGI9MDtrPWxlLGxlPWxlKzMyfDAsYj1rKzI0fDAsdz1rKzE2fDAsQT1rKzh8MCxtPWssKGZ8PTApPyhhW3A+PjJdPTErKGI9MHxhW3A+PjJdKSx2YShjLGIpLEVuKGMsOTczNzQpLHZhKGMsMHxhW3A+PjJdKSxhW20+PjJdPWFbOCsoMHxhbyhsLDE0MTA2MCwwKSk+PjJdLE9y''@;'; + put 'put ''KGMsNjcwNjAsbSksdmEoYywwfGFbcD4+Ml0pLGFbQT4+Ml09YVs4KygwfGFvKDB8YVsoMz09KDMmYVtsPj4yXXwwKT9sOmwrNDh8MCkrNDA+PjJdLDE0MTA2MCwwKSk+PjJdLE9yKGMsNjcwNzQsQSksdmEoYywwfGFbcD4+Ml0pLGFbdz4+Ml09YVs4KygwfGFvKDB8YVsoMj09KDMmYVtsPj4y''@;'; + put 'put ''XXwwKT9sOmwrLTQ4fDApKzQwPj4yXSwxNDEwNjAsMCkpPj4yXSxPcihjLDY3MDg3LHcpLGpDKGwsYyxwKSxFbihjLDE1MzU5OSksYVtwPj4yXT1iPSgwfGFbcD4+Ml0pLTF8MCx2YShjLGIpLEVuKGMsNzUzNTcpKTooYVtiPj4yXT1hWzgrKDB8YW8obCwxNDEwNjAsMCkpPj4yXSxPcihjLDEz''@;'; + put 'put ''NzM5NSxiKSksbGU9a31mdW5jdGlvbiB1aWUobCxjLGYscCl7bHw9MCxjfD0wLHB8PTA7dmFyIG0sQSxiLHc9MDtiPWxlLGxlPWxlKzMyfDAsdz1iKzE2fDAsQT1iKzh8MCxtPWIsKGZ8PTApPyhhW3A+PjJdPTErKHc9MHxhW3A+PjJdKSx2YShjLHcpLEVuKGMsOTczNzQpLHZhKGMsMHxhW3A+''@;'; + put 'put ''PjJdKSxhW20+PjJdPWFbOCsoMHxhbyhsLDE0MTA2MCwwKSk+PjJdLE9yKGMsNjcwNjAsbSksdmEoYywwfGFbcD4+Ml0pLGFbQT4+Ml09MHxvcCgwfHRpKGwpLHApLE9yKGMsNjcxMjQsQSksakMobCxjLHApLEVuKGMsMTUzNTk5KSxhW3A+PjJdPXc9KDB8YVtwPj4yXSktMXwwLHZhKGMsdyks''@;'; + put 'put ''RW4oYyw3NTM1NykpOihhW3c+PjJdPWFbOCsoMHxhbyhsLDE0MTA2MCwwKSk+PjJdLE9yKGMsMTM3Mzk1LHcpKSxsZT1ifWZ1bmN0aW9uIG9wKGwsYyl7bHw9MDt2YXIgbSxmPTAscD0wOzB8ZmVbKG09NCsoY3w9MCl8MCk+PjBdJiYobD0wfHlrKGwpKSwwfGFbNDY3MDZdfHx1cygxODY4MjQs''@;'; + put 'put ''MTAyNCwwKSxmPWw7ZTpmb3IoOzspe3N3aXRjaCgocD0wfGZlW2Y+PjBdKTw8MjQ+PjI0KXtjYXNlIDA6YnJlYWsgZTtjYXNlIDM0OnVvKDE4NjgyNCw2NzEzNyk7YnJlYWs7Y2FzZSA5Mjp1bygxODY4MjQsOTY2MTYpO2JyZWFrO2Nhc2UgNDc6dW8oMTg2ODI0LDY3MTQwKTticmVhaztjYXNl''@;'; + put 'put ''IDg6dW8oMTg2ODI0LDY3MTQzKTticmVhaztjYXNlIDEyOnVvKDE4NjgyNCw2NzE0Nik7YnJlYWs7Y2FzZSAxMDp1bygxODY4MjQsNjcxNDkpO2JyZWFrO2Nhc2UgMTM6dW8oMTg2ODI0LDY3MTUyKTticmVhaztjYXNlIDk6dW8oMTg2ODI0LDY3MTU1KTticmVhaztkZWZhdWx0OihjPTB8YVs0''@;'; + put 'put ''NjcwN10pPj4+MD49KDB8YVs0NjcwOF0pPj4+MCYmKFEwKDE4NjgyNCwxKSxjPTB8YVs0NjcwN10pLGFbNDY3MDddPWMrMSxmZVtjPj4wXT1wfWY9ZisxfDB9cmV0dXJuKGM9MHxhWzQ2NzA3XSk+Pj4wPj0oMHxhWzQ2NzA4XSk+Pj4wJiYoUTAoMTg2ODI0LDEpLGM9MHxhWzQ2NzA3XSksZmVb''@;'; + put 'put ''Yz4+MF09MCxhWzQ2NzA3XT1jPTB8YVs0NjcwNl0sMHxmZVttPj4wXSYmRnQobCksMHxjfWZ1bmN0aW9uIE9XKGwsYyxmKXtmb3IoVEYobHw9MCxjfD0wLDAsZnw9MCksbD0wfHlzKGwpO2w7KUVuKGMsOTczNDUpLE9XKGwsYyxmKSxsPTB8TXMobCl9ZnVuY3Rpb24gU2wobCl7dmFyIGM7Yz0x''@;'; + put 'put ''KyhsfD0wKXwwO2U6ZG97aWYoOTU9PSgwfGZlW2w+PjBdKSl7c3dpdGNoKCgoMjU1JihsPSgwfGZlW2M+PjBdKS0xMDA8PDI0Pj4yNCkpPj4+MnxsPDw2JjI1NSk8PDI0Pj4yNCl7Y2FzZSAwOmlmKCEoMHxaaShjLDY3Njk1KSkpe2w9MTticmVhayBlfWJyZWFrO2Nhc2UgMjppZighKDB8Wmko''@;'; + put 'put ''Yyw2NzcwMSkpKXtsPTE7YnJlYWsgZX1icmVhaztjYXNlIDE6aWYoISgwfFppKGMsNjc3MDgpKSl7bD0xO2JyZWFrIGV9cmV0dXJuIDA9PSgwfFppKGMsNjc3MjIpKXwwO2Nhc2UgNDppZighKDB8WmkoYyw2NzcxNSkpKXtsPTE7YnJlYWsgZX1sPTA9PSgwfFppKGMsNjc3MzApKSYxO2JyZWFr''@;'; + put 'put ''IGU7ZGVmYXVsdDpsPTA7YnJlYWsgZX1sPTB9ZWxzZSBsPTB9d2hpbGUoMCk7cmV0dXJuIDB8bH1mdW5jdGlvbiByN2UobCxjLGYpe2x8PTAsY3w9MCxmfD0wO3ZhciB3LHA9MCxtPTAsQT0wO3c9bGUsbGU9bGUrMTZ8MCxwPXc7ZG97aWYoMHxsJiYwfGZlW2w+PjBdKXtpZighKEE9MHxnRihs''@;'; + put 'put ''KSkpe2FbcD4+Ml09bCwkcigwLDY3MTg2LHApO2JyZWFrfWZvcihFbihjLDE1MzU5OSksYVtmPj4yXT0xKyhtPTB8YVtmPj4yXSksdmEoYyxtKSxFbihjLDY3MjEzKSxtPUErOHwwLGw9MCxwPTA7ISgoMHxwKT49KDB8YVtBPj4yXSkpOylsP0VuKGMsOTczNDUpOmw9MSxpN2UoKDB8YVttPj4y''@;'; + put 'put ''XSkrKDgwKnB8MCl8MCxjLGYpLHA9cCsxfDA7YVtmPj4yXT0oMHxhW2Y+PjJdKS0xLEVuKGMsMTUzNTk5KSx2YShjLDB8YVtmPj4yXSksRW4oYyw5NzM0MCksRnJlKEEpfX13aGlsZSgwKTtsZT13fWZ1bmN0aW9uIGk3ZShsLGMsZil7bHw9MCxjfD0wO3ZhciBtLEEsdyxiLGssTSxELFIsRyxL''@;'; + put 'put ''LHBlLGdlLGJlLE9lLExlLFJlLEhlLFZlLG50LHA9MCxxZT0wLFdlPTAsb3Q9MCxTdD0wO250PWxlLGxlPWxlKzI0MHwwLFZlPW50KzIyNHwwLEhlPW50KzIxNnwwLFJlPW50KzIwOHwwLExlPW50KzIwMHwwLE9lPW50KzE5MnwwLGJlPW50KzE4NHwwLGdlPW50KzE3NnwwLHBlPW50KzE1Mnww''@;'; + put 'put ''LEs9bnQrMTM2fDAsRz1udCsxMjh8MCxSPW50KzExMnwwLEQ9bnQrMTA0fDAsTT1udCs5NnwwLGs9bnQrODh8MCxiPW50KzcyfDAsdz1udCs0OHwwLHFlPW50KzQwfDAsQT1udCs4fDAsbT1udCxhWyhmfD0wKT4+Ml09MSsocD0wfGFbZj4+Ml0pLHZhKGMscCksRW4oYyw5NzM3NCksdmEoYyww''@;'; + put 'put ''fGFbZj4+Ml0pLHA9MHxhW2w+PjJdO2U6ZG97c3dpdGNoKDB8cCl7Y2FzZSAxOmNhc2UgMDphW20+PjJdPTA9PSgwfHApPzY5OjEwMSxPcihjLDY3MjE2LG0pLHZhKGMsMHxhW2Y+PjJdKSxTdD0rX1tsKzE2Pj4zXSxvdD0rX1tsKzI0Pj4zXSxXZT0rX1tsKzMyPj4zXSxfW0E+PjNdPStfW2wr''@;'; + put 'put ''OD4+M10sX1tBKzg+PjNdPVN0LF9bQSsxNj4+M109b3QsX1tBKzI0Pj4zXT1XZSxPcihjLDY3MjI5LEEpO2JyZWFrO2Nhc2UgMzpjYXNlIDI6YVtxZT4+Ml09Mj09KDB8cCk/ODA6MTEyLE9yKGMsNjcyMTYscWUpLHZhKGMsMHxhW2Y+PjJdKSxSVyhjLGwrOHwwKTticmVhaztjYXNlIDU6Y2Fz''@;'; + put 'put ''ZSA0OmFbdz4+Ml09ND09KDB8cCk/NjY6OTgsT3IoYyw2NzIxNix3KSx2YShjLDB8YVtmPj4yXSksUlcoYyxsKzh8MCk7YnJlYWs7Y2FzZSA2Ok9yKGMsNjcyNjQsbnQrNTZ8MCksdmEoYywwfGFbZj4+Ml0pLFJXKGMsbCs4fDApO2JyZWFrO2Nhc2UgNzpPcihjLDY3Mjc2LG50KzY0fDApLHZh''@;'; + put 'put ''KGMsMHxhW2Y+PjJdKSxTdD0rX1tsKzE2Pj4zXSxfW2I+PjNdPStfW2wrOD4+M10sX1tiKzg+PjNdPVN0LE9yKGMsNjcyODgsYiksdmEoYywwfGFbZj4+Ml0pLGFbaz4+Ml09MD09KDB8KHFlPTB8YVtsKzI0Pj4yXSkpPzEwODoxPT0oMHxxZSk/OTk6MTE0LE9yKGMsNjczMTAsayksdmEoYyww''@;'; + put 'put ''fGFbZj4+Ml0pLF9bTT4+M109K19bbCszMj4+M10sT3IoYyw2NzMyNixNKSx2YShjLDB8YVtmPj4yXSksYVtEPj4yXT0wfG9wKDB8YVtsKzQwPj4yXSxmKSxPcihjLDY3MzQzLEQpO2JyZWFrO2Nhc2UgOTpjYXNlIDg6YVtSPj4yXT04PT0oMHxwKT82Nzo5OSxPcihjLDY3MjE2LFIpLHZhKGMs''@;'; + put 'put ''MHxhW2Y+PjJdKSxPcihjLDY3MzU3LG50KzEyMHwwKSx2YShjLDB8YVtmPj4yXSksYVtHPj4yXT0wfG9wKDB8YVtsKzg+PjJdLGYpLE9yKGMsNjczNzQsRyk7YnJlYWs7Y2FzZSAxMzpjYXNlIDE0OnN3aXRjaChhW0s+PjJdPTEzPT0oMHxwKT82Nzo5OSxPcihjLDY3MjE2LEspLHZhKGMsMHxh''@;'; + put 'put ''W2Y+PjJdKSwwfGFbbCs4Pj4yXSl7Y2FzZSAwOk9yKGMsNjczNTcsbnQrMTQ0fDApLHZhKGMsMHxhW2Y+PjJdKSxhW3BlPj4yXT0wfG9wKDB8YVtsKzE2Pj4yXSxmKSxPcihjLDY3Mzc0LHBlKTticmVhayBlO2Nhc2UgMTpPcihjLDY3Mzg5LG50KzE2MHwwKSx2YShjLDB8YVtmPj4yXSksbzdl''@;'; + put 'put ''KGMsbCsxNnwwLGYpO2JyZWFrIGU7ZGVmYXVsdDpPcihjLDY3NDA4LG50KzE2OHwwKSx2YShjLDB8YVtmPj4yXSksY2llKGMsbCsxNnwwLGYpO2JyZWFrIGV9Y2FzZSAxMDpPcihjLDY3NDI3LGdlKSx2YShjLDB8YVtmPj4yXSksX1tiZT4+M109K19bbCs4Pj4zXSxPcihjLDY3NDM5LGJlKSx2''@;'; + put 'put ''YShjLDB8YVtmPj4yXSksYVtPZT4+Ml09MHxvcCgwfGFbbCsxNj4+Ml0sZiksT3IoYyw2NzQ1NSxPZSk7YnJlYWs7Y2FzZSAxMTpPcihjLDY3NDY5LExlKSx2YShjLDB8YVtmPj4yXSksYVtSZT4+Ml09MHxvcCgwfGFbbCs4Pj4yXSxmKSxPcihjLDY3NDgxLFJlKTticmVhaztjYXNlIDE1Ok9y''@;'; + put 'put ''KGMsNjc0OTYsSGUpLHZhKGMsMHxhW2Y+PjJdKSxhW1ZlPj4yXT1hW2wrOD4+Ml0sT3IoYyw2NzUwOCxWZSl9fXdoaWxlKDApO2FbZj4+Ml09cWU9KDB8YVtmPj4yXSktMXwwLHZhKGMscWUpLEVuKGMsNzUzNTcpLGxlPW50fWZ1bmN0aW9uIFJXKGwsYyl7dmFyIGYscCxtLEEsdyxiLGs9MDtm''@;'; + put 'put ''b3IoYj1sZSxsZT1sZSs0OHwwLHc9YiszMnwwLEE9YisxNnwwLG09Yis4fDAscD0wfGFbKGN8PTApPj4yXSxmPTB8YVtjKzQ+PjJdLE9yKGx8PTAsNjc2NjksYiksYz0wOyEoKDB8Yyk+PSgwfHApKTspKDB8Yyk+MCYmT3IobCwxMDA5OTksbSksaz0rX1tmKygyNCpjfDApKzg+PjNdLF9bQT4+''@;'; + put 'put ''M109K19bZisoMjQqY3wwKT4+M10sX1tBKzg+PjNdPWssT3IobCw2NzY4MSxBKSxjPWMrMXwwO09yKGwsNjc2MjIsdyksbGU9Yn1mdW5jdGlvbiBvN2UobCxjLGYpe2N8PTA7dmFyIHAsbSx3LEE9MDtwPWxlLGxlPWxlKzMyfDAsbT1wKzE2fDAsdz1wLHZhKGx8PTAsMHxhWyhmfD0wKT4+Ml0p''@;'; + put 'put ''LEE9K19bYys4Pj4zXSxfW3c+PjNdPStfW2M+PjNdLF9bdys4Pj4zXT1BLE9yKGwsNjc2MjUsdyksdmEobCwwfGFbZj4+Ml0pLEE9K19bYysyND4+M10sX1ttPj4zXT0rX1tjKzE2Pj4zXSxfW20rOD4+M109QSxPcihsLDY3NjQ3LG0pLHZhKGwsMHxhW2Y+PjJdKSxCVyhsLDB8YVtjKzMyPj4y''@;'; + put 'put ''XSwwfGFbYyszNj4+Ml0sZiksbGU9cH1mdW5jdGlvbiBjaWUobCxjLGYpe2N8PTA7dmFyIHAsbSxiLEE9MCx3PTA7cD1sZSxsZT1sZSs0OHwwLG09cCsyNHwwLGI9cCx2YShsfD0wLDB8YVsoZnw9MCk+PjJdKSxBPStfW2MrOD4+M10sdz0rX1tjKzE2Pj4zXSxfW2I+PjNdPStfW2M+PjNdLF9b''@;'; + put 'put ''Yis4Pj4zXT1BLF9bYisxNj4+M109dyxPcihsLDY3NTI0LGIpLHZhKGwsMHxhW2Y+PjJdKSx3PStfW2MrMzI+PjNdLEE9K19bYys0MD4+M10sX1ttPj4zXT0rX1tjKzI0Pj4zXSxfW20rOD4+M109dyxfW20rMTY+PjNdPUEsT3IobCw2NzU1MixtKSx2YShsLDB8YVtmPj4yXSksQlcobCwwfGFb''@;'; + put 'put ''Yys0OD4+Ml0sMHxhW2MrNTI+PjJdLGYpLGxlPXB9ZnVuY3Rpb24gQlcobCxjLGYscCl7Y3w9MCxmfD0wLHB8PTA7dmFyIEEsdyxiLGssbT0wLE09MCxEPTA7Zm9yKGs9bGUsbGU9bGUrNDh8MCxiPWsrMzJ8MCx3PWsrMTZ8MCxBPWsrOHwwLE9yKGx8PTAsNjc1ODAsayksbT0wOyEoKDB8bSk+''@;'; + put 'put ''PSgwfGMpKTspKDB8bSk+MCYmT3IobCwxMDA5OTksQSksRD0ram5bZisobTw8Myk+PjJdLE09MHxvcCgwfGFbZisobTw8MykrND4+Ml0scCksX1t3Pj4zXT1ELGFbdys4Pj4yXT1NLE9yKGwsNjc1OTEsdyksbT1tKzF8MDtPcihsLDY3NjIyLGIpLGxlPWt9ZnVuY3Rpb24gdTcobCxjLGYpe2N8''@;'; + put 'put ''PTAsZnw9MDt2YXIgcD0wO3N3aXRjaCgwfGFbMTQ0KyhsfD0wKT4+Ml0pe2Nhc2UgMTpwPTEwLGw9MTticmVhaztjYXNlIDI6cD0xMCxsPTI7YnJlYWs7ZGVmYXVsdDpwPTAsbD0wfWFbYz4+Ml09bCxfW2Y+PjNdPXB9ZnVuY3Rpb24gTEYobCxjLGYscCl7bHw9MCxjfD0wLGZ8PTAscHw9MDt2''@;'; + put 'put ''YXIgQSx3LGIsbT0wLGs9MCxNPTA7Zm9yKGI9bGUsbGU9bGUrMTZ8MCx3PWIrOHwwLEE9YixtPTA7ISgoMHxtKT49KDB8ZikpOylrPStfW2MrKG08PDQpKzg+PjNdLGFbQT4+Ml09fn4oKE09K19bYysobTw8NCk+PjNdKSsoTT49MD8uNTotLjUpKSxhW0ErND4+Ml09fn4oaysoaz49MD8uNTot''@;'; + put 'put ''LjUpKSxPcihsLDgxMDk5LEEpLG09bSsxfDA7MHxwJiYoTT0rX1tjKzg+PjNdLGFbdz4+Ml09fn4oKGs9K19bYz4+M10pKyhrPj0wPy41Oi0uNSkpLGFbdys0Pj4yXT1+fihNKyhNPj0wPy41Oi0uNSkpLE9yKGwsODEwOTksdykpLEVuKGwsMTUzNTk5KSxsZT1ifWZ1bmN0aW9uIE5XKGwsYyxm''@;'; + put 'put ''LHApe2N8PTAsZnw9MCxwfD0wO3ZhciBrLG09MCxBPTAsdz0wLGI9MCxNPTAsRD0wLFI9MDtmb3IoYVsobHw9MCk+PjJdPTAsaz0wfGFbNDY3MTFdLEE9MTk1MDc1LG09MCx3PS0xOzspe2lmKCgwfG0pPj0oMHxrKSl7TT02O2JyZWFrfWlmKEQ9KDB8aXRbMTkwNjgwKyhtPDwxKT4+MV0pLWN8''@;'; + put 'put ''MCxiPSgwfGl0WzE5MTcwNCsobTw8MSk+PjFdKS1wfDAsKDB8KGI9KDB8QXIoUj0oMHxpdFsxOTExOTIrKG08PDEpPj4xXSktZnwwLFIpKSsoMHxBcihELEQpKSsoMHxBcihiLGIpKXwwKSk8KDB8QSkpe2lmKCFiKWJyZWFrO0E9Yix3PW19bT1tKzF8MH1yZXR1cm4gNj09KDB8TSkmJihhWzQ2''@;'; + put 'put ''NzExXT1rKzEsMjU2PT0oMHxrKT9tPXc6KGl0WzE5MDY4MCsobTw8MSk+PjFdPWMsaXRbMTkxMTkyKyhtPDwxKT4+MV09ZixpdFsxOTE3MDQrKG08PDEpPj4xXT1wLGFbbD4+Ml09MSkpLDB8bX1mdW5jdGlvbiBVVChsLGMsZixwLG0sQSx3LGIpe2x8PTAsY3w9MCxmfD0wLHB8PTAsbXw9MCxB''@;'; + put 'put ''fD0wLHd8PTAsYnw9MDt2YXIgUixHLEsscGUsZ2UsYmUsSGUsaz0wLE09MCxEPTAsT2U9MCxMZT0wLFJlPTAsVmU9MDtIZT1sZSxsZT1sZSsxMjh8MCxSZT1IZSsxMjB8MCxiZT1IZSsxMTJ8MCxnZT1IZSs5NnwwLHBlPUhlKzgwfDAsSz1IZSs1NnwwLExlPUhlKzQ4fDAsRz1IZSs0MHwwLE9l''@;'; + put 'put ''PUhlKzI0fDAsUj1IZTtlOmRve2lmKDAhPSgwfGYpJjAhPSgwfHApKXtmb3Ioaz1wKzEwfDAsKDB8YVs0NjcxNF0pPCgwfHApPyhhWzQ2NzE0XT1rLEQ9MHxVYSgwfGFbNDY3MTVdLGs8PDMpLGFbNDY3MTVdPUQpOkQ9MHxhWzQ2NzE1XSxrPTA7ISgoMHxrKT49KDB8cCkpOylhW0QrKGs8PDMp''@;'; + put 'put ''Pj4yXT1+figoVmU9K19bZisoazw8NCk+PjNdKSsoVmU+PTA/LjU6LS41KSksYVtEKyhrPDwzKSs0Pj4yXT1+figoVmU9K19bZisoazw8NCkrOD4+M10pKyhWZT49MD8uNTotLjUpKSxrPWsrMXwwO2lmKChmPTAhPSgwfG0pKSYwPT0oMHwoaz0wfGFbKE09bCs2NHwwKT4+Ml0pKSl7aWYoISgw''@;'; + put 'put ''fGZlW20+PjBdKSlicmVhaztzd2l0Y2goMHxjKXtjYXNlIDA6T2U9MHxhW0Q+PjJdLExlPTB8YVtEKzEyPj4yXSxSZT0wfGFbRCs4Pj4yXSxwPTB8YVtEKzQ+PjJdLGFbUj4+Ml09bSxhW1IrND4+Ml09T2UsYVtSKzg+PjJdPUxlLGFbUisxMj4+Ml09UmUsYVtSKzE2Pj4yXT1wLE9yKGwsNjc5''@;'; + put 'put ''NTQsUik7YnJlYWsgZTtjYXNlIDE6UmU9MHxhW0QrND4+Ml0scD0oMHxhW0QrOD4+Ml0pLShMZT0wfGFbRD4+Ml0pfDAsYVtPZT4+Ml09bSxhW09lKzQ+PjJdPUxlLGFbT2UrOD4+Ml09UmUsYVtPZSsxMj4+Ml09cCxPcihsLDY3OTc1LE9lKTticmVhayBlO2Nhc2UgMjpmb3IoYVtHPj4yXT1t''@;'; + put 'put ''LE9yKGwsNjc5OTUsRyksaz0wOyEoKDB8ayk+PSgwfHApKTspUmU9MHxhWyhPZT0wfGFbNDY3MTVdKSsoazw8MykrND4+Ml0sYVtMZT4+Ml09YVtPZSsoazw8Myk+PjJdLGFbTGUrND4+Ml09UmUsT3IobCw2ODAwMyxMZSksaz1rKzF8MDtFbihsLDE1MzU5OSk7YnJlYWsgZTtkZWZhdWx0OlBy''@;'; + put 'put ''KDEzODM5NCw2ODAxMCw2Myw2ODAzMCl9fWlmKGYmMT09KDB8aykpe2lmKCEoMHxmZVttPj4wXSkpYnJlYWs7aWYoIWMpe0xlPTB8YVtEKzEyPj4yXSxSZT0wfGFbRCs4Pj4yXSxwPTB8YVtEKzQ+PjJdLGFbSz4+Ml09YVtEPj4yXSxhW0srND4+Ml09TGUsYVtLKzg+PjJdPVJlLGFbSysxMj4+''@;'; + put 'put ''Ml09cCxhW0srMTY+PjJdPW0sYVtLKzIwPj4yXT1BLE9yKGwsNjgwNDcsSyk7YnJlYWt9UHIoMTM4Mzk0LDY4MDEwLDc1LDY4MDMwKX1pZigyPT0oLTIma3wwKSl7c3dpdGNoKDB8Yyl7Y2FzZSAxOkVuKGwsNjgwODApO2JyZWFrO2Nhc2UgMDpFbihsLDY4MTAxKTticmVhaztjYXNlIDI6RW4o''@;'; + put 'put ''bCw2ODEyMCk7YnJlYWs7ZGVmYXVsdDpQcigxMzgzOTQsNjgwMTAsOTEsNjgwMzApfTB8YiYmMHxmZVtiPj4wXSYmKEVuKGwsNzM2MDApLEVuKGwsMHxkUShiKSksRW4obCw5ODc0NCkpLGYmJjB8ZmVbbT4+MF0mJihFbihsLDY4MTM5KSxFbihsLDB8ZFEobSkpLEVuKGwsOTg3NDQpKSwwfHcm''@;'; + put 'put ''JjB8ZmVbdz4+MF0mJihFbihsLDc0NTU5KSxFbihsLDB8TTEodykpLEVuKGwsOTg3NDQpKSwwfEEmJjB8ZmVbQT4+MF0mJihFbihsLDY4MTQ3KSxFbihsLDB8TTEoQSkpLEVuKGwsOTg3NDQpKSxFbihsLDY4MTU2KSxFbihsLDY4MTY0KTt0OmRve3N3aXRjaCgwfGMpe2Nhc2UgMTpSZT0wfGFb''@;'; + put 'put ''NCsocD0wfGFbNDY3MTVdKT4+Ml0scD0oMHxhW3ArOD4+Ml0pLShMZT0wfGFbcD4+Ml0pfDAsYVtwZT4+Ml09TGUsYVtwZSs0Pj4yXT1SZSxhW3BlKzg+PjJdPXAsT3IobCw2ODE3NCxwZSk7YnJlYWs7Y2FzZSAwOkxlPTB8YVsxMisoT2U9MHxhWzQ2NzE1XSk+PjJdLFJlPTB8YVtPZSs4Pj4y''@;'; + put 'put ''XSxwPTB8YVtPZSs0Pj4yXSxhW2dlPj4yXT1hW09lPj4yXSxhW2dlKzQ+PjJdPUxlLGFbZ2UrOD4+Ml09UmUsYVtnZSsxMj4+Ml09cCxPcihsLDY4MTgzLGdlKTticmVhaztjYXNlIDI6Zm9yKGs9MHxhWzQrKExlPTB8YVs0NjcxNV0pPj4yXSxhW2JlPj4yXT1hW0xlPj4yXSxhW2JlKzQ+PjJd''@;'; + put 'put ''PWssT3IobCw2ODE5NSxiZSksaz0xOzspe2lmKCgwfGspPj0oMHxwKSlicmVhayB0O0xlPTB8YVsoT2U9MHxhWzQ2NzE1XSkrKGs8PDMpKzQ+PjJdLGFbUmU+PjJdPWFbT2UrKGs8PDMpPj4yXSxhW1JlKzQ+PjJdPUxlLE9yKGwsNjgyMDEsUmUpLGs9aysxfDB9fX13aGlsZSgwKTtpZigzPT0o''@;'; + put 'put ''MHxhW00+PjJdKSl7RW4obCw3MzQyNCk7YnJlYWt9RW4obCw2ODIwOCk7YnJlYWt9fX13aGlsZSgwKTtsZT1IZX1mdW5jdGlvbiBYVChsLGMsZil7Y3w9MCxmfD0wO3ZhciBwPTA7c3dpdGNoKDB8YVsxNDQrKGx8PTApPj4yXSl7Y2FzZSAxOnA9MTAsbD0xO2JyZWFrO2Nhc2UgMjpwPTEwLGw9''@;'; + put 'put ''MjticmVhaztkZWZhdWx0OnA9MCxsPTB9YVtjPj4yXT1sLF9bZj4+M109cH1mdW5jdGlvbiBXVyhsLGMsZixwKXtsfD0wLGN8PTAsZnw9MCxwfD0wO3ZhciBBLHcsYixtPTAsaz0wLE09MDtmb3IoYj1sZSxsZT1sZSsxNnwwLHc9Yis4fDAsQT1iLG09MDshKCgwfG0pPj0oMHxmKSk7KWs9K19b''@;'; + put 'put ''YysobTw8NCkrOD4+M10sYVtBPj4yXT1+figoTT0rX1tjKyhtPDw0KT4+M10pKyhNPj0wPy41Oi0uNSkpLGFbQSs0Pj4yXT1+fihrKyhrPj0wPy41Oi0uNSkpLE9yKGwsODEwOTksQSksbT1tKzF8MDswfHAmJihNPStfW2MrOD4+M10sYVt3Pj4yXT1+figoaz0rX1tjPj4zXSkrKGs+PTA/LjU6''@;'; + put 'put ''LS41KSksYVt3KzQ+PjJdPX5+KE0rKE0+PTA/LjU6LS41KSksT3IobCw4MTA5OSx3KSksRW4obCwxNTM1OTkpLGxlPWJ9ZnVuY3Rpb24gWVcobCxjLGYscCl7Y3w9MCxmfD0wLHB8PTA7dmFyIGssbT0wLEE9MCx3PTAsYj0wLE09MCxEPTAsUj0wO2ZvcihhWyhsfD0wKT4+Ml09MCxrPTB8YVs0''@;'; + put 'put ''NjcxN10sQT0xOTUwNzUsbT0wLHc9LTE7Oyl7aWYoKDB8bSk+PSgwfGspKXtNPTY7YnJlYWt9aWYoRD0oMHxpdFsxOTIyMTYrKG08PDEpPj4xXSktY3wwLGI9KDB8aXRbMTkzMjQwKyhtPDwxKT4+MV0pLXB8MCwoMHwoYj0oMHxBcihSPSgwfGl0WzE5MjcyOCsobTw8MSk+PjFdKS1mfDAsUikp''@;'; + put 'put ''KygwfEFyKEQsRCkpKygwfEFyKGIsYikpfDApKTwoMHxBKSl7aWYoIWIpYnJlYWs7QT1iLHc9bX1tPW0rMXwwfXJldHVybiA2PT0oMHxNKSYmKGFbNDY3MTddPWsrMSwyNTY9PSgwfGspP209dzooaXRbMTkyMjE2KyhtPDwxKT4+MV09YyxpdFsxOTI3MjgrKG08PDEpPj4xXT1mLGl0WzE5MzI0''@;'; + put 'put ''MCsobTw8MSk+PjFdPXAsYVtsPj4yXT0xKSksMHxtfWZ1bmN0aW9uIGFwKGwsYyl7bHw9MDt2YXIgcCxtLGY9MCxBPTAsdz0wO2lmKG09bGUsbGU9bGUrMzJ8MCxwPW0sMHwoY3w9MCkpe3N3aXRjaCgwfGFbNCsoMHxhW2wrMTY+PjJdKT4+Ml0pe2Nhc2UgMTpjYXNlIDA6Zj0xMTE0OTQ7YnJl''@;'; + put 'put ''YWs7Y2FzZSAyOmY9MTExNDgxO2JyZWFrO2Nhc2UgMzpmPTExMTQ1MDticmVhaztkZWZhdWx0OmY9Njg4MTh9dz0rX1tjKzg+PjNdLEE9K19bYysxNj4+M10sX1twPj4zXT0rX1tjPj4zXSxfW3ArOD4+M109dyxfW3ArMTY+PjNdPUEsYVtwKzI0Pj4yXT1mLE9yKGwsNjg4MjUscCl9bGU9bX1m''@;'; + put 'put ''dW5jdGlvbiB6QShsKXt2YXIgbSx3LGIsayxjPTAsZj0wLHA9MCxBPTA7Zm9yKGs9bGUsbGU9bGUrMTZ8MCxiPWsrOHwwLHc9ayxjPTB8YVsxNjArKEE9MHxhWyhtPTE2KyhsfD0wKXwwKT4+Ml0pPj4yXSxacyhsLCtfW0ErMTUyPj4zXSksRW4obCw2ODc5OSk7YyYmKEE9Yys0fDAscD0wfGFb''@;'; + put 'put ''Yz4+Ml0pOylpZigwfFppKHAsMTExMDg4KSl7Zm9yKGY9cDtjPWYrMXwwLDB8ZmVbZj4+MF07KWY9YztlOmZvcig7MHxmZVtjPj4wXTspZm9yKGFbdz4+Ml09YyxPcihsLDY4ODE0LHcpOzspe2lmKGY9YysxfDAsISgwfGZlW2M+PjBdKSl7Yz1mO2NvbnRpbnVlIGV9Yz1mfTB8WmkocCwxMzQz''@;'; + put 'put ''MzUpfHwoX1sxNTIrKDB8YVttPj4yXSk+PjNdPTApLGFbYj4+Ml09cCxPcihsLDk2NjcwLGIpLGM9QX1lbHNlIGM9QTtsZT1rfWZ1bmN0aW9uIEhGKGwsYyxmKXtjfD0wLGZ8PTA7dmFyIHcsYixrLE0sRCxSLEcscD0wLG09MCxBPTA7Rz1sZSxsZT1sZSs5NnwwLGI9Rys0OHwwLFI9Rys0MHww''@;'; + put 'put ''LE09RyszMnwwLEQ9RysyNHwwLHc9RysxNnwwLG09Rys4fDAscD1HLGs9MHxhWzE2KyhsfD0wKT4+Ml0sRW4obCw3MzQyOSk7ZTpkb3tzd2l0Y2goMHxjKXtjYXNlIDI6YVtwPj4yXT1mLE9yKGwsNzM0MzcscCk7YnJlYWs7Y2FzZSAzOmFbbT4+Ml09ZixPcihsLDczNDQ4LG0pO2JyZWFrO2Nh''@;'; + put 'put ''c2UgMDpFbihsLDEzNTcwOSk7YnJlYWs7ZGVmYXVsdDptPWM9ays1NnwwLEE9KHA9YikrNDB8MDtkb3thW3A+PjJdPWFbbT4+Ml0scD1wKzR8MCxtPW0rNHwwfXdoaWxlKCgwfHApPCgwfEEpKTtpZihHQyhsLGIpLDE9PSgwfGFbays4OD4+Ml0pKXtzd2l0Y2goKGM9MHxmZVtjKzM+PjBdKTw8''@;'; + put 'put ''MjQ+PjI0KXtjYXNlLTE6Y2FzZSAwOmJyZWFrIGV9X1t3Pj4zXT0uMDAzOTIxNTY4NjI3NDUwOTgqKygyNTUmYyksT3IobCw3MzQ1OSx3KX19fXdoaWxlKDApO0VuKGwsNzM0NzgpLG09Zj1rKzE2fDAsQT0ocD1iKSs0MHwwO2Rve2FbcD4+Ml09YVttPj4yXSxwPXArNHwwLG09bSs0fDB9d2hp''@;'; + put 'put ''bGUoKDB8cCk8KDB8QSkpO3N3aXRjaChHQyhsLGIpLDEhPStfWyhjPWsrMTUyfDApPj4zXSYmKEVuKGwsNzM0ODkpLFpzKGwsK19bYz4+M10pKSwwfGFbaysxNDQ+PjJdKXtjYXNlIDE6YVtEPj4yXT03MzUyOSxPcihsLDczNTA2LEQpO2JyZWFrO2Nhc2UgMjphW00+PjJdPTczNTMzLE9yKGws''@;'; + put 'put ''NzM1MDYsTSl9ZTpkb3tpZigxPT0oMHxhW2srNDg+PjJdKSl7c3dpdGNoKChjPTB8ZmVbZiszPj4wXSk8PDI0Pj4yNCl7Y2FzZS0xOmNhc2UgMDpicmVhayBlfV9bUj4+M109LjAwMzkyMTU2ODYyNzQ1MDk4KisoMjU1JmMpLE9yKGwsNzM1MzcsUil9fXdoaWxlKDApO0VuKGwsOTg3NDQpLGxl''@;'; + put 'put ''PUd9ZnVuY3Rpb24gR0MobCxjKXtsfD0wLGN8PTA7dmFyIGYscCxtPTAsQT0wO3A9bGUsbGU9bGUrMTZ8MCxmPXA7ZTpkb3tzd2l0Y2goMHxhW2MrMzI+PjJdKXtjYXNlIDU6RW4obCwwfGFbYz4+Ml0pO2JyZWFrO2Nhc2UgMTppZigwfGZlW2MrMz4+MF0pe0E9MHxYdFtjKzE+PjBdLG09MHxY''@;'; + put 'put ''dFtjKzI+PjBdLGFbZj4+Ml09WHRbYz4+MF0sYVtmKzQ+PjJdPUEsYVtmKzg+PjJdPW0sT3IobCw3NTcxNCxmKTticmVhayBlfUVuKGwsMTM3Mzc5KTticmVhayBlO2RlZmF1bHQ6UHIoMTM4Mzk0LDczNTU4LDExNyw3MzU3OCl9fXdoaWxlKDApO2xlPXB9ZnVuY3Rpb24gdFkobCxjLGYpe2x8''@;'; + put 'put ''PTAsY3w9MCxmfD0wO3ZhciBiLGssTSxELFIsRyxwZSxwPTAsbT0wLEE9MCx3PTAsSz0wO3BlPWxlLGxlPWxlKzExMnwwLE09cGUrNjR8MCxHPXBlKzU2fDAsaz1wZSs0OHwwLGI9cGUrNDB8MCxtPXBlKzMyfDAsdz1wZSxhWzQ2NzIyXT0xKyhSPTB8YVs0NjcyMl0pLHA9LjAxNzQ1MzI5MjUx''@;'; + put 'put ''OTk0MzI5NSorKDB8YVsxMzYrKEQ9MHxhW2wrMTY+PjJdKT4+Ml0pLGFbdz4+Ml09MCxhW3crND4+Ml09MCxhW3crOD4+Ml09MCxhW3crMTI+PjJdPTAsYVt3KzE2Pj4yXT0wLGFbdysyMD4+Ml09MCxhW3crMjQ+PjJdPTAsYVt3KzI4Pj4yXT0wLEFEKGMsdyxmLHAsMCksYVtNPj4yXT1SLE9y''@;'; + put 'put ''KGwsNzM4MzEsTSksRW4obCw3Mzg5NiksWnMobCwrX1t3Pj4zXSksRW4obCw3MzkwMSksWnMobCwrX1t3Kzg+PjNdKSxFbihsLDczOTA4KSxacyhsLCtfW3crMTY+PjNdKSxFbihsLDczOTE1KSxacyhsLCtfW3crMjQ+PjNdKSxFbihsLDczOTIyKSwocD0ram5bKHc9RCsxNDB8MCk+PjJdKT4w''@;'; + put 'put ''PyhfW20+PjNdPXArLS4wMDEsT3IobCw3MzkyNyxtKSk6RW4obCw3MzcwMyksbT1jPUQrNTZ8MCxBPShmPU0pKzQwfDA7ZG97YVtmPj4yXT1hW20+PjJdLGY9Zis0fDAsbT1tKzR8MH13aGlsZSgoMHxmKTwoMHxBKSk7R0MobCxNKSxFbihsLDczNzM5KTtlOmRve2lmKDE9PSgwfGFbRCs4OD4+''@;'; + put 'put ''Ml0pKXtzd2l0Y2goKGM9MHxmZVtjKzM+PjBdKTw8MjQ+PjI0KXtjYXNlLTE6Y2FzZSAwOks9NzticmVhayBlfV9bYj4+M109LjAwMzkyMTU2ODYyNzQ1MDk4KisoMjU1JmMpLE9yKGwsOTk2MTIsYil9ZWxzZSBLPTd9d2hpbGUoMCk7Nz09KDB8SykmJkVuKGwsNzM3NTQpLEVuKGwsNzM3NTcp''@;'; + put 'put ''LChwPStqblt3Pj4yXSk+MD8oX1trPj4zXT1wLE9yKGwsNzM5MjcsaykpOkVuKGwsNzM3NjMpLG09Yz1EKzk2fDAsQT0oZj1NKSs0MHwwO2Rve2FbZj4+Ml09YVttPj4yXSxmPWYrNHwwLG09bSs0fDB9d2hpbGUoKDB8Zik8KDB8QSkpO0dDKGwsTSksRW4obCw3MzczOSk7ZTpkb3tpZigxPT0o''@;'; + put 'put ''MHxhW0QrMTI4Pj4yXSkpe3N3aXRjaCgoYz0wfGZlW2MrMz4+MF0pPDwyND4+MjQpe2Nhc2UtMTpjYXNlIDA6Sz0xNDticmVhayBlfV9bRz4+M109LjAwMzkyMTU2ODYyNzQ1MDk4KisoMjU1JmMpLE9yKGwsOTk2MTIsRyl9ZWxzZSBLPTE0fXdoaWxlKDApO3JldHVybiAxND09KDB8SykmJkVu''@;'; + put 'put ''KGwsNzM3NTQpLEVuKGwsNzM5NjcpLGxlPXBlLDB8Un1mdW5jdGlvbiBuWShsKXtsfD0wO3ZhciBmLHcsYixrLE0sRCxHLEssYz0wLHA9MCxtPTAsQT0wLFI9MDtHPWxlLGxlPWxlKzY0fDAsYj1HKzE2fDAsRD1HKzh8MCx3PUcsYVs0NjcyMV09MSsoTT0wfGFbNDY3MjFdKSxmPUs9LjAxNzQ1''@;'; + put 'put ''MzI5MjUxOTk0MzI5NSorKDB8YVsxMzYrKGs9MHxhW2wrMTY+PjJdKT4+Ml0pLDA9PUs/KHA9NTAsYz01MCk6KHA9fn4oNTAqKCtoYSgrZikrMSkpLGM9fn4oNTAqKDEtK0RhKCtmKSkpKSxhW2I+PjJdPU0sYVtiKzQ+PjJdPXAsYVtiKzg+PjJdPWMsT3IobCw3MzYxOSxiKSxFbihsLDczNzAz''@;'; + put 'put ''KSxtPWM9ays1NnwwLEE9KHA9YikrNDB8MDtkb3thW3A+PjJdPWFbbT4+Ml0scD1wKzR8MCxtPW0rNHwwfXdoaWxlKCgwfHApPCgwfEEpKTtHQyhsLGIpLEVuKGwsNzM3MzkpO2U6ZG97aWYoMT09KDB8YVtrKzg4Pj4yXSkpe3N3aXRjaCgoYz0wfGZlW2MrMz4+MF0pPDwyND4+MjQpe2Nhc2Ut''@;'; + put 'put ''MTpjYXNlIDA6Uj02O2JyZWFrIGV9X1t3Pj4zXT0uMDAzOTIxNTY4NjI3NDUwOTgqKygyNTUmYyksT3IobCw5OTYxMix3KX1lbHNlIFI9Nn13aGlsZSgwKTs2PT0oMHxSKSYmRW4obCw3Mzc1NCksRW4obCw3Mzc1NyksRW4obCw3Mzc2MyksbT1jPWsrOTZ8MCxBPShwPWIpKzQwfDA7ZG97YVtw''@;'; + put 'put ''Pj4yXT1hW20+PjJdLHA9cCs0fDAsbT1tKzR8MH13aGlsZSgoMHxwKTwoMHxBKSk7R0MobCxiKSxFbihsLDczNzM5KTtlOmRve2lmKDE9PSgwfGFbaysxMjg+PjJdKSl7c3dpdGNoKChjPTB8ZmVbYyszPj4wXSk8PDI0Pj4yNCl7Y2FzZS0xOmNhc2UgMDpSPTEwO2JyZWFrIGV9X1tEPj4zXT0u''@;'; + put 'put ''MDAzOTIxNTY4NjI3NDUwOTgqKygyNTUmYyksT3IobCw5OTYxMixEKX1lbHNlIFI9MTB9d2hpbGUoMCk7cmV0dXJuIDEwPT0oMHxSKSYmRW4obCw3Mzc1NCksRW4obCw3Mzc5OSksbGU9RywwfE19ZnVuY3Rpb24gYzcobCxjLGYscCxtKXt2YXIgQSx3LGI7Y3w9MCxmfD0wLHB8PTAsbXw9MCxi''@;'; + put 'put ''PWxlLGxlPWxlKzE2fDAsdz1iKzh8MCxBPWIsRW4obHw9MCw3NDU4NyksRW4obCwwfE0xKGMpKSwwfGYmJihhW0E+PjJdPTB8TTEoZiksT3IobCw3NDU5NSxBKSksYVt3Pj4yXT1wLE9yKGwsNzQ1OTksdyksMHwoYz0wfExpKG0sNzQ2MTEpKSYmMHxmZVtjPj4wXSYmKEVuKGwsMTAyNjA0KSxF''@;'; + put 'put ''bihsLDB8TTEoYykpKSxFbihsLDk4NzQ0KSxsZT1ifWZ1bmN0aW9uIEtUKGwpe3JldHVybiAwfGx9ZnVuY3Rpb24gJFQobCl7RW4obHw9MCwwfGZlW2wrMTQ0Pj4wXT8wfGFbbCsxNDg+PjJdOjc1MjYzKX1mdW5jdGlvbiBHQShsLGMpe2x8PTAsY3w9MDt2YXIgZixwLG09MCxBPTA7cD1sZSxs''@;'; + put 'put ''ZT1sZSsxNnwwLGY9cDtlOmRve3N3aXRjaCgwfGFbYyszMj4+Ml0pe2Nhc2UgNTpFbihsLDB8YVtjPj4yXSk7YnJlYWs7Y2FzZSAxOmlmKDB8ZmVbYyszPj4wXSl7QT0wfFh0W2MrMT4+MF0sbT0wfFh0W2MrMj4+MF0sYVtmPj4yXT1YdFtjPj4wXSxhW2YrND4+Ml09QSxhW2YrOD4+Ml09bSxP''@;'; + put 'put ''cihsLDc1NzE0LGYpO2JyZWFrIGV9RW4obCw5NzMwOSk7YnJlYWsgZTtkZWZhdWx0OlByKDEzODM5NCw3NTE4MSw0OSw3NTI0NSl9fXdoaWxlKDApO2xlPXB9ZnVuY3Rpb24gcVQobCl7dmFyIEEsdyxjPTAsZj0wLHA9MCxtPTA7c3dpdGNoKHc9bGUsbGU9bGUrMTZ8MCxBPXcsMHxhWzEyKyht''@;'; + put 'put ''PTB8YVsxNisobHw9MCk+PjJdKT4+Ml0pe2Nhc2UgODpjPTEsZj0xMTE0ODEscD1tKzh8MDticmVhaztjYXNlIDEwOmM9MCxmPTExMTQ4MSxwPW0rOHwwO2JyZWFrO2Nhc2UgMzpjYXNlIDI6Y2FzZSA5OmM9MSxmPTExMTQ1MCxwPW0rOHwwO2JyZWFrO2Nhc2UgNzpjYXNlIDY6Y2FzZSAxMTpj''@;'; + put 'put ''PTAsZj0xMTE0NTAscD1tKzh8MDticmVhaztjYXNlIDA6Y2FzZSAxOmM9MSxmPTExMTQ5NCxwPW0rOHwwO2JyZWFrO2Nhc2UgNDpjPTAsZj03NTIxNyxwPW0rOHwwO2JyZWFrO2Nhc2UgNTpjPTAsZj0xMTE0OTQscD1tKzh8MDticmVhaztkZWZhdWx0OlByKDEzODM5NCw3NTE4MSwxMDYsNzUy''@;'; + put 'put ''MDApfW09MHxhWzgrKDB8YVtwPj4yXSk+PjJdLGFbQT4+Ml09YyxhW0ErND4+Ml09ZixhW0ErOD4+Ml09bSxPcihsLDc1MjI5LEEpLGxlPXd9ZnVuY3Rpb24gbmkobCl7bHw9MDt2YXIgcGUsZ2UsT2UsYz0wLGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAsSz0w''@;'; + put 'put ''LGJlPTA7T2U9bGUsbGU9bGUrMTZ8MCxmPU9lLChjPTB8YVs0NjcyNF0pfHwoYVs0NjcyNV09NjQsYz0wfFFuKDY0KSxhWzQ2NzI0XT1jKSxnZT1mKzE1fDAscGU9ZisxNHwwLG09MCxLPTAsUj0wLGY9MCxwPTA7ZTpmb3IoOzspe0Q9MCE9KDB8Uiksaz1tLEc9bCxiPWY7dDpmb3IoOzspe2lm''@;'; + put 'put ''KCFHKXtiZT0zMjticmVhayBlfWlmKCEoKGY9MHxmZVtHPj4wXSk8PDI0Pj4yNCkpe2JlPTMyO2JyZWFrIGV9c3dpdGNoKCgwfEspPigobD0wfGFbNDY3MjVdKS04fDApJiYoYVs0NjcyNV09Yz1sPDwxLGM9MHxWMCgwfGFbNDY3MjRdLGMpLGFbNDY3MjRdPWMsYz1jK0t8MCxmPTB8ZmVbRz4+''@;'; + put 'put ''MF0pLGY8PDI0Pj4yNCl7Y2FzZSA2MDpmPTQsbD0xMDIxNTMsYmU9MjY7YnJlYWsgdDtjYXNlIDYyOmY9NCxsPTEwMjEzNixiZT0yNzticmVhayB0O2Nhc2UgMzg6YmU9MTA7YnJlYWsgdDtjYXNlIDQ1OmY9NSxsPTEwMjE0Nyx3PWI7YnJlYWsgdH1pZihEJmY8PDI0Pj4yND09MzIpe2JlPTEy''@;'; + put 'put ''O2JyZWFrfXN3aXRjaChmPDwyND4+MjQpe2Nhc2UgMzQ6Zj02LGw9MTAyMTE2LGJlPTI2O2JyZWFrIHQ7Y2FzZSAzOTpmPTUsbD0xMDIxNDEsYmU9Mjc7YnJlYWsgdH1pZighKGY8PDI0Pj4yNDwwKSl7Zj0xLGw9RyxiZT0yNjticmVha31mb3Iodz0xMjcsbD0wOyEoKG09MjU1JncpPj4+MD49''@;'; + put 'put ''KEE9MjU1JmYpPj4+MCk7KWY9dyZBJjI1NSx3PW0+Pj4xLGw9bCsxfDA7aWYoKDB8bCk8PTEpe2lmKG09MHx6bCgwfChtPTB8Wm8oMHxiLDB8cCw2KSksMHxEbiwyNTUmZnwwLDApLHA9RG4sTT1rKy0xfDAsISgoMHxrKT4xKSl7YmU9MjE7YnJlYWt9bD1NLGY9bX1lbHNlIGw9bCstMXwwLGYm''@;'; + put 'put ''PTI1NSxwPTA7az1sLEc9RysxfDAsYj1mfWlmKDEwPT0oMHxiZSkpYmU9MCxmPShsPTA9PSgwfFRsKEcpKSk/NToxLGw9bD8xMDIxMzA6Ryx3PWI7ZWxzZSBpZigxMj09KDB8YmUpKWJlPTAsZj0obD0zMj09KDB8ZmVbUj4+MF0pKT82OjEsbD1sPzEwMjEyMzpHLHc9YjtlbHNlIGlmKDIxPT0o''@;'; + put 'put ''MHxiZSkpe2ZvcihiZT0wLGZlW2dlPj4wXT01OSxmPTMsQT1wZSx3PW0sYj1wOzspe2lmKGw9MHxpUygwfHcsMHxiLDEwLDApLG09QSstMXwwLGZlW0E+PjBdPTQ4fGwsbD13LHc9MHxpdygwfHcsMHxiLDEwLDApLHA9YixiPURuLFI9ZixmPWYrMXwwLCgwfFIpPjExKXtiZT0yMzticmVhayBl''@;'; + put 'put ''fWlmKCEocD4+PjA+MHwwPT0oMHxwKSZsPj4+MD45KSlicmVhaztBPW19bD1BKy0yfDAsZmVbbT4+MF09MzUsZmVbbD4+MF09Mzgsaz1NLHA9Yn1lbHNlKDI2PT0oMHxiZSl8fDI3PT0oMHxiZSkpJiYoYmU9MCx3PWIpO2ZvcihBPWMrZnwwLG09ZjttOylmZVtjPj4wXT0wfGZlW2w+PjBdLG09''@;'; + put 'put ''bSstMXwwLGw9bCsxfDAsYz1jKzF8MDttPWssbD1HKzF8MCxLPWYrS3wwLFI9RyxjPUEsZj13fWlmKDIzPT0oMHxiZSkpQ3UoNzU0NjQsNDYsMSwwfGFbMTU3MTJdKSxYdSgxKTtlbHNlIGlmKDMyPT0oMHxiZSkpcmV0dXJuIGZlW2M+PjBdPTAsbGU9T2UsMHxhWzQ2NzI0XTtyZXR1cm4gMH1m''@;'; + put 'put ''dW5jdGlvbiBUbChsKXt2YXIgYz0wLGY9MDtjPTB8ZmVbKGY9MSsobHw9MCl8MCk+PjBdO2U6ZG97aWYoYzw8MjQ+PjI0PT0zNSl7c3dpdGNoKChjPTB8ZmVbKGY9bCsyfDApPj4wXSk8PDI0Pj4yNCl7Y2FzZSA4ODpjYXNlIDEyMDpicmVhaztkZWZhdWx0OmZvcihsPWY7Oyl7aWYoZj1sKzF8''@;'; + put 'put ''MCwoYystNDgmMjU1KT49MTApYnJlYWsgZTtsPWYsYz0wfGZlW2Y+PjBdfX1mb3IoZj1sKzN8MDs7KXtpZigoKGM9MHxmZVtmPj4wXSktNDgmMjU1KT49MTApc3dpdGNoKGM8PDI0Pj4yNCl7Y2FzZSA2NTpjYXNlIDY2OmNhc2UgNjc6Y2FzZSA2ODpjYXNlIDY5OmNhc2UgNzA6Y2FzZSA5Nzpj''@;'; + put 'put ''YXNlIDk4OmNhc2UgOTk6Y2FzZSAxMDA6Y2FzZSAxMDE6Y2FzZSAxMDI6YnJlYWs7ZGVmYXVsdDpicmVhayBlfWY9ZisxfDB9fWVsc2UgZm9yKDs7KXtpZihsPWYrMXwwLCgoLTMzJmMpLTY1JjI1NSk+PTI2KWJyZWFrIGU7Zj1sLGM9MHxmZVtsPj4wXX19d2hpbGUoMCk7cmV0dXJuIGM8PDI0''@;'; + put 'put ''Pj4yND09NTl8MH1mdW5jdGlvbiBlSShsKXt2YXIgYyxmLEEsdyxiLGsscD0wLG09MDtrPWxlLGxlPWxlKzQ4fDAsZj1rKzh8MCxiPWssdz0wfGFbMTYrKGx8PTApPj4yXSxFbihsLDc1NjM5KSxtPXcrMTZ8MCxBPShwPWYpKzQwfDA7ZG97YVtwPj4yXT1hW20+PjJdLHA9cCs0fDAsbT1tKzR8''@;'; + put 'put ''MH13aGlsZSgoMHxwKTwoMHxBKSk7c3dpdGNoKHRJKGwsZiksMSE9KGM9K19bdysxNTI+PjNdKSYmKF9bYj4+M109YyxPcihsLDc1NjU3LGIpKSwwfGFbdysxNDQ+PjJdKXtjYXNlIDE6RW4obCw3NTY3NCk7YnJlYWs7Y2FzZSAyOkVuKGwsNzU2OTIpfUVuKGwsNzU3MDkpLGxlPWt9ZnVuY3Rp''@;'; + put 'put ''b24gdEkobCxjKXtsfD0wLGN8PTA7dmFyIGYscCxtPTAsQT0wO3A9bGUsbGU9bGUrMTZ8MCxmPXA7ZTpkb3tzd2l0Y2goMHxhW2MrMzI+PjJdKXtjYXNlIDU6RW4obCwwfGFbYz4+Ml0pO2JyZWFrO2Nhc2UgMTppZigwfGZlW2MrMz4+MF0pe0E9MHxYdFtjKzE+PjBdLG09MHxYdFtjKzI+PjBd''@;'; + put 'put ''LGFbZj4+Ml09WHRbYz4+MF0sYVtmKzQ+PjJdPUEsYVtmKzg+PjJdPW0sT3IobCw3NTcxNCxmKTticmVhayBlfUVuKGwsMTM1NzA5KTticmVhayBlO2RlZmF1bHQ6UHIoMTM4Mzk0LDc1NzI4LDk0LDc1NzQ4KX19d2hpbGUoMCk7bGU9cH1mdW5jdGlvbiBpWShsLGMpe2x8PTA7dmFyIG0sQSxm''@;'; + put 'put ''PTAscD0wO2lmKEE9bGUsbGU9bGUrNDh8MCxtPUEsY3w9MCl7Zj0wfGFbbCsxNj4+Ml0sRW4obCw3NTgzNyksZj1mKzU2fDAscD0oYz1tKSs0MHwwO2Rve2FbYz4+Ml09YVtmPj4yXSxjPWMrNHwwLGY9Zis0fDB9d2hpbGUoKDB8Yyk8KDB8cCkpO3RJKGwsbSksRW4obCw3NTg2NCl9ZWxzZSBF''@;'; + put 'put ''bihsLDc1ODY3KTtsZT1BfWZ1bmN0aW9uIEVhKGwsYyxmKXt2YXIgcCxtLEEsdyxiO2x8PTAsY3w9MCxiPWxlLGxlPWxlKzEwNTZ8MCx3PWIscD1iKzI0fDAsYVsobT1iKzh8MCk+PjJdPWZ8PTAsQT0wfG1MKHAsMTAyNCxjLG0pO2Rve2lmKCgwfEEpPj0wKXtpZigoMHxBKT4xMDIzKXtsPTB8''@;'; + put 'put ''QjAoQSsxfDApLGFbbT4+Ml09ZixJaihsLGMsbSk7YnJlYWt9bD0wfHJhKHApO2JyZWFrfWw9MHxhWzE2KygwfGFbbCsxMj4+Ml0pPj4yXSxhW3c+PjJdPTB8JGsoMHxhWzQ3NjQzXSksR3NbNjMmbF0oNzg2ODcsdyksbD0wfHJhKDE5NTA1OSl9d2hpbGUoMCk7cmV0dXJuIGxlPWIsMHxsfWZ1''@;'; + put 'put ''bmN0aW9uIFdBKGwsYyxmKXtsfD0wLGY9K2Y7dmFyIG0sQSx3LGIsayxELEcscD0wLE09MCxSPTAsSz0wLHBlPTA7Rz1sZSxsZT1sZSsxMTJ8MCxEPUcrMTA0fDAsdz1HKzk2fDAsQT1HKzY0fDAsTT1HKzQ4fDAsUj1HKzMyfDAsaz1HKzE2fDAsYj1HLG09MHxhWzMyKyhjfD0wKT4+Ml07ZTpk''@;'; + put 'put ''b3tzd2l0Y2goMHxtKXtjYXNlIDU6aWYoISgwfFppKHA9MHxhW2M+PjJdLDEzNjMwMikpKXthW2I+PjJdPTc4NTI0LF9bYis4Pj4zXT1mLHA9MHxFYShsLDc4NTA3LGIpO2JyZWFrIGV9aWYoISgwfFppKHAsMTMzNDMyKSkpe2Fbaz4+Ml09Nzg1MjgsX1trKzg+PjNdPWYscD0wfEVhKGwsNzg1''@;'; + put 'put ''MDcsayk7YnJlYWsgZX1pZigwfFppKHAsMTMxNDMxKSl7YVtNPj4yXT1wLF9bTSs4Pj4zXT1mLHA9MHxFYShsLDc4NTA3LE0pO2JyZWFrIGV9YVtSPj4yXT03ODUzNCxfW1IrOD4+M109ZixwPTB8RWEobCw3ODUwNyxSKTticmVhayBlO2Nhc2UgMTpwZT0uMDAzOTA2MjUqKygwfFh0W2MrMT4+''@;'; + put 'put ''MF0pLEs9LjAwMzkwNjI1KisoMHxYdFtjKzI+PjBdKSxfW0E+PjNdPS4wMDM5MDYyNSorKDB8WHRbYz4+MF0pLF9bQSs4Pj4zXT1wZSxfW0ErMTY+PjNdPUssX1tBKzI0Pj4zXT1mLHA9MHxFYShsLDc4NTM5LEEpO2JyZWFrO2RlZmF1bHQ6Uj0wfGFbMTU3MTJdLE09MHxhW2M+PjJdLGFbdz4+''@;'; + put 'put ''Ml09bSxhW3crND4+Ml09TSxUMChSLDc4NTc4LHcpLFByKDEzODM5NCw3ODYyOCw0MzYsNzg2NDgpfX13aGlsZSgwKTtyZXR1cm4gYVtEPj4yXT1wLFI9MHxFYShsLDc4NjY1LEQpLEZ0KHApLGxlPUcsMHxSfWZ1bmN0aW9uIE5GKGwsYyxmKXtjfD0wLGZ8PTA7dmFyIHA9MDtzd2l0Y2goMHxh''@;'; + put 'put ''WzE0NCsobHw9MCk+PjJdKXtjYXNlIDE6cD0xMCxsPTE7YnJlYWs7Y2FzZSAyOnA9MTAsbD0yO2JyZWFrO2RlZmF1bHQ6cD0wLGw9MH1hW2M+PjJdPWwsX1tmPj4zXT1wfWZ1bmN0aW9uIHVZKGwsYyxmLHApe2x8PTAsY3w9MCxmfD0wLHB8PTA7dmFyIEEsdyxiLG09MCxrPTAsTT0wO2Zvcihi''@;'; + put 'put ''PWxlLGxlPWxlKzE2fDAsdz1iKzh8MCxBPWIsbT0wOyEoKDB8bSk+PSgwfGYpKTspaz0rX1tjKyhtPDw0KSs4Pj4zXSxhW0E+PjJdPX5+KChNPStfW2MrKG08PDQpPj4zXSkrKE0+PTA/LjU6LS41KSksYVtBKzQ+PjJdPX5+KGsrKGs+PTA/LjU6LS41KSksT3IobCw4MTA5OSxBKSxtPW0rMXww''@;'; + put 'put ''OzB8cCYmKE09K19bYys4Pj4zXSxhW3c+PjJdPX5+KChrPStfW2M+PjNdKSsoaz49MD8uNTotLjUpKSxhW3crND4+Ml09fn4oTSsoTT49MD8uNTotLjUpKSxPcihsLDgxMDk5LHcpKSxFbihsLDE1MzU5OSksbGU9Yn1mdW5jdGlvbiBKaWUobCl7bHw9MDt2YXIgcCxBLGM9MCxmPTA7QT1sZSxs''@;'; + put 'put ''ZT1sZSsxNnwwLHA9QTtlOmZvcig7Oyl7Zm9yKGM9MTU4Mjg7Zj0wfGFbYys0Pj4yXTspe2lmKCEoMHxaaShmLGwpKSlicmVhayBlO2M9Yys4fDB9aWYoYVtwPj4yXT04MTI1NSxhW3ArND4+Ml09bCwkcigxLDgxMjI5LHApLCEoYz0wfE0kKGwsNDUpKSl7Yz04MTI3MjticmVha31mZVtjPj4w''@;'; + put 'put ''XT0wfXJldHVybiBsZT1BLDB8Y31mdW5jdGlvbiBZQSgpe3ZhciBsLGM7bD1sZSxsZT1sZSsxNnwwLGFbKGM9bCk+PjJdPTgxMjU1LGFbYys0Pj4yXT05MTI2OSwkcigwLDgzNjM0LGMpLGxlPWx9ZnVuY3Rpb24gZlkobCl7dmFyIGM9MCxmPTA7Zm9yKGM9MHxEdChsfD0wKTtjOyludmUoYyks''@;'; + put 'put ''Yz0wfHp0KGwsYyk7Zm9yKGY9MHxEdChsKTtmOyl7Zm9yKGM9MHx3MChsLGYpO2M7KWhZKGMpLGM9MHxTMChsLGMpO2Y9MHx6dChsLGYpfX1mdW5jdGlvbiBudmUobCl7dmFyIGM9MCxmPTA7aDAobHw9MCwxMzc0NDcsMzA0LDEpLGREKGwpLHh5KGwsMSZhWzExNisoMHxhWzE2KygwfGNyKGwp''@;'; + put 'put ''KT4+Ml0pPj4yXSksYVsxNzYrKDB8YVsobD1sKzE2fDApPj4yXSk+PjJdPTAsYz0wfHZyKDIwKSxhWzE3MisoZj0wfGFbbD4+Ml0pPj4yXT1jLGFbZisxODQ+PjJdPTAsZj0wfHZyKDIwKSxhWzE4MCsoYz0wfGFbbD4+Ml0pPj4yXT1mLGFbYysyMDA+PjJdPTAsYz0wfHZyKDEyKSxhWzE5Niso''@;'; + put 'put ''Zj0wfGFbbD4+Ml0pPj4yXT1jLGFbZisxOTI+PjJdPTAsZj0wfHZyKDEyKSxhWzE4OCsoYz0wfGFbbD4+Ml0pPj4yXT1mLGFbYysyMDg+PjJdPTAsYz0wfHZyKDEyKSxhWzIwNCsobD0wfGFbbD4+Ml0pPj4yXT1jLGFbbCsyMTY+PjJdPTF9ZnVuY3Rpb24gaFkobCl7dmFyIGMsZixwLG09MCxB''@;'; + put 'put ''PTA7aDAobHw9MCwxMzc0NjAsMTc2LDEpLEw3KGwpLG09MHxlcyhsLDB8YVs0NzE3NF0sMSwwKSxhWzE1NisoMHxhWyhwPWwrMTZ8MCk+PjJdKT4+Ml09bSxtPTB8djIoMHxhWygzPT0oMyZhW2w+PjJdfDApP2w6bCs0OHwwKSs0MD4+Ml0sMHxhWzQ3MTY4XSwxOTUwNTkpLEE9MHx2MigwfGFb''@;'; + put 'put ''KDI9PSgzJmFbbD4+Ml18MCk/bDpsKy00OHwwKSs0MD4+Ml0sMHxhWzQ3MTY4XSwxOTUwNTkpLGl0WyhmPTE1NCsoYz0wfGFbcD4+Ml0pfDApPj4xXT0xLGl0W2MrMTY4Pj4xXT0xLCgwfG0pPT0oMHxBKSYwIT0oMHxmZVttPj4wXSkmJihpdFtmPj4xXT0xZTMsYVsoQT1jKzE1NnwwKT4+Ml09''@;'; + put 'put ''MTAwKigwfGFbQT4+Ml0pKSwwfGtIKGwpJiYoaXRbMTU0KyhBPTB8YVtwPj4yXSk+PjFdPTAsYVtBKzE1Nj4+Ml09MCksQT0yNTUmKDB8ZXMobCwwfGFbNDcxODddLDAsMCkpLGZlWzE1MisoMHxhW3A+PjJdKT4+MF09QSxBPTY1NTM1JigwfGVzKGwsMHxhWzQ3MTc1XSwxLDApKSxpdFsxNzAr''@;'; + put 'put ''KDB8YVtwPj4yXSk+PjFdPUF9ZnVuY3Rpb24gSDUobCl7dmFyIGM9MCxmPTA7Zm9yKGZ1bmN0aW9uIHFpZShsKXtsfD0wO2Zvcih2YXIgYz0wLGY9MCxwPTAsbT0wO2w7KW09MHxhWzE2NCsoMHxhWyhwPWwrMTZ8MCk+PjJdKT4+Ml0sTzIobCksMT09KDB8ZmVbMTU2KyhjPTB8YVtwPj4yXSk+''@;'; + put 'put ''PjBdKT8oKGY9MHxhW2MrMTgwPj4yXSkmJihGdChmKSxjPTB8YVtwPj4yXSksKGY9MHxhW2MrMTcyPj4yXSkmJihGdChmKSxjPTB8YVtwPj4yXSksRnQoYyksRnQobCksbD1tKTpsPW19KDB8YVsxOTIrKDB8YVsxNisobHw9MCk+PjJdKT4+Ml0pLGY9MHxEdChsKTtmOyl7Zm9yKGM9MHx3MChs''@;'; + put 'put ''LGYpO2M7KWFnKGMpLGM9MHxTMChsLGMpO2RZKGYpLGY9MHx6dChsLGYpfU41KGwpfWZ1bmN0aW9uIGRZKGwpe3ZhciBwLGM9MCxmPTA7KGY9MHxhWzE3MisoYz0wfGFbKHA9MTYrKGx8PTApfDApPj4yXSk+PjJdKSYmKEZ0KGYpLGM9MHxhW3A+PjJdKSwoZj0wfGFbYysxODA+PjJdKSYmKEZ0''@;'; + put 'put ''KGYpLGM9MHxhW3A+PjJdKSwoZj0wfGFbYysxODg+PjJdKSYmKEZ0KGYpLGM9MHxhW3A+PjJdKSwoZj0wfGFbYysxOTY+PjJdKSYmKEZ0KGYpLGM9MHxhW3A+PjJdKSwoZj0wfGFbYysyMDQ+PjJdKSYmKEZ0KGYpLGM9MHxhW3A+PjJdKSxJYygwfGFbYysxMDQ+PjJdKSxJYygwfGFbMTA4Kygw''@;'; + put 'put ''fGFbcD4+Ml0pPj4yXSksMHwoYz0wfGFbOCsoMHxhW3A+PjJdKT4+Ml0pJiZDb1sxMjcmYVs0KygwfGFbYys0Pj4yXSk+PjJdXShsKSxIaShsLDEzNzQ0Nyl9ZnVuY3Rpb24gTjUobCl7dmFyIGM9MCxmPTAscD0wO2ZvcihjPTB8eXMobHw9MCk7YzspTjUoYyksYz0wfE1zKGMpO2lmKDB8aDAo''@;'; + put 'put ''bCwxMzc0ODMsMCwxKSl7KGY9MHxhWzE4NCsoYz0wfGFbKHA9bCsxNnwwKT4+Ml0pPj4yXSkmJihGdChmKSxjPTB8YVtwPj4yXSksKGY9MHxhW2MrMjY4Pj4yXSkmJihGdChmKSxjPTB8YVtwPj4yXSksKGY9MHxhW2MrMjE2Pj4yXSkmJihGdChmKSxjPTB8YVtwPj4yXSk7ZG97aWYoMHxhW2Mr''@;'; + put 'put ''MTk2Pj4yXSl7Zm9yKGY9MHxpdFtjKzIzNj4+MV07ISgoMHxmKT4oMHxpdFtjKzIzOD4+MV0pKTspRnQoMHxhWygwfGFbYysxOTY+PjJdKSsoZjw8NikrMTI+PjJdKSxmPWYrMXwwLGM9MHxhW3A+PjJdO2lmKGY9MHxhW2MrMTk2Pj4yXSwtMT09KDB8aXRbYysyMzY+PjFdKSl7RnQoZistNjR8''@;'; + put 'put ''MCk7YnJlYWt9RnQoZik7YnJlYWt9fXdoaWxlKDApOygwfGRpKGwpKSE9KDB8bCkmJihJYygwfGFbMTIrKDB8YVtwPj4yXSk+PjJdKSxIaShsLDEzNzQ4MykpfX1mdW5jdGlvbiBPMihsKXt2YXIgcCxjPTAsZj0wO2ZvcihjPTB8YVsxNzYrKGY9MHxhWyhwPTE2KyhsfD0wKXwwKT4+Ml0pPj4y''@;'; + put 'put ''XTtsPWMrLTF8MCwhKCgwfGMpPD0wKTspVTMoYz0wfGFbKDB8YVtmKzE3Mj4+Ml0pKyhsPDwyKT4+Ml0pLEZ0KDB8YVtjKzE2Pj4yXSksRnQoYyksYz1sLGY9MHxhW3A+PjJdO2ZvcihjPTB8YVtmKzE4ND4+Ml07bD1jKy0xfDAsISgoMHxjKTw9MCk7KVUzKGM9MHxhWygwfGFbMTgwKygwfGFb''@;'; + put 'put ''cD4+Ml0pPj4yXSkrKGw8PDIpPj4yXSksRnQoMHxhW2MrMTY+PjJdKSxGdChjKSxjPWx9ZnVuY3Rpb24gaDcobCl7dmFyIHAsbSxBLGIsayxNLGM9MCxmPTAsdz0wLEQ9MDtmb3IoTT1sZSxsZT1sZSs0OHwwLGs9TSs0MHwwLGY9TSx3PTB8ZXMobHw9MCwwfHNpKGwsMCw4NTEwMiwwKSwtMSwx''@;'; + put 'put ''KSxyNChsLDEwKSxjPTB8ZnVuY3Rpb24gQ0gobCxjKXtsfD0wLGN8PTA7dmFyIGYscCxtLEE7cmV0dXJuIEE9bGUsbGU9bGUrMzJ8MCxtPUErMTZ8MCxwPUErOHwwLGFbKGY9QSsyMHwwKT4+Ml09NSwwfChsPTB8TGkobCw5OTYwNSkpJiYoYVtwPj4yXT1BLGFbcCs0Pj4yXT1mLCgwfGlsKGws''@;'; + put 'put ''ODc0OTcscCkpPj0xKSYmJHIoMCw4NzUwNCxtKSxhW2MrMjQ+PjJdPTAsYVtjKzMyPj4yXT0wLGxlPUEsMH0obCxmKSxtWShsLGwpLGZZKGwpLHA9MT09KDB8dyksbT1mKzMyfDAsQT0yPT0oMHx3KSx3PTM9PSgwfHcpLGI9ZisyOHwwLGY9ZisyNHwwOzspe2lmKGVVKGwsYykscCl7Yz0zO2Jy''@;'; + put 'put ''ZWFrfWlmKDB8YVttPj4yXSYmKCRyKDAsODUxMDgsayksYVtmPj4yXT0wLGM9MCksJEEobCwwIT0oMHxjKSYxKSxBKXtjPTc7YnJlYWt9aWYoX0kobCxjKSx3KXtjPTk7YnJlYWt9aWYoYVtiPj4yXT1EPSgwfGFbYj4+Ml0pLTF8MCwhKDAhPSgwfEQpJjAhPSgwfGFbZj4+Ml0pKSl7Yz0xMTti''@;'; + put 'put ''cmVha319Mz09KDB8Yyk/WTMobCwxKTo3PT0oMHxjKXx8OT09KDB8Yyk/WTMobCwyKToxMT09KDB8YykmJigxNiZpdFsxMzYrKDB8YVtsKzE2Pj4yXSk+PjFdJiZmdW5jdGlvbiBWNShsKXt2YXIgZixjPTAscD0wO2lmKDB8KGY9MHxkcyhsfD0wLDg2Njc1LDApKSl7Zm9yKGM9MHxEdChmKTtj''@;'; + put 'put ''OylwPTB8enQoZixjKSx1SShsLGMpLGo1KGwsYyksZFkoYykscXIobCxjKSxjPXA7cjcobCxmKX19KGwpLHlIKGwpLGZ1bmN0aW9uIG8wZShsKXtaNShsfD0wLDEpfShsKSwoMHx0MSgwfExpKGwsODUxOTkpKSk8PDI0Pj4yNCYmZnVuY3Rpb24geFUobCl7dmFyIHAsYz0wLGY9MDtmb3IocD0w''@;'; + put 'put ''fHlKKGx8PTApLGY9MHxEdChsKTtmOyl7Zm9yKGM9MHx3MChsLGYpO2M7KVRVKGMscCksYz0wfFMwKGwsYyk7Zj0wfHp0KGwsZil9TmwocCl9KGwpKSxsZT1NfWZ1bmN0aW9uIG4wZShsLGMpe3ZhciBmLHA7Y3w9MCxoMChsfD0wLDEzNzQ4MywyODAsMSksZj0wfHZyKDk2KSxhWzgrKGw9MHxh''@;'; + put 'put ''W2wrMTY+PjJdKT4+Ml09ZixfW2Y+PjNdPStfWyhwPTB8YVs4KyhjPTB8YVtjKzE2Pj4yXSk+PjJdKT4+M10sX1tmKzI0Pj4zXT0rX1twKzI0Pj4zXSxhW2wrMTQ0Pj4yXT1hW2MrMTQ0Pj4yXSxmZVtsKzExNT4+MF09MHxmZVtjKzExNT4+MF0sYVtsKzExNj4+Ml09YVtjKzExNj4+Ml0sYVts''@;'; + put 'put ''KzI0OD4+Ml09YVtjKzI0OD4+Ml0sYVtsKzI1Mj4+Ml09YVtjKzI1Mj4+Ml0sYVtsKzI0ND4+Ml09YVtjKzI0ND4+Ml19ZnVuY3Rpb24gcjBlKGwpe3ZhciBjPTAsZj0wLHA9MDtmb3IoYz0wfHZyKCgwfEdvKGx8PTApKTw8NCksZj0wfER0KGwpO2Y7KWFbMTMyKyhwPTB8YVtmKzE2Pj4yXSk+''@;'; + put 'put ''PjJdPWMsX1tjPj4zXT0uMDEzODg4ODg4ODg4ODg4ODg4KitfW3ArMTY+PjNdLF9bYys4Pj4zXT0uMDEzODg4ODg4ODg4ODg4ODg4KitfW3ArMjQ+PjNdLGM9YysxNnwwLGY9MHx6dChsLGYpfWZ1bmN0aW9uIHBZKGwpe3ZhciBwLGM9MCxmPTAsbT0wO2ZvcihjPXA9MHxhWzEzMisoMHxhWzE2''@;'; + put 'put ''KygwfER0KGx8PTApKT4+Ml0pPj4yXSxmPTB8RHQobCk7ZjspYVsxMzIrKG09MHxhW2YrMTY+PjJdKT4+Ml09MCxfW20rMTY+PjNdPTcyKitfW2M+PjNdLF9bbSsyND4+M109NzIqK19bYys4Pj4zXSxjPWMrMTZ8MCxmPTB8enQobCxmKTtGdChwKX1mdW5jdGlvbiBpMGUobCxjLGYpe2x8PTAs''@;'; + put 'put ''Y3w9MCxmfD0wO3ZhciBwPTAsbT0wLEE9MCx3PTAsYj0wO2ZvcihwPTAsbT0wOyEoKDB8cCk+PSgwfGwpKTspYj0oMHxhWzE4MCsoMHxhWzE2KygwfGFbYysocDw8Mik+PjJdKT4+Ml0pPj4yXSkrbXwwLHA9cCsxfDAsbT1iO2ZvcihhWzE4MCsoMHxhWyhiPWYrMTZ8MCk+PjJdKT4+Ml09bSxB''@;'; + put 'put ''PTB8dnIoNCsobTw8Mil8MCksYVsxODQrKDB8YVtiPj4yXSk+PjJdPUEsQT0wLHA9MTshKCgwfEEpPj0oMHxsKSk7KXtmb3Iodz0xNisoMHxhW2MrKEE8PDIpPj4yXSl8MCxtPTE7ISgoMHxtKT4oMHxhWzE4MCsoZj0wfGFbdz4+Ml0pPj4yXSkpOylmPTB8VHJlKDB8YVsoMHxhW2YrMTg0Pj4y''@;'; + put 'put ''XSkrKG08PDIpPj4yXSksYVsoMHxhWzE4NCsoMHxhW2I+PjJdKT4+Ml0pKyhwPDwyKT4+Ml09ZixnWSgwfGFbKDB8YVsxODQrKDB8YVt3Pj4yXSk+PjJdKSsobTw8Mik+PjJdLGYpLG09bSsxfDAscD1wKzF8MDtBPUErMXwwfX1mdW5jdGlvbiBnWShsLGMpe2x8PTA7dmFyIG0sZj0wLHA9MDto''@;'; + put 'put ''MChjfD0wLDEzNzQ4MywyODAsMSksYVsoYz0xNisoMHxhWyhtPWMrMTZ8MCk+PjJdKXwwKT4+Ml09YVsobD0xNisoMHxhWyhwPWwrMTZ8MCk+PjJdKXwwKT4+Ml0sYVtjKzQ+PjJdPWFbbCs0Pj4yXSxhW2MrOD4+Ml09YVtsKzg+PjJdLGFbYysxMj4+Ml09YVtsKzEyPj4yXSxhW2MrMTY+PjJd''@;'; + put 'put ''PWFbbCsxNj4+Ml0sYVtjKzIwPj4yXT1hW2wrMjA+PjJdLGFbYysyND4+Ml09YVtsKzI0Pj4yXSxhW2MrMjg+PjJdPWFbbCsyOD4+Ml0sZmVbMjc1KyhjPTB8YVttPj4yXSk+PjBdPTB8ZmVbMjc1KyhsPTB8YVtwPj4yXSk+PjBdLGw9bCs0OHwwLGY9NjQrKGM9Yys0OHwwKXwwO2Rve2FbYz4+''@;'; + put 'put ''Ml09YVtsPj4yXSxjPWMrNHwwLGw9bCs0fDB9d2hpbGUoKDB8Yyk8KDB8ZikpO2ZvcihhWzE4MCsoMHxhW20+PjJdKT4+Ml09bD0wfGFbMTgwKygwfGFbcD4+Ml0pPj4yXSxjPTB8dnIoNCsobDw8Mil8MCksYVsxODQrKDB8YVttPj4yXSk+PjJdPWMsYz0xO2Y9MHxhW3A+PjJdLCEoKDB8Yyk+''@;'; + put 'put ''KDB8bCkpOylmPTB8VHJlKDB8YVsoMHxhW2YrMTg0Pj4yXSkrKGM8PDIpPj4yXSksYVsoMHxhWzE4NCsoMHxhW20+PjJdKT4+Ml0pKyhjPDwyKT4+Ml09ZixnWSgwfGFbKDB8YVsxODQrKDB8YVtwPj4yXSk+PjJdKSsoYzw8Mik+PjJdLGYpLGM9YysxfDA7YVsxMisoMHxhW20+PjJdKT4+Ml09''@;'; + put 'put ''YVsocD1mKzEyfDApPj4yXSxhW3A+PjJdPTB9ZnVuY3Rpb24gbVkobCxjKXtmb3IoY3w9MCwoMHxkaShsfD0wKSkhPSgwfGwpJiZoMChsLDEzNzQ4MywyODAsMSksKDB8bCk9PSgwfGMpJiYoYVsxODgrKDB8YVsxNisoMHxkaShsKSk+PjJdKT4+Ml09bCksbD0wfHlzKGwpO2w7KW1ZKGwsYyks''@;'; + put 'put ''bD0wfE1zKGwpfWZ1bmN0aW9uIFkzKGwsYyl7Y3w9MDt2YXIgZixwLG0sQSx3LGssTSxELGI9MDtmb3IoRD1sZSxsZT1sZSsxMDQwfDAsTT1EKzh8MCxrPUQscD1EKzE2fDAsbT0wfHNpKGx8PTAsMSw4NzE3MSwxOTUwNTkpLEE9MHxzaShsLDEsODUyNDIsMTk1MDU5KSx3PSgwfGMpPjAsZj0x''@;'; + put 'put ''PT0oMHxjKSxjPTB8RHQobCk7YzspdyYmKGFbaz4+Ml09YVsyMzIrKDB8YVsoYj1jKzE2fDApPj4yXSk+PjJdLG9vKHAsMTM3Mzk1LGspLFZsKGMsbSxwKSwhZikmJihhW00+PjJdPWFbMjM2KygwfGFbYj4+Ml0pPj4yXSxvbyhwLDEzNzM5NSxNKSxWbChjLEEscCkpLGM9MHx6dChsLGMpO2xl''@;'; + put 'put ''PUR9ZnVuY3Rpb24gajUobCxjKXt2YXIgdyxiLGssZj0wLHA9MCxtPTAsQT0wO2ZvcihmPTB8YVsobD0wfGFbMTk2KygwfGFbKGI9MTYrKGx8PTApfDApPj4yXSk+PjJdKSsoKGs9MHxhWzIzMisoMHxhWzE2KyhjfD0wKT4+Ml0pPj4yXSk8PDYpPj4yXSx3PWwrKGs8PDYpKzR8MCxBPTAscD0w''@;'; + put 'put ''Ozspe2lmKCgwfHApPj0oMHxmKSl7bT03O2JyZWFrfWlmKG09MHxhWygwfGFbdz4+Ml0pKyhwPDwyKT4+Ml0scD1wKzF8MCwoMHxtKT09KDB8Yykpe209NDticmVha31BPW19aWYoND09KDB8bSkpe2Zvcig7ISgoMHxwKT49KDB8ZikpOylhWyhtPTB8YVtsKyhrPDw2KSs0Pj4yXSkrKHArLTE8''@;'; + put 'put ''PDIpPj4yXT1hW20rKHA8PDIpPj4yXSxwPXArMXwwLGY9MHxhWyhtPTB8YVsxOTYrKDB8YVtiPj4yXSk+PjJdKSsoazw8Nik+PjJdLGw9bSxtPTQ7YVtsKyhrPDw2KT4+Ml09ZistMX1lbHNlIDc9PSgwfG0pJiYoMHxBKSE9KDB8YykmJlByKDg1MjA4LDg1MjE1LDI0OCw4NTIyNSl9ZnVuY3Rp''@;'; + put 'put ''b24gQWEobCl7cmV0dXJuIDB8YVsxODgrKDB8YVsxNisoMHxkaShsfD0wKSk+PjJdKT4+Ml19ZnVuY3Rpb24gSkEobCxjKXt2YXIgZj0wO3JldHVybiBmPTB8ZmVbMjgrKGx8PTApPj4wXSwwfGZlWzI4KyhjfD0wKT4+MF0/Zjw8MjQ+PjI0PyhmPX5+KCtfW2w+PjNdLStfW2M+PjNdKSl8fChm''@;'; + put 'put ''PX5+KCtfW2wrOD4+M10tK19bYys4Pj4zXSkpOmY9LTE6Zj1mPDwyND4+MjQhPTAmMSwwfGZ9ZnVuY3Rpb24gWjUobCxjKXtjfD0wO3ZhciBTbixIbix1cixIcixFcixEcixKcixMcixWaSxPaSxSbyxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLEs9MCxwZT0w''@;'; + put 'put ''LGdlPTAsYmU9MCxPZT0wLExlPTAsUmU9MCxIZT0wLFZlPTAscWU9MCxudD0wLFdlPTAsb3Q9MCxTdD0wLGt0PTAsc3Q9MCxFdD0wLFp0PTAsY3Q9MCxidD0wLGFuPTAsZnI9MCxsMD0wLGxvPTA7Um89bGUsbGU9bGUrNjU2fDAsSG49Um8rNTkyfDAsU249Um8rNTUyfDAsZj1Sbys1NDR8MCxK''@;'; + put 'put ''cj1SbyxPaT1Sbys2MzJ8MCx1cj02NTUzNSYoVmk9MTQmaXRbMTM2KygwfGFbKExyPTE2KyhsfD0wKXwwKT4+Ml0pPj4xXSksYVsoSHI9MTYrKERyPVJvKzk2fDApfDApPj4yXT1SbyszNjgsYVsoRXI9SnIrMTZ8MCk+PjJdPVJvKzE5Mjtkb3tpZihWaTw8MTY+PjE2KXtmcj1WaTw8MTY+PjE2''@;'; + put 'put ''PT00O2Rve2lmKGZyKXZZKGwpLDEmZmVbMTEzKygwfGFbMTYrKDB8YVtsKzYwPj4yXSk+PjJdKT4+MF0mJiRyKDAsODUyNDgsZiksVmU9OTtlbHNle2lmKFZpPDwxNj4+MTY9PTgpe2lmKHZZKGwpLDEmZmVbMTEzKygwfGFbMTYrKDB8YVtsKzYwPj4yXSk+PjJdKT4+MF0pe2EwZShsKSxlaShs''@;'; + put 'put ''LDEpLGs9MCxiPTAsdz0wO2JyZWFrfWVpKGwsMCksaz0wLGI9MCx3PTA7YnJlYWt9VmU9OX19d2hpbGUoMCk7aWYoOT09KDB8VmUpKXtpZihmcChsKSwwfFRhZSgpKWJyZWFrO2wwPTB8dnIoOTYpLGFbT2krOD4+Ml09KDB8KGN0PTB8YVsyNDgrKDB8YVtMcj4+Ml0pPj4yXSkpLzR8MCxhW09p''@;'; + put 'put ''KzEyPj4yXT1jdCx3PTB8dnIoNTEyKSxhWyhTdD1PaSs0fDApPj4yXT0wLGFbT2k+PjJdPTAsbnQ9MHxpdFsyMzYrKEE9MHxhW0xyPj4yXSk+PjFdLFdlPTAsYnQ9MCxhbj13LG90PXcsYj13LGs9dyxNPXcsc3Q9MCxFdD0wO2U6Zm9yKDshKCgwfG50KT4oMHxpdFtBKzIzOD4+MV0pKTspe2Zv''@;'; + put 'put ''cihrdD0obT0wfGFbKEQ9MHxhW0ErMTk2Pj4yXSkrKG50PDw2KT4+Ml0pK1dlfDAscWU9KGY9KGY9MHxhWyhwPTB8YVtEKyhudDw8NikrND4+Ml0pPj4yXSk/fn4oKFJlPStfWzE2KyhmPTB8YVtmKzE2Pj4yXSk+PjNdLStfW2YrODg+PjNdKT4obG89KygwfHN0KSk/bG86UmUpOnN0KSstMTZ8''@;'; + put 'put ''MCxIZT0ocD0wIT0oMHxtKSYmMCE9KDB8KFp0PTB8YVtwKyhtKy0xPDwyKT4+Ml0pKT9+figobG89K19bOTYrKHA9MHxhW1p0KzE2Pj4yXSk+PjNdKyArX1twKzE2Pj4zXSk8KFJlPSsoMHxFdCkpP1JlOmxvKTpFdCkrMTZ8MCxMZT0wLHBlPWJ0LEc9YW4sUj1BLGdlPW90LGJlPWIscD13LGY9''@;'; + put 'put ''RDshKCgwfExlKT49KDB8bSkpOyl7aWYobT0wfGFbMTEyKyhmPTB8YVsoT2U9MTYrKHc9MHxhWygwfGFbZisobnQ8PDYpKzQ+PjJdKSsoTGU8PDIpPj4yXSl8MCk+PjJdKT4+Ml0pe2lmKCEoQT0wfGFbOTYrKDB8YVsobT1tKzE2fDApPj4yXSk+PjJdKSl7VmU9MjE7YnJlYWsgZX1hWyhLPUEr''@;'; + put 'put ''NTZ8MCk+PjJdPWFbKGY9ZisxNnwwKT4+Ml0sYVtLKzQ+PjJdPWFbZis0Pj4yXSxhW0srOD4+Ml09YVtmKzg+PjJdLGFbSysxMj4+Ml09YVtmKzEyPj4yXSxmZVs4MSsoMHxhWzk2KygwfGFbbT4+Ml0pPj4yXSk+PjBdPTEsZj0wfGFbT2U+PjJdfTAhPSgwfGZlW2YrMTU2Pj4wXSkmJigwfF9v''@;'; + put 'put ''WzYzJmFbNDMyNV1dKHcpKTw8MjQ+PjI0PT0wPyhSPXBlLGY9RyxBPWdlLHc9YmUsbT1NKTooSz0wLFI9cGUsQT1nZSx3PWJlLFZlPTI1KTt0OmRve2lmKDI1PT0oMHxWZSkpe2Zvcig7VmU9MCxtPTB8YVsoMHxhWzE4MCsoRD0wfGFbT2U+PjJdKT4+Ml0pKyhLPDwyKT4+Ml07KXtzd2l0Y2go''@;'; + put 'put ''MHxmZVsxMTIrKDB8YVttKzE2Pj4yXSk+PjBdKXtjYXNlIDY6Y2FzZSA0OmY9UixtPUc7YnJlYWs7ZGVmYXVsdDpvSShtLDEsMTYsNjQpLGY9UisxfDAsYVtHKyhSPDwyKT4+Ml09bSwxMjcmZj9tPUc6KG09cD0wfFYwKHAsNTE2KyhSPDwyKXwwKSxBPXAsdz1wLGs9cCxNPXApfUs9SysxfDAs''@;'; + put 'put ''Uj1mLEc9bSxWZT0yNX1mPTB8YVtEKzE4OD4+Ml07bjpkb3tpZihmKWZvcihLPTAsbT1NOzspe2lmKCEoZj0wfGFbZisoSzw8Mik+PjJdKSlicmVhayBuO29JKGYsMiwwLDEyOCksTT1SKzF8MCxhW0crKFI8PDIpPj4yXT1mLDEyNyZNP2Y9RzooZj1wPTB8VjAobSw1MTYrKFI8PDIpfDApLEE9''@;'; + put 'put ''cCx3PXAsaz1wLG09cCksSz1LKzF8MCxSPU0sRz1mLGY9MHxhWzE4OCsoRD0wfGFbT2U+PjJdKT4+Ml19ZWxzZSBtPU19d2hpbGUoMCk7aWYoZj0wfGFbRCsyMDQ+PjJdKWZvcigwfGZlW0QrMTU2Pj4wXT8oSz0wLEQ9Ryk6KGxvPStfWyhiZT1EKzk2fDApPj4zXSxfW2JlPj4zXT0rX1soSz1E''@;'; + put 'put ''KzI0MHwwKT4+M10sX1tLPj4zXT1sbyxLPTAsRD1HKTs7KXtpZighKGY9MHxhW2YrKEs8PDIpPj4yXSkpe2Y9RDticmVhayB0fW9JKGYsMCwwLDEyOCksTT1SKzF8MCxhW0QrKFI8PDIpPj4yXT1mLDEyNyZNP2Y9RDooZj1wPTB8VjAoayw1MTYrKFI8PDIpfDApLEE9cCx3PXAsaz1wLG09cCks''@;'; + put 'put ''Sz1LKzF8MCxSPU0sRD1mLGY9MHxhWzIwNCsoMHxhW09lPj4yXSk+PjJdfWVsc2UgZj1HfX13aGlsZSgwKTtPZT0wfGFbMTk2KyhnZT0wfGFbTHI+PjJdKT4+Ml0sTGU9TGUrMXwwLHBlPVIsRz1mLFI9Z2UsZ2U9QSxiZT13LE09bSxtPTB8YVtPZSsobnQ8PDYpPj4yXSxmPU9lfW50PW50KzF8''@;'; + put 'put ''MCxXZT1rdCxidD1wZSxhbj1HLG90PWdlLEE9UixiPWJlLHc9cCxzdD1xZSxFdD1IZX0yMT09KDB8VmUpJiZQcig4NTMxNiw4NTMyOSwzMTMsODUzNDIpLGFbT2k+PjJdPXN0LGFbU3Q+PjJdPUV0LHgxKG90LGJ0LDQsNTgpLGFbbDArODQ+PjJdPTB8dnIoMTE1MjArKFdlPDw1KXwwKSxhW09p''@;'; + put 'put ''KzE2Pj4yXT0wfHZyKG50PDw1KTtlOmRve2lmKFZpPDwxNj4+MTY9PTIpZm9yKGY9MTkyKygwfGFbTHI+PjJdKXwwOzspe2lmKCEocD0wfGFbZj4+Ml0pKWJyZWFrIGU7MT09KDB8ZmVbMTU2KyhmPTB8YVsobT1wKzE2fDApPj4yXSk+PjBdKSYmMCE9KDB8YVtmKzEwND4+Ml0pJiYoakYocCks''@;'; + put 'put ''Zj0wfGFbbT4+Ml0pLGY9ZisxNjR8MH19d2hpbGUoMCk7SGU9SnIrNDh8MCxWZT1KcistNDh8MCxxZT1Ecis0OHwwLG50PURyKy00OHwwLFJlPSsoMHxjdCksTGU9MDtlOmZvcig7ISgoMHxMZSk+PSgwfGJ0KSk7KXtpZihLPTB8ejUoRz0wfGFbKGJlPWFuKyhMZTw8Mil8MCk+PjJdKSwwfGZl''@;'; + put 'put ''WzQ0KyhwPTB8YVsocGU9RysxNnwwKT4+Ml0pPj4wXT9mPUc6KGY9cD0wPT0oMHxmZVtwKzg0Pj4wXSk/SzpHLHA9MHxhW3ArMTY+PjJdKSxtPWYrMTZ8MCwzMiZhW3ArMTY0Pj4yXSl7Z28oMHwocD0wfGFbSHI+PjJdKSwwfGFbbT4+Ml0sMTc2KSxNPWYsRD0oaz1EcikrNDh8MDtkb3thW2s+''@;'; + put 'put ''PjJdPWFbTT4+Ml0saz1rKzR8MCxNPU0rNHwwfXdoaWxlKCgwfGspPCgwfEQpKTthW0hyPj4yXT1wLGFbKDM9PSgwfChrPTMmYVtEcj4+Ml0pKT9EcjpxZSkrNDA+PjJdPWFbKDI9PSgwfChNPTMmYVtmPj4yXSkpP2Y6ZistNDh8MCkrNDA+PjJdLGFbKDI9PSgwfGspP0RyOm50KSs0MD4+Ml09''@;'; + put 'put ''YVsoMz09KDB8TSk/ZjpmKzQ4fDApKzQwPj4yXSxNPTU2KygwfGFbbT4+Ml0pfDAsRD00MCsoaz1wKzE2fDApfDA7ZG97YVtrPj4yXT1hW00+PjJdLGs9ays0fDAsTT1NKzR8MH13aGlsZSgoMHxrKTwoMHxEKSk7TT0xNisoMHxhW20+PjJdKXwwLEQ9NDArKGs9cCs1NnwwKXwwO2Rve2Fbaz4+''@;'; + put 'put ''Ml09YVtNPj4yXSxrPWsrNHwwLE09TSs0fDB9d2hpbGUoKDB8ayk8KDB8RCkpO2ZlW3ArMTEyPj4wXT0xLGFbcCsxMTY+PjJdPWYsZj1Ecn1mb3IoUj1mKzE2fDAsT2U9MSxmPUxlOyEoKDB8KGdlPWYrMXwwKSk+PSgwfGJ0KXx8KEE9YW4rKGdlPDwyKXwwLGY9MHxhW0E+PjJdLCgwfEspIT0o''@;'; + put 'put ''MHx6NShmKSkpKTspe2lmKCEoMHxmZVsxMTMrKDB8YVtwZT4+Ml0pPj4wXSkpe2lmKDB8ZmVbNDQrKHA9MHxhWyh3PWYrMTZ8MCk+PjJdKT4+MF18fChmPXA9MD09KDB8ZmVbcCs4ND4+MF0pP0s6ZixwPTB8YVtwKzE2Pj4yXSksbT1mKzE2fDAsMzImYVtwKzE2ND4+Ml0pe2dvKDB8KHA9MHxh''@;'; + put 'put ''W0VyPj4yXSksMHxhW20+PjJdLDE3NiksTT1mLEQ9KGs9SnIpKzQ4fDA7ZG97YVtrPj4yXT1hW00+PjJdLGs9ays0fDAsTT1NKzR8MH13aGlsZSgoMHxrKTwoMHxEKSk7YVtFcj4+Ml09cCxhWygzPT0oMHwoaz0zJmFbSnI+PjJdKSk/SnI6SGUpKzQwPj4yXT1hWygyPT0oMHwoTT0zJmFbZj4+''@;'; + put 'put ''Ml0pKT9mOmYrLTQ4fDApKzQwPj4yXSxhWygyPT0oMHxrKT9KcjpWZSkrNDA+PjJdPWFbKDM9PSgwfE0pP2Y6Zis0OHwwKSs0MD4+Ml0sTT01NisoMHxhW20+PjJdKXwwLEQ9NDArKGs9cCsxNnwwKXwwO2Rve2Fbaz4+Ml09YVtNPj4yXSxrPWsrNHwwLE09TSs0fDB9d2hpbGUoKDB8ayk8KDB8''@;'; + put 'put ''RCkpO009MTYrKDB8YVttPj4yXSl8MCxEPTQwKyhrPXArNTZ8MCl8MDtkb3thW2s+PjJdPWFbTT4+Ml0saz1rKzR8MCxNPU0rNHwwfXdoaWxlKCgwfGspPCgwfEQpKTtmZVtwKzExMj4+MF09MSxhW3ArMTE2Pj4yXT1mfWY9cCsxNnwwLE09MTYrKG09MHxhW1I+PjJdKXwwLEQ9KGs9U24pKzQw''@;'; + put 'put ''fDA7ZG97YVtrPj4yXT1hW00+PjJdLGs9ays0fDAsTT1NKzR8MH13aGlsZSgoMHxrKTwoMHxEKSk7TT1mLEQ9KGs9SG4pKzQwfDA7ZG97YVtrPj4yXT1hW00+PjJdLGs9ays0fDAsTT1NKzR8MH13aGlsZSgoMHxrKTwoMHxEKSk7aWYoMHxKQShTbixIbikpYnJlYWs7Zj1wKzU2fDAsTT1tKzU2''@;'; + put 'put ''fDAsRD0oaz1TbikrNDB8MDtkb3thW2s+PjJdPWFbTT4+Ml0saz1rKzR8MCxNPU0rNHwwfXdoaWxlKCgwfGspPCgwfEQpKTtNPWYsRD0oaz1IbikrNDB8MDtkb3thW2s+PjJdPWFbTT4+Ml0saz1rKzR8MCxNPU0rNHwwfXdoaWxlKCgwfGspPCgwfEQpKTtpZigwfEpBKFNuLEhuKXx8Mj09KDE1''@;'; + put 'put ''JmFbMTY0KyhjdD0wfGFbcGU+PjJdKT4+Ml18MCkmJigwfGFbY3QrOTY+PjJdKSE9KDB8YVs5NisoMHxhW3c+PjJdKT4+Ml0pfHw2NCZhWzE2NCsoMHxhWzE2KygwfGFbQT4+Ml0pPj4yXSk+PjJdfDApYnJlYWt9T2U9T2UrMXwwLGY9Z2V9aWYoZnIpe2ZvcihmPTE9PSgwfE9lKT9IbjowfHZy''@;'; + put 'put ''KE9lPDwyKSxhW2Y+PjJdPTB8ejUoMHxhW2JlPj4yXSkscD0xOyEoKDB8cCk+PSgwfE9lKSk7KWFbZisocDw8Mik+PjJdPWFbYmUrKHA8PDIpPj4yXSxwPXArMXwwO1dRKGwsZixPZSx1ciwxNzI5NiksKDB8T2UpPjEmJkZ0KGYpLExlPWdlfWVsc2UgaWYobT0wfGFbMjMyKyhwPTB8YVsxNiso''@;'; + put 'put ''Y3Q9MHxhWygzPT0oMHwoZj0zJmFbRz4+Ml0pKT9HOkcrNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSwoMHxjdCk9PSgwfChmPTB8YVsoMj09KDB8Zik/RzpHKy00OHwwKSs0MD4+Ml0pKSl7Zj0wfGFbTHI+PjJdO2Rve2lmKCgwfG0pPT0oMHxpdFtmKzIzOD4+MV0pKXtpZigoMHxtKT4wKXtmPX5+''@;'; + put 'put ''KCtfWzI0KygwfGFbMTYrKDB8YVthWygwfGFbZisxOTY+PjJdKSsobSstMTw8NikrND4+Ml0+PjJdKT4+Ml0pPj4zXS0rX1twKzI0Pj4zXSk7YnJlYWt9Zj1+fitfW3ArODA+PjNdO2JyZWFrfWlmKCgwfG0pPT0oMHxpdFtmKzIzNj4+MV0pKXtmPX5+KCtfW3ArMjQ+PjNdLStfWzI0KygwfGFb''@;'; + put 'put ''MTYrKDB8YVthWygwfGFbZisxOTY+PjJdKSsobSsxPDw2KSs0Pj4yXT4+Ml0pPj4yXSk+PjNdKTticmVha31mPSgwfChjdD1+figrX1syNCsoMHxhWzE2KygwfGFbYVsoZj0wfGFbZisxOTY+PjJdKSsobSstMTw8NikrND4+Ml0+PjJdKT4+Ml0pPj4zXS0obG89K19bcCsyND4+M10pKSkpPCgw''@;'; + put 'put ''fChmPX5+KGxvLStfWzI0KygwfGFbMTYrKDB8YVthW2YrKG0rMTw8NikrND4+Ml0+PjJdKT4+Ml0pPj4zXSkpKT9jdDpmO2JyZWFrfXdoaWxlKDApO2ZvcihuRChsMCxhbixMZSxPZSxSZSwrKDB8KDB8ZikvMiksMTcyOTYpLGY9MDs7KXtpZigoMHxmKT49KDB8T2UpKXtMZT1nZTtjb250aW51''@;'; + put 'put ''ZSBlfTB8KHA9MHxhWzk2KygwfGFbMTYrKDB8YVthbisoZitMZTw8Mik+PjJdKT4+Ml0pPj4yXSkmJm40KGwscCksZj1mKzF8MH19ZWxzZXtpZigoMHxtKT09KDB8YVsyMzIrKDB8YVtmKzE2Pj4yXSk+PjJdKSl7czBlKGwsT2ksbDAsYW4sTGUsT2UsdXIpLExlPWdlO2NvbnRpbnVlfXUwZShs''@;'; + put 'put ''LE9pLGwwLGFuLExlLE9lLHVyKSxMZT1nZX19Zm9yKGY9MTkyKygwfGFbTHI+PjJdKXwwO3A9MHxhW2Y+PjJdOykxPT0oMHxmZVsxNTYrKGY9MHxhWyhtPXArMTZ8MCk+PjJdKT4+MF0pJiYwIT0oMHxhW2YrMTA0Pj4yXSkmJihqRihwKSxuNChsLDB8YVsxMDQrKDB8YVttPj4yXSk+PjJdKSxm''@;'; + put 'put ''PTB8YVttPj4yXSksZj1mKzE2NHwwO2M/KEFZKGwpLGs9bDAsdz1sMCk6KGs9bDAsdz1sMCl9ZTpkb3tpZigwIT0oMHxhWzQ3MTk3XSl8MCE9KDB8YVs0NzE5OF0pJiYwIT0oMHxhWzQ3MjAzXSl8MCE9KDB8YVs0NzIwMl0pKWZvcihBPTB8RHQobCk7Oyl7aWYoIUEpYnJlYWsgZTt0OmRve2lm''@;'; + put 'put ''KDB8YVs0NzE5N10pZm9yKGY9MHxNZihsLEEpOzspe2lmKCFmKWJyZWFrIHQ7cD1mKy00OHwwLDB8YVsxMDArKDB8YVsobT0yPT0oMyZhW2Y+PjJdfDApP2Y6cCkrMTY+PjJdKT4+Ml0mJih2ayhtLDEpLG40KGwsMHxhWzEwMCsoMHxhWygyPT0oMyZhW2Y+PjJdfDApP2Y6cCkrMTY+PjJdKT4+''@;'; + put 'put ''Ml0pKSxmPTB8SDMobCxmKX19d2hpbGUoMCk7dDpkb3tpZigwfGFbNDcxOThdKWZvcihmPTB8dzAobCxBKTs7KXtpZighZilicmVhayB0OzB8YVsxMDQrKDB8YVsocD1mKzE2fDApPj4yXSk+PjJdJiYwfHZrKGYsMCkmJm40KGwsMHxhWzEwNCsoMHxhW3A+PjJdKT4+Ml0pLGY9MHxTMChsLGYp''@;'; + put 'put ''fX13aGlsZSgwKTtBPTB8enQobCxBKX19d2hpbGUoMCk7c3dpdGNoKDE1JlZpKXtjYXNlIDQ6Y2FzZSA4OmJyZWFrO2RlZmF1bHQ6RnQoYiksRnQoMHxhW2srODQ+PjJdKSxGdCh3KSxGdCgwfGFbT2krMTY+PjJdKSxqUSgpfWFbNDcxMzhdPTEsYVs0NzEzOV09MX19d2hpbGUoMCk7bGU9Um99''@;'; + put 'put ''ZnVuY3Rpb24gdlkobCl7dmFyIGM9MCxmPTAscD0wLG09MDtmb3IoYz0wfER0KGx8PTApO2M7KTB8YVsyMDQrKGY9MHxhW2MrMTY+PjJdKT4+Ml0mJihwPStfWyhtPWYrOTZ8MCk+PjNdLF9bbT4+M109K19bKGY9ZisyNDB8MCk+PjNdLF9bZj4+M109cCksYz0wfHp0KGwsYyl9ZnVuY3Rpb24g''@;'; + put 'put ''YTBlKGwpe3ZhciBjPTAsZj0wLHA9MCxtPTA7Yz0xOTIrKDB8YVsxNisobHw9MCk+PjJdKXwwO2U6Zm9yKDs7KXtpZighKHA9MHxhW2M+PjJdKSl7Yz0xMjticmVha31jPTB8YVsobT1wKzE2fDApPj4yXTtkb3tpZigxPT0oMHxmZVtjKzE1Nj4+MF0pKXtpZihmPTB8YVtjKzExMj4+Ml0pe2lm''@;'; + put 'put ''KCEoZj0wfGFbOTYrKDB8YVtmKzE2Pj4yXSk+PjJdKSl7Yz02O2JyZWFrIGV9YVsocD1mKzU2fDApPj4yXT1hWyhjPWMrMTZ8MCk+PjJdLGFbcCs0Pj4yXT1hW2MrND4+Ml0sYVtwKzg+PjJdPWFbYys4Pj4yXSxhW3ArMTI+PjJdPWFbYysxMj4+Ml0sZmVbZis4MT4+MF09MSxjPWZ9ZWxzZXtp''@;'; + put 'put ''ZighKGY9MHxhW2MrMTA0Pj4yXSkpYnJlYWs7akYocCksYz1mfW40KGwsYyksYz0wfGFbbT4+Ml19fXdoaWxlKDApO2M9YysxNjR8MH1pZig2PT0oMHxjKSlQcig4NTUxNiw4NTMyOSwyMzQsODU1MzUpO2Vsc2UgaWYoMTI9PSgwfGMpKXJldHVybn1mdW5jdGlvbiBvSShsLGMsZixwKXtsfD0w''@;'; + put 'put ''LGN8PTAsZnw9MCxwfD0wO3ZhciBtPTA7ZG97aWYoIWMpe2lmKCgwfChjPTB8YVsoMz09KDB8KG09MyZhW2w+PjJdKSk/bDpsKzQ4fDApKzQwPj4yXSkpIT0oMHwobT0wfGFbKDI9PSgwfG0pP2w6bCstNDh8MCkrNDA+PjJdKSkpe2M9KDB8YVsyMzIrKDB8YVtjKzE2Pj4yXSk+PjJdKT09KDB8''@;'; + put 'put ''YVsyMzIrKDB8YVttKzE2Pj4yXSk+PjJdKT8yOjE7YnJlYWt9Yz0wfGZlWzQ0KyhjPTB8YVtsKzE2Pj4yXSk+PjBdPzQ6MD09KDB8ZmVbYys4ND4+MF0pPzg6NH19d2hpbGUoMCk7ZTpkb3tpZighZilzd2l0Y2goMHxjKXtjYXNlIDE6Zj0oMHxhWzIzMisoMHxhWzE2KygwfGFbKDM9PSgwfChm''@;'; + put 'put ''PTMmYVtsPj4yXSkpP2w6bCs0OHwwKSs0MD4+Ml0pPj4yXSk+PjJdKTwoMHxhWzIzMisoMHxhWzE2KygwfGFbKDI9PSgwfGYpP2w6bCstNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSk/MTY6MzI7YnJlYWsgZTtjYXNlIDI6Zj0oMHxhWzIzNisoMHxhWzE2KygwfGFbKDM9PSgwfChmPTMmYVtsPj4y''@;'; + put 'put ''XSkpP2w6bCs0OHwwKSs0MD4+Ml0pPj4yXSk+PjJdKTwoMHxhWzIzNisoMHxhWzE2KygwfGFbKDI9PSgwfGYpP2w6bCstNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSk/MTY6MzI7YnJlYWsgZTtkZWZhdWx0OmY9MTY7YnJlYWsgZX19d2hpbGUoMCk7YVsxNjQrKDB8YVtsKzE2Pj4yXSk+PjJdPWN8''@;'; + put 'put ''cHxmfWZ1bmN0aW9uIGpGKGwpe3ZhciBjPTAsZj0wLHA9MCxtPTAsQT0wO2lmKDB8YVsxNzYrKGM9MHxhWyhwPTE2KyhsfD0wKXwwKT4+Ml0pPj4yXSl7Zm9yKGM9MHxhW2MrMTgwPj4yXTswfGZlWzExMisoZj0wfGFbKGM9MTYrKDB8YVtjPj4yXSl8MCk+PjJdKT4+MF07KWM9ZisxMTZ8MDtt''@;'; + put 'put ''PStfWzI0KyhmPTB8YVtmKzk2Pj4yXSk+PjNdLEE9K19bZiszMj4+M10sZj0wIT0oMSZhWzExNisoMHxhWzE2KygwfGNyKGwpKT4+Ml0pPj4yXXwwKSxsPTB8YVtwPj4yXSxfWzU2KyhwPTB8YVs5NisoMHxhW2M+PjJdKT4+Ml0pPj4zXT0uNSooZj9BOm0pKyArX1tsKzE2Pj4zXSxfW3ArNjQ+''@;'; + put 'put ''PjNdPStfW2wrMjQ+PjNdLGZlW3ArODE+PjBdPTF9fWZ1bmN0aW9uIHo1KGwpe2x8PTA7Zm9yKHZhciBjPTAsZj0wO2Y9MHxhWzE3MisoYz0wfGFbbCsxNj4+Ml0pPj4yXTspbD1mO2Zvcig7Yz0wfGFbYysxMTY+PjJdOylsPWMsYz0wfGFbYysxNj4+Ml07cmV0dXJuIDB8bH1mdW5jdGlvbiBz''@;'; + put 'put ''MGUobCxjLGYscCxtLEEsdyl7bHw9MCxjfD0wLGZ8PTAscHw9MCxtfD0wLEF8PTAsd3w9MDt2YXIgUmUsSGUsVmUsbnQsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAsSz0wLHBlPTAsZ2U9MCxiZT0wLE9lPTAsTGU9MCxxZT0wLFdlPTAsb3Q9MCxTdD0wLGt0PTAsc3Q9MDtpZihudD1sZSxsZT1s''@;'; + put 'put ''ZSsxNzEyfDAsUmU9bnQrMTY2NHwwLHFlPW50KzE2OTZ8MCxIZT1udCs2OTZ8MCxWZT1udCxhWyhSPTE2KyhnZT1udCsxMzkyfDApfDApPj4yXT1wZT1udCsxNDg4fDAsYmU9MHxmZVsxMTMrKGI9MHxhWyhLPTE2KyhHPTB8YVtwKyhtPDwyKT4+Ml0pfDApPj4yXSk+PjBdLDMyJmFbYisxNjQ+''@;'; + put 'put ''PjJdKXtnbygwfHBlLDB8YiwxNzYpLE09RyxEPShiPWdlKSs0OHwwO2Rve2FbYj4+Ml09YVtNPj4yXSxiPWIrNHwwLE09TSs0fDB9d2hpbGUoKDB8Yik8KDB8RCkpO2FbUj4+Ml09cGUsYVsoMz09KDB8KGI9MyZhW2dlPj4yXSkpP2dlOmdlKzQ4fDApKzQwPj4yXT1hWygyPT0oMyZhW0c+PjJd''@;'; + put 'put ''fDApP0c6RystNDh8MCkrNDA+PjJdLGFbKDI9PSgwfGIpP2dlOmdlKy00OHwwKSs0MD4+Ml09YVsoMz09KDMmYVtHPj4yXXwwKT9HOkcrNDh8MCkrNDA+PjJdLE09NTYrKDB8YVtLPj4yXSl8MCxEPTQwKyhiPXBlKzE2fDApfDA7ZG97YVtiPj4yXT1hW00+PjJdLGI9Yis0fDAsTT1NKzR8MH13''@;'; + put 'put ''aGlsZSgoMHxiKTwoMHxEKSk7TT0xNisoMHxhW0s+PjJdKXwwLEQ9NDArKGI9cGUrNTZ8MCl8MDtkb3thW2I+PjJdPWFbTT4+Ml0sYj1iKzR8MCxNPU0rNHwwfXdoaWxlKCgwfGIpPCgwfEQpKTtmZVtwZSsxMTI+PjBdPTEsYVtwZSsxMTY+PjJdPUcsRz1nZX1mb3IoYj0xOzspe2lmKCgwfGIp''@;'; + put 'put ''Pj0oMHxBKSl7TGU9NjticmVha31pZigwfGZlWzExMysoMHxhWzE2KygwfGFbcCsoYittPDwyKT4+Ml0pPj4yXSk+PjBdKXtMZT03O2JyZWFrfWI9YisxfDB9ZTpkb3tpZig2PT0oMHxMZSkpaWYoYmU8PDI0Pj4yNClMZT03O2Vsc2V7aWYoMHxhWzk2KyhiPTB8YVtHKzE2Pj4yXSk+PjJdKXtt''@;'; + put 'put ''MGUobCxjLGYsRyx3KTticmVha31pZigyPT0oMHx3KSl7WUYoMHxhWygzPT0oMHwocWU9MyZhW0c+PjJdKSk/RzpHKzQ4fDApKzQwPj4yXSwwfGFbKDI9PSgwfHFlKT9HOkcrLTQ4fDApKzQwPj4yXSxwLG0sQSwyKTticmVha31pZighKChnZT0wfGZlW2IrNDk+PjBdKTw8MjQ+PjI0PT0xJihi''@;'; + put 'put ''ZT0wfGZlW2IrODk+PjBdKTw8MjQ+PjI0IT00fHxnZTw8MjQ+PjI0IT00JmJlPDwyND4+MjQ9PTEpKWZvcihEPTB8YVsoMz09KDB8KFI9MyZhW0c+PjJdKSk/RzpHKzQ4fDApKzQwPj4yXSxSPTB8YVsoMj09KDB8Uik/RzpHKy00OHwwKSs0MD4+Ml0saz0oMHwoTT0wfGFbMjMyKyhiPTB8YVtE''@;'; + put 'put ''KzE2Pj4yXSk+PjJdKSk+MD8rX1syNCsoMHxhWzE2KygwfGFbYVsoYmU9MHxhWzE5NisoMHxhW2wrMTY+PjJdKT4+Ml0pKygoZ2U9TSt+KDEmZmVbMTEzKygwfGFbMTYrKDB8YVtsKzYwPj4yXSk+PjJdKT4+MF0pfDApPDw2KSs0Pj4yXT4+Ml0pPj4yXSk+PjNdLStfW2JlKyhnZTw8NikrMTY+''@;'; + put 'put ''PjNdLStfW2IrMjQ+PjNdLStfW2JlKyhNPDw2KSsyND4+M106KygwfGFbMjUyKygwfGFbbCsxNj4+Ml0pPj4yXSksT2U9KygwfGFbYysxMj4+Ml0pLyhXZT0rKEErMXwwKSksay89V2UsbEkobCxjLGYsRCxHLEhlLDEpLGxJKGwsYyxmLFIsRyxWZSwwKSxwZT1IZSs1MnwwLGdlPVZlKzUyfDAs''@;'; + put 'put ''Uj0xMD09KDB8dyksRz1mKzgwfDAsYj0wOzspe2lmKCgwfGIpPj0oMHxBKSlicmVhayBlO2ZvcihLPTB8YVtwKyhiK208PDIpPj4yXSxrdD0rX1tIZSs1NisoKE09KEQ9MHxhW3BlPj4yXSktMXwwKTw8NSkrMTY+PjNdLFN0PStfW0hlKzU2KyhNPDw1KSsyND4+M10sX1sxOTIxNV09c3Q9K19b''@;'; + put 'put ''SGUrNTYrKE08PDUpPj4zXSxfWzE5MjE2XT1TdCxfWzE5MjE3XT1rdCsob3Q9T2UqKFdlPSsoMHwoYj1iKzF8MCkpKSksX1sxOTIxOF09V2U9U3QraypXZSxfWzE5MjE5XT1zdCxfWzE5MjIwXT1XZSxfWzE5MjIxXT1zdD0rX1tWZSs1NisoKE09KDB8YVtnZT4+Ml0pLTF8MCk8PDUpKzE2Pj4z''@;'; + put 'put ''XSxfWzE5MjIyXT1XZStrLFN0PStfW1ZlKzU2KyhNPDw1KT4+M10sa3Q9K19bVmUrNTYrKE08PDUpKzI0Pj4zXSxfWzE5MjI1XT1zdCxfWzE5MjI0XT1rdCxfWzE5MjIzXT1TdC1vdCxfWzE5MjI2XT1XZSxNPTA7Oyl7aWYoKDB8TSk+PSgwfEQpKXtNPTA7YnJlYWt9YVtSZT4+Ml09YVsoRD1I''@;'; + put 'put ''ZSs1NisoTTw8NSl8MCk+PjJdLGFbUmUrND4+Ml09YVtEKzQ+PjJdLGFbUmUrOD4+Ml09YVtEKzg+PjJdLGFbUmUrMTI+PjJdPWFbRCsxMj4+Ml0sYVtSZSsxNj4+Ml09YVtEKzE2Pj4yXSxhW1JlKzIwPj4yXT1hW0QrMjA+PjJdLGFbUmUrMjQ+PjJdPWFbRCsyND4+Ml0sYVtSZSsyOD4+Ml09''@;'; + put 'put ''YVtEKzI4Pj4yXSxYMyhmLFJlKSxNPU0rMXwwLEQ9MHxhW3BlPj4yXX1mb3IoOzMhPSgwfE0pOylhW1JlPj4yXT1hWyh3PTE1MzcyMCsoTTw8NSl8MCk+PjJdLGFbUmUrND4+Ml09YVt3KzQ+PjJdLGFbUmUrOD4+Ml09YVt3Kzg+PjJdLGFbUmUrMTI+PjJdPWFbdysxMj4+Ml0sYVtSZSsxNj4+''@;'; + put 'put ''Ml09YVt3KzE2Pj4yXSxhW1JlKzIwPj4yXT1hW3crMjA+PjJdLGFbUmUrMjQ+PjJdPWFbdysyND4+Ml0sYVtSZSsyOD4+Ml09YVt3KzI4Pj4yXSxYMyhmLFJlKSxNPU0rMXwwO2ZvcihEPTB8YVtnZT4+Ml07TT1EKy0xfDAsISgoMHxEKTw9MCk7KWFbUmU+PjJdPWFbKEQ9VmUrNTYrKE08PDUp''@;'; + put 'put ''fDApPj4yXSxhW1JlKzQ+PjJdPWFbRCs0Pj4yXSxhW1JlKzg+PjJdPWFbRCs4Pj4yXSxhW1JlKzEyPj4yXT1hW0QrMTI+PjJdLGFbUmUrMTY+PjJdPWFbRCsxNj4+Ml0sYVtSZSsyMD4+Ml09YVtEKzIwPj4yXSxhW1JlKzI0Pj4yXT1hW0QrMjQ+PjJdLGFbUmUrMjg+PjJdPWFbRCsyOD4+Ml0s''@;'; + put 'put ''WDMoZixSZSksRD1NO2lmKE09Uj8wfGJ5KGYscWUpOjB8Z2soZixxZSksIShEPTB8YVtxZT4+Ml0pKWJyZWFrIGU7QXUoSywwfGFbKDI9PSgzJmFbSz4+Ml18MCk/SzpLKy00OHwwKSs0MD4+Ml0sTSxELDE3Mjk2KSxhW0c+PjJdPTB9Q1kobCxjLGYscCxtLEEsRywxMD09KDB8dykmMSl9fXdo''@;'; + put 'put ''aWxlKDApOzc9PSgwfExlKSYmZnVuY3Rpb24gZzBlKGwsYyxmLHAsbSxBKXtsfD0wLGN8PTAsZnw9MCxwfD0wLEF8PTA7dmFyIFdlLG90LFN0LGt0LHN0LEV0LFp0LGN0LGJ0LGFuLFNuLEhuLHVyLEhyLGZyLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxLPTAscGU9MCxnZT0wLGJlPTAs''@;'; + put 'put ''T2U9MCxMZT0wLFJlPTAsSGU9MCxWZT0wLHFlPTAsbnQ9MCxFcj0wLERyPTAsSnI9MDtmcj1sZSxsZT1sZSsyNTZ8MCxvdD1mcisyMzJ8MCxXZT1mcisyMTZ8MCxIcj1mcis4OHwwLHVyPWZyKzgwfDAsYnQ9ZnIrNjR8MCxhbj1mcisyMDB8MCxTbj1mcisxODR8MCxIbj1mcixTdD1mcisxNjh8''@;'; + put 'put ''MCxrdD1mcisxNTJ8MCxzdD1mcisxMzZ8MCxFdD1mcisxMjB8MCxadD1mcisxMDR8MCxjdD0wfGFbKDM9PSgwfChudD0zJmFbKG18PTApPj4yXSkpP206bSs0OHwwKSs0MD4+Ml0sbnQ9MHxhWygyPT0oMHxudCk/bTptKy00OHwwKSs0MD4+Ml07ZG97aWYoMiE9KDB8JDUoY3QpKSYmMiE9KDB8''@;'; + put 'put ''JDUobnQpKSl7Zm9yKG09MCx3PTAsYj0wOyEoKDB8Yik+PSgwfHApKTspbT1tKygwIT0oMHxhWzk2KyhxZT0wfGFbMTYrKDB8YVtjKyhiK2Y8PDIpPj4yXSk+PjJdKT4+Ml0pJjEpfDAsMD09KDB8ZmVbcWUrNDQ+PjBdKSYmMD09KDB8ZmVbcWUrODQ+PjBdKXx8KHc9MSksYj1iKzF8MDtpZigh''@;'; + put 'put ''dyl7aWYobSl7a1koY3QsbnQsYyxmLHAsQSxtKTticmVha31ZRihjdCxudCxjLGYscCxBKTticmVha31mb3IoaDAoZ2U9MHxkcyhWZT0wfFNZKGwsSGU9MHx2cigxNTYpKSw4NTQ3OCwxKSwxMzc0ODMsMjgwLDEpLGtjKGdlLDg3MTcxLDg3MTg1KSxrPStfWzE2KygwfGFbbnQrMTY+PjJdKT4+''@;'; + put 'put ''M10scGU9K19bMTYrKDB8YVtjdCsxNj4+Ml0pPj4zXSxLPShHPTA9PSgxJmFbMTE2KygwfGFbKHFlPWwrMTZ8MCk+PjJdKT4+Ml18MCkpP250OmN0LGdlPTB8WUMoZ2UsRz1HP2N0Om50KSxiZT0wfFlDKFZlLEspLG09MCxSPTA7ISgoMHxSKT49KDB8cCkpOyl7Zm9yKHc9YysoUitmPDwyKXww''@;'; + put 'put ''OzB8ZmVbMTEyKyh3PTB8YVsoTT0xNisoRD0wfGFbdz4+Ml0pfDApPj4yXSk+PjBdOyl3PXcrMTE2fDA7Yj0oMHxhWygzPT0oMyZhW0Q+PjJdfDApP0Q6RCs0OHwwKSs0MD4+Ml0pPT0oMHxHKT8wfFk1KFZlLGdlLGJlLEQpOjB8WTUoVmUsYmUsZ2UsRCksYVsxMjArKHc9MHxhW00+PjJdKT4+''@;'; + put 'put ''Ml09YixtfHwoMD09KDB8ZmVbdys0ND4+MF0pJiYwPT0oMHxmZVt3Kzg0Pj4wXSk/KGFbMTIwKygwfGFbYisxNj4+Ml0pPj4yXT1ELG09Yik6bT0wKSxSPVIrMXwwfWZvcihWbChSZT1tfHwwfEthKFZlLGdlLGJlLDAsMSksMHxhWzQ3MTc0XSw4NTQ4MiksYVsxNDQrKE09MHxhWyhtPVZlKzE2''@;'; + put 'put ''fDApPj4yXSk+PjJdPWFbMTQ0KygwfGFbcWU+PjJdKT4+Ml0sYVtNKzE4OD4+Ml09VmUscjQoVmUsQSksZlkoVmUpLGVVKFZlLDApLCRBKFZlLDApLF9JKFZlLDApLE09MHxhW0srMTY+PjJdLE9lPSsoMHx+fmspLExlPSsoMHx+figuNSooK19bMTYrKDB8YVtiZSsxNj4+Ml0pPj4zXSsgK19b''@;'; + put 'put ''KFI9MTYrKEQ9MHxhWyhLPWdlKzE2fDApPj4yXSl8MCk+PjNdKSkpLGs9KygwfH5+cGUpLHBlPSsoMHx+figuNSooK19bMTYrKEE9MHxhWyhHPUcrMTZ8MCk+PjJdKT4+M10tK19bQSs5Nj4+M10rICtfW00rMTY+PjNdKyArX1tNKzg4Pj4zXSkpKSxNPUQrMjR8MCxtPTE5MisoMHxhW20+PjJd''@;'; + put 'put ''KXwwO3c9MHxhW20+PjJdOyl7ZG97aWYoKDB8dykhPSgwfGdlKSl7aWYoYj0yNCsobT0wfGFbdysxNj4+Ml0pfDAsKDB8dyk9PSgwfGJlKSl7X1tiPj4zXT1rLF9bbSsxNj4+M109TGU7YnJlYWt9X1tiPj4zXT1wZTticmVha31fW00+PjNdPU9lLF9bUj4+M109TGUsbT1EfXdoaWxlKDApO209''@;'; + put 'put ''bSsxNjR8MH1mb3IoeUgoVmUpLFo1KFZlLDApLHQ0KFZlKSxiPTB8YVtHPj4yXSxtPTB8YVtLPj4yXSwxJmFbMTE2KygwfGFbcWU+PjJdKT4+Ml0/KHc9bSsyNHwwLGs9K19bbSsxNj4+M10rICtfW2IrMjQ+PjNdKToodz1tKzE2fDAsaz0rX1tiKzI0Pj4zXS0rX1ttKzI0Pj4zXSksX1tidD4+''@;'; + put 'put ''M109K19bYisxNj4+M10tK19bdz4+M10sX1tidCs4Pj4zXT1rLEE9SG4rMTZ8MCxnZT1IbiszMnwwLGJlPUhuKzQ4fDAsSz0wOyEoKDB8Syk+PSgwfHApKTspe2ZvcihtPWMrKEsrZjw8Mil8MDswfGZlWzExMisobT0wfGFbKEc9MTYrKHc9MHxhW20+PjJdKXwwKT4+Ml0pPj4wXTspbT1tKzEx''@;'; + put 'put ''NnwwO2lmKCEoKDB8KEQ9MHxhW20rMTIwPj4yXSkpPT0oMHxSZSkmMD09KDB8YVsxMjArKG09MHxhWyhSPUQrMTZ8MCk+PjJdKT4+Ml0pKSl7Zm9yKHc9MHxoTih3LDB8YVsoRD00KyhNPTB8YVthW20rOD4+Ml0+PjJdKXwwKT4+Ml0pLGFbdys4Pj4yXT1hW00rOD4+Ml0sbT13KzE2fDAsRHI9''@;'; + put 'put ''MSZhWzExNisoMHxhW3FlPj4yXSk+PjJdLGFbV2U+PjJdPWFbKGI9TSsxNnwwKT4+Ml0sYVtXZSs0Pj4yXT1hW2IrND4+Ml0sYVtXZSs4Pj4yXT1hW2IrOD4+Ml0sYVtXZSsxMj4+Ml09YVtiKzEyPj4yXSxhW290Pj4yXT1hW2J0Pj4yXSxhW290KzQ+PjJdPWFbYnQrND4+Ml0sYVtvdCs4Pj4y''@;'; + put 'put ''XT1hW2J0Kzg+PjJdLGFbb3QrMTI+PjJdPWFbYnQrMTI+PjJdLGNsKGFuLFdlLG90LERyKSxhW20+PjJdPWFbYW4+PjJdLGFbbSs0Pj4yXT1hW2FuKzQ+PjJdLGFbbSs4Pj4yXT1hW2FuKzg+PjJdLGFbbSsxMj4+Ml09YVthbisxMj4+Ml0sYVt3KzEyPj4yXT1hW00rMTI+PjJdLG09dyszMnww''@;'; + put 'put ''LGI9MSZhWzExNisoMHxhW3FlPj4yXSk+PjJdLGFbV2U+PjJdPWFbKERyPU0rMzJ8MCk+PjJdLGFbV2UrND4+Ml09YVtEcis0Pj4yXSxhW1dlKzg+PjJdPWFbRHIrOD4+Ml0sYVtXZSsxMj4+Ml09YVtEcisxMj4+Ml0sYVtvdD4+Ml09YVtidD4+Ml0sYVtvdCs0Pj4yXT1hW2J0KzQ+PjJdLGFb''@;'; + put 'put ''b3QrOD4+Ml09YVtidCs4Pj4yXSxhW290KzEyPj4yXT1hW2J0KzEyPj4yXSxjbChTbixXZSxvdCxiKSxhW20+PjJdPWFbU24+PjJdLGFbbSs0Pj4yXT1hW1NuKzQ+PjJdLGFbbSs4Pj4yXT1hW1NuKzg+PjJdLGFbbSsxMj4+Ml09YVtTbisxMj4+Ml0sbT0wOyEoKDB8bSk+PSgwfGFbRD4+Ml0p''@;'; + put 'put ''KTspe2lmKGI9KDB8YVt3Pj4yXSkrKG08PDQpfDAsRHI9MSZhWzExNisoMHxhW3FlPj4yXSk+PjJdLGFbV2U+PjJdPWFbKEpyPSgwfGFbTT4+Ml0pKyhtPDw0KXwwKT4+Ml0sYVtXZSs0Pj4yXT1hW0pyKzQ+PjJdLGFbV2UrOD4+Ml09YVtKcis4Pj4yXSxhW1dlKzEyPj4yXT1hW0pyKzEyPj4y''@;'; + put 'put ''XSxhW290Pj4yXT1hW2J0Pj4yXSxhW290KzQ+PjJdPWFbYnQrND4+Ml0sYVtvdCs4Pj4yXT1hW2J0Kzg+PjJdLGFbb3QrMTI+PjJdPWFbYnQrMTI+PjJdLGNsKFN0LFdlLG90LERyKSxhW2I+PjJdPWFbU3Q+PjJdLGFbYis0Pj4yXT1hW1N0KzQ+PjJdLGFbYis4Pj4yXT1hW1N0Kzg+PjJdLGFb''@;'; + put 'put ''YisxMj4+Ml09YVtTdCsxMj4+Ml0sYVtIbj4+Ml09YVtTdD4+Ml0sYVtIbis0Pj4yXT1hW1N0KzQ+PjJdLGFbSG4rOD4+Ml09YVtTdCs4Pj4yXSxhW0huKzEyPj4yXT1hW1N0KzEyPj4yXSwoMHwoYj1tKzF8MCkpPj0oMHxhW0Q+PjJdKSl7RXI9NDg7YnJlYWt9RHI9KDB8YVt3Pj4yXSkrKGI8''@;'; + put 'put ''PDQpfDAsSnI9MSZhWzExNisoMHxhW3FlPj4yXSk+PjJdLGFbV2U+PjJdPWFbKGI9KDB8YVtNPj4yXSkrKGI8PDQpfDApPj4yXSxhW1dlKzQ+PjJdPWFbYis0Pj4yXSxhW1dlKzg+PjJdPWFbYis4Pj4yXSxhW1dlKzEyPj4yXT1hW2IrMTI+PjJdLGFbb3Q+PjJdPWFbYnQ+PjJdLGFbb3QrND4+''@;'; + put 'put ''Ml09YVtidCs0Pj4yXSxhW290Kzg+PjJdPWFbYnQrOD4+Ml0sYVtvdCsxMj4+Ml09YVtidCsxMj4+Ml0sY2woa3QsV2Usb3QsSnIpLGFbRHI+PjJdPWFba3Q+PjJdLGFbRHIrND4+Ml09YVtrdCs0Pj4yXSxhW0RyKzg+PjJdPWFba3QrOD4+Ml0sYVtEcisxMj4+Ml09YVtrdCsxMj4+Ml0sYVtB''@;'; + put 'put ''Pj4yXT1hW2t0Pj4yXSxhW0ErND4+Ml09YVtrdCs0Pj4yXSxhW0ErOD4+Ml09YVtrdCs4Pj4yXSxhW0ErMTI+PjJdPWFba3QrMTI+PjJdLEpyPSgwfGFbdz4+Ml0pKygoRHI9bSsyfDApPDw0KXwwLGI9MSZhWzExNisoMHxhW3FlPj4yXSk+PjJdLGFbV2U+PjJdPWFbKERyPSgwfGFbTT4+Ml0p''@;'; + put 'put ''KyhEcjw8NCl8MCk+PjJdLGFbV2UrND4+Ml09YVtEcis0Pj4yXSxhW1dlKzg+PjJdPWFbRHIrOD4+Ml0sYVtXZSsxMj4+Ml09YVtEcisxMj4+Ml0sYVtvdD4+Ml09YVtidD4+Ml0sYVtvdCs0Pj4yXT1hW2J0KzQ+PjJdLGFbb3QrOD4+Ml09YVtidCs4Pj4yXSxhW290KzEyPj4yXT1hW2J0KzEy''@;'; + put 'put ''Pj4yXSxjbChzdCxXZSxvdCxiKSxhW0pyPj4yXT1hW3N0Pj4yXSxhW0pyKzQ+PjJdPWFbc3QrND4+Ml0sYVtKcis4Pj4yXT1hW3N0Kzg+PjJdLGFbSnIrMTI+PjJdPWFbc3QrMTI+PjJdLGFbZ2U+PjJdPWFbc3Q+PjJdLGFbZ2UrND4+Ml09YVtzdCs0Pj4yXSxhW2dlKzg+PjJdPWFbc3QrOD4+''@;'; + put 'put ''Ml0sYVtnZSsxMj4+Ml09YVtzdCsxMj4+Ml0sRHI9MSZhWzExNisoMHxhW3FlPj4yXSk+PjJdLGFbV2U+PjJdPWFbKGI9KDB8YVtNPj4yXSkrKChKcj1tKzN8MCk8PDQpfDApPj4yXSxhW1dlKzQ+PjJdPWFbYis0Pj4yXSxhW1dlKzg+PjJdPWFbYis4Pj4yXSxhW1dlKzEyPj4yXT1hW2IrMTI+''@;'; + put 'put ''PjJdLGFbb3Q+PjJdPWFbYnQ+PjJdLGFbb3QrND4+Ml09YVtidCs0Pj4yXSxhW290Kzg+PjJdPWFbYnQrOD4+Ml0sYVtvdCsxMj4+Ml09YVtidCsxMj4+Ml0sY2woRXQsV2Usb3QsRHIpLGFbYmU+PjJdPWFbRXQ+PjJdLGFbYmUrND4+Ml09YVtFdCs0Pj4yXSxhW2JlKzg+PjJdPWFbRXQrOD4+''@;'; + put 'put ''Ml0sYVtiZSsxMj4+Ml09YVtFdCsxMj4+Ml0sSEEoMTYrKDB8YVtxZT4+Ml0pfDAsSG4pLG09SnJ9NDg9PSgwfEVyKSYmKEVyPTApLDB8KG09MHxhWzk2KygwfGFbRz4+Ml0pPj4yXSkmJihKcj1tKzU2fDAsRHI9MSZhWzExNisoMHxhW3FlPj4yXSk+PjJdLGFbV2U+PjJdPWFbKFI9NTYrKDB8''@;'; + put 'put ''YVs5NisoMHxhW1I+PjJdKT4+Ml0pfDApPj4yXSxhW1dlKzQ+PjJdPWFbUis0Pj4yXSxhW1dlKzg+PjJdPWFbUis4Pj4yXSxhW1dlKzEyPj4yXT1hW1IrMTI+PjJdLGFbb3Q+PjJdPWFbYnQ+PjJdLGFbb3QrND4+Ml09YVtidCs0Pj4yXSxhW290Kzg+PjJdPWFbYnQrOD4+Ml0sYVtvdCsxMj4+''@;'; + put 'put ''Ml09YVtidCsxMj4+Ml0sY2woWnQsV2Usb3QsRHIpLGFbSnI+PjJdPWFbWnQ+PjJdLGFbSnIrND4+Ml09YVtadCs0Pj4yXSxhW0pyKzg+PjJdPWFbWnQrOD4+Ml0sYVtKcisxMj4+Ml09YVtadCsxMj4+Ml0sZmVbODErKEpyPTB8YVs5NisoMHxhW0c+PjJdKT4+Ml0pPj4wXT0xLG40KGwsSnIp''@;'; + put 'put ''KX1LPUsrMXwwfVVDKFZlLEhlKX1lbHNlIEVyPTN9d2hpbGUoMCk7Mz09KDB8RXIpJiYwPT0oMHxhWzQ2NzM4XSkmJihhWzQ2NzM4XT0xLCRyKDAsODUzNTUsdXIpLEVyPTB8dGkoY3QpLERyPTAhPSgwfFNjKGwpKSxKcj0wfHRpKG50KSxhW0hyPj4yXT1FcixhW0hyKzQ+PjJdPURyPzEzNzcz''@;'; + put 'put ''ODoxNDE3NDcsYVtIcis4Pj4yXT1KciwkcigzLDg1NDYxLEhyKSksbGU9ZnJ9KGwscCxtLEEsRyx3KSxsZT1udH1mdW5jdGlvbiB1MGUobCxjLGYscCxtLEEsdyl7bHw9MCxjfD0wLGZ8PTAscHw9MCxtfD0wLEF8PTAsd3w9MDt2YXIgRXQsYW4sU24sSG4sdXIsSHIsRXIsZnIsRHIsSnIsTHIs''@;'; + put 'put ''bDAsT2ksUm8sVGEsamEsZ2EsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAsSz0wLHBlPTAsZ2U9MCxiZT0wLE9lPTAsTGU9MCxSZT0wLEhlPTAsVmU9MCxxZT0wLG50PTAsV2U9MCxvdD0wLFN0PTAsa3Q9MCxzdD0wLFp0PTAsY3Q9MCxidD0wLFZpPTAsbG89MCx4aT0wO2lmKGdhPWxlLGxlPWxl''@;'; + put 'put ''KzI1NzZ8MCxmcj1nYSsyNTI4fDAsbG89Z2ErMjU2OHwwLE09Z2ErMjE3NnwwLE9pPWdhKzE4MDh8MCxUYT1nYSsxNzEyfDAsRHI9Z2ErMTAxNnwwLEpyPWdhKzMyMHwwLExyPWdhKzI1NnwwLFZpPWdhKzI1NjR8MCxSbz1nYSsyNTYwfDAsVmU9Z2ErMjg4fDAscWU9Z2ErMjI0fDAsYW49Z2Er''@;'; + put 'put ''MTkyfDAsU249Z2ErMTYwfDAsSG49Z2ErMTI4fDAsdXI9Z2ErOTZ8MCxIcj1nYSs2NHwwLEVyPWdhKzMyfDAsbDA9Z2EsYVsocGU9MTYrKGdlPWdhKzE5MDR8MCl8MCk+PjJdPWI9Z2ErMjM1MnwwLGFbKEQ9T2krMTZ8MCk+PjJdPU0sYVsoamE9VGErMTZ8MCk+PjJdPWdhKzJlMywwfGFbNDY3''@;'; + put 'put ''MzRdfHwoYVs0NjczNF09MHxRbigzMmUzKSxhWzQ2NzM1XT0wfFFuKDMyZTMpLGFbNDY3MzZdPTJlMyxhWzQ2NzM3XT0yZTMpLFI9NDgrKGJlPTB8YVtwKyhtPDwyKT4+Ml0pfDAsRz1iZSstNDh8MCxLPWJlKzE2fDAsKDB8KCgwfChidD0oMHxhWzIzMisoMHxhWzE2KygwfGFbKDM9PSgwfChi''@;'; + put 'put ''dD0zJmFbYmU+PjJdKSk/YmU6UikrNDA+PjJdKT4+Ml0pPj4yXSktKDB8YVsyMzIrKDB8YVsxNisoMHxhWygyPT0oMHxidCk/YmU6RykrNDA+PjJdKT4+Ml0pPj4yXSl8MCkpPi0xP2J0OjAtYnR8MCkpPD0xKWlmKDMyJmFbMTY0KyhiPTB8YVtLPj4yXSk+PjJdKXtnbygwfChNPTB8YVtwZT4+''@;'; + put 'put ''Ml0pLDB8YiwxNzYpLFJlPWJlLEhlPShMZT1nZSkrNDh8MDtkb3thW0xlPj4yXT1hW1JlPj4yXSxMZT1MZSs0fDAsUmU9UmUrNHwwfXdoaWxlKCgwfExlKTwoMHxIZSkpO2FbcGU+PjJdPU0sYVsoMz09KDB8KExlPTMmYVtnZT4+Ml0pKT9nZTpnZSs0OHwwKSs0MD4+Ml09YVsoMj09KDMmYVti''@;'; + put 'put ''ZT4+Ml18MCk/YmU6RykrNDA+PjJdLGFbKDI9PSgwfExlKT9nZTpnZSstNDh8MCkrNDA+PjJdPWFbKDM9PSgzJmFbYmU+PjJdfDApP2JlOlIpKzQwPj4yXSxSZT01NisoMHxhW0s+PjJdKXwwLEhlPTQwKyhMZT1NKzE2fDApfDA7ZG97YVtMZT4+Ml09YVtSZT4+Ml0sTGU9TGUrNHwwLFJlPVJl''@;'; + put 'put ''KzR8MH13aGlsZSgoMHxMZSk8KDB8SGUpKTtSZT0xNisoMHxhW0s+PjJdKXwwLEhlPTQwKyhMZT01NisoYj0wfGFbcGU+PjJdKXwwKXwwO2Rve2FbTGU+PjJdPWFbUmU+PjJdLExlPUxlKzR8MCxSZT1SZSs0fDB9d2hpbGUoKDB8TGUpPCgwfEhlKSk7ZmVbYisxMTI+PjBdPTEsTT0wLGN0PTEy''@;'; + put 'put ''fWVsc2UgYnQ9YmUsTT0wO2Vsc2V7Z28oMHxiLDB8YVtLPj4yXSwxNzYpLFJlPWJlLEhlPShMZT1nZSkrNDh8MDtkb3thW0xlPj4yXT1hW1JlPj4yXSxMZT1MZSs0fDAsUmU9UmUrNHwwfXdoaWxlKCgwfExlKTwoMHxIZSkpO1JlPVIsSGU9NDgrKExlPWdlKzQ4fDApfDA7ZG97YVtMZT4+Ml09''@;'; + put 'put ''YVtSZT4+Ml0sTGU9TGUrNHwwLFJlPVJlKzR8MH13aGlsZSgoMHxMZSk8KDB8SGUpKTtpZihhW3BlPj4yXT1iLDMyJmFbMTY0KyhiPTB8YVtLPj4yXSk+PjJdKXtnbygwfChNPTB8YVtEPj4yXSksMHxiLDE3NiksUmU9YmUsSGU9KExlPU9pKSs0OHwwO2Rve2FbTGU+PjJdPWFbUmU+PjJdLExl''@;'; + put 'put ''PUxlKzR8MCxSZT1SZSs0fDB9d2hpbGUoKDB8TGUpPCgwfEhlKSk7YVtEPj4yXT1NLGFbKDM9PSgwfChMZT0zJmFbT2k+PjJdKSk/T2k6T2krNDh8MCkrNDA+PjJdPWFbKDI9PSgzJmFbYmU+PjJdfDApP2JlOkcpKzQwPj4yXSxhWygyPT0oMHxMZSk/T2k6T2krLTQ4fDApKzQwPj4yXT1hWygz''@;'; + put 'put ''PT0oMyZhW2JlPj4yXXwwKT9iZTpSKSs0MD4+Ml0sUmU9NTYrKDB8YVtLPj4yXSl8MCxIZT00MCsoTGU9TSsxNnwwKXwwO2Rve2FbTGU+PjJdPWFbUmU+PjJdLExlPUxlKzR8MCxSZT1SZSs0fDB9d2hpbGUoKDB8TGUpPCgwfEhlKSk7UmU9MTYrKDB8YVtLPj4yXSl8MCxIZT00MCsoTGU9NTYr''@;'; + put 'put ''KGI9MHxhW0Q+PjJdKXwwKXwwO2Rve2FbTGU+PjJdPWFbUmU+PjJdLExlPUxlKzR8MCxSZT1SZSs0fDB9d2hpbGUoKDB8TGUpPCgwfEhlKSk7ZmVbYisxMTI+PjBdPTEsYVtiKzExNj4+Ml09YmUsYVsoMz09KDMmKEQ9MHxhW2dlPj4yXSl8MCk/Z2U6Z2UrNDh8MCkrNDA+PjJdPWFbKDI9PSgz''@;'; + put 'put ''JmFbYmU+PjJdfDApP2JlOkcpKzQwPj4yXSxSZT01NisoMHxhW0s+PjJdKXwwLEhlPTQwKyhMZT0xNisoMHxhW3BlPj4yXSl8MCl8MDtkb3thW0xlPj4yXT1hW1JlPj4yXSxMZT1MZSs0fDAsUmU9UmUrNHwwfXdoaWxlKCgwfExlKTwoMHxIZSkpfWVsc2V7Z28oMHxNLDB8YiwxNzYpLFJlPWJl''@;'; + put 'put ''LEhlPShMZT1PaSkrNDh8MDtkb3thW0xlPj4yXT1hW1JlPj4yXSxMZT1MZSs0fDAsUmU9UmUrNHwwfXdoaWxlKCgwfExlKTwoMHxIZSkpO2FbRD4+Ml09TSxhWygzPT0oMyYoRD0wfGFbZ2U+PjJdKXwwKT9nZTpnZSs0OHwwKSs0MD4+Ml09YVsoMz09KDMmYVtiZT4+Ml18MCk/YmU6UikrNDA+''@;'; + put 'put ''PjJdLFJlPVIsSGU9NDgrKExlPU9pKzQ4fDApfDA7ZG97YVtMZT4+Ml09YVtSZT4+Ml0sTGU9TGUrNHwwLFJlPVJlKzR8MH13aGlsZSgoMHxMZSk8KDB8SGUpKX1mb3IoYj0wfHo1KGJlKTtNPTB8YVsxNzIrKDB8YVtiKzE2Pj4yXSk+PjJdOyliPU07YVsoMj09KDMmRHwwKT9nZTpnZSstNDh8''@;'; + put 'put ''MCkrNDA+PjJdPWFbKDI9PSgzJmFbYj4+Ml18MCk/YjpiKy00OHwwKSs0MD4+Ml0sZmVbODQrKGI9MHxhW3BlPj4yXSk+PjBdPTAsZmVbYisxMTI+PjBdPTEsYVsoTT1iKzU2fDApPj4yXT0wLGFbTSs0Pj4yXT0wLGFbTSs4Pj4yXT0wLGFbTSsxMj4+Ml09MCxNPTEsY3Q9MTJ9MTI9PSgwfGN0''@;'; + put 'put ''KSYmKGFbYisxMTY+PjJdPWJlLGJ0PWdlKSxjdD0oRXQ9Mj09KDB8dykpJiYoT2U9MHxmdW5jdGlvbiBoMGUobCxjLGYscCl7bHw9MCxmfD0wLHB8PTA7dmFyIE0sRCxHLEsscGUsT2UsTGUsUmUsbT0wLEE9MCx3PTAsYj0wLGs9MCxSPTAsZ2U9MCxiZT0wLEhlPTA7Zm9yKFJlPWxlLGxlPWxl''@;'; + put 'put ''Kzk2fDAsRz1SZSs4MHwwLHBlPVJlKzY0fDAsSz1SZSs0OHwwLGJlPVJlKzMyfDAsT2U9UmUrMTZ8MCxMZT1SZSxrPWN8PTA7MHxmZVsxMTIrKG09MHxhWyhnZT1rKzE2fDApPj4yXSk+PjBdOylrPTB8YVttKzExNj4+Ml07c3dpdGNoKEQ9MHxhWygyPT0oMHwobT0zJmFbaz4+Ml0pKT9rOmsr''@;'; + put 'put ''LTQ4fDApKzQwPj4yXSxtPTB8YVsoMz09KDB8bSk/azprKzQ4fDApKzQwPj4yXSwwfCgoMHwoSGU9KDB8YVsyMzIrKDB8YVsoaz1EKzE2fDApPj4yXSk+PjJdKS0oMHxhWzIzMisoMHxhWyhNPW0rMTZ8MCk+PjJdKT4+Ml0pfDApKT4tMT9IZTowLUhlfDApKXtjYXNlIDE6bT0wO2JyZWFrO2Nh''@;'; + put 'put ''c2UgMjoxJmZlWzExMysoMHxhWzE2KygwfGFbbCs2MD4+Ml0pPj4yXSk+PjBdP209MDpSPTY7YnJlYWs7ZGVmYXVsdDpSPTZ9ZG97aWYoNj09KDB8Uikpe2lmKCgwfGFbKDM9PSgzJmFbYz4+Ml18MCk/YzpjKzQ4fDApKzQwPj4yXSk9PSgwfG0pPyhhW3A+PjJdPUQsUj0xNisoMHxhW2dlPj4y''@;'; + put 'put ''XSl8MCxhW3BlPj4yXT1hWyhIZT0xNisoMHxhW00+PjJdKXwwKT4+Ml0sYVtwZSs0Pj4yXT1hW0hlKzQ+PjJdLGFbcGUrOD4+Ml09YVtIZSs4Pj4yXSxhW3BlKzEyPj4yXT1hW0hlKzEyPj4yXSxhW0c+PjJdPWFbUj4+Ml0sYVtHKzQ+PjJdPWFbUis0Pj4yXSxhW0crOD4+Ml09YVtSKzg+PjJd''@;'; + put 'put ''LGFbRysxMj4+Ml09YVtSKzEyPj4yXSxCdShiZSxwZSxHKSxIZT01NisoMHxhW2dlPj4yXSl8MCxhW3BlPj4yXT1hWyhSPTE2KygwfGFbaz4+Ml0pfDApPj4yXSxhW3BlKzQ+PjJdPWFbUis0Pj4yXSxhW3BlKzg+PjJdPWFbUis4Pj4yXSxhW3BlKzEyPj4yXT1hW1IrMTI+PjJdLGFbRz4+Ml09''@;'; + put 'put ''YVtIZT4+Ml0sYVtHKzQ+PjJdPWFbSGUrND4+Ml0sYVtHKzg+PjJdPWFbSGUrOD4+Ml0sYVtHKzEyPj4yXT1hW0hlKzEyPj4yXSxCdShPZSxwZSxHKSk6KGFbcD4+Ml09bSxSPTU2KygwfGFbZ2U+PjJdKXwwLGFbcGU+PjJdPWFbKEhlPTE2KygwfGFbaz4+Ml0pfDApPj4yXSxhW3BlKzQ+PjJd''@;'; + put 'put ''PWFbSGUrND4+Ml0sYVtwZSs4Pj4yXT1hW0hlKzg+PjJdLGFbcGUrMTI+PjJdPWFbSGUrMTI+PjJdLGFbRz4+Ml09YVtSPj4yXSxhW0crND4+Ml09YVtSKzQ+PjJdLGFbRys4Pj4yXT1hW1IrOD4+Ml0sYVtHKzEyPj4yXT1hW1IrMTI+PjJdLEJ1KGJlLHBlLEcpLEhlPTE2KygwfGFbZ2U+PjJd''@;'; + put 'put ''KXwwLGFbcGU+PjJdPWFbKFI9MTYrKDB8YVtNPj4yXSl8MCk+PjJdLGFbcGUrND4+Ml09YVtSKzQ+PjJdLGFbcGUrOD4+Ml09YVtSKzg+PjJdLGFbcGUrMTI+PjJdPWFbUisxMj4+Ml0sYVtHPj4yXT1hW0hlPj4yXSxhW0crND4+Ml09YVtIZSs0Pj4yXSxhW0crOD4+Ml09YVtIZSs4Pj4yXSxh''@;'; + put 'put ''W0crMTI+PjJdPWFbSGUrMTI+PjJdLEJ1KE9lLHBlLEcpKSwhKG09MHxhWzk2KygwfGFbZ2U+PjJdKT4+Ml0pKXttPWYrMTZ8MCxhW2Y+PjJdPWFbYmU+PjJdLGFbZis0Pj4yXT1hW2JlKzQ+PjJdLGFbZis4Pj4yXT1hW2JlKzg+PjJdLGFbZisxMj4+Ml09YVtiZSsxMj4+Ml0sYVttPj4yXT1h''@;'; + put 'put ''W2JlPj4yXSxhW20rND4+Ml09YVtiZSs0Pj4yXSxhW20rOD4+Ml09YVtiZSs4Pj4yXSxhW20rMTI+PjJdPWFbYmUrMTI+PjJdLG09Zis0OHwwLGFbKEhlPWYrMzJ8MCk+PjJdPWFbT2U+PjJdLGFbSGUrND4+Ml09YVtPZSs0Pj4yXSxhW0hlKzg+PjJdPWFbT2UrOD4+Ml0sYVtIZSsxMj4+Ml09''@;'; + put 'put ''YVtPZSsxMj4+Ml0sYVttPj4yXT1hW09lPj4yXSxhW20rND4+Ml09YVtPZSs0Pj4yXSxhW20rOD4+Ml09YVtPZSs4Pj4yXSxhW20rMTI+PjJdPWFbT2UrMTI+PjJdLG09NDticmVha313PStfW20rMjQ+PjNdLEE9K19bbSszMj4+M10sYj0oUj0wPT0oMSZhWzExNisoMHxhWzE2KygwfGNyKEQp''@;'; + put 'put ''KT4+Ml0pPj4yXXwwKSk/QTp3LGFbTGU+PjJdPWFbKEhlPTU2KygwfGFbOTYrKDB8YVtnZT4+Ml0pPj4yXSl8MCk+PjJdLGFbTGUrND4+Ml09YVtIZSs0Pj4yXSxhW0xlKzg+PjJdPWFbSGUrOD4+Ml0sYVtMZSsxMj4+Ml09YVtIZSsxMj4+Ml0sYVtLPj4yXT1hW09lPj4yXSxhW0srND4+Ml09''@;'; + put 'put ''YVtPZSs0Pj4yXSxhW0srOD4+Ml09YVtPZSs4Pj4yXSxhW0srMTI+PjJdPWFbT2UrMTI+PjJdLGFbcGU+PjJdPWFbYmU+PjJdLGFbcGUrND4+Ml09YVtiZSs0Pj4yXSxhW3BlKzg+PjJdPWFbYmUrOD4+Ml0sYVtwZSsxMj4+Ml09YVtiZSsxMj4+Ml0sYVtHPj4yXT1hW0hlPj4yXSxhW0crND4+''@;'; + put 'put ''Ml09YVtIZSs0Pj4yXSxhW0crOD4+Ml09YVtIZSs4Pj4yXSxhW0crMTI+PjJdPWFbSGUrMTI+PjJdLEhlPTA9PSgwfFdGKEsscGUsRykpLEE9LjUqKFI/dzpBKSx3PStfW0xlPj4zXSxIZT8oX1tMZT4+M109dy1BLF9bKEhlPUxlKzh8MCk+PjNdPStfW0hlPj4zXSsuNSpiKTooX1tMZT4+M109''@;'; + put 'put ''dytBLF9bKEhlPUxlKzh8MCk+PjNdPStfW0hlPj4zXS0uNSpiKSxtPWYrMTZ8MCxhW2Y+PjJdPWFbYmU+PjJdLGFbZis0Pj4yXT1hW2JlKzQ+PjJdLGFbZis4Pj4yXT1hW2JlKzg+PjJdLGFbZisxMj4+Ml09YVtiZSsxMj4+Ml0sYVttPj4yXT1hW2JlPj4yXSxhW20rND4+Ml09YVtiZSs0Pj4y''@;'; + put 'put ''XSxhW20rOD4+Ml09YVtiZSs4Pj4yXSxhW20rMTI+PjJdPWFbYmUrMTI+PjJdLG09ZiszMnwwLEhlPWYrNDh8MCxhWyhiZT1mKzY0fDApPj4yXT1hW0xlPj4yXSxhW2JlKzQ+PjJdPWFbTGUrND4+Ml0sYVtiZSs4Pj4yXT1hW0xlKzg+PjJdLGFbYmUrMTI+PjJdPWFbTGUrMTI+PjJdLGFbSGU+''@;'; + put 'put ''PjJdPWFbTGU+PjJdLGFbSGUrND4+Ml09YVtMZSs0Pj4yXSxhW0hlKzg+PjJdPWFbTGUrOD4+Ml0sYVtIZSsxMj4+Ml09YVtMZSsxMj4+Ml0sYVttPj4yXT1hW0xlPj4yXSxhW20rND4+Ml09YVtMZSs0Pj4yXSxhW20rOD4+Ml09YVtMZSs4Pj4yXSxhW20rMTI+PjJdPWFbTGUrMTI+PjJdLG09''@;'; + put 'put ''Zis4MHwwLGFbKEhlPWYrOTZ8MCk+PjJdPWFbT2U+PjJdLGFbSGUrND4+Ml09YVtPZSs0Pj4yXSxhW0hlKzg+PjJdPWFbT2UrOD4+Ml0sYVtIZSsxMj4+Ml09YVtPZSsxMj4+Ml0sYVttPj4yXT1hW09lPj4yXSxhW20rND4+Ml09YVtPZSs0Pj4yXSxhW20rOD4+Ml09YVtPZSs4Pj4yXSxhW20r''@;'; + put 'put ''MTI+PjJdPWFbT2UrMTI+PjJdLG09N319d2hpbGUoMCk7cmV0dXJuIGxlPVJlLDB8bX0obCxidCwwfGFbNDY3MzRdLGxvKSxhW1JvPj4yXT1PZSwwIT0oMHxPZSkpPzYzOjE1O2U6ZG97aWYoMTU9PSgwfGN0KSl7c3Q9MTA9PSgwfHcpLGFbUm8+PjJdPTAsYj0wfGFbKDM9PSgwfChEPTMmYVti''@;'; + put 'put ''dD4+Ml0pKT9idDpidCs0OHwwKSs0MD4+Ml0sYVtsbz4+Ml09RD0wfGFbKDI9PSgwfEQpP2J0OmJ0Ky00OHwwKSs0MD4+Ml0sRzUoVmUsbCxjLGIsMCxidCksYVtEcj4+Ml09YVtWZT4+Ml0sYVtEcis0Pj4yXT1hW1ZlKzQ+PjJdLGFbRHIrOD4+Ml09YVtWZSs4Pj4yXSxhW0RyKzEyPj4yXT1h''@;'; + put 'put ''W1ZlKzEyPj4yXSxhW0RyKzE2Pj4yXT1hW1ZlKzE2Pj4yXSxhW0RyKzIwPj4yXT1hW1ZlKzIwPj4yXSxhW0RyKzI0Pj4yXT1hW1ZlKzI0Pj4yXSxhW0RyKzI4Pj4yXT1hW1ZlKzI4Pj4yXSxhW0xyPj4yXT1hW1ZlPj4yXSxhW0xyKzQ+PjJdPWFbVmUrND4+Ml0sYVtMcis4Pj4yXT1hW1ZlKzg+''@;'; + put 'put ''PjJdLGFbTHIrMTI+PjJdPWFbVmUrMTI+PjJdLGFbTHIrMTY+PjJdPWFbVmUrMTY+PjJdLGFbTHIrMjA+PjJdPWFbVmUrMjA+PjJdLGVEKGYsYnQsMSxEciwwfFdDKGIpKSxfWyhvdD1McisyNHwwKT4+M109K19bRHIrNTYrKChadD0oMHxhWyhudD1Ecis1MnwwKT4+Ml0pLTF8MCk8PDUpKzI0''@;'; + put 'put ''Pj4zXSxfWyhTdD1Mcis4fDApPj4zXT0rX1tEcis1NisoWnQ8PDUpKzg+PjNdLGs9K19bMjQrKFp0PTB8YVtiKzE2Pj4yXSk+PjNdLStfWygwfGFbMTk2KygwfGFbKGt0PWwrMTZ8MCk+PjJdKT4+Ml0pKyhhW1p0KzIzMj4+Ml08PDYpKzE2Pj4zXSxhW2ZyPj4yXT1hW0xyPj4yXSxhW2ZyKzQ+''@;'; + put 'put ''PjJdPWFbTHIrND4+Ml0sYVtmcis4Pj4yXT1hW0xyKzg+PjJdLGFbZnIrMTI+PjJdPWFbTHIrMTI+PjJdLGFbZnIrMTY+PjJdPWFbTHIrMTY+PjJdLGFbZnIrMjA+PjJdPWFbTHIrMjA+PjJdLGFbZnIrMjQ+PjJdPWFbTHIrMjQ+PjJdLGFbZnIrMjg+PjJdPWFbTHIrMjg+PjJdLFhBKHFlLGZy''@;'; + put 'put ''LDEsayksYVtMcj4+Ml09YVtxZT4+Ml0sYVtMcis0Pj4yXT1hW3FlKzQ+PjJdLGFbTHIrOD4+Ml09YVtxZSs4Pj4yXSxhW0xyKzEyPj4yXT1hW3FlKzEyPj4yXSxhW0xyKzE2Pj4yXT1hW3FlKzE2Pj4yXSxhW0xyKzIwPj4yXT1hW3FlKzIwPj4yXSxhW0xyKzI0Pj4yXT1hW3FlKzI0Pj4yXSxh''@;'; + put 'put ''W0xyKzI4Pj4yXT1hW3FlKzI4Pj4yXSwrX1tMcj4+M108K19bKHFlPUxyKzE2fDApPj4zXSYmK19bU3Q+PjNdPCtfW290Pj4zXSYmKGFbbnQ+PjJdPTErKFp0PTB8YVtudD4+Ml0pLGFbKFp0PURyKzU2KyhadDw8NSl8MCk+PjJdPWFbTHI+PjJdLGFbWnQrND4+Ml09YVtMcis0Pj4yXSxhW1p0''@;'; + put 'put ''Kzg+PjJdPWFbTHIrOD4+Ml0sYVtadCsxMj4+Ml09YVtMcisxMj4+Ml0sYVtadCsxNj4+Ml09YVtMcisxNj4+Ml0sYVtadCsyMD4+Ml09YVtMcisyMD4+Ml0sYVtadCsyND4+Ml09YVtMcisyND4+Ml0sYVtadCsyOD4+Ml09YVtMcisyOD4+Ml0pLExlPWwrNjB8MCxXZT1Kcis1MnwwLFJlPWYr''@;'; + put 'put ''NTZ8MCxIZT1mKzY5fDAsdz1mKzE2fDAsVmU9ZisyOXwwLFp0PWJ0LEc9MCxLPS0xO3Q6Zm9yKDs7KXtmb3IocGU9YixnZT0wLGI9MCxiZT1adDs7KXtpZihPZT1ELDEhPSgwfGZlWzE1NisoMHxhWyhSPUQpKzE2Pj4yXSk+PjBdKXx8KDB8X29bNjMmYVs0MzI1XV0oUikpPDwyND4+MjQpYnJl''@;'; + put 'put ''YWsgdDtpZihEPTF8Z2UseGk9MTUzNzIwKyhnZTw8NSl8MCxhSShhbixjLGwsMHxhWzIzMisoMHxhW3BlKzE2Pj4yXSk+PjJdKSxhW3hpPj4yXT1hW2FuPj4yXSxhW3hpKzQ+PjJdPWFbYW4rND4+Ml0sYVt4aSs4Pj4yXT1hW2FuKzg+PjJdLGFbeGkrMTI+PjJdPWFbYW4rMTI+PjJdLGFbeGkr''@;'; + put 'put ''MTY+PjJdPWFbYW4rMTY+PjJdLGFbeGkrMjA+PjJdPWFbYW4rMjA+PjJdLGFbeGkrMjQ+PjJdPWFbYW4rMjQ+PjJdLGFbeGkrMjg+PjJdPWFbYW4rMjg+PjJdLGJ8fChHPShiPSgwfChHPTB8ZDBlKFIpKSk8KDMrKGZlWzExMysoMHxhWzE2KygwfGFbTGU+PjJdKT4+Ml0pPj4wXTw8MSYyKSYy''@;'; + put 'put ''NTV8MCkpP0c6RystMnwwLEs9Yj9LOjEsYj0xJigxXmIpKSwhKDA9PSgwfGIpfCgwfEspPjApKWJyZWFrO3hpPTE1MzcyMCsoRDw8NSl8MCxHNShTbixsLGMsUixiZSwwfGFbYVsxODArKDB8YVtSKzE2Pj4yXSk+PjJdPj4yXSksYVt4aT4+Ml09YVtTbj4+Ml0sYVt4aSs0Pj4yXT1hW1NuKzQ+''@;'; + put 'put ''PjJdLGFbeGkrOD4+Ml09YVtTbis4Pj4yXSxhW3hpKzEyPj4yXT1hW1NuKzEyPj4yXSxhW3hpKzE2Pj4yXT1hW1NuKzE2Pj4yXSxhW3hpKzIwPj4yXT1hW1NuKzIwPj4yXSxhW3hpKzI0Pj4yXT1hW1NuKzI0Pj4yXSxhW3hpKzI4Pj4yXT1hW1NuKzI4Pj4yXSxwZT0wfGFbKDM9PSgwfChEPTMm''@;'; + put 'put ''YVsoeGk9MHxhW2FbMTgwKygwfGFbT2UrMTY+PjJdKT4+Ml0+PjJdKT4+Ml0pKT94aTp4aSs0OHwwKSs0MD4+Ml0sYVtsbz4+Ml09RD0wfGFbKDI9PSgwfEQpP3hpOnhpKy00OHwwKSs0MD4+Ml0sZ2U9Z2UrMnwwLEs9SystMXwwLGJlPXhpfWlmKEc1KEhuLGwsYyxSLGJlLDB8YVthWzE4MCso''@;'; + put 'put ''MHxhW1IrMTY+PjJdKT4+Ml0+PjJdKSxhW0pyPj4yXT1hW0huPj4yXSxhW0pyKzQ+PjJdPWFbSG4rND4+Ml0sYVtKcis4Pj4yXT1hW0huKzg+PjJdLGFbSnIrMTI+PjJdPWFbSG4rMTI+PjJdLGFbSnIrMTY+PjJdPWFbSG4rMTY+PjJdLGFbSnIrMjA+PjJdPWFbSG4rMjA+PjJdLGFbSnIrMjQ+''@;'; + put 'put ''PjJdPWFbSG4rMjQ+PjJdLGFbSnIrMjg+PjJdPWFbSG4rMjg+PjJdLHREKGYsYmUsMSxKciwwfFdDKDB8YVsoMj09KDMmYVtiZT4+Ml18MCk/YmU6YmUrLTQ4fDApKzQwPj4yXSkpLGs9K19bKDB8YVsxOTYrKDB8YVtrdD4+Ml0pPj4yXSkrKGFbMjMyKyhnZT0wfGFbT2UrMTY+PjJdKT4+Ml08''@;'; + put 'put ''PDYpKzI0Pj4zXSsgK19bZ2UrMjQ+PjNdLGFbZnI+PjJdPWFbKHhpPUpyKzU2KygoMHxhW1dlPj4yXSktMTw8NSl8MCk+PjJdLGFbZnIrND4+Ml09YVt4aSs0Pj4yXSxhW2ZyKzg+PjJdPWFbeGkrOD4+Ml0sYVtmcisxMj4+Ml09YVt4aSsxMj4+Ml0sYVtmcisxNj4+Ml09YVt4aSsxNj4+Ml0s''@;'; + put 'put ''YVtmcisyMD4+Ml09YVt4aSsyMD4+Ml0sYVtmcisyND4+Ml09YVt4aSsyND4+Ml0sYVtmcisyOD4+Ml09YVt4aSsyOD4+Ml0sWEEoTHIsZnIsNCxrKSwrX1tMcj4+M108K19bcWU+PjNdJiYrX1tTdD4+M108K19bb3Q+PjNdJiYoYVtXZT4+Ml09MSsoeGk9MHxhW1dlPj4yXSksYVsoeGk9SnIr''@;'; + put 'put ''NTYrKHhpPDw1KXwwKT4+Ml09YVtMcj4+Ml0sYVt4aSs0Pj4yXT1hW0xyKzQ+PjJdLGFbeGkrOD4+Ml09YVtMcis4Pj4yXSxhW3hpKzEyPj4yXT1hW0xyKzEyPj4yXSxhW3hpKzE2Pj4yXT1hW0xyKzE2Pj4yXSxhW3hpKzIwPj4yXT1hW0xyKzIwPj4yXSxhW3hpKzI0Pj4yXT1hW0xyKzI0Pj4y''@;'; + put 'put ''XSxhW3hpKzI4Pj4yXT1hW0xyKzI4Pj4yXSksX1tSZT4+M109MS41NzA3OTYzMjY3OTQ4OTY2LGZlW0hlPj4wXT0xLHlZKGYsWnQsYmUsRHIsSnIsRCksc3Q/KGI9MHxieShmLFZpKSxEPTB8YVtWaT4+Ml0sY3Q9MzMpOihiPTB8Z2soZixWaSksRXQmKDB8KEQ9MHxhW1ZpPj4yXSkpPjQ/KGFb''@;'; + put 'put ''KHhpPWIrMTZ8MCk+PjJdPWFbYj4+Ml0sYVt4aSs0Pj4yXT1hW2IrND4+Ml0sYVt4aSs4Pj4yXT1hW2IrOD4+Ml0sYVt4aSsxMj4+Ml09YVtiKzEyPj4yXSxhWyh4aT1iKzMyfDApPj4yXT1hWyhEPWIrKEQrLTE8PDQpfDApPj4yXSxhW3hpKzQ+PjJdPWFbRCs0Pj4yXSxhW3hpKzg+PjJdPWFb''@;'; + put 'put ''RCs4Pj4yXSxhW3hpKzEyPj4yXT1hW0QrMTI+PjJdLHIxKGIrNDh8MCwwfEQsMTYpLGFbVmk+PjJdPTQsRD00KTpjdD0zMyksMzM9PSgwfGN0KSYmKGN0PTAsIUQpKWJyZWFrIGU7Zm9yKCgwfChSPShiZT0wfGFbUm8+PjJdKStEfDApKT4oMHxhWzQ2NzM2XSk/KGFbNDY3MzZdPVI8PDEsZ2U9''@;'; + put 'put ''MHxWMCgwfGFbNDY3MzRdLFI8PDUpLGFbNDY3MzRdPWdlLEQ9MHxhW1ZpPj4yXSk6Z2U9MHxhWzQ2NzM0XSxwZT0wLFI9YmU7ISgoMHxwZSk+PSgwfEQpKTspYVsoeGk9Z2UrKFI8PDQpfDApPj4yXT1hWyhiZT1iKyhwZTw8NCl8MCk+PjJdLGFbeGkrND4+Ml09YVtiZSs0Pj4yXSxhW3hpKzg+''@;'; + put 'put ''PjJdPWFbYmUrOD4+Ml0sYVt4aSsxMj4+Ml09YVtiZSsxMj4+Ml0scGU9cGUrMXwwLFI9UisxfDA7YVtSbz4+Ml09UixEPTB8amwoMHxhW2FbMTgwKygwfGFbT2UrMTY+PjJdKT4+Ml0+PjJdLEcsZ2UsUm8pLHdZKFp0LGYpLGI9MHxhWygzPT0oMHwoUj0zJmFbRD4+Ml0pKT9EOkQrNDh8MCkr''@;'; + put 'put ''NDA+PjJdLGFbbG8+PjJdPVI9MHxhWygyPT0oMHxSKT9EOkQrLTQ4fDApKzQwPj4yXSxHNSh1cixsLGMsYiwwfGFbYVsxNzIrKDB8YVsoWnQ9YisxNnwwKT4+Ml0pPj4yXT4+Ml0sRCksYVtEcj4+Ml09YVt1cj4+Ml0sYVtEcis0Pj4yXT1hW3VyKzQ+PjJdLGFbRHIrOD4+Ml09YVt1cis4Pj4y''@;'; + put 'put ''XSxhW0RyKzEyPj4yXT1hW3VyKzEyPj4yXSxhW0RyKzE2Pj4yXT1hW3VyKzE2Pj4yXSxhW0RyKzIwPj4yXT1hW3VyKzIwPj4yXSxhW0RyKzI0Pj4yXT1hW3VyKzI0Pj4yXSxhW0RyKzI4Pj4yXT1hW3VyKzI4Pj4yXSxlRChmLEQsMSxEciwwfFdDKGIpKSxrPStfWzI0KyhadD0wfGFbWnQ+PjJd''@;'; + put 'put ''KT4+M10tK19bKDB8YVsxOTYrKDB8YVtrdD4+Ml0pPj4yXSkrKGFbWnQrMjMyPj4yXTw8NikrMTY+PjNdLGFbZnI+PjJdPWFbKHhpPURyKzU2KygoMHxhW250Pj4yXSktMTw8NSl8MCk+PjJdLGFbZnIrND4+Ml09YVt4aSs0Pj4yXSxhW2ZyKzg+PjJdPWFbeGkrOD4+Ml0sYVtmcisxMj4+Ml09''@;'; + put 'put ''YVt4aSsxMj4+Ml0sYVtmcisxNj4+Ml09YVt4aSsxNj4+Ml0sYVtmcisyMD4+Ml09YVt4aSsyMD4+Ml0sYVtmcisyND4+Ml09YVt4aSsyND4+Ml0sYVtmcisyOD4+Ml09YVt4aSsyOD4+Ml0sWEEoTHIsZnIsMSxrKSwrX1tMcj4+M108K19bcWU+PjNdJiYrX1tTdD4+M108K19bb3Q+PjNdJiYo''@;'; + put 'put ''YVtudD4+Ml09MSsoeGk9MHxhW250Pj4yXSksYVsoeGk9RHIrNTYrKHhpPDw1KXwwKT4+Ml09YVtMcj4+Ml0sYVt4aSs0Pj4yXT1hW0xyKzQ+PjJdLGFbeGkrOD4+Ml09YVtMcis4Pj4yXSxhW3hpKzEyPj4yXT1hW0xyKzEyPj4yXSxhW3hpKzE2Pj4yXT1hW0xyKzE2Pj4yXSxhW3hpKzIwPj4y''@;'; + put 'put ''XT1hW0xyKzIwPj4yXSxhW3hpKzI0Pj4yXT1hW0xyKzI0Pj4yXSxhW3hpKzI4Pj4yXT1hW0xyKzI4Pj4yXSksX1t3Pj4zXT0tMS41NzA3OTYzMjY3OTQ4OTY2LGZlW1ZlPj4wXT0xLFp0PUQsRD1SfWlmKGI9MXxnZSxLPTE1MzcyMCsoZ2U8PDUpfDAsYUkoSHIsYyxsLDB8YVsyMzIrKDB8YVtw''@;'; + put 'put ''ZSsxNj4+Ml0pPj4yXSksYVtLPj4yXT1hW0hyPj4yXSxhW0srND4+Ml09YVtIcis0Pj4yXSxhW0srOD4+Ml09YVtIcis4Pj4yXSxhW0srMTI+PjJdPWFbSHIrMTI+PjJdLGFbSysxNj4+Ml09YVtIcisxNj4+Ml0sYVtLKzIwPj4yXT1hW0hyKzIwPj4yXSxhW0srMjQ+PjJdPWFbSHIrMjQ+PjJd''@;'; + put 'put ''LGFbSysyOD4+Ml09YVtIcisyOD4+Ml0sRzUoRXIsbCxjLFIsYmUsMCksYVtKcj4+Ml09YVtFcj4+Ml0sYVtKcis0Pj4yXT1hW0VyKzQ+PjJdLGFbSnIrOD4+Ml09YVtFcis4Pj4yXSxhW0pyKzEyPj4yXT1hW0VyKzEyPj4yXSxhW0pyKzE2Pj4yXT1hW0VyKzE2Pj4yXSxhW0pyKzIwPj4yXT1h''@;'; + put 'put ''W0VyKzIwPj4yXSxhW0pyKzI0Pj4yXT1hW0VyKzI0Pj4yXSxhW0pyKzI4Pj4yXT1hW0VyKzI4Pj4yXSxhW0xyPj4yXT1hW0VyPj4yXSxhW0xyKzQ+PjJdPWFbRXIrND4+Ml0sYVtMcis4Pj4yXT1hW0VyKzg+PjJdLGFbTHIrMTI+PjJdPWFbRXIrMTI+PjJdLGFbTHIrMTY+PjJdPWFbRXIrMTY+''@;'; + put 'put ''PjJdLGFbTHIrMjA+PjJdPWFbRXIrMjA+PjJdLGFbTHIrMjQ+PjJdPWFbRXIrMjQ+PjJdLGFbTHIrMjg+PjJdPWFbRXIrMjg+PjJdLHBlPWJlKy00OHwwLHREKGYsKEs9MCE9KDB8TSkpP09pOmJlLDEsSnIsMHxXQygwfGFbKDI9PSgzJmFbYmU+PjJdfDApP2JlOnBlKSs0MD4+Ml0pKSxfW290''@;'; + put 'put ''Pj4zXT0rX1tKcis1NisoKHhpPSgwfGFbV2U+PjJdKS0xfDApPDw1KSsyND4+M10sX1tTdD4+M109K19bSnIrNTYrKHhpPDw1KSs4Pj4zXSxrPStfWygwfGFbMTk2KygwfGFba3Q+PjJdKT4+Ml0pKyhhWzIzMisoeGk9MHxhW09lKzE2Pj4yXSk+PjJdPDw2KSsyND4+M10rICtfW3hpKzI0Pj4z''@;'; + put 'put ''XSxhW2ZyPj4yXT1hW0xyPj4yXSxhW2ZyKzQ+PjJdPWFbTHIrND4+Ml0sYVtmcis4Pj4yXT1hW0xyKzg+PjJdLGFbZnIrMTI+PjJdPWFbTHIrMTI+PjJdLGFbZnIrMTY+PjJdPWFbTHIrMTY+PjJdLGFbZnIrMjA+PjJdPWFbTHIrMjA+PjJdLGFbZnIrMjQ+PjJdPWFbTHIrMjQ+PjJdLGFbZnIr''@;'; + put 'put ''Mjg+PjJdPWFbTHIrMjg+PjJdLFhBKGwwLGZyLDQsayksYVtMcj4+Ml09YVtsMD4+Ml0sYVtMcis0Pj4yXT1hW2wwKzQ+PjJdLGFbTHIrOD4+Ml09YVtsMCs4Pj4yXSxhW0xyKzEyPj4yXT1hW2wwKzEyPj4yXSxhW0xyKzE2Pj4yXT1hW2wwKzE2Pj4yXSxhW0xyKzIwPj4yXT1hW2wwKzIwPj4y''@;'; + put 'put ''XSxhW0xyKzI0Pj4yXT1hW2wwKzI0Pj4yXSxhW0xyKzI4Pj4yXT1hW2wwKzI4Pj4yXSwrX1tMcj4+M108K19bcWU+PjNdJiYrX1tTdD4+M108K19bb3Q+PjNdJiYoYVtXZT4+Ml09MSsoeGk9MHxhW1dlPj4yXSksYVsoeGk9SnIrNTYrKHhpPDw1KXwwKT4+Ml09YVtMcj4+Ml0sYVt4aSs0Pj4y''@;'; + put 'put ''XT1hW0xyKzQ+PjJdLGFbeGkrOD4+Ml09YVtMcis4Pj4yXSxhW3hpKzEyPj4yXT1hW0xyKzEyPj4yXSxhW3hpKzE2Pj4yXT1hW0xyKzE2Pj4yXSxhW3hpKzIwPj4yXT1hW0xyKzIwPj4yXSxhW3hpKzI0Pj4yXT1hW0xyKzI0Pj4yXSxhW3hpKzI4Pj4yXT1hW0xyKzI4Pj4yXSkseVkoZixadCxi''@;'; + put 'put ''ZSxEcixKcixiKSxHPXN0PzB8YnkoZixWaSk6MHxnayhmLFZpKSxFdCYoMHwoYj0wfGFbVmk+PjJdKSk+NClhWyh4aT1HKzE2fDApPj4yXT1hW0c+PjJdLGFbeGkrND4+Ml09YVtHKzQ+PjJdLGFbeGkrOD4+Ml09YVtHKzg+PjJdLGFbeGkrMTI+PjJdPWFbRysxMj4+Ml0sYVsoeGk9RyszMnww''@;'; + put 'put ''KT4+Ml09YVsoYj1HKyhiKy0xPDw0KXwwKT4+Ml0sYVt4aSs0Pj4yXT1hW2IrND4+Ml0sYVt4aSs4Pj4yXT1hW2IrOD4+Ml0sYVt4aSsxMj4+Ml09YVtiKzEyPj4yXSxyMShHKzQ4fDAsMHxiLDE2KSxhW1ZpPj4yXT00LGI9NDtlbHNlIGlmKCFiKWJyZWFrO2ZvcigoMHwoTT0oRD0wfGFbUm8+''@;'; + put 'put ''PjJdKStifDApKT4oMHxhWzQ2NzM2XSk/KGFbNDY3MzZdPU08PDEsUj0wfFYwKDB8YVs0NjczNF0sTTw8NSksYVs0NjczNF09UixiPTB8YVtWaT4+Ml0pOlI9MHxhWzQ2NzM0XSxNPTA7ISgoMHxNKT49KDB8YikpOylhWyh4aT1SKyhEPDw0KXwwKT4+Ml09YVsoVmk9RysoTTw8NCl8MCk+PjJd''@;'; + put 'put ''LGFbeGkrND4+Ml09YVtWaSs0Pj4yXSxhW3hpKzg+PjJdPWFbVmkrOD4+Ml0sYVt4aSsxMj4+Ml09YVtWaSsxMj4+Ml0sTT1NKzF8MCxEPUQrMXwwO2FbUm8+PjJdPUQsd1koWnQsZiksYVtsbz4+Ml09YVsoYj1LPzI9PSgzJmFbT2k+PjJdfDApP09pOk9pKy00OHwwOjI9PSgzJmFbYmU+PjJd''@;'; + put 'put ''fDApP2JlOnBlKSs0MD4+Ml0sT2U9RCxjdD02M319d2hpbGUoMCk7ZTpkb3tpZig2Mz09KDB8Y3QpKXtpZigxPT0oMHxBKSl7QXUoYnQsMHxhW2xvPj4yXSwwfGFbNDY3MzRdLE9lLDE3Mjk2KTticmVha31mb3IoYmU9T2UrLTF8MCxrPSsoMHwoMHxBcigwfGFbKGdlPWMrMTJ8MCk+PjJdLEEr''@;'; + put 'put ''LTF8MCkpLzIpLE09MHxhWzQ2NzM0XSxiPTE7ISgoMHxiKT49KDB8YmUpKTspX1soeGk9TSsoYjw8NCl8MCk+PjNdPStfW3hpPj4zXS1rLGI9YisxfDA7Zm9yKCgwfChiPTB8YVs0NjczNl0pKT4oMHxhWzQ2NzM3XSk/KGFbNDY3MzddPWIsRD0wfFYwKDB8YVs0NjczNV0sYjw8NCksYVs0Njcz''@;'; + put 'put ''NV09RCxNPTB8YVs0NjczNF0pOkQ9MHxhWzQ2NzM1XSxiPTA7ISgoMHxiKT49KDB8T2UpKTspYVsoeGk9RCsoYjw8NCl8MCk+PjJdPWFbKGM9TSsoYjw8NCl8MCk+PjJdLGFbeGkrND4+Ml09YVtjKzQ+PjJdLGFbeGkrOD4+Ml09YVtjKzg+PjJdLGFbeGkrMTI+PjJdPWFbYysxMj4+Ml0sYj1i''@;'; + put 'put ''KzF8MDtmb3IoQXUoYnQsMHxhW2xvPj4yXSxELE9lLDE3Mjk2KSxLPVRhKzQ4fDAscGU9VGErLTQ4fDAsRz0xOzspe2lmKCgwfEcpPj0oMHxBKSlicmVhayBlO2lmKDMyJmFbMTY0KyhiPTB8YVsoUj0xNisoRD0wfGFbcCsoRyttPDwyKT4+Ml0pfDApPj4yXSk+PjJdKXtnbygwfChNPTB8YVtq''@;'; + put 'put ''YT4+Ml0pLDB8YiwxNzYpLFJlPUQsSGU9KExlPVRhKSs0OHwwO2Rve2FbTGU+PjJdPWFbUmU+PjJdLExlPUxlKzR8MCxSZT1SZSs0fDB9d2hpbGUoKDB8TGUpPCgwfEhlKSk7YVtqYT4+Ml09TSxhWygzPT0oMHwoTGU9MyZhW1RhPj4yXSkpP1RhOkspKzQwPj4yXT1hWygyPT0oMyZhW0Q+PjJd''@;'; + put 'put ''fDApP0Q6RCstNDh8MCkrNDA+PjJdLGFbKDI9PSgwfExlKT9UYTpwZSkrNDA+PjJdPWFbKDM9PSgzJmFbRD4+Ml18MCk/RDpEKzQ4fDApKzQwPj4yXSxSZT01NisoMHxhW1I+PjJdKXwwLEhlPTQwKyhMZT1NKzE2fDApfDA7ZG97YVtMZT4+Ml09YVtSZT4+Ml0sTGU9TGUrNHwwLFJlPVJlKzR8''@;'; + put 'put ''MH13aGlsZSgoMHxMZSk8KDB8SGUpKTtSZT0xNisoMHxhW1I+PjJdKXwwLEhlPTQwKyhMZT01NisoYj0wfGFbamE+PjJdKXwwKXwwO2Rve2FbTGU+PjJdPWFbUmU+PjJdLExlPUxlKzR8MCxSZT1SZSs0fDB9d2hpbGUoKDB8TGUpPCgwfEhlKSk7ZmVbYisxMTI+PjBdPTEsYVtiKzExNj4+Ml09''@;'; + put 'put ''RCxEPVRhfWZvcihSPTB8YVs0NjczNF0sYj0xOyEoKDB8Yik+PSgwfGJlKSk7KV9bKHhpPVIrKGI8PDQpfDApPj4zXT0rX1t4aT4+M10rICsoMHxhW2dlPj4yXSksYj1iKzF8MDtmb3IoTT0wfGFbNDY3MzVdLGI9MDshKCgwfGIpPj0oMHxPZSkpOylhWyh4aT1NKyhiPDw0KXwwKT4+Ml09YVso''@;'; + put 'put ''bG89UisoYjw8NCl8MCk+PjJdLGFbeGkrND4+Ml09YVtsbys0Pj4yXSxhW3hpKzg+PjJdPWFbbG8rOD4+Ml0sYVt4aSsxMj4+Ml09YVtsbysxMj4+Ml0sYj1iKzF8MDtBdShELDB8YVsoMj09KDMmYVtEPj4yXXwwKT9EOkQrLTQ4fDApKzQwPj4yXSxNLE9lLDE3Mjk2KSxHPUcrMXwwfX19d2hp''@;'; + put 'put ''bGUoMCk7bGU9Z2F9ZnVuY3Rpb24gQVkobCl7dmFyIGM9MCxmPTAscD0wO2ZvcihjPTB8RHQobHw9MCk7Yzspe2ZvcihmPTB8dzAobCxjKTtmOykoMHxfb1s2MyZhWzQzMjRdXShmKSk8PDI0Pj4yNCYmMHwocD0wfGFbOCsoMHxhW2YrMTY+PjJdKT4+Ml0pJiZjMGUocCksZj0wfFMwKGwsZik7''@;'; + put 'put ''Yz0wfHp0KGwsYyl9fWZ1bmN0aW9uIGMwZShsKXt2YXIgbSxBLGM9MCxmPTAscD0wO2ZvcihjPUE9MHxRbig0OCoobT0wfGFbNCsobHw9MCk+PjJdKXwwKSxmPTAscD0oMHxhW2w+PjJdKSsoNDgqKG0rLTF8MCl8MCl8MDs7KXtpZigoMHxmKT49KDB8bSkpe2M9MDticmVha31mMGUocCxjKSxj''@;'; + put 'put ''PWMrNDh8MCxmPWYrMXwwLHA9cCstNDh8MH1mb3IoO2Y9MHxhW2w+PjJdLCEoKDB8Yyk+PSgwfG0pKTspRnQoMHxhW2YrKDQ4KmN8MCk+PjJdKSxjPWMrMXwwO0Z0KGYpLGFbbD4+Ml09QX1mdW5jdGlvbiBmMGUobCxjKXtjfD0wO3ZhciBmPTAscD0wLG09MCxBPTAsdz0wO2ZvcihmPXc9MHxR''@;'; + put 'put ''bigoQT0wfGFbNCsobHw9MCk+PjJdKTw8NCkscD0wLG09KDB8YVtsPj4yXSkrKEErLTE8PDQpfDA7ISgoMHxwKT49KDB8QSkpOylhW2Y+PjJdPWFbbT4+Ml0sYVtmKzQ+PjJdPWFbbSs0Pj4yXSxhW2YrOD4+Ml09YVttKzg+PjJdLGFbZisxMj4+Ml09YVttKzEyPj4yXSxmPWYrMTZ8MCxwPXAr''@;'; + put 'put ''MXwwLG09bSstMTZ8MDthW2M+PjJdPXcsYVtjKzQ+PjJdPUEsYVtjKzg+PjJdPWFbbCsxMj4+Ml0sYVtjKzEyPj4yXT1hW2wrOD4+Ml0sYVsodz1jKzE2fDApPj4yXT1hWyhBPWwrMzJ8MCk+PjJdLGFbdys0Pj4yXT1hW0ErND4+Ml0sYVt3Kzg+PjJdPWFbQSs4Pj4yXSxhW3crMTI+PjJdPWFb''@;'; + put 'put ''QSsxMj4+Ml0sYVsodz1jKzMyfDApPj4yXT1hWyhBPWwrMTZ8MCk+PjJdLGFbdys0Pj4yXT1hW0ErND4+Ml0sYVt3Kzg+PjJdPWFbQSs4Pj4yXSxhW3crMTI+PjJdPWFbQSsxMj4+Ml19ZnVuY3Rpb24gRzUobCxjLGYscCxtLEEpe2x8PTAsZnw9MDt2YXIgdz0wLGI9MCxrPTAsTT0wLEQ9MCxS''@;'; + put 'put ''PTAsRz0wLEs9MDtpZihNPSh3PShHPStfWzE2KyhLPTB8YVsxNisocHw9MCk+PjJdKT4+M10pLStfW0srODg+PjNdKS00LGs9MHx6RihjfD0wLHAsbXw9MCxBfD0wLC0xKSl7Yj0wfEdGKGMscCxrKTtkb3tpZighYil7aWYodz0rX1syNDArKEQ9MHxhW2srMTY+PjJdKT4+M10rICtfW0QrMTY+''@;'; + put 'put ''PjNdLDB8ZmVbRCsxNTY+PjBdKXt3Kz0rKDB8YVtmKzg+PjJdKTticmVha313PS41KisoMHxhWzI0OCsoMHxhW2MrMTY+PjJdKT4+Ml0pK3c7YnJlYWt9dz0rX1szMisoMHxhW2IrMTY+PjJdKT4+M10rICsoMHxhW2YrOD4+Ml0pfXdoaWxlKDApO2I9fn4oKFI9dzxNP3c6TSkrKFI+PTA/LjU6''@;'; + put 'put ''LS41KSl9ZWxzZSBiPSgwfChiPTB8YVtmPj4yXSkpPigwfChEPX5+KHcrKE0+PTA/LTMuNTotNC41KSkpKT9EOmI7aWYoUj0rKDB8YiksTT0oRD0xPT0oMHxmZVtLKzE1Nj4+MF0pKSYmMCE9KDB8YVtLKzEwND4+Ml0pP0crMTA6Rys0KyArX1tLKzk2Pj4zXSxrPTB8ekYoYyxwLG0sQSwxKSl7''@;'; + put 'put ''Yj0wfEdGKGMscCxrKTtkb3tpZighYil7aWYodz0rX1sxNisocD0wfGFbaysxNj4+Ml0pPj4zXS0rX1twKzg4Pj4zXSwwfGZlW3ArMTU2Pj4wXSl7dy09KygwfGFbZis4Pj4yXSk7YnJlYWt9dy09LjUqKygwfGFbMjQ4KygwfGFbYysxNj4+Ml0pPj4yXSk7YnJlYWt9dz0rX1sxNisoMHxhW2Ir''@;'; + put 'put ''MTY+PjJdKT4+M10tKygwfGFbZis4Pj4yXSl9d2hpbGUoMCk7Yj1+figoTT13Pk0/dzpNKSsoTT49MD8uNTotLjUpKX1lbHNlIGI9KDB8KGI9MHxhW2YrND4+Ml0pKTwoMHwocD1+fihNKyhNPj0wPy41Oi0uNSkpKSk/cDpiO3c9KygwfGIpLEQmJjAhPSgwfGFbSysxMDQ+PjJdKSYmKHctPStf''@;'; + put 'put ''W0srOTY+PjNdKTxSJiYodz1HKSxNPShHPStfW0srMjQ+PjNdKS0rX1soYz0wfGFbMTk2KygwfGFbYysxNj4+Ml0pPj4yXSkrKChLPTB8YVtLKzIzMj4+Ml0pPDw2KSsxNj4+M10sRz0rX1tjKyhLPDw2KSsyND4+M10rRyxfW2w+PjNdPVIsX1tsKzg+PjNdPU0sX1tsKzE2Pj4zXT13LF9bbCsy''@;'; + put 'put ''ND4+M109R31mdW5jdGlvbiBXQyhsKXtyZXR1cm4gMHwoMT09KDB8ZmVbMTU2KyhsPTB8YVsxNisobHw9MCk+PjJdKT4+MF0pPygwfGFbbCsxNzY+PjJdKT4xPzE6KDB8YVtsKzE4ND4+Ml0pPjEmMTowKX1mdW5jdGlvbiBYQShsLGMsZixwKXt2YXIgbSxBO3N3aXRjaChsfD0wLGN8PTAscD0r''@;'; + put 'put ''cCxBPWxlLGxlPWxlKzMyfDAsbT1BLDB8KGZ8PTApKXtjYXNlIDE6WkYobSwrX1tjPj4zXSxwLCtfW2MrMTY+PjNdLCtfW2MrOD4+M10pO2JyZWFrO2Nhc2UgNDpaRihtLCtfW2M+PjNdLCtfW2MrMjQ+PjNdLCtfW2MrMTY+PjNdLHApfWFbbD4+Ml09YVttPj4yXSxhW2wrND4+Ml09YVttKzQ+''@;'; + put 'put ''PjJdLGFbbCs4Pj4yXT1hW20rOD4+Ml0sYVtsKzEyPj4yXT1hW20rMTI+PjJdLGFbbCsxNj4+Ml09YVttKzE2Pj4yXSxhW2wrMjA+PjJdPWFbbSsyMD4+Ml0sYVtsKzI0Pj4yXT1hW20rMjQ+PjJdLGFbbCsyOD4+Ml09YVttKzI4Pj4yXSxsZT1BfWZ1bmN0aW9uIGFJKGwsYyxmLHApe2x8PTAs''@;'; + put 'put ''Znw9MDt2YXIgayxELFIsbT0wLEE9MCx3PTAsYj0wLE09MCxHPTA7az0oTT0wfGFbMTYrKGN8PTApPj4yXSkrKChwfD0wKTw8NSl8MCxBPStfWyhEPU0rKHA8PDUpKzh8MCk+PjNdLFI9TSsocDw8NSkrMTZ8MCx3PStfWyhNPU0rKHA8PDUpKzI0fDApPj4zXSwoYj0rX1trPj4zXSk9PShtPStf''@;'; + put 'put ''W1I+PjNdKSYmKEE9K19bKGY9MHxhWzE5NisoMHxhW2YrMTY+PjJdKT4+Ml0pKygoRz1wKzF8MCk8PDYpKzI0Pj4zXSsgK19bMjQrKDB8YVsxNisoMHxhW2FbZisoRzw8NikrND4+Ml0+PjJdKT4+Ml0pPj4zXSxtPSsoMHxhW2MrND4+Ml0pLHc9K19bMjQrKDB8YVsxNisoMHxhW2FbZisocDw8''@;'; + put 'put ''NikrND4+Ml0+PjJdKT4+Ml0pPj4zXS0rX1tmKyhwPDw2KSsxNj4+M10sX1trPj4zXT1iPSsoMHxhW2M+PjJdKSxfW0Q+PjNdPUEsX1tSPj4zXT1tLF9bTT4+M109dyksX1tsPj4zXT1iLF9bbCs4Pj4zXT1BLF9bbCsxNj4+M109bSxfW2wrMjQ+PjNdPXd9ZnVuY3Rpb24gZDBlKGwpe3ZhciBm''@;'; + put 'put ''LGM9MDtmb3IoZj0xNisobD0wfGFbMTYrKGx8PTApPj4yXSl8MCxjPTA7MT09KDB8ZmVbMTU2KyhsPTB8YVsxNisoMHxhWygyPT0oMyZhWyhsPTB8YVthW2wrMTgwPj4yXT4+Ml0pPj4yXXwwKT9sOmwrLTQ4fDApKzQwPj4yXSk+PjJdKT4+MF0pJiYxPT0oMHxhW2wrMTg0Pj4yXSkmJjE9PSgw''@;'; + put 'put ''fGFbbCsxNzY+PjJdKSYmK19bbCsxNj4+M109PStfW2Y+PjNdOyljPWMrMXwwO3JldHVybiAwfGN9ZnVuY3Rpb24geVkobCxjLGYscCxtLEEpe2x8PTAsZnw9MCxwfD0wLG18PTAsQXw9MDt2YXIgayxNLHc9MCxiPTA7TT1sZSxsZT1sZSszMnwwLGs9TSx3PTB8YlkoY3w9MCwtMSksYz0wfGJZ''@;'; + put 'put ''KGMsMSksMCE9KDB8dykmJiEoMHxUNyh3KSl8fChiPTMpO2Rve2lmKDM9PSgwfGIpKXtpZigwfGMmJjA9PSgwfFQ3KGMpKXx8KHc9MHxfWShmLC0xKSxjPTB8X1koZiwxKSwwfHcmJjA9PSgwfFQ3KHcpKSl8fDB8YyYmMD09KDB8VDcoYykpKWJyZWFrO2Zvcih3PXArNTJ8MCxjPTA7ISgoMHxj''@;'; + put 'put ''KT49KDB8YVt3Pj4yXSkpOylhW2s+PjJdPWFbKGY9cCs1NisoYzw8NSl8MCk+PjJdLGFbays0Pj4yXT1hW2YrND4+Ml0sYVtrKzg+PjJdPWFbZis4Pj4yXSxhW2srMTI+PjJdPWFbZisxMj4+Ml0sYVtrKzE2Pj4yXT1hW2YrMTY+PjJdLGFbaysyMD4+Ml09YVtmKzIwPj4yXSxhW2srMjQ+PjJd''@;'; + put 'put ''PWFbZisyND4+Ml0sYVtrKzI4Pj4yXT1hW2YrMjg+PjJdLFgzKGwsayksYz1jKzF8MDtmb3Iodz0wfGFbbCs4MD4+Ml0sYj1BKy0zfDAsYz0wOyEoKDB8Yyk+PSgwfEEpKTspYVtrPj4yXT1hWyhwPTE1MzcyMCsoYzw8NSl8MCk+PjJdLGFbays0Pj4yXT1hW3ArND4+Ml0sYVtrKzg+PjJdPWFb''@;'; + put 'put ''cCs4Pj4yXSxhW2srMTI+PjJdPWFbcCsxMj4+Ml0sYVtrKzE2Pj4yXT1hW3ArMTY+PjJdLGFbaysyMD4+Ml09YVtwKzIwPj4yXSxhW2srMjQ+PjJdPWFbcCsyND4+Ml0sYVtrKzI4Pj4yXT1hW3ArMjg+PjJdLFgzKGwsayksYz1jKzF8MDtmb3IoYj1iKyhmPXcrMXwwKXwwLHc9MHxhW20rNTI+''@;'; + put 'put ''PjJdO2M9dystMXwwLCEoKDB8dyk8PTApOylhW2s+PjJdPWFbKHc9bSs1NisoYzw8NSl8MCk+PjJdLGFbays0Pj4yXT1hW3crND4+Ml0sYVtrKzg+PjJdPWFbdys4Pj4yXSxhW2srMTI+PjJdPWFbdysxMj4+Ml0sYVtrKzE2Pj4yXT1hW3crMTY+PjJdLGFbaysyMD4+Ml09YVt3KzIwPj4yXSxh''@;'; + put 'put ''W2srMjQ+PjJdPWFbdysyND4+Ml0sYVtrKzI4Pj4yXT1hW3crMjg+PjJdLFgzKGwsayksdz1jO2xwKGwsZixiKX19d2hpbGUoMCk7bGU9TX1mdW5jdGlvbiBqbChsLGMsZixwKXtsfD0wLGN8PTAsZnw9MDt2YXIgQSxtPTA7Zm9yKG09MHxhWyhwfD0wKT4+Ml07YzspbD0wfGFbYVsxODArKDB8''@;'; + put 'put ''YVsxNisoMHxhWygyPT0oMyZhW2w+PjJdfDApP2w6bCstNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXT4+Ml0sYz1jKy0xfDA7cmV0dXJuIGFbcD4+Ml09bSsxLGFbKEE9ZisobTw8NCl8MCk+PjJdPWFbKGM9ZisobSstMTw8NCl8MCk+PjJdLGFbQSs0Pj4yXT1hW2MrND4+Ml0sYVtBKzg+PjJdPWFb''@;'; + put 'put ''Yys4Pj4yXSxhW0ErMTI+PjJdPWFbYysxMj4+Ml0sYVtwPj4yXT0xKyhtPTB8YVtwPj4yXSksYVsobT1mKyhtPDw0KXwwKT4+Ml09YVtjPj4yXSxhW20rND4+Ml09YVtjKzQ+PjJdLGFbbSs4Pj4yXT1hW2MrOD4+Ml0sYVttKzEyPj4yXT1hW2MrMTI+PjJdLGFbKG09ZisoYVtwPj4yXTw8NCl8''@;'; + put 'put ''MCk+PjJdPWFbKHA9MTYrKDB8YVsxNisoMHxhWygzPT0oMyZhW2w+PjJdfDApP2w6bCs0OHwwKSs0MD4+Ml0pPj4yXSl8MCk+PjJdLGFbbSs0Pj4yXT1hW3ArND4+Ml0sYVttKzg+PjJdPWFbcCs4Pj4yXSxhW20rMTI+PjJdPWFbcCsxMj4+Ml0sMHxsfWZ1bmN0aW9uIHdZKGwsYyl7dmFyIGss''@;'; + put 'put ''TSxmPTAscD0wLG09MCxBPTAsdz0wLGI9MDtNPTg0KyhjfD0wKXwwLGs9Yys4MHwwLGY9MCxjPWx8PTA7ZTpmb3IoO3c9MHxhWygyPT0oMyZhW2M+PjJdfDApP2M6YystNDh8MCkrNDA+PjJdLGI9dysxNnwwLCEoMSE9KDB8ZmVbMTU2KygwfGFbYj4+Ml0pPj4wXSl8fCgwfF9vWzYzJmFbNDMy''@;'; + put 'put ''NV1dKHcpKTw8MjQ+PjI0KTspe2ZvcihjPTB8YVtrPj4yXTs7KXtpZigoMHxmKT49KDB8YykpYnJlYWsgZTtpZighKCtfWygwfGFbTT4+Ml0pKyhmPDw1KSs4Pj4zXT4rX1syNCsoMHxhW2I+PjJdKT4+M10pKWJyZWFrO2Y9ZisxfDB9Yz0wfGFbTT4+Ml0sbD0wfGFbYj4+Ml07ZG97aWYoISgr''@;'; + put 'put ''X1tjKyhmPDw1KSsyND4+M108K19bbCsyND4+M10pKXtpZihBPX5+KG09K19bYysoZjw8NSk+PjNdKSxwPStfW2MrKGY8PDUpKzE2Pj4zXSwwfGFbbCsxMDQ+PjJdKXtkNyh3LEEsfn5wLH5+KCtfW2wrOTY+PjNdK3ApKTticmVha31kNyh3LEEsfn4oLjUqKHArbSkpLH5+cCk7YnJlYWt9fXdo''@;'; + put 'put ''aWxlKDApO2M9MHxhW2FbMTgwKygwfGFbYj4+Ml0pPj4yXT4+Ml19fWZ1bmN0aW9uIGQ3KGwsYyxmLHApe2N8PTAscHw9MCxfWzE2KyhsPTB8YVsxNisobHw9MCk+PjJdKT4+M109KygwfChmfD0wKSksX1tsKzg4Pj4zXT0rKGYtY3wwKSxfW2wrOTY+PjNdPSsocC1mfDApfWZ1bmN0aW9uIGJZ''@;'; + put 'put ''KGwsYyl7Y3w9MDt2YXIgYixmPTAscD0wLG09MCxBPTAsdz0wO2ZvcihiPTB8YVsxODArKDB8YVsxNisoMHxhWygzPT0oMHwodz0zJmFbKGx8PTApPj4yXSkpP2w6bCs0OHwwKSs0MD4+Ml0pPj4yXSk+PjJdLHc9KDI9PSgwfHcpP2w6bCstNDh8MCkrNDB8MCxBPTAsbD0wO3A9MHxhW2IrKEE8''@;'; + put 'put ''PDIpPj4yXTspe209MHxhWzIzNisoMHxhWzE2KygwfGFbKDI9PSgzJmFbcD4+Ml18MCk/cDpwKy00OHwwKSs0MD4+Ml0pPj4yXSk+PjJdO2Rve2lmKCgwfEFyKG0tKDB8YVsyMzYrKDB8YVsxNisoMHxhW3c+PjJdKT4+Ml0pPj4yXSl8MCxjKSk+PTEpe2lmKCEoMHxhWzgrKGY9MHxhW3ArMTY+''@;'; + put 'put ''PjJdKT4+Ml0pJiYhKChmPTB8YVtmKzExNj4+Ml0pJiYwfGFbOCsoMHxhW2YrMTY+PjJdKT4+Ml0pfHwwfGwmJigwfEFyKCgwfGFbMjM2KygwfGFbMTYrKDB8YVsoMj09KDMmYVtsPj4yXXwwKT9sOmwrLTQ4fDApKzQwPj4yXSk+PjJdKT4+Ml0pLW18MCxjKSk8PTApYnJlYWs7bD1wfX13aGls''@;'; + put 'put ''ZSgwKTtBPUErMXwwfXJldHVybiAwfGx9ZnVuY3Rpb24gX1kobCxjKXtjfD0wO3ZhciBiLGY9MCxwPTAsbT0wLEE9MCx3PTA7Zm9yKGI9MHxhWzE3MisoMHxhWzE2KygwfGFbKDI9PSgwfCh3PTMmYVsobHw9MCk+PjJdKSk/bDpsKy00OHwwKSs0MD4+Ml0pPj4yXSk+PjJdLHc9KDM9PSgwfHcp''@;'; + put 'put ''P2w6bCs0OHwwKSs0MHwwLEE9MCxsPTA7cD0wfGFbYisoQTw8Mik+PjJdOyl7bT0wfGFbMjM2KygwfGFbMTYrKDB8YVsoMz09KDMmYVtwPj4yXXwwKT9wOnArNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXTtkb3tpZigoMHxBcihtLSgwfGFbMjM2KygwfGFbMTYrKDB8YVt3Pj4yXSk+PjJdKT4+Ml0p''@;'; + put 'put ''fDAsYykpPj0xKXtpZighKDB8YVs4KyhmPTB8YVtwKzE2Pj4yXSk+PjJdKSYmISgoZj0wfGFbZisxMTY+PjJdKSYmMHxhWzgrKDB8YVtmKzE2Pj4yXSk+PjJdKXx8MHxsJiYoMHxBcigoMHxhWzIzNisoMHxhWzE2KygwfGFbKDM9PSgzJmFbbD4+Ml18MCk/bDpsKzQ4fDApKzQwPj4yXSk+PjJd''@;'; + put 'put ''KT4+Ml0pLW18MCxjKSk8PTApYnJlYWs7bD1wfX13aGlsZSgwKTtBPUErMXwwfXJldHVybiAwfGx9ZnVuY3Rpb24gbHAobCxjLGYpe2Z8PTA7dmFyIGssTSxwPTAsbT0wLEE9MCx3PTAsYj0wLEQ9MDtmb3IoTT04NCsobHw9MCl8MCx3PShjfD0wKS0xfDA7ISgoMHx3KT4oMHxmKSk7KXA9K19b''@;'; + put 'put ''KGI9KG09MHxhW00+PjJdKSsodzw8NSl8MCk+PjNdLHctYyYxPyhBPX5+KC41KigoRD0rX1sobT1tKyh3PDw1KSsxNnwwKT4+M10pK3ApKSxwKzE2PkQmJihfW2I+PjNdPSsoQSstOHwwKSxfW20+PjNdPSsoQSs4fDApKSk6KEE9fn4oLjUqKChEPStfWyhtPW0rKHc8PDUpKzE2fDApPj4zXSkr''@;'; + put 'put ''cCkpLHA+PUQmJihfW2I+PjNdPSsoQSstOHwwKSxfW20+PjNdPSsoQSs4fDApKSksdz13KzF8MDtmb3Ioaz0oMHxhW2wrODA+PjJdKS0xfDAsQT0wOyEoKDB8QSk+PSgwfGspKTspaWYobT0odz0wfGFbTT4+Ml0pKyhBPDw1KXwwLGw9dysoKGI9QSsxfDApPDw1KXwwLCgwfEEpPCgwfGMpfCgw''@;'; + put 'put ''fEEpPigwfGYpfHwwIT0oQS1jJjF8MCkpKDB8QSk8KDB8ZikmKDB8Yik+PSgwfGMpP2ItYyYxfDA/QT1iOigrX1ttPj4zXSsxNj4ocD0rX1t3KyhiPDw1KSsxNj4+M10pJiYoX1ttPj4zXT1wKy0xNiksK19bKG09dysoQTw8NSkrMTZ8MCk+PjNdLTE2PChwPStfW2w+PjNdKT8oX1ttPj4zXT1w''@;'; + put 'put ''KzE2LEE9Yik6QT1iKTpBPWI7ZWxzZXtpZigocD0rX1ttPj4zXSsxNik+K19bKG09dysoYjw8NSkrMTZ8MCk+PjNdJiYoX1ttPj4zXT1wKSwhKChwPStfW3crKEE8PDUpKzE2Pj4zXS0xNik8K19bbD4+M10pKXtBPWI7Y29udGludWV9X1tsPj4zXT1wLEE9Yn19ZnVuY3Rpb24gWkYobCxjLGYs''@;'; + put 'put ''cCxtKXtmPStmLHA9K3AsbT0rbSxfWyhsfD0wKT4+M109Yz0rYyxfW2wrOD4+M109ZixfW2wrMTY+PjNdPXAsX1tsKzI0Pj4zXT1tfWZ1bmN0aW9uIHpGKGwsYyxmLHAsbSl7Znw9MCxwfD0wLG18PTA7dmFyIHcsQT0wLGI9MCxrPTA7dz0oaz0wfGFbMTk2KygwfGFbMTYrKGx8PTApPj4yXSk+''@;'; + put 'put ''PjJdKSsoKGI9MHxhWzIzMisoQT0wfGFbMTYrKGN8PTApPj4yXSk+PjJdKTw8Nil8MCxiPWsrKGI8PDYpKzR8MCxBPTB8YVtBKzIzNj4+Ml07ZTpkb3tpZigoMHwoQT1BK218MCkpPD0tMSl7bD0wO2JyZWFrfWlmKCgwfEEpPj0oMHxhW3c+PjJdKSl7bD0wO2JyZWFrfXN3aXRjaCgwfGZlWzE1''@;'; + put 'put ''Nisoaz0wfGFbMTYrKGw9MHxhWygwfGFbYj4+Ml0pKyhBPDwyKT4+Ml0pPj4yXSk+PjBdKXtjYXNlIDA6YnJlYWsgZTtjYXNlIDE6aWYoMHxhW2srMTA0Pj4yXSlicmVhayBlfX13aGlsZSgoMHxUYyhsLGMsZixwKSk8PDI0Pj4yNCE9MCk7cmV0dXJuIDB8bH1mdW5jdGlvbiBHRihsLGMsZil7''@;'; + put 'put ''bHw9MDt2YXIgcCxtPTAsQT0wLHc9MDtpZigwfGZlWzE1NisoYz0wfGFbMTYrKGN8PTApPj4yXSk+PjBdPyhBPTB8YVsyMTIrKDB8YVsxNisoMHxhWygyPT0oMHwobT0zJmFbKHc9MHxhWzExNisoMHxhWzE2KygwfGFbYVtjKzE4MD4+Ml0+PjJdKT4+Ml0pPj4yXSk+PjJdKSk/dzp3Ky00OHww''@;'; + put 'put ''KSs0MD4+Ml0pPj4yXSk+PjJdLHc9MHxhWzIxMisoMHxhWzE2KygwfGFbKDM9PSgwfG0pP3c6dys0OHwwKSs0MD4+Ml0pPj4yXSk+PjJdKTpBPXc9MHxhW2MrMjEyPj4yXSwhKDB8ZmVbMTU2KyhjPTB8YVsxNisoZnw9MCk+PjJdKT4+MF0pKXJldHVybiAwfCgoMHwoZj0oMHwoZj0wfGFbYysy''@;'; + put 'put ''MTI+PjJdKSk9PSgwfGwpPzA6ZikpPT0oMHxBKXwwPT0oMHxmKXwoMHxmKT09KDB8dyk/MDpmKTtpZigoMHwoYz0oMHwoYz0wfGFbMjEyKygwfGFbMTYrKDB8YVsoMz09KDB8KG09MyZhWyhwPTB8YVsxMTYrKDB8YVsxNisoMHxhW2FbYysxODA+PjJdPj4yXSk+PjJdKT4+Ml0pPj4yXSkpP3A6''@;'; + put 'put ''cCs0OHwwKSs0MD4+Ml0pPj4yXSk+PjJdKSk9PSgwfGwpPzA6YykpPT0oMHxBKXwwPT0oMHxjKXwoMHxjKT09KDB8dyl8fDA9PSgwfHAwZShjLGYpKSl7aWYoISgoMHwoYz0oMHwoYz0wfGFbMjEyKygwfGFbMTYrKDB8YVsoMj09KDB8bSk/cDpwKy00OHwwKSs0MD4+Ml0pPj4yXSk+PjJdKSk9''@;'; + put 'put ''PSgwfGwpPzA6YykpPT0oMHxBKXwwPT0oMHxjKXwoMHxjKT09KDB8dykpKXJldHVybiAwfCgoZj0wPT0oMHxwMGUoYyxmKSkpPzA6Yyk7Yz0wfXJldHVybiAwfGN9ZnVuY3Rpb24gcDBlKGwsYyl7dmFyIGYsbSxwPTA7cmV0dXJuIDB8KCtfWzE2KyhmPTB8YVsxNisobHw9MCk+PjJdKT4+M108''@;'; + put 'put ''PShtPStfWzE2KyhsPTB8YVsxNisoY3w9MCk+PjJdKT4+M10pJiZtPD0rX1tmKzMyPj4zXSYmK19bZisyND4+M108PShwPStfW2wrMjQ+PjNdKT9wPD0rX1tmKzQwPj4zXSYxOjApfWZ1bmN0aW9uIFRjKGwsYyxmLHApe2Z8PTAscHw9MDt2YXIgdyxiLG09MCxBPTA7Yj0oMHxhWzIzNisodz0w''@;'; + put 'put ''fGFbMTYrKGx8PTApPj4yXSk+PjJdKT4oMHxhWzIzNisoMHxhWzE2KyhjfD0wKT4+Ml0pPj4yXSk7ZTpkb3tpZigxPT0oMHxhW3crMTg0Pj4yXSkpe3Q6ZG97aWYoMHxwKWZvcihBPTAsbD0wfGFbYVt3KzE4MD4+Ml0+PjJdOzspe2lmKCgwfEEpPj0yfHwoMHwobD0wfGFbKDI9PSgzJmFbbD4+''@;'; + put 'put ''Ml18MCk/bDpsKy00OHwwKSs0MD4+Ml0pKT09KDB8KGM9MHxhWygyPT0oMyZhW3A+PjJdfDApP3A6cCstNDh8MCkrNDA+PjJdKSkpYnJlYWsgdDtpZihiXigwfGFbMjM2KyhtPTB8YVtsKzE2Pj4yXSk+PjJdKT4oMHxhWzIzNisobD0wfGFbYysxNj4+Ml0pPj4yXSkpe2w9MTticmVhayBlfWlm''@;'; + put 'put ''KCEoMT09KDB8YVttKzE4ND4+Ml0pJiYwfGZlW20rMTU2Pj4wXSYmMT09KDB8YVtsKzE4ND4+Ml0pJiYwfGZlW2wrMTU2Pj4wXSkpYnJlYWsgdDtBPUErMXwwLHA9MHxhW2FbbCsxODA+PjJdPj4yXSxsPTB8YVthW20rMTgwPj4yXT4+Ml19fXdoaWxlKDApO2lmKDB8ZiYmMT09KDB8YVt3KzE3''@;'; + put 'put ''Nj4+Ml0pKWZvcihtPTAsYz1mLGw9MHxhW2FbdysxNzI+PjJdPj4yXTs7KXtpZigoMHxtKT49Mil7bD0wO2JyZWFrIGV9aWYoKDB8KGw9MHxhWygzPT0oMyZhW2w+PjJdfDApP2w6bCs0OHwwKSs0MD4+Ml0pKT09KDB8KGM9MHxhWygzPT0oMyZhW2M+PjJdfDApP2M6Yys0OHwwKSs0MD4+Ml0p''@;'; + put 'put ''KSl7bD0wO2JyZWFrIGV9aWYoYl4oMHxhWzIzNisocD0wfGFbbCsxNj4+Ml0pPj4yXSk+KDB8YVsyMzYrKGw9MHxhW2MrMTY+PjJdKT4+Ml0pKXtsPTE7YnJlYWsgZX1pZigxIT0oMHxhW3ArMTc2Pj4yXSkpe2w9MDticmVhayBlfWlmKCEoMHxmZVtwKzE1Nj4+MF0pKXtsPTA7YnJlYWsgZX1p''@;'; + put 'put ''ZigxIT0oMHxhW2wrMTc2Pj4yXSkpe2w9MDticmVhayBlfWlmKCEoMHxmZVtsKzE1Nj4+MF0pKXtsPTA7YnJlYWsgZX1tPW0rMXwwLGM9MHxhW2FbbCsxNzI+PjJdPj4yXSxsPTB8YVthW3ArMTcyPj4yXT4+Ml19ZWxzZSBsPTB9ZWxzZSBsPTB9d2hpbGUoMCk7cmV0dXJuIDB8bH1mdW5jdGlv''@;'; + put 'put ''biBCdShsLGMsZil7dmFyIHA7cD0rX1s4KyhmfD0wKT4+M10rICtfWzgrKGN8PTApPj4zXSxfWyhsfD0wKT4+M109K19bZj4+M10rICtfW2M+PjNdLF9bbCs4Pj4zXT1wfWZ1bmN0aW9uIFdGKGwsYyxmKXt2YXIgcCxtO3JldHVybigwfH5+KCgrX1soZnw9MCk+PjNdLShtPStfWyhjfD0wKT4+''@;'; + put 'put ''M10pKSooK19bOCsobHw9MCk+PjNdLShwPStfW2MrOD4+M10pKS0oK19bbD4+M10tbSkqKCtfW2YrOD4+M10tcCkpKT4wfDB9ZnVuY3Rpb24gbTBlKGwsYyxmLHAsbSl7bHw9MCxjfD0wLGZ8PTAsbXw9MDt2YXIgTSxELFIsSyxwZSxiZSxMZSxSZSxWZSxBPTAsdz0wLGI9MCxrPTAsRz0wLGdl''@;'; + put 'put ''PTAsT2U9MCxIZT0wLHFlPTAsbnQ9MCxXZT0wLG90PTAsU3Q9MDtmb3IoVmU9bGUsbGU9bGUrMTYwMHwwLGJlPVZlKzE1NTJ8MCxNPVZlKzE1MzZ8MCxnZT1WZSs4NDB8MCxPZT1WZSsxNDR8MCxMZT1WZSsxNTg0fDAsdz1WZSszMnwwLHBlPVZlKzE2fDAsRD1WZSxSPTB8YVsoMz09KDB8KEc9''@;'; + put 'put ''MyZhWyhwfD0wKT4+Ml0pKT9wOnArNDh8MCkrNDA+PjJdLFJlPXArLTQ4fDAsRz0wfGFbKDI9PSgwfEcpP3A6UmUpKzQwPj4yXSxBPTB8YVsxNzIrKGI9MHxhWyhLPXArMTZ8MCk+PjJdKT4+Ml07az0wfGFbMTcyKygwfGFbQSsxNj4+Ml0pPj4yXTspQT1rO2lmKGFbKGI9NTYrKDB8YVtiKzk2''@;'; + put 'put ''Pj4yXSl8MCk+PjJdPWFbKGs9MTYrKDB8YVsoQT0xNisoMHxhWygzPT0oMyZhW0E+PjJdfDApP0E6QSs0OHwwKSs0MD4+Ml0pfDApPj4yXSl8MCk+PjJdLGFbYis0Pj4yXT1hW2srND4+Ml0sYVtiKzg+PjJdPWFbays4Pj4yXSxhW2IrMTI+PjJdPWFbaysxMj4+Ml0sZmVbODErKDB8YVs5Niso''@;'; + put 'put ''Yj0wfGFbSz4+Ml0pPj4yXSk+PjBdPTEsMiE9KDB8bSkpe2ZvcihTdD0oV2U9K19bMTYrKGI9MHxhW0E+PjJdKT4+M10pLStfW2IrODg+PjNdLFdlPStfW2IrOTY+PjNdK1dlLG50PShvdD0uNSorX1tiKzgwPj4zXSsobnQ9K19bYisyND4+M10pKS0oKG50PSsoMHx+figuMTY2NjY2NjY2NjY2''@;'; + put 'put ''NjY2NjYqKygwfH5+KG50LStfWyhiPTB8YVsxOTYrKDB8YVtsKzE2Pj4yXSk+PjJdKSsoKHc9MHxhWzIzMisoaz0wfGFbUisxNj4+Ml0pPj4yXSk8PDYpKzE2Pj4zXS0rX1trKzI0Pj4zXSsgK19bYisodzw8NikrMjQ+PjNdKSkpKSk8NT81Om50KSxsSShsLGMsZixSLHAsZ2UsMSksbEkobCxj''@;'; + put 'put ''LGYsRyxwLE9lLDApLF9bMTkyMTVdPXFlPStfW2dlKzU2Kygoaz0oYj0wfGFbKHc9Z2UrNTJ8MCk+PjJdKS0xfDApPDw1KT4+M10sX1sxOTIxNl09K19bZ2UrNTYrKGs8PDUpKzI0Pj4zXSxfWzE5MjE3XT1TdCxfWzE5MjE4XT1udCxfWzE5MjE5XT1xZSxfWzE5MjIwXT1udCxfWzE5MjIxXT1x''@;'; + put 'put ''ZT0rX1tPZSs1NisoKEE9KDB8YVsoaz1PZSs1MnwwKT4+Ml0pLTF8MCk8PDUpKzE2Pj4zXSxfWzE5MjIyXT1vdCxfWzE5MjIzXT1XZSxfWzE5MjI2XT1udCxfWzE5MjI0XT0rX1tPZSs1NisoQTw8NSkrMjQ+PjNdLF9bMTkyMjVdPXFlLEE9MDs7KXtpZigoMHxBKT49KDB8Yikpe0E9MDticmVh''@;'; + put 'put ''a31hW2JlPj4yXT1hWyhiPWdlKzU2KyhBPDw1KXwwKT4+Ml0sYVtiZSs0Pj4yXT1hW2IrND4+Ml0sYVtiZSs4Pj4yXT1hW2IrOD4+Ml0sYVtiZSsxMj4+Ml09YVtiKzEyPj4yXSxhW2JlKzE2Pj4yXT1hW2IrMTY+PjJdLGFbYmUrMjA+PjJdPWFbYisyMD4+Ml0sYVtiZSsyND4+Ml09YVtiKzI0''@;'; + put 'put ''Pj4yXSxhW2JlKzI4Pj4yXT1hW2IrMjg+PjJdLFgzKGYsYmUpLEE9QSsxfDAsYj0wfGFbdz4+Ml19Zm9yKDszIT0oMHxBKTspYVtiZT4+Ml09YVsoZ2U9MTUzNzIwKyhBPDw1KXwwKT4+Ml0sYVtiZSs0Pj4yXT1hW2dlKzQ+PjJdLGFbYmUrOD4+Ml09YVtnZSs4Pj4yXSxhW2JlKzEyPj4yXT1h''@;'; + put 'put ''W2dlKzEyPj4yXSxhW2JlKzE2Pj4yXT1hW2dlKzE2Pj4yXSxhW2JlKzIwPj4yXT1hW2dlKzIwPj4yXSxhW2JlKzI0Pj4yXT1hW2dlKzI0Pj4yXSxhW2JlKzI4Pj4yXT1hW2dlKzI4Pj4yXSxYMyhmLGJlKSxBPUErMXwwO2Zvcih3PTB8YVtrPj4yXTtBPXcrLTF8MCwhKCgwfHcpPD0wKTspYVti''@;'; + put 'put ''ZT4+Ml09YVsodz1PZSs1NisoQTw8NSl8MCk+PjJdLGFbYmUrND4+Ml09YVt3KzQ+PjJdLGFbYmUrOD4+Ml09YVt3Kzg+PjJdLGFbYmUrMTI+PjJdPWFbdysxMj4+Ml0sYVtiZSsxNj4+Ml09YVt3KzE2Pj4yXSxhW2JlKzIwPj4yXT1hW3crMjA+PjJdLGFbYmUrMjQ+PjJdPWFbdysyND4+Ml0s''@;'; + put 'put ''YVtiZSsyOD4+Ml09YVt3KzI4Pj4yXSxYMyhmLGJlKSx3PUE7dz0xMD09KDB8bSk/MHxieShmLExlKTowfGdrKGYsTGUpLDB8KEE9MHxhW0xlPj4yXSkmJihIZT0xNyl9ZWxzZSBPZT1iKzE2fDAsYVtNPj4yXT1hWyhBPTE2KygwfGFbUisxNj4+Ml0pfDApPj4yXSxhW00rND4+Ml09YVtBKzQ+''@;'; + put 'put ''PjJdLGFbTSs4Pj4yXT1hW0ErOD4+Ml0sYVtNKzEyPj4yXT1hW0ErMTI+PjJdLGFbYmU+PjJdPWFbT2U+PjJdLGFbYmUrND4+Ml09YVtPZSs0Pj4yXSxhW2JlKzg+PjJdPWFbT2UrOD4+Ml0sYVtiZSsxMj4+Ml09YVtPZSsxMj4+Ml0sQnUocGUsTSxiZSksQT01NisoMHxhW0s+PjJdKXwwLGFb''@;'; + put 'put ''TT4+Ml09YVsoT2U9MTYrKDB8YVtHKzE2Pj4yXSl8MCk+PjJdLGFbTSs0Pj4yXT1hW09lKzQ+PjJdLGFbTSs4Pj4yXT1hW09lKzg+PjJdLGFbTSsxMj4+Ml09YVtPZSsxMj4+Ml0sYVtiZT4+Ml09YVtBPj4yXSxhW2JlKzQ+PjJdPWFbQSs0Pj4yXSxhW2JlKzg+PjJdPWFbQSs4Pj4yXSxhW2Jl''@;'; + put 'put ''KzEyPj4yXT1hW0ErMTI+PjJdLEJ1KEQsTSxiZSksb3Q9K19bNTYrKEE9MHxhWzk2KygwfGFbSz4+Ml0pPj4yXSk+PjNdLFN0PStfW0ErNjQ+PjNdLS41KitfW0ErMzI+PjNdLEE9dysxNnwwLGFbdz4+Ml09YVtwZT4+Ml0sYVt3KzQ+PjJdPWFbcGUrND4+Ml0sYVt3Kzg+PjJdPWFbcGUrOD4+''@;'; + put 'put ''Ml0sYVt3KzEyPj4yXT1hW3BlKzEyPj4yXSxhW0E+PjJdPWFbcGU+PjJdLGFbQSs0Pj4yXT1hW3BlKzQ+PjJdLGFbQSs4Pj4yXT1hW3BlKzg+PjJdLGFbQSsxMj4+Ml09YVtwZSsxMj4+Ml0sQT13KzMyfDAsT2U9dys0OHwwLEhlPXcrNjR8MCxfW3crNjQ+PjNdPW90LF9bdys3Mj4+M109U3Qs''@;'; + put 'put ''YVtPZT4+Ml09YVtIZT4+Ml0sYVtPZSs0Pj4yXT1hW0hlKzQ+PjJdLGFbT2UrOD4+Ml09YVtIZSs4Pj4yXSxhW09lKzEyPj4yXT1hW0hlKzEyPj4yXSxhW0E+PjJdPWFbSGU+PjJdLGFbQSs0Pj4yXT1hW0hlKzQ+PjJdLGFbQSs4Pj4yXT1hW0hlKzg+PjJdLGFbQSsxMj4+Ml09YVtIZSsxMj4+''@;'; + put 'put ''Ml0sQT13KzgwfDAsYVsoSGU9dys5NnwwKT4+Ml09YVtEPj4yXSxhW0hlKzQ+PjJdPWFbRCs0Pj4yXSxhW0hlKzg+PjJdPWFbRCs4Pj4yXSxhW0hlKzEyPj4yXT1hW0QrMTI+PjJdLGFbQT4+Ml09YVtEPj4yXSxhW0ErND4+Ml09YVtEKzQ+PjJdLGFbQSs4Pj4yXT1hW0QrOD4+Ml0sYVtBKzEy''@;'; + put 'put ''Pj4yXT1hW0QrMTI+PjJdLGFbTGU+PjJdPTcsQT03LEhlPTE3OzE3PT0oMHxIZSkmJkF1KHAsMHxhWygyPT0oMyZhW3A+PjJdfDApP3A6UmUpKzQwPj4yXSx3LEEsMTcyOTYpLGxlPVZlfWZ1bmN0aW9uIFlGKGwsYyxmLHAsbSxBKXtjfD0wLG18PTAsQXw9MDt2YXIgayxNLEQsUixHLHBlLGJl''@;'; + put 'put ''LG50LFdlLG90LFN0LGt0LHN0LEV0LFp0LGN0LGJ0LGFuLFNuLEhuLHVyLHc9MCxiPTAsSz0wLGdlPTAsT2U9MCxMZT0wLFJlPTAsSGU9MCxWZT0wLHFlPTA7Zm9yKHVyPWxlLGxlPWxlKzM1MnwwLEhlPXVyKzMzNnwwLFNuPXVyKzEyOHwwLE9lPXVyKzMwNHwwLFZlPXVyKzI4OHwwLEhuPXVy''@;'; + put 'put ''KzExMnwwLGt0PXVyKzk2fDAsc3Q9dXIrODB8MCxFdD11cis2NHwwLFp0PXVyKzQ4fDAsY3Q9dXIrMzJ8MCxidD11cisxNnwwLGFuPXVyLGdlPTE2KygwfGFbKExlPTE2KygwfGFbKGZ8PTApKygocHw9MCk8PDIpPj4yXSl8MCk+PjJdKXwwLGFbKFJlPXVyKzMyMHwwKT4+Ml09YVsoSz0xNiso''@;'; + put 'put ''MHxhWyhsPTE2KyhsfD0wKXwwKT4+Ml0pfDApPj4yXSxhW1JlKzQ+PjJdPWFbSys0Pj4yXSxhW1JlKzg+PjJdPWFbSys4Pj4yXSxhW1JlKzEyPj4yXT1hW0srMTI+PjJdLGFbSGU+PjJdPWFbZ2U+PjJdLGFbSGUrND4+Ml09YVtnZSs0Pj4yXSxhW0hlKzg+PjJdPWFbZ2UrOD4+Ml0sYVtIZSsx''@;'; + put 'put ''Mj4+Ml09YVtnZSsxMj4+Ml0sQnUoT2UsUmUsSGUpLG90PStfW09lPj4zXSxTdD0rX1tPZSs4Pj4zXSxMZT01NisoMHxhW0xlPj4yXSl8MCxhW1JlPj4yXT1hWyhPZT0xNisoMHxhW2MrMTY+PjJdKXwwKT4+Ml0sYVtSZSs0Pj4yXT1hW09lKzQ+PjJdLGFbUmUrOD4+Ml09YVtPZSs4Pj4yXSxh''@;'; + put 'put ''W1JlKzEyPj4yXT1hW09lKzEyPj4yXSxhW0hlPj4yXT1hW0xlPj4yXSxhW0hlKzQ+PjJdPWFbTGUrND4+Ml0sYVtIZSs4Pj4yXT1hW0xlKzg+PjJdLGFbSGUrMTI+PjJdPWFbTGUrMTI+PjJdLEJ1KFZlLFJlLEhlKSxXZT0rX1tWZSs4Pj4zXSwoMHxtKT4xPyh3PS41KihxZT0rX1s4MCsoMHxh''@;'; + put 'put ''W2w+PjJdKT4+M10pLHFlLz0rKG0rLTF8MCkpOih3PTAscWU9MCksRz0xMD09KDh8QSksTT1Tbis4fDAsSz1TbisxNnwwLHBlPS4zMzMzMzMzMzMzMzMzMzMzKigobnQ9K19bVmU+PjNdKSsyKm90KSxnZT1TbiszMnwwLGJlPS4zMzMzMzMzMzMzMzMzMzMzKigyKm50K290KSxEPVNuKzI0fDAs''@;'; + put 'put ''T2U9U24rNDh8MCxMZT1Tbis2NHwwLFJlPVNuKzgwfDAsSGU9U24rOTZ8MCxWZT1TbisxMTJ8MCxrPVNuKzEyOHwwLFI9U24rMTM2fDAsdz1TdC13LGM9MDshKCgwfGMpPj0oMHxtKSk7KWI9MHxhW2YrKGMrcDw8Mik+PjJdLF9bU24+PjNdPW90LF9bTT4+M109U3QsRz8oVzUoSG4scGUsdyks''@;'; + put 'put ''YVtLPj4yXT1hW0huPj4yXSxhW0srND4+Ml09YVtIbis0Pj4yXSxhW0srOD4+Ml09YVtIbis4Pj4yXSxhW0srMTI+PjJdPWFbSG4rMTI+PjJdLFc1KGt0LGJlLHcpLGFbZ2U+PjJdPWFba3Q+PjJdLGFbZ2UrND4+Ml09YVtrdCs0Pj4yXSxhW2dlKzg+PjJdPWFba3QrOD4+Ml0sYVtnZSsxMj4+''@;'; + put 'put ''Ml09YVtrdCsxMj4+Ml0sbD00LEE9Myk6KF9bSz4+M109b3QsX1tEPj4zXT1TdCxXNShzdCxwZSx3KSxhW2dlPj4yXT1hW3N0Pj4yXSxhW2dlKzQ+PjJdPWFbc3QrND4+Ml0sYVtnZSs4Pj4yXT1hW3N0Kzg+PjJdLGFbZ2UrMTI+PjJdPWFbc3QrMTI+PjJdLFc1KEV0LHBlLHcpLGFbT2U+PjJd''@;'; + put 'put ''PWFbRXQ+PjJdLGFbT2UrND4+Ml09YVtFdCs0Pj4yXSxhW09lKzg+PjJdPWFbRXQrOD4+Ml0sYVtPZSsxMj4+Ml09YVtFdCsxMj4+Ml0sVzUoWnQscGUsdyksYVtMZT4+Ml09YVtadD4+Ml0sYVtMZSs0Pj4yXT1hW1p0KzQ+PjJdLGFbTGUrOD4+Ml09YVtadCs4Pj4yXSxhW0xlKzEyPj4yXT1h''@;'; + put 'put ''W1p0KzEyPj4yXSxXNShjdCxiZSx3KSxhW1JlPj4yXT1hW2N0Pj4yXSxhW1JlKzQ+PjJdPWFbY3QrND4+Ml0sYVtSZSs4Pj4yXT1hW2N0Kzg+PjJdLGFbUmUrMTI+PjJdPWFbY3QrMTI+PjJdLFc1KGJ0LGJlLHcpLGFbSGU+PjJdPWFbYnQ+PjJdLGFbSGUrND4+Ml09YVtidCs0Pj4yXSxhW0hl''@;'; + put 'put ''Kzg+PjJdPWFbYnQrOD4+Ml0sYVtIZSsxMj4+Ml09YVtidCsxMj4+Ml0sVzUoYW4sYmUsdyksYVtWZT4+Ml09YVthbj4+Ml0sYVtWZSs0Pj4yXT1hW2FuKzQ+PjJdLGFbVmUrOD4+Ml09YVthbis4Pj4yXSxhW1ZlKzEyPj4yXT1hW2FuKzEyPj4yXSxfW2s+PjNdPW50LF9bUj4+M109V2UsbD0x''@;'; + put 'put ''MCxBPTkpLF9bU24rKEE8PDQpPj4zXT1udCxfW1NuKyhBPDw0KSs4Pj4zXT1XZSxBdShiLDB8YVsoMj09KDMmYVtiPj4yXXwwKT9iOmIrLTQ4fDApKzQwPj4yXSxTbixsLDE3Mjk2KSx3Kz1xZSxjPWMrMXwwO2xlPXVyfWZ1bmN0aW9uIENZKGwsYyxmLHAsbSxBLHcsYil7cHw9MCxtfD0wLGJ8''@;'; + put 'put ''PTA7dmFyIHBlLGdlLGJlLE9lLExlLFJlLGs9MCxNPTAsRD0wLFI9MCxHPTAsSz0wLEhlPTAsVmU9MCxxZT0wLG50PTAsV2U9MCxvdD0wO2ZvcihSZT1sZSxsZT1sZSsxNDQwfDAsZ2U9UmUrMTM5MnwwLE9lPVJlKzE0MjR8MCxiZT1SZSxHPTB8YVsoMz09KDB8KEs9MyZhWyh3fD0wKT4+Ml0p''@;'; + put 'put ''KT93OncrNDh8MCkrNDA+PjJdLEs9MHxhWygyPT0oMHxLKT93OncrLTQ4fDApKzQwPj4yXSxNPSgwfChEPTB8YVsyMzIrKGs9MHxhW0crMTY+PjJdKT4+Ml0pKTwoMHxpdFsyMzgrKFI9MHxhWzE2KyhsfD0wKT4+Ml0pPj4xXSk/K19baysyND4+M10tK19bKEhlPTB8YVtSKzE5Nj4+Ml0pKyhE''@;'; + put 'put ''PDw2KSszMj4+M10tK19bMjQrKDB8YVsxNisoMHxhW2FbSGUrKChSPUQrMXwwKTw8NikrND4+Ml0+PjJdKT4+Ml0pPj4zXS0rX1tIZSsoUjw8NikrNDA+PjNdOisoMHxhW1IrMjUyPj4yXSkscGU9KygwfGFbMTIrKGN8PTApPj4yXSkvKFZlPSsoMSsoQXw9MCl8MCkpLE0vPVZlLFVGKGwsYyxm''@;'; + put 'put ''fD0wLEcsdyxMZT1SZSs2OTZ8MCwxKSxVRihsLGMsZixLLHcsYmUsMCksSz1MZSs1MnwwLHc9YmUrNTJ8MCxsPTA9PSgwfGIpLGM9Zis4MHwwLGs9MDshKCgwfGspPj0oMHxBKSk7KXtmb3IoRz0wfGFbcCsoayttPDwyKT4+Ml0sbnQ9K19bTGUrNTYrKChEPShSPTB8YVtLPj4yXSktMXwwKTw8''@;'; + put 'put ''NSkrOD4+M10sV2U9K19bTGUrNTYrKEQ8PDUpKzE2Pj4zXSxfWzE5MjE1XT1vdD0rX1tMZSs1NisoRDw8NSk+PjNdLF9bMTkyMThdPW50LF9bMTkyMTddPVdlKyhxZT1wZSooVmU9KygwfChrPWsrMXwwKSkpKSxfWzE5MjE2XT1WZT1udC1NKlZlLF9bMTkyMTldPW90LF9bMTkyMjJdPVZlLF9b''@;'; + put 'put ''MTkyMjFdPW90PStfW2JlKzU2KygoRD0oMHxhW3c+PjJdKS0xfDApPDw1KSsxNj4+M10sX1sxOTIyMF09VmUtTSxudD0rX1tiZSs1NisoRDw8NSk+PjNdLFdlPStfW2JlKzU2KyhEPDw1KSs4Pj4zXSxfWzE5MjI1XT1vdCxfWzE5MjI2XT1XZSxfWzE5MjIzXT1udC1xZSxfWzE5MjI0XT1WZSxE''@;'; + put 'put ''PTA7Oyl7aWYoKDB8RCk+PSgwfFIpKXtEPTA7YnJlYWt9YVtnZT4+Ml09YVsoUj1MZSs1NisoRDw8NSl8MCk+PjJdLGFbZ2UrND4+Ml09YVtSKzQ+PjJdLGFbZ2UrOD4+Ml09YVtSKzg+PjJdLGFbZ2UrMTI+PjJdPWFbUisxMj4+Ml0sYVtnZSsxNj4+Ml09YVtSKzE2Pj4yXSxhW2dlKzIwPj4y''@;'; + put 'put ''XT1hW1IrMjA+PjJdLGFbZ2UrMjQ+PjJdPWFbUisyND4+Ml0sYVtnZSsyOD4+Ml09YVtSKzI4Pj4yXSxYMyhmLGdlKSxEPUQrMXwwLFI9MHxhW0s+PjJdfWZvcig7MyE9KDB8RCk7KWFbZ2U+PjJdPWFbKEhlPTE1MzcyMCsoRDw8NSl8MCk+PjJdLGFbZ2UrND4+Ml09YVtIZSs0Pj4yXSxhW2dl''@;'; + put 'put ''Kzg+PjJdPWFbSGUrOD4+Ml0sYVtnZSsxMj4+Ml09YVtIZSsxMj4+Ml0sYVtnZSsxNj4+Ml09YVtIZSsxNj4+Ml0sYVtnZSsyMD4+Ml09YVtIZSsyMD4+Ml0sYVtnZSsyND4+Ml09YVtIZSsyND4+Ml0sYVtnZSsyOD4+Ml09YVtIZSsyOD4+Ml0sWDMoZixnZSksRD1EKzF8MDtmb3IoUj0wfGFb''@;'; + put 'put ''dz4+Ml07RD1SKy0xfDAsISgoMHxSKTw9MCk7KWFbZ2U+PjJdPWFbKFI9YmUrNTYrKEQ8PDUpfDApPj4yXSxhW2dlKzQ+PjJdPWFbUis0Pj4yXSxhW2dlKzg+PjJdPWFbUis4Pj4yXSxhW2dlKzEyPj4yXT1hW1IrMTI+PjJdLGFbZ2UrMTY+PjJdPWFbUisxNj4+Ml0sYVtnZSsyMD4+Ml09YVtS''@;'; + put 'put ''KzIwPj4yXSxhW2dlKzI0Pj4yXT1hW1IrMjQ+PjJdLGFbZ2UrMjg+PjJdPWFbUisyOD4+Ml0sWDMoZixnZSksUj1EO2lmKEQ9bD8wfGdrKGYsT2UpOjB8YnkoZixPZSksIShSPTB8YVtPZT4+Ml0pKWJyZWFrO0F1KEcsMHxhWygyPT0oMyZhW0c+PjJdfDApP0c6RystNDh8MCkrNDA+PjJdLEQs''@;'; + put 'put ''UiwxNzI5NiksYVtjPj4yXT0wfWxlPVJlfWZ1bmN0aW9uIGxJKGwsYyxmLHAsbSxBLHcpe2Z8PTAsQXw9MCx3fD0wO3ZhciBiLGssTSxELEcsUj0wO0Q9bGUsbGU9bGUrMTI4fDAsYj1EKzk2fDAsaz1EKzY0fDAsTT1ELEc1KFI9RCszMnwwLGx8PTAsY3w9MCxwfD0wLDAsbXw9MCksYVtBPj4y''@;'; + put 'put ''XT1hW1I+PjJdLGFbQSs0Pj4yXT1hW1IrND4+Ml0sYVtBKzg+PjJdPWFbUis4Pj4yXSxhW0ErMTI+PjJdPWFbUisxMj4+Ml0sYVtBKzE2Pj4yXT1hW1IrMTY+PjJdLGFbQSsyMD4+Ml09YVtSKzIwPj4yXSxhW0ErMjQ+PjJdPWFbUisyND4+Ml0sYVtBKzI4Pj4yXT1hW1IrMjg+PjJdLGFbaz4+''@;'; + put 'put ''Ml09YVtSPj4yXSxhW2srND4+Ml09YVtSKzQ+PjJdLGFbays4Pj4yXT1hW1IrOD4+Ml0sYVtrKzEyPj4yXT1hW1IrMTI+PjJdLGFbaysxNj4+Ml09YVtSKzE2Pj4yXSxhW2srMjA+PjJdPWFbUisyMD4+Ml0sYVtrKzI0Pj4yXT1hW1IrMjQ+PjJdLGFbaysyOD4+Ml09YVtSKzI4Pj4yXSxhW0Er''@;'; + put 'put ''NDg+PjJdPTQsdzw8MjQ+PjI0P2VEKGYsbSwyLEEsMCk6dEQoZixtLDIsQSwwKSxfWyhSPWsrMjR8MCk+PjNdPStfW0ErNTYrKChtPSgwfGFbKGM9QSs1MnwwKT4+Ml0pLTF8MCk8PDUpKzI0Pj4zXSxfWyh3PWsrOHwwKT4+M109K19bQSs1NisobTw8NSkrOD4+M10sRz0rX1soMHxhWzE5Niso''@;'; + put 'put ''MHxhW2wrMTY+PjJdKT4+Ml0pKyhhWzIzMisocD0wfGFbcCsxNj4+Ml0pPj4yXTw8NikrMjQ+PjNdKyArX1twKzI0Pj4zXSxhW2I+PjJdPWFbaz4+Ml0sYVtiKzQ+PjJdPWFbays0Pj4yXSxhW2IrOD4+Ml09YVtrKzg+PjJdLGFbYisxMj4+Ml09YVtrKzEyPj4yXSxhW2IrMTY+PjJdPWFbaysx''@;'; + put 'put ''Nj4+Ml0sYVtiKzIwPj4yXT1hW2srMjA+PjJdLGFbYisyND4+Ml09YVtrKzI0Pj4yXSxhW2IrMjg+PjJdPWFbaysyOD4+Ml0sWEEoTSxiLDQsRyksYVtrPj4yXT1hW00+PjJdLGFbays0Pj4yXT1hW00rND4+Ml0sYVtrKzg+PjJdPWFbTSs4Pj4yXSxhW2srMTI+PjJdPWFbTSsxMj4+Ml0sYVtr''@;'; + put 'put ''KzE2Pj4yXT1hW00rMTY+PjJdLGFbaysyMD4+Ml09YVtNKzIwPj4yXSxhW2srMjQ+PjJdPWFbTSsyND4+Ml0sYVtrKzI4Pj4yXT1hW00rMjg+PjJdLCtfW2s+PjNdPCtfW2srMTY+PjNdJiYrX1t3Pj4zXTwrX1tSPj4zXSYmKGFbYz4+Ml09MSsoUj0wfGFbYz4+Ml0pLGFbKFI9QSs1NisoUjw8''@;'; + put 'put ''NSl8MCk+PjJdPWFbaz4+Ml0sYVtSKzQ+PjJdPWFbays0Pj4yXSxhW1IrOD4+Ml09YVtrKzg+PjJdLGFbUisxMj4+Ml09YVtrKzEyPj4yXSxhW1IrMTY+PjJdPWFbaysxNj4+Ml0sYVtSKzIwPj4yXT1hW2srMjA+PjJdLGFbUisyND4+Ml09YVtrKzI0Pj4yXSxhW1IrMjg+PjJdPWFbaysyOD4+''@;'; + put 'put ''Ml0pLGxlPUR9ZnVuY3Rpb24gVUYobCxjLGYscCxtLEEsdyl7Znw9MCxBfD0wLHd8PTA7dmFyIGIsayxNLEQsRyxSPTA7RD1sZSxsZT1sZSsxMjh8MCxiPUQrOTZ8MCxrPUQrNjR8MCxNPUQsRzUoUj1EKzMyfDAsbHw9MCxjfD0wLHB8PTAsMCxtfD0wKSxhW0E+PjJdPWFbUj4+Ml0sYVtBKzQ+''@;'; + put 'put ''PjJdPWFbUis0Pj4yXSxhW0ErOD4+Ml09YVtSKzg+PjJdLGFbQSsxMj4+Ml09YVtSKzEyPj4yXSxhW0ErMTY+PjJdPWFbUisxNj4+Ml0sYVtBKzIwPj4yXT1hW1IrMjA+PjJdLGFbQSsyND4+Ml09YVtSKzI0Pj4yXSxhW0ErMjg+PjJdPWFbUisyOD4+Ml0sYVtrPj4yXT1hW1I+PjJdLGFbays0''@;'; + put 'put ''Pj4yXT1hW1IrND4+Ml0sYVtrKzg+PjJdPWFbUis4Pj4yXSxhW2srMTI+PjJdPWFbUisxMj4+Ml0sYVtrKzE2Pj4yXT1hW1IrMTY+PjJdLGFbaysyMD4+Ml09YVtSKzIwPj4yXSxhW2srMjQ+PjJdPWFbUisyND4+Ml0sYVtrKzI4Pj4yXT1hW1IrMjg+PjJdLGFbQSs0OD4+Ml09MSx3PDwyND4+''@;'; + put 'put ''MjQ/ZUQoZixtLDIsQSwwKTp0RChmLG0sMixBLDApLF9bKFI9aysyNHwwKT4+M109K19bQSs1NisoKG09KDB8YVsoYz1BKzUyfDApPj4yXSktMXwwKTw8NSkrMjQ+PjNdLF9bKHc9ays4fDApPj4zXT0rX1tBKzU2KyhtPDw1KSs4Pj4zXSxHPStfWzI0KyhwPTB8YVtwKzE2Pj4yXSk+PjNdLStf''@;'; + put 'put ''WygwfGFbMTk2KygwfGFbbCsxNj4+Ml0pPj4yXSkrKGFbcCsyMzI+PjJdPDw2KSsyND4+M10sYVtiPj4yXT1hW2s+PjJdLGFbYis0Pj4yXT1hW2srND4+Ml0sYVtiKzg+PjJdPWFbays4Pj4yXSxhW2IrMTI+PjJdPWFbaysxMj4+Ml0sYVtiKzE2Pj4yXT1hW2srMTY+PjJdLGFbYisyMD4+Ml09''@;'; + put 'put ''YVtrKzIwPj4yXSxhW2IrMjQ+PjJdPWFbaysyND4+Ml0sYVtiKzI4Pj4yXT1hW2srMjg+PjJdLFhBKE0sYiwxLEcpLGFbaz4+Ml09YVtNPj4yXSxhW2srND4+Ml09YVtNKzQ+PjJdLGFbays4Pj4yXT1hW00rOD4+Ml0sYVtrKzEyPj4yXT1hW00rMTI+PjJdLGFbaysxNj4+Ml09YVtNKzE2Pj4y''@;'; + put 'put ''XSxhW2srMjA+PjJdPWFbTSsyMD4+Ml0sYVtrKzI0Pj4yXT1hW00rMjQ+PjJdLGFbaysyOD4+Ml09YVtNKzI4Pj4yXSwrX1trPj4zXTwrX1trKzE2Pj4zXSYmK19bdz4+M108K19bUj4+M10mJihhW2M+PjJdPTErKFI9MHxhW2M+PjJdKSxhWyhSPUErNTYrKFI8PDUpfDApPj4yXT1hW2s+PjJd''@;'; + put 'put ''LGFbUis0Pj4yXT1hW2srND4+Ml0sYVtSKzg+PjJdPWFbays4Pj4yXSxhW1IrMTI+PjJdPWFbaysxMj4+Ml0sYVtSKzE2Pj4yXT1hW2srMTY+PjJdLGFbUisyMD4+Ml09YVtrKzIwPj4yXSxhW1IrMjQ+PjJdPWFbaysyND4+Ml0sYVtSKzI4Pj4yXT1hW2srMjg+PjJdKSxsZT1EfWZ1bmN0aW9u''@;'; + put 'put ''IFc1KGwsYyxmKXtmPStmLF9bKGx8PTApPj4zXT1jPStjLF9bbCs4Pj4zXT1mfWZ1bmN0aW9uIGtZKGwsYyxmLHAsbSxBLHcpe2x8PTAsY3w9MCxBfD0wLHd8PTA7dmFyIExlLFJlLFZlLHFlLG90LFN0LGt0LHN0LEV0LFp0LGN0LGJ0LGFuLFNuLEhuLHVyLEhyLEVyLGZyLERyLEpyLExyLGww''@;'; + put 'put ''LFZpLE9pLFJvLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLEs9MCxwZT0wLGdlPTAsYmU9MCxPZT0wLEhlPTAsbnQ9MCxXZT0wLGxvPTA7Zm9yKFJvPWxlLGxlPWxlKzI4OHwwLGZyPVJvKzI1NnwwLEVyPVJvKzI0MHwwLEhyPVJvKzIyNHwwLGwwPVJvKzI4MHwwLFZpPVJvKzI3MnwwLE9pPVJv''@;'; + put 'put ''KzMyfDAsRHI9Um8rMTZ8MCxKcj1SbyxrPVJvKzIwOHwwLE09Um8rMTkyfDAsRD0wfGFbKGZ8PTApKygocHw9MCk8PDIpPj4yXSxMcj0wfHZyKChtfD0wKTw8MiksYj0wOyEoKDB8Yik+PSgwfG0pKTspYVtMcisoYjw8Mik+PjJdPWFbZisoYitwPDwyKT4+Ml0sYj1iKzF8MDtmb3IoeDEoTHIs''@;'; + put 'put ''bSw0LDU5KSxXZT0xNisoMHxhWyhEPUQrMTZ8MCk+PjJdKXwwLGFbRXI+PjJdPWFbKHA9MTYrKDB8YVsoZj1sKzE2fDApPj4yXSl8MCk+PjJdLGFbRXIrND4+Ml09YVtwKzQ+PjJdLGFbRXIrOD4+Ml09YVtwKzg+PjJdLGFbRXIrMTI+PjJdPWFbcCsxMj4+Ml0sYVtmcj4+Ml09YVtXZT4+Ml0s''@;'; + put 'put ''YVtmcis0Pj4yXT1hW1dlKzQ+PjJdLGFbZnIrOD4+Ml09YVtXZSs4Pj4yXSxhW2ZyKzEyPj4yXT1hW1dlKzEyPj4yXSxCdShrLEVyLGZyKSxhW0RyPj4yXT1hW2s+PjJdLGFbRHIrND4+Ml09YVtrKzQ+PjJdLGFbRHIrOD4+Ml09YVtrKzg+PjJdLGFbRHIrMTI+PjJdPWFbaysxMj4+Ml0sRD01''@;'; + put 'put ''NisoMHxhW0Q+PjJdKXwwLGFbRXI+PjJdPWFbKHA9MTYrKDB8YVsoV2U9YysxNnwwKT4+Ml0pfDApPj4yXSxhW0VyKzQ+PjJdPWFbcCs0Pj4yXSxhW0VyKzg+PjJdPWFbcCs4Pj4yXSxhW0VyKzEyPj4yXT1hW3ArMTI+PjJdLGFbZnI+PjJdPWFbRD4+Ml0sYVtmcis0Pj4yXT1hW0QrND4+Ml0s''@;'; + put 'put ''YVtmcis4Pj4yXT1hW0QrOD4+Ml0sYVtmcisxMj4+Ml09YVtEKzEyPj4yXSxCdShNLEVyLGZyKSxhW0pyPj4yXT1hW00+PjJdLGFbSnIrND4+Ml09YVtNKzQ+PjJdLGFbSnIrOD4+Ml09YVtNKzg+PjJdLGFbSnIrMTI+PjJdPWFbTSsxMj4+Ml0sT2U9LjUqKGJlPShSZT0rX1tKcj4+M10tK19b''@;'; + put 'put ''ODgrKDB8YVtXZT4+Ml0pPj4zXSkrKExlPStfWzk2KygwfGFbZj4+Ml0pPj4zXSsgK19bRHI+PjNdKSksV2U9MHxhW0xyPj4yXSxhW09pPj4yXT1hW0RyPj4yXSxhW09pKzQ+PjJdPWFbRHIrND4+Ml0sYVtPaSs4Pj4yXT1hW0RyKzg+PjJdLGFbT2krMTI+PjJdPWFbRHIrMTI+PjJdLGFbKEQ9''@;'; + put 'put ''T2krMTZ8MCk+PjJdPWFbRHI+PjJdLGFbRCs0Pj4yXT1hW0RyKzQ+PjJdLGFbRCs4Pj4yXT1hW0RyKzg+PjJdLGFbRCsxMj4+Ml09YVtEcisxMj4+Ml0sYVsoZj1PaSszMnwwKT4+Ml09YVtKcj4+Ml0sYVtmKzQ+PjJdPWFbSnIrND4+Ml0sYVtmKzg+PjJdPWFbSnIrOD4+Ml0sYVtmKzEyPj4y''@;'; + put 'put ''XT1hW0pyKzEyPj4yXSxhWyhwPU9pKzQ4fDApPj4yXT1hW0pyPj4yXSxhW3ArND4+Ml09YVtKcis0Pj4yXSxhW3ArOD4+Ml09YVtKcis4Pj4yXSxhW3ArMTI+PjJdPWFbSnIrMTI+PjJdLEF1KFdlLDB8YVsoMj09KDMmYVtXZT4+Ml18MCk/V2U6V2UrLTQ4fDApKzQwPj4yXSxPaSw0LDE3Mjk2''@;'; + put 'put ''KSxfWzU2KyhXZT0wfGFbOTYrKDB8YVtXZSsxNj4+Ml0pPj4yXSk+PjNdPU9lLF9bV2UrNjQ+PjNdPS41Kig2KyhwZT0rX1tXZSszMj4+M10pKSsoSz0rX1soVmU9RHIrOHwwKT4+M10pLGZlW1dlKzgxPj4wXT0xLHFlPS41KihiZS0obnQ9K19bV2UrMjQ+PjNdKSksbnQ9LjUqKG50K2JlKSxX''@;'; + put 'put ''ZT1PaSsyNHwwLG90PU9pKzQwfDAsU3Q9T2krNTZ8MCxrdD1PaSs2NHwwLHN0PUpyKzh8MCxFdD1PaSs3MnwwLFp0PU9pKzgwfDAsY3Q9T2krODh8MCxidD1PaSs5NnwwLGFuPU9pKzEwNHwwLFNuPU9pKzExMnwwLEhuPU9pKzEyMHwwLHVyPWwwKzR8MCxNPTY9PSgwfEEpJjEsRz0wLFI9MCxw''@;'; + put 'put ''ZSs9Sys9MyxrPTE7Oyl7aWYoKDB8ayk+PSgwfHcpKXtIZT02O2JyZWFrfWlmKGM9MHxhW0xyKyhrPDwyKT4+Ml0sMSZrPyhsPTB8YVs5NisoMHxhWyhiPWMrMTZ8MCk+PjJdKT4+Ml0sMT09KDB8aykmJihHPS41KigoUj0rX1tsKzI0Pj4zXSkrYmUpLFI9LjUqKGJlLVIpKSxLPUsrLTYtK19b''@;'; + put 'put ''bCszMj4+M10sYVtPaT4+Ml09YVtEcj4+Ml0sYVtPaSs0Pj4yXT1hW0RyKzQ+PjJdLGFbT2krOD4+Ml09YVtEcis4Pj4yXSxhW09pKzEyPj4yXT1hW0RyKzEyPj4yXSxfW0Q+PjNdPStfW0RyPj4zXSxfW1dlPj4zXT1nZT1LKy02LF9bZj4+M109K19bSnI+PjNdLF9bb3Q+PjNdPWdlLGFbcD4+''@;'; + put 'put ''Ml09YVtKcj4+Ml0sYVtwKzQ+PjJdPWFbSnIrND4+Ml0sYVtwKzg+PjJdPWFbSnIrOD4+Ml0sYVtwKzEyPj4yXT1hW0pyKzEyPj4yXSxfW2t0Pj4zXT1HLF9bRXQ+PjNdPStfW3N0Pj4zXSxfW1p0Pj4zXT1HLF9bY3Q+PjNdPUssX1tidD4+M109UixfW2FuPj4zXT1LLF9bU24+PjNdPVIsX1tI''@;'; + put 'put ''bj4+M109K19bVmU+PjNdLGdlPS41KitfWzMyKygwfGFbOTYrKDB8YVtiPj4yXSk+PjJdKT4+M10rSyk6KGFbT2k+PjJdPWFbRHI+PjJdLGFbT2krND4+Ml09YVtEcis0Pj4yXSxhW09pKzg+PjJdPWFbRHIrOD4+Ml0sYVtPaSsxMj4+Ml09YVtEcisxMj4+Ml0sX1tEPj4zXT1xZSxfW1dlPj4z''@;'; + put 'put ''XT0rX1tWZT4+M10sX1tmPj4zXT1xZSxfW290Pj4zXT1wZSxfW3A+PjNdPW50LF9bU3Q+PjNdPXBlLF9ba3Q+PjNdPW50LF9bRXQ+PjNdPWdlPStfW3N0Pj4zXSxfW1p0Pj4zXT1sbz0rX1tKcj4+M10sX1tjdD4+M109Z2UsX1tidD4+M109bG8sX1thbj4+M109bG89cGUrNixfW1NuPj4zXT0r''@;'; + put 'put ''X1tEcj4+M10sX1tIbj4+M109bG8sZ2U9bG8rLjUqKHBlPStfWzMyKygwfGFbOTYrKDB8YVtjKzE2Pj4yXSk+PjJdKT4+M10pLHBlPWxvK3BlKSxhW3VyPj4yXT04LGFbbDA+PjJdPU9pLGFbSHI+PjJdPWFbRHI+PjJdLGFbSHIrND4+Ml09YVtEcis0Pj4yXSxhW0hyKzg+PjJdPWFbRHIrOD4+''@;'; + put 'put ''Ml0sYVtIcisxMj4+Ml09YVtEcisxMj4+Ml0sYVtFcj4+Ml09YVtKcj4+Ml0sYVtFcis0Pj4yXT1hW0pyKzQ+PjJdLGFbRXIrOD4+Ml09YVtKcis4Pj4yXSxhW0VyKzEyPj4yXT1hW0pyKzEyPj4yXSxhW2ZyPj4yXT1hW2wwPj4yXSxhW2ZyKzQ+PjJdPWFbbDArND4+Ml0sYj0wfFhJKEhyLEVy''@;'; + put 'put ''LGZyLFZpLE0pLCEobD0wfGFbVmk+PjJdKSlicmVhaztfWzU2KyhBPTB8YVs5NisoMHxhW2MrMTY+PjJdKT4+Ml0pPj4zXT1PZSxfW0ErNjQ+PjNdPWdlLGZlW0ErODE+PjBdPTEsQXUoYywwfGFbKDI9PSgzJmFbYz4+Ml18MCk/YzpjKy00OHwwKSs0MD4+Ml0sYixsLDE3Mjk2KSxrPWsrMXww''@;'; + put 'put ''fWU6ZG97aWYoNj09KDB8SGUpKXtmb3IoT2U9LjMzMzMzMzMzMzMzMzMzMzMqKFJlKzIqTGUpLGJlPS4zMzMzMzMzMzMzMzMzMzMzKigyKlJlK0xlKTshKCgwfGspPj0oMHxtKSk7KXtpZihjPTB8YVtMcisoazw8Mik+PjJdLDEmaz8oZ2U9KEhlPTE9PSgwfGspKT9PZTpSLEc9SGU/YmU6RyxS''@;'; + put 'put ''PUsrLTYsYVtPaT4+Ml09YVtEcj4+Ml0sYVtPaSs0Pj4yXT1hW0RyKzQ+PjJdLGFbT2krOD4+Ml09YVtEcis4Pj4yXSxhW09pKzEyPj4yXT1hW0RyKzEyPj4yXSxfW0Q+PjNdPStfW0RyPj4zXSxfW1dlPj4zXT1LKz0tMTIsX1tmPj4zXT0rX1tKcj4+M10sX1tvdD4+M109SyxhW3A+PjJdPWFb''@;'; + put 'put ''SnI+PjJdLGFbcCs0Pj4yXT1hW0pyKzQ+PjJdLGFbcCs4Pj4yXT1hW0pyKzg+PjJdLGFbcCsxMj4+Ml09YVtKcisxMj4+Ml0sX1trdD4+M109RyxfW0V0Pj4zXT0rX1tzdD4+M10sX1tadD4+M109RyxfW2N0Pj4zXT1SLF9bYnQ+PjNdPWdlLF9bYW4+PjNdPVIsX1tTbj4+M109Z2UsSz1SLFI9''@;'; + put 'put ''K19bVmU+PjNdKTooYVtPaT4+Ml09YVtEcj4+Ml0sYVtPaSs0Pj4yXT1hW0RyKzQ+PjJdLGFbT2krOD4+Ml09YVtEcis4Pj4yXSxhW09pKzEyPj4yXT1hW0RyKzEyPj4yXSxfW0Q+PjNdPXFlLF9bV2U+PjNdPStfW1ZlPj4zXSxfW2Y+PjNdPXFlLF9bb3Q+PjNdPXBlLF9bcD4+M109bnQsX1tT''@;'; + put 'put ''dD4+M109cGUsX1trdD4+M109bnQsX1tFdD4+M109Z2U9K19bc3Q+PjNdLF9bWnQ+PjNdPWxvPStfW0pyPj4zXSxfW2N0Pj4zXT1nZSxfW2J0Pj4zXT1sbyxfW2FuPj4zXT1sbz1wZSs2LF9bU24+PjNdPStfW0RyPj4zXSxwZT1sbyxnZT1SLFI9bG8pLF9bSG4+PjNdPVIsYVt1cj4+Ml09OCxh''@;'; + put 'put ''W2wwPj4yXT1PaSxhW0hyPj4yXT1hW0RyPj4yXSxhW0hyKzQ+PjJdPWFbRHIrND4+Ml0sYVtIcis4Pj4yXT1hW0RyKzg+PjJdLGFbSHIrMTI+PjJdPWFbRHIrMTI+PjJdLGFbRXI+PjJdPWFbSnI+PjJdLGFbRXIrND4+Ml09YVtKcis0Pj4yXSxhW0VyKzg+PjJdPWFbSnIrOD4+Ml0sYVtFcisx''@;'; + put 'put ''Mj4+Ml09YVtKcisxMj4+Ml0sYVtmcj4+Ml09YVtsMD4+Ml0sYVtmcis0Pj4yXT1hW2wwKzQ+PjJdLGI9MHxYSShIcixFcixmcixWaSxNKSwhKGw9MHxhW1ZpPj4yXSkpYnJlYWsgZTtBdShjLDB8YVsoMj09KDMmYVtjPj4yXXwwKT9jOmMrLTQ4fDApKzQwPj4yXSxiLGwsMTcyOTYpLGs9aysx''@;'; + put 'put ''fDAsUj1nZX1GdChMcil9fXdoaWxlKDApO2xlPVJvfWZ1bmN0aW9uIFNZKGwsYyl7Y3w9MDt2YXIgbSxBLGIsZj0wLHA9MCx3PTA7Zm9yKG09bGUsbGU9bGUrMTZ8MCxwPW0sdz0wPT0oMHxTYyhsfD0wKSksZmVbcD4+MF09MHxmZVsodz13PzE4NTkyOjE4NTg0KT4+MF0sZmVbcCsxPj4wXT0w''@;'; + put 'put ''fGZlW3crMT4+MF0sZmVbcCsyPj4wXT0wfGZlW3crMj4+MF0sZmVbcCszPj4wXT0wfGZlW3crMz4+MF0saDAocD0wfG9jKDg1NDkzLHAsMCksMTM3NDgzLDI4MCwxKSxzaShwLDAsODcxNzEsMTk1MDU5KSx3PTB8dnIoOTYpLGFbOCsoZj0wfGFbcCsxNj4+Ml0pPj4yXT13LF9bdz4+M109K19b''@;'; + put 'put ''KGI9MHxhWzgrKEE9MHxhW2wrMTY+PjJdKT4+Ml0pPj4zXSxfW3crMjQ+PjNdPStfW2IrMjQ+PjNdLGZlW2YrMTE1Pj4wXT0wfGZlW0ErMTE1Pj4wXSxhW2YrMTE2Pj4yXT0xJmFbQSsxMTY+PjJdXjEsYVtmKzI0OD4+Ml09YVtBKzI0OD4+Ml0sYVtmKzI1Mj4+Ml09YVtBKzI1Mj4+Ml0sZj0w''@;'; + put 'put ''fEhzKDB8ZGkobCksMSwwKTtmOylzaShwLDEsMHxhW2YrOD4+Ml0sMHxhW2YrMTI+PjJdKSxmPTB8SHMoMHxkaShsKSwxLGYpO2ZvcihmPTB8SHMoMHxkaShsKSwyLDApO2Y7KXNpKHAsMiwwfGFbZis4Pj4yXSwwfGFbZisxMj4+Ml0pLGY9MHxIcygwfGRpKGwpLDIsZik7cmV0dXJuIDB8c2ko''@;'; + put 'put ''cCwyLDExMTQ2NCwwKXx8c2kocCwyLDExMTQ2NCwxOTUwNTkpLDB8c2kocCwyLDExMTQ1NSwwKXx8c2kocCwyLDExMTQ1NSwxOTUwNTkpLGZ1bmN0aW9uIHYwZShsLGMpe2x8PTAsYVsoY3w9MCk+PjJdPWFbNDcxODldLGFbYys0Pj4yXT1hWzQ3MTkzXSxhW2MrOD4+Ml09YVs0NzE5NF0sYVtj''@;'; + put 'put ''KzEyPj4yXT1hWzQ3MTc0XSxhW2MrMTY+PjJdPWFbNDcxNzVdLGFbYysyMD4+Ml09YVs0NzE4MV0sYVtjKzI0Pj4yXT1hWzQ3MTgwXSxhW2MrMjg+PjJdPWFbNDcxNzldLGFbYyszMj4+Ml09YVs0NzIwNV0sYVtjKzM2Pj4yXT1hWzQ3MTk3XSxhW2MrNDA+PjJdPWFbNDcxODJdLGFbYys0ND4+''@;'; + put 'put ''Ml09YVs0NzE5Ml0sYVtjKzQ4Pj4yXT1hWzQ3MjAxXSxhW2MrNTI+PjJdPWFbNDcyMDBdLGFbYys1Nj4+Ml09YVs0NzE5OV0sYVtjKzYwPj4yXT1hWzQ3MjA0XSxhW2MrNjQ+PjJdPWFbNDcxOThdLGFbYys2OD4+Ml09YVs0NzE4M10sYVtjKzcyPj4yXT1hWzQ3MTQ1XSxhW2MrNzY+PjJdPWFb''@;'; + put 'put ''NDcxNDZdLGFbYys4MD4+Ml09YVs0NzE0N10sYVtjKzg0Pj4yXT1hWzQ3MTU3XSxhW2MrODg+PjJdPWFbNDcxNTBdLGFbYys5Mj4+Ml09YVs0NzE1MV0sYVtjKzk2Pj4yXT1hWzQ3MTUyXSxhW2MrMTAwPj4yXT1hWzQ3MTU0XSxhW2MrMTA0Pj4yXT1hWzQ3MTU1XSxhW2MrMTA4Pj4yXT1hWzQ3''@;'; + put 'put ''MTU4XSxhW2MrMTEyPj4yXT1hWzQ3MTYxXSxhW2MrMTE2Pj4yXT1hWzQ3MTU5XSxhW2MrMTIwPj4yXT1hWzQ3MTYwXSxhW2MrMTI0Pj4yXT1hWzQ3MTYzXSxhW2MrMTI4Pj4yXT1hWzQ3MTYyXSxhW2MrMTMyPj4yXT1hWzQ3MTY0XSxhW2MrMTM2Pj4yXT1hWzQ3MTY1XSxhW2MrMTQwPj4yXT1h''@;'; + put 'put ''WzQ3MTU2XSxhW2MrMTQ0Pj4yXT1hWzQ3MTY4XSxhW2MrMTUyPj4yXT1hWzQ3MTM4XSxhW2MrMTQ4Pj4yXT1hWzQ3MTQwXSxhWzQ3MTg5XT0wLGFbNDcxOTNdPTB8c2kobCwyLDg3NDEyLDApLGFbNDcxOTRdPTB8c2kobCwyLDg3NDIxLDApLGM9MHxzaShsLDIsMTAxNTQxLDApLGFbNDcxNzRd''@;'; + put 'put ''PWMsY3x8KGFbNDcxNzRdPTB8c2kobCwyLDEwMTU0MSwxOTUwNTkpKSxhWzQ3MTc1XT0wLGFbNDcxODFdPTAsYVs0NzE4MF09MHxzaShsLDIsMTAxNDM3LDApLGFbNDcxNzldPTB8c2kobCwyLDEwMTQyOCwwKSxhWzQ3MjA1XT0wfHNpKGwsMiwxMDE3MTcsMCksYVs0NzE5N109MCxhWzQ3MTgy''@;'; + put 'put ''XT0wfHNpKGwsMiwxMDgyMjQsMCksYVs0NzE5Ml09MHxzaShsLDIsODU0OTgsMCksYVs0NzIwMV09MCxhWzQ3MjAwXT0wfHNpKGwsMiwxMDE2MTcsMCksYVs0NzE5OV09MHxzaShsLDIsMTAxNjAzLDApLGFbNDcyMDRdPTB8c2kobCwyLDEwMTcwOCwwKSxhWzQ3MTk4XT0wLGFbNDcxODNdPTAs''@;'; + put 'put ''YVs0NzE0NV09MHxzaShsLDEsMTQxMDQ4LDApLGFbNDcxNDZdPTB8c2kobCwxLDE0MTExNiwwKSxhWzQ3MTQ3XT0wfHNpKGwsMSwxMDgyMzAsMCksYVs0NzE1N109MCxhWzQ3MTUwXT0wfHNpKGwsMSwxMDE0MjgsMCksYVs0NzE1MV09MHxzaShsLDEsMTAxNDM3LDApLGFbNDcxNTJdPTAsYVs0''@;'; + put 'put ''NzE1NF09MHxzaShsLDEsMTA4MjI0LDApLGFbNDcxNTVdPTAsYVs0NzE1OF09MCxhWzQ3MTYxXT0wfHNpKGwsMSwxMDE0MDksMCksYVs0NzE1OV09MHxzaShsLDEsMTQxMDc2LDApLGFbNDcxNjBdPTB8c2kobCwxLDEwMTQ3MiwwKSxhWzQ3MTYzXT0wfHNpKGwsMSwxMDE0ODQsMCksYVs0NzE2''@;'; + put 'put ''Ml09MHxzaShsLDEsMTAxMzQ4LDApLGFbNDcxNjRdPTB8c2kobCwxLDEwMTQ4OSwwKSxhWzQ3MTY1XT0wfHNpKGwsMSw4NTUxMCwwKSxhWzQ3MTU2XT0wLGFbNDcxNjhdPTAsYVs0NzE0MF09MHxzaShsLDAsMTAxNDA5LDApfShwLGMpLGxlPW0sMHxwfWZ1bmN0aW9uIFlDKGwsYyl7dmFyIGYs''@;'; + put 'put ''cCxtPTA7cmV0dXJuIHA9bGUsbGU9bGUrMTZ8MCxmPXAsaDAobD0wfEdyKGx8PTAsMHx0aShjfD0wKSwxKSwxMzc0NDcsMzA0LDEpLFI2KGMsbCksMj09KDB8JDUoYykpJiYoYz0wfFFuKDMrKDB8VW8oMHxhW2FbMTA0KygwfGFbKG09YysxNnwwKT4+Ml0pPj4yXT4+Ml0pKXwwKSxhW2Y+PjJd''@;'; + put 'put ''PWFbYVsxMDQrKDB8YVttPj4yXSk+PjJdPj4yXSxvbyhjLDg1NDg4LGYpLGtjKGwsMTA4MjI0LGMpKSxsZT1wLDB8bH1mdW5jdGlvbiBZNShsLGMsZixwKXtyZXR1cm4gcHw9MCxoMChmPTB8S2EobHw9MCxjfD0wLGZ8PTAsMCwxKSwxMzc0NjAsMTc2LDEpLFI2KHAsZiksMHxmfWZ1bmN0aW9u''@;'; + put 'put ''IGNsKGwsYyxmLHApe2x8PTAsY3w9MCxmfD0wO3ZhciBtLEEsdyxiPTA7dz1sZSxsZT1sZSszMnwwLEE9dysxNnwwLG09dywwfChwfD0wKSYmKGI9K19bYz4+M10sX1tjPj4zXT0rX1socD1jKzh8MCk+PjNdLF9bcD4+M109LWIpLGFbbT4+Ml09YVtjPj4yXSxhW20rND4+Ml09YVtjKzQ+PjJd''@;'; + put 'put ''LGFbbSs4Pj4yXT1hW2MrOD4+Ml0sYVttKzEyPj4yXT1hW2MrMTI+PjJdLGFbQT4+Ml09YVtmPj4yXSxhW0ErND4+Ml09YVtmKzQ+PjJdLGFbQSs4Pj4yXT1hW2YrOD4+Ml0sYVtBKzEyPj4yXT1hW2YrMTI+PjJdLEJ1KGwsbSxBKSxsZT13fWZ1bmN0aW9uIFVDKGwsYyl7bHw9MCxhWzQ3MTg5''@;'; + put 'put ''XT1hWyhjfD0wKT4+Ml0sYVs0NzE5M109YVtjKzQ+PjJdLGFbNDcxOTRdPWFbYys4Pj4yXSxhWzQ3MTc0XT1hW2MrMTI+PjJdLGFbNDcxNzVdPWFbYysxNj4+Ml0sYVs0NzE4MV09YVtjKzIwPj4yXSxhWzQ3MTgwXT1hW2MrMjQ+PjJdLGFbNDcxNzldPWFbYysyOD4+Ml0sYVs0NzIwNV09YVtj''@;'; + put 'put ''KzMyPj4yXSxhWzQ3MTk3XT1hW2MrMzY+PjJdLGFbNDcxODJdPWFbYys0MD4+Ml0sYVs0NzE5Ml09YVtjKzQ0Pj4yXSxhWzQ3MjAxXT1hW2MrNDg+PjJdLGFbNDcyMDBdPWFbYys1Mj4+Ml0sYVs0NzE5OV09YVtjKzU2Pj4yXSxhWzQ3MjA0XT1hW2MrNjA+PjJdLGFbNDcxOThdPWFbYys2ND4+''@;'; + put 'put ''Ml0sYVs0NzE4M109YVtjKzY4Pj4yXSxhWzQ3MTQ1XT1hW2MrNzI+PjJdLGFbNDcxNDZdPWFbYys3Nj4+Ml0sYVs0NzE0N109YVtjKzgwPj4yXSxhWzQ3MTU3XT1hW2MrODQ+PjJdLGFbNDcxNTBdPWFbYys4OD4+Ml0sYVs0NzE1MV09YVtjKzkyPj4yXSxhWzQ3MTUyXT1hW2MrOTY+PjJdLGFb''@;'; + put 'put ''NDcxNTRdPWFbYysxMDA+PjJdLGFbNDcxNTVdPWFbYysxMDQ+PjJdLGFbNDcxNThdPWFbYysxMDg+PjJdLGFbNDcxNjFdPWFbYysxMTI+PjJdLGFbNDcxNTldPWFbYysxMTY+PjJdLGFbNDcxNjBdPWFbYysxMjA+PjJdLGFbNDcxNjNdPWFbYysxMjQ+PjJdLGFbNDcxNjJdPWFbYysxMjg+PjJd''@;'; + put 'put ''LGFbNDcxNjRdPWFbYysxMzI+PjJdLGFbNDcxNjVdPWFbYysxMzY+PjJdLGFbNDcxNTZdPWFbYysxNDA+PjJdLGFbNDcxNjhdPWFbYysxNDQ+PjJdLGFbNDcxNDBdPWFbYysxNDg+PjJdLGFbNDcxMzhdPWFbYysxNTI+PjJdLEZ0KGMpLEg1KGwpLEMxKGwpfWZ1bmN0aW9uIFU1KGwsYyl7dmFy''@;'; + put 'put ''IGYscCxtLEEsdztyZXR1cm4gZj1sZSxsZT1sZSsxNnwwLHA9Zis4fDAsQT0xNzIrKDB8YVsxNisoY3w9MCk+PjJdKXwwLGFbKG09Zik+PjJdPWFbKHc9MTgwKygwfGFbMTYrKGx8PTApPj4yXSl8MCk+PjJdLGFbbSs0Pj4yXT1hW3crND4+Ml0sYVtwPj4yXT1hW0E+PjJdLGFbcCs0Pj4yXT1h''@;'; + put 'put ''W0ErND4+Ml0sYz0wfFFGKGwsbSxjLHApLGxlPWYsMHxjfWZ1bmN0aW9uIFFGKGwsYyxmLHApe2x8PTAsZnw9MCxwfD0wO3ZhciBtPTAsQT0wO209MHxhWzQrKGN8PTApPj4yXTtlOmRve2lmKCgwfG0pPjAmJihBPTB8YVtwKzQ+PjJdLCgwfEEpPjApKWlmKCgwfG0pPCgwfEEpKWZvcihtPTB8''@;'; + put 'put ''YVtjPj4yXSxwPTA7Oyl7aWYoIShjPTB8YVttKyhwPDwyKT4+Ml0pKXtjPTA7YnJlYWsgZX1pZigoMHxhWygyPT0oMyZhW2M+PjJdfDApP2M6YystNDh8MCkrNDA+PjJdKT09KDB8ZikpYnJlYWs7cD1wKzF8MH1lbHNlIGZvcihtPTB8YVtwPj4yXSxwPTA7Oyl7aWYoIShjPTB8YVttKyhwPDwy''@;'; + put 'put ''KT4+Ml0pKXtjPTA7YnJlYWsgZX1pZigoMHxhWygzPT0oMyZhW2M+PjJdfDApP2M6Yys0OHwwKSs0MD4+Ml0pPT0oMHxsKSlicmVhaztwPXArMXwwfWVsc2UgYz0wfXdoaWxlKDApO3JldHVybiAwfGN9ZnVuY3Rpb24gTVkobCxjKXt2YXIgZixwLG0sQSx3O3JldHVybiBmPWxlLGxlPWxlKzE2''@;'; + put 'put ''fDAscD1mKzh8MCxBPTE5NisoMHxhWzE2KyhjfD0wKT4+Ml0pfDAsYVsobT1mKT4+Ml09YVsodz0xODgrKDB8YVsxNisobHw9MCk+PjJdKXwwKT4+Ml0sYVttKzQ+PjJdPWFbdys0Pj4yXSxhW3A+PjJdPWFbQT4+Ml0sYVtwKzQ+PjJdPWFbQSs0Pj4yXSxjPTB8UUYobCxtLGMscCksbGU9Ziww''@;'; + put 'put ''fGN9ZnVuY3Rpb24gUUMobCl7dmFyIGM9MCxmPTAscD0wLG09MDtyZXR1cm4gcD00OCsobHw9MCl8MCxjPShjPTB8YVsxODArKGY9MHxhWzE2KygwfGFbKDM9PSgzJmFbbD4+Ml18MCk/bDpwKSs0MD4+Ml0pPj4yXSk+PjJdKT8wfFYwKGMsOCsoYVtmKzE4ND4+Ml08PDIpfDApOjB8UW4oOCso''@;'; + put 'put ''YVtmKzE4ND4+Ml08PDIpfDApLGFbMTgwKygwfGFbMTYrKDB8YVsoMz09KDMmYVtsPj4yXXwwKT9sOnApKzQwPj4yXSk+PjJdKT4+Ml09YyxmPTB8YVsxODArKG09MHxhWzE2KygwfGFbKDM9PSgzJmFbbD4+Ml18MCk/bDpwKSs0MD4+Ml0pPj4yXSk+PjJdLGFbKG09bSsxODR8MCk+PjJdPTEr''@;'; + put 'put ''KGM9MHxhW20+PjJdKSxhW2YrKGM8PDIpPj4yXT1sLGFbKDB8YVsxODArKHA9MHxhWzE2KygwfGFbKDM9PSgzJmFbbD4+Ml18MCk/bDpwKSs0MD4+Ml0pPj4yXSk+PjJdKSsoYVtwKzE4ND4+Ml08PDIpPj4yXT0wLHA9bCstNDh8MCxjPShmPTB8YVsxNzIrKGM9MHxhWzE2KygwfGFbKDI9PSgz''@;'; + put 'put ''JmFbbD4+Ml18MCk/bDpwKSs0MD4+Ml0pPj4yXSk+PjJdKT8wfFYwKGYsOCsoYVtjKzE3Nj4+Ml08PDIpfDApOjB8UW4oOCsoYVtjKzE3Nj4+Ml08PDIpfDApLGFbMTcyKygwfGFbMTYrKDB8YVsoMj09KDMmYVtsPj4yXXwwKT9sOnApKzQwPj4yXSk+PjJdKT4+Ml09YyxmPTB8YVsxNzIrKGM9''@;'; + put 'put ''MHxhWzE2KygwfGFbKDI9PSgzJmFbbD4+Ml18MCk/bDpwKSs0MD4+Ml0pPj4yXSk+PjJdLGFbKGM9YysxNzZ8MCk+PjJdPTErKG09MHxhW2M+PjJdKSxhW2YrKG08PDIpPj4yXT1sLGFbKDB8YVsxNzIrKG09MHxhWzE2KygwfGFbKDI9PSgzJmFbbD4+Ml18MCk/bDpwKSs0MD4+Ml0pPj4yXSk+''@;'; + put 'put ''PjJdKSsoYVttKzE3Nj4+Ml08PDIpPj4yXT0wLDB8bH1mdW5jdGlvbiBzcChsLGMpe2N8PTA7dmFyIHAsbSxmPTAsQT0wLHc9MCxiPTA7Zm9yKG09MHxhWyhwPTQrKGx8PTApfDApPj4yXSxmPTA7ISgoMHxmKT49KDB8bSkpOyl7aWYoKDB8YVsodz0oQT0wfGFbbD4+Ml0pKyhmPDwyKXwwKT4+''@;'; + put 'put ''Ml0pPT0oMHxjKSl7Yj00O2JyZWFrfWY9ZisxfDB9ND09KDB8YikmJihhW3A+PjJdPWI9bSstMXwwLGFbdz4+Ml09YVtBKyhiPDwyKT4+Ml0sYVsoMHxhW2w+PjJdKSsoYjw8Mik+PjJdPTApfWZ1bmN0aW9uIFUzKGwpe2lmKGx8PTApcmV0dXJuIHNwKDE4MCsoMHxhWzE2KygwfGFbKDM9PSgz''@;'; + put 'put ''JmFbbD4+Ml18MCk/bDpsKzQ4fDApKzQwPj4yXSk+PjJdKXwwLGwpLHZvaWQgc3AoMTcyKygwfGFbMTYrKDB8YVsoMj09KDMmYVtsPj4yXXwwKT9sOmwrLTQ4fDApKzQwPj4yXSk+PjJdKXwwLGwpO1ByKDg1NTUxLDg1NTYxLDExNyw4NTU3MCl9ZnVuY3Rpb24gJGQobCl7dmFyIGM9MCxmPTAs''@;'; + put 'put ''cD0wLG09MDtwPTQ4KyhsfD0wKXwwLGM9KGM9MHxhWzIwNCsoZj0wfGFbMTYrKDB8YVsoMz09KDMmYVtsPj4yXXwwKT9sOnApKzQwPj4yXSk+PjJdKT4+Ml0pPzB8VjAoYyw4KyhhW2YrMjA4Pj4yXTw8Mil8MCk6MHxRbig4KyhhW2YrMjA4Pj4yXTw8Mil8MCksYVsyMDQrKDB8YVsxNisoMHxh''@;'; + put 'put ''WygzPT0oMyZhW2w+PjJdfDApP2w6cCkrNDA+PjJdKT4+Ml0pPj4yXT1jLGM9MHxhWzIwNCsobT0wfGFbMTYrKDB8YVsoMz09KDMmYVtsPj4yXXwwKT9sOnApKzQwPj4yXSk+PjJdKT4+Ml0sYVsobT1tKzIwOHwwKT4+Ml09MSsoZj0wfGFbbT4+Ml0pLGFbYysoZjw8Mik+PjJdPWwsYVsoMHxh''@;'; + put 'put ''WzIwNCsocD0wfGFbMTYrKDB8YVsoMz09KDMmYVtsPj4yXXwwKT9sOnApKzQwPj4yXSk+PjJdKT4+Ml0pKyhhW3ArMjA4Pj4yXTw8Mik+PjJdPTB9ZnVuY3Rpb24gRVkobCl7IWZ1bmN0aW9uIEpGKGwsYyl7bHw9MDt2YXIgcCx3LGY9MCxtPTAsQT0wO2ZvcihwPTB8YVsodz00KyhjfD0wKXww''@;'; + put 'put ''KT4+Ml0sbT0wfGFbYz4+Ml0sZj0wOzspe2lmKCgwfGYpPj0oMHxwKSl7QT00O2JyZWFrfWlmKCgwfGFbbSsoZjw8Mik+PjJdKT09KDB8bCkpYnJlYWs7Zj1mKzF8MH00PT0oMHxBKSYmKGY9bT8wfFYwKG0sOCsocDw8Mil8MCk6MHxRbig4KyhwPDwyKXwwKSxhW2M+PjJdPWYsYVt3Pj4yXT1B''@;'; + put 'put ''PTErKG09MHxhW3c+PjJdKXwwLGFbZisobTw8Mik+PjJdPWwsYVsoMHxhW2M+PjJdKSsoQTw8Mik+PjJdPTApfShsfD0wLDIwNCsoMHxhWzE2KygwfGFbKDM9PSgzJmFbbD4+Ml18MCk/bDpsKzQ4fDApKzQwPj4yXSk+PjJdKXwwKX1mdW5jdGlvbiBLQShsLGMsZil7bHw9MCxjfD0wLGZ8PTA7''@;'; + put 'put ''dmFyIHcsTSxELHA9MCxtPTAsQT0wLGI9MCxrPTA7aWYoRD0wfHZyKDk2KSxhWyhwPUQrNDh8MCk+PjJdPTN8YVtwPj4yXSxhW0Q+PjJdPS00JmFbRD4+Ml18MixtPTB8dnIoMTc2KSxhWyhNPUQrMTZ8MCk+PjJdPW0sYVsoMz09KDMmYVtEPj4yXXwwKT9EOnApKzQwPj4yXT1sLHc9RCstNDh8''@;'; + put 'put ''MCxhWygyPT0oMyZhW0Q+PjJdfDApP0Q6dykrNDA+PjJdPWMsZmVbbSsxMTI+PjBdPTEsZil7aWYoYVtEPj4yXT0xNSZhW0Q+PjJdfC0xNiZhW2Y+PjJdLGFbcD4+Ml09MTUmYVtwPj4yXXwtMTYmYVtmPj4yXSxpdFttKzE2OD4+MV09MHxpdFsxNjgrKEE9MHxhWyhrPWYrMTZ8MCk+PjJdKT4+''@;'; + put 'put ''MV0saXRbbSsxNTQ+PjFdPTB8aXRbQSsxNTQ+PjFdLGFbbSsxNTY+PjJdPWFbQSsxNTY+PjJdLGl0W20rMTcwPj4xXT0wfGl0W0ErMTcwPj4xXSxiPWYrNDh8MCwoMHwobD0wfGFbKDM9PSgzJmFbRD4+Ml18MCk/RDpwKSs0MD4+Ml0pKSE9KDB8YVsoMz09KDB8KGM9MyZhW2Y+PjJdKSk/Zjpi''@;'; + put 'put ''KSs0MD4+Ml0pKXtpZihwPWYrLTQ4fDAsKDB8bCk9PSgwfGFbKDI9PSgwfGMpP2Y6cCkrNDA+PjJdKSl7bD1BKzU2fDAsYz00MCsobT1tKzE2fDApfDA7ZG97YVttPj4yXT1hW2w+PjJdLG09bSs0fDAsbD1sKzR8MH13aGlsZSgoMHxtKTwoMHxjKSl9fWVsc2V7bD1BKzE2fDAsYz00MCsobT1t''@;'; + put 'put ''KzE2fDApfDA7ZG97YVttPj4yXT1hW2w+PjJdLG09bSs0fDAsbD1sKzR8MH13aGlsZSgoMHxtKTwoMHxjKSk7cD1mKy00OHwwfWlmKCgwfChsPTB8YVsoMj09KDMmYVtEPj4yXXwwKT9EOncpKzQwPj4yXSkpIT0oMHxhWygyPT0oMHwoYz0zJmFbZj4+Ml0pKT9mOnApKzQwPj4yXSkpe2lmKCgw''@;'; + put 'put ''fGwpPT0oMHxhWygzPT0oMHxjKT9mOmIpKzQwPj4yXSkpe2w9MTYrKDB8YVtrPj4yXSl8MCxjPTQwKyhtPTU2KygwfGFbTT4+Ml0pfDApfDA7ZG97YVttPj4yXT1hW2w+PjJdLG09bSs0fDAsbD1sKzR8MH13aGlsZSgoMHxtKTwoMHxjKSl9fWVsc2V7bD01NisoMHxhW2s+PjJdKXwwLGM9NDAr''@;'; + put 'put ''KG09NTYrKDB8YVtNPj4yXSl8MCl8MDtkb3thW20+PjJdPWFbbD4+Ml0sbT1tKzR8MCxsPWwrNHwwfXdoaWxlKCgwfG0pPCgwfGMpKX0wfGFbKGw9MTcyKygwfGFbaz4+Ml0pfDApPj4yXXx8KGFbbD4+Ml09RCksYVsxMTYrKDB8YVtNPj4yXSk+PjJdPWZ9ZWxzZSBhW20rMTU2Pj4yXT0xLGl0''@;'; + put 'put ''W20rMTU0Pj4xXT0xLGl0W20rMTY4Pj4xXT0xLGl0W20rMTcwPj4xXT0xO3JldHVybiAwfER9ZnVuY3Rpb24gSmMobCxjLGYpe3JldHVybiAwfFFDKDB8S0EobHw9MCxjfD0wLGZ8PTApKX1mdW5jdGlvbiBzSShsLGMpe3ZhciBmLHAsbTthWzE2NCsoZj0wfGFbMTYrKGN8PTApPj4yXSk+PjJd''@;'; + put 'put ''PW09MHxhWyhsPTE5MisoMHxhWzE2KyhsfD0wKT4+Ml0pfDApPj4yXSxwPW0sMHxtJiYoYVsxNjgrKDB8YVtwKzE2Pj4yXSk+PjJdPWMpLGFbbD4+Ml09YyxhW2YrMTY4Pj4yXT0wLCgwfHApPT0oMHxjKSYmUHIoODU1ODcsODU1NjEsMjE1LDg1NjAzKX1mdW5jdGlvbiB1SShsLGMpe3ZhciBm''@;'; + put 'put ''LHA7MHxmdW5jdGlvbiB3MGUobCxjKXtmb3IoY3w9MCxsPTE5MisoMHxhWzE2KyhsfD0wKT4+Ml0pfDA7ISgwPT0oMHwobD0wfGFbbD4+Ml0pKXwoMHxsKT09KDB8YykpOylsPTE2NCsoMHxhW2wrMTY+PjJdKXwwO3JldHVybiAwfGx9KGx8PTAsY3w9MCl8fFByKDg1NjUyLDg1NTYxLDIzMSw4''@;'; + put 'put ''NTY3MykscD1mPTB8YVsxNjQrKGM9MHxhW2MrMTY+PjJdKT4+Ml0sYz1jKzE2OHwwLDB8ZiYmKGFbMTY4KygwfGFbZisxNj4+Ml0pPj4yXT1hW2M+PjJdKSwoYz0wfGFbYz4+Ml0pP2FbMTY0KygwfGFbYysxNj4+Ml0pPj4yXT1wOmFbMTkyKygwfGFbbCsxNj4+Ml0pPj4yXT1wfWZ1bmN0aW9u''@;'; + put 'put ''IFVoKGwpe2x8PTA7dmFyIGMsZixwPTAsbT0wO3JldHVybiBjPTB8dnIoNjQpLGFbYz4+Ml09LTQmYVtjPj4yXXwxLGFbKGY9YysxNnwwKT4+Ml09MHx2cigzMDQpLGFbYysyND4+Ml09MHxkaShsKSxmZVsxNTYrKG09MHxhW2Y+PjJdKT4+MF09MSxfW20rOTY+PjNdPTEsX1ttKzg4Pj4zXT0x''@;'; + put 'put ''LF9bbSs4MD4+M109MSxhW20rMjE2Pj4yXT0xLGFbbSsxNzY+PjJdPTAsbT0wfHZyKDIwKSxhWzE3MisocD0wfGFbZj4+Ml0pPj4yXT1tLGFbcCsxODQ+PjJdPTAscD0wfHZyKDIwKSxhWzE4MCsoMHxhW2Y+PjJdKT4+Ml09cCxzSShsLGMpLGFbKGw9MjMyKygwfGFbbCsxNj4+Ml0pfDApPj4y''@;'; + put 'put ''XT0xKygwfGFbbD4+Ml0pLDB8Y31mdW5jdGlvbiBjSShsLGMpe2x8PTA7dmFyIGY9MCxwPTAsbT0wLEE9MDttPTQ4KyhjfD0wKXwwLGY9KHA9MHxhWzE4OCsoZj0wfGFbMTYrKDB8YVsoMz09KDMmYVtjPj4yXXwwKT9jOm0pKzQwPj4yXSk+PjJdKT4+Ml0pPzB8VjAocCw4KyhhW2YrMTkyPj4y''@;'; + put 'put ''XTw8Mil8MCk6MHxRbig4KyhhW2YrMTkyPj4yXTw8Mil8MCksYVsxODgrKDB8YVsxNisoMHxhWygzPT0oMyZhW2M+PjJdfDApP2M6bSkrNDA+PjJdKT4+Ml0pPj4yXT1mLHA9MHxhWzE4OCsoQT0wfGFbMTYrKDB8YVsoMz09KDMmYVtjPj4yXXwwKT9jOm0pKzQwPj4yXSk+PjJdKT4+Ml0sYVso''@;'; + put 'put ''QT1BKzE5MnwwKT4+Ml09MSsoZj0wfGFbQT4+Ml0pLGFbcCsoZjw8Mik+PjJdPWMsYVsoMHxhWzE4OCsobT0wfGFbMTYrKDB8YVsoMz09KDMmYVtjPj4yXXwwKT9jOm0pKzQwPj4yXSk+PjJdKT4+Ml0pKyhhW20rMTkyPj4yXTw8Mik+PjJdPTAsbT1jKy00OHwwLGY9KHA9MHxhWzE5NisoZj0w''@;'; + put 'put ''fGFbMTYrKDB8YVsoMj09KDMmYVtjPj4yXXwwKT9jOm0pKzQwPj4yXSk+PjJdKT4+Ml0pPzB8VjAocCw4KyhhW2YrMjAwPj4yXTw8Mil8MCk6MHxRbig4KyhhW2YrMjAwPj4yXTw8Mil8MCksYVsxOTYrKDB8YVsxNisoMHxhWygyPT0oMyZhW2M+PjJdfDApP2M6bSkrNDA+PjJdKT4+Ml0pPj4y''@;'; + put 'put ''XT1mLHA9MHxhWzE5NisoZj0wfGFbMTYrKDB8YVsoMj09KDMmYVtjPj4yXXwwKT9jOm0pKzQwPj4yXSk+PjJdKT4+Ml0sYVsoZj1mKzIwMHwwKT4+Ml09MSsoQT0wfGFbZj4+Ml0pLGFbcCsoQTw8Mik+PjJdPWMsYVsoMHxhWzE5NisoQT0wfGFbMTYrKDB8YVsoMj09KDMmYVtjPj4yXXwwKT9j''@;'; + put 'put ''Om0pKzQwPj4yXSk+PjJdKT4+Ml0pKyhhW0ErMjAwPj4yXTw8Mik+PjJdPTAsZmVbMjQwKygwfGFbbCsxNj4+Ml0pPj4wXT0xLGZlWzI0MCsoMHxhWzE2KygwfEFhKGwpKT4+Ml0pPj4wXT0xfWZ1bmN0aW9uIFhGKGwpe3ZhciBjLGY9MDsobHw9MCl8fFByKDg1NTUxLDg1NTYxLDI2OSw4NTY5''@;'; + put 'put ''MCksMHwoYz0wfGFbMTE2KygwfGFbbCsxNj4+Ml0pPj4yXSkmJigwfGFbKGY9MTcyKygwfGFbYysxNj4+Ml0pfDApPj4yXSk9PSgwfGwpJiYoYVtmPj4yXT0wKSxzcCgxODgrKDB8YVsxNisoMHxhWygzPT0oMyZhW2w+PjJdfDApP2w6bCs0OHwwKSs0MD4+Ml0pPj4yXSl8MCxsKSxzcCgxOTYr''@;'; + put 'put ''KDB8YVsxNisoMHxhWygyPT0oMyZhW2w+PjJdfDApP2w6bCstNDh8MCkrNDA+PjJdKT4+Ml0pfDAsbCl9ZnVuY3Rpb24gejYobCxjKXt2YXIgZixwLG07Y3w9MCxtPWxlLGxlPWxlKzE2fDAscD0wfGFbKGY9MTcyKygwfGFbMTYrKGx8PTApPj4yXSl8MCk+PjJdO2Rve2lmKCgwfHApIT0oMHxj''@;'; + put 'put ''KSl7aWYoIXApe2FbZj4+Ml09YyxiMGUobCxjKTticmVha31Qcig4NzU5Myw4NTU2MSwzNDAsODU3MjgpfWVsc2UgJHIoMCw4NTcwNyxtKX13aGlsZSgwKTtsZT1tfWZ1bmN0aW9uIGIwZShsLGMpe3ZhciBwLG0sZj0wLEE9MDtmb3IoKDB8aHJbKGY9MTcwKygwfGFbMTYrKGN8PTApPj4yXSl8''@;'; + put 'put ''MCk+PjFdKTwoNjU1MzUmKGw9MHxpdFsxNzArKEE9MHxhWzE2KyhsfD0wKT4+Ml0pPj4xXSkpJiYoaXRbZj4+MV09bCkscD1BKzE2OHwwLG09QSsxNTR8MCxmPUErMTU2fDAsbD1jO2w7KWl0WyhBPTE2OCsoYz0wfGFbbCsxNj4+Ml0pfDApPj4xXT0oMHxocltBPj4xXSkrKDB8aHJbcD4+MV0p''@;'; + put 'put ''LGl0WyhBPWMrMTU0fDApPj4xXT0oMHxocltBPj4xXSkrKDB8aHJbbT4+MV0pLGFbKEE9YysxNTZ8MCk+PjJdPSgwfGFbQT4+Ml0pKygwfGFbZj4+Ml0pLGw9MHxhW2MrMTcyPj4yXX1mdW5jdGlvbiB4WShsKXt2YXIgZixjPTAscD0wLG09MDtjPTB8YVsxNzIrKDB8YVsoZj0xNisobHw9MCl8''@;'; + put 'put ''MCk+PjJdKT4+Ml07ZTpmb3IoO2M7KWZvcihmSShjLGwpLG09MHxhW2MrMTY+PjJdLHA9MHxhW20rMTcyPj4yXSwwfGl0W20rMTY4Pj4xXXx8aEkoYyk7Oyl7aWYoMSE9KDB8ZmVbMTEyKygwfGFbYysxNj4+Ml0pPj4wXSkpe2M9cDtjb250aW51ZSBlfWlmKDEhPSgwfGZlWzE1NisoYz0wfGFb''@;'; + put 'put ''MTYrKDB8YVsoMj09KDMmYVtjPj4yXXwwKT9jOmMrLTQ4fDApKzQwPj4yXSk+PjJdKT4+MF0pKXtjPXA7Y29udGludWUgZX1pZigxIT0oMHxhW2MrMTg0Pj4yXSkpe2M9cDtjb250aW51ZSBlfWZJKGM9MHxhW2FbYysxODA+PjJdPj4yXSxsKX1hWzE3MisoMHxhW2Y+PjJdKT4+Ml09MH1mdW5j''@;'; + put 'put ''dGlvbiBmSShsLGMpe3ZhciBmO2Y9MHxhWzE2KyhjfD0wKT4+Ml0saXRbKGw9MTY4KyhjPTB8YVsxNisobHw9MCk+PjJdKXwwKT4+MV09KDB8aHJbbD4+MV0pLSgwfGhyW2YrMTY4Pj4xXSksaXRbKGw9YysxNTR8MCk+PjFdPSgwfGhyW2w+PjFdKS0oMHxocltmKzE1ND4+MV0pLGFbKGM9Yysx''@;'; + put 'put ''NTZ8MCk+PjJdPSgwfGFbYz4+Ml0pLSgwfGFbZisxNTY+PjJdKX1mdW5jdGlvbiBoSShsKXt2YXIgYz0wLGY9MCxwPTAsbT0wLEE9MDtmb3IoKGx8PTApfHxQcig4NTU1MSw4NTU2MSwxMjgsODU3NDEpLEE9bCs0OHwwLGY9MDttPTB8YVsoMHxhWyhwPTE4MCsoMHxhWzE2KygwfGFbKDM9PSgz''@;'; + put 'put ''JihjPTB8YVtsPj4yXSl8MCk/bDpBKSs0MD4+Ml0pPj4yXSl8MCk+PjJdKSsoZjw8Mik+PjJdOykoMHxtKT09KDB8bCkmJnNwKHAsbCksZj1mKzF8MDtmb3IoQT1sKy00OHwwLG09MDtwPTB8YVsoMHxhWyhmPTE3MisoMHxhWzE2KygwfGFbKDI9PSgzJmN8MCk/bDpBKSs0MD4+Ml0pPj4yXSl8''@;'; + put 'put ''MCk+PjJdKSsobTw8Mik+PjJdOykoMHxwKT09KDB8bCkmJihzcChmLGwpLGM9MHxhW2w+PjJdKSxtPW0rMXwwfWZ1bmN0aW9uIGc3KGwsYyl7Y3w9MDt2YXIgZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MDtmPTAsdz0wfER0KGx8PTApO2U6Zm9yKDt3Oylmb3IoYj0wfHp0KGwsdyks''@;'; + put 'put ''az13KzE2fDAsQT1iOzspe2lmKCFBKXt3PWI7Y29udGludWUgZX0oMHxhWzE2KyhtPTB8YVtBKzE2Pj4yXSk+PjJdKT4oMHxhWzEyKyhwPTB8YVtrPj4yXSk+PjJdKT8oMHxhW3ArMTY+PjJdKTw9KDB8YVttKzEyPj4yXSkmJkthKGwsdyxBLDAsMSk6KEthKGwsQSx3LDAsMSksZj0xKSxBPTB8''@;'; + put 'put ''enQobCxBKX1kb3tpZigwfGYpe3c9MHxkcyhsLDg1NzY2LDEpLGs9MHx2cigoMHxHbyhsKSk8PDIpLGI9MHx2cigoMHxHbyhsKSk8PDIpLG09Yys0fDAscD0wfER0KGwpO2U6Zm9yKDs7KXtpZighcCl7Zj0yMzticmVha31pZigwPT0oMHxhWzgrKDB8YVtwKzE2Pj4yXSk+PjJdKSYmMHx6ZChs''@;'; + put 'put ''LHAsMSwxKSl7dDpkb3tpZigwfEpDKGwscCx3LGIpKXtpZihBPTB8R28odyksKDB8cnZlKGwsdyxrKSkhPSgwfEEpKXtmPTE3O2JyZWFrIGV9Zm9yKHgxKGIsQSw0LDYwKSxmPTA7Oyl7aWYoKDB8Zik+PSgwfEEpKWJyZWFrIHQ7YVsyMzYrKDB8YVsxNisoTT0wfGFbaysoZjw8Mik+PjJdKT4+''@;'; + put 'put ''Ml0pPj4yXT1hWyhjPWIrKGY8PDIpfDApPj4yXSxhWygwfGFbbT4+Ml0pKyhhW2M+PjJdPDwyKT4+Ml09TSxmPWYrMXwwfX19d2hpbGUoMCk7azBlKHcpfXA9MHx6dChsLHApfWlmKDE3PT0oMHxmKSlQcig4NTc3MSw4NTc4MSwyNjUsODU3OTIpO2Vsc2UgaWYoMjM9PSgwfGYpKXtGdChrKTti''@;'; + put 'put ''cmVha319fXdoaWxlKDApfWZ1bmN0aW9uIEpDKGwsYyxmLHApe2x8PTAsZnw9MCxwfD0wO3ZhciBtPTAsQT0wLHc9MCxiPTAsaz0wO2ZvcihhWzgrKHc9MHxhWzE2KyhjfD0wKT4+Ml0pPj4yXT0xLHc9MHxhWzIzNisoMHxhWzE2KygwfGFbdysyMD4+Ml0pPj4yXSk+PjJdLGFbcCsoKDB8R28o''@;'; + put 'put ''ZikpPDwyKT4+Ml09dyxZbihmLGMsMSksdz0wfHcwKGwsYyksbT0wO3c7KW09bSsoKDB8YVsyMzYrKDB8YVsxNisoMHxhWzIwKyhiPTB8YVsxNisoQT0wfGFbKDI9PSgwfChrPTMmYVt3Pj4yXSkpP3c6dystNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSk+PjJdKT4+Ml0pPigwfGFbMjM2KygwfGFb''@;'; + put 'put ''MTYrKDB8YVsyMCsoMHxhWzE2KygwfGFbKDM9PSgwfGspP3c6dys0OHwwKSs0MD4+Ml0pPj4yXSk+PjJdKT4+Ml0pPj4yXSkmMSl8MCwwfGFbYis4Pj4yXXx8KG09KDB8SkMobCxBLGYscCkpK218MCksdz0wfFMwKGwsdyk7Zm9yKHc9MHxNZihsLGMpO3c7KW09bSsoKDB8YVsyMzYrKDB8YVsx''@;'; + put 'put ''NisoMHxhWzIwKygwfGFbMTYrKDB8YVsoMj09KDB8KGI9MyZhW3c+PjJdKSk/dzp3Ky00OHwwKSs0MD4+Ml0pPj4yXSk+PjJdKT4+Ml0pPj4yXSk+KDB8YVsyMzYrKDB8YVsxNisoMHxhWzIwKyhrPTB8YVsxNisoQT0wfGFbKDM9PSgwfGIpP3c6dys0OHwwKSs0MD4+Ml0pPj4yXSk+PjJdKT4+''@;'; + put 'put ''Ml0pPj4yXSkmMSl8MCwwfGFbays4Pj4yXXx8KG09KDB8SkMobCxBLGYscCkpK218MCksdz0wfEgzKGwsdyk7cmV0dXJuIDB8bX1mdW5jdGlvbiBydmUobCxjLGYpe2x8PTAsY3w9MCxmfD0wO3ZhciBwPTAsbT0wLEE9MDtmb3IobT0wO3A9MHxTMGUobCxjKTspe2ZvcihhW2YrKG08PDIpPj4y''@;'; + put 'put ''XT1hWzIwKygwfGFbcCsxNj4+Ml0pPj4yXSxxcihjLHApLHA9MHx3MChsLHApO3A7KUE9MHxTMChsLHApLHFtKGwscCkscD1BO209bSsxfDB9cmV0dXJuIDB8bX1mdW5jdGlvbiBrMGUobCl7dmFyIGM9MCxmPTA7Zm9yKGM9MHxEdChsfD0wKTtjOylmPTB8enQobCxjKSxxcihsLGMpLGM9Zn1m''@;'; + put 'put ''dW5jdGlvbiBTMGUobCxjKXtsfD0wO3ZhciBmPTA7Zm9yKGY9MHxEdChjfD0wKTs7KXtpZighZil7Zj0wO2JyZWFrfWlmKCEoMHx6ZChsLGYsMSwwKSkpYnJlYWs7Zj0wfHp0KGMsZil9cmV0dXJuIDB8Zn1mdW5jdGlvbiAkQShsLGMpe2N8PTA7dmFyIHcsZj0wLHA9MCxtPTAsQT0wO2Zvcihm''@;'; + put 'put ''dW5jdGlvbiBYQyhsKXtsfD0wO3ZhciBjPTA7ZmVbMTkzNzY5XT0wLGFbNDY3NDFdPWwsYz00KygoMHxWMygwfEFhKGwpKSk8PDIpfDAsYVs0Njc0MF09MHx2cihjKSxhWzQ2NzM5XT0wfHZyKGMpLGZ1bmN0aW9uIFZZKGwpe2x8PTA7dmFyIGM9MCxmPTA7YVs0Njc0NF09OCxhWzQ3MTM2XT0y''@;'; + put 'put ''NCxfWzIzMjE1XT0uOTk1LDB8KGw9MHxMaShsLDg2Njg1KSkmJihjPStrcChsKSk+MCYmKGFbNDY3NDRdPX5+KChmPWMqKygwfGFbNDY3NDRdKSk+MT9mOjEpLGFbNDcxMzZdPX5+KChjKj0rKDB8YVs0NzEzNl0pKT4xP2M6MSkpfShsKSwxNiZpdFsxMzYrKDB8YVsoYz1sKzE2fDApPj4yXSk+''@;'; + put 'put ''PjFdJiZmdW5jdGlvbiBvSChsKXt2YXIgYyxmO2M9MHx2cigoZj0yKygwfGl0WzIzOCsoMHxhWzE2KyhsfD0wKT4+Ml0pPj4xXSl8MCk8PDIpLGpZKGwsYyxmLDApLEZ0KGMpfShsKSxDVShsKSxUSChsLDEpLGJJKGwpLGVIKGwpLGFbNDY3NDJdPWl0WzIzNisoYz0wfGFbYz4+Ml0pPj4xXSxh''@;'; + put 'put ''WzQ2NzQzXT1pdFtjKzIzOD4+MV19KGx8PTApLHc9bCsxNnwwLHA9MCxmPTA7ISgoMHxwKT49KDB8YVsyMjArKDB8YVt3Pj4yXSk+PjJdKSk7KXFBKGwscCkscD1wKzF8MCxmPSgwfGRJKGwsMCxjKSkrZnwwO2ZvcihmdW5jdGlvbiBUWShsKXt2YXIgYyxHLGY9MCxwPTAsbT0wLEE9MCx3PTAs''@;'; + put 'put ''Yj0wLFI9MDtmb3IoRz1sZSxsZT1sZSsxNnwwLGZ1bmN0aW9uIEkwZShsKXt2YXIgcCxtLEEsYz0wLGY9MCx3PTAsYj0wO2lmKCgwfChBPTB8YVsobT0yMjArKHA9MHxhWzE2KyhsfD0wKT4+Ml0pfDApPj4yXSkpPj0yKXtmb3Iodz1wKzIxNnwwLGw9MCxmPTA7ISgoMHxmKT49KDB8QSkpOyl7''@;'; + put 'put ''Zm9yKGM9MHxhWygwfGFbdz4+Ml0pKyhmPDwyKT4+Ml0sMHxsJiYoYVsxNjQrKDB8YVtsKzE2Pj4yXSk+PjJdPWMpLGFbMTY4KyhiPTB8YVtjKzE2Pj4yXSk+PjJdPWwsbD1jLGM9YjtjPTB8YVtjKzE2ND4+Ml07KWw9YyxjPTB8YVtjKzE2Pj4yXTtmPWYrMXwwfWFbbT4+Ml09MSxhW3ArMTky''@;'; + put 'put ''Pj4yXT1hW2FbcCsyMTY+PjJdPj4yXSxpdFtwKzIzNj4+MV09YVs0Njc0Ml0saXRbcCsyMzg+PjFdPWFbNDY3NDNdfX0obHw9MCksYj0wfGl0WzIzNisoYz0wfGFbKGwrMTZ8MCk+PjJdKT4+MV07ISgoMHxiKT4oMHxpdFtjKzIzOD4+MV0pKTspe2ZvcihhWyhmPTB8YVtjKzE5Nj4+Ml0pKyhi''@;'; + put 'put ''PDw2KT4+Ml09cD0wfGFbZisoYjw8NikrOD4+Ml0sYVtmKyhiPDw2KSs0Pj4yXT1tPTB8YVtmKyhiPDw2KSsxMj4+Ml0sdz0wOyEoKDB8dyk+PSgwfHApKTspe2lmKCEoQT0wfGFbbSsodzw8Mik+PjJdKSl7Uj02O2JyZWFrfWFbMjM2KygwfGFbQSsxNj4+Ml0pPj4yXT13LHc9dysxfDB9Nj09''@;'; + put 'put ''KDB8UikmJihSPTAsYVtmKyhiPDw2KT4+Ml09dyksYj1iKzF8MH1sZT1HfShsKSxBPTE7ISgoMHxBKT4oMHwobT0wfGFbMTgwKyhwPTB8YVt3Pj4yXSk+PjJdKSkpOyltPSgwfEtGKDB8YVsoMHxhW3ArMTg0Pj4yXSkrKEE8PDIpPj4yXSxjKSkrZnwwLEE9QSsxfDAsZj1tO2Rve2lmKCgwfG0p''@;'; + put 'put ''PjApe2lmKDB8KHA9MHxMaShsLDg1ODA2KSkmJigwfHQxKHApKTw8MjQ+PjI0PT0wKWJyZWFrO2ZwKGwpLGZlWzE5Mzc2OV09MSxmPTB8ZEkobCwyLGMpfX13aGlsZSgwKTshZnVuY3Rpb24gZXkobCxjKXtsfD0wO3ZhciBNLFIsZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wO2ZvcihSPWxl''@;'; + put 'put ''LGxlPWxlKzE2fDAsMHwoZj0wfGFbNDY3MzldKSYmKEZ0KGYpLGFbNDY3MzldPTApLDB8KGY9MHxhWzQ2NzQwXSkmJihGdChmKSxhWzQ2NzQwXT0wKSxNPWwrMTZ8MCxmPTE7ISgoMHxmKT4oMHxhWzE4MCsocD0wfGFbTT4+Ml0pPj4yXSkpOykkRigwfGFbKDB8YVtwKzE4ND4+Ml0pKyhmPDwy''@;'; + put 'put ''KT4+Ml0pLGY9ZisxfDA7Zm9yKGs9MHxpdFtwKzIzNj4+MV0sZj1wOyEoKDB8ayk+KDB8aXRbZisyMzg+PjFdKSk7KXtmb3IoYj0wOyEoKDB8Yik+PSgwfGFbKGY9MHxhW2YrMTk2Pj4yXSkrKGs8PDYpPj4yXSkpOyl7YVsyMzYrKGY9MHxhWyh3PTE2KygwfGFbKDB8YVtmKyhrPDw2KSs0Pj4y''@;'; + put 'put ''XSkrKGI8PDIpPj4yXSl8MCk+PjJdKT4+Ml09YixmPTB8YVtmKzE4OD4+Ml07ZTpkb3tpZigwfGYpZm9yKHA9MDs7KXtpZighKG09MHxhW2YrKHA8PDIpPj4yXSkpYnJlYWsgZTs0PT0oMHxmZVsxMTIrKDB8YVsoQT1tKzE2fDApPj4yXSk+PjBdKSYmKFhGKG0pLEZ0KDB8YVtBPj4yXSksRnQo''@;'; + put 'put ''bSkscD1wKy0xfDAsZj0wfGFbMTg4KygwfGFbdz4+Ml0pPj4yXSkscD1wKzF8MH19d2hpbGUoMCk7Yj1iKzF8MCxmPTB8YVtNPj4yXX1NMGUoMHxhW2YrKGs8PDYpKzU2Pj4yXSksaz1rKzF8MCxmPTB8YVtNPj4yXX1sZT1SfShsKX1mdW5jdGlvbiBxQShsLGMpe3ZhciBmPTAscD0wLG09MDth''@;'; + put 'put ''WzE5MisobD0wfGFbMTYrKGx8PTApPj4yXSk+PjJdPWFbKDB8YVtsKzIxNj4+Ml0pKygoY3w9MCk8PDIpPj4yXTtlOmRve2lmKCgwfGMpPjApZm9yKGM9MHxpdFtsKzIzOD4+MV0sZj1sKzE5NnwwLGw9MHxpdFtsKzIzNj4+MV07Oyl7aWYoKDB8bCk+KDB8YykpYnJlYWsgZTthWyhtPShwPTB8''@;'; + put 'put ''YVtmPj4yXSkrKGw8PDYpKzR8MCk+PjJdPSgwfGFbbT4+Ml0pKyhhWyhwPXArKGw8PDYpfDApPj4yXTw8MiksYVtwPj4yXT0wLGw9bCsxfDB9fXdoaWxlKDApfWZ1bmN0aW9uIGRJKGwsYyxmKXtsfD0wLGZ8PTA7dmFyIFIscD0wLG09MCxBPTAsdz0wLGI9MCxrPTA7Zm9yKFI9bGUsbGU9bGUr''@;'; + put 'put ''MzJ8MCwoMHwoY3w9MCkpPjE/KHA9MHwkQygwKSxpSChsKSk6cD0yMTQ3NDgzNjQ3LGs9YyxtPTAsYz1wOyEoKDB8ayk+PTMpOyl7Zm9yKG09MHxhWzQ3MTM2XSwyPT0oMHxrKT8oKDB8cCk+KDB8YykmJlJZKGwpLHA9Yyk6KHA9KDB8bSk8ND9tOjQsKDB8QWEobCkpPT0oMHxsKSYmT1kobCxr''@;'; + put 'put ''KSxrfHxnSShsKSxJWShsKSwoMHwoQT0wfCRDKDApKSk+KDB8Yyk/KG09cCxwPUEpOihpSChsKSxtPXAscD1BLGM9QSkpLEE9MCxiPTA7ISgoMHxiKT49KDB8bSl8fCh3PUErMXwwLDA9PSgwfHApfCgwfEEpPj0oMHxhWzQ2NzQ0XSkpKTspRDBlKGwsYiksKDB8KHA9MHwkQygwKSkpPigwfGMp''@;'; + put 'put ''P0E9dzooaUgobCksQT0rX1syMzIxNV0qKygwfGMpPisoMHxwKT8wOncsYz1wKSxiPWIrMXwwO2lmKCFwKXtwPTA7YnJlYWt9az1rKzF8MH0oMHxwKT4oMHxjKSYmUlkobCksKDB8Yyk+MD8oQUkobCwwKSxwPTB8JEMoMCkpOnA9YztlOmRve2lmKDB8Zilmb3IoYz0wOzspe2lmKCgwfGMpPj0o''@;'; + put 'put ''MHxtKSlicmVhayBlO0wwZShsKSxjPWMrMXwwfX13aGlsZSgwKTtyZXR1cm4gbGU9UiwwfHB9ZnVuY3Rpb24gS0YobCxjKXtjfD0wO3ZhciBtLGY9MCxwPTAsQT0wO2ZvcihmdW5jdGlvbiBNVShsKXt2YXIgYztDVShsfD0wKSxhWzIyMCsoYz0wfGFbbCsxNj4+Ml0pPj4yXT0xLGFbYVtjKzIx''@;'; + put 'put ''Nj4+Ml0+PjJdPWFbYysxOTI+PjJdLGJJKGwpLE9ZKGwsMCksZnVuY3Rpb24gb3ZlKGwpe3ZhciBiLGssTSxjPTAsZj0wLHA9MCxtPTAsQT0wLHc9MDtmb3IoYj0wfEFhKGx8PTApLGM9KHc9MHxpdFsyMzYrKGY9MHxhWyhrPWwrMTZ8MCk+PjJdKT4+MV0pPDwxNj4+MTYsTT1iKzE2fDAsdzw8''@;'; + put 'put ''MTY+PjE2PjAmJihmZVsoMHxhWzE5NisoMHxhW00+PjJdKT4+Ml0pKyhjKy0xPDw2KSs0OT4+MF09MCksdz1jOyEoKDB8dyk+KDB8aXRbZisyMzg+PjFdKSk7KXtmb3IoU1UoYix3LEE9MHxhWzIzNisoMHxhWzE2KygwfGFbKDB8YVtmKzI2OD4+Ml0pKyh3PDwyKT4+Ml0pPj4yXSk+PjJdLDB8''@;'; + put 'put ''YVsoMHxhW2YrMTk2Pj4yXSkrKHc8PDYpPj4yXSkscD0wLG09QTshKCgwfHApPj0oMHxhWyhjPTB8YVsxOTYrKGY9MHxhW2s+PjJdKT4+Ml0pKyh3PDw2KT4+Ml0pKTspYVsoMHxhWygwfGFbMTk2KygwfGFbTT4+Ml0pPj4yXSkrKHc8PDYpKzQ+PjJdKSsobTw8Mik+PjJdPWM9MHxhWygwfGFb''@;'; + put 'put ''Yysodzw8NikrND4+Ml0pKyhwPDwyKT4+Ml0sYVsyMzYrKGY9MHxhW2MrMTY+PjJdKT4+Ml09bSwxPT0oMHxmZVtmKzE1Nj4+MF0pJiYoYVtjKzI0Pj4yXT0wfGRpKGIpKSx1SShsLGMpLHNJKGIsYyksYVsoZj0yMzIrKDB8YVtNPj4yXSl8MCk+PjJdPTErKDB8YVtmPj4yXSkscD1wKzF8MCxt''@;'; + put 'put ''PW0rMXwwO2FbYysodzw8NikrND4+Ml09KDB8YVsobT0wfGFbMTk2KygwfGFbTT4+Ml0pPj4yXSkrKHc8PDYpKzQ+PjJdKSsoQTw8MiksZmVbbSsodzw8NikrNDk+PjBdPTAsdz13KzF8MH0oMHx3KTwoMHxpdFsyMzgrKGM9MHxhW00+PjJdKT4+MV0pJiYoZmVbKDB8YVtjKzE5Nj4+Ml0pKyh3''@;'; + put 'put ''PDw2KSs0OT4+MF09MCksZmVbZisyNzI+PjBdPTF9KGwpLGZ1bmN0aW9uIGdvZShsKXt2YXIgayxjPTAsZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsTT0wLEQ9MCxSPTA7Zm9yKGs9MHxBYShsfD0wKSx3PTB8RHQobCk7dzspe2ZvcihjPTB8U3Moayx3KSxiPTA7YzspaWYoRD0wfE5zKGssYyx3''@;'; + put 'put ''KSwwfE5yKGwsYykpYz1ELGI9TT1iO2Vsc2UgaWYoUj0wPT0oMHxhayhiLE09Mj09KDMmYVtjPj4yXXwwKT9jOmMrLTQ4fDApKSxBPSgwfChmPTB8YVsyMzIrKDB8YVsxNisoYz0wfGFbKDM9PSgwfChwPTMmYVtNPj4yXSkpP006TSs0OHwwKSs0MD4+Ml0pPj4yXSk+PjJdKSk9PSgwfChtPTB8''@;'; + put 'put ''YVsyMzIrKDB8YVsxNisocD0wfGFbKDI9PSgwfHApP006TSstNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSkpLFIpaWYoQSkoYz0wfE1ZKGMscCkpPygwfE0pIT0oMHxjKT8oRVkoTSksMHxhWzE3MisoMHxhW00rMTY+PjJdKT4+Ml0/KGM9RCxiPVI9Yik6KHo2KE0sYyksYz1ELGI9Uj1iKSk6KGM9''@;'; + put 'put ''RCxiPVI9Yik6KGNJKGssTSksYz1ELGI9TSk7ZWxzZXtpZigoMHxtKT4oMHxmKSl7TUgoYyxwLE0pLGM9RCxiPU07Y29udGludWV9TUgocCxjLE0pLGM9RCxiPU19ZWxzZXtpZihhWzE3MisoMHxhW00rMTY+PjJdKT4+Ml09QT9iOjAsIShjPTB8YVsxNzIrKDB8YVtiKzE2Pj4yXSk+PjJdKSl7''@;'; + put 'put ''Yz1ELGI9Uj1iO2NvbnRpbnVlfW9rKGwsTSxjLDApLEVZKE0pLGM9RCxiPVI9Yn13PTB8enQobCx3KX19KGwpLGZ1bmN0aW9uIGF2ZShsKXt2YXIgdyxjPTAsZj0wLHA9MCxtPTAsQT0wO2ZvcihBPTB8aXRbMjM2KyhjPTB8YVsodz0xNisobHw9MCl8MCk+PjJdKT4+MV07ISgoMHxBKT4oMHxp''@;'; + put 'put ''dFtjKzIzOD4+MV0pKTspe2ZvcihtPTE2KyhwPTB8YVsoMHxhW2MrMjY4Pj4yXSkrKEE8PDIpPj4yXSl8MDtmPTB8YVthWzE4MCsoYz0wfGFbbT4+Ml0pPj4yXT4+Ml07KVUzKGYpO2Zvcig7Yz0wfGFbYVtjKzE3Mj4+Ml0+PjJdOylVMyhjKSxjPTB8YVttPj4yXTt1SSgwfEFhKGwpLHApLGFb''@;'; + put 'put ''KDB8YVsyNjgrKDB8YVt3Pj4yXSk+PjJdKSsoQTw8Mik+PjJdPTAsQT1BKzF8MCxjPTB8YVt3Pj4yXX19KGwpfShsfD0wKSxlSChsKSxnSShsKSxJWShsKSxtPWwrMTZ8MCxmPTB8ZEkobCwyLGMpLHA9MTshKCgwfHApPigwfGFbMTgwKyhBPTB8YVttPj4yXSk+PjJdKSk7KWY9KDB8S0YoMHxh''@;'; + put 'put ''WygwfGFbQSsxODQ+PjJdKSsocDw8Mik+PjJdLGMpKStmfDAscD1wKzF8MDtyZXR1cm4gdEgobCksMHxmfWZ1bmN0aW9uICRGKGwpe3ZhciBtLGM9MCxmPTAscD0wLEE9MCx3PTAsYj0wLGs9MDtmb3IobT0xNisobHw9MCl8MCxjPTE7ISgoMHxjKT4oMHxhWzE4MCsocD0wfGFbbT4+Ml0pPj4y''@;'; + put 'put ''XSkpOykkRigwfGFbKDB8YVtwKzE4ND4+Ml0pKyhjPDwyKT4+Ml0pLGM9YysxfDA7ZTpkb3tpZigwfGFbcCsyNjg+PjJdKWZvcihmPTB8aXRbcCsyMzY+PjFdLGM9cDs7KXtpZigoMHxmKT4oMHxpdFtjKzIzOD4+MV0pKWJyZWFrIGU7dz0wfHFGKGwsYj0wfGFbKDB8YVtjKzI2OD4+Ml0pKyhm''@;'; + put 'put ''PDwyKT4+Ml0sLTEpLGI9MHxxRihsLGIsMSksYVsoMHxhWzI2OCsoMHxhW20+PjJdKT4+Ml0pKyhmPDwyKT4+Ml09dyxrPTB8YVsoMHxhWzE5NisoMHxhWzE2KygwfEFhKGwpKT4+Ml0pPj4yXSkrKGY8PDYpKzQ+PjJdLGFbKEE9MHxhWzE5NisocD0wfGFbbT4+Ml0pPj4yXSkrKGY8PDYpKzQ+''@;'; + put 'put ''PjJdPWsrKCh3PTB8YVsyMzYrKDB8YVt3KzE2Pj4yXSk+PjJdKTw8MiksYVtBKyhmPDw2KT4+Ml09MSsoMHxhWzIzNisoMHxhW2IrMTY+PjJdKT4+Ml0pLXcsZj1mKzF8MCxjPXB9fXdoaWxlKDApfWZ1bmN0aW9uIE0wZShsKXswfChsfD0wKSYmKEZ0KDB8YVtsKzg+PjJdKSxGdChsKSl9ZnVu''@;'; + put 'put ''Y3Rpb24gcUYobCxjLGYpe2x8PTAsZnw9MDt2YXIgcD0wO2ZvcihwPWN8PTA7Yz0wfEUwZShjLGYpOylwPTB8cEkobCxjKT9jOjA9PSgwfHR5KGwsYykpP3A6YztyZXR1cm4gMHxwfWZ1bmN0aW9uIEUwZShsLGMpe2N8PTA7dmFyIGY9MCxwPTAsbT0wLEE9MDtyZXR1cm4obHw9MCl8fFByKDg1''@;'; + put 'put ''ODU2LDg1NzgxLDEwMjMsODU4NTgpLCgwfGMpPDA/KDB8KHA9MHxhWzIzNisobD0wfGFbbCsxNj4+Ml0pPj4yXSkpPjA/KGw9KDB8YVsxOTYrKDB8YVsxNisoMHxhWzQ2NzQxXSk+PjJdKT4+Ml0pKyhhW2wrMjMyPj4yXTw8NikrNHwwLGY9cCstMXwwLG09Nyk6QT0wOihwPTB8YVsyMzYrKGw9''@;'; + put 'put ''MHxhW2wrMTY+PjJdKT4+Ml0sbD0oMHxhWzE5NisoMHxhWzE2KygwfGFbNDY3NDFdKT4+Ml0pPj4yXSkrKGFbbCsyMzI+PjJdPDw2KSs0fDAsZj1wKzF8MCxtPTcpLDc9PSgwfG0pJiYoKGw9MHxhWygwfGFbbD4+Ml0pKyhmPDwyKT4+Ml0pPygwfEFyKCgwfGFbMjM2KygwfGFbbCsxNj4+Ml0p''@;'; + put 'put ''Pj4yXSktcHwwLGMpKT4wP0E9bDpQcig4NTg2Nyw4NTc4MSwxMDI5LDg1ODU4KTpBPTApLDB8QX1mdW5jdGlvbiBwSShsLGMpe3JldHVybiBsfD0wLDB8KDB8ZmVbMTU2KygwfGFbMTYrKGN8PTApPj4yXSk+PjBdPzA6MCE9KDB8TnIobCxjKSkmMSl9ZnVuY3Rpb24gdHkobCxjKXtsfD0wO3Zh''@;'; + put 'put ''ciBmPTAscD0wO2lmKDE9PSgwfGZlWzE1NisoYz0wfGFbMTYrKGN8PTApPj4yXSk+PjBdKSYmMT09KDB8YVtjKzE3Nj4+Ml0pJiYxPT0oMHxhW2MrMTg0Pj4yXSkpe2ZvcihjPTB8YVtjKzE4MD4+Ml07MHxmZVsxMTIrKGY9MHxhWzE2KyhjPTB8YVtjPj4yXSk+PjJdKT4+MF07KWM9ZisxMTZ8''@;'; + put 'put ''MDswfE5yKGwsYyk/Yz0xOnA9N31lbHNlIHA9NztyZXR1cm4gNz09KDB8cCkmJihjPTApLDB8Y31mdW5jdGlvbiBlSChsKXtsfD0wO3ZhciBmLHAsYz0wO3A9bGUsbGU9bGUrMTZ8MCxmPXAsYz0wfGFbNDcxNDBdO2U6ZG97aWYoMCE9KDB8Yyl8MCE9KDB8YVs0NzE2MV0pKXtpZigwfChjPTB8''@;'; + put 'put ''djIobCxjLDApKSl7c3dpdGNoKDB8ZmVbYz4+MF0pe2Nhc2UgMDpicmVhayBlO2Nhc2UgMTExOmlmKCEoMHxaaShjLDg2MDY5KSkpe0RZKGwsMSk7YnJlYWsgZX1icmVhaztjYXNlIDEwNTppZighKDB8WmkoYyw5ODczNSkpKXtEWShsLDApO2JyZWFrIGV9fWFbZj4+Ml09YywkcigxLDg2MDcz''@;'; + put 'put ''LGYpO2JyZWFrfWZvcihjPTB8eXMobCk7YzspMHxnSChjKXx8ZUgoYyksYz0wfE1zKGMpOzB8YVs0NzE2MV0mJngwZShsKX19d2hpbGUoMCk7bGU9cH1mdW5jdGlvbiBnSShsKXt2YXIgYixjPTAsZj0wLHA9MCxtPTAsQT0wLHc9MDtmb3Iodz0wfGl0WzIzNisoYz0wfGFbKGI9MTYrKGx8PTAp''@;'; + put 'put ''fDApPj4yXSk+PjFdOyEoKDB8dyk+KDB8aXRbYysyMzg+PjFdKSk7KXtmb3IoZj0wLEE9MDshKCgwfEEpPj0oMHwobT0wfGFbKHA9MHxhW2MrMTk2Pj4yXSkrKHc8PDYpPj4yXSkpKTspZmVbMTU4KyhwPTB8YVsxNisoMHxhWygwfGFbcCsodzw8NikrND4+Ml0pKyhBPDwyKT4+Ml0pPj4yXSk+''@;'; + put 'put ''PjBdPTAsZmVbcCsxNTc+PjBdPTAsYVtwKzI4ND4+Ml09QSwwPT0oMHxmKSYoMHxhW3ArMTkyPj4yXSk+MCYmKGY9MHx2SShtLG0pLGFbKDB8YVsxOTYrKGM9MHxhW2I+PjJdKT4+Ml0pKyh3PDw2KSs1Nj4+Ml09ZixmPTEpLEE9QSsxfDA7ZTpkb3tpZihmKWZvcihBPTAsZj1tOzspe2lmKCgw''@;'; + put 'put ''fEEpPj0oMHxmKSlicmVhayBlOzB8ZmVbMTU3KygwfGFbMTYrKG09MHxhWygwfGFbcCsodzw8NikrND4+Ml0pKyhBPDwyKT4+Ml0pPj4yXSk+PjBdfHwobkgobCxtKSxwPWY9MHxhWzE5NisoYz0wfGFbYj4+Ml0pPj4yXSxmPTB8YVtmKyh3PDw2KT4+Ml0pLEE9QSsxfDB9fXdoaWxlKDApO3c9''@;'; + put 'put ''dysxfDB9fWZ1bmN0aW9uIElZKGwpe3ZhciBnZSxjPTAsZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxLPTAscGU9MCxiZT0wO2lmKDB8ZmVbMjQwKyhjPTB8YVsoZ2U9MTYrKGx8PTApfDApPj4yXSk+PjBdKXttPTAscGU9MHxpdFtjKzIzNj4+MV0sSz0wLEE9''@;'; + put 'put ''MDtlOmZvcig7ISgoMHxwZSk+KDB8aXRbYysyMzg+PjFdKSk7KXtpZihwPTB8YVsoZj0wfGFbYysxOTY+PjJdKSsocGU8PDYpPj4yXSl7Zm9yKFI9MHxhWzIzNisoMHxhWzE2KygwfGFbKGY9MHxhW2YrKHBlPDw2KSs0Pj4yXSk+PjJdKT4+Ml0pPj4yXSxjPTA7ISgoMHxjKT49KDB8cCkpOylm''@;'; + put 'put ''ZVsxNTcrKDB8YVsxNisoMHxhW2YrKGM8PDIpPj4yXSk+PjJdKT4+MF09MCxjPWMrMXwwO2ZvcihjPTQrKGM8PDIpfDAsRz1tPzB8VjAoQSxjKTowfFFuKGMpLE09MCxEPTA7ISgoMHwocD0wfGFbKGY9MHxhWzE5NisoYz0wfGFbZ2U+PjJdKT4+Ml0pKyhwZTw8Nik+PjJdKSk8PSgwfEQpKTsp''@;'; + put 'put ''e2ZvcihrPTE2Kyh3PTB8YVsoMHxhW2YrKHBlPDw2KSs0Pj4yXSkrKCgwPT0oMSZhW2MrMTE2Pj4yXXwwKT9wK35EfDA6RCk8PDIpPj4yXSl8MCxjPTAsYj0wOzspe2lmKCgwfGMpPj0oMHxhWzIwMCsoQT0wfGFbaz4+Ml0pPj4yXSkpe2Y9MCxwPTAsYz1BO2JyZWFrfUE9YisoMCE9KDB8S0Mo''@;'; + put 'put ''bCwwfGFbKDB8YVtBKzE5Nj4+Ml0pKyhjPDwyKT4+Ml0pKSYxKXwwLGM9YysxfDAsYj1BfWZvcig7ISgoMHxwKT49KDB8YVtjKzE5Mj4+Ml0pKTspZj1BPWYrKDAhPSgwfEtDKGwsMHxhWygwfGFbYysxODg+PjJdKSsocDw8Mik+PjJdKSkmMSl8MCxwPXArMXwwLGM9MHxhW2s+PjJdO2Z8Yj9j''@;'; + put 'put ''PTA9PSgwfGIpJjA9PSgwfGZlW2MrMTU3Pj4wXSk/KDB8dXAobCx3LEcrKE08PDIpfDAscGUpKStNfDA6TTooYVtHKyhNPDwyKT4+Ml09dyxjPU0rMXwwKSxNPWMsRD1EKzF8MH10OmRve2lmKE0pe246ZG97aWYoMSZhW2MrMTE2Pj4yXSlwPTA7ZWxzZSBmb3IoZj1HLGM9RysoTTw8Mil8MDs7''@;'; + put 'put ''KXtpZihmPj4+MD49KGM9YystNHwwKT4+PjApe3A9MDticmVhayBufUQ9MHxhW2Y+PjJdLGFbZj4+Ml09YVtjPj4yXSxhW2M+PjJdPUQsZj1mKzR8MH19d2hpbGUoMCk7Zm9yKDs7KXtpZigoMHxwKT49KDB8KGY9MHxhWyhBPTB8YVsxOTYrKGM9MHxhW2dlPj4yXSk+PjJdKSsocGU8PDYpPj4y''@;'; + put 'put ''XSkpKXtNPTAscD1BO2JyZWFrfWFbKDB8YVtBKyhwZTw8NikrND4+Ml0pKyhwPDwyKT4+Ml09RD0wfGFbRysocDw8Mik+PjJdLGFbMjM2KygwfGFbRCsxNj4+Ml0pPj4yXT1wK1IscD1wKzF8MH1mb3IoOzspe2lmKCgwfE0pPj0oMHxmKSlicmVhayB0O2lmKEE9MHxhWzE4OCsoMHxhWyhrPTE2''@;'; + put 'put ''KygwfGFbKDB8YVtwKyhwZTw8NikrND4+Ml0pKyhNPDwyKT4+Ml0pfDApPj4yXSk+PjJdKXtmb3IoYj0wLGY9QTtjPTB8YVtnZT4+Ml0scD0wfGFbZisoYjw8Mik+PjJdOyl7aWYoQT0wfGFbMjM2KygwfGFbMTYrKDB8YVsoMj09KDB8KHc9MyZhW3A+PjJdKSk/cDpwKy00OHwwKSs0MD4+Ml0p''@;'; + put 'put ''Pj4yXSk+PjJdLHc9MHxhWzIzNisoMHxhWzE2KygwfGFbKDM9PSgwfHcpP3A6cCs0OHwwKSs0MD4+Ml0pPj4yXSk+PjJdLDEmYVtjKzExNj4+Ml0/KDB8QSk+KDB8dyk/YmU9MzY6Yz1iOigwfEEpPCgwfHcpP2JlPTM2OmM9YiwzNj09KDB8YmUpKXtpZihiZT0wLDB8S0MobCxwKSl7YmU9Mzc7''@;'; + put 'put ''YnJlYWsgZX1YRihwKSxtSShsLHApLGM9YistMXwwLGY9MHxhWzE4OCsoMHxhW2s+PjJdKT4+Ml19Yj1jKzF8MH1wPWY9MHxhW2MrMTk2Pj4yXSxmPTB8YVtmKyhwZTw8Nik+PjJdfU09TSsxfDB9fX13aGlsZSgwKTtmZVsoMHxhWzE5NisoMHxhWzE2KygwfGFbNDY3NDFdKT4+Ml0pPj4yXSkr''@;'; + put 'put ''KHBlPDw2KSs0OT4+MF09MCxtPUcscD1HLGY9R31lbHNlIHA9SyxmPUE7cGU9cGUrMXwwLEs9cCxBPWZ9Mzc9PSgwfGJlKSYmUHIoODU5MTUsODU3ODEsMTU2MSw4NTk1NCksMHxtJiZGdChLKX19ZnVuY3Rpb24gdEgobCl7dmFyIGYsYz0wO2w9MHxhWyhmPTE2KyhsfD0wKXwwKT4+Ml07ZTpk''@;'; + put 'put ''b3tpZigwfGFbbCsyNjg+PjJdKWZvcihjPTB8aXRbbCsyMzY+PjFdOzspe2lmKCgwfGMpPigwfGl0W2wrMjM4Pj4xXSkpYnJlYWsgZTthWygwfGFbbCsyNjg+PjJdKSsoYzw8Mik+PjJdPWFbYVsoMHxhW2wrMTk2Pj4yXSkrKGM8PDYpKzQ+PjJdPj4yXSxjPWMrMXwwLGw9MHxhW2Y+PjJdfX13''@;'; + put 'put ''aGlsZSgwKX1mdW5jdGlvbiBLQyhsLGMpe3JldHVybiBsfD0wLDB8KDAhPSgwfGFbMTU2KygwfGFbMTYrKGN8PTApPj4yXSk+PjJdKSYmMCE9KDB8RzYobCwwfGFbKDM9PSgzJmFbYz4+Ml18MCk/YzpjKzQ4fDApKzQwPj4yXSkpPzAhPSgwfEc2KGwsMHxhWygyPT0oMyZhW2M+PjJdfDApP2M6''@;'; + put 'put ''YystNDh8MCkrNDA+PjJdKSkmMTowKX1mdW5jdGlvbiB1cChsLGMsZixwKXtsfD0wLGZ8PTAscHw9MDt2YXIgTSxtPTAsQT0wLHc9MCxiPTAsaz0wO2ZlWzE1NysobT0wfGFbKE09MTYrKGN8PTApfDApPj4yXSk+PjBdPTE7ZTpkb3tpZigoMHxhW20rMTkyPj4yXSk+MClmb3IoQT0wLGI9MDs7''@;'; + put 'put ''KXtpZighKHc9MHxhWygwfGFbbSsxODg+PjJdKSsoYjw8Mik+PjJdKSlicmVhayBlOzAhPSgwfEtDKGwsdykpJiYwPT0oMHxmZVsxNTcrKDB8YVsxNisoaz0wfGFbKDI9PSgzJmFbdz4+Ml18MCk/dzp3Ky00OHwwKSs0MD4+Ml0pPj4yXSk+PjBdKSYmKEE9KDB8dXAobCxrLGYrKEE8PDIpfDAs''@;'; + put 'put ''cCkpK0F8MCksYj1iKzF8MCxtPTB8YVtNPj4yXX1lbHNlIEE9MH13aGlsZSgwKTtyZXR1cm4oMHxhW20rMjMyPj4yXSk9PSgwfHApPyhhW2YrKEE8PDIpPj4yXT1jLEErMXwwKTooUHIoODU5NjcsODU3ODEsMTQ5MCw4NTk4MyksMCl9ZnVuY3Rpb24gbUkobCxjKXtsfD0wO3ZhciBmPTAscD0w''@;'; + put 'put ''LG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MDtwPTB8YVsxODgrKDB8YVsxNisoYj0wfGFbKDI9PSgwfCh3PTMmYVsoY3w9MCk+PjJdKSk/YzpjKy00OHwwKSs0MD4+Ml0pPj4yXSk+PjJdO2U6ZG97aWYocCl7Zm9yKE09Yys0OHwwLG09KDM9PSgwfHcpP2M6TSkrNDB8MCxmPTA7Oyl7aWYo''@;'; + put 'put ''IShBPTB8YVtwKyhmPDwyKT4+Ml0pKXtmPU0sRD0xNTticmVhayBlfWlmKCgwfGFbKDI9PSgzJmFbQT4+Ml18MCk/QTpBKy00OHwwKSs0MD4+Ml0pPT0oMHxhW20+PjJdKSlicmVhaztmPWYrMXwwfXo2KGMsQSksMHxhWyhmPTE3MisoMHxhW2MrMTY+PjJdKXwwKT4+Ml18fChhW2Y+PjJdPUEp''@;'; + put 'put ''LDQ9PSgwfGZlWzExMisoZj0wfGFbQSsxNj4+Ml0pPj4wXSkmJjA9PSgwfGFbKGs9ZisxMTZ8MCk+PjJdKSYmKGFbaz4+Ml09YyksZj0ocD0wfGFbMjA0KyhmPTB8YVsxNisoMHxhWygzPT0oMyZhW2M+PjJdfDApP2M6TSkrNDA+PjJdKT4+Ml0pPj4yXSk/MHxWMChwLDgrKGFbZisyMDg+PjJd''@;'; + put 'put ''PDwyKXwwKTowfFFuKDgrKGFbZisyMDg+PjJdPDwyKXwwKSxhWzIwNCsoMHxhWzE2KygwfGFbKDM9PSgzJmFbYz4+Ml18MCk/YzpNKSs0MD4+Ml0pPj4yXSk+PjJdPWYsYj0wfGFbMjA0Kyh3PTB8YVsxNisoMHxhWygzPT0oMyZhW2M+PjJdfDApP2M6TSkrNDA+PjJdKT4+Ml0pPj4yXSxhWyh3''@;'; + put 'put ''PXcrMjA4fDApPj4yXT0xKyhrPTB8YVt3Pj4yXSksYVtiKyhrPDwyKT4+Ml09YyxhWygwfGFbMjA0KyhjPTB8YVsxNisoMHxhWygzPT0oMyZhW2M+PjJdfDApP2M6TSkrNDA+PjJdKT4+Ml0pPj4yXSkrKGFbYysyMDg+PjJdPDwyKT4+Ml09MH1lbHNlIGY9Yys0OHwwLEQ9MTV9d2hpbGUoMCk7''@;'; + put 'put ''MTU9PSgwfEQpJiYoRD0wfEtBKGIsMHxhWygzPT0oMHx3KT9jOmYpKzQwPj4yXSxjKSxNPTB8YVtjKzE2Pj4yXSxmZVsxMTIrKGM9MHxhW0QrMTY+PjJdKT4+MF09ND09KDB8ZmVbTSsxMTI+PjBdKT80OjMsYVtjKzk2Pj4yXT1hW00rOTY+PjJdLGNJKGwsRCkpfWZ1bmN0aW9uIEc2KGwsYyl7''@;'; + put 'put ''dmFyIGY7cmV0dXJuIGY9MHxwSShsfD0wLGN8PTApLDB8dHkobCxjKXxmfDB9ZnVuY3Rpb24gdkkobCxjKXt2YXIgZjtyZXR1cm4gbHw9MCxjfD0wLGY9MHx2cigxMiksYVtmPj4yXT1sLGFbZis0Pj4yXT1jLGFbZis4Pj4yXT0wfHZyKDB8QXIoYyxsKSksMHxmfWZ1bmN0aW9uIG5IKGwsYyl7''@;'; + put 'put ''dmFyIGssRyxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxNPTAsRD0wLFI9MCxLPTAscGU9MCxnZT0wO2s9MHxhWygwfGFbMTk2KygwfGFbMTYrKGx8PTApPj4yXSk+PjJdKSsoYVsyMzIrKE09MHxhWyhHPTE2KyhjfD0wKXwwKT4+Ml0pPj4yXTw8NikrNTY+PjJdLGZlW00rMTU3Pj4wXT0xLGZl''@;'; + put 'put ''W00rMTU4Pj4wXT0xLE09KDB8YVsxODArKDB8YVsxNisoMHxBYShsKSk+PjJdKT4+Ml0pPjAscD0wfGFbMTg4KyhmPTB8YVtHPj4yXSk+PjJdO2U6ZG97aWYocCl7RD1rKzR8MCxSPWsrOHwwLGM9MDt0OmZvcig7Oyl7aWYoIShiPTB8YVtwKyhjPDwyKT4+Ml0pKXtLPWY7YnJlYWsgZX1NPzAh''@;'; + put 'put ''PSgwfE5yKGwsMHxhWygzPT0oMyZhW2I+PjJdfDApP2I6Yis0OHwwKSs0MD4+Ml0pKSYmMCE9KDB8TnIobCwwfGFbKDI9PSgzJmFbYj4+Ml18MCk/YjpiKy00OHwwKSs0MD4+Ml0pKSYmKHBlPTcpOnBlPTc7ZG97aWYoNz09KDB8cGUpJiYocGU9MCwwfGFbMTU2KygwfGFbKEE9YisxNnwwKT4+''@;'; + put 'put ''Ml0pPj4yXSkpe2lmKG09YistNDh8MCxwPSgwfCh3PTB8YVsyODQrKGdlPTB8YVsxNisoMHxhWygyPT0oMHwoZj0zJmFbYj4+Ml0pKT9iOm0pKzQwPj4yXSk+PjJdKT4+Ml0pKTwoMHxhW2s+PjJdKSwxPT0oMHxmZVtnZSsxNTg+PjBdKSl7aWYoIXApe3BlPTEwO2JyZWFrIHR9aWYoKDB8KGY9''@;'; + put 'put ''MHxhWzI4NCsoMHxhWzE2KygwfGFbKDM9PSgwfGYpP2I6Yis0OHwwKSs0MD4+Ml0pPj4yXSk+PjJdKSk+PSgwfChwPTB8YVtEPj4yXSkpKXtwZT0xMjticmVhayB0fWlmKGZlWygwfGFbUj4+Ml0pKygoMHxBcihwLHcpKStmKT4+MF09MSxYRihiKSxjPWMrLTF8MCw0PT0oMHxmZVsxMTIrKDB8''@;'; + put 'put ''YVtBPj4yXSk+PjBdKSlicmVhazttSShsLGIpO2JyZWFrfWlmKCFwKXtwZT0xNjticmVhayB0fWlmKCgwfChmPTB8YVsyODQrKDB8YVsxNisoMHxhWygzPT0oMHxmKT9iOmIrNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSkpPj0oMHwocD0wfGFbRD4+Ml0pKSl7cGU9MTg7YnJlYWsgdH1pZihmZVso''@;'; + put 'put ''MHxhW1I+PjJdKSsoKDB8QXIocCxmKSkrdyk+PjBdPTEsMHxmZVsxNTcrKDB8YVsxNisoZj0wfGFbKDI9PSgzJmFbYj4+Ml18MCk/YjptKSs0MD4+Ml0pPj4yXSk+PjBdKWJyZWFrO25IKGwsZik7YnJlYWt9fXdoaWxlKDApO2M9YysxfDAsZj1wPTB8YVtHPj4yXSxwPTB8YVtwKzE4OD4+Ml19''@;'; + put 'put ''MTA9PSgwfHBlKT9Qcig4NTk5Myw4NTc4MSwxMjUxLDg2MDI1KToxMj09KDB8cGUpP1ByKDg2MDM3LDg1NzgxLDEyNTIsODYwMjUpOjE2PT0oMHxwZSk/UHIoODU5OTMsODU3ODEsMTI2MCw4NjAyNSk6MTg9PSgwfHBlKSYmUHIoODYwMzcsODU3ODEsMTI2MSw4NjAyNSl9ZWxzZSBLPWZ9d2hp''@;'; + put 'put ''bGUoMCk7ZmVbSysxNTg+PjBdPTB9ZnVuY3Rpb24gRFkobCxjKXtjfD0wO3ZhciBmPTA7Zm9yKGY9MHxEdChsfD0wKTtmOylySChsLGYsYyksZj0wfHp0KGwsZil9ZnVuY3Rpb24geDBlKGwpe3ZhciBwLG0sYz0wLGY9MCxBPTA7Zm9yKG09bGUsbGU9bGUrMTZ8MCxwPW0sYz0wfER0KGx8PTAp''@;'; + put 'put ''O2M7KXtmPTB8djIoYywwfGFbNDcxNjFdLDApO2U6ZG97aWYoMHxmKXtzd2l0Y2goMHxmZVtmPj4wXSl7Y2FzZSAwOmJyZWFrIGU7Y2FzZSAxMTE6aWYoISgwfFppKGYsODYwNjkpKSl7ckgobCxjLDEpO2JyZWFrIGV9YnJlYWs7Y2FzZSAxMDU6aWYoISgwfFppKGYsOTg3MzUpKSl7ckgobCxj''@;'; + put 'put ''LDApO2JyZWFrIGV9fUE9MHx0aShjKSxhW3A+PjJdPWYsYVtwKzQ+PjJdPUEsJHIoMSw4NjEwNCxwKX19d2hpbGUoMCk7Yz0wfHp0KGwsYyl9bGU9bX1mdW5jdGlvbiBySChsLGMsZil7bHw9MCxmfD0wO3ZhciBiLHA9MCxtPTAsQT0wLHc9MDtiPTB8YVs0Njc0MF0scD0wfGFbKEE9MTYrKGN8''@;'; + put 'put ''PTApfDApPj4yXTtlOmRve2lmKCEoMHxhW3ArMjEyPj4yXSkpe3c9MCE9KDB8Zik7dDpkb3tpZih3KWZvcihtPTAsYz0wLGY9cDs7KXtpZighKHA9MHxhWygwfGFbZisxODA+PjJdKSsobTw8Mik+PjJdKSlicmVhayB0OzB8TFkocCl8fChhW2IrKGM8PDIpPj4yXT1wLGM9YysxfDAsZj0wfGFb''@;'; + put 'put ''QT4+Ml0pLG09bSsxfDB9ZWxzZSBmb3IobT0wLGM9MCxmPXA7Oyl7aWYoIShwPTB8YVsoMHxhW2YrMTcyPj4yXSkrKG08PDIpPj4yXSkpYnJlYWsgdDswfExZKHApfHwoYVtiKyhjPDwyKT4+Ml09cCxjPWMrMXwwLGY9MHxhW0E+PjJdKSxtPW0rMXwwfX13aGlsZSgwKTtpZigoMHxjKT49Milm''@;'; + put 'put ''b3IoYVtiKyhjPDwyKT4+Ml09MCx4MShiLGMsNCw2MSksQT13PzI6MyxtPXc/LTE6MSxwPTE7Oyl7aWYoIShjPTB8YVtiKyhwPDwyKT4+Ml0pfHwwfE1ZKGY9MHxhWygoMyZhWyhmPTB8YVtiKyhwKy0xPDwyKT4+Ml0pPj4yXXwwKT09KDB8QSk/ZjpmKyg0OCptfDApfDApKzQwPj4yXSxjPTB8''@;'; + put 'put ''YVsoKDMmYVtjPj4yXXwwKT09KDB8QSk/YzpjKyg0OCptfDApfDApKzQwPj4yXSkpYnJlYWsgZTt3PTB8S0EoZixjLDApLGZlWzExMisoMHxhW3crMTY+PjJdKT4+MF09NCxjSShsLHcpLHA9cCsxfDB9fX13aGlsZSgwKX1mdW5jdGlvbiBMWShsKXtsfD0wO2Zvcih2YXIgYz0wO2M9MHxhWzEx''@;'; + put 'put ''NisoMHxhW2wrMTY+PjJdKT4+Ml07KWw9YztyZXR1cm4oMHxhWzIxMisoMHxhWzE2KygwfGFbKDM9PSgwfChjPTMmYVtsPj4yXSkpP2w6bCs0OHwwKSs0MD4+Ml0pPj4yXSk+PjJdKSE9KDB8YVsyMTIrKDB8YVsxNisoMHxhWygyPT0oMHxjKT9sOmwrLTQ4fDApKzQwPj4yXSk+PjJdKT4+Ml0p''@;'; + put 'put ''fDB9ZnVuY3Rpb24gJEMobCl7bHw9MDt2YXIgQSx3LGM9MCxmPTAscD0wLG09MDtmb3IocD0wLG09MHxpdFsyMzYrKGY9MHxhWyh3PTE2KyhBPTB8YVs0Njc0MV0pfDApPj4yXSk+PjFdOyEoKDB8bSk+PSgwfGl0W2YrMjM4Pj4xXSkpOykwfGZlWyhsPTB8YVtmKzE5Nj4+Ml0pKyhtPDw2KSs0''@;'; + put 'put ''OT4+MF0/KGM9MHxhW2wrKG08PDYpKzUyPj4yXSxsPWYpOihjPTB8TlkoQSxtKSxhWyhmPTB8YVsxOTYrKGw9MHxhW3c+PjJdKT4+Ml0pKyhtPDw2KSs1Mj4+Ml09YyxmZVtmKyhtPDw2KSs0OT4+MF09MSkscD1jK3B8MCxtPW0rMXwwLGY9bDtyZXR1cm4gMHxwfWZ1bmN0aW9uIGlIKGwpe3Zh''@;'; + put 'put ''ciBtLEEsYz0wLGY9MCxwPTAsdz0wO2ZvcihtPTB8aXRbMjM4KyhsPTB8YVsxNisobHw9MCk+PjJdKT4+MV0sQT1sKzE5NnwwLGw9MHxpdFtsKzIzNj4+MV07ISgoMHxsKT4oMHxtKSk7KXtmb3IoZj0wfGFbKHA9MHxhW0E+PjJdKSsobDw8Nik+PjJdLHA9cCsobDw8NikrNHwwLGM9MDshKCgw''@;'; + put 'put ''fGMpPj0oMHxmKSk7KV9bMTYrKHc9MHxhWzE2KygwfGFbKDB8YVtwPj4yXSkrKGM8PDIpPj4yXSk+PjJdKT4+M109KygwfGFbdysyMzY+PjJdKSxjPWMrMXwwO2w9bCsxfDB9fWZ1bmN0aW9uIE9ZKGwsYyl7Y3w9MDt2YXIgayxNLEQsSyxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxSPTAsRz0w''@;'; + put 'put ''O2ZvcihLPWxlLGxlPWxlKzE2fDAsaz1LLEQ9MHxsRCgwfGFbMjMyKygwfGFbKE09MTYrKGx8PTApfDApPj4yXSk+PjJdKSxwPWY9MTkyKyh3PTB8YVtNPj4yXSl8MDtwPTB8YVtwPj4yXTspZmVbMTU3KyhwPTB8YVtwKzE2Pj4yXSk+PjBdPTAscD1wKzE2NHwwO2ZvcihtPTB8aXRbdysyMzg+''@;'; + put 'put ''PjFdLEE9dysxOTZ8MCxwPTB8aXRbdysyMzY+PjFdOyEoKDB8cCk+KDB8bSkpOylhWygwfGFbQT4+Ml0pKyhwPDw2KT4+Ml09MCxwPXArMXwwO2ZvcihBPTA9PSgwfGMpO3A9MHxhW2Y+PjJdOyl7aWYoZj0wfGFbKG09cCsxNnwwKT4+Ml0sMD09KDB8YVthWyhBP2YrMTcyfDA6ZisxODB8MCk+''@;'; + put 'put ''PjJdPj4yXSkmJjA9PSgwfGZlWyhiPWYrMTU3fDApPj4wXSkpe2ZvcihmZVtiPj4wXT0xLEQ3KEQscCk7Zj0wfHNEKEQpOyk3IT0oMHxmZVsxNTkrKDB8YVtmKzE2Pj4yXSk+PjBdKT8oSFkobCxmKSxxQyhELGYsYykpOm1vZShsLGYsYyxEKTtmPTB8YVttPj4yXX1mPWYrMTY0fDB9Zm9yKDB8''@;'; + put 'put ''c0QoRCkmJiRyKDEsODYzMTIsayksdz0wfGl0WzIzNisoZj0wfGFbTT4+Ml0pPj4xXTshKCgwfHcpPigwfGl0W2YrMjM4Pj4xXSkpOyl7aWYoZmVbKDB8YVsxOTYrKDB8YVsxNisoMHxhWzQ2NzQxXSk+PjJdKT4+Ml0pKyh3PDw2KSs0OT4+MF09MCwwIT0oMSZhW2YrMTE2Pj4yXXwwKSYmKDB8''@;'; + put 'put ''KEc9MHxhWyhSPTB8YVtmKzE5Nj4+Ml0pKyh3PDw2KT4+Ml0pKT4wKXtmb3IocD0wfGFbUisodzw8NikrND4+Ml0sQT0oMHwobT1HKy0xfDApKS8yfDAsZj0wOyEoKDB8Zik+KDB8QSkpOyljcCgwfGFbcCsoZjw8Mik+PjJdLDB8YVtwKyhtLWY8PDIpPj4yXSksZj1mKzF8MDtmPTB8YVtNPj4y''@;'; + put 'put ''XX13PXcrMXwwfSgwfEFhKGwpKT09KDB8bCkmJigwfCRDKDApKT4wJiZBSShsLDApLGRKKEQpLGxlPUt9ZnVuY3Rpb24gUlkobCl7dmFyIGIsayxNLGM9MCxmPTAscD0wLG09MCxBPTAsdz0wLEQ9MDtmb3IoYj0oYz0wfGl0WzIzOCsobD0wfGFbKE09MTYrKGx8PTApfDApPj4yXSk+PjFdKTw8''@;'; + put 'put ''MTY+PjE2LGs9bCsxOTZ8MCxwPWY9MHxpdFtsKzIzNj4+MV07ISgoMHxwKT4oMHxiKSk7KXtmb3IoQT0wfGFbKHc9MHxhW2s+PjJdKSsocDw8Nik+PjJdLHc9dysocDw8NikrNHwwLG09MDshKCgwfG0pPj0oMHxBKSk7KWFbMjM2KyhEPTB8YVsxNisoMHxhWygwfGFbdz4+Ml0pKyhtPDwyKT4+''@;'; + put 'put ''Ml0pPj4yXSk+PjJdPX5+K19bRCsxNj4+M10sbT1tKzF8MDtwPXArMXwwfWZvcig7ISgoMHxmKT4oYzw8MTY+PjE2fDApKTspZmVbKDB8YVsxOTYrKDB8YVsxNisoMHxhWzQ2NzQxXSk+PjJdKT4+Ml0pKyhmPDw2KSs0OT4+MF09MCx4MSgwfGFbKEQ9MHxhW2wrMTk2Pj4yXSkrKGY8PDYpKzQ+''@;'; + put 'put ''PjJdLDB8YVtEKyhmPDw2KT4+Ml0sNCw2MiksZj1mKzF8MCxjPTB8aXRbMjM4KyhEPTB8YVtNPj4yXSk+PjFdLGw9RH1mdW5jdGlvbiBEMGUobCxjKXt2YXIgbSxmPTAscD0wO2ZvcihtPSgwfCgwfChjfD0wKSklNCk8MiYxLGY9MHxhWzE2KyhsfD0wKT4+Ml0sMSZjPyhjPTB8aXRbZisyMzg+''@;'; + put 'put ''PjFdLHA9LTEsZj0wfGl0W2YrMjM2Pj4xXSxjPSgoYzw8MTY+PjE2Pj0oMHxpdFsyMzgrKDB8YVsxNisoMHxhWzQ2NzQxXSk+PjJdKT4+MV0pKTw8MzE+PjMxKSsoYzw8MTY+PjE2KXwwKTooYz0wfGl0W2YrMjM2Pj4xXSxwPTEsZj0wfGl0W2YrMjM4Pj4xXSxjPShjPDwxNj4+MTY8PSgwfGl0''@;'; + put 'put ''WzIzNisoMHxhWzE2KygwfGFbNDY3NDFdKT4+Ml0pPj4xXSkmMSkrKGM8PDE2Pj4xNil8MCksZj1wK2Z8MDsoMHxjKSE9KDB8Zik7KU8wZShsLGMsbSwyNTUmKDB8UFkobCxjLGMtcHwwKSkpLGM9YytwfDA7QUkobCwxXm0pfWZ1bmN0aW9uIEFJKGwsYyl7Y3w9MDt2YXIgQSx3LGIsZj0wLHA9''@;'; + put 'put ''MCxtPTA7Zm9yKHc9MHxpdFsyMzgrKHA9MHxhWyhiPTE2KyhsfD0wKXwwKT4+Ml0pPj4xXSxtPXArMTk2fDAsZj0oQT0wfGl0W3ArMjM2Pj4xXSk8PDE2Pj4xNjs7KXtpZigoMHxmKT4oMHx3KSl7bT1BO2JyZWFrfWZlWygwfGFbbT4+Ml0pKyhmPDw2KSs0OD4+MF09MSxmPWYrMXwwfWZvcig7''@;'; + put 'put ''Oyl7Zm9yKGY9MCxtPW08PDE2Pj4xNjshKCgwfG0pPigwfGl0W3ArMjM4Pj4xXSkpOykwfGZlWygwfGFbcCsxOTY+PjJdKSsobTw8NikrNDg+PjBdJiYoZj0oMHxCWShsLG0sYykpK2Z8MCxwPTB8YVtiPj4yXSksbT1tKzF8MDtpZigoMHxmKTw9MClicmVhazttPTB8aXRbcCsyMzY+PjFdfX1m''@;'; + put 'put ''dW5jdGlvbiBMMGUobCl7dmFyIFIsYz0wLGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLEc9MCxLPTA7RD0wfGl0WzIzOCsoYz0wfGFbKFI9MTYrKGx8PTApfDApPj4yXSk+PjFdO2U6Zm9yKDs7KXtpZigoMHxEKTwoMHxpdFtjKzIzNj4+MV0pKXtjPTE2O2JyZWFrfWZlWyhm''@;'; + put 'put ''PTB8YVtjKzE5Nj4+Ml0pKyhEPDw2KSs0OD4+MF09MCxHPSgwfEQpPjAsSz1EKzF8MCxwPTA7dDpmb3IoOzspe2ZvcihrPSgwfGFbZisoRDw8Nik+PjJdKS0xfDAsTT1mKyhEPDw2KSs0fDAsYj1mKyhLPDw2KXwwOzspe2lmKCgwfHApPj0oMHxrKSlicmVhayB0O2lmKCgwfGFbMjM2KygwfGFb''@;'; + put 'put ''MTYrKEE9MHxhWyh3PTB8YVtNPj4yXSkrKHA8PDIpPj4yXSk+PjJdKT4+Ml0pPj0oMHxhWzIzNisoMHxhWzE2Kyh3PTB8YVt3KygocD1wKzF8MCk8PDIpPj4yXSk+PjJdKT4+Ml0pKXtjPTc7YnJlYWsgZX1pZighKDB8eUkobCxBLHcpKSYmKEc/KGY9MHxueShBLHcpLG09MHxueSh3LEEpKToo''@;'; + put 'put ''Zj0wLG09MCksKDB8YVtiPj4yXSk+MCYmKGY9KDB8cnkoQSx3KSkrZnwwLG09KDB8cnkodyxBKSkrbXwwKSwoMHxtKTw9KDB8ZikpKWJyZWFrfVc2KGwsRCxBLHcpLGY9MHxhWzE5NisoYz0wfGFbUj4+Ml0pPj4yXX1EPUQrLTF8MH1pZig3PT0oMHxjKSlQcig4NjI2Myw4NTc4MSw3MjEsODYy''@;'; + put 'put ''ODkpO2Vsc2UgaWYoMTY9PSgwfGMpKXJldHVybn1mdW5jdGlvbiB5SShsLGMsZil7bHw9MDt2YXIgbSxBLHcscD0wLGI9MCxrPTA7QT0oMHwodz0wfGFbMjEyKyhiPTB8YVsxNisoY3w9MCk+PjJdKT4+Ml0pKSE9KDB8KG09MHxhWzIxMisocD0wfGFbMTYrKGZ8PTApPj4yXSk+PjJdKSk7ZG97''@;'; + put 'put ''aWYoMHxmZVsxOTM3NjldKUE/bD0xOms9OTtlbHNlIGlmKDA9PSgwfG0pfDA9PSgwfHcpfDFeQSlrPTk7ZWxzZXtpZig3PT0oMHxmZVtiKzE1OT4+MF0pJiYxPT0oMHxmZVtiKzE1Nj4+MF0pKXtsPTA7YnJlYWt9aWYoNz09KDB8ZmVbcCsxNTk+PjBdKSYmMT09KDB8ZmVbcCsxNTY+PjBdKSl7''@;'; + put 'put ''bD0wO2JyZWFrfWw9MX19d2hpbGUoMCk7cmV0dXJuIDk9PSgwfGspJiYoKGw9MHxhWygwfGFbMTk2KyhwPTB8YVtsKzE2Pj4yXSk+PjJdKSsoYVtiKzIzMj4+Ml08PDYpKzU2Pj4yXSk/KGs9MHxBcigwfGFbbCs0Pj4yXSwwfGFbMjg0KygwfGFbKChiPTA9PSgxJmFbcCsxMTY+PjJdfDApKT9j''@;'; + put 'put ''OmYpKzE2Pj4yXSk+PjJdKSxsPTB8ZmVbKDB8YVtsKzg+PjJdKSsoKDB8YVsyODQrKDB8YVsoYj9mOmMpKzE2Pj4yXSk+PjJdKStrKT4+MF0pOmw9MCksMHxsfWZ1bmN0aW9uIG55KGwsYyl7dmFyIGssZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsTT0wLEQ9MDtmb3Ioaz0xNisobHw9MCl8MCx3''@;'; + put 'put ''PTB8YVsxNzIrKDB8YVsxNisoY3w9MCk+PjJdKT4+Ml0sYz0wO2w9MHxhW3c+PjJdOyl7Zm9yKGI9MHxpdFsxNTQrKEE9MHxhW2wrMTY+PjJdKT4+MV0sbT0wfGFbMjM2KygwfGFbMTYrKDB8YVsoMz09KDMmYVtsPj4yXXwwKT9sOmwrNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSxBPUErMTZ8MCxw''@;'; + put 'put ''PTB8YVsxNzIrKDB8YVtrPj4yXSk+PjJdLGw9YztjPTB8YVtwPj4yXTspKDB8KGY9KDB8YVsyMzYrKDB8YVsxNisoMHxhWygzPT0oMyZhW2M+PjJdfDApP2M6Yys0OHwwKSs0MD4+Ml0pPj4yXSk+PjJdKS1tfDApKTw9MD8wPT0oMHxmKSYmK19bMTYrKE09MHxhW2MrMTY+PjJdKT4+M10+K19b''@;'; + put 'put ''QT4+M10mJihjPU0sRD05KTooYz0wfGFbYysxNj4+Ml0sRD05KSw5PT0oMHxEKSYmKEQ9MCxsPSgwfEFyKDB8aXRbYysxNTQ+PjFdLGIpKStsfDApLHA9cCs0fDA7dz13KzR8MCxjPWx9cmV0dXJuIDB8Y31mdW5jdGlvbiByeShsLGMpe3ZhciBrLGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wLE09''@;'; + put 'put ''MCxEPTA7Zm9yKGs9MTYrKGx8PTApfDAsdz0wfGFbMTgwKygwfGFbMTYrKGN8PTApPj4yXSk+PjJdLGM9MDtsPTB8YVt3Pj4yXTspe2ZvcihiPTB8aXRbMTU0KyhBPTB8YVtsKzE2Pj4yXSk+PjFdLG09MHxhWzIzNisoMHxhWzE2KygwfGFbKDI9PSgzJmFbbD4+Ml18MCk/bDpsKy00OHwwKSs0''@;'; + put 'put ''MD4+Ml0pPj4yXSk+PjJdLEE9QSs1NnwwLHA9MHxhWzE4MCsoMHxhW2s+PjJdKT4+Ml0sbD1jO2M9MHxhW3A+PjJdOykoMHwoZj0oMHxhWzIzNisoMHxhWzE2KygwfGFbKDI9PSgzJmFbYz4+Ml18MCk/YzpjKy00OHwwKSs0MD4+Ml0pPj4yXSk+PjJdKS1tfDApKTw9MD8wPT0oMHxmKSYmK19b''@;'; + put 'put ''NTYrKE09MHxhW2MrMTY+PjJdKT4+M10+K19bQT4+M10mJihjPU0sRD05KTooYz0wfGFbYysxNj4+Ml0sRD05KSw5PT0oMHxEKSYmKEQ9MCxsPSgwfEFyKDB8aXRbYysxNTQ+PjFdLGIpKStsfDApLHA9cCs0fDA7dz13KzR8MCxjPWx9cmV0dXJuIDB8Y31mdW5jdGlvbiBXNihsLGMsZixwKXts''@;'; + put 'put ''fD0wLGN8PTA7dmFyIG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wO2lmKCh3PTB8ZmVbMTU2KygwfGFbMTYrKGZ8PTApPj4yXSk+PjBdKTw8MjQ+PjI0IT0oMHxmZVsxNTYrKDB8YVsxNisocHw9MCk+PjJdKT4+MF0pKXtmb3Ioaz0wfGFbKE09MHxhWzE5NisoMHxhWyhiPWwr''@;'; + put 'put ''MTZ8MCk+PjJdKT4+Ml0pKyhjPDw2KT4+Ml0sTT1NKyhjPDw2KSs0fDAsbD0wLG09MCxBPTA7ISgoMHxsKT49KDB8aykpOylHPTA9PSgwfGZlWzE1NisoMHxhWzE2KygwfGFbKDB8YVtNPj4yXSkrKGw8PDIpPj4yXSk+PjJdKT4+MF0pLGw9bCsxfDAsbT1tKygxJkcpfDAsQT1BKygxJigxXkcp''@;'; + put 'put ''KXwwO2Zvcih3PXc8PDI0Pj4yND09MCxBPSgwfG0pPCgwfEEpP3c/ZjpwOnc/cDpmLHc9MCxsPTA7ISgoMHxsKT49KDB8aykpOyl3PSgwfGFbKDB8YVtNPj4yXSkrKGw8PDIpPj4yXSk9PSgwfEEpP2w6dyxsPWwrMXwwO2ZvcihHPTA9PSgwfGZlWzE1NisoMHxhW0ErMTY+PjJdKT4+MF0pJjEs''@;'; + put 'put ''Uj0wLG09dzs7KXtpZihsPW0rLTF8MCwoMHxtKTw9MCl7RD0wLGw9dzticmVha31pZigoMHxmZVsxNTYrKDB8YVsxNisoMHxhWygwfGFbTT4+Ml0pKyhsPDwyKT4+Ml0pPj4yXSk+PjBdKSE9KDB8Rykpe0Q9MCxsPXc7YnJlYWt9Uj1SKzF8MCxtPWx9Zm9yKDshKCgwfChsPWwrMXwwKSk+PSgw''@;'; + put 'put ''fGspfHwoMHxmZVsxNTYrKDB8YVsxNisoMHxhWygwfGFbTT4+Ml0pKyhsPDwyKT4+Ml0pPj4yXSk+PjBdKSE9KDB8RykpOylEPUQrMXwwO2ZvcihjcChmLHApLGs9MHxhWyhiPTB8YVsxOTYrKDB8YVtiPj4yXSk+PjJdKSsoYzw8Nik+PjJdLGI9YisoYzw8NikrNHwwLGw9MDs7KXtpZigoMHxs''@;'; + put 'put ''KT49KDB8aykpe0E9MCxtPXc7YnJlYWt9dz0oMHxhWygwfGFbYj4+Ml0pKyhsPDwyKT4+Ml0pPT0oMHxBKT9sOncsbD1sKzF8MH1mb3IoOzspe2lmKGw9bSstMXwwLCgwfG0pPD0wKXttPTAsbD13O2JyZWFrfWlmKCgwfGZlWzE1NisoMHxhWzE2KygwfGFbKDB8YVtiPj4yXSkrKGw8PDIpPj4y''@;'; + put 'put ''XSk+PjJdKT4+MF0pIT0oMHxHKSl7bT0wLGw9dzticmVha31BPUErMXwwLG09bH1mb3IoOyEoKDB8KGw9bCsxfDApKT49KDB8ayl8fCgwfGZlWzE1NisoMHxhWzE2KygwfGFbKDB8YVtiPj4yXSkrKGw8PDIpPj4yXSk+PjJdKT4+MF0pIT0oMHxHKSk7KW09bSsxfDA7KDB8KCgwfChjPUEtbXww''@;'; + put 'put ''KSk+LTE/YzowLWN8MCkpPigwfCgoMHwoRz1SLUR8MCkpPi0xP0c6MC1HfDApKSYmY3AoZixwKX19ZnVuY3Rpb24gY3AobCxjKXt2YXIgZixwLEEsdyxtPTA7cD0wfGFbMjMyKyhtPTB8YVsxNisobHw9MCk+PjJdKT4+Ml0sZj0wfGFbKG09bSsyMzZ8MCk+PjJdLGFbbT4+Ml09dz0wfGFbMjM2''@;'; + put 'put ''KygwfGFbKEE9MTYrKGN8PTApfDApPj4yXSk+PjJdLGFbKDB8YVsoMHxhWzE5NisoMHxhWyhtPTE2KygwfGFbNDY3NDFdKXwwKT4+Ml0pPj4yXSkrKHA8PDYpKzQ+PjJdKSsodzw8Mik+PjJdPWwsYVsyMzYrKDB8YVtBPj4yXSk+PjJdPWYsYVsoMHxhWygwfGFbMTk2KygwfGFbbT4+Ml0pPj4y''@;'; + put 'put ''XSkrKHA8PDYpKzQ+PjJdKSsoZjw8Mik+PjJdPWN9ZnVuY3Rpb24gQlkobCxjLGYpe2Z8PTA7dmFyIFIsRyxLLHBlLGdlLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTA7ZmVbKEQ9MHxhWzE5NisoMHxhWyhLPTE2KyhsfD0wKXwwKT4+Ml0pPj4yXSkrKChjfD0wKTw8NikrNDg+PjBd''@;'; + put 'put ''PTAscGU9KDB8Yyk+MCxnZT1jKzF8MCxSPTAhPSgwfGYpLEc9YystMXwwLHA9MCxBPTAsZj1EO2U6Zm9yKDs7KXtmb3Ioaz0oMHxhW2YrKGM8PDYpPj4yXSktMXwwLE09ZisoYzw8NikrNHwwLG09ZisoZ2U8PDYpfDAsRD1wOzspe2lmKCgwfEQpPj0oMHxrKSl7Zj0xNzticmVhayBlfWlmKCgw''@;'; + put 'put ''fGFbMjM2KygwfGFbMTYrKHc9MHxhWyhiPTB8YVtNPj4yXSkrKEQ8PDIpPj4yXSk+PjJdKT4+Ml0pPj0oMHxhWzIzNisoMHxhWzE2KyhiPTB8YVtiKygoRD1EKzF8MCk8PDIpPj4yXSk+PjJdKT4+Ml0pKXtmPTU7YnJlYWsgZX1pZighKDB8eUkobCx3LGIpKSl7aWYocGU/KGY9MHxueSh3LGIp''@;'; + put 'put ''LHA9MHxueShiLHcpKTooZj0wLHA9MCksKDB8YVttPj4yXSk+MCYmKGY9KDB8cnkodyxiKSkrZnwwLHA9KDB8cnkoYix3KSkrcHwwKSwoMHxmKT4oMHxwKSlicmVhaztpZigoMHxmKT09KDB8cCkmUiYoMHxmKT4wKXtmPXA7YnJlYWt9fX1jcCh3LGIpLEE9Zi1wK0F8MCxmZVsocD0wfGFbMTk2''@;'; + put 'put ''KygwfGFbMTYrKDB8YVs0Njc0MV0pPj4yXSk+PjJdKSsoYzw8NikrNDk+PjBdPTAsZmVbKGY9MHxhWzE5NisobT0wfGFbSz4+Ml0pPj4yXSkrKGM8PDYpKzQ4Pj4wXT0xLCgwfGl0W20rMjM2Pj4xXSk8KDB8YykmJihmZVtwKyhHPDw2KSs0OT4+MF09MCxmZVtmKyhHPDw2KSs0OD4+MF09MSks''@;'; + put 'put ''KDB8aXRbbSsyMzg+PjFdKTw9KDB8Yyl8fChmZVtwKyhnZTw8NikrNDk+PjBdPTAsZmVbZisoZ2U8PDYpKzQ4Pj4wXT0xKSxwPUR9aWYoNT09KDB8ZikpUHIoODYyNjMsODU3ODEsNzcwLDg2Mjk3KTtlbHNlIGlmKDE3PT0oMHxmKSlyZXR1cm4gMHxBO3JldHVybiAwfWZ1bmN0aW9uIFBZKGws''@;'; + put 'put ''YyxmKXt2YXIgTSxELEcsSyxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxSPTA7Zm9yKEs9MHxhWyhsPTB8YVsxOTYrKDB8YVsoRz0xNisobHw9MCl8MCk+PjJdKT4+Ml0pKygoY3w9MCk8PDYpKzQ+PjJdLE09KDB8KGZ8PTApKT4oMHxjKSxEPTQrKFI9MHxhWzQ2NzM5XSl8MCxrPTA7Oyl7aWYo''@;'; + put 'put ''KDB8ayk+PSgwfChmPTB8YVtsKyhjPDw2KT4+Ml0pKSl7bD0wLEE9MDticmVha31sPTB8YVsoYj0xNisoMHxhW0srKGs8PDIpPj4yXSl8MCk+PjJdO2U6ZG97aWYoTSlmb3Iodz0wfGFbbCsxODA+PjJdLGw9MCxBPTA7Oyl7aWYoIShmPTB8YVt3KyhBPDwyKT4+Ml0pKWJyZWFrIGU7KDB8aXRb''@;'; + put 'put ''MTU0KyhwPTB8YVtmKzE2Pj4yXSk+PjFdKT4wJiYoYVtSKyhsPDwyKT4+Ml09YVsyMzYrKDB8YVsxNisoMHxhWygyPT0oMyZhW2Y+PjJdfDApP2Y6ZistNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXTw8OHxYdFtwKzg4Pj4wXSxsPWwrMXwwKSxBPUErMXwwfWVsc2UgZm9yKHc9MHxhW2wrMTcyPj4y''@;'; + put 'put ''XSxBPTAsbD0wOzspe2lmKCEoZj0wfGFbdysoQTw8Mik+PjJdKSlicmVhayBlOygwfGl0WzE1NCsocD0wfGFbZisxNj4+Ml0pPj4xXSk+MCYmKGFbUisobDw8Mik+PjJdPWFbMjM2KygwfGFbMTYrKDB8YVsoMz09KDMmYVtmPj4yXXwwKT9mOmYrNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXTw8OHxY''@;'; + put 'put ''dFtwKzQ4Pj4wXSxsPWwrMXwwKSxBPUErMXwwfX13aGlsZSgwKTtlOmRve3N3aXRjaCgwfGwpe2Nhc2UgMDptPS0xO2JyZWFrO2Nhc2UgMTptPSsoMHxhW1I+PjJdKTticmVhaztjYXNlIDI6bT0rKDB8KCgwfGFbRD4+Ml0pKygwfGFbUj4+Ml0pfDApLzIpO2JyZWFrO2RlZmF1bHQ6aWYoeDEo''@;'; + put 'put ''UixsLDQsNjApLGY9KDB8bCkvMnwwLDEmbHwwKXttPSsoMHxhW1IrKGY8PDIpPj4yXSk7YnJlYWsgZX1pZihwPSgwfGFbUisobCstMTw8Mik+PjJdKS0oQT0wfGFbUisoZjw8Mik+PjJdKXwwLCgwfChmPShsPTB8YVtSKyhmKy0xPDwyKT4+Ml0pLSgwfGFbUj4+Ml0pfDApKT09KDB8cCkpe209''@;'; + put 'put ''KygwfChsK0F8MCkvMik7YnJlYWsgZX1tPSsoMHwoKDB8QXIoZixBKSkrKDB8QXIobCxwKSl8MCkvKGYrcHwwKSk7YnJlYWsgZX19d2hpbGUoMCk7X1syNDArKDB8YVtiPj4yXSk+PjNdPW0saz1rKzF8MCxsPTB8YVsxOTYrKDB8YVtHPj4yXSk+PjJdfWZvcig7ISgoMHxBKT49KDB8ZikpOykw''@;'; + put 'put ''PT0oMHxhWzE4NCsoUj0wfGFbMTYrKHA9MHxhW0srKEE8PDIpPj4yXSk+PjJdKT4+Ml0pJiYwPT0oMHxhW1IrMTc2Pj4yXSkmJihsPTI1NSYoMHxQdShwKXwyNTUmbCksZj0wfGFbKDB8YVsxOTYrKDB8YVtHPj4yXSk+PjJdKSsoYzw8Nik+PjJdKSxBPUErMXwwO3JldHVybiAwfGx9ZnVuY3Rp''@;'; + put 'put ''b24gTzBlKGwsYyxmLHApe3ZhciBHLEssZ2UsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxwZT0wO2ZvcihnZT0wfGFbKFI9MHxhWzE5NisoMHxhWzE2KyhsfD0wKT4+Ml0pPj4yXSkrKChjfD0wKTw8NikrND4+Ml0sSz0wIT0oMHwoZnw9MCkpLEc9MD09KChwfD0wKXxmfDApLHA9''@;'; + put 'put ''MCxmPVI9MHxhW1IrKGM8PDYpPj4yXSxSPWdlKyhSPDwyKXwwO0Q9ZistMXwwLCgwfGYpPjA7KXtmPWdlO2U6Zm9yKDs7KXt0OmZvcig7Oyl7aWYoZj4+PjA+PVI+Pj4wKWJyZWFrIGU7Zm9yKDs7KXtpZihmPj4+MD49Uj4+PjApYnJlYWsgZTtpZighKChNPStfWzI0MCsoMHxhWzE2KyhrPTB8''@;'; + put 'put ''YVtmPj4yXSk+PjJdKT4+M10pPDApKWJyZWFrO2Y9Zis0fDB9Zm9yKGI9MDs7KXtmb3IobT1iPDwyND4+MjQ9PTA7Oyl7aWYoKGY9Zis0fDApPj4+MD49Uj4+PjApYnJlYWsgZTtpZihtKXttPTExO2JyZWFrfWlmKCEoMHxhWzIxMisoMHxhWzE2KyhBPTB8YVtmPj4yXSk+PjJdKT4+Ml0pKXtt''@;'; + put 'put ''PTEzO2JyZWFrfX1pZigxMT09KDB8bSk/dz1BPTB8YVtmPj4yXToxMz09KDB8bSkmJih3PUEpLDB8eUkobCxrLHcpKWNvbnRpbnVlIHQ7aWYoK19bMjQwKyhtPTB8YVtBKzE2Pj4yXSk+PjNdPj0wKWJyZWFrO2I9MD09KDB8YVttKzIxMj4+Ml0pP2I6MX1pZigoMHwobT1+fk0pKT4oMHwoYj1+''@;'; + put 'put ''fitfWzI0MCsoMHxhW0ErMTY+PjJdKT4+M10pKXxLJigwfG0pPT0oMHxiKSlicmVha31jcChrLHcpLHA9cCsxfDB9Zj1ELFI9Rz9SKy00fDA6Un0wfHAmJihmZVsocGU9MHxhWzE5NisoMHxhWzE2KygwfGFbNDY3NDFdKT4+Ml0pPj4yXSkrKGM8PDYpKzQ5Pj4wXT0wLCgwfGMpPjApJiYoZmVb''@;'; + put 'put ''cGUrKGMrLTE8PDYpKzQ5Pj4wXT0wKX1mdW5jdGlvbiBQdShsKXt2YXIgQSxjPTAsZj0wLHA9MCxtPTA7aWYoKDB8YVsyMDArKEE9MHxhWzE2KyhsfD0wKT4+Ml0pPj4yXSk+MCl7Zm9yKGw9MHxhWygzPT0oMyZhWyhsPTB8YVsobT0wfGFbQSsxOTY+PjJdKT4+Ml0pPj4yXXwwKT9sOmwrNDh8''@;'; + put 'put ''MCkrNDA+PjJdLGY9MTtwPTB8YVttKyhmPDwyKT4+Ml07KWw9KDB8YVsyMzYrKDB8YVsxNisocD0wfGFbKDM9PSgzJmFbcD4+Ml18MCk/cDpwKzQ4fDApKzQwPj4yXSk+PjJdKT4+Ml0pPigwfGFbMjM2KygwfGFbbCsxNj4+Ml0pPj4yXSk/cDpsLGY9ZisxfDA7KGM9K19bMjQwKygwfGFbbCsx''@;'; + put 'put ''Nj4+Ml0pPj4zXSk+PTA/KF9bQSsyNDA+PjNdPWMrMSxsPTApOmw9MX1lbHNlIGlmKCgwfGFbQSsxOTI+PjJdKT4wKXtmb3IobD0xLGY9MHxhWygyPT0oMyZhWyhmPTB8YVsocD0wfGFbQSsxODg+PjJdKT4+Ml0pPj4yXXwwKT9mOmYrLTQ4fDApKzQwPj4yXTttPTB8YVtwKyhsPDwyKT4+Ml07''@;'; + put 'put ''KWw9bCsxfDAsZj0oMHxhWzIzNisoMHxhWzE2KyhtPTB8YVsoMj09KDMmYVttPj4yXXwwKT9tOm0rLTQ4fDApKzQwPj4yXSk+PjJdKT4+Ml0pPCgwfGFbMjM2KygwfGFbZisxNj4+Ml0pPj4yXSk/bTpmOyhjPStfWzI0MCsoMHxhW2YrMTY+PjJdKT4+M10pPjA/KF9bQSsyNDA+PjNdPWMrLTEs''@;'; + put 'put ''bD0wKTpsPTF9ZWxzZSBsPTE7cmV0dXJuIDB8bH1mdW5jdGlvbiBIWShsLGMpe3ZhciBBLGIsayxHLGY9MCxwPTAsbT0wLHc9MCxNPTAsRD0wLFI9MDtHPWxlLGxlPWxlKzk2fDAsUj1HKzY0fDAsRD1HKzQ4fDAsQT1HKzI0fDAscD1HLHc9MHxhWyhmPTB8YVsxOTYrKDB8YVsoTT0xNisobHw9''@;'; + put 'put ''MCl8MCk+PjJdKT4+Ml0pKygoaz0wfGFbMjMyKygwfGFbKGI9MTYrKGN8PTApfDApPj4yXSk+PjJdKTw8Nik+PjJdO2Rve2lmKCgwfGFbZisoazw8NikrOD4+Ml0pPj0xKXtpZihhWygwfGFbZisoazw8NikrND4+Ml0pKyh3PDwyKT4+Ml09YyxhWzIzNisoMHxhW2I+PjJdKT4+Ml09dyxhWyhm''@;'; + put 'put ''PShwPTB8YVsxOTYrKGw9MHxhW00+PjJdKT4+Ml0pKyhrPDw2KXwwKT4+Ml09MSsobT0wfGFbZj4+Ml0pLCgwfG0pPj0oMHxhW3ArKGs8PDYpKzg+PjJdKSYmUHIoODYzNzcsODU3ODEsMTM0Niw4NjQxMyksKDB8dyk+KDB8KG09MHxhWygwfGFbMTk2KygwfGFbMTYrKDB8YVs0Njc0MV0pPj4y''@;'; + put 'put ''XSk+PjJdKSsoazw8NikrOD4+Ml0pKSl7TT0wfHRpKGMpLEQ9MHxhWzIzNisoMHxhW2I+PjJdKT4+Ml0sUj0wfGFbKDB8YVsxOTYrKDB8YVsxNisoMHxhWzQ2NzQxXSk+PjJdKT4+Ml0pKyhrPDw2KSs4Pj4yXSxhW0E+PjJdPTEzNTksYVtBKzQ+PjJdPU0sYVtBKzg+PjJdPUQsYVtBKzEyPj4y''@;'; + put 'put ''XT1rLGFbQSsxNj4+Ml09UiwkcigxLDg2NDI5LEEpO2JyZWFrfWlmKCgwfGspPCgwfChmPTB8aXRbbCsyMzY+PjFdKSl8KDB8ayk+KChsPTB8aXRbbCsyMzg+PjFdKTw8MTY+PjE2fDApKXthW0Q+PjJdPTEzNjQsYVtEKzQ+PjJdPWssYVtEKzg+PjJdPWYsYVtEKzEyPj4yXT1sPDwxNj4+MTYs''@;'; + put 'put ''JHIoMSw4NjUwMixEKTticmVha30oKDB8YVtwKyhrPDw2KSs0Pj4yXSkrKHc8PDIpfDApPj4+MD4oKDB8YVtwKyhrPDw2KSsxMj4+Ml0pKyhtPDwyKXwwKT4+PjAmJih3PTB8dGkoYyksTT0oMHxhWyhEPTB8YVsxOTYrKDB8YVtNPj4yXSk+PjJdKSsoazw8NikrND4+Ml0pKyhhWzIzNisoMHxh''@;'; + put 'put ''W2I+PjJdKT4+Ml08PDIpfDAsRD0oMHxhW0QrKGs8PDYpKzEyPj4yXSkrKGFbKDB8YVsxOTYrKDB8YVsxNisoMHxhWzQ2NzQxXSk+PjJdKT4+Ml0pKyhrPDw2KSs4Pj4yXTw8Mil8MCxhW1I+PjJdPTEzNzAsYVtSKzQ+PjJdPWssYVtSKzg+PjJdPXcsYVtSKzEyPj4yXT1NLGFbUisxNj4+Ml09''@;'; + put 'put ''ayxhW1IrMjA+PjJdPWssYVtSKzI0Pj4yXT1ELCRyKDEsODY1NjMsUikpfWVsc2UgRD0wfHRpKGwpLFI9MHx0aShjKSxhW3A+PjJdPTEzMzksYVtwKzQ+PjJdPUQsYVtwKzg+PjJdPVIsYVtwKzEyPj4yXT1rLGFbcCsxNj4+Ml09dywkcigxLDg2MzIyLHApfXdoaWxlKDApO2xlPUd9ZnVuY3Rp''@;'; + put 'put ''b24gcUMobCxjLGYpe2x8PTAsZnw9MDt2YXIgQSxwPTAsbT0wO0E9MTYrKGN8PTApfDA7ZTpkb3tpZihmKWZvcihtPTA7Oyl7aWYoKDB8bSk+PSgwfGFbMTc2KyhjPTB8YVtBPj4yXSk+PjJdKSlicmVhayBlO2Y9NDgrKGM9MHxhWygwfGFbYysxNzI+PjJdKSsobTw8Mik+PjJdKXwwLDB8ZmVb''@;'; + put 'put ''KHA9MTU3KygwfGFbMTYrKDB8YVsoMz09KDMmYVtjPj4yXXwwKT9jOmYpKzQwPj4yXSk+PjJdKXwwKT4+MF18fChmZVtwPj4wXT0xLEQ3KGwsMHxhWygzPT0oMyZhW2M+PjJdfDApP2M6ZikrNDA+PjJdKSksbT1tKzF8MH1lbHNlIGZvcihtPTA7Oyl7aWYoKDB8bSk+PSgwfGFbMTg0KyhjPTB8''@;'; + put 'put ''YVtBPj4yXSk+PjJdKSlicmVhayBlO2Y9KGM9MHxhWygwfGFbYysxODA+PjJdKSsobTw8Mik+PjJdKS00OHwwLDB8ZmVbKHA9MTU3KygwfGFbMTYrKDB8YVsoMj09KDMmYVtjPj4yXXwwKT9jOmYpKzQwPj4yXSk+PjJdKXwwKT4+MF18fChmZVtwPj4wXT0xLEQ3KGwsMHxhWygyPT0oMyZhW2M+''@;'; + put 'put ''PjJdfDApP2M6ZikrNDA+PjJdKSksbT1tKzF8MH19d2hpbGUoMCl9ZnVuY3Rpb24gTlkobCxjKXt2YXIgUixLLHBlLGJlLE9lLGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLEc9MCxnZT0wO2ZvcihPZT1sZSxsZT1sZSsxNnwwLGJlPU9lLHBlPTB8YVsoZj0wfGFbMTk2Kygw''@;'; + put 'put ''fGFbKHA9MTYrKGx8PTApfDApPj4yXSk+PjJdKSsoKGN8PTApPDw2KSs0Pj4yXSwoMHxhWzQ2NzQ1XSk+KDB8KGw9MHxhWygwfGFbMTk2KygwfGFbMTYrKDB8YVs0Njc0MV0pPj4yXSk+PjJdKSsoKGdlPWMrMXwwKTw8Nik+PjJdKSk/Rz0wfGFbNDY3NDZdOihhWzQ2NzQ1XT1sPWwrMXwwLGw9''@;'; + put 'put ''KGY9MHxhWzQ2NzQ2XSk/MHxWMChmLGw8PDIpOjB8UW4obDw8MiksYVs0Njc0Nl09bCxmPTB8YVsxOTYrKDB8YVtwPj4yXSk+PjJdLEc9bCksSz1mKyhnZTw8Nil8MCxsPTA7ISgoMHxsKT49KDB8YVtLPj4yXSkpOylhW0crKGw8PDIpPj4yXT0wLGw9bCsxfDA7Zm9yKFI9ZisoYzw8Nil8MCxE''@;'; + put 'put ''PTAsbT0wLGw9MCx3PUc7ISgoMHxEKT49KDB8KGI9MHxhW1I+PjJdKSkpOyl7TT0wfGFbMTgwKygwfGFbMTYrKDB8YVtwZSsoRDw8Mik+PjJdKT4+Ml0pPj4yXTtlOmRve2lmKCgwfG0pPjApZm9yKGs9MDs7KXtpZighKHA9MHxhW00rKGs8PDIpPj4yXSkpYnJlYWsgZTtmb3IoYj1wKzE2fDAs''@;'; + put 'put ''QT0wfGFbMjM2KygwfGFbMTYrKDB8YVsoMj09KDMmYVtwPj4yXXwwKT9wOnArLTQ4fDApKzQwPj4yXSk+PjJdKT4+Ml07cD1BKzF8MCwhKCgwfEEpPj0oMHxtKSk7KUE9cCxsPSgwfEFyKDB8YVt3KyhwPDwyKT4+Ml0sMHxpdFsxNTQrKDB8YVtiPj4yXSk+PjFdKSkrbHwwO2s9aysxfDB9fXdo''@;'; + put 'put ''aWxlKDApO2ZvcihBPTA7cD0wfGFbTSsoQTw8Mik+PjJdOylhWyhrPUcrKCh3PTB8YVsyMzYrKDB8YVsxNisoMHxhWygyPT0oMyZhW3A+PjJdfDApP3A6cCstNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSk8PDIpfDApPj4yXT0oMHxhW2s+PjJdKSsoMHxpdFsxNTQrKDB8YVtwKzE2Pj4yXSk+PjFd''@;'; + put 'put ''KSxtPSgwfHcpPigwfG0pP3c6bSxBPUErMXwwLHc9RztEPUQrMXwwfWZvcihBPWYrKGM8PDYpKzR8MCxtPTA7ISgoMHxtKT49KDB8YikpOykwfGZlWzE0NSsocD0wfGFbMTYrKDB8YVsoMHxhW0E+PjJdKSsobTw8Mik+PjJdKT4+Ml0pPj4wXSYmKGFbYmU+PjJdPWFbKGM9cCsxODB8MCk+PjJd''@;'; + put 'put ''LGFbYmUrND4+Ml09YVtjKzQ+PjJdLGw9KDB8d0koYmUsMSkpK2x8MCksbT1tKzF8MDtmb3IoQT0wfGFbSz4+Ml0sbT1mKyhnZTw8NikrNHwwLHA9MDshKCgwfHApPj0oMHxBKSk7KTB8ZmVbMTQ1KyhmPTB8YVsxNisoMHxhWygwfGFbbT4+Ml0pKyhwPDwyKT4+Ml0pPj4yXSk+PjBdJiYoYVti''@;'; + put 'put ''ZT4+Ml09YVsoZ2U9ZisxNzJ8MCk+PjJdLGFbYmUrND4+Ml09YVtnZSs0Pj4yXSxsPSgwfHdJKGJlLC0xKSkrbHwwKSxwPXArMXwwO3JldHVybiBsZT1PZSwwfGx9ZnVuY3Rpb24gd0kobCxjKXt2YXIgayxELGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wLE09MDtEPSgwfChjfD0wKSk8MSxrPTB8''@;'; + put 'put ''YVsobHw9MCk+PjJdLGM9MCxsPTA7ZTpmb3IoO009MHxhW2srKGM8PDIpPj4yXSxNOylpZihjPWMrMXwwLEQpZm9yKHc9TSs0OHwwLGI9TSsxNnwwLEE9Yzs7KXtpZighKGY9MHxhW2srKEE8PDIpPj4yXSkpY29udGludWUgZTsoK19bNTYrKHA9MHxhW2YrMTY+PjJdKT4+M10tK19bNTYrKG09''@;'; + put 'put ''MHxhW2I+PjJdKT4+M10pKisoKDB8YVsyMzYrKDB8YVsxNisoMHxhWygzPT0oMyZhW2Y+PjJdfDApP2Y6Zis0OHwwKSs0MD4+Ml0pPj4yXSk+PjJdKS0oMHxhWzIzNisoMHxhWzE2KygwfGFbKDM9PSgzJmFbTT4+Ml18MCk/TTp3KSs0MD4+Ml0pPj4yXSk+PjJdKXwwKTwwJiYobD0oMHxBcigw''@;'; + put 'put ''fGl0W3ArMTU0Pj4xXSwwfGl0W20rMTU0Pj4xXSkpK2x8MCksQT1BKzF8MH1lbHNlIGZvcih3PU0rLTQ4fDAsYj1NKzE2fDAsQT1jOzspe2lmKCEoZj0wfGFbaysoQTw8Mik+PjJdKSljb250aW51ZSBlOygrX1sxNisocD0wfGFbZisxNj4+Ml0pPj4zXS0rX1sxNisobT0wfGFbYj4+Ml0pPj4z''@;'; + put 'put ''XSkqKygoMHxhWzIzNisoMHxhWzE2KygwfGFbKDI9PSgzJmFbZj4+Ml18MCk/ZjpmKy00OHwwKSs0MD4+Ml0pPj4yXSk+PjJdKS0oMHxhWzIzNisoMHxhWzE2KygwfGFbKDI9PSgzJmFbTT4+Ml18MCk/TTp3KSs0MD4+Ml0pPj4yXSk+PjJdKXwwKTwwJiYobD0oMHxBcigwfGl0W3ArMTU0Pj4x''@;'; + put 'put ''XSwwfGl0W20rMTU0Pj4xXSkpK2x8MCksQT1BKzF8MH1yZXR1cm4gMHxsfWZ1bmN0aW9uIGJJKGwpe3ZhciBBLHcsYz0wLGY9MCxwPTAsbT0wLGI9MCxrPTA7Zm9yKHc9MHx2cig4KyhpdFsyMzgrKDB8YVsoQT0xNisobHw9MCl8MCk+PjJdKT4+MV08PDIpfDApLG09MHxEdChsKTttOyl7Zm9y''@;'; + put 'put ''KGFbKHA9dysoYVsyMzIrKDB8YVttKzE2Pj4yXSk+PjJdPDwyKXwwKT4+Ml09MSsoMHxhW3A+PjJdKSxwPTB8dzAobCxtKTtwOyl7Zm9yKGY9KGs9KDB8KGM9MHxhWzIzMisoMHxhWzE2KygwfGFbKDM9PSgwfChiPTMmYVtwPj4yXSkpP3A6cCs0OHwwKSs0MD4+Ml0pPj4yXSk+PjJdKSk+KDB8''@;'; + put 'put ''KGI9MHxhWzIzMisoMHxhWzE2KygwfGFbKDI9PSgwfGIpP3A6cCstNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSkpKT9jOmIsYz1rP2I6YzshKCgwfChjPWMrMXwwKSk+PSgwfGYpKTspYVsoaz13KyhjPDwyKXwwKT4+Ml09MSsoMHxhW2s+PjJdKTtwPTB8UzAobCxwKX1tPTB8enQobCxtKX1mb3Io''@;'; + put 'put ''cD0wfHZyKDEyOCsoaXRbMjM4KygwfGFbQT4+Ml0pPj4xXTw8Nil8MCksYVsxOTYrKGY9MHxhW0E+PjJdKT4+Ml09cCxjPTB8aXRbZisyMzY+PjFdOyEoKDB8Yyk+KDB8aXRbZisyMzg+PjFdKSk7KWFbcCsoYzw8Nik+PjJdPWY9MHxhWyhiPXcrKGM8PDIpfDApPj4yXSxhW3ArKGM8PDYpKzg+''@;'; + put 'put ''PjJdPWYsYj0wfHZyKDQrKGFbYj4+Ml08PDIpfDApLGFbKGs9MHxhWzE5NisoZj0wfGFbQT4+Ml0pPj4yXSkrKGM8PDYpKzQ+PjJdPWIsYVtrKyhjPDw2KSsxMj4+Ml09YixjPWMrMXwwLHA9aztGdCh3KX1mdW5jdGlvbiBqWShsLGMsZixwKXtjfD0wLGZ8PTAscHw9MDt2YXIgTSxtPTAsQT0w''@;'; + put 'put ''LHc9MCxiPTAsaz0wO2ZvcihNPTE2KyhsfD0wKXwwLEE9MTshKCgwfEEpPigwfGFbMTgwKyhtPTB8YVtNPj4yXSk+PjJdKSk7KWs9MHxqWSgwfGFbKDB8YVttKzE4ND4+Ml0pKyhBPDwyKT4+Ml0sYyxmLHApLEE9QSsxfDAscD1rO2U6ZG97aWYoKDB8QWEobCkpIT0oMHxsKSl7Zm9yKHUyKDB8''@;'; + put 'put ''YywwLGY8PDJ8MCksbT0wfER0KGwpO207KXtmb3IoYVtjKyhhWzIzMisoMHxhWyhiPW0rMTZ8MCk+PjJdKT4+Ml08PDIpPj4yXT0xLEE9MHx3MChsLG0pO0E7KXtmb3Ioaz1BKy00OHwwLHc9MHxhWzIzMisoMHxhW2I+PjJdKT4+Ml07Zj13KzF8MCwhKCgwfHcpPj0oMHxhWzIzMisoMHxhWzE2''@;'; + put 'put ''KygwfGFbKDI9PSgzJmFbQT4+Ml18MCk/QTprKSs0MD4+Ml0pPj4yXSk+PjJdKSk7KWFbYysoZjw8Mik+PjJdPTEsdz1mO0E9MHxTMChsLEEpfW09MHx6dChsLG0pfWZvcihBPTB8aXRbMjM2KyhtPTB8YVtNPj4yXSk+PjFdOzspe2lmKCgwfEEpPigwfGl0W20rMjM4Pj4xXSkpYnJlYWsgZTsw''@;'; + put 'put ''fGFbYysoQTw8Mik+PjJdfHwocHx8KHA9MHxkcygwfEFhKGwpLDg2Njc1LDEpKSxoMChtPTB8R3IocCwwLDEpLDEzNzQ0NywzMDQsMSksYVsyMzIrKHc9MHxhWyhrPW0rMTZ8MCk+PjJdKT4+Ml09QSxfW3crOTY+PjNdPS41LF9bdys4OD4+M109LjUsX1t3KzgwPj4zXT0xLGFbdysyMTY+PjJd''@;'; + put 'put ''PTEsYVt3KzE3Nj4+Ml09MCx3PTB8dnIoMjApLGFbMTcyKyhiPTB8YVtrPj4yXSk+PjJdPXcsYVtiKzE4ND4+Ml09MCxiPTB8dnIoMjApLGFbMTgwKygwfGFbaz4+Ml0pPj4yXT1iLFluKGwsbSwxKSxtPTB8YVtNPj4yXSksQT1BKzF8MH19fXdoaWxlKDApO3JldHVybiAwfHB9ZnVuY3Rpb24g''@;'; + put 'put ''aXkobCl7dmFyIGMsZj0wO2Zvcih0SChsfD0wKSxjPWwrMTZ8MCxsPTE7ISgoMHxsKT4oMHxhWzE4MCsoZj0wfGFbYz4+Ml0pPj4yXSkpOylpeSgwfGFbKDB8YVtmKzE4ND4+Ml0pKyhsPDwyKT4+Ml0pLGw9bCsxfDB9ZnVuY3Rpb24gUjBlKGwpe3ZhciBmLGM9MDtmPTB8WlkoMHxhWygzPT0o''@;'; + put 'put ''MHwoYz0zJmFbKGx8PTApPj4yXSkpP2w6bCs0OHwwKSs0MD4+Ml0pLGM9MHxhWzE3MzA4KygxMipmfDApKygoMHxaWSgwfGFbKDI9PSgwfGMpP2w6bCstNDh8MCkrNDA+PjJdKSk8PDIpPj4yXSxhWyhsPTE1NisoMHxhW2wrMTY+PjJdKXwwKT4+Ml09MHxBcigwfGFbbD4+Ml0sYyl9ZnVuY3Rp''@;'; + put 'put ''b24gWlkobCl7cmV0dXJuIDB8KDE9PSgwfGZlWzE1NisobD0wfGFbMTYrKGx8PTApPj4yXSk+PjBdKT8yOigwfGZlW2wrMTYwPj4wXSk8MiYxKX1mdW5jdGlvbiBfSShsLGMpe2N8PTAsMHxhWzE5MisoMHxhWzE2KyhsfD0wKT4+Ml0pPj4yXSYmKGZwKGwpLGFIKGwpLDB8ZmVbMTk0OTU0XSYm''@;'; + put 'put ''ZnVuY3Rpb24gT1UobCl7bHw9MDt2YXIgRyxLLGJlLGM9MCxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAscGU9MCxnZT0wO2JlPWxlLGxlPWxlKzE2fDAsSz1iZSxnZT00LHBlPTB8QjAoNDApLGFbcGU+PjJdPTAsZj0wfGFbKEc9bCsxNnwwKT4+Ml07ZTpkb3tpZigo''@;'; + put 'put ''KDB8aXRbZisyMzg+PjFdKS0oMHxpdFtmKzIzNj4+MV0pfDApPj0yKXtNPTEsYz1mLGY9MHxhW2YrMTk2Pj4yXTt0OmZvcig7Oyl7aWYoISgwfGFbZisoKEQ9TSsxfDApPDw2KT4+Ml0pKXtSPTE1O2JyZWFrfWZvcihrPTA7Oyl7aWYoKDB8ayk+PSgwfChBPTB8YVtmKyhNPDw2KT4+Ml0pKSl7''@;'; + put 'put ''TT1EO2NvbnRpbnVlIHR9aWYoTW49MCxjPTB8YTAoMjAsMHwoYj0wfGFbKDB8YVtmKyhNPDw2KSs0Pj4yXSkrKGs8PDIpPj4yXSkpLHA9TW4sTW49MCwwIT0oMHxwKSYwIT0oMHx4bik/KChtPTB8Z2koMHxhW3A+PjJdLDB8cGUsMHxnZSkpfHx6ZSgwfHAsMHx4biksRG49eG4pOm09LTEsMT09''@;'; + put 'put ''KDB8bSkpe2M9RG47YnJlYWsgdH1pZihjPDwyND4+MjQpe2Zvcih3PWssYz1BOyEoKDB8KG09dysxfDApKT49KDB8YykpOyl7aWYoTW49MCxjPTB8RmwoNjUsMHxiLDB8YVsoMHxhW2YrKE08PDYpKzQ+PjJdKSsobTw8Mik+PjJdKSxmPU1uLE1uPTAsMCE9KDB8ZikmMCE9KDB8eG4pPygocD0w''@;'; + put 'put ''fGdpKDB8YVtmPj4yXSwwfHBlLDB8Z2UpKXx8emUoMHxmLDB8eG4pLERuPXhuKTpwPS0xLDE9PSgwfHApKXtjPURuO2JyZWFrIHR9aWYoIShjPDwyND4+MjQpKWJyZWFrO3c9bSxmPWM9MHxhWzE5NisoMHxhW0c+PjJdKT4+Ml0sYz0wfGFbYysoTTw8Nik+PjJdfWlmKChtLWt8MCk+MSYmKE1u''@;'; + put 'put ''PTAsY3UoNiwwfGwsMHxNLDB8aywwfHcsMSksYz1NbixNbj0wLDAhPSgwfGMpJjAhPSgwfHhuKT8oKGY9MHxnaSgwfGFbYz4+Ml0sMHxwZSwwfGdlKSl8fHplKDB8YywwfHhuKSxEbj14bik6Zj0tMSwxPT0oMHxmKSkpe2M9RG47YnJlYWsgdH19az1rKzF8MCxjPWY9MHxhW0c+PjJdLGY9MHxh''@;'; + put 'put ''W2YrMTk2Pj4yXX19dDpkb3tpZigxNT09KDB8Uikpe2Zvcig7KDB8TSk+MDspe2ZvcihrPTA7ISgoMHxrKT49KDB8KEE9MHxhWyhmPTB8YVtjKzE5Nj4+Ml0pKyhNPDw2KT4+Ml0pKSk7KXtpZihNbj0wLGM9MHxhMCgyMSwwfChiPTB8YVsoMHxhW2YrKE08PDYpKzQ+PjJdKSsoazw8Mik+PjJd''@;'; + put 'put ''KSkscD1NbixNbj0wLDAhPSgwfHApJjAhPSgwfHhuKT8oKG09MHxnaSgwfGFbcD4+Ml0sMHxwZSwwfGdlKSl8fHplKDB8cCwwfHhuKSxEbj14bik6bT0tMSwxPT0oMHxtKSl7Yz1EbjticmVhayB0fWlmKGM8PDI0Pj4yNCl7Zm9yKHc9ayxjPUE7ISgoMHwobT13KzF8MCkpPj0oMHxjKSk7KXtp''@;'; + put 'put ''ZihNbj0wLGM9MHxGbCg2NiwwfGIsMHxhWygwfGFbZisoTTw8NikrND4+Ml0pKyhtPDwyKT4+Ml0pLGY9TW4sTW49MCwwIT0oMHxmKSYwIT0oMHx4bik/KChwPTB8Z2koMHxhW2Y+PjJdLDB8cGUsMHxnZSkpfHx6ZSgwfGYsMHx4biksRG49eG4pOnA9LTEsMT09KDB8cCkpe2M9RG47YnJlYWsg''@;'; + put 'put ''dH1pZighKGM8PDI0Pj4yNCkpYnJlYWs7dz1tLGY9Yz0wfGFbMTk2KygwfGFbRz4+Ml0pPj4yXSxjPTB8YVtjKyhNPDw2KT4+Ml19aWYoKG0ta3wwKT4xJiYoTW49MCxjdSg2LDB8bCwwfE0sMHxrLDB8dywwKSxjPU1uLE1uPTAsMCE9KDB8YykmMCE9KDB8eG4pPygoZj0wfGdpKDB8YVtjPj4y''@;'; + put 'put ''XSwwfHBlLDB8Z2UpKXx8emUoMHxjLDB8eG4pLERuPXhuKTpmPS0xLDE9PSgwfGYpKSl7Yz1EbjticmVhayB0fX1rPWsrMXwwLGM9MHxhW0c+PjJdfU09TSstMXwwLFI9MTV9cGU9MHxQZigxODcwMTYsMSwwfHBlLDB8Z2UpLGdlPURuLGM9TW49MCxNbj0wLDAhPSgwfGMpJjAhPSgwfHhuKT8o''@;'; + put 'put ''KGY9MHxnaSgwfGFbYz4+Ml0sMHxwZSwwfGdlKSl8fHplKDB8YywwfHhuKSxEbj14bik6Zj0tMSxjPTE9PSgwfGYpP0RuOjB9fXdoaWxlKDApO3Q6Zm9yKDs7KXtpZihjKXtpZihNbj0wLEpzKDIwLDMsODgxNzcsMHxLKSxjPU1uLE1uPTAsMCE9KDB8YykmMCE9KDB8eG4pPygoZj0wfGdpKDB8''@;'; + put 'put ''YVtjPj4yXSwwfHBlLDB8Z2UpKXx8emUoMHxjLDB8eG4pLERuPXhuKTpmPS0xLDE9PSgwfGYpKXtjPURuO2NvbnRpbnVlfWJyZWFrfWZvcihwPTE7Oyl7aWYoKDB8cCk+KDB8YVsxODArKGM9MHxhW0c+PjJdKT4+Ml0pKWJyZWFrIGU7aWYoTW49MCxzcygxMDEsMHxhWygwfGFbYysxODQ+PjJd''@;'; + put 'put ''KSsocDw8Mik+PjJdKSxjPU1uLE1uPTAsMCE9KDB8YykmMCE9KDB8eG4pPygoZj0wfGdpKDB8YVtjPj4yXSwwfHBlLDB8Z2UpKXx8emUoMHxjLDB8eG4pLERuPXhuKTpmPS0xLDE9PSgwfGYpKXtjPURuO2NvbnRpbnVlIHR9cD1wKzF8MH19fX13aGlsZSgwKTtGdCgwfHBlKSxsZT1iZX0obCks''@;'; + put 'put ''ZnVuY3Rpb24gelkobCl7dmFyIGM9MCxmPTAscD0wO2ZvcihmdW5jdGlvbiBrSShsKXt2YXIgYixjPTAsZj0wLHA9MCxtPTAsQT0wLHc9MDtmb3Iodz0wfGl0WzIzNisobD0wfGFbKGI9MTYrKGx8PTApfDApPj4yXSk+PjFdOyEoKDB8dyk+KDB8aXRbbCsyMzg+PjFdKSk7KXtmb3IocD0wfGFb''@;'; + put 'put ''KG09MHxhW2wrMTk2Pj4yXSkrKHc8PDYpPj4yXSxtPW0rKHc8PDYpKzR8MCxBPTAsZj0wOyEoKDB8Zik+PSgwfHApKTspYVsyMzYrKGM9MHxhWzE2KygwfGFbKDB8YVttPj4yXSkrKGY8PDIpPj4yXSk+PjJdKT4+Ml09QSxBPShjPTY9PSgwfGZlW2MrMTU5Pj4wXSk/MHxhW2MrMjE2Pj4yXTox''@;'; + put 'put ''KStBfDAsZj1mKzF8MDtpZigoMHxBKT4oMHxwKSl7Zm9yKGw9KGw9MHxhW20+PjJdKT8wfFYwKGwsNCsoQTw8Mil8MCk6MHxRbig0KyhBPDwyKXwwKSxhWyhmPTB8YVsxOTYrKDB8YVtiPj4yXSk+PjJdKSsodzw8NikrND4+Ml09bCxjPTB8YVtmKyh3PDw2KT4+Ml07bD1jKy0xfDAsISgoMHxj''@;'; + put 'put ''KTw9MCk7KWFbKG09MHxhW2YrKHc8PDYpKzQ+PjJdKSsoYVsyMzYrKDB8YVsxNisoYz0wfGFbbSsobDw8Mik+PjJdKT4+Ml0pPj4yXTw8Mik+PjJdPWMsYz1sLGY9MHxhWzE5NisoMHxhW2I+PjJdKT4+Ml07YVtmKyh3PDw2KT4+Ml09QSxhWygwfGFbZisodzw8NikrND4+Ml0pKyhBPDwyKT4+''@;'; + put 'put ''Ml09MCxsPTB8YVtiPj4yXX13PXcrMXwwfX0obHw9MCksYz0xOTIrKDB8YVtsKzE2Pj4yXSl8MDtjPTB8YVtjPj4yXTspe2lmKChmPTB8YVsyMjQrKGM9MHxhWyhwPWMrMTZ8MCk+PjJdKT4+Ml0pJiYoYXkobCxmKSxjPTB8YVtwPj4yXSksKGY9MHxhW2MrMjI4Pj4yXSk/KGF5KGwsZiksZj0w''@;'; + put 'put ''fGFbcD4+Ml0pOmY9YywwfChwPTB8YVtmKzIwND4+Ml0pKWZvcihjPTA7MHxhW3ArKGM8PDIpPj4yXTspYz1jKzF8MDtjPWYrMTY0fDB9fShsKSwwfGZ1bmN0aW9uIG11KGwpe3ZhciBNLGM9MCxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsRD0wLFI9MDtmb3IoYz0xOTIrKDB8YVsoTT0x''@;'; + put 'put ''NisobHw9MCl8MCk+PjJdKXwwO2M9MHxhW2M+PjJdOyl7Zj0wfGFbMTg4KyhjPTB8YVsobT1jKzE2fDApPj4yXSk+PjJdO2U6ZG97aWYoZilmb3IocD0wOzspe2lmKCEoZj0wfGFbZisocDw8Mik+PjJdKSl7cD0wO2JyZWFrIGV9UTMoZikscD1wKzF8MCxmPTB8YVsxODgrKGM9MHxhW20+PjJd''@;'; + put 'put ''KT4+Ml19ZWxzZSBwPTB9d2hpbGUoMCk7Zm9yKDshKCgwfHApPj0oMHxhW2MrMjA4Pj4yXSkpOykoMHxhWzIzMisoMHxhWzE2KygwfGFbKDI9PSgwfChrPTMmYVsoZj0wfGFbKDB8YVtjKzIwND4+Ml0pKyhwPDwyKT4+Ml0pPj4yXSkpP2Y6ZistNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSk9PSgw''@;'; + put 'put ''fGFbMjMyKygwfGFbMTYrKDB8YVsoMz09KDB8ayk/ZjpmKzQ4fDApKzQwPj4yXSk+PjJdKT4+Ml0pJiYoUTMoZiksYz0wfGFbbT4+Ml0pLHA9cCsxfDA7Yz1jKzE2NHwwfTA9PSgwfGFbNTYrKGM9MHxhWzE5Nisoaz0wfGFbTT4+Ml0pPj4yXSk+PjJdKSYmKDB8YVtrKzE4MD4+Ml0pPD0wfHwo''@;'; + put 'put ''QT0xMyk7ZTpkb3tpZigxMz09KDB8QSkpe0E9MHxhW2MrND4+Ml0sbT0wO3Q6Zm9yKDs7KXtpZighKGM9MHxhW0ErKG08PDIpPj4yXSkpYnJlYWsgZTtmb3IoZj0wfGFbMTk2KygwfGFbYysxNj4+Ml0pPj4yXSxjPTA7cD0wfGFbZisoYzw8Mik+PjJdOyl7aWYoMHxhWzk2KyhrPTB8YVtwKzE2''@;'; + put 'put ''Pj4yXSk+PjJdJiYwPT0oMHxmZVtrKzExMz4+MF0pKWJyZWFrIHQ7Yz1jKzF8MH1tPW0rMXwwfXpVKGwpfX13aGlsZSgwKTtmb3IoaXkobCksZj0wLGM9MTkyKygwfGFbTT4+Ml0pfDA7Yz0wfGFbYz4+Ml07KXtwPTB8YVsxODgrKGM9MHxhWyhrPWMrMTZ8MCk+PjJdKT4+Ml07ZTpkb3tpZihw''@;'; + put 'put ''KXtmb3IoYj0wOzspe2lmKCEobT0wfGFbcCsoYjw8Mik+PjJdKSl7Yj0wO2JyZWFrfXc9MHxhWzk2KyhBPTB8YVttKzE2Pj4yXSk+PjJdO2Rve2lmKHcpe2lmKDB8ZmVbQSsxMTM+PjBdKXtfW0ErMTM2Pj4zXT0rX1soMD09KDEmYVsxMTYrKDB8YVtNPj4yXSk+PjJdfDApP3crMjR8MDp3KzMy''@;'; + put 'put ''fDApPj4zXTticmVha31IdShtKSxmPTEsYz1wPTB8YVtrPj4yXSxwPTB8YVtwKzE4OD4+Ml07YnJlYWt9fXdoaWxlKDApO2I9YisxfDB9Zm9yKDs7KXtpZigoMHxiKT49KDB8YVtjKzIwOD4+Ml0pKWJyZWFrIGU7bT0wfGFbKDM9PSgwfCh3PTMmYVsoQT0wfGFbKDB8YVtjKzIwND4+Ml0pKyhi''@;'; + put 'put ''PDwyKT4+Ml0pPj4yXSkpP0E6QSs0OHwwKSs0MD4+Ml0sdz0wfGFbKDI9PSgwfHcpP0E6QSstNDh8MCkrNDA+PjJdO2Rve2lmKCgwfG0pIT0oMHx3KSYmKDB8YVsyMzIrKDB8YVttKzE2Pj4yXSk+PjJdKT09KDB8YVsyMzIrKDB8YVt3KzE2Pj4yXSk+PjJdKSl7cD1BO2Rve3A9MHxhWzE3Miso''@;'; + put 'put ''dz0wfGFbcCsxNj4+Ml0pPj4yXX13aGlsZSgwIT0oMHxwKSk7aWYoZmVbMTEzKyhtPTB8YVtBKzE2Pj4yXSk+PjBdPXA9MHxmZVt3KzExMz4+MF0sbT0wfGFbbSs5Nj4+Ml0pe2lmKHA8PDI0Pj4yNCl7X1sodz13KzEzNnwwKT4+M109KFI9K19bKDA9PSgxJmFbMTE2KygwfGFbTT4+Ml0pPj4y''@;'; + put 'put ''XXwwKT9tKzI0fDA6bSszMnwwKT4+M10pPihEPStfW3c+PjNdKT9SOkQ7YnJlYWt9SHUoQSksZj0xLGM9MHxhW2s+PjJdO2JyZWFrfX19d2hpbGUoMCk7Yj1iKzF8MH19fXdoaWxlKDApO2M9YysxNjR8MH1yZXR1cm4gMHxmJiYoZnVuY3Rpb24gXzBlKGwpe3ZhciBiLGssTSxELFIsYz0wLGY9''@;'; + put 'put ''MCxwPTAsbT0wLEE9MCx3PTAsRz0wLEs9MCxwZT0wLGdlPTA7Zm9yKFI9bGUsbGU9bGUrMTA0MHwwLE09UisxMDMyfDAsRD1SLGs9Uis4fDAsdz0wfGl0WzIzNisobD0wfGFbKGI9MTYrKGx8PTApfDApPj4yXSk+PjFdOyEoKDB8dyk+KDB8aXRbbCsyMzg+PjFdKSk7KXtmb3IobT0oQT0wfGFb''@;'; + put 'put ''bCsxOTY+PjJdKSsodzw8Nil8MCxBPUErKHc8PDYpKzR8MCxwPTAsbD0wOyEoKDB8cCk+PSgwfGFbbT4+Ml0pKTspMHxhWzExMisoMHxhWyhmPTE2KyhjPTB8YVsoMHxhW0E+PjJdKSsocDw8Mik+PjJdKXwwKT4+Ml0pPj4yXSYmKGx8fChmZVtNPj4wXT0wfGZlWzE4NTg4XSxmZVtNKzE+PjBd''@;'; + put 'put ''PTB8ZmVbMTg1ODldLGZlW00rMj4+MF09MHxmZVsxODU5MF0sZmVbTSszPj4wXT0wfGZlWzE4NTkxXSxsPTB8b2MoODU3NjMsTSwwKSksYVtEPj4yXT1wLG9vKGssMTM3Mzk1LEQpLGgwKGdlPTB8R3IobCxrLDEpLDkxMTY0LDI0LDEpLEc9MHxhWzE4MCsoMHxhW2Y+PjJdKT4+Ml0sYVsxMiso''@;'; + put 'put ''Zj0wfGFbZ2UrMTY+PjJdKT4+Ml09KHBlPSgwfChLPTB8YVsyMzYrKDB8YVsxNisoMHxhWygyPT0oMyZhWyhLPTB8YVtHPj4yXSk+PjJdfDApP0s6SystNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSkpPigwfChHPTB8YVsyMzYrKDB8YVsxNisoMHxhWygyPT0oMyZhWyhHPTB8YVtHKzQ+PjJdKT4+''@;'; + put 'put ''Ml18MCk/RzpHKy00OHwwKSs0MD4+Ml0pPj4yXSk+PjJdKSkpP0c6SyxhW2YrMTY+PjJdPXBlP0s6RyxhW2YrMjA+PjJdPWMpLHA9cCsxfDA7MHxsJiYoKDB8R28obCkpPjEmJmc3KGwsbSksQzEobCkpLHc9dysxfDAsbD0wfGFbYj4+Ml19bGU9Un0obCksJEYobCkpLDB8Zn0obCkmJmFIKGwp''@;'; + put 'put ''LGZ1bmN0aW9uIEdZKGwpeyhmdW5jdGlvbiB1SChsKXt2YXIgYz0wLGY9MCxwPTAsbT0wO2ZvcihsPTE5MisoMHxhWzE2KyhsfD0wKT4+Ml0pfDA7bD0wfGFbbD4+Ml07KXtmb3IoZj0wfGFbNCsobD0xNzIrKHA9MHxhWyhtPWwrMTZ8MCk+PjJdKXwwKT4+Ml0sYVsocD1wKzI0OHwwKT4+Ml09''@;'; + put 'put ''YVtsPj4yXSxhW3ArND4+Ml09ZixsPTB8YVs0KyhmPTE4MCsocD0wfGFbbT4+Ml0pfDApPj4yXSxhWyhwPXArMjU2fDApPj4yXT1hW2Y+PjJdLGFbcCs0Pj4yXT1sLGw9MHxhWzE4MCsocD0wfGFbbT4+Ml0pPj4yXSxmPTA7MHxhW2wrKGY8PDIpPj4yXTspZj1mKzF8MDtmb3IoYz0wfGFbcCsx''@;'; + put 'put ''NzI+PjJdLGw9MDswfGFbYysobDw8Mik+PjJdOylsPWwrMXwwO2FbcCsxNzY+PjJdPTAsbD0wfHZyKDE2KyhsK2Y8PDIpfDApLGFbMTcyKyhwPTB8YVttPj4yXSk+PjJdPWwsYVtwKzE4ND4+Ml09MCxwPTB8dnIoMTYpLGFbMTgwKyhsPTB8YVttPj4yXSk+PjJdPXAsbD1sKzE2NHwwfX0pKGx8''@;'; + put 'put ''PTApLGZ1bmN0aW9uIE4wZShsKXt2YXIgYmUsT2UsTGUsUmUsYz0wLGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAsSz0wLHBlPTAsZ2U9MCxIZT0wLFZlPTA7Zm9yKFJlPWxlLGxlPWxlKzE2fDAsTGU9MHxhWzE5NisocGU9MHxhWyhPZT0xNisobHw9MCl8MCk+''@;'; + put 'put ''PjJdKT4+Ml0sbD0wIT0oMSZmZVsxMTMrKDB8YVsxNisoMHxhW2wrNjA+PjJdKT4+Ml0pPj4wXSksYVsoYmU9UmUpPj4yXT1nZT0wfGFbcGUrMjQ4Pj4yXSxhW2JlKzQ+PjJdPWw/NTpnZSxnZT0wfGl0W3BlKzIzNj4+MV0sbD1wZTshKCgwfGdlKT4oMHxpdFtsKzIzOD4+MV0pKTspe2FbMjMy''@;'; + put 'put ''KygwfGFbMTYrKDB8YVthWyhSPUxlKyhnZTw8NikrNHwwKT4+Ml0+PjJdKT4+Ml0pPj4yXT0wLEc9TGUrKGdlPDw2KXwwLEs9KygwfGFbYmUrKCgxJmdlKTw8Mik+PjJdKSxNPTAsQT0wO2U6Zm9yKDshKCgwfEEpPj0oMHxhW0c+PjJdKSk7KXtpZihfWzI0MCsobD0wfGFbKHBlPTE2Kyh3PTB8''@;'; + put 'put ''YVsoYz0wfGFbUj4+Ml0pKyhBPDwyKT4+Ml0pfDApPj4yXSk+PjNdPXA9K19bbCs5Nj4+M10sKDB8YVtsKzIwOD4+Ml0pPjApe2ZvcihtPTAsYz0wO2Y9MHxhWygwfGFbbCsyMDQ+PjJdKSsobTw8Mik+PjJdOykoMHxhWygzPT0oMHwoRD0zJmFbZj4+Ml0pKT9mOmYrNDh8MCkrNDA+PjJdKT09''@;'; + put 'put ''KDB8YVsoMj09KDB8RCk/ZjpmKy00OHwwKSs0MD4+Ml0pJiYoYz0oMHxsSihmKSkrY3wwLGw9MHxhW3BlPj4yXSksbT1tKzF8MDtfWyhEPWwrOTZ8MCk+PjNdPXA9K19bRD4+M10rICsoMHxjKSxjPTB8YVtSPj4yXX1mb3IoKGM9MHxhW2MrKChEPUErMXwwKTw8Mik+PjJdKSYmKEZ1KHcsYyxw''@;'; + put 'put ''PXArSysgK19bODgrKDB8YVsoaz1jKzE2fDApPj4yXSk+PjNdLDApLGFbMjMyKygwfGFbaz4+Ml0pPj4yXT1sPX5+KHArTSksTT0rKDB8bCksbD0wfGFbcGU+PjJdKSwoYz0wfGFbbCsxMTI+PjJdKT8oZj0obD0oMHxhWzIzNisoMHxhWzE2KygwfGFbKDI9PSgzJmFbKEE9MHxhWyhtPTB8YVts''@;'; + put 'put ''KzI1Nj4+Ml0pPj4yXSk+PjJdfDApP0E6QSstNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSk+KDB8YVsyMzYrKDB8YVsxNisoMHxhWygyPT0oMyZhWyhtPTB8YVttKzQ+PjJdKT4+Ml18MCk/bTptKy00OHwwKSs0MD4+Ml0pPj4yXSk+PjJdKSk/bTpBLG09bD9BOm0scD0rKDB8KDB8QXIoMHxhWzI0''@;'; + put 'put ''OCsoMHxhW09lPj4yXSk+PjJdLDB8aHJbMTcwKyhsPTB8YVsoQT1jKzE2fDApPj4yXSk+PjFdKSkvMiksYz0wfGFbKDI9PSgwfChrPTMmYVtmPj4yXSkpP2Y6ZistNDh8MCkrNDA+PjJdLDB8SlkoZj0wfGFbKDM9PSgwfGspP2Y6Zis0OHwwKSs0MD4+Ml0sYyl8fEZ1KGMsZiwrKDB8fn4oK19b''@;'; + put 'put ''OTYrKDB8YVtjKzE2Pj4yXSk+PjNdK3ArICtfWzg4KygwfGFbZisxNj4+Ml0pPj4zXSkpLDB8YVtsKzE1Nj4+Ml0pLGM9MHxhWygzPT0oMHwobD0zJmFbbT4+Ml0pKT9tOm0rNDh8MCkrNDA+PjJdLDB8SlkobD0wfGFbKDI9PSgwfGwpP206bSstNDh8MCkrNDA+PjJdLGMpfHxGdShjLGwsKygw''@;'; + put 'put ''fH5+KCtfWzk2KygwfGFbYysxNj4+Ml0pPj4zXStwKyArX1s4OCsoMHxhW2wrMTY+PjJdKT4+M10pKSwwfGFbMTU2KygwfGFbQT4+Ml0pPj4yXSksaz0wKTprPTA7Oyl7aWYoKDB8ayk+PSgwfGFbMTkyKyhsPTB8YVtwZT4+Ml0pPj4yXSkpe0E9RDtjb250aW51ZSBlfWM9KG09KDB8YVsyMzYr''@;'; + put 'put ''KDB8YVsxNisoZj0wfGFbKDM9PSgwfChBPTMmYVsodz0wfGFbKDB8YVtsKzE4OD4+Ml0pKyhrPDwyKT4+Ml0pPj4yXSkpP3c6dys0OHwwKSs0MD4+Ml0pPj4yXSk+PjJdKTwoMHxhWzIzNisoMHxhWzE2KyhBPTB8YVsoMj09KDB8QSk/dzp3Ky00OHwwKSs0MD4+Ml0pPj4yXSk+PjJdKSk/ZjpB''@;'; + put 'put ''LG09fn4oKHA9K19bODgrKDB8YVsoZj1tP0E6ZikrMTY+PjJdKT4+M10rICtfWzk2KygwfGFbYysxNj4+Ml0pPj4zXSkrICsoMHxBcigwfGFbMjQ4KygwfGFbT2U+PjJdKT4+Ml0sMHxoclsxNzArKDB8YVsoQT13KzE2fDApPj4yXSk+PjFdKSkpLChiPTB8VTUoYyxmKSk/KCgwfChjPX5+KChw''@;'; + put 'put ''PXArICsoMHxhWzI0OCsoMHxhW09lPj4yXSk+PjJdKSsgKygwfH5+KChWZT0rX1sxMzYrKGw9MHxhW0E+PjJdKT4+M10pKyhWZT49MD8uNTotLjUpKSkpPChIZT0rKDB8bSkpP0hlOnApKSk+NjU1MzUmJihIMGUoKygwfGMpKSxjPTY1NTM1LGw9MHxhW0E+PjJdKSxpdFsobT0xNzArKEE9MHxh''@;'; + put 'put ''W2IrMTY+PjJdKXwwKT4+MV09KDB8Yyk8KDB8KGY9MHxoclttPj4xXSkpP2Y6YyxhWyhBPUErMTU2fDApPj4yXT1hWzE1NisoMHxhWygoMHxhW0E+PjJdKT4oMHxhW2wrMTU2Pj4yXSk/Yjp3KSsxNj4+Ml0pPj4yXSk6MHxhWzk2KyhsPTB8YVtBPj4yXSk+PjJdfHxGdShjLGYsKygwfG0pLDB8''@;'; + put 'put ''YVtsKzE1Nj4+Ml0pLGs9aysxfDB9fWdlPWdlKzF8MCxsPTB8YVtPZT4+Ml19bGU9UmV9KGwpLGZ1bmN0aW9uIFYwZShsKXt2YXIgYz0wLGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wO2ZvcihjPTE5MisoMHxhWzE2KyhsfD0wKT4+Ml0pfDA7Yz0wfGFbYz4+Ml07KXtmPTB8''@;'; + put 'put ''YVsyNTYrKGM9MHxhWyhtPWMrMTZ8MCk+PjJdKT4+Ml07ZTpkb3tpZihmKWZvcihwPTA7Oyl7aWYoIShmPTB8YVtmKyhwPDwyKT4+Ml0pKWJyZWFrIGU7RD0wfFVoKGwpLGZlWzE1NisoMHxhWyhjPUQrMTZ8MCk+PjJdKT4+MF09Mix3PShNPSgwfChBPX5+KCtfWzU2KyhiPTB8YVsoaz1mKzE2''@;'; + put 'put ''fDApPj4yXSk+PjNdLStfW2IrMTY+PjNdKSkpPjApPzA6MC1BfDAsQT1NP0E6MCxNPWYrNDh8MCxGdShELDB8YVsoMz09KDMmYVtmPj4yXXwwKT9mOk0pKzQwPj4yXSwrKEErMXwwKSwwfGFbYisxNTY+PjJdKSxiPWYrLTQ4fDAsRnUoRCwwfGFbKDI9PSgzJmFbZj4+Ml18MCk/ZjpiKSs0MD4+''@;'; + put 'put ''Ml0sKyh3KzF8MCksMHxhWzE1NisoMHxhW2s+PjJdKT4+Ml0pLGFbMjMyKygwfGFbYz4+Ml0pPj4yXT0oKDB8KEE9KDB8YVsyMzIrKDB8YVsxNisoMHxhWygzPT0oMHwoaz0zJmFbZj4+Ml0pKT9mOk0pKzQwPj4yXSk+PjJdKT4+Ml0pLUF8MCkpPCgwfChmPSgwfGFbMjMyKygwfGFbMTYrKDB8''@;'; + put 'put ''YVsoMj09KDB8ayk/ZjpiKSs0MD4+Ml0pPj4yXSk+PjJdKS13fDApKT9BOmYpKy0xLHA9cCsxfDAsZj0wfGFbMjU2KyhjPTB8YVttPj4yXSk+PjJdfX13aGlsZSgwKTtjPWMrMTY0fDB9fShsKSxmdW5jdGlvbiBqMGUobCl7KDB8YVsxODArKDB8YVsxNisobHw9MCk+PjJdKT4+Ml0pPjAmJihm''@;'; + put 'put ''SChsKSxVWShsKSxRWShsKSxoSChsKSl9KGwpLGZ1bmN0aW9uIGNIKGwpe3ZhciBwLGM9MCxmPTAsbT0wOzM9PSgwfGFbODQrKG09MHxhWzgrKDB8YVsocD0xNisobHw9MCl8MCk+PjJdKT4+Ml0pPj4yXSkmJiEoKGY9K19bbSs3Mj4+M10pKihjPStfW20rNjQ+PjNdKTw9MSkmJihRaChsKSxG''@;'; + put 'put ''dSgwfGFbMjU2KyhtPTB8YVtwPj4yXSk+PjJdLDB8YVttKzI2MD4+Ml0sKGY9MD09KDEmYVttKzExNj4+Ml18MCk/YzpmKTw2NTUzNT9mOjY1NTM1LDFlMykpfShsKX0obCksMHxrNyhsLDIsMHxsSChsKSkmJihmdW5jdGlvbiBCMGUobCl7dmFyIHBlLGM9MCxmPTAscD0wLG09MCxBPTAsdz0w''@;'; + put 'put ''LGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLEs9MCxnZT0wO2ZvcihLPTB8aXRbMjM2KyhjPTB8YVsocGU9MTYrKGx8PTApfDApPj4yXSk+PjFdOzspe2lmKCgwfEspPigwfChHPTB8aXRbYysyMzg+PjFdKSkpe2dlPTE5O2JyZWFrfU09MHxhWyhSPShEPTB8YVtjKzE5Nj4+Ml0pKyhLPDw2KXww''@;'; + put 'put ''KT4+Ml0sRD1EKyhLPDw2KSs0fDAsaz0wLGY9MDtlOmZvcig7Oyl7aWYoKDB8ayk+PSgwfE0pKXtnZT0xNDticmVha31BPTB8YVsyNTYrKG09MHxhWzE2KyhmPTB8YVsoMHxhW0Q+PjJdKSsoazw8Mik+PjJdKT4+Ml0pPj4yXTt0OmRve2lmKDB8QSlmb3IocD0wOzspe2lmKCEodz0wfGFbQSso''@;'; + put 'put ''cDw8Mik+PjJdKSlicmVhayB0O2lmKCgwfGFbMjMyKygwfGFbMTYrKDB8YVsoMj09KDB8KGI9MyZhW3c+PjJdKSk/dzp3Ky00OHwwKSs0MD4+Ml0pPj4yXSk+PjJdKT4oMHxLKXx8KDB8YVsyMzIrKDB8YVsxNisoMHxhWygzPT0oMHxiKT93OncrNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSk+KDB8''@;'; + put 'put ''SykpYnJlYWsgZTtwPXArMXwwfX13aGlsZSgwKTttPTB8YVttKzI0OD4+Ml07dDpkb3tpZigwfG0pZm9yKHA9MDs7KXtpZighKEE9MHxhW20rKHA8PDIpPj4yXSkpYnJlYWsgdDtpZigoMHxhWzIzMisoMHxhWzE2KygwfGFbKDM9PSgwfCh3PTMmYVtBPj4yXSkpP0E6QSs0OHwwKSs0MD4+Ml0p''@;'; + put 'put ''Pj4yXSk+PjJdKT4oMHxLKXx8KDB8YVsyMzIrKDB8YVsxNisoMHxhWygyPT0oMHx3KT9BOkErLTQ4fDApKzQwPj4yXSk+PjJdKT4+Ml0pPigwfEspKWJyZWFrIGU7cD1wKzF8MH19d2hpbGUoMCk7az1rKzF8MH1pZigxND09KDB8Z2UpJiYoZ2U9MCxmKSl7aWYoZj0wfGFbYVtEPj4yXT4+Ml0s''@;'; + put 'put ''IShjPTB8YVthW1IrKCgoMHxLKTwoMHxHKT8xOi0xKTw8NikrND4+Ml0+PjJdKSl7Z2U9MTY7YnJlYWt9Uj0wfFVoKGwpLGZlWzE1NisoMHxhWyhHPVIrMTZ8MCk+PjJdKT4+MF09MixGdShSLGYsMCwwKSxGdShSLGMsMCwwKSxhWzIzMisoMHxhW0c+PjJdKT4+Ml09YVsyMzIrKDB8YVsoKDB8''@;'; + put 'put ''YVsyMzIrKDB8YVtmKzE2Pj4yXSk+PjJdKTwoMHxhWzIzMisoMHxhW2MrMTY+PjJdKT4+Ml0pP2Y6YykrMTY+PjJdKT4+Ml0sYz0wfGFbcGU+PjJdfUs9SysxfDB9aWYoMTY9PSgwfGdlKSlQcig4NjgyOSw4NjcyMSwxMTEsODY4MzIpO2Vsc2UgaWYoMTk9PSgwfGdlKSk7fShsKSwwfGs3KGws''@;'; + put 'put ''MiwwfGxIKGwpKSkmJlByKDg2NjkzLDg2NzIxLDEzNCw4NjczMiksZnVuY3Rpb24gZWsobCl7dmFyIGYsQSxjPTAscD0wLG09MCx3PTAsYj0wO2ZvcihBPTB8YVsxOTYrKGw9MHxhWzE2KyhsfD0wKT4+Ml0pPj4yXSxmPTB8aXRbbCsyMzg+PjFdLGw9MHxpdFtsKzIzNj4+MV07ISgoMHxsKT4o''@;'; + put 'put ''MHxmKSk7KXtmb3IocD0wfGFbQSsobDw8Nik+PjJdLG09QSsobDw8NikrNHwwLGM9MDshKCgwfGMpPj0oMHxwKSk7KV9bMTYrKGI9MHxhWzE2KygwfGFbKDB8YVttPj4yXSkrKGM8PDIpPj4yXSk+PjJdKT4+M109KygwfGFbKHc9YisyMzJ8MCk+PjJdKSxhW3c+PjJdPWwsYz1jKzF8MDtsPWwr''@;'; + put 'put ''MXwwfX0obCksZnVuY3Rpb24gQ0kobCxjKXtjfD0wO3ZhciBtLGY9MCxwPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MDtXWShsfD0wLGwpLGI9MHxhWyhtPWwrMTZ8MCk+PjJdO2U6ZG97aWYoKDB8aXRbYisyMzg+PjFdKT4wJiYodz0wfGFbYis4Pj4yXSxmPTB8YVt3Kzg0Pj4y''@;'; + put 'put ''XSwwfGYpKXtSPX5+KCtfW2IrMzI+PjNdLStfW2IrMTY+PjNdKSxNPX5+KCtfW2IrNDA+PjNdLStfW2IrMjQ+PjNdKSxEPShHPTA9PSgxJmFbYisxMTY+PjJdfDApKT9NOlIsTT1HP1I6TSw0PT0oMHxmKT8oZj0wfFAwZShsKSx3PTB8YVs4KyhiPTB8YVttPj4yXSk+PjJdKTpmPTI9PSgwfGYp''@;'; + put 'put ''JjE7dDpkb3tpZighKGY8PDI0Pj4yNCkpe3N3aXRjaCgwfGFbdys4ND4+Ml0pe2Nhc2UgNTppZigocD0rX1t3KzY0Pj4zXSk8PTApYnJlYWsgZTtpZihwPShBPXAvK19bYiszMj4+M10pPChrPStfW3crNzI+PjNdLytfW2IrNDA+PjNdKT9BOmssQT4xJms+MSl7az1wO2JyZWFrIHR9YnJlYWsg''@;'; + put 'put ''ZTtjYXNlIDE6YnJlYWs7ZGVmYXVsdDpicmVhayBlfWlmKChwPSsoMHxEKS8rKDB8TSkpPChBPStfW3crMTY+PjNdKSl7az0xLHA9QS9wO2JyZWFrfWs9cC9BLHA9MTticmVha31pZigocD0rX1t3KzY0Pj4zXSk8PTApYnJlYWsgZTtpZigoQT1wLysoMHxNKSk8MXwocD0rX1t3KzcyPj4zXS8r''@;'; + put 'put ''KDB8RCkpPDEpe2lmKEE8cCl7az0xLHAvPUE7YnJlYWt9az1BL3AscD0xO2JyZWFrfWs9QX13aGlsZSgwKTtmb3IoQT0oZj0wPT0oMSZhW2IrMTE2Pj4yXXwwKSk/cDprLHA9Zj9rOnAsZj1iKzE5MnwwO2Y9MHxhW2Y+PjJdOylfWyhHPTE2KyhmPTB8YVtmKzE2Pj4yXSl8MCk+PjNdPSsoMHx+''@;'; + put 'put ''figoaz0rX1tHPj4zXSpwKSsoaz49MD8uNTotLjUpKSksX1soRz1mKzI0fDApPj4zXT0rKDB8fn4oKGs9K19bRz4+M10qQSkrKGs+PTA/LjU6LS41KSkpLGY9ZisxNjR8MDtzSChsLHAsQSl9fXdoaWxlKDApOzB8YyYmZnVuY3Rpb24gWVkobCxjKXt2YXIgZix3LE0sRDtNPWxlLGxlPWxlKzMy''@;'; + put 'put ''fDAsdz0oK19bMzIrKEQ9MHxhWzE2KyhsfD0wKT4+Ml0pPj4zXS0rX1tEKzE2Pj4zXSkvKCtfW0QrNDA+PjNdLStfW0QrMjQ+PjNdKSxmPStfWyhjfD0wKT4+M107ZG97aWYodz4xLjEqZilhW2MrMjQ+PjJdPX5+KGYqKygoMHxhW2MrMjA+PjJdKS0oMHxhW2MrMTY+PjJdKXwwKS93KTtlbHNl''@;'; + put 'put ''e2lmKGw9YysyNHwwLCEodzw9LjgqZikpe2FbbD4+Ml09MDticmVha31hW2w+PjJdPS0xfX13aGlsZSgwKTtsZT1NfShsLGMpfShsLGMpLGZ1bmN0aW9uIG95KGwpe3ZhciBBLGM9MCxmPTAscD0wLG09MDtmb3IobD0xOTIrKDB8YVsoQT0xNisobHw9MCl8MCk+PjJdKXwwO2w9MHxhW2w+PjJd''@;'; + put 'put ''Oyl7Zm9yKG09bCsxNnwwLGM9MDtmPTB8YVsocD0wfGFbMTgwKyhsPTB8YVttPj4yXSk+PjJdKSsoYzw8Mik+PjJdOylGdCgwfGFbZisxNj4+Ml0pLEZ0KGYpLGM9YysxfDA7cCYmKEZ0KHApLGw9MHxhW20+PjJdKSwoYz0wfGFbbCsxNzI+PjJdKSYmKEZ0KGMpLGw9MHxhW20+PjJdKSxmPTB8''@;'; + put 'put ''YVs0KyhwPWwrMjU2fDApPj4yXSxhWyhsPWwrMTgwfDApPj4yXT1hW3A+PjJdLGFbbCs0Pj4yXT1mLHA9MHxhWzQrKGY9MjQ4KyhsPTB8YVttPj4yXSl8MCk+PjJdLGFbKGw9bCsxNzJ8MCk+PjJdPWFbZj4+Ml0sYVtsKzQ+PjJdPXAsbD0xNjQrKDB8YVttPj4yXSl8MH1sPTAsYz0wfGFbMTky''@;'; + put 'put ''KygwfGFbQT4+Ml0pPj4yXTtlOmZvcig7Oylmb3IobT0wPT0oMHxsKSxwPWwrMTZ8MCxsPWM7Oyl7aWYoIWwpYnJlYWsgZTtpZihjPTB8YVsxNjQrKGY9MHxhW2wrMTY+PjJdKT4+Ml0sMiE9KDB8ZmVbZisxNTY+PjBdKSljb250aW51ZSBlO20/YVsxOTIrKDB8YVtBPj4yXSk+PjJdPWM6YVsx''@;'; + put 'put ''NjQrKDB8YVtwPj4yXSk+PjJdPWMsRnQoZiksRnQobCksbD1jfWFbMTY4KygwfGFbMTYrKDB8YVsxOTIrKDB8YVtBPj4yXSk+PjJdKT4+Ml0pPj4yXT0wfShsKSl9ZnVuY3Rpb24gYUgobCl7dmFyIE9lLExlLGM9MCxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0w''@;'; + put 'put ''LEs9MCxwZT0wLGdlPTAsYmU9MCxSZT0wLEhlPTAsVmU9MDtmb3IoTGU9MHxhWzE5NisoYz0wfGFbKE9lPTE2KyhsfD0wKXwwKT4+Ml0pPj4yXSxnZT0wfGl0W2MrMjM2Pj4xXTshKCgwfGdlKT4oMHxpdFtjKzIzOD4+MV0pKTspe2ZvcihNPUxlKyhnZTw8Nil8MCxEPUxlKyhnZTw8NikrNHww''@;'; + put 'put ''LFI9TGUrKGdlPDw2KSs0MHwwLEc9TGUrKGdlPDw2KSsyNHwwLEs9TGUrKGdlPDw2KSszMnwwLHBlPUxlKyhnZTw8NikrMTZ8MCxrPTA7ISgoMHxrKT49KDB8YVtNPj4yXSkpOyl7QT0uNSorX1s4MCsoYz0wfGFbKGI9MTYrKDB8YVsoMHxhW0Q+PjJdKSsoazw8Mik+PjJdKXwwKT4+Ml0pPj4z''@;'; + put 'put ''XSxtPTB8YVtjKzIwND4+Ml07ZTpkb3tpZihtKWZvcihwPTA7Oyl7aWYoIShmPTB8YVttKyhwPDwyKT4+Ml0pKWJyZWFrIGU7KDB8YVsoMz09KDB8KFJlPTMmYVtmPj4yXSkpP2Y6Zis0OHwwKSs0MD4+Ml0pPT0oMHxhWygyPT0oMHxSZSk/ZjpmKy00OHwwKSs0MD4+Ml0pJiYwIT0oMHwoYmU9''@;'; + put 'put ''MHxhWzk2KygwfGFbZisxNj4+Ml0pPj4yXSkpJiYoQT1BPih3PS41KitfW2JlKzMyPj4zXSk/QTp3KSxwPXArMXwwfX13aGlsZSgwKTsrX1tSPj4zXTxBJiYoX1tHPj4zXT1BLF9bUj4+M109QSksK19bSz4+M108QSYmKF9bcGU+PjNdPUEsX1tLPj4zXT1BKSwwfChmPTB8YVtjKzIxMj4+Ml0p''@;'; + put 'put ''JiYoKDB8Zik9PSgwfGwpP3A9MDoocD0wfGVzKGYsMHxhWzQ3MTQ0XSw4LDApLGM9MHxhW2I+PjJdKSxtPTB8YVtjKzIzMj4+Ml0sYz0xMjgrKGY9MHxhW2YrMTY+PjJdKXwwLEErPSsoMHxwKSwoMHxtKT09KDB8aXRbZisyMzY+PjFdKSYmKF9bYz4+M109KHc9K19bYz4+M10pPkE/dzpBKSxj''@;'; + put 'put ''PWYrMTIwfDAsKDB8bSk9PSgwfGl0W2YrMjM4Pj4xXSkmJihfW2M+PjNdPSh3PStfW2M+PjNdKT5BP3c6QSkpLGs9aysxfDB9Z2U9Z2UrMXwwLGM9MHxhW09lPj4yXX1mb3Ioaz0wfGx5KGwpLF9bMjQrKDB8YVsxNisoMHxhW2FbTGUrKChjPTB8aXRbMjM4KyhwPTB8YVtPZT4+Ml0pPj4xXSk8''@;'; + put 'put ''PDYpKzQ+PjJdPj4yXSk+PjJdKT4+M109K19bTGUrKGM8PDYpKzE2Pj4zXSxmPTB8aXRbcCsyMzY+PjFdLG09cCsyNTJ8MCx3PTA7Yj1jKy0xfDAsISgoMHxjKTw9KDB8ZikpOylBPShIZT0rX1tMZSsoYjw8NikrMzI+PjNdKyArX1tMZSsoYzw8NikrNDA+PjNdKyArKDB8YVttPj4yXSkpPihB''@;'; + put 'put ''PStfW0xlKyhjPDw2KSsyND4+M10rOCsgK19bTGUrKGI8PDYpKzE2Pj4zXSk/SGU6QSwoMHxhW0xlKyhiPDw2KT4+Ml0pPjAmJihfWzI0KygwfGFbMTYrKDB8YVthW0xlKyhiPDw2KSs0Pj4yXT4+Ml0pPj4yXSk+PjNdPStfWzI0KygwfGFbMTYrKDB8YVthW0xlKyhjPDw2KSs0Pj4yXT4+Ml0p''@;'; + put 'put ''Pj4yXSk+PjNdK0EpLHc9dz5BP3c6QSxjPWI7ZTpkb3tpZigwIT0oMHxrKSYmMCE9KDEmYVtwKzExNj4+Ml18MCkmJihzeShsLDApLHA9MHxhW09lPj4yXSwwfGZlW3ArMjc2Pj4wXSkpZm9yKGM9MHxpdFtwKzIzOD4+MV0sZj0wfGl0W3ArMjM2Pj4xXSxBPStfWzI0KygwfGFbMTYrKDB8YVth''@;'; + put 'put ''W0xlKyhjPDw2KSs0Pj4yXT4+Ml0pPj4yXSk+PjNdLHc9MDs7KXtpZihtPWMrLTF8MCwoMHxjKTw9KDB8ZikpYnJlYWsgZTtIZT0oVmU9K19bMjQrKDB8YVsxNisoMHxhW2FbTGUrKG08PDYpKzQ+PjJdPj4yXSk+PjJdKT4+M10pLUEsQT1WZSx3PXc+SGU/dzpIZSxjPW19fXdoaWxlKDApO2U6''@;'; + put 'put ''ZG97aWYoMHxmZVtwKzI3Nj4+MF0pZm9yKG09MHxpdFtwKzIzNj4+MV0sZj0wfGl0W3ArMjM4Pj4xXTs7KXtpZihjPWYrLTF8MCwoMHxmKTw9KDB8bSkpYnJlYWsgZTsoMHxhW0xlKyhjPDw2KT4+Ml0pPD0wfHwoX1syNCsoMHxhWzE2KygwfGFbYVtMZSsoYzw8NikrND4+Ml0+PjJdKT4+Ml0p''@;'; + put 'put ''Pj4zXT0rX1syNCsoMHxhWzE2KygwfGFbYVtMZSsoZjw8NikrND4+Ml0+PjJdKT4+Ml0pPj4zXSt3KSxmPWN9fXdoaWxlKDApO2ZvcihjPXArMTkyfDA7Yz0wfGFbYz4+Ml07KV9bMjQrKGM9MHxhW2MrMTY+PjJdKT4+M109K19bMjQrKDB8YVsxNisoMHxhW2FbTGUrKGFbYysyMzI+PjJdPDw2''@;'; + put 'put ''KSs0Pj4yXT4+Ml0pPj4yXSk+PjNdLGM9YysxNjR8MH1mdW5jdGlvbiBsSChsKXt2YXIgYztyZXR1cm4gMHwobD0oYz0wfExpKGx8PTAsODY5MjEpKT9+figra3AoYykqKygwfEdvKGwpKSk6MjE0NzQ4MzY0Nyl9ZnVuY3Rpb24gV1kobCxjKXtjfD0wO3ZhciBwLGY9MCxtPTA7Zm9yKHA9MTYr''@;'; + put 'put ''KGx8PTApfDAsZj0xOyEoKDB8Zik+KDB8YVsxODArKG09MHxhW3A+PjJdKT4+Ml0pKTspV1koMHxhWygwfGFbbSsxODQ+PjJdKSsoZjw8Mik+PjJdLGMpLGY9ZisxfDA7IWZ1bmN0aW9uIGl2ZShsLGMpe2N8PTA7dmFyIE9lLExlLGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0w''@;'; + put 'put ''LFI9MCxHPTAsSz0wLHBlPTAsZ2U9MCxiZT0wLFJlPTA7cGU9KDB8QWEobHw9MCkpPT0oMHxsKSxMZT0wfGFbKE9lPWwrMTZ8MCk+PjJdO2U6ZG97aWYocGUpe2ZvcihHPShsPTB8aXRbTGUrMjM4Pj4xXSk8PDE2Pj4xNixLPUxlKzE5NnwwLHBlPUxlKzE5NnwwLFI9KGY9MHxpdFtMZSsyMzY+''@;'; + put 'put ''PjFdKTw8MTY+PjE2LG09LTIxNDc0ODM2NDcscD0yMTQ3NDgzNjQ3OyEoKDB8Uik+KDB8RykpOyl7aWYoMCE9KDB8KEQ9MHxhWyhBPTB8YVtLPj4yXSkrKFI8PDYpPj4yXSkpJiYwIT0oMHwoYmU9MHxhWyhnZT0wfGFbQSsoUjw8NikrND4+Ml0pPj4yXSkpKXtmb3IoYj0xLEE9YmU7KDB8Yik8''@;'; + put 'put ''KDB8RCkmKHc9MHxmZVsxNTYrKEE9MHxhW0ErMTY+PjJdKT4+MF0pPDwyND4+MjQhPTA7KUE9MHxhW2dlKyhiPDwyKT4+Ml0sYj1iKzF8MDtpZighKHc8PDI0Pj4yNCkpe2ZvcihNPXA8KGs9K19bQSsxNj4+M10tK19bQSs4OD4+M10pLGI9MHxhWygwfGFbcGU+PjJdKSsoUjw8NikrND4+Ml0s''@;'; + put 'put ''dz1EKy0yfDAsQT1EKy0xfDA7MHxmZVsxNTYrKEE9MHxhWzE2KygwfGFbYisoQTw8Mik+PjJdKT4+Ml0pPj4wXTspQT13LHc9dystMXwwO209bT4oUmU9K19bQSs5Nj4+M10rICtfW0ErMTY+PjNdKT9tOlJlLHA9TT9wOmt9fVI9UisxfDB9Zm9yKHc9MHxhW0xlKzE4MD4+Ml0sYj1MZSsxODR8''@;'; + put 'put ''MCxBPTE7Oyl7aWYoKDB8QSk+KDB8dykpYnJlYWsgZTtiZT0wfGFbMTYrKDB8YVsoMHxhW2I+PjJdKSsoQTw8Mik+PjJdKT4+Ml0sQT1BKzF8MCxtPW0+KGs9K19bYmUrMzI+PjNdKzgpP206ayxwPXA8KFJlPStfW2JlKzE2Pj4zXS04KT9wOlJlfX1lbHNlIG09KygwfGFbMjMyKygwfGFbMTYr''@;'; + put 'put ''KDB8YVtMZSsyNjA+PjJdKT4+Ml0pPj4yXSkscD0rKDB8YVsyMzIrKDB8YVsxNisoMHxhW0xlKzI1Nj4+Ml0pPj4yXSk+PjJdKSxmPTB8aXRbTGUrMjM2Pj4xXSxsPTB8aXRbTGUrMjM4Pj4xXX13aGlsZSgwKTtrPStfWzI0KygwfGFbMTYrKDB8YVthWyhjPTB8YVsxOTYrKDB8YVtjKzE2Pj4y''@;'; + put 'put ''XSk+PjJdKSsobDw8MTY+PjE2PDw2KSs0Pj4yXT4+Ml0pPj4yXSk+PjNdLStfW0xlKzEyMD4+M10sUmU9K19bTGUrMTI4Pj4zXSsgK19bMjQrKDB8YVsxNisoMHxhW2FbYysoZjw8MTY+PjE2PDw2KSs0Pj4yXT4+Ml0pPj4yXSk+PjNdLF9bTGUrMTY+PjNdPXAsX1tMZSsyND4+M109ayxfWzMy''@;'; + put 'put ''KyhjPTB8YVtPZT4+Ml0pPj4zXT1tLF9bYys0MD4+M109UmV9KGwsYyl9ZnVuY3Rpb24gUDBlKGwpe3ZhciBjLGYscCxtLE0scGUsZ2UsYmUsQT0wLHc9MCxiPTAsaz0wLEQ9MCxSPTAsRz0wLEs9MDtyZXR1cm4gZ2U9bGUsbGU9bGUrODB8MCxwPWdlKzY0fDAsZj1nZSs0OHwwLE09Z2UscGU9''@;'; + put 'put ''Z2UrMzJ8MCxhWyhtPWdlKzE2fDApPj4yXT1hWyhiZT00OCsoYz0wfGFbOCsoMHxhWyhsPTE2KyhsfD0wKXwwKT4+Ml0pPj4yXSl8MCk+PjJdLGFbbSs0Pj4yXT1hW2JlKzQ+PjJdLGFbbSs4Pj4yXT1hW2JlKzg+PjJdLGFbbSsxMj4+Ml09YVtiZSsxMj4+Ml0sK19bbT4+M108LjAwMXx8K19b''@;'; + put 'put ''KEE9bSs4fDApPj4zXTwuMDAxfHwoYVtNPj4yXT1hWyh3PWMrMzJ8MCk+PjJdLGFbTSs0Pj4yXT1hW3crND4+Ml0sYVtNKzg+PjJdPWFbdys4Pj4yXSxhW00rMTI+PjJdPWFbdysxMj4+Ml0sYVtmPj4yXT1hW20+PjJdLGFbZis0Pj4yXT1hW20rND4+Ml0sYVtmKzg+PjJdPWFbbSs4Pj4yXSxh''@;'; + put 'put ''W2YrMTI+PjJdPWFbbSsxMj4+Ml0sYVtwPj4yXT1hW3c+PjJdLGFbcCs0Pj4yXT1hW3crND4+Ml0sYVtwKzg+PjJdPWFbdys4Pj4yXSxhW3ArMTI+PjJdPWFbdysxMj4+Ml0sRjBlKHBlLGYscCksYVttPj4yXT1hW3BlPj4yXSxhW20rND4+Ml09YVtwZSs0Pj4yXSxhW20rOD4+Ml09YVtwZSs4''@;'; + put 'put ''Pj4yXSxhW20rMTI+PjJdPWFbcGUrMTI+PjJdLGFbZj4+Ml09YVtwZT4+Ml0sYVtmKzQ+PjJdPWFbcGUrND4+Ml0sYVtmKzg+PjJdPWFbcGUrOD4+Ml0sYVtmKzEyPj4yXT1hW3BlKzEyPj4yXSxhW3A+PjJdPWFbTT4+Ml0sYVtwKzQ+PjJdPWFbTSs0Pj4yXSxhW3ArOD4+Ml09YVtNKzg+PjJd''@;'; + put 'put ''LGFbcCsxMj4+Ml09YVtNKzEyPj4yXSxGMGUobSxmLHApLChSPShEPStfW20+PjNdKS8oYj0rX1szMisodz0wfGFbbD4+Ml0pPj4zXSkpPj0xJihLPShHPStfW0E+PjNdKS8oaz0rX1t3KzQwPj4zXSkpPj0xKT9sPTA6KEs9K0l1KCsoUj0oUj1SPEs/UjpLKT4uNT9SOi41KSprL0cpKkcvayxH''@;'; + put 'put ''PStJdSgrUipiL0QpKkQvYipiLF9bNjQrKGw9MHxhW3crOD4+Ml0pPj4zXT1HLF9bbCs3Mj4+M109SyprLGw9MSksbGU9Z2UsMHxsfWZ1bmN0aW9uIHNIKGwsYyxmKXtjPStjLGY9K2Y7dmFyIHA9MCxtPTA7Zm9yKHA9MTYrKGx8PTApfDAsbD0xOyEoKDB8bCk+KDB8YVsxODArKG09MHxhW3A+''@;'; + put 'put ''PjJdKT4+Ml0pKTspc0goMHxhWygwfGFbbSsxODQ+PjJdKSsobDw8Mik+PjJdLGMsZiksbD1sKzF8MDtfWyhwPW0rMTZ8MCk+PjNdPStfW3A+PjNdKmMsX1socD1tKzI0fDApPj4zXT0rX1twPj4zXSpmLF9bKHA9bSszMnwwKT4+M109K19bcD4+M10qYyxfWyhtPW0rNDB8MCk+PjNdPStfW20+''@;'; + put 'put ''PjNdKmZ9ZnVuY3Rpb24gRjBlKGwsYyxmKXt2YXIgcDtwPStfWzgrKGN8PTApPj4zXS0rX1s4KyhmfD0wKT4+M10sX1sobHw9MCk+PjNdPStfW2M+PjNdLStfW2Y+PjNdLF9bbCs4Pj4zXT1wfWZ1bmN0aW9uIEZ1KGwsYyxmLHApe2x8PTAsY3w9MCxmPStmLHB8PTA7dmFyIEEsdyxiLG09MDty''@;'; + put 'put ''ZXR1cm4gdz0wfHZyKDk2KSxhWyhiPXcrNDh8MCk+PjJdPTN8YVtiPj4yXSxhW3c+PjJdPS00JmFbdz4+Ml18MixtPTB8dnIoMTc2KSxhWyhBPXcrMTZ8MCk+PjJdPW0sYVsoMz09KDMmYVt3Pj4yXXwwKT93OmIpKzQwPj4yXT1sLGFbKDI9PSgzJmFbdz4+Ml18MCk/dzp3Ky00OHwwKSs0MD4+''@;'; + put 'put ''Ml09YyxmPjY1NTM1JiYoSDBlKGYpLGY9NjU1MzUsbT0wfGFbQT4+Ml0pLGl0W20rMTcwPj4xXT1+fihmKyhmPj0wPy41Oi0uNSkpLGFbbSsxNTY+PjJdPXAsUUModyksMHx3fWZ1bmN0aW9uIEgwZShsKXt2YXIgYyxmO2M9bGUsbGU9bGUrMTZ8MCxfWyhmPWMpPj4zXT1sPStsLGFbZis4Pj4y''@;'; + put 'put ''XT02NTUzNSwkcigxLDg2ODQ1LGYpLGxlPWN9ZnVuY3Rpb24gUWgobCl7dmFyIHAsQSx3LGIsayxNLGM9MCxmPTAsbT0wO2ZvcihNPWxlLGxlPWxlKzE2fDAsaz1NLGY9MHxlcyhsfD0wLDB8YVs0NzE0NF0sOCwwKSx0ayhsKSx3PTB8YVsyNTYrKG09MHxhWyhBPWwrMTZ8MCk+PjJdKT4+Ml0s''@;'; + put 'put ''Yj0wfGFbbSsyNjA+PjJdLHA9KygwfGYpLGY9MHxpdFttKzIzNj4+MV07ISgoMHxmKT4oMHxpdFttKzIzOD4+MV0pKTspe2M9MHxhW20rMTk2Pj4yXTtkb3tpZigwfGFbYysoZjw8Nik+PjJdKXtpZihjPTB8YVthW2MrKGY8PDYpKzQ+PjJdPj4yXSl7RnUodyxjLCtfWzg4KygwfGFbYysxNj4+''@;'; + put 'put ''Ml0pPj4zXStwKyArX1ttKzk2Pj4zXSwwKSxGdShjPTB8YVsoMHxhWyhjPTB8YVsxOTYrKG09MHxhW0E+PjJdKT4+Ml0pKyhmPDw2KSs0Pj4yXSkrKCgwfGFbYysoZjw8Nik+PjJdKS0xPDwyKT4+Ml0sYiwrX1s5NisoMHxhW2MrMTY+PjJdKT4+M10rcCsgK19bbSs2ND4+M10sMCk7YnJlYWt9''@;'; + put 'put ''YVtrPj4yXT0wfHRpKGwpLGFbays0Pj4yXT1mLCRyKDEsODY5Mjksayk7YnJlYWt9fXdoaWxlKDApO2Y9ZisxfDAsbT0wfGFbQT4+Ml19bGU9TX1mdW5jdGlvbiB0ayhsKXt2YXIgYz0wLGY9MCxwPTA7MHxhWzI1NisoMHxhWyhjPTE2KyhsfD0wKXwwKT4+Ml0pPj4yXXx8KHA9MHxVaCgwfEFh''@;'; + put 'put ''KGwpKSxmZVsxNTYrKDB8YVtwKzE2Pj4yXSk+PjBdPTIsZj0wfFVoKDB8QWEobCkpLGZlWzE1NisoMHxhW2YrMTY+PjJdKT4+MF09MiwwfGFbMTIrKDB8YVtjPj4yXSk+PjJdJiYoMHxBYShsKSkhPSgwfGwpJiYwPT0oMSZhWzExNisoMHxhWzE2KygwfGRpKGwpKT4+Ml0pPj4yXXwwKSYmRnUo''@;'; + put 'put ''cCxmLCsoMHx+fitfWzQ4KyhsPTB8YVtjPj4yXSkrKCgrX1tsKzQ4Pj4zXT4rX1tsKzgwPj4zXT8wOjIpPDw0KT4+M10pLDApLGFbMjU2KyhjPTB8YVtjPj4yXSk+PjJdPXAsYVtjKzI2MD4+Ml09Zil9ZnVuY3Rpb24gZkgobCl7bHw9MDt2YXIgYz0wLGY9MDtkb3tpZigoMHxBYShsKSkhPSgw''@;'; + put 'put ''fGwpKXtpZihRaChsKSxjPTB8VTUoMHxhWzI1NisoYz0wfGFbKGw9bCsxNnwwKT4+Ml0pPj4yXSwwfGFbYysyNjA+PjJdKSl7YVsoZj0xNTYrKDB8YVtjKzE2Pj4yXSl8MCk+PjJdPTEyOCsoMHxhW2Y+PjJdKTticmVha31GdSgwfGFbMjU2KyhmPTB8YVtsPj4yXSk+PjJdLDB8YVtmKzI2MD4+''@;'; + put 'put ''Ml0sMSwxMjgpO2JyZWFrfWw9bCsxNnwwfXdoaWxlKDApO2ZvcihjPTE7ISgoMHxjKT4oMHxhWzE4MCsoZj0wfGFbbD4+Ml0pPj4yXSkpOylmSCgwfGFbKDB8YVtmKzE4ND4+Ml0pKyhjPDwyKT4+Ml0pLGM9YysxfDB9ZnVuY3Rpb24gVVkobCl7dmFyIGssRCxjPTAsZj0wLHA9MCxtPTAsQT0w''@;'; + put 'put ''LHc9MCxiPTAsTT0wO2ZvcihrPSsoMHwodz0wfGVzKGx8PTAsMHxhWzQ3MTQ0XSw4LDApKSksdz0wfGl0WzIzNisoYz0wfGFbKEQ9bCsxNnwwKT4+Ml0pPj4xXTs7KXtpZigoMHx3KT4oMHxpdFtjKzIzOD4+MV0pKXtmPTE7YnJlYWt9Yz0wfGFbYysxOTY+PjJdO2U6ZG97aWYoMHxhW2MrKHc8''@;'; + put 'put ''PDYpPj4yXSYmKGI9MHxhW2FbYysodzw8NikrND4+Ml0+PjJdLDB8Yikpe2ZvcihmPTB8YVsyMzYrKDB8YVsobT1iKzE2fDApPj4yXSk+PjJdOyEoKDB8Zik8PTApOyl7aWYoZj1mKy0xfDAsQT0wfGFbKDB8YVsoMHxhWzE5NisoMHxhWzE2KygwfEFhKGwpKT4+Ml0pPj4yXSkrKHc8PDYpKzQ+''@;'; + put 'put ''PjJdKSsoZjw8Mik+PjJdLCEoMHxmZVsxNTYrKGM9MHxhWyhwPUErMTZ8MCk+PjJdKT4+MF0pKXtNPTEwO2JyZWFrfWlmKDB8bmsobCxBKSl7TT05O2JyZWFrfX1mb3IoOT09KDB8TSkmJihjPTB8YVtwPj4yXSxNPTEwKSwxMD09KDB8TSkmJihNPTAsRnUoQSwwfGFbMjU2KygwfGFbRD4+Ml0p''@;'; + put 'put ''Pj4yXSwrX1tjKzk2Pj4zXStrLDApKSxmPSgwfGFbKDB8YVsxOTYrKDB8YVtEPj4yXSk+PjJdKSsodzw8Nik+PjJdKSsoMHxhWzIzNisoMHxhW20+PjJdKT4+Ml0pfDA7Oyl7aWYoKDB8Zik+PSgwfGFbKDB8YVsxOTYrKDB8YVsxNisoMHxBYShsKSk+PjJdKT4+Ml0pKyh3PDw2KT4+Ml0pKWJy''@;'; + put 'put ''ZWFrIGU7aWYobT0wfGFbKDB8YVsoMHxhWzE5NisoMHxhWzE2KygwfEFhKGwpKT4+Ml0pPj4yXSkrKHc8PDYpKzQ+PjJdKSsoZjw8Mik+PjJdLCEoMHxmZVsxNTYrKGM9MHxhWyhwPW0rMTZ8MCk+PjJdKT4+MF0pKWJyZWFrO2lmKDB8bmsobCxtKSl7TT0xNTticmVha31mPWYrMXwwfTE1PT0o''@;'; + put 'put ''MHxNKSYmKE09MCxjPTB8YVtwPj4yXSksRnUoMHxhWzI2MCsoMHxhW0Q+PjJdKT4+Ml0sbSwrX1tjKzg4Pj4zXStrLDApfX13aGlsZSgwKTt3PXcrMXwwLGM9MHxhW0Q+PjJdfWZvcig7ISgoMHxmKT4oMHxhW2MrMTgwPj4yXSkpOylVWSgwfGFbKDB8YVtjKzE4ND4+Ml0pKyhmPDwyKT4+Ml0p''@;'; + put 'put ''LGY9ZisxfDAsYz0wfGFbRD4+Ml19ZnVuY3Rpb24gUVkobCl7dmFyIGMsZixwPTAsbT0wLEE9MDtmb3IocD0wfGVzKGx8PTAsMHxhWzQ3MTQ0XSw4LDApLHRrKGwpLGM9bCsxNnwwLGY9KygwfHApLGw9MTshKCgwfGwpPigwfGFbMTgwKyhwPTB8YVtjPj4yXSk+PjJdKSk7KXRrKHA9MHxhWygw''@;'; + put 'put ''fGFbcCsxODQ+PjJdKSsobDw8Mik+PjJdKSxGdSgwfGFbMjU2KyhtPTB8YVtjPj4yXSk+PjJdLDB8YVsyNTYrKDB8YVsoQT1wKzE2fDApPj4yXSk+PjJdLCtfW20rOTY+PjNdK2YsMCksRnUoMHxhWzI2MCsoMHxhW0E+PjJdKT4+Ml0sMHxhWzI2MCsobT0wfGFbYz4+Ml0pPj4yXSwrX1ttKzY0''@;'; + put 'put ''Pj4zXStmLDApLFFZKHApLGw9bCsxfDB9ZnVuY3Rpb24gaEgobCl7dmFyIEQsUixjPTAsZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxHPTA7Zm9yKGM9MHxlcyhsfD0wLDB8YVs0NzE0NF0sOCwwKSxSPWwrMTZ8MCxsPTE7ISgoMHxsKT4oMHwoZj0wfGFbMTgwKyhwPTB8YVtSPj4y''@;'; + put 'put ''XSk+PjJdKSkpOyl0aygwfGFbKDB8YVtwKzE4ND4+Ml0pKyhsPDwyKT4+Ml0pLGw9bCsxfDA7Zm9yKEQ9KygwfGMpLE09MSxsPWYsYz1wOyEoKDB8TSk+KDB8bCkpOyl7Zm9yKGI9az1NKzF8MDtwPTB8YVsoZj0wfGFbYysxODQ+PjJdKSsoTTw8Mik+PjJdLCEoKDB8Yik+KDB8bCkpOyl3PSht''@;'; + put 'put ''PSgwfGl0WzIzNisoMHxhW3ArMTY+PjJdKT4+MV0pPigwfGl0WzIzNisoMHxhWzE2KyhmPTB8YVtmKyhiPDwyKT4+Ml0pPj4yXSk+PjFdKSk/ZjpwLEE9KEc9MHxpdFsyMzYrKG09MHxhWyhmPW0/cDpmKSsxNj4+Ml0pPj4xXSk8PDE2Pj4xNiwoMHxpdFsyMzgrKHA9MHxhW3crMTY+PjJdKT4+''@;'; + put 'put ''MV0pPj1HPDwxNj4+MTYmJihGdSgwfGFbMjYwKygwfGFbKChsPSgwfGFbMjM2KygwfGFbMTYrKDB8YVthWygwfGFbcCsxOTY+PjJdKSsoQTw8NikrND4+Ml0+PjJdKT4+Ml0pPj4yXSk8KDB8YVsyMzYrKDB8YVsxNisoMHxhW2FbKDB8YVttKzE5Nj4+Ml0pKyhBPDw2KSs0Pj4yXT4+Ml0pPj4y''@;'; + put 'put ''XSk+PjJdKSk/dzpmKSsxNj4+Ml0pPj4yXSwwfGFbMjU2KygwfGFbKGw/Zjp3KSsxNj4+Ml0pPj4yXSxELDApLGM9bD0wfGFbUj4+Ml0sbD0wfGFbbCsxODA+PjJdKSxiPWIrMXwwO2hIKHApLE09ayxsPTB8YVsxODArKGM9MHxhW1I+PjJdKT4+Ml19fWZ1bmN0aW9uIG5rKGwsYyl7bHw9MDt2''@;'; + put 'put ''YXIgZj0wO2lmKDE9PSgwfGZlWzE1NisoYz0wfGFbMTYrKGN8PTApPj4yXSk+PjBdKSl7Zm9yKGM9MHxhW2FbYysyNTY+PjJdPj4yXTtmPTB8YVsxMTYrKDB8YVtjKzE2Pj4yXSk+PjJdOyljPWY7Yz0wfE5yKGwsMHxhWygzPT0oMyZhW2M+PjJdfDApP2M6Yys0OHwwKSs0MD4+Ml0pPzA6MD09''@;'; + put 'put ''KDB8TnIobCwwfGFbKDI9PSgzJmFbYz4+Ml18MCk/YzpjKy00OHwwKSs0MD4+Ml0pKSYxfWVsc2UgYz0wO3JldHVybiAwfGN9ZnVuY3Rpb24gSlkobCxjKXtyZXR1cm4gMHxYWShsfD0wLGN8PTApfWZ1bmN0aW9uIFhZKGwsYyl7bHw9MCxjfD0wO3ZhciBmPTAscD0wO2U6ZG97aWYoKDB8bCk9''@;'; + put 'put ''PSgwfGMpKWw9MTtlbHNlIGZvcihmPTB8YVsxODArKDB8YVtsKzE2Pj4yXSk+PjJdLGw9MDs7KXtpZighKHA9MHxhW2YrKGw8PDIpPj4yXSkpe2w9MDticmVhayBlfWlmKDB8WFkoMHxhWygyPT0oMyZhW3A+PjJdfDApP3A6cCstNDh8MCkrNDA+PjJdLGMpKXtsPTE7YnJlYWt9bD1sKzF8MH19''@;'; + put 'put ''d2hpbGUoMCk7cmV0dXJuIDB8bH1mdW5jdGlvbiBheShsLGMpe2x8PTA7dmFyIE0sRCxSLGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxHPTA7Uj1sZSxsZT1sZSs0OHwwLEQ9UiszMnwwLE09Uis4fDAsZj1SKzI0fDAsaz1SKzE2fDAsYj1SLG09MHxhWyhwPTE2KyhjfD0wKXwwKT4+Ml07''@;'; + put 'put ''ZTpkb3tpZigoMHxhW20rMjE2Pj4yXSk+PTIpaWYoYVtNPj4yXT1+figrX1ttKzE2Pj4zXS0rX1ttKzg4Pj4zXSksYVtNKzQ+PjJdPX5+K19bbSsyND4+M10sYVtEPj4yXT1hW00+PjJdLGFbRCs0Pj4yXT1hW00rND4+Ml0sS1koZixjLEQpLEE9Zix3PTB8YVtBKzQ+PjJdLGY9TSxhW2Y+PjJd''@;'; + put 'put ''PWFbQT4+Ml0sYVtmKzQ+PjJdPXcsZj0wfGFbcD4+Ml0sKDB8YVtmKzE4ND4+Ml0pPjApZm9yKGI9MHxhW2FbZisxODA+PjJdPj4yXSxmPTErKDB8YVtmKzIzNj4+Ml0pfDAsYj0wfE1mKGwsMHxhWygyPT0oMyZhW2I+PjJdfDApP2I6YistNDh8MCkrNDA+PjJdKTs7KXtpZighYilicmVhayBl''@;'; + put 'put ''O3A9KHc9Mj09KDMmYVtiPj4yXXwwKT9iOmIrLTQ4fDApKzQ4fDAsKDB8KG09MHxhWygzPT0oMyZhW3c+PjJdfDApP3c6cCkrNDA+PjJdKSkhPSgwfGMpJiYoMHxnMShtKSk9PSgwfGMpJiYobT0wfGFbKDM9PSgzJmFbdz4+Ml18MCk/dzpwKSs0MD4+Ml0sYVtEPj4yXT1hW00+PjJdLGFbRCs0''@;'; + put 'put ''Pj4yXT1hW00rND4+Ml0sJFkoayxsLG0sRCxmKSxwPTB8YVsobT1rKSs0Pj4yXSxhWyhBPU0pPj4yXT1hW20+PjJdLGFbQSs0Pj4yXT1wLHhZKHcpLEE9dystNDh8MCxwPShtPTB8YVsxNzIrKHA9MHxhWzE2KygwfGFbKDI9PSgzJmFbdz4+Ml18MCk/dzpBKSs0MD4+Ml0pPj4yXSk+PjJdKT8w''@;'; + put 'put ''fFYwKG0sOCsoYVtwKzE3Nj4+Ml08PDIpfDApOjB8UW4oOCsoYVtwKzE3Nj4+Ml08PDIpfDApLGFbMTcyKygwfGFbMTYrKDB8YVsoMj09KDMmYVt3Pj4yXXwwKT93OkEpKzQwPj4yXSk+PjJdKT4+Ml09cCxwPTB8YVsxNzIrKEc9MHxhWzE2KygwfGFbKDI9PSgzJmFbdz4+Ml18MCk/dzpBKSs0''@;'; + put 'put ''MD4+Ml0pPj4yXSk+PjJdLGFbKEc9RysxNzZ8MCk+PjJdPTErKG09MHxhW0c+PjJdKSxhW3ArKG08PDIpPj4yXT13LGFbKDB8YVsxNzIrKHc9MHxhWzE2KygwfGFbKDI9PSgzJmFbdz4+Ml18MCk/dzpBKSs0MD4+Ml0pPj4yXSk+PjJdKSsoYVt3KzE3Nj4+Ml08PDIpPj4yXT0wLGY9ZisxfDAp''@;'; + put 'put ''LGI9MHxIMyhsLGIpfWVsc2UgZm9yKHc9MHxhW2FbZisxNzI+PjJdPj4yXSxmPTErKDB8YVtmKzIzNj4+Ml0pfDAsdz0wfHcwKGwsMHxhWygzPT0oMyZhW3c+PjJdfDApP3c6dys0OHwwKSs0MD4+Ml0pOzspe2lmKCF3KWJyZWFrIGU7cD13Ky00OHwwLCgwfChtPTB8YVsoMj09KDMmYVt3Pj4y''@;'; + put 'put ''XXwwKT93OnApKzQwPj4yXSkpIT0oMHxjKSYmKDB8ZzEobSkpPT0oMHxjKSYmKG09MHxhWygyPT0oMyZhW3c+PjJdfDApP3c6cCkrNDA+PjJdLGFbRD4+Ml09YVtNPj4yXSxhW0QrND4+Ml09YVtNKzQ+PjJdLCRZKGIsbCxtLEQsZikscD0wfGFbKG09YikrND4+Ml0sYVsoQT1NKT4+Ml09YVtt''@;'; + put 'put ''Pj4yXSxhW0ErND4+Ml09cCx4WSh3KSxBPXcrNDh8MCxwPShtPTB8YVsxODArKHA9MHxhWzE2KygwfGFbKDM9PSgzJmFbdz4+Ml18MCk/dzpBKSs0MD4+Ml0pPj4yXSk+PjJdKT8wfFYwKG0sOCsoYVtwKzE4ND4+Ml08PDIpfDApOjB8UW4oOCsoYVtwKzE4ND4+Ml08PDIpfDApLGFbMTgwKygw''@;'; + put 'put ''fGFbMTYrKDB8YVsoMz09KDMmYVt3Pj4yXXwwKT93OkEpKzQwPj4yXSk+PjJdKT4+Ml09cCxrPTB8YVsxODArKG09MHxhWzE2KygwfGFbKDM9PSgzJmFbdz4+Ml18MCk/dzpBKSs0MD4+Ml0pPj4yXSk+PjJdLGFbKG09bSsxODR8MCk+PjJdPTErKEc9MHxhW20+PjJdKSxhW2srKEc8PDIpPj4y''@;'; + put 'put ''XT13LGFbKDB8YVsxODArKEc9MHxhWzE2KygwfGFbKDM9PSgzJmFbdz4+Ml18MCk/dzpBKSs0MD4+Ml0pPj4yXSk+PjJdKSsoYVtHKzE4ND4+Ml08PDIpPj4yXT0wLGY9ZisxfDApLHc9MHxTMChsLHcpfX13aGlsZSgwKTtsZT1SfWZ1bmN0aW9uIEtZKGwsYyxmKXtsfD0wLGZ8PTA7dmFyIHA9''@;'; + put 'put ''MCxtPTA7eHkoY3w9MCwxJmFbMTE2KygwfGFbMTYrKDB8Y3IoYykpPj4yXSk+PjJdKSxfWzI0KyhwPTB8YVtjKzE2Pj4yXSk+PjNdPSsoMHxhW2YrND4+Ml0pLF9bcCsxNj4+M109bT0rX1twKzg4Pj4zXSsgKygwfGFbZj4+Ml0pLGFbZj4+Ml09fn4oKG0rPStfW3ArOTY+PjNdKSsgKygwfGFb''@;'; + put 'put ''MjQ4KygwfGFbMTYrKDB8Y3IoYykpPj4yXSk+PjJdKSksYz0wfGFbKHA9ZikrND4+Ml0sYVsoZj1sKT4+Ml09YVtwPj4yXSxhW2YrND4+Ml09Y31mdW5jdGlvbiAkWShsLGMsZixwLG0pe2x8PTAsZnw9MCxwfD0wLG18PTA7dmFyIHcsYixrLEE9MDtiPWxlLGxlPWxlKzE2fDAsdz1iLGM9MHxB''@;'; + put 'put ''YShjfD0wKSwoMHwoQT0wfGcxKGYpKSkhPSgwfGYpJiZmdW5jdGlvbiB5MGUobCxjKXt2YXIgcCxtLGY9MDsoMHwobHw9MCkpPT0oMHwoY3w9MCkpJiZQcig4NTYxMyw4NTU2MSwyMjAsODU2MjApLDB8YVsoZj0xNjQrKG09MHxhW2MrMTY+PjJdKXwwKT4+Ml0mJlByKDg1NjMzLDg1NTYxLDIy''@;'; + put 'put ''MSw4NTYyMCksYVtmPj4yXT1hWyhwPTE2NCsoMHxhW2wrMTY+PjJdKXwwKT4+Ml0sMHwoZj0wfGFbcD4+Ml0pJiYoYVsxNjgrKDB8YVtmKzE2Pj4yXSk+PjJdPWMpLGFbbSsxNjg+PjJdPWwsYVtwPj4yXT1jfShBLGYpLGFbMjM2KyhrPTB8YVtmKzE2Pj4yXSk+PjJdPW0sYVtrKzIzMj4+Ml09''@;'; + put 'put ''QT0wfGFbMjMyKygwfGFbQSsxNj4+Ml0pPj4yXSxhWygwfGFbKDB8YVsxOTYrKDB8YVtjKzE2Pj4yXSk+PjJdKSsoQTw8NikrND4+Ml0pKyhtPDwyKT4+Ml09ZixhW3c+PjJdPWFbcD4+Ml0sYVt3KzQ+PjJdPWFbcCs0Pj4yXSxLWShsLGYsdyksbGU9Yn1mdW5jdGlvbiBseShsKXt2YXIgdyxj''@;'; + put 'put ''PTAsZj0wLHA9MCxtPTAsQT0wLGI9MCxrPTAsTT0wLEQ9MDtmb3IoTT0wfGFbMTk2KygwfGFbMTYrKDB8QWEobHw9MCkpPj4yXSk+PjJdLHc9KDB8QWEobCkpPT0oMHxsKT84OisoMHxlcyhsLDB8YVs0NzE0NF0sOCwwKSkscD0wLGI9MSxmPStfWzEyMCsobT0wfGFbKGs9bCsxNnwwKT4+Ml0p''@;'; + put 'put ''Pj4zXSxjPStfW20rMTI4Pj4zXTshKCgwfGIpPigwfGFbbSsxODA+PjJdKSk7KXA9MHxseShBPTB8YVsoMHxhW20rMTg0Pj4yXSkrKGI8PDIpPj4yXSl8cCwoMHxpdFsyMzgrKEE9MHxhW0ErMTY+PjJdKT4+MV0pPT0oMHxpdFsyMzgrKG09MHxhW2s+PjJdKT4+MV0pJiYoZj1mPihEPStfW0Er''@;'; + put 'put ''MTIwPj4zXSt3KT9mOkQpLCgwfGl0W0ErMjM2Pj4xXSk9PSgwfGl0W20rMjM2Pj4xXSkmJihjPWM+KEQ9K19bQSsxMjg+PjNdK3cpP2M6RCksYj1iKzF8MDtyZXR1cm4oMHxBYShsKSkhPSgwfGwpJiYwIT0oMHxhWzEyKygwfGFbaz4+Ml0pPj4yXSkmJigxJmFbMTE2KygwfGFbMTYrKDB8ZGko''@;'; + put 'put ''bCkpPj4yXSk+PjJdP3A9MToocD0xLGY9K19bNTYrKGI9MHxhW2s+PjJdKT4+M10rZixjPStfW2IrODg+PjNdK2MpKSxfWzEyMCsoYj0wfGFbaz4+Ml0pPj4zXT1mLF9bYisxMjg+PjNdPWMsKDB8QWEobCkpIT0oMHxsKSYmKF9bKGw9TSsoaXRbMjM2KyhrPTB8YVtrPj4yXSk+PjFdPDw2KSsy''@;'; + put 'put ''NHwwKT4+M109KEQ9K19bbD4+M10pPmM/RDpjLF9bKE09TSsoaXRbaysyMzg+PjFdPDw2KSsxNnwwKT4+M109KEQ9K19bTT4+M10pPmY/RDpmKSwwfHB9ZnVuY3Rpb24gc3kobCxjKXtjfD0wO3ZhciBiLGssZj0wLHA9MCxtPTAsQT0wLHc9MCxNPTAsRD0wLFI9MCxHPTAsSz0wO2ZvcihSPTB8''@;'; + put 'put ''YVsxOTYrKDB8YVsxNisoMHxBYShsfD0wKSk+PjJdKT4+Ml0sTT0oZj0oMHxBYShsKSk9PSgwfGwpPzA6MHxlcyhsLDB8YVs0NzE0NF0sOCwwKSkrY3wwLGI9KygwfGYpLHc9MSxwPStfWzEyOCsoQT0wfGFbKGs9bCsxNnwwKT4+Ml0pPj4zXSxtPStfW0ErMTIwPj4zXSxmPUE7ISgoMHx3KT4o''@;'; + put 'put ''MHxhW2YrMTgwPj4yXSkpOylzeShBPTB8YVsoMHxhW2YrMTg0Pj4yXSkrKHc8PDIpPj4yXSxNKSwoMHxpdFsyMzgrKEE9MHxhW0ErMTY+PjJdKT4+MV0pPT0oMHxpdFsyMzgrKGY9MHxhW2s+PjJdKT4+MV0pJiYobT1tPihLPStfW0ErMTIwPj4zXStiKT9tOkspLCgwfGl0W0ErMjM2Pj4xXSk9''@;'; + put 'put ''PSgwfGl0W2YrMjM2Pj4xXSkmJihwPXA+KEs9K19bQSsxMjg+PjNdK2IpP3A6Syksdz13KzF8MDtfW2YrMTIwPj4zXT1tLF9bZisxMjg+PjNdPXAsKDB8QWEobCkpIT0oMHxsKSYmMHxhWzEyKyhEPTB8YVtrPj4yXSk+PjJdJiYoRz0tbS1wKyArX1tEKzQ4KygoK19bRCsxMDQ+PjNdPitfW0Qr''@;'; + put 'put ''NzI+PjNdPzM6MSk8PDQpKzg+PjNdLStfWzI0KygwfGFbMTYrKDB8YVthW1IrKGl0W0QrMjM2Pj4xXTw8NikrND4+Ml0+PjJdKT4+Ml0pPj4zXSsgK19bMjQrKDB8YVsxNisoMHxhW2FbUisoaXRbRCsyMzg+PjFdPDw2KSs0Pj4yXT4+Ml0pPj4yXSk+PjNdKT4wJiZmdW5jdGlvbiBaMGUobCxj''@;'; + put 'put ''LGYpe2N8PTAsZnw9MDt2YXIgQSxiLGssTSxELFIsRyxLLHA9MCxtPTAsdz0wLHBlPTA7aWYoYj0wfGFbMTYrKDB8QWEobHw9MCkpPj4yXSxwPTB8aXRbMjM2KyhHPTB8YVtsKzE2Pj4yXSk+PjFdLCgwfChmPX5+KChSPSsoMHwoaz0oYysxfDApLzJ8MCkpKSsoQT0rKDB8ZikpKyhEPStfWyhN''@;'; + put 'put ''PUcrMTIwfDApPj4zXSktK19bKEs9MHxhW2IrMTk2Pj4yXSkrKChsPTB8aXRbRysyMzg+PjFdKTw8NikrMTY+PjNdKSkpPjApe2ZvcihtPSsoMHxmKTshKCgwfGwpPCgwfHApKTspKDB8YVtLKyhsPDw2KT4+Ml0pPjAmJihfWyhwZT0yNCsoMHxhWzE2KygwfGFbYVtLKyhsPDw2KSs0Pj4yXT4+''@;'; + put 'put ''Ml0pPj4yXSl8MCk+PjNdPStfW3BlPj4zXSttKSxsPWwrLTF8MDtsPWYsbT0odz0rX1tHKzEyOD4+M10pKyArKGMta3wwKX1lbHNlIGw9Yy1rfDAsbT13PStfW0crMTI4Pj4zXTtsPX5+KCsoMHxsKStBK20tK19bSysocDw8NikrMjQ+PjNdKTtlOmRve2lmKCgwfGwpPjApZm9yKGY9MHxpdFti''@;'; + put 'put ''KzIzNj4+MV0sbT0rKDB8bCk7Oyl7aWYobD1wKy0xfDAsKDB8cCk8PSgwfGYpKWJyZWFrIGU7KDB8YVtLKyhsPDw2KT4+Ml0pPD0wfHwoX1socD0yNCsoMHxhWzE2KygwfGFbYVtLKyhsPDw2KSs0Pj4yXT4+Ml0pPj4yXSl8MCk+PjNdPStfW3A+PjNdK20pLHA9bH19d2hpbGUoMCk7X1tHKzEy''@;'; + put 'put ''OD4+M109dysgKyhjLWt8MCksX1tNPj4zXT1EK1J9KGwsfn5HLGMpLCgwfEFhKGwpKSE9KDB8bCkmJihfWyhNPVIrKGl0WzIzNisoRD0wfGFbaz4+Ml0pPj4xXTw8NikrMjR8MCk+PjNdPShLPStfW00+PjNdKT4oRz0rX1tEKzEyOD4+M10pP0s6RyxfWyhSPVIrKGl0W0QrMjM4Pj4xXTw8Nikr''@;'; + put 'put ''MTZ8MCk+PjNdPShHPStfW1I+PjNdKT4oSz0rX1tEKzEyMD4+M10pP0c6Syl9ZnVuY3Rpb24gcmsobCxjKXt2YXIgZixwO3A9MHxmZVs4NCsoZj0wfGFbMTYrKGx8PTApPj4yXSk+PjBdLGw9MHxhWzE2KyhjfD0wKT4+Ml07ZG97aWYocDw8MjQ+PjI0PT0oMHxmZVtsKzg0Pj4wXSkpe2lmKCtf''@;'; + put 'put ''W2YrNTY+PjNdPT0rX1tsKzU2Pj4zXSl7aWYocDw8MjQ+PjI0IT0wJiYrX1tmKzY0Pj4zXSE9K19bbCs2ND4+M10pe2w9MDticmVha319ZWxzZSBpZihwPDwyND4+MjQpe2w9MDticmVha31pZigrX1tmKzE2Pj4zXT09K19bbCsxNj4+M10mJitfW2YrMjQ+PjNdPT0rX1tsKzI0Pj4zXSl7bD0x''@;'; + put 'put ''O2JyZWFrfWw9MD09KDB8ZmVbZis0ND4+MF0pJjF9ZWxzZSBsPTB9d2hpbGUoMCk7cmV0dXJuIDB8bH1mdW5jdGlvbiBxWShsKXt2YXIgdyxjPTAsZj0wLHA9MCxtPTAsQT0wO2ZvcihpdFsyMzYrKGM9MHxhWyh3PTE2KyhsfD0wKXwwKT4+Ml0pPj4xXT0zMjc2NyxpdFtjKzIzOD4+MV09LTEs''@;'; + put 'put ''Yz0wLEE9MHxEdChsKTtmPTB8YVt3Pj4yXSxBOykoMHwobT0wfGFbMjMyKygwfGFbQSsxNj4+Ml0pPj4yXSkpPigwfGl0WyhwPWYrMjM4fDApPj4xXSkmJihpdFtwPj4xXT1tKSwoMHxtKTwoMHxpdFsoZj1mKzIzNnwwKT4+MV0pJiYoaXRbZj4+MV09bSksYz1jPygwfG0pPCgwfGFbMjMyKygw''@;'; + put 'put ''fGFbYysxNj4+Ml0pPj4yXSk/QTpjOkEsQT0wfHp0KGwsQSk7YVtmKzI2ND4+Ml09Y31mdW5jdGlvbiBkSChsKXt2YXIgcCxjPTAsZj0wLG09MDtmb3IoYz0oYz0wfExpKGx8PTAsODY5NzQpKT9+figra3AoYykqKygwfEdvKGwpKSk6MjE0NzQ4MzY0NyxwPWwrMTZ8MCxmPTA7ISgoMHxmKT49''@;'; + put 'put ''KDB8YVsyMjArKG09MHxhW3A+PjJdKT4+Ml0pKTspYVttKzE5Mj4+Ml09YVsoMHxhW20rMjE2Pj4yXSkrKGY8PDIpPj4yXSxrNyhsLDA9PSgwfGFbbSsxODA+PjJdKSYxLGMpLGY9ZisxfDB9ZnVuY3Rpb24gZVUobCxjKXtjfD0wO3ZhciBwLG09MDtwPWxlLGxlPWxlKzE2fDAsMHxMaShsfD0w''@;'; + put 'put ''LDg2OTgzKT8oaXRbKG09MTM2KygwfGFbbCsxNj4+Ml0pfDApPj4xXT0xNnxpdFttPj4xXSxmdW5jdGlvbiB6MGUobCxjKXtsfD0wLGN8PTA7dmFyIG0sdyxmPTAscD0wLEE9MDt3PWxlLGxlPWxlKzE2fDAsQT13LGFbNDY3NDddPTAsZmVbQT4+MF09MHxmZVsxODU4OF0sZmVbQSsxPj4wXT0w''@;'; + put 'put ''fGZlWzE4NTg5XSxmZVtBKzI+PjBdPTB8ZmVbMTg1OTBdLGZlW0ErMz4+MF09MHxmZVsxODU5MV0saDAoQT0wfG9jKDg3MjAxLEEsMCksODcyMzAsMjgwLDEpLGZ1bmN0aW9uIEVpKGwsYyxmKXt2YXIgcDtjfD0wLGZ8PTAscD0wfE10KGx8PTAsMTIpLGFbcD4+Ml09YyxhW3ArND4+Ml09Zixh''@;'; + put 'put ''W3ArOD4+Ml09YVsoZj00OCsoMHxhW2wrNjQ+PjJdKXwwKT4+Ml0sYVtmPj4yXT1wfShBLDE3NDA0LDE3MzQ0KSx0VShsKSwoZj0wfExpKGwsODY5NzQpKT9wPX5+KCtrcChmKSorKDB8R28obCkpKTpwPTIxNDc0ODM2NDcsU0kobCwwKSxmdW5jdGlvbiBNSShsLGMpe2x8PTAsY3w9MDt2YXIg''@;'; + put 'put ''Zj0wLHA9MDtmb3IoYVs0Njc0N109MCxmPTB8RHQobCk7ZjspKDB8SmgoZikpPT0oMHxmKSYmKHA9MHxmeShjLDB8dGkoZikpLGFbMTQ4KygwfGFbZisxNj4+Ml0pPj4yXT1wKSxmPTB8enQobCxmKTtmb3IoZj0wfER0KGwpO2Y7KTB8YVsxNDgrKDB8YVsoYz1mKzE2fDApPj4yXSk+PjJdfHwo''@;'; + put 'put ''cD0wfGFbMTQ4KygwfGFbMTYrKDB8SmgoZikpPj4yXSk+PjJdLGFbMTQ4KygwfGFbYz4+Ml0pPj4yXT1wKSxmPTB8enQobCxmKX0obCxBKSxmdW5jdGlvbiBYMGUobCxjKXtjfD0wO3ZhciBmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wO2Zvcih3PTB8RHQobHw9MCk7dzspe2Zvcihm''@;'; + put 'put ''PTB8YVsxNDgrKDB8YVt3KzE2Pj4yXSk+PjJdLGI9MHx3MChsLHcpO2I7KXtkb3tpZigwPT0oMHxxMGUoYikpJiYoaz1iKy00OHwwLCgwfGYpIT0oMHwoTT0wfGFbMTQ4KygwfGFbMTYrKDB8SmgoMHxhWygyPT0oMyZhW2I+PjJdfDApP2I6aykrNDA+PjJdKSk+PjJdKT4+Ml0pKSkpe2lmKEE9''@;'; + put 'put ''Yis0OHwwLHA9KDM9PSgwfChtPTMmYVtiPj4yXSkpP2I6QSkrNDB8MCxtPTB8YVsyMTIrKDB8YVsxNisoMHxhWygyPT0oMHxtKT9iOmspKzQwPj4yXSk+PjJdKT4+Ml0sMHxlb2UoYikpeygwfChtPTB8SmgoMHxhW3A+PjJdKSkpIT0oMHxhWzIxMisoMHxhWzE2KygwfGFbMjEyKygwfGFbMTYr''@;'; + put 'put ''KDB8YVsoMz09KDB8KHA9MyZhW2I+PjJdKSk/YjpBKSs0MD4+Ml0pPj4yXSk+PjJdKT4+Ml0pPj4yXSkmJigwfChBPTB8SmgoMHxhWygyPT0oMHxwKT9iOmspKzQwPj4yXSkpKSE9KDB8YVsyMDgrKDB8YVsxNisoMHxhWzIxMisoMHxhWzE2KygwfGFbKDI9PSgzJmFbYj4+Ml18MCk/YjprKSs0''@;'; + put 'put ''MD4+Ml0pPj4yXSk+PjJdKT4+Ml0pPj4yXSk/cD1NOihwPWYsZj1NKSxmVShjLGYscCxiKTticmVha31pZigwPT0oMHx2SCgwfGFbMjEyKygwfGFbMTYrKDB8YVtwPj4yXSk+PjJdKT4+Ml0pKSYmMD09KDB8dkgobSkpKXtmVShjLGYsTSxiKTticmVha314SShjLGYsTSxiKTticmVha319d2hp''@;'; + put 'put ''bGUoMCk7Yj0wfFMwKGwsYil9dz0wfHp0KGwsdyl9fShsLEEpLHNVKGwsQSwwLDApLGZ1bmN0aW9uIEswZShsKXt2YXIgYz0wLGY9MDtmb3IoYz0wfER0KGx8PTApO2M7KWZlWzE1OCsoZj0wfGFbYysxNj4+Ml0pPj4wXT0wLGZlW2YrMTU3Pj4wXT0wLGM9MHx6dChsLGMpO2ZvcihjPTB8RHQo''@;'; + put 'put ''bCk7YzspaHkobCxjKSxjPTB8enQobCxjKX0oQSksbT0wfGZ1bmN0aW9uICQwZShsKXt2YXIgYz0wLGY9MCxwPTAsbT0wO2ZvcihjPTB8RHQobHw9MCk7YzspYVsxMjgrKDB8YVtjKzE2Pj4yXSk+PjJdPTAsYz0wfHp0KGwsYyk7Zm9yKGM9MCxwPTB8RHQobCk7cDspZj1jKzF8MCwwfGFbMTI4''@;'; + put 'put ''KygwfGFbcCsxNj4+Ml0pPj4yXXx8KGN5KGwscCxmKSxjPWYpLHA9MHx6dChsLHApO2U6ZG97aWYoKDB8Yyk+MSlmb3IobT0wfGZ5KGwsODcyNDYpLGY9MSxwPTB8RHQobCk7Oyl7aWYoIXApYnJlYWsgZTsoMHxhWzEyOCsoMHxhW3ArMTY+PjJdKT4+Ml0pPT0oMHxmKSYmKEthKGwsbSxwLDAs''@;'; + put 'put ''MSksZj1mKzF8MCkscD0wfHp0KGwscCl9fXdoaWxlKDApO3JldHVybiAwfGN9KEEpLGZ1bmN0aW9uIEVJKGwpe3ZhciBjPTAsZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTA7Zm9yKEE9MHxEdChsfD0wKTtBOyl7Zm9yKHc9QSsxNnwwLG09MHx3MChsLEEpO207KWM9KGY9MHxhWzE4MCsoYz0wfGFb''@;'; + put 'put ''dz4+Ml0pPj4yXSk/MHxWMChmLDgrKGFbYysxODQ+PjJdPDwyKXwwKTowfFFuKDgrKGFbYysxODQ+PjJdPDwyKXwwKSxhWzE4MCsoZj0wfGFbdz4+Ml0pPj4yXT1jLGFbKGY9ZisxODR8MCk+PjJdPTErKHA9MHxhW2Y+PjJdKSxhW2MrKHA8PDIpPj4yXT1tLGFbKDB8YVsxODArKHA9MHxhW3c+''@;'; + put 'put ''PjJdKT4+Ml0pKyhhW3ArMTg0Pj4yXTw8Mik+PjJdPTAscD1tKy00OHwwLGM9KGY9MHxhWzE3MisoYz0wfGFbMTYrKDB8YVsoMj09KDMmYVttPj4yXXwwKT9tOnApKzQwPj4yXSk+PjJdKT4+Ml0pPzB8VjAoZiw4KyhhW2MrMTc2Pj4yXTw8Mil8MCk6MHxRbig4KyhhW2MrMTc2Pj4yXTw8Mil8''@;'; + put 'put ''MCksYVsxNzIrKDB8YVsxNisoMHxhWygyPT0oMyZhW20+PjJdfDApP206cCkrNDA+PjJdKT4+Ml0pPj4yXT1jLGM9MHxhWzE3MisoYj0wfGFbMTYrKDB8YVsoMj09KDMmYVttPj4yXXwwKT9tOnApKzQwPj4yXSk+PjJdKT4+Ml0sYVsoYj1iKzE3NnwwKT4+Ml09MSsoZj0wfGFbYj4+Ml0pLGFb''@;'; + put 'put ''YysoZjw8Mik+PjJdPW0sYVsoMHxhWzE3MisocD0wfGFbMTYrKDB8YVsoMj09KDMmYVttPj4yXXwwKT9tOnApKzQwPj4yXSk+PjJdKT4+Ml0pKyhhW3ArMTc2Pj4yXTw8Mik+PjJdPTAsbT0wfFMwKGwsbSk7QT0wfHp0KGwsQSl9fShBKSwwfGMmJihiVShBKSxtVShBKSkscFEoQSwxLHAsZj0o''@;'; + put 'put ''Zj0wfExpKGwsMTAyNTg2KSk/MHxyMyhmKTotMSksZnVuY3Rpb24gdVUobCxjLGYpe2N8PTAsZnw9MDt2YXIgcD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTA7aXRbMjM2KyhSPTB8YVsoRD0xNisobHw9MCl8MCk+PjJdKT4+MV09MzI3NjcsaXRbUisyMzg+PjFdPS0xO2U6ZG97''@;'; + put 'put ''aWYoKDB8Zik+MSlmb3IobT0wfHZyKDQrKGY8PDIpfDApLHA9ZisxfDAsZj0xOzspe2lmKCgwfGYpPT0oMHxwKSl7TT1tLFI9bTticmVhayBlfWFbbSsoZjw8Mik+PjJdPTMyNzY3LGY9ZisxfDB9ZWxzZSBNPTAsUj0wfXdoaWxlKDApO2ZvcihBPTA9PSgwfE0pLG09MHxEdChsKTttOyl3PTB8''@;'; + put 'put ''YVsxNisoMHxhWzE0OCsoMHxhWzE2KygwfEpoKG0pKT4+Ml0pPj4yXSk+PjJdLGFbMjMyKyhrPTB8YVttKzE2Pj4yXSk+PjJdPWI9MHxhW3crMjMyPj4yXSwoMHxiKT4oMHxpdFsocD0yMzgrKGY9MHxhW0Q+PjJdKXwwKT4+MV0pJiYoaXRbcD4+MV09YiksKDB8Yik8KDB8aXRbKGY9ZisyMzZ8''@;'; + put 'put ''MCk+PjFdKSYmKGl0W2Y+PjFdPWIpLEF8fChhW2srMTI4Pj4yXT13PTB8YVt3KzEyOD4+Ml0sYVsoaz1NKyh3PDwyKXwwKT4+Ml09KDB8KHc9MHxhW2s+PjJdKSk8KDB8Yik/dzpiKSxtPTB8enQobCxtKTt3PTAhPSgwfE0pO2U6ZG97aWYodylmb3IoZj0wfER0KGwpOzspe2lmKCFmKXtmPTE7''@;'; + put 'put ''YnJlYWsgZX1hWyhEPTIzMisoaz0wfGFbZisxNj4+Ml0pfDApPj4yXT0oMHxhW0Q+PjJdKS0oMHxhW00rKGFbaysxMjg+PjJdPDwyKT4+Ml0pLGY9MHx6dChsLGYpfWVsc2UgaWYoTT0wfGl0WzIzNisoMHxhW0Q+PjJdKT4+MV0scD1NPDwxNj4+MTYsTTw8MTY+PjE2PjApe2ZvcihmPTB8RHQo''@;'; + put 'put ''bCk7ZjspYVsoTT0yMzIrKDB8YVtmKzE2Pj4yXSl8MCk+PjJdPSgwfGFbTT4+Ml0pLXAsZj0wfHp0KGwsZik7aXRbKEQ9MjM2KyhmPTB8YVtEPj4yXSl8MCk+PjFdPSgwfGhyW0Q+PjFdKS1wLGl0WyhmPWYrMjM4fDApPj4xXT0oMHxocltmPj4xXSktcCxmPTB9ZWxzZSBmPTB9d2hpbGUoMCk7''@;'; + put 'put ''Zm9yKGlrKGwsZiksQT0wfER0KGMpO0E7KShtPTB8YVsxNzIrKGY9MHxhWyhwPUErMTZ8MCk+PjJdKT4+Ml0pJiYoRnQobSksZj0wfGFbcD4+Ml0pLDB8KGY9MHxhW2YrMTgwPj4yXSkmJkZ0KGYpLEE9MHx6dChjLEEpO2ZvcihGdCgwfGFbMTEyKygwfGFbMTYrKDB8RHQobCkpPj4yXSk+PjJd''@;'; + put 'put ''KSxmPTB8RHQobCk7ZjspYVsxMTIrKDB8YVtmKzE2Pj4yXSk+PjJdPTAsZj0wfHp0KGwsZik7dyYmRnQoUil9KGwsQSxtKSxDMShBKSxsZT13fShsLGMpKTpHMGUobCxjKSxsZT1wfWZ1bmN0aW9uIEcwZShsLGMpe2N8PTA7dmFyIHAsbSxBLGY9MCx3PTAsYj0wO0E9bGUsbGU9bGUrMzJ8MCxt''@;'; + put 'put ''PUErMTZ8MCxwPUErOHwwLGY9QSx0VShsfD0wKTtkb3tpZihjKXtpZihiVShsKSxtVShsKSx1eShsLGwpLExJKGwpLG03KGYsbCksZj0wfGFbKGI9ZikrND4+Ml0sYVsodz1wKT4+Ml09YVtiPj4yXSxhW3crND4+Ml09ZixUSChsLDApLCgwfGFbMjIwKyh3PTB8YVtsKzE2Pj4yXSk+PjJdKTw9''@;'; + put 'put ''MSYmKDB8YVt3KzE4MD4+Ml0pPD0wKWJyZWFrO2FbYyszMj4+Ml09MSxjPTB9ZWxzZSB1eShsLGwpLExJKGwpLG03KGYsbCksZj0wfGFbKHc9ZikrND4+Ml0sYVsoYz1wKT4+Ml09YVt3Pj4yXSxhW2MrND4+Ml09ZixUSChsLDApLGM9MH13aGlsZSgwKTsoZnVuY3Rpb24gZFUobCl7dmFyIHAs''@;'; + put 'put ''Yz0wLGY9MCxtPTA7Zm9yKHA9MTYrKGx8PTApfDAsZj0wOyEoKDB8Zik+PSgwfGFbMjIwKyhsPTB8YVtwPj4yXSk+PjJdKSk7KXtmb3IoYVtsKzE5Mj4+Ml09Yz0wfGFbKDB8YVtsKzIxNj4+Ml0pKyhmPDwyKT4+Ml0sYz1sPWM7YzspZmVbMTU3KyhtPTB8YVtjKzE2Pj4yXSk+PjBdPTAsYz0w''@;'; + put 'put ''fGFbbSsxNjQ+PjJdO2Zvcig7bDspcFUobCksbD0wfGFbMTY0KygwfGFbbCsxNj4+Ml0pPj4yXTtmPWYrMXwwfX0pKGwpLGFbbT4+Ml09YVtwPj4yXSxhW20rND4+Ml09YVtwKzQ+PjJdLDB8ZnVuY3Rpb24gVzBlKGwsYyl7Y3w9MDt2YXIgYixmPTAscD0wLG09MCxBPTAsdz0wLGs9MCxNPTA7''@;'; + put 'put ''MD09KDB8YVsyMjgrKHc9MHxhWyhiPTE2KyhsfD0wKXwwKT4+Ml0pPj4yXSkmJjA9PSgwfGFbdysyMjQ+PjJdKT9jPTA6Zj0zO2U6ZG97aWYoMz09KDB8ZikpZm9yKG09MHxEdChsKSx3PWMrNHwwLEE9NjU1MzUmYVtjPj4yXSxjPTA7Oyl7aWYoIW0pYnJlYWsgZTsoMHxtKT09KDB8ZzEobSkp''@;'; + put 'put ''JiYoMD09KDB8YVsxODQrKGY9MHxhWyhwPW0rMTZ8MCk+PjJdKT4+Ml0pJiYhKDA9PSgwfChrPTB8YVsyMjgrKDB8YVtiPj4yXSk+PjJdKSl8KDB8bSk9PSgwfGspKSYmKGM9MHxKYyhtLGssMCksaXRbMTcwKyhmPTB8YVtjKzE2Pj4yXSk+PjFdPWFbdz4+Ml0sYVtmKzE1Nj4+Ml09MCxmPTB8''@;'; + put 'put ''YVtwPj4yXSksMD09KDB8YVtmKzE3Nj4+Ml0pJiYhKDA9PSgwfChNPTB8YVsyMjQrKDB8YVtiPj4yXSk+PjJdKSl8KDB8bSk9PSgwfE0pKSYmKGM9MHxKYyhNLG0sMCksaXRbMTcwKyhwPTB8YVtjKzE2Pj4yXSk+PjFdPUEsYVtwKzE1Nj4+Ml09MCkpLG09MHx6dChsLG0pfX13aGlsZSgwKTty''@;'; + put 'put ''ZXR1cm4gMCE9KDB8Yyl8MH0obCxtKSYmVEgobCwwKSxjP2Z1bmN0aW9uIGxvZShsLGMpe3ZhciB3LGIsayxNLEssZj0wLHA9MCxtPTAsQT0wLEc9MDtmb3IoSz1sZSxsZT1sZSsxNnwwLGI9MHxhWzI0KyhjfD0wKT4+Ml0sZnVuY3Rpb24gc29lKGwpe3ZhciBjPTAsZj0wLHA9MCxtPTAsQT0w''@;'; + put 'put ''LHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wO2ZvcihhWzQ2NzUyXT0wfFFuKDI0KigwfEdvKGx8PTApKXwwKSxhWzQ2NzUxXT0wLGM9MHxEdChsKTtjOylhWzEyMCsoMHxhW2MrMTY+PjJdKT4+Ml09LTEsYz0wfHp0KGwsYyk7Zm9yKHc9MHxEdChsKTt3Oyl7Yj13KzE2fDA7ZG97aWYoMHxhWzIx''@;'; + put 'put ''NisoMHxhW2I+PjJdKT4+Ml0pe2lmKEE9MHxnMSh3KSwoMHwoZj0wfGFbMTIwKyhjPTB8YVsoaz1BKzE2fDApPj4yXSk+PjJdKSk+LTEpe209MHxhWyhBPTB8YVs0Njc1Ml0pKygyNCpmfDApPj4yXSxhWyhwPUErKDI0KmZ8MCkrNHwwKT4+Ml09MSsoaz0wfGFbcD4+Ml0pLGFbbSsoazw8Mik+''@;'; + put 'put ''PjJdPXcsaz0wfGFbYj4+Ml0sX1soYj1BKygyNCpmfDApKzh8MCk+PjNdPStfW2I+PjNdKyArX1trKzMyPj4zXSxfWyhiPUErKDI0KmZ8MCkrMTZ8MCk+PjNdPShNPStfW2I+PjNdKTwoRD0rX1trKzQwPj4zXSk/RDpNLGFbaysxMjA+PjJdPWY7YnJlYWt9Zj0wfHZyKGFbYysyMTY+PjJdPDwy''@;'; + put 'put ''KSxhWyhjPShwPTB8YVs0Njc1Ml0pKygyNCoobT0wfGFbNDY3NTFdKXwwKXwwKT4+Ml09ZixhW2Y+PjJdPUEsKDB8QSk9PSgwfHcpPyhfW3ArKDI0Km18MCkrOD4+M109K19bMzIrKDB8YVtrPj4yXSk+PjNdLGY9MSxjPXcpOihhWzQrKDB8YVtjPj4yXSk+PjJdPXcsX1twKygyNCptfDApKzg+''@;'; + put 'put ''PjNdPStfWzMyKyhjPTB8YVtiPj4yXSk+PjNdKyArX1szMisoUj0wfGFbaz4+Ml0pPj4zXSxmPTIsYz0rX1tSKzQwPj4zXTwrX1tjKzQwPj4zXT93OkEpLGFbcCsoMjQqbXwwKSs0Pj4yXT1mLF9bcCsoMjQqbXwwKSsxNj4+M109K19bNDArKDB8YVtjKzE2Pj4yXSk+PjNdLGFbMTIwKygwfGFb''@;'; + put 'put ''az4+Ml0pPj4yXT1tLGFbMTIwKygwfGFbYj4+Ml0pPj4yXT1tLGFbNDY3NTFdPW0rMX1lbHNlIG09MHx2cig0KSxhWyhBPTB8YVs0Njc1Ml0pKygyNCooaz0wfGFbNDY3NTFdKXwwKT4+Ml09bSxhW20+PjJdPXcsYVtBKygyNCprfDApKzQ+PjJdPTEsX1tBKygyNCprfDApKzg+PjNdPStfWzMy''@;'; + put 'put ''KyhiPTB8YVtiPj4yXSk+PjNdLF9bQSsoMjQqa3wwKSsxNj4+M109K19bYis0MD4+M10sYVtiKzEyMD4+Ml09ayxhWzQ2NzUxXT1rKzF9d2hpbGUoMCk7dz0wfHp0KGwsdyl9fShsfD0wKSxNPWMrOHwwLHc9MV4oaz0tMT09KDB8YikpLG09MTc5NzY5MzEzNDg2MjMxNTdlMjkyLEE9MDtrfCgw''@;'; + put 'put ''fEEpPCgwfGIpOyl7Zm9yKGY9MHxEdChsKTtmOylhWzIzMisoMHxhW2YrMTY+PjJdKT4+Ml09MCxmPTB8enQobCxmKTtpZihkSChsKSxwPSt2VShsKSxfW00+PjNdPXAsISghKHA8PStfW2M+PjNdKSYoIShtPD1wKXx3KSkpe0c9OTticmVha311b2UobCksbT1wLEE9QSsxfDB9OT09KDB8Rykm''@;'; + put 'put ''JihhW2MrMTY+PjJdPWFbKEc9YysyMHwwKT4+Ml0sYVtHPj4yXT1BKSxkSChsKSxESShsKSxmdW5jdGlvbiBfSCgpe3ZhciBNLEQsbD0wLGM9MCxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsUj0wO2ZvcihNPTB8YVs0Njc0OV0sRD0wfGFbNDY3NTBdLGs9MCxjPTAsbD0wOyEoKDB8ayk+''@;'; + put 'put ''PSgwfE0pKTspe2Y9RCsoNDAqa3wwKXwwLGI9MHxhW0QrKDQwKmt8MCkrMTI+PjJdLHA9MD09KDB8Yyk7ZTpkb3tpZihiKXtpZihwKWM9MDtlbHNlIGlmKCgwfGFbZj4+Ml0pPigwfGwpKWZvcihtPUQrKDQwKmt8MCkrNHwwLGY9MDs7KXtpZigoMHxmKT49KDB8YikpYnJlYWsgZTtmb3Iodz0w''@;'; + put 'put ''fGFbNCsoQT0wfGFbKDB8YVttPj4yXSkrKGY8PDIpPj4yXSk+PjJdLHA9MDshKCgwfHApPj0oMHx3KSk7KWFbKFI9MjMyKygwfGFbMTYrKDB8YVsoMHxhW0E+PjJdKSsocDw8Mik+PjJdKT4+Ml0pfDApPj4yXT0oMHxhW1I+PjJdKS1jLHA9cCsxfDA7Zj1mKzF8MH19ZWxzZSBwJiYobD0wfGFb''@;'; + put 'put ''Zj4+Ml0pLGM9YysxfDB9d2hpbGUoMCk7az1rKzF8MH19KCksX1tNPj4zXT0rdlUobCksbGU9S30obCxjKTpkSChsKSxmdW5jdGlvbiBZMGUobCxjKXtjfD0wO3ZhciBiLGY9MCxwPTAsbT0wLEE9MCx3PTA7cD0wfER0KGx8PTApLGY9MHxhWyhiPWwrMTZ8MCk+PjJdO2U6ZG97aWYocCl7Zm9y''@;'; + put 'put ''KGl0W2YrMjM2Pj4xXT0zMjc2NyxpdFtmKzIzOD4+MV09LTEsdz0wPT0oMHxjKTtwOyl7Zj0wfGcxKHApLGM9MHxhWzIzMisoQT0wfGFbcCsxNj4+Ml0pPj4yXTtkb3tpZigoMHxmKSE9KDB8cCkpe2lmKCF3KXtpZihjKWJyZWFrO2M9MH1hW0ErMjMyPj4yXT1jPWMrKDB8YVsyMzIrKDB8YVtm''@;'; + put 'put ''KzE2Pj4yXSk+PjJdKXwwfX13aGlsZSgwKTtzd2l0Y2goKDB8Yyk+KDB8aXRbKG09MjM4KyhmPTB8YVtiPj4yXSl8MCk+PjFdKSYmKGl0W20+PjFdPWMpLCgwfGMpPCgwfGl0WyhmPWYrMjM2fDApPj4xXSkmJihpdFtmPj4xXT1jKSwwfGZlW0ErMTU5Pj4wXSl7Y2FzZSA2OmNhc2UgMDpicmVh''@;'; + put 'put ''aztkZWZhdWx0OnJnKHApfXA9MHx6dChsLHApfWlmKCgwfEFhKGwpKT09KDB8bCkpe2lmKDEwMCE9KDB8YVs0NzEzNV0pKXtRMGUobCk7YnJlYWt9Zm9yKGM9MTs7KXtpZigoMHxjKT4oMHxhWzE4MCsoZj0wfGFbYj4+Ml0pPj4yXSkpYnJlYWsgZTtyVSgwfGFbKDB8YVtmKzE4ND4+Ml0pKyhj''@;'; + put 'put ''PDwyKT4+Ml0pLGM9YysxfDB9fX1lbHNlIGl0W2YrMjM4Pj4xXT0wLGl0W2YrMjM2Pj4xXT0wfXdoaWxlKDApfShsLGMpLGZ1bmN0aW9uIFUwZShsKXt2YXIgYixjPTAsZj0wLHA9MCxtPTAsQT0wLHc9MCxrPTAsTT0wLEQ9MDtmb3IoYj0xNisobHw9MCl8MCxmPTA7ISgoMHxmKT49KDB8YVsy''@;'; + put 'put ''MjArKGM9MHxhW2I+PjJdKT4+Ml0pKTspe2ZvcihhW2MrMTkyPj4yXT13PTB8YVsoMHxhW2MrMjE2Pj4yXSkrKGY8PDIpPj4yXSxjPXc7YzspblUoMTcyKygwfGFbKHc9YysxNnwwKT4+Ml0pfDApLG5VKDE4MCsoMHxhW3c+PjJdKXwwKSxmZVsxNTcrKHc9MHxhW3c+PjJdKT4+MF09MCxjPTB8''@;'; + put 'put ''YVt3KzE2ND4+Ml07Zj1mKzF8MH1mb3Iodz0wfER0KGwpO3c7KXtmb3IoQT0wfHcwKGwsdyk7QTspe2lmKDAhPSgwfChtPTB8YVsxNzIrKGM9MHxhWyhwPUErMTZ8MCk+PjJdKT4+Ml0pKSYmKDB8QSk9PSgwfGFbMTE2KygwfGFbKGs9bSsxNnwwKT4+Ml0pPj4yXSkpe2ZvcihjPTB8RHQobCk7''@;'; + put 'put ''Yzspe2ZvcihmPTB8dzAobCxjKTtmOykoMHxBKSE9KDB8ZikmJjAhPSgwfChEPTB8YVsoTT0xNzIrKDB8YVtmKzE2Pj4yXSl8MCk+PjJdKSkmKDB8bSk9PSgwfEQpJiYoYVtNPj4yXT0wKSxmPTB8UzAobCxmKTtjPTB8enQobCxjKX1GdCgwfGFbaz4+Ml0pLEZ0KG0pLGM9MHxhW3A+PjJdfWFb''@;'; + put 'put ''YysxNzI+PjJdPTAsQT0wfFMwKGwsQSl9dz0wfHp0KGwsdyl9RnQoMHxhWzIxNisoMHxhW2I+PjJdKT4+Ml0pLGFbMjE2KyhEPTB8YVtiPj4yXSk+PjJdPTAsYVtEKzIyMD4+Ml09MH0obCksbGU9QX1mdW5jdGlvbiB0VShsKXt2YXIgYz0wLGY9MCxwPTA7aWYoMSZmZVsxMTMrKDB8YVsxNiso''@;'; + put 'put ''MHxhWzYwKyhsfD0wKT4+Ml0pPj4yXSk+PjBdKXtmb3IoZj0wfER0KGwpO2Y7KXtmb3IoYz0wfHcwKGwsZik7YzspaXRbKHA9MTcwKygwfGFbYysxNj4+Ml0pfDApPj4xXT0oMHxocltwPj4xXSk8PDEsYz0wfFMwKGwsYyk7Zj0wfHp0KGwsZil9YVsocD0yNTIrKDB8YVtsKzE2Pj4yXSl8MCk+''@;'; + put 'put ''PjJdPSgxKygwfGFbcD4+Ml0pfDApLzJ8MH19ZnVuY3Rpb24gdXkobCxjKXtsfD0wO3ZhciBmPTA7Zm9yKGM9MHx5cyhjfD0wKTtjOyl7Zj0wfEowZShjKTtkb3tpZihmKXtpZig3PT0oMHxmKSYxMDA9PSgwfGFbNDcxMzVdKSl7aVUobCxjKTticmVha31wSChsLGMsZik7YnJlYWt9dXkobCxj''@;'; + put 'put ''KX13aGlsZSgwKTtjPTB8TXMoYyl9fWZ1bmN0aW9uIG03KGwsYyl7bHw9MDt2YXIgZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wO2M9MHxhWzIyOCsoZj0wfGFbKHc9MTYrKGN8PTApfDApPj4yXSk+PjJdLHA9MD09KDB8KGY9MHxhW2YrMjI0Pj4yXSkpLGM/bT1wPzU6NDpwPyhiPTAsaz0w''@;'; + put 'put ''KTptPTQsND09KDB8bSkmJihjPTB8ZzEoZiksYVsyMjQrKGY9MHxhW3c+PjJdKT4+Ml09YywoYz0wfGFbZisyMjg+PjJdKT9tPTU6KEE9MCxjPWYsbT0xMikpO2Rve2lmKDU9PSgwfG0pKWlmKGM9MHxnMShjKSxhWzIyOCsoZj0wfGFbdz4+Ml0pPj4yXT1jLGMpe2ZvcihwPTU9PSgwfGZlWzE1''@;'; + put 'put ''OSsoYz0wfGFbKGY9YysxNnwwKT4+Ml0pPj4wXSkmMTs7KXtpZighKGM9MHxhW2FbYysxODA+PjJdPj4yXSkpe209MTE7YnJlYWt9aWYoKDB8KEE9MHxhWygyPT0oMyZhW2M+PjJdfDApP2M6YystNDh8MCkrNDA+PjJdKSkhPSgwfGcxKEEpKSl7bT05O2JyZWFrfUlJKGMpLGM9MHxhW2Y+PjJd''@;'; + put 'put ''fWlmKDk9PSgwfG0pKVByKDg3MDk0LDg3MDM0LDM0Niw4NzEyNik7ZWxzZSBpZigxMT09KDB8bSkpe0E9cCxjPTB8YVt3Pj4yXSxtPTEyO2JyZWFrfX1lbHNlIEE9MCxjPWYsbT0xMn13aGlsZSgwKTtlOmRve2lmKDEyPT0oMHxtKSlpZihjPTB8YVtjKzIyND4+Ml0sYyl7Zm9yKHA9Mz09KDB8''@;'; + put 'put ''ZmVbMTU5KyhjPTB8YVsoZj1jKzE2fDApPj4yXSk+PjBdKSYxOzspe2lmKCEoYz0wfGFbYVtjKzE3Mj4+Ml0+PjJdKSl7Yj1wLGs9QTticmVhayBlfWlmKCgwfCh3PTB8YVsoMz09KDMmYVtjPj4yXXwwKT9jOmMrNDh8MCkrNDA+PjJdKSkhPSgwfGcxKHcpKSlicmVhaztJSShjKSxjPTB8YVtm''@;'; + put 'put ''Pj4yXX1Qcig4NzEzOSw4NzAzNCwzNTMsODcxMjYpfWVsc2UgYj0wLGs9QX13aGlsZSgwKTthW2w+PjJdPWIsYVtsKzQ+PjJdPWt9ZnVuY3Rpb24gblUobCl7dmFyIGYsYz0wO2ZvcihjPTB8YVsoZj00KyhsfD0wKXwwKT4+Ml07ISgoMHxjKTw9LTEpOylhWygwfGFbbD4+Ml0pKyhjPDwyKT4+''@;'; + put 'put ''Ml09MCxjPWMrLTF8MDthW2Y+PjJdPTB9ZnVuY3Rpb24gclUobCl7dmFyIGMscCxmPTA7Zm9yKGl0WyhsPTIzNisoZj0wfGFbKGM9MTYrKGx8PTApfDApPj4yXSl8MCk+PjFdPShwPTB8YVsyMzIrKDB8YVsxNisoMHxhW2YrMjY0Pj4yXSk+PjJdKT4+Ml0pKygwfGhyW2w+PjFdKSxpdFsobD1m''@;'; + put 'put ''KzIzOHwwKT4+MV09cCsoMHxocltsPj4xXSksbD0xOyEoKDB8bCk+KDB8YVtmKzE4MD4+Ml0pKTspclUoMHxhWygwfGFbZisxODQ+PjJdKSsobDw8Mik+PjJdKSxsPWwrMXwwLGY9MHxhW2M+PjJdfWZ1bmN0aW9uIFEwZShsKXt2YXIgYz0wO2ZvcihjPTB8eXMoMHxBYShsfD0wKSk7YzspNz09''@;'; + put 'put ''KDB8ZmVbMjc0KygwfGFbYysxNj4+Ml0pPj4wXSkmJmlVKGwsYyksYz0wfE1zKGMpfWZ1bmN0aW9uIGlVKGwsYyl7dmFyIGY7bHw9MCxmPTIwMCsoMHxhWzE2KyhjfD0wKT4+Ml0pfDA7ZG97aWYoMD09KDB8YVtmPj4yXSkmJihhW2Y+PjJdPWwsb1UobCxjKSwwfER0KGMpKSl7aWYoYVUobCxj''@;'; + put 'put ''KSwxMDA9PSgwfGFbNDcxMzVdKSl7RzBlKGMsMCksbFUoYyk7YnJlYWt9cVkoYyk7YnJlYWt9fXdoaWxlKDApfWZ1bmN0aW9uIG9VKGwsYyl7dmFyIEEsZj0wLHA9MCxtPTAsdz0wLGI9MCxrPTA7Zm9yKEE9MTYrKGx8PTApfDAsbT0wfER0KGN8PTApO207KWlmKHc9MHx6dChjLG0pLDB8ZmVb''@;'; + put 'put ''MTU5KygwfGFbKGI9bSsxNnwwKT4+Ml0pPj4wXSlvaShjLG0pLG09dztlbHNle2ZvcihwPTE7ISgoMHxwKT49KDB8KGw9MHxhWzE4MCsoZj0wfGFbQT4+Ml0pPj4yXSkpKTspe2lmKDB8TnIoMHxhWygwfGFbZisxODQ+PjJdKSsocDw8Mik+PjJdLG0pKXtrPTc7YnJlYWt9cD1wKzF8MH03PT0o''@;'; + put 'put ''MHxrKSYmKGs9MCxsPTB8YVsxODArKDB8YVtBPj4yXSk+PjJdKSwoMHxwKTwoMHxsKSYmb2koYyxtKSxhWzIxMisoMHxhW2I+PjJdKT4+Ml09MCxtPXd9Zm9yKGY9MHxEdChjKTtmOyl7Zm9yKGw9MHx3MCgwfEFhKGMpLGYpO2w7KTB8TnIoYywwfGFbKDI9PSgzJmFbbD4+Ml18MCk/bDpsKy00''@;'; + put 'put ''OHwwKSs0MD4+Ml0pJiZaZChjLGwsMSksbD0wfFMwKDB8QWEoYyksbCk7Zj0wfHp0KGMsZil9fWZ1bmN0aW9uIGFVKGwsYyl7Y3w9MDt2YXIgcCxtLEEsZj0wO2FbKEE9MTgwKyhmPTB8YVsocD0xNisobHw9MCl8MCk+PjJdKXwwKT4+Ml09bT0xKyhsPTB8YVtBPj4yXSl8MCxsPShmPTB8YVtm''@;'; + put 'put ''KzE4ND4+Ml0pPzB8ekgoZixsKzJ8MCw0LG0pOjB8dnIoOCsobDw8Mil8MCksYVsxODQrKDB8YVtwPj4yXSk+PjJdPWwsYVtsKyhtPDwyKT4+Ml09YyxmayhjKX1mdW5jdGlvbiBsVShsKXt2YXIgbSxjPTAsZj0wLHA9MCxBPTA7Zm9yKGM9MTkyKyhtPTB8YVsxNisobHw9MCk+PjJdKXwwLEE9''@;'; + put 'put ''MDtjPTB8YVtjPj4yXTspZj0wfGFbMjMyKyhwPTB8YVtjKzE2Pj4yXSk+PjJdP0E6MD09KDB8ZmVbcCsxNTY+PjBdKT9jOkEsYz1wKzE2NHwwLEE9Zjtmb3IoQXx8UHIoODcwMTksODcwMzQsMjM4LDg3MDQxKSxhW20rMjY0Pj4yXT1BLGM9MHxEdChsKTs7KXtpZighYyl7Yz0xMzticmVha31p''@;'; + put 'put ''ZihmPWMrMTZ8MCwhKCgwfGMpPT0oMHxBKXx8KDB8YVsyMTYrKDB8YVtmPj4yXSk+PjJdKTwyKSl7Yz0xMTticmVha311RChjLEEpLGZlWzE1OSsoMHxhW2Y+PjJdKT4+MF09NyxjPTB8enQobCxjKX1pZigxMT09KDB8YykpUHIoODcwNTYsODcwMzQsMjQyLDg3MDQxKTtlbHNlIGlmKDEzPT0o''@;'; + put 'put ''MHxjKSlyZXR1cm59ZnVuY3Rpb24gSjBlKGwpe3ZhciBjPTA7cmV0dXJuIDB8Z0gobHw9MCk/bD03OihjPTB8a04oMHxMaShsLDg3MTcxKSwxNzM1NiwxNzM4MCksZmVbMjc0KygwfGFbbCsxNj4+Ml0pPj4wXT1jLGw9YyksMHxsfWZ1bmN0aW9uIHBIKGwsYyxmKXtsfD0wLGZ8PTA7dmFyIHA9''@;'; + put 'put ''MCxtPTAsQT0wLHc9MCxiPTA7bT0wfER0KGN8PTApO2U6ZG97aWYoMHxtKXtmb3Iodz1tKzE2fDAscD1tLEE9Yj0yNTUmZjtmZVsxNTkrKDB8YVtwKzE2Pj4yXSk+PjBdPUEscD0wfHp0KGMscCk7KXVEKG0scCksQT0wfGZlWzE1OSsoMHxhW3c+PjJdKT4+MF07c3dpdGNoKDB8Zil7Y2FzZSAz''@;'; + put 'put ''OmNhc2UgMjooQT0wfGFbMjI0KyhwPTB8YVsobD1sKzE2fDApPj4yXSk+PjJdKSYmKG09MHx1RChBLG0pLHA9MHxhW2w+PjJdKSxhW3ArMjI0Pj4yXT1tO2JyZWFrO2Nhc2UgNTpjYXNlIDQ6KEE9MHxhWzIyOCsocD0wfGFbKGw9bCsxNnwwKT4+Ml0pPj4yXSkmJihtPTB8dUQoQSxtKSxwPTB8''@;'; + put 'put ''YVtsPj4yXSksYVtwKzIyOD4+Ml09bTticmVhaztkZWZhdWx0OmJyZWFrIGV9c3dpdGNoKDB8Zil7Y2FzZSAzOnA9cCsyMjR8MDticmVhaztjYXNlIDU6cD1wKzIyOHwwO2JyZWFrO2RlZmF1bHQ6YnJlYWsgZX1mZVsxNTkrKDB8YVsxNisoMHxhW3A+PjJdKT4+Ml0pPj4wXT1ifX13aGlsZSgw''@;'; + put 'put ''KX1mdW5jdGlvbiBnSChsKXtyZXR1cm4gMD09KDB8czIoMHx0aShsfD0wKSwxMDgwMDYsNykpfDB9ZnVuY3Rpb24gU0kobCxjKXtjfD0wO3ZhciBtLE0sZj0wLHA9MCxBPTAsdz0wLGI9MCxrPTA7aWYoTT1sZSxsZT1sZSsxNnwwLG09TSwhKDB8ZnVuY3Rpb24gbm9lKGwpe3JldHVybiAwPT0o''@;'; + put 'put ''MHxEdChsfD0wKSl8MH0obHw9MCkpKXtkb3tpZigwfGdEKGwpKXtpZihjKXthWzIwNCsoMHxhW2wrMTY+PjJdKT4+Ml09MSsoMHxhWzIwNCsoMHxhW2MrMTY+PjJdKT4+Ml0pLHJvZShsLGMpLGM9bDticmVha31hWzIwNCsoMHxhW2wrMTY+PjJdKT4+Ml09MCxjPWw7YnJlYWt9fXdoaWxlKDAp''@;'; + put 'put ''O2ZvcihmPTB8eXMobCk7ZjspU0koZixjKSxmPTB8TXMoZik7ZTpkb3tpZigwfGdEKGwpKWZvcihmPTB8RHQobCk7Oyl7aWYoIWYpYnJlYWsgZTswfGFbKHA9MjEyKygwfGFbZisxNj4+Ml0pfDApPj4yXXx8KGFbcD4+Ml09bCksZj0wfHp0KGwsZil9fXdoaWxlKDApO3N3aXRjaCgwfGZ1bmN0''@;'; + put 'put ''aW9uIGlvZShsKXt2YXIgYz0wO3JldHVybiAwIT0oMHwobD0wfExpKGx8PTAsODcxNzEpKSkmJjAhPSgwfGZlW2w+PjBdKT8wfFppKGwsODcxODEpPzB8WmkobCw4NzE4NSk/MHxaaShsLDg3MTkyKT8wfFppKGwsODcxOTYpPzB8WmkobCw4NzE3Nik/Yz04Omw9MTpsPTU6bD00Omw9MzpsPTI6''@;'; + put 'put ''Yz04LDg9PSgwfGMpJiYobD02KSwwfGx9KGwpKXtjYXNlIDM6ZmVbMjQxKygwfGFbKGM9YysxNnwwKT4+Ml0pPj4wXT0xLGs9MTk7YnJlYWs7Y2FzZSAyOmM9YysxNnwwLGs9MTk7YnJlYWs7Y2FzZSA1OmZlWzI0MisoMHxhWyhjPWMrMTZ8MCk+PjJdKT4+MF09MSxrPTIxO2JyZWFrO2Nhc2Ug''@;'; + put 'put ''NDpjPWMrMTZ8MCxrPTIxO2JyZWFrO2Nhc2UgMTpUSShsKTticmVhaztjYXNlIDY6YnJlYWs7ZGVmYXVsdDpmPTB8dGkobCkscD0wfExpKGwsODcxNzEpLGFbbT4+Ml09ZixhW20rND4+Ml09cCwkcigwLDg3MzU0LG0pfTE5PT0oMHxrKT8oaz0wfEFIKGs9MHxUSShsKSwwfGFbMjA4KygwfGFb''@;'; + put 'put ''Yz4+Ml0pPj4yXSksYVsyMDgrKDB8YVtjPj4yXSk+PjJdPWspOjIxPT0oMHxrKSYmKGs9MHxBSChrPTB8VEkobCksMHxhWzIxMisoMHxhW2M+PjJdKT4+Ml0pLGFbMjEyKygwfGFbYz4+Ml0pPj4yXT1rKSwwfGdEKGwpJiYwfChiPTB8YVsyMDgrKHc9MHxhWyhBPWwrMTZ8MCk+PjJdKT4+Ml0p''@;'; + put 'put ''JiYoMHxiKT09KDB8YVt3KzIxMj4+Ml0pJiYoYj0wfFRJKGwpLGFbMjA4KyhrPTB8YVtBPj4yXSk+PjJdPWIsYVtrKzIxMj4+Ml09Yil9bGU9TX1mdW5jdGlvbiBzVShsLGMsZixwKXtjfD0wLGZ8PTAscHw9MDt2YXIgbT0wLEE9MDtpZigwIT0oMHxnRChsfD0wKSkmJjAhPSgwfHZIKGwpKSl7''@;'; + put 'put ''Zm9yKEE9MHxEdChsKTtBOykwfE1mKGwsQSl8fChtPTB8YVsxNDgrKDB8YVsxNisoMHxKaChBKSk+PjJdKT4+Ml0sZnx8KGY9MHxmeShjLDg3MjUyKSksS2EoYyxmLG0sMCwxKSksMHx3MChsLEEpfHwobT0wfGFbMTQ4KygwfGFbMTYrKDB8SmgoQSkpPj4yXSk+PjJdLHB8fChwPTB8ZnkoYyw4''@;'; + put 'put ''NzI1NykpLEthKGMsbSxwLDAsMSkpLEE9MHx6dChsLEEpOzAhPSgwfHApJjAhPSgwfGYpJiZtSCgwfEthKGMsZixwLDAsMSksMCwxZTMpLG09Zn1lbHNlIG09Zjtmb3IoZj0wfHlzKGwpO2Y7KXNVKGYsYyxtLHApLGY9MHxNcyhmKX1mdW5jdGlvbiBKaChsKXt2YXIgYyxmLHA9MDtpZihwPTB8''@;'; + put 'put ''YVsoZj0xNTIrKDB8YVsoYz0xNisobHw9MCl8MCk+PjJdKXwwKT4+Ml0pe2lmKCgwfHApIT0oMHxsKSlyZXR1cm4gcD0wfEpoKHApLGFbMTUyKygwfGFbYz4+Ml0pPj4yXT1wLDB8cH1lbHNlIGFbZj4+Ml09bDtyZXR1cm4gMHxsfWZ1bmN0aW9uIGlrKGwsYyl7Y3w9MDt2YXIgdyxmPTAscD0w''@;'; + put 'put ''LG09MCxBPTA7Zm9yKHc9MTYrKGx8PTApfDAsZj0xOyEoKDB8Zik+KDB8YVsxODArKHA9MHxhW3c+PjJdKT4+Ml0pKTspaWsoMHxhWygwfGFbcCsxODQ+PjJdKSsoZjw8Mik+PjJdLDApLGY9ZisxfDA7aWYoMCE9KDB8Yyl8MCE9KDB8YVtwKzIwMD4+Ml0pKXtmb3IoaXRbcCsyMzY+PjFdPTMy''@;'; + put 'put ''NzY3LGl0W3ArMjM4Pj4xXT0tMSxmPTAsQT0wfER0KGwpO0E7KSgwfChtPTB8YVsyMzIrKDB8YVtBKzE2Pj4yXSk+PjJdKSk+KDB8aXRbKHA9MjM4KyhjPTB8YVt3Pj4yXSl8MCk+PjFdKSYmKGl0W3A+PjFdPW0pLCgwfG0pPCgwfGl0WyhjPWMrMjM2fDApPj4xXSkmJihpdFtjPj4xXT1tLGY9''@;'; + put 'put ''QSksQT0wfHp0KGwsQSk7YVsyNjQrKDB8YVt3Pj4yXSk+PjJdPWZ9fWZ1bmN0aW9uIGN5KGwsYyxmKXtsfD0wLGZ8PTA7dmFyIHA9MDtwPTEyOCsoMHxhWzE2KyhjfD0wKT4+Ml0pfDA7ZTpkb3tpZighKDB8YVtwPj4yXSkpe2ZvcihhW3A+PjJdPWYscD0wfHcwKGwsYyk7cDspY3kobCwwfGFb''@;'; + put 'put ''KDI9PSgzJmFbcD4+Ml18MCk/cDpwKy00OHwwKSs0MD4+Ml0sZikscD0wfFMwKGwscCk7Zm9yKHA9MHxNZihsLGMpOzspe2lmKCFwKWJyZWFrIGU7Y3kobCwwfGFbKDM9PSgzJmFbcD4+Ml18MCk/cDpwKzQ4fDApKzQwPj4yXSxmKSxwPTB8SDMobCxwKX19fXdoaWxlKDApfWZ1bmN0aW9uIGZ5''@;'; + put 'put ''KGwsYyl7dmFyIG0sZj0wLHA9MDtyZXR1cm4gbT0wfEdyKGx8PTAsY3w9MCwxKSxhWzE3NisoMHxhWyhjPW0rMTZ8MCk+PjJdKT4+Ml09MCxwPTB8dnIoMjApLGFbMTcyKyhmPTB8YVtjPj4yXSk+PjJdPXAsYVtmKzE4ND4+Ml09MCxmPTB8dnIoMjApLGFbMTgwKyhjPTB8YVtjPj4yXSk+PjJd''@;'; + put 'put ''PWYscD1jKzE2OHwwLChmPTB8YVs0Njc0N10pPyhhW3A+PjJdPWYsYVsxNjQrKDB8YVtmKzE2Pj4yXSk+PjJdPW0pOihhW3A+PjJdPTAsYVsxOTIrKDB8YVtsKzE2Pj4yXSk+PjJdPW0pLGFbNDY3NDddPW0sYVtjKzE2ND4+Ml09MCwwfG19ZnVuY3Rpb24gaHkobCxjKXtsfD0wO3ZhciBBLGY9''@;'; + put 'put ''MCxwPTAsbT0wO2lmKCEoMHxmZVsocD0xNTcrKGY9MHxhWyhBPTE2KyhjfD0wKXwwKT4+Ml0pfDApPj4wXSkpe2ZvcihmZVtwPj4wXT0xLGZlW2YrMTU4Pj4wXT0xLGM9MHx3MChsLGMpO2M7KWY9MHxTMChsLGMpLDB8ZmVbMTU4KyhtPTB8YVsxNisocD0wfGFbKDI9PSgzJmFbYz4+Ml18MCk/''@;'; + put 'put ''YzpjKy00OHwwKSs0MD4+Ml0pPj4yXSk+PjBdPyhjVShsLGMpLGM9Zik6KDB8ZmVbbSsxNTc+PjBdfHxoeShsLHApLGM9Zik7ZmVbMTU4KygwfGFbQT4+Ml0pPj4wXT0wfX1mdW5jdGlvbiBjVShsLGMpe3ZhciBwLGY9MCxtPTA7bT0oY3w9MCktNDh8MCxwPWMrNDh8MCwoZj0wfEthKGx8PTAs''@;'; + put 'put ''MHxhWygyPT0oMHwoZj0zJmFbYz4+Ml0pKT9jOm0pKzQwPj4yXSwwfGFbKDM9PSgwfGYpP2M6cCkrNDA+PjJdLDAsMCkpfHwoZj0wfEthKGwsMHxhWygyPT0oMHwoZj0zJmFbYz4+Ml0pKT9jOm0pKzQwPj4yXSwwfGFbKDM9PSgwfGYpP2M6cCkrNDA+PjJdLDAsMSkpLG1IKGYsMHxoclsxNzAr''@;'; + put 'put ''KG09MHxhW2MrMTY+PjJdKT4+MV0sMHxhW20rMTU2Pj4yXSksb2kobCxjKX1mdW5jdGlvbiBtSChsLGMsZil7dmFyIHAsbTtmfD0wLGl0WyhwPTE3MCsobD0wfGFbMTYrKGx8PTApPj4yXSl8MCk+PjFdPSgwfChtPTB8aHJbcD4+MV0pKT4oMHwoY3w9MCkpP206YyxhWyhjPWwrMTU2fDApPj4y''@;'; + put 'put ''XT0oMHxhW2M+PjJdKStmfWZ1bmN0aW9uIHZIKGwpe3JldHVybiAyNTUmKDB8bmcoMHxMaShsfD0wLDg3MjYyKSwwKSl8MH1mdW5jdGlvbiBxMGUobCl7bHw9MDt2YXIgYyxmPTA7cmV0dXJuIDB8KDAhPSgwfChjPTB8YVs0NzE4OV0pKSYmMCE9KDB8KGY9MHxIbyhsLGMpKSkmJjAhPSgwfGZl''@;'; + put 'put ''W2Y+PjBdKSYmKDB8dDEoZikpPDwyND4+MjQ9PTA/MTowKX1mdW5jdGlvbiBlb2UobCl7dmFyIGMsZj0wO3JldHVybigwfChjPTB8YVsyMTIrKDB8YVsxNisoMHxhWygzPT0oMHwoZj0zJmFbKGx8PTApPj4yXSkpP2w6bCs0OHwwKSs0MD4+Ml0pPj4yXSk+PjJdKSk9PSgwfChsPTB8YVsyMTIr''@;'; + put 'put ''KDB8YVsxNisoMHxhWygyPT0oMHxmKT9sOmwrLTQ4fDApKzQwPj4yXSk+PjJdKT4+Ml0pKT8xOihmPTB8ZnVuY3Rpb24gdG9lKGwsYyl7bHw9MCxjfD0wO3ZhciBmPTAscD0wLG09MDtlOmZvcig7Oyl7Zm9yKHA9bCsxNnwwOzspe2lmKCgwfGwpPT0oMHxjKSlicmVhayBlO2lmKCgwfGFbMjA0''@;'; + put 'put ''KyhtPTB8YVtwPj4yXSk+PjJdKT49KDB8YVsyMDQrKGY9MHxhW2MrMTY+PjJdKT4+Ml0pKWJyZWFrO2M9MHxhW2YrMjAwPj4yXX1sPTB8YVttKzIwMD4+Ml19cmV0dXJuIDB8bH0oYyxsKSwxJigoMHxmKT09KDB8Yyl8KDB8Zik9PSgwfGwpKXwwKX1mdW5jdGlvbiBmVShsLGMsZixwKXtwfD0w''@;'; + put 'put ''O3ZhciBBLGIsbT0wLHc9MDtiPWxlLGxlPWxlKzE2fDAsQT1iLChtPTB8S2EobHw9MCxjfD0wLGZ8PTAsMCwwKSl8fChtPTB8S2EobCxmLGMsMCwwKSl8fChtPTB8S2EobCxjLGYsMCwxKSk/dz00OihjPTB8dGkoYykscD0wfHRpKGYpLGFbQT4+Ml09YyxhW0ErND4+Ml09cCwkcigxLDg3Mjc5''@;'; + put 'put ''LEEpKSw0PT0oMHx3KSYmbUgobSwwfGhyWzE3MCsodz0wfGFbcCsxNj4+Ml0pPj4xXSwwfGFbdysxNTY+PjJdKSxsZT1ifWZ1bmN0aW9uIHhJKGwsYyxmLHApe2Z8PTAscHw9MDt2YXIgayxtPTAsQT0wLHc9MCxiPTAsTT0wO2ZvcihrPWxlLGxlPWxlKzExMnwwLHc9ayxBPWsrNHwwLG09MHxN''@;'; + put 'put ''ZihsfD0wLGN8PTApOzspe2lmKCFtKXtiPTY7YnJlYWt9aWYoMHwoTT0wfHcwKGwsMHxhWygzPT0oMyZhW20+PjJdfDApP206bSs0OHwwKSs0MD4+Ml0pKSYmKDB8YVsoMj09KDMmYVtNPj4yXXwwKT9NOk0rLTQ4fDApKzQwPj4yXSk9PSgwfGYpKWJyZWFrO209MHxIMyhsLG0pfTY9PSgwfGIp''@;'; + put 'put ''JiYoYVs0Njc0OF09MSsoTT0wfGFbNDY3NDhdKSxhW3c+PjJdPU0sb28oQSw4NzI3MCx3KSxNPTB8S2EobCxBPTB8ZnkobCxBKSxjLDAsMSksQT0wfEthKGwsQSxmLDAsMSksYVsoTT0xNTYrKDB8YVtNKzE2Pj4yXSl8MCk+PjJdPSgwfGFbTT4+Ml0pKygxZTMqKDB8YVsoYj0xNTYrKGY9MHxh''@;'; + put 'put ''W3ArMTY+PjJdKXwwKT4+Ml0pfDApLGl0Wyh3PTE3MCsoTT0wfGFbQSsxNj4+Ml0pfDApPj4xXT0wfGl0WzE3MCsoMHxhWygoMHxoclt3Pj4xXSk+KDB8aHJbZisxNzA+PjFdKT9BOnApKzE2Pj4yXSk+PjFdLGFbKE09TSsxNTZ8MCk+PjJdPSgwfGFbTT4+Ml0pKygwfGFbYj4+Ml0pKSxsZT1r''@;'; + put 'put ''fWZ1bmN0aW9uIHJvZShsLGMpe2FbMjAwKygwfGFbMTYrKGx8PTApPj4yXSk+PjJdPWN8PTAsYVUoYyxsKSxvVShjLGwpfWZ1bmN0aW9uIFRJKGwpe3ZhciBjPTAsZj0wO2Y9MHxEdChsfD0wKTtlOmRve2lmKGYpZm9yKGM9MHxKaChmKTs7KXtpZighKGY9MHx6dChsLGYpKSlicmVhayBlO0FI''@;'; + put 'put ''KGMsZil9ZWxzZSBjPTB9d2hpbGUoMCk7cmV0dXJuIDB8Y31mdW5jdGlvbiBBSChsLGMpe3JldHVybiBsfD0wLChjfD0wKSYmKGw9MHxKaChsKSxhWzE1MisoMHxhWzE2KygwfEpoKGMpKT4+Ml0pPj4yXT1sKSwwfGx9ZnVuY3Rpb24geUgobCl7dmFyIE0sRCxHLGM9MCxmPTAscD0wLG09MCxB''@;'; + put 'put ''PTAsdz0wLGI9MCxrPTAsUj0wO0c9bGUsbGU9bGUrMjQwfDAsTT1HKzEyMHwwLEQ9RyxhWzQ3MTkzXT0wfHNpKGx8PTAsMiw4NzQxMiwwKSxrPTB8c2kobCwyLDg3NDIxLDApLGFbNDcxOTRdPWs7ZTpkb3tpZigwIT0oMHxrKXwwIT0oMHxhWzQ3MTkzXSkpZm9yKGs9MHxEdChsKTs7KXtpZigh''@;'; + put 'put ''aylicmVhayBlO2ZvcihiPTAsYz0wLHc9MHxTcyhsLGspOzspe2lmKCF3KXtwPTA7YnJlYWt9cD0wfGFbKDI9PSgwfChtPTMmKGY9MHxhW3c+PjJdKSkpP3c6dystNDh8MCkrNDA+PjJdLEE9dys0OHwwO3Q6ZG97aWYoKDB8cCkhPSgwfGFbKDM9PSgwfG0pP3c6QSkrNDA+PjJdKSl7bT0wfGFb''@;'; + put 'put ''NDcxOTNdO2Rve2lmKCgwfHApPT0oMHxrKSYwIT0oMHxtKSl7aWYocD0wfEhvKHcsbSksMHxmZVtwPj4wXSl7Zj1iLGM9MHx3SChNLGMsayx3LHApO2JyZWFrIHR9Zj0wfGFbdz4+Ml07YnJlYWt9fXdoaWxlKDApO2Y9MHwocD0wfGFbNDcxOTRdKSYmKDB8YVsoMz09KDMmZnwwKT93OkEpKzQw''@;'; + put 'put ''Pj4yXSk9PSgwfGspJiYoUj0wfEhvKHcscCksMCE9KDB8ZmVbUj4+MF0pKT8wfHdIKEQsYixrLHcsUik6Yn1lbHNlIGY9Yn13aGlsZSgwKTtiPWYsdz0wfE5zKGwsdyxrKX1mb3IoOzspe2lmKCgwfHApPj0oMHxjKSl7Zj0wO2JyZWFrfWY9TSsoMjQqcHwwKSs0fDAsKDB8YVtNKygyNCpwfDAp''@;'; + put 'put ''Kzg+PjJdKT4xJiZiSChrLGYpLDB8KGY9MHxhW2Y+PjJdKSYmRnQoZikscD1wKzF8MH1mb3IoOyEoKDB8Zik+PSgwfGIpKTspYz1EKygyNCpmfDApKzR8MCwoMHxhW0QrKDI0KmZ8MCkrOD4+Ml0pPjEmJmJIKGssYyksMHwoYz0wfGFbYz4+Ml0pJiZGdChjKSxmPWYrMXwwO2s9MHx6dChsLGsp''@;'; + put 'put ''fX13aGlsZSgwKTtsZT1HfWZ1bmN0aW9uIHdIKGwsYyxmLHAsbSl7bHw9MCxjfD0wLGZ8PTAscHw9MCxtfD0wO3ZhciBrLE0sUixBPTAsdz0wLGI9MCxEPTAsRz0wLEs9MCxwZT0wO2ZvcihSPWxlLGxlPWxlKzE2fDAsYj1SLGs9UisxMnwwLE09Uis4fDAsRD0wOzspe2lmKCgwfEQpPj0oMHxj''@;'; + put 'put ''KSl7dz0xMDticmVha31pZigoMHxmZVsodz0wfGFbbCsoMjQqRHwwKT4+Ml0pPj4wXSk9PSgwfGZlW20+PjBdKSYmMD09KDB8WmkodyxtKSkpe3c9NTticmVha31EPUQrMXwwfWRve2lmKDU9PSgwfHcpKSh3PTB8YVsoYj1sKygyNCpEfDApKzR8MCk+PjJdKT8obT1HPWwrKDI0KkR8MCkrOHww''@;'; + put 'put ''LHc9MHxWMCh3LDgrKGFbRz4+Ml08PDIpfDApKToobT13PWwrKDI0KkR8MCkrOHwwLHc9MHxRbig4KyhhW3c+PjJdPDwyKXwwKSksYVtiPj4yXT13LGFbbT4+Ml09Rz0xKyhLPTB8YVttPj4yXSl8MCxhW3crKEs8PDIpPj4yXT1wLGFbKDB8YVtiPj4yXSkrKEc8PDIpPj4yXT0wLHc9MTM7ZWxz''@;'; + put 'put ''ZSBpZigxMD09KDB8dykpe2lmKCgwfGMpPjQpe0s9MHx0aShmKSxhW2I+PjJdPTUsYVtiKzQ+PjJdPUssJHIoMSw4NzQzMCxiKTticmVha31hWyhwZT1sKygyNCpEfDApKzh8MCk+PjJdPTAsYj0wfHZyKDgpLGFbKEs9bCsoMjQqRHwwKSs0fDApPj4yXT1iLGFbcGU+PjJdPXc9MSsoRz0wfGFb''@;'; + put 'put ''cGU+PjJdKXwwLGFbYisoRzw8Mik+PjJdPXAsYVsoMHxhW0s+PjJdKSsodzw8Mik+PjJdPTAsYVtsKygyNCpEfDApPj4yXT1tLGFbbCsoMjQqRHwwKSsxMj4+Ml09MCxfW2wrKDI0KkR8MCkrMTY+PjNdPTAsYz1jKzF8MCx3PTEzO2JyZWFrfX13aGlsZSgwKTtyZXR1cm4gMTM9PSgwfHcpJiYo''@;'; + put 'put ''REMocCxrLE0pLCh3PSgwfGFbKDI9PSgzJmFbcD4+Ml18MCk/cDpwKy00OHwwKSs0MD4+Ml0pPT0oMHxmKT8wfGFbTT4+Ml06MHxhW2s+PjJdKSYmKGFbKEs9bCsoMjQqRHwwKSsxMnwwKT4+Ml09MSsocGU9MHxhW0s+PjJdKSxBPXBlPzA6K2w3KHAsdyksX1tsKygyNCpEfDApKzE2Pj4zXT1B''@;'; + put 'put ''KSksbGU9UiwwfGN9ZnVuY3Rpb24gYkgobCxjKXt2YXIgZ2UsYmUsT2UsTGUsUmUsZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxLPTAscGU9MCxIZT0wO2ZvcihSZT1sZSxsZT1sZSs4MHwwLGdlPVJlKzY4fDAsYmU9UmUrNjR8MCxLPVJlLE09MHxhWyhPZT00''@;'; + put 'put ''KyhjfD0wKXwwKT4+Ml0sTGU9MTYrKGx8PTApfDAsQT0wLFI9MCxHPTA7ISgoMHxBKT49KDB8TSkpOykoMHwoZj0wfGFbKDI9PSgwfChtPTMmYVsocD0wfGFbKDB8YVtjPj4yXSkrKEE8PDIpPj4yXSk+PjJdKSk/cDpwKy00OHwwKSs0MD4+Ml0pKT09KDB8bCkmJihmPTB8YVsoMz09KDB8bSk/''@;'; + put 'put ''cDpwKzQ4fDApKzQwPj4yXSksQT1BKzF8MCxSPShiPStfWzE2KyhtPTB8YVtmKzE2Pj4yXSk+PjNdLStfWzE2KyhwZT0wfGFbTGU+PjJdKT4+M10pLyhEPStLeShiLGs9K19bbSsyND4+M10tK19bcGUrMjQ+PjNdKSkrUixHPWsvRCtHO2Zvcih3PStLeShSLEcpLGI9K19bMTYrKHBlPTB8YVtM''@;'; + put 'put ''ZT4+Ml0pPj4zXSxrPStfW3BlKzI0Pj4zXSxwZT0oSGU9K19bcGUrOTY+PjNdKyArX1twZSs4OD4+M10pPihEPStfW3BlKzgwPj4zXSkrICsoMHxhWzI1MisoMHxhWzE2KygwfGNyKGwpKT4+Ml0pPj4yXSksZj0wfGFbTGU+PjJdLHBlP0Q9K19bZis5Nj4+M10rICtfW2YrODg+PjNdOihEPStf''@;'; + put 'put ''W2YrODA+PjNdLEQrPSsoMHxhWzI1MisoMHxhWzE2KygwfGNyKGwpKT4+Ml0pPj4yXSksZj0wfGFbTGU+PjJdKSxIZT0rX1tmKzE2Pj4zXStEKihSL3cpLHc9K19bZisyND4+M10rRCooRy93KSxfW0s+PjNdPWIsX1soTT1LKzh8MCk+PjNdPWssX1tLKzE2Pj4zXT0uMzMzMzMzMzMzMzMzMzMz''@;'; + put 'put ''MyooSGUrMipiKSxfW0srMjQ+PjNdPS4zMzMzMzMzMzMzMzMzMzMzKih3KzIqayksX1tLKzMyPj4zXT0uMzMzMzMzMzMzMzMzMzMzMyooMipIZStiKSxfW0srNDA+PjNdPS4zMzMzMzMzMzMzMzMzMzMzKigyKncrayksX1tLKzQ4Pj4zXT1IZSxfW0srNTY+PjNdPXcsZnVuY3Rpb24gYWxlKGws''@;'; + put 'put ''Yyl7Y3w9MDt2YXIgZixwLG0sQSx3LGIsTSxrPTAsRD0wO009bGUsbGU9bGUrNDh8MCxmPU0rMTZ8MCxwPU0sbT1NKzMyfDAsMHwoYj0wfGFbOCsodz0wfGFbKEE9MTYrKGx8PTApfDApPj4yXSk+PjJdKSYmMHxhWzEyKygwfGFbKGs9Yis0fDApPj4yXSk+PjJdJiYoYVttPj4yXT1sLGFbbSs0''@;'; + put 'put ''Pj4yXT0wLEQ9K19bdys5Nj4+M10sX1twPj4zXT0rX1tjPj4zXS0rX1t3KzE2Pj4zXSxfW3ArOD4+M109K19bYys4Pj4zXS0rX1t3KzI0Pj4zXSxrPTB8YVsxMisoMHxhW2s+PjJdKT4+Ml0sYVtmPj4yXT1hW3A+PjJdLGFbZis0Pj4yXT1hW3ArND4+Ml0sYVtmKzg+PjJdPWFbcCs4Pj4yXSxh''@;'; + put 'put ''W2YrMTI+PjJdPWFbcCsxMj4+Ml0saz0wfEJpWzEyNyZrXShtLGYpLF9bOTYrKDB8YVtBPj4yXSk+PjNdPUQsZk4obSxsLGMsaykpLGxlPU19KGwsSyksYj0rKDB8fn4oKGI9K19bTT4+M10tK19bMjQrKHBlPTB8YVtMZT4+Ml0pPj4zXSkrKGI+PTA/LjU6LS41KSkpLHBlPTI1NSZ+figyNTYq''@;'; + put 'put ''KChIZT0rX1twZSs4OD4+M10pKyh3PSsoMHx+figodz0rX1tLPj4zXS0rX1twZSsxNj4+M10pKyh3Pj0wPy41Oi0uNSkpKSkpLygrX1twZSs5Nj4+M10rSGUpKSxLPTA7ISgoMHxLKT49KDB8YVtPZT4+Ml0pKTspe2ZvcihEQyhNPTB8YVsoMHxhW2M+PjJdKSsoSzw8Mik+PjJdLGdlLGJlKTtN''@;'; + put 'put ''Oyl7Zm9yKG09TTs7KXtpZighbSl7QT1NO2JyZWFrfUE9bSstNDh8MCwoMHxhWygyPT0oMyYoZj0wfGFbbT4+Ml0pfDApP206QSkrNDA+PjJdKT09KDB8bCkmJihfWzU2KyhmPTB8YVttKzE2Pj4yXSk+PjNdPXcsX1tmKzY0Pj4zXT1iLF9bZis3Mj4+M109MCxhW2YrODA+PjJdPTAsZmVbZis4''@;'; + put 'put ''ND4+MF09MSxmZVtmKzg1Pj4wXT0wLGZlW2YrODY+PjBdPTAsZmVbZis4Nz4+MF09MCxmZVtmKzg4Pj4wXT1wZSxmZVtmKzg5Pj4wXT0wLGFbZis5Mj4+Ml09MCxmPTB8YVttPj4yXSkscD1tKzE2fDAsKDB8YVsoMz09KDMmZnwwKT9tOm0rNDh8MCkrNDA+PjJdKT09KDB8bCkmJihfWzE2Kyhm''@;'; + put 'put ''PTB8YVtwPj4yXSk+PjNdPXcsX1tmKzI0Pj4zXT1iLF9bZiszMj4+M109MCxhW2YrNDA+PjJdPTAsZmVbZis0ND4+MF09MSxmZVtmKzQ1Pj4wXT0wLGZlW2YrNDY+PjBdPTAsZmVbZis0Nz4+MF09MCxmZVtmKzQ4Pj4wXT1wZSxmZVtmKzQ5Pj4wXT0wLGFbZis1Mj4+Ml09MCksbT0xPT0oMHxm''@;'; + put 'put ''ZVsxMTIrKDB8YVtwPj4yXSk+PjBdKSYmMT09KDB8ZmVbMTU2KyhmPTB8YVsxNisoMHxhWygyPT0oMyZhW20+PjJdfDApP206QSkrNDA+PjJdKT4+Ml0pPj4wXSkmJjE9PSgwfGFbZisxODQ+PjJdKT8wfGFbYVtmKzE4MD4+Ml0+PjJdOjB9Zm9yKDtBOykoMHxhWygyPT0oMyYoZj0wfGFbQT4+''@;'; + put 'put ''Ml0pfDApP0E6QSstNDh8MCkrNDA+PjJdKT09KDB8bCkmJihfWzU2KyhmPTB8YVtBKzE2Pj4yXSk+PjNdPXcsX1tmKzY0Pj4zXT1iLF9bZis3Mj4+M109MCxhW2YrODA+PjJdPTAsZmVbZis4ND4+MF09MSxmZVtmKzg1Pj4wXT0wLGZlW2YrODY+PjBdPTAsZmVbZis4Nz4+MF09MCxmZVtmKzg4''@;'; + put 'put ''Pj4wXT1wZSxmZVtmKzg5Pj4wXT0wLGFbZis5Mj4+Ml09MCxmPTB8YVtBPj4yXSkscD1BKzQ4fDAsbT1BKzE2fDAsKDB8YVsoMz09KDMmZnwwKT9BOnApKzQwPj4yXSk9PSgwfGwpJiYoX1sxNisoZj0wfGFbbT4+Ml0pPj4zXT13LF9bZisyND4+M109YixfW2YrMzI+PjNdPTAsYVtmKzQwPj4y''@;'; + put 'put ''XT0wLGZlW2YrNDQ+PjBdPTEsZmVbZis0NT4+MF09MCxmZVtmKzQ2Pj4wXT0wLGZlW2YrNDc+PjBdPTAsZmVbZis0OD4+MF09cGUsZmVbZis0OT4+MF09MCxhW2YrNTI+PjJdPTApLEE9MT09KDB8ZmVbMTEyKygwfGFbbT4+Ml0pPj4wXSkmJjE9PSgwfGZlWzE1NisoZj0wfGFbMTYrKDB8YVso''@;'; + put 'put ''Mz09KDMmYVtBPj4yXXwwKT9BOnApKzQwPj4yXSk+PjJdKT4+MF0pJiYxPT0oMHxhW2YrMTc2Pj4yXSk/MHxhW2FbZisxNzI+PjJdPj4yXTowO009MHxhWzE3MisoMHxhW00rMTY+PjJdKT4+Ml19Sz1LKzF8MH1mZVsxNDUrKDB8YVtMZT4+Ml0pPj4wXT0xLGxlPVJlfWZ1bmN0aW9uIElJKGwp''@;'; + put 'put ''e3ZhciBmLHAsYz0wO1UzKGx8PTApLGY9bCstNDh8MCxwPWwrNDh8MCwoYz0wfFU1KDB8YVsoMj09KDB8KGM9MyZhW2w+PjJdKSk/bDpmKSs0MD4+Ml0sMHxhWygzPT0oMHxjKT9sOnApKzQwPj4yXSkpP3o2KGwsYyk6SmMoMHxhWygyPT0oMHwoYz0zJmFbbD4+Ml0pKT9sOmYpKzQwPj4yXSww''@;'; + put 'put ''fGFbKDM9PSgwfGMpP2w6cCkrNDA+PjJdLGwpfWZ1bmN0aW9uIHBVKGwpe3ZhciBtLGM9MCxmPTAscD0wO2lmKCEoMHxmZVsobD0xNTcrKGM9MHxhWyhtPTE2KyhsfD0wKXwwKT4+Ml0pfDApPj4wXSkpe2ZvcihmZVtsPj4wXT0xLGZlW2MrMTU4Pj4wXT0xLGw9MDtwPTB8YVsoMHxhW2MrMTgw''@;'; + put 'put ''Pj4yXSkrKGw8PDIpPj4yXTspMHxmZVsxNTgrKGY9MHxhWzE2KyhjPTB8YVsoMj09KDMmYVtwPj4yXXwwKT9wOnArLTQ4fDApKzQwPj4yXSk+PjJdKT4+MF0/KElJKHApLGw9bCstMXwwKTowfGZlW2YrMTU3Pj4wXXx8cFUoYyksbD1sKzF8MCxjPTB8YVttPj4yXTtmZVtjKzE1OD4+MF09MH19''@;'; + put 'put ''ZnVuY3Rpb24gbVUobCl7dmFyIGM9MCxmPTAscD0wLG09MDtmb3IoZj0wfER0KGx8PTApO2Y7KXtmb3IocD0wfGFbMTc2KyhtPTB8YVtmKzE2Pj4yXSk+PjJdLG09bSsxNzJ8MCxjPTA7ISgoMHxjKT49KDB8cCkpOylmZVsxMTIrKDB8YVsxNisoMHxhWygwfGFbbT4+Ml0pKyhjPDwyKT4+Ml0p''@;'; + put 'put ''Pj4yXSk+PjBdPTAsYz1jKzF8MDtmPTB8enQobCxmKX19ZnVuY3Rpb24gdlUobCl7dmFyIG0sQSxjPTAsZj0wLHA9MCx3PTAsYj0wO2ZvcihESShsfD0wKSxjPSsoMHxBcigwfGFbMjUyKyhwPTB8YVtsKzE2Pj4yXSk+PjJdLChBPTB8YVs0Njc0OV0pLTF8MCkpLG09MHxhWzQ2NzUwXSxwPXAr''@;'; + put 'put ''MjQ4fDAsbD0wLGY9MDshKCgwfGwpPj0oMHxBKSk7KXc9K19bbSsoNDAqbHwwKSsyND4+M10rICsoMHxBcigwfGFbcD4+Ml0sMHxhW20rKDQwKmx8MCkrMTY+PjJdKSksYj0rX1ttKyg0MCpsfDApKzMyPj4zXStjLGw9bCsxfDAsYz1iLGY9Zjx3P3c6ZjtyZXR1cm4rZi9jfWZ1bmN0aW9uIHVv''@;'; + put 'put ''ZShsKXt2YXIgYz0wO2ZvcihhWzQ2NzUzXT0wfHZyKCgwfEdvKGx8PTApKTw8MiksYz0wOyEoKDB8Yyk+PSgwfEdvKGwpKSk7KWFbKDB8YVs0Njc1M10pKyhjPDwyKT4+Ml09YyxjPWMrMXwwO0RJKGwpLGZ1bmN0aW9uIEFVKGwpe3gxKDB8YVs0Njc1M10sMHxHbyhsfD0wKSw0LDYzKX0obCks''@;'; + put 'put ''ZnVuY3Rpb24geVUobCl7bHw9MDt2YXIgYz0wLGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAsSz0wLHBlPTAsZ2U9MDtmb3Iodz0wfGFbNDY3NDldLGI9MHxhWzQ2NzUwXSxtPTB8YVs0Njc1M10sQT0wOzspe2lmKCgwfEEpPj0oMHx3KSl7Zj0wLGM9MDticmVh''@;'; + put 'put ''a31pZihwPUErMXwwLCEoKDB8YVtiKyg0MCooZj0wfGFbbSsoQTw8Mik+PjJdKXwwKSsxMj4+Ml0pPDIpKXtrPTQ7YnJlYWt9QT1wfTQ9PSgwfGspJiYoYz0oMHx3KT4oMHxwKT8rX1tiKyg0MCooMHxhW20rKHA8PDIpPj4yXSl8MCkrMjQ+PjNdOjApO2U6ZG97aWYoKDB8QSkhPSgwfHcpKWZv''@;'; + put 'put ''cih4MSgwfGFbYisoNDAqZnwwKSs0Pj4yXSwwfGFbYisoNDAqZnwwKSsxMj4+Ml0sNCw2NCksbT0wfGFbNDY3NTBdLHBlPStfW20rKDQwKmZ8MCkrMjQ+PjNdLHBlPSEoYzw9LjI1KnBlKSYhKGM+PS43NSpwZSk/YzouNSpwZSxnZT0wfGFbbSsoNDAqZnwwKSsxMj4+Ml0sSz1sKzE2fDAsRD0w''@;'; + put 'put ''LFI9MCxjPTAscD0wLEc9MDs7KXtpZigoMHxHKT49KHArZ2V8MCkpYnJlYWsgZTtkb3tpZigwfGFbKDB8YVttKyg0MCpmfDApKzg+PjJdKSsoRzw8Mik+PjJdKXc9RCxBPVIscD1wKzF8MDtlbHNle2lmKCEoKEE9MCE9KDB8UikpJiEoKE09NzIqK19bKGw9OCsoaz0wfGFbKDB8YVttKyg0MCpm''@;'; + put 'put ''fDApKzQ+PjJdKSsoRzw8Mik+PjJdKXwwKT4+M10rYysoYz4wPysoMHxhWzI0OCsoMHxhW0s+PjJdKT4+Ml0pOjApKTw9cGUpKSl7dz1BP0Q6ayxBPUE/UjoxLGM9TTticmVha31mb3Iodz1EKzR8MCxiPWsrNHwwLEE9MDsoMHxBKTwoMHxhW3c+PjJdKTspe2ZvcihtPTA7ISgoMHxtKT49KDB8''@;'; + put 'put ''YVtiPj4yXSkpOylmZVsxMTIrKDB8YVsxNisoMHxKYygwfGFbKDB8YVtEPj4yXSkrKEE8PDIpPj4yXSwwfGFbKDB8YVtrPj4yXSkrKG08PDIpPj4yXSwwKSk+PjJdKT4+MF09MSxtPW0rMXwwO0E9QSsxfDB9YVsoMHxhWyhtPTB8YVs0Njc1MF0pKyg0MCpmfDApKzg+PjJdKSsoRzw8Mik+PjJd''@;'; + put 'put ''PTEsYVsodz1tKyg0MCpmfDApKzEyfDApPj4yXT0oMHxhW3c+PjJdKS0xLGFbKHc9bSsoNDAqZnwwKSsxNnwwKT4+Ml09MSsoMHxhW3c+PjJdKSxfWyh3PW0rKDQwKmZ8MCkrMjR8MCk+PjNdPS03MiorX1tsPj4zXS0rKDB8YVsyNDgrKDB8YVtLPj4yXSk+PjJdKSsgK19bdz4+M10sdz1ELEE9''@;'; + put 'put ''Un19d2hpbGUoMCk7RD13LFI9QSxHPUcrMXwwfX13aGlsZSgwKX0obCl9ZnVuY3Rpb24gREkobCl7bHw9MDt2YXIgYz0wLGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTA7aWYoYVs0Njc0OV09MCwwfChjPTB8YVs0Njc1MF0pKXtmb3IocD0wOyEoKDB8cCk+PSgwfGFbNDY3NTFdKSk7''@;'; + put 'put ''KShmPTB8YVtjKyg0MCpwfDApKzQ+PjJdKSYmKEZ0KGYpLGM9MHxhWzQ2NzUwXSksKGY9MHxhW2MrKDQwKnB8MCkrOD4+Ml0pJiYoRnQoZiksYz0wfGFbNDY3NTBdKSxwPXArMXwwO0Z0KGMpfWZvcihhWzQ2NzUwXT0wfHZyKDQwKigwfGFbNDY3NTFdKXwwKSxjPTA7ISgoMHxjKT49KDB8KGY9''@;'; + put 'put ''MHxhWzQ2NzUxXSkpKTspaz0wfHZyKGY8PDIpLGFbKDB8YVs0Njc1MF0pKyg0MCpjfDApKzQ+PjJdPWssaz0wfHZyKGFbNDY3NTFdPDwyKSxhWyhNPTB8YVs0Njc1MF0pKyg0MCpjfDApKzg+PjJdPWssYVtNKyg0MCpjfDApPj4yXT1jLGFbTSsoNDAqY3wwKSsxMj4+Ml09MCxhW00rKDQwKmN8''@;'; + put 'put ''MCkrMTY+PjJdPTAsYVsoTT1NKyg0MCpjfDApKzI0fDApPj4yXT0wLGFbTSs0Pj4yXT0wLGFbTSs4Pj4yXT0wLGFbTSsxMj4+Ml09MCxjPWMrMXwwO2ZvcihwPTB8RHQobCk7cDspe2ZvcihmPTB8dzAobCxwKTtmOyl7Zm9yKG09ZistNDh8MCxBPTB8YVs0Njc1MF0sYz0wfGFbMjMyKygwfGFb''@;'; + put 'put ''MTYrKDB8YVsoMz09KDMmKHc9MHxhW2Y+PjJdKXwwKT9mOmYrNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXTshKCgwfChjPWMrMXwwKSk+PSgwfGFbMjMyKygwfGFbMTYrKDB8YVsoMj09KDMmd3wwKT9mOm0pKzQwPj4yXSk+PjJdKT4+Ml0pKTspYVsodz1BKyg0MCpjfDApKzE2fDApPj4yXT0xKygw''@;'; + put 'put ''fGFbdz4+Ml0pLHc9MHxhW2Y+PjJdO2Y9MHxTMChsLGYpfXA9MHx6dChsLHApfWZvcih3PTB8YVs0Njc1MV0saz0wfGFbNDY3NTJdLE09MHxhWzQ2NzUwXSxmPWwrMTZ8MCxjPTA7ISgoMHxjKT49KDB8dykpOykoMHwobT0wfGFbMjMyKygwfGFbKHA9MTYrKDB8YVthW2srKDI0KmN8MCk+PjJd''@;'; + put 'put ''Pj4yXSl8MCk+PjJdKT4+Ml0pKT49KDB8YVs0Njc0OV0pJiYoYVs0Njc0OV09bSsxKSxfWyhBPU0rKDQwKm18MCkrMjR8MCk+PjNdPShiPStfW0E+PjNdKSs3MiorX1trKygyNCpjfDApKzg+PjNdKyhiPjA/KygwfGFbMjQ4KygwfGFbZj4+Ml0pPj4yXSk6MCksK19bKEE9TSsoNDAqbXwwKSsz''@;'; + put 'put ''MnwwKT4+M108KGI9NzIqK19baysoMjQqY3wwKSsxNj4+M10pJiYoX1tBPj4zXT1iKSxhWygwfGFbTSsoNDAqbXwwKSs0Pj4yXSkrKGFbTSsoNDAqbXwwKSsxMj4+Ml08PDIpPj4yXT1rKygyNCpjfDApLGFbKGw9TSsoNDAqKDB8YVsyMzIrKDB8YVtwPj4yXSk+PjJdKXwwKSsxMnwwKT4+Ml09''@;'; + put 'put ''MSsoMHxhW2w+PjJdKSxjPWMrMXwwfWZ1bmN0aW9uIHdVKGwpe3ZhciBtLGM9MCxmPTAscD0wLEE9MDtmb3IobT00KyhsfD0wKXwwLGY9MCxjPTA7ISgoMHxmKT49KDB8YVttPj4yXSkpOyl7Zm9yKHA9MHx3MChBPTB8Y3IocD0wfGFbKDB8YVtsPj4yXSkrKGY8PDIpPj4yXSkscCk7cDspcD0w''@;'; + put 'put ''fFMwKEEscCksYz1jKzF8MDtmPWYrMXwwfXJldHVybiAwfGN9ZnVuY3Rpb24gYlUobCl7dmFyIGM9MDtmb3IoYz0wfER0KGx8PTApO2M7KWFbMjE2KygwfGFbYysxNj4+Ml0pPj4yXT0wLGM9MHx6dChsLGMpfWZ1bmN0aW9uIGtIKGwpe2x8PTA7dmFyIGMsZj0wO3JldHVybiAwfCgwIT0oMHwo''@;'; + put 'put ''Yz0wfGFbNDcxODldKSkmJjAhPSgwfChmPTB8SG8obCxjKSkpJiYwIT0oMHxmZVtmPj4wXSkmJigwfHQxKGYpKTw8MjQ+PjI0PT0wPzE6MCl9ZnVuY3Rpb24gTEkobCl7dmFyIGM9MCxmPTAscD0wLG09MCxBPTAsdz0wLGI9MDtmb3IoRUgobHw9MCksYz0wfER0KGwpO2M7KXtmb3IoZj0wfHcw''@;'; + put 'put ''KGwsYyk7Zjspe2Rve2lmKDA9PSgwfGFbMTcyKygwfGFbZisxNj4+Ml0pPj4yXSkmJjA9PSgwfGtIKGYpKSYmKHA9Zis0OHwwLEE9ZistNDh8MCwoMHwobT0wfGcxKDB8YVsoMz09KDMmYVtmPj4yXXwwKT9mOnApKzQwPj4yXSkpKSE9KDB8KHc9MHxnMSgwfGFbKDI9PSgzJmFbZj4+Ml18MCk/''@;'; + put 'put ''ZjpBKSs0MD4+Ml0pKSkpKXtpZigwPT0oMHxhWzIxMisoMHxhW20rMTY+PjJdKT4+Ml0pJiYwPT0oMHxhWzIxMisoMHxhW3crMTY+PjJdKT4+Ml0pKXtpZihiPTB8VTUobSx3KSl7ejYoZixiKTticmVha31KYyhtLHcsZik7YnJlYWt9U0gobCwwfGFbKDM9PSgwfChiPTMmYVtmPj4yXSkpP2Y6''@;'; + put 'put ''cCkrNDA+PjJdLDB8YVsoMj09KDB8Yik/ZjpBKSs0MD4+Ml0sZil9fXdoaWxlKDApO2Y9MHxTMChsLGYpfWM9MHx6dChsLGMpfX1mdW5jdGlvbiBTSChsLGMsZixwKXtjfD0wLGZ8PTA7dmFyIG09MCxBPTAsdz0wLGI9MDtiPShBPTB8YVsyMTIrKG09MHxhWzE2KygwfGFbKDM9PSgwfCh3PTMm''@;'; + put 'put ''YVsocHw9MCk+PjJdKSk/cDpwKzQ4fDApKzQwPj4yXSk+PjJdKT4+Ml0pPygwfGFbbSsyMzI+PjJdKS0oMHxhWzIzMisoMHxhWzE2KygwfGFbMjY0KygwfGFbQSsxNj4+Ml0pPj4yXSk+PjJdKT4+Ml0pfDA6MCxiPShtPShBPTB8YVsyMTIrKG09MHxhWzE2KygwfGFbKDI9PSgwfHcpP3A6cCst''@;'; + put 'put ''NDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSk/KDB8YVsyMzIrKDB8YVsxNisoMHxhWzI2NCsoMHxhW0ErMTY+PjJdKT4+Ml0pPj4yXSk+PjJdKS0oMHxhW20rMjMyPj4yXSl8MDowKStiKygwfGhyWzE3MCsoMHxhWyh3PXArMTZ8MCk+PjJdKT4+MV0pfDAsbD0wfFVoKGx8PTApLGZlWzE1NisoMHxh''@;'; + put 'put ''W2wrMTY+PjJdKT4+MF09MixBPTB8ZzEoYyksYz0wfGcxKGYpLGY9MHxGdShsLEEsKDB8Yik+MD8wOisoMC1ifDApLDEwKigwfGFbMTU2KygwfGFbdz4+Ml0pPj4yXSl8MCksYVsxMTYrKDB8YVsxNisoMHxGdShsLGMsKygwfCgoMHxiKT4wP2I6MCkpLDB8YVsxNTYrKDB8YVt3Pj4yXSk+PjJd''@;'; + put 'put ''KSk+PjJdKT4+Ml09cCxhWzExNisoMHxhW2YrMTY+PjJdKT4+Ml09cH1mdW5jdGlvbiBvayhsLGMsZixwKXtsfD0wLGZ8PTAscHw9MDt2YXIgbSxBPTAsdz0wLGI9MDt3PTB8YVsyMzIrKDB8YVsxNisoMHxhWygoMHxhWzIzMisoMHxhWzE2KygwfGFbKEE9Mz09KDB8KHc9MyZhWyhjfD0wKT4+''@;'; + put 'put ''Ml0pKT9jOmMrNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSk+KDB8YVsyMzIrKDB8YVsxNisoMHxhWyh3PTI9PSgwfHcpP2M6YystNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSk/QTp3KSs0MD4+Ml0pPj4yXSk+PjJdLDB8YVsoYz0xNzIrKDB8YVsoQT1jKzE2fDApPj4yXSl8MCk+PjJdJiZQcig4NzU5''@;'; + put 'put ''Myw4NzYxNSwxNDgsODc2MjQpLGFbYz4+Ml09ZixtPTA9PSgwfHApO2Rve2lmKGM9MHxhW0E+PjJdLG0/cD0wfGFbZisxNj4+Ml06aXRbKGI9MTY4KyhwPTB8YVtmKzE2Pj4yXSl8MCk+PjFdPSgwfGhyW2I+PjFdKSsoMHxocltjKzE2OD4+MV0pLGl0WyhiPXArMTU0fDApPj4xXT0oMHxoclti''@;'; + put 'put ''Pj4xXSkrKDB8aHJbYysxNTQ+PjFdKSxhWyhwPXArMTU2fDApPj4yXT0oMHxhW3A+PjJdKSsoMHxhW2MrMTU2Pj4yXSksYz1mKy00OHwwLCgwfGFbMjMyKygwfGFbMTYrKHA9MHxhWygyPT0oMyZhW2Y+PjJdfDApP2Y6YykrNDA+PjJdKT4+Ml0pPj4yXSk9PSgwfHcpKWJyZWFrO19VKGwscCks''@;'; + put 'put ''Zj0wfGFbYVsxODArKDB8YVsxNisoMHxhWygyPT0oMyZhW2Y+PjJdfDApP2Y6YykrNDA+PjJdKT4+Ml0pPj4yXT4+Ml19d2hpbGUoMCE9KDB8ZikpfWZ1bmN0aW9uIF9VKGwsYyl7dmFyIGY7Zj0rKDB8KDB8YVsyNDgrKDB8YVsxNisobHw9MCk+PjJdKT4+Ml0pLzIpLF9bKGw9ODgrKGM9MHxh''@;'; + put 'put ''WzE2KyhjfD0wKT4+Ml0pfDApPj4zXT0rX1tsPj4zXStmLF9bKGM9Yys5NnwwKT4+M109K19bYz4+M10rZn1mdW5jdGlvbiBhayhsLGMpe3ZhciBmPTAscD0wO3JldHVybiAwfCgwIT0oMHwobHw9MCkpJjAhPSgwfChjfD0wKSkmJigwfGFbKDM9PSgwfChwPTMmYVtsPj4yXSkpP2w6bCs0OHww''@;'; + put 'put ''KSs0MD4+Ml0pPT0oMHxhWygzPT0oMHwoZj0zJmFbYz4+Ml0pKT9jOmMrNDh8MCkrNDA+PjJdKSYmKDB8YVsoMj09KDB8cCk/bDpsKy00OHwwKSs0MD4+Ml0pPT0oMHxhWygyPT0oMHxmKT9jOmMrLTQ4fDApKzQwPj4yXSkmJigwfGFbOTYrKDB8YVtsKzE2Pj4yXSk+PjJdKT09KDB8YVs5Niso''@;'; + put 'put ''MHxhW2MrMTY+PjJdKT4+Ml0pJiYwIT0oMHxyayhsLGMpKT8xOjApfWZ1bmN0aW9uIENVKGwpe3ZhciBjPTAsZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxLPTAscGU9MCxnZT0wO2ZvcihhWzE5MisoYz0wfGFbKGdlPTE2KyhsfD0wKXwwKT4+Ml0pPj4yXT0w''@;'; + put 'put ''LGFbYysyMzI+PjJdPTAsRUgobCksYz0xOyEoKDB8Yyk+KDB8YVsxODArKGY9MHxhW2dlPj4yXSk+PjJdKSk7KUVVKGwsMHxhWygwfGFbZisxODQ+PjJdKSsoYzw8Mik+PjJdKSxjPWMrMXwwO2ZvcihBPTB8RHQobCk7QTspe2ZvcihtPTB8dzAobCxBKTttOykocD0wfGZlWyhmPTE2MCsoMHxh''@;'; + put 'put ''WzE2KygwfGFbKDI9PSgzJihjPTB8YVttPj4yXSl8MCk/bTptKy00OHwwKSs0MD4+Ml0pPj4yXSl8MCk+PjBdKTw8MjQ+PjI0PDMmJihmZVtmPj4wXT1wKzE8PDI0Pj4yNCxjPTB8YVttPj4yXSksKGY9MHxmZVsoYz0xNjArKDB8YVsxNisoMHxhWygzPT0oMyZjfDApP206bSs0OHwwKSs0MD4+''@;'; + put 'put ''Ml0pPj4yXSl8MCk+PjBdKTw8MjQ+PjI0PDMmJihmZVtjPj4wXT1mKzE8PDI0Pj4yNCksbT0wfFMwKGwsbSk7QT0wfHp0KGwsQSl9Zm9yKEQ9MHxEdChsKTtEOyl7Zm9yKDA9PSgwfGFbMjEyKygwfGFbRCsxNj4+Ml0pPj4yXSkmJigwfEQpPT0oMHxnMShEKSkmJihzSShsLEQpLGFbKE09MjMy''@;'; + put 'put ''KygwfGFbZ2U+PjJdKXwwKT4+Ml09MSsoMHxhW00+PjJdKSksYz0wLE09MHx3MChsLEQpO007KXtBPTB8YVsoaz1NKzE2fDApPj4yXTtlOmRve2lmKDB8YVtBKzE3Mj4+Ml0pYz1NO2Vsc2V7aWYoMHxob2UoTSkpe2lmKCEoMHxhayhjLE0pKSl7ZG9lKGwsTSksYz1NO2JyZWFrfWlmKDB8KGY9''@;'; + put 'put ''MHxhWzE3MisoMHxhW2MrMTY+PjJdKT4+Ml0pKXtvayhsLE0sZiwwKSwkZChNKTticmVha31pZigoMHxhWzIzMisoMHxhWzE2KygwfGFbKDM9PSgwfChrPTMmYVtNPj4yXSkpP006TSs0OHwwKSs0MD4+Ml0pPj4yXSk+PjJdKSE9KDB8YVsyMzIrKDB8YVsxNisoMHxhWygyPT0oMHxrKT9NOk0r''@;'; + put 'put ''LTQ4fDApKzQwPj4yXSk+PjJdKT4+Ml0pKWJyZWFrO3o2KE0sYyksJGQoTSk7YnJlYWt9aWYoYylpZihmPU0rNDh8MCwoMHwocD0wfGFbKDM9PSgwfCh3PTMmYVtNPj4yXSkpP006ZikrNDA+PjJdKSk9PSgwfGFbKDM9PSgwfChtPTMmYVtjPj4yXSkpP2M6Yys0OHwwKSs0MD4+Ml0pJiYoMHwo''@;'; + put 'put ''Uj0wfGFbKDI9PSgwfHcpP006TSstNDh8MCkrNDA+PjJdKSk9PSgwfGFbKDI9PSgwfG0pP2M6YystNDh8MCkrNDA+PjJdKSl7aWYoKDB8YVsyMzIrKDB8YVtwKzE2Pj4yXSk+PjJdKT09KDB8YVsyMzIrKDB8YVtSKzE2Pj4yXSk+PjJdKSl7ejYoTSxjKSwkZChNKTticmVha31pZigwPT0oMHxh''@;'; + put 'put ''W0ErOTY+PjJdKSYmMD09KDB8YVs5NisoMHxhWyhHPWMrMTZ8MCk+PjJdKT4+Ml0pJiYwIT0oMHxyayhNLGMpKSl7aWYoMHxmZVsxOTQ5NTRdKXtmZVsxMTIrKDB8YVtrPj4yXSk+PjBdPTY7YnJlYWt9b2sobCxNLDB8YVsxNzIrKDB8YVtHPj4yXSk+PjJdLDEpLCRkKE0pO2JyZWFrfXc9Zn1l''@;'; + put 'put ''bHNlIHc9ZjtlbHNlIHc9TSs0OHwwO2lmKGI9TSstNDh8MCwoMHwoZj0wfGFbKDM9PSgwfChBPTMmYVtNPj4yXSkpP006dykrNDA+PjJdKSk9PSgwfGFbKDI9PSgwfEEpP006YikrNDA+PjJdKSl7JGQoTSksYz1NO2JyZWFrfWlmKGY9MHxnMShmKSxwPTB8ZzEoMHxhWygyPT0oMyZhW00+PjJd''@;'; + put 'put ''fDApP006YikrNDA+PjJdKSwoMHxhWygzPT0oMHwoQT0zJmFbTT4+Ml0pKT9NOncpKzQwPj4yXSk9PSgwfGYpJiYoMHxhWygyPT0oMHxBKT9NOmIpKzQwPj4yXSk9PSgwfHApKXtpZigoMHwobT0wfGFbMjMyKygwfGFbZisxNj4+Ml0pPj4yXSkpPT0oMHwoQT0wfGFbMjMyKygwfGFbcCsxNj4+''@;'; + put 'put ''Ml0pPj4yXSkpKXtjSShsLE0pLGM9TTticmVha31pZigoMHxBKT4oMHxtKSl7T0kobCxmLHAsTSksYz1NO2JyZWFrfWY9MHxLYShsLHAsZiwwLDApO2Rve2lmKDB8ZiYmKDB8KHBlPTB8YVsoMj09KDB8KEs9MyZhW2Y+PjJdKSk/ZjpmKy00OHwwKSs0MD4+Ml0pKSE9KDB8YVsoMj09KDMmYVtN''@;'; + put 'put ''Pj4yXXwwKT9NOmIpKzQwPj4yXSkmJigwfGFbMTcyKygwfGFbKHA9ZisxNnwwKT4+Ml0pPj4yXXx8T0kobCwwfGFbKDM9PSgwfEspP2Y6Zis0OHwwKSs0MD4+Ml0scGUsZiksMD09KDB8YVs5NisoMHxhW2s+PjJdKT4+Ml0pJiYwPT0oMHxhWzk2KygwfGFbcD4+Ml0pPj4yXSkpKXtpZighKDB8''@;'; + put 'put ''cmsoTSxmKSkpYnJlYWs7aWYoMHxmZVsxOTQ5NTRdKXtmZVsxMTIrKDB8YVtrPj4yXSk+PjBdPTYsZmVbMTUzKygwfGFbcD4+Ml0pPj4wXT0xO2JyZWFrIGV9JGQoTSksb2sobCxNLDB8YVsxNzIrKDB8YVtwPj4yXSk+PjJdLDEpO2JyZWFrIGV9fXdoaWxlKDApO09JKGwsMHxhWygyPT0oMHwo''@;'; + put 'put ''Yz0zJmFbTT4+Ml0pKT9NOmIpKzQwPj4yXSwwfGFbKDM9PSgwfGMpP006dykrNDA+PjJdLE0pLGM9TX19fXdoaWxlKDApO009MHxTMChsLE0pfUQ9MHx6dChsLEQpfSgwfEFhKGwpKSE9KDB8bCkmJihjPShjPTB8YVsyMTYrKDB8YVtnZT4+Ml0pPj4yXSk/MHxWMChjLDQpOjB8UW4oNCksYVsy''@;'; + put 'put ''MTYrKGdlPTB8YVtnZT4+Ml0pPj4yXT1jLGFbYz4+Ml09YVtnZSsxOTI+PjJdKX1mdW5jdGlvbiBob2UobCl7dmFyIGM7cmV0dXJuIDB8KDc9PSgwfGZlWzE1OSsoMHxhWzE2KygwfGFbKDM9PSgwfChjPTMmYVsobHw9MCk+PjJdKSk/bDpsKzQ4fDApKzQwPj4yXSk+PjJdKT4+MF0pPzE6Nz09''@;'; + put 'put ''KDB8ZmVbMTU5KygwfGFbMTYrKDB8YVsoMj09KDB8Yyk/bDpsKy00OHwwKSs0MD4+Ml0pPj4yXSk+PjBdKSYxKX1mdW5jdGlvbiBkb2UobCxjKXtsfD0wO3ZhciBmPTAscD0wLG09MCxBPTAsdz0wO3A9MHxabCgwfGFbKDM9PSgzJmFbKGN8PTApPj4yXXwwKT9jOmMrNDh8MCkrNDA+PjJdKSxt''@;'; + put 'put ''PTB8WmwoMHxhWygyPT0oMyZhW2M+PjJdfDApP2M6YystNDh8MCkrNDA+PjJdKSxmPSh3PSgwfGFbMjMyKygwfGFbcCsxNj4+Ml0pPj4yXSk+KDB8YVsyMzIrKDB8YVttKzE2Pj4yXSk+PjJdKSk/cDptLG09KHA9dz9tOnApKzE2fDAsdz1mKzE2fDA7ZTpkb3tpZigoMHxhWzIxMisoMHxhW20+''@;'; + put 'put ''PjJdKT4+Ml0pIT0oMHxhWzIxMisoMHxhW3c+PjJdKT4+Ml0pKXtpZigwfChBPTB8VTUocCxmKSkpe29rKGwsYyxBLDEpO2JyZWFrfWlmKCgwfGFbMjMyKygwfGFbbT4+Ml0pPj4yXSkhPSgwfGFbMjMyKygwfGFbdz4+Ml0pPj4yXSkpZm9yKE9JKGwscCxmLGMpLGY9MTcyKygwfGFbYysxNj4+''@;'; + put 'put ''Ml0pfDA7Oyl7aWYoIShmPTB8YVtmPj4yXSl8fChwPWYrLTQ4fDAsKDB8YVsyMzIrKDB8YVsxNisoMHxhWygyPT0oMyZhW2Y+PjJdfDApP2Y6cCkrNDA+PjJdKT4+Ml0pPj4yXSk+KDB8YVsyMzIrKDB8YVt3Pj4yXSk+PjJdKSkpYnJlYWsgZTtmZVsxMTIrKDB8YVtmKzE2Pj4yXSk+PjBdPTUs''@;'; + put 'put ''Zj0wfGFbMTgwKygwfGFbMTYrKDB8YVsoMj09KDMmYVtmPj4yXXwwKT9mOnApKzQwPj4yXSk+PjJdKT4+Ml19fX13aGlsZSgwKX1mdW5jdGlvbiBPSShsLGMsZixwKXtsfD0wLGN8PTAsZnw9MDt2YXIgYixNLGssbT0wLEE9MCx3PTA7Zm9yKGs9MHxhWzk2KyhtPTB8YVsoTT0xNisocHw9MCl8''@;'; + put 'put ''MCk+PjJdKT4+Ml0/KCgwfGFbMjMyKygwfGFbZisxNj4+Ml0pPj4yXSkrKDB8YVsyMzIrKDB8YVtjKzE2Pj4yXSk+PjJdKXwwKS8yfDA6LTEsMHxhW20rMTcyPj4yXSYmUHIoODc2MzYsODc2MTUsODksODc2NjEpLGI9ZisxNnwwLHc9MHxhWzIzMisoMHxhW2MrMTY+PjJdKT4+Ml07QT13KzF8''@;'; + put 'put ''MCwhKCgwfHcpPj0oMHwobT0wfGFbMjMyKygwfGFbYj4+Ml0pPj4yXSkpKTspKDB8QSk8KDB8bSk/KG09KDB8QSk9PSgwfGspPzB8cG9lKGwscCk6MHxrVShsKSxhWzIzMisoMHxhW20rMTY+PjJdKT4+Ml09QSk6bT1mLFIwZSgwfEpjKGMsbSxwKSksdz1BLGM9bTswfGFbMTcyKygwfGFbTT4+''@;'; + put 'put ''Ml0pPj4yXXx8UHIoODc2NzIsODc2MTUsMTAzLDg3NjYxKX1mdW5jdGlvbiBwb2UobCxjKXt2YXIgZixwLHcsbT0wLEE9MDtyZXR1cm4gZj0rX1syNCsobT0wfGFbOTYrKDB8YVsoQT0xNisoY3w9MCl8MCk+PjJdKT4+Ml0pPj4zXSxwPStfW20rMzI+PjNdLG09MHxVaChsfD0wKSxhWzEwNCso''@;'; + put 'put ''MHxhWyhjPW0rMTZ8MCk+PjJdKT4+Ml09YVs5NisoMHxhW0E+PjJdKT4+Ml0sdz0rKDB8YVsyNDgrKDB8YVsxNisoMHxkaShtKSk+PjJdKT4+Ml0pLF9bODgrKDB8YVtjPj4yXSk+PjNdPXcsMHxmZVsxMTQrKDB8YVtBPj4yXSk+PjBdfHwobD0wPT0oMSZhWzExNisoMHxhWzE2KygwfGRpKGwp''@;'; + put 'put ''KT4+Ml0pPj4yXXwwKSxfWzgwKyhBPTB8YVtjPj4yXSk+PjNdPWw/cDpmLF9bQSs5Nj4+M109bD9mOnApLDB8bX1mdW5jdGlvbiBrVShsKXt2YXIgYztyZXR1cm4gX1UobHw9MCxjPTB8VWgobCkpLDB8Y31mdW5jdGlvbiBabChsKXt2YXIgYztyZXR1cm4gMHwoNz09KDB8ZmVbMTU5KyhjPTB8''@;'; + put 'put ''YVsxNisobHw9MCk+PjJdKT4+MF0pPzB8YVsoMHxhWzI2OCsoMHxhWzE2KygwfGFbYysyMTI+PjJdKT4+Ml0pPj4yXSkrKGFbYysyMzI+PjJdPDwyKT4+Ml06MHxnMShsKSl9ZnVuY3Rpb24gTUgobCxjLGYpe3ZhciBwLG07Y3w9MCxmfD0wLGZ1bmN0aW9uIHY3KGwsYyxmLHAsbSl7Znw9MCxw''@;'; + put 'put ''fD0wLG18PTA7dmFyIFIsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTA7KDB8KEE9MHxhWzIzMisoMHxhWyhSPTE2KyhjfD0wKXwwKT4+Ml0pPj4yXSkpPD0oMHwoYj0wfGFbMjMyKygwfGFbKEQ9MTYrKGx8PTApfDApPj4yXSk+PjJdKSkmJlByKDg3Njk3LDg3NzI1LDgxLDg3NzM1KSwoMHxhWygz''@;'; + put 'put ''PT0oMHwoTT0zJmFbcD4+Ml0pKT9wOnArNDh8MCkrNDA+PjJdKT09KDB8bCkmJigwfGFbKDI9PSgwfE0pP3A6cCstNDh8MCkrNDA+PjJdKT09KDB8Yyl8fChrPTUpO2U6ZG97aWYoNT09KDB8aykpe2lmKCgwfGl0WzE2OCsoMHxhW3ArMTY+PjJdKT4+MV0pPjEpe2lmKGFbMTcyKygwfGFbZisx''@;'; + put 'put ''Nj4+Ml0pPj4yXT0wLDE9PShBLWJ8MCkmJjB8KHc9MHxVNShsLGMpKSYmMHxyayhmLHcpKXtpZih6NihmLHcpLDB8ZmVbMTU2KygwfGFbRD4+Ml0pPj4wXXx8MHxmZVsxNTYrKDB8YVtSPj4yXSk+PjBdKWJyZWFrOyRkKGYpO2JyZWFrfWZvcihNPTI1NSZtLG09bCxrPTB8YVsyMzIrKDB8YVtE''@;'; + put 'put ''Pj4yXSk+PjJdOzspe2lmKCgwfGspPj0oMHwoQT0wfGFbMjMyKygwfGFbUj4+Ml0pPj4yXSkpKWJyZWFrIGU7KDB8ayk8KEErLTF8MCk/KHc9cCstNDh8MCxBPTB8bGsoQT0wfEFhKGwpLDB8YVsoMj09KDMmYVtwPj4yXXwwKT9wOncpKzQwPj4yXSksYj1wKTooQT1jLHc9cCstNDh8MCxiPXAp''@;'; + put 'put ''LGZlWzExMisoMHxhWzE2KygwfEpjKG0sQSxmKSk+PjJdKT4+MF09TSxpdFsoRD0xNjgrKDB8YVtwKzE2Pj4yXSl8MCk+PjFdPSgwfGl0W0Q+PjFdKS0xPDwxNj4+MTYsbT1BLGs9aysxfDAscD0wfGFbYVsxODArKDB8YVsxNisoMHxhWygyPT0oMyZhW2I+PjJdfDApP3A6dykrNDA+PjJdKT4+''@;'; + put 'put ''Ml0pPj4yXT4+Ml19fWRve2lmKDE9PShBLWJ8MCkpe2lmKDB8KHA9MHxVNShsLGMpKSYmMHxyayhmLHApKXtpZihhWzE3MisoMHxhW2YrMTY+PjJdKT4+Ml09cCxmZVsxMTIrKE09MHxhW3ArMTY+PjJdKT4+MF09bSxpdFsoTT1NKzE2OHwwKT4+MV09MSsoMHxpdFtNPj4xXSk8PDE2Pj4xNiww''@;'; + put 'put ''fGZlWzE1NisoMHxhW0Q+PjJdKT4+MF18fDB8ZmVbMTU2KygwfGFbUj4+Ml0pPj4wXSlicmVhazskZChmKTticmVha31hWzE3MisoMHxhW2YrMTY+PjJdKT4+Ml09MCxwPTB8SmMobCxjLGYpLGZlWzExMisoMHxhW3ArMTY+PjJdKT4+MF09bX19d2hpbGUoMCk7aWYoKChBPTB8YVsyMzIrKDB8''@;'; + put 'put ''YVtSPj4yXSk+PjJdKS0oMHxhWzIzMisoMHxhW0Q+PjJdKT4+Ml0pfDApPjEpe2ZvcigoMHxhWygzPT0oMyZhW3A+PjJdfDApP3A6cCs0OHwwKSs0MD4+Ml0pPT0oMHxsKT9rPUE6KGFbMTcyKygwfGFbKEQ9ZisxNnwwKT4+Ml0pPj4yXT0wLGs9MHxKYyhsLDB8YVsoMj09KDMmYVtwPj4yXXww''@;'; + put 'put ''KT9wOnArLTQ4fDApKzQwPj4yXSxmKSxhWzE3MisoMHxhW0Q+PjJdKT4+Ml09ayxVMyhwKSxwPWssaz0wfGFbMjMyKygwfGFbUj4+Ml0pPj4yXSk7KDB8YVsyMzIrKGI9MHxhWzE2Kyh3PTB8YVsoMj09KDB8KEE9MyZhW3A+PjJdKSk/cDpwKy00OHwwKSs0MD4+Ml0pPj4yXSk+PjJdKSE9KDB8''@;'; + put 'put ''ayk7KXA9MHxhW2FbYisxODA+PjJdPj4yXTsoMHx3KSE9KDB8YykmJihmZVsxMTIrKDB8YVsxNisoMHxKYygwfGFbKDM9PSgwfEEpP3A6cCs0OHwwKSs0MD4+Ml0sYyxmKSk+PjJdKT4+MF09bSxVMyhwKSl9fX13aGlsZSgwKX0obT0wfFk2KGx8PTApLHA9MHxZNihjKSxmLDB8YVsxNzIrKDB8''@;'; + put 'put ''YVtmKzE2Pj4yXSk+PjJdLCgwfG0pPT0oMHxsKSYoMHxwKT09KDB8Yyk/MTo1KX1mdW5jdGlvbiBZNihsKXt2YXIgYyxmLHA9MDtyZXR1cm4gMCE9KDB8KGY9MHxhWzIxMisoYz0wfGFbMTYrKGx8PTApPj4yXSk+PjJdKSkmJjA9PSgwfGZlWzI3MisocD0wfGFbZisxNj4+Ml0pPj4wXSkmJihs''@;'; + put 'put ''PTB8YVsoMHxhW3ArMjY4Pj4yXSkrKGFbYysyMzI+PjJdPDwyKT4+Ml0pLDB8bH1mdW5jdGlvbiBsayhsLGMpe3ZhciBwLG0sZj0wO3JldHVybiBTVShsfD0wLHA9MHxhWzIzMisoYz0wfGFbKGY9MTYrKGN8PTApfDApPj4yXSk+PjJdLDB8YVtjKzIzNj4+Ml0sMiksYz0wfFVoKGwpLF9bODgr''@;'; + put 'put ''KG09MHxhW2MrMTY+PjJdKT4+M109K19bODgrKGY9MHxhW2Y+PjJdKT4+M10sX1ttKzk2Pj4zXT0rX1tmKzk2Pj4zXSxhW20rMjMyPj4yXT1hW2YrMjMyPj4yXSxhW20rMjM2Pj4yXT1mPTErKDB8YVtmKzIzNj4+Ml0pfDAsYVsoMHxhWygwfGFbMTk2KygwfGFbbCsxNj4+Ml0pPj4yXSkrKHA8''@;'; + put 'put ''PDYpKzQ+PjJdKSsoZjw8Mik+PjJdPWMsMHxjfWZ1bmN0aW9uIFNVKGwsYyxmLHApe2Z8PTAscHw9MDt2YXIgdyxiLG09MCxBPTAsaz0wO2I9MHxhWyhtPTB8YVsxOTYrKDB8YVsodz0xNisobHw9MCl8MCk+PjJdKT4+Ml0pKygoY3w9MCk8PDYpKzQ+PjJdO2U6ZG97aWYoKDB8cCk8MSl7Zm9y''@;'; + put 'put ''KGY9Zi1wfDA7ISgoMHwoQT1mKzF8MCkpPj0oMHwobD0wfGFbbSsoYzw8Nik+PjJdKSkpOylhWzIzNisoMHxhWzE2KyhsPTB8YVtiKyhBPDwyKT4+Ml0pPj4yXSk+PjJdPW09ZitwfDAsYVtiKyhtPDwyKT4+Ml09bCxmPUEsbT0wfGFbMTk2KygwfGFbdz4+Ml0pPj4yXTtmb3IoZj0oQT1wKy0x''@;'; + put 'put ''fDApK2x8MDs7KXtpZigoMHxmKT49KDB8bCkpYnJlYWsgZTthW2IrKGY8PDIpPj4yXT0wLGY9ZisxfDAsbD0wfGFbKG09MHxhWzE5NisoMHxhW3c+PjJdKT4+Ml0pKyhjPDw2KT4+Ml19fWVsc2V7Zm9yKEE9cCstMXwwLGw9MHxhW20rKGM8PDYpPj4yXTshKCgwfChsPWwrLTF8MCkpPD0oMHxm''@;'; + put 'put ''KSk7KWFbMjM2KygwfGFbMTYrKGs9MHxhW2IrKGw8PDIpPj4yXSk+PjJdKT4+Ml09bT1BK2x8MCxhW2IrKG08PDIpPj4yXT1rO2ZvcihtPXArZnwwLGw9ZjshKCgwfChsPWwrMXwwKSk+PSgwfG0pKTspYVtiKyhsPDwyKT4+Ml09MDttPWw9MHxhWzE5NisoMHxhW3c+PjJdKT4+Ml0sbD0wfGFb''@;'; + put 'put ''bCsoYzw8Nik+PjJdfX13aGlsZSgwKTthW20rKGM8PDYpPj4yXT1BK2x9ZnVuY3Rpb24gRUgobCl7dmFyIE0sRCxSLGM9MCxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxrPTA7Zm9yKFI9bGUsbGU9bGUrMTZ8MCxEPVIscD0wfER0KGx8PTApO3A7KTc9PSgwfGZlWzE1OSsoYz0wfGFbKGY9cCsx''@;'; + put 'put ''NnwwKT4+Ml0pPj4wXSkmJihyZyhwKSxjPTB8YVtmPj4yXSksYVtjKzIxMj4+Ml09MCxwPTB8enQobCxwKTtmb3IoTT1sKzE2fDAsaz0xOyEoKDB8ayk+KDB8YVsxODArKGM9MHxhW00+PjJdKT4+Ml0pKTspe3c9MTYrKEE9MHxhWygwfGFbYysxODQ+PjJdKSsoazw8Mik+PjJdKXwwLGM9MHxE''@;'; + put 'put ''dChBKTtlOmZvcig7YzspaWYoYj0wfHp0KEEsYyksMHxmZVsxNTkrKDB8YVsoZj1jKzE2fDApPj4yXSk+PjBdKXA9MHx0aShjKSxtPTB8dGkobCksYVtEPj4yXT1wLGFbRCs0Pj4yXT1tLCRyKDAsODc3NDQsRCksb2koQSxjKSxjPWI7ZWxzZSBmb3IoQ04oYywwfGFbMjY0KygwfGFbdz4+Ml0p''@;'; + put 'put ''Pj4yXSksYVsyMTIrKG09MHxhW2Y+PjJdKT4+Ml09QSxmZVttKzE1OT4+MF09NyxtPTB8dzAoQSxjKTs7KXtpZighbSl7Yz1iO2NvbnRpbnVlIGV9Yz0wfGFbMTcyKygwfGFbbSsxNj4+Ml0pPj4yXTt0OmRve2lmKDB8Yylkb3tpZihmPWMrLTQ4fDAsMSE9KDB8ZmVbMTU2KyhwPTB8YVsxNiso''@;'; + put 'put ''MHxhWygyPT0oMyZhW2M+PjJdfDApP2M6ZikrNDA+PjJdKT4+Ml0pPj4wXSkpYnJlYWsgdDthW3ArMjEyPj4yXT1BLGM9MHxhW2FbMTgwKygwfGFbMTYrKDB8YVsoMj09KDMmYVtjPj4yXXwwKT9jOmYpKzQwPj4yXSk+PjJdKT4+Ml0+PjJdfXdoaWxlKDAhPSgwfGMpKX13aGlsZSgwKTttPTB8''@;'; + put 'put ''UzAoQSxtKX1rPWsrMXwwfWxlPVJ9ZnVuY3Rpb24gRVUobCxjKXtsfD0wO3ZhciBiLGY9MCxwPTAsbT0wLEE9MCx3PTA7Zm9yKHA9MHx2cig4KyhpdFsyMzgrKDB8YVsoYj0xNisoY3w9MCl8MCk+PjJdKT4+MV08PDIpfDApLGFbMjY4KyhmPTB8YVtiPj4yXSk+PjJdPXAscD0wLG09MHxpdFtm''@;'; + put 'put ''KzIzNj4+MV07ISgoMHxtKT4oMHxpdFtmKzIzOD4+MV0pKTspZj0wfFVoKGwpLGFbKDB8YVsyNjgrKDB8YVtiPj4yXSk+PjJdKSsobTw8Mik+PjJdPWYsYVsyMzIrKHc9MHxhW2YrMTY+PjJdKT4+Ml09bSxmZVt3KzE1OT4+MF09NyxhW3crMjEyPj4yXT1jLDB8cCYmKHc9MTU0KygwfGFbMTYr''@;'; + put 'put ''KDB8SmMocCxmLDApKT4+Ml0pfDAsaXRbdz4+MV09MWUzKigwfGl0W3c+PjFdKSkscD1mLG09bSsxfDAsZj0wfGFbYj4+Ml07Zm9yKHc9MHxEdChjKTtmPTB8YVtiPj4yXSx3Oyl7Zm9yKGFbKGY9MjE2KygwfGFbKG09MTYrKDB8YVsoMHxhW2YrMjY4Pj4yXSkrKGFbMjMyKygwfGFbdysxNj4+''@;'; + put 'put ''Ml0pPj4yXTw8Mik+PjJdKXwwKT4+Ml0pfDApPj4yXT0xKygwfGFbZj4+Ml0pLGY9MHx3MChjLHcpO2Y7KXtmb3IobD1mKy00OHwwLHA9MHxhWzIzMisoMHxhWzE2KygwfGFbKDM9PSgzJihBPTB8YVtmPj4yXSl8MCk/ZjpmKzQ4fDApKzQwPj4yXSk+PjJdKT4+Ml07ISgoMHxwKT49KDB8YVsy''@;'; + put 'put ''MzIrKDB8YVsxNisoMHxhWygyPT0oMyZBfDApP2Y6bCkrNDA+PjJdKT4+Ml0pPj4yXSkpOylpdFsoQT0xNjgrKDB8YVsxNisoMHxhW2FbMTgwKygwfGFbbT4+Ml0pPj4yXT4+Ml0pPj4yXSl8MCk+PjFdPTErKDB8aXRbQT4+MV0pPDwxNj4+MTYscD1wKzF8MCxBPTB8YVtmPj4yXTtmPTB8UzAo''@;'; + put 'put ''YyxmKX13PTB8enQoYyx3KX1mb3IobD0wfGl0W2YrMjM4Pj4xXSxBPWYrMjY4fDAsZj0wfGl0W2YrMjM2Pj4xXTshKCgwfGYpPigwfGwpKTspKDB8KG09MHxhWyhwPTIxNisoMHxhWzE2KygwfGFbKDB8YVtBPj4yXSkrKGY8PDIpPj4yXSk+PjJdKXwwKT4+Ml0pKT4xJiYoYVtwPj4yXT1tKy0x''@;'; + put 'put ''KSxmPWYrMXwwfWZ1bmN0aW9uIG1vZShsLGMsZixwKXtsfD0wLHB8PTA7dmFyIHcsYixtPTAsQT0wO2lmKCgwfCh3PTErKGZ8PTApfDApKSE9KDB8ZmVbMjczKyhjPTB8YVsoYj0xNisoMHxhWzIxMisoMHxhWzE2KyhjfD0wKT4+Ml0pPj4yXSl8MCk+PjJdKT4+MF0pKXtmb3IoQT0wfGl0W2Mr''@;'; + put 'put ''MjM2Pj4xXTshKCgwfEEpPigobT0wfGl0W2MrMjM4Pj4xXSk8PDE2Pj4xNnwwKSk7KUhZKGwsMHxhWygwfGFbYysyNjg+PjJdKSsoQTw8Mik+PjJdKSxBPUErMXwwLGM9MHxhW2I+PjJdO2ZvcihBPTB8aXRbYysyMzY+PjFdOyEoKDB8QSk+KG08PDE2Pj4xNnwwKSk7KXFDKHAsMHxhWygwfGFb''@;'; + put 'put ''YysyNjg+PjJdKSsoQTw8Mik+PjJdLGYpLEE9QSsxfDAsbT0wfGl0WzIzOCsobD0wfGFbYj4+Ml0pPj4xXSxjPWw7ZmVbYysyNzM+PjBdPXd9fWZ1bmN0aW9uIGZwKGwpe3ZhciBjPTAsZj0wLHA9MCxtPTAsQT0wO2ZvcihBPTB8RHQobHw9MCk7QTspe2ZvcihhWzIxMisoMHxhW0ErMTY+PjJd''@;'; + put 'put ''KT4+Ml09MCxtPTB8dzAobCxBKTttOyl7Yz0wfGFbMTcyKygwfGFbbSsxNj4+Ml0pPj4yXTtlOmRve2lmKDB8Yylkb3tpZihmPWMrLTQ4fDAsMSE9KDB8ZmVbMTU2KyhwPTB8YVsxNisoMHxhWygyPT0oMyZhW2M+PjJdfDApP2M6ZikrNDA+PjJdKT4+Ml0pPj4wXSkpYnJlYWsgZTthW3ArMjEy''@;'; + put 'put ''Pj4yXT0wLGM9MHxhW2FbMTgwKygwfGFbMTYrKDB8YVsoMj09KDMmYVtjPj4yXXwwKT9jOmYpKzQwPj4yXSk+PjJdKT4+Ml0+PjJdfXdoaWxlKDAhPSgwfGMpKX13aGlsZSgwKTttPTB8UzAobCxtKX1BPTB8enQobCxBKX12b2UobCl9ZnVuY3Rpb24gdm9lKGwpe3ZhciBjPTAsZj0wLHA9MCxt''@;'; + put 'put ''PTAsQT0wLHc9MDtmb3IoZj0xNisobHw9MCl8MCxjPTE7ISgoMHxjKT4oMHxhWzE4MCsocD0wfGFbZj4+Ml0pPj4yXSkpOyl2b2UoMHxhWygwfGFbcCsxODQ+PjJdKSsoYzw8Mik+PjJdKSxjPWMrMXwwO2Zvcih3PTB8RHQobCk7dzspe2ZvcigwfGFbKGM9MjEyKygwfGFbdysxNj4+Ml0pfDAp''@;'; + put 'put ''Pj4yXXx8KGFbYz4+Ml09bCksQT0wfHcwKGwsdyk7QTspe2M9MHxhWzE3MisoMHxhW0ErMTY+PjJdKT4+Ml07ZTpkb3tpZigwfGMpZG97aWYobT1jKy00OHwwLDEhPSgwfGZlWzE1NisocD0wfGFbMTYrKDB8YVsoMj09KDMmKGY9MHxhW2M+PjJdKXwwKT9jOm0pKzQwPj4yXSk+PjJdKT4+MF0p''@;'; + put 'put ''KWJyZWFrIGU7MHxhWyhwPXArMjEyfDApPj4yXXx8KGFbcD4+Ml09bCxmPTB8YVtjPj4yXSksYz0wfGFbYVsxODArKDB8YVsxNisoMHxhWygyPT0oMyZmfDApP2M6bSkrNDA+PjJdKT4+Ml0pPj4yXT4+Ml19d2hpbGUoMCE9KDB8YykpfXdoaWxlKDApO0E9MHxTMChsLEEpfXc9MHx6dChsLHcp''@;'; + put 'put ''fX1mdW5jdGlvbiBUVShsLGMpe2N8PTA7dmFyIGIsayxNLHBlLEhlLHFlLG50LHVyLGY9MCxwPTAsbT0wLEE9MCx3PTAsRD0wLFI9MCxHPTAsSz0wLGdlPTAsYmU9MCxPZT0wLExlPTAsUmU9MCxWZT0wLFdlPTAsb3Q9MCxTdD0wLGt0PTAsc3Q9MCxFdD0wLFp0PTAsY3Q9MCxidD0wLGFuPTAs''@;'; + put 'put ''U249MCxIbj0wO3VyPWxlLGxlPWxlKzMyMHwwLGN0PXVyKzI5NnwwLFp0PXVyKzI4MHwwLFZlPXVyKzEzNnwwLEhlPXVyKzEyMHwwLFI9dXIrMTA0fDAsYj11cis4OHwwLG09dXIrODB8MCxzdD11cisxNnwwLG50PXVyLGs9dXIrMjY0fDAsTT11cisyNDh8MCxEPXVyKzIzMnwwLEc9dXIrMjE2''@;'; + put 'put ''fDAsV2U9dXIrMjAwfDAsb3Q9dXIrMTg0fDAscWU9dXIrMTY4fDAsa3Q9dXIrMTUyfDAsQT0wfElVKDB8TGkobHw9MCw4Nzc5OCksYyksZ2U9MCE9KDB8KHBlPTB8SVUoMHxMaShsLDg3ODA0KSxjKSkpLGM9MCE9KDB8QSk7ZG97aWYoY3xnZSYmMHwocD0wfGFbOCsoMHxhWyhIbj1sKzE2fDAp''@;'; + put 'put ''Pj4yXSk+PjJdKSl7aWYoKDB8YVtwKzQ+PjJdKT4xKXtTbj0wfHRpKDB8YVsoMz09KDMmYVtsPj4yXXwwKT9sOmwrNDh8MCkrNDA+PjJdKSxIbj0wfHRpKDB8YVsoMj09KDMmYVtsPj4yXXwwKT9sOmwrLTQ4fDApKzQwPj4yXSksYVttPj4yXT1TbixhW20rND4+Ml09SG4sJHIoMCw4NzgxMCxt''@;'; + put 'put ''KTticmVha31wPTB8YVs0KyhidD0wfGFbcD4+Ml0pPj4yXSxiZT1sKy00OHwwLE9lPTB8YVsoMj09KDB8KEs9MyZhW2w+PjJdKSk/bDpiZSkrNDA+PjJdLExlPWwrNDh8MCxLPTB8YVsoMz09KDB8Syk/bDpMZSkrNDA+PjJdLGFuPTB8UW4oNDgpLGFbYW4rMTI+PjJdPWFbKFJlPWJ0KzEyfDAp''@;'; + put 'put ''Pj4yXSxhW2FuKzg+PjJdPWFbKFN0PWJ0Kzh8MCk+PjJdO2Rve2lmKGMpe2lmKHc9MTYrKDB8YVtBKzE2Pj4yXSl8MCxhW2N0Pj4yXT1hWyhBPTE2KygwfGFbT2UrMTY+PjJdKXwwKT4+Ml0sYVtjdCs0Pj4yXT1hW0ErND4+Ml0sYVtjdCs4Pj4yXT1hW0ErOD4+Ml0sYVtjdCsxMj4+Ml09YVtB''@;'; + put 'put ''KzEyPj4yXSwhKDB8ZHkoY3QsdykpKXtHPTB8dGkoMHxhWygzPT0oMyZhW2w+PjJdfDApP2w6TGUpKzQwPj4yXSksRXQ9MHx0aSgwfGFbKDI9PSgzJmFbbD4+Ml18MCk/bDpiZSkrNDA+PjJdKSxTbj0wfExpKGwsODc3OTgpLGFbYj4+Ml09RyxhW2IrND4+Ml09RXQsYVtiKzg+PjJdPVNuLCRy''@;'; + put 'put ''KDAsODc4NTEsYiksU249MjY7YnJlYWt9aWYoYVtjdD4+Ml09YVsoYz0wfGFbYnQ+PjJdKT4+Ml0sYVtjdCs0Pj4yXT1hW2MrND4+Ml0sYVtjdCs4Pj4yXT1hW2MrOD4+Ml0sYVtjdCsxMj4+Ml09YVtjKzEyPj4yXSwwfGR5KGN0LHcpKXtpZihhW2N0Pj4yXT1hWyhFdD0xNisoMHxhW0srMTY+''@;'; + put 'put ''PjJdKXwwKT4+Ml0sYVtjdCs0Pj4yXT1hW0V0KzQ+PjJdLGFbY3QrOD4+Ml09YVtFdCs4Pj4yXSxhW2N0KzEyPj4yXT1hW0V0KzEyPj4yXSwwfGR5KGN0LHcpKXtHPTB8dGkoMHxhWygzPT0oMyZhW2w+PjJdfDApP2w6TGUpKzQwPj4yXSksRXQ9MHx0aSgwfGFbKDI9PSgzJmFbbD4+Ml18MCk/''@;'; + put 'put ''bDpiZSkrNDA+PjJdKSxTbj0wfExpKGwsODc3OTgpLGFbUj4+Ml09RyxhW1IrND4+Ml09RXQsYVtSKzg+PjJdPVNuLCRyKDAsODc4OTQsUiksU249MjY7YnJlYWt9aWYoMHxhW1N0Pj4yXXx8UHIoODc5MzYsODc5NDcsMzY5LDg3OTU4KSxHPWJ0KzE2fDAsYVtadD4+Ml09YVtjPj4yXSxhW1p0''@;'; + put 'put ''KzQ+PjJdPWFbYys0Pj4yXSxhW1p0Kzg+PjJdPWFbYys4Pj4yXSxhW1p0KzEyPj4yXT1hW2MrMTI+PjJdLGFbY3Q+PjJdPWFbRz4+Ml0sYVtjdCs0Pj4yXT1hW0crND4+Ml0sYVtjdCs4Pj4yXT1hW0crOD4+Ml0sYVtjdCsxMj4+Ml09YVtHKzEyPj4yXSxSSShudCxadCxjdCx3KSxhWyhFdD00''@;'; + put 'put ''OCsoMHxhW2J0Pj4yXSl8MCk+PjJdPWFbbnQ+PjJdLGFbRXQrND4+Ml09YVtudCs0Pj4yXSxhW0V0Kzg+PjJdPWFbbnQrOD4+Ml0sYVtFdCsxMj4+Ml09YVtudCsxMj4+Ml0sRXQ9MTYrKDB8YVtidD4+Ml0pfDAsYVtadD4+Ml09YVtudD4+Ml0sYVtadCs0Pj4yXT1hW250KzQ+PjJdLGFbWnQr''@;'; + put 'put ''OD4+Ml09YVtudCs4Pj4yXSxhW1p0KzEyPj4yXT1hW250KzEyPj4yXSxhW2N0Pj4yXT1hW0c+PjJdLGFbY3QrND4+Ml09YVtHKzQ+PjJdLGFbY3QrOD4+Ml09YVtHKzg+PjJdLGFbY3QrMTI+PjJdPWFbRysxMj4+Ml0sWGgoayxadCxjdCksYVtFdD4+Ml09YVtrPj4yXSxhW0V0KzQ+PjJdPWFb''@;'; + put 'put ''ays0Pj4yXSxhW0V0Kzg+PjJdPWFbays4Pj4yXSxhW0V0KzEyPj4yXT1hW2srMTI+PjJdLGFbWnQ+PjJdPWFbKGM9MTYrKEV0PTB8YVtidD4+Ml0pfDApPj4yXSxhW1p0KzQ+PjJdPWFbYys0Pj4yXSxhW1p0Kzg+PjJdPWFbYys4Pj4yXSxhW1p0KzEyPj4yXT1hW2MrMTI+PjJdLGFbY3Q+PjJd''@;'; + put 'put ''PWFbRz4+Ml0sYVtjdCs0Pj4yXT1hW0crND4+Ml0sYVtjdCs4Pj4yXT1hW0crOD4+Ml0sYVtjdCsxMj4+Ml09YVtHKzEyPj4yXSxYaChNLFp0LGN0KSxhW0V0Pj4yXT1hW00+PjJdLGFbRXQrND4+Ml09YVtNKzQ+PjJdLGFbRXQrOD4+Ml09YVtNKzg+PjJdLGFbRXQrMTI+PjJdPWFbTSsxMj4+''@;'; + put 'put ''Ml0sYz0zMisoRXQ9MHxhW2J0Pj4yXSl8MCxhW1p0Pj4yXT1hWyhFdD1FdCsxNnwwKT4+Ml0sYVtadCs0Pj4yXT1hW0V0KzQ+PjJdLGFbWnQrOD4+Ml09YVtFdCs4Pj4yXSxhW1p0KzEyPj4yXT1hW0V0KzEyPj4yXSxhW2N0Pj4yXT1hW250Pj4yXSxhW2N0KzQ+PjJdPWFbbnQrND4+Ml0sYVtj''@;'; + put 'put ''dCs4Pj4yXT1hW250Kzg+PjJdLGFbY3QrMTI+PjJdPWFbbnQrMTI+PjJdLFhoKEQsWnQsY3QpLGFbYz4+Ml09YVtEPj4yXSxhW2MrND4+Ml09YVtEKzQ+PjJdLGFbYys4Pj4yXT1hW0QrOD4+Ml0sYVtjKzEyPj4yXT1hW0QrMTI+PjJdLCEoYz0wfGFbUmU+PjJdKSl7RXQ9MzticmVha31FdD0z''@;'; + put 'put ''KygwfEFGKGwsMHxhW2J0Pj4yXSwwLDAsYW4sYykpfDA7YnJlYWt9Zm9yKEE9cCstMXwwLGM9MDshKCgwfGMpPj0oMHxBKXx8MHxEVSgoMHxhW2J0Pj4yXSkrKGM8PDQpfDAsdykpOyljPWMrM3wwO2lmKG09MCE9KDB8KHA9MHxhW1JlPj4yXSkpLCgwfGMpIT0oMHxBKSl7bSYmKGM9MHxBRihs''@;'; + put 'put ''LDB8YVtidD4+Ml0sMCxjLGFuLHApKSxFdD1jKzN8MDticmVha31pZihtKXtFdD1hbiszMnwwLFI9KDB8YVtidD4+Ml0pKyhBPDw0KXwwLGFbWnQ+PjJdPWFbKEQ9YnQrMzJ8MCk+PjJdLGFbWnQrND4+Ml09YVtEKzQ+PjJdLGFbWnQrOD4+Ml09YVtEKzg+PjJdLGFbWnQrMTI+PjJdPWFbRCsx''@;'; + put 'put ''Mj4+Ml0sYVtjdD4+Ml09YVtSPj4yXSxhW2N0KzQ+PjJdPWFbUis0Pj4yXSxhW2N0Kzg+PjJdPWFbUis4Pj4yXSxhW2N0KzEyPj4yXT1hW1IrMTI+PjJdLFJJKEcsWnQsY3QsdyksYVtFdD4+Ml09YVtHPj4yXSxhW0V0KzQ+PjJdPWFbRys0Pj4yXSxhW0V0Kzg+PjJdPWFbRys4Pj4yXSxhW0V0''@;'; + put 'put ''KzEyPj4yXT1hW0crMTI+PjJdLEV0PUE7YnJlYWt9UHIoODc5NzUsODc5NDcsMzg3LDg3OTU4KX1lbHNlIFNuPTI2fXdoaWxlKDApOzI2PT0oMHxTbikmJihjPXArLTF8MCwwfGFbUmU+PjJdJiYoYVsoRXQ9YW4rMzJ8MCk+PjJdPWFbKEc9YnQrMzJ8MCk+PjJdLGFbRXQrND4+Ml09YVtHKzQ+''@;'; + put 'put ''PjJdLGFbRXQrOD4+Ml09YVtHKzg+PjJdLGFbRXQrMTI+PjJdPWFbRysxMj4+Ml0pLEV0PWMpO2Rve2lmKGdlKXtpZihtPTE2KygwfGFbcGUrMTY+PjJdKXwwLGFbY3Q+PjJdPWFbKGdlPTE2KygwfGFbSysxNj4+Ml0pfDApPj4yXSxhW2N0KzQ+PjJdPWFbZ2UrND4+Ml0sYVtjdCs4Pj4yXT1h''@;'; + put 'put ''W2dlKzg+PjJdLGFbY3QrMTI+PjJdPWFbZ2UrMTI+PjJdLCEoMHxkeShjdCxtKSkpe1p0PTB8dGkoMHxhWygzPT0oMyZhW2w+PjJdfDApP2w6TGUpKzQwPj4yXSksY3Q9MHx0aSgwfGFbKDI9PSgzJmFbbD4+Ml18MCk/bDpiZSkrNDA+PjJdKSxTbj0wfExpKGwsODc4MDQpLGFbSGU+PjJdPVp0''@;'; + put 'put ''LGFbSGUrND4+Ml09Y3QsYVtIZSs4Pj4yXT1TbiwkcigwLDg3OTg2LEhlKSxTbj01MjticmVha31pZihhW2N0Pj4yXT1hWyhjPSgwfGFbYnQ+PjJdKSsoRXQ8PDQpfDApPj4yXSxhW2N0KzQ+PjJdPWFbYys0Pj4yXSxhW2N0Kzg+PjJdPWFbYys4Pj4yXSxhW2N0KzEyPj4yXT1hW2MrMTI+PjJd''@;'; + put 'put ''LDB8ZHkoY3QsbSkpe2lmKGFbY3Q+PjJdPWFbKHN0PTE2KygwfGFbT2UrMTY+PjJdKXwwKT4+Ml0sYVtjdCs0Pj4yXT1hW3N0KzQ+PjJdLGFbY3QrOD4+Ml09YVtzdCs4Pj4yXSxhW2N0KzEyPj4yXT1hW3N0KzEyPj4yXSwwfGR5KGN0LG0pKXtadD0wfHRpKDB8YVsoMz09KDMmYVtsPj4yXXww''@;'; + put 'put ''KT9sOkxlKSs0MD4+Ml0pLGN0PTB8dGkoMHxhWygyPT0oMyZhW2w+PjJdfDApP2w6YmUpKzQwPj4yXSksU249MHxMaShsLDg3ODA0KSxhW1ZlPj4yXT1adCxhW1ZlKzQ+PjJdPWN0LGFbVmUrOD4+Ml09U24sJHIoMCw4ODAyOSxWZSksU249NTI7YnJlYWt9aWYoMHxhW1JlPj4yXXx8UHIoODc5''@;'; + put 'put ''NzUsODc5NDcsNDI5LDg3OTU4KSxWZT1hbiszMnwwLGFbWnQ+PjJdPWFbYz4+Ml0sYVtadCs0Pj4yXT1hW2MrND4+Ml0sYVtadCs4Pj4yXT1hW2MrOD4+Ml0sYVtadCsxMj4+Ml09YVtjKzEyPj4yXSxhW2N0Pj4yXT1hW1ZlPj4yXSxhW2N0KzQ+PjJdPWFbVmUrND4+Ml0sYVtjdCs4Pj4yXT1h''@;'; + put 'put ''W1ZlKzg+PjJdLGFbY3QrMTI+PjJdPWFbVmUrMTI+PjJdLFJJKG50LFp0LGN0LG0pLGFbKHN0PSgwfGFbYnQ+PjJdKSsoKGY9RXQrLTN8MCk8PDQpfDApPj4yXT1hW250Pj4yXSxhW3N0KzQ+PjJdPWFbbnQrND4+Ml0sYVtzdCs4Pj4yXT1hW250Kzg+PjJdLGFbc3QrMTI+PjJdPWFbbnQrMTI+''@;'; + put 'put ''PjJdLGM9KDB8YVtidD4+Ml0pKygoc3Q9RXQrLTF8MCk8PDQpfDAsYVtadD4+Ml09YVtudD4+Ml0sYVtadCs0Pj4yXT1hW250KzQ+PjJdLGFbWnQrOD4+Ml09YVtudCs4Pj4yXSxhW1p0KzEyPj4yXT1hW250KzEyPj4yXSxhW2N0Pj4yXT1hW1ZlPj4yXSxhW2N0KzQ+PjJdPWFbVmUrND4+Ml0s''@;'; + put 'put ''YVtjdCs4Pj4yXT1hW1ZlKzg+PjJdLGFbY3QrMTI+PjJdPWFbVmUrMTI+PjJdLFhoKFdlLFp0LGN0KSxhW2M+PjJdPWFbV2U+PjJdLGFbYys0Pj4yXT1hW1dlKzQ+PjJdLGFbYys4Pj4yXT1hW1dlKzg+PjJdLGFbYysxMj4+Ml09YVtXZSsxMj4+Ml0sa3Q9KGM9MHxhW2J0Pj4yXSkrKEV0PDw0''@;'; + put 'put ''KXwwLGFbWnQ+PjJdPWFbKGM9Yysoc3Q8PDQpfDApPj4yXSxhW1p0KzQ+PjJdPWFbYys0Pj4yXSxhW1p0Kzg+PjJdPWFbYys4Pj4yXSxhW1p0KzEyPj4yXT1hW2MrMTI+PjJdLGFbY3Q+PjJdPWFbVmU+PjJdLGFbY3QrND4+Ml09YVtWZSs0Pj4yXSxhW2N0Kzg+PjJdPWFbVmUrOD4+Ml0sYVtj''@;'; + put 'put ''dCsxMj4+Ml09YVtWZSsxMj4+Ml0sWGgob3QsWnQsY3QpLGFba3Q+PjJdPWFbb3Q+PjJdLGFba3QrND4+Ml09YVtvdCs0Pj4yXSxhW2t0Kzg+PjJdPWFbb3QrOD4+Ml0sYVtrdCsxMj4+Ml09YVtvdCsxMj4+Ml0sYz0oa3Q9MHxhW2J0Pj4yXSkrKEV0Ky0yPDw0KXwwLGFbWnQ+PjJdPWFbKHN0''@;'; + put 'put ''PWt0KyhzdDw8NCl8MCk+PjJdLGFbWnQrND4+Ml09YVtzdCs0Pj4yXSxhW1p0Kzg+PjJdPWFbc3QrOD4+Ml0sYVtadCsxMj4+Ml09YVtzdCsxMj4+Ml0sYVtjdD4+Ml09YVtudD4+Ml0sYVtjdCs0Pj4yXT1hW250KzQ+PjJdLGFbY3QrOD4+Ml09YVtudCs4Pj4yXSxhW2N0KzEyPj4yXT1hW250''@;'; + put 'put ''KzEyPj4yXSxYaChxZSxadCxjdCksYVtjPj4yXT1hW3FlPj4yXSxhW2MrND4+Ml09YVtxZSs0Pj4yXSxhW2MrOD4+Ml09YVtxZSs4Pj4yXSxhW2MrMTI+PjJdPWFbcWUrMTI+PjJdLCEoYz0wfGFbU3Q+PjJdKSlicmVhaztmPTB8T2EobCwwfGFbYnQ+PjJdLGYsZixhbixjKTticmVha31mb3Io''@;'; + put 'put ''cD1FdDsoMHxwKT4wOyl7Zm9yKGM9MDs0IT0oMHxjKTspYVsob3Q9c3QrKGM8PDQpfDApPj4yXT1hWyhXZT0oMHxhW2J0Pj4yXSkrKHAtYzw8NCl8MCk+PjJdLGFbb3QrND4+Ml09YVtXZSs0Pj4yXSxhW290Kzg+PjJdPWFbV2UrOD4+Ml0sYVtvdCsxMj4+Ml09YVtXZSsxMj4+Ml0sYz1jKzF8''@;'; + put 'put ''MDtpZigwfERVKHN0LG0pKXtjPTAsU249NDM7YnJlYWt9cD1wKy0zfDB9ZTpkb3tpZig0Mz09KDB8U24pKWZvcig7Oyl7aWYoU249MCw0PT0oMHxjKSlicmVhayBlO2FbKFNuPSgwfGFbYnQ+PjJdKSsocC1jPDw0KXwwKT4+Ml09YVsob3Q9c3QrKGM8PDQpfDApPj4yXSxhW1NuKzQ+PjJdPWFb''@;'; + put 'put ''b3QrND4+Ml0sYVtTbis4Pj4yXT1hW290Kzg+PjJdLGFbU24rMTI+PjJdPWFbb3QrMTI+PjJdLGM9YysxfDAsU249NDN9fXdoaWxlKDApO2lmKDB8cCl7aWYoZj1wKy0zfDAsIShjPTB8YVtTdD4+Ml0pKWJyZWFrO2Y9MHxPYShsLDB8YVtidD4+Ml0sZixFdCstM3wwLGFuLGMpO2JyZWFrfWlm''@;'; + put 'put ''KDB8YVtTdD4+Ml0pe2Y9YW4rMTZ8MCxsPTB8YVtidD4+Ml0sYVtadD4+Ml09YVsoc3Q9YnQrMTZ8MCk+PjJdLGFbWnQrND4+Ml09YVtzdCs0Pj4yXSxhW1p0Kzg+PjJdPWFbc3QrOD4+Ml0sYVtadCsxMj4+Ml09YVtzdCsxMj4+Ml0sYVtjdD4+Ml09YVtsPj4yXSxhW2N0KzQ+PjJdPWFbbCs0''@;'; + put 'put ''Pj4yXSxhW2N0Kzg+PjJdPWFbbCs4Pj4yXSxhW2N0KzEyPj4yXT1hW2wrMTI+PjJdLFJJKGt0LFp0LGN0LG0pLGFbZj4+Ml09YVtrdD4+Ml0sYVtmKzQ+PjJdPWFba3QrND4+Ml0sYVtmKzg+PjJdPWFba3QrOD4+Ml0sYVtmKzEyPj4yXT1hW2t0KzEyPj4yXSxmPTA7YnJlYWt9UHIoODc5MzYs''@;'; + put 'put ''ODc5NDcsNDUyLDg3OTU4KX1lbHNlIFNuPTUyfXdoaWxlKDApO2Zvcig1Mj09KDB8U24pJiYoMHxhW1N0Pj4yXSYmKGFbKGY9YW4rMTZ8MCk+PjJdPWFbKFNuPWJ0KzE2fDApPj4yXSxhW2YrND4+Ml09YVtTbis0Pj4yXSxhW2YrOD4+Ml09YVtTbis4Pj4yXSxhW2YrMTI+PjJdPWFbU24rMTI+''@;'; + put 'put ''PjJdKSxmPTApLGFbKHA9YW4rNHwwKT4+Ml09Yz1FdC1mKzF8MCxhW2FuPj4yXT0wfFFuKGM8PDQpLGM9MDshKCgwfGMpPj0oMHxhW3A+PjJdKSk7KWFbKFNuPSgwfGFbYW4+PjJdKSsoYzw8NCl8MCk+PjJdPWFbKGw9KDB8YVtidD4+Ml0pKyhmPDw0KXwwKT4+Ml0sYVtTbis0Pj4yXT1hW2wr''@;'; + put 'put ''ND4+Ml0sYVtTbis4Pj4yXT1hW2wrOD4+Ml0sYVtTbisxMj4+Ml09YVtsKzEyPj4yXSxmPWYrMXwwLGM9YysxfDA7RnQoMHxhW2J0Pj4yXSksRnQoYnQpLGFbYVs4KygwfGFbSG4+PjJdKT4+Ml0+PjJdPWFufX13aGlsZSgwKTtsZT11cn1mdW5jdGlvbiBJVShsLGMpe3ZhciBmLHA7cmV0dXJu''@;'; + put 'put ''IGN8PTAscD1sZSxsZT1sZSsxNnwwLGY9cCwwIT0oMHwobHw9MCkpJiYwIT0oMHxmZVtsPj4wXSk/KGM9MHxJTihjLGwpKXx8KGFbZj4+Ml09bCwkcigwLDg4MTQ5LGYpLGM9MCk6Yz0wLGxlPXAsMHxjfWZ1bmN0aW9uIGR5KGwsYyl7dmFyIHAsZj0wO3JldHVybiAwfCgrX1soY3w9MCk+PjNd''@;'; + put 'put ''PD0ocD0rX1sobHw9MCk+PjNdKSYmcDw9K19bYysxNj4+M10mJitfW2MrOD4+M108PShmPStfW2wrOD4+M10pP2Y8PStfW2MrMjQ+PjNdJjE6MCl9ZnVuY3Rpb24gUkkobCxjLGYscCl7bHw9MDt2YXIgayxELEsscGUsZ2UsYmUsT2UsTGUsV2Usb3QsbT0wLEE9MCx3PTAsYj0wLE09MCxSPTAs''@;'; + put 'put ''Rz0wLFJlPTAsSGU9MCxWZT0wLHFlPTAsbnQ9MDtvdD1sZSxsZT1sZSs0NjR8MCxEPW90KzQ4fDAsV2U9b3QrMzJ8MCxMZT1vdCxSZT1vdCszNjR8MCxIZT1vdCsyNjR8MCxxZT1vdCsxNjR8MCxudD1vdCs2NHwwLEs9K19bKGN8PTApPj4zXSxwZT0rX1tjKzg+PjNdLGdlPStfWyhmfD0wKT4+''@;'; + put 'put ''M10sYmU9K19bZis4Pj4zXSxhWyhPZT1vdCsxNnwwKT4+Ml09YVsocHw9MCk+PjJdLGFbT2UrND4+Ml09YVtwKzQ+PjJdLGFbT2UrOD4+Ml09YVtwKzg+PjJdLGFbT2UrMTI+PjJdPWFbcCsxMj4+Ml0sYVtMZT4+Ml09YVsocD1wKzE2fDApPj4yXSxhW0xlKzQ+PjJdPWFbcCs0Pj4yXSxhW0xl''@;'; + put 'put ''Kzg+PjJdPWFbcCs4Pj4yXSxhW0xlKzEyPj4yXT1hW3ArMTI+PjJdLGdlPChrPStfW09lPj4zXSkmJihtPXBlKyArKDB8fn4oKGstSykqKHBlLWJlKS8oSy1nZSkpKSk+PStfW09lKzg+PjNdJiZtPD0rX1tMZSs4Pj4zXT8oUj1tLEc9ayk6dz00O2Rve2lmKDQ9PSgwfHcpKXtpZihnZT4oYj0r''@;'; + put 'put ''X1tMZT4+M10pKXtpZigoQT1wZSsgKygwfH5+KChiLUspKihwZS1iZSkvKEstZ2UpKSkpPj0obT0rX1tPZSs4Pj4zXSkmJkE8PStfW0xlKzg+PjNdKXtSPUEsRz1iO2JyZWFrfX1lbHNlIG09K19bT2UrOD4+M107aWYoYmU8bSYmISghKChNPUsrICsoMHx+figobS1wZSkqKEstZ2UpLyhwZS1i''@;'; + put 'put ''ZSkpKSk+PWspfCEoTTw9YikpKXtSPW0sRz1NO2JyZWFrfWlmKGJlPihtPStfW0xlKzg+PjNdKSYmISghKChWZT1LKyArKDB8fn4oKG0tcGUpKihLLWdlKS8ocGUtYmUpKSkpPj1rKXwhKFZlPD1iKSkpe1I9bSxHPVZlO2JyZWFrfWFbRD4+Ml09YVtjPj4yXSxhW0QrND4+Ml09YVtjKzQ+PjJd''@;'; + put 'put ''LGFbRCs4Pj4yXT1hW2MrOD4+Ml0sYVtEKzEyPj4yXT1hW2MrMTI+PjJdLFJlPTB8RkkoRCxSZSksYVtEPj4yXT1hW2Y+PjJdLGFbRCs0Pj4yXT1hW2YrND4+Ml0sYVtEKzg+PjJdPWFbZis4Pj4yXSxhW0QrMTI+PjJdPWFbZisxMj4+Ml0sSGU9MHxGSShELEhlKSxhW0Q+PjJdPWFbT2U+PjJd''@;'; + put 'put ''LGFbRCs0Pj4yXT1hW09lKzQ+PjJdLGFbRCs4Pj4yXT1hW09lKzg+PjJdLGFbRCsxMj4+Ml09YVtPZSsxMj4+Ml0scWU9MHxGSShELHFlKSxhW0Q+PjJdPWFbTGU+PjJdLGFbRCs0Pj4yXT1hW0xlKzQ+PjJdLGFbRCs4Pj4yXT1hW0xlKzg+PjJdLGFbRCsxMj4+Ml09YVtMZSsxMj4+Ml0sbnQ9''@;'; + put 'put ''MHxGSShELG50KSxhW1dlPj4yXT1SZSxhW1dlKzQ+PjJdPUhlLGFbV2UrOD4+Ml09cWUsYVtXZSsxMj4+Ml09bnQsJHIoMSw4ODA3MSxXZSksUHIoMTM4Mzk0LDg3OTQ3LDc4LDg4MTIzKX19d2hpbGUoMCk7X1tsPj4zXT1HLF9bbCs4Pj4zXT1SLGxlPW90fWZ1bmN0aW9uIFhoKGwsYyxmKXt2''@;'; + put 'put ''YXIgcDtwPS41KigrX1s4KyhmfD0wKT4+M10rICtfWzgrKGN8PTApPj4zXSksX1sobHw9MCk+PjNdPS41KigrX1tmPj4zXSsgK19bYz4+M10pLF9bbCs4Pj4zXT1wfWZ1bmN0aW9uIERVKGwsYyl7bHw9MCxjfD0wO3ZhciBiLGssTSxmPTAscD0wLG09MCxBPTAsdz0wO2ZvcihNPWxlLGxlPWxl''@;'; + put 'put ''KzgwfDAsYj1NKzE2fDAsaz1NLHA9MDs0IT0oMHxwKTspYVsodz1iKyhwPDw0KXwwKT4+Ml09YVsoQT1sKyhwPDw0KXwwKT4+Ml0sYVt3KzQ+PjJdPWFbQSs0Pj4yXSxhW3crOD4+Ml09YVtBKzg+PjJdLGFbdysxMj4+Ml09YVtBKzEyPj4yXSxwPXArMXwwO3JldHVybihmPStCSShsLDAsMSwr''@;'; + put 'put ''X1tjPj4zXSwrX1socD1jKzh8MCk+PjNdLCtfWyh3PWMrMjR8MCk+PjNdKSk+PTAmZjwyP3d1KGssYiwzLGYsbCwwKTpmPTIsKG09K0JJKGwsMCxmPjE/MTpmLCtfWyhBPWMrMTZ8MCk+PjNdLCtfW3A+PjNdLCtfW3c+PjNdKSk+PTAmbTxmJiYod3UoayxiLDMsbSxsLDApLGY9bSksKG09K1BJ''@;'; + put 'put ''KGwsMCxmPjE/MTpmLCtfW3A+PjNdLCtfW2M+PjNdLCtfW0E+PjNdKSk+PTAmbTxmJiYod3UoayxiLDMsbSxsLDApLGY9bSksKG09K1BJKGwsMCxmPjE/MTpmLCtfW3c+PjNdLCtfW2M+PjNdLCtfW0E+PjNdKSk+PTAmbTxmJiYod3UoayxiLDMsbSxsLDApLGY9bSksbGU9TSxmPDJ8MH1mdW5j''@;'; + put 'put ''dGlvbiBCSShsLGMsZixwLG0sQSl7bHw9MCxjPStjLGY9K2YscD0rcCxtPSttLEE9K0E7dmFyIGIsayxNLEQsdz0wO0Q9bGUsbGU9bGUrMTQ0fDAsaz1EKzgwfDAsTT1EKzE2fDAsYj1EO2U6ZG97aWYoYyE9Zil7c3dpdGNoKDB8TFUobCxwKSl7Y2FzZSAwOmM9LTE7YnJlYWsgZTtjYXNlIDE6''@;'; + put 'put ''aWYoK2VvKCsoK19bbCs0OD4+M10tcCkpPD0uMDA1KXtjPSEoKGM9K19bbCs1Nj4+M10pPj1tKXwhKGM8PUEpPy0xOmY7YnJlYWsgZX19d3UoYixsLDMsLjUsayxNKSwoYz0rQkkoayxjLHc9LjUqKGYrYykscCxtLEEpKT49MHx8KGM9K0JJKE0sdyxmLHAsbSxBKSl9fXdoaWxlKDApO3JldHVy''@;'; + put 'put ''biBsZT1ELCtjfWZ1bmN0aW9uIFBJKGwsYyxmLHAsbSxBKXtsfD0wLGM9K2MsZj0rZixwPStwLG09K20sQT0rQTt2YXIgYixrLE0sRCx3PTA7RD1sZSxsZT1sZSsxNDR8MCxrPUQrODB8MCxNPUQrMTZ8MCxiPUQ7ZTpkb3tpZihjIT1mKXtzd2l0Y2goMHxBb2UobCxwKSl7Y2FzZSAwOmM9LTE7''@;'; + put 'put ''YnJlYWsgZTtjYXNlIDE6aWYoK2VvKCsoK19bbCs1Nj4+M10tcCkpPD0uMDA1KXtjPSEoKGM9K19bbCs0OD4+M10pPj1tKXwhKGM8PUEpPy0xOmY7YnJlYWsgZX19d3UoYixsLDMsLjUsayxNKSwoYz0rUEkoayxjLHc9LjUqKGYrYykscCxtLEEpKT49MHx8KGM9K1BJKE0sdyxmLHAsbSxBKSl9''@;'; + put 'put ''fXdoaWxlKDApO3JldHVybiBsZT1ELCtjfWZ1bmN0aW9uIEFvZShsLGMpe3ZhciBmPTAscD0wLG09MCxBPTAsdz0wLGI9MDtmb3IoZj0xLHA9bT0oQT0rX1s4KyhsfD0wKT4+M10pPChjPStjKT8tMTpBPmMmMSxtPTA9PSgwfG0pJjE7NCE9KDB8Zik7KXc9bSsoMCE9KDB8cCkmKDB8KGI9KEE9''@;'; + put 'put ''K19bbCsoZjw8NCkrOD4+M10pPGM/LTE6QT5jJjEpKSE9KDB8cCkmMSl8MCxmPWYrMXwwLHA9YixtPXc7cmV0dXJuIDB8bX1mdW5jdGlvbiBMVShsLGMpe3ZhciBmPTAscD0wLG09MCxBPTAsdz0wLGI9MDtmb3IoZj0xLHA9bT0oQT0rX1sobHw9MCk+PjNdKTwoYz0rYyk/LTE6QT5jJjEsbT0w''@;'; + put 'put ''PT0oMHxtKSYxOzQhPSgwfGYpOyl3PW0rKDAhPSgwfHApJigwfChiPShBPStfW2wrKGY8PDQpPj4zXSk8Yz8tMTpBPmMmMSkpIT0oMHxwKSYxKXwwLGY9ZisxfDAscD1iLG09dztyZXR1cm4gMHxtfWZ1bmN0aW9uIEZJKGwsYyl7dmFyIGYscCxtO3JldHVybiBjfD0wLGY9bGUsbGU9bGUrMTZ8''@;'; + put 'put ''MCxtPStfWzgrKGx8PTApPj4zXSxfWyhwPWYpPj4zXT0rX1tsPj4zXSxfW3ArOD4+M109bSxvbyhjLDg4MTM3LHApLGxlPWYsMHxjfWZ1bmN0aW9uIFJVKGwpe3JldHVybiAwfCgxPT0oMHxmZVsxNTYrKGw9MHxhWzE2KyhsfD0wKT4+Ml0pPj4wXSkmJjE9PSgwfGFbbCsxNzY+PjJdKSYmMT09''@;'; + put 'put ''KDB8YVtsKzE4ND4+Ml0pPzA9PSgwfGFbbCsxMDQ+PjJdKSYxOjApfWZ1bmN0aW9uIFBVKGwpe3JldHVybiAwfCgxPT0oMHxmZVsxNTYrKGw9MHxhWzE2KyhsfD0wKT4+Ml0pPj4wXSkmJjE9PSgwfGFbbCsxODQ+PjJdKSYmMT09KDB8YVtsKzE3Nj4+Ml0pPzA9PSgwfGFbbCsxMDQ+PjJdKSYx''@;'; + put 'put ''OjApfWZ1bmN0aW9uIEhVKGwsYyl7dmFyIGYscDswIT0oMHwocD0wfGFbKGw9KDB8YVsyNjgrKDB8YVsxNisobHw9MCk+PjJdKT4+Ml0pKyhhWzIzMisoZj0wfGFbMTYrKGN8PTApPj4yXSk+PjJdPDwyKXwwKT4+Ml0pKSYmKDB8YVsyMzYrKDB8YVtwKzE2Pj4yXSk+PjJdKTw9KDB8YVtmKzIz''@;'; + put 'put ''Nj4+Ml0pfHwoYVtsPj4yXT1jKX1mdW5jdGlvbiBOVShsLGMpe2x8PTAsY3w9MDtmb3IodmFyIGY9MCxwPTA7MHxmZVsxMTIrKHA9MHxhW2wrMTY+PjJdKT4+MF07KWw9MHxhW3ArMTE2Pj4yXTtmb3IoOzB8ZmVbMTEyKyhmPTB8YVtjKzE2Pj4yXSk+PjBdOyljPTB8YVtmKzExNj4+Ml07cmV0''@;'; + put 'put ''dXJuIDB8KGw9MD09KDB8ZmVbcCsxNTM+PjBdKSYmMD09KDB8ZmVbZisxNTM+PjBdKT8oMHxBcigoMHxhWzIzMisoMHxhWzE2KygwfGFbKDM9PSgwfChmPTMmYVtsPj4yXSkpP2w6bCs0OHwwKSs0MD4+Ml0pPj4yXSk+PjJdKS0oMHxhWzIzMisoMHxhWzE2KygwfGFbKDI9PSgwfGYpP2w6bCst''@;'; + put 'put ''NDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSl8MCwoMHxhWzIzMisoMHxhWzE2KygwfGFbKDM9PSgwfChwPTMmYVtjPj4yXSkpP2M6Yys0OHwwKSs0MD4+Ml0pPj4yXSk+PjJdKS0oMHxhWzIzMisoMHxhWzE2KygwfGFbKDI9PSgwfHApP2M6YystNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSl8MCkpPjAm''@;'; + put 'put ''MTowKX1mdW5jdGlvbiBUSChsLGMpe2x8PTAsY3w9MDt2YXIgYixrLGY9MCxwPTAsbT0wLEE9MCx3PTA7Zm9yKGs9bGUsbGU9bGUrNTQ0fDAsZnVuY3Rpb24gVlUobCxjLGYpe2x8PTAsYVsoY3w9MCk+PjJdPWZ8PTAsYVtjKzQ+PjJdPWYrNTEyLGFbYysxMj4+Ml09MCxhW2MrOD4+Ml09MCxh''@;'; + put 'put ''W2w+PjJdPWMsYVtsKzQ+PjJdPWMsYVtsKzg+PjJdPWZ9KGI9ays1Mjh8MCxrKzUxMnwwLGspLGZlWzE5Mzc3MF09KGY9MSsoMHxmZVsxOTM3NzBdKTw8MjQ+PjI0KTw8MjQ+PjI0PT0wPzE6ZixhWzIyMCsoZj0wfGFbbCsxNj4+Ml0pPj4yXT0wLGFbZisyMzI+PjJdPTAsZj0oMHxjKT4wLGM9''@;'; + put 'put ''MHxEdChsKTtjOylmJiYwIT0oMHwodz0wfGFbMjEyKyhBPTB8YVtjKzE2Pj4yXSk+PjJdKSk/KG09MHxhWygwfGFbMjY4KygwfGFbdysxNj4+Ml0pPj4yXSkrKGFbQSsyMzI+PjJdPDwyKT4+Ml0scD03KTpwPTYsNj09KDB8cCkmJihwPTAsKDB8Yyk9PSgwfGcxKGMpKSkmJihtPWMscD03KSw3''@;'; + put 'put ''PT0oMHxwKSYmKDB8ZmVbMTU3KygwfGFbbSsxNj4+Ml0pPj4wXSkhPSgwfGZlWzE5Mzc3MF0pJiYod29lKGwpLGpVKGIsbCxtKSxib2UobCkpLGM9MHx6dChsLGMpOyhmdW5jdGlvbiBzayhsKXt2YXIgYz0wO2ZvcihsPTB8YVsxMisoMHxhWyhsfD0wKT4+Ml0pPj4yXTtsOyljPTB8YVtsKzEy''@;'; + put 'put ''Pj4yXSxGdCgwfGFbbD4+Ml0pLEZ0KGwpLGw9Y30pKGIpLGxlPWt9ZnVuY3Rpb24gd29lKGwpe2FbMTkyKygwfGFbMTYrKGx8PTApPj4yXSk+PjJdPTAsYVs0Njc5M109MH1mdW5jdGlvbiBqVShsLGMsZil7Y3w9MDt2YXIgayxNLEQsRyxLLHA9MCxtPTAsQT0wLHc9MCxiPTAsUj0wO0s9bGUs''@;'; + put 'put ''bGU9bGUrMzJ8MCxHPUssWlUobHw9MCxmfD0wKSxrPUcrOHwwLE09RysxNnwwLEQ9RysyNHwwO2U6Zm9yKDtSPTB8SUgobCksUjspaWYoZj1SKzE2fDAsKDB8ZmVbMTU3KygwfGFbZj4+Ml0pPj4wXSkhPSgwfGZlWzE5Mzc3MF0pKWZvcihESChjLFIpLEE9MHxhW2Y+PjJdLG09QSsxODB8MCxi''@;'; + put 'put ''PTB8YVttKzQ+PjJdLHc9RyxhW3c+PjJdPWFbbT4+Ml0sYVt3KzQ+PjJdPWIsdz1BKzE3MnwwLGI9MHxhW3crND4+Ml0sbT1rLGFbbT4+Ml09YVt3Pj4yXSxhW20rND4+Ml09YixtPUErMTg4fDAsYj0wfGFbbSs0Pj4yXSx3PU0sYVt3Pj4yXT1hW20+PjJdLGFbdys0Pj4yXT1iLEE9QSsxOTZ8''@;'; + put 'put ''MCx3PTB8YVtBKzQ+PjJdLGI9RCxhW2I+PjJdPWFbQT4+Ml0sYVtiKzQ+PjJdPXcsYj0zOzspe2lmKCgwfGIpPD0tMSljb250aW51ZSBlO2Y9MHxhW0crKGI8PDMpPj4yXTt0OmRve2lmKDB8Zilmb3Iodz0oMHxhW0crKGI8PDMpKzQ+PjJdKS0xfDAsQT1mKyh3PDwyKXwwOzspe2lmKCgwfHcp''@;'; + put 'put ''PD0tMSlicmVhayB0OygwfChmPTB8YVsoMj09KDB8KG09MyZhWyhwPTB8YVtBPj4yXSk+PjJdKSk/cDpwKy00OHwwKSs0MD4+Ml0pKT09KDB8UikmJihmPTB8YVsoMz09KDB8bSk/cDpwKzQ4fDApKzQwPj4yXSksKDB8ZmVbMTU3KygwfGFbZisxNj4+Ml0pPj4wXSkhPSgwfGZlWzE5Mzc3MF0p''@;'; + put 'put ''JiYoMHxmKT09KDB8ZzEoZikpJiZaVShsLGYpLEE9QSstNHwwLHc9dystMXwwfX13aGlsZSgwKTtiPWIrLTF8MH1sZT1LfWZ1bmN0aW9uIGJvZShsKXt2YXIgZixwLGM9MCxtPTA7YVsobT0yMjArKGM9MHxhWyhmPTE2KyhsfD0wKXwwKT4+Ml0pfDApPj4yXT1sPTErKHA9MHxhW20+PjJdKXww''@;'; + put 'put ''LGw9KGM9MHxhW2MrMjE2Pj4yXSk/MHxWMChjLGw8PDIpOjB8UW4obDw8MiksYVsyMTYrKG09MHxhW2Y+PjJdKT4+Ml09bCxhW2wrKHA8PDIpPj4yXT1hW20rMTkyPj4yXX1mdW5jdGlvbiBaVShsLGMpe2N8PTA7dmFyIHAsbSxBLHcsYixmPTA7Yj1sZSxsZT1sZSsxNnwwLG09Yis4fDAscD1i''@;'; + put 'put ''LCgwfChmPTB8YVsodz04KyhsfD0wKXwwKT4+Ml0pKT09KDB8YVs0KyhsPTB8YVsoQT1sKzR8MCk+PjJdKT4+Ml0pJiYoKGY9MHxhW2wrMTI+PjJdKXx8KChmPTB8dnIoMTYpKXx8JHIoMSw5ODk2OSxwKSxhW2YrOD4+Ml09YVtBPj4yXSxhW2YrMTI+PjJdPTAsbD0wfHZyKDRlNiksYVtmPj4y''@;'; + put 'put ''XT1sLGx8fCgkcigxLDg4Mzc3LG0pLGw9MHxhW2Y+PjJdKSxhW2YrND4+Ml09bCs0ZTYsYVsxMisoMHxhW0E+PjJdKT4+Ml09ZiksYVtBPj4yXT1mLGFbdz4+Ml09Zj0wfGFbZj4+Ml0pLGZlWzE1NysoMHxhW2MrMTY+PjJdKT4+MF09MSsoMHxYdFsxOTM3NzBdKSxhW3c+PjJdPWYrNCxhW2Y+''@;'; + put 'put ''PjJdPWMsbGU9Yn1mdW5jdGlvbiBJSChsKXt2YXIgZixwLG0sYz0wLEE9MDtyZXR1cm4oMHwoYz0wfGFbKG09OCsobHw9MCl8MCk+PjJdKSk9PSgwfGFbKHA9MHxhWyhmPWwrNHwwKT4+Ml0pPj4yXSk/KDB8cCk9PSgwfGFbbD4+Ml0pP2M9MDooYVtmPj4yXT1jPTB8YVtwKzg+PjJdLGFbbT4+''@;'; + put 'put ''Ml09Yz0wfGFbYys0Pj4yXSxBPTQpOkE9NCw0PT0oMHxBKSYmKGFbbT4+Ml09Yz1jKy00fDAsYz0wfGFbYz4+Ml0pLDB8Y31mdW5jdGlvbiBESChsLGMpe2N8PTA7dmFyIGYscCxtPTA7YVsobT0yMzIrKHA9MHxhWzE2KyhsfD0wKT4+Ml0pfDApPj4yXT0xKygwfGFbbT4+Ml0pLGZlWzE1Nyso''@;'; + put 'put ''bT0wfGFbYysxNj4+Ml0pPj4wXT0wfGZlWzE5Mzc3MF0sZj1tKzE2OHwwLChsPTB8YVs0Njc5M10pPyhhW2Y+PjJdPWwsYVsxNjQrKDB8YVtsKzE2Pj4yXSk+PjJdPWMpOihhW2Y+PjJdPTAsYVtwKzE5Mj4+Ml09YyksYVs0Njc5M109YyxhW20rMTY0Pj4yXT0wfWZ1bmN0aW9uIFEzKGwpe3Zh''@;'; + put 'put ''ciBmLEEsYz0wLHA9MCxtPTAsdz0wO2Y9KEE9KDB8KG09MHxhWzIzNisoMHxhWyhwPTE2Kyh3PTB8YVsoMz09KDB8KGM9MyZhWyhsfD0wKT4+Ml0pKT9sOmwrNDh8MCkrNDA+PjJdKXwwKT4+Ml0pPj4yXSkpPCgwfChjPTB8YVsyMzYrKDB8YVsxNisoMHxhWygyPT0oMHxjKT9sOmwrLTQ4fDAp''@;'; + put 'put ''KzQwPj4yXSk+PjJdKT4+Ml0pKSk/YzptLHA9KHc9MHxhWzE5NisoMHxhWzE2KygwfEFhKHcpKT4+Ml0pPj4yXSkrKGFbMjMyKygwfGFbcD4+Ml0pPj4yXTw8NikrNHwwLGM9QT9tOmM7ZTpmb3IoO2M9YysxfDAsISgoMHxjKT49KDB8ZikpOyl7c3dpdGNoKDB8ZmVbMTU2KyhtPTB8YVsxNiso''@;'; + put 'put ''MHxhWygwfGFbcD4+Ml0pKyhjPDwyKT4+Ml0pPj4yXSk+PjBdKXtjYXNlIDA6YnJlYWsgZTtjYXNlIDE6YnJlYWs7ZGVmYXVsdDpjb250aW51ZSBlfWlmKDB8YVttKzEwND4+Ml0pYnJlYWt9aWYoKDB8Yyk9PSgwfGYpKWRve2ZlWzExMysodz0wfGFbbCsxNj4+Ml0pPj4wXT0xLGw9MHxhW3cr''@;'; + put 'put ''MTcyPj4yXX13aGlsZSgwIT0oMHxsKSl9ZnVuY3Rpb24gelUobCl7dmFyIGM9MCxmPTAscD0wLG09MDtmb3IoMHxpdFsyMzYrKGw9MHxhWyhtPTE2KyhsfD0wKXwwKT4+Ml0pPj4xXSYmUHIoODg0MzQsODg0MTcsMTkwLDg4NDUzKSxjPTMrKDB8aXRbbCsyMzg+PjFdKXwwLGM9NjQrKGw9KGw9''@;'; + put 'put ''MHxhW2wrMTk2Pj4yXSk/MHxWMChsLGM8PDYpOjB8UW4oYzw8NikpfDAsYVsxOTYrKGw9MHxhW20+PjJdKT4+Ml09YyxsPTB8aXRbbCsyMzg+PjFdOyEoKDB8bCk8PS0xKTspe2Y9YysobDw8Nil8MCxsPWMrKChwPWwrLTF8MCk8PDYpfDAsYz1mKzY0fDA7ZG97YVtmPj4yXT1hW2w+PjJdLGY9''@;'; + put 'put ''Zis0fDAsbD1sKzR8MH13aGlsZSgoMHxmKTwoMHxjKSk7bD1wLGM9MHxhWzE5NisoMHxhW20+PjJdKT4+Ml19YVtjKyhsPDw2KSs4Pj4yXT0wLGFbYysobDw8Nik+PjJdPTAsZj0wfHZyKDgpLGFbKHA9MHxhWzE5NisobT0wfGFbbT4+Ml0pPj4yXSkrKGw8PDYpKzEyPj4yXT1mLGFbcCsobDw8''@;'; + put 'put ''NikrND4+Ml09ZixhW3ArKGw8PDYpKzU2Pj4yXT0wLF9bcCsobDw8NikrMjQ+PjNdPTEsX1twKyhsPDw2KSsxNj4+M109MSxfW3ArKGw8PDYpKzQwPj4zXT0xLF9bcCsobDw8NikrMzI+PjNdPTEsaXRbKG09bSsyMzZ8MCk+PjFdPSgwfGl0W20+PjFdKS0xPDwxNj4+MTZ9ZnVuY3Rpb24gSHUo''@;'; + put 'put ''bCl7dmFyIGM9MCxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLEs9MCxwZT0wOzB8YVs5NisoMHxhWyh3PTE2KyhsfD0wKXwwKT4+Ml0pPj4yXSYmKE09bCs0OHwwLGI9MHxBYSgwfGFbKDM9PSgzJmFbbD4+Ml18MCk/bDpNKSs0MD4+Ml0pLGM9MHxhWzIzMiso''@;'; + put 'put ''MHxhWzE2KygwfGFbKDM9PSgzJmFbbD4+Ml18MCk/bDpNKSs0MD4+Ml0pPj4yXSk+PjJdLGs9MHxmdW5jdGlvbiBWbGUobCxjKXt2YXIgdyxiLGssRCxSLGY9MCxwPTAsbT0wLEE9MCxNPTA7Zm9yKFI9bGUsbGU9bGUrMzJ8MCxtPVIrNHwwLEE9Uix3PTB8YVsobD0wfGFbMTk2KygwfGFbMTYr''@;'; + put 'put ''KGx8PTApPj4yXSk+PjJdKSsoKE09KDB8YVsyMzIrKDB8YVsxNisocD0wfGFbKDM9PSgwfChmPTMmYVsoY3w9MCk+PjJdKSk/YzpjKzQ4fDApKzQwPj4yXSk+PjJdKT4+Ml0pLTF8MCk8PDYpKzQ+PjJdLGw9MHxhW2wrKE08PDYpPj4yXSxhWyhNPTgrKGs9Uis4fDApfDApPj4yXT0tMSxhW2s+''@;'; + put 'put ''PjJdPS0xLGFbKEQ9aysxMnwwKT4+Ml09bCxhWyhiPWsrNHwwKT4+Ml09bCxNSihwLDB8YVsoMj09KDB8Zik/YzpjKy00OHwwKSs0MD4+Ml0sbSxBKSxtPTB8YVttPj4yXSxBPTB8YVtBPj4yXSxmPTAscD1sLGM9LTE7ISgoMHxmKT49KDB8cCl8fChwPXArLTF8MCxQTigwfGFbdysoZjw8Mik+''@;'; + put 'put ''PjJdLGssbSxBKSwoMHxmKSE9KDB8cCkmJlBOKDB8YVt3KyhwPDwyKT4+Ml0sayxtLEEpLGw9MHxhW2I+PjJdLGM9MHxhW2s+PjJdLChsLWN8MCk8MikpOylmPWYrMXwwO3JldHVybiBsZT1SLDB8KChsPSgwfGMpPigwfGwpPygwfGFbRD4+Ml0pKygwfGFbTT4+Ml0pfDA6bCtjfDApKzF8MCkv''@;'; + put 'put ''Mn0oYixsKSxwPShBPTB8YVthWyhtPTB8YVsxOTYrKGY9MHxhWyhEPWIrMTZ8MCk+PjJdKT4+Ml0pKygoUj1jKy0xfDApPDw2KSs0Pj4yXT4+Ml0pPytfWzI0KygwfGFbQSsxNj4+Ml0pPj4zXS0rX1ttKyhSPDw2KSsxNj4+M106K19bbSsoYzw8NikrMjQ+PjNdKyArX1syNCsoMHxhWzE2Kygw''@;'; + put 'put ''fGFbYVttKyhjPDw2KSs0Pj4yXT4+Ml0pPj4yXSk+PjNdKyArKDB8YVtmKzI1Mj4+Ml0pLGM9MHxmdW5jdGlvbiBqbGUobCxjLGYpe2Z8PTA7dmFyIHA9MCxtPTAsQT0wLHc9MCxiPTA7Zm9yKHA9KG09MHxhWzE5NisoMHxhWyhBPTE2KyhsfD0wKXwwKT4+Ml0pPj4yXSkrKChjfD0wKTw8Nil8''@;'; + put 'put ''MCxtPShtPTB8YVttKyhjPDw2KSs0Pj4yXSk/MHxWMChtLDgrKGFbcD4+Ml08PDIpfDApOjB8UW4oOCsoYVtwPj4yXTw8Mil8MCksYVsocD0wfGFbMTk2KygwfGFbQT4+Ml0pPj4yXSkrKGM8PDYpKzQ+PjJdPW0scD0wfGFbcCsoYzw8Nik+PjJdOyEoKDB8cCk8PSgwfGYpKTspYVttKyhwPDwy''@;'; + put 'put ''KT4+Ml09Yj0wfGFbbSsoKHc9cCstMXwwKTw8Mik+PjJdLGFbKGI9MjM2KygwfGFbYisxNj4+Ml0pfDApPj4yXT0xKygwfGFbYj4+Ml0pLHA9dztyZXR1cm4gdz0wfFVoKGwpLGFbKGI9bSsoZjw8Mil8MCk+PjJdPXcsYVsyMzYrKHc9MHxhW3crMTY+PjJdKT4+Ml09ZixhW3crMjMyPj4yXT1j''@;'; + put 'put ''LGFbKEE9KDB8YVsxOTYrKDB8YVtBPj4yXSk+PjJdKSsoYzw8Nil8MCk+PjJdPXc9MSsoMHxhW0E+PjJdKXwwLGFbbSsodzw8Mik+PjJdPTAsMHxhW2I+PjJdfShiLFIsayksSz0rX1syNCsoYj0wfGFbOTYrKDB8YVt3Pj4yXSk+PjJdKT4+M10sRz0rX1tiKzMyPj4zXSxfWzgwKyhmPTB8YVso''@;'; + put 'put ''bT1jKzE2fDApPj4yXSk+PjNdPXBlPSh3PTA9PSgxJmFbMTE2KygwfGFbRD4+Ml0pPj4yXXwwKSk/RzpLLGs9fn4oLjUqcGUpLF9bZis5Nj4+M109Rz0uNSoodz9LOkcpLF9bZis4OD4+M109RyxhW2YrMTA0Pj4yXT1iLF9bZisyND4+M109KyhrK35+cHwwKSxmPTB8SmMoYywwfGFbKDM9PSgz''@;'; + put 'put ''JmFbbD4+Ml18MCk/bDpNKSs0MD4+Ml0sbCksX1sxNisoZj0wfGFbZisxNj4+Ml0pPj4zXT0tK19bODgrKDB8YVttPj4yXSk+PjNdLF9bZis1Nj4+M109K19bOTYrKDB8YVsxNisoMHxhWygzPT0oMyZhW2w+PjJdfDApP2w6TSkrNDA+PjJdKT4+Ml0pPj4zXSxmZVtmKzExMj4+MF09NCxmPWwr''@;'; + put 'put ''LTQ4fDAsYz0wfEpjKGMsMHxhWygyPT0oMyZhW2w+PjJdfDApP2w6ZikrNDA+PjJdLGwpLF9bMTYrKGM9MHxhW2MrMTY+PjJdKT4+M109K19bOTYrKG09MHxhW20+PjJdKT4+M10sX1tjKzU2Pj4zXT0rX1s4OCsoMHxhWzE2KygwfGFbKDI9PSgzJmFbbD4+Ml18MCk/bDpmKSs0MD4+Ml0pPj4y''@;'; + put 'put ''XSk+PjNdLGZlW2MrMTEyPj4wXT00LCtfWyhmPShjPTB8YVsxOTYrKDB8YVtEPj4yXSk+PjJdKSsoUjw8NikrMTZ8MCk+PjNdPChwPSsoMHxrKSkmJihfW2Y+PjNdPXApLCtfWyhjPWMrKFI8PDYpKzI0fDApPj4zXTxwJiYoX1tjPj4zXT1wKSxhW20rMTEyPj4yXT1sKX1mdW5jdGlvbiBMSChs''@;'; + put 'put ''LGMsZil7Y3w9MCxmfD0wO3ZhciBrLEssZ2UsYmUsT2UsUmUsSGUscD0wLG09MCxBPTAsdz0wLGI9MCxNPTAsRD0wLFI9MCxHPTAscGU9MCxMZT0wO0hlPWxlLGxlPWxlKzE2MHwwLGJlPUhlKzIwfDAsZ2U9SGUrMTZ8MCxrPUhlLE09SGUrMzJ8MCxPZT0wfGFbMTUyKyhsfD0wKT4+Ml0sYVso''@;'; + put 'put ''TGU9SGUrMjR8MCk+PjJdPTAsYVtiZT4+Ml09MCxhW2dlPj4yXT0wLFJlPTB8eGYobCksYVtSZSs0Pj4yXT0zLGFbUmUrOD4+Ml09YyxhW1JlKzEyPj4yXT05LDB8KGI9MHxhWzk2KygwfGFbKEs9YysxNnwwKT4+Ml0pPj4yXSkmJjA9PSgwfGZlW2IrODI+PjBdKSYmKDB8bmcoMHxMaShjLDEw''@;'; + put 'put ''MDEwNSksMCkpPDwyND4+MjQmJihpdFsoYj1SZSsyNjB8MCk+PjFdPTUxMnxpdFtiPj4xXSksMHxmJiYwfGFbOCsoMHxhW0s+PjJdKT4+Ml0mJmQyKGwsZiksMHwoZj0wfGFbNDcyMDZdKSYmMHwocD0wfEhvKGMsZikpJiYwfGZlW3A+PjBdJiZ4aChsLCtNbChjLDB8YVs0NzIwNl0sMSwwKSk7''@;'; + put 'put ''ZG97aWYoMTY3NzcyMTYmT2V8MCl7aWYoZj1jKzQ4fDAsKDB8aHJbMTc4KygwfGFbMTYrKDB8Y3IoMHxhWygzPT0oMyZhW2M+PjJdfDApP2M6ZikrNDA+PjJdKSk+PjJdKT4+MV0pPjIpe19bUmUrMTc2Pj4zXT0rKDB8fn4oKHc9NzIqK19bMTYrKDB8YVsxMzIrKDB8YVsxNisoMHxhWygzPT0o''@;'; + put 'put ''MyZhW2M+PjJdfDApP2M6ZikrNDA+PjJdKT4+Ml0pPj4yXSk+PjNdKSsodz49MD8uNTotLjUpKSksX1tSZSsxODQ+PjNdPSsoMHx+figodz03MiorX1sxNisoMHxhWzEzMisoMHxhWzE2KygwfGFbKDI9PSgzJmFbYz4+Ml18MCk/YzpjKy00OHwwKSs0MD4+Ml0pPj4yXSk+PjJdKT4+M10pKyh3''@;'; + put 'put ''Pj0wPy41Oi0uNSkpKTticmVha31hWyhiPVJlKzE3NnwwKT4+Ml09MCxhW2IrND4+Ml09MCxhW2IrOD4+Ml09MCxhW2IrMTI+PjJdPTA7YnJlYWt9fXdoaWxlKDApO2lmKDMyNzY4Jk9lfDAmJigoZj0wfGFbOTYrKGI9MHxhW0s+PjJdKT4+Ml0pP2FbUmUrMTkyPj4yXT1mPTB8YVtmPj4yXTpm''@;'; + put 'put ''PTB8YVtSZSsxOTI+PjJdLGFbKHA9UmUrMTk2fDApPj4yXT1mLGFbKEE9UmUrMjA0fDApPj4yXT1mLGFbKG09UmUrMjAwfDApPj4yXT1mLDB8KGY9MHxhW2IrMTA4Pj4yXSkmJihhW3A+PjJdPWFbZj4+Ml0pLDB8KGY9MHxhW2IrMTA0Pj4yXSkmJihhW20+PjJdPWFbZj4+Ml0pLDB8KGY9MHxh''@;'; + put 'put ''W2IrMTAwPj4yXSkmJihhW0E+PjJdPWFbZj4+Ml0pKSw2NTUzNiZPZSl7dXMoaywxMjgsTSksYVtSZSsyMTI+PjJdPTB8bTIoMHx5RihsLGMsayksYyksQzIoayksMCE9KDB8KGY9MHxMaShjLDE0MTA1NSkpKSYmMCE9KDB8ZmVbZj4+MF0pfHwwIT0oMHwoZj0wfExpKGMsMTExNDc3KSkpJiYw''@;'; + put 'put ''IT0oMHxmZVtmPj4wXSk/RD0zMTpwPTAsMzE9PSgwfEQpJiYocD0wfG0yKGYsYykpLEQ9MCE9KDB8KGY9MHxMaShjLDEwMDExOCkpKSYmMCE9KDB8ZmVbZj4+MF0pPzM2OjM0O2Rve2lmKDM0PT0oMHxEKSl7aWYoMHwoZj0wfExpKGMsMTAwMTI3KSkmJjB8ZmVbZj4+MF0pe0Q9MzY7YnJlYWt9''@;'; + put 'put ''MHxwJiYoZj0wfHJhKHApLEQ9MzkpfX13aGlsZSgwKTszNj09KDB8RCkmJihmPTB8bTIoZixjKSxEPTM5KSwzOT09KDB8RCkmJihhW1JlKzIwOD4+Ml09ZiksRD0wIT0oMHwoZj0wfExpKGMsMTAwMTM1KSkpJiYwIT0oMHxmZVtmPj4wXSk/NDQ6NDI7ZG97aWYoNDI9PSgwfEQpKXtpZigwfChm''@;'; + put 'put ''PTB8TGkoYywxMDAxNDUpKSYmMHxmZVtmPj4wXSl7RD00NDticmVha30wfHAmJihmPTB8cmEocCksRD00Nyl9fXdoaWxlKDApOzQ0PT0oMHxEKSYmKGY9MHxtMihmLGMpLEQ9NDcpLDQ3PT0oMHxEKSYmKGFbUmUrMjE2Pj4yXT1mKSxEPTAhPSgwfChmPTB8TGkoYywxMDAxNTQpKSkmJjAhPSgw''@;'; + put 'put ''fGZlW2Y+PjBdKT81Mjo1MDtkb3tpZig1MD09KDB8RCkpe2lmKDB8KGY9MHxMaShjLDEwMDE2MykpJiYwfGZlW2Y+PjBdKXtEPTUyO2JyZWFrfTB8cCYmKGFbUmUrMjIwPj4yXT0wfHJhKHApKX19d2hpbGUoMCk7NTI9PSgwfEQpJiYoYVtSZSsyMjA+PjJdPTB8bTIoZixjKSxpdFsoRD1SZSsy''@;'; + put 'put ''NjB8MCk+PjFdPTEyOHxpdFtEPj4xXSksRD0wIT0oMHwoZj0wfExpKGMsMTAwMTcxKSkpJiYwIT0oMHxmZVtmPj4wXSk/NTk6NTc7ZG97aWYoNTc9PSgwfEQpKXtpZigwfChmPTB8TGkoYywxMDAxODApKSYmMHxmZVtmPj4wXSl7RD01OTticmVha30wfHAmJihhW1JlKzIyND4+Ml09MHxyYShw''@;'; + put 'put ''KSl9fXdoaWxlKDApOzU5PT0oMHxEKSYmKGFbUmUrMjI0Pj4yXT0wfG0yKGYsYyksaXRbKEQ9UmUrMjYwfDApPj4xXT0yNTZ8aXRbRD4+MV0pLG09cH1lbHNlIG09MDtkb3tpZig4Mzg4NjA4Jk9lKXtpZihwPTAhPSgwfChmPTB8TGkoYywxNDEwODgpKSkmJjAhPSgwfGZlW2Y+PjBdKT8wfG0y''@;'; + put 'put ''KGYsYyk6MCwwIT0oMHwoZj0wfExpKGMsMTAwMTg4KSkpJiYwIT0oMHxmZVtmPj4wXSk/KGl0WyhEPVJlKzI2MHwwKT4+MV09NjR8aXRbRD4+MV0sZj0wfG0yKGYsYyksRD03Mik6RD03MCw3MD09KDB8RCkmJjB8cCYmKGY9MHxyYShwKSxEPTcyKSw3Mj09KDB8RCkmJihhW1JlKzI0ND4+Ml09''@;'; + put 'put ''ZiksMCE9KDB8KGY9MHxMaShjLDEwMDE5OSkpKSYmMCE9KDB8ZmVbZj4+MF0pPyhmPTB8bTIoZixjKSxEPTc4KTpEPTc2LDc2PT0oMHxEKSYmMHxwJiYoZj0wfHJhKHApLEQ9NzgpLDc4PT0oMHxEKSYmKGFbUmUrMjQ4Pj4yXT1mKSwwIT0oMHwoZj0wfExpKGMsMTAwMjExKSkpJiYwIT0oMHxm''@;'; + put 'put ''ZVtmPj4wXSk/KGFbUmUrMjUyPj4yXT0wfG0yKGYsYyksaXRbKE09UmUrMjYwfDApPj4xXT0xNnxpdFtNPj4xXSk6RD04Miw4Mj09KDB8RCkmJjB8cCYmKGFbUmUrMjUyPj4yXT0wfHJhKHApKSwwfChmPTB8TGkoYywxMDAyMjIpKSYmMHxmZVtmPj4wXSl7aXRbKEQ9UmUrMjYwfDApPj4xXT0z''@;'; + put 'put ''MnxpdFtEPj4xXSxhW1JlKzI1Nj4+Ml09MHxtMihmLGMpO2JyZWFrfXA/YVtSZSsyNTY+PjJdPTB8cmEocCk6cD0wfWVsc2UgcD0wfXdoaWxlKDApO2Rve2lmKDQxOTQzMDQmT2V8MCl7RD0wIT0oMHwoZj0wfExpKGMsMTQxMTAxKSkpJiYwIT0oMHxmZVtmPj4wXSk/OTQ6OTI7ZG97aWYoOTI9''@;'; + put 'put ''PSgwfEQpKXtpZigwfChmPTB8TGkoYywxMDAyMzMpKSYmMHxmZVtmPj4wXSl7RD05NDticmVha30wfChmPTB8YVtSZSsxOTI+PjJdKSYmKGFbUmUrMjI4Pj4yXT0wfHJhKGYpKX19d2hpbGUoMCk7aWYoOTQ9PSgwfEQpJiYoTT0wfEE3KGYsYyksYVtSZSsyMjg+PjJdPTB8bTIoTSxjKSxGdChN''@;'; + put 'put ''KSxpdFsoTT1SZSsyNjB8MCk+PjFdPTF8aXRbTT4+MV0pLDAhPSgwfChmPTB8TGkoYywxMDAyNDUpKSkmJjAhPSgwfGZlW2Y+PjBdKT8oTT0wfEE3KGYsYyksYVtSZSsyMzI+PjJdPTB8bTIoTSxjKSxGdChNKSxpdFsoTT1SZSsyNjB8MCk+PjFdPTh8aXRbTT4+MV0pOkQ9MTAwLDEwMD09KDB8''@;'; + put 'put ''RCkmJjB8KFI9MHxhW1JlKzE5Mj4+Ml0pJiYoYVtSZSsyMzI+PjJdPTB8cmEoUikpLDAhPSgwfChmPTB8TGkoYywxMDAyNTgpKSkmJjAhPSgwfGZlW2Y+PjBdKT8oUj0wfEE3KGYsYyksYVtSZSsyMzY+PjJdPTB8bTIoUixjKSxGdChSKSxpdFsoUj1SZSsyNjB8MCk+PjFdPTJ8aXRbUj4+MV0p''@;'; + put 'put ''OkQ9MTA1LDEwNT09KDB8RCkmJjB8KEc9MHxhW1JlKzIwMD4+Ml0pJiYoYVtSZSsyMzY+PjJdPTB8cmEoRykpLDB8KGY9MHxMaShjLDEwMDI3MCkpJiYwfGZlW2Y+PjBdKXtHPTB8QTcoZixjKSxhW1JlKzI0MD4+Ml09MHxtMihHLGMpLEZ0KEcpLGl0WyhHPVJlKzI2MHwwKT4+MV09NHxpdFtH''@;'; + put 'put ''Pj4xXTticmVha30wfChmPTB8YVtSZSsyMDQ+PjJdKSYmKGFbUmUrMjQwPj4yXT0wfHJhKGYpKX19d2hpbGUoMCk7RnQobSksRnQocCk7ZG97aWYoNDI1OTg0MCZPZXwwJiYwfChwZT0wfGFbOCsoMHxhW0s+PjJdKT4+Ml0pKXtpZigwfGFbUmUrMjA4Pj4yXSl7aWYoISg1MjQyODgmT2UpKWJy''@;'; + put 'put ''ZWFrfWVsc2UgaWYoMD09KDUyNDI4OCZPZXwwKXwwPT0oMHxhW1JlKzIyOD4+Ml0pKWJyZWFrO2Zvcih3PSh3PS41KitfWzE1MisoMHxhW2wrMTY+PjJdKT4+M10pPjI/dzoyLHA9MHxhW3BlKzQ+PjJdLGY9MDshKCgwfGYpPj0oMHxwKSk7KUJIKExlLGJlLGdlLCgwfGFbcGU+PjJdKSsoNDgq''@;'; + put 'put ''ZnwwKXwwLHcpLGY9ZisxfDA7aWYoYVtSZSsyNzY+PjJdPW09MHxhW2dlPj4yXSxhW1JlKzI4MD4+Ml09QT0wfGFbYmU+PjJdLDgxOTImT2UpZj0wfGFbTGU+PjJdO2Vsc2V7Zm9yKGY9MCxwPTA7ISgoMHxwKT49KDB8bSkpOylmPSgwfGFbQSsocDw8Mik+PjJdKStmfDAscD1wKzF8MDtNaChs''@;'; + put 'put ''LExlPTB8YVtMZT4+Ml0sTGUsZiksZj1MZX1hW1JlKzI4ND4+Ml09ZixhW1JlKzI2ND4+Ml09MixhW1JlKzI3Mj4+Ml09ZixhW1JlKzI2OD4+Ml09YVtBPj4yXX19d2hpbGUoMCk7KGZ1bmN0aW9uIEEzKGwsYyl7Y3w9MDt2YXIgZj0wOzB8KGM9MHxhWzYwKyhsfD0wKT4+Ml0pJiYwfChmPTB8''@;'; + put 'put ''YVtjKzY0Pj4yXSkmJkNvWzEyNyZmXShsKX0pKGwsYyksMD09KDB8KGY9MHxhW1JlKzIwOD4+Ml0pKSYmISgxJml0W1JlKzI2MD4+MV0pfHxHMShsLGYsMHxhW1JlKzIyOD4+Ml0sMHxhW1JlKzI0ND4+Ml0sMHxhW1JlKzIxMj4+Ml0pLGxlPUhlfWZ1bmN0aW9uIEdVKGwsYyxmKXtsfD0wLGN8''@;'; + put 'put ''PTAsZnw9MDt2YXIgT2UsTGUsUmUscWUsbnQsV2Usb3QsU3Qsa3Qsc3QsY3QsYnQsYW4sdXIscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLEs9MCxwZT0wLGdlPTAsYmU9MCxIZT0wLFZlPTAsRXQ9MCxadD0wLFNuPTAsSG49MCxIcj0wLEVyPTAsZnI9MDt1cj1sZSxs''@;'; + put 'put ''ZT1sZSsyNDB8MCxidD11cisyMjR8MCxjdD11cisyMDh8MCxMZT11cisxMjh8MCxPZT11cisxMTJ8MCxIbj11cis2NHwwLG50PXVyKzQ4fDAsV2U9dXIrMzJ8MCxTdD11cixrdD11cisxOTJ8MCxzdD11cisxNzZ8MCxSZT11cisxNjB8MCxxZT11cisxNDR8MCxhWyhvdD11cisxNnwwKT4+Ml09''@;'; + put 'put ''MCxhW290KzQ+PjJdPTAsYVtvdCs4Pj4yXT0wLGFbb3QrMTI+PjJdPTAsYW49K19bMTUyKygwfGFbbCsxNj4+Ml0pPj4zXSxEOSgwfExpKGMsMTAwMDMyKSksWnQ9YysxNnwwO2U6ZG97aWYoMHxhWzgrKDB8YVtadD4+Ml0pPj4yXSl7U249K01sKGMsMHxhWzQ3MTg4XSwxLDApLHc9MHx2Mihj''@;'; + put 'put ''LDB8YVs0NzE3Nl0sMTk1MDU5KSxiZT0wIT0oMHxmKTt0OmRve2lmKGJlKWZvcihwPWY7Oyl7aWYobT1wLHA9cCs0fDAsIShtPTB8YVttPj4yXSkpe009MDticmVhayB0fWlmKDExNj09KDB8ZmVbbT4+MF0pJiYhKDB8WmkobSwxMTExMTcpKSl7TT0xO2JyZWFrfX1lbHNlIE09MH13aGlsZSgw''@;'; + put 'put ''KTtBPXcsUj0wLG09MDt0OmZvcig7Oyl7c3dpdGNoKDB8ZmVbQT4+MF0pe2Nhc2UgMDpicmVhayB0O2Nhc2UgNTg6cD1SKzF8MDticmVhaztjYXNlIDU5OnA9UixtPW0rMXwwO2JyZWFrO2RlZmF1bHQ6cD1SfUE9QSsxfDAsUj1wfWlmKDAhPSgwfG0pJihrPTAhPSgwfFIpKSl7aWYoISgwfFFV''@;'; + put 'put ''KGwsYyxmLHcsUisxfDAsU24sYW4pKSlicmVhaztiPTEzNzMxNH1lbHNlIGI9dztpZigxJihwPTB8WHRbMTE1KygwfGFbWnQ+PjJdKT4+MF0pPyhBPTEwNjI0OCxwPTEwNjI0MCx3PTE4ODcxMixtPTE4ODcxMixEPTE4KToyJnA/KEE9MTA2MjY0LHA9MTA2MjU2LHc9MTg4NzEyLG09MTg4NzEy''@;'; + put 'put ''LEQ9MTgpOjgmcD8oQT0xMDYyODAscD0xMDYyNzIsdz0xODg3MTIsbT0xODg3MTIsRD0xOCk6NCZwPyhBPTEwNjI5NixwPTEwNjI4OCx3PTE4ODcxMixtPTE4ODcxMixEPTE4KToobT1iLEE9MHxCYShjLDB8YVs0NzE3N10sYikpLDE4PT0oMHxEKSYmKG09MHxCYShjLG09MHxhW20+PjJdLDB8''@;'; + put 'put ''SEkoYixwKSkscD0wfEJhKGMsMHxhW3c+PjJdLEEpLCgwfG0pPT0oMHxiKT8obT1iLEE9cCk6KG1hKGwsbSksQT1wKSksKDB8QSkhPSgwfGIpJiZobChsLEEpLE08PDI0Pj4yNCl7bT0wPT0oMHxmZVttPj4wXSk/MTM3MzE0Om0scD0wPT0oMHxmZVtBPj4wXSk/MTM3MzE0OkEsbWEobCwxMzcz''@;'; + put 'put ''NzkpLGhsKGwsbSksRz0wfGFbYVs4KygwfGFbWnQ+PjJdKT4+Ml0+PjJdLEs9KGdlPUhuKSs0OHwwO2Rve2FbZ2U+PjJdPWFbRz4+Ml0sZ2U9Z2UrNHwwLEc9Rys0fDB9d2hpbGUoKDB8Z2UpPCgwfEspKTtpZihadD0wfGZsZShIbiwwfFE1KGMpLGFuLDAsMCksa2EobCwwfGFbWnQrOD4+Ml0s''@;'; + put 'put ''MHxhW1p0Pj4yXSwxKSxsdmUoWnQpLG1hKGwsbSksKDB8cCkhPSgwfG0pJiZobChsLHApLDB8KHA9MHxhW0huKzg+PjJdKSYmKFp0PTB8YVtIbj4+Ml0sYVtjdD4+Ml09YVsoRXQ9SG4rMTZ8MCk+PjJdLGFbY3QrND4+Ml09YVtFdCs0Pj4yXSxhW2N0Kzg+PjJdPWFbRXQrOD4+Ml0sYVtjdCsx''@;'; + put 'put ''Mj4+Ml09YVtFdCsxMj4+Ml0sYVtidD4+Ml09YVtadD4+Ml0sYVtidCs0Pj4yXT1hW1p0KzQ+PjJdLGFbYnQrOD4+Ml09YVtadCs4Pj4yXSxhW2J0KzEyPj4yXT1hW1p0KzEyPj4yXSxRZChsLDIsY3QsYnQsU24sYW4scCkpLCEocD0wfGFbSG4rMTI+PjJdKSlicmVhaztadD1IbiszMnwwLEhu''@;'; + put 'put ''PSgwfGFbSG4+PjJdKSsoKDB8YVtIbis0Pj4yXSktMTw8NCl8MCxhW2N0Pj4yXT1hW1p0Pj4yXSxhW2N0KzQ+PjJdPWFbWnQrND4+Ml0sYVtjdCs4Pj4yXT1hW1p0Kzg+PjJdLGFbY3QrMTI+PjJdPWFbWnQrMTI+PjJdLGFbYnQ+PjJdPWFbSG4+PjJdLGFbYnQrND4+Ml09YVtIbis0Pj4yXSxh''@;'; + put 'put ''W2J0Kzg+PjJdPWFbSG4rOD4+Ml0sYVtidCsxMj4+Ml09YVtIbisxMj4+Ml0sUWQobCwzLGN0LGJ0LFNuLGFuLHApO2JyZWFrfWlmKHA9MHxhW1p0Pj4yXSwhayl7ZG97aWYoISgzJmZlW3ArMTE1Pj4wXSkpe2lmKDB8ZmVbbT4+MF0pe21hKGwsbSksaGwobCxBKTticmVha31pZihtYShsLDEz''@;'; + put 'put ''NzMxNCksMHxmZVtBPj4wXSl7aGwobCxBKTticmVha31obChsLDEzNzMxNCk7YnJlYWt9fXdoaWxlKDApO2Zvcih3PWwrMTUyfDAsYj1Ibis0fDAsaz1Ibis4fDAsTT1IbisxMnwwLEQ9SG4rMzJ8MCxSPUhuKzE2fDAsQT0wOzspe2lmKCgwfEEpPj0oMHxhWzQrKHA9MHxhWzgrKDB8YVtadD4+''@;'; + put 'put ''Ml0pPj4yXSk+PjJdKSlicmVhayBlO0c9KDB8YVtwPj4yXSkrKDQ4KkF8MCl8MCxLPShnZT1IbikrNDh8MDtkb3thW2dlPj4yXT1hW0c+PjJdLGdlPWdlKzR8MCxHPUcrNHwwfXdoaWxlKCgwfGdlKTwoMHxLKSk7cD0wfGFbSG4+PjJdLG09MHxhW2I+PjJdO2Rve2lmKDE2Mzg0JmFbdz4+Ml0p''@;'; + put 'put ''UWYobCxwLG0sMHxhW2s+PjJdLDB8YVtNPj4yXSwwKTtlbHNlIGlmKFFmKGwscCxtLDAsMCwwKSwwfChwPTB8YVtrPj4yXSkmJihFdD0wfGFbSG4+PjJdLGFbY3Q+PjJdPWFbUj4+Ml0sYVtjdCs0Pj4yXT1hW1IrND4+Ml0sYVtjdCs4Pj4yXT1hW1IrOD4+Ml0sYVtjdCsxMj4+Ml09YVtSKzEy''@;'; + put 'put ''Pj4yXSxhW2J0Pj4yXT1hW0V0Pj4yXSxhW2J0KzQ+PjJdPWFbRXQrND4+Ml0sYVtidCs4Pj4yXT1hW0V0Kzg+PjJdLGFbYnQrMTI+PjJdPWFbRXQrMTI+PjJdLFFkKGwsMixjdCxidCxTbixhbixwKSksMHwocD0wfGFbTT4+Ml0pJiYoRXQ9KDB8YVtIbj4+Ml0pKygoMHxhW2I+PjJdKS0xPDw0''@;'; + put 'put ''KXwwLGFbY3Q+PjJdPWFbRD4+Ml0sYVtjdCs0Pj4yXT1hW0QrND4+Ml0sYVtjdCs4Pj4yXT1hW0QrOD4+Ml0sYVtjdCsxMj4+Ml09YVtEKzEyPj4yXSxhW2J0Pj4yXT1hW0V0Pj4yXSxhW2J0KzQ+PjJdPWFbRXQrND4+Ml0sYVtidCs4Pj4yXT1hW0V0Kzg+PjJdLGFbYnQrMTI+PjJdPWFbRXQr''@;'; + put 'put ''MTI+PjJdLFFkKGwsMyxjdCxidCxTbixhbixwKSksKDB8YVs0KygwfGFbOCsoMHxhW1p0Pj4yXSk+PjJdKT4+Ml0pPjEpe2lmKDB8YVtrPj4yXSl7aWYoIWJlKWJyZWFrfWVsc2UgaWYoIShiZSYwIT0oMHxhW00+PjJdKSkpYnJlYWs7ZDIobCxmKX19d2hpbGUoMCk7QT1BKzF8MH19Zm9yKEhl''@;'; + put 'put ''PTB8QjAoVmU9NDgqKEV0PTB8YVs0KygwfGFbcCs4Pj4yXSk+PjJdKXwwKSxWZT0wfEIwKFZlKSxwZT0uNSorKFIrMnwwKSxiZT1Ibis0fDAsRD1udCs4fDAsUj1XZSs4fDAsYz1vdCs4fDAsZj1TdCs4fDAsTT0wOyEoKDB8TSk+PSgwfEV0KSk7KXtHPSgwfGFbYVs4KygwfGFbWnQ+PjJdKT4+''@;'; + put 'put ''Ml0+PjJdKSsoNDgqTXwwKXwwLEs9KGdlPUhuKSs0OHwwO2Rve2FbZ2U+PjJdPWFbRz4+Ml0sZ2U9Z2UrNHwwLEc9Rys0fDB9d2hpbGUoKDB8Z2UpPCgwfEspKTtmb3IoYVtIZSsoNDgqTXwwKSs0Pj4yXT1wPTB8YVtiZT4+Ml0sYVtWZSsoNDgqTXwwKSs0Pj4yXT1wLGI9MHxCMChrPXA8PDQp''@;'; + put 'put ''LGFbSGUrKDQ4Kk18MCk+PjJdPWIsaz0wfEIwKGspLGFbVmUrKDQ4Kk18MCk+PjJdPWssYVtTdD4+Ml09YVsodz0wfGFbSG4+PjJdKT4+Ml0sYVtTdCs0Pj4yXT1hW3crND4+Ml0sYVtTdCs4Pj4yXT1hW3crOD4+Ml0sYVtTdCsxMj4+Ml09YVt3KzEyPj4yXSx3PTA7ISgoMHx3KT49KHArLTF8''@;'; + put 'put ''MCkpOylhW250Pj4yXT1hW1N0Pj4yXSxhW250KzQ+PjJdPWFbU3QrND4+Ml0sYVtudCs4Pj4yXT1hW1N0Kzg+PjJdLGFbbnQrMTI+PjJdPWFbU3QrMTI+PjJdLGFbV2U+PjJdPWFbKEE9KDB8YVtIbj4+Ml0pKygocD13KzF8MCk8PDQpfDApPj4yXSxhW1dlKzQ+PjJdPWFbQSs0Pj4yXSxhW1dl''@;'; + put 'put ''Kzg+PjJdPWFbQSs4Pj4yXSxhW1dlKzEyPj4yXT1hW0ErMTI+PjJdLEE9Yisodzw8NCl8MCx3PyhhW2N0Pj4yXT1hW290Pj4yXSxhW2N0KzQ+PjJdPWFbb3QrND4+Ml0sYVtjdCs4Pj4yXT1hW290Kzg+PjJdLGFbY3QrMTI+PjJdPWFbb3QrMTI+PjJdLGFbYnQ+PjJdPWFbV2U+PjJdLGFbYnQr''@;'; + put 'put ''ND4+Ml09YVtXZSs0Pj4yXSxhW2J0Kzg+PjJdPWFbV2UrOD4+Ml0sYVtidCsxMj4+Ml09YVtXZSsxMj4+Ml0sUkgoc3QsY3QsYnQpLGFbQT4+Ml09YVtzdD4+Ml0sYVtBKzQ+PjJdPWFbc3QrND4+Ml0sYVtBKzg+PjJdPWFbc3QrOD4+Ml0sYVtBKzEyPj4yXT1hW3N0KzEyPj4yXSk6KGFbY3Q+''@;'; + put 'put ''PjJdPWFbbnQ+PjJdLGFbY3QrND4+Ml09YVtudCs0Pj4yXSxhW2N0Kzg+PjJdPWFbbnQrOD4+Ml0sYVtjdCsxMj4+Ml09YVtudCsxMj4+Ml0sYVtidD4+Ml09YVtXZT4+Ml0sYVtidCs0Pj4yXT1hW1dlKzQ+PjJdLGFbYnQrOD4+Ml09YVtXZSs4Pj4yXSxhW2J0KzEyPj4yXT1hW1dlKzEyPj4y''@;'; + put 'put ''XSxSSChrdCxjdCxidCksYVtBPj4yXT1hW2t0Pj4yXSxhW0ErND4+Ml09YVtrdCs0Pj4yXSxhW0ErOD4+Ml09YVtrdCs4Pj4yXSxhW0ErMTI+PjJdPWFba3QrMTI+PjJdKSxhW290Pj4yXT1hWyhmcj0oRXI9MHxhW0huPj4yXSkrKChLPXcrMnwwKTw8NCl8MCk+PjJdLGFbb3QrND4+Ml09YVtm''@;'; + put 'put ''cis0Pj4yXSxhW290Kzg+PjJdPWFbZnIrOD4+Ml0sYVtvdCsxMj4+Ml09YVtmcisxMj4+Ml0sYVtTdD4+Ml09YVsoRXI9RXIrKChnZT13KzN8MCk8PDQpfDApPj4yXSxhW1N0KzQ+PjJdPWFbRXIrND4+Ml0sYVtTdCs4Pj4yXT1hW0VyKzg+PjJdLGFbU3QrMTI+PjJdPWFbRXIrMTI+PjJdLEhy''@;'; + put 'put ''PWIrKHA8PDQpfDAsRz1iKyhLPDw0KXwwLGFbT2U+PjJdPWFbbnQ+PjJdLGFbT2UrND4+Ml09YVtudCs0Pj4yXSxhW09lKzg+PjJdPWFbbnQrOD4+Ml0sYVtPZSsxMj4+Ml09YVtudCsxMj4+Ml0sYVtMZT4+Ml09YVtXZT4+Ml0sYVtMZSs0Pj4yXT1hW1dlKzQ+PjJdLGFbTGUrOD4+Ml09YVtX''@;'; + put 'put ''ZSs4Pj4yXSxhW0xlKzEyPj4yXT1hW1dlKzEyPj4yXSxhW2N0Pj4yXT1hW2ZyPj4yXSxhW2N0KzQ+PjJdPWFbZnIrND4+Ml0sYVtjdCs4Pj4yXT1hW2ZyKzg+PjJdLGFbY3QrMTI+PjJdPWFbZnIrMTI+PjJdLGFbYnQ+PjJdPWFbRXI+PjJdLGFbYnQrND4+Ml09YVtFcis0Pj4yXSxhW2J0Kzg+''@;'; + put 'put ''PjJdPWFbRXIrOD4+Ml0sYVtidCsxMj4+Ml09YVtFcisxMj4+Ml0sa29lKFJlLE9lLExlLGN0LGJ0KSxhW0c+PjJdPWFbUmU+PjJdLGFbRys0Pj4yXT1hW1JlKzQ+PjJdLGFbRys4Pj4yXT1hW1JlKzg+PjJdLGFbRysxMj4+Ml09YVtSZSsxMj4+Ml0sYVtIcj4+Ml09YVtSZT4+Ml0sYVtIcis0''@;'; + put 'put ''Pj4yXT1hW1JlKzQ+PjJdLGFbSHIrOD4+Ml09YVtSZSs4Pj4yXSxhW0hyKzEyPj4yXT1hW1JlKzEyPj4yXSxfW2srKHc8PDQpPj4zXT0rX1tudD4+M10tK19bQT4+M10qcGUsX1trKyh3PDw0KSs4Pj4zXT0rX1tEPj4zXS0rX1tiKyh3PDw0KSs4Pj4zXSpwZSxfW2srKHA8PDQpPj4zXT0rX1tX''@;'; + put 'put ''ZT4+M10tK19bSHI+PjNdKnBlLF9baysocDw8NCkrOD4+M109K19bUj4+M10tK19bYisocDw8NCkrOD4+M10qcGUsX1trKyhLPDw0KT4+M109K19bb3Q+PjNdLStfW0c+PjNdKnBlLF9baysoSzw8NCkrOD4+M109K19bYz4+M10tK19bYisoSzw8NCkrOD4+M10qcGUsdz1nZSxwPTB8YVtiZT4+''@;'; + put 'put ''Ml07ZnI9Yisodzw8NCl8MCxhW2N0Pj4yXT1hW290Pj4yXSxhW2N0KzQ+PjJdPWFbb3QrND4+Ml0sYVtjdCs4Pj4yXT1hW290Kzg+PjJdLGFbY3QrMTI+PjJdPWFbb3QrMTI+PjJdLGFbYnQ+PjJdPWFbU3Q+PjJdLGFbYnQrND4+Ml09YVtTdCs0Pj4yXSxhW2J0Kzg+PjJdPWFbU3QrOD4+Ml0s''@;'; + put 'put ''YVtidCsxMj4+Ml09YVtTdCsxMj4+Ml0sUkgocWUsY3QsYnQpLGFbZnI+PjJdPWFbcWU+PjJdLGFbZnIrND4+Ml09YVtxZSs0Pj4yXSxhW2ZyKzg+PjJdPWFbcWUrOD4+Ml0sYVtmcisxMj4+Ml09YVtxZSsxMj4+Ml0sX1trKyh3PDw0KT4+M109K19bU3Q+PjNdLStfW2ZyPj4zXSpwZSxfW2sr''@;'; + put 'put ''KHc8PDQpKzg+PjNdPStfW2Y+PjNdLStfW2IrKHc8PDQpKzg+PjNdKnBlLE09TSsxfDB9Zm9yKGY9MCxHPW0scD1tLEE9bSxtPUs9MHxyYShtKTttPTB8bHYobSwxMDc5ODQpOyl7Zm9yKCgwfChjPTA9PSgwfGZlW20+PjBdKT8xMzczMTQ6bSkpIT0oMHxBKSYmKDMmZmVbMTE1KygwfGFbWnQ+''@;'; + put 'put ''PjJdKT4+MF18fChtYShsLGMpLGhsKGwsYykpLEE9YyksYj0wPT0oMHxmKSxrPWY+Pj4wPDIsbT0wOyEoKDB8bSk+PSgwfEV0KSk7KXtmb3IoTT0wfGFbVmUrKDQ4Km18MCk+PjJdLEQ9MHxhW0hlKyg0OCptfDApPj4yXSxSPTB8YVtWZSsoNDgqbXwwKSs0Pj4yXSx3PTA7ISgoMHx3KT49KDB8''@;'; + put 'put ''UikpOylfWyhmcj1NKyh3PDw0KXwwKT4+M109K19bZnI+PjNdKyArX1tEKyh3PDw0KT4+M10sX1soZnI9TSsodzw8NCkrOHwwKT4+M109K19bZnI+PjNdKyArX1tEKyh3PDw0KSs4Pj4zXSx3PXcrMXwwO1FmKGwsTSxSLDAsMCwwKSxtPW0rMXwwfWY9ZisxfDAsRz1iP2M6RyxwPWs/YzpwLG09''@;'; + put 'put ''MH1mb3IoKG09MHxhW0huKzg+PjJdKT8ocD8zJmZlWzExNSsoMHxhW1p0Pj4yXSk+PjBdfHwobWEobCxwKSxobChsLHApKTpwPTAsZnI9MHxhW0huPj4yXSxhW2N0Pj4yXT1hWyhFcj1IbisxNnwwKT4+Ml0sYVtjdCs0Pj4yXT1hW0VyKzQ+PjJdLGFbY3QrOD4+Ml09YVtFcis4Pj4yXSxhW2N0''@;'; + put 'put ''KzEyPj4yXT1hW0VyKzEyPj4yXSxhW2J0Pj4yXT1hW2ZyPj4yXSxhW2J0KzQ+PjJdPWFbZnIrND4+Ml0sYVtidCs4Pj4yXT1hW2ZyKzg+PjJdLGFbYnQrMTI+PjJdPWFbZnIrMTI+PjJdLFFkKGwsMixjdCxidCxTbixhbixtKSxtPXApOm09MCwwfChwPTB8YVsoQT1IbisxMnwwKT4+Ml0pJiYo''@;'; + put 'put ''KDB8bSkhPSgwfEcpJiYwPT0oMyZmZVsxMTUrKDB8YVtadD4+Ml0pPj4wXSkmJihtYShsLEcpLGhsKGwsRykscD0wfGFbQT4+Ml0pLGZyPSgwfGFbSG4+PjJdKSsoKDB8YVtiZT4+Ml0pLTE8PDQpfDAsYVtjdD4+Ml09YVsoRXI9SG4rMzJ8MCk+PjJdLGFbY3QrND4+Ml09YVtFcis0Pj4yXSxh''@;'; + put 'put ''W2N0Kzg+PjJdPWFbRXIrOD4+Ml0sYVtjdCsxMj4+Ml09YVtFcisxMj4+Ml0sYVtidD4+Ml09YVtmcj4+Ml0sYVtidCs0Pj4yXT1hW2ZyKzQ+PjJdLGFbYnQrOD4+Ml09YVtmcis4Pj4yXSxhW2J0KzEyPj4yXT1hW2ZyKzEyPj4yXSxRZChsLDMsY3QsYnQsU24sYW4scCkpLEZ0KEspLHA9MDsh''@;'; + put 'put ''KCgwfHApPj0oMHxFdCkpOylGdCgwfGFbSGUrKDQ4KnB8MCk+PjJdKSxGdCgwfGFbVmUrKDQ4KnB8MCk+PjJdKSxwPXArMXwwO0Z0KEhlKSxGdChWZSl9fXdoaWxlKDApO2xlPXVyfWZ1bmN0aW9uIFdVKGwpe3ZhciBwZSxnZSxPZSxMZSxSZSxIZSxjPTAsZj0wLHA9MCxtPTAsQT0wLHc9MCxi''@;'; + put 'put ''PTAsaz0wLE09MCxEPTAsUj0wLEc9MCxLPTAsYmU9MCxWZT0wO0hlPWxlLGxlPWxlKzY0fDAscGU9SGUrNDh8MCxPZT1IZSszMnwwLGJlPUhlKzE2fDAsZ2U9SGUsTGU9MHxhWzgrKFJlPTB8YVsxNisobHw9MCk+PjJdKT4+Ml0sMD09KDB8YVsoSz1SZSsyMDh8MCk+PjJdKSYmISgxJml0W1Jl''@;'; + put 'put ''KzI2MD4+MV0pfHwoYz0zKTtlOmRve2lmKDM9PSgwfGMpJiYoRWgobCksRz1SZSsyNzZ8MCxmPTB8YVtHPj4yXSwwfGYpKWZvcihBPVJlKzI4MHwwLGM9MHxhW0E+PjJdLHc9UmUrMjY4fDAsYj1SZSsyODR8MCxrPVJlKzI3MnwwLE09UmUrMjI4fDAsRD1SZSsyNDR8MCxSPVJlKzIxMnwwLHA9''@;'; + put 'put ''MHxhW2M+PjJdLG09MTs7KXtpZigoMHxtKT49KDB8ZikpYnJlYWsgZTthW3c+PjJdPWFbYysobTw8Mik+PjJdLGFbaz4+Ml09KDB8YVtiPj4yXSkrKHA8PDQpLEcxKGwsMHxhW0s+PjJdLDB8YVtNPj4yXSwwfGFbRD4+Ml0sMHxhW1I+PjJdKSxFaChsKSxwPSgwfGFbKFZlPTB8YVtBPj4yXSkr''@;'; + put 'put ''KG08PDIpPj4yXSkrcHwwLG09bSsxfDAsZj0wfGFbRz4+Ml0sYz1WZX19d2hpbGUoMCk7YVtSZSsyNjg+PjJdPTAsYVtSZSsyNzI+PjJdPTAsKGY9MHxhWzgrKGM9MHxhWyhLPUxlKzE2fDApPj4yXSk+PjJdKT8oYz0wfGFbKEc9MHxhW2Y+PjJdKT4+Ml0sVmU9MHxhW0crOD4+Ml0sYVtiZT4+''@;'; + put 'put ''Ml09YVsoUj1HKzE2fDApPj4yXSxhW2JlKzQ+PjJdPWFbUis0Pj4yXSxhW2JlKzg+PjJdPWFbUis4Pj4yXSxhW2JlKzEyPj4yXT1hW1IrMTI+PjJdLGFbZ2U+PjJdPWFbKEc9RyszMnwwKT4+Ml0sYVtnZSs0Pj4yXT1hW0crND4+Ml0sYVtnZSs4Pj4yXT1hW0crOD4+Ml0sYVtnZSsxMj4+Ml09''@;'; + put 'put ''YVtHKzEyPj4yXSxWZT8oYVtPZT4+Ml09YVtiZT4+Ml0sYVtPZSs0Pj4yXT1hW2JlKzQ+PjJdLGFbT2UrOD4+Ml09YVtiZSs4Pj4yXSxhW09lKzEyPj4yXT1hW2JlKzEyPj4yXSk6KGFbT2U+PjJdPWFbYz4+Ml0sYVtPZSs0Pj4yXT1hW2MrND4+Ml0sYVtPZSs4Pj4yXT1hW2MrOD4+Ml0sYVtP''@;'; + put 'put ''ZSsxMj4+Ml09YVtjKzEyPj4yXSksRz0wfGl0WyhwPVJlKzI2MHwwKT4+MV0sUj0wfGFbUmUrMjIwPj4yXSxhW3BlPj4yXT1hW09lPj4yXSxhW3BlKzQ+PjJdPWFbT2UrND4+Ml0sYVtwZSs4Pj4yXT1hW09lKzg+PjJdLGFbcGUrMTI+PjJdPWFbT2UrMTI+PjJdLGhwKGwscGUsKEc8PDgmNjU1''@;'; + put 'put ''MzUpPDwxNj4+MTY+PjE1JjI1NSxSLChHPDwxNCY2NTUzNSk8PDE2Pj4xNj4+MTUmMjU1KSxjPTB8YVsoUj0wfGFbKEc9MHxhWzgrKDB8YVtLPj4yXSk+PjJdKT4+Ml0pKyg0OCooRz0oMHxhW0crND4+Ml0pLTF8MCl8MCk+PjJdLGY9MHxhW1IrKDQ4Kkd8MCkrND4+Ml0sVmU9MHxhW1IrKDQ4''@;'; + put 'put ''Kkd8MCkrMTI+PjJdLGFbYmU+PjJdPWFbKEQ9UisoNDgqR3wwKSsxNnwwKT4+Ml0sYVtiZSs0Pj4yXT1hW0QrND4+Ml0sYVtiZSs4Pj4yXT1hW0QrOD4+Ml0sYVtiZSsxMj4+Ml09YVtEKzEyPj4yXSxhW2dlPj4yXT1hWyhiZT1SKyg0OCpHfDApKzMyfDApPj4yXSxhW2dlKzQ+PjJdPWFbYmUr''@;'; + put 'put ''ND4+Ml0sYVtnZSs4Pj4yXT1hW2JlKzg+PjJdLGFbZ2UrMTI+PjJdPWFbYmUrMTI+PjJdLFZlPyhhW09lPj4yXT1hW2dlPj4yXSxhW09lKzQ+PjJdPWFbZ2UrND4+Ml0sYVtPZSs4Pj4yXT1hW2dlKzg+PjJdLGFbT2UrMTI+PjJdPWFbZ2UrMTI+PjJdKTooYVtPZT4+Ml09YVsoVmU9YysoZist''@;'; + put 'put ''MTw8NCl8MCk+PjJdLGFbT2UrND4+Ml09YVtWZSs0Pj4yXSxhW09lKzg+PjJdPWFbVmUrOD4+Ml0sYVtPZSsxMj4+Ml09YVtWZSsxMj4+Ml0pLGM9MHxpdFtwPj4xXSxWZT0wfGFbUmUrMjI0Pj4yXSxhW3BlPj4yXT1hW09lPj4yXSxhW3BlKzQ+PjJdPWFbT2UrND4+Ml0sYVtwZSs4Pj4yXT1h''@;'; + put 'put ''W09lKzg+PjJdLGFbcGUrMTI+PjJdPWFbT2UrMTI+PjJdLGhwKGwscGUsKGM8PDcmNjU1MzUpPDwxNj4+MTY+PjE1JjI1NSxWZSwoYzw8MTMmNjU1MzUpPDwxNj4+MTY+PjE1JjI1NSksYz0wfGFbSz4+Ml0pOnA9UmUrMjYwfDAsT0gobCxmPTB8YVtjKzk2Pj4yXSwxMSxtPShpdFtwPj4xXTw8''@;'; + put 'put ''MTImNjU1MzUpPDwxNj4+MTY+PjE1PDwxNj4+MTYsQT0wfGFbKE09UmUrMjE2fDApPj4yXSx3PTB8YVsoRD1SZSsyMzJ8MCk+PjJdLGI9MHxhWyhSPVJlKzI0OHwwKT4+Ml0saz0wfGFbKEc9UmUrMjEyfDApPj4yXSxjPSgwfHQxKDB8djIoTGUsMHxhWzQ3MTg2XSwxMzczMDgpKSk8PDI0Pj4y''@;'; + put 'put ''ND8wfGFbOCsoMHxhW0s+PjJdKT4+Ml06MCksT0gobCxiPTB8YVsxMDgrKDB8YVtLPj4yXSk+PjJdLDExLGs9KGl0W3A+PjFdPDwxMiY2NTUzNSk8PDE2Pj4xNj4+MTU8PDE2Pj4xNix3PTB8YVtNPj4yXSxBPTB8YVtEPj4yXSxmPTB8YVtSPj4yXSxtPTB8YVtHPj4yXSxjPSgwfHQxKDB8djIo''@;'; + put 'put ''TGUsMHxhWzQ3MTg2XSwxMzczMDgpKSk8PDI0Pj4yND8wfGFbOCsoMHxhW0s+PjJdKT4+Ml06MCksT0gobCwwfGFbMTAwKygwfGFbSz4+Ml0pPj4yXSw3LChpdFtwPj4xXTw8MTMmNjU1MzUpPDwxNj4+MTY+PjE1PDwxNj4+MTYsMHxhW1JlKzIyND4+Ml0sMHxhW1JlKzI0MD4+Ml0sMHxhW1Jl''@;'; + put 'put ''KzI1Nj4+Ml0sMHxhW0c+PjJdLDApLE9IKGwsMHxhWzEwNCsoMHxhW0s+PjJdKT4+Ml0sNiwoaXRbcD4+MV08PDE0JjY1NTM1KTw8MTY+PjE2Pj4xNTw8MTY+PjE2LDB8YVtSZSsyMjA+PjJdLDB8YVtSZSsyMzY+PjJdLDB8YVtSZSsyNTI+PjJdLDB8YVtHPj4yXSwwKSxmdW5jdGlvbiBBYihs''@;'; + put 'put ''KXt2YXIgYyxmPTA7MHwoYz0wfGFbNjArKGx8PTApPj4yXSkmJjB8KGY9MHxhW2MrNjg+PjJdKSYmQ29bMTI3JmZdKGwpfShsKSxPQyhsKSxsZT1IZX1mdW5jdGlvbiBocChsLGMsZixwLG0pe3ZhciBBLHcsYjtjfD0wLHB8PTAsYj1sZSxsZT1sZSsxNnwwLEE9Yix3PTB8YVsxNisobHw9MCk+''@;'; + put 'put ''PjJdLChmfD0wKTw8MjQ+PjI0fHwocD0wfGFbdysyMDg+PjJdKSwobXw9MCk8PDI0Pj4yND09MCYmMD09KDB8cCkmJjA9PSgxJml0W3crMjYwPj4xXSl8fChhW0E+PjJdPWFbYz4+Ml0sYVtBKzQ+PjJdPWFbYys0Pj4yXSxhW0ErOD4+Ml09YVtjKzg+PjJdLGFbQSsxMj4+Ml09YVtjKzEyPj4y''@;'; + put 'put ''XSxmdW5jdGlvbiBDb2UobCxjKXtjfD0wO3ZhciBwLGY9MCxtPTAsQT0wLHc9MCxiPTAsaz0wO2Y9MHxhWzE2KyhsfD0wKT4+Ml0sNDI1OTg0MCYocD0wfGFbbCsxNTI+PjJdKXwwJiYoYVtmKzI2ND4+Ml09Yj0obT0xMzEwNzImcCk+Pj4xNl4yLGFbKGs9ZisyNjh8MCk+PjJdPWIrMixGdCgw''@;'; + put 'put ''fGFbKGI9ZisyNzJ8MCk+PjJdKSxmPTB8dnIoYVtrPj4yXTw8NCksYVtiPj4yXT1mLF9bZj4+M109KHc9K19bYz4+M10pLTMsX1tmKzg+PjNdPShBPStfW2MrOD4+M10pLTMsX1tmKzE2Pj4zXT13KzMsX1tmKzI0Pj4zXT1BKzMsODE5MiZwfHxNaChsLGYsZiwyKSxtfHxXSShmKSl9KGwsQSkp''@;'; + put 'put ''LGxlPWJ9ZnVuY3Rpb24gT0gobCxjLGYscCxtLEEsdyxiLGspe2Z8PTAscHw9MCxtfD0wLEF8PTAsd3w9MCxifD0wLGt8PTA7dmFyIEsscGUsTT0wLEQ9MCxSPTAsRz0wO2lmKHBlPWxlLGxlPWxlKzE2fDAsUj1wZSxLPTB8YVsxNTIrKGx8PTApPj4yXSwwfChjfD0wKSYmMHxmZVtjKzgxPj4w''@;'; + put 'put ''XSl7aWYoYil7c3dpdGNoKEQ9MHx2cigxMSsoMHxVbyhiKSl8MCksMHxmKXtjYXNlIDExOk09MTA4MjI0O2JyZWFrO2Nhc2UgNzpNPTEwMTU4MzticmVhaztjYXNlIDY6TT0xMDE1OTM7YnJlYWs7ZGVmYXVsdDpQcigxMzgzOTQsOTk5MDYsMjczMCwxMDAwNDQpfWFbUj4+Ml09YixhW1IrND4+''@;'; + put 'put ''Ml09TSxvbyhELDEwMDA2MCxSKX1lbHNlIEQ9MDtHPTB8YVsoYj0xMisoMHxhWyhSPWwrMTZ8MCk+PjJdKXwwKT4+Ml0sYVtiPj4yXT1mLChiPTAhPSgwfHApfDAhPSgwfG0pKSYoTT0wPT0oNCZLfDApKSYmKFlVKGwsYyksRzEobCxtLEEsdyxEKSksYjcobCxmLGMpLDB8ayYmZnVuY3Rpb24g''@;'; + put 'put ''X29lKGwsYyxmKXtsfD0wLGZ8PTA7dmFyIG0sQSx3LGIsRCxwPTAsaz0wLE09MCxSPTA7Zm9yKEQ9bGUsbGU9bGUrOTZ8MCxtPUQrODB8MCxBPUQrMzJ8MCx3PUQrMTZ8MCxiPUQscD0wfGFbKGN8PTApPj4yXTsoaz0wfGZlW3A+PjBdKTw8MjQ+PjI0Oyl7aWYoISgwfCRjKDI1NSZrKSkpe009''@;'; + put 'put ''NDticmVha31wPXArMXwwfTQ9PSgwfE0pJiYoVVUoQSwrX1soaz1jKzU2fDApPj4zXSsuNSooUj0rX1tjKzI0Pj4zXSksK19bYys2ND4+M10tLjUqK19bYyszMj4+M10pLE09QSsxNnwwLFVVKHcsK19bQT4+M10tUiwrX1tBKzg+PjNdKSxhW00+PjJdPWFbdz4+Ml0sYVtNKzQ+PjJdPWFbdys0''@;'; + put 'put ''Pj4yXSxhW00rOD4+Ml09YVt3Kzg+PjJdLGFbTSsxMj4+Ml09YVt3KzEyPj4yXSxNPUErMzJ8MCxhW20+PjJdPWFbaz4+Ml0sYVttKzQ+PjJdPWFbays0Pj4yXSxhW20rOD4+Ml09YVtrKzg+PjJdLGFbbSsxMj4+Ml09YVtrKzEyPj4yXSxoRChiLGYsbSksYVtNPj4yXT1hW2I+PjJdLGFbTSs0''@;'; + put 'put ''Pj4yXT1hW2IrND4+Ml0sYVtNKzg+PjJdPWFbYis4Pj4yXSxhW00rMTI+PjJdPWFbYisxMj4+Ml0sZDIobCwwfGFbMzM2KygwfGFbbD4+Ml0pPj4yXSksbWEobCwwfGFbYys4Pj4yXSksV28obCxBLDMpKSxsZT1EfShsLGMsayksYiYmKE18fChZVShsLGMpLEcxKGwsbSxBLHcsRCkpLEVoKGwp''@;'; + put 'put ''KSxGdChEKSxhWzEyKygwfGFbUj4+Ml0pPj4yXT1HfWxlPXBlfWZ1bmN0aW9uIFlVKGwsYyl7Y3w9MDt2YXIgcCxmPTAsbT0wLEE9MCx3PTAsYj0wO2Y9MHxhWzE2KyhsfD0wKT4+Ml0sNDI1OTg0MCYocD0wfGFbbCsxNTI+PjJdKXwwJiYoYVtmKzI2ND4+Ml09dz0obT0xMzEwNzImcCk+Pj4x''@;'; + put 'put ''Nl4yLGFbKGI9ZisyNjh8MCk+PjJdPXcrMixGdCgwfGFbKHc9ZisyNzJ8MCk+PjJdKSxmPTB8dnIoYVtiPj4yXTw8NCksYVt3Pj4yXT1mLF9bZj4+M109K19bKHc9Yys1NnwwKT4+M10tLjUqK19bKGI9YysyNHwwKT4+M10sX1tmKzg+PjNdPStfWyhBPWMrNjR8MCk+PjNdLS41KitfWyhjPWMr''@;'; + put 'put ''MzJ8MCk+PjNdLF9bZisxNj4+M109LjUqK19bYj4+M10rICtfW3c+PjNdLF9bZisyND4+M109LjUqK19bYz4+M10rICtfW0E+PjNdLDgxOTImcHx8TWgobCxmLGYsMiksbXx8V0koZikpfWZ1bmN0aW9uIFVVKGwsYyxmKXtmPStmLF9bKGx8PTApPj4zXT1jPStjLF9bbCs4Pj4zXT1mfWZ1bmN0''@;'; + put 'put ''aW9uIFFVKGwsYyxmLHAsbSxBLHcpe2x8PTAsY3w9MCxmfD0wLEE9K0Esdz0rdzt2YXIgb3QsU3Qsa3Qsc3QsRXQsWnQsYnQsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAsSz0wLHBlPTAsZ2U9MCxiZT0wLE9lPTAsTGU9MCxSZT0wLEhlPTAsVmU9MCxxZT0wLG50PTAsV2U9MCxjdD0wO2lmKGJ0''@;'; + put 'put ''PWxlLGxlPWxlKzI1NnwwLFN0PWJ0KzIyNHwwLG90PWJ0KzIwOHwwLGI9YnQrMTkyfDAsc3Q9YnQrMTQ0fDAsRXQ9YnQrOTZ8MCxadD1idCs0OHwwLGt0PWJ0LCgwfChwPTB8czcocHw9MCxtfD0wLGs9YnQrMjQwfDApKSk+MT8ocWU9Yys0OHwwLG50PTB8Y3IoMHxhWygzPT0oMyZhW2M+PjJd''@;'; + put 'put ''fDApP2M6cWUpKzQwPj4yXSkscWU9MHx0aSgwfGFbKDM9PSgzJmFbYz4+Ml18MCk/YzpxZSkrNDA+PjJdKSxudD0wIT0oMHxTYyhudCkpLFdlPTB8dGkoMHxhWygyPT0oMyZhW2M+PjJdfDApP2M6YystNDh8MCkrNDA+PjJdKSxhW2I+PjJdPXFlLGFbYis0Pj4yXT1udD8xMDAwNzk6MTAwMDg0''@;'; + put 'put ''LGFbYis4Pj4yXT1XZSwkcigzLDEwMDA4OSxiKSwyPT0oMHxwKT9wPTE6Y3Q9NCk6MT09KDB8cCk/cD0xOmN0PTQsND09KDB8Y3QpKXtmb3IoV2U9YysxNnwwLGdlPTgrKHBlPTB8YVtrPj4yXSl8MCxiZT1adCs0fDAsT2U9c3QrOHwwLExlPXN0KzEyfDAsUmU9MCE9KDB8ZiksSz0wPT0oMHxm''@;'; + put 'put ''KSxIZT1zdCszMnwwLFZlPXN0KzR8MCxxZT1zdCsxNnwwLG50PWt0KzR8MCxwPTAsRz0wOyEoKDB8Ryk+PSgwfGFbNCsobT0wfGFbOCsoMHxhW1dlPj4yXSk+PjJdKT4+Ml0pKTspe209KDB8YVttPj4yXSkrKDQ4Kkd8MCl8MCxjPShiPXN0KSs0OHwwO2Rve2FbYj4+Ml09YVttPj4yXSxiPWIr''@;'; + put 'put ''NHwwLG09bSs0fDB9d2hpbGUoKDB8Yik8KDB8YykpO2M9MSxNPTEsUj0wfGFbZ2U+PjJdO2U6Zm9yKDttPTB8YVtSPj4yXSxtOyl7RD0ram5bKGs9Uis0fDApPj4yXTtkb3tpZihEPDFlLTUmRD4tMWUtNSltPWM7ZWxzZXtpZihtYShsLG0pLE0tPUQ9K2puW2s+PjJdLHA9MHxhW1I+PjJdLDB8''@;'; + put 'put ''Yyl7aWYocHkoc3QsRCxadCxrdCksUWYobCxrPTB8YVtadD4+Ml0sMHxhW2JlPj4yXSwwLDAsMCksRnQoayksTTwxZS01Jk0+LTFlLTUpe2N0PTExO2JyZWFrIGV9bT0wO2JyZWFrfWlmKE08MWUtNSZNPi0xZS01KXtjdD0xMzticmVhayBlfW09a3QsYz0oYj1FdCkrNDh8MDtkb3thW2I+PjJd''@;'; + put 'put ''PWFbbT4+Ml0sYj1iKzR8MCxtPW0rNHwwfXdoaWxlKCgwfGIpPCgwfGMpKTtweShFdCwoRD0ram5baz4+Ml0pLyhNK0QpLFp0LGt0KSxGdCgwfGFbRXQ+PjJdKSxRZihsLG09MHxhW1p0Pj4yXSwwfGFbYmU+PjJdLDAsMCwwKSxGdChtKSxtPTB9fXdoaWxlKDApO2M9bSxSPVIrMTJ8MH0xMT09''@;'; + put 'put ''KDB8Y3QpPyhjdD0wLEZ0KDB8YVtrdD4+Ml0pKToxMz09KDB8Y3QpJiYoY3Q9MCxRZihsLFI9MHxhW2t0Pj4yXSwwfGFbbnQ+PjJdLDAsMCwwKSxGdChSKSksMHxhW09lPj4yXSYmKG1hKGwsMHxhW2FbZ2U+PjJdPj4yXSksaGwobCwwfGFbYVtnZT4+Ml0+PjJdKSxrPTB8YVtzdD4+Ml0sUj0w''@;'; + put 'put ''fGFbT2U+PjJdLGFbb3Q+PjJdPWFbcWU+PjJdLGFbb3QrND4+Ml09YVtxZSs0Pj4yXSxhW290Kzg+PjJdPWFbcWUrOD4+Ml0sYVtvdCsxMj4+Ml09YVtxZSsxMj4+Ml0sYVtTdD4+Ml09YVtrPj4yXSxhW1N0KzQ+PjJdPWFbays0Pj4yXSxhW1N0Kzg+PjJdPWFbays4Pj4yXSxhW1N0KzEyPj4y''@;'; + put 'put ''XT1hW2srMTI+PjJdLFFkKGwsMixvdCxTdCxBLHcsUikpLDB8YVtMZT4+Ml0mJihtYShsLHApLGhsKGwscCksaz0oMHxhW3N0Pj4yXSkrKCgwfGFbVmU+PjJdKS0xPDw0KXwwLFI9MHxhW0xlPj4yXSxhW290Pj4yXT1hW0hlPj4yXSxhW290KzQ+PjJdPWFbSGUrND4+Ml0sYVtvdCs4Pj4yXT1h''@;'; + put 'put ''W0hlKzg+PjJdLGFbb3QrMTI+PjJdPWFbSGUrMTI+PjJdLGFbU3Q+PjJdPWFbaz4+Ml0sYVtTdCs0Pj4yXT1hW2srND4+Ml0sYVtTdCs4Pj4yXT1hW2srOD4+Ml0sYVtTdCsxMj4+Ml09YVtrKzEyPj4yXSxRZChsLDMsb3QsU3QsQSx3LFIpKTtkb3tpZigoMHxhWzQrKDB8YVs4KygwfGFbV2U+''@;'; + put 'put ''PjJdKT4+Ml0pPj4yXSk+MSl7aWYoMHxhW09lPj4yXSl7aWYoSylicmVha31lbHNlIGlmKCEoUmUmMCE9KDB8YVtMZT4+Ml0pKSlicmVhaztkMihsLGYpfX13aGlsZSgwKTtHPUcrMXwwfUZBKHBlKSxwPTB9cmV0dXJuIGxlPWJ0LDB8cH1mdW5jdGlvbiBISShsLGMpe2x8PTAsY3w9MDt2YXIg''@;'; + put 'put ''Zj0wLHA9MDtmPTE7ZTpmb3IoOzspe3N3aXRjaCgwfGZlW2w+PjBdKXtjYXNlIDA6YnJlYWsgZTtjYXNlIDU4OmY9ZisxfDB9bD1sKzF8MH1mb3IobD0xMCsocD0wfEFyKDErKDB8VW8oYykpfDAsZikpfDAsKDB8YVs0NzEyMV0pPCgwfHApPyhhWzQ3MTIxXT1sLGw9MHxVYSgwfGFbNDcxMjJd''@;'; + put 'put ''LGwpLGFbNDcxMjJdPWwpOmw9MHxhWzQ3MTIyXSxpZChsLGMpO2w9MHxhWzQ3MTIyXSxmPWYrLTF8MDspcD1sKygwfFVvKGwpKXwwLGZlW3A+PjBdPTU4LGZlW3ArMT4+MF09MCxzdihsLGMpO3JldHVybiAwfGx9ZnVuY3Rpb24gUTUobCl7bHw9MDt2YXIgYz0wLGY9MDtjPTB8YVs0NzE4NF07''@;'; + put 'put ''ZTpkb3tpZihjKXN3aXRjaChjPTB8SG8obCxjKSwwfGZlW2M+PjBdKXtjYXNlIDExMDppZigwfFppKGMsMTM1NzA5KSl7Zj03O2JyZWFrIGV9Yz0xO2JyZWFrIGU7Y2FzZSAxMDI6aWYoMHxaaShjLDEwMDA2Nikpe2Y9NzticmVhayBlfWM9MjticmVhayBlO2Nhc2UgOTg6aWYoISgwfFppKGMs''@;'; + put 'put ''MTAwMDc0KSkpe2M9MzticmVhayBlfWlmKDB8WmkoYywxMTEyMjEpKXtmPTc7YnJlYWsgZX1jPTQ7YnJlYWsgZTtkZWZhdWx0OmY9NzticmVhayBlfWVsc2UgZj03fXdoaWxlKDApO3JldHVybiA3PT0oMHxmKSYmKGM9KGM9MCE9KDB8U2MoMHxjcigwfGFbKDI9PSgzJmFbbD4+Ml18MCk/bDps''@;'; + put 'put ''Ky00OHwwKSs0MD4+Ml0pKSkpPzI6MSksMHxjfWZ1bmN0aW9uIGx2ZShsKXswfChsfD0wKSYmKEZ0KDB8YVtsKzg+PjJdKSxGdChsKSl9ZnVuY3Rpb24gUkgobCxjLGYpe3ZhciBwLG0sQTtsfD0wLHA9Mi8rRDAoKygobT0rX1soY3w9MCk+PjNdLStfWyhmfD0wKT4+M10pKm0rMWUtNCsoQT0r''@;'; + put 'put ''X1tjKzg+PjNdLStfW2YrOD4+M10pKkEpKSxfW2w+PjNdPXAqQSxfW2wrOD4+M109LW0qcH1mdW5jdGlvbiBrb2UobCxjLGYscCxtKXtsfD0wLGN8PTAsbXw9MDt2YXIgQT0wLHc9MCxiPTAsaz0wOyhBPStEMCgrKChiPStfWzgrKGZ8PTApPj4zXS0rX1s4KyhwfD0wKT4+M10pKmIrKHc9K19b''@;'; + put 'put ''Zj4+M10tK19bcD4+M10pKncpKSk8MWUtNCYmKGI9QT0rX1tjKzg+PjNdLStfW20rOD4+M10sdz1rPStfW2M+PjNdLStfW20+PjNdLEE9K0QwKCsoayprKzFlLTQrQSpBKSkpLF9bbD4+M109Yiooaz0yL0EpLF9bbCs4Pj4zXT0tayp3fWZ1bmN0aW9uIHB5KGwsYyxmLHApe2M9K2MsZnw9MCxw''@;'; + put 'put ''fD0wO3ZhciBSLEcsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLEs9MCxwZT0wLGdlPTA7aWYoRz1sZSxsZT1sZSsxNnwwLFI9RyxiPSgoRD0wfGFbNCsobHw9MCk+PjJdKS0xfDApLzN8MCwoRCstNHwwKT4+PjA8MylhW2YrND4+Ml09NCxhW2Y+PjJdPTB8dnIoNjQpLGFbcCs0Pj4yXT00''@;'; + put 'put ''LEQ9MHx2cig2NCksYVtwPj4yXT1ELHd1KFIsMHxhW2w+PjJdLDMsYywwfGFbZj4+Ml0sRCk7ZWxzZXtmb3IoRD0wfHZyKGI8PDMpLEE9MCx3PTB8YVtsPj4yXSxtPTA7ISgoMHxBKT49KDB8YikpOylLPSt2dSh3KSxfW0QrKEE8PDMpPj4zXT1LLEE9QSsxfDAsdz13KzQ4fDAsbT1LK207Zm9y''@;'; + put 'put ''KGMqPW0sTT0wLG09MDshKCgwfGIpPD0oMHxNKXx8KG09K19bRCsoTTw8Myk+PjNdK20sbT49YykpOylNPU0rMXwwO2ZvcihhWyh3PWYrNHwwKT4+Ml09QT00KyhrPTMqTXwwKXwwLGFbZj4+Ml09MHx2cihBPDw0KSxBPTErKDMqKGItTXwwKXwwKXwwLGFbKGI9cCs0fDApPj4yXT1BLGFbcD4+''@;'; + put 'put ''Ml09MHx2cihBPDw0KSxBPTA7ISgoMHxBKT49KDB8YVt3Pj4yXSkpOylhWyhwZT0oMHxhW2Y+PjJdKSsoQTw8NCl8MCk+PjJdPWFbKGdlPSgwfGFbbD4+Ml0pKyhBPDw0KXwwKT4+Ml0sYVtwZSs0Pj4yXT1hW2dlKzQ+PjJdLGFbcGUrOD4+Ml09YVtnZSs4Pj4yXSxhW3BlKzEyPj4yXT1hW2dl''@;'; + put 'put ''KzEyPj4yXSxBPUErMXwwO2ZvcihBPUErLTR8MCx3PTA7ISgoMHx3KT49KDB8YVtiPj4yXSkpOylhWyhnZT0oMHxhW3A+PjJdKSsodzw8NCl8MCk+PjJdPWFbKHBlPSgwfGFbbD4+Ml0pKyhBPDw0KXwwKT4+Ml0sYVtnZSs0Pj4yXT1hW3BlKzQ+PjJdLGFbZ2UrOD4+Ml09YVtwZSs4Pj4yXSxh''@;'; + put 'put ''W2dlKzEyPj4yXT1hW3BlKzEyPj4yXSxBPUErMXwwLHc9dysxfDA7d3UoUiwoMHxhW2w+PjJdKSsoazw8NCl8MCwzLChjLW0rKEs9K19bRCsoTTw8Myk+PjNdKSkvSywoMHxhW2Y+PjJdKSsoazw8NCl8MCwwfGFbcD4+Ml0pLEZ0KEQpfWxlPUd9ZnVuY3Rpb24gdnUobCl7dmFyIGM9MCxmPTAs''@;'; + put 'put ''cD0wLG09MCxBPTA7cmV0dXJuIHA9K0QwKCsoKGM9K19bOCsobHw9MCk+PjNdLShBPStfW2wrMjQ+PjNdKSkqYysocD0rX1tsPj4zXS0obT0rX1tsKzE2Pj4zXSkpKnApKSwrKChwPStEMCgrKChBLT1mPStfW2wrNDA+PjNdKSpBKyhtLT1jPStfW2wrMzI+PjNdKSptKSkrcCkrICtEMCgrKChm''@;'; + put 'put ''LT0rX1tsKzU2Pj4zXSkqZisoYy09K19bbCs0OD4+M10pKmMpKSl9ZnVuY3Rpb24gQTcobCxjKXtyZXR1cm4gbHw9MCxjPTB8ZGkoY3w9MCksMHxmdW5jdGlvbiBlUShsKXt2YXIgYz0wLGY9MCxwPTAsbT0wLEE9MDtjPWx8PTAsbT1sO2U6Zm9yKDs7KXtmb3IocD0wOzspe2lmKGY9YyxjPWMr''@;'; + put 'put ''MXwwLCEoKGY9MHxmZVtmPj4wXSk8PDI0Pj4yNCkpYnJlYWsgZTtpZihwPDwyND4+MjQpe0E9NTticmVha31pZihmPDwyND4+MjQhPTkyKWJyZWFrO3A9MX10OmRve2lmKDU9PSgwfEEpKXN3aXRjaChBPTAsZjw8MjQ+PjI0fDApe2Nhc2UgMTE0OmY9MTM7YnJlYWsgdDtjYXNlIDEwODpjYXNl''@;'; + put 'put ''IDExMDpmPTEwO2JyZWFrIHQ7ZGVmYXVsdDpicmVhayB0fX13aGlsZSgwKTtmZVttPj4wXT1mLG09bSsxfDB9cmV0dXJuIGZlW20+PjBdPTAsMHxsfShjPTE9PSgwfGZlWzExNSsoMHxhW2MrMTY+PjJdKT4+MF0pPzB8eWsobCk6MHxPTihsLGMpKX1mdW5jdGlvbiBCSChsLGMsZixwLG0pe2x8''@;'; + put 'put ''PTAsY3w9MCxmfD0wLHB8PTAsbT0rbTt2YXIgRCxSLEcsSyxwZSxBPTAsdz0wLGI9MCxrPTAsTT0wLGdlPTAsYmU9MDtmb3IocGU9bGUsbGU9bGUrMTY2NHwwLEQ9cGUrMTYwMHwwLFI9cGUrODAwfDAsRz1wZSxLPTB8UW4oMjQpLGFbSysxNj4+Ml09MSxrPSgoMHxhW3ArND4+Ml0pLTF8MCkv''@;'; + put 'put ''M3wwLHc9MCxiPUs7ISgoMHx3KT49KDB8aykpOyl7Zm9yKE09Myp3fDAsQT0wOzQhPSgwfEEpOylhWyhnZT1EKyhBPDw0KXwwKT4+Ml09YVsoYmU9KDB8YVtwPj4yXSkrKEErTTw8NCl8MCk+PjJdLGFbZ2UrND4+Ml09YVtiZSs0Pj4yXSxhW2dlKzg+PjJdPWFbYmUrOD4+Ml0sYVtnZSsxMj4+''@;'; + put 'put ''Ml09YVtiZSsxMj4+Ml0sQT1BKzF8MDt3PXcrMXwwLGI9MHxneShELGIpfWZvcihBPTAsdz0wLGI9Szs7KXtpZighYil7dz1LLEE9SzticmVha30kVSh3LGIsaz0wfGFbYisxNj4+Ml0sTT1SKyhBPDw0KXwwLHA9RysoQTw8NCl8MCxtKSw1MD09KDB8KEE9QSsxfDApKXwwPT0oMHxrKT8oUEgo''@;'; + put 'put ''bCxjLGYsQSxSLEcpLGFbUj4+Ml09YVtNPj4yXSxhW1IrND4+Ml09YVtNKzQ+PjJdLGFbUis4Pj4yXT1hW00rOD4+Ml0sYVtSKzEyPj4yXT1hW00rMTI+PjJdLGFbRz4+Ml09YVtwPj4yXSxhW0crND4+Ml09YVtwKzQ+PjJdLGFbRys4Pj4yXT1hW3ArOD4+Ml0sYVtHKzEyPj4yXT1hW3ArMTI+''@;'; + put 'put ''PjJdLHc9YixBPTEsYj1rKToodz1iLGI9ayl9Zm9yKDt3OyliZT0wfGFbdysxNj4+Ml0sRnQoQSksdz1iZSxBPWJlO2xlPXBlfWZ1bmN0aW9uIGd5KGwsYyl7Y3w9MDt2YXIgcCxtLEEsZj0wO3JldHVybiBBPWxlLGxlPWxlKzE0NHwwLG09QSsxMjh8MCxmPUErNjR8MCxwPUEsMHxCQyhsfD0w''@;'; + put 'put ''KT8oMT09KDB8YVsoZj1jKzE2fDApPj4yXSkmJihhW2Y+PjJdPTAsYVtjPj4yXT1hW2w+PjJdLGFbYys0Pj4yXT1hW2wrND4+Ml0sYVtjKzg+PjJdPWFbbCs4Pj4yXSxhW2MrMTI+PjJdPWFbbCsxMj4+Ml0pLGFbbT4+Ml09YVsoZj1sKzQ4fDApPj4yXSxhW20rND4+Ml09YVtmKzQ+PjJdLGFb''@;'; + put 'put ''bSs4Pj4yXT1hW2YrOD4+Ml0sYVttKzEyPj4yXT1hW2YrMTI+PjJdLGY9MHxmdW5jdGlvbiBxVShsLGMpe2x8PTAsY3w9MDt2YXIgZjtyZXR1cm4gZj0wfFFuKDI0KSxhW2YrMTY+PjJdPTAsYVtmPj4yXT1hW2w+PjJdLGFbZis0Pj4yXT1hW2wrND4+Ml0sYVtmKzg+PjJdPWFbbCs4Pj4yXSxh''@;'; + put 'put ''W2YrMTI+PjJdPWFbbCsxMj4+Ml0sYVtjKzE2Pj4yXT1mLDB8Zn0obSxjKSk6KHd1KG0sbCwzLC41LGYscCksZj0wfGd5KHAsMHxneShmLGMpKSksbGU9QSwwfGZ9ZnVuY3Rpb24gJFUobCxjLGYscCxtLEEpe2x8PTAsZnw9MCxwfD0wLG18PTAsQT0rQTt2YXIgayxNLEQsUixHLEsscGUsZ2Us''@;'; + put 'put ''YmUsdz0wLGI9MDtwZT1sZSxsZT1sZSs5NnwwLEQ9cGUrODB8MCxNPXBlKzY0fDAsaz1wZSs0OHwwLEc9cGUrMTZ8MCxLPXBlLGFbKFI9cGUrMzJ8MCk+PjJdPWFbKGN8PTApPj4yXSxhW1IrND4+Ml09YVtjKzQ+PjJdLGFbUis4Pj4yXT1hW2MrOD4+Ml0sYVtSKzEyPj4yXT1hW2MrMTI+PjJd''@;'; + put 'put ''O2Rve2lmKGwpe2lmKGFbRz4+Ml09YVtsPj4yXSxhW0crND4+Ml09YVtsKzQ+PjJdLGFbRys4Pj4yXT1hW2wrOD4+Ml0sYVtHKzEyPj4yXT1hW2wrMTI+PjJdLGYpe2FbSz4+Ml09YVtmPj4yXSxhW0srND4+Ml09YVtmKzQ+PjJdLGFbSys4Pj4yXT1hW2YrOD4+Ml0sYVtLKzEyPj4yXT1hW2Yr''@;'; + put 'put ''MTI+PjJdLHc9K19bUj4+M10sYj0rX1tSKzg+PjNdO2JyZWFrfV9bSz4+M109Mioodz0rX1tSPj4zXSktK19bRz4+M10sX1tLKzg+PjNdPTIqKGI9K19bUis4Pj4zXSktK19bRys4Pj4zXTticmVha31hW0s+PjJdPWFbZj4+Ml0sYVtLKzQ+PjJdPWFbZis0Pj4yXSxhW0srOD4+Ml09YVtmKzg+''@;'; + put 'put ''PjJdLGFbSysxMj4+Ml09YVtmKzEyPj4yXSxfW0c+PjNdPTIqKHc9K19bUj4+M10pLStfW0s+PjNdLF9bRys4Pj4zXT0yKihiPStfW1IrOD4+M10pLStfW0srOD4+M119d2hpbGUoMCk7YVtrPj4yXT1hW0c+PjJdLGFbays0Pj4yXT1hW0crND4+Ml0sYVtrKzg+PjJdPWFbRys4Pj4yXSxhW2sr''@;'; + put 'put ''MTI+PjJdPWFbRysxMj4+Ml0sYVtNPj4yXT1hW1I+PjJdLGFbTSs0Pj4yXT1hW1IrND4+Ml0sYVtNKzg+PjJdPWFbUis4Pj4yXSxhW00rMTI+PjJdPWFbUisxMj4+Ml0sYVtEPj4yXT1hW0s+PjJdLGFbRCs0Pj4yXT1hW0srND4+Ml0sYVtEKzg+PjJdPWFbSys4Pj4yXSxhW0QrMTI+PjJdPWFb''@;'; + put 'put ''SysxMj4+Ml0sYmU9K2Z1bmN0aW9uIEZIKGwsYyxmKXtsfD0wO3ZhciBBLHA9MCxtPTA7cmV0dXJuIG09K1VsKCsoK19bOCsoZnw9MCk+PjNdLShBPStfWzgrKGN8PTApPj4zXSkpLCsoK19bZj4+M10tKHA9K19bYz4+M10pKSksKyguNSooKG0tPXA9K1VsKCsoK19bbCs4Pj4zXS1BKSwrKCtf''@;'; + put 'put ''W2w+PjNdLXApKSk+MD9tKy02LjI4MzE4NTMwNzE3OTU4NjptKStwKX0oayxNLEQpLGdlPStoYSgrYmUpKkEsQT0rRGEoK2JlKSpBLF9bcD4+M109dytnZSxfW3ArOD4+M109YitBLF9bbT4+M109dy1nZSxfW20rOD4+M109Yi1BLGxlPXBlfWZ1bmN0aW9uIFBIKGwsYyxmLHAsbSxBKXtsfD0w''@;'; + put 'put ''LGN8PTAsbXw9MCxBfD0wO3ZhciBiLHc9MCxrPTAsTT0wLEQ9MDtmb3IoYj0ocHw9MCk8PDEsaz0wfGFbKGZ8PTApPj4yXSx3PTAsTT0wOyEoKDB8dyk+PSgwfGspKTspRD0oMHxhWygwfGFbYz4+Ml0pKyh3PDwyKT4+Ml0pK018MCx3PXcrMXwwLE09RDtmb3IoYVtmPj4yXT1EPWsrMXwwLEQ9''@;'; + put 'put ''MHxWMCgwfGFbYz4+Ml0sRDw8MiksYVtjPj4yXT1ELGFbRCsodzw8Mik+PjJdPWIsYVtsPj4yXT0wfFYwKDB8YVtsPj4yXSxNK2I8PDQpLGM9YistMStNfDAsdz0wOyEoKDB8dyk+PSgwfHApKTspYVsoRD0oMHxhW2w+PjJdKSsodytNPDw0KXwwKT4+Ml09YVsoaz1tKyh3PDw0KXwwKT4+Ml0s''@;'; + put 'put ''YVtEKzQ+PjJdPWFbays0Pj4yXSxhW0QrOD4+Ml09YVtrKzg+PjJdLGFbRCsxMj4+Ml09YVtrKzEyPj4yXSxhWyhEPSgwfGFbbD4+Ml0pKyhjLXc8PDQpfDApPj4yXT1hWyhrPUErKHc8PDQpfDApPj4yXSxhW0QrND4+Ml09YVtrKzQ+PjJdLGFbRCs4Pj4yXT1hW2srOD4+Ml0sYVtEKzEyPj4y''@;'; + put 'put ''XT1hW2srMTI+PjJdLHc9dysxfDB9ZnVuY3Rpb24gTW9lKGwsYyl7Y3w9MDt2YXIgZj0wLHA9MCxtPTAsQT0wLHc9MDtmb3IoZj0wfGFbKGx8PTApPj4yXTs7KXtpZighKChtPTB8ZmVbZj4+MF0pPDwyND4+MjQpKXtwPTA7YnJlYWt9aWYoIShtPDwyND4+MjQ9PTQ0fDAhPSgwfCRjKHA9bTw8''@;'; + put 'put ''MjQ+PjI0KSkpKXtBPTU7YnJlYWt9Zj1mKzF8MH1lOmRve2lmKDU9PSgwfEEpKXtzd2l0Y2goMHxwKXtjYXNlIDA6cD0wO2JyZWFrIGU7Y2FzZSA0MTpjYXNlIDQwOmY9ZisxfDA7YnJlYWsgZX1mb3IoQT1jKzR8MCx3PWMrOHwwOzspe2lmKCgwfHN2ZShtPDwyND4+MjQpKTw8MjQ+PjI0KXtw''@;'; + put 'put ''PTE7YnJlYWsgZX0ocD0wfGFbQT4+Ml0pPj4+MD49KDB8YVt3Pj4yXSk+Pj4wJiYoUTAoYywxKSxwPTB8YVtBPj4yXSksYVtBPj4yXT1wKzEsZmVbcD4+MF09bSxmPXA9ZisxfDAsbT0wfGZlW3A+PjBdfX19d2hpbGUoMCk7cmV0dXJuIGFbbD4+Ml09ZiwwfHB9ZnVuY3Rpb24gc3ZlKGwpe3N3''@;'; + put 'put ''aXRjaCgwfChsfD0wKSl7Y2FzZSAwOmNhc2UgNDQ6Y2FzZSA0MTpjYXNlIDQwOmw9MTticmVhaztkZWZhdWx0Omw9MH1yZXR1cm4gMHxsfWZ1bmN0aW9uIE5JKGwsYyl7cmV0dXJuIDB8RW9lKDB8YVsobHw9MCk+PjJdLDB8YVtsKzE2MD4+Ml0sMHxhW2wrMTU2Pj4yXSxjfD0wKX1mdW5jdGlv''@;'; + put 'put ''biBFb2UobCxjLGYscCl7bHw9MCxjfD0wLGZ8PTAscHw9MDt2YXIgdyxiLGssTSxELFIsbT0wLEE9MDtSPWxlLGxlPWxlKzE2MHwwLE09UisxNnwwLEQ9UixhWyhrPVIrMjB8MCk+PjJdPTAsYVtNPj4yXT0wLHVzKEQsMTI4LFIrMjR8MCksdW8oRCxwKSwocD0wfGFbKG09RCs0fDApPj4yXSk+''@;'; + put 'put ''Pj4wPj0oMHxhW0QrOD4+Ml0pPj4+MCYmKFEwKEQsMSkscD0wfGFbbT4+Ml0pLGZlW3A+PjBdPTAsYVttPj4yXT1BPTB8YVtEPj4yXSx3PWwrMzAwfDAsYj1sKzI5NnwwLHA9MCxtPUE7ZTpmb3IoOzspe2lmKHApe3A9MTticmVha31pZighKHA9MHxMaihtLDB8YVt3Pj4yXSxrKSkpe3A9MDti''@;'; + put 'put ''cmVha31zd2l0Y2goKDAhPSgwfChwPShBPTAhPSgwfChtPTB8TGoocCwwfGFbYj4+Ml0sTSkpKSk/MHxMaigwLDB8YVtiPj4yXSxNKTowKSkmMSkrKDEmQSkmMyl7Y2FzZSAyOm09MHx0UShsLG0sMCkscD0oKHA9MHx0UShsLHAsZikpJm18MCk+LTEmKDB8KChBPSgwfG0pPigwfHApKT9tOnAp''@;'; + put 'put ''KT49KDB8YykmKDB8KEE/cDptKSk8PSgwfGMpLG09MDtjb250aW51ZSBlO2Nhc2UgMTpwPSgwfHRRKGwsbSxjKSk9PSgwfGMpLG09MDtjb250aW51ZSBlO2RlZmF1bHQ6cD0wLG09MDtjb250aW51ZSBlfX1yZXR1cm4gQzIoRCksbGU9UiwwfHB9ZnVuY3Rpb24gdFEobCxjLGYpe2x8PTAsZnw9''@;'; + put 'put ''MDt2YXIgQSxwPTAsbT0wOyhBPTB8ZmVbKGN8PTApPj4wXSk8PDI0Pj4yND09OTcmJjA9PSgwfFppKGMsMTAwMzk2KSl8fChwPTMpO2U6ZG97aWYoMz09KDB8cCkpe2lmKCgwfHV2ZShjKSk8PDI0Pj4yNCl7Zj0wfHIzKGMpO2JyZWFrfWlmKG09MHxhW2wrMzA4Pj4yXSlmb3IobD0wfGFbbCsz''@;'; + put 'put ''MTI+PjJdLGY9MTs7KXtpZigoMHxmKT4oMHxsKSl7Zj0tMTticmVhayBlfWlmKEE8PDI0Pj4yND09KDB8ZmVbKHA9MHxhW20rKGY8PDIpPj4yXSk+PjBdKSYmMD09KDB8WmkoYyxwKSkpYnJlYWsgZTtmPWYrMXwwfWVsc2UgZj0tMX19d2hpbGUoMCk7cmV0dXJuIDB8Zn1mdW5jdGlvbiB1dmUo''@;'; + put 'put ''bCl7bHw9MDtmb3IodmFyIGM9MDs7KXtpZighKChjPTB8ZmVbbD4+MF0pPDwyND4+MjQpKXtsPTE7YnJlYWt9aWYoISgoKDI1NSZjKS00OHwwKT4+PjA8MTApKXtsPTA7YnJlYWt9bD1sKzF8MH1yZXR1cm4gMHxsfWZ1bmN0aW9uIG15KGwsYyl7cmV0dXJuIDB8KCtfWzE2KyhsfD0wKT4+M10+''@;'; + put 'put ''PStfWyhjfD0wKT4+M10mJitfW2MrMTY+PjNdPj0rX1tsPj4zXSYmK19bbCsyND4+M10+PStfW2MrOD4+M10/K19bYysyND4+M10+PStfW2wrOD4+M10mMTowKX1mdW5jdGlvbiB4b2UobCxjLGYpe2x8PTAsY3w9MCxmfD0wO3ZhciBwPTAsbT0wO2U6ZG97aWYoKDB8YVtsKzE1Nj4+Ml0pPj0y''@;'; + put 'put ''JiYocD0wfHYyKGYsMHxhWzQ3MTY3XSwxOTUwNTkpLCgwfE5JKGwscCkpPDwyND4+MjQ9PTApKWlmKDB8ZmVbcD4+MF0pcD0wO2Vsc2UgaWYoMHxTcyhjLGYpKWZvcihwPTB8U3MoYyxmKTs7KXtpZighcCl7cD0wO2JyZWFrIGV9aWYobT0wfHYyKHAsMHxhWzQ3MTkwXSwxOTUwNTkpLCEoMHxm''@;'; + put 'put ''ZVttPj4wXSkpe3A9MTticmVhayBlfWlmKCgwfE5JKGwsbSkpPDwyND4+MjQpe3A9MTticmVhayBlfXA9MHxOcyhjLHAsZil9ZWxzZSBwPTE7ZWxzZSBwPTF9d2hpbGUoMCk7cmV0dXJuIDB8cH1mdW5jdGlvbiBjdmUobCxjKXt2YXIgZixwLG07cmV0dXJuIGN8PTAsZj1sZSxsZT1sZSs2NHww''@;'; + put 'put ''LHA9ZiszMnwwLGFbKG09Zik+PjJdPWFbKGw9NDgrKDB8YVsxNisobHw9MCk+PjJdKXwwKT4+Ml0sYVttKzQ+PjJdPWFbbCs0Pj4yXSxhW20rOD4+Ml09YVtsKzg+PjJdLGFbbSsxMj4+Ml09YVtsKzEyPj4yXSxhW20rMTY+PjJdPWFbbCsxNj4+Ml0sYVttKzIwPj4yXT1hW2wrMjA+PjJdLGFb''@;'; + put 'put ''bSsyND4+Ml09YVtsKzI0Pj4yXSxhW20rMjg+PjJdPWFbbCsyOD4+Ml0sYVtwPj4yXT1hW2M+PjJdLGFbcCs0Pj4yXT1hW2MrND4+Ml0sYVtwKzg+PjJdPWFbYys4Pj4yXSxhW3ArMTI+PjJdPWFbYysxMj4+Ml0sYVtwKzE2Pj4yXT1hW2MrMTY+PjJdLGFbcCsyMD4+Ml09YVtjKzIwPj4yXSxh''@;'; + put 'put ''W3ArMjQ+PjJdPWFbYysyND4+Ml0sYVtwKzI4Pj4yXT1hW2MrMjg+PjJdLGM9MjU1JigwfG15KG0scCkpLGxlPWYsMHxjfWZ1bmN0aW9uIGZ2ZShsLGMpe2N8PTA7dmFyIEsscGUsZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxnZT0wLGJlPTAsT2U9MDtLPTB8''@;'; + put 'put ''YVsxNTIrKGx8PTApPj4yXSxwZT0wfHhmKGwpLGFbcGUrND4+Ml09MixhW3BlKzg+PjJdPWMsYVtwZSsxMj4+Ml09OCwxNjc3NzIxNiZLfDAmJihmPSgwfGhyWzE3OCsoMHxhWzE2KygwfGNyKGMpKT4+Ml0pPj4xXSk+Mj8rKDB8fn4oKGY9NzIqK19bMTYrKDB8YVsxMzIrKDB8YVtjKzE2Pj4y''@;'; + put 'put ''XSk+PjJdKT4+M10pKyhmPj0wPy41Oi0uNSkpKTowLF9bcGUrMTY4Pj4zXT1mKSxISChsLDB8YVsxMDQrKDB8YVsodz1jKzE2fDApPj4yXSk+PjJdLGMpO2Rve2lmKDQyNTk4NDAmS3wwKXtpZigwPT0oMHxhW3BlKzIwOD4+Ml0pJiYwPT0oMSZpdFtwZSsyNjA+PjFdKSlicmVhaztSPTB8JDUo''@;'; + put 'put ''YyksZj0rX1sxNisoYj0wfGFbdz4+Ml0pPj4zXSxHPStfW2IrMjQ+PjNdLGI9MHxuUShjKTtlOmRve2lmKDM9PSgyfFIpKWlmKE09MHxhWzEyKygwfGFbdz4+Ml0pPj4yXSxwPSgwfE5IKE0pKTw8MjQ+PjI0PzAhPShhW00rND4+Ml18YnwwKTowLDA9PSg1MjQyODgmS3wwKXwwPT0oMHxNKXxw''@;'; + put 'put ''KWdlPTMxO2Vsc2V7aWYoRD0oMHwoRD0wfGFbKG09TSs4fDApPj4yXSkpPDM/MTpELGs9KDB8KGs9MHxhWyhBPU0rNHwwKT4+Ml0pKT4xP2s6MSxSPTB8YVtNKzQ0Pj4yXSxwPSgocD0ocD0wfExpKGMsMTAyNzA1KSk/MHxyMyhwKTowKS00fDApPj4+MD41Nj8yMDpwLCEoYVtBPj4yXXxiKSl7''@;'; + put 'put ''YVtwZSsyNjQ+PjJdPTAsbT0wfHZyKDMyKSxfW20+PjNdPWYtKE9lPStfWzg4KyhwPTB8YVt3Pj4yXSk+PjNdKSxfW20rOD4+M109Ry0oYmU9LjUqK19bcCs4MD4+M10pLF9bbSsxNj4+M109T2UrZixfW20rMjQ+PjNdPWJlK0cscD0yO2JyZWFrfWlmKCgwfChtPTB8YVttPj4yXSkpPDMmJjA9''@;'; + put 'put ''PStfW00rMzI+PjNdJiYwPT0rX1tNKzI0Pj4zXSl7aWYobT1wZSsyNjR8MCwwfGFbTT4+Ml0pe2FbbT4+Ml09MSxtPTB8dnIoMzIpLF9bbT4+M109ZixfW20rOD4+M109RyxfW20rMTY+PjNdPStfW1IrKChwPShrPDwxKS0xfDApPDw0KT4+M10rZixfW20rMjQ+PjNdPStfW1IrKHA8PDQpKzg+''@;'; + put 'put ''PjNdK0cscD0yO2JyZWFrfWZvcihhW20+PjJdPTIsbT0wfFZIKCtfW1IrKChtPShrPDwxKS0xfDApPDw0KT4+M10sK19bUisobTw8NCkrOD4+M10scCksQT0wOzspe2lmKCgwfEEpPj0oMHxwKSlicmVhayBlO19bKFI9bSsoQTw8NCl8MCk+PjNdPStfW1I+PjNdK2YsX1soUj1tKyhBPDw0KSs4''@;'; + put 'put ''fDApPj4zXT0rX1tSPj4zXStHLEE9QSsxfDB9fWlmKGs9MHxBcihtLGsrLTF8MCksYVtwZSsyNjQ+PjJdPTIsKDB8bSk8KDB8cCkpZm9yKG09MHx2cihEPDw0KSxwPTA7Oyl7aWYoKDB8cCk+PSgwfEQpKXtwPUQ7YnJlYWsgZX1fW20rKHA8PDQpPj4zXT0rX1tSKygoTT1wK2t8MCk8PDQpPj4z''@;'; + put 'put ''XStmLF9bbSsocDw8NCkrOD4+M109K19bUisoTTw8NCkrOD4+M10rRyxwPXArMXwwfWVsc2UgZm9yKGI9KDB8bSkvKDB8cCl8MCxtPTB8dnIocDw8NCksQT0wLHc9MDs7KXtpZigoMHxBKT49KDB8cCkpYnJlYWsgZTtfW20rKEE8PDQpPj4zXT0rX1tSKygoRD13K2t8MCk8PDQpPj4zXStmLF9b''@;'; + put 'put ''bSsoQTw8NCkrOD4+M109K19bUisoRDw8NCkrOD4+M10rRyxBPUErMXwwLHc9dytifDB9fWVsc2UgZ2U9MzF9d2hpbGUoMCk7MzE9PSgwfGdlKSYmKGFbcGUrMjY0Pj4yXT0wLG09MHx2cigzMiksX1ttPj4zXT1mLStfWzg4KyhwPTB8YVt3Pj4yXSk+PjNdLF9bbSs4Pj4zXT1HLShPZT0uNSor''@;'; + put 'put ''X1twKzgwPj4zXSksX1ttKzE2Pj4zXT0rX1twKzk2Pj4zXStmLF9bbSsyND4+M109T2UrRyxwPTIpLDgxOTImS3x8TWgobCxtLG0scCksYVtwZSsyNzI+PjJdPW0sYVtwZSsyNjg+PjJdPXB9fXdoaWxlKDApO0Q5KDB8TGkoYywxMDAwMzIpKSxmdW5jdGlvbiB2YihsLGMpe2N8PTA7dmFyIGY9''@;'; + put 'put ''MDswfChjPTB8YVs2MCsobHw9MCk+PjJdKSYmMHwoZj0wfGFbYys1Nj4+Ml0pJiZDb1sxMjcmZl0obCl9KGwsYyl9ZnVuY3Rpb24gVG9lKGwpeyhmdW5jdGlvbiAkTShsKXt2YXIgYyxmPTA7MHwoYz0wfGFbNjArKGx8PTApPj4yXSkmJjB8KGY9MHxhW2MrNjA+PjJdKSYmQ29bMTI3JmZdKGwp''@;'; + put 'put ''fSkobHw9MCksT0MobCl9ZnVuY3Rpb24gSEgobCxjLGYpe2x8PTAsY3w9MDt2YXIgbSx3LGIsayxNLEEscD0wO009bGUsbGU9bGUrMTQ0fDAsYj1NLHA9MHxMaShmfD0wLDE0MTA1NSksdz0wfExpKGYsMTQxMTAxKSxrPTB8TGkoZiwxNDEwODgpLHVzKGIsMTI4LE0rMTZ8MCksQT1jPzB8YVtj''@;'; + put 'put ''Pj4yXTowLDAhPSgwfHApJiYwIT0oMHxmZVtwPj4wXSl8fChwPTB8TGkoZiwxMTE0NzcpKSxtPTB8eUYobCxmLGIpLFExKGwsQSxwLGM9dz8wfEE3KHcsZik6MCxrLG0sZiksRnQoYyksQzIoYiksbGU9TX1mdW5jdGlvbiBuUShsKXt2YXIgYz0wLGY9MDtsPTB8QmEobHw9MCwwfGFbNDcxNTdd''@;'; + put 'put ''LDE5NTA1OSk7ZTpkb3tpZigwfGZlW2w+PjBdKWZvcihaQShsKSxsPTAsYz0xODgyMjg7Oyl7aWYoIShmPTB8YVtjPj4yXSkpYnJlYWsgZTtsPShmPTA9PSgwfFppKGYsMTExMTAxKSkpPzE6bCxjPWMrNHwwfWVsc2UgbD0wfXdoaWxlKDApO3JldHVybiAwfGx9ZnVuY3Rpb24gTkgobCl7dmFy''@;'; + put 'put ''IGM9MDtyZXR1cm4gMHwoND09KDB8YVs4KyhsfD0wKT4+Ml0pJiYwPT0oMHwoMHx+figoYz0rX1tsKzE2Pj4zXSkrKGM+PTA/LjU6LS41KSkpJTkwKSYmMD09K19bbCsyND4+M10/MD09K19bbCszMj4+M10mMTowKX1mdW5jdGlvbiBWSChsLGMsZil7bD0rbCxjPStjO3ZhciBBLHcscD0wLG09''@;'; + put 'put ''MDtmb3IoQT02LjI4MzE4NTMwNzE3OTU4Ni8rKDB8KGZ8PTApKSx3PTB8dnIoZjw8NCkscD0wLG09MDshKCgwfG0pPj0oMHxmKSk7KV9bdysobTw8NCk+PjNdPStoYSgrcCkqbCxfW3crKG08PDQpKzg+PjNdPStEYSgrcCkqYyxwKz1BLG09bSsxfDA7cmV0dXJuIDB8d31mdW5jdGlvbiByUShs''@;'; + put 'put ''LGMpe2x8PTAsY3w9MDt2YXIgZj0wO2U6ZG97aWYoKDB8YVtsKzE1Nj4+Ml0pPj0yJiYoZj0wfHYyKGMsMHxzaShjLDAsMTAxNTEwLDApLDE5NTA1OSksKDB8TkkobCxmKSk8PDI0Pj4yND09MCkpaWYoMHxmZVtmPj4wXSlmPTA7ZWxzZSBmb3IoZj0wfER0KGMpOzspe2lmKCFmKXtmPTA7YnJl''@;'; + put 'put ''YWsgZX1pZigoMHx4b2UobCxjLGYpKTw8MjQ+PjI0KXtmPTE7YnJlYWsgZX1mPTB8enQoYyxmKX1lbHNlIGY9MX13aGlsZSgwKTtyZXR1cm4gMHxmfWZ1bmN0aW9uIElvZShsLGMpe3ZhciBmO2N8PTAsZj0wfHhmKGx8PTApLGFbZis0Pj4yXT0xLGFbZis4Pj4yXT1jLGFbZisxMj4+Ml09MSxI''@;'; + put 'put ''SChsLDB8YVsxMisoMHxhW2MrMTY+PjJdKT4+Ml0sYyksZnVuY3Rpb24gSVIobCxjKXtjfD0wO3ZhciBmPTA7MHwoYz0wfGFbNjArKGx8PTApPj4yXSkmJjB8KGY9MHxhW2MrMzI+PjJdKSYmQ29bMTI3JmZdKGwpfShsLGMpfWZ1bmN0aW9uIFZJKGwsYyl7Y3w9MDt2YXIgZj0wLHA9MCxtPTAs''@;'; + put 'put ''QT0wO2w9MHxMaShsfD0wLDE0MTA4Mik7ZTpkb3tpZigwIT0oMHxsKSYmMCE9KDB8ZmVbbD4+MF0pKWZvcihaQShsKSxmPTE4ODIyOCxsPTA7Oyl7Zm9yKDs7KXtpZighKHA9MHxhW2Y+PjJdKSl7Zj0xODgyMjg7YnJlYWsgZX1pZighKDB8WmkocCwxMTExMDEpKSl7bT0xMDticmVha31pZigh''@;'; + put 'put ''KDB8WmkocCwxMDYzMzQpKSl7cD1mLG09MTI7YnJlYWt9aWYoISgwfFppKHAsMTA2MzQxKSkpe3A9ZixtPTE0O2JyZWFrfWlmKCEoMHxaaShwLDEwNjMxNikpKXtwPWYsbT0xNjticmVha31mPWYrNHwwfWlmKDEwIT0oMHxtKSlpZigxMiE9KDB8bSkpaWYoMTQhPSgwfG0pKWlmKDE2IT0oMHxt''@;'; + put 'put ''KSk7ZWxzZXtmb3IoO2FbKG09cCk+PjJdPUE9MHxhWyhwPXArNHwwKT4+Ml0sQTspbT0xNjtsfD00fWVsc2V7Zm9yKDthWyhtPXApPj4yXT1BPTB8YVsocD1wKzR8MCk+PjJdLEE7KW09MTQ7bHw9NjR9ZWxzZXtmb3IoO2FbKEE9cCk+PjJdPW09MHxhWyhwPXArNHwwKT4+Ml0sbTspbT0xMjts''@;'; + put 'put ''fD0zfWVsc2UgZj1mKzR8MCxsfD0xfWVsc2UgZj0wLGw9MH13aGlsZSgwKTtyZXR1cm4gYVtjPj4yXT1sLDB8Zn1mdW5jdGlvbiB1ayhsLGMsZil7bHw9MCxjfD0wLGZ8PTA7dmFyIEEsYixwPTAsbT0wLHc9MCxrPTA7aWYoYj1sZSxsZT1sZSsxNnwwLEE9YixhWyh3PWIrNHwwKT4+Ml09MCxr''@;'; + put 'put ''PTA9PSgwfHM3KGwsMCx3KSksdz0wfGFbdz4+Ml0sayYmKDB8KHA9MHxhW3c+PjJdKSk+PTImJjAhPSgwfGFbYVsobT13Kzh8MCk+PjJdPj4yXSkpeygwfHApPjImJiRyKDAsMTAwNDE1LEEpLGs9MHxRbigxKygwfFVvKGwpKXwwKSxhW2M+PjJdPWssaWQoaywwfGFbYVttPj4yXT4+Ml0pLDB8''@;'; + put 'put ''YVsxMisoMHxhW20+PjJdKT4+Ml0/KGs9KGs9MHxhW2M+PjJdKSsoMSsoMHxVbyhrKSkpfDAsYVtjKzQ+PjJdPWssaWQoaywwfGFbMTIrKDB8YVttPj4yXSk+PjJdKSk6YVtjKzQ+PjJdPTAsbD0wfGFbbT4+Ml07ZG97aWYoISgwfGZlW2wrOD4+MF0pKXtpZigwfGZlW2wrMjA+PjBdKXtqbltm''@;'; + put 'put ''Pj4yXT0xLStqbltsKzE2Pj4yXTticmVha31qbltmPj4yXT0wO2JyZWFrfWFbZj4+Ml09YVtsKzQ+PjJdfXdoaWxlKDApO0ZBKHcpLGw9MX1lbHNlIGFbYz4+Ml09MCxGQSh3KSxsPTA7cmV0dXJuIGxlPWIsMHxsfWZ1bmN0aW9uIGh2ZShsLGMpeyhmdW5jdGlvbiBLTShsLGMpe2N8PTA7dmFy''@;'; + put 'put ''IGY9MDswfChjPTB8YVs2MCsobHw9MCk+PjJdKSYmMHwoZj0wfGFbYyszNj4+Ml0pJiZDb1sxMjcmZl0obCl9KShsfD0wLGN8PTApLE9DKGwpfWZ1bmN0aW9uIGpIKGwsYyxmLHApe2x8PTAsZnw9MDt2YXIgQSxtPTA7Zm9yKG09KDB8KG09KEE9MHxhWyhjfD0wKT4+Ml0pPDwxKSk+KDB8KHB8''@;'; + put 'put ''PTApKT9tOnAsKDB8QSk8KDB8cCkmJihsPTB8VjAobCxtPDw0KSxhW2M+PjJdPW0pLGM9MDshKCgwfGMpPj0oMHxwKSk7KV9bbCsoYzw8NCk+PjNdPStfW2YrKDI0KmN8MCk+PjNdLF9bbCsoYzw8NCkrOD4+M109K19bZisoMjQqY3wwKSs4Pj4zXSxjPWMrMXwwO3JldHVybiAwfGx9ZnVuY3Rp''@;'; + put 'put ''b24gakkobCxjKXt2YXIgZjtmPTB8YVsoY3w9MCk+PjJdLGFbKGx8PTApPj4yXT1hW2MrND4+Ml0sYVtsKzQ+PjJdPWZ9ZnVuY3Rpb24gRG9lKGwsYyl7bHw9MDt2YXIgbSxmPTAscD0wO2ZvcihtPTE2KyhjfD0wKXwwLHA9MTshKCgwfHApPigwfGFbMTgwKyhjPTB8YVttPj4yXSk+PjJdKSk7''@;'; + put 'put ''KURvZShsLGY9MHxhWygwfGFbYysxODQ+PjJdKSsocDw8Mik+PjJdKSwwfChjPTB8TGkoZiwxNDA4MjMpKSYmMHxmZVtjPj4wXSYmbWEobCxjKSwwfChjPTB8TGkoZiwxMzc3MjkpKSYmMHxmZVtjPj4wXSYmbWEobCxjKSwwfChjPTB8TGkoZiwxNDA5NzcpKSYmMHxmZVtjPj4wXSYmbWEobCxj''@;'; + put 'put ''KSwwfChjPTB8TGkoZiwxMDE0MTgpKSYmMHxmZVtjPj4wXSYmaGwobCxjKSwwfChjPTB8TGkoZiwxMDE0NDYpKSYmMHxmZVtjPj4wXSYmbWEobCxjKSxwPXArMXwwfWZ1bmN0aW9uIHB2ZShsKXtsfD0wO3ZhciBjPTAsZj0wLHA9MDtyZXR1cm4oYz0wfGFbNDcxMjddKXx8KGM9MHxpcygyMDYy''@;'; + put 'put ''OCwwfGFbNDU4MV0pLGFbNDcxMjddPWMpLDB8bWlbNjMmYVtjPj4yXV0oYyxsLDQpP2M9MDoocD0wfGFbKGY9MHxhWzQ3MTI3XSk+PjJdLGM9MHxyYShsKSxtaVs2MyZwXShmLGMsMSksYz0xKSwwfGN9ZnVuY3Rpb24gc2MobCl7dmFyIGM9MDtjPTB8YVs0NzEyOF0sKGx8PTApPyhhWzQ3MTI4''@;'; + put 'put ''XT1jKzEsY3x8KGFbNDcxMjldPTB8cmEoMHxUaigxLDApKSxUaigxLDE1MzU2MykpKTooMHxjKT4wJiYoYVs0NzEyOF09Yz1jKy0xfDAsMD09KDB8YykpJiYoVGooMSwwfGFbNDcxMjldKSxGdCgwfGFbNDcxMjldKSl9ZnVuY3Rpb24gZzIobCxjKXtsfD0wLGN8PTA7dmFyIEcsZ2UsT2UsZj0w''@;'; + put 'put ''LHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wO09lPWxlLGxlPWxlKzk2fDAsRz1PZSs0OHwwLGdlPU9lKzI0fDAscD1PZSs4fDAsZj1PZTtkb3tpZigwIT0oMHxoMChjLDEzNzQ4MywwLDEpKSYmMCE9KDB8YVs4KygwfGFbKFI9YysxNnwwKT4+Ml0pPj4yXSkpe0xvZShjKSxP''@;'; + put 'put ''b2UobCxjKSxSb2UobCxjKSxzYygxKSxiPWwrNTZ8MCxrPWwrMTg0fDAsTT1sKzE5MnwwLEQ9bCsyOHwwLHc9MHx6RyhsKTtlOmZvcig7Oyl7aWYoIXcpe0E9MzM7YnJlYWt9aWYoKGY9MHxhW2I+PjJdKT8oYVt3KzIwPj4yXT1hW2YrOD4+Ml0sZj0wfGFbZisxMj4+Ml0pOihhW3crMjA+PjJd''@;'; + put 'put ''PTAsZj0wKSxhW3crMjQ+PjJdPWYsYVt3KzEyPj4yXT1sLGFbdysyOD4+Ml09YVtrPj4yXSxhW3crNjIwPj4yXT0yNTc2NCxhW3crNjI0Pj4yXT0xNCwhKDB8YVs4KygwfGFbUj4+Ml0pPj4yXSkpe0E9MTM7YnJlYWt9c3dpdGNoKEE9MHxDOSh3LDB8YVsocD13KzUyfDApPj4yXSksYVt3KzU2''@;'; + put 'put ''Pj4yXT1BLDB8QSl7Y2FzZSA5OTk6QT0xNjticmVhayBlO2Nhc2UgMjE6Zj0xO2JyZWFrO2Nhc2UgMjQ6Zj01MjA7YnJlYWs7ZGVmYXVsdDpmPTB8b1EoYyl9YVsobT13KzE1MnwwKT4+Ml09YVttPj4yXXxmLGY9MHxhW00+PjJdO2Rve2lmKGYpe2lmKDMyJmFbZisxNTI+PjJdfDAmJjA9PSgw''@;'; + put 'put ''fFppKDB8YVtwPj4yXSwwfGFbZis1Mj4+Ml0pKSl7aWYoIShmPTB8YVs0NzEzMF0pKXtBPTI3O2JyZWFrfWFbZis4Pj4yXT13LGFbdyszNj4+Ml09YVtmKzM2Pj4yXSxBPTI5O2JyZWFrfWs5KGYpLGFbTT4+Ml09MCxhW0Q+PjJdPTAsQT0yNH1lbHNlIEE9MjR9d2hpbGUoMCk7MjQ9PSgwfEEp''@;'; + put 'put ''JiYoYVs0NzEzMF09MCxBPTI3KSwyNz09KDB8QSkmJihBPTAsMD09KDB8eFIodykpKSYmKGFbTT4+Ml09dyxBPTI5KSwyOT09KDB8QSkmJihhW3crOD4+Ml09MCxhW3crMTA0Pj4yXT0yNTg3NixCb2UodyksWkkodyksUG9lKHcsYyksRm9lKHcsYyksSG9lKHcsYyksMTI4JmFbbT4+Ml18fGdX''@;'; + put 'put ''KHcsYyksYVs0NzEzMF09dyksdz0wfE5tZShsKX1pZigxMz09KDB8QSkpeyRyKDEsMTAwNjc5LGdlKSxzYygwKSxmPS0xO2JyZWFrfWlmKDE2PT0oMHxBKSl7YVtHPj4yXT1hW3A+PjJdLCRyKDEsMTAwNzAwLEcpLHNjKDApLGY9LTE7YnJlYWt9aWYoMzM9PSgwfEEpKXtzYygwKSxmPTA7YnJl''@;'; + put 'put ''YWt9fWVsc2UgQT01fXdoaWxlKDApO3JldHVybiA1PT0oMHxBKSYmKCRyKDEsMTAwNjAyLGYpLGY9LTEpLGxlPU9lLDB8Zn1mdW5jdGlvbiBMb2UobCl7dmFyIGM9MDtmb3IoYz0wfER0KGx8PTApO2M7KWpvZShsLGMpLGM9MHx6dChsLGMpfWZ1bmN0aW9uIE9vZShsLGMpe3ZhciB3LGIsRCxm''@;'; + put 'put ''PTAscD0wLG09MCxBPTAsaz0wLE09MCxSPTA7RD1sZSxsZT1sZSszMnwwLGI9RCsyNHwwLHA9RCsxNnwwLHc9RCs4fDAsTT1ELGFbMTY4KyhsfD0wKT4+Ml09Y3w9MCxmZVsobT1sKzI5M3wwKT4+MF09MCwwfChmPTB8TGkoYywxMDU0OTYpKSYmKGFbcD4+Ml09dyxhW3ArND4+Ml09TSwoMHwo''@;'; + put 'put ''QT0wfGlsKGYsMTA1NTAzLHApKSk+MCkmJihfWyhmPWwrMjA4fDApPj4zXT1SPTcyKitfW3c+PjNdLF9bbCsyMDA+PjNdPVIsMSE9KDB8QSkmJihfW2Y+PjNdPTcyKitfW00+PjNdKSxmZVttPj4wXT0xKSxmZVsocD1sKzI5MnwwKT4+MF09MCwwfChmPTB8TGkoYywxMDExMDIpKSYmKGFbYj4+''@;'; + put 'put ''Ml09dyxhW2IrND4+Ml09TSwoMHwoaz0wfGlsKGYsMTA1NTAzLGIpKSk+MCkmJihfWyhmPWwrMjI0fDApPj4zXT1SPTcyKitfW3c+PjNdLF9bbCsyMTY+PjNdPVIsMSE9KDB8aykmJihfW2Y+PjNdPTcyKitfW00+PjNdKSxmZVtwPj4wXT0xKSxmZVsoZj1sKzI5NHwwKT4+MF09MCxhWyhwPWwr''@;'; + put 'put ''MjMyfDApPj4yXT1hWyhNPTQ4KygwfGFbOCsoMHxhWyhtPWMrMTZ8MCk+PjJdKT4+Ml0pfDApPj4yXSxhW3ArND4+Ml09YVtNKzQ+PjJdLGFbcCs4Pj4yXT1hW00rOD4+Ml0sYVtwKzEyPj4yXT1hW00rMTI+PjJdLCtfWzQ4KyhwPTB8YVs4KygwfGFbbT4+Ml0pPj4yXSk+PjNdPi4wMDEmJitf''@;'; + put 'put ''W3ArNTY+PjNdPi4wMDEmJihmZVtmPj4wXT0xKSxhW2wrMjg4Pj4yXT0wfGZlW3ArODE+PjBdPzkwOjAsYVsoZj1sKzE5NnwwKT4+Ml09MTAxMTA2LDB8KHA9MHxMaShjLDEwMTEwOSkpJiYwfGZlW3A+PjBdJiYoYVtmPj4yXT1wKSxhWyhNPWwrMjU2fDApPj4yXT1hWyhrPTE2KygwfGFbbT4+''@;'; + put 'put ''Ml0pfDApPj4yXSxhW00rND4+Ml09YVtrKzQ+PjJdLGFbTSs4Pj4yXT1hW2srOD4+Ml0sYVtNKzEyPj4yXT1hW2srMTI+PjJdLGFbTSsxNj4+Ml09YVtrKzE2Pj4yXSxhW00rMjA+PjJdPWFbaysyMD4+Ml0sYVtNKzI0Pj4yXT1hW2srMjQ+PjJdLGFbTSsyOD4+Ml09YVtrKzI4Pj4yXSxhWzQ3''@;'; + put 'put ''MTQxXT0wfHNpKGMsMCwxMDE0NzIsMCksYVs0NzE0Ml09MHxzaShjLDAsMTAxNDYzLDApLGFbbCszMjA+PjJdPTB8QmEoMCwwfGFbNDcxNTFdLDEwNzk5NCksX1tsKzMyOD4+M109K01sKDAsMHxhWzQ3MTUwXSwxNCwxKSxhW2wrMzM2Pj4yXT0yMDY2NCxhW2wrMTg4Pj4yXT0wfHRpKGMpLGxl''@;'; + put 'put ''PUR9ZnVuY3Rpb24gUm9lKGwsYyl7Y3w9MDt2YXIgbSxmPTAscD0wOzB8KHA9MHxhWyhmPTMwNCsobHw9MCl8MCk+PjJdKSYmKEZ0KHApLGFbZj4+Ml09MCksMHwoZj0wfGFbKHA9bCszMDh8MCk+PjJdKSYmKEZ0KGYpLGFbcD4+Ml09MCksMHwoZj0wfGFbKG09bCszMTZ8MCk+PjJdKSYmKEZ0''@;'; + put 'put ''KGYpLGFbbT4+Ml09MCksKGY9MHxMaShjLDEwMDg1MykpPyhhW2wrMzEyPj4yXT0wfGZ1bmN0aW9uIE5vZShsLGMsZil7bHw9MCxmfD0wO3ZhciBBLGIscD0wLG09MCx3PTA7Zm9yKGI9bGUsbGU9bGUrMTZ8MCxtPWIscD0wfExpKGN8PTAsMTAwOTczKSxhWyh3PWwrMjk2fDApPj4yXT0wPT0o''@;'; + put 'put ''MHxwKT8xMDA5ODI6cCxjPTB8TGkoYywxMDA5ODYpLGFbKHA9bCszMDB8MCk+PjJdPWM9MD09KDB8Yyk/MTAwOTk5OmMsMHwoYz0wfGZ1bmN0aW9uIFNjZShsLGMpe3JldHVybiBjPShsfD0wKSsoMHxEaihsLGN8PTApKXwwLDB8KDB8ZmVbYz4+MF0/YzowKX0oMHxhW3c+PjJdLGMpKSYmKGFb''@;'; + put 'put ''bT4+Ml09ZmVbYz4+MF0sJHIoMCwxMDEwMDEsbSksYVtwPj4yXT0xOTUwNTkpLGM9MHxyYShmKSxhW2wrMzA0Pj4yXT1jLEE9bCszMDh8MCxwPTAsbD0wO2Y9MHxsdihjLDB8YVt3Pj4yXSk7KW09bCsxfDAsKDB8bCk8KDB8cCk/Yz0wfGFbQT4+Ml06KHA9cCsxMjh8MCxjPShjPTB8YVtBPj4y''@;'; + put 'put ''XSk/MHxWMChjLHA8PDIpOjB8UW4ocDw8MiksYVtBPj4yXT1jKSxhW2MrKG08PDIpPj4yXT1mLGw9bSxjPTA7cmV0dXJuIDB8bCYmKHc9MHxWMCgwfGFbQT4+Ml0sOCsobDw8Mil8MCksYVtBPj4yXT13LGFbdz4+Ml09MCxhWygwfGFbQT4+Ml0pKyhsKzE8PDIpPj4yXT0wKSxsZT1iLDB8bH0o''@;'; + put 'put ''bCxjLGYpLDB8KGY9MHxMaShjLDEwMDg2MCkpJiYwfGZlW2Y+PjBdJiYoYVttPj4yXT0wfGZ1bmN0aW9uIFZvZShsLGMpe2N8PTA7dmFyIGIsayxNLGY9MCxwPTAsbT0wLEE9MCx3PTA7Zm9yKE09bGUsbGU9bGUrMTZ8MCxrPU0sZj0wfFFuKDgrKGFbKGI9MzEyKyhsfD0wKXwwKT4+Ml08PDIp''@;'; + put 'put ''fDApLHA9MCx3PTE7ISgoMHx3KT4oMHwoQT0wfGFbYj4+Ml0pKSk7KW09cCsxfDAsKDB8RW9lKGwsdyxBLGMpKTw8MjQ+PjI0JiYoYVtmKyhtPDwyKT4+Ml09dyxwPW0pLHc9dysxfDA7cmV0dXJuIHA/KGFbZj4+Ml09cCxhW2YrKHArMTw8Mik+PjJdPTErKDB8YVtiPj4yXSkpOihhW2s+PjJd''@;'; + put 'put ''PWMsJHIoMCwxMDA4NzIsayksRnQoZiksZj0wKSxsZT1NLDB8Zn0obCxmKSkpOihhW3A+PjJdPTAsYVtsKzMxMj4+Ml09MSl9ZnVuY3Rpb24gb1EobCl7bD0wfExpKGx8PTAsMTAwODIxKTtlOmRve2lmKGwpc3dpdGNoKDB8ZmVbbD4+MF0pe2Nhc2UgMTEwOmlmKDB8WmkobCsxfDAsMTAwODMz''@;'; + put 'put ''KSl7bD0wO2JyZWFrIGV9bD0xO2JyZWFrO2Nhc2UgMTAxOmlmKDB8WmkobCsxfDAsMTAwODQzKSl7bD0wO2JyZWFrIGV9bD0xNjticmVhaztkZWZhdWx0Omw9MDticmVhayBlfWVsc2UgbD0wfXdoaWxlKDApO3JldHVybiAwfGx9ZnVuY3Rpb24gQm9lKGwpe3ZhciBjPTAsZj0wOzB8ZmVbMjky''@;'; + put 'put ''KyhmPTB8YVsobHw9MCk+PjJdKT4+MF0/KGFbKGw9bCsyNDB8MCk+PjJdPWFbKGY9ZisyMTZ8MCk+PjJdLGFbbCs0Pj4yXT1hW2YrND4+Ml0sYVtsKzg+PjJdPWFbZis4Pj4yXSxhW2wrMTI+PjJdPWFbZisxMj4+Ml0pOihfW2wrMjQ4Pj4zXT1jPTMwMD09KDB8YVtsKzU2Pj4yXSk/K19bOCso''@;'; + put 'put ''MHxhW2wrNjg+PjJdKT4+M106NCxfW2wrMjQwPj4zXT1jKX1mdW5jdGlvbiBaSShsKXt2YXIgYz0wO2M9MHxhWyhsfD0wKT4+Ml07ZTpkb3tpZigwfGZlW2MrMjkzPj4wXSlsPWwrNDE2fDAsYz1jKzIwMHwwLGFbbD4+Ml09YVtjPj4yXSxhW2wrND4+Ml09YVtjKzQ+PjJdLGFbbCs4Pj4yXT1h''@;'; + put 'put ''W2MrOD4+Ml0sYVtsKzEyPj4yXT1hW2MrMTI+PjJdO2Vsc2Ugc3dpdGNoKDB8YVtsKzU2Pj4yXSl7Y2FzZSAzMDA6YVsoYz1sKzQxNnwwKT4+Ml09YVsobD04KygwfGFbbCs4ND4+Ml0pfDApPj4yXSxhW2MrND4+Ml09YVtsKzQ+PjJdLGFbYys4Pj4yXT1hW2wrOD4+Ml0sYVtjKzEyPj4yXT1h''@;'; + put 'put ''W2wrMTI+PjJdO2JyZWFrIGU7Y2FzZSAzMDpjYXNlIDIxOmNhc2UgMjI6Y2FzZSA0OmNhc2UgMzpjYXNlIDI6X1tsKzQyND4+M109MzYsX1tsKzQxNj4+M109MzY7YnJlYWsgZTtkZWZhdWx0OmFbKGM9bCs0MTZ8MCk+PjJdPTAsYVtjKzQ+PjJdPTAsYVtjKzg+PjJdPTAsYVtjKzEyPj4yXT0w''@;'; + put 'put ''O2JyZWFrIGV9fXdoaWxlKDApfWZ1bmN0aW9uIFBvZShsLGMpe3ZhciBmLHA9MDtwPTB8YVsxOTIrKDB8YVsobHw9MCk+PjJdKT4+Ml0sZj0rX1syNCsoMHxhWzgrKDB8YVsxNisoY3w9MCk+PjJdKT4+Ml0pPj4zXTtkb3tpZigwPT1mKXtpZigwfHAmJjB8ZmVbcCsxMjg+PjBdKXthWyhsPWwr''@;'; + put 'put ''NDMyfDApPj4yXT1hWyhwPXArMTEyfDApPj4yXSxhW2wrND4+Ml09YVtwKzQ+PjJdLGFbbCs4Pj4yXT1hW3ArOD4+Ml0sYVtsKzEyPj4yXT1hW3ArMTI+PjJdO2JyZWFrfWlmKGM9bCs0MzJ8MCwzMDA9PSgwfGFbbCs1Nj4+Ml0pKXthW2M+PjJdPWFbKGw9NDArKDB8YVtsKzg0Pj4yXSl8MCk+''@;'; + put 'put ''PjJdLGFbYys0Pj4yXT1hW2wrND4+Ml0sYVtjKzg+PjJdPWFbbCs4Pj4yXSxhW2MrMTI+PjJdPWFbbCsxMj4+Ml07YnJlYWt9X1tsKzQ0MD4+M109OTYsX1tjPj4zXT05NjticmVha31fW2wrNDQwPj4zXT1mLF9bbCs0MzI+PjNdPWZ9d2hpbGUoMCl9ZnVuY3Rpb24gRm9lKGwsYyl7Y3w9MDt2''@;'; + put 'put ''YXIgRCxSLEcsSyxwZSxnZSxPZSxMZSxSZSxIZSxWZSxxZSxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLGJlPTA7cWU9bGUsbGU9bGUrMTEyfDAsZ2U9cWUrODB8MCxiZT1xZSs1NnwwLHBlPXFlKzQwfDAsT2U9cWUrMzJ8MCxMZT1xZSsyNHwwLFJlPXFlKzE2fDAsSGU9cWUrOHww''@;'; + put 'put ''LFZlPXFlLEQ9K19bMjcyKyhrPTB8YVsobHw9MCk+PjJdKT4+M10sRz0rX1trKzI4MD4+M10sSz0rX1trKzI2ND4+M10sX1tsKzIwOD4+M109Zj0oUj0rX1trKzI1Nj4+M10pLShwPStfW2wrMjQwPj4zXSksX1tsKzIxNj4+M109dz1LLShBPStfW2wrMjQ4Pj4zXSksX1tsKzIyND4+M109cCs9''@;'; + put 'put ''RCxfW2wrMjMyPj4zXT1BKz1HLGY9cC1mLHc9QS13LF9bUmU+PjNdPTEsQT0rX1s2NCsobT0wfGFbOCsoMHxhW2MrMTY+PjJdKT4+Ml0pPj4zXTtkb3tpZihBPi4wMDEmJihiPStfW20rNzI+PjNdKT4uMDAxKXtpZighKEE8KGY9MD09Zj9BOmYpfGI8KHA9MD09dz9iOncpfHxiPnAmQT5mJjAh''@;'; + put 'put ''PSgwfGZlW20rODA+PjBdKSkpe2I9Zix3PXAsQT0xO2JyZWFrfV9bUmU+PjNdPUE9KChNPUEvZjxiL3ApP0E6YikvKE0/ZjpwKSxiPWYsdz1wfWVsc2UgYj1mLEE9MX13aGlsZSgwKTtpZihfW0hlPj4zXT1wPS41KihSK0QpLF9bVmU+PjNdPWY9LjUqKEsrRyksYVtsKzM2MD4+Ml09YVtrKzI4''@;'; + put 'put ''OD4+Ml0sX1tPZT4+M109Yio9QSxfW0xlPj4zXT13Kj1BLG09MHxMaShjLDEwMDc1Mikpe2s9MHxCMCgxKygwfFVvKG0pKXwwKSxNPTB8QjAoMSsoMHxVbyhtKSl8MCksYVtwZT4+Ml09T2UsYVtwZSs0Pj4yXT1MZSxhW3BlKzg+PjJdPVJlLGFbcGUrMTI+PjJdPWs7ZG97aWYoND09KDB8aWwo''@;'; + put 'put ''bSwxMDA3NjEscGUpKSkwfChtPTB8R3IoMHxhW2MrNjA+PjJdLGssMCkpJiYoX1tIZT4+M109K19bMTYrKGJlPTB8YVttKzE2Pj4yXSk+PjNdLF9bVmU+PjNdPStfW2JlKzI0Pj4zXSk7ZWxzZXtpZihhW2JlPj4yXT1PZSxhW2JlKzQ+PjJdPUxlLGFbYmUrOD4+Ml09UmUsYVtiZSsxMj4+Ml09''@;'; + put 'put ''ayxhW2JlKzE2Pj4yXT1NLDQhPSgwfGlsKG0sMTAwNzgxLGJlKSkpe2FbZ2U+PjJdPU9lLGFbZ2UrND4+Ml09TGUsYVtnZSs4Pj4yXT1SZSxhW2dlKzEyPj4yXT1IZSxhW2dlKzE2Pj4yXT1WZSxpbChtLDEwMDgwMSxnZSk7YnJlYWt9MHwobT0wfEdyKDB8YVtjKzYwPj4yXSxrLDApKSYmKF9b''@;'; + put 'put ''SGU+PjNdPStfWzE2KyhiZT0wfGFbbSsxNj4+Ml0pPj4zXSxfW1ZlPj4zXT0rX1tiZSsyND4+M10pfX13aGlsZSgwKTtGdChrKSxGdChNKSxiPStfW09lPj4zXSx3PStfW0xlPj4zXSxBPStfW1JlPj4zXSxwPStfW0hlPj4zXSxmPStfW1ZlPj4zXX1fW2wrMzY4Pj4zXT1iLF9bbCszNzY+PjNd''@;'; + put 'put ''PXcsX1tsKzM1Mj4+M109QSxfW2wrMzM2Pj4zXT1wLF9bbCszNDQ+PjNdPWYsbGU9cWV9ZnVuY3Rpb24gSG9lKGwsYyl7Y3w9MDt2YXIgRyxwZSxWZSxxZSxudCxXZSxvdCxTdCxrdCxzdCxjdCxTbixIbix1cixIcixmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsSz0w''@;'; + put 'put ''LGdlPTAsYmU9MCxPZT0wLExlPTAsUmU9MCxIZT0wLEV0PTAsWnQ9MCxidD0wLGFuPTA7U249bGUsbGU9bGUrMjI0fDAsY3Q9U24rMjAwfDAsVmU9U24rMTY4fDAsU3Q9U24rMTQ0fDAsWnQ9U24rMTIwfDAsa3Q9U24rOTZ8MCxmPVNuKzE4NHwwLE9lPVNuKzE3NnwwLExlPVNuKzE2MHwwLEhl''@;'; + put 'put ''PVNuKzEzNnwwLFJlPVNuKzExMnwwLHFlPVNuKzgwfDAsbnQ9U24rNDh8MCxXZT1TbiszMnwwLG90PVNuKzE2fDAsYnQ9U24rOHwwLGFuPVNuLGJlPTB8YVsobHw9MCk+PjJdLGFbKHN0PVNuKzY0fDApPj4yXT0wLGFbc3QrND4+Ml09MCxhW3N0Kzg+PjJdPTAsYVtzdCsxMj4+Ml09MCxhW1p0''@;'; + put 'put ''Pj4yXT1hWyhFdD1sKzM2OHwwKT4+Ml0sYVtadCs0Pj4yXT1hW0V0KzQ+PjJdLGFbWnQrOD4+Ml09YVtFdCs4Pj4yXSxhW1p0KzEyPj4yXT1hW0V0KzEyPj4yXSwwfGFbKEV0PWwrMzYwfDApPj4yXSYmKGFbY3Q+PjJdPWFbWnQ+PjJdLGFbY3QrND4+Ml09YVtadCs0Pj4yXSxhW2N0Kzg+PjJd''@;'; + put 'put ''PWFbWnQrOD4+Ml0sYVtjdCsxMj4+Ml09YVtadCsxMj4+Ml0sY2soZixjdCksYVtadD4+Ml09YVtmPj4yXSxhW1p0KzQ+PjJdPWFbZis0Pj4yXSxhW1p0Kzg+PjJdPWFbZis4Pj4yXSxhW1p0KzEyPj4yXT1hW2YrMTI+PjJdKSxhW2t0Pj4yXT1hWyhnZT1sKzQxNnwwKT4+Ml0sYVtrdCs0Pj4y''@;'; + put 'put ''XT1hW2dlKzQ+PjJdLGFba3QrOD4+Ml09YVtnZSs4Pj4yXSxhW2t0KzEyPj4yXT1hW2dlKzEyPj4yXSwwIT0oMHxmZVtiZSsyOTQ+PjBdKSYmMCE9KDMyJmFbbCsxNTI+PjJdfDApPyhfW1N0Pj4zXT1BPStfW2JlKzIzMj4+M10tMiorX1trdD4+M10sX1soUj1TdCs4fDApPj4zXT1iPStfW2Jl''@;'; + put 'put ''KzI0MD4+M10tMiorX1trdCs4Pj4zXSxBPDFlLTQ/KGFbbCsxNjQ+PjJdPTEsZj0xKTooYVsocD1sKzE2NHwwKT4+Ml09Zj1+figoRD0rX1tadD4+M10pL0EpLEQtQSorKDB8Zik+MWUtNCYmKGFbcD4+Ml09Zj1mKzF8MCkpLGI8MWUtND8oYVtsKzE2OD4+Ml09MSxwPTEsbT0rX1tadCs4Pj4z''@;'; + put 'put ''XSk6KGFbKHc9bCsxNjh8MCk+PjJdPXA9fn4oKG09K19bWnQrOD4+M10pL2IpLG0tYiorKDB8cCk+MWUtNCYmKGFbdz4+Ml09cD1wKzF8MCkpLGFbbCsyMDQ+PjJdPTB8QXIocCxmKSxfW1p0Pj4zXT1EPStfWygrX1tadD4+M108QT9adDpTdCk+PjNdLGY9UixwPVp0LGs9K19bKG08Yj9adDpT''@;'; + put 'put ''dCkrOD4+M10sbT1ELHc9MjEpOigwfGFbbCs2OD4+Ml0/KF9bU3Q+PjNdPUE9KEE9K19bMjQrKGY9MHxhW2wrODQ+PjJdKT4+M10tMiorX1trdD4+M10pPDA/MDpBLEQ9K19bZiszMj4+M10tMiorX1trdCs4Pj4zXSxfWyhmPVN0Kzh8MCk+PjNdPUQsRDwwPyhwPVN0LHc9MTcpOmY9U3QpOihf''@;'; + put 'put ''W1N0Kzg+PjNdPTAscD1TdCxmPVN0LHc9MTcpLDE3PT0oMHx3KSYmKF9bZj4+M109MCxmPXAsQT0rX1twPj4zXSksYVtsKzIwND4+Ml09MSxhW2wrMTY4Pj4yXT0xLGFbbCsxNjQ+PjJdPTEsQTwobT0rX1tadD4+M10pJiYoX1tmPj4zXT1tLEE9bSksKGI9K19bKGY9U3QrOHwwKT4+M10pPChr''@;'; + put 'put ''PStfW1p0Kzg+PjNdKT8ocD1TdCx3PTIxKTooSz1mLGs9YikpLDIxPT0oMHx3KSYmKF9bcCs4Pj4zXT1rLEs9ZixrPStfW2Y+PjNdKSxhW2wrNDQ4Pj4yXT1+figoYj0uMDEzODg4ODg4ODg4ODg4ODg4KitfWyhwZT1sKzQzMnwwKT4+M10qKDIqKE09K19ba3Q+PjNdKStBKSkrKGI+PTA/LjU6''@;'; + put 'put ''LS41KSksYVtsKzQ1Mj4+Ml09fn4oKEQ9LjAxMzg4ODg4ODg4ODg4ODg4OCorX1soZ2U9bCs0NDB8MCk+PjNdKigyKihiPStfWyhHPWt0Kzh8MCk+PjNdKStrKSkrKEQ+PTA/LjU6LS41KSksdz1sKzE4OHwwLFI9bCsxODB8MCxwPWJlKzE5NnwwLGFbKGY9bCsxNzJ8MCk+PjJdPTAsYVtmKzQ+''@;'; + put 'put ''PjJdPTAsYVtmKzg+PjJdPTAsYVtmKzEyPj4yXT0wLGFbZisxNj4+Ml09MCxhW2YrMjA+PjJdPTAsekkoT2UsbCwwfGZlW2FbcD4+Ml0+PjBdKSxPZT0wfGFbKGJlPU9lKSs0Pj4yXSxhWyhmPVIpPj4yXT1hW2JlPj4yXSxhW2YrND4+Ml09T2UsekkoTGUsbCwwfGZlWzErKDB8YVtwPj4yXSk+''@;'; + put 'put ''PjBdKSxMZT0wfGFbKGY9TGUpPj4yXSxmPTB8YVtmKzQ+PjJdLGFbKE9lPXcpPj4yXT1MZSxhW09lKzQ+PjJdPWYsMT09KDB8KCgwfChMZT0oMHxhW1I+PjJdKStMZXwwKSk+LTE/TGU6MC1MZXwwKSkmJjE9PSgwfCgoMHwoTGU9KDB8YVtsKzE4ND4+Ml0pK2Z8MCkpPi0xP0xlOjAtTGV8MCkp''@;'; + put 'put ''fHwoekkoSGUsbCw2NiksSGU9MHxhWyhPZT1IZSkrND4+Ml0sYVsoTGU9Uik+PjJdPWFbT2U+PjJdLGFbTGUrND4+Ml09SGUsekkoUmUsbCw3NiksUmU9MHxhWyhMZT1SZSkrND4+Ml0sYVsoSGU9dyk+PjJdPWFbTGU+PjJdLGFbSGUrND4+Ml09UmUsYVtWZT4+Ml09YVtwPj4yXSwkcigwLDEw''@;'; + put 'put ''MDczMixWZSkpLDB8ZmVbODIrKDB8YVs4KygwfGFbYysxNj4+Ml0pPj4yXSk+PjBdPyhBPm0/X1tzdD4+M109az0uNSooQS1tKTprPTAsKEE9K19bSz4+M10pPihEPStfW1p0Kzg+PjNdKT9fW3N0Kzg+PjNdPUE9LjUqKEEtRCk6QT0wKTooQT0wLGs9MCksMHxhW0V0Pj4yXT8oYVtjdD4+Ml09''@;'; + put 'put ''YVtadD4+Ml0sYVtjdCs0Pj4yXT1hW1p0KzQ+PjJdLGFbY3QrOD4+Ml09YVtadCs4Pj4yXSxhW2N0KzEyPj4yXT1hW1p0KzEyPj4yXSxjayhxZSxjdCksYVtadD4+Ml09YVtxZT4+Ml0sYVtadCs0Pj4yXT1hW3FlKzQ+PjJdLGFbWnQrOD4+Ml09YVtxZSs4Pj4yXSxhW1p0KzEyPj4yXT1hW3Fl''@;'; + put 'put ''KzEyPj4yXSxhW2N0Pj4yXT1hW1N0Pj4yXSxhW2N0KzQ+PjJdPWFbU3QrND4+Ml0sYVtjdCs4Pj4yXT1hW1N0Kzg+PjJdLGFbY3QrMTI+PjJdPWFbU3QrMTI+PjJdLGNrKG50LGN0KSxhW1N0Pj4yXT1hW250Pj4yXSxhW1N0KzQ+PjJdPWFbbnQrND4+Ml0sYVtTdCs4Pj4yXT1hW250Kzg+PjJd''@;'; + put 'put ''LGFbU3QrMTI+PjJdPWFbbnQrMTI+PjJdLGFbY3Q+PjJdPWFba3Q+PjJdLGFbY3QrND4+Ml09YVtrdCs0Pj4yXSxhW2N0Kzg+PjJdPWFba3QrOD4+Ml0sYVtjdCsxMj4+Ml09YVtrdCsxMj4+Ml0sY2soV2UsY3QpLGFba3Q+PjJdPWFbV2U+PjJdLGFba3QrND4+Ml09YVtXZSs0Pj4yXSxhW2t0''@;'; + put 'put ''Kzg+PjJdPWFbV2UrOD4+Ml0sYVtrdCsxMj4+Ml09YVtXZSsxMj4+Ml0sYVtjdD4+Ml09YVtzdD4+Ml0sYVtjdCs0Pj4yXT1hW3N0KzQ+PjJdLGFbY3QrOD4+Ml09YVtzdCs4Pj4yXSxhW2N0KzEyPj4yXT1hW3N0KzEyPj4yXSxjayhvdCxjdCksYVtzdD4+Ml09YVtvdD4+Ml0sYVtzdCs0Pj4y''@;'; + put 'put ''XT1hW290KzQ+PjJdLGFbc3QrOD4+Ml09YVtvdCs4Pj4yXSxhW3N0KzEyPj4yXT1hW290KzEyPj4yXSxNPStfW2t0Pj4zXSxrPStfW3N0Pj4zXSxiPStfW0c+PjNdLEE9K19bc3QrOD4+M10sbT0rX1tadD4+M10sdz0wPT0oMHxhW0V0Pj4yXSkpOnc9MSxfW2wrMzg0Pj4zXT1EPWsrTSxfW2wr''@;'; + put 'put ''MzkyPj4zXT11cj1BK2IsX1tsKzQwMD4+M109SG49aytNK20sX1tsKzQwOD4+M109TT1BK2IrKEhyPStfW1p0Kzg+PjNdKSxfW2wrMzIwPj4zXT1tLyhrPStfW2wrMzUyPj4zXSksX1tsKzMyOD4+M109SHIvayxhWyhwPWwrNDU2fDApPj4yXT1+figoRD0uMDEzODg4ODg4ODg4ODg4ODg4KkQq''@;'; + put 'put ''KGs9K19bcGU+PjNdKSkrKEQ+PTA/LjU6LS41KSksYVtsKzQ2MD4+Ml09fn4oKGI9LjAxMzg4ODg4ODg4ODg4ODg4OCp1ciooRD0rX1tnZT4+M10pKSsoYj49MD8uNTotLjUpKSxhWyhmPWwrNDY0fDApPj4yXT1+figoayo9LjAxMzg4ODg4ODg4ODg4ODg4OCpIbikrKGs+PTA/LjU6LS41KSks''@;'; + put 'put ''YVtsKzQ2OD4+Ml09fn4oKEQqPS4wMTM4ODg4ODg4ODg4ODg4ODgqTSkrKEQ+PTA/LjU6LS41KSksd3x8KGFbY3Q+PjJdPWFbcD4+Ml0sYVtjdCs0Pj4yXT1hW3ArND4+Ml0sakkoYnQsY3QpLGJ0PTB8YVsoWnQ9YnQpKzQ+PjJdLGFbKGw9cCk+PjJdPWFbWnQ+PjJdLGFbbCs0Pj4yXT1idCxh''@;'; + put 'put ''W2N0Pj4yXT1hW2Y+PjJdLGFbY3QrND4+Ml09YVtmKzQ+PjJdLGpJKGFuLGN0KSxidD0wfGFbKGw9YW4pKzQ+PjJdLGFbKGFuPWYpPj4yXT1hW2w+PjJdLGFbYW4rND4+Ml09YnQpLGxlPVNufWZ1bmN0aW9uIGNrKGwsYyl7dmFyIGY7Zj0rX1soY3w9MCk+PjNdLF9bKGx8PTApPj4zXT0rX1tj''@;'; + put 'put ''Kzg+PjNdLF9bbCs4Pj4zXT1mfWZ1bmN0aW9uIHpJKGwsYyxmKXtzd2l0Y2gobHw9MCxjfD0wLChmPSgoZnw9MCk8PDI0Pj4yNCktNjZ8MCk+Pj4xfGY8PDMxfDApe2Nhc2UgOTphW2MrMTc2Pj4yXT0oMHxhW2MrMTY4Pj4yXSktMSxjPTAsZj0tMTticmVhaztjYXNlIDA6Yz0wLGY9MTticmVh''@;'; + put 'put ''aztjYXNlIDU6Yz0xLGY9MDticmVhaztjYXNlIDg6YVtjKzE3Mj4+Ml09KDB8YVtjKzE2ND4+Ml0pLTEsYz0tMSxmPTA7YnJlYWs7ZGVmYXVsdDpjPTAsZj0wfWFbbD4+Ml09YyxhW2wrND4+Ml09Zn1mdW5jdGlvbiBqb2UobCxjKXt2YXIgZixwLG0sQTtmb3IobHw9MCxfWzQ4KyhmPTB8YVsx''@;'; + put 'put ''NisoY3w9MCk+PjJdKT4+M109KEE9K19bZisxNj4+M10pLStfW2YrODg+PjNdLF9bZis1Nj4+M109KHA9K19bZisyND4+M10pLShtPS41KitfW2YrODA+PjNdKSxfW2YrNjQ+PjNdPStfW2YrOTY+PjNdK0EsX1tmKzcyPj4zXT1tK3AsYz0wfHcwKGwsYyk7YzspWm9lKGMpLGM9MHxTMChsLGMp''@;'; + put 'put ''fWZ1bmN0aW9uIFpvZShsKXswfChsPTB8YVs4KygwfGFbMTYrKGx8PTApPj4yXSk+PjJdKSYmZnVuY3Rpb24gem9lKGwpe3ZhciB3LGIsayxNLEQsUixHLEsscGUsZ2UsYmUsT2UsTGUsUmUsSGUsVmUscWUsbnQsb3QsYz0wLGY9MCxwPTAsbT0wLEE9MCxXZT0wO290PWxlLGxlPWxlKzI0MHww''@;'; + put 'put ''LExlPW90KzE5MnwwLE9lPW90KzE3NnwwLFJlPW90KzY0fDAsSGU9b3QrMzJ8MCxWZT1vdCxxZT1vdCsxNDR8MCxudD1vdCsxMTJ8MCwoMHxhWyhXZT00KyhsfD0wKXwwKT4+Ml0pPD0wJiZQcigxMDExNDAsOTk5MDYsMzk5NCwxMDExNTQpLHA9Yz0wfGFbbD4+Ml0sbT0oZj1SZSkrNDh8MDtk''@;'; + put 'put ''b3thW2Y+PjJdPWFbcD4+Ml0sZj1mKzR8MCxwPXArNHwwfXdoaWxlKCgwfGYpPCgwfG0pKTtwPWMsbT0oZj1MZSkrNDh8MDtkb3thW2Y+PjJdPWFbcD4+Ml0sZj1mKzR8MCxwPXArNHwwfXdoaWxlKCgwfGYpPCgwfG0pKTtmb3IoeTcoSGUsTGUpLHc9SGUrOHwwLGI9VmUrOHwwLGs9SGUrMTZ8''@;'; + put 'put ''MCxNPVZlKzE2fDAsRD1IZSsyNHwwLFI9VmUrMjR8MCxHPVJlKzh8MCxLPVJlKzEyfDAscGU9UmUrMzJ8MCxnZT1SZSs0fDAsYmU9UmUrMTZ8MCxBPTA7ISgoMHxBKT49KDB8YVtXZT4+Ml0pKTspe2lmKCgwfEEpPjApe3A9Yz0oMHxhW2w+PjJdKSsoNDgqQXwwKXwwLG09KGY9UmUpKzQ4fDA7''@;'; + put 'put ''ZG97YVtmPj4yXT1hW3A+PjJdLGY9Zis0fDAscD1wKzR8MH13aGlsZSgoMHxmKTwoMHxtKSk7cD1jLG09KGY9TGUpKzQ4fDA7ZG97YVtmPj4yXT1hW3A+PjJdLGY9Zis0fDAscD1wKzR8MH13aGlsZSgoMHxmKTwoMHxtKSk7eTcoVmUsTGUpLF9bSGU+PjNdPStfWygrX1tIZT4+M108K19bVmU+''@;'; + put 'put ''PjNdP0hlOlZlKT4+M10sX1t3Pj4zXT0rX1soK19bdz4+M108K19bYj4+M10/SGU6VmUpKzg+PjNdLF9baz4+M109K19bKCtfW2s+PjNdPitfW00+PjNdP0hlOlZlKSsxNj4+M10sX1tEPj4zXT0rX1soK19bRD4+M10+K19bUj4+M10/SGU6VmUpKzI0Pj4zXX0wfChjPTB8YVtHPj4yXSkmJiht''@;'; + put 'put ''PTB8YVtSZT4+Ml0sYVtPZT4+Ml09YVtiZT4+Ml0sYVtPZSs0Pj4yXT1hW2JlKzQ+PjJdLGFbT2UrOD4+Ml09YVtiZSs4Pj4yXSxhW09lKzEyPj4yXT1hW2JlKzEyPj4yXSxhW0xlPj4yXT1hW20+PjJdLGFbTGUrND4+Ml09YVttKzQ+PjJdLGFbTGUrOD4+Ml09YVttKzg+PjJdLGFbTGUrMTI+''@;'; + put 'put ''PjJdPWFbbSsxMj4+Ml0sUEEocWUsT2UsTGUsMSksYVtWZT4+Ml09YVtxZT4+Ml0sYVtWZSs0Pj4yXT1hW3FlKzQ+PjJdLGFbVmUrOD4+Ml09YVtxZSs4Pj4yXSxhW1ZlKzEyPj4yXT1hW3FlKzEyPj4yXSxhW1ZlKzE2Pj4yXT1hW3FlKzE2Pj4yXSxhW1ZlKzIwPj4yXT1hW3FlKzIwPj4yXSxh''@;'; + put 'put ''W1ZlKzI0Pj4yXT1hW3FlKzI0Pj4yXSxhW1ZlKzI4Pj4yXT1hW3FlKzI4Pj4yXSxfW0hlPj4zXT0rX1soK19bSGU+PjNdPCtfW1ZlPj4zXT9IZTpWZSk+PjNdLF9bdz4+M109K19bKCtfW3c+PjNdPCtfW2I+PjNdP0hlOlZlKSs4Pj4zXSxfW2s+PjNdPStfWygrX1trPj4zXT4rX1tNPj4zXT9I''@;'; + put 'put ''ZTpWZSkrMTY+PjNdLF9bRD4+M109K19bKCtfW0Q+PjNdPitfW1I+PjNdP0hlOlZlKSsyND4+M10pLDB8KGM9MHxhW0s+PjJdKSYmKG09KDB8YVtSZT4+Ml0pKygoMHxhW2dlPj4yXSktMTw8NCl8MCxhW09lPj4yXT1hW3BlPj4yXSxhW09lKzQ+PjJdPWFbcGUrND4+Ml0sYVtPZSs4Pj4yXT1h''@;'; + put 'put ''W3BlKzg+PjJdLGFbT2UrMTI+PjJdPWFbcGUrMTI+PjJdLGFbTGU+PjJdPWFbbT4+Ml0sYVtMZSs0Pj4yXT1hW20rND4+Ml0sYVtMZSs4Pj4yXT1hW20rOD4+Ml0sYVtMZSsxMj4+Ml09YVttKzEyPj4yXSxQQShudCxPZSxMZSwxKSxhW1ZlPj4yXT1hW250Pj4yXSxhW1ZlKzQ+PjJdPWFbbnQr''@;'; + put 'put ''ND4+Ml0sYVtWZSs4Pj4yXT1hW250Kzg+PjJdLGFbVmUrMTI+PjJdPWFbbnQrMTI+PjJdLGFbVmUrMTY+PjJdPWFbbnQrMTY+PjJdLGFbVmUrMjA+PjJdPWFbbnQrMjA+PjJdLGFbVmUrMjQ+PjJdPWFbbnQrMjQ+PjJdLGFbVmUrMjg+PjJdPWFbbnQrMjg+PjJdLF9bSGU+PjNdPStfWygrX1tI''@;'; + put 'put ''ZT4+M108K19bVmU+PjNdP0hlOlZlKT4+M10sX1t3Pj4zXT0rX1soK19bdz4+M108K19bYj4+M10/SGU6VmUpKzg+PjNdLF9baz4+M109K19bKCtfW2s+PjNdPitfW00+PjNdP0hlOlZlKSsxNj4+M10sX1tEPj4zXT0rX1soK19bRD4+M10+K19bUj4+M10/SGU6VmUpKzI0Pj4zXSksQT1BKzF8''@;'; + put 'put ''MH1hWyhXZT1sKzh8MCk+PjJdPWFbSGU+PjJdLGFbV2UrND4+Ml09YVtIZSs0Pj4yXSxhW1dlKzg+PjJdPWFbSGUrOD4+Ml0sYVtXZSsxMj4+Ml09YVtIZSsxMj4+Ml0sYVtXZSsxNj4+Ml09YVtIZSsxNj4+Ml0sYVtXZSsyMD4+Ml09YVtIZSsyMD4+Ml0sYVtXZSsyND4+Ml09YVtIZSsyND4+''@;'; + put 'put ''Ml0sYVtXZSsyOD4+Ml09YVtIZSsyOD4+Ml0sbGU9b3R9KGwpfWZ1bmN0aW9uIHk3KGwsYyl7bHw9MDt2YXIgZixwLG0sQSx3LGIsayxNLEQsUj0wLEc9MCxLPTAscGU9MCxnZT0wLGJlPTA7Zm9yKEQ9bGUsbGU9bGUrNDh8MCx3PUQrMzJ8MCxiPUQsKDB8KGs9MHxhWzQrKGN8PTApPj4yXSkp''@;'; + put 'put ''PD0wJiZQcigxMDExNzAsOTk5MDYsMzk2OCwxMDExODIpLDEhPSgwfChrPj4+MCklMykmJlByKDEwMTE5Miw5OTkwNiwzOTY5LDEwMTE4MiksYVsoTT1iKzE2fDApPj4yXT1hWyhmPTB8YVtjPj4yXSk+PjJdLGFbTSs0Pj4yXT1hW2YrND4+Ml0sYVtNKzg+PjJdPWFbZis4Pj4yXSxhW00rMTI+''@;'; + put 'put ''PjJdPWFbZisxMj4+Ml0sYVtiPj4yXT1hW2Y+PjJdLGFbYis0Pj4yXT1hW2YrND4+Ml0sYVtiKzg+PjJdPWFbZis4Pj4yXSxhW2IrMTI+PjJdPWFbZisxMj4+Ml0scD13Kzh8MCxtPWIrOHwwLEE9YisyNHwwLGM9MTshKCgwfGMpPj0oMHxrKSk7KUc9K19bZisoYzw8NCkrOD4+M10sUj0rX1tm''@;'; + put 'put ''KygoYmU9YysxfDApPDw0KSs4Pj4zXSxfW3c+PjNdPXBlPS41KigrX1tmKyhiZTw8NCk+PjNdKyArX1tmKyhjPDw0KT4+M10pLF9bcD4+M109Rz0uNSooUitHKSxfW2I+PjNdPVI9K19bKCtfW2I+PjNdPHBlP2I6dyk+PjNdLF9bbT4+M109Z2U9K19bKCtfW20+PjNdPEc/Yjp3KSs4Pj4zXSxf''@;'; + put 'put ''W00+PjNdPXBlPStfWygrX1tNPj4zXT5wZT9NOncpPj4zXSxfW0E+PjNdPUc9K19bKCtfW0E+PjNdPkc/TTp3KSs4Pj4zXSxhW3c+PjJdPWFbKGJlPWYrKGMrMjw8NCl8MCk+PjJdLGFbdys0Pj4yXT1hW2JlKzQ+PjJdLGFbdys4Pj4yXT1hW2JlKzg+PjJdLGFbdysxMj4+Ml09YVtiZSsxMj4+''@;'; + put 'put ''Ml0sX1tiPj4zXT0rX1soUjwoSz0rX1t3Pj4zXSk/Yjp3KT4+M10sX1ttPj4zXT0rX1soZ2U8KFI9K19bcD4+M10pP2I6dykrOD4+M10sX1tNPj4zXT0rX1socGU+Sz9NOncpPj4zXSxfW0E+PjNdPStfWyhHPlI/TTp3KSs4Pj4zXSxjPWMrM3wwO2FbbD4+Ml09YVtiPj4yXSxhW2wrND4+Ml09''@;'; + put 'put ''YVtiKzQ+PjJdLGFbbCs4Pj4yXT1hW2IrOD4+Ml0sYVtsKzEyPj4yXT1hW2IrMTI+PjJdLGFbbCsxNj4+Ml09YVtiKzE2Pj4yXSxhW2wrMjA+PjJdPWFbYisyMD4+Ml0sYVtsKzI0Pj4yXT1hW2IrMjQ+PjJdLGFbbCsyOD4+Ml09YVtiKzI4Pj4yXSxsZT1EfWZ1bmN0aW9uIEdJKGwsYyxmKXt2''@;'; + put 'put ''YXIgTSxiLHA9MCxtPTAsQT0wLHc9MCxrPTAsRD0wLFI9MCxHPTAsSz0wLHBlPTAsZ2U9MCxiZT0wO2I9IShNPSEoKGdlPStfWyhsfD0wKT4+M10pPj0oYmU9K19bKGZ8PTApPj4zXSkpKSYmZ2U8PStfW2YrMTY+PjNdJiYobT0rX1tsKzg+PjNdKT49K19bZis4Pj4zXT9tPD0rX1tmKzI0Pj4z''@;'; + put 'put ''XTowLChtPStfWyhjfD0wKT4+M10pPj1iZSYmbTw9K19bZisxNj4+M10mJihBPStfW2MrOD4+M10pPj0rX1tmKzg+PjNdP2JeKHA9QTw9K19bZisyND4+M10pP3A9MDpiJnA/cD0xOkQ9MTE6Yj9wPTA6RD0xMTtlOmRve2lmKDExPT0oMHxEKSl7cGU9K19bbCs4Pj4zXTtkb3tpZihnZT09bSl7''@;'; + put 'put ''aWYoIShNfHBlPj0oYmU9K19bZis4Pj4zXSleK19bYys4Pj4zXT49YmVeMSkmJmdlPD0rX1tmKzE2Pj4zXSl7cD0wO2JyZWFrIGV9fWVsc2V7aWYocGU9PShrPStfW2MrOD4+M10pKXtpZighKGdlPj1iZV5tPj1iZSYmcGU+PStfW2YrOD4+M10pKWJyZWFrO2lmKHBlPD0rX1tmKzI0Pj4zXSl7''@;'; + put 'put ''cD0wO2JyZWFrIGV9YnJlYWt9aWYoSz0oay1wZSkvKG0tZ2UpLCEoIShiZT49KHc9KEQ9Z2U8bSk/Z2U6bSkpfCEoYmU8PShtPUQ/bTpnZSkpfCEoKEE9KGJlLWdlKSpLK3BlKT49KFI9K19bZis4Pj4zXSkpKSYmQTw9K19bZisyND4+M10pe3A9MDticmVhayBlfWlmKChBPSgoRz0rX1tmKzE2''@;'; + put 'put ''Pj4zXSktYmUpKksrQSk+PVImJiEoIShHPD1tKXwoRz49dz8hKEE8PStfW2YrMjQ+PjNdKToxKSkpe3A9MDticmVhayBlfWlmKHc9KEQ9cGU8ayk/cGU6ayxBPUQ/azpwZSwobT0oUi1wZSkvSytnZSk+PWJlJiYhKCEoUjw9QSl8IShSPj13KXwhKG08PUcpKSl7cD0wO2JyZWFrIGV9aWYoKGdl''@;'; + put 'put ''PSgocGU9K19bZisyND4+M10pLVIpL0srbSk+PWJlJiYhKCEocGU8PUEpfCEocGU+PXcpfCEoZ2U8PUcpKSl7cD0wO2JyZWFrIGV9fX13aGlsZSgwKTtwPS0xfX13aGlsZSgwKTtyZXR1cm4gMHxwfWZ1bmN0aW9uIFdJKGwpe3ZhciBjLGY7X1szMisobHw9MCk+PjNdPWY9K19bKGM9bCsxNnww''@;'; + put 'put ''KT4+M10sX1tsKzQ4Pj4zXT1mLF9bbCs0MD4+M109K19bbCsyND4+M10sX1tsKzU2Pj4zXT0rX1tsKzg+PjNdLF9bYz4+M109K19bbD4+M119ZnVuY3Rpb24gYVEobCxjLGYpe3ZhciBwLG0sQSx3O2x8PTAsY3w9MCwoMHxhWzQ3MTMxXSkhPSgwfChmfD0wKSkmJihkTCguMTU5MTU0OTQzMDkx''@;'; + put 'put ''ODk1MzUqKygwfGYpLDE4NjMyOCwxODYzMzYpLGFbNDcxMzFdPWYpLF9bbD4+M109KHA9K19bMjMyOTJdKSooQT0rX1tjPj4zXSktKHc9K19bMjMyOTFdKSoobT0rX1tjKzg+PjNdKSxfW2wrOD4+M109dypBK20qcH1mdW5jdGlvbiBZSShsLGMsZil7bHw9MCxmfD0wO3ZhciBtLEEsdyxrLHA9''@;'; + put 'put ''MCxiPTA7az1sZSxsZT1sZSsxNnwwLG09ayxwPStfWyhjfD0wKT4+M10sQT0rX1sodz1jKzh8MCk+PjNdO2U6ZG97c3dpdGNoKDB8Zil7Y2FzZSAwOmI9MTE7YnJlYWs7Y2FzZSA5MDpfW2M+PjNdPUEscD0tcCxiPTEwO2JyZWFrO2Nhc2UgMTgwOnA9LUEsYj0xMDticmVhaztjYXNlIDI3MDpf''@;'; + put 'put ''W2M+PjNdPUEsYj0xMDticmVhaztkZWZhdWx0OmlmKCgwfGYpPDApe2FbbT4+Ml09YVtjPj4yXSxhW20rND4+Ml09YVtjKzQ+PjJdLGFbbSs4Pj4yXT1hW2MrOD4+Ml0sYVttKzEyPj4yXT1hW2MrMTI+PjJdLFU2KGwsbSwwLWZ8MCk7YnJlYWsgZX1pZigoMHxmKT4zNjApe2FbbT4+Ml09YVtj''@;'; + put 'put ''Pj4yXSxhW20rND4+Ml09YVtjKzQ+PjJdLGFbbSs4Pj4yXT1hW2MrOD4+Ml0sYVttKzEyPj4yXT1hW2MrMTI+PjJdLFlJKGwsbSwoZj4+PjApJTM2MHwwKTticmVhayBlfWFbbT4+Ml09YVtjPj4yXSxhW20rND4+Ml09YVtjKzQ+PjJdLGFbbSs4Pj4yXT1hW2MrOD4+Ml0sYVttKzEyPj4yXT1h''@;'; + put 'put ''W2MrMTI+PjJdLGFRKGwsbSxmKTticmVhayBlfX13aGlsZSgwKTsxMD09KDB8YikmJihfW3c+PjNdPXAsYj0xMSksMTE9PSgwfGIpJiYoYVtsPj4yXT1hW2M+PjJdLGFbbCs0Pj4yXT1hW2MrND4+Ml0sYVtsKzg+PjJdPWFbYys4Pj4yXSxhW2wrMTI+PjJdPWFbYysxMj4+Ml0pLGxlPWt9ZnVu''@;'; + put 'put ''Y3Rpb24gVTYobCxjLGYpe2x8PTAsZnw9MDt2YXIgbSxBLHcsayxwPTAsYj0wO2s9bGUsbGU9bGUrMTZ8MCxtPWsscD0rX1soY3w9MCk+PjNdLEE9K19bKHc9Yys4fDApPj4zXTtlOmRve3N3aXRjaCgwfGYpe2Nhc2UgMDpiPTExO2JyZWFrO2Nhc2UgOTA6X1tjPj4zXT0tQSxiPTEwO2JyZWFr''@;'; + put 'put ''O2Nhc2UgMTgwOnA9LUEsYj0xMDticmVhaztjYXNlIDI3MDpfW2M+PjNdPUEsYj0xMDticmVhaztkZWZhdWx0OmlmKCgwfGYpPDApe2FbbT4+Ml09YVtjPj4yXSxhW20rND4+Ml09YVtjKzQ+PjJdLGFbbSs4Pj4yXT1hW2MrOD4+Ml0sYVttKzEyPj4yXT1hW2MrMTI+PjJdLFlJKGwsbSwwLWZ8''@;'; + put 'put ''MCk7YnJlYWsgZX1pZigoMHxmKT4zNjApe2FbbT4+Ml09YVtjPj4yXSxhW20rND4+Ml09YVtjKzQ+PjJdLGFbbSs4Pj4yXT1hW2MrOD4+Ml0sYVttKzEyPj4yXT1hW2MrMTI+PjJdLFU2KGwsbSwoZj4+PjApJTM2MHwwKTticmVhayBlfWFbbT4+Ml09YVtjPj4yXSxhW20rND4+Ml09YVtjKzQ+''@;'; + put 'put ''PjJdLGFbbSs4Pj4yXT1hW2MrOD4+Ml0sYVttKzEyPj4yXT1hW2MrMTI+PjJdLGFRKGwsbSwzNjAtZnwwKTticmVhayBlfX13aGlsZSgwKTsxMD09KDB8YikmJihfW3c+PjNdPXAsYj0xMSksMTE9PSgwfGIpJiYoYVtsPj4yXT1hW2M+PjJdLGFbbCs0Pj4yXT1hW2MrND4+Ml0sYVtsKzg+PjJd''@;'; + put 'put ''PWFbYys4Pj4yXSxhW2wrMTI+PjJdPWFbYysxMj4+Ml0pLGxlPWt9ZnVuY3Rpb24gR29lKGwsYyxmKXt2YXIgbSxBLHcscD0wO0E9KHA9K19bOCsoZnw9MCk+PjNdKSsgK19bKGN8PTApPj4zXSxtPSh3PStfW2Y+PjNdKSsgK19bYysyND4+M10scCs9K19bYysxNj4+M10sX1sobHw9MCk+PjNd''@;'; + put 'put ''PXcrICtfW2MrOD4+M10sX1tsKzg+PjNdPUEsX1tsKzE2Pj4zXT1tLF9bbCsyND4+M109cH1mdW5jdGlvbiBsUShsLGMsZil7dmFyIHAsbSx3LEE9MDtyZXR1cm4gQT0oK19bOCsoZnw9MCk+PjNdLSh3PStfWzgrKGx8PTApPj4zXSkpKihwPStfWyhjfD0wKT4+M10tKEE9K19bbD4+M10pKS0o''@;'; + put 'put ''K19bZj4+M10tQSkqKG09K19bYys4Pj4zXS13KSwrKChBKj1BKTwxZS0xMD8wOkEvKG0qbStwKnApKX1mdW5jdGlvbiBzUShsLGMsZil7dmFyIHAsbSxBO2Z8PTAsQT1sZSxsZT1sZSsxNnwwLG09QSs4fDAscD1BLDB8KGw9MHxMaShsfD0wLGN8PTApKSYmKGFbbT4+Ml09cCwoMHxpbChsLDEw''@;'; + put 'put ''MTIwOSxtKSk+MCkmJihfW2Y+PjNdPStfW3A+PjNdKSxsZT1BfWZ1bmN0aW9uIGNRKGwsYyxmKXtsfD0wLGN8PTAsZnw9MDt2YXIgdyxiLE0sRCxwPTAsbT0wLEE9MCxrPTA7RD1sZSxsZT1sZSs0OHwwLGs9RCszMnwwLEE9RCsxNnwwLGI9RCs4fDAsdz1ELGZlWyhNPUQrNDB8MCk+PjBdPTAs''@;'; + put 'put ''bD0wfExpKGwsYyk7ZG97aWYobCl7aWYoYVtBPj4yXT1iLGFbQSs0Pj4yXT13LGFbQSs4Pj4yXT1NLChBPSgwfGlsKGwsMTAxNzQ5LEEpKT4xKSYobT0rX1tiPj4zXSk+MCYocD0rX1t3Pj4zXSk+MCl7X1tmPj4zXT0rKDB8fn4oKG0qPTcyKSsobT49MD8uNTotLjUpKSksX1tmKzg+PjNdPSso''@;'; + put 'put ''MHx+figobT03MipwKSsobT49MD8uNTotLjUpKSksbD0zMz09KDB8ZmVbTT4+MF0pO2JyZWFrfWZlW00+PjBdPTAsYVtrPj4yXT1iLGFbays0Pj4yXT1NLChrPSgwfGlsKGwsMTAxNzU5LGspKT4wKSYocD0rX1tiPj4zXSk+MD8oX1tmPj4zXT1tPSsoMHx+figobT03MipwKSsobT49MD8uNTot''@;'; + put 'put ''LjUpKSksX1tmKzg+PjNdPW0sbD0zMz09KDB8ZmVbTT4+MF0pKTpsPTB9ZWxzZSBsPTB9d2hpbGUoMCk7cmV0dXJuIGxlPUQsMSZsfDB9ZnVuY3Rpb24gZmsobCl7dmFyIGM9MCxmPTAscD0wLG09MCxBPTA7Yz0wfExpKGx8PTAsMTA4MjI0KTtkb3tpZigwfGMmJjB8ZmVbYz4+MF0pe2ZlWyhm''@;'; + put 'put ''PTExMysoMHxhWzE2KygwfGFbbCs2MD4+Ml0pPj4yXSl8MCk+PjBdPTh8ZmVbZj4+MF0sYz0wfEo1KGwsYywoZj0wIT0oMHxPbyhjKSkpPzI6MCxtPStNbChsLDB8c2kobCwwLDEwMTQyOCwwKSwxNCwxKSxBPTB8QmEobCwwfHNpKGwsMCwxMDE0MzcsMCksMTA3OTk0KSwwfEJhKGwsMHxzaShs''@;'; + put 'put ''LDAsMTAxNDQ2LDApLDEzNzMxNCkpLGFbMTIrKDB8YVsoQT1sKzE2fDApPj4yXSk+PjJdPWMsZj0wIT0oMHwoYz0wfExpKGwsMTA1NjI4KSkpO2Rve2lmKCgwfGRpKGwpKT09KDB8bCkpe2lmKGYmJjExNj09KDB8ZmVbYz4+MF0pKXtjPTE7YnJlYWt9Yz0wfWVsc2V7aWYoZiYmOTg9PSgwfGZl''@;'; + put 'put ''W2M+PjBdKSl7Yz0wO2JyZWFrfWM9MX19d2hpbGUoMCk7Zj0wfExpKGwsMTAxNzI2KTtlOmRve2lmKGYpc3dpdGNoKDB8ZmVbZj4+MF0pe2Nhc2UgMTA4OmN8PTI7YnJlYWsgZTtjYXNlIDExNDpjfD00O2JyZWFrIGU7ZGVmYXVsdDpicmVhayBlfX13aGlsZSgwKTtpZihmZVsyNzUrKDB8YVtB''@;'; + put 'put ''Pj4yXSk+PjBdPWMsKDB8ZGkobCkpIT0oMHxsKSl7aWYocD0rX1syNCsoYz0wfGFbMTIrKDB8YVtBPj4yXSk+PjJdKT4+M10rMTYsbT0rX1tjKzMyPj4zXSs4LGw9MD09KDEmYVsxMTYrKDB8YVsxNisoMHxkaShsKSk+PjJdKT4+Ml18MCksZj1mZVsyNzUrKGM9MHxhW0E+PjJdKT4+MF08PDEm''@;'; + put 'put ''MixsKXtfW2MrNDgrKChsPTI1NSZmKTw8NCk+PjNdPXAsX1tjKzQ4KyhsPDw0KSs4Pj4zXT1tO2JyZWFrfV9bYys0OCsoKGw9MjU1JigzXmYpKTw8NCk+PjNdPW0sX1tjKzQ4KyhsPDw0KSs4Pj4zXT1wO2JyZWFrfX19d2hpbGUoMCl9ZnVuY3Rpb24gdzcobCxjKXtsfD0wO3ZhciBNLGY9MCxw''@;'; + put 'put ''PTAsbT0wLEE9MCx3PTAsYj0wLGs9MDtpZihwPTB8YVsoY3w9MCk+PjJdLGFbKE09YysyNHwwKT4+Ml09MCxhW00rND4+Ml09MCxhW00rOD4+Ml09MCxhW00rMTI+PjJdPTAsMHxmZVtwPj4wXSl7dz0wfFFuKDErKDB8VW8ocCkpfDApLGZlW3c+PjBdPTAsYj1jKzEyfDAsZj13O2U6Zm9yKDs7''@;'; + put 'put ''KXt0OmZvcig7Oyl7aWYoQT1wKzF8MCwhKChtPTB8ZmVbcD4+MF0pPDwyND4+MjQpKWJyZWFrIGU7aWYoIShtPDwyND4+MjQ9PS0xfCgyNTUmbSk8MTYxfDIhPSgwfGFbYj4+Ml0pKSl7aWYoZmVbZj4+MF09bSxtPWYrMnwwLGZlW2YrMT4+MF09QT0wfGZlW0E+PjBdLEE8PDI0Pj4yNCl7Zj1t''@;'; + put 'put ''LHA9cCsyfDA7Y29udGludWV9Zj1tO2JyZWFrIGV9c3dpdGNoKG08PDI0Pj4yNCl7Y2FzZSA5MjpicmVhayB0O2Nhc2UgMTA6az0xMjticmVhayB0fWZlW2Y+PjBdPW0sZj1mKzF8MCxwPUF9aWYoMTIhPSgwfGspKXtzd2l0Y2goKG09MHxmZVtBPj4wXSk8PDI0Pj4yNHwwKXtjYXNlIDExNDpj''@;'; + put 'put ''YXNlIDEwODpjYXNlIDExMDptPWYrMXwwLGZlW2Y+PjBdPTAsVUkobCxjLHcsMHxmZVtBPj4wXSksZj1tO2JyZWFrO2RlZmF1bHQ6ZmVbZj4+MF09bSxmPWYrMXwwLG09d313PW0scD0wPT0oMHxmZVtBPj4wXSk/QTpwKzJ8MH1lbHNlIGs9MCxwPWYrMXwwLGZlW2Y+PjBdPTAsVUkobCxjLHcs''@;'; + put 'put ''MTEwKSxmPXAsdz1wLHA9QX0oMHx3KSE9KDB8ZikmJihmZVtmPj4wXT0wLFVJKGwsYyx3LDExMCkpLGFbKGM9Yys0MHwwKT4+Ml09YVtNPj4yXSxhW2MrND4+Ml09YVtNKzQ+PjJdLGFbYys4Pj4yXT1hW00rOD4+Ml0sYVtjKzEyPj4yXT1hW00rMTI+PjJdfX1mdW5jdGlvbiBVSShsLGMsZixw''@;'; + put 'put ''KXtsfD0wLGZ8PTAscHw9MDt2YXIgTSxELFIsSyxrLG09MCxBPTAsdz0wLGI9MCxHPTA7Sz1sZSxsZT1sZSszMnwwLFI9SysxNnwwLEQ9Syx3PTB8aXRbKEc9NzYrKGN8PTApfDApPj4xXSxrPShiPTB8YVsoTT1jKzcyfDApPj4yXSk/MHx6SChiLHcrMnwwLDU2LHcrMXwwKTowfHZyKDExMiso''@;'; + put 'put ''NTYqd3wwKXwwKSxhW00+PjJdPWssYVsoYj1rKyg1Nioodz0wfGl0W0c+PjFdKXwwKXwwKT4+Ml09ZixmZVtrKyg1Nip3fDApKzQ4Pj4wXT1wLDAhPSgwfGYpJiYwIT0oMHxmZVtmPj4wXSk/KGFbNDY1OTRdPWFbYys0Pj4yXSxfWzIzMjk5XT0rX1tjKzE2Pj4zXSxhW2srKDU2Knd8MCkrND4+''@;'; + put 'put ''Ml09MHxtaVs2MyZhWyhwPTB8YVtsKzE0ND4+Ml0pPj4yXV0ocCwxODYzNzYsMSksb0QoRCxsLGIpLF9bUj4+M109QT0rX1tEPj4zXSxtPStfW0QrOD4+M10pOihfW1I+PjNdPTAsX1trKyg1Nip3fDApKzQwPj4zXT1tPSsoMHx+figxLjIqK19bYysxNj4+M10pKSxBPTApLGl0W0c+PjFdPTEr''@;'; + put 'put ''KDB8aXRbRz4+MV0pPDwxNj4+MTYsX1soRz1jKzI0fDApPj4zXT0rX1soK19bRz4+M10+QT9HOlIpPj4zXSxfWyhHPWMrMzJ8MCk+PjNdPStfW0c+PjNdK20sbGU9S31mdW5jdGlvbiBKNShsLGMsZixwLG0sQSl7bHw9MCxjfD0wLGZ8PTAscD0rcCxtfD0wLEF8PTA7dmFyIHcsRyxwZSxnZSxi''@;'; + put 'put ''PTAsaz0wLE09MCxEPTAsUj0wLEs9MDtzd2l0Y2goZ2U9bGUsbGU9bGUrMzJ8MCxHPWdlKzE2fDAsUj1nZSs4fDAsRD1nZSxwZT0wfHZyKDg4KSwwfGtpKGwpKXtjYXNlIDA6Yj0wLEs9MHxhW2wrNjA+PjJdLGs9bCxNPTA7YnJlYWs7Y2FzZSAxOmI9MCxLPTB8ZGkoMHxjcihsKSksaz0wLE09''@;'; + put 'put ''bDticmVhaztjYXNlIDI6Yj1sLEs9MHxkaSgwfGNyKDB8YVsoMj09KDMmYVtsPj4yXXwwKT9sOmwrLTQ4fDApKzQwPj4yXSkpLGs9MCxNPTA7YnJlYWs7ZGVmYXVsdDpiPTAsSz0wLGs9MCxNPTB9YVtwZSs0Pj4yXT1tLGFbcGUrOD4+Ml09QSxfW3BlKzE2Pj4zXT1wLGFbKEE9cGUrMTJ8MCk+''@;'; + put 'put ''PjJdPVh0WzExNSsoMHxhWyh3PUsrMTZ8MCk+PjJdKT4+MF07ZTpkb3tpZig0JmYpYVtwZT4+Ml09MHxyYShjKSwyJmZ8MCYmKGZlW3BlKzgyPj4wXT0xKTtlbHNlIHN3aXRjaCgwfGYpe2Nhc2UgMjppZihhW3BlPj4yXT0wfHJhKGMpLGZlW3BlKzgyPj4wXT0xLCEoMHx2NihsLHBlKSkpYnJl''@;'; + put 'put ''YWsgZTtzd2l0Y2goMHxraShsKSl7Y2FzZSAwOmFbRD4+Ml09MHx0aShrKSwkcigzLDEwMTk4MyxEKTticmVhayBlO2Nhc2UgMTphW1I+PjJdPTB8dGkoTSksJHIoMywxMDIwMDUsUik7YnJlYWsgZTtjYXNlIDI6RD0wfHRpKDB8YVsoMz09KDMmYVtiPj4yXXwwKT9iOmIrNDh8MCkrNDA+PjJd''@;'; + put 'put ''KSxSPTAhPSgwfFNjKEspKSxLPTB8dGkoMHxhWygyPT0oMyZhW2I+PjJdfDApP2I6YistNDh8MCkrNDA+PjJdKSxhW0c+PjJdPUQsYVtHKzQ+PjJdPVI/MTM3NzM4OjE0MTc0NyxhW0crOD4+Ml09SywkcigzLDEwMjAyNixHKTticmVhayBlO2RlZmF1bHQ6YnJlYWsgZX1jYXNlIDA6bT0wfGZR''@;'; + put 'put ''KGMsbCwwKSxhW3BlPj4yXT1tLG09MT09KDB8YVtBPj4yXSk/MHx5ayhtKTowfE9OKG0sSyksRnQoMHxhW3BlPj4yXSksYVtwZT4+Ml09bSx3NygwfGFbMTQ0KygwfGFbdz4+Ml0pPj4yXSxwZSk7YnJlYWsgZTtkZWZhdWx0OlByKDEwMjA1MywxMDIwNjksMTY2LDEwMjA3OCl9fXdoaWxlKDAp''@;'; + put 'put ''O3JldHVybiBsZT1nZSwwfHBlfWZ1bmN0aW9uIGZRKGwsYyxmKXtsfD0wLGZ8PTA7dmFyIHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxLPTAscGU9MCxnZT0wLGJlPTAsT2U9MCxMZT0wLFJlPTAsSGU9MCxWZT0wLHFlPTA7c3dpdGNoKDB8a2koY3w9MCkpe2Nhc2Ug''@;'; + put 'put ''MDptPTB8VW8odz0wfHRpKGMpKSwocD0wfGFbMTIrKDB8YVtjKzE2Pj4yXSk+PjJdKT8ocD0wfGFbcD4+Ml0sbD8oUmU9MCxPZT0yLExlPTIsYmU9MixBPTIscWU9MTAyMTAxLEQ9MTAyMDk4LGI9MTA1NDkzLEc9MTk1MDU5LHBlPTE5NTA1OSxLPTAsZ2U9MCxSPTB8VW8ocCksSGU9cCxWZT0x''@;'; + put 'put ''MDIwOTUpOihSZT0wLE9lPTIsTGU9MixiZT0yLEE9MixxZT0xMDIxMDEsRD0xMDIwOTgsYj0xMDU0OTMsRz0xOTUwNTkscGU9MTk1MDU5LEs9MCxnZT0wLFI9MixIZT1wLFZlPTEwMjA5NSkpOihSZT0wLE9lPTIsTGU9MixiZT0yLEE9MixxZT0xMDIxMDEsRD0xMDIwOTgsYj0xMDU0OTMsRz0x''@;'; + put 'put ''OTUwNTkscGU9MTk1MDU5LEs9MCxnZT0wLFI9MixIZT0xMDIwODksVmU9MTAyMDk1KTticmVhaztjYXNlIDE6bT0wfFVvKHc9MHx0aSgwfGNyKGMpKSksQT0wfFVvKGI9MHx0aShjKSksKHA9MHxhWzEwNCsoMHxhW2MrMTY+PjJdKT4+Ml0pPyhwPTB8YVtwPj4yXSxsPyhSZT0wLE9lPTIsTGU9''@;'; + put 'put ''MixiZT0yLHFlPTEwMjEwMSxEPTEwMjA5OCxHPTE5NTA1OSxwZT0xOTUwNTksSz0wLGdlPTAsUj0wfFVvKHApLEhlPXAsVmU9MTAyMDk1KTooUmU9MCxPZT0yLExlPTIsYmU9MixxZT0xMDIxMDEsRD0xMDIwOTgsRz0xOTUwNTkscGU9MTk1MDU5LEs9MCxnZT0wLFI9MixIZT1wLFZlPTEwMjA5''@;'; + put 'put ''NSkpOihSZT0wLE9lPTIsTGU9MixiZT0yLHFlPTEwMjEwMSxEPTEwMjA5OCxHPTE5NTA1OSxwZT0xOTUwNTksSz0wLGdlPTAsUj0yLEhlPTEwMjA4OSxWZT0xMDIwOTUpO2JyZWFrO2Nhc2UgMjpBPWMrNDh8MCxtPTB8VW8odz0wfHRpKDB8ZGkoMHxjcigwfGFbKDM9PSgzJmFbYz4+Ml18MCk/''@;'; + put 'put ''YzpBKSs0MD4+Ml0pKSkpLGs9MHxVbyhNPTB8dGkoMHxhWygzPT0oMyZhW2M+PjJdfDApP2M6QSkrNDA+PjJdKSksZ2U9KHBlPTB8YVs1MisoMHxhWyhwPWMrMTZ8MCk+PjJdKT4+Ml0pPzB8VW8ocGUpOjAsRD0wfHRpKDB8YVsoMj09KDMmYVtjPj4yXXwwKT9jOmMrLTQ4fDApKzQwPj4yXSks''@;'; + put 'put ''Sz0oRz0wfGFbOTIrKHA9MHxhW3A+PjJdKT4+Ml0pPzB8VW8oRyk6MCxiPTB8VW8oRCksKHA9MHxhW3ArOTY+PjJdKT8ocD0wfGFbcD4+Ml0sUj1sPzB8VW8ocCk6Mik6KFI9MixwPTEwMjA4OSksVmU9MD09KDB8U2MoMHxkaSgwfGNyKDB8YVsoMz09KDMmYVtjPj4yXXwwKT9jOkEpKzQwPj4y''@;'; + put 'put ''XSkpKSksUmU9MSxPZT1rLExlPWIsYmU9aysyKygwfGdlP2dlKzF8MDowKStiKygwfEs/SysxfDA6MCl8MCxBPTIscWU9TSxiPTEwNTQ5MyxIZT1wLFZlPVZlPzE0MTc0NzoxMzc3Mzg7YnJlYWs7ZGVmYXVsdDpSZT0wLE9lPTIsTGU9MixiZT0yLEE9MixtPTIscWU9MTAyMTAxLEQ9MTAyMDk4''@;'; + put 'put ''LGI9MTA1NDkzLHc9MTAyMDkyLEc9MTk1MDU5LHBlPTE5NTA1OSxLPTAsZ2U9MCxSPTIsSGU9MTAyMDg5LFZlPTEwMjA5NX1mPTA9PSgwfGYpLE09MCxwPWw7ZTpmb3IoOzspe2M9cCsxfDA7dDpkb3tzd2l0Y2goMHxmZVtwPj4wXSl7Y2FzZSAwOmJyZWFrIGU7Y2FzZSA5Mjpzd2l0Y2gocD1w''@;'; + put 'put ''KzJ8MCwwfGZlW2M+PjBdKXtjYXNlIDc4Oms9QTticmVhayB0O2Nhc2UgNzE6az1tO2JyZWFrIHQ7Y2FzZSA2OTprPWJlO2JyZWFrIHQ7Y2FzZSA3MjprPUxlO2JyZWFrIHQ7Y2FzZSA4NDprPU9lO2JyZWFrIHQ7Y2FzZSA3NjprPVI7YnJlYWsgdDtjYXNlIDkyOmlmKCFmKXtrPTE7YnJlYWsg''@;'; + put 'put ''dH19az0yO2JyZWFrO2RlZmF1bHQ6az0xLHA9Y319d2hpbGUoMCk7TT1NK2t8MH1iZT0wfFFuKE0rMXwwKSxSPTA9PSgwfFJlKSxNPTA9PSgwfGdlKSxjPTA9PSgwfEspLHA9YmUsbT1sO2U6Zm9yKDs7KXtzd2l0Y2goaz1tKzF8MCwoQT0wfGZlW20+PjBdKTw8MjQ+PjI0KXtjYXNlIDA6YnJl''@;'; + put 'put ''YWsgZTtjYXNlIDkyOmJyZWFrO2RlZmF1bHQ6ZmVbcD4+MF09QSxwPXArMXwwLG09aztjb250aW51ZSBlfXN3aXRjaChBPW0rMnwwLChtPTB8ZmVbaz4+MF0pPDwyND4+MjR8MCl7Y2FzZSA3MTpmb3IobT13Ozspe2lmKGZlW3A+PjBdPWw9MHxmZVttPj4wXSwhKGw8PDI0Pj4yNCkpe209QTtj''@;'; + put 'put ''b250aW51ZSBlfW09bSsxfDAscD1wKzF8MH1jYXNlIDc4OmZvcihtPWI7Oyl7aWYoZmVbcD4+MF09bD0wfGZlW20+PjBdLCEobDw8MjQ+PjI0KSl7bT1BO2NvbnRpbnVlIGV9bT1tKzF8MCxwPXArMXwwfWNhc2UgNjk6aWYoUil7bT1BO2NvbnRpbnVlIGV9Zm9yKG09cWU7ZmVbcD4+MF09bD0w''@;'; + put 'put ''fGZlW20+PjBdLGw8PDI0Pj4yNDspbT1tKzF8MCxwPXArMXwwO2lmKE0pbT1WZTtlbHNlIGZvcihmZVtwPj4wXT01OCxtPXBlOzspe2lmKGZlWyhwPXArMXwwKT4+MF09bD0wfGZlW20+PjBdLCEobDw8MjQ+PjI0KSl7bT1WZTticmVha31tPW0rMXwwfWZvcig7Oyl7aWYoZmVbcD4+MF09bD0w''@;'; + put 'put ''fGZlW20+PjBdLCEobDw8MjQ+PjI0KSl7bT1EO2JyZWFrfW09bSsxfDAscD1wKzF8MH1mb3IoO2ZlW3A+PjBdPWw9MHxmZVttPj4wXSxsPDwyND4+MjQ7KW09bSsxfDAscD1wKzF8MDtpZihjKXttPUE7Y29udGludWUgZX1mb3IoZmVbcD4+MF09NTgsbT1HOzspe2lmKGZlWyhwPXArMXwwKT4+''@;'; + put 'put ''MF09bD0wfGZlW20+PjBdLCEobDw8MjQ+PjI0KSl7bT1BO2NvbnRpbnVlIGV9bT1tKzF8MH1jYXNlIDg0OmZvcihtPXFlOzspe2lmKGZlW3A+PjBdPWw9MHxmZVttPj4wXSwhKGw8PDI0Pj4yNCkpe209QTtjb250aW51ZSBlfW09bSsxfDAscD1wKzF8MH1jYXNlIDcyOmZvcihtPUQ7Oyl7aWYo''@;'; + put 'put ''ZmVbcD4+MF09bD0wfGZlW20+PjBdLCEobDw8MjQ+PjI0KSl7bT1BO2NvbnRpbnVlIGV9cD1wKzF8MCxtPW0rMXwwfWNhc2UgNzY6Zm9yKG09SGU7Oyl7aWYoZmVbcD4+MF09bD0wfGZlW20+PjBdLCEobDw8MjQ+PjI0KSl7bT1BO2NvbnRpbnVlIGV9cD1wKzF8MCxtPW0rMXwwfWNhc2UgOTI6''@;'; + put 'put ''aWYoIWYpe2ZlW3A+PjBdPTkyLHA9cCsxfDAsbT1BO2NvbnRpbnVlIGV9fWZlW3A+PjBdPTkyLGZlW3ArMT4+MF09bSxwPXArMnwwLG09QX1yZXR1cm4gZmVbcD4+MF09MCwwfGJlfWZ1bmN0aW9uIHZ5KGwsYyl7Y3w9MDt2YXIgZj0wLHA9MCxtPTAsQT0wO2lmKDB8KGx8PTApKXtmb3IoZj1s''@;'; + put 'put ''LHA9MDshKCgwfHApPj0oMHxjKSk7KXB8fEZ0KDB8YVtmPj4yXSksMHwoQT0wfGFbZis4Pj4yXSkmJjB8KG09MHxhW2YrMTI+PjJdKSYmQ29bMTI3Jm1dKEEpLGY9Zis1NnwwLHA9cCsxfDA7RnQobCl9fWZ1bmN0aW9uIEljKGwpe3ZhciBjPTA7MHwobHw9MCkmJihGdCgwfGFbbD4+Ml0pLGM9''@;'; + put 'put ''bCs3MnwwLDB8ZmVbbCs4Mj4+MF0/MHwoYz0wfGFbYz4+Ml0pJiZBbShjLDEpOnZ5KDB8YVtjPj4yXSwwfGl0W2wrNzY+PjFdKSxGdChsKSl9ZnVuY3Rpb24gYjcobCxjLGYpe2Z8PTA7dmFyIFIsRyxLLHBlLGdlLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTA7aWYoZ2U9bGUsbGU9''@;'; + put 'put ''bGUrMzJ8MCxSPWdlKzE2fDAsRz1nZSxwZT0wfGFbKEs9MTIrKHc9MHxhWzE2KyhsfD0wKT4+Ml0pfDApPj4yXSxhW0s+PjJdPWN8PTAsMHxmZVtmKzgyPj4wXSkoZnVuY3Rpb24gbUUobCxjLGYpe2N8PTAsZnw9MDt2YXIgQSxiLGssTSxwPTAsbT0wLHc9MDtzd2l0Y2goTT1sZSxsZT1sZSs4''@;'; + put 'put ''MHwwLGs9TSxmdW5jdGlvbiBlRyhsKXt2YXIgYyxmLHA9MDtzd2l0Y2goYz0wfHhmKGx8PTApLGFbYys0Pj4yXT1sPTB8YVs0KyhmPTB8YVtjPj4yXSk+PjJdLGFbYysxMj4+Ml09YVtmKzEyPj4yXSwwfGwpe2Nhc2UgMjpjYXNlIDA6Y2FzZSAxOmNhc2UgMzpsPWYrOHwwLHA9Nn02PT0oMHxw''@;'; + put 'put ''KSYmKGFbYys4Pj4yXT1hW2w+PjJdKSxhW2MrMjA4Pj4yXT1hW2YrMjA4Pj4yXSxhW2MrMjI4Pj4yXT1hW2YrMjI4Pj4yXSxhW2MrMjQ0Pj4yXT1hW2YrMjQ0Pj4yXSxpdFsocD1jKzI2MHwwKT4+MV09LTImaXRbcD4+MV18MSZpdFtmKzI2MD4+MV19KGx8PTApLGI9K19bZis1Nj4+M10sbT0r''@;'; + put 'put ''X1tmKzY0Pj4zXSwwfGZlW2YrODA+PjBdKXtjYXNlIDExNjptPS41KigrX1tmKzQ4Pj4zXS0rdkUoYykpK20scD00O2JyZWFrO2Nhc2UgOTg6bS09LjUqKCtfW2YrNDg+PjNdLSt2RShjKSkscD00fTQ9PSgwfHApJiYobSs9LTEpLF9baz4+M109YixfW2srOD4+M109bSxhW2srMjA+PjJdPWFb''@;'; + put 'put ''Zis4Pj4yXSxhW2srMTY+PjJdPWFbZis0Pj4yXSxfW2srMzI+PjNdPStfW2YrMTY+PjNdLHA9MHxMaSgwfGFbOCsoMHxhWyh3PWwrMTZ8MCk+PjJdKT4+Ml0sMTM3Mjk3KSxhWyhmPWsrNTZ8MCk+PjJdPXAsYVsoQT1rKzYwfDApPj4yXT1hWzIxMisoMHxhW3c+PjJdKT4+Ml0sZmVbKHc9ays2''@;'; + put 'put ''NHwwKT4+MF09MCwwIT0oMHxwKSYmMCE9KDB8ZmVbcD4+MF0pfHwoYVtmPj4yXT0xMzczMDgpLDE9PSgwfGZlW2MrND4+MF0pPyhmPTB8YVtjPj4yXSxkMihsLDB8YVszMzYrKDB8YVtsPj4yXSk+PjJdKSxtYShsLChwPTB8YVtmKzI0Pj4yXSl8fDEzNzMxNCksQUUobCxmLGspLDB8ZmVbdz4+''@;'; + put 'put ''MF0mJkZ0KDB8YVtBPj4yXSkpOk1kKGwsMHxhW2M+PjJdLGspLGZ1bmN0aW9uIHA2KGwpe3ZhciBjO2FbMjA4KyhjPTB8YVsxNisobHw9MCk+PjJdKT4+Ml09MCxhW2MrMjI4Pj4yXT0wLGFbYysyNDQ+PjJdPTAsYVtjKzIxMj4+Ml09MCxPQyhsKX0obCksbGU9TX0pKGwsMHxhW2YrNzI+PjJd''@;'; + put 'put ''LGYpLG09MTg7ZWxzZSBpZigoMHxpdFsoRD1mKzc2fDApPj4xXSk+PTEpe3N3aXRjaChXOChsLDApLG1hKGwsMHxhW2YrOD4+Ml0pLDB8ZmVbZis4MD4+MF0pe2Nhc2UgMTE2OnA9LjUqK19bZis0OD4+M10rKEE9K19bZis2ND4+M10pO2JyZWFrO2Nhc2UgOTg6cD0tLjUqK19bZis0OD4+M10r''@;'; + put 'put ''KEE9K19bZis2ND4+M10pKyArX1tmKzMyPj4zXTticmVhaztkZWZhdWx0OnA9LjUqK19bZiszMj4+M10rKEE9K19bZis2ND4+M10pfWZvcihfWyhNPUcrOHwwKT4+M109cC09K19bZisxNj4+M10sNTEyJml0W3crMjYwPj4xXSYmKF9bTT4+M109cC1BKSxiPWYrNzJ8MCxrPWYrNTZ8MCxtPWYr''@;'; + put 'put ''NDB8MCxjPTA7ISgoMHxjKT49KDB8aXRbRD4+MV0pKTspe3N3aXRjaCgwfGZlWyh3PTB8YVtiPj4yXSkrKDU2KmN8MCkrNDg+PjBdKXtjYXNlIDEwODpwPStfW2s+PjNdLS41KitfW20+PjNdO2JyZWFrO2Nhc2UgMTE0OnA9LjUqK19bbT4+M10rICtfW2s+PjNdO2JyZWFrO2RlZmF1bHQ6cD0r''@;'; + put 'put ''X1trPj4zXX1fW0c+PjNdPXAsYVtSPj4yXT1hW0c+PjJdLGFbUis0Pj4yXT1hW0crND4+Ml0sYVtSKzg+PjJdPWFbRys4Pj4yXSxhW1IrMTI+PjJdPWFbRysxMj4+Ml0saG0obCxSLHcrKDU2KmN8MCl8MCksX1tNPj4zXT0rX1tNPj4zXS0rX1soMHxhW2I+PjJdKSsoNTYqY3wwKSs0MD4+M10s''@;'; + put 'put ''Yz1jKzF8MH1PNChsKSxtPTE4fTE4PT0oMHxtKSYmKGFbSz4+Ml09cGUpLGxlPWdlfWZ1bmN0aW9uIG0yKGwsYyl7cmV0dXJuIDB8ZlEobHw9MCxjfD0wLDEpfWZ1bmN0aW9uIE0xKGwpe3JldHVybiAwfFpIKGx8PTAsMCl9ZnVuY3Rpb24gWkgobCxjKXtsfD0wLGN8PTA7dmFyIGIsZj0wLHA9''@;'; + put 'put ''MCxtPTAsQT0wLHc9MCxrPTA7Zm9yKChmPTB8YVs0NzIwN10pfHwoYVs0NzIwOF09NjQsZj0wfFFuKDY0KSxhWzQ3MjA3XT1mKSxiPWM8PDI0Pj4yND09MCx3PTAscD0wLEE9bDtBJiYoYz0wfGZlW0E+PjBdKTw8MjQ+PjI0Oyl7KDB8dyk+KChsPTB8YVs0NzIwOF0pLTh8MCkmJihhWzQ3MjA4''@;'; + put 'put ''XT1mPWw8PDEsZj0wfFYwKDB8YVs0NzIwN10sZiksYVs0NzIwN109ZixmPWYrd3wwLGM9MHxmZVtBPj4wXSk7ZTpkb3tzd2l0Y2goYzw8MjQ+PjI0KXtjYXNlIDM4OmImJjAhPSgwfGhRKEEpKT9rPTE4OihwPTUsYz0xMDIxMzApO2JyZWFrO2Nhc2UgNjA6cD00LGM9MTAyMTUzO2JyZWFrO2Nh''@;'; + put 'put ''c2UgNjI6cD00LGM9MTAyMTM2O2JyZWFrO2Nhc2UgNDU6cD01LGM9MTAyMTQ3O2JyZWFrO2RlZmF1bHQ6aWYoMCE9KDB8cCkmYzw8MjQ+PjI0PT0zMil7aWYoMzI9PSgwfGZlW3A+PjBdKSl7cD02LGM9MTAyMTIzO2JyZWFrIGV9az0xODticmVhayBlfXN3aXRjaChjPDwyND4+MjQpe2Nhc2Ug''@;'; + put 'put ''MzQ6cD02LGM9MTAyMTE2O2JyZWFrIGU7Y2FzZSAzOTpwPTUsYz0xMDIxNDE7YnJlYWsgZTtjYXNlIDEwOmlmKGIpe2s9MTg7YnJlYWsgZX1wPTUsYz0xMDIxMTA7YnJlYWsgZTtkZWZhdWx0Oms9MTg7YnJlYWsgZX19fXdoaWxlKDApO2ZvcigxOD09KDB8aykmJihrPTAscD0oYz1ifGM8PDI0''@;'; + put 'put ''Pj4yNCE9MTMpPzE6NSxjPWM/QToxMDIxMDQpLG09ZitwfDAsbD1wO2w7KWZlW2Y+PjBdPTB8ZmVbYz4+MF0sbD1sKy0xfDAsYz1jKzF8MCxmPWYrMXwwO2w9QSx3PXArd3wwLGY9bSxBPUErMXwwLHA9bH1yZXR1cm4gZmVbZj4+MF09MCwwfGFbNDcyMDddfWZ1bmN0aW9uIGhRKGwpe3ZhciBj''@;'; + put 'put ''PTAsZj0wO2M9MHxmZVsoZj0xKyhsfD0wKXwwKT4+MF07ZTpkb3tpZihjPDwyND4+MjQ9PTM1KXtzd2l0Y2goKGM9MHxmZVsoZj1sKzJ8MCk+PjBdKTw8MjQ+PjI0KXtjYXNlIDg4OmNhc2UgMTIwOmJyZWFrO2RlZmF1bHQ6Zm9yKGw9Zjs7KXtpZihmPWwrMXwwLChjKy00OCYyNTUpPj0xMCli''@;'; + put 'put ''cmVhayBlO2w9ZixjPTB8ZmVbZj4+MF19fWZvcihmPWwrM3wwOzspe2lmKCgoYz0wfGZlW2Y+PjBdKS00OCYyNTUpPj0xMClzd2l0Y2goYzw8MjQ+PjI0KXtjYXNlIDY1OmNhc2UgNjY6Y2FzZSA2NzpjYXNlIDY4OmNhc2UgNjk6Y2FzZSA3MDpjYXNlIDk3OmNhc2UgOTg6Y2FzZSA5OTpjYXNl''@;'; + put 'put ''IDEwMDpjYXNlIDEwMTpjYXNlIDEwMjpicmVhaztkZWZhdWx0OmJyZWFrIGV9Zj1mKzF8MH19ZWxzZSBmb3IoOzspe2lmKGw9ZisxfDAsKCgtMzMmYyktNjUmMjU1KT49MjYpYnJlYWsgZTtmPWwsYz0wfGZlW2w+PjBdfX13aGlsZSgwKTtyZXR1cm4gYzw8MjQ+PjI0PT01OXwwfWZ1bmN0aW9u''@;'; + put 'put ''IGRRKGwpe2x8PTA7dmFyIGM9MCxmPTAscD0wLG09MCxBPTAsdz0wLGI9MDtmb3IoKGM9MHxhWzQ3MjA5XSl8fChhWzQ3MjEwXT02NCxjPTB8UW4oNjQpLGFbNDcyMDldPWMpLHc9MDtsJiYoZj0wfGZlW2w+PjBdKTw8MjQ+PjI0Oyl7c3dpdGNoKCgwfHcpPigocD0wfGFbNDcyMTBdKS04fDAp''@;'; + put 'put ''JiYoYVs0NzIxMF09Yz1wPDwxLGM9MHxWMCgwfGFbNDcyMDldLGMpLGFbNDcyMDldPWMsYz1jK3d8MCxmPTB8ZmVbbD4+MF0pLGY8PDI0Pj4yNCl7Y2FzZSAzODowfGhRKGwpP2I9MTI6KG09NSxmPTEwMjEzMCk7YnJlYWs7Y2FzZSA2MDptPTQsZj0xMDIxNTM7YnJlYWs7Y2FzZSA2MjptPTQs''@;'; + put 'put ''Zj0xMDIxMzY7YnJlYWs7Y2FzZSAzNDptPTYsZj0xMDIxMTY7YnJlYWs7Y2FzZSAzOTptPTUsZj0xMDIxNDE7YnJlYWs7ZGVmYXVsdDpiPTEyfWZvcigxMj09KDB8YikmJihiPTAsbT0xLGY9bCksQT1jK218MCxwPW07cDspZmVbYz4+MF09MHxmZVtmPj4wXSxwPXArLTF8MCxmPWYrMXwwLGM9''@;'; + put 'put ''YysxfDA7dz1tK3d8MCxjPUEsbD1sKzF8MH1yZXR1cm4gZmVbYz4+MF09MCwwfGFbNDcyMDldfWZ1bmN0aW9uIHZyKGwpe3ZhciBjPTA7cmV0dXJuKGx8PTApPyh1MigwfChjPTB8UW4obCkpLDAsMHxsKSxsPWMpOmw9MCwwfGx9ZnVuY3Rpb24gUW4obCl7cmV0dXJuKGx8PTApPyhsPTB8QjAo''@;'; + put 'put ''bCkpfHwoQ3UoMTExNzQwLDE0LDEsMHxhWzE1NzEyXSksbD0wKTpsPTAsMHxsfWZ1bmN0aW9uIHpIKGwsYyxmLHApe3JldHVybiBwfD0wLDAhPSgwfChjfD0wKSkmMD09KDB8KGw9MHxVYShsfD0wLDB8QXIoZnw9MCxjKSkpKT9DdSgxMTE3NDAsMTQsMSwwfGFbMTU3MTJdKTpjPj4+MD5wPj4+''@;'; + put 'put ''MCYmdTIobCsoMHxBcihwLGYpKXwwLDAsMHxBcihjLXB8MCxmKSksMHxsfWZ1bmN0aW9uIFYwKGwsYyl7cmV0dXJuIDAhPSgwfChjfD0wKSkmMD09KDB8KGw9MHxVYShsfD0wLGMpKSkmJkN1KDExMTc0MCwxNCwxLDB8YVsxNTcxMl0pLDB8bH1mdW5jdGlvbiBwUShsLGMsZixwKXtsfD0wLGN8''@;'; + put 'put ''PTAsZnw9MCxwfD0wO3ZhciBELFIsZ2UsbT0wLEE9MCx3PTAsYj0wLE09MCxLPTAscGU9MDtnZT1sZSxsZT1sZSs4MHwwLFI9Z2UrMzJ8MCxEPWdlKzI0fDAsTT1nZSxLPTQscGU9MHxCMCg0MCksYVtwZT4+Ml09MCxtPWdlKzY4fDAsQT1nZSs2NHwwLGI9Njtkb3tpZig2PT0oMHxiKSl7aWYo''@;'; + put 'put ''TW49MCxtPTB8YTAoMjcsMHxsKSxBPU1uLE1uPTAsMCE9KDB8QSkmMCE9KDB8eG4pPygodz0wfGdpKDB8YVtBPj4yXSwwfHBlLDB8SykpfHx6ZSgwfEEsMHx4biksRG49eG4pOnc9LTEsMSE9KDB8dykpe2lmKCFtJiYoTW49MCxaYygyKSxtPU1uLE1uPTAsMCE9KDB8bSkmMCE9KDB8eG4pPygo''@;'; + put 'put ''QT0wfGdpKDB8YVttPj4yXSwwfHBlLDB8SykpfHx6ZSgwfG0sMHx4biksRG49eG4pOkE9LTEsMT09KDB8QSkpKXttPURuLGI9MTU7YnJlYWt9aWYoKDB8Zik8MSl7aWYoTW49MCxaYygzKSxtPU1uLE1uPTAsMCE9KDB8bSkmMCE9KDB8eG4pPygoQT0wfGdpKDB8YVttPj4yXSwwfHBlLDB8Sykp''@;'; + put 'put ''fHx6ZSgwfG0sMHx4biksRG49eG4pOkE9LTEsMT09KDB8QSkpe209RG4sYj0xNTticmVha31tPTA7YnJlYWt9aWYoYVs0NzIxMV09KDB8cCk+LTE/cDozMCxwZT0wfFBmKDE4ODg0OCwxLDB8cGUsMHxLKSxLPURuLG09TW49MCxNbj0wLDAhPSgwfG0pJjAhPSgwfHhuKT8oKEE9MHxnaSgwfGFb''@;'; + put 'put ''bT4+Ml0sMHxwZSwwfEspKXx8emUoMHxtLDB8eG4pLERuPXhuKTpBPS0xLDE9PSgwfEEpKXttPURuLGI9MTU7YnJlYWt9bT0wLGI9MTU7YnJlYWt9bT1EbixiPTE1fX13aGlsZSgwKTtlOmRve2lmKDE1PT0oMHxiKSl7dDpmb3IoOzspe2lmKDB8bSl7bT0yO2JyZWFrIGV9aWYoTW49MCxaYyg0''@;'; + put 'put ''KSxtPU1uLE1uPTAsMCE9KDB8bSkmMCE9KDB8eG4pPygoQT0wfGdpKDB8YVttPj4yXSwwfHBlLDB8SykpfHx6ZSgwfG0sMHx4biksRG49eG4pOkE9LTEsMSE9KDB8QSkpe2ZvcihsPTB8YVsxNTcxMl0sTT0wOzspe2lmKE1uPTAsYj0wfGJkKDIpLG09TW4sTW49MCwwIT0oMHxtKSYwIT0oMHx4''@;'; + put 'put ''bik/KChBPTB8Z2koMHxhW20+PjJdLDB8cGUsMHxLKSl8fHplKDB8bSwwfHhuKSxEbj14bik6QT0tMSwxPT0oMHxBKSl7bT1EbixiPTE1O2NvbnRpbnVlIHR9aWYoIWIpYnJlYWs7aWYoTW49MCxtPTB8YTAoMjgsMHxiKSxBPU1uLE1uPTAsMCE9KDB8QSkmMCE9KDB8eG4pPygodz0wfGdpKDB8''@;'; + put 'put ''YVtBPj4yXSwwfHBlLDB8SykpfHx6ZSgwfEEsMHx4biksRG49eG4pOnc9LTEsMT09KDB8dykpe209RG4sYj0xNTtjb250aW51ZSB0fWlmKE1uPTAsWjEoMjUsMHxiLDB8bSksbT1NbixNbj0wLDAhPSgwfG0pJjAhPSgwfHhuKT8oKEE9MHxnaSgwfGFbbT4+Ml0sMHxwZSwwfEspKXx8emUoMHxt''@;'; + put 'put ''LDB8eG4pLERuPXhuKTpBPS0xLDE9PSgwfEEpKXttPURuLGI9MTU7Y29udGludWUgdH1NPU0rMXwwO2Rve2lmKDA9PSgwfCgwfE0pJTEwMCkmITEpe2lmKDEwMD09KDB8KG09KDB8TSklMWUzfDApKSl7aWYoTW49MCxGbCg5MywxMDIyMDIsMHxsKSxtPU1uLE1uPTAsMCE9KDB8bSkmMCE9KDB8''@;'; + put 'put ''eG4pPygoQT0wfGdpKDB8YVttPj4yXSwwfHBlLDB8SykpfHx6ZSgwfG0sMHx4biksRG49eG4pOkE9LTEsMT09KDB8QSkpe209RG4sYj0xNTtjb250aW51ZSB0fWlmKE1uPTAsYVtEPj4yXT1NLEpzKDMyLDB8bCwxMDIyMjAsMHxEKSxtPU1uLE1uPTAsMCE9KDB8bSkmMCE9KDB8eG4pPygoQT0w''@;'; + put 'put ''fGdpKDB8YVttPj4yXSwwfHBlLDB8SykpfHx6ZSgwfG0sMHx4biksRG49eG4pOkE9LTEsMT09KDB8QSkpe209RG4sYj0xNTtjb250aW51ZSB0fWJyZWFrfWlmKE1uPTAsYVtSPj4yXT1NLEpzKDMyLDB8bCwxMDIyMjAsMHxSKSxBPU1uLE1uPTAsMCE9KDB8QSkmMCE9KDB8eG4pPygodz0wfGdp''@;'; + put 'put ''KDB8YVtBPj4yXSwwfHBlLDB8SykpfHx6ZSgwfEEsMHx4biksRG49eG4pOnc9LTEsMT09KDB8dykpe209RG4sYj0xNTtjb250aW51ZSB0fWlmKCFtJiYoTW49MCxGbCg5NCwxMCwwfGwpLG09TW4sTW49MCwwIT0oMHxtKSYwIT0oMHx4bik/KChBPTB8Z2koMHxhW20+PjJdLDB8cGUsMHxLKSl8''@;'; + put 'put ''fHplKDB8bSwwfHhuKSxEbj14bik6QT0tMSwxPT0oMHxBKSkpe209RG4sYj0xNTtjb250aW51ZSB0fX19d2hpbGUoMCk7aWYoKDB8TSk+PSgwfGYpKWJyZWFrfXN3aXRjaCgwfGMpe2Nhc2UgMTppZihNbj0wLFpjKDUpLG09TW4sTW49MCwwIT0oMHxtKSYwIT0oMHx4bik/KChBPTB8Z2koMHxh''@;'; + put 'put ''W20+PjJdLDB8cGUsMHxLKSl8fHplKDB8bSwwfHhuKSxEbj14bik6QT0tMSwxPT0oMHxBKSl7bT1EbixiPTE1O2NvbnRpbnVlIHR9YnJlYWs7Y2FzZSAyOmlmKE1uPTAsWmMoNiksbT1NbixNbj0wLDAhPSgwfG0pJjAhPSgwfHhuKT8oKEE9MHxnaSgwfGFbbT4+Ml0sMHxwZSwwfEspKXx8emUo''@;'; + put 'put ''MHxtLDB8eG4pLERuPXhuKTpBPS0xLDE9PSgwfEEpKXttPURuLGI9MTU7Y29udGludWUgdH1icmVhaztkZWZhdWx0OmlmKE1uPTAsWmMoNyksbT1NbixNbj0wLDAhPSgwfG0pJjAhPSgwfHhuKT8oKEE9MHxnaSgwfGFbbT4+Ml0sMHxwZSwwfEspKXx8emUoMHxtLDB8eG4pLERuPXhuKTpBPS0x''@;'; + put 'put ''LDE9PSgwfEEpKXttPURuLGI9MTU7Y29udGludWUgdH1pZihNbj0wLFpjKDMpLG09TW4sTW49MCwwIT0oMHxtKSYwIT0oMHx4bik/KChBPTB8Z2koMHxhW20+PjJdLDB8cGUsMHxLKSl8fHplKDB8bSwwfHhuKSxEbj14bik6QT0tMSwxPT0oMHxBKSl7bT1EbixiPTE1O2NvbnRpbnVlIHR9fW09''@;'; + put 'put ''MDticmVhayBlfW09RG4sYj0xNX1tPTB9fXdoaWxlKDApO3JldHVybiBGdCgwfHBlKSxsZT1nZSwwfG19ZnVuY3Rpb24gZ1EoKXt2YXIgbD0wLGM9MCxmPTA7Zm9yKGw9MTkyKygwfGFbMTYrKDB8YVs0NzI1NF0pPj4yXSl8MDtsPTB8YVtsPj4yXTspKGM9MHxhWzI2NCsobD0wfGFbKGY9bCsx''@;'; + put 'put ''NnwwKT4+Ml0pPj4yXSkmJihGdChjKSxsPTB8YVtmPj4yXSksKGM9MHxhW2wrMjcyPj4yXSkmJihGdChjKSxsPTB8YVtmPj4yXSksZmVbbCsxNTc+PjBdPTAsbD1sKzE2NHwwfWZ1bmN0aW9uIEdIKGwpe3ZhciBjPTAsZj0wO3JldHVybiBsPShjPSgwfGFbMjg4KygwfGFbMTYrKGY9MHxhWygz''@;'; + put 'put ''PT0oMHwoYz0zJmFbKGx8PTApPj4yXSkpP2w6bCs0OHwwKSs0MD4+Ml0pPj4yXSk+PjJdKTwoMHxhWzI4OCsoMHxhWzE2KyhsPTB8YVsoMj09KDB8Yyk/bDpsKy00OHwwKSs0MD4+Ml0pPj4yXSk+PjJdKSk/ZjpsLGFbNDcyNTddPTAsYVs0NzI1OF09MjE0NzQ4MzY0NyxhWzQ3MjU5XT1hWzI4''@;'; + put 'put ''NCsoZj0wfGFbbCsxNj4+Ml0pPj4yXSxhWzQ3MjYwXT1hW2YrMjg4Pj4yXSxjP1lIKGwpOlE2KGwpLDB8YVs0NzI1N119ZnVuY3Rpb24gdlEoKXt2YXIgQSx3LGw9MCxjPTAsZj0wLHA9MCxtPTAsYj0wO2Zvcih3PWxlLGxlPWxlKzE2fDAsYVsoQT13KT4+Ml09MCxhW0E+PjJdPTIxNDc0ODM2''@;'; + put 'put ''NDcsYVs0NzI1M109LTIxNDc0ODM2NDcsZj1sPTE5MisoMHxhWzE2KygwfGFbNDcyNTRdKT4+Ml0pfDAsbT0yMTQ3NDgzNjQ3LHA9LTIxNDc0ODM2NDc7Yz0wfGFbZj4+Ml07KTB8ZmVbMTU2KyhmPTB8YVtjKzE2Pj4yXSk+PjBdP2M9bTooYVtBPj4yXT1jPSgwfG0pPCgwfChiPTB8YVtmKzIz''@;'; + put 'put ''Mj4+Ml0pKT9tOmIsYVs0NzI1M109cD0oMHxwKT4oMHxiKT9wOmIpLGY9ZisxNjR8MCxtPWM7aWYoMHxtKXtmb3IoO2w9MHxhW2w+PjJdOylhWyhiPTIzMisobD0wfGFbbCsxNj4+Ml0pfDApPj4yXT0oMHxhW2I+PjJdKS1tLGw9bCsxNjR8MDthWzQ3MjUzXT1wLW0sYVtBPj4yXT0wfWxlPXd9''@;'; + put 'put ''ZnVuY3Rpb24gWDUobCxjKXt2YXIgbSxmPTAscD0wO2ZvcihhWyhwPTIzMisobD0wfGFbKG09MTYrKGx8PTApfDApPj4yXSl8MCk+PjJdPSgwfGFbcD4+Ml0pLShjfD0wKSxwPTA7Oyl7aWYoIShmPTB8YVsoMHxhW2wrMjcyPj4yXSkrKHA8PDIpPj4yXSkpe3A9MDticmVha30oMHxmKSE9KDB8''@;'; + put 'put ''YVtsKzI4MD4+Ml0pJiYoWDUoMHxhWygyPT0oMyZhW2Y+PjJdfDApP2Y6ZistNDh8MCkrNDA+PjJdLGMpLGw9MHxhW20+PjJdKSxwPXArMXwwfWZvcig7Zj0wfGFbKDB8YVtsKzI2ND4+Ml0pKyhwPDwyKT4+Ml07KSgwfGYpIT0oMHxhW2wrMjgwPj4yXSkmJihYNSgwfGFbKDM9PSgzJmFbZj4+''@;'; + put 'put ''Ml18MCk/ZjpmKzQ4fDApKzQwPj4yXSxjKSxsPTB8YVttPj4yXSkscD1wKzF8MH1mdW5jdGlvbiBBUShsLGMsZixwKXt2YXIgbSxBLHcsYj0wLGs9MDtmb3IoQT0wPT0oMHwocHw9MCkpJjEsdz0wLShmfD0wKXwwLG09MHxhWzI4OCsoMHxhWzE2KyhjfD0wKT4+Ml0pPj4yXSxjPWx8PTA7ISgo''@;'; + put 'put ''MHxhWzI4NCsobD0wfGFbYysxNj4+Ml0pPj4yXSk8PSgwfG0pJiYoMHxtKTw9KDB8YVtsKzI4OD4+Ml0pKTspYj00OCsobD0wfGFbbCsyODA+PjJdKXwwLGFbKGs9MTYwKygwfGFbbCsxNj4+Ml0pfDApPj4yXT0oMHwoKDB8Yyk9PSgwfGFbKDM9PSgzJmFbbD4+Ml18MCk/bDpiKSs0MD4+Ml0p''@;'; + put 'put ''P3A6QSk/Zjp3KSsoMHxhW2s+PjJdKSxjPSgwfGFbMjg4KygwfGFbMTYrKGI9MHxhWygzPT0oMHwoaz0zJmFbbD4+Ml0pKT9sOmIpKzQwPj4yXSk+PjJdKT4+Ml0pPigwfGFbMjg4KygwfGFbMTYrKGw9MHxhWygyPT0oMHxrKT9sOmwrLTQ4fDApKzQwPj4yXSk+PjJdKT4+Ml0pP2I6bDtyZXR1''@;'; + put 'put ''cm4gMHxjfWZ1bmN0aW9uIFFJKGwsYyxmKXtmfD0wO3ZhciBBLHA9MCxtPTA7Zm9yKGFbMjgwKyhsPTB8YVsoQT0xNisobHw9MCl8MCk+PjJdKT4+Ml09Y3w9MCxhW2wrMjg0Pj4yXT1mLG09MDs7KXtpZighKHA9MHxhWygwfGFbbCsyNzI+PjJdKSsobTw8Mik+PjJdKSl7bT0wO2JyZWFrfSgw''@;'; + put 'put ''fHApIT0oMHxjKSYmKGY9MHxRSSgwfGFbKDI9PSgzJmFbcD4+Ml18MCk/cDpwKy00OHwwKSs0MD4+Ml0scCxmKSxsPTB8YVtBPj4yXSksbT1tKzF8MH1mb3IoO3A9MHxhWygwfGFbbCsyNjQ+PjJdKSsobTw8Mik+PjJdOykoMHxwKSE9KDB8YykmJihmPTB8UUkoMHxhWygzPT0oMyZhW3A+PjJd''@;'; + put 'put ''fDApP3A6cCs0OHwwKSs0MD4+Ml0scCxmKSxsPTB8YVtBPj4yXSksbT1tKzF8MDtyZXR1cm4gYVtsKzI4OD4+Ml09ZixmKzF8MH1mdW5jdGlvbiBRNihsKXt2YXIgdyxjPTAsZj0wLHA9MCxtPTAsQT0wLGI9MDtmb3Iodz0xNisobHw9MCl8MCxtPTA7Oyl7aWYoIShmPTB8YVsoMHxhWzE4MCso''@;'; + put 'put ''bD0wfGFbdz4+Ml0pPj4yXSkrKG08PDIpPj4yXSkpe2Y9MDticmVha30oMHxhWzE2NCsocD0wfGFbZisxNj4+Ml0pPj4yXSk8MD8oMHxhWzQ3MjU5XSk+KDB8KGI9MHxhWzI4OCsoYz0wfGFbMTYrKDB8YVsoMj09KDB8KGw9MyZhW2Y+PjJdKSk/ZjpmKy00OHwwKSs0MD4+Ml0pPj4yXSk+PjJd''@;'; + put 'put ''KSl8KDB8Yik+KDB8YVs0NzI2MF0pJiYoMHwoQT0oMHxhW2MrMjMyPj4yXSktKDB8YVsyMzIrKDB8YVsxNisoMHxhWygzPT0oMHxsKT9mOmYrNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSktKDB8aHJbcCsxNzA+PjFdKXwwKSk8KDB8YVs0NzI1OF0pfDA9PSgwfGFbNDcyNTddKSYmKGFbNDcyNTdd''@;'; + put 'put ''PWYsYVs0NzI1OF09QSk6KDB8YVsyODgrKDB8YVsxNisoYz0wfGFbKDI9PSgzJmFbZj4+Ml18MCk/ZjpmKy00OHwwKSs0MD4+Ml0pPj4yXSk+PjJdKTwoMHxhW2wrMjg4Pj4yXSkmJlE2KGMpLG09bSsxfDB9Zm9yKDswIT0oMHwoYz0wfGFbKDB8YVtsKzI2ND4+Ml0pKyhmPDwyKT4+Ml0pKSYo''@;'; + put 'put ''MHxhWzQ3MjU4XSk+MDspKDB8YVsyODgrKDB8YVsxNisoYz0wfGFbKDM9PSgzJmFbYz4+Ml18MCk/YzpjKzQ4fDApKzQwPj4yXSk+PjJdKT4+Ml0pPCgwfGFbbCsyODg+PjJdKSYmKFE2KGMpLGw9MHxhW3c+PjJdKSxmPWYrMXwwfWZ1bmN0aW9uIFlIKGwpe3ZhciB3LGM9MCxmPTAscD0wLG09''@;'; + put 'put ''MCxBPTAsYj0wO2Zvcih3PTE2KyhsfD0wKXwwLG09MDs7KXtpZighKGY9MHxhWygwfGFbMTcyKyhsPTB8YVt3Pj4yXSk+PjJdKSsobTw8Mik+PjJdKSl7Zj0wO2JyZWFrfSgwfGFbMTY0KyhwPTB8YVtmKzE2Pj4yXSk+PjJdKTwwPygwfGFbNDcyNTldKT4oMHwoYj0wfGFbMjg4KyhjPTB8YVsx''@;'; + put 'put ''NisoMHxhWygzPT0oMHwobD0zJmFbZj4+Ml0pKT9mOmYrNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSkpfCgwfGIpPigwfGFbNDcyNjBdKSYmKDB8KEE9KDB8YVsyMzIrKDB8YVsxNisoMHxhWygyPT0oMHxsKT9mOmYrLTQ4fDApKzQwPj4yXSk+PjJdKT4+Ml0pLSgwfGFbYysyMzI+PjJdKS0oMHxo''@;'; + put 'put ''cltwKzE3MD4+MV0pfDApKTwoMHxhWzQ3MjU4XSl8MD09KDB8YVs0NzI1N10pJiYoYVs0NzI1N109ZixhWzQ3MjU4XT1BKTooMHxhWzI4OCsoMHxhWzE2KyhjPTB8YVsoMz09KDMmYVtmPj4yXXwwKT9mOmYrNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSk8KDB8YVtsKzI4OD4+Ml0pJiZZSChjKSxt''@;'; + put 'put ''PW0rMXwwfWZvcig7MCE9KDB8KGM9MHxhWygwfGFbbCsyNzI+PjJdKSsoZjw8Mik+PjJdKSkmKDB8YVs0NzI1OF0pPjA7KSgwfGFbMjg4KygwfGFbMTYrKGM9MHxhWygyPT0oMyZhW2M+PjJdfDApP2M6YystNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSk8KDB8YVtsKzI4OD4+Ml0pJiYoWUgoYyks''@;'; + put 'put ''bD0wfGFbdz4+Ml0pLGY9ZisxfDB9ZnVuY3Rpb24gZWFlKGwpe3ZhciBjO3JldHVybiBsfD0wLGM9MHx2cigxNiksYVtjPj4yXT1sLGFbYys0Pj4yXT0wfEpIKGwsYyksYVtjKzEyPj4yXT1jLDB8Y31mdW5jdGlvbiBuYWUobCl7cmV0dXJuIDB8YVs0KyhsfD0wKT4+Ml19ZnVuY3Rpb24gcmFl''@;'; + put 'put ''KGwpe3ZhciBjLGYscCxtPTA7cmV0dXJuIGFbOCsoYz0wfGFbKG09MHxhWyhsfD0wKT4+Ml0pPj4yXSk+PjJdPS0xLGFbbT4+Ml09YVttKygocD0oMHxhWyhmPWwrNHwwKT4+Ml0pLTF8MCk8PDIpPj4yXSxhWzgrKDB8YVsobT0wfGFbbD4+Ml0pPj4yXSk+PjJdPTAsYVttKyhwPDwyKT4+Ml09''@;'; + put 'put ''YyxhW2Y+PjJdPXAsVUgobCwwKSwwfGN9ZnVuY3Rpb24gaWFlKGwpe3JldHVybiAwfEM3KDB8YVsobHw9MCk+PjJdLDAsMCl9ZnVuY3Rpb24gb2FlKGwpe3ZhciBmLHAsbSxBLHcsYz0wO3JldHVybigwfGFbMTY0KygwfGFbKGM9MTYrKGx8PTApfDApPj4yXSk+PjJdKT4tMSYmUHIoMTAyMzUw''@;'; + put 'put ''LDEwMjMzMSw0NjMsMTAyMzY0KSxtPWwrNDh8MCxmPTB8cWQoMHxhWygzPT0oMyZhW2w+PjJdfDApP2w6bSkrNDA+PjJdKSx3PWwrLTQ4fDAscD0wfHFkKDB8YVsoMj09KDMmYVtsPj4yXXwwKT9sOncpKzQwPj4yXSksYz0oMHxhWzIzMisoMHxhWzE2KygwfGFbKDI9PSgwfChBPTMmYVtsPj4y''@;'; + put 'put ''XSkpP2w6dykrNDA+PjJdKT4+Ml0pPj4yXSktKDB8YVsyMzIrKDB8YVsxNisoMHxhWygzPT0oMHxBKT9sOm0pKzQwPj4yXSk+PjJdKT4+Ml0pLSgwfGhyWzE3MCsoMHxhW2M+PjJdKT4+MV0pfDAsLTE9PSgwfGFbZis4Pj4yXSk/SkkoMHxhW2Y+PjJdLDAsYyk6SkkoMHxhW3A+PjJdLDAsMC1j''@;'; + put 'put ''fDApLF83KGwpLDB8ZnVuY3Rpb24gc2FlKGwsYyl7bHw9MCxjfD0wO2Zvcih2YXIgZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wOyEoMD09KDB8KGY9MHxhWyhBPWwrMTJ8MCk+PjJdKSl8KDB8Zik9PSgwfGwpKTspbD1mO2Zvcig7ISgwPT0oMHwoZj0wfGFbKG09YysxMnwwKT4+Ml0pKXwo''@;'; + put 'put ''MHxmKT09KDB8YykpOyljPWY7aWYoKDB8bCkhPSgwfGMpKXtwPTB8YVtsKzg+PjJdLGY9MHxhW2MrOD4+Ml07ZG97aWYoKDB8cCk+LTEpLTE9PSgwfGYpP3c9bDprPTEwO2Vsc2V7aWYoKDB8Zik+LTEpe2lmKC0xPT0oMHxwKSl7dz1jO2JyZWFrfWs9MTA7YnJlYWt9UHIoMTAyMzc2LDEwMjMz''@;'; + put 'put ''MSwzMjcsMTAyNDIzKX19d2hpbGUoMCk7MTA9PSgwfGspJiYodz0oMHxhW2MrND4+Ml0pPCgwfGFbbCs0Pj4yXSk/bDpjKSxhW20+PjJdPXcsYVtBPj4yXT13LGFbdys0Pj4yXT0oMHxhW2MrND4+Ml0pKygwfGFbbCs0Pj4yXSksKDB8YVt3Kzg+PjJdKT4tMT9iPXc6UHIoMTAyNDM0LDEwMjMz''@;'; + put 'put ''MSwzMzUsMTAyNDIzKX1lbHNlIGI9bDtyZXR1cm4gMHxifShmLHApfWZ1bmN0aW9uIFVIKGwsYyl7Y3w9MDt2YXIgQSx3LGY9MCxwPTAsbT0wLGI9MDtmb3Iodz0wfGFbKGx8PTApPj4yXSxBPTB8YVtsKzQ+PjJdO209MisobD1jPDwxKXwwLCgwfChsfD0xKSk8KDB8QSkmJigwfGFbNCsoMHxh''@;'; + put 'put ''W3crKGw8PDIpPj4yXSk+PjJdKTwoMHxhWzQrKDB8YVt3KyhjPDwyKT4+Ml0pPj4yXSl8fChsPWMpLCEoKDB8bSk+PSgwfEEpfHwoZj13KyhtPDwyKXwwLHA9MHxhW2Y+PjJdLCgwfG0pPT0oMHxjKXx8KDB8YVtwKzQ+PjJdKT49KDB8YVs0KygwfGFbdysobDw8Mik+PjJdKT4+Ml0pKSk7KWw9''@;'; + put 'put ''MHxhWyhiPXcrKGM8PDIpfDApPj4yXSxhW2I+PjJdPXAsYVtmPj4yXT1sLGFbOCsoMHxhW2I+PjJdKT4+Ml09YyxhW2wrOD4+Ml09bSxjPW19ZnVuY3Rpb24gUUgobCxjKXtjfD0wO3ZhciBtLGY9MCxwPTA7Zm9yKG09MTYrKGx8PTApfDAsZj0wOzspe2lmKCEocD0wfGFbKDB8YVsyNzIrKGw9''@;'; + put 'put ''MHxhW20+PjJdKT4+Ml0pKyhmPDwyKT4+Ml0pKXtwPTA7YnJlYWt9KDB8cCkhPSgwfGMpJiZRSCgwfGFbKDI9PSgzJmFbcD4+Ml18MCk/cDpwKy00OHwwKSs0MD4+Ml0scCksZj1mKzF8MH1mb3IoO2Y9MHxhWygwfGFbbCsyNjQ+PjJdKSsocDw8Mik+PjJdOykoMHxmKSE9KDB8YykmJihRSCgw''@;'; + put 'put ''fGFbKDM9PSgzJmFbZj4+Ml18MCk/ZjpmKzQ4fDApKzQwPj4yXSxmKSxsPTB8YVttPj4yXSkscD1wKzF8MDswfGMmJmZ1bmN0aW9uIGxhZShsKXt2YXIgYz0wLGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wO2ZvcigoMHxhWzI4MCsocD0wfGFbMTYrKGY9MHxhWygzPT0oMHwoYz0zJmFbKGx8PTAp''@;'; + put 'put ''Pj4yXSkpP2w6bCs0OHwwKSs0MD4+Ml0pPj4yXSk+PjJdKT09KDB8bCk/Yj0xOihiPS0xLGY9cD0wfGFbKDI9PSgwfGMpP2w6bCstNDh8MCkrNDA+PjJdLHA9MHxhW3ArMTY+PjJdKSxBPTB8YVtwKzE4MD4+Ml0sYz0wLG09MDt3PTB8YVtBKyhtPDwyKT4+Ml07KWM9KDB8eVEodyxmLGIpKStj''@;'; + put 'put ''fDAsbT1tKzF8MDtmb3IoQT0wfGFbcCsxNzI+PjJdLHA9MDttPTB8YVtBKyhwPDwyKT4+Ml07KWM9KDB8eVEobSxmLGIpKStjfDAscD1wKzF8MDthWzE2MCsoMHxhW2wrMTY+PjJdKT4+Ml09Y30oYyl9ZnVuY3Rpb24geVEobCxjLGYpe3ZhciB3LHA9MCxtPTAsQT0wLGI9MDtyZXR1cm4oMHwo''@;'; + put 'put ''cD0wfGFbKGI9Mz09KDB8KHc9MyZhWyhsfD0wKT4+Ml0pKT9sOmwrNDh8MCkrNDA+PjJdKSk9PSgwfChjfD0wKSkmJihwPTB8YVsoMj09KDB8dyk/bDpsKy00OHwwKSs0MD4+Ml0pLCgwfGFbMjg0KyhBPTB8YVtjKzE2Pj4yXSk+PjJdKTw9KDB8KG09MHxhWzI4OCsoMHxhW3ArMTY+PjJdKT4+''@;'; + put 'put ''Ml0pKSYmKDB8bSk8PSgwfGFbQSsyODg+PjJdKT8oQT0xLHA9KHA9KDB8YVsxNjQrKG09MHxhW2wrMTY+PjJdKT4+Ml0pPi0xPzB8YVttKzE2MD4+Ml06MCktKDB8YVttKzE1Nj4+Ml0pfDApOihBPTAscD0wfGFbMTU2KygwfGFbbCsxNj4+Ml0pPj4yXSksYj0oMHxhWygoMHwoZnw9MCkpPjA/''@;'; + put 'put ''Mj09KDB8dyk/bDpsKy00OHwwOmIpKzQwPj4yXSk9PSgwfGMpPzE6LTEsMHwoKDB8KEE/YjowLWJ8MCkpPDA/MC1wfDA6cCl9ZnVuY3Rpb24gcWQobCl7dmFyIGM9MCxmPTA7Zm9yKGw9MHxhWzI4MCsoMHxhWzE2KyhsfD0wKT4+Ml0pPj4yXTsoMHwoZj0wfGFbKGM9bCsxMnwwKT4+Ml0pKSE9''@;'; + put 'put ''KDB8bCkmMCE9KDB8Zik7KShsPTB8YVtmKzEyPj4yXSk/YVtjPj4yXT1sOmw9ZjtyZXR1cm4gMHxsfWZ1bmN0aW9uIEpJKGwsYyxmKXtjfD0wO3ZhciB3LHA9MCxtPTAsQT0wO2ZvcihhWyhBPTIzMisocD0wfGFbKHc9MTYrKGx8PTApfDApPj4yXSl8MCk+PjJdPSgwfGFbQT4+Ml0pKyhmfD0w''@;'; + put 'put ''KSxBPTA7Oyl7aWYoIShtPTB8YVsoMHxhW3ArMjY0Pj4yXSkrKEE8PDIpPj4yXSkpe0E9MDticmVha30oMHwobT0wfGFbKDM9PSgzJmFbbT4+Ml18MCk/bTptKzQ4fDApKzQwPj4yXSkpIT0oMHxjKSYmKEpJKG0sbCxmKSxwPTB8YVt3Pj4yXSksQT1BKzF8MH1mb3IoO209MHxhWygwfGFbcCsy''@;'; + put 'put ''NzI+PjJdKSsoQTw8Mik+PjJdOykoMHwobT0wfGFbKDI9PSgzJmFbbT4+Ml18MCk/bTptKy00OHwwKSs0MD4+Ml0pKSE9KDB8YykmJihKSShtLGwsZikscD0wfGFbdz4+Ml0pLEE9QSsxfDB9ZnVuY3Rpb24gXzcobCl7dmFyIEEsYz0wLGY9MCxwPTAsbT0wLHc9MDtBPWxlLGxlPWxlKzMyfDAs''@;'; + put 'put ''KDB8YVsoYz0xNjQrKDB8YVsxNisobHw9MCk+PjJdKXwwKT4+Ml0pPi0xJiYoJHIoMSwxMDI0NTMsQSksemUoMTg4ODQ4LDEpKSxhW2M+PjJdPW09MHxhWzQ3MjU1XSxjPTB8YVs0NzI1Nl0sYVs0NzI1NV09bSsxLGFbYysobTw8Mik+PjJdPWwsbT1sKzQ4fDAsMHxmZVsxNTcrKDB8YVsxNiso''@;'; + put 'put ''Zj0wfGFbKDM9PSgzJihjPTB8YVtsPj4yXSl8MCk/bDptKSs0MD4+Ml0pPj4yXSk+PjBdfHwocD0wfGFbNDcyNjJdLGFbNDcyNjNdPTErKGM9MHxhWzQ3MjYzXSksYVtwKyhjPDwyKT4+Ml09ZixjPTB8YVtsPj4yXSkscD1sKy00OHwwLDB8ZmVbMTU3KygwfGFbMTYrKGY9MHxhWygyPT0oMyZj''@;'; + put 'put ''fDApP2w6cCkrNDA+PjJdKT4+Ml0pPj4wXXx8KHc9MHxhWzQ3MjYyXSxhWzQ3MjYzXT0xKyhjPTB8YVs0NzI2M10pLGFbdysoYzw8Mik+PjJdPWYsYz0wfGFbbD4+Ml0pLGZlWzE1NysoYz0wfGFbKHc9MTYrKDB8YVsoMz09KDMmY3wwKT9sOm0pKzQwPj4yXSl8MCk+PjJdKT4+MF09MSxmPTB8''@;'; + put 'put ''YVtjKzI3Mj4+Ml0sYVsoYz1jKzI3NnwwKT4+Ml09MSsobT0wfGFbYz4+Ml0pLGFbZisobTw8Mik+PjJdPWwsYVsoMHxhWzI3MisobT0wfGFbdz4+Ml0pPj4yXSkrKGFbbSsyNzY+PjJdPDwyKT4+Ml09MCwwfGFbKDB8YVsxODArKHc9MHxhW3c+PjJdKT4+Ml0pKygoMHxhW3crMjc2Pj4yXSkt''@;'; + put 'put ''MTw8Mik+PjJdfHwoJHIoMSwxMDI0ODcsQSs4fDApLHplKDE4ODg0OCwxKSksZmVbMTU3KyhmPTB8YVsodz0xNisoMHxhWygyPT0oMyZhW2w+PjJdfDApP2w6cCkrNDA+PjJdKXwwKT4+Ml0pPj4wXT0xLHA9MHxhW2YrMjY0Pj4yXSxhWyhmPWYrMjY4fDApPj4yXT0xKyhtPTB8YVtmPj4yXSks''@;'; + put 'put ''YVtwKyhtPDwyKT4+Ml09bCxhWygwfGFbMjY0KyhsPTB8YVt3Pj4yXSk+PjJdKSsoYVtsKzI2OD4+Ml08PDIpPj4yXT0wLDB8YVsoMHxhWzE3Misodz0wfGFbdz4+Ml0pPj4yXSkrKCgwfGFbdysyNjg+PjJdKS0xPDwyKT4+Ml0/bGU9QTooJHIoMSwxMDI1MjIsQSsxNnwwKSx6ZSgxODg4NDgs''@;'; + put 'put ''MSkpfWZ1bmN0aW9uIEM3KGwsYyxmKXtjfD0wLGZ8PTA7dmFyIE0scD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsRD0wO009MHxxZChsfD0wKSxmPygoMHxhWzIzMisoMHxhWzE2KygwfGFbKDI9PSgwfChrPTMmYVtmPj4yXSkpP2Y6ZistNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSktKDB8YVsyMzIr''@;'; + put 'put ''KDB8YVsxNisoMHxhWygzPT0oMHxrKT9mOmYrNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSl8MCkhPSgwfGhyWzE3MCsoMHxhW2YrMTY+PjJdKT4+MV0pJiYocD0zKTooZj0wLHA9Myk7ZTpkb3tpZigzPT0oMHxwKSl7Zm9yKGs9bCsxNnwwLGI9MDs7KXtpZighKHc9MHxhWygwfGFbMTgwKyhwPTB8''@;'; + put 'put ''YVtrPj4yXSk+PjJdKSsoYjw8Mik+PjJdKSl7Yj0wO2JyZWFrfXA9dysxNnwwLG09dystNDh8MCxBPTB8YVsoMj09KDMmYVt3Pj4yXXwwKT93Om0pKzQwPj4yXTtkb3tpZigoMHxhWzE2NCsoMHxhW3A+PjJdKT4+Ml0pPi0xKSgwfEEpIT0oMHxjKSYmKGY9MHxDNyhBLGwsZikpO2Vsc2UgaWYo''@;'; + put 'put ''KDB8cWQoQSkpIT0oMHxNKSl7aWYoMHxmJiYoKDB8YVsyMzIrKDB8YVsxNisoMHxhWygyPT0oMHwoRD0zJmFbdz4+Ml0pKT93Om0pKzQwPj4yXSk+PjJdKT4+Ml0pLSgwfGFbMjMyKygwfGFbMTYrKDB8YVsoMz09KDB8RCk/dzp3KzQ4fDApKzQwPj4yXSk+PjJdKT4+Ml0pLSgwfGhyWzE3MCso''@;'; + put 'put ''MHxhW3A+PjJdKT4+MV0pfDApPj0oKDB8YVsyMzIrKDB8YVsxNisoMHxhWygyPT0oMHwoQT0zJmFbZj4+Ml0pKT9mOmYrLTQ4fDApKzQwPj4yXSk+PjJdKT4+Ml0pLSgwfGFbMjMyKygwfGFbMTYrKDB8YVsoMz09KDB8QSk/ZjpmKzQ4fDApKzQwPj4yXSk+PjJdKT4+Ml0pLSgwfGhyWzE3MCso''@;'; + put 'put ''MHxhW2YrMTY+PjJdKT4+MV0pfDApKWJyZWFrO2Y9d319d2hpbGUoMCk7Yj1iKzF8MH1mb3IoOzspe2lmKCEocD0wfGFbKDB8YVtwKzE3Mj4+Ml0pKyhiPDwyKT4+Ml0pKWJyZWFrIGU7bT1wKzE2fDAsQT1wKzQ4fDAsdz0wfGFbKDM9PSgzJmFbcD4+Ml18MCk/cDpBKSs0MD4+Ml07ZG97aWYo''@;'; + put 'put ''KDB8YVsxNjQrKDB8YVttPj4yXSk+PjJdKT4tMSkoMHx3KSE9KDB8YykmJihmPTB8QzcodyxsLGYpKTtlbHNlIGlmKCgwfHFkKHcpKSE9KDB8TSkpe2lmKDB8ZiYmKCgwfGFbMjMyKygwfGFbMTYrKDB8YVsoMj09KDB8KHc9MyZhW3A+PjJdKSk/cDpwKy00OHwwKSs0MD4+Ml0pPj4yXSk+PjJd''@;'; + put 'put ''KS0oMHxhWzIzMisoMHxhWzE2KygwfGFbKDM9PSgwfHcpP3A6QSkrNDA+PjJdKT4+Ml0pPj4yXSktKDB8aHJbMTcwKygwfGFbbT4+Ml0pPj4xXSl8MCk+PSgoMHxhWzIzMisoMHxhWzE2KygwfGFbKDI9PSgwfChEPTMmYVtmPj4yXSkpP2Y6ZistNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSktKDB8''@;'; + put 'put ''YVsyMzIrKDB8YVsxNisoMHxhWygzPT0oMHxEKT9mOmYrNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSktKDB8aHJbMTcwKygwfGFbZisxNj4+Ml0pPj4xXSl8MCkpYnJlYWs7Zj1wfX13aGlsZSgwKTtiPWIrMXwwLHA9MHxhW2s+PjJdfX19d2hpbGUoMCk7cmV0dXJuIDB8Zn1mdW5jdGlvbiBKSChs''@;'; + put 'put ''LGMpe3ZhciBNLGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxEPTAsUj0wLEc9MDtmb3IoYVsyODArKGY9MHxhWyhNPTE2KyhsfD0wKXwwKT4+Ml0pPj4yXT1jfD0wLGw9MSxBPTA7Oyl7aWYoIShtPTB8YVsoMHxhW2YrMTcyPj4yXSkrKEE8PDIpPj4yXSkpe0E9MDticmVha30oMHxhWzE2''@;'; + put 'put ''NCsocD0wfGFbbSsxNj4+Ml0pPj4yXSk8PS0xJiYoYj1tKzQ4fDAsMD09KDB8YVsyODArKGs9MHxhWzE2KygwfGFbKDM9PSgwfCh3PTMmYVttPj4yXSkpP206YikrNDA+PjJdKT4+Ml0pPj4yXSkpJiYoKDB8YVsyMzIrKDB8YVsxNisoMHxhWygyPT0oMHx3KT9tOm0rLTQ4fDApKzQwPj4yXSk+''@;'; + put 'put ''PjJdKT4+Ml0pLSgwfGFbaysyMzI+PjJdKXwwKT09KDB8aHJbcCsxNzA+PjFdKSYmKF83KG0pLGw9KDB8SkgoMHxhWygzPT0oMyZhW20+PjJdfDApP206YikrNDA+PjJdLGMpKStsfDAsZj0wfGFbTT4+Ml0pLEE9QSsxfDB9Zm9yKDtwPTB8YVsoMHxhW2YrMTgwPj4yXSkrKEE8PDIpPj4yXTsp''@;'; + put 'put ''KDB8YVsxNjQrKG09MHxhW3ArMTY+PjJdKT4+Ml0pPD0tMSYmKFI9cCstNDh8MCwwPT0oMHxhWzI4MCsoRz0wfGFbMTYrKDB8YVsoMj09KDB8KEQ9MyZhW3A+PjJdKSk/cDpSKSs0MD4+Ml0pPj4yXSk+PjJdKSkmJigoMHxhW0crMjMyPj4yXSktKDB8YVsyMzIrKDB8YVsxNisoMHxhWygzPT0o''@;'; + put 'put ''MHxEKT9wOnArNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSl8MCk9PSgwfGhyW20rMTcwPj4xXSkmJihfNyhwKSxsPSgwfEpIKDB8YVsoMj09KDMmYVtwPj4yXXwwKT9wOlIpKzQwPj4yXSxjKSkrbHwwLGY9MHxhW00+PjJdKSxBPUErMXwwO3JldHVybiAwfGx9ZnVuY3Rpb24gazcobCxjLGYpe3Zh''@;'; + put 'put ''ciBwPTA7cmV0dXJuIDB8cFEobHw9MCxjfD0wLGZ8PTAscD0ocD0wfExpKGwsMTAyNTg2KSk/MHxyMyhwKTozMCl9ZnVuY3Rpb24gd1EobCxjLGYscCl7bHw9MCxmfD0wLHB8PTA7dmFyIEQsRyxLLHBlLGdlLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLFI9MCxiZT0wO2ZvcihLPWxlLGxlPWxl''@;'; + put 'put ''KzE2fDAsRz1LLGFbNDcyNjRdPWFbNCsoMHxhWzgrKDB8YVs2NCsoY3w9MCk+PjJdKT4+Ml0pPj4yXSxnZT0rX1szMisoQT0wfGFbYysxNj4+Ml0pPj4zXSxwZT0rX1tBKzQwPj4zXSxTNyhmLDEwMjU5NywrX1tsKzM1Mj4+M10pLFM3KGYsMTAyNjA0LC4wMTM4ODg4ODg4ODg4ODg4ODgqZ2Up''@;'; + put 'put ''LFM3KGYsMTAyNjA0LC4wMTM4ODg4ODg4ODg4ODg4ODgqcGUpLFhIKGYpLEE9MHxEdChjKTtBOykwfGZlWzExOCsoMHxhWyhtPUErMTZ8MCk+PjJdKT4+MF18fChKMyhmLDEwMjYwNiwwfE9BKDB8dGkoQSkpKSxhW0c+PjJdPWFbKFI9MTYrKDB8YVttPj4yXSl8MCk+PjJdLGFbRys0Pj4yXT1h''@;'; + put 'put ''W1IrND4+Ml0sYVtHKzg+PjJdPWFbUis4Pj4yXSxhW0crMTI+PjJdPWFbUisxMj4+Ml0sS0goZixHKSxsPTB8ZmVbODIrKDB8YVsxMDQrKDB8YVttPj4yXSk+PjJdKT4+MF0/MHxPQSgwfEhvKEEsMHxhWzQ3MTU0XSkpOjB8JEgobD0wfGNyKEEpLDB8YVthWzEwNCsoMHxhW20+PjJdKT4+Ml0+''@;'; + put 'put ''PjJdKSxTNyhmLDEwMjYwNCwrX1szMisoMHxhW20+PjJdKT4+M10pLFM3KGYsMTAyNjA0LCtfWzQwKygwfGFbbT4+Ml0pPj4zXSksSjMoZiwxMDI2MDQsbCksSjMoZiwxMDI2MDQsMHxCYShBLDB8YVs0NzE1N10sMTExMDY3KSksSjMoZiwxMDI2MDQsMHxhW2FbOCsoMHxhW20+PjJdKT4+Ml0+''@;'; + put 'put ''PjJdKSxKMyhmLDEwMjYwNCwwfEJhKEEsMHxhWzQ3MTQ4XSwxMzczMTQpKSxsPTB8QmEoQSwwfGFbNDcxNDldLDE5NTA1OSksMHxmZVtsPj4wXXx8KGw9MHxCYShBLDB8YVs0NzE0OF0sMTM0ODAwKSksSjMoZiwxMDI2MDQsbCksWEgoZikpLEE9MHx6dChjLEEpO2ZvcihEPXA8PDI0Pj4yND09''@;'; + put 'put ''MCxNPTB8RHQoYyk7TTspe2ZvcihrPTB8dzAoYyxNKTtrOyl7RD8ocD0xOTUwNTksdz0xOTUwNTkpOih3PTB8TGkoaywxMTE0NTUpLHA9MHwocD0wfExpKGssMTExNDY0KSk/cDoxOTUwNTksdz0wfHc/dzoxOTUwNTkpLGI9MHxhWzgrKGw9MHxhWyhSPWsrMTZ8MCk+PjJdKT4+Ml07ZTpkb3tp''@;'; + put 'put ''ZihiKXtmb3IoQT0wfGFbYis0Pj4yXSxsPTAsbT0wOyEoKDB8bCk+PSgwfEEpKTspYmU9KDB8YVsoMHxhW2I+PjJdKSsoNDgqbHwwKSs0Pj4yXSkrbXwwLGw9bCsxfDAsbT1iZTtmb3IoSjMoZiwwLDExMTQ1MCksX1EoZiwwfGFbKDM9PSgzJmFbaz4+Ml18MCk/azprKzQ4fDApKzQwPj4yXSx3''@;'; + put 'put ''KSxfUShmLDB8YVsoMj09KDMmYVtrPj4yXXwwKT9rOmsrLTQ4fDApKzQwPj4yXSxwKSxjYWUoZixtKSxwPTA7Oyl7aWYoKDB8cCk+PSgwfGFbNCsobT0wfGFbOCsobD0wfGFbUj4+Ml0pPj4yXSk+PjJdKSlicmVhayBlO2ZvcihtPTB8YVsoQT0wfGFbbT4+Ml0pKyg0OCpwfDApPj4yXSxBPTB8''@;'; + put 'put ''YVtBKyg0OCpwfDApKzQ+PjJdLGw9MDshKCgwfGwpPj0oMHxBKSk7KWFbRz4+Ml09YVsoYmU9bSsobDw8NCl8MCk+PjJdLGFbRys0Pj4yXT1hW2JlKzQ+PjJdLGFbRys4Pj4yXT1hW2JlKzg+PjJdLGFbRysxMj4+Ml09YVtiZSsxMj4+Ml0sS0goZixHKSxsPWwrMXwwO3A9cCsxfDB9fX13aGls''@;'; + put 'put ''ZSgwKTswfGFbbCs5Nj4+Ml0mJihKMyhmLDEwMjYwNCwwfCRIKGJlPTB8Y3IoMHxhWygzPT0oMyZhW2s+PjJdfDApP2s6ays0OHwwKSs0MD4+Ml0pLDB8YVthWzk2KygwfGFbUj4+Ml0pPj4yXT4+Ml0pKSxhW0c+PjJdPWFbKGJlPTU2KygwfGFbOTYrKDB8YVtSPj4yXSk+PjJdKXwwKT4+Ml0s''@;'; + put 'put ''YVtHKzQ+PjJdPWFbYmUrND4+Ml0sYVtHKzg+PjJdPWFbYmUrOD4+Ml0sYVtHKzEyPj4yXT1hW2JlKzEyPj4yXSxLSChmLEcpKSxKMyhmLDEwMjYwNCwwfEJhKGssMHxhWzQ3MTg1XSwxMTEwNjcpKSxKMyhmLDEwMjYwNCwwfEJhKGssMHxhWzQ3MTc2XSwxMzczMTQpKSxYSChmKSxrPTB8UzAo''@;'; + put 'put ''YyxrKX1NPTB8enQoYyxNKX1NNygxMDI2MTIsZiksbGU9S31mdW5jdGlvbiBTNyhsLGMsZil7dmFyIHAsbSxBO2x8PTAsZj0rZixBPWxlLGxlPWxlKzEwNDB8MCxtPUEscD1BKzh8MCwwfChjfD0wKSYmTTcoYyxsKSxfW20+PjNdPWYsb28ocCwxMDI2MTgsbSksTTcocCxsKSxsZT1BfWZ1bmN0''@;'; + put 'put ''aW9uIFhIKGwpe2x8PTAsZmVbMTk0OTU1XT0xMCxCaVsxMjcmYVs0NzI2NF1dKGwsMTk0OTU1KX1mdW5jdGlvbiBKMyhsLGMsZil7bHw9MCxmfD0wLDB8KGN8PTApJiZNNyhjLGwpLE03KGYsbCl9ZnVuY3Rpb24gS0gobCxjKXtTNyhsfD0wLDEwMjYwNCwuMDEzODg4ODg4ODg4ODg4ODg4Kitf''@;'; + put 'put ''WyhjfD0wKT4+M10pLFM3KGwsMTAyNjA0LC4wMTM4ODg4ODg4ODg4ODg4ODgqK19bYys4Pj4zXSl9ZnVuY3Rpb24gJEgobCxjKXt2YXIgZjtyZXR1cm4gYz0wfE9BKGY9MHxyMChsfD0wLGN8PTApKSxlMChsLGYpLDB8Y31mdW5jdGlvbiBfUShsLGMsZil7Znw9MCxKMyhsfD0wLDEwMjYwNCxj''@;'; + put 'put ''PTB8ZmVbMTE4KygwfGFbMTYrKGN8PTApPj4yXSk+PjBdPzB8JEgoMHxjcihjKSwxKygwfCRzKDB8dGkoYyksNTgpKXwwKTowfE9BKDB8dGkoYykpKSwwfGYmJjB8ZmVbZj4+MF0mJkozKGwsMTA3OTg0LDB8T0EoZikpfWZ1bmN0aW9uIGNhZShsLGMpe3ZhciBmLHAsbTtjfD0wLGY9bGUsbGU9''@;'; + put 'put ''bGUrMTA0MHwwLG09ZixwPWYrOHwwLE03KDEwMjYwNCxsfD0wKSxhW20+PjJdPWMsb28ocCwxMzczOTUsbSksTTcocCxsKSxsZT1mfWZ1bmN0aW9uIE03KGwsYyl7QmlbMTI3JmFbNDcyNjRdXShjfD0wLGx8PTApfWZ1bmN0aW9uIENRKGwsYyxmKXtjfD0wLGZ8PTA7dmFyIFJlLEhlLFZlLHFl''@;'; + put 'put ''LFdlLG90LFN0LGt0LHN0LEV0LFp0LGN0LGJ0LGFuLFNuLEhuLHVyLEhyLEVyLGZyLERyLEpyLExyLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxLPTAscGU9MCxnZT0wLGJlPTAsT2U9MCxMZT0wLG50PTA7Zm9yKExyPWxlLGxlPWxlKzIyODh8MCxEcj1McisyMDh8''@;'; + put 'put ''MCxmcj1McisxOTJ8MCxFcj1McisxNzZ8MCxIcj1McisxNjB8MCx1cj1McisxNDR8MCxIbj1McisxMjh8MCxhbj1McisxMTJ8MCxidD1Mcis5NnwwLGN0PUxyKzgwfDAsWnQ9THIrNjR8MCxFdD1Mcis1NnwwLHN0PUxyKzQ4fDAsSnI9THIrMzJ8MCxTbj1McisyNHwwLGt0PUxyLFdlPUxyKzEy''@;'; + put 'put ''NjR8MCxvdD1McisyMjR8MCxxZT0oMHxoclsxNzgrKDB8YVsoU3Q9MTYrKGx8PTApfDApPj4yXSk+PjFdKT4yLHNjKDEpLHVzKG90LDEwMjQsTHIrMjQwfDApLFoyKGwsMSwxMDI2MjMsMTk1MDU5KSxaMihsLDEsMTAyNjI3LDE5NTA1OSksYVs0NzE0Nl09MHxaMihsLDEsMTQxMTE2LDE5NTA1''@;'; + put 'put ''OSksYVs0NzE0NV09MHxaMihsLDEsMTQxMDQ4LDE5NTA1OSksWjIobCwyLDEwMjYyMywxOTUwNTkpLDE2JihwPTB8ZmVbMTEzKygwfGFbU3Q+PjJdKT4+MF0pJiYoWjIobCwxLDEwMjYzMywxOTUwNTkpLHA9MHxmZVsxMTMrKDB8YVtTdD4+Ml0pPj4wXSksMSZwJiYoWjIobCwyLDEwMjYzNywx''@;'; + put 'put ''OTUwNTkpLHA9MHxmZVsxMTMrKDB8YVtTdD4+Ml0pPj4wXSksMzImcCYmKFoyKGwsMiwxMDI2MzMsMTk1MDU5KSxwPTB8ZmVbMTEzKygwfGFbU3Q+PjJdKT4+MF0pLDImcCYmKFoyKGwsMiwxMDI2NDAsMTk1MDU5KSxwPTB8ZmVbMTEzKygwfGFbU3Q+PjJdKT4+MF0pLDQmcCYmKFoyKGwsMiwx''@;'; + put 'put ''MDI2NDgsMTk1MDU5KSxwPTB8ZmVbMTEzKygwfGFbU3Q+PjJdKT4+MF0pLDgmcD8oT2U9MHxaMihsLDAsMTAyNjM3LDE5NTA1OSksYmU9MHxaMihsLDAsMTAyNjU2LDE5NTA1OSksZ2U9MHxaMihsLDAsMTAyNjYzLDE5NTA1OSkpOihnZT0wLGJlPTAsT2U9MCksUmU9MHxaMihsLDAsMTAyNjcx''@;'; + put 'put ''LDE5NTA1OSksSGU9b3QrNHwwLFZlPW90Kzh8MCxwZT0wLHA9MCxMZT0wfER0KGwpO0xlOyl7aWYoaz0rX1sxNisoQT0wfGFbKEs9TGUrMTZ8MCk+PjJdKT4+M10sbT0hMCxxZSl7Zm9yKHc9bT8rX1tBKzI0Pj4zXTorX1syMzMwMV0tK19bQSsyND4+M10sRD03MiorX1sxNisoMHxhW0ErMTMy''@;'; + put 'put ''Pj4yXSk+PjNdLF9ba3Q+PjNdPWssX1trdCs4Pj4zXT13LF9ba3QrMTY+PjNdPUQsb28oV2UsMTAyNjc0LGt0KSx1byhvdCxXZSksbT0zOyEoKDB8bSk+PSgwfGhyWzE3OCsoMHxhW1N0Pj4yXSk+PjFdKSk7KV9bU24+PjNdPTcyKitfWygwfGFbMTMyKygwfGFbSz4+Ml0pPj4yXSkrKG08PDMp''@;'; + put 'put ''Pj4zXSxvbyhXZSwxMDI2ODksU24pLHVvKG90LFdlKSxtPW0rMXwwOyhtPTB8YVtIZT4+Ml0pPj4+MD49KDB8YVtWZT4+Ml0pPj4+MCYmKFEwKG90LDEpLG09MHxhW0hlPj4yXSksZmVbbT4+MF09MCxhW0hlPj4yXT1HPTB8YVtvdD4+Ml0sa2MoTGUsMTAyNjIzLEcpLEc9TGV9ZWxzZSB3PW0/''@;'; + put 'put ''K19bQSsyND4+M106K19bMjMzMDFdLStfW0ErMjQ+PjNdLF9bSnI+PjNdPWssX1tKcis4Pj4zXT13LG9vKFdlLDEwMjY5NSxKciksa2MoTGUsMTAyNjIzLFdlKSxHPUxlO2lmKF9bc3Q+PjNdPS4wMTM4ODg4ODg4ODg4ODg4ODgqK19bODArKDB8YVtLPj4yXSk+PjNdLG9vKFdlLDEwMjYxOCxz''@;'; + put 'put ''dCksVmwoRywwfGFbNDcxNDVdLFdlKSxfW0V0Pj4zXT0uMDEzODg4ODg4ODg4ODg4ODg4KigrX1s5NisobT0wfGFbSz4+Ml0pPj4zXSsgK19bbSs4OD4+M10pLG9vKFdlLDEwMjYxOCxFdCksVmwoRywwfGFbNDcxNDZdLFdlKSwwIT0oMHwoQT0wfGFbMTA4KyhtPTB8YVtLPj4yXSk+PjJdKSkm''@;'; + put 'put ''JjAhPSgwfGZlW0ErODE+PjBdKSYmKEQ9K19bQSs2ND4+M10sX1tadD4+M109K19bQSs1Nj4+M10sX1tadCs4Pj4zXT1ELG9vKFdlLDEwMjY5NSxadCksa2MoRywxMDI2MzMsV2UpLG09MHxhW0s+PjJdKSwwfFppKDB8YVthW20rOD4+Ml0+PjJdLDEwNjIyMCkpe2lmKDB8YVs0NzE3MF0mJigw''@;'; + put 'put ''fEhhZShMZSkpPDwyND4+MjQpe2ZvcigoMHwobT0wfGFbKFI9OCsoQT0wfGFbMTIrKDB8YVtLPj4yXSk+PjJdKXwwKT4+Ml0pKTwzJiYobT0oMHwobT0obT0wfExpKEcsMTAyNzA1KSk/MHxyMyhtKTo4KSk8Mz84Om0pLE09QSs0NHwwLEQ9MS8rKDB8bSksYj0wOyEoKDB8Yik+PSgwfG0pKTsp''@;'; + put 'put ''KDB8Yik+MCYmKChBPTB8YVtIZT4+Ml0pPj4+MD49KDB8YVtWZT4+Ml0pPj4+MCYmKFEwKG90LDEpLEE9MHxhW0hlPj4yXSksYVtIZT4+Ml09QSsxLGZlW0E+PjBdPTMyKSwoMHxhW1I+PjJdKT4yPyh3PS4wMTM4ODg4ODg4ODg4ODg4ODgqK19bKEE9MHxhW00+PjJdKSsoYjw8NCkrOD4+M10s''@;'; + put 'put ''X1tjdD4+M109LjAxMzg4ODg4ODg4ODg4ODg4OCorX1tBKyhiPDw0KT4+M10sX1tjdCs4Pj4zXT13LG9vKFdlLDEwMjcxOCxjdCkpOihrPS41KitfWzMyKyhBPTB8YVtLPj4yXSk+PjNdKitoYSgrKHc9RCorKDB8YikqNi4yODMxODUzMDcxNzk1ODYpKSx3PS41KitfW0ErNDA+PjNdKitEYSgr''@;'; + put 'put ''dyksX1tidD4+M109ayxfW2J0Kzg+PjNdPXcsb28oV2UsMTAyNzE4LGJ0KSksdW8ob3QsV2UpLGI9YisxfDA7QT0wfGFbNDcxNzBdLChtPTB8YVtIZT4+Ml0pPj4+MD49KDB8YVtWZT4+Ml0pPj4+MCYmKFEwKG90LDEpLG09MHxhW0hlPj4yXSksZmVbbT4+MF09MCxhW0hlPj4yXT1LPTB8YVtv''@;'; + put 'put ''dD4+Ml0sVmwoRyxBLEspfX1lbHNlIGtRKExlLDB8YVttKzEyPj4yXSxvdCksTDYob3QpLChtPTB8YVtIZT4+Ml0pPj4+MD49KDB8YVtWZT4+Ml0pPj4+MCYmKFEwKG90LDEpLG09MHxhW0hlPj4yXSksZmVbbT4+MF09MCxhW0hlPj4yXT1LPTB8YVtvdD4+Ml0sa2MoRywxMDI2MjcsSyk7ZTpk''@;'; + put 'put ''b3tpZigoMHxhWzQ3MTM4XSk+MClmb3IoSz0wfHcwKGwsTGUpLG09cGU7Oyl7aWYoIUspYnJlYWsgZTtBPTB8YVsoRz1LKzE2fDApPj4yXTtkb3tpZig2IT0oMHxmZVtBKzExMj4+MF0pJiYwIT0oMHwobnQ9MHxhW0ErOD4+Ml0pKSl7Zm9yKFI9MCxBPW50OyEoKDB8Uik+PSgwfGFbQSs0Pj4y''@;'; + put 'put ''XSkpOyl7Zm9yKCgwfFIpPjAmJigoQT0wfGFbSGU+PjJdKT4+PjA+PSgwfGFbVmU+PjJdKT4+PjAmJihRMChvdCwxKSxBPTB8YVtIZT4+Ml0pLGFbSGU+PjJdPUErMSxmZVtBPj4wXT01OSxBPTB8YVs4KygwfGFbRz4+Ml0pPj4yXSksMHxhWyhBPTB8YVtBPj4yXSkrKDQ4KlJ8MCkrOD4+Ml0m''@;'; + put 'put ''Jih3PStfW0ErKDQ4KlJ8MCkrMjQ+PjNdLF9bYW4+PjNdPStfW0ErKDQ4KlJ8MCkrMTY+PjNdLF9bYW4rOD4+M109dyxvbyhXZSwxMDI3MjgsYW4pLHVvKG90LFdlKSxwPTEsQT0wfGFbYVs4KygwfGFbRz4+Ml0pPj4yXT4+Ml0pLDB8YVtBKyg0OCpSfDApKzEyPj4yXSYmKHc9K19bQSsoNDgq''@;'; + put 'put ''UnwwKSs0MD4+M10sX1tIbj4+M109K19bQSsoNDgqUnwwKSszMj4+M10sX1tIbis4Pj4zXT13LG9vKFdlLDEwMjc0MSxIbiksdW8ob3QsV2UpLG09MSksTT0wOyEoKDB8TSk+PSgwfGFbKGI9MHxhWyhBPTB8YVs4KygwfGFbRz4+Ml0pPj4yXSk+PjJdKSsoNDgqUnwwKSs0Pj4yXSkpOykoMHxN''@;'; + put 'put ''KT4wPygoQT0wfGFbSGU+PjJdKT4+PjA+PSgwfGFbVmU+PjJdKT4+PjAmJihRMChvdCwxKSxBPTB8YVtIZT4+Ml0pLGFbSGU+PjJdPUErMSxmZVtBPj4wXT0zMixBPTB8YVthWzgrKDB8YVtHPj4yXSk+PjJdPj4yXSk6QT1iLEQ9K19bKHBlPTB8YVtBKyg0OCpSfDApPj4yXSkrKE08PDQpKzg+''@;'; + put 'put ''PjNdLF9bdXI+PjNdPStfW3BlKyhNPDw0KT4+M10sX1t1cis4Pj4zXT1ELG9vKFdlLDEwMjY5NSx1ciksdW8ob3QsV2UpLE09TSsxfDA7Uj1SKzF8MH0oQT0wfGFbSGU+PjJdKT4+PjA+PSgwfGFbVmU+PjJdKT4+PjAmJihRMChvdCwxKSxBPTB8YVtIZT4+Ml0pLGZlW0E+PjBdPTAsYVtIZT4+''@;'; + put 'put ''Ml09QT0wfGFbb3Q+PjJdLGtjKEssMTAyNjIzLEEpLChiPTB8YVs5NisoQT0wfGFbRz4+Ml0pPj4yXSkmJihEPStfW2IrNjQ+PjNdLF9bSHI+PjNdPStfW2IrNTY+PjNdLF9bSHIrOD4+M109RCxvbyhXZSwxMDI2OTUsSHIpLGtjKEssMTAyNjM3LFdlKSxBPTB8YVtHPj4yXSksYj0wfGFbQSsx''@;'; + put 'put ''MDg+PjJdO2Rve2lmKGIpe2lmKCEoMHxmZVtiKzgxPj4wXSkpYnJlYWs7RD0rX1tiKzY0Pj4zXSxfW0VyPj4zXT0rX1tiKzU2Pj4zXSxfW0VyKzg+PjNdPUQsb28oV2UsMTAyNjk1LEVyKSxrYyhLLDEwMjYzMyxXZSksQT0wfGFbRz4+Ml19fXdoaWxlKDApO2lmKChiPTB8YVtBKzEwMD4+Ml0p''@;'; + put 'put ''JiYoRD0rX1tiKzY0Pj4zXSxfW2ZyPj4zXT0rX1tiKzU2Pj4zXSxfW2ZyKzg+PjNdPUQsb28oV2UsMTAyNjk1LGZyKSxrYyhLLDEwMjY0MCxXZSksQT0wfGFbRz4+Ml0pLCEoQT0wfGFbQSsxMDQ+PjJdKSlicmVhaztEPStfW0ErNjQ+PjNdLF9bRHI+PjNdPStfW0ErNTY+PjNdLF9bRHIrOD4+''@;'; + put 'put ''M109RCxvbyhXZSwxMDI2OTUsRHIpLGtjKEssMTAyNjQ4LFdlKX19d2hpbGUoMCk7Sz0wfFMwKGwsSyl9ZWxzZSBtPXBlfXdoaWxlKDApO3BlPW0sTGU9MHx6dChsLExlKX1TUShsLFJlLE9lLGJlLGdlKSxDMihvdCksMSZpdFsxMzYrKDB8YVtTdD4+Ml0pPj4xXSYmYkoobCksYVtjPj4yXT1w''@;'; + put 'put ''LGFbZj4+Ml09cGUsc2MoMCksbGU9THJ9ZnVuY3Rpb24ga1EobCxjLGYpe2x8PTAsZnw9MDt2YXIgYixrLE0sRCxwPTAsbT0wLEE9MCx3PTAsUj0wO2ZvcihEPWxlLGxlPWxlKzEwNTZ8MCxrPUQsYj1EKzMyfDAsMHxhWyhNPTQ4KyhjfD0wKXwwKT4+Ml18fChtPShBPStfWzI0KyhwPTB8YVts''@;'; + put 'put ''KzE2Pj4yXSk+PjNdKSsgK19bYysyND4+M10sQSs9K19bYys0MD4+M10sUj0odz0rX1twKzE2Pj4zXSkrICtfW2MrMzI+PjNdLF9baz4+M109dysgK19bYysxNj4+M10sX1trKzg+PjNdPW0sX1trKzE2Pj4zXT1SLF9baysyND4+M109QSxvbyhiLDEwMjc3OSxrKSx1byhmLGIpKSxjPWMrNTZ8''@;'; + put 'put ''MCxwPTA7ISgoMHxwKT49KDB8YVtNPj4yXSkpOylrUShsLDB8YVsoMHxhW2M+PjJdKSsocDw8Mik+PjJdLGYpLHA9cCsxfDA7bGU9RH1mdW5jdGlvbiBTUShsLGMsZixwLG0pe2N8PTAsZnw9MCxwfD0wLG18PTA7dmFyIGIsayxNLEQsUixHLEsscGUsQT0wLHc9MCxnZT0wO2ZvcihwZT1sZSxs''@;'; + put 'put ''ZT1sZSsxMDg4fDAsRD1wZSs1NnwwLEc9cGUrNDh8MCxSPXBlKzMyfDAsTT1wZSs2NHwwLGI9K19bMjQrKEE9MHxhWyhLPTE2KyhsfD0wKXwwKT4+Ml0pPj4zXSxrPStfW0ErNDA+PjNdLGdlPStfW0ErMzI+PjNdLF9bKHc9cGUpPj4zXT0rX1tBKzE2Pj4zXSxfW3crOD4+M109YixfW3crMTY+''@;'; + put 'put ''PjNdPWdlLF9bdysyND4+M109ayxvbyhNLDEwMjc1NCx3KSxWbChsLGMsTSksMCE9KDB8KEE9MHxhWzEyKygwfGFbSz4+Ml0pPj4yXSkpJiYwIT0oMHxmZVthW0E+PjJdPj4wXSkmJihnZT0rX1tBKzY0Pj4zXSxfW1I+PjNdPStfW0ErNTY+PjNdLF9bUis4Pj4zXT1nZSxvbyhNLDEwMjY5NSxS''@;'; + put 'put ''KSxWbChsLGYsTSksZ2U9K19bMzIrKEE9MHxhWzEyKygwfGFbSz4+Ml0pPj4yXSk+PjNdLF9bRz4+M109LjAxMzg4ODg4ODg4ODg4ODg4OCorX1tBKzI0Pj4zXSxvbyhNLDEwMjc3NCxHKSxWbChsLHAsTSksX1tEPj4zXT0uMDEzODg4ODg4ODg4ODg4ODg4KmdlLG9vKE0sMTAyNzc0LEQpLFZs''@;'; + put 'put ''KGwsbSxNKSksQT0xOyEoKDB8QSk+KDB8YVsxODArKHc9MHxhW0s+PjJdKT4+Ml0pKTspU1EoMHxhWygwfGFbdysxODQ+PjJdKSsoQTw8Mik+PjJdLGMsZixwLG0pLEE9QSsxfDA7bGU9cGV9ZnVuY3Rpb24gRTcobCl7dmFyIGM7Yz1sZSxsZT1sZSsxNnwwLENRKGx8PTAsYyxjKzR8MCksbGU9''@;'; + put 'put ''Y31mdW5jdGlvbiB4Nygpe3JldHVybiAwfGlzKDIwNzQwLDB8YVs0NTgxXSl9ZnVuY3Rpb24gQXkobCl7TmwobHw9MCl9ZnVuY3Rpb24gTVEobCxjKXt2YXIgZixwO2x8PTAsZj1sZSxsZT1sZSsxNnwwLGFbKHA9Zik+PjJdPWFbKGN8PTApPj4yXSxhW3ArND4+Ml09YVtjKzQ+PjJdLGM9MHxF''@;'; + put 'put ''UShwKSwoMHxtaVs2MyZhW2w+PjJdXShsLGMsMSkpIT0oMHxjKSYmRnQoYyksbGU9Zn1mdW5jdGlvbiBFUShsKXt2YXIgYyxmLHA7cmV0dXJuIGx8PTAsYz0wfHZyKDE2KSxmPTB8YVsocD1sKSs0Pj4yXSxhWyhsPWMrOHwwKT4+Ml09YVtwPj4yXSxhW2wrND4+Ml09ZiwwfGN9ZnVuY3Rpb24g''@;'; + put 'put ''ZTQobCxjLGYpe3ZhciBwLG0sQTtsfD0wLGZ8PTAscD1sZSxsZT1sZSsxNnwwLG09cCs4fDAsYVsoQT1wKT4+Ml09Y3w9MCxhW0ErND4+Ml09ZixhW20+PjJdPWFbQT4+Ml0sYVttKzQ+PjJdPWFbQSs0Pj4yXSxjPTB8RVEobSksKDB8bWlbNjMmYVtsPj4yXV0obCxjLDEpKSE9KDB8YykmJkZ0''@;'; + put 'put ''KGMpLGxlPXB9ZnVuY3Rpb24gZGFlKGwsYyl7dmFyIGYscCxtLEE7cmV0dXJuIGx8PTAsZj1sZSxsZT1sZSsxNnwwLG09MHxhWzQrKEE9Y3w9MCk+PjJdLGFbKGM9KHA9ZikrOHwwKT4+Ml09YVtBPj4yXSxhW2MrND4+Ml09bSxjPTAhPSgwfG1pWzYzJmFbbD4+Ml1dKGwscCw0KSkmMSxsZT1m''@;'; + put 'put ''LDB8Y31mdW5jdGlvbiB4UShsLGMsZil7dmFyIHAsbTtyZXR1cm4gbHw9MCxmfD0wLHA9bGUsbGU9bGUrMTZ8MCxhWyhtPXApKzg+PjJdPWN8PTAsYVttKzEyPj4yXT1mLGY9MCE9KDB8bWlbNjMmYVtsPj4yXV0obCxtLDQpKSYxLGxlPXAsMHxmfWZ1bmN0aW9uIFRRKGwpe3JldHVybiAwfHB1''@;'; + put 'put ''KGx8PTApfWZ1bmN0aW9uIElRKGwpe3ZhciBmLGM9MCxwPTAsbT0wLEE9MDtmb3IoYz1mPTB8dnIoKDB8cHUobHw9MCkpPDwzKSxsPTB8czAobCk7bDspbT0wfGFbNCsoQT1sKzh8MCk+PjJdLGFbKHA9Yyk+PjJdPWFbQT4+Ml0sYVtwKzQ+PjJdPW0sYz1jKzh8MCxsPTB8YVtsPj4yXTtyZXR1''@;'; + put 'put ''cm4gMHxmfWZ1bmN0aW9uIHZhZShsKXttaVs2MyZhWyhsfD0wKT4+Ml1dKGwsMCw2NCl9ZnVuY3Rpb24gRFEobCxjKXt2YXIgcCxtLEEsdyxiLGssTSxSLEsscGUsZ2UsYmUsZj0wLEQ9MCxHPTA7Zm9yKGJlPWxlLGxlPWxlKzE2MHwwLEs9YmUrMTQ0fDAsZj1iZSs0OHwwLGI9YmUrMTI4fDAs''@;'; + put 'put ''az1iZSsxMTJ8MCxNPWJlKzk2fDAsRD1iZSs4MHwwLFI9YmUrMzJ8MCxHPWJlKzE2fDAscGU9YmUscD0rX1sxNisobD0wfGFbKGdlPTE2KyhsfD0wKXwwKT4+Ml0pPj4zXSxtPStfW2wrMjQ+PjNdLEE9K19bbCszMj4+M10sdz0rX1tsKzQwPj4zXSwoKGN8PTApLTF8MCk+Pj4wPDI/KEo2KGIs''@;'; + put 'put ''cCx3KSxhW0s+PjJdPWFbYj4+Ml0sYVtLKzQ+PjJdPWFbYis0Pj4yXSxhW0srOD4+Ml09YVtiKzg+PjJdLGFbSysxMj4+Ml09YVtiKzEyPj4yXSxpaChmLEspLEc9ZisxNnwwLEo2KGssQSxtKSxhW0s+PjJdPWFbaz4+Ml0sYVtLKzQ+PjJdPWFbays0Pj4yXSxhW0srOD4+Ml09YVtrKzg+PjJd''@;'; + put 'put ''LGFbSysxMj4+Ml09YVtrKzEyPj4yXSxpaChNLEspLGFbRz4+Ml09YVtNPj4yXSxhW0crND4+Ml09YVtNKzQ+PjJdLGFbRys4Pj4yXT1hW00rOD4+Ml0sYVtHKzEyPj4yXT1hW00rMTI+PjJdKTooSjYoRCxwLG0pLGFbSz4+Ml09YVtEPj4yXSxhW0srND4+Ml09YVtEKzQ+PjJdLGFbSys4Pj4y''@;'; + put 'put ''XT1hW0QrOD4+Ml0sYVtLKzEyPj4yXT1hW0QrMTI+PjJdLGloKGYsSyksRD1mKzE2fDAsSjYoUixBLHcpLGFbSz4+Ml09YVtSPj4yXSxhW0srND4+Ml09YVtSKzQ+PjJdLGFbSys4Pj4yXT1hW1IrOD4+Ml0sYVtLKzEyPj4yXT1hW1IrMTI+PjJdLGloKEcsSyksYVtEPj4yXT1hW0c+PjJdLGFb''@;'; + put 'put ''RCs0Pj4yXT1hW0crND4+Ml0sYVtEKzg+PjJdPWFbRys4Pj4yXSxhW0QrMTI+PjJdPWFbRysxMj4+Ml0pLGFbKGw9MTYrKDB8YVtnZT4+Ml0pfDApPj4yXT1hW2Y+PjJdLGFbbCs0Pj4yXT1hW2YrND4+Ml0sYVtsKzg+PjJdPWFbZis4Pj4yXSxhW2wrMTI+PjJdPWFbZisxMj4+Ml0sYVtsKzE2''@;'; + put 'put ''Pj4yXT1hW2YrMTY+PjJdLGFbbCsyMD4+Ml09YVtmKzIwPj4yXSxhW2wrMjQ+PjJdPWFbZisyND4+Ml0sYVtsKzI4Pj4yXT1hW2YrMjg+PjJdLChsPTB8YVsxMisoMHxhW2dlPj4yXSk+PjJdKSYmKGFbSz4+Ml09YVsobD1sKzU2fDApPj4yXSxhW0srND4+Ml09YVtsKzQ+PjJdLGFbSys4Pj4y''@;'; + put 'put ''XT1hW2wrOD4+Ml0sYVtLKzEyPj4yXT1hW2wrMTI+PjJdLGloKHBlLEspLGFbbD4+Ml09YVtwZT4+Ml0sYVtsKzQ+PjJdPWFbcGUrND4+Ml0sYVtsKzg+PjJdPWFbcGUrOD4+Ml0sYVtsKzEyPj4yXT1hW3BlKzEyPj4yXSksbD0xOyEoKDB8bCk+KDB8YVsxODArKGY9MHxhW2dlPj4yXSk+PjJd''@;'; + put 'put ''KSk7KURRKDB8YVsoMHxhW2YrMTg0Pj4yXSkrKGw8PDIpPj4yXSxjKSxsPWwrMXwwO2xlPWJlfWZ1bmN0aW9uIEo2KGwsYyxmKXtmPStmLF9bKGx8PTApPj4zXT1jPStjLF9bbCs4Pj4zXT1mfWZ1bmN0aW9uIGloKGwsYyl7bHw9MDt2YXIgZixtLEEscD0wO2Y9bGUsbGU9bGUrMzJ8MCxwPWYs''@;'; + put 'put ''bT05MCooMHxhWzQ3MjY1XSl8MCxhWyhBPWYrMTZ8MCk+PjJdPWFbKGN8PTApPj4yXSxhW0ErND4+Ml09YVtjKzQ+PjJdLGFbQSs4Pj4yXT1hW2MrOD4+Ml0sYVtBKzEyPj4yXT1hW2MrMTI+PjJdLFU2KHAsQSxtKSxhW2M+PjJdPWFbcD4+Ml0sYVtjKzQ+PjJdPWFbcCs0Pj4yXSxhW2MrOD4+''@;'; + put 'put ''Ml09YVtwKzg+PjJdLGFbYysxMj4+Ml09YVtwKzEyPj4yXSxfW2M+PjNdPStfW2M+PjNdLStfWzIzMzAzXSxfWyhwPWMrOHwwKT4+M109K19bcD4+M10tK19bMjMzMDRdLGFbbD4+Ml09YVtjPj4yXSxhW2wrND4+Ml09YVtjKzQ+PjJdLGFbbCs4Pj4yXT1hW2MrOD4+Ml0sYVtsKzEyPj4yXT1h''@;'; + put 'put ''W2MrMTI+PjJdLGxlPWZ9ZnVuY3Rpb24gWDYobCxjKXtsfD0wLGN8PTA7dmFyIEQsUixLLHBlLGdlLExlLGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRz0wO0xlPWxlLGxlPWxlKzExNjh8MCxwZT1MZSsxNDR8MCxEPUxlKzMyfDAsUj1MZSsxNnwwLEc9TGUsYVsoZ2U9TGUrNDh8''@;'; + put 'put ''MCk+PjJdPTAsYVtnZSs0Pj4yXT0wLGFbZ2UrOD4+Ml09MCxhW2dlKzEyPj4yXT0wLGFbNDcyNjVdPTMmKGs9MHxhWzExNisoMHxhWyhLPWwrMTZ8MCk+PjJdKT4+Ml0pLGZlWzE5NDk1N109ayY9MSxrPDwyND4+MjQ/TFEobCk6T1EobCksZnVuY3Rpb24geWFlKGwpe3ZhciBELE9lLExlLFJl''@;'; + put 'put ''LEhlLFZlLHFlLG50LFdlLG90LFN0LGt0LHN0LEV0LFp0LGN0LGJ0LGFuLHVyLEVyLGZyLGM9MCxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLFI9MCxHPTAsSz0wLHBlPTAsZ2U9MCxiZT0wLFNuPTAsSG49MDtpZihmcj1sZSxsZT1sZSs1NDR8MCxidD1mcis1MDR8MCxFcj1mcis0''@;'; + put 'put ''MTZ8MCxjdD1mciszNTJ8MCxadD1mciszMTJ8MCxFdD1mcisyODh8MCxzdD1mcisyNDh8MCxhbj1mcisyMDB8MCxxZT1mcisxNTJ8MCxIbj1mcis5NnwwLEQ9ZnIrNDg4fDAsbnQ9ZnIrNDU2fDAsV2U9ZnIrNDI0fDAsb3Q9ZnIrMzg0fDAsU3Q9ZnIrMzYwfDAsa3Q9ZnIrMzIwfDAsT2U9ZnIr''@;'; + put 'put ''Mjk2fDAsTGU9ZnIrMjU2fDAsUmU9ZnIrMjMyfDAsSGU9ZnIrMTY4fDAsVmU9ZnIrMTM2fDAsYz1mcis1NnwwLFNuPWZyKzE2fDAsdXI9ZnIsZj0xNCZpdFsxMzYrKGdlPTB8YVsoTT0xNisobHw9MCl8MCk+PjJdKT4+MV0sISgwPT0oNTQmKGdlPTB8WHRbZ2UrMTEzPj4wXSl8MCkmJjA9PSgx''@;'; + put 'put ''JmdlfDApfDAhPSgwfGFbNDcxMzldKSkpe2ZvcihnZT1mPDwxNj4+MTY9PTAsaz0wfER0KGwpLHA9MCxBPTAsbT0wO2s7KXtmPTB8YVsxMDgrKDB8YVtrKzE2Pj4yXSk+PjJdO2Rve2lmKGYpe2lmKDB8ZmVbZis4MT4+MF0pe3A9cCsxfDA7YnJlYWt9bT1tKzF8MDticmVha319d2hpbGUoMCk7''@;'; + put 'put ''Zm9yKGI9MHx3MChsLGspLGY9QTtiOyl7QT0wfGFbMTA4Kyh3PTB8YVtiKzE2Pj4yXSk+PjJdO2Rve2lmKEEpe2lmKDB8ZmVbQSs4MT4+MF0pe3A9cCsxfDA7YnJlYWt9Z2V8fChmPWYrKDAhPSgwfGFbdys4Pj4yXSkmMSl8MCl9fXdoaWxlKDApO0E9MHxhW3crMTAwPj4yXTtkb3tpZihBKXtp''@;'; + put 'put ''ZigwfGZlW0ErODE+PjBdKXtwPXArMXwwO2JyZWFrfWdlfHwoZj1mKygwIT0oMHxhW3crOD4+Ml0pJjEpfDApfX13aGlsZSgwKTtBPTB8YVt3KzEwND4+Ml07ZG97aWYoQSl7aWYoMHxmZVtBKzgxPj4wXSl7cD1wKzF8MDticmVha31nZXx8KGY9ZisoMCE9KDB8YVt3Kzg+PjJdKSYxKXwwKX19''@;'; + put 'put ''d2hpbGUoMCk7QT0wfGFbdys5Nj4+Ml07ZG97aWYoQSl7aWYoMHxmZVtBKzgxPj4wXSl7cD1wKzF8MDticmVha31nZXx8KGY9ZisoMCE9KDB8YVt3Kzg+PjJdKSYxKXwwKX19d2hpbGUoMCk7Yj0wfFMwKGwsYil9az0wfHp0KGwsayksQT1mfWlmKE09OCZmZVsxMTMrKDB8YVtNPj4yXSk+PjBd''@;'; + put 'put ''PzB8cUgobCk6MCwwfChwZT1BK218MCkpe2ZvcihHPTB8dnIoNDAqKFI9cCtBK00rKDB8R28obCkpfDApfDApLEs9MHx2cig0MCpwZXwwKSxKNihhbiwyMTQ3NDgzNjQ3LDIxNDc0ODM2NDcpLGY9YW4rMTZ8MCxKNihELC0yMTQ3NDgzNjQ3LC0yMTQ3NDgzNjQ3KSxhW2Y+PjJdPWFbRD4+Ml0s''@;'; + put 'put ''YVtmKzQ+PjJdPWFbRCs0Pj4yXSxhW2YrOD4+Ml09YVtEKzg+PjJdLGFbZisxMj4+Ml09YVtEKzEyPj4yXSxmPUssbT1HLGs9MHxEdChsKTtrOyl7YVtidD4+Ml09YVthbj4+Ml0sYVtidCs0Pj4yXT1hW2FuKzQ+PjJdLGFbYnQrOD4+Ml09YVthbis4Pj4yXSxhW2J0KzEyPj4yXT1hW2FuKzEy''@;'; + put 'put ''Pj4yXSxhW2J0KzE2Pj4yXT1hW2FuKzE2Pj4yXSxhW2J0KzIwPj4yXT1hW2FuKzIwPj4yXSxhW2J0KzI0Pj4yXT1hW2FuKzI0Pj4yXSxhW2J0KzI4Pj4yXT1hW2FuKzI4Pj4yXSxfYWUobnQsayxtLGJ0KSxhW2FuPj4yXT1hW250Pj4yXSxhW2FuKzQ+PjJdPWFbbnQrND4+Ml0sYVthbis4Pj4y''@;'; + put 'put ''XT1hW250Kzg+PjJdLGFbYW4rMTI+PjJdPWFbbnQrMTI+PjJdLGFbYW4rMTY+PjJdPWFbbnQrMTY+PjJdLGFbYW4rMjA+PjJdPWFbbnQrMjA+PjJdLGFbYW4rMjQ+PjJdPWFbbnQrMjQ+PjJdLGFbYW4rMjg+PjJdPWFbbnQrMjg+PjJdLHA9MHxhWzEwOCsoMHxhW2srMTY+PjJdKT4+Ml07ZG97''@;'; + put 'put ''aWYocCl7aWYoMHxmZVtwKzgxPj4wXSl7bT1tKzQwfDAsYVtidD4+Ml09YVthbj4+Ml0sYVtidCs0Pj4yXT1hW2FuKzQ+PjJdLGFbYnQrOD4+Ml09YVthbis4Pj4yXSxhW2J0KzEyPj4yXT1hW2FuKzEyPj4yXSxhW2J0KzE2Pj4yXT1hW2FuKzE2Pj4yXSxhW2J0KzIwPj4yXT1hW2FuKzIwPj4y''@;'; + put 'put ''XSxhW2J0KzI0Pj4yXT1hW2FuKzI0Pj4yXSxhW2J0KzI4Pj4yXT1hW2FuKzI4Pj4yXSx3eShXZSxwLG0sYnQpLGFbYW4+PjJdPWFbV2U+PjJdLGFbYW4rND4+Ml09YVtXZSs0Pj4yXSxhW2FuKzg+PjJdPWFbV2UrOD4+Ml0sYVthbisxMj4+Ml09YVtXZSsxMj4+Ml0sYVthbisxNj4+Ml09YVtX''@;'; + put 'put ''ZSsxNj4+Ml0sYVthbisyMD4+Ml09YVtXZSsyMD4+Ml0sYVthbisyND4+Ml09YVtXZSsyND4+Ml0sYVthbisyOD4+Ml09YVtXZSsyOD4+Ml07YnJlYWt9YVtidD4+Ml09YVtxZT4+Ml0sYVtidCs0Pj4yXT1hW3FlKzQ+PjJdLGFbYnQrOD4+Ml09YVtxZSs4Pj4yXSxhW2J0KzEyPj4yXT1hW3Fl''@;'; + put 'put ''KzEyPj4yXSxkayhwLG0sZiwwLGJ0KSxmPWYrNDB8MDticmVha319d2hpbGUoMCk7Zm9yKGI9MHx3MChsLGspLG09bSs0MHwwO2I7KXtBPTB8YVs5NisocD0wfGFbKHc9YisxNnwwKT4+Ml0pPj4yXTtlOmRve2lmKEEpe2Rve2lmKCEoMHxmZVtBKzgxPj4wXSkpe2lmKCFnZSYmMHxhW3ArOD4+''@;'; + put 'put ''Ml0pe3VKKFN0LGwsYiksYVtidD4+Ml09YVtTdD4+Ml0sYVtidCs0Pj4yXT1hW1N0KzQ+PjJdLGFbYnQrOD4+Ml09YVtTdCs4Pj4yXSxhW2J0KzEyPj4yXT1hW1N0KzEyPj4yXSxkayhBLG0sZiwxLGJ0KSxmPWYrNDB8MDticmVha31hW3N0Pj4yXT1hW0E+PjJdLCRyKDAsMTAzODI3LHN0KTti''@;'; + put 'put ''cmVhayBlfWFbYnQ+PjJdPWFbYW4+PjJdLGFbYnQrND4+Ml09YVthbis0Pj4yXSxhW2J0Kzg+PjJdPWFbYW4rOD4+Ml0sYVtidCsxMj4+Ml09YVthbisxMj4+Ml0sYVtidCsxNj4+Ml09YVthbisxNj4+Ml0sYVtidCsyMD4+Ml09YVthbisyMD4+Ml0sYVtidCsyND4+Ml09YVthbisyND4+Ml0s''@;'; + put 'put ''YVtidCsyOD4+Ml09YVthbisyOD4+Ml0sd3kob3QsQSxtLGJ0KSxhW2FuPj4yXT1hW290Pj4yXSxhW2FuKzQ+PjJdPWFbb3QrND4+Ml0sYVthbis4Pj4yXT1hW290Kzg+PjJdLGFbYW4rMTI+PjJdPWFbb3QrMTI+PjJdLGFbYW4rMTY+PjJdPWFbb3QrMTY+PjJdLGFbYW4rMjA+PjJdPWFbb3Qr''@;'; + put 'put ''MjA+PjJdLGFbYW4rMjQ+PjJdPWFbb3QrMjQ+PjJdLGFbYW4rMjg+PjJdPWFbb3QrMjg+PjJdfXdoaWxlKDApO209bSs0MHwwLHA9MHxhW3c+PjJdLGJlPTUyfWVsc2UgYmU9NTJ9d2hpbGUoMCk7ZTpkb3tpZig1Mj09KDB8YmUpKXtpZihiZT0wLEE9MHxhW3ArMTA0Pj4yXSl7ZG97aWYoISgw''@;'; + put 'put ''fGZlW0ErODE+PjBdKSl7aWYoIWdlJiYwfGFbcCs4Pj4yXSl7QlEoT2UsYiksYVtidD4+Ml09YVtPZT4+Ml0sYVtidCs0Pj4yXT1hW09lKzQ+PjJdLGFbYnQrOD4+Ml09YVtPZSs4Pj4yXSxhW2J0KzEyPj4yXT1hW09lKzEyPj4yXSxkayhBLG0sZiwxLGJ0KSxmPWYrNDB8MDticmVha31hW0V0''@;'; + put 'put ''Pj4yXT1hW0E+PjJdLCRyKDAsMTAzODYyLEV0KTticmVhayBlfWFbYnQ+PjJdPWFbYW4+PjJdLGFbYnQrND4+Ml09YVthbis0Pj4yXSxhW2J0Kzg+PjJdPWFbYW4rOD4+Ml0sYVtidCsxMj4+Ml09YVthbisxMj4+Ml0sYVtidCsxNj4+Ml09YVthbisxNj4+Ml0sYVtidCsyMD4+Ml09YVthbisy''@;'; + put 'put ''MD4+Ml0sYVtidCsyND4+Ml09YVthbisyND4+Ml0sYVtidCsyOD4+Ml09YVthbisyOD4+Ml0sd3koa3QsQSxtLGJ0KSxhW2FuPj4yXT1hW2t0Pj4yXSxhW2FuKzQ+PjJdPWFba3QrND4+Ml0sYVthbis4Pj4yXT1hW2t0Kzg+PjJdLGFbYW4rMTI+PjJdPWFba3QrMTI+PjJdLGFbYW4rMTY+PjJd''@;'; + put 'put ''PWFba3QrMTY+PjJdLGFbYW4rMjA+PjJdPWFba3QrMjA+PjJdLGFbYW4rMjQ+PjJdPWFba3QrMjQ+PjJdLGFbYW4rMjg+PjJdPWFba3QrMjg+PjJdfXdoaWxlKDApO209bSs0MHwwLHA9MHxhW3c+PjJdfWlmKEE9MHxhW3ArMTAwPj4yXSl7ZG97aWYoISgwfGZlW0ErODE+PjBdKSl7aWYoIWdl''@;'; + put 'put ''JiYwfGFbcCs4Pj4yXSl7Q2FlKFJlLGIpLGFbYnQ+PjJdPWFbUmU+PjJdLGFbYnQrND4+Ml09YVtSZSs0Pj4yXSxhW2J0Kzg+PjJdPWFbUmUrOD4+Ml0sYVtidCsxMj4+Ml09YVtSZSsxMj4+Ml0sZGsoQSxtLGYsMSxidCksZj1mKzQwfDA7YnJlYWt9YVtadD4+Ml09YVtBPj4yXSwkcigwLDEw''@;'; + put 'put ''MzkwMixadCk7YnJlYWsgZX1hW2J0Pj4yXT1hW2FuPj4yXSxhW2J0KzQ+PjJdPWFbYW4rND4+Ml0sYVtidCs4Pj4yXT1hW2FuKzg+PjJdLGFbYnQrMTI+PjJdPWFbYW4rMTI+PjJdLGFbYnQrMTY+PjJdPWFbYW4rMTY+PjJdLGFbYnQrMjA+PjJdPWFbYW4rMjA+PjJdLGFbYnQrMjQ+PjJdPWFb''@;'; + put 'put ''YW4rMjQ+PjJdLGFbYnQrMjg+PjJdPWFbYW4rMjg+PjJdLHd5KExlLEEsbSxidCksYVthbj4+Ml09YVtMZT4+Ml0sYVthbis0Pj4yXT1hW0xlKzQ+PjJdLGFbYW4rOD4+Ml09YVtMZSs4Pj4yXSxhW2FuKzEyPj4yXT1hW0xlKzEyPj4yXSxhW2FuKzE2Pj4yXT1hW0xlKzE2Pj4yXSxhW2FuKzIw''@;'; + put 'put ''Pj4yXT1hW0xlKzIwPj4yXSxhW2FuKzI0Pj4yXT1hW0xlKzI0Pj4yXSxhW2FuKzI4Pj4yXT1hW0xlKzI4Pj4yXX13aGlsZSgwKTttPW0rNDB8MCxwPTB8YVt3Pj4yXX1pZihBPTB8YVtwKzEwOD4+Ml0pe2Rve2lmKCEoMHxmZVtBKzgxPj4wXSkpe2lmKCFnZSYmMHxhW3ArOD4+Ml0pe3VKKFZl''@;'; + put 'put ''LGwsYiksYVtidD4+Ml09YVtWZT4+Ml0sYVtidCs0Pj4yXT1hW1ZlKzQ+PjJdLGFbYnQrOD4+Ml09YVtWZSs4Pj4yXSxhW2J0KzEyPj4yXT1hW1ZlKzEyPj4yXSxkayhBLG0sZiwxLGJ0KSxmPWYrNDB8MDticmVha31hW2N0Pj4yXT1hW0E+PjJdLCRyKDAsMTAzOTQyLGN0KTticmVhayBlfWFb''@;'; + put 'put ''YnQ+PjJdPWFbYW4+PjJdLGFbYnQrND4+Ml09YVthbis0Pj4yXSxhW2J0Kzg+PjJdPWFbYW4rOD4+Ml0sYVtidCsxMj4+Ml09YVthbisxMj4+Ml0sYVtidCsxNj4+Ml09YVthbisxNj4+Ml0sYVtidCsyMD4+Ml09YVthbisyMD4+Ml0sYVtidCsyND4+Ml09YVthbisyND4+Ml0sYVtidCsyOD4+''@;'; + put 'put ''Ml09YVthbisyOD4+Ml0sd3koSGUsQSxtLGJ0KSxhW2FuPj4yXT1hW0hlPj4yXSxhW2FuKzQ+PjJdPWFbSGUrND4+Ml0sYVthbis4Pj4yXT1hW0hlKzg+PjJdLGFbYW4rMTI+PjJdPWFbSGUrMTI+PjJdLGFbYW4rMTY+PjJdPWFbSGUrMTY+PjJdLGFbYW4rMjA+PjJdPWFbSGUrMjA+PjJdLGFb''@;'; + put 'put ''YW4rMjQ+PjJdPWFbSGUrMjQ+PjJdLGFbYW4rMjg+PjJdPWFbSGUrMjg+PjJdfXdoaWxlKDApO209bSs0MHwwfX19d2hpbGUoMCk7Yj0wfFMwKGwsYil9az0wfHp0KGwsayl9aWYoMHxNKXthW2M+PjJdPWFbYW4+PjJdLGFbYys0Pj4yXT1hW2FuKzQ+PjJdLGFbYys4Pj4yXT1hW2FuKzg+PjJd''@;'; + put 'put ''LGFbYysxMj4+Ml09YVthbisxMj4+Ml0sYVtjKzE2Pj4yXT1hW2FuKzE2Pj4yXSxhW2MrMjA+PjJdPWFbYW4rMjA+PjJdLGFbYysyND4+Ml09YVthbisyND4+Ml0sYVtjKzI4Pj4yXT1hW2FuKzI4Pj4yXSxhW2MrMzI+PjJdPW0sZj0ocD1idCkrNDB8MDtkb3thW3A+PjJdPWFbYz4+Ml0scD1w''@;'; + put 'put ''KzR8MCxjPWMrNHwwfXdoaWxlKCgwfHApPCgwfGYpKTtwayhTbixsLGJ0KSxhW2FuPj4yXT1hW1NuPj4yXSxhW2FuKzQ+PjJdPWFbU24rND4+Ml0sYVthbis4Pj4yXT1hW1NuKzg+PjJdLGFbYW4rMTI+PjJdPWFbU24rMTI+PjJdLGFbYW4rMTY+PjJdPWFbU24rMTY+PjJdLGFbYW4rMjA+PjJd''@;'; + put 'put ''PWFbU24rMjA+PjJdLGFbYW4rMjQ+PjJdPWFbU24rMjQ+PjJdLGFbYW4rMjg+PjJdPWFbU24rMjg+PjJdfWZvcihmZVtIbiszMj4+MF09MHxwSihsLDB8c2kobCwwLDEwMzk3OCwwKSwxKSxhW0huPj4yXT1hW2FuPj4yXSxhW0huKzQ+PjJdPWFbYW4rND4+Ml0sYVtIbis4Pj4yXT1hW2FuKzg+''@;'; + put 'put ''PjJdLGFbSG4rMTI+PjJdPWFbYW4rMTI+PjJdLGFbSG4rMTY+PjJdPWFbYW4rMTY+PjJdLGFbSG4rMjA+PjJdPWFbYW4rMjA+PjJdLGFbSG4rMjQ+PjJdPWFbYW4rMjQ+PjJdLGFbSG4rMjg+PjJdPWFbYW4rMjg+PjJdLGZ1bmN0aW9uIFQ5KGwsYyxmLHAsbSl7dmFyIFIsRyxLLEE9MCx3PTAs''@;'; + put 'put ''Yj0wLGs9MCxNPTAsRD0wO2lmKEs9bGUsbGU9bGUrMzJ8MCxHPUssUj0wfGZ1bmN0aW9uIF9iKGwsYyxmLHAsbSl7bHw9MCxjfD0wLGZ8PTAscHw9MCxtfD0wO3ZhciB3LEE9MCxiPTAsaz0wO0E9MHx2cigyOCksaz0wfGlzKDI1OTEyLDB8YVs0NTg0XSksYVsodz1BKzIwfDApPj4yXT1rO2Rv''@;'; + put 'put ''e2lmKGspe2lmKGs9MHxWYigpLGFbQSsyND4+Ml09ayxrKXthW0E+PjJdPWwsYVtBKzQ+PjJdPWMsYVtBKzg+PjJdPWYsYVtBKzEyPj4yXT1wLGFbQSsxNj4+Ml09bTticmVha31DdSgxMTE3NDAsMTQsMSwwfGFbMTU3MTJdKSxiPTY7YnJlYWt9Q3UoMTExNzQwLDE0LDEsMHxhWzE1NzEyXSks''@;'; + put 'put ''Yj02fXdoaWxlKDApO3JldHVybiA2PT0oMHxiKSYmKDB8KGw9MHxhW3c+PjJdKSYmTmwobCksMHwobD0wfGFbQSsyND4+Ml0pJiZqYihsKSxGdChBKSxBPTApLDB8QX0obHw9MCxjfD0wLGZ8PTAscHw9MCxtfD0wKSxmPTB8ZnVuY3Rpb24gYzYobCl7dmFyIGM9MDtyZXR1cm4oMHwoYz0wfGZ1''@;'; + put 'put ''bmN0aW9uIEk5KGwpe3ZhciBmLHAsbSxBLHcsYixrLE0sYz0wLEQ9MCxSPTAsRz0wO2ZvcihNPWxlLGxlPWxlKzMyfDAsZj1NKzI0fDAscD1NKzE2fDAsbT1NLEE9MHxmdW5jdGlvbiBLMihsKXt2YXIgYyxmO3JldHVybiAxKygwfGZ1bmN0aW9uIG1tKGwpe3ZhciBjPTAsZj0wO3JldHVybihs''@;'; + put 'put ''fD0wKT8obD0oZj1sPj4+MD42NTUzNSk/bD4+PjE2OmwsZj1mPzE2OjAsZj0oYz1sPj4+MD4yNTUpPzh8ZjpmLGY9KGM9KGw9Yz9sPj4+ODpsKT4+PjA+MTUpPzR8ZjpmLGw9KChjPShsPWM/bD4+PjQ6bCk+Pj4wPjMpPzJ8ZjpmKSsoKGM/bD4+PjI6bCk+Pj4wPjEmMSl8MCk6bD0tMSwwfGx9''@;'; + put 'put ''KH5+KChmPStfWzE2KyhsPTB8YVsxNisobHw9MCk+PjJdKT4+M10pPihjPStfW2wrMjQ+PjNdKT9mOmMpPj4+MCkpfDB9KGx8PTApLHc9bCs0fDAsYj1wKzR8MCxrPWwrMjB8MCxjPTA7Oyl7aWYoKDB8Yyk+PSgwfGFbdz4+Ml0pKXtjPTA7YnJlYWt9aWYoUj0xMisoRD0wfHZyKDMyKSl8MCxh''@;'; + put 'put ''W0QrMjg+PjJdPUc9KDB8YVtsPj4yXSkrKDQwKmN8MCl8MCxrMyhtLEcpLGFbUj4+Ml09YVttPj4yXSxhW1IrND4+Ml09YVttKzQ+PjJdLGFbUis4Pj4yXT1hW20rOD4+Ml0sYVtSKzEyPj4yXT1hW20rMTI+PjJdLGFbcD4+Ml09KCgoMHxhW0QrMjA+PjJdKS0oUj0wfGFbUj4+Ml0pfDApLzJ8''@;'; + put 'put ''MCkrUixhW2I+PjJdPSgoKDB8YVtEKzI0Pj4yXSktKFI9MHxhW0QrMTY+PjJdKXwwKS8yfDApK1IsYVtmPj4yXT1hW3A+PjJdLGFbZis0Pj4yXT1hW3ArND4+Ml0sYVtEKzg+PjJdPTB8Q2IoZixBKSwhKDB8bWlbNjMmYVsoUj0wfGFbaz4+Ml0pPj4yXV0oUixELDEpKSl7Yz0tMTticmVha31j''@;'; + put 'put ''PWMrMXwwfXJldHVybiBsZT1NLDB8Y30obHw9MCkpKT49MCYmKGZ1bmN0aW9uIFg4KGwpe3ZhciBjLGYscD0wO2ZvcihjPTI0KyhsfD0wKXwwLGw9MHxtaVs2MyZhWyhwPTB8YVsoZj1sKzIwfDApPj4yXSk+PjJdXShwLDAsMTI4KTtsOyl6YihwPTB8YVtjPj4yXSxsKzEyfDAsMHxhW2wrMjg+''@;'; + put 'put ''PjJdLHAsMCksbD0wfG1pWzYzJmFbKHA9MHxhW2Y+PjJdKT4+Ml1dKHAsbCw4KX0obCksZnVuY3Rpb24gZjYobCl7dmFyIHAsbSxjPTAsZj0wLEE9MCx3PTA7Zm9yKG09MHxwdSgwfGFbKHA9MjArKGx8PTApfDApPj4yXSksZj0wOzB8cHUoMHxhW3A+PjJdKTspe2lmKCEobD0wfGFbNCsoMHxh''@;'; + put 'put ''WzgrKEE9MHxhW3A+PjJdKT4+Ml0pPj4yXSkpe3c9ODticmVha31pZighKGw9KDB8KGM9MHxhWzgrKDB8YVtBKzQ+PjJdKT4+Ml0pKTwwPzB8YVtsKzg+PjJdOmwrKDAtYyl8MCkpe3c9ODticmVha31taVs2MyZhW0E+PjJdXShBLGwsNDA5NiksRnQobCksZj1mKzF8MH04PT0oMHx3KSYmUHIo''@;'; + put 'put ''MTExNjQ5LDExMTU0Myw2MTYsMTExNjUyKSwoMHxtKSE9KDB8ZikmJlByKDExMTY2NCwxMTE1NDMsNjIzLDExMTY1Mil9KGwpLGM9MHxObCgwfGFbbCsyMD4+Ml0pKSwwfGN9KFIpLCgwfGYpPj0wKXtmb3IoTT1HKzE2fDAsRD1HKzI0fDAsaz1HKzh8MCxiPW0rMzJ8MCxmPTAsbT0wOyEoKDB8''@;'; + put 'put ''bSk+PSgwfGMpKTspe3A9bCsoNDAqbXwwKSszMnwwO2Rve2lmKDB8YVtwPj4yXSl7aWYodUUoRyxSLGwrKDQwKm18MCl8MCksQT0rX1tNPj4zXSx3PStfW0Q+PjNdLCEoMHxhW0c+PjJdKSl7ZmVbMzYrKDB8YVtwPj4yXSk+PjBdPTE7YnJlYWt9aWYoMD09K19baz4+M10pe19bMTYrKHA9MHxh''@;'; + put 'put ''W3A+PjJdKT4+M109QSxfW3ArMjQ+PjNdPXcsZmVbcCszNj4+MF09MTticmVha30xPT0oMHxmZVtiPj4wXSk/KF9bMTYrKHA9MHxhW3A+PjJdKT4+M109QSxfW3ArMjQ+PjNdPXcsZmVbcCszNj4+MF09MSk6Zj0xfX13aGlsZSgwKTttPW0rMXwwfSFmdW5jdGlvbiB5YyhsKXtqYigwfGFbMjQr''@;'; + put 'put ''KGx8PTApPj4yXSksRnQobCl9KFIpfXJldHVybiBsZT1LLDB8Zn0oRyxSLEsscGUsSG4pLGM9MCxmPTAscD1LOyEoKDB8Zik+PSgwfHBlKSk7KTB8ZmVbcCszNj4+MF0mJihmZVs4MSsoSG49MHxhW3ArMzI+PjJdKT4+MF09MSxTbj1Ibis1NnwwLGthZSh1cixwKSxhW1NuPj4yXT1hW3VyPj4y''@;'; + put 'put ''XSxhW1NuKzQ+PjJdPWFbdXIrND4+Ml0sYVtTbis4Pj4yXT1hW3VyKzg+PjJdLGFbU24rMTI+PjJdPWFbdXIrMTI+PjJdLG40KGwsSG4pLGM9YysxfDApLGY9ZisxfDAscD1wKzQwfDA7KDB8YykhPSgwfHBlKSYmKGFbRXI+PjJdPWMsYVtFcis0Pj4yXT1wZSwkcigwLDEwNDAyMyxFcikpLEZ0''@;'; + put 'put ''KEcpLEZ0KEspfX1sZT1mcn0obCksZj0wfGFbMTIrKGs9MHxhW0s+PjJdKT4+Ml07ZG97aWYoMHxmJiYwPT0oMHxmZVtmKzgxPj4wXSkpe2lmKGFbZ2U+PjJdPWFbKG09ZisyNHwwKT4+Ml0sYVtnZSs0Pj4yXT1hW20rND4+Ml0sYVtnZSs4Pj4yXT1hW20rOD4+Ml0sYVtnZSsxMj4+Ml09YVtt''@;'; + put 'put ''KzEyPj4yXSxfW2dlPj4zXT1NPStfW2dlPj4zXSsxNixfWyhtPWdlKzh8MCk+PjNdPXA9K19bbT4+M10rOCxtPTAhPSgxJmZlW2srMjc1Pj4wXSksMHxmZVsxOTQ5NTddKXtpZihtP19bKEE9ayszMnwwKT4+M109K19bQT4+M10rcDpfWyhBPWsrMTZ8MCk+PjNdPStfW0E+PjNdLXAsIShNPihi''@;'; + put 'put ''PShwPStfWyhtPWsrNDB8MCk+PjNdKS0odz0rX1soQT1rKzI0fDApPj4zXSkpKSlicmVhaztfW0E+PjNdPXctKE09LjUqKE0tYikpLF9bbT4+M109cCtNO2JyZWFrfUE9MD09KDB8YVs0NzI2NV0pO2Rve2lmKG0pe2lmKEEpe19bKEE9ays0MHwwKT4+M109K19bQT4+M10rcDticmVha31fWyhB''@;'; + put 'put ''PWsrMjR8MCk+PjNdPStfW0E+PjNdLXA7YnJlYWt9aWYoQSl7X1soQT1rKzI0fDApPj4zXT0rX1tBPj4zXS1wO2JyZWFrfV9bKEE9ays0MHwwKT4+M109K19bQT4+M10rcDticmVha313aGlsZSgwKTtNPihiPShwPStfWyhtPWsrMzJ8MCk+PjNdKS0odz0rX1soQT1rKzE2fDApPj4zXSkpJiYo''@;'; + put 'put ''X1tBPj4zXT13LShNPS41KihNLWIpKSxfW20+PjNdPXArTSl9fXdoaWxlKDApO2lmKGMpe3N3aXRjaCgwfGFbNDcyNjVdKXtjYXNlIDA6YVs0NjYwNl09YVsoRz1rKzE2fDApPj4yXSxhWzQ2NjA3XT1hW0crND4+Ml0sYVs0NjYwOF09YVtHKzg+PjJdLGFbNDY2MDldPWFbRysxMj4+Ml07YnJl''@;'; + put 'put ''YWs7Y2FzZSAxOko2KEQsLStfW2srNDA+PjNdLCtfW2srMTY+PjNdKSxhWzQ2NjA2XT1hW0Q+PjJdLGFbNDY2MDddPWFbRCs0Pj4yXSxhWzQ2NjA4XT1hW0QrOD4+Ml0sYVs0NjYwOV09YVtEKzEyPj4yXTticmVhaztjYXNlIDI6SjYoUiwrX1trKzE2Pj4zXSwtK19bays0MD4+M10pLGFbNDY2''@;'; + put 'put ''MDZdPWFbUj4+Ml0sYVs0NjYwN109YVtSKzQ+PjJdLGFbNDY2MDhdPWFbUis4Pj4yXSxhWzQ2NjA5XT1hW1IrMTI+PjJdO2JyZWFrO2Nhc2UgMzpKNihHLCtfW2srMjQ+PjNdLCtfW2srMTY+PjNdKSxhWzQ2NjA2XT1hW0c+PjJdLGFbNDY2MDddPWFbRys0Pj4yXSxhWzQ2NjA4XT1hW0crOD4+''@;'; + put 'put ''Ml0sYVs0NjYwOV09YVtHKzEyPj4yXX0oZnVuY3Rpb24gd2FlKGwpe2x8PTA7dmFyIHAsbSxBLHcsYz0wLGY9MCxiPTA7aWYodz1sZSxsZT1sZSs0OHwwLHA9dyszMnwwLG09dysxNnwwLEE9dywwIT0rX1syMzMwM118MCE9K19bMjMzMDRdfDAhPSgwfGFbNDcyNjVdKSl7Zm9yKGY9MHxEdChs''@;'; + put 'put ''KTtmOyl7MHxhWzQ3MjY1XSYmeHkoZiwwKSxhW3A+PjJdPWFbKGI9MTYrKDB8YVsoYz1mKzE2fDApPj4yXSl8MCk+PjJdLGFbcCs0Pj4yXT1hW2IrND4+Ml0sYVtwKzg+PjJdPWFbYis4Pj4yXSxhW3ArMTI+PjJdPWFbYisxMj4+Ml0saWgobSxwKSxhW2I+PjJdPWFbbT4+Ml0sYVtiKzQ+PjJd''@;'; + put 'put ''PWFbbSs0Pj4yXSxhW2IrOD4+Ml09YVttKzg+PjJdLGFbYisxMj4+Ml09YVttKzEyPj4yXSwwfChjPTB8YVsxMDgrKDB8YVtjPj4yXSk+PjJdKSYmKGFbcD4+Ml09YVsoYj1jKzU2fDApPj4yXSxhW3ArND4+Ml09YVtiKzQ+PjJdLGFbcCs4Pj4yXT1hW2IrOD4+Ml0sYVtwKzEyPj4yXT1hW2Ir''@;'; + put 'put ''MTI+PjJdLGloKEEscCksYVtiPj4yXT1hW0E+PjJdLGFbYis0Pj4yXT1hW0ErND4+Ml0sYVtiKzg+PjJdPWFbQSs4Pj4yXSxhW2IrMTI+PjJdPWFbQSsxMj4+Ml0pO2U6ZG97aWYoMT09KDB8YVs0NzEzOF0pKWZvcihjPTB8dzAobCxmKTs7KXtpZighYylicmVhayBlO2JhZShjKSxjPTB8UzAo''@;'; + put 'put ''bCxjKX19d2hpbGUoMCk7Zj0wfHp0KGwsZil9RFEobCwzJmFbMTE2KygwfGFbbCsxNj4+Ml0pPj4yXSl9bGU9d30pKGwpLGY9MHxhWzEyKygwfGFbSz4+Ml0pPj4yXX0wfGYmJjA9PSgwfGZlW2YrODE+PjBdKSYmKGFbcGU+PjJdPWFbZ2U+PjJdLGFbcGUrND4+Ml09YVtnZSs0Pj4yXSxhW3Bl''@;'; + put 'put ''Kzg+PjJdPWFbZ2UrOD4+Ml0sYVtwZSsxMj4+Ml09YVtnZSsxMj4+Ml0sZnVuY3Rpb24gUlEobCxjKXtjfD0wO3ZhciBtLEEsZj0wLHA9MCx3PTA7bD0obT0wfGZlWzI3NSsodz0wfGFbKEE9MTYrKGx8PTApfDApPj4yXSk+PjBdKTw8MjQ+PjI0O2Rve2lmKCEoNCZsKSl7aWYoZj0rX1t3KzE2''@;'; + put 'put ''Pj4zXSwyJmwpe3A9LjUqK19bYz4+M10rZjticmVha31wPS41KigrX1t3KzMyPj4zXStmKTticmVha31wPStfW3crMzI+PjNdLS41KitfW2M+PjNdfXdoaWxlKDApO2Y9MSZtPytfW3crNDA+PjNdLS41KitfW2MrOD4+M106LjUqK19bYys4Pj4zXSsgK19bdysyND4+M10sX1s1Nisodz0wfGFb''@;'; + put 'put ''dysxMj4+Ml0pPj4zXT1wLF9bdys2ND4+M109ZixmZVs4MSsoMHxhWzEyKygwfGFbQT4+Ml0pPj4yXSk+PjBdPTF9KGwscGUpKSxsZT1MZX1mdW5jdGlvbiBMUShsKXt2YXIgdyxjPTAsZj0wLHA9MCxtPTAsQT0wO2lmKHc9MTYrKGx8PTApfDAsKDB8ZGkobCkpIT0oMHxsKSYmMCE9KDB8KEE9''@;'; + put 'put ''MHxhWzEyKyhtPTB8YVt3Pj4yXSk+PjJdKSkmJjA9PSgwfGZlW0ErODE+PjBdKSl7MSYoYz0wfGZlW20rMjc1Pj4wXSk/KHA9K19bbSszMj4+M10tLjUqK19bbSs2ND4+M10sbD1tKzcyfDApOihwPStfW20rMTY+PjNdKy41KitfW20rOTY+PjNdLGw9bSsxMDR8MCksZj0rX1tsPj4zXSxsPWM8''@;'; + put 'put ''PDI0Pj4yNDtkb3tpZighKDQmbCkpe2lmKDImbCl7Zj0rX1ttKzQwPj4zXS0uNSpmO2JyZWFrfWY9LjUqKCtfW20rNDA+PjNdKyArX1ttKzI0Pj4zXSk7YnJlYWt9Zj0rX1ttKzI0Pj4zXSsuNSpmfXdoaWxlKDApO19bQSs1Nj4+M109cCxfW0ErNjQ+PjNdPWYsZmVbODErKDB8YVsxMisoMHxh''@;'; + put 'put ''W3c+PjJdKT4+Ml0pPj4wXT0xLGw9MX1lbHNlIGw9MTtmb3IoOyEoKDB8bCk+KDB8YVsxODArKGM9MHxhW3c+PjJdKT4+Ml0pKTspTFEoMHxhWygwfGFbYysxODQ+PjJdKSsobDw8Mik+PjJdKSxsPWwrMXwwfWZ1bmN0aW9uIE9RKGwpe3ZhciBiLGM9MCxmPTAscD0wLG09MCxBPTAsdz0wO2lm''@;'; + put 'put ''KGI9MTYrKGx8PTApfDAsKDB8ZGkobCkpIT0oMHxsKSYmMCE9KDB8KHc9MHxhWzEyKyhBPTB8YVtiPj4yXSk+PjJdKSkmJjA9PSgwfGZlW3crODE+PjBdKSl7MSYoYz0wfGZlW0ErMjc1Pj4wXSk/KG09K19bQSs0MD4+M10tLjUqK19bQSs4OD4+M10sbD1BKzgwfDApOihtPStfW0ErMjQ+PjNd''@;'; + put 'put ''Ky41KitfW0ErNTY+PjNdLGw9QSs0OHwwKSxwPStfW2w+PjNdLGw9Yzw8MjQ+PjI0O2Rve2lmKCEoNCZsKSl7aWYoZj0rX1tBKzE2Pj4zXSwyJmwpe2YrPS41KnA7YnJlYWt9Zj0uNSooK19bQSszMj4+M10rZik7YnJlYWt9Zj0rX1tBKzMyPj4zXS0uNSpwfXdoaWxlKDApO19bdys1Nj4+M109''@;'; + put 'put ''ZixfW3crNjQ+PjNdPW0sZmVbODErKDB8YVsxMisoMHxhW2I+PjJdKT4+Ml0pPj4wXT0xLGw9MX1lbHNlIGw9MTtmb3IoOyEoKDB8bCk+KDB8YVsxODArKGM9MHxhW2I+PjJdKT4+Ml0pKTspT1EoMHxhWygwfGFbYysxODQ+PjJdKSsobDw8Mik+PjJdKSxsPWwrMXwwfWZ1bmN0aW9uIGJhZShs''@;'; + put 'put ''KXt2YXIgdyxiLGssTSxELFIsRyxnZSxjPTAsZj0wLHA9MCxtPTAsQT0wLEs9MCxwZT0wLGJlPTA7aWYoZ2U9bGUsbGU9bGUrMTQ0fDAsSz1nZSsxMjB8MCxmPWdlKzE2fDAsdz1nZSsxMDR8MCxiPWdlKzg4fDAsaz1nZSs3MnwwLE09Z2UrNTZ8MCxEPWdlKzQwfDAsUj1nZSsyNHwwLHBlPWdl''@;'; + put 'put ''LHA9MHxhWzgrKGM9MHxhWyhHPTE2KyhsfD0wKXwwKT4+Ml0pPj4yXSl7Zm9yKEE9MCxsPXA7ISgoMHxBKT49KDB8YVtsKzQ+PjJdKSk7KXtmb3IobD0wfGFbKG09MHxhW2w+PjJdKSsoNDgqQXwwKT4+Ml0sZj0wfGFbbSsoNDgqQXwwKSs0Pj4yXSxwPTB8YVttKyg0OCpBfDApKzg+PjJdLG09''@;'; + put 'put ''MHxhW20rKDQ4KkF8MCkrMTI+PjJdLGM9MDshKCgwfGMpPj0oMHxmKSk7KWFbSz4+Ml09YVsoYmU9bCsoYzw8NCl8MCk+PjJdLGFbSys0Pj4yXT1hW2JlKzQ+PjJdLGFbSys4Pj4yXT1hW2JlKzg+PjJdLGFbSysxMj4+Ml09YVtiZSsxMj4+Ml0saWgodyxLKSxhW2JlPj4yXT1hW3c+PjJdLGFb''@;'; + put 'put ''YmUrND4+Ml09YVt3KzQ+PjJdLGFbYmUrOD4+Ml09YVt3Kzg+PjJdLGFbYmUrMTI+PjJdPWFbdysxMj4+Ml0sYz1jKzF8MDswfHAmJihhW0s+PjJdPWFbKGJlPSgwfGFbYVs4KygwfGFbRz4+Ml0pPj4yXT4+Ml0pKyg0OCpBfDApKzE2fDApPj4yXSxhW0srND4+Ml09YVtiZSs0Pj4yXSxhW0sr''@;'; + put 'put ''OD4+Ml09YVtiZSs4Pj4yXSxhW0srMTI+PjJdPWFbYmUrMTI+PjJdLGloKGIsSyksYVtiZT4+Ml09YVtiPj4yXSxhW2JlKzQ+PjJdPWFbYis0Pj4yXSxhW2JlKzg+PjJdPWFbYis4Pj4yXSxhW2JlKzEyPj4yXT1hW2IrMTI+PjJdKSwwfG0mJihhW0s+PjJdPWFbKGJlPSgwfGFbYVs4KygwfGFb''@;'; + put 'put ''Rz4+Ml0pPj4yXT4+Ml0pKyg0OCpBfDApKzMyfDApPj4yXSxhW0srND4+Ml09YVtiZSs0Pj4yXSxhW0srOD4+Ml09YVtiZSs4Pj4yXSxhW0srMTI+PjJdPWFbYmUrMTI+PjJdLGloKGssSyksYVtiZT4+Ml09YVtrPj4yXSxhW2JlKzQ+PjJdPWFbays0Pj4yXSxhW2JlKzg+PjJdPWFbays4Pj4y''@;'; + put 'put ''XSxhW2JlKzEyPj4yXT1hW2srMTI+PjJdKSxBPUErMXwwLGw9MHxhWzgrKGM9MHxhW0c+PjJdKT4+Ml19KGw9MHxhW2MrOTY+PjJdKSYmKGFbSz4+Ml09YVsoYz1sKzU2fDApPj4yXSxhW0srND4+Ml09YVtjKzQ+PjJdLGFbSys4Pj4yXT1hW2MrOD4+Ml0sYVtLKzEyPj4yXT1hW2MrMTI+PjJd''@;'; + put 'put ''LGloKE0sSyksYVtjPj4yXT1hW00+PjJdLGFbYys0Pj4yXT1hW00rND4+Ml0sYVtjKzg+PjJdPWFbTSs4Pj4yXSxhW2MrMTI+PjJdPWFbTSsxMj4+Ml0sYz0wfGFbRz4+Ml0pLChsPTB8YVtjKzEwOD4+Ml0pJiYoYVtLPj4yXT1hWyhjPWwrNTZ8MCk+PjJdLGFbSys0Pj4yXT1hW2MrND4+Ml0s''@;'; + put 'put ''YVtLKzg+PjJdPWFbYys4Pj4yXSxhW0srMTI+PjJdPWFbYysxMj4+Ml0saWgoRCxLKSxhW2M+PjJdPWFbRD4+Ml0sYVtjKzQ+PjJdPWFbRCs0Pj4yXSxhW2MrOD4+Ml09YVtEKzg+PjJdLGFbYysxMj4+Ml09YVtEKzEyPj4yXSxjPTB8YVtHPj4yXSksKGw9MHxhW2MrMTAwPj4yXSkmJihhW0s+''@;'; + put 'put ''PjJdPWFbKGM9bCs1NnwwKT4+Ml0sYVtLKzQ+PjJdPWFbYys0Pj4yXSxhW0srOD4+Ml09YVtjKzg+PjJdLGFbSysxMj4+Ml09YVtjKzEyPj4yXSxpaChSLEspLGFbYz4+Ml09YVtSPj4yXSxhW2MrND4+Ml09YVtSKzQ+PjJdLGFbYys4Pj4yXT1hW1IrOD4+Ml0sYVtjKzEyPj4yXT1hW1IrMTI+''@;'; + put 'put ''PjJdLGM9MHxhW0c+PjJdKSwwfChjPTB8YVtjKzEwND4+Ml0pJiYoYVtLPj4yXT1hWyhiZT1jKzU2fDApPj4yXSxhW0srND4+Ml09YVtiZSs0Pj4yXSxhW0srOD4+Ml09YVtiZSs4Pj4yXSxhW0srMTI+PjJdPWFbYmUrMTI+PjJdLGloKHBlLEspLGFbYmU+PjJdPWFbcGU+PjJdLGFbYmUrND4+''@;'; + put 'put ''Ml09YVtwZSs0Pj4yXSxhW2JlKzg+PjJdPWFbcGUrOD4+Ml0sYVtiZSsxMj4+Ml09YVtwZSsxMj4+Ml0pfWVsc2UgMD09KDB8ZmVbMTk0OTU0XSkmJjYhPSgwfGZlW2MrMTEyPj4wXSkmJihLPTB8dGkoMHxhWygzPT0oMyZhW2w+PjJdfDApP2w6bCs0OHwwKSs0MD4+Ml0pLHBlPTB8dGkoMHxh''@;'; + put 'put ''WygyPT0oMyZhW2w+PjJdfDApP2w6bCstNDh8MCkrNDA+PjJdKSxhW2Y+PjJdPUssYVtmKzQ+PjJdPXBlLCRyKDEsMTAzODEwLGYpKTtsZT1nZX1mdW5jdGlvbiBxSChsKXt2YXIgcCxjPTAsZj0wO2ZvcihwPTE2KyhsfD0wKXwwLCgwfGRpKGwpKSE9KDB8bCkmJjAhPSgwfChjPTB8YVsxMiso''@;'; + put 'put ''MHxhW3A+PjJdKT4+Ml0pKT8oZj0xLGw9MCE9KDB8ZmVbYys4MT4+MF0pJjEpOihmPTEsbD0wKTshKCgwfGYpPigwfGFbMTgwKyhjPTB8YVtwPj4yXSk+PjJdKSk7KWM9KDB8cUgoMHxhWygwfGFbYysxODQ+PjJdKSsoZjw8Mik+PjJdKSkrbHwwLGY9ZisxfDAsbD1jO3JldHVybiAwfGx9ZnVu''@;'; + put 'put ''Y3Rpb24gX2FlKGwsYyxmLHApe3ZhciBtLEEsdyxiLGssTTtsfD0wLHB8PTAsbT1sZSxsZT1sZSszMnwwLEE9bSxrPTB8YVsoYz0xNisoY3w9MCl8MCk+PjJdLF9bMTYrKGZ8PTApPj4zXT03MiooYj0rX1soKE09MD09KDB8ZmVbMTk0OTU3XSkpP2srMzJ8MDprKzQwfDApPj4zXSksX1tmKzI0''@;'; + put 'put ''Pj4zXT03Mioodz0rX1soTT9rKzQwfDA6ayszMnwwKT4+M10pLGFbZj4+Ml09YVsoYz0xNisoMHxhW2M+PjJdKXwwKT4+Ml0sYVtmKzQ+PjJdPWFbYys0Pj4yXSxhW2YrOD4+Ml09YVtjKzg+PjJdLGFbZisxMj4+Ml09YVtjKzEyPj4yXSxfW2Y+PjNdPStfW2Y+PjNdLTM2KmIsX1soYz1mKzh8''@;'; + put 'put ''MCk+PjNdPStfW2M+PjNdLTM2KncsYVtBPj4yXT1hW3A+PjJdLGFbQSs0Pj4yXT1hW3ArND4+Ml0sYVtBKzg+PjJdPWFbcCs4Pj4yXSxhW0ErMTI+PjJdPWFbcCsxMj4+Ml0sYVtBKzE2Pj4yXT1hW3ArMTY+PjJdLGFbQSsyMD4+Ml09YVtwKzIwPj4yXSxhW0ErMjQ+PjJdPWFbcCsyND4+Ml0s''@;'; + put 'put ''YVtBKzI4Pj4yXT1hW3ArMjg+PjJdLFBRKGwsZixBKSxsZT1tfWZ1bmN0aW9uIHd5KGwsYyxmLHApe3ZhciBtLEEsdyxiLGssTTtsfD0wLHB8PTAsbT1sZSxsZT1sZSszMnwwLEE9bSxrPTI0KyhjfD0wKXwwLF9bMTYrKGZ8PTApPj4zXT1iPStfWygoTT0wPT0oMHxmZVsxOTQ5NTddKSk/azpj''@;'; + put 'put ''KzMyfDApPj4zXSxfW2YrMjQ+PjNdPXc9K19bKE0/YyszMnwwOmspPj4zXSxhW2Y+PjJdPWFbKGM9Yys1NnwwKT4+Ml0sYVtmKzQ+PjJdPWFbYys0Pj4yXSxhW2YrOD4+Ml09YVtjKzg+PjJdLGFbZisxMj4+Ml09YVtjKzEyPj4yXSxfW2Y+PjNdPStfW2Y+PjNdLS41KmIsX1soYz1mKzh8MCk+''@;'; + put 'put ''PjNdPStfW2M+PjNdLS41KncsYVtBPj4yXT1hW3A+PjJdLGFbQSs0Pj4yXT1hW3ArND4+Ml0sYVtBKzg+PjJdPWFbcCs4Pj4yXSxhW0ErMTI+PjJdPWFbcCsxMj4+Ml0sYVtBKzE2Pj4yXT1hW3ArMTY+PjJdLGFbQSsyMD4+Ml09YVtwKzIwPj4yXSxhW0ErMjQ+PjJdPWFbcCsyND4+Ml0sYVtB''@;'; + put 'put ''KzI4Pj4yXT1hW3ArMjg+PjJdLFBRKGwsZixBKSxsZT1tfWZ1bmN0aW9uIGRrKGwsYyxmLHAsbSl7bHw9MCxjfD0wLGZ8PTAsbXw9MCwwfChwfD0wKSYmKGFbKHA9YysxNnwwKT4+Ml09MCxhW3ArND4+Ml09MCxhW3ArOD4+Ml09MCxhW3ArMTI+PjJdPTAsYVtjPj4yXT1hW20+PjJdLGFbYys0''@;'; + put 'put ''Pj4yXT1hW20rND4+Ml0sYVtjKzg+PjJdPWFbbSs4Pj4yXSxhW2MrMTI+PjJdPWFbbSsxMj4+Ml0pLDB8ZmVbMTk0OTU3XT8oX1tmPj4zXT0rX1tsKzMyPj4zXSxfW2YrOD4+M109K19bbCsyND4+M10pOihhW2Y+PjJdPWFbKG09bCsyNHwwKT4+Ml0sYVtmKzQ+PjJdPWFbbSs0Pj4yXSxhW2Yr''@;'; + put 'put ''OD4+Ml09YVttKzg+PjJdLGFbZisxMj4+Ml09YVttKzEyPj4yXSksYVtmKzMyPj4yXT1sLGZlW2YrMzY+PjBdPTAsYVtjKzMyPj4yXT1mfWZ1bmN0aW9uIEJRKGwsYyl7bHw9MCxjPTB8VDcoY3w9MCk7ZG97aWYoYyl7aWYoMHxhWzgrKGM9MHxhW2M+PjJdKT4+Ml0pe2FbbD4+Ml09YVsoYz1j''@;'; + put 'put ''KzE2fDApPj4yXSxhW2wrND4+Ml09YVtjKzQ+PjJdLGFbbCs4Pj4yXT1hW2MrOD4+Ml0sYVtsKzEyPj4yXT1hW2MrMTI+PjJdO2JyZWFrfWFbbD4+Ml09YVsoYz0wfGFbYz4+Ml0pPj4yXSxhW2wrND4+Ml09YVtjKzQ+PjJdLGFbbCs4Pj4yXT1hW2MrOD4+Ml0sYVtsKzEyPj4yXT1hW2MrMTI+''@;'; + put 'put ''PjJdO2JyZWFrfWFbbD4+Ml09MCxhW2wrND4+Ml09MCxhW2wrOD4+Ml09MCxhW2wrMTI+PjJdPTB9d2hpbGUoMCl9ZnVuY3Rpb24gQ2FlKGwsYyl7bHw9MDt2YXIgZj0wO2M9MHxUNyhjfD0wKTtkb3tpZihjKXtpZigwfGFbKGY9MHxhW2M+PjJdKSsoNDgqKGM9KDB8YVtjKzQ+PjJdKS0xfDAp''@;'; + put 'put ''fDApKzEyPj4yXSl7YVtsPj4yXT1hWyhmPWYrKDQ4KmN8MCkrMzJ8MCk+PjJdLGFbbCs0Pj4yXT1hW2YrND4+Ml0sYVtsKzg+PjJdPWFbZis4Pj4yXSxhW2wrMTI+PjJdPWFbZisxMj4+Ml07YnJlYWt9YVtsPj4yXT1hWyhmPSgwfGFbZisoNDgqY3wwKT4+Ml0pKygoMHxhW2YrKDQ4KmN8MCkr''@;'; + put 'put ''ND4+Ml0pLTE8PDQpfDApPj4yXSxhW2wrND4+Ml09YVtmKzQ+PjJdLGFbbCs4Pj4yXT1hW2YrOD4+Ml0sYVtsKzEyPj4yXT1hW2YrMTI+PjJdO2JyZWFrfWFbbD4+Ml09MCxhW2wrND4+Ml09MCxhW2wrOD4+Ml09MCxhW2wrMTI+PjJdPTB9d2hpbGUoMCl9ZnVuY3Rpb24gcGsobCxjLGYpe2x8''@;'; + put 'put ''PTAsZnw9MDt2YXIgayxSLEsscD0wLG09MCxBPTAsdz0wLGI9MCxNPTAsRD0wLEc9MDtmb3IoSz1sZSxsZT1sZSsxMTJ8MCxrPUsrNzJ8MCxEPUsrMzJ8MCxSPUssRz0xNisoY3w9MCl8MCxiPTE7ISgoMHxiKT4oMHxhWzE4MCsocD0wfGFbRz4+Ml0pPj4yXSkpOyl7cD0wfGFbKDB8YVtwKzE4''@;'; + put 'put ''ND4+Ml0pKyhiPDwyKT4+Ml0sQT1mLHc9KG09aykrNDB8MDtkb3thW20+PjJdPWFbQT4+Ml0sbT1tKzR8MCxBPUErNHwwfXdoaWxlKCgwfG0pPCgwfHcpKTtwayhELHAsayksQT1ELHc9KG09ZikrNDB8MDtkb3thW20+PjJdPWFbQT4+Ml0sbT1tKzR8MCxBPUErNHwwfXdoaWxlKCgwfG0pPCgw''@;'; + put 'put ''fHcpKTtiPWIrMXwwfSgwfGRpKGMpKSE9KDB8YykmJjB8KE09MHxhWzEyKygwfGFbRz4+Ml0pPj4yXSkmJjB8ZmVbTSs4MT4+MF0mJihEPTB8YVsoRz1mKzMyfDApPj4yXSxhW2s+PjJdPWFbZj4+Ml0sYVtrKzQ+PjJdPWFbZis0Pj4yXSxhW2srOD4+Ml09YVtmKzg+PjJdLGFbaysxMj4+Ml09''@;'; + put 'put ''YVtmKzEyPj4yXSxhW2srMTY+PjJdPWFbZisxNj4+Ml0sYVtrKzIwPj4yXT1hW2YrMjA+PjJdLGFbaysyND4+Ml09YVtmKzI0Pj4yXSxhW2srMjg+PjJdPWFbZisyOD4+Ml0sd3koUixNLEQsayksYVtmPj4yXT1hW1I+PjJdLGFbZis0Pj4yXT1hW1IrND4+Ml0sYVtmKzg+PjJdPWFbUis4Pj4y''@;'; + put 'put ''XSxhW2YrMTI+PjJdPWFbUisxMj4+Ml0sYVtmKzE2Pj4yXT1hW1IrMTY+PjJdLGFbZisyMD4+Ml09YVtSKzIwPj4yXSxhW2YrMjQ+PjJdPWFbUisyND4+Ml0sYVtmKzI4Pj4yXT1hW1IrMjg+PjJdLGFbRz4+Ml09NDArKDB8YVtHPj4yXSkpLEE9Zix3PShtPWwpKzQwfDA7ZG97YVttPj4yXT1h''@;'; + put 'put ''W0E+PjJdLG09bSs0fDAsQT1BKzR8MH13aGlsZSgoMHxtKTwoMHx3KSk7bGU9S31mdW5jdGlvbiBrYWUobCxjKXt2YXIgZjtmPS41KitfWzgrKGN8PTApPj4zXSsgK19bYysyND4+M10sX1sobHw9MCk+PjNdPS41KitfW2M+PjNdKyArX1tjKzE2Pj4zXSxfW2wrOD4+M109Zn1mdW5jdGlvbiBQ''@;'; + put 'put ''UShsLGMsZil7bHw9MDt2YXIgcCxtLEE9MCx3PTAsYj0wO3A9bGUsbGU9bGUrMTZ8MCxtPXAsX1soZnw9MCk+PjNdPStfWygrX1tmPj4zXTwoYj0rX1soY3w9MCk+PjNdKT9mOmMpPj4zXSxfWyhBPWYrOHwwKT4+M109K19bKCtfW0E+PjNdPCh3PStfW2MrOD4+M10pP2Y6YykrOD4+M10sX1tt''@;'; + put 'put ''Pj4zXT1iPStfW2MrMTY+PjNdK2IsX1ttKzg+PjNdPXc9K19bYysyND4+M10rdyxfWyhBPWYrMTZ8MCk+PjNdPStfWygrX1tBPj4zXT5iP0E6bSk+PjNdLF9bKGM9ZisyNHwwKT4+M109K19bKCtfW2M+PjNdPnc/QTptKSs4Pj4zXSxhW2w+PjJdPWFbZj4+Ml0sYVtsKzQ+PjJdPWFbZis0Pj4y''@;'; + put 'put ''XSxhW2wrOD4+Ml09YVtmKzg+PjJdLGFbbCsxMj4+Ml09YVtmKzEyPj4yXSxhW2wrMTY+PjJdPWFbZisxNj4+Ml0sYVtsKzIwPj4yXT1hW2YrMjA+PjJdLGFbbCsyND4+Ml09YVtmKzI0Pj4yXSxhW2wrMjg+PjJdPWFbZisyOD4+Ml0sbGU9cH1mdW5jdGlvbiB0NChsKXtYNihsfD0wLDEpfWZ1''@;'; + put 'put ''bmN0aW9uIGVOKGwsYyxmKXtsfD0wLGZ8PTA7dmFyIGIsayxNLEQscD0wLG09MCxBPTAsdz0wO0Q9bGUsbGU9bGUrMTZ8MCxNPUQrOHwwLGs9RCxiPTAhPSgwfChjfD0wKSk7ZTpkb3tpZihiKXtBPTAscD0wO3Q6Zm9yKDs7KWZvcig7Oyl7aWYoQSlicmVhayBlO2lmKCEobT0wfGFbYysocDw8''@;'; + put 'put ''Mik+PjJdKSl7dz02O2JyZWFrIGV9aWYocD1wKzF8MCwhKDB8ZmVbbT4+MF0pKXtBPTE7Y29udGludWUgdH19fWVsc2Ugdz02fXdoaWxlKDApO2U6ZG97aWYoNj09KDB8dykpZm9yKDs7KXtpZighKHA9MHxhW2Y+PjJdKSlicmVhayBlO0VuKGwscCksRW4obCwxNTM1OTkpLGY9Zis0fDAsdz02''@;'; + put 'put ''fX13aGlsZSgwKTtlOmRve2lmKGIpZm9yKEE9MDs7KXtpZighKHA9MHxhW2MrKEE8PDIpPj4yXSkpYnJlYWsgZTtkb3tpZigwfGZlW3A+PjBdKXtpZighKGY9MHxmRChwKSkpe2Fbaz4+Ml09cCwkcigwLDEwNDM4NCxrKTticmVha31pZighKG09MHxuUyhmLDEzODgyMSkpKXthW00+PjJdPWYs''@;'; + put 'put ''JHIoMCwxMDQ0MTIsTSk7YnJlYWt9Zm9yKDtwPTB8X2xlKG0pOylFbihsLHApO0VuKGwsMTUzNTk5KSxldyhtKX19d2hpbGUoMCk7QT1BKzF8MH19d2hpbGUoMCk7bGU9RH1mdW5jdGlvbiBOUShsLGMpe2x8PTA7dmFyIGY9MCxwPTAsbT0wO2M9MHxhWzUyKyhjfD0wKT4+Ml07ZTpmb3IoOzsp''@;'; + put 'put ''e2Y9MHxmZVtjPj4wXTt0OmRve3N3aXRjaChmPDwyND4+MjQpe2Nhc2UgMDpicmVhayBlO2Nhc2UgMzc6aWYoMzc9PSgwfGZlW2MrMT4+MF0pKXtpZigwIT0oMHxsNChmPWMrMnwwLDEwNDQ0MCwzKSkmJjAhPSgwfGw0KGYsMTA0NDQ0LDUpKSYmMCE9KDB8bDQoZiwxMDQ0NTAsMykpJiYwIT0o''@;'; + put 'put ''MHxsNChmLDEwNDQ1NCw3KSkpe2Y9Mzc7YnJlYWsgdH1tPTM3O246Zm9yKDs7KXtzd2l0Y2gobTw8MjQ+PjI0KXtjYXNlIDEzOnA9MTA7YnJlYWsgbjtjYXNlIDEwOmNhc2UgMDpwPTEyO2JyZWFrIG59Yz1tPWMrMXwwLG09MHxmZVttPj4wXX1pZigxMD09KDB8cCkpe2lmKDEwPT0oMHxmZVso''@;'; + put 'put ''Zj1jKzF8MCk+PjBdKSl7Yz1jKzJ8MDtjb250aW51ZSBlfX1lbHNlIDEyPT0oMHxwKSYmKGY9YysxfDApO2M9bTw8MjQ+PjI0PT0wP2M6Zjtjb250aW51ZSBlfWY9Mzd9fXdoaWxlKDApO3Q6Zm9yKDs7KXtzd2l0Y2goZjw8MjQ+PjI0KXtjYXNlIDEwOmNhc2UgMTM6Y2FzZSAwOmJyZWFrIHR9''@;'; + put 'put ''ckYobCxmPDwyND4+MjQpLGM9bT1jKzF8MCxmPTB8ZmVbbT4+MF19cD1jKzF8MCxjPWY8PDI0Pj4yND09MTMmJjEwPT0oMHxmZVtwPj4wXSk/YysyfDA6Zjw8MjQ+PjI0PT0wP2M6cCxyRihsLDEwKX19ZnVuY3Rpb24gdE4obCxjKXtsfD0wLGN8PTA7dmFyIG0sZj0wLHA9MCxBPTA7bT1sZSxs''@;'; + put 'put ''ZT1sZSsxNnwwLGY9bTtlOmRve3N3aXRjaCgwfGMpe2Nhc2UgMDpwPWw7YnJlYWs7Y2FzZSAxOnA9MHxDSihsKTticmVhaztkZWZhdWx0OnN3aXRjaCgwfHhhZShsKSl7Y2FzZSAyOmJyZWFrO2Nhc2UgMTpwPTB8Q0oobCk7YnJlYWsgZTtkZWZhdWx0OnA9bDticmVhayBlfTB8YVs0NzI2OF18''@;'; + put 'put ''fCgkcigwLDEwNDUyNSxmKSxhWzQ3MjY4XT0xKSxwPWx9fXdoaWxlKDApOzB8YVs0NzI2OV18fHVzKDE4OTA3NiwwLDApLChjPTB8YVs0NzI3MF0pPj4+MD49KDB8YVs0NzI3MV0pPj4+MCYmKFEwKDE4OTA3NiwxKSxjPTB8YVs0NzI3MF0pLGFbNDcyNzBdPWMrMSxmZVtjPj4wXT00MCxmPXA7''@;'; + put 'put ''ZTpmb3IoOzspe3N3aXRjaCgwfGZlW2Y+PjBdKXtjYXNlIDA6YnJlYWsgZTtjYXNlIDkyOmNhc2UgNDE6Y2FzZSA0MDooYz0wfGFbNDcyNzBdKT4+PjA+PSgwfGFbNDcyNzFdKT4+PjAmJihRMCgxODkwNzYsMSksYz0wfGFbNDcyNzBdKSxhWzQ3MjcwXT1jKzEsZmVbYz4+MF09OTJ9KGM9MHxh''@;'; + put 'put ''WzQ3MjcwXSk+Pj4wPj0oMHxhWzQ3MjcxXSk+Pj4wJiYoUTAoMTg5MDc2LDEpLGM9MHxhWzQ3MjcwXSksQT0wfGZlW2Y+PjBdLGFbNDcyNzBdPWMrMSxmZVtjPj4wXT1BLGY9ZisxfDB9cmV0dXJuKGM9MHxhWzQ3MjcwXSk+Pj4wPj0oMHxhWzQ3MjcxXSk+Pj4wJiYoUTAoMTg5MDc2LDEpLGM9''@;'; + put 'put ''MHxhWzQ3MjcwXSksYVs0NzI3MF09YysxLGZlW2M+PjBdPTQxLCgwfHApIT0oMHxsKSYmRnQocCksKGM9MHxhWzQ3MjcwXSk+Pj4wPj0oMHxhWzQ3MjcxXSk+Pj4wJiYoUTAoMTg5MDc2LDEpLGM9MHxhWzQ3MjcwXSksZmVbYz4+MF09MCxhWzQ3MjcwXT1BPTB8YVs0NzI2OV0sbGU9bSwwfEF9''@;'; + put 'put ''ZnVuY3Rpb24geGFlKGwpe2x8PTA7dmFyIGM9MCxmPTA7Yz0wO2U6Zm9yKDs7KXtmb3IoOzspe2lmKCEoKGY9MHxmZVtsPj4wXSk8PDI0Pj4yNCkpYnJlYWsgZTtpZighKCgyNTUmZik8MTI3KSlicmVhaztsPWwrMXwwfWlmKCgtNCZmKTw8MjQ+PjI0IT0tNjQpe2M9MjticmVha31jPTEsbD1s''@;'; + put 'put ''KzJ8MH1yZXR1cm4gMHxjfWZ1bmN0aW9uIFhJKGwsYyxmLHAsbSl7Y3w9MCxmfD0wLHB8PTAsbXw9MDt2YXIgdyxiLGssTSxELEE9MCxSPTAsRz0wO0Q9bGUsbGU9bGUrOTZ8MCx3PUQrODB8MCxiPUQrNzJ8MCxNPUQrNjR8MCxrPUQsX1soQT1EKzMyfDApPj4zXT0rX1sobHw9MCk+PjNdLF9b''@;'; + put 'put ''QSs4Pj4zXT0rX1tsKzg+PjNdLF9bQSsxNj4+M109K19bYz4+M10sX1tBKzI0Pj4zXT0rX1tjKzg+PjNdO2Rve2lmKCgwfHU1KGYsQSxiKSk+PTApe2lmKG0pYVt3Pj4yXT1hW2I+PjJdLGFbdys0Pj4yXT1hW2IrND4+Ml0sUmQodyxNKTtlbHNle2ZvcihtPTB8YVs0NzI3NF0sKDB8KGw9MHxh''@;'; + put 'put ''WyhjPWYrNHwwKT4+Ml0pKT4oMHxhWzQ3MjczXSk/KGw9bT8wfFYwKG0sbDw8NSk6MHxRbihsPDw1KSxhWzQ3Mjc0XT1sLGFbNDcyNzNdPUE9MHxhW2M+PjJdLG09bCk6QT1sLGM9MHxhW2Y+PjJdLGw9MDshKCgwfGwpPj0oMHxBKSk7KWFbKFI9bSsobDw8NSl8MCk+PjJdPWFbKGY9YysobDw8''@;'; + put 'put ''NCl8MCk+PjJdLGFbUis0Pj4yXT1hW2YrND4+Ml0sYVtSKzg+PjJdPWFbZis4Pj4yXSxhW1IrMTI+PjJdPWFbZisxMj4+Ml0sYVsoUj1tKyhsPDw1KSsxNnwwKT4+Ml09YVsoRz1jKygoKDB8KGY9bCsxfDApKSUoMHxBKXwwKTw8NCl8MCk+PjJdLGFbUis0Pj4yXT1hW0crND4+Ml0sYVtSKzg+''@;'; + put 'put ''PjJdPWFbRys4Pj4yXSxhW1IrMTI+PjJdPWFbRysxMj4+Ml0sbD1mO2lmKGFbaz4+Ml09MCxhW2srND4+Ml09MCxhW2srOD4+Ml09MCxhW2srMTI+PjJdPTAsYVtrKzE2Pj4yXT0wLGFbaysyMD4+Ml09MCxhW2srMjQ+PjJdPTAsYVtrKzI4Pj4yXT0wLGFbdz4+Ml09YVtiPj4yXSxhW3crND4+''@;'; + put 'put ''Ml09YVtiKzQ+PjJdLCgwfHE5KG0sQSx3LGssTSkpPDApe2w9MDticmVha319aWYoMHxWUSgwfGFbKGw9TSs0fDApPj4yXSkpbD0wO2Vsc2V7Zm9yKEE9MHxhW2w+PjJdLGw9MHxhWzQ3Mjc1XSxtPTB8YVtNPj4yXSxjPTA7ISgoMHxjKT49KDB8QSkpOylhWyhHPWwrKGM8PDQpfDApPj4yXT1h''@;'; + put 'put ''WyhSPW0rKGM8PDQpfDApPj4yXSxhW0crND4+Ml09YVtSKzQ+PjJdLGFbRys4Pj4yXT1hW1IrOD4+Ml0sYVtHKzEyPj4yXT1hW1IrMTI+PjJdLGM9YysxfDA7YVtwPj4yXT1BfX1lbHNlIGw9MH13aGlsZSgwKTtyZXR1cm4gbGU9RCwwfGx9ZnVuY3Rpb24gVlEobCl7bHw9MDt2YXIgZixwLGM9''@;'; + put 'put ''MDtwPWxlLGxlPWxlKzE2fDAsZj1wLGM9MHxhWzQ3Mjc2XTtkb3tpZigoMHxjKTwoMHxsKSl7aWYoYz0wfFYwKDB8YVs0NzI3NV0sKGw9bCszMDAtKCgwfGwpJTMwMHwwKStjfDApPDw0KSxhWzQ3Mjc1XT1jLGMpe2FbNDcyNzZdPWwsbD0wO2JyZWFrfSRyKDEsMTA0NjE1LGYpLGw9MTticmVh''@;'; + put 'put ''a31sPTB9d2hpbGUoMCk7cmV0dXJuIGxlPXAsMHxsfWZ1bmN0aW9uIFRhZSgpe3ZhciBjLGw9MCxmPTA7Yz1sZSxsZT1sZSsxNnwwLGw9YyxhWzQ3Mjc3XT0xKyhmPTB8YVs0NzI3N10pO2Rve2lmKCgwfGYpPD0wKXtpZihmPTB8UW4oNDgwMCksYVs0NzI3NV09ZiwhZil7JHIoMSwxMDQ2Mzgs''@;'; + put 'put ''bCksbD0xO2JyZWFrfWFbNDcyNzZdPTMwMCxhWzQ3Mjc4XT0wLGFbNDcyNzldPTAsbD0wfWVsc2UgbD0wfXdoaWxlKDApO3JldHVybiBsZT1jLDB8bH1mdW5jdGlvbiBqUSgpe3ZhciBjLGY7Yz1sZSxsZT1sZSsxNnwwLGFbNDcyNzddPShmPTB8YVs0NzI3N10pLTEsKDB8Zik8PTEmJkZ0KDB8''@;'; + put 'put ''YVs0NzI3NV0pLGxlPWN9ZnVuY3Rpb24gYnkobCxjKXtyZXR1cm4gMHxaUShsfD0wLGN8PTAsMCl9ZnVuY3Rpb24gWlEobCxjLGYpe2x8PTAsY3w9MCxmfD0wO3ZhciBwZSxnZSxiZSxMZSxSZSxIZSxTdCxrdCxzdCxFdCxadCxjdCxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9''@;'; + put 'put ''MCxHPTAsSz0wLE9lPTAsVmU9MCxxZT0wLG50PTAsV2U9MCxvdD0wLGJ0PTAsYW49MDtmb3IoY3Q9bGUsbGU9bGUrMTc2fDAsU3Q9Y3QrMTY4fDAsWnQ9Y3QrMTI4fDAsUmU9Y3QrMTIwfDAsT2U9Y3QrMTEyfDAsQT1jdCsxMDR8MCxwZT1jdCs4OHwwLE09Y3QrNzJ8MCxtPWN0KzY0fDAsZ2U9''@;'; + put 'put ''Y3QrMTYwfDAsc3Q9Y3QrMTUyfDAsSGU9Y3QrMTQ0fDAsYmU9Y3QrMzJ8MCxMZT1jdCxFdD1jdCsxMzZ8MCxhWzQ3Mjc4XT0xKygwfGFbNDcyNzhdKSxhWzQ3Mjc5XT0oMHxhWzQ3Mjc5XSkrKGt0PTB8YVtsKzgwPj4yXSkscD1sKzg4fDA7Oyl7aWYoIShXZT0wfGFbcD4+Ml0pKXtvdD00O2Jy''@;'; + put 'put ''ZWFrfWlmKCEoMHxmZVsxMTIrKHA9MHxhW1dlKzE2Pj4yXSk+PjBdKSl7b3Q9NTticmVha31wPXArMTE2fDB9ZG97aWYoND09KDB8b3QpKSRyKDEsMTA0NzE5LG0pLHA9MDtlbHNlIGlmKDU9PSgwfG90KSlpZigwfHpRKGt0LG50PTB8YVtsKzg0Pj4yXSxsKSlwPTA7ZWxzZXsoMHwobT1rdDw8''@;'; + put 'put ''MykpPigwfGFbNDcyODBdKSYmKHA9KHA9MHxhWzQ3MjgxXSk/MHxWMChwLGt0PDw3KTowfFFuKGt0PDw3KSxhWzQ3MjgxXT1wLGFbNDcyODBdPW0pO2U6ZG97aWYoKDB8a3QpPjEmJitfW250Kzg+PjNdPitfW250KzQwPj4zXSlmb3IocD0wOzspe2lmKCgwfHApPT0oMHxrdCkpe1I9MTticmVh''@;'; + put 'put ''ayBlfWs9K19bKFZlPW50KyhwPDw1KSsyNHwwKT4+M10sX1tWZT4+M109LStfWyhxZT1udCsocDw8NSkrOHwwKT4+M10sX1txZT4+M109LWsscD1wKzF8MH1lbHNlIFI9MH13aGlsZSgwKTtpZihWZT1XZSs0OHwwLHFlPVdlKy00OHwwLCgwfChwPTB8YVsoMz09KDB8KEs9MyZhW1dlPj4yXSkp''@;'; + put 'put ''P1dlOlZlKSs0MD4+Ml0pKT09KDB8YVsoMj09KDB8Syk/V2U6cWUpKzQwPj4yXSkpe2FbQT4+Ml09MHx0aShwKSwkcigxLDEwNDgyNixBKSxwPTA7YnJlYWt9RD1rdCstMXwwLEs9Rz0wfGFbNDcyODFdLHA9MCx3PTA7ZTpmb3IoOzspe2lmKCgwfHcpPj0oMHxrdCkpe3c9RCxNPXA7YnJlYWt9''@;'; + put 'put ''bT0oMHx3KT4wPytfW250Kyh3PDw1KSs4Pj4zXT4rX1tudCsodystMTw8NSkrOD4+M10/LTE6MTowLEE9KDB8dyk8KDB8RCk/K19bbnQrKHcrMTw8NSkrOD4+M10+K19bbnQrKHc8PDUpKzg+PjNdPzE6LTE6MDt0OmRve2lmKCgwfG0pIT0oMHxBKSl7aWYoMT09KDB8bSl8LTE9PSgwfEEpKXtf''@;'; + put 'put ''W0crKHA8PDQpPj4zXT0rX1sobT1udCsodzw8NSl8MCk+PjNdLEE9cCsxfDAsX1tHKyhwPDw0KSs4Pj4zXT0rX1tudCsodzw8NSkrMjQ+PjNdLF9bRysoQTw8NCk+PjNdPStfW20+PjNdLG09bnQrKHc8PDUpKzh8MCxvdD0yOTticmVha31fW0crKHA8PDQpPj4zXT0rX1sobT1udCsodzw8NSkr''@;'; + put 'put ''MTZ8MCk+PjNdLEE9cCsxfDAsX1tHKyhwPDw0KSs4Pj4zXT0rX1tudCsodzw8NSkrOD4+M10sX1tHKyhBPDw0KT4+M109K19bbT4+M10sbT1udCsodzw8NSkrMjR8MCxvdD0yOTticmVha31zd2l0Y2goMHxtKXtjYXNlLTE6YnJlYWsgdDtjYXNlIDA6YnJlYWs7ZGVmYXVsdDpvdD0yODticmVh''@;'; + put 'put ''ayBlfV9bRysocDw8NCk+PjNdPStfWyhtPW50Kyh3PDw1KXwwKT4+M10sQT1wKzF8MCxfW0crKHA8PDQpKzg+PjNdPStfW250Kyh3PDw1KSsyND4+M10sX1tHKyhBPDw0KT4+M109K19bbT4+M10sbT1udCsodzw8NSkrOHwwLG90PTI5fXdoaWxlKDApOzI5PT0oMHxvdCkmJihvdD0wLF9bRyso''@;'; + put 'put ''QTw8NCkrOD4+M109K19bbT4+M10scD1wKzJ8MCksdz13KzF8MH1pZigyOD09KDB8b3QpKXthW00+PjJdPW0sYVtNKzQ+PjJdPW0sYVtNKzg+PjJdPTQ4MCwkcigxLDEwNDc2MSxNKSxwPTA7YnJlYWt9ZTpmb3IoOyEoKDB8dyk8PS0xKTspe3A9KDB8dyk8KDB8RCk/K19bbnQrKHc8PDUpKzg+''@;'; + put 'put ''PjNdPitfW250Kyh3KzE8PDUpKzg+PjNdPy0xOjE6MCxtPSgwfHcpPjA/K19bbnQrKHcrLTE8PDUpKzg+PjNdPitfW250Kyh3PDw1KSs4Pj4zXT8xOi0xOjA7dDpkb3tpZigoMHxwKSE9KDB8bSkpe2lmKDE9PSgwfHApfC0xPT0oMHxtKSl7X1tHKyhNPDw0KT4+M109K19bKHA9bnQrKHc8PDUp''@;'; + put 'put ''fDApPj4zXSxtPU0rMXwwLF9bRysoTTw8NCkrOD4+M109K19bbnQrKHc8PDUpKzI0Pj4zXSxfW0crKG08PDQpPj4zXT0rX1twPj4zXSxwPW50Kyh3PDw1KSs4fDAsQT0yO2JyZWFrfV9bRysoTTw8NCk+PjNdPStfWyhwPW50Kyh3PDw1KSsxNnwwKT4+M10sbT1NKzF8MCxfW0crKE08PDQpKzg+''@;'; + put 'put ''PjNdPStfW250Kyh3PDw1KSs4Pj4zXSxfW0crKG08PDQpPj4zXT0rX1twPj4zXSxwPW50Kyh3PDw1KSsyNHwwLEE9MjticmVha31zd2l0Y2goMHxwKXtjYXNlIDA6X1tHKyhNPDw0KT4+M109K19bKHA9bnQrKHc8PDUpKzE2fDApPj4zXSxtPU0rMXwwLF9bRysoTTw8NCkrOD4+M109K19bbnQr''@;'; + put 'put ''KHc8PDUpKzg+PjNdLF9bRysobTw8NCk+PjNdPStfW3A+PjNdLHA9bnQrKHc8PDUpKzI0fDAsQT0yO2JyZWFrIHQ7Y2FzZS0xOl9bRysoTTw8NCk+PjNdPStfWyhhbj1udCsodzw8NSkrMTZ8MCk+PjNdLEE9TSsxfDAsX1tHKyhNPDw0KSs4Pj4zXT0rX1socD1udCsodzw8NSkrOHwwKT4+M10s''@;'; + put 'put ''X1tHKyhBPDw0KT4+M109K19bYW4+PjNdLGJ0PU0rMnwwLF9bRysoQTw8NCkrOD4+M109K19bKGFuPW50Kyh3PDw1KSsyNHwwKT4+M10sX1tHKyhidDw8NCk+PjNdPStfWyhBPW50Kyh3PDw1KXwwKT4+M10sbT1NKzN8MCxfW0crKGJ0PDw0KSs4Pj4zXT0rX1thbj4+M10sX1tHKyhtPDw0KT4+''@;'; + put 'put ''M109K19bQT4+M10sQT00O2JyZWFrIHQ7ZGVmYXVsdDpvdD00MjticmVhayBlfX13aGlsZSgwKTtfW0crKG08PDQpKzg+PjNdPStfW3A+PjNdLHc9dystMXwwLE09TStBfDB9aWYoNDI9PSgwfG90KSl7YVtwZT4+Ml09cCxhW3BlKzQ+PjJdPXAsYVtwZSs4Pj4yXT01MTMsJHIoMSwxMDQ3NjEs''@;'; + put 'put ''cGUpLHA9MDticmVha31lOmRve2lmKFIpe2ZvcihwPTA7Oyl7aWYoKDB8cCk+PSgwfGt0KSl7cD0wO2JyZWFrfWs9K19bKGJ0PW50KyhwPDw1KSsyNHwwKT4+M10sX1tidD4+M109LStfWyhhbj1udCsocDw8NSkrOHwwKT4+M10sX1thbj4+M109LWsscD1wKzF8MH1mb3IoOzspe2lmKCgwfHAp''@;'; + put 'put ''Pj0oMHxNKSl7cD0wO2JyZWFrIGV9X1soYW49RysocDw8NCkrOHwwKT4+M109LStfW2FuPj4zXSxwPXArMXwwfX1lbHNlIHA9MH13aGlsZSgwKTtmb3IoOyEoKDB8cCk+PSgwfGt0KSk7KV9bbnQrKHA8PDUpPj4zXT0yMTQ3NDgzNjQ3LF9bbnQrKHA8PDUpKzE2Pj4zXT0tMjE0NzQ4MzY0OCxw''@;'; + put 'put ''PXArMXwwO2lmKGFbZ2U+PjJdPUssYVsoQT1nZSs0fDApPj4yXT1NLF9bYmU+PjNdPStfW2w+PjNdLF9bYmUrOD4+M109K19bbCs4Pj4zXSxfW2JlKzE2Pj4zXT0rX1tsKzQwPj4zXSxfW2JlKzI0Pj4zXT0rX1tsKzQ4Pj4zXSwoMHx1NShnZSxiZSxzdCkpPDApeyRyKDEsMTA0ODY1LE9lKSxw''@;'; + put 'put ''PTA7YnJlYWt9aWYoZilhW1N0Pj4yXT1hW3N0Pj4yXSxhW1N0KzQ+PjJdPWFbc3QrND4+Ml0sUmQoU3QsSGUpO2Vsc2V7Zm9yKHA9MHxhWzQ3Mjc0XSwoMHwobT0wfGFbQT4+Ml0pKT4oMHxhWzQ3MjczXSkmJihwPXA/MHxWMChwLG08PDUpOjB8UW4obTw8NSksYVs0NzI3NF09cCxhWzQ3Mjcz''@;'; + put 'put ''XT1tPTB8YVtBPj4yXSksdz0wfGFbNDcyODFdLEE9MDshKCgwfEEpPj0oMHxtKSk7KWFbKGJ0PXArKEE8PDUpfDApPj4yXT1hWyhhbj13KyhBPDw0KXwwKT4+Ml0sYVtidCs0Pj4yXT1hW2FuKzQ+PjJdLGFbYnQrOD4+Ml09YVthbis4Pj4yXSxhW2J0KzEyPj4yXT1hW2FuKzEyPj4yXSxhWyhi''@;'; + put 'put ''dD1wKyhBPDw1KSsxNnwwKT4+Ml09YVsoT2U9dysoKCgwfChhbj1BKzF8MCkpJSgwfG0pfDApPDw0KXwwKT4+Ml0sYVtidCs0Pj4yXT1hW09lKzQ+PjJdLGFbYnQrOD4+Ml09YVtPZSs4Pj4yXSxhW2J0KzEyPj4yXT1hW09lKzEyPj4yXSxBPWFuO2lmKDB8ZmVbbCsyOT4+MF0/KGI9K2hhKCso''@;'; + put 'put ''az0rX1tsKzE2Pj4zXSkpLGs9K0RhKCtrKSk6KGI9MCxrPTApLF9bTGUrOD4+M109ayxfW0xlPj4zXT1iLDB8ZmVbbCs2OT4+MF0/KGI9LStoYSgrKGs9K19bbCs1Nj4+M10pKSxrPS0rRGEoK2spKTooYj0wLGs9MCksX1tMZSsyND4+M109ayxfW0xlKzE2Pj4zXT1iLGFbU3Q+PjJdPWFbc3Q+''@;'; + put 'put ''PjJdLGFbU3QrND4+Ml09YVtzdCs0Pj4yXSwoMHxxOShwLG0sU3QsTGUsSGUpKTwwKXskcigxLDEwNDkwNCxSZSkscD0wO2JyZWFrfX1pZigwfFZRKDB8YVsoTT1IZSs0fDApPj4yXSkpcD0wO2Vsc2V7Zm9yKHA9MDshKCgwfHApPj0oMHxrdCkpOylfW250KyhwPDw1KT4+M109MjE0NzQ4MzY0''@;'; + put 'put ''NyxfW250KyhwPDw1KSsxNj4+M109LTIxNDc0ODM2NDgscD1wKzF8MDtmb3IoQT0wfGFbTT4+Ml0sdz0wfGFbNDcyNzVdLG09MHxhW0hlPj4yXSxwPTA7Oyl7aWYoKDB8cCk+PSgwfEEpKXtBPTEscD0xMCxtPTA7YnJlYWt9YVsoYW49dysocDw8NCl8MCk+PjJdPWFbKGJ0PW0rKHA8PDQpfDAp''@;'; + put 'put ''Pj4yXSxhW2FuKzQ+PjJdPWFbYnQrND4+Ml0sYVthbis4Pj4yXT1hW2J0Kzg+PjJdLGFbYW4rMTI+PjJdPWFbYnQrMTI+PjJdLHA9cCsxfDB9Zm9yKDsoMHxtKTwxNSZBPDwyND4+MjQhPTA7KXtmb3IoR1EobnQsa3QsMHxhWzQ3Mjc1XSwwfGFbTT4+Ml0scCksdz0wOyEoKDB8dyk+PSgwfGt0''@;'; + put 'put ''KSk7KXtpZigyMTQ3NDgzNjQ3PT0rX1tudCsodzw8NSk+PjNdKXtvdD04MjticmVha31pZigtMjE0NzQ4MzY0OD09K19bbnQrKHc8PDUpKzE2Pj4zXSl7b3Q9ODI7YnJlYWt9dz13KzF8MH04Mj09KDB8b3QpJiYob3Q9MCxwPWFuPXA8PDEsbT0oMHxhbik+KDB8MjE0NzQ4MzY0Ny8oMHxrdCkp''@;'; + put 'put ''PzE1Om0pLEE9KDB8dyk9PSgwfGt0KT8wOkEsbT1tKzF8MH1BPDwyND4+MjQmJihidD0wfHRpKDB8YVsoMz09KDMmYVtXZT4+Ml18MCk/V2U6VmUpKzQwPj4yXSksYW49MHx0aSgwfGFbKDI9PSgzJmFbV2U+PjJdfDApP1dlOnFlKSs0MD4+Ml0pLGFbWnQ+PjJdPWJ0LGFbWnQrND4+Ml09YW4s''@;'; + put 'put ''JHIoMCwxMDQ5NDIsWnQpLGFbU3Q+PjJdPWFbc3Q+PjJdLGFbU3QrND4+Ml09YVtzdCs0Pj4yXSxSZChTdCxFdCksR1EobnQsa3QsMHxhW0V0Pj4yXSwwfGFbRXQrND4+Ml0sMTApLEZ0KDB8YVtFdD4+Ml0pKSxhW2M+PjJdPWFbTT4+Ml0scD0wfGFbNDcyNzVdfX19d2hpbGUoMCk7cmV0dXJu''@;'; + put 'put ''IGxlPWN0LDB8cH1mdW5jdGlvbiB6UShsLGMsZil7bHw9MCxjfD0wLGZ8PTA7dmFyIFp0LGN0LGJ0LERyLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxLPTAscGU9MCxnZT0wLGJlPTAsT2U9MCxMZT0wLFJlPTAsSGU9MCxWZT0wLHFlPTAsbnQ9MCxXZT0wLG90PTAs''@;'; + put 'put ''U3Q9MCxrdD0wLHN0PTAsRXQ9MCxhbj0wLFNuPTAsSG49MCx1cj0wLEhyPTAsRXI9MCxmcj0wO2ZvcihEcj1sZSxsZT1sZSszMnwwLGN0PURyKzE2fDAsWnQ9RHIrOHwwLGs9RHIscD0wLGI9MDshKCgwfGIpPj0oMHxsKSk7KXc9YysoYjw8NSl8MCwhKCgoZ2U9K19bYysoYjw8NSkrOD4+M10t''@;'; + put 'put ''K19bYysoYjw8NSkrMjQ+PjNdKT49MD9nZTotZ2UpPC4wMSkmJiEoKChnZT0rX1t3Pj4zXS0rX1tjKyhiPDw1KSsxNj4+M10pPj0wP2dlOi1nZSk8LjAxKSYmKCgwfHApIT0oMHxiKSYmKGFbKEVyPWMrKHA8PDUpfDApPj4yXT1hW3c+PjJdLGFbRXIrND4+Ml09YVt3KzQ+PjJdLGFbRXIrOD4+''@;'; + put 'put ''Ml09YVt3Kzg+PjJdLGFbRXIrMTI+PjJdPWFbdysxMj4+Ml0sYVtFcisxNj4+Ml09YVt3KzE2Pj4yXSxhW0VyKzIwPj4yXT1hW3crMjA+PjJdLGFbRXIrMjQ+PjJdPWFbdysyND4+Ml0sYVtFcisyOD4+Ml09YVt3KzI4Pj4yXSkscD1wKzF8MCksYj1iKzF8MDtidD1jKzE2fDA7ZG97aWYoK19b''@;'; + put 'put ''Yz4+M10+K19bYnQ+PjNdfHwrX1soU249Yys4fDApPj4zXT4rX1sodXI9YysyNHwwKT4+M10pZnI9MTI7ZWxzZXtmb3IoRXI9cCstMXwwLEhuPTB8YVsxNTcxMl0sUmU9MDshKCgwfFJlKT49KDB8RXIpKTspe2lmKChtPStfWyhrdD1jKygoU3Q9UmUrMXwwKTw8NSl8MCk+PjNdKT4oQT0rX1so''@;'; + put 'put ''c3Q9YysoU3Q8PDUpKzE2fDApPj4zXSkpe2ZyPTE2O2JyZWFrfWlmKChNPStfWyhudD1jKyhTdDw8NSkrOHwwKT4+M10pPihEPStfWyhXZT1jKyhTdDw8NSkrMjR8MCk+PjNdKSl7ZnI9MTY7YnJlYWt9ITB8MV4oUj0wIT0oMHwoSGU9KGw9MSYoT2U9K19bKG90PWMrKFJlPDw1KXwwKT4+M10+''@;'; + put 'put ''QSkpKyhwPTEmKExlPStfWyhFdD1jKyhSZTw8NSkrMTZ8MCk+PjNdPG0pKSsoYj0xJihiZT0rX1socWU9YysoUmU8PDUpKzI0fDApPj4zXTxNKSkrKHc9MSYoaz0rX1soVmU9YysoUmU8PDUpKzh8MCk+PjNdPkQpKXwwKSkpfHwoYVtjdD4+Ml09UmUsYVtjdCs0Pj4yXT1TdCxUMChIbiwxMDUx''@;'; + put 'put ''NDIsY3QpLG5OKGYpKTtlOmRve2lmKFIpZm9yKExlPyhrPXcsUj0wLHA9a3Qsdz1FdCxmcj0yNCk6T2U/KGs9dyxsPTAsUj1wLHA9c3Qsdz1vdCxmcj0yNCk6YmU/KGs9dyxiPTAsUj1wLHA9bnQsdz1xZSxmcj0yNCk6ayYmKGs9MCxSPXAscD1XZSx3PVZlLGZyPTI0KSwyND09KDB8ZnIpJiYo''@;'; + put 'put ''ZnI9MCxSZT1+fitfW3c+PjNdLF9bdz4+M109K19bcD4+M10sX1twPj4zXT0rKDB8UmUpLHc9ayxwPVIpLFI9SGUrLTF8MCxrPTA7Oyl7aWYoKDB8ayk+PSgwfFIpKWJyZWFrIGU7ZG97aWYoMSE9KDB8cCkpe2lmKDE9PSgwfGwpKXtfW3N0Pj4zXT1nZT0rKDB8fn4oLjUqKCtfW3N0Pj4zXSsg''@;'; + put 'put ''K19bb3Q+PjNdKSsuNSkpLF9bb3Q+PjNdPWdlLGw9MDticmVha31pZigxPT0oMHxiKSl7X1tudD4+M109Z2U9KygwfH5+KC41KigrX1tudD4+M10rICtfW3FlPj4zXSkrLjUpKSxfW3FlPj4zXT1nZSxiPTA7YnJlYWt9MT09KDB8dykmJihfW1dlPj4zXT1nZT0rKDB8fn4oLjUqKCtfW1dlPj4z''@;'; + put 'put ''XSsgK19bVmU+PjNdKSsuNSkpLF9bVmU+PjNdPWdlLHc9MCl9ZWxzZSBfW2t0Pj4zXT1nZT0rKDB8fn4oLjUqKCtfW2t0Pj4zXSsgK19bRXQ+PjNdKSsuNSkpLF9bRXQ+PjNdPWdlLHA9MH13aGlsZSgwKTtrPWsrMXwwfX13aGlsZSgwKTswIT0oMHwodz0wfHJOKH5+KEc9K19bb3Q+PjNdKSx+''@;'; + put 'put ''fihLPStfW0V0Pj4zXSksfn4ocGU9K19ba3Q+PjNdKSx+fihnZT0rX1tzdD4+M10pKSkpJjAhPSgwfChwPTB8ck4ofn4oRD0rX1tWZT4+M10pLH5+KE09K19bcWU+PjNdKSx+fihBPStfW250Pj4zXSksfn4obT0rX1tXZT4+M10pKSkpPygwfHcpPCgwfHApPyhSZT1LPGdlLF9bKChXZT1LLUc+''@;'; + put 'put ''Z2UtcGUpP1JlP0V0Om90OlJlP2t0OnN0KT4+M109V2U/UmU/cGU6Z2U6UmU/SzpHLFJlPVN0KTooUmU9TTxtLF9bKChXZT1NLUQ+bS1BKT9SZT9FdDpvdDpSZT9rdDpzdCkrOD4+M109V2U/UmU/QTptOlJlP006RCxSZT1TdCk6UmU9U3R9aWYoMTY9PSgwfGZyKSl7YVtadD4+Ml09U3QsJHIo''@;'; + put 'put ''MSwxMDUwOTYsWnQpLG5OKGYpLHA9MTticmVha31pZighKChtPStfW2Y+PjNdKTwoQT0rX1tjPj4zXSkpJiYhKG0+K19bYnQ+PjNdKSYmISgoYW49K19bZis4Pj4zXSk8K19bU24+PjNdKSYmIShhbj4rX1t1cj4+M10pfHwobTxBP19bZj4+M109QTpBPW0sQT4obT0rX1tidD4+M10pJiYoX1tm''@;'; + put 'put ''Pj4zXT1tKSwoQT0rX1socD1mKzh8MCk+PjNdKTwobT0rX1tTbj4+M10pJiYoX1twPj4zXT1tLEE9bSksQT4obT0rX1t1cj4+M10pJiYoX1twPj4zXT1tKSksISgobT0rX1sodz1mKzQwfDApPj4zXSk8KEE9K19bKHA9YysoRXI8PDUpfDApPj4zXSl8fG0+K19bYysoRXI8PDUpKzE2Pj4zXXx8''@;'; + put 'put ''KEhyPStfW2YrNDg+PjNdLEhyPCtfW2MrKEVyPDw1KSs4Pj4zXSl8fEhyPitfW2MrKEVyPDw1KSsyND4+M10pKXtwPTA7YnJlYWt9bTxBJiYoX1t3Pj4zXT1BLG09QSksbT4oQT0rX1tjKyhFcjw8NSkrMTY+PjNdKSYmKF9bdz4+M109QSksKG09K19bKHA9Zis0OHwwKT4+M10pPChBPStfW2Mr''@;'; + put 'put ''KEVyPDw1KSs4Pj4zXSk/X1twPj4zXT1BOkE9bSxBPihtPStfW2MrKEVyPDw1KSsyND4+M10pJiYoX1twPj4zXT1tKSxwPTB9fXdoaWxlKDApO3JldHVybiAxMj09KDB8ZnIpJiYoJHIoMSwxMDUwNTEsayksbk4oZikscD0xKSxsZT1EciwwfHB9ZnVuY3Rpb24gR1EobCxjLGYscCxtKXtsfD0w''@;'; + put 'put ''LGZ8PTAscHw9MDt2YXIgT2UsTGUsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxLPTAscGU9MCxnZT0wLGJlPTAsUmU9MCxIZT0wLFZlPTAscWU9MCxudD0wLFdlPTA7TGU9MS8rKDB8KE9lPTB8QXIobXw9MCxjfD0wKSkpLG09MDtlOmZvcig7UmU9bSszfDAsISgoMHxSZSk+PSgw''@;'; + put 'put ''fHApKTspZm9yKEs9ZisobTw8NCl8MCxwZT1mKyhtPDw0KSs4fDAsYmU9bSsxfDAsZ2U9ZisoYmU8PDQpfDAsYmU9ZisoYmU8PDQpKzh8MCxrPW0rMnwwLGI9Zisoazw8NCl8MCxrPWYrKGs8PDQpKzh8MCxNPWYrKFJlPDw0KXwwLEQ9ZisoUmU8PDQpKzh8MCx3PTA7Oyl7aWYoKDB8dyk+KDB8''@;'; + put 'put ''T2UpKXttPVJlO2NvbnRpbnVlIGV9Zm9yKFI9KChudD0rX1tnZT4+M10pLShSPStfW0s+PjNdKSkqKEhlPUxlKisoMHx3KSkrUixHPSgoVmU9K19bYmU+PjNdKS0oRz0rX1twZT4+M10pKSpIZStHLFI9KCgoV2U9K19bYj4+M10pLShudD0oV2UtbnQpKkhlK250KSsoK19bTT4+M10tV2UpKkhl''@;'; + put 'put ''KSpIZStudC0oUj0obnQtUikqSGUrUikpKkhlK1IsRz0oKChxZT0rX1trPj4zXSktKFZlPShxZS1WZSkqSGUrVmUpKygrX1tEPj4zXS1xZSkqSGUpKkhlK1ZlLShHPShWZS1HKSpIZStHKSkqSGUrRyxBPTA7ISgoMHxBKT49KDB8YykpOylHPD0rX1tsKyhBPDw1KSsyND4+M10rMWUtNCYmRz49''@;'; + put 'put ''K19bbCsoQTw8NSkrOD4+M10tMWUtNCYmKCtfWyhtPWwrKEE8PDUpfDApPj4zXT5SJiYoX1ttPj4zXT1SKSwrX1sobT1sKyhBPDw1KSsxNnwwKT4+M108UiYmKF9bbT4+M109UikpLEE9QSsxfDA7dz13KzF8MH19ZnVuY3Rpb24gbk4obCl7dmFyIGYscCxBLHcsYixrLGM9MCxtPTAsTT0wLEQ9''@;'; + put 'put ''MCxSPTAsRz0wLEs9MDtmb3Ioaz1sZSxsZT1sZSsxMTJ8MCx3PWsrODB8MCxiPWsrNDh8MCxBPWsrOHwwLGY9MHxhWzE1NzEyXSxhWyhtPWspPj4yXT1hWyhwPTgwKyhsfD0wKXwwKT4+Ml0sVDAoZiwxMDUyNjgsbSksbT1sKzg0fDAsYz0wOyEoKDB8Yyk+PSgwfGFbcD4+Ml0pKTspRz0rX1so''@;'; + put 'put ''Sz0wfGFbbT4+Ml0pKyhjPDw1KT4+M10sUj0rX1tLKyhjPDw1KSs4Pj4zXSxEPStfW0srKGM8PDUpKzE2Pj4zXSxNPStfW0srKGM8PDUpKzI0Pj4zXSxhW0E+PjJdPWMsX1tBKzg+PjNdPUcsX1tBKzE2Pj4zXT1SLF9bQSsyND4+M109RCxfW0ErMzI+PjNdPU0sVDAoZiwxMDUyNzksQSksYz1j''@;'; + put 'put ''KzF8MDtHPStfW2wrOD4+M10sUj0rX1tsKzE2Pj4zXSxLPTB8ZmVbbCsyOT4+MF0/MTA1MzEwOjEwNTMyMixfW2I+PjNdPStfW2w+PjNdLF9bYis4Pj4zXT1HLF9bYisxNj4+M109UixhW2IrMjQ+PjJdPUssVDAoZiwxMDUzMzgsYiksUj0rX1tsKzQ4Pj4zXSxHPStfW2wrNTY+PjNdLEs9MHxm''@;'; + put 'put ''ZVtsKzY5Pj4wXT8xMDUzMTA6MTA1MzIyLF9bdz4+M109K19bbCs0MD4+M10sX1t3Kzg+PjNdPVIsX1t3KzE2Pj4zXT1HLGFbdysyND4+Ml09SyxUMChmLDEwNTM4OSx3KSxsZT1rfWZ1bmN0aW9uIHJOKGwsYyxmLHApe2x8PTAsY3w9MCxmfD0wLHB8PTA7ZG97aWYoKDB8Yyk+KDB8ZikmKDB8''@;'; + put 'put ''cCk+KDB8bCkpe2lmKCEoKDB8Zik+KDB8bCl8KDB8cCk8KDB8bCkpKXtsPXAtbHwwO2JyZWFrfWlmKCgwfGMpPCgwfGYpfCgwfGMpPigwfHApKXtsPSgwfChjPWMtbHwwKSk8KDB8KGw9cC1mfDApKT9jOmw7YnJlYWt9bD1jLWZ8MDticmVha31sPTB9d2hpbGUoMCk7cmV0dXJuIDB8bH1mdW5j''@;'; + put 'put ''dGlvbiBnayhsLGMpe3JldHVybiAwfFpRKGx8PTAsY3w9MCwxKX1mdW5jdGlvbiBJYWUobCxjLGYscCl7bHw9MCxmfD0wLHB8PTA7dmFyIGssbT0wLEE9MCx3PTAsYj0wO2ZvcihrPWxlLGxlPWxlKzgwfDAsQT1rLGI9MSxtPWN8PTA7dz1tLDAhPSgwfChtPTB8YVsxNzIrKDB8YVttKzE2Pj4y''@;'; + put 'put ''XSk+PjJdKSkmKDB8dykhPSgwfG0pOyliPWIrMXwwO2ZvcigoMHxiKT49MjEmJihBPTB8dnIoYjw8MikpLHc9MCxtPWM7ISgoMHx3KT49KDB8YikpOylhW0ErKHc8PDIpPj4yXT1tLHc9dysxfDAsbT0wfGFbMTcyKygwfGFbbSsxNj4+Ml0pPj4yXTtXUShsLEEsYixmLHApLCgwfGIpPjIwJiZG''@;'; + put 'put ''dChBKSxsZT1rfWZ1bmN0aW9uIFdRKGwsYyxmLHAsbSl7bHw9MCxmfD0wLHB8PTAsbXw9MDt2YXIgZ2UsVmUscWUsbnQsV2Usb3Qsa3Qsc3QsRXQsWnQsY3QsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxLPTAscGU9MCxiZT0wLE9lPTAsTGU9MCxSZT0wLEhlPTAsU3Q9MCxidD0w''@;'; + put 'put ''LGFuPTAsU249MCxIbj0wLHVyPTA7Y3Q9bGUsbGU9bGUrMzA0fDAscWU9Y3QrMjcyfDAsc3Q9Y3QrMzJ8MCxFdD1jdCsxNnwwLFp0PWN0LEs9Y3QrMTkyfDAsSGU9Y3QrMTc2fDAsQT1jdCsxNjB8MCxudD1jdCsyOTZ8MCxXZT1jdCsyODh8MCxiPSh3PTB8YVsoY3w9MCk+PjJdKS00OHwwLG90''@;'; + put 'put ''PTB8YVsoMj09KDB8KExlPTMmYVt3Pj4yXSkpP3c6YikrNDA+PjJdLGdlPTE2KyhrdD1jdCs5NnwwKXwwLFN0PTE2KygwfGFbKFJlPXcrMTZ8MCk+PjJdKXwwLGFbKFZlPWN0KzIwOHwwKT4+Ml09YVsoTGU9MTYrKDB8YVsxNisoMHxhWygzPT0oMHxMZSk/dzp3KzQ4fDApKzQwPj4yXSk+PjJd''@;'; + put 'put ''KXwwKT4+Ml0sYVtWZSs0Pj4yXT1hW0xlKzQ+PjJdLGFbVmUrOD4+Ml09YVtMZSs4Pj4yXSxhW1ZlKzEyPj4yXT1hW0xlKzEyPj4yXSxhW3FlPj4yXT1hW1N0Pj4yXSxhW3FlKzQ+PjJdPWFbU3QrND4+Ml0sYVtxZSs4Pj4yXT1hW1N0Kzg+PjJdLGFbcWUrMTI+PjJdPWFbU3QrMTI+PjJdLFlR''@;'; + put 'put ''KEssVmUscWUpLGFba3Q+PjJdPWFbSz4+Ml0sYVtrdCs0Pj4yXT1hW0srND4+Ml0sYVtrdCs4Pj4yXT1hW0srOD4+Ml0sYVtrdCsxMj4+Ml09YVtLKzEyPj4yXSxhW2dlPj4yXT1hW0s+PjJdLGFbZ2UrND4+Ml09YVtLKzQ+PjJdLGFbZ2UrOD4+Ml09YVtLKzg+PjJdLGFbZ2UrMTI+PjJdPWFb''@;'; + put 'put ''SysxMj4+Ml0sYVtFdD4+Ml09YVtLPj4yXSxhW0V0KzQ+PjJdPWFbSys0Pj4yXSxhW0V0Kzg+PjJdPWFbSys4Pj4yXSxhW0V0KzEyPj4yXT1hW0srMTI+PjJdLEs9a3QrMzJ8MCxTdD1rdCs0OHwwLFJlPTU2KygwfGFbUmU+PjJdKXwwLGFbVmU+PjJdPWFbKExlPTE2KygwfGFbb3QrMTY+PjJd''@;'; + put 'put ''KXwwKT4+Ml0sYVtWZSs0Pj4yXT1hW0xlKzQ+PjJdLGFbVmUrOD4+Ml09YVtMZSs4Pj4yXSxhW1ZlKzEyPj4yXT1hW0xlKzEyPj4yXSxhW3FlPj4yXT1hW1JlPj4yXSxhW3FlKzQ+PjJdPWFbUmUrND4+Ml0sYVtxZSs4Pj4yXT1hW1JlKzg+PjJdLGFbcWUrMTI+PjJdPWFbUmUrMTI+PjJdLFlR''@;'; + put 'put ''KEhlLFZlLHFlKSxhW1N0Pj4yXT1hW0hlPj4yXSxhW1N0KzQ+PjJdPWFbSGUrND4+Ml0sYVtTdCs4Pj4yXT1hW0hlKzg+PjJdLGFbU3QrMTI+PjJdPWFbSGUrMTI+PjJdLGFbSz4+Ml09YVtIZT4+Ml0sYVtLKzQ+PjJdPWFbSGUrND4+Ml0sYVtLKzg+PjJdPWFbSGUrOD4+Ml0sYVtLKzEyPj4y''@;'; + put 'put ''XT1hW0hlKzEyPj4yXSxhW1p0Pj4yXT1hW0hlPj4yXSxhW1p0KzQ+PjJdPWFbSGUrND4+Ml0sYVtadCs4Pj4yXT1hW0hlKzg+PjJdLGFbWnQrMTI+PjJdPWFbSGUrMTI+PjJdO2U6ZG97aWYoMSE9KDB8ZikmMD09KDB8ZmVbMTk0OTU0XSkpZm9yKGs9K19ba3Q+PjNdLE09K19bU3Q+PjNdLGJ0''@;'; + put 'put ''PWstTSxEPStfW2t0Kzg+PjNdLFI9K19ba3QrNTY+PjNdLHBlPUQtUixHPXBlKnBlLEcrYnQqYnQ8MWUtNj8oYVtnZT4+Ml09YVtrdD4+Ml0sYVtnZSs0Pj4yXT1hW2t0KzQ+PjJdLGFbZ2UrOD4+Ml09YVtrdCs4Pj4yXSxhW2dlKzEyPj4yXT1hW2t0KzEyPj4yXSxhW0s+PjJdPWFbU3Q+PjJd''@;'; + put 'put ''LGFbSys0Pj4yXT1hW1N0KzQ+PjJdLGFbSys4Pj4yXT1hW1N0Kzg+PjJdLGFbSysxMj4+Ml09YVtTdCsxMj4+Ml0sSGU9a3QrMjR8MCxSZT1rdCs0MHwwLE09MCxrPTApOihhbj1NLWssYnQ9K0QwKCsoRythbiphbikpLExlPTB8YVsyNDgrKDB8YVsxNisoMHxhW2wrNjA+PjJdKT4+Ml0pPj4y''@;'; + put 'put ''XSxTbj0rKDB8KDB8QXIoTGUsZistMXwwKSkvMiksRz1wZSpTbi9idCxfW2dlPj4zXT1HK2ssaz1hbipTbi9idCxIZT1rdCsyNHwwLF9bSGU+PjNdPWsrRCxfW0s+PjNdPUcrTSxSZT1rdCs0MHwwLF9bUmU+PjNdPVIrayxrPSsoMC1MZXwwKSxNPWFuKmsvYnQsaz1wZSprL2J0KSxwPTY9PSgw''@;'; + put 'put ''fHApLGJlPVdlKzR8MCxPZT1udCs0fDAsdz0wOzspe2lmKCgwfHcpPj0oMHxmKSlicmVhayBlO2I9KExlPTB8YVtjKyh3PDwyKT4+Ml0pLTQ4fDA7dDpkb3tpZigoMHxhWygyPT0oMyZhW0xlPj4yXXwwKT9MZTpiKSs0MD4+Ml0pPT0oMHxvdCkpZm9yKGFbRXQ+PjJdPWFba3Q+PjJdLGFbRXQr''@;'; + put 'put ''ND4+Ml09YVtrdCs0Pj4yXSxhW0V0Kzg+PjJdPWFba3QrOD4+Ml0sYVtFdCsxMj4+Ml09YVtrdCsxMj4+Ml0sYVtadD4+Ml09YVtTdD4+Ml0sYVtadCs0Pj4yXT1hW1N0KzQ+PjJdLGFbWnQrOD4+Ml09YVtTdCs4Pj4yXSxhW1p0KzEyPj4yXT1hW1N0KzEyPj4yXSxBPTA7Oyl7aWYoND09KDB8''@;'; + put 'put ''QSkpYnJlYWsgdDthWyhIbj1zdCsoQTw8NCl8MCk+PjJdPWFbKHVyPWt0KyhBPDw0KXwwKT4+Ml0sYVtIbis0Pj4yXT1hW3VyKzQ+PjJdLGFbSG4rOD4+Ml09YVt1cis4Pj4yXSxhW0huKzEyPj4yXT1hW3VyKzEyPj4yXSxBPUErMXwwfWVsc2UgZm9yKGFbRXQ+PjJdPWFbU3Q+PjJdLGFbRXQr''@;'; + put 'put ''ND4+Ml09YVtTdCs0Pj4yXSxhW0V0Kzg+PjJdPWFbU3QrOD4+Ml0sYVtFdCsxMj4+Ml09YVtTdCsxMj4+Ml0sYVtadD4+Ml09YVtrdD4+Ml0sYVtadCs0Pj4yXT1hW2t0KzQ+PjJdLGFbWnQrOD4+Ml09YVtrdCs4Pj4yXSxhW1p0KzEyPj4yXT1hW2t0KzEyPj4yXSxBPTA7Oyl7aWYoND09KDB8''@;'; + put 'put ''QSkpYnJlYWsgdDthWyh1cj1zdCsoMy1BPDw0KXwwKT4+Ml09YVsoSG49a3QrKEE8PDQpfDApPj4yXSxhW3VyKzQ+PjJdPWFbSG4rND4+Ml0sYVt1cis4Pj4yXT1hW0huKzg+PjJdLGFbdXIrMTI+PjJdPWFbSG4rMTI+PjJdLEE9QSsxfDB9fXdoaWxlKDApO2lmKHApe2ZvcihhW2JlPj4yXT00''@;'; + put 'put ''LGFbV2U+PjJdPVZlLEE9MDs0IT0oMHxBKTspYVsodXI9VmUrKEE8PDQpfDApPj4yXT1hWyhIbj1zdCsoQTw8NCl8MCk+PjJdLGFbdXIrND4+Ml09YVtIbis0Pj4yXSxhW3VyKzg+PjJdPWFbSG4rOD4+Ml0sYVt1cisxMj4+Ml09YVtIbisxMj4+Ml0sQT1BKzF8MDthW3FlPj4yXT1hW1dlPj4y''@;'; + put 'put ''XSxhW3FlKzQ+PjJdPWFbV2UrND4+Ml0sUmQocWUsbnQpLEF1KExlLDB8YVsoMj09KDMmYVtMZT4+Ml18MCk/TGU6YikrNDA+PjJdLDB8YVtudD4+Ml0sMHxhW09lPj4yXSxtKX1lbHNlIEF1KExlLDB8YVsoMj09KDMmYVtMZT4+Ml18MCk/TGU6YikrNDA+PjJdLHN0LDQsbSk7YVtWZT4+Ml09''@;'; + put 'put ''YVtFdD4+Ml0sYVtWZSs0Pj4yXT1hW0V0KzQ+PjJdLGFbVmUrOD4+Ml09YVtFdCs4Pj4yXSxhW1ZlKzEyPj4yXT1hW0V0KzEyPj4yXSxhW3FlPj4yXT1hW1p0Pj4yXSxhW3FlKzQ+PjJdPWFbWnQrND4+Ml0sYVtxZSs4Pj4yXT1hW1p0Kzg+PjJdLGFbcWUrMTI+PjJdPWFbWnQrMTI+PjJdLHRn''@;'; + put 'put ''KDAsTGUpLF9bZ2U+PjNdPStfW2dlPj4zXStrLF9bSGU+PjNdPStfW0hlPj4zXStNLF9bSz4+M109K19bSz4+M10rayxfW1JlPj4zXT0rX1tSZT4+M10rTSx3PXcrMXwwfWVsc2UgND09KDB8cCkmJihEYWUoQSxsKSxhW3FlPj4yXT1hW0E+PjJdLGFbcWUrND4+Ml09YVtBKzQ+PjJdLGFbcWUr''@;'; + put 'put ''OD4+Ml09YVtBKzg+PjJdLGFbcWUrMTI+PjJdPWFbQSsxMj4+Ml0sTGFlKGt0LHFlKSksQXUodywwfGFbKDI9PSgzJmFbdz4+Ml18MCk/dzpiKSs0MD4+Ml0sa3QsNCxtKSxhW1ZlPj4yXT1hW0V0Pj4yXSxhW1ZlKzQ+PjJdPWFbRXQrND4+Ml0sYVtWZSs4Pj4yXT1hW0V0Kzg+PjJdLGFbVmUr''@;'; + put 'put ''MTI+PjJdPWFbRXQrMTI+PjJdLGFbcWU+PjJdPWFbWnQ+PjJdLGFbcWUrND4+Ml09YVtadCs0Pj4yXSxhW3FlKzg+PjJdPWFbWnQrOD4+Ml0sYVtxZSsxMj4+Ml09YVtadCsxMj4+Ml0sdGcoMCx3KX13aGlsZSgwKTtsZT1jdH1mdW5jdGlvbiBZUShsLGMsZil7dmFyIHA7cD0rX1s4KyhmfD0w''@;'; + put 'put ''KT4+M10rICtfWzgrKGN8PTApPj4zXSxfWyhsfD0wKT4+M109K19bZj4+M10rICtfW2M+PjNdLF9bbCs4Pj4zXT1wfWZ1bmN0aW9uIERhZShsLGMpe2x8PTAsX1syMzMwNV09LjUqKCtfWzMyKyhjPTB8YVsxNisoY3w9MCk+PjJdKT4+M10rICtfW2MrMTY+PjNdKSxfWzIzMzA2XT0uNSooK19b''@;'; + put 'put ''Yys0MD4+M10rICtfW2MrMjQ+PjNdKSxhW2w+PjJdPWFbNDY2MTBdLGFbbCs0Pj4yXT1hWzQ2NjExXSxhW2wrOD4+Ml09YVs0NjYxMl0sYVtsKzEyPj4yXT1hWzQ2NjEzXX1mdW5jdGlvbiBMYWUobCxjKXtjfD0wO3ZhciBtLGY9MCxwPTAsQT0wLHc9MCxiPTA7Yj0uNSooKHA9K19bNDgrKGx8''@;'; + put 'put ''PTApPj4zXSkrKEE9K19bbD4+M10pKSxtPS41KigoZj0rX1tsKzU2Pj4zXSkrKHc9K19bbCs4Pj4zXSkpLEE9LjIqK0QwKCsoKHc9Zi13KSp3KyhBPXAtQSkqQSkpLDAhPShwPStEMCgrKChmPStfW2MrOD4+M10tbSkqZisodz0rX1tjPj4zXS1iKSp3KSkpJiYodz1iLXcvcCpBLGI9bS1mL3Aq''@;'; + put 'put ''QSxfW2wrMzI+PjNdPXcsX1tsKzE2Pj4zXT13LF9bbCs0MD4+M109YixfW2wrMjQ+PjNdPWIpfWZ1bmN0aW9uIEs1KGwsYyxmLHAsbSl7bHw9MCxjfD0wLGZ8PTAsbXw9MDt2YXIgU3QsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxLPTAscGU9MCxnZT0wLGJlPTAsT2U9MCxMZT0w''@;'; + put 'put ''LFJlPTAsSGU9MCxWZT0wLHFlPTAsbnQ9MCxXZT0wLG90PTAsa3Q9MCxzdD0wLEV0PTAsWnQ9MCxjdD0wO2lmKFN0PWxlLGxlPWxlKzIwOHwwLGJlPVN0KzE5MnwwLGdlPVN0KzE3NnwwLFdlPVN0KzMyfDAsUmU9U3QrMTZ8MCxIZT1TdCxWZT1TdCsxNjB8MCxxZT1TdCsxNDR8MCxPZT1TdCsx''@;'; + put 'put ''Mjh8MCxMZT1TdCsxMTJ8MCxBPTIxMzA3MDY0MzImKHB8PTApLDQzNjIwNzYxNj09KDB8KG50PTA9PSg4JnB8MCk/MD09KDB8QSk/NDpBOjgpKSkhZnVuY3Rpb24gT2FlKGwsYyxmLHApe2x8PTAsZnw9MCxwfD0wO3ZhciBtLEEsdyxiLGs7bT1sZSxsZT1sZSsxMTJ8MCxrPTIqK19bOCsoY3w9''@;'; + put 'put ''MCk+PjNdLGFbKEE9bSk+PjJdPWFbYz4+Ml0sYVtBKzQ+PjJdPWFbYys0Pj4yXSxhW0ErOD4+Ml09YVtjKzg+PjJdLGFbQSsxMj4+Ml09YVtjKzEyPj4yXSxfW0ErMTY+PjNdPStfW2MrMTY+PjNdLF9bQSsyND4+M109ay0rX1tjKzI0Pj4zXSxfW0ErMzI+PjNdPStfW2MrMzI+PjNdLF9bQSs0''@;'; + put 'put ''MD4+M109ay0rX1tjKzQwPj4zXSxfW0ErNDg+PjNdPStfW2MrNDg+PjNdLF9bQSs1Nj4+M109ay0rX1tjKzU2Pj4zXSxfW0ErNjQ+PjNdPStfW2MrNjQ+PjNdLF9bQSs3Mj4+M109ay0rX1tjKzcyPj4zXSxfW0ErODA+PjNdPStfW2MrODA+PjNdLF9bQSs4OD4+M109ay0rX1tjKzg4Pj4zXSxh''@;'; + put 'put ''Wyh3PUErOTZ8MCk+PjJdPWFbKGI9Yys5NnwwKT4+Ml0sYVt3KzQ+PjJdPWFbYis0Pj4yXSxhW3crOD4+Ml09YVtiKzg+PjJdLGFbdysxMj4+Ml09YVtiKzEyPj4yXSxRZihsLGMsZiwwLDAsMjU1JnApLFFmKGwsQSw3LDAsMCwwKSxsZT1tfShsLGMsZixtKTtlbHNle2ZvcihvdD0wfHZyKDY0''@;'; + put 'put ''KyhmPDw2KXwwKSxHPWYrLTF8MCxLPUhlKzh8MCxwZT1SZSs4fDAsUj0xMixwPTA7ISgoMHxwKT49KDB8ZikpOylhW1JlPj4yXT1hWyhEPWMrKHA8PDQpfDApPj4yXSxhW1JlKzQ+PjJdPWFbRCs0Pj4yXSxhW1JlKzg+PjJdPWFbRCs4Pj4yXSxhW1JlKzEyPj4yXT1hW0QrMTI+PjJdLCgwfHAp''@;'; + put 'put ''PCgwfEcpPyhhW0hlPj4yXT1hWyhEPWMrKChwPXArMXwwKTw8NCl8MCk+PjJdLGFbSGUrND4+Ml09YVtEKzQ+PjJdLGFbSGUrOD4+Ml09YVtEKzg+PjJdLGFbSGUrMTI+PjJdPWFbRCsxMj4+Ml0pOihhW0hlPj4yXT1hW2M+PjJdLGFbSGUrND4+Ml09YVtjKzQ+PjJdLGFbSGUrOD4+Ml09YVtj''@;'; + put 'put ''Kzg+PjJdLGFbSGUrMTI+PjJdPWFbYysxMj4+Ml0scD1wKzF8MCksUj1SPChNPS4zMzMzMzMzMzMzMzMzMzMzKitEMCgrKChrdD0rX1tLPj4zXS0rX1twZT4+M10pKmt0KyhNPStfW0hlPj4zXS0rX1tSZT4+M10pKk0pKSk/UjpNO2ZvcihrPTgzODg2MDgwPT0oMTY3NzcyMTZ8QSksRD00PT0o''@;'; + put 'put ''MHxudCksYj0xNjc3NzIxNj09KDB8QSkscD0wLHc9MDshKCgwfHcpPj0oMHxmKSk7KWFbUmU+PjJdPWFbKEE9Yysodzw8NCl8MCk+PjJdLGFbUmUrND4+Ml09YVtBKzQ+PjJdLGFbUmUrOD4+Ml09YVtBKzg+PjJdLGFbUmUrMTI+PjJdPWFbQSsxMj4+Ml0sKDB8dyk8KDB8Ryk/KGFbSGU+PjJd''@;'; + put 'put ''PWFbKEE9YysodysxPDw0KXwwKT4+Ml0sYVtIZSs0Pj4yXT1hW0ErND4+Ml0sYVtIZSs4Pj4yXT1hW0ErOD4+Ml0sYVtIZSsxMj4+Ml09YVtBKzEyPj4yXSk6KGFbSGU+PjJdPWFbYz4+Ml0sYVtIZSs0Pj4yXT1hW2MrND4+Ml0sYVtIZSs4Pj4yXT1hW2MrOD4+Ml0sYVtIZSsxMj4+Ml09YVtj''@;'; + put 'put ''KzEyPj4yXSksTT1SLytEMCgrKChrdD0rX1tLPj4zXS0rX1twZT4+M10pKmt0KyhNPStfW0hlPj4zXS0rX1tSZT4+M10pKk0pKSxNPWs/LjMzMzMzMzMzMzMzMzMzMzMqTTpiPy41Kk06TSxBPW90KyhwPDw0KXwwLEQ/KGFbZ2U+PjJdPWFbUmU+PjJdLGFbZ2UrND4+Ml09YVtSZSs0Pj4yXSxh''@;'; + put 'put ''W2dlKzg+PjJdPWFbUmUrOD4+Ml0sYVtnZSsxMj4+Ml09YVtSZSsxMj4+Ml0sYVtiZT4+Ml09YVtIZT4+Ml0sYVtiZSs0Pj4yXT1hW0hlKzQ+PjJdLGFbYmUrOD4+Ml09YVtIZSs4Pj4yXSxhW2JlKzEyPj4yXT1hW0hlKzEyPj4yXSxLSShWZSwuNSpNLGdlLGJlKSxhW0E+PjJdPWFbVmU+PjJd''@;'; + put 'put ''LGFbQSs0Pj4yXT1hW1ZlKzQ+PjJdLGFbQSs4Pj4yXT1hW1ZlKzg+PjJdLGFbQSsxMj4+Ml09YVtWZSsxMj4+Ml0pOihhW0E+PjJdPWFbUmU+PjJdLGFbQSs0Pj4yXT1hW1JlKzQ+PjJdLGFbQSs4Pj4yXT1hW1JlKzg+PjJdLGFbQSsxMj4+Ml09YVtSZSsxMj4+Ml0pLEE9b3QrKHArMTw8NCl8''@;'; + put 'put ''MCxhW2dlPj4yXT1hW1JlPj4yXSxhW2dlKzQ+PjJdPWFbUmUrND4+Ml0sYVtnZSs4Pj4yXT1hW1JlKzg+PjJdLGFbZ2UrMTI+PjJdPWFbUmUrMTI+PjJdLGFbYmU+PjJdPWFbSGU+PjJdLGFbYmUrND4+Ml09YVtIZSs0Pj4yXSxhW2JlKzg+PjJdPWFbSGUrOD4+Ml0sYVtiZSsxMj4+Ml09YVtI''@;'; + put 'put ''ZSsxMj4+Ml0sS0kocWUsTSxnZSxiZSksYVtBPj4yXT1hW3FlPj4yXSxhW0ErND4+Ml09YVtxZSs0Pj4yXSxhW0ErOD4+Ml09YVtxZSs4Pj4yXSxhW0ErMTI+PjJdPWFbcWUrMTI+PjJdLEE9cCszfDAsc3Q9b3QrKHArMjw8NCl8MCxhW2dlPj4yXT1hW1JlPj4yXSxhW2dlKzQ+PjJdPWFbUmUr''@;'; + put 'put ''ND4+Ml0sYVtnZSs4Pj4yXT1hW1JlKzg+PjJdLGFbZ2UrMTI+PjJdPWFbUmUrMTI+PjJdLGFbYmU+PjJdPWFbSGU+PjJdLGFbYmUrND4+Ml09YVtIZSs0Pj4yXSxhW2JlKzg+PjJdPWFbSGUrOD4+Ml0sYVtiZSsxMj4+Ml09YVtIZSsxMj4+Ml0sS0koT2UsMS1NLGdlLGJlKSxhW3N0Pj4yXT1h''@;'; + put 'put ''W09lPj4yXSxhW3N0KzQ+PjJdPWFbT2UrND4+Ml0sYVtzdCs4Pj4yXT1hW09lKzg+PjJdLGFbc3QrMTI+PjJdPWFbT2UrMTI+PjJdLEQ/KHN0PW90KyhBPDw0KXwwLGFbZ2U+PjJdPWFbUmU+PjJdLGFbZ2UrND4+Ml09YVtSZSs0Pj4yXSxhW2dlKzg+PjJdPWFbUmUrOD4+Ml0sYVtnZSsxMj4+''@;'; + put 'put ''Ml09YVtSZSsxMj4+Ml0sYVtiZT4+Ml09YVtIZT4+Ml0sYVtiZSs0Pj4yXT1hW0hlKzQ+PjJdLGFbYmUrOD4+Ml09YVtIZSs4Pj4yXSxhW2JlKzEyPj4yXT1hW0hlKzEyPj4yXSxLSShMZSwxLS41Kk0sZ2UsYmUpLGFbc3Q+PjJdPWFbTGU+PjJdLGFbc3QrND4+Ml09YVtMZSs0Pj4yXSxhW3N0''@;'; + put 'put ''Kzg+PjJdPWFbTGUrOD4+Ml0sYVtzdCsxMj4+Ml09YVtMZSsxMj4+Ml0scD1wKzR8MCk6cD1BLHc9dysxfDA7YVsoaz1vdCsocDw8NCl8MCk+PjJdPWFbb3Q+PjJdLGFbays0Pj4yXT1hW290KzQ+PjJdLGFbays4Pj4yXT1hW290Kzg+PjJdLGFbaysxMj4+Ml09YVtvdCsxMj4+Ml0sYVsoaz1v''@;'; + put 'put ''dCsocCsxPDw0KXwwKT4+Ml09YVsoYj1vdCsxNnwwKT4+Ml0sYVtrKzQ+PjJdPWFbYis0Pj4yXSxhW2srOD4+Ml09YVtiKzg+PjJdLGFbaysxMj4+Ml09YVtiKzEyPj4yXSxhWyhwPW90KyhwKzI8PDQpfDApPj4yXT1hWyhrPW90KzMyfDApPj4yXSxhW3ArND4+Ml09YVtrKzQ+PjJdLGFbcCs4''@;'; + put 'put ''Pj4yXT1hW2srOD4+Ml0sYVtwKzEyPj4yXT1hW2srMTI+PjJdLHA9MjE0NzQ4MzY0NyZudDtlOmRve2lmKCgwfHApPDIwMTMyNjU5Mil7aWYoKDB8cCk+PTgzODg2MDgwKXtpZigoMHxwKTwxMzQyMTc3Mjgpe2lmKCgwfHApPDEwMDY2MzI5Nil7aWYoODM4ODYwODAhPSgwfHApKWJyZWFrIGU7''@;'; + put 'put ''aWYoND09KDB8Zikpe3N0PTB8dnIoMTkyKSxhW3N0Pj4yXT1hW2M+PjJdLGFbc3QrND4+Ml09YVtjKzQ+PjJdLGFbc3QrOD4+Ml09YVtjKzg+PjJdLGFbc3QrMTI+PjJdPWFbYysxMj4+Ml0sYVsoRz1zdCsxNnwwKT4+Ml09YVsoYmU9YysxNnwwKT4+Ml0sYVtHKzQ+PjJdPWFbYmUrND4+Ml0s''@;'; + put 'put ''YVtHKzg+PjJdPWFbYmUrOD4+Ml0sYVtHKzEyPj4yXT1hW2JlKzEyPj4yXSxHPW90KzQ4fDAsX1soRD1zdCszMnwwKT4+M109Uj0rX1soYmU9b3QrNjR8MCk+PjNdLEs9b3QrNTZ8MCxfWyhxZT1zdCs0MHwwKT4+M109RXQ9K19bKHBlPW90KzcyfDApPj4zXSxfWyhPZT1zdCs0OHwwKT4+M109''@;'; + put 'put ''a3Q9K19bRz4+M10rUi0rX1trPj4zXSxfWyhIZT1zdCs1NnwwKT4+M109Y3Q9K19bSz4+M10rRXQtK19bb3QrNDA+PjNdLFp0PStfW2JlPj4zXStrdC0rX1tHPj4zXSxfWyhHPXN0KzY0fDApPj4zXT1adCxNPStfW3BlPj4zXStjdC0rX1tLPj4zXSxfWyhLPXN0KzcyfDApPj4zXT1NLF9bKHBl''@;'; + put 'put ''PXN0KzgwfDApPj4zXT1SK1p0LWt0LF9bc3QrODg+PjNdPUV0K00tY3QsYmU9b3QrOTZ8MCxfWyhmPXN0KzE0NHwwKT4+M109Y3Q9K19bKExlPW90KzgwfDApPj4zXSxSZT1vdCsxMDR8MCxfW3N0KzE1Mj4+M109TT0rX1soZ2U9b3QrODh8MCk+PjNdLF9bKFZlPXN0KzEyOHwwKT4+M109RXQ9''@;'; + put 'put ''K19bYmU+PjNdK2N0LStfW290KzExMj4+M10sX1sobnQ9c3QrMTM2fDApPj4zXT1rdD0rX1tSZT4+M10rTS0rX1tvdCsxMjA+PjNdLFp0PStfW0xlPj4zXStFdC0rX1tiZT4+M10sX1soYmU9c3QrMTEyfDApPj4zXT1adCxSPStfW2dlPj4zXStrdC0rX1tSZT4+M10sX1soUmU9c3QrMTIwfDAp''@;'; + put 'put ''Pj4zXT1SLF9bKGdlPXN0Kzk2fDApPj4zXT1jdCtadC1FdCxfWyhMZT1zdCsxMDR8MCk+PjNdPU0rUi1rdCxhWyhrPXN0KzE2MHwwKT4+Ml09YVsoYj1jKzMyfDApPj4yXSxhW2srND4+Ml09YVtiKzQ+PjJdLGFbays4Pj4yXT1hW2IrOD4+Ml0sYVtrKzEyPj4yXT1hW2IrMTI+PjJdLGFbKGs9''@;'; + put 'put ''c3QrMTc2fDApPj4yXT1hWyhjPWMrNDh8MCk+PjJdLGFbays0Pj4yXT1hW2MrND4+Ml0sYVtrKzg+PjJdPWFbYys4Pj4yXSxhW2srMTI+PjJdPWFbYysxMj4+Ml0sa2EobCxzdCwxMixtKSxhW1dlPj4yXT1hW0Q+PjJdLGFbV2UrND4+Ml09YVtEKzQ+PjJdLGFbV2UrOD4+Ml09YVtEKzg+PjJd''@;'; + put 'put ''LGFbV2UrMTI+PjJdPWFbRCsxMj4+Ml0sUj0rX1tPZT4+M10sX1soT2U9V2UrMTZ8MCk+PjNdPWt0PShrdD0rX1tEPj4zXSkra3QtUixFdD0rX1tIZT4+M10sX1soSGU9V2UrMjR8MCk+PjNdPU09KE09K19bcWU+PjNdKStNLUV0LF9bKHFlPVdlKzMyfDApPj4zXT0rX1tHPj4zXStrdC1SLF9b''@;'; + put 'put ''KGM9V2UrNDB8MCk+PjNdPStfW0s+PjNdK00tRXQsYVsobT1XZSs0OHwwKT4+Ml09YVtwZT4+Ml0sYVttKzQ+PjJdPWFbcGUrND4+Ml0sYVttKzg+PjJdPWFbcGUrOD4+Ml0sYVttKzEyPj4yXT1hW3BlKzEyPj4yXSxXbyhsLFdlLDQpLGFbV2U+PjJdPWFbZ2U+PjJdLGFbV2UrND4+Ml09YVtn''@;'; + put 'put ''ZSs0Pj4yXSxhW1dlKzg+PjJdPWFbZ2UrOD4+Ml0sYVtXZSsxMj4+Ml09YVtnZSsxMj4+Ml0sRXQ9K19bZ2U+PjNdLF9bT2U+PjNdPUV0LT0oTT0rX1tiZT4+M10pLUV0LFI9K19bTGU+PjNdLF9bSGU+PjNdPVItPShrdD0rX1tSZT4+M10pLVIsX1txZT4+M109K19bVmU+PjNdK0V0LU0sX1tj''@;'; + put 'put ''Pj4zXT0rX1tudD4+M10rUi1rdCxhW20+PjJdPWFbZj4+Ml0sYVttKzQ+PjJdPWFbZis0Pj4yXSxhW20rOD4+Ml09YVtmKzg+PjJdLGFbbSsxMj4+Ml09YVtmKzEyPj4yXSxXbyhsLFdlLDQpLEZ0KHN0KTticmVha31QcigxMDU0MzgsMTA1NDQ5LDczNywxMDU0NTgpfWlmKCgwfHApPDExNzQ0''@;'; + put 'put ''MDUxMil7aWYoMTAwNjYzMjk2IT0oMHxwKSlicmVhayBlO3N0PTB8dnIoKFZlPWYrNXwwKTw8NCksX1tzdD4+M109RXQ9LjYyNSooK19bYz4+M10tKEV0PStfWyhxZT1jKzE2fDApPj4zXSkpK0V0LExlPW90KzQ4fDAsX1tzdCs4Pj4zXT1jdD0uNSooK19bKGY9YysyNHwwKT4+M10tKGN0PStf''@;'; + put 'put ''WyhudD1jKzQwfDApPj4zXSkpK2N0KzEuNSooK19bKFJlPW90KzU2fDApPj4zXS0rX1soSGU9b3QrNzJ8MCk+PjNdKSxfW3N0KzE2Pj4zXT1adD0uMjUqKCtfW2M+PjNdLShadD0rX1txZT4+M10pKStadCxfW3N0KzI0Pj4zXT1jdCxfW3N0KzMyPj4zXT1adCxfW3N0KzQwPj4zXT0uNSooK19b''@;'; + put 'put ''Zj4+M10tKGt0PStfW250Pj4zXSkpK2t0LF9bc3QrNDg+PjNdPVp0PS41KigrX1trPj4zXS0rX1tMZT4+M10pK1p0LF9bc3QrNTY+PjNdPS41KigrX1tmPj4zXS0oa3Q9K19bbnQ+PjNdKSkra3QsX1tzdCs2ND4+M109WnQsX1tzdCs3Mj4+M109WnQ9LjUqKCtfW2Y+PjNdLShadD0rX1tudD4+''@;'; + put 'put ''M10pKStadCsoK19bUmU+PjNdLStfW0hlPj4zXSksX1tzdCs4MD4+M109RXQsX1tzdCs4OD4+M109WnQsX1tzdCs5Nj4+M109RXQsX1tzdCsxMDQ+PjNdPVp0LT0uMjUqKCtfW1JlPj4zXS0rX1tIZT4+M10pLF9bc3QrMTEyPj4zXT0rX1trPj4zXStFdC0rX1tMZT4+M10sX1tzdCsxMjA+PjNd''@;'; + put 'put ''PS41KigrX1tSZT4+M10tK19bSGU+PjNdKStadCxfW3N0KzEyOD4+M109K19bc3Q+PjNdLF9bc3QrMTM2Pj4zXT0uMjUqKCtfW1JlPj4zXS0rX1tIZT4+M10pK2N0LGthKGwsc3QsVmUsbSksX1tXZT4+M109K19bcWU+PjNdLF9bV2UrOD4+M109LjUqKCtfW2Y+PjNdLShjdD0rX1tudD4+M10p''@;'; + put 'put ''KStjdCxfW1dlKzE2Pj4zXT0rX1tjPj4zXSxfW1dlKzI0Pj4zXT0uNSooK19bYys4Pj4zXS0rX1tjKzU2Pj4zXSkrY3QsV28obCxXZSwyKSxGdChzdCk7YnJlYWt9aWYoMTE3NDQwNTEyIT0oMHxwKSlicmVhayBlO3N0PTB8dnIoKGY9ZisxfDApPDw0KSxfW3N0Pj4zXT0rX1tiPj4zXSxfW3N0''@;'; + put 'put ''Kzg+PjNdPStfW290KzI0Pj4zXS0uNSooK19bKHFlPW90KzU2fDApPj4zXS0rX1sobnQ9b3QrNzJ8MCk+PjNdKSxfW3N0KzE2Pj4zXT0rX1tvdCs0OD4+M10sX1tzdCsyND4+M109KGN0PStfW3FlPj4zXSktLjUqKGN0LStfW250Pj4zXSksX1tzdCszMj4+M109K19bYyszMj4+M10sX1tzdCs0''@;'; + put 'put ''MD4+M109LjUqKCtfW3FlPj4zXS0rX1tudD4+M10pKyArX1soV2U9Yys0MHwwKT4+M10sX1tzdCs0OD4+M109K19bYj4+M10sX1tzdCs1Nj4+M109LjUqKCtfW3FlPj4zXS0rX1tudD4+M10pKyArX1tXZT4+M10sX1tzdCs3Mj4+M109KGN0PStfW2MrOD4+M10pLS41KihjdC0rX1tjKzU2Pj4z''@;'; + put 'put ''XSksX1tzdCs2ND4+M109K19bYz4+M10sa2EobCxzdCxmLG0pLEZ0KHN0KTticmVha31pZigoMHxwKTwxNjc3NzIxNjApe2lmKCgwfHApPDE1MDk5NDk0NCl7aWYoMTM0MjE3NzI4IT0oMHxwKSlicmVhayBlO3N0PTB8dnIoKFZlPWYrNHwwKTw8NCksX1tzdD4+M109a3Q9LjUqKCtfW2M+PjNd''@;'; + put 'put ''LShrdD0rX1socWU9YysxNnwwKT4+M10pKStrdCsuMjUqKCtfW2s+PjNdLStfWyhIZT1vdCs0OHwwKT4+M10pLF9bc3QrOD4+M109Y3Q9LjUqKCtfWyhmPWMrMjR8MCk+PjNdLShjdD0rX1sobnQ9Yys0MHwwKT4+M10pKStjdCxfW3N0KzE2Pj4zXT1rdCxfW3N0KzI0Pj4zXT1FdD0uNSooK19b''@;'; + put 'put ''KExlPW90KzU2fDApPj4zXS0rX1soUmU9b3QrNzJ8MCk+PjNdKStjdCxfW3N0KzMyPj4zXT1rdD0uNSooK19baz4+M10tK19bSGU+PjNdKStrdCxfW3N0KzQwPj4zXT1FdCxfW3N0KzQ4Pj4zXT1rdCxfW3N0KzU2Pj4zXT1rdD0uNSooK19bTGU+PjNdLStfW1JlPj4zXSkrRXQsX1tzdCs2ND4+''@;'; + put 'put ''M109WnQ9LjUqKCtfW2M+PjNdLShadD0rX1txZT4+M10pKStadCstLjc1KigrX1trPj4zXS0rX1tIZT4+M10pLF9bc3QrNzI+PjNdPWt0LF9bc3QrODA+PjNdPVp0LF9bc3QrODg+PjNdPUV0LF9bc3QrOTY+PjNdPVp0PS41KigrX1tjPj4zXS0oWnQ9K19bcWU+PjNdKSkrWnQrLS4yNSooK19b''@;'; + put 'put ''az4+M10tK19bSGU+PjNdKSxfW3N0KzEwND4+M109RXQsX1tzdCsxMTI+PjNdPVp0LF9bc3QrMTIwPj4zXT1jdCxrYShsLHN0LFZlLG0pLF9bV2U+PjNdPStfW3FlPj4zXSxfW1dlKzg+PjNdPS41KigrX1tmPj4zXS0oY3Q9K19bbnQ+PjNdKSkrY3QsX1tXZSsxNj4+M109K19bYz4+M10sX1tX''@;'; + put 'put ''ZSsyND4+M109LjUqKCtfW2MrOD4+M10tK19bYys1Nj4+M10pK2N0LFdvKGwsV2UsMiksRnQoc3QpO2JyZWFrfWlmKDE1MDk5NDk0NCE9KDB8cCkpYnJlYWsgZTtzdD0wfHZyKChWZT1mKzJ8MCk8PDQpLF9bc3Q+PjNdPUV0PS41KigrX1tjPj4zXS0oRXQ9K19bKHFlPWMrMTZ8MCk+PjNdKSkr''@;'; + put 'put ''RXQrLjc1KigrX1trPj4zXS0rX1soSGU9b3QrNDh8MCk+PjNdKSxfW3N0Kzg+PjNdPWN0PS41KigrX1soZj1jKzI0fDApPj4zXS0oY3Q9K19bKG50PWMrNDB8MCk+PjNdKSkrY3QsX1tzdCsxNj4+M109RXQsX1tzdCsyND4+M109RXQ9LjI1KigrX1soTGU9b3QrNTZ8MCk+PjNdLStfWyhSZT1v''@;'; + put 'put ''dCs3MnwwKT4+M10pK2N0LF9bc3QrMzI+PjNdPS41KigrX1tjPj4zXS0oWnQ9K19bcWU+PjNdKSkrWnQrLjI1KigrX1trPj4zXS0rX1tIZT4+M10pLF9bc3QrNDA+PjNdPVp0PS41KigrX1tMZT4+M10tK19bUmU+PjNdKStFdCxfW3N0KzQ4Pj4zXT0uNSooK19bYz4+M10tKGt0PStfW3FlPj4z''@;'; + put 'put ''XSkpK2t0Ky0uMjUqKCtfW2s+PjNdLStfW0hlPj4zXSksX1tzdCs1Nj4+M109WnQsX1tzdCs2ND4+M109WnQ9LjUqKCtfW2M+PjNdLShadD0rX1txZT4+M10pKStadCstLjc1KigrX1trPj4zXS0rX1tIZT4+M10pLF9bc3QrNzI+PjNdPUV0LF9bc3QrODA+PjNdPVp0LF9bc3QrODg+PjNdPWN0''@;'; + put 'put ''LGthKGwsc3QsVmUsbSksX1tXZT4+M109K19bcWU+PjNdLF9bV2UrOD4+M109LjUqKCtfW2Y+PjNdLShjdD0rX1tudD4+M10pKStjdCxfW1dlKzE2Pj4zXT0rX1tjPj4zXSxfW1dlKzI0Pj4zXT0uNSooK19bYys4Pj4zXS0rX1tjKzU2Pj4zXSkrY3QsV28obCxXZSwyKSxGdChzdCk7YnJlYWt9''@;'; + put 'put ''aWYoKDB8cCk8MTg0NTQ5Mzc2KXtpZigxNjc3NzIxNjAhPSgwfHApKWJyZWFrIGU7c3Q9MHx2cigoVmU9ZisxfDApPDw0KSxfW3N0Pj4zXT1FdD0rX1trPj4zXSsoRXQ9K19bKHFlPWMrMTZ8MCk+PjNdKSsuNSooK19bYz4+M10tRXQpLStfWyhMZT1vdCs0OHwwKT4+M10sX1tzdCs4Pj4zXT1j''@;'; + put 'put ''dD0uNSooK19bKGY9YysyNHwwKT4+M10tKGN0PStfWyhudD1jKzQwfDApPj4zXSkpK2N0Ky4yNSooK19bKFJlPW90KzU2fDApPj4zXS0rX1soSGU9b3QrNzJ8MCk+PjNdKSxfW3N0KzE2Pj4zXT1FdD1FdC0rX1trPj4zXSsgK19bTGU+PjNdLF9bc3QrMjQ+PjNdPStfW1JlPj4zXStjdC0rX1tI''@;'; + put 'put ''ZT4+M10sX1tzdCszMj4+M109RXQsX1tzdCs0MD4+M109RXQ9LjUqKCtfW1JlPj4zXS0rX1tIZT4+M10pK2N0LF9bc3QrNDg+PjNdPVp0PS4yNSooK19bYz4+M10tKFp0PStfW3FlPj4zXSkpK1p0LF9bc3QrNTY+PjNdPUV0LF9bc3QrNjQ+PjNdPVp0LF9bc3QrNzI+PjNdPWN0LGthKGwsc3Qs''@;'; + put 'put ''VmUsbSksX1tXZT4+M109K19bcWU+PjNdLF9bV2UrOD4+M109LjUqKCtfW2Y+PjNdLShjdD0rX1tudD4+M10pKStjdCxfW1dlKzE2Pj4zXT0rX1tjPj4zXSxfW1dlKzI0Pj4zXT0uNSooK19bYys4Pj4zXS0rX1tjKzU2Pj4zXSkrY3QsV28obCxXZSwyKSxGdChzdCk7YnJlYWt9aWYoMTg0NTQ5''@;'; + put 'put ''Mzc2IT0oMHxwKSlicmVhayBlO3N0PTB8dnIoKHFlPWYrNHwwKTw8NCksX1tzdD4+M109WnQ9LjEyNSooWnQ9K19bYz4+M10tKEV0PStfWyhWZT1jKzE2fDApPj4zXSkpK0V0Ky41KigrX1trPj4zXS0rX1soT2U9b3QrNDh8MCk+PjNdK1p0KSxfW3N0Kzg+PjNdPUV0PS41KigrX1soSGU9Yysy''@;'; + put 'put ''NHwwKT4+M10tKEV0PStfWyhSZT1jKzQwfDApPj4zXSkpK0V0Ky4yNSooK19bKGY9b3QrNTZ8MCk+PjNdLStfWyhMZT1vdCs3MnwwKT4+M10pLF9bc3QrMTY+PjNdPWN0PS4zNzUqKCtfW2M+PjNdLShjdD0rX1tWZT4+M10pKStjdCxfW3N0KzI0Pj4zXT1FdCxfW3N0KzMyPj4zXT1jdCxfW3N0''@;'; + put 'put ''KzQwPj4zXT1FdD0uNSooK19bZj4+M10tK19bTGU+PjNdKStFdCxfW3N0KzQ4Pj4zXT1jdC09LjUqKCtfW2s+PjNdLStfW09lPj4zXSksX1tzdCs1Nj4+M109RXQsX1sobnQ9c3QrNjR8MCk+PjNdPWN0LF9bc3QrNzI+PjNdPWN0PS41KigrX1tIZT4+M10tKGN0PStfW1JlPj4zXSkpK2N0Ky0u''@;'; + put 'put ''MjUqKCtfW2Y+PjNdLStfW0xlPj4zXSksX1tzdCs4MD4+M109RXQ9WnQtLjUqKCtfW2s+PjNdLStfW09lPj4zXSksX1tzdCs4OD4+M109Y3QsX1tzdCs5Nj4+M109RXQsX1tzdCsxMDQ+PjNdPWN0LT0uNSooK19bZj4+M10tK19bTGU+PjNdKSxfWyhMZT1zdCsxMTJ8MCk+PjNdPVp0LF9bc3Qr''@;'; + put 'put ''MTIwPj4zXT1jdCxrYShsLHN0LHFlLG0pLF9bV2U+PjNdPStfW1ZlPj4zXSxfWyhWZT1XZSs4fDApPj4zXT0uNSooK19bSGU+PjNdLShjdD0rX1tSZT4+M10pKStjdCxfWyhxZT1XZSsxNnwwKT4+M109K19bbnQ+PjNdLF9bKG09V2UrMjR8MCk+PjNdPS41KigrX1sobnQ9Yys4fDApPj4zXS0r''@;'; + put 'put ''X1soZj1jKzU2fDApPj4zXSkrY3QsV28obCxXZSwyKSxfW1dlPj4zXT0rX1tMZT4+M10sX1tWZT4+M109LjUqKCtfW0hlPj4zXS0oY3Q9K19bUmU+PjNdKSkrY3QsX1txZT4+M109K19bYz4+M10sX1ttPj4zXT0uNSooK19bbnQ+PjNdLStfW2Y+PjNdKStjdCxXbyhsLFdlLDIpLEZ0KHN0KTti''@;'; + put 'put ''cmVha31pZigoMHxwKTwzMzU1NDQzMil7aWYoKDB8cCk8OCl7aWYoNCE9KDB8cCkpYnJlYWsgZTtmb3Iodz0wfFFuKDMyKyg5NipmfDApfDApLHA9MCxBPTA7Yj0xfEEsaz13KyhBPDw0KXwwLCEoKDB8cCk+PSgwfGYpKTspYVtrPj4yXT1hWyhzdD1vdCsoKGM9cDw8Mik8PDQpfDApPj4yXSxh''@;'; + put 'put ''W2srND4+Ml09YVtzdCs0Pj4yXSxhW2srOD4+Ml09YVtzdCs4Pj4yXSxhW2srMTI+PjJdPWFbc3QrMTI+PjJdLGFbKHN0PXcrKGI8PDQpfDApPj4yXT1hWyhXZT1vdCsoKDF8Yyk8PDQpfDApPj4yXSxhW3N0KzQ+PjJdPWFbV2UrND4+Ml0sYVtzdCs4Pj4yXT1hW1dlKzg+PjJdLGFbc3QrMTI+''@;'; + put 'put ''PjJdPWFbV2UrMTI+PjJdLGFbKHN0PXcrKEErMjw8NCl8MCk+PjJdPWFbV2U+PjJdLGFbc3QrND4+Ml09YVtXZSs0Pj4yXSxhW3N0Kzg+PjJdPWFbV2UrOD4+Ml0sYVtzdCsxMj4+Ml09YVtXZSsxMj4+Ml0sYVsoc3Q9dysoQSszPDw0KXwwKT4+Ml09YVsoV2U9b3QrKCgyfGMpPDw0KXwwKT4+''@;'; + put 'put ''Ml0sYVtzdCs0Pj4yXT1hW1dlKzQ+PjJdLGFbc3QrOD4+Ml09YVtXZSs4Pj4yXSxhW3N0KzEyPj4yXT1hW1dlKzEyPj4yXSxhWyhzdD13KyhBKzQ8PDQpfDApPj4yXT1hW1dlPj4yXSxhW3N0KzQ+PjJdPWFbV2UrND4+Ml0sYVtzdCs4Pj4yXT1hW1dlKzg+PjJdLGFbc3QrMTI+PjJdPWFbV2Ur''@;'; + put 'put ''MTI+PjJdLGFbKHN0PXcrKEErNTw8NCl8MCk+PjJdPWFbKGM9b3QrKCgzfGMpPDw0KXwwKT4+Ml0sYVtzdCs0Pj4yXT1hW2MrND4+Ml0sYVtzdCs4Pj4yXT1hW2MrOD4+Ml0sYVtzdCsxMj4+Ml09YVtjKzEyPj4yXSxwPXArMXwwLEE9QSs2fDA7YVtrPj4yXT1hW3c+PjJdLGFbays0Pj4yXT1h''@;'; + put 'put ''W3crND4+Ml0sYVtrKzg+PjJdPWFbdys4Pj4yXSxhW2srMTI+PjJdPWFbdysxMj4+Ml0sYVsoZj13KyhiPDw0KXwwKT4+Ml09YVsoc3Q9dysxNnwwKT4+Ml0sYVtmKzQ+PjJdPWFbc3QrND4+Ml0sYVtmKzg+PjJdPWFbc3QrOD4+Ml0sYVtmKzEyPj4yXT1hW3N0KzEyPj4yXSxRZihsLHN0LGIs''@;'; + put 'put ''MCwwLDI1NSZtKSxGdCh3KTticmVha31pZigoMHxwKTwxNjc3NzIxNil7aWYoOCE9KDB8cCkpYnJlYWsgZTtmb3Ioa2EobCxjLGYsbSksQT1XZSsxNnwwLHA9MDs7KXtpZigoMHxwKT49KDB8ZikpYnJlYWsgZTthW1dlPj4yXT1hWyhtPW90KygyKyhzdD0zKnB8MCk8PDQpfDApPj4yXSxhW1dl''@;'; + put 'put ''KzQ+PjJdPWFbbSs0Pj4yXSxhW1dlKzg+PjJdPWFbbSs4Pj4yXSxhW1dlKzEyPj4yXT1hW20rMTI+PjJdLGFbQT4+Ml09YVsoc3Q9b3QrKHN0KzQ8PDQpfDApPj4yXSxhW0ErND4+Ml09YVtzdCs0Pj4yXSxhW0ErOD4+Ml09YVtzdCs4Pj4yXSxhW0ErMTI+PjJdPWFbc3QrMTI+PjJdLFdvKGws''@;'; + put 'put ''V2UsMikscD1wKzF8MH19aWYoMTY3NzcyMTYhPSgwfHApKWJyZWFrIGU7Zm9yKHc9MHx2cigoQT1mKzF8MCk8PDQpLHA9MTshKCgwfHApPj0oMHxmKSk7KWFbKHN0PXcrKHA8PDQpfDApPj4yXT1hWyhudD1jKyhwPDw0KXwwKT4+Ml0sYVtzdCs0Pj4yXT1hW250KzQ+PjJdLGFbc3QrOD4+Ml09''@;'; + put 'put ''YVtudCs4Pj4yXSxhW3N0KzEyPj4yXT1hW250KzEyPj4yXSxwPXArMXwwO2Fbdz4+Ml09YVsobnQ9b3QrKDErKGM9MypmfDApPDw0KXwwKT4+Ml0sYVt3KzQ+PjJdPWFbbnQrND4+Ml0sYVt3Kzg+PjJdPWFbbnQrOD4+Ml0sYVt3KzEyPj4yXT1hW250KzEyPj4yXSxhWyhmPXcrKGY8PDQpfDAp''@;'; + put 'put ''Pj4yXT1hWyhzdD1vdCsoYystMTw8NCl8MCk+PjJdLGFbZis0Pj4yXT1hW3N0KzQ+PjJdLGFbZis4Pj4yXT1hW3N0Kzg+PjJdLGFbZisxMj4+Ml09YVtzdCsxMj4+Ml0sa2EobCx3LEEsbSksRnQodyksYVtXZT4+Ml09YVtzdD4+Ml0sYVtXZSs0Pj4yXT1hW3N0KzQ+PjJdLGFbV2UrOD4+Ml09''@;'; + put 'put ''YVtzdCs4Pj4yXSxhW1dlKzEyPj4yXT1hW3N0KzEyPj4yXSxhWyhzdD1XZSsxNnwwKT4+Ml09YVtudD4+Ml0sYVtzdCs0Pj4yXT1hW250KzQ+PjJdLGFbc3QrOD4+Ml09YVtudCs4Pj4yXSxhW3N0KzEyPj4yXT1hW250KzEyPj4yXSxfWyhtPVdlKzMyfDApPj4zXT0rX1tXZT4+M10rICtfW3N0''@;'; + put 'put ''Pj4zXS0rX1tvdCsoYzw8NCk+PjNdLF9bV2UrNDA+PjNdPStfW1dlKzg+PjNdKyArX1tXZSsyND4+M10tK19bb3QrKGM8PDQpKzg+PjNdLFdvKGwsc3QsMiksYVtzdD4+Ml09YVttPj4yXSxhW3N0KzQ+PjJdPWFbbSs0Pj4yXSxhW3N0Kzg+PjJdPWFbbSs4Pj4yXSxhW3N0KzEyPj4yXT1hW20r''@;'; + put 'put ''MTI+PjJdLFdvKGwsV2UsMik7YnJlYWt9aWYoKDB8cCk8NTAzMzE2NDgpe2lmKDMzNTU0NDMyIT0oMHxwKSlicmVhayBlO2Zvcih3PTB8dnIoKEE9ZisyfDApPDw0KSxhW3c+PjJdPWFbYz4+Ml0sYVt3KzQ+PjJdPWFbYys0Pj4yXSxhW3crOD4+Ml09YVtjKzg+PjJdLGFbdysxMj4+Ml09YVtj''@;'; + put 'put ''KzEyPj4yXSxhWyhiPXcrMTZ8MCk+PjJdPWFbaz4+Ml0sYVtiKzQ+PjJdPWFbays0Pj4yXSxhW2IrOD4+Ml09YVtrKzg+PjJdLGFbYisxMj4+Ml09YVtrKzEyPj4yXSxfW3crMzI+PjNdPS4zMzMzMzMzMzMzMzMzMzMzKigrX1soYj1vdCs0OHwwKT4+M10tK19bKGY9b3QrNjR8MCk+PjNdKSsg''@;'; + put 'put ''K19baz4+M10sX1t3KzQwPj4zXT0uMzMzMzMzMzMzMzMzMzMzMyooK19bKHN0PW90KzU2fDApPj4zXS0rX1socD1vdCs3MnwwKT4+M10pKyArX1tvdCs0MD4+M10sX1t3KzQ4Pj4zXT0uMzMzMzMzMzMzMzMzMzMzMyooKGN0PStfW2I+PjNdKS0rX1tmPj4zXSkrY3QsX1t3KzU2Pj4zXT0uMzMz''@;'; + put 'put ''MzMzMzMzMzMzMzMzMyooKGN0PStfW3N0Pj4zXSktK19bcD4+M10pK2N0LHA9NDshKCgwfHApPj0oMHxBKSk7KWFbKHN0PXcrKHA8PDQpfDApPj4yXT1hWyhmPWMrKHArLTI8PDQpfDApPj4yXSxhW3N0KzQ+PjJdPWFbZis0Pj4yXSxhW3N0Kzg+PjJdPWFbZis4Pj4yXSxhW3N0KzEyPj4yXT1h''@;'; + put 'put ''W2YrMTI+PjJdLHA9cCsxfDA7a2EobCx3LEEsbSksRnQodyksYVtXZT4+Ml09YVtiPj4yXSxhW1dlKzQ+PjJdPWFbYis0Pj4yXSxhW1dlKzg+PjJdPWFbYis4Pj4yXSxhW1dlKzEyPj4yXT1hW2IrMTI+PjJdLGFbKHN0PVdlKzE2fDApPj4yXT1hW2s+PjJdLGFbc3QrND4+Ml09YVtrKzQ+PjJd''@;'; + put 'put ''LGFbc3QrOD4+Ml09YVtrKzg+PjJdLGFbc3QrMTI+PjJdPWFbaysxMj4+Ml0sV28obCxXZSwyKTticmVha31pZigoMHxwKT49NjcxMDg4NjQpe2lmKDY3MTA4ODY0IT0oMHxwKSlicmVhayBlO2lmKDQ9PSgwfGYpKXtzdD0wfHZyKDk2KSxhW3N0Pj4yXT1hW2M+PjJdLGFbc3QrND4+Ml09YVtj''@;'; + put 'put ''KzQ+PjJdLGFbc3QrOD4+Ml09YVtjKzg+PjJdLGFbc3QrMTI+PjJdPWFbYysxMj4+Ml0sYVsoZj1zdCsxNnwwKT4+Ml09YVtrPj4yXSxhW2YrND4+Ml09YVtrKzQ+PjJdLGFbZis4Pj4yXT1hW2srOD4+Ml0sYVtmKzEyPj4yXT1hW2srMTI+PjJdLGFbKGY9c3QrMzJ8MCk+PjJdPWFbKG50PW90''@;'; + put 'put ''KzY0fDApPj4yXSxhW2YrND4+Ml09YVtudCs0Pj4yXSxhW2YrOD4+Ml09YVtudCs4Pj4yXSxhW2YrMTI+PjJdPWFbbnQrMTI+PjJdLGFbKGY9c3QrNDh8MCk+PjJdPWFbKGM9YyszMnwwKT4+Ml0sYVtmKzQ+PjJdPWFbYys0Pj4yXSxhW2YrOD4+Ml09YVtjKzg+PjJdLGFbZisxMj4+Ml09YVtj''@;'; + put 'put ''KzEyPj4yXSxhWyhjPXN0KzY0fDApPj4yXT1hWyhmPW90KzEyOHwwKT4+Ml0sYVtjKzQ+PjJdPWFbZis0Pj4yXSxhW2MrOD4+Ml09YVtmKzg+PjJdLGFbYysxMj4+Ml09YVtmKzEyPj4yXSxhWyhjPXN0KzgwfDApPj4yXT1hWyhxZT1vdCsxNjB8MCk+PjJdLGFbYys0Pj4yXT1hW3FlKzQ+PjJd''@;'; + put 'put ''LGFbYys4Pj4yXT1hW3FlKzg+PjJdLGFbYysxMj4+Ml09YVtxZSsxMj4+Ml0sa2EobCxzdCw2LG0pLEZ0KHN0KSxfW1dlPj4zXT0rX1tvdCsxNzY+PjNdKyArX1tiPj4zXS0rX1tvdD4+M10sX1tXZSs4Pj4zXT0rX1tvdCsxODQ+PjNdKyArX1tvdCsyND4+M10tK19bb3QrOD4+M10sYVsoc3Q9''@;'; + put 'put ''V2UrMTZ8MCk+PjJdPWFbbnQ+PjJdLGFbc3QrND4+Ml09YVtudCs0Pj4yXSxhW3N0Kzg+PjJdPWFbbnQrOD4+Ml0sYVtzdCsxMj4+Ml09YVtudCsxMj4+Ml0sV28obCxXZSwyKSxhW3N0Pj4yXT1hW2Y+PjJdLGFbc3QrND4+Ml09YVtmKzQ+PjJdLGFbc3QrOD4+Ml09YVtmKzg+PjJdLGFbc3Qr''@;'; + put 'put ''MTI+PjJdPWFbZisxMj4+Ml0sV28obCxXZSwyKSxhW3N0Pj4yXT1hW290Pj4yXSxhW3N0KzQ+PjJdPWFbb3QrND4+Ml0sYVtzdCs4Pj4yXT1hW290Kzg+PjJdLGFbc3QrMTI+PjJdPWFbb3QrMTI+PjJdLFdvKGwsV2UsMik7YnJlYWt9UHIoMTA1NDM4LDEwNTQ0OSw3MTQsMTA1NDU4KX1pZig1''@;'; + put 'put ''MDMzMTY0OCE9KDB8cCkpYnJlYWsgZTtmb3Iodz0wfHZyKChBPWYrM3wwKTw8NCksYVt3Pj4yXT1hW2M+PjJdLGFbdys0Pj4yXT1hW2MrND4+Ml0sYVt3Kzg+PjJdPWFbYys4Pj4yXSxhW3crMTI+PjJdPWFbYysxMj4+Ml0sX1t3KzE2Pj4zXT0oY3Q9K19bYz4+M10pLS4yNSooY3QtK19bYj4+''@;'; + put 'put ''M10pLF9bdysyND4+M109Y3Q9LjMzMzMzMzMzMzMzMzMzMzMqKCtfWyhwPW90KzU2fDApPj4zXS0rX1tvdCs3Mj4+M10pKyArX1tjKzg+PjNdLF9bdyszMj4+M109KFp0PStfW2M+PjNdKS0yKihadC0rX1tiPj4zXSksX1t3KzQwPj4zXT1jdCxfW3crNDg+PjNdPShjdD0rX1tjPj4zXSktMi4y''@;'; + put 'put ''NSooY3QtK19bYj4+M10pLF9bdys1Nj4+M109K19bcD4+M10sX1t3KzY0Pj4zXT0rX1tvdCs0OD4+M10sX1t3KzcyPj4zXT0rX1twPj4zXSxwPTQ7ISgoMHxwKT49KDB8QSkpOylhWyhzdD13KyhwPDw0KXwwKT4+Ml09YVsoZj1jKyhwKy0zPDw0KXwwKT4+Ml0sYVtzdCs0Pj4yXT1hW2YrND4+''@;'; + put 'put ''Ml0sYVtzdCs4Pj4yXT1hW2YrOD4+Ml0sYVtzdCsxMj4+Ml09YVtmKzEyPj4yXSxwPXArMXwwO2thKGwsdyxBLG0pLEZ0KHcpO2JyZWFrfWlmKCgwfHApPDMxODc2NzEwNCl7aWYoKDB8cCk8MjUxNjU4MjQwKXtpZigoMHxwKTwyMTgxMDM4MDgpe2lmKDIwMTMyNjU5MiE9KDB8cCkpYnJlYWsg''@;'; + put 'put ''ZTtPZT0wfHZyKHN0PWY8PDQpLF9bT2U+PjNdPWN0PStfWyhMZT1jKzE2fDApPj4zXSxWZT1vdCs0OHwwLF9bT2UrOD4+M109WnQ9LjUqKCtfWyhudD1jKzI0fDApPj4zXS0oWnQ9K19bKHFlPWMrNDB8MCk+PjNdKSkrWnQrLjEyNSooK19bKFJlPW90KzU2fDApPj4zXS0rX1soSGU9b3QrNzJ8''@;'; + put 'put ''MCk+PjNdKSxfW09lKzE2Pj4zXT1FdD0yKigrX1trPj4zXS0rX1tWZT4+M10pK2N0LF9bT2UrMjQ+PjNdPVp0LF9bT2UrMzI+PjNdPUV0LF9bT2UrNDA+PjNdPVp0PS41KigrX1tSZT4+M10tK19bSGU+PjNdKStadCxfW09lKzQ4Pj4zXT1jdCxfW09lKzU2Pj4zXT1adCxrYShsLE9lLGYsbSks''@;'; + put 'put ''RnQoT2UpLHN0PTB8dnIoc3QpLF9bc3Q+PjNdPVp0PStfW2s+PjNdKyArX1tMZT4+M10tK19bVmU+PjNdLF9bc3QrOD4+M109Y3Q9LjUqKCtfW250Pj4zXS0oY3Q9K19bcWU+PjNdKSkrY3QrLS42MjUqKCtfW1JlPj4zXS0rX1tIZT4+M10pLEV0PStfW2s+PjNdLStfW1ZlPj4zXStadCxfWyhW''@;'; + put 'put ''ZT1zdCsxNnwwKT4+M109RXQsX1tzdCsyND4+M109Y3QsX1tzdCszMj4+M109RXQsX1tzdCs0MD4+M109Y3Q9LjUqKCtfW1JlPj4zXS0rX1tIZT4+M10pK2N0LF9bc3QrNDg+PjNdPVp0LF9bc3QrNTY+PjNdPWN0LGthKGwsc3QsZixtKSxfW1dlPj4zXT0rX1tWZT4+M10sX1tXZSs4Pj4zXT0u''@;'; + put 'put ''NSooK19bbnQ+PjNdLShjdD0rX1txZT4+M10pKStjdCxfW1dlKzE2Pj4zXT0rX1tjPj4zXSxfW1dlKzI0Pj4zXT0uNSooK19bYys4Pj4zXS0rX1tjKzU2Pj4zXSkrY3QsV28obCxXZSwyKSxGdChzdCk7YnJlYWt9aWYoKDB8cCk8MjM0ODgxMDI0KXtpZigyMTgxMDM4MDghPSgwfHApKWJyZWFr''@;'; + put 'put ''IGU7UmU9MHx2cihzdD1mPDw0KSxfW1JlPj4zXT1jdD0rX1tjPj4zXSxfW1JlKzg+PjNdPVp0PS41KigrX1socWU9YysyNHwwKT4+M10tKFp0PStfWyhWZT1jKzQwfDApPj4zXSkpK1p0Ky4xMjUqKCtfWyhIZT1vdCs1NnwwKT4+M10tK19bKG50PW90KzcyfDApPj4zXSksX1tSZSsxNj4+M109''@;'; + put 'put ''Y3QsX1tSZSsyND4+M109RXQ9LjUqKCtfW0hlPj4zXS0rX1tudD4+M10pK1p0LF9bUmUrMzI+PjNdPWN0LT0yKigrX1tIZT4+M10tK19bbnQ+PjNdKSxfW1JlKzQwPj4zXT1FdCxfW1JlKzQ4Pj4zXT1jdCxfW1JlKzU2Pj4zXT1adCxrYShsLFJlLGYsbSksRnQoUmUpLHN0PTB8dnIoc3QpLF9b''@;'; + put 'put ''c3Q+PjNdPVp0PStfW2M+PjNdLStfW2s+PjNdKyArX1tvdCs0OD4+M10sX1tzdCs4Pj4zXT1jdD0uNSooK19bcWU+PjNdLShjdD0rX1tWZT4+M10pKStjdCstLjYyNSooK19bSGU+PjNdLStfW250Pj4zXSksX1tzdCsxNj4+M109WnQsX1tzdCsyND4+M109RXQ9LjUqKCtfW0hlPj4zXS0rX1tu''@;'; + put 'put ''dD4+M10pK2N0LF9bc3QrMzI+PjNdPVp0LT0rX1tIZT4+M10tK19bbnQ+PjNdLF9bc3QrNDA+PjNdPUV0LF9bKG50PXN0KzQ4fDApPj4zXT1adCxfW3N0KzU2Pj4zXT1jdCxrYShsLHN0LGYsbSksX1tXZT4+M109K19bYysxNj4+M10sX1tXZSs4Pj4zXT0uNSooK19bcWU+PjNdLShjdD0rX1tW''@;'; + put 'put ''ZT4+M10pKStjdCxfW1dlKzE2Pj4zXT0rX1tudD4+M10sX1tXZSsyND4+M109LjUqKCtfW2MrOD4+M10tK19bYys1Nj4+M10pK2N0LFdvKGwsV2UsMiksRnQoc3QpO2JyZWFrfWlmKDIzNDg4MTAyNCE9KDB8cCkpYnJlYWsgZTtWZT0wfHZyKHN0PWY8PDQpLF9bVmU+PjNdPVp0PS41KigrX1tj''@;'; + put 'put ''Pj4zXS0oWnQ9K19bKE9lPWMrMTZ8MCk+PjNdKSkrWnQrLTEuMTI1KigrX1trPj4zXS0rX1soTGU9b3QrNDh8MCk+PjNdKSxfW1ZlKzg+PjNdPWN0PS41KigrX1soSGU9YysyNHwwKT4+M10tKGN0PStfWyhSZT1jKzQwfDApPj4zXSkpK2N0Ky4xMjUqKCtfWyhudD1vdCs1NnwwKT4+M10tK19b''@;'; + put 'put ''KHFlPW90KzcyfDApPj4zXSksX1tWZSsxNj4+M109RXQ9K19baz4+M10tK19bTGU+PjNdK1p0LF9bVmUrMjQ+PjNdPWN0LF9bVmUrMzI+PjNdPUV0LF9bVmUrNDA+PjNdPWN0PS41KigrX1tudD4+M10tK19bcWU+PjNdKStjdCxfW1ZlKzQ4Pj4zXT1adCxfW1ZlKzU2Pj4zXT1jdCxrYShsLFZl''@;'; + put 'put ''LGYsbSksRnQoVmUpLFZlPTB8dnIoc3QpLF9bVmU+PjNdPWN0PS41KigrX1tjPj4zXS0oY3Q9K19bT2U+PjNdKSkrY3QrLTEuMTI1KigrX1trPj4zXS0rX1tMZT4+M10pLF9bVmUrOD4+M109WnQ9LjUqKCtfW0hlPj4zXS0oWnQ9K19bUmU+PjNdKSkrWnQrLS42MjUqKCtfW250Pj4zXS0rX1tx''@;'; + put 'put ''ZT4+M10pLF9bVmUrMTY+PjNdPUV0PStfW2s+PjNdLStfW0xlPj4zXStjdCxfW1ZlKzI0Pj4zXT1adCxfW1ZlKzMyPj4zXT1FdCxfW1ZlKzQwPj4zXT1adD0uNSooK19bbnQ+PjNdLStfW3FlPj4zXSkrWnQsX1tWZSs0OD4+M109Y3QsX1tWZSs1Nj4+M109WnQsa2EobCxWZSxmLG0pLEZ0KFZl''@;'; + put 'put ''KSxWZT0wfHZyKHN0KSxfW1ZlPj4zXT1adD0uNSooK19bYz4+M10tKFp0PStfW09lPj4zXSkpK1p0Ky4xMjUqKCtfW2s+PjNdLStfW0xlPj4zXSksX1tWZSs4Pj4zXT1jdD0uNSooK19bSGU+PjNdLShjdD0rX1tSZT4+M10pKStjdCstLjYyNSooK19bbnQ+PjNdLStfW3FlPj4zXSksX1tWZSsx''@;'; + put 'put ''Nj4+M109RXQ9K19baz4+M10tK19bTGU+PjNdK1p0LF9bVmUrMjQ+PjNdPWN0LF9bVmUrMzI+PjNdPUV0LF9bVmUrNDA+PjNdPWN0PS41KigrX1tudD4+M10tK19bcWU+PjNdKStjdCxfW1ZlKzQ4Pj4zXT1adCxfW1ZlKzU2Pj4zXT1jdCxrYShsLFZlLGYsbSksRnQoVmUpLHN0PTB8dnIoc3Qp''@;'; + put 'put ''LF9bc3Q+PjNdPWN0PS41KigrX1tjPj4zXS0oY3Q9K19bT2U+PjNdKSkrY3QrLjEyNSooK19baz4+M10tK19bTGU+PjNdKSxfW3N0Kzg+PjNdPVp0PS41KigrX1tIZT4+M10tKFp0PStfW1JlPj4zXSkpK1p0Ky4xMjUqKCtfW250Pj4zXS0rX1txZT4+M10pLF9bKFZlPXN0KzE2fDApPj4zXT1F''@;'; + put 'put ''dD0rX1trPj4zXS0rX1tMZT4+M10rY3QsX1tzdCsyND4+M109WnQsX1tzdCszMj4+M109RXQsX1tzdCs0MD4+M109WnQ9LjUqKCtfW250Pj4zXS0rX1txZT4+M10pK1p0LF9bc3QrNDg+PjNdPWN0LF9bc3QrNTY+PjNdPVp0LGthKGwsc3QsZixtKSxfW1dlPj4zXT0rX1tWZT4+M10sX1soVmU9''@;'; + put 'put ''V2UrOHwwKT4+M109LjUqKCtfW0hlPj4zXS0oWnQ9K19bUmU+PjNdKSkrWnQsX1socWU9V2UrMTZ8MCk+PjNdPStfW2M+PjNdLF9bKG09V2UrMjR8MCk+PjNdPS41KigrX1sobnQ9Yys4fDApPj4zXS0rX1soZj1jKzU2fDApPj4zXSkrWnQsV28obCxXZSwyKSxfW1dlPj4zXT0uNSooK19bYz4+''@;'; + put 'put ''M10tKFp0PStfW09lPj4zXSkpK1p0Ky0xLjEyNSooK19baz4+M10tK19bTGU+PjNdKSxfW1ZlPj4zXT0uNSooK19bSGU+PjNdLShjdD0rX1tSZT4+M10pKStjdCxfW3FlPj4zXT1adCxfW20+PjNdPS41KigrX1tudD4+M10tK19bZj4+M10pK2N0LFdvKGwsV2UsMiksRnQoc3QpO2JyZWFrfWlm''@;'; + put 'put ''KCgwfHApPDI4NTIxMjY3Mil7aWYoKDB8cCk8MjY4NDM1NDU2KXtpZigyNTE2NTgyNDAhPSgwfHApKWJyZWFrIGU7T2U9MHx2cihzdD1mPDw0KSxfW09lPj4zXT1jdD0oY3Q9K19bKExlPWMrMTZ8MCk+PjNdKS0rX1trPj4zXSsuNSooK19bYz4+M10tY3QpKyArX1soVmU9b3QrNDh8MCk+PjNd''@;'; + put 'put ''LF9bT2UrOD4+M109WnQ9LjUqKCtfWyhIZT1jKzI0fDApPj4zXS0oWnQ9K19bKFJlPWMrNDB8MCk+PjNdKSkrWnQrLjEyNSooK19bKG50PW90KzU2fDApPj4zXS0rX1socWU9b3QrNzJ8MCk+PjNdKSxfW09lKzE2Pj4zXT1FdD0yKigrX1trPj4zXS0rX1tWZT4+M10pK2N0LF9bT2UrMjQ+PjNd''@;'; + put 'put ''PVp0LF9bT2UrMzI+PjNdPUV0LF9bT2UrNDA+PjNdPVp0PS41KigrX1tudD4+M10tK19bcWU+PjNdKStadCxfW09lKzQ4Pj4zXT1jdCxfW09lKzU2Pj4zXT1adCxrYShsLE9lLGYsbSksRnQoT2UpLHN0PTB8dnIoc3QpLF9bc3Q+PjNdPVp0PShadD0rX1tMZT4+M10pLStfW2s+PjNdKy41Kigr''@;'; + put 'put ''X1tjPj4zXS1adCkrICtfW1ZlPj4zXSxfW3N0Kzg+PjNdPWN0PS41KigrX1tIZT4+M10tKGN0PStfW1JlPj4zXSkpK2N0Ky0uNjI1KigrX1tudD4+M10tK19bcWU+PjNdKSxFdD0yKigrX1trPj4zXS0rX1tWZT4+M10pK1p0LF9bKFZlPXN0KzE2fDApPj4zXT1FdCxfW3N0KzI0Pj4zXT1jdCxf''@;'; + put 'put ''W3N0KzMyPj4zXT1FdCxfW3N0KzQwPj4zXT1jdD0uNSooK19bbnQ+PjNdLStfW3FlPj4zXSkrY3QsX1tzdCs0OD4+M109WnQsX1tzdCs1Nj4+M109Y3Qsa2EobCxzdCxmLG0pLF9bV2U+PjNdPStfW1ZlPj4zXSxfWyhWZT1XZSs4fDApPj4zXT0uNSooK19bSGU+PjNdLShjdD0rX1tSZT4+M10p''@;'; + put 'put ''KStjdCxfWyhxZT1XZSsxNnwwKT4+M109K19bYz4+M10sX1sobT1XZSsyNHwwKT4+M109LjUqKCtfWyhudD1jKzh8MCk+PjNdLStfWyhmPWMrNTZ8MCk+PjNdKStjdCxXbyhsLFdlLDIpLF9bV2U+PjNdPStfW0xlPj4zXSxfW1ZlPj4zXT0uNSooK19bSGU+PjNdLShjdD0rX1tSZT4+M10pKStj''@;'; + put 'put ''dCxfW3FlPj4zXT0rX1tzdD4+M10sX1ttPj4zXT0uNSooK19bbnQ+PjNdLStfW2Y+PjNdKStjdCxXbyhsLFdlLDIpLEZ0KHN0KTticmVha31pZigyNjg0MzU0NTYhPSgwfHApKWJyZWFrIGU7c3Q9MHx2cihmPDw0KSxfW3N0Pj4zXT0rX1tjPj4zXSxMZT1vdCs0OHwwLF9bc3QrOD4+M109K19b''@;'; + put 'put ''b3QrMjQ+PjNdLS41KigrX1soSGU9b3QrNTZ8MCk+PjNdLStfWyhWZT1vdCs3MnwwKT4+M10pLF9bc3QrMTY+PjNdPStfW0xlPj4zXSxfW3N0KzI0Pj4zXT0oY3Q9K19bSGU+PjNdKS0uNSooY3QtK19bVmU+PjNdKSxfW3N0KzMyPj4zXT0rX1tjKzMyPj4zXSxfW3N0KzQwPj4zXT0uNSooK19b''@;'; + put 'put ''SGU+PjNdLStfW1ZlPj4zXSkrICtfWyhxZT1jKzQwfDApPj4zXSxfW3N0KzQ4Pj4zXT0rX1tjPj4zXSxfW3N0KzU2Pj4zXT0uNSooK19bSGU+PjNdLStfW1ZlPj4zXSkrICtfW3FlPj4zXSxrYShsLHN0LGYsbSksX1tXZT4+M109WnQ9KGN0PS4yNSooK19baz4+M10tK19bTGU+PjNdKSkrICtf''@;'; + put 'put ''WyhSZT1jKzE2fDApPj4zXSxfWyhudD1XZSs4fDApPj4zXT1FdD0uNSooK19bKE9lPWMrMjR8MCk+PjNdLShFdD0rX1txZT4+M10pKStFdCsuMTI1KihrdD0rX1tIZT4+M10tK19bVmU+PjNdKSxfWyhmPVdlKzE2fDApPj4zXT1jdCtadCxfWyhtPVdlKzI0fDApPj4zXT1FdC0uMjUqa3QsV28o''@;'; + put 'put ''bCxXZSwyKSxfW1dlPj4zXT1FdD0oa3Q9LjI1KigrX1trPj4zXS0rX1tMZT4+M10pKSsgK19bUmU+PjNdLF9bbnQ+PjNdPVp0PS41KigrX1tPZT4+M10tKFp0PStfW3FlPj4zXSkpK1p0Ky0uMTI1KihjdD0rX1tIZT4+M10tK19bVmU+PjNdKSxfW2Y+PjNdPWt0K0V0LF9bbT4+M109LjI1KmN0''@;'; + put 'put ''K1p0LFdvKGwsV2UsMiksX1tXZT4+M109KFp0PS4yNSooK19baz4+M10tK19bTGU+PjNdKSkrICtfW1JlPj4zXSxfW250Pj4zXT1jdD0uNzUqKCtfW0hlPj4zXS0rX1tWZT4+M10pKyArX1txZT4+M10sX1tmPj4zXT0rX1tjPj4zXS1adCxfW20+PjNdPWN0LFdvKGwsV2UsMiksRnQoc3QpO2Jy''@;'; + put 'put ''ZWFrfWlmKCgwfHApPDMwMTk4OTg4OCl7aWYoMjg1MjEyNjcyIT0oMHxwKSlicmVhayBlO1ZlPTB8dnIoZjw8NCksX1tWZT4+M109WnQ9LjUqKCtfW2s+PjNdLStfWyhxZT1vdCs0OHwwKT4+M10rKCtfW2M+PjNdLShadD0rX1soTGU9YysxNnwwKT4+M10pKSkrWnQsX1tWZSs4Pj4zXT1rdD0u''@;'; + put 'put ''NSooK19baz4+M10tK19bcWU+PjNdKygrX1soSGU9YysyNHwwKT4+M10tKGt0PStfWyhSZT1jKzQwfDApPj4zXSkpKStrdCxfW1ZlKzE2Pj4zXT1adCxfW1ZlKzI0Pj4zXT1adD0uNSooK19bSGU+PjNdLShadD0rX1tSZT4+M10pLShSPStfW2s+PjNdLStfW3FlPj4zXSkpK1p0LF9bVmUrMzI+''@;'; + put 'put ''PjNdPWN0PS41KigrX1tjPj4zXS0oY3Q9K19bTGU+PjNdKS1SKStjdCxfW1ZlKzQwPj4zXT1adCxfW1ZlKzQ4Pj4zXT1jdCxfW1ZlKzU2Pj4zXT1rdCxrYShsLFZlLGYsbSksRnQoVmUpLF9bV2U+PjNdPVI9KGt0PS41KigrX1tjPj4zXS0oa3Q9K19bTGU+PjNdKSkra3QpKyhadD0uNzUqKGN0''@;'; + put 'put ''PStfW2s+PjNdLStfW3FlPj4zXSkpLF9bKFZlPVdlKzh8MCk+PjNdPVp0PShFdD0uNSooK19bSGU+PjNdLShFdD0rX1tSZT4+M10pKStFdCkrWnQsX1sobnQ9V2UrMTZ8MCk+PjNdPVIsX1soc3Q9V2UrMjR8MCk+PjNdPUV0Kz1jdCo9LS43NSxfW1dlKzMyPj4zXT1jdD1rdCtjdCxfW1dlKzQw''@;'; + put 'put ''Pj4zXT1FdCxfW1dlKzQ4Pj4zXT1jdCxfW1dlKzU2Pj4zXT1adCxhWyhmPVdlKzY0fDApPj4yXT1hW1dlPj4yXSxhW2YrND4+Ml09YVtXZSs0Pj4yXSxhW2YrOD4+Ml09YVtXZSs4Pj4yXSxhW2YrMTI+PjJdPWFbV2UrMTI+PjJdLFdvKGwsV2UsNSksX1tXZT4+M109LjUqKChjdD0rX1tjPj4z''@;'; + put 'put ''XSktKFp0PStfW0xlPj4zXSkpK1p0Ky43NSooK19baz4+M10tK19bcWU+PjNdKSxfW1ZlPj4zXT0uNSooK19bSGU+PjNdLShadD0rX1tSZT4+M10pKStadCxfW250Pj4zXT1jdCxfW3N0Pj4zXT0uNSooK19bKGY9Yys4fDApPj4zXS0rX1sobT1jKzU2fDApPj4zXSkrWnQsV28obCxXZSwyKSxf''@;'; + put 'put ''W1dlPj4zXT1adD0rX1tMZT4+M10sX1tWZT4+M109LjUqKCtfW0hlPj4zXS0oY3Q9K19bUmU+PjNdKSkrY3QsX1tudD4+M109LjUqKCtfW2M+PjNdLVp0KStadCstLjc1KigrX1trPj4zXS0rX1txZT4+M10pLF9bc3Q+PjNdPS41KigrX1tmPj4zXS0rX1ttPj4zXSkrY3QsV28obCxXZSwyKTti''@;'; + put 'put ''cmVha31pZigzMDE5ODk4ODghPSgwfHApKWJyZWFrIGU7c3Q9MHx2cigobnQ9ZisxMnwwKTw8NCksX1tzdD4+M109TT0uNSooK19bYz4+M10tKE09K19bKEhlPWMrMTZ8MCk+PjNdKSkrTSsuMjUqKCtfW2s+PjNdLStfWyhnZT1vdCs0OHwwKT4+M10pLF9bKE9lPXN0Kzh8MCk+PjNdPWt0PS41''@;'; + put 'put ''KigrX1soTGU9b3QrNTZ8MCk+PjNdLStfWyhSZT1vdCs3MnwwKT4+M10rKCtfWyhxZT1jKzI0fDApPj4zXS0oa3Q9K19bKFZlPWMrNDB8MCk+PjNdKSkpK2t0LF9bc3QrMTY+PjNdPU0sX1soYmU9c3QrMjR8MCk+PjNdPWt0PS4xMjUqKCtfW0xlPj4zXS0rX1tSZT4+M10pK2t0LF9bKGY9c3Qr''@;'; + put 'put ''MzJ8MCk+PjNdPUV0PU0tLjEyNSooK19baz4+M10tK19bZ2U+PjNdKSxfW3N0KzQwPj4zXT1SPS4xMjUqKCtfW0xlPj4zXS0rX1tSZT4+M10pK2t0LF9bc3QrNDg+PjNdPU0sX1tzdCs1Nj4+M109WnQ9LjEyNSooK19bTGU+PjNdLStfW1JlPj4zXSkrUixfW3N0KzY0Pj4zXT1NLF9bc3QrNzI+''@;'; + put 'put ''PjNdPU09LjEyNSooK19bTGU+PjNdLStfW1JlPj4zXSkrWnQsX1tzdCs4MD4+M109RXQsX1tzdCs4OD4+M109TSxfW3N0Kzk2Pj4zXT1FdD0uNSooK19bYz4+M10tKEV0PStfW0hlPj4zXSkpK0V0LF9bc3QrMTA0Pj4zXT1adCxfW3N0KzExMj4+M109Y3Q9RXQtLjEyNSooK19baz4+M10tK19b''@;'; + put 'put ''Z2U+PjNdKSxfW3N0KzEyMD4+M109TSxfW3N0KzEyOD4+M109Y3QtPS4xMjUqKCtfW2s+PjNdLStfW2dlPj4zXSksX1tzdCsxMzY+PjNdPU0sX1tzdCsxNDQ+PjNdPWN0LF9bc3QrMTUyPj4zXT1adCxfW3N0KzE2MD4+M109WnQ9LjEyNSooK19baz4+M10tK19bZ2U+PjNdKStjdCxfW3N0KzE2''@;'; + put 'put ''OD4+M109UixfW3N0KzE3Nj4+M109Y3QsX1tzdCsxODQ+PjNdPWt0LF9bc3QrMTkyPj4zXT1jdCxfW3N0KzIwMD4+M109Y3Q9K19bT2U+PjNdLF9bc3QrMjA4Pj4zXT1adCxfW3N0KzIxNj4+M109Y3QsX1soT2U9c3QrMjI0fDApPj4zXT1FdCxfW3N0KzIzMj4+M109K19bYmU+PjNdLF9bc3Qr''@;'; + put 'put ''MjQwPj4zXT0rX1tmPj4zXSxfW3N0KzI0OD4+M109Y3Qsa2EobCxzdCxudCxtKSxfW1dlPj4zXT1jdD0rX1tPZT4+M10sX1sobnQ9V2UrOHwwKT4+M109RXQ9LjUqKCtfW3FlPj4zXS0oRXQ9K19bVmU+PjNdKSkrRXQsX1soZj1XZSsxNnwwKT4+M109Y3QsX1sobT1XZSsyNHwwKT4+M109LjEy''@;'; + put 'put ''NSooK19bTGU+PjNdLStfW1JlPj4zXSkrRXQsV28obCxXZSwyKSxfW1dlPj4zXT1FdD0rX1tPZT4+M10sX1tudD4+M109Y3Q9LjUqKCtfW3FlPj4zXS0oY3Q9K19bVmU+PjNdKSkrY3QrLjI1KihadD0rX1tMZT4+M10tK19bUmU+PjNdKSxfW2Y+PjNdPUV0LF9bbT4+M109LjEyNSpadCtjdCxX''@;'; + put 'put ''byhsLFdlLDIpLF9bV2U+PjNdPStfW0hlPj4zXSxfW250Pj4zXT0uNSooK19bcWU+PjNdLShjdD0rX1tWZT4+M10pKStjdCxfW2Y+PjNdPStfW2M+PjNdLF9bbT4+M109LjUqKCtfW2MrOD4+M10tK19bYys1Nj4+M10pK2N0LFdvKGwsV2UsMiksRnQoc3QpO2JyZWFrfWlmKCgwfHApPDM2OTA5''@;'; + put 'put ''ODc1Mil7aWYoKDB8cCk8MzM1NTQ0MzIwKXtpZigzMTg3NjcxMDQhPSgwfHApKWJyZWFrIGU7c3Q9MHx2cigobnQ9Zis0fDApPDw0KSxfW3N0Pj4zXT1FdD0uNSooK19bYz4+M10tKEV0PStfWyhIZT1jKzE2fDApPj4zXSkpK0V0Ky4xMjUqKCtfW2s+PjNdLStfWyhmPW90KzQ4fDApPj4zXSks''@;'; + put 'put ''X1tzdCs4Pj4zXT1jdD0uNSooK19bKExlPW90KzU2fDApPj4zXS0rX1soUmU9b3QrNzJ8MCk+PjNdKygrX1socWU9YysyNHwwKT4+M10tKGN0PStfWyhWZT1jKzQwfDApPj4zXSkpKStjdCxfW3N0KzE2Pj4zXT1SPS4xMjUqKCtfW2s+PjNdLStfW2Y+PjNdKStFdCxfW3N0KzI0Pj4zXT1adD0u''@;'; + put 'put ''MTI1KigrX1tMZT4+M10tK19bUmU+PjNdKStjdCxfW3N0KzMyPj4zXT1SLF9bc3QrNDA+PjNdPVI9LjI1KigrX1tMZT4+M10tK19bUmU+PjNdKStadCxfW3N0KzQ4Pj4zXT1FdCxfW3N0KzU2Pj4zXT1rdD0uMTI1KigrX1tMZT4+M10tK19bUmU+PjNdKStSLF9bc3QrNjQ+PjNdPUV0LT0uMjUq''@;'; + put 'put ''KCtfW2s+PjNdLStfW2Y+PjNdKSxfW3N0KzcyPj4zXT1rdCxfW3N0KzgwPj4zXT1rdD1FdC0uMTI1KigrX1trPj4zXS0rX1tmPj4zXSksX1tzdCs4OD4+M109UixfW3N0Kzk2Pj4zXT1rdCxfW3N0KzEwND4+M109WnQsX1tzdCsxMTI+PjNdPUV0LF9bc3QrMTIwPj4zXT1jdCxrYShsLHN0LG50''@;'; + put 'put ''LG0pLF9bV2U+PjNdPWN0PS41KigrX1tjPj4zXS0oY3Q9K19bSGU+PjNdKSkrY3QsX1sobnQ9V2UrOHwwKT4+M109RXQ9LjUqKCtfW3FlPj4zXS0oRXQ9K19bVmU+PjNdKSkrRXQsX1soZj1XZSsxNnwwKT4+M109Y3QsX1sobT1XZSsyNHwwKT4+M109LjEyNSooK19bTGU+PjNdLStfW1JlPj4z''@;'; + put 'put ''XSkrRXQsV28obCxXZSwyKSxfW1dlPj4zXT1FdD0uNSooK19bYz4+M10tKEV0PStfW0hlPj4zXSkpK0V0LF9bbnQ+PjNdPWN0PS41KigrX1txZT4+M10tKGN0PStfW1ZlPj4zXSkpK2N0Ky4yNSooWnQ9K19bTGU+PjNdLStfW1JlPj4zXSksX1tmPj4zXT1FdCxfW20+PjNdPS4xMjUqWnQrY3Qs''@;'; + put 'put ''V28obCxXZSwyKSxfW1dlPj4zXT0rX1tIZT4+M10sX1tudD4+M109LjUqKCtfW3FlPj4zXS0oY3Q9K19bVmU+PjNdKSkrY3QsX1tmPj4zXT0rX1tjPj4zXSxfW20+PjNdPS41KigrX1tjKzg+PjNdLStfW2MrNTY+PjNdKStjdCxXbyhsLFdlLDIpLEZ0KHN0KTticmVha31pZigoMHxwKTwzNTIz''@;'; + put 'put ''MjE1MzYpe2lmKDMzNTU0NDMyMCE9KDB8cCkpYnJlYWsgZTtzdD0wfHZyKChIZT1mKzEyfDApPDw0KSxfW3N0Pj4zXT1NPS41KigrX1tjPj4zXS0oTT0rX1soVmU9YysxNnwwKT4+M10pKStNKy4yNSooK19baz4+M10tK19bKE9lPW90KzQ4fDApPj4zXSksX1soZj1zdCs4fDApPj4zXT1rdD0u''@;'; + put 'put ''NSooK19bKGdlPW90KzU2fDApPj4zXS0rX1soYmU9b3QrNzJ8MCk+PjNdKygrX1sobnQ9YysyNHwwKT4+M10tKGt0PStfWyhxZT1jKzQwfDApPj4zXSkpKStrdCxfW3N0KzE2Pj4zXT1NLF9bKExlPXN0KzI0fDApPj4zXT1rdD0uMTI1KigrX1tnZT4+M10tK19bYmU+PjNdKStrdCxfWyhSZT1z''@;'; + put 'put ''dCszMnwwKT4+M109WnQ9TS0uMTI1KigrX1trPj4zXS0rX1tPZT4+M10pLF9bc3QrNDA+PjNdPVI9LjEyNSooK19bZ2U+PjNdLStfW2JlPj4zXSkra3QsX1tzdCs0OD4+M109TSxfW3N0KzU2Pj4zXT1FdD0uMTI1KigrX1tnZT4+M10tK19bYmU+PjNdKStSLF9bc3QrNjQ+PjNdPU0sX1tzdCs3''@;'; + put 'put ''Mj4+M109TT0uMTI1KigrX1tnZT4+M10tK19bYmU+PjNdKStFdCxfW3N0KzgwPj4zXT1adCxfW3N0Kzg4Pj4zXT1NLF9bc3QrOTY+PjNdPVp0PS41KigrX1tjPj4zXS0oWnQ9K19bVmU+PjNdKSkrWnQsX1tzdCsxMDQ+PjNdPUV0LF9bc3QrMTEyPj4zXT1jdD1adC0uMTI1KigrX1trPj4zXS0r''@;'; + put 'put ''X1tPZT4+M10pLF9bc3QrMTIwPj4zXT1NLF9bc3QrMTI4Pj4zXT1jdC09LjEyNSooK19baz4+M10tK19bT2U+PjNdKSxfW3N0KzEzNj4+M109TSxfW3N0KzE0ND4+M109Y3QsX1tzdCsxNTI+PjNdPUV0LF9bc3QrMTYwPj4zXT1FdD0uMTI1KigrX1trPj4zXS0rX1tPZT4+M10pK2N0LF9bc3Qr''@;'; + put 'put ''MTY4Pj4zXT1SLF9bc3QrMTc2Pj4zXT1jdCxfW3N0KzE4ND4+M109a3QsX1tzdCsxOTI+PjNdPWN0LF9bc3QrMjAwPj4zXT1jdD0rX1tmPj4zXSxfW3N0KzIwOD4+M109RXQsX1tzdCsyMTY+PjNdPWN0LF9bKGY9c3QrMjI0fDApPj4zXT1adCxfW3N0KzIzMj4+M109K19bTGU+PjNdLF9bc3Qr''@;'; + put 'put ''MjQwPj4zXT0rX1tSZT4+M10sX1tzdCsyNDg+PjNdPWN0LGthKGwsc3QsSGUsbSksYVtXZT4+Ml09YVtmPj4yXSxhW1dlKzQ+PjJdPWFbZis0Pj4yXSxhW1dlKzg+PjJdPWFbZis4Pj4yXSxhW1dlKzEyPj4yXT1hW2YrMTI+PjJdLF9bKGY9V2UrMTZ8MCk+PjNdPStfW1dlPj4zXSxfWyhtPVdl''@;'; + put 'put ''KzI0fDApPj4zXT0uNSooK19bbnQ+PjNdLShjdD0rX1txZT4+M10pKStjdCxXbyhsLFdlLDIpLF9bV2U+PjNdPStfW1ZlPj4zXSxfW1dlKzg+PjNdPS41KigrX1tudD4+M10tKGN0PStfW3FlPj4zXSkpK2N0LF9bZj4+M109K19bYz4+M10sX1ttPj4zXT0uNSooK19bYys4Pj4zXS0rX1tjKzU2''@;'; + put 'put ''Pj4zXSkrY3QsV28obCxXZSwyKSxGdChzdCk7YnJlYWt9aWYoMzUyMzIxNTM2IT0oMHxwKSlicmVhayBlO3N0PTB8dnIoKG50PWYrNHwwKTw8NCksX1tzdD4+M109WnQ9LjUqKCtfW2M+PjNdLShadD0rX1soSGU9YysxNnwwKT4+M10pKStadCsuMTI1KigrX1trPj4zXS0rX1soUmU9b3QrNDh8''@;'; + put 'put ''MCk+PjNdKSxfWyhmPXN0Kzh8MCk+PjNdPWN0PS41KigrX1soT2U9b3QrNTZ8MCk+PjNdLStfWyhMZT1vdCs3MnwwKT4+M10rKCtfWyhxZT1jKzI0fDApPj4zXS0oY3Q9K19bKFZlPWMrNDB8MCk+PjNdKSkpK2N0LF9bc3QrMTY+PjNdPVI9LjEyNSooK19baz4+M10tK19bUmU+PjNdKStadCxf''@;'; + put 'put ''W3N0KzI0Pj4zXT1FdD0uMTI1KigrX1tPZT4+M10tK19bTGU+PjNdKStjdCxfW3N0KzMyPj4zXT1SLF9bc3QrNDA+PjNdPVI9LjI1KigrX1tPZT4+M10tK19bTGU+PjNdKStFdCxfW3N0KzQ4Pj4zXT1adCxfW3N0KzU2Pj4zXT1rdD0uMTI1KigrX1tPZT4+M10tK19bTGU+PjNdKStSLF9bc3Qr''@;'; + put 'put ''NjQ+PjNdPVp0LT0uMjUqKCtfW2s+PjNdLStfW1JlPj4zXSksX1tzdCs3Mj4+M109a3QsX1tzdCs4MD4+M109a3Q9WnQtLjEyNSooK19baz4+M10tK19bUmU+PjNdKSxfW3N0Kzg4Pj4zXT1SLF9bc3QrOTY+PjNdPWt0LF9bc3QrMTA0Pj4zXT1FdCxfW3N0KzExMj4+M109WnQsX1tzdCsxMjA+''@;'; + put 'put ''PjNdPWN0LGthKGwsc3QsbnQsbSksX1tXZT4+M109Y3Q9LjUqKCtfW2M+PjNdLShjdD0rX1tIZT4+M10pKStjdCxfWyhudD1XZSs4fDApPj4zXT0rX1tmPj4zXSxfWyhmPVdlKzE2fDApPj4zXT1jdCxfWyhtPVdlKzI0fDApPj4zXT0uNSooK19bcWU+PjNdLShjdD0rX1tWZT4+M10pKStjdCxX''@;'; + put 'put ''byhsLFdlLDIpLF9bV2U+PjNdPStfW0hlPj4zXSxfW250Pj4zXT0uNSooK19bcWU+PjNdLShjdD0rX1tWZT4+M10pKStjdCxfW2Y+PjNdPStfW2M+PjNdLF9bbT4+M109LjUqKCtfW2MrOD4+M10tK19bYys1Nj4+M10pK2N0LFdvKGwsV2UsMiksRnQoc3QpO2JyZWFrfWlmKCgwfHApPDQwMjY1''@;'; + put 'put ''MzE4NCl7aWYoKDB8cCk8Mzg1ODc1OTY4KXtpZigzNjkwOTg3NTIhPSgwfHApKWJyZWFrIGU7c3Q9MHx2cigoZj1mKzV8MCk8PDQpLF9bc3Q+PjNdPStfW2I+PjNdLS41KigrX1trPj4zXS0rX1soV2U9b3QrNDh8MCk+PjNdKSxfW3N0Kzg+PjNdPStfW290KzI0Pj4zXS0uNSooK19bKFZlPW90''@;'; + put 'put ''KzU2fDApPj4zXS0rX1sobnQ9b3QrNzJ8MCk+PjNdKSxfW3N0KzE2Pj4zXT0rX1tXZT4+M10sX1tzdCsyND4+M109KGN0PStfW1ZlPj4zXSktLjUqKGN0LStfW250Pj4zXSksX1tzdCszMj4+M109K19bYyszMj4+M10sX1tzdCs0MD4+M109K19bKHFlPWMrNDB8MCk+PjNdLF9bc3QrNDg+PjNd''@;'; + put 'put ''PS41KigoY3Q9K19baz4+M10pLStfW1dlPj4zXSkrY3QsX1tzdCs1Nj4+M109K19bcWU+PjNdLF9bc3QrNjQ+PjNdPS41KigoY3Q9K19baz4+M10pLStfW1dlPj4zXSkrY3QsX1tzdCs3Mj4+M109LjUqKCtfW1ZlPj4zXS0rX1tudD4+M10pKyArX1txZT4+M10sX1tzdCs4MD4+M109K19bYj4+''@;'; + put 'put ''M10tLjUqKCtfW2s+PjNdLStfW1dlPj4zXSksX1tzdCs4OD4+M109LjUqKCtfW1ZlPj4zXS0rX1tudD4+M10pKyArX1txZT4+M10sX1tzdCs5Nj4+M109K19bYj4+M10tLjUqKCtfW2s+PjNdLStfW1dlPj4zXSksX1tzdCsxMDQ+PjNdPStfWyhxZT1jKzU2fDApPj4zXSxfW3N0KzEyMD4+M109''@;'; + put 'put ''KGN0PStfWyhudD1jKzh8MCk+PjNdKS0uNSooY3QtK19bcWU+PjNdKSxfW3N0KzExMj4+M109K19bYz4+M10sX1tzdCsxMzY+PjNdPStfW250Pj4zXSxfW3N0KzEyOD4+M109K19bYj4+M10tLjUqKCtfW2s+PjNdLStfW1dlPj4zXSksa2EobCxzdCxmLG0pLEZ0KHN0KTticmVha31pZigzODU4''@;'; + put 'put ''NzU5NjghPSgwfHApKWJyZWFrIGU7c3Q9MHx2cigoZj1mKzN8MCk8PDQpLF9bc3Q+PjNdPStfW2I+PjNdLS41KigrX1trPj4zXS0rX1soV2U9b3QrNDh8MCk+PjNdKSxfW3N0Kzg+PjNdPStfW290KzI0Pj4zXS0uNSooK19bKFZlPW90KzU2fDApPj4zXS0rX1sobnQ9b3QrNzJ8MCk+PjNdKSxf''@;'; + put 'put ''W3N0KzE2Pj4zXT0rX1tXZT4+M10sX1tzdCsyND4+M109KGN0PStfW1ZlPj4zXSktLjUqKGN0LStfW250Pj4zXSksX1tzdCszMj4+M109K19bYyszMj4+M10sX1tzdCs0MD4+M109LjUqKCtfW1ZlPj4zXS0rX1tudD4+M10pKyArX1socWU9Yys0MHwwKT4+M10sX1tzdCs0OD4+M109K19bYj4+''@;'; + put 'put ''M10tLjUqKCtfW2s+PjNdLStfW1dlPj4zXSksX1tzdCs1Nj4+M109LjUqKCtfW1ZlPj4zXS0rX1tudD4+M10pKyArX1txZT4+M10sX1tzdCs2ND4+M109K19bYj4+M10tLjUqKCtfW2s+PjNdLStfW1dlPj4zXSksX1tzdCs3Mj4+M109K19bKHFlPWMrNTZ8MCk+PjNdLF9bc3QrODg+PjNdPShj''@;'; + put 'put ''dD0rX1sobnQ9Yys4fDApPj4zXSktLjUqKGN0LStfW3FlPj4zXSksX1tzdCs4MD4+M109K19bYz4+M10sX1tzdCsxMDQ+PjNdPStfW250Pj4zXSxfW3N0Kzk2Pj4zXT0rX1tiPj4zXS0uNSooK19baz4+M10tK19bV2U+PjNdKSxrYShsLHN0LGYsbSksRnQoc3QpO2JyZWFrfWlmKCgwfHApPDQx''@;'; + put 'put ''OTQzMDQwMCl7aWYoNDAyNjUzMTg0IT0oMHxwKSlicmVhayBlO3N0PTB8dnIoKGY9ZiszfDApPDw0KSxfW3N0Pj4zXT0rX1tjPj4zXSxxZT1vdCs0OHwwLF9bc3QrOD4+M109K19bKFZlPWMrOHwwKT4+M10tLjUqKCtfWyhudD1vdCs1NnwwKT4+M10tK19bKFdlPW90KzcyfDApPj4zXSksX1tz''@;'; + put 'put ''dCsxNj4+M109LjUqKChjdD0rX1trPj4zXSktK19bcWU+PjNdKStjdCxfW3N0KzI0Pj4zXT0rX1tWZT4+M10tLjUqKCtfW250Pj4zXS0rX1tXZT4+M10pLF9bc3QrMzI+PjNdPS41KigoY3Q9K19baz4+M10pLStfW3FlPj4zXSkrY3QsX1tzdCs0MD4+M109K19bb3QrNDA+PjNdLF9bc3QrNDg+''@;'; + put 'put ''PjNdPStfW2MrMTY+PjNdLF9bc3QrNTY+PjNdPShjdD0rX1tjKzI0Pj4zXSktLjUqKGN0LStfWyhWZT1jKzQwfDApPj4zXSksX1tzdCs2ND4+M109LjUqKChjdD0rX1trPj4zXSktK19bcWU+PjNdKStjdCxfW3N0KzcyPj4zXT0rX1tWZT4+M10sX1tzdCs4OD4+M109LjUqKCtfW250Pj4zXS0r''@;'; + put 'put ''X1tXZT4+M10pKyArX1tWZT4+M10sX1tzdCs4MD4+M109LjUqKChjdD0rX1trPj4zXSktK19bcWU+PjNdKStjdCxfW3N0KzEwND4+M109LjUqKCtfW250Pj4zXS0rX1tXZT4+M10pKyArX1tjKzU2Pj4zXSxfW3N0Kzk2Pj4zXT0rX1tjPj4zXSxrYShsLHN0LGYsbSksRnQoc3QpO2JyZWFrfWlm''@;'; + put 'put ''KDQxOTQzMDQwMCE9KDB8cCkpYnJlYWsgZTtzdD0wfHZyKChmPWYrNXwwKTw8NCksX1tzdD4+M109K19bYz4+M10sbnQ9b3QrNDh8MCxfW3N0Kzg+PjNdPStfWyhXZT1jKzh8MCk+PjNdLS41KigrX1soVmU9b3QrNTZ8MCk+PjNdLStfWyhxZT1vdCs3MnwwKT4+M10pLF9bc3QrMTY+PjNdPS41''@;'; + put 'put ''KigoY3Q9K19baz4+M10pLStfW250Pj4zXSkrY3QsX1tzdCsyND4+M109K19bV2U+PjNdLS41KigrX1tWZT4+M10tK19bcWU+PjNdKSxfW3N0KzMyPj4zXT0uNSooKGN0PStfW2s+PjNdKS0rX1tudD4+M10pK2N0LF9bc3QrNDA+PjNdPStfW290KzQwPj4zXSxfW3N0KzQ4Pj4zXT0rX1tjKzE2''@;'; + put 'put ''Pj4zXSxfW3N0KzU2Pj4zXT0oY3Q9K19bYysyND4+M10pLS41KihjdC0rX1soV2U9Yys0MHwwKT4+M10pLF9bc3QrNjQ+PjNdPS41KigoY3Q9K19baz4+M10pLStfW250Pj4zXSkrY3QsX1tzdCs3Mj4+M109K19bV2U+PjNdLF9bc3QrODg+PjNdPS41KigrX1tWZT4+M10tK19bcWU+PjNdKSsg''@;'; + put 'put ''K19bV2U+PjNdLF9bc3QrODA+PjNdPS41KigoY3Q9K19baz4+M10pLStfW250Pj4zXSkrY3QsX1tzdCsxMDQ+PjNdPS41KigrX1tWZT4+M10tK19bcWU+PjNdKSsgK19bKFdlPWMrNTZ8MCk+PjNdLF9bc3QrOTY+PjNdPStfW2I+PjNdLS41KigrX1trPj4zXS0rX1tudD4+M10pLF9bc3QrMTEy''@;'; + put 'put ''Pj4zXT0rX1tiPj4zXS0uNSooK19baz4+M10tK19bbnQ+PjNdKSxfW3N0KzEyMD4+M109K19bV2U+PjNdLF9bc3QrMTI4Pj4zXT0rX1tjKzQ4Pj4zXSxfW3N0KzEzNj4+M109K19bV2U+PjNdLGthKGwsc3QsZixtKSxGdChzdCk7YnJlYWt9d2hpbGUoMCk7RnQob3QpfWxlPVN0fWZ1bmN0aW9u''@;'; + put 'put ''IEtJKGwsYyxmLHApe3ZhciBBLG09MDttPSgrX1s4KyhwfD0wKT4+M10tKG09K19bOCsoZnw9MCk+PjNdKSkqKGM9K2MpK20sX1sobHw9MCk+PjNdPSgrX1twPj4zXS0oQT0rX1tmPj4zXSkpKmMrQSxfW2wrOD4+M109bX1mdW5jdGlvbiAkNShsKXtpZihsPTB8YVs4KygwfGFbMTYrKGx8PTAp''@;'; + put 'put ''Pj4yXSk+PjJdKWlmKDkxIT0oMHwobD0wfGFbYVtsKzQ+PjJdPj4yXSkpKXtpZig5NCE9KDB8bCkpcmV0dXJuIDB8KDkzPT0oMHxsKT8zOjk2PT0oMHxsKT80OjApO2w9Mn1lbHNlIGw9MTtlbHNlIGw9MDtyZXR1cm4gMHxsfWZ1bmN0aW9uIGlOKGwsYyxmLHApe2x8PTAsY3w9MCxmfD0wLHB8''@;'; + put 'put ''PTA7dmFyIE9lLExlLFJlLEhlLFZlLHFlLG50LFdlLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLEs9MCxwZT0wLGdlPTAsYmU9MCxvdD0wLFN0PTAsa3Q9MDttPTB8dnIoNzIpLEQ9MHxhWzEwNCsoMHxhW2wrMTY+PjJdKT4+Ml0sTT0wLEE9MSx3PTB8YVs0NzI4Ml07ZTpm''@;'; + put 'put ''b3IoOzspe3N3aXRjaCgoYj0wfGZlW3c+PjBdKTw8MjQ+PjI0KXtjYXNlIDA6YnJlYWsgZTtjYXNlIDkyOnN3aXRjaCgoYj0wfGZlWyh3PXcrMXwwKT4+MF0pPDwyND4+MjQpe2Nhc2UgMTI0OmNhc2UgMTI1OmNhc2UgMTIzOmNhc2UgOTI6az1NO2JyZWFrO2RlZmF1bHQ6a3Q9NH1icmVhaztk''@;'; + put 'put ''ZWZhdWx0Omt0PTR9aWYoND09KDB8a3QpKXtzd2l0Y2goa3Q9MCxiPDwyND4+MjQpe2Nhc2UgMTIzOms9TSsxfDA7YnJlYWs7Y2FzZSAxMjU6az1NKy0xfDA7YnJlYWs7ZGVmYXVsdDprPU0sQT1BKygwPT0oMHxNKSZiPDwyND4+MjQ9PTEyNCYxKXwwfWlmKCgwfGspPDApYnJlYWt9TT1rLHc9''@;'; + put 'put ''dysxfDB9YVsoV2U9bSs1NnwwKT4+Ml09MHx2cihBPDwyKSxmZVttKzY0Pj4wXT1jLFZlPTA9PSgwfGMpJjEscWU9RCs4MnwwLG50PXArMXwwLExlPTAhPSgwfGYpLFJlPUQrMTZ8MCxIZT1EKzR8MCxPZT1EKzh8MCxiPTAsTT0wLGM9MCxiZT0wLGs9MCxmPTAsRD1wLEE9MCx3PTA7ZTpmb3Io''@;'; + put 'put ''Ozspe0c9YixiPTA7dDpmb3IoOzspe246Zm9yKDs7KXtnZT1mO3I6Zm9yKDs7KXtwZT1iLFI9QTtpOmZvcig7Oyl7Sz1NO286Zm9yKDs7KXtmb3IoOzspe2lmKGJlKXtrdD03ODticmVhayBlfWlmKCgoQT0wfGZlWyhNPTB8YVs0NzI4Ml0pPj4wXSktMSYyNTUpPj0zMSlicmVhazthWzQ3Mjgy''@;'; + put 'put ''XT1NKzF9c3dpdGNoKEE8PDI0Pj4yNHwwKXtjYXNlIDkyOmt0PTUzO2JyZWFrIG47Y2FzZSAwOmNhc2UgMTI0OmNhc2UgMTI1OmJyZWFrIHI7Y2FzZSA2MDpicmVhayBpO2Nhc2UgNjI6YnJlYWsgbztjYXNlIDEyMzpicmVhaztkZWZhdWx0OmI9YyxBPU07YnJlYWsgbn1pZihhWzQ3MjgyXT1B''@;'; + put 'put ''PU0rMXwwLDB8ayl7a3Q9MzQ7YnJlYWsgZX1pZighKDB8ZmVbQT4+MF0pKXtrdD0zNDticmVhayBlfWlmKGY9MHxpTihsLFZlLDAscCksYVsoMHxhW1dlPj4yXSkrKEs8PDIpPj4yXT1mLCFmKXtrdD0zNjticmVhayBlfUs9SysxfDAsaz00fWlmKDB8ZmVbcWU+PjBdKXtiPWMsQT1NO2JyZWFr''@;'; + put 'put ''IG59aWYoISgxNiZrKSl7a3Q9Mjc7YnJlYWsgZX1BPVI+Pj4wPm50Pj4+MCYmKDB8KG90PVIrLTF8MCkpIT0oMHxnZSkmJjMyPT0oMHxmZVtvdD4+MF0pP290OlIsZmVbQT4+MF09MCxwZT0wfHJhKHApLGFbNDcyODJdPTErKDB8YVs0NzI4Ml0pLE09SyxrJj0tMTcsUj1BfWlmKDYma3wwKXtr''@;'; + put 'put ''dD0yMjticmVhayBlfWlmKDB8ZmVbcWU+PjBdKXtiPWMsQT1NO2JyZWFrIG59YVs0NzI4Ml09TSsxLE09SyxrfD0xOCxiPXBlLGdlPXAsQT1wfWlmKCEoMD09KDE2Jmt8MCkmKExlfEE8PDI0Pj4yNCE9MCkpKXtrdD0zODticmVhayBlfXN3aXRjaCg0Jms/KGI9RyxNPUspOihiPTB8dnIoNzIp''@;'; + put 'put ''LGFbKDB8YVtXZT4+Ml0pKyhLPDwyKT4+Ml09YixNPUsrMXwwKSwwfHBlJiYoYVtiKzYwPj4yXT1wZSksNSZrfHwoZmVbcCt3Pj4wXT0zMixrfD0xLHc9dysxfDApLEE9cCt3fDAsMSZrJiYoKDB8dyk+MSYmKDB8KFN0PUErLTF8MCkpIT0oMHxEKSYmKEE9MzI9PSgwfGZlW1N0Pj4wXSk/U3Q6''@;'; + put 'put ''QSksZmVbQT4+MF09MCxEPTB8cmEocCksYVtiKzUyPj4yXT0wfEo1KGwsRCwwfGZlW3FlPj4wXT8yOjAsK19bUmU+PjNdLDB8YVtIZT4+Ml0sMHxhW09lPj4yXSksZmVbYis2ND4+MF09MSxEPXAsdz0wKSwwfGZlWyhBPTB8YVs0NzI4Ml0pPj4wXSl7Y2FzZSAwOmJlPTEsZj1nZSxBPVI7Y29u''@;'; + put 'put ''dGludWUgZTtjYXNlIDEyNTprdD01MTticmVhayBlfWFbNDcyODJdPUErMSxHPWIsaz0wLGI9MCxmPWdlLEE9Un1uOmRve2lmKDUzPT0oMHxrdCkpe3N3aXRjaChrdD0wLGI9cCt3fDAsMHxmZVsoQT1NKzF8MCk+PjBdKXtjYXNlIDA6Yj1jLEE9TTticmVhayBuO2Nhc2UgNjI6Y2FzZSA2MDpj''@;'; + put 'put ''YXNlIDEyNDpjYXNlIDEyNTpjYXNlIDEyMzpiPWM7YnJlYWs7Y2FzZSAzMjowfGZlW3FlPj4wXT9rdD01NTpiPTE7YnJlYWs7ZGVmYXVsdDprdD01NX01NT09KDB8a3QpJiYoa3Q9MCxmZVtiPj4wXT05MixiPWMsa3w9OSx3PXcrMXwwKSxhWzQ3MjgyXT1BfX13aGlsZSgwKTtpZihjPXArd3ww''@;'; + put 'put ''LDQma3wwJiYzMiE9KDB8ZmVbQT4+MF0pKXtrdD01OTticmVhayBlfWZvcigyNCZrfHwoaz0zMj09KDB8ZmVbQT4+MF0pP2s6OXxrKSw4Jms/KCEoKGY9MCE9KDB8YikpfChNPTB8ZmVbQT4+MF0pPDwyND4+MjQhPTMyKSYmMzI9PSgwfGZlW2MrLTE+PjBdKSYmMD09KDB8ZmVbcWU+PjBdKXx8''@;'; + put 'put ''KGZlW2M+PjBdPU0sdz13KzF8MCksZj8oZj1nZSxEPXArdystMXwwKTpmPWdlKToxNiZrPygoYz0wIT0oMHxiKSl8KE09MHxmZVtBPj4wXSk8PDI0Pj4yNCE9MzI/a3Q9NzM6KDB8UikhPSgwfHApPzMyPT0oMHxmZVtSKy0xPj4wXSk/TT1SOmt0PTczOk09cCw3Mz09KDB8a3QpJiYoa3Q9MCxm''@;'; + put 'put ''ZVtSPj4wXT1NLE09UisxfDAsQT0wfGFbNDcyODJdKSxmPWM/TSstMXwwOmdlLFI9TSk6Zj1nZSxhWzQ3MjgyXT1BPUErMXwwOzspe2lmKCgwfGZlW0E+PjBdKT49MCl7TT1LLGM9YixiPXBlLEE9Ujtjb250aW51ZSB0fWFbNDcyODJdPWdlPUErMXwwLGZlW3Ardz4+MF09MHxmZVtBPj4wXSx3''@;'; + put 'put ''PXcrMXwwLEE9Z2V9fX1yZXR1cm4gMjI9PSgwfGt0KXx8Mjc9PSgwfGt0KXx8MzQ9PSgwfGt0KXx8MzY9PSgwfGt0KXx8Mzg9PSgwfGt0KT8oQ3kobSxwZSksbT0wKTo1MT09KDB8a3QpPyhhWzQ3MjgyXT1BKzEsYVttKzQ4Pj4yXT1NKTo1OT09KDB8a3QpPyhDeShtLHBlKSxtPTApOjc4PT0o''@;'; + put 'put ''MHxrdCkmJihhW20rNDg+PjJdPUspLDB8bX1mdW5jdGlvbiBVUShsLGMsZil7bHw9MCxjfD0wO3ZhciBwZSxnZSxiZSxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAsSz0wO2JlPWxlLGxlPWxlKzY0fDAsYj1iZSs0OHwwLGs9YmUrNDB8MCxNPWJlKzMyfDAsZ2U9YmUr''@;'; + put 'put ''MTZ8MCxwZT1iZSx3PTB8YVs1MisoZnw9MCk+PjJdO2U6ZG97aWYodyl7aWYoKG09K19bdysyND4+M10pPjB8KHA9K19bdyszMj4+M10pPjApe3c9MHxMaShjLDEwNTQ5Nik7ZG97aWYodyl7aWYoYVtiPj4yXT1rLGFbYis0Pj4yXT1NLCgwfCh3PTB8aWwodywxMDU1MDMsYikpKTw9MCl7QT04''@;'; + put 'put ''LG0rPTE2O2JyZWFrfW0rPUE9Kyh+figoQT03MiorX1trPj4zXSkrKEE+PTA/LjU6LS41KSk8PDF8MCksMSE9KDB8dykmJihBPSsofn4oKEE9NzIqK19bTT4+M10pKyhBPj0wPy41Oi0uNSkpPDwxfDApKX1lbHNlIEE9OCxtKz0xNn13aGlsZSgwKTtwPUErcH1fW2dlPj4zXT1tLF9bZ2UrOD4+''@;'; + put 'put ''M109cH1lbHNlIGZvcihNPWdlKzh8MCxEPWYrNDh8MCxSPWYrNTZ8MCxHPWYrNjR8MCxLPXBlKzh8MCxhW2dlPj4yXT0wLGFbZ2UrND4+Ml09MCxhW2dlKzg+PjJdPTAsYVtnZSsxMj4+Ml09MCx3PTA7Oyl7aWYoKDB8dyk+PSgwfGFbRD4+Ml0pKWJyZWFrIGU7VVEocGUsYywwfGFbKDB8YVtS''@;'; + put 'put ''Pj4yXSkrKHc8PDIpPj4yXSksMHxmZVtHPj4wXT8oX1tnZT4+M109K19bZ2U+PjNdKyArX1twZT4+M10sYj1NLGs9KCtfW00+PjNdPitfW0s+PjNdP2dlOnBlKSs4fDApOihfW00+PjNdPStfW00+PjNdKyArX1tLPj4zXSxiPWdlLGs9K19bZ2U+PjNdPitfW3BlPj4zXT9nZTpwZSksX1tiPj4z''@;'; + put 'put ''XT0rX1trPj4zXSx3PXcrMXwwfX13aGlsZSgwKTthW2Y+PjJdPWFbZ2U+PjJdLGFbZis0Pj4yXT1hW2dlKzQ+PjJdLGFbZis4Pj4yXT1hW2dlKzg+PjJdLGFbZisxMj4+Ml09YVtnZSsxMj4+Ml0sYVtsPj4yXT1hW2dlPj4yXSxhW2wrND4+Ml09YVtnZSs0Pj4yXSxhW2wrOD4+Ml09YVtnZSs4''@;'; + put 'put ''Pj4yXSxhW2wrMTI+PjJdPWFbZ2UrMTI+PjJdLGxlPWJlfWZ1bmN0aW9uIFFRKGwsYyxmKXtmfD0wO3ZhciBBLGssRCxSLEcsSyxwZSxwPTAsbT0wLHc9MCxiPTAsTT0wO3BlPWxlLGxlPWxlKzMyfDAsRD1wZSsxNnwwLFI9cGUsQT0oRz0rX1soY3w9MCk+PjNdKS0rX1sobHw9MCk+PjNdLHA9''@;'; + put 'put ''KEs9K19bYys4Pj4zXSktK19bbCs4Pj4zXSxhW2w+PjJdPWFbYz4+Ml0sYVtsKzQ+PjJdPWFbYys0Pj4yXSxhW2wrOD4+Ml09YVtjKzg+PjJdLGFbbCsxMj4+Ml09YVtjKzEyPj4yXSwwIT0oMHxmKXwwPT0oMHwoYz0wfGFbbCs1Mj4+Ml0pKXx8KF9bKE09Yys0MHwwKT4+M109K19bTT4+M10r''@;'; + put 'put ''QSxfWyhNPWMrNDh8MCk+PjNdPStfW00+PjNdK3ApLGM9MHxhWyhrPWwrNDh8MCk+PjJdO2U6ZG97aWYoMHxjKWZvcihNPWwrNjR8MCxwPSgwPT0oMHxmZVtNPj4wXSk/cDpBKS8rKDB8YyksYj1sKzU2fDAsdz0wOzspe2lmKCgwfHcpPj0oMHxjKSlicmVhayBlO2w9MHxhWygwfGFbYj4+Ml0p''@;'; + put 'put ''Kyh3PDwyKT4+Ml0sYz1+fihwKisoMHwobT13KzF8MCkpKS1+fihwKisoMHx3KSl8MCwwfGZlW00+PjBdP195KFIsK19bbD4+M10rICsoMHxjKSxLKTpfeShSLEcsK19bbCs4Pj4zXSsgKygwfGMpKSxhW0Q+PjJdPWFbUj4+Ml0sYVtEKzQ+PjJdPWFbUis0Pj4yXSxhW0QrOD4+Ml09YVtSKzg+''@;'; + put 'put ''PjJdLGFbRCsxMj4+Ml09YVtSKzEyPj4yXSxRUShsLEQsZiksdz1tLGM9MHxhW2s+PjJdfX13aGlsZSgwKTtsZT1wZX1mdW5jdGlvbiBfeShsLGMsZil7Zj0rZixfWyhsfD0wKT4+M109Yz0rYyxfW2wrOD4+M109Zn1mdW5jdGlvbiBKUShsLGMsZil7Y3w9MDt2YXIgQSx3LEQsUixHLEsscGUs''@;'; + put 'put ''cD0wLG09MCxiPTAsaz0wLE09MDtmb3IoRz1sZSxsZT1sZSs0OHwwLHc9RyszMnwwLE09RysxNnwwLGs9RyxmZVs2NSsobHw9MCk+PjBdPWZ8PTAsYj1sKzE2fDAsX3koTSxwZT0rX1tjPj4zXSwoSz0rX1soUj1jKzh8MCk+PjNdKS0rX1tsKzg+PjNdKSxhW2I+PjJdPWFbTT4+Ml0sYVtiKzQ+''@;'; + put 'put ''PjJdPWFbTSs0Pj4yXSxhW2IrOD4+Ml09YVtNKzg+PjJdLGFbYisxMj4+Ml09YVtNKzEyPj4yXSxiPWwrMzJ8MCxfeShrLCtfW2w+PjNdK3BlLEspLGFbYj4+Ml09YVtrPj4yXSxhW2IrND4+Ml09YVtrKzQ+PjJdLGFbYis4Pj4yXT1hW2srOD4+Ml0sYVtiKzEyPj4yXT1hW2srMTI+PjJdLGs9''@;'; + put 'put ''KGI9MHxhW2wrNDg+PjJdKS0xfDAsTT0wPT0oMHxmKSxEPWwrNTZ8MCxBPWwrNjR8MCxtPTA7ISgoMHxtKT49KDB8YikpOyl7ZG97aWYoIU0pe2lmKGw9MD09KDB8bSkscD0oMHxtKT09KDB8ayksMHxmZVtBPj4wXSl7aWYobCl7bD1wPzE1OjEzO2JyZWFrfWw9cD83OjU7YnJlYWt9aWYobCl7''@;'; + put 'put ''bD1wPzE1OjE0O2JyZWFrfWw9cD8xMToxMDticmVha31sPTB9d2hpbGUoMCk7cD0wfGFbKDB8YVtEPj4yXSkrKG08PDIpPj4yXSxhW3c+PjJdPWFbYz4+Ml0sYVt3KzQ+PjJdPWFbYys0Pj4yXSxhW3crOD4+Ml09YVtjKzg+PjJdLGFbdysxMj4+Ml09YVtjKzEyPj4yXSxKUShwLHcsbCZmKSww''@;'; + put 'put ''fGZlW0E+PjBdP19bYz4+M109K19bYVsoMHxhW0Q+PjJdKSsobTw8Mik+PjJdPj4zXSsgK19bYz4+M106X1tSPj4zXT0rX1tSPj4zXS0rX1s4KygwfGFbKDB8YVtEPj4yXSkrKG08PDIpPj4yXSk+PjNdLG09bSsxfDB9bGU9R31mdW5jdGlvbiBDeShsLGMpe2N8PTAsb04obHw9MCksRnQoYyl9''@;'; + put 'put ''ZnVuY3Rpb24gb04obCl7dmFyIGYscCxjPTA7Zm9yKGY9NDgrKGx8PTApfDAscD1sKzU2fDAsYz0wOyEoKDB8Yyk+PSgwfGFbZj4+Ml0pKTspb04oMHxhWygwfGFbcD4+Ml0pKyhjPDwyKT4+Ml0pLGM9YysxfDA7RnQoMHxhW2wrNjA+PjJdKSxJYygwfGFbbCs1Mj4+Ml0pLEZ0KDB8YVtwPj4y''@;'; + put 'put ''XSksRnQobCl9ZnVuY3Rpb24gRmFlKGwpe3ZhciBmLGM9MDtyZXR1cm4rICsoMHx+figoYz03MiooKGY9K01sKGx8PTAsMHxhWzQ3MTQ2XSwwLC4wMSkpPihjPStNbChsLDB8YVs0NzE0NV0sMCwuMDIpKT9mOmMpKSsoYz49MD8uNTotLjUpKSl9ZnVuY3Rpb24gWFEobCxjKXt2YXIgZjtyZXR1''@;'; + put 'put ''cm4rICsoKCsoMHwoZj1+figobD0rbCkvKGM9K2MpKSkpKmMrMWUtNTxsJjEpK2Z8MCkqY31mdW5jdGlvbiBIYWUobCl7cmV0dXJuIDB8KChsPTB8YVs4KygwfGFbMTYrKGx8PTApPj4yXSk+PjJdKT85MT09KDB8YVthW2wrND4+Ml0+PjJdKSYxOjApfWZ1bmN0aW9uIGFOKGwpe2x8PTA7dmFy''@;'; + put 'put ''IHAsYz0wLGY9MCxtPTAsQT0wO3A9MHxhWzQ3MjgzXTtlOmRve2lmKHApZm9yKG09MHxhWzQ3Mjg0XSxmPTA7Oyl7aWYoKDB8Zik+PSgwfG0pKXtjPTA7YnJlYWsgZX1pZigoMHxmZVsoQT0wfGFbKGM9MHxhW3ArKGY8PDIpPj4yXSk+PjJdKT4+MF0pPT0oMHxmZVtsPj4wXSkmJjA9PSgwfFpp''@;'; + put 'put ''KEEsbCkpKWJyZWFrIGU7Zj1mKzF8MH1lbHNlIGM9MH13aGlsZSgwKTtyZXR1cm4gMHxjfWZ1bmN0aW9uIEtRKGwsYyl7Y3w9MDt2YXIgayxNLEQsUixHLEsscGUsZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsZ2U9MCxiZT0wO2lmKHBlPWxlLGxlPWxlKzExMnwwLEQ9cGUrOTZ8MCxNPXBlKzgw''@;'; + put 'put ''fDAsRz1wZSs2NHwwLGs9cGUrNDh8MCxLPXBlKzMyfDAsUj1wZSxtPXBlKzE2fDAsbHw9MCl7QT0wfGFbbCs0Pj4yXSx3PTkwKigzJmFbMTE2KygwfGFbMTYrKDB8Y3IobD0wfGFbbD4+Ml0pKT4+Ml0pPj4yXSl8MCxhW0Q+PjJdPWFbYz4+Ml0sYVtEKzQ+PjJdPWFbYys0Pj4yXSxhW0QrOD4+''@;'; + put 'put ''Ml09YVtjKzg+PjJdLGFbRCsxMj4+Ml09YVtjKzEyPj4yXSxVNihtLEQsdyksYVtLPj4yXT1hW20+PjJdLGFbSys0Pj4yXT1hW20rND4+Ml0sYVtLKzg+PjJdPWFbbSs4Pj4yXSxhW0srMTI+PjJdPWFbbSsxMj4+Ml07ZTpkb3tpZihBKWY9K19bQSs4Pj4zXSxwPStfW0ErMjQ+PjNdLGdlPStf''@;'; + put 'put ''W0s+PjNdLGw9K19bQT4+M108PWdlJiZnZTw9K19bQSsxNj4+M10mJihiPStfW0srOD4+M10sZjw9Yik/Yjw9cCYxOjA7ZWxzZSBmb3IoKDB8bCk9PSgwfGFbNDcyODddKT8obT0wfGFbNDcyODhdLEE9MHxhWzQ3MjkwXSx3PTB8YVs0NzI4OV0pOihBPTB8YVsxMisoMHxhW2wrMTY+PjJdKT4+''@;'; + put 'put ''Ml0sYVs0NzI5MV09QSx3PTB8YVtBKzQ0Pj4yXSxhWzQ3Mjg5XT13LG09MHxhW0ErOD4+Ml0sYVs0NzI4OF09bSxBPTB8QXIoKDB8YVtBKzQ+PjJdKS0xfDAsbSksQT0oMHxBKT4wP0E6MCxhWzQ3MjkwXT1BLGFbNDcyODddPWwpLGw9MCxjPTA7Oyl7aWYoKDB8bCk+PSgwfG0pKXtsPTE7YnJl''@;'; + put 'put ''YWsgZX1pZihhW1I+PjJdPWFbKGJlPXcrKEErbDw8NCl8MCk+PjJdLGFbUis0Pj4yXT1hW2JlKzQ+PjJdLGFbUis4Pj4yXT1hW2JlKzg+PjJdLGFbUisxMj4+Ml09YVtiZSsxMj4+Ml0sYmU9dysoQSsoKGwrNHwwKSUoMHxtKXwwKTw8NCl8MCxhW2s+PjJdPWFbSz4+Ml0sYVtrKzQ+PjJdPWFb''@;'; + put 'put ''Sys0Pj4yXSxhW2srOD4+Ml09YVtLKzg+PjJdLGFbaysxMj4+Ml09YVtLKzEyPj4yXSxhW0c+PjJdPWFbNDY2MTRdLGFbRys0Pj4yXT1hWzQ2NjE1XSxhW0crOD4+Ml09YVs0NjYxNl0sYVtHKzEyPj4yXT1hWzQ2NjE3XSxhW00+PjJdPWFbUj4+Ml0sYVtNKzQ+PjJdPWFbUis0Pj4yXSxhW00r''@;'; + put 'put ''OD4+Ml09YVtSKzg+PjJdLGFbTSsxMj4+Ml09YVtSKzEyPj4yXSxhW0Q+PjJdPWFbYmU+PjJdLGFbRCs0Pj4yXT1hW2JlKzQ+PjJdLGFbRCs4Pj4yXT1hW2JlKzg+PjJdLGFbRCsxMj4+Ml09YVtiZSsxMj4+Ml0sMj09KDB8KGM9YysoMD09KDB8TXkoayxHLE0sRCkpJjEpfDApKSl7bD0wO2Jy''@;'; + put 'put ''ZWFrfWw9bCsyfDB9fXdoaWxlKDApfWVsc2UgYVs0NzI4N109MCxsPTA7cmV0dXJuIGxlPXBlLDB8bH1mdW5jdGlvbiAkUShsLGMpe2x8PTA7dmFyIHAsQSxmPTAsbT0wO3JldHVybiBBPWxlLGxlPWxlKzE2fDAsMHwoZj0wfCRJKGN8PTAscD1BKSkmJmQyKGwsZiksMHwoZj0wfGFbNDcxNzJd''@;'; + put 'put ''KSYmMHwobT0wfEhvKGMsZikpJiYwfGZlW20+PjBdJiZ4aChsLCtNbChjLDB8YVs0NzE3Ml0sMSwwKSksbGU9QSwwfGFbcD4+Ml19ZnVuY3Rpb24gbE4obCl7cmV0dXJuIDB8cVEobHw9MCwxMzQ4MDApfWZ1bmN0aW9uIGt5KGwsYyl7cmV0dXJuIGx8PTAsYz0wfEJhKGN8PTAsMHxhWzQ3MTQ4''@;'; + put 'put ''XSwxOTUwNTkpLG1hKGwsYz0wfGZlW2M+PjBdP2M6MTM3MzE0KSwwfGN9ZnVuY3Rpb24gc04obCxjKXtsfD0wO3ZhciBmLHAsdyxiLGssTSxtPTAsQT0wO2Y9bGUsbGU9bGUrOTZ8MCxiPWYrODB8MCxrPWYrNjR8MCxwPWYrMzJ8MCxBPWYsX1s4KyhNPWYrMTZ8MCk+PjNdPS4zNzUqKG09K19b''@;'; + put 'put ''ODArKGM9MHxhWzE2KyhjfD0wKT4+Ml0pPj4zXSksX1tNPj4zXT0uNjYxNCoodz0rX1tjKzk2Pj4zXSksYz1jKzE2fDAsYVtrPj4yXT1hW00+PjJdLGFbays0Pj4yXT1hW00rND4+Ml0sYVtrKzg+PjJdPWFbTSs4Pj4yXSxhW2srMTI+PjJdPWFbTSsxMj4+Ml0sYVtiPj4yXT1hW2M+PjJdLGFb''@;'; + put 'put ''Yis0Pj4yXT1hW2MrND4+Ml0sYVtiKzg+PjJdPWFbYys4Pj4yXSxhW2IrMTI+PjJdPWFbYysxMj4+Ml0scTUoQSxrLGIpLGFbcD4+Ml09YVtBPj4yXSxhW3ArND4+Ml09YVtBKzQ+PjJdLGFbcCs4Pj4yXT1hW0ErOD4+Ml0sYVtwKzEyPj4yXT1hW0ErMTI+PjJdLF9bKGM9cCsyNHwwKT4+M109''@;'; + put 'put ''K19bKEE9cCs4fDApPj4zXSxfW3ArMTY+PjNdPStfW3A+PjNdLTEuMzIyOCp3LFdvKGwscCwyKSxfW0E+PjNdPW09K19bQT4+M10tLjc1Km0sX1tjPj4zXT1tLFdvKGwscCwyKSxsZT1mfWZ1bmN0aW9uIHE1KGwsYyxmKXt2YXIgcDtwPStfWzgrKGZ8PTApPj4zXSsgK19bOCsoY3w9MCk+PjNd''@;'; + put 'put ''LF9bKGx8PTApPj4zXT0rX1tmPj4zXSsgK19bYz4+M10sX1tsKzg+PjNdPXB9ZnVuY3Rpb24gcVEobCxjKXtjfD0wO3ZhciBmPTA7cmV0dXJuIGY9MHxCYShsfD0wLDB8YVs0NzE0OV0sMTk1MDU5KSwwfGZlW2Y+PjBdPzB8ZjooZj0wfEJhKGwsMHxhWzQ3MTQ4XSwxOTUwNTkpLDB8KDA9PSgw''@;'; + put 'put ''fGZlW2Y+PjBdKT9jOmYpKX1mdW5jdGlvbiAkSShsLGMpe2N8PTA7dmFyIGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wO2Y9MHxCYShsfD0wLDB8YVs0NzE1N10sMTk1MDU5KTtlOmRve2lmKDB8ZmVbZj4+MF0pe0E9bT0wfFpBKGYpLGY9MDt0OmZvcig7Oyl7aWYoIShwPTB8YVtBPj4yXSkpYnJl''@;'; + put 'put ''YWsgZTtzd2l0Y2goMHxmZVtwPj4wXSl7Y2FzZSAxMDI6aWYoISgwfFppKHAsMTExMTAxKSkpe0E9QSs0fDAsZnw9MTtjb250aW51ZSB0fWJyZWFrO2Nhc2UgMTE0OmlmKCEoMHxaaShwLDEwNjMxNikpKXtwPUE7ZG97YVsoYj1wKT4+Ml09dz0wfGFbKHA9cCs0fDApPj4yXX13aGlsZSgwIT0o''@;'; + put 'put ''MHx3KSk7Znw9NCxBPWI9QTtjb250aW51ZSB0fWlmKCEoMHxaaShwLDEwNjMzNCkpKXtwPUE7ZG97YVsodz1wKT4+Ml09Yj0wfGFbKHA9cCs0fDApPj4yXX13aGlsZSgwIT0oMHxiKSk7Znw9MyxBPWI9QTtjb250aW51ZSB0fWJyZWFrO2Nhc2UgMTAwOmlmKCEoMHxaaShwLDEwNjMyNCkpKXtw''@;'; + put 'put ''PUE7ZG97YVsodz1wKT4+Ml09Yj0wfGFbKHA9cCs0fDApPj4yXX13aGlsZSgwIT0oMHxiKSk7Znw9OCxBPWI9QTtjb250aW51ZSB0fWJyZWFrO2Nhc2UgMTA1OmlmKCEoMHxaaShwLDEzNDMzNSkpKXtBPUErNHwwLGZ8PTMyO2NvbnRpbnVlIHR9YnJlYWs7Y2FzZSAxMTU6aWYoMD09KDB8Wmko''@;'; + put 'put ''cCwxMDYzNDEpKSYmMHxZYWUobCkpe3A9QTtkb3thWyh3PXApPj4yXT1iPTB8YVsocD1wKzR8MCk+PjJdfXdoaWxlKDAhPSgwfGIpKTtmfD02NCxBPWI9QTtjb250aW51ZSB0fWJyZWFrO2Nhc2UgMTE5OmlmKDA9PSgwfFppKHAsMTA2MzQ5KSkmJjB8U3kobCkpe3A9QTtkb3thWyh3PXApPj4y''@;'; + put 'put ''XT1iPTB8YVsocD1wKzR8MCk+PjJdfXdoaWxlKDAhPSgwfGIpKTtmfD01MTIsQT1iPUE7Y29udGludWUgdH19QT1BKzR8MH19ZWxzZSBtPTAsZj0wfXdoaWxlKDApO3JldHVybihwPTB8YVs4KygwfGFbOCsoMHxhW2wrMTY+PjJdKT4+Ml0pPj4yXSkmJihmfD1hW3ArNDA+PjJdKSxhW2M+PjJd''@;'; + put 'put ''PWYsMHxtfWZ1bmN0aW9uIFlhZShsKXt2YXIgYz0wO3JldHVybiAwfCgwIT0oMHwobD0wfGFbOCsoMHxhWzgrKDB8YVsxNisobHw9MCk+PjJdKT4+Ml0pPj4yXSkpJiY0PT0oMHxhW2wrOD4+Ml0pJiYwPT0oMHwoMHx+figoYz0rX1tsKzE2Pj4zXSkrKGM+PTA/LjU6LS41KSkpJTkwKSYmMD09''@;'; + put 'put ''K19bbCsyND4+M10/MD09K19bbCszMj4+M10mMTowKX1mdW5jdGlvbiBTeShsKXtyZXR1cm4gMHwoKGw9MHxhWzgrKDB8YVs4KygwfGFbMTYrKGx8PTApPj4yXSk+PjJdKT4+Ml0pPygwfGFbbCs4Pj4yXSk8MyYxOjApfWZ1bmN0aW9uIE15KGwsYyxmLHApe3ZhciBtLHcsYixBPTA7cmV0dXJu''@;'; + put 'put ''IDEmKCtfWzgrKGx8PTApPj4zXSoobT0rX1socHw9MCk+PjNdLShBPStfWyhmfD0wKT4+M10pKSsgK19bbD4+M10qKHc9LSgrX1twKzg+PjNdLShiPStfW2YrOD4+M10pKSktKEE9bSpiK0Eqdyk+PTBeK19bKGN8PTApPj4zXSp3LUErICtfW2MrOD4+M10qbT49MF4xKXwwfWZ1bmN0aW9uIG1r''@;'; + put 'put ''KGwsYyxmLHAsbSxBKXtsfD0wLGZ8PTAscHw9MCxtfD0wLEF8PTA7dmFyIE9lLExlLFJlLFZlLHFlLG50LG90LFN0LHN0LHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxLPTAscGU9MCxnZT0wLGJlPTAsSGU9MCxXZT0wLGt0PTAsRXQ9MDtzdD1sZSxsZT1sZSsxOTJ8MCxudD1zdCsxNzZ8''@;'; + put 'put ''MCxTdD1zdCsxNjB8MCxrPXN0KzE0NHwwLFZlPXN0KzEyOHwwLHFlPXN0KzExMnwwLE09c3QrOTZ8MCxEPXN0KzgwfDAsUj1zdCs2NHwwLE9lPXN0KzQ4fDAsTGU9c3QrMzJ8MCxSZT1zdCsxNnwwLG90PXN0LChjfD0wKT8oX3koaywuNSooKEc9K19bYysxNj4+M10pKyhiPStfW2M+PjNdKSks''@;'; + put 'put ''LjUqKChLPStfW2MrMjQ+PjNdKSsoZ2U9K19bYys4Pj4zXSkpKSxhW1N0Pj4yXT1hW2s+PjJdLGFbU3QrND4+Ml09YVtrKzQ+PjJdLGFbU3QrOD4+Ml09YVtrKzg+PjJdLGFbU3QrMTI+PjJdPWFbaysxMj4+Ml0saz0xLFdlPVN0LHc9K19bU3Q+PjNdLGt0PUV0PVN0Kzh8MCxwZT0rX1tFdD4+''@;'; + put 'put ''M10pOihhW1N0Pj4yXT0wLGFbU3QrND4+Ml09MCxhW1N0Kzg+PjJdPTAsYVtTdCsxMj4+Ml09MCxrPTA9PSgxJmFbMTE2KygwfGFbMTYrKDB8Y3IobCkpPj4yXSk+PjJdfDApLEc9LjUqK19bODArKFdlPTB8YVtsKzE2Pj4yXSk+PjNdLHc9K19bV2UrODg+PjNdLGdlPWs/Rzp3LEc9az93Okcs''@;'; + put 'put ''az0wLFdlPVN0LHc9MCxiPS1HLEs9Z2Usa3Q9U3QrOHwwLHBlPTAsZ2U9LWdlKSxiZT00KihHPks/RzpLKTtlOmRve2lmKDAhPSgwfHApJiYoSGU9MHxmZVtwPj4wXSxIZTw8MjQ+PjI0IT0wKSlzd2l0Y2gocD1wKzF8MCxIZTw8MjQ+PjI0fDApe2Nhc2UgOTk6Uj0xLG09MCxwPTAsTT0wLHc9''@;'; + put 'put ''MCxEPTA7YnJlYWsgZTtjYXNlIDEwMTppZigwfGZlW3A+PjBdKXtSPTEsbT0wLHA9MCxNPTAsdz0wLEQ9MTticmVhayBlfUE/KGVnKFZlLEEscGUsYmUpLGFbU3Q+PjJdPWFbVmU+PjJdLGFbU3QrND4+Ml09YVtWZSs0Pj4yXSxhW1N0Kzg+PjJdPWFbVmUrOD4+Ml0sYVtTdCsxMj4+Ml09YVtW''@;'; + put 'put ''ZSsxMj4+Ml0pOl9bV2U+PjNdPUcsUj0wLG0mPTIscD0wLE09MSx3PTAsRD0wLGs9MTticmVhayBlO2Nhc2UgMTE1OnN3aXRjaChfW2t0Pj4zXT1nZSwwfGZlW3A+PjBdKXtjYXNlIDA6QT8oZWcocWUsQSwtYmUsdyksYVtTdD4+Ml09YVtxZT4+Ml0sYVtTdCs0Pj4yXT1hW3FlKzQ+PjJdLGFb''@;'; + put 'put ''U3QrOD4+Ml09YVtxZSs4Pj4yXSxhW1N0KzEyPj4yXT1hW3FlKzEyPj4yXSk6X1tXZT4+M109dyxSPTAsbSY9MSxwPTAsTT0xLHc9LTEuNTcwNzk2MzI2Nzk0ODk2NixEPTAsaz0xO2JyZWFrIGU7Y2FzZSAxMDE6QT8oZWcoTSxBLC1iZSxiZSksYVtTdD4+Ml09YVtNPj4yXSxhW1N0KzQ+PjJd''@;'; + put 'put ''PWFbTSs0Pj4yXSxhW1N0Kzg+PjJdPWFbTSs4Pj4yXSxhW1N0KzEyPj4yXT1hW00rMTI+PjJdKTpfW1dlPj4zXT1HLFI9MCxtJj0zLHA9MCxNPTEsdz0tLjc4NTM5ODE2MzM5NzQ0ODMsRD0wLGs9MTticmVhayBlO2Nhc2UgMTE5OkE/KGVnKEQsQSxiZT0tYmUsYmUpLGFbU3Q+PjJdPWFbRD4+''@;'; + put 'put ''Ml0sYVtTdCs0Pj4yXT1hW0QrND4+Ml0sYVtTdCs4Pj4yXT1hW0QrOD4+Ml0sYVtTdCsxMj4+Ml09YVtEKzEyPj4yXSk6X1tXZT4+M109YixSPTAsbSY9OSxwPTAsTT0xLHc9LTIuMzU2MTk0NDkwMTkyMzQ1LEQ9MCxrPTE7YnJlYWsgZTtkZWZhdWx0Ol9ba3Q+PjNdPXBlLFI9MSxtPTAscD0w''@;'; + put 'put ''LE09MCx3PTAsRD0xO2JyZWFrIGV9Y2FzZSAxMTk6aWYoMHxmZVtwPj4wXSl7Uj0xLG09MCxwPTAsTT0wLHc9MCxEPTE7YnJlYWsgZX1BPyhlZyhSLEEscGUsLWJlKSxhW1N0Pj4yXT1hW1I+PjJdLGFbU3QrND4+Ml09YVtSKzQ+PjJdLGFbU3QrOD4+Ml09YVtSKzg+PjJdLGFbU3QrMTI+PjJd''@;'; + put 'put ''PWFbUisxMj4+Ml0pOl9bV2U+PjNdPWIsUj0wLG0mPTgscD0wLE09MSx3PTMuMTQxNTkyNjUzNTg5NzkzLEQ9MCxrPTE7YnJlYWsgZTtjYXNlIDExMDpzd2l0Y2goX1trdD4+M109SywwfGZlW3A+PjBdKXtjYXNlIDA6QT8oZWcoT2UsQSxiZSx3KSxhW1N0Pj4yXT1hW09lPj4yXSxhW1N0KzQ+''@;'; + put 'put ''PjJdPWFbT2UrND4+Ml0sYVtTdCs4Pj4yXT1hW09lKzg+PjJdLGFbU3QrMTI+PjJdPWFbT2UrMTI+PjJdKTpfW1dlPj4zXT13LFI9MCxtJj00LHA9MCxNPTEsdz0xLjU3MDc5NjMyNjc5NDg5NjYsRD0wLGs9MTticmVhayBlO2Nhc2UgMTAxOkE/KGVnKExlLEEsYmUsYmUpLGFbU3Q+PjJdPWFb''@;'; + put 'put ''TGU+PjJdLGFbU3QrND4+Ml09YVtMZSs0Pj4yXSxhW1N0Kzg+PjJdPWFbTGUrOD4+Ml0sYVtTdCsxMj4+Ml09YVtMZSsxMj4+Ml0pOl9bV2U+PjNdPUcsUj0wLG0mPTYscD0wLE09MSx3PS43ODUzOTgxNjMzOTc0NDgzLEQ9MCxrPTE7YnJlYWsgZTtjYXNlIDExOTpBPyhlZyhSZSxBLGJlLC1i''@;'; + put 'put ''ZSksYVtTdD4+Ml09YVtSZT4+Ml0sYVtTdCs0Pj4yXT1hW1JlKzQ+PjJdLGFbU3QrOD4+Ml09YVtSZSs4Pj4yXSxhW1N0KzEyPj4yXT1hW1JlKzEyPj4yXSk6X1tXZT4+M109YixSPTAsbSY9MTIscD0wLE09MSx3PTIuMzU2MTk0NDkwMTkyMzQ1LEQ9MCxrPTE7YnJlYWsgZTtkZWZhdWx0Ol9b''@;'; + put 'put ''a3Q+PjNdPXBlLFI9MSxtPTAscD0wLE09MCx3PTAsRD0xO2JyZWFrIGV9Y2FzZSA5NTpSPTEscD0xLE09MCx3PTAsRD0wO2JyZWFrIGU7ZGVmYXVsdDpSPTEsbT0wLHA9MCxNPTAsdz0wLEQ9MTticmVhayBlfWVsc2UgUj0xLG09MCxwPTAsTT0wLHc9MCxEPTB9d2hpbGUoMCk7cmV0dXJuIEV0''@;'; + put 'put ''PTkwKigzJmFbMTE2KygwfGFbMTYrKDB8Y3IobCkpPj4yXSk+PjJdKXwwLGFbbnQ+PjJdPWFbU3Q+PjJdLGFbbnQrND4+Ml09YVtTdCs0Pj4yXSxhW250Kzg+PjJdPWFbU3QrOD4+Ml0sYVtudCsxMj4+Ml09YVtTdCsxMj4+Ml0sWUkob3QsbnQsRXQpLGFbU3Q+PjJdPWFbb3Q+PjJdLGFbU3Qr''@;'; + put 'put ''ND4+Ml09YVtvdCs0Pj4yXSxhW1N0Kzg+PjJdPWFbb3QrOD4+Ml0sYVtTdCsxMj4+Ml09YVtvdCsxMj4+Ml0scDw8MjQ+PjI0fHwobT0wfGZ1bmN0aW9uIFVhZShsLGMpe2x8PTAsY3w9MDtlOmRve3N3aXRjaCgwfGMpe2Nhc2UgMzpzd2l0Y2goMHxsKXtjYXNlIDQ6bD0yO2JyZWFrIGU7Y2Fz''@;'; + put 'put ''ZSAxOmw9ODticmVhayBlO2Nhc2UgODpsPTE7YnJlYWsgZTtjYXNlIDI6bD00O2JyZWFrIGU7ZGVmYXVsdDpicmVhayBlfWNhc2UgMjpzd2l0Y2goMHxsKXtjYXNlIDQ6bD0xO2JyZWFrIGU7Y2FzZSAxOmw9NDticmVhayBlO2RlZmF1bHQ6YnJlYWsgZX1jYXNlIDE6c3dpdGNoKDB8bCl7Y2Fz''@;'; + put 'put ''ZSA0Omw9MjticmVhayBlO2Nhc2UgMTpsPTg7YnJlYWsgZTtjYXNlIDg6bD00O2JyZWFrIGU7Y2FzZSAyOmw9MTticmVhayBlO2RlZmF1bHQ6YnJlYWsgZX19fXdoaWxlKDApO3JldHVybiAwfGx9KG0sMyZhWzExNisoMHxhWzE2KygwfGNyKGwpKT4+Ml0pPj4yXSkpLGZlW2YrMzM+PjBdPW0s''@;'; + put 'put ''YVtmKzI0Pj4yXT1jLF9bZj4+M109KygwfH5+KChiPStfW1dlPj4zXSkrKGI+PTA/LjU6LS41KSkpLF9bZis4Pj4zXT0rKDB8fn4oKGI9K19ba3Q+PjNdKSsoYj49MD8uNTotLjUpKSksX1tmKzE2Pj4zXT0rZnVuY3Rpb24gUWFlKGwsYyl7c3dpdGNoKGw9K2wsMHwoY3w9MCkpe2Nhc2UgMzoz''@;'; + put 'put ''LjE0MTU5MjY1MzU4OTc5MyE9bD8yLjM1NjE5NDQ5MDE5MjM0NSE9bD8xLjU3MDc5NjMyNjc5NDg5NjYhPWw/MCE9bD8tLjc4NTM5ODE2MzM5NzQ0ODMhPWw/LTEuNTcwNzk2MzI2Nzk0ODk2Nj09bCYmKGw9My4xNDE1OTI2NTM1ODk3OTMpOmw9Mi4zNTYxOTQ0OTAxOTIzNDU6bD0xLjU3MDc5''@;'; + put 'put ''NjMyNjc5NDg5NjY6bD0wOmw9LS43ODUzOTgxNjMzOTc0NDgzOmw9LTEuNTcwNzk2MzI2Nzk0ODk2NjticmVhaztjYXNlIDI6bD0tbDticmVhaztjYXNlIDE6bCs9LTEuNTcwNzk2MzI2Nzk0ODk2Nn1yZXR1cm4rbH0odywzJmFbMTE2KygwfGFbMTYrKDB8Y3IobCkpPj4yXSk+PjJdKSxtPTA9''@;'; + put 'put ''PShiPStfW1dlPj4zXSkmMD09KHc9K19ba3Q+PjNdKT8tMTI4OjI1NSZ+fig0MC43NDM2NjU0MzE1MjUyMSooKGdlPTQuNzEyMzg4OTgwMzg0NjkrKGJlPStVbCgrdywrYikpKT49Ni4yODMxODUzMDcxNzk1ODY/YmUrLTEuNTcwNzk2MzI2Nzk0ODk2NjpnZSkpLGZlW2YrMzI+PjBdPW0sZmVb''@;'; + put 'put ''ZisyOT4+MF09TSxmZVtmKzI4Pj4wXT1rLGZlW2YrMzA+PjBdPVIsZmVbZiszMT4+MF09cCxsZT1zdCwwfER9ZnVuY3Rpb24gZUoobCxjKXt2YXIgZixwO2N8PTAsZj1sZSxsZT1sZSsxNnwwLGFbKHA9Zik+PjJdPTB8dGkobHw9MCksYVtwKzQ+PjJdPWMsJHIoMCwxMDY0MTkscCksbGU9Zn1m''@;'; + put 'put ''dW5jdGlvbiBlZyhsLGMsZixwKXtsfD0wLGY9K2YscD0rcDt2YXIgbSxBLHcsYixrLEQsUixHLEssTT0wO0c9bGUsbGU9bGUrMTI4fDAsQT1HKzExMnwwLGI9Rys0OHwwLGs9RysxNnwwLE09RyszMnwwLEQ9Ryx3PTMmYVsxMTYrKDB8YVsxNisoMHxjcihSPTB8YVsoY3w9MCk+PjJdKSk+PjJd''@;'; + put 'put ''KT4+Ml0sX1trPj4zXT1wLF9bays4Pj4zXT1mLChtPTAhPSgwfHcpKSYmKGFbQT4+Ml09YVtrPj4yXSxhW0ErND4+Ml09YVtrKzQ+PjJdLGFbQSs4Pj4yXT1hW2srOD4+Ml0sYVtBKzEyPj4yXT1hW2srMTI+PjJdLFlJKE0sQSw5MCp3fDApLGFbaz4+Ml09YVtNPj4yXSxhW2srND4+Ml09YVtN''@;'; + put 'put ''KzQ+PjJdLGFbays4Pj4yXT1hW00rOD4+Ml0sYVtrKzEyPj4yXT1hW00rMTI+PjJdKSxNPWIrNDh8MCxLPWIrMzJ8MCxhW2I+PjJdPTAsYVtiKzQ+PjJdPTAsYVtiKzg+PjJdPTAsYVtiKzEyPj4yXT0wLGFbYisxNj4+Ml09MCxhW2IrMjA+PjJdPTAsYVtiKzI0Pj4yXT0wLGFbYisyOD4+Ml09''@;'; + put 'put ''MCxhW0s+PjJdPWFbaz4+Ml0sYVtLKzQ+PjJdPWFbays0Pj4yXSxhW0srOD4+Ml09YVtrKzg+PjJdLGFbSysxMj4+Ml09YVtrKzEyPj4yXSxhW00+PjJdPWFbaz4+Ml0sYVtNKzQ+PjJdPWFbays0Pj4yXSxhW00rOD4+Ml09YVtrKzg+PjJdLGFbTSsxMj4+Ml09YVtrKzEyPj4yXSxxSShjLDB8''@;'; + put 'put ''YVsxMisoMHxhWzQrKDB8YVs4KygwfGFbUisxNj4+Ml0pPj4yXSk+PjJdKT4+Ml0sYiwxKSxtJiYoYVtBPj4yXT1hW2I+PjJdLGFbQSs0Pj4yXT1hW2IrND4+Ml0sYVtBKzg+PjJdPWFbYis4Pj4yXSxhW0ErMTI+PjJdPWFbYisxMj4+Ml0sVTYoRCxBLDkwKnd8MCksYVtiPj4yXT1hW0Q+PjJd''@;'; + put 'put ''LGFbYis0Pj4yXT1hW0QrND4+Ml0sYVtiKzg+PjJdPWFbRCs4Pj4yXSxhW2IrMTI+PjJdPWFbRCsxMj4+Ml0pLGFbbD4+Ml09YVtiPj4yXSxhW2wrND4+Ml09YVtiKzQ+PjJdLGFbbCs4Pj4yXT1hW2IrOD4+Ml0sYVtsKzEyPj4yXT1hW2IrMTI+PjJdLGxlPUd9ZnVuY3Rpb24gckoobCxjLGYp''@;'; + put 'put ''e2x8PTAsY3w9MDt2YXIgRCxSLEcsSyxwZSxnZSxiZSxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTA7Zm9yKGJlPWxlLGxlPWxlKzE0NHwwLFI9YmUrMTI4fDAsRD1iZSsxMTJ8MCxHPWJlKzE2fDAsSz1iZSxtPWJlKzk2fDAsQT1iZSs4MHwwLHBlPWJlKzY0fDAsZ2U9YmUrNDh8MCwocD0w''@;'; + put 'put ''fGFbKHc9NTIrKGZ8PTApfDApPj4yXSk/KE09cCs1NnwwLHA9ZiszMnwwLGFbRD4+Ml09YVsoaz1mKzE2fDApPj4yXSxhW0QrND4+Ml09YVtrKzQ+PjJdLGFbRCs4Pj4yXT1hW2srOD4+Ml0sYVtEKzEyPj4yXT1hW2srMTI+PjJdLGFbUj4+Ml09YVtwPj4yXSxhW1IrND4+Ml09YVtwKzQ+PjJd''@;'; + put 'put ''LGFbUis4Pj4yXT1hW3ArOD4+Ml0sYVtSKzEyPj4yXT1hW3ArMTI+PjJdLGZ1bmN0aW9uIHFhZShsLGMsZil7dmFyIHA7cD0uNSooK19bOCsoZnw9MCk+PjNdKyArX1s4KyhjfD0wKT4+M10pLF9bKGx8PTApPj4zXT0uNSooK19bZj4+M10rICtfW2M+PjNdKSxfW2wrOD4+M109cH0obSxELFIp''@;'; + put 'put ''LGs9MTYrKDB8YVsocD1jKzE2fDApPj4yXSl8MCxhW0Q+PjJdPWFbbT4+Ml0sYVtEKzQ+PjJdPWFbbSs0Pj4yXSxhW0QrOD4+Ml09YVttKzg+PjJdLGFbRCsxMj4+Ml09YVttKzEyPj4yXSxhW1I+PjJdPWFbaz4+Ml0sYVtSKzQ+PjJdPWFbays0Pj4yXSxhW1IrOD4+Ml09YVtrKzg+PjJdLGFb''@;'; + put 'put ''UisxMj4+Ml09YVtrKzEyPj4yXSxxNShBLEQsUiksYVtNPj4yXT1hW0E+PjJdLGFbTSs0Pj4yXT1hW0ErND4+Ml0sYVtNKzg+PjJdPWFbQSs4Pj4yXSxhW00rMTI+PjJdPWFbQSsxMj4+Ml0sYjcobCwxMCwwfGFbdz4+Ml0pLGt5KGwsYykpOnA9YysxNnwwLGFbSz4+Ml09YVsoYj0xNisoMHxh''@;'; + put 'put ''W3A+PjJdKXwwKT4+Ml0sYVtLKzQ+PjJdPWFbYis0Pj4yXSxhW0srOD4+Ml09YVtiKzg+PjJdLGFbSysxMj4+Ml09YVtiKzEyPj4yXSxiPWYrNDh8MCxrPWYrNjR8MCxNPUcrMTZ8MCx3PWYrNTZ8MCxmPUcrMTZ8MCxBPTA7ISgoMHxBKT49KDB8YVtiPj4yXSkpOykoMHxBKT4wJiYobT0wfGFb''@;'; + put 'put ''KHA9KDB8YVt3Pj4yXSkrKEE8PDIpfDApPj4yXSwwfGZlW2s+PjBdPyhhW0c+PjJdPWFbKG09bSsxNnwwKT4+Ml0sYVtHKzQ+PjJdPWFbbSs0Pj4yXSxhW0crOD4+Ml09YVttKzg+PjJdLGFbRysxMj4+Ml09YVttKzEyPj4yXSxfW2Y+PjNdPStfW0c+PjNdLHA9MzIrKDB8YVtwPj4yXSl8MCxt''@;'; + put 'put ''PTEpOihhW00+PjJdPWFbKG09bSszMnwwKT4+Ml0sYVtNKzQ+PjJdPWFbbSs0Pj4yXSxhW00rOD4+Ml09YVttKzg+PjJdLGFbTSsxMj4+Ml09YVttKzEyPj4yXSxfW0c+PjNdPStfWzE2KygwfGFbcD4+Ml0pPj4zXSxwPU0sbT0wKSxfW0crKG08PDQpKzg+PjNdPStfW3ArOD4+M10sYVtEPj4y''@;'; + put 'put ''XT1hW0c+PjJdLGFbRCs0Pj4yXT1hW0crND4+Ml0sYVtEKzg+PjJdPWFbRys4Pj4yXSxhW0QrMTI+PjJdPWFbRysxMj4+Ml0sYVtSPj4yXT1hW0s+PjJdLGFbUis0Pj4yXT1hW0srND4+Ml0sYVtSKzg+PjJdPWFbSys4Pj4yXSxhW1IrMTI+PjJdPWFbSysxMj4+Ml0scTUocGUsRCxSKSxhW0c+''@;'; + put 'put ''PjJdPWFbcGU+PjJdLGFbRys0Pj4yXT1hW3BlKzQ+PjJdLGFbRys4Pj4yXT1hW3BlKzg+PjJdLGFbRysxMj4+Ml09YVtwZSsxMj4+Ml0sYVtEPj4yXT1hW00+PjJdLGFbRCs0Pj4yXT1hW00rND4+Ml0sYVtEKzg+PjJdPWFbTSs4Pj4yXSxhW0QrMTI+PjJdPWFbTSsxMj4+Ml0sYVtSPj4yXT1h''@;'; + put 'put ''W0s+PjJdLGFbUis0Pj4yXT1hW0srND4+Ml0sYVtSKzg+PjJdPWFbSys4Pj4yXSxhW1IrMTI+PjJdPWFbSysxMj4+Ml0scTUoZ2UsRCxSKSxhW00+PjJdPWFbZ2U+PjJdLGFbTSs0Pj4yXT1hW2dlKzQ+PjJdLGFbTSs4Pj4yXT1hW2dlKzg+PjJdLGFbTSsxMj4+Ml09YVtnZSsxMj4+Ml0sV28o''@;'; + put 'put ''bCxHLDIpKSxySihsLGMsMHxhWygwfGFbdz4+Ml0pKyhBPDwyKT4+Ml0pLEE9QSsxfDA7bGU9YmV9ZnVuY3Rpb24gaUoobCxjKXtjfD0wO3ZhciBmPTAscD0wLG09MDswIT0oMHwoZj0wfGFbNjArKGx8PTApPj4yXSkpJiYoMHxmZVtmPj4wXSk9PSgwfGZlW2M+PjBdKSYmMD09KDB8WmkoZixj''@;'; + put 'put ''KSl8fChwPTQpO2U6ZG97aWYoND09KDB8cCkpZm9yKG09bCs1NnwwLHA9MHxhW2wrNDg+PjJdLGY9MDs7KXtpZigoMHxmKT49KDB8cCkpe2w9MDticmVhayBlfWlmKGw9MHxpSigwfGFbKDB8YVttPj4yXSkrKGY8PDIpPj4yXSxjKSlicmVhaztmPWYrMXwwfX13aGlsZSgwKTtyZXR1cm4gMHxs''@;'; + put 'put ''fWZ1bmN0aW9uIG9KKGwsYyl7bHw9MCxjfD0wO3ZhciBnZSxiZSxPZSxMZSxSZSxIZSxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLEs9MCxwZT0wO0hlPWxlLGxlPWxlKzE0NHwwLE9lPUhlKzExMnwwLGJlPUhlKzk2fDAsTGU9SGUrODB8MCxnZT1IZSs2NHww''@;'; + put 'put ''LFJlPUhlKzMyfDAsSz1IZSsxNnwwLHBlPUhlLEE9SGUrNDh8MDtkb3tpZihsKXtpZihiPTB8YVtsKzQ+PjJdLFI9OTAqKDMmYVsxMTYrKDB8YVsxNisoMHxjcihrPTB8YVtsPj4yXSkpPj4yXSk+PjJdKXwwLGFbT2U+PjJdPWFbYz4+Ml0sYVtPZSs0Pj4yXT1hW2MrND4+Ml0sYVtPZSs4Pj4y''@;'; + put 'put ''XT1hW2MrOD4+Ml0sYVtPZSsxMj4+Ml09YVtjKzEyPj4yXSxVNihBLE9lLFIpLGFbUmU+PjJdPWFbQT4+Ml0sYVtSZSs0Pj4yXT1hW0ErND4+Ml0sYVtSZSs4Pj4yXT1hW0ErOD4+Ml0sYVtSZSsxMj4+Ml09YVtBKzEyPj4yXSwwfGIpe2lmKCEoK19bYj4+M108PShmPStfW1JlPj4zXSkpKXts''@;'; + put 'put ''PTA7YnJlYWt9aWYoIShmPD0rX1tiKzE2Pj4zXSkpe2w9MDticmVha31pZighKCtfW2IrOD4+M108PShmPStfW1JlKzg+PjNdKSkpe2w9MDticmVha31sPWY8PStfW2IrMjQ+PjNdO2JyZWFrfWlmKCgwfGspPT0oMHxhWzQ3MjkyXSk/KGY9K19bMjMzMDldLHA9K19bMjMzMTBdLHc9K19bMjMz''@;'; + put 'put ''MTFdKTooYVs0NzI5M109Yz0wfGFbMTIrKDB8YVsobD1rKzE2fDApPj4yXSk+PjJdLGFbNDcyOTRdPWFbYys0ND4+Ml0sYVs0NzI5NV09YVtjKzg+PjJdLDIwNDgmYVtjKzQwPj4yXT8odkooT2UsYyksdz0rX1tPZSsxNj4+M10tK19bT2U+PjNdLG09K19bT2UrMjQ+PjNdLStfW09lKzg+PjNd''@;'; + put 'put ''LFI9MD09KDEmYVsxMTYrKDB8YVsxNisoMHxjcihrKSk+PjJdKT4+Ml18MCksX1soUj8xODY0OTY6MTg2NTA0KT4+M109dyxfWyhSPzE4NjUwNDoxODY0OTYpPj4zXT1tKTooRD0wPT0oMSZhWzExNisoMHxhWzE2KygwfGNyKGspKT4+Ml0pPj4yXXwwKSxfWyhEPzE4NjQ5NjoxODY1MDQpPj4z''@;'; + put 'put ''XT0rX1s5NisoUj0wfGFbbD4+Ml0pPj4zXSsgK19bUis4OD4+M10sX1soRD8xODY1MDQ6MTg2NDk2KT4+M109K19bUis4MD4+M10sbT0rKDB8fn4oKG09NzIqK19bUis0MD4+M10pKyhtPj0wPy41Oi0uNSkpKSx3PSsoMHx+figodz03MiorX1tSKzMyPj4zXSkrKHc+PTA/LjU6LS41KSkpKSww''@;'; + put 'put ''PT0oZj0rX1syMzMxMl0pJiYoX1syMzMxMl09MSxmPTEpLDA9PShwPStfWzIzMzEzXSkmJihfWzIzMzEzXT0xLHA9MSksX1syMzMwOV09Zj13L2YsX1syMzMxMF09cD1tL3AsX1syMzMxMV09dyo9LjUsX1syMzMxNF09LjUqbSxSPTB8QXIoKDB8YVs0KygwfGFbNDcyOTNdKT4+Ml0pLTF8MCww''@;'; + put 'put ''fGFbNDcyOTVdKSxhWzQ3Mjk2XT0oMHxSKT4wP1I6MCxhWzQ3MjkyXT1rKSxfW1JlPj4zXT1tPStfW1JlPj4zXSpmLF9bKFI9UmUrOHwwKT4+M109Zj0rX1tSPj4zXSpwLCtlbygrbSk+d3x8KHA9K2VvKCtmKSk+KEc9K19bMjMzMTRdKSlsPTA7ZWxzZXtpZigoMHwoUj0wfGFbNDcyOTVdKSk8''@;'; + put 'put ''Myl7bD0rS3kobS93LGYvRyk8MTticmVha31pZihsPSgxKyhjPSgwfGFbNDcyOTddKSUoMHxSKXwwKXwwKSUoMHxSKXwwLGFbSz4+Ml09YVsoRD0oaz0wfGFbNDcyOTRdKSsoKE09MHxhWzQ3Mjk2XSkrYzw8NCl8MCk+PjJdLGFbSys0Pj4yXT1hW0QrND4+Ml0sYVtLKzg+PjJdPWFbRCs4Pj4y''@;'; + put 'put ''XSxhW0srMTI+PjJdPWFbRCsxMj4+Ml0sYVtwZT4+Ml09YVsoRD1rKyhNK2w8PDQpfDApPj4yXSxhW3BlKzQ+PjJdPWFbRCs0Pj4yXSxhW3BlKzg+PjJdPWFbRCs4Pj4yXSxhW3BlKzEyPj4yXT1hW0QrMTI+PjJdLGFbZ2U+PjJdPWFbUmU+PjJdLGFbZ2UrND4+Ml09YVtSZSs0Pj4yXSxhW2dl''@;'; + put 'put ''Kzg+PjJdPWFbUmUrOD4+Ml0sYVtnZSsxMj4+Ml09YVtSZSsxMj4+Ml0sYVtMZT4+Ml09YVs0NjYzMF0sYVtMZSs0Pj4yXT1hWzQ2NjMxXSxhW0xlKzg+PjJdPWFbNDY2MzJdLGFbTGUrMTI+PjJdPWFbNDY2MzNdLGFbYmU+PjJdPWFbSz4+Ml0sYVtiZSs0Pj4yXT1hW0srND4+Ml0sYVtiZSs4''@;'; + put 'put ''Pj4yXT1hW0srOD4+Ml0sYVtiZSsxMj4+Ml09YVtLKzEyPj4yXSxhW09lPj4yXT1hW0Q+PjJdLGFbT2UrND4+Ml09YVtEKzQ+PjJdLGFbT2UrOD4+Ml09YVtEKzg+PjJdLGFbT2UrMTI+PjJdPWFbRCsxMj4+Ml0sMHxNeShnZSxMZSxiZSxPZSkpe2lmKGFbZ2U+PjJdPWFbUmU+PjJdLGFbZ2Ur''@;'; + put 'put ''ND4+Ml09YVtSZSs0Pj4yXSxhW2dlKzg+PjJdPWFbUmUrOD4+Ml0sYVtnZSsxMj4+Ml09YVtSZSsxMj4+Ml0sYVtMZT4+Ml09YVtLPj4yXSxhW0xlKzQ+PjJdPWFbSys0Pj4yXSxhW0xlKzg+PjJdPWFbSys4Pj4yXSxhW0xlKzEyPj4yXT1hW0srMTI+PjJdLGFbYmU+PjJdPWFbcGU+PjJdLGFb''@;'; + put 'put ''YmUrND4+Ml09YVtwZSs0Pj4yXSxhW2JlKzg+PjJdPWFbcGUrOD4+Ml0sYVtiZSsxMj4+Ml09YVtwZSsxMj4+Ml0sYVtPZT4+Ml09YVs0NjYzMF0sYVtPZSs0Pj4yXT1hWzQ2NjMxXSxhW09lKzg+PjJdPWFbNDY2MzJdLGFbT2UrMTI+PjJdPWFbNDY2MzNdLChEPTAhPSgwfE15KGdlLExlLGJl''@;'; + put 'put ''LE9lKSkpJiYoYVtnZT4+Ml09YVtSZT4+Ml0sYVtnZSs0Pj4yXT1hW1JlKzQ+PjJdLGFbZ2UrOD4+Ml09YVtSZSs4Pj4yXSxhW2dlKzEyPj4yXT1hW1JlKzEyPj4yXSxhW0xlPj4yXT1hW3BlPj4yXSxhW0xlKzQ+PjJdPWFbcGUrND4+Ml0sYVtMZSs4Pj4yXT1hW3BlKzg+PjJdLGFbTGUrMTI+''@;'; + put 'put ''PjJdPWFbcGUrMTI+PjJdLGFbYmU+PjJdPWFbNDY2MzBdLGFbYmUrND4+Ml09YVs0NjYzMV0sYVtiZSs4Pj4yXT1hWzQ2NjMyXSxhW2JlKzEyPj4yXT1hWzQ2NjMzXSxhW09lPj4yXT1hW0s+PjJdLGFbT2UrND4+Ml09YVtLKzQ+PjJdLGFbT2UrOD4+Ml09YVtLKzg+PjJdLGFbT2UrMTI+PjJd''@;'; + put 'put ''PWFbSysxMj4+Ml0sMCE9KDB8TXkoZ2UsTGUsYmUsT2UpKSkpe2w9MTticmVha31mb3IoYj1jLGM9MTs7KXtpZigoMHxjKT49KDB8Uikpe2M9MzE7YnJlYWt9aWYoRD8oQT1sLGw9KGwrMXwwKSUoMHxSKXwwKTooQT0oYistMStSfDApJSgwfFIpfDAsbD1iKSxLPWsrKE0rQTw8NCl8MCxwZT1r''@;'; + put 'put ''KyhNK2w8PDQpfDAsYVtnZT4+Ml09YVtSZT4+Ml0sYVtnZSs0Pj4yXT1hW1JlKzQ+PjJdLGFbZ2UrOD4+Ml09YVtSZSs4Pj4yXSxhW2dlKzEyPj4yXT1hW1JlKzEyPj4yXSxhW0xlPj4yXT1hWzQ2NjMwXSxhW0xlKzQ+PjJdPWFbNDY2MzFdLGFbTGUrOD4+Ml09YVs0NjYzMl0sYVtMZSsxMj4+''@;'; + put 'put ''Ml09YVs0NjYzM10sYVtiZT4+Ml09YVtLPj4yXSxhW2JlKzQ+PjJdPWFbSys0Pj4yXSxhW2JlKzg+PjJdPWFbSys4Pj4yXSxhW2JlKzEyPj4yXT1hW0srMTI+PjJdLGFbT2U+PjJdPWFbcGU+PjJdLGFbT2UrND4+Ml09YVtwZSs0Pj4yXSxhW09lKzg+PjJdPWFbcGUrOD4+Ml0sYVtPZSsxMj4+''@;'; + put 'put ''Ml09YVtwZSsxMj4+Ml0sISgwfE15KGdlLExlLGJlLE9lKSkpe2M9MzA7YnJlYWt9Yj1BLGM9YysxfDB9aWYoMzA9PSgwfGMpKXthWzQ3Mjk3XT1BLGw9MDticmVha31pZigzMT09KDB8Yykpe2FbNDcyOTddPWIsbD0xO2JyZWFrfX1lbHNlIGw9MH19ZWxzZSBhWzQ3MjkyXT0wLGw9MH13aGls''@;'; + put 'put ''ZSgwKTtyZXR1cm4gbGU9SGUsMSZsfDB9ZnVuY3Rpb24gY04obCxjKXtjfD0wO3ZhciBtLGIsZj0wLHA9MCxBPTAsdz0wLGs9MDtyZXR1cm4gYj1sZSxsZT1sZSszMnwwLG09YisxNnwwLHc9YiwobHw9MCk/KGs9OTAqKDMmYVsxMTYrKDB8YVsxNisoMHxjcihsPTB8YVtsPj4yXSkpPj4yXSk+''@;'; + put 'put ''PjJdKXwwLGFbbT4+Ml09YVtjPj4yXSxhW20rND4+Ml09YVtjKzQ+PjJdLGFbbSs4Pj4yXT1hW2MrOD4+Ml0sYVttKzEyPj4yXT1hW2MrMTI+PjJdLFU2KHcsbSxrKSxBPStfW3c+PjNdLHA9K19bdys4Pj4zXSwoMHxsKT09KDB8YVs0NzMwMF0pP2Y9K19bMjMzMTddOihfWzIzMzE3XT1mPStf''@;'; + put 'put ''WygwfGFbNDQrKHc9MHxhWzEyKygwfGFbbCsxNj4+Ml0pPj4yXSk+PjJdKSsoKDF8KCgwfChrPShhW3crND4+Ml08PDEpLTJ8MCkpPjA/azowKSk8PDQpPj4zXSxhWzQ3MzAwXT1sKSxsPStlbygrQSk+ZnwrZW8oK3ApPmY/MDorS3koQSxwKTw9ZiYxKTooYVs0NzMwMF09MCxsPTApLGxlPWIs''@;'; + put 'put ''MHxsfWZ1bmN0aW9uIEV5KGwsYyxmLHApe3ZhciBtLEE7bHw9MCxtPWxlLGxlPWxlKzQ4fDAsQT1tLGY9MHxmdW5jdGlvbiBybGUobCxjLGYpe2N8PTAsZnw9MDt2YXIgVmUscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLEs9MCxwZT0wLGdlPTAsYmU9MCxPZT0wLExl''@;'; + put 'put ''PTAsUmU9MCxIZT0wLHFlPTAsbnQ9MCxXZT0wO1ZlPWxlLGxlPWxlKzMyfDAsSGU9VmUsbT1WZSsyNHwwLGI9VmUrMTZ8MCxSZT0zJmFbMTE2KygwfGFbMTYrKDB8YVs2MCsoMHxjcihsfD0wKSk+PjJdKT4+Ml0pPj4yXSxhW0hlPj4yXT1hWyhMZT0xNisoMHxhWyhwPWwrMTZ8MCk+PjJdKXww''@;'; + put 'put ''KT4+Ml0sYVtIZSs0Pj4yXT1hW0xlKzQ+PjJdLGFbSGUrOD4+Ml09YVtMZSs4Pj4yXSxhW0hlKzEyPj4yXT1hW0xlKzEyPj4yXSxhSihtLEhlLFJlKSxhW0hlPj4yXT1hWyhMZT0xNisoMHxhW2MrMTY+PjJdKXwwKT4+Ml0sYVtIZSs0Pj4yXT1hW0xlKzQ+PjJdLGFbSGUrOD4+Ml09YVtMZSs4''@;'; + put 'put ''Pj4yXSxhW0hlKzEyPj4yXT1hW0xlKzEyPj4yXSxhSihiLEhlLFJlKSxIZT0yNTUmKFJlPTB8ZmVbZiszMz4+MF0pO2U6ZG97c3dpdGNoKFJlPDwyND4+MjQpe2Nhc2UgMDpjYXNlIDE1OmM9MDticmVhaztkZWZhdWx0OmZvcigoYz0wfGFbZisyND4+Ml0pPyhNPStfW2M+PjNdLEE9K19bYysx''@;'; + put 'put ''Nj4+M10saz0rX1tjKzI0Pj4zXSx3PStfW2MrOD4+M10pOihSZT0wPT0oMSZhWzExNisoMHxhWzE2KygwfGNyKGwpKT4+Ml0pPj4yXXwwKSxxZT0tKG50PS41KitfWzgwKyhMZT0wfGFbcD4+Ml0pPj4zXSksdz0tKGs9K19bTGUrODg+PjNdKSxNPVJlP3c6cWUsQT1SZT9rOm50LGs9UmU/bnQ6''@;'; + put 'put ''ayx3PVJlP3FlOncpLFJlPTB8YVttPj4yXSxPZT0wfGFbbSs0Pj4yXSxMZT0wfGFbYj4+Ml0scGU9MHxhW2IrND4+Ml0sZ2U9fn53LGJlPX5+KC41KihBK00pKSxLPX5+QSxHPX5+KC41KihrK3cpKSxSPX5+ayxEPX5+TSxtPTAsYj0wLGM9MCxmPTAsbD0wOzspe2lmKDQ9PSgwfGIpKWJyZWFr''@;'; + put 'put ''IGU7aWYoMTw8YiZIZSl7c3dpdGNoKDB8Yil7Y2FzZSAwOmY9YmUsbD1nZTticmVhaztjYXNlIDE6Zj1LLGw9RzticmVhaztjYXNlIDI6Zj1iZSxsPVI7YnJlYWs7Y2FzZSAzOmY9RCxsPUd9cD0oZj1SZStmfDApLUxlfDAsMD09KDB8Yyl8KDB8KHA9KDB8QXIoV2U9KGw9T2UrbHwwKS1wZXww''@;'; + put 'put ''LFdlKSkrKDB8QXIocCxwKSl8MCkpPCgwfG0pP2M9MHxhWzIyMDI4KyhiPDwyKT4+Ml06cD1tfWVsc2UgcD1tO209cCxiPWIrMXwwfX19d2hpbGUoMCk7cmV0dXJuIGxlPVZlLDB8Y30oY3w9MCxmfD0wLHB8PTApLGFbQSszNj4+Ml09YVtwKzM2Pj4yXSxtayhjLDB8YVtwKzI0Pj4yXSxBLGYs''@;'; + put 'put ''MHxYdFtwKzMzPj4wXSwwKSxjPUEsZj1sKzQwfDA7ZG97YVtsPj4yXT1hW2M+PjJdLGw9bCs0fDAsYz1jKzR8MH13aGlsZSgoMHxsKTwoMHxmKSk7bGU9bX1mdW5jdGlvbiBhSihsLGMsZil7bHw9MCxjfD0wO3ZhciBwPTAsbT0wO3N3aXRjaCgwfChmfD0wKSl7Y2FzZSAwOm09K19bYz4+M10s''@;'; + put 'put ''cD0rX1tjKzg+PjNdO2JyZWFrO2Nhc2UgMjptPStfW2M+PjNdLHA9LStfW2MrOD4+M107YnJlYWs7Y2FzZSAxOm09LStfW2MrOD4+M10scD0rX1tjPj4zXTticmVhaztjYXNlIDM6bT0rX1tjKzg+PjNdLHA9K19bYz4+M107YnJlYWs7ZGVmYXVsdDptPTAscD0wfWFbbD4+Ml09fn4obSsobT49''@;'; + put 'put ''MD8uNTotLjUpKSxhW2wrND4+Ml09fn4ocCsocD49MD8uNTotLjUpKX1mdW5jdGlvbiBpbGUobCl7dmFyIG0sQSx3LGM9MCxmPTAscD0wO2lmKHc9bGUsbGU9bGUrODB8MCxwPXcrNDB8MCxBPXcsYz0xNisoZj0wfGFbKG09MTYrKGx8PTApfDApPj4yXSl8MCwwfGZlW2YrNDc+PjBdKXtFeShw''@;'; + put 'put ''LDB8YVsoMz09KDB8KGY9MyZhW2w+PjJdKSk/bDpsKzQ4fDApKzQwPj4yXSwwfGFbKDI9PSgwfGYpP2w6bCstNDh8MCkrNDA+PjJdLGMpLGY9cCxwPWMrNDB8MDtkb3thW2M+PjJdPWFbZj4+Ml0sYz1jKzR8MCxmPWYrNHwwfXdoaWxlKCgwfGMpPCgwfHApKTtmPTB8YVttPj4yXX1pZihjPWYr''@;'; + put 'put ''NTZ8MCwwfGZlW2YrODc+PjBdKXtFeShBLDB8YVsoMj09KDB8KGY9MyZhW2w+PjJdKSk/bDpsKy00OHwwKSs0MD4+Ml0sMHxhWygzPT0oMHxmKT9sOmwrNDh8MCkrNDA+PjJdLGMpLGY9QSxwPWMrNDB8MDtkb3thW2M+PjJdPWFbZj4+Ml0sYz1jKzR8MCxmPWYrNHwwfXdoaWxlKCgwfGMpPCgw''@;'; + put 'put ''fHApKX1sZT13fWZ1bmN0aW9uIHFJKGwsYyxmLHApe2x8PTAsY3w9MCxmfD0wO3ZhciBLLGdlLGJlLE9lLExlLFJlLHFlLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLHBlPTAsSGU9MCxWZT0wLG50PTA7Zm9yKHFlPWxlLGxlPWxlKzE5MnwwLGdlPXFlKzE3NnwwLEhlPXFl''@;'; + put 'put ''KzExMnwwLFZlPXFlKzQ4fDAsYmU9cWUrMzJ8MCxPZT1xZSsyNHwwLExlPXFlKzE2fDAsUmU9cWUsKHB8PTApPDwyND4+MjQ/KGFbYmU+PjJdPWFbZj4+Ml0sYVtiZSs0Pj4yXT1hW2YrND4+Ml0sYVtiZSs4Pj4yXT1hW2YrOD4+Ml0sYVtiZSsxMj4+Ml09YVtmKzEyPj4yXSxrPUxlLE09T2Us''@;'; + put 'put ''RD0wLFI9SGUpOihhW2JlPj4yXT1hWyhrPWYrNDh8MCk+PjJdLGFbYmUrND4+Ml09YVtrKzQ+PjJdLGFbYmUrOD4+Ml09YVtrKzg+PjJdLGFbYmUrMTI+PjJdPWFbaysxMj4+Ml0saz1PZSxNPUxlLEQ9SGUsUj0wKSxfW09lPj4zXT0wLF9bTGU+PjNdPTEsSz1iZSs4fDAsbT0wLEE9MSxiPTAs''@;'; + put 'put ''Rz0rX1tiZT4+M107Oyl7cGU9K19bSz4+M10sd3UoUmUsZiwzLG09LjUqKG0rQSksRCxSKSxhW2JlPj4yXT1hW1JlPj4yXSxhW2JlKzQ+PjJdPWFbUmUrND4+Ml0sYVtiZSs4Pj4yXT1hW1JlKzg+PjJdLGFbYmUrMTI+PjJdPWFbUmUrMTI+PjJdLGFbZ2U+PjJdPWFbUmU+PjJdLGFbZ2UrND4+''@;'; + put 'put ''Ml09YVtSZSs0Pj4yXSxhW2dlKzg+PjJdPWFbUmUrOD4+Ml0sYVtnZSsxMj4+Ml09YVtSZSsxMj4+Ml07ZTpkb3tpZigoMHxCaVsxMjcmY10obCxnZSkpPDwyND4+MjQpcD1NO2Vsc2UgZm9yKHA9MDs7KXtpZig0PT0oMHxwKSl7cD1rLGI9MTticmVhayBlfWFbKGI9VmUrKHA8PDQpfDApPj4y''@;'; + put 'put ''XT1hWyhudD1IZSsocDw8NCl8MCk+PjJdLGFbYis0Pj4yXT1hW250KzQ+PjJdLGFbYis4Pj4yXT1hW250Kzg+PjJdLGFbYisxMj4+Ml09YVtudCsxMj4+Ml0scD1wKzF8MH19d2hpbGUoMCk7aWYoX1twPj4zXT1tLCEoKChHLT13PStfW2JlPj4zXSk+PTA/RzotRyk+LjV8fChwZS09K19bSz4+''@;'; + put 'put ''M10sKHBlPj0wP3BlOi1wZSk+LjUpKSlicmVhazttPStfW09lPj4zXSxBPStfW0xlPj4zXSxHPXd9ZTpkb3tpZihiPDwyND4+MjQpZm9yKHA9MDs7KXtpZig0PT0oMHxwKSlicmVhayBlO2FbKG50PWYrKHA8PDQpfDApPj4yXT1hWyhIZT1WZSsocDw8NCl8MCk+PjJdLGFbbnQrND4+Ml09YVtI''@;'; + put 'put ''ZSs0Pj4yXSxhW250Kzg+PjJdPWFbSGUrOD4+Ml0sYVtudCsxMj4+Ml09YVtIZSsxMj4+Ml0scD1wKzF8MH1lbHNlIGZvcihwPTA7Oyl7aWYoND09KDB8cCkpYnJlYWsgZTthWyhudD1mKyhwPDw0KXwwKT4+Ml09YVsoVmU9SGUrKHA8PDQpfDApPj4yXSxhW250KzQ+PjJdPWFbVmUrND4+Ml0s''@;'; + put 'put ''YVtudCs4Pj4yXT1hW1ZlKzg+PjJdLGFbbnQrMTI+PjJdPWFbVmUrMTI+PjJdLHA9cCsxfDB9fXdoaWxlKDApO2xlPXFlfWZ1bmN0aW9uIGZOKGwsYyxmLHApe3ZhciBtLEEsdyxiLGssTSxEO2ZvcihsfD0wLGZ8PTAscHw9MCxEPWxlLGxlPWxlKzY0fDAsTT1ELGs9K19bOTYrKEE9MHxhWyhi''@;'; + put 'put ''PTE2KyhjfD0wKXwwKT4+Ml0pPj4zXSx3PUErMTZ8MCxtPUErMjR8MCxjPTA7NCE9KDB8Yyk7KV9bTSsoYzw8NCk+PjNdPStfW2YrKGM8PDQpPj4zXS0rX1t3Pj4zXSxfW00rKGM8PDQpKzg+PjNdPStfW2YrKGM8PDQpKzg+PjNdLStfW20+PjNdLGM9YysxfDA7Zm9yKHFJKGwsMHxhWzEyKygw''@;'; + put 'put ''fGFbNCsoMHxhW0ErOD4+Ml0pPj4yXSk+PjJdLE0scCksYz0wOzQhPSgwfGMpOylfW2YrKGM8PDQpPj4zXT0rX1sxNisocD0wfGFbYj4+Ml0pPj4zXSsgK19bTSsoYzw8NCk+PjNdLF9bZisoYzw8NCkrOD4+M109K19bcCsyND4+M10rICtfW00rKGM8PDQpKzg+PjNdLGM9YysxfDA7X1s5Niso''@;'; + put 'put ''MHxhW2I+PjJdKT4+M109ayxsZT1EfWZ1bmN0aW9uIGhOKGwsYyl7bHw9MCxjfD0wO2Zvcih2YXIgZj0wLHA9MDswfGZlWzExMisobD0wfGFbKHA9bCsxNnwwKT4+Ml0pPj4wXTspbD0wfGFbbCsxMTY+PjJdOyhsPTB8YVtsKzg+PjJdKXx8KGw9MHx2cig0MCksYVs4KygwfGFbcD4+Ml0pPj4y''@;'; + put 'put ''XT1sKSxsPShmPTB8YVtsPj4yXSk/MHxWMChmLDQ4Kyg0OCooMHxhW2wrND4+Ml0pfDApfDApOjB8UW4oNDgrKDQ4KigwfGFbbCs0Pj4yXSl8MCl8MCksYVsocD0wfGFbOCsoMHxhW3A+PjJdKT4+Ml0pPj4yXT1sLGFbKHA9cCs0fDApPj4yXT0xKyhmPTB8YVtwPj4yXSksYVsocD1sKyg0OCpm''@;'; + put 'put ''fDApfDApPj4yXT0wfHZyKGM8PDQpLGFbbCsoNDgqZnwwKSs0Pj4yXT1jLGY9NDArKGw9bCsoNDgqZnwwKSs4fDApfDA7ZG97YVtsPj4yXT0wLGw9bCs0fDB9d2hpbGUoKDB8bCk8KDB8ZikpO3JldHVybiAwfHB9ZnVuY3Rpb24gQXUobCxjLGYscCxtKXtjfD0wLGZ8PTAscHw9MCxtfD0wO3Zh''@;'; + put 'put ''ciBnZSxMZSxWZSxxZSxXZSxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLEs9MCxwZT0wLGJlPTAsT2U9MCxSZT0wLEhlPTAsb3Q9MCxTdD0wO2ZvcihXZT1sZSxsZT1sZSs5NnwwLFZlPVdlKzE2fDAsZ2U9V2UsTGU9V2UrOTJ8MCxSZT1XZSs4OHwwLGJlPVdlKzgwfDAsSGU9MHxj''@;'; + put 'put ''cihiPTB8YVsoMz09KDMmYVsobHw9MCk+PjJdfDApP2w6bCs0OHwwKSs0MD4+Ml0pLHFlPTB8aE4obCxwKSxrPWw7MHxmZVsxMTIrKE09MHxhW2srMTY+PjJdKT4+MF07KWs9MHxhW00rMTE2Pj4yXTtpZigwPT0oMHxmZVttKzg+PjBdKSYmKDB8YVsyMzIrKEE9MHxhW2IrMTY+PjJdKT4+Ml0p''@;'; + put 'put ''PT0oMHxhWzIzMisodz0wfGFbYysxNj4+Ml0pPj4yXSk/KE9lPShEPSgwfGFbQSsyMzY+PjJdKT4oMHxhW3crMjM2Pj4yXSkpP2I6YyxiPUQ/YzpiKTpPZT1jLCgwfGIpPT0oMHxhWygzPT0oMyZhW2s+PjJdfDApP2s6ays0OHwwKSs0MD4+Ml0pPyhBPU0rODB8MCx3PU0rNDB8MCxEPTB8WHRb''@;'; + put 'put ''TSs4Nj4+MF0sYz0wfFh0W00rNDY+PjBdKTooQT1NKzQwfDAsdz1NKzgwfDAsRD0wfFh0W00rNDY+PjBdLGM9MHxYdFtNKzg2Pj4wXSksTT0wfGFbQT4+Ml0sQT0wfGFbdz4+Ml0sMCE9KDB8YykmJjAhPSgwfChSPTB8YVs4KygwfGFbKEc9YisxNnwwKT4+Ml0pPj4yXSkpJiYwIT0oMHxhWzEy''@;'; + put 'put ''KygwfGFbUis0Pj4yXSk+PjJdKSl7Zm9yKGFbYmU+PjJdPWIsYVtiZSs0Pj4yXT1BLEE9cCstNHwwLGM9Z2UrOHwwLHc9MDshKCgwfHcpPj0oMHxBKSkmJihfW2dlPj4zXT0rX1tmKygoaz13KzN8MCk8PDQpPj4zXS0rX1sxNisoUj0wfGFbRz4+Ml0pPj4zXSxfW2M+PjNdPStfW2YrKGs8PDQp''@;'; + put 'put ''Kzg+PjNdLStfW1IrMjQ+PjNdLFI9MHxhWzEyKygwfGFbNCsoMHxhW1IrOD4+Ml0pPj4yXSk+PjJdLGFbVmU+PjJdPWFbZ2U+PjJdLGFbVmUrND4+Ml09YVtnZSs0Pj4yXSxhW1ZlKzg+PjJdPWFbZ2UrOD4+Ml0sYVtWZSsxMj4+Ml09YVtnZSsxMj4+Ml0sKDB8QmlbMTI3JlJdKGJlLFZlKSk8''@;'; + put 'put ''PDI0Pj4yNCk7KXc9azthW0xlPj4yXT13LGZOKGJlLGIsZisodzw8NCl8MCwxKX1lbHNlIGFbTGU+PjJdPTAsdz0wO2lmKDAhPSgwfEQpJiYwIT0oMHwoSz0wfGFbOCsoMHxhWyhwZT1PZSsxNnwwKT4+Ml0pPj4yXSkpJiYwIT0oMHxhWzEyKygwfGFbSys0Pj4yXSk+PjJdKSl7Zm9yKGFbYmU+''@;'; + put 'put ''PjJdPU9lLGFbYmUrND4+Ml09TSxjPWdlKzh8MCxBPWI9cCstNHwwOyEoKDB8QSk8PTApJiYoX1tnZT4+M109K19bZisoQTw8NCk+PjNdLStfWzE2KyhwPTB8YVtwZT4+Ml0pPj4zXSxfW2M+PjNdPStfW2YrKEE8PDQpKzg+PjNdLStfW3ArMjQ+PjNdLHA9MHxhWzEyKygwfGFbNCsoMHxhW3Ar''@;'; + put 'put ''OD4+Ml0pPj4yXSk+PjJdLGFbVmU+PjJdPWFbZ2U+PjJdLGFbVmUrND4+Ml09YVtnZSs0Pj4yXSxhW1ZlKzg+PjJdPWFbZ2UrOD4+Ml0sYVtWZSsxMj4+Ml09YVtnZSsxMj4+Ml0sKDB8QmlbMTI3JnBdKGJlLFZlKSk8PDI0Pj4yNCk7KUE9QSstM3wwO2FbUmU+PjJdPUEsZk4oYmUsT2UsZiso''@;'; + put 'put ''QTw8NCl8MCwwKX1lbHNlIGFbUmU+PjJdPWI9cCstNHwwLEE9Yjtmb3IoOyEoKDB8dyk+PSgwfGIpKSYmKFN0PStfW2YrKHc8PDQpKzg+PjNdLStfW2YrKChjPXcrM3wwKTw8NCkrOD4+M10pKlN0KyhvdD0rX1tmKyh3PDw0KT4+M10tK19bZisoYzw8NCk+PjNdKSpvdDwxZS02Oyl3PWM7Zm9y''@;'; + put 'put ''KGFbTGU+PjJdPXc7ISgoMHxBKTw9MCkmJihvdD0rX1tmKyhBPDw0KSs4Pj4zXS0rX1tmKygoYmU9QSszfDApPDw0KSs4Pj4zXSkqb3QrKFN0PStfW2YrKEE8PDQpPj4zXS0rX1tmKyhiZTw8NCk+PjNdKSpTdDwxZS02OylBPUErLTN8MDtmb3IoYVtSZT4+Ml09QSxmdW5jdGlvbiBkTihsLGMs''@;'; + put 'put ''ZixwLG0sQSx3KXtjfD0wLGZ8PTAscHw9MCxtfD0wLEF8PTAsd3w9MDt2YXIgTSxELEcsYj0wLGs9MCxSPTA7Zm9yKEc9bGUsbGU9bGUrMTZ8MCxNPUcrNHwwLEQ9RyxSPWx8PTA7Yj0wfGFbMTE2KygwfGFbUisxNj4+Ml0pPj4yXTspUj1iO2I9MHxmZVt3Kzg+PjBdPzA6MjU1JigwfF9vWzYz''@;'; + put 'put ''JmFbdz4+Ml1dKFIpKSxEQyhSLE0sRCksKDB8X29bNjMmYVsoaz13KzR8MCk+PjJdXShjKSk8PDI0Pj4yNCYmKGFbRD4+Ml09MCksKDB8X29bNjMmYVtrPj4yXV0oMHxhWygzPT0oMyZhW2w+PjJdfDApP2w6bCs0OHwwKSs0MD4+Ml0pKTw8MjQ+PjI0JiYoYVtNPj4yXT0wKSwwfGImJihjPTB8''@;'; + put 'put ''YVtNPj4yXSxhW00+PjJdPWFbRD4+Ml0sYVtEPj4yXT1jKSwwfGZlW3crOT4+MF0/KGI9MHxhW00+PjJdKXwoaz0wfGFbRD4+Ml0pfDAmJmZ1bmN0aW9uIGtsKGwsYyxmLHAsbSxBLHcpe2x8PTAsY3w9MCxtfD0wO3ZhciBiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxLPTAscGU9MCxnZT0wLGJl''@;'; + put 'put ''PTAsT2U9MCxMZT0wLFJlPTAsSGU9MDsoMHwocHw9MCkpPT0oMHwoZnw9MCkpJihMZT0wIT0oMHwoQXw9MCkpKSYoTT0wIT0oMHwod3w9MCkpKT8oYmU9K19bKGdlPWMrKHA8PDQpfDApPj4zXSxPZT0rX1tjKyhwPDw0KSs4Pj4zXSxrPStfWyhMZT1jKygoTT1wKzN8MCk8PDQpfDApPj4zXSxi''@;'; + put 'put ''PStfWyhNPWMrKE08PDQpKzh8MCk+PjNdLEQ9K2w3KGwsQSksSGU9ISgocGU9K2w3KGwsdykpK0Q+PShSPStEMCgrKChLPU9lLWIpKksrKFI9YmUtaykqUikpKSksUio9LjMzMzMzMzMzMzMzMzMzMzMsRD1IZT9EOlIsUj1IZT9wZTpSLE9lPT1iPyhLPSgoSGU9YmU8ayk/LVI6UikrayxwZT0o''@;'; + put 'put ''SGU/RDotRCkrYmUsRz1PZSxEPU9lKTooSz1iZSxwZT1iZSxHPSgoSGU9T2U8Yik/RDotRCkrT2UsRD0oSGU/LVI6UikrYiksX1soUmU9YysoKEhlPXArMXwwKTw8NCl8MCk+PjNdPXBlLF9bYysoSGU8PDQpKzg+PjNdPUcsYVtnZT4+Ml09YVtSZT4+Ml0sYVtnZSs0Pj4yXT1hW1JlKzQ+PjJd''@;'; + put 'put ''LGFbZ2UrOD4+Ml09YVtSZSs4Pj4yXSxhW2dlKzEyPj4yXT1hW1JlKzEyPj4yXSxSZT1jKyhwKzI8PDQpfDAsX1tMZT4+M109SyxfW00+PjNdPUQsYVtSZT4+Ml09YVtMZT4+Ml0sYVtSZSs0Pj4yXT1hW0xlKzQ+PjJdLGFbUmUrOD4+Ml09YVtMZSs4Pj4yXSxhW1JlKzEyPj4yXT1hW0xlKzEy''@;'; + put 'put ''Pj4yXSxhW20rMTI+PjJdPXcsX1ttKzMyPj4zXT1iZSxfW20rNDA+PjNdPU9lLFJlPTE2KTooTSYmKGdlPWMrKChNPXArM3wwKTw8NCl8MCxiPShiPStsNyhsLHcpKT49KE9lPS45KitEMCgrKChiZT0oSz0rX1tjKyhwPDw0KSs4Pj4zXSktKEc9K19bKE09YysoTTw8NCkrOHwwKT4+M10pKSpi''@;'; + put 'put ''ZSsoT2U9KGs9K19bYysocDw8NCk+PjNdKS0oUj0rX1tnZT4+M10pKSpPZSkpKT9PZTpiLEs9PUc/KEQ9KGs8Uj8tYjpiKStSLGI9Syk6KEQ9ayxiPShLPEc/LWI6YikrRyksX1tjKygoSGU9cCsxfDApPDw0KT4+M109ayxfW2MrKEhlPDw0KSs4Pj4zXT1LLHA9YysocCsyPDw0KXwwLF9bZ2U+''@;'; + put 'put ''PjNdPUQsX1tNPj4zXT1iLGFbcD4+Ml09YVtnZT4+Ml0sYVtwKzQ+PjJdPWFbZ2UrND4+Ml0sYVtwKzg+PjJdPWFbZ2UrOD4+Ml0sYVtwKzEyPj4yXT1hW2dlKzEyPj4yXSxhW20rMTI+PjJdPXcsX1ttKzMyPj4zXT1SLF9bbSs0MD4+M109RyksTGUmJihEPShEPStsNyhsLEEpKT49KE9lPS45''@;'; + put 'put ''KitEMCgrKChiZT0oYj0rX1tjKyhmPDw0KSs4Pj4zXSktKEs9K19bYysoKEhlPWYrM3wwKTw8NCkrOD4+M10pKSpiZSsoT2U9KGs9K19bKE09YysoZjw8NCl8MCk+PjNdKS0oRz0rX1tjKyhIZTw8NCk+PjNdKSkqT2UpKSk/T2U6RCxiPT1LPyhSPShrPEc/RDotRCkrayxEPWIpOihSPWssRD0o''@;'; + put 'put ''YjxLP0Q6LUQpK2IpLF9bKFJlPWMrKChIZT1mKzF8MCk8PDQpfDApPj4zXT1SLF9bYysoSGU8PDQpKzg+PjNdPUQsYVtNPj4yXT1hW1JlPj4yXSxhW00rND4+Ml09YVtSZSs0Pj4yXSxhW00rOD4+Ml09YVtSZSs4Pj4yXSxhW00rMTI+PjJdPWFbUmUrMTI+PjJdLF9bYysoKFJlPWYrMnwwKTw8''@;'; + put 'put ''NCk+PjNdPUcsX1tjKyhSZTw8NCkrOD4+M109SyxSZT0xNikpLDE2PT0oMHxSZSkmJihhW20rOD4+Ml09QSxfW20rMTY+PjNdPWssX1ttKzI0Pj4zXT1iKX0oUixmLDB8YVtwPj4yXSwwfGFbbT4+Ml0sQSxiLGspOigwfChiPTB8YVtNPj4yXSkmJihhW3A+PjJdPTB8T2EoUixmLDB8YVtwPj4y''@;'; + put 'put ''XSwwfGFbbT4+Ml0sQSxiKSksMHwoYj0wfGFbRD4+Ml0pJiYoYVttPj4yXT0wfEFGKFIsZiwwfGFbcD4+Ml0sMHxhW20+PjJdLEEsYikpKSxsZT1HfShsLE9lLGYsTGUsUmUscWUsbSksYj00KyhrPTB8YVtSZT4+Ml0pfDAsaz1rKzN8MCxNPVZlKzE2fDAsRD1WZSszMnwwLFI9VmUrNDh8MCx3''@;'; + put 'put ''PUhlKzE2fDAsQT1HPTB8YVtMZT4+Ml07ISgoMHxBKT49KDB8YikpJiYoYVsoSGU9KDB8YVtxZT4+Ml0pKyhBLUc8PDQpfDApPj4yXT1hWyhjPWYrKEE8PDQpfDApPj4yXSxhW0hlKzQ+PjJdPWFbYys0Pj4yXSxhW0hlKzg+PjJdPWFbYys4Pj4yXSxhW0hlKzEyPj4yXT1hW2MrMTI+PjJdLGFb''@;'; + put 'put ''VmU+PjJdPWFbYz4+Ml0sYVtWZSs0Pj4yXT1hW2MrND4+Ml0sYVtWZSs4Pj4yXT1hW2MrOD4+Ml0sYVtWZSsxMj4+Ml09YVtjKzEyPj4yXSxjPUErMXwwLCEoKDB8QSk+PSgwfGspKSk7KWFbKFJlPSgwfGFbcWU+PjJdKSsoYy1HPDw0KXwwKT4+Ml09YVsoSGU9ZisoYzw8NCl8MCk+PjJdLGFb''@;'; + put 'put ''UmUrND4+Ml09YVtIZSs0Pj4yXSxhW1JlKzg+PjJdPWFbSGUrOD4+Ml0sYVtSZSsxMj4+Ml09YVtIZSsxMj4+Ml0sYVtNPj4yXT1hW0hlPj4yXSxhW00rND4+Ml09YVtIZSs0Pj4yXSxhW00rOD4+Ml09YVtIZSs4Pj4yXSxhW00rMTI+PjJdPWFbSGUrMTI+PjJdLGFbKFJlPSgwfGFbcWU+PjJd''@;'; + put 'put ''KSsoKEhlPUErMnwwKS1HPDw0KXwwKT4+Ml09YVsoSGU9ZisoSGU8PDQpfDApPj4yXSxhW1JlKzQ+PjJdPWFbSGUrND4+Ml0sYVtSZSs4Pj4yXT1hW0hlKzg+PjJdLGFbUmUrMTI+PjJdPWFbSGUrMTI+PjJdLGFbRD4+Ml09YVtIZT4+Ml0sYVtEKzQ+PjJdPWFbSGUrND4+Ml0sYVtEKzg+PjJd''@;'; + put 'put ''PWFbSGUrOD4+Ml0sYVtEKzEyPj4yXT1hW0hlKzEyPj4yXSxhW1I+PjJdPWFbKFJlPWYrKChIZT1BKzN8MCk8PDQpfDApPj4yXSxhW1IrND4+Ml09YVtSZSs0Pj4yXSxhW1IrOD4+Ml09YVtSZSs4Pj4yXSxhW1IrMTI+PjJdPWFbUmUrMTI+PjJdLEhBKDE2KygwfGFbdz4+Ml0pfDAsVmUpLEE9''@;'; + put 'put ''SGU7YVtxZSs0Pj4yXT1iLUcsbGU9V2V9ZnVuY3Rpb24gWDMobCxjKXtsfD0wO3ZhciBmPTAscD0wOytfWyhjfD0wKT4+M108K19bYysxNj4+M10mJitfW2MrOD4+M108K19bYysyND4+M10mJihmPTB8YVtsKzg0Pj4yXSxhWyhwPWwrODB8MCk+PjJdPTErKGw9MHxhW3A+PjJdKSxhWyhsPWYr''@;'; + put 'put ''KGw8PDUpfDApPj4yXT1hW2M+PjJdLGFbbCs0Pj4yXT1hW2MrND4+Ml0sYVtsKzg+PjJdPWFbYys4Pj4yXSxhW2wrMTI+PjJdPWFbYysxMj4+Ml0sYVtsKzE2Pj4yXT1hW2MrMTY+PjJdLGFbbCsyMD4+Ml09YVtjKzIwPj4yXSxhW2wrMjQ+PjJdPWFbYysyND4+Ml0sYVtsKzI4Pj4yXT1hW2Mr''@;'; + put 'put ''Mjg+PjJdKX1mdW5jdGlvbiBlRChsLGMsZixwLG0pe2x8PTAsZnw9MCxwfD0wLG18PTA7dmFyIEQsUixnZSxiZSxMZSxSZSxBPTAsdz0wLGI9MCxrPTAsTT0wLEc9MCxLPTAscGU9MCxPZT0wLEhlPTAsVmU9MDtpZihSZT1sZSxsZT1sZSsxMTJ8MCxiZT1SZSs3MnwwLEQ9UmUrNTZ8MCxNPVJl''@;'; + put 'put ''KzE2fDAsRz1SZSxSPTQ4KyhjfD0wKXwwLExlPTB8YVsoMz09KDB8KHc9MyZhW2M+PjJdKSk/YzpSKSs0MD4+Ml0sQT0xNisoSz0wfGFbKGdlPWMrMTZ8MCk+PjJdKXwwLDB8ZmVbSys0Nz4+MF0pe0V5KE0sTGUsMHxhWygyPT0oMHx3KT9jOmMrLTQ4fDApKzQwPj4yXSxBKSx3PU0sTT1BKzQw''@;'; + put 'put ''fDA7ZG97YVtBPj4yXT1hW3c+PjJdLEE9QSs0fDAsdz13KzR8MH13aGlsZSgoMHxBKTwoMHxNKSl9c3dpdGNoKE09KEE9MHxhWzgrKHc9MHxhWyhLPUxlKzE2fDApPj4yXSk+PjJdKT8wfGFbMTYrKDB8YVtBKzQ+PjJdKT4+Ml06MCxBPXcrMTZ8MCx3PTE2KygwfGFbZ2U+PjJdKXwwLGFbRD4+''@;'; + put 'put ''Ml09YVtBPj4yXSxhW0QrND4+Ml09YVtBKzQ+PjJdLGFbRCs4Pj4yXT1hW0ErOD4+Ml0sYVtEKzEyPj4yXT1hW0ErMTI+PjJdLGFbYmU+PjJdPWFbdz4+Ml0sYVtiZSs0Pj4yXT1hW3crND4+Ml0sYVtiZSs4Pj4yXT1hW3crOD4+Ml0sYVtiZSsxMj4+Ml09YVt3KzEyPj4yXSxwTihHLEQsYmUp''@;'; + put 'put ''LGFbbD4+Ml09YVtHPj4yXSxhW2wrND4+Ml09YVtHKzQ+PjJdLGFbbCs4Pj4yXT1hW0crOD4+Ml0sYVtsKzEyPj4yXT1hW0crMTI+PjJdLG08PDI0Pj4yND8oYj0rZ04oMHxhWygzPT0oMyZhW2M+PjJdfDApP2M6UikrNDA+PjJdKSxPZT05KTowfGZlWzQ1KyhBPTB8YVtnZT4+Ml0pPj4wXT8o''@;'; + put 'put ''Yj0rX1tBKzMyPj4zXSxPZT05KTpBPTAsOT09KDB8T2UpJiYoX1tsKzE2Pj4zXT1iLEE9MSksZmVbbCsyOT4+MF09QSxhW2wrODA+PjJdPTAsYVtsKzg4Pj4yXT1jLGFbKEc9cCszMnwwKT4+Ml09YVtsPj4yXSxhW0crND4+Ml09YVtsKzQ+PjJdLGFbRys4Pj4yXT1hW2wrOD4+Ml0sYVtHKzEy''@;'; + put 'put ''Pj4yXT1hW2wrMTI+PjJdLDB8Zil7Y2FzZSAxOmlmKDA9PSgwfGZlWzE1Nisodz0wfGFbSz4+Ml0pPj4wXSkmJihwZT0yNTUmKEc9MHxmZVs0OSsoMHxhW2dlPj4yXSk+PjBdKSxHPDwyND4+MjQhPTApKXthW2JlPj4yXT1hW3A+PjJdLGFbYmUrND4+Ml09YVtwKzQ+PjJdLGFbYmUrOD4+Ml09''@;'; + put 'put ''YVtwKzg+PjJdLGFbYmUrMTI+PjJdPWFbcCsxMj4+Ml0sYVtiZSsxNj4+Ml09YVtwKzE2Pj4yXSxhW2JlKzIwPj4yXT1hW3ArMjA+PjJdLGFbYmUrMjQ+PjJdPWFbcCsyND4+Ml0sYVtiZSsyOD4+Ml09YVtwKzI4Pj4yXTtkb3tpZig0JnBlKXtpZihhW3ArNDg+PjJdPTQsYj0rX1tiZT4+M10s''@;'; + put 'put ''K19bbD4+M108K19bdysxNj4+M10pe1ZlPWIrLTEsSGU9K19bbCs4Pj4zXSxiPStfWyhsPWJlKzE2fDApPj4zXSxrPS41KitfW3crODA+PjNdKyArX1t3KzI0Pj4zXSxrKz0rKDB8KDB8YVsyNTIrKDB8YVsxNisoMHxjcihMZSkpPj4yXSk+PjJdKS8yKSxfW2w+PjNdPStfWzE2KyhBPTB8YVtL''@;'; + put 'put ''Pj4yXSk+PjNdLStfW0ErODg+PjNdLF9bYmUrMjQ+PjNdPUhlLF9bYmUrOD4+M109K19bQSsyND4+M10tLjUqK19bQSs4MD4+M10sX1tiZT4+M109VmUsX1twKzU2Pj4zXT1WZSxfW3ArNjQ+PjNdPUhlLF9bcCs3Mj4+M109YixfW3ArODA+PjNdPWssYVsoQT1wKzg4fDApPj4yXT1hW2JlPj4y''@;'; + put 'put ''XSxhW0ErND4+Ml09YVtiZSs0Pj4yXSxhW0ErOD4+Ml09YVtiZSs4Pj4yXSxhW0ErMTI+PjJdPWFbYmUrMTI+PjJdLGFbQSsxNj4+Ml09YVtiZSsxNj4+Ml0sYVtBKzIwPj4yXT1hW2JlKzIwPj4yXSxhW0ErMjQ+PjJdPWFbYmUrMjQ+PjJdLGFbQSsyOD4+Ml09YVtiZSsyOD4+Ml0sQT0yO2Jy''@;'; + put 'put ''ZWFrfWs9K19bbCs4Pj4zXSxIZT0rX1soQT1iZSsxNnwwKT4+M10rMSxWZT0uNSorX1t3KzgwPj4zXSsgK19bdysyND4+M10sVmUrPSsoMHwoMHxhWzI1MisoMHxhWzE2KygwfGNyKExlKSk+PjJdKT4+Ml0pLzIpLF9bYmU+PjNdPStfWzk2KyhsPTB8YVtLPj4yXSk+PjNdKyArX1tsKzE2Pj4z''@;'; + put 'put ''XSxfW2JlKzI0Pj4zXT1rLF9bYmUrOD4+M109K19bbCsyND4+M10tLjUqK19bbCs4MD4+M10sX1tBPj4zXT1IZSxfW3ArNTY+PjNdPWIsX1twKzY0Pj4zXT1rLF9bcCs3Mj4+M109SGUsX1twKzgwPj4zXT1WZSxhWyhBPXArODh8MCk+PjJdPWFbYmU+PjJdLGFbQSs0Pj4yXT1hW2JlKzQ+PjJd''@;'; + put 'put ''LGFbQSs4Pj4yXT1hW2JlKzg+PjJdLGFbQSsxMj4+Ml09YVtiZSsxMj4+Ml0sYVtBKzE2Pj4yXT1hW2JlKzE2Pj4yXSxhW0ErMjA+PjJdPWFbYmUrMjA+PjJdLGFbQSsyND4+Ml09YVtiZSsyND4+Ml0sYVtBKzI4Pj4yXT1hW2JlKzI4Pj4yXSxBPTI7YnJlYWt9aWYoMSZwZXwwKXthW3ArNDg+''@;'; + put 'put ''PjJdPTEsX1soQT1iZSsyNHwwKT4+M109K19bKCtfW0E+PjNdPitfW2wrOD4+M10/YmUrMTZ8MDpsKSs4Pj4zXSxhWyhBPXArNTZ8MCk+PjJdPWFbYmU+PjJdLGFbQSs0Pj4yXT1hW2JlKzQ+PjJdLGFbQSs4Pj4yXT1hW2JlKzg+PjJdLGFbQSsxMj4+Ml09YVtiZSsxMj4+Ml0sYVtBKzE2Pj4y''@;'; + put 'put ''XT1hW2JlKzE2Pj4yXSxhW0ErMjA+PjJdPWFbYmUrMjA+PjJdLGFbQSsyND4+Ml09YVtiZSsyND4+Ml0sYVtBKzI4Pj4yXT1hW2JlKzI4Pj4yXSxBPTE7YnJlYWt9aWYoQT1wKzQ4fDAsOCZwZSl7YVtBPj4yXT04LF9bYmUrMTY+PjNdPStfW2w+PjNdLF9bYmUrOD4+M109K19bdysyND4+M10t''@;'; + put 'put ''LjUqK19bdys4MD4+M10sX1tiZSsyND4+M109K19bbCs4Pj4zXSxhWyhBPXArNTZ8MCk+PjJdPWFbYmU+PjJdLGFbQSs0Pj4yXT1hW2JlKzQ+PjJdLGFbQSs4Pj4yXT1hW2JlKzg+PjJdLGFbQSsxMj4+Ml09YVtiZSsxMj4+Ml0sYVtBKzE2Pj4yXT1hW2JlKzE2Pj4yXSxhW0ErMjA+PjJdPWFb''@;'; + put 'put ''YmUrMjA+PjJdLGFbQSsyND4+Ml09YVtiZSsyND4+Ml0sYVtBKzI4Pj4yXT1hW2JlKzI4Pj4yXSxBPTE7YnJlYWt9YVtBPj4yXT0yLF9bYmU+PjNdPStfW2w+PjNdLF9bYmUrOD4+M109K19bdysyND4+M10tLjUqK19bdys4MD4+M10sX1tiZSsyND4+M109K19bbCs4Pj4zXSxhWyhBPXArNTZ8''@;'; + put 'put ''MCk+PjJdPWFbYmU+PjJdLGFbQSs0Pj4yXT1hW2JlKzQ+PjJdLGFbQSs4Pj4yXT1hW2JlKzg+PjJdLGFbQSsxMj4+Ml09YVtiZSsxMj4+Ml0sYVtBKzE2Pj4yXT1hW2JlKzE2Pj4yXSxhW0ErMjA+PjJdPWFbYmUrMjA+PjJdLGFbQSsyND4+Ml09YVtiZSsyND4+Ml0sYVtBKzI4Pj4yXT1hW2Jl''@;'; + put 'put ''KzI4Pj4yXSxBPTE7YnJlYWt9d2hpbGUoMCk7Zm9yKGFbcCs1Mj4+Ml09QTswfGZlWzExMisoQT0wfGFbYysxNj4+Ml0pPj4wXTspYz0wfGFbQSsxMTY+PjJdO2ZlWzMwKygoMHxMZSk9PSgwfGFbKDM9PSgzJmFbYz4+Ml18MCk/YzpjKzQ4fDApKzQwPj4yXSk/QSsxNnwwOkErNTZ8MCk+PjBd''@;'; + put 'put ''PTB9ZWxzZSB3PTEsT2U9NDc7YnJlYWs7Y2FzZSAyOmlmKHc9MjU1JihwZT0wfGZlWzQ5KygwfGFbZ2U+PjJdKT4+MF0pLHBlPDwyND4+MjQpe2FbYmU+PjJdPWFbcD4+Ml0sYVtiZSs0Pj4yXT1hW3ArND4+Ml0sYVtiZSs4Pj4yXT1hW3ArOD4+Ml0sYVtiZSsxMj4+Ml09YVtwKzEyPj4yXSxh''@;'; + put 'put ''W2JlKzE2Pj4yXT1hW3ArMTY+PjJdLGFbYmUrMjA+PjJdPWFbcCsyMD4+Ml0sYVtiZSsyND4+Ml09YVtwKzI0Pj4yXSxhW2JlKzI4Pj4yXT1hW3ArMjg+PjJdO2Rve2lmKCEoNCZ3KSl7aWYoMSZ3fDApe2lmKDQ9PSgwfGFbcCs0OD4+Ml0pKXtWZT0rX1syNCsoQT0wfGFbSz4+Ml0pPj4zXS0u''@;'; + put 'put ''NSorX1tBKzgwPj4zXSxIZT0rX1soQT1iZSsxNnwwKT4+M10rMSxiPStfW2w+PjNdLGs9VmUtKygwfCgwfGFbMjUyKygwfGFbMTYrKDB8Y3IoTGUpKT4+Ml0pPj4yXSkvMiksX1tiZT4+M109K19bOTYrKGw9MHxhW0s+PjJdKT4+M10rICtfW2wrMTY+PjNdLF9bYmUrOD4+M109VmUsX1tiZSsy''@;'; + put 'put ''ND4+M109LjUqK19bbCs4MD4+M10rICtfW2wrMjQ+PjNdLF9bQT4+M109SGUsX1twKzU2Pj4zXT1iLF9bcCs2ND4+M109ayxfW3ArNzI+PjNdPUhlLF9bcCs4MD4+M109VmUsYVsoQT1wKzg4fDApPj4yXT1hW2JlPj4yXSxhW0ErND4+Ml09YVtiZSs0Pj4yXSxhW0ErOD4+Ml09YVtiZSs4Pj4y''@;'; + put 'put ''XSxhW0ErMTI+PjJdPWFbYmUrMTI+PjJdLGFbQSsxNj4+Ml09YVtiZSsxNj4+Ml0sYVtBKzIwPj4yXT1hW2JlKzIwPj4yXSxhW0ErMjQ+PjJdPWFbYmUrMjQ+PjJdLGFbQSsyOD4+Ml09YVtiZSsyOD4+Ml0sQT0yO2JyZWFrfV9bKEE9YmUrMjR8MCk+PjNdPStfWygrX1tBPj4zXT4rX1tsKzg+''@;'; + put 'put ''PjNdP2JlKzE2fDA6bCkrOD4+M10sYVsoQT1wKzU2fDApPj4yXT1hW2JlPj4yXSxhW0ErND4+Ml09YVtiZSs0Pj4yXSxhW0ErOD4+Ml09YVtiZSs4Pj4yXSxhW0ErMTI+PjJdPWFbYmUrMTI+PjJdLGFbQSsxNj4+Ml09YVtiZSsxNj4+Ml0sYVtBKzIwPj4yXT1hW2JlKzIwPj4yXSxhW0ErMjQ+''@;'; + put 'put ''PjJdPWFbYmUrMjQ+PjJdLGFbQSsyOD4+Ml09YVtiZSsyOD4+Ml0sQT0xO2JyZWFrfWlmKGI9K19bbD4+M10sOCZ3KXtfWyhBPWJlKzE2fDApPj4zXT1iKzEsYj0rX1syNCsoZj0wfGFbSz4+Ml0pPj4zXSxrPS41KitfW2YrODA+PjNdLDQ9PSgwfGFbcCs0OD4+Ml0pPyhfW2JlKzI0Pj4zXT1r''@;'; + put 'put ''K2IsYj0rX1tsKzg+PjNdLTEsQT1iZSk6KF9bYmUrOD4+M109Yi1rLGI9K19bbCs4Pj4zXSsxKSxfW0ErOD4+M109YixhWyhBPXArNTZ8MCk+PjJdPWFbYmU+PjJdLGFbQSs0Pj4yXT1hW2JlKzQ+PjJdLGFbQSs4Pj4yXT1hW2JlKzg+PjJdLGFbQSsxMj4+Ml09YVtiZSsxMj4+Ml0sYVtBKzE2''@;'; + put 'put ''Pj4yXT1hW2JlKzE2Pj4yXSxhW0ErMjA+PjJdPWFbYmUrMjA+PjJdLGFbQSsyND4+Ml09YVtiZSsyND4+Ml0sYVtBKzI4Pj4yXT1hW2JlKzI4Pj4yXSxBPTE7YnJlYWt9X1tiZT4+M109YixiPStfWzI0KyhmPTB8YVtLPj4yXSk+PjNdLGs9LjUqK19bZis4MD4+M10sND09KDB8YVtwKzQ4Pj4y''@;'; + put 'put ''XSk/KF9bYmUrMjQ+PjNdPWsrYixiPStfW2wrOD4+M10sQT1iZSk6KF9bYmUrOD4+M109Yi1rLGI9K19bbCs4Pj4zXSsxLEE9YmUrMTZ8MCksX1tBKzg+PjNdPWIsYVsoQT1wKzU2fDApPj4yXT1hW2JlPj4yXSxhW0ErND4+Ml09YVtiZSs0Pj4yXSxhW0ErOD4+Ml09YVtiZSs4Pj4yXSxhW0Er''@;'; + put 'put ''MTI+PjJdPWFbYmUrMTI+PjJdLGFbQSsxNj4+Ml09YVtiZSsxNj4+Ml0sYVtBKzIwPj4yXT1hW2JlKzIwPj4yXSxhW0ErMjQ+PjJdPWFbYmUrMjQ+PjJdLGFbQSsyOD4+Ml09YVtiZSsyOD4+Ml0sQT0xO2JyZWFrfV9bKEE9YmUrOHwwKT4+M109K19bKCtfW0E+PjNdPCtfW2wrOD4+M10/YmU6''@;'; + put 'put ''bCkrOD4+M10sYVsoQT1wKzU2fDApPj4yXT1hW2JlPj4yXSxhW0ErND4+Ml09YVtiZSs0Pj4yXSxhW0ErOD4+Ml09YVtiZSs4Pj4yXSxhW0ErMTI+PjJdPWFbYmUrMTI+PjJdLGFbQSsxNj4+Ml09YVtiZSsxNj4+Ml0sYVtBKzIwPj4yXT1hW2JlKzIwPj4yXSxhW0ErMjQ+PjJdPWFbYmUrMjQ+''@;'; + put 'put ''PjJdLGFbQSsyOD4+Ml09YVtiZSsyOD4+Ml0sQT0xfXdoaWxlKDApO2ZvcihhW3ArNTI+PjJdPUE7MHxmZVsxMTIrKEE9MHxhW2MrMTY+PjJdKT4+MF07KWM9MHxhW0ErMTE2Pj4yXTtmZVszMCsoKDB8TGUpPT0oMHxhWygzPT0oMyZhW2M+PjJdfDApP2M6Yys0OHwwKSs0MD4+Ml0pP0ErMTZ8''@;'; + put 'put ''MDpBKzU2fDApPj4wXT0wLGFbcCs0OD4+Ml09d31lbHNlIE9lPTQ2O2JyZWFrO2RlZmF1bHQ6T2U9NDZ9NDY9PSgwfE9lKSYmKHc9MHxhW3ArNDg+PjJdLE9lPTQ3KTtlOmRve2lmKDQ3PT0oMHxPZSkpe2lmKE0pe2lmKHc9MHxSMlsxMjcmTV0oTGUsMTYrKDB8YVtnZT4+Ml0pfDAsdyxjPXAr''@;'; + put 'put ''NTZ8MCxBPXArNTJ8MCkpe2FbcCs0OD4+Ml09dzticmVha319ZWxzZSBBPXArNTJ8MCxjPXArNTZ8MDtzd2l0Y2goYVtjPj4yXT1hW3A+PjJdLGFbYys0Pj4yXT1hW3ArND4+Ml0sYVtjKzg+PjJdPWFbcCs4Pj4yXSxhW2MrMTI+PjJdPWFbcCsxMj4+Ml0sYVtjKzE2Pj4yXT1hW3ArMTY+PjJd''@;'; + put 'put ''LGFbYysyMD4+Ml09YVtwKzIwPj4yXSxhW2MrMjQ+PjJdPWFbcCsyND4+Ml0sYVtjKzI4Pj4yXT1hW3ArMjg+PjJdLGFbQT4+Ml09MSwwfGYpe2Nhc2UgODpQcigxMzgzOTQsMTA2NTE0LDU2OSwxMDY1MjQpO2JyZWFrO2Nhc2UgMjpfWzgrKDQ9PSgwfGFbcCs0OD4+Ml0pP3ArNTZ8MDpwKzcy''@;'; + put 'put ''fDApPj4zXT0rX1tsKzg+PjNdO2JyZWFrIGU7Y2FzZSAxOl9bcCs4MD4+M109K19bbCs4Pj4zXSxhW3ArNDg+PjJdPTE7YnJlYWsgZTtkZWZhdWx0OmJyZWFrIGV9fX13aGlsZSgwKTtsZT1SZX1mdW5jdGlvbiBwTihsLGMsZil7dmFyIHA7cD0rX1s4KyhmfD0wKT4+M10rICtfWzgrKGN8PTAp''@;'; + put 'put ''Pj4zXSxfWyhsfD0wKT4+M109K19bZj4+M10rICtfW2M+PjNdLF9bbCs4Pj4zXT1wfWZ1bmN0aW9uIGdOKGwpe3ZhciBwLHcsayxNLGM9MCxmPTAsbT0wLEE9MCxiPTA7Zm9yKGI9MHxhWzE3Misodz0wfGFbMTYrKGx8PTApPj4yXSk+PjJdLG09MCxBPTA7bD0wfGFbYisoQTw8Mik+PjJdOylt''@;'; + put 'put ''PStfWzE2KygwfGFbMTYrKDB8YVsoMz09KDMmYVtsPj4yXXwwKT9sOmwrNDh8MCkrNDA+PjJdKT4+Ml0pPj4zXSttLEE9QSsxfDA7Zm9yKHA9MHxhW3crMTgwPj4yXSxjPTAsbD0wO2Y9MHxhW3ArKGw8PDIpPj4yXTspYz0rX1sxNisoMHxhWzE2KygwfGFbKDI9PSgzJmFbZj4+Ml18MCk/Zjpm''@;'; + put 'put ''Ky00OHwwKSs0MD4+Ml0pPj4yXSk+PjNdK2MsbD1sKzF8MDtyZXR1cm4gbT0rVWwoKygoTT0rX1t3KzI0Pj4zXSktK19bMjQrKDB8YVsxNisoMHxhWygzPT0oMyZhWyhiPTB8YVtiPj4yXSk+PjJdfDApP2I6Yis0OHwwKSs0MD4+Ml0pPj4yXSk+PjNdKSwrKChrPStfW3crMTY+PjNdKS1tLyso''@;'; + put 'put ''MHxBKSkpLC41KigrVWwoKygrX1syNCsoMHxhWzE2KygwfGFbKDI9PSgzJmFbKGI9MHxhW3A+PjJdKT4+Ml18MCk/YjpiKy00OHwwKSs0MD4+Ml0pPj4yXSk+PjNdLU0pLCsoYy8rKDB8bCktaykpK20pfWZ1bmN0aW9uIHREKGwsYyxmLHAsbSl7bHw9MCxmfD0wLHB8PTAsbXw9MDt2YXIgUixL''@;'; + put 'put ''LGJlLExlLEhlLFZlLEQsQT0wLHc9MCxiPTAsaz0wLE09MCxHPTAscGU9MCxnZT0wLE9lPTAsUmU9MCxxZT0wLG50PTA7aWYoVmU9bGUsbGU9bGUrMTEyfDAsTGU9VmUrNzJ8MCxSPVZlKzU2fDAsTT1WZSsxNnwwLGdlPVZlLEs9KGN8PTApLTQ4fDAsSGU9MHxhWygyPT0oMHwodz0zJmFbYz4+''@;'; + put 'put ''Ml0pKT9jOkspKzQwPj4yXSxBPTU2KyhwZT0wfGFbKGJlPWMrMTZ8MCk+PjJdKXwwLDB8ZmVbcGUrODc+PjBdKXtFeShNLEhlLDB8YVsoMz09KDB8dyk/YzpjKzQ4fDApKzQwPj4yXSxBKSx3PU0sTT1BKzQwfDA7ZG97YVtBPj4yXT1hW3c+PjJdLEE9QSs0fDAsdz13KzR8MH13aGlsZSgoMHxB''@;'; + put 'put ''KTwoMHxNKSl9c3dpdGNoKEQ9KEE9MHxhWzgrKHc9MHxhWyhwZT1IZSsxNnwwKT4+Ml0pPj4yXSk/MHxhWzE2KygwfGFbQSs0Pj4yXSk+PjJdOjAsTT1sKzQwfDAsQT13KzE2fDAsdz01NisoMHxhW2JlPj4yXSl8MCxhW1I+PjJdPWFbQT4+Ml0sYVtSKzQ+PjJdPWFbQSs0Pj4yXSxhW1IrOD4+''@;'; + put 'put ''Ml09YVtBKzg+PjJdLGFbUisxMj4+Ml09YVtBKzEyPj4yXSxhW0xlPj4yXT1hW3c+PjJdLGFbTGUrND4+Ml09YVt3KzQ+PjJdLGFbTGUrOD4+Ml09YVt3Kzg+PjJdLGFbTGUrMTI+PjJdPWFbdysxMj4+Ml0scE4oZ2UsUixMZSksYVtNPj4yXT1hW2dlPj4yXSxhW00rND4+Ml09YVtnZSs0Pj4y''@;'; + put 'put ''XSxhW00rOD4+Ml09YVtnZSs4Pj4yXSxhW00rMTI+PjJdPWFbZ2UrMTI+PjJdLG08PDI0Pj4yND8oaz0rZ04oMHxhWygyPT0oMyZhW2M+PjJdfDApP2M6SykrNDA+PjJdKSszLjE0MTU5MjY1MzU4OTc5MyxfW2wrNTY+PjNdPWssazw2LjI4MzE4NTMwNzE3OTU4Nj9HPTE6UHIoMTA2NTM0LDEw''@;'; + put 'put ''NjUxNCw2MDYsMTA2NTU4KSk6MHxmZVs4NSsoQT0wfGFbYmU+PjJdKT4+MF0/KF9bbCs1Nj4+M109K19bQSs3Mj4+M10sRz0xKTpHPTAsZmVbbCs2OT4+MF09RyxhWyhnZT1wKzMyfDApPj4yXT1hW00+PjJdLGFbZ2UrND4+Ml09YVtNKzQ+PjJdLGFbZ2UrOD4+Ml09YVtNKzg+PjJdLGFbZ2Ur''@;'; + put 'put ''MTI+PjJdPWFbTSsxMj4+Ml0sMHxmKXtjYXNlIDE6aWYoMD09KDB8ZmVbMTU2Kyh3PTB8YVtwZT4+Ml0pPj4wXSkmJihPZT0yNTUmKGdlPTB8ZmVbODkrKDB8YVtiZT4+Ml0pPj4wXSksZ2U8PDI0Pj4yNCE9MCkpe2FbTGU+PjJdPWFbcD4+Ml0sYVtMZSs0Pj4yXT1hW3ArND4+Ml0sYVtMZSs4''@;'; + put 'put ''Pj4yXT1hW3ArOD4+Ml0sYVtMZSsxMj4+Ml09YVtwKzEyPj4yXSxhW0xlKzE2Pj4yXT1hW3ArMTY+PjJdLGFbTGUrMjA+PjJdPWFbcCsyMD4+Ml0sYVtMZSsyND4+Ml09YVtwKzI0Pj4yXSxhW0xlKzI4Pj4yXT1hW3ArMjg+PjJdO2Rve2lmKCEoNCZPZSkpe2lmKDEmT2Upe2lmKGFbcCs0OD4+''@;'; + put 'put ''Ml09MSxiPStfW0xlPj4zXSwrX1tNPj4zXTwrX1t3KzE2Pj4zXSl7bnQ9YistMSxrPStfW2wrNDg+PjNdLGI9K19bKGw9TGUrMTZ8MCk+PjNdLHFlPS0uNSorX1t3KzgwPj4zXSsgK19bdysyND4+M10scWUtPSsoMHwoMHxhWzI1MisoMHxhWzE2KygwfGNyKEhlKSk+PjJdKT4+Ml0pLzIpLF9b''@;'; + put 'put ''bD4+M109K19bMTYrKEE9MHxhW3BlPj4yXSk+PjNdLStfW0ErODg+PjNdLF9bTGUrOD4+M109ayxfW0xlKzI0Pj4zXT0uNSorX1tBKzgwPj4zXSsgK19bQSsyND4+M10sX1tMZT4+M109bnQsX1twKzU2Pj4zXT1udCxfW3ArNjQ+PjNdPXFlLF9bcCs3Mj4+M109YixfW3ArODA+PjNdPWssYVso''@;'; + put 'put ''QT1wKzg4fDApPj4yXT1hW0xlPj4yXSxhW0ErND4+Ml09YVtMZSs0Pj4yXSxhW0ErOD4+Ml09YVtMZSs4Pj4yXSxhW0ErMTI+PjJdPWFbTGUrMTI+PjJdLGFbQSsxNj4+Ml09YVtMZSsxNj4+Ml0sYVtBKzIwPj4yXT1hW0xlKzIwPj4yXSxhW0ErMjQ+PjJdPWFbTGUrMjQ+PjJdLGFbQSsyOD4+''@;'; + put 'put ''Ml09YVtMZSsyOD4+Ml0sQT0yO2JyZWFrfW50PStfW2wrNDg+PjNdLHFlPStfWyhBPUxlKzE2fDApPj4zXSsxLGs9LS41KitfW3crODA+PjNdKyArX1t3KzI0Pj4zXSxrLT0rKDB8KDB8YVsyNTIrKDB8YVsxNisoMHxjcihIZSkpPj4yXSk+PjJdKS8yKSxfW0xlPj4zXT0rX1s5NisobD0wfGFb''@;'; + put 'put ''cGU+PjJdKT4+M10rICtfW2wrMTY+PjNdLF9bTGUrOD4+M109bnQsX1tMZSsyND4+M109LjUqK19bbCs4MD4+M10rICtfW2wrMjQ+PjNdLF9bQT4+M109cWUsX1twKzU2Pj4zXT1iLF9bcCs2ND4+M109ayxfW3ArNzI+PjNdPXFlLF9bcCs4MD4+M109bnQsYVsoQT1wKzg4fDApPj4yXT1hW0xl''@;'; + put 'put ''Pj4yXSxhW0ErND4+Ml09YVtMZSs0Pj4yXSxhW0ErOD4+Ml09YVtMZSs4Pj4yXSxhW0ErMTI+PjJdPWFbTGUrMTI+PjJdLGFbQSsxNj4+Ml09YVtMZSsxNj4+Ml0sYVtBKzIwPj4yXT1hW0xlKzIwPj4yXSxhW0ErMjQ+PjJdPWFbTGUrMjQ+PjJdLGFbQSsyOD4+Ml09YVtMZSsyOD4+Ml0sQT0y''@;'; + put 'put ''O2JyZWFrfWlmKEE9cCs0OHwwLDgmT2Upe2FbQT4+Ml09OCxfW0xlKzE2Pj4zXT0rX1tNPj4zXSxfW0xlKzI0Pj4zXT0uNSorX1t3KzgwPj4zXSsgK19bdysyND4+M10sX1tMZSs4Pj4zXT0rX1tsKzQ4Pj4zXSxhWyhBPXArNTZ8MCk+PjJdPWFbTGU+PjJdLGFbQSs0Pj4yXT1hW0xlKzQ+PjJd''@;'; + put 'put ''LGFbQSs4Pj4yXT1hW0xlKzg+PjJdLGFbQSsxMj4+Ml09YVtMZSsxMj4+Ml0sYVtBKzE2Pj4yXT1hW0xlKzE2Pj4yXSxhW0ErMjA+PjJdPWFbTGUrMjA+PjJdLGFbQSsyND4+Ml09YVtMZSsyND4+Ml0sYVtBKzI4Pj4yXT1hW0xlKzI4Pj4yXSxBPTE7YnJlYWt9YVtBPj4yXT0yLF9bTGU+PjNd''@;'; + put 'put ''PStfW00+PjNdLF9bTGUrMjQ+PjNdPS41KitfW3crODA+PjNdKyArX1t3KzI0Pj4zXSxfW0xlKzg+PjNdPStfW2wrNDg+PjNdLGFbKEE9cCs1NnwwKT4+Ml09YVtMZT4+Ml0sYVtBKzQ+PjJdPWFbTGUrND4+Ml0sYVtBKzg+PjJdPWFbTGUrOD4+Ml0sYVtBKzEyPj4yXT1hW0xlKzEyPj4yXSxh''@;'; + put 'put ''W0ErMTY+PjJdPWFbTGUrMTY+PjJdLGFbQSsyMD4+Ml09YVtMZSsyMD4+Ml0sYVtBKzI0Pj4yXT1hW0xlKzI0Pj4yXSxhW0ErMjg+PjJdPWFbTGUrMjg+PjJdLEE9MTticmVha31hW3ArNDg+PjJdPTQsX1soQT1MZSs4fDApPj4zXT0rX1soK19bQT4+M108K19bbCs0OD4+M10/TGU6TSkrOD4+''@;'; + put 'put ''M10sYVsoQT1wKzU2fDApPj4yXT1hW0xlPj4yXSxhW0ErND4+Ml09YVtMZSs0Pj4yXSxhW0ErOD4+Ml09YVtMZSs4Pj4yXSxhW0ErMTI+PjJdPWFbTGUrMTI+PjJdLGFbQSsxNj4+Ml09YVtMZSsxNj4+Ml0sYVtBKzIwPj4yXT1hW0xlKzIwPj4yXSxhW0ErMjQ+PjJdPWFbTGUrMjQ+PjJdLGFb''@;'; + put 'put ''QSsyOD4+Ml09YVtMZSsyOD4+Ml0sQT0xfXdoaWxlKDApO2ZvcihhW3ArNTI+PjJdPUE7MHxmZVsxMTIrKEE9MHxhW2MrMTY+PjJdKT4+MF07KWM9MHxhW0ErMTE2Pj4yXTtmZVszMCsoKDB8SGUpPT0oMHxhWygyPT0oMyZhW2M+PjJdfDApP2M6YystNDh8MCkrNDA+PjJdKT9BKzU2fDA6QSsx''@;'; + put 'put ''NnwwKT4+MF09MCxhW3ArNDg+PjJdPU9lfWVsc2Ugdz00LFJlPTQ3O2JyZWFrO2Nhc2UgMjppZih3PTI1NSYoT2U9MHxmZVs4OSsoMHxhW2JlPj4yXSk+PjBdKSxPZTw8MjQ+PjI0KXthW0xlPj4yXT1hW3A+PjJdLGFbTGUrND4+Ml09YVtwKzQ+PjJdLGFbTGUrOD4+Ml09YVtwKzg+PjJdLGFb''@;'; + put 'put ''TGUrMTI+PjJdPWFbcCsxMj4+Ml0sYVtMZSsxNj4+Ml09YVtwKzE2Pj4yXSxhW0xlKzIwPj4yXT1hW3ArMjA+PjJdLGFbTGUrMjQ+PjJdPWFbcCsyND4+Ml0sYVtMZSsyOD4+Ml09YVtwKzI4Pj4yXTtkb3tpZighKDQmdykpe2lmKDEmd3wwKXtpZig0PT0oMHxhW3ArNDg+PjJdKSl7Yj0rX1tM''@;'; + put 'put ''ZT4+M10tMSxxZT0rX1tNPj4zXSxrPShudD0rX1syNCsoQT0wfGFbcGU+PjJdKT4+M10tLjUqK19bQSs4MD4+M10pLSsoMHwoMHxhWzI1MisoMHxhWzE2KygwfGNyKEhlKSk+PjJdKT4+Ml0pLzIpLF9bTGUrMTY+PjNdPStfWzE2KyhBPTB8YVtwZT4+Ml0pPj4zXS0yLStfW0ErODg+PjNdLF9b''@;'; + put 'put ''TGUrOD4+M109bnQsX1tMZSsyND4+M109LjUqK19bQSs4MD4+M10rICtfW0ErMjQ+PjNdLF9bTGU+PjNdPWIsX1twKzU2Pj4zXT1iLF9bcCs2ND4+M109ayxfW3ArNzI+PjNdPXFlLF9bcCs4MD4+M109bnQsYVsoQT1wKzg4fDApPj4yXT1hW0xlPj4yXSxhW0ErND4+Ml09YVtMZSs0Pj4yXSxh''@;'; + put 'put ''W0ErOD4+Ml09YVtMZSs4Pj4yXSxhW0ErMTI+PjJdPWFbTGUrMTI+PjJdLGFbQSsxNj4+Ml09YVtMZSsxNj4+Ml0sYVtBKzIwPj4yXT1hW0xlKzIwPj4yXSxhW0ErMjQ+PjJdPWFbTGUrMjQ+PjJdLGFbQSsyOD4+Ml09YVtMZSsyOD4+Ml0sQT0yO2JyZWFrfV9bKEE9TGUrMjR8MCk+PjNdPStf''@;'; + put 'put ''WygrX1tBPj4zXT4rX1tsKzg+PjNdP0xlKzE2fDA6bCkrOD4+M10sYVsoQT1wKzU2fDApPj4yXT1hW0xlPj4yXSxhW0ErND4+Ml09YVtMZSs0Pj4yXSxhW0ErOD4+Ml09YVtMZSs4Pj4yXSxhW0ErMTI+PjJdPWFbTGUrMTI+PjJdLGFbQSsxNj4+Ml09YVtMZSsxNj4+Ml0sYVtBKzIwPj4yXT1h''@;'; + put 'put ''W0xlKzIwPj4yXSxhW0ErMjQ+PjJdPWFbTGUrMjQ+PjJdLGFbQSsyOD4+Ml09YVtMZSsyOD4+Ml0sQT0xO2JyZWFrfWlmKGI9K19bTT4+M10sOCZ3KXtfWyhBPUxlKzE2fDApPj4zXT1iKzEsYj0rX1syNCsoZj0wfGFbcGU+PjJdKT4+M10saz0uNSorX1tmKzgwPj4zXSw0PT0oMHxhW3ArNDg+''@;'; + put 'put ''PjJdKT8oX1tMZSsyND4+M109aytiLGI9K19bbCs0OD4+M10tMSxBPUxlKTooX1tMZSs4Pj4zXT1iLWssYj0rX1tsKzQ4Pj4zXSsxKSxfW0ErOD4+M109YixhWyhBPXArNTZ8MCk+PjJdPWFbTGU+PjJdLGFbQSs0Pj4yXT1hW0xlKzQ+PjJdLGFbQSs4Pj4yXT1hW0xlKzg+PjJdLGFbQSsxMj4+''@;'; + put 'put ''Ml09YVtMZSsxMj4+Ml0sYVtBKzE2Pj4yXT1hW0xlKzE2Pj4yXSxhW0ErMjA+PjJdPWFbTGUrMjA+PjJdLGFbQSsyND4+Ml09YVtMZSsyND4+Ml0sYVtBKzI4Pj4yXT1hW0xlKzI4Pj4yXSxBPTE7YnJlYWt9X1tMZT4+M109YistMSxiPStfWzI0KyhmPTB8YVtwZT4+Ml0pPj4zXSxrPS41Kitf''@;'; + put 'put ''W2YrODA+PjNdLDQ9PSgwfGFbcCs0OD4+Ml0pPyhfW0xlKzI0Pj4zXT1rK2IsYj0rX1tsKzQ4Pj4zXS0xLEE9TGUpOihfW0xlKzg+PjNdPWItayxiPStfW2wrNDg+PjNdLEE9TGUrMTZ8MCksX1tBKzg+PjNdPWIsYVsoQT1wKzU2fDApPj4yXT1hW0xlPj4yXSxhW0ErND4+Ml09YVtMZSs0Pj4y''@;'; + put 'put ''XSxhW0ErOD4+Ml09YVtMZSs4Pj4yXSxhW0ErMTI+PjJdPWFbTGUrMTI+PjJdLGFbQSsxNj4+Ml09YVtMZSsxNj4+Ml0sYVtBKzIwPj4yXT1hW0xlKzIwPj4yXSxhW0ErMjQ+PjJdPWFbTGUrMjQ+PjJdLGFbQSsyOD4+Ml09YVtMZSsyOD4+Ml0sQT0xO2JyZWFrfV9bKEE9TGUrOHwwKT4+M109''@;'; + put 'put ''K19bKCtfW0E+PjNdPCtfW2wrNDg+PjNdP0xlOk0pKzg+PjNdLGFbKEE9cCs1NnwwKT4+Ml09YVtMZT4+Ml0sYVtBKzQ+PjJdPWFbTGUrND4+Ml0sYVtBKzg+PjJdPWFbTGUrOD4+Ml0sYVtBKzEyPj4yXT1hW0xlKzEyPj4yXSxhW0ErMTY+PjJdPWFbTGUrMTY+PjJdLGFbQSsyMD4+Ml09YVtM''@;'; + put 'put ''ZSsyMD4+Ml0sYVtBKzI0Pj4yXT1hW0xlKzI0Pj4yXSxhW0ErMjg+PjJdPWFbTGUrMjg+PjJdLEE9MX13aGlsZSgwKTtmb3IoYVtwKzUyPj4yXT1BOzB8ZmVbMTEyKyhBPTB8YVtjKzE2Pj4yXSk+PjBdOyljPTB8YVtBKzExNj4+Ml07ZmVbMzArKCgwfEhlKT09KDB8YVsoMj09KDMmYVtjPj4y''@;'; + put 'put ''XXwwKT9jOmMrLTQ4fDApKzQwPj4yXSk/QSs1NnwwOkErMTZ8MCk+PjBdPTAsYVtwKzQ4Pj4yXT13fWVsc2UgUmU9NDY7YnJlYWs7ZGVmYXVsdDpSZT00Nn00Nj09KDB8UmUpJiYodz0wfGFbcCs0OD4+Ml0sUmU9NDcpO2U6ZG97aWYoNDc9PSgwfFJlKSl7aWYoRCl7aWYodz0wfFIyWzEyNyZE''@;'; + put 'put ''XShIZSw1NisoMHxhW2JlPj4yXSl8MCx3LGM9cCs1NnwwLEE9cCs1MnwwKSl7YVtwKzQ4Pj4yXT13O2JyZWFrfX1lbHNlIEE9cCs1MnwwLGM9cCs1NnwwO3N3aXRjaChhW2M+PjJdPWFbcD4+Ml0sYVtjKzQ+PjJdPWFbcCs0Pj4yXSxhW2MrOD4+Ml09YVtwKzg+PjJdLGFbYysxMj4+Ml09YVtw''@;'; + put 'put ''KzEyPj4yXSxhW2MrMTY+PjJdPWFbcCsxNj4+Ml0sYVtjKzIwPj4yXT1hW3ArMjA+PjJdLGFbYysyND4+Ml09YVtwKzI0Pj4yXSxhW2MrMjg+PjJdPWFbcCsyOD4+Ml0sYVtBPj4yXT0xLDB8Zil7Y2FzZSA4OlByKDEzODM5NCwxMDY1MTQsNzY1LDEwNjU1OCk7YnJlYWs7Y2FzZSAyOl9bOCso''@;'; + put 'put ''ND09KDB8YVtwKzQ4Pj4yXSk/cCs1NnwwOnArNzJ8MCk+PjNdPStfW2wrNDg+PjNdO2JyZWFrIGU7Y2FzZSAxOl9bcCs2ND4+M109K19bbCs0OD4+M10sYVtwKzQ4Pj4yXT00O2JyZWFrIGU7ZGVmYXVsdDpicmVhayBlfX19d2hpbGUoMCk7bGU9VmV9ZnVuY3Rpb24gbEoobCl7dmFyIG0sQSxj''@;'; + put 'put ''PTAsZj0wLHA9MCx3PTA7cmV0dXJuIEE9MHxhWzk2KyhtPTB8YVsxNisobHw9MCk+PjJdKT4+Ml0sMD09KDB8ZmVbbSs0ND4+MF0pJiYwPT0oMHxmZVttKzg0Pj4wXSk/dz02OjAhPSg4JihmPTI1NSYoYz0wfGZlW20rNDk+PjBdKSl8MCl8fDAhPSg4JihwPTB8ZmVbbSs4OT4+MF0pKXx8MCE9''@;'; + put 'put ''KDUmZnwwKSYmYzw8MjQ+PjI0PT1wPDwyND4+MjQ/bD0wOnc9Niw2PT0oMHx3KSYmKEE/KGw9MCE9KDEmYVsxMTYrKDB8YVsxNisoMHxjcigwfGFbKDI9PSgzJmFbbD4+Ml18MCk/bDpsKy00OHwwKSs0MD4+Ml0pKT4+Ml0pPj4yXXwwKSxsPX5+KCtfWyhsP0ErMzJ8MDpBKzI0fDApPj4zXSsx''@;'; + put 'put ''OCkpOmw9MTgpLDB8bH1mdW5jdGlvbiBuRChsLGMsZixwLG0sQSx3KXtsfD0wLHB8PTAsbT0rbSxBPStBLHd8PTA7dmFyIGI9MCxrPTAsTT0wLEQ9MDtNPTA9PSgwfGZlWzQ0KyhsPTB8YVsxNisoMHxhWyhjfD0wKSsoKGZ8PTApPDwyKT4+Ml0pPj4yXSk+PjBdKSYmMD09KDB8ZmVbbCs4ND4+''@;'; + put 'put ''MF0pPzY6Mztkb3tpZigzPT0oMHxNKSl7aWYoISg4JihrPTI1NSYoYj0wfGZlW2wrNDk+PjBdKSkpKXtpZigwPT0oOCYoRD0wfGZlW2wrODk+PjBdKSkmJigwPT0oNSZrfDApfHxiPDwyND4+MjQhPUQ8PDI0Pj4yNCkpe009NjticmVha31pZighKDgmZmVbbCs4OT4+MF0pKXtpZig0Jmt8MCl7''@;'; + put 'put ''c0ooYyxmLHAsbSxBLHcpO2JyZWFrfWlmKDEmayl7dWxlKGMsZixwLG0sQSx3KTticmVha31QcigxMzgzOTQsMTA2NTE0LDEyMzEsMTA2NTY2KX19aWYoMD09KDImYikmJjA9PSgyJmZlW2wrODk+PjBdKSl7c2xlKGMsZixwLG0sQSx3KTticmVha31zSihjLGYscCxtLEEsdyl9fXdoaWxlKDAp''@;'; + put 'put ''OzY9PSgwfE0pJiZmdW5jdGlvbiBsbGUobCxjLGYscCxtLEEpe3A9K3AsQXw9MDt2YXIgSyxwZSxnZSxiZSxPZSxMZSxSZSxIZSxudCxXZSxvdCxTdCxrdCxadCxjdCxidCxhbixTbixIbix1cix3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAsVmU9MCxxZT0wLHN0PTAsRXQ9MCxIcj0wLEVy''@;'; + put 'put ''PTAsZnI9MDtzd2l0Y2godXI9bGUsbGU9bGUrMTYwODB8MCxidD11cis4MHwwLGFuPXVyKzY0fDAsU249dXIrNDh8MCxIbj11ciszMnwwLFp0PXVyKzE2fDAsY3Q9dXIsaz0oaz0uNSoobT0rbSkvKygwfChmfD0wKSkpPjI/azoyLFdlPTE2KygwfGFbKDM9PSgzJmFbKHFlPTB8YVsobHw9MCkr''@;'; + put 'put ''KChjfD0wKTw8Mik+PjJdKT4+Ml18MCk/cWU6cWUrNDh8MCkrNDA+PjJdKXwwLG90PShiPStfWzE2KyhxZT0wfGFbcWUrMTY+PjJdKT4+M10pKyhudD0rX1sxNisoVmU9MHxhW1dlPj4yXSk+PjNdKSxrdD0obT0rX1txZSs1Nj4+M10pK250LHc9KFN0PStfW3FlKzI0Pj4zXSsoc3Q9K19bVmUr''@;'; + put 'put ''MjQ+PjNdKSk+PShzdD0rX1txZSs2ND4+M10rc3QpPzE6LTEsRD0rX1tWZSs5Nj4+M10sMHxyRCgwfFh0W3FlKzQ5Pj4wXSwwfFh0W3FlKzg5Pj4wXSkpe2Nhc2UgNjU6Y2FzZSAzMjpTdD09c3QmJih3PTAtd3wwKX1mb3IoSHI9MyooRC1iKSxiPTMqKEQtbSksYmU9ayorKDB8dyksZ2U9YnQr''@;'; + put 'put ''OHwwLE9lPWJ0KzE2fDAsTGU9YnQrMzJ8MCxSZT1idCs0OHwwLEhlPS41KihzdCtTdCksVmU9YnQrNjR8MCxxZT1idCs4MHwwLEs9YnQrOTZ8MCxwZT1idCsxMDR8MCxHPTAsTT0wLG09RCxrPUQ8SHI/RDpIcixiPUQ8Yj9EOmI7ISgoMHxHKT49KDB8ZikpOylSPWMrMXwwLGM9MHxhW2wrKGM8''@;'; + put 'put ''PDIpPj4yXSxEPW0rcCxrKz1wLGIrPXAsTSs9YmUsX1tidD4+M109b3QsX1tnZT4+M109U3QseXUoYW4sLjMzMzMzMzMzMzMzMzMzMzMqaytvdCxIcj1NK1N0KSxhW09lPj4yXT1hW2FuPj4yXSxhW09lKzQ+PjJdPWFbYW4rND4+Ml0sYVtPZSs4Pj4yXT1hW2FuKzg+PjJdLGFbT2UrMTI+PjJd''@;'; + put 'put ''PWFbYW4rMTI+PjJdLHl1KFNuLEVyPUQrbnQsSHIpLGFbTGU+PjJdPWFbU24+PjJdLGFbTGUrND4+Ml09YVtTbis0Pj4yXSxhW0xlKzg+PjJdPWFbU24rOD4+Ml0sYVtMZSsxMj4+Ml09YVtTbisxMj4+Ml0seXUoSG4sRXIsSGUpLGFbUmU+PjJdPWFbSG4+PjJdLGFbUmUrND4+Ml09YVtIbis0''@;'; + put 'put ''Pj4yXSxhW1JlKzg+PjJdPWFbSG4rOD4+Ml0sYVtSZSsxMj4+Ml09YVtIbisxMj4+Ml0seXUoWnQsRXIsSHI9c3QtTSksYVtWZT4+Ml09YVtadD4+Ml0sYVtWZSs0Pj4yXT1hW1p0KzQ+PjJdLGFbVmUrOD4+Ml09YVtadCs4Pj4yXSxhW1ZlKzEyPj4yXT1hW1p0KzEyPj4yXSx5dShjdCwuMzMz''@;'; + put 'put ''MzMzMzMzMzMzMzMzMypiK2t0LEhyKSxhW3FlPj4yXT1hW2N0Pj4yXSxhW3FlKzQ+PjJdPWFbY3QrND4+Ml0sYVtxZSs4Pj4yXT1hW2N0Kzg+PjJdLGFbcWUrMTI+PjJdPWFbY3QrMTI+PjJdLF9bSz4+M109a3QsX1twZT4+M109c3QsbT0wIT0oMHxhWzk2KygwfGFbKHc9YysxNnwwKT4+Ml0p''@;'; + put 'put ''Pj4yXSkmJihmcj0wPT0oMSZhWzExNisoMHxhWzE2KygwfGNyKDB8YVsoMz09KDMmYVtjPj4yXXwwKT9jOmMrNDh8MCkrNDA+PjJdKSk+PjJdKT4+Ml18MCksX1s1Nisodz0wfGFbOTYrKDB8YVt3Pj4yXSk+PjJdKT4+M109LjUqKEV0PStfWyhmcj93KzI0fDA6dyszMnwwKT4+M10pK0QrICtf''@;'; + put 'put ''WzE2Kyhmcj0wfGFbV2U+PjJdKT4+M10sX1t3KzY0Pj4zXT0rX1tmcisyND4+M10sZmVbdys4MT4+MF09MSxFdD5wKT9FdCttOkQsQXUoYywwfGFbKDI9PSgzJmFbYz4+Ml18MCk/YzpjKy00OHwwKSs0MD4+Ml0sYnQsNyxBKSxjPVIsRz1HKzF8MDtsZT11cn0oYyxmLHAsbSxBLHcpfWZ1bmN0''@;'; + put 'put ''aW9uIHNKKGwsYyxmLHAsbSxBKXttPSttLEF8PTA7dmFyIGdlLGJlLE9lLExlLFJlLEhlLFZlLHFlLFdlLG90LFN0LGt0LEV0LGN0LGJ0LGFuLFNuLEhuLHVyLEhyLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxLPTAscGU9MCxudD0wLHN0PTAsWnQ9MCxFcj0wLGZyPTA7c3dpdGNoKEhy''@;'; + put 'put ''PWxlLGxlPWxlKzE2MDgwfDAsYW49SHIrODB8MCxTbj1Icis2NHwwLEhuPUhyKzQ4fDAsdXI9SHIrMzJ8MCxjdD1IcisxNnwwLGJ0PUhyLFI9KFI9LjUqKHA9K3ApLysoMHwoZnw9MCkpKT4yP1I6MixvdD0xNisoMHxhWygzPT0oMyZhWyhudD0wfGFbKGx8PTApKygoY3w9MCk8PDIpPj4yXSk+''@;'; + put 'put ''PjJdfDApP250Om50KzQ4fDApKzQwPj4yXSl8MCxrdD0oRD0rX1syNCsobnQ9MHxhW250KzE2Pj4yXSk+PjNdKSsoV2U9K19bMjQrKGI9MHxhW290Pj4yXSk+PjNdKSxFdD0oTT0rX1tudCs2ND4+M10pK1dlLGs9KFN0PSh3PStfW250KzE2Pj4zXSkrKHN0PStfW2IrMTY+PjNdKSk+PShzdD0o''@;'; + put 'put ''cD0rX1tudCs1Nj4+M10pK3N0KT8xOi0xLEs9LjUqK19bYis4MD4+M10sMHxyRCgwfFh0W250KzQ5Pj4wXSwwfFh0W250Kzg5Pj4wXSkpe2Nhc2UgMTU6dz0oUi1wKyArX1tiKzk2Pj4zXSkqazticmVhaztjYXNlIDM4Onc9KHArUisgK19bYis4OD4+M10pKms7YnJlYWs7Y2FzZSA0MTpjYXNl''@;'; + put 'put ''IDQ4Onc9KFItdysgK19bYis5Nj4+M10pKms7YnJlYWs7Y2FzZSA1ODpjYXNlIDU3OmNhc2UgNTE6Y2FzZSA0NzpjYXNlIDM3OmNhc2UgMTQ6dz0uMzMzMzMzMzMzMzMzMzMzMyprKih3LXArICtfW2IrODg+PjNdKyArX1tiKzk2Pj4zXSk7YnJlYWs7Y2FzZSA3Mzp3PSh3K1IrICtfW2IrODg+''@;'; + put 'put ''PjNdKSprO2JyZWFrO2Nhc2UgODM6dz0oK19bYis4OD4+M10rdykqazticmVhaztjYXNlIDg0Onc9KC41Kih3LXArICtfW2IrODg+PjNdKyArX1tiKzk2Pj4zXSkrUikqazticmVhaztjYXNlIDg1OmNhc2UgNzU6Y2FzZSA3NDp3PSguNSoody1wKyArX1tiKzg4Pj4zXSsgK19bYis5Nj4+M10p''@;'; + put 'put ''KzIqUikqazticmVhaztkZWZhdWx0Onc9MH1mb3IoUio9ayxPZT1hbis4fDAsTGU9YW4rMTZ8MCxSZT1hbiszMnwwLEhlPWFuKzQ4fDAsVmU9LjUqKHN0K1N0KSxxZT1hbis2NHwwLG50PWFuKzgwfDAsZ2U9YW4rOTZ8MCxiZT1hbisxMDR8MCxwZT0wLHA9SyxEPUs8KEQ9MyooSy1EKSk/SzpE''@;'; + put 'put ''LGs9SzwoTT0zKihLLU0pKT9LOk07ISgoMHxwZSk+PSgwfGYpKTspRz1jKzF8MCxjPTB8YVtsKyhjPDwyKT4+Ml0sTT1wK20sRCs9bSxrKz1tLHcrPVIsX1thbj4+M109U3QsX1tPZT4+M109a3QseXUoU24sSz13K1N0LC4zMzMzMzMzMzMzMzMzMzMzKkQra3QpLGFbTGU+PjJdPWFbU24+PjJd''@;'; + put 'put ''LGFbTGUrND4+Ml09YVtTbis0Pj4yXSxhW0xlKzg+PjJdPWFbU24rOD4+Ml0sYVtMZSsxMj4+Ml09YVtTbisxMj4+Ml0seXUoSG4sSyxFcj1NK1dlKSxhW1JlPj4yXT1hW0huPj4yXSxhW1JlKzQ+PjJdPWFbSG4rND4+Ml0sYVtSZSs4Pj4yXT1hW0huKzg+PjJdLGFbUmUrMTI+PjJdPWFbSG4r''@;'; + put 'put ''MTI+PjJdLHl1KHVyLFZlLEVyKSxhW0hlPj4yXT1hW3VyPj4yXSxhW0hlKzQ+PjJdPWFbdXIrND4+Ml0sYVtIZSs4Pj4yXT1hW3VyKzg+PjJdLGFbSGUrMTI+PjJdPWFbdXIrMTI+PjJdLHl1KGN0LEs9c3QtdyxFciksYVtxZT4+Ml09YVtjdD4+Ml0sYVtxZSs0Pj4yXT1hW2N0KzQ+PjJdLGFb''@;'; + put 'put ''cWUrOD4+Ml09YVtjdCs4Pj4yXSxhW3FlKzEyPj4yXT1hW2N0KzEyPj4yXSx5dShidCxLLC4zMzMzMzMzMzMzMzMzMzMzKmsrRXQpLGFbbnQ+PjJdPWFbYnQ+PjJdLGFbbnQrND4+Ml09YVtidCs0Pj4yXSxhW250Kzg+PjJdPWFbYnQrOD4+Ml0sYVtudCsxMj4+Ml09YVtidCsxMj4+Ml0sX1tn''@;'; + put 'put ''ZT4+M109c3QsX1tiZT4+M109RXQscD0wIT0oMHxhWzk2KygwfGFbKGI9YysxNnwwKT4+Ml0pPj4yXSkmJihmcj0wPT0oMSZhWzExNisoMHxhWzE2KygwfGNyKDB8YVsoMz09KDMmYVtjPj4yXXwwKT9jOmMrNDh8MCkrNDA+PjJdKSk+PjJdKT4+Ml18MCksX1s2NCsoYj0wfGFbOTYrKDB8YVti''@;'; + put 'put ''Pj4yXSk+PjJdKT4+M109LjUqKFp0PStfWyhmcj9iKzMyfDA6YisyNHwwKT4+M10pK00rICtfWzI0Kyhmcj0wfGFbb3Q+PjJdKT4+M10sX1tiKzU2Pj4zXT0rX1tmcisxNj4+M10sZmVbYis4MT4+MF09MSxadD5tKT9adCtwOk0sQXUoYywwfGFbKDI9PSgzJmFbYz4+Ml18MCk/YzpjKy00OHww''@;'; + put 'put ''KSs0MD4+Ml0sYW4sNyxBKSxjPUcscGU9cGUrMXwwO2xlPUhyfWZ1bmN0aW9uIHNsZShsLGMsZixwLG0sQSl7cD0rcCxBfD0wO3ZhciBLLHBlLGdlLGJlLE9lLExlLFJlLEhlLG50LFdlLG90LFN0LGt0LFp0LGN0LGJ0LGFuLFNuLEhuLHVyLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxW''@;'; + put 'put ''ZT0wLHFlPTAsc3Q9MCxFdD0wLEhyPTAsRXI9MCxmcj0wO3N3aXRjaCh1cj1sZSxsZT1sZSsxNjA4MHwwLGJ0PXVyKzgwfDAsYW49dXIrNjR8MCxTbj11cis0OHwwLEhuPXVyKzMyfDAsWnQ9dXIrMTZ8MCxjdD11cixrPShrPS41KihtPSttKS8rKDB8KGZ8PTApKSk+Mj9rOjIsV2U9MTYrKDB8''@;'; + put 'put ''YVsoMz09KDMmYVsocWU9MHxhWyhsfD0wKSsoKGN8PTApPDwyKT4+Ml0pPj4yXXwwKT9xZTpxZSs0OHwwKSs0MD4+Ml0pfDAsb3Q9KGI9K19bMTYrKHFlPTB8YVtxZSsxNj4+Ml0pPj4zXSkrKG50PStfWzE2KyhWZT0wfGFbV2U+PjJdKT4+M10pLGt0PShtPStfW3FlKzU2Pj4zXSkrbnQsdz0o''@;'; + put 'put ''U3Q9K19bcWUrMjQ+PjNdKyhzdD0rX1tWZSsyND4+M10pKT49KHN0PStfW3FlKzY0Pj4zXStzdCk/MTotMSxEPStfW1ZlKzg4Pj4zXSwwfHJEKDB8WHRbcWUrNDk+PjBdLDB8WHRbcWUrODk+PjBdKSl7Y2FzZSA2NzpjYXNlIDEyOlN0PT1zdCYmKHc9MC13fDApfWZvcihIcj0zKihiK0QpLGI9''@;'; + put 'put ''MyoobStEKSxiZT1rKisoMHx3KSxnZT1idCs4fDAsT2U9YnQrMTZ8MCxMZT1idCszMnwwLFJlPWJ0KzQ4fDAsSGU9LjUqKHN0K1N0KSxWZT1idCs2NHwwLHFlPWJ0KzgwfDAsSz1idCs5NnwwLHBlPWJ0KzEwNHwwLEc9MCxNPTAsbT1ELGs9RDxIcj9EOkhyLGI9RDxiP0Q6YjshKCgwfEcpPj0o''@;'; + put 'put ''MHxmKSk7KVI9YysxfDAsYz0wfGFbbCsoYzw8Mik+PjJdLEQ9bStwLGsrPXAsYis9cCxNKz1iZSxfW2J0Pj4zXT1vdCxfW2dlPj4zXT1TdCx5dShhbixvdC0uMzMzMzMzMzMzMzMzMzMzMyprLEhyPU0rU3QpLGFbT2U+PjJdPWFbYW4+PjJdLGFbT2UrND4+Ml09YVthbis0Pj4yXSxhW09lKzg+''@;'; + put 'put ''PjJdPWFbYW4rOD4+Ml0sYVtPZSsxMj4+Ml09YVthbisxMj4+Ml0seXUoU24sRXI9bnQtRCxIciksYVtMZT4+Ml09YVtTbj4+Ml0sYVtMZSs0Pj4yXT1hW1NuKzQ+PjJdLGFbTGUrOD4+Ml09YVtTbis4Pj4yXSxhW0xlKzEyPj4yXT1hW1NuKzEyPj4yXSx5dShIbixFcixIZSksYVtSZT4+Ml09''@;'; + put 'put ''YVtIbj4+Ml0sYVtSZSs0Pj4yXT1hW0huKzQ+PjJdLGFbUmUrOD4+Ml09YVtIbis4Pj4yXSxhW1JlKzEyPj4yXT1hW0huKzEyPj4yXSx5dShadCxFcixIcj1zdC1NKSxhW1ZlPj4yXT1hW1p0Pj4yXSxhW1ZlKzQ+PjJdPWFbWnQrND4+Ml0sYVtWZSs4Pj4yXT1hW1p0Kzg+PjJdLGFbVmUrMTI+''@;'; + put 'put ''PjJdPWFbWnQrMTI+PjJdLHl1KGN0LGt0LS4zMzMzMzMzMzMzMzMzMzMzKmIsSHIpLGFbcWU+PjJdPWFbY3Q+PjJdLGFbcWUrND4+Ml09YVtjdCs0Pj4yXSxhW3FlKzg+PjJdPWFbY3QrOD4+Ml0sYVtxZSsxMj4+Ml09YVtjdCsxMj4+Ml0sX1tLPj4zXT1rdCxfW3BlPj4zXT1zdCxtPTAhPSgw''@;'; + put 'put ''fGFbOTYrKDB8YVsodz1jKzE2fDApPj4yXSk+PjJdKSYmKGZyPTA9PSgxJmFbMTE2KygwfGFbMTYrKDB8Y3IoMHxhWygzPT0oMyZhW2M+PjJdfDApP2M6Yys0OHwwKSs0MD4+Ml0pKT4+Ml0pPj4yXXwwKSxfWzU2Kyh3PTB8YVs5NisoMHxhW3c+PjJdKT4+Ml0pPj4zXT0tLjUqKEV0PStfWyhm''@;'; + put 'put ''cj93KzI0fDA6dyszMnwwKT4+M10pLUQrICtfWzE2Kyhmcj0wfGFbV2U+PjJdKT4+M10sX1t3KzY0Pj4zXT0rX1tmcisyND4+M10sZmVbdys4MT4+MF09MSxFdD5wKT9FdCttOkQsQXUoYywwfGFbKDI9PSgzJmFbYz4+Ml18MCk/YzpjKy00OHwwKSs0MD4+Ml0sYnQsNyxBKSxjPVIsRz1HKzF8''@;'; + put 'put ''MDtsZT11cn1mdW5jdGlvbiB1bGUobCxjLGYscCxtLEEpe209K20sQXw9MDt2YXIgSyxwZSxiZSxPZSxMZSxSZSxWZSxvdCxTdCxrdCxzdCxadCxjdCxidCxhbixTbixIbix1cix3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAsZ2U9MCxIZT0wLHFlPTAsbnQ9MCxXZT0wLEV0PTAsSHI9MCxF''@;'; + put 'put ''cj0wLGZyPTA7Zm9yKHVyPWxlLGxlPWxlKzE2MDgwfDAsYnQ9dXIrODB8MCxhbj11cis2NHwwLFNuPXVyKzQ4fDAsSG49dXIrMzJ8MCxadD11cisxNnwwLGN0PXVyLE9lPTE2KygwfGFbKDM9PSgzJmFbKG50PTB8YVsobHw9MCkrKChjfD0wKTw8Mik+PjJdKT4+Ml18MCk/bnQ6bnQrNDh8MCkr''@;'; + put 'put ''NDA+PjJdKXwwLFJlPShiPStfWzI0KyhudD0wfGFbbnQrMTY+PjJdKT4+M10pKyhiZT0rX1syNCsoV2U9MHxhW09lPj4yXSk+PjNdKSxWZT0oaz0rX1tudCs2ND4+M10pK2JlLGdlPShMZT0rX1tudCsxNj4+M10rKEhlPStfW1dlKzE2Pj4zXSkpPj0oSGU9K19bbnQrNTY+PjNdK0hlKT8xOi0x''@;'; + put 'put ''LE09LjUqK19bV2UrODA+PjNdLHFlPSgocWU9LjUqKHA9K3ApLysoMHwoZnw9MCkpKT4yP3FlOjIpKisoMHwoKG50PTY3PT0oMHxyRCgwfFh0W250KzQ5Pj4wXSwwfFh0W250Kzg5Pj4wXSkpKT8wLWdlfDA6Z2UpKSxnZT1idCs4fDAsbnQ9YnQrMTZ8MCxXZT1idCszMnwwLG90PWJ0KzQ4fDAs''@;'; + put 'put ''U3Q9LjUqKEhlK0xlKSxrdD1idCs2NHwwLHN0PWJ0KzgwfDAsSz1idCs5NnwwLHBlPWJ0KzEwNHwwLHA9TSx3PTAsYj1NPChiPTMqKGIrTSkpP006YixrPU08KGs9MyooaytNKSk/TTprLFI9MDshKCgwfFIpPj0oMHxmKSk7KUc9YysxfDAsRD0wfGFbbCsoYzw8Mik+PjJdLE09cCttLGIrPW0s''@;'; + put 'put ''ays9bSx3Kz1xZSxfW2J0Pj4zXT1MZSxfW2dlPj4zXT1SZSx5dShhbixIcj13K0xlLFJlLS4zMzMzMzMzMzMzMzMzMzMzKmIpLGFbbnQ+PjJdPWFbYW4+PjJdLGFbbnQrND4+Ml09YVthbis0Pj4yXSxhW250Kzg+PjJdPWFbYW4rOD4+Ml0sYVtudCsxMj4+Ml09YVthbisxMj4+Ml0seXUoU24s''@;'; + put 'put ''SHIsRXI9YmUtTSksYVtXZT4+Ml09YVtTbj4+Ml0sYVtXZSs0Pj4yXT1hW1NuKzQ+PjJdLGFbV2UrOD4+Ml09YVtTbis4Pj4yXSxhW1dlKzEyPj4yXT1hW1NuKzEyPj4yXSx5dShIbixTdCxFciksYVtvdD4+Ml09YVtIbj4+Ml0sYVtvdCs0Pj4yXT1hW0huKzQ+PjJdLGFbb3QrOD4+Ml09YVtI''@;'; + put 'put ''bis4Pj4yXSxhW290KzEyPj4yXT1hW0huKzEyPj4yXSx5dShadCxIcj1IZS13LEVyKSxhW2t0Pj4yXT1hW1p0Pj4yXSxhW2t0KzQ+PjJdPWFbWnQrND4+Ml0sYVtrdCs4Pj4yXT1hW1p0Kzg+PjJdLGFba3QrMTI+PjJdPWFbWnQrMTI+PjJdLHl1KGN0LEhyLFZlLS4zMzMzMzMzMzMzMzMzMzMz''@;'; + put 'put ''KmspLGFbc3Q+PjJdPWFbY3Q+PjJdLGFbc3QrND4+Ml09YVtjdCs0Pj4yXSxhW3N0Kzg+PjJdPWFbY3QrOD4+Ml0sYVtzdCsxMj4+Ml09YVtjdCsxMj4+Ml0sX1tLPj4zXT1IZSxfW3BlPj4zXT1WZSxwPTAhPSgwfGFbOTYrKDB8YVsoYz1EKzE2fDApPj4yXSk+PjJdKSYmKGZyPTA9PSgxJmFb''@;'; + put 'put ''MTE2KygwfGFbMTYrKDB8Y3IoMHxhWygzPT0oMyZhW0Q+PjJdfDApP0Q6RCs0OHwwKSs0MD4+Ml0pKT4+Ml0pPj4yXXwwKSxfWzY0KyhjPTB8YVs5NisoMHxhW2M+PjJdKT4+Ml0pPj4zXT0tLjUqKEV0PStfWyhmcj9jKzMyfDA6YysyNHwwKT4+M10pLU0rICtfWzI0Kyhmcj0wfGFbT2U+PjJd''@;'; + put 'put ''KT4+M10sX1tjKzU2Pj4zXT0rX1tmcisxNj4+M10sZmVbYys4MT4+MF09MSxFdD5tKT9FdCtwOk0sQXUoRCwwfGFbKDI9PSgzJmFbRD4+Ml18MCk/RDpEKy00OHwwKSs0MD4+Ml0sYnQsNyxBKSxjPUcsUj1SKzF8MDtsZT11cn1mdW5jdGlvbiByRChsLGMpe2x8PTAsY3w9MDt2YXIgZj0wO2Zv''@;'; + put 'put ''cihmPTA7Oyl7aWYoKDB8Zik+PTgpe2M9LTE7YnJlYWt9aWYoKDB8YVsyMjA0NCsoZjw8Mik+PjJdKT09KDB8Yykpe2M9ZjticmVha31mPWYrMXwwfWZvcihmPTA7Oyl7aWYoKDB8Zik+PTgpe2Y9LTE7YnJlYWt9aWYoKDB8YVsyMjA0NCsoZjw8Mik+PjJdKT09KDB8bCkpYnJlYWs7Zj1mKzF8''@;'; + put 'put ''MH1yZXR1cm4gMHwoKGZ8Y3wwKTwwPzA6MHxhWzIyMDc2KyhmPDw1KSsoYzw8Mik+PjJdKX1mdW5jdGlvbiB5dShsLGMsZil7Zj0rZixfWyhsfD0wKT4+M109Yz0rYyxfW2wrOD4+M109Zn1mdW5jdGlvbiBtTihsKXtsfD0wO3ZhciBjPTAsZj0wOzAhPSgwfGFbNDcyMDNdKXwwIT0oMHxhWzQ3''@;'; + put 'put ''MjAyXSkmJigwfChmPTB8YVsxMDArKDB8YVsoYz1sKzE2fDApPj4yXSk+PjJdKSYmMD09KDB8ZmVbZis4MT4+MF0pJiYwfHZrKGwsMSkmJm40KGY9MHxjcigwfGFbKDM9PSgzJmFbbD4+Ml18MCk/bDpsKzQ4fDApKzQwPj4yXSksMHxhWzEwMCsoMHxhW2M+PjJdKT4+Ml0pLDB8KGY9MHxhWzEw''@;'; + put 'put ''NCsoMHxhW2M+PjJdKT4+Ml0pJiYwPT0oMHxmZVtmKzgxPj4wXSkmJjB8dmsobCwwKSYmbjQoZj0wfGNyKDB8YVsoMz09KDMmYVtsPj4yXXwwKT9sOmwrNDh8MCkrNDA+PjJdKSwwfGFbMTA0KygwfGFbYz4+Ml0pPj4yXSkpfWZ1bmN0aW9uIHZrKGwsYyl7Y3w9MDt2YXIgRyxmPTAscD0wLG09''@;'; + put 'put ''MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsSz0wO0c9bGUsbGU9bGUrOTZ8MCxEPUcrMzJ8MCxrPUcrMTZ8MCxNPUcsQT0xNisobHw9MCl8MDtkb3tpZig2IT0oMHxmZVsxMTIrKDB8YVtBPj4yXSk+PjBdKSl7aWYoMD09KDB8KGY9MHxhWzQ3MjAzXSkpfHwwPT0oMHxmZVsoMHxIbyhs''@;'; + put 'put ''LGYpKT4+MF0pKXtpZighKGY9MHxhWzQ3MjAyXSkpe2Y9MDticmVha31pZighKDB8ZmVbKDB8SG8obCxmKSk+PjBdKSl7Zj0wO2JyZWFrfX1pZihSPTB8YVtBPj4yXSxSPTB8YVsoKGM9Yzw8MjQ+PjI0PT0wKT9SKzEwNHwwOlIrMTAwfDApPj4yXSxmPTB8VDcobCkpe2I9MHxhW2Y+PjJdO2Rv''@;'; + put 'put ''e2lmKGMpe2lmKDB8YVtiKzg+PjJdKXt3PStfWyhmPTB8YVtiPj4yXSk+PjNdLG09K19bYisxNj4+M10sZj1mKzh8MCxwPStfW2IrMjQ+PjNdO2JyZWFrfWZvcihtPStfWyhmPTB8YVtiPj4yXSk+PjNdLHA9K19bZis4Pj4zXSxmPTA7NCE9KDB8Zik7KWFbKE09RCsoZjw8NCl8MCk+PjJdPWFb''@;'; + put 'put ''KEE9KDB8YVtiPj4yXSkrKGY8PDQpfDApPj4yXSxhW00rND4+Ml09YVtBKzQ+PjJdLGFbTSs4Pj4yXT1hW0ErOD4+Ml0sYVtNKzEyPj4yXT1hW0ErMTI+PjJdLGY9ZisxfDA7d3UoayxELDMsLjEsMCwwKSx3PStfW2s+PjNdLGY9ays4fDB9ZWxzZXtpZihBPWIrKDQ4KihjPSgwfGFbZis0Pj4y''@;'; + put 'put ''XSktMXwwKXwwKXwwLDB8YVtiKyg0OCpjfDApKzEyPj4yXSl7dz0rX1soRD0wfGFbQT4+Ml0pKygoZj0oMHxhW2IrKDQ4KmN8MCkrND4+Ml0pLTF8MCk8PDQpPj4zXSxtPStfW2IrKDQ4KmN8MCkrMzI+PjNdLGY9RCsoZjw8NCkrOHwwLHA9K19bYisoNDgqY3wwKSs0MD4+M107YnJlYWt9Zm9y''@;'; + put 'put ''KG09K19bKGs9MHxhW0E+PjJdKSsoKGY9KDB8YVsoYz1iKyg0OCpjfDApKzR8MCk+PjJdKS0xfDApPDw0KT4+M10scD0rX1trKyhmPDw0KSs4Pj4zXSxmPTA7NCE9KDB8Zik7KWFbKGs9RCsoZjw8NCl8MCk+PjJdPWFbKGI9KDB8YVtBPj4yXSkrKGYrLTQrKDB8YVtjPj4yXSk8PDQpfDApPj4y''@;'; + put 'put ''XSxhW2srND4+Ml09YVtiKzQ+PjJdLGFbays4Pj4yXT1hW2IrOD4+Ml0sYVtrKzEyPj4yXT1hW2IrMTI+PjJdLGY9ZisxfDA7d3UoTSxELDMsLjksMCwwKSx3PStfW00+PjNdLGY9TSs4fDB9fXdoaWxlKDApO0s9K1VsKCsoK19bZj4+M10tcCksKyh3LW0pKSxLPS4wMTc0NTMyOTI1MTk5NDMy''@;'; + put 'put ''OTUqK01sKGwsMHxhWzQ3MjAzXSwtMjUsLTE4MCkrSyx3PTEwKitNbChsLDB8YVs0NzIwMl0sMSwwKSxfW1IrNTY+PjNdPXcqK2hhKCtLKSttLF9bUis2ND4+M109K0RhKCtLKSp3K3AsZmVbUis4MT4+MF09MSxmPTF9ZWxzZSBmPTB9ZWxzZSBmPTB9d2hpbGUoMCk7cmV0dXJuIGxlPUcsMHxm''@;'; + put 'put ''fWZ1bmN0aW9uIFQ3KGwpe3ZhciBwLEEsYz0wLGY9MCxtPTA7Zm9yKEE9bGUsbGU9bGUrMTZ8MCxwPUEsYz1sfD0wOyEoMHwoYz0wfGFbOCsoZj0wfGFbYysxNj4+Ml0pPj4yXSkpOyl7aWYoISgwfGZlW2YrMTEyPj4wXSkpe209NTticmVha31jPTB8YVtmKzExNj4+Ml19cmV0dXJuIDU9PSgw''@;'; + put 'put ''fG0pJiYobT0wfHRpKDB8YVsoMz09KDMmYVtsPj4yXXwwKT9sOmwrNDh8MCkrNDA+PjJdKSxjPTB8dGkoMHxhWygyPT0oMyZhW2w+PjJdfDApP2w6bCstNDh8MCkrNDA+PjJdKSxhW3A+PjJdPW0sYVtwKzQ+PjJdPWMsJHIoMSwxMDY1NzkscCksYz0wKSxsZT1BLDB8Y31mdW5jdGlvbiB1Sihs''@;'; + put 'put ''LGMsZil7bHw9MDt2YXIgcCxtLEEsdyxiLGssTSxELFIsSyxwZSxnZSxiZSxHPTA7cGU9bGUsbGU9bGUrOTZ8MCxrPXBlKzgwfDAsTT1wZSs2NHwwLEQ9cGUrNDh8MCxLPXBlLGI9MHxpdFsxMzYrKDB8YVsxNisoY3w9MCk+PjJdKT4+MV0sZnVuY3Rpb24gY0oobCxjLGYpe2N8PTAsZnw9MDt2''@;'; + put 'put ''YXIgbSxBLHcscD0wLGI9MCxrPTAsTT0wO3c9bGUsbGU9bGUrMzJ8MCxtPXcscD0wfGFbKGs9MHxhWyhsfD0wKT4+Ml0pPj4yXSxiPTB8YVtrKzg+PjJdLGFbKEE9dysxNnwwKT4+Ml09YVsoTT1rKzE2fDApPj4yXSxhW0ErND4+Ml09YVtNKzQ+PjJdLGFbQSs4Pj4yXT1hW00rOD4+Ml0sYVtB''@;'; + put 'put ''KzEyPj4yXT1hW00rMTI+PjJdLGFbbT4+Ml09YVsoaz1rKzMyfDApPj4yXSxhW20rND4+Ml09YVtrKzQ+PjJdLGFbbSs4Pj4yXT1hW2srOD4+Ml0sYVttKzEyPj4yXT1hW2srMTI+PjJdLGI/KGFbYz4+Ml09YVtBPj4yXSxhW2MrND4+Ml09YVtBKzQ+PjJdLGFbYys4Pj4yXT1hW0ErOD4+Ml0s''@;'; + put 'put ''YVtjKzEyPj4yXT1hW0ErMTI+PjJdKTooYVtjPj4yXT1hW3A+PjJdLGFbYys0Pj4yXT1hW3ArND4+Ml0sYVtjKzg+PjJdPWFbcCs4Pj4yXSxhW2MrMTI+PjJdPWFbcCsxMj4+Ml0pLHA9MHxhWyhiPTB8YVtsPj4yXSkrKDQ4KihrPSgwfGFbbCs0Pj4yXSktMXwwKXwwKT4+Ml0sbD0wfGFbYiso''@;'; + put 'put ''NDgqa3wwKSs0Pj4yXSxNPTB8YVtiKyg0OCprfDApKzEyPj4yXSxhW0E+PjJdPWFbKGM9YisoNDgqa3wwKSsxNnwwKT4+Ml0sYVtBKzQ+PjJdPWFbYys0Pj4yXSxhW0ErOD4+Ml09YVtjKzg+PjJdLGFbQSsxMj4+Ml09YVtjKzEyPj4yXSxhW20+PjJdPWFbKGs9YisoNDgqa3wwKSszMnwwKT4+''@;'; + put 'put ''Ml0sYVttKzQ+PjJdPWFbays0Pj4yXSxhW20rOD4+Ml09YVtrKzg+PjJdLGFbbSsxMj4+Ml09YVtrKzEyPj4yXSxNPyhhW2Y+PjJdPWFbbT4+Ml0sYVtmKzQ+PjJdPWFbbSs0Pj4yXSxhW2YrOD4+Ml09YVttKzg+PjJdLGFbZisxMj4+Ml09YVttKzEyPj4yXSk6KGFbZj4+Ml09YVsoTT1wKyhs''@;'; + put 'put ''Ky0xPDw0KXwwKT4+Ml0sYVtmKzQ+PjJdPWFbTSs0Pj4yXSxhW2YrOD4+Ml09YVtNKzg+PjJdLGFbZisxMj4+Ml09YVtNKzEyPj4yXSksbGU9d30oMHxhWzgrKDB8YVsoYz0xNisoZnw9MCl8MCk+PjJdKT4+Ml0sUj1wZSszMnwwLEc9cGUrMTZ8MCksZ2U9KHA9K19bUj4+M10pLShtPStfW0c+''@;'; + put 'put ''PjNdKSxiZT0oQT0rX1tSKzg+PjNdKS0odz0rX1tHKzg+PjNdKTtlOmRve2lmKGJlKmJlK2dlKmdlPDFlLTYpYVtEPj4yXT1hW1I+PjJdLGFbRCs0Pj4yXT1hW1IrND4+Ml0sYVtEKzg+PjJdPWFbUis4Pj4yXSxhW0QrMTI+PjJdPWFbUisxMj4+Ml07ZWxzZSBzd2l0Y2goMTQmYil7Y2FzZSA0''@;'; + put 'put ''OmNhc2UgMTA6X1tNPj4zXT0uNSoobStwKSxfW00rOD4+M109LjUqKHcrQSksRz0wfGFbOCsoMHxhW2M+PjJdKT4+Ml0sYVtrPj4yXT1hW00+PjJdLGFbays0Pj4yXT1hW00rND4+Ml0sYVtrKzg+PjJdPWFbTSs4Pj4yXSxhW2srMTI+PjJdPWFbTSsxMj4+Ml0saEQoSyxHLGspLGFbRD4+Ml09''@;'; + put 'put ''YVtLPj4yXSxhW0QrND4+Ml09YVtLKzQ+PjJdLGFbRCs4Pj4yXT1hW0srOD4+Ml0sYVtEKzEyPj4yXT1hW0srMTI+PjJdO2JyZWFrIGU7ZGVmYXVsdDpjbGUoRCwwfGFbOCsoMHxhW2M+PjJdKT4+Ml0sUixHKTticmVhayBlfX13aGlsZSgwKTthW2w+PjJdPWFbRD4+Ml0sYVtsKzQ+PjJdPWFb''@;'; + put 'put ''RCs0Pj4yXSxhW2wrOD4+Ml09YVtEKzg+PjJdLGFbbCsxMj4+Ml09YVtEKzEyPj4yXSxsZT1wZX1mdW5jdGlvbiBjbGUobCxjLGYscCl7bHw9MCxmfD0wLHB8PTA7dmFyIGdlLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLEs9MCxwZT0wLGJlPTA7Zm9yKGdlPTB8YVs0Kyhj''@;'; + put 'put ''fD0wKT4+Ml0sQT0wLG09MDshKCgwfG0pPj0oMHxnZSkpOyl7Zm9yKGs9MHxhWyhNPTB8YVtjPj4yXSkrKDQ4Km18MCk+PjJdLE09MHxhW00rKDQ4Km18MCkrND4+Ml0sdz0zLGI9MDshKCgwfHcpPj0oMHxNKSk7KXBlPStfW2srKGI8PDQpPj4zXS0rX1trKyh3PDw0KT4+M10sSz0rX1trKyhi''@;'; + put 'put ''PDw0KSs4Pj4zXS0rX1trKyh3PDw0KSs4Pj4zXSx3PXcrM3wwLGI9YiszfDAsQT0rRDAoKyhLKksrcGUqcGUpKStBO209bSsxfDB9TT0wLEEqPS41O2U6Zm9yKDs7KXtpZigoMHxNKT49KDB8Z2UpKXttPTE1O2JyZWFrfWZvcihiPTB8YVsoaz0wfGFbYz4+Ml0pKyg0OCpNfDApPj4yXSxrPTB8''@;'; + put 'put ''YVtrKyg0OCpNfDApKzQ+PjJdLG09Myx3PTA7ISgoMHxtKT49KDB8aykpOyl7aWYoKHBlPStEMCgrKChiZT0oSz0rX1tiKyh3PDw0KSs4Pj4zXSktKEc9K19bYisobTw8NCkrOD4+M10pKSpiZSsocGU9KEQ9K19bYisodzw8NCk+PjNdKS0oUj0rX1tiKyhtPDw0KT4+M10pKSpwZSkpKT49QSl7''@;'; + put 'put ''bT0xMjticmVhayBlfW09bSszfDAsdz13KzN8MCxBLT1wZX1NPU0rMXwwfWlmKDEyPT0oMHxtKSlyZXR1cm4gX1tmPj4zXT1ELF9bZis4Pj4zXT1LLF9bcD4+M109UixfW3ArOD4+M109RyxfW2w+PjNdPSgoYmU9cGUtQSkqRCtSKkEpL3BlLHZvaWQoX1tsKzg+PjNdPShiZSpLK0cqQSkvcGUp''@;'; + put 'put ''OzE1PT0oMHxtKSYmUHIoMTM4NzEyLDEwNjUxNCwxMzE2LDEwNjY0MSl9ZnVuY3Rpb24gdGcobCxjLGYscCl7bU4oY3w9MCl9ZnVuY3Rpb24gZmxlKGwsYyxmLHAsbSl7Y3w9MCxmPStmLHB8PTAsbXw9MDt2YXIgV2Usb3QsU3Qsa3Qsc3QsRXQsWnQsY3QsQT0wLHc9MCxiPTAsaz0wLE09MCxE''@;'; + put 'put ''PTAsUj0wLEc9MCxLPTAscGU9MCxnZT0wLGJlPTAsT2U9MCxMZT0wLFJlPTAsSGU9MCxWZT0wLHFlPTAsbnQ9MCxidD0wO2ZvcihadD0wfGZ1bmN0aW9uIGhsZShsKXtsfD0wO3ZhciBtLEEsdyxiLGssTSxELFIsRyxLLHBlLGM9MCxmPTAscD0wLGdlPTAsYmU9MCxPZT0wO3BlPWxlLGxlPWxl''@;'; + put 'put ''KzE0NHwwLGI9cGUrMTI4fDAsdz1wZSsxMTJ8MCxrPXBlKzk2fDAsTT1wZSs2NHwwLEQ9cGUsUj1wZSs4MHwwLEc9MHxmdW5jdGlvbiBmSigpe3ZhciBsO3JldHVybiBsPTB8dnIoMTIpLGFbbCs0Pj4yXT0wLGFbbCs4Pj4yXT0yZTMsYVtsPj4yXT0wfHZyKDEyOGUzKSwwfGx9KCksSz0wfGFb''@;'; + put 'put ''bCs0Pj4yXSxhW2I+PjJdPWFbKG09MHxhW2w+PjJdKT4+Ml0sYVtiKzQ+PjJdPWFbbSs0Pj4yXSxhW2IrOD4+Ml09YVttKzg+PjJdLGFbYisxMj4+Ml09YVttKzEyPj4yXSxoSihHLGIsMCksYVsoQT1EKzQ4fDApPj4yXT1hW20+PjJdLGFbQSs0Pj4yXT1hW20rND4+Ml0sYVtBKzg+PjJdPWFb''@;'; + put 'put ''bSs4Pj4yXSxhW0ErMTI+PjJdPWFbbSsxMj4+Ml0sZj0wLGM9MDtlOmZvcig7cD1mKzN8MCwhKCgwfHApPj0oMHxLKSk7KXtmb3IoYVtEPj4yXT1hW0E+PjJdLGFbRCs0Pj4yXT1hW0ErND4+Ml0sYVtEKzg+PjJdPWFbQSs4Pj4yXSxhW0QrMTI+PjJdPWFbQSsxMj4+Ml0sbD0xOzQhPSgwfGwp''@;'; + put 'put ''OylhWyhnZT1EKyhsPDw0KXwwKT4+Ml09YVsoYmU9bSsobCtmPDw0KXwwKT4+Ml0sYVtnZSs0Pj4yXT1hW2JlKzQ+PjJdLGFbZ2UrOD4+Ml09YVtiZSs4Pj4yXSxhW2dlKzEyPj4yXT1hW2JlKzEyPj4yXSxsPWwrMXwwO2ZvcihhW2s+PjJdPWFbRD4+Ml0sYVtrKzQ+PjJdPWFbRCs0Pj4yXSxh''@;'; + put 'put ''W2srOD4+Ml09YVtEKzg+PjJdLGFbaysxMj4+Ml09YVtEKzEyPj4yXSxsPTE7Oyl7aWYoMjE9PSgwfGwpKXtmPXA7Y29udGludWUgZX13dShSLEQsMywuMDUqKygwfGwpLDAsMCksYVtNPj4yXT1hW1I+PjJdLGFbTSs0Pj4yXT1hW1IrND4+Ml0sYVtNKzg+PjJdPWFbUis4Pj4yXSxhW00rMTI+''@;'; + put 'put ''PjJdPWFbUisxMj4+Ml0sYVt3Pj4yXT1hW2s+PjJdLGFbdys0Pj4yXT1hW2srND4+Ml0sYVt3Kzg+PjJdPWFbays4Pj4yXSxhW3crMTI+PjJdPWFbaysxMj4+Ml0sYVtiPj4yXT1hW1I+PjJdLGFbYis0Pj4yXT1hW1IrND4+Ml0sYVtiKzg+PjJdPWFbUis4Pj4yXSxhW2IrMTI+PjJdPWFbUisx''@;'; + put 'put ''Mj4+Ml0sT2U9K3BsZSh3LGIpK2MsYVtiPj4yXT1hW00+PjJdLGFbYis0Pj4yXT1hW00rND4+Ml0sYVtiKzg+PjJdPWFbTSs4Pj4yXSxhW2IrMTI+PjJdPWFbTSsxMj4+Ml0saEooRyxiLE9lKSxhW2s+PjJdPWFbTT4+Ml0sYVtrKzQ+PjJdPWFbTSs0Pj4yXSxhW2srOD4+Ml09YVtNKzg+PjJd''@;'; + put 'put ''LGFbaysxMj4+Ml09YVtNKzEyPj4yXSxsPWwrMXwwLGM9T2V9fXJldHVybiBmdW5jdGlvbiBnbGUobCl7dmFyIGM7KDB8YVs4KyhsfD0wKT4+Ml0pPigwfChjPTB8YVtsKzQ+PjJdKSkmJihhW2w+PjJdPTB8VjAoMHxhW2w+PjJdLGM8PDYpKX0oRyksbGU9cGUsMHxHfShsfD0wKSxXZT0rX1so''@;'; + put 'put ''Y3Q9MHxhW1p0Pj4yXSkrKChzdD0oRXQ9MHxhW1p0KzQ+PjJdKS0xfDApPDw2KSsxNj4+M10sb3Q9KygwfEV0KSxTdD0yPT0oMHxtKSxrdD0wIT0oMHxwKSxEPTAsdz0wLEE9MCxrPTAsTT0wOyEoKDB8RCk+PSgwfEV0KSk7KXtsPX5+K2lEKCsoRCstMXwwKSxvdCksYnQ9fn4raUQoKygwfChu''@;'; + put 'put ''dD1EKzF8MCkpLG90KSxiZT0rX1soZ2U9Y3QrKEQ8PDYpKzE2fDApPj4zXSxPZT1jdCsoRDw8NikrMjR8MCxMZT1jdCsoRDw8NikrMzJ8MCxSZT1jdCsoRDw8NikrNDB8MCxIZT1jdCsoRDw8NikrNDh8MCxWZT1jdCsoRDw8NikrNTZ8MCxiPSt2TigrX1tjdCsoYnQ8PDYpKzg+PjNdLShrPStf''@;'; + put 'put ''WyhxZT1jdCsoRDw8NikrOHwwKT4+M10pLCtfW2N0KyhidDw8Nik+PjNdLShNPStfWyhSPWN0KyhEPDw2KXwwKT4+M10pKSxLPSt2TigrX1tjdCsobDw8NikrOD4+M10taywrX1tjdCsobDw8Nik+PjNdLU0pLHBlPStzd1s3JmNdKGJlLFdlLGYpLGw9MD09KDB8RCk7ZG97aWYobHwoMHxEKT09''@;'; + put 'put ''KDB8c3QpKXtpZihsKXtpZihBPWIrMS41NzA3OTYzMjY3OTQ4OTY2LCFTdCl7bD0wLEc9QSx3PXBlO2JyZWFrfWw9MCxHPUEsdz1wZSxrLT0rRGEoK2IpKnBlLE0tPStoYSgrYikqcGU7YnJlYWt9aWYoQT1LKy0xLjU3MDc5NjMyNjc5NDg5NjYsIVN0KXtsPTAsRz1BLHc9cGU7YnJlYWt9bD0w''@;'; + put 'put ''LEc9QSx3PXBlLGstPStEYSgrSykqcGUsTS09K2hhKCtLKSpwZTticmVha31iPShHPTEuNTcwNzk2MzI2Nzk0ODk2Ni0uNSooKEc9Yi1LKTwwP0crNi4yODMxODUzMDcxNzk1ODY6RykpKyhBPWIrMS41NzA3OTYzMjY3OTQ4OTY2KSxrdHwodz0wPT0odz0raGEoK0cpKT8wOnBlL3cpPjEwKnBl''@;'; + put 'put ''PyhLPStpRChLKy0xLjU3MDc5NjMyNjc5NDg5NjYsNi4yODMxODUzMDcxNzk1ODYpLGw9MSxHPStpRChBLDYuMjgzMTg1MzA3MTc5NTg2KSx3PXBlLEE9Syk6KGw9MCxHPWIsQT1iKX13aGlsZSgwKTtfW1I+PjNdPU0sX1txZT4+M109ayxfW2dlPj4zXT1iZSxmZVtPZT4+MF09MTA4LF9bTGU+''@;'; + put 'put ''PjNdPUEsX1tSZT4+M109dyxhW0hlPj4yXT1sLF9bVmU+PjNdPUcsRD1udH1mb3IoUj0wfHZyKDEyKSxsPTA7ISgoMHxsKT49KDB8RXQpKTspTT0rX1tjdCsobDw8Nik+PjNdLGs9K19bY3QrKGw8PDYpKzg+PjNdLHc9K19bY3QrKGw8PDYpKzQwPj4zXSxidD0wfGFbY3QrKGw8PDYpKzQ4Pj4y''@;'; + put 'put ''XSxiPStfW2N0KyhsPDw2KSs1Nj4+M10sSTcoUiwraGEoKyhBPStfW2N0KyhsPDw2KSszMj4+M10pKSp3K00sK0RhKCtBKSp3K2spLDB8YnQmJkFOKE0sayx3LDEsQSxiLHAsUiksbD1sKzF8MDtmb3IoYj1BKzMuMTQxNTkyNjUzNTg5NzkzLChEPTE9PSgwfG0pKT95TihSLE0sayx3LEEsYik6''@;'; + put 'put ''KEk3KFIsK2hhKCtiKSp3K00sK0RhKCtiKSp3K2spLEE9YiksbD1FdCstMnwwLGI9TTshKCgwfGwpPD0tMSk7KU09K19bY3QrKGw8PDYpPj4zXSxrPStfW2N0KyhsPDw2KSs4Pj4zXSx3PStfW2N0KyhsPDw2KSs0MD4+M10sYnQ9MHxhW2N0KyhsPDw2KSs0OD4+Ml0sQT0rX1tjdCsobDw8Nikr''@;'; + put 'put ''MzI+PjNdKzMuMTQxNTkyNjUzNTg5NzkzLEk3KFIsK2hhKCsoYj0rX1tjdCsobDw8NikrNTY+PjNdKzMuMTQxNTkyNjUzNTg5NzkzKSkqdytNLCtEYSgrYikqdytrKSwwfGJ0JiZBTihNLGssdywwLEEsYixwLFIpLGw9bCstMXwwLGI9TTtyZXR1cm4gRCYmeU4oUixiLGssdyxBLEErMy4xNDE1''@;'; + put 'put ''OTI2NTM1ODk3OTMpLGZ1bmN0aW9uIGRsZShsKXtGdCgwfGFbKGx8PTApPj4yXSksRnQobCl9KFp0KSwwfFJ9ZnVuY3Rpb24gaUQobCxjKXt2YXIgZjtyZXR1cm4gZj0obD0rbCktK2NmKCtsLyhjPStjKSkqYywrKCEobDwwKSYhKGw+PWMpP2w6Zil9ZnVuY3Rpb24gdk4obCxjKXtyZXR1cm4g''@;'; + put 'put ''MD09KGw9K2wpJjA9PShjPStjKT9sPTA6KGw9K1VsKCtsLCtjKSk+PTB8fChsKz02LjI4MzE4NTMwNzE3OTU4NiksK2x9ZnVuY3Rpb24gSTcobCxjLGYpe2M9K2MsZj0rZjt2YXIgcD0wLG09MDsoMHwocD0wfGFbKGx8PTApPj4yXSkpPCgwfGFbKG09bCs0fDApPj4yXSk/bT0wfGFbbCs4Pj4y''@;'; + put 'put ''XTooYVttPj4yXT0yZTMsbT0wfFYwKDB8YVsocD1sKzh8MCk+PjJdLDMyZTMpLGFbcD4+Ml09bSxwPTB8YVtsPj4yXSksYVtsPj4yXT1wKzEsX1ttKyhwPDw0KT4+M109YyxfW20rKHA8PDQpKzg+PjNdPWZ9ZnVuY3Rpb24gQU4obCxjLGYscCxtLEEsdyxiKXt2YXIgaztsPStsLGM9K2MsZj0r''@;'; + put 'put ''ZixtPSttLEE9K0Esd3w9MCxifD0wLGs9KHA9MD09KDB8KHB8PTApKSk/bTpBO2Rve2lmKDE9PSgwfHcpKXtpZigobT0obT0ocD9BOm0pLWspPD0uMDAxNzQ1MzI5MjUxOTk0MzI5Nj9tKzYuMjgzMTg1MzA3MTc5NTg2Om0pPDMuMTQxNTkyNjUzNTg5NzkzKXt5TihiLGwsYyxmLG0rayxrKTti''@;'; + put 'put ''cmVha31JNyhiLCtoYSgraykqZitsLCtEYSgraykqZitsKTticmVha31JNyhiLCtoYSgraykqZitsLCtEYSgraykqZitsKX13aGlsZSgwKX1mdW5jdGlvbiB5TihsLGMsZixwLG0sQSl7Yz0rYyxmPStmLHA9K3AsQT0rQTt2YXIgdz0wLGI9MDtJNyhsfD0wLCtoYSgrKG09K20pKSpwK2MsK0Rh''@;'; + put 'put ''KCttKSpwK2YpO2U6ZG97aWYoMCE9cCl7Zm9yKDtBPm07KUErPS02LjI4MzE4NTMwNzE3OTU4Njtmb3IoQT1tLUE7QT42LjI4MzE4NTMwNzE3OTU4NjspQSs9LTYuMjgzMTg1MzA3MTc5NTg2O2ZvcihBKj0uMDUyNjMxNTc4OTQ3MzY4NDIsdz0xOzspe2lmKDIwPT0oMHx3KSlicmVhayBlO0k3''@;'; + put 'put ''KGwsK2hhKCsoYj1tLUEqKygwfHcpKSkqcCtjLCtEYSgrYikqcCtmKSx3PXcrMXwwfX19d2hpbGUoMCl9ZnVuY3Rpb24gaEoobCxjLGYpe2N8PTAsZj0rZjt2YXIgbSxBLHcscD0wOygwfChwPTB8YVsodz00KyhsfD0wKXwwKT4+Ml0pKTwoMHwoQT0wfGFbKG09bCs4fDApPj4yXSkpP2w9MHxh''@;'; + put 'put ''W2w+PjJdOihhW20+PjJdPUE8PDEscD0wfFYwKDB8YVtsPj4yXSxBPDw3KSxhW2w+PjJdPXAsbD1wLHA9MHxhW3c+PjJdKSxfW2wrKHA8PDYpPj4zXT0rX1tjPj4zXSxfW2wrKHA8PDYpKzg+PjNdPStfW2MrOD4+M10sYVt3Pj4yXT1wKzEsX1tsKyhwPDw2KSsxNj4+M109Zn1mdW5jdGlvbiBw''@;'; + put 'put ''bGUobCxjKXt2YXIgZixwO3JldHVybisgK0QwKCsoKHA9K19bOCsobHw9MCk+PjNdLStfWzgrKGN8PTApPj4zXSkqcCsoZj0rX1tsPj4zXS0rX1tjPj4zXSkqZikpfWZ1bmN0aW9uIG9EKGwsYyxmKXtsfD0wLGN8PTAsZnw9MDt2YXIgQSx3LGIsTSxwPTAsbT0wLGs9MDtNPWxlLGxlPWxlKzE2''@;'; + put 'put ''fDAsaz1NKzh8MCxiPU0sYVsoQT1NKzEyfDApPj4yXT0wLCh3PTB8YVtmKzQ+PjJdKXx8UHIoMTA2NjU4LDEwNjY2OSwyMDMsMTA2NjgwKSwocD0wfGFbdz4+Ml0pfHxQcigxMDY2OTQsMTA2NjY5LDIwNiwxMDY2ODApLDB8YVsobT13Kzh8MCk+PjJdfHwoYVttPj4yXT0wfGZ1bmN0aW9uIG1s''@;'; + put 'put ''ZShsKXtsfD0wO3ZhciBjO3JldHVybiAwIT0oMHwoYz0wfGFbNDczMDFdKSkmJjA9PSgwfHkwKGMsbCkpP2w9MHxhWzQ3MzEwXTooRnQoYyksYVs0NzMwMV09MHxyYShsKSxsPTB8dHcoMTg5MjA0LDIyMzMyLDM1LDM2LDk1KSxhWzQ3MzEwXT1sKSwwfGx9KHApKSwoMHxmdW5jdGlvbiBIUihs''@;'; + put 'put ''LGMsZil7dmFyIHA9MDtyZXR1cm4gMHwoMCE9KDB8KGw9MHxhWzE0OCsobHw9MCk+PjJdKSkmJjAhPSgwfChwPTB8YVtsPj4yXSkpPzB8QmlbMTI3JnBdKGN8PTAsZnw9MCk6MCl9KGMsZixwPTApKTw8MjQ+PjI0fHxmdW5jdGlvbiB2bGUobCxjKXtjfD0wO3ZhciBBLGY9MCxwPTAsbT0wLHc9''@;'; + put 'put ''MCxiPTA7aWYoZj0wfGFbKHc9MHxhWzQrKGx8PTApPj4yXSk+PjJdLEE9K19bdysxNj4+M10sX1sodz1sKzMyfDApPj4zXT0wLF9bbCs0MD4+M109MS4yKkEsX1tsKzE2Pj4zXT0wLF9bbCsyND4+M109LjEqQSxhW2wrOD4+Ml09MCxhW2wrMTI+PjJdPTAsMHxsNChmLDEwNjc3MSw0KT8wIT0o''@;'; + put 'put ''MHxsNChmLDEwNjc3Niw1KSkmJjAhPSgwfGw0KGYsMTA2NzgyLDkpKT8obT00MjQ4LGY9MTA2NzkyKToobT04MzQ0LGY9MTA2ODI4KToobT02Mjk2LGY9MTA2ODA5KSwwfGMmJihhW2M+PjJdPWYpLDB8KGY9MHxhW2w+PjJdKSl7Zm9yKHA9MDsobD0wfGZlW2Y+PjBdKTw8MjQ+PjI0OylfW3c+''@;'; + put 'put ''PjNdPWI9cCsgK19bbSsoKDI1NSZsKTw8Myk+PjNdLGY9ZisxfDAscD1iO19bdz4+M109cCpBfX0oZixwKTtkb3tpZigwfHApe2lmKGM9MHxhWzE1NzEyXSxwPTB8YVt3Pj4yXSxtPTB8YVtBPj4yXSl7YVtiPj4yXT1wLGFbYis0Pj4yXT1tLFQwKGMsMTA2NzA1LGIpO2JyZWFrfWFbaz4+Ml09''@;'; + put 'put ''cCxUMChjLDEwNjczNyxrKTticmVha319d2hpbGUoMCk7YVtsPj4yXT1hWyhrPWYrMzJ8MCk+PjJdLGFbbCs0Pj4yXT1hW2srND4+Ml0sYVtsKzg+PjJdPWFbays4Pj4yXSxhW2wrMTI+PjJdPWFbaysxMj4+Ml0sbGU9TX1mdW5jdGlvbiBsRChsKXt2YXIgYyxmO3JldHVybiBsfD0wLGM9MHx2''@;'; + put 'put ''cigxNiksZj0wfHZyKChsPSgwfGwpPjI/bDoyKTw8MiksYVtjPj4yXT1mLGFbYysxMj4+Ml09ZixhW2MrOD4+Ml09ZixhW2MrND4+Ml09ZisobDw8MiksMHxjfWZ1bmN0aW9uIGRKKGwpe0Z0KDB8YVsobHw9MCk+PjJdKSxGdChsKX1mdW5jdGlvbiBENyhsLGMpe3ZhciBmLHA7Y3w9MCxhWyhm''@;'; + put 'put ''PTEyKyhsfD0wKXwwKT4+Ml09NCsocD0wfGFbZj4+Ml0pLGFbcD4+Ml09YywoMHxhW2Y+PjJdKT4+PjA+PSgwfGFbbCs0Pj4yXSk+Pj4wJiYoYVtmPj4yXT1hW2w+PjJdKX1mdW5jdGlvbiBzRChsKXt2YXIgZixjPTAscD0wO3JldHVybigwfChjPTB8YVsoZj04KyhsfD0wKXwwKT4+Ml0pKSE9''@;'; + put 'put ''KDB8YVtsKzEyPj4yXSk/KGFbZj4+Ml09cD1jKzR8MCxjPTB8YVtjPj4yXSxwPj4+MD49KDB8YVtsKzQ+PjJdKT4+PjAmJihhW2Y+PjJdPWFbbD4+Ml0pKTpjPTAsMHxjfWZ1bmN0aW9uIGVzKGwsYyxmLHApe2Z8PTAscHw9MDt2YXIgbSx3LEE9MDtyZXR1cm4gdz1sZSxsZT1sZSsxNnwwLG09''@;'; + put 'put ''dywwIT0oMHwoY3w9MCkpJiYwIT0oMHwoQT0wfEhvKGx8PTAsYykpKSYmMCE9KDB8ZmVbQT4+MF0pJiYoYz0wfF9MKEEsbSwxMCksZj0oMHxBKT09KDB8YVttPj4yXSk/ZjooMHxjKTwoMHxwKT9wOmMpLGxlPXcsMHxmfWZ1bmN0aW9uIE1sKGwsYyxmLHApe2Y9K2YscD0rcDt2YXIgbSx3LEE9''@;'; + put 'put ''MCxiPTA7cmV0dXJuIHc9bGUsbGU9bGUrMTZ8MCxtPXcsMCE9KDB8KGx8PTApKSYwIT0oMHwoY3w9MCkpJiYwIT0oMHwoQT0wfEhvKGwsYykpKSYmMCE9KDB8ZmVbQT4+MF0pJiYoYj0raTMoQSxtKSxmPSgwfEEpPT0oMHxhW20+PjJdKT9mOmI8cD9wOmIpLGxlPXcsK2Z9ZnVuY3Rpb24gX04o''@;'; + put 'put ''bCl7bHw9MDt2YXIgYz0wO3JldHVybihjPStfWzIzMjkzXSk+MHx8KGM9MD09KGM9K01sKGwsMHxzaShsLDAsMTA3NjM4LDApLC0xLDApKT83MjpjKSwrY31mdW5jdGlvbiB2MihsLGMsZil7cmV0dXJuIGZ8PTAsMCE9KDB8KGx8PTApKSYwIT0oMHwoY3w9MCkpJiYoZj0wfEhvKGwsYykpLDB8''@;'; + put 'put ''Zn1mdW5jdGlvbiBCYShsLGMsZil7cmV0dXJuIDAhPSgwfChsPTB8djIobHw9MCxjfD0wLGZ8PTApKSkmJjAhPSgwfGZlW2w+PjBdKSYmKGY9bCksMHxmfWZ1bmN0aW9uIHBKKGwsYyxmKXtyZXR1cm4gbHw9MCxmfD0wLDB8KChjfD0wKT8wfHQxKDB8SG8obCxjKSk6MjU1JmYpfWZ1bmN0aW9u''@;'; + put 'put ''IHQxKGwpe3JldHVybiAwfG5nKGx8PTAsMCl9ZnVuY3Rpb24gbmcobCxjKXtjfD0wO3ZhciBmPTA7cmV0dXJuIDAhPSgwfChsfD0wKSkmJihmPTB8ZmVbbD4+MF0pPDwyND4+MjQhPTAmJigwIT0oMHx5MChsLDEzNzMwOCkpJiYwIT0oMHx5MChsLDEwNzY0OSkpPzAhPSgwfHkwKGwsMTA3NjUy''@;'; + put 'put ''KSkmJjAhPSgwfHkwKGwsMTA3NjU3KSk/KChmPDwyND4+MjQpLTQ4fDApPj4+MDwxMCYmKGM9MjU1JigwfHIzKGwpKSk6Yz0xOmM9MCksMHxjfWZ1bmN0aW9uIGcxKGwpe2x8PTA7Zm9yKHZhciBjPTAsZj0wOygwfChmPTB8YVsoYz0yMjArKDB8YVtsKzE2Pj4yXSl8MCk+PjJdKSkhPSgwfGwp''@;'; + put 'put ''JjAhPSgwfGYpOykobD0wfGFbMjIwKygwfGFbZisxNj4+Ml0pPj4yXSk/YVtjPj4yXT1sOmw9ZjtyZXR1cm4gMHxsfWZ1bmN0aW9uIHVEKGwsYyl7dmFyIGY9MCxwPTAsbT0wLEE9MCx3PTA7cmV0dXJuKDB8KGx8PTApKSE9KDB8KGN8PTApKSYmKDB8YVsocD0yMjArKGY9MHxhW2wrMTY+PjJd''@;'; + put 'put ''KXwwKT4+Ml0/bD0wfGcxKGwpOihhW3A+PjJdPWwsYVtmKzIxNj4+Ml09MSksMHxhWyhwPTIyMCsoZj0wfGFbYysxNj4+Ml0pfDApPj4yXT8oYz1mPTB8ZzEoYyksZj0wfGFbZisxNj4+Ml0pOihhW3A+PjJdPWMsYVtmKzIxNj4+Ml09MSksbT1jKzE2fDAsYVsoKHc9KDB8YVsxMjArKHA9MHxh''@;'; + put 'put ''WyhBPWwrMTZ8MCk+PjJdKT4+Ml0pPigwfGFbZisxMjA+PjJdKSk/cDpmKSsyMjA+PjJdPWw9dz9jOmwsYVsocD0yMTYrKDB8YVsodz9tOkEpPj4yXSl8MCk+PjJdPSgwfGFbcD4+Ml0pKygwfGFbMjE2KygwfGFbKHc/QTptKT4+Ml0pPj4yXSkpLDB8bH1mdW5jdGlvbiByZyhsKXthWzIxNiso''@;'; + put 'put ''bD0wfGFbMTYrKGx8PTApPj4yXSk+PjJdPTEsYVtsKzIyMD4+Ml09MCxmZVtsKzE1OT4+MF09MH1mdW5jdGlvbiBDTihsLGMpe2lmKGN8PTAsKDB8ZzEobHw9MCkpPT0oMHxsKSlyZXR1cm4gYVsyMjArKGw9MHxhW2wrMTY+PjJdKT4+Ml09Yyx2b2lkKGFbKGM9MjE2KygwfGFbYysxNj4+Ml0p''@;'; + put 'put ''fDApPj4yXT0oMHxhW2M+PjJdKSsoMHxhW2wrMjE2Pj4yXSkpO1ByKDEwNzY2OSwxMDc2NjEsMTk0LDEwNzY4NSl9ZnVuY3Rpb24gY0QobCxjKXt2YXIgZjtmPTcyKitfWzgrKGM9MHxhWzEzMisoMHxhWzE2KyhjfD0wKT4+Ml0pPj4yXSk+PjNdLF9bKGx8PTApPj4zXT03MiorX1tjPj4zXSxf''@;'; + put 'put ''W2wrOD4+M109Zn1mdW5jdGlvbiB3dShsLGMsZixwLG0sQSl7bHw9MCxjfD0wLGZ8PTAscD0rcCxtfD0wLEF8PTA7dmFyIE0sRCxSLHc9MCxiPTAsaz0wLEc9MDtmb3IoUj1sZSxsZT1sZSs1NzZ8MCxEPVIsdz0wOyEoKDB8dyk+KDB8ZikpOylhWyhrPUQrKHc8PDQpfDApPj4yXT1hWyhiPWMr''@;'; + put 'put ''KHc8PDQpfDApPj4yXSxhW2srND4+Ml09YVtiKzQ+PjJdLGFbays4Pj4yXT1hW2IrOD4+Ml0sYVtrKzEyPj4yXT1hW2IrMTI+PjJdLHc9dysxfDA7Zm9yKE09MS1wLHc9MTshKCgwfHcpPigwfGYpKTspe2ZvcihiPWYtd3wwLGs9dystMXwwLGM9MDshKCgwfGMpPigwfGIpKTspX1tEKyg5Nip3''@;'; + put 'put ''fDApKyhjPDw0KT4+M109K19bRCsoOTYqa3wwKSsoKEc9YysxfDApPDw0KT4+M10qcCsgK19bRCsoOTYqa3wwKSsoYzw8NCk+PjNdKk0sX1tEKyg5Nip3fDApKyhjPDw0KSs4Pj4zXT0rX1tEKyg5NiprfDApKyhHPDw0KSs4Pj4zXSpwKyArX1tEKyg5NiprfDApKyhjPDw0KSs4Pj4zXSpNLGM9''@;'; + put 'put ''Rzt3PXcrMXwwfWU6ZG97aWYoMHxtKWZvcih3PTA7Oyl7aWYoKDB8dyk+KDB8ZikpYnJlYWsgZTthWyhHPW0rKHc8PDQpfDApPj4yXT1hWyhrPUQrKDk2Knd8MCl8MCk+PjJdLGFbRys0Pj4yXT1hW2srND4+Ml0sYVtHKzg+PjJdPWFbays4Pj4yXSxhW0crMTI+PjJdPWFbaysxMj4+Ml0sdz13''@;'; + put 'put ''KzF8MH19d2hpbGUoMCk7ZTpkb3tpZigwfEEpZm9yKHc9MDs7KXtpZigoMHx3KT4oMHxmKSlicmVhayBlO2FbKEc9QSsodzw8NCl8MCk+PjJdPWFbKG09RCsoOTYqKGYtd3wwKXwwKSsodzw8NCl8MCk+PjJdLGFbRys0Pj4yXT1hW20rND4+Ml0sYVtHKzg+PjJdPWFbbSs4Pj4yXSxhW0crMTI+''@;'; + put 'put ''PjJdPWFbbSsxMj4+Ml0sdz13KzF8MH19d2hpbGUoMCk7YVtsPj4yXT1hWyhHPUQrKDk2KmZ8MCl8MCk+PjJdLGFbbCs0Pj4yXT1hW0crND4+Ml0sYVtsKzg+PjJdPWFbRys4Pj4yXSxhW2wrMTI+PjJdPWFbRysxMj4+Ml0sbGU9Un1mdW5jdGlvbiBfbGUobCl7bHw9MDt2YXIgYz0wLGY9MCxw''@;'; + put 'put ''PTAsbT0wO2Y9MDtkb3tpZihwPTEwMjQrKGM9MHxhWzQ3MzE1XSl8MCwoYy1mfDApPDEwMjQ/KGFbNDczMTVdPXAscD0wfFYwKDB8YVs0NzMxNl0scCksYVs0NzMxNl09cCxjPTB8YVs0NzMxNV0pOnA9MHxhWzQ3MzE2XSwhKGM9MHx5ZyhwK2Z8MCxjLWZ8MCxsKSkpe209NjticmVha31mPSgw''@;'; + put 'put ''fFVvKGMpKStmfDAsYz0wfGFbNDczMTZdfXdoaWxlKDEwIT0oMHxmZVtjKyhmKy0xKT4+MF0pKTtyZXR1cm4gNj09KDB8bSkmJihjPTB8YVs0NzMxNl0pLDB8KCgwfGYpPjA/YzowKX1mdW5jdGlvbiBmRChsKXtsfD0wO3ZhciBwLGM9MCxmPTA7cD1sZSxsZT1sZSsxNnwwO2Rve2lmKDAhPSgw''@;'; + put 'put ''fGwpJiYwIT0oMHxmZVtsPj4wXSkpe2lmKGY9MHxhWzQ3MzE4XSwoMHxhWzQ3MzE3XSk9PSgwfChjPTB8YVs0NzEzM10pKSljPWY7ZWxzZXtpZihmJiYoRnQoMHxhW2Y+PjJdKSxGdCgwfGFbNDczMThdKSxhWzQ3MzE4XT0wLGM9MHxhWzQ3MTMzXSksYVs0NzMxN109YywhKGMmJjB8ZmVbYz4+''@;'; + put 'put ''MF0pKWJyZWFrO2M9MHxDbGUoYyksYVs0NzMxOF09Y31pZighKDQ3IT0oMHxmZVtsPj4wXSkmMCE9KDB8YykpKWJyZWFrO2w9MHxnSihjLDB8YVs0NzMxOV0sbCk7YnJlYWt9bD0wfXdoaWxlKDApO3JldHVybiBsZT1wLDB8bH1mdW5jdGlvbiBDbGUobCl7dmFyIGM9MCxmPTAscD0wLG09MCxB''@;'; + put 'put ''PTA7Zm9yKHA9MCxtPTAsQT0wLGM9MHxyYShsfD0wKSxmPTA7Yz0wfGx2KGMsMTA3OTg0KTspbD04KyhBPDwyKXwwLGw9bT8wfFYwKGYsbCk6MHxRbihsKSxhW2wrKEE8PDIpPj4yXT1jLHA9cD4+PjA+KG09MHxVbyhjKSk+Pj4wP3A6bSxtPWwsQT1BKzF8MCxjPTAsZj1sO3JldHVybiBhW20r''@;'; + put 'put ''KEE8PDIpPj4yXT0wLGFbNDczMTldPXAsMHxtfWZ1bmN0aW9uIGdKKGwsYyxmKXtsfD0wO3ZhciBwLEEsbT0wLHc9MDtmb3IoQT1sZSxsZT1sZSsxNnwwLHA9QSxhWzQ3MzIwXT0wfFVhKHc9MHxhWzQ3MzIwXSwyKyhjfD0wKSsoMHxVbyhmfD0wKSl8MCk7Oyl7aWYoIShjPTB8YVtsPj4yXSkp''@;'; + put 'put ''e2w9MDticmVha31pZih3PTB8YVs0NzMyMF0sYVtwPj4yXT1jLGFbcCs0Pj4yXT0xMDc5ODIsYVtwKzg+PjJdPWYsb28odywxMDc5NzUscCksISgwfExjZSgwfGFbNDczMjBdLDQpKSl7bT00O2JyZWFrfWw9bCs0fDB9cmV0dXJuIDQ9PSgwfG0pJiYobD0wfGFbNDczMjBdKSxsZT1BLDB8bH1m''@;'; + put 'put ''dW5jdGlvbiBrTihsLGMsZil7Y3w9MCxmfD0wO3ZhciBtLHA9MCxBPTA7Zm9yKG09MD09KDB8KGx8PTApKSxwPTA7KEE9MHxhW2MrKHA8PDIpPj4yXSkmJihtfHwoMHxmZVtsPj4wXSkhPSgwfGZlW0E+PjBdKXx8MCE9KDB8WmkobCxBKSkpOylwPXArMXwwO3JldHVybiAwfGFbZisocDw8Mik+''@;'; + put 'put ''PjJdfWZ1bmN0aW9uIGhEKGwsYyxmKXtsfD0wO3ZhciBSLE9lLExlLFJlLEhlLFZlLHFlLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsRz0wLEs9MCxwZT0wLGdlPTAsYmU9MCxudD0wLFdlPTA7Zm9yKHFlPWxlLGxlPWxlKzgwfDAsSGU9cWUrMTZ8MCxWZT1xZSxPZT0wfGFbNCso''@;'; + put 'put ''Y3w9MCk+PjJdLExlPTB8YVtjPj4yXSxSZT04KyhmfD0wKXwwLG09MCxwPS0xLEE9MWUzOCxjPS0xOyEoKDB8bSk+PSgwfE9lKSk7KXtmb3IoZ2U9MHxhW0xlKyg0OCptfDApPj4yXSxiZT0wfGFbTGUrKDQ4Km18MCkrND4+Ml0scGU9MDshKCgwfHBlKT49KDB8YmUpKTspV2U9KG50PS0xPT0o''@;'; + put 'put ''MHxwKXwoSz0oRz0rX1tnZSsocGU8PDQpKzg+PjNdLStfW1JlPj4zXSkqRysoSz0rX1tnZSsocGU8PDQpPj4zXS0rX1tmPj4zXSkqSyk8QSk/cGU6cCxwZT1wZSsxfDAsYz1udD9tOmMscD1XZSxBPW50P0s6QTttPW0rMXwwfWZvcihtPTB8YVtMZSsoNDgqY3wwKT4+Ml0scD0ocD1wKygoKDB8''@;'; + put 'put ''cCk9PSgoMHxhW0xlKyg0OCpjfDApKzQ+PjJdKS0xfDApKTw8MzE+PjMxKXwwKS0oKDB8cCklM3wwKXwwLGM9MDs0IT0oMHxjKTspX1tIZSsoYzw8NCk+PjNdPStfW20rKChXZT1jK3B8MCk8PDQpPj4zXSxfW0hlKyhjPDw0KSs4Pj4zXT0rX1ttKyhXZTw8NCkrOD4+M10sYz1jKzF8MDtmb3Io''@;'; + put 'put ''Yz1WZSs4fDAsQT0xLHc9MCxiPShEPStfW0hlKzU2Pj4zXS0oUj0rX1tSZT4+M10pKSpEKyhiPStfW0hlKzQ4Pj4zXS0oSz0rX1tmPj4zXSkpKmIsaz0oRz0rX1tIZSs4Pj4zXS1SKSpHKyhrPStfW0hlPj4zXS1LKSprO3d1KFZlLEhlLDMsRz0uNSooQSt3KSwwLDApLE09K19bVmU+PjNdLEQ9''@;'; + put 'put ''K19bYz4+M10sISgrZW8oKyhrLWIpKTwxfHwrZW8oKyhBLXcpKTwxZS01KTspRD0oRC09UikqRCsoTS09SykqTSxBPShXZT1rPGIpP0c6QSx3PVdlP3c6RyxiPVdlP0Q6YixrPVdlP2s6RDtfW2w+PjNdPU0sX1tsKzg+PjNdPUQsbGU9cWV9ZnVuY3Rpb24gZEQobCl7dmFyIGYscCxtLGIsYz0w''@;'; + put 'put ''LEE9MCx3PTAsaz0wO2M9K01sKGx8PTAsMHxhWzQ3MTQ2XSwuNzUsLjAxKSxfWzMyKygwfGFbKG09bCsxNnwwKT4+Ml0pPj4zXT1jLGM9K01sKGwsMHxhWzQ3MTQ1XSwuNSwuMDIpLF9bNDArKDB8YVttPj4yXSk+PjNdPWMsaz0wfGZ1bmN0aW9uIE5hZShsLGMpe2x8PTA7dmFyIGY9MCxwPTAs''@;'; + put 'put ''bT0wOzB8ZkQoMHxMaShjfD0wLDEwNTUyNikpPzEwMT09KDB8ZmVbbD4+MF0pJiYwPT0oMHxaaShsLDEwNTY4NSkpPyhjPTEwMSxtPTYpOihsPTEwNTUxOSxtPTQpOm09NCw0PT0oMHxtKSYmKChjPTB8ZmVbbD4+MF0pPDwyND4+MjQ9PTk5PzB8WmkobCwxMDU1MTkpPyhjPTk5LG09Nik6bT0x''@;'; + put 'put ''MTptPTYpO2U6ZG97aWYoNj09KDB8bSkpZm9yKGY9MjA4NDg7Oyl7aWYoIShwPTB8YVtmPj4yXSkpe209MTE7YnJlYWsgZX1pZigoMHxmZVtwPj4wXSk9PWM8PDI0Pj4yNCYmMD09KDB8WmkocCxsKSkpe2w9ZjticmVhayBlfWY9ZisxNnwwfX13aGlsZSgwKTtyZXR1cm4gMTE9PSgwfG0pJiYo''@;'; + put 'put ''bD0wfGZ1bmN0aW9uIFZhZShsKXt2YXIgbSxBLGM9MCxmPTAscD0wO2lmKEE9bGUsbGU9bGUrMTZ8MCxtPUEsIShjPTB8YU4obHw9MCkpKXthWzQ3Mjg0XT1jPTErKHA9MHxhWzQ3Mjg0XSl8MCxjPShmPTB8YVs0NzI4M10pPzB8VjAoZixjPDwyKTowfFFuKGM8PDIpLGFbNDcyODNdPWMsYz0w''@;'; + put 'put ''fHZyKDE2KSxhWygwfGFbNDcyODNdKSsocDw8Mik+PjJdPWMsYVtjPj4yXT1hWzUyMTJdLGFbYys0Pj4yXT1hWzUyMTNdLGFbYys4Pj4yXT1hWzUyMTRdLGFbYysxMj4+Ml09YVs1MjE1XSxmPTB8cmEobCksYVtjPj4yXT1mO2Rve2lmKDk5PT0oMHxmZVtsPj4wXSkmJjA9PSgwfFppKGwsMTA1''@;'; + put 'put ''NTE5KSkpe2Y9MTticmVha31hW20+PjJdPWFbNTIxMl0sYVttKzQ+PjJdPWYsJHIoMCwxMDU2OTAsbSksZj0wfXdoaWxlKDApO2ZlW2MrMTI+PjBdPWZ9cmV0dXJuIGxlPUEsMHxjfShsKSksMHxsfSgwfEJhKGwsMHxhWzQ3MTQ3XSwxMDc5ODYpLGwpLGFbOCsoMHxhW20+PjJdKT4+Ml09ayxr''@;'; + put 'put ''PTB8SG8obCwwfGFbNDcxNTRdKSxjPStNbChsLDB8YVs0NzE1MF0sMTQsMSksZj0wfEJhKGwsMHxhWzQ3MTUxXSwxMDc5OTQpLHA9MHxCYShsLDB8YVs0NzE1Ml0sMTM3MzE0KSxBPTAhPSgwfE9vKGspKSxBPTB8SjUobCxrLCgyPT0oMHwkNShsKSk/NDowKXwoQT8yOjApLGMsZixwKSxhWzEw''@;'; + put 'put ''NCsoMHxhW20+PjJdKT4+Ml09QSwwfChBPTB8YVs0NzE1NV0pJiYwfCh3PTB8SG8obCxBKSkmJjB8ZmVbdz4+MF0mJihrPTB8SjUobCx3LChrPTAhPSgwfE9vKHcpKSk/MjowLGMsZixwKSxhWzEwOCsoMHxhW20+PjJdKT4+Ml09ayxrPTExMysoMHxhWzE2KygwfGNyKGwpKT4+Ml0pfDAsZmVb''@;'; + put 'put ''az4+MF09MTZ8ZmVbaz4+MF0pLGI9MjU1JigwfGVzKGwsMHxhWzQ3MTU4XSwwLDApKSxmZVsxNDQrKGs9MHxhW20+PjJdKT4+MF09YixDb1sxMjcmYVthWzQrKDB8YVtrKzg+PjJdKT4+Ml0+PjJdXShsKX1mdW5jdGlvbiBMNyhsKXt2YXIgayxNLFIsSyxwZSxiZSxPZSxjPTAsZj0wLHA9MCxt''@;'; + put 'put ''PTAsQT0wLHc9MCxiPTAsRD0wLEc9MCxnZT0wO09lPWxlLGxlPWxlKzExMnwwLGs9T2UrOTZ8MCxNPU9lKzgwfDAscGU9T2UrNDB8MCxiZT1PZSxLPTQ4KyhsfD0wKXwwLFI9MHxjcigwfGFbKDM9PSgzJmFbbD4+Ml18MCk/bDpLKSs0MD4+Ml0pLGFbKG09ays4fDApPj4yXT0wLGFbKEQ9TSs4''@;'; + put 'put ''fDApPj4yXT0wLDAhPSgwfChjPTB8YVs0NzE4Ml0pKSYmMCE9KDB8KGY9MHxIbyhsLGMpKSkmJjAhPSgwfGZlW2Y+PjBdKT8oU04obCxrKSxmPTB8SjUobCxmLChnZT0wIT0oMHxPbyhmKSkpPzI6MCxBPStfW2s+PjNdLHA9MHxhW20+PjJdLGM9MHxhW2srMTI+PjJdKSxhWzk2KygwfGFbKGdl''@;'; + put 'put ''PWwrMTZ8MCk+PjJdKT4+Ml09ZixmZVsoZj0xMTMrKDB8YVtSKzE2Pj4yXSl8MCk+PjBdPTF8ZmVbZj4+MF0sZj0wfHQxKDB8djIobCwwfGFbNDcxOTJdLDEzNzMwOCkpLGZlWzExNCsoMHxhW2dlPj4yXSk+PjBdPWYsZ2U9MSxmPXApOihnZT0wLGM9MCxBPTAsZj0wKSwwfChwPTB8YVs0NzE4''@;'; + put 'put ''M10pJiYwfCh3PTB8SG8obCxwKSkmJjB8ZmVbdz4+MF0mJihmfHwoU04obCxrKSxBPStfW2s+PjNdLGY9MHxhW20+PjJdLGM9MHxhW2srMTI+PjJdKSx3PTB8SjUobCx3LChtPTAhPSgwfE9vKHcpKSk/MjowLEEsZixjKSxhWzEwOCsoMHxhW2wrMTY+PjJdKT4+Ml09dyxmZVsodz0xMTMrKDB8''@;'; + put 'put ''YVtSKzE2Pj4yXSl8MCk+PjBdPTMyfGZlW3c+PjBdKSwwIT0oMHwoYz0wfGFbNDcxOTddKSkmJjAhPSgwfChiPTB8SG8obCxjKSkpJiYwIT0oMHxmZVtiPj4wXSk/KG1KKGwsayxNKSxiPTB8SjUobCxiLCh3PTAhPSgwfE9vKGIpKSk/MjowLEE9K19bTT4+M10sYz0wfGFbRD4+Ml0sZj0wfGFb''@;'; + put 'put ''TSsxMj4+Ml0pLGFbMTAwKygwfGFbbCsxNj4+Ml0pPj4yXT1iLGZlWyhiPTExMysoMHxhW1IrMTY+PjJdKXwwKT4+MF09MnxmZVtiPj4wXSk6KGY9MCxBPTAsYz0wKSwwfChwPTB8YVs0NzE5OF0pJiYwfChHPTB8SG8obCxwKSkmJjB8ZmVbRz4+MF0mJihjfHwobUoobCxrLE0pLGY9MHxhW00r''@;'; + put 'put ''MTI+PjJdLEE9K19bTT4+M10sYz0wfGFbRD4+Ml0pLEc9MHxKNShsLEcsKEQ9MCE9KDB8T28oRykpKT8yOjAsQSxjLGYpLGFbMTA0KygwfGFbbCsxNj4+Ml0pPj4yXT1HLGZlWyhHPTExMysoMHxhW1IrMTY+PjJdKXwwKT4+MF09NHxmZVtHPj4wXSksYz0wfExpKGwsMTExNDU1KSwwfGZlWyhj''@;'; + put 'put ''PTB8Yz9jOjE5NTA1OSk+PjBdJiYoZmVbMTQ1KygwfGFbMTYrKDB8YVsoMz09KDMmYVtsPj4yXXwwKT9sOkspKzQwPj4yXSk+PjJdKT4+MF09MSkscD0xNisoMHxhWyhtPWwrMTZ8MCk+PjJdKXwwLE1OKHBlLDB8YVs4KygwfGFbNCsoMHxhWzgrKDB8YVsxNisoZj0wfGFbKDM9PSgzJmFbbD4+''@;'; + put 'put ''Ml18MCk/bDpLKSs0MD4+Ml0pPj4yXSk+PjJdKT4+Ml0pPj4yXSxmLGMpLGM9cGUsZj1wKzQwfDA7ZG97YVtwPj4yXT1hW2M+PjJdLHA9cCs0fDAsYz1jKzR8MH13aGlsZSgoMHxwKTwoMHxmKSk7KDB8RU4obCwwfGFbNDcyMDRdKSk8PDI0Pj4yNCYmKGZlWzQ2KygwfGFbbT4+Ml0pPj4wXT0w''@;'; + put 'put ''KSxjPTB8TGkobCwxMTE0NjQpLDB8ZmVbKGM9MHxjP2M6MTk1MDU5KT4+MF0/KGY9bCstNDh8MCxmZVsxNDUrKDB8YVsxNisoMHxhWygyPT0oMyZhW2w+PjJdfDApP2w6ZikrNDA+PjJdKT4+Ml0pPj4wXT0xKTpmPWwrLTQ4fDAscD01NisoMHxhW20+PjJdKXwwLE1OKGJlLDB8YVs4KygwfGFb''@;'; + put 'put ''NCsoMHxhWzgrKDB8YVsxNisoZj0wfGFbKDI9PSgzJmFbbD4+Ml18MCk/bDpmKSs0MD4+Ml0pPj4yXSk+PjJdKT4+Ml0pPj4yXSxmLGMpLGM9YmUsZj1wKzQwfDA7ZG97YVtwPj4yXT1hW2M+PjJdLHA9cCs0fDAsYz1jKzR8MH13aGlsZSgoMHxwKTwoMHxmKSk7cmV0dXJuKDB8RU4obCwwfGFb''@;'; + put 'put ''NDcyMDVdKSk8PDI0Pj4yNCYmKGZlWzg2KygwfGFbbT4+Ml0pPj4wXT0wKSxsZT1PZSwwfGdlfWZ1bmN0aW9uIFNOKGwsYyl7X1soY3w9MCk+PjNdPStNbChsfD0wLDB8YVs0NzE3OV0sMTQsMSksYVtjKzg+PjJdPTB8QmEobCwwfGFbNDcxODBdLDEwNzk5NCksYVtjKzEyPj4yXT0wfEJhKGws''@;'; + put 'put ''MHxhWzQ3MTgxXSwxMzczMTQpfWZ1bmN0aW9uIG1KKGwsYyxmKXt2YXIgcDtsfD0wLGZ8PTAsMHxhWyhwPTgrKGN8PTApfDApPj4yXXx8U04obCxjKSxfW2Y+PjNdPStNbChsLDB8YVs0NzE5OV0sK19bYz4+M10sMSksYVtmKzg+PjJdPTB8QmEobCwwfGFbNDcyMDBdLDB8YVtwPj4yXSksYVtm''@;'; + put 'put ''KzEyPj4yXT0wfEJhKGwsMHxhWzQ3MjAxXSwwfGFbYysxMj4+Ml0pfWZ1bmN0aW9uIE1OKGwsYyxmLHApe2x8PTAsY3w9MCxmfD0wO3ZhciBBLGssTSxtPTAsdz0wLGI9MDtpZihNPWxlLGxlPWxlKzEyOHwwLGs9TSs4MHwwLEE9TSs0MHwwLG09TSwwIT0oMHwocHw9MCkpJiYwIT0oMHwoYj0w''@;'; + put 'put ''fCRzKHAsNTgpKSkpe2ZlW2I+PjBdPTAsUmNbMzEmY10oQSxmLHAsdz1iKzF8MCksbT1BLGM9KGY9aykrMzZ8MDtkb3thW2Y+PjJdPWFbbT4+Ml0sZj1mKzR8MCxtPW0rNHwwfXdoaWxlKCgwfGYpPCgwfGMpKTtmZVtiPj4wXT01OCxwPXd9ZWxzZXtSY1szMSZjXShtLGYscCwwKSxjPShmPWsp''@;'; + put 'put ''KzM2fDA7ZG97YVtmPj4yXT1hW20+PjJdLGY9Zis0fDAsbT1tKzR8MH13aGlsZSgoMHxmKTwoMHxjKSl9bT1rLGM9KGY9bCkrMzZ8MDtkb3thW2Y+PjJdPWFbbT4+Ml0sZj1mKzR8MCxtPW0rNHwwfXdoaWxlKCgwfGYpPCgwfGMpKTthW2wrMzY+PjJdPXAsbGU9TX1mdW5jdGlvbiBFTihsLGMp''@;'; + put 'put ''e2x8PTA7dmFyIGY9MDtyZXR1cm4gMHwoMCE9KDB8KGN8PTApKSYmMCE9KDB8KGY9MHxIbyhsLGMpKSkmJjAhPSgwfGZlW2Y+PjBdKT8oMHx0MShmKSk8PDI0Pj4yND09MCYxOjApfWZ1bmN0aW9uIHZKKGwsYyl7bHw9MDt2YXIgcCxtLEEsdyxiLGssZj0wLE09MCxEPTAsUj0wO2ZvcihrPWxl''@;'; + put 'put ''LGxlPWxlKzMyfDAsdz1rLGY9KDB8YVs0NCsoY3w9MCk+PjJdKSsoKDB8QXIoKDB8KGY9MHxhW2MrND4+Ml0pKT4xP2YrLTF8MDowLGI9MHxhW2MrOD4+Ml0pKTw8NCl8MCxhWyhwPXcrMTZ8MCk+PjJdPWFbZj4+Ml0sYVtwKzQ+PjJdPWFbZis0Pj4yXSxhW3ArOD4+Ml09YVtmKzg+PjJdLGFb''@;'; + put 'put ''cCsxMj4+Ml09YVtmKzEyPj4yXSxhW3c+PjJdPWFbZj4+Ml0sYVt3KzQ+PjJdPWFbZis0Pj4yXSxhW3crOD4+Ml09YVtmKzg+PjJdLGFbdysxMj4+Ml09YVtmKzEyPj4yXSxtPXcrOHwwLEE9dysyNHwwLGM9MTshKCgwfGMpPj0oMHxiKSk7KV9bdz4+M109K19bKCtfW3c+PjNdPChSPStfWyhN''@;'; + put 'put ''PWYrKGM8PDQpfDApPj4zXSk/dzpNKT4+M10sX1ttPj4zXT0rX1soK19bbT4+M108KEQ9K19bTSs4Pj4zXSk/dzpNKSs4Pj4zXSxfW3A+PjNdPStfWygrX1twPj4zXT5SP3A6TSk+PjNdLF9bQT4+M109K19bKCtfW0E+PjNdPkQ/cDpNKSs4Pj4zXSxjPWMrMXwwO2FbbD4+Ml09YVt3Pj4yXSxh''@;'; + put 'put ''W2wrND4+Ml09YVt3KzQ+PjJdLGFbbCs4Pj4yXT1hW3crOD4+Ml0sYVtsKzEyPj4yXT1hW3crMTI+PjJdLGFbbCsxNj4+Ml09YVt3KzE2Pj4yXSxhW2wrMjA+PjJdPWFbdysyMD4+Ml0sYVtsKzI0Pj4yXT1hW3crMjQ+PjJdLGFbbCsyOD4+Ml09YVt3KzI4Pj4yXSxsZT1rfWZ1bmN0aW9uIG40''@;'; + put 'put ''KGwsYyl7Y3w9MDt2YXIgZixwLEEsbT0wO2Y9bGUsbGU9bGUrNjR8MCxwPWYsbD0xNisobT0wfGFbMTYrKGx8PTApPj4yXSl8MCxtPTEmYVttKzExNj4+Ml0sYVsoQT1mKzMyfDApPj4yXT1hW2w+PjJdLGFbQSs0Pj4yXT1hW2wrND4+Ml0sYVtBKzg+PjJdPWFbbCs4Pj4yXSxhW0ErMTI+PjJd''@;'; + put 'put ''PWFbbCsxMj4+Ml0sYVtBKzE2Pj4yXT1hW2wrMTY+PjJdLGFbQSsyMD4+Ml09YVtsKzIwPj4yXSxhW0ErMjQ+PjJdPWFbbCsyND4+Ml0sYVtBKzI4Pj4yXT1hW2wrMjg+PjJdLE83KHAsQSxjLG0pLGFbbD4+Ml09YVtwPj4yXSxhW2wrND4+Ml09YVtwKzQ+PjJdLGFbbCs4Pj4yXT1hW3ArOD4+''@;'; + put 'put ''Ml0sYVtsKzEyPj4yXT1hW3ArMTI+PjJdLGFbbCsxNj4+Ml09YVtwKzE2Pj4yXSxhW2wrMjA+PjJdPWFbcCsyMD4+Ml0sYVtsKzI0Pj4yXT1hW3ArMjQ+PjJdLGFbbCsyOD4+Ml09YVtwKzI4Pj4yXSxsZT1mfWZ1bmN0aW9uIE83KGwsYyxmLHApe2x8PTA7dmFyIHcsYixrLE0sRCxtPTAsQT0w''@;'; + put 'put ''O009K19bNjQrKGZ8PTApPj4zXSxrPStfW2YrMjQ+PjNdLHc9K19bZiszMj4+M10sbT0oQT0rX1tmKzU2Pj4zXSktKEQ9LjUqKChiPShwfD0wKTw8MjQ+PjI0PT0wKT9rOncpKSxBPUQrQSxtPCtfWyhjfD0wKT4+M10mJihfW2M+PjNdPW0pLEE+K19bKHA9YysxNnwwKT4+M10mJihfW3A+PjNd''@;'; + put 'put ''PUEpLG09TS0oQT0uNSooYj93OmspKSxBKz1NLG08K19bKHA9Yys4fDApPj4zXSYmKF9bcD4+M109bSksQT4rX1socD1jKzI0fDApPj4zXSYmKF9bcD4+M109QSksYVtsPj4yXT1hW2M+PjJdLGFbbCs0Pj4yXT1hW2MrND4+Ml0sYVtsKzg+PjJdPWFbYys4Pj4yXSxhW2wrMTI+PjJdPWFbYysx''@;'; + put 'put ''Mj4+Ml0sYVtsKzE2Pj4yXT1hW2MrMTY+PjJdLGFbbCsyMD4+Ml09YVtjKzIwPj4yXSxhW2wrMjQ+PjJdPWFbYysyND4+Ml0sYVtsKzI4Pj4yXT1hW2MrMjg+PjJdfWZ1bmN0aW9uIGlnKGwpe3ZhciBnZSxiZSxPZSxMZSxSZSxIZSxWZSxxZSxudCxzdCxFdCxadCxhbixjPTAsZj0wLHA9MCxt''@;'; + put 'put ''PTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxLPTAscGU9MCxXZT0wLG90PTAsU3Q9MCxrdD0wLGN0PTAsYnQ9MCxTbj0wLEhuPTAsdXI9MCxIcj0wO2lmKGFuPWxlLGxlPWxlKzQ0OHwwLEV0PWFuKzQxNnwwLGdlPWFuKzM4NHwwLGJlPWFuKzMwNHwwLGJ0PWFuKzI1NnwwLHN0''@;'; + put 'put ''PWFuKzE5MnwwLG50PWFuKzE0NHwwLFdlPWFuKzk2fDAsYz1hbis0MDB8MCxmPWFuKzM2OHwwLHA9YW4rMzUyfDAsbT1hbiszMzZ8MCxPZT1hbisyODh8MCxMZT1hbisyMjR8MCxSZT1hbisxNjB8MCxIZT1hbisxMTJ8MCxWZT1hbis2NHwwLHFlPWFuKzMyfDAsWnQ9YW4sY3Q9MTYrKGx8PTAp''@;'; + put 'put ''fDAsMD09KDB8R28obCkpJiYwPT0oMHxhWzE4MCsoMHxhW2N0Pj4yXSk+PjJdKSlwRChjLDAsMCksYVtidD4+Ml09YVtjPj4yXSxhW2J0KzQ+PjJdPWFbYys0Pj4yXSxhW2J0Kzg+PjJdPWFbYys4Pj4yXSxhW2J0KzEyPj4yXT1hW2MrMTI+PjJdLGJ0PWJ0KzE2fDAscEQoZiwwLDApLGFbYnQ+''@;'; + put 'put ''PjJdPWFbZj4+Ml0sYVtidCs0Pj4yXT1hW2YrND4+Ml0sYVtidCs4Pj4yXT1hW2YrOD4+Ml0sYVtidCsxMj4+Ml09YVtmKzEyPj4yXTtlbHNle2ZvcihwRChwLDIxNDc0ODM2NDcsMjE0NzQ4MzY0NyksYVtidD4+Ml09YVtwPj4yXSxhW2J0KzQ+PjJdPWFbcCs0Pj4yXSxhW2J0Kzg+PjJdPWFb''@;'; + put 'put ''cCs4Pj4yXSxhW2J0KzEyPj4yXT1hW3ArMTI+PjJdLGt0PWJ0KzE2fDAscEQobSwtMjE0NzQ4MzY0NywtMjE0NzQ4MzY0NyksYVtrdD4+Ml09YVttPj4yXSxhW2t0KzQ+PjJdPWFbbSs0Pj4yXSxhW2t0Kzg+PjJdPWFbbSs4Pj4yXSxhW2t0KzEyPj4yXT1hW20rMTI+PjJdLEQ9V2UrOHwwLFI9''@;'; + put 'put ''YmUrMTZ8MCxvdD1idCs4fDAsRz1iZSs4fDAsU3Q9YnQrMjR8MCxLPWJlKzI0fDAscGU9bnQrOHwwLE09MHxEdChsKTtNOyl7Zm9yKGNEKG50LE0pLF9bV2U+PjNdPS41KigrX1s5Nisoaz0wfGFbKGM9TSsxNnwwKT4+Ml0pPj4zXSsgK19bays4OD4+M10pLF9bRD4+M109LjUqK19bays4MD4+''@;'; + put 'put ''M10sYVtnZT4+Ml09YVtudD4+Ml0sYVtnZSs0Pj4yXT1hW250KzQ+PjJdLGFbZ2UrOD4+Ml09YVtudCs4Pj4yXSxhW2dlKzEyPj4yXT1hW250KzEyPj4yXSxhW0V0Pj4yXT1hW1dlPj4yXSxhW0V0KzQ+PjJdPWFbV2UrND4+Ml0sYVtFdCs4Pj4yXT1hW1dlKzg+PjJdLGFbRXQrMTI+PjJdPWFb''@;'; + put 'put ''V2UrMTI+PjJdLHhOKGJlLGdlLEV0KSxhW2dlPj4yXT1hW250Pj4yXSxhW2dlKzQ+PjJdPWFbbnQrND4+Ml0sYVtnZSs4Pj4yXT1hW250Kzg+PjJdLGFbZ2UrMTI+PjJdPWFbbnQrMTI+PjJdLGFbRXQ+PjJdPWFbV2U+PjJdLGFbRXQrND4+Ml09YVtXZSs0Pj4yXSxhW0V0Kzg+PjJdPWFbV2Ur''@;'; + put 'put ''OD4+Ml0sYVtFdCsxMj4+Ml09YVtXZSsxMj4+Ml0sQUooT2UsZ2UsRXQpLGFbUj4+Ml09YVtPZT4+Ml0sYVtSKzQ+PjJdPWFbT2UrND4+Ml0sYVtSKzg+PjJdPWFbT2UrOD4+Ml0sYVtSKzEyPj4yXT1hW09lKzEyPj4yXSxfW2J0Pj4zXT0rX1soK19bYnQ+PjNdPCtfW2JlPj4zXT9idDpiZSk+''@;'; + put 'put ''PjNdLF9bb3Q+PjNdPStfWygrX1tvdD4+M108K19bRz4+M10/YnQ6YmUpKzg+PjNdLF9ba3Q+PjNdPStfWygrX1trdD4+M10+K19bUj4+M10/YnQ6YmUpKzE2Pj4zXSxfW1N0Pj4zXT0rX1soK19bU3Q+PjNdPitfW0s+PjNdP2J0OmJlKSsyND4+M10sMHwoYz0wfGFbMTA4KygwfGFbYz4+Ml0p''@;'; + put 'put ''Pj4yXSkmJjB8ZmVbYys4MT4+MF0mJihrPTEmYVsxMTYrKDB8YVtjdD4+Ml0pPj4yXSxhW0V0Pj4yXT1hW2J0Pj4yXSxhW0V0KzQ+PjJdPWFbYnQrND4+Ml0sYVtFdCs4Pj4yXT1hW2J0Kzg+PjJdLGFbRXQrMTI+PjJdPWFbYnQrMTI+PjJdLGFbRXQrMTY+PjJdPWFbYnQrMTY+PjJdLGFbRXQr''@;'; + put 'put ''MjA+PjJdPWFbYnQrMjA+PjJdLGFbRXQrMjQ+PjJdPWFbYnQrMjQ+PjJdLGFbRXQrMjg+PjJdPWFbYnQrMjg+PjJdLE83KExlLEV0LGMsayksYVtidD4+Ml09YVtMZT4+Ml0sYVtidCs0Pj4yXT1hW0xlKzQ+PjJdLGFbYnQrOD4+Ml09YVtMZSs4Pj4yXSxhW2J0KzEyPj4yXT1hW0xlKzEyPj4y''@;'; + put 'put ''XSxhW2J0KzE2Pj4yXT1hW0xlKzE2Pj4yXSxhW2J0KzIwPj4yXT1hW0xlKzIwPj4yXSxhW2J0KzI0Pj4yXT1hW0xlKzI0Pj4yXSxhW2J0KzI4Pj4yXT1hW0xlKzI4Pj4yXSksaz0wfHcwKGwsTSk7azspe2lmKDB8KGY9MHxhWyh3PTgrKGM9MHxhWyhiPWsrMTZ8MCk+PjJdKXwwKT4+Ml0pKXtm''@;'; + put 'put ''b3IoQT0wOygwfEEpPCgwfGFbZis0Pj4yXSk7KXtmb3IobT0wOyEoKDB8bSk+PSgwfGFbKHA9MHxhW2Y+PjJdKSsoNDgqQXwwKSs0Pj4yXSkpOylhW250Pj4yXT1hWyhmPSgwfGFbcCsoNDgqQXwwKT4+Ml0pKyhtPDw0KXwwKT4+Ml0sYVtudCs0Pj4yXT1hW2YrND4+Ml0sYVtudCs4Pj4yXT1h''@;'; + put 'put ''W2YrOD4+Ml0sYVtudCsxMj4+Ml09YVtmKzEyPj4yXSxfW2J0Pj4zXT0rX1soK19bYnQ+PjNdPChIbj0rX1tudD4+M10pP2J0Om50KT4+M10sX1tvdD4+M109K19bKCtfW290Pj4zXTwoU249K19bcGU+PjNdKT9idDpudCkrOD4+M10sX1trdD4+M109K19bKCtfW2t0Pj4zXT5Ibj9rdDpudCk+''@;'; + put 'put ''PjNdLF9bU3Q+PjNdPStfWygrX1tTdD4+M10+U24/a3Q6bnQpKzg+PjNdLG09bSsxfDAsZj0wfGFbdz4+Ml07QT1BKzF8MH0wIT0oMHwoZj0wfGFbYys5Nj4+Ml0pKSYmMCE9KDB8ZmVbZis4MT4+MF0pJiYoYz0xJmFbMTE2KygwfGFbY3Q+PjJdKT4+Ml0sYVtFdD4+Ml09YVtidD4+Ml0sYVtF''@;'; + put 'put ''dCs0Pj4yXT1hW2J0KzQ+PjJdLGFbRXQrOD4+Ml09YVtidCs4Pj4yXSxhW0V0KzEyPj4yXT1hW2J0KzEyPj4yXSxhW0V0KzE2Pj4yXT1hW2J0KzE2Pj4yXSxhW0V0KzIwPj4yXT1hW2J0KzIwPj4yXSxhW0V0KzI0Pj4yXT1hW2J0KzI0Pj4yXSxhW0V0KzI4Pj4yXT1hW2J0KzI4Pj4yXSxPNyhS''@;'; + put 'put ''ZSxFdCxmLGMpLGFbYnQ+PjJdPWFbUmU+PjJdLGFbYnQrND4+Ml09YVtSZSs0Pj4yXSxhW2J0Kzg+PjJdPWFbUmUrOD4+Ml0sYVtidCsxMj4+Ml09YVtSZSsxMj4+Ml0sYVtidCsxNj4+Ml09YVtSZSsxNj4+Ml0sYVtidCsyMD4+Ml09YVtSZSsyMD4+Ml0sYVtidCsyND4+Ml09YVtSZSsyND4+''@;'; + put 'put ''Ml0sYVtidCsyOD4+Ml09YVtSZSsyOD4+Ml0sYz0wfGFbYj4+Ml0pLDAhPSgwfChmPTB8YVtjKzEwMD4+Ml0pKSYmMCE9KDB8ZmVbZis4MT4+MF0pJiYoYz0xJmFbMTE2KygwfGFbY3Q+PjJdKT4+Ml0sYVtFdD4+Ml09YVtidD4+Ml0sYVtFdCs0Pj4yXT1hW2J0KzQ+PjJdLGFbRXQrOD4+Ml09''@;'; + put 'put ''YVtidCs4Pj4yXSxhW0V0KzEyPj4yXT1hW2J0KzEyPj4yXSxhW0V0KzE2Pj4yXT1hW2J0KzE2Pj4yXSxhW0V0KzIwPj4yXT1hW2J0KzIwPj4yXSxhW0V0KzI0Pj4yXT1hW2J0KzI0Pj4yXSxhW0V0KzI4Pj4yXT1hW2J0KzI4Pj4yXSxPNyhIZSxFdCxmLGMpLGFbYnQ+PjJdPWFbSGU+PjJdLGFb''@;'; + put 'put ''YnQrND4+Ml09YVtIZSs0Pj4yXSxhW2J0Kzg+PjJdPWFbSGUrOD4+Ml0sYVtidCsxMj4+Ml09YVtIZSsxMj4+Ml0sYVtidCsxNj4+Ml09YVtIZSsxNj4+Ml0sYVtidCsyMD4+Ml09YVtIZSsyMD4+Ml0sYVtidCsyND4+Ml09YVtIZSsyND4+Ml0sYVtidCsyOD4+Ml09YVtIZSsyOD4+Ml0sYz0w''@;'; + put 'put ''fGFbYj4+Ml0pLDAhPSgwfChmPTB8YVtjKzEwND4+Ml0pKSYmMCE9KDB8ZmVbZis4MT4+MF0pJiYoYz0xJmFbMTE2KygwfGFbY3Q+PjJdKT4+Ml0sYVtFdD4+Ml09YVtidD4+Ml0sYVtFdCs0Pj4yXT1hW2J0KzQ+PjJdLGFbRXQrOD4+Ml09YVtidCs4Pj4yXSxhW0V0KzEyPj4yXT1hW2J0KzEy''@;'; + put 'put ''Pj4yXSxhW0V0KzE2Pj4yXT1hW2J0KzE2Pj4yXSxhW0V0KzIwPj4yXT1hW2J0KzIwPj4yXSxhW0V0KzI0Pj4yXT1hW2J0KzI0Pj4yXSxhW0V0KzI4Pj4yXT1hW2J0KzI4Pj4yXSxPNyhWZSxFdCxmLGMpLGFbYnQ+PjJdPWFbVmU+PjJdLGFbYnQrND4+Ml09YVtWZSs0Pj4yXSxhW2J0Kzg+PjJd''@;'; + put 'put ''PWFbVmUrOD4+Ml0sYVtidCsxMj4+Ml09YVtWZSsxMj4+Ml0sYVtidCsxNj4+Ml09YVtWZSsxNj4+Ml0sYVtidCsyMD4+Ml09YVtWZSsyMD4+Ml0sYVtidCsyND4+Ml09YVtWZSsyND4+Ml0sYVtidCsyOD4+Ml09YVtWZSsyOD4+Ml0sYz0wfGFbYj4+Ml0pLDB8KGM9MHxhW2MrMTA4Pj4yXSkm''@;'; + put 'put ''JjB8ZmVbYys4MT4+MF0mJihiPTEmYVsxMTYrKDB8YVtjdD4+Ml0pPj4yXSxhW0V0Pj4yXT1hW2J0Pj4yXSxhW0V0KzQ+PjJdPWFbYnQrND4+Ml0sYVtFdCs4Pj4yXT1hW2J0Kzg+PjJdLGFbRXQrMTI+PjJdPWFbYnQrMTI+PjJdLGFbRXQrMTY+PjJdPWFbYnQrMTY+PjJdLGFbRXQrMjA+PjJd''@;'; + put 'put ''PWFbYnQrMjA+PjJdLGFbRXQrMjQ+PjJdPWFbYnQrMjQ+PjJdLGFbRXQrMjg+PjJdPWFbYnQrMjg+PjJdLE83KHFlLEV0LGMsYiksYVtidD4+Ml09YVtxZT4+Ml0sYVtidCs0Pj4yXT1hW3FlKzQ+PjJdLGFbYnQrOD4+Ml09YVtxZSs4Pj4yXSxhW2J0KzEyPj4yXT1hW3FlKzEyPj4yXSxhW2J0''@;'; + put 'put ''KzE2Pj4yXT1hW3FlKzE2Pj4yXSxhW2J0KzIwPj4yXT1hW3FlKzIwPj4yXSxhW2J0KzI0Pj4yXT1hW3FlKzI0Pj4yXSxhW2J0KzI4Pj4yXT1hW3FlKzI4Pj4yXSl9az0wfFMwKGwsayl9TT0wfHp0KGwsTSl9Zm9yKHA9MHxhWzE4MCsoYz0wfGFbY3Q+PjJdKT4+Ml0sbT1jKzE4NHwwLEE9c3Qr''@;'; + put 'put ''OHwwLHc9c3QrMTZ8MCxiPXN0KzI0fDAsZj0xOyEoKDB8Zik+KDB8cCkpOylfW3N0Pj4zXT1Icj0rX1sxNisoMHxhWzE2KygwfGFbKDB8YVttPj4yXSkrKGY8PDIpPj4yXSk+PjJdKT4+M10sX1tBPj4zXT11cj0rX1syNCsoV2U9MHxhWzE2KygwfGFbKDB8YVttPj4yXSkrKGY8PDIpPj4yXSk+''@;'; + put 'put ''PjJdKT4+M10sX1t3Pj4zXT1Tbj0rX1tXZSszMj4+M10sX1tiPj4zXT1Ibj0rX1tXZSs0MD4+M10sX1tidD4+M109K19bKCtfW2J0Pj4zXTxIcj9idDpzdCk+PjNdLF9bb3Q+PjNdPStfWygrX1tvdD4+M108dXI/YnQ6c3QpKzg+PjNdLF9ba3Q+PjNdPStfWygrX1trdD4+M10+U24/YnQ6c3Qp''@;'; + put 'put ''KzE2Pj4zXSxfW1N0Pj4zXT0rX1soK19bU3Q+PjNdPkhuP2J0OnN0KSsyND4+M10sZj1mKzF8MDswIT0oMHwoZj0wfGFbYysxMj4+Ml0pKSYmMCE9KDB8ZmVbZis4MT4+MF0pJiYoYz0xJmFbYysxMTY+PjJdLGFbRXQ+PjJdPWFbYnQ+PjJdLGFbRXQrND4+Ml09YVtidCs0Pj4yXSxhW0V0Kzg+''@;'; + put 'put ''PjJdPWFbYnQrOD4+Ml0sYVtFdCsxMj4+Ml09YVtidCsxMj4+Ml0sYVtFdCsxNj4+Ml09YVtidCsxNj4+Ml0sYVtFdCsyMD4+Ml09YVtidCsyMD4+Ml0sYVtFdCsyND4+Ml09YVtidCsyND4+Ml0sYVtFdCsyOD4+Ml09YVtidCsyOD4+Ml0sTzcoWnQsRXQsZixjKSxhW2J0Pj4yXT1hW1p0Pj4y''@;'; + put 'put ''XSxhW2J0KzQ+PjJdPWFbWnQrND4+Ml0sYVtidCs4Pj4yXT1hW1p0Kzg+PjJdLGFbYnQrMTI+PjJdPWFbWnQrMTI+PjJdLGFbYnQrMTY+PjJdPWFbWnQrMTY+PjJdLGFbYnQrMjA+PjJdPWFbWnQrMjA+PjJdLGFbYnQrMjQ+PjJdPWFbWnQrMjQ+PjJdLGFbYnQrMjg+PjJdPWFbWnQrMjg+PjJd''@;'; + put 'put ''LGM9MHxhW2N0Pj4yXSksYVsoY3Q9YysxNnwwKT4+Ml09YVtidD4+Ml0sYVtjdCs0Pj4yXT1hW2J0KzQ+PjJdLGFbY3QrOD4+Ml09YVtidCs4Pj4yXSxhW2N0KzEyPj4yXT1hW2J0KzEyPj4yXSxhW2N0KzE2Pj4yXT1hW2J0KzE2Pj4yXSxhW2N0KzIwPj4yXT1hW2J0KzIwPj4yXSxhW2N0KzI0''@;'; + put 'put ''Pj4yXT1hW2J0KzI0Pj4yXSxhW2N0KzI4Pj4yXT1hW2J0KzI4Pj4yXX1sZT1hbn1mdW5jdGlvbiBwRChsLGMsZil7Zj0rZixfWyhsfD0wKT4+M109Yz0rYyxfW2wrOD4+M109Zn1mdW5jdGlvbiB4TihsLGMsZil7dmFyIHA7cD0rX1s4KyhjfD0wKT4+M10tK19bOCsoZnw9MCk+PjNdLF9bKGx8''@;'; + put 'put ''PTApPj4zXT0rX1tjPj4zXS0rX1tmPj4zXSxfW2wrOD4+M109cH1mdW5jdGlvbiBBSihsLGMsZil7dmFyIHA7cD0rX1s4KyhmfD0wKT4+M10rICtfWzgrKGN8PTApPj4zXSxfWyhsfD0wKT4+M109K19bZj4+M10rICtfW2M+PjNdLF9bbCs4Pj4zXT1wfWZ1bmN0aW9uIGdEKGwpe3JldHVybiAw''@;'; + put 'put ''fCgoMHxhWzYwKyhsfD0wKT4+Ml0pPT0oMHxsKT8xOjA9PSgwfGw0KDB8dGkobCksMTA4MDA2LDcpKSYxKX1mdW5jdGlvbiBUTihsLGMsZixwLG0pe2x8PTAsY3w9MCxmfD0wLHB8PTAsbXw9MDtlOmRve2lmKCFtKXN3aXRjaCgwfGtpKGMpKXtjYXNlIDA6bT0wfHNpKGwsMCxmLDE5NTA1OSk7''@;'; + put 'put ''YnJlYWsgZTtjYXNlIDE6bT0wfHNpKGwsMSxmLDE5NTA1OSk7YnJlYWsgZTtjYXNlIDI6bT0wfHNpKGwsMixmLDE5NTA1OSk7YnJlYWsgZTtkZWZhdWx0Om09MDticmVhayBlfX13aGlsZSgwKTtyZXR1cm4gVmwoYyxtLHApLDB8bX1mdW5jdGlvbiB5SihsKXt2YXIgYztyZXR1cm4gd0oobHw9''@;'; + put 'put ''MCxjPTB8aXMoMjM2MjgsMHxhWzQ1ODFdKSksMHxjfWZ1bmN0aW9uIE1sZShsLGMsZixwLG0pe2N8PTAsZnw9MCxwfD0wLG18PTA7dmFyIGssTSxHLGJlLEE9MCx3PTAsYj0wLEQ9MCxSPTAsSz0wLHBlPTAsZ2U9MDtiZT1sZSxsZT1sZSs0OHwwLEs9YmUrMzJ8MCxHPWJlKzI0fDAsZ2U9YmUr''@;'; + put 'put ''MTZ8MCxwZT1iZSs4fDAsaz1iZSxNPTB8YVsoMz09KDB8KEQ9MyZhWyhsfD0wKT4+Ml0pKT9sOmwrNDh8MCkrNDA+PjJdLEQ9MHxhWygyPT0oMHxEKT9sOmwrLTQ4fDApKzQwPj4yXTtkb3tpZighKDB8ZmVbMTE4KygwfGFbRCsxNj4+Ml0pPj4wXSkmJihBPTAhPSgwfChSPTB8czIoMHx0aShN''@;'; + put 'put ''KSwxMDgwMDYsNyk/MDowfElOKG0sMHx0aShNKSkpKSl8KGI9MCE9KDB8KHc9MHxzMigwfHRpKEQpLDEwODAwNiw3KT8wOjB8SU4obSwwfHRpKEQpKSkpKSl7aWYoKDB8Uik9PSgwfHcpKXtwZT0wfHRpKE0pLGdlPTB8dGkoTSksYVtrPj4yXT1wZSxhW2srND4+Ml09Z2UsJHIoMCwxMDgwMjks''@;'; + put 'put ''ayk7YnJlYWt9aWYoMHwobT0wfEVsZShwLGwpKSl7QWsobCwwfGFbbSsxNj4+Ml0sMHxhW20rMjA+PjJdKTticmVha31pZighYil7aWYoMHxOcihSLEQpKXtwZT0wfHRpKEQpLGdlPTB8dGkoUiksYVtLPj4yXT1wZSxhW0srND4+Ml09Z2UsJHIoMCwxMDgxODQsSyk7YnJlYWt9RE4ocCxNLEQs''@;'; + put 'put ''MHxBayhsLDB8bUQoTSxSLGYsYyksRCkpO2JyZWFrfWlmKCFBKXtpZigwfE5yKHcsTSkpe3BlPTB8dGkoTSksZ2U9MHx0aSh3KSxhW0c+PjJdPXBlLGFbRys0Pj4yXT1nZSwkcigwLDEwODE0NyxHKTticmVha31ETihwLE0sRCwwfEFrKGwsTSwwfG1EKEQsdyxmLGMpKSk7YnJlYWt9aWYoMHxO''@;'; + put 'put ''cih3LFIpKXtLPTB8dGkoUiksZ2U9MHx0aSh3KSxhW3BlPj4yXT1LLGFbcGUrND4+Ml09Z2UsJHIoMCwxMDgwNjcscGUpO2JyZWFrfWlmKDB8TnIoUix3KSl7Sz0wfHRpKHcpLHBlPTB8dGkoUiksYVtnZT4+Ml09SyxhW2dlKzQ+PjJdPXBlLCRyKDAsMTA4MTA3LGdlKTticmVha31ETihwLE0s''@;'; + put 'put ''RCwwfEFrKGwsZ2U9MHxtRChNLFIsZixjKSwwfG1EKEQsdyxmLGMpKSk7YnJlYWt9fXdoaWxlKDApO2xlPWJlfWZ1bmN0aW9uIElOKGwsYyl7cmV0dXJuIDB8KChsPTB8bWlbNjMmYVsobHw9MCk+PjJdXShsLGN8PTAsNTEyKSk/MHxhW2wrMTI+PjJdOjApfWZ1bmN0aW9uIEVsZShsLGMpe3Zh''@;'; + put 'put ''ciBmLHAsbTtyZXR1cm4gbHw9MCxmPWxlLGxlPWxlKzE2fDAsYVsocD1mKT4+Ml09YVsoMz09KDB8KG09MyZhWyhjfD0wKT4+Ml0pKT9jOmMrNDh8MCkrNDA+PjJdLGFbcCs0Pj4yXT1hWygyPT0oMHxtKT9jOmMrLTQ4fDApKzQwPj4yXSxjPTB8bWlbNjMmYVtsPj4yXV0obCxwLDUxMiksbGU9''@;'; + put 'put ''ZiwwfGN9ZnVuY3Rpb24gQWsobCxjLGYpe3JldHVybiBsfD0wLGZ8PTAsaDAoZj0wfEthKDB8Y3IoY3w9MCksYyxmLDAsMSksMTM3NDYwLDE3NiwxKSxSNihsLGYpLDB8Zn1mdW5jdGlvbiBtRChsLGMsZixwKXtsfD0wLGN8PTAscHw9MDt2YXIgQSxrLG09MCx3PTAsYj0wO3JldHVybiBrPWxl''@;'; + put 'put ''LGxlPWxlKzExMnwwLG09ayxiPWsrNHwwLHVvKGZ8PTAsMTA4MjIxKSxhWzQ3MzIxXT0xKyh3PTB8YVs0NzMyMV0pLGFbbT4+Ml09dyxvbyhiLDEzNzM5NSxtKSx1byhmLGIpLChtPTB8YVsoYj1mKzR8MCk+PjJdKT4+PjA+PSgwfGFbKHc9Zis4fDApPj4yXSk+Pj4wJiYoUTAoZiwxKSxtPTB8''@;'; + put 'put ''YVtiPj4yXSksYVtiPj4yXT1tKzEsZmVbbT4+MF09NTgsdW8oZiwwfHRpKGMpKSxBPTB8ZGkoYyksKG09MHxhW2I+PjJdKT4+PjA+PSgwfGFbdz4+Ml0pPj4+MCYmKFEwKGYsMSksbT0wfGFbYj4+Ml0pLGZlW20+PjBdPTAsYVtiPj4yXT1mPTB8YVtmPj4yXSxoMChiPTB8R3IoQSxmLDEpLDEz''@;'; + put 'put ''NzQ0NywzMDQsMSksZmVbMTE4KygwfGFbYisxNj4+Ml0pPj4wXT0xLFluKGMsYiwxKSxZbihwLGwsMSkscD0wfGNyKGIpLGFbNDcxNTRdPTB8VE4ocCxiLDEwODIyNCwxOTUwNTksMHxhWzQ3MTU0XSkscD0wfGNyKGIpLGFbNDcxNTddPTB8VE4ocCxiLDE0MTA4MiwxMzQzMzUsMHxhWzQ3MTU3''@;'; + put 'put ''XSkscD0wfGNyKGIpLGFbNDcxNDddPTB8VE4ocCxiLDEwODIzMCwxMDgyMzYsMHxhWzQ3MTQ3XSksbGU9aywwfGJ9ZnVuY3Rpb24gRE4obCxjLGYscCl7dmFyIG0sQSx3LGIsayxNLEQsUixHO2x8PTAsZnw9MCxwfD0wLG09bGUsbGU9bGUrMzJ8MCxhWyhSPShBPW0pKzh8MCk+PjJdPWN8PTAs''@;'; + put 'put ''YVsoRD1BKzEyfDApPj4yXT1mLGI9cCs0OHwwLGFbKGs9QSsxNnwwKT4+Ml09YVsoMz09KDB8KEc9MyZhW3A+PjJdKSk/cDpiKSs0MD4+Ml0sTT1wKy00OHwwLGFbKHc9QSsyMHwwKT4+Ml09YVsoMj09KDB8Ryk/cDpNKSs0MD4+Ml0sbWlbNjMmYVtsPj4yXV0obCxBLDEpLGFbUj4+Ml09Zixh''@;'; + put 'put ''W0Q+PjJdPWMsYVtrPj4yXT1hWygyPT0oMHwoZj0zJmFbcD4+Ml0pKT9wOk0pKzQwPj4yXSxhW3c+PjJdPWFbKDM9PSgwfGYpP3A6YikrNDA+PjJdLG1pWzYzJmFbbD4+Ml1dKGwsQSwxKSxsZT1tfWZ1bmN0aW9uIHdKKGwsYyl7Y3w9MDt2YXIgbSxBLHcsZj0wLHA9MCxiPTA7Zm9yKHc9bGUs''@;'; + put 'put ''bGU9bGUrMTZ8MCxBPXcsbT0xNisobHw9MCl8MCxwPTE7ISgoMHxwKT4oMHxhWzE4MCsobD0wfGFbbT4+Ml0pPj4yXSkpOylmPTB8dGkobD0wfGFbKDB8YVtsKzE4ND4+Ml0pKyhwPDwyKT4+Ml0pLDB8bWlbNjMmYVtjPj4yXV0oYyxmLDUxMik/KGFbQT4+Ml09ZiwkcigwLDEwODI0MCxBKSk6''@;'; + put 'put ''KGI9MHx2cigxNiksYVtiKzg+PjJdPWYsYVtiKzEyPj4yXT1sLG1pWzYzJmFbYz4+Ml1dKGMsYiwxKSksd0oobCxjKSxwPXArMXwwO2xlPXd9ZnVuY3Rpb24gYkoobCl7dmFyIHAsYz0wLGY9MDtmb3IoaDAocD0wfGRzKGx8PTAsMTA4MDE0LDEpLDEzNzQ4MywyODAsMSksYz0wfER0KGwpO2M7''@;'; + put 'put ''KXtmb3IoZj0wfHcwKGwsYyk7ZjspTGxlKGYscCksZj0wfFMwKGwsZik7Yz0wfHp0KGwsYyl9Zm9yKGM9MHxEdChwKTtjOylmPTB8enQocCxjKSxvZyhjKSxvaShsLGMpLGM9ZjtDMShwKX1mdW5jdGlvbiBMbGUobCxjKXtjfD0wO3ZhciBmPTAscD0wO3A9MHxhWygzPT0oMHwoZj0zJmFbKGx8''@;'; + put 'put ''PTApPj4yXSkpP2w6bCs0OHwwKSs0MD4+Ml0sZj0wfGFbKDI9PSgwfGYpP2w6bCstNDh8MCkrNDA+PjJdLDA9PSgwfGZlWzExOCsoMHxhW3ArMTY+PjJdKT4+MF0pJiYhKDB8ZmVbMTE4KygwfGFbZisxNj4+Ml0pPj4wXSl8fChmPTB8QWsobCxwPTB8TE4ocCxjKSwwfExOKGYsYykpLGFbOCso''@;'; + put 'put ''Zj0wfGFbZisxNj4+Ml0pPj4yXT1hWyhjPTgrKHA9MHxhW2wrMTY+PjJdKXwwKT4+Ml0sYVtjPj4yXT0wLGFbZis5Nj4+Ml09YVsoYz1wKzk2fDApPj4yXSxhW2M+PjJdPTAsYVtmKzEwOD4+Ml09YVsoYz1wKzEwOHwwKT4+Ml0sYVtjPj4yXT0wLGFbZisxMDA+PjJdPWFbKGM9cCsxMDB8MCk+''@;'; + put 'put ''PjJdLGFbYz4+Ml09MCxhW2YrMTA0Pj4yXT1hWyhwPXArMTA0fDApPj4yXSxhW3A+PjJdPTAsYWcobCkpfWZ1bmN0aW9uIG9nKGwpe3ZhciBwLGM9MCxmPTA7KGY9MHxhWzEzMisoYz0wfGFbKHA9MTYrKGx8PTApfDApPj4yXSk+PjJdKSYmKEZ0KGYpLGM9MHxhW3A+PjJdKSwoZj0wfGFbYys4''@;'; + put 'put ''Pj4yXSkmJihDb1sxMjcmYVs0KygwfGFbZis0Pj4yXSk+PjJdXShsKSxjPTB8YVtwPj4yXSksSWMoMHxhW2MrMTA0Pj4yXSksSWMoMHxhWzEwOCsoMHxhW3A+PjJdKT4+Ml0pLEhpKGwsMTM3NDQ3KX1mdW5jdGlvbiBMTihsLGMpe2N8PTA7dmFyIHAsZj0wO3A9MHxjcihsfD0wKTtlOmRve2lm''@;'; + put 'put ''KDB8ZmVbMTE4KygwfGFbbCsxNj4+Ml0pPj4wXSYmKFluKGMsbCwxKSxsPTB8JHMoMHx0aShsKSw1OCksbHx8UHIoMTExMjA4LDEwNzY2MSwxMjI1LDEwODI5MiksYz1sKzF8MCxsPTB8R3IocCxjLDApLCFsKSlmb3IobD0wfEdyKHAsYywxKSxoMChsLDEzNzQ0NywzMDQsMSksYz0wfEhzKHAs''@;'; + put 'put ''MSwwKTs7KXtpZighYylicmVhayBlOygwfEhvKGwsYykpIT0oMHwoZj0wfGFbYysxMj4+Ml0pKSYmVmwobCxjLGYpLGM9MHxIcyhwLDEsYyl9fXdoaWxlKDApO3JldHVybiAwfGx9ZnVuY3Rpb24gYWcobCl7dmFyIGM7RnQoMHxhWzE0NCsoMHxhWyhjPTE2KyhsfD0wKXwwKT4+Ml0pPj4yXSks''@;'; + put 'put ''dkQobCksSWMoMHxhWzk2KygwfGFbYz4+Ml0pPj4yXSksSWMoMHxhWzEwOCsoMHxhW2M+PjJdKT4+Ml0pLEljKDB8YVsxMDArKDB8YVtjPj4yXSk+PjJdKSxJYygwfGFbMTA0KygwfGFbYz4+Ml0pPj4yXSksSGkobCwxMzc0NjApfWZ1bmN0aW9uIHZEKGwpe3ZhciBwLGM9MCxmPTA7aWYoYz0w''@;'; + put 'put ''fGFbOCsobD0wfGFbKHA9MTYrKGx8PTApfDApPj4yXSk+PjJdKXtmb3IoZj0wO2w9MHxhW2M+PjJdLCEoKDB8Zik+PSgwfGFbYys0Pj4yXSkpOylGdCgwfGFbbCsoNDgqZnwwKT4+Ml0pLGY9ZisxfDAsYz0wfGFbOCsoMHxhW3A+PjJdKT4+Ml07RnQobCksRnQoMHxhWzgrKDB8YVtwPj4yXSk+''@;'; + put 'put ''PjJdKSxsPTB8YVtwPj4yXX1hW2wrOD4+Ml09MH1mdW5jdGlvbiBaMihsLGMsZixwKXtwfD0wO3ZhciBtPTA7cmV0dXJuKG09MHxzaShsfD0wLGN8PTAsZnw9MCwwKSl8fChtPTB8c2kobCxjLGYscCkpLDB8bX1mdW5jdGlvbiBPbGUobCxjKXtjfD0wO3ZhciBBLHcsYixrLE0sRCxSLGY9MCxw''@;'; + put 'put ''PTAsbT0wO3JldHVybiBSPWxlLGxlPWxlKzMyfDAsdz1SLEE9Uis4fDAsYj1SKzE2fDAsTT0wfCRzKGx8PTAsNTkpLChmPTB8YVsoRD1jKzR8MCk+PjJdKT4+PjA+PSgwfGFbKGs9Yys4fDApPj4yXSk+Pj4wJiYoUTAoYywxKSxmPTB8YVtEPj4yXSksYVtEPj4yXT1mKzEsZmVbZj4+MF09Mzgs''@;'; + put 'put ''MCE9KDB8TSkmJigocD1NLWx8MCktMnwwKT4+PjA8PTYmJihxeShiLGwscCksZmVbYitwPj4wXT0wLGFbQT4+Ml09YiwwIT0oMHwobT0wfHR3KEEsMjM2NjQsMjUyLDgsOTYpKSkpJiYoYVt3Pj4yXT1hW20rND4+Ml0sb28oYiwxMzczOTUsdyksKGw9MHxhW0Q+PjJdKT4+PjA+PSgwfGFbaz4+''@;'; + put 'put ''Ml0pPj4+MCYmKFEwKGMsMSksbD0wfGFbRD4+Ml0pLGFbRD4+Ml09bCsxLGZlW2w+PjBdPTM1LHVvKGMsYiksKGw9MHxhW0Q+PjJdKT4+PjA+PSgwfGFbaz4+Ml0pPj4+MCYmKFEwKGMsMSksbD0wfGFbRD4+Ml0pLGFbRD4+Ml09bCsxLGZlW2w+PjBdPTU5LGw9TSsxfDApLGxlPVIsMHxsfWZ1''@;'; + put 'put ''bmN0aW9uIE9OKGwsYyl7Y3w9MDt2YXIgdyxiLGssUixLLGY9MCxwPTAsbT0wLEE9MCxNPTAsRD0wLEc9MDtmb3IoSz1sZSxsZT1sZSsxMDcyfDAsaz1LKzh8MCxiPUssUj1LKzI0fDAsYVsodz1LKzE2fDApPj4yXT1sfD0wLCgwfGFbNDczMjJdKSE9KDB8YykmJihhWzQ3MzIyXT1jLGZlWzE5''@;'; + put 'put ''NDk1OF09MCksdXMoUiwxMDI0LEsrNDB8MCksRz1SKzR8MCxEPVIrOHwwO2Fbdz4+Ml09cD1sKzF8MCwoZj0wfGZlW2w+PjBdKTw8MjQ+PjI0Oyl7ZG97aWYoKDI1NSZmKTwxOTIpaWYoZjw8MjQ+PjI0PT0zOClpZihwPTB8Uk4odykpe2lmKHA+Pj4wPDEyNyl7Zj0yNTUmcDticmVha31pZihm''@;'; + put 'put ''PShsPTB8YVtHPj4yXSk+Pj4wPj0oMHxhW0Q+PjJdKT4+PjAscD4+PjA8MjA0Nyl7ZiYmKFEwKFIsMSksbD0wfGFbRz4+Ml0pLGFbRz4+Ml09bCsxLGZlW2w+PjBdPXA+Pj42fDE5MixmPTI1NSYoNjMmcHwxMjgpO2JyZWFrfWYmJihRMChSLDEpLGw9MHxhW0c+PjJdKSxhW0c+PjJdPWwrMSxm''@;'; + put 'put ''ZVtsPj4wXT1wPj4+MTJ8MjI0LChsPTB8YVtHPj4yXSk+Pj4wPj0oMHxhW0Q+PjJdKT4+PjAmJihRMChSLDEpLGw9MHxhW0c+PjJdKSxhW0c+PjJdPWwrMSxmZVtsPj4wXT1wPj4+NiY2M3wxMjgsZj0yNTUmKDYzJnB8MTI4KX1lbHNlIGY9Mzg7ZWxzZSBBPTAsTT05O2Vsc2UoMjU1JmYpPj0y''@;'; + put 'put ''MjQ/KDI1NSZmKT49MjQwPygyNTUmZik8MjQ4PyhBPTMsTT05KTooMHxmZVsxOTQ5NThdfHwoYVtiPj4yXT0wfHRpKGMpLCRyKDAsMTA5NzA3LGIpLGZlWzE5NDk1OF09MSksQT0tMSxmPTB8X0ooZixSKSxNPTkpOihBPTIsTT05KTooQT0xLE09OSl9d2hpbGUoMCk7ZG97aWYoOT09KDB8TSkp''@;'; + put 'put ''e2ZvcihNPTAsbT0wOzspe2lmKCgwfG0pPj0oMHxBKSl7TT0zNDticmVha31pZigoLTY0JmZlW3A+PjBdKTw8MjQ+PjI0IT0tMTI4KWJyZWFrOyhsPTB8YVtHPj4yXSk+Pj4wPj0oMHxhW0Q+PjJdKT4+PjAmJihRMChSLDEpLGw9MHxhW0c+PjJdKSxhW0c+PjJdPWwrMSxmZVtsPj4wXT1mLG09''@;'; + put 'put ''bSsxfDAsZj0wfGZlW3A+PjBdLHA9cCsxfDB9aWYoMzQ9PSgwfE0pKXtNPTAsYVt3Pj4yXT1wO2JyZWFrfWFbdz4+Ml09cCwwfGZlWzE5NDk1OF18fChtPTB8dGkoYyksYVtrPj4yXT1BKzEsYVtrKzQ+PjJdPW0sJHIoMCwxMDk4MjgsayksZmVbMTk0OTU4XT0xKSxmPTB8X0ooZixSKX19d2hp''@;'; + put 'put ''bGUoMCk7KGw9MHxhW0c+PjJdKT4+PjA+PSgwfGFbRD4+Ml0pPj4+MCYmKFEwKFIsMSksbD0wfGFbRz4+Ml0pLGFbRz4+Ml09bCsxLGZlW2w+PjBdPWYsbD0wfGFbdz4+Ml19cmV0dXJuKGw9MHxhW0c+PjJdKT4+PjA+PSgwfGFbRD4+Ml0pPj4+MCYmKFEwKFIsMSksbD0wfGFbRz4+Ml0pLGZl''@;'; + put 'put ''W2w+PjBdPTAsYVtHPj4yXT1EPTB8YVtSPj4yXSxHPTB8cmEoRCksQzIoUiksbGU9SywwfEd9ZnVuY3Rpb24gX0oobCxjKXtjfD0wO3ZhciBBLHcsYixmPTAscD0wLG09MCxrPTA7Zm9yKGI9bGUsbGU9bGUrMTZ8MCxmZVsobT1iKT4+MF09bHw9MCxmZVttKzE+PjBdPTAsQT1jKzR8MCx3PWMr''@;'; + put 'put ''OHwwLGY9MHxVbyhtPTB8eWsobSkpLHA9bTshKCgwfGYpPD0xKTspKGw9MHxhW0E+PjJdKT4+PjA+PSgwfGFbdz4+Ml0pPj4+MCYmKFEwKGMsMSksbD0wfGFbQT4+Ml0pLGs9MHxmZVtwPj4wXSxhW0E+PjJdPWwrMSxmZVtsPj4wXT1rLGY9ZistMXwwLHA9cCsxfDA7cmV0dXJuIGs9MHxmZVtw''@;'; + put 'put ''Pj4wXSxGdChtKSxsZT1iLDB8a31mdW5jdGlvbiBSTihsKXt2YXIgdyxjPTAsZj0wLHA9MCxtPTAsQT0wO3c9bGUsbGU9bGUrMzJ8MCxBPXcsYz13Kzh8MCxmPTB8YVsobHw9MCk+PjJdO2U6ZG97aWYoMzUhPSgwfGZlW2Y+PjBdKSl7YVtBPj4yXT1jLG09MDt0OmZvcig7Oyl7aWYoKDB8bSk+''@;'; + put 'put ''PTgpe2M9MDticmVhayBlfXN3aXRjaCgocD0wfGZlW2YrbT4+MF0pPDwyND4+MjQpe2Nhc2UgMDpjPTA7YnJlYWsgZTtjYXNlIDU5OmJyZWFrIHR9ZmVbYz4+MF09cCxjPWMrMXwwLG09bSsxfDB9ZmVbYz4+MF09MCwoYz0wfHR3KEEsMjM2NjQsMjUyLDgsOTYpKT8oZj1mKyhtKzEpfDAsYz0w''@;'; + put 'put ''fGFbYys0Pj4yXSk6Yz0wfWVsc2V7Yz0yNTUmKEE9MHxmZVtmKzE+PjBdKTt0OmRve2lmKCgzMnxBKTw8MjQ+PjI0PT0xMjApZm9yKEE9MCxtPTI7Oyl7aWYoKDB8bSk+PTgpe3A9QTticmVhayB0fWlmKGM9MjU1JihwPTB8ZmVbZittPj4wXSksKHArLTY1JjI1NSk+PTYpaWYoKHArLTk3JjI1''@;'; + put 'put ''NSk+PTYpe2lmKCEoKHArLTQ4JjI1NSk8MTApKXtwPUE7YnJlYWsgdH1wPS00OH1lbHNlIHA9LTg3O2Vsc2UgcD0tNTU7QT0oYz1wK2N8MCkrKEE8PDQpfDAsbT1tKzF8MH1lbHNlIGZvcihwPTAsbT0xOzspe2lmKCgwfG0pPj04fHwoYz0yNTUmKEE9MHxmZVtmK20+PjBdKSwoQSstNDgmMjU1''@;'; + put 'put ''KT49MTApKWJyZWFrIHQ7cD0oMTAqcHwwKS00OCtjfDAsbT1tKzF8MH19d2hpbGUoMCk7Zj0oYz01OT09KDB8YykpP2YrKG0rMSl8MDpmLGM9Yz9wOjB9fXdoaWxlKDApO3JldHVybiBhW2w+PjJdPWYsbGU9dywwfGN9ZnVuY3Rpb24geWsobCl7dmFyIG0sdyxrLGM9MCxmPTAscD0wLEE9MCxi''@;'; + put 'put ''PTA7Zm9yKGs9bGUsbGU9bGUrMTA1NnwwLHc9ays4fDAsYVsobT1rKT4+Ml09bHw9MCx1cyh3LDEwMjQsaysyNHwwKSxiPXcrNHwwLEE9dys4fDA7YVttPj4yXT1sKzEsKGM9MHxmZVtsPj4wXSk8PDI0Pj4yNDspe2w9MjU1JmMsYzw8MjQ+PjI0PT0zOD8obD0wfFJOKG0pKT9wPTU6KGw9Mzgs''@;'; + put 'put ''cD02KTpwPTU7ZG97aWYoNT09KDB8cCkpaWYocD0wLGw+Pj4wPDEyNylwPTY7ZWxzZXtpZihmPShjPTB8YVtiPj4yXSk+Pj4wPj0oMHxhW0E+PjJdKT4+PjAsbD4+PjA8MjA0Nyl7ZiYmKFEwKHcsMSksYz0wfGFbYj4+Ml0pLGFbYj4+Ml09YysxLGZlW2M+PjBdPWw+Pj42fDE5MiwoYz0wfGFb''@;'; + put 'put ''Yj4+Ml0pPj4+MD49KDB8YVtBPj4yXSk+Pj4wJiYoUTAodywxKSxjPTB8YVtiPj4yXSksbD02MyZsfDEyODticmVha31mJiYoUTAodywxKSxjPTB8YVtiPj4yXSksYVtiPj4yXT1jKzEsZmVbYz4+MF09bD4+PjEyfDIyNCwoYz0wfGFbYj4+Ml0pPj4+MD49KDB8YVtBPj4yXSk+Pj4wJiYoUTAo''@;'; + put 'put ''dywxKSxjPTB8YVtiPj4yXSksYVtiPj4yXT1jKzEsZmVbYz4+MF09bD4+PjYmNjN8MTI4LChjPTB8YVtiPj4yXSk+Pj4wPj0oMHxhW0E+PjJdKT4+PjAmJihRMCh3LDEpLGM9MHxhW2I+PjJdKSxsPTYzJmx8MTI4fX13aGlsZSgwKTs2PT0oMHxwKSYmKGM9MHxhW2I+PjJdKT4+PjA+PSgwfGFb''@;'; + put 'put ''QT4+Ml0pPj4+MCYmKFEwKHcsMSksYz0wfGFbYj4+Ml0pLGFbYj4+Ml09YysxLGZlW2M+PjBdPWwsbD0wfGFbbT4+Ml19cmV0dXJuKGw9MHxhW2I+PjJdKT4+PjA+PSgwfGFbQT4+Ml0pPj4+MCYmKFEwKHcsMSksbD0wfGFbYj4+Ml0pLGZlW2w+PjBdPTAsYVtiPj4yXT1BPTB8YVt3Pj4yXSxi''@;'; + put 'put ''PTB8cmEoQSksQzIodyksbGU9aywwfGJ9ZnVuY3Rpb24gQ0oobCl7bHw9MDt2YXIgbSx3LGM9MCxmPTAscD0wLEE9MDtmb3Iodz1sZSxsZT1sZSsxMDQwfDAsdXMobT13LDEwMjQsdysxNnwwKSxBPW0rNHwwLHA9bSs4fDA7Yz1sKzF8MCwoZj0wfGZlW2w+PjBdKTw8MjQ+PjI0OykoMjU1JmYp''@;'; + put 'put ''PDEyNz8oKGw9MHxhW0E+PjJdKT4+PjA+PSgwfGFbcD4+Ml0pPj4+MCYmKFEwKG0sMSksbD0wfGFbQT4+Ml0pLGFbQT4+Ml09bCsxLGZlW2w+PjBdPWYsbD1jKTooZj02MyZmZVtjPj4wXXxmPDw2JjI1NSwoYz0wfGFbQT4+Ml0pPj4+MD49KDB8YVtwPj4yXSk+Pj4wJiYoUTAobSwxKSxjPTB8''@;'; + put 'put ''YVtBPj4yXSksYVtBPj4yXT1jKzEsZmVbYz4+MF09ZixsPWwrMnwwKTtyZXR1cm4obD0wfGFbQT4+Ml0pPj4+MD49KDB8YVtwPj4yXSk+Pj4wJiYoUTAobSwxKSxsPTB8YVtBPj4yXSksZmVbbD4+MF09MCxhW0E+PjJdPXA9MHxhW20+PjJdLEE9MHxyYShwKSxDMihtKSxsZT13LDB8QX1mdW5j''@;'; + put 'put ''dGlvbiBCbGUobCxjKXt2YXIgcCxtLEEsdyxiLGssRCxmPTAsTT0wO3JldHVybiBEPWxlLGxlPWxlKzgwfDAscD1EKzQ4fDAsZj1EKzMyfDAsbT1EKzY0fDAsQT1EKzE2fDAsdz1ELCtfWyhiPTE2KyhjfD0wKXwwKT4+M10+PStfWzQ4KyhNPTB8YVsoaz0xNisobHw9MCl8MCk+PjJdKT4+M10m''@;'; + put 'put ''JitfW00rNjQ+PjNdPj0rX1tjPj4zXSYmK19bYysyND4+M10+PStfW00rNTY+PjNdJiYrX1tNKzcyPj4zXT49K19bYys4Pj4zXT8oTT1NKzE2fDAsYVtmPj4yXT1hW2I+PjJdLGFbZis0Pj4yXT1hW2IrND4+Ml0sYVtmKzg+PjJdPWFbYis4Pj4yXSxhW2YrMTI+PjJdPWFbYisxMj4+Ml0sYVtw''@;'; + put 'put ''Pj4yXT1hW2M+PjJdLGFbcCs0Pj4yXT1hW2MrND4+Ml0sYVtwKzg+PjJdPWFbYys4Pj4yXSxhW3ArMTI+PjJdPWFbYysxMj4+Ml0sZnVuY3Rpb24gUGxlKGwsYyxmKXt2YXIgcDtwPS41KigrX1s4KyhmfD0wKT4+M10rICtfWzgrKGN8PTApPj4zXSksX1sobHw9MCk+PjNdPS41KigrX1tmPj4z''@;'; + put 'put ''XSsgK19bYz4+M10pLF9bbCs4Pj4zXT1wfShBLGYscCksYVtmPj4yXT1hW00+PjJdLGFbZis0Pj4yXT1hW00rND4+Ml0sYVtmKzg+PjJdPWFbTSs4Pj4yXSxhW2YrMTI+PjJdPWFbTSsxMj4+Ml0sYVtwPj4yXT1hW0E+PjJdLGFbcCs0Pj4yXT1hW0ErND4+Ml0sYVtwKzg+PjJdPWFbQSs4Pj4y''@;'; + put 'put ''XSxhW3ArMTI+PjJdPWFbQSsxMj4+Ml0seE4odyxmLHApLGFbbT4+Ml09bCxhW20rND4+Ml09MCxmPTB8YVsxMisoMHxhWzQrKDB8YVs4KygwfGFbaz4+Ml0pPj4yXSk+PjJdKT4+Ml0sYVtwPj4yXT1hW3c+PjJdLGFbcCs0Pj4yXT1hW3crND4+Ml0sYVtwKzg+PjJdPWFbdys4Pj4yXSxhW3Ar''@;'; + put 'put ''MTI+PjJdPWFbdysxMj4+Ml0sZj0wfEJpWzEyNyZmXShtLHApKTpmPTAsbGU9RCwwfGZ9ZnVuY3Rpb24gQk4obCxjKXt2YXIgcCxtLEEsdyxiLGssTSxEO3JldHVybiBjfD0wLHA9bGUsbGU9bGUrODB8MCxiPXArNjR8MCxrPXArNDh8MCxEPXArMzJ8MCxBPXArMTZ8MCxfWyhNPXApPj4zXT0u''@;'; + put 'put ''NSorX1syNCsobHw9MCk+PjNdLF9bTSs4Pj4zXT0uNSorX1tsKzMyPj4zXSxhW2s+PjJdPWFbKGw9bCs1NnwwKT4+Ml0sYVtrKzQ+PjJdPWFbbCs0Pj4yXSxhW2srOD4+Ml09YVtsKzg+PjJdLGFbaysxMj4+Ml09YVtsKzEyPj4yXSxhW2I+PjJdPWFbTT4+Ml0sYVtiKzQ+PjJdPWFbTSs0Pj4y''@;'; + put 'put ''XSxhW2IrOD4+Ml09YVtNKzg+PjJdLGFbYisxMj4+Ml09YVtNKzEyPj4yXSx4TihELGssYiksdz0rX1tEPj4zXSxtPStfW0QrOD4+M10sYVtrPj4yXT1hW2w+PjJdLGFbays0Pj4yXT1hW2wrND4+Ml0sYVtrKzg+PjJdPWFbbCs4Pj4yXSxhW2srMTI+PjJdPWFbbCsxMj4+Ml0sYVtiPj4yXT1h''@;'; + put 'put ''W00+PjJdLGFbYis0Pj4yXT1hW00rND4+Ml0sYVtiKzg+PjJdPWFbTSs4Pj4yXSxhW2IrMTI+PjJdPWFbTSsxMj4+Ml0sQUooQSxrLGIpLGxlPXAsMHwoK19bYysxNj4+M10+PXcmJitfW0E+PjNdPj0rX1tjPj4zXSYmK19bYysyND4+M10+PW0/K19bQSs4Pj4zXT49K19bYys4Pj4zXSYxOjAp''@;'; + put 'put ''fWZ1bmN0aW9uIGtKKGwsYyl7Y3w9MDt2YXIgdyxiLGssTSxSLGY9MCxwPTAsbT0wLEE9MCxEPTA7Uj1sZSxsZT1sZSs4MHwwLE09Uis0OHwwLGs9UixiPTB8YVs4KyhsPTB8YVsodz0xNisobHw9MCl8MCk+PjJdKT4+Ml07ZTpkb3tpZigwIT0oMHxiKSYmKEE9Yis4fDAsYVtrPj4yXT1hW0E+''@;'; + put 'put ''PjJdLGFbays0Pj4yXT1hW0ErND4+Ml0sYVtrKzg+PjJdPWFbQSs4Pj4yXSxhW2srMTI+PjJdPWFbQSsxMj4+Ml0sYVtrKzE2Pj4yXT1hW0ErMTY+PjJdLGFbaysyMD4+Ml09YVtBKzIwPj4yXSxhW2srMjQ+PjJdPWFbQSsyND4+Ml0sYVtrKzI4Pj4yXT1hW0ErMjg+PjJdLGFbTT4+Ml09YVtj''@;'; + put 'put ''Pj4yXSxhW00rND4+Ml09YVtjKzQ+PjJdLGFbTSs4Pj4yXT1hW2MrOD4+Ml0sYVtNKzEyPj4yXT1hW2MrMTI+PjJdLGFbTSsxNj4+Ml09YVtjKzE2Pj4yXSxhW00rMjA+PjJdPWFbYysyMD4+Ml0sYVtNKzI0Pj4yXT1hW2MrMjQ+PjJdLGFbTSsyOD4+Ml09YVtjKzI4Pj4yXSwwIT0oMHxGbGUo''@;'; + put 'put ''ayxNKSkpKXtmb3IoZj1iKzR8MCxsPTA7ISgoMHxsKT49KDB8YVtmPj4yXSkpOyl7bT0oMHxhW2I+PjJdKSsoNDgqbHwwKXwwLEE9KHA9aykrNDh8MDtkb3thW3A+PjJdPWFbbT4+Ml0scD1wKzR8MCxtPW0rNHwwfXdoaWxlKCgwfHApPCgwfEEpKTtpZihhW00+PjJdPWFbYz4+Ml0sYVtNKzQ+''@;'; + put 'put ''PjJdPWFbYys0Pj4yXSxhW00rOD4+Ml09YVtjKzg+PjJdLGFbTSsxMj4+Ml09YVtjKzEyPj4yXSxhW00rMTY+PjJdPWFbYysxNj4+Ml0sYVtNKzIwPj4yXT1hW2MrMjA+PjJdLGFbTSsyND4+Ml09YVtjKzI0Pj4yXSxhW00rMjg+PjJdPWFbYysyOD4+Ml0sKDB8SGxlKGssTSkpPDwyND4+MjQp''@;'; + put 'put ''e2w9MTticmVhayBlfWw9bCsxfDB9bD0wfGFbdz4+Ml0sRD03fWVsc2UgRD03fXdoaWxlKDApO2Rve2lmKDc9PSgwfEQpKXtpZigwfChsPTB8YVtsKzk2Pj4yXSkmJihhW00+PjJdPWFbYz4+Ml0sYVtNKzQ+PjJdPWFbYys0Pj4yXSxhW00rOD4+Ml09YVtjKzg+PjJdLGFbTSsxMj4+Ml09YVtj''@;'; + put 'put ''KzEyPj4yXSxhW00rMTY+PjJdPWFbYysxNj4+Ml0sYVtNKzIwPj4yXT1hW2MrMjA+PjJdLGFbTSsyND4+Ml09YVtjKzI0Pj4yXSxhW00rMjg+PjJdPWFbYysyOD4+Ml0sKDB8Qk4obCxNKSk8PDI0Pj4yNCkpe2w9MTticmVha31sPTB9fXdoaWxlKDApO3JldHVybiBsZT1SLDB8bH1mdW5jdGlv''@;'; + put 'put ''biBGbGUobCxjKXtyZXR1cm4gMHwoK19bMTYrKGx8PTApPj4zXT49K19bKGN8PTApPj4zXSYmK19bYysxNj4+M10+PStfW2w+PjNdJiYrX1tsKzI0Pj4zXT49K19bYys4Pj4zXT8rX1tjKzI0Pj4zXT49K19bbCs4Pj4zXSYxOjApfWZ1bmN0aW9uIEhsZShsLGMpe2N8PTA7dmFyIG0sYixrLE0s''@;'; + put 'put ''UixmPTAscD0wLEE9MCx3PTAsRD0wO2ZvcihSPWxlLGxlPWxlKzk2fDAsTT1SKzY0fDAsaz1SKzQ4fDAsYj1SKzMyfDAsbT1SKzE2fDAsQT1SLChmPTB8YVsoRD00KyhsfD0wKXwwKT4+Ml0pfHxQcigxMDk5MzcsMTA3NjYxLDE2MzcsMTA5OTQ1KSxhW0E+PjJdPWFbKHA9MHxhW2w+PjJdKT4+''@;'; + put 'put ''Ml0sYVtBKzQ+PjJdPWFbcCs0Pj4yXSxhW0ErOD4+Ml09YVtwKzg+PjJdLGFbQSsxMj4+Ml09YVtwKzEyPj4yXSxwPTE7Oyl7aWYoKDB8cCk+PSgwfGYpKXt3PTc7YnJlYWt9aWYoYVttPj4yXT1hWyhmPSgwfGFbbD4+Ml0pKyhwPDw0KXwwKT4+Ml0sYVttKzQ+PjJdPWFbZis0Pj4yXSxhW20r''@;'; + put 'put ''OD4+Ml09YVtmKzg+PjJdLGFbbSsxMj4+Ml09YVtmKzEyPj4yXSxhW2I+PjJdPWFbZj4+Ml0sYVtiKzQ+PjJdPWFbZis0Pj4yXSxhW2IrOD4+Ml09YVtmKzg+PjJdLGFbYisxMj4+Ml09YVtmKzEyPj4yXSxhW2s+PjJdPWFbQT4+Ml0sYVtrKzQ+PjJdPWFbQSs0Pj4yXSxhW2srOD4+Ml09YVtB''@;'; + put 'put ''Kzg+PjJdLGFbaysxMj4+Ml09YVtBKzEyPj4yXSxhW00+PjJdPWFbYz4+Ml0sYVtNKzQ+PjJdPWFbYys0Pj4yXSxhW00rOD4+Ml09YVtjKzg+PjJdLGFbTSsxMj4+Ml09YVtjKzEyPj4yXSxhW00rMTY+PjJdPWFbYysxNj4+Ml0sYVtNKzIwPj4yXT1hW2MrMjA+PjJdLGFbTSsyND4+Ml09YVtj''@;'; + put 'put ''KzI0Pj4yXSxhW00rMjg+PjJdPWFbYysyOD4+Ml0sLTEhPSgwfEdJKGIsayxNKSkpe2Y9MTticmVha31hW0E+PjJdPWFbbT4+Ml0sYVtBKzQ+PjJdPWFbbSs0Pj4yXSxhW0ErOD4+Ml09YVttKzg+PjJdLGFbQSsxMj4+Ml09YVttKzEyPj4yXSxwPXArMXwwLGY9MHxhW0Q+PjJdfWRve2lmKDc9''@;'; + put 'put ''PSgwfHcpKXtpZigwfChmPTB8YVtsKzg+PjJdKSYmKHc9MHxhW2w+PjJdLGFbYj4+Ml09YVsoQT1sKzE2fDApPj4yXSxhW2IrND4+Ml09YVtBKzQ+PjJdLGFbYis4Pj4yXT1hW0ErOD4+Ml0sYVtiKzEyPj4yXT1hW0ErMTI+PjJdLGFbaz4+Ml09YVt3Pj4yXSxhW2srND4+Ml09YVt3KzQ+PjJd''@;'; + put 'put ''LGFbays4Pj4yXT1hW3crOD4+Ml0sYVtrKzEyPj4yXT1hW3crMTI+PjJdLGFbTT4+Ml09YVtjPj4yXSxhW00rND4+Ml09YVtjKzQ+PjJdLGFbTSs4Pj4yXT1hW2MrOD4+Ml0sYVtNKzEyPj4yXT1hW2MrMTI+PjJdLGFbTSsxNj4+Ml09YVtjKzE2Pj4yXSxhW00rMjA+PjJdPWFbYysyMD4+Ml0s''@;'; + put 'put ''YVtNKzI0Pj4yXT1hW2MrMjQ+PjJdLGFbTSsyOD4+Ml09YVtjKzI4Pj4yXSwoMHxTSihiLGssMCxNKSk8PDI0Pj4yNCkpe2Y9MTticmVha31pZigwfChmPTB8YVtsKzEyPj4yXSkmJihEPSgwfGFbbD4+Ml0pKygoMHxhW0Q+PjJdKS0xPDw0KXwwLGFbYj4+Ml09YVsodz1sKzMyfDApPj4yXSxh''@;'; + put 'put ''W2IrND4+Ml09YVt3KzQ+PjJdLGFbYis4Pj4yXT1hW3crOD4+Ml0sYVtiKzEyPj4yXT1hW3crMTI+PjJdLGFbaz4+Ml09YVtEPj4yXSxhW2srND4+Ml09YVtEKzQ+PjJdLGFbays4Pj4yXT1hW0QrOD4+Ml0sYVtrKzEyPj4yXT1hW0QrMTI+PjJdLGFbTT4+Ml09YVtjPj4yXSxhW00rND4+Ml09''@;'; + put 'put ''YVtjKzQ+PjJdLGFbTSs4Pj4yXT1hW2MrOD4+Ml0sYVtNKzEyPj4yXT1hW2MrMTI+PjJdLGFbTSsxNj4+Ml09YVtjKzE2Pj4yXSxhW00rMjA+PjJdPWFbYysyMD4+Ml0sYVtNKzI0Pj4yXT1hW2MrMjQ+PjJdLGFbTSsyOD4+Ml09YVtjKzI4Pj4yXSwoMHxTSihiLGssMCxNKSk8PDI0Pj4yNCkp''@;'; + put 'put ''e2Y9MTticmVha31mPTB9fXdoaWxlKDApO3JldHVybiBsZT1SLDB8Zn1mdW5jdGlvbiBTSihsLGMsZixwKXtjfD0wO3ZhciBBLHcsYixrLE0sRCxtPTAsUj0wO3JldHVybiBNPWxlLGxlPWxlKzE2MHwwLEE9TSsxNDR8MCxEPU0rOTZ8MCx3PU0rNjR8MCxiPU0rMzJ8MCxrPU0sUj0rX1sxNiso''@;'; + put 'put ''cHw9MCk+PjNdLGFbKG09TSsxMjh8MCk+PjJdPWFbKGx8PTApPj4yXSxhW20rND4+Ml09YVtsKzQ+PjJdLGFbbSs4Pj4yXT1hW2wrOD4+Ml0sYVttKzEyPj4yXT1hW2wrMTI+PjJdLGFbQT4+Ml09YVtjPj4yXSxhW0ErND4+Ml09YVtjKzQ+PjJdLGFbQSs4Pj4yXT1hW2MrOD4+Ml0sYVtBKzEy''@;'; + put 'put ''Pj4yXT1hW2MrMTI+PjJdLFBBKEQsbSxBLDEpLG09Uj49K19bRD4+M10mJihhW20+PjJdPWFbbD4+Ml0sYVttKzQ+PjJdPWFbbCs0Pj4yXSxhW20rOD4+Ml09YVtsKzg+PjJdLGFbbSsxMj4+Ml09YVtsKzEyPj4yXSxhW0E+PjJdPWFbYz4+Ml0sYVtBKzQ+PjJdPWFbYys0Pj4yXSxhW0ErOD4+''@;'; + put 'put ''Ml09YVtjKzg+PjJdLGFbQSsxMj4+Ml09YVtjKzEyPj4yXSxQQSh3LG0sQSwxKSwrX1t3KzE2Pj4zXT49K19bcD4+M10pJiYoUj0rX1twKzI0Pj4zXSxhW20+PjJdPWFbbD4+Ml0sYVttKzQ+PjJdPWFbbCs0Pj4yXSxhW20rOD4+Ml09YVtsKzg+PjJdLGFbbSsxMj4+Ml09YVtsKzEyPj4yXSxh''@;'; + put 'put ''W0E+PjJdPWFbYz4+Ml0sYVtBKzQ+PjJdPWFbYys0Pj4yXSxhW0ErOD4+Ml09YVtjKzg+PjJdLGFbQSsxMj4+Ml09YVtjKzEyPj4yXSxQQShiLG0sQSwxKSxSPj0rX1tiKzg+PjNdKSYmKGFbbT4+Ml09YVtsPj4yXSxhW20rND4+Ml09YVtsKzQ+PjJdLGFbbSs4Pj4yXT1hW2wrOD4+Ml0sYVtt''@;'; + put 'put ''KzEyPj4yXT1hW2wrMTI+PjJdLGFbQT4+Ml09YVtjPj4yXSxhW0ErND4+Ml09YVtjKzQ+PjJdLGFbQSs4Pj4yXT1hW2MrOD4+Ml0sYVtBKzEyPj4yXT1hW2MrMTI+PjJdLFBBKGssbSxBLDEpLCtfW2srMjQ+PjNdPj0rX1twKzg+PjNdKT8xOjAsbGU9TSwwfG19ZnVuY3Rpb24gcjQobCxjKXt2''@;'; + put 'put ''YXIgZjtjfD0wLChmPTB8TGkobHw9MCwxMTAwNTYpKSYmKGM9MHxmZVtmPj4wXT8wfGZ1bmN0aW9uIE5sZShsLGMpe2x8PTAsY3w9MDt2YXIgcCxtLGY9MDttPWxlLGxlPWxlKzE2fDAscD1tO2U6ZG97aWYoMCE9KDB8bCkmJihmPTB8ZmVbbD4+MF0sZjw8MjQ+PjI0IT0wKSl7c3dpdGNoKGY8''@;'; + put 'put ''PDI0Pj4yNHwwKXtjYXNlIDQ4OmM9MjticmVhayBlO2Nhc2UgNTc6Y2FzZSA1NjpjYXNlIDU1OmNhc2UgNTQ6Y2FzZSA1MzpjYXNlIDUyOmNhc2UgNTE6Y2FzZSA1MDpjYXNlIDQ5OmM9MTA7YnJlYWsgZTtjYXNlIDY3OmNhc2UgOTk6aWYoISgwfHkwKGY9bCsxfDAsMTA5OTYwKSkpe2M9NDti''@;'; + put 'put ''cmVhayBlfWlmKCEoMHx5MChmLDEwOTk2NikpKXtjPTEyO2JyZWFrIGV9YnJlYWs7Y2FzZSA3MDpjYXNlIDEwMjppZighKDB8eTAobCsxfDAsMTA5OTc0KSkpe2M9MjticmVhayBlfWJyZWFrO2Nhc2UgNzY6Y2FzZSAxMDg6aWYoISgwfHkwKGwrMXwwLDEwOTk3OSkpKXtjPTI7YnJlYWsgZX1i''@;'; + put 'put ''cmVhaztjYXNlIDc4OmNhc2UgMTEwOmlmKCEoMHx5MChmPWwrMXwwLDEwOTk4MykpKXtjPTA7YnJlYWsgZX1pZighKDB8eTAoZiwxMDk5ODcpKSl7Yz0yO2JyZWFrIGV9YnJlYWs7Y2FzZSA3OTpjYXNlIDExMTppZighKDB8eTAobCsxfDAsMTA5OTg5KSkpe2M9ODticmVhayBlfWJyZWFrO2Nh''@;'; + put 'put ''c2UgODA6Y2FzZSAxMTI6aWYoISgwfHkwKGwrMXwwLDEwOTk5NCkpKXtjPTY7YnJlYWsgZX1icmVhaztjYXNlIDgzOmNhc2UgMTE1OmlmKCEoMHx5MChsKzF8MCwxMTAwMDIpKSl7Yz0xMDticmVhayBlfWJyZWFrO2Nhc2UgODQ6Y2FzZSAxMTY6aWYoISgwfHkwKGwrMXwwLDExMDAwOCkpKXtj''@;'; + put 'put ''PTEwO2JyZWFrIGV9YnJlYWs7Y2FzZSA4OTpjYXNlIDEyMTppZighKDB8eTAobCsxfDAsMTEwMDEyKSkpe2M9MTA7YnJlYWsgZX19YVtwPj4yXT1sLCRyKDAsMTEwMDE1LHApfX13aGlsZSgwKTtyZXR1cm4gbGU9bSwwfGN9KGYsYyk6MCksaXRbKGw9MTM2KygwfGFbbCsxNj4+Ml0pfDApPj4x''@;'; + put 'put ''XT1jfGhyW2w+PjFdfWZ1bmN0aW9uIEFEKGwsYyxmLHAsbSl7bHw9MCxjfD0wLGZ8PTAscD0rcDt2YXIgSyxnZSxPZSxMZSxSZSxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLHBlPTAsYmU9MCxIZT0wO1JlPWxlLGxlPWxlKzMyfDAsSz1SZSsxNnwwLGdlPVJlLE9lPTEmKG18PTAp''@;'; + put 'put ''LExlPTImbTtlOmRve2lmKDI9PSgwfGYpKWJlPStfW2wrMTY+PjNdLEE9K19bbD4+M10saz0rX1tsKzI0Pj4zXSxiPStfW2wrOD4+M10sQS09YmUtQSxfW0s+PjNdPUEsX1tnZT4+M109YmUsYi09ay1iLF9bSys4Pj4zXT1iLF9bZ2UrOD4+M109aztlbHNlIGZvcih3PStfW2w+PjNdLF9bZ2U+''@;'; + put 'put ''PjNdPXcsX1tLPj4zXT13LGs9K19bbCs4Pj4zXSxEPWdlKzh8MCxfW0Q+PjNdPWssUj1LKzh8MCxfW1I+PjNdPWssbT0wLEE9dyxiPWs7Oyl7aWYoKDB8bSk+PSgwfGYpKXtiZT13O2JyZWFrIGV9X1tLPj4zXT1NPStfWygocGU9K19bKEhlPWwrKG08PDQpfDApPj4zXSk8QT9IZTpLKT4+M10s''@;'; + put 'put ''X1tSPj4zXT1HPStfWygoYmU9K19bbCsobTw8NCkrOD4+M10pPGI/SGU6SykrOD4+M10sX1tnZT4+M109cGU9K19bKHBlPnc/SGU6Z2UpPj4zXSxfW0Q+PjNdPWJlPStfWyhiZT5rP0hlOmdlKSs4Pj4zXSxtPW0rMXwwLEE9TSxiPUcsdz1wZSxrPWJlfX13aGlsZSgwKTtwZT0odz0uNSooYmUt''@;'; + put 'put ''QSkpK0EsTT0oRz0uNSooay1iKSkrYixPZT8ocD0rRDAoKyhHKkcrdyp3KSksX1tjKzg+PjNdPTB8TGU/TTotTSxfW2M+PjNdPXBlLF9bYysxNj4+M109LjI1KnAsX1tjKzI0Pj4zXT1wKTooQT1rLU0sYj0rRGEoKyhrPXApKSxrPStoYSgrayksTGU/KHc9TS0oQSo9YiksQSs9TSk6KHc9YipB''@;'; + put 'put ''LU0sQT0tTS1HKmIpLF9bYys4Pj4zXT13LF9bYysyND4+M109QSxfW2M+PjNdPXBlLShwPWsqKGJlLXBlKSksX1tjKzE2Pj4zXT1wK3BlKSxsZT1SZX1mdW5jdGlvbiB4eShsLGMpe3ZhciBwLG0sZj0wO209MHxhWyhwPTE2KyhsfD0wKXwwKT4+Ml0sKGN8PTApPDwyND4+MjQ/KF9bbSs4OD4+''@;'; + put 'put ''M109Zj0zNiorX1ttKzQwPj4zXSxsPW0rMzJ8MCk6KF9bbSs4OD4+M109Zj0zNiorX1ttKzMyPj4zXSxsPW0rNDB8MCksX1ttKzk2Pj4zXT1mLF9bODArKDB8YVtwPj4yXSk+PjNdPTcyKitfW2w+PjNdfWZ1bmN0aW9uIE1KKGwsYyxmLHApe3ZhciBtO3B8PTAsYVsoZnw9MCk+PjJdPShtPSgw''@;'; + put 'put ''fChsPTB8YVsyMzYrKDB8YVsxNisobHw9MCk+PjJdKT4+Ml0pKT4oMHwoYz0wfGFbMjM2KygwfGFbMTYrKGN8PTApPj4yXSk+PjJdKSkpP2M6bCxhW3A+PjJdPW0/bDpjfWZ1bmN0aW9uIFBOKGwsYyxmLHApe2N8PTAsZnw9MCxwfD0wO3ZhciBNLG09MCxBPTAsdz0wLGI9MCxrPTAsRD0wO009''@;'; + put 'put ''bGUsbGU9bGUrMTZ8MCxBPU0rNHwwLG09TSxsPTB8YVsxNisobHw9MCk+PjJdO2Rve2lmKDE9PSgwfGZlW2wrMTU2Pj4wXSkpe2lmKGs9MHxhW2wrMjM2Pj4yXSwwfGFbbCsxNzY+PjJdKXtmb3Iodz0wfGFbbCsxODA+PjJdLGw9MCxtPTAsQT0wO2I9MHxhW3crKEE8PDIpPj4yXTspbD0oYj0o''@;'; + put 'put ''MHwoRD0wfGFbMjM2KygwfGFbMTYrKDB8YVsoMj09KDMmYVtiPj4yXXwwKT9iOmIrLTQ4fDApKzQwPj4yXSk+PjJdKT4+Ml0pKT4oMHxmKSk/KDB8RCk8KDB8cCk/bDoxOmwsbT1iP206MSxBPUErMXwwO2lmKG08PDI0Pj4yNCE9MCZsPDwyND4+MjQ9PTApe2FbYz4+Ml09aysxO2JyZWFrfWlm''@;'; + put 'put ''KCEobTw8MjQ+PjI0PT0wJmw8PDI0Pj4yNCE9MCkpYnJlYWs7YVtjKzQ+PjJdPWsrLTE7YnJlYWt9aWYoMiE9KDB8YVtsKzE4ND4+Ml0pJiZQcig4ODM5Nyw4ODQxNyw2Myw4ODQyNCksTUooMHxhWygyPT0oMyZhWyhEPTB8YVsodz0wfGFbbCsxODA+PjJdKT4+Ml0pPj4yXXwwKT9EOkQrLTQ4''@;'; + put 'put ''fDApKzQwPj4yXSwwfGFbKDI9PSgzJmFbKHc9MHxhW3crND4+Ml0pPj4yXXwwKT93OncrLTQ4fDApKzQwPj4yXSxBLG0pLCgwfCh3PTB8YVttPj4yXSkpPD0oMHxmKSl7YVtjPj4yXT1rLGFbYys4Pj4yXT1rO2JyZWFrfWlmKCgwfChsPTB8YVtBPj4yXSkpPj0oMHxwKSl7YVtjKzQ+PjJdPWss''@;'; + put 'put ''YVtjKzEyPj4yXT1rO2JyZWFrfWlmKCEoKEE9KDB8dyk+KDB8cCkpJihtPSgwfGwpPCgwfGYpKSkpe2lmKCFtJiYhKCgwfHcpPCgwfHApJigwfGwpPT0oMHxmKSl8fChhW2MrOD4+Ml09ayksIShBfHwoMHx3KT09KDB8cCkmKDB8bCk+KDB8ZikpKWJyZWFrO2FbYysxMj4+Ml09a319fXdoaWxl''@;'; + put 'put ''KDApO2xlPU19ZnVuY3Rpb24gd2sobCl7dmFyIGM7aDAobHw9MCwxMzc0NDcsMzA0LDEpLGREKGwpLGM9MHx2cigoMHxoclsxNzYrKDB8YVsxNisoMHxjcihsKSk+PjJdKT4+MV0pPDwzKSxhWzEzMisoMHxhW2wrMTY+PjJdKT4+Ml09Yyx4eShsLDEmYVsxMTYrKDB8YVsxNisoMHxjcihsKSk+''@;'; + put 'put ''PjJdKT4+Ml0pfWZ1bmN0aW9uIEVKKGwsYyxmLHApe2x8PTAsY3w9MCxmfD0wLHB8PTA7dmFyIEEsdyxrLEcscGUsbT0wLGI9MCxNPTAsRD0wLFI9MCxLPTAsZ2U9MCxiZT0wO3BlPWxlLGxlPWxlKzY0fDAsdz1wZSs0OHwwLEQ9cGUrNDB8MCxiPXBlKzI0fDAsQT1wZSs4fDAsRz1wZSs1Nnww''@;'; + put 'put ''LGs9cGU7ZG97aWYoMCE9KDB8bCkmJihSPTB8YVsxMzIrKDB8YVsoSz1mKzE2fDApPj4yXSk+PjJdLG09MHxIbyhmLGwpLDAhPSgwfGZlW20+PjBdKSkpe2lmKGZlW0c+PjBdPTAsbD1SKzh8MCwoMHxhWzQ3MTM3XSk+MiYmKGFbQT4+Ml09UixhW0ErND4+Ml09bCxhW0ErOD4+Ml09UisxNixh''@;'; + put 'put ''W0ErMTI+PjJdPUcsKDB8aWwobSw4ODUzNSxBKSk+Mikpe2ZlWzExOSsoMHxhW0s+PjJdKT4+MF09MSxtPTB8YVs0NzEzN107ZTpkb3tpZigrX1syMzI5M10+MClmb3IobD0wOzspe2lmKCgwfGwpPj0oMHxtKSlicmVhayBlO19bKEQ9UisobDw8Myl8MCk+PjNdPStfW0Q+PjNdLytfWzIzMjkz''@;'; + put 'put ''XSxsPWwrMXwwfX13aGlsZSgwKTtpZigoMHxtKT4zJiZRSihmLHAsMyksMzMhPSgwfGZlW0c+PjBdKSl7aWYoIWMpe2w9MTticmVha31pZighKCgwfHQxKDB8SG8oZixjKSkpPDwyND4+MjQpKXtsPTE7YnJlYWt9fWZlWzExOSsoMHxhW0s+PjJdKT4+MF09MyxsPTE7YnJlYWt9aWYoYVtiPj4y''@;'; + put 'put ''XT1SLGFbYis0Pj4yXT1sLGFbYis4Pj4yXT1HLCgwfGlsKG0sMTAxNzQ5LGIpKTw9MSl7YVt3Pj4yXT0wfHRpKGYpLGFbdys0Pj4yXT1tLCRyKDEsODg1NDksdyksbD0wO2JyZWFrfWZlWzExOSsoMHxhW0s+PjJdKT4+MF09MSxtPTB8YVs0NzEzN107ZTpkb3tpZigrX1syMzI5M10+MClmb3Io''@;'; + put 'put ''bD0wOzspe2lmKCgwfGwpPj0oMHxtKSlicmVhayBlO19bKGI9UisobDw8Myl8MCk+PjNdPStfW2I+PjNdLytfWzIzMjkzXSxsPWwrMXwwfX13aGlsZSgwKTtkb3tpZigoMHxtKT4yKXtpZigwfChsPTB8YVs0NzE3MV0pJiYwfChNPTB8SG8oZixsKSkmJihhW0Q+PjJdPWssMT09KDB8aWwoTSwx''@;'; + put 'put ''MDEyMDksRCkpKSl7Z2U9K19baz4+M10sX1tSKzE2Pj4zXT0oYmU9K19bMjMyOTNdKT4wP2dlL2JlOmdlLFFKKGYscCwzKTticmVha31lVihmLHApfX13aGlsZSgwKTtpZigzMyE9KDB8ZmVbRz4+MF0pKXtpZighYyl7bD0xO2JyZWFrfWlmKCEoKDB8dDEoMHxIbyhmLGMpKSk8PDI0Pj4yNCkp''@;'; + put 'put ''e2w9MTticmVha319ZmVbMTE5KygwfGFbSz4+Ml0pPj4wXT0zLGw9MX1lbHNlIGw9MH13aGlsZSgwKTtyZXR1cm4gbGU9cGUsMHxsfWZ1bmN0aW9uIFlsZShsLGMpe2N8PTA7dmFyIGIsayxNLEcsZj0wLHA9MCxtPTAsQT0wLHc9MCxEPTAsUj0wO2ZvcihHPWxlLGxlPWxlKzQ4fDAsaz1HKzMy''@;'; + put 'put ''fDAsRD1HLGI9MHxzaShsfD0wLDAsMTAyNjM3LDApLGY9MHxzaShsLDAsMTAyNjcxLDApLFI9KDB8bmcoMHxMaShsLDg4NTkzKSwwKSk8PDI0Pj4yNCE9MCxmfHwoZj0wfHNpKGwsMCwxMDI2NzEsMTk1MDU5KSksZnVuY3Rpb24gZnNlKGwpe1lKKGx8PTAsMCl9KGwpLE09bCsxNnwwLEE9MDs7''@;'; + put 'put ''KXtpZighKHc9MHxhWygwfGFbMTUyKygwfGFbTT4+Ml0pPj4yXSkrKEE8PDIpPj4yXSkpe3A9MTI7YnJlYWt9aWYoISgwfGZlWzExOSsocD0wfGFbKG09dysxNnwwKT4+Ml0pPj4wXSkpe2lmKDB8czIoMHx0aSh3KSwxMDgwMDYsNykpe3A9ODticmVha31wPTB8YVttPj4yXX0wfChwPTB8YVtw''@;'; + put 'put ''KzEwOD4+Ml0pJiZiayh3LHAsMTAyNjMzKSxBPUErMXwwfWU6ZG97aWYoOD09KDB8cCkpUj0wfHRpKHcpLGY9MHx0aShsKSxhW2s+PjJdPVIsYVtrKzQ+PjJdPWYsJHIoMSw4ODYwNSxrKSxmPS0xO2Vsc2UgaWYoMTI9PSgwfHApKXtpZih4SihsLGIsZiksdz0wfFVsZShsKSwwfGFbODgrKGY9''@;'; + put 'put ''MHxhWzgrKDB8YVtNPj4yXSk+PjJdKT4+Ml0/KGFbZis4ND4+Ml09MCxmPTEpOmY9MCwoQT0wIT0oMHxmKSl8KG09MCE9KDB8YykpJjE9PSgwfGFbNDcxMzRdKV4xfHwwPT0oMHxEeShsKSk/cD0wOigocD0wfGFbMTIrKDB8YVtNPj4yXSk+PjJdKSYmKGZlW3ArODE+PjBdPTApLHA9MSksaWco''@;'; + put 'put ''bCksQSYmKGM9MTYrKDB8YVtNPj4yXSl8MCxiRihELGwpLGFbYz4+Ml09YVtEPj4yXSxhW2MrND4+Ml09YVtEKzQ+PjJdLGFbYys4Pj4yXT1hW0QrOD4+Ml0sYVtjKzEyPj4yXT1hW0QrMTI+PjJdLGFbYysxNj4+Ml09YVtEKzE2Pj4yXSxhW2MrMjA+PjJdPWFbRCsyMD4+Ml0sYVtjKzI0Pj4y''@;'; + put 'put ''XT1hW0QrMjQ+PjJdLGFbYysyOD4+Ml09YVtEKzI4Pj4yXSksIW0pZm9yKGFbNDcxMzhdPTEscD0wfER0KGwpOzspe2lmKCFwKWJyZWFrIGU7X1sxNisoUj0wfGFbcCsxNj4+Ml0pPj4zXT03MiorX1soRD0wfGFbUisxMzI+PjJdKT4+M10sX1tSKzI0Pj4zXT03MiorX1tEKzg+PjNdLHA9MHx6''@;'; + put 'put ''dChsLHApfWRve2lmKCEoUnxBKSl7aWYoMD09K19bMTYrKFI9MHxhW00+PjJdKT4+M10mJjA9PStfW1IrMjQ+PjNdKWJyZWFrO05KKGwpfX13aGlsZSgwKTtpZigwIT0oMHx3KSYocHwoMHxZTihsKSk8PDI0Pj4yNCE9MCkpUWxlKGwpO2Vsc2UgaWYoMj09KDB8dykpe2FbNDcxMzhdPTE7YnJl''@;'; + put 'put ''YWt9Q0QobCwwKX19d2hpbGUoMCk7cmV0dXJuIGxlPUcsMHxmfWZ1bmN0aW9uIGJrKGwsYyxmKXtjfD0wO3ZhciBwLG0sQSxiLHc9MDtiPWxlLGxlPWxlKzQ4fDAsdz1iKzMyfDAscD1iKzI0fDAsbT1iKzE2fDAsQT1iLDB8KGw9MHxMaShsfD0wLGZ8PTApKSYmKGFbdz4+Ml09cCxhW3crND4+''@;'; + put 'put ''Ml09bSwyPT0oMHxpbChsLDEwNTUwMyx3KSkpJiYodz1jKzU2fDAsVEooQSwrX1twPj4zXSwrX1ttPj4zXSksYVt3Pj4yXT1hW0E+PjJdLGFbdys0Pj4yXT1hW0ErND4+Ml0sYVt3Kzg+PjJdPWFbQSs4Pj4yXSxhW3crMTI+PjJdPWFbQSsxMj4+Ml0sZmVbYys4MT4+MF09MSksbGU9Yn1mdW5j''@;'; + put 'put ''dGlvbiB4SihsLGMsZil7Znw9MDt2YXIgbSxBLHcsYixrLHA9MCxNPTA7az1sZSxsZT1sZSs0OHwwLGI9ayszMnwwLHA9aysyNHwwLG09aysxNnwwLEE9ayx3PTE2KyhsfD0wKXwwLDB8KGN8PTApJiYwIT0oMHxhWzEyKygwfGFbdz4+Ml0pPj4yXSkmJihNPTB8SG8obCxjKSxhW2I+PjJdPXAs''@;'; + put 'put ''YVtiKzQ+PjJdPW0sMj09KDB8aWwoTSwxMDU1MDMsYikpKSYmKE09NTYrKDB8YVsxMisoMHxhW3c+PjJdKT4+Ml0pfDAsVEooQSwrX1twPj4zXSwrX1ttPj4zXSksYVtNPj4yXT1hW0E+PjJdLGFbTSs0Pj4yXT1hW0ErND4+Ml0sYVtNKzg+PjJdPWFbQSs4Pj4yXSxhW00rMTI+PjJdPWFbQSsx''@;'; + put 'put ''Mj4+Ml0sZmVbODErKDB8YVsxMisoMHxhW3c+PjJdKT4+Ml0pPj4wXT0xKTtlOmRve2lmKDB8Zilmb3IocD0wfHlzKGwpOzspe2lmKCFwKWJyZWFrIGU7SUoocCxsLGMsZikscD0wfE1zKHApfX13aGlsZSgwKTtsZT1rfWZ1bmN0aW9uIFVsZShsKXt2YXIgYz0wLGY9MCxwPTAsbT0wLEE9MDtp''@;'; + put 'put ''ZigwfFYzKGx8PTApKWlmKDA9PSgwfChtPTB8c2kobCwyLDEwMjYyMywwKSkpfCgwfGFbNDcxMzRdKTwyKWM9MDtlbHNle2ZvcihjPTAscD0wfER0KGwpO3A7KXtmb3IoZj0wfHcwKGwscCk7ZjspQT1jKygwIT0oMHxKbGUobSxmKSkmMSl8MCxmPTB8UzAobCxmKSxjPUE7cD0wfHp0KGwscCl9''@;'; + put 'put ''Yz1jPyhjPSgwfGMpPT0oMHxWMyhsKSkpPzI6MTowfWVsc2UgYz0yO3JldHVybiAwfGN9ZnVuY3Rpb24gUWxlKGwpe3ZhciBjPTAsZj0wLHA9MDtmb3IoZj0wfER0KGx8PTApO2Y7KXtmb3IoYz0wfHcwKGwsZik7YzspdkQoYyksSWMoMHxhWzk2KygwfGFbKHA9YysxNnwwKT4+Ml0pPj4yXSks''@;'; + put 'put ''SWMoMHxhWzEwOCsoMHxhW3A+PjJdKT4+Ml0pLEljKDB8YVsxMDArKDB8YVtwPj4yXSk+PjJdKSxJYygwfGFbMTA0KygwfGFbcD4+Ml0pPj4yXSksYz0wfFMwKGwsYyk7Zj0wfHp0KGwsZil9fWZ1bmN0aW9uIEpsZShsLGMpe3ZhciBLLHBlLGdlLGJlLE9lLExlLFJlLEhlLFZlLHFlLG50LGY9''@;'; + put 'put ''MCxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAsV2U9MCxvdD0wO250PWxlLGxlPWxlKzk2fDAsVmU9bnQrNzJ8MCxSZT1udCs1NnwwLHFlPW50KzQ4fDAsSGU9bnQrMzJ8MCxMZT1udCsxNnwwLEs9bnQrODh8MCxwZT1udCs4fDAsZ2U9bnQsYmU9bnQrODR8MCxPZT1u''@;'; + put 'put ''dCs4MHwwLGw9MHxIbyhjfD0wLGx8PTApO2Rve2lmKDB8ZmVbbD4+MF0pe0RDKGMsYmUsT2UpLEc9MSxwPTAsZj0wLHc9MCxBPTAsYj0wLG09MDtlOmZvcig7Oyl7aWYoYVtMZT4+Ml09cGUsYVtMZSs0Pj4yXT1nZSxhW0xlKzg+PjJdPUssMj09KDB8aWwobCw4ODY0MixMZSkpPyhSPTEsbD1s''@;'; + put 'put ''KygwfGFbSz4+Ml0pfDAsQT0rX1twZT4+M10sbT0rX1tnZT4+M10pOlI9ZixhW0hlPj4yXT1wZSxhW0hlKzQ+PjJdPWdlLGFbSGUrOD4+Ml09SywyPT0oMHxpbChsLDg4NjU0LEhlKSk/KEQ9MSxsPWwrKDB8YVtLPj4yXSl8MCx3PStfW3BlPj4zXSxiPStfW2dlPj4zXSk6RD1wLCEoKDB8KGs9''@;'; + put 'put ''MHxYbGUobCkpKT4zJjE9PSgwfCgwfGspJTMpKSl7Zj04O2JyZWFrfWZvcihmPU09MHxRbihrPDw0KSxwPWs7cDspe2lmKGFbUmU+PjJdPXBlLGFbUmUrND4+Ml09Z2UsYVtSZSs4Pj4yXT1LLCgwfGlsKGwsODg3MjQsUmUpKTwyKXtmPTEzO2JyZWFrIGV9V2U9bCsoMHxhW0s+PjJdKXwwLF9b''@;'; + put 'put ''Zj4+M109K19bcGU+PjNdLF9bZis4Pj4zXT0rX1tnZT4+M10sZj1mKzE2fDAscD1wKy0xfDAsbD1XZX1mb3IoO3A9bCsxfDAsMHwkYygoZj0wfGZlW2w+PjBdKTw8MjQ+PjI0KTspbD1wO2ZvcihsPShXZT1mPDwyND4+MjQ9PTApP2w6cCxHPVdlPzA6RyxwPTB8aE4oYyxrKSwwfFImJihhW3Ar''@;'; + put 'put ''OD4+Ml09YVtiZT4+Ml0sX1twKzE2Pj4zXT1BLF9bcCsyND4+M109bSksMHxEJiYoYVtwKzEyPj4yXT1hW09lPj4yXSxfW3ArMzI+PjNdPXcsX1twKzQwPj4zXT1iKSxmPTA7ISgoMHxmKT49KDB8aykpOylhWyhXZT0oMHxhW3A+PjJdKSsoZjw8NCl8MCk+PjJdPWFbKG90PU0rKGY8PDQpfDAp''@;'; + put 'put ''Pj4yXSxhW1dlKzQ+PjJdPWFbb3QrND4+Ml0sYVtXZSs4Pj4yXT1hW290Kzg+PjJdLGFbV2UrMTI+PjJdPWFbb3QrMTI+PjJdLGY9ZisxfDA7aWYoRnQoTSksIUcpe2Y9MjY7YnJlYWt9cD1ELGY9Un1pZig4PT0oMHxmKSl7aWYodkQoYyksMHxmZVsxOTM3NzFdKXtsPTA7YnJlYWt9ZmVbMTkz''@;'; + put 'put ''NzcxXT0xLG90PTB8dGkoMHxhWygzPT0oMyZhW2M+PjJdfDApP2M6Yys0OHwwKSs0MD4+Ml0pLGw9MHx0aSgwfGFbKDI9PSgzJmFbYz4+Ml18MCk/YzpjKy00OHwwKSs0MD4+Ml0pLGFbcWU+PjJdPW90LGFbcWUrND4+Ml09bCwkcigwLDg4NjY3LHFlKSxsPTA7YnJlYWt9aWYoMTM9PSgwfGYp''@;'; + put 'put ''KXswfGZlWzE5Mzc3MV18fChmZVsxOTM3NzFdPTEsV2U9MHx0aSgwfGFbKDM9PSgzJmFbYz4+Ml18MCk/YzpjKzQ4fDApKzQwPj4yXSksb3Q9MHx0aSgwfGFbKDI9PSgzJmFbYz4+Ml18MCk/YzpjKy00OHwwKSs0MD4+Ml0pLGFbVmU+PjJdPVdlLGFbVmUrND4+Ml09b3QsJHIoMCw4ODczNCxW''@;'; + put 'put ''ZSkpLEZ0KE0pLHZEKGMpLGw9MDticmVha31pZigyNj09KDB8Zikpe2lmKChmPTB8YVs5NisobD0wfGFbKHA9YysxNnwwKT4+Ml0pPj4yXSkmJihiayhjLGYsMTAyNjM3KSxsPTB8YVtwPj4yXSksKGY9MHxhW2wrMTA4Pj4yXSkmJihiayhjLGYsMTAyNjMzKSxsPTB8YVtwPj4yXSksKGY9MHxh''@;'; + put 'put ''W2wrMTAwPj4yXSkmJihiayhjLGYsMTAyNjQwKSxsPTB8YVtwPj4yXSksIShsPTB8YVtsKzEwND4+Ml0pKXtsPTE7YnJlYWt9YmsoYyxsLDEwMjY0OCksbD0xO2JyZWFrfX1lbHNlIGw9MH13aGlsZSgwKTtyZXR1cm4gbGU9bnQsMHxsfWZ1bmN0aW9uIFhsZShsKXtsfD0wO3ZhciBjPTAsZj0w''@;'; + put 'put ''O2Y9MDtkb3tmb3IoOzB8JGMoMjU1JihjPTB8ZmVbbD4+MF0pKTspbD1sKzF8MDtlOmRve2lmKGM8PDI0Pj4yNClmb3IoZj1mKzF8MDs7KXtpZighKGM8PDI0Pj4yNCkpe2M9MDticmVhayBlfWlmKGM8PDI0Pj4yND09NTl8MCE9KDB8JGMoMjU1JmMpKSlicmVhayBlO2w9Yz1sKzF8MCxjPTB8''@;'; + put 'put ''ZmVbYz4+MF19ZWxzZSBjPTB9d2hpbGUoMCl9d2hpbGUoMCE9KDB8JGMoMjU1JmMpKSk7cmV0dXJuIDB8Zn1mdW5jdGlvbiBUSihsLGMsZil7Zj0rZixfWyhsfD0wKT4+M109Yz0rYyxfW2wrOD4+M109Zn1mdW5jdGlvbiBJSihsLGMsZixwKXtjfD0wLGZ8PTAscHw9MDt2YXIgbSx3LEE9MCxi''@;'; + put 'put ''PTA7dz1sZSxsZT1sZSszMnwwLG09dywwPT0oMHxzMigwfHRpKGx8PTApLDEwODAwNiw3KSkmJjAhPSgwfGZ1bmN0aW9uIEtsZShsLGMsZil7Znw9MDt2YXIgQSx3LGIsayxwPTAsbT0wO3JldHVybiB3PWxlLGxlPWxlKzQ4fDAsYj13KzMyfDAsQT13LGs9MHxIbyhsfD0wLGN8PTApLGw9QSs4''@;'; + put 'put ''fDAsYz1BKzI0fDAsYVtiPj4yXT1BLGFbYis0Pj4yXT1sLGFbYis4Pj4yXT1BKzE2LGFbYisxMj4+Ml09Yyw0PT0oMHxpbChrLDg4NzgyLGIpKT8oKHA9K19bbD4+M10pPihtPStfW2M+PjNdKSYmKF9bbD4+M109bSxfW2M+PjNdPXApLGFbZj4+Ml09YVtBPj4yXSxhW2YrND4+Ml09YVtBKzQ+''@;'; + put 'put ''PjJdLGFbZis4Pj4yXT1hW0ErOD4+Ml0sYVtmKzEyPj4yXT1hW0ErMTI+PjJdLGFbZisxNj4+Ml09YVtBKzE2Pj4yXSxhW2YrMjA+PjJdPWFbQSsyMD4+Ml0sYVtmKzI0Pj4yXT1hW0ErMjQ+PjJdLGFbZisyOD4+Ml09YVtBKzI4Pj4yXSxsPTEpOmw9MCxsZT13LDB8bH0obCxwLG0pKT8oaDAo''@;'; + put 'put ''bCwxMzc0ODMsMjgwLDEpLGFbKGI9MTYrKDB8YVtsKzE2Pj4yXSl8MCk+PjJdPWFbbT4+Ml0sYVtiKzQ+PjJdPWFbbSs0Pj4yXSxhW2IrOD4+Ml09YVttKzg+PjJdLGFbYisxMj4+Ml09YVttKzEyPj4yXSxhW2IrMTY+PjJdPWFbbSsxNj4+Ml0sYVtiKzIwPj4yXT1hW20rMjA+PjJdLGFbYisy''@;'; + put 'put ''ND4+Ml09YVttKzI0Pj4yXSxhW2IrMjg+PjJdPWFbbSsyOD4+Ml0sZnVuY3Rpb24gJGxlKGwsYyl7Y3w9MDt2YXIgcCxtLEEsZj0wO2FbKEE9MTgwKyhmPTB8YVsocD0xNisobHw9MCl8MCk+PjJdKXwwKT4+Ml09bT0xKyhsPTB8YVtBPj4yXSl8MCxsPShmPTB8YVtmKzE4ND4+Ml0pPzB8ekgo''@;'; + put 'put ''ZixsKzJ8MCw0LG0pOjB8dnIoOCsobDw8Mil8MCksYVsxODQrKDB8YVtwPj4yXSk+PjJdPWwsYVtsKyhtPDwyKT4+Ml09YyxmayhjKX0oYyxsKSx4SihsLGYscCkpOkE9NDtlOmRve2lmKDQ9PSgwfEEpKWZvcihsPTB8eXMobCk7Oyl7aWYoIWwpYnJlYWsgZTtJSihsLGMsZixwKSxsPTB8TXMo''@;'; + put 'put ''bCl9fXdoaWxlKDApO2xlPXd9ZnVuY3Rpb24gRk4obCxjLGYpe2N8PTAsZnw9MDt2YXIgbSxBLHcsayxNLHA9MCxiPTA7TT1sZSxsZT1sZSs0OHwwLGs9TSs4fDAsYj1NLEE9TSsxNnwwLHc9TSsxMnwwLG09MHxMaShsfD0wLDg4Nzk4KTtkb3tpZigwIT0oMHxtKSYmKHA9MHxmZVttPj4wXSk8''@;'; + put 'put ''PDI0Pj4yNCE9MCl7aWYoMHxnTChwJj0yNTUpKXtpZighKDB8czIobSw4ODgwNCw0KSkpe2M9MDticmVha31pZighKDB8czIobSwxMDU1MTEsNykpKXtjPTE7YnJlYWt9aWYoMHxzMihtLDg4ODA5LDYpKXtpZigyIT0oMHxjKSlicmVhaztjPW19ZWxzZSBjPW0rNnwwfWVsc2V7aWYoISgyPT0o''@;'; + put 'put ''MHxjKXwocCstNDh8MCk+Pj4wPDEwKSlicmVhaztjPW19KCgwfFh0W2M+PjBdKS00OHwwKT4+PjA8MTAmJihhW2I+PjJdPXcsKDB8aWwoYyw5OTkzMyxiKSk+PTEpfHwoYj0wfEZqKCksYj0oMHxobigwKSleYixhW3c+PjJdPWIsYVtrPj4yXT1iLG9vKEEsOTk5MzMsayksa2MobCw4ODc5OCxB''@;'; + put 'put ''KSksYVtmPj4yXT1hW3c+PjJdLGM9Mn19d2hpbGUoMCk7cmV0dXJuIGxlPU0sMHxjfWZ1bmN0aW9uIERKKGwsYyxmKXt2YXIgcCxtO3JldHVybiBsfD0wLGN8PTAsZnw9MCxtPWxlLGxlPWxlKzE2fDAsYVsocD1tKzR8MCk+PjJdPTEsMiE9KDB8KGY9MHxGTihsLGYscCkpKSYwIT0oMHxhWzQ2''@;'; + put 'put ''Nzk2XSkmJiRyKDAsODg4MTYsbSksMT09KDB8ZikmJmZ1bmN0aW9uIHFsZShsLGMpe3ZhciBtLEEsZj0wLHA9MCx3PTAsYj0wLGs9MDtmb3IoQT02LjI4MzE4NTMwNzE3OTU4Ni8obT0rKDB8KGN8PTApKSksZj0wfER0KGx8PTApLHA9MDtmOylrPStoYSgrcCkqbSxfWyhiPTB8YVsxMzIrKHc9''@;'; + put 'put ''MHxhW2YrMTY+PjJdKT4+Ml0pPj4zXT1rLF9bYis4Pj4zXT0rRGEoK3ApKm0sZmVbdysxMTk+PjBdPTEsKDB8YVs0NzEzN10pPjImJmVWKGYsYyksZj0wfHp0KGwsZikscCs9QX0obCxjKSxIaigwfGFbcD4+Ml0pLGxlPW0sMHxmfWZ1bmN0aW9uIEEyKGwpe2x8PTA7dmFyIGIsayxSLEcsSyxj''@;'; + put 'put ''PTAsZj0wLHA9MCxtPTAsQT0wLHc9MCxNPTAsRD0wO0s9bGUsbGU9bGUrODB8MCxjPUsrMjR8MCxNPUsrMzJ8MCxiPUssUj1LKzI4fDAsaz1LKzY0fDAsRz0rX1syMzI5M107ZG97aWYoMHxhWzQ3MTM0XSl7aWYoX1syMzI5M109NzIsX2sobCksSE4obCksKDB8WWxlKGwsMSkpPDApeyRyKDMs''@;'; + put 'put ''ODg4NjQsYyk7YnJlYWt9WDYobCwwKSxwPTMyO2JyZWFrfUQ9MHxuZygwfExpKGwsODg1OTMpLDApLF9bMjMyOTNdPStfTihsKSxfayhsKSxtPTB8ZXNlKGwpLGMyZShsLGIsMCksQT0wfHRzZShsKSx3PTB8UzEobCwwLE0pLGM9MHx4YyhsLC0xLDgpLGFbNDY3OTVdPWMsZj0oMHxjKTwwO2Rv''@;'; + put 'put ''e2lmKHcpZiYmKGFbNDY3OTVdPTgpLHA9MTE7ZWxzZXtpZigwIT0oMHxtKSZmKXthWzQ2Nzk1XT04LGFbTSsxNj4+Ml09MixwPTExO2JyZWFrfWlmKGFbTSsxNj4+Ml09MiwoMHxjKTw9LTEpe2lmKE5OKGwsbSxBKSx6NyhsLGIpLEhOKGwpLEQ8PDI0Pj4yNCl7Vk4obCk7YnJlYWt9SzYobCk7''@;'; + put 'put ''YnJlYWt9cD0xMX19d2hpbGUoMCk7aWYoMTE9PSgwfHApKXt3PTB8QkEobCxSLDg4ODkyLGspLGM9MHxhW1I+PjJdO2Rve2lmKCgwfGMpPD0xKXtpZihOTihsLG0sQSksejcobCxiKSxEPDwyND4+MjQpe1ZOKGwpO2JyZWFrfUs2KGwpO2JyZWFrfWZvcihwPUQ8PDI0Pj4yND09MCxmPTA7ISgo''@;'; + put 'put ''MHxmKT49KDB8YykpOyl4QyhjPTB8YVt3KyhmPDwyKT4+Ml0pLE5OKGMsbSxBKSx6NyhjLGIpLHI0KGMsMikscD9LNihjKTpWTihjKSxmPWYrMXwwLGM9MHxhW1I+PjJdOzB8ZmVbaz4+MF0/KGY9MHx2cihjKSxmZVtmPj4wXT0xLGM9MHxhW1I+PjJdKTpmPTAsYVtNKzg+PjJdPWFbNDY3OTVd''@;'; + put 'put ''LGFbTSsyMD4+Ml09ZixhW00rMTI+PjJdPTEsZlcoYyx3LGwsTSksRnQoZil9d2hpbGUoMCk7Zm9yKGlnKGwpLEhOKGwpLGM9MDshKCgwfGMpPj0oMHxhW1I+PjJdKSk7KXFOKE09MHxhW3crKGM8PDIpPj4yXSksSGkoTSwxMzc0ODMpLG9pKGwsTSksYz1jKzF8MDtGdCh3KX1YNihsLEQ8PDI0''@;'; + put 'put ''Pj4yND09MCYxKSxwPTMyfXdoaWxlKDApOzMyPT0oMHxwKSYmKF9bMjMyOTNdPUcpLGxlPUt9ZnVuY3Rpb24gX2sobCl7dmFyIHAsbSxjPTAsZj0wO3I0KGx8PTAsMikscD0wfGVzKGwsMHxzaShsLDAsOTEzNjgsMCksMiwyKSxjPTY1NTM1JigwfGVzKGwsMHxzaShsLDAsOTEzNzQsMCkscCwy''@;'; + put 'put ''KSksaXRbMTc2KygwfGFbMTYrKDB8ZGkobCkpPj4yXSk+PjFdPWMsaXRbKG09MTc2KyhjPTB8YVsxNisoMHxhW2wrNjA+PjJdKT4+Ml0pfDApPj4xXT1mPSg2NTUzNSYoZj0wfGl0W20+PjFdKSk8MTA/ZjoxMCxhWzQ3MTM3XT1mJj02NTUzNSxpdFtjKzE3OD4+MV09KDB8cCk8KDB8Zik/cDpm''@;'; + put 'put ''LGZ1bmN0aW9uIGlzZShsKXt2YXIgcCxjPTAsZj0wO2ZvcihmPTB8R28obHw9MCksYVs0Njc5Nl09MHxzaShsLDEsMTAyNjIzLDApLHA9MHxzaShsLDEsOTA2NjAsMCksYz0wfER0KGwpO2M7KXdrKGMpLEVKKDB8YVs0Njc5Nl0scCxjLGYpLGM9MHx6dChsLGMpO2ZvcihmPTB8RHQobCk7Zjsp''@;'; + put 'put ''e2ZvcihjPTB8dzAobCxmKTtjOyl5RChjKSxjPTB8UzAobCxjKTtmPTB8enQobCxmKX19KGwpfWZ1bmN0aW9uIEhOKGwpe2x8PTA7dmFyIGYscCxtLGM9MDttPWxlLGxlPWxlKzEwNDB8MCxwPW0sZj1tKzh8MDtlOmRve2lmKCgwfGFbNDcxMzddKT4yJjAhPSgwfGFbNDcxNzFdKSlmb3IoYz0w''@;'; + put 'put ''fER0KGwpOzspe2lmKCFjKWJyZWFrIGU7X1twPj4zXT03MiorX1sxNisoMHxhWzEzMisoMHxhW2MrMTY+PjJdKT4+Ml0pPj4zXSxvbyhmLDEwMTIwOSxwKSxWbChjLDB8YVs0NzE3MV0sZiksYz0wfHp0KGwsYyl9fXdoaWxlKDApO2xlPW19ZnVuY3Rpb24gZXNlKGwpe3ZhciBjLGYscDtwPWxl''@;'; + put 'put ''LGxlPWxlKzE2fDAsZj1wLGM9MHxMaShsfD0wLDg5NTc3KTtlOmRve2lmKGMpe3N3aXRjaCgwfGZlW2M+PjBdKXtjYXNlIDA6bD0xO2JyZWFrIGU7Y2FzZSA3NTppZighKDB8WmkoYyw4OTU4MikpKXtsPTA7YnJlYWsgZX1icmVhaztjYXNlIDEwOTppZighKDB8WmkoYyw4OTU4NSkpKXtsPTE7''@;'; + put 'put ''YnJlYWsgZX1icmVhaztjYXNlIDEwNDppZighKDB8WmkoYyw4OTU5MSkpKXtsPTI7YnJlYWsgZX19bD0wfHRpKGwpLGFbZj4+Ml09YyxhW2YrND4+Ml09bCwkcigwLDg5NTk2LGYpLGw9MX1lbHNlIGw9MX13aGlsZSgwKTtyZXR1cm4gbGU9cCwwfGx9ZnVuY3Rpb24gdHNlKGwpe3ZhciBjLGYs''@;'; + put 'put ''cCxtLEE7QT1sZSxsZT1sZSszMnwwLG09QSsxNnwwLHA9QSs4fDAsZj1BLGM9MHxMaShsfD0wLDg5MzYwKTtlOmRve2lmKGMpe3N3aXRjaCgwfGZlW2M+PjBdKXtjYXNlIDA6bD0wO2JyZWFrIGU7Y2FzZSA5OTppZighKDB8WmkoYyw4OTM2NikpKXtsPTE7YnJlYWsgZX1icmVhaztjYXNlIDEx''@;'; + put 'put ''NTppZighKDB8WmkoYyw4OTM3NCkpKXtsPTI7YnJlYWsgZX1pZighKDB8WmkoYyw4OTM4MSkpKXtsPTA7YnJlYWsgZX1icmVhaztjYXNlIDEwOTppZighKDB8WmkoYyw4OTM5MSkpKXtpZigwfHNpKGwsMiw5MjQ5MywwKSl7bD0zO2JyZWFrIGV9YVtmPj4yXT0wfHRpKGwpLCRyKDAsODkzOTUs''@;'; + put 'put ''ZiksJHIoMyw4OTQ1OCxwKSxsPTA7YnJlYWsgZX19bD0wfHRpKGwpLGFbbT4+Ml09YyxhW20rND4+Ml09bCwkcigwLDg5NTE1LG0pLGw9MH1lbHNlIGw9MH13aGlsZSgwKTtyZXR1cm4gbGU9QSwwfGx9ZnVuY3Rpb24gTk4obCxjLGYpe2N8PTAsZnw9MDt2YXIgcD0wO3A9KHA9MHxMaShsfD0w''@;'; + put 'put ''LDkxMDYxKSk/MHxyMyhwKToxPT0oMHxjKT8yMDA6MTAwKigwfEdvKGwpKXwwLGFbNDcxMzZdPXAscD0wfFlKKGwsYyk7ZG97aWYoISgoMHxwKTwyfCgwfGFbNDcxMzZdKTwwKSl7aWYoYyl7bnNlKGwscCxjLGYsMHxhWzQ3MTM3XSk7YnJlYWt9ak4obCxwLGYpO2JyZWFrfX13aGlsZSgwKX1m''@;'; + put 'put ''dW5jdGlvbiBWTihsKXtpZyhsfD0wKSxDRChsLDEpfWZ1bmN0aW9uIG5zZShsLGMsZixwLG0pe3B8PTAsbXw9MDt2YXIgRCxHLEsscGUsZ2UsYmUsT2UsQT0wLHc9MCxiPTAsaz0wLE09MDtmb3IoT2U9bGUsbGU9bGUrNjR8MCxwZT1PZSs0MHwwLEc9T2UrNDh8MCxiZT1PZSs0NHwwLHc9MHxE''@;'; + put 'put ''SihsfD0wLGN8PTAsKEs9Mj09KDB8KGZ8PTApKSk/MDoyKSxiPTB8ZnVuY3Rpb24gcHAobCl7dmFyIGMsZjtyZXR1cm4gZj1sZSxsZT1sZSsxNnwwLGM9ZiwwPT0oMHwobD0wfGVzKGx8PTAsMHxzaShsLDAsODkzMDUsMCksMiwwKSkpfCgwfGwpPjImJihhW2M+PjJdPTg5MzA1LCRyKDAsODkz''@;'; + put 'put ''MTQsYyksbD0yKSxsZT1mLDB8bH0obCksaz00fGIsZ2U9MHxRbihtPDwyKSxhW2dlPj4yXT0wfFFuKDB8QXIoYzw8MyxtKSksQT0wfGFbNDcxMzddLG09MTshKCgwfG0pPj0oMHxBKSk7KWFbZ2UrKG08PDIpPj4yXT0oMHxhW2dlPj4yXSkrKCgwfEFyKG0sYykpPDwzKSxtPW0rMXwwO209KEE9''@;'; + put 'put ''MD09KDB8dykpP2s6YixEPTB8TEoobCxjLEcsZixwLGJlKSwxIT0oMHxmKT8oTT0rTWwobCwwfHNpKGwsMCw4OTI3OSwwKSwwLC0xNzk3NjkzMTM0ODYyMzE1N2UyOTIpLEs/KG09MHxmdW5jdGlvbiBSWChsLGMsZixwLG0sQSx3LGIsayxNKXtsfD0wLGN8PTAsZnw9MCxwfD0wLG18PTAsQXw9''@;'; + put 'put ''MCxifD0wLGt8PTAsTT0rTTt2YXIgWnQsY3QsYW4sRD0wLFI9MCxHPTAsSz0wLHBlPTAsZ2U9MCxiZT0wLE9lPTAsTGU9MCxSZT0wLEhlPTAsVmU9MCxxZT0wLG50PTAsV2U9MCxvdD0wLFN0PTAsa3Q9MCxzdD0wLEV0PTAsYnQ9MCxTbj0wO2FuPWxlLGxlPWxlKzQ4fDAsU3Q9YW4rMjR8MCxv''@;'; + put 'put ''dD1hbisxNnwwLFdlPWFuKzh8MCxudD1hbixjdD1hbiszNnwwLHN0PWFuKzMyfDAscGU9NCYod3w9MCksYVsoWnQ9YW4rNDB8MCk+PjJdPTAsYVtjdD4+Ml09MDtlOmRve2lmKDB8YVtsKzE2Pj4yXSl7Zm9yKFI9MCxEPTA7ISgoMHxSKT49KDB8YykpOyl7Zm9yKGdlPTB8YVtsKygyMCpSfDAp''@;'; + put 'put ''Pj4yXSxiZT1sKygyMCpSfDApKzE2fDAsSz0xOyEoKDB8Syk+PSgwfGdlKSk7KUQ9RDw8MjQ+PjI0PzE6MCE9K2puWygwfGFbYmU+PjJdKSsoSzw8Mik+PjJdLEs9SysxfDAsRCY9MTtSPVIrMXwwfWlmKEQ8PDI0Pj4yNCl7aWYoVmU9MCE9KDB8cGUpKXtLPXArNHwwO3Q6ZG97aWYoKDB8QSk+''@;'; + put 'put ''Mil7aWYoKDB8S04obCxjLGYsSyxtLEQ9QSstMXwwLHcsYiwxNSkpPDApe0Q9LTE7YnJlYWsgZX1mb3IoUj1wKyhEPDwyKXwwLEQ9MDs7KXtpZigoMHxEKT49KDB8YykpYnJlYWsgdDtfWygwfGFbUj4+Ml0pKyhEPDwzKT4+M109K19bKDB8YVtLPj4yXSkrKEQ8PDMpPj4zXSxEPUQrMXwwfX19''@;'; + put 'put ''d2hpbGUoMCk7aWYoSGU9MHxhW3A+PjJdLDA9PSgwfEIyZShsLGMsTGU9MHxhW0s+PjJdLGMpKSYmMD09KDB8WngobCxjLC4wMSwuMSxMZSxadCxjdCxzdCkpKXtpZigoMHwoUmU9MHxhW3N0Pj4yXSkpPDEpe0Q9MHxLTihsLGMsZixwLG0sQSx3LGIsayk7YnJlYWt9dDpkb3tpZihNPjApZm9y''@;'; + put 'put ''KHBlPTB8YVtadD4+Ml0sZ2U9MHxhW2N0Pj4yXSxiZT1SZSstMXwwLEc9MCxLPTA7Oyl7aWYoKDB8Syk+PSgwfFJlKSlicmVhayB0O2ZvcihHPSgocWU9TS1HLStfW0xlKyhhW3BlKygoRD0wfGFbZ2UrKEs8PDIpPj4yXSk8PDIpPj4yXTw8Myk+PjNdKyArX1tMZSsoYVtwZSsoRCstMTw8Mik+''@;'; + put 'put ''PjJdPDwzKT4+M10pPDA/MDpxZSkrRyxSPSgwfEspPCgwfGJlKT8wfGFbZ2UrKEsrMTw8Mik+PjJdOmM7ISgoMHxEKT49KDB8UikpOylfWyhFdD1MZSsoYVtwZSsoRDw8Mik+PjJdPDwzKXwwKT4+M109K19bRXQ+PjNdK0csRD1EKzF8MDtLPUsrMXwwfX13aGlsZSgwKTsyPT0oMHxBKSYmMCE9''@;'; + put 'put ''KDB8RzJlKGwsYyxMZSxIZSwrX1syMzI5NF0pKT8oUj0wLEQ9LTEpOmJ0PTMzfWVsc2UgUj0wLEQ9LTF9ZWxzZSBYTihsLGMsQSxwLG0pLDB8WngobCxjLC4wMSwuMSwwLFp0LGN0LHN0KT8oUj0wLEQ9LTEpOmJ0PTMzO3Q6ZG97aWYoMzM9PSgwfGJ0KSl7aWYoMT09KDB8Yykpe0Q9MDticmVh''@;'; + put 'put ''ayBlfWlmKEV0PTB8UW4oYVtzdD4+Ml08PDIpLCFrKXtEPTA7YnJlYWsgZX1zd2l0Y2goMHxiKXtjYXNlIDI6RD0wfHpKKGwsYyksYnQ9NDY7YnJlYWs7Y2FzZSAxOihEPTB8VHkobCxjKSk/a3Q9RDooJHIoMCw5MzMxNSxudCksJHIoMyw5MzM2NCxXZSksYnQ9NDcpO2JyZWFrO2Nhc2UgMzpE''@;'; + put 'put ''PTB8JDYobCxjKSxidD00NjticmVhaztkZWZhdWx0OmJ0PTQ3fTQ2PT0oMHxidCkmJihEP2t0PUQ6YnQ9NDcpLDQ3PT0oMHxidCkmJihrdD0wfGtEKGwsYykpLG90PShIZT0oMHxBcihsPWMrLTF8MCxjKSkvMnwwKStjfDA7bjpkb3tpZighVmUpe2ZvcihHPTEsUj0wOyEoKDB8Uik+PSgwfEEp''@;'; + put 'put ''KTspe2ZvcihLPXArKFI8PDIpfDAsRD0wOyEoKDB8RCk+PSgwfGMpKTspRz0ocWU9K2VvKCsgK19bKDB8YVtLPj4yXSkrKEQ8PDMpPj4zXSkpPkc/cWU6RyxEPUQrMXwwO1I9UisxfDB9Zm9yKEc9MS9HLFI9MDs7KXtpZigoMHxSKT49KDB8QSkpYnJlYWsgbjtmb3IoSz1wKyhSPDwyKXwwLEQ9''@;'; + put 'put ''MDshKCgwfEQpPj0oMHxjKSk7KV9bKFdlPSgwfGFbSz4+Ml0pKyhEPDwzKXwwKT4+M109MTAqRyorX1tXZT4+M10sRD1EKzF8MDtSPVIrMXwwfX19d2hpbGUoMCk7bjpkb3tpZihNPjApe09lPSsoMHxIZSksRD0wLEc9MCxwZT0wO3I6Zm9yKDshKCgwfHBlKT49KDB8bCkpOylmb3IoZ2U9cGUr''@;'; + put 'put ''MXwwLEs9RCxSPWdlOzspe2lmKEQ9SysxfDAsKDB8Uik+PSgwfGMpKXtwZT1nZTtjb250aW51ZSByfUs9RCxHPShxZT0rS1gocCxBLHBlLFIpKS8ram5ba3QrKEQ8PDIpPj4yXStHLFI9UisxfDB9Zm9yKEcvPU9lLEQ9MDs7KXtpZigoMHxEKT49KDB8b3QpKXtEPTA7YnJlYWsgbn1qblsoV2U9''@;'; + put 'put ''a3QrKEQ8PDIpfDApPj4yXT0ram5bV2U+PjJdKkcsRD1EKzF8MH19ZWxzZSBEPTB9d2hpbGUoMCk7Zm9yKDshKCgwfEQpPj0oMHxBKSk7KWE4KGMsMHxhW3ArKEQ8PDIpPj4yXSksRD1EKzF8MDtmb3IoRz0rX1soUj0wfGFbcCs0Pj4yXSk+PjNdLEQ9MDshKCgwfEQpPj0oMHxjKSk7KV9bKFdl''@;'; + put 'put ''PVIrKEQ8PDMpfDApPj4zXT0rX1tXZT4+M10tRyxEPUQrMXwwO2ZvcihXZT0wfFFuKGJlPUE8PDIpLEs9MHxRbihMZT0wfEFyKFJlPWM8PDIsQSkpLEQ9MDshKCgwfEQpPj0oMHxBKSk7KXtmb3IocGU9SysoKDB8QXIoRCxjKSk8PDIpfDAsYVtXZSsoRDw8Mik+PjJdPXBlLGdlPXArKEQ8PDIp''@;'; + put 'put ''fDAsUj0wOyEoKDB8Uik+PSgwfGMpKTspam5bcGUrKFI8PDIpPj4yXT0rX1soMHxhW2dlPj4yXSkrKFI8PDMpPj4zXSxSPVIrMXwwO0Q9RCsxfDB9Zm9yKE9lPSsoMHxIZSksamsob3Qsa3QpLGNLKG90LGt0KSxYRChjLDAsbnQ9MHxRbihjPDwzKSksRD0wLEs9MDs7KXtpZigoMHxLKT49KDB8''@;'; + put 'put ''bCkpe0Q9YyxSPTAsSz0wO2JyZWFrfWZvcihwZT1jLUt8MCxHPTAsUj0xO0Q9RCsxfDAsISgoMHxSKT49KDB8cGUpKTspX1soU3Q9bnQrKFIrSzw8Myl8MCk+PjNdPStfW1N0Pj4zXS0ocWU9K2puW2t0KyhEPDwyKT4+Ml0pLEcrPXFlLFI9UisxfDA7X1soU3Q9bnQrKEs8PDMpfDApPj4zXT0r''@;'; + put 'put ''X1tTdD4+M10tRyxLPUsrMXwwfWZvcig7ISgoMHxSKT49KDB8YykpOylqbltrdCsoSzw8Mik+PjJdPStfW250KyhSPDwzKT4+M10sU3Q9RCtLfDAsRD1EKy0xfDAsUj1SKzF8MCxLPVN0O2ZvcihiPTB8UW4oYmUpLGFbYj4+Ml09MHxRbihMZSksRD0xOyEoKDB8RCk+PSgwfEEpKTspYVtiKyhE''@;'; + put 'put ''PDwyKT4+Ml09KDB8YVtiPj4yXSkrKCgwfEFyKEQsYykpPDwyKSxEPUQrMXwwO2ZvcihWZT0wfFFuKFJlKSxtPTB8UW4oUmUpLHc9MHxRbihvdDw8MiksUj0wfGRLKGt0LGMpLGY9MHxKVihrdCxjLDB8YVtadD4+Ml0sMHxhW2N0Pj4yXSwwfGFbc3Q+PjJdKSxIZT1iKzR8MCxLPTAscWU9MTc5''@;'; + put 'put ''NzY5MzEzNDg2MjMxNTdlMjkyLEQ9MDtLPDwyND4+MjQ9PTAmKDB8RCk8KDB8ayk7KXtmb3IoWEQoYywwLG50KSxHVihvdCxrdCx3KSxMZT0wLGdlPTA7Oyl7aWYoKDB8TGUpPj0oMHxsKSl7Sz0wLHBlPWMsZ2U9MDticmVha31mb3IoUmU9Yy1MZS0xfDAsankoYywwLG0pLEs9MDshKCgwfEsp''@;'; + put 'put ''Pj0oMHxBKSk7KWp5KFJlLCtqblsoMHxhWyhzdD1XZSsoSzw8Mil8MCk+PjJdKSsoTGU8PDIpPj4yXSxWZSksSkQoUmUsVmUsLTEsKDB8YVtzdD4+Ml0pKyhMZTw8MikrNHwwKSxqayhSZSxWZSksUUQoUmUsVmUsbSxtKSxLPUsrMXwwO2ZvcihmSyhSZSxtKSxLPTA7ISgoMHxLKT49KDB8UmUp''@;'; + put 'put ''KTspKEc9K2puWyhwZT1tKyhLPDwyKXwwKT4+Ml0pPj0zNDAyODIzNDY2Mzg1Mjg4NmUyMnxHPDAmJihqbltwZT4+Ml09MCksSz1LKzF8MDtmb3IoYmU9TGUrMXwwLEc9MCxLPWdlLHBlPTA7Sz1LKzF8MCwhKCgwfHBlKT49KDB8UmUpKTspam5bKHN0PXcrKEs8PDIpfDApPj4yXT1Tbj0ram5b''@;'; + put 'put ''c3Q+PjJdKitqblttKyhwZTw8Mik+PjJdLF9bKHN0PW50KyhiZStwZTw8Myl8MCk+PjNdPStfW3N0Pj4zXS1TbixHKz1TbixwZT1wZSsxfDA7X1soZ2U9bnQrKExlPDwzKXwwKT4+M109K19bZ2U+PjNdLUcsTGU9YmUsZ2U9S31mb3IoOzspe2lmKCgwfEspPj0oMHxjKSl7Sz0wO2JyZWFrfWpu''@;'; + put 'put ''W3crKGdlPDwyKT4+Ml09K19bbnQrKEs8PDMpPj4zXSxzdD1wZStnZXwwLEs9SysxfDAscGU9cGUrLTF8MCxnZT1zdH1mb3IoOzspe2lmKCgwfEspPj0oMHxBKSl7Rz0wLEs9MDticmVha310ZCh3LGMsMHxhW1dlKyhLPDwyKT4+Ml0sMHxhW2IrKEs8PDIpPj4yXSksSz1LKzF8MH1mb3IoOyEo''@;'; + put 'put ''KDB8Syk+PSgwfEEpKTspRz0rWDcoYywwfGFbV2UrKEs8PDIpPj4yXSwwfGFbYisoSzw8Mik+PjJdKStHLEs9SysxfDA7Zm9yKEc9MipHK09lLEs9MDshKCgwfEspPj0oMHxBKSk7KXRkKGt0LGMsMHxhWyhzdD1XZSsoSzw8Mil8MCk+PjJdLFZlKSxHLT0rWDcoYywwfGFbc3Q+PjJdLFZlKSxL''@;'; + put 'put ''PUsrMXwwO2ZvcihLPTEmKCgwfEQpPjEmRz5xZXwoU249K2VvKCsoRy1xZSkpLytlbygrKHFlKzFlLTEwKSkpPCtfWzIzMjk0XSkscGU9MDshKCgwfHBlKT49KDB8QSkpOyl7aWYoMSE9KDB8cGUpKXtpZigwfE9rKGt0LDB8YVtXZSsocGU8PDIpPj4yXSwwfGFbYisocGU8PDIpPj4yXSxjLC4w''@;'; + put 'put ''MDEsYykpe0Q9LTE7YnJlYWsgdH19ZWxzZSB5OWUoZiwwfGFbSGU+PjJdLFdlLEEsMSwxNSxFdCxNKTtwZT1wZSsxfDB9cWU9RyxEPUQrMXwwfWlmKEZ0KEV0KSxiOWUoZiksMHxXZSl7Zm9yKEs9MDshKCgwfEspPj0oMHxBKSk7KXtmb3IoZ2U9V2UrKEs8PDIpfDAsYmU9cCsoSzw8Mil8MCxw''@;'; + put 'put ''ZT0wOyEoKDB8cGUpPj0oMHxjKSk7KV9bKDB8YVtiZT4+Ml0pKyhwZTw8Myk+PjNdPStqblsoMHxhW2dlPj4yXSkrKHBlPDwyKT4+Ml0scGU9cGUrMXwwO0s9SysxfDB9RnQoMHxhW1dlPj4yXSksRnQoV2UpfTB8YiYmKEZ0KDB8YVtiPj4yXSksRnQoYikpLEZ0KFZlKSxGdChtKSxGdChudCks''@;'; + put 'put ''RnQoa3QpLEZ0KHcpfX13aGlsZSgwKTtGdCgwfGFbWnQ+PjJdKSxGdCgwfGFbY3Q+PjJdKSxSJiYoRnQoMHxhW1I+PjJdKSxGdChSKSl9ZWxzZSBidD0xMH1lbHNlIGJ0PTEwfXdoaWxlKDApO3JldHVybiAxMD09KDB8YnQpJiYoRD0wfEtOKGwsYyxmLHAsbSxBLHcsYixrKSksbGU9YW4sMHxE''@;'; + put 'put ''fShELGMsMHxhW0c+PjJdLGdlLDB8YVtiZT4+Ml0sMHxhWzQ3MTM3XSxtLHAsMHxhWzQ3MTM2XSxNKSxBPTEyKTpBPTE0KToobT0wfEtOKEQsYywwfGFbRz4+Ml0sZ2UsMHxhW2JlPj4yXSwwfGFbNDcxMzddLG0scCwwfGFbNDcxMzZdKSxBPTEyKSwxMj09KDB8QSkmJigoMHxtKTwwPyRyKDMs''@;'; + put 'put ''ODkyODkscGUpOkE9MTQpO2U6ZG97aWYoMTQ9PSgwfEEpKWZvcihBPTB8RHQobCk7Oyl7aWYoIUEpYnJlYWsgZTtmb3Iodz0wfGFbMTIwKyhrPTB8YVtBKzE2Pj4yXSk+PjJdLGI9MHxhWzQ3MTM3XSxrPWsrMTMyfDAsbT0wOyEoKDB8bSk+PSgwfGIpKTspX1soMHxhW2s+PjJdKSsobTw8Myk+''@;'; + put 'put ''PjNdPStfWygwfGFbZ2UrKG08PDIpPj4yXSkrKHc8PDMpPj4zXSxtPW0rMXwwO0E9MHx6dChsLEEpfX13aGlsZSgwKTtOWChEKSxGdCgwfGFbZ2U+PjJdKSxGdChnZSksRnQoMHxhW2JlPj4yXSksbGU9T2V9ZnVuY3Rpb24gak4obCxjLGYpe3ZhciBwLEE7c3dpdGNoKGx8PTAsY3w9MCxBPWxl''@;'; + put 'put ''LGxlPWxlKzQ4fDAscD1BLDB8KGZ8PTApKXtjYXNlIDI6IWZ1bmN0aW9uIFhjKGwsYyl7dmFyIHAsQSx3LGIsZj0wLG09MDtmb3IoYj1sZSxsZT1sZSsxNnwwLHc9MHxmdW5jdGlvbiBmOWUobCxjKXt2YXIgZixwO3JldHVybiBwPTB8YVs4KyhsfD0wKT4+Ml0sSlgobCxjfD0wKSxmPTB8SFYo''@;'; + put 'put ''bCxjKSxYWChsLGMscCksMHxmfShBPTB8TEoobHw9MCxjfD0wLGIsMCwyLDApLGMpLHA9bCsxNnwwLGw9MDshKCgwfGwpPj0oMHxjKSk7KXtmb3IobT13KyhsPDwyKXwwLGY9MDsoMHxmKSE9KDB8Yyk7KV9bKDB8YVsoMHxhWzE2MCsoMHxhW3A+PjJdKT4+Ml0pKyhsPDwyKT4+Ml0pKyhmPDwz''@;'; + put 'put ''KT4+M109KygwfGFbKDB8YVttPj4yXSkrKGY8PDIpPj4yXSksZj1mKzF8MDtsPWwrMXwwfUZ0KDB8YVt3Pj4yXSksRnQodyksTlgoQSksbGU9Yn0obCxjKTticmVhaztjYXNlIDE6MHxmdW5jdGlvbiBPWChsLGMpe2x8PTA7dmFyIHcsYixrLGY9MCxwPTAsbT0wLEE9MCxNPTA7Zm9yKGI9MHxj''@;'; + put 'put ''ZyhjfD0wLGMsMCksaz0wfGNnKGMsYywwKSxwPTB8RHQobCk7cDspe2ZvcihmPTB8U3MobCxwKTtmOykoMHwobT0oMHxhW2FbKDM9PSgwfChBPTMmYVtmPj4yXSkpP2Y6Zis0OHwwKSs0MD4+Ml0+PjJdKT4+PjQpKSE9KDB8KEE9KDB8YVthWygyPT0oMHxBKT9mOmYrLTQ4fDApKzQwPj4yXT4+''@;'; + put 'put ''Ml0pPj4+NCkpJiYoX1soMHxhW2IrKEE8PDIpPj4yXSkrKG08PDMpPj4zXT1NPS0xLytfWzEzNisoMHxhW2YrMTY+PjJdKT4+M10sX1soMHxhW2IrKG08PDIpPj4yXSkrKEE8PDMpPj4zXT1NKSxmPTB8TnMobCxmLHApO3A9MHx6dChsLHApfXc9MHxDVihjLGIsayk7ZTpkb3tpZigwfHcpZm9y''@;'; + put 'put ''KG09bCsxNnwwLHA9MDs7KXtpZigoMHxwKT49KDB8YykpYnJlYWsgZTtmb3IoQT1rKyhwPDwyKXwwLGY9MDsoMHxmKSE9KDB8Yyk7KV9bKDB8YVsoMHxhWzE2MCsoMHxhW20+PjJdKT4+Ml0pKyhwPDwyKT4+Ml0pKyhmPDwzKT4+M109K19bKDB8YVtrKyhmPDwyKT4+Ml0pKyhmPDwzKT4+M10r''@;'; + put 'put ''ICtfWyhsPTB8YVtBPj4yXSkrKHA8PDMpPj4zXSstMiorX1tsKyhmPDwzKT4+M10sZj1mKzF8MDtwPXArMXwwfX13aGlsZSgwKTtyZXR1cm4gQjcoYiksQjcoayksMHx3fShsLGMpfHwoYVtwPj4yXT0wfHRpKGwpLCRyKDAsODg5MDIscCksJHIoMyw5MzM2NCxBKzh8MCksJHIoMyw4ODk1NCxB''@;'; + put 'put ''KzE2fDApLCRyKDMsODkwMjYsQSsyNHwwKSxLSihsLGMpKTticmVhaztkZWZhdWx0OktKKGwsYyksMz09KDB8ZikmJmZ1bmN0aW9uIFI3KGwpe3ZhciBtLGM9MCxmPTAscD0wLEE9MCx3PTAsYj0wO2ZvcihtPTE2KyhsfD0wKXwwLGY9MHxEdChsKTtmOyl7Zm9yKGM9MHx3MChsLGYpO2M7KSgw''@;'; + put 'put ''fChwPSgwfGFbYVsoMz09KDB8KEE9MyZhW2M+PjJdKSk/YzpjKzQ4fDApKzQwPj4yXT4+Ml0pPj4+NCkpIT0oMHwoQT0oMHxhW2FbKDI9PSgwfEEpP2M6YystNDh8MCkrNDA+PjJdPj4yXSk+Pj40KSkmJihfWygwfGFbKHc9MHxhWzE2MCsoMHxhW20+PjJdKT4+Ml0pKyhBPDwyKT4+Ml0pKyhw''@;'; + put 'put ''PDwzKT4+M109Yj0rX1sxMzYrKDB8YVtjKzE2Pj4yXSk+PjNdLF9bKDB8YVt3KyhwPDwyKT4+Ml0pKyhBPDwzKT4+M109YiksYz0wfFMwKGwsYyk7Zj0wfHp0KGwsZil9fShsKX0oZnVuY3Rpb24gQXZlKGwsYyl7dmFyIHAsZj0wO3A9bGUsbGU9bGUrMTZ8MCxmPXAsYz0wfERKKGx8PTAsY3w9''@;'; + put 'put ''MCwyKTtlOmRve2lmKDEhPSgwfGMpKWZvcihhWzQ2Nzk3XXxjfHwoJHIoMCw5MDE5MixmKSxhWzQ2Nzk3XT0xKSxmPWwrMTZ8MCxjPTA7Oyl7aWYoIShsPTB8YVsoMHxhWzE1MisoMHxhW2Y+PjJdKT4+Ml0pKyhjPDwyKT4+Ml0pKWJyZWFrIGU7MHxmZVsxMTkrKDB8YVtsKzE2Pj4yXSk+PjBd''@;'; + put 'put ''fHxoc2UobCwxKSxjPWMrMXwwfX13aGlsZSgwKTtsZT1wfSkobCxjKSxmdW5jdGlvbiBQNyhsLGMpe2N8PTA7dmFyIGssRCxSLEssZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsTT0wLHBlPTA7Zm9yKEs9bGUsbGU9bGUrOTZ8MCxEPUssaz0wfGFbMTY0KyhtPTB8YVsoUj0xNisobHw9MCl8MCk+''@;'; + put 'put ''PjJdKT4+Ml0sbT0wfGFbbSsxNjA+PjJdLE09MDshKCgwfE0pPj0oMHxjKSk7KXtmb3Iodz1tKyhNPDwyKXwwLGI9aysoTTw8Mil8MCxwPTA7KDB8cCkhPSgwfE0pOylBPTEvKChBPStfWygwfGFbdz4+Ml0pKyhwPDwzKT4+M10pKkEpLChmPTB8S2EobCwwfGFbKGY9MHxhWzE1MisoMHxhW1I+''@;'; + put 'put ''PjJdKT4+Ml0pKyhNPDwyKT4+Ml0sMHxhW2YrKHA8PDIpPj4yXSwwLDApKSYmKEEqPStfWzEyOCsoMHxhW2YrMTY+PjJdKT4+M10pLF9bKDB8YVtrKyhwPDwyKT4+Ml0pKyhNPDwzKT4+M109QSxfWygwfGFbYj4+Ml0pKyhwPDwzKT4+M109QSxwPXArMXwwO009TSsxfDB9Zm9yKGw9MHxhWzQ3''@;'; + put 'put ''MTM3XSxwPTA7KDB8cCk8KDB8Yyk7KXtmb3IoZj0wOyEoKDB8Zik+PSgwfGwpKTspX1soMHxhWygwfGFbMTY4KygwfGFbUj4+Ml0pPj4yXSkrKHA8PDIpPj4yXSkrKGY8PDMpPj4zXT0wLGY9ZisxfDA7cD1wKzF8MH1mb3Iodz0wO2Y9MHxhWygwfGFbMTUyKygwfGFbUj4+Ml0pPj4yXSkrKHc8''@;'; + put 'put ''PDIpPj4yXTspe2ZvcihsPWYrMTZ8MCxmPTA7ISgoMHxmKT49KDB8YykpOyl7ZTpkb3tpZigoMHx3KSE9KDB8ZikpZm9yKEE9K1dKKDB8YVsxMzIrKDB8YVtsPj4yXSk+PjJdLDB8YVsxMzIrKDB8YVsxNisoMHxhWygwfGFbMTUyKygwfGFbUj4+Ml0pPj4yXSkrKGY8PDIpPj4yXSk+PjJdKT4+''@;'; + put 'put ''Ml0sRCksbT0wfGFbNDcxMzddLEE9MS9BLHA9MDs7KXtpZigoMHxwKT49KDB8bSkpYnJlYWsgZTtfWygwfGFbKDB8YVsoMHxhWzE3MisoTT0wfGFbUj4+Ml0pPj4yXSkrKHc8PDIpPj4yXSkrKGY8PDIpPj4yXSkrKHA8PDMpPj4zXT1wZT0oKHBlPStfW0QrKHA8PDMpPj4zXSktK19bKDB8YVso''@;'; + put 'put ''MHxhW00rMTYwPj4yXSkrKHc8PDIpPj4yXSkrKGY8PDMpPj4zXSpwZSpBKSorX1soMHxhWygwfGFbTSsxNjQ+PjJdKSsodzw8Mik+PjJdKSsoZjw8Myk+PjNdLF9bKE09KDB8YVsoMHxhW00rMTY4Pj4yXSkrKHc8PDIpPj4yXSkrKHA8PDMpfDApPj4zXT0rX1tNPj4zXStwZSxwPXArMXwwfX13''@;'; + put 'put ''aGlsZSgwKTtmPWYrMXwwfXc9dysxfDB9bGU9S30obCxjKSxmdW5jdGlvbiBKSihsLGMpe2x8PTAsY3w9MDt2YXIgQSx3LGIsZj0wLGs9MDtmb3Iodz1sZSxsZT1sZSszMnwwLEE9dysyNHwwLF9bMjMyMTZdPShiPStfWzIzMjk0XSkqYjtmPTB8eXZlKGwsYyk7KU1EKGwsYyxmKTsoMHwoYz0w''@;'; + put 'put ''fGFbMTU2KygwfGFbKGM9bCsxNnwwKT4+Ml0pPj4yXSkpPT0oMHxhWzQ3MTM2XSkmJihrPTB8dGkobCksYVtBPj4yXT1jLGFbQSs0Pj4yXT1rLCRyKDAsOTAzMjAsQSkpLGxlPXd9KGwsYyksbGU9QX1mdW5jdGlvbiBMSihsLGMsZixwLG0sQSl7Y3w9MCxmfD0wLHB8PTAsbXw9MCxBfD0wO3Zh''@;'; + put 'put ''ciBxZSxudCxvdCxrdCxzdCxFdCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAsSz0wLHBlPTAsZ2U9MCxiZT0wLE9lPTAsTGU9MCxSZT0wLEhlPTAsVmU9MCxXZT0wLFN0PTAsWnQ9MCxjdD0wO2Zvcih3PTB8VjMobHw9MCksRXQ9MHxmdW5jdGlvbiBwYWUoKXt2YXIgbCxwLGM9MCxmPTA7''@;'; + put 'put ''Zj0yMDc3NixwPTM2KyhjPWw9MHxRbig0MCkpfDA7ZG97YVtjPj4yXT1hW2Y+PjJdLGM9Yys0fDAsZj1mKzR8MH13aGlsZSgoMHxjKTwoMHxwKSk7cmV0dXJuIGFbbCszNj4+Ml09MCwwfGlzKGwsMHxhWzQ1ODFdKX0oKSwyPT0oMHxtKT8oYj0wLFN0PTApOihTdD0wfHNpKGwsMiw5MjQ5Myww''@;'; + put 'put ''KSxiPTAhPSgwfGFbNDcxNzRdKSYxLFN0PTAhPSgwfFN0KSksbnQ9Mz09KDF8cCksa3Q9MHxRbigyMCpjfDApLHN0PTB8UW4oYzw8MiksTT0wfFFuKGs9KHc8PDEpK2M8PDIpLG09KHFlPW50fFN0KT8wfFFuKGspOjAsdz0ob3Q9MCE9KDB8YikpPzB8UW4oayk6MCxiPW50PzB8UW4oayk6MCxr''@;'; + put 'put ''PTAsSGU9MHxEdChsKSxWZT0wO0hlOyl7aWYodmFlKEV0KSwoMHxhWzEyMCsoMHxhW0hlKzE2Pj4yXSk+PjJdKSE9KDB8VmUpKXtXZT0xMjticmVha31mb3IoYVtzdCsoVmU8PDIpPj4yXT1IZSxhWyhPZT1rdCsoMjAqVmV8MCkrNHwwKT4+Ml09TSxhWyhMZT1rdCsoMjAqVmV8MCkrOHwwKT4+''@;'; + put 'put ''Ml09cWU/bTowLGFbKFJlPWt0KygyMCpWZXwwKSsxMnwwKT4+Ml09b3Q/dzowLGFba3QrKDIwKlZlfDApKzE2Pj4yXT1udD9iOjAscGU9MSxiZT0wfFNzKGwsSGUpLGdlPTEsSz1rLE09TSs0fDAsbT1xZT9tKzR8MDptLHc9b3Q/dys0fDA6dyxiPW50P2IrNHwwOmI7YmU7KXtEPTMmYVtiZT4+''@;'; + put 'put ''Ml0sRz1iZSstNDh8MCxrPWJlKzQ4fDA7ZG97aWYoKDB8YVsoMj09KDB8RCk/YmU6RykrNDA+PjJdKT09KDB8YVsoMz09KDB8RCk/YmU6aykrNDA+PjJdKSlEPXBlLEc9Z2Usaz1LO2Vsc2V7aWYoKDB8KEQ9MHxyc2UoRXQsYmUscGUpKSkhPSgwfHBlKSl7aWYob3QmJihqblsoRz0oMHxhW1Jl''@;'; + put 'put ''Pj4yXSkrKEQ8PDIpfDApPj4yXT0rX1sxMjgrKDB8YVtiZSsxNj4+Ml0pPj4zXSsgK2puW0c+PjJdKSwhU3Qpe0Q9cGUsRz1nZSxrPUs7YnJlYWt9am5bKEQ9KDB8YVtMZT4+Ml0pKyhEPDwyKXwwKT4+Ml09KFp0PStfWzEzNisoMHxhW2JlKzE2Pj4yXSk+PjNdKT4oUj0rKDB8fn4ram5bRD4+''@;'; + put 'put ''Ml0pKT9adDpSLEQ9cGUsRz1nZSxrPUs7YnJlYWt9Sz1LKzF8MCxEPXBlKzF8MCxwZT1NKzR8MCxhW00+PjJdPWFbMTIwKygwfGFbMTYrKDB8YVsoKDB8YVsoaz0zPT0oMHwoY3Q9MyZhW2JlPj4yXSkpP2JlOmspKzQwPj4yXSk9PSgwfEhlKT8yPT0oMHxjdCk/YmU6RzprKSs0MD4+Ml0pPj4y''@;'; + put 'put ''XSk+PjJdLG90JiYoam5bdz4+Ml09K19bMTI4KygwfGFbYmUrMTY+PjJdKT4+M10sdz13KzR8MCksU3Q/KGs9bSs0fDAsam5bbT4+Ml09K19bMTM2KygwfGFbYmUrMTY+PjJdKT4+M10sbnQ/KG09ayxXZT0yNyk6bT1rKTpudCYmKGpuW20+PjJdPTEsbT1tKzR8MCxXZT0yNyksMjc9PSgwfFdl''@;'; + put 'put ''KSYmKFdlPTAsUj0wIT0oMHwoaz0wfExpKGJlLDEwMTU1OSkpKSYmMD09KDB8czIoaywxMzU3MDksNCkpPzA6KDB8SGUpPT0oMHxhWygyPT0oMyZhW2JlPj4yXXwwKT9iZTpHKSs0MD4+Ml0pPzE6LTEsam5bYj4+Ml09UixiPWIrNHwwKSxHPWdlKzF8MCxrPUssTT1wZX19d2hpbGUoMCk7cGU9''@;'; + put 'put ''RCxiZT0wfE5zKGwsYmUsSGUpLGdlPUcsSz1rfWFba3QrKDIwKlZlfDApPj4yXT1nZSxhW2FbT2U+PjJdPj4yXT1WZSxrPUssSGU9MHx6dChsLEhlKSxWZT1WZSsxfDB9MTI9PSgwfFdlKSYmUHIoODkxMDMsODkxMTgsODE5LDg5MTMwKSxudCYmZnVuY3Rpb24gbGcobCxjLGYscCl7bHw9MCxj''@;'; + put 'put ''fD0wLGZ8PTAscHw9MDt2YXIgbT0wLEE9MDtmb3IobT0wOzspe2lmKCgwfG0pPj0oMHxjKSl7bT0wO2JyZWFrfWZlWzE1NysoQT0wfGFbMTYrKDB8YVtwKyhtPDwyKT4+Ml0pPj4yXSk+PjBdPTAsZmVbQSsxNTg+PjBdPTAsbT1tKzF8MH1mb3IoOyEoKDB8bSk+PSgwfGMpKTspMHxmZVsxNTcr''@;'; + put 'put ''KDB8YVsxNisoMHxhW3ArKG08PDIpPj4yXSk+PjJdKT4+MF18fGk0KGwsbSxmLHApLG09bSsxfDB9KGt0LGMscCxzdCksRD0oMHxrKS8yfDA7ZTpkb3tpZigoMHxEKSE9KDB8VjMobCkpKWZvcihrPShEPDwxKStjPDwyLGI9MHxWMCgwfGFba3QrND4+Ml0sayksU3QmJihtPTB8VjAoMHxhW2t0''@;'; + put 'put ''Kzg+PjJdLGspKSxvdD8oTT0wLHc9MHxWMCgwfGFba3QrMTI+PjJdLGspKTpNPTA7Oyl7aWYoKDB8TSk+PSgwfGMpKWJyZWFrIGU7az0wfGFba3QrKDIwKk18MCk+PjJdLGFba3QrKDIwKk18MCkrND4+Ml09YixTdCYmKGFba3QrKDIwKk18MCkrOD4+Ml09bSxtPW0rKGs8PDIpfDApLG90JiYo''@;'; + put 'put ''YVtrdCsoMjAqTXwwKSsxMj4+Ml09dyx3PXcrKGs8PDIpfDApLE09TSsxfDAsYj1iKyhrPDwyKXwwfX13aGlsZSgwKTtyZXR1cm4gYVtmPj4yXT1ELEE/YVtBPj4yXT1zdDpGdChzdCksZnVuY3Rpb24geXkobCl7dmFyIGMsZj0wO2ZvcihjPTB8YVs0KyhsfD0wKT4+Ml0sTmwobCksbD0wfGFb''@;'; + put 'put ''YyszNj4+Ml07bDspZj0wfGFbbD4+Ml0sRnQobCksbD1mO0Z0KGMpfShFdCksMHxrdH1mdW5jdGlvbiByc2UobCxjLGYpe3ZhciBwLG09MDtyZXR1cm4gMHxmdW5jdGlvbiBBYWUobCxjLGYscCl7dmFyIG0sQTtyZXR1cm4gbHw9MCxmfD0wLHB8PTAsbT1sZSxsZT1sZSszMnwwLGFbKEE9bSkr''@;'; + put 'put ''OD4+Ml09Y3w9MCxhW0ErMTI+PjJdPWYsYVtBKzE2Pj4yXT1wLHA9MHxhWzE2KygwfG1pWzYzJmFbbD4+Ml1dKGwsQSwxKSk+PjJdLGxlPW0sMHxwfShsfD0wLChtPSgwfChwPTB8YVsxMjArKDB8YVsxNisoMHxhWygzPT0oMHwobT0zJmFbKGN8PTApPj4yXSkpP2M6Yys0OHwwKSs0MD4+Ml0p''@;'; + put 'put ''Pj4yXSk+PjJdKSk+KDB8KGM9MHxhWzEyMCsoMHxhWzE2KygwfGFbKDI9PSgwfG0pP2M6YystNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSkpKT9jOnAsbT9wOmMsZnw9MCl9ZnVuY3Rpb24gaTQobCxjLGYscCl7bHw9MCxmfD0wO3ZhciBNLEQsUixLLG09MCxBPTAsdz0wLGI9MCxrPTAsRz0wO2Zl''@;'; + put 'put ''WzE1Nysoaz0wfGFbKEs9MTYrKDB8YVsocHw9MCkrKChjfD0wKTw8Mik+PjJdKXwwKT4+Ml0pPj4wXT0xLGZlW2srMTU4Pj4wXT0xLGs9bCsoMjAqY3wwKXwwLE09bCsoMjAqY3wwKSsxNnwwLEQ9bCsoMjAqY3wwKSs0fDAsUj0zPT0oMHxmKT8tMToxLGI9MTtlOmZvcig7Oyl7aWYoKDB8Yik+''@;'; + put 'put ''PSgwfGFbaz4+Ml0pKXttPTE0O2JyZWFrfW09KDB8YVtNPj4yXSkrKGI8PDIpfDA7ZG97aWYoMSE9K2puW20+PjJdKXtpZighKDB8ZmVbMTU4KyhBPTB8YVsxNisoMHxhW3ArKChHPTB8YVsoMHxhW0Q+PjJdKSsoYjw8Mik+PjJdKTw8Mik+PjJdKT4+Ml0pPj4wXSkpe2lmKDB8ZmVbQSsxNTc+''@;'; + put 'put ''PjBdKWJyZWFrO2k0KGwsRyxmLHApO2JyZWFrfWZvcihqblttPj4yXT1SLEE9bCsoMjAqR3wwKSs0fDAsdz0wfGFbbCsoMjAqR3wwKT4+Ml0sbT0xOzspe2lmKCgwfG0pPj0oMHx3KSl7bT05O2JyZWFrIGV9aWYoKDB8YVsoMHxhW0E+PjJdKSsobTw8Mik+PjJdKT09KDB8YykpYnJlYWs7bT1t''@;'; + put 'put ''KzF8MH1qblsoMHxhW2wrKDIwKkd8MCkrMTY+PjJdKSsobTw8Mik+PjJdPS0xfX13aGlsZSgwKTtiPWIrMXwwfWlmKDk9PSgwfG0pKVByKDg5MTQ0LDg5MTE4LDcyMSw4OTE2NCk7ZWxzZSBpZigxND09KDB8bSkpcmV0dXJuIHZvaWQoZmVbMTU4KygwfGFbSz4+Ml0pPj4wXT0wKX1mdW5jdGlv''@;'; + put 'put ''biB5RChsKXt2YXIgYztoMChsfD0wLDEzNzQ2MCwxNzYsMSksTDcobCksYz0rTWwobCwwfGFbNDcxNzRdLDEsMSksX1sxMjgrKDB8YVtsKzE2Pj4yXSk+PjNdPWN9ZnVuY3Rpb24gWk4obCxjLGYpe2x8PTAsZnw9MDt2YXIgYixwPTAsbT0wLEE9MCx3PTAsaz0wO2lmKGI9bGUsbGU9bGUrMTZ8''@;'; + put 'put ''MCxwPWIsdz0oQT0wfGl0WzE2OCsoMHxhWyhtPTE2KyhjfD0wKXwwKT4+Ml0pPj4xXSk8PDE2Pj4xNixBPDwxNj4+MTYhPTEmMD09KDB8ZmVbMTk0OTU0XSkpe2ZvcihBPTB8UW4odzw8MikscD0wOyEoKDB8cCk+PSgwfHcpKTspYVtBKyhwPDwyKT4+Ml09YyxjPTB8YVsxNzIrKDB8YVtjKzE2''@;'; + put 'put ''Pj4yXSk+PjJdLHA9cCsxfDA7Zm9yKG5EKGwsQSwwLHcsaz0rKDB8ZiksaywxNzc5MiksYz0wOyEoKDB8Yyk+PSgwfHcpKTspMHxhWzk2KygwfGFbKG09MTYrKHA9MHxhW0ErKGM8PDIpPj4yXSl8MCk+PjJdKT4+Ml0mJm40KGY9MHxjcigwfGFbKDM9PSgzJmFbcD4+Ml18MCk/cDpwKzQ4fDAp''@;'; + put 'put ''KzQwPj4yXSksMHxhWzk2KygwfGFbbT4+Ml0pPj4yXSksbU4ocCksYz1jKzF8MDtGdChBKX1lbHNlIGFbcD4+Ml09YyxuRChsLHAsMCwxLGs9KygwfGYpLGssMTc3OTIpLDB8YVs5NisoMHxhW20+PjJdKT4+Ml0mJm40KHc9MHxjcigwfGFbKDM9PSgzJmFbYz4+Ml18MCk/YzpjKzQ4fDApKzQw''@;'; + put 'put ''Pj4yXSksMHxhWzk2KygwfGFbbT4+Ml0pPj4yXSksbU4oYyk7bGU9Yn1mdW5jdGlvbiBiRChsLGMsZil7bHw9MCxjfD0wLGZ8PTA7dmFyIFZlLHFlLG50LG90LFN0LFNuLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxLPTAscGU9MCxnZT0wLGJlPTAsT2U9MCxMZT0w''@;'; + put 'put ''LFJlPTAsSGU9MCxXZT0wLGt0PTAsc3Q9MCxFdD0wLFp0PTAsY3Q9MCxidD0wLGFuPTA7U249bGUsbGU9bGUrMzg0fDAsYnQ9U24rMzY4fDAsYW49U24rMTEyfDAsQT1TbiszMnwwLEc9U24rMzM2fDAsc3Q9U24rMzIwfDAsRXQ9U24rMzA0fDAsWnQ9U24rMjg4fDAsY3Q9U24rMjcyfDAsbT1T''@;'; + put 'put ''bisyNTZ8MCxvdD1TbisyNDB8MCxTdD1TbisyMjR8MCxrdD1TbisyMDh8MCxwZT1TbisxOTJ8MCxnZT1TbisxNzZ8MCxiZT1TbisxNjB8MCxIZT1TbisxNDR8MCxWZT1TbisxMjh8MCxxZT1Tbis5NnwwLG50PVNuKzE2fDAsV2U9U247ZTpkb3tzd2l0Y2goMHwkNShsKSl7Y2FzZSAzOmNhc2Ug''@;'; + put 'put ''MTpwPTB8dnIoOCksbT0wfGFbMTIrKGw9MHxhWyhIZT1sKzE2fDApPj4yXSk+PjJdO2Rve2lmKGY8PDI0Pj4yNCl7aWYoMjA0OCZhW20rNDA+PjJdKXt2SihHLG0pLExlPStfW0crOD4+M10sUj0rX1tHKzE2Pj4zXSxSZT0rX1tHKzI0Pj4zXSxfW0E+PjNdPUQ9K19bRz4+M10sX1tBKzg+PjNd''@;'; + put 'put ''PUxlLF9bQSsxNj4+M109UixfW0ErMjQ+PjNdPUxlLF9bQSszMj4+M109UixfW0ErNDA+PjNdPVJlLF9bQSs0OD4+M109RCxfW0ErNTY+PjNdPVJlLFJlPTAsbD00LGY9MCxEPTAsUj0wO2JyZWFrfUxlPS0uNSooUmU9K19bbCs4MD4+M10pLF9bQT4+M109RD0tKFI9K19bbCs4OD4+M10pLF9b''@;'; + put 'put ''QSs4Pj4zXT1MZSxfW0ErMTY+PjNdPVIsX1tBKzI0Pj4zXT1MZSxSZSo9LjUsX1tBKzMyPj4zXT1SLF9bQSs0MD4+M109UmUsX1tBKzQ4Pj4zXT1ELF9bQSs1Nj4+M109UmUsUmU9MCxsPTQsZj0wLEQ9MCxSPTA7YnJlYWt9aWYoKDB8KGw9MHxhW20rOD4+Ml0pKT4yKXtSZT0wLEE9MHxhW20r''@;'; + put 'put ''NDQ+PjJdLGY9MCxEPStqbltjPj4yXSxSPStqbltjKzQ+PjJdO2JyZWFrfVJlPS4wMSorcWMoKSxsPTgsQT0wLGY9MSxEPTAsUj0wO2JyZWFrfXdoaWxlKDApO2ZvcihhW3ArND4+Ml09bCxHPTB8dnIobDw8NCksYVtwPj4yXT1HLEs9MS8rKDB8bCkscGU9Yys4fDAsZ2U9Yys0fDAsYmU9ND09''@;'; + put 'put ''KDB8bCksT2U9LUQsTGU9LVIsbT0wOzspe2lmKCgwfGwpPD0oMHxtKSlicmVhayBlO2Rve2lmKGYpYj0raGEoKyh3PTYuMjgzMTg1MzA3MTc5NTg2KisoMHxtKSpLK1JlKSksdz0rRGEoK3cpLDB8ZmVbcGU+PjBdPyhrPSgrX1s4MCsoYW49MHxhW0hlPj4yXSk+PjNdKyAram5bZ2U+PjJdKSp3''@;'; + put 'put ''LHc9KCtfW2FuKzk2Pj4zXSsgK19bYW4rODg+PjNdKyAram5bYz4+Ml0pKmIpOihrPXcqK2puW2dlPj4yXSorX1s4MCsoYW49MHxhW0hlPj4yXSk+PjNdLHc9Yioram5bYz4+Ml0qKCtfW2FuKzk2Pj4zXSsgK19bYW4rODg+PjNdKSksTT0uNSp3LHc9LjUqaztlbHNle2lmKCEoMHxmZVtwZT4+''@;'; + put 'put ''MF0pKXtNPStfW0ErKG08PDQpPj4zXSpELHc9K19bQSsobTw8NCkrOD4+M10qUjticmVha31pZighYmUpe009K19bQSsobTw8NCk+PjNdLE0qPUQvKGs9K0QwKCsoKHc9K19bQSsobTw8NCkrOD4+M10pKncrTSpNKSkpKzEsdyo9Ui9rKzE7YnJlYWt9c3dpdGNoKDB8bSl7Y2FzZSAwOmI9Uix3''@;'; + put 'put ''PUQ7YnJlYWs7Y2FzZSAxOmI9Uix3PU9lO2JyZWFrO2Nhc2UgMjpiPUxlLHc9T2U7YnJlYWs7Y2FzZSAzOmI9TGUsdz1EO2JyZWFrO2RlZmF1bHQ6Yj0wLHc9MH1NPStfW0ErKG08PDQpPj4zXSt3LHc9K19bQSsobTw8NCkrOD4+M10rYn19d2hpbGUoMCk7X1tHKygoYW49bC1tLTF8MCk8PDQp''@;'; + put 'put ''Pj4zXT0rX1sxNisoYnQ9MHxhW0hlPj4yXSk+PjNdK00sX1tHKyhhbjw8NCkrOD4+M109K19bYnQrMjQ+PjNdK3csbT1tKzF8MH1jYXNlIDI6aWYodz0rX1sxNisocD0wfGFbMTIrKDB8YVsoV2U9bCsxNnwwKT4+Ml0pPj4yXSk+PjNdLE09K19bcCsyND4+M10sYj0rX1twKzMyPj4zXSxrPStf''@;'; + put 'put ''W3ArNDA+PjNdLHA9MHx2cig4KSxhW3ArND4+Ml09NCxsPTB8dnIoNjQpLGFbcD4+Ml09bCxhW2FuPj4yXT1hWyhXZT0xNisoMHxhW1dlPj4yXSl8MCk+PjJdLGFbYW4rND4+Ml09YVtXZSs0Pj4yXSxhW2FuKzg+PjJdPWFbV2UrOD4+Ml0sYVthbisxMj4+Ml09YVtXZSsxMj4+Ml0sMHxmZVtj''@;'; + put 'put ''Kzg+PjBdKXtSZT13LStqbltjPj4yXSxMZT1NLStqblsoa3Q9Yys0fDApPj4yXSxhW2J0Pj4yXT1hW2FuPj4yXSxhW2J0KzQ+PjJdPWFbYW4rND4+Ml0sYVtidCs4Pj4yXT1hW2FuKzg+PjJdLGFbYnQrMTI+PjJdPWFbYW4rMTI+PjJdLHNnKHN0LFJlLExlLGJ0KSxhW2w+PjJdPWFbc3Q+PjJd''@;'; + put 'put ''LGFbbCs0Pj4yXT1hW3N0KzQ+PjJdLGFbbCs4Pj4yXT1hW3N0Kzg+PjJdLGFbbCsxMj4+Ml09YVtzdCsxMj4+Ml0sc3Q9MTYrKDB8YVtwPj4yXSl8MCxMZT13LStqbltjPj4yXSxSZT1rKyAram5ba3Q+PjJdLGFbYnQ+PjJdPWFbYW4+PjJdLGFbYnQrND4+Ml09YVthbis0Pj4yXSxhW2J0Kzg+''@;'; + put 'put ''PjJdPWFbYW4rOD4+Ml0sYVtidCsxMj4+Ml09YVthbisxMj4+Ml0sc2coRXQsTGUsUmUsYnQpLGFbc3Q+PjJdPWFbRXQ+PjJdLGFbc3QrND4+Ml09YVtFdCs0Pj4yXSxhW3N0Kzg+PjJdPWFbRXQrOD4+Ml0sYVtzdCsxMj4+Ml09YVtFdCsxMj4+Ml0sRXQ9MzIrKDB8YVtwPj4yXSl8MCxSZT1i''@;'; + put 'put ''KyAram5bYz4+Ml0sTGU9aysgK2puW2t0Pj4yXSxhW2J0Pj4yXT1hW2FuPj4yXSxhW2J0KzQ+PjJdPWFbYW4rND4+Ml0sYVtidCs4Pj4yXT1hW2FuKzg+PjJdLGFbYnQrMTI+PjJdPWFbYW4rMTI+PjJdLHNnKFp0LFJlLExlLGJ0KSxhW0V0Pj4yXT1hW1p0Pj4yXSxhW0V0KzQ+PjJdPWFbWnQr''@;'; + put 'put ''ND4+Ml0sYVtFdCs4Pj4yXT1hW1p0Kzg+PjJdLGFbRXQrMTI+PjJdPWFbWnQrMTI+PjJdLFp0PTQ4KygwfGFbcD4+Ml0pfDAsTGU9YisgK2puW2M+PjJdLFJlPU0tK2puW2t0Pj4yXSxhW2J0Pj4yXT1hW2FuPj4yXSxhW2J0KzQ+PjJdPWFbYW4rND4+Ml0sYVtidCs4Pj4yXT1hW2FuKzg+PjJd''@;'; + put 'put ''LGFbYnQrMTI+PjJdPWFbYW4rMTI+PjJdLHNnKGN0LExlLFJlLGJ0KSxhW1p0Pj4yXT1hW2N0Pj4yXSxhW1p0KzQ+PjJdPWFbY3QrND4+Ml0sYVtadCs4Pj4yXT1hW2N0Kzg+PjJdLGFbWnQrMTI+PjJdPWFbY3QrMTI+PjJdO2JyZWFrIGV9YVtidD4+Ml09YVthbj4+Ml0sYVtidCs0Pj4yXT1h''@;'; + put 'put ''W2FuKzQ+PjJdLGFbYnQrOD4+Ml09YVthbis4Pj4yXSxhW2J0KzEyPj4yXT1hW2FuKzEyPj4yXSx1ZyhtLHcsTSxidCxjKSxhW2w+PjJdPWFbbT4+Ml0sYVtsKzQ+PjJdPWFbbSs0Pj4yXSxhW2wrOD4+Ml09YVttKzg+PjJdLGFbbCsxMj4+Ml09YVttKzEyPj4yXSxjdD0xNisoMHxhW3A+PjJd''@;'; + put 'put ''KXwwLGFbYnQ+PjJdPWFbYW4+PjJdLGFbYnQrND4+Ml09YVthbis0Pj4yXSxhW2J0Kzg+PjJdPWFbYW4rOD4+Ml0sYVtidCsxMj4+Ml09YVthbisxMj4+Ml0sdWcob3QsdyxrLGJ0LGMpLGFbY3Q+PjJdPWFbb3Q+PjJdLGFbY3QrND4+Ml09YVtvdCs0Pj4yXSxhW2N0Kzg+PjJdPWFbb3QrOD4+''@;'; + put 'put ''Ml0sYVtjdCsxMj4+Ml09YVtvdCsxMj4+Ml0sY3Q9MzIrKDB8YVtwPj4yXSl8MCxhW2J0Pj4yXT1hW2FuPj4yXSxhW2J0KzQ+PjJdPWFbYW4rND4+Ml0sYVtidCs4Pj4yXT1hW2FuKzg+PjJdLGFbYnQrMTI+PjJdPWFbYW4rMTI+PjJdLHVnKFN0LGIsayxidCxjKSxhW2N0Pj4yXT1hW1N0Pj4y''@;'; + put 'put ''XSxhW2N0KzQ+PjJdPWFbU3QrND4+Ml0sYVtjdCs4Pj4yXT1hW1N0Kzg+PjJdLGFbY3QrMTI+PjJdPWFbU3QrMTI+PjJdLGN0PTQ4KygwfGFbcD4+Ml0pfDAsYVtidD4+Ml09YVthbj4+Ml0sYVtidCs0Pj4yXT1hW2FuKzQ+PjJdLGFbYnQrOD4+Ml09YVthbis4Pj4yXSxhW2J0KzEyPj4yXT1h''@;'; + put 'put ''W2FuKzEyPj4yXSx1ZyhrdCxiLE0sYnQsYyksYVtjdD4+Ml09YVtrdD4+Ml0sYVtjdCs0Pj4yXT1hW2t0KzQ+PjJdLGFbY3QrOD4+Ml09YVtrdCs4Pj4yXSxhW2N0KzEyPj4yXT1hW2t0KzEyPj4yXTticmVhayBlO2Nhc2UgNDppZihsPWwrMTZ8MCxwPTB8dnIoOCksYVtwKzQ+PjJdPTQsbT0w''@;'; + put 'put ''fHZyKDY0KSxhW3A+PjJdPW0sYVthbj4+Ml09YVsoY3Q9MTYrKEE9MHxhW2w+PjJdKXwwKT4+Ml0sYVthbis0Pj4yXT1hW2N0KzQ+PjJdLGFbYW4rOD4+Ml09YVtjdCs4Pj4yXSxhW2FuKzEyPj4yXT1hW2N0KzEyPj4yXSx3PS0rX1tBKzg4Pj4zXSwwfGZlW2MrOD4+MF0pe1JlPXctK2puW2M+''@;'; + put 'put ''PjJdLExlPS0rX1tBKzgwPj4zXS0ram5bKFp0PWMrNHwwKT4+Ml0sYVtidD4+Ml09YVthbj4+Ml0sYVtidCs0Pj4yXT1hW2FuKzQ+PjJdLGFbYnQrOD4+Ml09YVthbis4Pj4yXSxhW2J0KzEyPj4yXT1hW2FuKzEyPj4yXSxzZyhwZSxSZSxMZSxidCksYVttPj4yXT1hW3BlPj4yXSxhW20rND4+''@;'; + put 'put ''Ml09YVtwZSs0Pj4yXSxhW20rOD4+Ml09YVtwZSs4Pj4yXSxhW20rMTI+PjJdPWFbcGUrMTI+PjJdLGN0PTE2KygwfGFbcD4+Ml0pfDAsTGU9LStfWzg4KyhFdD0wfGFbbD4+Ml0pPj4zXS0ram5bYz4+Ml0sUmU9K19bRXQrODA+PjNdKyAram5bWnQ+PjJdLGFbYnQ+PjJdPWFbYW4+PjJdLGFb''@;'; + put 'put ''YnQrND4+Ml09YVthbis0Pj4yXSxhW2J0Kzg+PjJdPWFbYW4rOD4+Ml0sYVtidCsxMj4+Ml09YVthbisxMj4+Ml0sc2coZ2UsTGUsUmUsYnQpLGFbY3Q+PjJdPWFbZ2U+PjJdLGFbY3QrND4+Ml09YVtnZSs0Pj4yXSxhW2N0Kzg+PjJdPWFbZ2UrOD4+Ml0sYVtjdCsxMj4+Ml09YVtnZSsxMj4+''@;'; + put 'put ''Ml0sY3Q9MzIrKDB8YVtwPj4yXSl8MCxSZT0rX1s5NisoRXQ9MHxhW2w+PjJdKT4+M10rICtqbltjPj4yXSxMZT0rX1tFdCs4MD4+M10rICtqbltadD4+Ml0sYVtidD4+Ml09YVthbj4+Ml0sYVtidCs0Pj4yXT1hW2FuKzQ+PjJdLGFbYnQrOD4+Ml09YVthbis4Pj4yXSxhW2J0KzEyPj4yXT1h''@;'; + put 'put ''W2FuKzEyPj4yXSxzZyhiZSxSZSxMZSxidCksYVtjdD4+Ml09YVtiZT4+Ml0sYVtjdCs0Pj4yXT1hW2JlKzQ+PjJdLGFbY3QrOD4+Ml09YVtiZSs4Pj4yXSxhW2N0KzEyPj4yXT1hW2JlKzEyPj4yXSxjdD00OCsoMHxhW3A+PjJdKXwwLExlPStfWzk2KyhFdD0wfGFbbD4+Ml0pPj4zXSsgK2pu''@;'; + put 'put ''W2M+PjJdLFJlPS0rX1tFdCs4MD4+M10tK2puW1p0Pj4yXSxhW2J0Pj4yXT1hW2FuPj4yXSxhW2J0KzQ+PjJdPWFbYW4rND4+Ml0sYVtidCs4Pj4yXT1hW2FuKzg+PjJdLGFbYnQrMTI+PjJdPWFbYW4rMTI+PjJdLHNnKEhlLExlLFJlLGJ0KSxhW2N0Pj4yXT1hW0hlPj4yXSxhW2N0KzQ+PjJd''@;'; + put 'put ''PWFbSGUrND4+Ml0sYVtjdCs4Pj4yXT1hW0hlKzg+PjJdLGFbY3QrMTI+PjJdPWFbSGUrMTI+PjJdO2JyZWFrIGV9TGU9LStfW0ErODA+PjNdLGFbYnQ+PjJdPWFbYW4+PjJdLGFbYnQrND4+Ml09YVthbis0Pj4yXSxhW2J0Kzg+PjJdPWFbYW4rOD4+Ml0sYVtidCsxMj4+Ml09YVthbisxMj4+''@;'; + put 'put ''Ml0sdWcoVmUsdyxMZSxidCxjKSxhW20+PjJdPWFbVmU+PjJdLGFbbSs0Pj4yXT1hW1ZlKzQ+PjJdLGFbbSs4Pj4yXT1hW1ZlKzg+PjJdLGFbbSsxMj4+Ml09YVtWZSsxMj4+Ml0sY3Q9MTYrKDB8YVtwPj4yXSl8MCxMZT0tK19bODgrKFp0PTB8YVtsPj4yXSk+PjNdLFJlPStfW1p0KzgwPj4z''@;'; + put 'put ''XSxhW2J0Pj4yXT1hW2FuPj4yXSxhW2J0KzQ+PjJdPWFbYW4rND4+Ml0sYVtidCs4Pj4yXT1hW2FuKzg+PjJdLGFbYnQrMTI+PjJdPWFbYW4rMTI+PjJdLHVnKHFlLExlLFJlLGJ0LGMpLGFbY3Q+PjJdPWFbcWU+PjJdLGFbY3QrND4+Ml09YVtxZSs0Pj4yXSxhW2N0Kzg+PjJdPWFbcWUrOD4+''@;'; + put 'put ''Ml0sYVtjdCsxMj4+Ml09YVtxZSsxMj4+Ml0sY3Q9MzIrKDB8YVtwPj4yXSl8MCxSZT0rX1s5NisoWnQ9MHxhW2w+PjJdKT4+M10sTGU9K19bWnQrODA+PjNdLGFbYnQ+PjJdPWFbYW4+PjJdLGFbYnQrND4+Ml09YVthbis0Pj4yXSxhW2J0Kzg+PjJdPWFbYW4rOD4+Ml0sYVtidCsxMj4+Ml09''@;'; + put 'put ''YVthbisxMj4+Ml0sdWcobnQsUmUsTGUsYnQsYyksYVtjdD4+Ml09YVtudD4+Ml0sYVtjdCs0Pj4yXT1hW250KzQ+PjJdLGFbY3QrOD4+Ml09YVtudCs4Pj4yXSxhW2N0KzEyPj4yXT1hW250KzEyPj4yXSxjdD00OCsoMHxhW3A+PjJdKXwwLExlPStfWzk2KyhadD0wfGFbbD4+Ml0pPj4zXSxS''@;'; + put 'put ''ZT0tK19bWnQrODA+PjNdLGFbYnQ+PjJdPWFbYW4+PjJdLGFbYnQrND4+Ml09YVthbis0Pj4yXSxhW2J0Kzg+PjJdPWFbYW4rOD4+Ml0sYVtidCsxMj4+Ml09YVthbisxMj4+Ml0sdWcoV2UsTGUsUmUsYnQsYyksYVtjdD4+Ml09YVtXZT4+Ml0sYVtjdCs0Pj4yXT1hW1dlKzQ+PjJdLGFbY3Qr''@;'; + put 'put ''OD4+Ml09YVtXZSs4Pj4yXSxhW2N0KzEyPj4yXT1hW1dlKzEyPj4yXTticmVhayBlO2RlZmF1bHQ6cD0wfX13aGlsZSgwKTtyZXR1cm4gbGU9U24sMHxwfWZ1bmN0aW9uIHNnKGwsYyxmLHApe2Y9K19bOCsocHw9MCk+PjNdKyhmPStmKSxfWyhsfD0wKT4+M109K19bcD4+M10rKGM9K2MpLF9b''@;'; + put 'put ''bCs4Pj4zXT1mfWZ1bmN0aW9uIHVnKGwsYyxmLHAsbSl7Zj0ram5bNCsobXw9MCk+PjJdKihmPStmKSsgK19bOCsocHw9MCk+PjNdLF9bKGx8PTApPj4zXT0ram5bbT4+Ml0qKGM9K2MpKyArX1twPj4zXSxfW2wrOD4+M109Zn1mdW5jdGlvbiBCSihsLGMsZixwLG0sQSl7bHw9MCxmfD0wLHB8''@;'; + put 'put ''PTAsbXw9MCxBfD0wO3ZhciB3LGIsayxNLEQsUixHLEs9MCxwZT0wLGdlPTA7Rz1sZSxsZT1sZSsxMTJ8MCxrPUcrODh8MCxNPUcrMzJ8MCxEPUcrMTZ8MCxSPUcsbT1HKzU2fDAsQT1HKzQwfDAsdz00OCsoY3w9MCl8MCxwZT0xNisoMHxhWyhLPWMrMTZ8MCk+PjJdKXwwLGFbKGI9Rys3Mnww''@;'; + put 'put ''KT4+Ml09YVsoZ2U9MTYrKDB8YVsxNisoMHxhWygzPT0oMyZhW2M+PjJdfDApP2M6dykrNDA+PjJdKT4+Ml0pfDApPj4yXSxhW2IrND4+Ml09YVtnZSs0Pj4yXSxhW2IrOD4+Ml09YVtnZSs4Pj4yXSxhW2IrMTI+PjJdPWFbZ2UrMTI+PjJdLGFbaz4+Ml09YVtwZT4+Ml0sYVtrKzQ+PjJdPWFb''@;'; + put 'put ''cGUrND4+Ml0sYVtrKzg+PjJdPWFbcGUrOD4+Ml0sYVtrKzEyPj4yXT1hW3BlKzEyPj4yXSxDayhtLGIsayksYVtEPj4yXT1hW20+PjJdLGFbRCs0Pj4yXT1hW20rND4+Ml0sYVtEKzg+PjJdPWFbbSs4Pj4yXSxhW0QrMTI+PjJdPWFbbSsxMj4+Ml0sbT1jKy00OHwwLEs9NTYrKDB8YVtLPj4y''@;'; + put 'put ''XSl8MCxhW2I+PjJdPWFbKHBlPTE2KygwfGFbMTYrKDB8YVsoMj09KDMmYVtjPj4yXXwwKT9jOm0pKzQwPj4yXSk+PjJdKXwwKT4+Ml0sYVtiKzQ+PjJdPWFbcGUrND4+Ml0sYVtiKzg+PjJdPWFbcGUrOD4+Ml0sYVtiKzEyPj4yXT1hW3BlKzEyPj4yXSxhW2s+PjJdPWFbSz4+Ml0sYVtrKzQ+''@;'; + put 'put ''PjJdPWFbSys0Pj4yXSxhW2srOD4+Ml09YVtLKzg+PjJdLGFbaysxMj4+Ml09YVtLKzEyPj4yXSxDayhBLGIsayksYVtSPj4yXT1hW0E+PjJdLGFbUis0Pj4yXT1hW0ErND4+Ml0sYVtSKzg+PjJdPWFbQSs4Pj4yXSxhW1IrMTI+PjJdPWFbQSsxMj4+Ml0scD8oQT0wfGFbMjg4KygwfGFbMTYr''@;'; + put 'put ''KDB8YVsoMj09KDB8KGdlPTMmYVtjPj4yXSkpP2M6bSkrNDA+PjJdKT4+Ml0pPj4yXSxtPTB8YVsyODgrKDB8YVsxNisoMHxhWygzPT0oMHxnZSk/Yzp3KSs0MD4+Ml0pPj4yXSk+PjJdKTooQT0tMTExMSxtPS0xMTExKSxhW2I+PjJdPWFbRD4+Ml0sYVtiKzQ+PjJdPWFbRCs0Pj4yXSxhW2Ir''@;'; + put 'put ''OD4+Ml09YVtEKzg+PjJdLGFbYisxMj4+Ml09YVtEKzEyPj4yXSxhW2s+PjJdPWFbUj4+Ml0sYVtrKzQ+PjJdPWFbUis0Pj4yXSxhW2srOD4+Ml09YVtSKzg+PjJdLGFbaysxMj4+Ml09YVtSKzEyPj4yXSxmdW5jdGlvbiBMZChsLGMsZixwLG0sQSl7bHw9MCxmfD0wLHB8PTAsbXw9MCxBfD0w''@;'; + put 'put ''O3ZhciBiLFIsRyxLLHc9MCxrPTAsTT0wLEQ9MDtmb3IoSz1sZSxsZT1sZSszMnwwLGs9SyxhWyhEPUsrMTZ8MCk+PjJdPWFbKGN8PTApPj4yXSxhW0QrND4+Ml09YVtjKzQ+PjJdLGFbRCs4Pj4yXT1hW2MrOD4+Ml0sYVtEKzEyPj4yXT1hW2MrMTI+PjJdLFI9MHxkXyhsLGYsRCksYVtEPj4y''@;'; + put 'put ''XT1hW3A+PjJdLGFbRCs0Pj4yXT1hW3ArND4+Ml0sYVtEKzg+PjJdPWFbcCs4Pj4yXSxhW0QrMTI+PjJdPWFbcCsxMj4+Ml0sRz0wfGRfKGwsbSxEKSxhW2s+PjJdPWFbYz4+Ml0sYVtrKzQ+PjJdPWFbYys0Pj4yXSxhW2srOD4+Ml09YVtjKzg+PjJdLGFbaysxMj4+Ml09YVtjKzEyPj4yXSxh''@;'; + put 'put ''W0Q+PjJdPWFbcD4+Ml0sYVtEKzQ+PjJdPWFbcCs0Pj4yXSxhW0QrOD4+Ml09YVtwKzg+PjJdLGFbRCsxMj4+Ml09YVtwKzEyPj4yXSxEPTB8ZnVuY3Rpb24gaXgobCxjLGYscCxtLEEsdyl7Y3w9MCxmfD0wLHB8PTAsbXw9MCxBfD0wO3ZhciBiLGssTSxEPTA7cmV0dXJuIGs9bGUsbGU9bGUr''@;'; + put 'put ''MzJ8MCxNPWsrMTZ8MCxiPTB8YVs0Kyh3fD0wKT4+Ml0sYVsoRD1rKT4+Ml09YVsobHw9MCk+PjJdLGFbRCs0Pj4yXT1hW2wrND4+Ml0sYVtEKzg+PjJdPWFbbCs4Pj4yXSxhW0QrMTI+PjJdPWFbbCsxMj4+Ml0sYVtNPj4yXT1hW3A+PjJdLGFbTSs0Pj4yXT1hW3ArND4+Ml0sYVtNKzg+PjJd''@;'; + put 'put ''PWFbcCs4Pj4yXSxhW00rMTI+PjJdPWFbcCsxMj4+Ml0sMHxmdW5jdGlvbiBnXyhsLGMsZixwLG0pe2x8PTAsY3w9MCxmfD0wO3ZhciBELFIsRyxLLHBlLGdlLGJlLE9lLEE9MCx3PTAsYj0wLGs9MCxNPTA7T2U9bGUsbGU9bGUrNjR8MCxSPU9lKzQ4fDAsRD1PZSszMnwwLEs9T2UrMTZ8MCxH''@;'; + put 'put ''PU9lLGdlPTB8YVs0KyhtfD0wKT4+Ml0sYmU9MHxhW20rOD4+Ml0scGU9MHxhW20rMTY+PjJdLEE9KDB8KHB8PTApKTwwO2Rve2lmKCEoKDB8Yyk8MCkpe2lmKEEpe009MHxhW20rMTI+PjJdLG09MCx3PTAsYj1jLGs9TSxjPU0rKGM8PDIpfDAsTT05O2JyZWFrfWlmKEE9MHxhW20rMTI+PjJd''@;'; + put 'put ''LCgwfGMpPigwfHApKXttPTB8YVtBKyhwKzE8PDIpPj4yXSx3PTB8YVtBKyhwPDwyKT4+Ml0sYj1jLGs9QSxjPUErKGM8PDIpfDAsTT05O2JyZWFrfW09MHxhW0ErKGMrMTw8Mik+PjJdLHc9MHxhW0ErKGM8PDIpPj4yXSxiPXAsaz1BLGM9QSsocDw8Mil8MCxNPTk7YnJlYWt9QT8oQT0wLGI9''@;'; + put 'put ''MCxtPTAsdz0wKTooYz0wfGFbbSsxMj4+Ml0sbT0wLHc9MCxiPXAsaz1jLGM9YysocDw8Mil8MCxNPTkpfXdoaWxlKDApO2Zvcig5PT0oMHxNKSYmKEE9MHxhW2srKGIrMTw8Mik+PjJdLGI9MHxhW2M+PjJdKSxjPTA7Oyl7aWYoKDB8Yyk+PSgwfHcpKXtNPTEzO2JyZWFrfWlmKGs9YmUrKGM8''@;'; + put 'put ''PDQpfDAscD1iZSsoYVtwZSsoYzw8Mik+PjJdPDw0KXwwLGFbRz4+Ml09YVtsPj4yXSxhW0crND4+Ml09YVtsKzQ+PjJdLGFbRys4Pj4yXT1hW2wrOD4+Ml0sYVtHKzEyPj4yXT1hW2wrMTI+PjJdLGFbSz4+Ml09YVtmPj4yXSxhW0srND4+Ml09YVtmKzQ+PjJdLGFbSys4Pj4yXT1hW2YrOD4+''@;'; + put 'put ''Ml0sYVtLKzEyPj4yXT1hW2YrMTI+PjJdLGFbRD4+Ml09YVtrPj4yXSxhW0QrND4+Ml09YVtrKzQ+PjJdLGFbRCs4Pj4yXT1hW2srOD4+Ml0sYVtEKzEyPj4yXT1hW2srMTI+PjJdLGFbUj4+Ml09YVtwPj4yXSxhW1IrND4+Ml09YVtwKzQ+PjJdLGFbUis4Pj4yXT1hW3ArOD4+Ml0sYVtSKzEy''@;'; + put 'put ''Pj4yXT1hW3ArMTI+PjJdLDB8QzYoRyxLLEQsUikpe0E9MDticmVha31jPWMrMXwwfWU6ZG97aWYoMTM9PSgwfE0pKXtmb3IoOyEoKDB8bSk+PSgwfGIpKTspe2lmKHA9YmUrKG08PDQpfDAsTT1iZSsoYVtwZSsobTw8Mik+PjJdPDw0KXwwLGFbRz4+Ml09YVtsPj4yXSxhW0crND4+Ml09YVts''@;'; + put 'put ''KzQ+PjJdLGFbRys4Pj4yXT1hW2wrOD4+Ml0sYVtHKzEyPj4yXT1hW2wrMTI+PjJdLGFbSz4+Ml09YVtmPj4yXSxhW0srND4+Ml09YVtmKzQ+PjJdLGFbSys4Pj4yXT1hW2YrOD4+Ml0sYVtLKzEyPj4yXT1hW2YrMTI+PjJdLGFbRD4+Ml09YVtwPj4yXSxhW0QrND4+Ml09YVtwKzQ+PjJdLGFb''@;'; + put 'put ''RCs4Pj4yXT1hW3ArOD4+Ml0sYVtEKzEyPj4yXT1hW3ArMTI+PjJdLGFbUj4+Ml09YVtNPj4yXSxhW1IrND4+Ml09YVtNKzQ+PjJdLGFbUis4Pj4yXT1hW00rOD4+Ml0sYVtSKzEyPj4yXT1hW00rMTI+PjJdLDB8QzYoRyxLLEQsUikpe0E9MDticmVhayBlfW09bSsxfDAsTT0xM31mb3IoOzsp''@;'; + put 'put ''e2lmKCgwfEEpPj0oMHxnZSkpe0E9MTticmVhayBlfWlmKHA9YmUrKEE8PDQpfDAsTT1iZSsoYVtwZSsoQTw8Mik+PjJdPDw0KXwwLGFbRz4+Ml09YVtsPj4yXSxhW0crND4+Ml09YVtsKzQ+PjJdLGFbRys4Pj4yXT1hW2wrOD4+Ml0sYVtHKzEyPj4yXT1hW2wrMTI+PjJdLGFbSz4+Ml09YVtm''@;'; + put 'put ''Pj4yXSxhW0srND4+Ml09YVtmKzQ+PjJdLGFbSys4Pj4yXT1hW2YrOD4+Ml0sYVtLKzEyPj4yXT1hW2YrMTI+PjJdLGFbRD4+Ml09YVtwPj4yXSxhW0QrND4+Ml09YVtwKzQ+PjJdLGFbRCs4Pj4yXT1hW3ArOD4+Ml0sYVtEKzEyPj4yXT1hW3ArMTI+PjJdLGFbUj4+Ml09YVtNPj4yXSxhW1Ir''@;'; + put 'put ''ND4+Ml09YVtNKzQ+PjJdLGFbUis4Pj4yXT1hW00rOD4+Ml0sYVtSKzEyPj4yXT1hW00rMTI+PjJdLDB8QzYoRyxLLEQsUikpe0E9MDticmVha31BPUErMXwwfX19d2hpbGUoMCk7cmV0dXJuIGxlPU9lLDB8QX0oRCxjLE0sbSx3KT8obD0wfEIwKDgrKGI8PDIpfDApLGFbbCsoYjw8Mik+PjJd''@;'; + put 'put ''PUQ9YisxfDAsYVtsKyhEPDwyKT4+Ml09LTEpOihhWyhsPTB8YVt3KzI0Pj4yXSkrKGI8PDIpPj4yXT1BLGFbbCsoKEQ9YisxfDApPDwyKT4+Ml09ZixsPTB8ZnVuY3Rpb24gY18obCxjLGYscCl7bHw9MCxjfD0wLHB8PTA7dmFyIEQsUixHLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEs9MCxw''@;'; + put 'put ''ZT0wO2ZvcihEPTB8QjAoKGZ8PTApPDwyKSxHPTgrKFI9MHxCMCg4KyhmPDwzKXwwKSl8MCxtPTA7ISgoMHxtKT49KDB8ZikpOylhW0QrKG08PDIpPj4yXT0tMSxfW0crKG08PDMpPj4zXT0tMjE0NzQ4MzY0NyxtPW0rMXwwO19bUj4+M109LTIxNDc0ODM2NDg7ZTpmb3IoOygwfGwpIT0oMHxj''@;'; + put 'put ''KTspZm9yKE09RysobDw8Myl8MCxiPStfW00+PjNdLF9bTT4+M109LTIxNDc0ODM2NDc9PWI/MDotYixrPTAsbT0tMTs7KXtpZigoMHxrKT49KDB8Zikpe2w9bTtjb250aW51ZSBlfShBPStfWyh3PUcrKGs8PDMpfDApPj4zXSk8MCYmKDAhPShLPStfWygwfGFbcCsoKChwZT0oMHxsKTwoMHxr''@;'; + put 'put ''KSk/azpsKTw8Mik+PjJdKSsoKHBlP2w6ayk8PDMpPj4zXSkmQTwoYj0tKEsrICtfW00+PjNdKSkmJihfW3c+PjNdPWIsYVtEKyhrPDwyKT4+Ml09bCxBPWIpLG09QT4rX1tHKyhtPDwzKT4+M10/azptKSxrPWsrMXwwfXJldHVybiBGdChSKSwwfER9KEQsYixiKzJ8MCxsKSksbGU9aywwfGx9''@;'; + put 'put ''KGssZixSLEQsbSxHLGwpLGs9MSsoZj0wfGFbbCs0Pj4yXSl8MCxtPTEsdz1mO009bSsxfDAsKDB8KHc9MHxhW0QrKHc8PDIpPj4yXSkpIT0oMHxrKTspbT1NO2ZvcihiPTB8QjAoTTw8NCksYVsodz1iKyhtPDw0KXwwKT4+Ml09YVtwPj4yXSxhW3crND4+Ml09YVtwKzQ+PjJdLGFbdys4Pj4y''@;'; + put 'put ''XT1hW3ArOD4+Ml0sYVt3KzEyPj4yXT1hW3ArMTI+PjJdLGw9bCs4fDA7dz1iKygobT1tKy0xfDApPDw0KXwwLCgwfChmPTB8YVtEKyhmPDwyKT4+Ml0pKSE9KDB8ayk7KWFbdz4+Ml09YVsocD0oMHxhW2w+PjJdKSsoZjw8NCl8MCk+PjJdLGFbdys0Pj4yXT1hW3ArND4+Ml0sYVt3Kzg+PjJd''@;'; + put 'put ''PWFbcCs4Pj4yXSxhW3crMTI+PjJdPWFbcCsxMj4+Ml07cmV0dXJuIGFbdz4+Ml09YVtjPj4yXSxhW3crND4+Ml09YVtjKzQ+PjJdLGFbdys4Pj4yXT1hW2MrOD4+Ml0sYVt3KzEyPj4yXT1hW2MrMTI+PjJdLDB8bSYmUHIoMTQxODA5LDE0MTgxNiwxNDgsMTQxODIyKSwwfFImJkZ0KFIpLDB8''@;'; + put 'put ''RyYmRnQoRyksYVtBKzQ+PjJdPU0sYVtBPj4yXT1iLEZ0KEQpLGxlPUssMX0oZixiLG0sayxBLE0pLHBlPTB8YVsoSz1NKSs0Pj4yXSxhWyhnZT1sKT4+Ml09YVtLPj4yXSxhW2dlKzQ+PjJdPXBlLGxlPUd9ZnVuY3Rpb24gQ2sobCxjLGYpe3ZhciBwO3A9K19bOCsoZnw9MCk+PjNdKyArX1s4''@;'; + put 'put ''KyhjfD0wKT4+M10sX1sobHw9MCk+PjNdPStfW2Y+PjNdKyArX1tjPj4zXSxfW2wrOD4+M109cH1mdW5jdGlvbiBHTihsLGMsZixwLG0pe2Z8PTAscHw9MCxtfD0wO3ZhciBiLGssTSxELEsscGUsZ2UsYmUsTGUsUixBPTAsdz0wLE9lPTAsUmU9MDtMZT1sZSxsZT1sZSsxNDR8MCxLPUxlKzEw''@;'; + put 'put ''NHwwLHBlPUxlKzg4fDAsUj1MZSs3MnwwLGJlPUxlKzEyOHwwLE09TGUrMzJ8MCxEPUxlKzEyNHwwLE9lPUxlKzE2fDAsZ2U9TGUsYj1MZSsxMjB8MCxBPTB8YVsodz0xNDQrKDB8YVsxNisoY3w9MCk+PjJdKXwwKT4+Ml0sdz0wfGFbdys0Pj4yXSxhWyhSZT1rPUxlKzY0fDApPj4yXT1BLGFb''@;'; + put 'put ''UmUrND4+Ml09dyxhW09lPj4yXT1hWyhSZT1BKT4+Ml0sYVtPZSs0Pj4yXT1hW1JlKzQ+PjJdLGFbT2UrOD4+Ml09YVtSZSs4Pj4yXSxhW09lKzEyPj4yXT1hW1JlKzEyPj4yXSxhW2dlPj4yXT1hWyh3PUErKHcrLTE8PDQpfDApPj4yXSxhW2dlKzQ+PjJdPWFbdys0Pj4yXSxhW2dlKzg+PjJd''@;'; + put 'put ''PWFbdys4Pj4yXSxhW2dlKzEyPj4yXT1hW3crMTI+PjJdO2U6ZG97aWYobTw8MjQ+PjI0KWZvcihBPS0xMTExLG09LTExMTEsdz0wOzspe2lmKCgwfHcpPj0oMHxwKSlicmVhayBlOy0xMTExPT0oMHxtKSYmKGFbcGU+PjJdPWFbKG09MHxhW2YrKHc8PDIpPj4yXSk+PjJdLGFbcGUrND4+Ml09''@;'; + put 'put ''YVttKzQ+PjJdLGFbSz4+Ml09YVtPZT4+Ml0sYVtLKzQ+PjJdPWFbT2UrND4+Ml0sYVtLKzg+PjJdPWFbT2UrOD4+Ml0sYVtLKzEyPj4yXT1hW09lKzEyPj4yXSxtPShtPTA9PSgwfF82KHBlLEspKSk/LTExMTE6dyksLTExMTE9PSgwfEEpJiYoYVtwZT4+Ml09YVsoQT0wfGFbZisodzw8Mik+''@;'; + put 'put ''PjJdKT4+Ml0sYVtwZSs0Pj4yXT1hW0ErND4+Ml0sYVtLPj4yXT1hW2dlPj4yXSxhW0srND4+Ml09YVtnZSs0Pj4yXSxhW0srOD4+Ml09YVtnZSs4Pj4yXSxhW0srMTI+PjJdPWFbZ2UrMTI+PjJdLEE9KEE9MD09KDB8XzYocGUsSykpKT8tMTExMTp3KSx3PXcrMXwwfWVsc2UgQT0tMTExMSxt''@;'; + put 'put ''PS0xMTExfXdoaWxlKDApOyhmdW5jdGlvbiBhc2UobCxjLGYscCxtLEEpe2x8PTAsY3w9MCxmfD0wLHB8PTAsbXw9MCxBfD0wO3ZhciBLLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxwZT0wLGdlPTA7Zm9yKGI9MCx3PTA7ISgoMHxiKT49KDB8YykpOykoMHxiKT09KDB8Zil8KDB8Yik9''@;'; + put 'put ''PSgwfHApfHwodz0oMHxhWzQrKDB8YVtsKyhiPDwyKT4+Ml0pPj4yXSkrd3wwKSxiPWIrMXwwO2ZvcihLPTB8UW4odzw8NSksYj0wLEc9MDshKCgwfEcpPj0oMHxjKSk7KXtlOmRve2lmKCEoKDB8Ryk9PSgwfGYpfCgwfEcpPT0oMHxwKSkpZm9yKFI9bCsoRzw8Mil8MCxEPTA7Oyl7aWYoKDB8''@;'; + put 'put ''RCk+PSgwfChNPTB8YVs0KyhrPTB8YVtSPj4yXSk+PjJdKSkpYnJlYWsgZTtwZT1EKzF8MCxhWyhnZT1LKyhiPDw1KXwwKT4+Ml09YVsoaz0oMHxhW2s+PjJdKSsoRDw8NCl8MCk+PjJdLGFbZ2UrND4+Ml09YVtrKzQ+PjJdLGFbZ2UrOD4+Ml09YVtrKzg+PjJdLGFbZ2UrMTI+PjJdPWFbaysx''@;'; + put 'put ''Mj4+Ml0sYVsoaz1LKyhiPDw1KSsxNnwwKT4+Ml09YVsoTT0oMHxhW2FbUj4+Ml0+PjJdKSsoKCgwfHBlKTwoMHxNKT9wZTowKTw8NCl8MCk+PjJdLGFbays0Pj4yXT1hW00rND4+Ml0sYVtrKzg+PjJdPWFbTSs4Pj4yXSxhW2srMTI+PjJdPWFbTSsxMj4+Ml0sRD1wZSxiPWIrMXwwfX13aGls''@;'; + put 'put ''ZSgwKTtHPUcrMXwwfWlmKCgwfGIpPT0oMHx3KSlyZXR1cm4gYVttPj4yXT1LLHZvaWQoYVtBPj4yXT13KTtQcig4OTcxOSw4OTcyNiw3Nyw4OTc0MSl9KShmLHAsbSxBLGIsRCksYVtNPj4yXT0wLGFbTSs0Pj4yXT0wLGFbTSs4Pj4yXT0wLGFbTSsxMj4+Ml09MCxhW00rMTY+PjJdPTAsYVtN''@;'; + put 'put ''KzIwPj4yXT0wLGFbTSsyND4+Ml09MCxhW00rMjg+PjJdPTAsdz0wfGFbYj4+Ml0sUmU9MHxhW0Q+PjJdLGFbSz4+Ml09YVtrPj4yXSxhW0srND4+Ml09YVtrKzQ+PjJdLCgwfHE5KHcsUmUsSyxNLGJlKSk8MD8oT2U9MHx0aSgwfGFbKDM9PSgzJmFbYz4+Ml18MCk/YzpjKzQ4fDApKzQwPj4y''@;'; + put 'put ''XSksUmU9MHx0aSgwfGFbKDI9PSgzJmFbYz4+Ml18MCk/YzpjKy00OHwwKSs0MD4+Ml0pLGFbUj4+Ml09T2UsYVtSKzQ+PjJdPVJlLCRyKDEsODk2NTcsUikpOihtPWMrLTQ4fDAsQXUoYywwfGFbKDI9PSgzJmFbKEE9Yyk+PjJdfDApP2M6bSkrNDA+PjJdLDB8YVtiZT4+Ml0sMHxhW2JlKzQ+''@;'; + put 'put ''PjJdLDE3NzkyKSxGdCh3KSxhW3BlPj4yXT1hW09lPj4yXSxhW3BlKzQ+PjJdPWFbT2UrND4+Ml0sYVtwZSs4Pj4yXT1hW09lKzg+PjJdLGFbcGUrMTI+PjJdPWFbT2UrMTI+PjJdLGFbSz4+Ml09YVtnZT4+Ml0sYVtLKzQ+PjJdPWFbZ2UrND4+Ml0sYVtLKzg+PjJdPWFbZ2UrOD4+Ml0sYVtL''@;'; + put 'put ''KzEyPj4yXT1hW2dlKzEyPj4yXSx0ZygwLGMpKSxsZT1MZX1mdW5jdGlvbiBQSihsLGMsZil7Y3w9MCxmfD0wO3ZhciBBLGssRCxwPTAsbT0wLHc9MCxiPTAsTT0wLFI9MCxHPTA7Zm9yKEQ9bGUsbGU9bGUrMzJ8MCxrPUQrMTJ8MCxmdW5jdGlvbiBEWChsLGMpe2x8PTA7dmFyIGYsbSx3LHA9''@;'; + put 'put ''MDt3PWxlLGxlPWxlKzQ4fDAsbT13KzI0fDAsMCE9KDB8KGY9MHxMaShjfD0wLDkzMTE2KSkpJiYwIT0oMHxMayhmLG0sMSwwKSl8fChwPTMpO2Rve2lmKDM9PSgwfHApKXtpZigwfChjPTB8TGkoYyw5MzExMikpJiYwfExrKGMsbSwxLjI1LDMuMjAwMDAwMDQ3NjgzNzE2KSlicmVhaztqbltt''@;'; + put 'put ''KzQ+PjJdPTMuMjAwMDAwMDQ3NjgzNzE2LGpuW20+PjJdPTMuMjAwMDAwMDQ3NjgzNzE2LGZlW20rOD4+MF09MX19d2hpbGUoMCk7YVtsPj4yXT1hW20+PjJdLGFbbCs0Pj4yXT1hW20rND4+Ml0sYVtsKzg+PjJdPWFbbSs4Pj4yXSxsZT13fShwPUQsbHw9MCksYVtrPj4yXT1hW3A+PjJdLGFb''@;'; + put 'put ''ays0Pj4yXT1hW3ArND4+Ml0sYVtrKzg+PjJdPWFbcCs4Pj4yXSxwPTB8RHQobCk7cDspe2ZvcihtPTB8dzAobCxwKTttOylpbGUobSksbT0wfFMwKGwsbSk7cD0wfHp0KGwscCl9Zm9yKEE9MHxpcygxNzc1NiwwfGFbNDU4MV0pLHA9MHxEdChsKTtwOyl7Zm9yKG09MHx3MChsLHApO207KSgw''@;'; + put 'put ''fGFbNDcxMzRdKT4xJiYwIT0oMHxhWzgrKHc9MHxhW20rMTY+PjJdKT4+Ml0pP2l0WyhSPXcrMTY4fDApPj4xXT0xKygwfGl0W1I+PjFdKTw8MTY+PjE2Ok09MTQsMTQ9PSgwfE0pJiYoTT0wLCgwfChiPTB8V04oQSxtKSkpIT0oMHxtKSkmJihpdFsoRz0xNjgrKFI9MHxhW2IrMTY+PjJdKXww''@;'; + put 'put ''KT4+MV09MSsoMHxpdFtHPj4xXSk8PDE2Pj4xNixhWzE3MisoMHxhW20rMTY+PjJdKT4+Ml09YVsoUj1SKzE3MnwwKT4+Ml0sYVtSPj4yXT1tKSxtPTB8UzAobCxtKTtwPTB8enQobCxwKX1yZXR1cm4gTmwoQSksMHxtaVs2MyZjXShsLGssZik/cD0xOihhWzQ3MTM4XT0xLHA9MCksbGU9RCww''@;'; + put 'put ''fHB9ZnVuY3Rpb24gV04obCxjKXtsfD0wO3ZhciB3LEssZj0wLHA9MCxtPTAsQT0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wO0s9bGUsbGU9bGUrNjR8MCxHPUssdz0wfGFbKDM9PSgwfChwPTMmYVsoY3w9MCk+PjJdKSk/YzpjKzQ4fDApKzQwPj4yXSxwPTB8YVsoMj09KDB8cCk/YzpjKy00''@;'; + put 'put ''OHwwKSs0MD4+Ml07ZG97aWYodz4+PjA+PXA+Pj4wKXtpZihmPWMrMTZ8MCx3Pj4+MD5wPj4+MCl7Uj1wLHA9dyxrPStfWzE2KyhmPTB8YVtmPj4yXSk+PjNdLE09K19bZisyND4+M10sQT0rX1tmKzU2Pj4zXSxtPStfW2YrNjQ+PjNdO2JyZWFrfUQ9K19bNjQrKFI9MHxhW2Y+PjJdKT4+M10s''@;'; + put 'put ''bT0rX1tSKzI0Pj4zXSwoQT0rX1tSKzE2Pj4zXSk8KGI9K19bUis1Nj4+M10pPyhSPXcscD13LGs9YixNPUQpOkE+Yj8oUj13LHA9dyxrPUEsTT1tLEE9YixtPUQpOihmPW0+RCxtPEQ/KFI9dyxwPXcsaz1iLE09RCk6KFI9dyxwPXcsaz1BLE09bSxBPWY/YjpBLG09Zj9EOm0pKX1lbHNlIFI9''@;'; + put 'put ''dyxrPStfWzU2KyhmPTB8YVtjKzE2Pj4yXSk+PjNdLE09K19bZis2ND4+M10sQT0rX1tmKzE2Pj4zXSxtPStfW2YrMjQ+PjNdfXdoaWxlKDApO3JldHVybiBhW0crOD4+Ml09UixfW0crMTY+PjNdPUEsX1tHKzI0Pj4zXT1tLGFbRyszMj4+Ml09cCxfW0crNDA+PjNdPWssX1tHKzQ4Pj4zXT1N''@;'; + put 'put ''LGFbRys1Nj4+Ml09YyxHPTB8YVs1NisoMHxtaVs2MyZhW2w+PjJdXShsLEcsMSkpPj4yXSxsZT1LLDB8R31mdW5jdGlvbiBfRChsLGMpe3JldHVybiAwfFBKKGx8PTAsMjEsY3w9MCl9ZnVuY3Rpb24gSEoobCxjKXt2YXIgbSxBLHcsYixrLE0sZixSLHA9MCxEPTAsRz0wO009bGUsbGU9bGUr''@;'; + put 'put ''OTZ8MCxBPU0rNjR8MCxtPU0rNDh8MCx3PU0rODB8MCxiPU0rMTZ8MCxrPU0sUj0wfGFbKEQ9MTQ0KygwfGFbMTYrKGN8PTApPj4yXSl8MCk+PjJdLEQ9MHxhW0QrND4+Ml0sYVsoRz1wPU0rMzJ8MCk+PjJdPVIsYVtHKzQ+PjJdPUQsYVtiPj4yXT1hWyhHPVIpPj4yXSxhW2IrND4+Ml09YVtH''@;'; + put 'put ''KzQ+PjJdLGFbYis4Pj4yXT1hW0crOD4+Ml0sYVtiKzEyPj4yXT1hW0crMTI+PjJdLGFbaz4+Ml09YVsoRD1SKyhEKy0xPDw0KXwwKT4+Ml0sYVtrKzQ+PjJdPWFbRCs0Pj4yXSxhW2srOD4+Ml09YVtEKzg+PjJdLGFbaysxMj4+Ml09YVtEKzEyPj4yXSxhW0E+PjJdPWFbcD4+Ml0sYVtBKzQ+''@;'; + put 'put ''PjJdPWFbcCs0Pj4yXSxSZChBLHcpLGY9YystNDh8MCxBdShjLDB8YVsoMj09KDMmYVsocD1jKT4+Ml18MCk/YzpmKSs0MD4+Ml0sMHxhW3c+PjJdLDB8YVt3KzQ+PjJdLDE3NzkyKSxhW20+PjJdPWFbYj4+Ml0sYVttKzQ+PjJdPWFbYis0Pj4yXSxhW20rOD4+Ml09YVtiKzg+PjJdLGFbbSsx''@;'; + put 'put ''Mj4+Ml09YVtiKzEyPj4yXSxhW0E+PjJdPWFbaz4+Ml0sYVtBKzQ+PjJdPWFbays0Pj4yXSxhW0ErOD4+Ml09YVtrKzg+PjJdLGFbQSsxMj4+Ml09YVtrKzEyPj4yXSx0ZygwLGMpLGxlPU19ZnVuY3Rpb24gQ0QobCxjKXt2YXIgZjtmPTE0Jml0WzEzNisoMHxhWzE2KyhsfD0wKT4+Ml0pPj4x''@;'; + put 'put ''XSwoY3w9MCk8PDI0Pj4yNCYmWU4obCksZjw8MTY+PjE2JiZfRChsLDY1NTM1JmYpfWZ1bmN0aW9uIFlOKGwpe3ZhciBmLGM9MCxwPTAsbT0wO2ZvcihmPTB8ZnVuY3Rpb24gVU4obCl7bHw9MDt2YXIgYz0wLGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MDtlOmRve2lmKCgwfGFbbCs2MD4+''@;'; + put 'put ''Ml0pPT0oMHxsKSYmKGY9bCsxNnwwLHA9MHxhW2Y+PjJdLDAhPSgwfGFbODQrKDB8YVtwKzg+PjJdKT4+Ml0pKSl7MD09K19bcCsxNj4+M10mJjA9PStfW3ArMjQ+PjNdP2M9MDooTkoobCksYz0xLHA9MHxhW2Y+PjJdKSwoYj0wPT0oMSZhW3ArMTE2Pj4yXXwwKSl8fCh3PStfWyhrPXArMzJ8''@;'; + put 'put ''MCk+PjNdLF9baz4+M109K19bKGY9cCs0MHwwKT4+M10sX1tmPj4zXT13KSxmPTB8YVtwKzg+PjJdO3Q6ZG97c3dpdGNoKDB8YVtmKzg0Pj4yXSl7Y2FzZSAyOmlmKChtPStfW2YrNjQ+PjNdKTw9MClicmVhayBlO2lmKChBPW0vK19bcCszMj4+M10pPDF8KG09K19bZis3Mj4+M10vK19bcCs0''@;'; + put 'put ''MD4+M10pPDEpe2lmKEE8bSl7dz0xLG0vPUE7YnJlYWsgdH13PUEvbSxtPTE7YnJlYWsgdH13PUE7YnJlYWs7Y2FzZSA1OmlmKChtPStfW2YrNjQ+PjNdKTw9MHx8ISgoQT1tLytfW3ArMzI+PjNdKT4xJihtPStfW2YrNzI+PjNdLytfW3ArNDA+PjNdKT4xKSlicmVhayBlO3c9bT1BPG0/QTpt''@;'; + put 'put ''O2JyZWFrO2Nhc2UgMTppZigobT0rX1twKzQwPj4zXS8rX1twKzMyPj4zXSk8KEE9K19bZisxNj4+M10pKXt3PTEsbT1BL207YnJlYWsgdH13PW0vQSxtPTE7YnJlYWsgdDtkZWZhdWx0OmJyZWFrIGV9fXdoaWxlKDApO0E9Yj9tOncsbT1iP3c6bTt0OmRve2lmKCgwfGFbNDcxMzRdKT4xKWZv''@;'; + put 'put ''cihmPTB8RHQobCk7Oyl7aWYoIWYpYnJlYWsgdDtmb3IoYz0wfHcwKGwsZik7YzspMHxhWzgrKDB8YVtjKzE2Pj4yXSk+PjJdJiZWSihjLG0sQSksYz0wfFMwKGwsYyk7Zj0wfHp0KGwsZil9fXdoaWxlKDApO2ZvcihjPTB8RHQobCk7YzspX1soaz0wfGFbMTMyKygwfGFbYysxNj4+Ml0pPj4y''@;'; + put 'put ''XSk+PjNdPStfW2s+PjNdKm0sX1soaz1rKzh8MCk+PjNdPStfW2s+PjNdKkEsYz0wfHp0KGwsYyk7UU4obCxtLEEpLGM9MX1lbHNlIGM9MH13aGlsZSgwKTtyZXR1cm4gMHxjfShsfD0wKSxjPTB8RHQobCk7YzspX1sxNisocD0wfGFbYysxNj4+Ml0pPj4zXT03MiorX1sobT0wfGFbcCsxMzI+''@;'; + put 'put ''PjJdKT4+M10sX1twKzI0Pj4zXT03MiorX1ttKzg+PjNdLGM9MHx6dChsLGMpO3JldHVybiAwfGZ9ZnVuY3Rpb24gTkoobCl7dmFyIHAsbSxBLHcsYixrLE0sYz0wLGY9MCxEPTA7Zm9yKE09bGUsbGU9bGUrMzJ8MCxiPU0rMTZ8MCxhWyhrPU0pPj4yXT1hWyhjPTE2KygwfGFbMTYrKGx8PTAp''@;'; + put 'put ''Pj4yXSl8MCk+PjJdLGFbays0Pj4yXT1hW2MrND4+Ml0sYVtrKzg+PjJdPWFbYys4Pj4yXSxhW2srMTI+PjJdPWFbYysxMj4+Ml0sbT0uMDEzODg4ODg4ODg4ODg4ODg4KihwPStfW2s+PjNdKSx3PS4wMTM4ODg4ODg4ODg4ODg4ODgqKEE9K19bays4Pj4zXSksYz0wfER0KGwpO2M7KV9bKEQ9''@;'; + put 'put ''MHxhWzEzMisoZj0wfGFbYysxNj4+Ml0pPj4yXSk+PjNdPStfW0Q+PjNdLW0sX1soRD1EKzh8MCk+PjNdPStfW0Q+PjNdLXcsMHwoZj0wfGFbZisxMDg+PjJdKSYmMHxmZVtmKzgxPj4wXSYmKF9bKEQ9Zis1NnwwKT4+M109K19bRD4+M10tcCxfWyhEPWYrNjR8MCk+PjNdPStfW0Q+PjNdLUEp''@;'; + put 'put ''LGM9MHx6dChsLGMpO2ZvcihmPTB8RHQobCk7Zjspe2ZvcihjPTB8dzAobCxmKTtjOykwfGFbOCsoMHxhW2MrMTY+PjJdKT4+Ml0mJihhW2I+PjJdPWFbaz4+Ml0sYVtiKzQ+PjJdPWFbays0Pj4yXSxhW2IrOD4+Ml09YVtrKzg+PjJdLGFbYisxMj4+Ml09YVtrKzEyPj4yXSxKTihjLGIpKSxj''@;'; + put 'put ''PTB8UzAobCxjKTtmPTB8enQobCxmKX1hW2I+PjJdPWFbaz4+Ml0sYVtiKzQ+PjJdPWFbays0Pj4yXSxhW2IrOD4+Ml09YVtrKzg+PjJdLGFbYisxMj4+Ml09YVtrKzEyPj4yXSxqSihsLGIpLGxlPU19ZnVuY3Rpb24gVkoobCxjLGYpe3ZhciB3LGIsSyxwZSxwPTAsbT0wLEE9MCxrPTAsTT0w''@;'; + put 'put ''LEQ9MCxSPTAsRz0wLGdlPTAsYmU9MCxPZT0wO2ZvcihLPShnZT03MiooKGM9K2MpLTEpKSorX1soQT0wfGFbMTMyKygwfGFbMTYrKDB8YVsoMj09KDB8KEc9MyZhWyhsfD0wKT4+Ml0pKT9sOmwrLTQ4fDApKzQwPj4yXSk+PjJdKT4+Ml0pPj4zXSxwZT0oYmU9NzIqKChmPStmKS0xKSkqK19b''@;'; + put 'put ''QSs4Pj4zXSxnZSo9K19bKEc9MHxhWzEzMisoMHxhWzE2KygwfGFbKDM9PSgwfEcpP2w6bCs0OHwwKSs0MD4+Ml0pPj4yXSk+PjJdKT4+M10sYmUqPStfW0crOD4+M10sYj0odz0wfGFbNCsoQT0wfGFbOCsoRz0wfGFbbCsxNj4+Ml0pPj4yXSk+PjJdKS0xfDAsbD0wLEE9MHxhW0E+PjJdOyEo''@;'; + put 'put ''KDB8bCk+PSgwfHcpKTspe2ZvcihNPShrPTB8YVtBKzQ+PjJdKS0xfDAsRD0oMHxsKT09KDB8YikscD0wLG09MHxhW0E+PjJdOyEoKDB8cCk+PSgwfGspKTspe2Rve2lmKHB8bCl7aWYoUj0rX1ttPj4zXSwoMHxwKT09KDB8TSkmRCl7X1ttPj4zXT1SK0ssX1soT2U9bSs4fDApPj4zXT0rX1tP''@;'; + put 'put ''ZT4+M10rcGU7YnJlYWt9X1ttPj4zXT1SKmMsX1soT2U9bSs4fDApPj4zXT0rX1tPZT4+M10qZjticmVha31fW20+PjNdPStfW20+PjNdK2dlLF9bKE9lPW0rOHwwKT4+M109K19bT2U+PjNdK2JlfXdoaWxlKDApO3A9cCsxfDAsbT1tKzE2fDB9MHxhW0ErOD4+Ml0mJihfWyhPZT1BKzE2fDAp''@;'; + put 'put ''Pj4zXT0rX1tPZT4+M10rZ2UsX1soT2U9QSsyNHwwKT4+M109K19bT2U+PjNdK2JlKSwwfGFbQSsxMj4+Ml0mJihfWyhPZT1BKzMyfDApPj4zXT0rX1tPZT4+M10rSyxfWyhPZT1BKzQwfDApPj4zXT0rX1tPZT4+M10rcGUpLGw9bCsxfDAsQT1BKzQ4fDB9MHwobD0wfGFbRys5Nj4+Ml0pJiYw''@;'; + put 'put ''fGZlW2wrODE+PjBdJiYoX1soT2U9bCs1NnwwKT4+M109K19bT2U+PjNdKmMsX1soT2U9bCs2NHwwKT4+M109K19bT2U+PjNdKmYpLDB8KGw9MHxhW0crMTAwPj4yXSkmJjB8ZmVbbCs4MT4+MF0mJihfWyhPZT1sKzU2fDApPj4zXT0rX1tPZT4+M10rSyxfWyhPZT1sKzY0fDApPj4zXT0rX1tP''@;'; + put 'put ''ZT4+M10rcGUpLDB8KGw9MHxhW0crMTA0Pj4yXSkmJjB8ZmVbbCs4MT4+MF0mJihfWyhPZT1sKzU2fDApPj4zXT0rX1tPZT4+M10rZ2UsX1soT2U9bCs2NHwwKT4+M109K19bT2U+PjNdK2JlKX1mdW5jdGlvbiBRTihsLGMsZil7Zj0rZjt2YXIgbSxBLHA9MDtmb3IoX1sobD0zMisobT0wfGFb''@;'; + put 'put ''KEE9MTYrKGx8PTApfDApPj4yXSl8MCk+PjNdPStfW2w+PjNdKihjPStjKSxfWyhsPW0rNDB8MCk+PjNdPStfW2w+PjNdKmYsX1sobD1tKzE2fDApPj4zXT0rX1tsPj4zXSpjLF9bKGw9bSsyNHwwKT4+M109K19bbD4+M10qZiwwIT0oMHwobD0wfGFbbSsxMj4+Ml0pKSYmMCE9KDB8ZmVbbCs4''@;'; + put 'put ''MT4+MF0pPyhfWyhwPWwrNTZ8MCk+PjNdPStfW3A+PjNdKmMsX1socD1sKzY0fDApPj4zXT0rX1twPj4zXSpmLHA9MSxsPW0pOihwPTEsbD1tKTshKCgwfHApPigwfGFbbCsxODA+PjJdKSk7KVFOKDB8YVsoMHxhW2wrMTg0Pj4yXSkrKHA8PDIpPj4yXSxjLGYpLHA9cCsxfDAsbD0wfGFbQT4+''@;'; + put 'put ''Ml19ZnVuY3Rpb24gSk4obCxjKXt2YXIgdyxiLGssZj0wLHA9MCxtPTAsQT0wLE09MDtmb3Iodz0wfGFbNCsobD0wfGFbOCsoYj0wfGFbMTYrKGx8PTApPj4yXSk+PjJdKT4+Ml0saz04KyhjfD0wKXwwLGw9MHxhW2w+PjJdLG09MDshKCgwfG0pPj0oMHx3KSk7KXtmb3IoQT0wfGFbbCs0Pj4y''@;'; + put 'put ''XSxmPTB8YVtsPj4yXSxwPTA7ISgoMHxwKT49KDB8QSkpOylfW2Y+PjNdPStfW2Y+PjNdLStfW2M+PjNdLF9bKE09Zis4fDApPj4zXT0rX1tNPj4zXS0rX1trPj4zXSxmPWYrMTZ8MCxwPXArMXwwOzB8YVtsKzg+PjJdJiYoX1soTT1sKzE2fDApPj4zXT0rX1tNPj4zXS0rX1tjPj4zXSxfWyhN''@;'; + put 'put ''PWwrMjR8MCk+PjNdPStfW00+PjNdLStfW2s+PjNdKSwwfGFbbCsxMj4+Ml0mJihfWyhNPWwrMzJ8MCk+PjNdPStfW00+PjNdLStfW2M+PjNdLF9bKE09bCs0MHwwKT4+M109K19bTT4+M10tK19baz4+M10pLGw9bCs0OHwwLG09bSsxfDB9MHwobD0wfGFbYis5Nj4+Ml0pJiYwfGZlW2wrODE+''@;'; + put 'put ''PjBdJiYoX1soTT1sKzU2fDApPj4zXT0rX1tNPj4zXS0rX1tjPj4zXSxfWyhNPWwrNjR8MCk+PjNdPStfW00+PjNdLStfW2s+PjNdKSwwfChsPTB8YVtiKzEwOD4+Ml0pJiYwfGZlW2wrODE+PjBdJiYoX1soTT1sKzU2fDApPj4zXT0rX1tNPj4zXS0rX1tjPj4zXSxfWyhNPWwrNjR8MCk+PjNd''@;'; + put 'put ''PStfW00+PjNdLStfW2s+PjNdKSwwfChsPTB8YVtiKzEwMD4+Ml0pJiYwfGZlW2wrODE+PjBdJiYoX1soTT1sKzU2fDApPj4zXT0rX1tNPj4zXS0rX1tjPj4zXSxfWyhNPWwrNjR8MCk+PjNdPStfW00+PjNdLStfW2s+PjNdKSwwfChsPTB8YVtiKzEwND4+Ml0pJiYwfGZlW2wrODE+PjBdJiYo''@;'; + put 'put ''X1soTT1sKzU2fDApPj4zXT0rX1tNPj4zXS0rX1tjPj4zXSxfWyhNPWwrNjR8MCk+PjNdPStfW00+PjNdLStfW2s+PjNdKX1mdW5jdGlvbiBqSihsLGMpe3ZhciBwLG0sQSx3LGIsZj0wLGs9MDtmb3IoYj1sZSxsZT1sZSsxNnwwLHc9YixfWyhmPTMyKyhsPTB8YVsoQT0xNisobHw9MCl8MCk+''@;'; + put 'put ''PjJdKXwwKT4+M109K19bZj4+M10tKG09K19bKGN8PTApPj4zXSksX1soZj1sKzQwfDApPj4zXT0rX1tmPj4zXS0ocD0rX1tjKzg+PjNdKSxfWyhmPWwrMTZ8MCk+PjNdPStfW2Y+PjNdLW0sX1soZj1sKzI0fDApPj4zXT0rX1tmPj4zXS1wLDAhPSgwfChmPTB8YVtsKzEyPj4yXSkpJiYwIT0o''@;'; + put 'put ''MHxmZVtmKzgxPj4wXSkmJihfWyhrPWYrNTZ8MCk+PjNdPStfW2s+PjNdLW0sX1soZj1mKzY0fDApPj4zXT0rX1tmPj4zXS1wKSxmPTE7ISgoMHxmKT4oMHxhW2wrMTgwPj4yXSkpOylrPTB8YVsoMHxhW2wrMTg0Pj4yXSkrKGY8PDIpPj4yXSxhW3c+PjJdPWFbYz4+Ml0sYVt3KzQ+PjJdPWFb''@;'; + put 'put ''Yys0Pj4yXSxhW3crOD4+Ml09YVtjKzg+PjJdLGFbdysxMj4+Ml09YVtjKzEyPj4yXSxqSihrLHcpLGY9ZisxfDAsbD0wfGFbQT4+Ml07bGU9Yn1mdW5jdGlvbiBLNihsKXt2YXIgZixwLG0sQSx3LGM9MCxiPTA7Zm9yKHc9bGUsbGU9bGUrMTZ8MCxmPXcsaWcobHw9MCksbT0uMDEzODg4ODg4''@;'; + put 'put ''ODg4ODg4ODg4KitfWzE2KyhjPTB8YVsocD1sKzE2fDApPj4yXSk+PjNdLEE9LjAxMzg4ODg4ODg4ODg4ODg4OCorX1tjKzI0Pj4zXSxjPTB8RHQobCk7YzspX1soYj0wfGFbMTMyKygwfGFbYysxNj4+Ml0pPj4yXSk+PjNdPStfW2I+PjNdLW0sX1soYj1iKzh8MCk+PjNdPStfW2I+PjNdLUEs''@;'; + put 'put ''Yz0wfHp0KGwsYyk7YVtmPj4yXT1hWyhiPTE2KygwfGFbcD4+Ml0pfDApPj4yXSxhW2YrND4+Ml09YVtiKzQ+PjJdLGFbZis4Pj4yXT1hW2IrOD4+Ml0sYVtmKzEyPj4yXT1hW2IrMTI+PjJdLFpKKGwsZiksQ0QobCwxKSxsZT13fWZ1bmN0aW9uIFpKKGwsYyl7Y3w9MDt2YXIgZixBLHcsYixw''@;'; + put 'put ''PTAsbT0wO2ZvcihBPWxlLGxlPWxlKzE2fDAsbT1BLGY9MTYrKGx8PTApfDAsbD0xOyEoKDB8bCk+KDB8YVsxODArKHA9MHxhW2Y+PjJdKT4+Ml0pKTspcD0wfGFbKDB8YVtwKzE4ND4+Ml0pKyhsPDwyKT4+Ml0sYVttPj4yXT1hW2M+PjJdLGFbbSs0Pj4yXT1hW2MrND4+Ml0sYVttKzg+PjJd''@;'; + put 'put ''PWFbYys4Pj4yXSxhW20rMTI+PjJdPWFbYysxMj4+Ml0sWkoocCxtKSxsPWwrMXwwO19bKG09cCszMnwwKT4+M109K19bbT4+M10tKGI9K19bYz4+M10pLHc9K19bYys4Pj4zXSxfWyhjPXArNDB8MCk+PjNdPStfW2M+PjNdLXcsX1soYz1wKzE2fDApPj4zXT0rX1tjPj4zXS1iLF9bKGM9cCsy''@;'; + put 'put ''NHwwKT4+M109K19bYz4+M10tdyxsZT1BfWZ1bmN0aW9uIFhOKGwsYyxmLHAsbSl7bHw9MCxjfD0wLG18PTA7dmFyIEcsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEs9MDtmb3IoRz0oMHwoZnw9MCkpPjIsRD0wLFI9MCx3PTB8YVs0KyhwfD0wKT4+Ml0sbD0wfGFbcD4+Ml07Oyl7aWYo''@;'; + put 'put ''KDB8Uik+PSgwfGMpKXtsPTA7YnJlYWt9az0wfGZlWzExOSsoQT0wfGFbMTYrKDB8YVttKyhSPDwyKT4+Ml0pPj4yXSk+PjBdO2U6ZG97aWYoazw8MjQ+PjI0KXtNPWwrOHwwLF9bbD4+M109K19bKGI9MHxhW0ErMTMyPj4yXSk+PjNdLEE9dys4fDAsX1t3Pj4zXT0rX1tiKzg+PjNdO3Q6ZG97''@;'; + put 'put ''aWYoRylmb3Iodz0yLGw9YisxNnwwOzspe2lmKCgwfHcpPT0oMHxmKSlicmVhayB0O19bKDB8YVtwKyh3PDwyKT4+Ml0pKyhSPDwzKT4+M109K19bbD4+M10sdz13KzF8MCxsPWwrOHwwfX13aGlsZSgwKTt3PSgyNTUmayk+MT8xOkQsbD1NfWVsc2UgaWYoYj1sKzh8MCxfW2w+PjNdPStxYygp''@;'; + put 'put ''LEE9dys4fDAsX1t3Pj4zXT0rcWMoKSxHKWZvcihsPTI7Oyl7aWYoKDB8bCk9PSgwfGYpKXt3PUQsbD1iO2JyZWFrIGV9Sz0rcWMoKSxfWygwfGFbcCsobDw8Mik+PjJdKSsoUjw8Myk+PjNdPUssbD1sKzF8MH1lbHNlIHc9RCxsPWJ9d2hpbGUoMCk7RD13LFI9UisxfDAsdz1BfWZvcig7ISgo''@;'; + put 'put ''MHxsKT49KDB8ZikpOylhOChjLDB8YVtwKyhsPDwyKT4+Ml0pLGw9bCsxfDA7cmV0dXJuIDB8RH1mdW5jdGlvbiBUeShsLGMpe2x8PTA7dmFyIEQsUixmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEc9MDtmPTB8dnIoKCgwfEFyKDErKGN8PTApfDAsYykpLzJ8MCk8PDIpLEQ9MHxj''@;'; + put 'put ''ZyhjLGMsMCksUj0wfGNnKGMsYywwKTtlOmRve2lmKDB8YVtsKzg+PjJdKWZvcihwPTA7Oyl7aWYoKDB8cCk+PSgwfGMpKWJyZWFrIGU7Zm9yKEE9MHxhW2wrKDIwKnB8MCk+PjJdLHc9bCsoMjAqcHwwKSs0fDAsYj1sKygyMCpwfDApKzh8MCxNPUQrKHA8PDIpfDAsbT0xOyEoKDB8bSk+PSgw''@;'; + put 'put ''fEEpKTspX1soMHxhW0QrKChHPTB8YVsoMHxhW3c+PjJdKSsobTw8Mik+PjJdKTw8Mik+PjJdKSsocDw8Myk+PjNdPWs9LTEvK2puWygwfGFbYj4+Ml0pKyhtPDwyKT4+Ml0sX1soMHxhW00+PjJdKSsoRzw8Myk+PjNdPWssbT1tKzF8MDtwPXArMXwwfWVsc2UgZm9yKHA9MDs7KXtpZigoMHxw''@;'; + put 'put ''KT49KDB8YykpYnJlYWsgZTtmb3IoQT0wfGFbbCsoMjAqcHwwKT4+Ml0sdz1sKygyMCpwfDApKzR8MCxiPUQrKHA8PDIpfDAsbT0xOyEoKDB8bSk+PSgwfEEpKTspX1soMHxhW0QrKChNPTB8YVsoMHxhW3c+PjJdKSsobTw8Mik+PjJdKTw8Mik+PjJdKSsocDw8Myk+PjNdPS0xLF9bKDB8YVti''@;'; + put 'put ''Pj4yXSkrKE08PDMpPj4zXT0tMSxtPW0rMXwwO3A9cCsxfDB9fXdoaWxlKDApO2U6ZG97aWYoMHxDVihjLEQsUikpZm9yKG09MCx3PTAsTT1jOzspe2lmKCgwfHcpPj0oMHxjKSlicmVhayBlO2ZvcihiPVIrKHc8PDIpfDAscD13LEE9bTsoMHxwKSE9KDB8Yyk7KWs9KDB8dyk9PSgwfHApPzA6''@;'; + put 'put ''K19bKDB8YVtSKyhwPDwyKT4+Ml0pKyhwPDwzKT4+M10rICtfWyhHPTB8YVtiPj4yXSkrKHc8PDMpPj4zXSstMiorX1tHKyhwPDwzKT4+M10sam5bZisoQTw8Mik+PjJdPWsscD1wKzF8MCxBPUErMXwwO209bStNfDAsdz13KzF8MCxNPU0rLTF8MH1lbHNlIEZ0KGYpLGY9MH13aGlsZSgwKTty''@;'; + put 'put ''ZXR1cm4gQjcoRCksQjcoUiksMHxmfWZ1bmN0aW9uICQ2KGwsYyl7Y3w9MDt2YXIgSyxmPTAscD0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxwZT0wO2lmKEs9bGUsbGU9bGUrMTZ8MCwwfGFbOCsobHw9MCk+PjJdKWZvcihmPTB8a2sobCxjKSxwPTAsUj0wOyEoKDB8Uik+PSgwfGMp''@;'; + put 'put ''KTspe2ZvcihwPXArUnwwLEQ9MHxhW2wrKDIwKlJ8MCk+PjJdLGI9bCsoMjAqUnwwKSs0fDAsaz0oMHxBcihSLGMpKS1wfDAsTT1sKygyMCpSfDApKzh8MCx3PTE7ISgoMHx3KT49KDB8RCkpOykoMHwoQT0wfGFbKDB8YVtiPj4yXSkrKHc8PDIpPj4yXSkpPj0oMHxSKSYmKGVvKCsoK2puWyhB''@;'; + put 'put ''PWYrKGsrQTw8Mil8MCk+PjJdLShwZT0ram5bKDB8YVtNPj4yXSkrKHc8PDIpPj4yXSkpKSxqbltBPj4yXT1wZSksdz13KzF8MDtSPVIrMXwwfWVsc2UgZj0wO3JldHVybiBsZT1LLDB8Zn1mdW5jdGlvbiBrayhsLGMpe2x8PTA7dmFyIHcsYixrLEQsZj0wLHA9MCxtPTAsQT0wLE09MDtmb3Io''@;'; + put 'put ''RD1sZSxsZT1sZSsxNnwwLHc9RCxiPTB8dnIoKCgwfEFyKDErKGN8PTApfDAsYykpLzJ8MCk8PDIpLGs9MHx2cihjPDwyKSxMeSh3LGMpLGY9MCxtPTAsTT1jOyEoKDB8Zik+PSgwfGMpKTspe2ZvcihIRChmLGwsYyxrKSxwPWYsQT1tOygwfHApIT0oMHxjKTspYVtiKyhBPDwyKT4+Ml09YVtr''@;'; + put 'put ''KyhwPDwyKT4+Ml0scD1wKzF8MCxBPUErMXwwO2Y9ZisxfDAsbT1tK018MCxNPU0rLTF8MH1yZXR1cm4gRnQoayksT0QodyksbGU9RCwwfGJ9ZnVuY3Rpb24ga0QobCxjKXtsfD0wO3ZhciB3LGIsayxELGY9MCxwPTAsbT0wLEE9MCxNPTA7Zm9yKEQ9bGUsbGU9bGUrMTZ8MCx3PUQsYj0wfHZy''@;'; + put 'put ''KCgoMHxBcigxKyhjfD0wKXwwLGMpKS8yfDApPDwyKSxrPTB8dnIoYzw8MiksTHkodyxjKSxmPTAsbT0wLE09YzshKCgwfGYpPj0oMHxjKSk7KXtmb3IocjgoZixsLGMsayx3KSxwPWYsQT1tOygwfHApIT0oMHxjKTspam5bYisoQTw8Mik+PjJdPSsoMHxhW2srKHA8PDIpPj4yXSkscD1wKzF8''@;'; + put 'put ''MCxBPUErMXwwO2Y9ZisxfDAsbT1tK018MCxNPU0rLTF8MH1yZXR1cm4gRnQoayksT0QodyksbGU9RCwwfGJ9ZnVuY3Rpb24gekoobCxjKXtjfD0wO3ZhciBwZSxnZSxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLEs9MCxiZT0wO2ZvcihmPTB8YVsoZ2U9OCso''@;'; + put 'put ''bHw9MCl8MCk+PjJdLHA9MCxtPTA7ISgoMHxtKT49KDB8YykpOylwPSgwfGFbbCsoMjAqbXwwKT4+Ml0pK3B8MCxtPW0rMXwwO2ZvcihtPTB8dnIocDw8MikscGU9MHx2cihjPDwyKSxwPTA7ISgoMHxwKT49KDB8YykpOylhW3BlKyhwPDwyKT4+Ml09MCxwPXArMXwwO2lmKDB8YVtnZT4+Ml0p''@;'; + put 'put ''e2ZvcihiPTA7ISgoMHxiKT49KDB8YykpOyl7Zm9yKE5rKGwsYixwZSksUj1sKygyMCpifDApKzR8MCxHPShEPTB8YVsoaz1sKygyMCpifDApfDApPj4yXSktMnwwLEs9bCsoMjAqYnwwKSs4fDAsdz0xOyEoKDB8dyk+PSgwfEQpKTspYmU9KygoQT1HKygwfGFbbCsoMjAqKHA9MHxhWygwfGFb''@;'; + put 'put ''Uj4+Ml0pKyh3PDwyKT4+Ml0pfDApPj4yXSl8MCktKCgwfEhrKGwsYixwLHBlKSk8PDEpfDApLChNPStqblsoMHxhW0s+PjJdKSsodzw8Mik+PjJdKTxiZSYmKE09KyhBLSgoMHxIayhsLGIscCxwZSkpPDwxKXwwKSksam5bbSsodzw8Mik+PjJdPU0sdz13KzF8MDtRWChsLGIscGUpLGFbSz4+''@;'; + put 'put ''Ml09bSxtPW0rKGFbaz4+Ml08PDIpfDAsYj1iKzF8MH1tPTB8a2sobCxjKX1lbHNle2ZvcihBPTA7ISgoMHxBKT49KDB8YykpOyl7Zm9yKGFbbCsoMjAqQXwwKSs4Pj4yXT1tLE5rKGwsQSxwZSksaz1sKygyMCpBfDApKzR8MCxNPSsoKGI9MHxhWyh3PWwrKDIwKkF8MCl8MCk+PjJdKS0xfDAp''@;'; + put 'put ''LHA9MTshKCgwfHApPj0oMHxiKSk7KWpuW20rKHA8PDIpPj4yXT0oYmU9KygoMHxhW2wrKDIwKihLPTB8YVsoMHxhW2s+PjJdKSsocDw8Mik+PjJdKXwwKT4+Ml0pLTF8MCkrTSktKygoMHxIayhsLEEsSyxwZSkpPDwxfDApLHA9cCsxfDA7UVgobCxBLHBlKSxtPW0rKGFbdz4+Ml08PDIpfDAs''@;'; + put 'put ''QT1BKzF8MH1tPTB8a0QobCxjKX1GdChwZSksRnQoMHxhW2dlPj4yXSksYVtnZT4+Ml09MDtlOmRve2lmKDB8Zilmb3IocD0wOzspe2lmKCgwfHApPj0oMHxjKSlicmVhayBlO2FbbCsoMjAqcHwwKSs4Pj4yXT1mLGY9ZisoYVtsKygyMCpwfDApPj4yXTw8Mil8MCxwPXArMXwwfX13aGlsZSgw''@;'; + put 'put ''KTtyZXR1cm4gMHxtfWZ1bmN0aW9uIEtOKGwsYyxmLHAsbSxBLHcsYixrKXtsfD0wLGN8PTAsZnw9MCxwfD0wLG18PTAsQXw9MCxifD0wLGt8PTA7dmFyIEV0LFp0LGJ0LE09MCxEPTAsUj0wLEc9MCxLPTAscGU9MCxnZT0wLGJlPTAsT2U9MCxMZT0wLFJlPTAsSGU9MCxWZT0wLHFlPTAsbnQ9''@;'; + put 'put ''MCxXZT0wLG90PTAsU3Q9MCxrdD0wLHN0PTAsYW49MCxTbj0wO2J0PWxlLGxlPWxlKzgwfDAsWnQ9YnQrNDh8MCxWZT1idCs0MHwwLGdlPWJ0KzMyfDAscGU9YnQrMjR8MCxLPWJ0KzE2fDAsRD1idCs4fDAsTT1idCxSPTQmKHd8PTApLEV0PTMmdztlOmRve2lmKCgwfGspPDApZj0wO2Vsc2V7''@;'; + put 'put ''dz0yPT0oMHxiKTt0OmRve2lmKHcpZj0wfHpKKGwsYyksT2U9MTQ7ZWxzZXtzd2l0Y2goMHxiKXtjYXNlIDE6aWYoMHwoZj0wfFR5KGwsYykpKXtzdD1mO2JyZWFrIHR9JHIoMCw5MzMxNSxNKSwkcigzLDkzMzY0LEQpLE9lPTE1O2JyZWFrIHQ7Y2FzZSAzOmJyZWFrO2RlZmF1bHQ6T2U9MTU7''@;'; + put 'put ''YnJlYWsgdH1mPTB8JDYobCxjKSxPZT0xNH19d2hpbGUoMCk7MTQ9PSgwfE9lKSYmKGY/c3Q9ZjpPZT0xNSk7ZG97aWYoMTU9PSgwfE9lKSl7aWYoMHxhW2wrOD4+Ml0pe3N0PTB8a2sobCxjKTticmVha31zdD0wfGtEKGwsYyk7YnJlYWt9fXdoaWxlKDApO3Q6ZG97aWYoKDB8Yyk+MSYwIT0o''@;'; + put 'put ''MHxSKSlpZigoMHxTRChsLGMscCxBLFIsRXQsMSZ3KSk8MClnZT0wLHBlPTAsZj0tMSxsPTAsSz0wLFI9MCxEPTAsTT0wLGI9MCx3PTA7ZWxzZSBmb3Iodz0wOzspe2lmKCgwfHcpPj0oMHxBKSl7UmU9MCxPZT0zNTticmVhayB0fWZvcihiPXArKHc8PDIpfDAsRz0xLGY9MDsoMHxmKSE9KDB8''@;'; + put 'put ''Yyk7KUc9KExlPStlbygrICtfWygwfGFbYj4+Ml0pKyhmPDwzKT4+M10pKT5HP0xlOkcsZj1mKzF8MDtmb3IoRz0xL0csZj0wOzspe2lmKCgwfGYpPT0oMHxjKSl7Zj0wO2JyZWFrfV9bKGt0PSgwfGFbYj4+Ml0pKyhmPDwzKXwwKT4+M109K19ba3Q+PjNdKkcsZj1mKzF8MH1mb3IoOygwfGYp''@;'; + put 'put ''IT0oMHxjKTspTGU9MWUtNiooK3FjKCktLjUpLF9bKGt0PSgwfGFbYj4+Ml0pKyhmPDwzKXwwKT4+M109K19ba3Q+PjNdK0xlLGY9ZisxfDA7YTgoYywwfGFbYj4+Ml0pLHc9dysxfDB9ZWxzZSBSZT0wfFhOKDAsYyxBLHAsbSksT2U9MzV9d2hpbGUoMCk7dDpkb3tpZigzNT09KDB8T2UpKXtp''@;'; + put 'put ''ZigxPT0oMHxjKXwwPT0oMHxrKSl7Zj0wO2JyZWFrIGV9Zm9yKGt0PTB8dnIoSz1BPDwyKSxTdD0wfHZyKGw9MHxBcihwZT1jPDwyLEEpKSxmPTA7ISgoMHxmKT49KDB8QSkpOyl7Zm9yKGI9U3QrKCgwfEFyKGYsYykpPDwyKXwwLGFba3QrKGY8PDIpPj4yXT1iLE09cCsoZjw8Mil8MCx3PTA7''@;'; + put 'put ''ISgoMHx3KT49KDB8YykpOylqbltiKyh3PDwyKT4+Ml09K19bKDB8YVtNPj4yXSkrKHc8PDMpPj4zXSx3PXcrMXwwO2Y9ZisxfDB9bjpkb3tpZihFdClHPS41KisoMHxjKSorKGMrLTF8MCk7ZWxzZSBmb3IoRD1jKy0xfDAsZj0wLEc9MCxNPTA7Oyl7aWYoKDB8TSk+PSgwfEQpKWJyZWFrIG47''@;'; + put 'put ''Zm9yKFI9Yy1NfDAsYj1mLHc9MTtmPWIrMXwwLCEoKDB8dyk+PSgwfFIpKTspYj1mLEc9K2puW3N0KyhmPDwyKT4+Ml0rRyx3PXcrMXwwO009TSsxfDB9fXdoaWxlKDApO2ZvcihxZT0oMHxBcihjKzF8MCxjKSkvMnwwLChudD0yPT0oMHxFdCkpJiZqayhxZSxzdCksY0socWUsc3QpLHUyKDB8''@;'; + put 'put ''KGI9MHx2cihXZT1jPDwzKSksMCwwfFdlKSxvdD1jKy0xfDAsZj0wLE09MDs7KXtpZigoMHxNKT49KDB8b3QpKXtmPWMsdz0wLE09MDticmVha31mb3IoRD1jLU18MCxiZT0wLHc9MTtmPWYrMXwwLCEoKDB8dyk+PSgwfEQpKTspX1soSGU9YisodytNPDwzKXwwKT4+M109K19bSGU+PjNdLShM''@;'; + put 'put ''ZT0ram5bc3QrKGY8PDIpPj4yXSksYmUrPUxlLHc9dysxfDA7X1soSGU9YisoTTw8Myl8MCk+PjNdPStfW0hlPj4zXS1iZSxNPU0rMXwwfWZvcig7ISgoMHx3KT49KDB8YykpOylqbltzdCsoTTw8Mik+PjJdPStfW2IrKHc8PDMpPj4zXSxIZT1mK018MCxmPWYrLTF8MCx3PXcrMXwwLE09SGU7''@;'; + put 'put ''Zm9yKEhlPTB8dnIoSyksYVtIZT4+Ml09MHx2cihsKSxmPTE7ISgoMHxmKT49KDB8QSkpOylhW0hlKyhmPDwyKT4+Ml09KDB8YVtIZT4+Ml0pKygoMHxBcihmLGMpKTw8MiksZj1mKzF8MDtmb3IoRD0wfHZyKHBlKSxNPTB8dnIocGUpLHc9MHx2cihxZTw8MiksT2U9MD09KDB8UmUpLFJlPTB8''@;'; + put 'put ''YVsxNTcxMl0sZj0wLFI9MCxMZT0xNzk3NjkzMTM0ODYyMzE1N2UyOTI7Ujw8MjQ+PjI0PT0wJigwfGYpPCgwfGspOyl7Zm9yKHUyKDB8YiwwLDB8V2UpLG50PyhHVihxZSxzdCx3KSxnZT0wLGw9MCk6KGdlPTAsbD0wKTs7KXtpZigoMHxnZSk+PSgwfG90KSl7Uj1jLEs9MCxsPTA7YnJlYWt9''@;'; + put 'put ''Zm9yKGp5KHBlPWMtZ2UtMXwwLDAsTSksUj0wOyEoKDB8Uik+PSgwfEEpKTspankocGUsK2puWygwfGFbKFZlPWt0KyhSPDwyKXwwKT4+Ml0pKyhnZTw8Mik+PjJdLEQpLEpEKHBlLEQsLTEsKDB8YVtWZT4+Ml0pKyhnZTw8MikrNHwwKSxqayhwZSxEKSxRRChwZSxELE0sTSksUj1SKzF8MDtm''@;'; + put 'put ''b3IoZksocGUsTSksUj0wOyEoKDB8Uik+PSgwfHBlKSk7KShiZT0ram5bKEs9TSsoUjw8Mil8MCk+PjJdKT49MzQwMjgyMzQ2NjM4NTI4ODZlMjJ8YmU8MCYmKGpuW0s+PjJdPTApLFI9UisxfDA7Uj1sKzF8MCxsPWdlKzF8MDtuOmRve2lmKG50KWZvcihiZT0wLEs9MDs7KXtpZigoMHxLKT49''@;'; + put 'put ''KDB8cGUpKWJyZWFrIG47am5bKFZlPXcrKFI8PDIpfDApPj4yXT1hbj0ram5bVmU+PjJdKitqbltNKyhLPDwyKT4+Ml0sX1soVmU9YisobCtLPDwzKXwwKT4+M109K19bVmU+PjNdLWFuLGJlKz1hbixSPVIrMXwwLEs9SysxfDB9ZWxzZSBmb3IoYmU9MCxLPTA7Oyl7aWYoKDB8Syk+PSgwfHBl''@;'; + put 'put ''KSlicmVhayBuO2puW3crKFI8PDIpPj4yXT1hbj0ram5bTSsoSzw8Mik+PjJdLF9bKFZlPWIrKGwrSzw8Myl8MCk+PjNdPStfW1ZlPj4zXS1hbixiZSs9YW4sUj1SKzF8MCxLPUsrMXwwfX13aGlsZSgwKTtfWyhWZT1iKyhnZTw8Myl8MCk+PjNdPStfW1ZlPj4zXS1iZSxnZT1sLGw9Un1mb3Io''@;'; + put 'put ''Ozspe2lmKCgwfEspPj0oMHxjKSl7Uj0wO2JyZWFrfWpuW3crKGw8PDIpPj4yXT0rX1tiKyhLPDwzKT4+M10sVmU9UitsfDAsUj1SKy0xfDAsSz1LKzF8MCxsPVZlfWZvcig7Oyl7aWYoKDB8Uik+PSgwfEEpKXtiZT0wLFI9MDticmVha310ZCh3LGMsMHxhW2t0KyhSPDwyKT4+Ml0sMHxhW0hl''@;'; + put 'put ''KyhSPDwyKT4+Ml0pLFI9UisxfDB9Zm9yKDshKCgwfFIpPj0oMHxBKSk7KWJlPStYNyhjLDB8YVtrdCsoUjw8Mik+PjJdLDB8YVtIZSsoUjw8Mik+PjJdKStiZSxSPVIrMXwwO2ZvcihiZT0yKmJlK0csUj0wOyEoKDB8Uik+PSgwfEEpKTspdGQoc3QsYywwfGFbKFZlPWt0KyhSPDwyKXwwKT4+''@;'; + put 'put ''Ml0sRCksYmUtPStYNyhjLDB8YVtWZT4+Ml0sRCksUj1SKzF8MDtmb3IoU249TGUtYmUsUj0xJihiZTwoYW49K19bMjMyOTRdKT8xOihTbj49MD9TbjotU24pL0xlPGFuKSxsPTA7ISgoMHxsKT49KDB8QSkpOyl7Sz0wfGFbKHBlPWt0KyhsPDwyKXwwKT4+Ml07bjpkb3tpZihPZSl7aWYoKDB8''@;'; + put 'put ''T2soc3QsSywwfGFbSGUrKGw8PDIpPj4yXSxjLC4wMDEsYykpPDApe2dlPUhlLHBlPXN0LGY9LTEsbD1TdCxLPWt0LFI9SGU7YnJlYWsgdH19ZWxzZXtpZih1SyhjLEssRCksKDB8T2soc3QsRCwwfGFbSGUrKGw8PDIpPj4yXSxjLC4wMDEsYykpPDApe2dlPUhlLHBlPXN0LGY9LTEsbD1TdCxL''@;'; + put 'put ''PWt0LFI9SGU7YnJlYWsgdH1mb3IoSz0wOzspe2lmKCgwfEspPj0oMHxjKSlicmVhayBuOygwfFh0WzExOSsoMHxhWzE2KygwfGFbbSsoSzw8Mik+PjJdKT4+Ml0pPj4wXSk8PTEmJihhWygwfGFbcGU+PjJdKSsoSzw8Mik+PjJdPWFbRCsoSzw8Mik+PjJdKSxLPUsrMXwwfX19d2hpbGUoMCk7''@;'; + put 'put ''bD1sKzF8MH0wPT0oMHwoMHxmKSU1KSYhMSYmKF9bWnQ+PjNdPWJlLFQwKFJlLDkwMzcxLFp0KSwwPT0oMHwoZis1fDApJTUwKSkmJldqKDEwLFJlKSxmPWYrMXwwLExlPWJlfWZvcihSPTA7Oyl7aWYoKDB8Uik+PSgwfEEpKXtnZT1IZSxwZT1zdCxsPVN0LEs9a3QsUj1IZTticmVhayB0fWZv''@;'; + put 'put ''cihsPWt0KyhSPDwyKXwwLHBlPXArKFI8PDIpfDAsSz0wOyEoKDB8Syk+PSgwfGMpKTspX1soMHxhW3BlPj4yXSkrKEs8PDMpPj4zXT0ram5bKDB8YVtsPj4yXSkrKEs8PDIpPj4yXSxLPUsrMXwwO1I9UisxfDB9fX13aGlsZSgwKTtGdChsKSxGdChLKSxGdChwZSksMHxnZSYmKEZ0KDB8YVtn''@;'; + put 'put ''ZT4+Ml0pLEZ0KFIpKSxGdChEKSxGdChNKSxGdChiKSxGdCh3KX19d2hpbGUoMCk7cmV0dXJuIGxlPWJ0LDB8Zn1mdW5jdGlvbiBTRChsLGMsZixwLG0sQSx3KXtsfD0wLGZ8PTAscHw9MCxtfD0wLEF8PTAsd3w9MDt2YXIgU3Qsa3Qsc3QsRXQsWnQsY3QsYnQsYW4sU24sSG4sdXIsYj0wLGs9''@;'; + put 'put ''MCxNPTAsRD0wLFI9MCxHPTAsSz0wLHBlPTAsZ2U9MCxiZT0wLE9lPTAsTGU9MCxSZT0wLEhlPTAsVmU9MCxxZT0wLG50PTAsV2U9MCxvdD0wO2Zvcih1cj1sZSxsZT1sZSszMnwwLE09dXIrMjR8MCxIbj11cis4fDAsa3Q9dXIrNHwwLGFuPXVyLFNuPTB8UW4oKGJ0PSgwfChjfD0wKSk8NTA/''@;'; + put 'put ''Yzo1MCk8PDIpLGs9MHxRbigwfEFyKFN0PWM8PDMsYnQpKSxiPTA7ISgoMHxiKT49KDB8YnQpKTspYVtTbisoYjw8Mik+PjJdPWsrKCgwfEFyKGIsYykpPDwzKSxiPWIrMXwwO2ZvcihXZT0oMHwoV2U9KDB8KFdlPWJ0PDwxKSk+NTA/V2U6NTApKT4oMHxjKT9jOldlLGFbTT4+Ml09MCxmdW5j''@;'; + put 'put ''dGlvbiBqWChsLGMsZixwLG0pe2x8PTAscHw9MCxtfD0wO3ZhciBrLE0sUixHLEssQT0wLHc9MCxiPTAsRD0wLHBlPTAsZ2U9MCxiZT0wO2ZvcihLPWxlLGxlPWxlKzE2fDAsRz1LLHc9MHxRbigwfEFyKEQ9KGN8PTApPDwyLGZ8PTApKSxBPTB8YVtwPj4yXSxEPTB8UW4oRCksUj0wfGFbbCs4''@;'; + put 'put ''Pj4yXSwwfEEmJihGdCgwfGFbQT4+Ml0pLEZ0KEEpKSxNPTB8UW4oZjw8MiksYVtwPj4yXT1NLEE9MDshKCgwfEEpPj0oMHxmKSk7KWFbTSsoQTw8Mik+PjJdPXcrKCgwfEFyKEEsYykpPDwyKSxBPUErMXwwO2Zvcigoaz0wIT0oMHxtKSkmJkpYKGwsYykscD0oMHxUMSgpKSUoMHxjKXwwLEx5''@;'; + put 'put ''KEcsYyksQT0wfGFbTT4+Ml0saz8oT3kocCxsLGMsQSksbT0wLEE9MCk6KHI4KHAsbCxjLEEsRyksbT0wLEE9MCk7Oyl7aWYoKDB8QSk+PSgwfGMpKXtiPTE7YnJlYWt9YVtEKyhBPDwyKT4+Ml09dz0wfGFbKDB8YVtNPj4yXSkrKEE8PDIpPj4yXSxtPShiPSgwfHcpPigwfG0pKT93Om0scD1i''@;'; + put 'put ''P0E6cCxBPUErMXwwfWZvcig7ISgoMHxiKT49KDB8ZikpOyl7Zm9yKEE9MHxhWyh3PU0rKGI8PDIpfDApPj4yXSxrPyhPeShwLGwsYyxBKSxBPTAsbT0wKToocjgocCxsLGMsQSxHKSxBPTAsbT0wKTshKCgwfEEpPj0oMHxjKSk7KWFbKGJlPUQrKEE8PDIpfDApPj4yXT1nZT0oMHwocGU9MHxh''@;'; + put 'put ''W2JlPj4yXSkpPCgwfChnZT0wfGFbKDB8YVt3Pj4yXSkrKEE8PDIpPj4yXSkpP3BlOmdlLHBlPShiZT0oMHxnZSk+KDB8bSkpP0E6cCxBPUErMXwwLG09YmU/Z2U6bSxwPXBlO2I9YisxfDB9RnQoRCksayYmWFgobCxjLFIpLGxlPUt9KGwsYyxXZSxNLHcpLGZ1bmN0aW9uIGpEKGwsYyxmKXts''@;'; + put 'put ''fD0wLGZ8PTA7dmFyIGIscD0wLG09MCxBPTAsdz0wLGs9MCxNPTA7Zm9yKGI9MS8rKDB8KGN8PTApKSx3PTA7ISgoMHx3KT49KDB8ZikpOyl7Zm9yKGs9bCsodzw8Mil8MCxwPTAsbT0wOyEoKDB8bSk+PSgwfGMpKTspcCs9KygwfGFbKDB8YVtrPj4yXSkrKG08PDIpPj4yXSksbT1tKzF8MDtm''@;'; + put 'put ''b3IoQT1+fihwKmIpLG09MDshKCgwfG0pPj0oMHxjKSk7KWFbKE09KDB8YVtrPj4yXSkrKG08PDIpfDApPj4yXT0oMHxhW00+PjJdKS1BLG09bSsxfDA7dz13KzF8MH19KDB8YVtNPj4yXSxjLFdlKSxmdW5jdGlvbiBuZChsLGMsZixwLG0pe2x8PTAsY3w9MCxmfD0wLHB8PTA7dmFyIEsscGUs''@;'; + put 'put ''Z2UsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxiZT0wO2ZvcihnZT0wfFFuKChtfD0wKTw8Miksdz1jPDwzLEE9MDshKCgwfEEpPj0oMHxtKSk7KWFbZ2UrKEE8PDIpPj4yXT0wfFFuKHcpLEE9QSsxfDA7Zm9yKEs9MHxRbihtPDwzKSxwZT0wfFFuKGM8PDIpLEE9MHxRbigwfEFy''@;'; + put 'put ''KHcsYykpLHc9MDshKCgwfHcpPj0oMHxjKSk7KWFbcGUrKHc8PDIpPj4yXT1BLEE9QSsoYzw8Myl8MCx3PXcrMXwwO2ZvcihrPTAsRz0xOyEoKDB8ayk+PSgwfGMpKTspe2ZvcihNPWwrKGs8PDIpfDAsRD1wZSsoazw8Mil8MCx3PTA7KDB8dykhPSgwfEcpOyl7Zm9yKFI9bCsodzw8Mil8MCxB''@;'; + put 'put ''PTAsYj0wOyEoKDB8QSk+PSgwfGYpKTspYmU9YisgKygwfEFyKDB8YVsoMHxhW1I+PjJdKSsoQTw8Mik+PjJdLDB8YVsoMHxhW00+PjJdKSsoQTw8Mik+PjJdKSksQT1BKzF8MCxiPWJlO19bKDB8YVtwZSsodzw8Mik+PjJdKSsoazw8Myk+PjNdPWIsX1soMHxhW0Q+PjJdKSsodzw8Myk+PjNd''@;'; + put 'put ''PWIsdz13KzF8MH1rPWsrMXwwLEc9RysxfDB9Zm9yKG9LKHBlLGMsbSxnZSxLLDEpLHc9MDs7KXtpZigoMHx3KT49KDB8bSkpe0E9MDticmVha31mb3IoTT1nZSsodzw8Mil8MCxEPXArKHc8PDIpfDAsaz0wOygwfGspPCgwfGYpOyl7Zm9yKEE9MCxiPTA7ISgoMHxBKT49KDB8YykpOyliZT0r''@;'; + put 'put ''X1soMHxhW00+PjJdKSsoQTw8Myk+PjNdKisoMHxhWygwfGFbbCsoQTw8Mik+PjJdKSsoazw8Mik+PjJdKStiLEE9QSsxfDAsYj1iZTtfWygwfGFbRD4+Ml0pKyhrPDwzKT4+M109YixrPWsrMXwwfXc9dysxfDB9Zm9yKDshKCgwfEEpPj0oMHxtKSk7KUZ0KDB8YVtnZSsoQTw8Mik+PjJdKSxB''@;'; + put 'put ''PUErMXwwO0Z0KGdlKSxGdChLKSxGdCgwfGFbcGU+PjJdKSxGdChwZSl9KDB8YVtNPj4yXSxXZSxjLFNuLGJ0KSxGdCgwfGFbYVtNPj4yXT4+Ml0pLEZ0KDB8YVtNPj4yXSksY3Q9MHxRbihXZT1jPDwyKSxiPTA7ISgoMHxiKT49KDB8YykpOylhW2N0KyhiPDwyKT4+Ml09LTEsYj1iKzF8MDtm''@;'; + put 'put ''b3IoTHkoSG4sYyksRXQ9MHxhW2wrOD4+Ml0sKHN0PTAhPSgwfHcpKSYmSlgobCxjKSxxZT0wfFFuKFdlKSxadD0wfFFuKDE2MCksaz0wfFFuKDE2MCpjfDApLG50PTB8UW4oMTYwKSxiPTA7NDAhPSgwfGIpOylhW250KyhiPDwyKT4+Ml09aysoKDB8QXIoYixjKSk8PDIpLGI9YisxfDA7Zm9y''@;'; + put 'put ''KGI9KDB8VDEoKSklKDB8Yyl8MCxhW2N0KyhiPDwyKT4+Ml09MCxhW1p0Pj4yXT1iLGs9MHxhW250Pj4yXSxzdD8oT3koYixsLGMsayksaz0wLE09MCk6KHI4KGIsbCxjLGssSG4pLGs9MCxNPTApOzspe2lmKCgwfE0pPj0oMHxjKSl7Rz0xO2JyZWFrfWFbcWUrKE08PDIpPj4yXT1vdD0wfGFb''@;'; + put 'put ''KDB8YVtudD4+Ml0pKyhNPDwyKT4+Ml0sYj0oVmU9KDB8b3QpPigwfGspKT9NOmIsaz1WZT9vdDprLE09TSsxfDB9Zm9yKDs7KXtpZig0MD09KDB8Rykpe2I9MDticmVha31mb3IoYVtjdCsoYjw8Mik+PjJdPUcsYVtadCsoRzw8Mik+PjJdPWIsaz0wfGFbKHBlPW50KyhHPDwyKXwwKT4+Ml0s''@;'; + put 'put ''c3Q/KE95KGIsbCxjLGspLFI9MCxrPTApOihyOChiLGwsYyxrLEhuKSxSPTAsaz0wKTshKCgwfFIpPj0oMHxjKSk7KWFbKE09cWUrKFI8PDIpfDApPj4yXT13PSgwfChvdD0wfGFbTT4+Ml0pKTwoMHwodz0wfGFbKDB8YVtwZT4+Ml0pKyhSPDwyKT4+Ml0pKT9vdDp3LCgwfHcpPD0oMHxrKT8o''@;'; + put 'put ''MHx3KT09KDB8aykmJjA9PSgwfCgwfFQxKCkpJShSKzF8MCkpJiYoaz0wfGFbTT4+Ml0sYj1SKTooaz13LGI9UiksUj1SKzF8MDtHPUcrMXwwfWZvcig7ISgoMHxiKT49KDB8YykpOylhW3FlKyhiPDwyKT4+Ml09LTEsYj1iKzF8MDtmb3IoT2U9MHxRbihXZSksb3Q9MHxRbihjPDw0KSxSZT0o''@;'; + put 'put ''TGU9YystMXwwKTw8MixWZT0wLE09MCx3PTAsaz0wLEhlPTA7ISgoMHxIZSk+PSgwfGMpKTspe2I9Y3QrKEhlPDwyKXwwO2U6ZG97aWYoKDB8YVtiPj4yXSk+LTEpe2ZvcihhWyhwZT1vdCsoSGU8PDQpKzR8MCk+PjJdPTB8UW4oUmUpLGJlPTB8UW4oUmUpLGFbb3QrKEhlPDw0KSs4Pj4yXT1i''@;'; + put 'put ''ZSxhW290KyhIZTw8NCk+PjJdPUxlLGZlW290KyhIZTw8NCkrMTI+PjBdPTEsRz1udCsoYVtiPj4yXTw8Mil8MCxiPTA7Oyl7aWYoKDB8Yik9PSgwfEhlKSl7Uj1IZTticmVha31hWygwfGFbcGU+PjJdKSsoYjw8Mik+PjJdPWIsYVtiZSsoYjw8Mik+PjJdPWFbKDB8YVtHPj4yXSkrKGI8PDIp''@;'; + put 'put ''Pj4yXSxiPWIrMXwwfWZvcig7Oyl7aWYoYj1SKzF8MCwoMHxSKT09KDB8TGUpKXtiPUxlO2JyZWFrIGV9YVsoMHxhW3BlPj4yXSkrKFI8PDIpPj4yXT1iLGFbYmUrKFI8PDIpPj4yXT1hWygwfGFbRz4+Ml0pKyhiPDwyKT4+Ml0sUj1ifX1lbHNle2ZvcigoMHxrKTw0MD8odz0wfFFuKFdlKSxN''@;'; + put 'put ''PTB8UW4oV2UpLGs9YyxiPTEpOmI9MCxmZVtvdCsoSGU8PDQpKzEyPj4wXT1iLGFbb3QrKEhlPDw0KSs0Pj4yXT13LGFbb3QrKEhlPDw0KSs4Pj4yXT1NLGFbb3QrKEhlPDw0KT4+Ml09NDAsYj0wOzQwIT0oMHxiKTspYVt3KyhiPDwyKT4+Ml09YVtadCsoYjw8Mik+PjJdLGFbTSsoYjw8Mik+''@;'; + put 'put ''PjJdPWFbKDB8YVtudCsoYjw8Mik+PjJdKSsoSGU8PDIpPj4yXSxiPWIrMXwwO009TSsxNjB8MCx3PXcrMTYwfDAsaz1rKy00MHwwLGI9NDB9fXdoaWxlKDApO1ZlPWIrVmV8MCxIZT1IZSsxfDB9Zm9yKEZ0KHFlKSxGdChPZSksMHxudCYmKEZ0KDB8YVtudD4+Ml0pLEZ0KG50KSksbnQ9MHxR''@;'; + put 'put ''bigyMCpjfDApLEc9MHxRbihSPVZlK2M8PDIpLGJlPTI9PSgwfEEpLFI9MHxRbihSKSxwZT0wOyEoKDB8cGUpPj0oMHxjKSk7KXthW250KygyMCpwZXwwKSs0Pj4yXT1HLGFbbnQrKDIwKnBlfDApKzg+PjJdPVIsYVsoT2U9bnQrKDIwKnBlfDApfDApPj4yXT1iPTErKDB8YVtvdCsocGU8PDQp''@;'; + put 'put ''Pj4yXSl8MCxNPSgwfGFbb3QrKHBlPDw0KSs4Pj4yXSktNHwwLHc9b3QrKHBlPDw0KSs0fDA7ZTpkb3tpZihiZSlmb3IoRD0wLGs9MTs7KXtpZigoMHxrKT49KDB8YikpYnJlYWsgZTthW0crKGs8PDIpPj4yXT1hWygwfGFbdz4+Ml0pKyhrKy0xPDwyKT4+Ml0sam5bUisoazw8Mik+PjJdPWdl''@;'; + put 'put ''PS0xLygoZ2U9KygwfGFbTSsoazw8Mik+PjJdKSkqZ2UpLEQtPWdlLGs9aysxfDAsYj0wfGFbT2U+PjJdfWVsc2UgZm9yKEQ9MCxrPTE7Oyl7aWYoKDB8ayk+PSgwfGIpKWJyZWFrIGU7YVtHKyhrPDwyKT4+Ml09YVsoMHxhW3c+PjJdKSsoaystMTw8Mik+PjJdLGpuW1IrKGs8PDIpPj4yXT1n''@;'; + put 'put ''ZT0tMS8rKDB8YVtNKyhrPDwyKT4+Ml0pLEQtPWdlLGs9aysxfDAsYj0wfGFbT2U+PjJdfX13aGlsZSgwKTthW0c+PjJdPXBlLGpuW1I+PjJdPUQsUj1SKygoV2U9MHxhW09lPj4yXSk8PDIpfDAsRz1HKyhXZTw8Mil8MCxwZT1wZSsxfDB9Zm9yKHFlPTB8UW4ocDw8MiksYVtxZT4+Ml09MHxR''@;'; + put 'put ''bigwfEFyKHA8PDMsYnQpKSxiPTE7ISgoMHxiKT49KDB8cCkpOylhW3FlKyhiPDwyKT4+Ml09KDB8YVtxZT4+Ml0pKygoMHxBcihiLGJ0KSk8PDMpLGI9YisxfDA7ZTpkb3tpZihtKXtmb3IoYj0wOyEoKDB8Yik+PSgwfHApKTspe2ZvcihNPXFlKyhiPDwyKXwwLGs9MDshKCgwfGspPj0oMHxi''@;'; + put 'put ''dCkpOylfWygwfGFbTT4+Ml0pKyhrPDwzKT4+M109MCxrPWsrMXwwO2I9YisxfDB9aWYoMiE9KDB8cCkpZm9yKGI9MDs7KXtpZigoMHxiKT49KDB8cCkpe2I9MDticmVhayBlfV9bKDB8YVtxZSsoYjw8Mik+PjJdKSsoYjw8Myk+PjNdPTEsYj1iKzF8MH1pZihfW2FbcWU+PjJdPj4zXT0xLCgw''@;'; + put 'put ''fFAyZShTbixidCxjLDB8YVsoYj1xZSs0fDApPj4yXSkpPDwyND4+MjQpYj0wO2Vsc2V7Zm9yKGs9MHxhW2I+PjJdLGI9MDshKCgwfGIpPj0oMHxidCkpOylfW2srKGI8PDMpPj4zXT0wLGI9YisxfDA7X1trKzg+PjNdPTEsYj0wfX1lbHNlIGZvcihrPTA7Oyl7aWYoKDB8ayk+PSgwfHApKXti''@;'; + put 'put ''PTA7YnJlYWsgZX1mb3IoTT1xZSsoazw8Mil8MCxiPTA7ISgoMHxiKT49KDB8YnQpKTspZ2U9NC42NTY2MTI4NzUyNDU3OTdlLTEwKisoMHxUMSgpKSxfWygwfGFbTT4+Ml0pKyhiPDwzKT4+M109Z2UsYj1iKzF8MDtrPWsrMXwwfX13aGlsZSgwKTtmb3IoOyEoKDB8Yik+PSgwfHApKTspelYo''@;'; + put 'put ''U24sYyxidCwwfGFbcWUrKGI8PDIpPj4yXSwwfGFbZisoYjw8Mik+PjJdKSxiPWIrMXwwO2Fba3Q+PjJdPTAsYVthbj4+Ml09MCxsSyhudCxTbixjLGJ0LGt0KSxmdW5jdGlvbiBJMmUobCxjLGYscCxtLEEpe2x8PTAsY3w9MCxmfD0wLHB8PTAsbXw9MDt2YXIgdz0wLGI9MCxrPTAsTT0wLEQ9''@;'; + put 'put ''MCxSPTAsRz0wO2ZvcigoYj0wfGFbKEF8PTApPj4yXSk/KHc9MHxVYSgwfGFbYj4+Ml0sMHxBcihSPWY8PDIsbSkpLFI9MHxVYShiLFIpKToodz0wfEIwKDB8QXIoUj1mPDwyLG0pKSxSPTB8QjAoUikpLGFbQT4+Ml09UixiPTA7Oyl7aWYoKDB8Yik+PSgwfGYpKXtBPTA7YnJlYWt9YVtSKyhi''@;'; + put 'put ''PDwyKT4+Ml09dyxiPWIrMXwwLHc9dysobTw8Mil8MH1mb3IoOyEoKDB8QSk+PSgwfGYpKTspe2ZvcihNPWwrKEE8PDIpfDAsRD1SKyhBPDwyKXwwLGI9MDsoMHxiKTwoMHxtKTspe2Zvcih3PTAsaz0wOyEoKDB8dyk+PSgwfHApKTspRz0rX1soMHxhW00+PjJdKSsodzw8Myk+PjNdKitqblso''@;'; + put 'put ''MHxhW2MrKHc8PDIpPj4yXSkrKGI8PDIpPj4yXStrLHc9dysxfDAsaz1HO2puWygwfGFbRD4+Ml0pKyhiPDwyKT4+Ml09ayxiPWIrMXwwfUE9QSsxfDB9fShTbiwwfGFba3Q+PjJdLGJ0LGMsYnQsYW4pLEZ0KDB8YVthW2t0Pj4yXT4+Ml0pLEZ0KDB8YVtrdD4+Ml0pLEhlPTB8UW4oU3QpLFZl''@;'; + put 'put ''PTB8UW4oYnQ8PDMpLGI9MCxrPTAsRD0rc3NlKGYsb3QscCxjLEEpO2U6Zm9yKDsoMHxrKTw1MCZiPDwyND4+MjQ9PTA7KXtmb3IoTGU9MDshKCgwfExlKT49KDB8cCkpOyl7Zm9yKFJlPWYrKExlPDwyKXwwLE09MDshKCgwfE0pPj0oMHxjKSk7KXtmb3IoX1soUj1IZSsoTTw8Myl8MCk+PjNd''@;'; + put 'put ''PTAsRz0oMHxhW290KyhNPDw0KSs4Pj4yXSktNHwwLHBlPTB8YVtudCsoMjAqTXwwKSs0Pj4yXSxiZT0wfGFbbnQrKDIwKk18MCkrOD4+Ml0sT2U9bnQrKDIwKk18MCl8MCxLPTAsdz0xOyEoKDB8dyk+PSgwfGFbT2U+PjJdKSk7KShnZT0rS1goZixwLE0sYj0wfGFbcGUrKHc8PDIpPj4yXSkp''@;'; + put 'put ''PjFlLTMwJiYoX1tSPj4zXT0oZ2U9LStqbltiZSsodzw8Mik+PjJdKisoMHxhW0crKHc8PDIpPj4yXSkvZ2UpKitfWygwfGFbUmU+PjJdKSsoYjw8Myk+PjNdKyArX1tSPj4zXSxLLT1nZSksdz13KzF8MDtfW1I+PjNdPStfW1I+PjNdKyArX1soMHxhW1JlPj4yXSkrKE08PDMpPj4zXSpLLE09''@;'; + put 'put ''TSsxfDB9aWYoalYoU24sYnQsYyxIZSxWZSksMHxTVigwfGFbYW4+PjJdLDB8YVsoYj1xZSsoTGU8PDIpfDApPj4yXSxWZSxidCwuMDAxLGJ0LDApKXtrPS0xO2JyZWFrIGV9elYoU24sYyxidCwwfGFbYj4+Ml0sMHxhW1JlPj4yXSksTGU9TGUrMXwwfTEmaz9iPTA6KGdlPStzc2UoZixvdCxw''@;'; + put 'put ''LGMsQSksYj0oRD0rZW8oKyhnZS1EKSkvKGdlKzFlLTEwKSk8K19bMjMyOTRdJjEsRD1nZSksaz1rKzF8MH1mb3IoRnQoVmUpLEZ0KEhlKSxzdCYmWFgobCxjLEV0KSxiPTA7ISgoMHxiKT49KDB8YykpOykwfGZlW290KyhiPDw0KSsxMj4+MF0mJihGdCgwfGFbb3QrKGI8PDQpKzQ+PjJdKSxG''@;'; + put 'put ''dCgwfGFbb3QrKGI8PDQpKzg+PjJdKSksYj1iKzF8MDtyZXR1cm4gRnQob3QpLEZ0KDB8YVtudCs0Pj4yXSksRnQoMHxhW250Kzg+PjJdKSxGdChudCksRnQoY3QpLEZ0KFp0KSxGdCgwfGFbcWU+PjJdKSxGdChxZSksMHwoYj0wfGFbYW4+PjJdKSYmKEZ0KDB8YVtiPj4yXSksRnQoMHxhW2Fu''@;'; + put 'put ''Pj4yXSkpLEZ0KDB8YVtTbj4+Ml0pLEZ0KFNuKSxPRChIbiksbGU9dXIsMHxrfWZ1bmN0aW9uIHNzZShsLGMsZixwLG0pe2x8PTAsY3w9MCxmfD0wLHB8PTAsbXw9MDt2YXIgQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxLPTAscGU9MDtlOmRve2lmKDI9PSgwfG0pKWZvcihBPTAs''@;'; + put 'put ''TT0wOzspe2lmKCgwfE0pPj0oMHxwKSlicmVhayBlO2ZvcihSPTB8YVtjKyhNPDw0KT4+Ml0sRz1jKyhNPDw0KSs0fDAsRD1jKyhNPDw0KSs4fDAsaz0wOyEoKDB8ayk+PSgwfFIpKTspe2lmKCgwfChiPTB8YVsoMHxhW0c+PjJdKSsoazw8Mik+PjJdKSk+KDB8TSkpe2Zvcih3PTAsbT0wOyEo''@;'; + put 'put ''KDB8bSk+PSgwfGYpKTspdz0oSz0rX1socGU9MHxhW2wrKG08PDIpPj4yXSkrKE08PDMpPj4zXS0rX1twZSsoYjw8Myk+PjNdKSpLK3csbT1tKzF8MDt3PStEMCgrdyksQT0odz0oSz0rKDB8YVsoMHxhW0Q+PjJdKSsoazw8Mik+PjJdKSktdykqdy8oSypLKStBfWs9aysxfDB9TT1NKzF8MH1l''@;'; + put 'put ''bHNlIGZvcihNPTAsQT0wOzspe2lmKCgwfE0pPj0oMHxwKSlicmVhayBlO2ZvcihEPTB8YVtjKyhNPDw0KT4+Ml0sUj1jKyhNPDw0KSs0fDAsRz1jKyhNPDw0KSs4fDAsaz0wOyEoKDB8ayk+PSgwfEQpKTspe2lmKCgwfChiPTB8YVsoMHxhW1I+PjJdKSsoazw8Mik+PjJdKSk+KDB8TSkpe2Zv''@;'; + put 'put ''cih3PTAsbT0wOyEoKDB8bSk+PSgwfGYpKTspdz0oSz0rX1socGU9MHxhW2wrKG08PDIpPj4yXSkrKE08PDMpPj4zXS0rX1twZSsoYjw8Myk+PjNdKSpLK3csbT1tKzF8MDt3PStEMCgrdyksQT0odz0oSz0rKDB8YVsoMHxhW0c+PjJdKSsoazw8Mik+PjJdKSktdykqdy9LK0F9az1rKzF8MH1N''@;'; + put 'put ''PU0rMXwwfX13aGlsZSgwKTtyZXR1cm4rQX1mdW5jdGlvbiBHSihsKXtyZXR1cm4rICtEMCgrKGw9K2wpKSpsfWZ1bmN0aW9uIFdKKGwsYyxmKXtsfD0wLGN8PTAsZnw9MDt2YXIgQSxwPTAsbT0wLHc9MDtmb3IoQT0wfGFbNDcxMzddLHA9MCxtPTA7ISgoMHxtKT49KDB8QSkpOylfW2YrKG08''@;'; + put 'put ''PDMpPj4zXT13PStfW2wrKG08PDMpPj4zXS0rX1tjKyhtPDwzKT4+M10scD13KncrcCxtPW0rMXwwO3JldHVybisgK0QwKCtwKX1mdW5jdGlvbiBjZyhsLGMsZil7Y3w9MCxmPStmO3ZhciB3LHA9MCxtPTAsQT0wO2Zvcih3PTB8dnIoKGx8PTApPDwyKSxtPTAsQT0wfHZyKDB8QXIobDw8Myxj''@;'; + put 'put ''KSk7ISgoMHxtKT49KDB8bCkpOyl7Zm9yKGFbdysobTw8Mik+PjJdPUEscD0wOyEoKDB8cCk+PSgwfGMpKTspX1tBKyhwPDwzKT4+M109ZixwPXArMXwwO209bSsxfDAsQT1BKyhjPDwzKXwwfXJldHVybiAwfHd9ZnVuY3Rpb24gQjcobCl7MHwobHw9MCkmJihGdCgwfGFbbD4+Ml0pLEZ0KGwp''@;'; + put 'put ''KX1mdW5jdGlvbiBZSihsLGMpe2N8PTA7dmFyIGIsayxNLEQsZj0wLHA9MCxtPTAsQT0wLHc9MCxSPTA7RD1sZSxsZT1sZSsxNnwwLE09MHxHbyhsfD0wKSxrPTB8VjMobCksYj0wfHNpKGwsMiw5MjQ5MywwKTtlOmRve2lmKGMpZm9yKF9bMjMyOTRdPTFlLTQsc1EobCwxMDg4ODYsMTg2MzUy''@;'; + put 'put ''KSxtPTAsZj0wLEE9MHxEdChsKTs7KXtpZighQSlicmVhayBlO2FbMTIwKygwfGFbQSsxNj4+Ml0pPj4yXT1tLG09bSsxfDAsZj1wPSskTihsLEEsYikrZixBPTB8enQobCxBKX1lbHNlIGZvcihfWzIzMjk0XT0xZS00KisoMHxNKSxzUShsLDEwODg4NiwxODYzNTIpLG09MHxMaSgwfGFbbCs2''@;'; + put 'put ''MD4+Ml0sOTAxMDApLGY9bT8ra3AobSk6Ljk5LF9bMjMyOTZdPWYsbT0wfHZyKDQrKE08PDIpfDApLHc9bCsxNnwwLGFbMTUyKygwfGFbdz4+Ml0pPj4yXT1tLG09MCxmPTAsQT0wfER0KGwpOzspe2lmKCFBKWJyZWFrIGU7YVsoMHxhWzE1MisoMHxhW3c+PjJdKT4+Ml0pKyhtPDwyKT4+Ml09''@;'; + put 'put ''QSxhWzEyMCsoUj0wfGFbQSsxNj4+Ml0pPj4yXT1tLGFbUisxMjQ+PjJdPS0xLG09bSsxfDAsZj1wPSskTihsLEEsYikrZixBPTB8enQobCxBKX19d2hpbGUoMCk7cmV0dXJuIDAhPSgwfChtPTB8TGkobCw5MDEwOCkpKSYmMCE9KDB8ZmVbbT4+MF0pPyhmPStfWzIzMjk0XSk+KHA9K2twKG0p''@;'; + put 'put ''KXx8KGY9cCk6Zj1mLysoMHwoKDB8ayk+MT9rOjEpKSorRDAoKyArKDB8TSkpKzEsX1syMzI5NV09ZixhWzQ3MTM0XXxjfHwoYz0wfGNnKE0sTSxmKSxhWzE2MCsoMHxhWyhSPWwrMTZ8MCk+PjJdKT4+Ml09YyxjPTB8Y2coTSxNLDEpLGFbMTY0KygwfGFbUj4+Ml0pPj4yXT1jLGM9MHxjZyhN''@;'; + put 'put ''LDB8YVs0NzEzN10sMSksYVsxNjgrKDB8YVtSPj4yXSk+PjJdPWMsYz0wfGZ1bmN0aW9uIHVzZShsLGMsZil7Y3w9MCxmfD0wO3ZhciBiLGssTSxwPTAsbT0wLEE9MCx3PTA7Zm9yKGI9MHx2cig0KygobHw9MCk8PDIpfDApLGs9NCsoYzw8Mil8MCxNPWY8PDMsQT0wOyEoKDB8QSk+PSgwfGwp''@;'; + put 'put ''KTspe2ZvcihhWyh3PWIrKEE8PDIpfDApPj4yXT0wfHZyKGspLG09MDshKCgwfG0pPj0oMHxjKSk7KXtmb3IocD0wfHZyKE0pLGFbKDB8YVt3Pj4yXSkrKG08PDIpPj4yXT1wLHA9MDshKCgwfHApPj0oMHxmKSk7KV9bKDB8YVsoMHxhW3c+PjJdKSsobTw8Mik+PjJdKSsocDw8Myk+PjNdPTAs''@;'; + put 'put ''cD1wKzF8MDttPW0rMXwwfWFbKDB8YVt3Pj4yXSkrKG08PDIpPj4yXT0wLEE9QSsxfDB9cmV0dXJuIGFbYisoQTw8Mik+PjJdPTAsMHxifShNLE0sMHxhWzQ3MTM3XSksYVsxNzIrKDB8YVtSPj4yXSk+PjJdPWMpLGxlPUQsMHxNfWZ1bmN0aW9uICROKGwsYyxmKXtmfD0wO3ZhciBBLHcsayxw''@;'; + put 'put ''PTAsbT0wLGI9MDtmb3Ioaz1sZSxsZT1sZSszMnwwLHc9ays4fDAsQT1rLGM9MHx3MChsfD0wLGN8PTApLHA9MDtjOyl7c3dpdGNoKDB8Y3NlKGMsZixBKSl7Y2FzZSAwOm09K19bQT4+M107YnJlYWs7Y2FzZSAyOmFbdz4+Ml09MHx0aShsKSxfW3crOD4+M109MSwkcigzLDkwMTIwLHcpLGI9''@;'; + put 'put ''NjticmVhaztkZWZhdWx0OmI9Nn02PT0oMHxiKSYmKGI9MCxfW0E+PjNdPTEsbT0xKSxfWzEzNisoMHxhW2MrMTY+PjJdKT4+M109bSxjPTB8UzAobCxjKSxwPW0rcH1yZXR1cm4gbGU9aywrcH1mdW5jdGlvbiBjc2UobCxjLGYpe2x8PTAsY3w9MCxmfD0wO3ZhciBBLHcsYixwPTAsbT0wO2I9''@;'; + put 'put ''bGUsbGU9bGUrMTZ8MCx3PWIrOHwwLEE9Yjtkb3tpZigwIT0oMHxjKSYmKHA9MHxIbyhsLGMpLDAhPSgwfGZlW3A+PjBdKSkpe2lmKGFbQT4+Ml09ZiwoMHxpbChwLDEwMTIwOSxBKSk+PTEmJiEoKG09K19bZj4+M10pPDApJiYwIT1tfDAhPSgwfGFbNDcxMzRdKSl7bD0wO2JyZWFrfWFbdz4+''@;'; + put 'put ''Ml09cCwkcigwLDkwMTQ3LHcpLGw9Mn1lbHNlIGw9MX13aGlsZSgwKTtyZXR1cm4gbGU9YiwwfGx9ZnVuY3Rpb24gcU4obCl7RnQoMHxhWzE1MisoMHxhWyhsPTE2KyhsfD0wKXwwKT4+Ml0pPj4yXSksMHxhWzQ3MTM0XXx8KEI3KDB8YVsxNjArKDB8YVtsPj4yXSk+PjJdKSxCNygwfGFbMTY0''@;'; + put 'put ''KygwfGFbbD4+Ml0pPj4yXSksQjcoMHxhWzE2OCsoMHxhW2w+PjJdKT4+Ml0pLGZ1bmN0aW9uIHZ2ZShsKXt2YXIgYz0wLGY9MCxwPTAsbT0wLEE9MDtpZigwfChsfD0wKSl7Zm9yKG09MDtjPTB8YVsoQT1sKyhtPDwyKXwwKT4+Ml07KXtmb3IocD0wO2Y9MHxhW2MrKHA8PDIpPj4yXTspRnQo''@;'; + put 'put ''ZikscD1wKzF8MCxjPTB8YVtBPj4yXTtGdChjKSxtPW0rMXwwfUZ0KGwpfX0oMHxhWzE3MisoMHxhW2w+PjJdKT4+Ml0pLGFbMTcyKygwfGFbbD4+Ml0pPj4yXT0wKX1mdW5jdGlvbiBRSihsLGMsZil7Znw9MDt2YXIgcCxtPTA7Zm9yKHA9KygwfChjfD0wKSksYz0xNisobHw9MCl8MDshKCgw''@;'; + put 'put ''fGYpPj0oMHxhWzQ3MTM3XSkpOyltPStxYygpKnAsX1soMHxhWzEzMisoMHxhW2M+PjJdKT4+Ml0pKyhmPDwzKT4+M109bSxmPWYrMXwwfWZ1bmN0aW9uIGVWKGwsYyl7UUoobHw9MCxjfD0wLDIpfWZ1bmN0aW9uIGhzZShsLGMpe2x8PTA7dmFyIGYsbSxwPTA7cD0rKDB8KGN8PTApKSxtPStx''@;'; + put 'put ''YygpKnAsX1thWzEzMisoMHxhWyhmPWwrMTZ8MCk+PjJdKT4+Ml0+PjNdPW0scD0rcWMoKSpwLF9bOCsoMHxhWzEzMisoMHxhW2Y+PjJdKT4+Ml0pPj4zXT1wLCgwfGFbNDcxMzddKT4yJiZlVihsLGMpfWZ1bmN0aW9uIHl2ZShsLGMpe2x8PTAsY3w9MDt2YXIgRCxHLEssZj0wLHA9MCxtPTAs''@;'; + put 'put ''QT0wLHc9MCxiPTAsaz0wLE09MCxSPTAscGU9MDtpZihLPWxlLGxlPWxlKzE2fDAsRz1LLGFbNDY3OTldPUQ9MSsoMHxhWzQ2Nzk5XSl8MCwoMHxhWzE1NisobD0wfGFbbCsxNj4+Ml0pPj4yXSk8KDB8YVs0NzEzNl0pKXtmb3Ioaz0wfGFbNDcxMzddLE09bCsxNTJ8MCxiPWwrMTY4fDAsbD0w''@;'; + put 'put ''LGY9MCx3PTA7ISgoMHx3KT49KDB8YykpOyl7aWYoKDB8WHRbMTE5KygwfGFbMTYrKG09MHxhWygwfGFbTT4+Ml0pKyh3PDwyKT4+Ml0pPj4yXSk+PjBdKTw9MSl7Zm9yKEE9MCxwPTA7ISgoMHxwKT49KDB8aykpOylBPShwZT0rX1soMHxhWygwfGFbYj4+Ml0pKyh3PDwyKT4+Ml0pKyhwPDwz''@;'; + put 'put ''KT4+M10pKnBlK0EscD1wKzF8MDtBPmYmJihsPW0sZj1BKX13PXcrMXwwfWY8K19bMjMyMTZdP2w9MDohMSYwPT0oMHwoMHxEKSUxMDApJiYoUj0wfGFbMTU3MTJdLF9bRz4+M109K0QwKCtmKSxUMChSLDkwMzcxLEcpLDA9PSgwfCgwfGFbNDY3OTldKSUxZTMpKSYmV2ooMTAsUil9ZWxzZSBs''@;'; + put 'put ''PTA7cmV0dXJuIGxlPUssMHxsfWZ1bmN0aW9uIE1EKGwsYyxmKXtsfD0wLGN8PTA7dmFyIGIsUixNLHA9MCxtPTAsQT0wLHc9MCxrPTA7Zm9yKFI9bGUsbGU9bGUrMTZ8MCxNPTB8YVsxMjArKDB8YVsoaz0xNisoZnw9MCl8MCk+PjJdKT4+Ml0sQT0obT0wfGFbNDY3OThdKT8wfFYwKG0sMHxB''@;'; + put 'put ''cigoQT0wfGFbNDcxMzddKTw8MyxBKSk6MHxRbigwfEFyKChBPTB8YVs0NzEzN10pPDwzLEEpKSxhWzQ2Nzk4XT1BLGZ1bmN0aW9uIHRWKGwsYyxmLHApe2N8PTAscHw9MDt2YXIgZ2UsYmUsT2UsUmUsSGUsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAsSz0wLHBlPTAsTGU9''@;'; + put 'put ''MDtmb3IoSGU9bGUsbGU9bGUrODB8MCxSZT1IZSxrPTB8YVsxNjQrKExlPTB8YVsxNisobHw9MCk+PjJdKT4+Ml0sTT0wfGFbTGUrMTYwPj4yXSxiPTB8YVsoTGU9MHxhW0xlKzE1Mj4+Ml0pKygoZnw9MCk8PDIpPj4yXSxBPTB8YVs0NzEzN10sbD0wOyEoKDB8bCk+PSgwfEEpKTspe2Zvcih3''@;'; + put 'put ''PTB8QXIoQSxsKSxtPTA7KDB8bSkhPSgwfEEpOylfW3ArKHcrbTw8Myk+PjNdPTAsbT1tKzF8MDtsPWwrMXwwfWZvcihPZT0wfGFbNDcxMzddLGJlPWIrMTZ8MCxnZT1rKyhmPDwyKXwwLGs9TSsoZjw8Mil8MCxiPTA7ISgoMHxiKT49KDB8YykpOyl7ZTpkb3tpZigoMHxiKSE9KDB8Zikpe2Zv''@;'; + put 'put ''cihtPTE2KygwfGFbTGUrKGI8PDIpPj4yXSl8MCxwZT0wLGw9MDshKCgwfGwpPj0oMHxPZSkpOylfW1JlKyhsPDwzKT4+M109Sz0rX1soMHxhWzEzMisoMHxhW2JlPj4yXSk+PjJdKSsobDw8Myk+PjNdLStfWygwfGFbMTMyKygwfGFbbT4+Ml0pPj4yXSkrKGw8PDMpPj4zXSxwZT1LKksrcGUs''@;'; + put 'put ''bD1sKzF8MDtmb3IoRD0xLytHSihwZSksdz0wOzspe2lmKCgwfHcpPj0oMHxPZSkpYnJlYWsgZTtmb3IobT0oMHxhW2dlPj4yXSkrKGI8PDMpfDAsQT0oMHxhW2s+PjJdKSsoYjw8Myl8MCxSPStfW1JlKyh3PDwzKT4+M10sbD0wO0c9K19bbT4+M10sSz0rX1tBPj4zXSwoMHxsKSE9KDB8dyk7''@;'; + put 'put ''KU09cCsoKDB8QXIoT2UsbCkpK3c8PDMpfDAsX1tNPj4zXT0rX1tNPj4zXStHKkQqSypSKitfW1JlKyhsPDwzKT4+M10sbD1sKzF8MDtNPXArKCgwfEFyKE9lLHcpKSt3PDwzKXwwLF9bTT4+M109KDEtSypEKihwZS1SKlIpKSpHKyArX1tNPj4zXSx3PXcrMXwwfX19d2hpbGUoMCk7Yj1iKzF8''@;'; + put 'put ''MH1mb3IobT0wfGFbNDcxMzddLHc9MTshKCgwfHcpPj0oMHxtKSk7KXtmb3IoQT0wfEFyKG0sdyksbD0wOygwfGwpIT0oMHx3KTspX1twKyhBK2w8PDMpPj4zXT0rX1twKygoMHxBcihtLGwpKSt3PDwzKT4+M10sbD1sKzF8MDt3PXcrMXwwfWxlPUhlfShsLGMsTSxBKSx3PTB8YVs0NzEzN10s''@;'; + put 'put ''Yj1sKzE2fDAsbT0wOyEoKDB8bSk+PSgwfHcpKTspX1sxODU3MzYrKG08PDMpPj4zXT0tK19bKDB8YVsoMHxhWzE2OCsoMHxhW2I+PjJdKT4+Ml0pKyhNPDwyKT4+Ml0pKyhtPDwzKT4+M10sbT1tKzF8MDtmb3IoZnVuY3Rpb24gWDJlKGwsYyxmLHApe2x8PTAsY3w9MCxmfD0wO3ZhciBwZSxn''@;'; + put 'put ''ZSxiZSxPZSxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxLPTAsTGU9MCxSZT0wO2ZvcihiZT0wfFFuKChnZT0wfEFyKHB8PTAscCkpPDwzKSxPZT0wfFFuKHA8PDMpLG09MDshKCgwfG0pPj0oMHxwKSk7KV9bT2UrKG08PDMpPj4zXT0rX1tmKyhtPDwzKT4+M10sbT1tKzF8''@;'; + put 'put ''MDtmb3IobT0wOyEoKDB8bSk+PSgwfGdlKSk7KV9bYmUrKG08PDMpPj4zXT0rX1tsKyhtPDwzKT4+M10sbT1tKzF8MDtwZT1wKy0xfDAsdz0wLEs9MDtlOmZvcig7Oyl7aWYoISgoMHxLKTwoMHxwZSkpKXtEPTIxO2JyZWFrfWZvcihBPTAsbT1LOyEoKDB8bSk+PSgwfHApKTspRz0oUj0oTGU9''@;'; + put 'put ''K2VvKCsgK19bbCsoKDB8QXIobSxwKSkrSzw8Myk+PjNdKSk8QSk/dzptLEE9Uj9BOkxlLG09bSsxfDAsdz1HO2lmKEE8MWUtMTApe0Q9MzM7YnJlYWt9Zm9yKGI9MHxBcih3LHApLEc9MHxBcihLLHApLG09SzshKCgwfG0pPj0oMHxwKSk7KUxlPStfWyhEPWwrKG0rYjw8Myl8MCk+PjNdLF9b''@;'; + put 'put ''RD4+M109K19bKFI9bCsobStHPDwzKXwwKT4+M10sX1tSPj4zXT1MZSxtPW0rMXwwO2ZvcihMZT0rX1soUj1mKyh3PDwzKXwwKT4+M10sX1tSPj4zXT0rX1soaz1mKyhLPDwzKXwwKT4+M10sX1trPj4zXT1MZSxNPWwrKEcrSzw8Myl8MCxtPVI9SysxfDA7Oyl7aWYoKDB8bSk+PSgwfHApKXtL''@;'; + put 'put ''PVI7Y29udGludWUgZX1mb3IoRD0wfEFyKG0scCksX1soYj1mKyhtPDwzKXwwKT4+M109K19bYj4+M10tK19baz4+M10qKEE9K19bbCsoRCtLPDwzKT4+M10vK19bTT4+M10pLGI9MDshKCgwfGIpPj0oMHxwKSk7KV9bKFJlPWwrKGIrRDw8Myl8MCk+PjNdPStfW1JlPj4zXS0rX1tsKyhiK0c8''@;'; + put 'put ''PDMpPj4zXSpBLGI9YisxfDA7bT1tKzF8MH19aWYoMjE9PSgwfEQpKWlmKCtlbygrKEE9K19bbCsoZ2UrLTE8PDMpPj4zXSkpPDFlLTEwKUQ9MzM7ZWxzZXtmb3IoX1tjKyhwZTw8Myk+PjNdPStfW2YrKHBlPDwzKT4+M10vQSxtPTA7Oyl7aWYoKDB8bSk+PSgwfHBlKSl7bT0wO2JyZWFrfWZv''@;'; + put 'put ''cihfWyhrPWMrKChiPSh3PXAtbXwwKS0yfDApPDwzKXwwKT4+M109QT0rX1tmKyhiPDwzKT4+M10sTT0wfEFyKGIscCksdz13Ky0xfDA7ISgoMHx3KT49KDB8cCkpOylfW2s+PjNdPUxlPUEtK19bYysodzw8Myk+PjNdKitfW2wrKHcrTTw8Myk+PjNdLHc9dysxfDAsQT1MZTtfW2s+PjNdPUEv''@;'; + put 'put ''K19bbCsoTStiPDwzKT4+M10sbT1tKzF8MH1mb3IoOzspe2lmKCgwfG0pPj0oMHxwKSl7bT0wO2JyZWFrfV9bZisobTw8Myk+PjNdPStfW09lKyhtPDwzKT4+M10sbT1tKzF8MH1mb3IoOyEoKDB8bSk+PSgwfGdlKSk7KV9bbCsobTw8Myk+PjNdPStfW2JlKyhtPDwzKT4+M10sbT1tKzF8MDtG''@;'; + put 'put ''dChiZSksRnQoT2UpfTMzPT0oMHxEKSYmKGZ1bmN0aW9uIGZmZShsKXtsfD0wO3ZhciBwLG0sYz0wLGY9MDttPSgwfGFbNzYrKHA9MHxhWzE1Njc5XSk+PjJdKT4tMT8wfFJmKCk6MDtkb3tpZigoMHxfdShsLHApKTwwKWw9LTE7ZWxzZXtpZigxMCE9KDB8ZmVbcCs3NT4+MF0pJiYoZj0wfGFb''@;'; + put 'put ''KGM9cCsyMHwwKT4+Ml0pPj4+MDwoMHxhW3ArMTY+PjJdKT4+PjApe2FbYz4+Ml09ZisxLGZlW2Y+PjBdPTEwLGw9MDticmVha31sPSgwfFBqKHAsMTApKT4+MzF9fXdoaWxlKDApOzB8bSYmZTMoKX0oOTM5ODkpLEZ0KGJlKSxGdChPZSkpfShBLDE4NTgxNiwxODU3MzYsdyksbT0wOyEoKDB8''@;'; + put 'put ''bSk+PSgwfGFbNDcxMzddKSk7KXA9MiooMS0ocD0rX1syMzI5Nl0pKSorcWMoKStwLF9bKHc9MTg1ODE2KyhtPDwzKXwwKT4+M109cCo9K19bdz4+M10sX1sodz0oMHxhWzEzMisoMHxhW2s+PjJdKT4+Ml0pKyhtPDwzKXwwKT4+M109K19bdz4+M10rcCxtPW0rMXwwO2FbKGs9MTU2KygwfGFb''@;'; + put 'put ''Yj4+Ml0pfDApPj4yXT0xKygwfGFbaz4+Ml0pLGZ1bmN0aW9uIG5WKGwsYyxmKXtjfD0wO3ZhciBiLGssTSxwPTAsbT0wLEE9MCx3PTAsRD0wLFI9MCxHPTAsSz0wLHBlPTAsZ2U9MDtmb3IoTT1sZSxsZT1sZSs4MHwwLGs9TSxBPTB8YVsoMHxhWzE1MisobT0wfGFbKGI9MTYrKGx8PTApfDAp''@;'; + put 'put ''Pj4yXSk+PjJdKSsoKGZ8PTApPDwyKT4+Ml0scD0wfGFbNDcxMzddLG09bSsxNjh8MCxsPTA7ISgoMHxsKT49KDB8cCkpOylfWygwfGFbKDB8YVttPj4yXSkrKGY8PDIpPj4yXSkrKGw8PDMpPj4zXT0wLGw9bCsxfDA7Zm9yKG09QSsxNnwwLGw9MDshKCgwfGwpPj0oMHxjKSk7KXtlOmRve2lm''@;'; + put 'put ''KCgwfGwpIT0oMHxmKSlmb3Iodz0rV0ooMHxhWzEzMisoMHxhW20+PjJdKT4+Ml0sMHxhWzEzMisoMHxhWzE2KygwfGFbKDB8YVsxNTIrKDB8YVtiPj4yXSk+PjJdKSsobDw8Mik+PjJdKT4+Ml0pPj4yXSxrKSxBPTB8YVs0NzEzN10sdz0xL3cscD0wOzspe2lmKCgwfHApPj0oMHxBKSlicmVh''@;'; + put 'put ''ayBlO19bKHBlPSgwfGFbKDB8YVsoSz0wfGFbMTcyKyhEPTB8YVtiPj4yXSk+PjJdKSsoZjw8Mik+PjJdKSsobDw8Mik+PjJdKSsocDw8Myl8MCk+PjNdPVI9KChSPStfW2srKHA8PDMpPj4zXSktK19bKDB8YVsoMHxhW0QrMTYwPj4yXSkrKGY8PDIpPj4yXSkrKGw8PDMpPj4zXSpSKncpKitf''@;'; + put 'put ''WygwfGFbKDB8YVtEKzE2ND4+Ml0pKyhmPDwyKT4+Ml0pKyhsPDwzKT4+M10sX1soZ2U9KDB8YVsoRD0wfGFbRCsxNjg+PjJdKSsoZjw8Mik+PjJdKSsocDw8Myl8MCk+PjNdPStfW2dlPj4zXStSLFI9K19bKEs9KDB8YVsoMHxhW0srKGw8PDIpPj4yXSkrKGY8PDIpPj4yXSkrKHA8PDMpfDAp''@;'; + put 'put ''Pj4zXSxfW0s+PjNdPUc9LStfW3BlPj4zXSxfWyhEPSgwfGFbRCsobDw8Mik+PjJdKSsocDw8Myl8MCk+PjNdPUctUisgK19bRD4+M10scD1wKzF8MH19d2hpbGUoMCk7bD1sKzF8MH1sZT1NfShsLGMsTSksbGU9Un1mdW5jdGlvbiByVihsKXt2YXIgZixBLGM9MCxwPTAsbT0wLHc9MCxiPTA7''@;'; + put 'put ''Zm9yKEE9MHxhWzQ2ODAwXSxjPTB8YVsxMjQrKDB8YVsoZj0xNisobHw9MCl8MCk+PjJdKT4+Ml07ISgoMHxjKTw9MHx8KHc9KGMrLTF8MCkvMnwwLGI9QSsodzw8Mil8MCxwPTB8YVtiPj4yXSxtPXArMTZ8MCwrX1sxMzYrKDB8YVttPj4yXSk+PjNdPD0rX1sxMzYrKDB8YVtmPj4yXSk+PjNd''@;'; + put 'put ''KSk7KWFbYj4+Ml09bCxhWzEyNCsoMHxhW2Y+PjJdKT4+Ml09dyxhW0ErKGM8PDIpPj4yXT1wLGFbMTI0KygwfGFbbT4+Ml0pPj4yXT1jLGM9d31mdW5jdGlvbiBpVihsKXt2YXIgYyxmOygwfGFbKGM9MTI0KygwfGFbMTYrKGx8PTApPj4yXSl8MCk+PjJdKT49MCYmUHIoOTAzNzcsOTAzOTcs''@;'; + put 'put ''NjQzLDkwNDA1KSxhWzQ2ODAxXT0xKyhmPTB8YVs0NjgwMV0pLGFbYz4+Ml09ZixhWygwfGFbNDY4MDBdKSsoZjw8Mik+PjJdPWwsKDB8Zik+MCYmclYobCl9ZnVuY3Rpb24gWEooKXt2YXIgYyxsPTAsZj0wLHA9MDtyZXR1cm4oYz0wfGFbNDY4MDFdKT8obD0wfGFbKHA9MHxhWzQ2ODAwXSk+''@;'; + put 'put ''PjJdLGFbNDY4MDFdPWY9YystMXwwLGFbcD4+Ml09Zj0wfGFbcCsoZjw8Mik+PjJdLGFbMTI0KygwfGFbZisxNj4+Ml0pPj4yXT0wLCgwfGMpPjImJmZ1bmN0aW9uIHBzZShsKXt2YXIgdyxiLGssYz0wLGY9MCxwPTAsbT0wLEE9MCxNPTA7Zm9yKGI9MHxhWzQ2ODAxXSxrPTB8YVs0NjgwMF0s''@;'; + put 'put ''QT0wfGFbMTI0KygwfGFbKHc9MTYrKGx8PTApfDApPj4yXSk+PjJdOyEoKDB8KHA9QTw8MXwxKSk+PSgwfGIpfHwoZj1wKzF8MCwoMHxmKTwoMHxiKT8obT0wfGFbaysoZjw8Mik+PjJdLGM9MHxhW2srKHA8PDIpPj4yXSwrX1sxMzYrKDB8YVttKzE2Pj4yXSk+PjNdPCtfWzEzNisoMHxhW2Mr''@;'; + put 'put ''MTY+PjJdKT4+M10/KHA9ZixjPW0pOk09Nik6KGM9MHxhW2srKHA8PDIpPj4yXSxNPTYpLDY9PSgwfE0pJiYoTT0wKSxmPWMrMTZ8MCwrX1sxMzYrKDB8YVt3Pj4yXSk+PjNdPD0rX1sxMzYrKDB8YVtmPj4yXSk+PjNdKSk7KWFbaysocDw8Mik+PjJdPWwsYVsxMjQrKDB8YVt3Pj4yXSk+PjJd''@;'; + put 'put ''PXAsYVtrKyhBPDwyKT4+Ml09YyxhWzEyNCsoMHxhW2Y+PjJdKT4+Ml09QSxBPXB9KGYpLGFbMTI0KygwfGFbbCsxNj4+Ml0pPj4yXT0tMSk6bD0wLDB8bH1mdW5jdGlvbiBLSihsLGMpe3ZhciBwO2ZvcihsfD0wLHA9bGUsbGU9bGUrMTZ8MCxhWzQ2ODAwXT0wfHZyKDQrKChjfD0wKTw8Mil8''@;'; + put 'put ''MCksYz0wfER0KGwpO2M7KSRKKGwsYyksYz0wfHp0KGwsYyk7RnQoMHxhWzQ2ODAwXSksbGU9cH1mdW5jdGlvbiAkSihsLGMpe2N8PTA7dmFyIGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MDtmb3IocD0wfGFbMTUyKygwfGFbMTYrKGx8PTApPj4yXSk+PjJdLG09K19bMjMyOTVdLGY9MDtB''@;'; + put 'put ''PTB8YVtwKyhmPDwyKT4+Ml07KV9bMTM2KygwfGFbQSsxNj4+Ml0pPj4zXT1tLGY9ZisxfDA7YVs0NjgwMl09YyxfWzEzNisoaz0wfGFbYysxNj4+Ml0pPj4zXT0wLGFbaysxMjg+PjJdPTAsaVYoYyk7ZTpmb3IoO2s9MHxYSigpLGs7KWZvcihmPTB8YVs0NjgwMl0sYj1rKzE2fDAsKDB8aykh''@;'; + put 'put ''PSgwfGYpJiZ3dmUobCxmLGssK19bMTM2KygwfGFbYj4+Ml0pPj4zXSksdz0wfFNzKGwsayk7Oyl7aWYoIXcpY29udGludWUgZTsoMHwoYz0wfGFbKDM9PSgwfChmPTMmYVt3Pj4yXSkpP3c6dys0OHwwKSs0MD4+Ml0pKT09KDB8aykmJihjPTB8YVsoMj09KDB8Zik/dzp3Ky00OHwwKSs0MD4+''@;'; + put 'put ''Ml0pLG09K19bMTM2KygwfGFbdysxNj4+Ml0pPj4zXSsgK19bMTM2KyhmPTB8YVtiPj4yXSk+PjNdLEE9MTM2KyhwPTB8YVtjKzE2Pj4yXSl8MDtkb3tpZigrX1tBPj4zXT5tKXtpZihfW0E+PjNdPW0sKDB8YVtwKzEyND4+Ml0pPi0xKXtyVihjKTticmVha31hW3ArMTI4Pj4yXT0xKygwfGFb''@;'; + put 'put ''ZisxMjg+PjJdKSxpVihjKTticmVha319d2hpbGUoMCk7dz0wfE5zKGwsdyxrKX19ZnVuY3Rpb24gd3ZlKGwsYyxmLHApe19bKDB8YVsobD0wfGFbMTYwKygwfGFbMTYrKGx8PTApPj4yXSk+PjJdKSsoKGY9MHxhWzEyMCsoMHxhWzE2KyhmfD0wKT4+Ml0pPj4yXSk8PDIpPj4yXSkrKChjPTB8''@;'; + put 'put ''YVsxMjArKDB8YVsxNisoY3w9MCk+PjJdKT4+Ml0pPDwzKT4+M109cD0rcCxfWygwfGFbbCsoYzw8Mik+PjJdKSsoZjw8Myk+PjNdPXB9ZnVuY3Rpb24gZ3NlKGwpe3ZhciBjO2gwKGx8PTAsMTM3NDYwLDE3NiwxKSxMNyhsKSxjPStNbChsLDB8YVs0NzE3NF0sMSwwKSxfWzEyOCsoMHxhW2wr''@;'; + put 'put ''MTY+PjJdKT4+M109Y31mdW5jdGlvbiB2c2UobCxjKXtjfD0wO3ZhciBmPTA7Zm9yKGY9MHxEdChsfD0wKTs7KXtpZighZil7Zj0wO2JyZWFrfWlmKCgwfHQxKDB8SG8oZixjKSkpPDwyND4+MjQpYnJlYWs7Zj0wfHp0KGwsZil9cmV0dXJuIDB8Zn1mdW5jdGlvbiB0WChsLGMpe2x8PTA7dmFy''@;'; + put 'put ''IEEsYixmPTAscD0wLG09MCx3PTA7Zm9yKGI9bGUsbGU9bGUrMTZ8MCxBPWIsKHc9MD09KDB8KGN8PTApKSkmJihmdW5jdGlvbiBNdmUobCl7YVsobHw9MCk+PjJdPTAsYVtsKzQ+PjJdPTAsYVtsKzg+PjJdPTB9KEEpLGM9QSksZj0wfHlzKGwpO2Y7KTB8czIoMHx0aShmKSwxMDgwMDYsNyk/''@;'; + put 'put ''dFgoZixjKTooaDAoZiwxMzc0ODMsMjgwLDEpLG5YKGMsZiksdFgoZiwwKSksZj0wfE1zKGYpO3cmJihhWzE4MCsoMHxhWyhtPWwrMTZ8MCk+PjJdKT4+Ml09cD0wfGFbQSs4Pj4yXSwwfHApJiYodz0wfFYwKDB8YVtBPj4yXSw0KyhwPDwyKXwwKSxhWzE4NCsoMHxhW20+PjJdKT4+Ml09dyks''@;'; + put 'put ''bGU9Yn1mdW5jdGlvbiBvVihsKXtrYyhsfD0wLDEwODIzMCwxMDgyMzYpfWZ1bmN0aW9uIFN2ZShsKXtoMChsfD0wLDEzNzQ2MCwzMDQsMSl9ZnVuY3Rpb24gblgobCxjKXtjfD0wO3ZhciBwLG0sQSx3LGY9MDthWyhBPTgrKGx8PTApfDApPj4yXT1mPTErKDB8YVtBPj4yXSl8MCxtPTEwKyh3''@;'; + put 'put ''PTB8YVsocD1sKzR8MCk+PjJdKXwwLCgwfGYpPCgwfHcpP2w9MHxhW2w+PjJdOihhW3A+PjJdPW0sZj0wfFYwKDB8YVtsPj4yXSxtPDwyKSxhW2w+PjJdPWYsbD1mLGY9MHxhW0E+PjJdKSxhW2wrKGY8PDIpPj4yXT1jfWZ1bmN0aW9uIHJYKGwsYyl7bHw9MDt2YXIgQSxiLGY9MCxwPTAsbT0w''@;'; + put 'put ''LHc9MDtmb3IoYj1sZSxsZT1sZSsxNnwwLEE9Yiwodz0wPT0oMHwoY3w9MCkpKSYmKGZ1bmN0aW9uIG9YKGwpe2FbKGx8PTApPj4yXT0wLGFbbCs0Pj4yXT0wLGFbbCs4Pj4yXT0wfShBKSxjPUEpLGY9MHx5cyhsKTtmOykwfHMyKDB8dGkoZiksMTA4MDA2LDcpP3JYKGYsYyk6KGgwKGYsMTM3''@;'; + put 'put ''NDgzLDI4MCwxKSxmayhmKSxfc2UoYyxmKSxyWChmLDApKSxmPTB8TXMoZik7dyYmKGFbMTgwKygwfGFbKG09bCsxNnwwKT4+Ml0pPj4yXT1wPTB8YVtBKzg+PjJdLDB8cCkmJih3PTB8VjAoMHxhW0E+PjJdLDQrKHA8PDIpfDApLGFbMTg0KygwfGFbbT4+Ml0pPj4yXT13KSxsZT1ifWZ1bmN0''@;'; + put 'put ''aW9uIHdzZShsLGMpe3ZhciBMZSxSZSxzdCxFdCxadCxjdCxidCxhbixTbixIbixmcixXZSxrdCxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLEs9MCxwZT0wLGdlPTAsYmU9MCxPZT0wLHFlPTAsbnQ9MCxvdD0wLFN0PTAsSHI9MCxFcj0wO2Zvcihmcj1sZSxs''@;'; + put 'put ''ZT1sZSs0NDh8MCxFdD1mcis0MDB8MCxzdD1mciszODR8MCxFcj1mciszNDR8MCxIcj1mciszMDR8MCxTdD1mcisxOTJ8MCxSPWZyKzcyfDAsZj1mcis2NHwwLGN0PWZyKzMyfDAsYnQ9ZnIsV2U9ZnIrNDE2fDAsT2U9ZnIrMzI4fDAsUmU9ZnIrMjg4fDAsYW49ZnIrMjMyfDAsU249ZnIrMTc2''@;'; + put 'put ''fDAsSG49ZnIrMTM2fDAsWnQ9ZnIrODB8MCxEPTB8YVs2MCsobHw9MCk+PjJdLGt0PWwrMTZ8MCxtPTErKGN8PTApfDAsZj0xLHA9MDshKCgwfGYpPigwfGFbMTgwKyhBPTB8YVtrdD4+Ml0pPj4yXSkpOyl3c2Uob3Q9MHxhWygwfGFbQSsxODQ+PjJdKSsoZjw8Mik+PjJdLG0pLGY9ZisxfDAs''@;'; + put 'put ''cD0oMHxHbyhvdCkpK3B8MDtpZihHPSgwfEdvKGwpKS1wfDAsKExlPTA9PSgwfChvdD0oMHxhWzE4MCsoZj0wfGFba3Q+PjJdKT4+Ml0pK0d8MCkpKSYmMD09KDB8YVtmKzEyPj4yXSkpYVsoRXI9ZisxNnwwKT4+Ml09MCxhW0VyKzQ+PjJdPTAsYVtFcis4Pj4yXT0wLGFbRXIrMTI+PjJdPTAs''@;'; + put 'put ''X1tmKzQwPj4zXT0xOCxfW2YrMzI+PjNdPTE4O2Vsc2V7Zj1XZSsxNnwwO2Rve2lmKCgwfGE3KGwsNCw0LFdlKSk+Pj4wPj0zKXtpZig0PT0oMHxhW2Y+PjJdKSYmMCE9KDImYVtXZSsyOD4+Ml18MCkpe2lmKDAhPSgwfChwPTB8c2koRCwwLDk5MTkwLDApKSl8MCE9KDB8KGY9MHxzaShELDEs''@;'; + put 'put ''OTkxOTAsMCkpKSl7YVtXZSsyND4+Ml09MHx2cihvdDw8Mik7YnJlYWt9YVtSPj4yXT0wfHRpKGwpLCRyKDAsOTA1NzcsUiksZj0wLHA9MDticmVha31mPTAscD0wfWVsc2UgYVtmPj4yXT0zLGY9MCxwPTB9d2hpbGUoMCk7Zm9yKHFlPTB8dnIob3Q8PDUpLG50PTB8dnIob3Q8PDIpLGdlPVdl''@;'; + put 'put ''KzI0fDAsRD0wIT0oMHxwKSxwZT0wLEE9MTshKCgwfEEpPigwfGFbMTgwKyhtPTB8YVtrdD4+Ml0pPj4yXSkpOylhWyhiZT1xZSsocGU8PDUpfDApPj4yXT1hWyhLPTE2KygwfGFbMTYrKG09MHxhWygwfGFbbSsxODQ+PjJdKSsoQTw8Mik+PjJdKT4+Ml0pfDApPj4yXSxhW2JlKzQ+PjJdPWFb''@;'; + put 'put ''Sys0Pj4yXSxhW2JlKzg+PjJdPWFbSys4Pj4yXSxhW2JlKzEyPj4yXT1hW0srMTI+PjJdLGFbYmUrMTY+PjJdPWFbSysxNj4+Ml0sYVtiZSsyMD4+Ml09YVtLKzIwPj4yXSxhW2JlKzI0Pj4yXT1hW0srMjQ+PjJdLGFbYmUrMjg+PjJdPWFbSysyOD4+Ml0sRCYwIT0oMHxhW2dlPj4yXSkmJihi''@;'; + put 'put ''ZT0wfGVzKG0scCwwLDApLGFbKDB8YVtnZT4+Ml0pKyhwZTw8Mik+PjJdPWJlKSxhW250KyhwZTw8Mik+PjJdPW0scGU9cGUrMXwwLEE9QSsxfDA7ZTpkb3tpZigoMHxHKT4wKWZvcihSPWN0KzE2fDAsRz1jdCsyNHwwLEs9MCE9KDB8ZiksRD0wfER0KGwpLHA9cGU7Oyl7aWYoIUQpYnJlYWsg''@;'; + put 'put ''ZTswfGFbKEE9MTEyKyhtPTB8YVtEKzE2Pj4yXSl8MCk+PjJdfHwoYVtBPj4yXT1sLGFbY3Q+PjJdPTAsYVtjdCs0Pj4yXT0wLGFbY3QrOD4+Ml09MCxhW2N0KzEyPj4yXT0wLF9bUj4+M109K19bbSs5Nj4+M10rICtfW20rODg+PjNdLF9bRz4+M109K19bbSs4MD4+M10sYVsoYmU9cWUrKHA8''@;'; + put 'put ''PDUpfDApPj4yXT1hW2N0Pj4yXSxhW2JlKzQ+PjJdPWFbY3QrND4+Ml0sYVtiZSs4Pj4yXT1hW2N0Kzg+PjJdLGFbYmUrMTI+PjJdPWFbY3QrMTI+PjJdLGFbYmUrMTY+PjJdPWFbY3QrMTY+PjJdLGFbYmUrMjA+PjJdPWFbY3QrMjA+PjJdLGFbYmUrMjQ+PjJdPWFbY3QrMjQ+PjJdLGFbYmUr''@;'; + put 'put ''Mjg+PjJdPWFbY3QrMjg+PjJdLEsmMCE9KDB8YVtnZT4+Ml0pJiYoYmU9MHxlcyhELGYsMCwwKSxhWygwfGFbZ2U+PjJdKSsocDw8Mik+PjJdPWJlKSxhW250KyhwPDwyKT4+Ml09RCxwPXArMXwwKSxEPTB8enQobCxEKX19d2hpbGUoMCk7Zm9yKGJlPTB8ZnVuY3Rpb24gc1cobCxjLGYpe2x8''@;'; + put 'put ''PTAsY3w9MCxmfD0wO2U6ZG97aWYoKDB8bCk8MSlsPTA7ZWxzZSBzd2l0Y2goMHxhW2YrMTY+PjJdKXtjYXNlIDQ6bD0wfGlXKGwsYyxmKTticmVhayBlO2Nhc2UgMzpsPTB8dVcobCxjLGYpO2JyZWFrIGU7ZGVmYXVsdDpsPTA7YnJlYWsgZX19d2hpbGUoMCk7cmV0dXJuIDB8bH0ob3QscWUs''@;'; + put 'put ''V2UpLDB8KGY9MHxhW2dlPj4yXSkmJkZ0KGYpLGlYKGJ0LDIxNDc0ODM2NDcsMjE0NzQ4MzY0NyksZ2U9YnQrMTZ8MCxpWChPZSwtMjE0NzQ4MzY0NywtMjE0NzQ4MzY0NyksYVtnZT4+Ml09YVtPZT4+Ml0sYVtnZSs0Pj4yXT1hW09lKzQ+PjJdLGFbZ2UrOD4+Ml09YVtPZSs4Pj4yXSxhW2dl''@;'; + put 'put ''KzEyPj4yXT1hW09lKzEyPj4yXSxBPWN0KzE2fDAsRD1jdCs4fDAsUj1jdCsyNHwwLEc9YnQrOHwwLEs9YnQrMjR8MCxwZT0wfGFbMTU3MTJdLGY9MDshKCgwfGYpPj0oMHxvdCkpOyliPSsoMHxhW2JlKyhmPDwzKT4+Ml0pLE09KygwfGFbYmUrKGY8PDMpKzQ+PjJdKSxhW2N0Pj4yXT1hWyhw''@;'; + put 'put ''PXFlKyhmPDw1KXwwKT4+Ml0sYVtjdCs0Pj4yXT1hW3ArND4+Ml0sYVtjdCs4Pj4yXT1hW3ArOD4+Ml0sYVtjdCsxMj4+Ml09YVtwKzEyPj4yXSxhW2N0KzE2Pj4yXT1hW3ArMTY+PjJdLGFbY3QrMjA+PjJdPWFbcCsyMD4+Ml0sYVtjdCsyND4+Ml09YVtwKzI0Pj4yXSxhW2N0KzI4Pj4yXT1h''@;'; + put 'put ''W3ArMjg+PjJdLF9bY3Q+PjNdPXc9K19bY3Q+PjNdK2IsX1tBPj4zXT1iPStfW0E+PjNdK2IsX1tEPj4zXT1rPStfW0Q+PjNdK00sX1tSPj4zXT1NPStfW1I+PjNdK00sX1tidD4+M109K19bKCtfW2J0Pj4zXTx3P2J0OmN0KT4+M10sX1tHPj4zXT0rX1soK19bRz4+M108az9idDpjdCkrOD4+''@;'; + put 'put ''M10sX1tnZT4+M109K19bKCtfW2dlPj4zXT5iP2J0OmN0KSsxNj4+M10sX1tLPj4zXT0rX1soK19bSz4+M10+TT9idDpjdCkrMjQ+PjNdLG09MTYrKHA9MHxhW250KyhmPDwyKT4+Ml0pfDAsKDB8Zik8KDB8YVsxODArKDB8YVtrdD4+Ml0pPj4yXSk/KGFbKE9lPTE2KygwfGFbbT4+Ml0pfDAp''@;'; + put 'put ''Pj4yXT1hW2N0Pj4yXSxhW09lKzQ+PjJdPWFbY3QrND4+Ml0sYVtPZSs4Pj4yXT1hW2N0Kzg+PjJdLGFbT2UrMTI+PjJdPWFbY3QrMTI+PjJdLGFbT2UrMTY+PjJdPWFbY3QrMTY+PjJdLGFbT2UrMjA+PjJdPWFbY3QrMjA+PjJdLGFbT2UrMjQ+PjJdPWFbY3QrMjQ+PjJdLGFbT2UrMjg+PjJd''@;'; + put 'put ''PWFbY3QrMjg+PjJdKTooT2U9MTYrKDB8YVttPj4yXSl8MCxhW3N0Pj4yXT1hW2N0Pj4yXSxhW3N0KzQ+PjJdPWFbY3QrND4+Ml0sYVtzdCs4Pj4yXT1hW2N0Kzg+PjJdLGFbc3QrMTI+PjJdPWFbY3QrMTI+PjJdLGFbRXQ+PjJdPWFbQT4+Ml0sYVtFdCs0Pj4yXT1hW0ErND4+Ml0sYVtFdCs4''@;'; + put 'put ''Pj4yXT1hW0ErOD4+Ml0sYVtFdCsxMj4+Ml09YVtBKzEyPj4yXSxic2UoUmUsc3QsRXQpLGFbT2U+PjJdPWFbUmU+PjJdLGFbT2UrND4+Ml09YVtSZSs0Pj4yXSxhW09lKzg+PjJdPWFbUmUrOD4+Ml0sYVtPZSsxMj4+Ml09YVtSZSsxMj4+Ml0pLGY9ZisxfDA7Zm9yKDB8KGY9MHxhWzEyKyhw''@;'; + put 'put ''PTB8YVtrdD4+Ml0pPj4yXSkmJih3PStfW2YrMjQ+PjNdLExlPyhiPStfW2YrMzI+PjNdLGFbYnQ+PjJdPTAsYVtidCs0Pj4yXT0wLGFbYnQrOD4+Ml09MCxhW2J0KzEyPj4yXT0wLF9bZ2U+PjNdPXcsX1tLPj4zXT1iLGI9MCxrPXcpOihiPStfW2J0Pj4zXSxrPStfW2dlPj4zXSksdz0uNSoo''@;'; + put 'put ''TT13LShrLWIpKSxNPjAmJihfW2J0Pj4zXT1iLXcsX1tnZT4+M109ayt3KSksX1tidD4+M109Yj0rX1tidD4+M10tKHc9KDB8Yyk+MD8uNSorKCgwfGFbV2UrOD4+Ml0pPj4+MCk6MCksX1tnZT4+M109az0rX1tnZT4+M10rdyxfW0c+PjNdPU09LXctK19bcCs1Nj4+M10rICtfW0c+PjNdLF9b''@;'; + put 'put ''Sz4+M109dz0rX1twKzg4Pj4zXSt3KyArX1tLPj4zXSxmPTA7ISgoMHxmKT49KDB8b3QpKTspbT0xNisocD0wfGFbbnQrKGY8PDIpPj4yXSl8MCwoMHxmKTwoMHxhWzE4MCsoMHxhW2t0Pj4yXSk+PjJdKT8oYVtjdD4+Ml09YVsoU3Q9MTYrKDB8YVttPj4yXSl8MCk+PjJdLGFbY3QrND4+Ml09''@;'; + put 'put ''YVtTdCs0Pj4yXSxhW2N0Kzg+PjJdPWFbU3QrOD4+Ml0sYVtjdCsxMj4+Ml09YVtTdCsxMj4+Ml0sYVtjdCsxNj4+Ml09YVtTdCsxNj4+Ml0sYVtjdCsyMD4+Ml09YVtTdCsyMD4+Ml0sYVtjdCsyND4+Ml09YVtTdCsyND4+Ml0sYVtjdCsyOD4+Ml09YVtTdCsyOD4+Ml0sYVtzdD4+Ml09YVtT''@;'; + put 'put ''dD4+Ml0sYVtzdCs0Pj4yXT1hW1N0KzQ+PjJdLGFbc3QrOD4+Ml09YVtTdCs4Pj4yXSxhW3N0KzEyPj4yXT1hW1N0KzEyPj4yXSxhW0V0Pj4yXT1hW2J0Pj4yXSxhW0V0KzQ+PjJdPWFbYnQrND4+Ml0sYVtFdCs4Pj4yXT1hW2J0Kzg+PjJdLGFbRXQrMTI+PjJdPWFbYnQrMTI+PjJdLEg3KGN0''@;'; + put 'put ''LHN0LEV0KSxhW3N0Pj4yXT1hW0E+PjJdLGFbc3QrND4+Ml09YVtBKzQ+PjJdLGFbc3QrOD4+Ml09YVtBKzg+PjJdLGFbc3QrMTI+PjJdPWFbQSsxMj4+Ml0sYVtFdD4+Ml09YVtidD4+Ml0sYVtFdCs0Pj4yXT1hW2J0KzQ+PjJdLGFbRXQrOD4+Ml09YVtidCs4Pj4yXSxhW0V0KzEyPj4yXT1h''@;'; + put 'put ''W2J0KzEyPj4yXSxINyhhbixzdCxFdCksYVtBPj4yXT1hW2FuPj4yXSxhW0ErND4+Ml09YVthbis0Pj4yXSxhW0ErOD4+Ml09YVthbis4Pj4yXSxhW0ErMTI+PjJdPWFbYW4rMTI+PjJdLGFbKFN0PTE2KygwfGFbbT4+Ml0pfDApPj4yXT1hW2N0Pj4yXSxhW1N0KzQ+PjJdPWFbY3QrND4+Ml0s''@;'; + put 'put ''YVtTdCs4Pj4yXT1hW2N0Kzg+PjJdLGFbU3QrMTI+PjJdPWFbY3QrMTI+PjJdLGFbU3QrMTY+PjJdPWFbY3QrMTY+PjJdLGFbU3QrMjA+PjJdPWFbY3QrMjA+PjJdLGFbU3QrMjQ+PjJdPWFbY3QrMjQ+PjJdLGFbU3QrMjg+PjJdPWFbY3QrMjg+PjJdKTooYVtzdD4+Ml09YVsoU3Q9MTYrKDB8''@;'; + put 'put ''YVttPj4yXSl8MCk+PjJdLGFbc3QrND4+Ml09YVtTdCs0Pj4yXSxhW3N0Kzg+PjJdPWFbU3QrOD4+Ml0sYVtzdCsxMj4+Ml09YVtTdCsxMj4+Ml0sYVtFdD4+Ml09YVtidD4+Ml0sYVtFdCs0Pj4yXT1hW2J0KzQ+PjJdLGFbRXQrOD4+Ml09YVtidCs4Pj4yXSxhW0V0KzEyPj4yXT1hW2J0KzEy''@;'; + put 'put ''Pj4yXSxINyhTbixzdCxFdCksYVtTdD4+Ml09YVtTbj4+Ml0sYVtTdCs0Pj4yXT1hW1NuKzQ+PjJdLGFbU3QrOD4+Ml09YVtTbis4Pj4yXSxhW1N0KzEyPj4yXT1hW1NuKzEyPj4yXSksZj1mKzF8MDthW3N0Pj4yXT1hW2dlPj4yXSxhW3N0KzQ+PjJdPWFbZ2UrND4+Ml0sYVtzdCs4Pj4yXT1h''@;'; + put 'put ''W2dlKzg+PjJdLGFbc3QrMTI+PjJdPWFbZ2UrMTI+PjJdLGFbRXQ+PjJdPWFbYnQ+PjJdLGFbRXQrND4+Ml09YVtidCs0Pj4yXSxhW0V0Kzg+PjJdPWFbYnQrOD4+Ml0sYVtFdCsxMj4+Ml09YVtidCsxMj4+Ml0sSDcoSG4sc3QsRXQpLGFbZ2U+PjJdPWFbSG4+PjJdLGFbZ2UrND4+Ml09YVtI''@;'; + put 'put ''bis0Pj4yXSxhW2dlKzg+PjJdPWFbSG4rOD4+Ml0sYVtnZSsxMj4+Ml09YVtIbisxMj4+Ml0sYVtzdD4+Ml09YVtidD4+Ml0sYVtzdCs0Pj4yXT1hW2J0KzQ+PjJdLGFbc3QrOD4+Ml09YVtidCs4Pj4yXSxhW3N0KzEyPj4yXT1hW2J0KzEyPj4yXSxhW0V0Pj4yXT1hW2J0Pj4yXSxhW0V0KzQ+''@;'; + put 'put ''PjJdPWFbYnQrND4+Ml0sYVtFdCs4Pj4yXT1hW2J0Kzg+PjJdLGFbRXQrMTI+PjJdPWFbYnQrMTI+PjJdLEg3KFp0LHN0LEV0KSxhW2J0Pj4yXT1hW1p0Pj4yXSxhW2J0KzQ+PjJdPWFbWnQrND4+Ml0sYVtidCs4Pj4yXT1hW1p0Kzg+PjJdLGFbYnQrMTI+PjJdPWFbWnQrMTI+PjJdLGFbKEhy''@;'; + put 'put ''PTE2KygwfGFba3Q+PjJdKXwwKT4+Ml09YVtidD4+Ml0sYVtIcis0Pj4yXT1hW2J0KzQ+PjJdLGFbSHIrOD4+Ml09YVtidCs4Pj4yXSxhW0hyKzEyPj4yXT1hW2J0KzEyPj4yXSxhW0hyKzE2Pj4yXT1hW2J0KzE2Pj4yXSxhW0hyKzIwPj4yXT1hW2J0KzIwPj4yXSxhW0hyKzI0Pj4yXT1hW2J0''@;'; + put 'put ''KzI0Pj4yXSxhW0hyKzI4Pj4yXT1hW2J0KzI4Pj4yXSxGdChxZSksRnQobnQpLEZ0KGJlKX1sZT1mcn1mdW5jdGlvbiBhVihsLGMpe3ZhciBHLEsscGUsYmUsZj0wLHA9MCxtPTAsQT0wLHc9MCxrPTAsTT0wLEQ9MCxSPTAsT2U9MDtiZT1sZSxsZT1sZSs4MHwwLHc9YmUrOHwwLGY9YmUsRz0r''@;'; + put 'put ''X1sxNisoUj0wfGFbKHBlPTE2KyhsfD0wKXwwKT4+Ml0pPj4zXSxLPStfW1IrMjQ+PjNdLFI9MCE9KDB8KGN8PTApKTtlOmRve2lmKFIpZm9yKGY9MHxEdChsKSxwPTB8YVsxNTcxMl07Oyl7aWYoIWYpYnJlYWsgZTsoMHxhWzExMisoQT0wfGFbKG09ZisxNnwwKT4+Ml0pPj4yXSk9PSgwfGwp''@;'; + put 'put ''JiYoX1soT2U9QSsxNnwwKT4+M109K19bT2U+PjNdK0csX1soQT1BKzI0fDApPj4zXT0rX1tBPj4zXStLLCExKSYmKHE2KGMpLE9lPTB8dGkoZiksTT0rX1sxNisoQT0wfGFbbT4+Ml0pPj4zXSxEPStfW0ErMjQ+PjNdLGFbdz4+Ml09T2UsX1t3Kzg+PjNdPU0sX1t3KzE2Pj4zXT1ELFQwKHAs''@;'; + put 'put ''OTA1NDQsdykpLGY9MHx6dChsLGYpfWVsc2UgcD0wfGFbMTU3MTJdfXdoaWxlKDApO2Zvcih3PWMrMXwwLGw9MTshKCgwfGwpPigwfGFbMTgwKyhmPTB8YVtwZT4+Ml0pPj4yXSkpOylBPTB8YVsoMHxhW2YrMTg0Pj4yXSkrKGw8PDIpPj4yXSxSJiYoaz0rX1syNCsoZj0wfGFbKG09QSsxNnww''@;'; + put 'put ''KT4+Ml0pPj4zXStLLE09K19bZiszMj4+M10rRyxEPStfW2YrNDA+PjNdK0ssX1tmKzE2Pj4zXT0rX1tmKzE2Pj4zXStHLF9bZisyND4+M109ayxfW2YrMzI+PjNdPU0sX1tmKzQwPj4zXT1EKSxhVihBLHcpLGw9bCsxfDA7bGU9YmV9ZnVuY3Rpb24gcTYobCl7dmFyIGM7Zm9yKGx8PTAsYz0w''@;'; + put 'put ''fGFbMTU3MTJdOyEoKDB8bCk8PTApOylfdSg5MDU3NCxjKSxsPWwrLTF8MH1mdW5jdGlvbiBpWChsLGMsZil7Zj0rZixfWyhsfD0wKT4+M109Yz0rYyxfW2wrOD4+M109Zn1mdW5jdGlvbiBic2UobCxjLGYpe3ZhciBwO3A9LjUqKCtfWzgrKGZ8PTApPj4zXSsgK19bOCsoY3w9MCk+PjNdKSxf''@;'; + put 'put ''WyhsfD0wKT4+M109LjUqKCtfW2Y+PjNdKyArX1tjPj4zXSksX1tsKzg+PjNdPXB9ZnVuY3Rpb24gSDcobCxjLGYpe3ZhciBwO3A9K19bOCsoY3w9MCk+PjNdLStfWzgrKGZ8PTApPj4zXSxfWyhsfD0wKT4+M109K19bYz4+M10tK19bZj4+M10sX1tsKzg+PjNdPXB9ZnVuY3Rpb24gX3NlKGws''@;'; + put 'put ''Yyl7Y3w9MDt2YXIgcCxtLEEsdyxmPTA7YVsoQT04KyhsfD0wKXwwKT4+Ml09Zj0xKygwfGFbQT4+Ml0pfDAsbT0xMCsodz0wfGFbKHA9bCs0fDApPj4yXSl8MCwoMHxmKTwoMHx3KT9sPTB8YVtsPj4yXTooYVtwPj4yXT1tLGY9MHxWMCgwfGFbbD4+Ml0sbTw8MiksYVtsPj4yXT1mLGw9Zixm''@;'; + put 'put ''PTB8YVtBPj4yXSksYVtsKyhmPDwyKT4+Ml09Y31mdW5jdGlvbiBsWChsKXt2YXIgYyxmPTAscD0wO2ZvcihjPTE2KyhsfD0wKXwwLGw9MTtmPTB8YVsxODQrKHA9MHxhW2M+PjJdKT4+Ml0sISgoMHxsKT4oMHxhW3ArMTgwPj4yXSkpOylJYygwfGFbMTIrKDB8YVsxNisocD0wfGFbZisobDw8''@;'; + put 'put ''Mik+PjJdKT4+Ml0pPj4yXSksbFgocCksbD1sKzF8MDtGdChmKX1mdW5jdGlvbiBrc2UobCl7dmFyIGM7ZEQobHw9MCksYz0wfHZyKCgwfGhyWzE3NisoMHxhWzE2KygwfGNyKGwpKT4+Ml0pPj4xXSk8PDMpLGFbMTMyKygwfGFbbCsxNj4+Ml0pPj4yXT1jLHh5KGwsMSZhWzExNisoMHxhWzE2''@;'; + put 'put ''KygwfGNyKGwpKT4+Ml0pPj4yXSl9ZnVuY3Rpb24gU3NlKGwsYyl7Y3w9MDt2YXIgZixwPTA7aDAobHw9MCwxMzc0NjAsMTc2LDEpLHA9K01sKGwsMHxhWzQ3MTc0XSwxLDApLF9bMTI4KygwfGFbKGY9bCsxNnwwKT4+Ml0pPj4zXT1wLHA9K01sKGwsYywrX1sxMzcxXSwwKSxfWzEzNisoMHxh''@;'; + put 'put ''W2Y+PjJdKT4+M109cCxMNyhsKX1mdW5jdGlvbiBzWChsKXt2YXIgQSxjPTAsZj0wLHA9MCxtPTA7Zm9yKEE9MTYrKGx8PTApfDAsbT0xO2M9MHxhWzE4NCsocD0wfGFbQT4+Ml0pPj4yXSwhKCgwfG0pPigwfGFbcCsxODA+PjJdKSk7KUljKDB8YVsxMisoMHxhWyhjPTE2KyhwPTB8YVtjKyht''@;'; + put 'put ''PDwyKT4+Ml0pfDApPj4yXSk+PjJdKSwwfChmPTB8YVsxNDArKDB8YVtjPj4yXSk+PjJdKSYmKEZ0KDB8YVtmPj4yXSksRnQoMHxhWzE0MCsoMHxhW2M+PjJdKT4+Ml0pKSxzWChwKSxtPW0rMXwwO0Z0KGMpLCgwfGRpKGwpKSE9KDB8bCkmJkhpKGwsMTM3NDgzKX1mdW5jdGlvbiBFRChsLGMs''@;'; + put 'put ''Zil7bHw9MCxmfD0wO3ZhciBtLGIsayxNLHA9MCxBPTAsdz0wLEQ9MCxSPTAsRz0wO2ZvcihNPWxlLGxlPWxlKzE2fDAsYj1NLChrPTA9PSgwfChjfD0wKSkpJiYoZnVuY3Rpb24gTjcobCl7YVsobHw9MCk+PjJdPTAsYVtsKzQ+PjJdPTAsYVtsKzg+PjJdPTB9KGIpLGM9YiksbT1mKzE2fDAs''@;'; + put 'put ''cD0wfHlzKGwpO3A7KTB8czIoMHx0aShwKSwxMDgwMDYsNyk/RUQocCxjLGYpOihoMChwLDEzNzQ4MywyODAsMSksRD0wfHZyKDU2KSxhWzE0MCsoRz0wfGFbcCsxNj4+Ml0pPj4yXT1ELGl0W0crMTc2Pj4xXT0wfGl0WzE3NisoUj0wfGFbbT4+Ml0pPj4xXSxhW0QrNDQ+PjJdPTErKDB8YVs0''@;'; + put 'put ''NCsoMHxhW1IrMTQwPj4yXSk+PjJdKSxhW0QrNDg+PjJdPWYsbFYoYyxwKSxFRChwLDAscCkpLHA9MHxNcyhwKTtrJiYoYVsxODArKDB8YVsodz1sKzE2fDApPj4yXSk+PjJdPUE9MHxhW2IrOD4+Ml0sMHxBKSYmKEc9MHxWMCgwfGFbYj4+Ml0sNCsoQTw8Mil8MCksYVsxODQrKDB8YVt3Pj4y''@;'; + put 'put ''XSk+PjJdPUcpLGxlPU19ZnVuY3Rpb24gbFYobCxjKXtjfD0wO3ZhciBwLG0sQSx3LGY9MDthWyhBPTgrKGx8PTApfDApPj4yXT1mPTErKDB8YVtBPj4yXSl8MCxtPTEwKyh3PTB8YVsocD1sKzR8MCk+PjJdKXwwLCgwfGYpPCgwfHcpP2w9MHxhW2w+PjJdOihhW3A+PjJdPW0sZj0wfFYwKDB8''@;'; + put 'put ''YVtsPj4yXSxtPDwyKSxhW2w+PjJdPWYsbD1mLGY9MHxhW0E+PjJdKSxhW2wrKGY8PDIpPj4yXT1jfWZ1bmN0aW9uIHVWKGwsYyl7Y3w9MDt2YXIgayxNLFIsRyxwZSxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxEPTAsZ2U9MCxiZT0wLE9lPTAsTGU9MCxSZT0wO2ZvcihwZT1sZSxsZT1sZSs2''@;'; + put 'put ''NHwwLGY9cGUrNDB8MCxEPXBlKzU2fDAsTT1wZSs1MnwwLGs9cGUsZj0wfER0KGx8PTApO2Y7KWFbMTY0KygwfGFbZisxNj4+Ml0pPj4yXT0wLGY9MHx6dChsLGYpO2ZvcihSPTB8ZnVuY3Rpb24gSjEobCxjKXtsfD0wO3ZhciBELFIsRyxSZSxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAs''@;'; + put 'put ''TT0wLEs9MCxwZT0wLGdlPTAsYmU9MCxPZT0wLExlPTA7Zm9yKFJlPWxlLGxlPWxlKzE2MHwwLEs9UmUrMjR8MCxwZT1SZSs4fDAscD1SZSxmPVJlKzU2fDAsYVsoT2U9MTYrKGN8PTApfDApPj4yXT0xKyhMZT0wfGFbT2U+PjJdKSxhW0s+PjJdPUxlLG9vKGYsOTA3OTYsSyksZmVbSz4+MF09''@;'; + put 'put ''MHxmZVsxODU4OF0sZmVbSysxPj4wXT0wfGZlWzE4NTg5XSxmZVtLKzI+PjBdPTB8ZmVbMTg1OTBdLGZlW0srMz4+MF09MHxmZVsxODU5MV0saDAoTGU9MHxvYyg5MTE1NixLLDApLDEzNzQ4MywyODAsMSksYmU9MHx2cig1NiksYVsxNDArKE09MHxhWyhPZT1MZSsxNnwwKT4+Ml0pPj4yXT1i''@;'; + put 'put ''ZSxpdFtNKzE3Nj4+MV09MHxpdFsxNzYrKDB8YVsoYmU9bCsxNnwwKT4+Ml0pPj4xXSxmWChsLExlLDkyNTA3KSxmWChsLExlLDkzMTEyKSxmWChsLExlLDkxMjAyKSxNPWMrNHwwLEQ9SysxNnwwLFI9Sys4fDAsRz1LKzI0fDAsQT0wLGs9MTshKCgwfGspPigwfGFbMTgwKyhmPTB8YVtiZT4+''@;'; + put 'put ''Ml0pPj4yXSkpOyl7Zm9yKGFbSz4+Ml09YVszMzJdLGFbSys0Pj4yXT1hWzMzM10sYVtLKzg+PjJdPWFbMzM0XSxhW0srMTI+PjJdPWFbMzM1XSxhW0srMTY+PjJdPWFbMzM2XSxhW0srMjA+PjJdPWFbMzM3XSxhW0srMjQ+PjJdPWFbMzM4XSxhW0srMjg+PjJdPWFbMzM5XSxmayhwPTB8YVso''@;'; + put 'put ''MHxhW2YrMTg0Pj4yXSkrKGs8PDIpPj4yXSksbT0wfFRmKExlLDB8dGkocCkpLGFbMjEyKyhmPTB8YVsodz1tKzE2fDApPj4yXSk+PjJdPXAsYj1BKzF8MCxhW2YrMTIwPj4yXT1BLDB8YVtNPj4yXSYmT3ZlKHAsbSxjLEspLGY9MHxEdChwKTtmOylhWzE2NCsoMHxhW2YrMTY+PjJdKT4+Ml09''@;'; + put 'put ''bSxmPTB8enQocCxmKTswfGZlWzExOSsoZj0wfGFbdz4+Ml0pPj4wXSYmKF9bKHc9MHxhW2YrMTMyPj4yXSk+PjNdPS41KigrX1tEPj4zXSsgK19bSz4+M10pLF9bdys4Pj4zXT0uNSooK19bRz4+M10rICtfW1I+PjNdKSksQT1iLGs9aysxfDB9Zm9yKHc9MHxEdChsKTt3Oyl7aWYoMHxhWzE2''@;'; + put 'put ''NCsocD0wfGFbKGY9dysxNnwwKT4+Ml0pPj4yXSlmPUE7ZWxzZXtpZigwfChLPTB8YVsobT1wKzIxMnwwKT4+Ml0pJiYoMHxLKSE9KDB8YVs0OCsoMHxhWzE0MCsoMHxhW2JlPj4yXSk+PjJdKT4+Ml0pKXtnZT0xODticmVha31hW20+PjJdPWwsMHxmZVtwKzExOD4+MF0/Zj1BOihtPTB8VGYo''@;'; + put 'put ''TGUsMHx0aSh3KSksYVsxNjQrKHA9MHxhW2Y+PjJdKT4+Ml09bSxhWzEyMCsobT0wfGFbbSsxNj4+Ml0pPj4yXT1BLF9bbSszMj4+M109K19bcCszMj4+M10sX1ttKzQwPj4zXT0rX1twKzQwPj4zXSxfW20rODg+PjNdPStfW3ArODg+PjNdLF9bbSs5Nj4+M109K19bcCs5Nj4+M10sX1ttKzgw''@;'; + put 'put ''Pj4zXT0rX1twKzgwPj4zXSxhW20rOD4+Ml09YVtwKzg+PjJdLGFbbSsxMj4+Ml09YVtwKzEyPj4yXSwoZj0wfGZlW3ArMTE5Pj4wXSk8PDI0Pj4yNCYmKF9bKEs9MHxhW20rMTMyPj4yXSk+PjNdPStfWyhjPTB8YVtwKzEzMj4+Ml0pPj4zXSxfW0srOD4+M109K19bYys4Pj4zXSxmZVttKzEx''@;'; + put 'put ''OT4+MF09ZiksYVs4KygwfGFbbSsxMTI+PjJdKT4+Ml09dyxmPUErMXwwKX13PTB8enQobCx3KSxBPWZ9Zm9yKDE4PT0oMHxnZSkmJihjPTB8dGkodyksSz0wfHRpKGwpLGdlPTB8dGkoMHxhWzIxMisoMHxhW2Y+PjJdKT4+Ml0pLGFbcGU+PjJdPWMsYVtwZSs0Pj4yXT1LLGFbcGUrOD4+Ml09''@;'; + put 'put ''Z2UsJHIoMSw5MDgyNixwZSksemUoMTg3MjEyLDEpKSxiPTB8RHQobCk7Yjspe2ZvcihNPTE2KyhrPTB8YVsxNjQrKDB8YVtiKzE2Pj4yXSk+PjJdKXwwLG09MHx3MChsLGIpO207KSgwfChmPTB8YVsxNjQrKDB8YVsxNisoMHxhWygyPT0oMyZhW20+PjJdfDApP206bSstNDh8MCkrNDA+PjJd''@;'; + put 'put ''KT4+Ml0pPj4yXSkpIT0oMHxrKSYmKGgwKHc9Zj4+PjA+az4+PjA/MHxLYShMZSxrLGYsMCwxKTowfEthKExlLGYsaywwLDEpLDEzNzQ2MCwxNzYsMSksX1sxMzYrKGdlPTB8YVt3KzE2Pj4yXSk+PjNdPStfWzEzNisocD0wfGFbbSsxNj4+Ml0pPj4zXSxfW2dlKzEyOD4+M109K19bcCsxMjg+''@;'; + put 'put ''PjNdLGFbKHA9NCsoZj0wfGFbMTEyKygwfGFbZisxNj4+Ml0pPj4yXSl8MCk+PjJdPTErKDB8YVtwPj4yXSksYVsocGU9NCsocD0wfGFbMTEyKygwfGFbTT4+Ml0pPj4yXSl8MCk+PjJdPTErKDB8YVtwZT4+Ml0pLDB8YVtnZSsxNzI+PjJdfHwoYVtmPj4yXT0xKygwfGFbZj4+Ml0pLGFbcD4+''@;'; + put 'put ''Ml09MSsoMHxhW3A+PjJdKSksY1YodyxtKSksbT0wfFMwKGwsbSk7Yj0wfHp0KGwsYil9aWYoMHwocD0wfGFbKGY9MHxhWzE0MCsoMHxhW2JlPj4yXSk+PjJdKT4+Ml0pKXtmb3IobT0wfHZyKDE2KyhhW2YrND4+Ml08PDQpfDApLGFbYVsxNDArKDB8YVtPZT4+Ml0pPj4yXT4+Ml09bSxmPTA7''@;'; + put 'put ''MHxhW3A+PjJdOykoYj0wfGFbMTY0KygwfGFbMTYrKDB8YVtwKzQ+PjJdKT4+Ml0pPj4yXSkmJihSdmUobCxwKSxrPTB8VGYoTGUsMTkzNzcyKSxhWzEyMCsoMHxhWyhNPWsrMTZ8MCk+PjJdKT4+Ml09QSxoMCh3PWs+Pj4wPmI+Pj4wPzB8S2EoTGUsYixrLDAsMSk6MHxLYShMZSxrLGIsMCwx''@;'; + put 'put ''KSwxMzc0NjAsMTc2LDEpLF9bMTM2KyhiZT0wfGFbdysxNj4+Ml0pPj4zXT0rX1sxMzYrKHBlPTB8YVsxNisoZ2U9MHxhW3A+PjJdKT4+Ml0pPj4zXSxfW2JlKzEyOD4+M109K19bcGUrMTI4Pj4zXSxjVih3LGdlKSxhWyhiZT00KyhnZT0wfGFbMTEyKygwfGFbTT4+Ml0pPj4yXSl8MCk+PjJd''@;'; + put 'put ''PTErKDB8YVtiZT4+Ml0pLGFbKHBlPTQrKGJlPTB8YVsxMTIrKDB8YVtiKzE2Pj4yXSk+PjJdKXwwKT4+Ml09MSsoMHxhW3BlPj4yXSksYVtnZT4+Ml09MSsoMHxhW2dlPj4yXSksYVtiZT4+Ml09MSsoMHxhW2JlPj4yXSksYVttKzQ+PjJdPWssX1ttKzg+PjNdPStfW3ArOD4+M10sYVttPj4y''@;'; + put 'put ''XT13LGY9ZisxfDAsbT1tKzE2fDAsQT1BKzF8MCkscD1wKzE2fDA7YVs0KygwfGFbMTQwKygwfGFbT2U+PjJdKT4+Ml0pPj4yXT1mfXJldHVybiBsZT1SZSwwfExlfShsLGMpLEc9MHxmdW5jdGlvbiBQOWUobCxjLGYpe2N8PTAsZnw9MDt2YXIgayxNLEQsUixwPTAsbT0wLEE9MCx3PTAsYj0w''@;'; + put 'put ''LEc9MDtSPWxlLGxlPWxlKzE2MHwwLEQ9UisxNnwwLGI9Uis4fDAsbT1SLGs9UisyNHwwLE09MHx2cigwfEdvKGx8PTApKSxwPTB8YVthWzE0MCsoMHxhWyhBPWwrMTZ8MCk+PjJdKT4+Ml0+PjJdO2U6ZG97aWYocClmb3IoRz0wfHRpKGwpLHc9MHxhWzQ2OTIzXSxhW20+PjJdPUcsYVttKzQ+''@;'; + put 'put ''PjJdPXcsb28oayw5NDYxMixtKSx3PTB8ZHMobCxrLDEpLGgwKHcsMTM3NDgzLDI4MCwxKSxtPTB8dnIoNTYpLGFbMTQwKygwfGFbdysxNj4+Ml0pPj4yXT1tLGFbbT4+Ml09cCxhW20rND4+Ml09YVs0KygwfGFbMTQwKygwfGFbQT4+Ml0pPj4yXSk+PjJdOzspe2lmKCEobT0wfGFbcCs0Pj4y''@;'; + put 'put ''XSkpe209dyxwPTE7YnJlYWsgZX0wfGZlW00rKDB8YVsxMjArKDB8YVttKzE2Pj4yXSk+PjJdKT4+MF18fG5qKGwsbSx3LE0pLHA9cCsxNnwwfWVsc2UgbT0wLHA9MH13aGlsZSgwKTtmb3IoQT0wLHc9MHxEdChsKTt3OykwPT0oMHxmZVtNKygwfGFbMTIwKyhHPTB8YVt3KzE2Pj4yXSk+PjJd''@;'; + put 'put ''KT4+MF0pJiYzPT0oMHxmZVtHKzExOT4+MF0pJiYobXx8KEc9MHx0aShsKSxtPSgwfGFbNDY5MjNdKStwfDAsYVtiPj4yXT1HLGFbYis0Pj4yXT1tLG9vKGssOTQ2MTIsYiksaDAobT0wfGRzKGwsaywxKSwxMzc0ODMsMjgwLDEpLEc9MHx2cig1NiksYVsxNDArKDB8YVttKzE2Pj4yXSk+PjJd''@;'; + put 'put ''PUcscD1wKzF8MCksbmoobCx3LG0sTSksQT0xKSx3PTB8enQobCx3KTtmb3IoMHxtJiZ4QyhtKSxtPTB8RHQobCk7bTspMHxmZVtNKygwfGFbMTIwKygwfGFbbSsxNj4+Ml0pPj4yXSk+PjBdfHwoYj0wfHRpKGwpLEc9KDB8YVs0NjkyM10pK3B8MCxhW0Q+PjJdPWIsYVtEKzQ+PjJdPUcsb28o''@;'; + put 'put ''ayw5NDYyMCxEKSxoMChHPTB8ZHMobCxrLDEpLDEzNzQ4MywyODAsMSksYj0wfHZyKDU2KSxhWzE0MCsoMHxhW0crMTY+PjJdKT4+Ml09YixuaihsLG0sRyxNKSx4QyhHKSxwPXArMXwwKSxtPTB8enQobCxtKTtmb3IoRnQoTSksYVs0NjkyM109KDB8YVs0NjkyM10pK3AsMHxjJiYoYVtjPj4y''@;'; + put 'put ''XT1wKSwwfGYmJihhW2Y+PjJdPUEpLEE9dz0wfHZyKDQrKHA8PDIpfDApLG09MHx5cyhsKTttOylhW0E+PjJdPW0sQT1BKzR8MCxtPTB8TXMobSkscD1wKy0xfDA7cmV0dXJuIHA/KFByKDk0NjI4LDk0NjM5LDEzNCw5NDY0NiksMCk6KGFbQT4+Ml09MCxsZT1SLDB8dyl9KFIsRCxNKSxmPUc7''@;'; + put 'put ''Yj1mKzR8MCxwPTB8YVtmPj4yXTspe2ZvcihQdmUocCxrKSxmPTB8RHQocCk7ZjspbT0wfHp0KHAsZiksMHxhWzIxMisodz0wfGFbKEE9ZisxNnwwKT4+Ml0pPj4yXT8odVYoT2U9MHxUdmUoZixwKSxjKSxfWzMyKyh3PTB8YVtBPj4yXSk+PjNdPWJlPStfWzI0KyhPZT0wfGFbMTQwKygwfGFb''@;'; + put 'put ''T2UrMTY+PjJdKT4+Ml0pPj4zXSxfW3crNDA+PjNdPWdlPStfW09lKzMyPj4zXSxfW3crODg+PjNdPWJlKj0zNixfW3crOTY+PjNdPWJlLF9bdys4MD4+M109NzIqZ2UsZj1tKTooMHxhWzgrKDB8YVt3KzExMj4+Ml0pPj4yXXx8b2kocCxmKSxmPW0pOygwfEdvKHApKTw9MXx8KCgwfGFbYz4+''@;'; + put 'put ''Ml0pPT0oMHxsKSYmdTJlKHApLHBYKHAsaykpLGY9Yn1mb3IoKDB8KGY9MHxhW0Q+PjJdKSk8PTE/KDE9PSgwfGYpJiZpZygwfGFbRz4+Ml0pLGY9MCk6KDB8YVtNPj4yXT8ocD0wfHZyKGYpLGZlW3A+PjBdPTEsZj0wfGFbRD4+Ml0pOnA9MCxhW2MrNDA+PjJdPXAsZj0wfFVkKGYsRywwLGMr''@;'; + put 'put ''MjB8MCksRnQocCkpLGZ1bmN0aW9uIEl2ZShsLGMsZixwLG0sQSl7bHw9MCxmfD0wLHB8PTA7dmFyIEhlLFZlLHFlLG50LFdlLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxLPTAscGU9MCxnZT0wLGJlPTAsT2U9MCxMZT0wLFJlPTAsb3Q9MCxTdD0wLGt0PTAsc3Q9MCxFdD0wLFp0PTA7''@;'; + put 'put ''V2U9bGUsbGU9bGUrMzJ8MCxIZT1XZSsxNnwwLG50PVdlLE09MHxhWzgrKEF8PTApPj4yXSxiPTB8YVtBKzEyPj4yXSxWZT0oMHxhW0E+PjJdKT09KDB8KG18PTApKSxxZT0wIT0oMHwoY3w9MCkpO2U6ZG97aWYocWUpaWYoRz0wfGFbMTYrKDB8YVtmPj4yXSk+PjJdLGs9K19bRysxNj4+M10s''@;'; + put 'put ''TT1+fihrKyhrPj0wPy41Oi0uNSkpLGFbbnQ+PjJdPU0saz0rX1tHKzI0Pj4zXSxBPX5+KGsrKGs+PTA/LjU6LS41KSksT2U9bnQrNHwwLGFbT2U+PjJdPUEsaz0rX1tHKzMyPj4zXSxEPX5+KGsrKGs+PTA/LjU6LS41KSksTGU9bnQrOHwwLGFbTGU+PjJdPUQsaz0rX1tHKzQwPj4zXSxHPX5+''@;'; + put 'put ''KGsrKGs+PTA/LjU6LS41KSksUmU9bnQrMTJ8MCxhW1JlPj4yXT1HLCgwfGMpPjEpZm9yKEs9MHxhW3A+PjJdLGJlPTB8YVtwKzQ+PjJdLE09SytNfDAsYVtudD4+Ml09TSxjPWJlK0F8MCxhW09lPj4yXT1jLEQ9SytEfDAsYVtMZT4+Ml09RCxLPUhlKzR8MCxwZT1IZSs4fDAsZ2U9SGUrMTJ8''@;'; + put 'put ''MCxSPXAsQT1mLGJlPWJlK0d8MCxHPWM7Oyl7aWYoQT1BKzR8MCxiPVIrOHwwLGFbUmU+PjJdPWJlLCEoYz0wfGFbQT4+Ml0pKXtiPTAscGU9RyxnZT1iZTticmVhayBlfUV0PStfWzE2KyhrdD0wfGFbYysxNj4+Ml0pPj4zXSx3PStfW2t0KzI0Pj4zXSxrPStfW2t0KzMyPj4zXSxhW2dlPj4y''@;'; + put 'put ''XT1rdD1+figoWnQ9K19ba3QrNDA+PjNdKSsoWnQ+PTA/LjU6LS41KSksc3Q9MHxhW1IrMTI+PjJdLGFbSGU+PjJdPVN0PShjPTB8YVtiPj4yXSkrfn4oRXQrKEV0Pj0wPy41Oi0uNSkpfDAsYVtLPj4yXT1vdD1zdCt+fih3Kyh3Pj0wPy41Oi0uNSkpfDAsYVtwZT4+Ml09Yz1jK35+KGsrKGs+''@;'; + put 'put ''PTA/LjU6LS41KSl8MCxhW2dlPj4yXT1rdD1zdCtrdHwwLGFbbnQ+PjJdPVN0PTB8YVsoKDB8TSk8KDB8U3QpP250OkhlKT4+Ml0sYVtPZT4+Ml09b3Q9MHxhWygoMHxHKTwoMHxvdCk/bnQ6SGUpKzQ+PjJdLGFbTGU+PjJdPWM9MHxhWygoMHxEKT4oMHxjKT9udDpIZSkrOD4+Ml0sUj1iLGJl''@;'; + put 'put ''PTB8YVsoKDB8YmUpPigwfGt0KT9udDpIZSkrMTI+PjJdLE09U3QsRz1vdCxEPWN9ZWxzZSBiPTAscGU9QSxnZT1HO2Vsc2UgYVtudD4+Ml09MCxhW250KzQ+PjJdPTAsRD0wfGVzKG0sTSw1NCwzKSxhW250Kzg+PjJdPUQsZ2U9MHxlcyhtLGIsMzYsMyksYVtudCsxMj4+Ml09Z2UsYj0xLE09''@;'; + put 'put ''MCxwZT0wfXdoaWxlKDApOyhBPTB8YVsxMisoUj0wfGFbKGM9bSsxNnwwKT4+Ml0pPj4yXSk/KCgwfChBPU0tRCt+figoWnQ9K19bQSsyND4+M10pKyhadD49MD8uNTotLjUpKXwwKSk+MCYmKGFbbnQ+PjJdPU09TS0oQT4+Pj0xKXwwLGFbbnQrOD4+Ml09RD1EK0F8MCksQT0wKTpBPWIsVmV8''@;'; + put 'put ''MCE9KDB8QSk/KGI9MCxBPVIpOihiPTB8ZXMobCwwfGFbNDcxNDRdLDgsMCksQT0wfGFbYz4+Ml0pLEs9Yi1NfDAsRz1+figrX1tBKzU2Pj4zXSsgKyhiLXBlfDApKSxhW250Pj4yXT0wLGFbbnQrND4+Ml09MCxhW250Kzg+PjJdPVI9SytiK0R8MCxhW250KzEyPj4yXT1jPX5+KCtfW0ErODg+''@;'; + put 'put ''PjNdKyArKGIrR3wwKSsgKygwfGdlKSk7ZTpkb3tpZihxZSl7QT1wO3Q6Zm9yKDs7KXtpZihEPWYrNHwwLCEoYj0wfGFbZj4+Ml0pKWJyZWFrIGU7Zm9yKEE/KE09QSs4fDAsZj0oMHxhW0E+PjJdKStLfDAsQT0oMHxhW0ErND4+Ml0pK0d8MCk6KE09MCxmPUssQT1HKSxrPS4wMTM4ODg4ODg4''@;'; + put 'put ''ODg4ODg4ODgqKygwfGYpLHc9LjAxMzg4ODg4ODg4ODg4ODg4OCorKDB8QSksZj0wfER0KGIpOzspe2lmKCFmKXtmPUQsQT1NO2NvbnRpbnVlIHR9X1soc3Q9MHxhWzEzMisoMHxhW2YrMTY+PjJdKT4+Ml0pPj4zXT0rX1tzdD4+M10rayxfWyhzdD1zdCs4fDApPj4zXT0rX1tzdD4+M10rdyxm''@;'; + put 'put ''PTB8enQoYixmKX19fX13aGlsZSgwKTthWyhrdD04KyhzdD0wfGFbMTQwKygwfGFbbCsxNj4+Ml0pPj4yXSl8MCk+PjJdPTAsYVtrdCs0Pj4yXT0wLGFba3QrOD4+Ml09MCxhW2t0KzEyPj4yXT0wLF9bc3QrMjQ+PjNdPS4wMTM4ODg4ODg4ODg4ODg4ODgqKygwfFIpLF9bc3QrMzI+PjNdPS4w''@;'; + put 'put ''MTM4ODg4ODg4ODg4ODg4ODgqKygwfGMpLGxlPVdlfShSLDB8YVtEPj4yXSxHLGYsbCxjKSxGdChmKSxwPTB8RHQoUik7cDspKGY9MHxhWzIxMisobT0wfGFbcCsxNj4+Ml0pPj4yXSk/KF9bOCsoT2U9MHxhWzE0MCsoMHxhW2YrMTY+PjJdKT4+Ml0pPj4zXT1MZT0rX1soRD0wfGFbbSsxMzI+''@;'; + put 'put ''PjJdKT4+M10tLjUqKFJlPStfW20rMzI+PjNdKSxfW09lKzE2Pj4zXT1iZT0rX1tEKzg+PjNdLS41KihnZT0rX1ttKzQwPj4zXSksX1tPZSsyND4+M109UmUrTGUsX1tPZSszMj4+M109Z2UrYmUpOjB8KGY9MHxhWzgrKDB8YVttKzExMj4+Ml0pPj4yXSkmJihfWyhPZT0wfGFbMTMyKygwfGFb''@;'; + put 'put ''ZisxNj4+Ml0pPj4yXSk+PjNdPStfWyhEPTB8YVttKzEzMj4+Ml0pPj4zXSxfW09lKzg+PjNdPStfW0QrOD4+M10pLHA9MHx6dChSLHApO2FbKE9lPTgrKDB8YVsxNDArKDB8YVtsKzE2Pj4yXSk+PjJdKXwwKT4+Ml09YVsoRD04KygwfGFbMTQwKygwfGFbUisxNj4+Ml0pPj4yXSl8MCk+PjJd''@;'; + put 'put ''LGFbT2UrND4+Ml09YVtEKzQ+PjJdLGFbT2UrOD4+Ml09YVtEKzg+PjJdLGFbT2UrMTI+PjJdPWFbRCsxMj4+Ml0sYVtPZSsxNj4+Ml09YVtEKzE2Pj4yXSxhW09lKzIwPj4yXT1hW0QrMjA+PjJdLGFbT2UrMjQ+PjJdPWFbRCsyND4+Ml0sYVtPZSsyOD4+Ml09YVtEKzI4Pj4yXSxmdW5jdGlv''@;'; + put 'put ''biBEc2UobCxjKXtsfD0wLGN8PTA7Zm9yKHZhciBmPTAscD0wO2Y9MHxhW2M+PjJdOylmcyhmKSxIaShmLDEzNzQ4MyksYz1jKzR8MDtmb3IoMHwoYz0wfGFbYVsxNDArKDB8YVtsKzE2Pj4yXSk+PjJdPj4yXSkmJkZ0KGMpLGZzKGwpLEhpKGwsMTM3NDgzKSxmPTB8RHQobCk7Zjspe2Zvcihw''@;'; + put 'put ''PTB8enQobCxmKSxjPTB8dzAobCxmKTtjOylGdCgwfGFbMTcyKygwfGFbYysxNj4+Ml0pPj4yXSksSGkoYywxMzc0NjApLGM9MHxTMChsLGMpO0R2ZShmKSxmPXB9QzEobCl9KFIsRyksRnQoRyksbGU9cGV9ZnVuY3Rpb24gY1gobCxjKXt2YXIgbSxBLHcsZj0wLHA9MCxiPTAsaz0wLE09MCxE''@;'; + put 'put ''PTAsUj0wLEc9MCxLPTA7bT0rX1s4KyhiPTB8YVsxNDArKDB8YVsodz0xNisobHw9MCl8MCk+PjJdKT4+Ml0pPj4zXSxBPStfW2IrMTY+PjNdLGI9KDB8bCkhPSgwfChjfD0wKSk7ZTpkb3tpZihiKWZvcihmPTB8RHQobCk7Oyl7aWYoIWYpe2w9MTticmVhayBlfSgwfGFbMjEyKyhwPTB8YVtm''@;'; + put 'put ''KzE2Pj4yXSk+PjJdKT09KDB8bCkmJihfWyhwPTB8YVtwKzEzMj4+Ml0pPj4zXT0rX1twPj4zXSttLF9bKHA9cCs4fDApPj4zXT0rX1twPj4zXStBKSxmPTB8enQobCxmKX1lbHNlIGw9MX13aGlsZSgwKTtmb3IoOyEoKDB8bCk+KDB8YVsxODArKGY9MHxhW3c+PjJdKT4+Ml0pKTspZj0wfGFb''@;'; + put 'put ''KDB8YVtmKzE4ND4+Ml0pKyhsPDwyKT4+Ml0sYiYmKEs9OCsocD0wfGFbMTQwKygwfGFbZisxNj4+Ml0pPj4yXSl8MCxHPStfWyhSPXArMTZ8MCk+PjNdK0EsRD0rX1soTT1wKzI0fDApPj4zXSttLGs9K19bKHA9cCszMnwwKT4+M10rQSxfW0s+PjNdPStfW0s+PjNdK20sX1tSPj4zXT1HLF9b''@;'; + put 'put ''TT4+M109RCxfW3A+PjNdPWspLGNYKGYsYyksbD1sKzF8MH1mdW5jdGlvbiB4RChsKXt2YXIgYyxwLG0sQSxmPTA7Zm9yKEE9NzIqK19bMTYrKGY9MHxhWzE0MCsobD0wfGFbKGM9MTYrKGx8PTApfDApPj4yXSk+PjJdKT4+M10sbT03MiorX1tmKzI0Pj4zXSxwPTcyKitfW2YrMzI+PjNdLF9b''@;'; + put 'put ''bCsxNj4+M109NzIqK19bZis4Pj4zXSxfW2wrMjQ+PjNdPUEsX1tsKzMyPj4zXT1tLF9bbCs0MD4+M109cCxsPTE7ISgoMHxsKT4oMHxhWzE4MCsoZj0wfGFbYz4+Ml0pPj4yXSkpOyl4RCgwfGFbKDB8YVtmKzE4ND4+Ml0pKyhsPDwyKT4+Ml0pLGw9bCsxfDB9ZnVuY3Rpb24gVHZlKGwsYyl7''@;'; + put 'put ''Y3w9MDt2YXIgayxwPTAsbT0wLEE9MCx3PTAsYj0wLE09MDtrPTB8YVsyMTIrKE09MHxhWzE2KyhsfD0wKT4+Ml0pPj4yXSxNPTB8YVs0KygwfGFbTSsxMTI+PjJdKT4+Ml07ZG97aWYoMHxNKXtmb3IoYj0wfHZyKDE2KyhNPDw0KXwwKSxBPTgrKG09MHxJeShsLGMpKXwwLGM9MCxwPW07MHxh''@;'; + put 'put ''W3A+PjJdOyljPTB8THZlKGwscCxiLGMsMHxhWyh3PXArMjR8MCk+PjJdPytfW3ArMzI+PjNdOitfW0E+PjNdKzYuMjgzMTg1MzA3MTc5NTg2KSxwPXc7aWYoKDB8Yyk9PSgwfE0pKXthWyhsPTB8YVsxNDArKDB8YVtrKzE2Pj4yXSk+PjJdKT4+Ml09YixhW2wrND4+Ml09TSxGdChtKTticmVh''@;'; + put 'put ''a31Qcig5MDc0Miw5MDc1Miw3NjYsOTA3NjEpfX13aGlsZSgwKTtyZXR1cm4gMHxrfWZ1bmN0aW9uIGZzKGwpe0Z0KDB8YVsxNDArKDB8YVsxNisobHw9MCk+PjJdKT4+Ml0pfWZ1bmN0aW9uIER2ZShsKXt2YXIgYztGdCgwfGFbMTEyKygwfGFbKGM9MTYrKGx8PTApfDApPj4yXSk+PjJdKSxG''@;'; + put 'put ''dCgwfGFbMTMyKygwfGFbYz4+Ml0pPj4yXSksSGkobCwxMzc0NDcpfWZ1bmN0aW9uIEl5KGwsYyl7Y3w9MDt2YXIgTSxELGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MDtmb3IoRD0wfHZyKDI0KygyNCooTT0wfGFbYVsxMTIrKDB8YVsoaz0xNisobHw9MCl8MCk+PjJdKT4+Ml0+PjJdKXww''@;'; + put 'put ''KXwwKSx3PTAsYj0wfFNzKGMsbCk7YjspKDB8KHA9MHxhWygyPT0oMHwobT0zJmFbYj4+Ml0pKT9iOmIrLTQ4fDApKzQwPj4yXSkpPT0oMHxsKSYmKHA9MHxhWygzPT0oMHxtKT9iOmIrNDh8MCkrNDA+PjJdKSxBPStfWyhwPTB8YVsxMzIrKDB8YVtwKzE2Pj4yXSk+PjJdKT4+M10tK19bKG09''@;'; + put 'put ''MHxhWzEzMisoMHxhW2s+PjJdKT4+Ml0pPj4zXSxmPStfW3ArOD4+M10tK19bbSs4Pj4zXSxhW0QrKDI0Knd8MCk+PjJdPWIsX1tEKygyNCp3fDApKzg+PjNdPStVbCgrZiwrQSksX1tEKygyNCp3fDApKzE2Pj4zXT1mKmYrQSpBLHc9dysxfDAsYj0wfE5zKGMsYixsKTsoMHx3KSE9KDB8TSkm''@;'; + put 'put ''JlByKDkwNzc1LDkwNzUyLDY0Miw5MDc4NCkseDEoRCxNLDI0LDY3KTtlOmRve2lmKCgwfE0pPjEpe2I9TSstMXwwLHA9MDt0OmZvcig7Oyl7aWYoKDB8cCk+PSgwfGIpKWJyZWFrIGU7Zm9yKEE9K19bRCsoMjQqcHwwKSs4Pj4zXSx3PW09cCsxfDA7ISgoMHx3KT49KDB8TSl8fCtfW0QrKDI0''@;'; + put 'put ''Knd8MCkrOD4+M10hPUEpOyl3PXcrMXwwO2lmKCgwfHcpIT0oMHxtKSlmb3IoZj0oZj0oKGY9KDB8dyk9PSgwfE0pPzMuMTQxNTkyNjUzNTg5NzkzOitfW0QrKDI0Knd8MCkrOD4+M10pLUEpLysody1wfDApKT4uMDM0OTA2NTg1MDM5ODg2NTk/LjAzNDkwNjU4NTAzOTg4NjU5OmYsQT0wOzsp''@;'; + put 'put ''e2lmKCgwfHApPj0oMHx3KSljb250aW51ZSB0O19bKGs9RCsoMjQqcHwwKSs4fDApPj4zXT0rX1trPj4zXStBLEErPWYscD1wKzF8MH1lbHNlIHA9bX19fXdoaWxlKDApO3JldHVybiAwfER9ZnVuY3Rpb24gTHZlKGwsYyxmLHAsbSl7Znw9MCxwfD0wO3ZhciBrLFIsRyxBPTAsdz0wLGI9MCxN''@;'; + put 'put ''PTAsRD0wLEs9MDtmb3IoUj0oTT0wfGl0WzE2OCsoRD0wfGFbMTYrKGI9MHxhWyhjfD0wKT4+Ml0pPj4yXSk+PjFdKTw8MTY+PjE2LCgwfChBPTB8YVsoMj09KDB8KHc9MyZhW2I+PjJdKSk/YjpiKy00OHwwKSs0MD4+Ml0pKT09KDB8KGx8PTApKSYmKEE9MHxhWygzPT0oMHx3KT9iOmIrNDh8''@;'; + put 'put ''MCkrNDA+PjJdKSxtPShtPSgobT0rbSktKEc9K19bYys4Pj4zXSkpLysoTTw8MTY+PjE2KSk+LjAzNDkwNjU4NTAzOTg4NjU5Py4wMzQ5MDY1ODUwMzk4ODY1OTptLGs9KE09QT4+PjA+bD4+PjApP206LW0sYz1NPzE6LTEsYj0wLEE9MHxhW0QrMTcyPj4yXSx3PU0/cDpwKy0xK1J8MCxtPU0/''@;'; + put 'put ''RzptKisoUistMXwwKStHOyEoKDB8Yik+PSgwfFIpKTspYVtmKyh3PDw0KT4+Ml09RD0wfGFbQT4+Ml0sYVtmKyh3PDw0KSs0Pj4yXT1hWygoMHxhWzE2NCsoMHxhWzE2KygwfGFbKEs9Mz09KDB8KE09MyZhW0Q+PjJdKSk/RDpEKzQ4fDApKzQwPj4yXSk+PjJdKT4+Ml0pPT0oMHxsKT9LOjI9''@;'; + put 'put ''PSgwfE0pP0Q6RCstNDh8MCkrNDA+PjJdLF9bZisodzw8NCkrOD4+M109bSxiPWIrMXwwLEE9QSs0fDAsdz13K2N8MCxtKz1rO3JldHVybiBSK3B8MH1mdW5jdGlvbiBmWChsLGMsZil7Y3w9MDt2YXIgcD0wO3A9MHxzaShsfD0wLDAsZnw9MCwwKTtkb3tpZigwfHApe2lmKGw9MHxIbyhsLHAp''@;'; + put 'put ''LHA9MHxzaShjLDAsZiwwKSl7VmwoYyxwLGwpO2JyZWFrfXNpKGMsMCxmLGwpO2JyZWFrfX13aGlsZSgwKX1mdW5jdGlvbiBUZihsLGMpe3ZhciBmLHA7cmV0dXJuIGgwKGM9MHxHcihsfD0wLGN8PTAsMSksMTM3NDQ3LDMwNCwxKSxwPTB8dnIoMzIpLGFbMTEyKygwfGFbKGY9YysxNnwwKT4+''@;'; + put 'put ''Ml0pPj4yXT1wLGw9MHxRbigoMHxoclsxNzYrKDB8YVtsKzE2Pj4yXSk+PjFdKTw8MyksYVsxMzIrKDB8YVtmPj4yXSk+PjJdPWwsMHxjfWZ1bmN0aW9uIE92ZShsLGMsZixwKXtjfD0wLHB8PTA7dmFyIGIsayxNLEQsUixHLG09MCxBPTAsdz0wO0c9bGUsbGU9bGUrODB8MCxNPUcrNTZ8MCxr''@;'; + put 'put ''PUcrMzJ8MCxSPUcsRD1HKzY0fDAsYj0wfEhvKGx8PTAsQT0wfGFbNCsoZnw9MCk+PjJdKTtkb3tpZigwfGZlW2I+PjBdKXtpZighKCgwfGFbZj4+Ml0pPT0oMHxsKXx8KDB8KGY9MHxIbygwfGsxKGwpLEEpKSkhPSgwfGIpJiYwfFppKGIsZikpKWJyZWFrO2lmKGZlW0Q+PjBdPTAsZj1SKzh8''@;'; + put 'put ''MCxBPVIrMTZ8MCx3PVIrMjR8MCxhW2s+PjJdPVIsYVtrKzQ+PjJdPWYsYVtrKzg+PjJdPUEsYVtrKzEyPj4yXT13LGFbaysxNj4+Ml09RCwoMHxpbChiLDkwOTM3LGspKTw9Myl7YVtNPj4yXT0wfHRpKGwpLGFbTSs0Pj4yXT1iLCRyKDAsOTA5NTUsTSk7YnJlYWt9KG09K19bMjMyOTNdKT4w''@;'; + put 'put ''JiYoX1tSPj4zXT0rX1tSPj4zXS9tLF9bZj4+M109K19bZj4+M10vbSxfW0E+PjNdPStfW0E+PjNdL20sX1t3Pj4zXT0rX1t3Pj4zXS9tKSxmZVsxMTkrKDB8YVtjKzE2Pj4yXSk+PjBdPShmPTB8ZmVbRD4+MF0pPDwyND4+MjQ9PTMzPzM6Zjw8MjQ+PjI0PT02Mz8yOjEsYVtwPj4yXT1hW1I+''@;'; + put 'put ''PjJdLGFbcCs0Pj4yXT1hW1IrND4+Ml0sYVtwKzg+PjJdPWFbUis4Pj4yXSxhW3ArMTI+PjJdPWFbUisxMj4+Ml0sYVtwKzE2Pj4yXT1hW1IrMTY+PjJdLGFbcCsyMD4+Ml09YVtSKzIwPj4yXSxhW3ArMjQ+PjJdPWFbUisyND4+Ml0sYVtwKzI4Pj4yXT1hW1IrMjg+PjJdfX13aGlsZSgwKTts''@;'; + put 'put ''ZT1HfWZ1bmN0aW9uIGNWKGwsYyl7Y3w9MDt2YXIgbSxmPTAscD0wO2w9MHxpdFsxNjgrKHA9MHxhWyhtPTE2KyhsfD0wKXwwKT4+Ml0pPj4xXSwocD0wfGFbcCsxNzI+PjJdKT8oZj1sPWw8PDE2Pj4xNixsPTB8VjAocCw0KyhsPDwyKXwwKSk6KGY9bD1sPDwxNj4+MTYsbD0wfFFuKDQrKGw8''@;'; + put 'put ''PDIpfDApKSxhW2wrKGY8PDIpPj4yXT1jLGFbMTcyKyhjPTB8YVttPj4yXSk+PjJdPWwsaXRbKGM9YysxNjh8MCk+PjFdPTErKDB8aXRbYz4+MV0pPDwxNj4+MTZ9ZnVuY3Rpb24gUnZlKGwsYyl7dmFyIHAsbSxiLGY9MCxBPTAsdz0wLGs9MDtiPWxlLGxlPWxlKzQ4fDAsdz1iKzI0fDAsQT1i''@;'; + put 'put ''LG09MHxhWygyPT0oMHwoZj0zJmFbKHA9MHxhWyhjfD0wKT4+Ml0pPj4yXSkpP3A6cCstNDh8MCkrNDA+PjJdLGY9MHxhWygzPT0oMHxmKT9wOnArNDh8MCkrNDA+PjJdLGs9KDgrKGM9MHxVbygwfHRpKGx8PTApKSkrKGs9MHxVbygwfHRpKG0pKSkrKDB8VW8oMHx0aShmKSkpfDApPjk5OSxj''@;'; + put 'put ''PTB8dGkobCksaz8oZj0wfHRpKGYpLGs9MHx0aShtKSx3PSgwfGFbcD4+Ml0pPj4+NCxhW0E+PjJdPWMsYVtBKzQ+PjJdPWYsYVtBKzg+PjJdPWssYVsoaz1BKzE2fDApPj4yXT13LGFbays0Pj4yXT0wLG9vKDE5Mzc3Miw5MDg5NSxBKSk6KGY9MHxhWzEyMCsoMHxhW2YrMTY+PjJdKT4+Ml0s''@;'; + put 'put ''az0wfGFbMTIwKygwfGFbbSsxNj4+Ml0pPj4yXSxBPSgwfGFbcD4+Ml0pPj4+NCxhW3c+PjJdPWMsYVt3KzQ+PjJdPWYsYVt3Kzg+PjJdPWssYVsoaz13KzE2fDApPj4yXT1BLGFbays0Pj4yXT0wLG9vKDE5Mzc3Miw5MDkxNCx3KSksbGU9Yn1mdW5jdGlvbiBQdmUobCxjKXt2YXIgcCxtLHcs''@;'; + put 'put ''YixmPTAsQT0wO2I9bGUsbGU9bGUrMTZ8MCxmPWIsQT0wfGFbYVsxNDArKDB8YVsxNisobHw9MCk+PjJdKT4+Ml0+PjJdLHc9MHxmdW5jdGlvbiBPc2UobCxjKXtsfD0wLGN8PTA7dmFyIHAsbSxBLGY9MCx3PTAsYj0wOy0xPT0rX1syMzI0M10/KHc9MHxHbyhsKSxfWzIzMjQzXT0uMiorX1sy''@;'; + put 'put ''MzI0MV0qKGY9K19bMjMyNDJdKSorRDAoKyArKDB8dykpLHc9MSk6KHc9MCxmPStfWzIzMjQyXSksX1tjKzg+PjNdPStmVihBPTB8YVs0NjUwNF0pLF9bYysxNj4+M109ZixfW2MrMjQ+PjNdPStfWzIzMjQwXSxhW2M+PjJdPWw9KHA9MHxhWzQ2NDc4XSktQXwwLG09MHxhWzQ2NDc3XTtkb3tp''@;'; + put 'put ''ZigoMHxtKT4tMSl7aWYoKDB8bSk8PSgwfEEpKXthWzQ2NTA1XT1tLGw9MCxiPTEwO2JyZWFrfSgwfG0pPD0oMHxwKSYmKGFbNDY1MDVdPUEsbD1tLUF8MCxiPTEwKX1lbHNlIGFbNDY1MDVdPUEsYj0xMH13aGlsZSgwKTtyZXR1cm4gMTA9PSgwfGIpJiYoYVtjKzMyPj4yXT1sKSwwfHd9KGws''@;'; + put 'put ''Y3w9MCksZnVuY3Rpb24gRnZlKGwsYyxmKXtsfD0wLGZ8PTA7dmFyIHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxLPTAscGU9MCxnZT0wLGJlPTAsT2U9MCxMZT0wLFJlPTAsSGU9MCxWZT0wLHFlPTA7Zm9yKExlPTB8R28oY3w9MCksSGU9MHxhWzQrKDB8YVsxNDAr''@;'; + put 'put ''KDB8YVtjKzE2Pj4yXSk+PjJdKT4+Ml0sT2U9MHxEdChjKSxLPTAscGU9MCxtPTAsYj0wLEQ9MDtPZTspMHxmZVsxMTkrKHA9MHxhW09lKzE2Pj4yXSk+PjBdPyhBPStfWyhwPTB8YVtwKzEzMj4+Ml0pPj4zXSxLPyhEPX5+KChnZT0rX1twKzg+PjNdKT4oUj0rKDB8RCkpP2dlOlIpLHA9fn4o''@;'; + put 'put ''QTwoRz0rKDB8cGUpKT9BOkcpLG09fn4oZ2U8KGJlPSsoMHxtKSk/Z2U6YmUpLGI9fn4oQT4oUmU9KygwfGIpKT9BOlJlKSk6KEQ9bT1+fitfW3ArOD4+M10scD1iPX5+QSksSz1LKzF8MCk6cD1wZSxPZT0wfHp0KGMsT2UpLHBlPXA7aWYoQT0rX1syMzI0Ml0qKCtEMCgrICsoTGUtSGV8MCkp''@;'; + put 'put ''KzEpLF9bMjMyNDldPWdlPS42KkEsX1syMzI0OF09Z2UsMSE9KDB8SykpaWYoKDB8Syk+MSl7YmU9LjUqKyhiK3BlfDApLFJlPS41KisoRCttfDApLHc9KE09MS4yKihrPSsoRC1tfDApKSkqKEc9MS4yKihSPSsoYi1wZXwwKSkpLyhBPTIuNCpBKmdlKTtkb3tpZih3Pj0xKV9bMjMyNDhdPXc9''@;'; + put 'put ''LjYqUixBPS42KmsscWU9MjA7ZWxzZXtpZih3PjApe0E9MiorRDAoK3cpLF9bMjMyNDhdPXc9Ry9BLEE9TS9BLHFlPTIwO2JyZWFrfWlmKEc+MCl7X1syMzI0OF09dz0uNipSLEE9QS9HKi41LHFlPTIwO2JyZWFrfU0+MD8oX1syMzI0OF09dz1BL00qLjUsQT0uNiprLHFlPTIwKTooQT1nZSx3''@;'; + put 'put ''PWdlKX19d2hpbGUoMCk7MjA9PSgwfHFlKSYmKF9bMjMyNDldPUEpLGdlPStVbCgrQSwrdyksdy89K2hhKCtnZSksX1syMzI0OF09dyxBLz0rRGEoK2dlKSxfWzIzMjQ5XT1BfWVsc2UgYmU9MCxSZT0wLHc9Z2UsQT1nZTtlbHNlIGJlPSsoMHxwZSksUmU9KygwfG0pLHc9Z2UsQT1nZTtfWzIz''@;'; + put 'put ''MjUwXT13KncsX1syMzI1MV09QSpBLDI9PSgwfGFbNDY0ODhdKT9wPTB8YVs0NjQ3Nl06KHA9MHxGaigpLHA9KDB8aG4oMCkpXnApLEhqKHApO2U6ZG97aWYoZil7Zm9yKDswfGFbZj4+Ml07KWdlPStoYSgrICtfWyhPZT1mKzh8MCk+PjNdKSorX1syMzI0OF0rYmUsX1soTGU9MHxhWzEzMiso''@;'; + put 'put ''SGU9MHxhWzE2KygwfGFbZis0Pj4yXSk+PjJdKT4+Ml0pPj4zXT1nZSxfW0xlKzg+PjNdPStEYSgrICtfW09lPj4zXSkqK19bMjMyNDldK1JlLGZlW0hlKzExOT4+MF09MSxmPWYrMTZ8MDtmb3Ioaz0uMSpiZSxNPS4xKlJlLHBlPTB8RHQoYyk7Oyl7aWYoIXBlKWJyZWFrIGU7MD09KDB8YVs4''@;'; + put 'put ''KygwfGFbMTEyKyhmPTB8YVsoSz1wZSsxNnwwKT4+Ml0pPj4yXSk+PjJdKSYmISgwfGFbZisyMTI+PjJdKXx8KHFlPTMyKTtkb3tpZigzMj09KDB8cWUpKXtpZihxZT0wLDB8ZmVbZisxMTk+PjBdKXtfWyhIZT0wfGFbZisxMzI+PjJdKT4+M109K19bSGU+PjNdLWJlLF9bKEhlPUhlKzh8MCk+''@;'; + put 'put ''PjNdPStfW0hlPj4zXS1SZTticmVha31mb3IoRD0wfFNzKGMscGUpLGY9MCx3PTAsQT0wO0Q7KXttPTB8YVsocD0yPT0oMHwoYj0zJmFbRD4+Ml0pKT9EOkQrLTQ4fDApKzQwPj4yXSxiPTM9PSgwfGIpP0Q6RCs0OHwwO2Rve2lmKCgwfG0pIT0oMHxhW2IrNDA+PjJdKSYmMCE9KDB8ZmVbMTE5''@;'; + put 'put ''KyhWZT0wfGFbMTYrKDB8YVsoKDB8bSk9PSgwfHBlKT9iOnApKzQwPj4yXSk+PjJdKT4+MF0pKXtpZihmKXt3PSgrX1soSGU9MHxhW1ZlKzEzMj4+Ml0pPj4zXSt3KihHPSsoMHxmKSkpLyhnZT0rKDB8KGY9ZisxfDApKSksQT0oK19bSGUrOD4+M10rQSpHKS9nZTticmVha31mPTEsdz0rX1so''@;'; + put 'put ''SGU9MHxhW1ZlKzEzMj4+Ml0pPj4zXSxBPStfW0hlKzg+PjNdO2JyZWFrfX13aGlsZSgwKTtEPTB8TnMoYyxELHBlKX1kb3tpZigoMHxmKTw9MSl7aWYoMT09KDB8Zikpe19bKGY9MHxhWzEzMisocD0wfGFbSz4+Ml0pPj4yXSk+PjNdPS45OCp3K2ssQT0uOSpBK007YnJlYWt9QT02LjI4MzE4''@;'; + put 'put ''NTMwNzE3OTU4NiorcWMoKSxHPShnZT0uOSorcWMoKSkqK19bMjMyNDhdKitoYSgrQSksX1soZj0wfGFbMTMyKyhwPTB8YVtLPj4yXSk+PjJdKT4+M109RyxBPStfWzIzMjQ5XSpnZSorRGEoK0EpO2JyZWFrfV9bKGY9MHxhWzEzMisocD0wfGFbSz4+Ml0pPj4yXSk+PjNdPXd9d2hpbGUoMCk7''@;'; + put 'put ''X1tmKzg+PjNdPUEsZmVbcCsxMTk+PjBdPTF9fXdoaWxlKDApO3BlPTB8enQoYyxwZSl9fWVsc2V7aWYoZj0wfER0KGMpLCFLKWZvcig7Oyl7aWYoIWYpYnJlYWsgZTtnZT0rX1syMzI0OF0sZ2U9KDIqK3FjKCktMSkqZ2UsX1thWzEzMisoMHxhWyhxZT1mKzE2fDApPj4yXSk+PjJdPj4zXT1n''@;'; + put 'put ''ZSxnZT0rX1syMzI0OV0sZ2U9KDIqK3FjKCktMSkqZ2UsX1s4KygwfGFbMTMyKygwfGFbcWU+PjJdKT4+Ml0pPj4zXT1nZSxmPTB8enQoYyxmKX1mb3IoOzspe2lmKCFmKWJyZWFrIGU7MHxmZVsxMTkrKG09MHxhWyhwPWYrMTZ8MCk+PjJdKT4+MF0/KF9bKHFlPTB8YVttKzEzMj4+Ml0pPj4z''@;'; + put 'put ''XT0rX1txZT4+M10tYmUsX1socWU9cWUrOHwwKT4+M109K19bcWU+PjNdLVJlKTooZ2U9K19bMjMyNDhdLGdlPSgyKitxYygpLTEpKmdlLF9bYVsxMzIrKDB8YVtwPj4yXSk+PjJdPj4zXT1nZSxnZT0rX1syMzI0OV0sZ2U9KDIqK3FjKCktMSkqZ2UsX1s4KygwfGFbMTMyKygwfGFbcD4+Ml0p''@;'; + put 'put ''Pj4yXSk+PjNdPWdlKSxmPTB8enQoYyxmKX19fXdoaWxlKDApO19bbD4+M109YmUsX1tsKzg+PjNdPVJlfShmLGwsQSkscD0rX1tmPj4zXSxtPStfW2YrOD4+M107ZTpkb3tpZigwfGFbNDY0NzRdKXtmb3Ioa0soZj0wfGMxZSgwfEdvKGwpKSwwfEdvKGwpKSxjPTA7ISgoMHxjKT49KDB8YVs0''@;'; + put 'put ''NjUwNV0pKTspSHZlKGwsK2ZWKGMpLEEsZiksYz1jKzF8MDtTSyhmKX1lbHNlIGZvcihjPTA7Oyl7aWYoKDB8Yyk+PSgwfGFbNDY1MDVdKSlicmVhayBlO1JzZShsLCtmVihjKSxBKSxjPWMrMXwwfX13aGlsZSgwKTtlOmRve2lmKDAhPXB8MCE9bSlmb3IoYz0wfER0KGwpOzspe2lmKCFjKWJy''@;'; + put 'put ''ZWFrIGU7X1soQT0wfGFbMTMyKygwfGFbYysxNj4+Ml0pPj4yXSk+PjNdPStfW0E+PjNdK3AsX1soQT1BKzh8MCk+PjNdPStfW0E+PjNdK20sYz0wfHp0KGwsYyl9fXdoaWxlKDApOzB8dyYmZnVuY3Rpb24gTnZlKCl7X1syMzI0M109LTF9KCksbGU9Yn1mdW5jdGlvbiBmVihsKXt2YXIgYzty''@;'; + put 'put ''ZXR1cm4rICtfWzIzMjQzXSorKChjPTB8YVs0NjQ3OF0pLShsfD0wKXwwKS8rKDB8Yyl9ZnVuY3Rpb24gSHZlKGwsYyxmLHApe2x8PTAsZnw9MCxwfD0wO3ZhciBtPTAsQT0wLHc9MCxiPTA7aWYoISgoYz0rYyk8PTApKXtmb3IoZnVuY3Rpb24gZDFlKGwpe3ZhciBjPTA7bWlbNjMmYVsoYz0w''@;'; + put 'put ''fGFbKGx8PTApPj4yXSk+PjJdXShjLDAsNjQpLGFbbCsyMD4+Ml09YVtsKzE2Pj4yXSxhW2wrOD4+Ml09Yz0wfGFbbCs0Pj4yXSxhW2MrND4+Ml09YVtjPj4yXX0ocCksbT0wfER0KGwpO207KWFbKEE9MTYrKDB8YVsxMTIrKHc9MHxhW20rMTY+PjJdKT4+Ml0pfDApPj4yXT0wLGFbQSs0Pj4y''@;'; + put 'put ''XT0wLGFbQSs4Pj4yXT0wLGFbQSsxMj4+Ml09MCxFSyhwLEE9fn4rY2YoKyArX1sodz0wfGFbdysxMzI+PjJdKT4+M10vKGI9K19bMjMyNDVdKSksfn4rY2YoKyArX1t3Kzg+PjNdL2IpLG0pLG09MHx6dChsLG0pO2ZvcihBPTB8RHQobCk7QTspe2ZvcihtPTB8dzAobCxBKTttOykoMHxBKSE9''@;'; + put 'put ''KDB8KHc9MHxhWygyPT0oMyZhW20+PjJdfDApP206bSstNDh8MCkrNDA+PjJdKSkmJkJzZShBLHcsbSksbT0wfFMwKGwsbSk7QT0wfHp0KGwsQSl9KGZ1bmN0aW9uIFRLKGwsYyl7IWZ1bmN0aW9uIEZQKGwsYyxmKXtjfD0wLGZ8PTA7dmFyIEEscD0wLG09MCx3PTA7QT0zMisobHw9MCl8MCxt''@;'; + put 'put ''PTB8bWlbNjMmYVtsPj4yXV0obCwwLDEyOCk7ZG97aWYoIW0pe3A9MDticmVha313PTB8YVtBPj4yXSxwPW0sbT0wfG1pWzYzJmFbbD4+Ml1dKGwsbSw4KSxwPTB8bWlbNjMmY10oMD09KDB8dyk/bDp3LHAsZil9d2hpbGUoKDB8cCk+PTApfSgwfGFbKGx8PTApPj4yXSxjfD0wLGwpfSkocCwy''@;'; + put 'put ''MyksZFgobCxjLGYpfX1mdW5jdGlvbiBSc2UobCxjLGYpe2x8PTAsZnw9MDt2YXIgcD0wLG09MCxBPTA7aWYoISgoYz0rYyk8PTApKXtmb3IocD0wfER0KGwpO3A7KWFbKEE9MTYrKDB8YVsxMTIrKDB8YVtwKzE2Pj4yXSk+PjJdKXwwKT4+Ml09MCxhW0ErND4+Ml09MCxhW0ErOD4+Ml09MCxh''@;'; + put 'put ''W0ErMTI+PjJdPTAscD0wfHp0KGwscCk7Zm9yKEE9MHxEdChsKTtBOyl7Zm9yKHA9QTtwPTB8enQobCxwKTspaFgoQSxwKTtmb3IocD0wfHcwKGwsQSk7cDspKDB8QSkhPSgwfChtPTB8YVsoMj09KDMmYVtwPj4yXXwwKT9wOnArLTQ4fDApKzQwPj4yXSkpJiZCc2UoQSxtLHApLHA9MHxTMChs''@;'; + put 'put ''LHApO0E9MHx6dChsLEEpfWRYKGwsYyxmKX19ZnVuY3Rpb24gaFgobCxjKXt2YXIgZixwLG0sQTtQc2UobHw9MCxjfD0wLGY9K19bKEE9MHxhWzEzMisoMHxhW2MrMTY+PjJdKT4+Ml0pPj4zXS0rX1sobT0wfGFbMTMyKygwfGFbbCsxNj4+Ml0pPj4yXSk+PjNdLHA9K19bQSs4Pj4zXS0rX1tt''@;'; + put 'put ''Kzg+PjNdLHAqcCtmKmYpfWZ1bmN0aW9uIEJzZShsLGMsZil7Znw9MDt2YXIgcD0wLG09MCxBPTAsdz0wLGI9MCxrPTA7Zm9yKEE9cD0rX1soaz0wfGFbMTMyKygwfGFbKGI9MTYrKGN8PTApfDApPj4yXSk+PjJdKT4+M10tK19bKGM9MHxhWzEzMisoMHxhWyhsPTE2KyhsfD0wKXwwKT4+Ml0p''@;'; + put 'put ''Pj4yXSk+PjNdLHc9bT0rX1trKzg+PjNdLStfW2MrOD4+M10scCo9cCxtKj1tOzA9PShwKz1tKTspQT1wPSsoNS0oKDB8VDEoKSklMTB8MCl8MCksdz1tPSsoNS0oKDB8VDEoKSklMTB8MCl8MCkscCo9cCxtKj1tO209K0QwKCtwKSxwPStfWzEyOCsoYz0wfGFbZisxNj4+Ml0pPj4zXSxfWyhi''@;'; + put 'put ''PTE2KyhrPTB8YVsxMTIrKDB8YVtiPj4yXSk+PjJdKXwwKT4+M109K19bYj4+M10tKEEqPXA9MHxhWzQ2NDc1XT8obS0rX1tjKzEzNj4+M10pKnAvbTpwKm0vK19bYysxMzY+PjNdKSxfWyhrPWsrMjR8MCk+PjNdPStfW2s+PjNdLSh3Kj1wKSxfWyhiPTE2KyhrPTB8YVsxMTIrKDB8YVtsPj4y''@;'; + put 'put ''XSk+PjJdKXwwKT4+M109K19bYj4+M10rQSxfWyhrPWsrMjR8MCk+PjNdPStfW2s+PjNdK3d9ZnVuY3Rpb24gZFgobCxjLGYpe3ZhciBELFIscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wO2ZvcihSPShjPStjKSpjLEQ9MD09KDB8KGZ8PTApKSxNPTB8RHQobHw9MCk7TTspe2lmKCEoMiZm''@;'; + put 'put ''ZVsxMTkrKGs9MHxhW00rMTY+PjJdKT4+MF0pKXsobT0oQT0rX1syNCsoYj0wfGFbaysxMTI+PjJdKT4+M10pKkErKHA9K19bYisxNj4+M10pKnApPFI/KHc9K19bKGY9MHxhW2srMTMyPj4yXSk+PjNdK3AscD0rX1tmKzg+PjNdK0EpOihtPWMvK0QwKCttKSx3PStfWyhmPTB8YVtrKzEzMj4+''@;'; + put 'put ''Ml0pPj4zXSttKnAscD0rX1tmKzg+PjNdK20qQSk7ZG97aWYoIUQpe2lmKG09K0QwKCsocCpwLytfWzIzMjUxXSt3KncvK19bMjMyNTBdKSksMD09KDB8YVtiKzg+PjJdKSYmMD09KDB8YVtrKzIxMj4+Ml0pKXtfW2Y+PjNdPXcvbSxwLz1tO2JyZWFrfWlmKG0+PTEpe19bZj4+M109Ljk1Kncv''@;'; + put 'put ''bSxwPS45NSpwL207YnJlYWt9X1tmPj4zXT13O2JyZWFrfV9bZj4+M109d313aGlsZSgwKTtfW2YrOD4+M109cH1NPTB8enQobCxNKX19ZnVuY3Rpb24gUHNlKGwsYyxmLHAsbSl7bHw9MCxjfD0wLHA9K3A7dmFyIEE9MCx3PTAsYj0wO2ZvcihBPWY9K2YsZj1tPSttOzA9PWY7KUE9Zj0rKDUt''@;'; + put 'put ''KCgwfFQxKCkpJTEwfDApfDApLGY9KHA9Kyg1LSgoMHxUMSgpKSUxMHwwKXwwKSkqcCtmKmY7MHxhWzQ2NDc1XT8obT0rRDAoK2YpLGY9K19bMjMyNDddLyhtKmYpKTpmPStfWzIzMjQ3XS9mLDA9PSgwfGFbOCsobD0wfGFbMTEyKyhiPTB8YVtsKzE2Pj4yXSk+PjJdKT4+Ml0pJiYwPT0oMHxh''@;'; + put 'put ''W2IrMjEyPj4yXSkmJjA9PSgwfGFbOCsoMHxhWzExMisodz0wfGFbYysxNj4+Ml0pPj4yXSk+PjJdKSYmKGY9MD09KDB8YVt3KzIxMj4+Ml0pPzEwKmY6ZiksX1soYz0xNisoYj0wfGFbMTEyKygwfGFbYysxNj4+Ml0pPj4yXSl8MCk+PjNdPStfW2M+PjNdKyhtPWYqQSksX1soYj1iKzI0fDAp''@;'; + put 'put ''Pj4zXT0rX1tiPj4zXSsoQT1mKnApLF9bKGI9bCsxNnwwKT4+M109K19bYj4+M10tbSxfWyhiPWwrMjR8MCk+PjNdPStfW2I+PjNdLUF9ZnVuY3Rpb24gVjcobCxjLGYscCl7cHw9MDt2YXIgbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wO2lmKGw9MHxmdW5jdGlvbiByaihsLGMsZil7bHw9''@;'; + put 'put ''MCxmfD0wO3ZhciBwLG07cmV0dXJuIHA9bGUsbGU9bGUrMzJ8MCxhWyhtPXApPj4yXT1jfD0wLGFbbSs0Pj4yXT1mLGY9MHxtaVs2MyZhWyhmPTB8YVtsPj4yXSk+PjJdXShmLG0sNCksbGU9cCwwfGZ9KGx8PTAsY3w9MCxmfD0wKSwwIT0oMHxwKSYwIT0oMHxsKSl7az1sKzh8MDtkb3tmb3Io''@;'; + put 'put ''Yj0xNisoZj0wfGFbcD4+Ml0pfDAsbD1rO2w9MHxhW2w+PjJdOykodz0oQT0rX1s4KyhEPTB8YVsxMzIrKDB8YVsxNisoYz0wfGFbbD4+Ml0pPj4yXSk+PjJdKT4+M10tK19bOCsoTT0wfGFbMTMyKygwfGFbYj4+Ml0pPj4yXSk+PjNdKSpBKyhtPStfW0Q+PjNdLStfW00+PjNdKSptKTwrX1sy''@;'; + put 'put ''MzI0Nl0mJlBzZShmLGMsbSxBLHcpLGw9bCs0fDA7cD0wfGFbcCs0Pj4yXX13aGlsZSgwIT0oMHxwKSl9fWZ1bmN0aW9uIHBYKGwsYyl7Y3w9MDt2YXIgQSxmPTAscD0wLHc9MDtBPWxlLGxlPWxlKzE2fDAsMCE9KDB8KGY9MHxMaShsfD0wLDkyNTA3KSkpJiYwIT0oMHxmZVtmPj4wXSl8fChm''@;'; + put 'put ''PTkxMTI1KSxwPTB8JHMoZiw1OCk7ZG97aWYocCl7aWYoKDB8cCkhPSgwfGYpJiYoKDB8ZmVbZj4+MF0pLTQ4fDApPj4+MD49MTApe3A9MDticmVha313PTB8cjMoZiksZj1wKzF8MCxwPSgwfHcpPjA/dzowfWVsc2UgcD0wfXdoaWxlKDApOzAhPSgwfHApJiYhKDB8ZnVuY3Rpb24gVnZlKGws''@;'; + put 'put ''YyxmKXtjfD0wLGZ8PTA7dmFyIHcsRyxLLHBlLHA9MCxtPTAsQT0wLGI9MCxrPTAsTT0wLEQ9MCxSPTA7cGU9bGUsbGU9bGUrNjR8MCxHPXBlLEE9cGUrNDB8MCxLPTB8R28obHw9MCksdz0wfFYzKGwpLFc3KEEsbCksYVs0Njg0Ml09YVtBPj4yXSxhWzQ2ODQzXT1hW0ErND4+Ml0sYVs0Njg0''@;'; + put 'put ''NF09YVtBKzg+PjJdLDB8ZmVbMTg3Mzc2XSYmKGpuWzQ2ODQyXT0uMDEzODg4ODg4ODg4ODg4ODg4Kitqbls0Njg0Ml0sam5bNDY4NDNdPS4wMTM4ODg4ODg4ODg4ODg4ODgqK2puWzQ2ODQzXSkscD0wfGZ1bmN0aW9uIEhzZShsKXt2YXIgYz0wLGY9MCxwPTAsbT0wO2ZvcihjPTAsbT0wfER0''@;'; + put 'put ''KGx8PTApO207KXtmb3IocD1tO2Y9MHx6dChsLHApOylwPWYsYz0oMHxoVihtLGYpKStjfDA7bT0wfHp0KGwsbSl9cmV0dXJuIDB8Y30obCk7ZTpkb3tpZihwKXttPShBPUcpKzQwfDA7ZG97YVtBPj4yXT1hW2M+PjJdLEE9QSs0fDAsYz1jKzR8MH13aGlsZSgoMHxBKTwoMHxtKSk7Zm9yKFI9''@;'; + put 'put ''K19bKEE9RysxNnwwKT4+M10sTT0yKisoMHx3KSxEPTEvKygwfEFyKEsrLTF8MCxLKSksbT0wLGs9Ujs7KXtpZighKDAhPSgwfHApJigwfG0pPCgwfGYpKSlicmVhayBlO2ZvcihqdmUoSyxHKSxfWzIzMjU0XT1iPStfWzIzMjUzXSorX1sxNzBdLF9bMjMyNTVdPU0qYipELGM9MDshKCgwfGMp''@;'; + put 'put ''Pj0oMHxhWzQ2NTEyXSl8fChiPStnWChjKSxiPD0wKSk7KXtpZighKHA9MHxadmUobCxiKSkpe3A9MDticmVha31jPWMrMXwwfV9bQT4+M109Yj1rK1IsbT1tKzF8MCxrPWJ9fWVsc2UgcD0wfXdoaWxlKDApO3JldHVybiBsZT1wZSwwfHB9KGwsYyxwKSl8fHdWKGwsZiksbGU9QX1mdW5jdGlv''@;'; + put 'put ''biBqdmUobCxjKXt2YXIgZixwLG07bHw9MCxfWzE3MV09cD0rX1sxNisoY3w9MCk+PjNdLGFbMzQ0XT1hW2M+PjJdLF9bMjMyNTddPW09K19bYys4Pj4zXSxhWzQ2NTEyXT1hW2MrMzI+PjJdLChmPStfW2MrMjQ+PjNdKT4wJiYoX1sxNzBdPWYpLF9bMjMyNTNdPXAqcCwwPT1tJiYoX1syMzI1''@;'; + put 'put ''N109LjIqK0QwKCsgKygwfGwpKSpwKX1mdW5jdGlvbiBnWChsKXt2YXIgYztyZXR1cm4rICtfWzIzMjU3XSorKChjPTB8YVszNDRdKS0obHw9MCl8MCkvKygwfGMpfWZ1bmN0aW9uIFp2ZShsLGMpe2M9K2M7dmFyIGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTA7Zm9yKGY9MHxEdChs''@;'; + put 'put ''fD0wKTtmOylhWyh3PTE2KygwfGFbMTEyKygwfGFbZisxNj4+Ml0pPj4yXSl8MCk+PjJdPTAsYVt3KzQ+PjJdPTAsYVt3Kzg+PjJdPTAsYVt3KzEyPj4yXT0wLGY9MHx6dChsLGYpO2ZvcihmPTAsdz0wfER0KGwpO3c7KXtmb3IobT13O3A9MHx6dChsLG0pOyltPXAsZj0oMHxOc2UodyxwKSkr''@;'; + put 'put ''ZnwwO2ZvcihwPTB8dzAobCx3KTtwOyl6dmUodywwfGFbKDI9PSgzJmFbcD4+Ml18MCk/cDpwKy00OHwwKSs0MD4+Ml0pLHA9MHxTMChsLHApO3c9MHx6dChsLHcpfWU6ZG97aWYoZilmb3IoTT1jKmMsbT0wfER0KGwpOzspe2lmKCFtKWJyZWFrIGU7MyE9KDB8ZmVbMTE5KyhwPTB8YVttKzE2''@;'; + put 'put ''Pj4yXSk+PjBdKSYmKChrPShBPStfWzI0Kyh3PTB8YVtwKzExMj4+Ml0pPj4zXSkqQSsoYj0rX1t3KzE2Pj4zXSkqYik8TT9fWyhwPTB8YVtwKzEzMj4+Ml0pPj4zXT0rX1twPj4zXStiOihrPStEMCgrayksX1socD0wfGFbcCsxMzI+PjJdKT4+M109K19bcD4+M10rYipjL2ssQT1BKmMvayks''@;'; + put 'put ''X1sodz1wKzh8MCk+PjNdPStfW3c+PjNdK0EpLG09MHx6dChsLG0pfWVsc2UgZj0wfXdoaWxlKDApO3JldHVybiAwfGZ9ZnVuY3Rpb24gTnNlKGwsYyl7dmFyIGYscCxtLEE7cmV0dXJuIDB8ZnVuY3Rpb24gbVgobCxjLGYscCxtKXtsfD0wLGN8PTAsZj0rZixwPStwLG09K207Zm9yKHZhciBB''@;'; + put 'put ''LHc7MD09bTspZj1tPSsoNS0oKDB8VDEoKSklMTB8MCl8MCksbT0ocD0rKDUtKCgwfFQxKCkpJTEwfDApfDApKSpwK20qbTtyZXR1cm4gQT0wfGhWKGwsYyksX1sodz0xNisoYz0wfGFbMTEyKygwfGFbYysxNj4+Ml0pPj4yXSl8MCk+PjNdPStfW3c+PjNdKyhmPShtPSgwPT0oMHxBKT8rX1sy''@;'; + put 'put ''MzI1NV06K19bMjMyNTRdKS9tKSpmKSxfWyhjPWMrMjR8MCk+PjNdPStfW2M+PjNdKyhtKj1wKSxfWyhsPTE2KyhjPTB8YVsxMTIrKDB8YVtsKzE2Pj4yXSk+PjJdKXwwKT4+M109K19bbD4+M10tZixfWyhjPWMrMjR8MCk+PjNdPStfW2M+PjNdLW0sMHxBfShsfD0wLGN8PTAsZj0rX1soQT0w''@;'; + put 'put ''fGFbMTMyKygwfGFbYysxNj4+Ml0pPj4yXSk+PjNdLStfWyhtPTB8YVsxMzIrKDB8YVtsKzE2Pj4yXSk+PjJdKT4+M10scD0rX1tBKzg+PjNdLStfW20rOD4+M10scCpwK2YqZil9ZnVuY3Rpb24genZlKGwsYyl7dmFyIGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wOzB8aFYo''@;'; + put 'put ''bHw9MCxjfD0wKXx8KEE9K0QwKCsoKGY9K19bOCsoRD0wfGFbMTMyKyh3PTB8YVtjKzE2Pj4yXSk+PjJdKT4+M10tK19bOCsoTT0wfGFbMTMyKyhtPTB8YVtsKzE2Pj4yXSk+PjJdKT4+M10pKmYrKHA9K19bRD4+M10tK19bTT4+M10pKnApKSxiPStWc2UobCksYj0rVnNlKGMpK2IsX1sobD0x''@;'; + put 'put ''NisoYz0wfGFbdysxMTI+PjJdKXwwKT4+M109K19bbD4+M10tKHAqPUE9KGs9QS1iKSprLygoK19bMTcxXStiKSpBKSksX1soYz1jKzI0fDApPj4zXT0rX1tjPj4zXS0oZio9QSksX1sobD0xNisoYz0wfGFbbSsxMTI+PjJdKXwwKT4+M109K19bbD4+M10rcCxfWyhjPWMrMjR8MCk+PjNdPStf''@;'; + put 'put ''W2M+PjNdK2YpfWZ1bmN0aW9uIGhWKGwsYyl7dmFyIHcsYixmPTAscD0wLG09MCxBPTA7cmV0dXJuIG09K19bKGI9MHxhWzEzMisodz0wfGFbMTYrKGN8PTApPj4yXSk+PjJdKT4+M10tK19bKGw9MHxhWzEzMisoYz0wfGFbMTYrKGx8PTApPj4yXSk+PjJdKT4+M10sQT0oQT0rX1tiKzg+PjNd''@;'; + put 'put ''LStfW2wrOD4+M10pPDA/LUE6QSxmPStfW2MrMzI+PjNdLChsPTA9PSgwfGZlWzE4NzM3Nl0pKT8oZj0uNSpmKihwPStqbls0Njg0Ml0pLHAqPS41KitfW3crMzI+PjNdKTooZj0uNSpmKyhwPStqbls0Njg0Ml0pLHA9LjUqK19bdyszMj4+M10rcCksKG08MD8tbTptKTw9cCtmPyhmPStfW2Mr''@;'; + put 'put ''NDA+PjNdLGw/KHA9LjUqZioobT0ram5bNDY4NDNdKSxmPS41KitfW3crNDA+PjNdKm0pOihwPS41KmYrKG09K2puWzQ2ODQzXSksZj0uNSorX1t3KzQwPj4zXSttKSxjPUE8PWYrcCYxKTpjPTAsMHxjfWZ1bmN0aW9uIFZzZShsKXt2YXIgYz0wLGY9MDtyZXR1cm4gYz0rX1szMisobD0wfGFb''@;'; + put 'put ''MTYrKGx8PTApPj4yXSk+PjNdLDB8ZmVbMTg3Mzc2XT8oZj0uNSpjKyAram5bNDY4NDJdLGM9LjUqK19bbCs0MD4+M10rICtqbls0Njg0M10pOihmPS41KmMqK2puWzQ2ODQyXSxjPS41KitfW2wrNDA+PjNdKitqbls0Njg0M10pLCsgK0QwKCsoYypjK2YqZikpfWZ1bmN0aW9uIFd2ZShsKXt2''@;'; + put 'put ''YXIgYztoMChsfD0wLDEzNzQ2MCwxNzYsMSksTDcobCksYz0rTWwobCwwfGFbNDcxNzRdLDEsMCksX1sxMjgrKDB8YVtsKzE2Pj4yXSk+PjNdPWN9ZnVuY3Rpb24gWXZlKGwsYyxmKXtmfD0wO3ZhciBwPTA7cmV0dXJuIGgwKGM9MHxHcihsfD0wLGN8PTAsMSksMTM3NDQ3LDMwNCwxKSxwPTB8''@;'; + put 'put ''dnIoNDApLGFbMTEyKygwfGFbKGw9YysxNnwwKT4+Ml0pPj4yXT1wLHA9MHx2cihhWzQ3MTM3XTw8MyksYVsxMzIrKGw9MHxhW2w+PjJdKT4+Ml09cCxfW2wrODg+PjNdPStfWzg4KyhwPTB8YVtmKzE2Pj4yXSk+PjNdLF9bbCs5Nj4+M109K19bcCs5Nj4+M10sX1tsKzgwPj4zXT0rX1twKzgw''@;'; + put 'put ''Pj4zXSxhW2FbbCsxMTI+PjJdPj4yXT1mLDB8Y31mdW5jdGlvbiBHc2UobCl7dmFyIGM9MCxmPTAscD0wO2ZvcihjPTB8RHQobHw9MCk7YzspcD0wfGFbMTMyKyhmPTB8YVtjKzE2Pj4yXSk+PjJdLF9bKGY9MHxhWzEzMisoMHxhWzE2KygwfGFbYVtmKzExMj4+Ml0+PjJdKT4+Ml0pPj4yXSk+''@;'; + put 'put ''PjNdPStfW3A+PjNdLF9bZis4Pj4zXT0rX1twKzg+PjNdLGM9MHx6dChsLGMpfWZ1bmN0aW9uIHlYKGwsYyxmKXtsfD0wLGN8PTAsZnw9MDt2YXIgdyxiLEQsUixHLEssTSxwPTAsbT0wLEE9MCxrPTA7Sz1sZSxsZT1sZSs0OHwwLG09SyxEPUsrMzJ8MCxiPUsrMjh8MCxHPUsrMjB8MCxSPUsr''@;'; + put 'put ''MTZ8MCxhWyhBPUsrMjR8MCk+PjJdPTAsYVtHPj4yXT0wLGFbUj4+Ml09MCxwPTB8YVs0NzEzN10sTT0xPT0oMHxhWyh3PWMrMTM2fDApPj4yXSk/MHxzMmUobCxwLFIpOjB8czJlKGwscCwwKTtkb3tpZigoMHxhW2MrMTI0Pj4yXSk+LTEpe2lmKCgwfGFbYysxNjA+PjJdKT4wKXthW20+PjJd''@;'; + put 'put ''PWFbZj4+Ml0sYVttKzQ+PjJdPWFbZis0Pj4yXSxhW20rOD4+Ml09YVtmKzg+PjJdLGFbbSsxMj4+Ml09YVtmKzEyPj4yXSxrPTB8bDJlKGwsbSxBLEcpO2JyZWFrfWFbbT4+Ml09YVtmPj4yXSxhW20rND4+Ml09YVtmKzQ+PjJdLGFbbSs4Pj4yXT1hW2YrOD4+Ml0sYVttKzEyPj4yXT1hW2Yr''@;'; + put 'put ''MTI+PjJdLGs9MHxsMmUobCxtLDAsMCk7YnJlYWt9az0wfXdoaWxlKDApO3N3aXRjaChwPTB8ZnVuY3Rpb24gUXNlKGwpe3ZhciBjPTAsZj0wLHA9MCxtPTAsQT0wLHc9MDt3PTB8dnIoMHxBcigodz0wfGFbNDcxMzddKTw8MywwfEdvKGx8PTApKSk7ZTpkb3tpZigwfHNpKGwsMSwxMDI2MjMs''@;'; + put 'put ''MCkpZm9yKHA9MHxEdChsKTs7KXtpZighcClicmVhayBlO2M9MHxhW3ArMTY+PjJdO3Q6ZG97aWYoMHxmZVtjKzExOT4+MF0pZm9yKG09MHxhWzQ3MTM3XSxBPTB8QXIobSwwfGFbYysxMjA+PjJdKSxmPWMrMTMyfDAsYz0wOzspe2lmKCgwfGMpPj0oMHxtKSlicmVhayB0O19bdysoQStjPDwz''@;'; + put 'put ''KT4+M109K19bKDB8YVtmPj4yXSkrKGM8PDMpPj4zXSxjPWMrMXwwfX13aGlsZSgwKTtwPTB8enQobCxwKX19d2hpbGUoMCk7cmV0dXJuIDB8d30obCksYVtEPj4yXT1wLDB8YVt3Pj4yXSl7Y2FzZSAxOmNhc2UgMDp4aygwfGFbNDcxMzddLE0sMHxhW1I+PjJdLGMsMCxrLHAsMHxhW0E+PjJd''@;'; + put 'put ''LDB8YVtHPj4yXSxiKTticmVhaztjYXNlIDU6IWZ1bmN0aW9uIGJ1KGwsYyxmLHApe2x8PTAsZnw9MDt2YXIgYixtPTAsQT0wLHc9MCxrPTAsTT0wO2ZvcihiPTB8YVsoY3w9MCk+PjJdLGFbKHB8PTApPj4yXT0wLGs9MHxBcihiLGwpLHA9MDs7KXtpZigoMHxwKT49KDB8aykpe3A9MSxtPTE7''@;'; + put 'put ''YnJlYWt9X1tmKyhwPDwzKT4+M109MTAwKitCaCgpLHA9cCsxfDB9Zm9yKDshKCgwfG0pPj0oMHxiKSk7KXtmb3Iodz0wfEFyKG0sbCksQT0wOyEoKDB8QSk+PSgwfGwpKTspe2lmKCgoTT0rX1tmKyhBPDwzKT4+M10tK19bZisoQSt3PDwzKT4+M10pPj0wP006LU0pPjFlLTE2KXtwPTAsbT1i''@;'; + put 'put ''O2JyZWFrfUE9QSsxfDB9bT1tKzF8MH1lOmRve2lmKDB8cClmb3IobncoMSkscD0wOzspe2lmKCgwfHApPj0oMHxrKSlicmVhayBlO19bZisocDw8Myk+PjNdPTEwMCorQmgoKSxwPXArMXwwfX13aGlsZSgwKTtpZigwfGxoKHA9MHxmdW5jdGlvbiBhMmUobCxjKXtjPStjO3ZhciBmLG0scD0w''@;'; + put 'put ''LEE9MDtmPTE9PSgwfGFbMTYrKGx8PTApPj4yXSk/MHxhaChsLDApOjB8QTUobCksbT0wfGFbZisyOD4+Ml07ZTpkb3tpZigxIT1jKWZvcihwPTB8YVtmKzg+PjJdLGw9MDs7KXtpZigoMHxsKT49KDB8cCkpYnJlYWsgZTtfWyhBPW0rKGw8PDMpfDApPj4zXT0rX1tBPj4zXSpjLGw9bCsxfDB9''@;'; + put 'put ''fXdoaWxlKDApO3JldHVybiAwfGZ9KGMsMSksMCkpcmV0dXJuIFo3KGs9MHxUaygwLHAsMCwxMDFlNSwxMDAsMCksbCxmLDMwMCkseWwoayksWjcoaz0wfFRrKDAscCwwLDEwMWUzLDEwMCwwKSxsLGYsMzAwKSx5bChrKSxaNyhrPTB8VGsoMCxwLDAsMTAxMCwxMDAsMCksbCxmLDMwMCkseWwo''@;'; + put 'put ''ayksWjcoaz0wfFRrKDAscCwwLDEwLjEsMTAwLDApLGwsZiwzMDApLHlsKGspLGZ1bmN0aW9uIHJuKGwsYyxmLHAsbSxBLHcpe2w9K2wsYz0rYyxmPStmLHA9K3AsbXw9MCxBfD0wLHd8PTA7dmFyIEQsUixHLEssYj0wLGs9MCxNPTAscGU9MCxnZT0wLGJlPTA7Zm9yKEs9bGUsbGU9bGUrODB8''@;'; + put 'put ''MCxSPUsrNDh8MCxEPUsrMjR8MCxHPUssYj0wOzspe2lmKCgwfGIpPj0oMHxBKSl7az0wO2JyZWFrfV9bUisoYjw8Myk+PjNdPXBlPStfW3crKGI8PDMpPj4zXSxfW0QrKGI8PDMpPj4zXT1wZSxiPWIrMXwwfWZvcig7ISgoMHxrKT49KDB8bSkpOyl7Zm9yKE09MHxBcihrLEEpLGI9MDshKCgw''@;'; + put 'put ''fGIpPj0oMHxBKSk7KV9bKGdlPVIrKGI8PDMpfDApPj4zXT0oYmU9K19bdysoYitNPDwzKT4+M10pPChwZT0rX1tnZT4+M10pP2JlOnBlLF9bKGdlPUQrKGI8PDMpfDApPj4zXT1iZT4ocGU9K19bZ2U+PjNdKT9iZTpwZSxiPWIrMXwwO2s9aysxfDB9Zm9yKGY9MCE9KHBlPStfW0Q+PjNdLStf''@;'; + put 'put ''W1I+PjNdKT8oZi1sKS9wZToxLGJlPShwLWMpLyhwZT0rX1tEKzg+PjNdLStfW1IrOD4+M10pLGY9MCE9cGU/ZjxiZT9mOmJlOmYsX1tHPj4zXT1sLF9bRys4Pj4zXT1jLF9bRysxNj4+M109MCxrPTA7ISgoMHxrKT49KDB8bSkpOyl7Zm9yKE09MHxBcihrLEEpLGI9MDshKCgwfGIpPj0oMHxB''@;'; + put 'put ''KSk7KV9bKGdlPXcrKGIrTTw8Myl8MCk+PjNdPSgrX1tnZT4+M10tK19bUisoYjw8Myk+PjNdKSpmKyArX1tHKyhiPDwzKT4+M10sYj1iKzF8MDtrPWsrMXwwfWxlPUt9KDAsMCw0OTAsNzAwLDB8YVtjPj4yXSxsLGYpLHZvaWQgUmEocCk7UHIoOTI0MzAsOTIzODcsMTY0LDkyNDY2KX0oMHxh''@;'; + put 'put ''WzQ3MTM3XSxNLHAsYik7YnJlYWs7Y2FzZSA0OnA9KHA9MHxhW1I+PjJdKT8wfEprKHAsMCk6MHxBNShNKSxhW1I+PjJdPXAsZnVuY3Rpb24gJHZlKGwsYyxmLHAsbSxBLHcsYil7IWZ1bmN0aW9uIERjKGwsYyxmLHAsbSxBLHcpe2x8PTAsZnw9MCxwfD0wLG18PTAsQT0rQSx3fD0wO3ZhciBN''@;'; + put 'put ''LGI9MCxrPTAsRD0wO2lmKEQ9MD09KDB8bGgoY3w9MCwwKSksYj0xPT0oMHxhW2MrMTY+PjJdKSxEP2I/Yj0wfHdwKDB8YWgoYywwKSk6az01OmI/Yj1jOms9NSw1PT0oMHxrKSYmKGI9MHxBNShjKSksRD0wfHdwKGIpLGFbdz4+Ml09MCxiPTB8YVtEPj4yXSxmfHwoUW4oMHxBcihsPDwzLGIp''@;'; + put 'put ''KSxibCgpKSxNPTB8ZnVuY3Rpb24gU3gobCxjLGYscCxtLEEpe2N8PTAsZj0rZixwfD0wLG18PTAsQXw9MDt2YXIgYW4sdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLEs9MCxwZT0wLGdlPTAsYmU9MCxPZT0wLExlPTAsUmU9MCxIZT0wLFZlPTAscWU9MCxudD0wLFdlPTAsb3Q9MCxTdD0w''@;'; + put 'put ''LGt0PTAsc3Q9MCxFdD0wLFp0PTAsY3Q9MCxidD0wLFNuPTAsSG49MCx1cj0wO2lmKGFuPTB8YVsobHw9MCk+PjJdLDB8bGgobCwwKSYmMT09KDB8YVtsKzE2Pj4yXSkpe2ZvcihrPTB8QXIoYW4sYyksYj0wLHc9MDshKCgwfHcpPj0oMHxrKSk7KWI9KHBlPStfW3ArKHc8PDMpPj4zXSkqcGUr''@;'; + put 'put ''Yix3PXcrMXwwO2U6ZG97aWYoMD09Yilmb3Iodz0wOzspe2lmKCgwfHcpPj0oMHxrKSlicmVhayBlO19bcCsodzw8Myk+PjNdPTcyKitCaCgpLHc9dysxfDB9fXdoaWxlKDApO2ZvcihzdD0wfGFbbCsyMD4+Ml0sRXQ9MHxhW2wrMjQ+PjJdLFp0PTB8YVtsKzI4Pj4yXSx3PTB8UW4oNTYpLF9b''@;'; + put 'put ''KGJ0PXcrMzJ8MCk+PjNdPTEsYVt3KzIwPj4yXT0wLGFbdysyND4+Ml09MCxhW3c+PjJdPWwsX1t3KzQwPj4zXT0uMDEsYVt3KzQ4Pj4yXT1+fitEMCgrICsoMHxhW2w+PjJdKSksY3Q9MHxRbihhbjw8MyksYVt3KzEyPj4yXT1jdCxrPTA7ISgoMHxrKT49KDB8YW4pKTspX1tjdCsoazw8Myk+''@;'; + put 'put ''PjNdPWYsaz1rKzF8MDtpZihhWyhTdD13KzR8MCk+PjJdPTB8dWMoYW4sYW4sbD0oMHxhW2wrOD4+Ml0pK2FufDAsMSwxKSxsPTB8dWMoYW4sYW4sbCwxLDEpLGFbKGt0PXcrOHwwKT4+Ml09bCwwPT0oMHxsKXwwPT0oMHwoaz0wfGFbU3Q+PjJdKSkpUTQodyksdz0wO2Vsc2V7VmU9MHxhW2sr''@;'; + put 'put ''MjA+PjJdLHFlPTB8YVtrKzI0Pj4yXSxXZT0wfGFbbCsyND4+Ml0sUmU9MHxhW2srMjg+PjJdLG90PTB8YVtsKzI4Pj4yXSxhWyhudD0wfGFbbCsyMD4+Ml0pPj4yXT0wLGFbVmU+PjJdPTAsSz0wLHBlPTAsSGU9MCxiZT0wO2U6Zm9yKDshKCgwfGJlKT49KDB8YW4pKTspe2ZvcihMZT1zdCso''@;'; + put 'put ''KE9lPWJlKzF8MCk8PDIpfDAsTT0wLEQ9MCxnZT0wfGFbc3QrKGJlPDwyKT4+Ml0sRz1LLGY9cGUsbD1IZTshKCgwfGdlKT49KDB8YVtMZT4+Ml0pKTspe2lmKCgwfChrPTB8YVtFdCsoZ2U8PDIpPj4yXSkpPT0oMHxiZSkpYj1HLGs9bDtlbHNle3N3aXRjaChhW3FlKyhsPDwyKT4+Ml09ayxS''@;'; + put 'put ''PStfW1p0KyhnZTw8Myk+PjNdLDB8bSl7Y2FzZSAyOmI9MD09KGI9UipSKT8tMWU1Oi0xL2I7YnJlYWs7Y2FzZSAxOmI9UipSPT0wPy0xZTU6LTEvUjticmVhaztjYXNlIDA6Yj0tMTticmVhaztkZWZhdWx0OlNuPTIzO2JyZWFrIGV9X1tSZSsobDw8Myk+PjNdPWIsYVtXZSsobDw8Mik+PjJd''@;'; + put 'put ''PWssX1sodXI9b3QrKGw8PDMpfDApPj4zXT1Ibj1iKlIsZj0rX2MocCxjLGJlLGspKkhuK2YsTT1iK00sRD0oSG49K19bdXI+PjNdKStELGI9SG4qUitHLGs9bCsxfDB9Z2U9Z2UrMXwwLEc9YixsPWt9YVtxZSsobDw8Mik+PjJdPWJlLF9bKEhlPWN0KyhiZTw8Myl8MCk+PjNdPUs9LU0qK19b''@;'; + put 'put ''SGU+PjNdLF9bUmUrKGw8PDMpPj4zXT1LLU0sYVtXZSsobDw8Mik+PjJdPWJlLF9bb3QrKGw8PDMpPj4zXT0tRCxhW1ZlKyhPZTw8Mik+PjJdPUhlPWwrMXwwLGFbbnQrKE9lPDwyKT4+Ml09SGUsSz1HLHBlPWYsYmU9T2V9aWYoMjM9PSgwfFNuKSYmUHIoMTM4Mzk0LDk1ODMxLDU5MSw5NjAx''@;'; + put 'put ''MiksMD09KGI9MD09KDB8QSk/MTpwZS9LKSl3PTA7ZWxzZXtmb3Ioaz0wOyEoKDB8ayk+PSgwfEhlKSk7KV9bKHVyPW90KyhrPDwzKXwwKT4+M109K19bdXI+PjNdKmIsaz1rKzF8MDtfW2J0Pj4zXT1iLGFbOCsoMHxhW1N0Pj4yXSk+PjJdPUhlLGFbOCsoMHxhW2t0Pj4yXSk+PjJdPUhlfX1y''@;'; + put 'put ''ZXR1cm4gMHx3fXJldHVybiBQcig5NTk0NSw5NTgzMSw1MjUsOTYwMTIpLDB9KEQsbCwwLDB8YVtmPj4yXSwwPT0oMHxwKT8wOjIsMSkpe2ZvcihfW00rNDA+PjNdPS4xLGFbTSsyND4+Ml09NSxmdW5jdGlvbiBFeChsLGMsZixwLG0pe3ptKGx8PTAsY3w9MCxmfD0wLHB8PTAsbT0rbSl9KE0s''@;'; + put 'put ''bCwwfGFbZj4+Ml0sbSxBKSxrPTB8QXIoYixsKSxwPU0rMzJ8MCxiPTA7ISgoMHxiKT49KDB8aykpOylfWyh3PSgwfGFbZj4+Ml0pKyhiPDwzKXwwKT4+M109K19bdz4+M10vK19bcD4+M10sYj1iKzF8MDshZnVuY3Rpb24gTXgobCl7UTQobHw9MCl9KE0pfWVsc2UgYVt3Pj4yXT0tMTsoMHxE''@;'; + put 'put ''KSE9KDB8YykmJlJhKEQpfShsfD0wLGZ8PTAscHw9MCxtfD0wLEF8PTAsdz0rdyxifD0wKX0oMHxhWzQ3MTM3XSwwLHAsRCwxLDIwMCwuMDAxLGIpfWZvcihwPTB8RHQobCk7cDspe2ZvcihjPSgwfGFbRD4+Ml0pKygoMHxBcigwfGFbMTIwKyhBPTB8YVtwKzE2Pj4yXSk+PjJdLGY9MHxhWzQ3''@;'; + put 'put ''MTM3XSkpPDwzKXwwLEE9QSsxMzJ8MCxtPTA7ISgoMHxtKT49KDB8ZikpOylfWygwfGFbQT4+Ml0pKyhtPDwzKT4+M109K19bYysobTw8Myk+PjNdLG09bSsxfDA7cD0wfHp0KGwscCl9RnQoayksRnQoMHxhW0Q+PjJdKSxSYShNKSwwfChwPTB8YVtSPj4yXSkmJlJhKHApLDB8KHA9MHxhW0c+''@;'; + put 'put ''PjJdKSYmRnQocCksbGU9S31mdW5jdGlvbiBiWChsKXtoMChsfD0wLDEzNzQ2MCwxNzYsMSksTDcobCl9ZnVuY3Rpb24gS3NlKCl7dmFyIGwsYztyZXR1cm4gbD0wfFFuKDE2OCksX1tsPj4zXT0tMS4wMDAxMjM0LF9bbCs4Pj4zXT0xLGFbbCsxNj4+Ml09MSxfW2wrMjQ+PjNdPS0xLF9bbCsz''@;'; + put 'put ''Mj4+M109LjIsYVtsKzQwPj4yXT0wLGFbbCs0ND4+Ml09NCxhW2wrNDg+PjJdPTEsYVtsKzUyPj4yXT00NSxhW2wrNTY+PjJdPTEwLF9bbCs2ND4+M109LjYsX1tsKzcyPj4zXT0uMDAxLGFbbCs4MD4+Ml09NTAwLF9bbCs4OD4+M109LjksX1tsKzk2Pj4zXT0uMSxhW2wrMTA0Pj4yXT0xLGFb''@;'; + put 'put ''bCsxMDg+PjJdPTEyMyxhWyhjPWwrMTEyfDApPj4yXT0wLGFbYys0Pj4yXT0wLGFbYys4Pj4yXT0wLGFbYysxMj4+Ml09MCxhW2wrMTI4Pj4yXT0xLGFbbCsxMzI+PjJdPTMsYVtsKzEzNj4+Ml09MCxfW2wrMTQ0Pj4zXT0tNCxfW2wrMTUyPj4zXT0wLGFbbCsxNjA+PjJdPTAsMHxsfWZ1bmN0''@;'; + put 'put ''aW9uIGRWKGwpe0Z0KGx8PTApfWZ1bmN0aW9uIHBWKGwpe0Z0KGx8PTApfWZ1bmN0aW9uIGdWKGwpe3ZhciBjO3JldHVybiBsfD0wLGM9MHxRbigxODQpLGFbYz4+Ml09bCxhW2MrMTc2Pj4yXT0wLDB8Y31mdW5jdGlvbiBfWChsLGMpe3ZhciBwLG0sZj0wO19bOCsobHw9MCkrKChwPTB8YVts''@;'; + put 'put ''Pj4yXSk8PDMpPj4zXT1jPStjLG09bCsxNzZ8MDtlOmRve3N3aXRjaCgwfGFbbT4+Ml0pe2Nhc2UgMDoyMD09KDB8KGY9MHxhW2w+PjJdKSk/KGFbbT4+Ml09LTEsZj0xOSk6KGFbbT4+Ml09MSxmPSgwfGYpPjE5PzIwOmYrMXwwKSxhW2w+PjJdPWY7YnJlYWs7Y2FzZSAxOmlmKCgwfChmPTB8''@;'; + put 'put ''YVtsPj4yXSkpPDIwJiYrX1tsKzgrKHArLTE8PDMpPj4zXT5jKXthW2w+PjJdPWYrMTticmVhayBlfWFbbD4+Ml09ZistMSxhW20+PjJdPS0xO2JyZWFrIGU7ZGVmYXVsdDppZigoMHwoZj0wfGFbbD4+Ml0pKT4wJiYrX1tsKzgrKHArMTw8Myk+PjNdPmMpe2FbbD4+Ml09ZistMTticmVhayBl''@;'; + put 'put ''fWFbbD4+Ml09ZisxLGFbbT4+Ml09MTticmVhayBlfX13aGlsZSgwKX1mdW5jdGlvbiBqNyhsKXtyZXR1cm4gMHxhWyhsfD0wKT4+Ml19ZnVuY3Rpb24gSUQobCxjLGYpe2N8PTAsZnw9MDt2YXIgRCxSLEcsSyxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAscGU9MDtpZihLPTB8YVsyNCso''@;'; + put 'put ''bHw9MCk+PjJdLFI9MHxhWyhHPTB8YVtsKzIwPj4yXSkrKChEPTB8YVtsPj4yXSk8PDIpPj4yXSl7bD0wLHA9MDtlOmZvcig7ISgoMHxsKT49KDB8RCkpOylmb3IoYj1sKzF8MCxrPTB8YVtHKyhiPDwyKT4+Ml0sTT0wfEFyKGwsYyksdz0wfGFbRysobDw8Mik+PjJdOzspe2lmKCgwfHcpPj0o''@;'; + put 'put ''MHxrKSl7bD1iO2NvbnRpbnVlIGV9Zm9yKEE9Sysodzw8Mil8MCxsPTAsbT0wOyEoKDB8bCk+PSgwfGMpKTspcGU9K19bZisobCtNPDwzKT4+M10tK19bZisoKDB8QXIoMHxhW0E+PjJdLGMpKTw8Myk+PjNdLGw9bCsxfDAsbT1wZSpwZSttO3c9dysxfDAscD0rRDAoK20pK3B9cC89KygwfFIp''@;'; + put 'put ''fWVsc2UgcD0xO3JldHVybitwfWZ1bmN0aW9uICRzZShsLGMsZil7dmFyIHA7bHw9MCxwPTEwKyhjfD0wKXwwLCgwfGFbKGZ8PTApPj4yXSk8PSgwfGMpJiYoYVtmPj4yXT1wLGFbbD4+Ml09MHxWMCgwfGFbbD4+Ml0scDw8MykpfWZ1bmN0aW9uIFF2ZShsLGMsZil7dmFyIHA7bHw9MCxwPTEw''@;'; + put 'put ''KyhjfD0wKXwwLCgwfGFbKGZ8PTApPj4yXSk8PSgwfGMpJiYoYVtmPj4yXT1wLGFbbD4+Ml09MHxWMCgwfGFbbD4+Ml0scDw8MikpfWZ1bmN0aW9uIHQ4KGwsYyxmLHApe2x8PTAsZnw9MDt2YXIgQSx3LGIsayxNLG09MDtmb3IoTT1sZSxsZT1sZSsxNnwwLGs9TSxiPTB8QXIocHw9MCxjfD0w''@;'; + put 'put ''KSxjPTB8QXIoZixjKSxwPTA7MiE9KDB8cCk7KV9baysocDw8Myk+PjNdPStfW2wrKHArYjw8Myk+PjNdLStfW2wrKHArYzw8Myk+PjNdLHA9cCsxfDA7dz0rX1trPj4zXSxBPStfW2srOD4+M107ZG97aWYoISgodz49MD93Oi13KTw9MWUtNSooQT49MD9BOi1BKSkpe2lmKG09K1pmKCtBL3cp''@;'; + put 'put ''LHc+MCl7aWYoIShBPDApKWJyZWFrO20rPTYuMjgzMTg1MzA3MTc5NTg2O2JyZWFrfWlmKCEodzwwKSlicmVhazttKz0zLjE0MTU5MjY1MzU4OTc5MzticmVha31tPUE+MD8xLjU3MDc5NjMyNjc5NDg5NjY6NC43MTIzODg5ODAzODQ2OX13aGlsZSgwKTtyZXR1cm4gbGU9TSwrbX1mdW5jdGlv''@;'; + put 'put ''biBxc2UobCxjLGYscCxtLEEpe2x8PTAsY3w9MCxwfD0wLG18PTAsQXw9MDt2YXIgSHIsRXIsZnIsRHIsSnIsVmksUm8sdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLEs9MCxwZT0wLGdlPTAsYmU9MCxPZT0wLExlPTAsUmU9MCxIZT0wLFZlPTAscWU9MCxudD0wLFdlPTAsb3Q9MCxTdD0w''@;'; + put 'put ''LGt0PTAsc3Q9MCxjdD0wLGJ0PTAsYW49MCxTbj0wLEhuPTAsdXI9MCxMcj0wLGwwPTAsbG89MCxUYT0wO1JvPWxlLGxlPWxlKzgwfDAsVmk9Um8sRz0rX1soZnw9MCk+PjNdLEQ9K19bKE09ZisyNHwwKT4+M10sYj0rX1soUj1mKzMyfDApPj4zXSxIcj0rX1tmKzcyPj4zXSxFcj0wfGFbZis4''@;'; + put 'put ''MD4+Ml0sZnI9K19bZis4OD4+M10sSz0rX1tmKzk2Pj4zXSxEcj0wfGFbZisxMDQ+PjJdLHc9MHxhWyhKcj1mKzU2fDApPj4yXTtkb3tpZighKDA9PSgwfGMpfCgwfEVyKTwxfHwoTHI9MHxhW2MrND4+Ml0sKDB8bCk8MXwoMHxMcik8MSkpKXtpZih1cj0wfGFbYz4+Ml0sbDA9MHxnVih3KSxh''@;'; + put 'put ''W0E+PjJdPTAsKDB8dXIpIT0oMHxMcikpe2FbQT4+Ml09LTEwMCxwVihsMCksYVtKcj4+Ml09dzticmVha31Tbj0wfGFoKGMsMSksSG49MHxhW1NuKzIwPj4yXSx1cj0wfGFbU24rMjQ+PjJdO2U6ZG97aWYoMHxhW2YrMTY+PjJdKWZvcihudygwfGFbZisxMDg+PjJdKSxrPTB8QXIoTHIsbCks''@;'; + put 'put ''dz0wOzspe2lmKCgwfHcpPj0oMHxrKSlicmVhayBlO19bbSsodzw8Myk+PjNdPStCaCgpLHc9dysxfDB9fXdoaWxlKDApO2ZvcihEPDAmJihEPStJRChTbixsLG0pLF9bTT4+M109RCksYjwwJiYoX1tSPj4zXT0uMixiPS4yKSxHPj0wJiYoX1tmPj4zXT0tMSxHPS0xKSxhbj0rcWwoK0QsKygx''@;'; + put 'put ''LUcpKSxudD0rcWwoK2IsLjMzMzMzMzMzMzMzMzMzMzMqKDItRykpL0Qsb3Q9MHxRbihXZT0wfEFyKExyLGw8PDMpKSxTdD0wfFFuKFdlKSxrdD1mKzExNnwwLHN0PWYrNjR8MCxjdD1WaSs4fDAsYnQ9VmkrMTZ8MCxWZT0wLHFlPTAsTGU9Szs7KXtnbygwfG90LDB8bSwwfFdlKSxvaihIZT0w''@;'; + put 'put ''fFlrKGwsTHIsUmU9MHxqNyhsMCksbSwwPT0oMHxhW2t0Pj4yXSk/MDpwKSxTdCxtLCtfW3N0Pj4zXSxHLGFuLFZpLEEpLE09MDtlOmZvcig7Oyl7aWYoKDB8TSk+PSgwfExyKSl7Sz0wLGs9MDticmVha31mb3IocGU9U3QrKChSPTB8QXIoTSxsKSk8PDMpfDAsYmU9SG4rKChnZT1NKzF8MCk8''@;'; + put 'put ''PDIpfDAsaz0wfGFbSG4rKE08PDIpPj4yXTs7KXtpZigoMHxrKT49KDB8YVtiZT4+Ml0pKXtNPWdlO2NvbnRpbnVlIGV9dz0wfGFbKE9lPXVyKyhrPDwyKXwwKT4+Ml07dDpkb3tpZigoMHx3KSE9KDB8TSkpZm9yKGI9K19jKG0sbCxNLHcpKm50LHc9MDs7KXtpZigoMHx3KT49KDB8bCkpYnJl''@;'; + put 'put ''YWsgdDtLPWIqKCtfW20rKHcrUjw8Myk+PjNdLStfW20rKCgwfEFyKDB8YVtPZT4+Ml0sbCkpK3c8PDMpPj4zXSksX1sobG89cGUrKHc8PDMpfDApPj4zXT0rX1tsbz4+M10tSyx3PXcrMXwwfX13aGlsZSgwKTtrPWsrMXwwfX1mb3IoOyEoKDB8ayk+PSgwfExyKSk7KXtmb3IoUj1TdCsoKE09''@;'; + put 'put ''MHxBcihrLGwpKTw8Myl8MCxiPTAsdz0wOyEoKDB8dyk+PSgwfGwpKTspYj0oVGE9K19bUisodzw8Myk+PjNdKSpUYStiLHc9dysxfDA7Sz0oYj0rRDAoK2IpKStLO2U6ZG97aWYoYj4wKWZvcihiPTEvYix3PTA7Oyl7aWYoKDB8dyk+PSgwfGwpKXt3PTA7YnJlYWsgZX1fWyhsbz1SKyh3PDwz''@;'; + put 'put ''KXwwKT4+M109K19bbG8+PjNdKmIsdz13KzF8MH1lbHNlIHc9MH13aGlsZSgwKTtmb3IoOyEoKDB8dyk+PSgwfGwpKTspX1sobG89bSsodytNPDwzKXwwKT4+M109K19bbG8+PjNdKyArX1tSKyh3PDwzKT4+M10qTGUsdz13KzF8MDtrPWsrMXwwfWlmKFZlPVZlKzF8MCxIZSYmKGV2KEhlKSxf''@;'; + put 'put ''WChsMCwuODUqK19bY3Q+PjNdKyArX1tWaT4+M10rMy4zKitfW2J0Pj4zXSkpLCEoKDB8VmUpPCgwfEVyKSYoTGU9K01rKERyLExlLEsscWUsZnIpKT5IcikpYnJlYWs7cWU9S30wfGFbZisxMTI+PjJdJiZFayhsLFNuLG0pLHBWKGwwKSxhW0pyPj4yXT1SZSxGdChvdCksKDB8U24pIT0oMHxj''@;'; + put 'put ''KSYmUmEoU24pLEZ0KFN0KX19d2hpbGUoMCk7bGU9Um99ZnVuY3Rpb24gTWsobCxjLGYscCxtKXtsfD0wLGM9K2MsZj0rZixwPStwLG09K207ZG97aWYobCl7aWYoZj49cCl7Yyo9bTticmVha30uOTUqcDxmfHwoYz0uOTkqYy9tKX1lbHNlIGMqPW19d2hpbGUoMCk7cmV0dXJuK2N9ZnVuY3Rp''@;'; + put 'put ''b24gRWsobCxjLGYpe2x8PTAsZnw9MDt2YXIgYmUsT2UsTGUsVmUscWUsbnQsV2Usb3QsU3QscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLEs9MCxwZT0wLGdlPTAsUmU9MCxIZT0wO2ZvcihTdD1sZSxsZT1sZSsxNnwwLFZlPVN0Kzh8MCxxZT1TdCs0fDAsbnQ9U3Qs''@;'; + put 'put ''V2U9MHxhWyhjfD0wKT4+Ml0sb3Q9MHxhW2MrMjA+PjJdLGJlPTB8YVtjKzI0Pj4yXSxhWyhMZT1TdCsxMnwwKT4+Ml09MTAsYVtudD4+Ml09MTAsT2U9MHxRbihXZTw8MiksbT0wfFFuKDgwKSxhW1ZlPj4yXT1tLHA9MHxRbig0MCksYVtxZT4+Ml09cCxjPTA7Oyl7aWYoKDB8Yyk+PSgwfFdl''@;'; + put 'put ''KSl7RD0wLHBlPW0saz1wLFI9cCxNPW07YnJlYWt9YVtPZSsoYzw8Mik+PjJdPTAsYz1jKzF8MH1mb3IoOyEoKDB8RCk+PSgwfFdlKSk7KXtjPTB8YVtvdCsoRDw8Mik+PjJdO2U6ZG97aWYoMT09KCgwfGFbb3QrKEQrMTw8Mik+PjJdKS1jfDApJiYwPT0oMHxhW09lKyhEPDwyKT4+Ml0pJiYo''@;'; + put 'put ''UmU9MHxhW2JlKyhjPDwyKT4+Ml0sSGU9T2UrKFJlPDwyKXwwLDA9PSgwfGFbSGU+PjJdKSkpe2ZvcihhW0hlPj4yXT0xLEs9b3QrKFJlKzE8PDIpfDAsRD0wLGdlPTAsQT0wLEc9MHxhW290KyhSZTw8Mik+PjJdLGs9UixjPXBlOyEoKDB8Ryk+PSgwfGFbSz4+Ml0pKTspMT09KCgwfGFbb3Qr''@;'; + put 'put ''KDErKG09MHxhWyhwPWJlKyhHPDwyKXwwKT4+Ml0pPDwyKT4+Ml0pLSgwfGFbb3QrKG08PDIpPj4yXSl8MCk/KGFbT2UrKG08PDIpPj4yXT0xLFF2ZShxZSxnZSxMZSksQT0rX2MoZixsLFJlLDB8YVtwPj4yXSkrQSxhWyhrPTB8YVtxZT4+Ml0pKyhnZTw8Mik+PjJdPWFbcD4+Ml0scD1ELG09''@;'; + put 'put ''Z2UrMXwwKTooJHNlKFZlLEQsbnQpLGI9K3Q4KGYsbCxSZSwwfGFbcD4+Ml0pLF9bKGM9MHxhW1ZlPj4yXSkrKEQ8PDMpPj4zXT1iLHA9RCsxfDAsbT1nZSxNPWMpLEQ9cCxnZT1tLEc9RysxfDA7Zm9yKGI9QS8rKDB8Z2UpLCgwfEQpPjAmJihrWChELE0pLGM9TSksQT0oMHxnZSk+MT82LjI4''@;'; + put 'put ''MzE4NTMwNzE3OTU4Ni8rKGdlKy0xfDApOjAscD0wLHc9MDs7KXtpZigoMHxwKT49KDB8Z2UpKXtSPWssbT1rO2JyZWFrIGV9ZTJlKGYsbCxiLHcsUmUsMHxhW2srKHA8PDIpPj4yXSkscD1wKzF8MCx3Kz1BfX1lbHNlIHA9RCxtPWssYz1wZX13aGlsZSgwKTtEPXArMXwwLHBlPWMsaz1tfUZ0''@;'; + put 'put ''KE9lKSxGdChwZSksRnQoayksbGU9U3R9ZnVuY3Rpb24ga1gobCxjKXt4MShjfD0wLGx8PTAsOCw2OCl9ZnVuY3Rpb24gZTJlKGwsYyxmLHAsbSxBKXt2YXIgdztsfD0wLGN8PTAsZj0rZixtfD0wLEF8PTAsdz0raGEoKyhwPStwKSkqZixtPTB8QXIobSxjKSxBPTB8QXIoQSxjKSxfW2wrKEE8''@;'; + put 'put ''PDMpPj4zXT13KyArX1tsKyhtPDwzKT4+M10scD0rRGEoK3ApKmYsX1tsKyhBKzE8PDMpPj4zXT1wKyArX1tsKyhtKzE8PDMpPj4zXX1mdW5jdGlvbiB0MmUobCxjLGYscCxtLEEpe2x8PTAsY3w9MCxwfD0wLG18PTAsQXw9MDt2YXIgdXIsSHIsRXIsZnIsdz0wLGI9MCxrPTAsTT0wLEQ9MCxS''@;'; + put 'put ''PTAsRz0wLEs9MCxwZT0wLGdlPTAsYmU9MCxPZT0wLExlPTAsUmU9MCxIZT0wLFZlPTAscWU9MCxudD0wLFdlPTAsb3Q9MCxTdD0wLGt0PTAsc3Q9MCxFdD0wLFp0PTAsY3Q9MCxidD0wLGFuPTAsU249MCxIbj0wLERyPTAsSnI9MCxMcj0wLGwwPTA7aWYoRz0rX1soZnw9MCk+PjNdLE09K19b''@;'; + put 'put ''KEQ9ZisyNHwwKT4+M10saz0rX1soUj1mKzMyfDApPj4zXSx1cj0rX1tmKzcyPj4zXSxIcj0wfGFbZis4MD4+Ml0sRXI9K19bZis4OD4+M10sZ2U9K19bZis5Nj4+M10sZnI9MHxhW2YrMTA0Pj4yXSx3PTB8YVtmKzU2Pj4yXSxDdSg5MjE5OCwzMiwxLDB8YVsxNTcxMl0pLCEoMD09KDB8Yyl8''@;'; + put 'put ''KDB8SHIpPDF8fChEcj0wfGFbYz4+Ml0sYj0wfGFbYys0Pj4yXSwoMHxsKTwxfCgwfGIpPDEpKSl7aWYoSnI9MHxRbigwfEFyKEs9bDw8MyxiKSksKDB8Yik8KDB8YVtmKzUyPj4yXSk/KFp0PTAsY3Q9MCxidD0wLGFuPTAsU249MCxIbj0wKTooZ1YodyksYW49MHxRbig4MCpsfDApLFNuPTB8''@;'; + put 'put ''UW4oODApLFp0PUhuPTB8UW4oODApLGN0PVNuLGJ0PWFuKSxhW0E+PjJdPTAsKDB8RHIpPT0oMHxiKSl7a3Q9MHxhaChjLDEpLHN0PTB8YVtrdCsyMD4+Ml0sRXQ9MHxhW2t0KzI0Pj4yXTtlOmRve2lmKDB8YVtmKzE2Pj4yXSlmb3IobncoMHxhW2YrMTA4Pj4yXSksYj0wfEFyKERyLGwpLHc9''@;'; + put 'put ''MDs7KXtpZigoMHx3KT49KDB8YikpYnJlYWsgZTtfW20rKHc8PDMpPj4zXT0rQmgoKSx3PXcrMXwwfX13aGlsZSgwKTtmb3IoTTwwJiYoTT0rSUQoa3QsbCxtKSxfW0Q+PjNdPU0pLGs8MCYmKF9bUj4+M109LjIsaz0uMiksRz49MCYmKF9bZj4+M109LTEsRz0tMSksU3Q9K3FsKCtNLCsob3Q9''@;'; + put 'put ''MS1HKSksbnQ9K3FsKCtrLC4zMzMzMzMzMzMzMzMzMzMzKigyLUcpKS9NLFdlPTB8UW4oSyksUmU9MHxRbihMZT0wfEFyKERyLEspKSxIZT0wfEFyKERyLGwpLFZlPWYrMTE2fDAscWU9MCE9KDB8cCksT2U9LTE9PUcsYmU9MCxHPTA7Oyl7Zm9yKHc9MDshKCgwfHcpPj0oMHxIZSkpOylfW0py''@;'; + put 'put ''Kyh3PDwzKT4+M109MCx3PXcrMXwwO2ZvcihnbygwfFJlLDB8bSwwfExlKSxLPTA7Oyl7aWYoISgoMHxLKTwoMHxEcikpKXtSPTA7YnJlYWt9Zm9yKHc9MDshKCgwfHcpPj0oMHxsKSk7KV9bV2UrKHc8PDMpPj4zXT0wLHc9dysxfDA7Uj0wfEFyKEssbCk7ZTpkb3tpZihxZSYwIT0oMHxhW1Zl''@;'; + put 'put ''Pj4yXSkpZm9yKHc9MDs7KXtpZigoMHx3KT09KDB8RHIpKXt3PTA7YnJlYWsgZX10OmRve2lmKCgwfHcpIT0oMHxLKSlmb3IoTT0rZHUobSxsLEssdyksQT1wKyh3PDwzKXwwLEQ9MHxBcih3LGwpLGs9K3FsKCtNLCtvdCksaz0xLyhPZT9NKk06ayksYj0wOzspe2lmKCgwfGIpPj0oMHxsKSli''@;'; + put 'put ''cmVhayB0O19bKHBlPVdlKyhiPDwzKXwwKT4+M109K19bQT4+M10qU3QqKCtfW20rKGIrUjw8Myk+PjNdLStfW20rKGIrRDw8Myk+PjNdKSprKyArX1twZT4+M10sYj1iKzF8MH19d2hpbGUoMCk7dz13KzF8MH1lbHNlIGZvcih3PTA7Oyl7aWYoKDB8dyk9PSgwfERyKSl7dz0wO2JyZWFrIGV9''@;'; + put 'put ''dDpkb3tpZigoMHx3KSE9KDB8SykpZm9yKE09K2R1KG0sbCxLLHcpLEE9MHxBcih3LGwpLGs9K3FsKCtNLCtvdCksaz0xLyhPZT9NKk06ayksYj0wOzspe2lmKCgwfGIpPj0oMHxsKSlicmVhayB0O19bKHBlPVdlKyhiPDwzKXwwKT4+M109KCtfW20rKGIrUjw8Myk+PjNdLStfW20rKGIrQTw8''@;'; + put 'put ''Myk+PjNdKSpTdCprKyArX1twZT4+M10sYj1iKzF8MH19d2hpbGUoMCk7dz13KzF8MH19d2hpbGUoMCk7Zm9yKDshKCgwfHcpPj0oMHxsKSk7KV9bKHBlPUpyKyh3K1I8PDMpfDApPj4zXT0rX1twZT4+M10rICtfW1dlKyh3PDwzKT4+M10sdz13KzF8MDtLPUsrMXwwfWU6Zm9yKDs7KXtpZigh''@;'; + put 'put ''KCgwfFIpPCgwfERyKSkpe009MCxiPTA7YnJlYWt9Zm9yKHc9MDshKCgwfHcpPj0oMHxsKSk7KV9bV2UrKHc8PDMpPj4zXT0wLHc9dysxfDA7Zm9yKEE9c3QrKChLPVIrMXwwKTw8Mil8MCxwZT0wfEFyKFIsbCksYj0wfGFbc3QrKFI8PDIpPj4yXTs7KXtpZigoMHxiKT49KDB8YVtBPj4yXSkp''@;'; + put 'put ''e3c9MDticmVha313PTB8YVsoRD1FdCsoYjw8Mil8MCk+PjJdO3Q6ZG97aWYoKDB8dykhPSgwfFIpKWZvcihrPStfYyhtLGwsUix3KSpudCx3PTA7Oyl7aWYoKDB8dyk+PSgwfGwpKWJyZWFrIHQ7TT1rKigrX1ttKyh3K3BlPDwzKT4+M10tK19bbSsoKDB8QXIoMHxhW0Q+PjJdLGwpKSt3PDwz''@;'; + put 'put ''KT4+M10pLF9bKExyPVdlKyh3PDwzKXwwKT4+M109K19bTHI+PjNdLU0sdz13KzF8MH19d2hpbGUoMCk7Yj1iKzF8MH1mb3IoOzspe2lmKCgwfHcpPj0oMHxsKSl7Uj1LO2NvbnRpbnVlIGV9X1soTHI9SnIrKHcrcGU8PDMpfDApPj4zXT0rX1tMcj4+M10rICtfW1dlKyh3PDwzKT4+M10sdz13''@;'; + put 'put ''KzF8MH19Zm9yKDshKCgwfGIpPj0oMHxEcikpOyl7Zm9yKEE9MHxBcihiLGwpLHc9MDs7KXtpZigoMHx3KT49KDB8bCkpe2s9MCx3PTA7YnJlYWt9X1tXZSsodzw8Myk+PjNdPStfW0pyKyh3K0E8PDMpPj4zXSx3PXcrMXwwfWZvcig7ISgoMHx3KT49KDB8bCkpOylrPShsMD0rX1tXZSsodzw8''@;'; + put 'put ''Myk+PjNdKSpsMCtrLHc9dysxfDA7TT0oaz0rRDAoK2spKStNO2U6ZG97aWYoaz4wKWZvcihrPTEvayx3PTA7Oyl7aWYoKDB8dyk+PSgwfGwpKXt3PTA7YnJlYWsgZX1fWyhMcj1XZSsodzw8Myl8MCk+PjNdPStfW0xyPj4zXSprLHc9dysxfDB9ZWxzZSB3PTB9d2hpbGUoMCk7Zm9yKDshKCgw''@;'; + put 'put ''fHcpPj0oMHxsKSk7KV9bKExyPW0rKHcrQTw8Myl8MCk+PjNdPStfW0xyPj4zXSsgK19bV2UrKHc8PDMpPj4zXSpnZSx3PXcrMXwwO2I9YisxfDB9aWYoISgoMHwoYmU9YmUrMXwwKSk8KDB8SHIpJihnZT0rTWsoZnIsZ2UsTSxHLEVyKSk+dXIpKWJyZWFrO0c9TX0wfGFbZisxMTI+PjJdJiZF''@;'; + put 'put ''ayhsLGt0LG0pLEZ0KFJlKSwoMHxrdCkhPSgwfGMpJiZSYShrdCksRnQoV2UpfWVsc2UgYVtBPj4yXT0tMTAwOzB8YnQmJkZ0KGFuKSwwfGN0JiZGdChTbiksMHxadCYmRnQoSG4pLEZ0KEpyKX19ZnVuY3Rpb24gSnZlKGwsYyxmLHAsbSxBKXtsfD0wLGN8PTAscHw9MCxtfD0wLEF8PTA7dmFy''@;'; + put 'put ''IERyLEpyLExyLGwwLFZpLFJvLGxvLGdhLHhpLERsLG9zLG9sLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxLPTAscGU9MCxnZT0wLGJlPTAsT2U9MCxMZT0wLFJlPTAsSGU9MCxWZT0wLHFlPTAsbnQ9MCxXZT0wLG90PTAsU3Q9MCxrdD0wLHN0PTAsRXQ9MCxadD0wLGN0PTAsYnQ9MCxh''@;'; + put 'put ''bj0wLFNuPTAsSG49MCx1cj0wLEhyPTAsRXI9MCxmcj0wLE9pPTAsVGE9MCxqYT0wLEwwPTAseGE9MDtpZihvbD1sZSxsZT1sZSszMnwwLGxvPW9sKzIwfDAseGk9b2wrMTZ8MCxEbD1vbCsxMnwwLG9zPW9sKzh8MCxEcj1vbCxnZT0rX1soZnw9MCk+PjNdLHBlPStfWyhrPWYrMjR8MCk+PjNd''@;'; + put 'put ''LEs9K19bKE09ZiszMnwwKT4+M10sSnI9K19bZis3Mj4+M10sTHI9MHxhW2YrODA+PjJdLGwwPStfW2YrODg+PjNdLGJlPStfW2YrOTY+PjNdLFZpPTB8YVtmKzEwND4+Ml0sYVsoUm89b2wrMjR8MCk+PjJdPTAsYVtsbz4+Ml09MTAsYVt4aT4+Ml09MCxhW0RsPj4yXT0wLGFbb3M+PjJdPTAs''@;'; + put 'put ''X1tEcj4+M109MCxEPTB8YVsoZ2E9Zis1NnwwKT4+Ml0sISgwPT0oMHxjKXwoMHxMcik8MXx8KE9pPTB8YVtjPj4yXSx3PTB8YVtjKzQ+PjJdLCgwfGwpPDF8KDB8dyk8MSkpKXsoMHx3KTwoMHxhW2YrNTI+PjJdKT8oamE9MCxUYT0wKTooamE9MHxnVihEKSxhW3hpPj4yXT0wfFFuKDgwKmx8''@;'; + put 'put ''MCksYVtEbD4+Ml09MHxRbig4MCksYVtvcz4+Ml09MHxRbig4MCksVGE9MSksYVtBPj4yXT0wO2U6ZG97aWYoKDB8T2kpPT0oMHx3KSl7Uj0wfGFoKGMsMSksdXI9MHxhW1IrMjA+PjJdLEhyPTB8YVtSKzI0Pj4yXTt0OmRve2lmKDB8YVtmKzE2Pj4yXSlmb3IobncoMHxhW2YrMTA4Pj4yXSks''@;'; + put 'put ''Yj0wfEFyKE9pLGwpLHc9MDs7KXtpZigoMHx3KT49KDB8YikpYnJlYWsgdDtfW20rKHc8PDMpPj4zXT0rQmgoKSx3PXcrMXwwfX13aGlsZSgwKTtmb3IocGU8MCYmKHBlPStJRChSLGwsbSksX1trPj4zXT1wZSksSzwwJiYoX1tNPj4zXT0uMixLPS4yKSxnZT49MCYmKF9bZj4+M109LTEsZ2U9''@;'; + put 'put ''LTEpLEhuPStxbCgrcGUsKyhTbj0xLWdlKSksRXQ9K3FsKCtLLC4zMzMzMzMzMzMzMzMzMzMzKigyLWdlKSkvcGUsRXI9MHxRbihadD1sPDwzKSxmcj0wfFFuKFp0PTB8QXIoT2ksWnQpKSxjdD0wIT0oMHxUYSksYnQ9ZisxMTZ8MCxhbj1mKzY0fDAsU3Q9LTE9PWdlLGt0PTAhPSgwfHApLHN0''@;'; + put 'put ''PTEvKygwfE9pKSx3PTAsV2U9MCxvdD0wOzspe1dlPVdlKzF8MCxnbygwfGZyLDB8bSwwfFp0KSxjdCYmKEQ9dz0wfGo3KGphKSx3PTB8WWsobCxPaSx3LG0sMD09KDB8YVtidD4+Ml0pPzA6cCkpLE9lPTAsZ2U9MCxMZT0wLHBlPTA7dDpmb3IoOygwfExlKTwoMHxPaSk7KXtmb3IoYj0wOyEo''@;'; + put 'put ''KDB8Yik+PSgwfGwpKTspX1tFcisoYjw8Myk+PjNdPTAsYj1iKzF8MDtmb3IoTT11cisoKHFlPUxlKzF8MCk8PDIpfDAsbnQ9MHxBcihMZSxsKSxrPTB8YVt1cisoTGU8PDIpPj4yXTshKCgwfGspPj0oMHxhW00+PjJdKSk7KXtiPTB8YVsoRz1Icisoazw8Mil8MCk+PjJdO246ZG97aWYoKDB8''@;'; + put 'put ''YikhPSgwfExlKSlmb3IoSz0rX2MobSxsLExlLGIpKkV0LGI9MDs7KXtpZigoMHxiKT49KDB8bCkpYnJlYWsgbjtMMD1LKigrX1ttKyhiK250PDwzKT4+M10tK19bbSsoKDB8QXIoMHxhW0c+PjJdLGwpKStiPDwzKT4+M10pLF9bKFZlPUVyKyhiPDwzKXwwKT4+M109K19bVmU+PjNdLUwwLGI9''@;'; + put 'put ''YisxfDB9fXdoaWxlKDApO2s9aysxfDB9bjpkb3tpZihjdCl7aWYockwodywrX1thbj4+M10sbSsobnQ8PDMpfDAsTGUsUm8sbG8seGksRGwsb3MsRHIsQSksT2U9K19bRHI+PjNdK09lLGdlKz0rKDB8KFZlPTB8YVtSbz4+Ml0pKSwwfGFbQT4+Ml0pe009RXIsaz1mcix3PUVyLGI9ZnIsRz02''@;'; + put 'put ''NzticmVhayBlfWZvcihNPTB8YVtvcz4+Ml0sRz0wfGFbRGw+PjJdLExlPTB8YVt4aT4+Ml0sYj0wOzspe2lmKCgwfGIpPj0oMHxWZSkpYnJlYWsgbjtmb3IoTDA9KEwwPStfW00rKGI8PDMpPj4zXSk+MWUtMTU/TDA6MWUtMTUsUmU9RysoYjw8Myl8MCxIZT0wfEFyKGIsbCksSz0rcWwoK0ww''@;'; + put 'put ''LCtTbiksSz0xLyhTdD9MMCpMMDpLKSxrPTA7ISgoMHxrKT49KDB8bCkpOylfWyh4YT1Fcisoazw8Myl8MCk+PjNdPStfW1JlPj4zXSpIbiooK19bbSsoaytudDw8Myk+PjNdLStfW0xlKyhrK0hlPDwzKT4+M10pKksrICtfW3hhPj4zXSxrPWsrMXwwO2I9YisxfDB9fWVsc2UgaWYoa3QmMCE9''@;'; + put 'put ''KDB8YVtidD4+Ml0pKWZvcihiPTA7Oyl7aWYoKDB8Yik9PSgwfE9pKSlicmVhayBuO3I6ZG97aWYoKDB8YikhPSgwfExlKSlmb3IoTDA9K2R1KG0sbCxMZSxiKSxNPXArKGI8PDMpfDAsRz0wfEFyKGIsbCksSz0rcWwoK0wwLCtTbiksSz0xLyhTdD9MMCpMMDpLKSxrPTA7Oyl7aWYoKDB8ayk+''@;'; + put 'put ''PSgwfGwpKWJyZWFrIHI7X1soVmU9RXIrKGs8PDMpfDApPj4zXT0rX1tNPj4zXSpIbiooK19bbSsoaytudDw8Myk+PjNdLStfW20rKGsrRzw8Myk+PjNdKSpLKyArX1tWZT4+M10saz1rKzF8MH19d2hpbGUoMCk7Yj1iKzF8MH1lbHNlIGZvcihiPTA7Oyl7aWYoKDB8Yik9PSgwfE9pKSlicmVh''@;'; + put 'put ''ayBuO3I6ZG97aWYoKDB8YikhPSgwfExlKSlmb3IoTDA9K2R1KG0sbCxMZSxiKSxNPTB8QXIoYixsKSxLPStxbCgrTDAsK1NuKSxLPTEvKFN0P0wwKkwwOkspLGs9MDs7KXtpZigoMHxrKT49KDB8bCkpYnJlYWsgcjtfWyhWZT1Fcisoazw8Myl8MCk+PjNdPSgrX1ttKyhrK250PDwzKT4+M10t''@;'; + put 'put ''K19bbSsoaytNPDwzKT4+M10pKkhuKksrICtfW1ZlPj4zXSxrPWsrMXwwfX13aGlsZSgwKTtiPWIrMXwwfX13aGlsZSgwKTtmb3IoSz0wLGI9MDshKCgwfGIpPj0oMHxsKSk7KUs9KEwwPStfW0VyKyhiPDwzKT4+M10pKkwwK0ssYj1iKzF8MDtwZT0oSz0rRDAoK0spKStwZTtuOmRve2lmKEs+''@;'; + put 'put ''MClmb3IoSz0xL0ssYj0wOzspe2lmKCgwfGIpPj0oMHxsKSl7Yj0wO2JyZWFrIG59X1soeGE9RXIrKGI8PDMpfDApPj4zXT0rX1t4YT4+M10qSyxiPWIrMXwwfWVsc2UgYj0wfXdoaWxlKDApO2Zvcig7Oyl7aWYoKDB8Yik+PSgwfGwpKXtMZT1xZTtjb250aW51ZSB0fV9bKHhhPW0rKGIrbnQ8''@;'; + put 'put ''PDMpfDApPj4zXT0rX1t4YT4+M10rICtfW0VyKyhiPDwzKT4+M10qYmUsYj1iKzF8MH19aWYoMHx3JiYoZXYodyksX1goamEsZ2Uqc3QqNStPZSpzdCkpLCEoKDB8V2UpPCgwfExyKSYoYmU9K01rKFZpLGJlLHBlLG90LGwwKSk+SnIpKWJyZWFrO290PXBlfTB8YVtmKzExMj4+Ml0/KEVrKGws''@;'; + put 'put ''UixtKSxNPUVyLGs9ZnIsYj1mcix3PUVyLEc9NjYpOihNPUVyLGs9ZnIsYj1mcix3PUVyLEc9NjYpfWVsc2UgYVtBPj4yXT0tMTAwLFI9YyxNPTAsaz0wLGI9MCx3PTAsRz02Nn13aGlsZSgwKTs2Nj09KDB8RykmJlRhJiYoRz02NyksNjc9PSgwfEcpJiYocFYoamEpLGFbZ2E+PjJdPUQpLDB8''@;'; + put 'put ''ayYmRnQoYiksKDB8UikhPSgwfGMpJiZSYShSKSwwfE0mJkZ0KHcpLDB8KHc9MHxhW3hpPj4yXSkmJkZ0KHcpLDB8KHc9MHxhW0RsPj4yXSkmJkZ0KHcpLDB8KHc9MHxhW29zPj4yXSkmJkZ0KHcpfWxlPW9sfWZ1bmN0aW9uIEREKGwsYyxmLHAsbSxBLHcsYil7bHw9MCxjfD0wLGZ8PTAsbXw9''@;'; + put 'put ''MCxBfD0wLHc9K3csYnw9MDt2YXIgTHIsbDAsVmksT2ksUm8sbG8samEsZ2EsRGwsb3Msb2wsaz0wLE09MCxEPTAsUj0wLEc9MCxLPTAscGU9MCxnZT0wLGJlPTAsT2U9MCxMZT0wLFJlPTAsSGU9MCxWZT0wLHFlPTAsbnQ9MCxXZT0wLG90PTAsU3Q9MCxrdD0wLHN0PTAsRXQ9MCxadD0wLGN0''@;'; + put 'put ''PTAsYnQ9MCxhbj0wLFNuPTAsSG49MCx1cj0wLEhyPTAsRXI9MCxmcj0wLERyPTAsSnI9MCxUYT0wLHhpPTAsTDA9MCx4YT0wO2lmKG9sPWxlLGxlPWxlKzQ4fDAsUj1vbCs4fDAsZ2E9b2wrMzZ8MCxMcj1vbCszMnwwLERsPW9sKzI4fDAsb3M9b2wrMjR8MCxsMD1vbCxHPStfWyhwfD0wKT4+''@;'; + put 'put ''M10scGU9K19bKEs9cCszMnwwKT4+M10sVmk9K19bcCs3Mj4+M10sT2k9MHxhW3ArODA+PjJdLFJvPStfW3ArODg+PjNdLGJlPStfW3ArOTY+PjNdLGxvPTB8YVtwKzEwND4+Ml0sYVsoamE9b2wrNDB8MCk+PjJdPTAsYVtnYT4+Ml09MTAsYVtMcj4+Ml09MCxhW0RsPj4yXT0wLGFbb3M+PjJd''@;'; + put 'put ''PTAsX1tsMD4+M109MCwhKDA9PSgwfGMpfCgwfE9pKTwxfHwoVGE9MHxhW2M+PjJdLEQ9MHxhW2MrND4+Ml0sKDB8bCk8MXwoMHxEKTwxKSkpe2lmKDAhPSgwfGFbcCsxMzI+PjJdKSYmKDB8RCk+PSgwfGFbcCs1Mj4+Ml0pPyhNPTB8UW4oODAqbHwwKSxhW0xyPj4yXT1NLGFbRGw+PjJdPTB8''@;'; + put 'put ''UW4oODApLGFbb3M+PjJdPTB8UW4oODApLGdlPTEsaz1NKTooZ2U9MCxrPTAsTT0wKSxhW2I+PjJdPTAsKDB8VGEpPT0oMHxEKSl7SnI9MHxhaChjLDEpLGY/KERyPTB8YVtmKzI4Pj4yXSxrPWYpOihEcj0wLGs9SnIpLGZyPTB8YVtrKzI0Pj4yXSxFcj0wfGFbaysyMD4+Ml0sdzwwJiYoa3Q9''@;'; + put 'put ''K2Z1bmN0aW9uIFh2ZShsLGMsZil7bHw9MCxjfD0wO3ZhciBwPTAsbT0wLEE9MCx3PTAsYj0wO2lmKGZ8PTApe209MCxwPTA7ZTpmb3IoOyEoKDB8bSk+PSgwfGwpKTspZm9yKEE9bSsxfDAsdz0wfGFbYysoQTw8Mik+PjJdLG09MHxhW2MrKG08PDIpPj4yXTs7KXtpZigoMHxtKT49KDB8dykp''@;'; + put 'put ''e209QTtjb250aW51ZSBlfWI9K19bZisobTw8Myk+PjNdK3AsbT1tKzF8MCxwPWJ9cC89KygwfGFbYysobDw8Mik+PjJdKX1lbHNlIHA9MTtyZXR1cm4rcH0oVGEsRXIsRHIpLHc9KFN0PSsoMHxhW0VyKyhUYTw8Mik+PjJdKSkvKChXZT0rKDB8VGEpKSpXZS1TdCkqdy8rcWwoK2t0LCsoRysx''@;'; + put 'put ''KSksSHI9MHxhWzE1NzEyXSxfW1I+PjNdPWt0LF9bUis4Pj4zXT13LFQwKEhyLDkyMjMxLFIpKTtlOmRve2lmKDB8YVtwKzE2Pj4yXSlmb3IoQ3UoOTIyNTMsMjQsMSwwfGFbMTU3MTJdKSxudygwfGFbcCsxMDg+PjJdKSxNPTB8QXIoVGEsbCksaz0wOzspe2lmKCgwfGspPj0oMHxNKSlicmVh''@;'; + put 'put ''ayBlO19bQSsoazw8Myk+PjNdPStCaCgpLGs9aysxfDB9fXdoaWxlKDApOyhmdW5jdGlvbiBLMyhsLGMsZixwLG0sQSl7bHw9MCxjfD0wLGZ8PTAscHw9MCxtfD0wO3ZhciBiZSxPZSxMZSx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAsSz0wLHBlPTAsZ2U9MCxSZT0wO0xlPWxlLGxlPWxl''@;'; + put 'put ''KzE2fDAsT2U9TGUsYmU9MD09KDB8KEF8PTApKSxrPTAsTT0wLEQ9MSxiPTA7ZTpmb3IoOyEoKDB8Yik+PSgwfGwpKTspZm9yKHBlPWIrMXwwLGdlPXArKHBlPDwyKXwwLEs9MHxhW3ArKGI8PDIpPj4yXTs7KXtpZigoMHxLKT49KDB8YVtnZT4+Ml0pKXtiPXBlO2NvbnRpbnVlIGV9dz0wfGFb''@;'; + put 'put ''bSsoSzw8Mik+PjJdO3Q6ZG97aWYoKDB8dykhPSgwfGIpKWZvcihSPStkdShmLGMsYix3KSxiZXx8KEQ9K19bQSsoSzw8Myk+PjNdKSxSZT0xLyhEKkQpLEc9RCpSKlJlLFI9UipSKlJlLHc9MDs7KXtpZigoMHx3KT49KDB8YykpYnJlYWsgdDt3PXcrMXwwLGsrPVIsTSs9R319d2hpbGUoMCk7''@;'; + put 'put ''Sz1LKzF8MH1mb3Ioaz1NL2ssYj0wfEFyKGMsbCksdz0wOyEoKDB8dyk+PSgwfGIpKTspX1soYz1mKyh3PDwzKXwwKT4+M109K19bYz4+M10qayx3PXcrMXwwO2Y9MHxhWzE1NzEyXSxfW09lPj4zXT1rLFQwKGYsOTIyNzgsT2UpLGxlPUxlfSkoVGEsbCxBLEVyLGZyLERyKSxwZTwwJiYoX1tL''@;'; + put 'put ''Pj4zXT0uMiksRz49MCYmKF9bcD4+M109LTEsRz0tMSksSG49MHxRbih1cj1sPDwzKSxIcj0wfFFuKHVyPTB8QXIoVGEsdXIpKSxFdD0wIT0oMHxnZSksWnQ9cCsxMTZ8MCxjdD0wPT0oMHxEciksYnQ9cCs4fDAsYW49MCE9KDB8bSksU249LTE9PUcsa3Q9MS1HLHN0PXArNjR8MCxrPTAsb3Q9''@;'; + put 'put ''MCxTdD0wLEc9MSxXZT1iZTtlOmZvcig7Oyl7b3Q9b3QrMXwwLGdvKDB8SHIsMHxBLDB8dXIpLEV0JiYoaz0wfFlrKGwsVGEsMTAsQSwwPT0oMHxhW1p0Pj4yXSk/MDptKSksZ2U9MCxiZT0wO3Q6Zm9yKDsoMHxnZSk8KDB8VGEpOyl7Zm9yKE09MDshKCgwfE0pPj0oMHxsKSk7KV9bSG4rKE08''@;'; + put 'put ''PDMpPj4zXT0wLE09TSsxfDA7Zm9yKEs9RXIrKChudD1nZSsxfDApPDwyKXwwLHFlPTB8QXIoZ2UsbCksUj0wfGFbRXIrKGdlPDwyKT4+Ml07ISgoMHxSKT49KDB8YVtLPj4yXSkpOyl7TT0wfGFbKGY9ZnIrKFI8PDIpfDApPj4yXTtuOmRve2lmKCgwfE0pIT0oMHxnZSkpe1ZlPStkdShBLGws''@;'; + put 'put ''Z2UsTSksY3R8fChHPStfW0RyKyhSPDwzKT4+M10pLHBlPStfW2J0Pj4zXTtyOmRve2lmKDIhPXBlKWlmKDE9PXBlKWZvcihwZT0xLyhHKkcpKihWZS1HKSxPZT0xL1ZlLE09MDs7KXtpZigoMHxNKT49KDB8bCkpYnJlYWsgcjtMZT1wZSooK19bQSsoTStxZTw8Myk+PjNdLStfW0ErKCgwfEFy''@;'; + put 'put ''KDB8YVtmPj4yXSxsKSkrTTw8Myk+PjNdKSpPZSxfWyhIZT1IbisoTTw8Myl8MCk+PjNdPStfW0hlPj4zXS1MZSxNPU0rMXwwfWVsc2UgZm9yKHBlPTEvK3FsKCtHLCsocGUrMSkpLE9lPVZlLUcsTGU9MS9WZSxNPTA7Oyl7aWYoKDB8TSk+PSgwfGwpKWJyZWFrIHI7TDA9cGUqKEwwPStfW0Er''@;'; + put 'put ''KE0rcWU8PDMpPj4zXS0rX1tBKygoMHxBcigwfGFbZj4+Ml0sbCkpK008PDMpPj4zXSkqK3FsKCtPZSwrICtfW2J0Pj4zXSkqTGUsX1soSGU9SG4rKE08PDMpfDApPj4zXT0rX1tIZT4+M10tTDAsTT1NKzF8MH1lbHNlIGZvcihwZT1WZS1HLHBlPXBlKnBlKigxLyhHKkcqRykpLE9lPTEvVmUs''@;'; + put 'put ''TT0wOzspe2lmKCgwfE0pPj0oMHxsKSlicmVhayByO0wwPXBlKigrX1tBKyhNK3FlPDwzKT4+M10tK19bQSsoKDB8QXIoMHxhW2Y+PjJdLGwpKStNPDwzKT4+M10pKk9lLF9bKEhlPUhuKyhNPDwzKXwwKT4+M109K19bSGU+PjNdLUwwLE09TSsxfDB9fXdoaWxlKDApO2lmKGFuJjAhPSgwfGFb''@;'; + put 'put ''WnQ+PjJdKSlmb3IoRD1tKyhSPDwzKXwwLHBlPStxbCgrVmUsK2t0KSxwZT0xLyhTbj9WZSpWZTpwZSksTT0wOzspe2lmKCgwfE0pPj0oMHxsKSlicmVhayBuO0wwPStfW0Q+PjNdKncqKCtfW0ErKE0rcWU8PDMpPj4zXS0rX1tBKygoMHxBcigwfGFbZj4+Ml0sbCkpK008PDMpPj4zXSkqcGUs''@;'; + put 'put ''X1soSGU9SG4rKE08PDMpfDApPj4zXT0rX1tIZT4+M10tTDAsTT1NKzF8MH1lbHNlIGZvcihwZT0rcWwoK1ZlLCtrdCkscGU9MS8oU24/VmUqVmU6cGUpLE09MDs7KXtpZigoMHxNKT49KDB8bCkpYnJlYWsgbjtMMD0oK19bQSsoTStxZTw8Myk+PjNdLStfW0ErKCgwfEFyKDB8YVtmPj4yXSxs''@;'; + put 'put ''KSkrTTw8Myk+PjNdKSp3KnBlLF9bKEhlPUhuKyhNPDwzKXwwKT4+M109K19bSGU+PjNdLUwwLE09TSsxfDB9fX13aGlsZSgwKTtSPVIrMXwwfW46ZG97aWYoRXQpe2lmKHJMKGssK19bc3Q+PjNdLEErKHFlPDwzKXwwLGdlLGphLGdhLExyLERsLG9zLGwwLGIpLGY9MHxhW2phPj4yXSwwfGFb''@;'; + put 'put ''Yj4+Ml0pYnJlYWsgZTtmb3IoUj0wfGFbb3M+PjJdLEs9MHxhW0RsPj4yXSxnZT0wfGFbTHI+PjJdLE09MDs7KXtpZigoMHxNKT49KDB8Zikpe3BlPTAsTT0wO2JyZWFrIG59Zm9yKEwwPShMMD0rX1tSKyhNPDwzKT4+M10pPjFlLTE1P0wwOjFlLTE1LFJlPUsrKE08PDMpfDAsSGU9MHxBcihN''@;'; + put 'put ''LGwpLHBlPStxbCgrTDAsK2t0KSxwZT0xLyhTbj9MMCpMMDpwZSksRD0wOyEoKDB8RCk+PSgwfGwpKTspX1soeGE9SG4rKEQ8PDMpfDApPj4zXT0rX1tSZT4+M10qdyooK19bQSsoRCtxZTw8Myk+PjNdLStfW2dlKyhEK0hlPDwzKT4+M10pKnBlKyArX1t4YT4+M10sRD1EKzF8MDtNPU0rMXww''@;'; + put 'put ''fX1lbHNlIGlmKGFuJjAhPSgwfGFbWnQ+PjJdKSlmb3IoTT0wOzspe2lmKCgwfE0pPT0oMHxUYSkpe3BlPTAsTT0wO2JyZWFrIG59cjpkb3tpZigoMHxNKSE9KDB8Z2UpKWZvcihMMD0rZHUoQSxsLGdlLE0pLGY9bSsoTTw8Myl8MCxSPTB8QXIoTSxsKSxwZT0rcWwoK0wwLCtrdCkscGU9MS8o''@;'; + put 'put ''U24/TDAqTDA6cGUpLEQ9MDs7KXtpZigoMHxEKT49KDB8bCkpYnJlYWsgcjtfWyhIZT1IbisoRDw8Myl8MCk+PjNdPStfW2Y+PjNdKncqKCtfW0ErKEQrcWU8PDMpPj4zXS0rX1tBKyhEK1I8PDMpPj4zXSkqcGUrICtfW0hlPj4zXSxEPUQrMXwwfX13aGlsZSgwKTtNPU0rMXwwfWVsc2UgZm9y''@;'; + put 'put ''KE09MDs7KXtpZigoMHxNKT09KDB8VGEpKXtwZT0wLE09MDticmVhayBufXI6ZG97aWYoKDB8TSkhPSgwfGdlKSlmb3IoTDA9K2R1KEEsbCxnZSxNKSxmPTB8QXIoTSxsKSxwZT0rcWwoK0wwLCtrdCkscGU9MS8oU24/TDAqTDA6cGUpLEQ9MDs7KXtpZigoMHxEKT49KDB8bCkpYnJlYWsgcjtf''@;'; + put 'put ''WyhIZT1IbisoRDw8Myl8MCk+PjNdPSgrX1tBKyhEK3FlPDwzKT4+M10tK19bQSsoRCtmPDwzKT4+M10pKncqcGUrICtfW0hlPj4zXSxEPUQrMXwwfX13aGlsZSgwKTtNPU0rMXwwfX13aGlsZSgwKTtmb3IoOyEoKDB8TSk+PSgwfGwpKTspcGU9KEwwPStfW0huKyhNPDwzKT4+M10pKkwwK3Bl''@;'; + put 'put ''LE09TSsxfDA7YmU9KHBlPStEMCgrcGUpKStiZTtuOmRve2lmKHBlPjApZm9yKHBlPTEvcGUsTT0wOzspe2lmKCgwfE0pPj0oMHxsKSl7TT0wO2JyZWFrIG59X1soeGE9SG4rKE08PDMpfDApPj4zXT0rX1t4YT4+M10qcGUsTT1NKzF8MH1lbHNlIE09MH13aGlsZSgwKTtmb3IoOzspe2lmKCgw''@;'; + put 'put ''fE0pPj0oMHxsKSl7Z2U9bnQ7Y29udGludWUgdH1fWyh4YT1BKyhNK3FlPDwzKXwwKT4+M109K19beGE+PjNdKyArX1tIbisoTTw8Myk+PjNdKldlLE09TSsxfDB9fWlmKDB8ayYmZXYoayksISgoMHxvdCk8KDB8T2kpJihXZT0rTWsobG8sV2UsYmUsU3QsUm8pKT5WaSkpe3hpPTgzO2JyZWFr''@;'; + put 'put ''fVN0PWJlfTgzPT0oMHx4aSkmJjB8YVtwKzExMj4+Ml0mJkVrKGwsSnIsQSksRnQoSHIpLCgwfEpyKSE9KDB8YykmJlJhKEpyKSxGdChIbiksTT1rPTB8YVtMcj4+Ml19ZWxzZSBhW2I+PjJdPS0xMDA7MHxNJiZGdChrKSwwfChrPTB8YVtEbD4+Ml0pJiZGdChrKSwwfChrPTB8YVtvcz4+Ml0p''@;'; + put 'put ''JiZGdChrKX1sZT1vbH1mdW5jdGlvbiBuMmUobCxjLGYpe2Z8PTA7dmFyIEQsUixHLEsscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLHBlPTA7Uj0wfGFbMjArKGN8PTApPj4yXSxHPTB8YVtjKzI0Pj4yXSxLPTB8UW4oKGx8PTApPDwzKSxEPTB8YVtjPj4yXSxrPTA7ZTpmb3IoOygwfGsp''@;'; + put 'put ''PCgwfEQpOyl7Zm9yKGM9MDshKCgwfGMpPj0oMHxsKSk7KV9bSysoYzw8Myk+PjNdPTAsYz1jKzF8MDtmb3IoYj0wfGFbUisoKE09aysxfDApPDwyKT4+Ml0sdz0wfGFbUisoazw8Mik+PjJdLGM9MDshKCgwfHcpPj0oMHxiKSk7KXtpZigoMHwocD0wfGFbRysodzw8Mik+PjJdKSkhPSgwfGsp''@;'; + put 'put ''KXtmb3IoQT0wfEFyKHAsbCkscD0wOyEoKDB8cCk+PSgwfGwpKTspX1socGU9SysocDw8Myl8MCk+PjNdPStfW3BlPj4zXSsgK19bZisoQStwPDwzKT4+M10scD1wKzF8MDtjPWMrMXwwfXc9dysxfDB9aWYoKDB8Yyk8PTApaz1NO2Vsc2UgZm9yKG09LjUvKygwfGMpLHA9MHxBcihrLGwpLGM9''@;'; + put 'put ''MDs7KXtpZigoMHxjKT49KDB8bCkpe2s9TTtjb250aW51ZSBlfV9bKHBlPWYrKGMrcDw8Myl8MCk+PjNdPStfW0srKGM8PDMpPj4zXSptKy41KitfW3BlPj4zXSxjPWMrMXwwfX1GdChLKX1mdW5jdGlvbiBMRChsKXt2YXIgdyxiLGssTSxELGM9MCxmPTAscD0wLG09MCxBPTA7Zm9yKGI9MHxh''@;'; + put 'put ''WzIwKyhsfD0wKT4+Ml0saz0wfGFbbCsyND4+Ml0sTT0wfFFuKDQrKCh3PTB8YVtsPj4yXSk8PDIpfDApLGw9MDs7KXtpZigoMHxsKT4oMHx3KSl7Zj0wLHA9MDticmVha31hW00rKGw8PDIpPj4yXT0wLGw9bCsxfDB9Zm9yKDshKCgwfHApPj0oMHx3KSk7KXtmb3IoQT0wfGFbYisoKG09cCsx''@;'; + put 'put ''fDApPDwyKT4+Ml0sbD0wLGM9MHxhW2IrKHA8PDIpPj4yXTshKCgwfGMpPj0oMHxBKSk7KWw9bCsoKDB8cCkhPSgwfGFbaysoYzw8Mik+PjJdKSYxKXwwLGM9YysxfDA7YVsoQT1NKyhsPDwyKXwwKT4+Ml09cD0xKygwfGFbQT4+Ml0pfDAsZj0oMHxmKT4oMHxwKT9mOnAscD1tfXJldHVybiBs''@;'; + put 'put ''PS44KisoMHxmKTwoRD0rKDB8YVtNKzQ+PjJdKSkmJi4zKisoMHx3KTxEPzE6MCxGdChNKSwwfGx9ZnVuY3Rpb24gcjJlKGwsYyxmKXtsfD0wLGZ8PTA7dmFyIEcscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsSz0wLHBlPTAsZ2U9MDtmb3IoRz1sZSxsZT1sZSs0OHwwLFI9''@;'; + put 'put ''RysxNnwwLGs9Ryx3PTB8QXIoY3w9MCxjKSxtPTA7Oyl7aWYoKDB8bSk+PSgwfHcpKXttPTA7YnJlYWt9X1tSKyhtPDwzKT4+M109MCxtPW0rMXwwfWZvcig7Oyl7aWYoKDB8bSk+PSgwfGMpKXt3PTA7YnJlYWt9X1trKyhtPDwzKT4+M109MCxtPW0rMXwwfWZvcig7ISgoMHx3KT49KDB8bCkp''@;'; + put 'put ''Oyl7Zm9yKGI9MHxBcih3LGMpLG09MDshKCgwfG0pPj0oMHxjKSk7KV9bKEQ9aysobTw8Myl8MCk+PjNdPStfW0Q+PjNdKyArX1tmKyhtK2I8PDMpPj4zXSxtPW0rMXwwO3c9dysxfDB9Zm9yKHA9MS8rKDB8bCksbT0wOzspe2lmKCgwfG0pPj0oMHxjKSl7dz0wO2JyZWFrfV9bKEQ9aysobTw8''@;'; + put 'put ''Myl8MCk+PjNdPStfW0Q+PjNdKnAsbT1tKzF8MH1mb3IoOzspe2lmKCgwfHcpPj0oMHxsKSl7Yj0wO2JyZWFrfWZvcihiPTB8QXIodyxjKSxtPTA7ISgoMHxtKT49KDB8YykpOylfWyhEPWYrKG0rYjw8Myl8MCk+PjNdPStfW0Q+PjNdLStfW2srKG08PDMpPj4zXSxtPW0rMXwwO3c9dysxfDB9''@;'; + put 'put ''Zm9yKDshKCgwfGIpPj0oMHxsKSk7KXtmb3Ioaz0wfEFyKGIsYyksdz0wOyEoKDB8dyk+PSgwfGMpKTspe2ZvcihNPWYrKHcrazw8Myl8MCxEPTB8QXIodyxjKSxtPTA7KDB8bSkhPSgwfGMpOylfWyhLPVIrKG0rRDw8Myl8MCk+PjNdPStfW0s+PjNdKyArX1tmKyhtK2s8PDMpPj4zXSorX1tN''@;'; + put 'put ''Pj4zXSxtPW0rMXwwO3c9dysxfDB9Yj1iKzF8MH1mb3IocD0wPT0ocD0rX1tSKzg+PjNdKT8wOi0oKEE9K19bUisyND4+M10pLShwZT0rX1tSPj4zXSktK0QwKCsocGUqcGUrcCpwKjQrKC0yKnBlK0EpKkEpKSkvKDIqcCkscC89QT0rRDAoKyhwKnArMSkpLEE9MS9BLG09MDshKCgwfG0pPj0o''@;'; + put 'put ''MHxsKSk7KUs9MHxBcihtLGMpLF9bKFI9ZisoSzw8Myl8MCk+PjNdPShnZT0rX1soSz1mKyhLKzE8PDMpfDApPj4zXSkqQSsocGU9K19bUj4+M10pKnAsX1tLPj4zXT1nZSpwLXBlKkEsbT1tKzF8MDtsZT1HfWZ1bmN0aW9uIHhrKGwsYyxmLHAsbSxBLHcsYixrLE0peyFmdW5jdGlvbiBpMmUo''@;'; + put 'put ''bCxjLGYscCxtLEEsdyxiLGssTSl7bHw9MCxjfD0wLGZ8PTAsbXw9MCx3fD0wLGJ8PTAsa3w9MCxNfD0wO3ZhciBhbixIbixEPTAsUj0wLEc9MCxLPTAscGU9MCxnZT0wLGJlPTAsT2U9MCxMZT0wLFJlPTAsSGU9MCxWZT0wLHFlPTAsbnQ9MCxXZT0wLFN0PTAsa3Q9MCxzdD0wLEV0PTAsYnQ9''@;'; + put 'put ''MCxTbj0wO0huPWxlLGxlPWxlKzE5MnwwLGdvKDB8KGFuPUhuKSwwfChwfD0wKSwxNjgpLGFbTT4+Ml09MDtkb3tpZigwfGMmJiEoKDB8bCk8MXwoMHwoU249MHxhW2MrND4+Ml0pKTwxKSl7MCE9KDB8bGgoYywwKSkmJjE9PSgwfGFbYysxNj4+Ml0pPyhSPTE9PSgwfGFbcCsxMzY+PjJdKT8w''@;'; + put 'put ''fHdwKGYpOmYsYnQ9MHx3cChjKSk6YmU9NTtkb3tpZig1PT0oMHxiZSkpe2lmKDE9PSgwfGFbcCsxMzY+PjJdKSl7YnQ9MHxKayhjLDApLFI9MHxKayhmLDApO2JyZWFrfWJ0PTB8QTUoYyksUj1mO2JyZWFrfX13aGlsZSgwKTtpZigzPT0oMHwoRz0wfGFbKEV0PXArMTYwfDApPj4yXSkpPygw''@;'; + put 'put ''fGIpPjAmJihiZT0xNCk6KDB8Yik+MCY0PT0oMHxHKSYmKGJlPTE0KSwxND09KDB8YmUpKXtpZihmPTB8UW4oMHxBcihsPDwzLDB8YVtidD4+Ml0pKSx4ayhsLFNuPTB8U1goYnQsYixrKSwwLHAsMCwwLGYsMCwwLE0pLG8yZShsLGJ0LGIsayx3LGYpLFlWKGwsMCwwLDAsMCwwLDB8YVtFdD4+''@;'; + put 'put ''Ml0pLFJhKFNuKSxGdChmKSwoMHxidCk9PSgwfGMpKWJyZWFrO1JhKGJ0KTticmVha31mb3Ioa3Q9MHxvUCgwfGFbcCs0ND4+Ml0sMHxhW3ArNDg+PjJdKSxhW2t0KzE2Pj4yXT1hW3ArNDA+PjJdLEs9MHxfQShzdD0wfGFQKGJ0LFIsbSxrdCkpLHBlPTB8YVtLKzMyPj4yXT8wfFFuKDB8QXIo''@;'; + put 'put ''bDw8MywwfGFbSys0Pj4yXSkpOncsRz0wfExEKGJ0KSwtMS4wMDAxMjM0PT0rX1twPj4zXSYmKF9bcD4+M109MD09KDB8Ryk/LTE6LTEuOCksTGU9cCsxMzZ8MCxSZT1wKzI0fDAsSGU9cCsxNnwwLFZlPXArMTA0fDAscWU9cCs5NnwwLG50PWw8PDMsV2U9cCsxMzJ8MCxTdD1wKzgwfDA7Oyl7''@;'; + put 'put ''ZTpkb3tzd2l0Y2goMHxhW0xlPj4yXSl7Y2FzZSAwOnN3aXRjaCgwfGFbV2U+PjJdKXtjYXNlIDA6dDJlKGwsMHxhW0srOD4+Ml0scCwwfGFbSysyND4+Ml0scGUsTSk7YnJlYWsgZTtjYXNlIDI6Rz1LKzh8MCxiZT0yOTticmVhaztjYXNlIDM6YmU9KDB8YVsoZ2U9MHxhWyhHPUsrOHwwKT4+''@;'; + put 'put ''Ml0pPj4yXSk+MWU0PzI5OjMwO2JyZWFrO2RlZmF1bHQ6Z2U9MHxhW0srOD4+Ml0sYmU9MzB9aWYoMjk9PSgwfGJlKSl7cXNlKGwsMHxhW0c+PjJdLHAsMHxhW0srMjQ+PjJdLHBlLE0pO2JyZWFrIGV9aWYoMzA9PSgwfGJlKSl7SnZlKGwsZ2UscCwwfGFbSysyND4+Ml0scGUsTSk7YnJlYWsg''@;'; + put 'put ''ZX1icmVhaztjYXNlIDE6X1txZT4+M109MSxhW1ZlPj4yXT0xLEQ9KE9lPTA9PSgwfGFbSysyOD4+Ml0pKT8uNTouMDUsYVtTdD4+Ml09T2U/NTAwOjEwMCxPZT0wPT0oMHxhW0srMzI+PjJdKSxERChsLDB8YVsoRz1LKzh8MCk+PjJdLDB8YVsoZ2U9SysxMnwwKT4+Ml0scCwwfGFbKGJlPUsr''@;'; + put 'put ''MjR8MCk+PjJdLHBlLEQsTSksT2UmJihhW0hlPj4yXT0wLF9bcWU+PjNdPS4wNSxhW1ZlPj4yXT0wLEREKGwsMHxhW0c+PjJdLDB8YVtnZT4+Ml0scCwwfGFbYmU+PjJdLHBlLC41KkQsTSksREQobCwwfGFbRz4+Ml0sMHxhW2dlPj4yXSxwLDB8YVtiZT4+Ml0scGUsLjEyNSpELE0pLEREKGws''@;'; + put 'put ''MHxhW0c+PjJdLDB8YVtnZT4+Ml0scCwwfGFbYmU+PjJdLHBlLC4wMzEyNSpELE0pKX19d2hpbGUoMCk7aWYoIShiZT0wfGFbSyszMj4+Ml0pKXtiZT0zOTticmVha31pZigwfGFbTT4+Ml0pe2JlPTM1O2JyZWFrfU9lPTB8YVtLKzE2Pj4yXSxHPTB8YVtLKzQwPj4yXSxnZT0wfGFbYmUrMzI+''@;'; + put 'put ''PjJdPzB8UW4oMHxBcihudCwwfGFbYmUrND4+Ml0pKTp3LG44KGwsMHxhW2JlKzg+PjJdLE9lLDB8YVtiZSsyMD4+Ml0scGUsZ2UsRywuMDAxKitfW1JlPj4zXSksRnQocGUpLGFbSGU+PjJdPTAsX1tSZT4+M109Ljc1KitfW1JlPj4zXSxhW1ZlPj4yXT0wLF9bcWU+PjNdPSgoMHxhWzQwKygw''@;'; + put 'put ''fGFbYmUrMjg+PjJdKT4+Ml0pLTl8MCk+Pj4wPDI/MTouMSxLPWJlLHBlPWdlfTM1PT0oMHxiZSk/RnQocGUpOjM5PT0oMHxiZSkmJihMeChsLGJ0LHAsbSx3LE0pLDI9PSgwfGwpJiZyMmUoU24sMix3KSwwIT0oRD0rX1twKzE1Mj4+M10pJiYkaChTbixsLHcsRCksWVYobCwwLDAsMCwwLDAs''@;'; + put 'put ''MHxhW0V0Pj4yXSkpLGdvKDB8cCwwfGFuLDE2OCksKDB8YnQpIT0oMHxjKSYmUmEoYnQpLDA9PSgwfFIpfCgwfFIpPT0oMHxmKXx8UmEoUikscnQoa3QpLGx0KHN0KX19d2hpbGUoMCk7bGU9SG59KGx8PTAsY3w9MCxmfD0wLHB8PTAsbXw9MCwwLHd8PTAsYnw9MCxrfD0wLE18PTApfWZ1bmN0''@;'; + put 'put ''aW9uIFNYKGwsYyxmKXtjfD0wLGZ8PTA7dmFyIE9lLExlLFJlLEhlLHFlLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxLPTAscGU9MCxnZT0wLGJlPTAsVmU9MDtmb3IocWU9bGUsbGU9bGUrMTZ8MCxWZT1xZSxMZT0wfGFbMjArKGx8PTApPj4yXSxSZT0wfGFbbCsy''@;'; + put 'put ''ND4+Ml0sSGU9MHxRbihhW2w+PjJdPDwyKSxwPTA7Oyl7aWYoKDB8cCk+PSgwfGFbbD4+Ml0pKXtwPTA7YnJlYWt9YVtIZSsocDw8Mik+PjJdPTEscD1wKzF8MH1mb3IoOzspe2lmKCgwfHApPj0oMHxjKSl7cD0wLGY9MDticmVha31hW0hlKyhhW2YrKHA8PDIpPj4yXTw8Mik+PjJdPS0xLHA9''@;'; + put 'put ''cCsxfDB9Zm9yKDs7KXtpZigoMHxmKT49KDB8KEQ9MHxhW2w+PjJdKSkpe2Y9MCxjPTA7YnJlYWt9KDB8YVsoYz1IZSsoZjw8Mil8MCk+PjJdKT4wJiYoYVtjPj4yXT1wLHA9cCsxfDApLGY9ZisxfDB9ZTpmb3IoOzspe2Zvcig7Oyl7aWYoKDB8Yyk+PSgwfEQpKWJyZWFrIGU7aWYoKDB8YVtI''@;'; + put 'put ''ZSsoYzw8Mik+PjJdKT49MClicmVhaztjPWMrMXwwfWZvcihNPTB8YVtMZSsoKGs9YysxfDApPDwyKT4+Ml0sYj0wfGFbTGUrKGM8PDIpPj4yXTs7KXtpZigoMHxiKT49KDB8TSkpe2M9aztjb250aW51ZSBlfW09MHxhW1JlKyhiPDwyKT4+Ml07dDpkb3tpZigoMHxhW0hlKyhtPDwyKT4+Ml0p''@;'; + put 'put ''Pi0xKWY9ZisxfDA7ZWxzZSBmb3Iodz0wfGFbTGUrKG0rMTw8Mik+PjJdLEE9MHxhW0xlKyhtPDwyKT4+Ml07Oyl7aWYoKDB8QSk+PSgwfHcpKWJyZWFrIHQ7KDB8KG09MHxhW1JlKyhBPDwyKT4+Ml0pKSE9KDB8YykmJihmPSgoMHxhW0hlKyhtPDwyKT4+Ml0pPj4+MzFeMSkrZnwwKSxBPUEr''@;'; + put 'put ''MXwwfX13aGlsZSgwKTtiPWIrMXwwfX1jPWY8PDIsKDB8Zik+MD8oZ2U9MHxRbihjKSxLPWJlPTB8UW4oYykscGU9Z2UpOihLPTAscGU9MCxnZT0wLGJlPTApLE9lPTB8YVsxNTcxMl0sYz0wLG09MDtlOmZvcig7Oyl7Zm9yKGY9MHxhW2w+PjJdOzspe2lmKCgwfGMpPj0oMHxmKSlicmVhayBl''@;'; + put 'put ''O2lmKCgwfGFbKEc9SGUrKGM8PDIpfDApPj4yXSk+PTApYnJlYWs7Yz1jKzF8MH1mb3IoUj1MZSsoKEQ9YysxfDApPDwyKXwwLE09MHxhW0xlKyhjPDwyKT4+Ml0sZj1tOzspe2lmKCgwfE0pPj0oMHxhW1I+PjJdKSl7Yz1ELG09Zjtjb250aW51ZSBlfUE9MHxhWyhtPVJlKyhNPDwyKXwwKT4+''@;'; + put 'put ''Ml07dDpkb3tpZigoMHxhW0hlKyhBPDwyKT4+Ml0pPi0xKWFbcGUrKGY8PDIpPj4yXT1hW0c+PjJdLGFbSysoZjw8Mik+PjJdPWFbSGUrKGFbbT4+Ml08PDIpPj4yXSxmPWYrMXwwO2Vsc2UgZm9yKGs9TGUrKEErMTw8Mil8MCxiPTB8YVtMZSsoQTw8Mik+PjJdOzspe2lmKCgwfGIpPj0oMHxh''@;'; + put 'put ''W2s+PjJdKSlicmVhayB0O3c9MHxhWyhtPVJlKyhiPDwyKXwwKT4+Ml07ZG97aWYoKDB8dykhPSgwfGMpJiYoMHxhW0hlKyh3PDwyKT4+Ml0pPi0xKXtpZihhW3BlKyhmPDwyKT4+Ml09YVtHPj4yXSx3PWYrMXwwLGFbSysoZjw8Mik+PjJdPWFbSGUrKGFbbT4+Ml08PDIpPj4yXSxmPTB8YVtI''@;'; + put 'put ''ZSsoYVttPj4yXTw8Mik+PjJdLDY4IT0oMHwoQT0wfGFbRz4+Ml0pKSl7aWYoNjghPSgwfGYpKXtmPXc7YnJlYWt9Zj02OH1hW1ZlPj4yXT1BLGFbVmUrND4+Ml09ZixUMChPZSw5MjM4MCxWZSksZj13fX13aGlsZSgwKTtiPWIrMXwwfX13aGlsZSgwKTtNPU0rMXwwfX1yZXR1cm4gVmU9MHxv''@;'; + put 'put ''NChtLHAscCxwZSxLLDAsOCw4KSxGdChnZSksRnQoYmUpLEZ0KEhlKSxsZT1xZSwwfFZlfWZ1bmN0aW9uIG8yZShsLGMsZixwLG0sQSl7bHw9MCxmfD0wLHB8PTAsbXw9MCxBfD0wO3ZhciBHLEssdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAscGU9MDtmb3IoSz0wfFFuKGFbKGN8PTApPj4yXTw8''@;'; + put 'put ''Miksdz0wOzspe2lmKCgwfHcpPj0oMHxhW2M+PjJdKSl7dz0wO2JyZWFrfWFbSysodzw8Mik+PjJdPTEsdz13KzF8MH1mb3IoOzspe2lmKCgwfHcpPj0oMHxmKSl7dz0wLE09MDticmVha30oMHwoYj0wfGFbcCsodzw8Mik+PjJdKSk+LTEmJigwfGIpPCgwfGFbYz4+Ml0pJiYoYVtLKyhiPDwy''@;'; + put 'put ''KT4+Ml09LTEpLHc9dysxfDB9Zm9yKDs7KXtpZigoMHxNKT49KDB8KFI9MHxhW2M+PjJdKSkpe009MDticmVha30oMHxhWyhiPUsrKE08PDIpfDApPj4yXSk+LTEmJihhW2I+PjJdPXcsdz13KzF8MCksTT1NKzF8MH1mb3IoOyEoKDB8TSk+PSgwfFIpKTspe3c9MHxhW0srKE08PDIpPj4yXTtl''@;'; + put 'put ''OmRve2lmKCgwfHcpPi0xKWZvcihEPTB8QXIoTSxsKSxiPTB8QXIodyxsKSx3PTA7Oyl7aWYoKDB8dyk+PSgwfGwpKWJyZWFrIGU7X1ttKyh3K0Q8PDMpPj4zXT0rX1tBKyhiK3c8PDMpPj4zXSx3PXcrMXwwfX13aGlsZSgwKTtNPU0rMXwwfWZvcihHPWMrMjB8MCxBPWMrMjR8MCxSPTA7ISgo''@;'; + put 'put ''MHxSKT49KDB8ZikpOyl7Zm9yKEQ9KE09MHxhWyh3PTB8YVtHPj4yXSkrKDErKGM9MHxhW3ArKFI8PDIpPj4yXSk8PDIpPj4yXSktKHc9MHxhW3crKGM8PDIpPj4yXSl8MCxjPTB8QXIoYyxsKSxiPTA7ISgoMHxiKT49KDB8bCkpOylfW20rKGIrYzw8Myk+PjNdPTAsYj1iKzF8MDtmb3IoOygw''@;'; + put 'put ''fHcpPCgwfE0pOyl7Zm9yKGI9MDshKCgwfGIpPj0oMHxsKSk7KWs9K19bbSsoKDB8QXIoMHxhWygwfGFbQT4+Ml0pKyh3PDwyKT4+Ml0sbCkpK2I8PDMpPj4zXSxfWyhwZT1tKyhiK2M8PDMpfDApPj4zXT0rX1twZT4+M10rayxiPWIrMXwwO3c9dysxfDB9Zm9yKGs9MS8rKDB8RCksdz0wOyEo''@;'; + put 'put ''KDB8dyk+PSgwfGwpKTspX1socGU9bSsodytjPDwzKXwwKT4+M109K19bcGU+PjNdKmssdz13KzF8MDtSPVIrMXwwfUZ0KEspfWZ1bmN0aW9uIG44KGwsYyxmLHAsbSxBLHcsYil7bHw9MCxjfD0wLGZ8PTAscHw9MCxtfD0wLHd8PTAsYj0rYjt2YXIgRCxSLGs9MCxNPTAsRz0wLEs9MDtSPWxl''@;'; + put 'put ''LGxlPWxlKzE2fDAsYVsoRD1SKT4+Ml09QXw9MCxHaShmLDAsbSwwLEQsMCxsKTtlOmRve2lmKCh3Ky0xfDApPj4+MDw2KXtuMmUobCxjLDB8YVtEPj4yXSksaz0wfGFbcD4+Ml0sTT0wfGFbcCsyMD4+Ml0sQT0wfGFbcCsyND4+Ml0sYz0wO3Q6Zm9yKDs7KXtpZigoMHxjKT49KDB8aykpYnJl''@;'; + put 'put ''YWsgZTtwPU0rKCh3PWMrMXwwKTw8Mil8MCxjPTB8YVtNKyhjPDwyKT4+Ml07bjpmb3IoOzspe2lmKCgwfChjPWMrMXwwKSk+PSgwfGFbcD4+Ml0pKXtjPXc7Y29udGludWUgdH1mb3IobT1BKyhjPDwyKXwwLGY9MDs7KXtpZigoMHxmKT49KDB8bCkpY29udGludWUgbjtLPSgrQmgoKS0uNSkq''@;'; + put 'put ''YixHPSgwfGFbRD4+Ml0pKygoMHxBcigwfGFbbT4+Ml0sbCkpK2Y8PDMpfDAsX1tHPj4zXT0rX1tHPj4zXStLLGY9ZisxfDB9fX19fXdoaWxlKDApO2xlPVJ9ZnVuY3Rpb24gJGgobCxjLGYscCl7bHw9MCxjfD0wLGZ8PTAscD0rcDt2YXIgTSxtPTAsQT0wLHc9MCxiPTAsaz0wLEQ9MCxSPTAs''@;'; + put 'put ''Rz0wO2ZvcihNPWxlLGxlPWxlKzE2fDAsaz1NLG09MDs7KXtpZigoMHxtKT49KDB8Yykpe3c9MDticmVha31fW2srKG08PDMpPj4zXT0wLG09bSsxfDB9Zm9yKDshKCgwfHcpPj0oMHxsKSk7KXtmb3IoYj0wfEFyKHcsYyksbT0wOyEoKDB8bSk+PSgwfGMpKTspX1soRD1rKyhtPDwzKXwwKT4+''@;'; + put 'put ''M109K19bRD4+M10rICtfW2YrKG0rYjw8Myk+PjNdLG09bSsxfDA7dz13KzF8MH1mb3IoQT0xLysoMHxsKSxtPTA7Oyl7aWYoKDB8bSk+PSgwfGMpKXt3PTA7YnJlYWt9X1soRD1rKyhtPDwzKXwwKT4+M109K19bRD4+M10qQSxtPW0rMXwwfWZvcig7ISgoMHx3KT49KDB8bCkpOyl7Zm9yKGI9''@;'; + put 'put ''MHxBcih3LGMpLG09MDshKCgwfG0pPj0oMHxjKSk7KV9bKEQ9ZisobStiPDwzKXwwKT4+M109K19bRD4+M10tK19baysobTw8Myk+PjNdLG09bSsxfDA7dz13KzF8MH1mb3IoQT0raGEoKyhwKj0tLjAxNzQ1MzI3Nzc3Nzc3Nzc3NikpLHA9K0RhKCtwKSxtPTA7ISgoMHxtKT49KDB8bCkpOylE''@;'; + put 'put ''PTB8QXIobSxjKSxfWyhrPWYrKEQ8PDMpfDApPj4zXT0oRz0rX1soRD1mKyhEKzE8PDMpfDApPj4zXSkqcCsoUj0rX1trPj4zXSkqQSxfW0Q+PjNdPUcqQS1SKnAsbT1tKzF8MDtsZT1NfWZ1bmN0aW9uIFRrKGwsYyxmLHAsbSxBKXtsfD0wLGZ8PTAscD0rcCxtPSttLEF8PTA7dmFyIE0sRCxP''@;'; + put 'put ''ZSxMZSxSZSxIZSx3PTAsYj0wLGs9MCxSPTAsRz0wLEs9MCxwZT0wLGdlPTAsYmU9MCxWZT0wO2lmKFJlPTB8YVsoY3w9MCk+PjJdLEhlPTB8YVtjKzIwPj4yXSxPZT0wfGFbYysyND4+Ml0sTGU9MHxhW2MrMjg+PjJdLDB8bGgoYywwKXx8UHIoOTU3OTUsOTIzODcsMzcsOTI0MDQpLGw9MHxR''@;'; + put 'put ''big1NiksYVsoaz1sKzIwfDApPj4yXT0wLGFbbCsyND4+Ml09MixhW2wrMTI+PjJdPTAsYj0wfFFuKDE2KSxhW2s+PjJdPWIsX1tiPj4zXT1wLF9bYis4Pj4zXT1tLGFbbCsxNj4+Ml09MTA1LF9bbCs0MD4+M109LjAxLGFbbCs0OD4+Ml09fn4rRDAoKyArKDB8YVtjPj4yXSkpLGFbKGs9bCs0''@;'; + put 'put ''fDApPj4yXT0wfHVjKFJlLFJlLCgwfGFbKGI9Yys4fDApPj4yXSkrUmV8MCwxLDEpLGI9MHx1YyhSZSxSZSwoMHxhW2I+PjJdKStSZXwwLDEsMSksYVtsKzg+PjJdPWIsTT0wfGFbMjgrKGs9MHxhW2s+PjJdKT4+Ml0sRD0wfGFbYisyOD4+Ml0sMD09KDB8Yil8MD09KDB8aykpUTQobCksbD0w''@;'; + put 'put ''O2Vsc2V7Zm9yKFI9MHxhW2srMjA+PjJdLEc9MHxhW2srMjQ+PjJdLHBlPTB8YVtiKzI0Pj4yXSxhWyhLPTB8YVtiKzIwPj4yXSk+PjJdPTAsYVtSPj4yXT0wLGM9MCxmPTA7ISgoMHxjKT49KDB8UmUpKTspe2ZvcihiZT1IZSsoKGdlPWMrMXwwKTw8Mil8MCxwPTAsbT0wLHc9MHxhW0hlKyhj''@;'; + put 'put ''PDwyKT4+Ml07ISgoMHx3KT49KDB8YVtiZT4+Ml0pKTspKDB8KEE9MHxhW09lKyh3PDwyKT4+Ml0pKSE9KDB8YykmJihWZT0oVmU9KFZlPStfW0xlKyh3PDwzKT4+M10pPj0wP1ZlOi1WZSk+LjAxP1ZlOi4wMSxhW0crKGY8PDIpPj4yXT1BLGFbcGUrKGY8PDIpPj4yXT1BLF9bKEE9TSsoZjw8''@;'; + put 'put ''Myl8MCk+PjNdPS0xLF9bRCsoZjw8Myk+PjNdPS1WZSxwPStfW0E+PjNdK3AsbS09VmUsZj1mKzF8MCksdz13KzF8MDthW0crKGY8PDIpPj4yXT1jLGFbcGUrKGY8PDIpPj4yXT1jLF9bTSsoZjw8Myk+PjNdPS1wLF9bRCsoZjw8Myk+PjNdPS1tLGFbUisoZ2U8PDIpPj4yXT1mPWYrMXwwLGFb''@;'; + put 'put ''SysoZ2U8PDIpPj4yXT1mLGM9Z2V9YVtrKzg+PjJdPWYsYVtiKzg+PjJdPWZ9cmV0dXJuIDB8bH1mdW5jdGlvbiB5bChsKXtRNChsfD0wKX1mdW5jdGlvbiBaNyhsLGMsZixwKXtyZXR1cm4rICt6bShsfD0wLGN8PTAsZnw9MCxwfD0wLC4wMDEpfWZ1bmN0aW9uIGwyZShsLGMsZixwKXtjfD0w''@;'; + put 'put ''LGZ8PTAscHw9MDt2YXIgdyxiLGssbT0wLEE9MCxNPTAsRD0wO2ZvcihrPTB8UW4oKDB8R28obHw9MCkpPDw0KSx3PTAhPSgwfHApLGI9Yys4fDAsQT0wfER0KGwpLG09MDtBOyl3JiYobT1tKygwPT0oMHxzMigwfHRpKEEpLDkyNDgxLDExKSkmMSl8MCksX1trKygoTT1hWzEyMCsoRD0wfGFb''@;'; + put 'put ''QSsxNj4+Ml0pPj4yXTw8MSk8PDMpPj4zXT0uNSorX1tEKzMyPj4zXSsgK19bYz4+M10sX1trKygoMXxNKTw8Myk+PjNdPS41KitfW0QrNDA+PjNdKyArX1tiPj4zXSxBPTB8enQobCxBKTtpZih3JjAhPSgwfG0pKXtmb3IoYz0wfFFuKG08PDIpLEE9MHxEdChsKSxtPTA7QTspMHxzMigwfHRp''@;'; + put 'put ''KEEpLDkyNDgxLDExKXx8KGFbYysobTw8Mik+PjJdPWFbMTIwKygwfGFbQSsxNj4+Ml0pPj4yXSxtPW0rMXwwKSxBPTB8enQobCxBKTthW3A+PjJdPWMsYVtmPj4yXT1tfXJldHVybiAwfGt9ZnVuY3Rpb24gczJlKGwsYyxmKXtjfD0wLGZ8PTA7dmFyIE9lLExlLFJlLHFlLHA9MCxtPTAsQT0w''@;'; + put 'put ''LHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxLPTAscGU9MCxnZT0wLGJlPTAsSGU9MCxWZT0wLG50PTA7aWYocWU9bGUsbGU9bGUrMzJ8MCxSZT1xZSsxNnwwLExlPXFlKzh8MCxPZT1xZSxsfD0wKXtmb3IoSGU9MHxHbyhsKSxWZT0wfFYzKGwpLGM9MHxEdChsKSxwPTA7YzspYVsxMjAr''@;'; + put 'put ''KDB8YVtjKzE2Pj4yXSk+PjJdPXAsYz0wfHp0KGwsYykscD1wKzF8MDtmb3IoSz0wfFFuKHBlPVZlPDwyKSxwZT0wfFFuKHBlKSxnZT0wfFFuKGM9VmU8PDMpLFI9MHxzaShsLDIsMTAxNTQxLDApLChiZT0wIT0oMHxmKSk/KHA9MHxzaShsLDIsOTI0OTMsMCksRD1HPTB8dnIoYykpOihEPTAs''@;'; + put 'put ''cD0wLEc9MCksYj0wPT0oMHxSKSxrPTA9PSgwfHApLHc9MHxEdChsKSxjPTA7dzspe2ZvcihNPTB8YVsxMjArKDB8YVt3KzE2Pj4yXSk+PjJdLEE9MHx3MChsLHcpO0E7KWFbSysoYzw8Mik+PjJdPU0sYVtwZSsoYzw8Mik+PjJdPWFbMTIwKygwfGFbMTYrKDB8YVsoMj09KDMmYVtBPj4yXXww''@;'; + put 'put ''KT9BOkErLTQ4fDApKzQwPj4yXSk+PjJdKT4+Ml0sYnx8KG50PTB8SG8oQSxSKSxhW0xlPj4yXT1PZSwxIT0oMHxpbChudCwxMDEyMDksTGUpKSk/KF9bT2U+PjNdPTEsbT0xKTptPStfW09lPj4zXSxfW2dlKyhjPDwzKT4+M109bSxrfHwobnQ9MHxIbyhBLHApLGFbUmU+PjJdPU9lLDE9PSgw''@;'; + put 'put ''fGlsKG50LDEwMTIwOSxSZSkpP209K19bT2U+PjNdOihfW09lPj4zXT0xLG09MSksX1tEKyhjPDwzKT4+M109bSksQT0wfFMwKGwsQSksYz1jKzF8MDt3PTB8enQobCx3KX1jPTB8bzQoVmUsSGUsSGUsSyxwZSxnZSwxLDgpLGJlJiYoYVtmPj4yXT0wfG80KFZlLEhlLEhlLEsscGUsRywxLDgp''@;'; + put 'put ''KSxGdChLKSxGdChwZSksRnQoZ2UpLEQmJkZ0KEcpfWVsc2UgYz0wO3JldHVybiBsZT1xZSwwfGN9ZnVuY3Rpb24gdTJlKGwpe2x8PTA7dmFyIE0sYz0wLGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxEPTAsUj0wLEc9MDtNPWxlLGxlPWxlKzE2fDAsaz1NO2U6ZG97aWYoMHxxdmUobCxr''@;'; + put 'put ''KSl7Zm9yKGM9MHxhWzEzMisoMHxhWzE2KygwfER0KGwpKT4+Ml0pPj4yXSxBPStfW2M+PjNdLHA9K19bYys4Pj4zXSxjPTB8RHQobCk7YzspX1sobT0wfGFbMTMyKygwfGFbYysxNj4+Ml0pPj4yXSk+PjNdPStfW20+PjNdLUEsX1sobT1tKzh8MCk+PjNdPStfW20+PjNdLXAsYz0wfHp0KGws''@;'; + put 'put ''Yyk7Zm9yKGM9MSYoMCE9QXwwIT1wKSxmPTB8RHQobCk7Oyl7aWYoIWYpYnJlYWsgZTtpZigwfChtPTB8dzAobCxmKSkpYnJlYWs7Zj0wfHp0KGwsZil9aWYocD0rVWwoKygrX1s4KyhmPTB8YVsxMzIrKDB8YVsxNisoMHxhWygyPT0oMHwoRD0zJmFbbT4+Ml0pKT9tOm0rLTQ4fDApKzQwPj4y''@;'; + put 'put ''XSk+PjJdKT4+Ml0pPj4zXS0odz0rX1s4KyhtPTB8YVsxMzIrKDB8YVsxNisoMHxhWygzPT0oMHxEKT9tOm0rNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSk+PjNdKSksKygrX1tmPj4zXS0oYj0rX1ttPj4zXSkpKSxfW2s+PjNdPXA9K19baz4+M10tcCwwIT1wKWZvcihBPStoYSgrcCkscD0rRGEo''@;'; + put 'put ''K3ApLGM9MHxEdChsKTs7KXtpZighYyl7Yz0xO2JyZWFrIGV9X1soaz0wfGFbMTMyKygwfGFbYysxNj4+Ml0pPj4yXSk+PjNdPShHPStfW2s+PjNdLWIpKkErYi0oUj0rX1soRD1rKzh8MCk+PjNdLXcpKnAsX1tEPj4zXT1HKnArdytSKkEsYz0wfHp0KGwsYyl9fWVsc2UgYz0wfXdoaWxlKDAp''@;'; + put 'put ''O3JldHVybiBsZT1NLDB8Y31mdW5jdGlvbiBxdmUobCxjKXtjfD0wO3ZhciBwLG0sZj0wO209bGUsbGU9bGUrMTZ8MCxwPW0sbD0wfExpKGx8PTAsOTI0OTcpO2Rve2lmKDAhPSgwfGwpJiYwIT0oMHxmZVtsPj4wXSkpe2lmKGY9K2kzKGwscCksKDB8YVtwPj4yXSk9PSgwfGwpKXtpZighKCgw''@;'; + put 'put ''fHQxKGwpKTw8MjQ+PjI0KSl7bD0wO2JyZWFrfWY9MH1mb3IoO2Y+MTgwOylmKz0tMzYwO2Zvcig7Zjw9LTE4MDspZis9MzYwO19bYz4+M109LjAxNzQ1MzI5MjUxOTk0MzI5NSpmLGw9MX1lbHNlIGw9MH13aGlsZSgwKTtyZXR1cm4gbGU9bSwwfGx9ZnVuY3Rpb24gYzJlKGwsYyxmKXt2YXIg''@;'; + put 'put ''cDtyZXR1cm4gY3w9MCxmfD0wLDB8bVYobHw9MCwwPT0oMHwocD0wfExpKGwsOTI1MDcpKSk/MHxmP2Y6MTk1MDU5OnAsYyl9ZnVuY3Rpb24gbVYobCxjLGYpe2x8PTAsZnw9MDt2YXIgdyxNLHA9MCxtPTAsQT0wLGI9MDtpZihNPWxlLGxlPWxlKzMyfDAsdz1NKzh8MCxBPU0sMCE9KDB8KGN8''@;'; + put 'put ''PTApKSYmMCE9KDB8ZmVbYz4+MF0pKXtmb3IocD0xNzg5NjttPTB8YVtwKzQ+PjJdOyl7aWYoISgwfGw0KGMsbSwwfGFbcCs4Pj4yXSkpKXtiPTY7YnJlYWt9cD1wKzE2fDB9Nj09KDB8YikmJigwfGFbcCsxMj4+Ml18fChhW0E+PjJdPW0sJHIoMCw5MjUxNSxBKSxwPTE3ODk2KSxhW2Y+PjJd''@;'; + put 'put ''PUE9MHxhW3A+PjJdLGFbZis0Pj4yXT1hW3ArMTI+PjJdLDE4PT0oMHxBKSYmZnVuY3Rpb24gSWsobCxjLGYpe2x8PTAsY3w9MCxmfD0wO3ZhciBwLEEsbT0wO3A9bGUsbGU9bGUrMTZ8MCxhWyhtPXApPj4yXT1BPXArNHwwLG09KDB8aWwoYywxMzczOTUsbSkpPjAsYVtmKzg+PjJdPW0mKDB8''@;'; + put 'put ''KGM9MHxhW0E+PjJdKSk+LTE/YzoxZTMsX1tmKzE2Pj4zXT0rTWwobCwwfHNpKGwsMCw5MjY0OCwwKSwtNCwtMWUxMCksbGU9cH0obCxjKygwfGFbcCs4Pj4yXSl8MCxmKSksMHxhW3ArND4+Ml18fCgocD0wfG5nKGMsNjMpKTw8MjQ+PjI0PT02Mz8oYVt3Pj4yXT1jLCRyKDAsOTI1NTcsdyks''@;'; + put 'put ''cD0wKTpwJj0yNTUsYVtmPj4yXT0xJihwPTA9PSgwfHApKSxwPXA/OTI2MDQ6MTM1NzA5LGI9MTUpfWVsc2UgYVtmPj4yXT0wLHA9MTM1NzA5LGI9MTU7cmV0dXJuIDE1PT0oMHxiKSYmKGFbZis0Pj4yXT1wKSxsZT1NLDB8Zn1mdW5jdGlvbiB6NyhsLGMpe2x8PTAsY3w9MDt2YXIgQSx3LGY9''@;'; + put 'put ''MCxwPTA7dz1sZSxsZT1sZSsxNnwwLEE9dys4fDA7ZG97aWYoKDB8R28obCkpPj0yKXtpZihmPTB8dTJlKGwpLGY9KDB8dlYobCkpK2Z8MCxwPTB8YVtjPj4yXSl7aWYocD4+PjA+Mil7c3dpdGNoKDB8cCl7Y2FzZSAzOnA9MHx4VihsLDEpO2JyZWFrO2Nhc2UgNDpwPTB8eFYobCwwKTticmVh''@;'; + put 'put ''aztjYXNlIDY6Y2FzZSA1OnA9MDticmVhaztjYXNlIDEwOmNhc2UgOTpjYXNlIDc6Y2FzZSA4OmNhc2UgMTQ6Y2FzZSAxMzpjYXNlIDExOmNhc2UgMTI6QlgobCxwKSxwPTA7YnJlYWs7Y2FzZSAxNTpwPTB8eFYobCwtMSk7YnJlYWs7ZGVmYXVsdDphW0E+PjJdPWFbYys0Pj4yXSwkcigwLDkz''@;'; + put 'put ''ZTMsQSkscD0wfWY9cCtmfDA7YnJlYWt9aWYoMHxmMmUobCkpe0RrKCksRnQoMHxhWzQ2ODQ1XSksYVs0Njg0NV09MDticmVha31NWChsKSwwfChwPTI9PSgwfGFbYz4+Ml0pPzB8RzcoKTowfGdwKCkpJiZoMmUoKSxEaygpLEZ0KDB8YVs0Njg0NV0pLGFbNDY4NDVdPTAsZj1wK2Z8MH19ZWxz''@;'; + put 'put ''ZSBmPTB9d2hpbGUoMCk7cmV0dXJuIGxlPXcsMHxmfWZ1bmN0aW9uIHZWKGwpe3ZhciBtLGIsTSxjPTAsZj0wLHA9MCxBPTAsdz0wLGs9MDtNPWxlLGxlPWxlKzQ4fDAsdz1NKzI0fDAsbT1NKzE2fDAsYj1NLGM9MHxMaShsfD0wLDE0MDc0Mik7ZTpkb3tpZigwPT0oMHxjKXx8KGs9Yis4fDAs''@;'; + put 'put ''YVttPj4yXT1iLGFbbSs0Pj4yXT1rLHA9MHxpbChjLDEwNTUwMyxtKSwwPT0oMHxwKSl8fChBPStfW2I+PjNdLCtlbygrQSk8MWUtOSkpYz0wO2Vsc2V7aWYoMSE9KDB8cCkpe2lmKCtlbygrKGY9K19baz4+M10pKTwxZS05KXtjPTA7YnJlYWt9fWVsc2UgX1trPj4zXT1BLGY9QTtpZigxPT1m''@;'; + put 'put ''JjE9PUEpYz0wO2Vsc2UgZm9yKGM9MHxEdChsKTs7KXtpZighYyl7Yz0xO2JyZWFrIGV9X1sodz0wfGFbMTMyKygwfGFbYysxNj4+Ml0pPj4yXSk+PjNdPStfW3c+PjNdKitfW2I+PjNdLF9bKHc9dys4fDApPj4zXT0rX1t3Pj4zXSorX1trPj4zXSxjPTB8enQobCxjKX19fXdoaWxlKDApO3Jl''@;'; + put 'put ''dHVybiBsZT1NLDB8Y31mdW5jdGlvbiBmMmUobCl7dmFyIGssYz0wLGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wLE09MDtmb3Ioaz1sZSxsZT1sZSsxNnwwLHc9ayxhWzQ2ODU0XT0wfEdvKGx8PTApLGZ1bmN0aW9uIHM5ZSgpe2FbNDY4NTVdPX5+K0QwKCsgKyg0KygwfGFbNDY4NTRdKXwwKSl9''@;'; + put 'put ''KCksYVs0Njg2OV09MHxRbig5NiooMHxhWzQ2ODU0XSl8MCkscD0wfER0KGwpLGM9MHxhWzQ2ODY5XSxXNyh3LGwpLG09K2puW3c+PjJdLEE9K2puW3crND4+Ml0sQT0odz0wPT0oMHxmZVt3Kzg+PjBdKSk/QTouMDEzODg4ODg4ODg4ODg4ODg4KkEsbT13P206LjAxMzg4ODg4ODg4ODg4ODg4''@;'; + put 'put ''OCptLHc9dz8yOjEsZj0wOzspe2lmKCgwfGYpPj0oMHxhWzQ2ODU0XSkpe2M9MDticmVha31pZihfW2MrOD4+M109K19bKE09MHxhWzEzMisoMHxhW3ArMTY+PjJdKT4+Ml0pPj4zXSxfW2MrMTY+PjNdPStfW00rOD4+M10sMHxkOFszJnddKGMrNDB8MCxwLG0sQSkpe2I9NDticmVha31hW2Mr''@;'; + put 'put ''MjQ+PjJdPWYsYVtjKzI4Pj4yXT0xLGFbYz4+Ml09cCxhW2MrODg+PjJdPTAsYz1jKzk2fDAsZj1mKzF8MCxwPTB8enQobCxwKX1yZXR1cm4gND09KDB8YikmJihGdCgwfGFbNDY4NjldKSxhWzQ2ODY5XT0wLGM9MSksbGU9aywwfGN9ZnVuY3Rpb24gRGsoKXt2YXIgbD0wLGM9MDtmb3IobD0w''@;'; + put 'put ''fGFbNDY4NjldLGM9MDshKCgwfGMpPj0oMHxhWzQ2ODU0XSkpOylkOWUobCs0MHwwKSxsPWwrOTZ8MCxjPWMrMXwwOyhmdW5jdGlvbiBGMmUoKXthWzQ2OTE0XT0wLEZ0KDB8YVs0NjkxNV0pLEZ0KDB8YVs0NjkxNl0pLEZ0KDB8YVs0NjkxN10pLGFbNDY5MTVdPTAsYVs0NjkxNl09MCxhWzQ2''@;'; + put 'put ''OTE3XT0wfSkoKSxOeSgpLEZ0KDB8YVs0Njg2OV0pfWZ1bmN0aW9uIE1YKGwpe2x8PTA7dmFyIHAsayxNLEQsUixjPTAsZj0wLG09MCxBPTAsdz0wLGI9MCxHPTAsSz0wLHBlPTAsZ2U9MDtmb3IoRD1sZSxsZT1sZSszMnwwLGs9RCsxNnwwLE09RCxwPTB8YVs0Njg1NF0sYz1SPTB8YVs0Njg2''@;'; + put 'put ''OV0sZj0xLG09K19bUis0MD4+M10rKEE9K19bUis4Pj4zXSksQT0rX1tSKzU2Pj4zXStBLHc9K19bUis0OD4+M10rKGI9K19bUisxNj4+M10pLGI9K19bUis2ND4+M10rYjshKCgwfGYpPj0oMHxwKSk7KWdlPStfW2MrMTM2Pj4zXSsocGU9K19bYysxMDQ+PjNdKSxLPStfW2MrMTQ0Pj4zXSso''@;'; + put 'put ''Rz0rX1tjKzExMj4+M10pLHBlPStfW2MrMTUyPj4zXStwZSxHPStfW2MrMTYwPj4zXStHLGM9Yys5NnwwLGY9ZisxfDAsbT1nZTxtP2dlOm0sQT1wZT5BP3BlOkEsdz1LPHc/Szp3LGI9Rz5iP0c6YjswfChjPTB8TGkobCw5MzEwMCkpJiYwfGZlW2M+PjBdJiYoX1sxNzNdPStrcChjKSksZ2U9''@;'; + put 'put ''KHBlPStfWzE3M10pKihiLXcpLF9baz4+M109bS0ocGUqPUEtbSksX1trKzg+PjNdPXctZ2UsX1tNPj4zXT1wZStBLF9bTSs4Pj4zXT1nZStiLEFWKGssTSksbGU9RH1mdW5jdGlvbiBHNygpe3ZhciBmLGw9MDtpZihmPWxlLGxlPWxlKzE2fDAsMHxJZigpKXtFWCgpLGw9MDtkb3tJWCgpLGw9''@;'; + put 'put ''bCsxfDB9d2hpbGUoMCE9KDB8SWYoKSkpO2w9MX1lbHNlIGw9MDtyZXR1cm4gbGU9ZiwwfGx9ZnVuY3Rpb24gZ3AoKXt2YXIgYixsPTAsYz0wLGY9MCxwPTAsbT0wO2lmKGI9bGUsbGU9bGUrMTZ8MCxjPTB8SWYoKSl7Zm9yKEVYKCkseFgoMCksS1YoMCwxKSxsPTAscD0wLGY9MDttMSgpLG09''@;'; + put 'put ''MHxJZihmPWYrMXwwKTspYz0oMHxtKTwoMHxjKT8wOnArMXwwLGFbNDY4NDZdPTEsYyYmKHAyZSgpLGw9bCsxfDApLHhYKDEpLEtWKDAsMSkscD1jLGM9bTsoZnVuY3Rpb24gZmcoKXsoZnVuY3Rpb24gR1goKXtGdCgwfGFbNDY4NTZdKSxhWzQ2ODU2XT0wfSkoKSxmdW5jdGlvbiBXWCgpe1p5''@;'; + put 'put ''KDE4NzQ0OCw0MCksRnQoMHxhWzQ2ODY1XSksYVs0Njg2NV09MH0oKSxwSygpLE5EKCl9KSgpLGw9MX1lbHNlIGw9MDtyZXR1cm4gbGU9YiwwfGx9ZnVuY3Rpb24gaDJlKCl7dmFyIGYsbD0wLGM9MCxwPTA7Zm9yKGY9MHxhWzQ2ODU0XSxsPTB8YVs0Njg2OV0sYz0wOyEoKDB8Yyk+PSgwfGYp''@;'; + put 'put ''KTspX1socD0wfGFbMTMyKygwfGFbMTYrKDB8YVtsPj4yXSk+PjJdKT4+Ml0pPj4zXT0rX1tsKzg+PjNdLF9bcCs4Pj4zXT0rX1tsKzE2Pj4zXSxsPWwrOTZ8MCxjPWMrMXwwfWZ1bmN0aW9uIElmKGwpe3ZhciBSLHBlLEcsYz0wLGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0w''@;'; + put 'put ''O2ZvcihwZT1sZSxsZT1sZSs0OHwwLEc9cGUrMjR8MCxSPXBlKzh8MCxmPTB8YVs0Njg2OV0scD0wfGFbNDY4NTRdLGM9MDs7KXtpZigoMHxjKT49KDB8cCkpe209MCxjPTA7YnJlYWt9YVtmKyg5NipjfDApKzMyPj4yXT0wLGM9YysxfDB9ZTpmb3IoOyEoKDB8Yyk+PShwKy0xfDApKTspZm9y''@;'; + put 'put ''KEQ9Zis5NnwwLGM9YysxfDAsaz1mKzh8MCxNPWYrNDB8MCxiPWYrMzJ8MCxBPUQsdz1jOzspe2lmKCgwfHcpPj0oMHxwKSl7Zj1EO2NvbnRpbnVlIGV9cD1BKzh8MCxhW1I+PjJdPWFbaz4+Ml0sYVtSKzQ+PjJdPWFbays0Pj4yXSxhW1IrOD4+Ml09YVtrKzg+PjJdLGFbUisxMj4+Ml09YVtr''@;'; + put 'put ''KzEyPj4yXSxhW0c+PjJdPWFbcD4+Ml0sYVtHKzQ+PjJdPWFbcCs0Pj4yXSxhW0crOD4+Ml09YVtwKzg+PjJdLGFbRysxMj4+Ml09YVtwKzEyPj4yXSwwfG05ZShSLE0sRyxBKzQwfDApPyhhW2I+PjJdPTEsYVtBKzMyPj4yXT0xLGY9bSsxfDApOmY9bSxBPUErOTZ8MCx3PXcrMXwwLG09Zixw''@;'; + put 'put ''PTB8YVs0Njg1NF19cmV0dXJuIGxlPXBlLDB8bX1mdW5jdGlvbiBFWCgpe3ZhciBrLE0sbD0wLGM9MCxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxEPTAsUj0wO3lWKCksaz0wfGFbNDY4NDhdLE09MHxhWzQ2ODY5XSxsPTB8YVs0Njg0NV07ZTpmb3IoO3c9bCwhKGw+Pj4wPj1rPj4+MCk7KWlm''@;'; + put 'put ''KChjPWwrNHwwKT4+PjA+PWs+Pj4wKWw9YztlbHNlIGlmKCtfWyhtPTB8YVtjPj4yXSk+PjNdPT0oQT0rX1soZj0wfGFbbD4+Ml0pPj4zXSkpaWYoK19bbSs4Pj4zXT09KHA9K19bZis4Pj4zXSkpe2ZvcihiPWwrOHwwLG09MjshKGI+Pj4wPj1rPj4+MCk7KXtpZigrX1soZj0wfGFbYj4+Ml0p''@;'; + put 'put ''Pj4zXSE9QSl7RD0xMTticmVha31pZigrX1tmKzg+PjNdIT1wKXtEPTExO2JyZWFrfWI9Yis0fDAsbT1tKzF8MH1pZigxMT09KDB8RCkmJihEPTAsK19bOCsoZj0wfGFbYj4+Ml0pPj4zXT09cCkpZm9yKHA9KCtfW2Y+PjNdLUEpLysoMHxtKSxmPTErKCgoYj4+PjA+Yz4+PjA/YjpjKSstMSso''@;'; + put 'put ''MC13KXwwKT4+PjIpfDAsbD0xOzspe2lmKCgwfGwpPT0oMHxmKSl7bD1iO2NvbnRpbnVlIGV9X1sodz0wfGFbYz4+Ml0pPj4zXT0rX1t3Pj4zXStwKisoMHxsKSxsPWwrMXwwLGM9Yys0fDB9Zm9yKDs7KXtpZihjPj4+MD49Yj4+PjApe2w9Yjtjb250aW51ZSBlfV9bKHc9MHxhW2M+PjJdKT4+''@;'; + put 'put ''M109LjUqKCtfW00rKDk2KihSPTB8YVsxNisobT0wfGFbbD4+Ml0pPj4yXSl8MCkrNTY+PjNdLStfW00rKDk2KlJ8MCkrNDA+PjNdKyArX1tNKyg5NiooZj0wfGFbdysxNj4+Ml0pfDApKzU2Pj4zXS0rX1tNKyg5NipmfDApKzQwPj4zXSkrICtfW20+PjNdLGM9Yys0fDAsbD1sKzR8MH19ZWxz''@;'; + put 'put ''ZSBsPWM7ZWxzZSBsPWN9ZnVuY3Rpb24geFgobCl7dmFyIHcsYixrLGM9MCxmPTAscD0wLG09MCxBPTA7Zm9yKDB8KGx8PTApJiZ5VigpLF9bMjMyNzJdPWY9K19bKGI9MHxhWyh3PTB8YVs0Njg0NV0pPj4yXSk+PjNdLGs9MHxhWzQ2ODU0XSxtPTEsQT0rX1tiPj4zXTshKCgwfG0pPj0oMHxr''@;'; + put 'put ''KSk7KShjPStfWyhsPTB8YVt3KyhtPDwyKT4+Ml0pPj4zXSk8Zj8oX1syMzI3Ml09YyxwPStfW2w+PjNdKToocD1jLGM9ZiksbT1tKzF8MCxmPWMsQT1wPkE/cDpBO19bMjMyNzNdPXA9K19bYis4Pj4zXSxfWzIzMjc1XT0rX1s4KygwfGFbdysoaystMTw8Mik+PjJdKT4+M10tcCxfWzIzMjc0''@;'; + put 'put ''XT1BLWZ9ZnVuY3Rpb24gbTEoKXt2YXIgZixsPTAsYz0wO2ZvcihsPTB8YVs0Njg2OV0sZnVuY3Rpb24gS2MoKXt2YXIgbD0wLGM9MCxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLEs9MCxwZT0wLGdlPTAsYmU9MCxPZT0wLExlPTA7Zm9yKG09K1k3KEE9OCso''@;'; + put 'put ''RD0wfGFbNDY4NjldKXwwLDE4NjA2NCkscD0rWTcoQSwxODYwODApLGY9K1k3KEEsMTg2MDk2KSxsPTEsYz0rWTcoQSwxODYxMTIpLEE9RCx3PUQsYj1ELGs9RDtNPUQrOTZ8MCwhKCgwfGwpPj0oMHxhWzQ2ODU0XSkpOylSPShnZT0rWTcocGU9RCsxMDR8MCwxODYwNjQpKTxtLEs9KE9lPStZ''@;'; + put 'put ''NyhwZSwxODYwOTYpKTxmLEc9KGJlPStZNyhwZSwxODYwODApKTxwLGw9bCsxfDAsYz0ocGU9KExlPStZNyhwZSwxODYxMTIpKTxjKT9MZTpjLGY9Sz9PZTpmLHA9Rz9iZTpwLG09Uj9nZTptLEE9cGU/TTpBLHc9Sz9NOncsYj1HP006YixrPVI/TTprLEQ9TTtMYyhrKzh8MCwrX1syMzI1OF0s''@;'; + put 'put ''K19bMjMyNTldKSxMYyh3Kzh8MCwrX1syMzI2Ml0sK19bMjMyNjNdKSxMYyhiKzh8MCwrX1syMzI2MF0sK19bMjMyNjFdKSxMYyhBKzh8MCwrX1syMzI2NF0sK19bMjMyNjVdKX0oKSxmPTA9PSgwfGFbNDY4NDZdKSxjPTA7ISgoMHxjKT49KDB8YVs0Njg1NF0pKTspZiYmISgwfGFbbCszMj4+''@;'; + put 'put ''Ml0pfHxoZyhsKSxsPWwrOTZ8MCxjPWMrMXwwfWZ1bmN0aW9uIHAyZSgpe3ZhciBsLGMsZixwLG0sQSx3LGIsaztsPWxlLGxlPWxlKzMyfDAsZj1sKzE2fDAscD0uMDUqKChiPStfWzIzMjY2XSktKG09K19bMjMyNjddKSksX1soYz1sKT4+M109KEE9LjA1Kigoaz0rX1syMzI2OF0pLSh3PStf''@;'; + put 'put ''WzIzMjY5XSkpKStrLF9bYys4Pj4zXT1iK3AsX1tmPj4zXT13LUEsX1tmKzg+PjNdPW0tcCxBVihmLGMpLGxlPWx9ZnVuY3Rpb24gQVYobCxjKXt2YXIgZixwLG0sQTtjfD0wLF9bMjMyNjldPUE9K19bKGx8PTApPj4zXSxfWzIzMjY4XT1tPStfW2M+PjNdLF9bMjMyNjddPWY9K19bbCs4Pj4z''@;'; + put 'put ''XSxfWzIzMjY2XT1wPStfW2MrOD4+M10sX1syMzI1OF09QSxfWzIzMjYwXT1BLF9bMjMyNjJdPW0sX1syMzI2NF09bSxfWzIzMjY1XT1wLF9bMjMyNjFdPXAsX1syMzI2M109ZixfWzIzMjU5XT1mfWZ1bmN0aW9uIGhnKGwpe3ZhciBBLHcsYixNLEQsUixHLGM9MCxmPTAscD0wLG09MCxrPTAs''@;'; + put 'put ''Sz0wLHBlPTAsZ2U9MDtmb3IoRz1sZSxsZT1sZSs2NHwwLGI9Rys0OHwwLHc9RyszMnwwLEE9RysxNnwwLE09Rys4fDAsRD1HLFI9OCsoaz0wfGFbODgrKGx8PTApPj4yXSl8MCxjPTAsZj0wLHA9MCxrPTB8YVtrPj4yXTttPTB8YVtrPj4yXTspZ2U9ays4fDAscGU9bSs4fDAsYVtBPj4yXT1h''@;'; + put 'put ''W1I+PjJdLGFbQSs0Pj4yXT1hW1IrND4+Ml0sYVtBKzg+PjJdPWFbUis4Pj4yXSxhW0ErMTI+PjJdPWFbUisxMj4+Ml0sYVt3Pj4yXT1hW2dlPj4yXSxhW3crND4+Ml09YVtnZSs0Pj4yXSxhW3crOD4+Ml09YVtnZSs4Pj4yXSxhW3crMTI+PjJdPWFbZ2UrMTI+PjJdLGFbYj4+Ml09YVtwZT4+''@;'; + put 'put ''Ml0sYVtiKzQ+PjJdPWFbcGUrND4+Ml0sYVtiKzg+PjJdPWFbcGUrOD4+Ml0sYVtiKzEyPj4yXT1hW3BlKzEyPj4yXSxLPStnMmUoQSx3LGIpLGFbQT4+Ml09YVtSPj4yXSxhW0ErND4+Ml09YVtSKzQ+PjJdLGFbQSs4Pj4yXT1hW1IrOD4+Ml0sYVtBKzEyPj4yXT1hW1IrMTI+PjJdLGFbdz4+''@;'; + put 'put ''Ml09YVtnZT4+Ml0sYVt3KzQ+PjJdPWFbZ2UrND4+Ml0sYVt3Kzg+PjJdPWFbZ2UrOD4+Ml0sYVt3KzEyPj4yXT1hW2dlKzEyPj4yXSxhW2I+PjJdPWFbcGU+PjJdLGFbYis0Pj4yXT1hW3BlKzQ+PjJdLGFbYis4Pj4yXT1hW3BlKzg+PjJdLGFbYisxMj4+Ml09YVtwZSsxMj4+Ml0sZTllKEEs''@;'; + put 'put ''dyxiLE0sRCksYz0rX1tEPj4zXSpLK2MsZj0rX1tNPj4zXSpLK2YscD1LK3Asaz1tO19bbCs4Pj4zXT1mL3AsX1tsKzE2Pj4zXT1jL3AsbGU9R31mdW5jdGlvbiBnMmUobCxjLGYpe3ZhciBwLG0sQTtyZXR1cm4uNSorZW8oKygoKEE9K19bOCsoZnw9MCk+PjNdKS0obT0rX1s4KyhsfD0wKT4+''@;'; + put 'put ''M10pKSorX1soY3w9MCk+PjNdKygocD0rX1tjKzg+PjNdKS1BKSorX1tsPj4zXSsgK19bZj4+M10qKG0tcCkpKX1mdW5jdGlvbiBlOWUobCxjLGYscCxtKXttfD0wLF9bKHB8PTApPj4zXT0uMzMzMzMzMzMzMzMzMzMzMyooK19bKGN8PTApPj4zXSsgK19bKGx8PTApPj4zXSsgK19bKGZ8PTAp''@;'; + put 'put ''Pj4zXSksX1ttPj4zXT0uMzMzMzMzMzMzMzMzMzMzMyooK19bYys4Pj4zXSsgK19bbCs4Pj4zXSsgK19bZis4Pj4zXSl9ZnVuY3Rpb24geVYoKXt2YXIgcCxsPTAsYz0wLGY9MDtmb3IoKGw9MHxhWzQ2ODQ1XSl8fChsPTB8UW4oYVs0Njg1NF08PDIpLGFbNDY4NDVdPWwsYVs0Njg0OF09bCso''@;'; + put 'put ''YVs0Njg1NF08PDIpKSxmPTB8YVs0Njg2OV0sTnkoKSxwPTB8YVs0Njg1NF0sYz0wOyEoKDB8Yyk+PSgwfHApKTspYVtsPj4yXT1mKzgsYVtmKzg4Pj4yXT0wLGFbZisyOD4+Ml09MSxmPWYrOTZ8MCxsPWwrNHwwLGM9YysxfDA7eDEoMHxhWzQ2ODQ1XSxwLDQsNjkpLGFbNDY4NDddPWFbNDY4''@;'; + put 'put ''NDVdfWZ1bmN0aW9uIElYKCl7dmFyIGYsbD0wLGM9MCxwPTA7Zm9yKGY9MHxhWzQ2ODU0XSxsPTAsYz0wfGFbNDY4NjldOyEoKDB8bCk+PSgwfGYpKTspX1socD1jKzh8MCk+PjNdPTEuMDUqK19bcD4+M10sX1socD1jKzE2fDApPj4zXT0xLjA1KitfW3A+PjNdLGw9bCsxfDAsYz1jKzk2fDB9''@;'; + put 'put ''ZnVuY3Rpb24gVzcobCxjKXtsfD0wO3ZhciBmLG0sdyxwPTA7dz1sZSxsZT1sZSs0OHwwLG09dysyNHwwLDAhPSgwfChmPTB8TGkoY3w9MCw5MzExMikpKSYmMCE9KDB8TGsoZixtLDEsMCkpfHwocD0zKTtkb3tpZigzPT0oMHxwKSl7aWYoMHwoYz0wfExpKGMsOTMxMTYpKSYmMHxMayhjLG0s''@;'; + put 'put ''LjgwMDAwMDAxMTkyMDkyOSw0KSlicmVhaztqblttKzQ+PjJdPTQsam5bbT4+Ml09NCxmZVttKzg+PjBdPTF9fXdoaWxlKDApO2FbbD4+Ml09YVttPj4yXSxhW2wrND4+Ml09YVttKzQ+PjJdLGFbbCs4Pj4yXT1hW20rOD4+Ml0sbGU9d31mdW5jdGlvbiBMayhsLGMsZixwKXtsfD0wLGN8PTAs''@;'; + put 'put ''Zj0rZixwPStwO3ZhciB3LGIsayxELFIsbT0wLEE9MCxNPTAsRz0wO2ZvcihEPWxlLGxlPWxlKzE2fDAsaz1ELHc9RCsxMnwwLGI9RCs4fDA7QT1sKzF8MCwwfCRjKChtPTB8ZmVbbD4+MF0pPDwyND4+MjQpOylsPUE7c3dpdGNoKFI9bTw8MjQ+PjI0PT00MyxmZVsobT1jKzh8MCk+PjBdPTEm''@;'; + put 'put ''UixhW2s+PjJdPXcsYVtrKzQ+PjJdPWIsMHxpbChSP0E6bCw5MzE1NCxrKSl7Y2FzZSAwOmw9MDticmVhaztjYXNlIDE6YVtiPj4yXT1hW3c+PjJdLE09NTticmVhaztkZWZhdWx0Ok09NX1pZig1PT0oMHxNKSl7ZG97aWYoMHxmZVttPj4wXSl7aWYoZj4xKXtqbltjPj4yXT0oRz0ram5bdz4+''@;'; + put 'put ''Ml0vZik+cD9wOkcsZj0oZj0ram5bYj4+Ml0vZik+cD9wOmY7YnJlYWt9aWYoZjwxKXtqbltjPj4yXT0oRz0ram5bdz4+Ml0vZik8cD9wOkcsZj0oZj0ram5bYj4+Ml0vZik8cD9wOmY7YnJlYWt9YVtjPj4yXT1hW3c+PjJdLGY9K2puW2I+PjJdO2JyZWFrfWpuW2M+PjJdPStqblt3Pj4yXS9m''@;'; + put 'put ''KzEsZj0ram5bYj4+Ml0vZisxfXdoaWxlKDApO2puW2MrND4+Ml09ZixsPTF9cmV0dXJuIGxlPUQsMHxsfWZ1bmN0aW9uIHdWKGwsYyl7dmFyIGYscDtyZXR1cm4gY3w9MCxwPWxlLGxlPWxlKzMyfDAsZj1wLCgwfEdvKGx8PTApKTwyP2w9MDoobVYobCxjLGYpLGw9MHx6NyhsLGYpKSxsZT1w''@;'; + put 'put ''LDB8bH1mdW5jdGlvbiBEeShsKXtyZXR1cm4gMHx3VihsfD0wLDB8TGkobCw5MjUwNykpfWZ1bmN0aW9uIHI4KGwsYyxmLHAsbSl7bHw9MCxjfD0wLGZ8PTAscHw9MCxtfD0wO3ZhciBSLEcsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTA7Zm9yKEc9bGUsbGU9bGUrMTZ8MCxSPUcsQT0wOyEoKDB8''@;'; + put 'put ''QSk+PSgwfGYpKTspYVtwKyhBPDwyKT4+Ml09LTEsQT1BKzF8MDthW3ArKGw8PDIpPj4yXT0wLGZ1bmN0aW9uIExYKGwsYyl7YVthWyhsfD0wKT4+Ml0+PjJdPWN8PTAsYVtsKzEyPj4yXT0wLGFbbCs4Pj4yXT0xfShtLGwpO2U6ZG97aWYoMHxhW2MrOD4+Ml0pe0E9MjE0NzQ4MzY0Nzt0OmZv''@;'; + put 'put ''cig7Oyl7aWYoISgoMHxiVihtLFIpKTw8MjQ+PjI0KSlicmVhayBlO2ZvcihBPTB8YVtwKygoaz0wfGFbUj4+Ml0pPDwyKT4+Ml0sdz1jKygyMCprfDApfDAsYj1jKygyMCprfDApKzR8MCxrPWMrKDIwKmt8MCkrOHwwLGw9MTs7KXtpZigoMHxsKT49KDB8YVt3Pj4yXSkpY29udGludWUgdDso''@;'; + put 'put ''MHxhWyhEPXArKChNPTB8YVsoMHxhW2I+PjJdKSsobDw8Mik+PjJdKTw8Mil8MCk+PjJdKTwwJiYoYVtEPj4yXT1BK35+K2puWygwfGFbaz4+Ml0pKyhsPDwyKT4+Ml0sX1YobSxNKSksbD1sKzF8MH19fWVsc2V7QT0yMTQ3NDgzNjQ3O3Q6Zm9yKDs7KXtpZighKCgwfGJWKG0sUikpPDwyND4+''@;'; + put 'put ''MjQpKWJyZWFrIGU7Zm9yKEE9MHxhW3ArKChiPTB8YVtSPj4yXSk8PDIpPj4yXSx3PWMrKDIwKmJ8MCl8MCxiPWMrKDIwKmJ8MCkrNHwwLGs9QSsxfDAsbD0xOzspe2lmKCgwfGwpPj0oMHxhW3c+PjJdKSljb250aW51ZSB0OygwfGFbKEQ9cCsoKE09MHxhWygwfGFbYj4+Ml0pKyhsPDwyKT4+''@;'; + put 'put ''Ml0pPDwyKXwwKT4+Ml0pPDAmJihhW0Q+PjJdPWssX1YobSxNKSksbD1sKzF8MH19fX13aGlsZSgwKTtmb3IobD1BKzEwfDAsQT0wOyEoKDB8QSk+PSgwfGYpKTspKDB8YVsodz1wKyhBPDwyKXwwKT4+Ml0pPDAmJihhW3c+PjJdPWwpLEE9QSsxfDA7bGU9R31mdW5jdGlvbiBiVihsLGMpe3Zh''@;'; + put 'put ''ciBmLHA7cmV0dXJuIGN8PTAsKDB8KHA9MHxhWyhmPTEyKyhsfD0wKXwwKT4+Ml0pKTwoMHxhW2wrOD4+Ml0pPyhsPTB8YVtsPj4yXSxhW2Y+PjJdPXArMSxhW2M+PjJdPWFbbCsocDw8Mik+PjJdLGw9MSk6bD0wLDB8bH1mdW5jdGlvbiBfVihsLGMpe3ZhciBmLHA7cmV0dXJuIGN8PTAsKDB8''@;'; + put 'put ''KHA9MHxhWyhmPTgrKGx8PTApfDApPj4yXSkpPCgwfGFbbCs0Pj4yXSk/KGw9MHxhW2w+PjJdLGFbZj4+Ml09cCsxLGFbbCsocDw8Mik+PjJdPWMsbD0xKTpsPTAsMHxsfWZ1bmN0aW9uIEx5KGwsYyl7YVsobHw9MCk+PjJdPTB8UW4oKGN8PTApPDwyKSxhW2wrND4+Ml09YyxhW2wrOD4+Ml09''@;'; + put 'put ''MCxhW2wrMTI+PjJdPTB9ZnVuY3Rpb24gT0QobCl7RnQoMHxhWyhsfD0wKT4+Ml0pfWZ1bmN0aW9uIENWKGwsYyxmKXtsfD0wLGN8PTAsZnw9MDt2YXIgcD0wLG09MCxBPTAsdz0wO2ZvcihBPTA7ISgoMHxBKT49KDB8bCkpOyl7Zm9yKHc9YysoQTw8Mil8MCxtPTAscD0wOygwfG0pIT0oMHxs''@;'; + put 'put ''KTspKDB8QSkhPSgwfG0pJiYocD0rX1soMHxhW3c+PjJdKSsobTw8Myk+PjNdK3ApLG09bSsxfDA7X1soMHxhW3c+PjJdKSsoQTw8Myk+PjNdPS1wLEE9QSsxfDB9cmV0dXJuIDB8ZnVuY3Rpb24gaUsobCxjLGYpe2x8PTAsY3w9MCxmfD0wO3ZhciBwPTAsbT0wLEE9MCx3PTAsYj0wO2U6ZG97''@;'; + put 'put ''aWYoMHx6eChsLGYpKXtmb3IobT0wfHZyKGY8PDMpLGw9MDsoMHxsKTwoMHxmKTspe2ZvcihwPTA7KDB8cCkhPSgwfGYpOylfW20rKHA8PDMpPj4zXT0wLHA9cCsxfDA7X1ttKyhsPDwzKT4+M109MSx5UCgwfGFbYysobDw8Mik+PjJdLG0sZiksbD1sKzF8MH1mb3IoRnQobSksbT0wOzspe2lm''@;'; + put 'put ''KCgwfG0pPj0oMHxmKSl7bD0xO2JyZWFrIGV9Zm9yKHA9YysobTw8Mil8MCxsPTA7KDB8bCkhPSgwfG0pOyl3PStfWyhiPSgwfGFbcD4+Ml0pKyhsPDwzKXwwKT4+M10sX1tiPj4zXT0rX1soQT0oMHxhW2MrKGw8PDIpPj4yXSkrKG08PDMpfDApPj4zXSxfW0E+PjNdPXcsbD1sKzF8MDttPW0r''@;'; + put 'put ''MXwwfX1lbHNlIGw9MH13aGlsZSgwKTtyZXR1cm4gMHxsfShjLGYsbCstMXwwKX1mdW5jdGlvbiBTVihsLGMsZixwLG0sQSx3KXtsfD0wLGN8PTAsZnw9MCxtPSttLEF8PTAsd3w9MDt2YXIgTSxELFIsRyxwZSxnZSxPZSxiPTAsaz0wLEs9MCxiZT0wO2ZvcihPZT1sZSxsZT1sZSsxNnwwLE09''@;'; + put 'put ''T2UscGU9MHxRbihLPShwfD0wKTw8MyksZ2U9MHxRbihLKSxEPTB8UW4oSyksUj0wfFFuKEspLEc9MHxRbihLKSxaVihwLGYsSz0wfFFuKEspKSx3PDwyND4+MjQmJihhOChwLEspLGE4KHAsYykpLHEzKGwscCxjLFIpLFVEKHAsSyxSLHBlKSxaVihwLHBlLGdlKSx3PUErLTF8MCxmPTAsYj0r''@;'; + put 'put ''dnAocCxwZSxwZSk7Oyl7aWYoKDB8Zik+PSgwfEEpKXtmPTA7YnJlYWt9aWYoISgrZWQocCxwZSk+bSkpe2Y9MDticmVha31pZihxMyhsLHAsZ2UsRCksMD09KGs9K3ZwKHAsZ2UsRCkpKXtmPTA7YnJlYWt9aWYoVnkocCxnZSxrPWIvayxHKSxWayhwLGMsRyxjKSwoMHxmKTwoMHx3KSl7aWYo''@;'; + put 'put ''VnkocCxELGssRCksVUQocCxwZSxELHBlKSxrPSt2cChwLHBlLHBlKSwwPT1iKXtiZT05O2JyZWFrfVZ5KHAsZ2Usay9iLGdlKSxWayhwLHBlLGdlLGdlKSxiPWt9Zj1mKzF8MH1yZXR1cm4gOT09KDB8YmUpJiYoJHIoMSw5MzI0MixNKSxmPTEpLEZ0KHBlKSxGdChnZSksRnQoRCksRnQoUiks''@;'; + put 'put ''RnQoRyksRnQoSyksbGU9T2UsMHxmfWZ1bmN0aW9uIE9rKGwsYyxmLHAsbSxBKXtsfD0wLGN8PTAsZnw9MCxtPSttLEF8PTA7dmFyIGssTSxSLEcsSyxnZSx3PTAsYj0wLEQ9MCxwZT0wO2ZvcihnZT1sZSxsZT1sZSsxNnwwLE09Z2UsUj0wfHZyKEQ9KHB8PTApPDwyKSxHPTB8dnIoRCksSz0w''@;'; + put 'put ''fHZyKEQpLEQ9MHx2cihEKSxsOChwLGMpLGw4KHAsZiksdGQobCxwLGMsRCksbDgocCxEKSxmdW5jdGlvbiBMMmUobCxjLGYscCl7bHw9MCxjfD0wLGZ8PTAscHw9MDt2YXIgbT0wO2ZvcihtPTA7ISgoMHxtKT49KDB8bCkpOylqbltwKyhtPDwyKT4+Ml09K2puW2MrKG08PDIpPj4yXS0ram5b''@;'; + put 'put ''ZisobTw8Mik+PjJdLG09bSsxfDB9KHAsZixELFIpLHVLKHAsUixHKSxrPUErLTF8MCxmPTAsdz0rWDcocCxSLFIpOzspe2lmKCgwfGYpPj0oMHxBKSl7Zj0wO2JyZWFrfWlmKCEoK08yZShwLFIpPm0pKXtmPTA7YnJlYWt9aWYobDgocCxHKSxsOChwLGMpLGw4KHAsUiksdGQobCxwLEcsSyks''@;'; + put 'put ''bDgocCxLKSwwPT0oYj0rWDcocCxHLEspKSl7Zj0wO2JyZWFrfWlmKEpEKHAsYyxiPXcvYixHKSwoMHxmKTwoMHxrKSl7aWYoSkQocCxSLC1iLEspLGI9K1g3KHAsUixSKSwwPT13KXtwZT03O2JyZWFrfXNLKHAsRyxiL3csRyksUUQocCxSLEcsRyksdz1ifWY9ZisxfDB9cmV0dXJuIDc9PSgw''@;'; + put 'put ''fHBlKSYmKCRyKDEsOTMyNDIsTSksZj0xKSxGdChSKSxGdChHKSxGdChLKSxGdChEKSxsZT1nZSwwfGZ9ZnVuY3Rpb24gQlgobCxjKXtjfD0wO3ZhciBtLHcsayxNLGY9MCxwPTAsQT0wLGI9MDtmb3IoTT1sZSxsZT1sZSs0OHwwLG09TSsyNHwwLEE9TSsxMnwwLGY9TSxrPTB8UW4oNDgqKHc9''@;'; + put 'put ''MHxHbyhsfD0wKSl8MCksVzcoZixsKSxhW0E+PjJdPWFbZj4+Ml0sYVtBKzQ+PjJdPWFbZis0Pj4yXSxhW0ErOD4+Ml09YVtmKzg+PjJdLGY9MHxEdChsKSxwPWs7ZjspYVttPj4yXT1hW0E+PjJdLGFbbSs0Pj4yXT1hW0ErND4+Ml0sYVttKzg+PjJdPWFbQSs4Pj4yXSxQWChmLHAsbSksZj0w''@;'; + put 'put ''fHp0KGwsZikscD1wKzQ4fDA7ZTpkb3tpZigwfE1WKGssdykpe3N3aXRjaCgwfGMpe2Nhc2UgOTppOChsLGssdyw3MCwxKSxvOChsLGssdyw3MSwxKSxmPTAscD1rO2JyZWFrO2Nhc2UgMTA6bzgobCxrLHcsNzEsMSksaTgobCxrLHcsNzAsMSksZj0wLHA9azticmVhaztjYXNlIDc6aTgobCxr''@;'; + put 'put ''LHcsNzIsMSksbzgobCxrLHcsNzEsMSksYj05O2JyZWFrO2Nhc2UgODpiPTk7YnJlYWs7Y2FzZSAxMzpiPTEwO2JyZWFrO2Nhc2UgMTQ6bzgobCxrLHcsNzEsMCksaTgobCxrLHcsNzAsMCksZj0wLHA9azticmVhaztjYXNlIDEyOm84KGwsayx3LDczLDApLGk4KGwsayx3LDcwLDApLGY9MCxw''@;'; + put 'put ''PWs7YnJlYWs7ZGVmYXVsdDppOChsLGssdyw3MiwwKSxvOChsLGssdyw3MSwwKSxmPTAscD1rfWZvcig5PT0oMHxiKSYmKG84KGwsayx3LDczLDEpLGk4KGwsayx3LDcwLDEpLGI9MTApLDEwPT0oMHxiKSYmKGk4KGwsayx3LDcwLDApLG84KGwsayx3LDcxLDApLGY9MCxwPWspOzspe2lmKCgw''@;'; + put 'put ''fGYpPj0oMHx3KSl7Zj0xO2JyZWFrIGV9QT0wfGFbcCsxNj4+Ml0sX1soYj0wfGFbMTMyKygwfGFbMTYrKDB8YVtwKzIwPj4yXSk+PjJdKT4+Ml0pPj4zXT0uMDAxMzg4ODg4ODg4ODg4ODg4NyorKDB8YVtwKzEyPj4yXSksX1tiKzg+PjNdPS4wMDEzODg4ODg4ODg4ODg4ODg3KisoMHxBKSxm''@;'; + put 'put ''PWYrMXwwLHA9cCs0OHwwfX1lbHNlIGY9MH13aGlsZSgwKTtyZXR1cm4gRnQoayksbGU9TSwwfGZ9ZnVuY3Rpb24gUFgobCxjLGYpe3ZhciBBLHA9MCxtPTAsdz0wLGI9MCxrPTA7QT1+figoYj03MjAqK19bKHc9MHxhWzEzMisocD0wfGFbMTYrKGx8PTApPj4yXSk+PjJdKT4+M10pKyhiPj0w''@;'; + put 'put ''Py41Oi0uNSkpLHc9fn4oKGI9NzIwKitfW3crOD4+M10pKyhiPj0wPy41Oi0uNSkpLDB8ZmVbOCsoZnw9MCk+PjBdPyhtPX5+KDEwKigram5bZj4+Ml0rICsoMHx+figoYj0zNiorX1twKzMyPj4zXSkrKGI+PTA/LjU6LS41KSkpKSkscD1+figxMCooK2puW2YrND4+Ml0rICsoMHx+figoaz0z''@;'; + put 'put ''NiorX1twKzQwPj4zXSkrKGs+PTA/LjU6LS41KSkpKSkpOihtPX5+KChrPTcyKitfW3ArMzI+PjNdKig1KitqbltmPj4yXSkpKyhrPj0wPy41Oi0uNSkpLHA9fn4oKGI9NzIqK19bcCs0MD4+M10qKDUqK2puW2YrND4+Ml0pKSsoYj49MD8uNTotLjUpKSksYVsxMisoY3w9MCk+PjJdPUEsYVtj''@;'; + put 'put ''KzE2Pj4yXT13LGFbYysyMD4+Ml09bCxhW2MrMzI+PjJdPUEtbSxhW2MrMzY+PjJdPXctcCxhW2MrNDA+PjJdPW0rQSxhW2MrNDQ+PjJdPXArd31mdW5jdGlvbiBNVihsLGMpe2x8PTA7dmFyIE0sZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wO009KGN8PTApLTF8MCxmPTA7ZTpmb3IoOzsp''@;'; + put 'put ''e2lmKCgwfGYpPj0oMHxNKSl7bD0wO2JyZWFrfWZvcihBPWwrMzJ8MCx3PWwrNDB8MCxiPWwrMzZ8MCxtPWwrNDR8MCxsPWs9bCs0OHwwLHA9Zj1mKzF8MDs7KXtpZigoMHxwKT49KDB8Yykpe2w9aztjb250aW51ZSBlfWlmKCgwfGFbQT4+Ml0pPD0oMHxhW2wrNDA+PjJdKSYmKDB8YVtsKzMy''@;'; + put 'put ''Pj4yXSk8PSgwfGFbdz4+Ml0pJiYoMHxhW2I+PjJdKTw9KDB8YVtsKzQ0Pj4yXSkmJigwfGFbbCszNj4+Ml0pPD0oMHxhW20+PjJdKSl7bD0xO2JyZWFrIGV9bD1sKzQ4fDAscD1wKzF8MH19cmV0dXJuIDB8bH1mdW5jdGlvbiBpOChsLGMsZixwLG0pe2x8PTAsY3w9MCxmfD0wLHB8PTAsbXw9''@;'; + put 'put ''MDt2YXIgYixBPTAsdz0wO2ZvcihiPTB8aXMoMTgxNjgsMHxhWzQ1ODRdKSxBPWMsdz0wOyEoKDB8dyk+PSgwfGYpKTspYVtBKzg+PjJdPWFbQSsxMj4+Ml0sbWlbNjMmYVtiPj4yXV0oYixBLDEpLEE9QSs0OHwwLHc9dysxfDA7Zm9yKGs3KHc9bT8wfG0yZShiLHAsNzQpOjB8eHMobCxiLHAs''@;'; + put 'put ''NzQpLDIsMjE0NzQ4MzY0NyksQT0wOyEoKDB8QSk+PSgwfGYpKTspcD0obD0wfGFbMjMyKygwfGFbMTYrKDB8YVtjKzI0Pj4yXSk+PjJdKT4+Ml0pLSgwfGFbKG09YysxMnwwKT4+Ml0pfDAsYVttPj4yXT1sLGFbKG09YyszMnwwKT4+Ml09KDB8YVttPj4yXSkrcCxhWyhtPWMrNDB8MCk+PjJd''@;'; + put 'put ''PSgwfGFbbT4+Ml0pK3AsYz1jKzQ4fDAsQT1BKzF8MDtkZyh3KSxObChiKX1mdW5jdGlvbiBvOChsLGMsZixwLG0pe2x8PTAsY3w9MCxmfD0wLHB8PTAsbXw9MDt2YXIgYixBPTAsdz0wO2ZvcihiPTB8aXMoMTgxNjgsMHxhWzQ1ODRdKSxBPWMsdz0wOyEoKDB8dyk+PSgwfGYpKTspYVtBKzg+''@;'; + put 'put ''PjJdPWFbQSsxNj4+Ml0sbWlbNjMmYVtiPj4yXV0oYixBLDEpLEE9QSs0OHwwLHc9dysxfDA7Zm9yKGs3KHc9bT8wfG0yZShiLHAsNzUpOjB8eHMobCxiLHAsNzUpLDIsMjE0NzQ4MzY0NyksQT0wOyEoKDB8QSk+PSgwfGYpKTspcD0obD0wfGFbMjMyKygwfGFbMTYrKDB8YVtjKzI0Pj4yXSk+''@;'; + put 'put ''PjJdKT4+Ml0pLSgwfGFbKG09YysxNnwwKT4+Ml0pfDAsYVttPj4yXT1sLGFbKG09YyszNnwwKT4+Ml09KDB8YVttPj4yXSkrcCxhWyhtPWMrNDR8MCk+PjJdPSgwfGFbbT4+Ml0pK3AsYz1jKzQ4fDAsQT1BKzF8MDtkZyh3KSxObChiKX1mdW5jdGlvbiBCRChsLGMpe3JldHVybiAwfCgoMHxh''@;'; + put 'put ''WzEyKyhsfD0wKT4+Ml0pLSgwfGFbbCs0Pj4yXSkrKDB8YVsxMisoY3w9MCk+PjJdKS0oMHxhW2MrND4+Ml0pfDApLzJ9ZnVuY3Rpb24gSFgobCxjKXtyZXR1cm4gMHwoKDB8YVs4KyhsfD0wKT4+Ml0pLSgwfGFbbD4+Ml0pKygwfGFbOCsoY3w9MCk+PjJdKS0oMHxhW2M+PjJdKXwwKS8yfWZ1''@;'; + put 'put ''bmN0aW9uIG0yZShsLGMsZil7bHw9MCxjfD0wLGZ8PTA7dmFyIExlLFJlLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxLPTAscGU9MCxnZT0wLGJlPTAsT2U9MDtmb3IoUmU9bGUsbGU9bGUrMTZ8MCxmZVsoT2U9UmUpPj4wXT0wfGZlWzE4NTg4XSxmZVtPZSsxPj4w''@;'; + put 'put ''XT0wfGZlWzE4NTg5XSxmZVtPZSsyPj4wXT0wfGZlWzE4NTkwXSxmZVtPZSszPj4wXT0wfGZlWzE4NTkxXSxoMChMZT0wfG9jKDkzNTE1LE9lLDApLDEzNzQ4MywyODAsMSkscD0wfHMwKGwpLG09LTIxNDc0ODM2NDcsYmU9MDtwOylnZT1iZSsoKDB8bSkhPSgwfChwZT0wfGFbcCs4Pj4yXSkp''@;'; + put 'put ''JjEpfDAscD0wfGFbcD4+Ml0sbT1wZSxiZT1nZTtmb3IocGU9TGUrMTZ8MCxnZT0oYmU8PDMpLTR8MCxNPTAsdz0wLHA9MCxtPTAsaz0wLEs9MHxzMChsKSxBPS0yMTQ3NDgzNjQ3O0s7KSgwfEEpIT0oMHwoRz0wfGFbSys4Pj4yXSkpPyhoMChSPTB8R3IoTGUsMHx0aSgwfGFbSysyMD4+Ml0p''@;'; + put 'put ''LDEpLDEzNzQ0NywzMDQsMSksYVsxMTIrKHA9MHxhWyhEPVIrMTZ8MCk+PjJdKT4+Ml09SyxtPyhhWzE2NCsoMHxhW00rMTY+PjJdKT4+Ml09UixNPW0pOihhWzE5MisoMHxhW3BlPj4yXSk+PjJdPVIsTT1SKSxhW3ArMTc2Pj4yXT0wLEE9MHx2cigoYj13KzF8MCk8PDIpLGFbMTcyKygwfGFb''@;'; + put 'put ''RD4+Ml0pPj4yXT1BLGs/KGFbMTg0KygwfGFbKEE9aysxNnwwKT4+Ml0pPj4yXT0wLHc9MHx2cigoMHxrKT09KDB8TSk/Z2U6YmUtdzw8MiksYVsxODArKDB8YVtBPj4yXSk+PjJdPXcsaDAodz0wfEthKExlLGssUiwwLDEpLDEzNzQ2MCwxNzYsMSksaXRbMTcwKyhwPTB8YVt3KzE2Pj4yXSk+''@;'; + put 'put ''PjFdPTEwLGFbcCsxNTY+PjJdPTEscD0obT0wfGFbMTgwKyhwPTB8YVtBPj4yXSk+PjJdKT8wfFYwKG0sOCsoYVtwKzE4ND4+Ml08PDIpfDApOjB8UW4oOCsoYVtwKzE4ND4+Ml08PDIpfDApLGFbMTgwKyhrPTB8YVtBPj4yXSk+PjJdPXAsYVsoaz1rKzE4NHwwKT4+Ml09MSsobT0wfGFbaz4+''@;'; + put 'put ''Ml0pLGFbcCsobTw8Mik+PjJdPXcsYVsoMHxhWzE4MCsocD0wfGFbQT4+Ml0pPj4yXSkrKGFbcCsxODQ+PjJdPDwyKT4+Ml09MCxwPShtPTB8YVsxNzIrKHA9MHxhW0Q+PjJdKT4+Ml0pPzB8VjAobSw4KyhhW3ArMTc2Pj4yXTw8Mil8MCk6MHxRbig4KyhhW3ArMTc2Pj4yXTw8Mil8MCksYVsx''@;'; + put 'put ''NzIrKG09MHxhW0Q+PjJdKT4+Ml09cCxhWyhtPW0rMTc2fDApPj4yXT0xKyhrPTB8YVttPj4yXSksYVtwKyhrPDwyKT4+Ml09dyxhWygwfGFbMTcyKyh3PTB8YVtEPj4yXSk+PjJdKSsoYVt3KzE3Nj4+Ml08PDIpPj4yXT0wLHc9YixiPVIsaz1SLHA9UixtPU0sQT1HKToodz1iLGI9UixrPVIs''@;'; + put 'put ''cD1SLG09TSxBPUcpKTooYj1wLHA9TSksYVtLKzI0Pj4yXT1iLE09cCxwPWIsSz0wfGFbSz4+Ml07Zm9yKGFbMTg0KygwfGFbKGs9aysxNnwwKT4+Ml0pPj4yXT0wLHA9MHx2cig0KSxhWzE4MCsoMHxhW2s+PjJdKT4+Ml09cCxmZVtPZT4+MF09MHxmZVsxODU4OF0sZmVbT2UrMT4+MF09MHxm''@;'; + put 'put ''ZVsxODU4OV0sZmVbT2UrMj4+MF09MHxmZVsxODU5MF0sZmVbT2UrMz4+MF09MHxmZVsxODU5MV0saz0wfG9jKDkzNTYyLE9lLDApLHA9MHxzMChsKTtwOyloMChPZT0wfEdyKGssMHx0aSgwfGFbcCsyMD4+Ml0pLDEpLDEzNzQ0NywzMDQsMSksYVtwKzI4Pj4yXT1PZSxhWzExMisoMHxhW09l''@;'; + put 'put ''KzE2Pj4yXSk+PjJdPXAscD0wfGFbcD4+Ml07cD0wLGI9MHxzMChsKSxtPS0yMTQ3NDgzNjQ3O2U6Zm9yKDtiOyl7dz0wfGFbYis4Pj4yXTt0OmRve2lmKCgwfG0pPT0oMHx3KSl3PW07ZWxzZSBmb3IocD1iOzspe2lmKCEocD0wfGFbcD4+Ml0pKWJyZWFrIGU7aWYoKDB8YVtwKzg+PjJdKSE9''@;'; + put 'put ''KDB8dykpYnJlYWsgdH19d2hpbGUoMCk7Zm9yKEE9YisyOHwwLG09cDttOykwfEJpWzEyNyZjXShiLG0pJiZLYShrLDB8YVtBPj4yXSwwfGFbbSsyOD4+Ml0sMCwxKSxtPTB8YVttPj4yXTtiPTB8YVtiPj4yXSxtPXd9cmV0dXJuIGZ1bmN0aW9uIEVWKGwsYyxmKXtjfD0wLGZ8PTA7dmFyIHA9''@;'; + put 'put ''MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxLPTAscGU9MDtmb3Ioaz0wfER0KGx8PTApO2s7KXtmb3IoRD0wfGFbMjQrKFI9MHxhWzExMisoMHxhW2srMTY+PjJdKT4+Ml0pPj4yXSxSPVIrMzJ8MCxHPUQrMTZ8MCxNPTB8dzAobCxrKTtNOylLPTB8QmlbMTI3JmZdKFIs''@;'; + put 'put ''MzIrKEE9MHxhWzExMisoMHxhWzE2KygwfGFbKDI9PSgzJmFbTT4+Ml18MCk/TTpNKy00OHwwKSs0MD4+Ml0pPj4yXSk+PjJdKXwwKSxoMCh3PTB8S2EoYyxELEE9MHxhW0ErMjQ+PjJdLDAsMSksMTM3NDYwLDE3NiwxKSxhWzE1NisocD0wfGFbKGI9dysxNnwwKT4+Ml0pPj4yXT0xLCgwfEsp''@;'; + put 'put ''Pig2NTUzNSYobT0wfGl0W3ArMTcwPj4xXSl8MCkmJihtPDwxNj4+MTZ8fChwPShtPTB8YVsxODArKHA9MHxhW0c+PjJdKT4+Ml0pPzB8VjAobSw4KyhhW3ArMTg0Pj4yXTw8Mil8MCk6MHxRbig4KyhhW3ArMTg0Pj4yXTw8Mil8MCksYVsxODArKHBlPTB8YVtHPj4yXSk+PjJdPXAsYVsocGU9''@;'; + put 'put ''cGUrMTg0fDApPj4yXT0xKyhtPTB8YVtwZT4+Ml0pLGFbcCsobTw8Mik+PjJdPXcsYVsoMHxhWzE4MCsocD0wfGFbRz4+Ml0pPj4yXSkrKGFbcCsxODQ+PjJdPDwyKT4+Ml09MCxwPShtPTB8YVsxNzIrKHA9MHxhWyhBPUErMTZ8MCk+PjJdKT4+Ml0pPzB8VjAobSw4KyhhW3ArMTc2Pj4yXTw8''@;'; + put 'put ''Mil8MCk6MHxRbig4KyhhW3ArMTc2Pj4yXTw8Mil8MCksYVsxNzIrKG09MHxhW0E+PjJdKT4+Ml09cCxhWyhtPW0rMTc2fDApPj4yXT0xKyhwZT0wfGFbbT4+Ml0pLGFbcCsocGU8PDIpPj4yXT13LGFbKDB8YVsxNzIrKHA9MHxhW0E+PjJdKT4+Ml0pKyhhW3ArMTc2Pj4yXTw8Mik+PjJdPTAs''@;'; + put 'put ''cD0wfGFbYj4+Ml0pLGl0W3ArMTcwPj4xXT1LKSxNPTB8UzAobCxNKTtrPTB8enQobCxrKX19KGssTGUsZiksQzEoayksbGU9UmUsMHxMZX1mdW5jdGlvbiB4cyhsLGMsZixwKXtsfD0wLGN8PTAsZnw9MCxwfD0wO3ZhciBwZSxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxL''@;'; + put 'put ''PTAsZ2U9MDtmb3IocGU9bGUsbGU9bGUrMTZ8MCxmZVsoSz1wZSk+PjBdPTB8ZmVbMTg1ODhdLGZlW0srMT4+MF09MHxmZVsxODU4OV0sZmVbSysyPj4wXT0wfGZlWzE4NTkwXSxmZVtLKzM+PjBdPTB8ZmVbMTg1OTFdLGgwKEs9MHxvYyg5MzUxNSxLLDApLDEzNzQ4MywyODAsMSksYj1LKzE2''@;'; + put 'put ''fDAsbT0wfHMwKGMpLEE9MDttOyloMCh3PTB8R3IoSywwfHRpKDB8YVttKzIwPj4yXSksMSksMTM3NDQ3LDMwNCwxKSxhWzExMisoTT0wfGFbKFI9dysxNnwwKT4+Ml0pPj4yXT1tLGFbbSsyND4+Ml09dyxhW00rMTc2Pj4yXT0wLE09MHx2cig0KSxhWzE3MisoRD0wfGFbUj4+Ml0pPj4yXT1N''@;'; + put 'put ''LGFbRCsxODQ+PjJdPTAsRD0wfHZyKDQpLGFbMTgwKygwfGFbUj4+Ml0pPj4yXT1ELEE/YVsxNjQrKDB8YVtBKzE2Pj4yXSk+PjJdPXc6YVsxOTIrKDB8YVtiPj4yXSk+PjJdPXcsbT0wfGFbbT4+Ml0sQT13O2s9MHxzMChjKTtlOmZvcig7azspe2ZvcihNPWsrMzJ8MCxEPWsrMjR8MCxSPWsr''@;'; + put 'put ''MjB8MCxtPWs7bT0wfGFbbT4+Ml07KWlmKDB8QmlbMTI3JmZdKGssbSkpe2lmKEE9MHxCaVsxMjcmcF0oTSxtKzMyfDApLGgwKHc9MHxLYShLLDB8YVtEPj4yXSwwfGFbbSsyND4+Ml0sMCwxKSwxMzc0NjAsMTc2LDEpLCgwfEEpPj02NTUzNil7Rz0xMzticmVhayBlfWl0WzE3MCsoZ2U9MHxh''@;'; + put 'put ''WyhiPXcrMTZ8MCk+PjJdKT4+MV09QSxhW2dlKzE1Nj4+Ml09MSwwfHcmJjB8S2EobCwwfGFbUj4+Ml0sMHxhW20rMjA+PjJdLDAsMCkmJihhWzE1NisoMHxhW2I+PjJdKT4+Ml09MTAwKX1rPTB8YVtrPj4yXX1mb3IoMTM9PSgwfEcpJiZQcig5MzUxOCw5MzUzNCwyNTQsOTM1NDcpLGs9MHxz''@;'; + put 'put ''MChjKTtrOyl7Zm9yKE09MTYrKGI9MHxhW2srMjQ+PjJdKXwwLGI9MHx3MChLLGIpO2I7KW09KEE9MHxhWzE4MCsobT0wfGFbTT4+Ml0pPj4yXSk/MHxWMChBLDgrKGFbbSsxODQ+PjJdPDwyKXwwKTowfFFuKDgrKGFbbSsxODQ+PjJdPDwyKXwwKSxhWzE4MCsoQT0wfGFbTT4+Ml0pPj4yXT1t''@;'; + put 'put ''LGFbKEE9QSsxODR8MCk+PjJdPTErKHc9MHxhW0E+PjJdKSxhW20rKHc8PDIpPj4yXT1iLGFbKDB8YVsxODArKHc9MHxhW00+PjJdKT4+Ml0pKyhhW3crMTg0Pj4yXTw8Mik+PjJdPTAsdz1iKy00OHwwLG09KEE9MHxhWzE3MisobT0wfGFbMTYrKDB8YVsoMj09KDMmYVtiPj4yXXwwKT9iOncp''@;'; + put 'put ''KzQwPj4yXSk+PjJdKT4+Ml0pPzB8VjAoQSw4KyhhW20rMTc2Pj4yXTw8Mil8MCk6MHxRbig4KyhhW20rMTc2Pj4yXTw8Mil8MCksYVsxNzIrKDB8YVsxNisoMHxhWygyPT0oMyZhW2I+PjJdfDApP2I6dykrNDA+PjJdKT4+Ml0pPj4yXT1tLEc9MHxhWzE3MisocD0wfGFbMTYrKDB8YVsoMj09''@;'; + put 'put ''KDMmYVtiPj4yXXwwKT9iOncpKzQwPj4yXSk+PjJdKT4+Ml0sYVsocD1wKzE3NnwwKT4+Ml09MSsoZ2U9MHxhW3A+PjJdKSxhW0crKGdlPDwyKT4+Ml09YixhWygwfGFbMTcyKyhnZT0wfGFbMTYrKDB8YVsoMj09KDMmYVtiPj4yXXwwKT9iOncpKzQwPj4yXSk+PjJdKT4+Ml0pKyhhW2dlKzE3''@;'; + put 'put ''Nj4+Ml08PDIpPj4yXT0wLGI9MHxTMChLLGIpO2s9MHxhW2s+PjJdfXJldHVybiBsZT1wZSwwfEt9ZnVuY3Rpb24gZGcobCl7dmFyIGM9MCxmPTAscD0wLG09MDtmb3IobT0wfER0KGx8PTApO207KShwPTB8YVsxNzIrKGM9MHxhWyhmPW0rMTZ8MCk+PjJdKT4+Ml0pJiYoRnQocCksYz0wfGFb''@;'; + put 'put ''Zj4+Ml0pLDB8KGM9MHxhW2MrMTgwPj4yXSkmJkZ0KGMpLG09MHx6dChsLG0pO0MxKGwpfWZ1bmN0aW9uIHhWKGwsYyl7Y3w9MDt2YXIgayxNLEcscGUsT2UsTGUsUmUsZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsRD0wLFI9MCxiZT0wLEhlPTAsVmU9MDtmb3IoUmU9bGUsbGU9bGUrNjR8MCxH''@;'; + put 'put ''PVJlKzUyfDAsUj1SZSs0MHwwLHBlPVJlLExlPTB8UW4oNzIqKE9lPTB8R28obHw9MCkpfDApLFc3KFIsbCksdz0ram5bUj4+Ml0sYj0ram5bUis0Pj4yXSxrPS41Kih3PShSPTAhPSgwfGZlW1IrOD4+MF0pKT8uMDEzODg4ODg4ODg4ODg4ODg4Knc6dyksTT0uNSooYj1SPy4wMTM4ODg4ODg4''@;'; + put 'put ''ODg4ODg4ODgqYjpiKSxmPUxlLHA9MHxEdChsKTtwOyltPStfWzMyKyhEPTB8YVtwKzE2Pj4yXSk+PjNdLFI/KEE9LjUqK19bRCs0MD4+M10rYixtPS41Km0rdyk6KEE9TSorX1tEKzQwPj4zXSxtKj1rKSxfW2Y+PjNdPVZlPStfWyhEPTB8YVtEKzEzMj4+Ml0pPj4zXSxfW2YrOD4+M109SGU9''@;'; + put 'put ''K19bRCs4Pj4zXSxfW2YrMTY+PjNdPVZlLW0sX1tmKzI0Pj4zXT1IZS1BLF9bZiszMj4+M109VmUrbSxfW2YrNDA+PjNdPUhlK0EsX1tmKzQ4Pj4zXT1tLF9bZis1Nj4+M109QSxhW2YrNjQ+PjJdPXAsZj1mKzcyfDAscD0wfHp0KGwscCk7ZG97aWYoKDB8Yyk8MCl7aWYoMD09KG09K1RWKExl''@;'; + put 'put ''LE9lKSkpe0Z0KExlKSxmPTA7YnJlYWt9dz1tLEE9bSxiZT0xOX1lbHNle2lmKHA9MHx2MmUoTGUsT2UsRyksIShmPTB8YVtHPj4yXSkpe0Z0KHApLEZ0KExlKSxmPTA7YnJlYWt9Yz9tPUE9K3Q5ZShwLGYpOihuOWUocGUscCxmKSxtPStfW3BlPj4zXSxBPStfW3BlKzg+PjNdKSxGdChwKSx3''@;'; + put 'put ''PW0sYmU9MTl9fXdoaWxlKDApO2lmKDE5PT0oMHxiZSkpe2ZvcihmPTAscD1MZTshKCgwfGYpPj0oMHxPZSkpOylfWyhiZT0wfGFbMTMyKygwfGFbMTYrKDB8YVtwKzY0Pj4yXSk+PjJdKT4+Ml0pPj4zXT0rX1twPj4zXSp3LF9bYmUrOD4+M109K19bcCs4Pj4zXSpBLGY9ZisxfDAscD1wKzcy''@;'; + put 'put ''fDA7RnQoTGUpLGY9MX1yZXR1cm4gbGU9UmUsMHxmfWZ1bmN0aW9uIFRWKGwsYyl7bHw9MCxjfD0wO3ZhciBmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLEs9MCxwZT0wLGdlPTAsYmU9MDtmPTAscD0wO2U6Zm9yKDshKCgwfHApPj0oMHxjKSk7KWZvcihiZT1s''@;'; + put 'put ''KzcyfDAscD1wKzF8MCxSPWwrMTZ8MCxHPWwrOHwwLEs9bCs1NnwwLHBlPWwrNDh8MCxnZT1sKzMyfDAsTT1sKzI0fDAsRD1sKzQwfDAsYj1wLGs9YmU7Oyl7aWYoKDB8Yik+PSgwfGMpKXtsPWJlO2NvbnRpbnVlIGV9aWYoK19bUj4+M108PStfW2srMzI+PjNdJiYrX1trKzE2Pj4zXTw9K19b''@;'; + put 'put ''Z2U+PjNdJiYrX1tNPj4zXTw9K19bays0MD4+M10mJitfW2srMjQ+PjNdPD0rX1tEPj4zXSl7Zj0wO2JyZWFrIGV9KG09K19bbD4+M10pPT0oQT0rX1trPj4zXSk/dz1Bczoodz0rZW8oKyhtLUEpKSx3PSgrX1trKzQ4Pj4zXSsgK19bcGU+PjNdKS93KSwobT0rX1tHPj4zXSk9PShBPStfW2sr''@;'; + put 'put ''OD4+M10pP209QXM6KG09K2VvKCsobS1BKSksbT0oK19bays1Nj4+M10rICtfW0s+PjNdKS9tKSxiPWIrMXwwLGs9ays3MnwwLGY9KHc9bTx3P206dyk+Zj93OmZ9cmV0dXJuK2Z9ZnVuY3Rpb24gdjJlKGwsYyxmKXtsfD0wLGZ8PTA7dmFyIHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxE''@;'; + put 'put ''PTAsUj0wLEc9MCxLPTAscGU9MCxnZT0wLGJlPTAsT2U9MCxMZT0wLFJlPTAsSGU9MCxWZT0wLHFlPTAsbnQ9MDtEPTAscD0wLFI9az0wfFFuKDE2KygoY3w9MCk8PDQpfDApLEc9Yyx3PWs7ZTpmb3IoOyEoKDB8cCk+PSgwfGMpKTspZm9yKHFlPWwrNzJ8MCxwPXArMXwwLFZlPWwrMTZ8MCxn''@;'; + put 'put ''ZT1sKzMyfDAsYmU9bCsyNHwwLE9lPWwrNDB8MCxMZT1sKzh8MCxSZT1sKzU2fDAsSGU9bCs0OHwwLEs9cCxwZT1xZSxNPXc7Oyl7aWYoKDB8Syk9PSgwfGMpKXtsPXFlLHc9TTtjb250aW51ZSBlfStfW1ZlPj4zXTw9K19bcGUrMzI+PjNdJiYrX1twZSsxNj4+M108PStfW2dlPj4zXSYmK19b''@;'; + put 'put ''YmU+PjNdPD0rX1twZSs0MD4+M10mJitfW3BlKzI0Pj4zXTw9K19bT2U+PjNdPyh3PUcrY3wwLCgwfEQpPT0oMHxHKT8oUj1rPTB8VjAoaywxNisodzw8NCl8MCksTT1rKTp3PUcsKG09K19bbD4+M10pIT0oQT0rX1twZT4+M10pPyhtPSgrX1twZSs0OD4+M10rICtfW0hlPj4zXSkvK2VvKCso''@;'; + put 'put ''bS1BKSkpPDEmJihtPTEsbnQ9MTMpOihtPUFzLG50PTEzKSwxMz09KDB8bnQpJiYobnQ9MCksKEE9K19bTGU+PjNdKSE9KGI9K19bcGUrOD4+M10pPyhBPSgrX1twZSs1Nj4+M10rICtfW1JlPj4zXSkvK2VvKCsoQS1iKSkpPDEmJihBPTEsbnQ9MTYpOihBPUFzLG50PTE2KSwxNj09KDB8bnQp''@;'; + put 'put ''JiYobnQ9MCksX1tSKygoRD1EKzF8MCk8PDQpPj4zXT1tLF9bUisoRDw8NCkrOD4+M109QSk6dz1HLEs9SysxfDAscGU9cGUrNzJ8MCxHPXd9cmV0dXJuIG50PTB8VjAodywxNisoRDw8NCl8MCksYVtmPj4yXT1ELDB8bnR9ZnVuY3Rpb24gdDllKGwsYyl7bHw9MCxjfD0wO3ZhciBmPTAscD0w''@;'; + put 'put ''LG09MCxBPTAsdz0wO2ZvcihwPTEsbT0wO2Y9bCsxNnwwLCEoKDB8cCk+KDB8YykpOylwPXArMXwwLG09KEE9KHc9K19bZj4+M10pPChBPStfW2wrMjQ+PjNdKT93OkEpPm0/QTptLGw9ZjtyZXR1cm4rbX1mdW5jdGlvbiBuOWUobCxjLGYpe2x8PTAsZnw9MDt2YXIgdyxwPTAsbT0wLEE9MCxi''@;'; + put 'put ''PTA7Zm9yKF9bKGN8PTApPj4zXT0xLF9bYys4Pj4zXT1Bcyx4MShjKzE2fDAsZiwxNiw3Niksdz0wfFFuKDE2KyhmPDw0KXwwKSxfW3crKGY8PDQpPj4zXT0rX1tjKyhmPDw0KT4+M10sQT1mLHA9MTs7KXtpZihfW3crKEE8PDQpKzg+PjNdPXAsbT1BKy0xfDAsKDB8QSk8PTApe3A9QXMsbT0w''@;'; + put 'put ''LEE9MDticmVha31fW3crKG08PDQpPj4zXT0rX1tjKyhtPDw0KT4+M10sYj0rX1soK19bYysoQTw8NCkrOD4+M10+cD9jOncpKyhBPDw0KSs4Pj4zXSxBPW0scD1ifWZvcig7ISgoMHxBKT4oMHxmKSk7KXA9KGM9KGI9K19bdysoQTw8NCkrOD4+M10qK19bdysoQTw8NCk+PjNdKTxwKT9iOnAs''@;'; + put 'put ''bT1jP0E6bSxBPUErMXwwO2lmKHA8QXMpcmV0dXJuIGI9K19bdysobTw8NCkrOD4+M10sX1tsPj4zXT0rX1t3KyhtPDw0KT4+M10sdm9pZChfW2wrOD4+M109Yik7UHIoOTM1OTYsOTM1MzQsODMyLDkzNjE2KX1mdW5jdGlvbiBpOWUobCxjLGYpe3JldHVybiBjfD0wLGZ8PTAsZj1sZSxsZT1s''@;'; + put 'put ''ZSsxNnwwLGFbKGM9Zik+PjJdPTkzNjMxLCRyKDEsOTM2ODEsYyksbGU9ZiwwfWZ1bmN0aW9uIE5YKGwpe3ZhciBjPTA7MHwobHw9MCkmJigwfChjPTB8YVtsKzQ+PjJdKSYmRnQoYyksMHwoYz0wfGFbbCs4Pj4yXSkmJkZ0KGMpLDB8KGM9MHxhW2wrMTY+PjJdKSYmRnQoYyksRnQobCkpfWZ1''@;'; + put 'put ''bmN0aW9uIE95KGwsYyxmLHApe2x8PTAsY3w9MCxwfD0wO3ZhciBrLE0sRCxSLG09MCxBPTAsdz0wLGI9MDtmb3IoUj1sZSxsZT1sZSsxNnwwLEQ9Uis4fDAsTT1SLGs9MHxVYSgwfGFbNDY4NDldLChmfD0wKTw8MiksYVs0Njg0OV09ayxtPTA7ISgoMHxtKT49KDB8ZikpOylhW3ArKG08PDIp''@;'; + put 'put ''Pj4yXT0yMTQ3NDgzNjQ3LG09bSsxfDA7Zm9yKGFbcCsobDw8Mik+PjJdPTAsQT1jKygyMCpsfDApfDAsdz1jKygyMCpsfDApKzh8MCxiPWMrKDIwKmx8MCkrNHwwLG09MTshKCgwfG0pPj0oMHxhW0E+PjJdKSk7KWFbcCsoYVsoMHxhW2I+PjJdKSsobTw8Mik+PjJdPDwyKT4+Ml09fn4ram5b''@;'; + put 'put ''KDB8YVt3Pj4yXSkrKG08PDIpPj4yXSxtPW0rMXwwO2ZvcihmdW5jdGlvbiBBMmUobCxjLGYscCxtKXtsfD0wLGN8PTAsZnw9MCxwfD0wO3ZhciBiLGssQT0wLHc9MDtmb3IoYj0xPT0oMHwobXw9MCkpPzA6MHxRbigobTw8MiktNHwwKSxhW2w+PjJdPWIsYVtsKzQ+PjJdPWs9bSstMXwwLEE9''@;'; + put 'put ''MCx3PTA7ISgoMHx3KT49KDB8bSkpOykoMHx3KSE9KDB8YykmJihhW2IrKEE8PDIpPj4yXT13LGFbZisodzw8Mik+PjJdPUEsQT1BKzF8MCksdz13KzF8MDtmb3IoQT0oMHxrKS8yfDA7ISgoMHxBKTw9LTEpOylSeShsLEEsZixwKSxBPUErLTF8MH0oRCxsLGsscCxmKSx3PS0yMTQ3NDgzNjM5''@;'; + put 'put ''Ozspe2lmKCEoKDB8eTJlKEQsTSwwfGFbNDY4NDldLHApKTw8MjQ+PjI0KSl7bT0wO2JyZWFrfWlmKDIxNDc0ODM2NDc9PSgwfChsPTB8YVtwKygobT0wfGFbTT4+Ml0pPDwyKT4+Ml0pKSl7bT0wO2JyZWFrfWZvcih3PWMrKDIwKm18MCl8MCxiPWMrKDIwKm18MCkrNHwwLEE9YysoMjAqbXww''@;'; + put 'put ''KSs4fDAsbT0xOyEoKDB8bSk+PSgwfGFbdz4+Ml0pKTspdzJlKEQsMHxhWygwfGFbYj4+Ml0pKyhtPDwyKT4+Ml0sbCt+fitqblsoMHxhW0E+PjJdKSsobTw8Mik+PjJdfDAsMHxhWzQ2ODQ5XSxwKSxtPW0rMXwwO3c9bCsxMHwwfWZvcig7ISgoMHxtKT49KDB8ZikpOykyMTQ3NDgzNjQ3PT0o''@;'; + put 'put ''MHxhWyhBPXArKG08PDIpfDApPj4yXSkmJihhW0E+PjJdPXcpLG09bSsxfDA7RkQoRCksbGU9Un1mdW5jdGlvbiB5MmUobCxjLGYscCl7Y3w9MCxmfD0wLHB8PTA7dmFyIG0sQT0wO3JldHVybiAwfGFbKG09NCsobHw9MCl8MCk+PjJdPyhhW2M+PjJdPWFbKEE9MHxhW2w+PjJdKT4+Ml0sYVtB''@;'; + put 'put ''Pj4yXT1jPTB8YVtBKygoMHxhW20+PjJdKS0xPDwyKT4+Ml0sYVtmKyhjPDwyKT4+Ml09MCxhW20+PjJdPSgwfGFbbT4+Ml0pLTEsUnkobCwwLGYscCksbD0xKTpsPTAsMHxsfWZ1bmN0aW9uIHcyZShsLGMsZixwLG0pe2x8PTAscHw9MDt2YXIgQT0wLHc9MCxiPTAsaz0wO2lmKCgwfGFbKEE9''@;'; + put 'put ''KG18PTApKygoY3w9MCk8PDIpfDApPj4yXSk+KDB8KGZ8PTApKSl7Zm9yKGI9MHxhWyhrPXArKGM8PDIpfDApPj4yXSxhW0E+PjJdPWYsQT0wfGFbbD4+Ml0sbD1iOyEoKDB8bCk8PTB8fCh3PWw+Pj4xLGI9MHxhW0ErKHc8PDIpPj4yXSwoMHxhW20rKGI8PDIpPj4yXSk8PSgwfGYpKSk7KWFb''@;'; + put 'put ''QSsobDw8Mik+PjJdPWIsYVtwKyhiPDwyKT4+Ml09bCxsPXc7YVtBKyhsPDwyKT4+Ml09YyxhW2s+PjJdPWx9fWZ1bmN0aW9uIEZEKGwpezB8KGw9MHxhWyhsfD0wKT4+Ml0pJiZGdChsKX1mdW5jdGlvbiBSeShsLGMsZixwKXtjfD0wLGZ8PTAscHw9MDt2YXIgYixtPTAsQT0wLHc9MCxrPTA7''@;'; + put 'put ''Zm9yKGI9NCsobHw9MCl8MDtBPTF8KG09Yzw8MSksKDB8bSk8KDB8KHc9MHxhW2I+PjJdKSkmJigwfGFbcCsoYVsoaz0wfGFbbD4+Ml0pKyhtPDwyKT4+Ml08PDIpPj4yXSk8KDB8YVtwKyhhW2srKGM8PDIpPj4yXTw8Mik+PjJdKXx8KG09YyksKDB8QSk8KDB8dykmJihtPSgwfGFbcCsoYVso''@;'; + put 'put ''az0wfGFbbD4+Ml0pKyhBPDwyKT4+Ml08PDIpPj4yXSk8KDB8YVtwKyhhW2srKG08PDIpPj4yXTw8Mik+PjJdKT9BOm0pLCgwfG0pIT0oMHxjKTspQT0wfGFbKHc9KGs9MHxhW2w+PjJdKSsobTw8Mil8MCk+PjJdLGFbdz4+Ml09YVsoaz1rKyhjPDwyKXwwKT4+Ml0sYVtrPj4yXT1BLGFbZiso''@;'; + put 'put ''YVt3Pj4yXTw8Mik+PjJdPW0sYVtmKyhhW2s+PjJdPDwyKT4+Ml09YyxjPW19ZnVuY3Rpb24gSEQobCxjLGYscCl7bHw9MCxjfD0wLGZ8PTAscHw9MDt2YXIgTSxELFIsRyxtPTAsQT0wLHc9MCxiPTAsaz0wO2ZvcihHPWxlLGxlPWxlKzE2fDAsTT1HKzh8MCxhWyhEPUcpPj4yXT0wLFI9MHxR''@;'; + put 'put ''bihmPDwyKSxtPTA7ISgoMHxtKT49KDB8ZikpOylqbltwKyhtPDwyKT4+Ml09MzQwMjgyMzQ2NjM4NTI4ODZlMjIsbT1tKzF8MDtmb3Ioam5bcCsobDw8Mik+PjJdPTAsQT0wfGFbYysoMjAqbHwwKT4+Ml0sdz1jKygyMCpsfDApKzh8MCxiPWMrKDIwKmx8MCkrNHwwLG09MTshKCgwfG0pPj0o''@;'; + put 'put ''MHxBKSk7KWFbcCsoYVsoMHxhW2I+PjJdKSsobTw8Mik+PjJdPDwyKT4+Ml09YVsoMHxhW3c+PjJdKSsobTw8Mik+PjJdLG09bSsxfDA7IWZ1bmN0aW9uIEJ5KGwsYyxmLHAsbSl7bHw9MCxjfD0wLGZ8PTAscHw9MDt2YXIgYixrLEE9MCx3PTA7Zm9yKGs9MHxRbigoYj0obXw9MCktMXwwKTw8''@;'; + put 'put ''MiksYVtsPj4yXT1rLGFbbCs0Pj4yXT1iLEE9MCx3PTA7ISgoMHx3KT49KDB8bSkpOykoMHx3KSE9KDB8YykmJihhW2srKEE8PDIpPj4yXT13LGFbZisodzw8Mik+PjJdPUEsQT1BKzF8MCksdz13KzF8MDtmb3IoQT0oMHxiKS8yfDA7ISgoMHxBKTw9LTEpOylEVihsLEEsZixwKSxBPUErLTF8''@;'; + put 'put ''MH0oTSxsLFIscCxmKTtlOmZvcig7KDB8UmsoTSxELFIscCkpPDwyND4+MjQmJihtPTB8YVtEPj4yXSxrPStqbltwKyhtPDwyKT4+Ml0sMzQwMjgyMzQ2NjM4NTI4ODZlMjIhPWspOylmb3Iodz1jKygyMCptfDApfDAsYj1jKygyMCptfDApKzR8MCxBPWMrKDIwKm18MCkrOHwwLG09MTs7KXtp''@;'; + put 'put ''ZigoMHxtKT49KDB8YVt3Pj4yXSkpY29udGludWUgZTtJVihNLDB8YVsoMHxhW2I+PjJdKSsobTw8Mik+PjJdLCtqblsoMHxhW0E+PjJdKSsobTw8Mik+PjJdK2ssUixwKSxtPW0rMXwwfUZEKE0pLEZ0KFIpLGxlPUd9ZnVuY3Rpb24gUmsobCxjLGYscCl7Y3w9MCxmfD0wLHB8PTA7dmFyIG0s''@;'; + put 'put ''QT0wO3JldHVybiAwfGFbKG09NCsobHw9MCl8MCk+PjJdPyhhW2M+PjJdPWFbKEE9MHxhW2w+PjJdKT4+Ml0sYVtBPj4yXT1jPTB8YVtBKygoMHxhW20+PjJdKS0xPDwyKT4+Ml0sYVtmKyhjPDwyKT4+Ml09MCxhW20+PjJdPSgwfGFbbT4+Ml0pLTEsRFYobCwwLGYscCksbD0xKTpsPTAsMHxs''@;'; + put 'put ''fWZ1bmN0aW9uIElWKGwsYyxmLHAsbSl7bHw9MCxwfD0wO3ZhciBBPTAsdz0wLGI9MCxrPTA7aWYoISgram5bKEE9KG18PTApKygoY3w9MCk8PDIpfDApPj4yXTw9KGY9K2YpKSl7Zm9yKGI9MHxhWyhrPXArKGM8PDIpfDApPj4yXSxqbltBPj4yXT1mLEE9MHxhW2w+PjJdLGw9YjshKCgwfGwp''@;'; + put 'put ''PD0wKSYmK2puW20rKChiPTB8YVtBKygodz1sPj4+MSk8PDIpPj4yXSk8PDIpPj4yXT5mOylhW0ErKGw8PDIpPj4yXT1iLGFbcCsoYjw8Mik+PjJdPWwsbD13O2FbQSsobDw8Mik+PjJdPWMsYVtrPj4yXT1sfX1mdW5jdGlvbiBEVihsLGMsZixwKXtjfD0wLGZ8PTAscHw9MDt2YXIgYixtPTAs''@;'; + put 'put ''QT0wLHc9MCxrPTA7Zm9yKGI9NCsobHw9MCl8MDtBPTF8KG09Yzw8MSksKDB8bSk8KDB8KHc9MHxhW2I+PjJdKSkmJitqbltwKyhhWyhrPTB8YVtsPj4yXSkrKG08PDIpPj4yXTw8Mik+PjJdPCtqbltwKyhhW2srKGM8PDIpPj4yXTw8Mik+PjJdfHwobT1jKSwoMHxBKTwoMHx3KSYmK2puW3Ar''@;'; + put 'put ''KGFbKGs9MHxhW2w+PjJdKSsoQTw8Mik+PjJdPDwyKT4+Ml08K2puW3ArKGFbaysobTw8Mik+PjJdPDwyKT4+Ml0mJihtPUEpLCgwfG0pIT0oMHxjKTspQT0wfGFbKHc9KGs9MHxhW2w+PjJdKSsobTw8Mil8MCk+PjJdLGFbdz4+Ml09YVsoaz1rKyhjPDwyKXwwKT4+Ml0sYVtrPj4yXT1BLGFb''@;'; + put 'put ''ZisoYVt3Pj4yXTw8Mik+PjJdPW0sYVtmKyhhW2s+PjJdPDwyKT4+Ml09YyxjPW19ZnVuY3Rpb24gTkQoKXtaeSgxODc0MDAsNDgpLGFbNDY4NTNdPTB9ZnVuY3Rpb24gTFYobCxjKXtsfD0wLGN8PTA7dmFyIEEsdyxmPTAscD0wLG09MDtyZXR1cm4gdz0wfHp5KDE4NzQwMCksYVt3KzMyPj4y''@;'; + put 'put ''XT1sLGFbdyszNj4+Ml09YyxlTChsKSxlTChjKSxhW3crMjQ+PjJdPTAsYVt3KzI4Pj4yXT0wLEE9K19bYz4+M10tKG09K19bbD4+M10pLGY9K19bYys4Pj4zXS0ocD0rX1tsKzg+PjNdKSxfWyhjPXcrMTZ8MCk+PjNdPW09ZipwK0EqbSsuNSooZipmK0EqQSksKEE+MD9BOi1BKT4oZj4wP2Y6''@;'; + put 'put ''LWYpPyhfW3c+PjNdPTEscD1mL0EsZj1BLGw9dys4fDApOihfW3crOD4+M109MSxwPUEvZixsPXcpLF9bbD4+M109cCxfW2M+PjNdPW0vZixhW3crNDA+PjJdPWM9MHxhWzQ2ODUzXSxhWzQ2ODUzXT1jKzEsMHx3fWZ1bmN0aW9uIEJrKGwpe3ZhciBNLGM9MCxmPTAscD0wLG09MCxBPTAsdz0w''@;'; + put 'put ''LGI9MCxrPTAsRD0wO009K19bKGx8PTApPj4zXTtlOmRve2lmKDE9PU0peytfW2wrOD4+M10+PTA/KGM9MHxhW2wrMjQ+PjJdLEQ9KGY9MHxhW2wrMjg+PjJdKT81OjkpOihjPTB8YVtsKzI4Pj4yXSxEPShmPTB8YVtsKzI0Pj4yXSk/NTo5KTtkb3tpZig1PT0oMHxEKSl7aWYoKHA9K19bZis4''@;'; + put 'put ''Pj4zXSk+K19bMjMyNjZdKWJyZWFrIGU7aWYocD49KG09K19bMjMyNjddKSl7dz1wLHA9K19bZj4+M107YnJlYWt9dz1tLHA9K19bbCsxNj4+M10tK19bbCs4Pj4zXSptO2JyZWFrfTk9PSgwfEQpJiYodz1tPStfWzIzMjY3XSxwPStfW2wrMTY+PjNdLStfW2wrOD4+M10qbSl9d2hpbGUoMCk7''@;'; + put 'put ''ZG97aWYoYyl7aWYoKEE9K19bYys4Pj4zXSk8bSlicmVhayBlO2lmKEE8PShtPStfWzIzMjY2XSkpe209K19bYz4+M107YnJlYWt9QT1tLG09K19bbCsxNj4+M10tK19bbCs4Pj4zXSptO2JyZWFrfUE9bT0rX1syMzI2Nl0sbT0rX1tsKzE2Pj4zXS0rX1tsKzg+PjNdKm19d2hpbGUoMCk7KGM9''@;'; + put 'put ''cD4oYj0rX1syMzI2OF0pKSYoZj1tPmIpfHA8KGs9K19bMjMyNjldKSZtPGt8fChjJiYodz0oK19bbCsxNj4+M10tYikvK19bbCs4Pj4zXSxwPWIpLHA8ayYmKHc9KCtfW2wrMTY+PjNdLWspLytfW2wrOD4+M10scD1rKSxmJiYoQT0oK19bbCsxNj4+M10tYikvK19bbCs4Pj4zXSxtPWIpLG08''@;'; + put 'put ''ayYmKEE9KCtfW2wrMTY+PjNdLWspLytfW2wrOD4+M10sbT1rKSxEPTQ2KX1lbHNle2Y9MHxhW2wrMjg+PjJdLGM9MHxhW2wrMjQ+PjJdO2Rve2lmKGMpe2lmKChwPStfW2M+PjNdKT4rX1syMzI2OF0pYnJlYWsgZTtpZihwPj0oQT0rX1syMzI2OV0pKXt3PStfW2MrOD4+M107YnJlYWt9dz0r''@;'; + put 'put ''X1tsKzE2Pj4zXS1BKk0scD1BO2JyZWFrfXc9K19bbCsxNj4+M10tKEE9K19bMjMyNjldKSpNLHA9QX13aGlsZSgwKTtkb3tpZihmKXtpZigobT0rX1tmPj4zXSk8QSlicmVhayBlO2lmKG08PShiPStfWzIzMjY4XSkpe0E9K19bZis4Pj4zXTticmVha31BPStfW2wrMTY+PjNdLU0qYixtPWI7''@;'; + put 'put ''YnJlYWt9QT0rX1tsKzE2Pj4zXS1NKihtPStfWzIzMjY4XSl9d2hpbGUoMCk7KGM9dz4oYj0rX1syMzI2Nl0pKSYoZj1BPmIpfHc8KGs9K19bMjMyNjddKSZBPGt8fChjJiYodz1iLHA9KCtfW2wrMTY+PjNdLWIpL00pLHc8ayYmKHc9ayxwPSgrX1tsKzE2Pj4zXS1rKS9NKSxmJiYoQT1iLG09''@;'; + put 'put ''KCtfW2wrMTY+PjNdLWIpL00pLEE8ayYmKEE9ayxtPSgrX1tsKzE2Pj4zXS1rKS9NKSxEPTQ2KX19d2hpbGUoMCk7NDY9PSgwfEQpJiZmdW5jdGlvbiBWWChsLGMsZixwLG0pe3A9K3AsbT0rbTt2YXIgQTtMYygwfGFbKEE9MzIrKGx8PTApfDApPj4yXSxjPStjLGY9K2YpLExjKDB8YVtBPj4y''@;'; + put 'put ''XSxwLG0pLExjKDB8YVsobD1sKzM2fDApPj4yXSxjLGYpLExjKDB8YVtsPj4yXSxwLG0pfShsLHAsdyxtLEEpfWZ1bmN0aW9uIFZEKGwsYyxmKXthWzI0KyhsfD0wKSsoKGN8PTApPDwyKT4+Ml09Znw9MCxlTChmKSwwfGFbbCsyNCsoMS1jPDwyKT4+Ml0mJihCayhsKSxxRCgwfGFbbCszMj4+''@;'; + put 'put ''Ml0pLHFEKDB8YVtsKzM2Pj4yXSksV1YobCwxODc0MDApKX1mdW5jdGlvbiBZNyhsLGMpe3ZhciBmLHA7cmV0dXJuKygocD0rX1s4KyhsfD0wKT4+M10tK19bOCsoY3w9MCk+PjNdKSpwKyhmPStfW2w+PjNdLStfW2M+PjNdKSpmKX1mdW5jdGlvbiBaWChsLGMsZil7X1sobHw9MCk+PjNdPStf''@;'; + put 'put ''WyhjfD0wKT4+M10tK19bKGZ8PTApPj4zXSxfW2wrOD4+M109K19bYys4Pj4zXS0rX1tmKzg+PjNdfWZ1bmN0aW9uIE9WKGwsYyxmKXtfWyhsfD0wKT4+M109K19bKGZ8PTApPj4zXSsgK19bKGN8PTApPj4zXSxfW2wrOD4+M109K19bZis4Pj4zXSsgK19bYys4Pj4zXX1mdW5jdGlvbiBQayhs''@;'; + put 'put ''LGMsZil7dmFyIHAsbTtyZXR1cm4rKCgrX1soZnw9MCk+PjNdLShtPStfWyhjfD0wKT4+M10pKSooK19bOCsobHw9MCk+PjNdLShwPStfW2MrOD4+M10pKS0oK19bbD4+M10tbSkqKCtfW2YrOD4+M10tcCkpfWZ1bmN0aW9uIFB5KGwsYyxmKXt2YXIgcCxtLEEsdztyZXR1cm4gY3w9MCxmfD0w''@;'; + put 'put ''LHA9bGUsbGU9bGUrNDh8MCxtPXArMzJ8MCxBPXArMTZ8MCxhWyh3PXApPj4yXT1hWyhsfD0wKT4+Ml0sYVt3KzQ+PjJdPWFbbCs0Pj4yXSxhW3crOD4+Ml09YVtsKzg+PjJdLGFbdysxMj4+Ml09YVtsKzEyPj4yXSxhW0E+PjJdPWFbYz4+Ml0sYVtBKzQ+PjJdPWFbYys0Pj4yXSxhW0ErOD4+''@;'; + put 'put ''Ml09YVtjKzg+PjJdLGFbQSsxMj4+Ml09YVtjKzEyPj4yXSxhW20+PjJdPWFbZj4+Ml0sYVttKzQ+PjJdPWFbZis0Pj4yXSxhW20rOD4+Ml09YVtmKzg+PjJdLGFbbSsxMj4+Ml09YVtmKzEyPj4yXSxmPStQayh3LEEsbSk+MCYxLGxlPXAsMHxmfWZ1bmN0aW9uIFpEKGwsYyxmLHAsbSl7bXw9''@;'; + put 'put ''MDt2YXIgQSx3LGIsayxNLEQsUixHLEsscGU9MCxnZT0wO3JldHVybiAwPT0odz0oUj0oKHBlPStfWzgrKHB8PTApPj4zXSktKGdlPStfWzgrKGZ8PTApPj4zXSkpKihLPStfWyhsfD0wKT4+M10pKSsoRz0rX1soY3w9MCk+PjNdKSooZ2UtcGUpKyhrPShNPStfW2MrOD4+M10pLShiPStfW2wr''@;'; + put 'put ''OD4+M10pKSooRD0rX1twPj4zXSkrKEE9K19bZj4+M10pKihiLU0pKT9wPTA6KHBlPShBKihiLXBlKStSKyhnZS1iKSpEKS93LGdlPS0oQSprKygoZ2UtTSkqSysoYi1nZSkqRykpL3csX1ttPj4zXT1wZSooRy1LKStLLF9bbSs4Pj4zXT1rKnBlK2IscD1nZTw9MSZnZT49MCZwZT49MCZwZTw9''@;'; + put 'put ''MSYxKSwwfHB9ZnVuY3Rpb24gVTcobCxjLGYpe2Y9K2Y7dmFyIHcscD0wLG09MCxBPTA7Zm9yKGFbMjArKGx8PTApPj4yXT1jfD0wLGVMKGMpLF9bKHc9bCsyNHwwKT4+M109K19bYys4Pj4zXStmLHA9KHA9MHxhWzQ2ODU2XSkrKDQwKigwfHpYKGwpKXwwKXwwOyhwPTB8YVsobT1wKzMyfDAp''@;'; + put 'put ''Pj4yXSkmJigoZj0rX1t3Pj4zXSk+KEE9K19bcCsyND4+M10pfHxmPT1BJiYrX1tjPj4zXT4rX1thW3ArMjA+PjJdPj4zXSk7KTthW2wrMzI+PjJdPXAsYVttPj4yXT1sLGFbNDY4NTddPTErKDB8YVs0Njg1N10pfWZ1bmN0aW9uIHpYKGwpe3ZhciBjLGYscDtjPSgrX1syNCsobHw9MCk+PjNd''@;'; + put 'put ''LStfWzIzMjczXSkvK19bMjMyNzVdKihwPSsoMHwoZj0wfGFbNDY4NThdKSkpO2Rve2lmKCEoYzwwKSl7aWYoYz49cCl7bD1mKy0xfDA7YnJlYWt9bD1+fmM7YnJlYWt9bD0wfXdoaWxlKDApO3JldHVybigwfGwpPCgwfGFbNDY4NTldKSYmKGFbNDY4NTldPWwpLDB8bH1mdW5jdGlvbiBGayhs''@;'; + put 'put ''KXt2YXIgZixjPTAscD0wO2lmKDB8YVsoZj0yMCsobHw9MCl8MCk+PjJdKXtjPShjPTB8YVs0Njg1Nl0pKyg0MCooMHx6WChsKSl8MCl8MDtkb3tjPTB8YVsocD1jKzMyfDApPj4yXX13aGlsZSgoMHxjKSE9KDB8bCkpO2FbcD4+Ml09YVtsKzMyPj4yXSxhWzQ2ODU3XT0oMHxhWzQ2ODU3XSkt''@;'; + put 'put ''MSxxRCgwfGFbZj4+Ml0pLGFbZj4+Ml09MH19ZnVuY3Rpb24gRnkoKXtyZXR1cm4gMD09KDB8YVs0Njg1N10pfDB9ZnVuY3Rpb24gYjJlKGwpe2x8PTA7dmFyIGMsbSxmPTAscD0wO2ZvcihjPTB8YVs0Njg1Nl0sZj0wfGFbNDY4NTldOyEoMHwocD0wfGFbYysoNDAqZnwwKSszMj4+Ml0pKTsp''@;'; + put 'put ''YVs0Njg1OV09cD1mKzF8MCxmPXA7bT0rX1twKzI0Pj4zXSxfW2w+PjNdPStfW2FbcCsyMD4+Ml0+PjNdLF9bbCs4Pj4zXT1tfWZ1bmN0aW9uIF8yZSgpe3ZhciBsLGM7cmV0dXJuIGFbKGM9KDB8YVs0Njg1Nl0pKyg0MCooMHxhWzQ2ODU5XSl8MCkrMzJ8MCk+PjJdPWFbMzIrKGw9MHxhW2M+''@;'; + put 'put ''PjJdKT4+Ml0sYVs0Njg1N109KDB8YVs0Njg1N10pLTEsMHxsfWZ1bmN0aW9uIHpEKGwsYyl7dmFyIGY7cmV0dXJuIGx8PTAsY3w9MCxmPTB8enkoMTg3NDQ4KSxhW2YrOD4+Ml09bCxmZVtmKzE2Pj4wXT1jLGFbZiszMj4+Ml09MCxhW2YrMjA+PjJdPTAsYVtmKzEyPj4yXT0wLDB8Zn1mdW5j''@;'; + put 'put ''dGlvbiBHRChsLGMpe3ZhciBBLGIsZj0wLHA9MCxtPTAsdz0wLGs9MCxNPTAsRD0wLFI9MCxHPTAsSz0wO0E9MHxhWzgrKGx8PTApPj4yXSxiPTB8YVs4KyhjfD0wKT4+Ml07ZG97aWYoMD09KDB8QSl8MD09KDB8Yil8fCgwfChSPTB8YVtBKzM2Pj4yXSkpPT0oMHwoZj0wfGFbYiszNj4+Ml0p''@;'; + put 'put ''KXx8KE09KHA9K19bYis4Pj4zXSkqKHc9K19bQT4+M10pLShrPStfW2I+PjNdKSoobT0rX1tBKzg+PjNdKSk+LTFlLTEwJk08MWUtMTApbD0wO2Vsc2V7RD0oKEc9K19bQSsxNj4+M10pKnAtKEs9K19bYisxNj4+M10pKm0pL00sdz0oSyp3LUcqaykvTSxwPStfW1IrOD4+M10sbT0rX1tmKzg+''@;'; + put 'put ''PjNdO2Rve2lmKHA8bSlmPVI7ZWxzZXtpZihwPT1tJiYrX1tSPj4zXTwrX1tmPj4zXSl7Zj1SO2JyZWFrfWw9Y319d2hpbGUoMCk7aWYobD0wfGZlW2wrMTY+PjBdLEQ+PStfW2Y+PjNdKXtpZighKGw8PDI0Pj4yNCkpe2w9MDticmVha319ZWxzZSBpZihsPDwyND4+MjQ9PTEpe2w9MDticmVh''@;'; + put 'put ''a31sPTB8enkoMTg3Njc2KSxhW2wrMjA+PjJdPTAsX1tsPj4zXT1ELF9bbCs4Pj4zXT13fX13aGlsZSgwKTtyZXR1cm4gMHxsfWZ1bmN0aW9uIFdEKGwsYyl7dmFyIGIsTSxELEcsZj0wLHA9MCxtPTAsQT0wLHc9MCxrPTAsUj0wO2lmKEc9MHxmZVsxNisobHw9MCk+PjBdLChNPShrPStfWyhj''@;'; + put 'put ''fD0wKT4+M10pPihSPStfWyhiPTB8YVszNisoRD0wfGFbbCs4Pj4yXSk+PjJdKT4+M10pKT9HPDwyND4+MjQ/cD00Omw9MTpHPDwyND4+MjQ9PTE/bD0wOnA9NCw0PT0oMHxwKSl7Zj0rX1tEPj4zXTtlOmRve2lmKDE9PWYpe209KGY9K19bYys4Pj4zXSktK19bYis4Pj4zXSxBPWstUixjPSh3''@;'; + put 'put ''PStfW0QrOD4+M10pPDA7ZG97aWYoIShNP3c+PTA6Yykpe2lmKGw9dypmK2s+K19bRCsxNj4+M10sYyl7aWYobCl7bD0wO2JyZWFrIGV9YnJlYWt9aWYobClicmVhaztsPTA7YnJlYWsgZX1pZihtPj13KkEpe2w9MTticmVhayBlfX13aGlsZSgwKTtsPXcqKEEqQS1tKm0pPChSLT0rX1thW0Qr''@;'; + put 'put ''MzI+PjJdPj4zXSkqbSooMipBL1IrMSt3KncpLGMmJihsXj0xKX1lbHNlIEE9K19bRCsxNj4+M10taypmLHc9K19bYys4Pj4zXS1BLFI9ay1SLGs9QS0rX1tiKzg+PjNdLGw9dyp3PmsqaytSKlJ9d2hpbGUoMCk7bD0xJihsXkc8PDI0Pj4yNCE9MCl9cmV0dXJuIDB8bH1mdW5jdGlvbiBZWChs''@;'; + put 'put ''LGMpe2FbKGN8PTApPj4yXT1sfD0wLGFbYys0Pj4yXT1hWyhsPWwrNHwwKT4+Ml0sYVthW2w+PjJdPj4yXT1jLGFbbD4+Ml09Y31mdW5jdGlvbiBSVihsKXt2YXIgYz0wLGY9MCxwPTAsbT0wLEE9MDtpZighKGM9MHxCVihtPSgwfChjPSgwfChjPX5+KCgrX1sobHw9MCk+PjNdLStfWzIzMjcy''@;'; + put 'put ''XSkvK19bMjMyNzRdKisoMHwobT0wfGFbNDY4NjZdKSkpKSk+MD9jOjApKTwoMHxtKT9jOm0rLTF8MCkpKXtmb3IoZj0xOyEoMHwoYz0wfEJWKG0tZnwwKSl8fChjPTB8QlYoZittfDApLDB8YykpOylmPWYrMXwwO2FbNDY4NjddPSgwfGFbNDY4NjddKStmfWFbNDY4NjhdPTErKDB8YVs0Njg2''@;'; + put 'put ''OF0pLHA9MHxhWzQ2ODYwXSxmPTB8YVs0Njg2MV07ZTpkb3tpZigoMHxjKT09KDB8cCkpQT05O2Vsc2V7aWYoKDB8YykhPSgwfGYpJiYwIT0oMHxXRChjLGwpKSl7QT05O2JyZWFrfWZvcig7Oyl7aWYoKDB8KGM9MHxhW2M+PjJdKSk9PSgwfHApKWJyZWFrIGU7aWYoMHxXRChjLGwpKXtwPWM7''@;'; + put 'put ''YnJlYWt9fX19d2hpbGUoMCk7aWYoOT09KDB8QSkpe2Zvcig7KDB8KGM9MHxhW2MrND4+Ml0pKSE9KDB8ZikmJjB8V0QoYyxsKTspQT05O3A9MHxhW2M+PjJdfXJldHVybigwfG0pPjAmJigwfG0pPCgoMHxhWzQ2ODY2XSktMXwwKSYmKDB8KGY9MHxhWyhjPSgwfGFbNDY4NjVdKSsobTw8Mil8''@;'; + put 'put ''MCk+PjJdKSYmKGFbKEE9ZisxMnwwKT4+Ml09KDB8YVtBPj4yXSktMSksYVtjPj4yXT1wLGFbKEE9cCsxMnwwKT4+Ml09MSsoMHxhW0E+PjJdKSksMHxwfWZ1bmN0aW9uIEJWKGwpe3ZhciBjPTAsZj0wO3JldHVybigwfChsfD0wKSk+LTEmKDB8YVs0Njg2Nl0pPigwfGwpJiYwIT0oMHwoYz0w''@;'; + put 'put ''fGFbKGY9KDB8YVs0Njg2NV0pKyhsPDwyKXwwKT4+Ml0pKT8tMj09KDB8YVtjKzg+PjJdKSYmKGFbZj4+Ml09MCxhWyhsPWMrMTJ8MCk+PjJdPWY9KDB8YVtsPj4yXSktMXwwLGZ8fFdWKGMsMTg3NDQ4KSxjPTApOmM9MCwwfGN9ZnVuY3Rpb24gUFYobCl7dmFyIGMsZjthWzQrKGY9MHxhWyhs''@;'; + put 'put ''fD0wKT4+Ml0pPj4yXT1hWyhjPWwrNHwwKT4+Ml0sYVthW2M+PjJdPj4yXT1mLGFbbCs4Pj4yXT0tMn1mdW5jdGlvbiBIeShsKXtyZXR1cm4gMHxhWzQrKGx8PTApPj4yXX1mdW5jdGlvbiBTMmUobCl7cmV0dXJuIDB8YVsobHw9MCk+PjJdfWZ1bmN0aW9uIHU5ZShsKXt2YXIgYztyZXR1cm4g''@;'; + put 'put ''MHxhWyhsPShjPTB8YVs4KyhsfD0wKT4+Ml0pPzA9PSgwfGZlW2wrMTY+PjBdKT9jKzMyfDA6YyszNnwwOjE4NzY3Mik+PjJdfWZ1bmN0aW9uIFVYKGwpe3ZhciBjO3JldHVybiAwfGFbKGw9KGM9MHxhWzgrKGx8PTApPj4yXSk/MD09KDB8ZmVbbCsxNj4+MF0pP2MrMzZ8MDpjKzMyfDA6MTg3''@;'; + put 'put ''NjcyKT4+Ml19ZnVuY3Rpb24gTnkoKXtaeSgxODc0ODAsMjQpfWZ1bmN0aW9uIExjKGwsYyxmKXtmPStmO3ZhciBiLHA9MCxtPTAsQT0wLHc9MDtiPWxlLGxlPWxlKzMyfDAsbT0wfGFbKEE9KDB8YVs0Njg2OV0pKyg5NiooMHxhWzE2KyhsfD0wKT4+Ml0pfDApKzg4fDApPj4yXSxfWyh3PWIp''@;'; + put 'put ''Kzg+PjNdPWM9K2MsX1t3KzE2Pj4zXT1mLHA9MHxGVihsLHcsbSk7ZG97aWYoMHxwKXtpZigoMHxwKTwwKXt3PTB8enkoMTg3NDgwKSxfW3crOD4+M109YyxfW3crMTY+PjNdPWYsYVt3Pj4yXT1tLGFbQT4+Ml09dzticmVha31mb3IoOygwfChBPTB8RlYobCx3LHA9MHxhW20+PjJdKSkpPjA7''@;'; + put 'put ''KW09cDswfEEmJih3PTB8enkoMTg3NDgwKSxfW3crOD4+M109YyxfW3crMTY+PjNdPWYsYVttPj4yXT13LGFbdz4+Ml09cCl9fXdoaWxlKDApO2xlPWJ9ZnVuY3Rpb24gRlYobCxjLGYpe2x8PTAsY3w9MCxmfD0wO3ZhciBwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTA7ZG97aWYoZilpZigo''@;'; + put 'put ''bT0rX1tjKzg+PjNdKT09KGI9K19bZis4Pj4zXSkmKHA9K19bYysxNj4+M10pPT0oQT0rX1tmKzE2Pj4zXSkpYz0wO2Vsc2V7aWYoaz1tLShNPStfW2w+PjNdKSx3PXAtKG09K19bbCs4Pj4zXSksYi09TSxwPUEtbSwhKGs+PTApKXtpZihiPj0wKXtjPTE7YnJlYWt9aWYobT1wL2IsKHA9dy9r''@;'; + put 'put ''KTxtKXtjPS0xO2JyZWFrfWlmKHA+bSl7Yz0xO2JyZWFrfWM9az5iPy0xOjE7YnJlYWt9aWYoIShiPDApKXtpZihjPWI+MCxrPjApe2lmKCFjKXtjPXA+MD8tMToxO2JyZWFrfWlmKG09cC9iLChwPXcvayk8bSl7Yz0tMTticmVha31pZihwPm0pe2M9MTticmVha31jPWs8Yj8tMToxO2JyZWFr''@;'; + put 'put ''fWlmKGMpe2M9dzw9MD8tMToxO2JyZWFrfWlmKHc8cCl7Yz1wPD0wPzE6LTE7YnJlYWt9Yz13PD0wPy0xOjE7YnJlYWt9Yz0tMX1lbHNlIGM9LTF9d2hpbGUoMCk7cmV0dXJuIDB8Y31mdW5jdGlvbiBIayhsLGMsZixwKXtjfD0wLHB8PTA7dmFyIG0sQT0wO2ZvcihtPTB8YVsobHw9MCkrKDIw''@;'; + put 'put ''KihmfD0wKXwwKT4+Ml0sZj1sKygyMCpmfDApKzR8MCxjPTEsbD0wOyEoKDB8Yyk+PSgwfG0pKTspQT1sKygoMHxhW3ArKGFbKDB8YVtmPj4yXSkrKGM8PDIpPj4yXTw8Mik+PjJdKT4wJjEpfDAsYz1jKzF8MCxsPUE7cmV0dXJuIDB8bH1mdW5jdGlvbiBOayhsLGMsZil7dmFyIHA7Zm9yKGZ8''@;'; + put 'put ''PTAscD0obHw9MCkrKDIwKihjfD0wKXwwKXwwLGM9bCsoMjAqY3wwKSs0fDAsbD0xOyEoKDB8bCk+PSgwfGFbcD4+Ml0pKTspYVtmKyhhWygwfGFbYz4+Ml0pKyhsPDwyKT4+Ml08PDIpPj4yXT0xLGw9bCsxfDB9ZnVuY3Rpb24gUVgobCxjLGYpe3ZhciBwO2ZvcihmfD0wLHA9KGx8PTApKygy''@;'; + put 'put ''MCooY3w9MCl8MCl8MCxjPWwrKDIwKmN8MCkrNHwwLGw9MTshKCgwfGwpPj0oMHxhW3A+PjJdKSk7KWFbZisoYVsoMHxhW2M+PjJdKSsobDw8Mik+PjJdPDwyKT4+Ml09MCxsPWwrMXwwfWZ1bmN0aW9uIEhWKGwsYyl7bHw9MDt2YXIgcCxmPTAsbT0wO2ZvcihwPTB8UW4oMHxBcihtPShjfD0w''@;'; + put 'put ''KTw8MixjKSksbT0wfFFuKG0pLGY9MDs7KXtpZigoMHxmKT49KDB8Yykpe2Y9MDticmVha31hW20rKGY8PDIpPj4yXT1wKygoMHxBcihmLGMpKTw8MiksZj1mKzF8MH1mb3IoOyEoKDB8Zik+PSgwfGMpKTspT3koZixsLGMsMHxhW20rKGY8PDIpPj4yXSksZj1mKzF8MDtyZXR1cm4gMHxtfWZ1''@;'; + put 'put ''bmN0aW9uIEpYKGwsYyl7bHw9MDt2YXIgTSxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsRD0wO2ZvcihNPTB8UW4oKGN8PTApPDwyKSxmPTAscD0wOyEoKDB8Zik+PSgwfGMpKTspaz0oMHxhW2wrKDIwKmZ8MCk+PjJdKStwfDAsZj1mKzF8MCxwPWs7Zm9yKHA9MHxRbihwPDwyKSxmPTA7''@;'; + put 'put ''ISgoMHxmKT49KDB8YykpOylhW00rKGY8PDIpPj4yXT0wLGY9ZisxfDA7Zm9yKG09MDshKCgwfG0pPj0oMHxjKSk7KXtmb3IoYVtsKygyMCptfDApKzg+PjJdPXAsTmsobCxtLE0pLGI9bCsoMjAqbXwwKSs0fDAsaz0odz0wfGFbKEE9bCsoMjAqbXwwKXwwKT4+Ml0pLTJ8MCxmPTE7ISgoMHxm''@;'; + put 'put ''KT49KDB8dykpOylqbltwKyhmPDwyKT4+Ml09KyhrKygwfGFbbCsoMjAqKEQ9MHxhWygwfGFbYj4+Ml0pKyhmPDwyKT4+Ml0pfDApPj4yXSktKCgwfEhrKGwsMCxELE0pKTw8MSl8MCksZj1mKzF8MDtRWChsLG0sTSkscD1wKyhhW0E+PjJdPDwyKXwwLG09bSsxfDB9RnQoTSl9ZnVuY3Rpb24g''@;'; + put 'put ''WFgobCxjLGYpe2N8PTAsZnw9MDt2YXIgcD0wLG09MDtGdCgwfGFbKHA9OCsobHw9MCl8MCk+PjJdKSxhW3A+PjJdPTA7ZTpkb3tpZigwfGYpZm9yKHA9MDs7KXtpZigoMHxwKT49KDB8YykpYnJlYWsgZTthW2wrKDIwKnB8MCkrOD4+Ml09ZixtPWYrKGFbbCsoMjAqcHwwKT4+Ml08PDIpfDAs''@;'; + put 'put ''cD1wKzF8MCxmPW19fXdoaWxlKDApfWZ1bmN0aW9uIEtYKGwsYyxmLHApe2x8PTAsY3w9MCxmfD0wLHB8PTA7dmFyIG09MCxBPTAsdz0wLGI9MDtmb3IobT0wLEE9MDshKCgwfG0pPj0oMHxjKSk7KWI9MHxhW2wrKG08PDIpPj4yXSxtPW0rMXwwLEE9KHc9K19bYisoZjw8Myk+PjNdLStfW2Ir''@;'; + put 'put ''KHA8PDMpPj4zXSkqdytBO3JldHVybisgK0QwKCtBKX1mdW5jdGlvbiBOVihsLGMsZixwKXtjfD0wLCgwfChwfD0wKSk+KDB8KGZ8PTApKSYmKGFbNDY4NzNdPWx8PTAseDEoYysoZjw8Mil8MCwxLWYrcHwwLDQsNzcpKX1mdW5jdGlvbiBRNyhsLGMsZixwKXtsfD0wLGN8PTA7dmFyIHcsbT0w''@;'; + put 'put ''LEE9MDt3PWxlLGxlPWxlKzE2fDAsbT13LCgwfChmfD0wKSk8KDB8KHB8PTApKSYmKGZ1bmN0aW9uIFRzKGwsYyxmLHAsbSl7bHw9MCxjfD0wLGZ8PTAscHw9MCxtfD0wO3ZhciBiLGssTSxBPTAsdz0wLEQ9MCxSPTA7QT0wfFQxKCksQT1jKygoKCgoMHxUMSgpKTw8MTZ8QSk+Pj4wKSUoKDEt''@;'; + put 'put ''ZitwfDApPj4+MCl8MCkrZjw8Mil8MCxiPTB8YVtBPj4yXSxhW0E+PjJdPWFbKGs9YysoZjw8Mil8MCk+PjJdLGFbaz4+Ml09YixNPStfW2wrKGI8PDMpPj4zXSxBPWYrMXwwLGY9cDtlOmZvcig7ISgoMHxBKT49KDB8ZikpOyl7Zm9yKDshKCgwfEEpPj0oMHxmKSkmJitfW2wrKGFbYysoQTw8''@;'; + put 'put ''Mik+PjJdPDwzKT4+M108PU07KUE9QSsxfDA7Zm9yKDs7KXtpZigoMHxBKT49KDB8ZikpY29udGludWUgZTtpZighKCtfW2wrKCh3PTB8YVsocD1jKyhmPDwyKXwwKT4+Ml0pPDwzKT4+M10+TSkpYnJlYWs7Zj1mKy0xfDB9RD0wfGFbKFI9YysoQTw8Mil8MCk+PjJdLGFbUj4+Ml09dyxhW3A+''@;'; + put 'put ''PjJdPUQsQT1BKzF8MCxmPWYrLTF8MH1hW20+PjJdPVI9QSsoKCtfW2wrKGFbYysoQTw8Mik+PjJdPDwzKT4+M10+TSk8PDMxPj4zMSl8MCxhW2s+PjJdPWFbKFI9YysoUjw8Mil8MCk+PjJdLGFbUj4+Ml09Yn0obCxjLGYscCxtKSxRNyhsLGMsZixtPShBPTB8YVttPj4yXSktMXwwKSxRNyhs''@;'; + put 'put ''LGMsQT1BKzF8MCxwKSwwfHBnKGwsYyxmLG0pfHxRNyhsLGMsZixtKSwwfHBnKGwsYyxBLHApfHxRNyhsLGMsQSxwKSksbGU9d31mdW5jdGlvbiBwZyhsLGMsZixwKXtsfD0wLGN8PTAsZnw9MCxwfD0wO3ZhciBtPTAsQT0wO2ZvcihBPTE7bT1mKzF8MCwoMHxmKTwoMHxwKSYwIT0oMHxBKTsp''@;'; + put 'put ''QT0rX1tsKyhhW2MrKGY8PDIpPj4yXTw8Myk+PjNdPitfW2wrKGFbYysobTw8Mik+PjJdPDwzKT4+M10/MDpBLGY9bTtyZXR1cm4gMHxBfWZ1bmN0aW9uICRYKGwsYyl7bHw9MCxjfD0wO3ZhciBwZSxnZSxMZSxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLEs9''@;'; + put 'put ''MCxiZT0wLE9lPTAsUmU9MCxIZT0wO2lmKExlPWxlLGxlPWxlKzE2fDAsYmU9NCxPZT0wfEIwKDQwKSxhW09lPj4yXT0wLHBlPUxlLE1uPTAsZ2U9MHxhMCgyMyw0MCpjfDApLGY9TW4sTW49MCwwIT0oMHxmKSYwIT0oMHx4bik/KChwPTB8Z2koMHxhW2Y+PjJdLDB8T2UsMHxiZSkpfHx6ZSgw''@;'; + put 'put ''fGYsMHx4biksRG49eG4pOnA9LTEsMSE9KDB8cCkpe2ZvcihmPTAsRz0wOyEoKDB8Zik+PSgwfGMpKTspSz0oMHxhWzQrKDB8YVtsKyhmPDwyKT4+Ml0pPj4yXSkrR3wwLGY9ZisxfDAsRz1LO2lmKE1uPTAsSz0wfGEwKDIzLDI0Kkd8MCksZj1NbixNbj0wLDAhPSgwfGYpJjAhPSgwfHhuKT8o''@;'; + put 'put ''KHA9MHxnaSgwfGFbZj4+Ml0sMHxPZSwwfGJlKSl8fHplKDB8ZiwwfHhuKSxEbj14bik6cD0tMSwxIT0oMHxwKSl7Zm9yKGY9MCxNPTA7ISgoMHxNKT49KDB8YykpOyl7Zm9yKGFbKEQ9Z2UrKDQwKk18MCl8MCk+PjJdPUsrKDI0KmZ8MCksUj1sKyhNPDwyKXwwLG09MCxBPTE3OTc2OTMxMzQ4''@;'; + put 'put ''NjIzMTU3ZTI5Mix3PS0xNzk3NjkzMTM0ODYyMzE1N2UyOTIsYj0tMTc5NzY5MzEzNDg2MjMxNTdlMjkyLGs9MTc5NzY5MzEzNDg2MjMxNTdlMjkyOyEoKDB8bSk+PSgwfGFbNCsocD0wfGFbUj4+Ml0pPj4yXSkpOylSZT0rX1socD0wfGFbcD4+Ml0pKyhtPDw0KSs4Pj4zXSxfW0srKDI0KmZ8''@;'; + put 'put ''MCk+PjNdPUhlPStfW3ArKG08PDQpPj4zXSxfW0srKDI0KmZ8MCkrOD4+M109UmUsYVtLKygyNCpmfDApKzE2Pj4yXT1ELGFbSysoMjQqZnwwKSsyMD4+Ml09MCxtPW0rMXwwLGY9ZisxfDAsQT1BPEhlP0E6SGUsdz13PkhlP3c6SGUsYj1iPlJlP2I6UmUsaz1rPFJlP2s6UmU7YVtnZSsoNDAq''@;'; + put 'put ''TXwwKSs0Pj4yXT1LKygyNCooZistMXwwKXwwKSxfW2dlKyg0MCpNfDApKzg+PjNdPUEsX1tnZSsoNDAqTXwwKSsxNj4+M109ayxfW2dlKyg0MCpNfDApKzI0Pj4zXT13LF9bZ2UrKDQwKk18MCkrMzI+PjNdPWIsTT1NKzF8MH1hW3BlPj4yXT1HLGFbcGUrND4+Ml09YyxPZT0wfFBmKDE4NzQ5''@;'; + put 'put ''NiwxLDB8T2UsMHxiZSksYmU9RG4sZj1Nbj0wLE1uPTAsMCE9KDB8ZikmMCE9KDB8eG4pPygocD0wfGdpKDB8YVtmPj4yXSwwfE9lLDB8YmUpKXx8emUoMHxmLDB8eG4pLERuPXhuKTpwPS0xLDE9PSgwfHApPyhmPURuLFI9SyxNPUssRD1nZSk6KGY9MCxSPUssTT1LLEQ9Z2UpfWVsc2UgZj1E''@;'; + put 'put ''bixSPTAsTT1LLEQ9Z2V9ZWxzZSBmPURuLFI9MCxNPTAsRD0wO2Zvcig7Oyl7aWYoMHxmKXtpZihNbj0wLHNzKDEwNSwwfGdlKSxmPU1uLE1uPTAsMCE9KDB8ZikmMCE9KDB8eG4pPygocD0wfGdpKDB8YVtmPj4yXSwwfE9lLDB8YmUpKXx8emUoMHxmLDB8eG4pLERuPXhuKTpwPS0xLDE9PSgw''@;'; + put 'put ''fHApKXtmPURuLEQ9bT1ELE09Rz1NLFI9Sz1SO2NvbnRpbnVlfWlmKE1uPTAsc3MoMTA1LDB8TSksZj1NbixNbj0wLDAhPSgwfGYpJjAhPSgwfHhuKT8oKHA9MHxnaSgwfGFbZj4+Ml0sMHxPZSwwfGJlKSl8fHplKDB8ZiwwfHhuKSxEbj14bik6cD0tMSwxPT0oMHxwKSl7Zj1EbixEPW09RCxN''@;'; + put 'put ''PUc9TSxSPUs9Ujtjb250aW51ZX1wPTE3O2JyZWFrfWlmKE1uPTAsZj0wfEZsKDc4LDB8UiwwfHBlKSxwPU1uLE1uPTAsMCE9KDB8cCkmMCE9KDB8eG4pPygobT0wfGdpKDB8YVtwPj4yXSwwfE9lLDB8YmUpKXx8emUoMHxwLDB8eG4pLERuPXhuKTptPS0xLDEhPSgwfG0pKWlmKGZ8fChNbj0w''@;'; + put 'put ''LGY9MHxKcygyNCwwfGwsMHxjLDB8RCkscD1NbixNbj0wLDAhPSgwfHApJjAhPSgwfHhuKT8oKG09MHxnaSgwfGFbcD4+Ml0sMHxPZSwwfGJlKSl8fHplKDB8cCwwfHhuKSxEbj14bik6bT0tMSwxIT0oMHxtKSkpaWYoTW49MCxzcygxMDUsMHxnZSkscD1NbixNbj0wLDAhPSgwfHApJjAhPSgw''@;'; + put 'put ''fHhuKT8oKG09MHxnaSgwfGFbcD4+Ml0sMHxPZSwwfGJlKSl8fHplKDB8cCwwfHhuKSxEbj14bik6bT0tMSwxIT0oMHxtKSl7aWYoTW49MCxzcygxMDUsMHxNKSxwPU1uLE1uPTAsMCE9KDB8cCkmMCE9KDB8eG4pPygobT0wfGdpKDB8YVtwPj4yXSwwfE9lLDB8YmUpKXx8emUoMHxwLDB8eG4p''@;'; + put 'put ''LERuPXhuKTptPS0xLDEhPSgwfG0pKXtwPTI0O2JyZWFrfWY9RG4sRD1tPUQsTT1HPU0sUj1LPVJ9ZWxzZSBmPURuLEQ9bT1ELE09Rz1NLFI9Sz1SO2Vsc2UgZj1EbixEPW09RCxNPUc9TSxSPUs9UjtlbHNlIGY9RG4sRD1tPUQsTT1HPU0sUj1LPVJ9cmV0dXJuIDE3PT0oMHxwKT9mPTA6MjQ9''@;'; + put 'put ''PSgwfHApJiYoZj0wPT0oMHxmKSYxKSxGdCgwfE9lKSxsZT1MZSwwfGZ9ZnVuY3Rpb24gVDJlKGwsYyl7dmFyIHAsZj0wO3JldHVybiAwfChsPTA9PShmPStfWyhwPTB8YVsobHw9MCk+PjJdKT4+M10tK19bKGw9MHxhWyhjfD0wKT4+Ml0pPj4zXSkmJjA9PShmPStfW3ArOD4+M10tK19bbCs4''@;'; + put 'put ''Pj4zXSk/MDpmPjA/MTotMSl9ZnVuY3Rpb24gcVgobCxjKXt2YXIgcCxtLEEsdyxiLGssTSxmPTA7TT1sZSxsZT1sZSs2NHwwLEE9TSszMnwwLHc9TSsyNHwwLGI9TSsxNnwwLGs9TSxlSyhsfD0wLGN8PTAsbT1NKzQ4fDApLHA9MHxhWyhmPW0rOHwwKT4+Ml07ZG97aWYoKDB8cCk+MClmPTA7''@;'; + put 'put ''ZWxzZXtpZigoMHxwKTwwKXtpZihlSyhjLGwsbSksKDB8KGY9MHxhW2Y+PjJdKSk+MCl7Zj0wO2JyZWFrfWlmKCEoMHx0SyhsLGMsdyxiLGY9KDB8Zik8MD8zOjB8cWgoYyxsLCgwfChmPTB8YVttPj4yXSkpPi0xP2Y6MC1mfDApKSkpe2Y9MDticmVha319ZWxzZSBpZigoMHwoZj0wfGFbbT4+''@;'; + put 'put ''Ml0pKT09KDB8YVttKzQ+PjJdKT8oZj0wfHFoKGwsYywwKSxmPSgwfHFoKGwsYywoMHxmKTw9KDB8cWgobCxjLDEpKSYxKSk8PDEpOmY9MHxxaChsLGMsKDB8Zik+LTE/ZjowLWZ8MCksISgwfHRLKGwsYyx3LGIsZikpKXtmPTA7YnJlYWt9X1trPj4zXT0rX1t3Pj4zXSxfW2srOD4+M109K19b''@;'; + put 'put ''Yj4+M10sYVtBPj4yXT1hW2s+PjJdLGFbQSs0Pj4yXT1hW2srND4+Ml0sYVtBKzg+PjJdPWFbays4Pj4yXSxhW0ErMTI+PjJdPWFbaysxMj4+Ml0sZj0wfG5LKGwsYyxBKX19d2hpbGUoMCk7cmV0dXJuIGxlPU0sMHxmfWZ1bmN0aW9uIGVLKGwsYyxmKXt2YXIgbSxBLHcsayxNLHA9MCxiPTA7''@;'; + put 'put ''dz0rX1sobHw9MCk+PjNdLGI9K19bbCs4Pj4zXSwoMHxhWzQrKHA9MHxhW2wrMTY+PjJdKT4+Ml0pPT0oMHxsKT9wPWw9MHxhW3A+PjJdOihwPWwrMjR8MCxsPWwrMjR8MCksQT0rX1twPj4zXS13LG09K19bbCs4Pj4zXS1iLCgwfGFbNCsocD0wfGFbMTYrKGN8PTApPj4yXSk+PjJdKT09KDB8''@;'; + put 'put ''Yyk/cD1sPTB8YVtwPj4yXToocD1jKzI0fDAsbD1jKzI0fDApLGs9K19bcD4+M10tdyxNPStfW2wrOD4+M10tYixhWyhmfD0wKT4+Ml09Yz0wPT0oYj0oK19bYys4Pj4zXS1iKSpBLSgrX1tjPj4zXS13KSptKT8wOmI+MD8xOi0xLGFbZis0Pj4yXT1sPTA9PShiPU0qQS1rKm0pPzA6Yj4wPzE6''@;'; + put 'put ''LTEsYVtmKzg+PjJdPTB8QXIobCxjKX1mdW5jdGlvbiBxaChsLGMsZil7dmFyIG0sQSx3LGIsayxNO2N8PTAsZnw9MCxrPStfWyhsfD0wKT4+M10sTT0rX1tsKzg+PjNdLGI9K19bKGw9KDB8YVs0KyhtPTB8YVtsKzE2Pj4yXSk+PjJdKT09KDB8bCk/MHxhW20+PjJdOmwrMjR8MCk+PjNdLHc9''@;'; + put 'put ''K19bbCs4Pj4zXTtkb3tpZihmKXtpZigoMHxhWzQrKGw9MHxhW2MrMTY+PjJdKT4+Ml0pPT0oMHxjKSl7Yz0wfGFbbD4+Ml07YnJlYWt9Yz1jKzI0fDA7YnJlYWt9fXdoaWxlKDApO3JldHVybiBBPStfW2M+PjNdLDB8KGs9PWI/az09QT8tMSE9KDB8cksoTSwrX1tjKzg+PjNdLHcpKSYxOjA6''@;'; + put 'put ''MHxySyhrLEEsYikpfWZ1bmN0aW9uIHRLKGwsYyxmLHAsbSl7bHw9MCxjfD0wLGZ8PTAscHw9MCxtfD0wO3ZhciBBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLEs9MDtlOmRve2lmKCgwfG0pPDEpQT0wO2Vsc2V7Uj0rX1tsPj4zXSxLPStfW2wrOD4+M10sTT0rX1soQT0oMHxhWzQr''@;'; + put 'put ''KEE9MHxhW2wrMTY+PjJdKT4+Ml0pPT0oMHxsKT8wfGFbQT4+Ml06bCsyNHwwKT4+M10sYj0rX1tBKzg+PjNdLEQ9K19bYz4+M10sRz0rX1tjKzg+PjNdLGs9K19bKEE9KDB8YVs0KyhBPTB8YVtjKzE2Pj4yXSk+PjJdKT09KDB8Yyk/MHxhW0E+PjJdOmMrMjR8MCk+PjNdLHc9K19bQSs4Pj4z''@;'; + put 'put ''XTt0OmRve3N3aXRjaCgwfG0pe2Nhc2UgMzppZihSPT1NKXtfW2Y+PjNdPVIsdz0oRy13KS8oRC1rKSooUi1rKSt3O2JyZWFrIHR9aWYoRD09ayl7X1tmPj4zXT1ELHc9KEstYikvKFItTSkqKEQtTSkrYjticmVhayB0fV9bZj4+M109KChLLT0oTT0oSy1iKS8oUi1NKSkqUiktKEctPShrPShH''@;'; + put 'put ''LXcpLyhELWspKSpEKSkvKHc9ay1NKSx3PShrKkstRypNKS93O2JyZWFrIHQ7Y2FzZSAyOmlmKC0xPT0oMHxxaChsLGMsMCkpKS0xPT0oMHxxaChjLGwsMSkpPyhNPShtPS0xPT0oMHxxaChjLGwsMCkpKT9NOlIsaz1ELGI9bT9iOkssdz1HKTooTT1rLGs9RCxiPXcsdz1HKTtlbHNlIGlmKC0x''@;'; + put 'put ''IT0oMHxxaChsLGMsMSkpKXtpZigtMSE9KDB8cWgoYyxsLDApKSl7QT0wO2JyZWFrIGV9az1SLHc9S31lbHNlIE09RCxiPUc7X1tmPj4zXT0uNSooaytNKSx3PS41Kih3K2IpO2JyZWFrO2Nhc2UgMTppZigoRy1LKSooUi1NKT09KEQtUikqKEstYikpe19bZj4+M109RCx3PUc7YnJlYWsgdH1f''@;'; + put 'put ''W2Y+PjNdPWs7YnJlYWsgdDtkZWZhdWx0OkE9MTticmVhayBlfX13aGlsZSgwKTtfW3A+PjNdPXcsQT0xfX13aGlsZSgwKTtyZXR1cm4gMHxBfWZ1bmN0aW9uIG5LKGwsYyxmKXtmfD0wO3ZhciBBLHcsYixrLE0sRCxSLGdlLEcscD0wLG09MCxwZT0wO2dlPWxlLGxlPWxlKzE2fDAsUj0rX1so''@;'; + put 'put ''bHw9MCk+PjNdLEc9K19bbCs4Pj4zXSxNPStfWyhwPSgwfGFbNCsocD0wfGFbbCsxNj4+Ml0pPj4yXSk9PSgwfGwpPzB8YVtwPj4yXTpsKzI0fDApPj4zXSxiPStfW3ArOD4+M10saz0rX1soY3w9MCk+PjNdLEQ9K19bYys4Pj4zXSx3PStfWyhwPSgwfGFbNCsocD0wfGFbYysxNj4+Ml0pPj4y''@;'; + put 'put ''XSk9PSgwfGMpPzB8YVtwPj4yXTpjKzI0fDApPj4zXSxBPStfW3ArOD4+M107ZTpkb3tpZihSIT1NJmshPXcpcGU9MTg7ZWxzZXtkb3tpZihSPT1NKXtpZihSPT0obT0rX1tmPj4zXSkmJkc9PStfW2YrOD4+M10pYnJlYWs7aWYoTSE9bSl7cGU9MTg7YnJlYWsgZX1pZihiIT0rX1tmKzg+PjNd''@;'; + put 'put ''KXtwZT0xODticmVhayBlfX19d2hpbGUoMCk7aWYoaz09dyl7aWYoaz09KG09K19bZj4+M10pJiZEPT0rX1tmKzg+PjNdKXtwPTA7YnJlYWt9dz09bSYmQT09K19bZis4Pj4zXT9wPTA6cGU9MTh9ZWxzZSBwPTB9fXdoaWxlKDApO3JldHVybiAxOD09KDB8cGUpJiYocD0xKSxsZT1nZSwwfHB9''@;'; + put 'put ''ZnVuY3Rpb24gcksobCxjLGYpe3JldHVybiAwfCgobD0rbCk9PShjPStjKXxjPT0oZj0rZik/MDoobDxjP2M8ZjpmPGMpPzE6LTEpfWZ1bmN0aW9uIG9LKGwsYyxmLHAsbSxBKXtsfD0wLGZ8PTAscHw9MCxtfD0wLEF8PTA7dmFyIFIsRyxLLGdlLHc9MCxiPTAsaz0wLE09MCxEPTAscGU9MCxi''@;'; + put 'put ''ZT0wO0s9MHxRbihwZT0oY3w9MCk8PDMpLHBlPTB8UW4ocGUpLGdlPTMwKmN8MCxSPSgwfGYpPCgwfGMpP2Y6YyxHPWMrLTF8MCxEPTA9PSgwfEEpLGY9MCx3PTA7ZTpmb3IoOyEoKDB8dyk+PSgwfFIpKTspe2s9MHxhW3ArKHc8PDIpPj4yXTtkb3t0OmRve2lmKEQpZj0wO2Vsc2UgZm9yKGY9''@;'; + put 'put ''MDs7KXtpZigoMHxmKT09KDB8Yykpe2Y9MDticmVhayB0fV9baysoZjw8Myk+PjNdPSsoMHwoMHxUMSgpKSUxMDApLGY9ZisxfDB9fXdoaWxlKDApO2Zvcig7KDB8ZikhPSgwfHcpOylnZyhrLDAsRywtK29oKEE9MHxhW3ArKGY8PDIpPj4yXSwwLEcsayksQSksZj1mKzF8MDtiPSttcChrLDAs''@;'; + put 'put ''Ryl9d2hpbGUoYjwxZS0xMCk7SjcoaywwLEcsMS9iLGspLGY9MDtkb3tmb3IoJDMocGUsMCxHLGspLGpWKGwsYyxjLGssSyksJDMoaywwLEcsSyksQT0wOygwfEEpIT0oMHx3KTspZ2coaywwLEcsLStvaChiZT0wfGFbcCsoQTw8Mik+PjJdLDAsRyxrKSxiZSksQT1BKzF8MDtpZihiZT1mLGY9''@;'; + put 'put ''ZisxfDAsISgoMHxiZSk8KDB8Z2UpJiEoKGI9K21wKGssMCxHKSk8MWUtMTApKSlicmVhayBlO0o3KGssMCxHLDEvYixrKSxNPStvaChrLDAsRyxwZSl9d2hpbGUoK2VvKCtNKTwuOTk5KTtfW20rKHc8PDMpPj4zXT1NKmIsdz13KzF8MH1mb3IoOyEoKDB8dyk+PSgwfFIpKTspe2ZvcihrPTB8''@;'; + put 'put ''YVtwKyh3PDwyKT4+Ml0sQT0wOzspe2lmKCgwfEEpPj0oMHxjKSl7QT0wO2JyZWFrfV9baysoQTw8Myk+PjNdPSsoMHwoMHxUMSgpKSUxMDApLEE9QSsxfDB9Zm9yKDshKCgwfEEpPj0oMHx3KSk7KWdnKGssMCxHLC0rb2goYmU9MHxhW3ArKEE8PDIpPj4yXSwwLEcsayksYmUpLEE9QSsxfDA7''@;'; + put 'put ''SjcoaywwLEcsMS8rbXAoaywwLEcpLGspLF9bbSsodzw8Myk+PjNdPTAsdz13KzF8MH1mb3IoRD1SKy0xfDAsdz0wOyEoKDB8dyk+PSgwfEQpKTspe2ZvcihiPStfWyhsPW0rKHc8PDMpfDApPj4zXSxBPXcsaz1jPXcrMXwwOyEoKDB8ayk+PSgwfFIpKTspYj0oYmU9YjwoTT0rX1ttKyhrPDwz''@;'; + put 'put ''KT4+M10pKT9NOmIsQT1iZT9rOkEsaz1rKzF8MDsoMHxBKSE9KDB8dyk/KCQzKEssMCxHLDB8YVsoaz1wKyh3PDwyKXwwKT4+Ml0pLCQzKDB8YVtrPj4yXSwwLEcsMHxhWyhiZT1wKyhBPDwyKXwwKT4+Ml0pLCQzKDB8YVtiZT4+Ml0sMCxHLEspLF9bbSsoQTw8Myk+PjNdPStfW2w+PjNdLF9b''@;'; + put 'put ''bD4+M109Yix3PWMpOnc9Y31yZXR1cm4gRnQoSyksRnQocGUpLCgwfGYpPD0oMHxnZSl8MH1mdW5jdGlvbiBvaChsLGMsZixwKXt2YXIgbT0wLEE9MDtmb3IoQT0wLG09MS0oY3w9MCkrKGZ8PTApfDAscD0ocHw9MCkrKGM8PDMpfDAsZj0obHw9MCkrKGM8PDMpfDA7bTspQT0rX1twPj4zXSor''@;'; + put 'put ''X1tmPj4zXStBLG09bSstMXwwLHA9cCs4fDAsZj1mKzh8MDtyZXR1cm4rQX1mdW5jdGlvbiBnZyhsLGMsZixwLG0pe3A9K3A7dmFyIEE9MDtmb3IoQT0xLShjfD0wKSsoZnw9MCl8MCxtPShtfD0wKSsoYzw8Myl8MCxmPShsfD0wKSsoYzw8Myl8MDtBOylfW2Y+PjNdPStfW2Y+PjNdKyArX1tt''@;'; + put 'put ''Pj4zXSpwLEE9QSstMXwwLG09bSs4fDAsZj1mKzh8MH1mdW5jdGlvbiBtcChsLGMsZil7cmV0dXJuKyArRDAoKyArb2gobHw9MCxjfD0wLGZ8PTAsbCkpfWZ1bmN0aW9uIEo3KGwsYyxmLHAsbSl7cD0rcDt2YXIgQT0wO2ZvcihBPTEtKGN8PTApKyhmfD0wKXwwLG09KG18PTApKyhjPDwzKXww''@;'; + put 'put ''LGY9KGx8PTApKyhjPDwzKXwwO0E7KV9bZj4+M109K19bbT4+M10qcCxBPUErLTF8MCxtPW0rOHwwLGY9Zis4fDB9ZnVuY3Rpb24gJDMobCxjLGYscCl7dmFyIG09MDtmb3IobT0xLShjfD0wKSsoZnw9MCl8MCxwPShwfD0wKSsoYzw8Myl8MCxmPShsfD0wKSsoYzw8Myl8MDttOylfW2Y+PjNd''@;'; + put 'put ''PStfW3A+PjNdLG09bSstMXwwLHA9cCs4fDAsZj1mKzh8MH1mdW5jdGlvbiBqVihsLGMsZixwLG0pe2x8PTAsY3w9MCxmfD0wLHB8PTAsbXw9MDt2YXIgQT0wLHc9MCxiPTAsaz0wO2ZvcihiPTA7ISgoMHxiKT49KDB8YykpOyl7Zm9yKGs9bCsoYjw8Mil8MCxBPTAsdz0wOyEoKDB8dyk+PSgw''@;'; + put 'put ''fGYpKTspQT0rX1twKyh3PDwzKT4+M10qK19bKDB8YVtrPj4yXSkrKHc8PDMpPj4zXStBLHc9dysxfDA7X1ttKyhiPDwzKT4+M109QSxiPWIrMXwwfX1mdW5jdGlvbiBsSyhsLGMsZixwLG0pe2x8PTAsY3w9MCxmfD0wLHB8PTA7dmFyIEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAs''@;'; + put 'put ''Sz0wO2Zvcigodz0wfGFbKG18PTApPj4yXSk/KEE9MHxVYSgwfGFbdz4+Ml0sMHxBcigyMCpmfDAscCkpLEs9MHxVYSh3LGY8PDIpKTooQT0wfEIwKDB8QXIoMjAqZnwwLHApKSxLPTB8QjAoZjw8MikpLGFbbT4+Ml09Syx3PTA7Oyl7aWYoKDB8dyk+PSgwfGYpKXttPTA7YnJlYWt9YVtLKyh3''@;'; + put 'put ''PDwyKT4+Ml09QSx3PXcrMXwwLEE9QSsocDw8Mil8MH1mb3IoOyEoKDB8bSk+PSgwfGYpKTspe2ZvcihrPTB8YVtsKygyMCptfDApKzQ+PjJdLE09MHxhW2wrKDIwKm18MCkrOD4+Ml0sRD0wfGFbbCsoMjAqbXwwKT4+Ml0sUj1LKyhtPDwyKXwwLEE9MDshKCgwfEEpPj0oMHxwKSk7KXtmb3Io''@;'; + put 'put ''Rz1jKyhBPDwyKXwwLGI9MCx3PTA7ISgoMHx3KT49KDB8RCkpOyliPStfWygwfGFbRz4+Ml0pKyhhW2srKHc8PDIpPj4yXTw8Myk+PjNdKitqbltNKyh3PDwyKT4+Ml0rYix3PXcrMXwwO2puWygwfGFbUj4+Ml0pKyhBPDwyKT4+Ml09YixBPUErMXwwfW09bSsxfDB9fWZ1bmN0aW9uIGE4KGws''@;'; + put 'put ''Yyl7dmFyIGY9MCxwPTAsbT0wO2ZvcihmPTAscD1jfD0wLG09bHw9MDttOylmPStfW3A+PjNdK2YscD1wKzh8MCxtPW0rLTF8MDtmb3IoZi89KygwfGwpO2w7KV9bYz4+M109K19bYz4+M10tZixjPWMrOHwwLGw9bCstMXwwfWZ1bmN0aW9uIE9mKGwsYyxmLHApe2x8PTAsY3w9MCxmfD0wLHB8''@;'; + put 'put ''PTA7dmFyIG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wO2Zvcih3PTA7ISgoMHx3KT49KDB8YykpOyl7Zm9yKGI9MHxhW2wrKDIwKnd8MCk+PjJdLGs9bCsoMjAqd3wwKSs4fDAsTT1sKygyMCp3fDApKzR8MCxtPTAsQT0wOyEoKDB8QSk+PSgwfGIpKTspbT0rX1tmKyhhWygwfGFbTT4+Ml0pKyhB''@;'; + put 'put ''PDwyKT4+Ml08PDMpPj4zXSoram5bKDB8YVtrPj4yXSkrKEE8PDIpPj4yXSttLEE9QSsxfDA7X1twKyh3PDwzKT4+M109bSx3PXcrMXwwfX1mdW5jdGlvbiBxMyhsLGMsZixwKXtsfD0wLGN8PTAsZnw9MCxwfD0wO3ZhciBtPTAsQT0wLHc9MCxiPTA7Zm9yKHc9MDshKCgwfHcpPj0oMHxjKSk7''@;'; + put 'put ''KXtmb3IoYj1sKyh3PDwyKXwwLG09MCxBPTA7KDB8QSkhPSgwfGMpOyltPStfW2YrKEE8PDMpPj4zXSoram5bKDB8YVtiPj4yXSkrKEE8PDIpPj4yXSttLEE9QSsxfDA7X1twKyh3PDwzKT4+M109bSx3PXcrMXwwfX1mdW5jdGlvbiBVRChsLGMsZixwKXtsfD0wLGN8PTAsZnw9MCxwfD0wO3Zh''@;'; + put 'put ''ciBtPTA7Zm9yKG09MDshKCgwfG0pPj0oMHxsKSk7KV9bcCsobTw8Myk+PjNdPStfW2MrKG08PDMpPj4zXS0rX1tmKyhtPDwzKT4+M10sbT1tKzF8MH1mdW5jdGlvbiBWayhsLGMsZixwKXtsfD0wLGN8PTAsZnw9MCxwfD0wO3ZhciBtPTA7Zm9yKG09MDshKCgwfG0pPj0oMHxsKSk7KV9bcCso''@;'; + put 'put ''bTw8Myk+PjNdPStfW2YrKG08PDMpPj4zXSsgK19bYysobTw8Myk+PjNdLG09bSsxfDB9ZnVuY3Rpb24gVnkobCxjLGYscCl7bHw9MCxjfD0wLGY9K2YscHw9MDt2YXIgbT0wO2ZvcihtPTA7ISgoMHxtKT49KDB8bCkpOylfW3ArKG08PDMpPj4zXT0rX1tjKyhtPDwzKT4+M10qZixtPW0rMXww''@;'; + put 'put ''fWZ1bmN0aW9uIFpWKGwsYyxmKXtsfD0wLGN8PTAsZnw9MDt2YXIgcD0wO2ZvcihwPTA7ISgoMHxwKT49KDB8bCkpOylfW2YrKHA8PDMpPj4zXT0rX1tjKyhwPDwzKT4+M10scD1wKzF8MH1mdW5jdGlvbiB2cChsLGMsZil7bHw9MCxjfD0wLGZ8PTA7dmFyIHA9MCxtPTA7Zm9yKHA9MCxtPTA7''@;'; + put 'put ''ISgoMHxtKT49KDB8bCkpOylwPStfW2YrKG08PDMpPj4zXSorX1tjKyhtPDwzKT4+M10rcCxtPW0rMXwwO3JldHVybitwfWZ1bmN0aW9uIGVkKGwsYyl7bHw9MCxjfD0wO3ZhciBmPTAscD0wLG09MDtmb3IoZj0wLHA9LTFlNTA7ISgoMHxmKT49KDB8bCkpOyltPStlbygrICtfW2MrKGY8PDMp''@;'; + put 'put ''Pj4zXSksZj1mKzF8MCxwPW0+cD9tOnA7cmV0dXJuK3B9ZnVuY3Rpb24gelYobCxjLGYscCxtKXtsfD0wLGN8PTAsZnw9MCxwfD0wLG18PTA7dmFyIEE9MCx3PTAsYj0wO2ZvcihiPTA7KDB8Yik8KDB8Yyk7KXtmb3IoQT0wLHc9MDshKCgwfHcpPj0oMHxmKSk7KUE9K19bcCsodzw8Myk+PjNd''@;'; + put 'put ''KitfWygwfGFbbCsodzw8Mik+PjJdKSsoYjw8Myk+PjNdK0Esdz13KzF8MDtfW20rKGI8PDMpPj4zXT1BLGI9YisxfDB9fWZ1bmN0aW9uIGw4KGwsYyl7dmFyIGY9MCxwPTAsbT0wO2ZvcihmPTAscD1jfD0wLG09bHw9MDttOylmPStqbltwPj4yXStmLHA9cCs0fDAsbT1tKy0xfDA7Zm9yKGYv''@;'; + put 'put ''PSsoMHxsKTtsOylqbltjPj4yXT0ram5bYz4+Ml0tZixjPWMrNHwwLGw9bCstMXwwfWZ1bmN0aW9uIHRkKGwsYyxmLHApe2x8PTAsY3w9MCxmfD0wLHB8PTA7dmFyIG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLEs9MCxwZT0wO2ZvcihtPTA7Oyl7aWYoKDB8bSk+PSgwfGMp''@;'; + put 'put ''KXt3PTAsaz0wLFI9YzticmVha31qbltwKyhtPDwyKT4+Ml09MCxtPW0rMXwwfWZvcig7ISgoMHxrKT49KDB8YykpOyl7Zm9yKEE9K2puW2wrKHc8PDIpPj4yXSooRD0ram5bZisoazw8Mik+PjJdKSxiPU09aysxfDAsbT13O209bSsxfDAsKDB8YikhPSgwfGMpOylHPStqbltmKyhiPDwyKT4+''@;'; + put 'put ''Ml0qKHBlPStqbltsKyhtPDwyKT4+Ml0pK0Esam5bKEs9cCsoYjw8Mil8MCk+PjJdPStqbltLPj4yXStwZSpELEE9RyxiPWIrMXwwO2puWyhLPXArKGs8PDIpfDApPj4yXT0ram5bSz4+Ml0rQSx3PXcrUnwwLGs9TSxSPVIrLTF8MH19ZnVuY3Rpb24gUUQobCxjLGYscCl7bHw9MCxjfD0wLGZ8''@;'; + put 'put ''PTAscHw9MDt2YXIgbT0wO2ZvcihtPTA7ISgoMHxtKT49KDB8bCkpOylqbltwKyhtPDwyKT4+Ml09K2puW2YrKG08PDIpPj4yXSsgK2puW2MrKG08PDIpPj4yXSxtPW0rMXwwfWZ1bmN0aW9uIEpEKGwsYyxmLHApe2x8PTAsY3w9MCxmPStmLHB8PTA7dmFyIG09MCxBPTA7Zm9yKG09MDshKCgw''@;'; + put 'put ''fG0pPj0oMHxsKSk7KWpuWyhBPWMrKG08PDIpfDApPj4yXT0ram5bcCsobTw8Mik+PjJdKmYrICtqbltBPj4yXSxtPW0rMXwwfWZ1bmN0aW9uIHNLKGwsYyxmLHApe2x8PTAsY3w9MCxmPStmLHB8PTA7dmFyIG09MDtmb3IobT0wOyEoKDB8bSk+PSgwfGwpKTspam5bcCsobTw8Mik+PjJdPStq''@;'; + put 'put ''bltjKyhtPDwyKT4+Ml0qZixtPW0rMXwwfWZ1bmN0aW9uIHVLKGwsYyxmKXtsfD0wLGN8PTAsZnw9MDt2YXIgcD0wO2ZvcihwPTA7ISgoMHxwKT49KDB8bCkpOylhW2YrKHA8PDIpPj4yXT1hW2MrKHA8PDIpPj4yXSxwPXArMXwwfWZ1bmN0aW9uIFg3KGwsYyxmKXtsfD0wLGN8PTAsZnw9MDt2''@;'; + put 'put ''YXIgcD0wLG09MDtmb3IocD0wLG09MDshKCgwfG0pPj0oMHxsKSk7KXArPStqbltmKyhtPDwyKT4+Ml0qK2puW2MrKG08PDIpPj4yXSxtPW0rMXwwO3JldHVybitwfWZ1bmN0aW9uIFhEKGwsYyxmKXtsfD0wLGM9K2MsZnw9MDt2YXIgcD0wO2ZvcihwPTA7ISgoMHxwKT49KDB8bCkpOylfW2Yr''@;'; + put 'put ''KHA8PDMpPj4zXT1jLHA9cCsxfDB9ZnVuY3Rpb24gankobCxjLGYpe2x8PTAsYz0rYyxmfD0wO3ZhciBwPTA7Zm9yKHA9MDshKCgwfHApPj0oMHxsKSk7KWpuW2YrKHA8PDIpPj4yXT1jLHA9cCsxfDB9ZnVuY3Rpb24gTzJlKGwsYyl7bHw9MCxjfD0wO3ZhciBmPTAscD0wLG09MDtmb3IoZj0t''@;'; + put 'put ''MS4wMDAwMDAwMTUwNDc0NjYyZTMwLHA9MDshKCgwfHApPj0oMHxsKSk7KWY9KG09K2VvKCsgK2puW2MrKHA8PDIpPj4yXSkpPmY/bTpmLHA9cCsxfDA7cmV0dXJuK2Z9ZnVuY3Rpb24gamsobCxjKXtsfD0wLGN8PTA7dmFyIGY9MCxwPTAsbT0wO2ZvcihmPTA7ISgoMHxmKT49KDB8bCkpOylq''@;'; + put 'put ''blsocD1jKyhmPDwyKXwwKT4+Ml09KG09K2puW3A+PjJdKSptLGY9ZisxfDB9ZnVuY3Rpb24gY0sobCxjKXtsfD0wLGN8PTA7dmFyIGY9MCxwPTAsbT0wO2ZvcihmPTA7ISgoMHxmKT49KDB8bCkpOykwIT0obT0ram5bKHA9YysoZjw8Mil8MCk+PjJdKSYmKGpuW3A+PjJdPTEvbSksZj1mKzF8''@;'; + put 'put ''MH1mdW5jdGlvbiBHVihsLGMsZil7bHw9MCxjfD0wLGZ8PTA7dmFyIHA9MCxtPTA7Zm9yKHA9MDshKCgwfHApPj0oMHxsKSk7KShtPStqbltjKyhwPDwyKT4+Ml0pPj0wJiYoam5bZisocDw8Mik+PjJdPStEMCgrbSkpLHA9cCsxfDB9ZnVuY3Rpb24gZksobCxjKXtsfD0wLGN8PTA7dmFyIGY9''@;'; + put 'put ''MCxwPTAsbT0wO2ZvcihmPTA7ISgoMHxmKT49KDB8bCkpOykobT0ram5bKHA9YysoZjw8Mil8MCk+PjJdKT4wJiYoam5bcD4+Ml09MS8rRDAoK20pKSxmPWYrMXwwfWZ1bmN0aW9uIFp5KGwsYyl7Y3w9MDt2YXIgZj0wO2FbKGx8PTApPj4yXT0wLDMmYyYmKGM9NCUoYz4+PjApfDA/MHxBcig0''@;'; + put 'put ''LygoMHxmdW5jdGlvbiBSMmUobCl7bHw9MDt2YXIgYz0wLGY9MDtmPTQ7ZTpmb3IoOzspe2ZvcihjPWY7Oyl7aWYoKDB8Yyk9PSgwfGwpKWJyZWFrIGU7aWYoKDB8Yyk8PSgwfGwpKWJyZWFrO2M9Yy1sfDB9Zj1jLGw9bC1jfDB9cmV0dXJuIDB8bH0oYykpPj4+MCl8MCxjKTo0KSxhW2wrOD4+''@;'; + put 'put ''Ml09YyxjPTB8YVsobD1sKzR8MCk+PjJdO2U6ZG97aWYoMHxjKWZvcig7Oyl7aWYoIWMpYnJlYWsgZTtmPTB8YVtjPj4yXSxGdCgwfGFbYys0Pj4yXSksRnQoYyksYz1mfX13aGlsZSgwKTthW2w+PjJdPTB9ZnVuY3Rpb24genkobCl7dmFyIGM9MCxmPTAscD0wLG09MDtpZighKGM9MHxhWyhs''@;'; + put 'put ''fD0wKT4+Ml0pKXtmb3IoZj0wfGFbbCs4Pj4yXSxwPTB8UW4oOCksbT0wfFFuKDB8QXIoMHxhWzQ2ODU1XSxmKSksYVtwKzQ+PjJdPW0sYz0wOyEoKDB8Yyk+PSgwfGFbNDY4NTVdKSk7KVdWKG0rKDB8QXIoYyxmKSl8MCxsKSxjPWMrMXwwO2FbcD4+Ml09YVsoYz1sKzR8MCk+PjJdLGFbYz4+''@;'; + put 'put ''Ml09cCxjPTB8YVtsPj4yXX1yZXR1cm4gYVtsPj4yXT1hW2M+PjJdLDB8Y31mdW5jdGlvbiBXVihsLGMpe2FbKGx8PTApPj4yXT1hWyhjfD0wKT4+Ml0sYVtjPj4yXT1sfWZ1bmN0aW9uIEIyZShsLGMsZixwKXtsfD0wLGZ8PTAscHw9MDt2YXIgTSxELG09MCxBPTAsdz0wLGI9MCxrPTA7Zm9y''@;'; + put 'put ''KEQ9MHx2cigoY3w9MCk8PDMpLG09MHxhWyhNPWwrOHwwKT4+Ml0sZnVuY3Rpb24gaDllKGwsYyxmKXtjfD0wLGZ8PTA7dmFyIGIscD0wLG09MCxBPTAsdz0wLGs9MCxNPTA7Zm9yKGI9MTYrKGx8PTApfDAsQT0wOyEoKDB8QSk+PSgwfGMpKTspe2lmKDB8YVtiPj4yXSl7Zm9yKGs9MHxhW2wr''@;'; + put 'put ''KDIwKkF8MCk+PjJdLE09bCsoMjAqQXwwKSs4fDAsdz1sKygyMCpBfDApKzE2fDAscD0wLG09MTshKCgwfG0pPj0oMHxrKSk7KXArPStqblsoMHxhW3c+PjJdKSsobTw8Mik+PjJdKitqblsoMHxhW00+PjJdKSsobTw8Mik+PjJdLG09bSsxfDA7X1tmKyhBPDwzKT4+M109cH1BPUErMXwwfX0o''@;'; + put 'put ''bCxjLEQpLGZ1bmN0aW9uIEQyZShsLGMpe2x8PTAsY3w9MDt2YXIgZj0wO2ZvcihmPTA7ISgoMHxmKT49KDB8bCkpOylfW2MrKGY8PDMpPj4zXT0rKDB8KDB8VDEoKSklNTAwKSxmPWYrMXwwO2E4KGwsYyl9KGMsZiksQT0wLHc9MDshKCgwfHcpPj0oMHxjKSk7KUE9KDB8YVtsKygyMCp3fDAp''@;'; + put 'put ''Pj4yXSkrQXwwLHc9dysxfDA7Zm9yKEE9MHxRbihBPDwyKSxiPTA7ISgoMHxiKT49KDB8YykpOyl7Zm9yKGFbbCsoMjAqYnwwKSs4Pj4yXT1BLGpuW0E+PjJdPSsoMS0oaz0wfGFbbCsoMjAqYnwwKT4+Ml0pfDApLHc9MTshKCgwfHcpPj0oMHxrKSk7KWpuW0ErKHc8PDIpPj4yXT0xLHc9dysx''@;'; + put 'put ''fDA7QT1BKyhrPDwyKXwwLGI9YisxfDB9Zm9yKHc9MHxmdW5jdGlvbiBrVihsLGMsZixwLG0sQSl7bHw9MCxjfD0wLGZ8PTAsbT0rbSxBfD0wO3ZhciBrLE0sRCxSLEsscGUsZ2UsT2Usdz0wLGI9MCxHPTAsYmU9MDtmb3IoT2U9bGUsbGU9bGUrMTZ8MCxNPU9lLEs9MHxRbihHPShwfD0wKTw8''@;'; + put 'put ''MykscGU9MHxRbihHKSxnZT0wfFFuKEcpLEQ9MHxRbihHKSxSPTB8UW4oRyksWlYocCxmLEc9MHxRbihHKSksYTgocCxHKSxhOChwLGMpLE9mKGwscCxjLEQpLFVEKHAsRyxELEspLFpWKHAsSyxwZSksaz1BKy0xfDAsZj0wLHc9K3ZwKHAsSyxLKTs7KXtpZigoMHxmKT49KDB8QSkpe2Y9MDti''@;'; + put 'put ''cmVha31pZighKCtlZChwLEspPm0pKXtmPTA7YnJlYWt9aWYoT2YobCxwLHBlLGdlKSwwPT0oYj0rdnAocCxwZSxnZSkpKXtmPTA7YnJlYWt9aWYoVnkocCxwZSxiPXcvYixSKSxWayhwLGMsUixjKSwoMHxmKTwoMHxrKSl7aWYoVnkocCxnZSxiLGdlKSxVRChwLEssZ2UsSyksYj0rdnAocCxL''@;'; + put 'put ''LEspLDA9PXcpe2JlPTc7YnJlYWt9VnkocCxwZSxiL3cscGUpLFZrKHAsSyxwZSxwZSksdz1ifWY9ZisxfDB9cmV0dXJuIDc9PSgwfGJlKSYmKCRyKDEsOTMyNDIsTSksZj0xKSxGdChLKSxGdChwZSksRnQoZ2UpLEZ0KEQpLEZ0KFIpLEZ0KEcpLGxlPU9lLDB8Zn0obCxmLEQsYywuMDAxLHAp''@;'; + put 'put ''LEZ0KDB8YVtNPj4yXSksQT0wOyEoKDB8QSk+PSgwfGMpKTspYVtsKygyMCpBfDApKzg+PjJdPW0sbT1tKyhhW2wrKDIwKkF8MCk+PjJdPDwyKXwwLEE9QSsxfDA7cmV0dXJuIEZ0KEQpLHc+Pj4zMXwwfWZ1bmN0aW9uIFlWKGwsYyxmLHAsbSxBLHcsYixrKXtsfD0wLHc9K3csbD1sZSxsZT1s''@;'; + put 'put ''ZSsxNnwwLDB8YVs0NjkxM118fChhWzQ2OTEzXT0xLCRyKDEsOTM4MjAsbCkpLGxlPWx9ZnVuY3Rpb24gUDJlKGwsYyxmLHApe3ZhciBtLEEsdyxiLGs7cmV0dXJuIGx8PTAsY3w9MCxmfD0wLG09bGUsbGU9bGUrMzJ8MCxrPW0rMjB8MCxiPW0rMTJ8MCx3PW0rOHwwLGFbKEE9bSsxNnwwKT4+''@;'; + put 'put ''Ml09cHw9MCxhW2I+PjJdPTAsYVt3Pj4yXT0wLGZ1bmN0aW9uIFBoKGwsYyxmLHApe3ZhciBtLEE7bHw9MCxjfD0wLHB8PTAsbT1sZSxsZT1sZSsxNnwwLGZ1bmN0aW9uICRmKGwsYyl7YVsobHw9MCk+PjJdPTB8UW4oKGN8PTApPDw0KSxhW2wrND4+Ml09YyxhW2wrOD4+Ml09MH0oQT1tLGZ8''@;'; + put 'put ''PTApLGZ1bmN0aW9uIHFmKGwsYyxmLHApe2x8PTAsZnw9MCxwfD0wO3ZhciBrLE0sRCxSLEsscGUsZ2UsT2UsTGUsUmUsbnQsb3QsU3QsbT0wLEE9MCx3PTAsYj0wLEc9MCxiZT0wLEhlPTAsVmU9MCxxZT0wLFdlPTA7Zm9yKFN0PWxlLGxlPWxlKzY0fDAscGU9U3QrMzJ8MCxPZT1TdCs0OHww''@;'; + put 'put ''LExlPVN0KzE2fDAsUmU9U3QsbnQ9MHxRbihiZT0oY3w9MCk8PDIpLG90PTB8UW4oYmUpLGFbTGU+PjJdPTAsYVtMZSs0Pj4yXT0wLGFbTGUrOD4+Ml09MCxhW0xlKzEyPj4yXT0wLGdlPTB8UW4oYmUpLGJlPTB8UW4oYmUpLG09MDshKCgwfG0pPj0oMHxjKSk7KWFbZ2UrKG08PDIpPj4yXT1t''@;'; + put 'put ''LG09bSsxfDA7Zm9yKFE3KGwsZ2UsMCxLPWMrLTF8MCksbT0wOyEoKDB8bSk+PSgwfGMpKTspYVtiZSsoYVtnZSsobTw8Mik+PjJdPDwyKT4+Ml09bSxtPW0rMXwwO2ZvcihmdW5jdGlvbiB2UChsLGMsZixwKXtjfD0wLGZ8PTA7dmFyIG0sQT0wLHc9MCxiPTAsaz0wLE09MDtmb3IoYVs0Kyhs''@;'; + put 'put ''fD0wKT4+Ml09bT0ocHw9MCktMXwwLGFbbCs4Pj4yXT1tLGFbbD4+Ml09MHxRbihtPDw0KSxwPTA7ISgoMHxwKT49KDB8bSkpOyliPStfW2MrKChrPTB8YVtmKygoQT1wKzF8MCk8PDIpPj4yXSk8PDMpPj4zXS0rX1tjKygoTT0wfGFbZisocDw8Mik+PjJdKTw8Myk+PjNdLGFbKHc9MHxhW2w+''@;'; + put 'put ''PjJdKSsocDw8NCk+PjJdPU0sYVt3KyhwPDw0KSs0Pj4yXT1rLF9bdysocDw8NCkrOD4+M109YixwPUE7Zm9yKHA9KDB8bSkvMnwwOyEoKDB8cCk8PS0xKTspXzUobCxwKSxwPXArLTF8MH0oT2UsbCxnZSxjKSxtPTE7Oyl7aWYoKDB8bSk+PSgwfGMpKXttPTA7YnJlYWt9YVtudCsoYVtnZSso''@;'; + put 'put ''bTw8Mik+PjJdPDwyKT4+Ml09YVtnZSsobSstMTw8Mik+PjJdLG09bSsxfDB9Zm9yKDshKCgwfG0pPj0oMHxLKSk7KWFbb3QrKGFbZ2UrKG08PDIpPj4yXTw8Mik+PjJdPWFbZ2UrKChHPW0rMXwwKTw8Mik+PjJdLG09Rztmb3Ioaz1wKzh8MCxNPXArNHwwLEQ9TGUrNHwwLFI9UmUrNHwwLEc9''@;'; + put 'put ''UmUrOHwwLGI9MDshKCgwfGIpPj0oMHxmKSkmJigwfEFQKE9lLExlKSk8PDI0Pj4yNDspKDB8KG09MHxhW2s+PjJdKSk8KDB8KGM9MHxhW00+PjJdKSk/Yz0wfGFbcD4+Ml06KGFbTT4+Ml09Yzw8MSxjPTB8VWEoMHxhW3A+PjJdLGM8PDUpLGFbcD4+Ml09YyxtPTB8YVtrPj4yXSksYVtrPj4y''@;'; + put 'put ''XT1tKzEsYVsobT1jKyhtPDw0KXwwKT4+Ml09YVtMZT4+Ml0sYVttKzQ+PjJdPWFbTGUrND4+Ml0sYVttKzg+PjJdPWFbTGUrOD4+Ml0sYVttKzEyPj4yXT1hW0xlKzEyPj4yXSx3PTB8YVtiZSsoKEE9MHxhW0Q+PjJdKTw8Mik+PjJdLCgwfChjPTB8YVtiZSsoKG09MHxhW0xlPj4yXSk8PDIp''@;'; + put 'put ''Pj4yXSkpPjAmJigwfGFbYmUrKGFbKFZlPW90KygoSGU9MHxhW2dlKyhjKy0xPDwyKT4+Ml0pPDwyKXwwKT4+Ml08PDIpPj4yXSk8KDB8dykmJihhW1JlPj4yXT1IZSxhW1I+PjJdPUEsX1tHPj4zXT0rX1tsKyhBPDwzKT4+M10tK19bbCsoSGU8PDMpPj4zXSxhW3BlPj4yXT1hW1JlPj4yXSxh''@;'; + put 'put ''W3BlKzQ+PjJdPWFbUmUrND4+Ml0sYVtwZSs4Pj4yXT1hW1JlKzg+PjJdLGFbcGUrMTI+PjJdPWFbUmUrMTI+PjJdLGp4KE9lLHBlKSxhW1ZlPj4yXT1BLGFbbnQrKEE8PDIpPj4yXT1IZSksKDB8dyk8KDB8SykmJigwfGFbYmUrKGFbKFdlPW50KygocWU9MHxhW2dlKyh3KzE8PDIpPj4yXSk8''@;'; + put 'put ''PDIpfDApPj4yXTw8Mik+PjJdKT4oMHxjKSYmKGFbUmU+PjJdPW0sYVtSPj4yXT1xZSxfW0c+PjNdPStfW2wrKHFlPDwzKT4+M10tK19bbCsobTw8Myk+PjNdLGFbcGU+PjJdPWFbUmU+PjJdLGFbcGUrND4+Ml09YVtSZSs0Pj4yXSxhW3BlKzg+PjJdPWFbUmUrOD4+Ml0sYVtwZSsxMj4+Ml09''@;'; + put 'put ''YVtSZSsxMj4+Ml0sangoT2UscGUpLGFbV2U+PjJdPW0sYVtvdCsobTw8Mik+PjJdPXFlKSxiPWIrMXwwO0Z0KG50KSxGdChvdCksRnQoZ2UpLEZ0KGJlKSxmdW5jdGlvbiB6XyhsKXtGdCgwfGFbKGx8PTApPj4yXSl9KE9lKSxsZT1TdH0obCxjLGYsQSksZnVuY3Rpb24gSHgobCxjLGYpe2N8''@;'; + put 'put ''PTAsZnw9MDt2YXIgYixrLE0scD0wLG09MCxBPTAsdz0wLEQ9MCxSPTA7Zm9yKGs9MHxRbigobHw9MCk8PDIpLHA9MHxRbihBPShiPSgodz0wfGFbKE09Yys4fDApPj4yXSk8PDEpK2x8MCk8PDIpLEE9MHxRbihBKSxtPTA7ISgoMHxtKT49KDB8bCkpOylhW2srKG08PDIpPj4yXT0xLG09bSsx''@;'; + put 'put ''fDA7Zm9yKG09MDs7KXtpZigoMHxtKT49KDB8dykpe209MDticmVha31EPTB8YVsoUj0wfGFbYz4+Ml0pKyhtPDw0KSs0Pj4yXSxhWyhSPWsrKGFbUisobTw8NCk+PjJdPDwyKXwwKT4+Ml09MSsoMHxhW1I+PjJdKSxhWyhEPWsrKEQ8PDIpfDApPj4yXT0xKygwfGFbRD4+Ml0pLG09bSsxfDB9''@;'; + put 'put ''Zm9yKDshKCgwfG0pPj0oMHxiKSk7KWpuW0ErKG08PDIpPj4yXT0xLG09bSsxfDA7Zm9yKHc9MHxRbigyMCpsfDApLGFbZj4+Ml09dyxtPTA7ISgoMHxtKT49KDB8bCkpOylhW3crKDIwKm18MCk+PjJdPTEsYVt3KygyMCptfDApKzg+PjJdPUEsYVt3KygyMCptfDApKzQ+PjJdPXAsYVtwPj4y''@;'; + put 'put ''XT1tLGpuW0E+PjJdPTAsQT1BKygoUj0wfGFbaysobTw8Mik+PjJdKTw8Mil8MCxwPXArKFI8PDIpfDAsbT1tKzF8MDtmb3IoRnQoayk7cD0wfGFbTT4+Ml07KWFbTT4+Ml09Uj1wKy0xfDAsVngodywwfGFbKEQ9MHxhW2M+PjJdKSsoUjw8NCk+PjJdLDB8YVtEKyhSPDw0KSs0Pj4yXSl9KGMs''@;'; + put 'put ''QSxwKSxmdW5jdGlvbiBOeChsKXtGdCgwfGFbKGx8PTApPj4yXSl9KEEpLGxlPW19KDB8YVtsPj4yXSxmLGY8PDIsayksbEsoMHxhW2s+PjJdLGwsZixjLGIpLGZ1bmN0aW9uIGFLKGwsYyxmLHAsbSxBKXtsfD0wLGN8PTAsZnw9MCxwfD0wLG18PTA7dmFyIHc9MCxiPTAsaz0wLE09MCxEPTAs''@;'; + put 'put ''Uj0wO2ZvcigoYj0wfGFbKEF8PTApPj4yXSk/KHc9MHxVYSgwfGFbYj4+Ml0sMHxBcihmPDwzLG0pKSxSPTB8VWEoYixmPDwyKSk6KHc9MHxCMCgwfEFyKGY8PDMsbSkpLFI9MHxCMChmPDwyKSksYVtBPj4yXT1SLGI9MDs7KXtpZigoMHxiKT49KDB8Zikpe0E9MDticmVha31hW1IrKGI8PDIp''@;'; + put 'put ''Pj4yXT13LGI9YisxfDAsdz13KyhtPDwzKXwwfWZvcig7ISgoMHxBKT49KDB8ZikpOyl7Zm9yKE09bCsoQTw8Mil8MCxEPVIrKEE8PDIpfDAsYj0wOygwfGIpPCgwfG0pOyl7Zm9yKGs9MCx3PTA7ISgoMHx3KT49KDB8cCkpOylrPStfWygwfGFbTT4+Ml0pKyh3PDwzKT4+M10qK2puWygwfGFb''@;'; + put 'put ''Yysodzw8Mik+PjJdKSsoYjw8Mik+PjJdK2ssdz13KzF8MDtfWygwfGFbRD4+Ml0pKyhiPDwzKT4+M109ayxiPWIrMXwwfUE9QSsxfDB9fShsLDB8YVtiPj4yXSxjLGYsYyx3KSxGdCgwfGFbYVtiPj4yXT4+Ml0pLEZ0KDB8YVtiPj4yXSkscD0yNTUmKDB8b0soMHxhW3c+PjJdLGMsMSxBLG0s''@;'; + put 'put ''MSkpLGxlPW0sMHxwfWZ1bmN0aW9uIGQ5ZShsKXtGdCgwfGFbMzYrKGx8PTApPj4yXSl9ZnVuY3Rpb24gSDJlKGwsYyl7bHw9MCxjfD0wO3ZhciBmPTAscD0wO2Rve2lmKDQ9PSgwfGMpKXtpZihjPWwrMTZ8MCwoZj0rX1tsKzg+PjNdKT09KHA9K19bbCsyND4+M10pKXtpZigrX1tsKzQwPj4z''@;'; + put 'put ''XSE9K19bbCs1Nj4+M10pe2M9MDticmVha31pZigrX1tsPj4zXSE9K19bbCs0OD4+M10pe2M9MDticmVha31jPStfW2M+PjNdPT0rX1tsKzMyPj4zXTticmVha31jPStfW2w+PjNdPT0rX1tjPj4zXSYmK19bbCszMj4+M109PStfW2wrNDg+PjNdJiZmPT0rX1tsKzU2Pj4zXT9wPT0rX1tsKzQw''@;'; + put 'put ''Pj4zXTowfWVsc2UgYz0wfXdoaWxlKDApO3JldHVybiAxJmN8MH1mdW5jdGlvbiBVVihsLGMsZixwKXtjfD0wLGY9K2YscD0rcDt2YXIgQSx3LGIsbT0wLGs9MCxNPTA7Zm9yKGI9MHxRbigodz0oMHwobT0obT0wfExpKGx8PTAsMTAyNzA1KSk/MHxyMyhtKTowKSk8Mz8yMDptKTw8NCksbD1s''@;'; + put 'put ''KzE2fDAsQT0xLysoMHx3KSxtPTA7ISgoMHxtKT49KDB8dykpOylfW2IrKG08PDQpPj4zXT0oLjUqK19bMzIrKE09MHxhW2w+PjJdKT4+M10rZikqK2hhKCsoaz1BKisoMHxtKSo2LjI4MzE4NTMwNzE3OTU4NikpLF9bYisobTw8NCkrOD4+M109KC41KitfW00rNDA+PjNdK3ApKitEYSgrayks''@;'; + put 'put ''bT1tKzF8MDtyZXR1cm4gYVtjPj4yXT13LDB8Yn1mdW5jdGlvbiBRVihsLGMsZixwLG0pe2Z8PTAsbT0rbSxfWyhsfD0wKT4+M109LjAxMzg4ODg4ODg4ODg4ODg4OCorKDB8KGN8PTApKSsocD0rcCksX1tsKzg+PjNdPS4wMTM4ODg4ODg4ODg4ODg4ODgqKygwfGYpK219ZnVuY3Rpb24gTjJl''@;'; + put 'put ''KGwsYyxmLHApe2N8PTAsZnw9MCxwfD0wO3ZhciBtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wO2ZvcihtPTEsQT1iPStfWzgrKGx8PTApPj4zXSx3PWs9K19bbD4+M107ISgoMHxtKT49KDB8YykpOyltPW0rMXwwLEE9KFI9K19bbCsyND4+M10pPkE/UjpBLHc9KEQ9K19bKE09bCsx''@;'; + put 'put ''NnwwKT4+M10pPnc/RDp3LGI9UjxiP1I6YixrPUQ8az9EOmssbD1NO19bZj4+M109ayxfW2YrOD4+M109YixfW3A+PjNdPXcsX1twKzg+PjNdPUF9ZnVuY3Rpb24gS0QobCxjLGYpe2Y9K2YsX1sobHw9MCk+PjNdPS4wMTM4ODg4ODg4ODg4ODg4ODgqKGM9K2MpLF9bbCs4Pj4zXT0uMDEzODg4''@;'; + put 'put ''ODg4ODg4ODg4ODg4KmZ9ZnVuY3Rpb24gbTllKGwsYyxmLHApe2N8PTAsZnw9MCxwfD0wO3ZhciBiLE0sRCxSLEcscGUsbT0wLEE9MCx3PTAsaz0wLEs9MCxnZT0wLGJlPTAsT2U9MCxMZT0wO3BlPWxlLGxlPWxlKzEyOHwwLFI9cGUrMTEyfDAsTT1wZSs4MHwwLG09cGUrNjR8MCxHPXBlKzQ4''@;'; + put 'put ''fDAsSz1wZSszMnwwLGI9cGUrMTZ8MCxrPXBlLGFbKEQ9cGUrOTZ8MCk+PjJdPWFbKGx8PTApPj4yXSxhW0QrND4+Ml09YVtsKzQ+PjJdLGFbRCs4Pj4yXT1hW2wrOD4+Ml0sYVtEKzEyPj4yXT1hW2wrMTI+PjJdLGFbUj4+Ml09YVtjPj4yXSxhW1IrND4+Ml09YVtjKzQ+PjJdLGFbUis4Pj4y''@;'; + put 'put ''XT1hW2MrOD4+Ml0sYVtSKzEyPj4yXT1hW2MrMTI+PjJdLE9WKEcsRCxSKSxBPWMrMTZ8MCxhW0Q+PjJdPWFbbD4+Ml0sYVtEKzQ+PjJdPWFbbCs0Pj4yXSxhW0QrOD4+Ml09YVtsKzg+PjJdLGFbRCsxMj4+Ml09YVtsKzEyPj4yXSxhW1I+PjJdPWFbQT4+Ml0sYVtSKzQ+PjJdPWFbQSs0Pj4y''@;'; + put 'put ''XSxhW1IrOD4+Ml09YVtBKzg+PjJdLGFbUisxMj4+Ml09YVtBKzEyPj4yXSxPVihLLEQsUiksYVtEPj4yXT1hW2Y+PjJdLGFbRCs0Pj4yXT1hW2YrND4+Ml0sYVtEKzg+PjJdPWFbZis4Pj4yXSxhW0QrMTI+PjJdPWFbZisxMj4+Ml0sYVtSPj4yXT1hW3A+PjJdLGFbUis0Pj4yXT1hW3ArND4+''@;'; + put 'put ''Ml0sYVtSKzg+PjJdPWFbcCs4Pj4yXSxhW1IrMTI+PjJdPWFbcCsxMj4+Ml0sT1YoYixELFIpLHc9cCsxNnwwLGFbRD4+Ml09YVtmPj4yXSxhW0QrND4+Ml09YVtmKzQ+PjJdLGFbRCs4Pj4yXT1hW2YrOD4+Ml0sYVtEKzEyPj4yXT1hW2YrMTI+PjJdLGFbUj4+Ml09YVt3Pj4yXSxhW1IrND4+''@;'; + put 'put ''Ml09YVt3KzQ+PjJdLGFbUis4Pj4yXT1hW3crOD4+Ml0sYVtSKzEyPj4yXT1hW3crMTI+PjJdLE9WKGssRCxSKSxhW20+PjJdPWFbRz4+Ml0sYVttKzQ+PjJdPWFbRys0Pj4yXSxhW20rOD4+Ml09YVtHKzg+PjJdLGFbbSsxMj4+Ml09YVtHKzEyPj4yXSxhW00+PjJdPWFbSz4+Ml0sYVtNKzQ+''@;'; + put 'put ''PjJdPWFbSys0Pj4yXSxhW00rOD4+Ml09YVtLKzg+PjJdLGFbTSsxMj4+Ml09YVtLKzEyPj4yXSxhW0Q+PjJdPWFbYj4+Ml0sYVtEKzQ+PjJdPWFbYis0Pj4yXSxhW0QrOD4+Ml09YVtiKzg+PjJdLGFbRCsxMj4+Ml09YVtiKzEyPj4yXSxhW1I+PjJdPWFbaz4+Ml0sYVtSKzQ+PjJdPWFbays0''@;'; + put 'put ''Pj4yXSxhW1IrOD4+Ml09YVtrKzg+PjJdLGFbUisxMj4+Ml09YVtrKzEyPj4yXTtkb3tpZigwfHY5ZShtLE0sRCxSKSl7aWYoMSYobT0wfGFbYys0MD4+Ml0pfDAmJjEmYVtwKzQwPj4yXXwwKXttPTE7YnJlYWt9aWYoMiZtfDAmJjImYVtwKzQwPj4yXXwwKXttPSEoKE9lPStfW2wrOD4+M10t''@;'; + put 'put ''K19bZis4Pj4zXSkqT2UrKGJlPStfW2w+PjNdLStfW2Y+PjNdKSpiZT4oZ2U9K19bQT4+M10tK19bYz4+M10rICtfW3c+PjNdLStfW3A+PjNdKSpnZSouMjUpO2JyZWFrfWlmKChtPTB8YVs0NjkxNV0pP3c9MHxhWzQ2OTE2XTooYVs0NjkxNV09MHxRbihhWzQ2OTE0XTw8NCksdz0wfFFuKGFb''@;'; + put 'put ''NDY5MTRdPDw0KSxhWzQ2OTE2XT13LG09MHxhWzQ2OTE1XSksTGU9MHxhW2MrMzY+PjJdLEE9MHxhWyhjPWMrMzJ8MCk+PjJdLGFbUj4+Ml09YVtsPj4yXSxhW1IrND4+Ml09YVtsKzQ+PjJdLGFbUis4Pj4yXT1hW2wrOD4+Ml0sYVtSKzEyPj4yXT1hW2wrMTI+PjJdLGhLKExlLEEsUixtKSxs''@;'; + put 'put ''PTB8YVtwKzM2Pj4yXSxwPTB8YVsoQT1wKzMyfDApPj4yXSxhW1I+PjJdPWFbZj4+Ml0sYVtSKzQ+PjJdPWFbZis0Pj4yXSxhW1IrOD4+Ml09YVtmKzg+PjJdLGFbUisxMj4+Ml09YVtmKzEyPj4yXSxoSyhsLHAsUix3KSwwfEE5ZShtLHcsMHxhW2M+PjJdLDB8YVtBPj4yXSkpbT0xO2Vsc2V7''@;'; + put 'put ''aWYoYVtNPj4yXT1hWyhtPTB8YVs0NjkxNV0pPj4yXSxhW00rND4+Ml09YVttKzQ+PjJdLGFbTSs4Pj4yXT1hW20rOD4+Ml0sYVtNKzEyPj4yXT1hW20rMTI+PjJdLGFbRD4+Ml09YVtiPj4yXSxhW0QrND4+Ml09YVtiKzQ+PjJdLGFbRCs4Pj4yXT1hW2IrOD4+Ml0sYVtEKzEyPj4yXT1hW2Ir''@;'; + put 'put ''MTI+PjJdLGFbUj4+Ml09YVtrPj4yXSxhW1IrND4+Ml09YVtrKzQ+PjJdLGFbUis4Pj4yXT1hW2srOD4+Ml0sYVtSKzEyPj4yXT1hW2srMTI+PjJdLDB8VjJlKE0sRCxSKSYmKGs9MHxhWzQ2OTE2XSxMZT0wfGFbQT4+Ml0sYVtSPj4yXT1hW20+PjJdLGFbUis0Pj4yXT1hW20rND4+Ml0sYVtS''@;'; + put 'put ''Kzg+PjJdPWFbbSs4Pj4yXSxhW1IrMTI+PjJdPWFbbSsxMj4+Ml0sMHxqMmUoayxMZSxSKSkpe209MTticmVha31hW00+PjJdPWFbKG09MHxhWzQ2OTE2XSk+PjJdLGFbTSs0Pj4yXT1hW20rND4+Ml0sYVtNKzg+PjJdPWFbbSs4Pj4yXSxhW00rMTI+PjJdPWFbbSsxMj4+Ml0sYVtEPj4yXT1h''@;'; + put 'put ''W0c+PjJdLGFbRCs0Pj4yXT1hW0crND4+Ml0sYVtEKzg+PjJdPWFbRys4Pj4yXSxhW0QrMTI+PjJdPWFbRysxMj4+Ml0sYVtSPj4yXT1hW0s+PjJdLGFbUis0Pj4yXT1hW0srND4+Ml0sYVtSKzg+PjJdPWFbSys4Pj4yXSxhW1IrMTI+PjJdPWFbSysxMj4+Ml0sMHxWMmUoTSxELFIpPyhLPTB8''@;'; + put 'put ''YVs0NjkxNV0sTGU9MHxhW2M+PjJdLGFbUj4+Ml09YVttPj4yXSxhW1IrND4+Ml09YVttKzQ+PjJdLGFbUis4Pj4yXT1hW20rOD4+Ml0sYVtSKzEyPj4yXT1hW20rMTI+PjJdLG09MCE9KDB8ajJlKEssTGUsUikpKTptPTB9fWVsc2UgbT0wfXdoaWxlKDApO3JldHVybiBsZT1wZSwxJm18MH1m''@;'; + put 'put ''dW5jdGlvbiB2OWUobCxjLGYscCl7cmV0dXJuIGN8PTAsZnw9MCwwfCgrX1sobHw9MCk+PjNdPD0rX1socHw9MCk+PjNdJiYrX1tmPj4zXTw9K19bYz4+M10mJitfW2wrOD4+M108PStfW3ArOD4+M10/K19bZis4Pj4zXTw9K19bYys4Pj4zXSYxOjApfWZ1bmN0aW9uIGhLKGwsYyxmLHApe2x8''@;'; + put 'put ''PTAsY3w9MCxwfD0wO3ZhciBBLG09MDtmb3IoQT04KyhmfD0wKXwwLG09MDshKCgwfG0pPj0oMHxjKSk7KV9bcD4+M109K19bZj4+M10rICtfW2w+PjNdLF9bcCs4Pj4zXT0rX1tBPj4zXSsgK19bbCs4Pj4zXSxtPW0rMXwwLGw9bCsxNnwwLHA9cCsxNnwwfWZ1bmN0aW9uIEE5ZShsLGMsZixw''@;'; + put 'put ''KXtsfD0wLGN8PTA7dmFyIEsscGUsZ2UsYmUsT2UsTGUsUmUsSGUsVmUscWUsbnQsV2UsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAsb3Q9MCxTdD0wO2ZvcihXZT1sZSxsZT1sZSsxMTJ8MCxiZT1XZSs5NnwwLGdlPVdlKzgwfDAscGU9V2UrNjR8MCxLPVdlKzQ4fDAsTGU9''@;'; + put 'put ''V2UrMzJ8MCxSZT1XZSsxNnwwLEhlPVdlLFZlPShmfD0wKS0xfDAscWU9KHB8PTApLTF8MCxudD1mPDwxLE9lPXA8PDEsbT0wLEE9MCx3PTAsYj0wOzspe2lmKFN0PWwrKCgoVmUrbXwwKSUoMHxmKXwwKTw8NCl8MCxhW2dlPj4yXT1hWyhvdD1sKyhtPDw0KXwwKT4+Ml0sYVtnZSs0Pj4yXT1h''@;'; + put 'put ''W290KzQ+PjJdLGFbZ2UrOD4+Ml09YVtvdCs4Pj4yXSxhW2dlKzEyPj4yXT1hW290KzEyPj4yXSxhW2JlPj4yXT1hW1N0Pj4yXSxhW2JlKzQ+PjJdPWFbU3QrND4+Ml0sYVtiZSs4Pj4yXT1hW1N0Kzg+PjJdLGFbYmUrMTI+PjJdPWFbU3QrMTI+PjJdLFpYKExlLGdlLGJlKSxSPWMrKCgocWUr''@;'; + put 'put ''QXwwKSUoMHxwKXwwKTw8NCl8MCxhW2dlPj4yXT1hWyhHPWMrKEE8PDQpfDApPj4yXSxhW2dlKzQ+PjJdPWFbRys0Pj4yXSxhW2dlKzg+PjJdPWFbRys4Pj4yXSxhW2dlKzEyPj4yXT1hW0crMTI+PjJdLGFbYmU+PjJdPWFbUj4+Ml0sYVtiZSs0Pj4yXT1hW1IrND4+Ml0sYVtiZSs4Pj4yXT1h''@;'; + put 'put ''W1IrOD4+Ml0sYVtiZSsxMj4+Ml09YVtSKzEyPj4yXSxaWChSZSxnZSxiZSksYVtwZT4+Ml09YVs0NjU0MF0sYVtwZSs0Pj4yXT1hWzQ2NTQxXSxhW3BlKzg+PjJdPWFbNDY1NDJdLGFbcGUrMTI+PjJdPWFbNDY1NDNdLGFbZ2U+PjJdPWFbTGU+PjJdLGFbZ2UrND4+Ml09YVtMZSs0Pj4yXSxh''@;'; + put 'put ''W2dlKzg+PjJdPWFbTGUrOD4+Ml0sYVtnZSsxMj4+Ml09YVtMZSsxMj4+Ml0sYVtiZT4+Ml09YVtSZT4+Ml0sYVtiZSs0Pj4yXT1hW1JlKzQ+PjJdLGFbYmUrOD4+Ml09YVtSZSs4Pj4yXSxhW2JlKzEyPj4yXT1hW1JlKzEyPj4yXSxrPStQayhwZSxnZSxiZSksYVtwZT4+Ml09YVtTdD4+Ml0s''@;'; + put 'put ''YVtwZSs0Pj4yXT1hW1N0KzQ+PjJdLGFbcGUrOD4+Ml09YVtTdCs4Pj4yXSxhW3BlKzEyPj4yXT1hW1N0KzEyPj4yXSxhW2dlPj4yXT1hW290Pj4yXSxhW2dlKzQ+PjJdPWFbb3QrND4+Ml0sYVtnZSs4Pj4yXT1hW290Kzg+PjJdLGFbZ2UrMTI+PjJdPWFbb3QrMTI+PjJdLGFbYmU+PjJdPWFb''@;'; + put 'put ''Rz4+Ml0sYVtiZSs0Pj4yXT1hW0crND4+Ml0sYVtiZSs4Pj4yXT1hW0crOD4+Ml0sYVtiZSsxMj4+Ml09YVtHKzEyPj4yXSxNPTB8UHkocGUsZ2UsYmUpLGFbcGU+PjJdPWFbUj4+Ml0sYVtwZSs0Pj4yXT1hW1IrND4+Ml0sYVtwZSs4Pj4yXT1hW1IrOD4+Ml0sYVtwZSsxMj4+Ml09YVtSKzEy''@;'; + put 'put ''Pj4yXSxhW2dlPj4yXT1hW0c+PjJdLGFbZ2UrND4+Ml09YVtHKzQ+PjJdLGFbZ2UrOD4+Ml09YVtHKzg+PjJdLGFbZ2UrMTI+PjJdPWFbRysxMj4+Ml0sYVtiZT4+Ml09YVtvdD4+Ml0sYVtiZSs0Pj4yXT1hW290KzQ+PjJdLGFbYmUrOD4+Ml09YVtvdCs4Pj4yXSxhW2JlKzEyPj4yXT1hW290''@;'; + put 'put ''KzEyPj4yXSxEPTB8UHkocGUsZ2UsYmUpLGFbSz4+Ml09YVtTdD4+Ml0sYVtLKzQ+PjJdPWFbU3QrND4+Ml0sYVtLKzg+PjJdPWFbU3QrOD4+Ml0sYVtLKzEyPj4yXT1hW1N0KzEyPj4yXSxhW3BlPj4yXT1hW290Pj4yXSxhW3BlKzQ+PjJdPWFbb3QrND4+Ml0sYVtwZSs4Pj4yXT1hW290Kzg+''@;'; + put 'put ''PjJdLGFbcGUrMTI+PjJdPWFbb3QrMTI+PjJdLGFbZ2U+PjJdPWFbUj4+Ml0sYVtnZSs0Pj4yXT1hW1IrND4+Ml0sYVtnZSs4Pj4yXT1hW1IrOD4+Ml0sYVtnZSsxMj4+Ml09YVtSKzEyPj4yXSxhW2JlPj4yXT1hW0c+PjJdLGFbYmUrND4+Ml09YVtHKzQ+PjJdLGFbYmUrOD4+Ml09YVtHKzg+''@;'; + put 'put ''PjJdLGFbYmUrMTI+PjJdPWFbRysxMj4+Ml0sMHxaRChLLHBlLGdlLGJlLEhlKSl7bT0xO2JyZWFrfVI9MD09KDB8TSksRz0wPT0oMHxEKTtkb3tpZigwIT1rfDAhPShEfE18MCkpe2lmKGs+PTApe2lmKFIpe0E9KEErMXwwKSUoMHxwKXwwLGI9YisxfDA7YnJlYWt9bT0obSsxfDApJSgwfGYp''@;'; + put 'put ''fDAsdz13KzF8MDticmVha31pZihHKXttPShtKzF8MCklKDB8Zil8MCx3PXcrMXwwO2JyZWFrfUE9KEErMXwwKSUoMHxwKXwwLGI9YisxfDA7YnJlYWt9bT0obSsxfDApJSgwfGYpfDAsdz13KzF8MH13aGlsZSgwKTtpZighKCgwfGIpPCgwfE9lKSYoMHx3KTwoMHxudCkmKCgwfGIpPCgwfHAp''@;'; + put 'put ''fCgwfHcpPCgwfGYpKSkpe209MDticmVha319cmV0dXJuIGxlPVdlLDB8bX1mdW5jdGlvbiBWMmUobCxjLGYpe2N8PTA7dmFyIG0scD0wO3JldHVybiAwfCgobT0rX1sobHw9MCk+PjNdKTw9K19bKGZ8PTApPj4zXSYmbT49K19bYz4+M10mJihwPStfW2wrOD4+M10pPD0rX1tmKzg+PjNdP3A+''@;'; + put 'put ''PStfW2MrOD4+M10mMTowKX1mdW5jdGlvbiBqMmUobCxjLGYpe2x8PTAsY3w9MCxmfD0wO3ZhciBwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTA7Zm9yKChwPTB8YVs0NjkxN10pfHwocD0wfFFuKGFbNDY5MTRdPDw0KSxhWzQ2OTE3XT1wKSx3PWYrOHwwLEE9MDshKCgwfEEpPj0oMHxjKSk7''@;'; + put 'put ''KV9bcCsoQTw8NCk+PjNdPStfW2wrKEE8PDQpPj4zXS0rX1tmPj4zXSxfW3ArKEE8PDQpKzg+PjNdPStfW2wrKEE8PDQpKzg+PjNdLStfW3c+PjNdLEE9QSsxfDA7Zj1jKy0xfDAsbT0wLGw9MDtlOmZvcig7Oyl7aWYoKDB8bCk+PSgwfGMpKXtNPTE5O2JyZWFrfWlmKEE9KGYrbHwwKSUoMHxj''@;'; + put 'put ''KXwwLCh3PTA9PShiPStfW3ArKGw8PDQpKzg+PjNdKSkmJjA9PStfW3ArKEE8PDQpKzg+PjNdKXtpZigrX1twKyhBPDw0KT4+M10qK19bcCsobDw8NCk+PjNdPDApe3A9MTticmVha319ZWxzZSBNPTExO2Rve2lmKDExPT0oMHxNKSl7aWYoTT0wLCEoYj49MCl8ISgoaz0rX1twKyhBPDw0KSs4''@;'; + put 'put ''Pj4zXSk8PTApJiYhKGs+PTApfCEoYjw9MCkpYnJlYWs7aWYoMD09KGI9KGsqK19bcCsobDw8NCk+PjNdLWIqK19bcCsoQTw8NCk+PjNdKS8oay1iKSkpe3A9MTticmVhayBlfWlmKGI+MCl7aWYoMD09a3x3KXttKz0uNTticmVha31tKz0xO2JyZWFrfX19d2hpbGUoMCk7bD1sKzF8MH1yZXR1''@;'; + put 'put ''cm4gMTk9PSgwfE0pJiYocD0xPT0oMHwoMHx+fm0pJTIpJjEpLDB8cH1mdW5jdGlvbiBkSyhsLGMpe2x8PTA7dmFyIGssZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsTT0wO2ZvcihrPTB8UW4oKGN8PTApPDwyKSxmPTB8UW4oKGI9MHxBcihjLGMpKTw8MiksYVtrPj4yXT1mLGp5KGIsMCxmKSxm''@;'; + put 'put ''PTE7Oyl7aWYoKDB8Zik+PSgwfGMpKXtmPTAsQT0wLGI9YzticmVha31hW2srKGY8PDIpPj4yXT0oMHxhW2s+PjJdKSsoKDB8QXIoZixjKSk8PDIpLGY9ZisxfDB9Zm9yKDshKCgwfEEpPj0oMHxjKSk7KXtmb3Iodz1rKyhBPDwyKXwwLHA9QSxtPWY7KDB8cCkhPSgwfGMpOylhWygwfGFbdz4+''@;'; + put 'put ''Ml0pKyhwPDwyKT4+Ml09TT0wfGFbbCsobTw8Mik+PjJdLGFbKDB8YVtrKyhwPDwyKT4+Ml0pKyhBPDwyKT4+Ml09TSxwPXArMXwwLG09bSsxfDA7Zj1mK2J8MCxBPUErMXwwLGI9YistMXwwfXJldHVybiAwfGt9ZnVuY3Rpb24geTllKGwsYyxmLHAsbSxBLHcsYil7Y3w9MCxwfD0wLEF8PTAs''@;'; + put 'put ''d3w9MCxiPStiO3ZhciBvdCxTdCxrdCxzdCxFdCxIbixrPTAsTT0wLEQ9MCxSPTAsRz0wLEs9MCxwZT0wLGdlPTAsYmU9MCxPZT0wLExlPTAsUmU9MCxIZT0wLFZlPTAscWU9MCxudD0wLFdlPTAsWnQ9MCxjdD0wLGJ0PTAsYW49MCxTbj0wLHVyPTA7SG49MHxhWyhmfD0wKSsoKG18PTApPDwy''@;'; + put 'put ''KT4+Ml0sb3Q9MHxhWzQrKGx8PTApPj4yXSxTdD0wfGFbbD4+Ml0sa3Q9MHxhW2wrNDg+PjJdLHN0PTB8YVtsKzUyPj4yXSxFdD0wfGFbbCs1Nj4+Ml07ZTpkb3tpZigoMHxBKTwxKWY9MDtlbHNle2ZvcihaMmUoSG4sb3Qsa3Qsc3QsRXQsYiksWnQ9MHxhW2wrMjg+PjJdLGN0PTB8YVtsKzMy''@;'; + put 'put ''Pj4yXSxidD0wfGFbbCszNj4+Ml0sYW49MHxhW2wrMTI+PjJdLFNuPTB8YVtsKzE2Pj4yXSxtPTAscD0wLGY9LTE7ISgoMHxtKT49KDB8b3QpKTspKDB8bSk+PSgwfHApJiYoKDB8KGY9ZisxfDApKT09KDB8RXQpPyhwPW90LGY9RXQpOnA9MHxhW3N0KyhmPDwyKT4+Ml0pLGFbU24rKGFba3Qr''@;'; + put 'put ''KG08PDIpPj4yXTw8Mik+PjJdPWYsbT1tKzF8MDtmb3IobnQ9MHxhW2wrNDA+PjJdLFdlPWN0KyhvdCstMTw8Mil8MCxmPTAscD0wOzspe2lmKCEocDw8MjQ+PjI0PT0wJigwfGYpPCgwfEEpKSlicmVhayBlO2s9LTFlOSxtPTAscD0xO3Q6Zm9yKDs7KXtmb3IoVmU9bTs7KXtpZigoMHxWZSk+''@;'; + put 'put ''PSgwfG90KSlicmVhayB0O2ZvcihNPXFlPStqbltIbisoKG09MHxhW2t0KyhWZTw8Mik+PjJdKTw8Mik+PjJdLEhlPVZlLEQ9MDs7KXtpZihqbltudCsobTw8Mik+PjJdPUQsKDB8KG09SGUrMXwwKSk+PSgwfG90KSl7UmU9MDticmVha31pZigrZW8oKygoRD0ram5bSG4rKChsPTB8YVtrdCso''@;'; + put 'put ''bTw8Mik+PjJdKTw8Mik+PjJdKS0oTT0oMHxhW1NuKyhtPDwyKT4+Ml0pPigwfGFbU24rKEhlPDwyKT4+Ml0pP00rYjpNKSkpPjFlLTkpe1JlPTE7YnJlYWt9SGU9bSxELT1xZSxtPWx9Zm9yKFI9VmU7Oyl7aWYoKDB8Uik+KDB8SGUpKXtsPTAsRz1WZTticmVha31mb3IoSz0wfGFbU3QrKChH''@;'; + put 'put ''PTB8YVtrdCsoUjw8Mik+PjJdKTw8Mik+PjJdLGw9MCxNPS0ram5bYysoRzw8Mik+PjJdOyEoKDB8bCk+PSgwfG90KSk7KSgwfGwpIT0oMHxHKSYmKE09K2puW0huKyhsPDwyKT4+Ml0qK2puW0srKGw8PDIpPj4yXStNKSxsPWwrMXwwO2puW1p0KyhHPDwyKT4+Ml09TS8tK2puW0srKEc8PDIp''@;'; + put 'put ''Pj4yXS0ram5bbnQrKEc8PDIpPj4yXSxSPVIrMXwwfW46Zm9yKDs7KXtpZigoMHxHKT4oMHxIZSkpe0Q9MCxwZT0wLGdlPTA7YnJlYWt9Zm9yKGdlPSgwfChSPTB8YVtTbisoYVtrdCsoRzw8Mik+PjJdPDwyKT4+Ml0pKT09KDB8RXQpfHwoMHxtKTwoMHwoZ2U9MHxhW3N0KyhSPDwyKT4+Ml0p''@;'; + put 'put ''KT9tOmdlLEs9Rzs7KXtpZigoMHxLKT49KDB8Z2UpKXtLPUc7YnJlYWt9K2puW1p0KygoUj0wfGFba3QrKEs8PDIpPj4yXSk8PDIpPj4yXTxxZSYmKGFbYW4rKGw8PDIpPj4yXT1SLGw9bCsxfDApLEs9SysxfDB9Zm9yKDshKCgwfEspPj0oMHxnZSkpOykram5bWnQrKChSPTB8YVtrdCsoSzw8''@;'; + put 'put ''Mik+PjJdKTw8Mik+PjJdPT1xZSYmKGFbYW4rKGw8PDIpPj4yXT1SLGw9bCsxfDApLEs9SysxfDA7Zm9yKDs7KXtpZigoMHxHKT49KDB8Z2UpKXtHPWdlO2NvbnRpbnVlIG59K2puW1p0KygoUj0wfGFba3QrKEc8PDIpPj4yXSk8PDIpPj4yXT5xZSYmKGFbYW4rKGw8PDIpPj4yXT1SLGw9bCsx''@;'; + put 'put ''fDApLEc9RysxfDB9fWZvcig7ISgoMHxnZSk+PSgwfGwpKTspe2ZvcihLPTB8YVtTdCsoKEc9MHxhW2FuKyhnZTw8Mik+PjJdKTw8Mik+PjJdLE09MCxSPTA7KDB8UikhPSgwfGdlKTspTS09K2puW0srKGFbYW4rKFI8PDIpPj4yXTw8Mik+PjJdLFI9UisxfDA7am5bY3QrKGdlPDwyKT4+Ml09''@;'; + put 'put ''YmU9KCh1cj0yKk0pKnFlK0QqcGUtK2puW1p0KyhHPDwyKT4+Ml0qKGJlPStqblsoTGU9SysoRzw8Mil8MCk+PjJdKSkvKChNPXVyK0QpLWJlKSxEPU0tK2puW0xlPj4yXSxwZT1iZSxnZT1nZSsxfDB9Zm9yKChLPSgwfGwpPT0oMHxvdCkpJiYoam5bV2U+PjJdPXFlKSxEPTAscGU9MCxHPUxl''@;'; + put 'put ''PWwrLTF8MDshKCgwfEcpPD0tMSk7KXtmb3IoT2U9MHxhW1N0KygoZ2U9MHxhW2FuKyhHPDwyKT4+Ml0pPDwyKT4+Ml0sTT0wLFI9RzshKCgwfChSPVIrMXwwKSk+PSgwfGwpKTspTS09K2puW09lKyhhW2FuKyhSPDwyKT4+Ml08PDIpPj4yXTtqbltidCsoRzw8Mik+PjJdPXVyPSgoTSo9Mikq''@;'; + put 'put ''cWUrRCpwZS0ram5bWnQrKGdlPDwyKT4+Ml0qKHVyPStqblsoT2U9T2UrKGdlPDwyKXwwKT4+Ml0pKS8oKGJlPU0rRCktdXIpLEQ9YmUtK2puW09lPj4yXSxwZT11cixHPUcrLTF8MH1mb3IoSz8oam5bYnQ+PjJdPXFlLGJlPTAsUj0tMSxLPTApOihiZT0wLFI9LTEsSz0wKTshKCgwfGwpPD0o''@;'; + put 'put ''MHxLKSk7KXtwZT0ram5bYnQrKEs8PDIpPj4yXSxNPSgwfEspPjA/K2puW2N0KyhLKy0xPDwyKT4+Ml06cGU7ZG97aWYocGU8TSl7aWYoRz1NPnFlLHBlPHFlKXtEPU09Rz9xZTpNO2JyZWFrfUc/KEQ9cGUsTT1wZSk6RD1wZX1lbHNlIEQ9cGV9d2hpbGUoMCk7YmU9KE9lPSh1cj0rZW8oKyhE''@;'; + put 'put ''LXFlKSkqKyhsLUt8MCkrICtlbygrKE0tcWUpKSorKDB8SykpPmJlKT91cjpiZSxSPU9lP0s6UixLPUsrMXwwfWlmKCgwfFIpPi0xKWJyZWFrO1JlJiYoMHxhW1NuKyhhW2t0KyhtPDwyKT4+Ml08PDIpPj4yXSk+KDB8YVtTbisoYVtrdCsoSGU8PDIpPj4yXTw8Mik+PjJdKT8oaz0ram5bSG4r''@;'; + put 'put ''KGFbYW4rKExlPDwyKT4+Ml08PDIpPj4yXStiLFZlPW0pOihrPStqbltIbisoYVthbisoTGU8PDIpPj4yXTw8Mik+PjJdLFZlPW0pfVJlPyhNPStqbltIbisoKE9lPTB8YVtrdCsobTw8Mik+PjJdKTw8Mik+PjJdLE09KCgwfGFbU24rKE9lPDwyKT4+Ml0pPigwfGFbU24rKGFba3QrKEhlPDwy''@;'; + put 'put ''KT4+Ml08PDIpPj4yXSk/TS1iOk0pLStqbltudCsoYVthbisoTGU8PDIpPj4yXTw8Mik+PjJdKTpNPTFlOSxNPShEPStqbltidCsoUjw8Mik+PjJdKTxNP0Q6TSxrPShwZT1SPytqbltjdCsoUistMTw8Mik+PjJdOkQpPms/cGU6aztkb3tpZihNPGspe2lmKEc9az5xZSxNPHFlKXtEPU09Rz9x''@;'; + put 'put ''ZTprO2JyZWFrfUc/RD1NOihEPU0sTT1rKX1lbHNlIEQ9TSxNPWt9d2hpbGUoMCk7Zm9yKEc9MDshKCgwfEcpPj0oMHxSKSk7KWpuW0huKygoT2U9MHxhW2FuKyhHPDwyKT4+Ml0pPDwyKT4+Ml09K2puW250KyhPZTw8Mik+PjJdK00sRz1HKzF8MDtmb3IoOyEoKDB8Uik+PSgwfGwpKTspam5b''@;'; + put 'put ''SG4rKChPZT0wfGFbYW4rKFI8PDIpPj4yXSk8PDIpPj4yXT0ram5bbnQrKE9lPDwyKT4+Ml0rRCxSPVIrMXwwO2ZvcihrPVJlJiYoMHxhW1NuKyhhW2t0KyhtPDwyKT4+Ml08PDIpPj4yXSk+KDB8YVtTbisoYVtrdCsoSGU8PDIpPj4yXTw8Mik+PjJdKT8ram5bSG4rKGFbYW4rKExlPDwyKT4+''@;'; + put 'put ''Ml08PDIpPj4yXStiOitqbltIbisoYVthbisoTGU8PDIpPj4yXTw8Mik+PjJdLGw9VmU7ISgoMHxsKT4oMHxIZSkpOylhW2t0KyhsPDwyKT4+Ml09YVthbisobC1WZTw8Mik+PjJdLGw9bCsxfDA7cD1wPDwyND4+MjQhPTAmJitlbygrKE0tcWUpKTwuMDE/K2VvKCsoRC1xZSkpPC4wMTowLHAm''@;'; + put 'put ''PTF9bDgob3QsSG4pLHc5ZShIbixrdCxzdCxFdCx3KSxmPWYrMXwwfX19d2hpbGUoMCk7cmV0dXJuIDB8Zn1mdW5jdGlvbiB3OWUobCxjLGYscCxtKXtsfD0wLGN8PTAsZnw9MCxwfD0wLG18PTA7dmFyIEE9MDtmb3IoQT0wOyEoKDB8QSk+PSgwfHApKTspYVttKyhBPDwyKT4+Ml09YVtsKyhh''@;'; + put 'put ''W2MrKCgwfGFbZisoQTw8Mik+PjJdKS0xPDwyKT4+Ml08PDIpPj4yXSxBPUErMXwwfWZ1bmN0aW9uIFoyZShsLGMsZixwLG0sQSl7bHw9MCxjfD0wLGZ8PTAscHw9MCxtfD0wLEE9K0E7dmFyIHc9MCxiPTAsaz0wLE09MCxEPTA7Zm9yKHc9LTFlOSxrPTAsYj0tMSxEPTA7ISgoMHxEKT49KDB8''@;'; + put 'put ''YykpOykoMHxEKTwoMHxrKXx8KHc9KDB8RCk+MD8ram5bbCsoYVtmKyhEKy0xPDwyKT4+Ml08PDIpPj4yXStBOi0xZTksTlYobCxmLEQsKGs9KDB8KGI9YisxfDApKT09KDB8bSk/YzowfGFbcCsoYjw8Mik+PjJdKSstMXwwKSksTT1rLCtqblsoaz1sKyhhW2YrKEQ8PDIpPj4yXTw8Mil8MCk+''@;'; + put 'put ''PjJdPHcmJihqbltrPj4yXT13KSxrPU0sRD1EKzF8MH1mdW5jdGlvbiBiOWUobCl7RnQoMHxhW2FbKGx8PTApPj4yXT4+Ml0pLEZ0KDB8YVtsPj4yXSksRnQoMHxhW2wrOD4+Ml0pLEZ0KDB8YVtsKzI4Pj4yXSksRnQoMHxhW2wrMzI+PjJdKSxGdCgwfGFbbCszNj4+Ml0pLEZ0KDB8YVtsKzQw''@;'; + put 'put ''Pj4yXSksRnQoMHxhW2wrMTI+PjJdKSxGdCgwfGFbbCsxNj4+Ml0pLEZ0KDB8YVtsKzIwPj4yXSksRnQoMHxhW2wrMjQ+PjJdKSxGdChsKX1mdW5jdGlvbiBKVihsLGMsZixwLG0pe2x8PTAsY3w9MCxmfD0wLHB8PTAsbXw9MDt2YXIgYixrLE0sRCxBPTAsdz0wO2ZvcihNPTB8UW4oNjApLGFb''@;'; + put 'put ''TT4+Ml09MCxhWyhEPU0rNHwwKT4+Ml09YyxhW00rNDg+PjJdPWYsYVtNKzUyPj4yXT1wLGFbTSs1Nj4+Ml09bSxhW00+PjJdPTB8ZEsobCxjKSxrPTB8UW4oYj1jPDwyKSxhW00rOD4+Ml09ayx3PTAsYz0wLGw9LTE7ISgoMHx3KT49KDB8YVtEPj4yXSkpOylBPWwrMXwwLCgwfHcpPj0oMHxj''@;'; + put 'put ''KSYmKGM9MHxhWygoMHxBKT09KDB8bSk/RDpwKyhBPDwyKXwwKT4+Ml0sbD1BKSxhW2srKGFbZisodzw8Mik+PjJdPDwyKT4+Ml09bCx3PXcrMXwwO3JldHVybiBhW00rMjg+PjJdPTB8UW4oYiksYVtNKzMyPj4yXT0wfFFuKGIpLGFbTSszNj4+Ml09MHxRbihiKSxhW00rNDA+PjJdPTB8UW4o''@;'; + put 'put ''YiksYVtNKzEyPj4yXT0wfFFuKGIpLGFbTSsxNj4+Ml09MHxRbihiKSxhW00rMjA+PjJdPTB8UW4oYiksYVtNKzI0Pj4yXT0wfFFuKGIpLDB8TX1mdW5jdGlvbiBwSygpe1p5KDE4NzY3NiwyNCksYVs0NjkyMl09MH1mdW5jdGlvbiBYVihsLGMpe3ZhciBmLHA7cmV0dXJuKyArRDAoKygocD0r''@;'; + put 'put ''X1s4KyhsfD0wKT4+M10tK19bOCsoY3w9MCk+PjNdKSpwKyhmPStfW2w+PjNdLStfW2M+PjNdKSpmKSl9ZnVuY3Rpb24gXzllKGwpe3ZhciBjO2FbMTYrKGx8PTApPj4yXT1jPTB8YVs0NjkyMl0sYVs0NjkyMl09YysxfWZ1bmN0aW9uIHFEKGwpe3ZhciBjLGY7YVsoZj0yMCsobHw9MCl8MCk+''@;'; + put 'put ''PjJdPWM9KDB8YVtmPj4yXSktMXwwLGN8fFdWKGwsMTg3Njc2KX1mdW5jdGlvbiBlTChsKXthWyhsPTIwKyhsfD0wKXwwKT4+Ml09MSsoMHxhW2w+PjJdKX1mdW5jdGlvbiBHMmUobCxjLGYscCxtKXtsfD0wLGN8PTAsZnw9MCxtPSttO3ZhciBiZSxPZSxMZSxSZSxBPTAsdz0wLGI9MCxrPTAs''@;'; + put 'put ''TT0wLEQ9MCxSPTAsRz0wLEs9MCxwZT0wLGdlPTAsSGU9MDtmb3IoUmU9bGUsbGU9bGUrMTZ8MCxhWyhEPVJlKT4+Ml09cHw9MCxPZT0wfFFuKEc9Yzw8MiksTGU9MHxRbihrPWM8PDMpLGJlPTB8ZnVuY3Rpb24gTTJlKGwsYyl7cmV0dXJuIGN8PTAsbD0wfGFbOCsobHw9MCk+PjJdPzB8SFYo''@;'; + put 'put ''bCxjKTowfGZ1bmN0aW9uIGM5ZShsLGMpe2x8PTA7dmFyIHAsbSx3LGY9MCxBPTA7Zm9yKHc9bGUsbGU9bGUrMTZ8MCxtPXcscD0wfFFuKDB8QXIoQT0oY3w9MCk8PDIsYykpLEE9MHxRbihBKSxmPTA7ISgoMHxmKT49KDB8YykpOylhW0ErKGY8PDIpPj4yXT1wKygoMHxBcihmLGMpKTw8Miks''@;'; + put 'put ''Zj1mKzF8MDtmb3IoTHkobSxjKSxmPTA7ISgoMHxmKT49KDB8YykpOylyOChmLGwsYywwfGFbQSsoZjw8Mik+PjJdLG0pLGY9ZisxfDA7cmV0dXJuIE9EKG0pLGxlPXcsMHxBfShsLGMpLDB8bH0obCxjKSxsPTA7ISgoMHxsKT49KDB8YykpOyl7Zm9yKGI9YmUrKGw8PDIpfDAsdz0wOygwfHcp''@;'; + put 'put ''IT0oMHxjKTspYVsocGU9KDB8YVtiPj4yXSkrKHc8PDIpfDApPj4yXT1hW3BlPj4yXTw8OCx3PXcrMXwwO2w9bCsxfDB9Zm9yKGZ8fFByKDkzOTUyLDkzOTYwLDI4Myw5Mzk3NCkscGU9MHxRbihrKSxsPTA7ISgoMHxsKT49KDB8YykpOylfW3BlKyhsPDwzKT4+M109K19bZisobDw8Myk+PjNd''@;'; + put 'put ''LGw9bCsxfDA7Zm9yKGdLKHBlLGMpLEE9MCxNPTAsaz0xOyEoKDB8ayk+PSgwfGMpKTspe2Zvcih3PWJlKyhrPDwyKXwwLGI9Zisoazw8Myl8MCxsPTA7KDB8bCkhPSgwfGspOylBPShLPStfW2I+PjNdLStfW2YrKGw8PDMpPj4zXSkqSyooMS8rKDB8QXIoSGU9MHxhWygwfGFbdz4+Ml0pKyhs''@;'; + put 'put ''PDwyKT4+Ml0sSGUpKSkrQSxNPStlbygrSykqKDEvKygwfEhlKSkrTSxsPWwrMXwwO2s9aysxfDB9Zm9yKEs9TS9BLGw9MDshKCgwfGwpPj0oMHxjKSk7KV9bKEhlPWYrKGw8PDMpfDApPj4zXT0rX1tIZT4+M10qSyxsPWwrMXwwO2ZvcihmdW5jdGlvbiBXMmUobCxjLGYscCxtKXtjfD0wLGY9''@;'; + put 'put ''K2YscHw9MDt2YXIgayxNLEE9MCx3PTAsYj0wLEQ9MDtpZihrPTB8ZnVuY3Rpb24gWTJlKGwsYyl7bHw9MDt2YXIgQSxNLFIsZj0wLHA9MCxtPTAsdz0wLGI9MCxrPTAsRD0wLEc9MDtmb3IoUj1sZSxsZT1sZSsxNnwwLG09UixwPTB8UW4oMHxBcihEPShjfD0wKTw8MixjKSksRD0wfFFuKEQp''@;'; + put 'put ''LGY9MDshKCgwfGYpPj0oMHxjKSk7KWFbRCsoZjw8Mik+PjJdPXArKCgwfEFyKGYsYykpPDwyKSxmPWYrMXwwO2ZvcihNPTB8ZnVuY3Rpb24gSjJlKGwsYyxmKXtsfD0wLGZ8PTA7dmFyIGIsayxwPTAsbT0wLEE9MCx3PTAsTT0wLEQ9MDtmb3IoYj0wfFFuKChjfD0wKTw8Miksaz0xLysoMHxj''@;'; + put 'put ''KSxwPTAsdz0wOyEoKDB8dyk+PSgwfGMpKTspe2ZvcihNPWwrKHc8PDIpfDAsbT0wLEE9MDsoMHxBKSE9KDB8Yyk7KUQ9KygwfGFbKDB8YVtNPj4yXSkrKEE8PDIpPj4yXSksbT0oRCo9RCkrbSxBPUErMXwwLHA9RCtwO2puW2IrKHc8PDIpPj4yXT1rKm0sdz13KzF8MH1yZXR1cm4gam5bZj4+''@;'; + put 'put ''Ml09cC8rKDB8QXIoYyxjKSksMHxifShsLGMsbSksQT0ram5bbT4+Ml0scD0wLGs9MTshKCgwfHApPj0oMHxjKSk7KXtmb3IobT1sKyhwPDwyKXwwLHc9TSsocDw8Mil8MCxiPUQrKHA8PDIpfDAsZj0wOygwfGYpIT0oMHxrKTspam5bKDB8YVtiPj4yXSkrKGY8PDIpPj4yXT1HPStqbltNKyhm''@;'; + put 'put ''PDwyKT4+Ml0rICtqblt3Pj4yXS0oRz0rKDB8YVsoMHxhW20+PjJdKSsoZjw8Mik+PjJdKSkqRy1BLGpuWygwfGFbRCsoZjw8Mik+PjJdKSsocDw8Mik+PjJdPUcsZj1mKzF8MDtwPXArMXwwLGs9aysxfDB9cmV0dXJuIEZ0KE0pLGxlPVIsMHxEfShtfD0wLGx8PTApLE09MHxRbig4KSxwKXtm''@;'; + put 'put ''b3IoQT0wfFFuKGw8PDMpLG09MDshKCgwfG0pPj0oMHxsKSk7KV9bQSsobTw8Myk+PjNdPStfW3ArKG08PDMpPj4zXSxtPW0rMXwwO2dLKEEsbCksbT1BLGI9QX1lbHNlIG09MCxiPTA7Zm9yKGZ1bmN0aW9uIFUyZShsLGMsZixwLG0sQSl7bHw9MCxmfD0wLHB8PTAsbXw9MCxBPStBO3ZhciBH''@;'; + put 'put ''LEsscGUsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsZ2U9MCxiZT0wO3BlPTB8UW4oZ2U9KGN8PTApPDwzKSxnZT0wfFFuKGdlKSxSPTEtQSxHPSgwfGMpPDE/YzoxLEs9YystMXwwLGs9MD09KDB8bSksYj0wO2U6Zm9yKDshKCgwfGIpPj0oMHxHKSk7KXtNPTB8YVtmKyhiPDwyKT4+Ml07ZG97''@;'; + put 'put ''Zm9yKHc9MDsoMHx3KSE9KDB8Yyk7KV9bTSsodzw8Myk+PjNdPSsoMHwoMHxUMSgpKSUxMDApLHc9dysxfDA7Zm9yKGt8fGdnKE0sMCxLLC0rb2gobSwwLEssTSksbSksdz0wOygwfHcpIT0oMHxiKTspZ2coTSwwLEssRD0tK29oKDB8YVsoYmU9Zisodzw8Mil8MCk+PjJdLDAsSyxNKSwwfGFb''@;'; + put 'put ''YmU+PjJdKSx3PXcrMXwwO0E9K21wKE0sMCxLKX13aGlsZShBPDFlLTEwKTtKNyhNLDAsSywxL0EsTSk7ZG97Zm9yKCQzKGdlLDAsSyxNKSxRMmUobCxjLGMsTSxwZSxtKSwkMyhNLDAsSyxwZSksdz0wOygwfHcpIT0oMHxiKTspZ2coTSwwLEssRD0tK29oKDB8YVsoYmU9Zisodzw8Mil8MCk+''@;'; + put 'put ''PjJdLDAsSyxNKSwwfGFbYmU+PjJdKSx3PXcrMXwwO2lmKChBPSttcChNLDAsSykpPDFlLTEwKWJyZWFrIGU7SjcoTSwwLEssMS9BLE0pLEQ9K29oKE0sMCxLLGdlKX13aGlsZSgrZW8oK0QpPFIpO19bcCsoYjw8Myk+PjNdPUQqQSxiPWIrMXwwfWZvcig7ISgoMHxiKT49KDB8RykpOyl7Zm9y''@;'; + put 'put ''KGs9MHxhW2YrKGI8PDIpPj4yXSx3PTA7Oyl7aWYoKDB8dyk+PSgwfGMpKXt3PTA7YnJlYWt9X1trKyh3PDwzKT4+M109KygwfCgwfFQxKCkpJTEwMCksdz13KzF8MH1mb3IoOyEoKDB8dyk+PSgwfGIpKTspZ2coaywwLEssUj0tK29oKDB8YVsoYmU9Zisodzw8Mil8MCk+PjJdLDAsSyxrKSww''@;'; + put 'put ''fGFbYmU+PjJdKSx3PXcrMXwwO0o3KGssMCxLLDEvK21wKGssMCxLKSxrKSxfW3ArKGI8PDMpPj4zXT0wLGI9YisxfDB9Zm9yKE09RystMXwwLGI9MDshKCgwfGIpPj0oMHxNKSk7KXtmb3IoQT0rX1sobD1wKyhiPDwzKXwwKT4+M10sdz1iLGs9bT1iKzF8MDshKCgwfGspPj0oMHxHKSk7KUE9''@;'; + put 'put ''KGJlPUE8KFI9K19bcCsoazw8Myk+PjNdKSk/UjpBLHc9YmU/azp3LGs9aysxfDA7KDB8dykhPSgwfGIpPygkMyhwZSwwLEssMHxhWyhjPWYrKGI8PDIpfDApPj4yXSksJDMoMHxhW2M+PjJdLDAsSywwfGFbKGJlPWYrKHc8PDIpfDApPj4yXSksJDMoMHxhW2JlPj4yXSwwLEsscGUpLF9bcCso''@;'; + put 'put ''dzw8Myk+PjNdPStfW2w+PjNdLF9bbD4+M109QSxiPW0pOmI9bX1GdChwZSksRnQoZ2UpfShrLGwsYyxNLG0sZikscD0wOzEhPSgwfHApOyl7Zm9yKEE9TSsocDw8Myl8MCx3PWMrKHA8PDIpfDAsbT0wOyEoKDB8bSk+PSgwfGwpKTspZj0rRDAoKyArZW8oKyArX1tBPj4zXSkpLF9bKEQ9KDB8''@;'; + put 'put ''YVt3Pj4yXSkrKG08PDMpfDApPj4zXT0rX1tEPj4zXSpmLG09bSsxfDA7cD1wKzF8MH1GdCgwfGFbaz4+Ml0pLEZ0KGspLEZ0KE0pLEZ0KGIpfShjLEQsbSxmLGJlKSxiPTB8UW4oMHxBcihHLGMpKSx3PTA7Oyl7aWYoKDB8dyk+PSgwfGMpKXtiPTE7YnJlYWt9Zm9yKGs9YisoKDB8QXIodyxj''@;'; + put 'put ''KSk8PDIpfDAsYVtPZSsodzw8Mik+PjJdPWssRD1iZSsodzw8Mil8MCxBPTAsbD0wOygwfGwpIT0oMHxjKTspKDB8bCkhPSgwfHcpJiYoam5baysobDw8Mik+PjJdPVI9LTEvKChSPSsoMHxhWygwfGFbRD4+Ml0pKyhsPDwyKT4+Ml0pKSpSKSxBLT1SKSxsPWwrMXwwO2puW2srKHc8PDIpPj4y''@;'; + put 'put ''XT1BLHc9dysxfDB9Zm9yKDs7KXtpZigoMHxiKT49KDB8Yykpe3c9MDticmVha31mb3IoQT0rX1tmKyhiPDwzKT4+M10sdz1iZSsoYjw8Mil8MCxsPTA7KDB8bCkhPSgwfGIpOylHPX5+K0QwKCsoUj0oTT0rKDB8YVsoSGU9KDB8YVt3Pj4yXSkrKGw8PDIpfDApPj4yXSkpKk0tKFI9QS0rX1tm''@;'; + put 'put ''KyhsPDwzKT4+M10pKlIpKSxhWygwfGFbYmUrKGw8PDIpPj4yXSkrKGI8PDIpPj4yXT1HPVI+MD9HOjAsYVtIZT4+Ml09RyxsPWwrMXwwO2I9YisxfDB9Zm9yKDs7KXtpZigoMHx3KT49KDB8Yykpe0c9MCxsPTA7YnJlYWt9Zm9yKE09K19bcCsodzw8Myk+PjNdLF9bKGs9TGUrKHc8PDMpfDAp''@;'; + put 'put ''Pj4zXT0wLEQ9YmUrKHc8PDIpfDAsYj1PZSsodzw8Mil8MCxsPTAsQT0wOygwfGwpIT0oMHxjKTspKDB8bCkhPSgwfHcpJiYoUj0ram5bKDB8YVtiPj4yXSkrKGw8PDIpPj4yXSorKDB8YVsoMHxhW0Q+PjJdKSsobDw8Mik+PjJdKSxfW2s+PjNdPUErPU0+PStfW3ArKGw8PDMpPj4zXT8tUjpS''@;'; + put 'put ''KSxsPWwrMXwwO3c9dysxfDB9Zm9yKDs7KXtpZighKGw8PDI0Pj4yND09MCYoMHxHKTwyMDApKXtnZT00MjticmVha31pZigoMHxTVihPZSxwLExlLGMsbSxjLDEpKTwwKXtsPTE7YnJlYWt9Zm9yKGw9MSxEPTA7ISgoMHxEKT49KDB8YykpOyl7Zm9yKFI9K19bcCsoRDw8Myk+PjNdLGI9YmUr''@;'; + put 'put ''KEQ8PDIpfDAsaz1PZSsoRDw8Mil8MCxBPTAsdz0wOygwfHcpIT0oMHxjKTspe2Rve2lmKCgwfHcpIT0oMHxEKSl7aWYoTT0ram5bKDB8YVtrPj4yXSkrKHc8PDIpPj4yXSorKDB8YVsoMHxhW2I+PjJdKSsodzw8Mik+PjJdKSxSPj0rX1twKyh3PDwzKT4+M10pe0ErPS1NO2JyZWFrfUErPU07''@;'; + put 'put ''YnJlYWt9fXdoaWxlKDApO3c9dysxfDB9QSE9KFI9K19bKHc9TGUrKEQ8PDMpfDApPj4zXSkmJitlbygrKDEtQS9SKSk+MWUtNSYmKF9bdz4+M109QSxsPTApLEQ9RCsxfDB9Rz1HKzF8MH1lOmRve2lmKDQyPT0oMHxnZSkpZm9yKEE9MS9LLGw9MDs7KXtpZigoMHxsKT49KDB8Yykpe2w9MDti''@;'; + put 'put ''cmVhayBlfV9bKEhlPWYrKGw8PDMpfDApPj4zXT0rX1tIZT4+M10qQSxfWyhIZT1wKyhsPDwzKXwwKT4+M109K19bSGU+PjNdKkEsbD1sKzF8MH19d2hpbGUoMCk7cmV0dXJuIEZ0KDB8YVtiZT4+Ml0pLEZ0KGJlKSxGdCgwfGFbT2U+PjJdKSxGdChPZSksRnQocGUpLEZ0KExlKSxsZT1SZSww''@;'; + put 'put ''fGx9ZnVuY3Rpb24gZ0sobCxjKXtsfD0wLGN8PTA7dmFyIGY9MCxwPTAsbT0wLEE9MDtmb3IoZj0wLHA9MDshKCgwfGYpPj0oMHxjKSk7KW09K19bbCsoZjw8Myk+PjNdK3AsZj1mKzF8MCxwPW07Zm9yKHAvPSsoMHxjKSxmPTA7ISgoMHxmKT49KDB8YykpOylfWyhBPWwrKGY8PDMpfDApPj4z''@;'; + put 'put ''XT0rX1tBPj4zXS1wLGY9ZisxfDA7SjcobCwwLEE9YystMXwwLDEvK21wKGwsMCxBKSxsKX1mdW5jdGlvbiBRMmUobCxjLGYscCxtLEEpe2x8PTAsY3w9MCxmfD0wLHB8PTAsbXw9MCxBfD0wO3ZhciB3PTAsYj0wLGs9MCxNPTA7Zm9yKHc9MDshKCgwfHcpPj0oMHxjKSk7KXtmb3IoTT1sKyh3''@;'; + put 'put ''PDwyKXwwLGI9MCxrPTA7ISgoMHxrKT49KDB8ZikpOyliPStfW3ArKGs8PDMpPj4zXSoram5bKDB8YVtNPj4yXSkrKGs8PDIpPj4yXStiLGs9aysxfDA7X1ttKyh3PDwzKT4+M109Yix3PXcrMXwwfXc9YystMXwwLDB8QSYmZ2cobSwwLHcsLStvaChtLDAsdyxBKSxBKX1mdW5jdGlvbiBLVihs''@;'; + put 'put ''LGMpe2x8PTAsY3w9MDt2YXIgRyxLLHBlLGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxnZT0wLGJlPTAsT2U9MDtwZT1sZSxsZT1sZSsxNnwwLEs9cGUsTkQoKSxwSygpLGZ1bmN0aW9uIEMyZSgpe3ZhciBsPTAsYz0wLGY9MDtmb3IoYVs0Njg1N109MCxhWzQ2ODU5''@;'; + put 'put ''XT0wLGFbNDY4NThdPWM9KGw9MHxhWzQ2ODU1XSk8PDIsKGY9MHxhWzQ2ODU2XSl8fChmPTB8UW4oMTYwKmx8MCksYVs0Njg1Nl09ZixjPTB8YVs0Njg1OF0pLGw9MDshKCgwfGwpPj0oMHxjKSk7KWFbZisoNDAqbHwwKSszMj4+Ml09MCxsPWwrMXwwfSgpLGFbNDY5MThdPTB8JDFbMyZjXSgp''@;'; + put 'put ''LGZ1bmN0aW9uIGsyZSgpe3ZhciBsPTAsYz0wLGY9MDtmb3IoWnkoMTg3NDQ4LDQwKSxhWzQ2ODY2XT1jPShsPTB8YVs0Njg1NV0pPDwxLChmPTB8YVs0Njg2NV0pfHwoZj0wfFFuKGw8PDMpLGFbNDY4NjVdPWYsYz0wfGFbNDY4NjZdKSxsPTA7ISgoMHxsKT49KDB8YykpOylhW2YrKGw8PDIp''@;'; + put 'put ''Pj4yXT0wLGw9bCsxfDA7YVs0Njg2MF09MHx6RCgwLDApLGFbNDY4NjFdPTB8ekQoMCwwKSxhW2FbNDY4NjBdPj4yXT0wLGFbNCsoYz0wfGFbNDY4NjBdKT4+Ml09Zj0wfGFbNDY4NjFdLGFbZj4+Ml09YyxhWzQrKDB8YVs0Njg2MV0pPj4yXT0wLGFbKGY9MHxhWzQ2ODY1XSk+PjJdPWFbNDY4''@;'; + put 'put ''NjBdLGFbZisoKDB8YVs0Njg2Nl0pLTE8PDIpPj4yXT1hWzQ2ODYxXX0oKSxHPUsrOHwwLFI9MHwkMVszJmNdKCksZj0wLHA9MDtlOmZvcig7Oyl7Zm9yKE09MD09KDB8UiksRD1SKzh8MDswfEZ5KCl8fChiMmUoSyksZj0rX1tLPj4zXSxwPStfW0c+PjNdKSxNfHwhKDB8RnkoKXx8KG09K19b''@;'; + put 'put ''RD4+M10sbTxwKXx8bT09cCYmK19bUj4+M108Zik7KXtpZigwfEZ5KCkpYnJlYWsgZTtsPTB8UzJlKGdlPTB8XzJlKCkpLE9lPTB8SHkoZ2UpLEE9MHxIeShPZSksaz0wfHU5ZShnZSksYmU9MHxVWChPZSksXzllKHc9MHxhW2dlKzIwPj4yXSksVkQoMHxhW2dlKzg+PjJdLDB8ZmVbZ2UrMTY+''@;'; + put 'put ''PjBdLHcpLFZEKDB8YVtPZSs4Pj4yXSwwfGZlW09lKzE2Pj4wXSx3KSxQVihnZSksRmsoT2UpLFBWKE9lKSxnZT0xJihPZT0rX1trKzg+PjNdPitfW2JlKzg+PjNdKSxZWChsLGs9MHx6RChiZT0wfExWKGI9T2U/YmU6ayxPZT9rOmJlKSxnZSkpLFZEKGJlLDI1NSYoMV5nZSksdykscUQodyks''@;'; + put 'put ''MHwodz0wfEdEKGwsaykpJiYoRmsobCksVTcobCx3LCtYVih3LGIpKSksKGw9MHxHRChrLEEpKSYmVTcoayxsLCtYVihsLGIpKX1iPTB8SHkobD0wfFJWKFIpKSxZWChsLGs9MHx6RChBPTB8TFYoMHxVWChsKSxSKSwwKSksMHwodz0wfEdEKGwsaykpJiYoRmsobCksVTcobCx3LCtYVih3LFIp''@;'; + put 'put ''KSksWVgoayxBPTB8ekQoQSwxKSksMHwobD0wfEdEKEEsYikpJiZVNyhBLGwsK1hWKGwsUikpLFI9MHwkMVszJmNdKCl9Zm9yKGw9MHxhWzQ2ODYwXTsoMHwobD0wfEh5KGwpKSkhPSgwfGFbNDY4NjFdKTspQmsoMHxhW2wrOD4+Ml0pO2xlPXBlfWZ1bmN0aW9uICRWKGwsYyl7bHw9MCxjfD0w''@;'; + put 'put ''O3ZhciBtLEEsZj0wLHc9MDtBPWxlLGxlPWxlKzE2fDAsbT1BKzh8MDtkb3tpZigxIT0oMHxHbyhsKSkpe2lmKG1LKGwpLGN8fChjPTB8SzJlKGwpKSwoMHwoZj0wfHZLKGwsYykpKTwwKXskcigxLDk0MDM5LG0pO2JyZWFrfSQyZShsKSxxMmUobCxjKSxDOWUobCxjKSxrOWUobCxmKTticmVh''@;'; + put 'put ''a313PTB8YVsxMzIrKDB8YVsxNisoMHxEdChsKSk+PjJdKT4+Ml0sYVt3Pj4yXT0wLGFbdys0Pj4yXT0wLGFbdys4Pj4yXT0wLGFbdysxMj4+Ml09MH13aGlsZSgwKTtyZXR1cm4gbGU9QSwwfGN9ZnVuY3Rpb24gbUsobCl7dmFyIGM9MCxmPTAscD0wLG09MCxBPTA7Zm9yKGY9MHxHbyhsfD0w''@;'; + put 'put ''KSxmPTB8QXIoZixmKSxjPTB8RHQobCk7YzspYVsoQT0yNCsobT0wfGFbMTEyKygwfGFbKHA9YysxNnwwKT4+Ml0pPj4yXSl8MCk+PjJdPWYsYVtBKzQ+PjJdPTAsX1ttKzQ4Pj4zXT0xMCxtPTA9PSgwfEU5ZShsLGMpKSxhWyhwPTB8YVsxMTIrKDB8YVtwPj4yXSk+PjJdKT4+Ml09bT9mOjAs''@;'; + put 'put ''YVtwKzQ+PjJdPTAsYz0wfHp0KGwsYyl9ZnVuY3Rpb24gSzJlKGwpe3ZhciBjPTAsZj0wLHA9MCxtPTAsQT0wLHc9MDtwPSgwfEdvKGx8PTApKTwzLGM9MHxEdChsKTtlOmRve2lmKCFwKXtmb3IoO2M7KTA9PSgwfGFbKHA9MHxhWzExMisoMHxhW2MrMTY+PjJdKT4+Ml0pPj4yXSkmMD09KDB8''@;'; + put 'put ''YVtwKzQ+PjJdKSYmaTFlKGwsYywwKSxjPTB8enQobCxjKTtmb3IoZj0wLGM9MCxwPTB8RHQobCk7Oyl7aWYoIXApYnJlYWsgZTtBPTB8YVsodz0wfGFbMTEyKygwfGFbcCsxNj4+Ml0pPj4yXSk+PjJdLGY9KG09KHc9MHxhW3crND4+Ml0pPj4+MD4obT0oKDB8Zik8MCk8PDMxPj4zMSk+Pj4w''@;'; + put 'put ''fCgwfHcpPT0oMHxtKSZBPj4+MD5mPj4+MCk/QTpmLGM9bT9wOmMscD0wfHp0KGwscCl9fX13aGlsZSgwKTtyZXR1cm4gMHxjfWZ1bmN0aW9uIHZLKGwsYyl7bHw9MDt2YXIgZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTA7Zm9yKHA9MHxhWyhtPTI0KyhmPTB8YVsxMTIrKDB8YVsxNisoY3w9MCk+''@;'; + put 'put ''PjJdKT4+Ml0pfDApPj4yXSxhW20+PjJdPTAsYVttKzQ+PjJdPTAsYVtmKzMyPj4yXT0wLGZ1bmN0aW9uIE05ZShsLGMpe2N8PTA7dmFyIGIsRCxSLEcsZj0wLHA9MCxtPTAsQT0wLHc9MCxrPTAsTT0wLEs9MCxwZT0wO0c9bGUsbGU9bGUrMTZ8MCxEPUcsUj0wfHNpKGx8PTAsMiwxMDE1NDEs''@;'; + put 'put ''MCksYVtEKzQ+PjJdPTAsYVtEPj4yXT0wLG4xZShELGMpLGI9MD09KDB8Uik7ZTpmb3IoO2s9MHxyMWUoRCksazspZm9yKE09aysxNnwwLEE9MHxhWzI0KygwfGFbMTEyKygwfGFbTT4+Ml0pPj4yXSk+PjJdLG09MHxTcyhsLGspLEE9MHx6bCgwLDB8QSwwLDEpLEE9MHxJTCgwfEEsMHxEbiwz''@;'; + put 'put ''Miksdz1Ebjs7KXtpZighbSljb250aW51ZSBlOyFiJiY0OD09KDB8ZmVbKDB8SG8obSxSKSk+PjBdKSYmISgwfFppKDB8SG8obSxSKSwxMzgzOTQpKXx8KCgwfChmPTB8YVsoMz09KDB8KGM9MyZhW20+PjJdKSk/bTptKzQ4fDApKzQwPj4yXSkpPT0oMHxrKSYmKGY9MHxhWygyPT0oMHxjKT9t''@;'; + put 'put ''Om0rLTQ4fDApKzQwPj4yXSksdz4+PjA8KHBlPTB8YVs0KyhLPXA9MjQrKGM9MHxhWzExMisoMHxhW2YrMTY+PjJdKT4+Ml0pfDApPj4yXSk+Pj4wfCgoMHx3KT09KDB8cGUpP0E+Pj4wPCgwfGFbSz4+Ml0pPj4+MDowKSYmKGFbKHBlPXApPj4yXT1BLGFbcGUrND4+Ml09dyxhW2MrMzI+PjJd''@;'; + put 'put ''PWssSz0wfHpsKDB8YVsoSz1wZT0xNisoMHxhWzExMisoMHxhW00+PjJdKT4+Ml0pfDApPj4yXSwwfGFbSys0Pj4yXSwxLDApLGFbcGU+PjJdPUssYVtwZSs0Pj4yXT1EbixuMWUoRCxmKSkpLG09MHxOcyhsLG0sayl9bGU9R30obCxjKSxmPTB8RHQobCkscD0wfElMKDAsMHxwLDMyKSxtPURu''@;'; + put 'put ''LGM9MDtmOyl7aWYoKDB8KEE9MHxhWyh3PTI0KygwfGFbMTEyKygwfGFbZisxNj4+Ml0pPj4yXSl8MCk+PjJdKSk9PSgwfHApJigwfCh3PTB8YVt3KzQ+PjJdKSk9PSgwfG0pKXtjPS0xO2JyZWFrfWM9dz4+PjA+KGI9KCgwfGMpPDApPDwzMT4+MzEpPj4+MHwoMHx3KT09KDB8YikmQT4+PjA+''@;'; + put 'put ''Yz4+PjA/QTpjLGY9MHx6dChsLGYpfXJldHVybiAwfGN9ZnVuY3Rpb24gJDJlKGwpe3ZhciBjPTAsZj0wLHA9MCxtPTA7Zm9yKGY9MHxEdChsfD0wKTtmOyl7cD0xNisoYz0wfGFbMTEyKygwfGFbZisxNj4+Ml0pPj4yXSl8MDtlOmRve2lmKDA9PSgwfGFbcD4+Ml0pJjA9PSgwfGFbcCs0Pj4y''@;'; + put 'put ''XSkpZm9yKDs7KXtpZihtPTB8emwoMHxhWyhtPXA9Yys4fDApPj4yXSwwfGFbbSs0Pj4yXSwxLDApLGFbcD4+Ml09bSxhW3ArND4+Ml09RG4sIShjPTB8YVtjKzMyPj4yXSkpYnJlYWsgZTtjPTB8YVsxMTIrKDB8YVtjKzE2Pj4yXSk+PjJdfX13aGlsZSgwKTtmPTB8enQobCxmKX19ZnVuY3Rp''@;'; + put 'put ''b24gcTJlKGwsYyl7bHw9MCxfWzQwKygwfGFbMTEyKygwfGFbMTYrKGN8PTApPj4yXSk+PjJdKT4+M109Ni4yODMxODUzMDcxNzk1ODYsdDFlKGwsYyl9ZnVuY3Rpb24gQzllKGwsYyl7bHw9MCxfWzQ4KygwfGFbMTEyKygwfGFbMTYrKGN8PTApPj4yXSk+PjJdKT4+M109MCxlMWUobCxjKX1m''@;'; + put 'put ''dW5jdGlvbiBrOWUobCxjKXt2YXIgQSx3LGY9MCxwPTAsbT0wLGI9MCxrPTA7Zm9yKHc9bGUsbGU9bGUrMTZ8MCxtPXcsQT0wfGZ1bmN0aW9uIFM5ZShsLGMpe2x8PTA7dmFyIGIsayxNLGY9MCxwPTAsbT0wLEE9MCx3PTA7TT1sZSxsZT1sZSsxNnwwLGI9TSxrPTB8dnIoOCsoKGN8PTApPDwz''@;'; + put 'put ''KXwwKSxsPTB8djIobCwwfHNpKDB8YVtsKzYwPj4yXSwwLDEwMTI4OCwwKSwwKTtlOmRve2lmKGwpe0E9MCxmPTAsbT0xO3Q6Zm9yKDs7KXtpZigoMHxtKT4oMHxjKSl7cD1BLGw9bTticmVhayBlfWlmKCEoKHA9K2kzKGwsYikpPjApKXtwPUEsbD1tO2JyZWFrIGV9Zm9yKHc9bSsxfDAsX1tr''@;'; + put 'put ''KyhtPDwzKT4+M109Zj0oQT1wPi4wMj9wOi4wMikrZixsPTB8YVtiPj4yXTs7KXtpZighKChtPTB8ZmVbbD4+MF0pPDwyND4+MjQpKXttPXc7Y29udGludWUgdH1pZighKG08PDI0Pj4yND09NTh8MCE9KDB8JGMobTw8MjQ+PjI0KSkpKXttPXc7Y29udGludWUgdH1sPWwrMXwwfX19ZWxzZSBw''@;'; + put 'put ''PTEsZj0wLGw9MX13aGlsZSgwKTtmb3IoOyEoKDB8bCk+KDB8YykpOylfW2srKGw8PDMpPj4zXT1BPWYrcCxsPWwrMXwwLGY9QTtyZXR1cm4gbGU9TSwwfGt9KGx8PTAsY3w9MCksZj0wfER0KGwpO2Y7KWI9K19bQSsoYVsyNCsocD0wfGFbMTEyKyhtPTB8YVtmKzE2Pj4yXSk+PjJdKT4+Ml08''@;'; + put 'put ''PDMpPj4zXSxrPStoYSgrICtfWyhwPXArNDh8MCk+PjNdKSpiLF9bKG09MHxhW20rMTMyPj4yXSk+PjNdPWssX1ttKzg+PjNdPStEYSgrICtfW3A+PjNdKSpiLGY9MHx6dChsLGYpO0Z0KEEpLGxlPXd9ZnVuY3Rpb24gZTFlKGwsYyl7dmFyIGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wO2Zvcihw''@;'; + put 'put ''PTB8YVszMisoZj0wfGFbMTEyKygwfGFbMTYrKGN8PTApPj4yXSk+PjJdKT4+Ml0/K19bZis0OD4+M10tLjUqK19bZis0MD4+M106MCxBPTB8U3MobHw9MCxjKTtBOykoMHwobT0wfGFbKDM9PSgwfChmPTMmYVtBPj4yXSkpP0E6QSs0OHwwKSs0MD4+Ml0pKT09KDB8YykmJihtPTB8YVsoMj09''@;'; + put 'put ''KDB8Zik/QTpBKy00OHwwKSs0MD4+Ml0pLCgwfGFbMzIrKGY9MHxhWzExMisoMHxhW20rMTY+PjJdKT4+Ml0pPj4yXSk9PSgwfGMpJiYxMD09K19bKHc9Zis0OHwwKT4+M10mJihfW3c+PjNdPS41KihiPStfW2YrNDA+PjNdKStwLHA9YitwLDA9PSgwfGFbKGY9ZisxNnwwKT4+Ml0pJjA9PSgw''@;'; + put 'put ''fGFbZis0Pj4yXSl8fGUxZShsLG0pKSxBPTB8TnMobCxBLGMpfWZ1bmN0aW9uIHQxZShsLGMpe3ZhciBBLGY9MCxwPTAsbT0wLHc9MCxiPTA7Zm9yKEE9K19bNDArKHA9MHxhWzExMisoMHxhWzE2KyhjfD0wKT4+Ml0pPj4yXSk+PjNdLygrKCgwfGFbKG09cCs4fDApPj4yXSk+Pj4wKSs0Mjk0''@;'; + put 'put ''OTY3Mjk2KisoKDB8YVttKzQ+PjJdKT4+PjApKSxtPTB8U3MobHw9MCxjKTttOykoMHwoZj0wfGFbKDM9PSgwfChwPTMmYVttPj4yXSkpP206bSs0OHwwKSs0MD4+Ml0pKT09KDB8YykmJihmPTB8YVsoMj09KDB8cCk/bTptKy00OHwwKSs0MD4+Ml0pLCgwfGFbMzIrKHA9MHxhWzExMisoMHxh''@;'; + put 'put ''W2YrMTY+PjJdKT4+Ml0pPj4yXSk9PSgwfGMpJiYwPT0rX1sodz1wKzQwfDApPj4zXSYmKF9bdz4+M109QSooKygoMHxhWyhiPXArOHwwKT4+Ml0pPj4+MCkrNDI5NDk2NzI5NiorKCgwfGFbYis0Pj4yXSk+Pj4wKSksISgwPT0oMHxhWyhwPXArMTZ8MCk+PjJdKSYwPT0oMHxhW3ArND4+Ml0p''@;'; + put 'put ''KSkmJnQxZShsLGYpLG09MHxOcyhsLG0sYyl9ZnVuY3Rpb24gbjFlKGwsYyl7dmFyIGYscDtsfD0wLGN8PTAsZj0wfHZyKDgpLGFbZj4+Ml09YyxhWygwPT0oMHwocD0wfGFbKGM9bCs0fDApPj4yXSkpP2w6cCs0fDApPj4yXT1mLGFbYz4+Ml09Zn1mdW5jdGlvbiByMWUobCl7dmFyIGYsYz0w''@;'; + put 'put ''O3JldHVybihmPTB8YVsobHw9MCk+PjJdKT8oYz0wfGFbZj4+Ml0sYVtsPj4yXT1hW2YrND4+Ml0sRnQoZiksMHxhW2w+PjJdfHwoYVtsKzQ+PjJdPTApKTpjPTAsMHxjfWZ1bmN0aW9uIGkxZShsLGMsZil7Znw9MDt2YXIgYixwPTAsbT0wLEE9MCx3PTAsaz0wLE09MDtmb3Iodz0wfGFbYVsx''@;'; + put 'put ''MTIrKDB8YVsxNisoY3w9MCk+PjJdKT4+Ml0+PjJdLEE9MHxTcyhsfD0wLGMpLHc9MHxJTCgwfCh3PTB8emwoMCwwfHcsMCwxKSksMHxEbiwzMiksYj1EbjtBOykoMHwocD0wfGFbKDM9PSgwfChtPTMmYVtBPj4yXSkpP0E6QSs0OHwwKSs0MD4+Ml0pKT09KDB8YykmJihwPTB8YVsoMj09KDB8''@;'; + put 'put ''bSk/QTpBKy00OHwwKSs0MD4+Ml0pLCgwfHApIT0oMHxmKSYmYj4+PjA8KE09MHxhWzQrKG09az0wfGFbMTEyKygwfGFbcCsxNj4+Ml0pPj4yXSk+PjJdKT4+PjB8KCgwfGIpPT0oMHxNKT93Pj4+MDwoMHxhW20+PjJdKT4+PjA6MCkmJihhWyhNPWspPj4yXT13LGFbTSs0Pj4yXT1iLGkxZShs''@;'; + put 'put ''LHAsYykpLEE9MHxOcyhsLEEsYyl9ZnVuY3Rpb24gRTllKGwsYyl7dmFyIGY9MCxwPTAsbT0wLEE9MDtmb3IobT0wLEE9MHxTcyhsfD0wLGN8PTApOzspe2lmKCFBKXtmPTE7YnJlYWt9aWYoKDB8KGY9MHxhWygzPT0oMHwocD0zJmFbQT4+Ml0pKT9BOkErNDh8MCkrNDA+PjJdKSk9PSgwfGMp''@;'; + put 'put ''JiYoZj0wfGFbKDI9PSgwfHApP0E6QSstNDh8MCkrNDA+PjJdKSwoMHxmKSE9KDB8Yykpe2lmKG0pe2lmKCgwfG0pIT0oMHxmKSl7Zj0wO2JyZWFrfWY9bX19ZWxzZSBmPW07bT1mLEE9MHxOcyhsLEEsYyl9cmV0dXJuIDB8Zn1mdW5jdGlvbiBvMWUobCxjLGYscCl7bHw9MCxjfD0wLGZ8PTAs''@;'; + put 'put ''cHw9MDt2YXIgRyxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wO2ZvcihHPTB8dnIoNzIpLGFbRys2MD4+Ml09MCxhW0crNTY+PjJdPWwsaz1sKzE2fDAsbT0wLE09MCx3PTEsYj0wLEQ9MDshKCgwfHcpPigwfGFbMTgwKyhBPTB8YVtrPj4yXSk+PjJdKSk7KUE9MHxvMWUoMHxhWygw''@;'; + put 'put ''fGFbQSsxODQ+PjJdKSsodzw8Mik+PjJdLGMsZixwKSxtPStfW0E+PjNdK20sMHxiJiYoYVtiKzUyPj4yXT1BKSxNPU0rMXwwLHc9dysxfDAsYj1BLEQ9MD09KDB8RCk/QTpEO2ZvcihSPTB8RHQobCksQT1EO1I7KTB8YVthWzExMisoMHxhWyh3PVIrMTZ8MCk+PjJdKT4+Ml0+PjJdP3c9TToo''@;'; + put 'put ''az0wfFQ5ZShSLGYpLG09K19baz4+M10rbSwwfGImJihhW2IrNTI+PjJdPWspLGFbYVsxMTIrKDB8YVt3Pj4yXSk+PjJdPj4yXT1sLHc9TSsxfDAsYj1rLEE9MD09KDB8QSk/azpBKSxSPTB8enQobCxSKSxNPXc7cmV0dXJuIGFbRys2ND4+Ml09TSxNPyhfW0crOD4+M109bSxtPStmdW5jdGlv''@;'; + put 'put ''biBxVihsLGMpe3ZhciBmPTA7cmV0dXJuKyhmPTA9PShmPStNbCgwfGFbNTYrKGx8PTApPj4yXSxjfD0wLDAsMCkpPytfW2wrOD4+M106KGY9K0QwKCsgK19bbCs4Pj4zXSkrMipmKSpmKX0oRyxwKSk6bT0rYksobCxjKSxfW0c+PjNdPW0sYVtHKzQ4Pj4yXT1BLDB8R31mdW5jdGlvbiB5Syhs''@;'; + put 'put ''KXt2YXIgUixHLGM9MCxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEs9MCxwZT0wLGdlPTA7Rz1sZSxsZT1sZSsxNzZ8MCxtPUcrMTQ0fDAsaz1HKzMyfDAsdz1HLFI9MHxhWzY0KyhsfD0wKT4+Ml07ZTpkb3tpZigwfFIpe2ZvcihNPTB8dnIoUjw8MikscD0wLGY9Yz1sKzQ4fDA7''@;'; + put 'put ''Zj0wfGFbZj4+Ml0sISgoMHxwKT49KDB8UikpOylhW00rKHA8PDIpPj4yXT1mLHA9cCsxfDAsZj1mKzUyfDA7Zm9yKHgxKE0sUiw0LDgwKSxiPTB8dnIoUjw8MyksZj0wOyEoKDB8Zik+PSgwfFIpKTspX1tiKyhmPDwzKT4+M109K19bYVtNKyhmPDwyKT4+Ml0+PjNdLGY9ZisxfDA7Zm9yKCtf''@;'; + put 'put ''W2w+PjNdPT0oQT0rX1tsKzg+PjNdKT8oYVttPj4yXT1hWyh3PWwrMTZ8MCk+PjJdLGFbbSs0Pj4yXT1hW3crND4+Ml0sYVttKzg+PjJdPWFbdys4Pj4yXSxhW20rMTI+PjJdPWFbdysxMj4+Ml0sYVttKzE2Pj4yXT1hW3crMTY+PjJdLGFbbSsyMD4+Ml09YVt3KzIwPj4yXSxhW20rMjQ+PjJd''@;'; + put 'put ''PWFbdysyND4+Ml0sYVttKzI4Pj4yXT1hW3crMjg+PjJdLHc9MHxzMWUoUixiLG0pKTooSz0rX1tsKzQwPj4zXSxwZT0rX1tsKzMyPj4zXSxfW3c+PjNdPStfW2wrMTY+PjNdLF9bdys4Pj4zXT0rX1tsKzI0Pj4zXSxBPS41KihwZStLLStEMCgrKDQqQSsoZ2U9Sy1wZSkqZ2UpKSksX1t3KzE2''@;'; + put 'put ''Pj4zXT1wZS1BLF9bdysyND4+M109Sy1BLGFbbT4+Ml09YVt3Pj4yXSxhW20rND4+Ml09YVt3KzQ+PjJdLGFbbSs4Pj4yXT1hW3crOD4+Ml0sYVttKzEyPj4yXT1hW3crMTI+PjJdLGFbbSsxNj4+Ml09YVt3KzE2Pj4yXSxhW20rMjA+PjJdPWFbdysyMD4+Ml0sYVttKzI0Pj4yXT1hW3crMjQ+''@;'; + put 'put ''PjJdLGFbbSsyOD4+Ml09YVt3KzI4Pj4yXSx3PTB8czFlKFIsYixtKSkscD0wfGFbMTU3MTJdLGY9MDshKCgwfGYpPj0oMHxSKSk7KWFbKGs9MTYrKDB8YVtNKyhmPDwyKT4+Ml0pfDApPj4yXT1hWyhtPXcrKGY8PDUpfDApPj4yXSxhW2srND4+Ml09YVttKzQ+PjJdLGFbays4Pj4yXT1hW20r''@;'; + put 'put ''OD4+Ml0sYVtrKzEyPj4yXT1hW20rMTI+PjJdLGFbaysxNj4+Ml09YVttKzE2Pj4yXSxhW2srMjA+PjJdPWFbbSsyMD4+Ml0sYVtrKzI0Pj4yXT1hW20rMjQ+PjJdLGFbaysyOD4+Ml09YVttKzI4Pj4yXSxmPWYrMXwwO2ZvcihGdChNKSxGdChiKSxGdCh3KSxmPTA7Oyl7aWYoYz0wfGFbYz4+''@;'; + put 'put ''Ml0sKDB8Zik+PSgwfFIpKWJyZWFrIGU7MHxhW2MrNjA+PjJdfHx5SyhjKSxjPWMrNTJ8MCxmPWYrMXwwfX19d2hpbGUoMCk7bGU9R31mdW5jdGlvbiB3SyhsKXt2YXIgbSxjPTAsZj0wLEE9MCx3PTAsYj0wLGs9MCxNPTA7aWYobT1sZSxsZT1sZSs0OHwwLDB8YVs2MCsobHw9MCk+PjJdKWs9''@;'; + put 'put ''K19bbCsyND4+M10sdz0rX1tsKzMyPj4zXSxBPStfW2wrNDA+PjNdLF9bMTYrKGI9MHxhWyhmPTE2KyhjPTB8YVtsKzU2Pj4yXSl8MCk+PjJdKT4+M109K19bbCsxNj4+M10sX1tiKzI0Pj4zXT1rLF9bMzIrKGw9MHxhW2Y+PjJdKT4+M109LjAxMzg4ODg4ODg4ODg4ODg4OCp3LF9bbCs0MD4+''@;'; + put 'put ''M109LjAxMzg4ODg4ODg4ODg4ODg4OCpBLHh5KGMsMSZhWzExNisoMHxhWzE2KygwfGNyKGMpKT4+Ml0pPj4yXSksZnVuY3Rpb24gbDFlKGwpe2x8PTA7dmFyIGMsZixwLG07bT1sZSxsZT1sZSs0OHwwLHA9bSxjPW0rOHwwLDB8KGY9MHxhWzQ3MTUwXSkmJjA9PSgwfGZlWygwfEhvKGwsZikp''@;'; + put 'put ''Pj4wXSkmJihfW3A+PjNdPS43KitfWzgwKygwfGFbbCsxNj4+Ml0pPj4zXSxvbyhjLDk0MTY4LHApLFZsKGwsMHxhWzQ3MTUwXSxjKSksZEQobCksbGU9bX0oYyk7ZWxzZXtmb3IoYz1sKzQ4fDA7Yz0wfGFbYz4+Ml07KXdLKGMpLGM9Yys1MnwwO2s9K19bbCsyND4+M10tLjUqKE09K19bbCs0''@;'; + put 'put ''MD4+M10pLF9bMTYrKGI9MHxhWzE2KygwfGFbbCs1Nj4+Ml0pPj4yXSk+PjNdPUE9K19bbCsxNj4+M10tLjUqKHc9K19bbCszMj4+M10pLF9bYisyND4+M109ayxfW2IrMzI+PjNdPUErdyxfW2IrNDA+PjNdPWsrTX1sZT1tfWZ1bmN0aW9uIGExZShsKXt2YXIgcCxjPTAsZj0wO2ZvcihwPTB8''@;'; + put 'put ''YVs2NCsobHw9MCk+PjJdLGM9bCs0OHwwLGY9MDtjPTB8YVtjPj4yXSwhKCgwfGYpPj0oMHxwKSk7KWExZShjKSxjPWMrNTJ8MCxmPWYrMXwwO0Z0KGwpfWZ1bmN0aW9uIFQ5ZShsLGMpe3ZhciBmO3JldHVybiBsfD0wLGN8PTAsZj0wfHZyKDcyKSxfW2Y+PjNdPStiSyhsLGMpLGFbZis2MD4+''@;'; + put 'put ''Ml09MSxhW2YrNTY+PjJdPWwsMHxmfWZ1bmN0aW9uIGJLKGwsYyl7dmFyIGY7cmV0dXJuKygwPT0oZj0rTWwobHw9MCxjfD0wLDEsMCkpPzFlMzoxZTMqZil9ZnVuY3Rpb24gczFlKGwsYyxmKXtsfD0wLGN8PTAsZnw9MDt2YXIgQSx3LHA9MCxtPTAsYj0wO2Zvcih3PWxlLGxlPWxlKzMyfDAs''@;'; + put 'put ''QT13LHA9MCxtPTA7ISgoMHxwKT49KDB8bCkpOyliPStfW2MrKHA8PDMpPj4zXSttLHA9cCsxfDAsbT1iO3JldHVybiBtPitfW2YrMjQ+PjNdKitfW2YrMTY+PjNdKy4wMDE/cD0wOihwPTB8dnIobDw8NSksYVtBPj4yXT1hW2Y+PjJdLGFbQSs0Pj4yXT1hW2YrND4+Ml0sYVtBKzg+PjJdPWFb''@;'; + put 'put ''Zis4Pj4yXSxhW0ErMTI+PjJdPWFbZisxMj4+Ml0sYVtBKzE2Pj4yXT1hW2YrMTY+PjJdLGFbQSsyMD4+Ml09YVtmKzIwPj4yXSxhW0ErMjQ+PjJdPWFbZisyND4+Ml0sYVtBKzI4Pj4yXT1hW2YrMjg+PjJdLGVqKGwsYyxwLDAsMCwxLDAsMSxBKSksbGU9dywwfHB9ZnVuY3Rpb24gZWoobCxj''@;'; + put 'put ''LGYscCxtLEEsdyxiLGspe2x8PTAsY3w9MCxmfD0wLHB8PTAsbT0rbSxBPStBLHc9K3csYj0rYjt2YXIgUmUsSGUsVmUscWUsTT0wLEQ9MCxSPTAsRz0wLEs9MCxnZT0wLGJlPTAsTGU9MCxudD0wLFdlPTA7cWU9bGUsbGU9bGUrMTEyfDAsVmU9cWUrNzJ8MCxHPXFlKzMyfDAsTT1xZSxMZT0r''@;'; + put 'put ''X1sxNisoa3w9MCkrKCgxJiEoKEs9K19bKFJlPWsrMTZ8MCk+PjNdKTwrX1soSGU9aysyNHwwKT4+M10pKTw8Myk+PjNdO2Rve2lmKCgwfGwpPj0xKXtpZighcCl7TGU9KHc9K19bYz4+M10pLyhXZT1MZSpMZSksV2UvPXcsYVtWZT4+Ml09YVtrPj4yXSxhW1ZlKzQ+PjJdPWFbays0Pj4yXSxh''@;'; + put 'put ''W1ZlKzg+PjJdPWFbays4Pj4yXSxhW1ZlKzEyPj4yXT1hW2srMTI+PjJdLGFbVmUrMTY+PjJdPWFbaysxNj4+Ml0sYVtWZSsyMD4+Ml09YVtrKzIwPj4yXSxhW1ZlKzI0Pj4yXT1hW2srMjQ+PjJdLGFbVmUrMjg+PjJdPWFbaysyOD4+Ml0sZWoobCxjLGYsMSx3LHcsdyxMZT5XZT9MZTpXZSxW''@;'; + put 'put ''ZSk7YnJlYWt9aWYoKDB8bCk+KDB8cCkmJihEPShiZT0rX1tjKyhwPDwzKT4+M10pPG0/bTpiZSxnZT1iZT5BP0E6YmUsUj0oYmUrPXcpL0xlLChSPShXZT0oUio9UikvZ2UpPihSPUQvUik/V2U6Uik8PWIpKXthW1ZlPj4yXT1hW2s+PjJdLGFbVmUrND4+Ml09YVtrKzQ+PjJdLGFbVmUrOD4+''@;'; + put 'put ''Ml09YVtrKzg+PjJdLGFbVmUrMTI+PjJdPWFbaysxMj4+Ml0sYVtWZSsxNj4+Ml09YVtrKzE2Pj4yXSxhW1ZlKzIwPj4yXT1hW2srMjA+PjJdLGFbVmUrMjQ+PjJdPWFbaysyND4+Ml0sYVtWZSsyOD4+Ml09YVtrKzI4Pj4yXSxlaihsLGMsZixwKzF8MCxELGdlLGJlLFIsVmUpO2JyZWFrfWlm''@;'; + put 'put ''KEs9dy9MZSxMZT09KEQ9K19bUmU+PjNdKSl7Zm9yKFI9MS9LLEc9ays4fDAsRD0rX1trPj4zXS0uNSpELE09MDshKCgwfE0pPj0oMHxwKSk7KV9bZisoTTw8NSkrMjQ+PjNdPUssX1tmKyhNPDw1KSsxNj4+M109V2U9K19bYysoTTw8Myk+PjNdKlIsX1tmKyhNPDw1KSs4Pj4zXT0uNSooK19b''@;'; + put 'put ''SGU+PjNdLUspKyArX1tHPj4zXSxfW2YrKE08PDUpPj4zXT0uNSpXZStELEQ9V2UrRCxNPU0rMXwwO19bRz4+M109K19bRz4+M10tLjUqSyxNPTF9ZWxzZXtmb3IoUj0xL0ssRD0uNSorX1tIZT4+M10rICtfW2srOD4+M10sTT0wOyEoKDB8TSk+PSgwfHApKTspX1tmKyhNPDw1KSsxNj4+M109''@;'; + put 'put ''SyxfW2YrKE08PDUpKzI0Pj4zXT1XZT0rX1tjKyhNPDwzKT4+M10qUixfW2YrKE08PDUpPj4zXT0uNSooSy0rX1tSZT4+M10pKyArX1trPj4zXSxfW2YrKE08PDUpKzg+PjNdPUQtLjUqV2UsRC09V2UsTT1NKzF8MDtfW2s+PjNdPStfW2s+PjNdKy41KkssTT0wfV9bKG50PWsrMTYrKE08PDMp''@;'; + put 'put ''fDApPj4zXT0rX1tudD4+M10tSyxhW1ZlPj4yXT1hW2s+PjJdLGFbVmUrND4+Ml09YVtrKzQ+PjJdLGFbVmUrOD4+Ml09YVtrKzg+PjJdLGFbVmUrMTI+PjJdPWFbaysxMj4+Ml0sYVtWZSsxNj4+Ml09YVtrKzE2Pj4yXSxhW1ZlKzIwPj4yXT1hW2srMjA+PjJdLGFbVmUrMjQ+PjJdPWFbaysy''@;'; + put 'put ''ND4+Ml0sYVtWZSsyOD4+Ml09YVtrKzI4Pj4yXSxlaihsLXB8MCxjKyhwPDwzKXwwLGYrKHA8PDUpfDAsMCwwLDAsMCwxLFZlKX19d2hpbGUoMCk7bGU9cWV9ZnVuY3Rpb24gTDllKGwsYyl7Y3w9MDt2YXIgYixrLE0sRCxHLEssZj0wLHA9MCxtPTAsQT0wLHc9MCxSPTA7Zm9yKEc9bGUsbGU9''@;'; + put 'put ''bGUrMTZ8MCxEPUcscD0wfGFbKDI9PSgwfChmPTMmYVsobHw9MCk+PjJdKSk/bDpsKy00OHwwKSs0MD4+Ml0sZj0wfGFbKDM9PSgwfGYpP2w6bCs0OHwwKSs0MD4+Ml0sYVsoTT1HKzR8MCk+PjJdPUE9MHxhWzIxMisoMHxhWyhLPXArMTZ8MCk+PjJdKT4+Ml0sYVtEPj4yXT1tPTB8YVsyMTIr''@;'; + put 'put ''KDB8YVsodz1mKzE2fDApPj4yXSk+PjJdLGs9MHx2cigxMiksbD1BLGI9bSwwfGZlWzExOCsoMHxhW0s+PjJdKT4+MF0mJihhW00+PjJdPWw9MHxhWzQ4KygwfGFbMTQwKygwfGFbbCsxNj4+Ml0pPj4yXSk+PjJdLHA9QSxBPWwpLDB8ZmVbMTE4KygwfGFbdz4+Ml0pPj4wXT8oYVtEPj4yXT13''@;'; + put 'put ''PTB8YVs0OCsoMHxhWzE0MCsoMHxhW2IrMTY+PjJdKT4+Ml0pPj4yXSxmPW0sbT13KTp3PWIsKDB8KEE9MHxhWzQ0KygwfGFbMTQwKygwfGFbQSsxNj4+Ml0pPj4yXSk+PjJdKSk8PSgwfChtPTB8YVs0NCsoMHxhWzE0MCsoMHxhW20rMTY+PjJdKT4+Ml0pPj4yXSkpPygwfG0pPigwfEEpPyhf''@;'; + put 'put ''SyhrLG0sZixBLEQsYyksbT1sPTB8YVtEPj4yXSxmPUQsUj0xMSk6QT13OihfSyhrLEEscCxtLE0sYykscD1sPTB8YVtNPj4yXSxtPWYsZj1NLFI9MTEpOzExPT0oMHxSKSYmKGFbZj4+Ml09YVs0OCsoMHxhWzE0MCsoMHxhW2wrMTY+PjJdKT4+Ml0pPj4yXSxmPW0sbD0wfGFbTT4+Ml0sQT0w''@;'; + put 'put ''fGFbRD4+Ml0pLCgwfGwpIT0oMHxBKTspdGooayxsLDAscCxjKSx0aihrLEEsZiwwLGMpLGFbTT4+Ml09YVs0OCsoMHxhWzE0MCsoMHxhW2wrMTY+PjJdKT4+Ml0pPj4yXSxwPWwsbT1BLGY9RCxsPUEsUj0xMTtyZXR1cm4gdGooayxBLGYscCxjKSxsZT1HLDB8a31mdW5jdGlvbiBPOWUobCl7''@;'; + put 'put ''YVsobHw9MCk+PjJdPTB9ZnVuY3Rpb24gX0sobCxjLGYscCxtLEEpe2x8PTAsY3w9MCxmfD0wLHB8PTAsQXw9MDt2YXIgdz0wLGI9MDtmb3IoYj1tfD0wO3c9MHxhW2I+PjJdLCEoKDB8Yyk8PSgwfHApKTspdGoobCx3LGYsMCxBKSxjPWMrLTF8MCxiPTQ4KygwfGFbMTQwKygwfGFbdysxNj4+''@;'; + put 'put ''Ml0pPj4yXSl8MCxmPXc7YVttPj4yXT1mfWZ1bmN0aW9uIHRqKGwsYyxmLHAsbSl7bHw9MCxmfD0wLHB8PTAsbXw9MDt2YXIgQT0wLHc9MDtmb3IoQT0wfER0KGN8PTApO0E7KXc9MHxhW0ErMTY+PjJdLCEoKDB8QSk9PSgwfHApfCgoMHxBKT09KDB8Zik/MTooMHxhW3crMjEyPj4yXSkhPSgw''@;'; + put 'put ''fGMpKSkmJjA9PSgwfGZlW3crMTE4Pj4wXSkmJnUxZShsLDB8YkQoQSxtLDApKSxBPTB8enQoYyxBKTtmb3Iodz1jKzE2fDAsYz0xOyEoKDB8Yyk+KDB8YVsxODArKEE9MHxhW3c+PjJdKT4+Ml0pKTspKDB8KEE9MHxhWygwfGFbQSsxODQ+PjJdKSsoYzw8Mik+PjJdKSk9PSgwfGYpfCgwfEEp''@;'; + put 'put ''PT0oMHxwKXx8dTFlKGwsMHxCOWUoQSxtKSksYz1jKzF8MH1mdW5jdGlvbiB1MWUobCxjKXtjfD0wO3ZhciBwLG0sZj0wLEE9MDttPTB8YVsocD00KyhsfD0wKXwwKT4+Ml0sZj0wfGFbKEE9bCs4fDApPj4yXTtkb3tpZigoMHxtKT09KDB8YVtsPj4yXSkpe2lmKGYpe2FbcD4+Ml09bTw8MSxm''@;'; + put 'put ''PTB8VjAoZixtPDwzKSxhW0E+PjJdPWY7YnJlYWt9Zj0wfFFuKDQwMCksYVtBPj4yXT1mLGFbcD4+Ml09MTAwO2JyZWFrfX13aGlsZSgwKTthW2w+PjJdPTErKEE9MHxhW2w+PjJdKSxhW2YrKEE8PDIpPj4yXT1jfWZ1bmN0aW9uIEI5ZShsLGMpe2x8PTAsY3w9MDt2YXIgdyxiLGssZj0wLHA9''@;'; + put 'put ''MCxtPTAsQT0wLE09MCxEPTAsUj0wO3JldHVybiBrPTB8dnIoOCksZj0rX1sxNisobD0wfGFbbCsxNj4+Ml0pPj4zXSxiPStfW2wrMjQ+PjNdLHA9K19bbCszMj4+M10sdz0rX1tsKzQwPj4zXSxhW2srND4+Ml09NCxsPTB8dnIoNjQpLGFbaz4+Ml09bCwwfGZlW2MrOD4+MF0/KEE9Zi0obT0r''@;'; + put 'put ''am5bYz4+Ml0pLG09cCttLHA9dysoUj0ram5bYys0Pj4yXSksZj1iLVIpOihBPWYqKFI9K2puW2M+PjJdKS0obT0uNSoocCtmKSooUistMSkpLG09cCpSLW0scD13KihEPStqbltjKzQ+PjJdKS0oTT0uNSoodytiKSooRCstMSkpLGY9YipELU0pLF9bbD4+M109QSxfW2wrOD4+M109ZixfW2wr''@;'; + put 'put ''MTY+PjNdPUEsX1tsKzI0Pj4zXT1wLF9bbCszMj4+M109bSxfW2wrNDA+PjNdPXAsX1tsKzQ4Pj4zXT1tLF9bbCs1Nj4+M109ZiwwfGt9ZnVuY3Rpb24gbmoobCxjLGYscCl7bHw9MCxmfD0wO3ZhciBtPTAsQT0wLHc9MDtmb3IoZmVbKHB8PTApKygwfGFbMTIwKygwfGFbMTYrKGN8PTApPj4y''@;'; + put 'put ''XSk+PjJdKT4+MF09MSxZbihmLGMsMSksdz0wfFNzKGwsYyk7dzspKDB8KG09MHxhWygzPT0oMHwoQT0zJmFbdz4+Ml0pKT93OncrNDh8MCkrNDA+PjJdKSk9PSgwfGMpJiYobT0wfGFbKDI9PSgwfEEpP3c6dystNDh8MCkrNDA+PjJdKSwwfGZlW3ArKDB8YVsxMjArKDB8YVttKzE2Pj4yXSk+''@;'; + put 'put ''PjJdKT4+MF18fG5qKGwsbSxmLHApLHc9MHxOcyhsLHcsYyl9ZnVuY3Rpb24gYzFlKGwpe3ZhciBjO3JldHVybiBsfD0wLGM9MHxRbigyNCksYVs0NjkyNF09YyxhW2M+PjJdPTB8aXMoMTgyMDQsMHxhWzQ1ODFdKSxhW2MrMTY+PjJdPTAsYVtjKzEyPj4yXT0wLGFbYys0Pj4yXT0wfGYxZShs''@;'; + put 'put ''KSwwfGN9ZnVuY3Rpb24gZjFlKGwpe3ZhciBjLGY7cmV0dXJuIGx8PTAsYz0wfFFuKDE2KSxhW2MrMTI+PjJdPTAsZj0wfFFuKDIwKmx8MCksYVtjPj4yXT1mLGFbYys4Pj4yXT1mKygyMCpsfDApLGFbYys0Pj4yXT1mLDB8Y31mdW5jdGlvbiBrSyhsLGMpe3ZhciBtLGY9MCxwPTA7KDB8KGY9''@;'; + put 'put ''MHxhWyhtPTEyKyhsfD0wKXwwKT4+Ml0pKTwoMHwoY3w9MCkpJiYocD0oMHwocD1mPDwxKSk8KDB8Yyk/YzpwLDB8KGY9MHxhWyhjPWwrMTZ8MCk+PjJdKSYmRnQoZiksYVtjPj4yXT0wfFFuKHA8PDMpLGFbbT4+Ml09cCl9ZnVuY3Rpb24gU0sobCl7TmwoMHxhWyhsfD0wKT4+Ml0pLGZ1bmN0''@;'; + put 'put ''aW9uIE1LKGwpe2x8PTA7Zm9yKHZhciBjPTA7bDspYz0wfGFbbCsxMj4+Ml0sRnQoMHxhW2w+PjJdKSxGdChsKSxsPWN9KDB8YVtsKzQ+PjJdKSxGdCgwfGFbbCsxNj4+Ml0pLEZ0KGwpfWZ1bmN0aW9uIEVLKGwsYyxmLHApe2x8PTAsZnw9MCxwfD0wO3ZhciBBLGIsdz0wO0E9bGUsbGU9bGUr''@;'; + put 'put ''MzJ8MCxhWyh3PUErMTJ8MCk+PjJdPWN8PTAsYVt3KzQ+PjJdPWYsdz04KygwfG1pWzYzJmFbKGI9MHxhW2w+PjJdKT4+Ml1dKGIsdywxKSl8MCxhW3c+PjJdPTB8ZnVuY3Rpb24geEsobCxjLGYpe2N8PTAsZnw9MDt2YXIgcDtyZXR1cm4gYVsocD0yMCsobHw9MCl8MCk+PjJdPTgrKGw9MHxh''@;'; + put 'put ''W3A+PjJdKSxhW2w+PjJdPWMsYVtsKzQ+PjJdPWYsMHxsfShsLHAsMHxhW3c+PjJdKSxsZT1BfWZ1bmN0aW9uIEd5KGwpe3JldHVybisgK19bKGx8PTApPj4zXX1mdW5jdGlvbiBaayhsKXtyZXR1cm4gMHxhWzgrKGx8PTApPj4yXX1mdW5jdGlvbiB6ayhsKXtyZXR1cm4gMHx+fitfWzE2Kyhs''@;'; + put 'put ''fD0wKT4+M119ZnVuY3Rpb24gbkwobCxjLGYscCxtLEEpe2x8PTAscHw9MCxtfD0wLEF8PTAsKDB8KGM9MHxhWyhjfD0wKT4+Ml0pKT49KDB8YVsoZnw9MCk+PjJdKSYmKGFbZj4+Ml09Yz1jKzEwfDAsYVtwPj4yXT0wfFYwKDB8YVtwPj4yXSwwfEFyKGw8PDMsYykpLGFbbT4+Ml09MHxWMCgw''@;'; + put 'put ''fGFbbT4+Ml0sYVtmPj4yXTw8MyksYVtBPj4yXT0wfFYwKDB8YVtBPj4yXSxhW2Y+PjJdPDwzKSl9ZnVuY3Rpb24gSUsobCxjLGYscCxtLEEsdyxiLGssTSxEKXtsfD0wLGM9K2MsZnw9MCxwfD0wLG18PTAsQXw9MCx3fD0wLGJ8PTAsa3w9MCxEfD0wO3ZhciBSPTAsRz0wLEs9MCxwZT0wLGdl''@;'; + put 'put ''PTA7X1soTXw9MCk+PjNdPStfW00+PjNdKzE7ZTpkb3tpZigwfGwpe2lmKHBlPTB8YVtsKzE2Pj4yXSwwfChSPTB8YVtsKzQwPj4yXSkpZG97aWYobkwocGUsbSxBLHcsYixrKSwoMHx6aygwfEx1KFIpKSkhPSgwfHApKXtmb3IoSz0wfFprKDB8THUoUikpLEc9MDshKCgwfEcpPj0oMHxwZSkp''@;'; + put 'put ''OylfWygwfGFbdz4+Ml0pKygoMHxBcigwfGFbbT4+Ml0scGUpKStHPDwzKT4+M109K19bSysoRzw8Myk+PjNdLEc9RysxfDA7Z2U9K0d5KDB8THUoUikpLF9bKDB8YVtiPj4yXSkrKGFbbT4+Ml08PDMpPj4zXT1nZSxnZT0rYkEoZixLLHBlKSxfWygwfGFbaz4+Ml0pKygoSz0wfGFbbT4+Ml0p''@;'; + put 'put ''PDwzKT4+M109Z2UsYVttPj4yXT1LKzF9Uj0wfEdtKFIpfXdoaWxlKDAhPSgwfFIpKTtpZigwfGFbKEs9bCszNnwwKT4+Ml0pe2lmKGdlPStiQSgwfGFbbCsyMD4+Ml0sZixwZSksISgrX1tsKzI0Pj4zXTxnZSpjKSlmb3IoRz0xPDxwZSxSPTA7Oyl7aWYoKDB8Uik+PSgwfEcpKWJyZWFrIGU7''@;'; + put 'put ''SUsoMHxhWygwfGFbSz4+Ml0pKyhSPDwyKT4+Ml0sYyxmLHAsbSxBLHcsYixrLE0sRCksUj1SKzF8MH1mb3IobkwocGUsbSxBLHcsYixrKSxHPWwrMzJ8MCxSPTA7ISgoMHxSKT49KDB8cGUpKTspX1soMHxhW3c+PjJdKSsoKDB8QXIoMHxhW20+PjJdLHBlKSkrUjw8Myk+PjNdPStfWygwfGFb''@;'; + put 'put ''Rz4+Ml0pKyhSPDwzKT4+M10sUj1SKzF8MDtfWygwfGFbYj4+Ml0pKyhhW20+PjJdPDwzKT4+M109K19bbCs4Pj4zXSxnZT0rYkEoMHxhW0c+PjJdLGYscGUpLF9bKDB8YVtrPj4yXSkrKChiPTB8YVttPj4yXSk8PDMpPj4zXT1nZSxhW20+PjJdPWIrMX19fXdoaWxlKDApfWZ1bmN0aW9uIHJM''@;'; + put 'put ''KGwsYyxmLHAsbSxBLHcsYixrLE0sRCl7dmFyIFI7Yz0rYyxmfD0wLHB8PTAsbXw9MCxBfD0wLHd8PTAsYnw9MCxrfD0wLER8PTAsUj0wfGFbMTYrKGx8PTApPj4yXSxfWyhNfD0wKT4+M109MCxhW20+PjJdPTAsYVtEPj4yXT0wLGFbQT4+Ml09MTAsMHxhW3c+PjJdfHwoYVt3Pj4yXT0wfFFu''@;'; + put 'put ''KDgwKlJ8MCkpLDB8YVtiPj4yXXx8KGFbYj4+Ml09MHxRbihhW0E+PjJdPDwzKSksMHxhW2s+PjJdfHwoYVtrPj4yXT0wfFFuKGFbQT4+Ml08PDMpKSxJSyhsLGMsZixwLG0sQSx3LGIsayxNLEQpfWZ1bmN0aW9uIG9qKGwsYyxmLHAsbSxBLHcsYil7Y3w9MCxmfD0wLHA9K3AsbT0rbSxBPStB''@;'; + put 'put ''LHd8PTAsYnw9MDt2YXIgaz0wLE09MCxEPTA7Zm9yKEQ9MHxhWyhsfD0wKT4+Ml0sTT0wfGFbbCsxNj4+Ml0saz0wOzQhPSgwfGspOylfW3crKGs8PDMpPj4zXT0wLGs9aysxfDA7Zm9yKGFbYj4+Ml09MCxNPTB8QXIoTSxEKSxrPTA7ISgoMHxrKT49KDB8TSkpOylfW2MrKGs8PDMpPj4zXT0w''@;'; + put 'put ''LGs9aysxfDA7Zm9yKEs3KGwsbCxmLGMscCxtLEEsdyksREsobCxjLHcpLHA9MS8rKDB8RCksaz0wOzQhPSgwfGspOylfWyhEPXcrKGs8PDMpfDApPj4zXT0rX1tEPj4zXSpwLGs9aysxfDB9ZnVuY3Rpb24gSzcobCxjLGYscCxtLEEsdyxiKXtsfD0wLGN8PTAsZnw9MCxwfD0wLG09K20sQT0r''@;'; + put 'put ''QSx3PSt3LGJ8PTA7dmFyIGs9MCxNPTAsRD0wLFI9MCxHPTAsSz0wLHBlPTAsZ2U9MCxiZT0wLE9lPTAsTGU9MCxSZT0wLEhlPTAsVmU9MDtlOmRve2lmKDAhPSgwfGwpJjAhPSgwfGMpKXtpZigoMHxhW2w+PjJdKT4wJiYoMHxhW2M+PjJdKT4wKXtpZihLPTB8YVtsKzQwPj4yXSxHPTB8YVso''@;'; + put 'put ''UmU9Yys0MHwwKT4+Ml0sZ2U9K2JBKDB8YVsoaz1sKzMyfDApPj4yXSwwfGFbKEQ9YyszMnwwKT4+Ml0sSGU9MHxhW2wrMTY+PjJdKSwoUj0rX1tjKzI0Pj4zXSkrKE09K19bbCsyND4+M10pPGdlKm0pZm9yKF9bYj4+M109K19bYj4+M10rMSxwZT0wfGFbaz4+Ml0sUj0rX1tsKzg+PjNdLEs9''@;'; + put 'put ''MHxHayhsLEhlKSxHPTB8YVtEPj4yXSxNPStfW2MrOD4+M10sRD0wfEdrKGMsSGUpLGdlPjB8fFByKDk0Nzk4LDk0NjgxLDE5MSw5NDc2NCksUj1SKncqTSxNPStxbCgrZ2UsKygxLUEpKSxNPTEvKC0xPT1BP2dlKmdlOk0pLGs9MDs7KXtpZigoMHxrKT49KDB8SGUpKWJyZWFrIGU7X1socD1L''@;'; + put 'put ''KyhrPDwzKXwwKT4+M109KHc9UiooK19bcGUrKGs8PDMpPj4zXS0rX1tHKyhrPDwzKT4+M10pKk0pKyArX1twPj4zXSxfWyhwPUQrKGs8PDMpfDApPj4zXT0rX1twPj4zXS13LGs9aysxfDB9aWYoTGU9KDB8bCk9PSgwfGMpLChEPTAhPSgwfEspKSYoaz0wIT0oMHxHKSkpZm9yKGJlPWIrOHww''@;'; + put 'put ''LE9lPS0xPT1BLG09MS1BLEQ9Szs7KXtpZighRClicmVhayBlO2ZvcihLPTB8WmsoMHxMdShEKSksZ2U9K0d5KDB8THUoRCkpLGw9MHxXayhwLHBlPTB8emsoMHxMdShEKSksRCxIZSksZ2UqPXcsRz0wfGFbUmU+PjJdO0c7KXtjPTB8WmsoMHxMdShHKSksTT0rR3koMHxMdShHKSksYj0wfFdr''@;'; + put 'put ''KHAsaz0wfHprKDB8THUoRykpLEcsSGUpO3Q6ZG97aWYoISgoMHxwZSk9PSgwfGspfExlJigwfGspPCgwfHBlKSkpZm9yKF9bYmU+PjNdPStfW2JlPj4zXSsxLEE9K2R1KGYsSGUscGUsayksTSo9Z2UsUj0rcWwoK0EsK20pLFI9MS8oT2U/QSpBOlIpLGs9MDs7KXtpZigoMHxrKT49KDB8SGUp''@;'; + put 'put ''KWJyZWFrIHQ7X1soVmU9bCsoazw8Myl8MCk+PjNdPShBPU0qKCtfW0srKGs8PDMpPj4zXS0rX1tjKyhrPDwzKT4+M10pKlIpKyArX1tWZT4+M10sX1soVmU9Yisoazw8Myl8MCk+PjNdPStfW1ZlPj4zXS1BLGs9aysxfDB9fXdoaWxlKDApO0c9MHxHbShHKX1EPTB8R20oRCl9aWYoTGUpZm9y''@;'; + put 'put ''KHBlPTE8PEhlLEc9bCszNnwwLEQ9MDs7KXtpZigoMHxEKT49KDB8cGUpKWJyZWFrIGU7Zm9yKEs9MHxhWygwfGFbRz4+Ml0pKyhEPDwyKT4+Ml0saz1EOygwfGspIT0oMHxwZSk7KUs3KEssMHxhWygwfGFbRz4+Ml0pKyhrPDwyKT4+Ml0sZixwLG0sQSx3LGIpLGs9aysxfDA7RD1EKzF8MH1p''@;'; + put 'put ''ZighKER8IShNPlIpKSlmb3IoRz0xPDxIZSxEPWwrMzZ8MCxrPTA7Oyl7aWYoKDB8ayk+PSgwfEcpKWJyZWFrIGU7SzcoMHxhWygwfGFbRD4+Ml0pKyhrPDwyKT4+Ml0sYyxmLHAsbSxBLHcsYiksaz1rKzF8MH1pZighKGt8IShSPk0pKSlmb3IoRz0xPDxIZSxEPWMrMzZ8MCxrPTA7Oyl7aWYo''@;'; + put 'put ''KDB8ayk+PSgwfEcpKWJyZWFrIGU7SzcoMHxhWygwfGFbRD4+Ml0pKyhrPDwyKT4+Ml0sbCxmLHAsbSxBLHcsYiksaz1rKzF8MH1pZighRClmb3IoRz0xPDxIZSxEPWwrMzZ8MCxrPTA7Oyl7aWYoKDB8ayk+PSgwfEcpKWJyZWFrIGU7SzcoMHxhWygwfGFbRD4+Ml0pKyhrPDwyKT4+Ml0sYyxm''@;'; + put 'put ''LHAsbSxBLHcsYiksaz1rKzF8MH1mb3IoayYmUHIoMTM4Mzk0LDk0NjgxLDI3Myw5NDc2NCksRz0xPDxIZSxEPWMrMzZ8MCxrPTA7Oyl7aWYoKDB8ayk+PSgwfEcpKWJyZWFrIGU7SzcoMHxhWygwfGFbRD4+Ml0pKyhrPDwyKT4+Ml0sbCxmLHAsbSxBLHcsYiksaz1rKzF8MH19UHIoOTQ3Mzks''@;'; + put 'put ''OTQ2ODEsMTc1LDk0NzY0KX19d2hpbGUoMCl9ZnVuY3Rpb24gREsobCxjLGYpe2N8PTAsZnw9MDt2YXIgRCxSLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxHPTA7cD0wfGFbNDArKGx8PTApPj4yXSxBPStfW2wrOD4+M10sUj0wfEdrKGwsRD0wfGFbbCsxNj4+Ml0pLEE+MHx8UHIoOTQ2''@;'; + put 'put ''NzMsOTQ2ODEsMjg5LDk0NjkyKSxfWyhNPWYrMTZ8MCk+PjNdPStfW00+PjNdKzE7ZTpkb3tpZihwKWZvcih3PTEvQTs7KXtpZighcClicmVhayBlO2ZvcihtPTB8V2soYywwfHprKDB8THUocCkpLHAsRCksQT0rR3koMHxMdShwKSkqdyxsPTA7ISgoMHxsKT49KDB8RCkpOylfWyhHPW0rKGw8''@;'; + put 'put ''PDMpfDApPj4zXT0rX1tHPj4zXSsgK19bUisobDw8Myk+PjNdKkEsbD1sKzF8MDtwPTB8R20ocCl9ZWxzZXtmb3IoTT0xPDxELGs9bCszNnwwLEE9MS9BLGw9MDs7KXtpZigoMHxsKT49KDB8TSkpYnJlYWsgZTtpZigwfChtPTB8YVsoMHxhW2s+PjJdKSsobDw8Mik+PjJdKSl7aWYoKDB8YVtt''@;'; + put 'put ''Pj4yXSk8PTApYnJlYWs7Zm9yKGI9MHxHayhtLEQpLHc9K19bbSs4Pj4zXSpBLHA9MDshKCgwfHApPj0oMHxEKSk7KV9bKEc9YisocDw8Myl8MCk+PjNdPStfW0c+PjNdKyArX1tSKyhwPDwzKT4+M10qdyxwPXArMXwwO0RLKG0sYyxmKX1sPWwrMXwwfVByKDk0NzI4LDk0NjgxLDMwNyw5NDY5''@;'; + put 'put ''Mil9fXdoaWxlKDApfWZ1bmN0aW9uIEdrKGwsYyl7Y3w9MDt2YXIgZj0wO2w9MHxhWyhmPTQ4KyhsfD0wKXwwKT4+Ml07ZTpkb3tpZighbClmb3IobD0wfFFuKGM8PDMpLGFbZj4+Ml09bCxmPTA7Oyl7aWYoKDB8Zik+PSgwfGMpKWJyZWFrIGU7X1tsKyhmPDwzKT4+M109MCxmPWYrMXwwfX13''@;'; + put 'put ''aGlsZSgwKTtyZXR1cm4gMHxsfWZ1bmN0aW9uIFdrKGwsYyxmLHApe2x8PTAsY3w9MCxwfD0wO3ZhciBtPTA7cmV0dXJuKG09MHxhWzI0KygwfEx1KGZ8PTApKT4+Ml0pfHwobT1sKygoMHxBcihwLGMpKTw8Myl8MCxhWzI0KygwfEx1KGYpKT4+Ml09bSxtPTB8YVsyNCsoMHxMdShmKSk+PjJd''@;'; + put 'put ''KSwwfG19ZnVuY3Rpb24gWWsobCxjLGYscCxtKXtjfD0wLGZ8PTAscHw9MCxtfD0wO3ZhciBNLEQsQT0wLHc9MCxiPTAsaz0wLFI9MCxHPTAsSz0wLHBlPTA7aWYoMCE9KDB8KE09MHxRbihSPShsfD0wKTw8MykpKSYwIT0oMHwoRD0wfFFuKFIpKSkmMCE9KDB8KFI9MHxRbihSKSkpKXtmb3Io''@;'; + put 'put ''QT0wOzspe2lmKCgwfEEpPj0oMHxsKSl7QT0wO2JyZWFrfV9bTSsoQTw8Myk+PjNdPStfW3ArKEE8PDMpPj4zXSxBPUErMXwwfWZvcig7Oyl7aWYoKDB8QSk+PSgwfGwpKXt3PTE7YnJlYWt9X1tEKyhBPDwzKT4+M109K19bcCsoQTw8Myk+PjNdLEE9QSsxfDB9Zm9yKDshKCgwfHcpPj0oMHxj''@;'; + put 'put ''KSk7KXtmb3Ioaz0wfEFyKHcsbCksQT0wOyEoKDB8QSk+PSgwfGwpKTspX1soRz1NKyhBPDwzKXwwKT4+M109KGI9K19bRz4+M10pPChLPStfWyhwZT1wKyhBK2s8PDMpfDApPj4zXSk/YjpLLF9bKEc9RCsoQTw8Myl8MCk+PjNdPShLPStfW0c+PjNdKT4oYj0rX1twZT4+M10pP0s6YixBPUEr''@;'; + put 'put ''MXwwO3c9dysxfDB9Zm9yKGI9K19bRD4+M10tK19bTT4+M10sQT0wOyEoKDB8QSk+PSgwfGwpKTspX1tSKyhBPDwzKT4+M109LjUqKCtfWyhHPUQrKEE8PDMpfDApPj4zXSsgK19bKHBlPU0rKEE8PDMpfDApPj4zXSksYj1iPihLPStfW0c+PjNdLStfW3BlPj4zXSk/YjpLLEE9QSsxfDA7QT0w''@;'; + put 'put ''fGlMKGwsUiwwPT1iPzUyZS03Oi41MipiLGYpO2U6ZG97aWYobSlmb3Iodz0wOzspe2lmKCgwfHcpPj0oMHxjKSlicmVhayBlO0E9MHwkNyhBLHBlPXArKCgwfEFyKHcsbCkpPDwzKXwwLCtfW20rKHc8PDMpPj4zXSx3KSx3PXcrMXwwfWVsc2UgZm9yKHc9MDs7KXtpZigoMHx3KT49KDB8Yykp''@;'; + put 'put ''YnJlYWsgZTtBPTB8JDcoQSxwKygoMHxBcih3LGwpKTw8Myl8MCwxLHcpLHc9dysxfDB9fXdoaWxlKDApO0Z0KE0pLEZ0KEQpLEZ0KFIpfWVsc2UgRnQoTSksRnQoRCksRnQoUiksQT0wO3JldHVybiAwfEF9ZnVuY3Rpb24gaUwobCxjLGYscCl7bHw9MCxjfD0wLGY9K2YscHw9MDt2YXIgQSx3''@;'; + put 'put ''LG09MDtmb3IoQT0wfFFuKDU2KSxhW0ErMTY+PjJdPWwsYVtBPj4yXT0wLHc9MHxRbihsPDwzKSxhW0ErMjA+PjJdPXcsbT0wOyEoKDB8bSk+PSgwfGwpKTspX1t3KyhtPDwzKT4+M109K19bYysobTw8Myk+PjNdLG09bSsxfDA7cmV0dXJuIGY+MD8oX1tBKzI0Pj4zXT1mLF9bQSs4Pj4zXT0w''@;'; + put 'put ''LGFbQSszMj4+Ml09MCxhW0ErMzY+PjJdPTAsYVtBKzQwPj4yXT0wLGFbQSs0ND4+Ml09cCxhW0ErNDg+PjJdPTAsMHxBKTooUHIoOTQ4OTYsOTQ2ODEsNDEwLDk0OTA2KSwwKX1mdW5jdGlvbiAkNyhsLGMsZixwKXtyZXR1cm4gZj0rZiwobHw9MCk/VWsobCxjfD0wLGYscHw9MCwwKTpsPTAs''@;'; + put 'put ''MHxsfWZ1bmN0aW9uIFVrKGwsYyxmLHAsbSl7Y3w9MCxmPStmLHB8PTAsbXw9MDt2YXIgZ2UsYmUsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxLPTAscGU9MCxPZT0wO2dlPTB8YVsoT2U9MTYrKGx8PTApfDApPj4yXSxiZT0wfGFbbCs0ND4+Ml0sRD0wfGFbbD4+Ml07ZG97aWYo''@;'; + put 'put ''RCl7aWYoKDB8YmUpPD0oMHxtKSl7Zm9yKDB8YVtsKzM2Pj4yXSYmUHIoOTQ4ODEsOTQ2ODEsNTQxLDk0ODE1KSxhW2w+PjJdPUE9RCsxfDAsX1sodz1sKzh8MCk+PjNdPStfW3c+PjNdK2Ysdz1sKzMyfDAsaz0rKDB8QSksTT0xLysoRCsyfDApLEE9MDshKCgwfEEpPj0oMHxnZSkpOylfWyhw''@;'; + put 'put ''ZT0oMHxhW3c+PjJdKSsoQTw8Myl8MCk+PjNdPSgrX1twZT4+M10qaysgK19bYysoQTw8Myk+PjNdKSpNLEE9QSsxfDA7aWYoQT0wfHE3KGdlLGYsYyxwKSxiPTB8YVsodz1sKzQwfDApPj4yXSl7YVt3Pj4yXT0wfENBKGIsQSk7YnJlYWt9UHIoOTQ4OTEsOTQ2ODEsNTQ3LDk0ODE1KX1mb3Io''@;'; + put 'put ''X1sodz1sKzh8MCk+PjNdPStfW3c+PjNdK2Ysdz1sKzMyfDAsTT0rKDB8RCksaz0xLysoRCsxfDApLEE9MDshKCgwfEEpPj0oMHxnZSkpOylfWyhwZT0oMHxhW3c+PjJdKSsoQTw8Myl8MCk+PjNdPSgrX1twZT4+M10qTSsgK19bYysoQTw8Myk+PjNdKSprLEE9QSsxfDA7cGU9bCszNnwwLEs9''@;'; + put 'put ''MTw8Z2U7ZTpkb3tpZighKDB8YVtwZT4+Ml0pKWZvcihhW3BlPj4yXT0wfFFuKEs8PDIpLEE9MDs7KXtpZigoMHxBKT49KDB8SykpYnJlYWsgZTthWygwfGFbcGU+PjJdKSsoQTw8Mik+PjJdPTAsQT1BKzF8MH19d2hpbGUoMCk7KDB8KGI9MHxhaihnZSxBPTB8YVsoUj1sKzIwfDApPj4yXSxj''@;'; + put 'put ''KSkpPCgwfEspJigwfGIpPi0xfHxQcig5NDgzNyw5NDY4MSw1MTUsOTQ4MTUpLCh3PTB8YVsoMHxhW3BlPj4yXSkrKGI8PDIpPj4yXSl8fCh3PTB8QXAoMHxhW09lPj4yXSxBLC41KitfW2wrMjQ+PjNdLGJlLGIpLGFbKDB8YVtwZT4+Ml0pKyhiPDwyKT4+Ml09dyx3PTB8YVsoMHxhW3BlPj4y''@;'; + put 'put ''XSkrKGI8PDIpPj4yXSkscD0wfFVrKHcsYyxmLHAsRz1tKzF8MCksYVsoMHxhW3BlPj4yXSkrKGI8PDIpPj4yXT1wLDB8YVsoMHxhW3BlPj4yXSkrKGI8PDIpPj4yXXx8UHIoOTQ4NjAsOTQ2ODEsNTE5LDk0ODE1KSxBPTB8YVsoYz1sKzQwfDApPj4yXTtkb3tpZigwfEEpe2lmKEQ9MHx6aygw''@;'; + put 'put ''fEx1KEEpKSwxIT0oMHxhW2w+PjJdKSYmUHIoOTQ4NzEsOTQ2ODEsNTIzLDk0ODE1KSxtPTB8WmsoMHxMdSgwfGFbYz4+Ml0pKSxrPStHeSgwfEx1KDB8YVtjPj4yXSkpLCgwfChiPTB8YWooZ2Usdz0wfGFbUj4+Ml0sbSkpKTwoMHxLKSYoMHxiKT4tMXx8UHIoOTQ4MzcsOTQ2ODEsNTI3LDk0''@;'; + put 'put ''ODE1KSwoQT0wfGFbKDB8YVtwZT4+Ml0pKyhiPDwyKT4+Ml0pfHwoQT0wfEFwKDB8YVtPZT4+Ml0sdywuNSorX1tsKzI0Pj4zXSxiZSxiKSxhWygwfGFbcGU+PjJdKSsoYjw8Mik+PjJdPUEsQT0wfGFbKDB8YVtwZT4+Ml0pKyhiPDwyKT4+Ml0pLE9lPTB8VWsoQSxtLGssRCxHKSxhWygwfGFb''@;'; + put 'put ''cGU+PjJdKSsoYjw8Mik+PjJdPU9lLDB8YVsoMHxhW3BlPj4yXSkrKGI8PDIpPj4yXSl7V18oMHxhW2M+PjJdLDEwNiksYVtjPj4yXT0wO2JyZWFrfVByKDk0ODYwLDk0NjgxLDUzMiw5NDgxNSl9fXdoaWxlKDApO2FbbD4+Ml09MSsoMHxhW2w+PjJdKX1lbHNle2ZvcihhW2w+PjJdPTEsX1ts''@;'; + put 'put ''Kzg+PjNdPWYsYj0wfFFuKGdlPDwzKSxhW2wrMzI+PjJdPWIsdz0wfGFbT2U+PjJdLEE9MDshKCgwfEEpPj0oMHx3KSk7KV9bYisoQTw8Myk+PjNdPStfW2MrKEE8PDMpPj4zXSxBPUErMXwwO2lmKEE9MHxxNyh3LGYsYyxwKSwhKDB8YVsodz1sKzQwfDApPj4yXSkpe2Fbdz4+Ml09MHxHXyhB''@;'; + put 'put ''KTticmVha31Qcig5NDgwNyw5NDY4MSw1MDIsOTQ4MTUpfX13aGlsZSgwKTtyZXR1cm4gMHxsfWZ1bmN0aW9uIHE3KGwsYyxmLHApe3ZhciBtLEE7Zm9yKGx8PTAsYz0rYyxmfD0wLHB8PTAsQT0wfFFuKDMyKSxfW0E+PjNdPWMsbT0wfFFuKGw8PDMpLGFbQSs4Pj4yXT1tLF9bQSsxNj4+M109''@;'; + put 'put ''KygwfHApLHA9MDshKCgwfHApPj0oMHxsKSk7KV9bbSsocDw8Myk+PjNdPStfW2YrKHA8PDMpPj4zXSxwPXArMXwwO3JldHVybiBhW0ErMjQ+PjJdPTAsMHxBfWZ1bmN0aW9uIGFqKGwsYyxmKXtsfD0wLGN8PTAsZnw9MDt2YXIgcD0wLG09MDtmb3IobT0wO3A9bCstMXwwLCEoKDB8bCk8PTAp''@;'; + put 'put ''OylsPXAsbT1tPDwxfDEmISgrX1tmKyhwPDwzKT4+M10tK19bYysocDw8Myk+PjNdPDApO3JldHVybiAwfG19ZnVuY3Rpb24gQXAobCxjLGYscCxtKXt2YXIgQSx3LGI7Zm9yKG18PTAsQT0wfGlMKGx8PTAsY3w9MCxmPStmLHB8PTApLHc9MHxhW0ErMjA+PjJdLGI9LWYscD0wLGM9bTshKCgw''@;'; + put 'put ''fHApPj0oMHxsKSk7KV9bKG09dysocDw8Myl8MCk+PjNdPStfW20+PjNdKygwPT0oMSZjfDApP2I6ZikscD1wKzF8MCxjPSgwfGMpLzJ8MDtyZXR1cm4gMHxBfWZ1bmN0aW9uIGV2KGwpe3ZhciBjPTAsZj0wLHA9MCxtPTAsQT0wO2lmKDB8KGx8PTApKXtpZihjPTB8YVtsKzE2Pj4yXSxGdCgw''@;'; + put 'put ''fGFbbCsyMD4+Ml0pLEZ0KDB8YVtsKzMyPj4yXSksRnQoMHxhW2wrNDg+PjJdKSwwfChwPTB8YVsoQT1sKzM2fDApPj4yXSkpe2ZvcihtPTE8PGMsZj0wLGM9cDshKCgwfGYpPj0oMHxtKSk7KWV2KDB8YVtjKyhmPDwyKT4+Ml0pLGY9ZisxfDAsYz0wfGFbQT4+Ml07RnQoYyl9V18oMHxhW2wr''@;'; + put 'put ''NDA+PjJdLDEwNiksRnQobCl9fWZ1bmN0aW9uIFd5KGwpe2x8PTA7dmFyIGM9MCxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLEs9MCxwZT0wLGdlPTAsYmU9MCxPZT0wO2U6ZG97aWYobCl7Zm9yKE09MHxhW2wrMjA+PjJdLEQ9MHxhW2wrMjQ+PjJdLGY9MHxh''@;'; + put 'put ''W2wrOD4+Ml0sUj0wfGFbbD4+Ml0scD0wfGFbbCs0Pj4yXSx3PWwrMTZ8MCwxIT0oMHxhW2wrMzI+PjJdKSYmUHIoOTQ5MTksOTQ5NDMsNzYsOTQ5NTgpLGM9MHx1YyhwLFIsZiwwfGFbdz4+Ml0sMSksYVtjKzg+PjJdPWYsRz0wfGFbYysyMD4+Ml0saz0wfGFbYysyND4+Ml0sZj0wOzspe2lm''@;'; + put 'put ''KCgwfGYpPigwfHApKXtmPTA7YnJlYWt9YVtHKyhmPDwyKT4+Ml09MCxmPWYrMXwwfXQ6Zm9yKDs7KXtpZigoMHxmKT49KDB8Uikpe2Y9MDticmVha31mb3IoQT1NKygobT1mKzF8MCk8PDIpfDAsZj0wfGFbTSsoZjw8Mik+PjJdOzspe2lmKCgwfGYpPj0oMHxhW0E+PjJdKSl7Zj1tO2NvbnRp''@;'; + put 'put ''bnVlIHR9YVsoYj1HKygxKygwfGFbRCsoZjw8Mik+PjJdKTw8Mil8MCk+PjJdPTErKDB8YVtiPj4yXSksZj1mKzF8MH19Zm9yKDshKCgwfGYpPj0oMHxwKSk7KWFbKEE9RysoKGI9ZisxfDApPDwyKXwwKT4+Ml09KDB8YVtBPj4yXSkrKDB8YVtHKyhmPDwyKT4+Ml0pLGY9Yjt0OmRve3N3aXRj''@;'; + put 'put ''aCgwfGFbdz4+Ml0pe2Nhc2UgMTpBPTB8YVtsKzI4Pj4yXSxsPTB8YVtjKzI4Pj4yXSxtPTA7bjpmb3IoOzspe2lmKCgwfG0pPj0oMHxSKSlicmVhayB0O2ZvcihiPU0rKCh3PW0rMXwwKTw8Mil8MCxmPTB8YVtNKyhtPDwyKT4+Ml07Oyl7aWYoKDB8Zik+PSgwfGFbYj4+Ml0pKXttPXc7Y29u''@;'; + put 'put ''dGludWUgbn1hW2srKGFbRysoYVsoZ2U9RCsoZjw8Mil8MCk+PjJdPDwyKT4+Ml08PDIpPj4yXT1tLHBlPStfW0ErKGY8PDMpPj4zXSxhWyhnZT1HKyhhW2dlPj4yXTw8Mil8MCk+PjJdPTErKEs9MHxhW2dlPj4yXSksX1tsKyhLPDwzKT4+M109cGUsZj1mKzF8MH19Y2FzZSAyOkE9MHxhW2wr''@;'; + put 'put ''Mjg+PjJdLGw9MHxhW2MrMjg+PjJdLG09MDtuOmZvcig7Oyl7aWYoKDB8bSk+PSgwfFIpKWJyZWFrIHQ7Zm9yKGI9TSsoKHc9bSsxfDApPDwyKXwwLGY9MHxhW00rKG08PDIpPj4yXTs7KXtpZigoMHxmKT49KDB8YVtiPj4yXSkpe209dztjb250aW51ZSBufWFbaysoYVtHKyhhWyhnZT1EKyhm''@;'; + put 'put ''PDwyKXwwKT4+Ml08PDIpPj4yXTw8Mik+PjJdPW0sX1tsKygoYmU9KEs9MHxhWyhnZT1HKyhhW2dlPj4yXTw8Mil8MCk+PjJdKTw8MSk8PDMpPj4zXT0rX1tBKygoT2U9Zjw8MSk8PDMpPj4zXSxfW2wrKCgxfGJlKTw8Myk+PjNdPStfW0ErKCgxfE9lKTw8Myk+PjNdLGFbZ2U+PjJdPUsrMSxm''@;'; + put 'put ''PWYrMXwwfX1jYXNlIDQ6QT0wfGFbbCsyOD4+Ml0sbD0wfGFbYysyOD4+Ml0sbT0wO246Zm9yKDs7KXtpZigoMHxtKT49KDB8UikpYnJlYWsgdDtmb3IoYj1NKygodz1tKzF8MCk8PDIpfDAsZj0wfGFbTSsobTw8Mik+PjJdOzspe2lmKCgwfGYpPj0oMHxhW2I+PjJdKSl7bT13O2NvbnRpbnVl''@;'; + put 'put ''IG59YVtrKyhhW0crKGFbKGdlPUQrKGY8PDIpfDApPj4yXTw8Mik+PjJdPDwyKT4+Ml09bSxiZT0wfGFbQSsoZjw8Mik+PjJdLGFbKGdlPUcrKGFbZ2U+PjJdPDwyKXwwKT4+Ml09MSsoT2U9MHxhW2dlPj4yXSksYVtsKyhPZTw8Mik+PjJdPWJlLGY9ZisxfDB9fWNhc2UgODptPTA7bjpmb3Io''@;'; + put 'put ''Ozspe2lmKCgwfG0pPj0oMHxSKSlicmVhayB0O2ZvcihsPU0rKChBPW0rMXwwKTw8Mil8MCxmPTB8YVtNKyhtPDwyKT4+Ml07Oyl7aWYoKDB8Zik+PSgwfGFbbD4+Ml0pKXttPUE7Y29udGludWUgbn1hWyhiZT1HKyhhW0QrKGY8PDIpPj4yXTw8Mil8MCk+PjJdPTErKE9lPTB8YVtiZT4+Ml0p''@;'; + put 'put ''LGFbaysoT2U8PDIpPj4yXT1tLGY9ZisxfDB9fWRlZmF1bHQ6UmEoYyksYz0wO2JyZWFrIGV9fXdoaWxlKDApO2Zvcig7Zj1wKy0xfDAsISgoMHxwKTw9MCk7KWFbRysocDw8Mik+PjJdPWFbRysoZjw8Mik+PjJdLHA9ZjthW0c+PjJdPTB9ZWxzZSBjPTB9d2hpbGUoMCk7cmV0dXJuIDB8Y31m''@;'; + put 'put ''dW5jdGlvbiBSYShsKXt2YXIgYz0wOzB8KGx8PTApJiYoMHwoYz0wfGFbbCsyMD4+Ml0pJiZGdChjKSwwfChjPTB8YVtsKzI0Pj4yXSkmJkZ0KGMpLEZ0KDB8YVtsKzI4Pj4yXSksRnQobCkpfWZ1bmN0aW9uIHVjKGwsYyxmLHAsbSl7cmV0dXJuIGZ8PTAsbXw9MCxsPTB8bGoobHw9MCxjfD0w''@;'; + put 'put ''LHB8PTAsMHxmdW5jdGlvbiBRayhsKXtzd2l0Y2goMHwobHw9MCkpe2Nhc2UgMTpsPTg7YnJlYWs7Y2FzZSAyOmw9MTY7YnJlYWs7Y2FzZSA0Omw9NDticmVhaztkZWZhdWx0Omw9MH1yZXR1cm4gMHxsfShwKSxtKSwoMHxmKT4wJiZzaihsLGYpLDB8bH1mdW5jdGlvbiBsaihsLGMsZixwLG0p''@;'; + put 'put ''e3ZhciBBO3JldHVybiBsfD0wLGN8PTAsZnw9MCxwfD0wLG18PTAsQT0wfFFuKDQ0KSxhW0E+PjJdPWwsYVtBKzQ+PjJdPWMsYVtBKzg+PjJdPTAsYVtBKzEyPj4yXT0wLGFbQSsxNj4+Ml09ZixhW0ErNDA+PjJdPXAsbD0yPT0oMHxtKT8wOjB8UW4oNCsobDw8Mil8MCksYVtBKzIwPj4yXT1s''@;'; + put 'put ''LGFbQSsyND4+Ml09MCxhW0ErMjg+PjJdPTAsYVtBKzMyPj4yXT1tLGFbQSszNj4+Ml09MCwwfEF9ZnVuY3Rpb24gc2oobCxjKXtjfD0wO3ZhciBwLG0sdyxmPTAsQT0wO3JldHVybiB3PTB8YVszMisobHw9MCk+PjJdLGFbKG09bCsyOHwwKT4+Ml09MCxwPTB8UW4oZj1jPDwyKSwyIT0oMHx3''@;'; + put 'put ''KT8oYVtsKzI0Pj4yXT1wLDAhPSgwfGMpJigwfChmPTB8YVtsKzQwPj4yXSkpPjAmJihBPTQpKTooYVtsKzIwPj4yXT1wLGFbbCsyND4+Ml09MHxRbihmKSxmPTB8YVtsKzQwPj4yXSxBPTQpLDQ9PSgwfEEpJiYoYVttPj4yXT0wfFFuKDB8QXIoZixjKSkpLGFbbCsxMj4+Ml09YywwfGx9ZnVu''@;'; + put 'put ''Y3Rpb24gYWgobCxjKXtyZXR1cm4gMHxsaChsfD0wLGN8PTApP2M9MHx0dihsKTooYz0wfFd5KGwpKT8obD0wfHlwKGwsYyksUmEoYyksYVsoYz1sKzM2fDApPj4yXT0zfGFbYz4+Ml0sYz1sKTpjPTAsMHxjfWZ1bmN0aW9uIGxoKGwsYyl7Y3w9MDt2YXIgZj0wLHA9MCxtPTAsQT0wLHc9MCxi''@;'; + put 'put ''PTAsaz0wLE09MCxEPTAsUj0wLEc9MCxLPTAscGU9MCxnZT0wLGJlPTAsT2U9MCxMZT0wO2lmKGx8PTApaWYoMSE9KDB8YVtsKzMyPj4yXSkmJlByKDk0OTE5LDk0OTQzLDE4Nyw5NTA3NCksMD09KDImKGY9MHxhWyhiZT1sKzM2fDApPj4yXSl8MCkmJjA9PSgxJmZ8MCl8MV4oSz0wIT0oMHxj''@;'; + put 'put ''KSkpaWYoKDB8YVtsPj4yXSk9PSgwfGFbbCs0Pj4yXSkmJjAhPSgwfChPZT0wfFd5KGwpKSkpe2ZvcihrPTB8YVtsKzIwPj4yXSxNPTB8YVtsKzI0Pj4yXSxEPTB8YVtPZSsyMD4+Ml0sUj0wfGFbT2UrMjQ+PjJdLHBlPTB8UW4oKEc9MHxhW2w+PjJdKTw8MiksYz0wOyEoKDB8Yyk+PSgwfEcp''@;'; + put 'put ''KTspYVtwZSsoYzw8Mik+PjJdPS0xLGM9YysxfDA7ZTpkb3tzd2l0Y2goMHwoSz84OjB8YVtsKzE2Pj4yXSkpe2Nhc2UgMTpmb3IoQT0wfGFbbCsyOD4+Ml0sdz0wfGFbT2UrMjg+PjJdLGM9MDs7KXtpZigoMHxjKT4oMHxHKSl7Zj0wO2JyZWFrfWlmKCgwfGFbaysoYzw8Mik+PjJdKSE9KDB8''@;'; + put 'put ''YVtEKyhjPDwyKT4+Ml0pKXtjPTA7YnJlYWsgZX1jPWMrMXwwfXQ6Zm9yKDs7KXtpZigoMHxmKT49KDB8Rykpe2dlPTU0O2JyZWFrIGV9Zm9yKGw9aysoKG09ZisxfDApPDwyKXwwLGM9MHxhWyhwPWsrKGY8PDIpfDApPj4yXTshKCgwfGMpPj0oMHxhW2w+PjJdKSk7KWFbcGUrKGFbTSsoYzw8''@;'; + put 'put ''Mik+PjJdPDwyKT4+Ml09YyxjPWMrMXwwO2ZvcihsPTB8YVtEKyhtPDwyKT4+Ml0sZj1jPTB8YVtEKyhmPDwyKT4+Ml07ISgoMHxmKT49KDB8bCkpOyl7aWYoKDB8YVtwZSsoYVtSKyhmPDwyKT4+Ml08PDIpPj4yXSk8KDB8YVtwPj4yXSkpe2M9MDticmVhayBlfWY9ZisxfDB9Zm9yKDs7KXtp''@;'; + put 'put ''ZigoMHxjKT49KDB8bCkpe2Y9bTtjb250aW51ZSB0fWlmKCgoTGU9K19bdysoYzw8Myk+PjNdLStfW0ErKGFbcGUrKGFbUisoYzw8Mik+PjJdPDwyKT4+Ml08PDMpPj4zXSk+PTA/TGU6LUxlKT4xZS03KXtjPTA7YnJlYWsgZX1jPWMrMXwwfX1jYXNlIDI6Zm9yKHc9MHxhW2wrMjg+PjJdLGI9''@;'; + put 'put ''MHxhW09lKzI4Pj4yXSxjPTA7Oyl7aWYoKDB8Yyk+KDB8Rykpe2Y9MDticmVha31pZigoMHxhW2srKGM8PDIpPj4yXSkhPSgwfGFbRCsoYzw8Mik+PjJdKSl7Yz0wO2JyZWFrIGV9Yz1jKzF8MH10OmZvcig7Oyl7aWYoKDB8Zik+PSgwfEcpKXtnZT01NDticmVhayBlfWZvcihsPWsrKChBPWYr''@;'; + put 'put ''MXwwKTw8Mil8MCxjPTB8YVsobT1rKyhmPDwyKXwwKT4+Ml07ISgoMHxjKT49KDB8YVtsPj4yXSkpOylhW3BlKyhhW00rKGM8PDIpPj4yXTw8Mik+PjJdPWMsYz1jKzF8MDtmb3IocD0wfGFbRCsoQTw8Mik+PjJdLGM9Zj0wfGFbRCsoZjw8Mik+PjJdOzspe2lmKCgwfGMpPj0oMHxwKSl7Yz1m''@;'; + put 'put ''O2JyZWFrfWlmKCgwfGFbcGUrKGFbUisoYzw8Mik+PjJdPDwyKT4+Ml0pPCgwfGFbbT4+Ml0pKXtjPTA7YnJlYWsgZX1jPWMrMXwwfWZvcig7Oyl7aWYoKDB8Yyk+PSgwfHApKXtmPUE7Y29udGludWUgdH1pZigoKExlPStfW2IrKChmPWM8PDEpPDwzKT4+M10tK19bdysoKGw9YVtwZSsoYVtS''@;'; + put 'put ''KyhjPDwyKT4+Ml08PDIpPj4yXTw8MSk8PDMpPj4zXSk+PTA/TGU6LUxlKT4xZS03KXtjPTA7YnJlYWsgZX1pZigoKExlPStfW2IrKCgxfGYpPDwzKT4+M10tK19bdysoKDF8bCk8PDMpPj4zXSk+PTA/TGU6LUxlKT4xZS03KXtjPTA7YnJlYWsgZX1jPWMrMXwwfX1jYXNlIDQ6bT0wfGFbbCsy''@;'; + put 'put ''OD4+Ml0sQT0wfGFbT2UrMjg+PjJdLGM9MDt0OmZvcig7Oyl7aWYoKDB8Yyk+PSgwfEcpKXtnZT01NDticmVhayBlfWZvcihsPWsrKCh3PWMrMXwwKTw8Mil8MCxmPTB8YVsocD1rKyhjPDwyKXwwKT4+Ml07ISgoMHxmKT49KDB8YVtsPj4yXSkpOylhW3BlKyhhW00rKGY8PDIpPj4yXTw8Mik+''@;'; + put 'put ''PjJdPWYsZj1mKzF8MDtmb3IobD0wfGFbRCsodzw8Mik+PjJdLGY9Yz0wfGFbRCsoYzw8Mik+PjJdOyEoKDB8Zik+PSgwfGwpKTspe2lmKCgwfGFbcGUrKGFbUisoZjw8Mik+PjJdPDwyKT4+Ml0pPCgwfGFbcD4+Ml0pKXtjPTA7YnJlYWsgZX1mPWYrMXwwfWZvcig7Oyl7aWYoKDB8Yyk+PSgw''@;'; + put 'put ''fGwpKXtjPXc7Y29udGludWUgdH1pZigoMHxhW0ErKGM8PDIpPj4yXSkhPSgwfGFbbSsoYVtwZSsoYVtSKyhjPDwyKT4+Ml08PDIpPj4yXTw8Mik+PjJdKSl7Yz0wO2JyZWFrIGV9Yz1jKzF8MH19Y2FzZSA4Omw9MDt0OmZvcig7Oyl7aWYoKDB8bCk+PSgwfEcpKXtnZT01NDticmVhayBlfWZv''@;'; + put 'put ''cihmPWsrKChtPWwrMXwwKTw8Mil8MCxjPTB8YVsocD1rKyhsPDwyKXwwKT4+Ml07ISgoMHxjKT49KDB8YVtmPj4yXSkpOylhW3BlKyhhW00rKGM8PDIpPj4yXTw8Mik+PjJdPWMsYz1jKzF8MDtmb3IoZj0wfGFbRCsobTw8Mik+PjJdLGM9MHxhW0QrKGw8PDIpPj4yXTs7KXtpZigoMHxjKT49''@;'; + put 'put ''KDB8Zikpe2w9bTtjb250aW51ZSB0fWlmKCgwfGFbcGUrKGFbUisoYzw8Mik+PjJdPDwyKT4+Ml0pPCgwfGFbcD4+Ml0pKXtjPTA7YnJlYWsgZX1jPWMrMXwwfX1kZWZhdWx0OmM9MH19d2hpbGUoMCk7NTQ9PSgwfGdlKSYmKGY9MHxhW2JlPj4yXSxLP2M9MTooYVtiZT4+Ml09MnxmLGM9Myks''@;'; + put 'put ''YVtiZT4+Ml09Y3xmLGM9MSksRnQocGUpLFJhKE9lKX1lbHNlIGM9MDtlbHNlIGM9MTtlbHNlIGM9MDtyZXR1cm4gMHxjfWZ1bmN0aW9uIHR2KGwpe3ZhciBjPTAsZj0wLHA9MCxtPTA7cmV0dXJuKGx8PTApPyhjPTB8dWooMHxhW2w+PjJdLDB8YVtsKzQ+PjJdLDB8YVsocD1sKzh8MCk+PjJd''@;'; + put 'put ''LDB8YVtsKzE2Pj4yXSwwfGFbKG09bCs0MHwwKT4+Ml0sMHxhW2wrMzI+PjJdKSxnbygwfGFbYysyMD4+Ml0sMHxhWyhmPWwrMjB8MCk+PjJdLDQrKGFbbD4+Ml08PDIpfDApLGdvKDB8YVtjKzI0Pj4yXSwwfGFbbCsyND4+Ml0sYVsoMHxhW2Y+PjJdKSsoYVtsPj4yXTw8Mik+PjJdPDwyfDAp''@;'; + put 'put ''LDB8KGY9MHxhW2wrMjg+PjJdKSYmZ28oMHxhW2MrMjg+PjJdLDB8ZiwwfEFyKDB8YVtwPj4yXSwwfGFbbT4+Ml0pKSxhW2MrMzY+PjJdPWFbbCszNj4+Ml0sYVtjKzg+PjJdPWFbcD4+Ml0pOmM9MCwwfGN9ZnVuY3Rpb24geXAobCxjKXt2YXIgRyxLLGdlLGJlLE9lLGY9MCxwPTAsbT0wLEE9''@;'; + put 'put ''MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxwZT0wLExlPTAsUmU9MDtpZihLPTB8YVsyMCsobHw9MCk+PjJdLGdlPTB8YVtsKzI0Pj4yXSxiZT0wfGFbMjArKGN8PTApPj4yXSxPZT0wfGFbYysyND4+Ml0sMCE9KDB8bCkmMCE9KDB8Yyl8fFByKDk0OTgxLDk0OTQzLDk3Myw5NDk4OCksMT09''@;'; + put 'put ''KDB8KHBlPTB8YVtsKzMyPj4yXSkpJiYoMHxwZSk9PSgwfGFbYyszMj4+Ml0pfHxQcig5NTAwNSw5NDk0Myw5NzQsOTQ5ODgpLCgwfChmPTB8YVsocD1sKzE2fDApPj4yXSkpIT0oMHxhW2MrMTY+PjJdKSYmUHIoOTUwNTUsOTQ5NDMsOTc1LDk0OTg4KSxtPTB8YVtsKzQ+PjJdLCgwfChHPTB8''@;'; + put 'put ''YVtsPj4yXSkpPT0oMHxhW2M+PjJdKSYmKDB8bSk9PSgwfGFbYys0Pj4yXSkmJjB8KExlPTB8dWMoRyxtLCgwfGFbYys4Pj4yXSkrKDB8YVtsKzg+PjJdKXwwLGYsMSkpKXtmb3IoRD0wfGFbTGUrMjA+PjJdLFI9MHxhW0xlKzI0Pj4yXSxwZT0wfFFuKG08PDIpLGY9MDshKCgwfGYpPj0oMHxt''@;'; + put 'put ''KSk7KWFbcGUrKGY8PDIpPj4yXT0tMSxmPWYrMXwwO2FbRD4+Ml09MDtlOmRve3N3aXRjaCgwfGFbcD4+Ml0pe2Nhc2UgMTpmb3IoTT0wfGFbbCsyOD4+Ml0sdz0wfGFbYysyOD4+Ml0sYj0wfGFbTGUrMjg+PjJdLGY9MCxtPTA7Oyl7aWYoKDB8bSk+PSgwfEcpKWJyZWFrIGU7Zm9yKHA9Syso''@;'; + put 'put ''KGs9bSsxfDApPDwyKXwwLGw9MHxhW0srKG08PDIpPj4yXTshKCgwfGwpPj0oMHxhW3A+PjJdKSk7KWFbcGUrKGFbKEE9Z2UrKGw8PDIpfDApPj4yXTw8Mik+PjJdPWYsYVtSKyhmPDwyKT4+Ml09YVtBPj4yXSxfW2IrKGY8PDMpPj4zXT0rX1tNKyhsPDwzKT4+M10sbD1sKzF8MCxmPWYrMXww''@;'; + put 'put ''O2ZvcihjPWJlKyhrPDwyKXwwLEE9RCsobTw8Mil8MCxtPTB8YVtiZSsobTw8Mik+PjJdOyEoKDB8bSk+PSgwfGFbYz4+Ml0pKTspKDB8KHA9MHxhW3BlKygobD0wfGFbT2UrKG08PDIpPj4yXSk8PDIpPj4yXSkpPCgwfGFbQT4+Ml0pPyhhW1IrKGY8PDIpPj4yXT1sLF9bYisoZjw8Myk+PjNd''@;'; + put 'put ''PStfW3crKG08PDMpPj4zXSxmPWYrMXwwKTpfWyhwPWIrKHA8PDMpfDApPj4zXT0rX1twPj4zXSsgK19bdysobTw8Myk+PjNdLG09bSsxfDA7YVtEKyhrPDwyKT4+Ml09ZixtPWt9Y2FzZSAyOmZvcihNPTB8YVtsKzI4Pj4yXSxrPTB8YVtjKzI4Pj4yXSx3PTB8YVtMZSsyOD4+Ml0sbT0wLGY9''@;'; + put 'put ''MDs7KXtpZigoMHxtKT49KDB8RykpYnJlYWsgZTtmb3IocD1LKygoYj1tKzF8MCk8PDIpfDAsbD0wfGFbSysobTw8Mik+PjJdOyEoKDB8bCk+PSgwfGFbcD4+Ml0pKTspYVtwZSsoYVsoYz1nZSsobDw8Mil8MCk+PjJdPDwyKT4+Ml09ZixhW1IrKGY8PDIpPj4yXT1hW2M+PjJdLF9bdysoKEE9''@;'; + put 'put ''Zjw8MSk8PDMpPj4zXT0rX1tNKygoYz1sPDwxKTw8Myk+PjNdLF9bdysoKDF8QSk8PDMpPj4zXT0rX1tNKygoMXxjKTw8Myk+PjNdLGw9bCsxfDAsZj1mKzF8MDtmb3IoYz1iZSsoYjw8Mil8MCxBPUQrKG08PDIpfDAsbT0wfGFbYmUrKG08PDIpPj4yXTshKCgwfG0pPj0oMHxhW2M+PjJdKSk7''@;'; + put 'put ''KSgwfChwPTB8YVtwZSsoKGw9MHxhW09lKyhtPDwyKT4+Ml0pPDwyKT4+Ml0pKTwoMHxhW0E+PjJdKT8oYVtSKyhmPDwyKT4+Ml09bCxfW3crKChwPWY8PDEpPDwzKT4+M109K19baysoKGw9bTw8MSk8PDMpPj4zXSxfW3crKCgxfHApPDwzKT4+M109K19baysoKDF8bCk8PDMpPj4zXSxmPWYr''@;'; + put 'put ''MXwwKTooX1soUmU9dysoKHA8PD0xKTw8Myl8MCk+PjNdPStfW1JlPj4zXSsgK19baysoKGw9bTw8MSk8PDMpPj4zXSxfWyhwPXcrKCgxfHApPDwzKXwwKT4+M109K19bcD4+M10rICtfW2srKCgxfGwpPDwzKT4+M10pLG09bSsxfDA7YVtEKyhiPDwyKT4+Ml09ZixtPWJ9Y2FzZSA0OmZvcihN''@;'; + put 'put ''PTB8YVtsKzI4Pj4yXSx3PTB8YVtjKzI4Pj4yXSxiPTB8YVtMZSsyOD4+Ml0sbT0wLGY9MDs7KXtpZigoMHxtKT49KDB8RykpYnJlYWsgZTtmb3IocD1LKygoaz1tKzF8MCk8PDIpfDAsbD0wfGFbSysobTw8Mik+PjJdOyEoKDB8bCk+PSgwfGFbcD4+Ml0pKTspYVtwZSsoYVsoUmU9Z2UrKGw8''@;'; + put 'put ''PDIpfDApPj4yXTw8Mik+PjJdPWYsYVtSKyhmPDwyKT4+Ml09YVtSZT4+Ml0sYVtiKyhmPDwyKT4+Ml09YVtNKyhsPDwyKT4+Ml0sbD1sKzF8MCxmPWYrMXwwO2ZvcihjPWJlKyhrPDwyKXwwLEE9RCsobTw8Mil8MCxtPTB8YVtiZSsobTw8Mik+PjJdOyEoKDB8bSk+PSgwfGFbYz4+Ml0pKTsp''@;'; + put 'put ''KDB8KHA9MHxhW3BlKygobD0wfGFbT2UrKG08PDIpPj4yXSk8PDIpPj4yXSkpPCgwfGFbQT4+Ml0pPyhhW1IrKGY8PDIpPj4yXT1sLGFbYisoZjw8Mik+PjJdPWFbdysobTw8Mik+PjJdLGY9ZisxfDApOmFbKFJlPWIrKHA8PDIpfDApPj4yXT0oMHxhW1JlPj4yXSkrKDB8YVt3KyhtPDwyKT4+''@;'; + put 'put ''Ml0pLG09bSsxfDA7YVtEKyhrPDwyKT4+Ml09ZixtPWt9Y2FzZSA4OmZvcihmPTAsbT0wOzspe2lmKCgwfG0pPj0oMHxHKSlicmVhayBlO2ZvcihwPUsrKCh3PW0rMXwwKTw8Mil8MCxsPTB8YVtLKyhtPDwyKT4+Ml07ISgoMHxsKT49KDB8YVtwPj4yXSkpOylhW3BlKyhhWyhSZT1nZSsobDw8''@;'; + put 'put ''Mil8MCk+PjJdPDwyKT4+Ml09ZixhW1IrKGY8PDIpPj4yXT1hW1JlPj4yXSxmPWYrMXwwLGw9bCsxfDA7Zm9yKGM9YmUrKHc8PDIpfDAsQT1EKyhtPDwyKXwwLHA9MHxhW2JlKyhtPDwyKT4+Ml07ISgoMHxwKT49KDB8YVtjPj4yXSkpOykoMHxhW3BlKygobD0wfGFbT2UrKHA8PDIpPj4yXSk8''@;'; + put 'put ''PDIpPj4yXSk8KDB8YVtBPj4yXSkmJihhW1IrKGY8PDIpPj4yXT1sLGY9ZisxfDApLHA9cCsxfDA7YVtEKyh3PDwyKT4+Ml09ZixtPXd9ZGVmYXVsdDpmPTB9fXdoaWxlKDApO3JldHVybiBhW0xlKzg+PjJdPWYsRnQocGUpLDB8TGV9cmV0dXJuIDB9ZnVuY3Rpb24gdWoobCxjLGYscCxtLEEp''@;'; + put 'put ''e3JldHVybiBmfD0wLGw9MHxsaihsfD0wLGN8PTAscHw9MCxtfD0wLEF8PTApLCgwfGYpPjAmJnNqKGwsZiksMHxsfWZ1bmN0aW9uIEprKGwsYyl7dmFyIGY9MDtyZXR1cm4gMHxsaChsfD0wLGN8PTApPyhjPTB8dHYobCksZj01KTooYz0wfFd5KGwpKT8oZj0wfHlwKGwsYyksUmEoYyksYVso''@;'; + put 'put ''Yz1mKzM2fDApPj4yXT0zfGFbYz4+Ml0sYz1mLGY9NSk6Yz0wLDU9PSgwfGYpJiYoYz0wfHdwKGMpKSwwfGN9ZnVuY3Rpb24gd3AobCl7bHw9MDt2YXIgYz0wLGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wO2U6ZG97aWYobCl7TT0wfGFbbCsyND4+Ml0sZj0wfGFbKGs9MHxh''@;'; + put 'put ''W2wrMjA+PjJdKT4+Ml07dDpkb3tzd2l0Y2goMHxhW2wrMTY+PjJdKXtjYXNlIDE6Zm9yKGI9MHxhW2wrMjg+PjJdLHc9MCxjPTA7Oyl7aWYoKDB8dyk+PSgwfGFbbD4+Ml0pKWJyZWFrIHQ7Zm9yKEE9aysoKG09dysxfDApPDwyKXwwOyEoKDB8Zik+PSgwfChwPTB8YVtBPj4yXSkpKTspKDB8''@;'; + put 'put ''KHA9MHxhW00rKGY8PDIpPj4yXSkpIT0oMHx3KSYmKGFbTSsoYzw8Mik+PjJdPXAsX1tiKyhjPDwzKT4+M109K19bYisoZjw8Myk+PjNdLGM9YysxfDApLGY9ZisxfDA7YVtBPj4yXT1jLHc9bSxmPXB9Y2FzZSAyOmZvcihiPTB8YVtsKzI4Pj4yXSx3PTAsYz0wOzspe2lmKCgwfHcpPj0oMHxh''@;'; + put 'put ''W2w+PjJdKSlicmVhayB0O2ZvcihBPWsrKChtPXcrMXwwKTw8Mil8MDshKCgwfGYpPj0oMHwocD0wfGFbQT4+Ml0pKSk7KSgwfChwPTB8YVtNKyhmPDwyKT4+Ml0pKSE9KDB8dykmJihhW00rKGM8PDIpPj4yXT1wLF9bYisoKHA9Yzw8MSk8PDMpPj4zXT0rX1tiKygoRD1mPDwxKTw8Myk+PjNd''@;'; + put 'put ''LF9bYisoKDF8cCk8PDMpPj4zXT0rX1tiKygoMXxEKTw8Myk+PjNdLGM9YysxfDApLGY9ZisxfDA7YVtBPj4yXT1jLHc9bSxmPXB9Y2FzZSA0OmZvcihiPTB8YVtsKzI4Pj4yXSx3PTAsYz0wOzspe2lmKCgwfHcpPj0oMHxhW2w+PjJdKSlicmVhayB0O2ZvcihBPWsrKChtPXcrMXwwKTw8Mil8''@;'; + put 'put ''MDshKCgwfGYpPj0oMHwocD0wfGFbQT4+Ml0pKSk7KSgwfChwPTB8YVtNKyhmPDwyKT4+Ml0pKSE9KDB8dykmJihhW00rKGM8PDIpPj4yXT1wLGFbYisoYzw8Mik+PjJdPWFbYisoZjw8Mik+PjJdLGM9YysxfDApLGY9ZisxfDA7YVtBPj4yXT1jLHc9bSxmPXB9Y2FzZSA4OmZvcih3PTAsYz0w''@;'; + put 'put ''Ozspe2lmKCgwfHcpPj0oMHxhW2w+PjJdKSlicmVhayB0O2ZvcihBPWsrKChtPXcrMXwwKTw8Mil8MDshKCgwfGYpPj0oMHwocD0wfGFbQT4+Ml0pKSk7KSgwfChwPTB8YVtNKyhmPDwyKT4+Ml0pKSE9KDB8dykmJihhW00rKGM8PDIpPj4yXT1wLGM9YysxfDApLGY9ZisxfDA7YVtBPj4yXT1j''@;'; + put 'put ''LHc9bSxmPXB9ZGVmYXVsdDpsPTA7YnJlYWsgZX19d2hpbGUoMCk7YVtsKzg+PjJdPWN9ZWxzZSBsPTB9d2hpbGUoMCk7cmV0dXJuIDB8bH1mdW5jdGlvbiBjaihsKXtyZXR1cm4gMj09KDB8YVszMisobHw9MCk+PjJdKT8wfG80KDB8YVtsKzg+PjJdLDB8YVtsPj4yXSwwfGFbbCs0Pj4yXSww''@;'; + put 'put ''fGFbbCsyMD4+Ml0sMHxhW2wrMjQ+PjJdLDB8YVtsKzI4Pj4yXSwwfGFbbCsxNj4+Ml0sMHxhW2wrNDA+PjJdKTooUHIoOTUxMDAsOTQ5NDMsODAzLDk1MTI2KSwwKX1mdW5jdGlvbiBvNChsLGMsZixwLG0sQSx3LGIpe3JldHVybiAwfGZ1bmN0aW9uIHdBKGwsYyxmLHAsbSxBLHcsYixrKXtw''@;'; + put 'put ''fD0wLG18PTAsQXw9MCx3fD0wLGJ8PTAsa3w9MDt2YXIgT2UsTGUsTT0wLEQ9MCxSPTAsRz0wLEs9MCxwZT0wLGdlPTAsYmU9MDtmb3IoKDB8KGx8PTApKT4tMSYoMHwoY3w9MCkpPjAmKDB8KGZ8PTApKT4wfHxQcig5NTE2Miw5NDk0Myw4NDMsOTUxODgpLChiPTB8dWooYyxmLGwsdyxiLDEp''@;'; + put 'put ''KXx8UHIoOTUyMzMsOTQ5NDMsODQ3LDk1MTg4KSxMZT0wfGFbYisyMD4+Ml0sT2U9MHxhW2IrMjQ+PjJdLEQ9YysxfDAsTT0wOygwfE0pIT0oMHxEKTspYVtMZSsoTTw8Mik+PjJdPTAsTT1NKzF8MDtlOmRve3N3aXRjaCgwfHcpe2Nhc2UgMTpmb3Iodz0wfGFbYisyOD4+Ml0sTT0wOzspe2lm''@;'; + put 'put ''KCgwfE0pPj0oMHxsKSl7cGU9MDticmVha31pZighKCgwfChEPTB8YVtwKyhNPDwyKT4+Ml0pKT4tMSYoMHxEKTwoMHxjKSkpe2JlPTEzO2JyZWFrfWlmKCEoKDB8KGdlPTB8YVttKyhNPDwyKT4+Ml0pKT4tMSYoMHxnZSk8KDB8ZikpKXtiZT0xMzticmVha31hWyhnZT1MZSsoRCsxPDwyKXww''@;'; + put 'put ''KT4+Ml09MSsoMHxhW2dlPj4yXSksTT1NKzF8MH1mb3IoMTM9PSgwfGJlKSYmUHIoMTM4Mzk0LDk0OTQzLDg2Miw5NTE4OCk7Oyl7aWYoKDB8cGUpPT0oMHxjKSl7TT0wO2JyZWFrfWFbKGY9TGUrKChiZT1wZSsxfDApPDwyKXwwKT4+Ml09KDB8YVtmPj4yXSkrKDB8YVtMZSsocGU8PDIpPj4y''@;'; + put 'put ''XSkscGU9YmV9Zm9yKDsoMHxNKSE9KDB8bCk7KV9bdysoKGJlPTB8YVsoZ2U9TGUrKGFbcCsoTTw8Mik+PjJdPDwyKXwwKT4+Ml0pPDwzKT4+M109K19bQSsoTTw8Myk+PjNdLGY9MHxhW20rKE08PDIpPj4yXSxhW2dlPj4yXT1iZSsxLGFbT2UrKGJlPDwyKT4+Ml09ZixNPU0rMXwwO2Zvcig7''@;'; + put 'put ''Oyl7aWYoKDB8Yyk8PTApYnJlYWsgZTthW0xlKyhjPDwyKT4+Ml09YVtMZSsoKG09YystMXwwKTw8Mik+PjJdLGM9bX1jYXNlIDI6Zm9yKHc9MHxhW2IrMjg+PjJdLE09MDs7KXtpZigoMHxNKT49KDB8bCkpe2dlPTA7YnJlYWt9aWYoISgoMHwoRD0wfGFbcCsoTTw8Mik+PjJdKSk+LTEmKDB8''@;'; + put 'put ''RCk8KDB8YykpKXtiZT0yNTticmVha31pZighKCgwfChwZT0wfGFbbSsoTTw8Mik+PjJdKSk+LTEmKDB8cGUpPCgwfGYpKSl7YmU9MjU7YnJlYWt9YVsocGU9TGUrKEQrMTw8Mil8MCk+PjJdPTErKDB8YVtwZT4+Ml0pLE09TSsxfDB9Zm9yKDI1PT0oMHxiZSkmJlByKDEzODM5NCw5NDk0Myw4''@;'; + put 'put ''ODAsOTUxODgpOzspe2lmKCgwfGdlKT09KDB8Yykpe009MDticmVha31hWyhmPUxlKygoYmU9Z2UrMXwwKTw8Mil8MCk+PjJdPSgwfGFbZj4+Ml0pKygwfGFbTGUrKGdlPDwyKT4+Ml0pLGdlPWJlfWZvcig7KDB8TSkhPSgwfGwpOylfW3crKChmPShiZT0wfGFbKGdlPUxlKyhhW3ArKE08PDIp''@;'; + put 'put ''Pj4yXTw8Mil8MCk+PjJdKTw8MSk8PDMpPj4zXT0rX1tBPj4zXSxfW3crKCgxfGYpPDwzKT4+M109K19bQSs4Pj4zXSxmPTB8YVttKyhNPDwyKT4+Ml0sYVtnZT4+Ml09YmUrMSxhW09lKyhiZTw8Mik+PjJdPWYsQT1BKzE2fDAsTT1NKzF8MDtmb3IoOzspe2lmKCgwfGMpPD0wKWJyZWFrIGU7''@;'; + put 'put ''YVtMZSsoYzw8Mik+PjJdPWFbTGUrKChtPWMrLTF8MCk8PDIpPj4yXSxjPW19Y2FzZSA0OmZvcih3PTB8YVtiKzI4Pj4yXSxNPTA7Oyl7aWYoKDB8TSk+PSgwfGwpKXtLPTA7YnJlYWt9aWYoISgoMHwoRD0wfGFbcCsoTTw8Mik+PjJdKSk+LTEmKDB8RCk8KDB8YykpKXtiZT0zNzticmVha31p''@;'; + put 'put ''ZighKCgwfChnZT0wfGFbbSsoTTw8Mik+PjJdKSk+LTEmKDB8Z2UpPCgwfGYpKSl7YmU9Mzc7YnJlYWt9YVsoZ2U9TGUrKEQrMTw8Mil8MCk+PjJdPTErKDB8YVtnZT4+Ml0pLE09TSsxfDB9Zm9yKDM3PT0oMHxiZSkmJlByKDEzODM5NCw5NDk0Myw4OTksOTUxODgpOzspe2lmKCgwfEspPT0o''@;'; + put 'put ''MHxjKSl7TT0wO2JyZWFrfWFbKGY9TGUrKChiZT1LKzF8MCk8PDIpfDApPj4yXT0oMHxhW2Y+PjJdKSsoMHxhW0xlKyhLPDwyKT4+Ml0pLEs9YmV9Zm9yKDsoMHxNKSE9KDB8bCk7KWFbdysoYVtMZSsoYVsoZ2U9cCsoTTw8Mil8MCk+PjJdPDwyKT4+Ml08PDIpPj4yXT1hW0ErKE08PDIpPj4y''@;'; + put 'put ''XSxmPTB8YVttKyhNPDwyKT4+Ml0sYVsoZ2U9TGUrKGFbZ2U+PjJdPDwyKXwwKT4+Ml09MSsoYmU9MHxhW2dlPj4yXSksYVtPZSsoYmU8PDIpPj4yXT1mLE09TSsxfDA7Zm9yKDs7KXtpZigoMHxjKTw9MClicmVhayBlO2FbTGUrKGM8PDIpPj4yXT1hW0xlKygobT1jKy0xfDApPDwyKT4+Ml0s''@;'; + put 'put ''Yz1tfWNhc2UgODpmb3IoQT0wOzspe2lmKCgwfEEpPj0oMHxsKSl7Uj0wO2JyZWFrfWlmKCEoKDB8KE09MHxhW3ArKEE8PDIpPj4yXSkpPi0xJigwfE0pPCgwfGMpKSl7YmU9NDg7YnJlYWt9aWYoISgoMHwoZ2U9MHxhW20rKEE8PDIpPj4yXSkpPi0xJigwfGdlKTwoMHxmKSkpe2JlPTQ4O2Jy''@;'; + put 'put ''ZWFrfWFbKGdlPUxlKyhNKzE8PDIpfDApPj4yXT0xKygwfGFbZ2U+PjJdKSxBPUErMXwwfWZvcig0OD09KDB8YmUpJiZQcigxMzgzOTQsOTQ5NDMsOTE1LDk1MTg4KTs7KXtpZigoMHxSKT09KDB8Yykpe0E9MDticmVha31hWyhmPUxlKygoYmU9UisxfDApPDwyKXwwKT4+Ml09KDB8YVtmPj4y''@;'; + put 'put ''XSkrKDB8YVtMZSsoUjw8Mik+PjJdKSxSPWJlfWZvcig7KDB8QSkhPSgwfGwpOylmPTB8YVttKyhBPDwyKT4+Ml0sYVsoZ2U9TGUrKGFbcCsoQTw8Mik+PjJdPDwyKXwwKT4+Ml09MSsoYmU9MHxhW2dlPj4yXSksYVtPZSsoYmU8PDIpPj4yXT1mLEE9QSsxfDA7Zm9yKDs7KXtpZigoMHxjKTw9''@;'; + put 'put ''MClicmVhayBlO2FbTGUrKGM8PDIpPj4yXT1hW0xlKygobT1jKy0xfDApPDwyKT4+Ml0sYz1tfWNhc2UgMTY6Zm9yKE09MDs7KXtpZigoMHxNKT49KDB8bCkpe0c9MDticmVha31pZighKCgwfChEPTB8YVtwKyhNPDwyKT4+Ml0pKT4tMSYoMHxEKTwoMHxjKSkpe2JlPTU5O2JyZWFrfWlmKCEo''@;'; + put 'put ''KDB8KGdlPTB8YVttKyhNPDwyKT4+Ml0pKT4tMSYoMHxnZSk8KDB8ZikpKXtiZT01OTticmVha31hWyhnZT1MZSsoRCsxPDwyKXwwKT4+Ml09MSsoMHxhW2dlPj4yXSksTT1NKzF8MH1mb3IoNTk9PSgwfGJlKSYmUHIoMTM4Mzk0LDk0OTQzLDkzMCw5NTE4OCk7KDB8RykhPSgwfGMpOylhWyhm''@;'; + put 'put ''PUxlKygoYmU9RysxfDApPDwyKXwwKT4+Ml09KDB8YVtmPj4yXSkrKDB8YVtMZSsoRzw8Mik+PjJdKSxHPWJlO2ZvcihnbygwfGFbYisyOD4+Ml0sMHxBLDB8QXIoMHxhW2IrNDA+PjJdLGwpKSxBPTA7KDB8QSkhPSgwfGwpOylmPTB8YVttKyhBPDwyKT4+Ml0sYVsoZ2U9TGUrKGFbcCsoQTw8''@;'; + put 'put ''Mik+PjJdPDwyKXwwKT4+Ml09MSsoYmU9MHxhW2dlPj4yXSksYVtPZSsoYmU8PDIpPj4yXT1mLEE9QSsxfDA7Zm9yKDs7KXtpZigoMHxjKTw9MClicmVhayBlO2FbTGUrKGM8PDIpPj4yXT1hW0xlKygobT1jKy0xfDApPDwyKT4+Ml0sYz1tfWRlZmF1bHQ6UHIoMTM4Mzk0LDk0OTQzLDk0NCw5''@;'; + put 'put ''NTE4OCl9fXdoaWxlKDApO3JldHVybiBhW0xlPj4yXT0wLGFbYis4Pj4yXT1sLGsmJihiPTB8ZnVuY3Rpb24gWGYobCxjKXtjfD0wO3ZhciBPZSxMZSxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLEs9MCxwZT0wLGdlPTAsYmU9MCxSZT0wLEhlPTA7T2U9MHxh''@;'; + put 'put ''WzIwKyhsfD0wKT4+Ml0sTGU9MHxhW2wrMjQ+PjJdLHA9MHxhW2wrMTY+PjJdLGdlPTB8YVtsKzQ+PjJdO2U6ZG97aWYoYyl7Zm9yKFI9MHxRbihEPWdlPDwyKSxmPTA7ISgoMHxmKT49KDB8Z2UpKTspYVtSKyhmPDwyKT4+Ml09LTEsZj1mKzF8MDt0OmRve3N3aXRjaCgwfHApe2Nhc2UgMTpr''@;'; + put 'put ''PTB8YVtsKzI4Pj4yXSxtPTAscD0wfGFbT2U+PjJdLGY9MDtuOmZvcig7Oyl7aWYoKDB8Zik+PSgwfGFbbD4+Ml0pKXtSZT1tLEhlPVI7YnJlYWsgdH1mb3IoRD1PZSsoKE09ZisxfDApPDwyKXwwLHc9T2UrKGY8PDIpfDAsZj1tOyEoKDB8cCk+PSgwfChjPTB8YVtEPj4yXSkpKTspe2lmKCgw''@;'; + put 'put ''fChBPTB8YVtSKygobT0wfGFbKGM9TGUrKHA8PDIpfDApPj4yXSk8PDIpPj4yXSkpPCgwfGFbdz4+Ml0pKWFbTGUrKGY8PDIpPj4yXT1tLF9baysoZjw8Myk+PjNdPStfW2srKHA8PDMpPj4zXSxhW1IrKGFbYz4+Ml08PDIpPj4yXT1mLGY9ZisxfDA7ZWxzZXtpZigoMHxhW0xlKyhBPDwyKT4+''@;'; + put 'put ''Ml0pIT0oMHxtKSlicmVhayBuO19bKGJlPWsrKEE8PDMpfDApPj4zXT0rX1tiZT4+M10rICtfW2srKHA8PDMpPj4zXX1wPXArMXwwfWFbRD4+Ml09ZixtPWYscD1jLGY9TX1Qcig5NTIzNSw5NDk0MywxNzkyLDk1MjYwKTticmVhaztjYXNlIDI6c3dpdGNoKGJlPTB8YVtsKzI4Pj4yXSwwfGMp''@;'; + put 'put ''e2Nhc2UgMTpjPTB8YVtPZT4+Ml0scD0wLGY9MDtuOmZvcig7Oyl7aWYoKDB8cCk+PSgwfGFbbD4+Ml0pKXtSZT1mLEhlPVI7YnJlYWsgdH1mb3IoTT1PZSsoKGs9cCsxfDApPDwyKXwwLHc9T2UrKHA8PDIpfDA7ISgoMHxjKT49KDB8KHA9MHxhW00+PjJdKSkpOyl7aWYoKDB8KEE9MHxhW1Ir''@;'; + put 'put ''KChtPTB8YVsocD1MZSsoYzw8Mil8MCk+PjJdKTw8Mik+PjJdKSk8KDB8YVt3Pj4yXSkpYVtMZSsoZjw8Mik+PjJdPW0sX1tiZSsoKGdlPWY8PDEpPDwzKT4+M109K19bYmUrKChwZT1jPDwxKTw8Myk+PjNdLF9bYmUrKCgxfGdlKTw8Myk+PjNdPStfW2JlKygoMXxwZSk8PDMpPj4zXSxhW1Ir''@;'; + put 'put ''KGFbcD4+Ml08PDIpPj4yXT1mLGY9ZisxfDA7ZWxzZXtpZigoMHxhW0xlKyhBPDwyKT4+Ml0pIT0oMHxtKSlicmVhayBuO19bKEs9YmUrKChnZT1BPDwxKTw8Myl8MCk+PjNdPStfW0s+PjNdKyArX1tiZSsoKHBlPWM8PDEpPDwzKT4+M10sX1soZ2U9YmUrKCgxfGdlKTw8Myl8MCk+PjNdPStf''@;'; + put 'put ''W2dlPj4zXSsgK19bYmUrKCgxfHBlKTw8Myk+PjNdfWM9YysxfDB9YVtNPj4yXT1mLGM9cCxwPWt9UHIoOTUyMzUsOTQ5NDMsMTgxNSw5NTI2MCk7YnJlYWs7Y2FzZSA0OmM9MHxhW09lPj4yXSxwPTAsZj0wO246Zm9yKDs7KXtpZigoMHxwKT49KDB8YVtsPj4yXSkpe1JlPWYsSGU9UjticmVh''@;'; + put 'put ''ayB0fWZvcihrPU9lKygoTT1wKzF8MCk8PDIpfDAsdz1PZSsocDw8Mil8MDshKCgwfGMpPj0oMHwocD0wfGFbaz4+Ml0pKSk7KXtpZigoMHwoQT0wfGFbUisoKG09MHxhWyhwPUxlKyhjPDwyKXwwKT4+Ml0pPDwyKT4+Ml0pKTwoMHxhW3c+PjJdKSlhW0xlKyhmPDwyKT4+Ml09bSxfW2JlKygo''@;'; + put 'put ''Z2U9Zjw8MSk8PDMpPj4zXT0rX1tiZSsoKHBlPWM8PDEpPDwzKT4+M10sX1tiZSsoKDF8Z2UpPDwzKT4+M109K19bYmUrKCgxfHBlKTw8Myk+PjNdLGFbUisoYVtwPj4yXTw8Mik+PjJdPWYsZj1mKzF8MDtlbHNle2lmKCgwfGFbTGUrKEE8PDIpPj4yXSkhPSgwfG0pKWJyZWFrIG47X1soSz1i''@;'; + put 'put ''ZSsoKGdlPUE8PDEpPDwzKXwwKT4+M109K19bSz4+M10rICtfW2JlKygocGU9Yzw8MSk8PDMpPj4zXSxfW2JlKygoMXxnZSk8PDMpPj4zXT0rX1tiZSsoKDF8cGUpPDwzKT4+M119Yz1jKzF8MH1hW2s+PjJdPWYsYz1wLHA9TX1Qcig5NTIzNSw5NDk0MywxODM1LDk1MjYwKTticmVhaztjYXNl''@;'; + put 'put ''IDI6dz0wfGFbbD4+Ml0scD1wZT1+fitfW2JlKzg+PjNdLEE9MCxmPTA7bjpmb3IoOyEoKDB8QSk+PSgwfHcpKTspZm9yKGs9QSsxfDAsTT0wfGFbT2UrKGs8PDIpPj4yXSxtPWYsYz1wZSxmPTB8YVtPZSsoQTw8Mik+PjJdOzspe2lmKCgwfGYpPj0oMHxNKSl7cGU9YyxBPWssZj1tO2NvbnRp''@;'; + put 'put ''bnVlIG59cGU9fn4rX1tiZSsoKG08PDF8MSk8PDMpPj4zXSxtPW0rMXwwLHA9KDB8cCk+KDB8cGUpP3A6cGUsYz0oMHxjKTwoMHxwZSk/YzpwZSxmPWYrMXwwfWZvcihGdChSKSxHPTB8UW4oMHxBcihLPXAtcGUrMXwwLEQpKSxLPTB8QXIoSyxnZSksZj0wOyEoKDB8Zik+PSgwfEspKTspYVtH''@;'; + put 'put ''KyhmPDwyKT4+Ml09LTEsZj1mKzF8MDtmPTAsYz0wfGFbT2U+PjJdLHA9MDtuOmZvcig7Oyl7aWYoKDB8cCk+PSgwfGFbbD4+Ml0pKXtSZT1mLEhlPUc7YnJlYWsgdH1mb3IoUj1PZSsoKEQ9cCsxfDApPDwyKXwwLE09T2UrKHA8PDIpfDA7ISgoMHxjKT49KDB8KHA9MHxhW1I+PjJdKSkpOyl7''@;'; + put 'put ''aWYocD0wfGFbTGUrKGM8PDIpPj4yXSxBPSgwfEFyKH5+KGI9K19bYmUrKCgxfChtPWM8PDEpKTw8Myk+PjNdKS1wZXwwLGdlKSkrcHwwLCgwfChrPTB8YVsodz1HKyhBPDwyKXwwKT4+Ml0pKTwoMHxhW00+PjJdKSlhW0xlKyhmPDwyKT4+Ml09cCxfW2JlKygoaz1mPDwxKTw8Myk+PjNdPStf''@;'; + put 'put ''W2JlKyhtPDwzKT4+M10sX1tiZSsoKDF8ayk8PDMpPj4zXT1iLGFbdz4+Ml09ZixmPWYrMXwwO2Vsc2V7aWYoKDB8QSk+PSgwfEspKXtmPTU1O2JyZWFrIG59aWYoKDB8YVtMZSsoazw8Mik+PjJdKSE9KDB8cCkpe2Y9NTc7YnJlYWsgbn1fWyh3PWJlKygoazw8PTEpPDwzKXwwKT4+M109K19b''@;'; + put 'put ''dz4+M10rICtfW2JlKyhtPDwzKT4+M10sX1tiZSsoKDF8ayk8PDMpPj4zXT1ifWM9YysxfDB9YVtSPj4yXT1mLGM9cCxwPUR9NTU9PSgwfGYpP1ByKDk1MjkyLDk0OTQzLDE4NjksOTUyNjApOjU3PT0oMHxmKSYmUHIoOTUzMTMsOTQ5NDMsMTg3MCw5NTI2MCk7YnJlYWs7Y2FzZSAzOnc9MHxh''@;'; + put 'put ''W2w+PjJdLGY9bT1+fitfW2JlKzg+PjNdLHA9MCxBPTA7bjpmb3IoOyEoKDB8QSk+PSgwfHcpKTspZm9yKGs9QSsxfDAsTT0wfGFbT2UrKGs8PDIpPj4yXSxjPWYsZj0wfGFbT2UrKEE8PDIpPj4yXTs7KXtpZigoMHxmKT49KDB8TSkpe2Y9YyxBPWs7Y29udGludWUgbn1jPSgwfGMpPigwfChw''@;'; + put 'put ''ZT1+fitfW2JlKyhwPDwxPDwzKT4+M10pKT9jOnBlLG09KDB8bSk+KDB8cGUpP206cGUscD1wKzF8MCxmPWYrMXwwfWZvcihGdChSKSxHPTB8UW4oMHxBcihwPWYtbSsxfDAsRCkpLHA9MHxBcihwLGdlKSxmPTA7ISgoMHxmKT49KDB8cCkpOylhW0crKGY8PDIpPj4yXT0tMSxmPWYrMXwwO2Y9''@;'; + put 'put ''MCxjPTB8YVtPZT4+Ml0scD0wO246Zm9yKDs7KXtpZigoMHxwKT49KDB8YVtsPj4yXSkpe1JlPWYsSGU9RzticmVhayB0fWZvcihSPU9lKygoRD1wKzF8MCk8PDIpfDAsTT1PZSsocDw8Mil8MDshKCgwfGMpPj0oMHwocD0wfGFbUj4+Ml0pKSk7KXtpZihwPTB8YVtMZSsoYzw8Mik+PjJdLHc9''@;'; + put 'put ''RysoKDB8QXIofn4oYj0rX1tiZSsoKEE9Yzw8MSk8PDMpPj4zXSktbXwwLGdlKSkrcDw8Mil8MCwoMHwoaz0wfGFbdz4+Ml0pKTwoMHxhW00+PjJdKSlhW0xlKyhmPDwyKT4+Ml09cCxfW2JlKygocGU9Zjw8MSk8PDMpPj4zXT1iLF9bYmUrKCgxfHBlKTw8Myk+PjNdPStfW2JlKygoMXxBKTw8''@;'; + put 'put ''Myk+PjNdLGFbdz4+Ml09ZixmPWYrMXwwO2Vsc2V7aWYoKDB8YVtMZSsoazw8Mik+PjJdKSE9KDB8cCkpYnJlYWsgbjtfW2JlKygocGU9azw8MSk8PDMpPj4zXT1iLF9bKHBlPWJlKygoMXxwZSk8PDMpfDApPj4zXT0rX1twZT4+M10rICtfW2JlKygoMXxBKTw8Myk+PjNdfWM9YysxfDB9YVtS''@;'; + put 'put ''Pj4yXT1mLGM9cCxwPUR9UHIoOTUzMTMsOTQ5NDMsMTkwNSw5NTI2MCk7YnJlYWs7ZGVmYXVsdDpSZT0wLEhlPVI7YnJlYWsgdH1icmVhaztjYXNlIDQ6az0wfGFbbCsyOD4+Ml0scD0wLGY9MCxjPTB8YVtPZT4+Ml07bjpmb3IoOzspe2lmKCgwfHApPj0oMHxhW2w+PjJdKSl7UmU9ZixIZT1S''@;'; + put 'put ''O2JyZWFrIHR9Zm9yKEQ9T2UrKChNPXArMXwwKTw8Mil8MCx3PU9lKyhwPDwyKXwwOyEoKDB8Yyk+PSgwfChtPTB8YVtEPj4yXSkpKTspe2lmKCgwfChBPTB8YVtSKygobT0wfGFbKHA9TGUrKGM8PDIpfDApPj4yXSk8PDIpPj4yXSkpPCgwfGFbdz4+Ml0pKWFbTGUrKGY8PDIpPj4yXT1tLGFb''@;'; + put 'put ''aysoZjw8Mik+PjJdPWFbaysoYzw8Mik+PjJdLGFbUisoYVtwPj4yXTw8Mik+PjJdPWYsZj1mKzF8MDtlbHNle2lmKCgwfGFbTGUrKEE8PDIpPj4yXSkhPSgwfG0pKWJyZWFrIG47YVsoYmU9aysoQTw8Mil8MCk+PjJdPSgwfGFbYmU+PjJdKSsoMHxhW2srKGM8PDIpPj4yXSl9Yz1jKzF8MH1h''@;'; + put 'put ''W0Q+PjJdPWYscD1NLGM9bX1Qcig5NTIzNSw5NDk0MywxOTI5LDk1MjYwKTticmVhaztjYXNlIDg6cD0wLGY9MCxjPTB8YVtPZT4+Ml07bjpmb3IoOzspe2lmKCgwfHApPj0oMHxhW2w+PjJdKSl7UmU9ZixIZT1SO2JyZWFrIHR9Zm9yKE09T2UrKChrPXArMXwwKTw8Mil8MCx3PU9lKyhwPDwy''@;'; + put 'put ''KXwwOyEoKDB8Yyk+PSgwfChtPTB8YVtNPj4yXSkpKTspe2lmKCgwfChBPTB8YVtSKygobT0wfGFbKHA9TGUrKGM8PDIpfDApPj4yXSk8PDIpPj4yXSkpPj0oMHxhW3c+PjJdKSl7aWYoKDB8YVtMZSsoQTw8Mik+PjJdKSE9KDB8bSkpYnJlYWsgbn1lbHNlIGFbTGUrKGY8PDIpPj4yXT1tLGFb''@;'; + put 'put ''UisoYVtwPj4yXTw8Mik+PjJdPWYsZj1mKzF8MDtjPWMrMXwwfWFbTT4+Ml09ZixwPWssYz1tfVByKDk1MjM1LDk0OTQzLDE5NDgsOTUyNjApO2JyZWFrO2RlZmF1bHQ6bD0wO2JyZWFrIGV9fXdoaWxlKDApO2FbbCs4Pj4yXT1SZSxGdChIZSl9fXdoaWxlKDApO3JldHVybiAwfGx9KGIsaykp''@;'; + put 'put ''LDB8Yn0obHw9MCxjfD0wLGZ8PTAscHw9MCxtfD0wLEF8PTAsd3w9MCxifD0wLDEpfWZ1bmN0aW9uIGZqKGwsYyxmLHApe3ZhciBtLEE7Zm9yKGN8PTAsZnw9MCxtPTcyKyhsfD0wKXwwLEE9NCsocHw9MCl8MDshKChmLWN8MCk8PTApOyl7c3dpdGNoKDB8ZmVbbSsoMHxYdFtjPj4wXSk+PjBd''@;'; + put 'put ''KXtjYXNlIDU6Yz1jKzJ8MDticmVhaztjYXNlIDY6Yz1jKzN8MDticmVhaztjYXNlIDc6Yz1jKzR8MDticmVhaztjYXNlIDEwOmFbQT4+Ml09LTEsYVtwPj4yXT0xKygwfGFbcD4+Ml0pLGM9YysxfDA7YnJlYWs7Y2FzZSA5OmFbcD4+Ml09MSsoMHxhW3A+PjJdKSxjPShmLShsPWMrMXwwKXww''@;'; + put 'put ''KT4wJiYxMD09KDB8ZmVbbSsoMHxYdFtsPj4wXSk+PjBdKT9jKzJ8MDpsLGFbQT4+Ml09LTE7YnJlYWs7ZGVmYXVsdDpjPWMrMXwwfWFbQT4+Ml09MSsoMHxhW0E+PjJdKX19ZnVuY3Rpb24gb0wobCxjLGYscCl7bHw9MCxwfD0wO3ZhciBiLG09MCxBPTAsdz0wLGs9MDttPShiPWZ8PTApLShj''@;'; + put 'put ''fD0wKXwwO2U6ZG97aWYoKDB8bSk+MCl7c3dpdGNoKDB8ZmVbKGs9bCs3MnwwKSsoMHxYdFtjPj4wXSk+PjBdKXtjYXNlIDI5OmRlZmF1bHQ6YVtwPj4yXT1jLGY9MDticmVhayBlO2Nhc2UgMjQ6Y2FzZSAyMjpmPTE7YnJlYWs7Y2FzZSA1OmlmKCgwfG0pPDIpe2Y9LTI7YnJlYWsgZX1pZigh''@;'; + put 'put ''KDB8QmlbMTI3JmFbbCszNDA+PjJdXShsLGMpKSl7YVtwPj4yXT1jLGY9MDticmVhayBlfWY9MjticmVhaztjYXNlIDY6aWYoKDB8bSk8Myl7Zj0tMjticmVhayBlfWlmKCEoMHxCaVsxMjcmYVtsKzM0ND4+Ml1dKGwsYykpKXthW3A+PjJdPWMsZj0wO2JyZWFrIGV9Zj0zO2JyZWFrO2Nhc2Ug''@;'; + put 'put ''NzppZigoMHxtKTw0KXtmPS0yO2JyZWFrIGV9aWYoISgwfEJpWzEyNyZhW2wrMzQ4Pj4yXV0obCxjKSkpe2FbcD4+Ml09YyxmPTA7YnJlYWsgZX1mPTQ7YnJlYWs7Y2FzZSAxOTpmPTB8UEsobCxjKzF8MCxmLHApO2JyZWFrIGV9bT1sKzMyOHwwLEE9bCszMzJ8MCx3PWwrMzM2fDAsYz1jK2Z8''@;'; + put 'put ''MDt0OmZvcig7Oyl7aWYoKDB8KGY9Yi1jfDApKTw9MCl7Zj0tMTticmVhayBlfXN3aXRjaCgwfGZlW2srKDB8WHRbYz4+MF0pPj4wXSl7Y2FzZSAyOTptPTE4O2JyZWFrIHQ7Y2FzZSAxODptPTI5O2JyZWFrIHQ7Y2FzZSAyNzpjYXNlIDI2OmNhc2UgMjU6Y2FzZSAyNDpjYXNlIDIyOmY9MTti''@;'; + put 'put ''cmVhaztjYXNlIDU6aWYoKDB8Zik8Mil7Zj0tMjticmVhayBlfWlmKCEoMHxCaVsxMjcmYVttPj4yXV0obCxjKSkpe209MjE7YnJlYWsgdH1mPTI7YnJlYWs7Y2FzZSA2OmlmKCgwfGYpPDMpe2Y9LTI7YnJlYWsgZX1pZighKDB8QmlbMTI3JmFbQT4+Ml1dKGwsYykpKXttPTI0O2JyZWFrIHR9''@;'; + put 'put ''Zj0zO2JyZWFrO2Nhc2UgNzppZigoMHxmKTw0KXtmPS0yO2JyZWFrIGV9aWYoISgwfEJpWzEyNyZhW3c+PjJdXShsLGMpKSl7bT0yNzticmVhayB0fWY9NDticmVhaztkZWZhdWx0Om09MzA7YnJlYWsgdH1jPWMrZnwwfWlmKDE4PT0oMHxtKSl7YVtwPj4yXT1jLGY9MDticmVha31pZigyMT09''@;'; + put 'put ''KDB8bSkpe2FbcD4+Ml09YyxmPTA7YnJlYWt9aWYoMjQ9PSgwfG0pKXthW3A+PjJdPWMsZj0wO2JyZWFrfWlmKDI3PT0oMHxtKSl7YVtwPj4yXT1jLGY9MDticmVha31pZigyOT09KDB8bSkpe2FbcD4+Ml09YysxLGY9OTticmVha31pZigzMD09KDB8bSkpe2FbcD4+Ml09YyxmPTA7YnJlYWt9''@;'; + put 'put ''fWVsc2UgZj0tMX13aGlsZSgwKTtyZXR1cm4gMHxmfWZ1bmN0aW9uIGhqKGwsYyxmLHApe2x8PTAscHw9MDt2YXIgbT0wLEE9MCx3PTAsYj0wLGs9MDttPShmfD0wKS0oY3w9MCl8MDtlOmRve2lmKCgwfG0pPjApe3N3aXRjaCgwfGZlWyhrPWwrNzJ8MCkrKDB8WHRbYz4+MF0pPj4wXSl7Y2Fz''@;'; + put 'put ''ZSAyOTpkZWZhdWx0OmFbcD4+Ml09YyxmPTA7YnJlYWsgZTtjYXNlIDI0OmNhc2UgMjI6bT0xO2JyZWFrO2Nhc2UgNTppZigoMHxtKTwyKXtmPS0yO2JyZWFrIGV9aWYoISgwfEJpWzEyNyZhW2wrMzQwPj4yXV0obCxjKSkpe2FbcD4+Ml09YyxmPTA7YnJlYWsgZX1tPTI7YnJlYWs7Y2FzZSA2''@;'; + put 'put ''OmlmKCgwfG0pPDMpe2Y9LTI7YnJlYWsgZX1pZighKDB8QmlbMTI3JmFbbCszNDQ+PjJdXShsLGMpKSl7YVtwPj4yXT1jLGY9MDticmVhayBlfW09MzticmVhaztjYXNlIDc6aWYoKDB8bSk8NCl7Zj0tMjticmVhayBlfWlmKCEoMHxCaVsxMjcmYVtsKzM0OD4+Ml1dKGwsYykpKXthW3A+PjJd''@;'; + put 'put ''PWMsZj0wO2JyZWFrIGV9bT00O2JyZWFrO2Nhc2UgMzA6Y2FzZSA5OmNhc2UgMTA6Y2FzZSAyMTphW3A+PjJdPWMsZj0yMjticmVhayBlfUE9bCszMjh8MCx3PWwrMzMyfDAsYj1sKzMzNnwwLGM9YyttfDA7dDpmb3IoOzspe2lmKCgwfChtPWYtY3wwKSk8PTApe2Y9LTE7YnJlYWsgZX1zd2l0''@;'; + put 'put ''Y2goMHxmZVtrKygwfFh0W2M+PjBdKT4+MF0pe2Nhc2UgMjk6bT0xODticmVhayB0O2Nhc2UgMTg6bT0yOTticmVhayB0O2Nhc2UgMjc6Y2FzZSAyNjpjYXNlIDI1OmNhc2UgMjQ6Y2FzZSAyMjptPTE7YnJlYWs7Y2FzZSA1OmlmKCgwfG0pPDIpe2Y9LTI7YnJlYWsgZX1pZighKDB8QmlbMTI3''@;'; + put 'put ''JmFbQT4+Ml1dKGwsYykpKXttPTIxO2JyZWFrIHR9bT0yO2JyZWFrO2Nhc2UgNjppZigoMHxtKTwzKXtmPS0yO2JyZWFrIGV9aWYoISgwfEJpWzEyNyZhW3c+PjJdXShsLGMpKSl7bT0yNDticmVhayB0fW09MzticmVhaztjYXNlIDc6aWYoKDB8bSk8NCl7Zj0tMjticmVhayBlfWlmKCEoMHxC''@;'; + put 'put ''aVsxMjcmYVtiPj4yXV0obCxjKSkpe209Mjc7YnJlYWsgdH1tPTQ7YnJlYWs7ZGVmYXVsdDptPTMwO2JyZWFrIHR9Yz1jK218MH1pZigxOD09KDB8bSkpe2FbcD4+Ml09YyxmPTA7YnJlYWt9aWYoMjE9PSgwfG0pKXthW3A+PjJdPWMsZj0wO2JyZWFrfWlmKDI0PT0oMHxtKSl7YVtwPj4yXT1j''@;'; + put 'put ''LGY9MDticmVha31pZigyNz09KDB8bSkpe2FbcD4+Ml09YyxmPTA7YnJlYWt9aWYoMjk9PSgwfG0pKXthW3A+PjJdPWMrMSxmPTI4O2JyZWFrfWlmKDMwPT0oMHxtKSl7YVtwPj4yXT1jLGY9MDticmVha319ZWxzZSBmPS0xfXdoaWxlKDApO3JldHVybiAwfGZ9ZnVuY3Rpb24gUEsobCxjLGYs''@;'; + put 'put ''cCl7bHw9MCxjfD0wLHB8PTA7dmFyIEEsbT0wO0E9Znw9MDtlOmRve2lmKChBLWN8MCk+MCl7aWYoKG09MHxmZVtjPj4wXSk8PDI0Pj4yND09MTIwKXtsPTB8RksobCxjKzF8MCxmLHApO2JyZWFrfWlmKDI1IT0oMHxmZVsoZj1sKzcyfDApKygyNTUmbSk+PjBdKSl7YVtwPj4yXT1jLGw9MDti''@;'; + put 'put ''cmVha310OmZvcig7Oyl7aWYoKEEtKGw9YysxfDApfDApPD0wKXtsPS0xO2JyZWFrIGV9c3dpdGNoKDB8ZmVbZisoMHxYdFtsPj4wXSk+PjBdKXtjYXNlIDI1OmM9bDticmVhaztjYXNlIDE4OmY9ODticmVhayB0O2RlZmF1bHQ6Zj05O2JyZWFrIHR9fWlmKDg9PSgwfGYpKXthW3A+PjJdPWMr''@;'; + put 'put ''MixsPTEwO2JyZWFrfWlmKDk9PSgwfGYpKXthW3A+PjJdPWwsbD0wO2JyZWFrfX1lbHNlIGw9LTF9d2hpbGUoMCk7cmV0dXJuIDB8bH1mdW5jdGlvbiBGSyhsLGMsZixwKXtsfD0wLGN8PTAsZnw9MCxwfD0wO3ZhciBtPTA7ZTpkb3tpZigoZi1jfDApPjApe2lmKCgtMiZmZVsobD1sKzcyfDAp''@;'; + put 'put ''KygwfFh0W2M+PjBdKT4+MF0pPDwyND4+MjQhPTI0KXthW3A+PjJdPWMsZj0wO2JyZWFrfXQ6Zm9yKDs7KXtpZigoZi0obT1jKzF8MCl8MCk8PTApe2Y9LTE7YnJlYWsgZX1zd2l0Y2goMHxmZVtsKygwfFh0W20+PjBdKT4+MF0pe2Nhc2UgMjQ6Y2FzZSAyNTpjPW07YnJlYWs7Y2FzZSAxODps''@;'; + put 'put ''PTY7YnJlYWsgdDtkZWZhdWx0Omw9NzticmVhayB0fX1pZig2PT0oMHxsKSl7YVtwPj4yXT1jKzIsZj0xMDticmVha31pZig3PT0oMHxsKSl7YVtwPj4yXT1tLGY9MDticmVha319ZWxzZSBmPS0xfXdoaWxlKDApO3JldHVybiAwfGZ9ZnVuY3Rpb24gRjllKGwsYyxmLHApe2x8PTAscHw9MDt2''@;'; + put 'put ''YXIgSyxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxwZT0wO209KEs9Znw9MCktKGN8PTApfDA7ZTpkb3tpZigoMHxtKT4wKXtzd2l0Y2goMHxmZVsoRz1sKzcyfDApKygwfFh0W2M+PjBdKT4+MF0pe2Nhc2UgMjk6YVtwPj4yXT1jLG09MDticmVhayBlO2Nhc2UgMjQ6Y2Fz''@;'; + put 'put ''ZSAyMjptPTE7YnJlYWs7Y2FzZSA1OmlmKCgwfG0pPDIpe209LTI7YnJlYWsgZX1pZighKDB8QmlbMTI3JmFbbCszNDA+PjJdXShsLGMpKSl7YVtwPj4yXT1jLG09MDticmVhayBlfW09MjticmVhaztjYXNlIDY6aWYoKDB8bSk8Myl7bT0tMjticmVhayBlfWlmKCEoMHxCaVsxMjcmYVtsKzM0''@;'; + put 'put ''ND4+Ml1dKGwsYykpKXthW3A+PjJdPWMsbT0wO2JyZWFrIGV9bT0zO2JyZWFrO2Nhc2UgNzppZigoMHxtKTw0KXttPS0yO2JyZWFrIGV9aWYoISgwfEJpWzEyNyZhW2wrMzQ4Pj4yXV0obCxjKSkpe2FbcD4+Ml09YyxtPTA7YnJlYWsgZX1tPTQ7YnJlYWs7Y2FzZSAxNjppZigoSy0obT1jKzF8''@;'; + put 'put ''MCl8MCk8PTApe209LTE7YnJlYWsgZX1zd2l0Y2goMHxmZVtHKygwfFh0W20+PjBdKT4+MF0pe2Nhc2UgMjc6bT0wfGRqKGwsYysyfDAsZixwKTticmVhayBlO2Nhc2UgMjA6bT0wfHBqKGMrMnwwLGYscCk7YnJlYWsgZTtkZWZhdWx0OmFbcD4+Ml09bSxtPTA7YnJlYWsgZX1jYXNlIDE1Om09''@;'; + put 'put ''MHxhTChsLGMrMXwwLGYscCk7YnJlYWsgZTtjYXNlIDE3Om09MHxIOWUobCxjKzF8MCxmLHApO2JyZWFrIGU7ZGVmYXVsdDphW3A+PjJdPWMsbT0wO2JyZWFrIGV9dz1sKzMyOHwwLGI9bCszMzJ8MCxrPWwrMzM2fDAsTT1sKzM0MHwwLEQ9bCszNDR8MCxSPWwrMzQ4fDAsQT0wLG09YyttfDA7''@;'; + put 'put ''dDpmb3IoOzspe2lmKCgwfChjPUstbXwwKSk8PTApe209LTE7YnJlYWsgZX1uOmRve3N3aXRjaCgwfGZlW0crKDB8WHRbbT4+MF0pPj4wXSl7Y2FzZSAyOTpwZT0yNDticmVhayB0O2Nhc2UgMTA6Y2FzZSA5OmNhc2UgMjE6cGU9NTA7YnJlYWsgdDtjYXNlIDExOnBlPTY0O2JyZWFrIHQ7Y2Fz''@;'; + put 'put ''ZSAxNzpicmVhayB0O2Nhc2UgMjc6Y2FzZSAyNjpjYXNlIDI1OmNhc2UgMjQ6Y2FzZSAyMjpjPTE7YnJlYWs7Y2FzZSA1OmlmKCgwfGMpPDIpe209LTI7YnJlYWsgZX1pZighKDB8QmlbMTI3JmFbdz4+Ml1dKGwsbSkpKXtwZT0yNzticmVhayB0fWM9MjticmVhaztjYXNlIDY6aWYoKDB8Yyk8''@;'; + put 'put ''Myl7bT0tMjticmVhayBlfWlmKCEoMHxCaVsxMjcmYVtiPj4yXV0obCxtKSkpe3BlPTMwO2JyZWFrIHR9Yz0zO2JyZWFrO2Nhc2UgNzppZigoMHxjKTw0KXttPS0yO2JyZWFrIGV9aWYoISgwfEJpWzEyNyZhW2s+PjJdXShsLG0pKSl7cGU9MzM7YnJlYWsgdH1jPTQ7YnJlYWs7Y2FzZSAyMzpp''@;'; + put 'put ''ZigwfEEpe3BlPTM1O2JyZWFrIHR9aWYoKDB8KGM9Sy0oQT1tKzF8MCl8MCkpPD0wKXttPS0xO2JyZWFrIGV9c3dpdGNoKDB8ZmVbRysoMHxYdFtBPj4wXSk+PjBdKXtjYXNlIDI5OnBlPTM4O2JyZWFrIHQ7Y2FzZSAyNDpjYXNlIDIyOkE9MSxjPTI7YnJlYWsgbjtjYXNlIDU6aWYoKDB8Yyk8''@;'; + put 'put ''Mil7bT0tMjticmVhayBlfWlmKDB8QmlbMTI3JmFbTT4+Ml1dKGwsQSkpe0E9MSxjPTM7YnJlYWsgbn1wZT00MjticmVhayB0O2Nhc2UgNjppZigoMHxjKTwzKXttPS0yO2JyZWFrIGV9aWYoMHxCaVsxMjcmYVtEPj4yXV0obCxBKSl7QT0xLGM9NDticmVhayBufXBlPTQ1O2JyZWFrIHQ7Y2Fz''@;'; + put 'put ''ZSA3OmlmKCgwfGMpPDQpe209LTI7YnJlYWsgZX1pZigwfEJpWzEyNyZhW1I+PjJdXShsLEEpKXtBPTEsYz01O2JyZWFrIG59cGU9NDg7YnJlYWsgdDtkZWZhdWx0OnBlPTQ5O2JyZWFrIHR9ZGVmYXVsdDpwZT02OTticmVhayB0fX13aGlsZSgwKTttPW0rY3wwfXQ6c3dpdGNoKDB8cGUpe2Nh''@;'; + put 'put ''c2UgMjQ6Y2FzZSAyNzpjYXNlIDMwOmNhc2UgMzM6Y2FzZSAzNTpjYXNlIDY5OmFbcD4+Ml09bSxtPTA7YnJlYWsgZTtjYXNlIDM4OmNhc2UgNDI6Y2FzZSA0NTpjYXNlIDQ4OmNhc2UgNDk6YVtwPj4yXT1BLG09MDticmVhayBlO2Nhc2UgNTA6bjpmb3IoOzspe2lmKHBlPTAsKDB8KGM9Sy0o''@;'; + put 'put ''QT1tKzF8MCl8MCkpPD0wKXttPS0xO2JyZWFrIGV9c3dpdGNoKDB8ZmVbRysoMHxYdFtBPj4wXSk+PjBdKXtjYXNlIDExOm09QSxwZT02NDticmVhayB0O2Nhc2UgMTc6bT1BO2JyZWFrIHQ7Y2FzZSAxMDpjYXNlIDk6Y2FzZSAyMTptPUEscGU9NTA7YnJlYWs7Y2FzZSAyOTpwZT01MjticmVh''@;'; + put 'put ''ayBuO2Nhc2UgMjQ6Y2FzZSAyMjpBPTI7YnJlYWsgbjtjYXNlIDU6cGU9NTM7YnJlYWsgbjtjYXNlIDY6cGU9NTY7YnJlYWsgbjtjYXNlIDc6cGU9NTk7YnJlYWsgbjtkZWZhdWx0OnBlPTYyO2JyZWFrIG59fWlmKDUyPT0oMHxwZSkpe2FbcD4+Ml09QSxtPTA7YnJlYWsgZX1pZig1Mz09KDB8''@;'; + put 'put ''cGUpKXtpZigoMHxjKTwyKXttPS0yO2JyZWFrIGV9aWYoISgwfEJpWzEyNyZhW00+PjJdXShsLEEpKSl7YVtwPj4yXT1BLG09MDticmVhayBlfUE9M31lbHNlIGlmKDU2PT0oMHxwZSkpe2lmKCgwfGMpPDMpe209LTI7YnJlYWsgZX1pZighKDB8QmlbMTI3JmFbRD4+Ml1dKGwsQSkpKXthW3A+''@;'; + put 'put ''PjJdPUEsbT0wO2JyZWFrIGV9QT00fWVsc2UgaWYoNTk9PSgwfHBlKSl7aWYoKDB8Yyk8NCl7bT0tMjticmVhayBlfWlmKCEoMHxCaVsxMjcmYVtSPj4yXV0obCxBKSkpe2FbcD4+Ml09QSxtPTA7YnJlYWsgZX1BPTV9ZWxzZSBpZig2Mj09KDB8cGUpKXthW3A+PjJdPUEsbT0wO2JyZWFrIGV9''@;'; + put 'put ''bT0wfEp5KGwsbStBfDAsZixwKTticmVhayBlfWlmKDY0PT0oMHxwZSkpe2FbcD4+Ml09bSsxLG09MjticmVha31pZigoSy0oQT1tKzF8MCl8MCk+MCl7aWYoNjI9PSgwfGZlW0E+PjBdKSl7YVtwPj4yXT1tKzIsbT00O2JyZWFrfWFbcD4+Ml09QSxtPTA7YnJlYWt9bT0tMX1lbHNlIG09LTF9''@;'; + put 'put ''d2hpbGUoMCk7cmV0dXJuIDB8bX1mdW5jdGlvbiBkaihsLGMsZixwKXtsfD0wLGN8PTAsZnw9MCxwfD0wO3ZhciBtPTAsQT0wLHc9MCxiPTAsaz0wO2U6ZG97aWYoKGYtY3wwKT4wKXtpZig0NSE9KDB8ZmVbYz4+MF0pKXthW3A+PjJdPWMsZj0wO2JyZWFrfW09bCs3MnwwLEE9bCszNTJ8MCx3''@;'; + put 'put ''PWwrMzU2fDAsYj1sKzM2MHwwLGs9YysxfDA7dDpmb3IoOzspe2lmKCgwfChjPWYta3wwKSk8PTApe2Y9LTE7YnJlYWsgZX1zd2l0Y2goMHxmZVttKygwfFh0W2s+PjBdKT4+MF0pe2Nhc2UgODpjYXNlIDE6Y2FzZSAwOmM9MTk7YnJlYWsgdDtjYXNlIDU6aWYoKDB8Yyk8Mil7Zj0tMjticmVh''@;'; + put 'put ''ayBlfWlmKDB8QmlbMTI3JmFbQT4+Ml1dKGwsaykpe2M9OTticmVhayB0fWs9aysyfDA7Y29udGludWUgdDtjYXNlIDY6aWYoKDB8Yyk8Myl7Zj0tMjticmVhayBlfWlmKDB8QmlbMTI3JmFbdz4+Ml1dKGwsaykpe2M9MTM7YnJlYWsgdH1rPWsrM3wwO2NvbnRpbnVlIHQ7Y2FzZSA3OmlmKCgw''@;'; + put 'put ''fGMpPDQpe2Y9LTI7YnJlYWsgZX1pZigwfEJpWzEyNyZhW2I+PjJdXShsLGspKXtjPTE3O2JyZWFrIHR9az1rKzR8MDtjb250aW51ZSB0O2Nhc2UgMjc6aWYoKGYtKGM9aysxfDApfDApPD0wKXtmPS0xO2JyZWFrIGV9aWYoNDU9PSgwfGZlW2M+PjBdKSl7Yz0yMjticmVhayB0fWs9Yztjb250''@;'; + put 'put ''aW51ZSB0O2RlZmF1bHQ6az1rKzF8MDtjb250aW51ZSB0fX1pZig5PT0oMHxjKSl7YVtwPj4yXT1rLGY9MDticmVha31pZigxMz09KDB8Yykpe2FbcD4+Ml09ayxmPTA7YnJlYWt9aWYoMTc9PSgwfGMpKXthW3A+PjJdPWssZj0wO2JyZWFrfWlmKDE5PT0oMHxjKSl7YVtwPj4yXT1rLGY9MDti''@;'; + put 'put ''cmVha31pZigyMj09KDB8Yykpe2lmKChmLShjPWsrMnwwKXwwKTw9MCl7Zj0tMTticmVha31pZig2Mj09KDB8ZmVbYz4+MF0pKXthW3A+PjJdPWsrMyxmPTEzO2JyZWFrfWFbcD4+Ml09YyxmPTA7YnJlYWt9fWVsc2UgZj0tMX13aGlsZSgwKTtyZXR1cm4gMHxmfWZ1bmN0aW9uIHBqKGwsYyxm''@;'; + put 'put ''KXtpZihmfD0wLCgoY3w9MCktKGx8PTApfDApPjUpe2ZvcihjPTA7Oyl7aWYoKDB8Yyk+PTYpe2M9ODticmVha31pZigoMHxmZVtsPj4wXSkhPSgwfGZlWzE0NDMwMCtjPj4wXSkpe2M9MDticmVha31jPWMrMXwwLGw9bCsxfDB9YVtmPj4yXT1sfWVsc2UgYz0tMTtyZXR1cm4gMHxjfWZ1bmN0''@;'; + put 'put ''aW9uIGFMKGwsYyxmLHApe2x8PTAscHw9MDt2YXIgRCxSLEcsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTA7Rz1sZSxsZT1sZSsxNnwwLFI9RyxmPShEPWZ8PTApLShjfD0wKXwwO2U6ZG97aWYoKDB8Zik+MCl7c3dpdGNoKDB8ZmVbKE09bCs3MnwwKSsoMHxYdFtjPj4wXSk+PjBdKXtjYXNlIDI5''@;'; + put 'put ''OmRlZmF1bHQ6YVtwPj4yXT1jLGY9MDticmVhayBlO2Nhc2UgMjQ6Y2FzZSAyMjpmPTE7YnJlYWs7Y2FzZSA1OmlmKCgwfGYpPDIpe2Y9LTI7YnJlYWsgZX1pZighKDB8QmlbMTI3JmFbbCszNDA+PjJdXShsLGMpKSl7YVtwPj4yXT1jLGY9MDticmVhayBlfWY9MjticmVhaztjYXNlIDY6aWYo''@;'; + put 'put ''KDB8Zik8Myl7Zj0tMjticmVhayBlfWlmKCEoMHxCaVsxMjcmYVtsKzM0ND4+Ml1dKGwsYykpKXthW3A+PjJdPWMsZj0wO2JyZWFrIGV9Zj0zO2JyZWFrO2Nhc2UgNzppZigoMHxmKTw0KXtmPS0yO2JyZWFrIGV9aWYoISgwfEJpWzEyNyZhW2wrMzQ4Pj4yXV0obCxjKSkpe2FbcD4+Ml09Yyxm''@;'; + put 'put ''PTA7YnJlYWsgZX1mPTR9QT1sKzMyOHwwLHc9bCszMzJ8MCxiPWwrMzM2fDAsZj1jK2Z8MDt0OmZvcig7Oyl7aWYoKDB8KG09RC1mfDApKTw9MCl7Zj0tMTticmVhayBlfXN3aXRjaCgwfGZlW00rKDB8WHRbZj4+MF0pPj4wXSl7Y2FzZSAyOTprPTE3O2JyZWFrIHQ7Y2FzZSAxMDpjYXNlIDk6''@;'; + put 'put ''Y2FzZSAyMTprPTI4O2JyZWFrIHQ7Y2FzZSAxNTprPTUwO2JyZWFrIHQ7Y2FzZSAyNzpjYXNlIDI2OmNhc2UgMjU6Y2FzZSAyNDpjYXNlIDIyOm09MTticmVhaztjYXNlIDU6aWYoKDB8bSk8Mil7Zj0tMjticmVhayBlfWlmKCEoMHxCaVsxMjcmYVtBPj4yXV0obCxmKSkpe2s9MjA7YnJlYWsg''@;'; + put 'put ''dH1tPTI7YnJlYWs7Y2FzZSA2OmlmKCgwfG0pPDMpe2Y9LTI7YnJlYWsgZX1pZighKDB8QmlbMTI3JmFbdz4+Ml1dKGwsZikpKXtrPTIzO2JyZWFrIHR9bT0zO2JyZWFrO2Nhc2UgNzppZigoMHxtKTw0KXtmPS0yO2JyZWFrIGV9aWYoISgwfEJpWzEyNyZhW2I+PjJdXShsLGYpKSl7az0yNjti''@;'; + put 'put ''cmVhayB0fW09NDticmVhaztkZWZhdWx0OmJyZWFrIHR9Zj1mK218MH1pZigxNz09KDB8aykpe2FbcD4+Ml09ZixmPTA7YnJlYWt9aWYoMjA9PSgwfGspKXthW3A+PjJdPWYsZj0wO2JyZWFrfWlmKDIzPT0oMHxrKSl7YVtwPj4yXT1mLGY9MDticmVha31pZigyNj09KDB8aykpe2FbcD4+Ml09''@;'; + put 'put ''ZixmPTA7YnJlYWt9aWYoMjg9PSgwfGspKXtpZighKDB8Z2ooYyxmLFIpKSl7YVtwPj4yXT1mLGY9MDticmVha31BPWwrMzUyfDAsdz1sKzM1NnwwLGI9bCszNjB8MCxtPWYrMXwwO3Q6Zm9yKDs7KXtpZigoMHwoZj1ELW18MCkpPD0wKXtmPS0xO2JyZWFrIGV9c3dpdGNoKDB8ZmVbTSsoMHxY''@;'; + put 'put ''dFttPj4wXSk+PjBdKXtjYXNlIDg6Y2FzZSAxOmNhc2UgMDprPTQ1O2JyZWFrIHQ7Y2FzZSA1OmlmKCgwfGYpPDIpe2Y9LTI7YnJlYWsgZX1pZigwfEJpWzEyNyZhW0E+PjJdXShsLG0pKXtrPTM1O2JyZWFrIHR9bT1tKzJ8MDtjb250aW51ZSB0O2Nhc2UgNjppZigoMHxmKTwzKXtmPS0yO2Jy''@;'; + put 'put ''ZWFrIGV9aWYoMHxCaVsxMjcmYVt3Pj4yXV0obCxtKSl7az0zOTticmVhayB0fW09bSszfDA7Y29udGludWUgdDtjYXNlIDc6aWYoKDB8Zik8NCl7Zj0tMjticmVhayBlfWlmKDB8QmlbMTI3JmFbYj4+Ml1dKGwsbSkpe2s9NDM7YnJlYWsgdH1tPW0rNHwwO2NvbnRpbnVlIHQ7Y2FzZSAxNTpp''@;'; + put 'put ''ZigoRC0oZj1tKzF8MCl8MCk8PTApe2Y9LTE7YnJlYWsgZX1pZig2Mj09KDB8ZmVbZj4+MF0pKXtrPTQ4O2JyZWFrIHR9bT1mO2NvbnRpbnVlIHQ7ZGVmYXVsdDptPW0rMXwwO2NvbnRpbnVlIHR9fWlmKDM1PT0oMHxrKSl7YVtwPj4yXT1tLGY9MDticmVha31pZigzOT09KDB8aykpe2FbcD4+''@;'; + put 'put ''Ml09bSxmPTA7YnJlYWt9aWYoNDM9PSgwfGspKXthW3A+PjJdPW0sZj0wO2JyZWFrfWlmKDQ1PT0oMHxrKSl7YVtwPj4yXT1tLGY9MDticmVha31pZig0OD09KDB8aykpe2FbcD4+Ml09bSsyLGY9MHxhW1I+PjJdO2JyZWFrfX1lbHNlIGlmKDUwPT0oMHxrKSl7aWYoISgwfGdqKGMsZixSKSkp''@;'; + put 'put ''e2FbcD4+Ml09ZixmPTA7YnJlYWt9aWYoKEQtKG09ZisxfDApfDApPD0wKXtmPS0xO2JyZWFrfWlmKDYyPT0oMHxmZVttPj4wXSkpe2FbcD4+Ml09ZisyLGY9MHxhW1I+PjJdO2JyZWFrfWY9bX1hW3A+PjJdPWYsZj0wfWVsc2UgZj0tMX13aGlsZSgwKTtyZXR1cm4gbGU9RywwfGZ9ZnVuY3Rp''@;'; + put 'put ''b24gSDllKGwsYyxmLHApe2x8PTAscHw9MDt2YXIgbT0wLEE9MCx3PTAsYj0wLGs9MDttPShmfD0wKS0oY3w9MCl8MDtlOmRve2lmKCgwfG0pPjApe3N3aXRjaCgwfGZlWyhrPWwrNzJ8MCkrKDB8WHRbYz4+MF0pPj4wXSl7Y2FzZSAyOTpkZWZhdWx0OmFbcD4+Ml09YyxmPTA7YnJlYWsgZTtj''@;'; + put 'put ''YXNlIDI0OmNhc2UgMjI6bT0xO2JyZWFrO2Nhc2UgNTppZigoMHxtKTwyKXtmPS0yO2JyZWFrIGV9aWYoISgwfEJpWzEyNyZhW2wrMzQwPj4yXV0obCxjKSkpe2FbcD4+Ml09YyxmPTA7YnJlYWsgZX1tPTI7YnJlYWs7Y2FzZSA2OmlmKCgwfG0pPDMpe2Y9LTI7YnJlYWsgZX1pZighKDB8Qmlb''@;'; + put 'put ''MTI3JmFbbCszNDQ+PjJdXShsLGMpKSl7YVtwPj4yXT1jLGY9MDticmVhayBlfW09MzticmVhaztjYXNlIDc6aWYoKDB8bSk8NCl7Zj0tMjticmVhayBlfWlmKCEoMHxCaVsxMjcmYVtsKzM0OD4+Ml1dKGwsYykpKXthW3A+PjJdPWMsZj0wO2JyZWFrIGV9bT00fUE9bCszMjh8MCx3PWwrMzMy''@;'; + put 'put ''fDAsYj1sKzMzNnwwLG09YyttfDA7dDpmb3IoOzspe2lmKCgwfChjPWYtbXwwKSk8PTApe2Y9LTE7YnJlYWsgZX1zd2l0Y2goMHxmZVtrKygwfFh0W20+PjBdKT4+MF0pe2Nhc2UgMjk6QT0xNzticmVhayB0O2Nhc2UgMTA6Y2FzZSA5OmNhc2UgMjE6QT0yNzticmVhayB0O2Nhc2UgMTE6QT0z''@;'; + put 'put ''MjticmVhayB0O2Nhc2UgMjM6Y2FzZSAyNzpjYXNlIDI2OmNhc2UgMjU6Y2FzZSAyNDpjYXNlIDIyOmM9MTticmVhaztjYXNlIDU6aWYoKDB8Yyk8Mil7Zj0tMjticmVhayBlfWlmKCEoMHxCaVsxMjcmYVtBPj4yXV0obCxtKSkpe0E9MjA7YnJlYWsgdH1jPTI7YnJlYWs7Y2FzZSA2OmlmKCgw''@;'; + put 'put ''fGMpPDMpe2Y9LTI7YnJlYWsgZX1pZighKDB8QmlbMTI3JmFbdz4+Ml1dKGwsbSkpKXtBPTIzO2JyZWFrIHR9Yz0zO2JyZWFrO2Nhc2UgNzppZigoMHxjKTw0KXtmPS0yO2JyZWFrIGV9aWYoISgwfEJpWzEyNyZhW2I+PjJdXShsLG0pKSl7QT0yNjticmVhayB0fWM9NDticmVhaztkZWZhdWx0''@;'; + put 'put ''OkE9MzM7YnJlYWsgdH1tPW0rY3wwfWlmKDE3PT0oMHxBKSl7YVtwPj4yXT1tLGY9MDticmVha31pZigyMD09KDB8QSkpe2FbcD4+Ml09bSxmPTA7YnJlYWt9aWYoMjM9PSgwfEEpKXthW3A+PjJdPW0sZj0wO2JyZWFrfWlmKDI2PT0oMHxBKSl7YVtwPj4yXT1tLGY9MDticmVha31pZigyNz09''@;'; + put 'put ''KDB8QSkpe3Q6Zm9yKDs7KXtpZigoZi0oYz1tKzF8MCl8MCk8PTApe2Y9LTE7YnJlYWsgZX1zd2l0Y2goMHxmZVtrKygwfFh0W2M+PjBdKT4+MF0pe2Nhc2UgMTA6Y2FzZSA5OmNhc2UgMjE6bT1jLEE9Mjc7YnJlYWs7Y2FzZSAxMTpBPTI5O2JyZWFrIHQ7ZGVmYXVsdDpBPTMwO2JyZWFrIHR9''@;'; + put 'put ''fWlmKDI5PT0oMHxBKSl7YVtwPj4yXT1tKzIsZj01O2JyZWFrfWlmKDMwPT0oMHxBKSl7YVtwPj4yXT1jLGY9MDticmVha319ZWxzZXtpZigzMj09KDB8QSkpe2FbcD4+Ml09bSsxLGY9NTticmVha31pZigzMz09KDB8QSkpe2FbcD4+Ml09bSxmPTA7YnJlYWt9fX1lbHNlIGY9LTF9d2hpbGUo''@;'; + put 'put ''MCk7cmV0dXJuIDB8Zn1mdW5jdGlvbiBKeShsLGMsZixwKXtsfD0wLGZ8PTAscHw9MDt2YXIgYixrLE0sRCxSLEcsSyxwZSxnZSxiZSxPZSxMZSxIZSxtPTAsQT0wLHc9MCxSZT0wO0hlPWxlLGxlPWxlKzE2fDAsYVsoT2U9SGUpPj4yXT1jfD0wLExlPWYsSz1sKzcyfDAscGU9bCszMjh8MCxn''@;'; + put 'put ''ZT1sKzMzMnwwLGJlPWwrMzM2fDAsYj1sKzM0MHwwLGs9bCszNDR8MCxNPWwrMzQ4fDAsRD1sKzM1MnwwLFI9bCszNTZ8MCxHPWwrMzYwfDAsQT0wO2U6Zm9yKDs7KXtpZigoMHwobT1MZS1jfDApKTw9MCl7Yz0tMTticmVha310OmRve3N3aXRjaCgwfGZlW0srKDB8WHRbYz4+MF0pPj4wXSl7''@;'; + put 'put ''Y2FzZSAyOTpSZT00O2JyZWFrIGU7Y2FzZSAyNzpjYXNlIDI2OmNhc2UgMjU6Y2FzZSAyNDpjYXNlIDIyOmFbT2U+PjJdPW09YysxfDAsYz1tLEE9dz1BO2NvbnRpbnVlIGU7Y2FzZSA1OmlmKCgwfG0pPDIpe2M9LTI7YnJlYWsgZX1pZighKDB8QmlbMTI3JmFbcGU+PjJdXShsLGMpKSl7UmU9''@;'; + put 'put ''ODticmVhayBlfWFbT2U+PjJdPW09YysyfDAsYz1tLEE9dz1BO2NvbnRpbnVlIGU7Y2FzZSA2OmlmKCgwfG0pPDMpe2M9LTI7YnJlYWsgZX1pZighKDB8QmlbMTI3JmFbZ2U+PjJdXShsLGMpKSl7UmU9MTI7YnJlYWsgZX1hW09lPj4yXT1tPWMrM3wwLGM9bSxBPXc9QTtjb250aW51ZSBlO2Nh''@;'; + put 'put ''c2UgNzppZigoMHxtKTw0KXtjPS0yO2JyZWFrIGV9aWYoISgwfEJpWzEyNyZhW2JlPj4yXV0obCxjKSkpe1JlPTE2O2JyZWFrIGV9YVtPZT4+Ml09bT1jKzR8MCxjPW0sQT13PUE7Y29udGludWUgZTtjYXNlIDIzOmlmKDB8QSl7UmU9MTk7YnJlYWsgZX1pZihhW09lPj4yXT1tPWMrMXwwLCgw''@;'; + put 'put ''fChBPUxlLW18MCkpPD0wKXtjPS0xO2JyZWFrIGV9c3dpdGNoKDB8ZmVbSysoMHxYdFttPj4wXSk+PjBdKXtjYXNlIDI5OlJlPTIyO2JyZWFrIGU7Y2FzZSAyNDpjYXNlIDIyOmFbT2U+PjJdPXc9YysyfDAsQT0xLGM9dztjb250aW51ZSBlO2Nhc2UgNTppZigoMHxBKTwyKXtjPS0yO2JyZWFr''@;'; + put 'put ''IGV9aWYoISgwfEJpWzEyNyZhW2I+PjJdXShsLG0pKSl7UmU9MjY7YnJlYWsgZX1hW09lPj4yXT13PWMrM3wwLEE9MSxjPXc7Y29udGludWUgZTtjYXNlIDY6aWYoKDB8QSk8Myl7Yz0tMjticmVhayBlfWlmKCEoMHxCaVsxMjcmYVtrPj4yXV0obCxtKSkpe1JlPTMwO2JyZWFrIGV9YVtPZT4+''@;'; + put 'put ''Ml09dz1jKzR8MCxBPTEsYz13O2NvbnRpbnVlIGU7Y2FzZSA3OmlmKCgwfEEpPDQpe2M9LTI7YnJlYWsgZX1pZighKDB8QmlbMTI3JmFbTT4+Ml1dKGwsbSkpKXtSZT0zNDticmVhayBlfWFbT2U+PjJdPXc9Yys1fDAsQT0xLGM9dztjb250aW51ZSBlO2RlZmF1bHQ6UmU9MzY7YnJlYWsgZX1j''@;'; + put 'put ''YXNlIDEwOmNhc2UgOTpjYXNlIDIxOmZvcig7Oyl7aWYoYVtPZT4+Ml09Yz1jKzF8MCwoTGUtY3wwKTw9MCl7Yz0tMTticmVhayBlfXN3aXRjaCgwfGZlW0srKDB8WHRbYz4+MF0pPj4wXSl7Y2FzZSAxNDpicmVhayB0O2Nhc2UgOTpjYXNlIDEwOmNhc2UgMjE6YnJlYWs7ZGVmYXVsdDpSZT0z''@;'; + put 'put ''OTticmVhayBlfX1jYXNlIDE0OmJyZWFrO2RlZmF1bHQ6UmU9OTI7YnJlYWsgZX19d2hpbGUoMCk7Zm9yKDs7KXtpZihhW09lPj4yXT1tPWMrMXwwLChMZS1tfDApPD0wKXtjPS0xO2JyZWFrIGV9aWYoKDF8KHc9MHxmZVtLKygwfFh0W20+PjBdKT4+MF0pKTw8MjQ+PjI0PT0xMylicmVhaztz''@;'; + put 'put ''d2l0Y2godzw8MjQ+PjI0KXtjYXNlIDk6Y2FzZSAxMDpjYXNlIDIxOmM9bTticmVhaztkZWZhdWx0OlJlPTQzO2JyZWFrIGV9fWFbT2U+PjJdPWM9YysyfDA7dDpmb3IoOzspe2lmKCgwfChtPUxlLWN8MCkpPD0wKXtjPS0xO2JyZWFrIGV9aWYoKEE9MHxmZVtLKygwfFh0W2M+PjBdKT4+MF0p''@;'; + put 'put ''PDwyND4+MjQ9PXc8PDI0Pj4yNClicmVhaztzd2l0Y2goQTw8MjQ+PjI0KXtjYXNlIDg6Y2FzZSAxOmNhc2UgMDpSZT02MDticmVhayBlO2Nhc2UgMjpSZT02NTticmVhayBlO2Nhc2UgNTppZigoMHxtKTwyKXtjPS0yO2JyZWFrIGV9aWYoMHxCaVsxMjcmYVtEPj4yXV0obCxjKSl7UmU9NTA7''@;'; + put 'put ''YnJlYWsgZX1hW09lPj4yXT1BPWMrMnwwLGM9QTtjb250aW51ZSB0O2Nhc2UgNjppZigoMHxtKTwzKXtjPS0yO2JyZWFrIGV9aWYoMHxCaVsxMjcmYVtSPj4yXV0obCxjKSl7UmU9NTQ7YnJlYWsgZX1hW09lPj4yXT1BPWMrM3wwLGM9QTtjb250aW51ZSB0O2Nhc2UgNzppZigoMHxtKTw0KXtj''@;'; + put 'put ''PS0yO2JyZWFrIGV9aWYoMHxCaVsxMjcmYVtHPj4yXV0obCxjKSl7UmU9NTg7YnJlYWsgZX1hW09lPj4yXT1BPWMrNHwwLGM9QTtjb250aW51ZSB0O2Nhc2UgMzppZigoMHwoYz0wfG9MKGwsYysxfDAsZixPZSkpKTwxKXtSZT02MzticmVhayBlfWM9MHxhW09lPj4yXTtjb250aW51ZSB0O2Rl''@;'; + put 'put ''ZmF1bHQ6YVtPZT4+Ml09QT1jKzF8MCxjPUE7Y29udGludWUgdH19aWYoYVtPZT4+Ml09bT1jKzF8MCwoTGUtbXwwKTw9MCl7Yz0tMTticmVha31zd2l0Y2goMHxmZVtLKygwfFh0W20+PjBdKT4+MF0pe2Nhc2UgMTE6UmU9ODY7YnJlYWsgZTtjYXNlIDE3OlJlPTg3O2JyZWFrIGU7Y2FzZSAx''@;'; + put 'put ''MDpjYXNlIDk6Y2FzZSAyMTpjPW07YnJlYWs7ZGVmYXVsdDpSZT02OTticmVhayBlfXQ6Zm9yKDs7KXtpZihhW09lPj4yXT1tPWMrMXwwLCgwfChBPUxlLW18MCkpPD0wKXtjPS0xO2JyZWFrIGV9c3dpdGNoKDB8ZmVbSysoMHxYdFttPj4wXSk+PjBdKXtjYXNlIDI5OlJlPTcyO2JyZWFrIGU7''@;'; + put 'put ''Y2FzZSAxMTpSZT04NjticmVhayBlO2Nhc2UgMTc6UmU9ODc7YnJlYWsgZTtjYXNlIDEwOmNhc2UgOTpjYXNlIDIxOmM9bTticmVhaztjYXNlIDI0OmNhc2UgMjI6UmU9NzM7YnJlYWsgdDtjYXNlIDU6UmU9NzQ7YnJlYWsgdDtjYXNlIDY6UmU9Nzg7YnJlYWsgdDtjYXNlIDc6UmU9ODI7YnJl''@;'; + put 'put ''YWsgdDtkZWZhdWx0OlJlPTkxO2JyZWFrIGV9fWlmKDczIT0oMHxSZSkpaWYoNzQhPSgwfFJlKSlpZig3OCE9KDB8UmUpKWlmKDgyIT0oMHxSZSkpO2Vsc2V7aWYoUmU9MCwoMHxBKTw0KXtjPS0yO2JyZWFrfWlmKCEoMHxCaVsxMjcmYVtNPj4yXV0obCxtKSkpe1JlPTg0O2JyZWFrfWFbT2U+''@;'; + put 'put ''PjJdPWM9Yys1fDAsQT0wfWVsc2V7aWYoUmU9MCwoMHxBKTwzKXtjPS0yO2JyZWFrfWlmKCEoMHxCaVsxMjcmYVtrPj4yXV0obCxtKSkpe1JlPTgwO2JyZWFrfWFbT2U+PjJdPWM9Yys0fDAsQT0wfWVsc2V7aWYoUmU9MCwoMHxBKTwyKXtjPS0yO2JyZWFrfWlmKCEoMHxCaVsxMjcmYVtiPj4y''@;'; + put 'put ''XV0obCxtKSkpe1JlPTc2O2JyZWFrfWFbT2U+PjJdPWM9YyszfDAsQT0wfWVsc2UgUmU9MCxhW09lPj4yXT1jPWMrMnwwLEE9MH1zd2l0Y2goMHxSZSl7Y2FzZSA0OmNhc2UgODpjYXNlIDEyOmNhc2UgMTY6Y2FzZSAxOTpjYXNlIDM5OmNhc2UgNTA6Y2FzZSA1NDpjYXNlIDU4OmNhc2UgNjA6''@;'; + put 'put ''Y2FzZSA2NTpjYXNlIDkyOmFbcD4+Ml09YyxjPTA7YnJlYWs7Y2FzZSAyMjpjYXNlIDI2OmNhc2UgMzA6Y2FzZSAzNDpjYXNlIDM2OmNhc2UgNDM6Y2FzZSA2OTpjYXNlIDcyOmNhc2UgNzY6Y2FzZSA4MDpjYXNlIDg0OmNhc2UgOTE6YVtwPj4yXT1tLGM9MDticmVhaztjYXNlIDYzOmN8fChh''@;'; + put 'put ''W3A+PjJdPWFbT2U+PjJdLGM9MCk7YnJlYWs7Y2FzZSA4NjphW3A+PjJdPWMrMixjPTE7YnJlYWs7Y2FzZSA4NzppZihhW09lPj4yXT1jPW0rMXwwLChMZS1jfDApPjApe2lmKDYyPT0oMHxmZVtjPj4wXSkpe2FbcD4+Ml09bSsyLGM9MzticmVha31hW3A+PjJdPWMsYz0wO2JyZWFrfWM9LTF9''@;'; + put 'put ''cmV0dXJuIGxlPUhlLDB8Y31mdW5jdGlvbiBnaihsLGMsZil7bHw9MCxjfD0wLGFbKGZ8PTApPj4yXT0xMTtlOmRve2lmKDM9PShjLWx8MCkpe3N3aXRjaCgwfGZlW2w+PjBdKXtjYXNlIDEyMDpjPTA7YnJlYWs7Y2FzZSA4ODpjPTE7YnJlYWs7ZGVmYXVsdDpjPTE7YnJlYWsgZX1zd2l0Y2go''@;'; + put 'put ''MHxmZVtsKzE+PjBdKXtjYXNlIDEwOTpicmVhaztjYXNlIDc3OmM9MTticmVhaztkZWZhdWx0OmM9MTticmVhayBlfXN3aXRjaCgwfGZlW2wrMj4+MF0pe2Nhc2UgMTA4OmJyZWFrO2Nhc2UgNzY6Yz0wO2JyZWFrIGU7ZGVmYXVsdDpjPTE7YnJlYWsgZX1jP2M9MDooYVtmPj4yXT0xMixjPTEp''@;'; + put 'put ''fWVsc2UgYz0xfXdoaWxlKDApO3JldHVybiAwfGN9ZnVuY3Rpb24gZzFlKGwsYyxmLHAsbSl7bHw9MCxmfD0wLHB8PTAsbXw9MDt2YXIgYixrLE0sRCxBPTAsdz0wLFI9MDtiPTcyKyhjfD0wKXwwLGs9YyszNTJ8MCxNPWMrMzU2fDAsRD1jKzM2MHwwO2U6Zm9yKDs7KXtpZigoMHwoQT1wLWZ8''@;'; + put 'put ''MCkpPD0wKXtwPS0xO2JyZWFrfXN3aXRjaCgodz0wfGZlW2IrKDB8WHRbZj4+MF0pPj4wXSk8PDI0Pj4yNCl7Y2FzZSA4OmNhc2UgMTpjYXNlIDA6Uj0xNjticmVhayBlO2Nhc2UgNTppZigoMHxBKTwyKXtwPS0yO2JyZWFrIGV9aWYoMHxCaVsxMjcmYVtrPj4yXV0oYyxmKSl7Uj02O2JyZWFr''@;'; + put 'put ''IGV9Zj1mKzJ8MDtjb250aW51ZSBlO2Nhc2UgNjppZigoMHxBKTwzKXtwPS0yO2JyZWFrIGV9aWYoMHxCaVsxMjcmYVtNPj4yXV0oYyxmKSl7Uj0xMDticmVhayBlfWY9ZiszfDA7Y29udGludWUgZTtjYXNlIDc6aWYoKDB8QSk8NCl7cD0tMjticmVhayBlfWlmKDB8QmlbMTI3JmFbRD4+Ml1d''@;'; + put 'put ''KGMsZikpe1I9MTQ7YnJlYWsgZX1mPWYrNHwwO2NvbnRpbnVlIGU7Y2FzZSAxMzpjYXNlIDEyOmlmKGY9ZisxfDAsKDI1NSZ3fDApPT0oMHxsKSl7Uj0xODticmVhayBlfWNvbnRpbnVlIGU7ZGVmYXVsdDpmPWYrMXwwO2NvbnRpbnVlIGV9fWU6ZG97aWYoNj09KDB8UikpYVttPj4yXT1mLHA9''@;'; + put 'put ''MDtlbHNlIGlmKDEwPT0oMHxSKSlhW20+PjJdPWYscD0wO2Vsc2UgaWYoMTQ9PSgwfFIpKWFbbT4+Ml09ZixwPTA7ZWxzZSBpZigxNj09KDB8UikpYVttPj4yXT1mLHA9MDtlbHNlIGlmKDE4PT0oMHxSKSlpZigocC1mfDApPjApe3N3aXRjaChhW20+PjJdPWYsMHxmZVtiKygwfFh0W2Y+PjBd''@;'; + put 'put ''KT4+MF0pe2Nhc2UgMjA6Y2FzZSAzMDpjYXNlIDExOmNhc2UgMTA6Y2FzZSA5OmNhc2UgMjE6cD0yNzticmVhayBlfXA9MH1lbHNlIHA9LTI3fXdoaWxlKDApO3JldHVybiAwfHB9ZnVuY3Rpb24gbTFlKGwsYyxmLHApe2x8PTAsY3w9MCxwfD0wO3ZhciBtLEE9MCx3PTA7bT1mfD0wO2U6ZG97''@;'; + put 'put ''aWYoKG0tY3wwKT4wKXN3aXRjaChBPWwrNzJ8MCwwfGZlW0ErKDB8WHRbYz4+MF0pPj4wXSl7Y2FzZSAyNzpsPTB8ZGoobCxjKzF8MCxmLHApO2JyZWFrIGU7Y2FzZSAyMDphW3A+PjJdPWMrMSxsPTMzO2JyZWFrIGU7Y2FzZSAyNDpjYXNlIDIyOnQ6Zm9yKDs7KXtpZigoMHwoZj1tLShsPWMr''@;'; + put 'put ''MXwwKXwwKSk8PTApe2w9LTE7YnJlYWsgZX1zd2l0Y2goMHxmZVtBKygwfFh0W2w+PjBdKT4+MF0pe2Nhc2UgMjQ6Y2FzZSAyMjpjPWw7YnJlYWs7Y2FzZSAzMDp3PTg7YnJlYWsgdDtjYXNlIDEwOmNhc2UgOTpjYXNlIDIxOmJyZWFrIHQ7ZGVmYXVsdDp3PTEyO2JyZWFrIHR9fWlmKDEyPT0o''@;'; + put 'put ''MHx3KSl7YVtwPj4yXT1sLGw9MDticmVhayBlfXQ6ZG97aWYoOD09KDB8dykpe2lmKCgwfGYpPD0xKXtsPS0xO2JyZWFrIGV9c3dpdGNoKDB8ZmVbQSsoMHxYdFtjKzI+PjBdKT4+MF0pe2Nhc2UgMzA6Y2FzZSAxMDpjYXNlIDk6Y2FzZSAyMTpicmVhaztkZWZhdWx0OmJyZWFrIHR9YVtwPj4y''@;'; + put 'put ''XT1sLGw9MDticmVhayBlfX13aGlsZSgwKTthW3A+PjJdPWwsbD0xNjticmVhayBlO2RlZmF1bHQ6YVtwPj4yXT1jLGw9MDticmVhayBlfWVsc2UgbD0tMX13aGlsZSgwKTtyZXR1cm4gMHxsfWZ1bmN0aW9uIEhLKGwsYyxmLHApe2x8PTAscHw9MDt2YXIgbT0wLEE9MCx3PTAsYj0wLGs9MDtt''@;'; + put 'put ''PShmfD0wKS0oY3w9MCl8MDtlOmRve2lmKCgwfG0pPjApe3N3aXRjaCgwfGZlWyhrPWwrNzJ8MCkrKDB8WHRbYz4+MF0pPj4wXSl7Y2FzZSAyOTpkZWZhdWx0OmFbcD4+Ml09YyxmPTA7YnJlYWsgZTtjYXNlIDI0OmNhc2UgMjI6bT0xO2JyZWFrO2Nhc2UgNTppZigoMHxtKTwyKXtmPS0yO2Jy''@;'; + put 'put ''ZWFrIGV9aWYoISgwfEJpWzEyNyZhW2wrMzQwPj4yXV0obCxjKSkpe2FbcD4+Ml09YyxmPTA7YnJlYWsgZX1tPTI7YnJlYWs7Y2FzZSA2OmlmKCgwfG0pPDMpe2Y9LTI7YnJlYWsgZX1pZighKDB8QmlbMTI3JmFbbCszNDQ+PjJdXShsLGMpKSl7YVtwPj4yXT1jLGY9MDticmVhayBlfW09Mzti''@;'; + put 'put ''cmVhaztjYXNlIDc6aWYoKDB8bSk8NCl7Zj0tMjticmVhayBlfWlmKCEoMHxCaVsxMjcmYVtsKzM0OD4+Ml1dKGwsYykpKXthW3A+PjJdPWMsZj0wO2JyZWFrIGV9bT00fUE9bCszMjh8MCx3PWwrMzMyfDAsYj1sKzMzNnwwLGM9YyttfDA7dDpmb3IoOzspe2lmKCgwfChtPWYtY3wwKSk8PTAp''@;'; + put 'put ''e2Y9LTIwO2JyZWFrIGV9c3dpdGNoKDB8ZmVbaysoMHxYdFtjPj4wXSk+PjBdKXtjYXNlIDI5Om09MTc7YnJlYWsgdDtjYXNlIDM2OmNhc2UgMzA6Y2FzZSAxMTpjYXNlIDMyOmNhc2UgMjE6Y2FzZSAxMDpjYXNlIDk6bT0yODticmVhayB0O2Nhc2UgMjc6Y2FzZSAyNjpjYXNlIDI1OmNhc2Ug''@;'; + put 'put ''MjQ6Y2FzZSAyMjptPTE7YnJlYWs7Y2FzZSA1OmlmKCgwfG0pPDIpe2Y9LTI7YnJlYWsgZX1pZighKDB8QmlbMTI3JmFbQT4+Ml1dKGwsYykpKXttPTIwO2JyZWFrIHR9bT0yO2JyZWFrO2Nhc2UgNjppZigoMHxtKTwzKXtmPS0yO2JyZWFrIGV9aWYoISgwfEJpWzEyNyZhW3c+PjJdXShsLGMp''@;'; + put 'put ''KSl7bT0yMzticmVhayB0fW09MzticmVhaztjYXNlIDc6aWYoKDB8bSk8NCl7Zj0tMjticmVhayBlfWlmKCEoMHxCaVsxMjcmYVtiPj4yXV0obCxjKSkpe209MjY7YnJlYWsgdH1tPTQ7YnJlYWs7ZGVmYXVsdDptPTI5O2JyZWFrIHR9Yz1jK218MH1pZigxNz09KDB8bSkpe2FbcD4+Ml09Yyxm''@;'; + put 'put ''PTA7YnJlYWt9aWYoMjA9PSgwfG0pKXthW3A+PjJdPWMsZj0wO2JyZWFrfWlmKDIzPT0oMHxtKSl7YVtwPj4yXT1jLGY9MDticmVha31pZigyNj09KDB8bSkpe2FbcD4+Ml09YyxmPTA7YnJlYWt9aWYoMjg9PSgwfG0pKXthW3A+PjJdPWMsZj0yMDticmVha31pZigyOT09KDB8bSkpe2FbcD4+''@;'; + put 'put ''Ml09YyxmPTA7YnJlYWt9fWVsc2UgZj0tMX13aGlsZSgwKTtyZXR1cm4gMHxmfWZ1bmN0aW9uIGYwKGwsYyl7Y3w9MDt2YXIgZj0wO3N3aXRjaCgobHw9MCk8PDI0Pj4yNCl7Y2FzZS0zNzpjYXNlLTM4OmNhc2UtMzk6Y2FzZS00MDpsPTc7YnJlYWs7Y2FzZS0zMzpjYXNlLTM0OmNhc2UtMzU6''@;'; + put 'put ''Y2FzZS0zNjpsPTg7YnJlYWs7Y2FzZS0xOigyNTUmYyk+MjUzP2w9MDpmPTQ7YnJlYWs7ZGVmYXVsdDpmPTR9cmV0dXJuIDQ9PSgwfGYpJiYobD0yOSksMHxsfWZ1bmN0aW9uIGxMKGwsYyxmLHApe2x8PTAscHw9MDt2YXIgayxtPTAsQT0wLHc9MCxiPTA7dz0oaz1mfD0wKS0oY3w9MCl8MDtl''@;'; + put 'put ''OmRve2lmKCgwfHcpPjEpe3N3aXRjaCgwfChtPShiPTB8ZmVbYysxPj4wXSk8PDI0Pj4yND8wfGYwKGIsQT0wfGZlW2M+PjBdKTowfFh0W2wrNzIrKDI1NSYoQT0wfGZlW2M+PjBdKSk+PjBdKSl7Y2FzZSAyOTppZighKDE8PCgzMSYodz0yNTUmQSkpJmFbNTY5NDArKCh3Pj4+NXwoMHxYdFsx''@;'; + put 'put ''NDM3ODgrKDI1NSZiKT4+MF0pPDwzKTw8Mik+PjJdKSl7YVtwPj4yXT1jLGw9MDticmVhayBlfWJyZWFrO2Nhc2UgMjQ6Y2FzZSAyMjpicmVhaztjYXNlIDU6ZGVmYXVsdDphW3A+PjJdPWMsbD0wO2JyZWFrIGU7Y2FzZSA2OmlmKCgwfHcpPDMpe2w9LTI7YnJlYWsgZX1hW3A+PjJdPWMsbD0w''@;'; + put 'put ''O2JyZWFrIGU7Y2FzZSA3OmlmKCgwfHcpPDQpe2w9LTI7YnJlYWsgZX1hW3A+PjJdPWMsbD0wO2JyZWFrIGU7Y2FzZSAxOTpsPTB8RTFlKGwsYysyfDAsZixwKTticmVhayBlfWI9bCs3MnwwLHc9Yzt0OmZvcig7Oyl7aWYoKDB8KGM9ay0oQT13KzJ8MCl8MCkpPD0xKXtsPS0xO2JyZWFrIGV9''@;'; + put 'put ''c3dpdGNoKG09MHxmZVtBPj4wXSwwfChmPShsPTB8ZmVbdyszPj4wXSk8PDI0Pj4yND8wfGYwKGwsbSk6MHxYdFtiKygyNTUmbSk+PjBdKSl7Y2FzZSAyNzpjYXNlIDI2OmNhc2UgMjU6Y2FzZSAyNDpjYXNlIDIyOnc9QTtjb250aW51ZSB0O2Nhc2UgNTptPTIzO2JyZWFrIHQ7Y2FzZSA2Om09''@;'; + put 'put ''MjQ7YnJlYWsgdDtjYXNlIDc6bT0yNjticmVhayB0O2Nhc2UgMTg6bT0yODticmVhayB0O2Nhc2UgMjk6YnJlYWs7ZGVmYXVsdDptPTI5O2JyZWFrIHR9aWYoISgxPDwoMzEmKGM9MjU1Jm0pKSZhWzU2OTQwKygoYz4+PjV8KDB8WHRbMTQ0MDQ0KygyNTUmbCk+PjBdKTw8Myk8PDIpPj4yXSkp''@;'; + put 'put ''e209MjI7YnJlYWt9dz1BfWlmKDIyPT0oMHxtKSl7YVtwPj4yXT1BLGw9MDticmVha31pZigyMz09KDB8bSkpe2FbcD4+Ml09QSxsPTA7YnJlYWt9aWYoMjQ9PSgwfG0pKXtpZigoMHxjKTwzKXtsPS0yO2JyZWFrfWFbcD4+Ml09QSxsPTA7YnJlYWt9aWYoMjY9PSgwfG0pKXtpZigoMHxjKTw0''@;'; + put 'put ''KXtsPS0yO2JyZWFrfWFbcD4+Ml09QSxsPTA7YnJlYWt9aWYoMjg9PSgwfG0pKXthW3A+PjJdPXcrNCxsPTk7YnJlYWt9aWYoMjk9PSgwfG0pKXthW3A+PjJdPUEsbD0wO2JyZWFrfX1lbHNlIGw9LTF9d2hpbGUoMCk7cmV0dXJuIDB8bH1mdW5jdGlvbiBzTChsLGMsZixwKXtsfD0wLHB8PTA7''@;'; + put 'put ''dmFyIG09MCxBPTAsdz0wLGI9MCxrPTA7dz0oZnw9MCktKGN8PTApfDA7ZTpkb3tpZigoMHx3KT4xKXtzd2l0Y2goMHwobT0oYj0wfGZlW2MrMT4+MF0pPDwyND4+MjQ/MHxmMChiLEE9MHxmZVtjPj4wXSk6MHxYdFtsKzcyKygyNTUmKEE9MHxmZVtjPj4wXSkpPj4wXSkpe2Nhc2UgMjk6aWYo''@;'; + put 'put ''ISgxPDwoMzEmKGs9MjU1JkEpKSZhWzU2OTQwKygoaz4+PjV8KDB8WHRbMTQzNzg4KygyNTUmYik+PjBdKTw8Myk8PDIpPj4yXSkpe2FbcD4+Ml09YyxmPTA7YnJlYWsgZX1icmVhaztjYXNlIDI0OmNhc2UgMjI6YnJlYWs7Y2FzZSA1OmRlZmF1bHQ6YVtwPj4yXT1jLGY9MDticmVhayBlO2Nh''@;'; + put 'put ''c2UgNjppZigoMHx3KTwzKXtmPS0yO2JyZWFrIGV9YVtwPj4yXT1jLGY9MDticmVhayBlO2Nhc2UgNzppZigoMHx3KTw0KXtmPS0yO2JyZWFrIGV9YVtwPj4yXT1jLGY9MDticmVhayBlO2Nhc2UgMzA6Y2FzZSA5OmNhc2UgMTA6Y2FzZSAyMTphW3A+PjJdPWMsZj0yMjticmVhayBlfWs9bCs3''@;'; + put 'put ''MnwwLGw9Yzt0OmZvcig7Oyl7aWYoKDB8KGM9Zi0oYj1sKzJ8MCl8MCkpPD0xKXtmPS0xO2JyZWFrIGV9c3dpdGNoKEE9MHxmZVtiPj4wXSwwfCh3PShtPTB8ZmVbbCszPj4wXSk8PDI0Pj4yND8wfGYwKG0sQSk6MHxYdFtrKygyNTUmQSk+PjBdKSl7Y2FzZSAyNzpjYXNlIDI2OmNhc2UgMjU6''@;'; + put 'put ''Y2FzZSAyNDpjYXNlIDIyOmw9Yjtjb250aW51ZSB0O2Nhc2UgNTptPTIzO2JyZWFrIHQ7Y2FzZSA2Om09MjQ7YnJlYWsgdDtjYXNlIDc6bT0yNjticmVhayB0O2Nhc2UgMTg6bT0yODticmVhayB0O2Nhc2UgMjk6YnJlYWs7ZGVmYXVsdDptPTI5O2JyZWFrIHR9aWYoISgxPDwoMzEmKGM9MjU1''@;'; + put 'put ''JkEpKSZhWzU2OTQwKygoYz4+PjV8KDB8WHRbMTQ0MDQ0KygyNTUmbSk+PjBdKTw8Myk8PDIpPj4yXSkpe209MjI7YnJlYWt9bD1ifWlmKDIyPT0oMHxtKSl7YVtwPj4yXT1iLGY9MDticmVha31pZigyMz09KDB8bSkpe2FbcD4+Ml09YixmPTA7YnJlYWt9aWYoMjQ9PSgwfG0pKXtpZigoMHxj''@;'; + put 'put ''KTwzKXtmPS0yO2JyZWFrfWFbcD4+Ml09YixmPTA7YnJlYWt9aWYoMjY9PSgwfG0pKXtpZigoMHxjKTw0KXtmPS0yO2JyZWFrfWFbcD4+Ml09YixmPTA7YnJlYWt9aWYoMjg9PSgwfG0pKXthW3A+PjJdPWwrNCxmPTI4O2JyZWFrfWlmKDI5PT0oMHxtKSl7YVtwPj4yXT1iLGY9MDticmVha319''@;'; + put 'put ''ZWxzZSBmPS0xfXdoaWxlKDApO3JldHVybiAwfGZ9ZnVuY3Rpb24gRTFlKGwsYyxmLHApe2x8PTAsY3w9MCxwfD0wO3ZhciBiLG09MCxBPTAsdz0wO2I9Znw9MDtlOmRve2lmKChiLWN8MCk+MSl7QT0wfGZlW2MrMT4+MF0sbT0wfGZlW2M+PjBdO2Rve2lmKCEoQTw8MjQ+PjI0KSl7aWYobTw8''@;'; + put 'put ''MjQ+PjI0PT0xMjApe209MHx4MWUobCxjKzJ8MCxmLHApO2JyZWFrIGV9bT0wfFh0W2wrNzIrKDI1NSZtKT4+MF07YnJlYWt9bT0wfGYwKEEsbSl9d2hpbGUoMCk7aWYoMjUhPSgwfG0pKXthW3A+PjJdPWMsbT0wO2JyZWFrfXc9bCs3MnwwLGw9Yzt0OmZvcig7Oyl7aWYoKGItKEE9bCsyfDAp''@;'; + put 'put ''fDApPD0xKXttPS0xO2JyZWFrIGV9c3dpdGNoKGY9MHxmZVtBPj4wXSwwfChtPShtPTB8ZmVbbCszPj4wXSk8PDI0Pj4yND8wfGYwKG0sZik6MHxYdFt3KygyNTUmZik+PjBdKSl7Y2FzZSAyNTpsPUE7YnJlYWs7Y2FzZSAxODpmPTE1O2JyZWFrIHQ7ZGVmYXVsdDpmPTE2O2JyZWFrIHR9fWlm''@;'; + put 'put ''KDE1PT0oMHxmKSl7YVtwPj4yXT1sKzQsbT0xMDticmVha31pZigxNj09KDB8Zikpe2FbcD4+Ml09QSxtPTA7YnJlYWt9fWVsc2UgbT0tMX13aGlsZSgwKTtyZXR1cm4gMHxtfWZ1bmN0aW9uIHgxZShsLGMsZixwKXtsfD0wLGN8PTAsZnw9MCxwfD0wO3ZhciBtPTAsQT0wLHc9MDtlOmRve2lm''@;'; + put 'put ''KChmLWN8MCk+MSl7aWYoMjQhPSgtMiYobT0obT0wfGZlW2MrMT4+MF0pPDwyND4+MjQ/MHxmMChtLDB8ZmVbYz4+MF0pOjB8WHRbbCs3MisoMHxYdFtjPj4wXSk+PjBdKXwwKSl7YVtwPj4yXT1jLGY9MDticmVha313PWwrNzJ8MDt0OmZvcig7Oyl7aWYoKGYtKEE9YysyfDApfDApPD0xKXtm''@;'; + put 'put ''PS0xO2JyZWFrIGV9c3dpdGNoKGw9MHxmZVtBPj4wXSwwfChtPShtPTB8ZmVbYyszPj4wXSk8PDI0Pj4yND8wfGYwKG0sbCk6MHxYdFt3KygyNTUmbCk+PjBdKSl7Y2FzZSAyNDpjYXNlIDI1OmM9QTticmVhaztjYXNlIDE4Om09MTM7YnJlYWsgdDtkZWZhdWx0Om09MTQ7YnJlYWsgdH19aWYo''@;'; + put 'put ''MTM9PSgwfG0pKXthW3A+PjJdPWMrNCxmPTEwO2JyZWFrfWlmKDE0PT0oMHxtKSl7YVtwPj4yXT1BLGY9MDticmVha319ZWxzZSBmPS0xfXdoaWxlKDApO3JldHVybiAwfGZ9ZnVuY3Rpb24gYTQobCxjLGYscCl7bHw9MCxwfD0wO3ZhciBtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0w''@;'; + put 'put ''O3c9KFI9Znw9MCktKGN8PTApfDA7ZTpkb3tpZigoMHx3KT4xKXtzd2l0Y2goMHwobT0oYj0wfGZlW2MrMT4+MF0pPDwyND4+MjQ/MHxmMChiLEE9MHxmZVtjPj4wXSk6MHxYdFtsKzcyKygyNTUmKEE9MHxmZVtjPj4wXSkpPj4wXSkpe2Nhc2UgMjk6aWYoISgxPDwoMzEmKE09MjU1JkEpKSZh''@;'; + put 'put ''WzU2OTQwKygoTT4+PjV8WHRbMTQzNzg4KygyNTUmYik+PjBdPDwzKTw8Mik+PjJdKSl7YVtwPj4yXT1jLG09MDticmVhayBlfWJyZWFrO2Nhc2UgMjQ6Y2FzZSAyMjpicmVhaztjYXNlIDU6YVtwPj4yXT1jLG09MDticmVhayBlO2Nhc2UgNjppZigoMHx3KTwzKXttPS0yO2JyZWFrIGV9YVtw''@;'; + put 'put ''Pj4yXT1jLG09MDticmVhayBlO2Nhc2UgNzppZigoMHx3KTw0KXttPS0yO2JyZWFrIGV9YVtwPj4yXT1jLG09MDticmVhayBlO2Nhc2UgMTY6aWYoKFItKEE9YysyfDApfDApPD0xKXttPS0xO2JyZWFrIGV9c3dpdGNoKDB8KG09KG09MHxmZVtjKzM+PjBdKTw8MjQ+PjI0PzB8ZjAobSwwfGZl''@;'; + put 'put ''W0E+PjBdKTowfFh0W2wrNzIrKDB8WHRbQT4+MF0pPj4wXSkpe2Nhc2UgMjc6bT0wfHpLKGwsYys0fDAsZixwKTticmVhayBlO2Nhc2UgMjA6bT0wfFQxZShjKzR8MCxmLHApO2JyZWFrIGU7ZGVmYXVsdDphW3A+PjJdPUEsbT0wO2JyZWFrIGV9Y2FzZSAxNTptPTB8R0sobCxjKzJ8MCxmLHAp''@;'; + put 'put ''O2JyZWFrIGU7Y2FzZSAxNzptPTB8STFlKGwsYysyfDAsZixwKTticmVhayBlO2RlZmF1bHQ6YVtwPj4yXT1jLG09MDticmVhayBlfU09bCs3MnwwLGs9MCxtPWMrMnwwO3Q6Zm9yKDs7KXtuOmZvcig7Oyl7aWYoKDB8KEE9Ui1tfDApKTw9MSl7bT0tMTticmVhayBlfXN3aXRjaChiPTB8ZmVb''@;'; + put 'put ''bT4+MF0sMHwoYz0odz0wfGZlW20rMT4+MF0pPDwyND4+MjQ/MHxmMCh3LGIpOjB8WHRbTSsoMjU1JmIpPj4wXSkpe2Nhc2UgNTpEPTM0O2JyZWFrIHQ7Y2FzZSA2OkQ9MzU7YnJlYWsgdDtjYXNlIDc6RD0zNzticmVhayB0O2Nhc2UgMTA6Y2FzZSA5OmNhc2UgMjE6RD01NTticmVhayB0O2Nh''@;'; + put 'put ''c2UgMTE6RD02OTticmVhayB0O2Nhc2UgMTc6YnJlYWsgdDtjYXNlIDIzOmJyZWFrIG47Y2FzZSAyOTppZighKDE8PCgzMSYoYz0yNTUmYikpJmFbNTY5NDArKChjPj4+NXxYdFsxNDQwNDQrKDI1NSZ3KT4+MF08PDMpPDwyKT4+Ml0pKXtEPTMyO2JyZWFrIHR9YnJlYWs7Y2FzZSAyNzpjYXNl''@;'; + put 'put ''IDI2OmNhc2UgMjU6Y2FzZSAyNDpjYXNlIDIyOmJyZWFrO2RlZmF1bHQ6RD03NTticmVhayB0fW09bSsyfDB9aWYoMHxrKXtEPTQwO2JyZWFrfWlmKCgwfChjPVItKGI9bSsyfDApfDApKTw9MSl7bT0tMTticmVhayBlfXN3aXRjaChBPTB8ZmVbYj4+MF0sMHwodz0oaz0wfGZlW20rMz4+MF0p''@;'; + put 'put ''PDwyND4+MjQ/MHxmMChrLEEpOjB8WHRbTSsoMjU1JkEpPj4wXSkpe2Nhc2UgNTpEPTQ5O2JyZWFrIHQ7Y2FzZSA2OkQ9NTA7YnJlYWsgdDtjYXNlIDc6RD01MjticmVhayB0O2Nhc2UgMjk6aWYoISgxPDwoMzEmKGM9MjU1JkEpKSZhWzU2OTQwKygoYz4+PjV8WHRbMTQzNzg4KygyNTUmayk+''@;'; + put 'put ''PjBdPDwzKTw8Mik+PjJdKSl7RD00NzticmVhayB0fWJyZWFrO2Nhc2UgMjQ6Y2FzZSAyMjpicmVhaztkZWZhdWx0OkQ9NTQ7YnJlYWsgdH1rPTEsbT1tKzR8MH10OnN3aXRjaCgwfEQpe2Nhc2UgMzI6Y2FzZSAzNDpjYXNlIDQwOmNhc2UgNzU6YVtwPj4yXT1tLG09MDticmVhayBlO2Nhc2Ug''@;'; + put 'put ''MzU6aWYoKDB8QSk8Myl7bT0tMjticmVhayBlfWFbcD4+Ml09bSxtPTA7YnJlYWsgZTtjYXNlIDM3OmlmKCgwfEEpPDQpe209LTI7YnJlYWsgZX1hW3A+PjJdPW0sbT0wO2JyZWFrIGU7Y2FzZSA0NzpjYXNlIDQ5OmNhc2UgNTQ6YVtwPj4yXT1iLG09MDticmVhayBlO2Nhc2UgNTA6aWYoKDB8''@;'; + put 'put ''Yyk8Myl7bT0tMjticmVhayBlfWFbcD4+Ml09YixtPTA7YnJlYWsgZTtjYXNlIDUyOmlmKCgwfGMpPDQpe209LTI7YnJlYWsgZX1hW3A+PjJdPWIsbT0wO2JyZWFrIGU7Y2FzZSA1NTpuOmZvcig7Oyl7aWYoRD0wLCgwfCh3PVItKEE9bSsyfDApfDApKTw9MSl7bT0tMTticmVhayBlfXN3aXRj''@;'; + put 'put ''aChjPTB8ZmVbQT4+MF0sMHwoaz0oYj0wfGZlW20rMz4+MF0pPDwyND4+MjQ/MHxmMChiLGMpOjB8WHRbTSsoMjU1JmMpPj4wXSkpe2Nhc2UgMTE6bT1BLEQ9Njk7YnJlYWsgdDtjYXNlIDE3Om09QTticmVhayB0O2Nhc2UgMTA6Y2FzZSA5OmNhc2UgMjE6bT1BLEQ9NTU7YnJlYWs7Y2FzZSAy''@;'; + put 'put ''OTpEPTYwO2JyZWFrIG47Y2FzZSAyNDpjYXNlIDIyOmJyZWFrIG47Y2FzZSA1OkQ9NjM7YnJlYWsgbjtjYXNlIDY6RD02NDticmVhayBuO2Nhc2UgNzpEPTY2O2JyZWFrIG47ZGVmYXVsdDpEPTY4O2JyZWFrIG59fWlmKDYwPT0oMHxEKSl7aWYoISgxPDwoMzEmKFI9MjU1JmMpKSZhWzU2OTQw''@;'; + put 'put ''KygoUj4+PjV8WHRbMTQzNzg4KygyNTUmYik+PjBdPDwzKTw8Mik+PjJdKSl7YVtwPj4yXT1BLG09MDticmVhayBlfX1lbHNle2lmKDYzPT0oMHxEKSl7YVtwPj4yXT1BLG09MDticmVhayBlfWlmKDY0PT0oMHxEKSl7aWYoKDB8dyk8Myl7bT0tMjticmVhayBlfWFbcD4+Ml09QSxtPTA7YnJl''@;'; + put 'put ''YWsgZX1pZig2Nj09KDB8RCkpe2lmKCgwfHcpPDQpe209LTI7YnJlYWsgZX1hW3A+PjJdPUEsbT0wO2JyZWFrIGV9aWYoNjg9PSgwfEQpKXthW3A+PjJdPUEsbT0wO2JyZWFrIGV9fW09MHxEMWUobCxtKzR8MCxmLHApO2JyZWFrIGV9aWYoNjk9PSgwfEQpKXthW3A+PjJdPW0rMixtPTI7YnJl''@;'; + put 'put ''YWt9aWYoKFItKEE9bSsyfDApfDApPjEpe2lmKDA9PSgwfGZlW20rMz4+MF0pJiY2Mj09KDB8ZmVbQT4+MF0pKXthW3A+PjJdPW0rNCxtPTQ7YnJlYWt9YVtwPj4yXT1BLG09MH1lbHNlIG09LTF9ZWxzZSBtPS0xfXdoaWxlKDApO3JldHVybiAwfG19ZnVuY3Rpb24geksobCxjLGYscCl7bHw9''@;'; + put 'put ''MCxjfD0wLHB8PTA7dmFyIHcsbT0wLEE9MCxiPTA7dz1mfD0wO2U6ZG97aWYoKHctY3wwKT4xKXtpZigwPT0oMHxmZVtjKzE+PjBdKSYmNDU9PSgwfGZlW2M+PjBdKSl7QT1sKzcyfDAsbT1jKzJ8MDt0OmZvcig7Oyl7aWYoKDB8KGM9dy1tfDApKTw9MSl7Zj0tMTticmVhayBlfXN3aXRjaChs''@;'; + put 'put ''PTB8ZmVbbT4+MF0sMHwoZj0oZj0wfGZlW20rMT4+MF0pPDwyND4+MjQ/MHxmMChmLGwpOjB8WHRbQSsoMjU1JmwpPj4wXSkpe2Nhc2UgODpjYXNlIDE6Y2FzZSAwOmI9MTY7YnJlYWsgdDtjYXNlIDU6ZGVmYXVsdDptPW0rMnwwO2NvbnRpbnVlIHQ7Y2FzZSA2OmlmKCgwfGMpPDMpe2Y9LTI7''@;'; + put 'put ''YnJlYWsgZX1tPW0rM3wwO2NvbnRpbnVlIHQ7Y2FzZSA3OmlmKCgwfGMpPDQpe2Y9LTI7YnJlYWsgZX1tPW0rNHwwO2NvbnRpbnVlIHQ7Y2FzZSAyNzppZigody0oZj1tKzJ8MCl8MCk8PTEpe2Y9LTE7YnJlYWsgZX1pZigwfGZlW20rMz4+MF0pe209Zjtjb250aW51ZSB0fWlmKDQ1PT0oMHxm''@;'; + put 'put ''ZVtmPj4wXSkpYnJlYWsgdDttPWY7Y29udGludWUgdH19aWYoMTY9PSgwfGIpKXthW3A+PjJdPW0sZj0wO2JyZWFrfWlmKCh3LShmPW0rNHwwKXwwKTw9MSl7Zj0tMTticmVha31pZigwPT0oMHxmZVttKzU+PjBdKSYmNjI9PSgwfGZlW2Y+PjBdKSl7YVtwPj4yXT1tKzYsZj0xMzticmVha31h''@;'; + put 'put ''W3A+PjJdPWYsZj0wO2JyZWFrfWFbcD4+Ml09YyxmPTB9ZWxzZSBmPS0xfXdoaWxlKDApO3JldHVybiAwfGZ9ZnVuY3Rpb24gVDFlKGwsYyxmKXtpZihmfD0wLCgoY3w9MCktKGx8PTApfDApPjExKXtmb3IoYz0wOzspe2lmKCgwfGMpPj02KXtjPTg7YnJlYWt9aWYoMHxmZVtsKzE+PjBdKXtj''@;'; + put 'put ''PTA7YnJlYWt9aWYoKDB8ZmVbbD4+MF0pIT0oMHxmZVsxNDQzMDArYz4+MF0pKXtjPTA7YnJlYWt9Yz1jKzF8MCxsPWwrMnwwfWFbZj4+Ml09bH1lbHNlIGM9LTE7cmV0dXJuIDB8Y31mdW5jdGlvbiBHSyhsLGMsZixwKXtsfD0wLHB8PTA7dmFyIEQsUixHLG09MCxBPTAsdz0wLGI9MCxrPTAs''@;'; + put 'put ''TT0wO0c9bGUsbGU9bGUrMTZ8MCxSPUcsdz0oRD1mfD0wKS0oY3w9MCl8MDtlOmRve2lmKCgwfHcpPjEpe3N3aXRjaCgwfChtPShmPTB8ZmVbYysxPj4wXSk8PDI0Pj4yND8wfGYwKGYsQT0wfGZlW2M+PjBdKTowfFh0W2wrNzIrKDI1NSYoQT0wfGZlW2M+PjBdKSk+PjBdKSl7Y2FzZSAyOTpp''@;'; + put 'put ''ZighKDE8PCgzMSYoaz0yNTUmQSkpJmFbNTY5NDArKChrPj4+NXxYdFsxNDM3ODgrKDI1NSZmKT4+MF08PDMpPDwyKT4+Ml0pKXthW3A+PjJdPWMsZj0wO2JyZWFrIGV9YnJlYWs7Y2FzZSAyNDpjYXNlIDIyOmJyZWFrO2Nhc2UgNTpkZWZhdWx0OmFbcD4+Ml09YyxmPTA7YnJlYWsgZTtjYXNl''@;'; + put 'put ''IDY6aWYoKDB8dyk8Myl7Zj0tMjticmVhayBlfWFbcD4+Ml09YyxmPTA7YnJlYWsgZTtjYXNlIDc6aWYoKDB8dyk8NCl7Zj0tMjticmVhayBlfWFbcD4+Ml09YyxmPTA7YnJlYWsgZX1rPWwrNzJ8MCxiPWM7dDpmb3IoOzspe2lmKCgwfChtPUQtKGY9YisyfDApfDApKTw9MSl7Zj0tMTticmVh''@;'; + put 'put ''ayBlfXN3aXRjaCh3PTB8ZmVbZj4+MF0sMHwobD0oQT0wfGZlW2IrMz4+MF0pPDwyND4+MjQ/MHxmMChBLHcpOjB8WHRbaysoMjU1JncpPj4wXSkpe2Nhc2UgMjc6Y2FzZSAyNjpjYXNlIDI1OmNhc2UgMjQ6Y2FzZSAyMjpiPWY7Y29udGludWUgdDtjYXNlIDU6TT0yMjticmVhayB0O2Nhc2Ug''@;'; + put 'put ''NjpNPTIzO2JyZWFrIHQ7Y2FzZSA3Ok09MjU7YnJlYWsgdDtjYXNlIDEwOmNhc2UgOTpjYXNlIDIxOk09Mjc7YnJlYWsgdDtjYXNlIDE1Ok09NDY7YnJlYWsgdDtjYXNlIDI5OmJyZWFrO2RlZmF1bHQ6YnJlYWsgdH1pZighKDE8PCgzMSYoYj0yNTUmdykpJmFbNTY5NDArKChiPj4+NXxYdFsx''@;'; + put 'put ''NDQwNDQrKDI1NSZBKT4+MF08PDMpPDwyKT4+Ml0pKXtNPTIxO2JyZWFrfWI9Zn1pZigyMT09KDB8TSkpe2FbcD4+Ml09ZixmPTA7YnJlYWt9aWYoMjI9PSgwfE0pKXthW3A+PjJdPWYsZj0wO2JyZWFrfWlmKDIzPT0oMHxNKSl7aWYoKDB8bSk8Myl7Zj0tMjticmVha31hW3A+PjJdPWYsZj0w''@;'; + put 'put ''O2JyZWFrfWlmKDI1PT0oMHxNKSl7aWYoKDB8bSk8NCl7Zj0tMjticmVha31hW3A+PjJdPWYsZj0wO2JyZWFrfWlmKDI3PT0oMHxNKSl7aWYoISgwfFdLKGMsZixSKSkpe2FbcD4+Ml09ZixmPTA7YnJlYWt9dz1iKzR8MDt0OmZvcig7Oyl7aWYoKDB8KEE9RC13fDApKTw9MSl7Zj0tMTticmVh''@;'; + put 'put ''ayBlfXN3aXRjaChtPTB8ZmVbdz4+MF0sMHwoZj0oZj0wfGZlW3crMT4+MF0pPDwyND4+MjQ/MHxmMChmLG0pOjB8WHRbaysoMjU1Jm0pPj4wXSkpe2Nhc2UgODpjYXNlIDE6Y2FzZSAwOk09NDA7YnJlYWsgdDtjYXNlIDU6ZGVmYXVsdDp3PXcrMnwwO2NvbnRpbnVlIHQ7Y2FzZSA2OmlmKCgw''@;'; + put 'put ''fEEpPDMpe2Y9LTI7YnJlYWsgZX13PXcrM3wwO2NvbnRpbnVlIHQ7Y2FzZSA3OmlmKCgwfEEpPDQpe2Y9LTI7YnJlYWsgZX13PXcrNHwwO2NvbnRpbnVlIHQ7Y2FzZSAxNTppZigoRC0oZj13KzJ8MCl8MCk8PTEpe2Y9LTE7YnJlYWsgZX1pZigwfGZlW3crMz4+MF0pe3c9Zjtjb250aW51ZSB0''@;'; + put 'put ''fWlmKDYyPT0oMHxmZVtmPj4wXSkpe009NDQ7YnJlYWsgdH13PWY7Y29udGludWUgdH19aWYoNDA9PSgwfE0pKXthW3A+PjJdPXcsZj0wO2JyZWFrfWlmKDQ0PT0oMHxNKSl7YVtwPj4yXT13KzQsZj0wfGFbUj4+Ml07YnJlYWt9fWVsc2UgaWYoNDY9PSgwfE0pKXtpZighKDB8V0soYyxmLFIp''@;'; + put 'put ''KSl7YVtwPj4yXT1mLGY9MDticmVha31pZigoRC0oZj1iKzR8MCl8MCk8PTEpe2Y9LTE7YnJlYWt9aWYoMD09KDB8ZmVbYis1Pj4wXSkmJjYyPT0oMHxmZVtmPj4wXSkpe2FbcD4+Ml09Yis2LGY9MHxhW1I+PjJdO2JyZWFrfX1hW3A+PjJdPWYsZj0wfWVsc2UgZj0tMX13aGlsZSgwKTtyZXR1''@;'; + put 'put ''cm4gbGU9RywwfGZ9ZnVuY3Rpb24gSTFlKGwsYyxmLHApe2x8PTAscHw9MDt2YXIgbT0wLEE9MCx3PTAsYj0wLGs9MDt3PShmfD0wKS0oY3w9MCl8MDtlOmRve2lmKCgwfHcpPjEpe3N3aXRjaCgwfChtPShiPTB8ZmVbYysxPj4wXSk8PDI0Pj4yND8wfGYwKGIsQT0wfGZlW2M+PjBdKTowfFh0''@;'; + put 'put ''W2wrNzIrKDI1NSYoQT0wfGZlW2M+PjBdKSk+PjBdKSl7Y2FzZSAyOTppZighKDE8PCgzMSYoaz0yNTUmQSkpJmFbNTY5NDArKChrPj4+NXwoMHxYdFsxNDM3ODgrKDI1NSZiKT4+MF0pPDwzKTw8Mik+PjJdKSl7YVtwPj4yXT1jLGY9MDticmVhayBlfWJyZWFrO2Nhc2UgMjQ6Y2FzZSAyMjpi''@;'; + put 'put ''cmVhaztjYXNlIDU6ZGVmYXVsdDphW3A+PjJdPWMsZj0wO2JyZWFrIGU7Y2FzZSA2OmlmKCgwfHcpPDMpe2Y9LTI7YnJlYWsgZX1hW3A+PjJdPWMsZj0wO2JyZWFrIGU7Y2FzZSA3OmlmKCgwfHcpPDQpe2Y9LTI7YnJlYWsgZX1hW3A+PjJdPWMsZj0wO2JyZWFrIGV9az1sKzcyfDAsbD1jO3Q6''@;'; + put 'put ''Zm9yKDs7KXtpZigoMHwoYz1mLSh3PWwrMnwwKXwwKSk8PTEpe2Y9LTE7YnJlYWsgZX1zd2l0Y2goQT0wfGZlW3c+PjBdLDB8KGI9KG09MHxmZVtsKzM+PjBdKTw8MjQ+PjI0PzB8ZjAobSxBKTowfFh0W2srKDI1NSZBKT4+MF0pKXtjYXNlIDIzOmNhc2UgMjc6Y2FzZSAyNjpjYXNlIDI1OmNh''@;'; + put 'put ''c2UgMjQ6Y2FzZSAyMjpsPXc7Y29udGludWUgdDtjYXNlIDU6bT0yMjticmVhayB0O2Nhc2UgNjptPTIzO2JyZWFrIHQ7Y2FzZSA3Om09MjU7YnJlYWsgdDtjYXNlIDEwOmNhc2UgOTpjYXNlIDIxOm09Mjc7YnJlYWsgdDtjYXNlIDExOm09MzQ7YnJlYWsgdDtjYXNlIDI5OmJyZWFrO2RlZmF1''@;'; + put 'put ''bHQ6bT0zNTticmVhayB0fWlmKCEoMTw8KDMxJihjPTI1NSZBKSkmYVs1Njk0MCsoKGM+Pj41fCgwfFh0WzE0NDA0NCsoMjU1Jm0pPj4wXSk8PDMpPDwyKT4+Ml0pKXttPTIxO2JyZWFrfWw9d31pZigyMT09KDB8bSkpe2FbcD4+Ml09dyxmPTA7YnJlYWt9aWYoMjI9PSgwfG0pKXthW3A+PjJd''@;'; + put 'put ''PXcsZj0wO2JyZWFrfWlmKDIzPT0oMHxtKSl7aWYoKDB8Yyk8Myl7Zj0tMjticmVha31hW3A+PjJdPXcsZj0wO2JyZWFrfWlmKDI1PT0oMHxtKSl7aWYoKDB8Yyk8NCl7Zj0tMjticmVha31hW3A+PjJdPXcsZj0wO2JyZWFrfWlmKDI3PT0oMHxtKSl7dDpmb3IoOzspe2lmKChmLShiPXcrMnww''@;'; + put 'put ''KXwwKTw9MSl7Zj0tMTticmVhayBlfXN3aXRjaChBPTB8ZmVbYj4+MF0sMHwobT0obT0wfGZlW3crMz4+MF0pPDwyND4+MjQ/MHxmMChtLEEpOjB8WHRbaysoMjU1JkEpPj4wXSkpe2Nhc2UgMTA6Y2FzZSA5OmNhc2UgMjE6dz1iLG09Mjc7YnJlYWs7Y2FzZSAxMTptPTMyO2JyZWFrIHQ7ZGVm''@;'; + put 'put ''YXVsdDptPTMzO2JyZWFrIHR9fWlmKDMyPT0oMHxtKSl7YVtwPj4yXT13KzQsZj01O2JyZWFrfWlmKDMzPT0oMHxtKSl7YVtwPj4yXT1iLGY9MDticmVha319ZWxzZXtpZigzND09KDB8bSkpe2FbcD4+Ml09bCs0LGY9NTticmVha31pZigzNT09KDB8bSkpe2FbcD4+Ml09dyxmPTA7YnJlYWt9''@;'; + put 'put ''fX1lbHNlIGY9LTF9d2hpbGUoMCk7cmV0dXJuIDB8Zn1mdW5jdGlvbiBEMWUobCxjLGYscCl7bHw9MCxmfD0wLHB8PTA7dmFyIEQsRyxLLHBlLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLFI9MDtwZT1sZSxsZT1sZSsxNnwwLGFbKEc9cGUpPj4yXT1jfD0wLEs9ZixEPWwrNzJ8MCxtPTA7ZTpm''@;'; + put 'put ''b3IoOzspe3Q6Zm9yKDs7KXtpZigoMHwoaz1LLWN8MCkpPD0xKXtjPS0xO2JyZWFrIGV9c3dpdGNoKHc9MHxmZVtjPj4wXSwwfChiPShBPTB8ZmVbYysxPj4wXSk8PDI0Pj4yND8wfGYwKEEsdyk6MHxYdFtEKygyNTUmdyk+PjBdKSl7Y2FzZSA1OlI9MTE7YnJlYWsgZTtjYXNlIDY6Uj0xMjti''@;'; + put 'put ''cmVhayBlO2Nhc2UgNzpSPTE0O2JyZWFrIGU7Y2FzZSAyMzpSPTE2O2JyZWFrIHQ7Y2FzZSAxMDpjYXNlIDk6Y2FzZSAyMTpSPTMxO2JyZWFrIHQ7Y2FzZSAxNDpSPTM3O2JyZWFrIHQ7Y2FzZSAyOTppZighKDE8PCgzMSYoTT0yNTUmdykpJmFbNTY5NDArKChNPj4+NXxYdFsxNDQwNDQrKDI1''@;'; + put 'put ''NSZBKT4+MF08PDMpPDwyKT4+Ml0pKXtSPTk7YnJlYWsgZX1icmVhaztjYXNlIDI3OmNhc2UgMjY6Y2FzZSAyNTpjYXNlIDI0OmNhc2UgMjI6YnJlYWs7ZGVmYXVsdDpSPTg5O2JyZWFrIGV9YVtHPj4yXT1NPWMrMnwwLGM9TX10OmRve2lmKDE2PT0oMHxSKSl7aWYoUj0wLDB8bSl7Uj0xNzti''@;'; + put 'put ''cmVhayBlfWlmKGFbRz4+Ml09bT1jKzJ8MCwoMHwodz1LLShBPW0pfDApKTw9MSl7Yz0tMTticmVhayBlfXN3aXRjaChrPTB8ZmVbbT4+MF0sMHwoTT0oYj0wfGZlW2MrMz4+MF0pPDwyND4+MjQ/MHxmMChiLGspOjB8WHRbRCsoMjU1JmspPj4wXSkpe2Nhc2UgNTpSPTI1O2JyZWFrIGU7Y2Fz''@;'; + put 'put ''ZSA2OlI9MjY7YnJlYWsgZTtjYXNlIDc6Uj0yODticmVhayBlO2Nhc2UgMjQ6Y2FzZSAyMjptPTE7YnJlYWsgdDtjYXNlIDI5OmJyZWFrO2RlZmF1bHQ6Uj0zMDticmVhayBlfWlmKCEoMTw8KDMxJihNPTI1NSZrKSkmYVs1Njk0MCsoKE0+Pj41fFh0WzE0Mzc4OCsoMjU1JmIpPj4wXTw8Myk8''@;'; + put 'put ''PDIpPj4yXSkpe1I9MjQ7YnJlYWsgZX1tPTF9ZWxzZSBpZigzMT09KDB8UikpZm9yKDs7KXtpZihSPTAsYVtHPj4yXT1BPWMrMnwwLChLLSh3PUEpfDApPD0xKXtjPS0xO2JyZWFrIGV9c3dpdGNoKG09MHxmZVtBPj4wXSwwfChjPShjPTB8ZmVbYyszPj4wXSk8PDI0Pj4yND8wfGYwKGMsbSk6''@;'; + put 'put ''MHxYdFtEKygyNTUmbSk+PjBdKSl7Y2FzZSAxNDpjPUEsUj0zNzticmVhayB0O2Nhc2UgOTpjYXNlIDEwOmNhc2UgMjE6Yz1BLFI9MzE7YnJlYWs7ZGVmYXVsdDpSPTM2O2JyZWFrIGV9fX13aGlsZSgwKTt0OmRve2lmKDM3PT0oMHxSKSl7Zm9yKDs7KXtpZihSPTAsYVtHPj4yXT13PWMrMnww''@;'; + put 'put ''LChLLShiPXcpfDApPD0xKXtjPS0xO2JyZWFrIGV9aWYoQT0wfGZlW3c+PjBdLDEzPT0oMXwoaz0obT0wfGZlW2MrMz4+MF0pPDwyND4+MjQ/MHxmMChtLEEpOjB8WHRbRCsoMjU1JkEpPj4wXSkpKWJyZWFrO3N3aXRjaCgwfGspe2Nhc2UgOTpjYXNlIDEwOmNhc2UgMjE6Yz13LFI9Mzc7YnJl''@;'; + put 'put ''YWs7ZGVmYXVsdDpSPTQzO2JyZWFrIGV9fWFbRz4+Ml09Yz1jKzR8MDtuOmZvcig7Oyl7aWYoKDB8KHc9Sy1jfDApKTw9MSl7Yz0tMTticmVhayBlfWlmKEE9MHxmZVtjPj4wXSwoMHwobT0obT0wfGZlW2MrMT4+MF0pPDwyND4+MjQ/MHxmMChtLEEpOjB8WHRbRCsoMjU1JkEpPj4wXSkpPT0o''@;'; + put 'put ''MHxrKSlicmVhaztzd2l0Y2goMHxtKXtjYXNlIDg6Y2FzZSAxOmNhc2UgMDpSPTU2O2JyZWFrIGU7Y2FzZSAyOlI9NjE7YnJlYWsgZTtjYXNlIDU6ZGVmYXVsdDphW0c+PjJdPU09YysyfDAsYz1NO2NvbnRpbnVlIG47Y2FzZSA2OmlmKCgwfHcpPDMpe2M9LTI7YnJlYWsgZX1hW0c+PjJdPU09''@;'; + put 'put ''YyszfDAsYz1NO2NvbnRpbnVlIG47Y2FzZSA3OmlmKCgwfHcpPDQpe2M9LTI7YnJlYWsgZX1hW0c+PjJdPU09Yys0fDAsYz1NO2NvbnRpbnVlIG47Y2FzZSAzOmlmKCgwfChjPTB8bEwobCxjKzJ8MCxmLEcpKSk8MSl7Uj01OTticmVhayBlfWM9MHxhW0c+PjJdO2NvbnRpbnVlIG59fWlmKGFb''@;'; + put 'put ''Rz4+Ml09QT1jKzJ8MCwoSy0oYj1BKXwwKTw9MSl7Yz0tMTticmVhayBlfXN3aXRjaCh3PTB8ZmVbQT4+MF0sMHwobT0obT0wfGZlW2MrMz4+MF0pPDwyND4+MjQ/MHxmMChtLHcpOjB8WHRbRCsoMjU1JncpPj4wXSkpe2Nhc2UgMTE6Uj04MTticmVhayBlO2Nhc2UgMTc6Uj04MjticmVhayBl''@;'; + put 'put ''O2Nhc2UgMTA6Y2FzZSA5OmNhc2UgMjE6Yz1BO2JyZWFrO2RlZmF1bHQ6Uj02ODticmVhayBlfW46Zm9yKDs7KXtpZihhW0c+PjJdPUE9YysyfDAsKDB8KHc9Sy0obT1BKXwwKSk8PTEpe2M9LTE7YnJlYWsgZX1zd2l0Y2goaz0wfGZlW0E+PjBdLDB8KE09KGI9MHxmZVtjKzM+PjBdKTw8MjQ+''@;'; + put 'put ''PjI0PzB8ZjAoYixrKTowfFh0W0QrKDI1NSZrKT4+MF0pKXtjYXNlIDU6Uj03NjticmVhayBlO2Nhc2UgNjpSPTc3O2JyZWFrIGU7Y2FzZSA3OlI9Nzk7YnJlYWsgZTtjYXNlIDExOlI9ODE7YnJlYWsgZTtjYXNlIDE3OlI9ODI7YnJlYWsgZTtjYXNlIDI0OmNhc2UgMjI6bT0wO2JyZWFrIHQ7''@;'; + put 'put ''Y2FzZSAxMDpjYXNlIDk6Y2FzZSAyMTpjPUE7YnJlYWs7Y2FzZSAyOTpicmVhayBuO2RlZmF1bHQ6Uj04NzticmVhayBlfX1pZighKDE8PCgzMSYoTT0yNTUmaykpJmFbNTY5NDArKChNPj4+NXxYdFsxNDM3ODgrKDI1NSZiKT4+MF08PDMpPDwyKT4+Ml0pKXtSPTc1O2JyZWFrIGV9bT0wfX13''@;'; + put 'put ''aGlsZSgwKTthW0c+PjJdPWM9Yys0fDB9c3dpdGNoKDB8Uil7Y2FzZSA5OmNhc2UgMTE6Y2FzZSAxNzpjYXNlIDU2OmNhc2UgNjE6Y2FzZSA4OTphW3A+PjJdPWMsYz0wO2JyZWFrO2Nhc2UgMTI6KDB8ayk8Mz9jPS0yOihhW3A+PjJdPWMsYz0wKTticmVhaztjYXNlIDE0OigwfGspPDQ/Yz0t''@;'; + put 'put ''MjooYVtwPj4yXT1jLGM9MCk7YnJlYWs7Y2FzZSAyNDpjYXNlIDI1OmNhc2UgODc6YVtwPj4yXT1tLGM9MDticmVhaztjYXNlIDI2OigwfHcpPDM/Yz0tMjooYVtwPj4yXT1tLGM9MCk7YnJlYWs7Y2FzZSAyODooMHx3KTw0P2M9LTI6KGFbcD4+Ml09bSxjPTApO2JyZWFrO2Nhc2UgMzA6Y2Fz''@;'; + put 'put ''ZSA3NTpjYXNlIDc2OmFbcD4+Ml09QSxjPTA7YnJlYWs7Y2FzZSAzNjphW3A+PjJdPXcsYz0wO2JyZWFrO2Nhc2UgNDM6Y2FzZSA2ODphW3A+PjJdPWIsYz0wO2JyZWFrO2Nhc2UgNTk6Y3x8KGFbcD4+Ml09YVtHPj4yXSxjPTApO2JyZWFrO2Nhc2UgNzc6KDB8dyk8Mz9jPS0yOihhW3A+PjJd''@;'; + put 'put ''PUEsYz0wKTticmVhaztjYXNlIDc5OigwfHcpPDQ/Yz0tMjooYVtwPj4yXT1BLGM9MCk7YnJlYWs7Y2FzZSA4MTphW3A+PjJdPWMrNCxjPTE7YnJlYWs7Y2FzZSA4MjppZihhW0c+PjJdPW09QSsyfDAsKEstKGM9bSl8MCk+MSl7aWYoMD09KDB8ZmVbQSszPj4wXSkmJjYyPT0oMHxmZVttPj4w''@;'; + put 'put ''XSkpe2FbcD4+Ml09QSs0LGM9MzticmVha31hW3A+PjJdPWMsYz0wfWVsc2UgYz0tMX1yZXR1cm4gbGU9cGUsMHxjfWZ1bmN0aW9uIFdLKGwsYyxmKXtsfD0wLGN8PTAsYVsoZnw9MCk+PjJdPTExO2U6ZG97aWYoNj09KGMtbHwwKSYmMD09KDB8ZmVbbCsxPj4wXSkpe3N3aXRjaCgwfGZlW2w+''@;'; + put 'put ''PjBdKXtjYXNlIDEyMDpjPTA7YnJlYWs7Y2FzZSA4ODpjPTE7YnJlYWs7ZGVmYXVsdDpjPTE7YnJlYWsgZX1pZigwfGZlW2wrMz4+MF0pYz0xO2Vsc2V7c3dpdGNoKDB8ZmVbbCsyPj4wXSl7Y2FzZSAxMDk6YnJlYWs7Y2FzZSA3NzpjPTE7YnJlYWs7ZGVmYXVsdDpjPTE7YnJlYWsgZX1pZigw''@;'; + put 'put ''fGZlW2wrNT4+MF0pYz0xO2Vsc2V7c3dpdGNoKDB8ZmVbbCs0Pj4wXSl7Y2FzZSAxMDg6YnJlYWs7Y2FzZSA3NjpjPTA7YnJlYWsgZTtkZWZhdWx0OmM9MTticmVhayBlfWM/Yz0wOihhW2Y+PjJdPTEyLGM9MSl9fX1lbHNlIGM9MX13aGlsZSgwKTtyZXR1cm4gMHxjfWZ1bmN0aW9uIFlLKGws''@;'; + put 'put ''YyxmLHAsbSl7bHw9MCxmfD0wLHB8PTAsbXw9MDt2YXIgYixBPTAsdz0wLGs9MDtiPTcyKyhjfD0wKXwwO2U6Zm9yKDs7KXt0OmZvcig7Oyl7aWYoKDB8KHc9cC1mfDApKTw9MSl7Zj0tMTticmVhayBlfXN3aXRjaChBPTB8ZmVbZj4+MF0sMHwoYz0oYz0wfGZlW2YrMT4+MF0pPDwyND4+MjQ/''@;'; + put 'put ''MHxmMChjLEEpOjB8WHRbYisoMjU1JkEpPj4wXSkpe2Nhc2UgODpjYXNlIDE6Y2FzZSAwOms9MTA7YnJlYWsgZTtjYXNlIDY6az05O2JyZWFrIHQ7Y2FzZSA3Oms9MTk7YnJlYWsgdDtjYXNlIDU6ZGVmYXVsdDpmPWYrMnwwO2NvbnRpbnVlIHQ7Y2FzZSAxMzpjYXNlIDEyOmlmKEE9ZisyfDAs''@;'; + put 'put ''KDB8Yyk9PSgwfGwpKXtrPTEyO2JyZWFrIGV9Zj1BO2NvbnRpbnVlIHR9fWlmKDkhPSgwfGspKWlmKDE5IT0oMHxrKSk7ZWxzZXtpZihrPTAsKDB8dyk8NCl7Zj0tMjticmVha31mPWYrNHwwfWVsc2V7aWYoaz0wLCgwfHcpPDMpe2Y9LTI7YnJlYWt9Zj1mKzN8MH19ZTpkb3tpZigxMD09KDB8''@;'; + put 'put ''aykpYVttPj4yXT1mLGY9MDtlbHNlIGlmKDEyPT0oMHxrKSlpZigocC1BfDApPjEpe3N3aXRjaChhW20+PjJdPUEscD0wfGZlW2YrMz4+MF0sZj0wfGZlW0E+PjBdLDB8KGY9cDw8MjQ+PjI0PzB8ZjAocCxmKTowfFh0W2IrKDI1NSZmKT4+MF0pKXtjYXNlIDIwOmNhc2UgMzA6Y2FzZSAxMTpj''@;'; + put 'put ''YXNlIDEwOmNhc2UgOTpjYXNlIDIxOmY9Mjc7YnJlYWsgZX1mPTB9ZWxzZSBmPS0yN313aGlsZSgwKTtyZXR1cm4gMHxmfWZ1bmN0aW9uIEwxZShsLGMsZixwKXtsfD0wLGN8PTAscHw9MDt2YXIgYixtPTAsQT0wLHc9MCxrPTA7Yj1mfD0wO2U6ZG97aWYoKGItY3wwKT4xKXN3aXRjaChtPTB8''@;'; + put 'put ''ZmVbYysxPj4wXSxtPW08PDI0Pj4yND8wfGYwKG0sMHxmZVtjPj4wXSk6MHxYdFtsKzcyKygwfFh0W2M+PjBdKT4+MF0sMHxtKXtjYXNlIDI3Om09MHx6SyhsLGMrMnwwLGYscCk7YnJlYWsgZTtjYXNlIDIwOmFbcD4+Ml09YysyLG09MzM7YnJlYWsgZTtjYXNlIDI0OmNhc2UgMjI6dz1sKzcy''@;'; + put 'put ''fDA7dDpmb3IoOzspe2lmKCgwfChmPWItKEE9YysyfDApfDApKTw9MSl7bT0tMTticmVhayBlfXN3aXRjaChsPTB8ZmVbQT4+MF0sMHwobT0obT0wfGZlW2MrMz4+MF0pPDwyND4+MjQ/MHxmMChtLGwpOjB8WHRbdysoMjU1JmwpPj4wXSkpe2Nhc2UgMjQ6Y2FzZSAyMjpjPUE7YnJlYWs7Y2Fz''@;'; + put 'put ''ZSAzMDprPTE1O2JyZWFrIHQ7Y2FzZSAxMDpjYXNlIDk6Y2FzZSAyMTpicmVhayB0O2RlZmF1bHQ6az0yMjticmVhayB0fX1pZigyMj09KDB8aykpe2FbcD4+Ml09QSxtPTA7YnJlYWsgZX10OmRve2lmKDE1PT0oMHxrKSl7aWYoKDB8Zik8PTMpe209LTE7YnJlYWsgZX1zd2l0Y2gobT0wfGZl''@;'; + put 'put ''W2MrND4+MF0sMHwobT0obD0wfGZlW2MrNT4+MF0pPDwyND4+MjQ/MHxmMChsLG0pOjB8WHRbdysoMjU1Jm0pPj4wXSkpe2Nhc2UgMzA6Y2FzZSAxMDpjYXNlIDk6Y2FzZSAyMTpicmVhaztkZWZhdWx0OmJyZWFrIHR9YVtwPj4yXT1BLG09MDticmVhayBlfX13aGlsZSgwKTthW3A+PjJdPUEs''@;'; + put 'put ''bT0xNjticmVhayBlO2RlZmF1bHQ6YVtwPj4yXT1jLG09MDticmVhayBlfWVsc2UgbT0tMX13aGlsZSgwKTtyZXR1cm4gMHxtfWZ1bmN0aW9uIE8xZShsLGMsZixwKXtsfD0wLHB8PTA7dmFyIG09MCxBPTAsdz0wLGI9MDt3PShmfD0wKS0oY3w9MCl8MDtlOmRve2lmKCgwfHcpPjEpe3N3aXRj''@;'; + put 'put ''aCgwfChtPShiPTB8ZmVbYysxPj4wXSk8PDI0Pj4yND8wfGYwKGIsQT0wfGZlW2M+PjBdKTowfFh0W2wrNzIrKDI1NSYoQT0wfGZlW2M+PjBdKSk+PjBdKSl7Y2FzZSAyOTppZighKDE8PCgzMSYodz0yNTUmQSkpJmFbNTY5NDArKCh3Pj4+NXwoMHxYdFsxNDM3ODgrKDI1NSZiKT4+MF0pPDwz''@;'; + put 'put ''KTw8Mik+PjJdKSl7YVtwPj4yXT1jLGY9MDticmVhayBlfWJyZWFrO2Nhc2UgMjQ6Y2FzZSAyMjpicmVhaztjYXNlIDU6ZGVmYXVsdDphW3A+PjJdPWMsZj0wO2JyZWFrIGU7Y2FzZSA2OmlmKCgwfHcpPDMpe2Y9LTI7YnJlYWsgZX1hW3A+PjJdPWMsZj0wO2JyZWFrIGU7Y2FzZSA3OmlmKCgw''@;'; + put 'put ''fHcpPDQpe2Y9LTI7YnJlYWsgZX1hW3A+PjJdPWMsZj0wO2JyZWFrIGV9bD1sKzcyfDAsYj1jO3Q6Zm9yKDs7KXtpZihtPWIsKDB8KGM9Zi0oYj1iKzJ8MCl8MCkpPD0xKXtmPS0yMDticmVhayBlfXN3aXRjaChBPTB8ZmVbYj4+MF0sMHwodz0obT0wfGZlW20rMz4+MF0pPDwyND4+MjQ/MHxm''@;'; + put 'put ''MChtLEEpOjB8WHRbbCsoMjU1JkEpPj4wXSkpe2Nhc2UgMjc6Y2FzZSAyNjpjYXNlIDI1OmNhc2UgMjQ6Y2FzZSAyMjpjb250aW51ZSB0O2Nhc2UgNTptPTIyO2JyZWFrIHQ7Y2FzZSA2Om09MjM7YnJlYWsgdDtjYXNlIDc6bT0yNTticmVhayB0O2Nhc2UgMzY6Y2FzZSAzMDpjYXNlIDExOmNh''@;'; + put 'put ''c2UgMzI6Y2FzZSAyMTpjYXNlIDEwOmNhc2UgOTptPTI3O2JyZWFrIHQ7Y2FzZSAyOTpicmVhaztkZWZhdWx0Om09Mjg7YnJlYWsgdH1pZighKDE8PCgzMSYoYz0yNTUmQSkpJmFbNTY5NDArKChjPj4+NXwoMHxYdFsxNDQwNDQrKDI1NSZtKT4+MF0pPDwzKTw8Mik+PjJdKSl7bT0yMTticmVh''@;'; + put 'put ''a319aWYoMjE9PSgwfG0pKXthW3A+PjJdPWIsZj0wO2JyZWFrfWlmKDIyPT0oMHxtKSl7YVtwPj4yXT1iLGY9MDticmVha31pZigyMz09KDB8bSkpe2lmKCgwfGMpPDMpe2Y9LTI7YnJlYWt9YVtwPj4yXT1iLGY9MDticmVha31pZigyNT09KDB8bSkpe2lmKCgwfGMpPDQpe2Y9LTI7YnJlYWt9''@;'; + put 'put ''YVtwPj4yXT1iLGY9MDticmVha31pZigyNz09KDB8bSkpe2FbcD4+Ml09YixmPTIwO2JyZWFrfWlmKDI4PT0oMHxtKSl7YVtwPj4yXT1iLGY9MDticmVha319ZWxzZSBmPS0xfXdoaWxlKDApO3JldHVybiAwfGZ9ZnVuY3Rpb24gVUsobCxjLGYpe3JldHVybiBsfD0wLGN8PTAsLTE9PSgwfChm''@;'; + put 'put ''PTB8dUwoZnw9MCkpKT9mPTA6KGZlW2wrNjk+PjBdPWYsYVtsPj4yXT02NyxhW2wrND4+Ml09NjgsYVtsKzQ4Pj4yXT0zMSxhW2wrNzI+PjJdPWMsYVtjPj4yXT1sLGY9MSksMHxmfWZ1bmN0aW9uIHVMKGwpe2x8PTA7dmFyIGM9MDtlOmRve2lmKGwpZm9yKGM9MDs7KXtpZigoMHxjKT49Nil7''@;'; + put 'put ''Yz0tMTticmVhayBlfWlmKDB8X2oobCwwfGFbNjAwNjgrKGM8PDIpPj4yXSkpYnJlYWsgZTtjPWMrMXwwfWVsc2UgYz02fXdoaWxlKDApO3JldHVybiAwfGN9ZnVuY3Rpb24gQWoobCxjLGYscCxtLEEpe2x8PTAsY3w9MCxmfD0wLHB8PTAsbXw9MCxBfD0wO3ZhciB3PTAsYj0wLGs9MCxNPTA7''@;'; + put 'put ''ZTpkb3tpZihwPj4+MDxtPj4+MCl7TT0wfGFbYys3Mj4+Ml0sdz1wKzF8MDt0OmRve2lmKCgwfHcpIT0oMHxtKSl7Yj02NTUzNSYoKDI1NSYoaz0wfGZlW3A+PjBdKSk8PDh8MjU1Jih3PTB8ZmVbdz4+MF0pKTtuOmRve2lmKGI8PDE2Pj4xNjwtMil7aWYoYjw8MTY+PjE2Pj0tMjU3KXtpZihi''@;'; + put 'put ''PDwxNj4+MTYhPS0yNTcpYnJlYWsgbjtpZigxPT0oMHxmKSYwPT0oMHxmZVtjKzY5Pj4wXSkpYnJlYWsgdDthW0E+PjJdPXArMixhW00+PjJdPWFbbCsxNj4+Ml0sdz0xNDticmVhayBlfWlmKGI8PDE2Pj4xNiE9LTQxNjUpYnJlYWsgbjtpZigxPT0oMHxmKSlzd2l0Y2goMHxmZVtjKzY5Pj4w''@;'; + put 'put ''XSl7Y2FzZSAwOmNhc2UgMzpjYXNlIDQ6Y2FzZSA1OmJyZWFrIHR9aWYoKDB8KHc9cCsyfDApKT09KDB8bSkpe3c9LTE7YnJlYWsgZX1pZigtNjUhPSgwfGZlW3c+PjBdKSlicmVhayB0O2FbQT4+Ml09cCszLGFbTT4+Ml09YVtsKzg+PjJdLHc9MTQ7YnJlYWsgZX1pZihiPDwxNj4+MTY8MTUz''@;'; + put 'put ''NjApe2lmKGI8PDE2Pj4xNiE9LTIpYnJlYWsgbjtpZigxPT0oMHxmKSYwPT0oMHxmZVtjKzY5Pj4wXSkpYnJlYWsgdDthW0E+PjJdPXArMixhW00+PjJdPWFbbCsyMD4+Ml0sdz0xNDticmVhayBlfWlmKGI8PDE2Pj4xNiE9MTUzNjApYnJlYWsgbjtpZigodz0wfGZlW2MrNjk+PjBdKTw8MjQ+''@;'; + put 'put ''PjI0PT00KXtpZigxPT0oMHxmKSlicmVhayB0fWVsc2UgaWYoMT09KDB8Zikmdzw8MjQ+PjI0PT0zKWJyZWFrIHQ7YVtNPj4yXT13PTB8YVtsKzIwPj4yXSx3PTB8cTBbMTI3JmFbdysoZjw8Mik+PjJdXSh3LHAsbSxBKTticmVhayBlfXdoaWxlKDApO2lmKGs8PDI0Pj4yNCl7aWYoMT09KDB8''@;'; + put 'put ''Zil8dzw8MjQ+PjI0IT0wKWJyZWFrO2FbTT4+Ml09dz0wfGFbbCsyMD4+Ml0sdz0wfHEwWzEyNyZhW3crKGY8PDIpPj4yXV0odyxwLG0sQSk7YnJlYWsgZX1pZigxPT0oMHxmKSYmNT09KDB8ZmVbYys2OT4+MF0pKWJyZWFrO2FbTT4+Ml09dz0wfGFbbCsxNj4+Ml0sdz0wfHEwWzEyNyZhW3cr''@;'; + put 'put ''KGY8PDIpPj4yXV0odyxwLG0sQSk7YnJlYWsgZX1pZigoKCh3PTB8ZmVbYys2OT4+MF0pPDwyND4+MjQpLTN8MCk+Pj4wPDMpe3c9LTE7YnJlYWsgZX1zd2l0Y2goMHxmZVtwPj4wXSl7Y2FzZSA2MDpjYXNlIDA6dz0tMTticmVhayBlO2Nhc2UtMTc6Y2FzZS0xOmNhc2UtMjpicmVhaztkZWZh''@;'; + put 'put ''dWx0OmJyZWFrIHR9aWYoISgxPT0oMHxmKSZ3PDwyND4+MjQ9PTApKXt3PS0xO2JyZWFrIGV9fXdoaWxlKDApO2FbTT4+Ml09dz0wfGFbbCsoZmVbYys2OT4+MF08PDIpPj4yXSx3PTB8cTBbMTI3JmFbdysoZjw8Mik+PjJdXSh3LHAsbSxBKX1lbHNlIHc9LTR9d2hpbGUoMCk7cmV0dXJuIDB8''@;'; + put 'put ''d31mdW5jdGlvbiBiaihsLGMsZixwKXtsfD0wLHB8PTA7dmFyIGssQT0wLHc9MCxiPTA7dz0oaz1mfD0wKS0oY3w9MCl8MDtlOmRve2lmKCgwfHcpPjEpe3N3aXRjaCgwfCgoYj0wfGZlW2M+PjBdKTw8MjQ+PjI0PzB8ZjAoYixBPTB8ZmVbYysxPj4wXSk6MHxYdFtsKzcyKygyNTUmKEE9MHxm''@;'; + put 'put ''ZVtjKzE+PjBdKSk+PjBdKSl7Y2FzZSAyOTppZighKDE8PCgzMSYodz0yNTUmQSkpJmFbNTY5NDArKCh3Pj4+NXwoMHxYdFsxNDM3ODgrKDI1NSZiKT4+MF0pPDwzKTw8Mik+PjJdKSl7YVtwPj4yXT1jLGw9MDticmVhayBlfWJyZWFrO2Nhc2UgMjQ6Y2FzZSAyMjpicmVhaztjYXNlIDU6ZGVm''@;'; + put 'put ''YXVsdDphW3A+PjJdPWMsbD0wO2JyZWFrIGU7Y2FzZSA2OmlmKCgwfHcpPDMpe2w9LTI7YnJlYWsgZX1hW3A+PjJdPWMsbD0wO2JyZWFrIGU7Y2FzZSA3OmlmKCgwfHcpPDQpe2w9LTI7YnJlYWsgZX1hW3A+PjJdPWMsbD0wO2JyZWFrIGU7Y2FzZSAxOTpsPTB8WjFlKGwsYysyfDAsZixwKTti''@;'; + put 'put ''cmVhayBlfWI9bCs3MnwwLHc9Yzt0OmZvcig7Oyl7aWYoKDB8KGM9ay0oQT13KzJ8MCl8MCkpPD0xKXtsPS0xO2JyZWFrIGV9c3dpdGNoKGY9MHxmZVt3KzM+PjBdLDB8KChsPTB8ZmVbQT4+MF0pPDwyND4+MjQ/MHxmMChsLGYpOjB8WHRbYisoMjU1JmYpPj4wXSkpe2Nhc2UgMjc6Y2FzZSAy''@;'; + put 'put ''NjpjYXNlIDI1OmNhc2UgMjQ6Y2FzZSAyMjp3PUE7Y29udGludWUgdDtjYXNlIDU6Zj0yMzticmVhayB0O2Nhc2UgNjpmPTI0O2JyZWFrIHQ7Y2FzZSA3OmY9MjY7YnJlYWsgdDtjYXNlIDE4OmY9Mjg7YnJlYWsgdDtjYXNlIDI5OmJyZWFrO2RlZmF1bHQ6Zj0yOTticmVhayB0fWlmKCEoMTw8''@;'; + put 'put ''KDMxJihjPTI1NSZmKSkmYVs1Njk0MCsoKGM+Pj41fCgwfFh0WzE0NDA0NCsoMjU1JmwpPj4wXSk8PDMpPDwyKT4+Ml0pKXtmPTIyO2JyZWFrfXc9QX1pZigyMj09KDB8Zikpe2FbcD4+Ml09QSxsPTA7YnJlYWt9aWYoMjM9PSgwfGYpKXthW3A+PjJdPUEsbD0wO2JyZWFrfWlmKDI0PT0oMHxm''@;'; + put 'put ''KSl7aWYoKDB8Yyk8Myl7bD0tMjticmVha31hW3A+PjJdPUEsbD0wO2JyZWFrfWlmKDI2PT0oMHxmKSl7aWYoKDB8Yyk8NCl7bD0tMjticmVha31hW3A+PjJdPUEsbD0wO2JyZWFrfWlmKDI4PT0oMHxmKSl7YVtwPj4yXT13KzQsbD05O2JyZWFrfWlmKDI5PT0oMHxmKSl7YVtwPj4yXT1BLGw9''@;'; + put 'put ''MDticmVha319ZWxzZSBsPS0xfXdoaWxlKDApO3JldHVybiAwfGx9ZnVuY3Rpb24gajFlKGwsYyxmLHApe2x8PTAscHw9MDt2YXIgbT0wLEE9MCx3PTAsYj0wLGs9MDt3PShmfD0wKS0oY3w9MCl8MDtlOmRve2lmKCgwfHcpPjEpe3N3aXRjaCgwfChtPShiPTB8ZmVbYz4+MF0pPDwyND4+MjQ/''@;'; + put 'put ''MHxmMChiLEE9MHxmZVtjKzE+PjBdKTowfFh0W2wrNzIrKDI1NSYoQT0wfGZlW2MrMT4+MF0pKT4+MF0pKXtjYXNlIDI5OmlmKCEoMTw8KDMxJihrPTI1NSZBKSkmYVs1Njk0MCsoKGs+Pj41fCgwfFh0WzE0Mzc4OCsoMjU1JmIpPj4wXSk8PDMpPDwyKT4+Ml0pKXthW3A+PjJdPWMsZj0wO2Jy''@;'; + put 'put ''ZWFrIGV9YnJlYWs7Y2FzZSAyNDpjYXNlIDIyOmJyZWFrO2Nhc2UgNTpkZWZhdWx0OmFbcD4+Ml09YyxmPTA7YnJlYWsgZTtjYXNlIDY6aWYoKDB8dyk8Myl7Zj0tMjticmVhayBlfWFbcD4+Ml09YyxmPTA7YnJlYWsgZTtjYXNlIDc6aWYoKDB8dyk8NCl7Zj0tMjticmVhayBlfWFbcD4+Ml09''@;'; + put 'put ''YyxmPTA7YnJlYWsgZTtjYXNlIDMwOmNhc2UgOTpjYXNlIDEwOmNhc2UgMjE6YVtwPj4yXT1jLGY9MjI7YnJlYWsgZX1rPWwrNzJ8MCxsPWM7dDpmb3IoOzspe2lmKCgwfChjPWYtKGI9bCsyfDApfDApKTw9MSl7Zj0tMTticmVhayBlfXN3aXRjaChBPTB8ZmVbbCszPj4wXSwwfCh3PShtPTB8''@;'; + put 'put ''ZmVbYj4+MF0pPDwyND4+MjQ/MHxmMChtLEEpOjB8WHRbaysoMjU1JkEpPj4wXSkpe2Nhc2UgMjc6Y2FzZSAyNjpjYXNlIDI1OmNhc2UgMjQ6Y2FzZSAyMjpsPWI7Y29udGludWUgdDtjYXNlIDU6bT0yMzticmVhayB0O2Nhc2UgNjptPTI0O2JyZWFrIHQ7Y2FzZSA3Om09MjY7YnJlYWsgdDtj''@;'; + put 'put ''YXNlIDE4Om09Mjg7YnJlYWsgdDtjYXNlIDI5OmJyZWFrO2RlZmF1bHQ6bT0yOTticmVhayB0fWlmKCEoMTw8KDMxJihjPTI1NSZBKSkmYVs1Njk0MCsoKGM+Pj41fCgwfFh0WzE0NDA0NCsoMjU1Jm0pPj4wXSk8PDMpPDwyKT4+Ml0pKXttPTIyO2JyZWFrfWw9Yn1pZigyMj09KDB8bSkpe2Fb''@;'; + put 'put ''cD4+Ml09YixmPTA7YnJlYWt9aWYoMjM9PSgwfG0pKXthW3A+PjJdPWIsZj0wO2JyZWFrfWlmKDI0PT0oMHxtKSl7aWYoKDB8Yyk8Myl7Zj0tMjticmVha31hW3A+PjJdPWIsZj0wO2JyZWFrfWlmKDI2PT0oMHxtKSl7aWYoKDB8Yyk8NCl7Zj0tMjticmVha31hW3A+PjJdPWIsZj0wO2JyZWFr''@;'; + put 'put ''fWlmKDI4PT0oMHxtKSl7YVtwPj4yXT1sKzQsZj0yODticmVha31pZigyOT09KDB8bSkpe2FbcD4+Ml09YixmPTA7YnJlYWt9fWVsc2UgZj0tMX13aGlsZSgwKTtyZXR1cm4gMHxmfWZ1bmN0aW9uIFoxZShsLGMsZixwKXtsfD0wLGN8PTAscHw9MDt2YXIgYixtPTAsQT0wLHc9MDtiPWZ8PTA7''@;'; + put 'put ''ZTpkb3tpZigoYi1jfDApPjEpe0E9MHxmZVtjPj4wXSxtPTB8ZmVbYysxPj4wXTtkb3tpZighKEE8PDI0Pj4yNCkpe2lmKG08PDI0Pj4yND09MTIwKXttPTB8dEFlKGwsYysyfDAsZixwKTticmVhayBlfW09MHxYdFtsKzcyKygyNTUmbSk+PjBdO2JyZWFrfW09MHxmMChBLG0pfXdoaWxlKDAp''@;'; + put 'put ''O2lmKDI1IT0oMHxtKSl7YVtwPj4yXT1jLG09MDticmVha313PWwrNzJ8MCxsPWM7dDpmb3IoOzspe2lmKChiLShBPWwrMnwwKXwwKTw9MSl7bT0tMTticmVhayBlfXN3aXRjaChmPTB8ZmVbbCszPj4wXSwwfChtPShtPTB8ZmVbQT4+MF0pPDwyND4+MjQ/MHxmMChtLGYpOjB8WHRbdysoMjU1''@;'; + put 'put ''JmYpPj4wXSkpe2Nhc2UgMjU6bD1BO2JyZWFrO2Nhc2UgMTg6Zj0xNTticmVhayB0O2RlZmF1bHQ6Zj0xNjticmVhayB0fX1pZigxNT09KDB8Zikpe2FbcD4+Ml09bCs0LG09MTA7YnJlYWt9aWYoMTY9PSgwfGYpKXthW3A+PjJdPUEsbT0wO2JyZWFrfX1lbHNlIG09LTF9d2hpbGUoMCk7cmV0''@;'; + put 'put ''dXJuIDB8bX1mdW5jdGlvbiB0QWUobCxjLGYscCl7bHw9MCxjfD0wLGZ8PTAscHw9MDt2YXIgbT0wLEE9MCx3PTA7ZTpkb3tpZigoZi1jfDApPjEpe2lmKDI0IT0oLTImKG09KG09MHxmZVtjPj4wXSk8PDI0Pj4yND8wfGYwKG0sMHxmZVtjKzE+PjBdKTowfFh0W2wrNzIrKDB8WHRbYysxPj4w''@;'; + put 'put ''XSk+PjBdKXwwKSl7YVtwPj4yXT1jLGY9MDticmVha313PWwrNzJ8MDt0OmZvcig7Oyl7aWYoKGYtKEE9YysyfDApfDApPD0xKXtmPS0xO2JyZWFrIGV9c3dpdGNoKGw9MHxmZVtjKzM+PjBdLDB8KG09KG09MHxmZVtBPj4wXSk8PDI0Pj4yND8wfGYwKG0sbCk6MHxYdFt3KygyNTUmbCk+PjBd''@;'; + put 'put ''KSl7Y2FzZSAyNDpjYXNlIDI1OmM9QTticmVhaztjYXNlIDE4Om09MTM7YnJlYWsgdDtkZWZhdWx0Om09MTQ7YnJlYWsgdH19aWYoMTM9PSgwfG0pKXthW3A+PjJdPWMrNCxmPTEwO2JyZWFrfWlmKDE0PT0oMHxtKSl7YVtwPj4yXT1BLGY9MDticmVha319ZWxzZSBmPS0xfXdoaWxlKDApO3Jl''@;'; + put 'put ''dHVybiAwfGZ9ZnVuY3Rpb24gbkFlKGwsYyxmLHApe2x8PTAscHw9MDt2YXIgbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MDt3PShSPWZ8PTApLShjfD0wKXwwO2U6ZG97aWYoKDB8dyk+MSl7c3dpdGNoKDB8KG09KGI9MHxmZVtjPj4wXSk8PDI0Pj4yND8wfGYwKGIsQT0wfGZlW2Mr''@;'; + put 'put ''MT4+MF0pOjB8WHRbbCs3MisoMjU1JihBPTB8ZmVbYysxPj4wXSkpPj4wXSkpe2Nhc2UgMjk6aWYoISgxPDwoMzEmKE09MjU1JkEpKSZhWzU2OTQwKygoTT4+PjV8WHRbMTQzNzg4KygyNTUmYik+PjBdPDwzKTw8Mik+PjJdKSl7YVtwPj4yXT1jLG09MDticmVhayBlfWJyZWFrO2Nhc2UgMjQ6''@;'; + put 'put ''Y2FzZSAyMjpicmVhaztjYXNlIDU6YVtwPj4yXT1jLG09MDticmVhayBlO2Nhc2UgNjppZigoMHx3KTwzKXttPS0yO2JyZWFrIGV9YVtwPj4yXT1jLG09MDticmVhayBlO2Nhc2UgNzppZigoMHx3KTw0KXttPS0yO2JyZWFrIGV9YVtwPj4yXT1jLG09MDticmVhayBlO2Nhc2UgMTY6aWYoKFIt''@;'; + put 'put ''KEE9YysyfDApfDApPD0xKXttPS0xO2JyZWFrIGV9c3dpdGNoKDB8KG09KG09MHxmZVtBPj4wXSk8PDI0Pj4yND8wfGYwKG0sMHxmZVtjKzM+PjBdKTowfFh0W2wrNzIrKDB8WHRbYyszPj4wXSk+PjBdKSl7Y2FzZSAyNzptPTB8ejFlKGwsYys0fDAsZixwKTticmVhayBlO2Nhc2UgMjA6bT0w''@;'; + put 'put ''fEcxZShjKzR8MCxmLHApO2JyZWFrIGU7ZGVmYXVsdDphW3A+PjJdPUEsbT0wO2JyZWFrIGV9Y2FzZSAxNTptPTB8WEsobCxjKzJ8MCxmLHApO2JyZWFrIGU7Y2FzZSAxNzptPTB8VzFlKGwsYysyfDAsZixwKTticmVhayBlO2RlZmF1bHQ6YVtwPj4yXT1jLG09MDticmVhayBlfU09bCs3Mnww''@;'; + put 'put ''LGs9MCxtPWMrMnwwO3Q6Zm9yKDs7KXtuOmZvcig7Oyl7aWYoKDB8KEE9Ui1tfDApKTw9MSl7bT0tMTticmVhayBlfXN3aXRjaChiPTB8ZmVbbSsxPj4wXSwwfChjPSh3PTB8ZmVbbT4+MF0pPDwyND4+MjQ/MHxmMCh3LGIpOjB8WHRbTSsoMjU1JmIpPj4wXSkpe2Nhc2UgNTpEPTM0O2JyZWFr''@;'; + put 'put ''IHQ7Y2FzZSA2OkQ9MzU7YnJlYWsgdDtjYXNlIDc6RD0zNzticmVhayB0O2Nhc2UgMTA6Y2FzZSA5OmNhc2UgMjE6RD01NTticmVhayB0O2Nhc2UgMTE6RD02OTticmVhayB0O2Nhc2UgMTc6YnJlYWsgdDtjYXNlIDIzOmJyZWFrIG47Y2FzZSAyOTppZighKDE8PCgzMSYoYz0yNTUmYikpJmFb''@;'; + put 'put ''NTY5NDArKChjPj4+NXxYdFsxNDQwNDQrKDI1NSZ3KT4+MF08PDMpPDwyKT4+Ml0pKXtEPTMyO2JyZWFrIHR9YnJlYWs7Y2FzZSAyNzpjYXNlIDI2OmNhc2UgMjU6Y2FzZSAyNDpjYXNlIDIyOmJyZWFrO2RlZmF1bHQ6RD03NTticmVhayB0fW09bSsyfDB9aWYoMHxrKXtEPTQwO2JyZWFrfWlm''@;'; + put 'put ''KCgwfChrPVItKGM9bSsyfDApfDApKTw9MSl7bT0tMTticmVhayBlfXN3aXRjaCh3PTB8ZmVbbSszPj4wXSwwfChiPShBPTB8ZmVbYz4+MF0pPDwyND4+MjQ/MHxmMChBLHcpOjB8WHRbTSsoMjU1JncpPj4wXSkpe2Nhc2UgNTpEPTQ5O2JyZWFrIHQ7Y2FzZSA2OkQ9NTA7YnJlYWsgdDtjYXNl''@;'; + put 'put ''IDc6RD01MjticmVhayB0O2Nhc2UgMjk6aWYoISgxPDwoMzEmKGs9MjU1JncpKSZhWzU2OTQwKygoaz4+PjV8WHRbMTQzNzg4KygyNTUmQSk+PjBdPDwzKTw8Mik+PjJdKSl7RD00NzticmVhayB0fWJyZWFrO2Nhc2UgMjQ6Y2FzZSAyMjpicmVhaztkZWZhdWx0OkQ9NTQ7YnJlYWsgdH1rPTEs''@;'; + put 'put ''bT1tKzR8MH10OnN3aXRjaCgwfEQpe2Nhc2UgMzI6Y2FzZSAzNDpjYXNlIDQwOmNhc2UgNzU6YVtwPj4yXT1tLG09MDticmVhayBlO2Nhc2UgMzU6aWYoKDB8QSk8Myl7bT0tMjticmVhayBlfWFbcD4+Ml09bSxtPTA7YnJlYWsgZTtjYXNlIDM3OmlmKCgwfEEpPDQpe209LTI7YnJlYWsgZX1h''@;'; + put 'put ''W3A+PjJdPW0sbT0wO2JyZWFrIGU7Y2FzZSA0NzpjYXNlIDQ5OmNhc2UgNTQ6YVtwPj4yXT1jLG09MDticmVhayBlO2Nhc2UgNTA6aWYoKDB8ayk8Myl7bT0tMjticmVhayBlfWFbcD4+Ml09YyxtPTA7YnJlYWsgZTtjYXNlIDUyOmlmKCgwfGspPDQpe209LTI7YnJlYWsgZX1hW3A+PjJdPWMs''@;'; + put 'put ''bT0wO2JyZWFrIGU7Y2FzZSA1NTpuOmZvcig7Oyl7aWYoRD0wLCgwfCh3PVItKEE9bSsyfDApfDApKTw9MSl7bT0tMTticmVhayBlfXN3aXRjaChjPTB8ZmVbbSszPj4wXSwwfChrPShiPTB8ZmVbQT4+MF0pPDwyND4+MjQ/MHxmMChiLGMpOjB8WHRbTSsoMjU1JmMpPj4wXSkpe2Nhc2UgMTE6''@;'; + put 'put ''bT1BLEQ9Njk7YnJlYWsgdDtjYXNlIDE3Om09QTticmVhayB0O2Nhc2UgMTA6Y2FzZSA5OmNhc2UgMjE6bT1BLEQ9NTU7YnJlYWs7Y2FzZSAyOTpEPTYwO2JyZWFrIG47Y2FzZSAyNDpjYXNlIDIyOmJyZWFrIG47Y2FzZSA1OkQ9NjM7YnJlYWsgbjtjYXNlIDY6RD02NDticmVhayBuO2Nhc2Ug''@;'; + put 'put ''NzpEPTY2O2JyZWFrIG47ZGVmYXVsdDpEPTY4O2JyZWFrIG59fWlmKDYwPT0oMHxEKSl7aWYoISgxPDwoMzEmKFI9MjU1JmMpKSZhWzU2OTQwKygoUj4+PjV8WHRbMTQzNzg4KygyNTUmYik+PjBdPDwzKTw8Mik+PjJdKSl7YVtwPj4yXT1BLG09MDticmVhayBlfX1lbHNle2lmKDYzPT0oMHxE''@;'; + put 'put ''KSl7YVtwPj4yXT1BLG09MDticmVhayBlfWlmKDY0PT0oMHxEKSl7aWYoKDB8dyk8Myl7bT0tMjticmVhayBlfWFbcD4+Ml09QSxtPTA7YnJlYWsgZX1pZig2Nj09KDB8RCkpe2lmKCgwfHcpPDQpe209LTI7YnJlYWsgZX1hW3A+PjJdPUEsbT0wO2JyZWFrIGV9aWYoNjg9PSgwfEQpKXthW3A+''@;'; + put 'put ''PjJdPUEsbT0wO2JyZWFrIGV9fW09MHxZMWUobCxtKzR8MCxmLHApO2JyZWFrIGV9aWYoNjk9PSgwfEQpKXthW3A+PjJdPW0rMixtPTI7YnJlYWt9aWYoKFItKEE9bSsyfDApfDApPjEpe2lmKDA9PSgwfGZlW0E+PjBdKSYmNjI9PSgwfGZlW20rMz4+MF0pKXthW3A+PjJdPW0rNCxtPTQ7YnJl''@;'; + put 'put ''YWt9YVtwPj4yXT1BLG09MH1lbHNlIG09LTF9ZWxzZSBtPS0xfXdoaWxlKDApO3JldHVybiAwfG19ZnVuY3Rpb24gejFlKGwsYyxmLHApe2x8PTAsY3w9MCxwfD0wO3ZhciB3LG09MCxBPTAsYj0wO3c9Znw9MDtlOmRve2lmKCh3LWN8MCk+MSl7aWYoMD09KDB8ZmVbYz4+MF0pJiY0NT09KDB8''@;'; + put 'put ''ZmVbYysxPj4wXSkpe0E9bCs3MnwwLG09YysyfDA7dDpmb3IoOzspe2lmKCgwfChjPXctbXwwKSk8PTEpe2Y9LTE7YnJlYWsgZX1zd2l0Y2gobD0wfGZlW20rMT4+MF0sMHwoZj0oZj0wfGZlW20+PjBdKTw8MjQ+PjI0PzB8ZjAoZixsKTowfFh0W0ErKDI1NSZsKT4+MF0pKXtjYXNlIDg6Y2Fz''@;'; + put 'put ''ZSAxOmNhc2UgMDpiPTE2O2JyZWFrIHQ7Y2FzZSA1OmRlZmF1bHQ6bT1tKzJ8MDtjb250aW51ZSB0O2Nhc2UgNjppZigoMHxjKTwzKXtmPS0yO2JyZWFrIGV9bT1tKzN8MDtjb250aW51ZSB0O2Nhc2UgNzppZigoMHxjKTw0KXtmPS0yO2JyZWFrIGV9bT1tKzR8MDtjb250aW51ZSB0O2Nhc2Ug''@;'; + put 'put ''Mjc6aWYoKHctKGY9bSsyfDApfDApPD0xKXtmPS0xO2JyZWFrIGV9aWYoMHxmZVtmPj4wXSl7bT1mO2NvbnRpbnVlIHR9aWYoNDU9PSgwfGZlW20rMz4+MF0pKWJyZWFrIHQ7bT1mO2NvbnRpbnVlIHR9fWlmKDE2PT0oMHxiKSl7YVtwPj4yXT1tLGY9MDticmVha31pZigody0oZj1tKzR8MCl8''@;'; + put 'put ''MCk8PTEpe2Y9LTE7YnJlYWt9aWYoMD09KDB8ZmVbZj4+MF0pJiY2Mj09KDB8ZmVbbSs1Pj4wXSkpe2FbcD4+Ml09bSs2LGY9MTM7YnJlYWt9YVtwPj4yXT1mLGY9MDticmVha31hW3A+PjJdPWMsZj0wfWVsc2UgZj0tMX13aGlsZSgwKTtyZXR1cm4gMHxmfWZ1bmN0aW9uIEcxZShsLGMsZil7''@;'; + put 'put ''aWYoZnw9MCwoKGN8PTApLShsfD0wKXwwKT4xMSl7Zm9yKGM9MDs7KXtpZigoMHxjKT49Nil7Yz04O2JyZWFrfWlmKDB8ZmVbbD4+MF0pe2M9MDticmVha31pZigoMHxmZVtsKzE+PjBdKSE9KDB8ZmVbMTQ0MzAwK2M+PjBdKSl7Yz0wO2JyZWFrfWM9YysxfDAsbD1sKzJ8MH1hW2Y+PjJdPWx9''@;'; + put 'put ''ZWxzZSBjPS0xO3JldHVybiAwfGN9ZnVuY3Rpb24gWEsobCxjLGYscCl7bHw9MCxwfD0wO3ZhciBELFIsRyxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MDtHPWxlLGxlPWxlKzE2fDAsUj1HLEE9KEQ9Znw9MCktKGN8PTApfDA7ZTpkb3tpZigoMHxBKT4xKXtzd2l0Y2goMHwoZj0odz0wfGZlW2M+''@;'; + put 'put ''PjBdKTw8MjQ+PjI0PzB8ZjAodyxtPTB8ZmVbYysxPj4wXSk6MHxYdFtsKzcyKygyNTUmKG09MHxmZVtjKzE+PjBdKSk+PjBdKSl7Y2FzZSAyOTppZighKDE8PCgzMSYoaz0yNTUmbSkpJmFbNTY5NDArKChrPj4+NXxYdFsxNDM3ODgrKDI1NSZ3KT4+MF08PDMpPDwyKT4+Ml0pKXthW3A+PjJd''@;'; + put 'put ''PWMsZj0wO2JyZWFrIGV9YnJlYWs7Y2FzZSAyNDpjYXNlIDIyOmJyZWFrO2Nhc2UgNTpkZWZhdWx0OmFbcD4+Ml09YyxmPTA7YnJlYWsgZTtjYXNlIDY6aWYoKDB8QSk8Myl7Zj0tMjticmVhayBlfWFbcD4+Ml09YyxmPTA7YnJlYWsgZTtjYXNlIDc6aWYoKDB8QSk8NCl7Zj0tMjticmVhayBl''@;'; + put 'put ''fWFbcD4+Ml09YyxmPTA7YnJlYWsgZX1rPWwrNzJ8MCxiPWM7dDpmb3IoOzspe2lmKCgwfChtPUQtKGY9YisyfDApfDApKTw9MSl7Zj0tMTticmVhayBlfXN3aXRjaCh3PTB8ZmVbYiszPj4wXSwwfChsPShBPTB8ZmVbZj4+MF0pPDwyND4+MjQ/MHxmMChBLHcpOjB8WHRbaysoMjU1JncpPj4w''@;'; + put 'put ''XSkpe2Nhc2UgMjc6Y2FzZSAyNjpjYXNlIDI1OmNhc2UgMjQ6Y2FzZSAyMjpiPWY7Y29udGludWUgdDtjYXNlIDU6TT0yMjticmVhayB0O2Nhc2UgNjpNPTIzO2JyZWFrIHQ7Y2FzZSA3Ok09MjU7YnJlYWsgdDtjYXNlIDEwOmNhc2UgOTpjYXNlIDIxOk09Mjc7YnJlYWsgdDtjYXNlIDE1Ok09''@;'; + put 'put ''NDY7YnJlYWsgdDtjYXNlIDI5OmJyZWFrO2RlZmF1bHQ6YnJlYWsgdH1pZighKDE8PCgzMSYoYj0yNTUmdykpJmFbNTY5NDArKChiPj4+NXxYdFsxNDQwNDQrKDI1NSZBKT4+MF08PDMpPDwyKT4+Ml0pKXtNPTIxO2JyZWFrfWI9Zn1pZigyMT09KDB8TSkpe2FbcD4+Ml09ZixmPTA7YnJlYWt9''@;'; + put 'put ''aWYoMjI9PSgwfE0pKXthW3A+PjJdPWYsZj0wO2JyZWFrfWlmKDIzPT0oMHxNKSl7aWYoKDB8bSk8Myl7Zj0tMjticmVha31hW3A+PjJdPWYsZj0wO2JyZWFrfWlmKDI1PT0oMHxNKSl7aWYoKDB8bSk8NCl7Zj0tMjticmVha31hW3A+PjJdPWYsZj0wO2JyZWFrfWlmKDI3PT0oMHxNKSl7aWYo''@;'; + put 'put ''ISgwfEtLKGMsZixSKSkpe2FbcD4+Ml09ZixmPTA7YnJlYWt9dz1iKzR8MDt0OmZvcig7Oyl7aWYoKDB8KEE9RC13fDApKTw9MSl7Zj0tMTticmVhayBlfXN3aXRjaChtPTB8ZmVbdysxPj4wXSwwfChmPShmPTB8ZmVbdz4+MF0pPDwyND4+MjQ/MHxmMChmLG0pOjB8WHRbaysoMjU1Jm0pPj4w''@;'; + put 'put ''XSkpe2Nhc2UgODpjYXNlIDE6Y2FzZSAwOk09NDA7YnJlYWsgdDtjYXNlIDU6ZGVmYXVsdDp3PXcrMnwwO2NvbnRpbnVlIHQ7Y2FzZSA2OmlmKCgwfEEpPDMpe2Y9LTI7YnJlYWsgZX13PXcrM3wwO2NvbnRpbnVlIHQ7Y2FzZSA3OmlmKCgwfEEpPDQpe2Y9LTI7YnJlYWsgZX13PXcrNHwwO2Nv''@;'; + put 'put ''bnRpbnVlIHQ7Y2FzZSAxNTppZigoRC0oZj13KzJ8MCl8MCk8PTEpe2Y9LTE7YnJlYWsgZX1pZigwfGZlW2Y+PjBdKXt3PWY7Y29udGludWUgdH1pZig2Mj09KDB8ZmVbdyszPj4wXSkpe009NDQ7YnJlYWsgdH13PWY7Y29udGludWUgdH19aWYoNDA9PSgwfE0pKXthW3A+PjJdPXcsZj0wO2Jy''@;'; + put 'put ''ZWFrfWlmKDQ0PT0oMHxNKSl7YVtwPj4yXT13KzQsZj0wfGFbUj4+Ml07YnJlYWt9fWVsc2UgaWYoNDY9PSgwfE0pKXtpZighKDB8S0soYyxmLFIpKSl7YVtwPj4yXT1mLGY9MDticmVha31pZigoRC0oZj1iKzR8MCl8MCk8PTEpe2Y9LTE7YnJlYWt9aWYoMD09KDB8ZmVbZj4+MF0pJiY2Mj09''@;'; + put 'put ''KDB8ZmVbYis1Pj4wXSkpe2FbcD4+Ml09Yis2LGY9MHxhW1I+PjJdO2JyZWFrfX1hW3A+PjJdPWYsZj0wfWVsc2UgZj0tMX13aGlsZSgwKTtyZXR1cm4gbGU9RywwfGZ9ZnVuY3Rpb24gVzFlKGwsYyxmLHApe2x8PTAscHw9MDt2YXIgbT0wLEE9MCx3PTAsYj0wLGs9MDt3PShmfD0wKS0oY3w9''@;'; + put 'put ''MCl8MDtlOmRve2lmKCgwfHcpPjEpe3N3aXRjaCgwfChtPShiPTB8ZmVbYz4+MF0pPDwyND4+MjQ/MHxmMChiLEE9MHxmZVtjKzE+PjBdKTowfFh0W2wrNzIrKDI1NSYoQT0wfGZlW2MrMT4+MF0pKT4+MF0pKXtjYXNlIDI5OmlmKCEoMTw8KDMxJihrPTI1NSZBKSkmYVs1Njk0MCsoKGs+Pj41''@;'; + put 'put ''fCgwfFh0WzE0Mzc4OCsoMjU1JmIpPj4wXSk8PDMpPDwyKT4+Ml0pKXthW3A+PjJdPWMsZj0wO2JyZWFrIGV9YnJlYWs7Y2FzZSAyNDpjYXNlIDIyOmJyZWFrO2Nhc2UgNTpkZWZhdWx0OmFbcD4+Ml09YyxmPTA7YnJlYWsgZTtjYXNlIDY6aWYoKDB8dyk8Myl7Zj0tMjticmVhayBlfWFbcD4+''@;'; + put 'put ''Ml09YyxmPTA7YnJlYWsgZTtjYXNlIDc6aWYoKDB8dyk8NCl7Zj0tMjticmVhayBlfWFbcD4+Ml09YyxmPTA7YnJlYWsgZX1rPWwrNzJ8MCxsPWM7dDpmb3IoOzspe2lmKCgwfChjPWYtKHc9bCsyfDApfDApKTw9MSl7Zj0tMTticmVhayBlfXN3aXRjaChBPTB8ZmVbbCszPj4wXSwwfChiPSht''@;'; + put 'put ''PTB8ZmVbdz4+MF0pPDwyND4+MjQ/MHxmMChtLEEpOjB8WHRbaysoMjU1JkEpPj4wXSkpe2Nhc2UgMjM6Y2FzZSAyNzpjYXNlIDI2OmNhc2UgMjU6Y2FzZSAyNDpjYXNlIDIyOmw9dztjb250aW51ZSB0O2Nhc2UgNTptPTIyO2JyZWFrIHQ7Y2FzZSA2Om09MjM7YnJlYWsgdDtjYXNlIDc6bT0y''@;'; + put 'put ''NTticmVhayB0O2Nhc2UgMTA6Y2FzZSA5OmNhc2UgMjE6bT0yNzticmVhayB0O2Nhc2UgMTE6bT0zNDticmVhayB0O2Nhc2UgMjk6YnJlYWs7ZGVmYXVsdDptPTM1O2JyZWFrIHR9aWYoISgxPDwoMzEmKGM9MjU1JkEpKSZhWzU2OTQwKygoYz4+PjV8KDB8WHRbMTQ0MDQ0KygyNTUmbSk+PjBd''@;'; + put 'put ''KTw8Myk8PDIpPj4yXSkpe209MjE7YnJlYWt9bD13fWlmKDIxPT0oMHxtKSl7YVtwPj4yXT13LGY9MDticmVha31pZigyMj09KDB8bSkpe2FbcD4+Ml09dyxmPTA7YnJlYWt9aWYoMjM9PSgwfG0pKXtpZigoMHxjKTwzKXtmPS0yO2JyZWFrfWFbcD4+Ml09dyxmPTA7YnJlYWt9aWYoMjU9PSgw''@;'; + put 'put ''fG0pKXtpZigoMHxjKTw0KXtmPS0yO2JyZWFrfWFbcD4+Ml09dyxmPTA7YnJlYWt9aWYoMjc9PSgwfG0pKXt0OmZvcig7Oyl7aWYoKGYtKGI9dysyfDApfDApPD0xKXtmPS0xO2JyZWFrIGV9c3dpdGNoKEE9MHxmZVt3KzM+PjBdLDB8KG09KG09MHxmZVtiPj4wXSk8PDI0Pj4yND8wfGYwKG0s''@;'; + put 'put ''QSk6MHxYdFtrKygyNTUmQSk+PjBdKSl7Y2FzZSAxMDpjYXNlIDk6Y2FzZSAyMTp3PWIsbT0yNzticmVhaztjYXNlIDExOm09MzI7YnJlYWsgdDtkZWZhdWx0Om09MzM7YnJlYWsgdH19aWYoMzI9PSgwfG0pKXthW3A+PjJdPXcrNCxmPTU7YnJlYWt9aWYoMzM9PSgwfG0pKXthW3A+PjJdPWIs''@;'; + put 'put ''Zj0wO2JyZWFrfX1lbHNle2lmKDM0PT0oMHxtKSl7YVtwPj4yXT1sKzQsZj01O2JyZWFrfWlmKDM1PT0oMHxtKSl7YVtwPj4yXT13LGY9MDticmVha319fWVsc2UgZj0tMX13aGlsZSgwKTtyZXR1cm4gMHxmfWZ1bmN0aW9uIFkxZShsLGMsZixwKXtsfD0wLGZ8PTAscHw9MDt2YXIgRCxHLEss''@;'; + put 'put ''cGUsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsUj0wO3BlPWxlLGxlPWxlKzE2fDAsYVsoRz1wZSk+PjJdPWN8PTAsSz1mLEQ9bCs3MnwwLG09MDtlOmZvcig7Oyl7dDpmb3IoOzspe2lmKCgwfChrPUstY3wwKSk8PTEpe2M9LTE7YnJlYWsgZX1zd2l0Y2godz0wfGZlW2MrMT4+MF0sMHwoYj0o''@;'; + put 'put ''QT0wfGZlW2M+PjBdKTw8MjQ+PjI0PzB8ZjAoQSx3KTowfFh0W0QrKDI1NSZ3KT4+MF0pKXtjYXNlIDU6Uj0xMTticmVhayBlO2Nhc2UgNjpSPTEyO2JyZWFrIGU7Y2FzZSA3OlI9MTQ7YnJlYWsgZTtjYXNlIDIzOlI9MTY7YnJlYWsgdDtjYXNlIDEwOmNhc2UgOTpjYXNlIDIxOlI9MzE7YnJl''@;'; + put 'put ''YWsgdDtjYXNlIDE0OlI9Mzc7YnJlYWsgdDtjYXNlIDI5OmlmKCEoMTw8KDMxJihNPTI1NSZ3KSkmYVs1Njk0MCsoKE0+Pj41fFh0WzE0NDA0NCsoMjU1JkEpPj4wXTw8Myk8PDIpPj4yXSkpe1I9OTticmVhayBlfWJyZWFrO2Nhc2UgMjc6Y2FzZSAyNjpjYXNlIDI1OmNhc2UgMjQ6Y2FzZSAy''@;'; + put 'put ''MjpicmVhaztkZWZhdWx0OlI9ODk7YnJlYWsgZX1hW0c+PjJdPU09YysyfDAsYz1NfXQ6ZG97aWYoMTY9PSgwfFIpKXtpZihSPTAsMHxtKXtSPTE3O2JyZWFrIGV9aWYoYVtHPj4yXT1tPWMrMnwwLCgwfCh3PUstKEE9bSl8MCkpPD0xKXtjPS0xO2JyZWFrIGV9c3dpdGNoKGs9MHxmZVtjKzM+''@;'; + put 'put ''PjBdLDB8KE09KGI9MHxmZVttPj4wXSk8PDI0Pj4yND8wfGYwKGIsayk6MHxYdFtEKygyNTUmayk+PjBdKSl7Y2FzZSA1OlI9MjU7YnJlYWsgZTtjYXNlIDY6Uj0yNjticmVhayBlO2Nhc2UgNzpSPTI4O2JyZWFrIGU7Y2FzZSAyNDpjYXNlIDIyOm09MTticmVhayB0O2Nhc2UgMjk6YnJlYWs7''@;'; + put 'put ''ZGVmYXVsdDpSPTMwO2JyZWFrIGV9aWYoISgxPDwoMzEmKE09MjU1JmspKSZhWzU2OTQwKygoTT4+PjV8WHRbMTQzNzg4KygyNTUmYik+PjBdPDwzKTw8Mik+PjJdKSl7Uj0yNDticmVhayBlfW09MX1lbHNlIGlmKDMxPT0oMHxSKSlmb3IoOzspe2lmKFI9MCxhW0c+PjJdPUE9YysyfDAsKEst''@;'; + put 'put ''KHc9QSl8MCk8PTEpe2M9LTE7YnJlYWsgZX1zd2l0Y2goYz0wfGZlW2MrMz4+MF0sMHwoYz0obT0wfGZlW0E+PjBdKTw8MjQ+PjI0PzB8ZjAobSxjKTowfFh0W0QrKDI1NSZjKT4+MF0pKXtjYXNlIDE0OmM9QSxSPTM3O2JyZWFrIHQ7Y2FzZSA5OmNhc2UgMTA6Y2FzZSAyMTpjPUEsUj0zMTti''@;'; + put 'put ''cmVhaztkZWZhdWx0OlI9MzY7YnJlYWsgZX19fXdoaWxlKDApO3Q6ZG97aWYoMzc9PSgwfFIpKXtmb3IoOzspe2lmKFI9MCxhW0c+PjJdPXc9YysyfDAsKEstKGI9dyl8MCk8PTEpe2M9LTE7YnJlYWsgZX1pZihBPTB8ZmVbYyszPj4wXSwxMz09KDF8KGs9KG09MHxmZVt3Pj4wXSk8PDI0Pj4y''@;'; + put 'put ''ND8wfGYwKG0sQSk6MHxYdFtEKygyNTUmQSk+PjBdKSkpYnJlYWs7c3dpdGNoKDB8ayl7Y2FzZSA5OmNhc2UgMTA6Y2FzZSAyMTpjPXcsUj0zNzticmVhaztkZWZhdWx0OlI9NDM7YnJlYWsgZX19YVtHPj4yXT1jPWMrNHwwO246Zm9yKDs7KXtpZigoMHwodz1LLWN8MCkpPD0xKXtjPS0xO2Jy''@;'; + put 'put ''ZWFrIGV9aWYoQT0wfGZlW2MrMT4+MF0sKDB8KG09KG09MHxmZVtjPj4wXSk8PDI0Pj4yND8wfGYwKG0sQSk6MHxYdFtEKygyNTUmQSk+PjBdKSk9PSgwfGspKWJyZWFrO3N3aXRjaCgwfG0pe2Nhc2UgODpjYXNlIDE6Y2FzZSAwOlI9NTY7YnJlYWsgZTtjYXNlIDI6Uj02MTticmVhayBlO2Nh''@;'; + put 'put ''c2UgNTpkZWZhdWx0OmFbRz4+Ml09TT1jKzJ8MCxjPU07Y29udGludWUgbjtjYXNlIDY6aWYoKDB8dyk8Myl7Yz0tMjticmVhayBlfWFbRz4+Ml09TT1jKzN8MCxjPU07Y29udGludWUgbjtjYXNlIDc6aWYoKDB8dyk8NCl7Yz0tMjticmVhayBlfWFbRz4+Ml09TT1jKzR8MCxjPU07Y29udGlu''@;'; + put 'put ''dWUgbjtjYXNlIDM6aWYoKDB8KGM9MHxiaihsLGMrMnwwLGYsRykpKTwxKXtSPTU5O2JyZWFrIGV9Yz0wfGFbRz4+Ml07Y29udGludWUgbn19aWYoYVtHPj4yXT1BPWMrMnwwLChLLShiPUEpfDApPD0xKXtjPS0xO2JyZWFrIGV9c3dpdGNoKHc9MHxmZVtjKzM+PjBdLDB8KG09KG09MHxmZVtB''@;'; + put 'put ''Pj4wXSk8PDI0Pj4yND8wfGYwKG0sdyk6MHxYdFtEKygyNTUmdyk+PjBdKSl7Y2FzZSAxMTpSPTgxO2JyZWFrIGU7Y2FzZSAxNzpSPTgyO2JyZWFrIGU7Y2FzZSAxMDpjYXNlIDk6Y2FzZSAyMTpjPUE7YnJlYWs7ZGVmYXVsdDpSPTY4O2JyZWFrIGV9bjpmb3IoOzspe2lmKGFbRz4+Ml09QT1j''@;'; + put 'put ''KzJ8MCwoMHwodz1LLShtPUEpfDApKTw9MSl7Yz0tMTticmVhayBlfXN3aXRjaChrPTB8ZmVbYyszPj4wXSwwfChNPShiPTB8ZmVbQT4+MF0pPDwyND4+MjQ/MHxmMChiLGspOjB8WHRbRCsoMjU1JmspPj4wXSkpe2Nhc2UgNTpSPTc2O2JyZWFrIGU7Y2FzZSA2OlI9Nzc7YnJlYWsgZTtjYXNl''@;'; + put 'put ''IDc6Uj03OTticmVhayBlO2Nhc2UgMTE6Uj04MTticmVhayBlO2Nhc2UgMTc6Uj04MjticmVhayBlO2Nhc2UgMjQ6Y2FzZSAyMjptPTA7YnJlYWsgdDtjYXNlIDEwOmNhc2UgOTpjYXNlIDIxOmM9QTticmVhaztjYXNlIDI5OmJyZWFrIG47ZGVmYXVsdDpSPTg3O2JyZWFrIGV9fWlmKCEoMTw8''@;'; + put 'put ''KDMxJihNPTI1NSZrKSkmYVs1Njk0MCsoKE0+Pj41fFh0WzE0Mzc4OCsoMjU1JmIpPj4wXTw8Myk8PDIpPj4yXSkpe1I9NzU7YnJlYWsgZX1tPTB9fXdoaWxlKDApO2FbRz4+Ml09Yz1jKzR8MH1zd2l0Y2goMHxSKXtjYXNlIDk6Y2FzZSAxMTpjYXNlIDE3OmNhc2UgNTY6Y2FzZSA2MTpjYXNl''@;'; + put 'put ''IDg5OmFbcD4+Ml09YyxjPTA7YnJlYWs7Y2FzZSAxMjooMHxrKTwzP2M9LTI6KGFbcD4+Ml09YyxjPTApO2JyZWFrO2Nhc2UgMTQ6KDB8ayk8ND9jPS0yOihhW3A+PjJdPWMsYz0wKTticmVhaztjYXNlIDI0OmNhc2UgMjU6Y2FzZSA4NzphW3A+PjJdPW0sYz0wO2JyZWFrO2Nhc2UgMjY6KDB8''@;'; + put 'put ''dyk8Mz9jPS0yOihhW3A+PjJdPW0sYz0wKTticmVhaztjYXNlIDI4OigwfHcpPDQ/Yz0tMjooYVtwPj4yXT1tLGM9MCk7YnJlYWs7Y2FzZSAzMDpjYXNlIDc1OmNhc2UgNzY6YVtwPj4yXT1BLGM9MDticmVhaztjYXNlIDM2OmFbcD4+Ml09dyxjPTA7YnJlYWs7Y2FzZSA0MzpjYXNlIDY4OmFb''@;'; + put 'put ''cD4+Ml09YixjPTA7YnJlYWs7Y2FzZSA1OTpjfHwoYVtwPj4yXT1hW0c+PjJdLGM9MCk7YnJlYWs7Y2FzZSA3NzooMHx3KTwzP2M9LTI6KGFbcD4+Ml09QSxjPTApO2JyZWFrO2Nhc2UgNzk6KDB8dyk8ND9jPS0yOihhW3A+PjJdPUEsYz0wKTticmVhaztjYXNlIDgxOmFbcD4+Ml09Yys0LGM9''@;'; + put 'put ''MTticmVhaztjYXNlIDgyOmlmKGFbRz4+Ml09bT1BKzJ8MCwoSy0oYz1tKXwwKT4xKXtpZigwPT0oMHxmZVttPj4wXSkmJjYyPT0oMHxmZVtBKzM+PjBdKSl7YVtwPj4yXT1BKzQsYz0zO2JyZWFrfWFbcD4+Ml09YyxjPTB9ZWxzZSBjPS0xfXJldHVybiBsZT1wZSwwfGN9ZnVuY3Rpb24gS0so''@;'; + put 'put ''bCxjLGYpe2x8PTAsY3w9MCxhWyhmfD0wKT4+Ml09MTE7ZTpkb3tpZig2PT0oYy1sfDApJiYwPT0oMHxmZVtsPj4wXSkpe3N3aXRjaCgwfGZlW2wrMT4+MF0pe2Nhc2UgMTIwOmM9MDticmVhaztjYXNlIDg4OmM9MTticmVhaztkZWZhdWx0OmM9MTticmVhayBlfWlmKDB8ZmVbbCsyPj4wXSlj''@;'; + put 'put ''PTE7ZWxzZXtzd2l0Y2goMHxmZVtsKzM+PjBdKXtjYXNlIDEwOTpicmVhaztjYXNlIDc3OmM9MTticmVhaztkZWZhdWx0OmM9MTticmVhayBlfWlmKDB8ZmVbbCs0Pj4wXSljPTE7ZWxzZXtzd2l0Y2goMHxmZVtsKzU+PjBdKXtjYXNlIDEwODpicmVhaztjYXNlIDc2OmM9MDticmVhayBlO2Rl''@;'; + put 'put ''ZmF1bHQ6Yz0xO2JyZWFrIGV9Yz9jPTA6KGFbZj4+Ml09MTIsYz0xKX19fWVsc2UgYz0xfXdoaWxlKDApO3JldHVybiAwfGN9ZnVuY3Rpb24gcmQobCxjLGYscCxtKXtsfD0wLGZ8PTAscHw9MCxtfD0wO3ZhciBiLEE9MCx3PTAsaz0wO2I9NzIrKGN8PTApfDA7ZTpmb3IoOzspe3Q6Zm9yKDs7''@;'; + put 'put ''KXtpZigoMHwodz1wLWZ8MCkpPD0xKXtmPS0xO2JyZWFrIGV9c3dpdGNoKEE9MHxmZVtmKzE+PjBdLDB8KEE9KGM9MHxmZVtmPj4wXSk8PDI0Pj4yND8wfGYwKGMsQSk6MHxYdFtiKygyNTUmQSk+PjBdKSl7Y2FzZSA4OmNhc2UgMTpjYXNlIDA6az0xMDticmVhayBlO2Nhc2UgNjprPTk7YnJl''@;'; + put 'put ''YWsgdDtjYXNlIDc6az0xOTticmVhayB0O2Nhc2UgNTpkZWZhdWx0OmY9ZisyfDA7Y29udGludWUgdDtjYXNlIDEzOmNhc2UgMTI6aWYoYz1mKzJ8MCwoMHxBKT09KDB8bCkpe2s9MTI7YnJlYWsgZX1mPWM7Y29udGludWUgdH19aWYoOSE9KDB8aykpaWYoMTkhPSgwfGspKTtlbHNle2lmKGs9''@;'; + put 'put ''MCwoMHx3KTw0KXtmPS0yO2JyZWFrfWY9Zis0fDB9ZWxzZXtpZihrPTAsKDB8dyk8Myl7Zj0tMjticmVha31mPWYrM3wwfX1lOmRve2lmKDEwPT0oMHxrKSlhW20+PjJdPWYsZj0wO2Vsc2UgaWYoMTI9PSgwfGspKWlmKChwLWN8MCk+MSl7c3dpdGNoKGFbbT4+Ml09YyxmPTB8ZmVbZiszPj4w''@;'; + put 'put ''XSwwfChmPShwPTB8ZmVbYz4+MF0pPDwyND4+MjQ/MHxmMChwLGYpOjB8WHRbYisoMjU1JmYpPj4wXSkpe2Nhc2UgMjA6Y2FzZSAzMDpjYXNlIDExOmNhc2UgMTA6Y2FzZSA5OmNhc2UgMjE6Zj0yNzticmVhayBlfWY9MH1lbHNlIGY9LTI3fXdoaWxlKDApO3JldHVybiAwfGZ9ZnVuY3Rpb24g''@;'; + put 'put ''Y0wobCxjLGYscCl7bHw9MCxjfD0wLHB8PTA7dmFyIGIsbT0wLEE9MCx3PTAsaz0wO2I9Znw9MDtlOmRve2lmKChiLWN8MCk+MSlzd2l0Y2gobT0wfGZlW2M+PjBdLG09bTw8MjQ+PjI0PzB8ZjAobSwwfGZlW2MrMT4+MF0pOjB8WHRbbCs3MisoMHxYdFtjKzE+PjBdKT4+MF0sMHxtKXtjYXNl''@;'; + put 'put ''IDI3Om09MHx6MWUobCxjKzJ8MCxmLHApO2JyZWFrIGU7Y2FzZSAyMDphW3A+PjJdPWMrMixtPTMzO2JyZWFrIGU7Y2FzZSAyNDpjYXNlIDIyOnc9bCs3MnwwO3Q6Zm9yKDs7KXtpZigoMHwoZj1iLShBPWMrMnwwKXwwKSk8PTEpe209LTE7YnJlYWsgZX1zd2l0Y2gobD0wfGZlW2MrMz4+MF0s''@;'; + put 'put ''MHwobT0obT0wfGZlW0E+PjBdKTw8MjQ+PjI0PzB8ZjAobSxsKTowfFh0W3crKDI1NSZsKT4+MF0pKXtjYXNlIDI0OmNhc2UgMjI6Yz1BO2JyZWFrO2Nhc2UgMzA6az0xNTticmVhayB0O2Nhc2UgMTA6Y2FzZSA5OmNhc2UgMjE6YnJlYWsgdDtkZWZhdWx0Oms9MjI7YnJlYWsgdH19aWYoMjI9''@;'; + put 'put ''PSgwfGspKXthW3A+PjJdPUEsbT0wO2JyZWFrIGV9dDpkb3tpZigxNT09KDB8aykpe2lmKCgwfGYpPD0zKXttPS0xO2JyZWFrIGV9c3dpdGNoKG09MHxmZVtjKzU+PjBdLDB8KG09KGw9MHxmZVtjKzQ+PjBdKTw8MjQ+PjI0PzB8ZjAobCxtKTowfFh0W3crKDI1NSZtKT4+MF0pKXtjYXNlIDMw''@;'; + put 'put ''OmNhc2UgMTA6Y2FzZSA5OmNhc2UgMjE6YnJlYWs7ZGVmYXVsdDpicmVhayB0fWFbcD4+Ml09QSxtPTA7YnJlYWsgZX19d2hpbGUoMCk7YVtwPj4yXT1BLG09MTY7YnJlYWsgZTtkZWZhdWx0OmFbcD4+Ml09YyxtPTA7YnJlYWsgZX1lbHNlIG09LTF9d2hpbGUoMCk7cmV0dXJuIDB8bX1mdW5j''@;'; + put 'put ''dGlvbiBydihsLGMsZixwKXtsfD0wLHB8PTA7dmFyIG09MCxBPTAsdz0wLGI9MDt3PShmfD0wKS0oY3w9MCl8MDtlOmRve2lmKCgwfHcpPjEpe3N3aXRjaCgwfChtPShiPTB8ZmVbYz4+MF0pPDwyND4+MjQ/MHxmMChiLEE9MHxmZVtjKzE+PjBdKTowfFh0W2wrNzIrKDI1NSYoQT0wfGZlW2Mr''@;'; + put 'put ''MT4+MF0pKT4+MF0pKXtjYXNlIDI5OmlmKCEoMTw8KDMxJih3PTI1NSZBKSkmYVs1Njk0MCsoKHc+Pj41fCgwfFh0WzE0Mzc4OCsoMjU1JmIpPj4wXSk8PDMpPDwyKT4+Ml0pKXthW3A+PjJdPWMsZj0wO2JyZWFrIGV9YnJlYWs7Y2FzZSAyNDpjYXNlIDIyOmJyZWFrO2Nhc2UgNTpkZWZhdWx0''@;'; + put 'put ''OmFbcD4+Ml09YyxmPTA7YnJlYWsgZTtjYXNlIDY6aWYoKDB8dyk8Myl7Zj0tMjticmVhayBlfWFbcD4+Ml09YyxmPTA7YnJlYWsgZTtjYXNlIDc6aWYoKDB8dyk8NCl7Zj0tMjticmVhayBlfWFbcD4+Ml09YyxmPTA7YnJlYWsgZX1sPWwrNzJ8MCxiPWM7dDpmb3IoOzspe2lmKG09YiwoMHwo''@;'; + put 'put ''Yz1mLShiPWIrMnwwKXwwKSk8PTEpe2Y9LTIwO2JyZWFrIGV9c3dpdGNoKG09MHxmZVttKzM+PjBdLDB8KEE9KHc9MHxmZVtiPj4wXSk8PDI0Pj4yND8wfGYwKHcsbSk6MHxYdFtsKygyNTUmbSk+PjBdKSl7Y2FzZSAyNzpjYXNlIDI2OmNhc2UgMjU6Y2FzZSAyNDpjYXNlIDIyOmNvbnRpbnVl''@;'; + put 'put ''IHQ7Y2FzZSA1Om09MjI7YnJlYWsgdDtjYXNlIDY6bT0yMzticmVhayB0O2Nhc2UgNzptPTI1O2JyZWFrIHQ7Y2FzZSAzNjpjYXNlIDMwOmNhc2UgMTE6Y2FzZSAzMjpjYXNlIDIxOmNhc2UgMTA6Y2FzZSA5Om09Mjc7YnJlYWsgdDtjYXNlIDI5OmJyZWFrO2RlZmF1bHQ6bT0yODticmVhayB0''@;'; + put 'put ''fWlmKCEoMTw8KDMxJihjPTI1NSZtKSkmYVs1Njk0MCsoKGM+Pj41fCgwfFh0WzE0NDA0NCsoMjU1JncpPj4wXSk8PDMpPDwyKT4+Ml0pKXttPTIxO2JyZWFrfX1pZigyMT09KDB8bSkpe2FbcD4+Ml09YixmPTA7YnJlYWt9aWYoMjI9PSgwfG0pKXthW3A+PjJdPWIsZj0wO2JyZWFrfWlmKDIz''@;'; + put 'put ''PT0oMHxtKSl7aWYoKDB8Yyk8Myl7Zj0tMjticmVha31hW3A+PjJdPWIsZj0wO2JyZWFrfWlmKDI1PT0oMHxtKSl7aWYoKDB8Yyk8NCl7Zj0tMjticmVha31hW3A+PjJdPWIsZj0wO2JyZWFrfWlmKDI3PT0oMHxtKSl7YVtwPj4yXT1iLGY9MjA7YnJlYWt9aWYoMjg9PSgwfG0pKXthW3A+PjJd''@;'; + put 'put ''PWIsZj0wO2JyZWFrfX1lbHNlIGY9LTF9d2hpbGUoMCk7cmV0dXJuIDB8Zn1mdW5jdGlvbiBfaihsLGMpe2x8PTAsY3w9MDt2YXIgZj0wLHA9MCxtPTAsQT0wO2U6Zm9yKDs7KXN3aXRjaChtPTB8ZmVbbD4+MF0sQT0wfGZlW2M+PjBdLG09KG0rLTk3JjI1NSk8MjY/MjI0KygyNTUmbSkmMjU1''@;'; + put 'put ''Om0sMyYobTw8MjQ+PjI0PT0oKEErLTk3JjI1NSk8MjY/MjI0KygyNTUmQSkmMjU1OkEpPDwyND4+MjQ/bTw8MjQ+PjI0PT0wPzI6MDoxKSl7Y2FzZSAwOmM9YysxfDAsbD1sKzF8MDticmVhaztjYXNlIDE6cD0zO2JyZWFrIGU7Y2FzZSAyOmY9MTticmVhayBlO2RlZmF1bHQ6cD01O2JyZWFr''@;'; + put 'put ''IGV9cmV0dXJuIDM9PSgwfHApJiYoZj0wKSwwfGZ9ZnVuY3Rpb24gbWcobCxjLGYscCxtLEEsdyxiLGssTSxEKXtsfD0wLGN8PTAsZnw9MCxwfD0wLG18PTAsQXw9MCx3fD0wLGJ8PTAsa3w9MCxNfD0wLER8PTA7dmFyIEcsSyxwZSxPZSxMZSxSZSxSPTAsZ2U9MCxiZT0wO1JlPWxlLGxlPWxl''@;'; + put 'put ''KzE2fDAsT2U9UmUrOHwwLEc9UmUrNHwwLEs9UmUsYVsocGU9UmUrMTJ8MCk+PjJdPTAsYVtHPj4yXT0wLGFbSz4+Ml09MCxhW09lPj4yXT1nZT1wKyg1KihiZT0wfGFbKExlPWYrNjR8MCk+PjJdKXwwKXwwLGdlPTAhPSgwfENqKGYsZ2UsYmU9bSsoMC0oYmU8PDEpKXwwLEcsSyxwZSxPZSkp''@;'; + put 'put ''LHA9Uj0wfGFbRz4+Ml07ZTpkb3tpZihnZSYwIT0oMHxSKSl7Z2U9ZisyNHwwLG09MHxhW0s+PjJdO2Rve2lmKDB8cTBbMTI3JmFbZ2U+PjJdXShmLFIsbSwxNDQzNDApKXtpZigwfHcmJihhW3c+PjJdPWFbcGU+PjJdKSxiP2FbYj4+Ml09cD0wfGFbT2U+PjJdOnA9MHxhW09lPj4yXSwhKDB8''@;'; + put 'put ''Q2ooZixwLGJlLEcsSyxwZSxPZSkpKXthW0E+PjJdPWFbT2U+PjJdLHA9MDticmVhayBlfWlmKDB8KG09MHxhW0c+PjJdKSl7cD1tLFI9bSxtPTB8YVtLPj4yXTticmVha31pZighYyl7cD0xO2JyZWFrIGV9YVtBPj4yXT1hW09lPj4yXSxwPTA7YnJlYWsgZX1pZighYyl7YVtBPj4yXT1wLHA9''@;'; + put 'put ''MDticmVhayBlfX13aGlsZSgwKTtpZigwfHEwWzEyNyZhW2dlPj4yXV0oZixSLG0sMTQ0MzQ4KSl7aWYocD1tPTB8YVtwZT4+Ml0sKCgtMzMmKDB8czgoZixtLGJlKSkpLTY1fDApPj4+MD49MjYpe2FbQT4+Ml09cCxwPTA7YnJlYWt9aWYoMHxrJiYoYVtrPj4yXT1wKSxwPTB8YVtPZT4+Ml0s''@;'; + put 'put ''MHxNJiYoYVtNPj4yXT0wfG1pWzYzJmxdKGYsbSxwKygwLSgwfGFbTGU+PjJdKSl8MCkpLCEoMHxDaihmLHAsYmUsRyxLLHBlLE9lKSkpe2FbQT4+Ml09YVtPZT4+Ml0scD0wO2JyZWFrfWlmKCEocD0wfGFbRz4+Ml0pKXtwPTE7YnJlYWt9Uj1wLG09MHxhW0s+PjJdfWlmKDAhPSgwfGMpfDA9''@;'; + put 'put ''PSgwfHEwWzEyNyZhW2dlPj4yXV0oZixSLG0sMTQ0MzU3KSkpe2FbQT4+Ml09cCxwPTA7YnJlYWt9aWYoUj1tPTB8YVtwZT4+Ml0sMHxxMFsxMjcmYVtnZT4+Ml1dKGYsbSwocD0wfGFbT2U+PjJdKSsoMC0oMHxhW0xlPj4yXSkpfDAsMTA3NjU3KSlEJiYoYVtEPj4yXT0xKTtlbHNle2lmKCEo''@;'; + put 'put ''MHxxMFsxMjcmYVtnZT4+Ml1dKGYsbSxwKygwLSgwfGFbTGU+PjJdKSl8MCwxMDc2NDkpKSl7YVtBPj4yXT1SLHA9MDticmVha31EJiYoYVtEPj4yXT0wKX1mb3IoOzB8bmEoMHxzOChmLHAsYmUpKTspcD1wKygwfGFbTGU+PjJdKXwwO2FbT2U+PjJdPXAsKDB8cCk9PSgwfGJlKT9wPTE6KGFb''@;'; + put 'put ''QT4+Ml09cCxwPTApfWVsc2UgYVtBPj4yXT1hW09lPj4yXSxwPTB9d2hpbGUoMCk7cmV0dXJuIGxlPVJlLDB8cH1mdW5jdGlvbiBDaihsLGMsZixwLG0sQSx3KXtsfD0wLGN8PTAsZnw9MCxwfD0wLG18PTAsQXw9MCx3fD0wO3ZhciBiPTAsaz0wO2U6ZG97aWYoKDB8YykhPSgwfGYpKXtpZigh''@;'; + put 'put ''KDB8bmEoMHxzOChsLGMsZikpKSl7YVt3Pj4yXT1jLGM9MDticmVha31rPWwrNjR8MDtkb3tjPWMrKDB8YVtrPj4yXSl8MH13aGlsZSgwIT0oMHxuYSgwfHM4KGwsYyxmKSkpKTtpZigoMHxjKT09KDB8Zikpe2FbcD4+Ml09MCxjPTE7YnJlYWt9YVtwPj4yXT1jO3Q6Zm9yKDs7KXtzd2l0Y2go''@;'; + put 'put ''MHwoYj0wfHM4KGwsYyxmKSkpe2Nhc2UtMTpiPTExO2JyZWFrIHQ7Y2FzZSA2MTpiPTEyO2JyZWFrIHR9aWYoMHxuYShiKSl7Yj0xNDticmVha31jPWMrKDB8YVtrPj4yXSl8MH1pZigxMT09KDB8Yikpe2Fbdz4+Ml09YyxjPTA7YnJlYWt9aWYoMTI9PSgwfGIpKWFbbT4+Ml09YztlbHNlIGlm''@;'; + put 'put ''KDE0PT0oMHxiKSl7YVttPj4yXT1jO2Rve2I9MHxzOChsLGM9YysoMHxhW2s+PjJdKXwwLGYpfXdoaWxlKDAhPSgwfG5hKGIpKSk7aWYoNjEhPSgwfGIpKXthW3c+PjJdPWMsYz0wO2JyZWFrfX1pZigoMHxjKT09KDB8YVtwPj4yXSkpe2Fbdz4+Ml09YyxjPTA7YnJlYWt9ZG97Yj0wfHM4KGws''@;'; + put 'put ''Yz1jKygwfGFbaz4+Ml0pfDAsZil9d2hpbGUoMCE9KDB8bmEoYikpKTtzd2l0Y2goMHxiKXtjYXNlIDM0OmNhc2UgMzk6YnJlYWs7ZGVmYXVsdDphW3c+PjJdPWMsYz0wO2JyZWFrIGV9YVtBPj4yXT1tPWMrKDB8YVtrPj4yXSl8MCxjPWI8PDI0Pj4yNDt0OmZvcig7Oyl7aWYoKDB8KGI9MHxz''@;'; + put 'put ''OChsLG0sZikpKT09KDB8Yykpe2I9MzA7YnJlYWt9aWYoKGIrLTQ4fDApPj4+MD45JigoLTMzJmIpLTY1fDApPj4+MD4yNSlzd2l0Y2goMHxiKXtjYXNlIDQ1OmNhc2UgNDY6Y2FzZSA5NTpicmVhaztkZWZhdWx0OmI9Mjg7YnJlYWsgdH1tPW0rKDB8YVtrPj4yXSl8MH1pZigyOD09KDB8Yikp''@;'; + put 'put ''e2Fbdz4+Ml09bSxjPTA7YnJlYWt9aWYoMzA9PSgwfGIpKXthW3c+PjJdPW0rKDB8YVtrPj4yXSksYz0xO2JyZWFrfX1lbHNlIGFbcD4+Ml09MCxjPTF9d2hpbGUoMCk7cmV0dXJuIDB8Y31mdW5jdGlvbiBzOChsLGMsZil7dmFyIHAsbSxBLHc7cmV0dXJuIGx8PTAsZnw9MCxBPWxlLGxlPWxl''@;'; + put 'put ''KzE2fDAscD1BKzh8MCxtPUEsYVsodz1BKzR8MCk+PjJdPWN8PTAsYVttPj4yXT1wLFIyWzEyNyZhW2wrNTY+PjJdXShsLHcsZixtLHArMXwwKSxsZT1BLDB8KCgwfGFbbT4+Ml0pPT0oMHxwKT8tMTowfGZlW3A+PjBdKX1mdW5jdGlvbiBuYShsKXtzd2l0Y2goMHwobHw9MCkpe2Nhc2UgOTpj''@;'; + put 'put ''YXNlIDEwOmNhc2UgMTM6Y2FzZSAzMjpsPTE7YnJlYWs7ZGVmYXVsdDpsPTB9cmV0dXJuIDB8bH1mdW5jdGlvbiBWYShsLGMpe3JldHVybiAyOD09KDB8KGN8PTApKSYwPT0oMHxhWzE2KyhsfD0wKT4+Ml0pP2w9NTk6KGFbbD4+Ml09MTgsbD0tMSksMHxsfWZ1bmN0aW9uIGUkKGwsYyxmLHAs''@;'; + put 'put ''bSl7bHw9MCxjfD0wLGZ8PTAscHw9MCxtfD0wO3ZhciBBPTAsdz0wLGI9MDtlOmRve3N3aXRjaCgwfGMpe2Nhc2UtNDpjYXNlIDE1Omw9MDticmVhaztjYXNlIDE2OmlmKDB8cTBbMTI3JmFbKEE9bSsyNHwwKT4+Ml1dKG0sZisoYVsodz1tKzY0fDApPj4yXTw8MSl8MCxwLDE0NDM5MCkpe2Fb''@;'; + put 'put ''bD4+Ml09MjQsbD0xMTticmVhayBlfWlmKDB8cTBbMTI3JmFbQT4+Ml1dKG0sZisoYVt3Pj4yXTw8MSl8MCxwLDE0NDM5Nykpe2FbbD4+Ml09MjUsbD0zMzticmVhayBlfWlmKDB8cTBbMTI3JmFbQT4+Ml1dKG0sZisoYVt3Pj4yXTw8MSl8MCxwLDE0NDQwNSkpe2FbbD4+Ml09MjYsbD0zOTti''@;'; + put 'put ''cmVhayBlfTB8cTBbMTI3JmFbQT4+Ml1dKG0sZisoYVt3Pj4yXTw8MSl8MCxwLDE0NDQxMyk/KGFbbD4+Ml09MjcsbD0xNyk6Yj0xNDticmVhaztjYXNlIDExOmw9NTU7YnJlYWs7Y2FzZSAxMzpsPTU2O2JyZWFrO2Nhc2UgMjg6bD02MDticmVhaztjYXNlIDI2OmFbbD4+Ml09MjgsbD0zO2Jy''@;'; + put 'put ''ZWFrO2RlZmF1bHQ6Yj0xNH19d2hpbGUoMCk7cmV0dXJuIDE0PT0oMHxiKSYmKGw9MHxWYShsLGMpKSwwfGx9ZnVuY3Rpb24gQjAobCl7bHw9MDt2YXIgVmUsYz0wLGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAsSz0wLHBlPTAsZ2U9MCxiZT0wLE9lPTAsTGU9''@;'; + put 'put ''MCxSZT0wLEhlPTA7VmU9bGUsbGU9bGUrMTZ8MCxLPVZlO2Rve2lmKGw+Pj4wPDI0NSl7aWYoMyYoZj0oRz0wfGFbNDc1MTldKT4+PihsPShEPWw+Pj4wPDExPzE2OmwrMTEmLTgpPj4+MykpfDApcmV0dXJuKDB8KEE9MHxhWyhtPTgrKHA9MHxhWyhmPTgrKGw9MTkwMTE2KygoYz0oMSZmXjEp''@;'; + put 'put ''K2x8MCk8PDE8PDIpfDApfDApPj4yXSl8MCk+PjJdKSk9PSgwfGwpP2FbNDc1MTldPUcmfigxPDxjKTooYVtBKzEyPj4yXT1sLGFbZj4+Ml09QSksYVtwKzQ+PjJdPTN8KEhlPWM8PDMpLGFbKEhlPXArSGUrNHwwKT4+Ml09MXxhW0hlPj4yXSxsZT1WZSwwfG07aWYoRD4+PjA+KFI9MHxhWzQ3''@;'; + put 'put ''NTIxXSk+Pj4wKXtpZigwfGYpcmV0dXJuIGM9KChjPWY8PGwmKChjPTI8PGwpfDAtYykpJjAtYyktMXwwLCgwfChmPTB8YVsoYj04KyhBPTB8YVsobD04KyhjPTE5MDExNisoKHA9KChmPShjPj4+PWI9Yz4+PjEyJjE2KT4+PjUmOCl8YnwoQT0oYz4+Pj1mKT4+PjImNCl8KGw9KGM+Pj49QSk+''@;'; + put 'put ''Pj4xJjIpfChwPShjPj4+PWwpPj4+MSYxKSkrKGM+Pj5wKXwwKTw8MTw8Mil8MCl8MCk+PjJdKXwwKT4+Ml0pKT09KDB8Yyk/YVs0NzUxOV09bD1HJn4oMTw8cCk6KGFbZisxMj4+Ml09YyxhW2w+PjJdPWYsbD1HKSx3PShIZT1wPDwzKS1EfDAsYVtBKzQ+PjJdPTN8RCxhWzQrKG09QStEfDAp''@;'; + put 'put ''Pj4yXT0xfHcsYVtBK0hlPj4yXT13LDB8UiYmKHA9MHxhWzQ3NTI0XSxmPTE5MDExNisoKGM9Uj4+PjMpPDwxPDwyKXwwLGwmKGM9MTw8Yyk/Yz0wfGFbKGw9Zis4fDApPj4yXTooYVs0NzUxOV09bHxjLGM9ZixsPWYrOHwwKSxhW2w+PjJdPXAsYVtjKzEyPj4yXT1wLGFbcCs4Pj4yXT1jLGFb''@;'; + put 'put ''cCsxMj4+Ml09ZiksYVs0NzUyMV09dyxhWzQ3NTI0XT1tLGxlPVZlLDB8YjtpZihrPTB8YVs0NzUyMF0pe2lmKGY9KGsmMC1rKS0xfDAsZj0oLTgmYVs0KyhsPTB8YVsxOTAzODArKCgodz0oZj4+Pj1iPWY+Pj4xMiYxNik+Pj41JjgpfGJ8KE09KGY+Pj49dyk+Pj4yJjQpfChwPShmPj4+PU0p''@;'; + put 'put ''Pj4+MSYyKXwobD0oZj4+Pj1wKT4+PjEmMSkpKyhmPj4+bCk8PDIpPj4yXSk+PjJdKS1EfDAscD0wfGFbbCsxNisoKDA9PSgwfGFbbCsxNj4+Ml0pJjEpPDwyKT4+Ml0pe2Rve2Y9KE09KGI9KC04JmFbcCs0Pj4yXSktRHwwKT4+PjA8Zj4+PjApP2I6ZixsPU0/cDpsLHA9MHxhW3ArMTYrKCgw''@;'; + put 'put ''PT0oMHxhW3ArMTY+PjJdKSYxKTw8Mik+PjJdfXdoaWxlKDAhPSgwfHApKTtNPWwsdz1mfWVsc2UgTT1sLHc9ZjtpZigoYj1NK0R8MCk+Pj4wPk0+Pj4wKXttPTB8YVtNKzI0Pj4yXSxjPTB8YVtNKzEyPj4yXTtkb3tpZigoMHxjKT09KDB8TSkpe2lmKCEoYz0wfGFbKGw9TSsyMHwwKT4+Ml0p''@;'; + put 'put ''JiYhKGM9MHxhWyhsPU0rMTZ8MCk+PjJdKSl7Zj0wO2JyZWFrfWZvcig7OylpZigwfChwPTB8YVsoZj1jKzIwfDApPj4yXSkpYz1wLGw9ZjtlbHNle2lmKCEocD0wfGFbKGY9YysxNnwwKT4+Ml0pKWJyZWFrO2M9cCxsPWZ9YVtsPj4yXT0wLGY9Y31lbHNlIGFbMTIrKGY9MHxhW00rOD4+Ml0p''@;'; + put 'put ''Pj4yXT1jLGFbYys4Pj4yXT1mLGY9Y313aGlsZSgwKTtkb3tpZigwfG0pe2lmKCgwfE0pPT0oMHxhWyhsPTE5MDM4MCsoKGM9MHxhW00rMjg+PjJdKTw8Mil8MCk+PjJdKSl7aWYoYVtsPj4yXT1mLCFmKXthWzQ3NTIwXT1rJn4oMTw8Yyk7YnJlYWt9fWVsc2UgaWYoYVttKzE2KygoKDB8YVtt''@;'; + put 'put ''KzE2Pj4yXSkhPSgwfE0pJjEpPDwyKT4+Ml09ZiwhZilicmVhazthW2YrMjQ+PjJdPW0sMHwoYz0wfGFbTSsxNj4+Ml0pJiYoYVtmKzE2Pj4yXT1jLGFbYysyND4+Ml09ZiksMHwoYz0wfGFbTSsyMD4+Ml0pJiYoYVtmKzIwPj4yXT1jLGFbYysyND4+Ml09Zil9fXdoaWxlKDApO3JldHVybiB3''@;'; + put 'put ''Pj4+MDwxNj8oYVtNKzQ+PjJdPTN8KEhlPXcrRHwwKSxhWyhIZT1NK0hlKzR8MCk+PjJdPTF8YVtIZT4+Ml0pOihhW00rND4+Ml09M3xELGFbYis0Pj4yXT0xfHcsYVtiK3c+PjJdPXcsMHxSJiYocD0wfGFbNDc1MjRdLGY9MTkwMTE2KygoYz1SPj4+Myk8PDE8PDIpfDAsRyYoYz0xPDxjKT9j''@;'; + put 'put ''PTB8YVsobD1mKzh8MCk+PjJdOihhWzQ3NTE5XT1HfGMsYz1mLGw9Zis4fDApLGFbbD4+Ml09cCxhW2MrMTI+PjJdPXAsYVtwKzg+PjJdPWMsYVtwKzEyPj4yXT1mKSxhWzQ3NTIxXT13LGFbNDc1MjRdPWIpLGxlPVZlLDB8TSs4fVI9RH1lbHNlIFI9RH1lbHNlIFI9RH1lbHNlIGlmKGw+Pj4w''@;'; + put 'put ''PD00Mjk0OTY3MjMxKWlmKEQ9LTgmKGw9bCsxMXwwKSxNPTB8YVs0NzUyMF0pe3A9MC1EfDAsaz0obD4+Pj04KT9EPj4+MD4xNjc3NzIxNT8zMTpEPj4+KDcrKGs9MTQtKChSPSg1MjAxOTIrKFJlPWw8PChHPShsKzEwNDgzMjB8MCk+Pj4xNiY4KSl8MCk+Pj4xNiY0KXxHfChrPSgyNDU3NjAr''@;'; + put 'put ''KFJlPDw9Uil8MCk+Pj4xNiYyKSkrKFJlPDxrPj4+MTUpfDApfDApJjF8azw8MTowLGY9MHxhWzE5MDM4MCsoazw8Mik+PjJdO2U6ZG97aWYoZilmb3IobD0wLGI9Zix3PUQ8PCgzMT09KDB8ayk/MDoyNS0oaz4+PjEpfDApLGY9MDs7KXtpZigobT0oLTgmYVtiKzQ+PjJdKS1EfDApPj4+MDxw''@;'; + put 'put ''Pj4+MCl7aWYoIW0pe3A9MCxmPWIsbD1iLFJlPTYxO2JyZWFrIGV9bD1iLHA9bX1pZihmPTA9PSgwfChtPTB8YVtiKzIwPj4yXSkpfCgwfG0pPT0oMHwoYj0wfGFbYisxNisodz4+PjMxPDwyKT4+Ml0pKT9mOm0sbT0wPT0oMHxiKSl7UmU9NTc7YnJlYWt9dzw8PTEmKDFebSl9ZWxzZSBmPTAs''@;'; + put 'put ''bD0wLFJlPTU3fXdoaWxlKDApO2lmKDU3PT0oMHxSZSkpe2lmKDA9PSgwfGYpJjA9PSgwfGwpKXtpZighKGw9TSYoKGw9Mjw8ayl8MC1sKSkpe1I9RDticmVha31HPShsJjAtbCktMXwwLGw9MCxmPTB8YVsxOTAzODArKCgodz0oRz4+Pj1iPUc+Pj4xMiYxNik+Pj41JjgpfGJ8KGs9KEc+Pj49''@;'; + put 'put ''dyk+Pj4yJjQpfChSPShHPj4+PWspPj4+MSYyKXwoZj0oRz4+Pj1SKT4+PjEmMSkpKyhHPj4+Zik8PDIpPj4yXX1mP1JlPTYxOihiPWwsdz1wKX1pZig2MT09KDB8UmUpKWZvcig7Oyl7aWYoUmU9MCxwPShHPShSPSgtOCZhW2YrND4+Ml0pLUR8MCk+Pj4wPHA+Pj4wKT9SOnAsbD1HP2Y6bCwh''@;'; + put 'put ''KGY9MHxhW2YrMTYrKCgwPT0oMHxhW2YrMTY+PjJdKSYxKTw8Mik+PjJdKSl7Yj1sLHc9cDticmVha31SZT02MX1pZigwIT0oMHxiKSYmdz4+PjA8KCgwfGFbNDc1MjFdKS1EfDApPj4+MCl7aWYoKEE9YitEfDApPj4+MDw9Yj4+PjApcmV0dXJuIGxlPVZlLDA7bT0wfGFbYisyND4+Ml0sYz0w''@;'; + put 'put ''fGFbYisxMj4+Ml07ZG97aWYoKDB8Yyk9PSgwfGIpKXtpZighKGM9MHxhWyhsPWIrMjB8MCk+PjJdKSYmIShjPTB8YVsobD1iKzE2fDApPj4yXSkpe2M9MDticmVha31mb3IoOzspaWYoMHwocD0wfGFbKGY9YysyMHwwKT4+Ml0pKWM9cCxsPWY7ZWxzZXtpZighKHA9MHxhWyhmPWMrMTZ8MCk+''@;'; + put 'put ''PjJdKSlicmVhaztjPXAsbD1mfWFbbD4+Ml09MH1lbHNlIGFbMTIrKEhlPTB8YVtiKzg+PjJdKT4+Ml09YyxhW2MrOD4+Ml09SGV9d2hpbGUoMCk7ZG97aWYobSl7aWYoKDB8Yik9PSgwfGFbKGY9MTkwMzgwKygobD0wfGFbYisyOD4+Ml0pPDwyKXwwKT4+Ml0pKXtpZihhW2Y+PjJdPWMsIWMp''@;'; + put 'put ''e2FbNDc1MjBdPXA9TSZ+KDE8PGwpO2JyZWFrfX1lbHNlIGlmKGFbbSsxNisoKCgwfGFbbSsxNj4+Ml0pIT0oMHxiKSYxKTw8Mik+PjJdPWMsIWMpe3A9TTticmVha31hW2MrMjQ+PjJdPW0sMHwobD0wfGFbYisxNj4+Ml0pJiYoYVtjKzE2Pj4yXT1sLGFbbCsyND4+Ml09YyksKGw9MHxhW2Ir''@;'; + put 'put ''MjA+PjJdKSYmKGFbYysyMD4+Ml09bCxhW2wrMjQ+PjJdPWMpLHA9TX1lbHNlIHA9TX13aGlsZSgwKTtkb3tpZih3Pj4+MD49MTYpe2lmKGFbYis0Pj4yXT0zfEQsYVtBKzQ+PjJdPTF8dyxhW0Erdz4+Ml09dyxjPXc+Pj4zLHc+Pj4wPDI1Nil7Zj0xOTAxMTYrKGM8PDE8PDIpfDAsKGw9MHxh''@;'; + put 'put ''WzQ3NTE5XSkmKGM9MTw8Yyk/Yz0wfGFbKGw9Zis4fDApPj4yXTooYVs0NzUxOV09bHxjLGM9ZixsPWYrOHwwKSxhW2w+PjJdPUEsYVtjKzEyPj4yXT1BLGFbQSs4Pj4yXT1jLGFbQSsxMj4+Ml09ZjticmVha31pZihmPTE5MDM4MCsoKGM9KGM9dz4+PjgpP3c+Pj4wPjE2Nzc3MjE1PzMxOnc+''@;'; + put 'put ''Pj4oNysoYz0xNC0oKExlPSg1MjAxOTIrKEhlPWM8PChSZT0oYysxMDQ4MzIwfDApPj4+MTYmOCkpfDApPj4+MTYmNCl8UmV8KGM9KDI0NTc2MCsoSGU8PD1MZSl8MCk+Pj4xNiYyKSkrKEhlPDxjPj4+MTUpfDApfDApJjF8Yzw8MTowKTw8Mil8MCxhW0ErMjg+PjJdPWMsYVs0KyhsPUErMTZ8''@;'; + put 'put ''MCk+PjJdPTAsYVtsPj4yXT0wLCEocCYobD0xPDxjKSkpe2FbNDc1MjBdPXB8bCxhW2Y+PjJdPUEsYVtBKzI0Pj4yXT1mLGFbQSsxMj4+Ml09QSxhW0ErOD4+Ml09QTticmVha31mb3IobD13PDwoMzE9PSgwfGMpPzA6MjUtKGM+Pj4xKXwwKSxmPTB8YVtmPj4yXTs7KXtpZigoLTgmYVtmKzQ+''@;'; + put 'put ''PjJdfDApPT0oMHx3KSl7UmU9OTc7YnJlYWt9aWYoIShjPTB8YVsocD1mKzE2KyhsPj4+MzE8PDIpfDApPj4yXSkpe1JlPTk2O2JyZWFrfWw8PD0xLGY9Y31pZig5Nj09KDB8UmUpKXthW3A+PjJdPUEsYVtBKzI0Pj4yXT1mLGFbQSsxMj4+Ml09QSxhW0ErOD4+Ml09QTticmVha31pZig5Nz09''@;'; + put 'put ''KDB8UmUpKXthWzEyKyhIZT0wfGFbKFJlPWYrOHwwKT4+Ml0pPj4yXT1BLGFbUmU+PjJdPUEsYVtBKzg+PjJdPUhlLGFbQSsxMj4+Ml09ZixhW0ErMjQ+PjJdPTA7YnJlYWt9fWVsc2UgYVtiKzQ+PjJdPTN8KEhlPXcrRHwwKSxhWyhIZT1iK0hlKzR8MCk+PjJdPTF8YVtIZT4+Ml19d2hpbGUo''@;'; + put 'put ''MCk7cmV0dXJuIGxlPVZlLDB8Yis4fVI9RH1lbHNlIFI9RDtlbHNlIFI9LTF9d2hpbGUoMCk7aWYoKGY9MHxhWzQ3NTIxXSk+Pj4wPj1SPj4+MClyZXR1cm4gbD0wfGFbNDc1MjRdLChjPWYtUnwwKT4+PjA+MTU/KGFbNDc1MjRdPUhlPWwrUnwwLGFbNDc1MjFdPWMsYVtIZSs0Pj4yXT0xfGMs''@;'; + put 'put ''YVtsK2Y+PjJdPWMsYVtsKzQ+PjJdPTN8Uik6KGFbNDc1MjFdPTAsYVs0NzUyNF09MCxhW2wrND4+Ml09M3xmLGFbKEhlPWwrZis0fDApPj4yXT0xfGFbSGU+PjJdKSxsZT1WZSwwfGwrODtpZigoYj0wfGFbNDc1MjJdKT4+PjA+Uj4+PjApcmV0dXJuIGFbNDc1MjJdPUxlPWItUnwwLGFbNDc1''@;'; + put 'put ''MjVdPVJlPShIZT0wfGFbNDc1MjVdKStSfDAsYVtSZSs0Pj4yXT0xfExlLGFbSGUrND4+Ml09M3xSLGxlPVZlLDB8SGUrODtpZigwfGFbNDc2MzddP2w9MHxhWzQ3NjM5XTooYVs0NzYzOV09NDA5NixhWzQ3NjM4XT00MDk2LGFbNDc2NDBdPS0xLGFbNDc2NDFdPS0xLGFbNDc2NDJdPTAsYVs0''@;'; + put 'put ''NzYzMF09MCxhWzQ3NjM3XT0tMTYmS14xNDMxNjU1NzY4LGw9NDA5Niksaz1SKzQ4fDAsKEQ9KHc9bCsoTT1SKzQ3fDApfDApJihtPTAtbHwwKSk+Pj4wPD1SPj4+MHx8MHwobD0wfGFbNDc2MjldKSYmKEs9KEc9MHxhWzQ3NjI3XSkrRHwwKT4+PjA8PUc+Pj4wfEs+Pj4wPmw+Pj4wKXJldHVy''@;'; + put 'put ''biBsZT1WZSwwO2U6ZG97aWYoNCZhWzQ3NjMwXSljPTAsUmU9MTMzO2Vsc2V7Zj0wfGFbNDc1MjVdO3Q6ZG97aWYoZil7Zm9yKHA9MTkwNTI0OyEoKGw9MHxhW3A+PjJdKT4+PjA8PWY+Pj4wJiYoYmU9cCs0fDAsKGwrKDB8YVtiZT4+Ml0pfDApPj4+MD5mPj4+MCkpOyl7aWYoIShsPTB8YVtw''@;'; + put 'put ''Kzg+PjJdKSl7UmU9MTE4O2JyZWFrIHR9cD1sfWlmKChjPXctYiZtKT4+PjA8MjE0NzQ4MzY0NylpZigoMHwobD0wfHkyKDB8YykpKT09KCgwfGFbcD4+Ml0pKygwfGFbYmU+PjJdKXwwKSl7aWYoLTEhPSgwfGwpKXt3PWMsQT1sLFJlPTEzNTticmVhayBlfX1lbHNlIHA9bCxSZT0xMjY7ZWxz''@;'; + put 'put ''ZSBjPTB9ZWxzZSBSZT0xMTh9d2hpbGUoMCk7ZG97aWYoMTE4PT0oMHxSZSkpaWYoLTEhPSgwfChmPTB8eTIoMCkpKSYmKGdlPShjPSgwPT0oKGdlPShwZT0wfGFbNDc2MzhdKS0xfDApJihjPWYpfDApPzA6KGdlK2MmMC1wZSktY3wwKStEfDApKyhwZT0wfGFbNDc2MjddKXwwLGM+Pj4wPlI+''@;'; + put 'put ''Pj4wJmM+Pj4wPDIxNDc0ODM2NDcpKXtpZigwfChiZT0wfGFbNDc2MjldKSYmZ2U+Pj4wPD1wZT4+PjB8Z2U+Pj4wPmJlPj4+MCl7Yz0wO2JyZWFrfWlmKCgwfChsPTB8eTIoMHxjKSkpPT0oMHxmKSl7dz1jLEE9ZixSZT0xMzU7YnJlYWsgZX1wPWwsUmU9MTI2fWVsc2UgYz0wfXdoaWxlKDAp''@;'; + put 'put ''O2Rve2lmKDEyNj09KDB8UmUpKXtpZihmPTAtY3wwLCEoaz4+PjA+Yz4+PjAmYz4+PjA8MjE0NzQ4MzY0NyYtMSE9KDB8cCkpKXtpZigtMT09KDB8cCkpe2M9MDticmVha313PWMsQT1wLFJlPTEzNTticmVhayBlfWlmKChsPU0tYysobD0wfGFbNDc2MzldKSYwLWwpPj4+MD49MjE0NzQ4MzY0''@;'; + put 'put ''Nyl7dz1jLEE9cCxSZT0xMzU7YnJlYWsgZX1pZigtMT09KDB8eTIoMHxsKSkpe3kyKDB8ZiksYz0wO2JyZWFrfXc9bCtjfDAsQT1wLFJlPTEzNTticmVhayBlfX13aGlsZSgwKTthWzQ3NjMwXT00fGFbNDc2MzBdLFJlPTEzM319d2hpbGUoMCk7aWYoMTMzPT0oMHxSZSkmJkQ+Pj4wPDIxNDc0''@;'; + put 'put ''ODM2NDcmJiEoLTE9PSgwfChBPTB8eTIoMHxEKSkpfDFeKExlPShPZT0oYmU9MHx5MigwKSktQXwwKT4+PjA+KFIrNDB8MCk+Pj4wKXxBPj4+MDxiZT4+PjAmLTEhPSgwfEEpJi0xIT0oMHxiZSleMSkmJih3PUxlP09lOmMsUmU9MTM1KSwxMzU9PSgwfFJlKSl7YVs0NzYyN109Yz0oMHxhWzQ3''@;'; + put 'put ''NjI3XSkrd3wwLGM+Pj4wPigwfGFbNDc2MjhdKT4+PjAmJihhWzQ3NjI4XT1jKSxrPTB8YVs0NzUyNV07ZG97aWYoayl7Zm9yKGM9MTkwNTI0Ozspe2lmKCgwfEEpPT0oKGw9MHxhW2M+PjJdKSsocD0wfGFbKGY9Yys0fDApPj4yXSl8MCkpe1JlPTE0MzticmVha31pZighKG09MHxhW2MrOD4+''@;'; + put 'put ''Ml0pKWJyZWFrO2M9bX1pZigxNDM9PSgwfFJlKSYmMD09KDgmYVtjKzEyPj4yXXwwKSYmQT4+PjA+az4+PjAmbD4+PjA8PWs+Pj4wKXthW2Y+PjJdPXArdyxSZT1rKyhMZT0wPT0oNyYoTGU9ays4fDApfDApPzA6MC1MZSY3KXwwLExlPShIZT0oMHxhWzQ3NTIyXSkrd3wwKS1MZXwwLGFbNDc1''@;'; + put 'put ''MjVdPVJlLGFbNDc1MjJdPUxlLGFbUmUrND4+Ml09MXxMZSxhW2srSGUrND4+Ml09NDAsYVs0NzUyNl09YVs0NzY0MV07YnJlYWt9Zm9yKEE+Pj4wPCgwfGFbNDc1MjNdKT4+PjAmJihhWzQ3NTIzXT1BKSxsPUErd3wwLGM9MTkwNTI0Ozspe2lmKCgwfGFbYz4+Ml0pPT0oMHxsKSl7UmU9MTUx''@;'; + put 'put ''O2JyZWFrfWlmKCEoYz0wfGFbYys4Pj4yXSkpe2w9MTkwNTI0O2JyZWFrfX1pZigxNTE9PSgwfFJlKSl7aWYoISg4JmFbYysxMj4+Ml0pKXthW2M+PjJdPUEsYVsoRD1jKzR8MCk+PjJdPSgwfGFbRD4+Ml0pK3csTT0oRD1BKygwPT0oNyYoRD1BKzh8MCl8MCk/MDowLUQmNyl8MCkrUnwwLGI9''@;'; + put 'put ''KGM9bCsoMD09KDcmKGM9bCs4fDApfDApPzA6MC1jJjcpfDApLUQtUnwwLGFbRCs0Pj4yXT0zfFI7ZG97aWYoKDB8aykhPSgwfGMpKXtpZigoMHxhWzQ3NTI0XSk9PSgwfGMpKXthWzQ3NTIxXT1IZT0oMHxhWzQ3NTIxXSkrYnwwLGFbNDc1MjRdPU0sYVtNKzQ+PjJdPTF8SGUsYVtNK0hlPj4y''@;'; + put 'put ''XT1IZTticmVha31pZigxPT0oMyYobD0wfGFbYys0Pj4yXSl8MCkpe3c9LTgmbCxwPWw+Pj4zO2U6ZG97aWYobD4+PjA8MjU2KXtpZigoMHwoZj0wfGFbYysxMj4+Ml0pKT09KDB8KGw9MHxhW2MrOD4+Ml0pKSl7YVs0NzUxOV09YVs0NzUxOV0mfigxPDxwKTticmVha31hW2wrMTI+PjJdPWYs''@;'; + put 'put ''YVtmKzg+PjJdPWw7YnJlYWt9QT0wfGFbYysyND4+Ml0sbD0wfGFbYysxMj4+Ml07ZG97aWYoKDB8bCk9PSgwfGMpKXtpZighKGw9MHxhWyhmPTQrKHA9YysxNnwwKXwwKT4+Ml0pKXtpZighKGw9MHxhW3A+PjJdKSl7bD0wO2JyZWFrfWY9cH1mb3IoOzspaWYoMHwobT0wfGFbKHA9bCsyMHww''@;'; + put 'put ''KT4+Ml0pKWw9bSxmPXA7ZWxzZXtpZighKG09MHxhWyhwPWwrMTZ8MCk+PjJdKSlicmVhaztsPW0sZj1wfWFbZj4+Ml09MH1lbHNlIGFbMTIrKEhlPTB8YVtjKzg+PjJdKT4+Ml09bCxhW2wrOD4+Ml09SGV9d2hpbGUoMCk7aWYoIUEpYnJlYWs7cD0xOTAzODArKChmPTB8YVtjKzI4Pj4yXSk8''@;'; + put 'put ''PDIpfDA7ZG97aWYoKDB8YVtwPj4yXSk9PSgwfGMpKXtpZihhW3A+PjJdPWwsMHxsKWJyZWFrO2FbNDc1MjBdPWFbNDc1MjBdJn4oMTw8Zik7YnJlYWsgZX1pZihhW0ErMTYrKCgoMHxhW0ErMTY+PjJdKSE9KDB8YykmMSk8PDIpPj4yXT1sLCFsKWJyZWFrIGV9d2hpbGUoMCk7aWYoYVtsKzI0''@;'; + put 'put ''Pj4yXT1BLDB8KHA9MHxhWyhmPWMrMTZ8MCk+PjJdKSYmKGFbbCsxNj4+Ml09cCxhW3ArMjQ+PjJdPWwpLCEoZj0wfGFbZis0Pj4yXSkpYnJlYWs7YVtsKzIwPj4yXT1mLGFbZisyND4+Ml09bH13aGlsZSgwKTtjPWMrd3wwLG09dytifDB9ZWxzZSBtPWI7aWYoYVsoYz1jKzR8MCk+PjJdPS0y''@;'; + put 'put ''JmFbYz4+Ml0sYVtNKzQ+PjJdPTF8bSxhW00rbT4+Ml09bSxjPW0+Pj4zLG0+Pj4wPDI1Nil7Zj0xOTAxMTYrKGM8PDE8PDIpfDAsKGw9MHxhWzQ3NTE5XSkmKGM9MTw8Yyk/Yz0wfGFbKGw9Zis4fDApPj4yXTooYVs0NzUxOV09bHxjLGM9ZixsPWYrOHwwKSxhW2w+PjJdPU0sYVtjKzEyPj4y''@;'; + put 'put ''XT1NLGFbTSs4Pj4yXT1jLGFbTSsxMj4+Ml09ZjticmVha31jPW0+Pj44O2Rve2lmKGMpe2lmKG0+Pj4wPjE2Nzc3MjE1KXtjPTMxO2JyZWFrfWM9bT4+Pig3KyhjPTE0LSgoTGU9KDUyMDE5MisoSGU9Yzw8KFJlPShjKzEwNDgzMjB8MCk+Pj4xNiY4KSl8MCk+Pj4xNiY0KXxSZXwoYz0oMjQ1''@;'; + put 'put ''NzYwKyhIZTw8PUxlKXwwKT4+PjE2JjIpKSsoSGU8PGM+Pj4xNSl8MCl8MCkmMXxjPDwxfWVsc2UgYz0wfXdoaWxlKDApO2lmKHA9MTkwMzgwKyhjPDwyKXwwLGFbTSsyOD4+Ml09YyxhWzQrKGw9TSsxNnwwKT4+Ml09MCxhW2w+PjJdPTAsISgobD0wfGFbNDc1MjBdKSYoZj0xPDxjKSkpe2Fb''@;'; + put 'put ''NDc1MjBdPWx8ZixhW3A+PjJdPU0sYVtNKzI0Pj4yXT1wLGFbTSsxMj4+Ml09TSxhW00rOD4+Ml09TTticmVha31mb3IobD1tPDwoMzE9PSgwfGMpPzA6MjUtKGM+Pj4xKXwwKSxmPTB8YVtwPj4yXTs7KXtpZigoLTgmYVtmKzQ+PjJdfDApPT0oMHxtKSl7UmU9MTkyO2JyZWFrfWlmKCEoYz0w''@;'; + put 'put ''fGFbKHA9ZisxNisobD4+PjMxPDwyKXwwKT4+Ml0pKXtSZT0xOTE7YnJlYWt9bDw8PTEsZj1jfWlmKDE5MT09KDB8UmUpKXthW3A+PjJdPU0sYVtNKzI0Pj4yXT1mLGFbTSsxMj4+Ml09TSxhW00rOD4+Ml09TTticmVha31pZigxOTI9PSgwfFJlKSl7YVsxMisoSGU9MHxhWyhSZT1mKzh8MCk+''@;'; + put 'put ''PjJdKT4+Ml09TSxhW1JlPj4yXT1NLGFbTSs4Pj4yXT1IZSxhW00rMTI+PjJdPWYsYVtNKzI0Pj4yXT0wO2JyZWFrfX1lbHNlIGFbNDc1MjJdPUhlPSgwfGFbNDc1MjJdKStifDAsYVs0NzUyNV09TSxhW00rND4+Ml09MXxIZX13aGlsZSgwKTtyZXR1cm4gbGU9VmUsMHxEKzh9bD0xOTA1MjR9''@;'; + put 'put ''Zm9yKDshKChjPTB8YVtsPj4yXSk+Pj4wPD1rPj4+MCYmKEhlPWMrKDB8YVtsKzQ+PjJdKXwwLEhlPj4+MD5rPj4+MCkpOylsPTB8YVtsKzg+PjJdO2M9KGw9KGw9KG09SGUrLTQ3fDApKygwPT0oNyYobD1tKzh8MCl8MCk/MDowLWwmNyl8MCk+Pj4wPChtPWsrMTZ8MCk+Pj4wP2s6bCkrOHww''@;'; + put 'put ''LFJlPUErKExlPTA9PSg3JihMZT1BKzh8MCl8MCk/MDowLUxlJjcpfDAsTGU9KGY9dystNDB8MCktTGV8MCxhWzQ3NTI1XT1SZSxhWzQ3NTIyXT1MZSxhW1JlKzQ+PjJdPTF8TGUsYVtBK2YrND4+Ml09NDAsYVs0NzUyNl09YVs0NzY0MV0sYVsoZj1sKzR8MCk+PjJdPTI3LGFbYz4+Ml09YVs0''@;'; + put 'put ''NzYzMV0sYVtjKzQ+PjJdPWFbNDc2MzJdLGFbYys4Pj4yXT1hWzQ3NjMzXSxhW2MrMTI+PjJdPWFbNDc2MzRdLGFbNDc2MzFdPUEsYVs0NzYzMl09dyxhWzQ3NjM0XT0wLGFbNDc2MzNdPWMsYz1sKzI0fDA7ZG97UmU9YyxhWyhjPWMrNHwwKT4+Ml09N313aGlsZSgoUmUrOHwwKT4+PjA8SGU+''@;'; + put 'put ''Pj4wKTtpZigoMHxsKSE9KDB8aykpe2lmKEE9bC1rfDAsYVtmPj4yXT0tMiZhW2Y+PjJdLGFbays0Pj4yXT0xfEEsYVtsPj4yXT1BLGM9QT4+PjMsQT4+PjA8MjU2KXtmPTE5MDExNisoYzw8MTw8Mil8MCwobD0wfGFbNDc1MTldKSYoYz0xPDxjKT9jPTB8YVsobD1mKzh8MCk+PjJdOihhWzQ3''@;'; + put 'put ''NTE5XT1sfGMsYz1mLGw9Zis4fDApLGFbbD4+Ml09ayxhW2MrMTI+PjJdPWssYVtrKzg+PjJdPWMsYVtrKzEyPj4yXT1mO2JyZWFrfWlmKHA9MTkwMzgwKygoZj0oYz1BPj4+OCk/QT4+PjA+MTY3NzcyMTU/MzE6QT4+Pig3KyhmPTE0LSgoTGU9KDUyMDE5MisoSGU9Yzw8KFJlPShjKzEwNDgz''@;'; + put 'put ''MjB8MCk+Pj4xNiY4KSl8MCk+Pj4xNiY0KXxSZXwoZj0oMjQ1NzYwKyhIZTw8PUxlKXwwKT4+PjE2JjIpKSsoSGU8PGY+Pj4xNSl8MCl8MCkmMXxmPDwxOjApPDwyKXwwLGFbaysyOD4+Ml09ZixhW2srMjA+PjJdPTAsYVttPj4yXT0wLCEoKGM9MHxhWzQ3NTIwXSkmKGw9MTw8ZikpKXthWzQ3''@;'; + put 'put ''NTIwXT1jfGwsYVtwPj4yXT1rLGFbaysyND4+Ml09cCxhW2srMTI+PjJdPWssYVtrKzg+PjJdPWs7YnJlYWt9Zm9yKGw9QTw8KDMxPT0oMHxmKT8wOjI1LShmPj4+MSl8MCksZj0wfGFbcD4+Ml07Oyl7aWYoKC04JmFbZis0Pj4yXXwwKT09KDB8QSkpe1JlPTIxMzticmVha31pZighKGM9MHxh''@;'; + put 'put ''WyhwPWYrMTYrKGw+Pj4zMTw8Mil8MCk+PjJdKSl7UmU9MjEyO2JyZWFrfWw8PD0xLGY9Y31pZigyMTI9PSgwfFJlKSl7YVtwPj4yXT1rLGFbaysyND4+Ml09ZixhW2srMTI+PjJdPWssYVtrKzg+PjJdPWs7YnJlYWt9aWYoMjEzPT0oMHxSZSkpe2FbMTIrKEhlPTB8YVsoUmU9Zis4fDApPj4y''@;'; + put 'put ''XSk+PjJdPWssYVtSZT4+Ml09ayxhW2srOD4+Ml09SGUsYVtrKzEyPj4yXT1mLGFbaysyND4+Ml09MDticmVha319fWVsc2UgMD09KDB8KEhlPTB8YVs0NzUyM10pKXxBPj4+MDxIZT4+PjAmJihhWzQ3NTIzXT1BKSxhWzQ3NjMxXT1BLGFbNDc2MzJdPXcsYVs0NzYzNF09MCxhWzQ3NTI4XT1h''@;'; + put 'put ''WzQ3NjM3XSxhWzQ3NTI3XT0tMSxhWzQ3NTMyXT0xOTAxMTYsYVs0NzUzMV09MTkwMTE2LGFbNDc1MzRdPTE5MDEyNCxhWzQ3NTMzXT0xOTAxMjQsYVs0NzUzNl09MTkwMTMyLGFbNDc1MzVdPTE5MDEzMixhWzQ3NTM4XT0xOTAxNDAsYVs0NzUzN109MTkwMTQwLGFbNDc1NDBdPTE5MDE0OCxh''@;'; + put 'put ''WzQ3NTM5XT0xOTAxNDgsYVs0NzU0Ml09MTkwMTU2LGFbNDc1NDFdPTE5MDE1NixhWzQ3NTQ0XT0xOTAxNjQsYVs0NzU0M109MTkwMTY0LGFbNDc1NDZdPTE5MDE3MixhWzQ3NTQ1XT0xOTAxNzIsYVs0NzU0OF09MTkwMTgwLGFbNDc1NDddPTE5MDE4MCxhWzQ3NTUwXT0xOTAxODgsYVs0NzU0''@;'; + put 'put ''OV09MTkwMTg4LGFbNDc1NTJdPTE5MDE5NixhWzQ3NTUxXT0xOTAxOTYsYVs0NzU1NF09MTkwMjA0LGFbNDc1NTNdPTE5MDIwNCxhWzQ3NTU2XT0xOTAyMTIsYVs0NzU1NV09MTkwMjEyLGFbNDc1NThdPTE5MDIyMCxhWzQ3NTU3XT0xOTAyMjAsYVs0NzU2MF09MTkwMjI4LGFbNDc1NTldPTE5''@;'; + put 'put ''MDIyOCxhWzQ3NTYyXT0xOTAyMzYsYVs0NzU2MV09MTkwMjM2LGFbNDc1NjRdPTE5MDI0NCxhWzQ3NTYzXT0xOTAyNDQsYVs0NzU2Nl09MTkwMjUyLGFbNDc1NjVdPTE5MDI1MixhWzQ3NTY4XT0xOTAyNjAsYVs0NzU2N109MTkwMjYwLGFbNDc1NzBdPTE5MDI2OCxhWzQ3NTY5XT0xOTAyNjgs''@;'; + put 'put ''YVs0NzU3Ml09MTkwMjc2LGFbNDc1NzFdPTE5MDI3NixhWzQ3NTc0XT0xOTAyODQsYVs0NzU3M109MTkwMjg0LGFbNDc1NzZdPTE5MDI5MixhWzQ3NTc1XT0xOTAyOTIsYVs0NzU3OF09MTkwMzAwLGFbNDc1NzddPTE5MDMwMCxhWzQ3NTgwXT0xOTAzMDgsYVs0NzU3OV09MTkwMzA4LGFbNDc1''@;'; + put 'put ''ODJdPTE5MDMxNixhWzQ3NTgxXT0xOTAzMTYsYVs0NzU4NF09MTkwMzI0LGFbNDc1ODNdPTE5MDMyNCxhWzQ3NTg2XT0xOTAzMzIsYVs0NzU4NV09MTkwMzMyLGFbNDc1ODhdPTE5MDM0MCxhWzQ3NTg3XT0xOTAzNDAsYVs0NzU5MF09MTkwMzQ4LGFbNDc1ODldPTE5MDM0OCxhWzQ3NTkyXT0x''@;'; + put 'put ''OTAzNTYsYVs0NzU5MV09MTkwMzU2LGFbNDc1OTRdPTE5MDM2NCxhWzQ3NTkzXT0xOTAzNjQsUmU9QSsoTGU9MD09KDcmKExlPUErOHwwKXwwKT8wOjAtTGUmNyl8MCxMZT0oSGU9dystNDB8MCktTGV8MCxhWzQ3NTI1XT1SZSxhWzQ3NTIyXT1MZSxhW1JlKzQ+PjJdPTF8TGUsYVtBK0hlKzQ+''@;'; + put 'put ''PjJdPTQwLGFbNDc1MjZdPWFbNDc2NDFdfXdoaWxlKDApO2lmKChjPTB8YVs0NzUyMl0pPj4+MD5SPj4+MClyZXR1cm4gYVs0NzUyMl09TGU9Yy1SfDAsYVs0NzUyNV09UmU9KEhlPTB8YVs0NzUyNV0pK1J8MCxhW1JlKzQ+PjJdPTF8TGUsYVtIZSs0Pj4yXT0zfFIsbGU9VmUsMHxIZSs4fXJl''@;'; + put 'put ''dHVybiBhWzQ3NjQzXT0xMixsZT1WZSwwfWZ1bmN0aW9uIEZ0KGwpe3ZhciBjPTAsZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wO2lmKGx8PTApe209MHxhWzQ3NTIzXSxrPShmPWwrLTh8MCkrKGM9LTgmKGw9MHxhW2wrLTQ+PjJdKSl8MDtkb3tpZigxJmwpYj1mLHc9ZjtlbHNle2lmKHA9''@;'; + put 'put ''MHxhW2Y+PjJdLCEoMyZsKXx8KEE9cCtjfDAsKHc9ZisoMC1wKXwwKT4+PjA8bT4+PjApKXJldHVybjtpZigoMHxhWzQ3NTI0XSk9PSgwfHcpKXtpZigzIT0oMyYoYz0wfGFbKGw9ays0fDApPj4yXSl8MCkpe2I9dyxjPUE7YnJlYWt9cmV0dXJuIGFbNDc1MjFdPUEsYVtsPj4yXT0tMiZjLGFb''@;'; + put 'put ''dys0Pj4yXT0xfEEsdm9pZChhW3crQT4+Ml09QSl9aWYoZj1wPj4+MyxwPj4+MDwyNTYpe2lmKCgwfChjPTB8YVt3KzEyPj4yXSkpPT0oMHwobD0wfGFbdys4Pj4yXSkpKXthWzQ3NTE5XT1hWzQ3NTE5XSZ+KDE8PGYpLGI9dyxjPUE7YnJlYWt9YVtsKzEyPj4yXT1jLGFbYys4Pj4yXT1sLGI9''@;'; + put 'put ''dyxjPUE7YnJlYWt9bT0wfGFbdysyND4+Ml0sbD0wfGFbdysxMj4+Ml07ZG97aWYoKDB8bCk9PSgwfHcpKXtpZighKGw9MHxhWyhjPTQrKGY9dysxNnwwKXwwKT4+Ml0pKXtpZighKGw9MHxhW2Y+PjJdKSl7bD0wO2JyZWFrfWM9Zn1mb3IoOzspaWYoMHwocD0wfGFbKGY9bCsyMHwwKT4+Ml0p''@;'; + put 'put ''KWw9cCxjPWY7ZWxzZXtpZighKHA9MHxhWyhmPWwrMTZ8MCk+PjJdKSlicmVhaztsPXAsYz1mfWFbYz4+Ml09MH1lbHNlIGFbMTIrKGI9MHxhW3crOD4+Ml0pPj4yXT1sLGFbbCs4Pj4yXT1ifXdoaWxlKDApO2lmKG0pe2lmKCgwfGFbKGY9MTkwMzgwKygoYz0wfGFbdysyOD4+Ml0pPDwyKXww''@;'; + put 'put ''KT4+Ml0pPT0oMHx3KSl7aWYoYVtmPj4yXT1sLCFsKXthWzQ3NTIwXT1hWzQ3NTIwXSZ+KDE8PGMpLGI9dyxjPUE7YnJlYWt9fWVsc2UgaWYoYVttKzE2KygoKDB8YVttKzE2Pj4yXSkhPSgwfHcpJjEpPDwyKT4+Ml09bCwhbCl7Yj13LGM9QTticmVha31hW2wrMjQ+PjJdPW0sMHwoZj0wfGFb''@;'; + put 'put ''KGM9dysxNnwwKT4+Ml0pJiYoYVtsKzE2Pj4yXT1mLGFbZisyND4+Ml09bCksKGM9MHxhW2MrND4+Ml0pPyhhW2wrMjA+PjJdPWMsYVtjKzI0Pj4yXT1sLGI9dyxjPUEpOihiPXcsYz1BKX1lbHNlIGI9dyxjPUF9fXdoaWxlKDApO2lmKCEodz4+PjA+PWs+Pj4wKSYmMSYocD0wfGFbKGw9ays0''@;'; + put 'put ''fDApPj4yXSkpe2lmKDImcClhW2w+PjJdPS0yJnAsYVtiKzQ+PjJdPTF8YyxhW3crYz4+Ml09YyxtPWM7ZWxzZXtpZigoMHxhWzQ3NTI1XSk9PSgwfGspKXtpZihhWzQ3NTIyXT1rPSgwfGFbNDc1MjJdKStjfDAsYVs0NzUyNV09YixhW2IrND4+Ml09MXxrLCgwfGIpIT0oMHxhWzQ3NTI0XSkp''@;'; + put 'put ''cmV0dXJuO3JldHVybiBhWzQ3NTI0XT0wLHZvaWQoYVs0NzUyMV09MCl9aWYoKDB8YVs0NzUyNF0pPT0oMHxrKSlyZXR1cm4gYVs0NzUyMV09az0oMHxhWzQ3NTIxXSkrY3wwLGFbNDc1MjRdPXcsYVtiKzQ+PjJdPTF8ayx2b2lkKGFbdytrPj4yXT1rKTttPSgtOCZwKStjfDAsZj1wPj4+Mztk''@;'; + put 'put ''b3tpZihwPj4+MDwyNTYpe2lmKCgwfChsPTB8YVtrKzEyPj4yXSkpPT0oMHwoYz0wfGFbays4Pj4yXSkpKXthWzQ3NTE5XT1hWzQ3NTE5XSZ+KDE8PGYpO2JyZWFrfWFbYysxMj4+Ml09bCxhW2wrOD4+Ml09YzticmVha31BPTB8YVtrKzI0Pj4yXSxsPTB8YVtrKzEyPj4yXTtkb3tpZigoMHxs''@;'; + put 'put ''KT09KDB8aykpe2lmKCEobD0wfGFbKGM9NCsoZj1rKzE2fDApfDApPj4yXSkpe2lmKCEobD0wfGFbZj4+Ml0pKXtmPTA7YnJlYWt9Yz1mfWZvcig7OylpZigwfChwPTB8YVsoZj1sKzIwfDApPj4yXSkpbD1wLGM9ZjtlbHNle2lmKCEocD0wfGFbKGY9bCsxNnwwKT4+Ml0pKWJyZWFrO2w9cCxj''@;'; + put 'put ''PWZ9YVtjPj4yXT0wLGY9bH1lbHNlIGFbMTIrKGY9MHxhW2srOD4+Ml0pPj4yXT1sLGFbbCs4Pj4yXT1mLGY9bH13aGlsZSgwKTtpZigwfEEpe2lmKCgwfGFbKGM9MTkwMzgwKygobD0wfGFbaysyOD4+Ml0pPDwyKXwwKT4+Ml0pPT0oMHxrKSl7aWYoYVtjPj4yXT1mLCFmKXthWzQ3NTIwXT1h''@;'; + put 'put ''WzQ3NTIwXSZ+KDE8PGwpO2JyZWFrfX1lbHNlIGlmKGFbQSsxNisoKCgwfGFbQSsxNj4+Ml0pIT0oMHxrKSYxKTw8Mik+PjJdPWYsIWYpYnJlYWs7YVtmKzI0Pj4yXT1BLDB8KGM9MHxhWyhsPWsrMTZ8MCk+PjJdKSYmKGFbZisxNj4+Ml09YyxhW2MrMjQ+PjJdPWYpLDB8KGw9MHxhW2wrND4+''@;'; + put 'put ''Ml0pJiYoYVtmKzIwPj4yXT1sLGFbbCsyND4+Ml09Zil9fXdoaWxlKDApO2lmKGFbYis0Pj4yXT0xfG0sYVt3K20+PjJdPW0sKDB8Yik9PSgwfGFbNDc1MjRdKSlyZXR1cm4gdm9pZChhWzQ3NTIxXT1tKX1pZihsPW0+Pj4zLG0+Pj4wPDI1NilyZXR1cm4gZj0xOTAxMTYrKGw8PDE8PDIpfDAs''@;'; + put 'put ''KGM9MHxhWzQ3NTE5XSkmKGw9MTw8bCk/bD0wfGFbKGM9Zis4fDApPj4yXTooYVs0NzUxOV09Y3xsLGw9ZixjPWYrOHwwKSxhW2M+PjJdPWIsYVtsKzEyPj4yXT1iLGFbYis4Pj4yXT1sLHZvaWQoYVtiKzEyPj4yXT1mKTtwPTE5MDM4MCsoKGw9KGw9bT4+PjgpP20+Pj4wPjE2Nzc3MjE1PzMx''@;'; + put 'put ''Om0+Pj4oNysobD0xNC0oKEE9KDUyMDE5Misoaz1sPDwodz0obCsxMDQ4MzIwfDApPj4+MTYmOCkpfDApPj4+MTYmNCl8d3wobD0oMjQ1NzYwKyhrPDw9QSl8MCk+Pj4xNiYyKSkrKGs8PGw+Pj4xNSl8MCl8MCkmMXxsPDwxOjApPDwyKXwwLGFbYisyOD4+Ml09bCxhW2IrMjA+PjJdPTAsYVti''@;'; + put 'put ''KzE2Pj4yXT0wLGM9MHxhWzQ3NTIwXSxmPTE8PGw7ZG97aWYoYyZmKXtmb3IoYz1tPDwoMzE9PSgwfGwpPzA6MjUtKGw+Pj4xKXwwKSxmPTB8YVtwPj4yXTs7KXtpZigoLTgmYVtmKzQ+PjJdfDApPT0oMHxtKSl7bD03MzticmVha31pZighKGw9MHxhWyhwPWYrMTYrKGM+Pj4zMTw8Mil8MCk+''@;'; + put 'put ''PjJdKSl7bD03MjticmVha31jPDw9MSxmPWx9aWYoNzI9PSgwfGwpKXthW3A+PjJdPWIsYVtiKzI0Pj4yXT1mLGFbYisxMj4+Ml09YixhW2IrOD4+Ml09YjticmVha31pZig3Mz09KDB8bCkpe2FbMTIrKGs9MHxhWyh3PWYrOHwwKT4+Ml0pPj4yXT1iLGFbdz4+Ml09YixhW2IrOD4+Ml09ayxh''@;'; + put 'put ''W2IrMTI+PjJdPWYsYVtiKzI0Pj4yXT0wO2JyZWFrfX1lbHNlIGFbNDc1MjBdPWN8ZixhW3A+PjJdPWIsYVtiKzI0Pj4yXT1wLGFbYisxMj4+Ml09YixhW2IrOD4+Ml09Yn13aGlsZSgwKTtpZihhWzQ3NTI3XT1rPSgwfGFbNDc1MjddKS0xfDAsaylyZXR1cm47Zm9yKGw9MTkwNTMyO2w9MHxh''@;'; + put 'put ''W2w+PjJdOylsPWwrOHwwO2FbNDc1MjddPS0xfX19ZnVuY3Rpb24gc2gobCxjKXtjfD0wO3ZhciBmPTA7cmV0dXJuKGx8PTApPyhmPTB8QXIoYyxsKSwoY3xsKT4+PjA+NjU1MzUmJihmPSgwfChmPj4+MCkvKGw+Pj4wKSk9PSgwfGMpP2Y6LTEpKTpmPTAsIShsPTB8QjAoZikpfHwhKDMmYVts''@;'; + put 'put ''Ky00Pj4yXSl8fHUyKDB8bCwwLDB8ZiksMHxsfWZ1bmN0aW9uIFVhKGwsYyl7Y3w9MDt2YXIgZj0wLHA9MDtyZXR1cm4obHw9MCk/Yz4+PjA+NDI5NDk2NzIzMT8oYVs0NzY0M109MTIsMHwoYz0wKSk6KGY9MHxmdW5jdGlvbiBQdWUobCxjKXtjfD0wO3ZhciBELGY9MCxwPTAsbT0wLEE9MCx3''@;'; + put 'put ''PTAsYj0wLGs9MCxNPTAsUj0wO2lmKGI9KGx8PTApKyhmPS04JihSPTB8YVsoRD1sKzR8MCk+PjJdKSl8MCwhKDMmUikpcmV0dXJuIGM+Pj4wPDI1Nj8wfChsPTApOihmPj4+MD49KGMrNHwwKT4+PjAmJihmLWN8MCk+Pj4wPD1hWzQ3NjM5XTw8MT4+PjB8fChsPTApLDB8bCk7aWYoZj4+PjA+''@;'; + put 'put ''PWM+Pj4wKXJldHVybihmPWYtY3wwKT4+PjA8PTE1fHwoTT1sK2N8MCxhW0Q+PjJdPTEmUnxjfDIsYVtNKzQ+PjJdPTN8ZixhWyhSPWIrNHwwKT4+Ml09MXxhW1I+PjJdLGZMKE0sZikpLDB8bDtpZigoMHxhWzQ3NTI1XSk9PSgwfGIpKXJldHVybiBmPShNPSgwfGFbNDc1MjJdKStmfDApLWN8''@;'; + put 'put ''MCxwPWwrY3wwLE0+Pj4wPD1jPj4+MD8wfChsPTApOihhW0Q+PjJdPTEmUnxjfDIsYVtwKzQ+PjJdPTF8ZixhWzQ3NTI1XT1wLGFbNDc1MjJdPWYsMHxsKTtpZigoMHxhWzQ3NTI0XSk9PSgwfGIpKXJldHVybihwPSgwfGFbNDc1MjFdKStmfDApPj4+MDxjPj4+MD8wfChsPTApOigoZj1wLWN8''@;'; + put 'put ''MCk+Pj4wPjE1PyhNPWwrY3wwLHA9bCtwfDAsYVtEPj4yXT0xJlJ8Y3wyLGFbTSs0Pj4yXT0xfGYsYVtwPj4yXT1mLGFbKHA9cCs0fDApPj4yXT0tMiZhW3A+PjJdLHA9TSk6KGFbRD4+Ml09MSZSfHB8MixhWyhwPWwrcCs0fDApPj4yXT0xfGFbcD4+Ml0scD0wLGY9MCksYVs0NzUyMV09Zixh''@;'; + put 'put ''WzQ3NTI0XT1wLDB8bCk7aWYoMiYocD0wfGFbYis0Pj4yXSl8MHx8KGs9KC04JnApK2Z8MCk+Pj4wPGM+Pj4wKXJldHVybiAwO009ay1jfDAsbT1wPj4+Mztkb3tpZihwPj4+MDwyNTYpe2lmKCgwfChmPTB8YVtiKzEyPj4yXSkpPT0oMHwocD0wfGFbYis4Pj4yXSkpKXthWzQ3NTE5XT1hWzQ3''@;'; + put 'put ''NTE5XSZ+KDE8PG0pO2JyZWFrfWFbcCsxMj4+Ml09ZixhW2YrOD4+Ml09cDticmVha313PTB8YVtiKzI0Pj4yXSxmPTB8YVtiKzEyPj4yXTtkb3tpZigoMHxmKT09KDB8Yikpe2lmKGY9MHxhWyhwPTQrKG09YisxNnwwKXwwKT4+Ml0pQT1wO2Vsc2V7aWYoIShmPTB8YVttPj4yXSkpe209MDti''@;'; + put 'put ''cmVha31BPW19Zm9yKDs7KWlmKDB8KHA9MHxhWyhtPWYrMjB8MCk+PjJdKSlmPXAsQT1tO2Vsc2V7aWYoIShtPTB8YVsocD1mKzE2fDApPj4yXSkpYnJlYWs7Zj1tLEE9cH1hW0E+PjJdPTAsbT1mfWVsc2UgYVsxMisobT0wfGFbYis4Pj4yXSk+PjJdPWYsYVtmKzg+PjJdPW0sbT1mfXdoaWxl''@;'; + put 'put ''KDApO2lmKDB8dyl7aWYoKDB8YVsocD0xOTAzODArKChmPTB8YVtiKzI4Pj4yXSk8PDIpfDApPj4yXSk9PSgwfGIpKXtpZihhW3A+PjJdPW0sIW0pe2FbNDc1MjBdPWFbNDc1MjBdJn4oMTw8Zik7YnJlYWt9fWVsc2UgaWYoYVt3KzE2KygoKDB8YVt3KzE2Pj4yXSkhPSgwfGIpJjEpPDwyKT4+''@;'; + put 'put ''Ml09bSwhbSlicmVhazthW20rMjQ+PjJdPXcsMHwocD0wfGFbKGY9YisxNnwwKT4+Ml0pJiYoYVttKzE2Pj4yXT1wLGFbcCsyND4+Ml09bSksMHwoZj0wfGFbZis0Pj4yXSkmJihhW20rMjA+PjJdPWYsYVtmKzI0Pj4yXT1tKX19d2hpbGUoMCk7cmV0dXJuIE0+Pj4wPDE2PyhhW0Q+PjJdPWt8''@;'; + put 'put ''MSZSfDIsYVsoUj1sK2srNHwwKT4+Ml09MXxhW1I+PjJdLDB8bCk6KGI9bCtjfDAsYVtEPj4yXT0xJlJ8Y3wyLGFbYis0Pj4yXT0zfE0sYVsoUj1sK2srNHwwKT4+Ml09MXxhW1I+PjJdLGZMKGIsTSksMHxsKX0obCstOHwwLGM+Pj4wPDExPzE2OmMrMTEmLTgpLDB8Zj8wfChjPWYrOHwwKToo''@;'; + put 'put ''Zj0wfEIwKGMpKT8oZ28oMHxmLDB8bCwwfCgocD0oLTgmKHA9MHxhW2wrLTQ+PjJdKSktKDA9PSgzJnB8MCk/ODo0KXwwKT4+PjA8Yz4+PjA/cDpjKSksRnQobCksMHwoYz1mKSk6MHwoYz0wKSk6MHwoYz0wfEIwKGMpKX1mdW5jdGlvbiBmTChsLGMpe3ZhciBmPTAscD0wLG09MCxBPTAsdz0w''@;'; + put 'put ''LGI9MDtiPShsfD0wKSsoY3w9MCl8MCxmPTB8YVtsKzQ+PjJdO2Rve2lmKDEmZil3PWw7ZWxzZXtpZighKDMmZikpcmV0dXJuO2lmKGM9KG09MHxhW2w+PjJdKStjfDAsKDB8YVs0NzUyNF0pPT0oMHwodz1sKygwLW0pfDApKSl7aWYoMyE9KDMmKGY9MHxhWyhsPWIrNHwwKT4+Ml0pfDApKWJy''@;'; + put 'put ''ZWFrO3JldHVybiBhWzQ3NTIxXT1jLGFbbD4+Ml09LTImZixhW3crND4+Ml09MXxjLHZvaWQoYVtiPj4yXT1jKX1pZihwPW0+Pj4zLG0+Pj4wPDI1Nil7aWYoKDB8KGY9MHxhW3crMTI+PjJdKSk9PSgwfChsPTB8YVt3Kzg+PjJdKSkpe2FbNDc1MTldPWFbNDc1MTldJn4oMTw8cCk7YnJlYWt9''@;'; + put 'put ''YVtsKzEyPj4yXT1mLGFbZis4Pj4yXT1sO2JyZWFrfUE9MHxhW3crMjQ+PjJdLGw9MHxhW3crMTI+PjJdO2Rve2lmKCgwfGwpPT0oMHx3KSl7aWYoIShsPTB8YVsoZj00KyhwPXcrMTZ8MCl8MCk+PjJdKSl7aWYoIShsPTB8YVtwPj4yXSkpe2w9MDticmVha31mPXB9Zm9yKDs7KWlmKDB8KG09''@;'; + put 'put ''MHxhWyhwPWwrMjB8MCk+PjJdKSlsPW0sZj1wO2Vsc2V7aWYoIShtPTB8YVsocD1sKzE2fDApPj4yXSkpYnJlYWs7bD1tLGY9cH1hW2Y+PjJdPTB9ZWxzZSBhWzEyKyhtPTB8YVt3Kzg+PjJdKT4+Ml09bCxhW2wrOD4+Ml09bX13aGlsZSgwKTtpZihBKXtpZigoMHxhWyhwPTE5MDM4MCsoKGY9''@;'; + put 'put ''MHxhW3crMjg+PjJdKTw8Mil8MCk+PjJdKT09KDB8dykpe2lmKGFbcD4+Ml09bCwhbCl7YVs0NzUyMF09YVs0NzUyMF0mfigxPDxmKTticmVha319ZWxzZSBpZihhW0ErMTYrKCgoMHxhW0ErMTY+PjJdKSE9KDB8dykmMSk8PDIpPj4yXT1sLCFsKWJyZWFrO2FbbCsyND4+Ml09QSwwfChwPTB8''@;'; + put 'put ''YVsoZj13KzE2fDApPj4yXSkmJihhW2wrMTY+PjJdPXAsYVtwKzI0Pj4yXT1sKSwoZj0wfGFbZis0Pj4yXSkmJihhW2wrMjA+PjJdPWYsYVtmKzI0Pj4yXT1sKX19fXdoaWxlKDApO2lmKDImKHA9MHxhWyhsPWIrNHwwKT4+Ml0pKWFbbD4+Ml09LTImcCxhW3crND4+Ml09MXxjLGFbdytjPj4y''@;'; + put 'put ''XT1jLG09YztlbHNle2lmKCgwfGFbNDc1MjVdKT09KDB8Yikpe2lmKGFbNDc1MjJdPWI9KDB8YVs0NzUyMl0pK2N8MCxhWzQ3NTI1XT13LGFbdys0Pj4yXT0xfGIsKDB8dykhPSgwfGFbNDc1MjRdKSlyZXR1cm47cmV0dXJuIGFbNDc1MjRdPTAsdm9pZChhWzQ3NTIxXT0wKX1pZigoMHxhWzQ3''@;'; + put 'put ''NTI0XSk9PSgwfGIpKXJldHVybiBhWzQ3NTIxXT1iPSgwfGFbNDc1MjFdKStjfDAsYVs0NzUyNF09dyxhW3crND4+Ml09MXxiLHZvaWQoYVt3K2I+PjJdPWIpO209KC04JnApK2N8MCxmPXA+Pj4zO2Rve2lmKHA+Pj4wPDI1Nil7aWYoKDB8KGM9MHxhW2IrMTI+PjJdKSk9PSgwfChsPTB8YVti''@;'; + put 'put ''Kzg+PjJdKSkpe2FbNDc1MTldPWFbNDc1MTldJn4oMTw8Zik7YnJlYWt9YVtsKzEyPj4yXT1jLGFbYys4Pj4yXT1sO2JyZWFrfUE9MHxhW2IrMjQ+PjJdLGM9MHxhW2IrMTI+PjJdO2Rve2lmKCgwfGMpPT0oMHxiKSl7aWYoIShjPTB8YVsobD00KyhmPWIrMTZ8MCl8MCk+PjJdKSl7aWYoIShj''@;'; + put 'put ''PTB8YVtmPj4yXSkpe2Y9MDticmVha31sPWZ9Zm9yKDs7KWlmKDB8KHA9MHxhWyhmPWMrMjB8MCk+PjJdKSljPXAsbD1mO2Vsc2V7aWYoIShwPTB8YVsoZj1jKzE2fDApPj4yXSkpYnJlYWs7Yz1wLGw9Zn1hW2w+PjJdPTAsZj1jfWVsc2UgYVsxMisoZj0wfGFbYis4Pj4yXSk+PjJdPWMsYVtj''@;'; + put 'put ''Kzg+PjJdPWYsZj1jfXdoaWxlKDApO2lmKDB8QSl7aWYoKDB8YVsobD0xOTAzODArKChjPTB8YVtiKzI4Pj4yXSk8PDIpfDApPj4yXSk9PSgwfGIpKXtpZihhW2w+PjJdPWYsIWYpe2FbNDc1MjBdPWFbNDc1MjBdJn4oMTw8Yyk7YnJlYWt9fWVsc2UgaWYoYVtBKzE2KygoKDB8YVtBKzE2Pj4y''@;'; + put 'put ''XSkhPSgwfGIpJjEpPDwyKT4+Ml09ZiwhZilicmVhazthW2YrMjQ+PjJdPUEsMHwobD0wfGFbKGM9YisxNnwwKT4+Ml0pJiYoYVtmKzE2Pj4yXT1sLGFbbCsyND4+Ml09ZiksMHwoYz0wfGFbYys0Pj4yXSkmJihhW2YrMjA+PjJdPWMsYVtjKzI0Pj4yXT1mKX19d2hpbGUoMCk7aWYoYVt3KzQ+''@;'; + put 'put ''PjJdPTF8bSxhW3crbT4+Ml09bSwoMHx3KT09KDB8YVs0NzUyNF0pKXJldHVybiB2b2lkKGFbNDc1MjFdPW0pfWlmKGM9bT4+PjMsbT4+PjA8MjU2KXJldHVybiBmPTE5MDExNisoYzw8MTw8Mil8MCwobD0wfGFbNDc1MTldKSYoYz0xPDxjKT9jPTB8YVsobD1mKzh8MCk+PjJdOihhWzQ3NTE5''@;'; + put 'put ''XT1sfGMsYz1mLGw9Zis4fDApLGFbbD4+Ml09dyxhW2MrMTI+PjJdPXcsYVt3Kzg+PjJdPWMsdm9pZChhW3crMTI+PjJdPWYpO2lmKGM9KGM9bT4+PjgpP20+Pj4wPjE2Nzc3MjE1PzMxOm0+Pj4oNysoYz0xNC0oKHA9KDUyMDE5MisoYj1jPDwoQT0oYysxMDQ4MzIwfDApPj4+MTYmOCkpfDAp''@;'; + put 'put ''Pj4+MTYmNCl8QXwoYz0oMjQ1NzYwKyhiPDw9cCl8MCk+Pj4xNiYyKSkrKGI8PGM+Pj4xNSl8MCl8MCkmMXxjPDwxOjAscD0xOTAzODArKGM8PDIpfDAsYVt3KzI4Pj4yXT1jLGFbdysyMD4+Ml09MCxhW3crMTY+PjJdPTAsISgobD0wfGFbNDc1MjBdKSYoZj0xPDxjKSkpcmV0dXJuIGFbNDc1''@;'; + put 'put ''MjBdPWx8ZixhW3A+PjJdPXcsYVt3KzI0Pj4yXT1wLGFbdysxMj4+Ml09dyx2b2lkKGFbdys4Pj4yXT13KTtmb3IobD1tPDwoMzE9PSgwfGMpPzA6MjUtKGM+Pj4xKXwwKSxmPTB8YVtwPj4yXTs7KXtpZigoLTgmYVtmKzQ+PjJdfDApPT0oMHxtKSl7Yz02OTticmVha31pZighKGM9MHxhWyhw''@;'; + put 'put ''PWYrMTYrKGw+Pj4zMTw8Mil8MCk+PjJdKSl7Yz02ODticmVha31sPDw9MSxmPWN9cmV0dXJuIDY4PT0oMHxjKT8oYVtwPj4yXT13LGFbdysyND4+Ml09ZixhW3crMTI+PjJdPXcsdm9pZChhW3crOD4+Ml09dykpOjY5PT0oMHxjKT8oYVsxMisoYj0wfGFbKEE9Zis4fDApPj4yXSk+PjJdPXcs''@;'; + put 'put ''YVtBPj4yXT13LGFbdys4Pj4yXT1iLGFbdysxMj4+Ml09Zix2b2lkKGFbdysyND4+Ml09MCkpOnZvaWQgMH1mdW5jdGlvbiB1aChsKXtyZXR1cm4obHw9MCk+Pj4wPjQyOTQ5NjMyMDAmJihhWzQ3NjQzXT0wLWwsbD0tMSksMHxsfWZ1bmN0aW9uIHQkKGwpe3JldHVybiAwfGx9ZnVuY3Rpb24g''@;'; + put 'put ''biQobCxjLGYpe2N8PTAsZnw9MDt2YXIgdyxiLGssTSxSLHA9MCxtPTAsQT0wLEQ9MCxHPTAsSz0wO1I9bGUsbGU9bGUrNDh8MCxNPVIrMTZ8MCxBPVIsYVsobT1SKzMyfDApPj4yXT1wPTB8YVsoYj0yOCsobHw9MCl8MCk+PjJdLGFbbSs0Pj4yXT1wPSgwfGFbKGs9bCsyMHwwKT4+Ml0pLXB8''@;'; + put 'put ''MCxhW20rOD4+Ml09YyxhW20rMTI+PjJdPWYscD1wK2Z8MCxhW0E+PjJdPWFbKHc9bCs2MHwwKT4+Ml0sYVtBKzQ+PjJdPW0sYVtBKzg+PjJdPTIsQT0wfHVoKDB8dDYoMTQ2LDB8QSkpO2U6ZG97aWYoKDB8cCkhPSgwfEEpKXtmb3IoYz0yOyEoKDB8QSk8MCk7KWlmKHA9cC1BfDAsYz1jKygo''@;'; + put 'put ''Rz1BPj4+MD4oSz0wfGFbbSs0Pj4yXSk+Pj4wKTw8MzE+PjMxKXwwLGFbKG09Rz9tKzh8MDptKT4+Ml09KDB8YVttPj4yXSkrKEs9QS0oRz9LOjApfDApLGFbKEc9bSs0fDApPj4yXT0oMHxhW0c+PjJdKS1LLGFbTT4+Ml09YVt3Pj4yXSxhW00rND4+Ml09bSxhW00rOD4+Ml09YywoMHxwKT09''@;'; + put 'put ''KDB8KEE9MHx1aCgwfHQ2KDE0NiwwfE0pKSkpKXtEPTM7YnJlYWsgZX1hW2wrMTY+PjJdPTAsYVtiPj4yXT0wLGFbaz4+Ml09MCxhW2w+PjJdPTMyfGFbbD4+Ml0sZj0yPT0oMHxjKT8wOmYtKDB8YVttKzQ+PjJdKXwwfWVsc2UgRD0zfXdoaWxlKDApO3JldHVybiAzPT0oMHxEKSYmKGFbbCsx''@;'; + put 'put ''Nj4+Ml09KEs9MHxhW2wrNDQ+PjJdKSsoMHxhW2wrNDg+PjJdKSxhW2I+PjJdPUssYVtrPj4yXT1LKSxsZT1SLDB8Zn1mdW5jdGlvbiByJChsLGMpe3ZhciBmLHA7cmV0dXJuIGN8PTAsZj1sZSxsZT1sZSsxNnwwLGFbKHA9Zik+PjJdPWx8PTAsYVtwKzQ+PjJdPWMsYz0wfHVoKDB8VDQoOTEs''@;'; + put 'put ''MHxwKSksbGU9ZiwwfGN9ZnVuY3Rpb24gTnVlKGwsYyxmLHAsbSxBKXt2YXIgdyxiO2x8PTAsY3w9MCxmfD0wLHB8PTAsbXw9MCxBfD0wLGI9bGUsbGU9bGUrMzJ8MCx3PWI7ZG97aWYoMD09KDQwOTUmQXwwKSYwPT0oKCgwfEEpPDApPDwzMT4+MzEmLTQwOTZ8MCkpe2lmKGM+Pj4wPjIxNDc0''@;'; + put 'put ''ODM2NDYpe2FbNDc2NDNdPTEyLGw9LTE7YnJlYWt9YVt3Pj4yXT1sLGFbdys0Pj4yXT1jLGFbdys4Pj4yXT1mLGFbdysxMj4+Ml09cCxhW3crMTY+PjJdPW0sYVt3KzIwPj4yXT1BPj4xMixsPTB8dWgoMHxSOCgxOTIsMHx3KSl9ZWxzZSBhWzQ3NjQzXT0yMixsPS0xfXdoaWxlKDApO3JldHVy''@;'; + put 'put ''biBsZT1iLDB8bH1mdW5jdGlvbiBoTChsLGMpe2x8PTA7dmFyIGY9MCxwPTAsbT0wO3A9MjU1JihjfD0wKTtlOmRve2lmKHApe2lmKDMmbCl7Zj0yNTUmYztkb3tpZigobT0wfGZlW2w+PjBdKTw8MjQ+PjI0PT0wfHxtPDwyND4+MjQ9PWY8PDI0Pj4yNClicmVhayBlO2w9bCsxfDB9d2hpbGUo''@;'; + put 'put ''MCE9KDMmbHwwKSl9cD0wfEFyKHAsMTY4NDMwMDkpLGY9MHxhW2w+PjJdO3Q6ZG97aWYoISgoLTIxMzkwNjIxNDQmZl4tMjEzOTA2MjE0NCkmZistMTY4NDMwMDkpKWRve2lmKCgtMjEzOTA2MjE0NCYobT1mXnApXi0yMTM5MDYyMTQ0KSZtKy0xNjg0MzAwOXwwKWJyZWFrIHQ7Zj0wfGFbKGw9''@;'; + put 'put ''bCs0fDApPj4yXX13aGlsZSghKCgtMjEzOTA2MjE0NCZmXi0yMTM5MDYyMTQ0KSZmKy0xNjg0MzAwOXwwKSl9d2hpbGUoMCk7Zm9yKGY9MjU1JmM7KG09MHxmZVtsPj4wXSk8PDI0Pj4yNCE9MCYmbTw8MjQ+PjI0IT1mPDwyND4+MjQ7KWw9bCsxfDB9ZWxzZSBsPWwrKDB8VW8obCkpfDB9d2hp''@;'; + put 'put ''bGUoMCk7cmV0dXJuIDB8bH1mdW5jdGlvbiBVbyhsKXt2YXIgcCxjPTAsZj0wO3A9bHw9MDtlOmRve2lmKDMmcClmb3IoYz1wOzspe2lmKCEoMHxmZVtsPj4wXSkpe2w9YzticmVhayBlfWlmKCEoMyYoYz1sPWwrMXwwKSkpe2Y9NDticmVha319ZWxzZSBmPTR9d2hpbGUoMCk7aWYoND09KDB8''@;'; + put 'put ''Zikpe2Zvcig7ISgoLTIxMzkwNjIxNDQmKGM9MHxhW2w+PjJdKV4tMjEzOTA2MjE0NCkmYystMTY4NDMwMDkpOylsPWwrNHwwO2lmKCgyNTUmYyk8PDI0Pj4yNClkb3tsPWwrMXwwfXdoaWxlKDAhPSgwfGZlW2w+PjBdKSl9cmV0dXJuIGwtcHwwfWZ1bmN0aW9uIFh5KGwsYyl7dmFyIGY7cmV0''@;'; + put 'put ''dXJuIGN8PTAsZj0wfElzKDB8KGx8PTApKSwwfCgwPT0oMHxjKT9sOmYpfWZ1bmN0aW9uIFppKGwsYyl7dmFyIGY9MCxwPTA7aWYocD0wfGZlWyhjfD0wKT4+MF0sKGY9MHxmZVsobHw9MCk+PjBdKTw8MjQ+PjI0PT0wfHxmPDwyND4+MjQhPXA8PDI0Pj4yNClsPXA7ZWxzZXtkb3tmPTB8ZmVb''@;'; + put 'put ''KGw9bCsxfDApPj4wXSxwPTB8ZmVbKGM9YysxfDApPj4wXX13aGlsZShmPDwyND4+MjQhPTAmJmY8PDI0Pj4yND09cDw8MjQ+PjI0KTtsPXB9cmV0dXJuKDI1NSZmKS0oMjU1JmwpfDB9ZnVuY3Rpb24gJGsobCl7cmV0dXJuIDB8ZnVuY3Rpb24ga0FlKGwsYyl7bHw9MCxjfD0wO3ZhciBmPTAs''@;'; + put 'put ''cD0wO2ZvcihwPTA7Oyl7aWYoKDB8WHRbMTQ0NTMxK3A+PjBdKT09KDB8bCkpe2w9MjticmVha31pZig4Nz09KDB8KGY9cCsxfDApKSl7Zj0xNDQ2MTkscD04NyxsPTU7YnJlYWt9cD1mfWlmKDI9PSgwfGwpJiYocD8oZj0xNDQ2MTksbD01KTpmPTE0NDYxOSksNT09KDB8bCkpZm9yKDs7KXtk''@;'; + put 'put ''b3tsPWYsZj1mKzF8MH13aGlsZSgwIT0oMHxmZVtsPj4wXSkpO2lmKCEocD1wKy0xfDApKWJyZWFrO2w9NX1yZXR1cm4gMHxmdW5jdGlvbiBTQWUobCxjKXtyZXR1cm4gMHxmdW5jdGlvbiBNQWUobCxjKXtyZXR1cm4gbHw9MCxjPShjfD0wKT8wfGZ1bmN0aW9uIEVBZShsLGMsZil7Y3w9MCxm''@;'; + put 'put ''fD0wO3ZhciBHLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wO0E9MHxYeSgwfGFbOCsobHw9MCk+PjJdLEc9MTc5NDg5NTEzOCsoMHxhW2w+PjJdKXwwKSxwPTB8WHkoMHxhW2wrMTI+PjJdLEcpLG09MHxYeSgwfGFbbCsxNj4+Ml0sRyk7ZTpkb3tpZihBPj4+MDxjPj4+Mj4+''@;'; + put 'put ''PjAmJihSPWMtKEE8PDIpfDAscD4+PjA8Uj4+PjAmbT4+PjA8Uj4+PjApJiYwPT0oMyYobXxwKXwwKSl7Zm9yKFI9cD4+PjIsRD1tPj4+MixNPTA7Oyl7aWYocD0wfFh5KDB8YVtsKygobT0odz0oaz1NKyhiPUE+Pj4xKXwwKTw8MSkrUnwwKTw8Mik+PjJdLEcpLCEoKG09MHxYeSgwfGFbbCso''@;'; + put 'put ''bSsxPDwyKT4+Ml0sRykpPj4+MDxjPj4+MCZwPj4+MDwoYy1tfDApPj4+MCkpe3A9MDticmVhayBlfWlmKDB8ZmVbbCsobStwKT4+MF0pe3A9MDticmVhayBlfWlmKCEocD0wfFppKGYsbCttfDApKSlicmVhaztpZihwPSgwfHApPDAsMT09KDB8QSkpe3A9MDticmVhayBlfU09cD9NOmssQT1w''@;'; + put 'put ''P2I6QS1ifDB9bT0wfFh5KDB8YVtsKygocD13K0R8MCk8PDIpPj4yXSxHKSxwPShwPTB8WHkoMHxhW2wrKHArMTw8Mik+PjJdLEcpKT4+PjA8Yz4+PjAmbT4+PjA8KGMtcHwwKT4+PjAmJjA9PSgwfGZlW2wrKHArbSk+PjBdKT9sK3B8MDowfWVsc2UgcD0wfXdoaWxlKDApO3JldHVybiAwfHB9''@;'; + put 'put ''KDB8YVtjPj4yXSwwfGFbYys0Pj4yXSxsKTowLDB8KDB8Yz9jOmwpfShsfD0wLGN8PTApfShmLDB8YVtjKzIwPj4yXSl9KGx8PTAsMHxhWzE1NzkxXSl9ZnVuY3Rpb24gaSQobCxjLGYpe3ZhciBwLG0sQTtyZXR1cm4gYz0rYyxwPShBPShsPStsKSpsKSooQSpBKSooMS41ODk2OTA5OTUyMTE1''@;'; + put 'put ''NWUtMTAqQS0yLjUwNTA3NjAyNTM0MDY4NjNlLTgpKyhBKigyNzU1NzMxMzcwNzA3MDA2OGUtMjIqQS0uMDAwMTk4NDEyNjk4Mjk4NTc5NSkrLjAwODMzMzMzMzMzMzMyMjQ5KSxtPUEqbCwoZnw9MCk/bC09LjE2NjY2NjY2NjY2NjY2NjMyKm0rKEEqKC41KmMtbSpwKS1jKTpsPW0qKEEqcC0u''@;'; + put 'put ''MTY2NjY2NjY2NjY2NjY2MzIpK2wsK2x9ZnVuY3Rpb24gbyQobCl7dmFyIGM9MCxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wO19bU2k+PjNdPWw9K2wsYz0wfGFbU2k+PjJdLHA9KDB8KGY9MHxhW1NpKzQ+PjJdKSk8MDtkb3tpZihwfGY+Pj4wPDEwNDg1NzYpe2lmKDA9PSgwfGMp''@;'; + put 'put ''JjA9PSgyMTQ3NDgzNjQ3JmZ8MCkpe2w9LTEvKGwqbCk7YnJlYWt9aWYocCl7bD0obC1sKS8wO2JyZWFrfV9bU2k+PjNdPTB4NDAwMDAwMDAwMDAwMDAqbCxmPTB8YVtTaSs0Pj4yXSxwPS0xMDc3LGM9MHxhW1NpPj4yXSxtPTk7YnJlYWt9Zj4+PjA8PTIxNDY0MzUwNzEmJigwPT0oMHxjKSYh''@;'; + put 'put ''MCYxMDcyNjkzMjQ4PT0oMHxmKT9sPTA6KHA9LTEwMjMsbT05KSl9d2hpbGUoMCk7cmV0dXJuIDk9PSgwfG0pJiYobT1mKzYxNDI0MnwwLGFbU2k+PjJdPWMsYVtTaSs0Pj4yXT0xMDcyMDc5MDA2KygxMDQ4NTc1Jm0pLEE9KGs9KHc9KE09K19bU2k+PjNdLTEpLyhNKzIpKSp3KSprLF9bU2k+''@;'; + put 'put ''PjNdPU0tKGI9TSooLjUqTSkpLGY9MHxhW1NpKzQ+PjJdLGFbU2k+PjJdPTAsYVtTaSs0Pj4yXT1mLEE9TS0obD0rX1tTaT4+M10pLWIrdyooYisoQSooQSooLjE1MzEzODM3Njk5MjA5MzczKkErLjIyMjIyMTk4NDMyMTQ5Nzg0KSsuMzk5OTk5OTk5OTk0MDk0MikrayooQSooQSooLjE0Nzk4''@;'; + put 'put ''MTk4NjA1MTE2NTg2KkErLjE4MTgzNTcyMTYxNjE4MDUpKy4yODU3MTQyODc0MzY2MjM5KSsuNjY2NjY2NjY2NjY2NjczNSkpKSxsPSh3PShrPTEuNDQyNjk1MDQwNzIxNDQ2MypsKSsoYj0rKHArKG0+Pj4yMCl8MCkpKSsoaysoYi13KSsoMS40NDI2OTUwNDA3MjE0NDYzKkErMS42NzUxNzEz''@;'; + put 'put ''MTY0ODg2NTEyZS0xMCooQStsKSkpKSwrbH1mdW5jdGlvbiBhJChsLGMpe2N8PTA7dmFyIHAsbSxmPTA7c3dpdGNoKF9bU2k+PjNdPWw9K2wsMjA0NyYobT0wfHdsKDB8KGY9MHxhW1NpPj4yXSksMHwocD0wfGFbU2krND4+Ml0pLDUyKSkpe2Nhc2UgMDowIT1sPyhsPSthJCgweDEwMDAwMDAw''@;'; + put 'put ''MDAwMDAwMDAwKmwsYyksZj0oMHxhW2M+PjJdKS02NHwwKTpmPTAsYVtjPj4yXT1mO2JyZWFrO2Nhc2UgMjA0NzpicmVhaztkZWZhdWx0OmFbYz4+Ml09KDIwNDcmbSktMTAyMixhW1NpPj4yXT1mLGFbU2krND4+Ml09LTIxNDY0MzUwNzMmcHwxMDcxNjQ0NjcyLGw9K19bU2k+PjNdfXJldHVy''@;'; + put 'put ''bitsfWZ1bmN0aW9uIGwkKGwsYyl7dmFyIGYscCxtLEE7cmV0dXJuKygoQT0xLShtPS41KihmPShsPStsKSpsKSkpKygxLUEtbSsoZiooZiooZiooMjQ4MDE1ODcyODk0NzY3M2UtMjAqZi0uMDAxMzg4ODg4ODg4ODg3NDExKSsuMDQxNjY2NjY2NjY2NjY2NikrKHA9ZipmKSpwKihmKigyLjA4''@;'; + put 'put ''NzU3MjMyMTI5ODE3NWUtOS0xMTM1OTY0NzU1Nzc4ODE5NWUtMjcqZiktMi43NTU3MzE0MzUxMzkwNjYzZS03KSktbCooYz0rYykpKSl9ZnVuY3Rpb24gWnVlKGwsYyl7Y3w9MDt2YXIgayxNLEQsSyxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxSPTAsRz0wLHBlPTA7Sz1sZSxsZT1sZSs0OHww''@;'; + put 'put ''LGs9SysxNnwwLE09SyxfW1NpPj4zXT1sPStsLEQ9MHx3bCgwfChmPTB8YVtTaT4+Ml0pLDB8KHc9MHxhW1NpKzQ+PjJdKSw2MyksRz0yMTQ3NDgzNjQ3Jnc7ZG97aWYoRz4+PjA8MTA3NDc1MjEyMyl7aWYoNTk4NTIzIT0oMTA0ODU3NSZ3fDApKXtpZihmPTAhPSgwfEQpLEc+Pj4wPDEwNzM5''@;'; + put 'put ''Mjg1NzMpe2lmKGYpe19bYz4+M109Yj0oQT1sKzEuNTcwNzk2MzI2NzM0MTI1NikrNjA3NzEwMDUwNjUwNjE5MmUtMjYsX1tjKzg+PjNdPUEtYis2MDc3MTAwNTA2NTA2MTkyZS0yNixmPS0xO2JyZWFrfV9bYz4+M109Yj0oQT1sKy0xLjU3MDc5NjMyNjczNDEyNTYpKy02MDc3MTAwNTA2NTA2''@;'; + put 'put ''MTkyZS0yNixfW2MrOD4+M109QS1iLTYwNzcxMDA1MDY1MDYxOTJlLTI2LGY9MTticmVha31pZihmKXtfW2M+PjNdPWI9KEE9bCszLjE0MTU5MjY1MzQ2ODI1MTIpKzEuMjE1NDIwMTAxMzAxMjM4NGUtMTAsX1tjKzg+PjNdPUEtYisxLjIxNTQyMDEwMTMwMTIzODRlLTEwLGY9LTI7YnJlYWt9''@;'; + put 'put ''X1tjPj4zXT1iPShBPWwrLTMuMTQxNTkyNjUzNDY4MjUxMikrLTEuMjE1NDIwMTAxMzAxMjM4NGUtMTAsX1tjKzg+PjNdPUEtYi0xLjIxNTQyMDEwMTMwMTIzODRlLTEwLGY9MjticmVha31SPTIxfWVsc2V7aWYoRz4+PjA8MTA3NTU5NDgxMil7aWYoRz4+PjA8MTA3NTE4MzAzNyl7aWYoMTA3''@;'; + put 'put ''NDk3NzE0OD09KDB8Rykpe1I9MjE7YnJlYWt9aWYoRCl7X1tjPj4zXT1iPShBPWwrNC43MTIzODg5ODAyMDIzNzcpKzEuODIzMTMwMTUxOTUxODU3OGUtMTAsX1tjKzg+PjNdPUEtYisxLjgyMzEzMDE1MTk1MTg1NzhlLTEwLGY9LTM7YnJlYWt9X1tjPj4zXT1iPShBPWwrLTQuNzEyMzg4OTgw''@;'; + put 'put ''MjAyMzc3KSstMS44MjMxMzAxNTE5NTE4NTc4ZS0xMCxfW2MrOD4+M109QS1iLTEuODIzMTMwMTUxOTUxODU3OGUtMTAsZj0zO2JyZWFrfWlmKDEwNzUzODg5MjM9PSgwfEcpKXtSPTIxO2JyZWFrfWlmKEQpe19bYz4+M109Yj0oQT1sKzYuMjgzMTg1MzA2OTM2NTAyNSkrMi40MzA4NDAyMDI2''@;'; + put 'put ''MDI0NzdlLTEwLF9bYys4Pj4zXT1BLWIrMi40MzA4NDAyMDI2MDI0NzdlLTEwLGY9LTQ7YnJlYWt9X1tjPj4zXT1iPShBPWwrLTYuMjgzMTg1MzA2OTM2NTAyNSkrLTIuNDMwODQwMjAyNjAyNDc3ZS0xMCxfW2MrOD4+M109QS1iLTIuNDMwODQwMjAyNjAyNDc3ZS0xMCxmPTQ7YnJlYWt9aWYo''@;'; + put 'put ''Rz4+PjA+PTEwOTQyNjMyOTEpe2lmKEc+Pj4wPjIxNDY0MzUwNzEpe19bYys4Pj4zXT1iPWwtbCxfW2M+PjNdPWIsZj0wO2JyZWFrfWFbU2k+PjJdPWYsYVtTaSs0Pj4yXT0xMDQ4NTc1Jnd8MTA5NjgxMDQ5NixsPStfW1NpPj4zXSxmPTA7ZG97X1trKyhmPDwzKT4+M109Yj0rKDB8fn5sKSxs''@;'; + put 'put ''PTE2Nzc3MjE2KihsLWIpLGY9ZisxfDB9d2hpbGUoMiE9KDB8ZikpO2lmKF9baysxNj4+M109bCwwPT1sKWZvcihmPTE7MD09K19baysoZjw8Myk+PjNdOylmPWYrLTF8MDtlbHNlIGY9MjtpZihmPTB8enVlKGssTSwoRz4+PjIwKS0xMDQ2fDAsZisxfDAsMSksbD0rX1tNPj4zXSxEKXtfW2M+''@;'; + put 'put ''PjNdPS1sLF9bYys4Pj4zXT0tK19bTSs4Pj4zXSxmPTAtZnwwO2JyZWFrfV9bYz4+M109bCxfW2MrOD4+M109K19bTSs4Pj4zXTticmVha31SPTIxfX13aGlsZSgwKTtyZXR1cm4gMjE9PSgwfFIpJiYoZj1+fihBPS42MzY2MTk3NzIzNjc1ODE0KmwrNjc1NTM5OTQ0MTA1NTc0NC02NzU1Mzk5''@;'; + put 'put ''NDQxMDU1NzQ0KSxfW2M+PjNdPWw9KHA9bC0xLjU3MDc5NjMyNjczNDEyNTYqQSktKG09NjA3NzEwMDUwNjUwNjE5MmUtMjYqQSksX1tTaT4+M109bCwoKHc9Rz4+PjIwKS0oMjA0NyYoUj0wfHdsKDB8YVtTaT4+Ml0sMHxhW1NpKzQ+PjJdLDUyKSkpfDApPjE2JiYoX1tjPj4zXT1sPShiPXAt''@;'; + put 'put ''KG09NjA3NzEwMDUwNjMwMzk2NmUtMjYqQSkpLShtPTIwMjIyNjYyNDg3OTU5NTA2ZS0zNypBLShwLWItbSkpLF9bU2k+PjNdPWwsQT04NDc4NDI3NjYwMzY4OWUtNDUqQS0oYi0ocD1iLShwZT0yMDIyMjY2MjQ4NzExMTY2NWUtMzcqQSkpLXBlKSwody0oMjA0NyYoRz0wfHdsKDB8YVtTaT4+''@;'; + put 'put ''Ml0sMHxhW1NpKzQ+PjJdLDUyKSkpfDApPjQ5PyhfW2M+PjNdPWw9cC1BLG09QSk6cD1iKSxfW2MrOD4+M109cC1sLW0pLGxlPUssMHxmfWZ1bmN0aW9uIHp1ZShsLGMsZixwLG0pe2x8PTAsY3w9MDt2YXIgYmUsT2UsTGUsUmUsSGUscWUsbnQsV2Usb3Qsc3QsRXQsQT0wLHc9MCxiPTAsaz0w''@;'; + put 'put ''LE09MCxEPTAsUj0wLEc9MCxLPTAscGU9MCxnZT0wLFZlPTAsU3Q9MCxrdD0wLFp0PTA7aWYoRXQ9bGUsbGU9bGUrNTYwfDAsV2U9RXQrNDgwfDAscWU9RXQrMzIwfDAsc3Q9RXQrMTYwfDAsU3Q9RXQsb3Q9MHxhWzYzMjIwKygobXw9MCk8PDIpPj4yXSxHPShwfD0wKS0xfDAsYj0oZnw9MCkt''@;'; + put 'put ''MjQrKG50PTB8QXIoVmU9KDB8KFZlPShmKy0zfDApLzI0fDApKT4wP1ZlOjAsLTI0KSl8MCwob3QrR3wwKT49MClmb3IoRD1vdCtwfDAsaz1WZS1HfDAsTT0wO19bcWUrKE08PDMpPj4zXT1BPSgwfGspPDA/MDorKDB8YVs2MzIzNisoazw8Mik+PjJdKSwoMHwoTT1NKzF8MCkpIT0oMHxEKTsp''@;'; + put 'put ''az1rKzF8MDtmb3IoUj0oMHxwKT4wLEQ9MDs7KXtpZihSKXtNPUQrR3wwLEE9MCxrPTA7ZG97QSs9K19bbCsoazw8Myk+PjNdKitfW3FlKyhNLWs8PDMpPj4zXSxrPWsrMXwwfXdoaWxlKCgwfGspIT0oMHxwKSl9ZWxzZSBBPTA7aWYoX1tTdCsoRDw8Myk+PjNdPUEsISgoMHxEKTwoMHxvdCkp''@;'; + put 'put ''KWJyZWFrO0Q9RCsxfDB9YmU9KDB8Yik+MCxPZT0yNC1ifDAsTGU9MjMtYnwwLFJlPSgwfHApPjAsSGU9MD09KDB8Yiksaz1vdDtlOmZvcig7Oyl7aWYoQT0rX1tTdCsoazw8Myk+PjNdLFI9KDB8ayk+MClmb3IoTT1rLEQ9MDthW1dlKyhEPDwyKT4+Ml09fn4oQS0xNjc3NzIxNioodz0rKDB8''@;'; + put 'put ''fn4oNS45NjA0NjQ0Nzc1MzkwNjNlLTgqQSkpKSksZ2U9TSxBPStfW1N0KygoTT1NKy0xfDApPDwzKT4+M10rdywhKCgwfGdlKTw9MSk7KUQ9RCsxfDA7QT0rdmcoQSxiKSxBLT04KitjZiguMTI1KkEpLEEtPSsoMHwoTT1+fkEpKTtkb3tpZighYmUpe2lmKEhlKXtEPWFbV2UrKGsrLTE8PDIp''@;'; + put 'put ''Pj4yXT4+MjMsa3Q9MTk7YnJlYWt9aWYoQT49LjUpe0Q9MixrdD0yMDticmVha31HPTAsZ2U9TTticmVha31hWyhnZT1XZSsoaystMTw8Mil8MCk+PjJdPUQ9KEQ9MHxhW2dlPj4yXSktKChrdD1EPj5PZSk8PE9lKXwwLEQ+Pj1MZSxNPWt0K018MCxrdD0xOX13aGlsZSgwKTtpZigxOT09KDB8''@;'; + put 'put ''a3QpJiYoa3Q9MCwoMHxEKT4wP2t0PTIwOihHPUQsZ2U9TSkpLDIwPT0oMHxrdCkpe2lmKGt0PTAsZ2U9TSsxfDAsUil7TT0wLHBlPTA7ZG97Sz0wfGFbKEc9V2UrKHBlPDwyKXwwKT4+Ml0sTT8oUj0xNjc3NzIxNSxrdD0yMyk6Sz8oTT0xLFI9MTY3NzcyMTYsa3Q9MjMpOk09MCwyMz09KDB8''@;'; + put 'put ''a3QpJiYoa3Q9MCxhW0c+PjJdPVItSykscGU9cGUrMXwwfXdoaWxlKCgwfHBlKSE9KDB8aykpfWVsc2UgTT0wO3Q6ZG97aWYoYmUpe3N3aXRjaCgwfGIpe2Nhc2UgMTpSPTgzODg2MDc7YnJlYWs7Y2FzZSAyOlI9NDE5NDMwMzticmVhaztkZWZhdWx0OmJyZWFrIHR9YVsocGU9V2UrKGsrLTE8''@;'; + put 'put ''PDIpfDApPj4yXT1hW3BlPj4yXSZSfX13aGlsZSgwKTsyPT0oMHxEKT8oQT0xLUEsTT8oRz0yLEEtPSt2ZygxLGIpKTpHPTIpOkc9RH1pZigwIT1BKXtrdD00MjticmVha31pZigoMHxrKT4oMHxvdCkpe009MCxEPWs7ZG97TXw9YVtXZSsoKEQ9RCstMXwwKTw8Mik+PjJdfXdoaWxlKCgwfEQp''@;'; + put 'put ''PigwfG90KSk7aWYoTSl7a3Q9NDE7YnJlYWt9TT0xfWVsc2UgTT0xO2Zvcig7ISgwfGFbV2UrKG90LU08PDIpPj4yXSk7KU09TSsxfDA7aWYoUj1NK2t8MCwoMHxNKTw9MClrPVI7ZWxzZSBmb3IoOzspe2lmKF9bcWUrKChNPWsrcHwwKTw8Myk+PjNdPSsoMHxhWzYzMjM2KygoRD1rKzF8MCkr''@;'; + put 'put ''VmU8PDIpPj4yXSksUmUpe0E9MCxrPTA7ZG97QSs9K19bbCsoazw8Myk+PjNdKitfW3FlKyhNLWs8PDMpPj4zXSxrPWsrMXwwfXdoaWxlKCgwfGspIT0oMHxwKSl9ZWxzZSBBPTA7aWYoX1tTdCsoRDw8Myk+PjNdPUEsISgoMHxEKTwoMHxSKSkpe2s9Ujtjb250aW51ZSBlfWs9RH19aWYoNDE9''@;'; + put 'put ''PSgwfGt0KSlmb3IoOzspe2lmKGt0PTAsYj1iKy0yNHwwLDB8YVtXZSsoKGs9aystMXwwKTw8Mik+PjJdKXtSPWs7YnJlYWt9a3Q9NDF9ZWxzZSA0Mj09KDB8a3QpJiYoKEE9K3ZnKEEsMC1ifDApKT49MTY3NzcyMTYmJihhW1dlKyhrPDwyKT4+Ml09fn4oQS0xNjc3NzIxNioodz0rKDB8fn4o''@;'; + put 'put ''NS45NjA0NjQ0Nzc1MzkwNjNlLTgqQSkpKSksYj1udCtmfDAsaz1rKzF8MCxBPXcpLGFbV2UrKGs8PDIpPj4yXT1+fkEsUj1rKTtpZihEPSgwfFIpPi0xKXtmb3IoQT0rdmcoMSxiKSxiPVI7X1tTdCsoYjw8Myk+PjNdPUEqKygwfGFbV2UrKGI8PDIpPj4yXSksKDB8Yik+MDspQSo9NS45NjA0''@;'; + put 'put ''NjQ0Nzc1MzkwNjNlLTgsYj1iKy0xfDA7aWYoRClmb3Ioaz1SOzspe2ZvcihNPVIta3wwLGI9MCxBPTA7QSs9K19bMTA5MDQrKGI8PDMpPj4zXSorX1tTdCsoYitrPDwzKT4+M10sISgoMHxiKT49KDB8b3QpfCgwfGIpPj0oMHxNKSk7KWI9YisxfDA7aWYoX1tzdCsoTTw8Myk+PjNdPUEsISgo''@;'; + put 'put ''MHxrKT4wKSlicmVhaztrPWsrLTF8MH19c3dpdGNoKDB8bSl7Y2FzZSAwOmlmKEQpZm9yKEE9MCxiPVI7QSs9K19bc3QrKGI8PDMpPj4zXSwoMHxiKT4wOyliPWIrLTF8MDtlbHNlIEE9MDt3PTA9PSgwfEcpP0E6LUEsa3Q9NzM7YnJlYWs7Y2FzZSAyOmNhc2UgMTppZihEKWZvcihBPTAsYj1S''@;'; + put 'put ''O0ErPStfW3N0KyhiPDwzKT4+M10sKDB8Yik+MDspYj1iKy0xfDA7ZWxzZSBBPTA7aWYoX1tjPj4zXT0oaz0wPT0oMHxHKSk/QTotQSxBPStfW3N0Pj4zXS1BLCgwfFIpPj0xKWZvcihiPTE7QSs9K19bc3QrKGI8PDMpPj4zXSwoMHxiKSE9KDB8Uik7KWI9YisxfDA7dz1rP0E6LUEsYz1jKzh8''@;'; + put 'put ''MCxrdD03MzticmVhaztjYXNlIDM6aWYoKDB8Uik+MCl7Yj1SLEE9K19bc3QrKFI8PDMpPj4zXTtkb3tfW3N0Kygoa3Q9Yik8PDMpPj4zXT0oWnQ9QSkrKCh3PStfWyhTdD1zdCsoKGI9YistMXwwKTw8Myl8MCk+PjNdKS0oQT13K0EpKSxfW1N0Pj4zXT1BfXdoaWxlKCgwfGt0KT4xKTtpZihr''@;'; + put 'put ''PSgwfFIpPjEpe2I9UixBPStfW3N0KyhSPDwzKT4+M107ZG97X1tzdCsoKGt0PWIpPDwzKT4+M109KHc9QSkrKChadD0rX1soU3Q9c3QrKChiPWIrLTF8MCk8PDMpfDApPj4zXSktKEE9WnQrQSkpLF9bU3Q+PjNdPUF9d2hpbGUoKDB8a3QpPjIpO2lmKGspZm9yKGI9Uix3PTA7dys9K19bc3Qr''@;'; + put 'put ''KGI8PDMpPj4zXSwoMHxiKT4yOyliPWIrLTF8MDtlbHNlIHc9MH1lbHNlIHc9MH1lbHNlIHc9MDtBPStfW3N0Pj4zXSxHPyhfW2M+PjNdPS1BLHc9LXcsQT0tK19bc3QrOD4+M10pOihfW2M+PjNdPUEsQT0rX1tzdCs4Pj4zXSksX1tjKzg+PjNdPUEsYz1jKzE2fDAsa3Q9NzN9cmV0dXJuIDcz''@;'; + put 'put ''PT0oMHxrdCkmJihfW2M+PjNdPXcpLGxlPUV0LDcmZ2V8MH1mdW5jdGlvbiB2ZyhsLGMpe2w9K2w7dmFyIGY9MCxwPTA7cmV0dXJuKDB8KGN8PTApKTw9MTAyMz8oMHxjKTwtMTAyMiYmKGwqPTIyMjUwNzM4NTg1MDcyMDE0ZS0zMjQsZj1jKzIwNDR8MCxsPShwPSgwfGMpPC0yMDQ0KT8yMjI1''@;'; + put 'put ''MDczODU4NTA3MjAxNGUtMzI0Kmw6bCxjPXA/KDB8Zik+LTEwMjI/ZjotMTAyMjpjKzEwMjJ8MCk6KGwqPTg5ODg0NjU2NzQzMTE1OGUyOTMscD1jKy0yMDQ2fDAsbD0oZj0oMHxjKT4yMDQ2KT84OTg4NDY1Njc0MzExNThlMjkzKmw6bCxjPWY/KDB8cCk8MTAyMz9wOjEwMjM6YystMTAyM3ww''@;'; + put 'put ''KSxmPTB8Wm8oYysxMDIzfDAsMCw1MikscD1EbixhW1NpPj4yXT1mLGFbU2krND4+Ml09cCwrbCorX1tTaT4+M119ZnVuY3Rpb24ga2oobCl7dmFyIGM9MCxmPTAscD0wLG09MCxBPTA7X1tTaT4+M109bD0rbCxjPTIxNDc0ODM2NDcmKGY9MHxhW1NpKzQ+PjJdKTtkb3tpZihjPj4+MD4yMTQ2''@;'; + put 'put ''NDM1MDcxKWwrPWw7ZWxzZXtpZihjPj4+MDwxMDQ4NTc2KXtpZihfW1NpPj4zXT0weDQwMDAwMDAwMDAwMDAwKmwsIShjPTIxNDc0ODM2NDcmKGY9MHxhW1NpKzQ+PjJdKSkpYnJlYWs7cD02OTYyMTk3OTV9ZWxzZSBwPTcxNTA5NDE2MzthW1NpPj4yXT0wLGFbU2krND4+Ml09KChjPj4+MCkv''@;'; + put 'put ''M3wwKStwfC0yMTQ3NDgzNjQ4JmYsX1tTaT4+M109KChBPShtPStfW1NpPj4zXSkqbSoobS9sKSkqKEEqQSkqKC4xNDU5OTYxOTI4ODY2MTI0NSpBLS43NTgzOTc5MzQ3Nzg3NjYpKyhBKigxLjYyMTQyOTcyMDEwNTM1NDUqQS0xLjg4NDk3OTc5NTQzMzc3MTcpKzEuODc1OTUxODI0MjcxNzcp''@;'; + put 'put ''KSptLGY9MHx6bCgwfGFbU2k+PjJdLDB8YVtTaSs0Pj4yXSwtMjE0NzQ4MzY0OCwwKSxwPURuLGFbU2k+PjJdPS0xMDczNzQxODI0JmYsYVtTaSs0Pj4yXT1wLGw9KChsLz0obT0rX1tTaT4+M10pKm0pLW0pLyhtK20rbCkqbSttfX13aGlsZSgwKTtyZXR1cm4rbH1mdW5jdGlvbiBzJChsLGMp''@;'; + put 'put ''e3JldHVybisgK2Z1bmN0aW9uIEd1ZShsLGMpe2M9K2M7dmFyIHAsZj0wO3JldHVybiBfW1NpPj4zXT1sPStsLHA9MHxhW1NpPj4yXSxmPTB8YVtTaSs0Pj4yXSxfW1NpPj4zXT1jLGY9LTIxNDc0ODM2NDgmYVtTaSs0Pj4yXXwyMTQ3NDgzNjQ3JmYsYVtTaT4+Ml09cCxhW1NpKzQ+PjJdPWYs''@;'; + put 'put ''KyArX1tTaT4+M119KGw9K2wsYz0rYyl9ZnVuY3Rpb24gdSQobCxjKXtyZXR1cm4rICt2ZyhsPStsLGN8PTApfWZ1bmN0aW9uIGMkKGwsYyl7cmV0dXJuKyArZnVuY3Rpb24gV3VlKGwsYyl7Yz0rYzt2YXIgRyxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsSz0wO19b''@;'; + put 'put ''U2k+PjNdPWw9K2wsdz0wfGFbU2k+PjJdLGs9MHxhW1NpKzQ+PjJdLF9bU2k+PjNdPWMsRD0wfGFbU2k+PjJdLFI9MHxhW1NpKzQ+PjJdLHA9MjA0NyYocD0wfHdsKDB8dywwfGssNTIpKSxNPTIwNDcmKE09MHx3bCgwfEQsMHxSLDUyKSksRz0tMjE0NzQ4MzY0OCZrLEE9MHxabygwfEQsMHxS''@;'; + put 'put ''LDEpLGI9RG47ZTpkb3tpZigwPT0oMHxBKSYwPT0oMHxiKXx8KG09MHxZdWUoYyksZj0yMTQ3NDgzNjQ3JkRuLDIwNDc9PSgwfHApfGY+Pj4wPjIxNDY0MzUwNzJ8MjE0NjQzNTA3Mj09KDB8ZikmbT4+PjA+MCkpSz0zO2Vsc2V7aWYoZj0wfFpvKDB8dywwfGssMSksISgobT1Ebik+Pj4wPmI+''@;'; + put 'put ''Pj4wfCgwfG0pPT0oMHxiKSZmPj4+MD5BPj4+MCkpcmV0dXJuKygoMHxmKT09KDB8QSkmKDB8bSk9PSgwfGIpPzAqbDpsKTtpZihwKUE9MTA0ODU3NSZrfDEwNDg1NzY7ZWxzZXtpZihmPTB8Wm8oMHx3LDB8aywxMiksKDB8KG09RG4pKT4tMXwtMT09KDB8bSkmZj4+PjA+NDI5NDk2NzI5NSl7''@;'; + put 'put ''cD0wO2Rve3A9cCstMXwwLGY9MHxabygwfGYsMHxtLDEpLG09RG59d2hpbGUoKDB8bSk+LTF8LTE9PSgwfG0pJmY+Pj4wPjQyOTQ5NjcyOTUpfWVsc2UgcD0wO3c9MHxabygwfHcsMHxrLDEtcHwwKSxBPURufWlmKE0paz0xMDQ4NTc1JlJ8MTA0ODU3NjtlbHNle2lmKG09MHxabygwfEQsMHxS''@;'; + put 'put ''LDEyKSwoMHwoYj1EbikpPi0xfC0xPT0oMHxiKSZtPj4+MD40Mjk0OTY3Mjk1KXtmPTA7ZG97Zj1mKy0xfDAsbT0wfFpvKDB8bSwwfGIsMSksYj1Ebn13aGlsZSgoMHxiKT4tMXwtMT09KDB8YikmbT4+PjA+NDI5NDk2NzI5NSl9ZWxzZSBmPTA7RD0wfFpvKDB8RCwwfFIsMS1mfDApLE09Zixr''@;'; + put 'put ''PURufW09MHxTcCgwfHcsMHxBLDB8RCwwfGspLGI9KDB8KGY9RG4pKT4tMXwtMT09KDB8ZikmbT4+PjA+NDI5NDk2NzI5NTt0OmRve2lmKCgwfHApPigwfE0pKXtmb3IoOzspe2lmKGIpe2lmKDA9PSgwfG0pJjA9PSgwfGYpKWJyZWFrfWVsc2UgbT13LGY9QTtpZihwPXArLTF8MCxtPTB8U3Ao''@;'; + put 'put ''MHwodz0wfFpvKDB8bSwwfGYsMSkpLDB8KEE9RG4pLDB8RCwwfGspLGI9KDB8KGY9RG4pKT4tMXwtMT09KDB8ZikmbT4+PjA+NDI5NDk2NzI5NSwoMHxwKTw9KDB8TSkpYnJlYWsgdH1jPTAqbDticmVhayBlfX13aGlsZSgwKTtpZihiKXtpZigwPT0oMHxtKSYwPT0oMHxmKSl7Yz0wKmw7YnJl''@;'; + put 'put ''YWt9fWVsc2UgZj1BLG09dztpZihmPj4+MDwxMDQ4NTc2fDEwNDg1NzY9PSgwfGYpJm0+Pj4wPDApZG97bT0wfFpvKDB8bSwwfGYsMSksZj1EbixwPXArLTF8MH13aGlsZShmPj4+MDwxMDQ4NTc2fDEwNDg1NzY9PSgwfGYpJm0+Pj4wPDApOygwfHApPjA/KFI9MHx6bCgwfG0sMHxmLDAsLTEw''@;'; + put 'put ''NDg1NzYpLGY9RG4scD0wfFpvKDB8cCwwLDUyKSxmfD1EbixwfD1SKToocD0wfHdsKDB8bSwwfGYsMS1wfDApLGY9RG4pLGFbU2k+PjJdPXAsYVtTaSs0Pj4yXT1mfEcsYz0rX1tTaT4+M119fXdoaWxlKDApO3JldHVybiAzPT0oMHxLKSYmKGM9KGMqPWwpL2MpLCtjfShsPStsLGM9K2MpfWZ1''@;'; + put 'put ''bmN0aW9uIFl1ZShsKXtyZXR1cm4gX1tTaT4+M109bD0rbCxEbj0wfGFbU2krND4+Ml0sMHxhW1NpPj4yXX1mdW5jdGlvbiBLeShsLGMpe2M9K2M7dmFyIGIsayxNLEQsUixHLEsscGUsZj0wLHA9MCxtPTAsQT0wLHc9MCxnZT0wO0c9bGUsbGU9bGUrMzJ8MCxrPUcrMjR8MCxNPUcrMTZ8MCxE''@;'; + put 'put ''PUcrOHwwLFI9RyxfW1NpPj4zXT1sPStsLGdlPTB8YVtTaT4+Ml0sQT0wfGFbU2krND4+Ml0sX1tTaT4+M109YyxwZT0odz0oQSY9MjE0NzQ4MzY0Nyk+Pj4wPChtPTIxNDc0ODM2NDcmYVtTaSs0Pj4yXSk+Pj4wfCgwfEEpPT0oMHxtKSZnZT4+PjA8KHA9MHxhW1NpPj4yXSk+Pj4wKT9wOmdl''@;'; + put 'put ''LEs9dz9tOkEscD13P2dlOnAsbT13P0E6bSxBPTB8d2woMHxwZSwwfEssNTIpLHc9MHx3bCgwfHAsMHxtLDUyKSxhW1NpPj4yXT1wZSxhW1NpKzQ+PjJdPUssbD0rX1tTaT4+M10sYVtTaT4+Ml09cCxhW1NpKzQ+PjJdPW0sYj0rX1tTaT4+M107ZG97aWYoMjA0NyE9KDB8dykpe2lmKCEoMD09''@;'; + put 'put ''KDB8cCkmMD09KDB8bSl8MjA0Nz09KDB8QSkpKXtpZigoQS13fDApPjY0KXtsKz1iO2JyZWFrfSgwfEEpPjE1MzM/KGY9NS4yNjAxMzU5MDE1NDgzNzRlMjEwLGM9MTkwMTA5MTU2NjI5NTE2ZS0yMjUqbCxsPTE5MDEwOTE1NjYyOTUxNmUtMjI1KmIpOihmPShnZT0oMHx3KTw1NzMpPzE5MDEw''@;'; + put 'put ''OTE1NjYyOTUxNmUtMjI1OjEsYz1nZT81LjI2MDEzNTkwMTU0ODM3NGUyMTAqbDpsLGw9Z2U/NS4yNjAxMzU5MDE1NDgzNzRlMjEwKmI6YiksVXVlKGssTSxjKSxVdWUoRCxSLGwpLGw9ZiorRDAoKygrX1tSPj4zXSsgK19bTT4+M10rICtfW0Q+PjNdKyArX1trPj4zXSkpfX1lbHNlIGw9Yn13''@;'; + put 'put ''aGlsZSgwKTtyZXR1cm4gbGU9RywrbH1mdW5jdGlvbiBVdWUobCxjLGYpe2N8PTA7dmFyIHAsbT0wO209MTM0MjE3NzI5KihmPStmKSxwPWYtKG0rPWYtbSksX1sobHw9MCk+PjNdPWYqPWYsX1tjPj4zXT1wKnArKG0qbS1mKzIqbSpwKX1mdW5jdGlvbiBkTChsLGMsZil7Y3w9MCxmfD0wO3Zh''@;'; + put 'put ''ciBBLGIscD0wLG09MCx3PTAsaz0wO2I9bGUsbGU9bGUrMTZ8MCxBPWIsX1tTaT4+M109bD0rbCxtPTIxNDc0ODM2NDcmYVtTaSs0Pj4yXTtkb3tpZihtPj4+MDwxMDcyMjQzMTk2KXtpZihtPj4+MDwxMDQ0ODE2MDMwKXtfW2M+PjNdPWwsX1tmPj4zXT0xO2JyZWFrfV9bYz4+M109K2kkKGws''@;'; + put 'put ''MCwwKSxfW2Y+PjNdPStsJChsLDApO2JyZWFrfWlmKG0+Pj4wPjIxNDY0MzUwNzEpe19bZj4+M109dz1sLWwsX1tjPj4zXT13O2JyZWFrfXN3aXRjaChtPTB8WnVlKGwsQSkscD0raSQoK19bQT4+M10sK19bKGs9QSs4fDApPj4zXSwxKSxsPStsJCgrX1tBPj4zXSwrX1trPj4zXSksMyZtKXtj''@;'; + put 'put ''YXNlIDA6X1tjPj4zXT1wLHc9bDticmVhaztjYXNlIDE6X1tjPj4zXT1sLHc9LXA7YnJlYWs7Y2FzZSAyOl9bYz4+M109LXAsdz0tbDticmVhaztjYXNlIDM6X1tjPj4zXT0tbCx3PXB9X1tmPj4zXT13fXdoaWxlKDApO2xlPWJ9ZnVuY3Rpb24geEFlKGwsYyl7cmV0dXJuKyArYSQobD0rbCxj''@;'; + put 'put ''fD0wKX1mdW5jdGlvbiBzMihsLGMsZil7bHw9MCxjfD0wO3ZhciBwPTAsbT0wO2lmKGZ8PTApe3A9MHxmZVtsPj4wXTtlOmRve2lmKHA8PDI0Pj4yNClmb3IoOzspe2lmKCEocDw8MjQ+PjI0PT0obT0wfGZlW2M+PjBdKTw8MjQ+PjI0JjAhPSgwfChmPWYrLTF8MCkpJm08PDI0Pj4yNCE9MCkp''@;'; + put 'put ''YnJlYWsgZTtpZihjPWMrMXwwLCEoKHA9MHxmZVsobD1sKzF8MCk+PjBdKTw8MjQ+PjI0KSl7cD0wO2JyZWFrfX1lbHNlIHA9MH13aGlsZSgwKTtwPSgyNTUmcCktKDB8WHRbYz4+MF0pfDB9ZWxzZSBwPTA7cmV0dXJuIDB8cH1mdW5jdGlvbiAkcyhsLGMpe3JldHVybiBsPTB8aEwobHw9MCxj''@;'; + put 'put ''fD0wKSwwfCgoMHxmZVtsPj4wXSk9PSgyNTUmYyk8PDI0Pj4yND9sOjApfWZ1bmN0aW9uICRjKGwpe3JldHVybiAxJigzMj09KDB8KGx8PTApKXwobCstOXwwKT4+PjA8NSl8MH1mdW5jdGlvbiBlUyhsLGMsZil7bHw9MDt2YXIgcD0wLG09MCxBPTAsdz0wO0E9MjU1JihjfD0wKSxwPTAhPSgw''@;'; + put 'put ''fChmfD0wKSk7ZTpkb3tpZihwJjAhPSgzJmx8MCkpZm9yKG09MjU1JmM7Oyl7aWYoKDB8ZmVbbD4+MF0pPT1tPDwyND4+MjQpe3c9NjticmVhayBlfWlmKCEoKHA9MCE9KDB8KGY9ZistMXwwKSkpJjAhPSgzJihsPWwrMXwwKXwwKSkpe3c9NTticmVha319ZWxzZSB3PTV9d2hpbGUoMCk7NT09''@;'; + put 'put ''KDB8dykmJihwP3c9NjpmPTApO2U6ZG97aWYoNj09KDB8dykmJihtPTI1NSZjLCgwfGZlW2w+PjBdKSE9bTw8MjQ+PjI0KSl7cD0wfEFyKEEsMTY4NDMwMDkpO3Q6ZG97aWYoZj4+PjA+Myl7Zm9yKDshKCgtMjEzOTA2MjE0NCYoQT1hW2w+PjJdXnApXi0yMTM5MDYyMTQ0KSZBKy0xNjg0MzAw''@;'; + put 'put ''OXwwKTspaWYobD1sKzR8MCwoZj1mKy00fDApPj4+MDw9Myl7dz0xMTticmVhayB0fX1lbHNlIHc9MTF9d2hpbGUoMCk7aWYoMTE9PSgwfHcpJiYhZil7Zj0wO2JyZWFrfWZvcig7Oyl7aWYoKDB8ZmVbbD4+MF0pPT1tPDwyND4+MjQpYnJlYWsgZTtpZihsPWwrMXwwLCEoZj1mKy0xfDApKXtm''@;'; + put 'put ''PTA7YnJlYWt9fX19d2hpbGUoMCk7cmV0dXJuIDB8KDB8Zj9sOjApfWZ1bmN0aW9uIGYkKGwsYyxmLHAsbSl7dmFyIEEsdyxiLGs7cmV0dXJuIGx8PTAsY3w9MCxmfD0wLHB8PTAsbXw9MCxrPWxlLGxlPWxlKzEyOHwwLGFbKHc9ayk+PjJdPTAsYVsoYj13KzR8MCk+PjJdPWwsYVt3KzQ0Pj4y''@;'; + put 'put ''XT1sLGFbKEE9dys4fDApPj4yXT0oMHxsKTwwPy0xOmwrMjE0NzQ4MzY0N3wwLGFbdys3Nj4+Ml09LTEsY2godywwKSxmPTB8aCQodyxmLDEscCxtKSwwfGMmJihhW2M+PjJdPWwrKCgwfGFbYj4+Ml0pKygwfGFbdysxMDg+PjJdKS0oMHxhW0E+PjJdKSkpLGxlPWssMHxmfWZ1bmN0aW9uIGNo''@;'; + put 'put ''KGwsYyl7dmFyIGYscCxtO2FbMTA0KyhsfD0wKT4+Ml09Y3w9MCxhW2wrMTA4Pj4yXT1tPShmPTB8YVtsKzg+PjJdKS0ocD0wfGFbbCs0Pj4yXSl8MCxhW2wrMTAwPj4yXT0wIT0oMHxjKSYoMHxtKT4oMHxjKT9wK2N8MDpmfWZ1bmN0aW9uIGgkKGwsYyxmLHAsbSl7bHw9MCxjfD0wLGZ8PTAs''@;'; + put 'put ''cHw9MCxtfD0wO3ZhciBBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLEs9MCxwZT0wO2U6ZG97aWYoYz4+PjA+MzYpYVs0NzY0M109MjIsbT0wLHA9MDtlbHNle3BlPWwrNHwwLEs9bCsxMDB8MDtkb3soQT0wfGFbcGU+PjJdKT4+PjA8KDB8YVtLPj4yXSk+Pj4wPyhhW3BlPj4yXT1B''@;'; + put 'put ''KzEsQT0wfFh0W0E+PjBdKTpBPTB8SWwobCl9d2hpbGUoMCE9KDB8JGMoQSkpKTt0OmRve3N3aXRjaCgwfEEpe2Nhc2UgNDM6Y2FzZSA0NTppZihBPSg0NT09KDB8QSkpPDwzMT4+MzEsKHc9MHxhW3BlPj4yXSk+Pj4wPCgwfGFbSz4+Ml0pPj4+MCl7YVtwZT4+Ml09dysxLEc9QSxBPTB8WHRb''@;'; + put 'put ''dz4+MF07YnJlYWsgdH1HPUEsQT0wfElsKGwpO2JyZWFrIHQ7ZGVmYXVsdDpHPTB9fXdoaWxlKDApO3c9MD09KDB8Yyk7ZG97aWYoMTY9PSgxNnxjKSY0OD09KDB8QSkpe2lmKChBPTB8YVtwZT4+Ml0pPj4+MDwoMHxhW0s+PjJdKT4+PjA/KGFbcGU+PjJdPUErMSxBPTB8WHRbQT4+MF0pOkE9''@;'; + put 'put ''MHxJbChsKSwxMjAhPSgzMnxBKSl7aWYodyl7Yz04LEQ9NDY7YnJlYWt9RD0zMjticmVha31pZigoQT0wfGFbcGU+PjJdKT4+PjA8KDB8YVtLPj4yXSk+Pj4wPyhhW3BlPj4yXT1BKzEsQT0wfFh0W0E+PjBdKTpBPTB8SWwobCksKDB8WHRbMTQ5NTkyK0E+PjBdKT4xNSl7aWYoKHA9MD09KDB8''@;'; + put 'put ''YVtLPj4yXSkpfHwoYVtwZT4+Ml09KDB8YVtwZT4+Ml0pLTEpLCFmKXtjaChsLDApLG09MCxwPTA7YnJlYWsgZX1pZihwKXttPTAscD0wO2JyZWFrIGV9YVtwZT4+Ml09KDB8YVtwZT4+Ml0pLTEsbT0wLHA9MDticmVhayBlfWM9MTYsRD00Nn1lbHNle2lmKCEoKGM9dz8xMDpjKT4+PjA+KDB8''@;'; + put 'put ''WHRbMTQ5NTkyK0E+PjBdKT4+PjApKXswfGFbSz4+Ml0mJihhW3BlPj4yXT0oMHxhW3BlPj4yXSktMSksY2gobCwwKSxhWzQ3NjQzXT0yMixtPTAscD0wO2JyZWFrIGV9RD0zMn19d2hpbGUoMCk7dDpkb3tpZigzMj09KDB8RCkpaWYoMTA9PSgwfGMpKXtpZigoYz1BKy00OHwwKT4+PjA8MTAp''@;'; + put 'put ''e0E9MCx3PWM7ZG97QT0oMTAqQXwwKSt3fDAsKGM9MHxhW3BlPj4yXSk+Pj4wPCgwfGFbSz4+Ml0pPj4+MD8oYVtwZT4+Ml09YysxLGM9MHxYdFtjPj4wXSk6Yz0wfElsKGwpLHc9YystNDh8MH13aGlsZSh3Pj4+MDwxMCZBPj4+MDw0Mjk0OTY3MjkpO2Y9MH1lbHNlIGM9QSxBPTAsZj0wO2lm''@;'; + put 'put ''KChiPWMrLTQ4fDApPj4+MDwxMCl7dz1jO2Rve2lmKGM9MHxydygwfEEsMHxmLDEwLDApLChrPURuKT4+PjA+KFI9fihNPSgoMHxiKTwwKTw8MzE+PjMxKSk+Pj4wfCgwfGspPT0oMHxSKSZjPj4+MD5+Yj4+PjApe2M9MTAsRD03MjticmVhayB0fUE9MHx6bCgwfGMsMHxrLDB8YiwwfE0pLGY9''@;'; + put 'put ''RG4sKGM9MHxhW3BlPj4yXSk+Pj4wPCgwfGFbSz4+Ml0pPj4+MD8oYVtwZT4+Ml09YysxLHc9MHxYdFtjPj4wXSk6dz0wfElsKGwpLGI9dystNDh8MH13aGlsZShiPj4+MDwxMCYoZj4+PjA8NDI5NDk2NzI5fDQyOTQ5NjcyOT09KDB8ZikmQT4+PjA8MjU3Njk4MDM3OCkpO2I+Pj4wPjk/KHc9''@;'; + put 'put ''RyxjPWYpOihjPTEwLEQ9NzIpfWVsc2Ugdz1HLGM9Zn1lbHNlIEQ9NDZ9d2hpbGUoMCk7dDpkb3tpZig0Nj09KDB8RCkpe2lmKCEoYystMSZjKSl7aWYoRD0wfGZlWzE0OTg0OCsoKDIzKmN8MCk+Pj41JjcpPj4wXSxjPj4+MD4odz0yNTUmKGY9MHxmZVsxNDk1OTIrQT4+MF0pKT4+PjApe0E9''@;'; + put 'put ''MCxiPXc7ZG97QT1ifEE8PEQsKHc9MHxhW3BlPj4yXSk+Pj4wPCgwfGFbSz4+Ml0pPj4+MD8oYVtwZT4+Ml09dysxLHc9MHxYdFt3Pj4wXSk6dz0wfElsKGwpLGI9MjU1JihmPTB8ZmVbMTQ5NTkyK3c+PjBdKX13aGlsZShBPj4+MDwxMzQyMTc3MjgmYz4+PjA+Yj4+PjApO2I9MH1lbHNlIHc9''@;'; + put 'put ''QSxiPTAsQT0wO2lmKGs9MHx3bCgtMSwtMSwwfEQpLGM+Pj4wPD0oMjU1JmYpPj4+MHwoTT1Ebik+Pj4wPGI+Pj4wfCgwfE0pPT0oMHxiKSZrPj4+MDxBPj4+MCl7Zj1iLEQ9NzI7YnJlYWt9Zm9yKHc9Yjs7KXtpZihBPTB8Wm8oMHxBLDB8dywwfEQpLGI9RG4sQXw9MjU1JmYsKHc9MHxhW3Bl''@;'; + put 'put ''Pj4yXSk+Pj4wPCgwfGFbSz4+Ml0pPj4+MD8oYVtwZT4+Ml09dysxLHc9MHxYdFt3Pj4wXSk6dz0wfElsKGwpLGM+Pj4wPD0oMjU1JihmPTB8ZmVbMTQ5NTkyK3c+PjBdKSk+Pj4wfGI+Pj4wPk0+Pj4wfCgwfGIpPT0oMHxNKSZBPj4+MD5rPj4+MCl7Zj1iLEQ9NzI7YnJlYWsgdH13PWJ9fWlm''@;'; + put 'put ''KGM+Pj4wPih3PTI1NSYoZj0wfGZlWzE0OTU5MitBPj4wXSkpPj4+MCl7QT0wLGI9dztkb3tBPWIrKDB8QXIoQSxjKSl8MCwodz0wfGFbcGU+PjJdKT4+PjA8KDB8YVtLPj4yXSk+Pj4wPyhhW3BlPj4yXT13KzEsdz0wfFh0W3c+PjBdKTp3PTB8SWwobCksYj0yNTUmKGY9MHxmZVsxNDk1OTIr''@;'; + put 'put ''dz4+MF0pfXdoaWxlKEE+Pj4wPDExOTMwNDY0NyZjPj4+MD5iPj4+MCk7Yj0wfWVsc2Ugdz1BLEE9MCxiPTA7aWYoYz4+PjA+KDI1NSZmKT4+PjApZm9yKEQ9MHxpdygtMSwtMSwwfGMsMCksUj1EbixNPWI7Oyl7aWYoTT4+PjA+Uj4+PjB8KDB8TSk9PSgwfFIpJkE+Pj4wPkQ+Pj4wKXtmPU0s''@;'; + put 'put ''RD03MjticmVhayB0fWlmKGI9MHxydygwfEEsMHxNLDB8YywwKSwoaz1Ebik+Pj4wPjQyOTQ5NjcyOTV8LTE9PSgwfGspJmI+Pj4wPn4oZiY9MjU1KT4+PjApe2Y9TSxEPTcyO2JyZWFrIHR9aWYoQT0wfHpsKDB8YiwwfGssMHxmLDApLGI9RG4sKHc9MHxhW3BlPj4yXSk+Pj4wPCgwfGFbSz4+''@;'; + put 'put ''Ml0pPj4+MD8oYVtwZT4+Ml09dysxLHc9MHxYdFt3Pj4wXSk6dz0wfElsKGwpLGM+Pj4wPD0oMjU1JihmPTB8ZmVbMTQ5NTkyK3c+PjBdKSk+Pj4wKXtmPWIsRD03MjticmVha31NPWJ9ZWxzZSBmPWIsRD03Mn19d2hpbGUoMCk7aWYoNzI9PSgwfEQpKWlmKGM+Pj4wPigwfFh0WzE0OTU5Mit3''@;'; + put 'put ''Pj4wXSk+Pj4wKXtkb3soQT0wfGFbcGU+PjJdKT4+PjA8KDB8YVtLPj4yXSk+Pj4wPyhhW3BlPj4yXT1BKzEsQT0wfFh0W0E+PjBdKTpBPTB8SWwobCl9d2hpbGUoYz4+PjA+KDB8WHRbMTQ5NTkyK0E+PjBdKT4+PjApO2FbNDc2NDNdPTM0LHc9MD09KDEmcHwwKSYhMD9HOjAsYz1tLEE9cH1l''@;'; + put 'put ''bHNlIHc9RyxjPWY7aWYoMHxhW0s+PjJdJiYoYVtwZT4+Ml09KDB8YVtwZT4+Ml0pLTEpLCEoYz4+PjA8bT4+PjB8KDB8Yyk9PSgwfG0pJkE+Pj4wPHA+Pj4wKSl7aWYoISgwIT0oMSZwfDApfCExfDAhPSgwfHcpKSl7YVs0NzY0M109MzQscD0wfHpsKDB8cCwwfG0sLTEsLTEpLG09RG47YnJl''@;'; + put 'put ''YWt9aWYoYz4+PjA+bT4+PjB8KDB8Yyk9PSgwfG0pJkE+Pj4wPnA+Pj4wKXthWzQ3NjQzXT0zNDticmVha319cD0wfFNwKEFed3wwLGNeKHA9KCgwfHcpPDApPDwzMT4+MzEpfDAsMHx3LDB8cCksbT1Ebn19d2hpbGUoMCk7cmV0dXJuIERuPW0sMHxwfWZ1bmN0aW9uIElsKGwpe3ZhciBjPTAs''@;'; + put 'put ''Zj0wLHA9MCxtPTAsQT0wLHc9MDtyZXR1cm4gMCE9KDB8KG09MHxhWyhmPTEwNCsobHw9MCl8MCk+PjJdKSkmJigwfGFbbCsxMDg+PjJdKT49KDB8bSk/QT00OigwfChjPTB8cEwobCkpKT49MD8ocD0wfGFbZj4+Ml0sZj1sKzh8MCxwPyh3PTB8YVtmPj4yXSxmPXAtKDB8YVtsKzEwOD4+Ml0p''@;'; + put 'put ''fDAscD13LGY9KHctKG09MHxhW2wrND4+Ml0pfDApPCgwfGYpP3A6bSsoZistMSl8MCk6Zj1wPTB8YVtmPj4yXSxhW2wrMTAwPj4yXT1mLGY9bCs0fDAscD9hWyh3PWwrMTA4fDApPj4yXT1wKzEtKGY9MHxhW2Y+PjJdKSsoMHxhW3c+PjJdKTpmPTB8YVtmPj4yXSwoMHxjKSE9KDB8WHRbKGY9''@;'; + put 'put ''ZistMXwwKT4+MF0pJiYoZmVbZj4+MF09YykpOkE9NCw0PT0oMHxBKSYmKGFbbCsxMDA+PjJdPTAsYz0tMSksMHxjfWZ1bmN0aW9uIHBMKGwpe3ZhciBjLGY7cmV0dXJuIGY9bGUsbGU9bGUrMTZ8MCxjPWYsbD0wPT0oMHxkJChsfD0wKSkmJjE9PSgwfG1pWzYzJmFbbCszMj4+Ml1dKGwsYywx''@;'; + put 'put ''KSk/MHxYdFtjPj4wXTotMSxsZT1mLDB8bH1mdW5jdGlvbiBkJChsKXt2YXIgYz0wLGY9MDtyZXR1cm4gZmVbKGM9NzQrKGx8PTApfDApPj4wXT0yNTUrKGY9MHxmZVtjPj4wXSl8ZiwoMHxhWyhjPWwrMjB8MCk+PjJdKT4+PjA+KDB8YVsoZj1sKzI4fDApPj4yXSk+Pj4wJiZtaVs2MyZhW2wr''@;'; + put 'put ''MzY+PjJdXShsLDAsMCksYVtsKzE2Pj4yXT0wLGFbZj4+Ml09MCxhW2M+PjJdPTAsNCYoYz0wfGFbbD4+Ml0pPyhhW2w+PjJdPTMyfGMsYz0tMSk6KGFbbCs4Pj4yXT1mPSgwfGFbbCs0ND4+Ml0pKygwfGFbbCs0OD4+Ml0pfDAsYVtsKzQ+PjJdPWYsYz1jPDwyNz4+MzEpLDB8Y31mdW5jdGlv''@;'; + put 'put ''biBwJChsKXtyZXR1cm4oKGx8PTApLTQ4fDApPj4+MDwxMHwwfWZ1bmN0aW9uIGl2KGwpe3JldHVybiAxJigoKGx8PTApLTQ4fDApPj4+MDwxMHwwIT0oMHxnTChsKSkpfDB9ZnVuY3Rpb24gZ0wobCl7cmV0dXJuKCgzMnwobHw9MCkpLTk3fDApPj4+MDwyNnwwfWZ1bmN0aW9uIHkwKGwsYyl7''@;'; + put 'put ''Y3w9MDt2YXIgZj0wLHA9MCxtPTA7Zj0wfGZlWyhsfD0wKT4+MF07ZTpkb3tpZihmPDwyND4+MjQpZm9yKG09MjU1JmY7Oyl7aWYoISgocD0wfGZlW2M+PjBdKTw8MjQ+PjI0KXx8Zjw8MjQ+PjI0IT1wPDwyND4+MjQmJigwfChtPTB8Q3AobSkpKSE9KDB8Q3AoMjU1JnApKSlicmVhayBlO2lm''@;'; + put 'put ''KGM9YysxfDAsISgoZj0wfGZlWyhsPWwrMXwwKT4+MF0pPDwyND4+MjQpKXtmPTA7YnJlYWt9bT0yNTUmZn1lbHNlIGY9MH13aGlsZSgwKTtyZXR1cm4obT0wfENwKDI1NSZmKSktKDB8Q3AoMHxYdFtjPj4wXSkpfDB9ZnVuY3Rpb24gQ3AobCl7cmV0dXJuIDB8KDA9PSgwfFF1ZShsfD0wKSk/''@;'; + put 'put ''bDozMnxsKX1mdW5jdGlvbiBRdWUobCl7cmV0dXJuKChsfD0wKS02NXwwKT4+PjA8MjZ8MH1mdW5jdGlvbiBvdihsKXtyZXR1cm4gMHxKdWUobHw9MCwwKX1mdW5jdGlvbiBKdWUobCxjKXtsfD0wO3ZhciB3LGIsZj0wLHA9MCxtPTAsQT0wLGs9MDt3PSgoY3w9MCk8PDEpLTF8MCxiPWMrLTF8''@;'; + put 'put ''MDtlOmRve2lmKCEoKGwrLTQzMDA4fDApPj4+MDwyMjI3MnwobCstMTE3NzZ8MCk+Pj4wPDMwNzg0fChsKy0xNTM2fDApPj4+MDwyNTYwfDA9PSgwfGckKGwpKSkpe2lmKChmPTAhPSgwfGMpKSYobCstNDI1NnwwKT4+PjA8NDYpe2lmKCgwfGwpPjQyOTMpc3dpdGNoKDB8bCl7Y2FzZSA0Mjk1''@;'; + put 'put ''OmNhc2UgNDMwMTpicmVhaztkZWZhdWx0OmJyZWFrIGV9bD1sKzcyNjR8MDticmVha31pZigobCstMTE1MjB8MCk+Pj4wPDM4JigxXmYpKXtsPWwrLTcyNjR8MDticmVha31mPTA7ZG97aWYoKChwPWwtKDB8aHJbNjYzNDYrKGY8PDIpPj4xXSl8MCktKGImKEE9KG09MHxmZVs2NjM0NisoZjw8''@;'; + put 'put ''MikrMj4+MF0pPDwyND4+MjQpKXwwKT4+PjA8KDB8WHRbNjYzNDYrKGY8PDIpKzM+PjBdKT4+PjApe2s9MTE7YnJlYWt9Zj1mKzF8MH13aGlsZSg2MSE9KDB8ZikpO2lmKDExPT0oMHxrKSl7aWYobTw8MjQ+PjI0PT0xKXtsPWMrbC0oMSZwKXwwO2JyZWFrfWw9KDB8QXIodyxBKSkrbHwwO2Jy''@;'; + put 'put ''ZWFrfWY9MHxpdFs2NTg1OCsoKG09MS1jfDApPDwxKT4+MV07dDpkb3tpZihmPDwxNj4+MTYpe2ZvcihwPTA7KDY1NTM1JmZ8MCkhPSgwfGwpOylpZighKChmPTB8aXRbNjU4NTgrKChwPXArMXwwKTw8MikrKG08PDEpPj4xXSk8PDE2Pj4xNikpYnJlYWsgdDtsPTB8aHJbNjU4NTgrKHA8PDIp''@;'; + put 'put ''KyhjPDwxKT4+MV07YnJlYWsgZX19d2hpbGUoMCk7cmV0dXJuIDB8KChsKy02NjYwMCsoNDAqY3wwKXwwKT4+PjA8NDA/bCstNDArKDgwKmN8MCl8MDpsKX19d2hpbGUoMCk7cmV0dXJuIDB8bH1mdW5jdGlvbiBnJChsKXtyZXR1cm4gMHwoKGx8PTApPj4+MDwxMzEwNzI/KDB8WHRbMTQ5ODU3''@;'; + put 'put ''KygoMHxYdFsxNDk4NTcrKGw+Pj44KT4+MF0pPDw1fGw+Pj4zJjMxKT4+MF0pPj4+KDcmbCkmMTpsPj4+MDwxOTY2MDYmMSl9ZnVuY3Rpb24gbDQobCxjLGYpe2x8PTAsY3w9MDt2YXIgcD0wLG09MCxBPTA7aWYoZnw9MCl7cD0wfGZlW2w+PjBdO2U6ZG97aWYocDw8MjQ+PjI0KWZvcihBPWws''@;'; + put 'put ''bD1wLHAmPTI1NTs7KXtpZighKDAhPSgwfChmPWYrLTF8MCkpJihtPTB8ZmVbYz4+MF0pPDwyND4+MjQhPTApfHxsPDwyND4+MjQhPW08PDI0Pj4yNCYmKDB8KHA9MHxDcChwKSkpIT0oMHxDcCgyNTUmbSkpKWJyZWFrIGU7aWYoYz1jKzF8MCwhKChwPTB8ZmVbKEE9QSsxfDApPj4wXSk8PDI0''@;'; + put 'put ''Pj4yNCkpe2w9MDticmVha31sPXAscCY9MjU1fWVsc2UgbD0wfXdoaWxlKDApO2w9KGw9MHxDcCgyNTUmbCkpLSgwfENwKDB8WHRbYz4+MF0pKXwwfWVsc2UgbD0wO3JldHVybiAwfGx9ZnVuY3Rpb24gWHVlKGwpe2lmKChsfD0wKT4+PjA+PTI1NSl7aWYoISgobCstNTczNDR8MCk+Pj4wPDgx''@;'; + put 'put ''ODV8bD4+PjA8ODIzMnwobCstODIzNHwwKT4+PjA8NDcwNjIpKXJldHVybiA2NTUzNCE9KDY1NTM0Jmx8MCkmKGwrLTY1NTMyfDApPj4+MDwxMDQ4NTgwJjF8MDtsPTF9ZWxzZSBsPShsKzEmMTI3KT4+PjA+MzImMTtyZXR1cm4gMHxsfWZ1bmN0aW9uIExBZShsLGMsZixwKXtsfD0wLGN8PTAs''@;'; + put 'put ''Znw9MDt2YXIgdyxrLG09MCxBPTAsYj0wLE09MDtrPWxlLGxlPWxlKzE2fDAsbT1rLHA9MHxhWyh3PTA9PSgwfChwfD0wKSk/MTkwNjQwOnApPj4yXTtlOmRve2lmKGMpaWYoQT0wPT0oMHxsKT9tOmwsZil7aWYocCltPWYsYj0xMTtlbHNle2lmKChwPTB8ZmVbYz4+MF0pPDwyND4+MjQ+LTEp''@;'; + put 'put ''e2FbQT4+Ml09MjU1JnAscD1wPDwyND4+MjQhPTAmMTticmVha31pZihwPTB8ZmVbYz4+MF0sbT0wPT0oMHxhW2FbMTU3OTFdPj4yXSkpe2FbQT4+Ml09cDw8MjQ+PjI0JjU3MzQzLHA9MTticmVha31pZigocD0oMjU1JnApLTE5NHwwKT4+PjA+NTApe2I9MTc7YnJlYWt9cD0wfGFbNjIzODQr''@;'; + put 'put ''KHA8PDIpPj4yXSwobT1mKy0xfDApJiYoYz1jKzF8MCxiPTExKX10OmRve2lmKDExPT0oMHxiKSl7aWYoKChNPSgyNTUmKGw9MHxmZVtjPj4wXSkpPj4+MyktMTZ8TSsocD4+MjYpKT4+PjA+Nyl7Yj0xNzticmVhayBlfWZvcig7Yz1jKzF8MCxtPW0rLTF8MCwhKCgwfChwPSgyNTUmbCktMTI4''@;'; + put 'put ''fHA8PDYpKT49MCk7KXtpZighbSlicmVhayB0O2lmKCgtNjQmKGw9MHxmZVtjPj4wXSkpPDwyND4+MjQhPS0xMjgpe2I9MTc7YnJlYWsgZX19YVt3Pj4yXT0wLGFbQT4+Ml09cCxwPWYtbXwwO2JyZWFrIGV9fXdoaWxlKDApO2Fbdz4+Ml09cCxwPS0yfWVsc2UgcD0tMjtlbHNlIHA/Yj0xNzpw''@;'; + put 'put ''PTB9d2hpbGUoMCk7cmV0dXJuIDE3PT0oMHxiKSYmKGFbdz4+Ml09MCxhWzQ3NjQzXT04NCxwPS0xKSxsZT1rLDB8cH1mdW5jdGlvbiBLdWUobCxjKXtyZXR1cm4gMHwobD0obHw9MCk/MHxmdW5jdGlvbiAkdWUobCxjLGYpe2x8PTAsY3w9MDtkb3tpZihsKXtpZihjPj4+MDwxMjgpe2ZlW2w+''@;'; + put 'put ''PjBdPWMsbD0xO2JyZWFrfWlmKCEoMHxhW2FbMTU3OTFdPj4yXSkpe2lmKDU3MjE2PT0oLTEyOCZjfDApKXtmZVtsPj4wXT1jLGw9MTticmVha31hWzQ3NjQzXT04NCxsPS0xO2JyZWFrfWlmKGM+Pj4wPDIwNDgpe2ZlW2w+PjBdPWM+Pj42fDE5MixmZVtsKzE+PjBdPTYzJmN8MTI4LGw9Mjti''@;'; + put 'put ''cmVha31pZihjPj4+MDw1NTI5Nnw1NzM0ND09KC04MTkyJmN8MCkpe2ZlW2w+PjBdPWM+Pj4xMnwyMjQsZmVbbCsxPj4wXT1jPj4+NiY2M3wxMjgsZmVbbCsyPj4wXT02MyZjfDEyOCxsPTM7YnJlYWt9aWYoKGMrLTY1NTM2fDApPj4+MDwxMDQ4NTc2KXtmZVtsPj4wXT1jPj4+MTh8MjQwLGZl''@;'; + put 'put ''W2wrMT4+MF09Yz4+PjEyJjYzfDEyOCxmZVtsKzI+PjBdPWM+Pj42JjYzfDEyOCxmZVtsKzM+PjBdPTYzJmN8MTI4LGw9NDticmVha31hWzQ3NjQzXT04NCxsPS0xO2JyZWFrfWw9MX13aGlsZSgwKTtyZXR1cm4gMHxsfShsLGN8PTApOjApfWZ1bmN0aW9uIGlkKGwsYyl7cmV0dXJuIGZ1bmN0''@;'; + put 'put ''aW9uIG5jZShsLGMpe2x8PTA7dmFyIGY9MCxwPTA7Zj1jfD0wO2U6ZG97aWYoMyYoZl5sKSlwPTg7ZWxzZXtpZigzJmYpZG97aWYoZmVbbD4+MF09Zj0wfGZlW2M+PjBdLCEoZjw8MjQ+PjI0KSlicmVhayBlO2M9YysxfDAsbD1sKzF8MH13aGlsZSgwIT0oMyZjfDApKTtpZighKCgtMjEzOTA2''@;'; + put 'put ''MjE0NCYoZj0wfGFbYz4+Ml0pXi0yMTM5MDYyMTQ0KSZmKy0xNjg0MzAwOSkpZm9yKHA9bDtjPWMrNHwwLGw9cCs0fDAsYVtwPj4yXT1mLCEoKC0yMTM5MDYyMTQ0JihmPTB8YVtjPj4yXSleLTIxMzkwNjIxNDQpJmYrLTE2ODQzMDA5fDApOylwPWw7cD04fX13aGlsZSgwKTtpZig4PT0oMHxw''@;'; + put 'put ''KSYmKGZlW2w+PjBdPXA9MHxmZVtjPj4wXSxwPDwyND4+MjQpKWRve2ZlWyhsPWwrMXwwKT4+MF09cD0wfGZlWyhjPWMrMXwwKT4+MF19d2hpbGUocDw8MjQ+PjI0IT0wKX0obHw9MCxjfD0wKSwwfGx9ZnVuY3Rpb24gbSQobCl7cmV0dXJuIDB8KChsfD0wKT8wIT0oMHxmdW5jdGlvbiBpY2Uo''@;'; + put 'put ''bCxjKXtsfD0wO3ZhciBmPTA7aWYoY3w9MCl7Zm9yKDshKDA9PSgwfChmPTB8YVtsPj4yXSkpfCgwfGYpPT0oMHxjKSk7KWw9bCs0fDA7bD0wfGY/bDowfWVsc2UgbD1sKygoMHxmdW5jdGlvbiBEQWUobCl7dmFyIGM9MDtmb3IoYz1sfD0wOzB8YVtjPj4yXTspYz1jKzR8MDtyZXR1cm4gYy1s''@;'; + put 'put ''Pj4yfDB9KGwpKTw8Mil8MDtyZXR1cm4gMHxsfSg2MzUwMCxsKSkmMTowKX1mdW5jdGlvbiB1OChsLGMpe3N3aXRjaChsfD0wLDB8KGN8PTApKXtjYXNlIDE6bD0wfHdzKGwpO2JyZWFrO2Nhc2UgMjpsPTB8ZyQobCk7YnJlYWs7Y2FzZSAzOmw9MHxmdW5jdGlvbiBvY2UobCl7cmV0dXJuIDB8''@;'; + put 'put ''ZnVuY3Rpb24gcmNlKGwpe3JldHVybiAxJigzMj09KDB8KGx8PTApKXw5PT0oMHxsKSl8MH0obHw9MCl9KGwpO2JyZWFrO2Nhc2UgNDpsPTB8ZnVuY3Rpb24gYWNlKGwpe3JldHVybiAxJigoKGx8PTApLTY1NTI5fDApPj4+MDwzfDgyMzI9PSgtMiZsfDApfGw+Pj4wPDMyfChsKy0xMjd8MCk+''@;'; + put 'put ''Pj4wPDMzKXwwfShsKTticmVhaztjYXNlIDU6bD0wfHAkKGwpO2JyZWFrO2Nhc2UgNjpsPTB8ZnVuY3Rpb24gbGNlKGwpe3JldHVybiAwfCgwfG0kKGx8PTApPzA6MCE9KDB8WHVlKGwpKSYxKX0obCk7YnJlYWs7Y2FzZSA3Omw9MHxTaihsKTticmVhaztjYXNlIDg6bD0wfFh1ZShsKTticmVh''@;'; + put 'put ''aztjYXNlIDk6bD0wfGZ1bmN0aW9uIFRBZShsKXtyZXR1cm4gMHwoKGx8PTApPj4+MDwxMzEwNzI/KDB8WHRbMTQ2NDIzKygoMHxYdFsxNDY0MjMrKGw+Pj44KT4+MF0pPDw1fGw+Pj4zJjMxKT4+MF0pPj4+KDcmbCkmMTowKX0obCk7YnJlYWs7Y2FzZSAxMDpsPTB8bSQobCk7YnJlYWs7Y2Fz''@;'; + put 'put ''ZSAxMTpsPTB8TWoobCk7YnJlYWs7Y2FzZSAxMjpsPTB8ZnVuY3Rpb24gc2NlKGwpe3JldHVybiAxJigoKGx8PTApLTQ4fDApPj4+MDwxMHwoKDMyfGwpLTk3fDApPj4+MDw2KXwwfShsKTticmVhaztkZWZhdWx0Omw9MH1yZXR1cm4gMHxsfWZ1bmN0aW9uIHdzKGwpe3JldHVybiAwfCgwfHAk''@;'; + put 'put ''KGx8PTApPzE6MCE9KDB8ZyQobCkpJjEpfWZ1bmN0aW9uIFNqKGwpe3JldHVybigwfG92KGx8PTApKSE9KDB8bCl8MH1mdW5jdGlvbiBNaihsKXtyZXR1cm4oMHxBZyhsfD0wKSkhPSgwfGwpfDB9ZnVuY3Rpb24gQWcobCl7cmV0dXJuIDB8SnVlKGx8PTAsMSl9ZnVuY3Rpb24gbUwobCxjLGYs''@;'; + put 'put ''cCl7bHw9MCxjfD0wLGZ8PTAscHw9MDt2YXIgYixELG09MCxBPTAsdz0wLGs9MCxNPTA7RD1sZSxsZT1sZSsxMjh8MCxtPUQrMTI0fDAsdz02MzU4OCxiPShBPU09RCkrMTI0fDA7ZG97YVtBPj4yXT1hW3c+PjJdLEE9QSs0fDAsdz13KzR8MH13aGlsZSgoMHxBKTwoMHxiKSk7cmV0dXJuKGMr''@;'; + put 'put ''LTF8MCk+Pj4wPjIxNDc0ODM2NDY/Yz8oYVs0NzY0M109NzUsYz0tMSk6KGw9bSxjPTEsaz00KTprPTQsND09KDB8aykmJihhW00rNDg+PjJdPWs9Yz4+PjA+KGs9LTItbHwwKT4+PjA/azpjLGFbKG09TSsyMHwwKT4+Ml09bCxhW00rNDQ+PjJdPWwsYz1sK2t8MCxhWyhsPU0rMTZ8MCk+PjJd''@;'; + put 'put ''PWMsYVtNKzI4Pj4yXT1jLGM9MHx2TChNLGYscCksayYmKGZlWyhNPTB8YVttPj4yXSkrKCgoMHxNKT09KDB8YVtsPj4yXSkpPDwzMT4+MzEpPj4wXT0wKSksbGU9RCwwfGN9ZnVuY3Rpb24gdkwobCxjLGYpe2x8PTAsY3w9MCxmfD0wO3ZhciBELEcsSyxwZSxnZSxwPTAsbT0wLEE9MCx3PTAs''@;'; + put 'put ''Yj0wLGs9MCxNPTAsUj0wO2dlPWxlLGxlPWxlKzIyNHwwLEQ9Z2UrMTIwfDAsSz1nZSxwZT1nZSsxMzZ8MCxtPTQwKyhwPUc9Z2UrODB8MCl8MDtkb3thW3A+PjJdPTAscD1wKzR8MH13aGlsZSgoMHxwKTwoMHxtKSk7cmV0dXJuIGFbRD4+Ml09YVtmPj4yXSwoMHxFaigwLGMsRCxLLEcpKTww''@;'; + put 'put ''P2Y9LTE6KFI9KDB8YVtsKzc2Pj4yXSk+LTE/MHxSZigpOjAsTT0zMiYoZj0wfGFbbD4+Ml0pLCgwfGZlW2wrNzQ+PjBdKTwxJiYoYVtsPj4yXT0tMzMmZiksMHxhWyhwPWwrNDh8MCk+PjJdP2Y9MHxFaihsLGMsRCxLLEcpOihBPTB8YVsobT1sKzQ0fDApPj4yXSxhW20+PjJdPXBlLGFbKHc9''@;'; + put 'put ''bCsyOHwwKT4+Ml09cGUsYVsoYj1sKzIwfDApPj4yXT1wZSxhW3A+PjJdPTgwLGFbKGs9bCsxNnwwKT4+Ml09cGUrODAsZj0wfEVqKGwsYyxELEssRyksQSYmKG1pWzYzJmFbbCszNj4+Ml1dKGwsMCwwKSxmPTA9PSgwfGFbYj4+Ml0pPy0xOmYsYVttPj4yXT1BLGFbcD4+Ml09MCxhW2s+PjJd''@;'; + put 'put ''PTAsYVt3Pj4yXT0wLGFbYj4+Ml09MCkpLGFbbD4+Ml09KHA9MHxhW2w+PjJdKXxNLDB8UiYmZTMoKSxmPTA9PSgzMiZwfDApP2Y6LTEpLGxlPWdlLDB8Zn1mdW5jdGlvbiBFaihsLGMsZixwLG0pe2x8PTAsZnw9MCxwfD0wLG18PTA7dmFyIExlLFJlLEhlLHFlLG50LFdlLG90LFN0LGt0LEE9''@;'; + put 'put ''MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAsSz0wLHBlPTAsZ2U9MCxiZT0wLE9lPTAsVmU9MDtrdD1sZSxsZT1sZSs2NHwwLFdlPWt0LFZlPWt0KzI0fDAsb3Q9a3QrOHwwLFN0PWt0KzIwfDAsYVsobnQ9a3QrMTZ8MCk+PjJdPWN8PTAsTGU9MCE9KDB8bCksSGU9UmU9VmUrNDB8MCxW''@;'; + put 'put ''ZT1WZSszOXwwLHFlPW90KzR8MCx3PTAsQT0wLEQ9MDtlOmZvcig7Oyl7ZG97aWYoKDB8QSk+LTEpe2lmKCgwfHcpPigyMTQ3NDgzNjQ3LUF8MCkpe2FbNDc2NDNdPTc1LEE9LTE7YnJlYWt9QT13K0F8MDticmVha319d2hpbGUoMCk7aWYoISgodz0wfGZlW2M+PjBdKTw8MjQ+PjI0KSl7T2U9''@;'; + put 'put ''ODY7YnJlYWt9Yj1jO3Q6Zm9yKDs7KXtzd2l0Y2godzw8MjQ+PjI0KXtjYXNlIDM3Onc9YixPZT05O2JyZWFrIHQ7Y2FzZSAwOnc9YjticmVhayB0fWFbbnQ+PjJdPWJlPWIrMXwwLHc9MHxmZVtiZT4+MF0sYj1iZX10OmRve2lmKDk9PSgwfE9lKSlmb3IoOzspe2lmKE9lPTAsMzchPSgwfGZl''@;'; + put 'put ''W2IrMT4+MF0pKWJyZWFrIHQ7aWYodz13KzF8MCxhW250Pj4yXT1iPWIrMnwwLDM3IT0oMHxmZVtiPj4wXSkpYnJlYWs7T2U9OX19d2hpbGUoMCk7aWYodz13LWN8MCxMZSYmVnUobCxjLHcpLDB8dyljPWI7ZWxzZXtpZigodz0oMHxmZVsoaz1iKzF8MCk+PjBdKS00OHwwKT4+PjA8MTA/KHBl''@;'; + put 'put ''PShiZT0zNj09KDB8ZmVbYisyPj4wXSkpP3c6LTEsRD1iZT8xOkQsaz1iZT9iKzN8MDprKTpwZT0tMSxhW250Pj4yXT1rLChiZT0oKHc9MHxmZVtrPj4wXSk8PDI0Pj4yNCktMzJ8MCk+Pj4wPjMxfDA9PSgxPDxiZSY3NTkxM3wwKSliPTA7ZWxzZXtiPTA7ZG97Ynw9MTw8KHc8PDI0Pj4yNCkt''@;'; + put 'put ''MzIsYVtudD4+Ml09az1rKzF8MCxiZT0oKHc9MHxmZVtrPj4wXSk8PDI0Pj4yNCktMzJ8MH13aGlsZSghKGJlPj4+MD4zMXwwPT0oMTw8YmUmNzU5MTN8MCkpKX1pZih3PDwyND4+MjQ9PTQyKXtpZigodz0oMHxmZVsoTT1rKzF8MCk+PjBdKS00OHwwKT4+PjA8MTAmJjM2PT0oMHxmZVtrKzI+''@;'; + put 'put ''PjBdKSlhW20rKHc8PDIpPj4yXT0xMCx3PTB8YVtwKygoMHxmZVtNPj4wXSktNDg8PDMpPj4yXSxEPTEsaz1rKzN8MDtlbHNle2lmKDB8RCl7QT0tMTticmVha31MZT8odz0wfGFbKEQ9MysoMHxhW2Y+PjJdKSYtNCk+PjJdLGFbZj4+Ml09RCs0LEQ9MCxrPU0pOih3PTAsRD0wLGs9TSl9YVtu''@;'; + put 'put ''dD4+Ml09ayx3PShnZT0oMHx3KTwwKT8wLXd8MDp3LGdlPWdlPzgxOTJ8YjpifWVsc2V7aWYoKDB8KHc9MHx2JChudCkpKTwwKXtBPS0xO2JyZWFrfWdlPWIsaz0wfGFbbnQ+PjJdfWRve2lmKDQ2PT0oMHxmZVtrPj4wXSkpe2lmKDQyIT0oMHxmZVtrKzE+PjBdKSl7YVtudD4+Ml09aysxLGI9''@;'; + put 'put ''MHx2JChudCksaz0wfGFbbnQ+PjJdO2JyZWFrfWlmKChiPSgwfGZlWyhNPWsrMnwwKT4+MF0pLTQ4fDApPj4+MDwxMCYmMzY9PSgwfGZlW2srMz4+MF0pKXthW20rKGI8PDIpPj4yXT0xMCxiPTB8YVtwKygoMHxmZVtNPj4wXSktNDg8PDMpPj4yXSxhW250Pj4yXT1rPWsrNHwwO2JyZWFrfWlm''@;'; + put 'put ''KDB8RCl7QT0tMTticmVhayBlfUxlPyhiPTB8YVsoYmU9MysoMHxhW2Y+PjJdKSYtNCk+PjJdLGFbZj4+Ml09YmUrNCk6Yj0wLGFbbnQ+PjJdPU0saz1NfWVsc2UgYj0tMX13aGlsZSgwKTtmb3IoSz0wOzspe2lmKCgoMHxmZVtrPj4wXSktNjV8MCk+Pj4wPjU3KXtBPS0xO2JyZWFrIGV9aWYo''@;'; + put 'put ''YVtudD4+Ml09YmU9aysxfDAsISgoKFI9MjU1JihNPTB8ZmVbKDB8ZmVbaz4+MF0pLTY1KygxNTI5NDQrKDU4Kkt8MCkpPj4wXSkpLTF8MCk+Pj4wPDgpKWJyZWFrO0s9UixrPWJlfWlmKCEoTTw8MjQ+PjI0KSl7QT0tMTticmVha31HPSgwfHBlKT4tMTtkb3tpZihNPDwyND4+MjQ9PTE5KXtp''@;'; + put 'put ''ZihHKXtBPS0xO2JyZWFrIGV9T2U9NDh9ZWxzZXtpZihHKXthW20rKHBlPDwyKT4+Ml09UixwZT0wfGFbNCsoRz1wKyhwZTw8Myl8MCk+PjJdLGFbKE9lPVdlKT4+Ml09YVtHPj4yXSxhW09lKzQ+PjJdPXBlLE9lPTQ4O2JyZWFrfWlmKCFMZSl7QT0wO2JyZWFrIGV9QSQoV2UsUixmKX19d2hp''@;'; + put 'put ''bGUoMCk7aWYoNDghPSgwfE9lKXx8KE9lPTAsTGUpKXtrPTAhPSgwfEspJjM9PSgxNSYoaz0wfGZlW2s+PjBdKXwwKT8tMzMmazprLHBlPS02NTUzNyZnZSxnZT0wPT0oODE5MiZnZXwwKT9nZTpwZTt0OmRve3N3aXRjaCgwfGspe2Nhc2UgMTEwOnN3aXRjaCgoMjU1JkspPDwyND4+MjQpe2Nh''@;'; + put 'put ''c2UgMDpjYXNlIDE6Y2FzZSA2OmFbYVtXZT4+Ml0+PjJdPUEsdz0wLGM9YmU7Y29udGludWUgZTtjYXNlIDI6Y2FzZSA3OmFbKHc9MHxhW1dlPj4yXSk+PjJdPUEsYVt3KzQ+PjJdPSgoMHxBKTwwKTw8MzE+PjMxLHc9MCxjPWJlO2NvbnRpbnVlIGU7Y2FzZSAzOml0W2FbV2U+PjJdPj4xXT1B''@;'; + put 'put ''LHc9MCxjPWJlO2NvbnRpbnVlIGU7Y2FzZSA0OmZlW2FbV2U+PjJdPj4wXT1BLHc9MCxjPWJlO2NvbnRpbnVlIGU7ZGVmYXVsdDp3PTAsYz1iZTtjb250aW51ZSBlfWNhc2UgMTEyOms9MTIwLGI9Yj4+PjA+OD9iOjgsYz04fGdlLE9lPTYwO2JyZWFrO2Nhc2UgODg6Y2FzZSAxMjA6Yz1nZSxP''@;'; + put 'put ''ZT02MDticmVhaztjYXNlIDExMTpNPTAsUj0xNTM0MDgsYj0wPT0oOCZnZXwwKXwoMHxiKT4oMHwoSz1IZS0oRz0wfGZjZShjPTB8YVsoaz1XZSk+PjJdLGs9MHxhW2srND4+Ml0sUmUpKXwwKSk/YjpLKzF8MCxLPWdlLE9lPTY2O2JyZWFrO2Nhc2UgMTA1OmNhc2UgMTAwOmlmKGM9MHxhWyhr''@;'; + put 'put ''PVdlKT4+Ml0sKDB8KGs9MHxhW2srND4+Ml0pKTwwKXtjPTB8U3AoMCwwLDB8YywwfGspLGs9RG4sYVsoTT1XZSk+PjJdPWMsYVtNKzQ+PjJdPWssTT0xLFI9MTUzNDA4LE9lPTY1O2JyZWFrIHR9TT0wIT0oMjA0OSZnZXwwKSYxLFI9MD09KDIwNDgmZ2V8MCk/MD09KDEmZ2V8MCk/MTUzNDA4''@;'; + put 'put ''OjE1MzQxMDoxNTM0MDksT2U9NjU7YnJlYWsgdDtjYXNlIDExNzpNPTAsUj0xNTM0MDgsYz0wfGFbKGs9V2UpPj4yXSxrPTB8YVtrKzQ+PjJdLE9lPTY1O2JyZWFrO2Nhc2UgOTk6ZmVbVmU+PjBdPWFbV2U+PjJdLGM9VmUsTT0wLFI9MTUzNDA4LEc9UmUsaz0xLGI9cGU7YnJlYWs7Y2FzZSAx''@;'; + put 'put ''MDk6az0wfCRrKDB8YVs0NzY0M10pLE9lPTcwO2JyZWFrO2Nhc2UgMTE1Oms9MHwoaz0wfGFbV2U+PjJdKT9rOjE1MzQxOCxPZT03MDticmVhaztjYXNlIDY3OmFbb3Q+PjJdPWFbV2U+PjJdLGFbcWU+PjJdPTAsYVtXZT4+Ml09b3QsRz0tMSxrPW90LE9lPTc0O2JyZWFrO2Nhc2UgODM6Yz0w''@;'; + put 'put ''fGFbV2U+PjJdLGI/KEc9YixrPWMsT2U9NzQpOihjYyhsLDMyLHcsMCxnZSksYz0wLE9lPTgzKTticmVhaztjYXNlIDY1OmNhc2UgNzE6Y2FzZSA3MDpjYXNlIDY5OmNhc2UgOTc6Y2FzZSAxMDM6Y2FzZSAxMDI6Y2FzZSAxMDE6dz0wfGhjZShsLCtfW1dlPj4zXSx3LGIsZ2UsayksYz1iZTtj''@;'; + put 'put ''b250aW51ZSBlO2RlZmF1bHQ6TT0wLFI9MTUzNDA4LEc9UmUsaz1iLGI9Z2V9fXdoaWxlKDApO3Q6ZG97aWYoNjA9PSgwfE9lKSlnZT1XZSxwZT0wfGFbZ2U+PjJdLGdlPTB8YVtnZSs0Pj4yXSxHPTB8Y2NlKHBlLGdlLFJlLDMyJmspLFI9MD09KDgmY3wwKXwwPT0oMHxwZSkmMD09KDB8Z2Up''@;'; + put 'put ''LE09Uj8wOjIsUj1SPzE1MzQwODoxNTM0MDgrKGs+PjQpfDAsSz1jLGM9cGUsaz1nZSxPZT02NjtlbHNlIGlmKDY1PT0oMHxPZSkpRz0wfCR5KGMsayxSZSksSz1nZSxPZT02NjtlbHNlIGlmKDcwPT0oMHxPZSkpT2U9MCxnZT0wfGVTKGssMCxiKSxLPTA9PSgwfGdlKSxjPWssTT0wLFI9MTUz''@;'; + put 'put ''NDA4LEc9Sz9rK2J8MDpnZSxrPUs/YjpnZS1rfDAsYj1wZTtlbHNlIGlmKDc0PT0oMHxPZSkpe2ZvcihPZT0wLFI9ayxjPTAsYj0wOyhNPTB8YVtSPj4yXSkmJiEoKDB8KGI9MHxLdWUoU3QsTSkpKTwwfGI+Pj4wPihHLWN8MCk+Pj4wKSYmRz4+PjA+KGM9YitjfDApPj4+MDspUj1SKzR8MDtp''@;'; + put 'put ''ZigoMHxiKTwwKXtBPS0xO2JyZWFrIGV9aWYoY2MobCwzMix3LGMsZ2UpLGMpZm9yKE09MDs7KXtpZighKGI9MHxhW2s+PjJdKSl7T2U9ODM7YnJlYWsgdH1pZigoMHwoTT0oYj0wfEt1ZShTdCxiKSkrTXwwKSk+KDB8Yykpe09lPTgzO2JyZWFrIHR9aWYoVnUobCxTdCxiKSxNPj4+MD49Yz4+''@;'; + put 'put ''PjApe09lPTgzO2JyZWFrfWs9ays0fDB9ZWxzZSBjPTAsT2U9ODN9fXdoaWxlKDApO2lmKDY2PT0oMHxPZSkpT2U9MCxnZT0wIT0oMHxiKXwoaz0wIT0oMHxjKXwwIT0oMHxrKSksaz1IZS1HKygxJigxXmspKXwwLGM9Z2U/RzpSZSxHPVJlLGs9Z2U/KDB8Yik+KDB8ayk/YjprOmIsYj0oMHxi''@;'; + put 'put ''KT4tMT8tNjU1MzcmSzpLO2Vsc2UgaWYoODM9PSgwfE9lKSl7T2U9MCxjYyhsLDMyLHcsYyw4MTkyXmdlKSx3PSgwfHcpPigwfGMpP3c6YyxjPWJlO2NvbnRpbnVlfWNjKGwsMzIsdz0oMHx3KTwoMHwoZ2U9KEs9KDB8ayk8KDB8KHBlPUctY3wwKSk/cGU6aykrTXwwKSk/Z2U6dyxnZSxiKSxW''@;'; + put 'put ''dShsLFIsTSksY2MobCw0OCx3LGdlLDY1NTM2XmIpLGNjKGwsNDgsSyxwZSwwKSxWdShsLGMscGUpLGNjKGwsMzIsdyxnZSw4MTkyXmIpLGM9YmV9ZWxzZSB3PTAsYz1iZX19ZTpkb3tpZig4Nj09KDB8T2UpJiYhbClpZihEKXtmb3IoQT0xO2M9MHxhW20rKEE8PDIpPj4yXTspe2lmKEEkKHAr''@;'; + put 'put ''KEE8PDMpfDAsYyxmKSxjPUErMXwwLCEoKDB8QSk8OSkpe0E9YzticmVha31BPWN9aWYoKDB8QSk8MTApZm9yKDs7KXtpZigwfGFbbSsoQTw8Mik+PjJdKXtBPS0xO2JyZWFrIGV9aWYoISgoMHxBKTw5KSl7QT0xO2JyZWFrfUE9QSsxfDB9ZWxzZSBBPTF9ZWxzZSBBPTB9d2hpbGUoMCk7cmV0''@;'; + put 'put ''dXJuIGxlPWt0LDB8QX1mdW5jdGlvbiBSZihsKXtyZXR1cm4gMH1mdW5jdGlvbiBlMyhsKXt9ZnVuY3Rpb24gVnUobCxjLGYpezMyJmFbKGx8PTApPj4yXXx8eGooY3w9MCxmfD0wLGwpfWZ1bmN0aW9uIHYkKGwpe3ZhciBjPTAsZj0wLHA9MDtpZigocD0oMHxmZVsoZj0wfGFbKGx8PTApPj4y''@;'; + put 'put ''XSk+PjBdKS00OHwwKT4+PjA8MTApe2M9MDtkb3tjPXArKDEwKmN8MCl8MCxhW2w+PjJdPWY9ZisxfDAscD0oMHxmZVtmPj4wXSktNDh8MH13aGlsZShwPj4+MDwxMCl9ZWxzZSBjPTA7cmV0dXJuIDB8Y31mdW5jdGlvbiBBJChsLGMsZil7bHw9MCxjfD0wLGZ8PTA7dmFyIHA9MCxtPTAsQT0w''@;'; + put 'put ''O2U6ZG97aWYoYz4+PjA8PTIwKXN3aXRjaCgwfGMpe2Nhc2UgOTpjPTB8YVsocD0zKygwfGFbZj4+Ml0pJi00KT4+Ml0sYVtmPj4yXT1wKzQsYVtsPj4yXT1jO2JyZWFrIGU7Y2FzZSAxMDpjPTB8YVsocD0zKygwfGFbZj4+Ml0pJi00KT4+Ml0sYVtmPj4yXT1wKzQsYVsocD1sKT4+Ml09Yyxh''@;'; + put 'put ''W3ArND4+Ml09KCgwfGMpPDApPDwzMT4+MzE7YnJlYWsgZTtjYXNlIDExOmM9MHxhWyhwPTMrKDB8YVtmPj4yXSkmLTQpPj4yXSxhW2Y+PjJdPXArNCxhWyhwPWwpPj4yXT1jLGFbcCs0Pj4yXT0wO2JyZWFrIGU7Y2FzZSAxMjptPTB8YVsoYz1wPTcrKDB8YVtmPj4yXSkmLTgpPj4yXSxjPTB8''@;'; + put 'put ''YVtjKzQ+PjJdLGFbZj4+Ml09cCs4LGFbKHA9bCk+PjJdPW0sYVtwKzQ+PjJdPWM7YnJlYWsgZTtjYXNlIDEzOnA9MHxhWyhtPTMrKDB8YVtmPj4yXSkmLTQpPj4yXSxhW2Y+PjJdPW0rNCxhWyhtPWwpPj4yXT1wPSg2NTUzNSZwKTw8MTY+PjE2LGFbbSs0Pj4yXT0oKDB8cCk8MCk8PDMxPj4z''@;'; + put 'put ''MTticmVhayBlO2Nhc2UgMTQ6cD0wfGFbKG09MysoMHxhW2Y+PjJdKSYtNCk+PjJdLGFbZj4+Ml09bSs0LGFbKG09bCk+PjJdPTY1NTM1JnAsYVttKzQ+PjJdPTA7YnJlYWsgZTtjYXNlIDE1OnA9MHxhWyhtPTMrKDB8YVtmPj4yXSkmLTQpPj4yXSxhW2Y+PjJdPW0rNCxhWyhtPWwpPj4yXT1w''@;'; + put 'put ''PSgyNTUmcCk8PDI0Pj4yNCxhW20rND4+Ml09KCgwfHApPDApPDwzMT4+MzE7YnJlYWsgZTtjYXNlIDE2OnA9MHxhWyhtPTMrKDB8YVtmPj4yXSkmLTQpPj4yXSxhW2Y+PjJdPW0rNCxhWyhtPWwpPj4yXT0yNTUmcCxhW20rND4+Ml09MDticmVhayBlO2Nhc2UgMTc6Y2FzZSAxODpBPStfWyht''@;'; + put 'put ''PTcrKDB8YVtmPj4yXSkmLTgpPj4zXSxhW2Y+PjJdPW0rOCxfW2w+PjNdPUE7YnJlYWsgZTtkZWZhdWx0OmJyZWFrIGV9fXdoaWxlKDApfWZ1bmN0aW9uIGNjZShsLGMsZixwKXtpZihmfD0wLHB8PTAsISgwPT0oMHwobHw9MCkpJjA9PSgwfChjfD0wKSkpKWRve2ZlWyhmPWYrLTF8MCk+PjBd''@;'; + put 'put ''PTB8WHRbMTUzNDU2KygxNSZsKT4+MF18cCxsPTB8d2woMHxsLDB8Yyw0KSxjPURufXdoaWxlKCEoMD09KDB8bCkmMD09KDB8YykpKTtyZXR1cm4gMHxmfWZ1bmN0aW9uIGZjZShsLGMsZil7aWYoZnw9MCwhKDA9PSgwfChsfD0wKSkmMD09KDB8KGN8PTApKSkpZG97ZmVbKGY9ZistMXwwKT4+''@;'; + put 'put ''MF09NyZsfDQ4LGw9MHx3bCgwfGwsMHxjLDMpLGM9RG59d2hpbGUoISgwPT0oMHxsKSYwPT0oMHxjKSkpO3JldHVybiAwfGZ9ZnVuY3Rpb24gJHkobCxjLGYpe2Z8PTA7dmFyIHA9MDtpZigoY3w9MCk+Pj4wPjB8MD09KDB8YykmKGx8PTApPj4+MD40Mjk0OTY3Mjk1KXtmb3IoO3A9MHxpUygw''@;'; + put 'put ''fGwsMHxjLDEwLDApLGZlWyhmPWYrLTF8MCk+PjBdPTI1NSZwfDQ4LHA9bCxsPTB8aXcoMHxsLDB8YywxMCwwKSxjPj4+MD45fDk9PSgwfGMpJnA+Pj4wPjQyOTQ5NjcyOTU7KWM9RG47Yz1sfWVsc2UgYz1sO2lmKGMpZm9yKDtmZVsoZj1mKy0xfDApPj4wXT00OHwoYz4+PjApJTEwLCEoYz4+''@;'; + put 'put ''PjA8MTApOyljPShjPj4+MCkvMTB8MDtyZXR1cm4gMHxmfWZ1bmN0aW9uIGNjKGwsYyxmLHAsbSl7dmFyIEEsdztpZihsfD0wLGN8PTAsdz1sZSxsZT1sZSsyNTZ8MCxBPXcsKDB8KGZ8PTApKT4oMHwocHw9MCkpJjA9PSg3MzcyOCYobXw9MCl8MCkpe2lmKHUyKDB8QSwwfGMsMHwoKG09Zi1w''@;'; + put 'put ''fDApPj4+MDwyNTY/bToyNTYpKSxtPj4+MD4yNTUpe2M9Zi1wfDA7ZG97VnUobCxBLDI1NiksbT1tKy0yNTZ8MH13aGlsZShtPj4+MD4yNTUpO209MjU1JmN9VnUobCxBLG0pfWxlPXd9ZnVuY3Rpb24gaGNlKGwsYyxmLHAsbSxBKXtsfD0wLGM9K2MsZnw9MCxwfD0wLG18PTAsQXw9MDt2YXIg''@;'; + put 'put ''c3Qsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLEs9MCxwZT0wLGdlPTAsYmU9MCxPZT0wLExlPTAsUmU9MCxIZT0wLFZlPTAscWU9MCxudD0wLFdlPTAsb3Q9MCxTdD0wLGt0PTA7c3Q9bGUsbGU9bGUrNTYwfDAsaz1zdCs4fDAsU3Q9a3Q9c3QrNTI0fDAsTT1zdCs1MTJ8MCxhWyhiZT1z''@;'; + put 'put ''dCk+PjJdPTAsb3Q9TSsxMnwwLHkkKGMpLCgwfERuKTwwPyhjPS1jLG50PTEscWU9MTUzNDI1KToobnQ9MCE9KDIwNDkmbXwwKSYxLHFlPTA9PSgyMDQ4Jm18MCk/MD09KDEmbXwwKT8xNTM0MjY6MTUzNDMxOjE1MzQyOCkseSQoYyk7ZG97aWYoITAmMjE0NjQzNTA3Mj09KDIxNDY0MzUwNzIm''@;'; + put 'put ''RG58MCkpa3Q9MCE9KDMyJkF8MCksY2MobCwzMixmLHc9bnQrM3wwLC02NTUzNyZtKSxWdShsLHFlLG50KSxWdShsLGMhPWN8ITE/a3Q/MTUzNTkzOjE1MzQ1MjprdD8xNTM0NDQ6MTUzNDQ4LDMpLGNjKGwsMzIsZix3LDgxOTJebSk7ZWxzZXtpZigodz0wIT0oSz0yKit4QWUoYyxiZSkpKSYm''@;'; + put 'put ''KGFbYmU+PjJdPSgwfGFbYmU+PjJdKS0xKSw5Nz09KDB8KExlPTMyfEEpKSl7cGU9MD09KDB8KFI9MzImQSkpP3FlOnFlKzl8MCxHPTJ8bnQsdz0xMi1wfDA7ZG97aWYoIShwPj4+MD4xMXwwPT0oMHx3KSkpe2M9ODtkb3t3PXcrLTF8MCxjKj0xNn13aGlsZSgwIT0oMHx3KSk7aWYoNDU9PSgw''@;'; + put 'put ''fGZlW3BlPj4wXSkpe2M9LShjKygtSy1jKSk7YnJlYWt9Yz1LK2MtYzticmVha31jPUt9d2hpbGUoMCk7KDB8KHc9MHwkeSh3PSgwfChiPTB8YVtiZT4+Ml0pKTwwPzAtYnwwOmIsKCgwfHcpPDApPDwzMT4+MzEsb3QpKSk9PSgwfG90KSYmKGZlWyh3PU0rMTF8MCk+PjBdPTQ4KSxmZVt3Ky0x''@;'; + put 'put ''Pj4wXT00MysoYj4+MzEmMiksZmVbKEQ9dystMnwwKT4+MF09QSsxNSxrPSgwfHApPDEsTT0wPT0oOCZtfDApLHc9a3Q7ZG97Yj13KzF8MCxmZVt3Pj4wXT1SfFh0WzE1MzQ1NisoV2U9fn5jKT4+MF0sYz0xNiooYy0rKDB8V2UpKSwxIT0oYi1TdHwwKXx8TSZrJjA9PWM/dz1iOihmZVtiPj4w''@;'; + put 'put ''XT00Nix3PXcrMnwwKX13aGlsZSgwIT1jKTswIT0oMHxwKSYmKC0yLVN0K3d8MCk8KDB8cCk/KGI9dy1TdHwwLHc9cCsyfDApOmI9dz13LVN0fDAsY2MobCwzMixmLFN0PShvdD1vdC1EfDApK0crd3wwLG0pLFZ1KGwscGUsRyksY2MobCw0OCxmLFN0LDY1NTM2Xm0pLFZ1KGwsa3QsYiksY2Mo''@;'; + put 'put ''bCw0OCx3LWJ8MCwwLDApLFZ1KGwsRCxvdCksY2MobCwzMixmLFN0LDgxOTJebSksdz1TdDticmVha31iPSgwfHApPDA/NjpwLHc/KGFbYmU+PjJdPXc9KDB8YVtiZT4+Ml0pLTI4fDAsYz0yNjg0MzU0NTYqSyk6KGM9Syx3PTB8YVtiZT4+Ml0pLGs9V2U9KDB8dyk8MD9rOmsrMjg4fDA7ZG97''@;'; + put 'put ''YVtrPj4yXT1IZT1+fmM+Pj4wLGs9ays0fDAsYz0xZTkqKGMtKyhIZT4+PjApKX13aGlsZSgwIT1jKTtpZigoMHx3KT4wKWZvcihNPVdlLFI9azs7KXtpZihEPSgwfHcpPDI5P3c6MjksKHc9UistNHwwKT4+PjA+PU0+Pj4wKXtrPTA7ZG97T2U9MHxpUygwfChSZT0wfHpsKDB8KFJlPTB8Wm8o''@;'; + put 'put ''MHxhW3c+PjJdLDAsMHxEKSksMHxEbiwwfGssMCkpLDB8KEhlPURuKSwxZTksMCksYVt3Pj4yXT1PZSxrPTB8aXcoMHxSZSwwfEhlLDFlOSwwKSx3PXcrLTR8MH13aGlsZSh3Pj4+MD49TT4+PjApO2smJihhWyhNPU0rLTR8MCk+PjJdPWspfWZvcihrPVI7IShrPj4+MDw9TT4+PjB8fDB8YVso''@;'; + put 'put ''dz1rKy00fDApPj4yXSk7KWs9dztpZihhW2JlPj4yXT13PSgwfGFbYmU+PjJdKS1EfDAsISgoMHx3KT4wKSlicmVhaztSPWt9ZWxzZSBNPVdlO2lmKCgwfHcpPDApe3A9MSsoKGIrMjV8MCkvOXwwKXwwLGdlPTEwMj09KDB8TGUpO2Rve2lmKHBlPSgwfChwZT0wLXd8MCkpPDk/cGU6OSxNPj4+''@;'; + put 'put ''MDxrPj4+MCl7RD0oMTw8cGUpLTF8MCxSPTFlOT4+PnBlLEc9MCx3PU07ZG97YVt3Pj4yXT0oKEhlPTB8YVt3Pj4yXSk+Pj5wZSkrRyxHPTB8QXIoSGUmRCxSKSx3PXcrNHwwfXdoaWxlKHc+Pj4wPGs+Pj4wKTt3PTA9PSgwfGFbTT4+Ml0pP00rNHwwOk0sRz8oYVtrPj4yXT1HLE09dyx3PWsr''@;'; + put 'put ''NHwwKTooTT13LHc9ayl9ZWxzZSBNPTA9PSgwfGFbTT4+Ml0pP00rNHwwOk0sdz1rO2s9KHctKGs9Z2U/V2U6TSk+PjJ8MCk+KDB8cCk/aysocDw8Mil8MDp3LGFbYmU+PjJdPXc9KDB8YVtiZT4+Ml0pK3BlfDB9d2hpbGUoKDB8dyk8MCk7dz1NLHA9a31lbHNlIHc9TSxwPWs7aWYoSGU9V2Us''@;'; + put 'put ''dz4+PjA8cD4+PjApe2lmKGs9OSooSGUtdz4+Mil8MCwoRD0wfGFbdz4+Ml0pPj4+MD49MTApe009MTA7ZG97TT0xMCpNfDAsaz1rKzF8MH13aGlsZShEPj4+MD49TT4+PjApfX1lbHNlIGs9MDtpZigoMHwoTT1iLSgxMDIhPSgwfExlKT9rOjApKygoKE9lPTAhPSgwfGIpKSYoZ2U9MTAzPT0o''@;'; + put 'put ''MHxMZSkpKTw8MzE+PjMxKXwwKSk8KCg5KihwLUhlPj4yKXwwKS05fDApKXtpZihwZT1XZSs0KygoKDB8KE09TSs5MjE2fDApKS85fDApLTEwMjQ8PDIpfDAsKDB8KE09KDB8TSklOXwwKSk8OClmb3IoRD0xMDtEPTEwKkR8MCwoMHxNKTw3OylNPU0rMXwwO2Vsc2UgRD0xMDtpZigoTT0ocGUr''@;'; + put 'put ''NHwwKT09KDB8cCkpJjA9PSgwfChHPSgoUj0wfGFbcGU+PjJdKT4+PjApJShEPj4+MCl8MCkpKU09cGU7ZWxzZSBpZihLPTA9PSgxJigoUj4+PjApLyhEPj4+MCl8MCl8MCk/OTAwNzE5OTI1NDc0MDk5Mjo5MDA3MTk5MjU0NzQwOTk0LGM9Rz4+PjA8KFJlPSgwfEQpLzJ8MCk+Pj4wPy41Ok0m''@;'; + put 'put ''KDB8Ryk9PSgwfFJlKT8xOjEuNSxudCYmKGM9KFJlPTQ1PT0oMHxmZVtxZT4+MF0pKT8tYzpjLEs9UmU/LUs6SyksYVtwZT4+Ml09TT1SLUd8MCxLK2MhPUspe2lmKGFbcGU+PjJdPVJlPU0rRHwwLFJlPj4+MD45OTk5OTk5OTkpZm9yKGs9cGU7TT1rKy00fDAsYVtrPj4yXT0wLE0+Pj4wPHc+''@;'; + put 'put ''Pj4wJiYoYVsodz13Ky00fDApPj4yXT0wKSxhW00+PjJdPVJlPTErKDB8YVtNPj4yXSl8MCxSZT4+PjA+OTk5OTk5OTk5OylrPU07ZWxzZSBNPXBlO2lmKGs9OSooSGUtdz4+Mil8MCwoUj0wfGFbdz4+Ml0pPj4+MD49MTApe0Q9MTA7ZG97RD0xMCpEfDAsaz1rKzF8MH13aGlsZShSPj4+MD49''@;'; + put 'put ''RD4+PjApfX1lbHNlIE09cGU7TT1wPj4+MD4oTT1NKzR8MCk+Pj4wP006cCxSZT13fWVsc2UgTT1wLFJlPXc7Zm9yKExlPU07Oyl7aWYoTGU+Pj4wPD1SZT4+PjApe2JlPTA7YnJlYWt9aWYoMHxhWyh3PUxlKy00fDApPj4yXSl7YmU9MTticmVha31MZT13fXA9MC1rfDA7ZG97aWYoZ2Upe2lm''@;'; + put 'put ''KCgwfCh3PWIrKDEmKDFeT2UpKXwwKSk+KDB8aykmKDB8ayk+LTU/KEQ9QSstMXwwLGI9dystMS1rfDApOihEPUErLTJ8MCxiPXcrLTF8MCksISh3PTgmbSkpe2lmKGJlJiYwIT0oMHwoVmU9MHxhW0xlKy00Pj4yXSkpKWlmKChWZT4+PjApJTEwfDApTT0wO2Vsc2V7TT0wLHc9MTA7ZG97dz0x''@;'; + put 'put ''MCp3fDAsTT1NKzF8MH13aGlsZSghKDB8KFZlPj4+MCklKHc+Pj4wKSkpfWVsc2UgTT05O2lmKHc9KDkqKExlLUhlPj4yKXwwKS05fDAsMTAyPT0oMzJ8RCkpe2I9KDB8Yik8KDB8KHBlPSgwfChwZT13LU18MCkpPjA/cGU6MCkpP2I6cGUscGU9MDticmVha31iPSgwfGIpPCgwfChwZT0oMHwo''@;'; + put 'put ''cGU9dytrLU18MCkpPjA/cGU6MCkpP2I6cGUscGU9MDticmVha31wZT13fWVsc2UgRD1BLHBlPTgmbX13aGlsZSgwKTtpZihSPTAhPSgwfChnZT1ifHBlKSkmMSxHPTEwMj09KDMyfEQpKU9lPTAsdz0oMHxrKT4wP2s6MDtlbHNle2lmKCgoTT1vdCktKHc9MHwkeSh3PSgwfGspPDA/cDprLCgo''@;'; + put 'put ''MHx3KTwwKTw8MzE+PjMxLG90KSl8MCk8Milkb3tmZVsodz13Ky0xfDApPj4wXT00OH13aGlsZSgoTS13fDApPDIpO2ZlW3crLTE+PjBdPTQzKyhrPj4zMSYyKSxmZVsodz13Ky0yfDApPj4wXT1ELE9lPXcsdz1NLXd8MH1pZihjYyhsLDMyLGYsdz1udCsxK2IrUit3fDAsbSksVnUobCxxZSxu''@;'; + put 'put ''dCksY2MobCw0OCxmLHcsNjU1MzZebSksRyl7Uj1wZT1rdCs5fDAsRz1rdCs4fDAsTT1EPVJlPj4+MD5XZT4+PjA/V2U6UmU7ZG97aWYoaz0wfCR5KDB8YVtNPj4yXSwwLHBlKSwoMHxNKT09KDB8RCkpKDB8ayk9PSgwfHBlKSYmKGZlW0c+PjBdPTQ4LGs9Ryk7ZWxzZSBpZihrPj4+MD5rdD4+''@;'; + put 'put ''PjApe3UyKDB8a3QsNDgsay1TdHwwKTtkb3trPWsrLTF8MH13aGlsZShrPj4+MD5rdD4+PjApfVZ1KGwsayxSLWt8MCksTT1NKzR8MH13aGlsZShNPj4+MDw9V2U+Pj4wKTtpZigwfGdlJiZWdShsLDE1MzQ3MiwxKSxNPj4+MDxMZT4+PjAmKDB8Yik+MClmb3IoOzspe2lmKChrPTB8JHkoMHxh''@;'; + put 'put ''W00+PjJdLDAscGUpKT4+PjA+a3Q+Pj4wKXt1MigwfGt0LDQ4LGstU3R8MCk7ZG97az1rKy0xfDB9d2hpbGUoaz4+PjA+a3Q+Pj4wKX1pZihWdShsLGssKDB8Yik8OT9iOjkpLGs9YistOXwwLCEoKE09TSs0fDApPj4+MDxMZT4+PjAmKDB8Yik+OSkpe2I9azticmVha31iPWt9Y2MobCw0OCxi''@;'; + put 'put ''Kzl8MCw5LDApfWVsc2V7aWYoZ2U9YmU/TGU6UmUrNHwwLCgwfGIpPi0xKXtwZT0wPT0oMHxwZSkscD1iZT1rdCs5fDAsUj0wLVN0fDAsRz1rdCs4fDAsRD1SZTtkb3soMHwoaz0wfCR5KDB8YVtEPj4yXSwwLGJlKSkpPT0oMHxiZSkmJihmZVtHPj4wXT00OCxrPUcpO2Rve2lmKCgwfEQpPT0o''@;'; + put 'put ''MHxSZSkpe2lmKE09aysxfDAsVnUobCxrLDEpLHBlJigwfGIpPDEpe2s9TTticmVha31WdShsLDE1MzQ3MiwxKSxrPU19ZWxzZXtpZihrPj4+MDw9a3Q+Pj4wKWJyZWFrO3UyKDB8a3QsNDgsaytSfDApO2Rve2s9aystMXwwfXdoaWxlKGs+Pj4wPmt0Pj4+MCl9fXdoaWxlKDApO1Z1KGwsaywo''@;'; + put 'put ''MHxiKT4oMHwoU3Q9cC1rfDApKT9TdDpiKSxiPWItU3R8MCxEPUQrNHwwfXdoaWxlKEQ+Pj4wPGdlPj4+MCYoMHxiKT4tMSl9Y2MobCw0OCxiKzE4fDAsMTgsMCksVnUobCxPZSxvdC1PZXwwKX1jYyhsLDMyLGYsdyw4MTkyXm0pfX13aGlsZSgwKTtyZXR1cm4gbGU9c3QsMHwoKDB8dyk8KDB8''@;'; + put 'put ''Zik/Zjp3KX1mdW5jdGlvbiB5JChsKXtyZXR1cm4gX1tTaT4+M109bD0rbCxEbj0wfGFbU2krND4+Ml0sMHxhW1NpPj4yXX1mdW5jdGlvbiB4aihsLGMsZil7bHw9MCxjfD0wO3ZhciBwPTAsbT0wLEE9MCx3PTAsYj0wOyhtPTB8YVsocD0xNisoZnw9MCl8MCk+PjJdKT9BPTU6MHx3JChmKT9w''@;'; + put 'put ''PTA6KG09MHxhW3A+PjJdLEE9NSk7ZTpkb3tpZig1PT0oMHxBKSl7aWYocD13PTB8YVsoYj1mKzIwfDApPj4yXSwobS13fDApPj4+MDxjPj4+MCl7cD0wfG1pWzYzJmFbZiszNj4+Ml1dKGYsbCxjKTticmVha310OmRve2lmKCgwfGZlW2YrNzU+PjBdKT4tMSl7Zm9yKHc9Yzs7KXtpZighdyl7''@;'; + put 'put ''QT0wLG09bDticmVhayB0fWlmKDEwPT0oMHxmZVtsKyhtPXcrLTF8MCk+PjBdKSlicmVhazt3PW19aWYoKHA9MHxtaVs2MyZhW2YrMzY+PjJdXShmLGwsdykpPj4+MDx3Pj4+MClicmVhayBlO0E9dyxtPWwrd3wwLGM9Yy13fDAscD0wfGFbYj4+Ml19ZWxzZSBBPTAsbT1sfXdoaWxlKDApO2dv''@;'; + put 'put ''KDB8cCwwfG0sMHxjKSxhW2I+PjJdPSgwfGFbYj4+Ml0pK2MscD1BK2N8MH19d2hpbGUoMCk7cmV0dXJuIDB8cH1mdW5jdGlvbiB3JChsKXt2YXIgYz0wLGY9MDtyZXR1cm4gZmVbKGM9NzQrKGx8PTApfDApPj4wXT0yNTUrKGY9MHxmZVtjPj4wXSl8Ziw4JihjPTB8YVtsPj4yXSk/KGFbbD4+''@;'; + put 'put ''Ml09MzJ8YyxsPS0xKTooYVtsKzg+PjJdPTAsYVtsKzQ+PjJdPTAsYVtsKzI4Pj4yXT1mPTB8YVtsKzQ0Pj4yXSxhW2wrMjA+PjJdPWYsYVtsKzE2Pj4yXT1mKygwfGFbbCs0OD4+Ml0pLGw9MCksMHxsfWZ1bmN0aW9uIHBjZShsKXt2YXIgcCxjPTAsZj0wLG09MDtmb3IocD0wfGZlWyhsfD0w''@;'; + put 'put ''KT4+MF0sYz0xLGY9MTUzNDc0LG09OTc7cDw8MjQ+PjI0IT1tPDwyND4+MjR8fDAhPSgwfFppKGwsZikpOyl7aWYoISgobT0wfGZlWyhmPWYrNnwwKT4+MF0pPDwyND4+MjQpKXtjPTA7YnJlYWt9Yz1jKzF8MH1yZXR1cm4gMHxjfWZ1bmN0aW9uIGF2KGwpe3JldHVybiAwfCgwPT0oMHxmdW5j''@;'; + put 'put ''dGlvbiB1Y2UobCl7cmV0dXJuKChsfD0wKS05N3wwKT4+PjA8MjZ8MH0obHw9MCkpP2w6OTUmbCl9ZnVuY3Rpb24gVGoobCxjKXtsfD0wLGN8PTA7dmFyIG0sQSxmPTAscD0wO0E9bGUsbGU9bGUrMTZ8MCxtPUE7ZG97aWYobD4+PjA+NiljPTA7ZWxzZXtpZigkcCgxOTA2NTYpLDYhPSgwfGwp''@;'; + put 'put ''KXtjPTB8YiQobCxjKSxyNigxOTA2NTYpO2JyZWFrfWlmKGMpe2Y9MTUzNTQ3LHA9KGw9bSkrMTZ8MDtkb3tmZVtsPj4wXT0wfGZlW2Y+PjBdLGw9bCsxfDAsZj1mKzF8MH13aGlsZSgoMHxsKTwoMHxwKSk7cD0wO2RveygwfChmPShsPTB8aEwoYyw1OSkpLWN8MCkpPDE2JiYoZ28oMHxtLDB8''@;'; + put 'put ''YywwfGYpLGZlW20rZj4+MF09MCxjPTA9PSgwfGZlW2w+PjBdKT9jOmwrMXwwKSxiJChwLG0pLHA9cCsxfDB9d2hpbGUoNiE9KDB8cCkpO2M9MTk3MTMyLGw9MH1lbHNlIGM9MTk3MTMyLGw9MDtmb3IoO2dvKDB8YywwfChwPTB8KHA9MHxhWzE5MDYxNisobDw8Mik+PjJdKT9wKzh8MDoxNTM1''@;'; + put 'put ''NjMpLDB8KGY9MHxVbyhwKSkpLGZlWyhwPWMrZnwwKT4+MF09NTksNiE9KDB8KGw9bCsxfDApKTspYz1jKyhmKzEpfDA7ZmVbcD4+MF09MCxyNigxOTA2NTYpLGM9MTk3MTMyfX13aGlsZSgwKTtyZXR1cm4gbGU9QSwwfGN9ZnVuY3Rpb24gYiQobCxjKXtyZXR1cm4gbHw9MCwoY3w9MCk/KGM9''@;'; + put 'put ''MHxmdW5jdGlvbiB0Y2UobCxjKXtsfD0wLGN8PTA7dmFyIEQsRyxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLFI9MDtHPWxlLGxlPWxlKzI3MnwwLEQ9Rys4fDAsUj1HO2Rve2lmKCEoMHxmZVtjPj4wXSkpe2lmKDB8KGM9MHxEdSgxNTI4MzMpKSYmMHxmZVtjPj4wXXx8MHwoYz0w''@;'; + put 'put ''fER1KDE1Mjg0MCsoMTIqbHwwKXwwKSkmJjB8ZmVbYz4+MF18fDB8KGM9MHxEdSgxNTI5MTIpKSYmMHxmZVtjPj4wXSlicmVhaztjPTE1MjkxN319d2hpbGUoMCk7Zj0wO2U6ZG97c3dpdGNoKDB8ZmVbYytmPj4wXSl7Y2FzZSA0NzpjYXNlIDA6YnJlYWsgZX1mPWYrMXwwfXdoaWxlKGY+Pj4w''@;'; + put 'put ''PDE1KTsocD0wfGZlW2M+PjBdKTw8MjQ+PjI0IT00NiYmMD09KDB8ZmVbYytmPj4wXSk/cDw8MjQ+PjI0PT02Nz9NPTE1OihrPWMsTT0xNik6KGM9MTUyOTE3LE09MTUpLDE1PT0oMHxNKSYmKDB8ZmVbYysxPj4wXT8oaz1jLE09MTYpOk09MTgpO2U6ZG97aWYoMTY9PSgwfE0pKWlmKDAhPSgw''@;'; + put 'put ''fFppKGssMTUyOTE3KSkmJjAhPSgwfFppKGssMTUyOTI1KSkpe2lmKDB8KGM9MHxhWzQ3NjYxXSkpZG97aWYoISgwfFppKGssYys4fDApKSlicmVhayBlO2M9MHxhW2MrMjQ+PjJdfXdoaWxlKDAhPSgwfGMpKTskcCgxOTA2NDgpLGM9MHxhWzQ3NjYxXTt0OmRve2lmKDB8Yyl7Zm9yKDswfFpp''@;'; + put 'put ''KGssYys4fDApOylpZighKGM9MHxhW2MrMjQ+PjJdKSlicmVhayB0O3I2KDE5MDY0OCk7YnJlYWsgZX19d2hpbGUoMCk7dDpkb3tpZigwPT0oMHxhWzQ3NjQ2XSkmJjAhPSgwfChtPTB8RHUoMTUyOTMxKSkpJiYwIT0oMHxmZVttPj4wXSkpe2Zvcih3PTI1NC1mfDAsYj1mKzF8MCxwPW07Oyl7''@;'; + put 'put ''aWYoKG09KEE9MHxoTChwLDU4KSktcCsoKChjPTB8ZmVbQT4+MF0pPDwyND4+MjQhPTApPDwzMT4+MzEpfDApPj4+MDx3Pj4+MCl7aWYoZ28oMHxELDB8cCwwfG0pLGZlWyhwPUQrbXwwKT4+MF09NDcsZ28ocCsxfDAsMHxrLDB8ZiksZmVbRCsoYittKT4+MF09MCwwfChwPTB8TzgoMHxELDB8''@;'; + put 'put ''UikpKWJyZWFrO2M9MHxmZVtBPj4wXX1pZighKDB8ZmVbKHA9QSsoYzw8MjQ+PjI0IT0wJjEpfDApPj4wXSkpe009NDE7YnJlYWsgdH19aWYoYz0wfEIwKDI4KSl7YVtjPj4yXT1wLGFbYys0Pj4yXT1hW1I+PjJdLGdvKDB8KFI9Yys4fDApLDB8aywwfGYpLGZlW1IrZj4+MF09MCxhW2MrMjQ+''@;'; + put 'put ''PjJdPWFbNDc2NjFdLGFbNDc2NjFdPWM7YnJlYWt9ciQocCwwfGFbUj4+Ml0pLE09NDE7YnJlYWt9TT00MX13aGlsZSgwKTs0MT09KDB8TSkmJihjPTB8QjAoMjgpKSYmKGFbYz4+Ml09YVsxNTU4NF0sYVtjKzQ+PjJdPWFbMTU1ODVdLGdvKDB8KFI9Yys4fDApLDB8aywwfGYpLGZlW1IrZj4+''@;'; + put 'put ''MF09MCxhW2MrMjQ+PjJdPWFbNDc2NjFdLGFbNDc2NjFdPWMpLHI2KDE5MDY0OCksYz0wPT0oMHxsKSYwPT0oMHxjKT82MjMzNjpjfWVsc2UgYz1rLE09MTh9d2hpbGUoMCk7ZG97aWYoMTg9PSgwfE0pKXtpZigwPT0oMHxsKSYmNDY9PSgwfGZlW2MrMT4+MF0pKXtjPTYyMzM2O2JyZWFrfWM9''@;'; + put 'put ''MH19d2hpbGUoMCk7cmV0dXJuIGxlPUcsMHxjfShsLGMpLGFbMTkwNjE2KyhsPDwyKT4+Ml09YyxsPWMpOmw9MHxhWzE5MDYxNisobDw8Mik+PjJdLDB8KDB8bD9sKzh8MDoxNTM1NjMpfWZ1bmN0aW9uIHQzKGwsYyxmKXtsfD0wLGN8PTAsZnw9MDt2YXIgcD0wLG09MDtlOmRve2lmKGYpe2Zv''@;'; + put 'put ''cig7KHA9MHxmZVtsPj4wXSk8PDI0Pj4yND09KG09MHxmZVtjPj4wXSk8PDI0Pj4yNDspe2lmKCEoZj1mKy0xfDApKXtsPTA7YnJlYWsgZX1sPWwrMXwwLGM9YysxfDB9bD0oMjU1JnApLSgyNTUmbSl8MH1lbHNlIGw9MH13aGlsZSgwKTtyZXR1cm4gMHxsfWZ1bmN0aW9uIHlnKGwsYyxmKXts''@;'; + put 'put ''fD0wO3ZhciBwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxEPTAsUj0wLEc9MDtpZihmfD0wLDAscD0oY3w9MCkrLTF8MCwoMHxjKTwyKWZlWyhEPWYrNzR8MCk+PjBdPTI1NSsoaz0wfGZlW0Q+PjBdKXxrLHA/bD0wOmZlW2w+PjBdPTA7ZWxzZXtlOmRve2lmKHApe2ZvcihiPWYrNHwwLGs9Zis4''@;'; + put 'put ''fDAsYz1sOzspe2lmKGdvKDB8YywwfChtPTB8YVtiPj4yXSksMHwoQT0oQT0odz0wPT0oMHwoQT0wfGVTKG0sMTAsRz0oMHxhW2s+PjJdKS0oUj1tKXwwKSkpKT9HOjEtUitBfDApPj4+MDxwPj4+MD9BOnApKSxhW2I+PjJdPW09KDB8YVtiPj4yXSkrQXwwLGM9YytBfDAsISh3JjAhPSgwfChB''@;'; + put 'put ''PXAtQXwwKSkpKXtEPTE3O2JyZWFrIGV9aWYobT4+PjA+PSgwfGFbaz4+Ml0pPj4+MCl7aWYoKDB8KHA9MHxwTChmKSkpPDApYnJlYWs7dz1wfWVsc2UgYVtiPj4yXT1tKzEsdz0wfFh0W20+PjBdO2lmKHA9QSstMXwwLG09YysxfDAsZmVbYz4+MF09dywhKDAhPSgwfHApJjEwIT0oMjU1Jnd8''@;'; + put 'put ''MCkpKXtjPW0sRD0xNzticmVhayBlfWM9bX0oMHxjKSE9KDB8bCkmJjAhPSgxNiZhW2Y+PjJdfDApP0Q9MTc6bD0wfWVsc2UgYz1sLEQ9MTd9d2hpbGUoMCk7MTc9PSgwfEQpJiYobD9mZVtjPj4wXT0wOmw9MCl9cmV0dXJuIDB8bH1mdW5jdGlvbiB0UyhsLGMpe3ZhciBmO2x8PTAsZj0wfGZl''@;'; + put 'put ''WyhjfD0wKT4+MF07ZG97aWYoZjw8MjQ+PjI0KWlmKGw9MHwkcyhsLGY8PDI0Pj4yNCkpe2lmKDB8ZmVbYysxPj4wXSlpZigwfGZlW2wrMT4+MF0pe2lmKCEoMHxmZVtjKzI+PjBdKSl7bD0wfHZjZShsLGMpO2JyZWFrfWlmKDB8ZmVbbCsyPj4wXSl7aWYoISgwfGZlW2MrMz4+MF0pKXtsPTB8''@;'; + put 'put ''QWNlKGwsYyk7YnJlYWt9aWYoMHxmZVtsKzM+PjBdKXtpZigwfGZlW2MrND4+MF0pe2w9MHx3Y2UobCxjKTticmVha31sPTB8eWNlKGwsYyk7YnJlYWt9bD0wfWVsc2UgbD0wfWVsc2UgbD0wfWVsc2UgbD0wfXdoaWxlKDApO3JldHVybiAwfGx9ZnVuY3Rpb24gdmNlKGwsYyl7dmFyIG0sZj0w''@;'; + put 'put ''LHA9MDtmb3IobT0oMHxYdFsoY3w9MCk+PjBdKTw8OHwwfFh0W2MrMT4+MF0scD0wfFh0WyhsfD0wKT4+MF07KGY9MHxmZVsoYz1sKzF8MCk+PjBdKTw8MjQ+PjI0JiYoMHwocD1wPDw4JjY1MjgwfDI1NSZmKSkhPSgwfG0pOylsPWM7cmV0dXJuIDB8KGY8PDI0Pj4yND9sOjApfWZ1bmN0aW9u''@;'; + put 'put ''IEFjZShsLGMpe3ZhciBwLGY9MDtpZihwPSgwfFh0WzErKGN8PTApPj4wXSk8PDE2fCgwfFh0W2M+PjBdKTw8MjR8KDB8WHRbYysyPj4wXSk8PDgsISgoMHwobD0oMHxYdFsxKyhsfD0wKT4+MF0pPDwxNnwoMHxYdFtsPj4wXSk8PDI0fCgyNTUmKGM9MHxmZVsoZj1sKzJ8MCk+PjBdKSk8PDgp''@;'; + put 'put ''KT09KDB8cCl8Yzw8MjQ+PjI0PT0wKSlkb3tsPShsfDI1NSYoYz0wfGZlWyhmPWYrMXwwKT4+MF0pKTw8OH13aGlsZSghKCgwfGwpPT0oMHxwKXxjPDwyND4+MjQ9PTApKTtyZXR1cm4gMHwoYzw8MjQ+PjI0P2YrLTJ8MDowKX1mdW5jdGlvbiB5Y2UobCxjKXt2YXIgcCxmPTA7aWYocD0oMHxY''@;'; + put 'put ''dFsxKyhjfD0wKT4+MF0pPDwxNnwoMHxYdFtjPj4wXSk8PDI0fCgwfFh0W2MrMj4+MF0pPDw4fDB8WHRbYyszPj4wXSwhKChmPTB8ZmVbKGM9MysobHw9MCl8MCk+PjBdKTw8MjQ+PjI0PT0wfCgwfChsPSgwfFh0W2wrMT4+MF0pPDwxNnwoMHxYdFtsPj4wXSk8PDI0fCgwfFh0W2wrMj4+MF0p''@;'; + put 'put ''PDw4fDI1NSZmKSk9PSgwfHApKSlkb3tsPWw8PDh8MjU1JihmPTB8ZmVbKGM9YysxfDApPj4wXSl9d2hpbGUoIShmPDwyND4+MjQ9PTB8KDB8bCk9PSgwfHApKSk7cmV0dXJuIDB8KGY8PDI0Pj4yND9jKy0zfDA6MCl9ZnVuY3Rpb24gd2NlKGwsYyl7bHw9MCxjfD0wO3ZhciBiZSxPZSxMZSxm''@;'; + put 'put ''PTAscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLEs9MCxwZT0wLGdlPTA7TGU9bGUsbGU9bGUrMTA1NnwwLE9lPUxlLGFbKGJlPUxlKzEwMjR8MCk+PjJdPTAsYVtiZSs0Pj4yXT0wLGFbYmUrOD4+Ml09MCxhW2JlKzEyPj4yXT0wLGFbYmUrMTY+PjJdPTAsYVtiZSsy''@;'; + put 'put ''MD4+Ml09MCxhW2JlKzI0Pj4yXT0wLGFbYmUrMjg+PjJdPTAsZj0wfGZlW2M+PjBdO2U6ZG97aWYoZjw8MjQ+PjI0KXtnZT0wO2Rve2lmKCEoMHxmZVtsK2dlPj4wXSkpe2Y9MDticmVhayBlfWFbKHBlPWJlKygoKDI1NSZmKT4+PjUmMjU1KTw8Mil8MCk+PjJdPWFbcGU+PjJdfDE8PCgzMSZm''@;'; + put 'put ''KSxhW09lKygoMjU1JmYpPDwyKT4+Ml09Z2U9Z2UrMXwwLGY9MHxmZVtjK2dlPj4wXX13aGlsZShmPDwyND4+MjQhPTApO2lmKE09Z2U+Pj4wPjEpe3A9MCxrPS0xLG09MTt0OmZvcig7Oyl7Zm9yKEE9MSxmPXA7Oyl7cD1tO246Zm9yKDs7KXtmb3IoYj0xOzspe2lmKChtPTB8ZmVbYysoYitr''@;'; + put 'put ''KT4+MF0pPDwyND4+MjQhPSh3PTB8ZmVbYytwPj4wXSk8PDI0Pj4yNClicmVhayBuO2lmKCgwfGIpPT0oMHxBKSlicmVhaztpZigocD0oYj1iKzF8MCkrZnwwKT4+PjA+PWdlPj4+MCl7RD1BLGY9azticmVhayB0fX1pZigocD0xKyhmPUErZnwwKXwwKT4+PjA+PWdlPj4+MCl7RD1BLGY9azti''@;'; + put 'put ''cmVhayB0fX1pZihBPXAta3wwLCgyNTUmbSk8PSgyNTUmdykpYnJlYWs7aWYoKG09cCsxfDApPj4+MD49Z2U+Pj4wKXtEPUEsZj1rO2JyZWFrIHR9Zj1wfWlmKChtPWYrMnwwKT4+PjA+PWdlPj4+MCl7RD0xO2JyZWFrfXA9ZisxfDAsaz1mfWlmKE0pZm9yKEE9MCxNPS0xLHc9MTs7KXtmb3Io''@;'; + put 'put ''cD0xLG09QTs7KXtBPXc7dDpmb3IoOzspe2ZvcihrPTE7Oyl7aWYoKHc9MHxmZVtjKyhrK00pPj4wXSk8PDI0Pj4yNCE9KGI9MHxmZVtjK0E+PjBdKTw8MjQ+PjI0KWJyZWFrIHQ7aWYoKDB8ayk9PSgwfHApKWJyZWFrO2lmKChBPShrPWsrMXwwKSttfDApPj4+MD49Z2U+Pj4wKXt3PUQsbT1N''@;'; + put 'put ''LEE9MjY7YnJlYWsgZX19aWYoKEE9MSsobT1wK218MCl8MCk+Pj4wPj1nZT4+PjApe3c9RCxtPU0sQT0yNjticmVhayBlfX1pZihwPUEtTXwwLCgyNTUmdyk+PSgyNTUmYikpYnJlYWs7aWYoKHc9QSsxfDApPj4+MD49Z2U+Pj4wKXt3PUQsbT1NLEE9MjY7YnJlYWsgZX1tPUF9aWYoKHc9bSsy''@;'; + put 'put ''fDApPj4+MD49Z2U+Pj4wKXt3PUQscD0xLEE9MjY7YnJlYWt9QT1tKzF8MCxNPW19ZWxzZSB3PUQscD0xLG09LTEsQT0yNn1lbHNlIHc9MSxmPS0xLHA9MSxtPS0xLEE9MjZ9ZWxzZSB3PTEsZj0tMSxnZT0wLHA9MSxtPS0xLEE9MjZ9d2hpbGUoMCk7ZTpkb3tpZigyNj09KDB8QSkpZm9yKEs9''@;'; + put 'put ''KG0rMXwwKT4+PjA+KGYrMXwwKT4+PjAscD1LP3A6dyxLPUs/bTpmLHBlPUsrMXwwLDB8dDMoYyxjK3B8MCxwZSk/KHA9Z2UtSy0xfDAsRz0wLHA9KEs+Pj4wPnA+Pj4wP0s6cCkrMXwwKTpHPWdlLXB8MCxrPTYzfGdlLE09Z2UrLTF8MCxEPTAhPSgwfEcpLFI9Z2UtcHwwLGY9bCxiPTAsbT1s''@;'; + put 'put ''Ozspe0E9Zjtkb3tpZigobS1BfDApPj4+MDxnZT4+PjApe2lmKHc9MHxlUyhtLDAsaykpe2lmKCh3LUF8MCk+Pj4wPGdlPj4+MCl7Zj0wO2JyZWFrIGV9YnJlYWt9dz1tK2t8MDticmVha313PW19d2hpbGUoMCk7bT0wfGZlW2YrTT4+MF07dDpkb3tpZigxPDwoMzEmbSkmYVtiZSsoKCgyNTUm''@;'; + put 'put ''bSk+Pj41JjI1NSk8PDIpPj4yXSl7aWYoMHwobT1nZS0oMHxhW09lKygoMjU1Jm0pPDwyKT4+Ml0pfDApKXtBPTAsbT1EJjAhPSgwfGIpJm0+Pj4wPHA+Pj4wP1I6bTticmVha31BPTB8ZmVbYysobT1wZT4+PjA+Yj4+PjA/cGU6Yik+PjBdO246ZG97aWYoQTw8MjQ+PjI0KXtmb3IoO0E8PDI0''@;'; + put 'put ''Pj4yND09KDB8ZmVbZittPj4wXSk7KWlmKCEoKEE9MHxmZVtjKyhtPW0rMXwwKT4+MF0pPDwyND4+MjQpKXttPXBlO2JyZWFrIG59QT0wLG09bS1LfDA7YnJlYWsgdH1tPXBlfXdoaWxlKDApO2Zvcig7Oyl7aWYobT4+PjA8PWI+Pj4wKWJyZWFrIGU7aWYoKDB8ZmVbYysobT1tKy0xfDApPj4w''@;'; + put 'put ''XSkhPSgwfGZlW2YrbT4+MF0pKXtBPUcsbT1wO2JyZWFrfX19ZWxzZSBBPTAsbT1nZX13aGlsZSgwKTtmPWYrbXwwLGI9QSxtPXd9fXdoaWxlKDApO3JldHVybiBsZT1MZSwwfGZ9ZnVuY3Rpb24gcXkobCxjLGYpe3JldHVybiBmdW5jdGlvbiBiY2UobCxjLGYpe2x8PTAsZnw9MDt2YXIgcD0w''@;'; + put 'put ''LG09MCxBPTA7bT1jfD0wO2U6ZG97aWYoMyYobV5sKSlBPTExO2Vsc2V7aWYoKHA9MCE9KDB8ZikpJjAhPSgzJm18MCkpZG97aWYoZmVbbD4+MF09bT0wfGZlW2M+PjBdLCEobTw8MjQ+PjI0KSlicmVhayBlO2M9YysxfDAsbD1sKzF8MCxwPTAhPSgwfChmPWYrLTF8MCkpfXdoaWxlKHAmMCE9''@;'; + put 'put ''KDMmY3wwKSk7aWYocCl7aWYoMHxmZVtjPj4wXSl7dDpkb3tpZihmPj4+MD4zKWZvcihwPWM7Oyl7aWYoKC0yMTM5MDYyMTQ0JihjPTB8YVtwPj4yXSleLTIxMzkwNjIxNDQpJmMrLTE2ODQzMDA5fDApe2M9cDticmVhayB0fWlmKGFbbD4+Ml09YyxjPXArNHwwLGw9bCs0fDAsISgoZj1mKy00''@;'; + put 'put ''fDApPj4+MD4zKSlicmVhaztwPWN9fXdoaWxlKDApO0E9MTF9fWVsc2UgZj0wfX13aGlsZSgwKTtlOmRve2lmKDExPT0oMHxBKSlpZihmKWZvcig7Oyl7aWYoZmVbbD4+MF09QT0wfGZlW2M+PjBdLCEoQTw8MjQ+PjI0KSlicmVhayBlO2lmKGw9bCsxfDAsIShmPWYrLTF8MCkpe2Y9MDticmVh''@;'; + put 'put ''a31jPWMrMXwwfWVsc2UgZj0wfXdoaWxlKDApO3UyKDB8bCwwLDB8Zil9KGx8PTAsY3w9MCxmfD0wKSwwfGx9ZnVuY3Rpb24gXyQobCxjKXtsfD0wLGN8PTA7dmFyIHAsbSxmPTAsQT0wO209bGUsbGU9bGUrMzJ8MCxhWyhwPW0pPj4yXT0wLGFbcCs0Pj4yXT0wLGFbcCs4Pj4yXT0wLGFbcCsx''@;'; + put 'put ''Mj4+Ml09MCxhW3ArMTY+PjJdPTAsYVtwKzIwPj4yXT0wLGFbcCsyND4+Ml09MCxhW3ArMjg+PjJdPTAsZj0wfGZlW2M+PjBdO2Rve2lmKGY8PDI0Pj4yNCl7aWYoISgwfGZlW2MrMT4+MF0pKXtmb3IoYz1sOygwfGZlW2M+PjBdKT09Zjw8MjQ+PjI0OyljPWMrMXwwO2M9Yy1sfDA7YnJlYWt9''@;'; + put 'put ''ZG97YVsoQT1wKygoKDI1NSZmKT4+PjUmMjU1KTw8Mil8MCk+PjJdPWFbQT4+Ml18MTw8KDMxJmYpLGY9MHxmZVsoYz1jKzF8MCk+PjBdfXdoaWxlKGY8PDI0Pj4yNCE9MCk7Zj0wfGZlW2w+PjBdO2U6ZG97aWYoZjw8MjQ+PjI0KXtjPWw7ZG97aWYoIShhW3ArKCgoMjU1JmYpPj4+NSYyNTUp''@;'; + put 'put ''PDwyKT4+Ml0mMTw8KDMxJmYpKSlicmVhayBlO2Y9MHxmZVsoYz1jKzF8MCk+PjBdfXdoaWxlKGY8PDI0Pj4yNCE9MCl9ZWxzZSBjPWx9d2hpbGUoMCk7Yz1jLWx8MH1lbHNlIGM9MH13aGlsZSgwKTtyZXR1cm4gbGU9bSwwfGN9ZnVuY3Rpb24gb28obCxjLGYpe3ZhciBwLG07cmV0dXJuIGx8''@;'; + put 'put ''PTAsY3w9MCxwPWxlLGxlPWxlKzE2fDAsYVsobT1wKT4+Ml09Znw9MCxmPTB8SWoobCxjLG0pLGxlPXAsMHxmfWZ1bmN0aW9uIElqKGwsYyxmKXtyZXR1cm4gMHxtTChsfD0wLDIxNDc0ODM2NDcsY3w9MCxmfD0wKX1mdW5jdGlvbiB4MShsLGMsZixwKXtsfD0wLHB8PTA7dmFyIGssTSxELG09''@;'; + put 'put ''MCxBPTAsdz0wLGI9MCxSPTA7RD1sZSxsZT1sZSsyMDh8MCxrPUQrOHwwLE09RCx3PTB8QXIoZnw9MCxjfD0wKSxhWyhiPU0pPj4yXT0xLGFbYis0Pj4yXT0wO2U6ZG97aWYoMHx3KXtmb3IoYj0wLWZ8MCxhW2srND4+Ml09ZixhW2s+PjJdPWYsbT0yLGM9ZixBPWY7YVtrKyhtPDwyKT4+Ml09''@;'; + put 'put ''Yz1jK2YrQXwwLGM+Pj4wPHc+Pj4wOylSPUEsbT1tKzF8MCxBPWMsYz1SO2lmKChBPWwrdytifDApPj4+MD5sPj4+MCl7dz1BLG09MSxjPTE7ZG97ZG97aWYoMyE9KDMmY3wwKSl7aWYoKDB8YVtrKygoYz1tKy0xfDApPDwyKT4+Ml0pPj4+MDwody1sfDApPj4+MD9BTChsLGYscCxtLGspOndM''@;'; + put 'put ''KGwsZixwLE0sbSwwLGspLDE9PSgwfG0pKXtiTChNLDEpLG09MDticmVha31iTChNLGMpLG09MTticmVha31BTChsLGYscCxtLGspLHlMKE0sMiksbT1tKzJ8MH13aGlsZSgwKTthW00+PjJdPWM9MXxhW00+PjJdLGw9bCtmfDB9d2hpbGUobD4+PjA8QT4+PjApfWVsc2UgbT0xLGM9MTtmb3Io''@;'; + put 'put ''d0wobCxmLHAsTSxtLDAsayksQT1NKzR8MDs7KXtpZigxPT0oMHxtKSYxPT0oMHxjKSl7aWYoISgwfGFbQT4+Ml0pKWJyZWFrIGV9ZWxzZSBpZigoMHxtKT49Mil7YkwoTSwyKSxSPW0rLTJ8MCxhW00+PjJdPTdeYVtNPj4yXSx5TChNLDEpLHdMKGwrKDAtKDB8YVtrKyhSPDwyKT4+Ml0pKSti''@;'; + put 'put ''fDAsZixwLE0sbSstMXwwLDEsayksYkwoTSwxKSxhW00+PjJdPWM9MXxhW00+PjJdLHdMKHc9bCtifDAsZixwLE0sUiwxLGspLGw9dyxtPVI7Y29udGludWV9eUwoTSxjPTB8QyQoTSkpLGw9bCtifDAsbT1jK218MCxjPTB8YVtNPj4yXX19fXdoaWxlKDApO2xlPUR9ZnVuY3Rpb24gQUwobCxj''@;'; + put 'put ''LGYscCxtKXtjfD0wLGZ8PTAscHw9MCxtfD0wO3ZhciBELFIsQT0wLHc9MCxiPTAsaz0wLE09MDtSPWxlLGxlPWxlKzI0MHwwLGFbKEQ9Uik+PjJdPWx8PTA7ZTpkb3tpZigoMHxwKT4xKWZvcihNPTAtY3wwLEE9bCxrPXAscD0xOzspe2lmKCgwfEJpWzEyNyZmXShsLEE9KHc9QStNfDApKygw''@;'; + put 'put ''LSgwfGFbbSsoKGI9aystMnwwKTw8Mik+PjJdKSl8MCkpPi0xJiYoMHxCaVsxMjcmZl0obCx3KSk+LTEpYnJlYWsgZTtpZihsPXArMXwwLHA9RCsocDw8Mil8MCwoMHxCaVsxMjcmZl0oQSx3KSk+LTE/KGFbcD4+Ml09QSxwPWsrLTF8MCk6KGFbcD4+Ml09dyxBPXcscD1iKSwoMHxwKTw9MSl7''@;'; + put 'put ''cD1sO2JyZWFrIGV9az1wLHA9bCxsPTB8YVtEPj4yXX1lbHNlIHA9MX13aGlsZSgwKTtTJChjLEQscCksbGU9Un1mdW5jdGlvbiB5TChsLGMpe3ZhciBtLGY9MCxwPTA7bT00KyhsfD0wKXwwLChjfD0wKT4+PjA+MzE/KGFbbD4+Ml09cD0wfGFbbT4+Ml0sYVttPj4yXT0wLGM9YystMzJ8MCxm''@;'; + put 'put ''PTApOihmPTB8YVttPj4yXSxwPTB8YVtsPj4yXSksYVtsPj4yXT1mPDwzMi1jfHA+Pj5jLGFbbT4+Ml09Zj4+PmN9ZnVuY3Rpb24gd0wobCxjLGYscCxtLEEsdyl7bHw9MCxjfD0wLGZ8PTAsbXw9MCxBfD0wLHd8PTA7dmFyIE0sUixHLEssYj0wLGs9MCxEPTAscGU9MDtLPWxlLGxlPWxlKzI0''@;'; + put 'put ''MHwwLEc9SyxhWyhSPUsrMjMyfDApPj4yXT1wZT0wfGFbKHB8PTApPj4yXSxhWyhNPVIrNHwwKT4+Ml09az0wfGFbcCs0Pj4yXSxhW0c+PjJdPWw7ZTpkb3tpZigxIT0oMHxwZSl8MCE9KDB8aykmJihEPTAtY3wwLGI9bCsoMC0oMHxhW3crKG08PDIpPj4yXSkpfDAsKDB8QmlbMTI3JmZdKGIs''@;'; + put 'put ''bCkpPj0xKSlmb3IocD0xLEE9MD09KDB8QSksaz1iOzspe2lmKEEmKDB8bSk+MSl7aWYoYj0wfGFbdysobSstMjw8Mik+PjJdLCgwfEJpWzEyNyZmXShBPWwrRHwwLGspKT4tMSl7Yj0xMDticmVhayBlfWlmKCgwfEJpWzEyNyZmXShBKygwLWIpfDAsaykpPi0xKXtiPTEwO2JyZWFrIGV9fWlm''@;'; + put 'put ''KEE9cCsxfDAsYVtHKyhwPDwyKT4+Ml09ayx5TChSLHBlPTB8QyQoUikpLG09cGUrbXwwLCEoMSE9KDB8YVtSPj4yXSl8MCE9KDB8YVtNPj4yXSkpKXtwPUEsbD1rLGI9MTA7YnJlYWsgZX1pZigoMHxCaVsxMjcmZl0obD1rKygwLSgwfGFbdysobTw8Mik+PjJdKSl8MCwwfGFbRz4+Ml0pKTwx''@;'; + put 'put ''KXtsPWsscD1BLEE9MCxiPTk7YnJlYWt9cGU9ayxwPUEsQT0xLGs9bCxsPXBlfWVsc2UgcD0xLGI9OX13aGlsZSgwKTs5PT0oMHxiKSYmMD09KDB8QSkmJihiPTEwKSwxMD09KDB8YikmJihTJChjLEcscCksQUwobCxjLGYsbSx3KSksbGU9S31mdW5jdGlvbiBiTChsLGMpe3ZhciBtLGY9MCxw''@;'; + put 'put ''PTA7bT00KyhsfD0wKXwwLChjfD0wKT4+PjA+MzE/KGFbbT4+Ml09cD0wfGFbbD4+Ml0sYVtsPj4yXT0wLGM9YystMzJ8MCxmPTApOihmPTB8YVtsPj4yXSxwPTB8YVttPj4yXSksYVttPj4yXT1mPj4+KDMyLWN8MCl8cDw8YyxhW2w+PjJdPWY8PGN9ZnVuY3Rpb24gQyQobCl7dmFyIGM9MDty''@;'; + put 'put ''ZXR1cm4oYz0wfGskKCgwfGFbKGx8PTApPj4yXSktMXwwKSk/MHxjOjB8KDA9PSgwfChjPTB8ayQoMHxhW2wrND4+Ml0pKSk/MDpjKzMyfDApfWZ1bmN0aW9uIGskKGwpe3ZhciBjPTA7aWYobHw9MClpZigxJmwpbD0wO2Vsc2V7Yz1sLGw9MDtkb3tsPWwrMXwwLGM+Pj49MX13aGlsZSghKDEm''@;'; + put 'put ''Y3wwKSl9ZWxzZSBsPTMyO3JldHVybiAwfGx9ZnVuY3Rpb24gUyQobCxjLGYpe2x8PTAsY3w9MCxmfD0wO3ZhciB3LHA9MCxtPTAsQT0wLGI9MDt3PWxlLGxlPWxlKzI1NnwwLHA9dztlOmRve2lmKCgwfGYpPj0yJiYoQT1jKyhmPDwyKXwwLGFbQT4+Ml09cCwwfGwpKWZvcig7Oyl7Z28oMHxw''@;'; + put 'put ''LDB8YVtjPj4yXSwwfChtPWw+Pj4wPDI1Nj9sOjI1NikpLHA9MDtkb3tnbygwfGFbKGI9YysocDw8Mil8MCk+PjJdLDB8YVtjKygocD1wKzF8MCk8PDIpPj4yXSwwfG0pLGFbYj4+Ml09KDB8YVtiPj4yXSkrbX13aGlsZSgoMHxwKSE9KDB8ZikpO2lmKCEobD1sLW18MCkpYnJlYWsgZTtwPTB8''@;'; + put 'put ''YVtBPj4yXX19d2hpbGUoMCk7bGU9d31mdW5jdGlvbiBUMChsLGMsZil7dmFyIHAsbTtyZXR1cm4gbHw9MCxjfD0wLHA9bGUsbGU9bGUrMTZ8MCxhWyhtPXApPj4yXT1mfD0wLGY9MHx2TChsLGMsbSksbGU9cCwwfGZ9ZnVuY3Rpb24gQ2NlKGwpe2x8PTA7dmFyIHAsYz0wLGY9MDtmb3IocD1s''@;'; + put 'put ''ZSxsZT1sZSsxNnwwLEZNKDAsMHwoZj1wKSksYz0wLGY9NjU1MzcqKDB8YVtmKzQ+PjJdKV4oZj4+PjQpK2w7ZmVbbCtjPj4wXT02NSsoMTUmZil8Zjw8MSYzMiw2IT0oMHwoYz1jKzF8MCkpOylmPj4+PTU7cmV0dXJuIGxlPXAsMHxsfWZ1bmN0aW9uIF9MKGwsYyxmKXtyZXR1cm4gMHxmJChs''@;'; + put 'put ''fD0wLGN8PTAsZnw9MCwtMjE0NzQ4MzY0OCwwKX1mdW5jdGlvbiBEaihsLGMpe2x8PTA7dmFyIHAsQSxmPTAsbT0wLHc9MDtBPWxlLGxlPWxlKzMyfDAscD1BLGY9MHxmZVsoY3w9MCk+PjBdO2U6ZG97aWYoZjw8MjQ+PjI0IT0wJiYwIT0oMHxmZVtjKzE+PjBdKSl7YVtwPj4yXT0wLGFbcCs0''@;'; + put 'put ''Pj4yXT0wLGFbcCs4Pj4yXT0wLGFbcCsxMj4+Ml09MCxhW3ArMTY+PjJdPTAsYVtwKzIwPj4yXT0wLGFbcCsyND4+Ml09MCxhW3ArMjg+PjJdPTA7ZG97YVsodz1wKygoKDI1NSZmKT4+PjUmMjU1KTw8Mil8MCk+PjJdPWFbdz4+Ml18MTw8KDMxJmYpLGY9MHxmZVsoYz1jKzF8MCk+PjBdfXdo''@;'; + put 'put ''aWxlKGY8PDI0Pj4yNCE9MCk7aWYoKGY9MHxmZVtsPj4wXSk8PDI0Pj4yNCl7Yz1sO2Rve2lmKGFbcCsoKCgyNTUmZik+Pj41JjI1NSk8PDIpPj4yXSYxPDwoMzEmZil8MClicmVhayBlO2Y9MHxmZVsoYz1jKzF8MCk+PjBdfXdoaWxlKGY8PDI0Pj4yNCE9MCl9ZWxzZSBjPWx9ZWxzZSBtPTN9''@;'; + put 'put ''d2hpbGUoMCk7cmV0dXJuIDM9PSgwfG0pJiYoYz0wfGhMKGwsZjw8MjQ+PjI0KSksbGU9QSxjLWx8MH1mdW5jdGlvbiBsdihsLGMpe2N8PTA7dmFyIGY9MDsobHw9MCl8fChsPTB8YVs0NzY2Nl0pP2Y9MzpsPTA7ZG97aWYoMz09KDB8Zikpe2lmKGw9bCsoMHxfJChsLGMpKXwwLCEoMHxmZVts''@;'; + put 'put ''Pj4wXSkpe2FbNDc2NjZdPTAsbD0wO2JyZWFrfWlmKGM9bCsoMHxEaihsLGMpKXwwLGFbNDc2NjZdPWMsMHxmZVtjPj4wXSl7YVs0NzY2Nl09YysxLGZlW2M+PjBdPTA7YnJlYWt9YVs0NzY2Nl09MDticmVha319d2hpbGUoMCk7cmV0dXJuIDB8bH1mdW5jdGlvbiBMaihsLGMsZil7Y3w9MCxm''@;'; + put 'put ''fD0wO3ZhciBwPTA7KGx8PTApfHwobD0wfGFbZj4+Ml0pP3A9MzpsPTA7ZG97aWYoMz09KDB8cCkpe2lmKGw9bCsoMHxfJChsLGMpKXwwLCEoMHxmZVtsPj4wXSkpe2FbZj4+Ml09MCxsPTA7YnJlYWt9aWYoYz1sKygwfERqKGwsYykpfDAsYVtmPj4yXT1jLDB8ZmVbYz4+MF0pe2FbZj4+Ml09''@;'; + put 'put ''YysxLGZlW2M+PjBdPTA7YnJlYWt9YVtmPj4yXT0wO2JyZWFrfX13aGlsZSgwKTtyZXR1cm4gMHxsfWZ1bmN0aW9uIHJhKGwpe3ZhciBmLGM9MDtyZXR1cm4oYz0wfEIwKGY9MSsoMHxVbyhsfD0wKSl8MCkpP2dvKDB8YywwfGwsMHxmKTpjPTAsMHxjfWZ1bmN0aW9uIE0kKGwsYyl7cmV0dXJu''@;'; + put 'put ''IDB8ZnVuY3Rpb24ga2NlKGwsYyxmKXt2YXIgcDtsfD0wLGZ8PTAscD0yNTUmKGN8PTApO2Rve2lmKCFmKXtjPTA7YnJlYWt9Yz1sKyhmPWYrLTF8MCl8MH13aGlsZSgoMHxmZVtjPj4wXSkhPXA8PDI0Pj4yNCk7cmV0dXJuIDB8Y30obHw9MCxjfD0wLDErKDB8VW8obCkpfDApfWZ1bmN0aW9u''@;'; + put 'put ''IHN2KGwsYyl7cmV0dXJuIGN8PTAsaWQoKGx8PTApKygwfFVvKGwpKXwwLGMpLDB8bH1mdW5jdGlvbiBFJChsKXtyZXR1cm4gMHwoMHxhWyhsfD0wKT4+Ml0pPj4+NCYxfWZ1bmN0aW9uIGV3KGwpe3ZhciBBLGM9MCxmPTAscD0wO3JldHVybiAwLGZ1bmN0aW9uIE1jZShsKXt2YXIgYz0wOzB8''@;'; + put 'put ''YVs2OCsobHw9MCk+PjJdJiYoYz0wfGFbbCsxMTY+PjJdLGw9bCsxMTJ8MCwwfGMmJihhW2MrMTEyPj4yXT1hW2w+PjJdKSxsPShsPTB8YVtsPj4yXSk/bCsxMTZ8MDo2MzIwOCxhW2w+PjJdPWMpfShsfD0wKSwoQT0wIT0oMSZhW2w+PjJdfDApKXx8KHA9MHxPaigpLGM9bCs1NnwwLDB8KGY9''@;'; + put 'put ''MHxhW2wrNTI+PjJdKSYmKGFbZis1Nj4+Ml09YVtjPj4yXSksMHwoYz0wfGFbYz4+Ml0pJiYoYVtjKzUyPj4yXT1mKSwoMHxhW3A+PjJdKT09KDB8bCkmJihhW3A+PjJdPWMpLFJqKCkpLGM9MHxDTChsKSxjPTB8X29bNjMmYVtsKzEyPj4yXV0obCl8YywwfChmPTB8YVtsKzkyPj4yXSkmJkZ0''@;'; + put 'put ''KGYpLEF8fEZ0KGwpLDB8Y31mdW5jdGlvbiBPaigpe3JldHVybiAkcCgxOTA2NjgpLDE5MDY3Nn1mdW5jdGlvbiBSaigpe3I2KDE5MDY2OCl9ZnVuY3Rpb24gQ0wobCl7bHw9MDt2YXIgYz0wO2Rve2lmKGwpe2lmKCgwfGFbbCs3Nj4+Ml0pPD0tMSl7Yz0wfEJqKGwpO2JyZWFrfSEwLGM9MHxC''@;'; + put 'put ''aihsKX1lbHNle2lmKGM9MHxhWzE1NzExXT8wfENMKDB8YVsxNTcxMV0pOjAsbD0wfGFbKDB8T2ooKSk+PjJdKWRvezAsKDB8YVtsKzIwPj4yXSk+Pj4wPigwfGFbbCsyOD4+Ml0pPj4+MCYmKGM9MHxCaihsKXxjKSxsPTB8YVtsKzU2Pj4yXX13aGlsZSgwIT0oMHxsKSk7UmooKX19d2hpbGUo''@;'; + put 'put ''MCk7cmV0dXJuIDB8Y31mdW5jdGlvbiBCaihsKXt2YXIgYyx3LGY9MCxwPTAsbT0wLEE9MDtyZXR1cm4oMHxhWyhjPTIwKyhsfD0wKXwwKT4+Ml0pPj4+MD4oMHxhWyh3PWwrMjh8MCk+PjJdKT4+PjAmJihtaVs2MyZhW2wrMzY+PjJdXShsLDAsMCksMD09KDB8YVtjPj4yXSkpP2w9LTE6KChw''@;'; + put 'put ''PTB8YVsoZj1sKzR8MCk+PjJdKT4+PjA8KEE9MHxhWyhtPWwrOHwwKT4+Ml0pPj4+MCYmbWlbNjMmYVtsKzQwPj4yXV0obCxwLUF8MCwxKSxhW2wrMTY+PjJdPTAsYVt3Pj4yXT0wLGFbYz4+Ml09MCxhW20+PjJdPTAsYVtmPj4yXT0wLGw9MCksMHxsfWZ1bmN0aW9uIHgkKGwsYyl7bHw9MDt2''@;'; + put 'put ''YXIgbSxiLGssTSxELFIsZj0wLHA9MCxBPTAsdz0wO2lmKFI9bGUsbGU9bGUrNjR8MCxEPVIrNDB8MCxrPVIrMjR8MCxiPVIrMTZ8MCxtPVIsTT1SKzU2fDAsMHxlUygxNTM1ODAsKHA9MHxmZVsoY3w9MCk+PjBdKTw8MjQ+PjI0LDQpKWlmKGY9MHxCMCgxMTU2KSl7dz0oQT1mKSsxMjR8MDtk''@;'; + put 'put ''b3thW0E+PjJdPTAsQT1BKzR8MH13aGlsZSgoMHxBKTwoMHx3KSk7MHwkcyhjLDQzKXx8KGFbZj4+Ml09cDw8MjQ+PjI0PT0xMTQ/ODo0KSwwfCRzKGMsMTAxKSYmKGFbbT4+Ml09bCxhW20rND4+Ml09MixhW20rOD4+Ml09MSxfZCgyMjEsMHxtKSxwPTB8ZmVbYz4+MF0pLHA8PDI0Pj4yND09''@;'; + put 'put ''OTc/KGFbYj4+Ml09bCxhW2IrND4+Ml09MywxMDI0JihwPTB8X2QoMjIxLDB8YikpfHwoYVtrPj4yXT1sLGFbays0Pj4yXT00LGFbays4Pj4yXT0xMDI0fHAsX2QoMjIxLDB8aykpLGFbZj4+Ml09Yz0xMjh8YVtmPj4yXSk6Yz0wfGFbZj4+Ml0sYVtmKzYwPj4yXT1sLGFbZis0ND4+Ml09Zisx''@;'; + put 'put ''MzIsYVtmKzQ4Pj4yXT0xMDI0LGZlWyhwPWYrNzV8MCk+PjBdPS0xLDA9PSg4JmN8MCkmJihhW0Q+PjJdPWwsYVtEKzQ+PjJdPTIxNTIzLGFbRCs4Pj4yXT1NLDA9PSgwfG42KDU0LDB8RCkpKSYmKGZlW3A+PjBdPTEwKSxhW2YrMzI+PjJdPTE1LGFbZiszNj4+Ml09MTgsYVtmKzQwPj4yXT0x''@;'; + put 'put ''NixhW2YrMTI+PjJdPTE3LDB8YVs0NzY0NV18fChhW2YrNzY+PjJdPS0xKSxmdW5jdGlvbiB4Y2UobCl7bHw9MDt2YXIgYyxmO2M9MHxPaigpLGFbbCs1Nj4+Ml09YVtjPj4yXSwwfChmPTB8YVtjPj4yXSkmJihhW2YrNTI+PjJdPWwpLGFbYz4+Ml09bCxSaigpfShmKX1lbHNlIGY9MDtlbHNl''@;'; + put 'put ''IGFbNDc2NDNdPTIyLGY9MDtyZXR1cm4gbGU9UiwwfGZ9ZnVuY3Rpb24gYzgobCxjLGYpe2x8PTAsY3w9MCxmfD0wO3ZhciB3LHA9MCxtPTAsQT0wO3c9bGUsbGU9bGUrMTZ8MCxwPXc7ZTpkb3tpZihjKXtkb3tpZigwfGYpe2lmKEE9MD09KDB8bCk/cDpsLChsPTB8ZmVbYz4+MF0pPDwyND4+''@;'; + put 'put ''MjQ+LTEpe2FbQT4+Ml09MjU1JmwsbD1sPDwyND4+MjQhPTAmMTticmVhayBlfWlmKGw9MHxmZVtjPj4wXSxtPTA9PSgwfGFbYVsxNTc5MV0+PjJdKSl7YVtBPj4yXT1sPDwyND4+MjQmNTczNDMsbD0xO2JyZWFrIGV9aWYoKGw9KDI1NSZsKS0xOTR8MCk+Pj4wPD01MCl7aWYocD1jKzF8MCxt''@;'; + put 'put ''PTB8YVs2MjM4NCsobDw8Mik+PjJdLGY+Pj4wPDQmJm0mLTIxNDc0ODM2NDg+Pj4oKDYqZnwwKS02fDApfDApYnJlYWs7aWYoKChmPShsPTB8WHRbcD4+MF0pPj4+MyktMTZ8ZisobT4+MjYpKT4+PjA8PTcpe2lmKCgwfChsPWwrLTEyOHxtPDw2KSk+PTApe2FbQT4+Ml09bCxsPTI7YnJlYWsg''@;'; + put 'put ''ZX1pZigocD0oMHxYdFtjKzI+PjBdKS0xMjh8MCk+Pj4wPD02Myl7aWYoKDB8KHB8PWw8PDYpKT49MCl7YVtBPj4yXT1wLGw9MzticmVhayBlfWlmKChsPSgwfFh0W2MrMz4+MF0pLTEyOHwwKT4+PjA8PTYzKXthW0E+PjJdPWx8cDw8NixsPTQ7YnJlYWsgZX19fX19fXdoaWxlKDApO2FbNDc2''@;'; + put 'put ''NDNdPTg0LGw9LTF9ZWxzZSBsPTB9d2hpbGUoMCk7cmV0dXJuIGxlPXcsMHxsfWZ1bmN0aW9uIF91KGwsYyl7dmFyIGY7cmV0dXJuIGN8PTAsKCgwfEN1KGx8PTAsMSxmPTB8VW8obCksYykpIT0oMHxmKSk8PDMxPj4zMXwwfWZ1bmN0aW9uIEN1KGwsYyxmLHApe2x8PTAscHw9MDt2YXIgbTty''@;'; + put 'put ''ZXR1cm4gbT0wfEFyKGZ8PTAsY3w9MCksZj0wPT0oMHxjKT8wOmYsKDB8YVtwKzc2Pj4yXSk+LTE/KCEwLGw9MHx4aihsLG0scCkpOmw9MHx4aihsLG0scCksKDB8bCkhPSgwfG0pJiYoZj0obD4+PjApLyhjPj4+MCl8MCksMHxmfWZ1bmN0aW9uIFBqKGwsYyl7bHw9MDt2YXIgdyxiLGssZj0w''@;'; + put 'put ''LHA9MCxtPTAsQT0wO2s9bGUsbGU9bGUrMTZ8MCxmZVsodz1rKT4+MF09Yj0yNTUmKGN8PTApLChtPTB8YVsocD1sKzE2fDApPj4yXSk/QT00OjB8dyQobCk/Zj0tMToobT0wfGFbcD4+Ml0sQT00KTtkb3tpZig0PT0oMHxBKSl7aWYoKHA9MHxhWyhBPWwrMjB8MCk+PjJdKT4+PjA8bT4+PjAm''@;'; + put 'put ''JigwfChmPTI1NSZjKSkhPSgwfGZlW2wrNzU+PjBdKSl7YVtBPj4yXT1wKzEsZmVbcD4+MF09YjticmVha31mPTE9PSgwfG1pWzYzJmFbbCszNj4+Ml1dKGwsdywxKSk/MHxYdFt3Pj4wXTotMX19d2hpbGUoMCk7cmV0dXJuIGxlPWssMHxmfWZ1bmN0aW9uIEljZShsLGMsZil7dmFyIHAsbTty''@;'; + put 'put ''ZXR1cm4gY3w9MCxmfD0wLHA9bGUsbGU9bGUrMTZ8MCxhWyhtPXApPj4yXT1sfD0wLGFbbSs0Pj4yXT1jLGFbbSs4Pj4yXT1mLGY9MHx1aCgwfG05KDMsMHxtKSksbGU9cCwwfGZ9ZnVuY3Rpb24gRmooKXt2YXIgbCxjO3JldHVybiBjPWxlLGxlPWxlKzE2fDAsbD0wfHNiKDIwLDB8YyksbGU9''@;'; + put 'put ''YywwfGx9ZnVuY3Rpb24gVCQobCxjKXtjfD0wO3ZhciBwLG0sQSxmPTA7cmV0dXJuIEE9bGUsbGU9bGUrNDh8MCxtPUErNDB8MCxwPUErOHwwLGFbKGY9QSk+PjJdPWx8PTAsYVtmKzQ+PjJdPWMsLTk9PSgwfChmPTB8R2YoMTk3LDB8ZikpKSYmKGFbcD4+Ml09bCxhW3ArND4+Ml09MSwoMHxf''@;'; + put 'put ''ZCgyMjEsMHxwKSk+PTApPyhmdW5jdGlvbiBEY2UobCxjKXtjfD0wO3ZhciBtLGY9MCxwPTA7cD0xNTM1NjUsbT0xNSsoZj1sfD0wKXwwO2Rve2ZlW2Y+PjBdPTB8ZmVbcD4+MF0sZj1mKzF8MCxwPXArMXwwfXdoaWxlKCgwfGYpPCgwfG0pKTtpZihjKXtmb3IocD1jLGY9MTQ7Zj1mKzF8MCwh''@;'; + put 'put ''KHA+Pj4wPDEwKTspcD0ocD4+PjApLzEwfDA7Zm9yKGZlW2wrZj4+MF09MDtmZVtsKyhmPWYrLTF8MCk+PjBdPTQ4fChjPj4+MCklMTAsIShjPj4+MDwxMCk7KWM9KGM+Pj4wKS8xMHwwfWVsc2UgZmVbbCsxND4+MF09NDgsZmVbbCsxNT4+MF09MH0ocCxsKSxhW20+PjJdPXAsYVttKzQ+PjJd''@;'; + put 'put ''PWMsYz0wfHVoKDB8QWMoMTk1LDB8bSkpKTpjPTB8dWgoZiksbGU9QSwwfGN9ZnVuY3Rpb24gTGNlKGwsYyl7dmFyIGYscDtyZXR1cm4gY3w9MCxmPWxlLGxlPWxlKzE2fDAsYVsocD1mKT4+Ml09bHw9MCxhW3ArND4+Ml09YyxjPTB8dWgoMHx0bSgzMywwfHApKSxsZT1mLDB8Y31mdW5jdGlv''@;'; + put 'put ''biBuUyhsLGMpe2x8PTA7dmFyIG0sQSx3LGY9MCxwPTA7cmV0dXJuIHc9bGUsbGU9bGUrNDh8MCxBPXcrMzJ8MCxtPXcrMTZ8MCxmPXcsMHxlUygxNTM1ODAsMHxmZVsoY3w9MCk+PjBdLDQpPyhwPTB8ZnVuY3Rpb24gT2NlKGwpe3ZhciBjLGY9MDtyZXR1cm4gZj0wPT0oMHwkcyhsfD0wLDQz''@;'; + put 'put ''KSksYz0wfGZlW2w+PjBdLGY9Zj9jPDwyND4+MjQhPTExNCYxOjIsZj0wPT0oMHwkcyhsLDEyMCkpP2Y6MTI4fGYsbD0obD0wPT0oMHwkcyhsLDEwMSkpKT9mOjUyNDI4OHxmLGw9Yzw8MjQ+PjI0PT0xMTQ/bDo2NHxsLGw9Yzw8MjQ+PjI0PT0xMTk/NTEyfGw6bCwwfChjPDwyND4+MjQ9PTk3''@;'; + put 'put ''PzEwMjR8bDpsKX0oYyksYVtmPj4yXT1sLGFbZis0Pj4yXT0zMjc2OHxwLGFbZis4Pj4yXT00MzgsKDB8KGY9MHx1aCgwfEI4KDUsMHxmKSkpKT49MD8oNTI0Mjg4JnB8MCYmKGFbbT4+Ml09ZixhW20rND4+Ml09MixhW20rOD4+Ml09MSxfZCgyMjEsMHxtKSksKGw9MHx4JChmLGMpKXx8KGFb''@;'; + put 'put ''QT4+Ml09ZixKdSg2LDB8QSksbD0wKSk6bD0wKTooYVs0NzY0M109MjIsbD0wKSxsZT13LDB8bH1mdW5jdGlvbiBpbChsLGMsZil7dmFyIHAsbTtyZXR1cm4gbHw9MCxjfD0wLHA9bGUsbGU9bGUrMTZ8MCxhWyhtPXApPj4yXT1mfD0wLGY9MHxmdW5jdGlvbiBSY2UobCxjLGYpe2x8PTAsY3w9''@;'; + put 'put ''MCxmfD0wO3ZhciBwLEEsbT0wLHc9MDtBPWxlLGxlPWxlKzEyOHwwLHc9KG09cD1BKSsxMjR8MDtkb3thW20+PjJdPTAsbT1tKzR8MH13aGlsZSgoMHxtKTwoMHx3KSk7cmV0dXJuIGFbcCszMj4+Ml09NDEsYVtwKzQ0Pj4yXT1sLGFbcCs3Nj4+Ml09LTEsYVtwKzg0Pj4yXT1sLHc9MHxmdW5j''@;'; + put 'put ''dGlvbiBQY2UobCxjLGYpe2Z8PTA7dmFyIHN0LEV0LFp0LGN0LFNuLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxLPTAscGU9MCxnZT0wLGJlPTAsT2U9MCxMZT0wLFJlPTAsSGU9MCxWZT0wLHFlPTAsbnQ9MCxXZT0wLG90PTAsU3Q9MCxrdD0wLGJ0PTA7U249bGUs''@;'; + put 'put ''bGU9bGUrMjg4fDAsc3Q9U24rOHwwLEV0PVNuKzE3fDAsWnQ9U24sY3Q9U24rMTZ8MCxsfD0wLHA9MHxmZVsoY3w9MCk+PjBdO2U6ZG97aWYocDw8MjQ+PjI0KXtIZT1sKzR8MCxWZT1sKzEwMHwwLHFlPWwrMTA4fDAsbnQ9bCs4fDAsV2U9RXQrMTB8MCxvdD1FdCszM3wwLFJlPXN0KzR8MCxT''@;'; + put 'put ''dD1FdCsxfDAsa3Q9RXQrMXwwLHc9YyxLPTAsYz0wLEE9MCxtPTA7dDpmb3IoOzspe246ZG97aWYoMHwkYygyNTUmcCkpe2Zvcig7MHwkYygwfFh0WyhwPXcrMXwwKT4+MF0pOyl3PXA7Y2gobCwwKTtkb3socD0wfGFbSGU+PjJdKT4+PjA8KDB8YVtWZT4+Ml0pPj4+MD8oYVtIZT4+Ml09cCsx''@;'; + put 'put ''LHA9MHxYdFtwPj4wXSk6cD0wfElsKGwpfXdoaWxlKDAhPSgwfCRjKHApKSk7MHxhW1ZlPj4yXT9hW0hlPj4yXT1wPSgwfGFbSGU+PjJdKS0xfDA6cD0wfGFbSGU+PjJdLGI9KDB8YVtxZT4+Ml0pK0srcC0oMHxhW250Pj4yXSl8MH1lbHNle3A9cDw8MjQ+PjI0PT0zNztyOmRve2lmKHApe2I9''@;'; + put 'put ''MHxmZVsoTT13KzF8MCk+PjBdO2k6ZG97c3dpdGNoKGI8PDI0Pj4yNCl7Y2FzZSAzNzpicmVhayByO2Nhc2UgNDI6TGU9MCx3PXcrMnwwO2JyZWFrO2RlZmF1bHQ6aWYoKHA9KDI1NSZiKS00OHwwKT4+PjA8MTAmJjM2PT0oMHxmZVt3KzI+PjBdKSl7TGU9MHxGY2UoZixwKSx3PXcrM3wwO2Jy''@;'; + put 'put ''ZWFrIGl9TGU9MHxhWyh3PTMrKDB8YVtmPj4yXSkmLTQpPj4yXSxhW2Y+PjJdPXcrNCx3PU19fXdoaWxlKDApO2lmKCgoYj0yNTUmKHA9MHxmZVt3Pj4wXSkpLTQ4fDApPj4+MDwxMCl7TT0wO2Rve009KDEwKk18MCktNDgrYnwwLGI9MjU1JihwPTB8ZmVbKHc9dysxfDApPj4wXSl9d2hpbGUo''@;'; + put 'put ''KGIrLTQ4fDApPj4+MDwxMCl9ZWxzZSBNPTA7c3dpdGNoKEE9KHA9cDw8MjQ+PjI0PT0xMDkpPzA6QSxtPXA/MDptLHc9cD93KzF8MDp3LHAmPU9lPTAhPSgwfExlKSxiPXcrMXwwLDB8ZmVbdz4+MF0pe2Nhc2UgMTA0OkQ9KGJlPTEwND09KDB8ZmVbYj4+MF0pKT8tMjotMSx3PWJlP3crMnww''@;'; + put 'put ''OmI7YnJlYWs7Y2FzZSAxMDg6RD0oYmU9MTA4PT0oMHxmZVtiPj4wXSkpPzM6MSx3PWJlP3crMnwwOmI7YnJlYWs7Y2FzZSAxMDY6RD0zLHc9YjticmVhaztjYXNlIDExNjpjYXNlIDEyMjpEPTEsdz1iO2JyZWFrO2Nhc2UgNzY6RD0yLHc9YjticmVhaztjYXNlIDExMDpjYXNlIDExMjpjYXNl''@;'; + put 'put ''IDY3OmNhc2UgODM6Y2FzZSA5MTpjYXNlIDk5OmNhc2UgMTE1OmNhc2UgODg6Y2FzZSA3MTpjYXNlIDcwOmNhc2UgNjk6Y2FzZSA2NTpjYXNlIDEwMzpjYXNlIDEwMjpjYXNlIDEwMTpjYXNlIDk3OmNhc2UgMTIwOmNhc2UgMTE3OmNhc2UgMTExOmNhc2UgMTA1OmNhc2UgMTAwOkQ9MDticmVh''@;'; + put 'put ''aztkZWZhdWx0OmJ0PTEzNTticmVhayB0fXN3aXRjaChHPShwZT0zPT0oNDcmKEc9MHxYdFt3Pj4wXSl8MCkpPzMyfEc6RyxwZT1wZT8xOkQsKFI9MjU1JkcpPDwyND4+MjQpe2Nhc2UgOTk6TT0oMHxNKT4xP006MSxiZT1LO2JyZWFrO2Nhc2UgOTE6YmU9SzticmVhaztjYXNlIDExMDpJJChM''@;'; + put 'put ''ZSxwZSxLLCgoMHxLKTwwKTw8MzE+PjMxKSxiPUs7YnJlYWsgbjtkZWZhdWx0OmNoKGwsMCk7ZG97KGI9MHxhW0hlPj4yXSk+Pj4wPCgwfGFbVmU+PjJdKT4+PjA/KGFbSGU+PjJdPWIrMSxiPTB8WHRbYj4+MF0pOmI9MHxJbChsKX13aGlsZSgwIT0oMHwkYyhiKSkpOzB8YVtWZT4+Ml0/YVtI''@;'; + put 'put ''ZT4+Ml09Yj0oMHxhW0hlPj4yXSktMXwwOmI9MHxhW0hlPj4yXSxiZT0oMHxhW3FlPj4yXSkrSytiLSgwfGFbbnQ+PjJdKXwwfWlmKGNoKGwsTSksKGI9MHxhW0hlPj4yXSk+Pj4wPChEPTB8YVtWZT4+Ml0pPj4+MClhW0hlPj4yXT1iKzE7ZWxzZXtpZigoMHxJbChsKSk8MCl7YnQ9MTM1O2Jy''@;'; + put 'put ''ZWFrIHR9RD0wfGFbVmU+PjJdfTB8RCYmKGFbSGU+PjJdPSgwfGFbSGU+PjJdKS0xKTtpOmRve3N3aXRjaChSPDwyND4+MjQpe2Nhc2UgOTE6Y2FzZSA5OTpjYXNlIDExNTpnZT05OT09KDB8Ryk7bzpkb3tpZigxMTU9PSgxNnxHKSl1MigwfFN0LC0xLDI1NiksZmVbRXQ+PjBdPTAsMTE1PT0o''@;'; + put 'put ''MHxHKSYmKGZlW290Pj4wXT0wLGZlW1dlPj4wXT0wLGZlW1dlKzE+PjBdPTAsZmVbV2UrMj4+MF09MCxmZVtXZSszPj4wXT0wLGZlW1dlKzQ+PjBdPTApO2Vsc2V7c3dpdGNoKEs9MSYoYj05ND09KDB8ZmVbKEc9dysxfDApPj4wXSkpLHc9Yj93KzJ8MDpHLHUyKDB8a3QsMSZifDAsMjU2KSxm''@;'; + put 'put ''ZVtFdD4+MF09MCwoYj0wfGZlW3c+PjBdKTw8MjQ+PjI0KXtjYXNlIDQ1OmI9NDYsYnQ9NjM7YnJlYWs7Y2FzZSA5MzpiPTk0LGJ0PTYzfWZvcig7Oyl7NjM9PSgwfGJ0KSYmKGJ0PTAsZmVbRXQrYj4+MF09MV5LLHc9Yj13KzF8MCxiPTB8ZmVbYj4+MF0pO2E6ZG97c3dpdGNoKGI8PDI0Pj4y''@;'; + put 'put ''NCl7Y2FzZSAwOmJ0PTEzNTticmVhayB0O2Nhc2UgOTM6YnJlYWsgbztjYXNlIDQ1OnN3aXRjaCgoYj0wfGZlWyhHPXcrMXwwKT4+MF0pPDwyND4+MjQpe2Nhc2UgOTM6Y2FzZSAwOmI9NDU7YnJlYWsgYX1pZigoMjU1Jih3PTB8ZmVbdystMT4+MF0pKTwoMjU1JmIpKXtSPTI1NSYoMV5LKSx3''@;'; + put 'put ''Jj0yNTU7ZG97ZmVbRXQrKHc9dysxfDApPj4wXT1SLGI9MHxmZVtHPj4wXX13aGlsZSgoMHx3KTwoMjU1JmJ8MCkpO3c9R31lbHNlIHc9R319d2hpbGUoMCk7Yj0xKygyNTUmYil8MCxidD02M319fXdoaWxlKDApO2I9Z2U/TSsxfDA6MzEsRz0xPT0oMHxwZSk7bzpkb3tpZihHKXtpZihwKXtp''@;'; + put 'put ''ZighKG09MHxCMChiPDwyKSkpe0E9MCxtPTAscD0xLGJ0PTEzNTticmVhayB0fX1lbHNlIG09TGU7YVtzdD4+Ml09MCxhW1JlPj4yXT0wLFI9YixBPTA7YTpmb3IoOzspe0Q9MD09KDB8bSk7ZG97bDpmb3IoOzspe2lmKChiPTB8YVtIZT4+Ml0pPj4+MDwoMHxhW1ZlPj4yXSk+Pj4wPyhhW0hl''@;'; + put 'put ''Pj4yXT1iKzEsYj0wfFh0W2I+PjBdKTpiPTB8SWwobCksISgwfGZlW0V0KyhiKzEpPj4wXSkpYnJlYWsgYTtzd2l0Y2goZmVbY3Q+PjBdPWIsMHxMQWUoWnQsY3QsMSxzdCkpe2Nhc2UtMTpBPTAsYnQ9MTM1O2JyZWFrIHQ7Y2FzZS0yOmJyZWFrO2RlZmF1bHQ6YnJlYWsgbH19RHx8KGFbbSso''@;'; + put 'put ''QTw8Mik+PjJdPWFbWnQ+PjJdLEE9QSsxfDApfXdoaWxlKCEocCYoMHxBKT09KDB8UikpKTtpZighKGI9MHxVYShtLChBPVI8PDF8MSk8PDIpKSl7QT0wLHA9MSxidD0xMzU7YnJlYWsgdH1wZT1SLFI9QSxtPWIsQT1wZX1pZighKDB8SGNlKHN0KSkpe0E9MCxidD0xMzU7YnJlYWsgdH1iPUEs''@;'; + put 'put ''QT0wLFI9bX1lbHNle2lmKHApe2lmKCEoQT0wfEIwKGIpKSl7QT0wLG09MCxwPTEsYnQ9MTM1O2JyZWFrIHR9Zm9yKEQ9YixtPTA7Oyl7ZG97aWYoKGI9MHxhW0hlPj4yXSk+Pj4wPCgwfGFbVmU+PjJdKT4+PjA/KGFbSGU+PjJdPWIrMSxiPTB8WHRbYj4+MF0pOmI9MHxJbChsKSwhKDB8ZmVb''@;'; + put 'put ''RXQrKGIrMSk+PjBdKSl7Yj1tLFI9MCxtPTA7YnJlYWsgb31mZVtBK20+PjBdPWIsbT1tKzF8MH13aGlsZSgoMHxtKSE9KDB8RCkpO2lmKCEoYj0wfFVhKEEsbT1EPDwxfDEpKSl7bT0wLHA9MSxidD0xMzU7YnJlYWsgdH1wZT1ELEQ9bSxBPWIsbT1wZX19aWYoTGUpZm9yKGI9MCxBPUQ7Oyl7''@;'; + put 'put ''aWYoKG09MHxhW0hlPj4yXSk+Pj4wPEE+Pj4wPyhhW0hlPj4yXT1tKzEsbT0wfFh0W20+PjBdKTptPTB8SWwobCksISgwfGZlW0V0KyhtKzEpPj4wXSkpe0E9TGUsUj0wLG09MDticmVhayBvfWZlW0xlK2I+PjBdPW0sYj1iKzF8MCxBPTB8YVtWZT4+Ml19ZWxzZSBmb3IoQT1EOzspe2lmKCht''@;'; + put 'put ''PTB8YVtIZT4+Ml0pPj4+MDxBPj4+MD8oYVtIZT4+Ml09bSsxLG09MHxYdFttPj4wXSk6bT0wfElsKGwpLCEoMHxmZVtFdCsobSsxKT4+MF0pKXtiPTAsQT0wLFI9MCxtPTA7YnJlYWsgb31BPTB8YVtWZT4+Ml19fX13aGlsZSgwKTtpZigwfGFbVmU+PjJdP2FbSGU+PjJdPUQ9KDB8YVtIZT4+''@;'; + put 'put ''Ml0pLTF8MDpEPTB8YVtIZT4+Ml0sIShEPUQtKDB8YVtudD4+Ml0pKygwfGFbcWU+PjJdKXwwKSl7YnQ9MTM3O2JyZWFrIHR9aWYoISgoMHxEKT09KDB8TSl8MV5nZSkpe2J0PTEzNzticmVhayB0fWRve2lmKHApe2lmKEcpe2FbTGU+PjJdPVI7YnJlYWt9YVtMZT4+Ml09QTticmVha319d2hp''@;'; + put 'put ''bGUoMCk7aWYoIWdlKXtpZigwfFImJihhW1IrKGI8PDIpPj4yXT0wKSwhQSl7QT0wO2JyZWFrIGl9ZmVbQStiPj4wXT0wfWJyZWFrO2Nhc2UgMTIwOmNhc2UgODg6Y2FzZSAxMTI6Yj0xNixidD0xMjM7YnJlYWs7Y2FzZSAxMTE6Yj04LGJ0PTEyMzticmVhaztjYXNlIDExNzpjYXNlIDEwMDpi''@;'; + put 'put ''PTEwLGJ0PTEyMzticmVhaztjYXNlIDEwNTpiPTAsYnQ9MTIzO2JyZWFrO2Nhc2UgNzE6Y2FzZSAxMDM6Y2FzZSA3MDpjYXNlIDEwMjpjYXNlIDY5OmNhc2UgMTAxOmNhc2UgNjU6Y2FzZSA5NzppZihrPStEJChsLHBlLDApLCgwfGFbcWU+PjJdKT09KCgwfGFbbnQ+PjJdKS0oMHxhW0hlPj4y''@;'; + put 'put ''XSl8MCkpe2J0PTEzNzticmVhayB0fWlmKExlKXN3aXRjaCgwfHBlKXtjYXNlIDA6am5bTGU+PjJdPWs7YnJlYWsgaTtjYXNlIDE6Y2FzZSAyOl9bTGU+PjNdPWs7YnJlYWsgaTtkZWZhdWx0OmJyZWFrIGl9fX13aGlsZSgwKTtkb3tpZigxMjM9PSgwfGJ0KSl7aWYoYnQ9MCxiPTB8aCQobCxi''@;'; + put 'put ''LDAsLTEsLTEpLCgwfGFbcWU+PjJdKT09KCgwfGFbbnQ+PjJdKS0oMHxhW0hlPj4yXSl8MCkpe2J0PTEzNzticmVhayB0fWlmKE9lJjExMj09KDB8Rykpe2FbTGU+PjJdPWI7YnJlYWt9SSQoTGUscGUsYixEbik7YnJlYWt9fXdoaWxlKDApO2M9YysoMSZPZSl8MCxiPSgwfGFbcWU+PjJdKSti''@;'; + put 'put ''ZSsoMHxhW0hlPj4yXSktKDB8YVtudD4+Ml0pfDA7YnJlYWsgbn19d2hpbGUoMCk7aWYodz13KygxJnApfDAsY2gobCwwKSwocD0wfGFbSGU+PjJdKT4+PjA8KDB8YVtWZT4+Ml0pPj4+MD8oYVtIZT4+Ml09cCsxLHA9MHxYdFtwPj4wXSk6cD0wfElsKGwpLCgwfHApIT0oMHxYdFt3Pj4wXSkp''@;'; + put 'put ''e2J0PTIyO2JyZWFrIHR9Yj1LKzF8MH19d2hpbGUoMCk7aWYoISgocD0wfGZlWyh3PXcrMXwwKT4+MF0pPDwyND4+MjQpKWJyZWFrIGU7Sz1ifWlmKDIyPT0oMHxidCkpe2lmKDB8YVtWZT4+Ml0mJihhW0hlPj4yXT0oMHxhW0hlPj4yXSktMSksMCE9KDB8Yyl8KDB8cCk+LTEpYnJlYWs7cD0w''@;'; + put 'put ''LGJ0PTEzNn1lbHNlIDEzNT09KDB8YnQpPyhwJj0xLGN8fChidD0xMzYpKToxMzc9PSgwfGJ0KSYmKHAmPTEpOzEzNj09KDB8YnQpJiYoYz0tMSkscCYmKEZ0KEEpLEZ0KG0pKX1lbHNlIGM9MH13aGlsZSgwKTtyZXR1cm4gbGU9U24sMHxjfShwLGMsZiksbGU9QSwwfHd9KGwsYyxtKSxsZT1w''@;'; + put 'put ''LDB8Zn1mdW5jdGlvbiBGY2UobCxjKXtjfD0wO3ZhciBmLHAsbT0wO2ZvcihwPWxlLGxlPWxlKzE2fDAsYVsoZj1wKT4+Ml09YVsobHw9MCk+PjJdO2w9MHxhWyhtPTMrKDB8YVtmPj4yXSkmLTQpPj4yXSxhW2Y+PjJdPW0rNCxjPj4+MD4xOyljPWMrLTF8MDtyZXR1cm4gbGU9cCwwfGx9ZnVu''@;'; + put 'put ''Y3Rpb24gSSQobCxjLGYscCl7bHw9MCxjfD0wLGZ8PTAscHw9MDtlOmRve2lmKDB8bClzd2l0Y2goMHxjKXtjYXNlLTI6ZmVbbD4+MF09ZjticmVhayBlO2Nhc2UtMTppdFtsPj4xXT1mO2JyZWFrIGU7Y2FzZSAwOmNhc2UgMTphW2w+PjJdPWY7YnJlYWsgZTtjYXNlIDM6YVsoYz1sKT4+Ml09''@;'; + put 'put ''ZixhW2MrND4+Ml09cDticmVhayBlO2RlZmF1bHQ6YnJlYWsgZX19d2hpbGUoMCl9ZnVuY3Rpb24gSGNlKGwpe3JldHVybiAwfCgobHw9MCk/MD09KDB8YVtsPj4yXSkmMToxKX1mdW5jdGlvbiBEJChsLGMsZil7bHw9MCxmfD0wO3ZhciBwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0w''@;'; + put 'put ''LFI9MDtzd2l0Y2goMHwoY3w9MCkpe2Nhc2UgMDprPS0xNDksTT0yNCx3PTQ7YnJlYWs7Y2FzZSAxOmNhc2UgMjprPS0xMDc0LE09NTMsdz00O2JyZWFrO2RlZmF1bHQ6cD0wfWU6ZG97aWYoND09KDB8dykpe1I9bCs0fDAsRD1sKzEwMHwwO2RveyhjPTB8YVtSPj4yXSk+Pj4wPCgwfGFbRD4+''@;'; + put 'put ''Ml0pPj4+MD8oYVtSPj4yXT1jKzEsYz0wfFh0W2M+PjBdKTpjPTB8SWwobCl9d2hpbGUoMCE9KDB8JGMoYykpKTt0OmRve3N3aXRjaCgwfGMpe2Nhc2UgNDM6Y2FzZSA0NTppZihBPTEtKCg0NT09KDB8YykmMSk8PDEpfDAsKGM9MHxhW1I+PjJdKT4+PjA8KDB8YVtEPj4yXSk+Pj4wKXthW1I+''@;'; + put 'put ''PjJdPWMrMSxtPTB8WHRbYz4+MF07YnJlYWsgdH1tPTB8SWwobCk7YnJlYWsgdDtkZWZhdWx0Om09YyxBPTF9fXdoaWxlKDApO2M9MDtkb3tpZigoMzJ8bSkhPSgwfGZlWzE1MzU4NCtjPj4wXSkpYnJlYWs7ZG97aWYoYz4+PjA8Nyl7aWYoKG09MHxhW1I+PjJdKT4+PjA8KDB8YVtEPj4yXSk+''@;'; + put 'put ''Pj4wKXthW1I+PjJdPW0rMSxtPTB8WHRbbT4+MF07YnJlYWt9bT0wfElsKGwpO2JyZWFrfX13aGlsZSgwKTtjPWMrMXwwfXdoaWxlKGM+Pj4wPDgpO3Q6ZG97c3dpdGNoKDB8Yyl7Y2FzZSA4OmJyZWFrO2Nhc2UgMzp3PTIzO2JyZWFrO2RlZmF1bHQ6aWYoKGI9MCE9KDB8ZikpJmM+Pj4wPjMp''@;'; + put 'put ''e2lmKDg9PSgwfGMpKWJyZWFrIHQ7dz0yMzticmVhayB0fW46ZG97aWYoIWMpe2M9MDtkb3tpZigoMzJ8bSkhPSgwfGZlWzE1MzU5MytjPj4wXSkpYnJlYWsgbjtkb3tpZihjPj4+MDwyKXtpZigobT0wfGFbUj4+Ml0pPj4+MDwoMHxhW0Q+PjJdKT4+PjApe2FbUj4+Ml09bSsxLG09MHxYdFtt''@;'; + put 'put ''Pj4wXTticmVha31tPTB8SWwobCk7YnJlYWt9fXdoaWxlKDApO2M9YysxfDB9d2hpbGUoYz4+PjA8Myl9fXdoaWxlKDApO3N3aXRjaCgwfGMpe2Nhc2UgMzppZigoYz0wfGFbUj4+Ml0pPj4+MDwoMHxhW0Q+PjJdKT4+PjA/KGFbUj4+Ml09YysxLGM9MHxYdFtjPj4wXSk6Yz0wfElsKGwpLDQw''@;'; + put 'put ''IT0oMHxjKSl7aWYoISgwfGFbRD4+Ml0pKXtwPWpjO2JyZWFrIGV9YVtSPj4yXT0oMHxhW1I+PjJdKS0xLHA9amM7YnJlYWsgZX1mb3IoYz0xOyhtPTB8YVtSPj4yXSk+Pj4wPCgwfGFbRD4+Ml0pPj4+MD8oYVtSPj4yXT1tKzEsbT0wfFh0W20+PjBdKTptPTB8SWwobCksKG0rLTQ4fDApPj4+''@;'; + put 'put ''MDwxMHwobSstNjV8MCk+Pj4wPDI2fHw5NT09KDB8bSl8KG0rLTk3fDApPj4+MDwyNjspYz1jKzF8MDtpZig0MT09KDB8bSkpe3A9amM7YnJlYWsgZX1pZigobT0wPT0oMHxhW0Q+PjJdKSl8fChhW1I+PjJdPSgwfGFbUj4+Ml0pLTEpLCFiKXthWzQ3NjQzXT0yMixjaChsLDApLHA9MDticmVh''@;'; + put 'put ''ayBlfWlmKCFjKXtwPWpjO2JyZWFrIGV9Zm9yKDs7KWlmKGM9YystMXwwLG18fChhW1I+PjJdPSgwfGFbUj4+Ml0pLTEpLCFjKXtwPWpjO2JyZWFrIGV9Y2FzZSAwOmlmKDQ4PT0oMHxtKSl7aWYoKGM9MHxhW1I+PjJdKT4+PjA8KDB8YVtEPj4yXSk+Pj4wPyhhW1I+PjJdPWMrMSxjPTB8WHRb''@;'; + put 'put ''Yz4+MF0pOmM9MHxJbChsKSwxMjA9PSgzMnxjKSl7cD0rTmNlKGwsTSxrLEEsZik7YnJlYWsgZX0wfGFbRD4+Ml0mJihhW1I+PjJdPSgwfGFbUj4+Ml0pLTEpLGM9NDh9ZWxzZSBjPW07cD0rVmNlKGwsYyxNLGssQSxmKTticmVhayBlO2RlZmF1bHQ6MHxhW0Q+PjJdJiYoYVtSPj4yXT0oMHxh''@;'; + put 'put ''W1I+PjJdKS0xKSxhWzQ3NjQzXT0yMixjaChsLDApLHA9MDticmVhayBlfX19d2hpbGUoMCk7aWYoMjM9PSgwfHcpJiYoKG09MD09KDB8YVtEPj4yXSkpfHwoYVtSPj4yXT0oMHxhW1I+PjJdKS0xKSwwIT0oMHxmKSZjPj4+MD4zKSlkb3ttfHwoYVtSPj4yXT0oMHxhW1I+PjJdKS0xKSxjPWMr''@;'; + put 'put ''LTF8MH13aGlsZShjPj4+MD4zKTtwPSsoMHxBKSpBc319d2hpbGUoMCk7cmV0dXJuK3B9ZnVuY3Rpb24gTmNlKGwsYyxmLHAsbSl7Y3w9MCxmfD0wLHB8PTAsbXw9MDt2YXIgVmUsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxLPTAscGU9MCxnZT0wLGJlPTAsT2U9MCxMZT0wLFJl''@;'; + put 'put ''PTAsSGU9MCxxZT0wOyh3PTB8YVsocWU9NCsobHw9MCl8MCk+PjJdKT4+PjA8KDB8YVsoVmU9bCsxMDB8MCk+PjJdKT4+PjA/KGFbcWU+PjJdPXcrMSxiPTB8WHRbdz4+MF0sTT0wKTooYj0wfElsKGwpLE09MCk7ZTpmb3IoOzspe3N3aXRjaCgwfGIpe2Nhc2UgNDY6SGU9ODticmVhayBlO2Nh''@;'; + put 'put ''c2UgNDg6YnJlYWs7ZGVmYXVsdDpiZT0wLFI9MCxHPTEsQT0wLHc9MCxEPWIsT2U9TSxSZT0wLExlPTAsTT0wLGI9MDticmVhayBlfSh3PTB8YVtxZT4+Ml0pPj4+MDwoMHxhW1ZlPj4yXSk+Pj4wPyhhW3FlPj4yXT13KzEsYj0wfFh0W3c+PjBdLE09MSk6KGI9MHxJbChsKSxNPTEpfWlmKDg9''@;'; + put 'put ''PSgwfEhlKSlpZigodz0wfGFbcWU+PjJdKT4+PjA8KDB8YVtWZT4+Ml0pPj4+MD8oYVtxZT4+Ml09dysxLGI9MHxYdFt3Pj4wXSk6Yj0wfElsKGwpLDQ4PT0oMHxiKSl7TT0wLGI9MDtkb3sodz0wfGFbcWU+PjJdKT4+PjA8KDB8YVtWZT4+Ml0pPj4+MD8oYVtxZT4+Ml09dysxLEQ9MHxYdFt3''@;'; + put 'put ''Pj4wXSk6RD0wfElsKGwpLE09MHx6bCgwfE0sMHxiLC0xLC0xKSxiPURufXdoaWxlKDQ4PT0oMHxEKSk7YmU9MSxSPTAsRz0xLEE9MCx3PTAsT2U9MSxSZT0wLExlPTB9ZWxzZSBiZT0xLFI9MCxHPTEsQT0wLHc9MCxEPWIsT2U9TSxSZT0wLExlPTAsTT0wLGI9MDtmb3IoOzspe2lmKEs9MzJ8''@;'; + put 'put ''RCwocGU9RCstNDh8MCk+Pj4wPj0xMCl7aWYoISgoZ2U9NDY9PSgwfEQpKXwoSystOTd8MCk+Pj4wPDYpKWJyZWFrO2lmKGdlKXtpZihiZSl7RD00NjticmVha31iZT0xLGs9RyxnZT1PZSxNPUxlLGI9UmUscGU9TGUsSz1SZX1lbHNlIEhlPTIwfWVsc2UgSGU9MjA7aWYoMjA9PSgwfEhlKSl7''@;'; + put 'put ''SGU9MCxEPSgwfEQpPjU3P0srLTg3fDA6cGU7ZG97aWYoISgoMHxSZSk8MHwwPT0oMHxSZSkmTGU+Pj4wPDgpKXtpZigoMHxSZSk8MHwwPT0oMHxSZSkmTGU+Pj4wPDE0KXtrPUcqPS4wNjI1LEErPUcqKygwfEQpO2JyZWFrfVI9KE9lPTAhPSgwfFIpfDA9PSgwfEQpKT9SOjEsaz1HLEE9T2U/''@;'; + put 'put ''QTpBKy41Kkc7YnJlYWt9az1HLHc9RCsodzw8NCl8MH13aGlsZSgwKTtwZT0wfHpsKDB8TGUsMHxSZSwxLDApLGdlPTEsSz1Ebn0oRD0wfGFbcWU+PjJdKT4+PjA8KDB8YVtWZT4+Ml0pPj4+MD8oYVtxZT4+Ml09RCsxLEc9ayxEPTB8WHRbRD4+MF0sT2U9Z2UsUmU9SyxMZT1wZSk6KEc9ayxE''@;'; + put 'put ''PTB8SWwobCksT2U9Z2UsUmU9SyxMZT1wZSl9ZG97aWYoT2Upe2lmKHBlPShLPTA9PSgwfGJlKSk/TGU6TSxLPUs/UmU6YiwoMHxSZSk8MHwwPT0oMHxSZSkmTGU+Pj4wPDgpZm9yKE09TGUsYj1SZTs7KXtpZih3PDw9NCxIZT1NLE09MHx6bCgwfE0sMHxiLDEsMCksISgoMHxiKTwwfDA9PSgw''@;'; + put 'put ''fGIpJkhlPj4+MDw3KSl7Uj13O2JyZWFrfWI9RG59ZWxzZSBSPXc7aWYoMTEyPT0oMzJ8RCkpe2lmKDA9PSgwfChiPTB8TCQobCxtKSkpJi0yMTQ3NDgzNjQ4PT0oMHwodz1EbikpKXtpZighbSl7Y2gobCwwKSxBPTA7YnJlYWt9MHxhW1ZlPj4yXT8oYVtxZT4+Ml09KDB8YVtxZT4+Ml0pLTEs''@;'; + put 'put ''Yj0wLHc9MCk6KGI9MCx3PTApfX1lbHNlIDB8YVtWZT4+Ml0/KGFbcWU+PjJdPSgwfGFbcWU+PjJdKS0xLGI9MCx3PTApOihiPTAsdz0wKTtpZihNPTB8emwoMHwoTT0wfFpvKDB8cGUsMHxLLDIpKSwwfERuLC0zMiwtMSksTT0wfHpsKDB8TSwwfERuLDB8YiwwfHcpLHc9RG4sIVIpe0E9MCor''@;'; + put 'put ''KDB8cCk7YnJlYWt9aWYoKDB8dyk+KDB8KG09KCgwfChxZT0wLWZ8MCkpPDApPDwzMT4+MzEpKXwoMHx3KT09KDB8bSkmTT4+PjA+cWU+Pj4wKXthWzQ3NjQzXT0zNCxBPTE3OTc2OTMxMzQ4NjIzMTU3ZTI5MiorKDB8cCkqMTc5NzY5MzEzNDg2MjMxNTdlMjkyO2JyZWFrfWlmKCgwfHcpPCgw''@;'; + put 'put ''fChtPSgoMHwocWU9ZistMTA2fDApKTwwKTw8MzE+PjMxKSl8KDB8dyk9PSgwfG0pJk0+Pj4wPHFlPj4+MCl7YVs0NzY0M109MzQsQT0yMjI1MDczODU4NTA3MjAxNGUtMzI0KisoMHxwKSoyMjI1MDczODU4NTA3MjAxNGUtMzI0O2JyZWFrfWlmKCgwfFIpPi0xKXtiPVI7ZG97Yj1iPDwxfDEm''@;'; + put 'put ''KDFeKHFlPSEoQT49LjUpKSksQSs9cWU/QTpBKy0xLE09MHx6bCgwfE0sMHx3LC0xLC0xKSx3PURufXdoaWxlKCgwfGIpPi0xKTtHPUEsRD1ifWVsc2UgRz1BLEQ9UjtxZT0oKDB8Yyk8MCk8PDMxPj4zMSx3PTB8emwoMHwoZj0wfFNwKDMyLDAsMHxmLCgoMHxmKTwwKTw8MzE+PjMxfDApKSww''@;'; + put 'put ''fERuLDB8TSwwfHcpLCgwfChmPURuKSk8KDB8cWUpfCgwfGYpPT0oMHxxZSkmdz4+PjA8Yz4+PjA/KDB8dyk+MD9IZT01OTooYj0wLHc9ODQsSGU9NjEpOih3PWMsSGU9NTkpLDU5PT0oMHxIZSkmJigoMHx3KTw1Mz8oYj13LHc9ODQtd3wwLEhlPTYxKTooaz0wLEE9KygwfHApKSksNjE9PSgw''@;'; + put 'put ''fEhlKSYmKEE9KygwfHApLGs9K3MkKCt2ZygxLHcpLEEpLHc9YiksMD09KEE9KChwPTA9PSgxJkR8MCkmMCE9RyYoMHx3KTwzMik/MDpHKSpBKyhrK0EqKygoRCsoMSZwKXwwKT4+PjApKS1rKSYmKGFbNDc2NDNdPTM0KSxBPSt1JChBLE0pfWVsc2Uodz0wPT0oMHxhW1ZlPj4yXSkpfHwoYVtx''@;'; + put 'put ''ZT4+Ml09KDB8YVtxZT4+Ml0pLTEpLG0/KHd8fChhW3FlPj4yXT0oMHxhW3FlPj4yXSktMSksMD09KDB8YmUpfHd8fChhW3FlPj4yXT0oMHxhW3FlPj4yXSktMSkpOmNoKGwsMCksQT0wKisoMHxwKX13aGlsZSgwKTtyZXR1cm4rQX1mdW5jdGlvbiBWY2UobCxjLGYscCxtLEEpe2N8PTAsbXw9''@;'; + put 'put ''MCxBfD0wO3ZhciBrdCxFdCxadCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAsSz0wLHBlPTAsZ2U9MCxiZT0wLE9lPTAsTGU9MCxSZT0wLEhlPTAsVmU9MCxxZT0wLG50PTAsV2U9MCxvdD0wLFN0PTAsc3Q9MCxjdD0wO1p0PWxlLGxlPWxlKzUxMnwwLGt0PVp0LEV0PTAtKHN0PShwfD0w''@;'; + put 'put ''KSsoZnw9MCl8MCl8MCxXZT00KyhsfD0wKXwwLG90PWwrMTAwfDAsaz0wO2U6Zm9yKDs7KXtzd2l0Y2goMHxjKXtjYXNlIDQ2OnFlPTY7YnJlYWsgZTtjYXNlIDQ4OmJyZWFrO2RlZmF1bHQ6TGU9MCxHPWssSz0wLFI9MDticmVhayBlfShjPTB8YVtXZT4+Ml0pPj4+MDwoMHxhW290Pj4yXSk+''@;'; + put 'put ''Pj4wPyhhW1dlPj4yXT1jKzEsYz0wfFh0W2M+PjBdLGs9MSk6KGM9MHxJbChsKSxrPTEpfWlmKDY9PSgwfHFlKSlpZigoYz0wfGFbV2U+PjJdKT4+PjA8KDB8YVtvdD4+Ml0pPj4+MD8oYVtXZT4+Ml09YysxLGM9MHxYdFtjPj4wXSk6Yz0wfElsKGwpLDQ4PT0oMHxjKSlmb3Ioaz0wLGM9MDs7''@;'; + put 'put ''KXtpZihrPTB8emwoMHxrLDB8YywtMSwtMSksUj1EbiwoYz0wfGFbV2U+PjJdKT4+PjA8KDB8YVtvdD4+Ml0pPj4+MD8oYVtXZT4+Ml09YysxLGM9MHxYdFtjPj4wXSk6Yz0wfElsKGwpLDQ4IT0oMHxjKSl7TGU9MSxHPTEsSz1rO2JyZWFrfWM9Un1lbHNlIExlPTEsRz1rLEs9MCxSPTA7YVtr''@;'; + put 'put ''dD4+Ml09MCxEPWMrLTQ4fDAsTT00Nj09KDB8Yyk7ZTpkb3tpZihNfEQ+Pj4wPDEwKXtudD1rdCs0OTZ8MCxSZT0wLGs9MCxPZT0wLEhlPUxlLFZlPUcscWU9RCxHPTAsRD0wO3Q6Zm9yKDs7KXtkb3tpZihNKXtpZihIZSlicmVhayB0O0hlPTEsSz1HLFI9RH1lbHNle2lmKEc9MHx6bCgwfEcs''@;'; + put 'put ''MHxELDEsMCksRD1EbixMZT00OCE9KDB8YyksKDB8ayk+PTEyNSl7aWYoIUxlKWJyZWFrO2FbbnQ+PjJdPTF8YVtudD4+Ml07YnJlYWt9YVsoTT1rdCsoazw8Mil8MCk+PjJdPWM9UmU/YystNDgrKDEwKigwfGFbTT4+Ml0pfDApfDA6cWUsUmU9KFZlPTk9PSgwfChSZT1SZSsxfDApKSk/MDpS''@;'; + put 'put ''ZSxrPWsrKDEmVmUpfDAsT2U9TGU/RzpPZSxWZT0xfX13aGlsZSgwKTtpZigoYz0wfGFbV2U+PjJdKT4+PjA8KDB8YVtvdD4+Ml0pPj4+MD8oYVtXZT4+Ml09YysxLGM9MHxYdFtjPj4wXSk6Yz0wfElsKGwpLCEoKE09NDY9PSgwfGMpKXwocWU9YystNDh8MCk+Pj4wPDEwKSl7TGU9SGUsTT1W''@;'; + put 'put ''ZSxxZT0yOTticmVhayBlfX1jPVJlLE09MCE9KDB8VmUpLHFlPTM3fWVsc2UgUmU9MCxrPTAsT2U9MCxNPUcsRz0wLEQ9MCxxZT0yOX13aGlsZSgwKTtkb3tpZigyOT09KDB8cWUpKXtpZihLPShudD0wPT0oMHxMZSkpP0c6SyxSPW50P0Q6UiwhKChNPTAhPSgwfE0pKSYxMDE9PSgzMnxjKSkp''@;'; + put 'put ''e2lmKCgwfGMpPi0xKXtjPVJlLHFlPTM3O2JyZWFrfWM9UmUscWU9Mzk7YnJlYWt9aWYoMD09KDB8KE09MHxMJChsLEEpKSkmLTIxNDc0ODM2NDg9PSgwfChjPURuKSkpe2lmKCFBKXtjaChsLDApLHc9MDticmVha30wfGFbb3Q+PjJdPyhhW1dlPj4yXT0oMHxhW1dlPj4yXSktMSxNPTAsYz0w''@;'; + put 'put ''KTooTT0wLGM9MCl9VmU9MHx6bCgwfE0sMHxjLDB8SywwfFIpLGM9UmUsUj1EbixxZT00MX19d2hpbGUoMCk7Mzc9PSgwfHFlKSYmKDB8YVtvdD4+Ml0/KGFbV2U+PjJdPSgwfGFbV2U+PjJdKS0xLE0/KFZlPUsscWU9NDEpOnFlPTQwKTpxZT0zOSksMzk9PSgwfHFlKSYmKE0/KFZlPUsscWU9''@;'; + put 'put ''NDEpOnFlPTQwKTtkb3tpZig0MD09KDB8cWUpKWFbNDc2NDNdPTIyLGNoKGwsMCksdz0wO2Vsc2UgaWYoNDE9PSgwfHFlKSl7aWYoIShNPTB8YVtrdD4+Ml0pKXt3PTAqKygwfG0pO2JyZWFrfWlmKCgwfFZlKT09KDB8RykmKDB8Uik9PSgwfEQpJigoMHxEKTwwfDA9PSgwfEQpJkc+Pj4wPDEw''@;'; + put 'put ''KSYmKDB8Zik+MzB8MD09KE0+Pj5mfDApKXt3PSsoMHxtKSorKE0+Pj4wKTticmVha31pZigoMHxSKT4oMHwob3Q9KCgwfChsPSgwfHApLy0yfDApKTwwKTw8MzE+PjMxKSl8KDB8Uik9PSgwfG90KSZWZT4+PjA+bD4+PjApe2FbNDc2NDNdPTM0LHc9MTc5NzY5MzEzNDg2MjMxNTdlMjkyKiso''@;'; + put 'put ''MHxtKSoxNzk3NjkzMTM0ODYyMzE1N2UyOTI7YnJlYWt9aWYoKDB8Uik8KDB8KG90PSgoMHwobD1wKy0xMDZ8MCkpPDApPDwzMT4+MzEpKXwoMHxSKT09KDB8b3QpJlZlPj4+MDxsPj4+MCl7YVs0NzY0M109MzQsdz0yMjI1MDczODU4NTA3MjAxNGUtMzI0KisoMHxtKSoyMjI1MDczODU4NTA3''@;'; + put 'put ''MjAxNGUtMzI0O2JyZWFrfWlmKGMpe2lmKCgwfGMpPDkpe2ZvcihNPTB8YVsoRD1rdCsoazw8Mil8MCk+PjJdO009MTAqTXwwLCEoKDB8Yyk+PTgpOyljPWMrMXwwO2FbRD4+Ml09TX1rPWsrMXwwfWlmKCgwfE9lKTw5JiYoMHxPZSk8PSgwfFZlKSYoMHxWZSk8MTgpe2lmKDk9PSgwfFZlKSl7''@;'; + put 'put ''dz0rKDB8bSkqKygoMHxhW2t0Pj4yXSk+Pj4wKTticmVha31pZigoMHxWZSk8OSl7dz0rKDB8bSkqKygoMHxhW2t0Pj4yXSk+Pj4wKS8rKDB8YVs2MzcxMisoOC1WZTw8Mik+PjJdKTticmVha31pZigoMHwobD1mKzI3KygwfEFyKFZlLC0zKSl8MCkpPjMwfDA9PSgoYz0wfGFba3Q+PjJdKT4+''@;'; + put 'put ''Pmx8MCkpe3c9KygwfG0pKisoYz4+PjApKisoMHxhWzYzNzEyKyhWZSstMTA8PDIpPj4yXSk7YnJlYWt9fWlmKGM9KDB8VmUpJTl8MCl7aWYoRz0wfGFbNjM3MTIrKDgtKE9lPSgwfFZlKT4tMT9jOmMrOXwwKTw8Mik+PjJdLGspe0s9MWU5LygwfEcpfDAsRD0wLFI9MCxNPVZlLGM9MDtkb3th''@;'; + put 'put ''WyhXZT1rdCsoYzw8Mil8MCk+PjJdPWw9KCgob3Q9MHxhW1dlPj4yXSk+Pj4wKS8oRz4+PjApfDApK0R8MCxEPTB8QXIoSywob3Q+Pj4wKSUoRz4+PjApfDApLE09KGw9KDB8Yyk9PSgwfFIpJjA9PSgwfGwpKT9NKy05fDA6TSxSPWw/UisxJjEyNzpSLGM9YysxfDB9d2hpbGUoKDB8YykhPSgw''@;'; + put 'put ''fGspKTtEPyhhW2t0KyhrPDwyKT4+Ml09RCxEPVIsaz1rKzF8MCk6RD1SfWVsc2UgRD0wLGs9MCxNPVZlO2M9MCxWZT05LU9lK018MH1lbHNlIGM9MCxEPTA7ZTpmb3IoOzspe2ZvcihPZT0oMHxWZSk8MTgsTGU9MTg9PSgwfFZlKSxSZT1rdCsoRDw8Mil8MDs7KXtpZighT2Upe2lmKCFMZSl7''@;'; + put 'put ''TT1WZTticmVhayBlfWlmKCgwfGFbUmU+PjJdKT4+PjA+PTkwMDcxOTkpe009MTg7YnJlYWsgZX19Zm9yKE09MCxIZT1rLGs9aysxMjd8MDtrPTB8emwoMHwoaz0wfFpvKDB8YVsoRz1rdCsoKFI9MTI3JmspPDwyKXwwKT4+Ml0sMCwyOSkpLDB8RG4sMHxNLDApLChNPURuKT4+PjA+MHwwPT0o''@;'; + put 'put ''MHxNKSZrPj4+MD4xZTk/KEs9MHxpdygwfGssMHxNLDFlOSwwKSxrPTB8aVMoMHxrLDB8TSwxZTksMCkpOks9MCxhW0c+PjJdPWssSGU9MD09KDB8aykmKDFeKCgwfFIpIT0oSGUrMTI3JjEyN3wwKXwobD0oMHxSKT09KDB8RCkpKSk/UjpIZSwhbDspTT1LLGs9UistMXwwO2lmKGM9YystMjl8''@;'; + put 'put ''MCwwfEspYnJlYWs7az1IZX1rPUhlKzEyNyYxMjcsTT1rdCsoKEhlKzEyNiYxMjcpPDwyKXwwLCgwfChEPUQrMTI3JjEyNykpPT0oMHxIZSk/YVtNPj4yXT1hW00+PjJdfGFba3QrKGs8PDIpPj4yXTprPUhlLGFba3QrKEQ8PDIpPj4yXT1LLFZlPVZlKzl8MH1lOmZvcig7Oyl7Zm9yKFJlPWsr''@;'; + put 'put ''MSYxMjcsSGU9a3QrKChrKzEyNyYxMjcpPDwyKXwwOzspe2ZvcihLPTE4PT0oMHxNKSxMZT0oMHxNKT4yNz85OjEsVmU9RDs7KXtmb3IoRz0wOzspe2lmKCgwfChEPUcrVmUmMTI3KSk9PSgwfGspKXtTdD0yLHFlPTg4O2JyZWFrfWlmKChEPTB8YVtrdCsoRDw8Mik+PjJdKT4+PjA8KFI9MHxh''@;'; + put 'put ''WzYzNzQ0KyhHPDwyKT4+Ml0pPj4+MCl7U3Q9MixxZT04ODticmVha31pZihEPj4+MD5SPj4+MClicmVhaztpZihEPUcrMXwwLCEoKDB8Ryk8MSkpe1N0PUQscWU9ODg7YnJlYWt9Rz1EfWlmKDg4PT0oMHxxZSkmJihxZT0wLEsmMj09KDB8U3QpKSl7dz0wLFI9MDticmVhayBlfWlmKGM9TGUr''@;'; + put 'put ''Y3wwLCgwfFZlKSE9KDB8aykpYnJlYWs7VmU9a31LPSgxPDxMZSktMXwwLE9lPTFlOT4+PkxlLEc9MCxEPVZlLFI9VmU7ZG97YVsoV2U9a3QrKFI8PDIpfDApPj4yXT1sPSgob3Q9MHxhW1dlPj4yXSk+Pj5MZSkrR3wwLEc9MHxBcihvdCZLLE9lKSxNPShsPSgwfFIpPT0oMHxEKSYwPT0oMHxs''@;'; + put 'put ''KSk/TSstOXwwOk0sRD1sP0QrMSYxMjc6RCxSPVIrMSYxMjd9d2hpbGUoKDB8UikhPSgwfGspKTtpZihHKXtpZigoMHxSZSkhPSgwfEQpKWJyZWFrO2FbSGU+PjJdPTF8YVtIZT4+Ml19fWFba3QrKGs8PDIpPj4yXT1HLGs9UmV9ZG97TT1rKzEmMTI3LCgwfChEPVIrVmUmMTI3KSk9PSgwfGsp''@;'; + put 'put ''JiYoYVtrdCsoTSstMTw8Mik+PjJdPTAsaz1NKSx3PTFlOSp3KyArKCgwfGFba3QrKEQ8PDIpPj4yXSk+Pj4wKSxSPVIrMXwwfXdoaWxlKDIhPSgwfFIpKTtpZihiPXcqKGJlPSsoMHxtKSksKDB8KEQ9KEs9KDB8KEc9KFI9Yys1M3wwKS1wfDApKTwoMHxmKSk/KDB8Ryk+MD9HOjA6ZikpPDUz''@;'; + put 'put ''PyhnZT1jdD0rcyQoK3ZnKDEsMTA1LUR8MCksYiksdz1wZT0rYyQoYiwrdmcoMSw1My1EfDApKSxwZT1jdCsoYi1wZSkpOihnZT0wLHc9MCxwZT1iKSwoMHwoTT1WZSsyJjEyNykpIT0oMHxrKSl7TT0wfGFba3QrKE08PDIpPj4yXTtkb3tpZihNPj4+MD49NWU4KXtpZig1ZTghPSgwfE0pKXt3''@;'; + put 'put ''PS43NSpiZSt3O2JyZWFrfWlmKChWZSszJjEyN3wwKT09KDB8aykpe3c9LjUqYmUrdzticmVha313PS43NSpiZSt3O2JyZWFrfWlmKDA9PSgwfE0pJiYoVmUrMyYxMjd8MCk9PSgwfGspKWJyZWFrO3c9LjI1KmJlK3d9d2hpbGUoMCk7Yj0oNTMtRHwwKT4xJiYwPT0rYyQodywxKT93KzE6d31l''@;'; + put 'put ''bHNlIGI9dzt3PXBlK2ItZ2U7ZG97aWYoKDIxNDc0ODM2NDcmUnwwKT4oLTItc3R8MCkpe2lmKHc9KHN0PSEoK2VvKCt3KT49OTAwNzE5OTI1NDc0MDk5MikpP3c6LjUqdywoNTArKGM9YysoMSYoMV5zdCkpfDApfDApPD0oMHxFdCkmJiEoMCE9YiZLJigoMHxEKSE9KDB8Ryl8c3QpKSlicmVh''@;'; + put 'put ''azthWzQ3NjQzXT0zNH19d2hpbGUoMCk7dz0rdSQodyxjKX19d2hpbGUoMCk7cmV0dXJuIGxlPVp0LCt3fWZ1bmN0aW9uIEwkKGwsYyl7Y3w9MDt2YXIgQSxmPTAscD0wLG09MCx3PTA7c3dpdGNoKChmPTB8YVsoQT00KyhsfD0wKXwwKT4+Ml0pPj4+MDwoMHxhWyh3PWwrMTAwfDApPj4yXSk+''@;'; + put 'put ''Pj4wPyhhW0E+PjJdPWYrMSxmPTB8WHRbZj4+MF0pOmY9MHxJbChsKSwwfGYpe2Nhc2UgNDM6Y2FzZSA0NTpwPTQ1PT0oMHxmKSYxLChmPTB8YVtBPj4yXSk+Pj4wPCgwfGFbdz4+Ml0pPj4+MD8oYVtBPj4yXT1mKzEsZj0wfFh0W2Y+PjBdKTpmPTB8SWwobCksMCE9KDB8YykmKGYrLTQ4fDAp''@;'; + put 'put ''Pj4+MD45JiYwIT0oMHxhW3c+PjJdKSYmKGFbQT4+Ml09KDB8YVtBPj4yXSktMSk7YnJlYWs7ZGVmYXVsdDpwPTB9aWYoKGYrLTQ4fDApPj4+MD45KTB8YVt3Pj4yXT8oYVtBPj4yXT0oMHxhW0E+PjJdKS0xLHA9LTIxNDc0ODM2NDgsZj0wKToocD0tMjE0NzQ4MzY0OCxmPTApO2Vsc2V7bT0w''@;'; + put 'put ''O2Rve209ZistNDgrKDEwKm18MCl8MCwoZj0wfGFbQT4+Ml0pPj4+MDwoMHxhW3c+PjJdKT4+PjA/KGFbQT4+Ml09ZisxLGY9MHxYdFtmPj4wXSk6Zj0wfElsKGwpfXdoaWxlKChmKy00OHwwKT4+PjA8MTAmKDB8bSk8MjE0NzQ4MzY0KTtpZihjPSgoMHxtKTwwKTw8MzE+PjMxLChmKy00OHww''@;'; + put 'put ''KT4+PjA8MTApZG97Yz0wfHJ3KDB8bSwwfGMsMTAsMCksbT1EbixmPTB8emwoMHxmLCgoMHxmKTwwKTw8MzE+PjMxfDAsLTQ4LC0xKSxtPTB8emwoMHxmLDB8RG4sMHxjLDB8bSksYz1EbiwoZj0wfGFbQT4+Ml0pPj4+MDwoMHxhW3c+PjJdKT4+PjA/KGFbQT4+Ml09ZisxLGY9MHxYdFtmPj4w''@;'; + put 'put ''XSk6Zj0wfElsKGwpfXdoaWxlKChmKy00OHwwKT4+PjA8MTAmKCgwfGMpPDIxNDc0ODM2fDIxNDc0ODM2PT0oMHxjKSZtPj4+MDwyMDYxNTg0MzAyKSk7aWYoKGYrLTQ4fDApPj4+MDwxMClkb3soZj0wfGFbQT4+Ml0pPj4+MDwoMHxhW3c+PjJdKT4+PjA/KGFbQT4+Ml09ZisxLGY9MHxYdFtm''@;'; + put 'put ''Pj4wXSk6Zj0wfElsKGwpfXdoaWxlKChmKy00OHwwKT4+PjA8MTApOzB8YVt3Pj4yXSYmKGFbQT4+Ml09KDB8YVtBPj4yXSktMSksdz0wIT0oMHxwKSxmPTB8U3AoMCwwLDB8bSwwfGMpLHA9dz9EbjpjLGY9dz9mOm19cmV0dXJuIERuPXAsMHxmfWZ1bmN0aW9uIG4zKGwsYyxmKXtyZXR1cm4g''@;'; + put 'put ''MHxmdW5jdGlvbiBaY2UobCxjLGYpe2N8PTAsZnw9MDtyZXR1cm4oMHxhWzc2KyhsfD0wKT4+Ml0pPi0xPyghMCxjPTB8TyQobCxjLGYpKTpjPTB8TyQobCxjLGYpLDB8Y30obHw9MCxjfD0wLGZ8PTApfWZ1bmN0aW9uIE8kKGwsYyxmKXt2YXIgcCxtO3JldHVybiBsfD0wLGN8PTAsMT09KDB8''@;'; + put 'put ''KGZ8PTApKSYmKGM9Yy0oMHxhW2wrOD4+Ml0pKygwfGFbbCs0Pj4yXSl8MCksKDB8YVsocD1sKzIwfDApPj4yXSk+Pj4wPigwfGFbKG09bCsyOHwwKT4+Ml0pPj4+MCYmKG1pWzYzJmFbbCszNj4+Ml1dKGwsMCwwKSwwPT0oMHxhW3A+PjJdKSk/Yz0tMTooYVtsKzE2Pj4yXT0wLGFbbT4+Ml09''@;'; + put 'put ''MCxhW3A+PjJdPTAsKDB8bWlbNjMmYVtsKzQwPj4yXV0obCxjLGYpKTwwP2M9LTE6KGFbbCs4Pj4yXT0wLGFbbCs0Pj4yXT0wLGFbbD4+Ml09LTE3JmFbbD4+Ml0sYz0wKSksMHxjfWZ1bmN0aW9uIHIzKGwpe2x8PTA7Zm9yKHZhciBjPTAsZj0wLHA9MCxtPTAsQT0wLHc9MDttPWwrMXwwLDB8''@;'; + put 'put ''JGMoYz0ocD0wfGZlW2w+PjBdKTw8MjQ+PjI0KTspbD1tO3N3aXRjaCgwfGMpe2Nhc2UgNDU6bD0xLEE9NTticmVhaztjYXNlIDQzOmw9MCxBPTU7YnJlYWs7ZGVmYXVsdDp3PTAsZj1sLGw9cH1pZig1PT0oMHxBKSYmKHc9bCxmPW0sbD0wfGZlW20+PjBdKSwoYz0obDw8MjQ+PjI0KS00OHww''@;'; + put 'put ''KT4+PjA8MTApe2w9MDtkb3tsPSgxMCpsfDApLWN8MCxjPSgwfGZlWyhmPWYrMXwwKT4+MF0pLTQ4fDB9d2hpbGUoYz4+PjA8MTApfWVsc2UgbD0wO3JldHVybiAwfCgwfHc/bDowLWx8MCl9ZnVuY3Rpb24ga3AobCl7cmV0dXJuKyAraTMobHw9MCwwKX1mdW5jdGlvbiBpMyhsLGMpe3JldHVy''@;'; + put 'put ''bisgK2Z1bmN0aW9uIHpjZShsLGMsZil7bHw9MCxjfD0wLGZ8PTA7dmFyIHAsdyxiLG09MCxBPTA7Yj1sZSxsZT1sZSsxMjh8MCxBPShtPXc9YikrMTI0fDA7ZG97YVttPj4yXT0wLG09bSs0fDB9d2hpbGUoKDB8bSk8KDB8QSkpO3JldHVybiBhWyhtPXcrNHwwKT4+Ml09bCxhWyhBPXcrOHww''@;'; + put 'put ''KT4+Ml09LTEsYVt3KzQ0Pj4yXT1sLGFbdys3Nj4+Ml09LTEsY2godywwKSxwPStEJCh3LGYsMSksZj0oMHxhW20+PjJdKS0oMHxhW0E+PjJdKSsoMHxhW3crMTA4Pj4yXSl8MCwwfGMmJihhW2M+PjJdPTB8Zj9sK2Z8MDpsKSxsZT1iLCtwfShsfD0wLGN8PTAsMSl9ZnVuY3Rpb24gdHcobCxj''@;'; + put 'put ''LGYscCxtKXtsfD0wLGN8PTAsZnw9MCxwfD0wLG18PTA7dmFyIEE9MCx3PTAsYj0wO2U6ZG97aWYoZilmb3IoYj1jOzspe2lmKGM9YisoMHxBcih3PWY+Pj4xLHApKXwwLCEoQT0wfEJpWzEyNyZtXShsLGMpKSlicmVhayBlO2lmKDE9PSgwfGYpKXtjPTA7YnJlYWsgZX1pZighKGY9KEE9KDB8''@;'; + put 'put ''QSk8MCk/dzpmLXd8MCkpe2M9MDticmVha31iPUE/YjpjfWVsc2UgYz0wfXdoaWxlKDApO3JldHVybiAwfGN9ZnVuY3Rpb24gbncobCl7YVs0NjY1Ml09KGx8PTApLTEsYVs0NjY1M109MH1mdW5jdGlvbiBUMSgpe3ZhciBsPTAsYz0wO3JldHVybiBjPTB8emwoMHwoYz0wfHJ3KDB8YVsoYz0x''@;'; + put 'put ''ODY2MDgpPj4yXSwwfGFbYys0Pj4yXSwxMjg0ODY1ODM3LDE0ODE3NjU5MzMpKSwwfERuLDEsMCksbD1EbixhWzQ2NjUyXT1jLGFbNDY2NTNdPWwsMHx3bCgwfGMsMHxsLDMzKX1mdW5jdGlvbiBIaihsKXt2YXIgYyxmO2x8PTAsYz1sZSxsZT1sZSsxNnwwLGl0WyhmPWMpPj4xXT0xMzA3MCxp''@;'; + put 'put ''dFtmKzI+PjFdPWwsaXRbZis0Pj4xXT1sPj4+MTYsZnVuY3Rpb24gV2NlKGwpe2x8PTAsaXRbOTY4NzZdPTB8aXRbMzI5MjJdLGl0Wzk2ODc3XT0wfGl0WzMyOTIzXSxpdFs5Njg3OF09MHxpdFszMjkyNF0saXRbMzI5MjJdPTB8aXRbbD4+MV0saXRbMzI5MjNdPTB8aXRbbCsyPj4xXSxpdFsz''@;'; + put 'put ''MjkyNF09MHxpdFtsKzQ+PjFdfShmKSxsZT1jfWZ1bmN0aW9uIHFjKCl7cmV0dXJuKyArZnVuY3Rpb24gWWNlKGwpe3ZhciBjPTA7cmV0dXJuIGM9MHxabygwfChjPTB8ZnVuY3Rpb24gR2NlKGwsYyl7dmFyIHAsbSxmO3JldHVybiBjPTB8emwoMHxydygoMHxoclsyKyhjfD0wKT4+MV0pPDwx''@;'; + put 'put ''NnwwfGhyW2M+PjFdfDAsMHxocltjKzQ+PjFdLCgwfGhyWyhtPTIrKGx8PTApfDApPj4xXSk8PDE2fDB8aHJbbD4+MV18MCwwfGhyWyhwPWwrNHwwKT4+MV0pLDB8RG4sMHxocltjKzY+PjFdLDApLGY9RG4saXRbbD4+MV09YyxsPTB8d2woMHxjLDB8ZiwxNiksaXRbbT4+MV09bCxpdFtwPj4x''@;'; + put 'put ''XT1mLERuPTY1NTM1JmYsMHxjfShsfD0wLDY1ODUwKSksMHxEbiw0KSxsPTEwNzI2OTMyNDh8RG4sYVtTaT4+Ml09YyxhW1NpKzQ+PjJdPWwsKygrX1tTaT4+M10tMSl9KDY1ODQ0KX1mdW5jdGlvbiBSJChsLGMpe3JldHVybiBjfD0wLChsfD0wKT8oYVtjPj4yXT0wLGFbYys0Pj4yXT0wLGFb''@;'; + put 'put ''Yys4Pj4yXT0wLGFbYysxMj4+Ml09MCxhW2MrMTY+PjJdPTAsYVtjKzIwPj4yXT0wKTpjPTB8c2goMSwyNCksMHxjfWZ1bmN0aW9uIHdnKGwpe3ZhciBjPTAsZj0wO2lmKDB8KGM9MHxhWyhsfD0wKT4+Ml0pKWRve0Z0KDB8YVtjPj4yXSksZj1jLGM9MHxhW2MrND4+Ml0sRnQoZil9d2hpbGUo''@;'; + put 'put ''MCE9KDB8YykpO0Z0KGwpfWZ1bmN0aW9uIFgxKGwsYyxmLHAsbSl7Y3w9MCxmfD0wLHB8PTAsbXw9MDt2YXIgQT0wLHc9MCxiPTAsaz0wLE09MDt3PTE2KyhsfD0wKXwwO2U6ZG97aWYoMHxhW3c+PjJdKWM9MDtlbHNle2lmKChBPTB8YVsoTT1sKzEyfDApPj4yXSk+Pj4wPG0+Pj4wKXtkb3tp''@;'; + put 'put ''ZihjKXtpZihmKXthWyh3PWwrOHwwKT4+Ml09ZixBPTEwMjQsYz1mO2JyZWFrfWFbdz4+Ml09MSxjPTA7YnJlYWsgZX1pZihBPShBPW08PDMpPj4+MD4xMDI0P0E6MTAyNCwhKGs9MHxCMCg4KSkpe2Fbdz4+Ml09MSxjPTA7YnJlYWsgZX1pZihjPTB8QjAoQSksYVtrPj4yXT1jLGY9YywhYyl7''@;'; + put 'put ''RnQoayksYVt3Pj4yXT0xLGM9MDticmVhayBlfWFbays0Pj4yXT0wLDB8KGI9MHxhWyh3PWwrNHwwKT4+Ml0pJiYoYVtiKzQ+PjJdPWspLDB8YVtsPj4yXXx8KGFbbD4+Ml09ayksYVt3Pj4yXT1rLGFbKHc9bCs4fDApPj4yXT1mfXdoaWxlKDApO2FbTT4+Ml09QX1lbHNlIGY9Yz0wfGFbKHc9''@;'; + put 'put ''bCs4fDApPj4yXTthW3c+PjJdPWMrKGY9KDA9PSgwfChmPWYrbSYzKSk/MDo0LWZ8MCkrbXwwKSxhW00+PjJdPUEtZixwJiZ1MigwfGMsMCwwfGYpfX13aGlsZSgwKTtyZXR1cm4gMHxjfWZ1bmN0aW9uIE5qKGwpe0Z0KDB8YVsxNisobHw9MCk+PjJdKSxGdChsKX1mdW5jdGlvbiBKY2UobCl7''@;'; + put 'put ''dmFyIEcsSyxwZSxnZSxiZSxPZSxjPTAsZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wO09lPWxlLGxlPWxlKzE2fDAsRz1PZSs0fDAsSz1PZSxwZT0xJmFbMzIrKGx8PTApPj4yXSxmPTB8YVsoZ2U9bCsxNnwwKT4+Ml0sYz0wfFFhKGJlPTB8YVtsKzQ+PjJdLDApO2U6''@;'; + put 'put ''ZG97aWYoIWMpe009MCE9KDB8cGUpLEQ9bCs4fDAsUj1sKzEyfDAsYz0wLGs9MTt0OmZvcig7Oyl7bT0wLEE9YyxwPTA7bjpmb3IoOzspe2lmKGM9MHxmZVtmPj4wXSxNKXtpZihjPDwyND4+MjQ9PTQwKWJyZWFrO2I9MCE9KDB8QSkmYzw8MjQ+PjI0PT00MT8xMzoxNH1lbHNlIGlmKGM8PDI0''@;'; + put 'put ''Pj4yND09OTIpc3dpdGNoKDB8ZmVbZisxPj4wXSl7Y2FzZSA0MDpicmVhayBuO2Nhc2UgNDE6Yj0xMzticmVhaztkZWZhdWx0OmI9MTR9ZWxzZSBiPTE0O2lmKDEzPT0oMHxiKSl7aWYoYj0wLHc9MHxuMSgwfGFbbD4+Ml0sLTEsLTEsLTEpLGFbRD4+Ml09dywhdyl7Yz0xMjticmVhayBlfXc9''@;'; + put 'put ''cH1lbHNlIGlmKDE0PT0oMHxiKSl7aWYoYj0wLDB8KGM9MHxOJChsLGYpKSlicmVhayBlO3c9cCxmPTB8YVtSPj4yXX1yOmZvcig7Oyl7aTpmb3IoOzspe3N3aXRjaCgoYz0wfGZlW2Y+PjBdKTw8MjQ+PjI0KXtjYXNlIDQyOmNhc2UgOTI6YnJlYWs7ZGVmYXVsdDppZighTSlicmVhayBpO3N3''@;'; + put 'put ''aXRjaChjPDwyND4+MjQpe2Nhc2UgMTIzOmNhc2UgNjM6Y2FzZSA0MzpicmVhaztkZWZhdWx0OmJyZWFrIGl9fWlmKE0mKGM9Yzw8MjQ+PjI0PT05MikpYnJlYWs7aWYocD1mKzF8MCxjKXN3aXRjaCgwfGZlW3A+PjBdKXtjYXNlIDEyMzpjYXNlIDYzOmNhc2UgNDM6YnJlYWs7ZGVmYXVsdDpi''@;'; + put 'put ''cmVhayBpfWlmKGY9Yz9wOmYsIU0mJigwfGYpPT0oMSsoMHxhW2dlPj4yXSl8MCkmJjk0PT0oMHxmZVtmKy0xPj4wXSkpYnJlYWs7aWYoMTIzPT0oMHxmZVtmPj4wXSkpe2lmKCEoZj0wfHFjZShmKzF8MCxwZSxHLEspKSl7Yj0yODticmVhayB0fXA9MHxhW2w+PjJdLChjPTB8YVtLPj4yXSk/''@;'; + put 'put ''Yj0zNjpjPTB8bjEocCwtMSwtMSwtMSl9ZWxzZSBhW0c+PjJdPTAsYVtLPj4yXT0tMSwoYz0wfGZlW2Y+PjBdKTw8MjQ+PjI0PT00MyYmKGFbRz4+Ml09MSxjPTB8ZmVbZj4+MF0pLGM8PDI0Pj4yND09NjM/KGFbSz4+Ml09MSxjPTEpOmM9LTEsZj1mKzF8MCxwPTB8YVtsPj4yXSxiPTM2O2lm''@;'; + put 'put ''KDM2PT0oMHxiKSYmKGI9MCxjPTB8amoocCwwfGFbRD4+Ml0sMHxhW0c+PjJdLGMsMCkpLGFbRD4+Ml09YywhYyl7Yz0xMjticmVhayBlfX1jPTB8dXYoMHxhW2w+PjJdLG0sMHxhW0Q+PjJdKSxwPTB8ZmVbZj4+MF07aTpkb3tpZihNKXtpZihwPDwyND4+MjQ9PTEyNCl7Yj00MDticmVhayBy''@;'; + put 'put ''fWlmKCEoMCE9KDB8QSkmcDw8MjQ+PjI0PT00MXxwPDwyND4+MjQ9PTApKXttPWMscD13O2NvbnRpbnVlIG59Yj00N31lbHNle3N3aXRjaChwPDwyND4+MjQpe2Nhc2UgMDpiPTQ3O2JyZWFrIGk7Y2FzZSA5MjpicmVhaztkZWZhdWx0Om09YyxwPXc7Y29udGludWUgbn1zd2l0Y2goMHxmZVtm''@;'; + put 'put ''KzE+PjBdKXtjYXNlIDEyNDpjYXNlIDQxOmJyZWFrO2RlZmF1bHQ6bT1jLHA9dztjb250aW51ZSBufWlmKGM9MHxiZygwfGFbbD4+Ml0sdyxjKSwxMjQ9PSgwfGZlW2YrMT4+MF0pKXtwPTI7YnJlYWsgcn1pZighQSl7Yz04O2JyZWFrIGV9Zj1mKzJ8MCxwPTkyfX13aGlsZSgwKTtpZig0Nz09''@;'; + put 'put ''KDB8YikmJihiPTAsYz0wfGJnKDB8YVtsPj4yXSx3LGMpLGY9cDw8MjQ+PjI0PT00MT9mKzF8MDpmKSwwfChjPTB8ZWZlKGwsYywwfEJmKGJlKSkpKWJyZWFrIGU7aWYoYz1wPDwyND4+MjQ9PTAsKHA9KDB8QSk8MSkmYyl7Yj01MDticmVhayB0fWlmKHB8Yyl7Yz04O2JyZWFrIGV9bT0wfGZo''@;'; + put 'put ''KGJlKSxBPUErLTF8MCx3PTB8ZmgoYmUpfTQwPT0oMHxiKSYmKHA9MSxjPTB8YmcoMHxhW2w+PjJdLHcsYykpLG09MCxmPWYrcHwwLHA9Y31pZigwfChjPTB8RWwoYmUscCkpfHwwfChjPTB8RWwoYmUsbSkpfHwwfChjPTB8UWEoYmUsaykpKWJyZWFrIGU7Yz1BKzF8MCxrPWsrMXwwLGY9TT9m''@;'; + put 'put ''KzF8MDpmKzJ8MH1pZigyOD09KDB8Yikpe2M9MTA7YnJlYWt9aWYoNTA9PSgwfGIpKXthW2wrMjA+PjJdPWssYz0wO2JyZWFrfX19d2hpbGUoMCk7cmV0dXJuIGxlPU9lLDB8Y31mdW5jdGlvbiBCJChsLGMsZixwKXtsfD0wLGZ8PTAscHw9MDt2YXIgVmUscWUsbnQsbT0wLEE9MCx3PTAsYj0w''@;'; + put 'put ''LGs9MCxNPTAsRD0wLFI9MCxHPTAsSz0wLHBlPTAsZ2U9MCxiZT0wLE9lPTAsTGU9MCxSZT0wLEhlPTAsV2U9MDtWZT0wfGVmKGN8PTApLChxZT0wPT0oMHxsKXwwPT0oMHxwKSl8fChhW3ArNDg+PjJdPTAsYVthW3ArMzY+PjJdPj4yXT0tMSksbnQ9MHxCMCg4KygoQT0wfGFbcCsyOD4+Ml0p''@;'; + put 'put ''PDwzKXwwKTtkb3tpZihudCl7aWYoYVtudD4+Ml09LTEsIShXZT0wfEIwKDQrKEE8PDIpfDApKSl7RnQobnQpLG09MTI7YnJlYWt9Zm9yKGFbV2U+PjJdPS0xLG09MDshKG0+Pj4wPkE+Pj4wKTspbT1tKzF8MDtFbChjLGYpLG09MHxRYShjLDApO2U6ZG97aWYoMCE9KDB8bSl8KDB8ZWYoYykp''@;'; + put 'put ''PD0oMHxWZSkpZj1udCxSPTAsQT0wLEQ9MCxNPS0xO2Vsc2UgZm9yKExlPXArMzJ8MCxSZT1wKzM2fDAsSGU9cCsxNnwwLGY9bnQsUj0wLEE9MCxEPTAsT2U9MSxNPS0xLGJlPTA7Oyl7dDpkb3tzd2l0Y2goMHxCZihjKSl7Y2FzZSA2Onc9MHxCZihjKSxtPTA7ZG97Yj1mKyhtPDwyKXwwLG09''@;'; + put 'put ''bSsxfDB9d2hpbGUoKDB8YVtiPj4yXSk+LTEpO2ZvcihhW2I+PjJdPXc8PDF8MSxhW2YrKG08PDIpPj4yXT0tMSxtPTA7KDB8YVtXZSsobTw8Mik+PjJdKT4tMTspbT1tKzF8MDthW1dlKyhtKy0xPDwyKT4+Ml09LTEsbT0wLGI9T2Usdz1iZTticmVhaztjYXNlIDA6aWYocGU9MHxmaChjKSwo''@;'; + put 'put ''MHwoYj0wfGFbKGdlPXBlKzEyfDApPj4yXSkpPi0xKXttPTA7ZG97dz1mKyhtPDwyKXwwLG09bSsxfDB9d2hpbGUoKDB8YVt3Pj4yXSk+LTEpO2lmKGFbdz4+Ml09Yjw8MSxhW2YrKG08PDIpPj4yXT0tMSwhcWUpe2ZvcihtPTA7KDB8YVtXZSsobTw8Mik+PjJdKT4tMTspbT1tKzF8MDtpZihh''@;'; + put 'put ''Wyh3PSgwfGFbSGU+PjJdKSsoMTIqYnwwKSs4fDApPj4yXT0wLCgwfG0pPjApe2lmKCEobT0wfEIwKDQrKG08PDIpfDApKSl7bT0xMixiPU9lLHc9YmU7YnJlYWsgdH1pZihhW3c+PjJdPW0sKDB8KHc9MHxhW1dlPj4yXSkpPi0xKXtrPTAsYj1tO2Rve2FbYj4+Ml09dyx3PTB8YVtXZSsoKGs9''@;'; + put 'put ''aysxfDApPDwyKT4+Ml0sYj1tKyhrPDwyKXwwfXdoaWxlKCgwfHcpPi0xKTttPWJ9YVttPj4yXT0tMX19aWYoMHwobT0wfFFhKGMsMHxhW2dlPj4yXSkpKXtiPU9lLHc9YmU7YnJlYWsgdH1pZigwfChtPTB8UWEoYyw2KSkpe2I9T2Usdz1iZTticmVhayB0fX1uOmRve3N3aXRjaCgwfGFbcGU+''@;'; + put 'put ''PjJdKXtjYXNlIDA6aWYoKDB8KEs9MHxhW2FbcGUrND4+Ml0+PjJdKSk+LTF8LTQ9PSgwfEspJiYoMHxhW2Y+PjJdKT4tMSl7aWYocWUpYVtwZSsyMD4+Ml09MSxtPTA7ZWxzZXtpZihtPTB8WmoobCxwZSxEKSxhWygwfGFbTGU+PjJdKSsoRDw8Mik+PjJdPWJlLCgwfE0pPi0xKXtmb3IoYj0w''@;'; + put 'put ''fGFbUmU+PjJdLHc9MDtHPXcrMXwwLCgwfGFbKGs9Yisodzw8Mil8MCk+PjJdKT4tMTspdz1HO2Fbaz4+Ml09RCxhW2IrKEc8PDIpPj4yXT1NLGFbYisodysyPDwyKT4+Ml09LTEsQT1BKzF8MCxNPS0xfVRMKGYscCxEKX1hW2Y+PjJdPS0xLEs9T2UrMXwwLEc9YmUsUj1SKzF8MCxEPU9lfWVs''@;'; + put 'put ''c2UgSz1PZSxtPTAsRz1iZTticmVhaztjYXNlIDE6az0wfGFbKGI9MHxhW3BlKzQ+PjJdKT4+Ml0sYj0wfGFbYis0Pj4yXSwobT0wfEVsKGMscGUpKXx8KG09MHxRYShjLDUpKXx8KG09MHxFbChjLGIpKXx8KG09MHxRYShjLDApKXx8KG09MHxRYShjLCgwfGFbKHc9aysyMHwwKT4+Ml0pK09l''@;'; + put 'put ''fDApKT8oSz1PZSxHPWJlKTooKDB8YVt3Pj4yXSk+MD8obT0odz0oMHxhW2IrMjA+PjJdKT4wKT9PZTotMSx3PU9lKygxJncpfDApOihtPS0xLHc9T2UpLChtPTB8UWEoYyxtKSl8fChtPTB8UWEoYyw0KSl8fChtPTB8RWwoYyxrKSk/KEs9dyxHPWJlKTooSz13LG09MHxRYShjLDApLEc9YmUp''@;'; + put 'put ''KTticmVhaztjYXNlIDI6aWYodz0wfGFbcGUrND4+Ml0scWUpe2lmKDB8KG09MHxRYShjLDEmKG09KDB8YVtmPj4yXSk+LTE/MTowIT0oMSZmZVt3KzEyPj4wXSkpKSkpe0s9T2UsRz1iZTticmVhayBufX1lbHNle2lmKDB8KG09MHxRYShjLEQpKSl7Sz1PZSxHPWJlO2JyZWFrIG59aWYoMHwo''@;'; + put 'put ''bT0wfFFhKGMsMSZmZVt3KzEyPj4wXSkpKXtLPU9lLEc9YmU7YnJlYWsgbn19aWYobT0wfEVsKGMscGUpKUs9T2UsRz1iZTtlbHNlIGlmKG09MHxRYShjLDEpKUs9T2UsRz1iZTtlbHNlIGlmKG09MHxFbChjLDB8YVt3Pj4yXSkpSz1PZSxHPWJlO2Vsc2UgaWYobT0wfFFhKGMsMCkpSz1PZSxH''@;'; + put 'put ''PWJlO2Vsc2V7aWYoKDB8YVtmPj4yXSk8PS0xJiYwPT0oMSZmZVt3KzEyPj4wXSkpe0s9T2UsbT0wLEc9MDticmVhayBufWlmKHFlKW09MDtlbHNle2lmKG09MHxaaihsLHBlLEQpLGFbKDB8YVtMZT4+Ml0pKyhEPDwyKT4+Ml09MD09KDEmZmVbdysxMj4+MF0pP2JlOjEsKDB8TSk+LTEpe2Zv''@;'; + put 'put ''cihiPTB8YVtSZT4+Ml0sdz0wO0c9dysxfDAsKDB8YVsoaz1iKyh3PDwyKXwwKT4+Ml0pPi0xOyl3PUc7YVtrPj4yXT1ELGFbYisoRzw8Mik+PjJdPU0sYVtiKyh3KzI8PDIpPj4yXT0tMSxBPUErMXwwLE09LTF9VEwoZixwLEQpfWFbZj4+Ml09LTEsSz1PZSsxfDAsRz0wLFI9UisxfDAsRD1P''@;'; + put 'put ''ZX1icmVhaztjYXNlIDM6aWYoaz0wfGFbKGI9MHxhW3BlKzQ+PjJdKT4+Ml0sYj0wfGFbYis0Pj4yXSxLPU9lKzF8MCxtPTB8UWEoYywodz0oMHxhW2Y+PjJdKT4tMSk/SzpPZSkpSz1PZSxHPWJlO2Vsc2UgaWYobT0wfFFhKGMsdz9PZTpEKSlLPU9lLEc9YmU7ZWxzZSBpZihtPTB8RWwoYyxm''@;'; + put 'put ''KSlLPU9lLEc9YmU7ZWxzZSBpZihtPTB8UWEoYywoMHxhW2Y+PjJdKT4+PjMxXjEpKUs9T2UsRz1iZTtlbHNlIGlmKG09MHxFbChjLHBlKSlLPU9lLEc9YmU7ZWxzZSBpZihtPTB8RWwoYyxiKSlLPU9lLEc9YmU7ZWxzZSBpZihtPTB8RWwoYyxrKSlLPU9lLEc9YmU7ZWxzZSBpZihtPTB8UWEo''@;'; + put 'put ''YywzKSlLPU9lLEc9YmU7ZWxzZSBpZihtPTB8RWwoYyxiKSlLPU9lLEc9YmU7ZWxzZSBpZihtPTB8UWEoYywwKSlLPU9lLEc9YmU7ZWxzZXtpZigwfChtPTB8UWEoYywyKSkpe0s9T2UsRz1iZTticmVhayBufWlmKDB8KG09MHxFbChjLGspKSl7Sz1PZSxHPWJlO2JyZWFrIG59aWYoMHwobT0w''@;'; + put 'put ''fFFhKGMsMCkpKXtLPU9lLEc9YmU7YnJlYWsgbn1pZigoMHxhW2Y+PjJdKT4tMSl7aWYocWUpbT0wO2Vsc2V7aWYobT0wfFpqKGwscGUsRCksYVsoMHxhW0xlPj4yXSkrKEQ8PDIpPj4yXT1iZSwoMHxNKT4tMSl7Zm9yKGI9MHxhW1JlPj4yXSx3PTA7Rz13KzF8MCwoMHxhWyhrPWIrKHc8PDIp''@;'; + put 'put ''fDApPj4yXSk+LTE7KXc9RzthW2s+PjJdPUQsYVtiKyhHPDwyKT4+Ml09TSxhW2IrKHcrMjw8Mik+PjJdPS0xLEE9QSsxfDAsTT0tMX1UTChmLHAsRCl9YVtmPj4yXT0tMSxSPVIrMXwwLEQ9T2Usdz1LfWVsc2UgbT0wLHc9T2U7Sz0oT2U9KDB8YVtwZSsxNj4+Ml0pPjApP3crMnwwOncsRz1i''@;'; + put 'put ''ZSxEPU9lP3crMXwwOkR9YnJlYWs7ZGVmYXVsdDpLPU9lLG09MCxHPWJlfX13aGlsZSgwKTtpZigoMHwoYj0wfGFbZ2U+PjJdKSk+LTEpe3c9MDtkb3trPVdlKyh3PDwyKXwwLHc9dysxfDB9d2hpbGUoKDB8YVtrPj4yXSk+LTEpO2Fbaz4+Ml09YixhW1dlKyh3PDwyKT4+Ml09LTEsYj1LLHc9''@;'; + put 'put ''R31lbHNlIGI9Syx3PUc7YnJlYWs7Y2FzZSAxOm09MHxmaChjKSxxZT8odz0wfGFbMjArKDB8YVthW20rND4+Ml0+PjJdKT4+Ml0sYVttKzIwPj4yXT0oMHxCZihjKSkrdyx3PTAsTT0tMSk6KHBlPTB8QmYoYyksZ2U9MHxCZihjKSx3PXBlLE09MD09KDB8cGUpP006Z2UpLG09MCxiPU9lLHc9''@;'; + put 'put ''cWU/YmU6MD09KDB8dykmMTticmVhaztjYXNlIDQ6dz0wfEJmKGMpLGI9MHxCZihjKSxtPTAsRD0oMHx3KT4tMT93OkQsdz1iZTticmVhaztjYXNlIDU6bT0wfGZoKGMpLHFlPyhhW20rMjA+PjJdPSgwfGFbMjArKDB8YVs0KyhiPTB8YVttKzQ+PjJdKT4+Ml0pPj4yXSkrKDB8YVsyMCsoMHxh''@;'; + put 'put ''W2I+PjJdKT4+Ml0pLG09MCxiPU9lLHc9YmUpOihtPTAsYj1PZSx3PWJlKTticmVhaztjYXNlIDI6Zm9yKDs7KXtpZighKCgwfGFbZj4+Ml0pPi0xKSl7bT0wLGI9T2Usdz1iZTticmVha31mPWYrNHwwfWJyZWFrO2Nhc2UgMzpiPTB8ZmgoYyksRz0wfGZoKGMpLG09MHxmaChjKSxmPTB8QmYo''@;'; + put 'put ''YykscWU/KGFbbSsyMD4+Ml09KDB8YVsyMCsoMHxhWyhnZT0wfGFbbSs0Pj4yXSk+PjJdKT4+Ml0pK2YrKDB8YVsyMCsoMHxhW2dlKzQ+PjJdKT4+Ml0pKygoMHxhWyhiZT1tKzE2fDApPj4yXSk+MD8yOjApLG09YmUpOm09bSsxNnwwLGY9MHxmaChjKSx3PTB8QmYoYyksaz0wfEJmKGMpLCgw''@;'; + put 'put ''fGFbbT4+Ml0pPjA/KHFlP209MDoobT0wfEgkKGwsYix3KSxhWygwfGFbTGU+PjJdKSsodzw8Mik+PjJdPTEsbXx8KG09MHxIJChsLEcsaykpLGFbKDB8YVtMZT4+Ml0pKyhrPDwyKT4+Ml09MSksUj1SKzJ8MCxiPU9lLHc9MSk6KG09MCxiPU9lLHc9MSk7YnJlYWs7ZGVmYXVsdDptPTAsYj1P''@;'; + put 'put ''ZSx3PWJlfX13aGlsZSgwKTtpZigwIT0oMHxtKXwoMHxlZihjKSk8PSgwfFZlKSlicmVhayBlO09lPWIsYmU9d319d2hpbGUoMCk7aWYoIXFlJiYoVEwoZixwLEQpLCgwfE0pPi0xKSl7Zm9yKHc9MHxhW3ArMzY+PjJdLGY9MDtrPWYrMXwwLCgwfGFbKGI9dysoZjw8Mil8MCk+PjJdKT4tMTsp''@;'; + put 'put ''Zj1rO2FbYj4+Ml09RCxhW3crKGs8PDIpPj4yXT1NLGFbdysoZisyPDwyKT4+Ml09LTEsQT1BKzF8MH1hW3ArNDg+PjJdPVIsYVtwKzQwPj4yXT1SLGFbcCs0ND4+Ml09QSxGdChudCksRnQoV2UpfWVsc2UgbT0xMn13aGlsZSgwKTtyZXR1cm4gMHxtfWZ1bmN0aW9uIFhjZShsLGMsZixwLG0p''@;'; + put 'put ''e2x8PTAsZnw9MCxwfD0wLG18PTA7dmFyIE9lLExlLFJlLHFlLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAsSz0wLHBlPTAsZ2U9MCxiZT0wLEhlPTAsVmU9MDtxZT1sZSxsZT1sZSsxNnwwLE9lPXFlKzEyfDAsVmU9cWUrOHwwLExlPXFlKzR8MCxSZT1xZSxIZT0wfGVmKGN8PTAp''@;'; + put 'put ''LGFbT2U+PjJdPTAsYVtWZT4+Ml09MCxmPTB8RWwoYyxmKTtlOmRve2lmKCFmJiYoZj0wfFFhKGMsMCksIWYpKXt0OmRve2lmKCgwfGVmKGMpKT4oMHxIZSkpe0E9MCxiPTAsaz0wO246Zm9yKDs7KXtwZT0wfEJmKGMpLGdlPTB8ZmgoYyk7cjpkb3tzd2l0Y2goMHxwZSl7Y2FzZSAwOnN3aXRj''@;'; + put 'put ''aCgwfGFbZ2U+PjJdKXtjYXNlIDA6aWYoISgoMHwoZ2U9MHxhWyhmPTB8YVtnZSs0Pj4yXSk+PjJdKSk+LTF8LTQ9PSgwfGdlKSkpe2Y9azticmVhayByfWlmKGFbKGdlPWYrOHwwKT4+Ml09Zj0oMHxhW2dlPj4yXSkra3wwLCgwfGYpPD0oMHxhW1ZlPj4yXSkpe2Y9azticmVhayByfWFbVmU+''@;'; + put 'put ''PjJdPWYsZj1rO2JyZWFrIHI7Y2FzZSAzOmNhc2UgMTppZigwfChmPTB8RWwoYywwfGFbNCsodz0wfGFbZ2UrND4+Ml0pPj4yXSkpfHwwfChmPTB8UWEoYywwKSl8fDB8KGY9MHxFbChjLDB8YVt3Pj4yXSkpKWJyZWFrIHQ7YnJlYWs7Y2FzZSAyOmlmKHc9MHxhW2dlKzQ+PjJdLDB8KGY9MHxR''@;'; + put 'put ''YShjLGspKXx8MHwoZj0wfEVsKGMsZ2UpKXx8MHwoZj0wfFFhKGMsMSkpfHwwfChmPTB8RWwoYywwfGFbdz4+Ml0pKXx8MHwoZj0wfFFhKGMsMCkpKWJyZWFrIHQ7KDB8YVt3KzQ+PjJdKTw9MSYmKDB8YVt3Kzg+PjJdKTw9MT9mPWs6KGFbT2U+PjJdPTAsZj0wKSxiPWIrMXwwO2JyZWFrIHI7''@;'; + put 'put ''ZGVmYXVsdDpmPWs7YnJlYWsgcn1pZihmPTB8UWEoYywwKSlicmVhayB0O2Y9azticmVhaztjYXNlIDE6Rz0wfGFbKEs9Z2UrNHwwKT4+Ml0scGU9MHxCZihjKSxhW09lPj4yXT1wZSwoMHwoaz0wfGFbKFI9Rys0fDApPj4yXSkpPD0xPygwfGFbRys4Pj4yXSk+MT8oYVtMZT4+Ml09MCwoMHxr''@;'; + put 'put ''KT4wP2JlPTMwOihmPXBlLHc9MCxiZT0zNykpOmY9cGU6KGFbTGU+PjJdPTAsYmU9MzApO2k6ZG97aWYoMzA9PSgwfGJlKSl7aWYoZj0wfHhMKGwsYywwfGFbRz4+Ml0sKDB8ayk+MT8xOjIsT2UsbSxSZSxWZSkpe2JlPTM0O2JyZWFrIG59Zm9yKHc9MCxNPXBlLEQ9MTs7KXtpZihmPTB8YVtS''@;'; + put 'put ''ZT4+Ml0sISh3PXc/MHx1dihsLHcsZik6Zikpe2Y9MTIsYmU9MzQ7YnJlYWsgbn1pZigoMHxEKT49KDB8KGs9MHxhW1I+PjJdKSkpe2Y9TSxiZT0zNzticmVhayBpfWlmKE09MHxhW09lPj4yXSwwfChmPTB8eEwobCxjLDB8YVtHPj4yXSwoMHwoRD1EKzF8MCkpPCgwfGspPzE6MixPZSxtLFJl''@;'; + put 'put ''LFZlKSkpe2JlPTM0O2JyZWFrIG59fX19d2hpbGUoMCk7aWYoMzc9PSgwfGJlKSl7aWYoYmU9MCwtMT09KDB8KE09MHxhWyhSPUcrOHwwKT4+Ml0pKSl7aWYoTT0wfGFbT2U+PjJdLDB8KGY9MHx4TChsLGMsMHxhW0c+PjJdLDAsT2UsMCxMZSxWZSkpKWJyZWFrIG47aWYoaz0wfGpqKGwsMHxh''@;'; + put 'put ''W0xlPj4yXSwwLC0xLDApLGFbTGU+PjJdPWssIWspe2Y9MTI7YnJlYWsgbn1mPU19ZWxzZSBpZigoMHxrKTwoMHxNKSlmb3IoTT1rLGs9MDs7KXtpZihEPTB8YVtPZT4+Ml0sMHwoZj0wfHhMKGwsYywwfGFbRz4+Ml0sMCxPZSwwLFJlLFZlKSkpe2JlPTQ5O2JyZWFrIG59aWYoaz8oZj0wfHV2''@;'; + put 'put ''KGwsMHxhW1JlPj4yXSxrKSxhW0xlPj4yXT1mKTphW0xlPj4yXT1mPTB8YVtSZT4+Ml0sIWYpe2Y9MTIsYmU9NDk7YnJlYWsgbn1pZighKGs9MHxuMShsLC0xLC0xLC0xKSkpe2Y9MTIsYmU9NDk7YnJlYWsgbn1pZihrPTB8YmcobCxrLGYpLGFbTGU+PjJdPWssIWspe2Y9MTIsYmU9NDk7YnJl''@;'; + put 'put ''YWsgbn1pZigoMHwoTT1NKzF8MCkpPj0oMHxhW1I+PjJdKSl7Zj1EO2JyZWFrfX1lbHNlIGs9MDtpZihhW09lPj4yXT1mLHc/ayYmKHc9MHx1dihsLHcsayksYmU9NTQpOih3PWssYmU9NTQpLDU0PT0oMHxiZSkmJihiZT0wLCF3KSl7Zj0xMjticmVhayBufWFbSz4+Ml09YVt3KzQ+PjJdLGFb''@;'; + put 'put ''Z2U+PjJdPWFbdz4+Ml19dz1mLXBlK0F8MCwoYj1iKy0xfDApP0E9dzooYVtPZT4+Ml09dyxBPXcsYj0wLGY9dyk7YnJlYWs7ZGVmYXVsdDpmPWt9fXdoaWxlKDApO2lmKCEoKDB8ZWYoYykpPigwfEhlKSkpe2Y9MDticmVhayB0fWs9Zn1icmVhayBlfWY9MCxBPTB9d2hpbGUoMCk7YVtwPj4y''@;'; + put 'put ''XT0oMHwoVmU9MHxhW1ZlPj4yXSkpPigwfChIZT0oMHxhW3A+PjJdKStBfDApKT9WZTpIZX19d2hpbGUoMCk7cmV0dXJuIGxlPXFlLDB8Zn1mdW5jdGlvbiBuMShsLGMsZixwKXt2YXIgbTtyZXR1cm4gY3w9MCxmfD0wLHB8PTAsKGw9MHxyUyhsfD0wLDAsbT0wfFgxKGwsMCwwLDEsMjApKSk/''@;'; + put 'put ''KGFbbT4+Ml09YyxhW20rND4+Ml09ZixhW20rOD4+Ml09cCk6bD0wLDB8bH1mdW5jdGlvbiB1dihsLGMsZil7bHw9MCxmfD0wO3ZhciBwPTA7cmV0dXJuKGN8PTApJiYoKGw9MHxyUyhsLDEscD0wfFgxKGwsMCwwLDEsOCkpKT8oYVtwPj4yXT1jLGFbcCs0Pj4yXT1mLGFbbCsxNj4+Ml09KDB8''@;'; + put 'put ''YVtmKzE2Pj4yXSkrKDB8YVtjKzE2Pj4yXSksZj1sKTpmPTApLDB8Zn1mdW5jdGlvbiBLY2UobCxjLGYpe2x8PTAsZnw9MDt2YXIgayxNLEQsRyxwPTAsbT0wLEE9MCx3PTAsYj0wLFI9MDtHPWxlLGxlPWxlKzE2fDAsaz1HKzR8MCxNPUcsRD0wfGVmKGN8PTApLGY9MHxFbChjLGYpO2U6ZG97''@;'; + put 'put ''aWYoIWYmJihmPTB8UWEoYywwKSwhZikpaWYoKDB8ZWYoYykpPigwfEQpKXt0OmZvcig7Oyl7dz0wfEJmKGMpLGI9MHxmaChjKTtuOmRve3N3aXRjaCgwfHcpe2Nhc2UgMDpzd2l0Y2goMHxhW2I+PjJdKXtjYXNlIDA6aWYoLTQ9PSgwfChtPTB8YVsoQT0wfGFbYis0Pj4yXSk+PjJdKSkpe2lm''@;'; + put 'put ''KGFbYis4Pj4yXT0wLHc9MHxTTChsLDB8YVsoZj1BKzh8MCk+PjJdLDAsMTExNDExMSwwLDAsLTEpLGFbYisyND4+Ml09dywhdyl7Zj0xMjticmVhayBlfWlmKHc9MHxTTChsLDB8YVtmPj4yXSwwLDExMTQxMTEsMCwwLDB8YVtBKzQ+PjJdKSxhW2IrMjg+PjJdPXcsdylicmVhayBuO2Y9MTI7''@;'; + put 'put ''YnJlYWsgZX1pZihmPWIrOHwwLCgwfG0pPDApe2lmKGFbZj4+Ml09MSx3PTB8RiQobCksYVtiKzI0Pj4yXT13LCF3KXtmPTEyO2JyZWFrIGV9aWYodz0wfEYkKGwpLGFbYisyOD4+Ml09dyx3KWJyZWFrIG47Zj0xMjticmVhayBlfWlmKGFbZj4+Ml09MCx3PTB8U0wobCwwfGFbKGY9QSs4fDAp''@;'; + put 'put ''Pj4yXSxtLDB8YVsocD1BKzR8MCk+PjJdLDAsMCwtMSksYVtiKzI0Pj4yXT13LCF3KXtmPTEyO2JyZWFrIGV9aWYodz0wfFNMKGwsMHxhW2Y+PjJdLDB8YVtBPj4yXSwwfGFbcD4+Ml0sMHxhW0ErMTI+PjJdLDB8YVtBKzE2Pj4yXSwtMSksYVtiKzI4Pj4yXT13LHcpYnJlYWsgbjtmPTEyO2Jy''@;'; + put 'put ''ZWFrIGU7Y2FzZSAzOmlmKDB8KGY9MHxFbChjLGIpKXx8MHwoZj0wfFFhKGMsMSkpfHwwfChmPTB8RWwoYywwfGFbNCsoMHxhWyhwPWIrNHwwKT4+Ml0pPj4yXSkpfHwwfChmPTB8UWEoYywwKSl8fDB8KGY9MHxFbChjLDB8YVthW3A+PjJdPj4yXSkpfHwoZj0wfFFhKGMsMCkpKWJyZWFrIGU7''@;'; + put 'put ''YnJlYWsgbjtjYXNlIDE6aWYoMHwoZj0wfEVsKGMsYikpfHwwfChmPTB8UWEoYywyKSl8fDB8KGY9MHxFbChjLDB8YVs0KygwfGFbKHA9Yis0fDApPj4yXSk+PjJdKSl8fDB8KGY9MHxRYShjLDApKXx8MHwoZj0wfEVsKGMsMHxhW2FbcD4+Ml0+PjJdKSl8fChmPTB8UWEoYywwKSkpYnJlYWsg''@;'; + put 'put ''ZTticmVhayBuO2Nhc2UgMjppZigwfChmPTB8RWwoYyxiKSl8fDB8KGY9MHxRYShjLDMpKXx8MHwoZj0wfEVsKGMsMHxhW2FbYis0Pj4yXT4+Ml0pKXx8KGY9MHxRYShjLDApKSlicmVhayBlO2JyZWFrIG47ZGVmYXVsdDpicmVhayBufWNhc2UgMTppZihBPTB8YVsobT00KyhmPTB8YVtiKzQ+''@;'; + put 'put ''PjJdKXwwKT4+Ml0sYVtiKzg+PjJdPTEmKHc9MHxhWzgrKHA9MHxhW2Y+PjJdKT4+Ml0/MTowIT0oMHxhW0ErOD4+Ml0pKSx3PTB8TUwobCwwfGFbcCsyND4+Ml0sMHxhW0ErMjQ+PjJdLDAsMCksYVtiKzI0Pj4yXT13LCF3KXtmPTEyO2JyZWFrIGV9aWYodz0wfE1MKGwsMHxhWzI4KygwfGFb''@;'; + put 'put ''Zj4+Ml0pPj4yXSwwfGFbMjgrKDB8YVttPj4yXSk+PjJdLDAsMCksYVtiKzI4Pj4yXT13LCF3KXtmPTEyO2JyZWFrIGV9YnJlYWs7Y2FzZSAzOmY9MHxhWyh3PTB8YVtiKzQ+PjJdKT4+Ml0sYVtiKzg+PjJdPXA9MHxhW3crND4+Ml0/MCE9KDB8YVtmKzg+PjJdKSYxOjEsYVtiKzI0Pj4yXT1h''@;'; + put 'put ''W2YrMjQ+PjJdLGFbYisyOD4+Ml09YVtmKzI4Pj4yXTticmVhaztjYXNlIDI6aWYoYVtiKzg+PjJdPTEmKG09MHxhWyhwPTgrKGY9MHxhWyhBPTB8YVtiKzQ+PjJdKT4+Ml0pfDApPj4yXT8wIT0oMHxhWzgrKDB8YVtBKzQ+PjJdKT4+Ml0pOjApLDB8YVtwPj4yXSl7aWYoMHwoZj0wfEVMKGMs''@;'; + put 'put ''ZiwwLDAsaykpKWJyZWFrIHQ7aWYoIShwPTB8QjAoNCsoYVtrPj4yXTw8Mil8MCkpKXtmPTEyO2JyZWFrIHR9aWYoYVtwPj4yXT0tMSxhW00+PjJdPTAsMHwoZj0wfEVMKGMsMHxhW0E+PjJdLHAsTSwwKSkpe1I9NDU7YnJlYWsgdH1pZihhWyh3PWIrMjR8MCk+PjJdPTB8TUwobCwwfGFbMjQr''@;'; + put 'put ''KDB8YVsoZj1BKzR8MCk+PjJdKT4+Ml0sMHxhWzI0KygwfGFbQT4+Ml0pPj4yXSxwLDB8YVtNPj4yXSksRnQocCksISgwfGFbdz4+Ml0pKXtmPTEyO2JyZWFrIHR9bT1mfWVsc2UgYVtiKzI0Pj4yXT1hW2YrMjQ+PjJdLG09QSs0fDA7aWYoMHxhWzgrKGY9MHxhW20+PjJdKT4+Ml0pe2lmKDB8''@;'; + put 'put ''KGY9MHxFTChjLGYsMCwwLGspKSlicmVhayB0O2lmKCEocD0wfEIwKDQrKGFbaz4+Ml08PDIpfDApKSl7Zj0xMjticmVhayB0fWlmKGFbcD4+Ml09LTEsYVtNPj4yXT0wLDB8KGY9MHxFTChjLDB8YVttPj4yXSxwLE0sMCkpKXtSPTUyO2JyZWFrIHR9aWYoYVsoYj1iKzI4fDApPj4yXT0wfE1M''@;'; + put 'put ''KGwsMHxhWzI4KygwfGFbQT4+Ml0pPj4yXSwwfGFbMjgrKDB8YVttPj4yXSk+PjJdLHAsMHxhW00+PjJdKSxGdChwKSwhKDB8YVtiPj4yXSkpe2Y9MTI7YnJlYWsgdH19ZWxzZSBhW2IrMjg+PjJdPWFbZisyOD4+Ml19fXdoaWxlKDApO2lmKCgwfGVmKGMpKTw9KDB8RCkpe2Y9MDticmVhayBl''@;'; + put 'put ''fX0oNDU9PSgwfFIpfHw1Mj09KDB8UikpJiZGdChwKX1lbHNlIGY9MH13aGlsZSgwKTtyZXR1cm4gbGU9RywwfGZ9ZnVuY3Rpb24ga0wobCxjLGYscCl7bHw9MCxjfD0wLGZ8PTAscHw9MDt2YXIgbT0wLEE9MCx3PTA7ZTpmb3IoOzspe3N3aXRjaCgwfGFbbD4+Ml0pe2Nhc2UgMjppZigtMT09''@;'; + put 'put ''KDB8YVs4KyhsPTB8YVtsKzQ+PjJdKT4+Ml0pJiYwIT0oMHwodz0wfFAkKDB8YVsyOCsodz0wfGFbbD4+Ml0pPj4yXSwwfGFbdysyND4+Ml0sYyxmLHApKSkpe2w9dzticmVhayBlfWJyZWFrO2Nhc2UgMzppZigwfChsPTB8a0woMHxhWyhtPTB8YVtsKzQ+PjJdKT4+Ml0sYyxmLHApKSlicmVh''@;'; + put 'put ''ayBlO2w9bSs0fDA7YnJlYWs7Y2FzZSAxOmlmKDB8KGw9MHxQJCgwfGFbMjgrKDB8YVsobT0wfGFbbCs0Pj4yXSk+PjJdKT4+Ml0sMHxhWzI0KygwfGFbKEE9bSs0fDApPj4yXSk+PjJdLGMsZixwKSkpYnJlYWsgZTtpZihsPTB8a0woMHxhW20+PjJdLGMsZixwKSlicmVhayBlO2w9QTticmVh''@;'; + put 'put ''aztkZWZhdWx0Omw9MDticmVhayBlfWw9MHxhW2w+PjJdfXJldHVybiAwfGx9ZnVuY3Rpb24gJGNlKGwpe3ZhciB3LGM9MCxmPTAscD0wLG09MCxBPTA7aWYoMHwodz0wfGFbNCsobHw9MCk+PjJdKSl7aWYobD0wfGFbdz4+Ml0sMHxhWyhwPXcrNHwwKT4+Ml0pe2Y9MDtkb3swfGFbbCsoZjw8''@;'; + put 'put ''NSkrOD4+Ml0mJigoYz0wfGFbbCsoZjw8NSkrMTY+PjJdKSYmKEZ0KGMpLGw9MHxhW3c+PjJdKSwoYz0wfGFbbCsoZjw8NSkrMjg+PjJdKSYmKEZ0KGMpLGw9MHxhW3c+PjJdKSksZj1mKzF8MH13aGlsZShmPj4+MDwoMHxhW3A+PjJdKT4+PjApfWlmKDB8bCYmRnQobCksMHwobD0wfGFbKGY9''@;'; + put 'put ''dys4fDApPj4yXSkpe2lmKDB8YVtsKzg+PjJdKXtmb3IoOzB8KGM9MHxhW2wrMTY+PjJdKSYmRnQoYyksMHxhW2wrNDA+PjJdOylsPWwrMzJ8MDtsPTB8YVtmPj4yXX1GdChsKX1pZigwfChsPTB8YVsobT13KzE2fDApPj4yXSkpe2lmKGM9MHxhWyhBPXcrMjh8MCk+PjJdKXtwPTA7ZG97KGY9''@;'; + put 'put ''MHxhW2wrKDEyKnB8MCkrOD4+Ml0pJiYoRnQoZiksYz0wfGFbQT4+Ml0sbD0wfGFbbT4+Ml0pLHA9cCsxfDB9d2hpbGUocD4+PjA8Yz4+PjApfUZ0KGwpfTB8KGw9MHxhW3crMzI+PjJdKSYmRnQobCksMHwobD0wfGFbdysyMD4+Ml0pJiZGdChsKSwwfChsPTB8YVt3KzM2Pj4yXSkmJkZ0KGwp''@;'; + put 'put ''LEZ0KHcpfX1mdW5jdGlvbiBQJChsLGMsZixwLG0pe2N8PTAsZnw9MCxwfD0wLG18PTA7dmFyIEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAsSz0wLHBlPTAsZ2U9MCxiZT0wLE9lPTAsTGU9MCxSZT0wLEhlPTAsVmU9MCxxZT0wLG50PTA7dz0oMHwoQT0wfGFbKGx8PTApPj4yXSkp''@;'; + put 'put ''Pi0xO2U6ZG97aWYoZilpZih3KWZvcig7Oyl7dz0wfGFbYz4+Ml07dDpkb3tpZigoMHx3KT4tMSlmb3IocGU9bCs0fDAsZ2U9bCs4fDAsYmU9bCsxNnwwLE9lPWwrMjB8MCxMZT1sKzI0fDAsUmU9bCsyOHwwLEhlPWwrMTJ8MCxwPS0xLEE9Yzs7KXtmb3IoSz13OygwfEspPT0oMHxwKTspe2lm''@;'; + put 'put ''KCEoKDB8KHc9MHxhWyhBPUErMzJ8MCk+PjJdKSk+LTEpKWJyZWFrIHQ7Sz13fWZvcihEPWYrKGFbbSsoYVtsPj4yXTw8Mik+PjJdPDw1KXwwOzB8YVsodz1EKzh8MCk+PjJdOylEPUQrMzJ8MDtpZihhW0QrNDA+PjJdPTAsYVtEPj4yXT1hW3BlPj4yXSxhW0QrND4+Ml09YVtnZT4+Ml0sYVt3''@;'; + put 'put ''Pj4yXT1mKyhhW20rKEs8PDIpPj4yXTw8NSksYVtEKzEyPj4yXT1LLGFbKGI9RCsyMHwwKT4+Ml09cD1hW0ErMTY+PjJdfGFbYmU+PjJdfCgwfCh3PTB8YVtPZT4+Ml0pPzQ6MCl8KDB8YVtMZT4+Ml0/ODowKSwoMHwoaz0wfGFbUmU+PjJdKSk+LTEmJihhW2I+PjJdPTI1NnxwLHc9ayksYVtE''@;'; + put 'put ''KzI0Pj4yXT13LHA9MHxhW0xlPj4yXSl7dz0wO2Rve0c9dyx3PXcrMXwwfXdoaWxlKDAhPSgwfGFbcCsoRzw8Mik+PjJdKSk7aWYodz0wfEIwKHc8PDIpLGFbRCsyOD4+Ml09dywhdyl7QT0xMjticmVhayBlfWlmKHA9MHxhWyhNPTB8YVtMZT4+Ml0pPj4yXSl7az0wLGI9dztkb3thW2I+PjJd''@;'; + put 'put ''PXAscD0wfGFbTSsoKGs9aysxfDApPDwyKT4+Ml0sYj13KyhrPDwyKXwwfXdoaWxlKDAhPSgwfHApKTt3PWJ9YVt3Pj4yXT0wfWVsc2UgYVtEKzI4Pj4yXT0wO2lmKHA9MHxhW0hlPj4yXSlmb3Iodz0wOygwfGFbcCsodzw8Mik+PjJdKT4tMTspdz13KzF8MDtlbHNlIHc9MDtpZihiPTB8YVso''@;'; + put 'put ''TT1BKzEyfDApPj4yXSlmb3IocD0wOygwfGFbYisocDw8Mik+PjJdKT4tMTspcD1wKzF8MDtlbHNlIHA9MDtpZigwfChiPTB8YVsoaz1EKzE2fDApPj4yXSkmJkZ0KGIpLGFbaz4+Ml09MCwoMHwodz1wK3d8MCkpPjApe2lmKEc9MHxCMCg0Kyh3PDwyKXwwKSxhW2s+PjJdPUcsIUcpe0E9MTI7''@;'; + put 'put ''YnJlYWsgZX1pZigwIT0oMHwocD0wfGFbSGU+PjJdKSkmJigwfChWZT0wfGFbcD4+Ml0pKT4tMSl7dz0wLGI9VmU7ZG97YVtHKyh3PDwyKT4+Ml09YixiPTB8YVtwKygodz13KzF8MCk8PDIpPj4yXX13aGlsZSgoMHxiKT4tMSk7Uj13fWVsc2UgUj0wO2lmKDAhPSgwfChrPTB8YVtNPj4yXSkp''@;'; + put 'put ''JiYoMHwocWU9MHxhW2s+PjJdKSk+LTEpe009KDB8Uik+MCx3PVIsYj0wLEQ9cWU7ZG97bjpkb3tpZihNKWZvcihwPTA7Oyl7aWYoKDB8YVtHKyhwPDwyKT4+Ml0pPT0oMHxEKSlicmVhayBuO2lmKCgwfChwPXArMXwwKSk+PSgwfFIpKXtudD0zOTticmVha319ZWxzZSBudD0zOX13aGlsZSgw''@;'; + put 'put ''KTszOT09KDB8bnQpJiYobnQ9MCxhW0crKHc8PDIpPj4yXT1ELHc9dysxfDApLEQ9MHxhW2srKChiPWIrMXwwKTw8Mik+PjJdfXdoaWxlKCgwfEQpPi0xKX1lbHNlIHc9UjthW0crKHc8PDIpPj4yXT0tMX1pZigoMHwodz0wfGFbKEE9QSszMnwwKT4+Ml0pKTw9LTEpYnJlYWs7cD1LfX13aGls''@;'; + put 'put ''ZSgwKTtpZigoMHxhWyhsPWwrMzJ8MCk+PjJdKTw9LTEpe0E9MDticmVha319ZWxzZSBBPTA7ZWxzZSBpZih3KXt3PWMrMzJ8MDtkb3tpZigoMHxhW2M+PjJdKT4tMSYmKGFbKG50PXArKEE8PDIpfDApPj4yXT0xKygwfGFbbnQ+PjJdKSwoMHxhW3c+PjJdKT4tMSkpe0E9dztkb3thWyhudD1w''@;'; + put 'put ''KyhhW2w+PjJdPDwyKXwwKT4+Ml09MSsoMHxhW250Pj4yXSksQT1BKzMyfDB9d2hpbGUoKDB8YVtBPj4yXSk+LTEpfUE9MHxhWyhsPWwrMzJ8MCk+PjJdfXdoaWxlKCgwfEEpPi0xKTtBPTB9ZWxzZSBBPTB9d2hpbGUoMCk7cmV0dXJuIDB8QX1mdW5jdGlvbiBlZihsKXtyZXR1cm4gMHxhWzEy''@;'; + put 'put ''KyhsfD0wKT4+Ml19ZnVuY3Rpb24gRWwobCxjKXt2YXIgZixwLG07cmV0dXJuIGx8PTAsZj1sZSxsZT1sZSsxNnwwLHA9Zis0fDAsYVsobT1mKT4+Ml09Y3w9MCxhW3A+PjJdPWFbbT4+Ml0sYz0wfFZqKGwscCksbGU9ZiwwfGN9ZnVuY3Rpb24gUWEobCxjKXt2YXIgZixwLG07cmV0dXJuIGx8''@;'; + put 'put ''PTAsZj1sZSxsZT1sZSsxNnwwLHA9Zis0fDAsYVsobT1mKT4+Ml09Y3w9MCxhW3A+PjJdPWFbbT4+Ml0sYz0wfFZqKGwscCksbGU9ZiwwfGN9ZnVuY3Rpb24gQmYobCl7dmFyIGMsZjtyZXR1cm4gYz0wfGFbMTYrKGx8PTApPj4yXSxhWyhmPWwrMTJ8MCk+PjJdPWw9KDB8YVtmPj4yXSktMXww''@;'; + put 'put ''LDB8YVtjKyhsPDwyKT4+Ml19ZnVuY3Rpb24gZmgobCl7dmFyIGMsZjtyZXR1cm4gYz0wfGFbMTYrKGx8PTApPj4yXSxhWyhmPWwrMTJ8MCk+PjJdPWw9KDB8YVtmPj4yXSktMXwwLDB8YVtjKyhsPDwyKT4+Ml19ZnVuY3Rpb24gU0wobCxjLGYscCxtLEEsdyl7cmV0dXJuIGN8PTAsZnw9MCxw''@;'; + put 'put ''fD0wLG18PTAsQXw9MCx3fD0wLChsPTB8WDEobHw9MCwwLDAsMSw2NCkpPyhhW2w+PjJdPWMsYVtsKzQ+PjJdPWYsYVtsKzg+PjJdPXAsYVtsKzIwPj4yXT1tLGFbbCsyND4+Ml09QSxhW2wrMjg+PjJdPXcsYVtsKzMyPj4yXT0tMSxhW2wrMzY+PjJdPS0xLGFbbCs0MD4+Ml09LTEpOmw9MCww''@;'; + put 'put ''fGx9ZnVuY3Rpb24gRiQobCl7cmV0dXJuKGw9MHxYMShsfD0wLDAsMCwxLDMyKSk/KGFbbD4+Ml09LTEsYVtsKzQ+PjJdPS0xLGFbbCs4Pj4yXT0tMSk6bD0wLDB8bH1mdW5jdGlvbiBNTChsLGMsZixwLG0pe2x8PTAsY3w9MCxmfD0wLG18PTA7dmFyIEssQT0wLHc9MCxiPTAsaz0wLE09MCxE''@;'; + put 'put ''PTAsUj0wLEc9MDtpZihLPTA9PSgwfChwfD0wKSkpRz0wO2Vsc2UgZm9yKEE9MDs7KXtpZighKCgwfGFbcCsoQTw8Mik+PjJdKT4tMSkpe0c9QTticmVha31BPUErMXwwfWZvcih3PTA7Oyl7aWYoISgoMHxhW2MrKHc8PDUpPj4yXSk+LTEpKXtBPTA7YnJlYWt9dz13KzF8MH1mb3IoOygwfGFb''@;'; + put 'put ''ZisoQTw8NSk+PjJdKT4tMTspQT1BKzF8MDtBPTB8WDEobCwwLDAsMSwzMisoQSt3PDw1KXwwKTtlOmRve2lmKEEpe2lmKCgwfCh3PTB8YVtjPj4yXSkpPi0xKWZvcihSPSgwfEcpPjAsYj0wOzspe2lmKGFbQSsoYjw8NSk+PjJdPXcsYVtBKyhiPDw1KSs0Pj4yXT1hW2MrKGI8PDUpKzQ+PjJd''@;'; + put 'put ''LGFbQSsoYjw8NSkrOD4+Ml09YVtjKyhiPDw1KSs4Pj4yXSxhW0ErKGI8PDUpKzE2Pj4yXT1hW2MrKGI8PDUpKzE2Pj4yXXxtLGFbQSsoYjw8NSkrMjA+PjJdPWFbYysoYjw8NSkrMjA+PjJdLGFbQSsoYjw8NSkrMjQ+PjJdPWFbYysoYjw8NSkrMjQ+PjJdLGFbQSsoYjw8NSkrMjg+PjJdPWFb''@;'; + put 'put ''YysoYjw8NSkrMjg+PjJdLEsmKHc9MD09KDB8KGs9MHxhWyhEPWMrKGI8PDUpKzEyfDApPj4yXSkpKSl3PTA7ZWxzZXtpZih3KU09MDtlbHNlIGZvcih3PTA7Oyl7aWYoISgoMHxhW2srKHc8PDIpPj4yXSk+LTEpKXtNPXc7YnJlYWt9dz13KzF8MH1pZighKHc9MHxYMShsLDAsMCwwLDQrKE0r''@;'; + put 'put ''Rzw8Mil8MCkpKXtBPTA7YnJlYWsgZX1pZigoMHxNKT4wKXtEPTB8YVtEPj4yXSxrPTA7ZG97YVt3KyhrPDwyKT4+Ml09YVtEKyhrPDwyKT4+Ml0saz1rKzF8MH13aGlsZSgoMHxrKSE9KDB8TSkpfWVsc2UgTT0wO2lmKFIpe2s9MDtkb3thW3crKGsrTTw8Mik+PjJdPWFbcCsoazw8Mik+PjJd''@;'; + put 'put ''LGs9aysxfDB9d2hpbGUoKDB8aykhPSgwfEcpKTtrPUd9ZWxzZSBrPTA7YVt3KyhrK008PDIpPj4yXT0tMX1pZihhW0ErKGI8PDUpKzEyPj4yXT13LCgwfCh3PTB8YVtjKygoYj1iKzF8MCk8PDUpPj4yXSkpPD0tMSl7Rz1iO2JyZWFrfX1lbHNlIEc9MDtpZih3PUErKEc8PDUpfDAsKDB8KGI9''@;'; + put 'put ''MHxhW2Y+PjJdKSk+LTEpe1I9MCxEPUc7ZG97aWYoYVt3Pj4yXT1iLGFbQSsoRDw8NSkrND4+Ml09YVtmKyhSPDw1KSs0Pj4yXSxhW0ErKEQ8PDUpKzg+PjJdPWFbZisoUjw8NSkrOD4+Ml0sYVtBKyhEPDw1KSsxNj4+Ml09YVtmKyhSPDw1KSsxNj4+Ml0sYVtBKyhEPDw1KSsyMD4+Ml09YVtm''@;'; + put 'put ''KyhSPDw1KSsyMD4+Ml0sYVtBKyhEPDw1KSsyND4+Ml09YVtmKyhSPDw1KSsyND4+Ml0sYVtBKyhEPDw1KSsyOD4+Ml09YVtmKyhSPDw1KSsyOD4+Ml0sdz0wfGFbKGs9ZisoUjw8NSkrMTJ8MCk+PjJdKXtmb3IoYj0wOygwfGFbdysoYjw8Mik+PjJdKT4tMTspYj1iKzF8MDtpZighKHc9MHxY''@;'; + put 'put ''MShsLDAsMCwwLDQrKGI8PDIpfDApKSl7QT0wO2JyZWFrIGV9aWYoKDB8Yik+MCl7TT0wfGFbaz4+Ml0saz0wO2Rve2Fbdysoazw8Mik+PjJdPWFbTSsoazw8Mik+PjJdLGs9aysxfDB9d2hpbGUoKDB8aykhPSgwfGIpKX1lbHNlIGI9MDthW3crKGI8PDIpPj4yXT0tMX1lbHNlIHc9MDthW0Er''@;'; + put 'put ''KEQ8PDUpKzEyPj4yXT13LGI9MHxhW2YrKChSPVIrMXwwKTw8NSk+PjJdLHc9QSsoKEQ9UitHfDApPDw1KXwwfXdoaWxlKCgwfGIpPi0xKX1hW3c+PjJdPS0xfWVsc2UgQT0wfXdoaWxlKDApO3JldHVybiAwfEF9ZnVuY3Rpb24gRUwobCxjLGYscCxtKXtjfD0wLGZ8PTAscHw9MCxtfD0wO3Zh''@;'; + put 'put ''ciBLLHBlLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTA7Sz0wfGVmKGx8PTApLChwZT0wIT0oMHxtKSkmJihhW20+PjJdPTApLGM9MHxFbChsLGMpO2U6ZG97aWYoYylBPWM7ZWxzZSBpZihSPTA9PSgwfGYpLEQ9MD09KDB8cCksKDB8ZWYobCkpPigwfEspKWZvcig7Oyl7Yz0wfGZo''@;'; + put 'put ''KGwpO3Q6ZG97c3dpdGNoKDB8YVtjPj4yXSl7Y2FzZSAwOnN3aXRjaCgwfGFbKGM9MHxhW2MrND4+Ml0pPj4yXSl7Y2FzZS0zOmJyZWFrO2Nhc2UtMjppZihEKWJyZWFrIHQ7YVtwPj4yXT1hW3A+PjJdfGFbYys0Pj4yXTticmVhayB0O2RlZmF1bHQ6YnJlYWsgdH1pZigoMHwodz0wfGFbYys0''@;'; + put 'put ''Pj4yXSkpPi0xKXtuOmRve2lmKCFSKXtmb3IoYz0wOyEoKDB8KGs9MHxhWyhiPWYrKGM8PDIpfDApPj4yXSkpPD0tMSk7KXtpZigoMHxrKT09KDB8dykpYnJlYWsgbjtjPWMrMXwwfWFbYj4+Ml09dyxhW2YrKGMrMTw8Mik+PjJdPS0xfX13aGlsZSgwKTtwZSYmKGFbbT4+Ml09MSsoMHxhW20+''@;'; + put 'put ''PjJdKSl9YnJlYWs7Y2FzZSAzOmlmKDB8YVs4Kyh3PTB8YVsoYz0wfGFbYys0Pj4yXSk+PjJdKT4+Ml0pe009dyxHPTY7YnJlYWsgdH0wfGFbOCsoYz0wfGFbYys0Pj4yXSk+PjJdJiYoTT1jLEc9Nik7YnJlYWs7Y2FzZSAxOmlmKDB8KHc9MHxFbChsLDB8YVsoYz0wfGFbYys0Pj4yXSk+PjJd''@;'; + put 'put ''KSkpe0E9dzticmVhayBlfU09MHxhW2MrND4+Ml0sRz02O2JyZWFrO2Nhc2UgMjowfGFbOCsoYz0wfGFbYVtjKzQ+PjJdPj4yXSk+PjJdJiYoTT1jLEc9Nil9fXdoaWxlKDApO2lmKDY9PSgwfEcpJiYoRz0wLDB8KEE9MHxFbChsLE0pKSkpYnJlYWsgZTtpZigoMHxlZihsKSk8PSgwfEspKXtB''@;'; + put 'put ''PTA7YnJlYWsgZX19ZWxzZSBBPTB9d2hpbGUoMCk7cmV0dXJuIDB8QX1mdW5jdGlvbiBWaihsLGMpe2N8PTA7dmFyIHAsQSxrLE0sZj0wLG09MCx3PTAsYj0wO3JldHVybiBNPWxlLGxlPWxlKzE2fDAsQT1NLCgwfChwPTB8YVsoZj0xMisobHw9MCl8MCk+PjJdKSk+PSgwfChrPTB8YVtsPj4y''@;'; + put 'put ''XSkpPygwfGspPCgwfChmPTB8YVtsKzQ+PjJdKSkmJjAhPSgwfChiPTB8VWEoMHxhWyh3PWwrMTZ8MCk+PjJdLChtPSgwfChtPSgwfGFbbCs4Pj4yXSkra3wwKSk+KDB8Zik/ZjptKTw8MikpKT8oYVtsPj4yXT1tLGFbdz4+Ml09YixhW0E+PjJdPWFbYz4+Ml0sVmoobCxBKSxmPTApOmY9MTI6''@;'; + put 'put ''KGFbKDB8YVtsKzE2Pj4yXSkrKHA8PDIpPj4yXT1hW2M+PjJdLGFbZj4+Ml09MSsoMHxhW2Y+PjJdKSxmPTApLGxlPU0sMHxmfWZ1bmN0aW9uIHJTKGwsYyxmKXtyZXR1cm4gY3w9MCwwIT0oMHwoZnw9MCkpJjAhPSgwfChsPTB8WDEobHw9MCwwLDAsMSwzMikpKT8oYVtsKzQ+PjJdPWYsYVts''@;'; + put 'put ''Pj4yXT1jLGFbbCs4Pj4yXT0tMSxhW2wrMTI+PjJdPS0xKTpsPTAsMHxsfWZ1bmN0aW9uIHhMKGwsYyxmLHAsbSxBLHcsYil7bHw9MCxmfD0wLHB8PTAsbXw9MCxBfD0wLHd8PTAsYnw9MDt2YXIgZ2Usaz0wLE09MCxEPTAsUj0wLEc9MCxLPTAscGU9MDtnZT0wfGVmKGN8PTApLEVsKGMsZiks''@;'; + put 'put ''Zj0wfFFhKGMsMCk7ZTpkb3tpZihmKXA9MDtlbHNlIGZvcihwZT0wPT0oMSZwfDApLEs9MCE9KDImcHwwKSxHPTAsTT0xLGY9dzs7KXtpZighKCgwfGVmKGMpKT4oMHxnZSkpKXtwPUcsZj0wO2JyZWFrIGV9Uj1mO3Q6Zm9yKDs7KXtuOmZvcig7Oyl7c3dpdGNoKDB8QmYoYykpe2Nhc2UgMTp3''@;'; + put 'put ''PTc7YnJlYWsgbjtjYXNlIDA6c3dpdGNoKGY9MHxmaChjKSwwfGFbZj4+Ml0pe2Nhc2UgMDp3PTk7YnJlYWsgdDtjYXNlIDM6dz0xOTticmVhayB0O2Nhc2UgMTp3PTI2O2JyZWFrIHQ7Y2FzZSAyOnc9MzM7YnJlYWsgbn19aWYoKDB8ZWYoYykpPD0oMHxnZSkpe3A9RyxmPTA7YnJlYWsgZX19''@;'; + put 'put ''aWYoNz09KDB8dykpZj0wfGZoKGMpO2Vsc2UgaWYoMzM9PSgwfHcpKXtpZigwfChmPTB8RWwoYywwfGFbKHA9MHxhW2YrND4+Ml0pPj4yXSkpKXtwPUc7YnJlYWsgZX1pZigwfChmPTB8UWEoYywwKSkpe3A9RzticmVhayBlfWlmKGY9MHxqaihsLDB8YVtwPj4yXSwwfGFbcCs0Pj4yXSwwfGFb''@;'; + put 'put ''cCs4Pj4yXSwxJmZlW3ArMTI+PjBdKSxhW1I+PjJdPWYsIWYpe3A9RyxmPTEyO2JyZWFrIGV9Zj0wfGFbZis0Pj4yXX1pZighKCgwfGVmKGMpKT4oMHxnZSkpKXtwPUcsZj0wO2JyZWFrIGV9Uj1mfWlmKDk9PSgwfHcpKXc9MHxhWzgrKEQ9MHxhW2YrND4+Ml0pPj4yXSxmPTB8YVtEKzQ+PjJd''@;'; + put 'put ''LCgwfChwPTB8YVtEPj4yXSkpPi0xfC00PT0oMHxwKT8odz0oMHxhW20+PjJdKSt3fDAsaz1HKzF8MCk6cGV8LTMhPSgwfHApPy0zPT0oMHxwKT9LJjAhPSgwfE0pPyhhW0ErKGY8PDIpPj4yXT0xLHA9LTMsaz1HLE09MCk6KHA9LTMsaz1HKTprPUc6KGY9LTEscD0tMSx3PS0xLGs9RyksZj0w''@;'; + put 'put ''fG4xKGwscCxmLHcpLGFbUj4+Ml09ZixmPyhhWzEyKyhmPTB8YVtmKzQ+PjJdKT4+Ml09YVtEKzEyPj4yXSxhW2YrMTY+PjJdPWFbRCsxNj4+Ml0sZj0wKTpmPTEyLCgwfHcpPigwfGFbYj4+Ml0pJiYoYVtiPj4yXT13KSxwPVI7ZWxzZSBpZigxOT09KDB8dykpe2lmKGY9MHxiZyhsLDB8YVso''@;'; + put 'put ''dz0wfGFbZis0Pj4yXSk+PjJdLDB8YVsocD13KzR8MCk+PjJdKSxhW1I+PjJdPWYsIWYpe3A9RyxmPTEyO2JyZWFrIGV9aWYoRD0wfGFbZis0Pj4yXSwwfChmPTB8RWwoYywwfGFbcD4+Ml0pKSl7cD1HO2JyZWFrIGV9aWYoMHwoZj0wfFFhKGMsMCkpKXtwPUc7YnJlYWsgZX1pZigwfChmPTB8''@;'; + put 'put ''RWwoYyxEKzR8MCkpKXtwPUc7YnJlYWsgZX1pZigwfChmPTB8UWEoYywxKSkpe3A9RzticmVhayBlfWlmKDB8KGY9MHxFbChjLDB8YVt3Pj4yXSkpKXtwPUc7YnJlYWsgZX1rPUcscD1ELGY9MHxRYShjLDApfWVsc2UgaWYoMjY9PSgwfHcpKXtpZihmPTB8dXYobCwwfGFbKEQ9MHxhW2YrND4+''@;'; + put 'put ''Ml0pPj4yXSwwfGFbKHc9RCs0fDApPj4yXSksYVtSPj4yXT1mLCFmKXtwPUcsZj0xMjticmVhayBlfWlmKGFbKHA9MHxhW2YrND4+Ml0pPj4yXT0wLGFbKGs9cCs0fDApPj4yXT0wLDB8KGY9MHxFbChjLDB8YVt3Pj4yXSkpKXtwPUc7YnJlYWsgZX1pZigwfChmPTB8UWEoYywwKSkpe3A9Rzti''@;'; + put 'put ''cmVhayBlfWlmKDB8KGY9MHxFbChjLGspKSl7cD1HO2JyZWFrIGV9aWYoMHwoZj0wfFFhKGMsMSkpKXtwPUc7YnJlYWsgZX1pZigwfChmPTB8RWwoYywwfGFbRD4+Ml0pKSl7cD1HO2JyZWFrIGV9az1HLGY9MHxRYShjLDApfWlmKGYpe3A9azticmVha31HPWssZj1wfX13aGlsZSgwKTtyZXR1''@;'; + put 'put ''cm4gYVttPj4yXT0oMHxhW20+PjJdKStwLDB8Zn1mdW5jdGlvbiBqaihsLGMsZixwLG0pe2N8PTAsZnw9MCxwfD0wLG18PTA7dmFyIEE9MDtyZXR1cm4obD0wfHJTKGx8PTAsMixBPTB8WDEobCwwLDAsMSwxNikpKT8oYVtBPj4yXT1jLGFbQSs0Pj4yXT1mLGFbQSs4Pj4yXT1wLGZlWyhBPUEr''@;'; + put 'put ''MTJ8MCk+PjBdPS0yJmZlW0E+PjBdfDEmbSxhW2wrMTY+PjJdPWFbYysxNj4+Ml0pOmw9MCwwfGx9ZnVuY3Rpb24gYmcobCxjLGYpe2x8PTAsZnw9MDt2YXIgcD0wO3JldHVybihjfD0wKSYmKDAhPSgwfGYpJjAhPSgwfChsPTB8clMobCwzLHA9MHxYMShsLDAsMCwxLDgpKSkpPyhhW3A+PjJd''@;'; + put 'put ''PWMsYVtwKzQ+PjJdPWYsYVtsKzE2Pj4yXT0oMHxhW2YrMTY+PjJdKSsoMHxhW2MrMTY+PjJdKSxmPWwpOmY9MCksMHxmfWZ1bmN0aW9uIFpqKGwsYyxmKXtjfD0wLGZ8PTA7dmFyIHAsbT0wO3JldHVybiAwIT0oMHwocD0wfFgxKGx8PTAsMCwwLDAsOCkpKSYmKGY9MHxuMShsLC0zLGYsLTEp''@;'; + put 'put ''LGFbcD4+Ml09ZiwwIT0oMHxmKSkmJihtPTB8WDEobCwwLDAsMCwzMiksYVtwKzQ+PjJdPW0sMCE9KDB8bSkpPyhhW20rND4+Ml09YVsobD1jKzR8MCk+PjJdLGFbbT4+Ml09YVtjPj4yXSxhW20rOD4+Ml09LTEsYVttKzEyPj4yXT0tMSxhWyhtPW0rMTZ8MCk+PjJdPTAsYVttKzQ+PjJdPTAs''@;'; + put 'put ''YVttKzg+PjJdPTAsYVttKzEyPj4yXT0wLGFbbD4+Ml09cCxhW2M+PjJdPTEsbD0wKTpsPTEyLDB8bH1mdW5jdGlvbiBUTChsLGMsZil7Y3w9MCxmfD0wO3ZhciBwPTAsbT0wLEE9MDtpZigoMHwobT0wfGFbKGx8PTApPj4yXSkpPi0xKXtBPTB8YVtjKzE2Pj4yXSxwPTAsYz1tO2Rve209Yz4+''@;'; + put 'put ''PjEsYVsoMD09KDEmY3wwKT9BKygxMiptfDApfDA6QSsoMTIqbXwwKSs0fDApPj4yXT1mLGM9MHxhW2wrKChwPXArMXwwKTw8Mik+PjJdfXdoaWxlKCgwfGMpPi0xKX1hW2w+PjJdPS0xfWZ1bmN0aW9uIEgkKGwsYyxmKXtjfD0wLGZ8PTA7dmFyIHAsbT0wO3JldHVybiAwIT0oMHwocD0wfFgx''@;'; + put 'put ''KGx8PTAsMCwwLDAsOCkpKSYmKGY9MHxuMShsLC0zLGYsLTEpLGFbcCs0Pj4yXT1mLDAhPSgwfGYpKSYmKG09MHxYMShsLDAsMCwwLDMyKSxhW3A+PjJdPW0sMCE9KDB8bSkpPyhhW20rND4+Ml09YVsobD1jKzR8MCk+PjJdLGFbbT4+Ml09YVtjPj4yXSxhW20rOD4+Ml09LTEsYVttKzEyPj4y''@;'; + put 'put ''XT0tMSxhWyhtPW0rMTZ8MCk+PjJdPTAsYVttKzQ+PjJdPTAsYVttKzg+PjJdPTAsYVttKzEyPj4yXT0wLGFbbD4+Ml09cCxhW2M+PjJdPTEsbD0wKTpsPTEyLDB8bH1mdW5jdGlvbiBOJChsLGMpe2N8PTA7dmFyIE0sZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wO009bGUsbGU9bGUrMTZ8''@;'; + put 'put ''MCxiPU0sbT0xJihBPTB8YVsodz0zMisobHw9MCl8MCk+PjJdKTtlOmRve3N3aXRjaCgwfGZlW2M+PjBdKXtjYXNlIDkxOmY9MHx0ZmUobCxjKzF8MCk7YnJlYWs7Y2FzZSA5MjppZigwfChwPTB8bmZlKGY9YysxfDApKSl7Zj0wfE4kKGwscCksYVtsKzEyPj4yXT1jKzI7YnJlYWsgZX1zd2l0''@;'; + put 'put ''Y2goMHwocD0wfGZlW2Y+PjBdKSl7Y2FzZSAwOmY9NTticmVhayBlO2Nhc2UgOTg6cD0wfG4xKDB8YVtsPj4yXSwtMiw2NCwtMSk7YnJlYWs7Y2FzZSA2NjpwPTB8bjEoMHxhW2w+PjJdLC0yLDEyOCwtMSk7YnJlYWs7Y2FzZSA2MDpwPTB8bjEoMHxhW2w+PjJdLC0yLDE2LC0xKTticmVhaztj''@;'; + put 'put ''YXNlIDYyOnA9MHxuMSgwfGFbbD4+Ml0sLTIsMzIsLTEpO2JyZWFrO2Nhc2UgMTIwOm09KHc9MTIzPT0oMHxmZVsoQT1jKzJ8MCk+PjBdKSk/ODoyLEE9dz9jKzN8MDpBLGY9MCxwPTA7ZG97aWYoKDB8KGM9MHxyZmUoMHxmZVtBK2Y+PjBdKSkpPDApYnJlYWs7cD1jKyhwPDw0KXwwLGY9Zisx''@;'; + put 'put ''fDB9d2hpbGUoKDB8cCk8MTExNDExMiYoMHxmKTwoMHxtKSk7aWYoZj1BK2Z8MCx3KXtpZigxMjUhPSgwfGZlW2Y+PjBdKSl7Zj05O2JyZWFrIGV9Zj1mKzF8MH1iPTB8YVtsPj4yXSxhWyh3PWwrMjR8MCk+PjJdPTErKGs9MHxhW3c+PjJdKSxwPTB8bjEoYixwLHAsayksZj1mKy0xfDA7YnJl''@;'; + put 'put ''YWs7Y2FzZSA2MzpjYXNlIDQzOmNhc2UgMTIzOmlmKG0pe2s9Mzc7YnJlYWsgZX1mPTEzO2JyZWFrIGU7Y2FzZSAxMjQ6aWYoMHxtKXtrPTM3O2JyZWFrIGV9Zj0wfG4xKDB8YVtsPj4yXSwtMSwtMSwtMSksaz00NTticmVhayBlO2RlZmF1bHQ6aWYoISgwPT0oMHxtKSYocCstNDl8MCk+Pj4w''@;'; + put 'put ''PDkpKXtrPTM3O2JyZWFrIGV9Yj1wKy00OHwwLGs9MHxhW2w+PjJdLGFbKHc9bCsyNHwwKT4+Ml09MSsocD0wfGFbdz4+Ml0pLHA9MHxuMShrLC00LGIscCksYVsoaz1sKzI4fDApPj4yXT0oMHxiKTwoMHwodz0wfGFbaz4+Ml0pKT93OmJ9Yz1mKzF8MCxmPXAsaz00NTticmVhaztjYXNlIDQ2''@;'; + put 'put ''OmY9MHxhW2w+PjJdLGFbKG09bCsyNHwwKT4+Ml09MSsocD0wfGFbbT4+Ml0pLDQmQT8ocD0wfG4xKGYsMCw5LHApLGs9MHxhW2w+PjJdLGFbbT4+Ml09MSsoZj0wfGFbbT4+Ml0pLGY9MCE9KDB8cCkmMCE9KDB8KGY9MHxuMShrLDExLDExMTQxMTEsZikpKT8wfGJnKDB8YVtsPj4yXSxwLGYp''@;'; + put 'put ''OjApOmY9MHxuMShmLDAsMTExNDExMSxwKSxjPWMrMXwwLGs9NDU7YnJlYWs7Y2FzZSA5NDppZigwPT0oMHxtKSYmKDB8YVtsKzE2Pj4yXSkhPSgwfGMpKXtmPWMsaz0zNzticmVhayBlfWM9YysxfDAsZj0wfG4xKDB8YVtsPj4yXSwtMiwxLC0xKSxrPTQ1O2JyZWFrO2Nhc2UgMzY6aWYoZj1j''@;'; + put 'put ''KzF8MCwwPT0oMHxtKSYmMHxmZVtmPj4wXSl7Zj1jLGs9Mzc7YnJlYWsgZX1jPWYsZj0wfG4xKDB8YVtsPj4yXSwtMiwyLC0xKSxrPTQ1O2JyZWFrO2Nhc2UgNjM6Y2FzZSA0MzpjYXNlIDEyMzpjYXNlIDQyOm0/Zj0xMzooZj1jLGs9MzcpO2JyZWFrO2Nhc2UgMTI0Om0/az0zNjooZj1jLGs9''@;'; + put 'put ''MzcpO2JyZWFrO2Nhc2UgMDprPTM2O2JyZWFrO2RlZmF1bHQ6Zj1jLGs9Mzd9fXdoaWxlKDApO2lmKDM2PT0oMHxrKSlmPTB8bjEoMHxhW2w+PjJdLC0xLC0xLC0xKSxrPTQ1O2Vsc2UgaWYoMzc9PSgwfGspKWlmKCgwfChBPTB8YzgoYixmLC0xKSkpPDApZj0yO2Vsc2V7ZG97aWYoMiZhW3c+''@;'; + put 'put ''PjJdKXtpZigwPT0oMHxNaigwfGFbYj4+Ml0pKSYmMD09KDB8U2ooMHxhW2I+PjJdKSkpe2s9NDM7YnJlYWt9bT0wIT0oMHwobT0wfG4xKHc9MHxhW2w+PjJdLDB8b3YoMHxhW2I+PjJdKSxtPTB8b3YoMHxhW2I+PjJdKSwwfGFbKHA9bCsyNHwwKT4+Ml0pKSkmMCE9KDB8KGM9MHxuMSgwfGFb''@;'; + put 'put ''bD4+Ml0sdz0wfEFnKDB8YVtiPj4yXSksYz0wfEFnKDB8YVtiPj4yXSksMHxhW3A+PjJdKSkpPzB8YmcoMHxhW2w+PjJdLG0sYyk6MH1lbHNlIGs9NDN9d2hpbGUoMCk7NDM9PSgwfGspJiYobT0wfG4xKDB8YVtsPj4yXSxtPTB8YVtiPj4yXSxtLDB8YVsocD1sKzI0fDApPj4yXSkpLGFbcD4+''@;'; + put 'put ''Ml09MSsoMHxhW3A+PjJdKSxjPWYrQXwwLGY9bSxrPTQ1fXJldHVybiA0NT09KDB8aykmJihmPyhhW2wrOD4+Ml09ZixhW2wrMTI+PjJdPWMsZj0wKTpmPTEyKSxsZT1NLDB8Zn1mdW5jdGlvbiBxY2UobCxjLGYscCl7Y3w9MCxmfD0wLHB8PTA7dmFyIGIsbT0wLEE9MCx3PTA7Yj1sZSxsZT1s''@;'; + put 'put ''ZSsxNnwwLG09YixsPTB8ViQobHw9MCx3PWIrNHwwKSw0ND09KDB8ZmVbbD4+MF0pPyhsPTB8ViQobCsxfDAsbSksQT0wfGFbbT4+Ml0sbT0wfGFbdz4+Ml0pOihhW20+PjJdPXc9MHxhW3c+PjJdLEE9dyxtPXcpO2Rve2lmKG0+Pj4wPjI1NXwoMHxBKT4yNTV8KDB8QSk+LTEmKDB8QSk8KDB8''@;'; + put 'put ''bSkpbD0wO2Vsc2V7aWYoIWMpe2lmKDkyIT0oMHxmZVtsPj4wXSkpe2w9MDticmVha31sPWwrMXwwfTEyNT09KDB8ZmVbbD4+MF0pPyhhW2Y+PjJdPW0sYVtwPj4yXT1BLGw9bCsxfDApOmw9MH19d2hpbGUoMCk7cmV0dXJuIGxlPWIsMHxsfWZ1bmN0aW9uIGVmZShsLGMsZil7bHw9MCxmfD0w''@;'; + put 'put ''O3ZhciBwPTAsbT0wLEE9MDtyZXR1cm4oMHxhWzEyKyhjfD0wKT4+Ml0pPi0xPzAhPSgwfChwPTB8bjEoMHxhW2w+PjJdLC0xLC0xLC0xKSkpJiYwIT0oMHwobT0wfHV2KDB8YVtsPj4yXSxwLGMpKSk/KGFbbSsxNj4+Ml09cD0wfGFbYysxNj4+Ml0sQT02KTpwPTEyOihtPWMscD0wfGFbYysx''@;'; + put 'put ''Nj4+Ml0sQT02KSw2PT0oMHxBKSYmKGFbbSsxMj4+Ml09ZixhW20rMTY+PjJdPXArMSxhW2wrOD4+Ml09bSxwPTApLDB8cH1mdW5jdGlvbiBWJChsLGMpe2x8PTA7dmFyIGY9MCxwPTAsbT0wO2lmKGFbKGN8PTApPj4yXT0tMSwoKDB8ZmVbbD4+MF0pLTQ4fDApPj4+MDwxMClmb3IoYVtjPj4y''@;'; + put 'put ''XT0wLGY9bCxtPTAscD0wfGZlW2w+PjBdO2FbYz4+Ml09bT0oMTAqbXwwKS00OCsocDw8MjQ+PjI0KXwwLCEoKDB8bSk+MjU1fCgoKHA9MHxmZVsobD1mKzF8MCk+PjBdKTw8MjQ+PjI0KS00OHwwKT4+PjA+OSk7KWY9bDtyZXR1cm4gMHxsfWZ1bmN0aW9uIHRmZShsLGMpe2N8PTA7dmFyIGdl''@;'; + put 'put ''LGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAsSz0wLHBlPTA7aWYoZ2U9bGUsbGU9bGUrMjg4fDAsbT1nZSxhWyhmPWdlKzI2NHwwKT4+Ml09YVsobHw9MCk+PjJdLGFbKEE9Zis4fDApPj4yXT0wLGFbZisxMj4+Ml09MzIsRz0wfEIwKDEyOCksYVsocGU9Zis0''@;'; + put 'put ''fDApPj4yXT1HLEcpe2FbKHA9bSs0fDApPj4yXT0wLGFbbT4+Ml09MSYoRz05ND09KDB8ZmVbYz4+MF0pKSxjPTB8ZnVuY3Rpb24gaWZlKGwsYyxmLHApe2x8PTAsZnw9MCxwfD0wO3ZhciBSLEssYmUsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLEc9MCxwZT0wLGdlPTA7YmU9bGUsbGU9''@;'; + put 'put ''bGUrMzJ8MCxLPWJlKzR8MCx3PTB8YzgoUj1iZSxjfD0wLC0xKSxtPTB8ZmVbYz4+MF07ZTpkb3tpZigoMHx3KT49MSl7cGU9cCs0fDAsRD1sKzMyfDAsQT1jLGI9dzt0OmZvcig7Oyl7aWYoISgodz0oMHxBKT09KDB8YykpfG08PDI0Pj4yNCE9OTMpKXtnZT01O2JyZWFrfW46ZG97aWYoISh3''@;'; + put 'put ''fG08PDI0Pj4yNCE9NDUpKXtzd2l0Y2goMHxmZVtBKzE+PjBdKXtjYXNlIDkzOmJyZWFrIG47Y2FzZSA0NTpicmVhaztkZWZhdWx0Om09MTE7YnJlYWsgZX1pZig5Mz09KDB8ZmVbQSsyPj4wXSkpe209MTE7YnJlYWsgZX19fXdoaWxlKDApO246ZG97aWYobTw8MjQ+PjI0PT05MSl7c3dpdGNo''@;'; + put 'put ''KDB8ZmVbQSsxPj4wXSl7Y2FzZSA2MTpjYXNlIDQ2Om09MzticmVhayBlO2Nhc2UgNTg6YnJlYWs7ZGVmYXVsdDpnZT0xNzticmVhayBufXc9QSsyfDAsbT0wO3I6Zm9yKDs7KXtzd2l0Y2goMHxmZVt3K20+PjBdKXtjYXNlIDA6Z2U9MTY7YnJlYWsgdDtjYXNlIDU4OmJyZWFrIHJ9aWYoISgo''@;'; + put 'put ''MHxtKTwxMykpe2dlPTE2O2JyZWFrIHR9bT1tKzF8MH1pZihnbygwfEssMHx3LDB8bSksZmVbSyttPj4wXT0wLCEoYj0wfHBjZShLKSkpe2dlPTE2O2JyZWFrIHR9aWYoQT13KyhtKzIpfDAsOTMhPSgwfGZlW3crKG0rMSk+PjBdKSl7Z2U9MTY7YnJlYWsgdH1pZigwfGFbcD4+Ml0pe2lmKCgw''@;'; + put 'put ''fChtPTB8YVtwZT4+Ml0pKT42Myl7bT0xMjticmVhayBlfWFbcGU+PjJdPW0rMSxhW3ArOCsobTw8Mik+PjJdPWJ9ZWxzZSBtPTExMTQxMTEsTT0wLGs9MSxnZT0yNX1lbHNlIGdlPTE3fXdoaWxlKDApO2lmKDE3PT0oMHxnZSkpaWYoZ2U9MCx3PTB8YVtSPj4yXSw0NT09KDB8ZmVbKEE9QSti''@;'; + put 'put ''fDApPj4wXSkmJjkzIT0oMHxmZVsoRz1BKzF8MCk+PjBdKSl7aWYoKDB8KEE9MHxjOChSLEcsLTEpKSk8MXwoMHx3KT4oMHwobT0wfGFbUj4+Ml0pKSl7bT0xMTticmVhayBlfWI9MCxNPXcsQT1HK0F8MCxrPTAsZ2U9MjV9ZWxzZSBiPTAsbT13LE09dyxrPTAsZ2U9MjU7aWYoMjU9PSgwfGdl''@;'; + put 'put ''KSl7aWYoZ2U9MCwhKHc9MHx6aihmKSkpe209MTI7YnJlYWsgZX1pZihhW3c+PjJdPU0sYVt3KzQ+PjJdPW0sYVt3KzEyPj4yXT1iLGFbdys4Pj4yXT0tMSwhKGt8MD09KDImYVtEPj4yXXwwKSkmJjAhPSgwfGFmZShmLE0sbSkpKXttPTEyO2JyZWFrIGV9fWlmKGI9MHxjOChSLEEsLTEpLG09''@;'; + put 'put ''MHxmZVtBPj4wXSwoMHxiKTwxKXtnZT0zO2JyZWFrIGV9fWlmKDU9PSgwfGdlKSl7YVtsKzEyPj4yXT1BKzEsbT0wO2JyZWFrfWlmKDE2PT0oMHxnZSkpe209NDticmVha319ZWxzZSBnZT0zfXdoaWxlKDApO3JldHVybiAzPT0oMHxnZSkmJihtPW08PDI0Pj4yND8yOjcpLGxlPWJlLDB8bX0o''@;'; + put 'put ''bCxHP2MrMXwwOmMsZixtKTtlOmRve2lmKGMpZj0wO2Vsc2V7aWYoRz0wPT0oMHxhW20+PjJdKSlwPTA7ZWxzZXtpZih4MSgwfGFbcGU+PjJdLDB8YVtBPj4yXSw0LDExMSksIShjPTB8emooZikpKXtjPTEyLGY9MDticmVha31pZihhW2M+PjJdPTExMTQxMTIsYVtjKzQ+PjJdPTExMTQxMTIs''@;'; + put 'put ''YVtjKzg+PjJdPS0xLGM9MHxhW3A+PjJdKXtpZighKHA9MHxYMSgwfGFbbD4+Ml0sMCwwLDAsNCsoZj1jPDwyKXwwKSkpe2M9MTIsZj0wO2JyZWFrfWdvKDB8cCxtKzh8MCwwfGYpLGFbcCsoYzw8Mik+PjJdPTB9ZWxzZSBwPTB9aWYoKDB8KE09MHxhW0E+PjJdKSk+MClmb3IoRD0wfGFbcGU+''@;'; + put 'put ''PjJdLFI9bCsyNHwwLGY9MCxjPTAsaz0wOzspe209MHxhWyhiPTB8YVtEKyhrPDwyKT4+Ml0pPj4yXSx3PTB8YVsoQT1iKzR8MCk+PjJdO2Rve2lmKCFHKXtpZigoMHxtKT4oMHxjKSl7YVtiPj4yXT1jLGFbQT4+Ml09bSstMSxjPXcrMXwwLEs9MTQ7YnJlYWt9Yz0oMHwoYj13KzF8MCkpPj0o''@;'; + put 'put ''MHxjKT9iOmM7YnJlYWt9Sz0xNH13aGlsZSgwKTtpZigxND09KDB8SykmJihLPTAsYVtiKzg+PjJdPWFbUj4+Ml0sYVtiKzE2Pj4yXT1wLGI9MHxyUygwfGFbbD4+Ml0sMCxiKSwhKGY9MHxiZygwfGFbbD4+Ml0sZixiKSkpKXtjPTEyLGY9MDticmVhayBlfWlmKCgwfChrPWsrMXwwKSk+PSgw''@;'; + put 'put ''fE0pKXtjPTA7YnJlYWt9fWVsc2UgYz0wLGY9MH19d2hpbGUoMCk7RnQoMHxhW3BlPj4yXSksYVsocGU9bCsyNHwwKT4+Ml09MSsoMHxhW3BlPj4yXSksYVtsKzg+PjJdPWZ9ZWxzZSBjPTEyO3JldHVybiBsZT1nZSwwfGN9ZnVuY3Rpb24gbmZlKGwpe3ZhciBjO2ZvcihjPTB8ZmVbKGx8PTAp''@;'; + put 'put ''Pj4wXSxsPTA7KDB8ZmVbNjM3NTIrKGw8PDMpPj4wXSkhPWM8PDI0Pj4yNDspaWYoMTI9PSgwfChsPWwrMXwwKSkpe2w9MTI7YnJlYWt9cmV0dXJuIDB8YVs2Mzc1MisobDw8MykrND4+Ml19ZnVuY3Rpb24gcmZlKGwpe3ZhciBjPTA7cmV0dXJuKGM9KGx8PTApLTQ4fDApPj4+MDwxMD8wfGM6''@;'; + put 'put ''MHwoKChjPTMyfGwpLTk3fDApPj4+MDw2P2MrLTg3fDA6LTEpfWZ1bmN0aW9uIHpqKGwpe3ZhciBwLG0sdyxjPTAsZj0wLEE9MCxiPTA7cmV0dXJuKDB8KGY9MHxhWyh3PTgrKGx8PTApfDApPj4yXSkpPj0oMHwobT0wfGFbKHA9bCsxMnwwKT4+Ml0pKT8oMHxtKTw9MzI3NjcmJihhW3A+PjJd''@;'; + put 'put ''PW08PDEsMCE9KDB8KGM9MHxVYSgwfGFbKEE9bCs0fDApPj4yXSxtPDwzKSkpKT8oYVtBPj4yXT1jLGY9MHxhW3c+PjJdLGI9Nik6Yz0wOihjPTB8YVtsKzQ+PjJdLGI9NiksNj09KDB8YikmJihhW3c+PjJdPWYrMSxiPTB8WDEoMHxhW2w+PjJdLDAsMCwxLDIwKSxhW2MrKGY8PDIpPj4yXT1i''@;'; + put 'put ''LGM9YiksMHxjfWZ1bmN0aW9uIGFmZShsLGMsZil7bHw9MCxjfD0wLGZ8PTA7dmFyIHA9MCxtPTAsQT0wLHc9MDtlOmRve2lmKCgwfGMpPigwfGYpKWM9MDtlbHNlIGZvcig7Oyl7dDpkb3tpZigwfFNqKGMpKWZvcihtPTB8b3YoYykscD1tOzspe2lmKEE9YysxfDAscD1wKzF8MCwoMHxjKT49''@;'; + put 'put ''KDB8Zikpe3c9bSxjPUEsQT0xMjticmVhayB0fWlmKCgwfG92KEEpKSE9KDB8cCkpe3c9bSxjPUEsQT0xMjticmVha31jPUF9ZWxzZXtpZighKDB8TWooYykpKXtjPWMrMXwwO2JyZWFrfWZvcihwPW09MHxBZyhjKTs7KXtpZihBPWMrMXwwLHA9cCsxfDAsKDB8Yyk+PSgwfGYpKXt3PW0sYz1B''@;'; + put 'put ''LEE9MTI7YnJlYWsgdH1pZigoMHxBZyhBKSkhPSgwfHApKXt3PW0sYz1BLEE9MTI7YnJlYWt9Yz1BfX19d2hpbGUoMCk7aWYoMTI9PSgwfEEpKXtpZihBPTAsIShtPTB8emoobCkpKXtjPS0xO2JyZWFrIGV9YVttPj4yXT13LGFbbSs0Pj4yXT1wKy0xLGFbbSs4Pj4yXT0tMX1pZigoMHxjKT4o''@;'; + put 'put ''MHxmKSl7Yz0wO2JyZWFrfX19d2hpbGUoMCk7cmV0dXJuIDB8Y31mdW5jdGlvbiBsZmUobCxjLGYscCxtKXtjfD0wLGZ8PTAscHw9MCxtfD0wO3ZhciB3LGIsayxNLFIsQT0wLEQ9MDtyZXR1cm4gUj1sZSxsZT1sZSsxNnwwLE09UiwoMHwobD0wfGFbNDArKGI9MHxhWzQrKGx8PTApPj4yXSk+''@;'; + put 'put ''PjJdKSk+MCYwIT0oMHwodz0wPT0oOCZhWyhrPWIrNTZ8MCk+PjJdfDApP2Y6MCkpPyhsPTB8QjAobDw8MikpPyhBPWwsZj1sLEQ9Myk6bD0xMjooQT0wLGY9MCxEPTMpLDM9PSgwfEQpJiYobD0wfGFbYis2MD4+Ml0/MHxmdW5jdGlvbiBzZmUobCxjLGYscCxtKXtsfD0wLGN8PTAsZnw9MCxw''@;'; + put 'put ''fD0wLG18PTA7dmFyIEpyLExyLGwwLFZpLE9pLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAsSz0wLHBlPTAsZ2U9MCxiZT0wLE9lPTAsTGU9MCxSZT0wLEhlPTAsVmU9MCxxZT0wLG50PTAsV2U9MCxvdD0wLFN0PTAsa3Q9MCxzdD0wLEV0PTAsWnQ9MCxjdD0wLGJ0PTAsYW49MCxT''@;'; + put 'put ''bj0wLEhuPTAsdXI9MCxIcj0wLEVyPTAsZnI9MCxEcj0wO09pPWxlLGxlPWxlKzE2fDAsYVsobDA9T2kpPj4yXT0wLEc9MSZwLEpyPTImcCxSPTQmYVsoTHI9bCs1NnwwKT4+Ml0sVmk9MHxSJCgwLDApO2U6ZG97aWYoVmkpe2lmKCEoSz0wfFgxKFZpLDAsMCwwLDMyKSkpe3dnKFZpKSxwPTEy''@;'; + put 'put ''O2JyZWFrfWFbSysyND4+Ml09MCxhW0srMjg+PjJdPTAsKHBlPTB8YVsoRHI9bCs0MHwwKT4+Ml0pPyhwPTB8QjAocGU8PDIpKT8oaz1wLGI9cCxTdD02KTooRD0wLE09MCxrPXAscD0xMixiPTAsdz0wLEE9MCk6KGs9MCxiPTAsU3Q9Nik7dDpkb3tpZig2PT0oMHxTdCkpe2lmKHA9MHxhW2wr''@;'; + put 'put ''Mjg+PjJdKXtpZighKHA9MHxCMChwPDwzKSkpe0Q9cCxNPTAscD0xMix3PTAsQT0wO2JyZWFrfUQ9cCx3PXB9ZWxzZSBEPTAsdz0wO2lmKHA9MHxhWyhmcj1sKzUyfDApPj4yXSl7aWYoIShwPTB8QjAocDw8MikpKXtNPXAscD0xMixBPTA7YnJlYWt9TT1wLEE9cH1lbHNlIE09MCxBPTA7U249''@;'; + put 'put ''bCs4fDAsSG49bCsxMnwwLHVyPTA9PSgwfGYpLEhyPTAhPSgwfGYpLEVyPWwrMzJ8MCxhbj0wIT0oMHxSKSxidD0wPT0oMHxHKSxiZT1jLHA9MSxnZT0tMSxSZT0tMSxSPXBlLG90PTA7bjpmb3IoOzspe2lmKCgwfFIpPjApe0c9MDtkb3thW2srKEc8PDIpPj4yXT0tMSx1cnx8KGFbZisoRzw8''@;'; + put 'put ''Mik+PjJdPS0xLFI9MHxhW0RyPj4yXSksRz1HKzF8MH13aGlsZSgoMHxHKTwoMHxSKSl9aWYoKDB8KFI9MHxhW2ZyPj4yXSkpPjAmJnUyKDB8QSwwLFI8PDJ8MCksWnQ9cCtnZXwwLCgwfChwPTB8YzgobDAsYmUsNCkpKTwxKXtpZigoMHxwKTwwKXtwPTE7YnJlYWsgdH1wPTF9aWYoRXQ9YmUr''@;'; + put 'put ''cHwwLGN0PTB8YVtsMD4+Ml0sMHxhWyhHPTgrKFI9MHxhW1NuPj4yXSl8MCk+PjJdKXtmb3IoSGU9MCE9KDB8WnQpLFZlPTk1PT0oMHxvdCkscWU9MD09KDB8WnQpLFdlPWFuJjEwPT0oMHxvdCksbnQ9KDB8WnQpPDEmYnQsTGU9UixSPTAsT2U9MCxiZT1HOzspe0c9MHxhWyhnZT1MZSsyMHww''@;'; + put 'put ''KT4+Ml07cjpkb3tpZihHKXtpZigwPT0oMSZHfDApfG50fFdlKXtpZigyJkd8MCYmISgwPT0oKHN0PTB8YVtsMD4+Ml0pfEpyfDApfGFuJjEwPT0oMHxzdCkpKXtwZT1PZTticmVha31kb3tpZigxNiZHfDApe2lmKFZlKXtwZT1PZTticmVhayByfWlmKDB8d3Mob3QpKXtwZT1PZTticmVhayBy''@;'; + put 'put ''fWlmKDk1PT0oMHwoRz0wfGFbbDA+PjJdKSkpYnJlYWs7aWYoISgwfHdzKEcpKSl7cGU9T2U7YnJlYWsgcn19fXdoaWxlKDApO2lmKDMyJihHPTB8YVtnZT4+Ml0pKXtpZihWZSl7aWYoOTU9PSgwfChHPTB8YVtsMD4+Ml0pKSl7cGU9T2U7YnJlYWt9fWVsc2UgaWYoKHN0PTA9PSgwfHdzKG90''@;'; + put 'put ''KSkpfDk1PT0oMHwoRz0wfGFbbDA+PjJdKSkpe3BlPU9lO2JyZWFrfWlmKDB8d3MoRykpe3BlPU9lO2JyZWFrfUc9MHxhW2dlPj4yXX1wZT0wfGFbbDA+PjJdO2Rve2lmKDAhPSgwfHBlKSZIZSYwIT0oNjQmR3wwKSl7aWYoVmU/Rz0xOihHPTAhPSgwfHdzKG90KSkscGU9MHxhW2wwPj4yXSks''@;'; + put 'put ''OTU9PSgwfHBlKSl7aWYoRyl7cGU9T2U7YnJlYWsgcn1icmVha31pZihHXjAhPSgwfHdzKHBlKSkpYnJlYWs7cGU9T2U7YnJlYWsgcn19d2hpbGUoMCk7aWYoISgxMjgmYVtnZT4+Ml0pKXtTdD00OTticmVha31pZihxZXwwPT0oMHwoRz0wfGFbbDA+PjJdKSkpe3BlPU9lO2JyZWFrfWlmKFZl''@;'; + put 'put ''P3BlPTE6KHBlPTAhPSgwfHdzKG90KSksRz0wfGFbbDA+PjJdKSw5NT09KDB8Rykpe2lmKHBlKXtTdD00OTticmVha31wZT1PZTticmVha31pZihwZV4wIT0oMHx3cyhHKSkpe3BlPU9lO2JyZWFrfVN0PTQ5O2JyZWFrfXBlPU9lfWVsc2UgU3Q9NDl9d2hpbGUoMCk7ZG97aWYoNDk9PSgwfFN0''@;'; + put 'put ''KSl7aWYoU3Q9MCwhT2Upe1I9MHxhW0xlKzE2Pj4yXSxwZT0wfGFbYmU+PjJdO2JyZWFrfWlmKEc9MHxhWyhwZT1LKzI4fDApPj4yXSlLPUc7ZWxzZXtpZighKEc9MHxYMShWaSwwLDAsMCwzMikpKXtTdD01MzticmVhayBufWlmKGFbRysyND4+Ml09SyxhW0crMjg+PjJdPTAsc3Q9MHxYMShW''@;'; + put 'put ''aSwwLDAsMCxhW0RyPj4yXTw8MiksYVtHKzIwPj4yXT1zdCwhc3Qpe1N0PTYwO2JyZWFrIG59YVtwZT4+Ml09RyxLPUd9aWYoYVtLPj4yXT1adCxhW0srND4+Ml09RXQsYVtLKzg+PjJdPWFbYmU+PjJdLGFbSysxMj4+Ml09YVtMZSsxMj4+Ml0sYVtLKzE2Pj4yXT1hW2wwPj4yXSwoMHxhW0Ry''@;'; + put 'put ''Pj4yXSk+MCl7cGU9MHxhW0srMjA+PjJdLEc9MDtkb3thW3BlKyhHPDwyKT4+Ml09YVtrKyhHPDwyKT4+Ml0sRz1HKzF8MH13aGlsZSgoMHxHKTwoMHxhW0RyPj4yXSkpfWlmKEc9MHxhW0xlKzE2Pj4yXSl7aWYoKDB8KHBlPTB8YVtHPj4yXSkpPD0tMSl7cGU9T2U7YnJlYWt9Z2U9MHxhW0sr''@;'; + put 'put ''MjA+PjJdO2Rve0c9Rys0fDAsYVtnZSsocGU8PDIpPj4yXT1adCxwZT0wfGFbRz4+Ml19d2hpbGUoKDB8cGUpPi0xKTtwZT1PZX1lbHNlIHBlPU9lfX13aGlsZSgwKTtpZighKDB8YVsoYmU9TGUrNDB8MCk+PjJdKSlicmVhaztMZT1MZSszMnwwLE9lPXBlfWlmKFIpe2lmKCgwfChHPTB8YVtS''@;'; + put 'put ''Pj4yXSkpPi0xKWRve2FbaysoRzw8Mik+PjJdPVp0LEc9MHxhWyhSPVIrNHwwKT4+Ml19d2hpbGUoKDB8Ryk+LTEpfWVsc2UgUj0wO3BlPyhiZT1adCxnZT1FdCxIZT1wZSxWZT1SLFN0PTc5KTpTdD0xNzF9ZWxzZSBSPTAsU3Q9MTcxO3I6Zm9yKDs7KXtpZig3OT09KDB8U3QpKXtpZigoMHxI''@;'; + put 'put ''ZSk9PSgwfGFbSG4+PjJdKSl7aWYoKDB8UmUpPj0oMHxiZSkpe2lmKCEoSHImKDB8UmUpPT0oMHxiZSkpKXtSPVZlLFN0PTE3MTtjb250aW51ZX1pZighKDB8eiQoUj0wfGFbRHI+PjJdLDB8YVtFcj4+Ml0sayxmKSkpe1I9VmUsU3Q9MTcxO2NvbnRpbnVlfX1lbHNle2lmKHVyKXtSZT1iZSxS''@;'; + put 'put ''PVZlLFN0PTE3MTtjb250aW51ZX1SPTB8YVtEcj4+Ml19aWYoISgoMHxSKT4wKSl7UmU9YmUsUj1WZSxTdD0xNzE7Y29udGludWV9Zm9yKFI9MDs7KWlmKGFbZisoUjw8Mik+PjJdPWFbaysoUjw8Mik+PjJdLCgwfChSPVIrMXwwKSk+PSgwfGFbRHI+PjJdKSl7UmU9YmUsUj1WZSxTdD0xNzE7''@;'; + put 'put ''Y29udGludWUgcn19aWYoMCE9KDB8YVsoTGU9SGUrOHwwKT4+Ml0pJiYwIT0oMjU2JmFbSGUrMjA+PjJdfDApKXtpZihqJCgxKyhHPTB8YVtIZSsyND4+Ml0pfDAsRCwtOSZhW0xyPj4yXSxsLGssYmUpLDB8czIoYysoc3Q9MHxhW0QrKEc8PDMpPj4yXSl8MCxnZSstMXwwLEc9KDB8YVtEKyhH''@;'; + put 'put ''PDwzKSs0Pj4yXSktc3R8MCkpe1I9VmUsU3Q9MTcxO2NvbnRpbnVlfWlmKFI9MSYoc3Q9MD09KDB8RykpLHBlPTB8YVtIZSsxMj4+Ml0sc3QmJjB8YVtNKyhwZTw8Mik+PjJdKXtSPVZlLFN0PTE3MTtjb250aW51ZX1pZihhW00rKHBlPDwyKT4+Ml09UixnZT1nZSsoRz1HKy0xfDApfDAsRz1H''@;'; + put 'put ''K2JlfDAscGU9MHxhW2wwPj4yXSwoMHwoUj0wfGM4KGwwLGdlLDQpKSk8MSl7aWYoKDB8Uik8MCl7cD0xO2JyZWFrIHR9Uj0xfWt0PWdlK1J8MCxzdD1SfWVsc2V7aWYoIShwZT0wfGFbbDA+PjJdKSl7Uj1WZSxTdD0xNzE7Y29udGludWV9aWYoKDB8KFI9MHxjOChsMCxnZSw0KSkpPDEpe2lm''@;'; + put 'put ''KCgwfFIpPDApe3A9MTticmVhayB0fVI9MX1HPWJlLGt0PWdlK1J8MCxzdD1SfWlmKGJlPUcrcHwwLCEoMHxhW0xlPj4yXSkpe3A9c3QsUj1WZSxTdD0xNzE7Y29udGludWV9Zm9yKHFlPTAhPSgwfGJlKSxudD05NT09KDB8cGUpLFdlPTA9PSgwfGJlKSxTdD1hbiYxMD09KDB8cGUpLG90PSgw''@;'; + put 'put ''fGJlKTwxJmJ0LE9lPTAsUj1WZTs7KXtpOmRve2lmKCgwfGFbSGU+PjJdKT4+PjA8PXBlPj4+MCl7aWYoKDB8YVtIZSs0Pj4yXSk+Pj4wPHBlPj4+MClicmVhaztwPTB8YVsoZ2U9SGUrMjB8MCk+PjJdO2Rve2lmKDB8cCl7aWYoISgwPT0oMSZwfDApfG90fFN0KXx8MiZwfDAmJiEoMD09KChW''@;'; + put 'put ''ZT0wfGFbbDA+PjJdKXxKcnwwKXxhbiYxMD09KDB8VmUpKSlicmVhayBpO2Rve2lmKDE2JnB8MCl7aWYobnR8fDB8d3MocGUpKWJyZWFrIGk7aWYoOTU9PSgwfChwPTB8YVtsMD4+Ml0pKSlicmVhaztpZighKDB8d3MocCkpKWJyZWFrIGl9fXdoaWxlKDApO2lmKDMyJihwPTB8YVtnZT4+Ml0p''@;'; + put 'put ''KXtpZihudCl7aWYoOTU9PSgwfChwPTB8YVtsMD4+Ml0pKSlicmVhayBpfWVsc2UgaWYoKFZlPTA9PSgwfHdzKHBlKSkpfDk1PT0oMHwocD0wfGFbbDA+PjJdKSkpYnJlYWsgaTtpZigwfHdzKHApKWJyZWFrIGk7cD0wfGFbZ2U+PjJdfUc9MHxhW2wwPj4yXTtkb3tpZigwIT0oMHxHKSZxZSYw''@;'; + put 'put ''IT0oNjQmcHwwKSl7aWYobnQ/cD0xOihwPTAhPSgwfHdzKHBlKSksRz0wfGFbbDA+PjJdKSw5NT09KDB8Rykpe2lmKHApYnJlYWsgaTticmVha31pZihwXjAhPSgwfHdzKEcpKSlicmVhazticmVhayBpfX13aGlsZSgwKTtkb3tpZigxMjgmYVtnZT4+Ml18MCl7aWYoV2V8MD09KDB8KHA9MHxh''@;'; + put 'put ''W2wwPj4yXSkpKWJyZWFrIGk7aWYobnQ/Rz0xOihHPTAhPSgwfHdzKHBlKSkscD0wfGFbbDA+PjJdKSw5NT09KDB8cCkpe2lmKEcpYnJlYWs7YnJlYWsgaX1pZihHXjAhPSgwfHdzKHApKSlicmVhayBpO2JyZWFrfX13aGlsZSgwKTtwPTB8YVtnZT4+Ml07ZG97aWYoNCZwKXtpZigyJmFbTHI+''@;'; + put 'put ''PjJdfDApYnJlYWs7aWYoISgwfHU4KHBlLDB8YVtIZSsyND4+Ml0pKSlicmVhayBpO3A9MHxhW2dlPj4yXX19d2hpbGUoMCk7ZG97aWYoNCZwfDApe2lmKCEoMiZhW0xyPj4yXSl8fDB8dTgoVmU9MHxBZyhwZSksMHxhWyhwPUhlKzI0fDApPj4yXSkpYnJlYWs7aWYoISgwfHU4KFZlPTB8b3Yo''@;'; + put 'put ''cGUpLDB8YVtwPj4yXSkpKWJyZWFrIGl9fXdoaWxlKDApO2lmKCEoOCZhW2dlPj4yXSkpYnJlYWs7aWYoMHxaJCgwfGFbSGUrMjg+PjJdLHBlLDImYVtMcj4+Ml0pKWJyZWFrIGl9fXdoaWxlKDApO2lmKCFPZSl7T2U9MHxhW0xlPj4yXSxSPTB8YVtIZSsxNj4+Ml07YnJlYWt9aWYocD0wfGFb''@;'; + put 'put ''KEc9SysyOHwwKT4+Ml0pSz1wO2Vsc2V7aWYoIShwPTB8WDEoVmksMCwwLDAsMzIpKSl7U3Q9MTQ1O2JyZWFrIG59aWYoYVtwKzI0Pj4yXT1LLGFbcCsyOD4+Ml09MCxWZT0wfFgxKFZpLDAsMCwwLGFbRHI+PjJdPDwyKSxhW3ArMjA+PjJdPVZlLCFWZSl7U3Q9MTUyO2JyZWFrIG59YVtHPj4y''@;'; + put 'put ''XT1wLEs9cH1pZihhW0s+PjJdPWJlLGFbSys0Pj4yXT1rdCxhW0srOD4+Ml09YVtMZT4+Ml0sYVtLKzEyPj4yXT1hW0hlKzEyPj4yXSxhW0srMTY+PjJdPWFbbDA+PjJdLCgwfGFbRHI+PjJdKT4wKXtHPTB8YVtLKzIwPj4yXSxwPTA7ZG97YVtHKyhwPDwyKT4+Ml09YVtrKyhwPDwyKT4+Ml0s''@;'; + put 'put ''cD1wKzF8MH13aGlsZSgoMHxwKTwoMHxhW0RyPj4yXSkpfWlmKCEocD0wfGFbSGUrMTY+PjJdKXx8KDB8KEc9MHxhW3A+PjJdKSk8PS0xKWJyZWFrO2dlPTB8YVtLKzIwPj4yXTtkb3thW2dlKyhHPDwyKT4+Ml09YmUsRz0wfGFbKHA9cCs0fDApPj4yXX13aGlsZSgoMHxHKT4tMSl9fXdoaWxl''@;'; + put 'put ''KDApO2lmKCEoMHxhWyhMZT1IZSs0MHwwKT4+Ml0pKWJyZWFrO0hlPUhlKzMyfDB9aWYoIU9lKXtwPXN0LFN0PTE3MTtjb250aW51ZX1pZihSKWlmKCgwfChwPTB8YVtSPj4yXSkpPi0xKXtkb3tSPVIrNHwwLGFbaysocDw8Mik+PjJdPWJlLHA9MHxhW1I+PjJdfXdoaWxlKCgwfHApPi0xKTtw''@;'; + put 'put ''ZT1SZSxHPWt0LHA9c3R9ZWxzZSBwZT1SZSxHPWt0LHA9c3Q7ZWxzZSBwZT1SZSxHPWt0LHA9c3QsUj0wfWVsc2UgaWYoMTcxPT0oMHxTdCkpe2lmKFN0PTAsIShnZT0wfGFbSysyND4+Ml0pKWJyZWFrO2lmKDI1NiZhWzIwKyhPZT0wfGFbSys4Pj4yXSk+PjJdfDAmJihhW00rKGFbSysxMj4+''@;'; + put 'put ''Ml08PDIpPj4yXT0wKSxiZT0wfGFbSz4+Ml0sTGU9MHxhW0srND4+Ml0sYVtsMD4+Ml09YVtLKzE2Pj4yXSwoMHwocGU9MHxhW0RyPj4yXSkpPjApe0s9MHxhW0srMjA+PjJdLEc9MDtkb3thW2srKEc8PDIpPj4yXT1hW0srKEc8PDIpPj4yXSxHPUcrMXwwfXdoaWxlKCgwfEcpPCgwfHBlKSk7''@;'; + put 'put ''Sz1nZSxwZT1SZSxHPUxlfWVsc2UgSz1nZSxwZT1SZSxHPUxlfWdlPUcsUmU9cGUsSGU9T2UsVmU9UixTdD03OX1pZigoUj0oMHxSZSk+LTEpfDA9PSgwfGFbbDA+PjJdKSl7U3Q9MTgwO2JyZWFrfWFbbDA+PjJdPWN0LGJlPUV0LGdlPVp0LFI9MHxhW0RyPj4yXSxvdD1jdH1pZig1Mz09KDB8''@;'; + put 'put ''U3QpKXtpZih3ZyhWaSksMHxrJiZGdChiKSwwfEQmJkZ0KHcpLCFNKXtwPTEyO2JyZWFrIGV9RnQoQSkscD0xMjticmVhayBlfWlmKDYwPT0oMHxTdCkpe2lmKHdnKFZpKSwwfGsmJkZ0KGIpLDB8RCYmRnQodyksIU0pe3A9MTI7YnJlYWsgZX1GdChBKSxwPTEyO2JyZWFrIGV9aWYoMTQ1PT0o''@;'; + put 'put ''MHxTdCkpe2lmKHdnKFZpKSwwfGsmJkZ0KGIpLDB8RCYmRnQodyksIU0pe3A9MTI7YnJlYWsgZX1GdChBKSxwPTEyO2JyZWFrIGV9aWYoMTUyPT0oMHxTdCkpe2lmKHdnKFZpKSwwfGsmJkZ0KGIpLDB8RCYmRnQodyksIU0pe3A9MTI7YnJlYWsgZX1GdChBKSxwPTEyO2JyZWFrIGV9aWYoMTgw''@;'; + put 'put ''PT0oMHxTdCkpe2FbbT4+Ml09UmUscD0xJigxXlIpO2JyZWFrfX19d2hpbGUoMCk7d2coVmkpLDB8ayYmRnQoYiksMHxEJiZGdCh3KSxNJiZGdChBKX1lbHNlIHA9MTJ9d2hpbGUoMCk7cmV0dXJuIGxlPU9pLDB8cH0oYixjLEEsbSxNKTowfGZ1bmN0aW9uIHVmZShsLGMsZixwLG0pe2x8PTAs''@;'; + put 'put ''Y3w9MCxmfD0wLHB8PTAsbXw9MDt2YXIgSHIsRXIsZnIsRHIsTHIsbDAsT2ksQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxLPTAscGU9MCxnZT0wLGJlPTAsT2U9MCxMZT0wLFJlPTAsSGU9MCxWZT0wLHFlPTAsbnQ9MCxXZT0wLG90PTAsU3Q9MCxrdD0wLHN0PTAsRXQ9MCxadD0w''@;'; + put 'put ''LGN0PTAsYnQ9MCxhbj0wLFNuPTAsSG49MCx1cj0wLEpyPTAsVmk9MDtpZihPaT1sZSxsZT1sZSsxNnwwLGFbKExyPU9pKT4+Ml09MCxNPTEmcCxmcj0yJnAsaz00JmFbKERyPWwrNTZ8MCk+PjJdLGwwPTB8QjAocD0xMisoRXI9KEhyPWY/MHxhW2wrNDA+PjJdOjApPDwyKSsodz0oYj0wfGFb''@;'; + put 'put ''bCs1Mj4+Ml0pPDwzKSsoKEE9dys4fDApKygwfEFyKEVyLGIpKTw8MSl8MCkpe2lmKHUyKDB8bDAsMCwwfHApLEE9MyYocD0odXI9KHA9KFI9KHA9KEQ9KHA9bDArRXJ8MCkrKDA9PSgwfChEPTMmcCkpPzA6NC1EfDApfDApK0F8MCkrKDA9PSgwfChSPTMmcCkpPzA6NC1SfDApfDApK0F8MCkr''@;'; + put 'put ''KDA9PSgwfCh1cj0zJnApKT8wOjQtdXJ8MCl8MCkrd3wwKSx3PSgwfGIpPjApe2ZvcihwPXArKDA9PSgwfEEpPzA6NC1BfDApfDAsQT0wO2FbUisoQTw8MykrND4+Ml09cCxhW0QrKEE8PDMpKzQ+PjJdPXA9cCtFcnwwLCEoKDB8KEE9QSsxfDApKT49KDB8YikpOylwPXArRXJ8MDtpZih3KXtw''@;'; + put 'put ''PTA7ZG97YVt1cisocDw8Myk+PjJdPS0xLHA9cCsxfDB9d2hpbGUoKDB8cCk8KDB8YikpfX0oMHwocD0wfGM4KExyLGMsNCkpKTwxPygwfHApPDA/cD0xOihiPTEsVmk9MTEpOihiPXAsVmk9MTEpO2U6ZG97aWYoMTE9PSgwfFZpKSl7Zm9yKEhuPWwrOHwwLFNuPTAhPSgwfGspLHN0PTA9PSgw''@;'; + put 'put ''fE0pLEV0PSgwfEhyKT4wLFp0PWwrMTJ8MCxjdD0oMHxIcik8MSxidD1sKzQ0fDAsYW49bCszMnwwLFN0PWwrMzZ8MCxrdD0wPT0oMHxIciksdz0wLFJlPWMrYnwwLExlPTAsaz0wLHA9LTEsQT1ELFdlPWwwLFZlPUQsSGU9Ujs7KXtpZigoMHxwKTwwKXtNPTgrKGw9MHxhW0huPj4yXSl8MDt0''@;'; + put 'put ''OmRve2lmKDB8YVtNPj4yXSlmb3IoSz0wIT0oMHxMZSkscGU9OTU9PSgwfHcpLGdlPTA9PSgwfExlKSxPZT1TbiYxMD09KDB8dyksYmU9KDB8TGUpPDEmc3Q7Oyl7bjpmb3IoO0c9bCsxMnwwLCEoKDB8YVt1cisoYVtHPj4yXTw8Myk+PjJdKT49KDB8TGUpKTspe2lmKCEoYz0wfGFbKFI9bCsy''@;'; + put 'put ''MHwwKT4+Ml0pKXtWaT00NjticmVha31yOmRve2lmKDA9PSgxJmN8MCl8YmV8T2Upe2lmKDImY3wwJiYhKDA9PSgob3Q9MHxhW0xyPj4yXSl8ZnJ8MCl8U24mMTA9PSgwfG90KSkpYnJlYWs7ZG97aWYoMTYmY3wwKXtpZihwZXx8MHx3cyh3KSlicmVhayByO2lmKDk1PT0oMHwoYz0wfGFbTHI+''@;'; + put 'put ''PjJdKSkpYnJlYWs7aWYoISgwfHdzKGMpKSlicmVhayByfX13aGlsZSgwKTtpZigzMiYoYz0wfGFbUj4+Ml0pKXtpZihwZSl7aWYoOTU9PSgwfChjPTB8YVtMcj4+Ml0pKSlicmVha31lbHNlIGlmKChvdD0wPT0oMHx3cyh3KSkpfDk1PT0oMHwoYz0wfGFbTHI+PjJdKSkpYnJlYWs7aWYoMHx3''@;'; + put 'put ''cyhjKSlicmVhaztjPTB8YVtSPj4yXX1EPTB8YVtMcj4+Ml07ZG97aWYoMCE9KDB8RCkmSyYwIT0oNjQmY3wwKSl7aWYocGU/Yz0xOihjPTAhPSgwfHdzKHcpKSxEPTB8YVtMcj4+Ml0pLDk1PT0oMHxEKSl7aWYoYylicmVhayByO2JyZWFrfWlmKGNeMCE9KDB8d3MoRCkpKWJyZWFrO2JyZWFr''@;'; + put 'put ''IHJ9fXdoaWxlKDApO2lmKCEoMTI4JmFbUj4+Ml0pKXtWaT00NjticmVhayBufWlmKGdlfDA9PSgwfChjPTB8YVtMcj4+Ml0pKSlicmVhaztpZihwZT9EPTE6KEQ9MCE9KDB8d3ModykpLGM9MHxhW0xyPj4yXSksOTU9PSgwfGMpKXtpZihEKXtWaT00NjticmVhayBufWJyZWFrfWlmKEReMCE9''@;'; + put 'put ''KDB8d3MoYykpKWJyZWFrO1ZpPTQ2O2JyZWFrIG59fXdoaWxlKDApO2lmKCEoMHxhWyhNPWwrNDB8MCk+PjJdKSlicmVhayB0O2w9bCszMnwwfWlmKDQ2PT0oMHxWaSkpe2lmKFZpPTAsYVtBPj4yXT1hW00+PjJdLEV0JiZ1MigwfGFbQSs0Pj4yXSwtMSwwfEVyKSwwfChNPTB8YVtsKzE2Pj4y''@;'; + put 'put ''XSkmJigwfChKcj0wfGFbTT4+Ml0pKT4tMSl7RD1BKzR8MCxjPUpyO2RveygwfGMpPCgwfEhyKSYmKGFbKDB8YVtEPj4yXSkrKGM8PDIpPj4yXT1MZSksYz0wfGFbKE09TSs0fDApPj4yXX13aGlsZSgoMHxjKT4tMSl9aWYoKE09KDB8YVtBPj4yXSkhPSgwfGFbWnQ+PjJdKSl8Y3Qpaz1NP2s6''@;'; + put 'put ''MSxwPU0/cDpMZSxNPUErNHwwO2Vsc2V7az0wfGFbKE09QSs0fDApPj4yXSxwPTA7ZG97YVtmKyhwPDwyKT4+Ml09YVtrKyhwPDwyKT4+Ml0scD1wKzF8MH13aGlsZSgoMHxwKSE9KDB8SHIpKTtrPTEscD1MZX1hW3VyKygob3Q9MHxhW0c+PjJdKTw8Myk+PjJdPUxlLGFbdXIrKG90PDwzKSs0''@;'; + put 'put ''Pj4yXT1NLEE9QSs4fDB9aWYoISgwfGFbKE09bCs0MHwwKT4+Ml0pKWJyZWFrO2w9bCszMnwwfX13aGlsZSgwKTtpZihhW0E+PjJdPTAsIShBPTB8YVtMcj4+Ml0pKWJyZWFrO3c9QX1lbHNlIGlmKGt0fHwhKCgwfEEpIT0oMHxWZSkmMCE9KDB8KHc9MHxhW0xyPj4yXSkpKSlicmVhaztpZihv''@;'; + put 'put ''dD1MZStifDAsKDB8KEE9MHxjOChMcixSZSw0KSkpPDEpe2lmKCgwfEEpPDApe3A9MTticmVhayBlfWI9MX1lbHNlIGI9QTtpZihudD1SZStifDAsMCE9KDB8aykmMCE9KDB8YVtidD4+Ml0pKXtpZigwfGFbVmU+PjJdKXtwZT0oMHwoSz0wfGFbKEc9MHxhW1N0Pj4yXSk+PjJdKSk+LTEsUj1W''@;'; + put 'put ''ZSxBPUhlO2Rve0Q9Uis0fDA7dDpkb3tpZihwZSl7TT0wLGM9Sztkb3tpZihsPTB8YVtHKygoMXxNKTw8Mik+PjJdLCgwfGMpPj0oMHxIcil8fCgwfGFbKGs9MHxhW0Q+PjJdKSsobDw8Mik+PjJdKT09KDB8YVtmKyhsPDwyKT4+Ml0pJiYoMHxhW2srKGM8PDIpPj4yXSk8KDB8YVtmKyhjPDwy''@;'; + put 'put ''KT4+Ml0pKWJyZWFrIHQ7Yz0wfGFbRysoKE09TSsyfDApPDwyKT4+Ml19d2hpbGUoKDB8Yyk+LTEpO009RCxWaT03NX1lbHNlIE09RCxrPTB8YVtEPj4yXSxWaT03NX13aGlsZSgwKTs3NT09KDB8VmkpJiYoVmk9MCxhW0E+PjJdPWFbUj4+Ml0scWU9MHxhWyhSZT1BKzR8MCk+PjJdLGFbUmU+''@;'; + put 'put ''PjJdPWssYVtNPj4yXT1xZSxBPUErOHwwKSxSPVIrOHwwfXdoaWxlKDAhPSgwfGFbUj4+Ml0pKX1lbHNlIEE9SGU7YVtBPj4yXT0wLHFlPVZlLGs9MH1lbHNlIHFlPUhlLEhlPVZlO2lmKE09MHxhW0hlPj4yXSlmb3IoZ2U9MCE9KDB8b3QpLGJlPTk1PT0oMHx3KSxPZT0wPT0oMHxvdCksUmU9''@;'; + put 'put ''U24mMTA9PSgwfHcpLExlPSgwfG90KTwxJnN0LHBlPUhlLGw9V2UsQT1xZTs7KXtpZigwfGFbKGM9TSs4fDApPj4yXSlmb3IoSz1wZSs0fDAsRz1sLFI9Yzs7KXt0OmRve2lmKCgwfGFbTT4+Ml0pPj4+MDw9dz4+PjAmJigwfGFbTSs0Pj4yXSk+Pj4wPj13Pj4+MCl7bD0wfGFbKEQ9TSsyMHww''@;'; + put 'put ''KT4+Ml07ZG97aWYoMHxsKXtpZighKDA9PSgxJmx8MCl8TGV8UmUpKXtsPUc7YnJlYWsgdH1pZigyJmx8MCYmISgwPT0oKFdlPTB8YVtMcj4+Ml0pfGZyfDApfFNuJjEwPT0oMHxXZSkpKXtsPUc7YnJlYWsgdH1kb3tpZigxNiZsfDApe2lmKGJlKXtsPUc7YnJlYWsgdH1pZigwfHdzKHcpKXts''@;'; + put 'put ''PUc7YnJlYWsgdH1pZig5NT09KDB8KGw9MHxhW0xyPj4yXSkpKWJyZWFrO2lmKCEoMHx3cyhsKSkpe2w9RzticmVhayB0fX19d2hpbGUoMCk7aWYoMzImKGw9MHxhW0Q+PjJdKSl7aWYoYmUpe2lmKDk1PT0oMHwobD0wfGFbTHI+PjJdKSkpe2w9RzticmVhayB0fX1lbHNlIGlmKChXZT0wPT0o''@;'; + put 'put ''MHx3cyh3KSkpfDk1PT0oMHwobD0wfGFbTHI+PjJdKSkpe2w9RzticmVhayB0fWlmKDB8d3MobCkpe2w9RzticmVhayB0fWw9MHxhW0Q+PjJdfWM9MHxhW0xyPj4yXTtkb3tpZigwIT0oMHxjKSZnZSYwIT0oNjQmbHwwKSl7aWYoYmU/bD0xOihsPTAhPSgwfHdzKHcpKSxjPTB8YVtMcj4+Ml0p''@;'; + put 'put ''LDk1PT0oMHxjKSl7aWYobCl7bD1HO2JyZWFrIHR9YnJlYWt9aWYobF4wIT0oMHx3cyhjKSkpYnJlYWs7bD1HO2JyZWFrIHR9fXdoaWxlKDApO2Rve2lmKDEyOCZhW0Q+PjJdfDApe2lmKE9lfDA9PSgwfChsPTB8YVtMcj4+Ml0pKSl7bD1HO2JyZWFrIHR9aWYoYmU/Yz0xOihjPTAhPSgwfHdz''@;'; + put 'put ''KHcpKSxsPTB8YVtMcj4+Ml0pLDk1PT0oMHxsKSl7aWYoYylicmVhaztsPUc7YnJlYWsgdH1pZihjXjAhPSgwfHdzKGwpKSl7bD1HO2JyZWFrIHR9YnJlYWt9fXdoaWxlKDApO2w9MHxhW0Q+PjJdO2Rve2lmKDQmbCl7aWYoMiZhW0RyPj4yXXwwKWJyZWFrO2lmKCEoMHx1OCh3LDB8YVtNKzI0''@;'; + put 'put ''Pj4yXSkpKXtsPUc7YnJlYWsgdH1sPTB8YVtEPj4yXX19d2hpbGUoMCk7ZG97aWYoNCZsfDApe2lmKCEoMiZhW0RyPj4yXSl8fDB8dTgoV2U9MHxBZyh3KSwwfGFbKGw9TSsyNHwwKT4+Ml0pKWJyZWFrO2lmKCEoMHx1OChXZT0wfG92KHcpLDB8YVtsPj4yXSkpKXtsPUc7YnJlYWsgdH19fXdo''@;'; + put 'put ''aWxlKDApO2lmKCEoOCZhW0Q+PjJdKSlicmVhaztpZigwfFokKDB8YVtNKzI4Pj4yXSx3LDImYVtEcj4+Ml0pKXtsPUc7YnJlYWsgdH19fXdoaWxlKDApO2lmKEV0KXtjPTB8YVtLPj4yXSxsPTA7ZG97YVtHKyhsPDwyKT4+Ml09YVtjKyhsPDwyKT4+Ml0sbD1sKzF8MH13aGlsZSgoMHxsKSE9''@;'; + put 'put ''KDB8SHIpKX1sPTB8YVtNKzE2Pj4yXTtkb3tpZigwfGwpe2lmKCgwfChjPTB8YVtsPj4yXSkpPD0tMSlicmVhaztkb3soMHxjKTwoMHxIcikmJihhW0crKGM8PDIpPj4yXT1vdCksYz0wfGFbKGw9bCs0fDApPj4yXX13aGlsZSgoMHxjKT4tMSl9fXdoaWxlKDApO2lmKCgwfGFbKGM9dXIrKChs''@;'; + put 'put ''PTB8YVtNKzEyPj4yXSk8PDMpfDApPj4yXSk+PSgwfG90KSl7aWYoISgwfHokKEhyLDB8YVthbj4+Ml0sRyxjPTB8YVsobD0wfGFbdXIrKGw8PDMpKzQ+PjJdKT4+Ml0pKSl7bD1HO2JyZWFrfWlmKGFbbD4+Ml09RywoMHxhW1I+PjJdKSE9KDB8YVtadD4+Ml0pKXtsPWM7YnJlYWt9aWYoIUV0''@;'; + put 'put ''KXtrPTEsbD1jLHA9b3Q7YnJlYWt9Zm9yKHA9MDs7KWlmKGFbZisocDw8Mik+PjJdPWFbRysocDw8Mik+PjJdLCgwfChwPXArMXwwKSk9PSgwfEhyKSl7az0xLGw9YyxwPW90O2JyZWFrIHR9fWFbQT4+Ml09V2U9MHxhW1I+PjJdLEQ9MHxhWyhWZT1BKzR8MCk+PjJdLGFbVmU+PjJdPUcsYVtj''@;'; + put 'put ''Pj4yXT1vdCxhW3VyKyhsPDwzKSs0Pj4yXT1WZTtkb3tpZigoMHxhW1p0Pj4yXSk9PSgwfFdlKSl7aWYoLTE9PSgwfHApKXtpZighRXQpe3A9b3Qsaz0xO2JyZWFrfXA9MH1lbHNle2lmKCFFdHx8KDB8YVtHPj4yXSk+KDB8YVtmPj4yXSkpYnJlYWs7cD0wfWRve2FbZisocDw8Mik+PjJdPWFb''@;'; + put 'put ''RysocDw8Mik+PjJdLHA9cCsxfDB9d2hpbGUoKDB8cCk8KDB8SHIpKTtwPW90LGs9MX19d2hpbGUoMCk7bD1ELEE9QSs4fDB9ZWxzZSBsPUd9d2hpbGUoMCk7aWYoISgwfGFbKFI9TSs0MHwwKT4+Ml0pKWJyZWFrO009TSszMnwwLEc9bH1pZighKE09MHxhWyhwZT1wZSs4fDApPj4yXSkpe009''@;'; + put 'put ''bDticmVha319ZWxzZSBNPVdlLEE9cWU7YVtBPj4yXT0wLFJlPW50LExlPW90LFdlPU0sVmU9cWV9YVttPj4yXT1wLHA+Pj49MzF9fXdoaWxlKDApO0Z0KGwwKX1lbHNlIHA9MTI7cmV0dXJuIGxlPU9pLDB8cH0oYixjLEEsbSxNKSxsfHxqJCh3LHAsMHxhW2s+PjJdLGIsQSwwfGFbTT4+Ml0p''@;'; + put 'put ''LEEmJkZ0KGYpKSxsZT1SLDB8bH1mdW5jdGlvbiBqJChsLGMsZixwLG0sQSl7bHw9MCxjfD0wLHB8PTAsbXw9MDt2YXIgdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLEs9MDtpZigwPT0oOCYoZnw9MCl8MCkmKDB8KEF8PTApKT4tMSYmKFI9MHxhW3ArMTY+PjJdLEQ9MCE9KDB8bCkmMCE9''@;'; + put 'put ''KDB8KEc9MHxhW3ArMjg+PjJdKSkpKXtNPTB8YVtwKzQ4Pj4yXSxrPTA7ZG97YVsodz1jKyhrPDwzKXwwKT4+Ml09Yj0oMHwoZj0wfGFbUisoMTIqa3wwKT4+Ml0pKT09KDB8TSk/QTowfGFbbSsoZjw8Mik+PjJdLGFbKHA9Yysoazw8MykrNHwwKT4+Ml09Zj0oMHwoZj0wfGFbUisoMTIqa3ww''@;'; + put 'put ''KSs0Pj4yXSkpPT0oMHxNKT9BOjB8YVttKyhmPDwyKT4+Ml0sLTE9PSgwfGYpfC0xPT0oMHxiKSYmKGFbcD4+Ml09LTEsYVt3Pj4yXT0tMSksaz1rKzF8MH13aGlsZShrPj4+MDxsPj4+MCZrPj4+MDxHPj4+MCk7aWYoRCl7Zj0wO2Rve2lmKGI9YysoZjw8MykrNHwwLDB8KGs9MHxhW1IrKDEy''@;'; + put 'put ''KmZ8MCkrOD4+Ml0pJiYoMHwoSz0wfGFbaz4+Ml0pKT4tMSl7dz0wLG09SyxwPTB8YVsoTT1jKyhmPDwzKXwwKT4+Ml07ZG97KDB8cCk+PSgwfGFbYysobTw8Myk+PjJdKSYmKDB8YVtiPj4yXSk8PSgwfGFbYysobTw8MykrND4+Ml0pfHwoYVtiPj4yXT0tMSxhW00+PjJdPS0xLHA9LTEpLG09''@;'; + put 'put ''MHxhW2srKCh3PXcrMXwwKTw8Mik+PjJdfXdoaWxlKCgwfG0pPi0xKX1mPWYrMXwwfXdoaWxlKGY+Pj4wPGw+Pj4wJmY+Pj4wPEc+Pj4wKX1lbHNlIGY9MH1lbHNlIGY9MDtmPj4+MDxsPj4+MCYmdTIoYysoZjw8Myl8MCwtMSxsLWY8PDN8MCl9ZnVuY3Rpb24gWiQobCxjLGYpe2N8PTAsZnw9''@;'; + put 'put ''MDt2YXIgcD0wLG09MDtwPTB8YVsobHw9MCk+PjJdO2U6ZG97aWYocClmb3IobT0wPT0oMHxmKSxmPXA7Oyl7aWYobSl7aWYoMHx1OChjLGYpKXtmPTE7YnJlYWsgZX19ZWxzZXtpZigwfHU4KHA9MHxvdihjKSwwfGFbbD4+Ml0pKXtmPTE7YnJlYWsgZX1pZigwfHU4KHA9MHxBZyhjKSwwfGFb''@;'; + put 'put ''bD4+Ml0pKXtmPTE7YnJlYWsgZX19aWYoIShmPTB8YVsobD1sKzR8MCk+PjJdKSl7Zj0wO2JyZWFrfX1lbHNlIGY9MH13aGlsZSgwKTtyZXR1cm4gMHxmfWZ1bmN0aW9uIHokKGwsYyxmLHApe2x8PTAsY3w9MCxmfD0wLHB8PTA7dmFyIG09MCxBPTAsdz0wO2U6ZG97aWYoKDB8bCk+MClmb3Io''@;'; + put 'put ''bT0wOzspe2lmKHc9MHxhW2YrKG08PDIpPj4yXSxBPTB8YVtwKyhtPDwyKT4+Ml0sMHxhW2MrKG08PDIpPj4yXSl7aWYoKDB8dyk+KDB8QSkpe209MTticmVhayBlfWlmKCgwfHcpPCgwfEEpKXttPTA7YnJlYWsgZX19ZWxzZXtpZigoMHx3KTwoMHxBKSl7bT0xO2JyZWFrIGV9aWYoKDB8dyk+''@;'; + put 'put ''KDB8QSkpe209MDticmVhayBlfX1pZigoMHwobT1tKzF8MCkpPj0oMHxsKSl7bT0wO2JyZWFrfX1lbHNlIG09MH13aGlsZSgwKTtyZXR1cm4gMHxtfWZ1bmN0aW9uIEckKGwsYyxmLHApe2x8PTAscHw9MDt2YXIgayxELG09MCxBPTAsdz0wO2s9MHxBcihmfD0wLGN8PTApLGY9MD09KDB8Yyk/''@;'; + put 'put ''MDpmLGZlWyhtPXArNzR8MCk+PjBdPTI1NSsoQT0wfGZlW20+PjBdKXxBLHc9KEQ9KDB8YVtwKzg+PjJdKS0oQT0wfGFbKG09cCs0fDApPj4yXSl8MCk+Pj4wPGs+Pj4wP0Q6aywoMHxEKT4wPyhnbygwfGwsMHxBLDB8dyksYVttPj4yXT1BK3csbT1rLXd8MCxsPWwrd3wwKTptPWs7ZTpkb3tp''@;'; + put 'put ''ZihtKXtmb3Iodz1wKzMyfDA7ISgwfGQkKHApfHwoQT0wfG1pWzYzJmFbdz4+Ml1dKHAsbCxtKSwoQSsxfDApPj4+MDwyKSk7KXtpZighKG09bS1BfDApKXsxMzticmVhayBlfWw9bCtBfDB9Zj0oKGstbXwwKT4+PjApLyhjPj4+MCl8MH1lbHNlIDEzfXdoaWxlKDApO3JldHVybiAwfGZ9ZnVu''@;'; + put 'put ''Y3Rpb24gWSQobCl7cmV0dXJuIDB8YVsobHw9MCkrNjA+PjJdfWZ1bmN0aW9uIGhmZSgpe3ZhciBjLG0sQSx3LGssbD0wLGY9MCxwPTAsYj0wO2s9bGUsbGU9bGUrNDh8MCx3PWsrMjR8MCxBPWsrMTZ8MCxtPWssZj0xNTM2ODYscD0yMCsobD1jPWsrMjh8MCl8MDtkb3tmZVtsPj4wXT0wfGZl''@;'; + put 'put ''W2Y+PjBdLGw9bCsxfDAsZj1mKzF8MH13aGlsZSgoMHxsKTwoMHxwKSk7Zm9yKGY9YysxM3wwLGw9MDs7KXtpZihDY2UoZiksYVttPj4yXT1jLGFbbSs0Pj4yXT0zMjk2MixhW20rOD4+Ml09Mzg0LCgwfChwPTB8dWgoMHxCOCg1LDB8bSkpKSk+LTEpe2I9NDticmVha31pZighKCgwfGwpPDk5''@;'; + put 'put ''KSl7bD0wO2JyZWFrfWw9bCsxfDB9cmV0dXJuIDQ9PSgwfGIpJiYoYVtBPj4yXT1jLHBmKDEwLDB8QSksKGw9MHx4JChwLDE1MzcwNikpfHwoYVt3Pj4yXT1wLEp1KDYsMHx3KSxsPTApKSxsZT1rLDB8bH1mdW5jdGlvbiBHaihsKXt2YXIgYz0wLGY9MCxwPTA7bHw9MCxwPTM7ZG97aWYoMz09''@;'; + put 'put ''KDB8cCkpe2lmKChmPTB8YVsoYz1sKzR8MCk+PjJdKT4+PjA8KDB8YVtsKzg+PjJdKT4+PjApe2FbYz4+Ml09ZisxLGM9MHxYdFtmPj4wXTticmVha31jPTB8cEwobCk7YnJlYWt9fXdoaWxlKDApO3JldHVybiAwfGN9ZnVuY3Rpb24gV2oobCxjKXtsfD0wO3ZhciBmPTAscD0wLG09MCxBPTAs''@;'; + put 'put ''az0wO2N8PTAsaz0zO2Rve2lmKDM9PSgwfGspKXtpZihwPTI1NSZsLCgwfChmPTI1NSZsKSkhPSgwfGZlW2MrNzU+PjBdKSYmKEE9MHxhWyhtPWMrMjB8MCk+PjJdKT4+PjA8KDB8YVtjKzE2Pj4yXSk+Pj4wKXthW20+PjJdPUErMSxmZVtBPj4wXT1wO2JyZWFrfWY9MHxQaihjLGwpfX13aGls''@;'; + put 'put ''ZSgwKTtyZXR1cm4gMHxmfWZ1bmN0aW9uIGRmZShsKXtyZXR1cm4gMHxmdW5jdGlvbiBjZmUobCl7cmV0dXJuIDB8ZnVuY3Rpb24gVyQobCl7dmFyIGM9MDtyZXR1cm4gYz0xMjgmYVsobHw9MCk+PjJdJiYoMHxhW2wrMjA+PjJdKT4+PjA+KDB8YVtsKzI4Pj4yXSk+Pj4wPzI6MSwoMHwoYz0w''@;'; + put 'put ''fG1pWzYzJmFbbCs0MD4+Ml1dKGwsMCxjKSkpPj0wJiYoYz1jLSgwfGFbbCs4Pj4yXSkrKDB8YVtsKzQ+PjJdKSsoMHxhW2wrMjA+PjJdKS0oMHxhW2wrMjg+PjJdKXwwKSwwfGN9KGx8PTApfShsfD0wKX1mdW5jdGlvbiBydyhsLGMsZixwKXt2YXIgbSxBO3JldHVybiBjfD0wLHB8PTAsZj0w''@;'; + put 'put ''fGZ1bmN0aW9uIGdmZShsLGMpe3ZhciBmLHAsQSxtPTA7cmV0dXJuIGw9KChmPTB8QXIobT02NTUzNSYoY3w9MCksQT02NTUzNSYobHw9MCkpKT4+PjE2KSsoMHxBcihtLHA9bD4+PjE2KSl8MCxjPTB8QXIobT1jPj4+MTYsQSksRG49KGw+Pj4xNikrKDB8QXIobSxwKSkrKCgoNjU1MzUmbCkr''@;'; + put 'put ''Y3wwKT4+PjE2KXwwLGwrYzw8MTZ8NjU1MzUmZnwwfShtPWx8PTAsQT1mfD0wKSxsPURuLERuPSgwfEFyKGMsQSkpKygwfEFyKHAsbSkpK2x8MCZsLDB8Zn1mdW5jdGlvbiB6bChsLGMsZixwKXtyZXR1cm4gRG49KGN8PTApKyhwfD0wKSsoKGY9KGx8PTApKyhmfD0wKT4+PjApPj4+MDxsPj4+''@;'; + put 'put ''MHwwKT4+PjAsMHxmfWZ1bmN0aW9uIFNwKGwsYyxmLHApe3JldHVybiBEbj1wPShjfD0wKS0ocHw9MCktKChmfD0wKT4+PjA+KGx8PTApPj4+MHwwKT4+PjAsMHxsLWY+Pj4wfWZ1bmN0aW9uIFUkKGwpe3ZhciBjPTA7cmV0dXJuKDB8KGM9MHxmZVtscysoMjU1JihsfD0wKSk+PjBdKSk8OD8w''@;'; + put 'put ''fGM6KDB8KGM9MHxmZVtscysobD4+OCYyNTUpPj4wXSkpPDg/Yys4fDA6KDB8KGM9MHxmZVtscysobD4+MTYmMjU1KT4+MF0pKTw4P2MrMTZ8MDoyNCsoMHxmZVtscysobD4+PjI0KT4+MF0pfDB9ZnVuY3Rpb24gUSQobCxjLGYscCxtKXttfD0wO3ZhciBBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9''@;'; + put 'put ''MCxSPTAsRz0wLEs9MCxwZT0wO2lmKEQ9bHw9MCx3PWZ8PTAsYj1HPXB8PTAsIShNPWs9Y3w9MCkpcmV0dXJuIEE9MCE9KDB8bSksYj9BPyhhW20+PjJdPTB8bCxhW20rND4+Ml09MCZjLERuPUc9MCwwfChtPTApKTooRG49Rz0wLDB8KG09MCkpOihBJiYoYVttPj4yXT0oRD4+PjApJSh3Pj4+''@;'; + put 'put ''MCksYVttKzQ+PjJdPTApLERuPUc9MCwwfChtPShEPj4+MCkvKHc+Pj4wKT4+PjApKTtBPTA9PSgwfGIpO2Rve2lmKHcpe2lmKCFBKXtpZigoQT0oMHx5ZCgwfGIpKS0oMHx5ZCgwfE0pKXwwKT4+PjA8PTMxKXt3PVI9QSsxfDAsbD1EPj4+KFI+Pj4wKSYoYz1BLTMxPj4zMSl8TTw8KGI9MzEt''@;'; + put 'put ''QXwwKSxjJj1NPj4+KFI+Pj4wKSxBPTAsYj1EPDxiO2JyZWFrfXJldHVybiBtPyhhW20+PjJdPTB8bCxhW20rND4+Ml09a3wwJmMsRG49Rz0wLDB8KG09MCkpOihEbj1HPTAsMHwobT0wKSl9aWYoKEE9dy0xfDApJnd8MCl7dz1iPTMzKygwfHlkKDB8dykpLSgwfHlkKDB8TSkpfDAsbD0oUj0z''@;'; + put 'put ''Mi1ifDApLTE+PjMxJk0+Pj4oKEs9Yi0zMnwwKT4+PjApfChNPDxSfEQ+Pj4oYj4+PjApKSYoYz1LPj4zMSksYyY9TT4+PihiPj4+MCksQT1EPDwocGU9NjQtYnwwKSYoaz1SPj4zMSksYj0oTTw8cGV8RD4+PihLPj4+MCkpJmt8RDw8UiZiLTMzPj4zMTticmVha31yZXR1cm4gMHxtJiYoYVtt''@;'; + put 'put ''Pj4yXT1BJkQsYVttKzQ+PjJdPTApLDE9PSgwfHcpPyhEbj1LPWt8MCZjLDB8KHBlPTB8bCkpOihwZT0wfFUkKDB8dyksRG49Sz1NPj4+KHBlPj4+MCl8MCwwfChwZT1NPDwzMi1wZXxEPj4+KHBlPj4+MCl8MCkpfWlmKEEpcmV0dXJuIDB8bSYmKGFbbT4+Ml09KE0+Pj4wKSUodz4+PjApLGFb''@;'; + put 'put ''bSs0Pj4yXT0wKSxEbj1LPTAsMHwoTT4+PjApLyh3Pj4+MCk+Pj4wO2lmKCFEKXJldHVybiAwfG0mJihhW20+PjJdPTAsYVttKzQ+PjJdPShNPj4+MCklKGI+Pj4wKSksRG49Sz0wLDB8KE0+Pj4wKS8oYj4+PjApPj4+MDtpZighKChBPWItMXwwKSZiKSlyZXR1cm4gMHxtJiYoYVttPj4yXT0w''@;'; + put 'put ''fGwsYVttKzQ+PjJdPUEmTXwwJmMpLEs9MCxwZT1NPj4+KCgwfFUkKDB8YikpPj4+MCksRG49SywwfHBlO2lmKChBPSgwfHlkKDB8YikpLSgwfHlkKDB8TSkpfDApPj4+MDw9MzApe3c9Yz1BKzF8MCxsPU08PChiPTMxLUF8MCl8RD4+PihjPj4+MCksYz1NPj4+KGM+Pj4wKSxBPTAsYj1EPDxi''@;'; + put 'put ''O2JyZWFrfXJldHVybiBtPyhhW20+PjJdPTB8bCxhW20rND4+Ml09a3wwJmMsRG49Sz0wLDB8KHBlPTApKTooRG49Sz0wLDB8KHBlPTApKX13aGlsZSgwKTtpZih3KXtNPTB8emwoMHwoUj0wfGYpLDB8KEQ9R3wwJnApLC0xLC0xKSxmPURuLGs9YixiPTA7ZG97cD1rLGs9QT4+PjMxfGs8PDEs''@;'; + put 'put ''QT1ifEE8PDEsU3AoMHxNLDB8ZiwwfChwPWw8PDF8cD4+PjMxfDApLDB8KEc9bD4+PjMxfGM8PDF8MCkpLGI9MSYoSz0ocGU9RG4pPj4zMXwoKDB8cGUpPDA/LTE6MCk8PDEpLGw9MHxTcCgwfHAsMHxHLEsmUnwwLCgoKDB8cGUpPDA/LTE6MCk+PjMxfCgoMHxwZSk8MD8tMTowKTw8MSkmRHww''@;'; + put 'put ''KSxjPURuLHc9dy0xfDB9d2hpbGUoMCE9KDB8dykpO009ayxrPTB9ZWxzZSBNPWIsaz0wLGI9MDtyZXR1cm4gdz0wLDB8bSYmKGFbbT4+Ml09bCxhW20rND4+Ml09YyksRG49Sz0oMHxBKT4+PjMxfChNfHcpPDwxfDAmKHc8PDF8QT4+PjMxKXxrLC0yJihBPDwxfDApfGJ8MH1mdW5jdGlvbiBp''@;'; + put 'put ''dyhsLGMsZixwKXtyZXR1cm4gMHxRJChsfD0wLGN8PTAsZnw9MCxwfD0wLDApfWZ1bmN0aW9uIGlTKGwsYyxmLHApe3ZhciBtLEE7cmV0dXJuIEE9bGUsbGU9bGUrMTZ8MCxRJChsfD0wLGN8PTAsZnw9MCxwfD0wLG09MHxBKSxsZT1BLERuPTB8YVttKzQ+PjJdLDB8YVttPj4yXX1mdW5jdGlv''@;'; + put 'put ''biBJTChsLGMsZil7cmV0dXJuIGN8PTAsKDB8KGZ8PTApKTwzMj8oRG49Yz4+ZiwobHw9MCk+Pj5mfChjJigxPDxmKS0xKTw8MzItZik6KERuPSgwfGMpPDA/LTE6MCxjPj5mLTMyfDApfWZ1bmN0aW9uIHdsKGwsYyxmKXtyZXR1cm4gY3w9MCwoMHwoZnw9MCkpPDMyPyhEbj1jPj4+ZiwobHw9''@;'; + put 'put ''MCk+Pj5mfChjJigxPDxmKS0xKTw8MzItZik6KERuPTAsYz4+PmYtMzJ8MCl9ZnVuY3Rpb24gWm8obCxjLGYpe3JldHVybiBsfD0wLCgwfChmfD0wKSk8MzI/KERuPShjfD0wKTw8ZnwobCYoMTw8ZiktMTw8MzItZik+Pj4zMi1mLGw8PGYpOihEbj1sPDxmLTMyLDApfWZ1bmN0aW9uIG1mZShs''@;'; + put 'put ''KXtyZXR1cm4oMjU1JihsfD0wKSk8PDh8bD4+OCYyNTV8MH1mdW5jdGlvbiBJcyhsKXtyZXR1cm4oMjU1JihsfD0wKSk8PDI0fChsPj44JjI1NSk8PDE2fChsPj4xNiYyNTUpPDw4fGw+Pj4yNHwwfWZ1bmN0aW9uIFBmKGwsYyxmLHApe2N8PTAsZnw9MCxwfD0wO3ZhciBtPTA7Zm9yKGFbKGx8''@;'; + put 'put ''PTApPj4yXT1pMj1pMisxfDA7KDB8bSk8KDB8cCk7KXtpZighKDB8YVtmKyhtPDwzKT4+Ml0pKXJldHVybiBhW2YrKG08PDMpPj4yXT1pMixhW2YrKDQrKG08PDMpKT4+Ml09YyxhW2YrKDgrKG08PDMpKT4+Ml09MCxEbj1wLDB8ZjttPW0rMXwwfXJldHVybiBmPTB8UGYoMHxsLDB8YywwfChm''@;'; + put 'put ''PTB8VWEoMHxmLDgqKDErKHA9MipwfDApfDApfDApKSwwfHApLERuPXAsMHxmfWZ1bmN0aW9uIGdpKGwsYyxmKXtsfD0wLGN8PTAsZnw9MDtmb3IodmFyIHA9MCxtPTA7KDB8bSk8KDB8ZikmJihwPTB8YVtjKyhtPDwzKT4+Ml0pOyl7aWYoKDB8cCk9PSgwfGwpKXJldHVybiAwfGFbYysoNCso''@;'; + put 'put ''bTw8MykpPj4yXTttPW0rMXwwfXJldHVybiAwfWZ1bmN0aW9uIGdvKGwsYyxmKXtsfD0wLGN8PTA7dmFyIG0sQSxwPTA7aWYoKDB8KGZ8PTApKT49ODE5MilyZXR1cm4gMHxubSgwfGwsMHxjLDB8Zik7aWYoQT0wfGwsbT1sK2Z8MCwoMyZsKT09KDMmYykpe2Zvcig7MyZsOyl7aWYoIWYpcmV0''@;'; + put 'put ''dXJuIDB8QTtmZVtsPj4wXT0wfGZlW2M+PjBdLGw9bCsxfDAsYz1jKzF8MCxmPWYtMXwwfWZvcihwPShmPS00Jm18MCktNjR8MDsoMHxsKTw9KDB8cCk7KWFbbD4+Ml09YVtjPj4yXSxhW2wrND4+Ml09YVtjKzQ+PjJdLGFbbCs4Pj4yXT1hW2MrOD4+Ml0sYVtsKzEyPj4yXT1hW2MrMTI+PjJd''@;'; + put 'put ''LGFbbCsxNj4+Ml09YVtjKzE2Pj4yXSxhW2wrMjA+PjJdPWFbYysyMD4+Ml0sYVtsKzI0Pj4yXT1hW2MrMjQ+PjJdLGFbbCsyOD4+Ml09YVtjKzI4Pj4yXSxhW2wrMzI+PjJdPWFbYyszMj4+Ml0sYVtsKzM2Pj4yXT1hW2MrMzY+PjJdLGFbbCs0MD4+Ml09YVtjKzQwPj4yXSxhW2wrNDQ+PjJd''@;'; + put 'put ''PWFbYys0ND4+Ml0sYVtsKzQ4Pj4yXT1hW2MrNDg+PjJdLGFbbCs1Mj4+Ml09YVtjKzUyPj4yXSxhW2wrNTY+PjJdPWFbYys1Nj4+Ml0sYVtsKzYwPj4yXT1hW2MrNjA+PjJdLGw9bCs2NHwwLGM9Yys2NHwwO2Zvcig7KDB8bCk8KDB8Zik7KWFbbD4+Ml09YVtjPj4yXSxsPWwrNHwwLGM9Yys0''@;'; + put 'put ''fDB9ZWxzZSBmb3IoZj1tLTR8MDsoMHxsKTwoMHxmKTspZmVbbD4+MF09MHxmZVtjPj4wXSxmZVtsKzE+PjBdPTB8ZmVbYysxPj4wXSxmZVtsKzI+PjBdPTB8ZmVbYysyPj4wXSxmZVtsKzM+PjBdPTB8ZmVbYyszPj4wXSxsPWwrNHwwLGM9Yys0fDA7Zm9yKDsoMHxsKTwoMHxtKTspZmVbbD4+''@;'; + put 'put ''MF09MHxmZVtjPj4wXSxsPWwrMXwwLGM9YysxfDA7cmV0dXJuIDB8QX1mdW5jdGlvbiByMShsLGMsZil7dmFyIHA9MDtpZigoMHwoY3w9MCkpPCgwfChsfD0wKSkmKDB8bCk8KGMrKGZ8PTApfDApKXtmb3IocD1sLGM9YytmfDAsbD1sK2Z8MDsoMHxmKT4wOylmPWYtMXwwLGZlWyhsPWwtMXww''@;'; + put 'put ''KT4+MF09MHxmZVsoYz1jLTF8MCk+PjBdO2w9cH1lbHNlIGdvKGwsYyxmKTtyZXR1cm4gMHxsfWZ1bmN0aW9uIHUyKGwsYyxmKXtjfD0wO3ZhciBBLHA9MCxtPTAsdz0wO2lmKEE9KGx8PTApKyhmfD0wKXwwLGMmPTI1NSwoMHxmKT49Njcpe2Zvcig7MyZsOylmZVtsPj4wXT1jLGw9bCsxfDA7''@;'; + put 'put ''Zm9yKG09KHA9LTQmQXwwKS02NHwwLHc9Y3xjPDw4fGM8PDE2fGM8PDI0OygwfGwpPD0oMHxtKTspYVtsPj4yXT13LGFbbCs0Pj4yXT13LGFbbCs4Pj4yXT13LGFbbCsxMj4+Ml09dyxhW2wrMTY+PjJdPXcsYVtsKzIwPj4yXT13LGFbbCsyND4+Ml09dyxhW2wrMjg+PjJdPXcsYVtsKzMyPj4y''@;'; + put 'put ''XT13LGFbbCszNj4+Ml09dyxhW2wrNDA+PjJdPXcsYVtsKzQ0Pj4yXT13LGFbbCs0OD4+Ml09dyxhW2wrNTI+PjJdPXcsYVtsKzU2Pj4yXT13LGFbbCs2MD4+Ml09dyxsPWwrNjR8MDtmb3IoOygwfGwpPCgwfHApOylhW2w+PjJdPXcsbD1sKzR8MH1mb3IoOygwfGwpPCgwfEEpOylmZVtsPj4w''@;'; + put 'put ''XT1jLGw9bCsxfDA7cmV0dXJuIEEtZnwwfWZ1bmN0aW9uIHkyKGwpe3ZhciBjLGY7cmV0dXJuKDB8KGY9MTUrKGx8PTApJi0xNnwwKSk+MCYoMHwobD0oYz0wfGFbQW8+PjJdKStmfDApKTwoMHxjKXwoMHxsKTwwPyhmZigpLHFwKDEyKSwtMSk6KGFbQW8+PjJdPWwsKDB8bCk+KDB8S3AoKSkm''@;'; + put 'put ''JjA9PSgwfHdkKCkpPyhhW0FvPj4yXT1jLHFwKDEyKSwtMSk6MHxjKX1mdW5jdGlvbiBRaihsLGMsZil7cmV0dXJuIGw9K2wsYz0rYyxmPStmLHcyKDEpLDB9ZnVuY3Rpb24gYzIobCl7cmV0dXJuIHcyKDQpLDB9ZnVuY3Rpb24gSzEobCxjKXtyZXR1cm4gdzIoNSksMH1mdW5jdGlvbiBMTChs''@;'; + put 'put ''LGMsZixwKXtyZXR1cm4gZj0rZixwPStwLHcyKDYpLDB9ZnVuY3Rpb24gTTIobCxjLGYpe3JldHVybiB3Mig3KSwwfWZ1bmN0aW9uIHBhKGwsYyxmLHApe3JldHVybiB3Mig4KSwwfWZ1bmN0aW9uIEpvKGwsYyxmLHAsbSl7cmV0dXJuIHcyKDkpLDB9ZnVuY3Rpb24gSmoobCxjLGYscCxtLEEs''@;'; + put 'put ''dyxiLGssTSl7cmV0dXJuIHcyKDExKSwwfWZ1bmN0aW9uIGZ2KCl7dzIoMTIpfWZ1bmN0aW9uIGY4KGwpe3cyKDEzKX1mdW5jdGlvbiBEcyhsLGMpe3cyKDE0KX1mdW5jdGlvbiBNMChsLGMsZil7dzIoMTUpfWZ1bmN0aW9uIGZjKGwsYyxmLHAsbSxBKXtwPStwLG09K20sdzIoMTYpfWZ1bmN0''@;'; + put 'put ''aW9uIE1wKGwsYyxmLHAsbSl7dzIoMTgpfWZ1bmN0aW9uIGx3KGwsYyxmLHAsbSxBKXt3MigxOSl9dmFyIGg4PVtmdW5jdGlvbiBlcSgpe3JldHVybiB3MigwKSwwfSxmdW5jdGlvbiBhRCgpe3ZhciBsLGM7cmV0dXJuIGM9bGUsbGU9bGUrMTZ8MCxSbigwfChsPWMpKSxsZT1jLC4wMTY2NjY2''@;'; + put 'put ''NjY2NjY2NjY2NjYqKygoMHxhW2wrND4+Ml0pKygwfGFbbD4+Ml0pLSgwfGFbNDczMTFdKS0oMHxhWzQ3MzEyXSl8MCl9XSxzdz1bUWosZnVuY3Rpb24gWFUobCxjLGYpe3JldHVybiBsPStsLGM9K2MsLjUqK2Z9LGZ1bmN0aW9uIEpVKGwsYyxmKXtyZXR1cm4uNSooZj0rZikqKDEtKGw9K2wp''@;'; + put 'put ''LytjKX0sZnVuY3Rpb24gS1UobCxjLGYpe3JldHVybi41KihmPStmKSooKGw9K2wpLytjKX0sZnVuY3Rpb24gU29lKGwsYyxmKXtyZXR1cm4rKChjPShsPStsKS8oYz0rYykpPD0uNT9jOjEtYykqK2Z9LFFqLFFqLFFqXSxycT1bZnVuY3Rpb24gdHEobCl7cmV0dXJuIHcyKDIpLDB9LF9OXSwk''@;'; + put 'put ''MT1bZnVuY3Rpb24gbnEoKXtyZXR1cm4gdzIoMyksMH0sZnVuY3Rpb24gZDJlKCl7dmFyIGw9MDtyZXR1cm4obD0wfGFbNDY4NDddKT4+PjA8KDB8YVs0Njg0OF0pPj4+MD8oYVs0Njg0N109bCs0LGw9MHxhW2w+PjJdKTpsPTAsMHxsfSxmdW5jdGlvbiBLb2UoKXt2YXIgYixrLE0sbD0wLGM9''@;'; + put 'put ''MCxmPTAscD0wLG09MCxBPTAsdz0wO2ZvcihtPTB8YVs0NzI1NV0saz0wfGFbNDcyNTZdLE09MHxhWzQ3MjExXSxjPTAsbD0wLEE9Yj0wfGFbNDcyNjFdOzspe2lmKCgwfEEpPj0oMHxtKSl7dz04O2JyZWFrfWlmKCgwfChmPTB8YVsxNjArKDB8YVsxNisocD0wfGFbaysoQTw8Mik+PjJdKT4+''@;'; + put 'put ''Ml0pPj4yXSkpPDAmJihsPWw/KDB8YVsxNjArKDB8YVtsKzE2Pj4yXSk+PjJdKT4oMHxmKT9wOmw6cCwoMHwoYz1jKzF8MCkpPj0oMHxNKSkpYnJlYWs7YVs0NzI2MV09cD1BKzF8MCxBPXB9aWYoOD09KDB8dykmJigwfGIpPjApe2ZvcihtPTA7ISgoMHxtKT49KDB8Yil8fChmPTB8YVtrKyht''@;'; + put 'put ''PDwyKT4+Ml0scD0wfGFbMTYwKygwfGFbZisxNj4+Ml0pPj4yXSwoMHxwKTwwJiYobD1sPygwfGFbMTYwKygwfGFbbCsxNj4+Ml0pPj4yXSk+KDB8cCk/ZjpsOmYsYz1jKzF8MCwoMHxjKT49KDB8TSkpKSk7KW09bSsxfDA7YVs0NzI2MV09bX1yZXR1cm4gMHxsfSx4N10sX289W2MyLGZ1bmN0''@;'; + put 'put ''aW9uIEEwZShsKXtsfD0wO2Zvcih2YXIgZixwLGM9MDtjPTB8YVsxMTYrKDB8YVtsKzE2Pj4yXSk+PjJdOylsPWM7cmV0dXJuIDB8KCgwfChwPTB8YVsyMzIrKGY9MHxhWzE2KygwfGFbKDI9PSgwfChjPTMmYVtsPj4yXSkpP2w6bCstNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSkpPD0oMHwoYz0w''@;'; + put 'put ''fGFbMjMyKyhsPTB8YVsxNisoMHxhWygzPT0oMHxjKT9sOmwrNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSkpPygwfHApPCgwfGMpPzE6KDB8YVtmKzIzNj4+Ml0pPCgwfGFbbCsyMzY+PjJdKSYxOjApfSxXQyxmdW5jdGlvbiB6TihsKXtyZXR1cm4gMH0sZnVuY3Rpb24gUkoobCl7cmV0dXJuIDB9''@;'; + put 'put ''LGZ1bmN0aW9uIFgobCl7cmV0dXJuIDB8Q0wobHw9MCl9LGZ1bmN0aW9uIEZlKGwpe3JldHVybiAwfSxmdW5jdGlvbiBOTShsKXtyZXR1cm4gMH0sZnVuY3Rpb24gZ1IobCl7cmV0dXJuIDB9LGZ1bmN0aW9uIG5FKGwpe3JldHVybiAxfSxmdW5jdGlvbiB2ZihsKXt2YXIgYztyZXR1cm4gZmVb''@;'; + put 'put ''NTM2KyhsfD0wKT4+MF09MCxfWyhjPWwrMzM2fDApPj4zXT0rX1tjPj4zXSsxMC8rX1tsKzM1Mj4+M10sZmVbbCs1Mzc+PjBdPTEsMH0sZnVuY3Rpb24gckUobCl7dmFyIGM7cmV0dXJuIGZlWzUzNisobHw9MCk+PjBdPTAsX1soYz1sKzMzNnwwKT4+M109K19bYz4+M10tMTAvK19bbCszNTI+''@;'; + put 'put ''PjNdLGZlW2wrNTM3Pj4wXT0xLDB9LGZ1bmN0aW9uIHczKGwpe3ZhciBjO3JldHVybiBmZVs1MzYrKGx8PTApPj4wXT0wLF9bKGM9bCszNDR8MCk+PjNdPStfW2M+PjNdLTEwLytfW2wrMzUyPj4zXSxmZVtsKzUzNz4+MF09MSwwfSxmdW5jdGlvbiBwbShsKXt2YXIgYztyZXR1cm4gZmVbNTM2''@;'; + put 'put ''KyhsfD0wKT4+MF09MCxfWyhjPWwrMzQ0fDApPj4zXT0rX1tjPj4zXSsxMC8rX1tsKzM1Mj4+M10sZmVbbCs1Mzc+PjBdPTEsMH0sZnVuY3Rpb24gaUUobCl7dmFyIGM7cmV0dXJuIGZlWzUzNisobHw9MCk+PjBdPTAsX1soYz1sKzM1MnwwKT4+M109MS4xKitfW2M+PjNdLGZlW2wrNTM3Pj4w''@;'; + put 'put ''XT0xLDB9LGZ1bmN0aW9uIG9FKGwpe3ZhciBjO3JldHVybiBmZVs1MzYrKGx8PTApPj4wXT0wLF9bKGM9bCszNTJ8MCk+PjNdPS45MDkwOTA5MDkwOTA5MDkxKitfW2M+PjNdLGZlW2wrNTM3Pj4wXT0xLDB9LGZ1bmN0aW9uIGFFKGwpe3ZhciBjPTAsZj0wLHA9MCxtPTAsQT0wO3JldHVybiBm''@;'; + put 'put ''ZVsoZj01MzYrKGx8PTApfDApPj4wXT0xJihjPTA9PSgwfGZlW2Y+PjBdKSksYyYmKF9bbCszNTI+PjNdPSgocD0oQT0rKChjPTB8YVtsKzQ0OD4+Ml0pPj4+MCkpLysoMHxjKTwobT0rKChmPTB8YVtsKzQ1Mj4+Ml0pPj4+MCkpLysoMHxmKSk/QTptKS8rKDB8KHA/YzpmKSksYVsoZj1sKzMz''@;'; + put 'put ''NnwwKT4+Ml09MCxhW2YrND4+Ml09MCxhW2YrOD4+Ml09MCxhW2YrMTI+PjJdPTAsZmVbbCs1Mzc+PjBdPTEpLDB9LGZ1bmN0aW9uIHlBZShsKXt2YXIgYyxmO3JldHVybiBjPWxlLGxlPWxlKzE2fDAsYVsoZj1jKT4+Ml09MHx0JCgwfGFbNjArKGx8PTApPj4yXSksbD0wfHVoKDB8SnUoNiww''@;'; + put 'put ''fGYpKSxsZT1jLDB8bH0sZnVuY3Rpb24gRXMobCl7cmV0dXJuIGFbNDY2NTRdPWx8PTAsMH0saUYsUlUsUFUsWU4sUW4sR28sRHQsQzEsZnVuY3Rpb24gUW9lKGwpe3ZhciBjPTAsZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wO2ZvcihhWzQ3MjU0XT1sfD0wLGFbNDcyNjFdPTAsYVs0NzI1''@;'; + put 'put ''Ml09MCxhWzQ3MjUxXT0wLGw9MTkyKygwfGFbKEE9bCsxNnwwKT4+Ml0pfDAsbT0wLGY9MDtsPTB8YVtsPj4yXTspe2ZvcihmZVsxNTcrKHA9MHxhW2wrMTY+PjJdKT4+MF09MCxhWzQ3MjUxXT1tPW0rMXwwLGM9MHxhW3ArMTgwPj4yXSxsPTA7MHxhW2MrKGw8PDIpPj4yXTspYVs0NzI1Ml09''@;'; + put 'put ''Yj1mKzF8MCxsPWwrMXwwLGY9YjtsPXArMTY0fDB9Zm9yKGw9KGw9MHxhWzQ3MjYyXSk/MHxWMChsLG08PDIpOjB8UW4obTw8MiksYVs0NzI2Ml09bCxhWzQ3MjYzXT0wLGw9KGw9MHxhWzQ3MjU2XSk/MHxWMChsLGFbNDcyNTFdPDwyKTowfFFuKGFbNDcyNTFdPDwyKSxhWzQ3MjU2XT1sLGFb''@;'; + put 'put ''NDcyNTVdPTAsYz0xLGw9MTkyKygwfGFbQT4+Ml0pfDA7bD0wfGFbbD4+Ml07KXtmb3IoYVsodz0yOTIrKEE9MHxhWyhiPWwrMTZ8MCk+PjJdKXwwKT4+Ml09MCxBPTB8YVtBKzE3Mj4+Ml0sbT1jLHA9MCxsPTA7Yz0wfGFbQSsocDw8Mik+PjJdOylhW3c+PjJdPWY9bCsxfDAsYVsxNjArKGw9''@;'; + put 'put ''MHxhW2MrMTY+PjJdKT4+Ml09MCxhW2wrMTY0Pj4yXT0tMSxtPWw9bT8oKDB8YVsyMzIrKDB8YVsxNisoMHxhWygyPT0oMHwoaz0zJmFbYz4+Ml0pKT9jOmMrLTQ4fDApKzQwPj4yXSk+PjJdKT4+Ml0pLSgwfGFbMjMyKygwfGFbMTYrKDB8YVsoMz09KDB8ayk/YzpjKzQ4fDApKzQwPj4yXSk+''@;'; + put 'put ''PjJdKT4+Ml0pfDApPCgwfGhyW2wrMTcwPj4xXSk/MDptOjAscD1wKzF8MCxsPWY7bD0wfHZyKDQrKHA8PDIpfDApLGFbMjY0KyhjPTB8YVtiPj4yXSk+PjJdPWwsYVtjKzI2OD4+Ml09MCxjPTB8YVtjKzE4MD4+Ml0sbD0wO2Rve2s9bCxsPWwrMXwwfXdoaWxlKDAhPSgwfGFbYysoazw8Mik+''@;'; + put 'put ''PjJdKSk7Yz0wfHZyKGw8PDIpLGFbMjcyKyhsPTB8YVtiPj4yXSk+PjJdPWMsYVtsKzI3Nj4+Ml09MCxjPW0sbD1sKzE2NHwwfXJldHVybiAwfGN9LEdILFYzLGZ1bmN0aW9uIGRhKGwpe3ZhciBjLGYscCxtO3JldHVybiAwfH5+KChmPStfWzI0KyhwPTB8YVsxNisoMHxhWygzPT0oMHwobT0z''@;'; + put 'put ''JmFbKGx8PTApPj4yXSkpP2w6bCs0OHwwKSs0MD4+Ml0pPj4yXSk+PjNdLStfWzI0KyhsPTB8YVsxNisoMHxhWygyPT0oMHxtKT9sOmwrLTQ4fDApKzQwPj4yXSk+PjJdKT4+M10pKmYrKGM9K19bcCsxNj4+M10tK19bbCsxNj4+M10pKmMpfSx2cixmdW5jdGlvbiBXYyhsKXtsfD0wO3ZhciBi''@;'; + put 'put ''LGssYz0wLGY9MCxwPTAsbT0wLEE9MCx3PTA7Zm9yKGI9MHxpcygyNTY5MiwwfGFbNDU4MV0pLGs9bCs4fDAsdz0wOyEoKDB8dyk+PSgwfGFbbD4+Ml0pKTspe2lmKCEoNCZhWyhjPSgwfGFbaz4+Ml0pKyg3Mip3fDApfDApPj4yXSkpe2Zvcig7KGY9MHxhWzgrKDB8YVtjKzM2Pj4yXSk+PjJd''@;'; + put 'put ''KSYmKGY9MHxhW2YrMjA+PjJdKSYmISgxJmFbZj4+Ml0pOyljPWY7Zm9yKEE9MHx2cig0MCksYVtBKzM2Pj4yXT1jLF9bQSs4Pj4zXT0rX1tjKzQwPj4zXSxtPWMsZj0wfGFbYz4+Ml07YVttPj4yXT00fGYsKGY9MHxhW2FbbSszNj4+Ml0+PjJdKSYmKHA9MHxhW2YrMjQ+PjJdKSYmISgxJihm''@;'; + put 'put ''PTB8YVtwPj4yXSl8MCk7KW09cDtfW0ErMTY+PjNdPStfW20rNTY+PjNdLHpNKGIsQSwrX1tjKzQ4Pj4zXSl9dz13KzF8MH1yZXR1cm4gMHxifSxmdW5jdGlvbiBybShsKXtsfD0wO3ZhciBiLGssYz0wLGY9MCxwPTAsbT0wLEE9MCx3PTA7Zm9yKGI9MHxpcygyNTY5MiwwfGFbNDU4MV0pLGs9''@;'; + put 'put ''bCs4fDAsdz0wOyEoKDB8dyk+PSgwfGFbbD4+Ml0pKTspe2lmKCEoMiZhWyhjPSgwfGFbaz4+Ml0pKyg3Mip3fDApfDApPj4yXSkpe2Zvcig7KGY9MHxhWzEyKygwfGFbYyszNj4+Ml0pPj4yXSkmJihmPTB8YVtmKzIwPj4yXSkmJiEoMSZhW2Y+PjJdKTspYz1mO2ZvcihBPTB8dnIoNDApLGFb''@;'; + put 'put ''QSszNj4+Ml09YyxfW0ErOD4+M109K19bYys0OD4+M10sbT1jLGY9MHxhW2M+PjJdO2FbbT4+Ml09MnxmLChmPTB8YVs0KygwfGFbbSszNj4+Ml0pPj4yXSkmJihwPTB8YVtmKzI0Pj4yXSkmJiEoMSYoZj0wfGFbcD4+Ml0pfDApOyltPXA7X1tBKzE2Pj4zXT0rX1ttKzY0Pj4zXSx6TShiLEEs''@;'; + put 'put ''K19bYys0MD4+M10pfXc9dysxfDB9cmV0dXJuIDB8Yn0sZnVuY3Rpb24gbngobCl7bHw9MDt2YXIgbSxBLGM9MCxmPTAscD0wO2ZvcihtPTB8YVs0NzUwOV0sQT0wfGFbNDc1MDVdLGM9MHxhWzQ3NTA3XTs7KXtpZigoMHxjKT49KDB8bSkpe3A9NDticmVha31pZigxPT0oMHxKZigwfGFbYVtB''@;'; + put 'put ''KygoZj1jKzF8MCk8PDIpPj4yXT4+Ml0sMHxhW2FbQSsoYzw8Mik+PjJdPj4yXSwwfGFbbD4+Ml0pKSlicmVhaztjPWZ9ZTpkb3tpZig0PT0oMHxwKSlmb3IoYz0wfGFbNDc1MDhdOzspe2lmKCgwfGMpPD0oMHxtKSl7Yz1tO2JyZWFrIGV9aWYoMj09KDB8SmYoMHxhW2FbQSsoKGY9YystMXww''@;'; + put 'put ''KTw8Mik+PjJdPj4yXSwwfGFbYVtBKyhjPDwyKT4+Ml0+PjJdLDB8YVtsPj4yXSkpKWJyZWFrO2M9Zn19d2hpbGUoMCk7cmV0dXJuIDB8Y30sQjAsYzIsYzIsYzIsYzIsYzIsYzIsYzIsYzIsYzIsYzIsYzIsYzIsYzIsYzIsYzIsYzIsYzIsYzIsYzIsYzIsYzIsYzIsYzIsYzIsYzIsYzIsYzIs''@;'; + put 'put ''YzJdLEJpPVtLMSxmdW5jdGlvbiBqMyhsLGMpe3JldHVybiAwfGx9LGZ1bmN0aW9uIHJlKGwsYyl7cmV0dXJuIDB8X3UoY3w9MCxsfD0wKX0sZnVuY3Rpb24gWmUobCxjKXtyZXR1cm4gbHw9MCx1MigwfChsPTB8QjAoY3w9MCkpLDAsMHxjKSwwfGx9LG9KLGNOLGZ1bmN0aW9uIEthZShsLGMp''@;'; + put 'put ''e2N8PTA7dmFyIGssTSxELG09MCxBPTAsdz0wLGI9MDtyZXR1cm4gaz1sZSxsZT1sZSszMnwwLE09aysxNnwwLHc9ayxtPTB8YVs0KyhsfD0wKT4+Ml0sQT05MCooMyZhWzExNisoMHxhWzE2KygwfGNyKGw9MHxhW2w+PjJdKSk+PjJdKT4+Ml0pfDAsYVtNPj4yXT1hW2M+PjJdLGFbTSs0Pj4y''@;'; + put 'put ''XT1hW2MrND4+Ml0sYVtNKzg+PjJdPWFbYys4Pj4yXSxhW00rMTI+PjJdPWFbYysxMj4+Ml0sVTYodyxNLEEpLGFbYz4+Ml09YVt3Pj4yXSxhW2MrND4+Ml09YVt3KzQ+PjJdLGFbYys4Pj4yXT1hW3crOD4+Ml0sYVtjKzEyPj4yXT1hW3crMTI+PjJdLG0/KEE9bSxsPW0rOHwwLHc9bSsxNnww''@;'; + put 'put ''LG09bSsyNHwwKTooQT0xNisobT0wfGFbMTIrKDB8YVtsKzE2Pj4yXSk+PjJdKXwwLGw9bSsyNHwwLHc9bSszMnwwLG09bSs0MHwwKSxsPStfW0E+PjNdPD0oRD0rX1tjPj4zXSkmJkQ8PStfW3c+PjNdJiYrX1tsPj4zXTw9KGI9K19bYys4Pj4zXSk/Yjw9K19bbT4+M10mMTowLGxlPWssMHxs''@;'; + put 'put ''fSxmdW5jdGlvbiB0SihsLGMpe3ZhciBmLHAsbSxBLHcsYixrO3JldHVybiBjfD0wLHA9bGUsbGU9bGUrMzJ8MCxrPXArMTZ8MCx3PXAsYj05MCooMyZhWzExNisoMHxhWzE2KygwfGNyKGw9MHxhWyhsfD0wKT4+Ml0pKT4+Ml0pPj4yXSl8MCxhW2s+PjJdPWFbYz4+Ml0sYVtrKzQ+PjJdPWFb''@;'; + put 'put ''Yys0Pj4yXSxhW2srOD4+Ml09YVtjKzg+PjJdLGFbaysxMj4+Ml09YVtjKzEyPj4yXSxVNih3LGssYiksZj0rX1t3Pj4zXSxsZT1wLDB8KCEoISgoQT0rX1t3Kzg+PjNdKT49LShtPS41KitfWzgwKyhsPTB8YVtsKzE2Pj4yXSk+PjNdKSl8IShBPD1tKSkmJmY+PS0rX1tsKzg4Pj4zXT9mPD0r''@;'; + put 'put ''X1tsKzk2Pj4zXSYxOjApfSxLUSxmdW5jdGlvbiBTQihsLGMpe3JldHVybiBhWzM2KyhsfD0wKT4+Ml09MHxyYShjfD0wKSwwfSxmdW5jdGlvbiBxYihsLGMpe3JldHVybiBhWzMyKyhsfD0wKT4+Ml09MHxyYShjfD0wKSwwfSxmdW5jdGlvbiBlXyhsLGMpe2x8PTA7dmFyIHAsbSx3LGY9MCxB''@;'; + put 'put ''PTA7c3dpdGNoKHc9bGUsbGU9bGUrMTZ8MCxtPXcsMHwocD0oMHxhdigwfGZlWyhjfD0wKT4+MF0pKTw8MjQ+PjI0KSl7Y2FzZSA4MjowfHkwKGY9YysxfDAsMTQwNzYzKT9BPTU6KGFbbD4+Ml09MTE0LGY9MCk7YnJlYWs7Y2FzZSA3NjpBPTY7YnJlYWs7ZGVmYXVsdDpmPWMrMXwwLEE9NX1k''@;'; + put 'put ''b3tpZig1PT0oMHxBKSlpZigwfHkwKGYsMTQwNzY4KSl7aWYoNjchPSgwfHApJiYwPT0oMHx5MChmLDE0MDc3MikpKXthW20+PjJdPWMsJHIoMCwxNDA3NzgsbSksZj0xO2JyZWFrfWFbbD4+Ml09MTEwLGY9MH1lbHNlIEE9Nn13aGlsZSgwKTtyZXR1cm4gNj09KDB8QSkmJihhW2w+PjJdPTEw''@;'; + put 'put ''OCxmPTApLGxlPXcsMHxmfSxmdW5jdGlvbiBNQihsLGMpe3JldHVybiBhWzQrKGx8PTApPj4yXT1jfD0wLDB9LGZ1bmN0aW9uIHNHKGwsYyl7cmV0dXJuIGFbKGx8PTApPj4yXT1jfD0wLDB9LGZ1bmN0aW9uIHVHKGwsYyl7dmFyIGYscDtyZXR1cm4gbHw9MCxwPWxlLGxlPWxlKzE2fDAsMHxE''@;'; + put 'put ''ZChjfD0wLDE0MDg0NSwwLDI1NSxmPXApP2w9MTooX1tsKzE2Pj4zXT0rKDB8YVtmPj4yXSksbD0wKSxsZT1wLDB8bH0sZnVuY3Rpb24gRUIobCxjKXtsfD0wO3ZhciBmLG0scD0wO3N3aXRjaChtPWxlLGxlPWxlKzE2fDAsZj1tLCgwfGF2KDB8ZmVbKGN8PTApPj4wXSkpPDwyND4+MjR8MCl7''@;'; + put 'put ''Y2FzZSA3NjowfHkwKGMrMXwwLDE0MDc2OCk/cD05OihpdFsobD1sKzM2fDApPj4xXT00fGl0W2w+PjFdLGw9MCk7YnJlYWs7Y2FzZSA4MjowfHkwKGMrMXwwLDE0MDc2Myk/cD05OihpdFsobD1sKzM2fDApPj4xXT0yfGl0W2w+PjFdLGw9MCk7YnJlYWs7Y2FzZSA4NDowfHkwKGMrMXwwLDE0''@;'; + put 'put ''MTU2Myk/cD05OihpdFsobD1sKzM2fDApPj4xXT02fGl0W2w+PjFdLGw9MCk7YnJlYWs7Y2FzZSA2NzowfHkwKGMrMXwwLDE0MDc3Mik/cD05Omw9MDticmVhaztkZWZhdWx0OnA9OX1yZXR1cm4gOT09KDB8cCkmJihhW2Y+PjJdPWMsJHIoMCwxNDE1NjcsZiksbD0xKSxsZT1tLDB8bH0sZnVu''@;'; + put 'put ''Y3Rpb24gVUUobCxjKXtsfD0wO3ZhciBmLG0scD0wO3N3aXRjaChtPWxlLGxlPWxlKzE2fDAsZj1tLCgwfGF2KDB8ZmVbKGN8PTApPj4wXSkpPDwyND4+MjR8MCl7Y2FzZSA3NjowfHkwKGMrMXwwLDE0MDc2OCk/cD03OihpdFsobD1sKzM2fDApPj4xXT01MTJ8aXRbbD4+MV0sbD0wKTticmVh''@;'; + put 'put ''aztjYXNlIDgyOjB8eTAoYysxfDAsMTQwNzYzKT9wPTc6KGl0WyhsPWwrMzZ8MCk+PjFdPTI1NnxpdFtsPj4xXSxsPTApO2JyZWFrO2Nhc2UgNjc6MHx5MChjKzF8MCwxNDA3NzIpP3A9NzpsPTA7YnJlYWs7ZGVmYXVsdDpwPTd9cmV0dXJuIDc9PSgwfHApJiYoYVtmPj4yXT1jLCRyKDAsMTQx''@;'; + put 'put ''NTE4LGYpLGw9MSksbGU9bSwwfGx9LGZ1bmN0aW9uIGNHKGwsYyl7cmV0dXJuIGFbMjArKGx8PTApPj4yXT0wfHJhKGN8PTApLDB9LGZ1bmN0aW9uIHhCKGwsYyl7dmFyIGYscDtyZXR1cm4gbHw9MCxwPWxlLGxlPWxlKzE2fDAsMHxEZChjfD0wLDE0MTUxMSwwLDI1NSxmPXApP2w9MTooZmVb''@;'; + put 'put ''bCszMz4+MF09YVtmPj4yXSxpdFsobD1sKzM2fDApPj4xXT0zMnxpdFtsPj4xXSxsPTApLGxlPXAsMHxsfSxmdW5jdGlvbiByNShsLGMpe3ZhciBmLHA7cmV0dXJuIGx8PTAscD1sZSxsZT1sZSsxNnwwLDB8RGQoY3w9MCwxNDE0OTksMCwyNTUsZj1wKT9sPTE6KGZlW2wrMzQ+PjBdPWFbZj4+''@;'; + put 'put ''Ml0saXRbKGw9bCszNnwwKT4+MV09NjR8aXRbbD4+MV0sbD0wKSxsZT1wLDB8bH0sZnVuY3Rpb24gVEIobCxjKXt2YXIgZixwO3JldHVybiBsfD0wLHA9bGUsbGU9bGUrMTZ8MCwwfERkKGN8PTAsMTQxNDg3LC0xMjgsMTI3LGY9cCk/bD0xOihmZVtsKzMyPj4wXT1hW2Y+PjJdLGl0WyhsPWwr''@;'; + put 'put ''MzZ8MCk+PjFdPTEyOHxpdFtsPj4xXSxsPTApLGxlPXAsMHxsfSxmdW5jdGlvbiBRRShsLGMpe3JldHVybiBhWzI0KyhsfD0wKT4+Ml09MHxyYShjfD0wKSwwfSxmdW5jdGlvbiBROShsLGMpe3ZhciBmLHAsbTtsfD0wLGN8PTAsbT1sZSxsZT1sZSsxNnwwLHA9bSxmPW0rNHwwO2Rve2lmKCEo''@;'; + put 'put ''MHxEZChjLDE0MTQ0MiwwLDY1NTM1LGYpKSl7aWYoYz0wfGFbZj4+Ml0pe2l0W2wrODA+PjFdPWMsYz0wO2JyZWFrfSRyKDAsMTQxNDUwLHApLGM9MTticmVha31jPTF9d2hpbGUoMCk7cmV0dXJuIGxlPW0sMHxjfSxmdW5jdGlvbiBJQihsLGMpe2x8PTA7dmFyIGYsbSxwPTA7c3dpdGNoKG09''@;'; + put 'put ''bGUsbGU9bGUrMTZ8MCxmPW0sKDB8YXYoMHxYdFsoY3w9MCk+PjBdKSk8PDI0Pj4yNHwwKXtjYXNlIDg0OjB8eTAoYysxfDAsMTQxMzkxKT9wPTU6KGl0WyhsPWwrMzZ8MCk+PjFdPTF8aXRbbD4+MV0sbD0wKTticmVhaztjYXNlIDcwOjB8eTAoYysxfDAsMTQxMzk1KT9wPTU6bD0wO2JyZWFr''@;'; + put 'put ''O2RlZmF1bHQ6cD01fXJldHVybiA1PT0oMHxwKSYmKGFbZj4+Ml09YywkcigwLDE0MTQwMCxmKSxsPTEpLGxlPW0sMHxsfSxmdW5jdGlvbiBKRShsLGMpe3ZhciBmLHA7cmV0dXJuIGx8PTAscD1sZSxsZT1sZSsxNnwwLDB8RGQoY3w9MCwxNDEzNzcsMCwzNjAsZj1wKT9sPTE6KGFbbCsyOD4+''@;'; + put 'put ''Ml09NjU1MzUmYVtmPj4yXSxsPTApLGxlPXAsMHxsfSxmdW5jdGlvbiBEQihsLGMpe3ZhciBmLHA7cmV0dXJuIGx8PTAscD1sZSxsZT1sZSsxNnwwLDB8RGQoY3w9MCwxNDEzNzAsMCw2NTUzNSxmPXApP2w9MTooaXRbbCs0MD4+MV09YVtmPj4yXSxsPTApLGxlPXAsMHxsfSxmdW5jdGlvbiBM''@;'; + put 'put ''QihsLGMpe3JldHVybiBhWyhsfD0wKT4+Ml09MHxyYShjfD0wKSwwfSxmdW5jdGlvbiBPQihsLGMpe3JldHVybiBhWzE2KyhsfD0wKT4+Ml09MHxyYShjfD0wKSwwfSxmdW5jdGlvbiBSQihsLGMpe3JldHVybiBhWzQrKGx8PTApPj4yXT0wfHJhKGN8PTApLDB9LGZ1bmN0aW9uIEJCKGwsYyl7''@;'; + put 'put ''dmFyIGYscCxtO2x8PTAsY3w9MCxtPWxlLGxlPWxlKzE2fDAscD1tLGY9bSs0fDA7ZG97aWYoISgwfERkKGMsMTQxMzI1LDAsNjU1MzUsZikpKXtpZihjPTB8YVtmPj4yXSl7aXRbbCs4Mj4+MV09YyxjPTA7YnJlYWt9JHIoMCwxNDEzMzMscCksYz0xO2JyZWFrfWM9MX13aGlsZSgwKTtyZXR1''@;'; + put 'put ''cm4gbGU9bSwwfGN9LGZ1bmN0aW9uIFhFKGwsYyl7bHw9MCxjfD0wO3ZhciBBLGIsZj0wLHA9MCxtPTAsdz0wO2I9bGUsbGU9bGUrMTZ8MCxBPWIsbT0wO2U6Zm9yKDs7KXt0OmZvcig7Oyl7aWYocD1jKzF8MCwhKChjPTB8ZmVbYz4+MF0pPDwyND4+MjQpKWJyZWFrIGU7c3dpdGNoKChmPSgw''@;'; + put 'put ''fENwKGM9Yzw8MjQ+PjI0KSktOTh8MCk+Pj4xfGY8PDMxfDApe2Nhc2UgNTp3PTU7YnJlYWsgdDtjYXNlIDk6Zj0yMDQ4O2JyZWFrIHQ7Y2FzZSA4Onc9NjticmVhayB0O2Nhc2UgMDp3PTc7YnJlYWsgdH1hW0E+PjJdPWMsYVtBKzQ+PjJdPWMsJHIoMCwxNDEyNzIsQSksYz1wfTU9PSgwfHcp''@;'; + put 'put ''Pyh3PTAsZj0xMDI0KTo2PT0oMHx3KT8odz0wLGY9NDA5Nik6Nz09KDB8dykmJih3PTAsZj04MTkyKSxjPXAsbXw9Zn1yZXR1cm4gbTw8MTY+PjE2IT0xNTM2MCYmKGl0Wyh3PWwrMzZ8MCk+PjFdPWl0W3c+PjFdfG0pLGxlPWIsMH0sZnVuY3Rpb24gUEIobCxjKXt2YXIgcCxtLEEsdyxiLGY9''@;'; + put 'put ''MDtmb3IoYj1sZSxsZT1sZSsxNnwwLHc9Yis4fDAsQT1iLHA9NDIrKGx8PTApfDAsZj0wLGM9bT0wfHJhKGN8PTApO2w9MHxsdihjLDE0MTE4Mik7KWlmKDgyIT0oMjU1JigwfGF2KDB8ZmVbbD4+MF0pKXwwKSlpZigwfHkwKGwsMTQxMjM2KSlpZigwfHkwKGwsMTQxMjQyKSYmMHx5MChsLDE0''@;'; + put 'put ''MTI1Mikpe2lmKCEoMHx5MChsLDE0MTI1OCkpKXtpdFtwPj4xXT0xMjh8aXRbcD4+MV0sYz0wLGY9bD1mO2NvbnRpbnVlfWlmKDB8eTAobCwxNDEyNjUpKXthW3c+PjJdPWwsJHIoMCwxNDExOTgsdyksZj0xLGM9MDtjb250aW51ZX1pdFtwPj4xXT0yNTZ8aXRbcD4+MV0sYz0wLGY9bD1mfWVs''@;'; + put 'put ''c2UgaXRbcD4+MV09MzJ8aXRbcD4+MV0sYz0wLGY9bD1mO2Vsc2UgaXRbcD4+MV09LTM4NSZpdFtwPj4xXSxjPTAsZj1sPWY7ZWxzZXtpZighKDB8eTAoYz1sKzF8MCwxNDExODUpKSl7aXRbcD4+MV09NHxpdFtwPj4xXSxjPTAsZj1sPWY7Y29udGludWV9aWYoMHx5MChjLDE0MTE5Mikpe2Fb''@;'; + put 'put ''QT4+Ml09bCwkcigwLDE0MTE5OCxBKSxmPTEsYz0wO2NvbnRpbnVlfWl0W3A+PjFdPTJ8aXRbcD4+MV0sYz0wLGY9bD1mfXJldHVybiBGdChtKSxsZT1iLDB8Zn0sZnVuY3Rpb24gbzUobCxjKXtyZXR1cm4gYVs4KyhsfD0wKT4+Ml09MHxyYShjfD0wKSwwfSxmdW5jdGlvbiBKOShsLGMpe3Jl''@;'; + put 'put ''dHVybiBhWzEyKyhsfD0wKT4+Ml09MHxyYShjfD0wKSwwfSxmdW5jdGlvbiB0XyhsLGMpe2x8PTA7dmFyIGYsbSxwPTA7c3dpdGNoKG09bGUsbGU9bGUrMTZ8MCxmPW0sKDB8YXYoMHxmZVsoY3w9MCk+PjBdKSk8PDI0Pj4yNHwwKXtjYXNlIDY2OjB8eTAoYysxfDAsMTQxMTI4KT9wPTc6KGl0''@;'; + put 'put ''WyhsPWwrMzZ8MCk+PjFdPTE2fGl0W2w+PjFdLGw9MCk7YnJlYWs7Y2FzZSA4NDowfHkwKGMrMXwwLDE0MTEzNCk/cD03OihpdFsobD1sKzM2fDApPj4xXT04fGl0W2w+PjFdLGw9MCk7YnJlYWs7Y2FzZSA3NzowfHkwKGMrMXwwLDE0MTEzNyk/cD03Omw9MDticmVhaztkZWZhdWx0OnA9N31y''@;'; + put 'put ''ZXR1cm4gNz09KDB8cCkmJihhW2Y+PjJdPWMsJHIoMCwxNDExNDMsZiksbD0xKSxsZT1tLDB8bH0sZnVuY3Rpb24gZkcobCxjKXt2YXIgZixwO3JldHVybiBsfD0wLHA9bGUsbGU9bGUrMTZ8MCwwfERkKGN8PTAsMTQxMTIyLDAsNjU1MzUsZj1wKT9sPTE6KGl0W2wrMzg+PjFdPWFbZj4+Ml0s''@;'; + put 'put ''bD0wKSxsZT1wLDB8bH0sZnVuY3Rpb24gbl8obCxjKXtsfD0wO3ZhciBmLG0scD0wO3N3aXRjaChtPWxlLGxlPWxlKzE2fDAsZj1tLCgwfGF2KDB8ZmVbKGN8PTApPj4wXSkpPDwyND4+MjR8MCl7Y2FzZSA3NjowfHkwKGMrMXwwLDE0MDc2OCk/cD03OihpdFsobD1sKzM2fDApPj4xXT00fGl0''@;'; + put 'put ''W2w+PjFdLGw9MCk7YnJlYWs7Y2FzZSA4MjowfHkwKGMrMXwwLDE0MDc2Myk/cD03OihpdFsobD1sKzM2fDApPj4xXT0yfGl0W2w+PjFdLGw9MCk7YnJlYWs7Y2FzZSA2NzowfHkwKGMrMXwwLDE0MDc3Mik/cD03Omw9MDticmVhaztkZWZhdWx0OnA9N31yZXR1cm4gNz09KDB8cCkmJihhW2Y+''@;'; + put 'put ''PjJdPWMsJHIoMCwxNDA3NzgsZiksbD0xKSxsZT1tLDB8bH0sZnVuY3Rpb24gRkIobCxjKXt2YXIgZixwO3JldHVybiBsfD0wLHA9bGUsbGU9bGUrMTZ8MCwwfERkKGN8PTAsMTQxNzIwLDAsMTI3LGY9cCk/bD0xOihmZVtsKzg4Pj4wXT1hW2Y+PjJdLGw9MCksbGU9cCwwfGx9LGZ1bmN0aW9u''@;'; + put 'put ''IEhCKGwsYyl7dmFyIGYscDtyZXR1cm4gbHw9MCxwPWxlLGxlPWxlKzE2fDAsZj1wLDQyPT0oMHxmZVsoY3w9MCk+PjBdKT8oZmVbKGw9bCsxMTJ8MCk+PjBdPTF8ZmVbbD4+MF0sbD0wKTooYVtmPj4yXT1jLCRyKDAsMTQxNjgwLGYpLGw9MSksbGU9cCwwfGx9LGZ1bmN0aW9uIEt0KGwsYyl7''@;'; + put 'put ''dmFyIGYscDtyZXR1cm4gbHw9MCxwPWxlLGxlPWxlKzE2fDAsZj1wLDQyPT0oMHxmZVsoY3w9MCk+PjBdKT8oZmVbKGw9bCsxMTJ8MCk+PjBdPTJ8ZmVbbD4+MF0sbD0wKTooYVtmPj4yXT1jLCRyKDAsMTQxNjQzLGYpLGw9MSksbGU9cCwwfGx9LGZ1bmN0aW9uIE9LKGwsYyl7dmFyIHAsZj0w''@;'; + put 'put ''O3A9NzIrKGx8PTApfDAsbD1jfD0wO2U6Zm9yKDs7KXtzd2l0Y2goMHxmZVtwKygwfFh0W2w+PjBdKT4+MF0pe2Nhc2UgNTpmPTI7YnJlYWs7Y2FzZSA2OmY9MzticmVhaztjYXNlIDc6Zj00O2JyZWFrO2Nhc2UgMjc6Y2FzZSAyNjpjYXNlIDI1OmNhc2UgMjQ6Y2FzZSAyMzpjYXNlIDIyOmNh''@;'; + put 'put ''c2UgMjk6Zj0xO2JyZWFrO2RlZmF1bHQ6YnJlYWsgZX1sPWwrZnwwfXJldHVybiBsLWN8MH0sZnVuY3Rpb24gVXkobCxjKXtjfD0wLGw9NzIrKGx8PTApfDA7ZTpmb3IoOzspe3N3aXRjaCgwfGZlW2wrKDB8WHRbYz4+MF0pPj4wXSl7Y2FzZSAyMTpjYXNlIDk6Y2FzZSAxMDpicmVhaztkZWZh''@;'; + put 'put ''dWx0OmJyZWFrIGV9Yz1jKzF8MH1yZXR1cm4gMHxjfSxmdW5jdGlvbiBYayhsLGMpe2x8PTA7dmFyIGY9MCxwPTA7Zj0wfGZlWyhsPTIrKGN8PTApfDApPj4wXTtlOmRve2lmKGY8PDI0Pj4yND09MTIwKWZvcihmPWMrM3wwLGw9MDs7KXt0OmZvcig7Oyl7aWYoYz0ocD0wfGZlW2Y+PjBdKTw8''@;'; + put 'put ''MjQ+PjI0LHA8PDI0Pj4yND09NTkpe3A9MTQ7YnJlYWsgZX1zd2l0Y2goMHxjKXtjYXNlIDU3OmNhc2UgNTY6Y2FzZSA1NTpjYXNlIDU0OmNhc2UgNTM6Y2FzZSA1MjpjYXNlIDUxOmNhc2UgNTA6Y2FzZSA0OTpjYXNlIDQ4OnA9NzticmVhayB0O2Nhc2UgNzA6Y2FzZSA2OTpjYXNlIDY4OmNh''@;'; + put 'put ''c2UgNjc6Y2FzZSA2NjpjYXNlIDY1OnA9ODticmVhayB0O2Nhc2UgMTAyOmNhc2UgMTAxOmNhc2UgMTAwOmNhc2UgOTk6Y2FzZSA5ODpjYXNlIDk3OnA9OTticmVhayB0fWY9ZisxfDB9aWYoNz09KDB8cCk/KHA9MCxsPWMrLTQ4fGw8PDQpOjg9PSgwfHApPyhwPTAsbD0obDw8NCktNTUrY3ww''@;'; + put 'put ''KTo5PT0oMHxwKSYmKHA9MCxsPShsPDw0KS04NytjfDApLCEoKDB8bCk8MTExNDExMikpe2w9LTE7YnJlYWt9Zj1mKzF8MH1lbHNlIGZvcihjPWwsbD0wOzspe2lmKGY8PDI0Pj4yND09NTkpe3A9MTQ7YnJlYWsgZX1pZigoMHwobD0oZjw8MjQ+PjI0KS00OCsoMTAqbHwwKXwwKSk+PTExMTQx''@;'; + put 'put ''MTIpe2w9LTE7YnJlYWsgZX1jPWY9YysxfDAsZj0wfGZlW2Y+PjBdfX13aGlsZSgwKTtyZXR1cm4gMTQ9PSgwfHApJiYobD0wfEZkKGwpKSwwfGx9LGZ1bmN0aW9uIGo5ZShsLGMpe3JldHVybiBsfD0wLGw9MHxYdFsoY3w9MCk+PjBdLDE8PCgzMSYoYz0wfFh0W2MrMT4+MF0pKSZhWzU2OTQw''@;'; + put 'put ''KygoKDB8WHRbMTQ0MDQ0KyhsPj4+MiY3KT4+MF0pPDwzfGw8PDEmNnxjPj4+NSYxKTw8Mik+PjJdfDB9LGZ1bmN0aW9uIEExZShsLGMpe3ZhciBmO3JldHVybiBsfD0wLDE8PCgzMSYobD0wfFh0WzIrKGN8PTApPj4wXSkpJmFbNTY5NDArKCgoMHxYdFsxNDQwNDQrKChmPTB8WHRbYysxPj4w''@;'; + put 'put ''XSk+Pj4yJjE1fGZlW2M+PjBdPDw0JjI1NSk+PjBdKTw8M3xmPDwxJjZ8bD4+PjUmMSk8PDIpPj4yXXwwfSxmdW5jdGlvbiB5MWUobCxjKXtyZXR1cm4gMH0sZnVuY3Rpb24gbWoobCxjKXtyZXR1cm4gbHw9MCxsPTB8WHRbKGN8PTApPj4wXSwxPDwoMzEmKGM9MHxYdFtjKzE+PjBdKSkmYVs1''@;'; + put 'put ''Njk0MCsoKCgwfFh0WzE0Mzc4OCsobD4+PjImNyk+PjBdKTw8M3xsPDwxJjZ8Yz4+PjUmMSk8PDIpPj4yXXwwfSxmdW5jdGlvbiBaOWUobCxjKXt2YXIgZjtyZXR1cm4gbHw9MCwxPDwoMzEmKGw9MHxYdFsyKyhjfD0wKT4+MF0pKSZhWzU2OTQwKygoKDB8WHRbMTQzNzg4KygoZj0wfFh0W2Mr''@;'; + put 'put ''MT4+MF0pPj4+MiYxNXxmZVtjPj4wXTw8NCYyNTUpPj4wXSk8PDN8Zjw8MSY2fGw+Pj41JjEpPDwyKT4+Ml18MH0sZnVuY3Rpb24gejllKGwsYyl7cmV0dXJuKDB8WHRbKGN8PTApPj4wXSk8MTk0PzE6KGM9MHxYdFtjKzE+PjBdKT4+PjdeMXwxOTI9PSgxOTImY3wwKXwwfSxmdW5jdGlvbiBH''@;'; + put 'put ''OWUobCxjKXtsfD0wO3ZhciBmPTA7bD0wfGZlWzIrKGN8PTApPj4wXTtkb3tpZihsPDwyND4+MjQ+LTEpbD0xO2Vsc2V7aWYoKGY9MHxmZVtjPj4wXSk8PDI0Pj4yND09LTE3JiYtNjU9PSgwfGZlW2MrMT4+MF0pKXtpZigoMjU1JmwpPjE4OSl7bD0xO2JyZWFrfWw9MTkxLGM9LTY1fWVsc2V7''@;'; + put 'put ''aWYoKDI1NSZsKT4xOTEpe2w9MTticmVha31pZihsPTI1NSYoYz0wfGZlW2MrMT4+MF0pLGY8PDI0Pj4yND09LTMyKXtsPSgyNTUmYyk8MTYwfDE5Mj09KDE5MiZsfDApO2JyZWFrfX1sPTA9PSgxMjgmbHwwKT8xOmY8PDI0Pj4yND09LTE5PygyNTUmYyk+MTU5OjE5Mj09KDE5MiZsfDApfX13''@;'; + put 'put ''aGlsZSgwKTtyZXR1cm4gMSZsfDB9LGZ1bmN0aW9uIFc5ZShsLGMpe2x8PTA7dmFyIGY9MDtmPTB8WHRbMysoY3w9MCk+PjBdO2Rve2lmKCEoMD09KDEyOCZmfDApfDE5Mj09KDE5MiZmfDApfHwoZj0wfFh0W2MrMj4+MF0sMD09KDEyOCZmfDApfDE5Mj09KDE5MiZmfDApKSkpe2lmKGY9MHxm''@;'; + put 'put ''ZVtjPj4wXSxjPTI1NSYobD0wfGZlW2MrMT4+MF0pLGY8PDI0Pj4yND09LTE2KXtsPSgyNTUmbCk8MTQ0fDE5Mj09KDE5MiZjfDApO2JyZWFrfWw9MD09KDEyOCZjfDApPzE6Zjw8MjQ+PjI0PT0tMTI/KDI1NSZsKT4xNDM6MTkyPT0oMTkyJmN8MCk7YnJlYWt9bD0xfXdoaWxlKDApO3JldHVy''@;'; + put 'put ''biAxJmx8MH0sZnVuY3Rpb24gd2oobCxjKXt2YXIgbSxmPTAscD0wO209NzIrKGx8PTApfDAscD1jfD0wO2U6Zm9yKDs7KXtzd2l0Y2goZj0wfGZlW3ArMT4+MF0sMHwobD0obD0wfGZlW3A+PjBdKTw8MjQ+PjI0PzB8ZjAobCxmKTowfFh0W20rKDI1NSZmKT4+MF0pKXtjYXNlIDU6Y2FzZSAy''@;'; + put 'put ''NzpjYXNlIDI2OmNhc2UgMjU6Y2FzZSAyNDpjYXNlIDIzOmNhc2UgMjI6Y2FzZSAyOTpsPTI7YnJlYWs7Y2FzZSA2Omw9MzticmVhaztjYXNlIDc6bD00O2JyZWFrO2RlZmF1bHQ6YnJlYWsgZX1wPXArbHwwfXJldHVybiBwLWN8MH0sZnVuY3Rpb24gJDllKGwsYyl7Y3w9MDt2YXIgcCxmPTA7''@;'; + put 'put ''cD03MisobHw9MCl8MDtlOmZvcig7Oyl7c3dpdGNoKGY9MHxmZVtjKzE+PjBdLDB8KGw9KGw9MHxmZVtjPj4wXSk8PDI0Pj4yND8wfGYwKGwsZik6MHxYdFtwKygyNTUmZik+PjBdKSl7Y2FzZSAyMTpjYXNlIDk6Y2FzZSAxMDpicmVhaztkZWZhdWx0OmJyZWFrIGV9Yz1jKzJ8MH1yZXR1cm4g''@;'; + put 'put ''MHxjfSxmdW5jdGlvbiBxOWUobCxjKXtsfD0wO3ZhciBmPTAscD0wO2w9NCsoY3w9MCl8MDtlOmRve2lmKDB8ZmVbbD4+MF0pZj1sLGw9MCxjPS0xLHA9MTY7ZWxzZSBpZigxMjA9PSgwfGZlW2MrNT4+MF0pKWZvcihjPWMrNnwwLGw9MDs7KXt0OmZvcig7Oyl7aWYoISgwfGZlW2M+PjBdKSl7''@;'; + put 'put ''aWYoKGY9MHxmZVtjKzE+PjBdKTw8MjQ+PjI0PT01OSl7cD0xODticmVhayBlfXN3aXRjaCgwfChmPWY8PDI0Pj4yNCkpe2Nhc2UgNTc6Y2FzZSA1NjpjYXNlIDU1OmNhc2UgNTQ6Y2FzZSA1MzpjYXNlIDUyOmNhc2UgNTE6Y2FzZSA1MDpjYXNlIDQ5OmNhc2UgNDg6cD04O2JyZWFrIHQ7Y2Fz''@;'; + put 'put ''ZSA3MDpjYXNlIDY5OmNhc2UgNjg6Y2FzZSA2NzpjYXNlIDY2OmNhc2UgNjU6cD05O2JyZWFrIHQ7Y2FzZSAxMDI6Y2FzZSAxMDE6Y2FzZSAxMDA6Y2FzZSA5OTpjYXNlIDk4OmNhc2UgOTc6cD0xMDticmVhayB0fX1jPWMrMnwwfWlmKDg9PSgwfHApP2w9ZistNDh8bDw8NDo5PT0oMHxwKT9s''@;'; + put 'put ''PShsPDw0KS01NStmfDA6MTA9PSgwfHApJiYobD0obDw8NCktODcrZnwwKSwhKCgwfGwpPDExMTQxMTIpKXtsPS0xLHA9MTk7YnJlYWt9Yz1jKzJ8MH1lbHNlIGM9bCxsPTAscD0xM313aGlsZSgwKTtmb3IoOzspaWYoMTMhPSgwfHApKWlmKDE2IT0oMHxwKSlpZigxOCE9KDB8cCkpe2lmKDE5''@;'; + put 'put ''PT0oMHxwKSlyZXR1cm4gMHxsfWVsc2UgbD0wfEZkKGwpLHA9MTk7ZWxzZXtpZigoMHwobD0oMTAqbHwwKS00OCtjfDApKT49MTExNDExMil7bD0tMSxwPTE5O2NvbnRpbnVlfWM9ZisyfDAscD0xM31lbHNle2lmKDB8ZmVbYz4+MF0pe2Y9YyxjPS0xLHA9MTY7Y29udGludWV9aWYoNTk9PSgw''@;'; + put 'put ''fGZlW2MrMT4+MF0pKXtwPTE4O2NvbnRpbnVlfWY9YyxjPTB8ZmVbYysxPj4wXSxwPTE2fXJldHVybiAwfSxmdW5jdGlvbiBVOWUobCxjKXt2YXIgbSxmPTAscD0wO209NzIrKGx8PTApfDAscD1jfD0wO2U6Zm9yKDs7KXtzd2l0Y2goZj0wfGZlW3A+PjBdLDB8KGw9KGw9MHxmZVtwKzE+PjBd''@;'; + put 'put ''KTw8MjQ+PjI0PzB8ZjAobCxmKTowfFh0W20rKDI1NSZmKT4+MF0pKXtjYXNlIDU6Y2FzZSAyNzpjYXNlIDI2OmNhc2UgMjU6Y2FzZSAyNDpjYXNlIDIzOmNhc2UgMjI6Y2FzZSAyOTpsPTI7YnJlYWs7Y2FzZSA2Omw9MzticmVhaztjYXNlIDc6bD00O2JyZWFrO2RlZmF1bHQ6YnJlYWsgZX1w''@;'; + put 'put ''PXArbHwwfXJldHVybiBwLWN8MH0sZnVuY3Rpb24gXzFlKGwsYyl7Y3w9MDt2YXIgcCxmPTA7cD03MisobHw9MCl8MDtlOmZvcig7Oyl7c3dpdGNoKGY9MHxmZVtjPj4wXSwwfChsPShsPTB8ZmVbYysxPj4wXSk8PDI0Pj4yND8wfGYwKGwsZik6MHxYdFtwKygyNTUmZik+PjBdKSl7Y2FzZSAy''@;'; + put 'put ''MTpjYXNlIDk6Y2FzZSAxMDpicmVhaztkZWZhdWx0OmJyZWFrIGV9Yz1jKzJ8MH1yZXR1cm4gMHxjfSxmdW5jdGlvbiBrMWUobCxjKXtsfD0wO3ZhciBmPTAscD0wO2w9NCsoY3w9MCl8MDtlOmRve2lmKDA9PSgwfGZlW2MrNT4+MF0pJiYxMjA9PSgwfGZlW2w+PjBdKSlmb3IoYz1jKzZ8MCxs''@;'; + put 'put ''PTA7Oyl7dDpmb3IoOzspe2lmKCEoMHxmZVtjKzE+PjBdKSl7aWYoKGY9MHxmZVtjPj4wXSk8PDI0Pj4yND09NTkpe3A9MTc7YnJlYWsgZX1zd2l0Y2goMHwoZj1mPDwyND4+MjQpKXtjYXNlIDU3OmNhc2UgNTY6Y2FzZSA1NTpjYXNlIDU0OmNhc2UgNTM6Y2FzZSA1MjpjYXNlIDUxOmNhc2Ug''@;'; + put 'put ''NTA6Y2FzZSA0OTpjYXNlIDQ4OnA9ODticmVhayB0O2Nhc2UgNzA6Y2FzZSA2OTpjYXNlIDY4OmNhc2UgNjc6Y2FzZSA2NjpjYXNlIDY1OnA9OTticmVhayB0O2Nhc2UgMTAyOmNhc2UgMTAxOmNhc2UgMTAwOmNhc2UgOTk6Y2FzZSA5ODpjYXNlIDk3OnA9MTA7YnJlYWsgdH19Yz1jKzJ8MH1p''@;'; + put 'put ''Zig4PT0oMHxwKT8ocD0wLGw9ZistNDh8bDw8NCk6OT09KDB8cCk/KHA9MCxsPShsPDw0KS01NStmfDApOjEwPT0oMHxwKSYmKHA9MCxsPShsPDw0KS04NytmfDApLCEoKDB8bCk8MTExNDExMikpe2w9LTE7YnJlYWt9Yz1jKzJ8MH1lbHNlIGY9bCxsPTAscD0xM313aGlsZSgwKTtlOmRve2lm''@;'; + put 'put ''KDEzPT0oMHxwKSlmb3IoOzspe2lmKHA9MCwwfGZlW2YrMT4+MF0pYz0tMTtlbHNle2lmKChjPTB8ZmVbZj4+MF0pPDwyND4+MjQ9PTU5KXtwPTE3O2JyZWFrIGV9Yz1jPDwyND4+MjR9aWYoKDB8KGw9KDEwKmx8MCktNDgrY3wwKSk+PTExMTQxMTIpe2w9LTE7YnJlYWt9Zj1mKzJ8MCxwPTEz''@;'; + put 'put ''fX13aGlsZSgwKTtyZXR1cm4gMTc9PSgwfHApJiYobD0wfEZkKGwpKSwwfGx9LEVuLGZ1bmN0aW9uIGwwZShsLGMpe2x8PTAsY3w9MDt2YXIgRyxwZSxnZSxiZSxPZSxMZSxSZSxIZSxWZSxxZSxudCxXZSxvdCxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsSz0wO290''@;'; + put 'put ''PWxlLGxlPWxlKzYyNHwwLFZlPW90KzU4NHwwLEhlPW90KzU0NHwwLGY9b3QrMTkyfDAsT2U9b3QsYVsoYmU9MTYrKGdlPW90Kzk2fDApfDApPj4yXT1wZT1vdCszNjh8MCxhWyhMZT1PZSsxNnwwKT4+Ml09ZixudD0wfGFbYz4+Ml0scD0xNSYoYz0wfGFbMTY0KyhHPTB8YVsoUmU9MTYrKFdl''@;'; + put 'put ''PTB8YVtsPj4yXSl8MCk+PjJdKT4+Ml0pLG09MTUmYVsxNjQrKGw9MHxhWyhxZT1udCsxNnwwKT4+Ml0pPj4yXTtkb3tpZigoMHxtKT09KDB8cCkpe2lmKFI9MHx6NShXZSksSz0wfHo1KG50KSwoMHwoQT0oMHwoQT0oMHxhWzIzMisocD0wfGFbMTYrKDB8YVsoMz09KDB8KG09MyYoTT0wfGFb''@;'; + put 'put ''Uj4+Ml0pKSk/UjpSKzQ4fDApKzQwPj4yXSk+PjJdKT4+Ml0pLSgwfGFbMjMyKyhtPTB8YVsxNisoMHxhWygyPT0oMHxtKT9SOlIrLTQ4fDApKzQwPj4yXSk+PjJdKT4+Ml0pfDApKT4tMT9BOjAtQXwwKSkhPSgwfCh3PSgwfCh3PSgwfGFbMjMyKyhiPTB8YVsxNisoMHxhWygzPT0oMHwoaz0z''@;'; + put 'put ''JihEPTB8YVtLPj4yXSkpKT9LOksrNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSktKDB8YVsyMzIrKGs9MHxhWzE2KygwfGFbKDI9PSgwfGspP0s6SystNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSl8MCkpPi0xP3c6MC13fDApKSl7bD1BLXd8MDticmVha31pZigoMHwobT0oMHwobT1+figrX1twKzE2''@;'; + put 'put ''Pj4zXS0rX1ttKzE2Pj4zXSkpKT4tMT9tOjAtbXwwKSkhPSgwfChwPSgwfChwPX5+KCtfW2IrMTY+PjNdLStfW2srMTY+PjNdKSkpPi0xP3A6MC1wfDApKSl7bD1tLXB8MDticmVha31pZigoMHwobT1NPj4+NCkpIT0oMHwocD1EPj4+NCkpKXtsPW0tcHwwO2JyZWFrfWlmKDB8ZmVbRys0ND4+''@;'; + put 'put ''MF0/bT1XZToobT1jPTA9PSgwfGZlW0crODQ+PjBdKT9SOldlLGM9MHxhWzE2NCsoMHxhW2MrMTY+PjJdKT4+Ml0pLHA9bSsxNnwwLDMyJmMpe2dvKDB8cGUsMHxhW3A+PjJdLDE3Niksdz1tLGI9KEE9Z2UpKzQ4fDA7ZG97YVtBPj4yXT1hW3c+PjJdLEE9QSs0fDAsdz13KzR8MH13aGlsZSgo''@;'; + put 'put ''MHxBKTwoMHxiKSk7YVtiZT4+Ml09cGUsYVsoMz09KDB8KEE9MyZhW2dlPj4yXSkpP2dlOmdlKzQ4fDApKzQwPj4yXT1hWygyPT0oMHwodz0zJmFbbT4+Ml0pKT9tOm0rLTQ4fDApKzQwPj4yXSxhWygyPT0oMHxBKT9nZTpnZSstNDh8MCkrNDA+PjJdPWFbKDM9PSgwfHcpP206bSs0OHwwKSs0''@;'; + put 'put ''MD4+Ml0sdz01NisoMHxhW3A+PjJdKXwwLGI9NDArKEE9cGUrMTZ8MCl8MDtkb3thW0E+PjJdPWFbdz4+Ml0sQT1BKzR8MCx3PXcrNHwwfXdoaWxlKCgwfEEpPCgwfGIpKTt3PTE2KygwfGFbcD4+Ml0pfDAsYj00MCsoQT1wZSs1NnwwKXwwO2Rve2FbQT4+Ml09YVt3Pj4yXSxBPUErNHwwLHc9''@;'; + put 'put ''dys0fDB9d2hpbGUoKDB8QSk8KDB8YikpO2ZlW3BlKzExMj4+MF09MSxhW3BlKzExNj4+Ml09bSxtPWdlLGw9MHxhW3FlPj4yXX1pZigwfGZlW2wrNDQ+PjBdP3A9bnQ6KHA9bD0wPT0oMHxmZVtsKzg0Pj4wXSk/SzpudCxsPTB8YVtsKzE2Pj4yXSksYz1wKzE2fDAsMzImYVtsKzE2ND4+Ml0p''@;'; + put 'put ''e2dvKDB8ZiwwfGFbYz4+Ml0sMTc2KSx3PXAsYj0oQT1PZSkrNDh8MDtkb3thW0E+PjJdPWFbdz4+Ml0sQT1BKzR8MCx3PXcrNHwwfXdoaWxlKCgwfEEpPCgwfGIpKTthW0xlPj4yXT1mLGFbKDM9PSgwfChBPTMmYVtPZT4+Ml0pKT9PZTpPZSs0OHwwKSs0MD4+Ml09YVsoMj09KDB8KHc9MyZh''@;'; + put 'put ''W3A+PjJdKSk/cDpwKy00OHwwKSs0MD4+Ml0sYVsoMj09KDB8QSk/T2U6T2UrLTQ4fDApKzQwPj4yXT1hWygzPT0oMHx3KT9wOnArNDh8MCkrNDA+PjJdLHc9NTYrKDB8YVtjPj4yXSl8MCxiPTQwKyhBPWYrMTZ8MCl8MDtkb3thW0E+PjJdPWFbdz4+Ml0sQT1BKzR8MCx3PXcrNHwwfXdoaWxl''@;'; + put 'put ''KCgwfEEpPCgwfGIpKTt3PTE2KygwfGFbYz4+Ml0pfDAsYj00MCsoQT1mKzU2fDApfDA7ZG97YVtBPj4yXT1hW3c+PjJdLEE9QSs0fDAsdz13KzR8MH13aGlsZSgoMHxBKTwoMHxiKSk7ZmVbZisxMTI+PjBdPTEsYVtmKzExNj4+Ml09cH1lbHNlIGY9bDtsPWYrMTZ8MCx3PTE2KyhjPTB8YVtt''@;'; + put 'put ''KzE2Pj4yXSl8MCxiPShBPUhlKSs0MHwwO2Rve2FbQT4+Ml09YVt3Pj4yXSxBPUErNHwwLHc9dys0fDB9d2hpbGUoKDB8QSk8KDB8YikpO3c9bCxiPShBPVZlKSs0MHwwO2Rve2FbQT4+Ml09YVt3Pj4yXSxBPUErNHwwLHc9dys0fDB9d2hpbGUoKDB8QSk8KDB8YikpO2lmKCEobD0wfEpBKEhl''@;'; + put 'put ''LFZlKSkpe2w9Zis1NnwwLHc9Yys1NnwwLGI9KEE9SGUpKzQwfDA7ZG97YVtBPj4yXT1hW3c+PjJdLEE9QSs0fDAsdz13KzR8MH13aGlsZSgoMHxBKTwoMHxiKSk7dz1sLGI9KEE9VmUpKzQwfDA7ZG97YVtBPj4yXT1hW3c+PjJdLEE9QSs0fDAsdz13KzR8MH13aGlsZSgoMHxBKTwoMHxiKSk7''@;'; + put 'put ''aWYoIShsPTB8SkEoSGUsVmUpKSl7aWYoKDB8KGM9MTkyJmFbMTY0KygwfGFbUmU+PjJdKT4+Ml0pKT09KDB8KGw9MTkyJmFbMTY0KygwfGFbcWU+PjJdKT4+Ml0pKSl7bD0oKDB8YVtXZT4+Ml0pPj4+NCktKCgwfGFbbnQ+PjJdKT4+PjQpfDA7YnJlYWt9bD1jLWx8MDticmVha319fWVsc2Ug''@;'; + put 'put ''bD1tLXB8MH13aGlsZSgwKTtyZXR1cm4gbGU9b3QsMHxsfSxmdW5jdGlvbiBwNyhsLGMpe3ZhciBmLHA9MCxtPTAsQT0wLHc9MDtyZXR1cm4gZj0wfGFbOTYrKDB8YVsxNisoMHxhWyhsfD0wKT4+Ml0pPj4yXSk+PjJdLGM9MCE9KDB8KGw9MHxhWzk2KygwfGFbMTYrKDB8YVsoY3w9MCk+PjJd''@;'; + put 'put ''KT4+Ml0pPj4yXSkpLDB8KGY/IWN8fCh3PStfW2YrMzI+PjNdLEE9K19bbCszMj4+M10sKG09K19bZisyND4+M10pPihwPStfW2wrMjQ+PjNdKSk/LTE6bTxwPzE6dz5BPy0xOnc8QSYxOjEmYyl9LGZ1bmN0aW9uIEMwZShsLGMpe3JldHVybigwfGFbKGx8PTApPj4yXSktKDB8YVsoY3w9MCk+''@;'; + put 'put ''PjJdKXwwfSxmdW5jdGlvbiBUMGUobCxjKXtyZXR1cm4oKDB8YVthWyhsfD0wKT4+Ml0+PjJdKT4+PjQpLSgoMHxhW2FbKGN8PTApPj4yXT4+Ml0pPj4+NCl8MH0sZnVuY3Rpb24gRlkobCxjKXtyZXR1cm4oMHxhWzIzNisoMHxhWzE2KygwfGFbKGx8PTApPj4yXSk+PjJdKT4+Ml0pLSgwfGFb''@;'; + put 'put ''MjM2KygwfGFbMTYrKDB8YVsoY3w9MCk+PjJdKT4+Ml0pPj4yXSl8MH0sZnVuY3Rpb24gZm9lKGwsYyl7dmFyIGYscCxtO3JldHVybigocD0rX1sobT0wfGFbNDY3NTBdKSsoNDAqKDB8YVsoY3w9MCk+PjJdKXwwKSsyND4+M10pPihmPStfW20rKDQwKigwfGFbKGx8PTApPj4yXSl8MCkrMjQ+''@;'; + put 'put ''PjNdKSYxKS0ocDxmJjEpfDB9LGZ1bmN0aW9uIGNvZShsLGMpe3JldHVybiBjfD0wLGw9MHx3VSgwfGFbKGx8PTApPj4yXSksKCgwfChjPTB8d1UoMHxhW2M+PjJdKSkpPCgwfGwpJjEpLSgoMHxjKT4oMHxsKSYxKXwwfSxmdW5jdGlvbiB5b2UobCxjKXt2YXIgcCxBLHcsYixmPTAsbT0wO2lm''@;'; + put 'put ''KGI9bGUsbGU9bGUrODB8MCx3PWIrNDB8MCxBPWIscD0wfGFbYVsxNzIrKDB8YVsxNisobHw9MCk+PjJdKT4+Ml0+PjJdLGw9MHxhW2FbMTcyKygwfGFbMTYrKGN8PTApPj4yXSk+PjJdPj4yXSwoMHxSVShjKSk8PDI0Pj4yNCE9MCYmKDB8YVsoMz09KDMmYVtwPj4yXXwwKT9wOnArNDh8MCkr''@;'; + put 'put ''NDA+PjJdKT09KDB8YVsoMz09KDMmYVtsPj4yXXwwKT9sOmwrNDh8MCkrNDA+PjJdKSYmKDB8TlUocCxsKSk8PDI0Pj4yNCE9MCl7Zj0xNisoMHxhW2wrMTY+PjJdKXwwLGw9MTYrKDB8YVtwKzE2Pj4yXSl8MCxjPShtPUEpKzQwfDA7ZG97YVttPj4yXT1hW2w+PjJdLG09bSs0fDAsbD1sKzR8''@;'; + put 'put ''MH13aGlsZSgoMHxtKTwoMHxjKSk7bD1mLGM9KG09dykrNDB8MDtkb3thW20+PjJdPWFbbD4+Ml0sbT1tKzR8MCxsPWwrNHwwfXdoaWxlKCgwfG0pPCgwfGMpKTtsPTA9PSgwfEpBKEEsdykpJjF9ZWxzZSBsPTA7cmV0dXJuIGxlPWIsMHxsfSxmdW5jdGlvbiB4SChsLGMpe3ZhciBwLEEsdyxi''@;'; + put 'put ''LGY9MCxtPTA7aWYoYj1sZSxsZT1sZSs4MHwwLHc9Yis0MHwwLEE9YixwPTB8YVthWzE4MCsoMHxhWzE2KyhsfD0wKT4+Ml0pPj4yXT4+Ml0sbD0wfGFbYVsxODArKDB8YVsxNisoY3w9MCk+PjJdKT4+Ml0+PjJdLCgwfFBVKGMpKTw8MjQ+PjI0IT0wJiYoMHxhWygyPT0oMyZhW3A+PjJdfDAp''@;'; + put 'put ''P3A6cCstNDh8MCkrNDA+PjJdKT09KDB8YVsoMj09KDMmYVtsPj4yXXwwKT9sOmwrLTQ4fDApKzQwPj4yXSkmJigwfE5VKHAsbCkpPDwyND4+MjQhPTApe2Y9NTYrKDB8YVtsKzE2Pj4yXSl8MCxsPTU2KygwfGFbcCsxNj4+Ml0pfDAsYz0obT1BKSs0MHwwO2Rve2FbbT4+Ml09YVtsPj4yXSxt''@;'; + put 'put ''PW0rNHwwLGw9bCs0fDB9d2hpbGUoKDB8bSk8KDB8YykpO2w9ZixjPShtPXcpKzQwfDA7ZG97YVttPj4yXT1hW2w+PjJdLG09bSs0fDAsbD1sKzR8MH13aGlsZSgoMHxtKTwoMHxjKSk7bD0wPT0oMHxKQShBLHcpKSYxfWVsc2UgbD0wO3JldHVybiBsZT1iLDB8bH0sZnVuY3Rpb24gS2gobCxj''@;'; + put 'put ''KXt2YXIgZj0wLHA9MDtyZXR1cm4gMHwobD0oZj0rX1s4KyhsfD0wKT4+M10pPihwPStfWzgrKGN8PTApPj4zXSk/MTpmPHA/LTE6KHA9K19bbCsxNj4+M10pPihmPStfW2MrMTY+PjNdKT8xOihwPGYpPDwzMT4+MzEpfSxmdW5jdGlvbiBDWChsLGMpe3ZhciBmLHA7cmV0dXJuIDB8KChwPStf''@;'; + put 'put ''WyhsfD0wKT4+M10pPihmPStfWyhjfD0wKT4+M10pPzE6KHA8Zik8PDMxPj4zMSl9LGZ1bmN0aW9uIFRYKGwsYyl7dmFyIGY9MCxwPTA7cmV0dXJuIDB8KGw9KGY9K19bOCsobD0wfGFbKGx8PTApPj4yXSk+PjNdKTwocD0rX1s4KyhjPTB8YVsoY3w9MCk+PjJdKT4+M10pPy0xOmY+cD8xOihw''@;'; + put 'put ''PStfW2w+PjNdKTwoZj0rX1tjPj4zXSk/LTE6cD5mJjEpfSxmdW5jdGlvbiBSRChsLGMpe3JldHVybiAwfCgoMHxhWzM2KyhsfD0wKT4+Ml0pPigwfGFbNDQrKGN8PTApPj4yXSk/MDooMHxhW2MrMzY+PjJdKTw9KDB8YVtsKzQ0Pj4yXSkmMSl9LGZ1bmN0aW9uIEZYKGwsYyl7cmV0dXJuIDB8''@;'; + put 'put ''KCgwfGFbMzIrKGx8PTApPj4yXSk+KDB8YVs0MCsoY3w9MCk+PjJdKT8wOigwfGFbYyszMj4+Ml0pPD0oMHxhW2wrNDA+PjJdKSYxKX0sZnVuY3Rpb24gRGYobCxjKXt2YXIgZixwPTAsbT0wLEE9MDtyZXR1cm4gZj0zMisobHw9MCl8MCxwPTMyKyhjfD0wKXwwLCgwfGFbbCszNj4+Ml0pPD0o''@;'; + put 'put ''MHxhW2MrNDQ+PjJdKSYmKDB8YVtjKzM2Pj4yXSk8PSgwfGFbbCs0ND4+Ml0pPygwfGFbbCs0MD4+Ml0pPCgwfGFbcD4+Ml0pP2w9MTooQT0oQT0wfEhYKGYscCkpLSgwfGFbYysxMj4+Ml0pKygwfGFbbCsxMj4+Ml0pfDAsbT0oMHwoYz0wfGFbYysxNj4+Ml0pKTwoMHwobD0wfGFbbCsxNj4+''@;'; + put 'put ''Ml0pKSxsPSgwfEEpPD0oKHA9MHxCRChmLHApKS0obT9sOmMpKyhtP2M6bCl8MCkmMSk6bD0wLDB8bH0sZnVuY3Rpb24gTGYobCxjKXt2YXIgZixwPTAsbT0wLEE9MDtyZXR1cm4gcD0zMisoY3w9MCl8MCwoMHxhWyhmPTMyKyhsfD0wKXwwKT4+Ml0pPD0oMHxhW2MrNDA+PjJdKSYmKDB8YVtw''@;'; + put 'put ''Pj4yXSk8PSgwfGFbbCs0MD4+Ml0pPygwfGFbbCs0ND4+Ml0pPCgwfGFbYyszNj4+Ml0pP2w9MTooQT0oQT0wfEJEKGYscCkpLSgwfGFbYysxNj4+Ml0pKygwfGFbbCsxNj4+Ml0pfDAsbT0oMHwoYz0wfGFbYysxMj4+Ml0pKTwoMHwobD0wfGFbbCsxMj4+Ml0pKSxsPSgwfEEpPD0oKHA9MHxI''@;'; + put 'put ''WChmLHApKS0obT9sOmMpKyhtP2M6bCl8MCkmMSk6bD0wLDB8bH0sSFgsQkQsZnVuY3Rpb24gcjllKGwsYyl7dmFyIGY9MCxwPTA7cmV0dXJuIDB8KGw9KGY9K19bKGx8PTApPj4zXSk8KHA9K19bKGN8PTApPj4zXSk/LTE6Zj5wPzE6KHA9K19bbCs4Pj4zXSk8KGY9K19bYys4Pj4zXSk/LTE6''@;'; + put 'put ''cD5mJjEpfSxmdW5jdGlvbiBFMmUobCxjKXt2YXIgZixwLG07cmV0dXJuIDB8KChwPStqblsobT0wfGFbNDY4NzNdKSsoYVsobHw9MCk+PjJdPDwyKT4+Ml0pPChmPStqblttKyhhWyhjfD0wKT4+Ml08PDIpPj4yXSk/LTE6cD5mJjEpfSxmdW5jdGlvbiBWVihsLGMpe2x8PTA7dmFyIEcsSyxw''@;'; + put 'put ''ZSxMZSxSZSxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsZ2U9MCxiZT0wLE9lPTA7Zm9yKFJlPWxlLGxlPWxlKzE2fDAscGU9UmUsRz1SZSs4fDAsSz1SZSs0fDAsYVs4KyhjfD0wKT4+Ml09MCxMZT0wfFFuKGFbYz4+Ml08PDIpLG09MHxhW2M+PjJdLHA9MDshKCgw''@;'; + put 'put ''fHApPj0oMHxtKSk7KWFbTGUrKHA8PDIpPj4yXT1sKygyNCpwfDApLHA9cCsxfDA7eDEoTGUsbSw0LDc5KSxEPTAsQT0wLG09MCx3PTA7ZTpmb3IoOzspe2lmKCgwfEQpPj0oMHxhW2M+PjJdKSl7YmU9MCxmPUEsT2U9dzticmVha31mb3IoYVtHPj4yXT1wPTB8YVsoUj1MZSsoRDw8Mil8MCk+''@;'; + put 'put ''PjJdLGFbSz4+Ml09cD0oMHxhWyhsPTB8YVtwKzE2Pj4yXSk+PjJdKT09KDB8cCk/MHxhW2wrND4+Ml06cCstMjR8MCxNPTAsbD1BLGs9dzshKCgwfE0pPj0yKTspe3N3aXRjaCgwfFQyZShHLEspKXtjYXNlLTE6Zm9yKEE9MCx3PWw7ISgoMHxBKT49KDB8aykpOyl7aWYoMHwoYj0wfHFYKDB8''@;'; + put 'put ''YVt3Pj4yXSxwKSkpe2JlPWIsZj1sLE9lPWs7YnJlYWsgZX1BPUErMXwwLHc9MHxhW3crND4+Ml19QT0wfFFuKDEyKSxrP2FbbSs0Pj4yXT1BOihtPTAsbD1BKSxhW0ErOD4+Ml09bSxhW0E+PjJdPXAsYVtBKzQ+PjJdPTAsYVtwKzIwPj4yXT1BLHc9aysxfDA7YnJlYWs7Y2FzZSAxOmlmKCEo''@;'; + put 'put ''QT0wfGFbKHA9cCsyMHwwKT4+Ml0pKXtnZT0xOTticmVhayBlfWRve2lmKDEhPSgwfGspKXtpZigoMHxBKT09KDB8bCkpe2FbOCsobD0wfGFbbCs0Pj4yXSk+PjJdPTA7YnJlYWt9aWYoKDB8QSk9PSgwfG0pKXthWzQrKG09MHxhW20rOD4+Ml0pPj4yXT0wO2JyZWFrfWFbNCsodz0wfGFbQSs4''@;'; + put 'put ''Pj4yXSk+PjJdPWFbKGI9QSs0fDApPj4yXSxhWzgrKDB8YVtiPj4yXSk+PjJdPXc7YnJlYWt9bD0wLG09MH13aGlsZSgwKTtGdChBKSxhW3A+PjJdPTAsQT1tLHc9aystMXwwO2JyZWFrO2RlZmF1bHQ6QT1tLHc9a31hW0s+PjJdPW09KDB8KHA9MHxhW1I+PjJdKSk9PSgwfGFbNCsobT0wfGFb''@;'; + put 'put ''cCsxNj4+Ml0pPj4yXSk/MHxhW20+PjJdOnArMjR8MCxNPU0rMXwwLG09QSxrPXd9RD1EKzF8MCxBPWwsdz1rfWZvcigxOT09KDB8Z2UpJiYoJHIoMSw5MzcyNyxwZSksemUoMTg3NDk2LDEpKSxwPTA7ISgoMHxwKT49KDB8T2UpKTspZ2U9MHxhW2YrND4+Ml0sRnQoZikscD1wKzF8MCxmPWdl''@;'; + put 'put ''O3JldHVybiBGdChMZSksbGU9UmUsMHxiZX0sVDJlLGZ1bmN0aW9uIHg5ZShsLGMpe3ZhciBmO3JldHVybiAwfCgoZj0rX1thWyhsfD0wKT4+Ml0+PjNdLStfW2FbKGN8PTApPj4yXT4+M10pPDA/MTooZj4wKTw8MzE+PjMxKX0sZnVuY3Rpb24gTl8obCxjKXt2YXIgZixwO3JldHVybiAwfCgo''@;'; + put 'put ''cD0rX1s4KyhsfD0wKT4+M10pPihmPStfWzgrKGN8PTApPj4zXSk/LTE6cDxmJjEpfSxmdW5jdGlvbiBvcmUobCxjKXtyZXR1cm4gMHxsfSxmdW5jdGlvbiBQbWUobCxjKXtyZXR1cm4gbHw9MCwoMHxjcihjfD0wKSkhPSgwfGwpJiYoYz0wfFluKGwsYywwKSksMHxjfSxmdW5jdGlvbiBCbWUo''@;'; + put 'put ''bCxjKXtyZXR1cm4gbHw9MCwoMHxjcihjfD0wKSkhPSgwfGwpJiYoYz0wfFpkKGwsYywwKSksMHxjfSxmdW5jdGlvbiBFQyhsLGMpe3ZhciBmO3JldHVybiBmPTB8ZmVbKGw9MTU3KygwfGFbMTYrKGx8PTApPj4yXSl8MCk+PjBdLCgwfChjfD0wKSk+PTAmJihmZVtsPj4wXT1jKSwwfGZ9LHp0''@;'; + put 'put ''LFYwLGZ1bmN0aW9uIElyZShsLGMpe3ZhciBmO3JldHVybiBmPTB8ZmVbKGw9OCsoMHxhWzE2KyhsfD0wKT4+Ml0pfDApPj4wXSwoMHwoY3w9MCkpPj0wJiYoZmVbbD4+MF09YyksMHxmfSxmdW5jdGlvbiBhVyhsLGMpe3JldHVybigwfGFbYVsoY3w9MCk+PjJdPj4yXSktKDB8YVthWyhsfD0w''@;'; + put 'put ''KT4+Ml0+PjJdKXwwfSxmdW5jdGlvbiBPcmUobCxjKXt2YXIgZjtyZXR1cm4gMHwoKDB8KGw9MHxhWyhmPTB8YVs0NzA1Nl0pKyhhWzE2KygwfGFbKGx8PTApPj4yXSk+PjJdPDwyKT4+Ml0pKT4oMHwoYz0wfGFbZisoYVsxNisoMHxhWyhjfD0wKT4+Ml0pPj4yXTw8Mik+PjJdKSk/MTooKDB8''@;'; + put 'put ''bCk8KDB8YykpPDwzMT4+MzEpfSxmdW5jdGlvbiBwcyhsLGMpe3ZhciBmLHA7cmV0dXJuIDB8KChwPStfWyhsPTB8YVsobHw9MCk+PjJdKT4+M10rICtfW2wrOD4+M10pPChmPStfWyhjPTB8YVsoY3w9MCk+PjJdKT4+M10rICtfW2MrOD4+M10pPzE6KHA+Zik8PDMxPj4zMSl9LGZ1bmN0aW9u''@;'; + put 'put ''IFJ1KGwsYyl7dmFyIGYscCxtO3JldHVybihwPStfWzgrKGN8PTApPj4zXS0rX1s4KyhtPTB8YVsobHw9MCk+PjJdKT4+M10pKnArKGY9K19bYz4+M10tK19bbT4+M10pKmY8PStfW2FbbCs0Pj4yXT4+M118MH0sX3UsV2osZnVuY3Rpb24gQWxlKGwsYyl7cmV0dXJuIDB8eTAoMHxhWyhsfD0w''@;'; + put 'put ''KT4+Ml0sMHxhWyhjfD0wKT4+Ml0pfSxmdW5jdGlvbiBSbGUobCxjKXtyZXR1cm4gMHxaaSgwfGFbKGx8PTApPj4yXSwwfGFbKGN8PTApPj4yXSl9LExpLGZ1bmN0aW9uIHNCKGwsYyl7bHw9MCxjfD0wO3ZhciBBLHcsYixrLE0sZ2UsYmUsT2UsTGUsUmUsSGUsZj0wLHA9MCxtPTAsRD0wLFI9''@;'; + put 'put ''MCxHPTAsSz0wLHBlPTAsVmU9MCxxZT0wLG50PTAsV2U9MCxvdD0wLFN0PTAsa3Q9MDtmb3IoSGU9bGUsbGU9bGUrMTEyfDAsT2U9SGUrNjR8MCxiZT1IZSs5NnwwLE09SGUrMzJ8MCxMZT1IZSxSZT0wfHZyKDI4KSxjPTB8R28obCksYVsoZ2U9UmUrNHwwKT4+Ml09YyxjPTB8dnIoNzIqY3ww''@;'; + put 'put ''KSxhWyhwZT1SZSsxMnwwKT4+Ml09YyxfWyhwPUxlKzh8MCk+PjNdPTE3OTc2OTMxMzQ4NjIzMTU3ZTI5MixfW0xlPj4zXT0xNzk3NjkzMTM0ODYyMzE1N2UyOTIsX1sobT1MZSsyNHwwKT4+M109LTE3OTc2OTMxMzQ4NjIzMTU3ZTI5MixfWyhBPUxlKzE2fDApPj4zXT0tMTc5NzY5MzEzNDg2''@;'; + put 'put ''MjMxNTdlMjkyLHc9TSsxNnwwLGI9TSs4fDAsaz1NKzI0fDAsZj0wfER0KGwpLEQ9MTc5NzY5MzEzNDg2MjMxNTdlMjkyLFI9MTc5NzY5MzEzNDg2MjMxNTdlMjkyLEc9LTE3OTc2OTMxMzQ4NjIzMTU3ZTI5MixLPS0xNzk3NjkzMTM0ODYyMzE1N2UyOTI7ZjspVmU9KFZlPS41KitfWzgwKyhT''@;'; + put 'put ''dD0wfGFbKG90PWYrMTZ8MCk+PjJdKT4+M10pPDE/MTpWZSxfW00+PjNdPVdlPShrdD0rX1tTdCsxNj4+M10pLShxZT0ocWU9LjUqKCtfW1N0Kzk2Pj4zXSsgK19bU3QrODg+PjNdKSk8MT8xOnFlKSxfW3c+PjNdPXFlPWt0K3FlLF9bYj4+M109bnQ9KGt0PStfW1N0KzI0Pj4zXSktVmUsX1tr''@;'; + put 'put ''Pj4zXT1WZT1rdCtWZSxfW0xlPj4zXT1XZT0rX1soRDxXZT9MZTpNKT4+M10sX1twPj4zXT1udD0rX1soUjxudD9MZTpNKSs4Pj4zXSxfW0E+PjNdPXFlPStfWyhHPnFlP0xlOk0pKzE2Pj4zXSxfW20+PjNdPVZlPStfWyhLPlZlP0xlOk0pKzI0Pj4zXSxhWyhTdD1jKzQwfDApPj4yXT1hW00+''@;'; + put 'put ''PjJdLGFbU3QrND4+Ml09YVtNKzQ+PjJdLGFbU3QrOD4+Ml09YVtNKzg+PjJdLGFbU3QrMTI+PjJdPWFbTSsxMj4+Ml0sYVtTdCsxNj4+Ml09YVtNKzE2Pj4yXSxhW1N0KzIwPj4yXT1hW00rMjA+PjJdLGFbU3QrMjQ+PjJdPWFbTSsyND4+Ml0sYVtTdCsyOD4+Ml09YVtNKzI4Pj4yXSxhW2M+''@;'; + put 'put ''PjJdPTF8YVtjPj4yXSxhWzExMisoMHxhW290Pj4yXSk+PjJdPWMsYz1jKzcyfDAsZj0wfHp0KGwsZiksRD1XZSxSPW50LEc9cWUsSz1WZTtmb3IoX1tMZT4+M109RCstMzYsX1twPj4zXT1SKy0zNixfW0E+PjNdPUcrMzYsX1ttPj4zXT1LKzM2LFN0PTB8YVtwZT4+Ml0sbT0wfGFbZ2U+PjJd''@;'; + put 'put ''LGFbT2U+PjJdPWFbTGU+PjJdLGFbT2UrND4+Ml09YVtMZSs0Pj4yXSxhW09lKzg+PjJdPWFbTGUrOD4+Ml0sYVtPZSsxMj4+Ml09YVtMZSsxMj4+Ml0sYVtPZSsxNj4+Ml09YVtMZSsxNj4+Ml0sYVtPZSsyMD4+Ml09YVtMZSsyMD4+Ml0sYVtPZSsyND4+Ml09YVtMZSsyND4+Ml0sYVtPZSsy''@;'; + put 'put ''OD4+Ml09YVtMZSsyOD4+Ml0sbT0wfGZ1bmN0aW9uIGhCKGwsYyxmLHApe2x8PTAsZnw9MCxwfD0wO3ZhciBrLE0sUixHLEssbT0wLEE9MCx3PTAsYj0wLEQ9MCxwZT0wO2ZvcihLPWxlLGxlPWxlKzMyfDAsdz1LLG09NCsoYj0oY3w9MCk8PDIpfDAsRz0wfFFuKDU2KihiPWIrNXwwKXwwKSxi''@;'; + put 'put ''PTB8dnIoYjw8Miksaz0wfFFuKDcyKihBPTUqbXwxKXwwKSxNPTB8dnIoRD1BPDw1KSxEPTB8dnIoRCksYVt3Pj4yXT1hW3A+PjJdLGFbdys0Pj4yXT1hW3ArND4+Ml0sYVt3Kzg+PjJdPWFbcCs4Pj4yXSxhW3crMTI+PjJdPWFbcCsxMj4+Ml0sYVt3KzE2Pj4yXT1hW3ArMTY+PjJdLGFbdysy''@;'; + put 'put ''MD4+Ml09YVtwKzIwPj4yXSxhW3crMjQ+PjJdPWFbcCsyND4+Ml0sYVt3KzI4Pj4yXT1hW3ArMjg+PjJdLHE4KGwsYyx3LEcsMCksSGooMTczKSxOOShtLGIpLFY5KG0sRyxiLEEsayksUj0wfGZ1KG0sRyxrLDAsTSksYVt3Pj4yXT1hW3A+PjJdLGFbdys0Pj4yXT1hW3ArND4+Ml0sYVt3Kzg+''@;'; + put 'put ''PjJdPWFbcCs4Pj4yXSxhW3crMTI+PjJdPWFbcCsxMj4+Ml0sYVt3KzE2Pj4yXT1hW3ArMTY+PjJdLGFbdysyMD4+Ml09YVtwKzIwPj4yXSxhW3crMjQ+PjJdPWFbcCsyND4+Ml0sYVt3KzI4Pj4yXT1hW3ArMjg+PjJdLHE4KGwsYyx3LEcsMSksTjkobSxiKSxWOShtLEcsYixBLGspLG09MHxm''@;'; + put 'put ''dShtLEcsaywxLEQpLEE9MHx2cigwfEFyKFI8PDUsbSkpLGM9MCxsPTA7ISgoMHxjKT49KDB8bSkpOyl7Zm9yKHc9RCsoYzw8NSl8MCxwPTA7ISgoMHxwKT49KDB8UikpOylwZT1sKygwIT0oMHx4ZChBKyhsPDw1KXwwLHcsTSsocDw8NSl8MCkpJjEpfDAscD1wKzF8MCxsPXBlO2M9YysxfDB9''@;'; + put 'put ''cmV0dXJuIHBlPTB8VjAoQSxsPDw1KSxGdChHKSxGdChiKSxGdChrKSxGdChNKSxGdChEKSxhW2Y+PjJdPWwsbGU9SywwfHBlfShTdCxtLGJlLE9lKSwxJmFbNDczMjNdfDAmJihwZT0wfGFbcGU+PjJdLG90PTB8YVtnZT4+Ml0sU3Q9MHxhW2JlPj4yXSxhW09lPj4yXT1hW0xlPj4yXSxhW09l''@;'; + put 'put ''KzQ+PjJdPWFbTGUrND4+Ml0sYVtPZSs4Pj4yXT1hW0xlKzg+PjJdLGFbT2UrMTI+PjJdPWFbTGUrMTI+PjJdLGFbT2UrMTY+PjJdPWFbTGUrMTY+PjJdLGFbT2UrMjA+PjJdPWFbTGUrMjA+PjJdLGFbT2UrMjQ+PjJdPWFbTGUrMjQ+PjJdLGFbT2UrMjg+PjJdPWFbTGUrMjg+PjJdLGZ1bmN0''@;'; + put 'put ''aW9uIHVCKGwsYyxmLHAsbSl7bHw9MCxjfD0wLHB8PTAsbXw9MDt2YXIgQSx3LGIsayxNLEQsUixHLEsscGUsZ2UsYmU9MCxPZT0wLExlPTA7Zm9yKEs9bGUsbGU9bGUrMTI4fDAsRz1LKzk2fDAsUj1LKzY0fDAsYj1LKzMyfDAscGU9SysxNnwwLGdlPUssTT0rX1sxNisoZnw9MCk+PjNdLEQ9''@;'; + put 'put ''K19bZj4+M10saz0rX1tmKzI0Pj4zXSxBPStfW2YrOD4+M10sX3UoMTM3NzcwLHc9MHxhWzE1NzEyXSksYVtnZT4+Ml09MTAsYVtnZSs0Pj4yXT0xMCxhW2dlKzg+PjJdPX5+KE0rMTAtRCksYVtnZSsxMj4+Ml09fn4oaysxMC1BKSxUMCh3LDEzODIwMCxnZSksX1twZT4+M109MTAtRCxfW3Bl''@;'; + put 'put ''Kzg+PjNdPTEwLUEsVDAodywxMzgyNDgscGUpLF91KDEzODI2NSx3KSxmPTA7ISgoMHxmKT49KDB8YykpOylMZT0rX1tsKyg3MipmfDApKzQ4Pj4zXSxPZT0rX1tsKyg3MipmfDApKzU2Pj4zXSxiZT0rX1tsKyg3MipmfDApKzY0Pj4zXSxfW2I+PjNdPStfW2wrKDcyKmZ8MCkrNDA+PjNdLF9b''@;'; + put 'put ''Yis4Pj4zXT1MZSxfW2IrMTY+PjNdPU9lLF9bYisyND4+M109YmUsVDAodywxMzgyODQsYiksZj1mKzF8MDtmb3IoX3UoMTM4MzAyLHcpLGY9MDshKCgwfGYpPj0oMHxtKSk7KWJlPStfW3ArKGY8PDUpKzg+PjNdLE9lPStfW3ArKGY8PDUpKzE2Pj4zXSxMZT0rX1twKyhmPDw1KSsyND4+M10s''@;'; + put 'put ''X1tSPj4zXT0rX1twKyhmPDw1KT4+M10sX1tSKzg+PjNdPWJlLF9bUisxNj4+M109T2UsX1tSKzI0Pj4zXT1MZSxUMCh3LDEzODMyMSxSKSxmPWYrMXwwO191KDEzODMzOSx3KSxfW0c+PjNdPUQsX1tHKzg+PjNdPUEsX1tHKzE2Pj4zXT1NLF9bRysyND4+M109ayxUMCh3LDEzODMyMSxHKSxf''@;'; + put 'put ''dSgxMzgwODYsdyksbGU9S30ocGUsb3QsT2UsbSxTdCkpLGFbKHA9UmUrOHwwKT4+Ml09MHx2cig3MiooMHxhW2JlPj4yXSl8MCksYVtSZT4+Ml09YVtiZT4+Ml0sZj0wfGFbYmU+PjJdLGM9MDshKCgwfGMpPj0oMHxmKSk7KWFbKFN0PSgwfGFbcD4+Ml0pKyg3MipjfDApKzQwfDApPj4yXT1h''@;'; + put 'put ''WyhvdD1tKyhjPDw1KXwwKT4+Ml0sYVtTdCs0Pj4yXT1hW290KzQ+PjJdLGFbU3QrOD4+Ml09YVtvdCs4Pj4yXSxhW1N0KzEyPj4yXT1hW290KzEyPj4yXSxhW1N0KzE2Pj4yXT1hW290KzE2Pj4yXSxhW1N0KzIwPj4yXT1hW290KzIwPj4yXSxhW1N0KzI0Pj4yXT1hW290KzI0Pj4yXSxhW1N0''@;'; + put 'put ''KzI4Pj4yXT1hW290KzI4Pj4yXSxjPWMrMXwwO3JldHVybiBGdChtKSxhW09lPj4yXT1hW0xlPj4yXSxhW09lKzQ+PjJdPWFbTGUrND4+Ml0sYVtPZSs4Pj4yXT1hW0xlKzg+PjJdLGFbT2UrMTI+PjJdPWFbTGUrMTI+PjJdLGFbT2UrMTY+PjJdPWFbTGUrMTY+PjJdLGFbT2UrMjA+PjJdPWFb''@;'; + put 'put ''TGUrMjA+PjJdLGFbT2UrMjQ+PjJdPWFbTGUrMjQ+PjJdLGFbT2UrMjg+PjJdPWFbTGUrMjg+PjJdLGFbUmUrMTY+PjJdPTB8ZnVuY3Rpb24gTGIobCxjKXtjfD0wO3ZhciBwZSxiZSxMZSxIZSxWZSxxZSxudCxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLEs9''@;'; + put 'put ''MCxnZT0wLE9lPTAsUmU9MCxXZT0wLG90PTAsU3Q9MDtmb3IobnQ9bGUsbGU9bGUrMzJ8MCxiZT1udCsxNnwwLGs9bnQsVmU9MHxmdW5jdGlvbiBaOChsKXt2YXIgYztyZXR1cm4gbHw9MCxjPTB8dnIoMjQpLGFbYz4+Ml09MCxhW2MrMTY+PjJdPTB8dnIoNDAqbHwwKSwwfGN9KChSZT0wfGFb''@;'; + put 'put ''KGx8PTApPj4yXSk8PDJ8MikscWU9MHxpcyg1NTk2MCwwfGFbNDU4MV0pLExlPTB8aXMoNTU5OTYsMHxhWzQ1ODFdKSxSZT0wfHZyKFJlPDw3KSxtPTB8dnIoYVtsPj4yXTw8NCksSGU9bCs4fDAsQT1jKzE2fDAsdz1rKzh8MCxiPWMrMjR8MCxNPWMrOHwwLGY9MDshKCgwfGYpPj0oMHxhW2w+''@;'; + put 'put ''PjJdKSk7KVI9KEQ9MHxhW0hlPj4yXSkrKDcyKmZ8MCl8MCxhW0QrKDcyKmZ8MCkrMzI+PjJdPTQsYVsoRz1EKyg3MipmfDApKzM2fDApPj4yXT1tKyhmPDwyPDwyKSxLPUQrKDcyKmZ8MCkrNDB8MCwocD0rX1tEKyg3MipmfDApKzU2Pj4zXSk8K19bQT4+M10mJihfW2s+PjNdPXAsX1t3Pj4z''@;'; + put 'put ''XT0rX1tEKyg3MipmfDApKzQ4Pj4zXSxhW2JlPj4yXT1hW2s+PjJdLGFbYmUrND4+Ml09YVtrKzQ+PjJdLGFbYmUrOD4+Ml09YVtrKzg+PjJdLGFbYmUrMTI+PjJdPWFbaysxMj4+Ml0sZ2U9MHxIbChWZSxxZSxiZSxSZSwxKSxhW2dlKzIwPj4yXT1SLGFbYVtHPj4yXT4+Ml09Z2UpLChwPStf''@;'; + put 'put ''W0QrKDcyKmZ8MCkrNjQ+PjNdKTwrX1tiPj4zXSYmKF9baz4+M109K19bSz4+M10sX1t3Pj4zXT1wLGFbYmU+PjJdPWFbaz4+Ml0sYVtiZSs0Pj4yXT1hW2srND4+Ml0sYVtiZSs4Pj4yXT1hW2srOD4+Ml0sYVtiZSsxMj4+Ml09YVtrKzEyPj4yXSxnZT0wfEhsKFZlLExlLGJlLFJlLDApLGFb''@;'; + put 'put ''Z2UrMjA+PjJdPVIsYVs0KygwfGFbRz4+Ml0pPj4yXT1nZSksK19bSz4+M10+K19bYz4+M10mJihhW2JlPj4yXT1hW0s+PjJdLGFbYmUrND4+Ml09YVtLKzQ+PjJdLGFbYmUrOD4+Ml09YVtLKzg+PjJdLGFbYmUrMTI+PjJdPWFbSysxMj4+Ml0sZ2U9MHxIbChWZSxxZSxiZSxSZSwxKSxhW2dl''@;'; + put 'put ''KzI0Pj4yXT1SLGFbOCsoMHxhW0c+PjJdKT4+Ml09Z2UpLCtfW0QrKDcyKmZ8MCkrNDg+PjNdPitfW00+PjNdJiYoYVtiZT4+Ml09YVtLPj4yXSxhW2JlKzQ+PjJdPWFbSys0Pj4yXSxhW2JlKzg+PjJdPWFbSys4Pj4yXSxhW2JlKzEyPj4yXT1hW0srMTI+PjJdLGdlPTB8SGwoVmUsTGUsYmUs''@;'; + put 'put ''UmUsMCksYVtnZSsyND4+Ml09UixhWzEyKygwfGFbRz4+Ml0pPj4yXT1nZSksZj1mKzF8MDtmb3IoUj0wfHZyKGFbVmU+PjJdPDwyKSxwZT1sKzR8MCxnZT1sKzEyfDAsRz1iZSs4fDAsTT0wLEs9MCxEPTA7Oyl7aWYoKDB8RCk+PSgwfChmPTB8YVtwZT4+Ml0pKSl7Yz0wO2JyZWFrfWZvcih3''@;'; + put 'put ''PShBPTB8YVtnZT4+Ml0pKyg3MipEfDApfDAsYVsoYj1BKyg3MipEfDApKzM2fDApPj4yXT1SKyhNPDwyKSxhW2JlPj4yXT1hWyhjPUErKDcyKkR8MCkrNDB8MCk+PjJdLGFbYmUrND4+Ml09YVtjKzQ+PjJdLGFbYmUrOD4+Ml09YVtjKzg+PjJdLGFbYmUrMTI+PjJdPWFbYysxMj4+Ml0sYz1B''@;'; + put 'put ''Kyg3MipEfDApKzU2fDAsaz1BKyg3MipEfDApKzMyfDAsZj0wfG1pWzYzJmFbTGU+PjJdXShMZSxiZSw1MTIpO2YmJitfW2YrOD4+M108K19bYz4+M107KW90PTB8YVtmPj4yXSxXZT0wfGFbYj4+Ml0sYVtrPj4yXT0xKyhtPTB8YVtrPj4yXSksYVtXZSsobTw8Mik+PjJdPW90LGFbMjQrKDB8''@;'; + put 'put ''YVtmPj4yXSk+PjJdPXcsZj0wfG1pWzYzJmFbTGU+PjJdXShMZSxmLDgpO2ZvcihtPUErKDcyKkR8MCkrNjR8MCxmPTB8bWlbNjMmYVtxZT4+Ml1dKHFlLGJlLDUxMik7Oyl7aWYoIWYpe09lPTIwO2JyZWFrfWlmKCEoK19bZisxNj4+M108KHA9K19bbT4+M10pKSlicmVhaztjPTB8YVtmPj4y''@;'; + put 'put ''XSxXZT0wfGFbYj4+Ml0sYVtrPj4yXT0xKyhvdD0wfGFbaz4+Ml0pLGFbV2UrKG90PDwyKT4+Ml09YyxhWzI0KygwfGFbZj4+Ml0pPj4yXT13LGY9MHxtaVs2MyZhW3FlPj4yXV0ocWUsZiw4KX1mb3IoMjA9PSgwfE9lKSYmKE9lPTAscD0rX1ttPj4zXSksX1tHPj4zXT1wLGM9QSsoNzIqRHww''@;'; + put 'put ''KSs1NnwwLGY9MHxtaVs2MyZhW0xlPj4yXV0oTGUsYmUsNTEyKTs7KXtpZighZil7T2U9MjU7YnJlYWt9aWYoISgrX1tmKzg+PjNdPChwPStfW2M+PjNdKSkpYnJlYWs7U3Q9MHxhW2Y+PjJdLFdlPTB8YVtiPj4yXSxhW2s+PjJdPTErKG90PTB8YVtrPj4yXSksYVtXZSsob3Q8PDIpPj4yXT1T''@;'; + put 'put ''dCxhWzIwKygwfGFbZj4+Ml0pPj4yXT13LGY9MHxtaVs2MyZhW0xlPj4yXV0oTGUsZiw4KX1mb3IoMjU9PSgwfE9lKSYmKE9lPTAscD0rX1tjPj4zXSksX1tiZT4+M109cCxfW0c+PjNdPStfW0ErKDcyKkR8MCkrNDg+PjNdLGY9MHxtaVs2MyZhW3FlPj4yXV0ocWUsYmUsNTEyKTtmJiYrX1tm''@;'; + put 'put ''KzE2Pj4zXTwrX1ttPj4zXTspV2U9MHxhW2Y+PjJdLG90PTB8YVtiPj4yXSxhW2s+PjJdPTErKFN0PTB8YVtrPj4yXSksYVtvdCsoU3Q8PDIpPj4yXT1XZSxhWzIwKygwfGFbZj4+Ml0pPj4yXT13LGY9MHxtaVs2MyZhW3FlPj4yXV0ocWUsZiw4KTtNPShTdD0wfGFbaz4+Ml0pK018MCxLPSgw''@;'; + put 'put ''fFN0KT4oMHxLKT9TdDpLLEQ9RCsxfDB9Zm9yKDshKCgwfGMpPj0oMHxmKSk7KWNCKCgwfGFbZ2U+PjJdKSsoNzIqY3wwKXwwKSxjPWMrMXwwLGY9MHxhW3BlPj4yXTtmb3IoYVsoU3Q9MHxhW1ZlKzE2Pj4yXSkrKDQwKihmPTB8YVtWZT4+Ml0pfDApKzMyPj4yXT1mLGFbU3QrKDQwKihmPWYr''@;'; + put 'put ''MXwwKXwwKSszMj4+Ml09ZixmdW5jdGlvbiBTUihsLGMpe3ZhciBtLGY9MCxwPTA7Zm9yKGY9MHx2cigoNiooMHxhWyhsfD0wKT4+Ml0pfDApKygoY3w9MCk8PDEpPDwyKSxhW2wrMjA+PjJdPTB8dnIoMjQqKCgzKigwfGFbbD4+Ml0pfDApK2N8MCl8MCkscD0wfGFbbD4+Ml0sbT1sKzE2fDAs''@;'; + put 'put ''bD0wOyEoKDB8bCk+PSgwfHApKTspYVsoMHxhW20+PjJdKSsoNDAqbHwwKSsyOD4+Ml09ZixmPWYrMjR8MCxsPWwrMXwwO2ZvcihwPXArMnwwOyEoKDB8bCk+PSgwfHApKTspYVsoMHxhW20+PjJdKSsoNDAqbHwwKSsyOD4+Ml09ZixmPWYrKGM8PDIpfDAsbD1sKzF8MH0oVmUsSyksZj0wOyEo''@;'; + put 'put ''KDB8Zik+PSgwfGFbbD4+Ml0pKTspJDgoKDB8YVtIZT4+Ml0pKyg3MipmfDApfDAsVmUpLGY9ZisxfDA7cmV0dXJuIE5sKHFlKSxObChMZSksRnQoUmUpLGZ1bmN0aW9uIHlmKGwpe3ZhciBtLEEsdyxiLGssYz0wLGY9MCxwPTA7Zm9yKGs9bGUsbGU9bGUrMTZ8MCxiPWsrOHwwLHc9ayxtPTE2''@;'; + put 'put ''KyhsfD0wKXwwLEE9MHxhWzE1NzEyXSxwPTA7Oyl7aWYoKDB8cCk+PSgwfGFbbD4+Ml0pKXtjPTEwO2JyZWFrfWlmKDA9PSgwfGFbKGY9KGM9MHxhW20+PjJdKSsoNDAqcHwwKSsyMHwwKT4+Ml0pJiYoYVt3Pj4yXT1wLFQwKEEsMTM4MDk2LHcpLDA9PSgwfGFbZj4+Ml0pKSl7Yz01O2JyZWFr''@;'; + put 'put ''fWlmKDA9PSgwfGFbKGM9YysoNDAqcHwwKSsyNHwwKT4+Ml0pJiYoYVtiPj4yXT1wLFQwKEEsMTM4MTQ4LGIpLDA9PSgwfGFbYz4+Ml0pKSl7Yz04O2JyZWFrfXA9cCsxfDB9aWYoNT09KDB8YykpUHIoMTM4MTE4LDEzODEzMSwzMTEsMTM4MTM4KTtlbHNlIGlmKDg9PSgwfGMpKVByKDEzODE3''@;'; + put 'put ''MCwxMzgxMzEsMzEzLDEzODEzOCk7ZWxzZSBpZigxMD09KDB8YykpbGU9a30oVmUpLGZ1bmN0aW9uIFVNKGwpe3ZhciBjLGYscD0wO2ZvcihhWzgrKGx8PTApPj4yXT1mPTB8YVtsPj4yXSxhW2wrMTI+PjJdPWFbbCs0Pj4yXSxjPWwrMTZ8MCxsPTA7ISgoMHxsKT49KDB8ZikpOylpdFsocD0w''@;'; + put 'put ''fGFbYz4+Ml0pKyg0MCpsfDApKzE4Pj4xXT0wfGl0W3ArKDQwKmx8MCkrMTY+PjFdLGw9bCsxfDB9KFZlKSxsZT1udCwwfFZlfShSZSxPZSksbGU9SGUsMHxSZX0sdzAsUzAsZnVuY3Rpb24gemEobCxjKXtyZXR1cm4oMHxhWyhsfD0wKT4+Ml0pLSgwfGFbKGN8PTApPj4yXSl8MH0sWmksZnVu''@;'; + put 'put ''Y3Rpb24ga2IobCxjKXtyZXR1cm4gMHx5MCgwfGFbKGx8PTApPj4yXSwwfGFbKGN8PTApPj4yXSl9LGZ1bmN0aW9uIGtzKGwsYyl7cmV0dXJuIDB8eTAoMHxhWyhsfD0wKT4+Ml0sMHxhWyhjfD0wKT4+Ml0pfSxmdW5jdGlvbiBqQihsLGMpe2x8PTAsY3w9MDt2YXIgbSxmPTAscD0wO2Zvciht''@;'; + put 'put ''PTB8YVs0NzUxM10sZj0wLHA9MDszIT0oMHxwKTspZj1mKygyIT0oMHxKZigwfGFbYVttKyg1MipsfDApKzQrKHA8PDQpPj4yXT4+Ml0sMHxhW2FbbSsoNTIqbHwwKSs0KyhwPDw0KSs0Pj4yXT4+Ml0sYykpJjEpfDAscD1wKzF8MDtyZXR1cm4gMSYoMz09KDB8Zil8MD09KDB8ZikpfDB9LGZ1''@;'; + put 'put ''bmN0aW9uIFpCKGwsYyl7Y3w9MDt2YXIgZj0wLHA9MCxtPTA7cD0oZj0wfGFbNDc1MTNdKSsoNTIqKGx8PTApfDApfDA7ZTpkb3tpZigwfGFbcD4+Ml0pZj0wO2Vsc2UgaWYoYVtwPj4yXT0xLCgwfGwpPT0oMHxjKSlmPTE7ZWxzZXtmb3IobT0wOyEoKDB8bSk+PTMpOyl7aWYocD0wfGFbZiso''@;'; + put 'put ''NTIqbHwwKSs0KyhtPDw0KSsxMj4+Ml0pe2lmKDB8WkIoKHAtZnwwKS81MnwwLGMpKXtmPTE7YnJlYWsgZX1mPTB8YVs0NzUxM119bT1tKzF8MH1hW2YrKDUyKmx8MCk+PjJdPTAsZj0wfX13aGlsZSgwKTtyZXR1cm4gMHxmfSxVYSxmdW5jdGlvbiBuUChsLGMpe3JldHVybiAwfCgobD0wfEJp''@;'; + put 'put ''WzEyNyZhWzM2NCsobHw9MCk+PjJdXSgwfGFbbCszNjg+PjJdLGN8PTApKT4+PjA+NjU1MzU/MDphWzU2OTQwKygoKDB8WHRbMTQ0MDQ0KyhsPj4+OCk+PjBdKTw8M3xsPj4+NSY3KTw8Mik+PjJdJjE8PCgzMSZsKSl9LGZ1bmN0aW9uIHJQKGwsYyl7cmV0dXJuIDB8KChsPTB8QmlbMTI3JmFb''@;'; + put 'put ''MzY0KyhsfD0wKT4+Ml1dKDB8YVtsKzM2OD4+Ml0sY3w9MCkpPj4+MD42NTUzNT8wOmFbNTY5NDArKCgoMHxYdFsxNDM3ODgrKGw+Pj44KT4+MF0pPDwzfGw+Pj41JjcpPDwyKT4+Ml0mMTw8KDMxJmwpKX0sZnVuY3Rpb24gQl8obCxjKXtyZXR1cm4gMHwoKGw9MHxCaVsxMjcmYVszNjQrKGx8''@;'; + put 'put ''PTApPj4yXV0oMHxhW2wrMzY4Pj4yXSxjfD0wKSk+Pj4wPjY1NTM1PzE6KDB8RmQobCkpPj4+MzEpfSxmdW5jdGlvbiBvZmUobCxjKXtyZXR1cm4oMHxhW2FbKGx8PTApPj4yXT4+Ml0pLSgwfGFbYVsoY3w9MCk+PjJdPj4yXSl8MH0sSzEsSzEsSzEsSzEsSzEsSzEsSzEsSzEsSzEsSzEsSzEs''@;'; + put 'put ''SzEsSzEsSzEsSzEsSzFdLGQ4PVtMTCxmdW5jdGlvbiBwOWUobCxjLGYscCl7bHw9MCxmPStmLHA9K3A7dmFyIGssRyxLLG09MCxBPTAsdz0wLGI9MCxNPTAsRD0wLFI9MCxwZT0wLGdlPTAsYmU9MCxPZT0wO0s9bGUsbGU9bGUrODB8MCxEPUsrNjR8MCxHPUsrNjh8MCxBPUsrNDh8MCx3PUsr''@;'; + put 'put ''MzJ8MCxiPUsrMTZ8MCxrPUssbT0wfGFbKE09MTYrKGN8PTApfDApPj4yXTtlOmRve2lmKDB8YVttKzIxMj4+Ml0pYVtHPj4yXT00LGJlPS41KitfW20rMzI+PjNdK2YsT2U9LjUqK19bbSs0MD4+M10rcCxhW2wrNDA+PjJdPTEsQT0wfFFuKDY0KSxfW0E+PjNdPWJlLF9bQSs4Pj4zXT1PZSxn''@;'; + put 'put ''ZT0tYmUsX1tBKzE2Pj4zXT1nZSxfW0ErMjQ+PjNdPU9lLF9bQSszMj4+M109Z2UsT2U9LU9lLF9bQSs0MD4+M109T2UsX1tBKzQ4Pj4zXT1iZSxfW0ErNTY+PjNdPU9lLFI9MjE7ZWxzZSBzd2l0Y2goMHwkNShjKSl7Y2FzZSAxOnN3aXRjaChhW0c+PjJdPWI9MHxhWzgrKHc9MHxhWzEyKyht''@;'; + put 'put ''PTB8YVtNPj4yXSk+PjJdKT4+Ml0sMHxmZVsobT0wfGFbYVttKzg+PjJdPj4yXSk+PjBdKXtjYXNlIDk4OlI9MHxaaShtLDEwODIzNik/ODoxMTticmVhaztjYXNlIDExMjpSPTA9PSgwfFppKG0sMTA1NzIxKSkmJjAhPSgwfEgyZSgwfGFbdys0ND4+Ml0sYikpPzExOjg7YnJlYWs7ZGVmYXVs''@;'; + put 'put ''dDpSPTh9ZG97aWYoOD09KDB8Uikpe2lmKCgwfGIpPDMpe2FbbCs0MD4+Ml09MD09KDB8YVt3Pj4yXSk/MDoyLFI9MTc7YnJlYWt9YVsobT1sKzQwfDApPj4yXT0wO2JyZWFrfTExPT0oMHxSKSYmKGFbKG09bCs0MHwwKT4+Ml09MSwoMHxiKTw9MiYmKFI9MTcpKX13aGlsZSgwKTtpZigxNz09''@;'; + put 'put ''KDB8Uikpe0E9MHxVVihjLEcsZixwKSxSPTIxO2JyZWFrIGV9aWYoQT0wfFFuKGI8PDQpLHc9dys0NHwwLDE9PSgwfGFbbT4+Ml0pKXtfW0E+PjNdPS4wMTM4ODg4ODg4ODg4ODg4ODgqK19bKFI9MHxhW3c+PjJdKT4+M10rKHBlPWYpLF9bQSs4Pj4zXT0uMDEzODg4ODg4ODg4ODg4ODg4Kitf''@;'; + put 'put ''W1IrOD4+M10rKGY9cCksX1tBKzE2Pj4zXT0uMDEzODg4ODg4ODg4ODg4ODg4KitfW1IrMTY+PjNdLXBlLF9bQSsyND4+M109LjAxMzg4ODg4ODg4ODg4ODg4OCorX1tSKzI0Pj4zXStmLF9bQSszMj4+M109LjAxMzg4ODg4ODg4ODg4ODg4OCorX1tSKzMyPj4zXS1wZSxfW0ErNDA+PjNdPS4w''@;'; + put 'put ''MTM4ODg4ODg4ODg4ODg4ODgqK19bUis0MD4+M10tZixfW0ErNDg+PjNdPS4wMTM4ODg4ODg4ODg4ODg4ODgqK19bUis0OD4+M10rcGUsX1tBKzU2Pj4zXT0uMDEzODg4ODg4ODg4ODg4ODg4KitfW1IrNTY+PjNdLWYsUj0yMTticmVhayBlfWZvcihtPTA7Oyl7aWYoKDB8bSk+PSgwfGIpKXtS''@;'; + put 'put ''PTIxO2JyZWFrIGV9Z2U9K0QwKCsoKHBlPStfWyhSPTB8YVt3Pj4yXSkrKG08PDQpKzg+PjNdKSpwZSsoYmU9K19bUisobTw8NCk+PjNdKSpiZSkpLF9bQSsobTw8NCk+PjNdPShmL2dlKzEpKmJlKi4wMTM4ODg4ODg4ODg4ODg4ODgsX1tBKyhtPDw0KSs4Pj4zXT0ocC9nZSsxKSpwZSouMDEz''@;'; + put 'put ''ODg4ODg4ODg4ODg4ODg4LG09bSsxfDB9Y2FzZSAyOmFbRz4+Ml09NCxSPTB8UW4oNjQpLE9lPStfWzMyKyhjPTB8YVsxMisoMHxhW00+PjJdKT4+Ml0pPj4zXSxnZT0rX1tjKzQwPj4zXSxRVihBLEQ9fn4rX1tjKzE2Pj4zXSxjPX5+K19bYysyND4+M10sYmU9LWYscGU9LXApLGFbUj4+Ml09''@;'; + put 'put ''YVtBPj4yXSxhW1IrND4+Ml09YVtBKzQ+PjJdLGFbUis4Pj4yXT1hW0ErOD4+Ml0sYVtSKzEyPj4yXT1hW0ErMTI+PjJdLEE9UisxNnwwLFFWKHcsTT1+fk9lLGMsZixwZSksYVtBPj4yXT1hW3c+PjJdLGFbQSs0Pj4yXT1hW3crND4+Ml0sYVtBKzg+PjJdPWFbdys4Pj4yXSxhW0ErMTI+PjJd''@;'; + put 'put ''PWFbdysxMj4+Ml0sQT1SKzMyfDAsUVYoYixNLGM9fn5nZSxmLHApLGFbQT4+Ml09YVtiPj4yXSxhW0ErND4+Ml09YVtiKzQ+PjJdLGFbQSs4Pj4yXT1hW2IrOD4+Ml0sYVtBKzEyPj4yXT1hW2IrMTI+PjJdLEE9Uis0OHwwLFFWKGssRCxjLGJlLHApLGFbQT4+Ml09YVtrPj4yXSxhW0ErND4+''@;'; + put 'put ''Ml09YVtrKzQ+PjJdLGFbQSs4Pj4yXT1hW2srOD4+Ml0sYVtBKzEyPj4yXT1hW2srMTI+PjJdLGFbbCs0MD4+Ml09MSxBPVIsUj0yMTticmVhayBlO2Nhc2UgMzphW2wrNDA+PjJdPTIsQT0wfFVWKGMsRyxmLHApLFI9MjE7YnJlYWsgZTtkZWZhdWx0OmFbRD4+Ml09YVthWzgrKDB8YVtNPj4y''@;'; + put 'put ''XSk+PjJdPj4yXSwkcigxLDkzODgzLEQpLG09MTticmVhayBlfX13aGlsZSgwKTtyZXR1cm4gMjE9PSgwfFIpJiYoYVtsKzM2Pj4yXT1BLGFbbCszMj4+Ml09bT0wfGFbRz4+Ml0sTjJlKEEsbSxsLGwrMTZ8MCksKDB8bSk+KDB8YVs0NjkxNF0pJiYoYVs0NjkxNF09bSksbT0wKSxsZT1LLDB8''@;'; + put 'put ''bX0sZnVuY3Rpb24gZzllKGwsYyxmLHApe2x8PTAsZj0rZixwPStwO3ZhciBSLEssbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLEc9MCxwZT0wLGdlPTAsYmU9MCxPZT0wO0s9bGUsbGU9bGUrODB8MCxNPUsrNjR8MCxSPUsrNjh8MCxBPUsrNDh8MCx3PUsrMzJ8MCxiPUsrMTZ8MCxrPUss''@;'; + put 'put ''bT0wfGFbKEQ9MTYrKGN8PTApfDApPj4yXTtlOmRve2lmKDB8YVttKzIxMj4+Ml0pYVtSPj4yXT00LGJlPS41KitfW20rMzI+PjNdLE9lPS41KitfW20rNDA+PjNdLGFbbCs0MD4+Ml09MSxBPTB8UW4oNjQpLF9bQT4+M109YmUsX1tBKzg+PjNdPU9lLGdlPS1iZSxfW0ErMTY+PjNdPWdlLF9b''@;'; + put 'put ''QSsyND4+M109T2UsX1tBKzMyPj4zXT1nZSxPZT0tT2UsX1tBKzQwPj4zXT1PZSxfW0ErNDg+PjNdPWJlLF9bQSs1Nj4+M109T2UsRz0yMDtlbHNlIHN3aXRjaCgwfCQ1KGMpKXtjYXNlIDE6YVtSPj4yXT1iPTB8YVsoTT04KyhrPTB8YVsxMisoMHxhW0Q+PjJdKT4+Ml0pfDApPj4yXTt0OmRv''@;'; + put 'put ''e2lmKCgwfGIpPjIpZm9yKEE9MHxRbihiPDw0KSx3PWsrNDR8MCxtPTA7Oyl7aWYoKDB8bSk+PSgwfGIpKWJyZWFrIHQ7X1tBKyhtPDw0KT4+M109LjAxMzg4ODg4ODg4ODg4ODg4OCorX1soYz0wfGFbdz4+Ml0pKyhtPDw0KT4+M10sX1tBKyhtPDw0KSs4Pj4zXT0uMDEzODg4ODg4ODg4ODg4''@;'; + put 'put ''ODg4KitfW2MrKG08PDQpKzg+PjNdLG09bSsxfDB9ZWxzZSBBPTB8VVYoYyxSLDAsMCl9d2hpbGUoMCk7c3dpdGNoKDB8ZmVbKG09MHxhW2FbOCsoMHxhW0Q+PjJdKT4+Ml0+PjJdKT4+MF0pe2Nhc2UgOTg6MHxaaShtLDEwODIzNik/Rz0xMzptPTE7YnJlYWs7Y2FzZSAxMTI6MD09KDB8Wmko''@;'; + put 'put ''bSwxMDU3MjEpKSYmMCE9KDB8SDJlKEEsMHxhW1I+PjJdKSk/bT0xOkc9MTM7YnJlYWs7ZGVmYXVsdDpHPTEzfWRve2lmKDEzPT0oMHxHKSl7aWYoKDB8YVtNPj4yXSk8MyYmMHxhW2s+PjJdKXttPTI7YnJlYWt9bT0wfX13aGlsZSgwKTthW2wrNDA+PjJdPW0sRz0yMDticmVhayBlO2Nhc2Ug''@;'; + put 'put ''MjphW1I+PjJdPTQsRz0wfFFuKDY0KSxiZT0rX1szMisoRD0wfGFbMTIrKDB8YVtEPj4yXSk+PjJdKT4+M10scGU9K19bRCs0MD4+M10sS0QoQSxnZT0rX1tEKzE2Pj4zXSxPZT0rX1tEKzI0Pj4zXSksYVtHPj4yXT1hW0E+PjJdLGFbRys0Pj4yXT1hW0ErND4+Ml0sYVtHKzg+PjJdPWFbQSs4''@;'; + put 'put ''Pj4yXSxhW0crMTI+PjJdPWFbQSsxMj4+Ml0sQT1HKzE2fDAsS0QodyxiZSxPZSksYVtBPj4yXT1hW3c+PjJdLGFbQSs0Pj4yXT1hW3crND4+Ml0sYVtBKzg+PjJdPWFbdys4Pj4yXSxhW0ErMTI+PjJdPWFbdysxMj4+Ml0sQT1HKzMyfDAsS0QoYixiZSxwZSksYVtBPj4yXT1hW2I+PjJdLGFb''@;'; + put 'put ''QSs0Pj4yXT1hW2IrND4+Ml0sYVtBKzg+PjJdPWFbYis4Pj4yXSxhW0ErMTI+PjJdPWFbYisxMj4+Ml0sQT1HKzQ4fDAsS0QoayxnZSxwZSksYVtBPj4yXT1hW2s+PjJdLGFbQSs0Pj4yXT1hW2srND4+Ml0sYVtBKzg+PjJdPWFbays4Pj4yXSxhW0ErMTI+PjJdPWFbaysxMj4+Ml0sYVtsKzQw''@;'; + put 'put ''Pj4yXT0xLEE9RyxHPTIwO2JyZWFrIGU7Y2FzZSAzOmFbbCs0MD4+Ml09MixBPTB8VVYoYyxSLDAsMCksRz0yMDticmVhayBlO2RlZmF1bHQ6YVtNPj4yXT1hW2FbOCsoMHxhW0Q+PjJdKT4+Ml0+PjJdLCRyKDEsOTM5MTksTSksbT0xO2JyZWFrIGV9fXdoaWxlKDApO3JldHVybiAyMD09KDB8''@;'; + put 'put ''RykmJihtPTB8YVtSPj4yXSwxIT1mfDEhPXAmJmZ1bmN0aW9uICREKGwsYyxmLHApe2x8PTAsY3w9MCxmPStmLHA9K3A7dmFyIG09MCxBPTA7Zm9yKG09MDshKCgwfG0pPj0oMHxjKSk7KV9bbD4+M109K19bbD4+M10qZixfWyhBPWwrOHwwKT4+M109K19bQT4+M10qcCxsPWwrMTZ8MCxtPW0r''@;'; + put 'put ''MXwwfShBLG0sZixwKSxhW2wrMzY+PjJdPUEsYVtsKzMyPj4yXT1tLE4yZShBLG0sbCxsKzE2fDApLCgwfG0pPigwfGFbNDY5MTRdKSYmKGFbNDY5MTRdPW0pLG09MCksbGU9SywwfG19LExMXSxtaT1bTTIsZnVuY3Rpb24gd0QobCxjLGYpe2x8PTAsZnw9MDt2YXIgbSxwPTA7cD04KyhjfD0w''@;'; + put 'put ''KXwwLG09NDgrKGY9OCsobD0wfHZyKDY0KSl8MCl8MDtkb3thW2Y+PjJdPWFbcD4+Ml0sZj1mKzR8MCxwPXArNHwwfXdoaWxlKCgwfGYpPCgwfG0pKTtyZXR1cm4gYVtsKzU2Pj4yXT1jPTB8YVtjKzU2Pj4yXSxpdFsxNjgrKDB8YVtjKzE2Pj4yXSk+PjFdPTEsMHxsfSxmdW5jdGlvbiB0TChs''@;'; + put 'put ''LGMsZil7cmV0dXJuIGN8PTAsZnw9MCxmPTB8ZnVuY3Rpb24gQ0sobCl7dmFyIG0sYz0wLGY9MCxwPTA7cmV0dXJuKDB8KGM9MHxhWzQrKGw9MHxhWyhtPTgrKGx8PTApfDApPj4yXSk+PjJdKSk9PSgwfGFbbCs4Pj4yXSkmJigocD0wfGFbKGY9bCsxMnwwKT4+Ml0pP2w9cDoobD0wfGYxZSgo''@;'; + put 'put ''KGMtKDB8YVtsPj4yXSl8MCkvMjB8MCk8PDEpLGFbZj4+Ml09bCksYVttPj4yXT1sLGFbbCs0Pj4yXT1jPTB8YVtsPj4yXSksYVtsKzQ+PjJdPWMrMjAsMHxjfSgwfGFbNDY5MjRdKSxhW2Y+PjJdPWFbYz4+Ml0sYVtmKzQ+PjJdPWFbYys0Pj4yXSxhW2YrOD4+Ml09MCwwfGZ9LGZ1bmN0aW9u''@;'; + put 'put ''IFNBKGwsYyxmKXtyZXR1cm4gY3w9MCxmfD0wLGY9MHxRbigxNiksYVtmKzEyPj4yXT0wLGFbZis4Pj4yXT1hW2MrOD4+Ml0sMHxmfSxmdW5jdGlvbiBvVChsLGMsZil7cmV0dXJuIGN8PTAsZnw9MCxmPTB8UW4oMTIpLGFbZis4Pj4yXT1hW2MrOD4+Ml0sMHxmfSxmdW5jdGlvbiBCUChsLGMs''@;'; + put 'put ''Zil7Y3w9MCxmfD0wO3ZhciBSLEcsSyxwZSxnZSxPZSxSZSxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLGJlPTAsTGU9MDs0MDk2JmFbYVsoT2U9OCsobHw9MCl8MCk+PjJdPj4yXXwwJiZDYyhsLDApLFI9MHxhWyhiZT0wfGFbbCs0Pj4yXSk+PjJdLEc9MHxhW2JlKzQ+PjJdLFJl''@;'; + put 'put ''PTB8YVsoZ2U9YmUrOHwwKT4+Ml0sSz0wfGFbYmUrMjA+PjJdLGFbKHBlPWwrMjB8MCk+PjJdPW09LTMyNzY5JmFbcGU+PjJdO2U6ZG97aWYoYyl7aWYoMjA0OSZmfDApe2lmKCh3PTA9PSgxJmZ8MCkpfDA9PSgwfChwPTB8YVsoQT1iZSsxMnwwKT4+Ml0pKSltPWM7ZWxzZXtpZighKHA9MHxt''@;'; + put 'put ''aVs2MyZwXShsLGMsYmUpKSl7cD0wO2JyZWFrfW09cH1kb3tpZighKCgwfFJlKT4tMSkpe2lmKDB8KHA9MHxxMFsxMjcmYVtsKzEyPj4yXV0obCwwLDEyLGJlKSkpe2FbcCs4Pj4yXT1tLHc9cDticmVha31pZighKDB8YVtBPj4yXSkpe3A9MDticmVhayBlfWlmKHd8MD09KDB8KHA9MHxhW2Jl''@;'; + put 'put ''KzE2Pj4yXSkpKXtwPTA7YnJlYWsgZX1kbFsxMjcmcF0obCxtLGJlKSxwPTA7YnJlYWsgZX13PW0rUmV8MH13aGlsZSgwKTtwPTB8YVsoQT0wfGFbT2U+PjJdKT4+Ml07ZG97aWYoISgxMjgmcCkpe2lmKCEoMTYmcCkpe2lmKDMyJnApe0xlPTQ4O2JyZWFrfUxlPTUxO2JyZWFrfWlmKHA9MCE9''@;'; + put 'put ''KDB8KG09MHxhW0ErND4+Ml0pKSw4MTkyJmYpe2lmKCFwKXtMZT01MTticmVha31pZighKHA9MHxhW20+PjJdKSl7TGU9NTE7YnJlYWt9YVt3Pj4yXT1wLGFbcCs0Pj4yXT13LGFbdys0Pj4yXT1tLGFbbT4+Ml09dzticmVha31pZighcCl7TGU9NDg7YnJlYWt9aWYoKDB8bSk9PSgwfGFbQSs4''@;'; + put 'put ''Pj4yXSkpe0xlPTQ4O2JyZWFrfWFbdys0Pj4yXT1sPTB8YVsoYmU9bSs0fDApPj4yXSxhW2w+PjJdPXcsYVt3Pj4yXT1tLGFbYmU+PjJdPXc7YnJlYWt9TGU9ODE5MiZmPzUxOjQ4fXdoaWxlKDApO2lmKDQ4PT0oMHxMZSk/KGFbdz4+Ml09cD0wfGFbQSs4Pj4yXSxwP2Fbdys0Pj4yXT1hW3Ar''@;'; + put 'put ''ND4+Ml06cD13LGFbcCs0Pj4yXT13LGFbOCsoMHxhW09lPj4yXSk+PjJdPXcpOjUxPT0oMHxMZSkmJigocD0wfGFbKG09QSs4fDApPj4yXSk/KGFbYVsoYmU9cCs0fDApPj4yXT4+Ml09dyxhW3crND4+Ml09YVtiZT4+Ml0pOihhW20+PjJdPXcscD13KSxhW3ArND4+Ml09dyxhW3c+PjJdPTAp''@;'; + put 'put ''LCgwfChBPTB8YVsobT0xNisocD0wfGFbT2U+PjJdKXwwKT4+Ml0pKT4tMSYmKGFbbT4+Ml09QSsxKSxhW3ArND4+Ml09dywoMHxSZSk8MCl7cD0wfGFbdys4Pj4yXTticmVha31wPXcrKDAtUmUpfDA7YnJlYWt9dz0wfGFbT2U+PjJdO2Rve2lmKDUxMiZmKUxlPTY4O2Vsc2V7aWYoMHwocD0w''@;'; + put 'put ''fGFbdys0Pj4yXSkmJigwfChBPSgwfFJlKTwwPzB8YVtwKzg+PjJdOnArKDAtUmUpfDApKT09KDB8YykpYnJlYWs7cD1jK1J8MCwoMHxHKTwwPyhjPTB8YVtwPj4yXSxMZT02OCk6KGM9cCxMZT02OCl9fXdoaWxlKDApO2lmKDY4PT0oMHxMZSkpe0E9KDB8UmUpPDAsYj0oMHxHKTwwLGs9MD09''@;'; + put 'put ''KDB8SyksTT0oMHxHKTwxLEQ9MC1SZXwwLHA9dys4fDA7ZG97aWYoIShwPTB8YVtwPj4yXSkpe3A9MDticmVhayBlfW09KG09QT8wfGFbcCs4Pj4yXTpwK0R8MCkrUnwwLGImJihtPTB8YVttPj4yXSk7ZG97aWYoayl7aWYoTSl7bT0wfFppKGMsbSk7YnJlYWt9bT0wfHQzKGMsbSxHKTticmVh''@;'; + put 'put ''a31tPTB8cTBbMTI3JktdKGwsYyxtLGJlKX13aGlsZSgwKX13aGlsZSgwIT0oMHxtKSk7bT0wfGFbcGU+PjJdfWlmKGFbcGU+PjJdPTMyNzY4fG0sISg0MDk4JmYpKXtkb3tpZighKDgmZikpe2lmKG09MHxhW09lPj4yXSwhKDE2JmYpKXthW20rND4+Ml09cDticmVha31pZigoMHxwKT09KDB8''@;'; + put 'put ''YVttKzg+PjJdKSl7YVttKzQ+PjJdPTAscD0wO2JyZWFrIGV9cD1wKzR8MCxMZT0xMDg7YnJlYWt9bT0wfGFbT2U+PjJdLExlPTEwOH13aGlsZSgwKTtpZigxMDg9PSgwfExlKSYmKGFbbSs0Pj4yXT1wPTB8YVtwPj4yXSwhcCkpe3A9MDticmVha31pZigoMHxSZSk8MCl7cD0wfGFbcCs4Pj4y''@;'; + put 'put ''XTticmVha31wPXArKDAtUmUpfDA7YnJlYWt9dz1wLExlPTg0fWVsc2V7aWYoMzg0JmZ8MCl7aWYoIShwPTB8YVs4KyhtPTB8YVtPZT4+Ml0pPj4yXSkpe3A9MDticmVha31pZigyNTYmZil7aWYoYVttKzQ+PjJdPXA9MHxhW3ArND4+Ml0sIXApe3A9MDticmVha319ZWxzZSBhW20rND4+Ml09''@;'; + put 'put ''cDtpZigoMHxSZSk8MCl7cD0wfGFbcCs4Pj4yXTticmVha31wPXArKDAtUmUpfDA7YnJlYWt9aWYoNDA5OCZmfDApe2lmKDE0NCZhWyhwPTB8YVtPZT4+Ml0pPj4yXXwwKXtwPTA7YnJlYWt9aWYocD0wfGFbcCs4Pj4yXSl7dz1wLExlPTg0O2JyZWFrfXA9MDticmVha31pZig2NCZmKXtiPWJl''@;'; + put 'put ''KzE2fDA7dDpkb3tpZigwIT0oMHxhW2I+PjJdKXwoMHxSZSk8MClmb3Ioaz1sKzEyfDAsTT0oMHxSZSk8MCxtPTAtUmV8MCxwPTB8YVs4KygwfGFbT2U+PjJdKT4+Ml07Oyl7aWYoIXApYnJlYWsgdDtBPTB8YVtwPj4yXSwwfCh3PTB8YVtiPj4yXSkmJmRsWzEyNyZ3XShsLGM9TT8wfGFbcCs4''@;'; + put 'put ''Pj4yXTpwK218MCxiZSksKDB8YVtnZT4+Ml0pPj0wfHxxMFsxMjcmYVtrPj4yXV0obCxwLDAsYmUpLHA9QX19d2hpbGUoMCk7YVs0KyhwPTB8YVtPZT4+Ml0pPj4yXT0wLGFbcCs4Pj4yXT0wLGFbMTYrKDB8YVtPZT4+Ml0pPj4yXT0wLHA9MH1lbHNlIHA9MH19d2hpbGUoMCk7cmV0dXJuIDg0''@;'; + put 'put ''PT0oMHxMZSkmJigocD0wfGFbdz4+Ml0pJiYoYVtwKzQ+PjJdPWFbdys0Pj4yXSxwPTB8YVt3Pj4yXSksKDB8dyk9PSgwfChBPTB8YVsobT04KygwfGFbT2U+PjJdKXwwKT4+Ml0pKT8oYVttPj4yXT1wLDB8KHA9MHxhWzgrKDB8YVtPZT4+Ml0pPj4yXSkmJihhW3ArND4+Ml09YVt3KzQ+PjJd''@;'; + put 'put ''KSk6KGFbYVsobT13KzR8MCk+PjJdPj4yXT1wLCgwfHcpPT0oMHxhWyhwPUErNHwwKT4+Ml0pJiYoYVtwPj4yXT1hW20+PjJdKSksYVsobT00KyhwPTB8YVtPZT4+Ml0pfDApPj4yXT1BPSgwfHcpPT0oMHxhW20+PjJdKT8wfGFbdz4+Ml06MCxhWyhMZT1wKzE2fDApPj4yXT0oMHxhW0xlPj4y''@;'; + put 'put ''XSktMSxwPSgwfFJlKTwwPzB8YVt3Kzg+PjJdOncrKDAtUmUpfDAsMD09KDImZnwwKXwwPT0oMHwobT0wfGFbYmUrMTY+PjJdKSl8fGRsWzEyNyZtXShsLHAsYmUpLCgwfGFbZ2U+PjJdKTwwJiZxMFsxMjcmYVtsKzEyPj4yXV0obCx3LDAsYmUpKSwwfHB9LGZ1bmN0aW9uIFBQKGwsYyxmKXtj''@;'; + put 'put ''fD0wLGZ8PTA7dmFyIE9lLFdlLG90LFN0LGt0LEV0LFp0LHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxLPTAscGU9MCxnZT0wLGJlPTAsTGU9MCxSZT0wLEhlPTAsVmU9MCxxZT0wLG50PTAsc3Q9MDtadD1sZSxsZT1sZSsxMjh8MCxudD1adCsxMjB8MCxnZT1adCw0''@;'; + put 'put ''MDk2JmFbKHA9MHxhWyhFdD04KyhsfD0wKXwwKT4+Ml0pPj4yXSYmKENjKGwsMCkscD0wfGFbRXQ+PjJdKSxXZT0wfGFbKHN0PTB8YVtsKzQ+PjJdKT4+Ml0sb3Q9MHxhW3N0KzQ+PjJdLGt0PTB8YVsoVmU9c3QrOHwwKT4+Ml0sU3Q9MHxhW3N0KzIwPj4yXSxhWyhPZT1sKzIwfDApPj4yXT0t''@;'; + put 'put ''MzI3NjkmYVtPZT4+Ml0sdz0wfGFbcCs0Pj4yXTtlOmRve2lmKGMpe3FlPWwrMTZ8MCxMZT0wPT0oNDA5OCZmfDApO3Q6ZG97aWYoTGV8OCE9KDB8YVs0KygwfGFbcWU+PjJdKT4+Ml0pKVJlPTQ1O2Vsc2V7Zm9yKHA9YytXZXwwLChNPSgwfG90KTwwKSYmKHA9MHxhW3A+PjJdKSxiPTA9PSgw''@;'; + put 'put ''fFN0KSxrPSgwfG90KTwxLEE9MHxtaVs2MyZhW2w+PjJdXShsLGMsNCk7Oyl7aWYoIUEpe1JlPTQ1O2JyZWFrIHR9bT1BK1dlfDAsTSYmKG09MHxhW20+PjJdKTtkb3tpZihiKXtpZihrKXttPTB8WmkocCxtKTticmVha31tPTB8dDMocCxtLG90KTticmVha31tPTB8cTBbMTI3JlN0XShsLHAs''@;'; + put 'put ''bSxzdCl9d2hpbGUoMCk7aWYoMHxtKXtSZT00NTticmVhayB0fWlmKCgwfEEpPT0oMHxjKSlicmVhaztBPTB8bWlbNjMmYVtsPj4yXV0obCxBLDgpfWFbbnQ+PjJdPWFbNCsodz0wfGFbNCsoMHxhW0V0Pj4yXSk+PjJdKT4+Ml0sYVtudCs0Pj4yXT1hW3c+PjJdLHA9bnQsUmU9MTgwfX13aGls''@;'; + put 'put ''ZSgwKTt0OmRve2lmKDQ1PT0oMHxSZSkpe2Rve2lmKDI1NjUmZik1MTImZj9tPWM6KHA9YytXZXwwLG09KDB8b3QpPDA/MHxhW3A+PjJdOnApLHc/KEE9YyxwPTAsYmU9bSxrPTAsUmU9NjQpOihwPTAsQT1jLG09bnQsdz1udCxSZT0xOTgpO2Vsc2V7aWYoMzImZnwwKXtpZihwPShBPSgwfGt0''@;'; + put 'put ''KTwwPzB8YVtjKzg+PjJdOmMrKDAta3QpfDApK1dlfDAsbT0oMHxvdCk8MD8wfGFbcD4+Ml06cCx3KXtwPWMsYmU9bSxrPWMsUmU9NjQ7YnJlYWt9cD1jLG09bnQsdz1udCxSZT0xOTg7YnJlYWt9dz8oMHwocD0oMHxrdCk8MD8wfGFbdys4Pj4yXTp3KygwLWt0KXwwKSkhPSgwfGMpPyhtPWMr''@;'; + put 'put ''V2V8MCwoMHxvdCk8MD8oQT1jLHA9MCxiZT0wfGFbbT4+Ml0saz0wLFJlPTY0KTooQT1jLHA9MCxiZT1tLGs9MCxSZT02NCkpOihwPTAsQT1jLG09bnQsTT1udCxrPTAsUmU9MTQxKToocD0wLEE9YyxtPW50LHc9bnQsUmU9MTk4KX19d2hpbGUoMCk7bjpkb3tpZig2ND09KDB8UmUpKXtyOmRv''@;'; + put 'put ''e2lmKDQhPSgwfGFbNCsoMHxhW3FlPj4yXSk+PjJdKXx8KHBlPTB8YVsyNCsoMHxhW0V0Pj4yXSk+PjJdLDA9PSg1MTYmZnwwKXwwPT0oMHxwZSkpKW09bnQsTT1udDtlbHNle2ZvcihjPSgwfGt0KTwwLEQ9KDB8b3QpPDAsUj0wPT0oMHxTdCksRz0oMHxvdCk8MSxLPTAta3R8MCxNPTAsbT13''@;'; + put 'put ''Ozspe2lmKCgwfE0pPj0oMHxwZSkpe209bnQsTT1udCxEPTA7YnJlYWt9Yj0oYj1jPzB8YVttKzg+PjJdOm0rS3wwKStXZXwwLEQmJihiPTB8YVtiPj4yXSk7ZG97aWYoUil7aWYoRyl7Yj0wfFppKGJlLGIpO2JyZWFrfWI9MHx0MyhiZSxiLG90KTticmVha31iPTB8cTBbMTI3JlN0XShsLGJl''@;'; + put 'put ''LGIsc3QpfXdoaWxlKDApO2lmKCFiKXtSZT04MDticmVha31pZihhW2dlKyhNPDwyKT4+Ml09YiwhKG09MHxhWygoMHxiKTwwP20rNHwwOm0pPj4yXSkpe3A9MDticmVhayBlfU09TSsxfDB9aWYoODA9PSgwfFJlKSl7aWYoYyl7cD0wfGFbbSs4Pj4yXTticmVhayBlfXA9bStLfDA7YnJlYWsg''@;'; + put 'put ''ZX1mb3IoOzspe2lmKCgwfEQpPj0oMHxwZSkpYnJlYWsgcjtkb3tpZigoMHxhW2dlKyhEPDwyKT4+Ml0pPDApe2lmKGM9MHxhWyhiPXcrNHwwKT4+Ml0sKDB8YVtnZSsoKDF8RCk8PDIpPj4yXSk8MCl7YVtiPj4yXT1hW2M+PjJdLGFbYz4+Ml09dyxhW20rND4+Ml09YyxtPWMsdz1NLGI9Yys0''@;'; + put 'put ''fDA7YnJlYWt9YVtNPj4yXT1jLGFbbSs0Pj4yXT13LG09dyx3PWMsYj1jO2JyZWFrfWlmKGI9MHxhW3c+PjJdLCgwfGFbZ2UrKCgxfEQpPDwyKT4+Ml0pPjApe2Fbdz4+Ml09YVsoSz1iKzR8MCk+PjJdLGFbSz4+Ml09dyxhW00+PjJdPWIsdz1iO2JyZWFrfWFbbSs0Pj4yXT1iLGFbTT4+Ml09''@;'; + put 'put ''dyxtPWIsYj1iKzR8MDticmVha313aGlsZSgwKTtNPXcsRD1EKzJ8MCx3PTB8YVtiPj4yXX19fXdoaWxlKDApO1I9KDB8a3QpPDAsRz0oMHxvdCk8MCxLPTAhPSgwfFN0KSxwZT0oMHxvdCk8MSxnZT0wLWt0fDAsYj13O3I6Zm9yKDs7KXtmb3Iodz1iOzspe2I9KGI9Uj8wfGFbdys4Pj4yXTp3''@;'; + put 'put ''K2dlfDApK1dlfDAsRyYmKGI9MHxhW2I+PjJdKTtkb3tpZighSyl7aWYocGUpe2I9MHxaaShiZSxiKTticmVha31iPTB8dDMoYmUsYixvdCk7YnJlYWt9Yj0wfHEwWzEyNyZTdF0obCxiZSxiLHN0KX13aGlsZSgwKTtpZighYil7UmU9MTQwO2JyZWFrIHJ9aWYoKDB8Yik+PTApYnJlYWs7aWYo''@;'; + put 'put ''IShEPTB8YVsoYz13KzR8MCk+PjJdKSl7UmU9MTIxO2JyZWFrIHJ9Yj0oYj1SPzB8YVtEKzg+PjJdOkQrZ2V8MCkrV2V8MCxHJiYoYj0wfGFbYj4+Ml0pO2Rve2lmKCFLKXtpZihwZSl7Yj0wfFppKGJlLGIpO2JyZWFrfWI9MHx0MyhiZSxiLG90KTticmVha31iPTB8cTBbMTI3JlN0XShsLGJl''@;'; + put 'put ''LGIsc3QpfXdoaWxlKDApO2lmKCgwfGIpPj0wKXtSZT0xMTg7YnJlYWt9aWYoYVtjPj4yXT1hW0Q+PjJdLGFbRD4+Ml09dyxhW20rND4+Ml09RCwhKHc9MHxhW0QrND4+Ml0pKXttPUQsdz1NLFJlPTE5ODticmVhayBufW09RH1pZigxMTg9PSgwfFJlKSl7aWYoUmU9MCwhYil7UmU9MTE5O2Jy''@;'; + put 'put ''ZWFrfWlmKGFbTT4+Ml09RCxhW20rND4+Ml09dyxiPTB8YVtEPj4yXSl7bT13LE09RDtjb250aW51ZX1tPXcsdz1ELFJlPTE5ODticmVhayBufWlmKCEoYz0wfGFbdz4+Ml0pKXtSZT0xMzk7YnJlYWt9Yj0oYj1SPzB8YVtjKzg+PjJdOmMrZ2V8MCkrV2V8MCxHJiYoYj0wfGFbYj4+Ml0pO2Rv''@;'; + put 'put ''e2lmKCFLKXtpZihwZSl7Yj0wfFppKGJlLGIpO2JyZWFrfWI9MHx0MyhiZSxiLG90KTticmVha31iPTB8cTBbMTI3JlN0XShsLGJlLGIsc3QpfXdoaWxlKDApO2lmKCgwfGIpPjApe2lmKGFbdz4+Ml09YVsoYj1jKzR8MCk+PjJdLGFbYj4+Ml09dyxhW00+PjJdPWMsYj0wfGFbYz4+Ml0pe009''@;'; + put 'put ''Yztjb250aW51ZX13PWMsUmU9MTk4O2JyZWFrIG59aWYoIWIpe1JlPTEzNzticmVha31pZihhW20rND4+Ml09YyxhW00+PjJdPXcsIShiPTB8YVtjKzQ+PjJdKSl7bT1jLFJlPTE5ODticmVhayBufW09YyxNPXd9aWYoMTE5PT0oMHxSZSkpe2FbbSs0Pj4yXT13LG09dyx3PUQsUmU9MTQxO2Jy''@;'; + put 'put ''ZWFrfWlmKDEyMT09KDB8UmUpKXthW20rND4+Ml09dyxtPXcsdz1NLFJlPTE5ODticmVha31pZigxMzc9PSgwfFJlKSl7YVtNPj4yXT13LE09dyx3PWMsUmU9MTQxO2JyZWFrfWlmKDEzOT09KDB8UmUpKXthW00+PjJdPXcsUmU9MTk4O2JyZWFrfWlmKDE0MD09KDB8UmUpKXtpZih3KXtSZT0x''@;'; + put 'put ''NDE7YnJlYWt9dz1NLFJlPTE5ODticmVha319fXdoaWxlKDApO2Rve2lmKDE0MT09KDB8UmUpKWlmKGFbT2U+PjJdPTMyNzY4fGFbT2U+PjJdLGFbTT4+Ml09YVsoYj13KzR8MCk+PjJdLGFbbSs0Pj4yXT1hW3c+PjJdLDUxNiZmKXA9dztlbHNle2lmKDgmZnwwKXthW2I+PjJdPWFbbnQ+PjJd''@;'; + put 'put ''LGFbdz4+Ml09MCxhW250Pj4yXT13LFJlPTE2OTticmVha31pZigxNiZmfDApe2Fbdz4+Ml09YVsoUmU9bnQrNHwwKT4+Ml0sYVtiPj4yXT0wLGFbUmU+PjJdPXcsUmU9MTc1O2JyZWFrfWlmKCFMZSl7cD1tLFJlPTE4MDticmVhayB0fWlmKDIwNDkmZnwwKXtpZig0JmFbNCsoMHxhW3FlPj4y''@;'; + put 'put ''XSk+PjJdfDApe3A9dzticmVha31hW2I+PjJdPTAsYVt3Pj4yXT1hWyhwPW50KzR8MCk+PjJdLGFbcD4+Ml09dyxwPXcsUmU9MjA1O2JyZWFrfWlmKCEoMzImZikpe3A9MDticmVhayBlfWlmKCEoNCZhWzQrKDB8YVtxZT4+Ml0pPj4yXSkpe2FbcCs0Pj4yXT0wLGFbcD4+Ml09YVsoVmU9bnQr''@;'; + put 'put ''NHwwKT4+Ml0sYVtWZT4+Ml09ayxhWyhwPTE2KygwfGFbRXQ+PjJdKXwwKT4+Ml09MSsoMHxhW3A+PjJdKSxwPXc7YnJlYWt9MHwocD0wfGFbc3QrMTY+PjJdKSYmZGxbMTI3JnBdKGwsQSxzdCksKDB8YVtWZT4+Ml0pPDAmJnEwWzEyNyZhW2wrMTI+PjJdXShsLGssMCxzdCkscD13fWVsc2Ug''@;'; + put 'put ''aWYoMTk4PT0oMHxSZSkpaWYoYVttKzQ+PjJdPTAsYVt3Pj4yXT0wLDgmZilSZT0xNjk7ZWxzZSBpZigxNiZmKVJlPTE3NTtlbHNle2lmKDUxNiZmfDApe3A9bTticmVhayB0fWlmKDIwNDkmZilwPTAsUmU9MjA1O2Vsc2V7aWYoISgzMiZmKSl7QT0wLHA9bTticmVhayB0fWFbKFZlPTE2Kygw''@;'; + put 'put ''fGFbRXQ+PjJdKXwwKT4+Ml09MSsoMHxhW1ZlPj4yXSl9fX13aGlsZSgwKTtpZigxNjk9PSgwfFJlKSl7aWYoIShwPTB8YVsodz1udCs0fDApPj4yXSkpe3A9bTticmVha31mb3IoO0E9MHxhWyhtPXArNHwwKT4+Ml07KWFbbT4+Ml09YVtBPj4yXSxhW0E+PjJdPXAscD1BO2Fbdz4+Ml09YVtw''@;'; + put 'put ''Pj4yXX1lbHNlIGlmKDE3NT09KDB8UmUpKXtpZighKHA9MHxhW250Pj4yXSkpe3A9bTticmVha31mb3IoO209MHxhW3A+PjJdOylhW3A+PjJdPWFbKFZlPW0rNHwwKT4+Ml0sYVtWZT4+Ml09cCxwPW07YVtudD4+Ml09YVtwKzQ+PjJdfWVsc2UgaWYoMjA1PT0oMHxSZSkpeyhrPTA9PSgxJmZ8''@;'; + put 'put ''MCkpfDA9PSgwfCh3PTB8YVsoYj1zdCsxMnwwKT4+Ml0pKXx8KEE9MHxtaVs2MyZ3XShsLEEsc3QpKTtkb3tpZihBKXtpZigoMHxrdCk+LTEpe3A9QStrdHwwLFJlPTIxNTticmVha31pZigwfChwPTB8cTBbMTI3JmFbbCsxMj4+Ml1dKGwsMCwxMixzdCkpKXthW3ArOD4+Ml09QTticmVha30w''@;'; + put 'put ''IT0oMHxhW2I+PjJdKSYmIShrfDA9PSgwfChIZT0wfGFbc3QrMTY+PjJdKSkpJiZkbFsxMjcmSGVdKGwsQSxzdCksUmU9MjE1fWVsc2UgUmU9MjE1fXdoaWxlKDApO2lmKDIxNT09KDB8UmUpJiYhcCl7cD1tO2JyZWFrfSgwfChBPTB8YVsobT0xNisoMHxhW0V0Pj4yXSl8MCk+PjJdKSk+LTEm''@;'; + put 'put ''JihhW20+PjJdPUErMSl9YVtwKzQ+PjJdPWFbbnQ+PjJdLGFbcD4+Ml09YVtudCs0Pj4yXTtuOmRve2lmKDAhPSg1MTYmZnwwKSYmMCE9KDgmYVs0KygwfGFbcWU+PjJdKT4+Ml18MCkpZm9yKEQ9KDB8a3QpPDAsbT1EPzB8YVtwKzg+PjJdOnArKDAta3QpfDAsUj0oMHxvdCk8MCxtPW0rV2V8''@;'; + put 'put ''MCxSJiYobT0wfGFbbT4+Ml0pLGs9MD09KDB8U3QpLE09KDB8b3QpPDEsYz0wLWt0fDA7Oyl7aWYoIShBPTB8YVsoYj1wKzR8MCk+PjJdKSlicmVhayBuO2Zvcig7dz0wfGFbQT4+Ml07KWFbQT4+Ml09YVsobnQ9dys0fDApPj4yXSxhW250Pj4yXT1BLEE9dzthW2I+PjJdPUEsdz0odz1EPzB8''@;'; + put 'put ''YVtBKzg+PjJdOkErY3wwKStXZXwwLFImJih3PTB8YVt3Pj4yXSk7ZG97aWYoayl7aWYoTSl7dz0wfFppKG0sdyk7YnJlYWt9dz0wfHQzKG0sdyxvdCk7YnJlYWt9dz0wfHEwWzEyNyZTdF0obCxtLHcsc3QpfXdoaWxlKDApO2lmKDB8dylicmVhayBuO2FbYj4+Ml09YVtBPj4yXSxhW0E+PjJd''@;'; + put 'put ''PXAscD1BfX13aGlsZSgwKTtpZihhWzQrKDB8YVtFdD4+Ml0pPj4yXT1wLCgwfGt0KTwwKXtwPTB8YVtwKzg+PjJdO2JyZWFrIGV9cD1wKygwLWt0KXwwO2JyZWFrIGV9fXdoaWxlKDApOzE4MD09KDB8UmUpJiYoQT0oMHxrdCk8MD8wfGFbdys4Pj4yXTp3KygwLWt0KXwwLDA9PSgyJmZ8MCl8''@;'; + put 'put ''MD09KDB8KG09MHxhW3N0KzE2Pj4yXSkpfHxkbFsxMjcmbV0obCxBLHN0KSwoMHxhW1ZlPj4yXSk8MCYmcTBbMTI3JmFbbCsxMj4+Ml1dKGwsdywwLHN0KSxhWyhsPTE2KygwfGFbRXQ+PjJdKXwwKT4+Ml09KDB8KHN0PTB8YVtsPj4yXSkpPDE/LTE6c3QrLTF8MCk7ZG97cD0wfGFbKG09cCs0''@;'; + put 'put ''fDApPj4yXX13aGlsZSgwIT0oMHxwKSk7YVttPj4yXT1hW250Pj4yXSxhWzQrKDB8YVtFdD4+Ml0pPj4yXT1hW250KzQ+PjJdLHA9MiZmfDA/QTowfWVsc2UgaWYoMD09KDQ0OCZmfDApfDA9PSgwfHcpKXA9MDtlbHNle2lmKCEoNjQmZikpe3Q6ZG97aWYoMjU2JmYpZm9yKHA9dzs7KXtpZigh''@;'; + put 'put ''KG09MHxhW3A+PjJdKSlicmVhayB0O2FbcD4+Ml09YVsobD1tKzR8MCk+PjJdLGFbbD4+Ml09cCxwPW19ZWxzZSBmb3IocD13Ozspe2lmKCEoQT0wfGFbKG09cCs0fDApPj4yXSkpYnJlYWsgdDthW20+PjJdPWFbQT4+Ml0sYVtBPj4yXT1wLHA9QX19d2hpbGUoMCk7aWYoYVs0KygwfGFbRXQ+''@;'; + put 'put ''PjJdKT4+Ml09cCwoMHxrdCk8MCl7cD0wfGFbcCs4Pj4yXTticmVha31wPXArKDAta3QpfDA7YnJlYWt9aWYoMCE9KDB8YVsoYz1zdCsxNnwwKT4+Ml0pfCgwfGt0KTwwKXtrPWwrMTJ8MCxNPSgwfGt0KTwwLGI9MC1rdHwwLHA9dztkb3tmb3Iodz1wO209MHxhWyhwPXcrNHwwKT4+Ml07KWFb''@;'; + put 'put ''cD4+Ml09YVttPj4yXSxhW20+PjJdPXcsdz1tO3A9MHxhW3c+PjJdLDB8KG09MHxhW2M+PjJdKSYmZGxbMTI3Jm1dKGwsQT1NPzB8YVt3Kzg+PjJdOncrYnwwLHN0KSwoMHxhW1ZlPj4yXSk8MCYmcTBbMTI3JmFbaz4+Ml1dKGwsdywwLHN0KX13aGlsZSgwIT0oMHxwKSk7cD0wfGFbRXQ+PjJd''@;'; + put 'put ''fWFbcCsxNj4+Ml09MCxhW3ArND4+Ml09MCxwPTB9fXdoaWxlKDApO3JldHVybiBsZT1adCwwfHB9LGZ1bmN0aW9uIEgobCxjLGYpe3JldHVybiAwfCgwfHlnKGN8PTAsZnw9MCxsfD0wKT8wfFVvKGMpOjApfSxmdW5jdGlvbiB4ZShsLGMsZil7bHw9MCxjfD0wO3ZhciBwPTAsbT0wLEE9MCx3''@;'; + put 'put ''PTA7aWYoMCE9KDB8KGZ8PTApKSYmKDB8KHA9MHxhWyhBPWwrOHwwKT4+Ml0pKTwoMHxhW2wrND4+Ml0pKXtmb3Iodz0oMHxhW2w+PjJdKStwfDAsbD0wLG09MHxmZVt3Pj4wXSxwPWMsYz13O2M9YysxfDAsZmVbcD4+MF09bSxtPDwyND4+MjQhPTEwJigwfChsPWwrMXwwKSk8KDB8ZikmJiht''@;'; + put 'put ''PTB8ZmVbYz4+MF0pPDwyND4+MjQ7KXA9cCsxfDA7YVtBPj4yXT0oMHxhW0E+PjJdKStsfWVsc2UgbD0wO3JldHVybiAwfGx9LGZ1bmN0aW9uIGdhZShsLGMsZil7dmFyIHAsbTtyZXR1cm4gbHw9MCxjfD0wLChsPTB8YVsoZj0zNisoZnw9MCl8MCk+PjJdKT9hW2Y+PjJdPWFbbD4+Ml06bD0w''@;'; + put 'put ''fFFuKDIwKSxwPTB8YVs0KyhtPWMrOHwwKT4+Ml0sYVsoZj1sKzh8MCk+PjJdPWFbbT4+Ml0sYVtmKzQ+PjJdPXAsYVtsKzE2Pj4yXT1hW2MrMTY+PjJdLDB8bH0sZnVuY3Rpb24geGxlKGwsYyxmKXtyZXR1cm4gY3w9MCxmfD0wLGY9MHx2cigyNCksYVtmKzg+PjJdPWFbYys4Pj4yXSxhW2Yr''@;'; + put 'put ''MTI+PjJdPWFbYysxMj4+Ml0sYVtmKzE2Pj4yXT1hW2MrMTY+PjJdLGFbZisyMD4+Ml09YVtjKzIwPj4yXSwwfGZ9LGZ1bmN0aW9uIG9CKGwsYyxmKXtyZXR1cm4gY3w9MCxmfD0wLGY9MHx2cigxMiksYVtmPj4yXT1hW2M+PjJdLDB8Zn0sZnVuY3Rpb24gbnYobCxjLGYpe2x8PTAsY3w9MCxm''@;'; + put 'put ''fD0wO3ZhciBwPTA7ZTpkb3tzd2l0Y2goZi1jfDApe2Nhc2UgMjoxMTY9PSgwfGZlW2MrMT4+MF0pP2w9KGw9MHxmZVtjPj4wXSk8PDI0Pj4yND09MTA4PzYwOmw8PDI0Pj4yND09MTAzPzYyOjA6cD0xNDticmVhaztjYXNlIDM6OTc9PSgwfGZlW2M+PjBdKSYmMTA5PT0oMHxmZVtjKzE+PjBd''@;'; + put 'put ''KSYmMTEyPT0oMHxmZVtjKzI+PjBdKT9sPTM4OnA9MTQ7YnJlYWs7Y2FzZSA0OnN3aXRjaCgwfGZlW2M+PjBdKXtjYXNlIDExMzppZigxMTchPSgwfGZlW2MrMT4+MF0pKXtwPTE0O2JyZWFrIGV9aWYoMTExIT0oMHxmZVtjKzI+PjBdKSl7cD0xNDticmVhayBlfWlmKDExNj09KDB8ZmVbYysz''@;'; + put 'put ''Pj4wXSkpe2w9MzQ7YnJlYWsgZX1wPTE0O2JyZWFrIGU7Y2FzZSA5NzppZigxMTIhPSgwfGZlW2MrMT4+MF0pKXtwPTE0O2JyZWFrIGV9aWYoMTExIT0oMHxmZVtjKzI+PjBdKSl7cD0xNDticmVhayBlfWlmKDExNT09KDB8ZmVbYyszPj4wXSkpe2w9Mzk7YnJlYWsgZX1wPTE0O2JyZWFrIGU7''@;'; + put 'put ''ZGVmYXVsdDpwPTE0O2JyZWFrIGV9ZGVmYXVsdDpwPTE0fX13aGlsZSgwKTtyZXR1cm4gMTQ9PSgwfHApJiYobD0wKSwwfGx9LGZ1bmN0aW9uIEpLKGwsYyxmKXtsfD0wLGN8PTAsZnw9MDt2YXIgcD0wO2U6ZG97c3dpdGNoKDB8KGYtY3wwKS8yKXtjYXNlIDI6MD09KDB8ZmVbYysyPj4wXSkm''@;'; + put 'put ''JjExNj09KDB8ZmVbYyszPj4wXSk/bD0xMDg9PSgwfChsPTB8ZmVbYz4+MF0/LTE6MHxmZVtjKzE+PjBdKSk/NjA6MTAzPT0oMHxsKT82MjowOnA9Mjc7YnJlYWs7Y2FzZSAzOjA9PSgwfGZlW2M+PjBdKSYmOTc9PSgwfGZlW2MrMT4+MF0pJiYwPT0oMHxmZVtjKzI+PjBdKSYmMTA5PT0oMHxm''@;'; + put 'put ''ZVtjKzM+PjBdKSYmMD09KDB8ZmVbYys0Pj4wXSkmJjExMj09KDB8ZmVbYys1Pj4wXSk/bD0zODpwPTI3O2JyZWFrO2Nhc2UgNDppZigwfGZlW2M+PjBdKXA9Mjc7ZWxzZSBzd2l0Y2goMHxmZVtjKzE+PjBdKXtjYXNlIDExMzppZigwfGZlW2MrMj4+MF0pe3A9Mjc7YnJlYWsgZX1pZigxMTch''@;'; + put 'put ''PSgwfGZlW2MrMz4+MF0pKXtwPTI3O2JyZWFrIGV9aWYoMHxmZVtjKzQ+PjBdKXtwPTI3O2JyZWFrIGV9aWYoMTExIT0oMHxmZVtjKzU+PjBdKSl7cD0yNzticmVhayBlfWlmKDB8ZmVbYys2Pj4wXSl7cD0yNzticmVhayBlfWlmKDExNj09KDB8ZmVbYys3Pj4wXSkpe2w9MzQ7YnJlYWsgZX1w''@;'; + put 'put ''PTI3O2JyZWFrIGU7Y2FzZSA5NzppZigwfGZlW2MrMj4+MF0pe3A9Mjc7YnJlYWsgZX1pZigxMTIhPSgwfGZlW2MrMz4+MF0pKXtwPTI3O2JyZWFrIGV9aWYoMHxmZVtjKzQ+PjBdKXtwPTI3O2JyZWFrIGV9aWYoMTExIT0oMHxmZVtjKzU+PjBdKSl7cD0yNzticmVhayBlfWlmKDB8ZmVbYys2''@;'; + put 'put ''Pj4wXSl7cD0yNzticmVhayBlfWlmKDExNT09KDB8ZmVbYys3Pj4wXSkpe2w9Mzk7YnJlYWsgZX1wPTI3O2JyZWFrIGU7ZGVmYXVsdDpwPTI3O2JyZWFrIGV9YnJlYWs7ZGVmYXVsdDpwPTI3fX13aGlsZSgwKTtyZXR1cm4gMjc9PSgwfHApJiYobD0wKSwwfGx9LGZ1bmN0aW9uIFpLKGwsYyxm''@;'; + put 'put ''KXtsfD0wLGN8PTAsZnw9MDt2YXIgcD0wO2U6ZG97c3dpdGNoKDB8KGYtY3wwKS8yKXtjYXNlIDI6MD09KDB8ZmVbYyszPj4wXSkmJjExNj09KDB8ZmVbYysyPj4wXSk/bD0xMDg9PSgwfChsPTB8ZmVbYysxPj4wXT8tMTowfGZlW2M+PjBdKSk/NjA6MTAzPT0oMHxsKT82MjowOnA9Mjc7YnJl''@;'; + put 'put ''YWs7Y2FzZSAzOjA9PSgwfGZlW2MrMT4+MF0pJiY5Nz09KDB8ZmVbYz4+MF0pJiYwPT0oMHxmZVtjKzM+PjBdKSYmMTA5PT0oMHxmZVtjKzI+PjBdKSYmMD09KDB8ZmVbYys1Pj4wXSkmJjExMj09KDB8ZmVbYys0Pj4wXSk/bD0zODpwPTI3O2JyZWFrO2Nhc2UgNDppZigwfGZlW2MrMT4+MF0p''@;'; + put 'put ''cD0yNztlbHNlIHN3aXRjaCgwfGZlW2M+PjBdKXtjYXNlIDExMzppZigwfGZlW2MrMz4+MF0pe3A9Mjc7YnJlYWsgZX1pZigxMTchPSgwfGZlW2MrMj4+MF0pKXtwPTI3O2JyZWFrIGV9aWYoMHxmZVtjKzU+PjBdKXtwPTI3O2JyZWFrIGV9aWYoMTExIT0oMHxmZVtjKzQ+PjBdKSl7cD0yNzti''@;'; + put 'put ''cmVhayBlfWlmKDB8ZmVbYys3Pj4wXSl7cD0yNzticmVhayBlfWlmKDExNj09KDB8ZmVbYys2Pj4wXSkpe2w9MzQ7YnJlYWsgZX1wPTI3O2JyZWFrIGU7Y2FzZSA5NzppZigwfGZlW2MrMz4+MF0pe3A9Mjc7YnJlYWsgZX1pZigxMTIhPSgwfGZlW2MrMj4+MF0pKXtwPTI3O2JyZWFrIGV9aWYo''@;'; + put 'put ''MHxmZVtjKzU+PjBdKXtwPTI3O2JyZWFrIGV9aWYoMTExIT0oMHxmZVtjKzQ+PjBdKSl7cD0yNzticmVhayBlfWlmKDB8ZmVbYys3Pj4wXSl7cD0yNzticmVhayBlfWlmKDExNT09KDB8ZmVbYys2Pj4wXSkpe2w9Mzk7YnJlYWsgZX1wPTI3O2JyZWFrIGU7ZGVmYXVsdDpwPTI3O2JyZWFrIGV9''@;'; + put 'put ''YnJlYWs7ZGVmYXVsdDpwPTI3fX13aGlsZSgwKTtyZXR1cm4gMjc9PSgwfHApJiYobD0wKSwwfGx9LGZ1bmN0aW9uIHdBZShsLGMsZil7bHw9MCxmfD0wO3ZhciBiLGssTSxwPTAsbT0wLEE9MCx3PTA7cmV0dXJuIGs9bGUsbGU9bGUrMzJ8MCxwPWssYVsodz1rKzE2fDApPj4yXT1jfD0wLGFb''@;'; + put 'put ''KG09dys0fDApPj4yXT1mLSgwIT0oMHwoTT0wfGFbKGI9bCs0OHwwKT4+Ml0pKSYxKSxhW3crOD4+Ml09YVsoQT1sKzQ0fDApPj4yXSxhW3crMTI+PjJdPU0sYVtwPj4yXT1hW2wrNjA+PjJdLGFbcCs0Pj4yXT13LGFbcCs4Pj4yXT0yLCgwfChwPTB8dWgoMHxlNigxNDUsMHxwKSkpKT49MT9w''@;'; + put 'put ''Pj4+MD4odz0wfGFbbT4+Ml0pPj4+MCYmKG09MHxhW0E+PjJdLGFbKEE9bCs0fDApPj4yXT1tLGFbbCs4Pj4yXT1tKyhwLXcpLDB8YVtiPj4yXSYmKGFbQT4+Ml09bSsxLGZlW2MrKGYrLTEpPj4wXT0wfGZlW20+PjBdKSxwPWYpOmFbbD4+Ml09YVtsPj4yXXw0OCZwXjE2LGxlPWssMHxwfSxm''@;'; + put 'put ''dW5jdGlvbiBiQWUobCxjLGYpe3ZhciBwLG0sQTtyZXR1cm4gY3w9MCxmfD0wLG09bGUsbGU9bGUrMzJ8MCxwPW0rMjB8MCxhWyhBPW0pPj4yXT1hWzYwKyhsfD0wKT4+Ml0sYVtBKzQ+PjJdPTAsYVtBKzg+PjJdPWMsYVtBKzEyPj4yXT1wLGFbQSsxNj4+Ml09ZiwoMHx1aCgwfGtoKDE0MCww''@;'; + put 'put ''fEEpKSk8MD8oYVtwPj4yXT0tMSxsPS0xKTpsPTB8YVtwPj4yXSxsZT1tLDB8bH0sZnVuY3Rpb24gSHVlKGwsYyxmKXtjfD0wLGZ8PTA7dmFyIG0scD0wO3JldHVybiBtPWxlLGxlPWxlKzMyfDAscD1tLGFbMzYrKGx8PTApPj4yXT0xOCwwPT0oNjQmYVtsPj4yXXwwKSYmKGFbcD4+Ml09YVts''@;'; + put 'put ''KzYwPj4yXSxhW3ArND4+Ml09MjE1MjMsYVtwKzg+PjJdPW0rMTYsMHxuNig1NCwwfHApKSYmKGZlW2wrNzU+PjBdPS0xKSxwPTB8biQobCxjLGYpLGxlPW0sMHxwfSxuJCxmdW5jdGlvbiBkY2UobCxjLGYpe3ZhciBwLG07cmV0dXJuIGdvKDB8KG09MHxhWyhwPTIwKyhsfD0wKXwwKT4+Ml0p''@;'; + put 'put ''LDB8KGN8PTApLDB8KGw9KGw9KDB8YVtsKzE2Pj4yXSktbXwwKT4+PjA+KGZ8PTApPj4+MD9mOmwpKSxhW3A+PjJdPSgwfGFbcD4+Ml0pK2wsMHxmfSwkcixmdW5jdGlvbiBGSihsLGMsZil7bHw9MCxjfD0wLGZ8PTA7dmFyIGdlLEhlLFZlLHFlLG50LG90LHA9MCxtPTAsQT0wLHc9MCxiPTAs''@;'; + put 'put ''az0wLE09MCxEPTAsUj0wLEc9MCxLPTAscGU9MCxiZT0wLE9lPTAsTGU9MCxSZT0wLFdlPTAsU3Q9MCxrdD0wO290PWxlLGxlPWxlKzExMnwwLFZlPW90Kzg4fDAsSGU9b3QrNzJ8MCxLPW90KzQwfDAsRD1vdCs4fDAsTT1vdCxwZT1vdCs2NHwwLHFlPW90KzQ4fDAsbnQ9b3QrMjR8MCxwPSgw''@;'; + put 'put ''fGFbNDcxMzRdKT4xJjE7ZG97aWYoKDB8Zik+NSl7Zm9yKEc9MHx2cigoMHxHbyhsKSk8PDIpLGI9MSYoaz04PT0oMHxmKSksdz0wfER0KGwpLFI9MDt3OyltPTB8YkQodyxjLGIpLEE9Mjg4KygwfGFbdysxNj4+Ml0pfDAsbT8oYVtBPj4yXT1SLGFbRysoUjw8Mik+PjJdPW0sbT1SKzF8MCk6''@;'; + put 'put ''KGFbQT4+Ml09LTExMTEsbT1SKSx3PTB8enQobCx3KSxSPW07aWYoRyl7aWYoMHwobT0wfCRYKEcsUikpKXtpZihrKXtMZT0wLFJlPUcsT2U9RyxiZT0xO2JyZWFrfUxlPTB8cl8oRyxSKSxSZT1HLE9lPUcsYmU9MTticmVha31pZihrKXskcigwLDg5NzU1LE0pLG09MCxMZT0wLFJlPUcsT2U9''@;'; + put 'put ''RyxiZT0xO2JyZWFrfVN0PStqbltjKzQ+PjJdLF9bRD4+M109K2puW2M+PjJdLF9bRCs4Pj4zXT1TdCwkcigwLDg5ODMzLEQpLG09MCxMZT0wLFJlPUcsT2U9RyxiZT0xO2JyZWFrfW09MCxMZT0wLFJlPTAsT2U9MCxiZT0wfWVsc2UgbT0wLExlPTAsUmU9MCxSPTAsT2U9MCxiZT0wfXdoaWxl''@;'; + put 'put ''KDApO2dlPTAhPSgwfExlKTtlOmRve2lmKGdlKWZvcihBPTB8RHQobCk7Oyl7aWYoIUEpYnJlYWsgZTtmb3IobT0wfHcwKGwsQSk7bTspSz0xNDQrKDB8YVttKzE2Pj4yXSl8MCxCSihwZSxtLExlLDEsMCwwKSxHPTB8YVsoRD1wZSkrND4+Ml0sYVtLPj4yXT1hW0Q+PjJdLGFbSys0Pj4yXT1H''@;'; + put 'put ''LG09MHxTMChsLG0pO0E9MHx6dChsLEEpfWVsc2UgOD09KDB8ZikmMCE9KDB8bSkmJihlaShsLDApLHA9MSl9d2hpbGUoMCk7Zm9yKE09MD09KDB8cCksRD1sKzYwfDAsRz0xMD09KDB8ZikscD0wLGs9MHxEdChsKSxtPTA7azspe2ZvcihLPWsrMTZ8MCxjPTB8dzAobCxrKTtjOyl7Yj0wfGFb''@;'; + put 'put ''KDI9PSgzJmFbYz4+Ml18MCk/YzpjKy00OHwwKSs0MD4+Ml0sdz0wfGFbKEE9YysxNnwwKT4+Ml0sTXx8MD09KDB8YVt3Kzg+PjJdKT9XZT0zNToocGU9dysxNnwwLGFbSGU+PjJdPWFbKGt0PTE2KygwfGFbSz4+Ml0pfDApPj4yXSxhW0hlKzQ+PjJdPWFba3QrND4+Ml0sYVtIZSs4Pj4yXT1h''@;'; + put 'put ''W2t0Kzg+PjJdLGFbSGUrMTI+PjJdPWFba3QrMTI+PjJdLGFbVmU+PjJdPWFbcGU+PjJdLGFbVmUrND4+Ml09YVtwZSs0Pj4yXSxhW1ZlKzg+PjJdPWFbcGUrOD4+Ml0sYVtWZSsxMj4+Ml09YVtwZSsxMj4+Ml0sQ2socWUsSGUsVmUpLHBlPTU2KygwfGFbQT4+Ml0pfDAsYVtIZT4+Ml09YVso''@;'; + put 'put ''Yj0xNisoMHxhW2IrMTY+PjJdKXwwKT4+Ml0sYVtIZSs0Pj4yXT1hW2IrND4+Ml0sYVtIZSs4Pj4yXT1hW2IrOD4+Ml0sYVtIZSsxMj4+Ml09YVtiKzEyPj4yXSxhW1ZlPj4yXT1hW3BlPj4yXSxhW1ZlKzQ+PjJdPWFbcGUrND4+Ml0sYVtWZSs4Pj4yXT1hW3BlKzg+PjJdLGFbVmUrMTI+PjJd''@;'; + put 'put ''PWFbcGUrMTI+PjJdLENrKG50LEhlLFZlKSxhW0hlPj4yXT1hW3FlPj4yXSxhW0hlKzQ+PjJdPWFbcWUrND4+Ml0sYVtIZSs4Pj4yXT1hW3FlKzg+PjJdLGFbSGUrMTI+PjJdPWFbcWUrMTI+PjJdLGFbVmU+PjJdPWFbbnQ+PjJdLGFbVmUrND4+Ml09YVtudCs0Pj4yXSxhW1ZlKzg+PjJdPWFb''@;'; + put 'put ''bnQrOD4+Ml0sYVtWZSsxMj4+Ml09YVtudCsxMj4+Ml0sdGcoMCxjKSk7ZTpkb3tpZigzNT09KDB8V2UpJiYoV2U9MCxrdD0wfGl0W3crMTY4Pj4xXSxBPWt0PDwxNj4+MTYsa3Q8PDE2Pj4xNikpe2lmKCgwfGspPT0oMHxiKSl7cHx8KG09MHx2cig5NiksYVttKzg0Pj4yXT0wfHZyKDExNTIw''@;'; + put 'put ''KygoMHxHbyhsKSk8PDUpfDApLHA9bSksWk4ocCxjLDB8YVsyNDgrKDB8YVsxNisoMHxhW0Q+PjJdKT4+Ml0pPj4yXSk7YnJlYWt9aWYoIWdlKXtJYWUobCxjLGYsMTc3OTIpO2JyZWFrfWZvcihBPTB8ZmVbMTk0OTU0XT8xOkEsdz1jLGI9MDs7KXtpZigoMHxiKT49KDB8QSkpYnJlYWsgZTtH''@;'; + put 'put ''P0dOKDAsdyxSZSxSLDEpOkhKKDAsdyksdz0wfGFbMTcyKygwfGFbdysxNj4+Ml0pPj4yXSxiPWIrMXwwfX19d2hpbGUoMCk7Yz0wfFMwKGwsYyl9az0wfHp0KGwsayl9aWYoZ2UmJmZ1bmN0aW9uIGlfKGwpe3ZhciBjLGY7RnQoMHxhWzgrKGx8PTApPj4yXSksRnQoMHxhW2wrMTI+PjJdKSxG''@;'; + put 'put ''dCgwfGFbbCsxNj4+Ml0pLEZ0KDB8YVtsKzIwPj4yXSksMHwoYz0wfGFbKGY9bCsyNHwwKT4+Ml0pJiYoRnQoMHxhW2M+PjJdKSxGdCgwfGFbZj4+Ml0pKSxGdChsKX0oTGUpLDB8cCYmKEZ0KDB8YVtwKzg0Pj4yXSksRnQobSkpLGJlKXtmb3IocD0wOyEoKDB8cCk+PSgwfFIpKTspRnQoMHxh''@;'; + put 'put ''W1JlKyhwPDwyKT4+Ml0pLHA9cCsxfDA7RnQoT2UpfXJldHVybiBsZT1vdCwwfSxmdW5jdGlvbiBEOWUobCxjLGYpe2Z8PTA7dmFyIGdlLGJlLE9lLExlLFJlLEhlLFZlLHFlLG50LFdlLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxLPTAscGU9MCxvdD0wLFN0PTAs''@;'; + put 'put ''a3Q9MCxzdD0wO2ZvcihXZT1sZSxsZT1sZSs5NnwwLG50PVdlKzQ4fDAscWU9V2UrMjR8MCxWZT1XZSsxNnwwLEhlPVdlKzh8MCxiZT1XZSxPZT0xNisobHw9MCl8MCxMZT00KyhjfD0wKXwwLFJlPTQrKGdlPVdlKzgwfDApfDAsSz0wfER0KGwpLGY9MCxwPTAsbT0wLEE9MDtLOyl7Zm9yKHBl''@;'; + put 'put ''PTB8dzAobCxLKSxSPWYsRz1BO3BlOyl7Zj0wPT0oMHxpdFsxNjgrKDB8YVtwZSsxNj4+Ml0pPj4xXSk7ZG97aWYoKDB8Syk9PSgwfGFbKDI9PSgzJmFbcGU+PjJdfDApP3BlOnBlKy00OHwwKSs0MD4+Ml0pKWY/KEE9UixmPUcpOihwP2Y9RzooZj0wfHZyKDk2KSxhW2YrODQ+PjJdPTB8dnIo''@;'; + put 'put ''MTE1MjArKCgwfEdvKGwpKTw8NSl8MCkscD1mKSxaTihwLHBlLDB8YVsyNDgrKDB8YVtPZT4+Ml0pPj4yXSksQT1SKTtlbHNlIGlmKGYpQT1SLGY9RztlbHNle2lmKG09MHxMOWUocGUsYyksMHwkWCgwfGFbKEE9bSs4fDApPj4yXSwwfGFbbT4+Ml0pKXtpZighKHc9MHxyXygwfGFbQT4+Ml0s''@;'; + put 'put ''MHxhW20+PjJdKSkpeyRyKDAsOTQzNTIsSGUpLEE9MSxmPUc7YnJlYWt9Zm9yKGY9cGU7ZjspU3Q9MTQ0KygwfGFbKG90PWYrMTZ8MCk+PjJdKXwwLEJKKGJlLGYsdywwLDB8YVtBPj4yXSwwfGFbbT4+Ml0pLGt0PTB8YVsoc3Q9YmUpKzQ+PjJdLGFbU3Q+PjJdPWFbc3Q+PjJdLGFbU3QrND4+''@;'; + put 'put ''Ml09a3QsR04oMCxmLDB8YVtBPj4yXSwwfGFbbT4+Ml0sMCksZj0wfGFbMTcyKygwfGFbb3Q+PjJdKT4+Ml07TzllKG0pLEE9UixmPUc7YnJlYWt9Uj8oQT1SLGY9Ryk6KFc3KGdlLGwpLGY9MHx4YyhsLDgsOCksJHIoMCw5NDQzNixWZSksISgoTT0ram5bYz4+Ml0pPj0oaz0rKDB8ZikpKSYh''@;'; + put 'put ''KChEPStqbltMZT4+Ml0pPj1rKT8hKChiPStqbltnZT4+Ml0pPD1NKSYhKChrPStqbltSZT4+Ml0pPD1EKXx8KF9bbnQ+PjNdPWIsX1tudCs4Pj4zXT1rLF9bbnQrMTY+PjNdPU0sX1tudCsyND4+M109RCwkcigzLDk0NTUyLG50KSk6KGFbcWU+PjJdPWYsX1txZSs4Pj4zXT1NLF9bcWUrMTY+''@;'; + put 'put ''PjNdPUQsJHIoMyw5NDUwMixxZSkpLEE9MSxmPUcpfX13aGlsZSgwKTtwZT0wfFMwKGwscGUpLFI9QSxHPWZ9Sz0wfHp0KGwsSyksZj1SLEE9R31yZXR1cm4gZnVuY3Rpb24gUjllKGwpezB8KGx8PTApJiYoRnQoMHxhW2wrOD4+Ml0pLEZ0KGwpKX0obSksMHxwJiYoRnQoMHxhW3ArODQ+PjJd''@;'; + put 'put ''KSxGdChBKSksbGU9V2UsMHxmfSxmdW5jdGlvbiBGc2UobCxjLGYpe2x8PTAsZnw9MDt2YXIgcCxtLHcsQT0wO2ZvcihBPTB8YVsoY3w9MCk+PjJdLHA9MHxhW2MrND4+Ml0sYz1tPTB8YVtjKzg+PjJdO2M7KXtmb3IobD1tO2w7KSgwfGMpIT0oMHxsKSYmaFgoMHxhW2M+PjJdLDB8YVtsPj4y''@;'; + put 'put ''XSksbD0wfGFbbCs0Pj4yXTtjPTB8YVtjKzQ+PjJdfXJldHVybiBWNyhmLHc9QSstMXwwLGw9cCstMXwwLG0pLFY3KGYsdyxwLG0pLFY3KGYsdyxjPXArMXwwLG0pLFY3KGYsQSxsLG0pLFY3KGYsQSxjLG0pLFY3KGYsQT1BKzF8MCxsLG0pLFY3KGYsQSxwLG0pLFY3KGYsQSxjLG0pLDB9LGZ1''@;'; + put 'put ''bmN0aW9uIHgyZShsLGMsZil7bHw9MCxjfD0wLGZ8PTA7dmFyIEQsUixPZSxTdCxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRz0wLEs9MCxwZT0wLGdlPTAsYmU9MCxMZT0wLFJlPTAsSGU9MCxWZT0wLHFlPTAsbnQ9MCxXZT0wLG90PTAsa3Q9MDtTdD1sZSxsZT1sZSs0OHwwLFI9U3Qr''@;'; + put 'put ''MjR8MCxEPVN0KzE2fDAsT2U9U3QscD0wO2U6Zm9yKDs7KXtpZigoMHxwKT49KDB8Yykpe3A9MDticmVha31mb3IoYVtPZT4+Ml09YVsobnQ9MHxhWyhxZT0wfGFbbCsocDw8Mik+PjJdKT4+Ml0pPj4yXSxhW09lKzQ+PjJdPWFbbnQrND4+Ml0sYVtPZSs4Pj4yXT1hW250Kzg+PjJdLGFbT2Ur''@;'; + put 'put ''MTI+PjJdPWFbbnQrMTI+PjJdLFdlPWYrKDQwKnB8MCkrOHwwLEc9ZisoNDAqcHwwKSsyNHwwLEs9ZisoNDAqcHwwKSszMnwwLEE9ZisoNDAqcHwwKSsxNnwwLHA9bnQ9cCsxfDA7Oyl7aWYoKDB8cCk+PSgwfGMpKXtwPW50O2NvbnRpbnVlIGV9aWYodz0wfGFbbCsocDw8Mik+PjJdLCEoISgo''@;'; + put 'put ''TT0hKChiPStfW1dlPj4zXSk8PShrPStfW2YrKDQwKnB8MCkrMjQ+PjNdKSkpfCEoYj49KG09K19bZisoNDAqcHwwKSs4Pj4zXSkpKSYmKHBlPStfW0E+PjNdLGdlPStfW2YrKDQwKnB8MCkrMzI+PjNdLHBlPD1nZSkmJihiZT0rX1tmKyg0MCpwfDApKzE2Pj4zXSxwZT49YmUpKXx8ISgoa3Q9''@;'; + put 'put ''K19bRz4+M10pPD1rKXwhKGt0Pj1tKXx8ISgoa3Q9K19bSz4+M10pPD1nZSl8IShrdD49YmUpKW90PTExO2Vsc2UgaWYoYVtEPj4yXT1hW3c+PjJdLGFbRCs0Pj4yXT1hW3crND4+Ml0sYVtSPj4yXT1hW09lPj4yXSxhW1IrND4+Ml09YVtPZSs0Pj4yXSxhW1IrOD4+Ml09YVtPZSs4Pj4yXSxh''@;'; + put 'put ''W1IrMTI+PjJdPWFbT2UrMTI+PjJdLDB8XzYoRCxSKSl7cD0xO2JyZWFrIGV9aWYoMTE9PSgwfG90KSYmKG90PTAsISghKG08PShMZT0rX1tHPj4zXSkpfCEobT49YikpKSYmKFJlPStfW2YrKDQwKnB8MCkrMTY+PjNdKTw9KEhlPStfW0s+PjNdKSYmISghKFJlPj0oVmU9K19bQT4+M10pKXwh''@;'; + put 'put ''KGs8PUxlKXxNKSYmISghKChrdD0rX1tmKyg0MCpwfDApKzMyPj4zXSk8PUhlKXwhKGt0Pj1WZSkpJiYoTT0wfGFbdz4+Ml0sYVtEPj4yXT1hW3FlPj4yXSxhW0QrND4+Ml09YVtxZSs0Pj4yXSxhW1I+PjJdPWFbTT4+Ml0sYVtSKzQ+PjJdPWFbTSs0Pj4yXSxhW1IrOD4+Ml09YVtNKzg+PjJd''@;'; + put 'put ''LGFbUisxMj4+Ml09YVtNKzEyPj4yXSwwfF82KEQsUikpKXtwPTE7YnJlYWsgZX1wPXArMXwwfX1yZXR1cm4gbGU9U3QsMHxwfSxmdW5jdGlvbiBmUChsLGMsZil7bHw9MCxjfD0wO3ZhciB3LGsscD0wLG09MCxBPTAsYj0wO2ZvcihrPWxlLGxlPWxlKzE2fDAsYVsoQT1rKT4+Ml09Znw9MCx3''@;'; + put 'put ''PStfWyhiPTB8YVtsPj4yXSk+PjNdLGI9MHxhWyhsPTB8YVtiKzg+PjJdKT4+Ml0sS2YobCxjLEEsMCksbD0wLG09MDshKCgwfGwpPj0oMHxiKSk7KXA9K19bYysobDw8Myk+PjNdK20sbD1sKzF8MCxtPXA7Zm9yKHA9KygwfGIpLGY9MHxhW0E+PjJdLGw9MDshKCgwfGwpPj0oMHxiKSk7KV9b''@;'; + put 'put ''KEE9ZisobDw8Myl8MCk+PjNdPSgrX1tjKyhsPDwzKT4+M10qcC1tKSp3KyArX1tBPj4zXSxsPWwrMXwwO3JldHVybiBsZT1rLDB8Zn0sZnVuY3Rpb24gUngobCxjLGYpe3ZhciBwLG07cmV0dXJuIGx8PTAsY3w9MCxtPWxlLGxlPWxlKzE2fDAsYVsocD1tKT4+Ml09Znw9MCxLZigwfGFbbD4+''@;'; + put 'put ''Ml0sYyxwLDApLGxlPW0sMHxhW3A+PjJdfSxmdW5jdGlvbiBkUChsLGMsZil7Y3w9MCxmfD0wO3ZhciBwLG09MDtmb3IocD1+fitfWyhtPTB8YVsobHw9MCk+PjJdKT4+M10sbT1tKzh8MCxsPTA7ISgoMHxsKT49KDB8cCkpOylfW2YrKGw8PDMpPj4zXT0rX1ttKyhsPDwzKT4+M10qK19bYyso''@;'; + put 'put ''bDw8Myk+PjNdLGw9bCsxfDA7cmV0dXJuIDB8Zn0sZnVuY3Rpb24gUW0obCxjLGYpe2x8PTAsY3w9MCxmfD0wO3ZhciBwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAsSz0wLHBlPTA7ZTpkb3tpZig5OSZmKXA9MHxtaVs2MyZhW2FbbCsxNj4+Ml0+PjJdXShsLGMsZik7''@;'; + put 'put ''ZWxzZXtpZigwIT0oNTE2JmZ8MCl8fDAhPSgzODQmZnwwKSYwPT0oMTImKHA9MHxhWzQrKDB8YVtsKzE2Pj4yXSk+PjJdKXwwKSltPWw7ZWxzZXtpZigxMiZwfDApe2lmKCEoNDA4JmYpKXtwPTA7YnJlYWt9Zm9yKEs9MCE9KDEzNiZmfDApLHBlPTAhPSgyNzImZnwwKSxEPTAsbT0wLHA9MCxH''@;'; + put 'put ''PWw7Rzspe1I9MHxtaVs2MyZhW2FbRysxNj4+Ml0+PjJdXShHLGMsZik7ZG97aWYoUil7aWYoaz0wfGFbMjArKHc9MHxhW0crND4+Ml0pPj4yXSxBPVIrKDB8YVt3Pj4yXSl8MCxNPSgwfChiPTB8YVt3KzQ+PjJdKSk8MD8wfGFbQT4+Ml06QSwwfHApe2Rve2lmKCFrKXtpZigoMHxiKTwxKXtB''@;'; + put 'put ''PTB8WmkoTSxtKTticmVha31BPTB8dDMoTSxtLGIpO2JyZWFrfUE9MHxxMFsxMjcma10oRyxNLG0sdyl9d2hpbGUoMCk7aWYoIShLJigwfEEpPDB8cGUmKDB8QSk+MCkpe0E9RDticmVha319QT1HLG09TSxwPVJ9ZWxzZSBBPUR9d2hpbGUoMCk7RD1BLEc9MHxhW0crMjg+PjJdfWFbbCszMj4+''@;'; + put 'put ''Ml09RDticmVha31pZighKDI0JmYpKXtwPTA7YnJlYWt9KG09MHxhWyhrPWwrMzJ8MCk+PjJdKT8oQT0wfGFbNCsoMHxhW20rOD4+Ml0pPj4yXSwoMHwocD0oMHwocD0wfGFbOCsoMHxhW20rND4+Ml0pPj4yXSkpPDA/MHxhW0ErOD4+Ml06QSsoMC1wKXwwKSk9PSgwfGMpP3A9YzoobT1sLHc9''@;'; + put 'put ''MzIpKToobT1sLHc9MzIpO2Rve2lmKDMyPT0oMHx3KSl7Zm9yKDs7KXtpZighbSl7dz0zMzticmVha31pZigwfChwPTB8bWlbNjMmYVthW20rMTY+PjJdPj4yXV0obSxjLDQpKSl7dz0zNjticmVha31tPTB8YVttKzI4Pj4yXSx3PTMyfWlmKDMzPT0oMHx3KSl7YVtrPj4yXT0wLHA9MDticmVh''@;'; + put 'put ''ayBlfWlmKDM2PT0oMHx3KSl7YVtrPj4yXT1tO2JyZWFrfX19d2hpbGUoMCk7Zm9yKGI9MTI4KyhmPDw0JjEyOF4xMjgpfDAscD0wfG1pWzYzJmFbYVttKzE2Pj4yXT4+Ml1dKG0scCxmKTs7KXtmb3Iodz1tKzE2fDA7cDspe2ZvcihBPWw7Oyl7aWYoKDB8QSk9PSgwfG0pKWJyZWFrIGU7aWYo''@;'; + put 'put ''MHxtaVs2MyZhW2FbQSsxNj4+Ml0+PjJdXShBLHAsNCkpYnJlYWs7QT0wfGFbQSsyOD4+Ml19cD0wfG1pWzYzJmFbYVt3Pj4yXT4+Ml1dKG0scCxmKX1pZihhW2s+PjJdPW09MHxhW20rMjg+PjJdLCFtKXtwPTA7YnJlYWsgZX1wPTB8bWlbNjMmYVthW20rMTY+PjJdPj4yXV0obSwwLGIpfX1m''@;'; + put 'put ''b3IoOzspe2lmKCFtKXttPTAscD0wO2JyZWFrfWlmKDB8KHA9MHxtaVs2MyZhW2FbbSsxNj4+Ml0+PjJdXShtLGMsZikpKWJyZWFrO209MHxhW20rMjg+PjJdfWFbbCszMj4+Ml09bX19d2hpbGUoMCk7cmV0dXJuIDB8cH0sU3JlLG9vLGRzLFQwLGZ1bmN0aW9uIHdsZShsLGMsZil7cmV0dXJu''@;'; + put 'put ''IGx8PTAsY3w9MCxmfD0wLGY9MHxzaCgxLDMyKSwwfChsPTB8YVtjPj4yXSkmJihhW2Y+PjJdPTB8cmEobCkpLDB8KGw9MHxhW2MrND4+Ml0pJiYoYVtmKzQ+PjJdPTB8cmEobCkpLGFbZisyND4+Ml09MTI3JmFbYysyND4+Ml0sX1tmKzE2Pj4zXT0rX1tjKzE2Pj4zXSxhW2YrOD4+Ml09YVtj''@;'; + put 'put ''Kzg+PjJdLDB8Zn0seFEsZnVuY3Rpb24gRVIobCxjLGYpe2N8PTAsZnw9MDt2YXIgcD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MDtmb3IobT0wfGFbKGx8PTApPj4yXSxBPWwrMTZ8MCxwPTA7ISgoMHxwKT49KDB8bSkpOylhWygwfGFbQT4+Ml0pKyg0MCpwfDApPj4yXT0tMjE0NzQ4''@;'; + put 'put ''MzY0OCxwPXArMXwwOyFmdW5jdGlvbiBJYigpe2FbNDczODddPTB9KCk7ZTpkb3tpZigwfEg5KGMpKXA9MTtlbHNle2FbYys4Pj4yXT0wLGFbYz4+Ml09MCxjPWwrMjB8MDt0OmZvcig7Oyl7aWYoIShtPTB8TUUoKSkpe3A9MDticmVhayBlfWlmKGFbbT4+Ml09MC0oMHxhW20+PjJdKSwoMHxt''@;'; + put 'put ''KT09KDB8Zikpe3A9MDticmVhayBlfWZvcihBPW0rMTZ8MCx3PW0rMjh8MCxwPTA7Oyl7aWYoKDB8cCk+PSgwfGl0W0E+PjFdKSljb250aW51ZSB0O2s9MHxVeihsLGI9KDB8YVtjPj4yXSkrKDI0KigwfGFbKDB8YVt3Pj4yXSkrKHA8PDIpPj4yXSl8MCl8MCxtKSxNPTB8YVtrPj4yXTtkb3tp''@;'; + put 'put ''ZigoMHxNKTwwKXtpZihEPX5+LSgrX1tiPj4zXSsgKygwfGFbbT4+Ml0pKSwtMjE0NzQ4MzY0OD09KDB8TSkpe2lmKGFbaz4+Ml09RCwwfEg5KGspKXtwPTE7YnJlYWsgZX1hW2srOD4+Ml09bSxhW2srMTI+PjJdPWI7YnJlYWt9aWYoKDB8TSk+PSgwfEQpKWJyZWFrO2xCKGssRCksYVtrKzg+''@;'; + put 'put ''PjJdPW0sYVtrKzEyPj4yXT1iO2JyZWFrfX13aGlsZSgwKTtwPXArMXwwfX19fXdoaWxlKDApO3JldHVybiAwfHB9LEpmLFVLLGZ1bmN0aW9uIEsxZShsLGMsZil7cmV0dXJuIGx8PTAsY3w9MCwtMT09KDB8KGY9MHx1TChmfD0wKSkpP2Y9MDooZmVbbCs2OT4+MF09ZixhW2w+PjJdPTY5LGFb''@;'; + put 'put ''bCs0Pj4yXT03MCxhW2wrNDg+PjJdPTMxLGFbbCs3Mj4+Ml09YyxhW2M+PjJdPWwsZj0xKSwwfGZ9LGZ1bmN0aW9uIEoxZShsLGMsZil7dmFyIHAsbSxBLHc7bHw9MCxmfD0wLEE9bGUsbGU9bGUrMTQ0fDAscD1BKzh8MCxtPUEsYVsodz1BKzR8MCk+PjJdPWN8PTAsYVttPj4yXT1wLFIyWzEy''@;'; + put 'put ''NyZhW2wrNTY+PjJdXShsLHcsZixtLHArMTI3fDApO2Rve2lmKCgwfGFbdz4+Ml0pPT0oMHxmKSl7aWYoZmVbYVttPj4yXT4+MF09MCwwfF9qKHAsMTQ0MzE1KSYmMj09KDB8YVtsKzY0Pj4yXSkpYnJlYWs7bD0tMSE9KDB8KGw9MHx1TChwKSkpPzB8YVs1ODk0OCsobDw8Mik+PjJdOjB9ZWxz''@;'; + put 'put ''ZSBsPTB9d2hpbGUoMCk7cmV0dXJuIGxlPUEsMHxsfSxmdW5jdGlvbiB0dWUobCxjLGYpe3ZhciBwLG0sQSx3O2x8PTAsZnw9MCxBPWxlLGxlPWxlKzE0NHwwLHA9QSs4fDAsbT1BLGFbKHc9QSs0fDApPj4yXT1jfD0wLGFbbT4+Ml09cCxSMlsxMjcmYVtsKzU2Pj4yXV0obCx3LGYsbSxwKzEy''@;'; + put 'put ''N3wwKTtkb3tpZigoMHxhW3c+PjJdKT09KDB8Zikpe2lmKGZlW2FbbT4+Ml0+PjBdPTAsMHxfaihwLDE0NDMxNSkmJjI9PSgwfGFbbCs2ND4+Ml0pKWJyZWFrO2w9LTEhPSgwfChsPTB8dUwocCkpKT8wfGFbNjA0NTYrKGw8PDIpPj4yXTowfWVsc2UgbD0wfXdoaWxlKDApO3JldHVybiBsZT1B''@;'; + put 'put ''LDB8bH0sZnVuY3Rpb24gQmNlKGwsYyxmKXtyZXR1cm4gMHxmdW5jdGlvbiBqY2UobCxjLGYpe2N8PTA7dmFyIHAsQSx3LG09MDtyZXR1cm4gbT0wfGVTKEE9MHxhWyhwPTg0KyhsfD0wKXwwKT4+Ml0sMCx3PTI1NisoZnw9MCl8MCksZ28oMHxjLDB8QSwwfChmPShtPTA9PSgwfG0pP3c6bS1B''@;'; + put 'put ''fDApPj4+MDxmPj4+MD9tOmYpKSxhW2wrND4+Ml09QStmLGFbbCs4Pj4yXT1jPUErbXwwLGFbcD4+Ml09YywwfGZ9KGx8PTAsY3w9MCxmfD0wKX0sTTIsTTIsTTIsTTIsTTIsTTIsTTIsTTIsTTIsTTIsTTIsTTIsTTIsTTIsTTIsTTIsTTIsTTIsTTIsTTIsTTIsTTJdLHEwPVtwYSxmdW5jdGlv''@;'; + put 'put ''biBvc2UobCxjLGYscCl7cmV0dXJuIGx8PTAscHw9MCwobD0wfGFbKGN8PTApPj4yXSk+Pj4wPD0ocD0wfGFbKGZ8PTApPj4yXSk+Pj4wP2w+Pj4wPj1wPj4+MD8ocD0wfGFbYysyND4+Ml0pPj4+MDw9KGw9MHxhW2YrMjQ+PjJdKT4+PjA/cD4+PjA+PWw+Pj4wPyhsPX5+KCtfW2MrOD4+M10t''@;'; + put 'put ''K19bZis4Pj4zXSkpfHwobD1+figrX1tjKzE2Pj4zXS0rX1tmKzE2Pj4zXSkpfHwobD1+figrX1tjKzMyPj4zXS0rX1tmKzMyPj4zXSkpfHwobD1+figrX1tjKzQwPj4zXS0rX1tmKzQwPj4zXSkpOmw9LTE6bD0xOmw9LTE6bD0xLDB8bH0sZnVuY3Rpb24gUEQobCxjLGYscCl7cmV0dXJuKDB8''@;'; + put 'put ''YVsoY3w9MCk+PjJdKS0oMHxhWyhmfD0wKT4+Ml0pfDB9LGZ1bmN0aW9uIGgxZShsLGMsZixwKXtyZXR1cm4gbHw9MCwobD0oMHxhWyhjfD0wKT4+Ml0pLSgwfGFbKGZ8PTApPj4yXSl8MCl8fChsPSgwfGFbYys0Pj4yXSktKDB8YVtmKzQ+PjJdKXwwKSwwfGx9LGZ1bmN0aW9uICQyKGwsYyxm''@;'; + put 'put ''LHApe3JldHVybiBwfD0wLDB8KCgwfChjPTB8YVsoY3w9MCk+PjJdKSk8KDB8KHA9MHxhWyhmfD0wKT4+Ml0pKT8tMTooMHxjKT4oMHxwKSYxKX0sZnVuY3Rpb24gVW0obCxjLGYscCl7cmV0dXJuIHB8PTAsMHwoKGM9MHxhWyhjfD0wKT4+Ml0pPj4+MD4ocD0wfGFbKGZ8PTApPj4yXSk+Pj4w''@;'; + put 'put ''PzE6KGM+Pj4wPHA+Pj4wKTw8MzE+PjMxKX0sZnVuY3Rpb24gelAobCxjLGYscCl7bHw9MCxwfD0wO3ZhciBtLEE9MDtyZXR1cm4oMHwobD0wfGFbNDArKGN8PTApPj4yXSkpPT0oMHwobT0wfGFbNDArKGZ8PTApPj4yXSkpPyhwPSgwfGFbYz4+Ml0pPj4+NCk+Pj4wPj0obD0oMHxhW2Y+PjJd''@;'; + put 'put ''KT4+PjQpPj4+MD9wPj4+MD5sPj4+MD9sPTE6QT02Omw9LTE6KHA9KDB8YVtsPj4yXSk+Pj40KT4+PjA+PShsPSgwfGFbbT4+Ml0pPj4+NCk+Pj4wP3A+Pj4wPmw+Pj4wP2w9MTpBPTY6bD0tMSw2PT0oMHxBKSYmKGw9MCksMHxsfSxmdW5jdGlvbiBXZChsLGMsZixwKXtsfD0wLGZ8PTAscHw9''@;'; + put 'put ''MCxsPTB8YVs0Njk4NF0scD0wIT0oMHwoY3w9MCkpO2Rve2lmKGwpe2lmKHApe3h0KGwsYyksbD0wO2JyZWFrfWw9MHxNdChsLGYpO2JyZWFrfWlmKHApe0Z0KGMpLGw9MDticmVha31sPTB8QjAoZik7YnJlYWt9d2hpbGUoMCk7cmV0dXJuIDB8bH0sZnVuY3Rpb24gSUEobCxjLGYscCl7bHw9''@;'; + put 'put ''MCxwfD0wO3ZhciBBLG09MCx3PTAsYj0wO0E9MHxhWyhsPTgrKDB8YVs0MCsoY3w9MCk+PjJdKXwwKT4+Ml0sbD0wfGFbbCs0Pj4yXSxwPTB8YVsobT04KygwfGFbNDArKGZ8PTApPj4yXSl8MCk+PjJdLG09MHxhW20rND4+Ml07ZG97aWYobD4+PjA8bT4+PjB8KDB8bCk9PSgwfG0pJkE+Pj4w''@;'; + put 'put ''PHA+Pj4wKWw9LTE7ZWxzZSBpZihsPj4+MD5tPj4+MHwoMHxsKT09KDB8bSkmQT4+PjA+cD4+PjApbD0xO2Vsc2V7aWYoISgwPT0oMHwobD0wfGFbKHA9Yys4fDApPj4yXSkpJjA9PSgwfChwPTB8YVtwKzQ+PjJdKSl8fChiPWYrOHwwLHc9MHxhW2I+PjJdLGI9MHxhW2IrND4+Ml0sMD09KDB8''@;'; + put 'put ''dykmMD09KDB8YikpKSl7aWYocD4+PjA8Yj4+PjB8KDB8cCk9PSgwfGIpJmw+Pj4wPHc+Pj4wKXtsPS0xO2JyZWFrfWlmKHA+Pj4wPmI+Pj4wfCgwfHApPT0oMHxiKSZsPj4+MD53Pj4+MCl7bD0xO2JyZWFrfX1sPTB9fXdoaWxlKDApO3JldHVybiAwfGx9LGZ1bmN0aW9uIGZDKGwsYyxmLHAp''@;'; + put 'put ''e3JldHVybiBwfD0wLDB8KDA9PSgwfChwPTB8U3AoMHxhWyhjPTgrKGN8PTApfDApPj4yXSwwfGFbYys0Pj4yXSwwfGFbKHA9OCsoZnw9MCl8MCk+PjJdLDB8YVtwKzQ+PjJdKSkpPzA6cD4+MzF8MSl9LGZ1bmN0aW9uIGRDKGwsYyxmLHApe3JldHVybiAwfSxmdW5jdGlvbiBwQyhsLGMsZixw''@;'; + put 'put ''KXtyZXR1cm4gMHwoMD09KDEmKGZ8PTApfDApJiEwP2Y6MCl9LGZ1bmN0aW9uIENHKGwsYyxmLHApe3JldHVybiBwfD0wLDB8KChjPTB8YVsyNCsoY3w9MCk+PjJdKT4+PjA+KHA9MHxhWzI0KyhmfD0wKT4+Ml0pPj4+MD8xOihjPj4+MDxwPj4+MCk8PDMxPj4zMSl9LGZ1bmN0aW9uIGdUKGws''@;'; + put 'put ''YyxmLHApe3JldHVybiBsfD0wLHB8PTAsYz0wfGFbKGw9MTYrKGN8PTApfDApPj4yXSxwPTB8YVsoZj0xNisoZnw9MCl8MCk+PjJdLDB8KChsPTB8YVtsKzQ+PjJdKT4+PjA+KGY9MHxhW2YrND4+Ml0pPj4+MHwoMHxsKT09KDB8ZikmYz4+PjA+cD4+PjA/MToobD4+PjA8Zj4+PjB8KDB8bCk9''@;'; + put 'put ''PSgwfGYpJmM+Pj4wPHA+Pj4wKTw8MzE+PjMxKX0sZnVuY3Rpb24gamUobCxjLGYscCl7cmV0dXJuIGx8PTAsZnw9MCxsPTB8VWEoY3w9MCxwfD0wKSxwPj4+MD5mPj4+MCYmdTIobCtmfDAsMCxwLWZ8MCksMHxsfSxmdW5jdGlvbiBSdChsLGMsZixwKXtyZXR1cm4gbHw9MCxwfD0wLGM9MHxh''@;'; + put 'put ''WyhsPTgrKDB8YVsxNisoY3w9MCk+PjJdKXwwKT4+Ml0scD0wfGFbKGY9OCsoMHxhWzE2KyhmfD0wKT4+Ml0pfDApPj4yXSwwfCgobD0wfGFbbCs0Pj4yXSk+Pj4wPChmPTB8YVtmKzQ+PjJdKT4+PjB8KDB8bCk9PSgwfGYpJmM+Pj4wPHA+Pj4wPy0xOjEmKGw+Pj4wPmY+Pj4wfCgwfGwpPT0o''@;'; + put 'put ''MHxmKSZjPj4+MD5wPj4+MCkpfSxmdW5jdGlvbiBubihsLGMsZixwKXtyZXR1cm4gcHw9MCwwfCgoYz0oMHxhW2FbMTYrKGN8PTApPj4yXT4+Ml0pPj4+NCk+Pj4wPChwPSgwfGFbYVsxNisoZnw9MCk+PjJdPj4yXSk+Pj40KT4+PjA/LTE6Yz4+PjA+cD4+PjAmMSl9LGZ1bmN0aW9uIGhhZShs''@;'; + put 'put ''LGMsZixwKXtpZihsfD0wLHB8PTAsKDB8KGw9MHxhWyhjfD0wKT4+Ml0pKTw9KDB8KHA9MHxhWyhmfD0wKT4+Ml0pKSl7aWYoISgoMHxsKTwoMHxwKSkpcmV0dXJuIDB8KCgwfChjPTB8YVtjKzQ+PjJdKSk+KDB8KGY9MHxhW2YrND4+Ml0pKT8xOigoMHxjKTwoMHxmKSk8PDMxPj4zMSk7bD0t''@;'; + put 'put ''MX1lbHNlIGw9MTtyZXR1cm4gMHxsfSxmdW5jdGlvbiBJbGUobCxjLGYscCl7aWYobHw9MCxwfD0wLChsPTB8YVsoY3w9MCk+PjJdKT4+PjA+PShwPTB8YVsoZnw9MCk+PjJdKT4+PjApe2lmKCEobD4+PjA+cD4+PjApKXJldHVybiAwfCgoYz0wfGFbYys0Pj4yXSk+Pj4wPChmPTB8YVtmKzQ+''@;'; + put 'put ''PjJdKT4+PjA/LTE6Yz4+PjA+Zj4+PjAmMSk7bD0xfWVsc2UgbD0tMTtyZXR1cm4gMHxsfSxmdW5jdGlvbiBiUihsLGMsZixwKXt2YXIgbSxBO3JldHVybiAwfCgoQT0rX1soY3w9MCk+PjNdKT4obT0rX1soZnw9MCk+PjNdKT8xOihBPG0pPDwzMT4+MzEpfSxmdW5jdGlvbiBWOChsLGMsZixw''@;'; + put 'put ''KXt2YXIgbSxBO3JldHVybiAwfCgobT0rX1soY3w9MCk+PjNdKT4oQT0rX1soZnw9MCk+PjNdKT8xJiEoK19bYys4Pj4zXTw9K19bZis4Pj4zXSk6bTxBPyEoK19bYys4Pj4zXT49K19bZis4Pj4zXSk8PDMxPj4zMTowKX0sZnVuY3Rpb24gTlIobCxjLGYscCl7cmV0dXJuKDB8YVsoY3w9MCk+''@;'; + put 'put ''PjJdKS0oMHxhWyhmfD0wKT4+Ml0pfDB9LGZ1bmN0aW9uIHhiKGwsYyxmLHApe3JldHVybiBwfD0wLDB8KCgwfChjPTB8YVsoY3w9MCk+PjJdKSk+KDB8KHA9MHxhWyhmfD0wKT4+Ml0pKT8xOigoMHxjKTwoMHxwKSk8PDMxPj4zMSl9LGZ1bmN0aW9uIFRFKGwsYyxmLHApe3ZhciBtPTAsQT0w''@;'; + put 'put ''O3JldHVybiAwfCgobT0rX1soY3w9MCk+PjNdKT4oQT0rX1soZnw9MCk+PjNdKT8xOm08QT8tMTooQT0rX1tjKzg+PjNdKT4obT0rX1tmKzg+PjNdKT8xOihBPG0pPDwzMT4+MzEpfSxmdW5jdGlvbiBPYihsLGMsZixwKXt2YXIgbT0wLEE9MDtyZXR1cm4gMHwoKG09K19bOCsoY3w9MCk+PjNd''@;'; + put 'put ''KT4oQT0rX1s4KyhmfD0wKT4+M10pPzE6bTxBPy0xOihBPStfW2M+PjNdKT4obT0rX1tmPj4zXSk/MTooQTxtKTw8MzE+PjMxKX0sZnVuY3Rpb24gTm0obCxjLGYscCl7bHw9MCxjfD0wLGZ8PTAscHw9MDt2YXIgbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wO2U6ZG97aWYoYz4+PjA8Zj4+''@;'; + put 'put ''PjApe3N3aXRjaCgwfGZlWyhEPWwrNzJ8MCkrKDB8WHRbYz4+MF0pPj4wXSl7Y2FzZSAxMjptPTB8ZzFlKDEyLGwsYysxfDAsZixwKTticmVhayBlO2Nhc2UgMTM6bT0wfGcxZSgxMyxsLGMrMXwwLGYscCk7YnJlYWsgZTtjYXNlIDI6aWYoKGYtKG09YysxfDApfDApPD0wKXttPS0xO2JyZWFr''@;'; + put 'put ''IGV9c3dpdGNoKDB8ZmVbRCsoMHxYdFttPj4wXSk+PjBdKXtjYXNlIDE2Om09MHxtMWUobCxjKzJ8MCxmLHApO2JyZWFrIGU7Y2FzZSAxNTptPTB8YUwobCxjKzJ8MCxmLHApO2JyZWFrIGU7Y2FzZSA3OmNhc2UgNjpjYXNlIDU6Y2FzZSAyOTpjYXNlIDI0OmNhc2UgMjI6YVtwPj4yXT1jLG09''@;'; + put 'put ''Mjk7YnJlYWsgZTtkZWZhdWx0OmFbcD4+Ml09bSxtPTA7YnJlYWsgZX1jYXNlIDk6aWYoKGMrMXwwKT09KDB8Zikpe2FbcD4+Ml09ZixtPS0xNTticmVhayBlfWI9MzticmVhaztjYXNlIDEwOmNhc2UgMjE6Yj0zO2JyZWFrO2Nhc2UgMzA6bT0wfGhqKGwsYysxfDAsZixwKTticmVhayBlO2Nh''@;'; + put 'put ''c2UgMzU6YVtwPj4yXT1jKzEsbT0zODticmVhayBlO2Nhc2UgMjA6YVtwPj4yXT1jKzEsbT0yNTticmVhayBlO2Nhc2UgNDppZigoMHwobT1mLShBPWMrMXwwKXwwKSk8PTApe209LTI2O2JyZWFrIGV9aWYoOTM9PSgwfGZlW0E+PjBdKSl7aWYoKDB8bSk8PTEpe209LTE7YnJlYWsgZX1pZig2''@;'; + put 'put ''Mj09KDB8ZmVbYysyPj4wXSkpe2FbcD4+Ml09YyszLG09MzQ7YnJlYWsgZX19YVtwPj4yXT1BLG09MjY7YnJlYWsgZTtjYXNlIDMxOmFbcD4+Ml09YysxLG09MjM7YnJlYWsgZTtjYXNlIDMyOmlmKChmLShtPWMrMXwwKXwwKTw9MCl7bT0tMjQ7YnJlYWsgZX1zd2l0Y2goMHxmZVtEKygwfFh0''@;'; + put 'put ''W20+PjBdKT4+MF0pe2Nhc2UgMzM6YVtwPj4yXT1jKzIsbT0zNjticmVhayBlO2Nhc2UgMTU6YVtwPj4yXT1jKzIsbT0zNTticmVhayBlO2Nhc2UgMzQ6YVtwPj4yXT1jKzIsbT0zNzticmVhayBlO2Nhc2UgMzI6Y2FzZSAzNjpjYXNlIDM1OmNhc2UgMTE6Y2FzZSAyMTpjYXNlIDEwOmNhc2Ug''@;'; + put 'put ''OTphW3A+PjJdPW0sbT0yNDticmVhayBlO2RlZmF1bHQ6YVtwPj4yXT1tLG09MDticmVhayBlfWNhc2UgMzY6YVtwPj4yXT1jKzEsbT0yMTticmVhayBlO2Nhc2UgMTE6YVtwPj4yXT1jKzEsbT0xNzticmVhayBlO2Nhc2UgMTk6bT0wfEhLKGwsYysxfDAsZixwKTticmVhayBlO2Nhc2UgNTpp''@;'; + put 'put ''ZigoZi1jfDApPDIpe209LTI7YnJlYWsgZX1pZigwfEJpWzEyNyZhW2wrMzQwPj4yXV0obCxjKSltPTE4LEE9MjtlbHNle2lmKCEoMHxCaVsxMjcmYVtsKzMyOD4+Ml1dKGwsYykpKXthW3A+PjJdPWMsbT0wO2JyZWFrIGV9bT0xOSxBPTJ9YnJlYWs7Y2FzZSA2OmlmKChmLWN8MCk8Myl7bT0t''@;'; + put 'put ''MjticmVhayBlfWlmKDB8QmlbMTI3JmFbbCszNDQ+PjJdXShsLGMpKW09MTgsQT0zO2Vsc2V7aWYoISgwfEJpWzEyNyZhW2wrMzMyPj4yXV0obCxjKSkpe2FbcD4+Ml09YyxtPTA7YnJlYWsgZX1tPTE5LEE9M31icmVhaztjYXNlIDc6aWYoKGYtY3wwKTw0KXttPS0yO2JyZWFrIGV9aWYoMHxC''@;'; + put 'put ''aVsxMjcmYVtsKzM0OD4+Ml1dKGwsYykpbT0xOCxBPTQ7ZWxzZXtpZighKDB8QmlbMTI3JmFbbCszMzY+PjJdXShsLGMpKSl7YVtwPj4yXT1jLG09MDticmVhayBlfW09MTksQT00fWJyZWFrO2Nhc2UgMjQ6Y2FzZSAyMjptPTE4LEE9MTticmVhaztjYXNlIDIzOmNhc2UgMjc6Y2FzZSAyNjpj''@;'; + put 'put ''YXNlIDI1Om09MTksQT0xO2JyZWFrO2RlZmF1bHQ6YVtwPj4yXT1jLG09MDticmVhayBlfWlmKDM9PSgwfGIpKXt3PWYsQT1jO3Q6Zm9yKDs7KXtpZihtPUEsKHctKEE9QSsxfDApfDApPD0wKXtiPTE4O2JyZWFrfXN3aXRjaCgwfGZlW0QrKDB8WHRbQT4+MF0pPj4wXSl7Y2FzZSAxMDpjYXNl''@;'; + put 'put ''IDIxOmNvbnRpbnVlIHQ7Y2FzZSA5OmJyZWFrO2RlZmF1bHQ6Yj0xNzticmVhayB0fWlmKChtKzJ8MCk9PSgwfGYpKXtiPTE3O2JyZWFrfX1pZigxNz09KDB8Yikpe2FbcD4+Ml09QSxtPTE1O2JyZWFrfWlmKDE4PT0oMHxiKSl7YVtwPj4yXT1BLG09MTU7YnJlYWt9fWI9bCszMjh8MCxrPWwr''@;'; + put 'put ''MzMyfDAsTT1sKzMzNnwwLHc9YytBfDA7dDpmb3IoOzspe2lmKCgwfChBPWYtd3wwKSk8PTApe2I9OTk7YnJlYWt9c3dpdGNoKDB8ZmVbRCsoMHxYdFt3Pj4wXSk+PjBdKXtjYXNlIDI5OmI9NTY7YnJlYWsgdDtjYXNlIDEwOmNhc2UgOTpjYXNlIDIxOmNhc2UgMzA6Y2FzZSAyMDpjYXNlIDM2''@;'; + put 'put ''OmNhc2UgMzU6Y2FzZSAzMjpjYXNlIDExOmI9NzA7YnJlYWsgdDtjYXNlIDM0OmI9ODk7YnJlYWsgdDtjYXNlIDMzOmI9OTI7YnJlYWsgdDtjYXNlIDE1OmI9OTU7YnJlYWsgdDtjYXNlIDI3OmNhc2UgMjY6Y2FzZSAyNTpjYXNlIDI0OmNhc2UgMjI6dz13KzF8MCxtPWM9bTtjb250aW51ZSB0''@;'; + put 'put ''O2Nhc2UgNTppZigoMHxBKTwyKXttPS0yO2JyZWFrIGV9aWYoISgwfEJpWzEyNyZhW2I+PjJdXShsLHcpKSl7Yj02MDticmVhayB0fXc9dysyfDAsbT1jPW07Y29udGludWUgdDtjYXNlIDY6aWYoKDB8QSk8Myl7bT0tMjticmVhayBlfWlmKCEoMHxCaVsxMjcmYVtrPj4yXV0obCx3KSkpe2I9''@;'; + put 'put ''NjQ7YnJlYWsgdH13PXcrM3wwLG09Yz1tO2NvbnRpbnVlIHQ7Y2FzZSA3OmlmKCgwfEEpPDQpe209LTI7YnJlYWsgZX1pZighKDB8QmlbMTI3JmFbTT4+Ml1dKGwsdykpKXtiPTY4O2JyZWFrIHR9dz13KzR8MCxtPWM9bTtjb250aW51ZSB0O2Nhc2UgMjM6c3dpdGNoKEE9dysxfDAsNjMmbSl7''@;'; + put 'put ''Y2FzZSAxODpicmVhaztjYXNlIDQxOm09MTksdz1BO2NvbnRpbnVlIHQ7ZGVmYXVsdDp3PUEsbT1jPW07Y29udGludWUgdH1pZigoMHwobT1mLUF8MCkpPD0wKXttPS0xO2JyZWFrIGV9c3dpdGNoKDB8ZmVbRCsoMHxYdFtBPj4wXSk+PjBdKXtjYXNlIDI5OmI9NzQ7YnJlYWsgdDtjYXNlIDI3''@;'; + put 'put ''OmNhc2UgMjY6Y2FzZSAyNTpjYXNlIDI0OmNhc2UgMjI6bT00MSx3PXcrMnwwO2NvbnRpbnVlIHQ7Y2FzZSA1OmlmKCgwfG0pPDIpe209LTI7YnJlYWsgZX1pZighKDB8QmlbMTI3JmFbYj4+Ml1dKGwsQSkpKXtiPTc4O2JyZWFrIHR9bT00MSx3PXcrM3wwO2NvbnRpbnVlIHQ7Y2FzZSA2Omlm''@;'; + put 'put ''KCgwfG0pPDMpe209LTI7YnJlYWsgZX1pZighKDB8QmlbMTI3JmFbaz4+Ml1dKGwsQSkpKXtiPTgyO2JyZWFrIHR9bT00MSx3PXcrNHwwO2NvbnRpbnVlIHQ7Y2FzZSA3OmlmKCgwfG0pPDQpe209LTI7YnJlYWsgZX1pZighKDB8QmlbMTI3JmFbTT4+Ml1dKGwsQSkpKXtiPTg2O2JyZWFrIHR9''@;'; + put 'put ''bT00MSx3PXcrNXwwO2NvbnRpbnVlIHQ7ZGVmYXVsdDptPTE5LHc9QTtjb250aW51ZSB0fWRlZmF1bHQ6Yj05ODticmVhayB0fX1zd2l0Y2goMHxiKXtjYXNlIDU2OmNhc2UgNjA6Y2FzZSA2NDpjYXNlIDY4OmNhc2UgOTg6YVtwPj4yXT13LG09MDticmVhayBlO2Nhc2UgNzA6YVtwPj4yXT13''@;'; + put 'put ''O2JyZWFrIGU7Y2FzZSA3NDpjYXNlIDc4OmNhc2UgODI6Y2FzZSA4NjphW3A+PjJdPUEsbT0wO2JyZWFrIGU7Y2FzZSA4OTppZigxOT09KDB8bSkpe2FbcD4+Ml09dyxtPTA7YnJlYWsgZX1hW3A+PjJdPXcrMSxtPTMyO2JyZWFrIGU7Y2FzZSA5MjppZigxOT09KDB8bSkpe2FbcD4+Ml09dyxt''@;'; + put 'put ''PTA7YnJlYWsgZX1hW3A+PjJdPXcrMSxtPTMxO2JyZWFrIGU7Y2FzZSA5NTppZigxOT09KDB8bSkpe2FbcD4+Ml09dyxtPTA7YnJlYWsgZX1hW3A+PjJdPXcrMSxtPTMwO2JyZWFrIGU7Y2FzZSA5OTptPTAtbXwwO2JyZWFrIGV9fWVsc2UgbT0tNH13aGlsZSgwKTtyZXR1cm4gMHxtfSxmdW5j''@;'; + put 'put ''dGlvbiB0YyhsLGMsZixwKXtsfD0wLGN8PTAsZnw9MCxwfD0wO3ZhciBtPTAsQT0wLHc9MCxiPTAsaz0wLE09MDtlOmRve2lmKGM+Pj4wPGY+Pj4wKXtNPWwrNzJ8MDt0OmRve3N3aXRjaCgwfGZlW00rKDB8WHRbYz4+MF0pPj4wXSl7Y2FzZSAyOm09MHxGOWUobCxjKzF8MCxmLHApO2JyZWFr''@;'; + put 'put ''IGU7Y2FzZSAzOm09MHxvTChsLGMrMXwwLGYscCk7YnJlYWsgZTtjYXNlIDk6aWYoKGYtKG09YysxfDApfDApPD0wKXttPS0zO2JyZWFrIGV9YVtwPj4yXT0xMD09KDB8ZmVbTSsoMHxYdFttPj4wXSk+PjBdKT9jKzJ8MDptLG09NzticmVhayBlO2Nhc2UgMTA6YVtwPj4yXT1jKzEsbT03O2Jy''@;'; + put 'put ''ZWFrIGU7Y2FzZSA0OmlmKChmLShBPWMrMXwwKXwwKTw9MCl7bT0tNTticmVhayBlfWlmKDkzPT0oMHxmZVtBPj4wXSkpe2lmKChmLShtPWMrMnwwKXwwKTw9MCl7bT0tNTticmVhayBlfWlmKDYyPT0oMHxmZVttPj4wXSkpe2FbcD4+Ml09bSxtPTA7YnJlYWsgZX1tPWZ9ZWxzZSBtPWY7YnJl''@;'; + put 'put ''YWs7Y2FzZSA1OmlmKCgobT1mKS1jfDApPDIpe209LTI7YnJlYWsgZX1pZigwfEJpWzEyNyZhW2wrMzUyPj4yXV0obCxjKSl7YVtwPj4yXT1jLG09MDticmVhayBlfUE9YysyfDA7YnJlYWsgdDtjYXNlIDY6aWYoKChtPWYpLWN8MCk8Myl7bT0tMjticmVhayBlfWlmKDB8QmlbMTI3JmFbbCsz''@;'; + put 'put ''NTY+PjJdXShsLGMpKXthW3A+PjJdPWMsbT0wO2JyZWFrIGV9QT1jKzN8MDticmVhayB0O2Nhc2UgNzppZigoKG09ZiktY3wwKTw0KXttPS0yO2JyZWFrIGV9aWYoMHxCaVsxMjcmYVtsKzM2MD4+Ml1dKGwsYykpe2FbcD4+Ml09YyxtPTA7YnJlYWsgZX1BPWMrNHwwO2JyZWFrIHQ7Y2FzZSA4''@;'; + put 'put ''OmNhc2UgMTpjYXNlIDA6YVtwPj4yXT1jLG09MDticmVhayBlO2RlZmF1bHQ6QT1jKzF8MCxtPWZ9fXdoaWxlKDApO3c9bCszNTJ8MCxiPWwrMzU2fDAsaz1sKzM2MHwwO3Q6Zm9yKDs7KXtpZigoMHwoZj1tLUF8MCkpPD0wKXtmPTQ5O2JyZWFrfXN3aXRjaCgwfGZlW00rKDB8WHRbQT4+MF0p''@;'; + put 'put ''Pj4wXSl7Y2FzZSAxMDpjYXNlIDk6Y2FzZSA4OmNhc2UgMTpjYXNlIDA6Y2FzZSAyOmNhc2UgMzpmPTQ3O2JyZWFrIHQ7Y2FzZSA1OmlmKCgwfGYpPDIpe2Y9MzI7YnJlYWsgdH1pZigwfEJpWzEyNyZhW3c+PjJdXShsLEEpKXtmPTMyO2JyZWFrIHR9QT1BKzJ8MDtjb250aW51ZSB0O2Nhc2Ug''@;'; + put 'put ''NjppZigoMHxmKTwzKXtmPTM2O2JyZWFrIHR9aWYoMHxCaVsxMjcmYVtiPj4yXV0obCxBKSl7Zj0zNjticmVhayB0fUE9QSszfDA7Y29udGludWUgdDtjYXNlIDc6aWYoKDB8Zik8NCl7Zj00MDticmVhayB0fWlmKDB8QmlbMTI3JmFbaz4+Ml1dKGwsQSkpe2Y9NDA7YnJlYWsgdH1BPUErNHww''@;'; + put 'put ''O2NvbnRpbnVlIHQ7Y2FzZSA0OmlmKCgwfGYpPD0xKXtmPTQ3O2JyZWFrIHR9aWYoOTMhPSgwfGZlWyhjPUErMXwwKT4+MF0pKXtBPWM7Y29udGludWUgdH1pZigoMHxmKTw9Mil7Zj00NzticmVhayB0fWlmKDYyPT0oMHxmZVsoQT1BKzJ8MCk+PjBdKSl7Zj00NjticmVhayB0fUE9Yztjb250''@;'; + put 'put ''aW51ZSB0O2RlZmF1bHQ6QT1BKzF8MDtjb250aW51ZSB0fX1pZigzMj09KDB8Zikpe2FbcD4+Ml09QSxtPTY7YnJlYWt9aWYoMzY9PSgwfGYpKXthW3A+PjJdPUEsbT02O2JyZWFrfWlmKDQwPT0oMHxmKSl7YVtwPj4yXT1BLG09NjticmVha31pZig0Nj09KDB8Zikpe2FbcD4+Ml09QSxtPTA7''@;'; + put 'put ''YnJlYWt9aWYoNDc9PSgwfGYpKXthW3A+PjJdPUEsbT02O2JyZWFrfWlmKDQ5PT0oMHxmKSl7YVtwPj4yXT1BLG09NjticmVha319ZWxzZSBtPS00fXdoaWxlKDApO3JldHVybiAwfG19LGZ1bmN0aW9uIHg2KGwsYyxmLHApe2x8PTAsY3w9MCxmfD0wLHB8PTA7dmFyIG09MCxBPTAsdz0wLGI9''@;'; + put 'put ''MCxrPTA7ZTpkb3tpZihjPj4+MDxmPj4+MCl7az1sKzcyfDA7dDpkb3tzd2l0Y2goMHxmZVtrKygwfFh0W2M+PjBdKT4+MF0pe2Nhc2UgNDppZigoKG09ZiktKEE9YysxfDApfDApPD0wKXttPS0xO2JyZWFrIGV9aWYoOTM9PSgwfGZlW0E+PjBdKSl7aWYoKG0tKGY9YysyfDApfDApPD0wKXtt''@;'; + put 'put ''PS0xO2JyZWFrIGV9aWYoNjI9PSgwfGZlW2Y+PjBdKSl7YVtwPj4yXT1jKzMsbT00MDticmVhayBlfX1icmVhaztjYXNlIDk6aWYoKGYtKG09YysxfDApfDApPD0wKXttPS0xO2JyZWFrIGV9YVtwPj4yXT0xMD09KDB8ZmVbaysoMHxYdFttPj4wXSk+PjBdKT9jKzJ8MDptLG09NzticmVhayBl''@;'; + put 'put ''O2Nhc2UgMTA6YVtwPj4yXT1jKzEsbT03O2JyZWFrIGU7Y2FzZSA1OmlmKCgobT1mKS1jfDApPDIpe209LTI7YnJlYWsgZX1pZigwfEJpWzEyNyZhW2wrMzUyPj4yXV0obCxjKSl7YVtwPj4yXT1jLG09MDticmVhayBlfUE9YysyfDA7YnJlYWsgdDtjYXNlIDY6aWYoKChtPWYpLWN8MCk8Myl7''@;'; + put 'put ''bT0tMjticmVhayBlfWlmKDB8QmlbMTI3JmFbbCszNTY+PjJdXShsLGMpKXthW3A+PjJdPWMsbT0wO2JyZWFrIGV9QT1jKzN8MDticmVhayB0O2Nhc2UgNzppZigoKG09ZiktY3wwKTw0KXttPS0yO2JyZWFrIGV9aWYoMHxCaVsxMjcmYVtsKzM2MD4+Ml1dKGwsYykpe2FbcD4+Ml09YyxtPTA7''@;'; + put 'put ''YnJlYWsgZX1BPWMrNHwwO2JyZWFrIHQ7Y2FzZSA4OmNhc2UgMTpjYXNlIDA6YVtwPj4yXT1jLG09MDticmVhayBlO2RlZmF1bHQ6QT1jKzF8MCxtPWZ9fXdoaWxlKDApO2M9bCszNTJ8MCx3PWwrMzU2fDAsYj1sKzM2MHwwO3Q6Zm9yKDs7KXtpZigoMHwoZj1tLUF8MCkpPD0wKXtmPTM5O2Jy''@;'; + put 'put ''ZWFrfXN3aXRjaCgwfGZlW2srKDB8WHRbQT4+MF0pPj4wXSl7Y2FzZSA0OmNhc2UgMTA6Y2FzZSA5OmNhc2UgODpjYXNlIDE6Y2FzZSAwOmY9Mzc7YnJlYWsgdDtjYXNlIDU6aWYoKDB8Zik8Mil7Zj0zMDticmVhayB0fWlmKDB8QmlbMTI3JmFbYz4+Ml1dKGwsQSkpe2Y9MzA7YnJlYWsgdH1m''@;'; + put 'put ''PTI7YnJlYWs7Y2FzZSA2OmlmKCgwfGYpPDMpe2Y9MzM7YnJlYWsgdH1pZigwfEJpWzEyNyZhW3c+PjJdXShsLEEpKXtmPTMzO2JyZWFrIHR9Zj0zO2JyZWFrO2Nhc2UgNzppZigoMHxmKTw0KXtmPTM2O2JyZWFrIHR9aWYoMHxCaVsxMjcmYVtiPj4yXV0obCxBKSl7Zj0zNjticmVhayB0fWY9''@;'; + put 'put ''NDticmVhaztkZWZhdWx0OmY9MX1BPUErZnwwfWlmKDMwPT0oMHxmKSl7YVtwPj4yXT1BLG09NjticmVha31pZigzMz09KDB8Zikpe2FbcD4+Ml09QSxtPTY7YnJlYWt9aWYoMzY9PSgwfGYpKXthW3A+PjJdPUEsbT02O2JyZWFrfWlmKDM3PT0oMHxmKSl7YVtwPj4yXT1BLG09NjticmVha31p''@;'; + put 'put ''ZigzOT09KDB8Zikpe2FbcD4+Ml09QSxtPTY7YnJlYWt9fWVsc2UgbT0tNH13aGlsZSgwKTtyZXR1cm4gMHxtfSxmdW5jdGlvbiBwMWUobCxjLGYscCl7Y3w9MCxmfD0wLHB8PTA7dmFyIHcsYixrLE0sbT0wLEE9MCxEPTAsUj0wO3c9NzIrKGx8PTApfDAsYj1sKzM1MnwwLGs9bCszNTZ8MCxN''@;'; + put 'put ''PWwrMzYwfDAsQT0wO2U6Zm9yKDs7KXtpZigoMHwobT1mLWN8MCkpPD0wKXtmPS0xO2JyZWFrfXN3aXRjaCgwfGZlW3crKDB8WHRbYz4+MF0pPj4wXSl7Y2FzZSA4OmNhc2UgMTpjYXNlIDA6RD0xNjticmVhayBlO2Nhc2UgNTppZigoMHxtKTwyKXtmPS0yO2JyZWFrIGV9aWYoMHxCaVsxMjcm''@;'; + put 'put ''YVtiPj4yXV0obCxjKSl7RD02O2JyZWFrIGV9Yz1jKzJ8MCxBPW09QTtjb250aW51ZSBlO2Nhc2UgNjppZigoMHxtKTwzKXtmPS0yO2JyZWFrIGV9aWYoMHxCaVsxMjcmYVtrPj4yXV0obCxjKSl7RD0xMDticmVhayBlfWM9YyszfDAsQT1tPUE7Y29udGludWUgZTtjYXNlIDc6aWYoKDB8bSk8''@;'; + put 'put ''NCl7Zj0tMjticmVhayBlfWlmKDB8QmlbMTI3JmFbTT4+Ml1dKGwsYykpe0Q9MTQ7YnJlYWsgZX1jPWMrNHwwLEE9bT1BO2NvbnRpbnVlIGU7Y2FzZSAyOmlmKChmLShtPWMrMXwwKXwwKTw9MCl7Zj0tMTticmVhayBlfWlmKDMzIT0oMHxmZVttPj4wXSkpe2M9bSxBPVI9QTtjb250aW51ZSBl''@;'; + put 'put ''fWlmKChmLShtPWMrMnwwKXwwKTw9MCl7Zj0tMTticmVhayBlfUE9QSsoMSYoUj05MT09KDB8ZmVbbT4+MF0pKSl8MCxjPVI/YyszfDA6bTtjb250aW51ZSBlO2Nhc2UgNDppZigoZi0obT1jKzF8MCl8MCk8PTApe2Y9LTE7YnJlYWsgZX1pZig5MyE9KDB8ZmVbbT4+MF0pKXtjPW0sQT1SPUE7''@;'; + put 'put ''Y29udGludWUgZX1pZigoZi0obT1jKzJ8MCl8MCk8PTApe2Y9LTE7YnJlYWsgZX1pZig2MiE9KDB8ZmVbbT4+MF0pKXtjPW0sQT1SPUE7Y29udGludWUgZX1pZihjPWMrM3wwLCFBKXtEPTI2O2JyZWFrIGV9QT1BKy0xfDA7Y29udGludWUgZTtkZWZhdWx0OmM9YysxfDAsQT1SPUE7Y29udGlu''@;'; + put 'put ''dWUgZX19cmV0dXJuIDY9PSgwfEQpfHwxMD09KDB8RCl8fDE0PT0oMHxEKXx8MTY9PSgwfEQpPyhhW3A+PjJdPWMsZj0wKToyNj09KDB8RCkmJihhW3A+PjJdPWMsZj00MiksMHxmfSxmdW5jdGlvbiBZeShsLGMsZixwKXtsfD0wLGN8PTAsZnw9MCxwfD0wO3ZhciBtPTAsQT0wLHc9MCxiPTAs''@;'; + put 'put ''az0wO2Rve2lmKGM+Pj4wPGY+Pj4wKWlmKCgoYj1mKS1jfDApPjApe2s9bCs3MnwwLEE9YztlOmZvcig7Oyl7aWYoKGItQXwwKTw9MCl7dz0yNDticmVha31zd2l0Y2goMHxmZVtrKygwfFh0W0E+PjBdKT4+MF0pe2Nhc2UgMzp3PTg7YnJlYWsgZTtjYXNlIDI6dz0xMTticmVhayBlO2Nhc2Ug''@;'; + put 'put ''MTA6dz0xMjticmVhayBlO2Nhc2UgOTp3PTE1O2JyZWFrIGU7Y2FzZSAyMTp3PTE5O2JyZWFrIGU7Y2FzZSA1Om09MjticmVhaztjYXNlIDY6bT0zO2JyZWFrO2Nhc2UgNzptPTQ7YnJlYWs7ZGVmYXVsdDptPTF9QT1BK218MH1pZig4PT0oMHx3KSl7aWYoKDB8QSk9PSgwfGMpKXttPTB8b0wo''@;'; + put 'put ''bCxjKzF8MCxmLHApO2JyZWFrfWFbcD4+Ml09QSxtPTY7YnJlYWt9aWYoMTE9PSgwfHcpKXthW3A+PjJdPUEsbT0wO2JyZWFrfWlmKDEyPT0oMHx3KSl7aWYoKDB8QSk9PSgwfGMpKXthW3A+PjJdPWMrMSxtPTc7YnJlYWt9YVtwPj4yXT1BLG09NjticmVha31pZigxNT09KDB8dykpe2lmKCgw''@;'; + put 'put ''fEEpIT0oMHxjKSl7YVtwPj4yXT1BLG09NjticmVha31pZigoYi0obT1jKzF8MCl8MCk8PTApe209LTM7YnJlYWt9YVtwPj4yXT0xMD09KDB8ZmVbaysoMHxYdFttPj4wXSk+PjBdKT9jKzJ8MDptLG09NzticmVha31pZigxOT09KDB8dykpe2lmKCgwfEEpPT0oMHxjKSl7YVtwPj4yXT1jKzEs''@;'; + put 'put ''bT0zOTticmVha31hW3A+PjJdPUEsbT02O2JyZWFrfWlmKDI0PT0oMHx3KSl7YVtwPj4yXT1BLG09NjticmVha319ZWxzZSBtPS0xO2Vsc2UgbT0tNH13aGlsZSgwKTtyZXR1cm4gMHxtfSxmdW5jdGlvbiBOdShsLGMsZixwKXtsfD0wLGN8PTAsZnw9MCxwfD0wO3ZhciBtPTAsQT0wLHc9MCxi''@;'; + put 'put ''PTAsaz0wO2Rve2lmKGM+Pj4wPGY+Pj4wKWlmKCgoYj1mKS1jfDApPjApe2s9bCs3MnwwLEE9YztlOmZvcig7Oyl7aWYoKGItQXwwKTw9MCl7dz0yMzticmVha31zd2l0Y2goMHxmZVtrKygwfFh0W0E+PjBdKT4+MF0pe2Nhc2UgMzp3PTg7YnJlYWsgZTtjYXNlIDMwOnc9MTE7YnJlYWsgZTtj''@;'; + put 'put ''YXNlIDEwOnc9MTQ7YnJlYWsgZTtjYXNlIDk6dz0xNzticmVhayBlO2Nhc2UgNTptPTI7YnJlYWs7Y2FzZSA2Om09MzticmVhaztjYXNlIDc6bT00O2JyZWFrO2RlZmF1bHQ6bT0xfUE9QSttfDB9aWYoOD09KDB8dykpe2lmKCgwfEEpPT0oMHxjKSl7bT0wfG9MKGwsYysxfDAsZixwKTticmVh''@;'; + put 'put ''a31hW3A+PjJdPUEsbT02O2JyZWFrfWlmKDExPT0oMHx3KSl7aWYoKDB8QSk9PSgwfGMpKXttPTIyPT0oMHwobT0wfGhqKGwsYysxfDAsZixwKSkpPzA6bTticmVha31hW3A+PjJdPUEsbT02O2JyZWFrfWlmKDE0PT0oMHx3KSl7aWYoKDB8QSk9PSgwfGMpKXthW3A+PjJdPWMrMSxtPTc7YnJl''@;'; + put 'put ''YWt9YVtwPj4yXT1BLG09NjticmVha31pZigxNz09KDB8dykpe2lmKCgwfEEpIT0oMHxjKSl7YVtwPj4yXT1BLG09NjticmVha31pZigoYi0obT1jKzF8MCl8MCk8PTApe209LTM7YnJlYWt9YVtwPj4yXT0xMD09KDB8ZmVbaysoMHxYdFttPj4wXSk+PjBdKT9jKzJ8MDptLG09NzticmVha31p''@;'; + put 'put ''ZigyMz09KDB8dykpe2FbcD4+Ml09QSxtPTY7YnJlYWt9fWVsc2UgbT0tMTtlbHNlIG09LTR9d2hpbGUoMCk7cmV0dXJuIDB8bX0sZnVuY3Rpb24gTEsobCxjLGYscCl7bHw9MCxwfD0wO3ZhciBtLEE9MDtmb3IobT1mfD0wLGw9Y3w9MDs7KXtpZighKChjPTB8ZmVbcD4+MF0pPDwyND4+MjQp''@;'; + put 'put ''KXtBPTY7YnJlYWt9aWYoKG0tbHwwKTwxKXtsPTA7YnJlYWt9aWYoKDB8ZmVbbD4+MF0pIT1jPDwyND4+MjQpe2w9MDticmVha31wPXArMXwwLGw9bCsxfDB9cmV0dXJuIDY9PSgwfEEpJiYobD0oMHxsKT09KDB8ZikmMSksMHxsfSxmdW5jdGlvbiBSSyhsLGMsZixwKXtjfD0wLGZ8PTAscHw9''@;'; + put 'put ''MDt2YXIgayxtPTAsQT0wLHc9MCxiPTAsTT0wO2s9NzIrKGx8PTApfDAsdz0wLGI9MCxsPTE7ZTpmb3IoOzspc3dpdGNoKDB8ZmVbaysoMjU1JihBPTB8ZmVbKG09YysxfDApPj4wXSkpPj4wXSl7Y2FzZSA1Omx8fCgoMHxiKTwoMHxmKSYmKGFbcCsoYjw8NCk+PjJdPW0sZmVbcCsoYjw8NCkr''@;'; + put 'put ''MTI+PjBdPTEpLGw9MSksYz1jKzJ8MCxiPW09Yix3PUE9dztjb250aW51ZSBlO2Nhc2UgNjpsfHwoKDB8Yik8KDB8ZikmJihhW3ArKGI8PDQpPj4yXT1tLGZlW3ArKGI8PDQpKzEyPj4wXT0xKSxsPTEpLGM9YyszfDAsYj1tPWIsdz1BPXc7Y29udGludWUgZTtjYXNlIDc6bHx8KCgwfGIpPCgw''@;'; + put 'put ''fGYpJiYoYVtwKyhiPDw0KT4+Ml09bSxmZVtwKyhiPDw0KSsxMj4+MF09MSksbD0xKSxjPWMrNHwwLGI9bT1iLHc9QT13O2NvbnRpbnVlIGU7Y2FzZSAyNDpjYXNlIDIyOmNhc2UgMjk6aWYoMHxsKXtjPW0sdz1BPXc7Y29udGludWUgZX1pZigoMHxiKT49KDB8Zikpe2w9MSxjPW07Y29udGlu''@;'; + put 'put ''dWUgZX1hW3ArKGI8PDQpPj4yXT1tLGZlW3ArKGI8PDQpKzEyPj4wXT0xLGw9MSxjPW07Y29udGludWUgZTtjYXNlIDEyOmlmKDIhPSgwfGwpKXtpZigoMHxiKT49KDB8Zikpe3c9MTIsbD0yLGM9bTtjb250aW51ZSBlfWFbcCsoYjw8NCkrND4+Ml09YysyLHc9MTIsbD0yLGM9bTtjb250aW51''@;'; + put 'put ''ZSBlfWlmKDEyIT0oMHx3KSl7bD0yLGM9bTtjb250aW51ZSBlfSgwfGIpPCgwfGYpJiYoYVtwKyhiPDw0KSs4Pj4yXT1tKSx3PTEyLGI9YisxfDAsbD0wLGM9bTtjb250aW51ZSBlO2Nhc2UgMTM6aWYoMiE9KDB8bCkpe2lmKCgwfGIpPj0oMHxmKSl7dz0xMyxsPTIsYz1tO2NvbnRpbnVlIGV9''@;'; + put 'put ''YVtwKyhiPDw0KSs0Pj4yXT1jKzIsdz0xMyxsPTIsYz1tO2NvbnRpbnVlIGV9aWYoMTMhPSgwfHcpKXtsPTIsYz1tO2NvbnRpbnVlIGV9KDB8Yik8KDB8ZikmJihhW3ArKGI8PDQpKzg+PjJdPW0pLHc9MTMsYj1iKzF8MCxsPTAsYz1tO2NvbnRpbnVlIGU7Y2FzZSAzOmlmKCgwfGIpPj0oMHxm''@;'; + put 'put ''KSl7Yz1tLGw9QT1sO2NvbnRpbnVlIGV9ZmVbcCsoYjw8NCkrMTI+PjBdPTAsYz1tLGw9QT1sO2NvbnRpbnVlIGU7Y2FzZSAyMTpzd2l0Y2goMHxsKXtjYXNlIDE6bD0wLGM9bTtjb250aW51ZSBlO2Nhc2UgMjpicmVhaztkZWZhdWx0OmM9bSxsPUE9bDtjb250aW51ZSBlfWlmKCgwfGIpPj0o''@;'; + put 'put ''MHxmKSl7bD0yLGM9bTtjb250aW51ZSBlfWlmKCEoMHxmZVsobD1wKyhiPDw0KSsxMnwwKT4+MF0pKXtsPTIsYz1tO2NvbnRpbnVlIGV9aWYoQTw8MjQ+PjI0PT0zMiYmKDB8bSkhPSgwfGFbcCsoYjw8NCkrND4+Ml0pJiYoTT0wfGZlW2MrMj4+MF0pPDwyND4+MjQhPTMyJiYoMHx3KSE9KDB8''@;'; + put 'put ''WHRbaysoMjU1Jk0pPj4wXSkpe2w9MixjPW07Y29udGludWUgZX1mZVtsPj4wXT0wLGw9MixjPW07Y29udGludWUgZTtjYXNlIDEwOmNhc2UgOTpzd2l0Y2goMHxsKXtjYXNlIDE6bD0wLGM9bTtjb250aW51ZSBlO2Nhc2UgMjpicmVhaztkZWZhdWx0OmM9bSxsPUE9bDtjb250aW51ZSBlfWlm''@;'; + put 'put ''KCgwfGIpPj0oMHxmKSl7bD0yLGM9bTtjb250aW51ZSBlfWZlW3ArKGI8PDQpKzEyPj4wXT0wLGw9MixjPW07Y29udGludWUgZTtjYXNlIDE3OmNhc2UgMTE6aWYoMj09KDB8bCkpe2w9MixjPW07Y29udGludWUgZX1icmVhayBlO2RlZmF1bHQ6Yz1tLGw9QT1sO2NvbnRpbnVlIGV9cmV0dXJu''@;'; + put 'put ''IDB8Yn0sZnVuY3Rpb24gUXkobCxjLGYscCl7Y3w9MCxwfD0wO3ZhciBtLEE9MDttPShmfD0wKS0xfDAsbD03MisobHw9MCl8MDtlOmZvcig7Oyl7aWYoKG0tKGM9YysxfDApfDApPD0wKXtjPTE7YnJlYWt9c3dpdGNoKDB8ZmVbbCsoMjU1JihmPTB8ZmVbYz4+MF0pKT4+MF0pe2Nhc2UgMjM6''@;'; + put 'put ''Y2FzZSAxOTpjYXNlIDMwOmNhc2UgMzM6Y2FzZSAxNjpjYXNlIDE4OmNhc2UgMTA6Y2FzZSA5OmNhc2UgMTU6Y2FzZSAxNDpjYXNlIDE3OmNhc2UgMzU6Y2FzZSAzNDpjYXNlIDMyOmNhc2UgMzE6Y2FzZSAxMzpjYXNlIDI3OmNhc2UgMjQ6Y2FzZSAyNTpjb250aW51ZSBlO2Nhc2UgMjE6aWYo''@;'; + put 'put ''Zjw8MjQ+PjI0PT05KXtBPTc7YnJlYWsgZX1jb250aW51ZSBlO2Nhc2UgMjI6Y2FzZSAyNjppZihmPDwyND4+MjQ+PTApY29udGludWUgZX1zd2l0Y2goZjw8MjQ+PjI0fDApe2Nhc2UgNjQ6Y2FzZSAzNjpicmVhaztkZWZhdWx0OkE9NzticmVhayBlfX1yZXR1cm4gNz09KDB8QSkmJihhW3A+''@;'; + put 'put ''PjJdPWMsYz0wKSwwfGN9LGZ1bmN0aW9uIEo5ZShsLGMsZixwKXtsfD0wLGN8PTAsZnw9MCxwfD0wO3ZhciBtPTAsQT0wLHc9MCxiPTAsaz0wLE09MDtlOmRve2lmKGM+Pj4wPGY+Pj4wKWlmKEE9YyxNPWYtQXwwLGI9MD09KDEmTXwwKSxNJj0tMixrPTA9PSgwfE0pLE09YnxrP2Y6YytNfDAs''@;'; + put 'put ''YnwxXmspe3N3aXRjaCgoZj0wfGZlW2M+PjBdKTw8MjQ+PjI0Pyh3PW09MHxmZVtjKzE+PjBdLG09MHxmMChmLG0pKToodz1tPTB8ZmVbYysxPj4wXSxtPTB8WHRbbCs3MisoMjU1Jm0pPj4wXSksMHxtKXtjYXNlIDEyOmY9MHxyZCgxMixsLGMrMnwwLE0scCk7YnJlYWsgZTtjYXNlIDEzOmY9''@;'; + put 'put ''MHxyZCgxMyxsLGMrMnwwLE0scCk7YnJlYWsgZTtjYXNlIDI6aWYoKE0tKG09YysyfDApfDApPD0xKXtmPS0xO2JyZWFrIGV9c3dpdGNoKDB8KGY9KGY9MHxmZVttPj4wXSk8PDI0Pj4yND8wfGYwKGYsMHxmZVtjKzM+PjBdKTowfFh0W2wrNzIrKDB8WHRbYyszPj4wXSk+PjBdKSl7Y2FzZSAx''@;'; + put 'put ''NjpmPTB8Y0wobCxjKzR8MCxNLHApO2JyZWFrIGU7Y2FzZSAxNTpmPTB8WEsobCxjKzR8MCxNLHApO2JyZWFrIGU7Y2FzZSA3OmNhc2UgNjpjYXNlIDU6Y2FzZSAyOTpjYXNlIDI0OmNhc2UgMjI6YVtwPj4yXT1jLGY9Mjk7YnJlYWsgZTtkZWZhdWx0OmFbcD4+Ml09bSxmPTA7YnJlYWsgZX1j''@;'; + put 'put ''YXNlIDk6aWYoKGMrMnwwKT09KDB8TSkpe2FbcD4+Ml09TSxmPS0xNTticmVhayBlfUE9NzticmVhaztjYXNlIDEwOmNhc2UgMjE6QT03O2JyZWFrO2Nhc2UgMzA6Zj0wfGoxZShsLGMrMnwwLE0scCk7YnJlYWsgZTtjYXNlIDM1OmFbcD4+Ml09YysyLGY9Mzg7YnJlYWsgZTtjYXNlIDIwOmFb''@;'; + put 'put ''cD4+Ml09YysyLGY9MjU7YnJlYWsgZTtjYXNlIDQ6aWYoKDB8KGY9TS0obT1jKzJ8MCl8MCkpPD0xKXtmPS0yNjticmVhayBlfWlmKDA9PSgwfGZlW20+PjBdKSYmOTM9PSgwfGZlW2MrMz4+MF0pKXtpZigoMHxmKTw9Myl7Zj0tMTticmVhayBlfWlmKDA9PSgwfGZlW2MrND4+MF0pJiY2Mj09''@;'; + put 'put ''KDB8ZmVbYys1Pj4wXSkpe2FbcD4+Ml09Yys2LGY9MzQ7YnJlYWsgZX19YVtwPj4yXT1tLGY9MjY7YnJlYWsgZTtjYXNlIDMxOmFbcD4+Ml09YysyLGY9MjM7YnJlYWsgZTtjYXNlIDMyOmlmKChNLShtPWMrMnwwKXwwKTw9MSl7Zj0tMjQ7YnJlYWsgZX1zd2l0Y2goMHwoZj0oZj0wfGZlW20+''@;'; + put 'put ''PjBdKTw8MjQ+PjI0PzB8ZjAoZiwwfGZlW2MrMz4+MF0pOjB8WHRbbCs3MisoMHxYdFtjKzM+PjBdKT4+MF0pKXtjYXNlIDMzOmFbcD4+Ml09Yys0LGY9MzY7YnJlYWsgZTtjYXNlIDE1OmFbcD4+Ml09Yys0LGY9MzU7YnJlYWsgZTtjYXNlIDM0OmFbcD4+Ml09Yys0LGY9Mzc7YnJlYWsgZTtj''@;'; + put 'put ''YXNlIDMyOmNhc2UgMzY6Y2FzZSAzNTpjYXNlIDExOmNhc2UgMjE6Y2FzZSAxMDpjYXNlIDk6YVtwPj4yXT1tLGY9MjQ7YnJlYWsgZTtkZWZhdWx0OmFbcD4+Ml09bSxmPTA7YnJlYWsgZX1jYXNlIDM2OmFbcD4+Ml09YysyLGY9MjE7YnJlYWsgZTtjYXNlIDExOmFbcD4+Ml09YysyLGY9MTc7''@;'; + put 'put ''YnJlYWsgZTtjYXNlIDE5OmY9MHxydihsLGMrMnwwLE0scCk7YnJlYWsgZTtjYXNlIDU6aWYoKE0tQXwwKTwyKXtmPS0yO2JyZWFrIGV9YVtwPj4yXT1jLGY9MDticmVhayBlO2Nhc2UgNjppZigoTS1BfDApPDMpe2Y9LTI7YnJlYWsgZX1hW3A+PjJdPWMsZj0wO2JyZWFrIGU7Y2FzZSA3Omlm''@;'; + put 'put ''KChNLUF8MCk8NCl7Zj0tMjticmVhayBlfWFbcD4+Ml09YyxmPTA7YnJlYWsgZTtjYXNlIDI0OmNhc2UgMjI6Zj0xOCxBPTYxO2JyZWFrO2Nhc2UgMjM6Y2FzZSAyNzpjYXNlIDI2OmNhc2UgMjU6Zj0xOSxBPTYxO2JyZWFrO2Nhc2UgMjk6QT0yNTUmZixmPShtPTI1NSZ3KT4+PjUsKG09MTw8''@;'; + put 'put ''KDMxJm0pKSZhWzU2OTQwKygoZnxYdFsxNDM3ODgrQT4+MF08PDMpPDwyKT4+Ml0/KGY9MTgsQT02MSk6YVs1Njk0MCsoKFh0WzE0NDA0NCtBPj4wXTw8M3xmKTw8Mik+PjJdJm0/KGY9MTksQT02MSk6QT02NDticmVhaztkZWZhdWx0OkE9NjR9aWYoNz09KDB8QSkpe2I9TSxsPWwrNzJ8MCx3''@;'; + put 'put ''PWM7dDpmb3IoOzspe2lmKEE9dywoYi0odz13KzJ8MCl8MCk8PTEpe0E9Mjg7YnJlYWt9c3dpdGNoKG09MHxmZVtBKzM+PjBdLDB8KGY9KGY9MHxmZVt3Pj4wXSk8PDI0Pj4yND8wfGYwKGYsbSk6MHxYdFtsKygyNTUmbSk+PjBdKSl7Y2FzZSAxMDpjYXNlIDIxOmNvbnRpbnVlIHQ7Y2FzZSA5''@;'; + put 'put ''OmJyZWFrO2RlZmF1bHQ6QT0yNzticmVhayB0fWlmKChBKzR8MCk9PSgwfE0pKXtBPTI3O2JyZWFrfX1pZigyNz09KDB8QSkpe2FbcD4+Ml09dyxmPTE1O2JyZWFrfWlmKDI4PT0oMHxBKSl7YVtwPj4yXT13LGY9MTU7YnJlYWt9fWVsc2UgaWYoNjE9PSgwfEEpKXtrPWwrNzJ8MCxtPWMrMnww''@;'; + put 'put ''O3Q6Zm9yKDs7KXtjPTI1NSZmO246Zm9yKDs7KXtpZigoMHwoYj1NLW18MCkpPD0xKXtBPTEwNDticmVhayB0fXN3aXRjaCh3PTB8ZmVbbSsxPj4wXSwwfChsPShBPTB8ZmVbbT4+MF0pPDwyND4+MjQ/MHxmMChBLHcpOjB8WHRbaysoMjU1JncpPj4wXSkpe2Nhc2UgNTpBPTczO2JyZWFrIHQ7''@;'; + put 'put ''Y2FzZSA2OkE9NzQ7YnJlYWsgdDtjYXNlIDc6QT03NjticmVhayB0O2Nhc2UgMTA6Y2FzZSA5OmNhc2UgMjE6Y2FzZSAzMDpjYXNlIDIwOmNhc2UgMzY6Y2FzZSAzNTpjYXNlIDMyOmNhc2UgMTE6QT03ODticmVhayB0O2Nhc2UgMzQ6QT05NDticmVhayB0O2Nhc2UgMzM6QT05NzticmVhayB0''@;'; + put 'put ''O2Nhc2UgMTU6QT0xMDA7YnJlYWsgdDtjYXNlIDI5OmlmKCEoMTw8KDMxJihiPTI1NSZ3KSkmYVs1Njk0MCsoKGI+Pj41fFh0WzE0NDA0NCsoMjU1JkEpPj4wXTw8Myk8PDIpPj4yXSkpe0E9NzE7YnJlYWsgdH1icmVhaztjYXNlIDI3OmNhc2UgMjY6Y2FzZSAyNTpjYXNlIDI0OmNhc2UgMjI6''@;'; + put 'put ''YnJlYWs7Y2FzZSAyMzpzd2l0Y2goYj1tKzJ8MCw2MyZjKXtjYXNlIDQxOmY9MTksbT1iO2NvbnRpbnVlIHQ7Y2FzZSAxODpicmVhayBuO2RlZmF1bHQ6bT1iO2NvbnRpbnVlIG59ZGVmYXVsdDpBPTEwMzticmVhayB0fW09bSsyfDB9aWYoKDB8KGw9TS1ifDApKTw9MSl7Zj0tMTticmVhayBl''@;'; + put 'put ''fXN3aXRjaChBPTB8ZmVbbSszPj4wXSwwfCh3PShmPTB8ZmVbYj4+MF0pPDwyND4+MjQ/MHxmMChmLEEpOjB8WHRbaysoMjU1JkEpPj4wXSkpe2Nhc2UgNTpBPTg5O2JyZWFrIHQ7Y2FzZSA2OkE9OTA7YnJlYWsgdDtjYXNlIDc6QT05MjticmVhayB0O2Nhc2UgMjk6aWYoISgxPDwoMzEmKGM9''@;'; + put 'put ''MjU1JkEpKSZhWzU2OTQwKygoYz4+PjV8WHRbMTQ0MDQ0KygyNTUmZik+PjBdPDwzKTw8Mik+PjJdKSl7QT04NzticmVhayB0fWJyZWFrO2Nhc2UgMjc6Y2FzZSAyNjpjYXNlIDI1OmNhc2UgMjQ6Y2FzZSAyMjpicmVhaztkZWZhdWx0OmY9MTksbT1iO2NvbnRpbnVlIHR9Zj00MSxtPW0rNHww''@;'; + put 'put ''fXN3aXRjaCgwfEEpe2Nhc2UgNzE6Y2FzZSA3MzpjYXNlIDEwMzphW3A+PjJdPW0sZj0wO2JyZWFrIGU7Y2FzZSA3NDppZigoMHxiKTwzKXtmPS0yO2JyZWFrIGV9YVtwPj4yXT1tLGY9MDticmVhayBlO2Nhc2UgNzY6aWYoKDB8Yik8NCl7Zj0tMjticmVhayBlfWFbcD4+Ml09bSxmPTA7YnJl''@;'; + put 'put ''YWsgZTtjYXNlIDc4OmFbcD4+Ml09bTticmVhayBlO2Nhc2UgODc6Y2FzZSA4OTphW3A+PjJdPWIsZj0wO2JyZWFrIGU7Y2FzZSA5MDppZigoMHxsKTwzKXtmPS0yO2JyZWFrIGV9YVtwPj4yXT1iLGY9MDticmVhayBlO2Nhc2UgOTI6aWYoKDB8bCk8NCl7Zj0tMjticmVhayBlfWFbcD4+Ml09''@;'; + put 'put ''YixmPTA7YnJlYWsgZTtjYXNlIDk0OmlmKDE5PT0oMHxmKSl7YVtwPj4yXT1tLGY9MDticmVhayBlfWFbcD4+Ml09bSsyLGY9MzI7YnJlYWsgZTtjYXNlIDk3OmlmKDE5PT0oMHxmKSl7YVtwPj4yXT1tLGY9MDticmVhayBlfWFbcD4+Ml09bSsyLGY9MzE7YnJlYWsgZTtjYXNlIDEwMDppZigx''@;'; + put 'put ''OT09KDB8Zikpe2FbcD4+Ml09bSxmPTA7YnJlYWsgZX1hW3A+PjJdPW0rMixmPTMwO2JyZWFrIGU7Y2FzZSAxMDQ6Zj0wLWZ8MDticmVhayBlfX1lbHNlIGlmKDY0PT0oMHxBKSl7YVtwPj4yXT1jLGY9MDticmVha319ZWxzZSBmPS0xO2Vsc2UgZj0tNH13aGlsZSgwKTtyZXR1cm4gMHxmfSxm''@;'; + put 'put ''dW5jdGlvbiBYOWUobCxjLGYscCl7bHw9MCxjfD0wLGZ8PTAscHw9MDt2YXIgbT0wLEE9MCx3PTAsYj0wO2U6ZG97aWYoYz4+PjA8Zj4+PjApaWYobT1jLEE9Zi1tfDAsYj0wPT0oMSZBfDApLEEmPS0yLHc9MD09KDB8QSksQT1ifHc/ZjpjK0F8MCxifDFedyl7c3dpdGNoKDB8KGY9KGY9MHxm''@;'; + put 'put ''ZVtjPj4wXSk8PDI0Pj4yND8wfGYwKGYsMHxmZVtjKzE+PjBdKTowfFh0W2wrNzIrKDB8WHRbYysxPj4wXSk+PjBdKSl7Y2FzZSAyOmY9MHxuQWUobCxjKzJ8MCxBLHApO2JyZWFrIGU7Y2FzZSAzOmY9MHxiaihsLGMrMnwwLEEscCk7YnJlYWsgZTtjYXNlIDk6aWYoKEEtKG09YysyfDApfDAp''@;'; + put 'put ''PD0xKXtmPS0zO2JyZWFrIGV9Zj0oZj0wfGZlW20+PjBdKTw8MjQ+PjI0PzB8ZjAoZiwwfGZlW2MrMz4+MF0pOjB8WHRbbCs3MisoMHxYdFtjKzM+PjBdKT4+MF0sYVtwPj4yXT0xMD09KDB8Zik/Yys0fDA6bSxmPTc7YnJlYWsgZTtjYXNlIDEwOmFbcD4+Ml09YysyLGY9NzticmVhayBlO2Nh''@;'; + put 'put ''c2UgNDppZigoQS0obT1jKzJ8MCl8MCk8PTEpe2Y9LTU7YnJlYWsgZX1pZigwPT0oMHxmZVttPj4wXSkmJjkzPT0oMHxmZVtjKzM+PjBdKSl7aWYoKEEtKGY9Yys0fDApfDApPD0xKXtmPS01O2JyZWFrIGV9aWYoMD09KDB8ZmVbZj4+MF0pJiY2Mj09KDB8ZmVbYys1Pj4wXSkpe2FbcD4+Ml09''@;'; + put 'put ''ZixmPTA7YnJlYWsgZX1mPUF9ZWxzZSBmPUE7YnJlYWs7Y2FzZSA1OmlmKCgoZj1BKS1tfDApPDIpe2Y9LTI7YnJlYWsgZX1tPWMrMnwwO2JyZWFrO2Nhc2UgNjppZigoKGY9QSktbXwwKTwzKXtmPS0yO2JyZWFrIGV9bT1jKzN8MDticmVhaztjYXNlIDc6aWYoKChmPUEpLW18MCk8NCl7Zj0t''@;'; + put 'put ''MjticmVhayBlfW09Yys0fDA7YnJlYWs7Y2FzZSA4OmNhc2UgMTpjYXNlIDA6YVtwPj4yXT1jLGY9MDticmVhayBlO2RlZmF1bHQ6bT1jKzJ8MCxmPUF9dz1sKzcyfDAsbD1tO3Q6Zm9yKDs7KXtpZigoMHwoYz1mLWx8MCkpPD0xKXttPTUyO2JyZWFrfXN3aXRjaChBPTB8ZmVbbCsxPj4wXSww''@;'; + put 'put ''fChtPShtPTB8ZmVbbD4+MF0pPDwyND4+MjQ/MHxmMChtLEEpOjB8WHRbdysoMjU1JkEpPj4wXSkpe2Nhc2UgMTA6Y2FzZSA5OmNhc2UgODpjYXNlIDE6Y2FzZSAwOmNhc2UgMjpjYXNlIDM6bT01MDticmVhayB0O2Nhc2UgNTpkZWZhdWx0Omw9bCsyfDA7Y29udGludWUgdDtjYXNlIDY6aWYo''@;'; + put 'put ''KDB8Yyk8Myl7bT0zODticmVhayB0fWw9bCszfDA7Y29udGludWUgdDtjYXNlIDc6aWYoKDB8Yyk8NCl7bT00MTticmVhayB0fWw9bCs0fDA7Y29udGludWUgdDtjYXNlIDQ6aWYoKDB8Yyk8PTMpe209NTA7YnJlYWsgdH1pZigwfGZlWyhtPWwrMnwwKT4+MF0pe2w9bTtjb250aW51ZSB0fWlm''@;'; + put 'put ''KDkzIT0oMHxmZVtsKzM+PjBdKSl7bD1tO2NvbnRpbnVlIHR9aWYoKDB8Yyk8PTUpe209NTA7YnJlYWsgdH1pZigwfGZlWyhBPWwrNHwwKT4+MF0pe2w9bTtjb250aW51ZSB0fWlmKDYyPT0oMHxmZVtsKzU+PjBdKSl7bT00OTticmVhayB0fWw9bTtjb250aW51ZSB0fX1pZigzOD09KDB8bSkp''@;'; + put 'put ''e2FbcD4+Ml09bCxmPTY7YnJlYWt9aWYoNDE9PSgwfG0pKXthW3A+PjJdPWwsZj02O2JyZWFrfWlmKDQ5PT0oMHxtKSl7YVtwPj4yXT1BLGY9MDticmVha31pZig1MD09KDB8bSkpe2FbcD4+Ml09bCxmPTY7YnJlYWt9aWYoNTI9PSgwfG0pKXthW3A+PjJdPWwsZj02O2JyZWFrfX1lbHNlIGY9''@;'; + put 'put ''LTE7ZWxzZSBmPS00fXdoaWxlKDApO3JldHVybiAwfGZ9LGZ1bmN0aW9uIEIxZShsLGMsZixwKXtsfD0wLGN8PTAsZnw9MCxwfD0wO3ZhciBtPTAsQT0wLHc9MCxiPTA7ZTpkb3tpZihjPj4+MDxmPj4+MClpZihtPWMsQT1mLW18MCxiPTA9PSgxJkF8MCksQSY9LTIsdz0wPT0oMHxBKSxBPWJ8''@;'; + put 'put ''dz9mOmMrQXwwLGJ8MV53KXtzd2l0Y2goMHwoZj0oZj0wfGZlW2M+PjBdKTw8MjQ+PjI0PzB8ZjAoZiwwfGZlW2MrMT4+MF0pOjB8WHRbbCs3MisoMHxYdFtjKzE+PjBdKT4+MF0pKXtjYXNlIDQ6aWYoKEEtKG09YysyfDApfDApPD0xKXtmPS0xO2JyZWFrIGV9aWYoMD09KDB8ZmVbbT4+MF0p''@;'; + put 'put ''JiY5Mz09KDB8ZmVbYyszPj4wXSkpe2lmKChBLShmPWMrNHwwKXwwKTw9MSl7Zj0tMTticmVhayBlfWlmKDA9PSgwfGZlW2Y+PjBdKSYmNjI9PSgwfGZlW2MrNT4+MF0pKXthW3A+PjJdPWMrNixmPTQwO2JyZWFrIGV9fWJyZWFrO2Nhc2UgOTppZigoQS0obT1jKzJ8MCl8MCk8PTEpe2Y9LTE7''@;'; + put 'put ''YnJlYWsgZX1mPShmPTB8ZmVbbT4+MF0pPDwyND4+MjQ/MHxmMChmLDB8ZmVbYyszPj4wXSk6MHxYdFtsKzcyKygwfFh0W2MrMz4+MF0pPj4wXSxhW3A+PjJdPTEwPT0oMHxmKT9jKzR8MDptLGY9NzticmVhayBlO2Nhc2UgMTA6YVtwPj4yXT1jKzIsZj03O2JyZWFrIGU7Y2FzZSA1OmlmKCgo''@;'; + put 'put ''Zj1BKS1tfDApPDIpe2Y9LTI7YnJlYWsgZX1tPWMrMnwwLEE9ZjticmVhaztjYXNlIDY6aWYoKChmPUEpLW18MCk8Myl7Zj0tMjticmVhayBlfW09YyszfDAsQT1mO2JyZWFrO2Nhc2UgNzppZigoKGY9QSktbXwwKTw0KXtmPS0yO2JyZWFrIGV9bT1jKzR8MCxBPWY7YnJlYWs7Y2FzZSA4OmNh''@;'; + put 'put ''c2UgMTpjYXNlIDA6YVtwPj4yXT1jLGY9MDticmVhayBlO2RlZmF1bHQ6bT1jKzJ8MH13PWwrNzJ8MCxsPW07dDpmb3IoOzspe2lmKCgwfChjPUEtbHwwKSk8PTEpe209NDA7YnJlYWt9c3dpdGNoKG09MHxmZVtsKzE+PjBdLDB8KGY9KGY9MHxmZVtsPj4wXSk8PDI0Pj4yND8wfGYwKGYsbSk6''@;'; + put 'put ''MHxYdFt3KygyNTUmbSk+PjBdKSl7Y2FzZSAxMDpjYXNlIDk6Y2FzZSA4OmNhc2UgMTpjYXNlIDA6Y2FzZSA0Om09Mzg7YnJlYWsgdDtjYXNlIDY6aWYoKDB8Yyk8Myl7bT0zNTticmVhayB0fWY9MzticmVhaztjYXNlIDc6aWYoKDB8Yyk8NCl7bT0zNzticmVhayB0fWY9NDticmVhaztkZWZh''@;'; + put 'put ''dWx0OmY9Mn1sPWwrZnwwfWlmKDM1PT0oMHxtKSl7YVtwPj4yXT1sLGY9NjticmVha31pZigzNz09KDB8bSkpe2FbcD4+Ml09bCxmPTY7YnJlYWt9aWYoMzg9PSgwfG0pKXthW3A+PjJdPWwsZj02O2JyZWFrfWlmKDQwPT0oMHxtKSl7YVtwPj4yXT1sLGY9NjticmVha319ZWxzZSBmPS0xO2Vs''@;'; + put 'put ''c2UgZj0tNH13aGlsZSgwKTtyZXR1cm4gMHxmfSxmdW5jdGlvbiBLOWUobCxjLGYscCl7cHw9MDt2YXIgdyxtPTAsQT0wLGI9MCxrPTA7Yj0wPT0oMSYoYj0oZnw9MCktKGN8PTApfDApfDApP2Y6YysoLTImYil8MCx3PTcyKyhsfD0wKXwwLEE9MCxmPWM7ZTpmb3IoOzspe2lmKCgwfChtPWIt''@;'; + put 'put ''ZnwwKSk8PTEpe2Y9LTE7YnJlYWt9c3dpdGNoKGM9MHxmZVtmKzE+PjBdLDB8KGw9KGw9MHxmZVtmPj4wXSk8PDI0Pj4yND8wfGYwKGwsYyk6MHxYdFt3KygyNTUmYyk+PjBdKSl7Y2FzZSA4OmNhc2UgMTpjYXNlIDA6az0xMjticmVhayBlO2Nhc2UgNTpkZWZhdWx0OmY9ZisyfDAsQT1tPUE7''@;'; + put 'put ''Y29udGludWUgZTtjYXNlIDY6aWYoKDB8bSk8Myl7Zj0tMjticmVhayBlfWY9ZiszfDAsQT1tPUE7Y29udGludWUgZTtjYXNlIDc6aWYoKDB8bSk8NCl7Zj0tMjticmVhayBlfWY9Zis0fDAsQT1tPUE7Y29udGludWUgZTtjYXNlIDI6aWYoKGItKGw9ZisyfDApfDApPD0xKXtmPS0xO2JyZWFr''@;'; + put 'put ''IGV9aWYoMHxmZVtsPj4wXSl7Zj1sLEE9bT1BO2NvbnRpbnVlIGV9aWYoMzMhPSgwfGZlW2YrMz4+MF0pKXtmPWwsQT1tPUE7Y29udGludWUgZX1pZigoYi0obD1mKzR8MCl8MCk8PTEpe2Y9LTE7YnJlYWsgZX1pZigwfGZlW2w+PjBdKXtmPWwsQT1tPUE7Y29udGludWUgZX1BPUErKDEmKG09''@;'; + put 'put ''OTE9PSgwfGZlW2YrNT4+MF0pKSl8MCxmPW0/Zis2fDA6bDtjb250aW51ZSBlO2Nhc2UgNDppZigoYi0obD1mKzJ8MCl8MCk8PTEpe2Y9LTE7YnJlYWsgZX1pZigwfGZlW2w+PjBdKXtmPWwsQT1tPUE7Y29udGludWUgZX1pZig5MyE9KDB8ZmVbZiszPj4wXSkpe2Y9bCxBPW09QTtjb250aW51''@;'; + put 'put ''ZSBlfWlmKChiLShsPWYrNHwwKXwwKTw9MSl7Zj0tMTticmVhayBlfWlmKDB8ZmVbbD4+MF0pe2Y9bCxBPW09QTtjb250aW51ZSBlfWlmKDYyIT0oMHxmZVtmKzU+PjBdKSl7Zj1sLEE9bT1BO2NvbnRpbnVlIGV9aWYoZj1mKzZ8MCwhQSl7az0yNjticmVhayBlfUE9QSstMXwwO2NvbnRpbnVl''@;'; + put 'put ''IGV9fXJldHVybiAxMj09KDB8ayk/KGFbcD4+Ml09ZixmPTApOjI2PT0oMHxrKSYmKGFbcD4+Ml09ZixmPTQyKSwwfGZ9LGZ1bmN0aW9uIHlqKGwsYyxmLHApe2x8PTAsY3w9MCxmfD0wLHB8PTA7dmFyIG09MCxBPTAsdz0wLGI9MCxrPTA7ZG97aWYoYz4+PjA8Zj4+PjApaWYoKChiPWYpLWN8''@;'; + put 'put ''MCk+MSl7az1sKzcyfDAsdz1jO2U6Zm9yKDs7KXtpZigoYi13fDApPD0xKXtBPTMwO2JyZWFrfXN3aXRjaChBPTB8ZmVbdysxPj4wXSwwfChtPShtPTB8ZmVbdz4+MF0pPDwyND4+MjQ/MHxmMChtLEEpOjB8WHRbaysoMjU1JkEpPj4wXSkpe2Nhc2UgMzpBPTExO2JyZWFrIGU7Y2FzZSAyOkE9''@;'; + put 'put ''MTQ7YnJlYWsgZTtjYXNlIDEwOkE9MTU7YnJlYWsgZTtjYXNlIDk6QT0xODticmVhayBlO2Nhc2UgMjE6QT0yNTticmVhayBlO2Nhc2UgNTpkZWZhdWx0Om09MjticmVhaztjYXNlIDY6bT0zO2JyZWFrO2Nhc2UgNzptPTR9dz13K218MH1pZigxMT09KDB8QSkpe2lmKCgwfHcpPT0oMHxjKSl7''@;'; + put 'put ''bT0wfGJqKGwsYysyfDAsZixwKTticmVha31hW3A+PjJdPXcsbT02O2JyZWFrfWlmKDE0PT0oMHxBKSl7YVtwPj4yXT13LG09MDticmVha31pZigxNT09KDB8QSkpe2lmKCgwfHcpPT0oMHxjKSl7YVtwPj4yXT1jKzIsbT03O2JyZWFrfWFbcD4+Ml09dyxtPTY7YnJlYWt9aWYoMTg9PSgwfEEp''@;'; + put 'put ''KXtpZigoMHx3KSE9KDB8Yykpe2FbcD4+Ml09dyxtPTY7YnJlYWt9aWYoKGItKHc9YysyfDApfDApPD0xKXttPS0zO2JyZWFrfUE9MHxmZVtjKzM+PjBdLG09KG09MHxmZVt3Pj4wXSk8PDI0Pj4yND8wfGYwKG0sQSk6MHxYdFtrKygyNTUmQSk+PjBdLGFbcD4+Ml09MTA9PSgwfG0pP2MrNHww''@;'; + put 'put ''OncsbT03O2JyZWFrfWlmKDI1PT0oMHxBKSl7aWYoKDB8dyk9PSgwfGMpKXthW3A+PjJdPWMrMixtPTM5O2JyZWFrfWFbcD4+Ml09dyxtPTY7YnJlYWt9aWYoMzA9PSgwfEEpKXthW3A+PjJdPXcsbT02O2JyZWFrfX1lbHNlIG09LTE7ZWxzZSBtPS00fXdoaWxlKDApO3JldHVybiAwfG19LGZ1''@;'; + put 'put ''bmN0aW9uIFAxZShsLGMsZixwKXtsfD0wLGN8PTAsZnw9MCxwfD0wO3ZhciBtPTAsQT0wLHc9MCxiPTAsaz0wO2Rve2lmKGM+Pj4wPGY+Pj4wKWlmKCgoYj1mKS1jfDApPjEpe2s9bCs3MnwwLHc9YztlOmZvcig7Oyl7aWYoKGItd3wwKTw9MSl7QT0yOTticmVha31zd2l0Y2goQT0wfGZlW3cr''@;'; + put 'put ''MT4+MF0sMHwobT0obT0wfGZlW3c+PjBdKTw8MjQ+PjI0PzB8ZjAobSxBKTowfFh0W2srKDI1NSZBKT4+MF0pKXtjYXNlIDM6QT0xMTticmVhayBlO2Nhc2UgMzA6QT0xNDticmVhayBlO2Nhc2UgMTA6QT0xNzticmVhayBlO2Nhc2UgOTpBPTIwO2JyZWFrIGU7Y2FzZSA1OmRlZmF1bHQ6bT0y''@;'; + put 'put ''O2JyZWFrO2Nhc2UgNjptPTM7YnJlYWs7Y2FzZSA3Om09NH13PXcrbXwwfWlmKDExPT0oMHxBKSl7aWYoKDB8dyk9PSgwfGMpKXttPTB8YmoobCxjKzJ8MCxmLHApO2JyZWFrfWFbcD4+Ml09dyxtPTY7YnJlYWt9aWYoMTQ9PSgwfEEpKXtpZigoMHx3KT09KDB8Yykpe209MjI9PSgwfChtPTB8''@;'; + put 'put ''ajFlKGwsYysyfDAsZixwKSkpPzA6bTticmVha31hW3A+PjJdPXcsbT02O2JyZWFrfWlmKDE3PT0oMHxBKSl7aWYoKDB8dyk9PSgwfGMpKXthW3A+PjJdPWMrMixtPTc7YnJlYWt9YVtwPj4yXT13LG09NjticmVha31pZigyMD09KDB8QSkpe2lmKCgwfHcpIT0oMHxjKSl7YVtwPj4yXT13LG09''@;'; + put 'put ''NjticmVha31pZigoYi0odz1jKzJ8MCl8MCk8PTEpe209LTM7YnJlYWt9QT0wfGZlW2MrMz4+MF0sbT0obT0wfGZlW3c+PjBdKTw8MjQ+PjI0PzB8ZjAobSxBKTowfFh0W2srKDI1NSZBKT4+MF0sYVtwPj4yXT0xMD09KDB8bSk/Yys0fDA6dyxtPTc7YnJlYWt9aWYoMjk9PSgwfEEpKXthW3A+''@;'; + put 'put ''PjJdPXcsbT02O2JyZWFrfX1lbHNlIG09LTE7ZWxzZSBtPS00fXdoaWxlKDApO3JldHVybiAwfG19LGZ1bmN0aW9uIEYxZShsLGMsZixwKXtsfD0wLHB8PTA7dmFyIG0sQT0wO2ZvcihtPWZ8PTAsbD1jfD0wOzspe2lmKCEoKGM9MHxmZVtwPj4wXSk8PDI0Pj4yNCkpe0E9NzticmVha31pZigo''@;'; + put 'put ''bS1sfDApPDIpe2w9MDticmVha31pZigwfGZlW2w+PjBdKXtsPTA7YnJlYWt9aWYoKDB8ZmVbbCsxPj4wXSkhPWM8PDI0Pj4yNCl7bD0wO2JyZWFrfXA9cCsxfDAsbD1sKzJ8MH1yZXR1cm4gNz09KDB8QSkmJihsPSgwfGwpPT0oMHxmKSYxKSwwfGx9LGZ1bmN0aW9uIEgxZShsLGMsZixwKXtj''@;'; + put 'put ''fD0wLGZ8PTAscHw9MDt2YXIgUixtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTA7Uj03MisobHw9MCl8MCxNPTAsRD0wLGw9MTtlOmZvcig7Oylzd2l0Y2goYj0wfGZlWyhBPWMrM3wwKT4+MF0sMHwobT0odz0obT0wfGZlWyhrPWMrMnwwKT4+MF0pPDwyND4+MjQ9PTApPzB8WHRbUisoMjU1''@;'; + put 'put ''JmIpPj4wXTowfGYwKG0sYikpKXtjYXNlIDU6Y2FzZSAyNDpjYXNlIDIyOmNhc2UgMjk6aWYoMHxsKXtjPWssbD1BPWwsRD13PUQsTT1iPU07Y29udGludWUgZX1pZigoMHxEKT49KDB8Zikpe2w9MSxjPWssRD13PUQsTT1iPU07Y29udGludWUgZX1hW3ArKEQ8PDQpPj4yXT1rLGZlW3ArKEQ8''@;'; + put 'put ''PDQpKzEyPj4wXT0xLGw9MSxjPWssRD13PUQsTT1iPU07Y29udGludWUgZTtjYXNlIDY6aWYoMHxsKXtjPUEsbD13PWwsRD1iPUQsTT1rPU07Y29udGludWUgZX1pZigoMHxEKT49KDB8Zikpe2w9MSxjPUEsRD1iPUQsTT1rPU07Y29udGludWUgZX1hW3ArKEQ8PDQpPj4yXT1rLGZlW3ArKEQ8''@;'; + put 'put ''PDQpKzEyPj4wXT0xLGw9MSxjPUEsRD1iPUQsTT1rPU07Y29udGludWUgZTtjYXNlIDc6bHx8KCgwfEQpPCgwfGYpJiYoYVtwKyhEPDw0KT4+Ml09ayxmZVtwKyhEPDw0KSsxMj4+MF09MSksbD0xKSxjPWMrNHwwLEQ9Yj1ELE09az1NO2NvbnRpbnVlIGU7Y2FzZSAxMjppZigyIT0oMHxsKSl7''@;'; + put 'put ''aWYoKDB8RCk+PSgwfGYpKXtNPTEyLGw9MixjPWssRD1iPUQ7Y29udGludWUgZX1hW3ArKEQ8PDQpKzQ+PjJdPWMrNCxNPTEyLGw9MixjPWssRD1iPUQ7Y29udGludWUgZX1pZigxMiE9KDB8TSkpe2w9MixjPWssRD13PUQsTT1iPU07Y29udGludWUgZX0oMHxEKTwoMHxmKSYmKGFbcCsoRDw8''@;'; + put 'put ''NCkrOD4+Ml09ayksTT0xMixEPUQrMXwwLGw9MCxjPWs7Y29udGludWUgZTtjYXNlIDEzOmlmKDIhPSgwfGwpKXtpZigoMHxEKT49KDB8Zikpe009MTMsbD0yLGM9ayxEPWI9RDtjb250aW51ZSBlfWFbcCsoRDw8NCkrND4+Ml09Yys0LE09MTMsbD0yLGM9ayxEPWI9RDtjb250aW51ZSBlfWlm''@;'; + put 'put ''KDEzIT0oMHxNKSl7bD0yLGM9ayxEPXc9RCxNPWI9TTtjb250aW51ZSBlfSgwfEQpPCgwfGYpJiYoYVtwKyhEPDw0KSs4Pj4yXT1rKSxNPTEzLEQ9RCsxfDAsbD0wLGM9aztjb250aW51ZSBlO2Nhc2UgMzppZigoMHxEKT49KDB8Zikpe2M9ayxsPUE9bCxEPXc9RCxNPWI9TTtjb250aW51ZSBl''@;'; + put 'put ''fWZlW3ArKEQ8PDQpKzEyPj4wXT0wLGM9ayxsPUE9bCxEPXc9RCxNPWI9TTtjb250aW51ZSBlO2Nhc2UgMjE6c3dpdGNoKDB8bCl7Y2FzZSAxOmw9MCxjPWssRD13PUQsTT1iPU07Y29udGludWUgZTtjYXNlIDI6YnJlYWs7ZGVmYXVsdDpjPWssbD1BPWwsRD13PUQsTT1iPU07Y29udGludWUg''@;'; + put 'put ''ZX1pZigoMHxEKT49KDB8Zikpe2w9MixjPWssRD13PUQsTT1iPU07Y29udGludWUgZX1pZighKDB8ZmVbKEE9cCsoRDw8NCkrMTJ8MCk+PjBdKSl7bD0yLGM9ayxEPXc9RCxNPWI9TTtjb250aW51ZSBlfWRve2lmKHcmKDB8aykhPSgwfGFbcCsoRDw8NCkrND4+Ml0pJmI8PDI0Pj4yND09MzIp''@;'; + put 'put ''e2lmKGw9MHxmZVtjKzU+PjBdLChtPTB8ZmVbYys0Pj4wXSk8PDI0Pj4yNClsPTB8ZjAobSxsKTtlbHNle2lmKGw8PDI0Pj4yND09MzIpYnJlYWs7bD0wfFh0W1IrKDI1NSZsKT4+MF19aWYoKDB8bCkhPSgwfE0pKXtsPTIsYz1rLEQ9dz1ELE09Yj1NO2NvbnRpbnVlIGV9fX13aGlsZSgwKTtm''@;'; + put 'put ''ZVtBPj4wXT0wLGw9MixjPWssRD13PUQsTT1iPU07Y29udGludWUgZTtjYXNlIDEwOmNhc2UgOTpzd2l0Y2goMHxsKXtjYXNlIDE6bD0wLGM9ayxEPXc9RCxNPWI9TTtjb250aW51ZSBlO2Nhc2UgMjpicmVhaztkZWZhdWx0OmM9ayxsPUE9bCxEPXc9RCxNPWI9TTtjb250aW51ZSBlfWlmKCgw''@;'; + put 'put ''fEQpPj0oMHxmKSl7bD0yLGM9ayxEPXc9RCxNPWI9TTtjb250aW51ZSBlfWZlW3ArKEQ8PDQpKzEyPj4wXT0wLGw9MixjPWssRD13PUQsTT1iPU07Y29udGludWUgZTtjYXNlIDE3OmNhc2UgMTE6aWYoMj09KDB8bCkpe2w9MixjPWssRD13PUQsTT1iPU07Y29udGludWUgZX1icmVhayBlO2Rl''@;'; + put 'put ''ZmF1bHQ6Yz1rLGw9QT1sLEQ9dz1ELE09Yj1NO2NvbnRpbnVlIGV9cmV0dXJuIDB8RH0sZnVuY3Rpb24gVjFlKGwsYyxmLHApe2N8PTAscHw9MDt2YXIgdyxiLG09MCxBPTAsaz0wO2I9KGZ8PTApLTJ8MCx3PTcyKyhsfD0wKXwwO2U6Zm9yKDs7KXtpZigoYi0obT1jKzJ8MCl8MCk8PTEpe2Y9''@;'; + put 'put ''MTticmVha31zd2l0Y2gobD0wfGZlW2MrMz4+MF0sMHwoZj0oQT0oZj0wfGZlW20+PjBdKTw8MjQ+PjI0PT0wKT8wfFh0W3crKDI1NSZsKT4+MF06MHxmMChmLGwpKSl7Y2FzZSAyMzpjYXNlIDE5OmNhc2UgMzA6Y2FzZSAzMzpjYXNlIDE2OmNhc2UgMTg6Y2FzZSAxMDpjYXNlIDk6Y2FzZSAx''@;'; + put 'put ''NTpjYXNlIDE0OmNhc2UgMTc6Y2FzZSAzNTpjYXNlIDM0OmNhc2UgMzI6Y2FzZSAzMTpjYXNlIDEzOmNhc2UgMjc6Y2FzZSAyNDpjYXNlIDI1OmM9bTtjb250aW51ZSBlO2Nhc2UgMjE6aWYoQSZsPDwyND4+MjQ9PTkpe2s9MTI7YnJlYWsgZX1jPW07Y29udGludWUgZTtjYXNlIDIyOmNhc2Ug''@;'; + put 'put ''MjY6aWYoIUEpe2s9MTI7YnJlYWsgZX1pZihsPDwyND4+MjQ+PTApe2M9bTtjb250aW51ZSBlfWJyZWFrO2RlZmF1bHQ6aWYoIUEpe2s9MTI7YnJlYWsgZX19c3dpdGNoKGw8PDI0Pj4yNHwwKXtjYXNlIDY0OmNhc2UgMzY6Yz1tO2JyZWFrO2RlZmF1bHQ6az0xMjticmVhayBlfX1yZXR1cm4g''@;'; + put 'put ''MTI9PSgwfGspJiYoYVtwPj4yXT1tLGY9MCksMHxmfSxmdW5jdGlvbiB3MWUobCxjLGYscCl7bHw9MCxjfD0wLGZ8PTAscHw9MDt2YXIgbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTA7ZTpkb3tpZihjPj4+MDxmPj4+MClpZihBPWMsTT1mLUF8MCxiPTA9PSgxJk18MCksTSY9LTIsaz0wPT0oMHxN''@;'; + put 'put ''KSxNPWJ8az9mOmMrTXwwLGJ8MV5rKXtzd2l0Y2goKGY9MHxmZVtjKzE+PjBdKTw8MjQ+PjI0Pyh3PW09MHxmZVtjPj4wXSxtPTB8ZjAoZixtKSk6KHc9bT0wfGZlW2M+PjBdLG09MHxYdFtsKzcyKygyNTUmbSk+PjBdKSwwfG0pe2Nhc2UgMTI6Zj0wfFlLKDEyLGwsYysyfDAsTSxwKTticmVh''@;'; + put 'put ''ayBlO2Nhc2UgMTM6Zj0wfFlLKDEzLGwsYysyfDAsTSxwKTticmVhayBlO2Nhc2UgMjppZigoTS0obT1jKzJ8MCl8MCk8PTEpe2Y9LTE7YnJlYWsgZX1zd2l0Y2goMHwoZj0oZj0wfGZlW2MrMz4+MF0pPDwyND4+MjQ/MHxmMChmLDB8ZmVbbT4+MF0pOjB8WHRbbCs3MisoMHxYdFttPj4wXSk+''@;'; + put 'put ''PjBdKSl7Y2FzZSAxNjpmPTB8TDFlKGwsYys0fDAsTSxwKTticmVhayBlO2Nhc2UgMTU6Zj0wfEdLKGwsYys0fDAsTSxwKTticmVhayBlO2Nhc2UgNzpjYXNlIDY6Y2FzZSA1OmNhc2UgMjk6Y2FzZSAyNDpjYXNlIDIyOmFbcD4+Ml09YyxmPTI5O2JyZWFrIGU7ZGVmYXVsdDphW3A+PjJdPW0s''@;'; + put 'put ''Zj0wO2JyZWFrIGV9Y2FzZSA5OmlmKChjKzJ8MCk9PSgwfE0pKXthW3A+PjJdPU0sZj0tMTU7YnJlYWsgZX1BPTc7YnJlYWs7Y2FzZSAxMDpjYXNlIDIxOkE9NzticmVhaztjYXNlIDMwOmY9MHxzTChsLGMrMnwwLE0scCk7YnJlYWsgZTtjYXNlIDM1OmFbcD4+Ml09YysyLGY9Mzg7YnJlYWsg''@;'; + put 'put ''ZTtjYXNlIDIwOmFbcD4+Ml09YysyLGY9MjU7YnJlYWsgZTtjYXNlIDQ6aWYoKDB8KGY9TS0obT1jKzJ8MCl8MCkpPD0xKXtmPS0yNjticmVhayBlfWlmKDA9PSgwfGZlW2MrMz4+MF0pJiY5Mz09KDB8ZmVbbT4+MF0pKXtpZigoMHxmKTw9Myl7Zj0tMTticmVhayBlfWlmKDA9PSgwfGZlW2Mr''@;'; + put 'put ''NT4+MF0pJiY2Mj09KDB8ZmVbYys0Pj4wXSkpe2FbcD4+Ml09Yys2LGY9MzQ7YnJlYWsgZX19YVtwPj4yXT1tLGY9MjY7YnJlYWsgZTtjYXNlIDMxOmFbcD4+Ml09YysyLGY9MjM7YnJlYWsgZTtjYXNlIDMyOmlmKChNLShtPWMrMnwwKXwwKTw9MSl7Zj0tMjQ7YnJlYWsgZX1zd2l0Y2goMHwo''@;'; + put 'put ''Zj0oZj0wfGZlW2MrMz4+MF0pPDwyND4+MjQ/MHxmMChmLDB8ZmVbbT4+MF0pOjB8WHRbbCs3MisoMHxYdFttPj4wXSk+PjBdKSl7Y2FzZSAzMzphW3A+PjJdPWMrNCxmPTM2O2JyZWFrIGU7Y2FzZSAxNTphW3A+PjJdPWMrNCxmPTM1O2JyZWFrIGU7Y2FzZSAzNDphW3A+PjJdPWMrNCxmPTM3''@;'; + put 'put ''O2JyZWFrIGU7Y2FzZSAzMjpjYXNlIDM2OmNhc2UgMzU6Y2FzZSAxMTpjYXNlIDIxOmNhc2UgMTA6Y2FzZSA5OmFbcD4+Ml09bSxmPTI0O2JyZWFrIGU7ZGVmYXVsdDphW3A+PjJdPW0sZj0wO2JyZWFrIGV9Y2FzZSAzNjphW3A+PjJdPWMrMixmPTIxO2JyZWFrIGU7Y2FzZSAxMTphW3A+PjJd''@;'; + put 'put ''PWMrMixmPTE3O2JyZWFrIGU7Y2FzZSAxOTpmPTB8TzFlKGwsYysyfDAsTSxwKTticmVhayBlO2Nhc2UgNTppZigoTS1BfDApPDIpe2Y9LTI7YnJlYWsgZX1hW3A+PjJdPWMsZj0wO2JyZWFrIGU7Y2FzZSA2OmlmKChNLUF8MCk8Myl7Zj0tMjticmVhayBlfWFbcD4+Ml09YyxmPTA7YnJlYWsg''@;'; + put 'put ''ZTtjYXNlIDc6aWYoKE0tQXwwKTw0KXtmPS0yO2JyZWFrIGV9YVtwPj4yXT1jLGY9MDticmVhayBlO2Nhc2UgMjQ6Y2FzZSAyMjpmPTE4LEE9NjE7YnJlYWs7Y2FzZSAyMzpjYXNlIDI3OmNhc2UgMjY6Y2FzZSAyNTpmPTE5LEE9NjE7YnJlYWs7Y2FzZSAyOTpBPTI1NSZmLGY9KG09MjU1Jncp''@;'; + put 'put ''Pj4+NSwobT0xPDwoMzEmbSkpJmFbNTY5NDArKChmfFh0WzE0Mzc4OCtBPj4wXTw8Myk8PDIpPj4yXT8oZj0xOCxBPTYxKTphWzU2OTQwKygoWHRbMTQ0MDQ0K0E+PjBdPDwzfGYpPDwyKT4+Ml0mbT8oZj0xOSxBPTYxKTpBPTY0O2JyZWFrO2RlZmF1bHQ6QT02NH1pZig3PT0oMHxBKSl7Yj1N''@;'; + put 'put ''LGw9bCs3MnwwLHc9Yzt0OmZvcig7Oyl7aWYoQT13LChiLSh3PXcrMnwwKXwwKTw9MSl7QT0yODticmVha31zd2l0Y2gobT0wfGZlW3c+PjBdLDB8KGY9KGY9MHxmZVtBKzM+PjBdKTw8MjQ+PjI0PzB8ZjAoZixtKTowfFh0W2wrKDI1NSZtKT4+MF0pKXtjYXNlIDEwOmNhc2UgMjE6Y29udGlu''@;'; + put 'put ''dWUgdDtjYXNlIDk6YnJlYWs7ZGVmYXVsdDpBPTI3O2JyZWFrIHR9aWYoKEErNHwwKT09KDB8TSkpe0E9Mjc7YnJlYWt9fWlmKDI3PT0oMHxBKSl7YVtwPj4yXT13LGY9MTU7YnJlYWt9aWYoMjg9PSgwfEEpKXthW3A+PjJdPXcsZj0xNTticmVha319ZWxzZSBpZig2MT09KDB8QSkpe2s9bCs3''@;'; + put 'put ''MnwwLG09YysyfDA7dDpmb3IoOzspe2M9MjU1JmY7bjpmb3IoOzspe2lmKCgwfChiPU0tbXwwKSk8PTEpe0E9MTA0O2JyZWFrIHR9c3dpdGNoKHc9MHxmZVttPj4wXSwwfChsPShBPTB8ZmVbbSsxPj4wXSk8PDI0Pj4yND8wfGYwKEEsdyk6MHxYdFtrKygyNTUmdyk+PjBdKSl7Y2FzZSA1OkE9''@;'; + put 'put ''NzM7YnJlYWsgdDtjYXNlIDY6QT03NDticmVhayB0O2Nhc2UgNzpBPTc2O2JyZWFrIHQ7Y2FzZSAxMDpjYXNlIDk6Y2FzZSAyMTpjYXNlIDMwOmNhc2UgMjA6Y2FzZSAzNjpjYXNlIDM1OmNhc2UgMzI6Y2FzZSAxMTpBPTc4O2JyZWFrIHQ7Y2FzZSAzNDpBPTk0O2JyZWFrIHQ7Y2FzZSAzMzpB''@;'; + put 'put ''PTk3O2JyZWFrIHQ7Y2FzZSAxNTpBPTEwMDticmVhayB0O2Nhc2UgMjk6aWYoISgxPDwoMzEmKGI9MjU1JncpKSZhWzU2OTQwKygoYj4+PjV8WHRbMTQ0MDQ0KygyNTUmQSk+PjBdPDwzKTw8Mik+PjJdKSl7QT03MTticmVhayB0fWJyZWFrO2Nhc2UgMjc6Y2FzZSAyNjpjYXNlIDI1OmNhc2Ug''@;'; + put 'put ''MjQ6Y2FzZSAyMjpicmVhaztjYXNlIDIzOnN3aXRjaChiPW0rMnwwLDYzJmMpe2Nhc2UgNDE6Zj0xOSxtPWI7Y29udGludWUgdDtjYXNlIDE4OmJyZWFrIG47ZGVmYXVsdDptPWI7Y29udGludWUgbn1kZWZhdWx0OkE9MTAzO2JyZWFrIHR9bT1tKzJ8MH1pZigoMHwobD1NLWJ8MCkpPD0xKXtm''@;'; + put 'put ''PS0xO2JyZWFrIGV9c3dpdGNoKEE9MHxmZVtiPj4wXSwwfCh3PShmPTB8ZmVbbSszPj4wXSk8PDI0Pj4yND8wfGYwKGYsQSk6MHxYdFtrKygyNTUmQSk+PjBdKSl7Y2FzZSA1OkE9ODk7YnJlYWsgdDtjYXNlIDY6QT05MDticmVhayB0O2Nhc2UgNzpBPTkyO2JyZWFrIHQ7Y2FzZSAyOTppZigh''@;'; + put 'put ''KDE8PCgzMSYoYz0yNTUmQSkpJmFbNTY5NDArKChjPj4+NXxYdFsxNDQwNDQrKDI1NSZmKT4+MF08PDMpPDwyKT4+Ml0pKXtBPTg3O2JyZWFrIHR9YnJlYWs7Y2FzZSAyNzpjYXNlIDI2OmNhc2UgMjU6Y2FzZSAyNDpjYXNlIDIyOmJyZWFrO2RlZmF1bHQ6Zj0xOSxtPWI7Y29udGludWUgdH1m''@;'; + put 'put ''PTQxLG09bSs0fDB9c3dpdGNoKDB8QSl7Y2FzZSA3MTpjYXNlIDczOmNhc2UgMTAzOmFbcD4+Ml09bSxmPTA7YnJlYWsgZTtjYXNlIDc0OmlmKCgwfGIpPDMpe2Y9LTI7YnJlYWsgZX1hW3A+PjJdPW0sZj0wO2JyZWFrIGU7Y2FzZSA3NjppZigoMHxiKTw0KXtmPS0yO2JyZWFrIGV9YVtwPj4y''@;'; + put 'put ''XT1tLGY9MDticmVhayBlO2Nhc2UgNzg6YVtwPj4yXT1tO2JyZWFrIGU7Y2FzZSA4NzpjYXNlIDg5OmFbcD4+Ml09YixmPTA7YnJlYWsgZTtjYXNlIDkwOmlmKCgwfGwpPDMpe2Y9LTI7YnJlYWsgZX1hW3A+PjJdPWIsZj0wO2JyZWFrIGU7Y2FzZSA5MjppZigoMHxsKTw0KXtmPS0yO2JyZWFr''@;'; + put 'put ''IGV9YVtwPj4yXT1iLGY9MDticmVhayBlO2Nhc2UgOTQ6aWYoMTk9PSgwfGYpKXthW3A+PjJdPW0sZj0wO2JyZWFrIGV9YVtwPj4yXT1tKzIsZj0zMjticmVhayBlO2Nhc2UgOTc6aWYoMTk9PSgwfGYpKXthW3A+PjJdPW0sZj0wO2JyZWFrIGV9YVtwPj4yXT1tKzIsZj0zMTticmVhayBlO2Nh''@;'; + put 'put ''c2UgMTAwOmlmKDE5PT0oMHxmKSl7YVtwPj4yXT1tLGY9MDticmVhayBlfWFbcD4+Ml09bSsyLGY9MzA7YnJlYWsgZTtjYXNlIDEwNDpmPTAtZnwwO2JyZWFrIGV9fWVsc2UgaWYoNjQ9PSgwfEEpKXthW3A+PjJdPWMsZj0wO2JyZWFrfX1lbHNlIGY9LTE7ZWxzZSBmPS00fXdoaWxlKDApO3Jl''@;'; + put 'put ''dHVybiAwfGZ9LGZ1bmN0aW9uIE5LKGwsYyxmLHApe2x8PTAsY3w9MCxmfD0wLHB8PTA7dmFyIG09MCxBPTAsdz0wLGI9MDtlOmRve2lmKGM+Pj4wPGY+Pj4wKWlmKG09YyxBPWYtbXwwLGI9MD09KDEmQXwwKSxBJj0tMix3PTA9PSgwfEEpLEE9Ynx3P2Y6YytBfDAsYnwxXncpe3N3aXRjaCgw''@;'; + put 'put ''fChmPShmPTB8ZmVbYysxPj4wXSk8PDI0Pj4yND8wfGYwKGYsMHxmZVtjPj4wXSk6MHxYdFtsKzcyKygwfFh0W2M+PjBdKT4+MF0pKXtjYXNlIDI6Zj0wfGE0KGwsYysyfDAsQSxwKTticmVhayBlO2Nhc2UgMzpmPTB8bEwobCxjKzJ8MCxBLHApO2JyZWFrIGU7Y2FzZSA5OmlmKChBLShtPWMr''@;'; + put 'put ''MnwwKXwwKTw9MSl7Zj0tMzticmVhayBlfWY9KGY9MHxmZVtjKzM+PjBdKTw8MjQ+PjI0PzB8ZjAoZiwwfGZlW20+PjBdKTowfFh0W2wrNzIrKDB8WHRbbT4+MF0pPj4wXSxhW3A+PjJdPTEwPT0oMHxmKT9jKzR8MDptLGY9NzticmVhayBlO2Nhc2UgMTA6YVtwPj4yXT1jKzIsZj03O2JyZWFr''@;'; + put 'put ''IGU7Y2FzZSA0OmlmKChBLShtPWMrMnwwKXwwKTw9MSl7Zj0tNTticmVhayBlfWlmKDA9PSgwfGZlW2MrMz4+MF0pJiY5Mz09KDB8ZmVbbT4+MF0pKXtpZigoQS0oZj1jKzR8MCl8MCk8PTEpe2Y9LTU7YnJlYWsgZX1pZigwPT0oMHxmZVtjKzU+PjBdKSYmNjI9PSgwfGZlW2Y+PjBdKSl7YVtw''@;'; + put 'put ''Pj4yXT1mLGY9MDticmVhayBlfWY9QX1lbHNlIGY9QTticmVhaztjYXNlIDU6aWYoKChmPUEpLW18MCk8Mil7Zj0tMjticmVhayBlfW09YysyfDA7YnJlYWs7Y2FzZSA2OmlmKCgoZj1BKS1tfDApPDMpe2Y9LTI7YnJlYWsgZX1tPWMrM3wwO2JyZWFrO2Nhc2UgNzppZigoKGY9QSktbXwwKTw0''@;'; + put 'put ''KXtmPS0yO2JyZWFrIGV9bT1jKzR8MDticmVhaztjYXNlIDg6Y2FzZSAxOmNhc2UgMDphW3A+PjJdPWMsZj0wO2JyZWFrIGU7ZGVmYXVsdDptPWMrMnwwLGY9QX13PWwrNzJ8MCxsPW07dDpmb3IoOzspe2lmKCgwfChjPWYtbHwwKSk8PTEpe209NTI7YnJlYWt9c3dpdGNoKEE9MHxmZVtsPj4w''@;'; + put 'put ''XSwwfChtPShtPTB8ZmVbbCsxPj4wXSk8PDI0Pj4yND8wfGYwKG0sQSk6MHxYdFt3KygyNTUmQSk+PjBdKSl7Y2FzZSAxMDpjYXNlIDk6Y2FzZSA4OmNhc2UgMTpjYXNlIDA6Y2FzZSAyOmNhc2UgMzptPTUwO2JyZWFrIHQ7Y2FzZSA1OmRlZmF1bHQ6bD1sKzJ8MDtjb250aW51ZSB0O2Nhc2Ug''@;'; + put 'put ''NjppZigoMHxjKTwzKXttPTM4O2JyZWFrIHR9bD1sKzN8MDtjb250aW51ZSB0O2Nhc2UgNzppZigoMHxjKTw0KXttPTQxO2JyZWFrIHR9bD1sKzR8MDtjb250aW51ZSB0O2Nhc2UgNDppZigoMHxjKTw9Myl7bT01MDticmVhayB0fWlmKG09bCsyfDAsMHxmZVtsKzM+PjBdKXtsPW07Y29udGlu''@;'; + put 'put ''dWUgdH1pZig5MyE9KDB8ZmVbbT4+MF0pKXtsPW07Y29udGludWUgdH1pZigoMHxjKTw9NSl7bT01MDticmVhayB0fWlmKEE9bCs0fDAsMHxmZVtsKzU+PjBdKXtsPW07Y29udGludWUgdH1pZig2Mj09KDB8ZmVbQT4+MF0pKXttPTQ5O2JyZWFrIHR9bD1tO2NvbnRpbnVlIHR9fWlmKDM4PT0o''@;'; + put 'put ''MHxtKSl7YVtwPj4yXT1sLGY9NjticmVha31pZig0MT09KDB8bSkpe2FbcD4+Ml09bCxmPTY7YnJlYWt9aWYoNDk9PSgwfG0pKXthW3A+PjJdPUEsZj0wO2JyZWFrfWlmKDUwPT0oMHxtKSl7YVtwPj4yXT1sLGY9NjticmVha31pZig1Mj09KDB8bSkpe2FbcD4+Ml09bCxmPTY7YnJlYWt9fWVs''@;'; + put 'put ''c2UgZj0tMTtlbHNlIGY9LTR9d2hpbGUoMCk7cmV0dXJuIDB8Zn0sZnVuY3Rpb24gVksobCxjLGYscCl7bHw9MCxjfD0wLGZ8PTAscHw9MDt2YXIgbT0wLEE9MCx3PTAsYj0wO2U6ZG97aWYoYz4+PjA8Zj4+PjApaWYobT1jLEE9Zi1tfDAsYj0wPT0oMSZBfDApLEEmPS0yLHc9MD09KDB8QSks''@;'; + put 'put ''QT1ifHc/ZjpjK0F8MCxifDFedyl7c3dpdGNoKDB8KGY9KGY9MHxmZVtjKzE+PjBdKTw8MjQ+PjI0PzB8ZjAoZiwwfGZlW2M+PjBdKTowfFh0W2wrNzIrKDB8WHRbYz4+MF0pPj4wXSkpe2Nhc2UgNDppZigoQS0obT1jKzJ8MCl8MCk8PTEpe2Y9LTE7YnJlYWsgZX1pZigwPT0oMHxmZVtjKzM+''@;'; + put 'put ''PjBdKSYmOTM9PSgwfGZlW20+PjBdKSl7aWYoKEEtKGY9Yys0fDApfDApPD0xKXtmPS0xO2JyZWFrIGV9aWYoMD09KDB8ZmVbYys1Pj4wXSkmJjYyPT0oMHxmZVtmPj4wXSkpe2FbcD4+Ml09Yys2LGY9NDA7YnJlYWsgZX19YnJlYWs7Y2FzZSA5OmlmKChBLShtPWMrMnwwKXwwKTw9MSl7Zj0t''@;'; + put 'put ''MTticmVhayBlfWY9KGY9MHxmZVtjKzM+PjBdKTw8MjQ+PjI0PzB8ZjAoZiwwfGZlW20+PjBdKTowfFh0W2wrNzIrKDB8WHRbbT4+MF0pPj4wXSxhW3A+PjJdPTEwPT0oMHxmKT9jKzR8MDptLGY9NzticmVhayBlO2Nhc2UgMTA6YVtwPj4yXT1jKzIsZj03O2JyZWFrIGU7Y2FzZSA1OmlmKCgo''@;'; + put 'put ''Zj1BKS1tfDApPDIpe2Y9LTI7YnJlYWsgZX1tPWMrMnwwLEE9ZjticmVhaztjYXNlIDY6aWYoKChmPUEpLW18MCk8Myl7Zj0tMjticmVhayBlfW09YyszfDAsQT1mO2JyZWFrO2Nhc2UgNzppZigoKGY9QSktbXwwKTw0KXtmPS0yO2JyZWFrIGV9bT1jKzR8MCxBPWY7YnJlYWs7Y2FzZSA4OmNh''@;'; + put 'put ''c2UgMTpjYXNlIDA6YVtwPj4yXT1jLGY9MDticmVhayBlO2RlZmF1bHQ6bT1jKzJ8MH13PWwrNzJ8MCxsPW07dDpmb3IoOzspe2lmKCgwfChjPUEtbHwwKSk8PTEpe209NDA7YnJlYWt9c3dpdGNoKG09MHxmZVtsPj4wXSwwfChmPShmPTB8ZmVbbCsxPj4wXSk8PDI0Pj4yND8wfGYwKGYsbSk6''@;'; + put 'put ''MHxYdFt3KygyNTUmbSk+PjBdKSl7Y2FzZSAxMDpjYXNlIDk6Y2FzZSA4OmNhc2UgMTpjYXNlIDA6Y2FzZSA0Om09Mzg7YnJlYWsgdDtjYXNlIDY6aWYoKDB8Yyk8Myl7bT0zNTticmVhayB0fWY9MzticmVhaztjYXNlIDc6aWYoKDB8Yyk8NCl7bT0zNzticmVhayB0fWY9NDticmVhaztkZWZh''@;'; + put 'put ''dWx0OmY9Mn1sPWwrZnwwfWlmKDM1PT0oMHxtKSl7YVtwPj4yXT1sLGY9NjticmVha31pZigzNz09KDB8bSkpe2FbcD4+Ml09bCxmPTY7YnJlYWt9aWYoMzg9PSgwfG0pKXthW3A+PjJdPWwsZj02O2JyZWFrfWlmKDQwPT0oMHxtKSl7YVtwPj4yXT1sLGY9NjticmVha319ZWxzZSBmPS0xO2Vs''@;'; + put 'put ''c2UgZj0tNH13aGlsZSgwKTtyZXR1cm4gMHxmfSxmdW5jdGlvbiBiMWUobCxjLGYscCl7cHw9MDt2YXIgdyxtPTAsQT0wLGI9MCxrPTA7Yj0wPT0oMSYoYj0oZnw9MCktKGN8PTApfDApfDApP2Y6YysoLTImYil8MCx3PTcyKyhsfD0wKXwwLEE9MCxmPWM7ZTpmb3IoOzspe2lmKCgwfChtPWIt''@;'; + put 'put ''ZnwwKSk8PTEpe2Y9LTE7YnJlYWt9c3dpdGNoKGM9MHxmZVtmPj4wXSwwfChsPShsPTB8ZmVbZisxPj4wXSk8PDI0Pj4yND8wfGYwKGwsYyk6MHxYdFt3KygyNTUmYyk+PjBdKSl7Y2FzZSA4OmNhc2UgMTpjYXNlIDA6az0xMjticmVhayBlO2Nhc2UgNTpkZWZhdWx0OmY9ZisyfDAsQT1tPUE7''@;'; + put 'put ''Y29udGludWUgZTtjYXNlIDY6aWYoKDB8bSk8Myl7Zj0tMjticmVhayBlfWY9ZiszfDAsQT1tPUE7Y29udGludWUgZTtjYXNlIDc6aWYoKDB8bSk8NCl7Zj0tMjticmVhayBlfWY9Zis0fDAsQT1tPUE7Y29udGludWUgZTtjYXNlIDI6aWYoKGItKGw9ZisyfDApfDApPD0xKXtmPS0xO2JyZWFr''@;'; + put 'put ''IGV9aWYoMHxmZVtmKzM+PjBdKXtmPWwsQT1tPUE7Y29udGludWUgZX1pZigzMyE9KDB8ZmVbbD4+MF0pKXtmPWwsQT1tPUE7Y29udGludWUgZX1pZigoYi0obD1mKzR8MCl8MCk8PTEpe2Y9LTE7YnJlYWsgZX1pZigwfGZlW2YrNT4+MF0pe2Y9bCxBPW09QTtjb250aW51ZSBlfUE9QSsoMSYo''@;'; + put 'put ''bT05MT09KDB8ZmVbbD4+MF0pKSl8MCxmPW0/Zis2fDA6bDtjb250aW51ZSBlO2Nhc2UgNDppZigoYi0obD1mKzJ8MCl8MCk8PTEpe2Y9LTE7YnJlYWsgZX1pZigwfGZlW2YrMz4+MF0pe2Y9bCxBPW09QTtjb250aW51ZSBlfWlmKDkzIT0oMHxmZVtsPj4wXSkpe2Y9bCxBPW09QTtjb250aW51''@;'; + put 'put ''ZSBlfWlmKChiLShsPWYrNHwwKXwwKTw9MSl7Zj0tMTticmVhayBlfWlmKDB8ZmVbZis1Pj4wXSl7Zj1sLEE9bT1BO2NvbnRpbnVlIGV9aWYoNjIhPSgwfGZlW2w+PjBdKSl7Zj1sLEE9bT1BO2NvbnRpbnVlIGV9aWYoZj1mKzZ8MCwhQSl7az0yNjticmVhayBlfUE9QSstMXwwO2NvbnRpbnVl''@;'; + put 'put ''IGV9fXJldHVybiAxMj09KDB8ayk/KGFbcD4+Ml09ZixmPTApOjI2PT0oMHxrKSYmKGFbcD4+Ml09ZixmPTQyKSwwfGZ9LGZ1bmN0aW9uIEUxKGwsYyxmLHApe2x8PTAsY3w9MCxmfD0wLHB8PTA7dmFyIG09MCxBPTAsdz0wLGI9MCxrPTA7ZG97aWYoYz4+PjA8Zj4+PjApaWYoKChiPWYpLWN8''@;'; + put 'put ''MCk+MSl7az1sKzcyfDAsdz1jO2U6Zm9yKDs7KXtpZigoYi13fDApPD0xKXtBPTMwO2JyZWFrfXN3aXRjaChBPTB8ZmVbdz4+MF0sMHwobT0obT0wfGZlW3crMT4+MF0pPDwyND4+MjQ/MHxmMChtLEEpOjB8WHRbaysoMjU1JkEpPj4wXSkpe2Nhc2UgMzpBPTExO2JyZWFrIGU7Y2FzZSAyOkE9''@;'; + put 'put ''MTQ7YnJlYWsgZTtjYXNlIDEwOkE9MTU7YnJlYWsgZTtjYXNlIDk6QT0xODticmVhayBlO2Nhc2UgMjE6QT0yNTticmVhayBlO2Nhc2UgNTpkZWZhdWx0Om09MjticmVhaztjYXNlIDY6bT0zO2JyZWFrO2Nhc2UgNzptPTR9dz13K218MH1pZigxMT09KDB8QSkpe2lmKCgwfHcpPT0oMHxjKSl7''@;'; + put 'put ''bT0wfGxMKGwsYysyfDAsZixwKTticmVha31hW3A+PjJdPXcsbT02O2JyZWFrfWlmKDE0PT0oMHxBKSl7YVtwPj4yXT13LG09MDticmVha31pZigxNT09KDB8QSkpe2lmKCgwfHcpPT0oMHxjKSl7YVtwPj4yXT1jKzIsbT03O2JyZWFrfWFbcD4+Ml09dyxtPTY7YnJlYWt9aWYoMTg9PSgwfEEp''@;'; + put 'put ''KXtpZigoMHx3KSE9KDB8Yykpe2FbcD4+Ml09dyxtPTY7YnJlYWt9aWYoKGItKHc9YysyfDApfDApPD0xKXttPS0zO2JyZWFrfUE9MHxmZVt3Pj4wXSxtPShtPTB8ZmVbYyszPj4wXSk8PDI0Pj4yND8wfGYwKG0sQSk6MHxYdFtrKygyNTUmQSk+PjBdLGFbcD4+Ml09MTA9PSgwfG0pP2MrNHww''@;'; + put 'put ''OncsbT03O2JyZWFrfWlmKDI1PT0oMHxBKSl7aWYoKDB8dyk9PSgwfGMpKXthW3A+PjJdPWMrMixtPTM5O2JyZWFrfWFbcD4+Ml09dyxtPTY7YnJlYWt9aWYoMzA9PSgwfEEpKXthW3A+PjJdPXcsbT02O2JyZWFrfX1lbHNlIG09LTE7ZWxzZSBtPS00fXdoaWxlKDApO3JldHVybiAwfG19LGZ1''@;'; + put 'put ''bmN0aW9uIGpLKGwsYyxmLHApe2x8PTAsY3w9MCxmfD0wLHB8PTA7dmFyIG09MCxBPTAsdz0wLGI9MCxrPTA7ZG97aWYoYz4+PjA8Zj4+PjApaWYoKChiPWYpLWN8MCk+MSl7az1sKzcyfDAsdz1jO2U6Zm9yKDs7KXtpZigoYi13fDApPD0xKXtBPTI5O2JyZWFrfXN3aXRjaChBPTB8ZmVbdz4+''@;'; + put 'put ''MF0sMHwobT0obT0wfGZlW3crMT4+MF0pPDwyND4+MjQ/MHxmMChtLEEpOjB8WHRbaysoMjU1JkEpPj4wXSkpe2Nhc2UgMzpBPTExO2JyZWFrIGU7Y2FzZSAzMDpBPTE0O2JyZWFrIGU7Y2FzZSAxMDpBPTE3O2JyZWFrIGU7Y2FzZSA5OkE9MjA7YnJlYWsgZTtjYXNlIDU6ZGVmYXVsdDptPTI7''@;'; + put 'put ''YnJlYWs7Y2FzZSA2Om09MzticmVhaztjYXNlIDc6bT00fXc9dyttfDB9aWYoMTE9PSgwfEEpKXtpZigoMHx3KT09KDB8Yykpe209MHxsTChsLGMrMnwwLGYscCk7YnJlYWt9YVtwPj4yXT13LG09NjticmVha31pZigxND09KDB8QSkpe2lmKCgwfHcpPT0oMHxjKSl7bT0yMj09KDB8KG09MHxz''@;'; + put 'put ''TChsLGMrMnwwLGYscCkpKT8wOm07YnJlYWt9YVtwPj4yXT13LG09NjticmVha31pZigxNz09KDB8QSkpe2lmKCgwfHcpPT0oMHxjKSl7YVtwPj4yXT1jKzIsbT03O2JyZWFrfWFbcD4+Ml09dyxtPTY7YnJlYWt9aWYoMjA9PSgwfEEpKXtpZigoMHx3KSE9KDB8Yykpe2FbcD4+Ml09dyxtPTY7''@;'; + put 'put ''YnJlYWt9aWYoKGItKHc9YysyfDApfDApPD0xKXttPS0zO2JyZWFrfUE9MHxmZVt3Pj4wXSxtPShtPTB8ZmVbYyszPj4wXSk8PDI0Pj4yND8wfGYwKG0sQSk6MHxYdFtrKygyNTUmQSk+PjBdLGFbcD4+Ml09MTA9PSgwfG0pP2MrNHwwOncsbT03O2JyZWFrfWlmKDI5PT0oMHxBKSl7YVtwPj4y''@;'; + put 'put ''XT13LG09NjticmVha319ZWxzZSBtPS0xO2Vsc2UgbT0tNH13aGlsZSgwKTtyZXR1cm4gMHxtfSxmdW5jdGlvbiBZOWUobCxjLGYscCl7bHw9MCxwfD0wO3ZhciBtLEE9MDtmb3IobT1mfD0wLGw9Y3w9MDs7KXtpZighKChjPTB8ZmVbcD4+MF0pPDwyND4+MjQpKXtBPTc7YnJlYWt9aWYoKG0t''@;'; + put 'put ''bHwwKTwyKXtsPTA7YnJlYWt9aWYoMHxmZVtsKzE+PjBdKXtsPTA7YnJlYWt9aWYoKDB8ZmVbbD4+MF0pIT1jPDwyND4+MjQpe2w9MDticmVha31wPXArMXwwLGw9bCsyfDB9cmV0dXJuIDc9PSgwfEEpJiYobD0oMHxsKT09KDB8ZikmMSksMHxsfSxmdW5jdGlvbiBDMWUobCxjLGYscCl7Y3w9''@;'; + put 'put ''MCxmfD0wLHB8PTA7dmFyIFIsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wO1I9NzIrKGx8PTApfDAsTT0wLEQ9MCxsPTE7ZTpmb3IoOzspc3dpdGNoKGI9MHxmZVsoaz1jKzJ8MCk+PjBdLDB8KG09KHc9KG09MHxmZVsoQT1jKzN8MCk+PjBdKTw8MjQ+PjI0PT0wKT8wfFh0W1IrKDI1NSZi''@;'; + put 'put ''KT4+MF06MHxmMChtLGIpKSl7Y2FzZSA1OmNhc2UgMjQ6Y2FzZSAyMjpjYXNlIDI5OmlmKDB8bCl7Yz1rLGw9QT1sLEQ9dz1ELE09Yj1NO2NvbnRpbnVlIGV9aWYoKDB8RCk+PSgwfGYpKXtsPTEsYz1rLEQ9dz1ELE09Yj1NO2NvbnRpbnVlIGV9YVtwKyhEPDw0KT4+Ml09ayxmZVtwKyhEPDw0''@;'; + put 'put ''KSsxMj4+MF09MSxsPTEsYz1rLEQ9dz1ELE09Yj1NO2NvbnRpbnVlIGU7Y2FzZSA2OmlmKDB8bCl7Yz1BLGw9dz1sLEQ9Yj1ELE09az1NO2NvbnRpbnVlIGV9aWYoKDB8RCk+PSgwfGYpKXtsPTEsYz1BLEQ9Yj1ELE09az1NO2NvbnRpbnVlIGV9YVtwKyhEPDw0KT4+Ml09ayxmZVtwKyhEPDw0''@;'; + put 'put ''KSsxMj4+MF09MSxsPTEsYz1BLEQ9Yj1ELE09az1NO2NvbnRpbnVlIGU7Y2FzZSA3Omx8fCgoMHxEKTwoMHxmKSYmKGFbcCsoRDw8NCk+PjJdPWssZmVbcCsoRDw8NCkrMTI+PjBdPTEpLGw9MSksYz1jKzR8MCxEPWI9RCxNPWs9TTtjb250aW51ZSBlO2Nhc2UgMTI6aWYoMiE9KDB8bCkpe2lm''@;'; + put 'put ''KCgwfEQpPj0oMHxmKSl7TT0xMixsPTIsYz1rLEQ9Yj1EO2NvbnRpbnVlIGV9YVtwKyhEPDw0KSs0Pj4yXT1jKzQsTT0xMixsPTIsYz1rLEQ9Yj1EO2NvbnRpbnVlIGV9aWYoMTIhPSgwfE0pKXtsPTIsYz1rLEQ9dz1ELE09Yj1NO2NvbnRpbnVlIGV9KDB8RCk8KDB8ZikmJihhW3ArKEQ8PDQp''@;'; + put 'put ''Kzg+PjJdPWspLE09MTIsRD1EKzF8MCxsPTAsYz1rO2NvbnRpbnVlIGU7Y2FzZSAxMzppZigyIT0oMHxsKSl7aWYoKDB8RCk+PSgwfGYpKXtNPTEzLGw9MixjPWssRD1iPUQ7Y29udGludWUgZX1hW3ArKEQ8PDQpKzQ+PjJdPWMrNCxNPTEzLGw9MixjPWssRD1iPUQ7Y29udGludWUgZX1pZigx''@;'; + put 'put ''MyE9KDB8TSkpe2w9MixjPWssRD13PUQsTT1iPU07Y29udGludWUgZX0oMHxEKTwoMHxmKSYmKGFbcCsoRDw8NCkrOD4+Ml09ayksTT0xMyxEPUQrMXwwLGw9MCxjPWs7Y29udGludWUgZTtjYXNlIDM6aWYoKDB8RCk+PSgwfGYpKXtjPWssbD1BPWwsRD13PUQsTT1iPU07Y29udGludWUgZX1m''@;'; + put 'put ''ZVtwKyhEPDw0KSsxMj4+MF09MCxjPWssbD1BPWwsRD13PUQsTT1iPU07Y29udGludWUgZTtjYXNlIDIxOnN3aXRjaCgwfGwpe2Nhc2UgMTpsPTAsYz1rLEQ9dz1ELE09Yj1NO2NvbnRpbnVlIGU7Y2FzZSAyOmJyZWFrO2RlZmF1bHQ6Yz1rLGw9QT1sLEQ9dz1ELE09Yj1NO2NvbnRpbnVlIGV9''@;'; + put 'put ''aWYoKDB8RCk+PSgwfGYpKXtsPTIsYz1rLEQ9dz1ELE09Yj1NO2NvbnRpbnVlIGV9aWYoISgwfGZlWyhBPXArKEQ8PDQpKzEyfDApPj4wXSkpe2w9MixjPWssRD13PUQsTT1iPU07Y29udGludWUgZX1kb3tpZih3JigwfGspIT0oMHxhW3ArKEQ8PDQpKzQ+PjJdKSZiPDwyND4+MjQ9PTMyKXtp''@;'; + put 'put ''ZihsPTB8ZmVbYys0Pj4wXSwobT0wfGZlW2MrNT4+MF0pPDwyND4+MjQpbD0wfGYwKG0sbCk7ZWxzZXtpZihsPDwyND4+MjQ9PTMyKWJyZWFrO2w9MHxYdFtSKygyNTUmbCk+PjBdfWlmKCgwfGwpIT0oMHxNKSl7bD0yLGM9ayxEPXc9RCxNPWI9TTtjb250aW51ZSBlfX19d2hpbGUoMCk7ZmVb''@;'; + put 'put ''QT4+MF09MCxsPTIsYz1rLEQ9dz1ELE09Yj1NO2NvbnRpbnVlIGU7Y2FzZSAxMDpjYXNlIDk6c3dpdGNoKDB8bCl7Y2FzZSAxOmw9MCxjPWssRD13PUQsTT1iPU07Y29udGludWUgZTtjYXNlIDI6YnJlYWs7ZGVmYXVsdDpjPWssbD1BPWwsRD13PUQsTT1iPU07Y29udGludWUgZX1pZigoMHxE''@;'; + put 'put ''KT49KDB8Zikpe2w9MixjPWssRD13PUQsTT1iPU07Y29udGludWUgZX1mZVtwKyhEPDw0KSsxMj4+MF09MCxsPTIsYz1rLEQ9dz1ELE09Yj1NO2NvbnRpbnVlIGU7Y2FzZSAxNzpjYXNlIDExOmlmKDI9PSgwfGwpKXtsPTIsYz1rLEQ9dz1ELE09Yj1NO2NvbnRpbnVlIGV9YnJlYWsgZTtkZWZh''@;'; + put 'put ''dWx0OmM9ayxsPUE9bCxEPXc9RCxNPWI9TTtjb250aW51ZSBlfXJldHVybiAwfER9LGZ1bmN0aW9uIGJwKGwsYyxmLHApe3B8PTA7dmFyIEEsdyxtPTAsYj0wO3c9KGZ8PTApLTJ8MCxBPTcyKyhsfD0wKXwwLGY9Y3w9MDtlOmZvcig7Oyl7aWYoKHctKG09ZisyfDApfDApPD0xKXtmPTE7YnJl''@;'; + put 'put ''YWt9c3dpdGNoKGM9MHxmZVttPj4wXSwwfChmPShsPShmPTB8ZmVbZiszPj4wXSk8PDI0Pj4yND09MCk/MHxYdFtBKygyNTUmYyk+PjBdOjB8ZjAoZixjKSkpe2Nhc2UgMjM6Y2FzZSAxOTpjYXNlIDMwOmNhc2UgMzM6Y2FzZSAxNjpjYXNlIDE4OmNhc2UgMTA6Y2FzZSA5OmNhc2UgMTU6Y2Fz''@;'; + put 'put ''ZSAxNDpjYXNlIDE3OmNhc2UgMzU6Y2FzZSAzNDpjYXNlIDMyOmNhc2UgMzE6Y2FzZSAxMzpjYXNlIDI3OmNhc2UgMjQ6Y2FzZSAyNTpmPW07Y29udGludWUgZTtjYXNlIDIxOmlmKGwmYzw8MjQ+PjI0PT05KXtiPTEyO2JyZWFrIGV9Zj1tO2NvbnRpbnVlIGU7Y2FzZSAyMjpjYXNlIDI2Omlm''@;'; + put 'put ''KCFsKXtiPTEyO2JyZWFrIGV9aWYoYzw8MjQ+PjI0Pj0wKXtmPW07Y29udGludWUgZX1icmVhaztkZWZhdWx0OmlmKCFsKXtiPTEyO2JyZWFrIGV9fXN3aXRjaChjPDwyND4+MjR8MCl7Y2FzZSA2NDpjYXNlIDM2OmY9bTticmVhaztkZWZhdWx0OmI9MTI7YnJlYWsgZX19cmV0dXJuIDEyPT0o''@;'; + put 'put ''MHxiKSYmKGFbcD4+Ml09bSxmPTApLDB8Zn0sZnVuY3Rpb24gSFAobCxjLGYscCl7bHw9MCxjfD0wLGw9MD09KDB8KGZ8PTApKTtkb3tpZihjKXtpZihsKXtGdChjKSxsPTA7YnJlYWt9bD0wfFVhKGMsZik7YnJlYWt9bD1sPzA6MHxCMChmKX13aGlsZSgwKTtyZXR1cm4gMHxsfSxoMCx0Vyxm''@;'; + put 'put ''dW5jdGlvbiBibGUobCxjLGYscCl7bHw9MCxwfD0wO3ZhciBtPTAsQT0wLHc9MCxiPTA7dz0wPT0oMHwocD0wfGFbKGZ8PTApPj4yXSkpLChsPTB8YVsoY3w9MCk+PjJdKT93P2w9MToobD0wfFppKGwscCkpfHwoYj01KTp3P2I9NTpsPS0xO2Rve2lmKDU9PSgwfGIpKXtpZih3PTA9PSgwfChw''@;'; + put 'put ''PTB8YVtmKzQ+PjJdKSksbD0wfGFbYys0Pj4yXSl7aWYodyl7bD0xO2JyZWFrfWlmKDB8KGw9MHxaaShsLHApKSlicmVha31lbHNlIGlmKCF3KXtsPS0xO2JyZWFrfShsPSgxMjcmYVtjKzI0Pj4yXSktKDEyNyZhW2YrMjQ+PjJdKXwwKXx8KGw9KEE9K19bYysxNj4+M10pPChtPStfW2YrMTY+''@;'; + put 'put ''PjNdKT8tMTpBPm0mMSl9fXdoaWxlKDApO3JldHVybiAwfGx9LGZ1bmN0aW9uIEFHKGwsYyxmLHApe2N8PTAsZnw9MCxwfD0wO3ZhciBtPTA7cmV0dXJuIG09MHxmdW5jdGlvbiB5XyhsKXt2YXIgYztyZXR1cm4gMHwobD0wfG1pWzYzJihmZVsyMzIrKGx8PTApPj4wXTw8MjQ+PjI0PzM4OjM3''@;'; + put 'put ''KV0obCsxNDh8MCxsKzE0NHwwLDB8YVsoYz1sKzIyOHwwKT4+Ml0pPzA6MHxIbShsLDB8YVtjPj4yXSkpfShsfD0wKSxtfHwoYVtsKzI3Nj4+Ml09NTcsbT0wfGxBKGwsYyxmLHApKSwwfG19LGxBLHdfLGZ1bmN0aW9uIFlCKGwsYyxmLHApe2x8PTAsZnw9MCxwfD0wO3ZhciBBLG09MDtyZXR1''@;'; + put 'put ''cm4gQT1sZSxsZT1sZSsxNnwwLGFbKG09QSk+PjJdPWN8PTAsMCE9KDB8KGM9MHxmQShsLDB8YVtsKzE0ND4+Ml0sbSxmLHAsMD09KDB8ZmVbbCs0ODA+PjBdKSYxKSkpfDA9PSgwfChtPTB8YVttPj4yXSkpfHwoYVtsKzI3Nj4+Ml09NTcsYz0wfGxBKGwsbSxmLHApKSxsZT1BLDB8Y30sZnVu''@;'; + put 'put ''Y3Rpb24gTV8obCxjLGYscCl7Y3w9MCxmfD0wLHB8PTA7dmFyIGssTSxHLEssbT0wLEE9MCx3PTAsYj0wLEQ9MCxSPTAscGU9MCxnZT0wO0s9bGUsbGU9bGUrMTZ8MCxHPUssTT0wfGFbKGs9Mjk2KyhsfD0wKXwwKT4+Ml07ZG97aWYoTSl7aWYobT0oYj0wfGFbKEE9NCsoRD0wfGFbTSsxMj4+''@;'; + put 'put ''Ml0pfDApPj4yXSkrKDB8YVsodz1EKzEyfDApPj4yXSl8MCxiPWIrKDB8YVtEKzg+PjJdKXwwLGFbRz4+Ml09bSwwfGZlWyhSPUQrMzN8MCk+PjBdPyhwZT0wfHEwWzEyNyZhWyhwZT0wfGFbKGdlPWwrMjI0fDApPj4yXSk+PjJdXShwZSxtLGIsRyksbT0wfHNBKGwsMHxhW2dlPj4yXSxtLGIs''@;'; + put 'put ''cGUsMHxhW0c+PjJdLEcsMCkpOm09MHxCbShsLDB8YVtNKzE2Pj4yXSwwfGFbbCsyMjQ+PjJdLG0sYixHLDApLCFtKXtpZigoMHxiKSE9KDB8KG09MHxhW0c+PjJdKSkmJjM9PSgwfGFbbCs0NzY+PjJdKSl7YVt3Pj4yXT1tLSgwfGFbQT4+Ml0pLG09MDticmVha31pZihmZVtEKzMyPj4wXT0w''@;'; + put 'put ''LGFbaz4+Ml09YVsoZ2U9TSs4fDApPj4yXSxhW2dlPj4yXT1hWyhtPWwrMzAwfDApPj4yXSxhW20+PjJdPU0sbT1sKzI3NnwwLDB8ZmVbUj4+MF0pe2FbbT4+Ml09NTcsbT0wfHEwWzEyNyZhWyhtPTB8YVsoZ2U9bCsxNDR8MCk+PjJdKT4+Ml1dKG0sYyxmLEcpLG09MHxzQShsLDB8YVtnZT4+''@;'; + put 'put ''Ml0sYyxmLG0sMHxhW0c+PjJdLHAsMD09KDB8ZmVbbCs0ODA+PjBdKSYxKTticmVha31hW20+PjJdPTU4LG09MHxCbShsLDAhPSgwfGFbbCs0NzI+PjJdKSYxLDB8YVtsKzE0ND4+Ml0sYyxmLHAsMD09KDB8ZmVbbCs0ODA+PjBdKSYxKTticmVha319ZWxzZSBtPTIzfXdoaWxlKDApO3JldHVy''@;'; + put 'put ''biBsZT1LLDB8bX0sZnVuY3Rpb24geUcobCxjLGYscCl7bHw9MCxmfD0wLHB8PTA7dmFyIEEsbT0wO0E9bGUsbGU9bGUrMTZ8MCxhWyhtPUEpPj4yXT1jfD0wLGM9MHxQbShsLDB8YVtsKzE0ND4+Ml0sbSxmLHAsMD09KDB8ZmVbbCs0ODA+PjBdKSYxKSxtPTB8YVttPj4yXTtkb3tpZighKDAh''@;'; + put 'put ''PSgwfGMpfDA9PSgwfG0pKSl7aWYoYz1sKzI3NnwwLDB8YVtsKzQ3Mj4+Ml0pe2FbYz4+Ml09NjMsYz0wfGh4KGwsbSxmLHApO2JyZWFrfWFbYz4+Ml09NTgsYz0wfHdfKGwsbSxmLHApO2JyZWFrfX13aGlsZSgwKTtyZXR1cm4gbGU9QSwwfGN9LGZ4LGh4LHRQLGZ1bmN0aW9uICRLKGwsYyxm''@;'; + put 'put ''LHApe3JldHVybiAwfChsPTB8dFAobHw9MCxjfD0wLGZ8PTAscHw9MCkpJiYoZmVbbCs3Mis1OD4+MF09MjMpLDB8bH0sZnVuY3Rpb24gYkcobCxjLGYscCl7cmV0dXJuIDB8YVsyODArKGx8PTApPj4yXX0sZnVuY3Rpb24gUjFlKGwsYyxmLHApe3JldHVybiAwfEFqKDU4OTQ4LGx8PTAsMCxj''@;'; + put 'put ''fD0wLGZ8PTAscHw9MCl9LGZ1bmN0aW9uIHZqKGwsYyxmLHApe3JldHVybiAwfEFqKDU4OTQ4LGx8PTAsMSxjfD0wLGZ8PTAscHw9MCl9LGZ1bmN0aW9uICQxZShsLGMsZixwKXtyZXR1cm4gMHxBaig2MDQ1NixsfD0wLDAsY3w9MCxmfD0wLHB8PTApfSxmdW5jdGlvbiBxMWUobCxjLGYscCl7''@;'; + put 'put ''cmV0dXJuIDB8QWooNjA0NTYsbHw9MCwxLGN8PTAsZnw9MCxwfD0wKX0scGEscGEscGEscGEscGEscGEscGEscGEscGEscGEscGEscGEscGEscGEscGEscGEscGEscGEscGEscGEscGEscGEscGEscGEscGEscGEscGEscGEscGEscGEscGEscGEscGEscGEscGEscGEscGEscGEscGEscGEscGEs''@;'; + put 'put ''cGEscGEscGEscGEscGEscGEscGEscGEscGEscGEscGEscGEscGEscGEscGEscGFdLFIyPVtKbyxmdW5jdGlvbiBoQyhsLGMsZixwLG0pe3JldHVybiBsfD0wLHB8PTAsbXw9MCwoZnw9MCk/KGw9bT8wfHIwKGwsZik6MHxacihsLGYpLGFbcD4+Ml09bCxhW3ArND4+Ml09MCk6KGY9MHxhWyht''@;'; + put 'put ''PTEzOTIpPj4yXSxtPTB8YVttKzQ+PjJdLGFbcD4+Ml09ZixhW3ArND4+Ml09bSxtPTB8emwoMHxmLDB8bSwyLDApLGFbKHA9MTM5Mik+PjJdPW0sYVtwKzQ+PjJdPURuKSwxfSxmdW5jdGlvbiBqMihsLGMsZixwLG0pe3JldHVybiAwLDB9LGZ1bmN0aW9uIG5KKGwsYyxmLHAsbSl7bHw9MCxj''@;'; + put 'put ''fD0wLGZ8PTAscHw9MCxtfD0wO3ZhciBHLEssYmUsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLHBlPTAsZ2U9MCxPZT0wO2JlPWxlLGxlPWxlKzgwfDAsSz1iZSs2NHwwLEc9YmUrMzJ8MCxnZT1iZTtlOmRve2lmKDB8ZmVbYysyOD4+MF0pe2ZvcihBPStfW2M+PjNdLGI9NDgrKGs9MHxh''@;'; + put 'put ''WzEyKygwfGFbKFI9bCsxNnwwKT4+Ml0pPj4yXSl8MCxrPWsrNTZ8MCxjPTA7Oyl7aWYoKDB8Yyk+PSgwfGFbYj4+Ml0pKWJyZWFrIGU7aWYoTT0wPT0oMSZhWzExNisoMHxhWzE2KygwfGNyKGwpKT4+Ml0pPj4yXXwwKSxEPTB8YVsoMHxhW2s+PjJdKSsoYzw8Mik+PjJdLEE+PSh3PSsoMHx+''@;'; + put 'put ''fitfWyhNP0QrMTZ8MDpEKzI0fDApPj4zXSkpJiZBPD0ocGU9KygwfH5+K19bKE0/RCszMnwwOkQrNDB8MCk+PjNdKSkpYnJlYWs7Yz1jKzF8MH0xJmFbMTE2KygwfGFbMTYrKDB8Y3IobCkpPj4yXSk+PjJdPyhsPTE2KygwfGFbUj4+Ml0pfDAsYVtHPj4yXT1hWyhEPTE2KygwfGFbKDB8YVtr''@;'; + put 'put ''Pj4yXSkrKGM8PDIpPj4yXSl8MCk+PjJdLGFbRys0Pj4yXT1hW0QrND4+Ml0sYVtHKzg+PjJdPWFbRCs4Pj4yXSxhW0crMTI+PjJdPWFbRCsxMj4+Ml0sYVtHKzE2Pj4yXT1hW0QrMTY+PjJdLGFbRysyMD4+Ml09YVtEKzIwPj4yXSxhW0crMjQ+PjJdPWFbRCsyND4+Ml0sYVtHKzI4Pj4yXT1h''@;'; + put 'put ''W0QrMjg+PjJdLGFbSz4+Ml09YVtsPj4yXSxhW0srND4+Ml09YVtsKzQ+PjJdLGFbSys4Pj4yXT1hW2wrOD4+Ml0sYVtLKzEyPj4yXT1hW2wrMTI+PjJdLEdvZShnZSxHLEspLGFbcD4+Ml09YVtnZT4+Ml0sYVtwKzQ+PjJdPWFbZ2UrND4+Ml0sYVtwKzg+PjJdPWFbZ2UrOD4+Ml0sYVtwKzEy''@;'; + put 'put ''Pj4yXT1hW2dlKzEyPj4yXSxhW3ArMTY+PjJdPWFbZ2UrMTY+PjJdLGFbcCsyMD4+Ml09YVtnZSsyMD4+Ml0sYVtwKzI0Pj4yXT1hW2dlKzI0Pj4yXSxhW3ArMjg+PjJdPWFbZ2UrMjg+PjJdLEE9K19bODArKGdlPTB8YVtSPj4yXSk+PjNdLHc9K19bZ2UrMjQ+PjNdKTooX1twPj4zXT0oT2U9''@;'; + put 'put ''K19bMTYrKGdlPTB8YVtSPj4yXSk+PjNdKSt3LF9bcCs4Pj4zXT0odz0rX1tnZSsyND4+M10pLS41KihBPStfW2dlKzgwPj4zXSksX1twKzE2Pj4zXT1PZStwZSksX1twKzI0Pj4zXT0uNSpBK3csYVttPj4yXT0xfWVsc2UgZj0wfXdoaWxlKDApO3JldHVybiBsZT1iZSwwfGZ9LGZ1bmN0aW9u''@;'; + put 'put ''IEtrKGwsYyxmLHAsbSl7bHw9MCxjfD0wLGZ8PTAscHw9MDt2YXIgQSx3PTAsYj0wO2ZvcihBPW18PTA7Oyl7aWYoKDB8KHc9MHxhW2M+PjJdKSk9PSgwfGYpKXtsPTA7YnJlYWt9aWYobD0wfGFbcD4+Ml0sMTI4JihiPTB8WHRbdz4+MF0pKXtpZigoQS1sfDApPDIpe2w9MjticmVha31hW3A+''@;'; + put 'put ''PjJdPWwrMSxmZVtsPj4wXT1iPj4+NnwxOTIsYVtwPj4yXT0xKyh3PTB8YVtwPj4yXSksZmVbdz4+MF09NjMmYnwxMjgsYVtjPj4yXT0xKygwfGFbYz4+Ml0pfWVsc2V7aWYoKDB8bCk9PSgwfG0pKXtsPTI7YnJlYWt9YVtjPj4yXT13KzEsdz0wfGZlW3c+PjBdLGFbcD4+Ml09MSsoYj0wfGFb''@;'; + put 'put ''cD4+Ml0pLGZlW2I+PjBdPXd9fXJldHVybiAwfGx9LGZ1bmN0aW9uIEJLKGwsYyxmLHAsbSl7bHw9MCxjfD0wLGZ8PTAscHw9MCxtfD0wO2Zvcih2YXIgQT0wLHc9MDsoQT0obD0wfGFbYz4+Ml0pPj4+MDxmPj4+MCkmKHc9MHxhW3A+PjJdKT4+PjA8bT4+PjA7KWFbYz4+Ml09bCsxLEE9MHxY''@;'; + put 'put ''dFtsPj4wXSxhW3A+PjJdPTIrKHc9MHxhW3A+PjJdKSxpdFt3Pj4xXT1BO3JldHVybiAwfCgoMHx3KSE9KDB8bSl8MV5BPzA6Mil9LGZ1bmN0aW9uIFY5ZShsLGMsZixwLG0pe2x8PTAsY3w9MCxwfD0wLG18PTA7dmFyIGIsQT0wLHc9MDtyZXR1cm4gYj1sZSxsZT1sZSsxNnwwLGFbKEE9Yik+''@;'; + put 'put ''PjJdPWZ8PTAsKGYtKHc9MHxhW2M+PjJdKXwwKT4oMHwobD1tLSgwfGFbcD4+Ml0pfDApKT8oYVtBPj4yXT1sPXcrbHwwLG09MSk6KG09MCxsPWYpLGZ1bmN0aW9uIGVQKGwsYyl7bHw9MDt2YXIgZj0wLHA9MCxtPTAsQT0wLHc9MDtmPTB8YVsoY3w9MCk+PjJdLHA9MDtlOmZvcig7IShmPj4+''@;'; + put 'put ''MDw9bD4+PjApOyl7bT0wfFh0WyhBPWYrLTF8MCk+PjBdO2Rve2lmKDI0MCE9KDI0OCZtfDApKXtpZigyMjQ9PSgyNDAmbXwwKSl7aWYoKHArMXwwKT4+PjA+Mil7dz04O2JyZWFrIGV9cD0wO2JyZWFrfWlmKDE5Mj09KDIyNCZtfDApKXtpZigocCsxfDApPj4+MD4xKXt3PTExO2JyZWFrIGV9''@;'; + put 'put ''cD0wO2JyZWFrfWlmKDEyOCZtKWJyZWFrO2JyZWFrIGV9aWYoKHArMXwwKT4+PjA+Myl7dz01O2JyZWFrIGV9cD0wfXdoaWxlKDApO2Y9QSxwPXArMXwwfTU9PSgwfHcpP2Y9ZiszfDA6OD09KDB8dyk/Zj1mKzJ8MDoxMT09KDB8dykmJihmPWYrMXwwKSxhW2M+PjJdPWZ9KHcsQSksZ28oMHxh''@;'; + put 'put ''W3A+PjJdLDB8KGY9MHxhW2M+PjJdKSwwfChBPSh3PTB8YVtBPj4yXSktZnwwKSksYVtjPj4yXT0oMHxhW2M+PjJdKStBLGFbcD4+Ml09KDB8YVtwPj4yXSkrQSxsZT1iLDB8KG0/Mjp3Pj4+MDxsPj4+MCYxKX0sZnVuY3Rpb24gdjFlKGwsYyxmLHAsbSl7dmFyIHcsYixrLEE9MCxNPTAsRD0w''@;'; + put 'put ''LFI9MDt3PTcyKyhsfD0wKXwwLGI9Znw9MCxrPW18PTAsTT0wfGFbKGN8PTApPj4yXSxEPTB8YVsocHw9MCk+PjJdO2U6Zm9yKDs7KXtpZighKEQ+Pj4wPG0+Pj4wJihsPU0+Pj4wPGY+Pj4wKSkpe1I9MTI7YnJlYWt9c3dpdGNoKDB8ZmVbdysoQT0yNTUmKGw9MHxmZVtNPj4wXSkpPj4wXSl7''@;'; + put 'put ''Y2FzZSA1OmlmKChiLU18MCk8Mil7bD0xO2JyZWFrIGV9aXRbRD4+MV09KDMxJmwpPDw2fDYzJmZlW00rMT4+MF0sTT1NKzJ8MCxEPUQrMnwwO2NvbnRpbnVlIGU7Y2FzZSA2OmlmKChiLU18MCk8Myl7bD0xO2JyZWFrIGV9aXRbRD4+MV09KDYzJmZlW00rMT4+MF0pPDw2fEE8PDEyfDYzJmZl''@;'; + put 'put ''W00rMj4+MF0sTT1NKzN8MCxEPUQrMnwwO2NvbnRpbnVlIGU7Y2FzZSA3OmlmKChrLUR8MCk8NCl7bD0yO2JyZWFrIGV9aWYoKGItTXwwKTw0KXtsPTE7YnJlYWsgZX1pdFtEPj4xXT0oQT0oKDYzJmZlW00rMT4+MF0pPDwxMnwoNyZsKTw8MTh8KDYzJmZlW00rMj4+MF0pPDw2fDYzJmZlW00r''@;'; + put 'put ''Mz4+MF0pLTY1NTM2fDApPj4+MTB8NTUyOTYsaXRbRCsyPj4xXT0xMDIzJkF8NTYzMjAsTT1NKzR8MCxEPUQrNHwwO2NvbnRpbnVlIGU7ZGVmYXVsdDppdFtEPj4xXT1sPDwyND4+MjQsTT1NKzF8MCxEPUQrMnwwO2NvbnRpbnVlIGV9fXJldHVybiAxMj09KDB8UikmJihsPWw/MjowKSxhW2M+''@;'; + put 'put ''PjJdPU0sYVtwPj4yXT1ELDB8bH0sZnVuY3Rpb24gVTFlKGwsYyxmLHAsbSl7bHw9MCxjfD0wLGZ8PTAscHw9MCxtfD0wO2Zvcih2YXIgQT0wLHc9MDsoQT0obD0wfGFbYz4+Ml0pPj4+MDxmPj4+MCkmKHc9MHxhW3A+PjJdKT4+PjA8bT4+PjA7KWFbYz4+Ml09bCsxLEE9MHxmZVtsPj4wXSxh''@;'; + put 'put ''W3A+PjJdPTErKHc9MHxhW3A+PjJdKSxmZVt3Pj4wXT1BO3JldHVybiAwfCgoMHx3KSE9KDB8bSl8MV5BPzA6Mil9LGZ1bmN0aW9uIGVBZShsLGMsZixwLG0pe2x8PTAscHw9MDt2YXIgYixrLE0sQT0wLHc9MCxEPTAsUj0wO2s9Yj0odz0wfGFbKGN8PTApPj4yXSkrKChmfD0wKS13Ji0yKXww''@;'; + put 'put ''LE09bXw9MDtlOmZvcig7Oyl7aWYodz4+PjA+PWI+Pj4wKXtsPTA7YnJlYWt9c3dpdGNoKEE9MHxmZVt3KzE+PjBdLGY9MjU1JihsPTB8ZmVbdz4+MF0pLGw8PDI0Pj4yNCl7Y2FzZSAwOmlmKEE8PDI0Pj4yND4tMSl7aWYoKDB8KGw9MHxhW3A+PjJdKSk9PSgwfG0pKXtsPTI7YnJlYWsgZX1h''@;'; + put 'put ''W3A+PjJdPWwrMSxmZVtsPj4wXT1BLGw9d31lbHNlIEQ9NzticmVhaztjYXNlIDc6Y2FzZSA2OmNhc2UgNTpjYXNlIDQ6Y2FzZSAzOmNhc2UgMjpjYXNlIDE6RD03O2JyZWFrO2Nhc2UtMzc6Y2FzZS0zODpjYXNlLTM5OmNhc2UtNDA6aWYoKE0tKGw9MHxhW3A+PjJdKXwwKTw0KXtsPTI7YnJl''@;'; + put 'put ''YWsgZX1pZigoay13fDApPDQpe2w9MTticmVhayBlfUE9MSsoZjw8MiYxMnwoUj0yNTUmQSk+Pj42KXwwLGFbcD4+Ml09bCsxLGZlW2w+PjBdPUE+Pj4yfDI0MCxhW3A+PjJdPTErKGw9MHxhW3A+PjJdKSxmZVtsPj4wXT1SPj4+MiYxNXxBPDw0JjQ4fDEyOCxmPTI1NSYoUjw8NCY0OHwoQT0w''@;'; + put 'put ''fFh0W3crMz4+MF0pPj4+NnxmZVsobD13KzJ8MCk+PjBdPDwyJjEyfDEyOCksYVtwPj4yXT0xKyh3PTB8YVtwPj4yXSksZmVbdz4+MF09ZixhW3A+PjJdPTErKHc9MHxhW3A+PjJdKSxmZVt3Pj4wXT02MyZBfDEyODticmVhaztkZWZhdWx0OmlmKChNLShsPTB8YVtwPj4yXSl8MCk8Myl7bD0y''@;'; + put 'put ''O2JyZWFrIGV9YVtwPj4yXT1sKzEsZmVbbD4+MF09Zj4+PjR8MjI0LFI9MjU1JkEsYVtwPj4yXT0xKyhsPTB8YVtwPj4yXSksZmVbbD4+MF09Uj4+PjZ8Zjw8MiY2MHwxMjgsYVtwPj4yXT0xKyhsPTB8YVtwPj4yXSksZmVbbD4+MF09NjMmUnwxMjgsbD13fWlmKDc9PSgwfEQpKXtpZihEPTAs''@;'; + put 'put ''KE0tKGw9MHxhW3A+PjJdKXwwKTwyKXtsPTI7YnJlYWt9Uj0yNTUmQSxhW3A+PjJdPWwrMSxmZVtsPj4wXT1SPj4+NnxmPDwyfDE5MixhW3A+PjJdPTErKGw9MHxhW3A+PjJdKSxmZVtsPj4wXT02MyZSfDEyOCxsPXd9dz1sKzJ8MH1yZXR1cm4gYVtjPj4yXT13LDB8bH0sZnVuY3Rpb24gX3Ao''@;'; + put 'put ''bCxjLGYscCxtKXtsfD0wO3ZhciBBPTAsdz0wLGI9MDtmb3IobD0oQT0wfGFbKGN8PTApPj4yXSkrKGI9KGZ8PTApLUEmLTIpfDAsKDB8Yik+KChtfD0wKS0oMHxhWyhwfD0wKT4+Ml0pfDApPyhiPTEmKGY9KC04JmZlWyh3PWwrLTJ8MCk+PjBdKTw8MjQ+PjI0PT0tNDApLGw9Zj93OmwpOmI9''@;'; + put 'put ''MCxmPUE7KEE9Zj4+PjA8bD4+PjApJih3PTB8YVtwPj4yXSk+Pj4wPG0+Pj4wOylBPTY1NTM1JigoMHxYdFtmPj4wXSk8PDh8MHxYdFtmKzE+PjBdKSxhW3A+PjJdPXcrMixpdFt3Pj4xXT1BLGFbYz4+Ml09dz0yKygwfGFbYz4+Ml0pfDAsZj13O3JldHVybiAwfCgoMHx3KSE9KDB8bSl8MV5B''@;'; + put 'put ''P2I6Mil9LGZ1bmN0aW9uIFMxZShsLGMsZixwLG0pe2x8PTAscHw9MDt2YXIgYixrLE0sQT0wLHc9MCxEPTAsUj0wO2s9Yj0odz0wfGFbKGN8PTApPj4yXSkrKChmfD0wKS13Ji0yKXwwLE09bXw9MDtlOmZvcig7Oyl7aWYodz4+PjA+PWI+Pj4wKXtsPTA7YnJlYWt9c3dpdGNoKEE9MHxmZVt3''@;'; + put 'put ''Pj4wXSxmPTI1NSYobD0wfGZlW3crMT4+MF0pLGw8PDI0Pj4yNCl7Y2FzZSAwOmlmKEE8PDI0Pj4yND4tMSl7aWYoKDB8KGw9MHxhW3A+PjJdKSk9PSgwfG0pKXtsPTI7YnJlYWsgZX1hW3A+PjJdPWwrMSxmZVtsPj4wXT1BLGw9d31lbHNlIEQ9NzticmVhaztjYXNlIDc6Y2FzZSA2OmNhc2Ug''@;'; + put 'put ''NTpjYXNlIDQ6Y2FzZSAzOmNhc2UgMjpjYXNlIDE6RD03O2JyZWFrO2Nhc2UtMzc6Y2FzZS0zODpjYXNlLTM5OmNhc2UtNDA6aWYoKE0tKGw9MHxhW3A+PjJdKXwwKTw0KXtsPTI7YnJlYWsgZX1pZigoay13fDApPDQpe2w9MTticmVhayBlfUE9MSsoZjw8MiYxMnwoUj0yNTUmQSk+Pj42KXww''@;'; + put 'put ''LGFbcD4+Ml09bCsxLGZlW2w+PjBdPUE+Pj4yfDI0MCxhW3A+PjJdPTErKGw9MHxhW3A+PjJdKSxmZVtsPj4wXT1SPj4+MiYxNXxBPDw0JjQ4fDEyOCxmPTI1NSYoUjw8NCY0OHwoQT0wfFh0WyhsPXcrMnwwKT4+MF0pPj4+NnxmZVt3KzM+PjBdPDwyJjEyfDEyOCksYVtwPj4yXT0xKyh3PTB8''@;'; + put 'put ''YVtwPj4yXSksZmVbdz4+MF09ZixhW3A+PjJdPTErKHc9MHxhW3A+PjJdKSxmZVt3Pj4wXT02MyZBfDEyODticmVhaztkZWZhdWx0OmlmKChNLShsPTB8YVtwPj4yXSl8MCk8Myl7bD0yO2JyZWFrIGV9YVtwPj4yXT1sKzEsZmVbbD4+MF09Zj4+PjR8MjI0LFI9MjU1JkEsYVtwPj4yXT0xKyhs''@;'; + put 'put ''PTB8YVtwPj4yXSksZmVbbD4+MF09Uj4+PjZ8Zjw8MiY2MHwxMjgsYVtwPj4yXT0xKyhsPTB8YVtwPj4yXSksZmVbbD4+MF09NjMmUnwxMjgsbD13fWlmKDc9PSgwfEQpKXtpZihEPTAsKE0tKGw9MHxhW3A+PjJdKXwwKTwyKXtsPTI7YnJlYWt9Uj0yNTUmQSxhW3A+PjJdPWwrMSxmZVtsPj4w''@;'; + put 'put ''XT1SPj4+NnxmPDwyfDE5MixhW3A+PjJdPTErKGw9MHxhW3A+PjJdKSxmZVtsPj4wXT02MyZSfDEyOCxsPXd9dz1sKzJ8MH1yZXR1cm4gYVtjPj4yXT13LDB8bH0sZnVuY3Rpb24gTTFlKGwsYyxmLHAsbSl7bHw9MDt2YXIgQT0wLHc9MCxiPTA7Zm9yKGw9KEE9MHxhWyhjfD0wKT4+Ml0pKyhi''@;'; + put 'put ''PShmfD0wKS1BJi0yKXwwLCgwfGIpPigobXw9MCktKDB8YVsocHw9MCk+PjJdKXwwKT8oYj0xJihmPSgtOCZmZVsxKyh3PWwrLTJ8MCk+PjBdKTw8MjQ+PjI0PT0tNDApLGw9Zj93OmwpOmI9MCxmPUE7KEE9Zj4+PjA8bD4+PjApJih3PTB8YVtwPj4yXSk+Pj4wPG0+Pj4wOylBPTY1NTM1Jigo''@;'; + put 'put ''MHxYdFtmKzE+PjBdKTw8OHwwfFh0W2Y+PjBdKSxhW3A+PjJdPXcrMixpdFt3Pj4xXT1BLGFbYz4+Ml09dz0yKygwfGFbYz4+Ml0pfDAsZj13O3JldHVybiAwfCgoMHx3KSE9KDB8bSl8MV5BP2I6Mil9LGZ1bmN0aW9uIGlQKGwsYyxmLHAsbSl7Y3w9MCxmfD0wLHB8PTAsbXw9MDt2YXIgYixr''@;'; + put 'put ''LE0sRCxSLEcsQT0wLHc9MCxLPTA7Zm9yKEc9bGUsbGU9bGUrMTZ8MCxrPUcsTT0zNjQrKGx8PTApfDAsRD1sKzg4NHwwLFI9bCszNjh8MCxiPWwrNzJ8MDs7KXtpZigoMHwoQT0wfGFbYz4+Ml0pKT09KDB8Zikpe209MDticmVha31pZih3PUQrKChLPTB8WHRbQT4+MF0pPDwyKSsxfDAsbD0o''@;'; + put 'put ''Sz0wfGZlW0QrKEs8PDIpPj4wXSk8PDI0Pj4yNCxLPDwyND4+MjQpe2lmKChtLSgwfGFbcD4+Ml0pfDApPCgwfGwpKXttPTI7YnJlYWt9QT1BKzF8MH1lbHNle2lmKCgwfChsPTB8VzQoMHxCaVsxMjcmYVtNPj4yXV0oMHxhW1I+PjJdLEEpLGspKSk+KG0tKDB8YVtwPj4yXSl8MCkpe209Mjti''@;'; + put 'put ''cmVha313PWssQT0oQT0wfGFbYz4+Ml0pKygoMHxYdFtiKygwfFh0W0E+PjBdKT4+MF0pLTMpfDB9YVtjPj4yXT1BLGdvKDB8YVtwPj4yXSwwfHcsMHxsKSxhW3A+PjJdPSgwfGFbcD4+Ml0pK2x9cmV0dXJuIGxlPUcsMHxtfSxmdW5jdGlvbiBMMyhsLGMsZixwLG0pe2N8PTAsZnw9MCxwfD0w''@;'; + put 'put ''LG18PTA7dmFyIGssTSxELFIsQT0wLHc9MCxiPTA7Zm9yKE09MzcyKyhsfD0wKXwwLEQ9bCszNjR8MCxSPWwrMzY4fDAsaz1sKzcyfDA7KGw9KGI9MHxhW2M+PjJdKT4+PjA8Zj4+PjApJihBPTB8YVtwPj4yXSk+Pj4wPG0+Pj4wOykobD0wfGl0W00rKCgwfFh0W2I+PjBdKTw8MSk+PjFdKTw8''@;'; + put 'put ''MTY+PjE2Pyh3PTEsQT1iKToobD02NTUzNSYoMHxCaVsxMjcmYVtEPj4yXV0oMHxhW1I+PjJdLGIpKSx3PSgwfFh0W2srKDB8WHRbKEE9MHxhW2M+PjJdKT4+MF0pPj4wXSktM3wwKSxhW2M+PjJdPUErdyxhW3A+PjJdPTIrKGI9MHxhW3A+PjJdKSxpdFtiPj4xXT1sO3JldHVybiAwfCgoMHxB''@;'; + put 'put ''KSE9KDB8bSl8MV5sPzA6Mil9LGZ1bmN0aW9uIG51ZShsLGMsZixwLG0pe2x8PTAsZnw9MCxwfD0wLG18PTA7dmFyIEE9MDtzd2l0Y2goMHwoY3w9MCkpe2Nhc2UgMTU6YVtsPj4yXT0xNixsPTA7YnJlYWs7Y2FzZSAxMjphW2w+PjJdPTE2LGw9MTticmVhaztjYXNlIDExOmFbbD4+Ml09MTYs''@;'; + put 'put ''bD01NTticmVhaztjYXNlIDEzOmFbbD4+Ml09MTYsbD01NjticmVhaztjYXNlIDE0Omw9MDticmVhaztjYXNlIDE2OjB8cTBbMTI3JmFbbSsyND4+Ml1dKG0sZisoYVttKzY0Pj4yXTw8MSl8MCxwLDE0NDM2OCk/KGFbbD4+Ml09MTcsbD0zKTpBPTk7YnJlYWs7Y2FzZSAyOTphW2w+PjJdPTE4''@;'; + put 'put ''LGw9MjticmVhaztkZWZhdWx0OkE9OX1yZXR1cm4gOT09KDB8QSkmJihsPTB8VmEobCxjKSksMHxsfSxmdW5jdGlvbiBydWUobCxjLGYscCxtKXtsfD0wLGZ8PTAscHw9MCxtfD0wO3ZhciBBPTA7c3dpdGNoKDB8KGN8PTApKXtjYXNlIDE0OmNhc2UgMTU6bD0wO2JyZWFrO2Nhc2UgMTE6bD01''@;'; + put 'put ''NTticmVhaztjYXNlIDEzOmw9NTY7YnJlYWs7Y2FzZSAxNjowfHEwWzEyNyZhW20rMjQ+PjJdXShtLGYrKGFbbSs2ND4+Ml08PDEpfDAscCwxNDQzNjgpPyhhW2w+PjJdPTE3LGw9Myk6QT03O2JyZWFrO2Nhc2UgMjk6YVtsPj4yXT0xOCxsPTI7YnJlYWs7ZGVmYXVsdDpBPTd9cmV0dXJuIDc9''@;'; + put 'put ''PSgwfEEpJiYobD0wfFZhKGwsYykpLDB8bH0sZnVuY3Rpb24gaXVlKGwsYyxmLHAsbSl7c3dpdGNoKGx8PTAsMHwoY3w9MCkpe2Nhc2UgMTU6bD0zO2JyZWFrO2Nhc2UgNDE6Y2FzZSAxODphW2w+PjJdPTE5LGw9NDticmVhaztkZWZhdWx0Omw9MHxWYShsLGMpfXJldHVybiAwfGx9LGZ1bmN0''@;'; + put 'put ''aW9uIG91ZShsLGMsZixwLG0pe3JldHVybiAwfSxmdW5jdGlvbiBhdWUobCxjLGYscCxtKXtsfD0wLGN8PTAsZnw9MCxwfD0wLG18PTA7dmFyIEE9MCx3PTA7ZTpkb3tzd2l0Y2goMHxjKXtjYXNlIDE1Omw9MzticmVhaztjYXNlIDI1OmFbbD4+Ml09MjAsbD03O2JyZWFrO2Nhc2UgMTc6YVts''@;'; + put 'put ''Pj4yXT0yMSxsPTg7YnJlYWs7Y2FzZSAxODppZigwfHEwWzEyNyZhWyhBPW0rMjR8MCk+PjJdXShtLGYscCwxNDQzNzYpKXthW2w+PjJdPTIyLGw9MzticmVhayBlfTB8cTBbMTI3JmFbQT4+Ml1dKG0sZixwLDE0NDM4Myk/KGFbbD4+Ml09MjMsbD0zKTp3PTg7YnJlYWs7ZGVmYXVsdDp3PTh9''@;'; + put 'put ''fXdoaWxlKDApO3JldHVybiA4PT0oMHx3KSYmKGw9MHxWYShsLGMpKSwwfGx9LGUkLGZ1bmN0aW9uIGx1ZShsLGMsZixwLG0pe3N3aXRjaChsfD0wLG18PTAsKG09KGN8PTApLTExfDApPj4+MXxtPDwzMXwwKXtjYXNlIDI6bD0wO2JyZWFrO2Nhc2UgMDpsPTU1O2JyZWFrO2Nhc2UgMTpsPTU2''@;'; + put 'put ''O2JyZWFrO2Nhc2UgOTphW2w+PjJdPTE4LGw9MjticmVhaztkZWZhdWx0Omw9MHxWYShsLGMpfXJldHVybiAwfGx9LGZ1bmN0aW9uIHN1ZShsLGMsZixwLG0pe3N3aXRjaChsfD0wLDB8KGN8PTApKXtjYXNlIDE1Omw9MzticmVhaztjYXNlIDI3OmFbbD4+Ml09MjksbD01O2JyZWFrO2RlZmF1''@;'; + put 'put ''bHQ6bD0wfFZhKGwsYyl9cmV0dXJuIDB8bH0sZnVuY3Rpb24gdXVlKGwsYyxmLHAsbSl7c3dpdGNoKGx8PTAsMHwoY3w9MCkpe2Nhc2UgMTU6bD0zO2JyZWFrO2Nhc2UgMjc6YVtsPj4yXT0yMixsPTY7YnJlYWs7ZGVmYXVsdDpsPTB8VmEobCxjKX1yZXR1cm4gMHxsfSxmdW5jdGlvbiBmdWUo''@;'; + put 'put ''bCxjLGYscCxtKXtzd2l0Y2gobHw9MCwwfChjfD0wKSl7Y2FzZSAxNTpsPTExO2JyZWFrO2Nhc2UgMjI6YVtsPj4yXT0zMCxsPTExO2JyZWFrO2Nhc2UgMTg6YVtsPj4yXT0zMSxsPTk7YnJlYWs7ZGVmYXVsdDpsPTB8VmEobCxjKX1yZXR1cm4gMHxsfSxmdW5jdGlvbiBodWUobCxjLGYscCxt''@;'; + put 'put ''KXtzd2l0Y2gobHw9MCwwfChjfD0wKSl7Y2FzZSAxNTpsPTMzO2JyZWFrO2Nhc2UgNDE6Y2FzZSAxODphW2w+PjJdPTMyLGw9MzQ7YnJlYWs7ZGVmYXVsdDpsPTB8VmEobCxjKX1yZXR1cm4gMHxsfSxmdW5jdGlvbiBkdWUobCxjLGYscCxtKXtzd2l0Y2gobHw9MCwwfChjfD0wKSl7Y2FzZSAx''@;'; + put 'put ''NTpsPTM5O2JyZWFrO2Nhc2UgNDE6Y2FzZSAxODphW2w+PjJdPTMzLGw9NDA7YnJlYWs7ZGVmYXVsdDpsPTB8VmEobCxjKX1yZXR1cm4gMHxsfSxmdW5jdGlvbiBwdWUobCxjLGYscCxtKXtzd2l0Y2gobHw9MCwwfChjfD0wKSl7Y2FzZSAxNTpsPTE3O2JyZWFrO2Nhc2UgMTg6YVtsPj4yXT0z''@;'; + put 'put ''NCxsPTE4O2JyZWFrO2RlZmF1bHQ6bD0wfFZhKGwsYyl9cmV0dXJuIDB8bH0sZnVuY3Rpb24gZ3VlKGwsYyxmLHAsbSl7c3dpdGNoKGx8PTAsMHwoY3w9MCkpe2Nhc2UgMTU6bD0zO2JyZWFrO2Nhc2UgMTc6YVtsPj4yXT0yMSxsPTg7YnJlYWs7ZGVmYXVsdDpsPTB8VmEobCxjKX1yZXR1cm4g''@;'; + put 'put ''MHxsfSxmdW5jdGlvbiBjdWUobCxjLGYscCxtKXtzd2l0Y2gobHw9MCwwfChjfD0wKSl7Y2FzZSAxNTpsPTM7YnJlYWs7Y2FzZSAyNTphW2w+PjJdPTIwLGw9NzticmVhaztjYXNlIDE3OmFbbD4+Ml09MjEsbD04O2JyZWFrO2RlZmF1bHQ6bD0wfFZhKGwsYyl9cmV0dXJuIDB8bH0sZnVuY3Rp''@;'; + put 'put ''b24gT3VlKGwsYyxmLHAsbSl7c3dpdGNoKGx8PTAsMHwoY3w9MCkpe2Nhc2UgMTU6bD0xMTticmVhaztjYXNlIDE4OmFbbD4+Ml09NTcsbD0xMDticmVhaztkZWZhdWx0Omw9MHxWYShsLGMpfXJldHVybiAwfGx9LGZ1bmN0aW9uIFJ1ZShsLGMsZixwLG0pe2x8PTAsY3w9MCxmfD0wLHB8PTAs''@;'; + put 'put ''bXw9MDt2YXIgQT0wLHc9MDtlOmRve3N3aXRjaCgwfGMpe2Nhc2UgMTU6bD0xMTticmVhaztjYXNlIDE4OmlmKDB8cTBbMTI3JmFbKEE9bSsyNHwwKT4+Ml1dKG0sZixwLDE0NDM3Nikpe2FbbD4+Ml09NTgsbD0xMTticmVhayBlfTB8cTBbMTI3JmFbQT4+Ml1dKG0sZixwLDE0NDM4Myk/KGFb''@;'; + put 'put ''bD4+Ml09NTksbD0xMSk6dz03O2JyZWFrO2Nhc2UgMjc6YVtsPj4yXT0zNyxhW2wrOD4+Ml09MTEsbD0xMjticmVhaztkZWZhdWx0Onc9N319d2hpbGUoMCk7cmV0dXJuIDc9PSgwfHcpJiYobD0wfFZhKGwsYykpLDB8bH0sZnVuY3Rpb24ga3VlKGwsYyxmLHAsbSl7c3dpdGNoKGx8PTAsMHwo''@;'; + put 'put ''Y3w9MCkpe2Nhc2UgMTU6bD0zMzticmVhaztjYXNlIDE3OmFbbD4+Ml09MHxhW2wrMTY+PjJdPzIwOjM5LGw9MzM7YnJlYWs7Y2FzZSA0MTpjYXNlIDE4OmFbbD4+Ml09NDksbD0yMjticmVhaztkZWZhdWx0Omw9MHxWYShsLGMpfXJldHVybiAwfGx9LGZ1bmN0aW9uIG9BZShsLGMsZixwLG0p''@;'; + put 'put ''e2x8PTAsY3w9MCxmfD0wLHB8PTAsbXw9MDt2YXIgQT0wLHc9MDtlOmRve3N3aXRjaCgwfGMpe2Nhc2UgMTU6bD0zOTticmVhaztjYXNlIDE4OmlmKDB8cTBbMTI3JmFbKEE9bSsyNHwwKT4+Ml1dKG0sZixwLDE0NDQzNykpe2FbbD4+Ml09MzcsYVtsKzg+PjJdPTM5LGw9NDI7YnJlYWsgZX0w''@;'; + put 'put ''fHEwWzEyNyZhW0E+PjJdXShtLGYscCwxNDQ0NDMpPyhhW2w+PjJdPTM3LGFbbCs4Pj4yXT0zOSxsPTQxKTp3PTc7YnJlYWs7Y2FzZSAyMzphW2w+PjJdPTQzLGFbbCs0Pj4yXT0xLGw9NDQ7YnJlYWs7ZGVmYXVsdDp3PTd9fXdoaWxlKDApO3JldHVybiA3PT0oMHx3KSYmKGw9MHxWYShsLGMp''@;'; + put 'put ''KSwwfGx9LGZ1bmN0aW9uIG11ZShsLGMsZixwLG0pe2x8PTAsY3w9MCxmfD0wLHB8PTAsbXw9MDt2YXIgQT0wLHc9MDtlOmRve3N3aXRjaCgwfGMpe2Nhc2UgMTU6bD0xNzticmVhaztjYXNlIDE4OmlmKDB8cTBbMTI3JmFbKEE9bSsyNHwwKT4+Ml1dKG0sZixwLDE0NDM3Nikpe2FbbD4+Ml09''@;'; + put 'put ''MzUsbD0xNzticmVhayBlfTB8cTBbMTI3JmFbQT4+Ml1dKG0sZixwLDE0NDM4Myk/KGFbbD4+Ml09MzYsbD0xNyk6dz02O2JyZWFrO2RlZmF1bHQ6dz02fX13aGlsZSgwKTtyZXR1cm4gNj09KDB8dykmJihsPTB8VmEobCxjKSksMHxsfSxmdW5jdGlvbiB2dWUobCxjLGYscCxtKXtzd2l0Y2go''@;'; + put 'put ''bHw9MCwwfChjfD0wKSl7Y2FzZSAxNTpsPTE3O2JyZWFrO2Nhc2UgMjc6YVtsPj4yXT0zNyxhW2wrOD4+Ml09MTcsbD0xOTticmVhaztkZWZhdWx0Omw9MHxWYShsLGMpfXJldHVybiAwfGx9LGZ1bmN0aW9uIEF1ZShsLGMsZixwLG0pe3N3aXRjaChsfD0wLDB8KGN8PTApKXtjYXNlIDE1Omw9''@;'; + put 'put ''MTc7YnJlYWs7Y2FzZSAyNzphW2w+PjJdPTM4LGw9MjE7YnJlYWs7ZGVmYXVsdDpsPTB8VmEobCxjKX1yZXR1cm4gMHxsfSxmdW5jdGlvbiB3dWUobCxjLGYscCxtKXtzd2l0Y2gobHw9MCwwfChjfD0wKSl7Y2FzZSAxNTpsPTB8YVtsKzg+PjJdO2JyZWFrO2Nhc2UgMTc6YVtsPj4yXT0wfGFb''@;'; + put 'put ''bCsxNj4+Ml0/MjA6MzksbD0wfGFbbCs4Pj4yXTticmVhaztkZWZhdWx0Omw9MHxWYShsLGMpfXJldHVybiAwfGx9LGZ1bmN0aW9uIHl1ZShsLGMsZixwLG0pe3N3aXRjaChsfD0wLDB8KGN8PTApKXtjYXNlIDE1Omw9MTc7YnJlYWs7Y2FzZSAyNzphW2w+PjJdPTM3LGFbbCs4Pj4yXT0xNyxs''@;'; + put 'put ''PTE5O2JyZWFrO2Nhc2UgMTc6YVtsPj4yXT0wfGFbbCsxNj4+Ml0/MjA6MzksbD0yMDticmVhaztkZWZhdWx0Omw9MHxWYShsLGMpfXJldHVybiAwfGx9LGZ1bmN0aW9uIGJ1ZShsLGMsZixwLG0pe2x8PTAsZnw9MCxwfD0wLG18PTA7dmFyIEE9MDtzd2l0Y2goMHwoY3w9MCkpe2Nhc2UgMzM6''@;'; + put 'put ''YVtsPj4yXT00MCxmPTA7YnJlYWs7Y2FzZSAzNDoocD0wfGFbKGY9bCsxMnwwKT4+Ml0pPyhhW2Y+PjJdPXArLTEsZj0wKTpBPTc7YnJlYWs7Y2FzZSAxNTpmPTA7YnJlYWs7Y2FzZSAyNjpBPTc7YnJlYWs7Y2FzZS00OjB8YVtsKzEyPj4yXT9BPTc6Zj0wO2JyZWFrO2RlZmF1bHQ6Zj0wfGUk''@;'; + put 'put ''KGwsYyxmLHAsbSl9cmV0dXJuIDc9PSgwfEEpJiYoZj0wfFZhKGwsYykpLDB8Zn0sZnVuY3Rpb24gX3VlKGwsYyxmLHAsbSl7bHw9MCxjfD0wLGZ8PTAscHw9MCxtfD0wO3ZhciBBPTAsdz0wO2U6ZG97c3dpdGNoKDB8Yyl7Y2FzZSAxNTpsPTA7YnJlYWs7Y2FzZSAxODppZigwfHEwWzEyNyZh''@;'; + put 'put ''WyhBPW0rMjR8MCk+PjJdXShtLGYscCwxNDQ0MjIpKXthW2w+PjJdPTQxLGw9MDticmVhayBlfTB8cTBbMTI3JmFbQT4+Ml1dKG0sZixwLDE0NDQzMCk/KGFbbD4+Ml09NDIsbD0wKTp3PTY7YnJlYWs7ZGVmYXVsdDp3PTZ9fXdoaWxlKDApO3JldHVybiA2PT0oMHx3KSYmKGw9MHxWYShsLGMp''@;'; + put 'put ''KSwwfGx9LGZ1bmN0aW9uIHJBZShsLGMsZixwLG0pe3N3aXRjaChsfD0wLDB8KGN8PTApKXtjYXNlIDE1Omw9MDticmVhaztjYXNlIDI1OmFbbD4+Ml09MzksYVsobD1sKzEyfDApPj4yXT0xKygwfGFbbD4+Ml0pLGw9MDticmVhaztkZWZhdWx0Omw9MHxWYShsLGMpfXJldHVybiAwfGx9LGZ1''@;'; + put 'put ''bmN0aW9uIGlBZShsLGMsZixwLG0pe3N3aXRjaChsfD0wLDB8KGN8PTApKXtjYXNlIDE1Omw9MDticmVhaztjYXNlIDI1OmFbbD4+Ml09MzksbD01ODticmVhaztkZWZhdWx0Omw9MHxWYShsLGMpfXJldHVybiAwfGx9LGZ1bmN0aW9uIGFBZShsLGMsZixwLG0pe2x8PTAsZnw9MCxwfD0wLG18''@;'; + put 'put ''PTA7dmFyIEE9MDtzd2l0Y2goMHwoY3w9MCkpe2Nhc2UgMTU6bD0zOTticmVhaztjYXNlIDIwOjB8cTBbMTI3JmFbbSsyND4+Ml1dKG0sZisoMHxhW20rNjQ+PjJdKXwwLHAsMTQ0NDQ3KT8oYVtsPj4yXT00NCxsPTQzKTpBPTk7YnJlYWs7Y2FzZSAyMzphW2wrND4+Ml09MixhW2w+PjJdPTQ1''@;'; + put 'put ''LGw9NDQ7YnJlYWs7Y2FzZSA0MTpjYXNlIDE4OmFbbD4+Ml09NDYsbD01MTticmVhaztjYXNlIDMwOmFbbD4+Ml09NDYsbD01MzticmVhaztjYXNlIDMxOmFbbD4+Ml09NDYsbD01MjticmVhaztjYXNlIDMyOmFbbD4+Ml09NDYsbD01NDticmVhaztkZWZhdWx0OkE9OX1yZXR1cm4gOT09KDB8''@;'; + put 'put ''QSkmJihsPTB8VmEobCxjKSksMHxsfSxmdW5jdGlvbiBsQWUobCxjLGYscCxtKXtzd2l0Y2gobHw9MCwwfChjfD0wKSl7Y2FzZSAxNTpsPTM5O2JyZWFrO2Nhc2UgMjQ6YVtsPj4yXT0zNyxhW2wrOD4+Ml09MzksbD00NTticmVhaztjYXNlIDM2OmFbbD4+Ml09MzcsYVtsKzg+PjJdPTM5LGw9''@;'; + put 'put ''NDY7YnJlYWs7Y2FzZSAyMTphW2w+PjJdPTQ3LGw9Mzk7YnJlYWs7ZGVmYXVsdDpsPTB8VmEobCxjKX1yZXR1cm4gMHxsfSxmdW5jdGlvbiBzQWUobCxjLGYscCxtKXtzd2l0Y2gobHw9MCwwfChjfD0wKSl7Y2FzZSAxNTpsPTM5O2JyZWFrO2Nhc2UgMjM6YVsobD1sKzR8MCk+PjJdPTErKDB8''@;'; + put 'put ''YVtsPj4yXSksbD00NDticmVhaztjYXNlIDQxOmNhc2UgMTg6YVtsPj4yXT00NixsPTUxO2JyZWFrO2Nhc2UgMzA6YVtsPj4yXT00NixsPTUzO2JyZWFrO2Nhc2UgMzE6YVtsPj4yXT00NixsPTUyO2JyZWFrO2Nhc2UgMzI6YVtsPj4yXT00NixsPTU0O2JyZWFrO2RlZmF1bHQ6bD0wfFZhKGws''@;'; + put 'put ''Yyl9cmV0dXJuIDB8bH0sZnVuY3Rpb24gdUFlKGwsYyxmLHAsbSl7c3dpdGNoKGx8PTAscHw9MCxtfD0wLDB8KGN8PTApKXtjYXNlIDE1Omw9Mzk7YnJlYWs7Y2FzZSAyNDphWyhwPWwrNHwwKT4+Ml09bT0oMHxhW3A+PjJdKS0xfDAsbXx8KGFbbD4+Ml09MzcsYVtsKzg+PjJdPTM5KSxsPTQ1''@;'; + put 'put ''O2JyZWFrO2Nhc2UgMzY6YVsocD1sKzR8MCk+PjJdPW09KDB8YVtwPj4yXSktMXwwLG18fChhW2w+PjJdPTM3LGFbbCs4Pj4yXT0zOSksbD00NjticmVhaztjYXNlIDM1OmFbKHA9bCs0fDApPj4yXT1tPSgwfGFbcD4+Ml0pLTF8MCxtfHwoYVtsPj4yXT0zNyxhW2wrOD4+Ml09MzkpLGw9NDc7''@;'; + put 'put ''YnJlYWs7Y2FzZSAzNzphWyhwPWwrNHwwKT4+Ml09bT0oMHxhW3A+PjJdKS0xfDAsbXx8KGFbbD4+Ml09MzcsYVtsKzg+PjJdPTM5KSxsPTQ4O2JyZWFrO2Nhc2UgMzg6YVtsPj4yXT00NSxsPTUwO2JyZWFrO2Nhc2UgMjE6YVtsPj4yXT00NSxsPTQ5O2JyZWFrO2RlZmF1bHQ6bD0wfFZhKGws''@;'; + put 'put ''Yyl9cmV0dXJuIDB8bH0sZnVuY3Rpb24gY0FlKGwsYyxmLHAsbSl7c3dpdGNoKGx8PTAsMHwoY3w9MCkpe2Nhc2UgMTU6bD0zOTticmVhaztjYXNlIDQxOmNhc2UgMTg6YVtsPj4yXT00OCxsPTUxO2JyZWFrO2RlZmF1bHQ6bD0wfFZhKGwsYyl9cmV0dXJuIDB8bH0sZnVuY3Rpb24gQ3VlKGws''@;'; + put 'put ''YyxmLHAsbSl7c3dpdGNoKGx8PTAsMHwoY3w9MCkpe2Nhc2UgMTU6bD0zOTticmVhaztjYXNlIDM2OmFbbD4+Ml09MzcsYVtsKzg+PjJdPTM5LGw9NDY7YnJlYWs7Y2FzZSAyMTphW2w+PjJdPTQ3LGw9Mzk7YnJlYWs7ZGVmYXVsdDpsPTB8VmEobCxjKX1yZXR1cm4gMHxsfSxmdW5jdGlvbiBT''@;'; + put 'put ''dWUobCxjLGYscCxtKXtsfD0wLGN8PTAsZnw9MCxwfD0wLG18PTA7dmFyIEE9MCx3PTAsYj0wLGs9MDtlOmRve3N3aXRjaCgwfGMpe2Nhc2UgMTU6QT0zMzticmVhaztjYXNlIDE4OmZvcih3PW0rMjR8MCxBPTA7Yj0wfGFbdz4+Ml0sISgoMHxBKT49OCk7KXtpZigwfHEwWzEyNyZiXShtLGYs''@;'; + put 'put ''cCwwfGFbNjIzMDQrKEE8PDIpPj4yXSkpe2s9NjticmVha31BPUErMXwwfWlmKDY9PSgwfGspKXthW2w+PjJdPTUwLEE9QSsyM3wwO2JyZWFrIGV9MHxxMFsxMjcmYl0obSxmLHAsMTQ0NDEzKT8oYVtsPj4yXT01MSxBPTMzKTprPTEwO2JyZWFrO2Nhc2UgMjM6YVtsPj4yXT01MixBPTMzO2Jy''@;'; + put 'put ''ZWFrO2RlZmF1bHQ6az0xMH19d2hpbGUoMCk7cmV0dXJuIDEwPT0oMHxrKSYmKEE9MHxWYShsLGMpKSwwfEF9LGZ1bmN0aW9uIE11ZShsLGMsZixwLG0pe2x8PTAsY3w9MCxmfD0wLHB8PTAsbXw9MDt2YXIgQT0wLHc9MCxiPTA7ZTpkb3tzd2l0Y2goMHxjKXtjYXNlIDE1Omw9MzM7YnJlYWs7''@;'; + put 'put ''Y2FzZSAyMDppZigwfHEwWzEyNyZhWyhBPW0rMjR8MCk+PjJdXShtLGYrKDB8YVsodz1tKzY0fDApPj4yXSl8MCxwLDE0NDQ1NCkpe2FbbD4+Ml09MzIsbD0zNTticmVhayBlfWlmKDB8cTBbMTI3JmFbQT4+Ml1dKG0sZisoMHxhW3c+PjJdKXwwLHAsMTQ0NDYyKSl7YVtsPj4yXT0zMixsPTM2''@;'; + put 'put ''O2JyZWFrIGV9MHxxMFsxMjcmYVtBPj4yXV0obSxmKygwfGFbdz4+Ml0pfDAscCwxNDQ0NzEpPyhhW2w+PjJdPTUzLGw9MzMpOmI9OTticmVhaztjYXNlIDI3OmFbbD4+Ml09MzIsbD0zNzticmVhaztkZWZhdWx0OmI9OX19d2hpbGUoMCk7cmV0dXJuIDk9PSgwfGIpJiYobD0wfFZhKGwsYykp''@;'; + put 'put ''LDB8bH0sZnVuY3Rpb24gRXVlKGwsYyxmLHAsbSl7c3dpdGNoKGx8PTAsMHwoY3w9MCkpe2Nhc2UgMTU6bD0zMzticmVhaztjYXNlIDIzOmFbbD4+Ml09NTQsbD0zMzticmVhaztkZWZhdWx0Omw9MHxWYShsLGMpfXJldHVybiAwfGx9LGZ1bmN0aW9uIHh1ZShsLGMsZixwLG0pe3N3aXRjaChs''@;'; + put 'put ''fD0wLDB8KGN8PTApKXtjYXNlIDE1Omw9MzM7YnJlYWs7Y2FzZSA0MTpjYXNlIDE4OmNhc2UgMTk6YVtsPj4yXT01NSxsPTMxO2JyZWFrO2RlZmF1bHQ6bD0wfFZhKGwsYyl9cmV0dXJuIDB8bH0sZnVuY3Rpb24gTHVlKGwsYyxmLHAsbSl7c3dpdGNoKGx8PTAsMHwoY3w9MCkpe2Nhc2UgMTU6''@;'; + put 'put ''bD0zMzticmVhaztjYXNlIDI3OmFbbD4+Ml09MzIsbD0zODticmVhaztkZWZhdWx0Omw9MHxWYShsLGMpfXJldHVybiAwfGx9LGZ1bmN0aW9uIEl1ZShsLGMsZixwLG0pe3N3aXRjaChsfD0wLDB8KGN8PTApKXtjYXNlIDE1Omw9MzM7YnJlYWs7Y2FzZSAxODphW2w+PjJdPTU2LGw9MzI7YnJl''@;'; + put 'put ''YWs7ZGVmYXVsdDpsPTB8VmEobCxjKX1yZXR1cm4gMHxsfSxmdW5jdGlvbiBUdWUobCxjLGYscCxtKXtzd2l0Y2gobHw9MCwwfChjfD0wKSl7Y2FzZSAxNTpsPTMzO2JyZWFrO2Nhc2UgMjQ6YVtsPj4yXT01MCxsPTMzO2JyZWFrO2Nhc2UgMjE6YVtsPj4yXT01MixsPTMzO2JyZWFrO2RlZmF1''@;'; + put 'put ''bHQ6bD0wfFZhKGwsYyl9cmV0dXJuIDB8bH0sZnVuY3Rpb24gRHVlKGwsYyxmLHAsbSl7c3dpdGNoKGx8PTAsMHwoY3w9MCkpe2Nhc2UgMTU6bD0zMzticmVhaztjYXNlIDI0OmFbbD4+Ml09NTAsbD0zMzticmVhaztjYXNlIDIxOmFbbD4+Ml09NTQsbD0zMzticmVhaztkZWZhdWx0Omw9MHxW''@;'; + put 'put ''YShsLGMpfXJldHVybiAwfGx9LGZ1bmN0aW9uIHBBZShsLGMsZixwLG0pe2x8PTAsY3w9MCxmfD0wLHB8PTAsbXw9MDt2YXIgQT0wLHc9MDtlOmRve3N3aXRjaCgwfGMpe2Nhc2UgMTU6bD0xMTticmVhaztjYXNlIDE4OmlmKDB8cTBbMTI3JmFbKEE9bSsyNHwwKT4+Ml1dKG0sZixwLDE0NDM3''@;'; + put 'put ''Nikpe2FbbD4+Ml09NjIsbD0xMTticmVhayBlfTB8cTBbMTI3JmFbQT4+Ml1dKG0sZixwLDE0NDM4Myk/KGFbbD4+Ml09NjMsbD0xMSk6dz03O2JyZWFrO2Nhc2UgMjc6YVtsPj4yXT0zNyxhW2wrOD4+Ml09MTEsbD0xMjticmVhaztkZWZhdWx0Onc9N319d2hpbGUoMCk7cmV0dXJuIDc9PSgw''@;'; + put 'put ''fHcpJiYobD0wfFZhKGwsYykpLDB8bH0sZnVuY3Rpb24gQnVlKGwsYyxmLHAsbSl7c3dpdGNoKGx8PTAsMHwoY3w9MCkpe2Nhc2UgMTU6bD0xMTticmVhaztjYXNlIDI3OmFbbD4+Ml09NjAsbD0xMzticmVhaztkZWZhdWx0Omw9MHxWYShsLGMpfXJldHVybiAwfGx9LGZ1bmN0aW9uIGZBZShs''@;'; + put 'put ''LGMsZixwLG0pe3N3aXRjaChsfD0wLDB8KGN8PTApKXtjYXNlIDE1Omw9MTE7YnJlYWs7Y2FzZSAyNzphW2w+PjJdPTU4LGw9MTQ7YnJlYWs7ZGVmYXVsdDpsPTB8VmEobCxjKX1yZXR1cm4gMHxsfSxmdW5jdGlvbiBoQWUobCxjLGYscCxtKXtsfD0wLGZ8PTAscHw9MCxtfD0wO3ZhciBBPTA7''@;'; + put 'put ''c3dpdGNoKDB8KGN8PTApKXtjYXNlIDE1Omw9MTE7YnJlYWs7Y2FzZSAxNzphW2w+PjJdPTB8YVtsKzE2Pj4yXT8yMDozOSxsPTE1O2JyZWFrO2Nhc2UgMTg6MHxxMFsxMjcmYVttKzI0Pj4yXV0obSxmLHAsMTQ0NTI1KT8oYVtsPj4yXT02MSxsPTExKTpBPTU7YnJlYWs7ZGVmYXVsdDpBPTV9''@;'; + put 'put ''cmV0dXJuIDU9PSgwfEEpJiYobD0wfFZhKGwsYykpLDB8bH0sZnVuY3Rpb24gZEFlKGwsYyxmLHAsbSl7c3dpdGNoKGx8PTAsMHwoY3w9MCkpe2Nhc2UgMTU6bD0xMTticmVhaztjYXNlIDE4OmFbbD4+Ml09MzcsYVtsKzg+PjJdPTExLGw9MTY7YnJlYWs7ZGVmYXVsdDpsPTB8VmEobCxjKX1y''@;'; + put 'put ''ZXR1cm4gMHxsfSxmdW5jdGlvbiBnQWUobCxjLGYscCxtKXtzd2l0Y2gobHw9MCwwfChjfD0wKSl7Y2FzZSAxNTpsPTExO2JyZWFrO2Nhc2UgMjc6YVtsPj4yXT02NCxsPTEzO2JyZWFrO2RlZmF1bHQ6bD0wfFZhKGwsYyl9cmV0dXJuIDB8bH0sZnVuY3Rpb24gbUFlKGwsYyxmLHAsbSl7c3dp''@;'; + put 'put ''dGNoKGx8PTAsMHwoY3w9MCkpe2Nhc2UgMTU6bD0xMTticmVhaztjYXNlIDI3OmFbbD4+Ml09NjIsbD0xNDticmVhaztkZWZhdWx0Omw9MHxWYShsLGMpfXJldHVybiAwfGx9LGZ1bmN0aW9uIHZBZShsLGMsZixwLG0pe3N3aXRjaChsfD0wLDB8KGN8PTApKXtjYXNlIDE1Omw9MTE7YnJlYWs7''@;'; + put 'put ''Y2FzZSAxNzphW2w+PjJdPTB8YVtsKzE2Pj4yXT8yMDozOSxsPTE1O2JyZWFrO2RlZmF1bHQ6bD0wfFZhKGwsYyl9cmV0dXJuIDB8bH0sSm8sSm8sSm8sSm8sSm8sSm8sSm8sSm8sSm8sSm8sSm8sSm8sSm8sSm8sSm8sSm8sSm8sSm8sSm8sSm8sSm8sSm8sSm8sSm8sSm8sSm8sSm8sSm8sSm8s''@;'; + put 'put ''Sm8sSm8sSm8sSm8sSm8sSm8sSm8sSm8sSm8sSm8sSm8sSm8sSm8sSm8sSm8sSm8sSm8sSm8sSm8sSm8sSm8sSm8sSm8sSm8sSm8sSm8sSm8sSm8sSm8sSm8sSm8sSm8sSm8sSm9dLG8zPVtmdW5jdGlvbiBfZmUobCxjLGYscCxtLEEpe3JldHVybiB3MigxMCksMH0sZnVuY3Rpb24gbDUobCxj''@;'; + put 'put ''LGYscCxtLEEpe2x8PTAsY3w9MCxmfD0wLHB8PTAsbXw9MCxBfD0wO3ZhciBSZSxIZSxWZSxxZSxudCxXZSxvdCxTdCxrdCxFdCxadCxjdCxidCxhbixTbixIbixIcixFcixEcix3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAsSz0wLHBlPTAsZ2U9MCxiZT0wLE9lPTAsTGU9MCxzdD0wLHVy''@;'; + put 'put ''PTAsZnI9MCxKcj0wLExyPTAsbDA9MCxWaT0wLE9pPTA7RHI9bGUsbGU9bGUrMzM2fDAsYnQ9RHIrMzIwfDAsY3Q9RHIrMzA0fDAsUmU9RHIrMTQ0fDAsSz1EcisxMjh8MCxFdD1EcisxMTJ8MCxadD1Ecis5NnwwLGZyPURyKzgwfDAsbnQ9RHIrNjR8MCxvdD1Ecis0OHwwLGFuPURyKzMyfDAs''@;'; + put 'put ''U249RHIrMTZ8MCxIbj1EcixIZT1EcisyODh8MCxWZT1EcisyNzJ8MCxxZT1EcisyNTZ8MCxXZT1EcisyNDB8MCxTdD1EcisyMjR8MCxrdD1EcisyMDh8MCx1cj1EcisxOTJ8MCxIcj1EcisxNzZ8MCxFcj1EcisxNjB8MCx3PTB8YVs0NzQ2Ml07ZG97aWYoKDB8YVs0NzQ2MV0pPCgwfHApKXtp''@;'; + put 'put ''Zih3KXtpZih3PTB8VWEodyw0MCpwfDApLGFbNDc0NjJdPXcsIXcpe3c9LTE7YnJlYWt9fWVsc2UgaWYodz0wfEIwKDQwKnB8MCksYVs0NzQ2Ml09dywhdyl7dz0tMTticmVha31hWzQ3NDYxXT1wLGs9Nn1lbHNlIGs9Nn13aGlsZSgwKTtpZig2PT0oMHxrKSl7Zm9yKF9bdz4+M109MCxrPTEs''@;'; + put 'put ''Yj0wOyEoKDB8ayk+PSgwfHApKTspc3Q9ZisoaystMTw8NCl8MCxhW2N0Pj4yXT1hWyhEPWYrKGs8PDQpfDApPj4yXSxhW2N0KzQ+PjJdPWFbRCs0Pj4yXSxhW2N0Kzg+PjJdPWFbRCs4Pj4yXSxhW2N0KzEyPj4yXT1hW0QrMTI+PjJdLGFbYnQ+PjJdPWFbc3Q+PjJdLGFbYnQrND4+Ml09YVtz''@;'; + put 'put ''dCs0Pj4yXSxhW2J0Kzg+PjJdPWFbc3QrOD4+Ml0sYVtidCsxMj4+Ml09YVtzdCsxMj4+Ml0sTGU9K29fKGN0LGJ0KStiLF9bdysoNDAqa3wwKT4+M109TGUsaz1rKzF8MCxiPUxlO2ZvcihEPXcrKDQwKihzdD1wKy0xfDApfDApfDAsaz0xOyEoKDB8ayk+PSgwfHApKTspX1soSnI9dysoNDAq''@;'; + put 'put ''a3wwKXwwKT4+M109K19bSnI+PjNdLytfW0Q+PjNdLGs9aysxfDA7Zm9yKGs9MDshKCgwfGspPj0oMHxwKSk7KUpyPXcrKDQwKmt8MCkrOHwwLExlPStFbSgrX1soRD13Kyg0MCprfDApfDApPj4zXSksYVtidD4+Ml09YVttPj4yXSxhW2J0KzQ+PjJdPWFbbSs0Pj4yXSxhW2J0Kzg+PjJdPWFb''@;'; + put 'put ''bSs4Pj4yXSxhW2J0KzEyPj4yXT1hW20rMTI+PjJdLF9mKEhlLGJ0LExlKSxhW0pyPj4yXT1hW0hlPj4yXSxhW0pyKzQ+PjJdPWFbSGUrND4+Ml0sYVtKcis4Pj4yXT1hW0hlKzg+PjJdLGFbSnIrMTI+PjJdPWFbSGUrMTI+PjJdLEpyPXcrKDQwKmt8MCkrMjR8MCxMZT0rT2QoK19bRD4+M10p''@;'; + put 'put ''LGFbYnQ+PjJdPWFbQT4+Ml0sYVtidCs0Pj4yXT1hW0ErND4+Ml0sYVtidCs4Pj4yXT1hW0ErOD4+Ml0sYVtidCsxMj4+Ml09YVtBKzEyPj4yXSxfZihWZSxidCxMZSksYVtKcj4+Ml09YVtWZT4+Ml0sYVtKcis0Pj4yXT1hW1ZlKzQ+PjJdLGFbSnIrOD4+Ml09YVtWZSs4Pj4yXSxhW0pyKzEy''@;'; + put 'put ''Pj4yXT1hW1ZlKzEyPj4yXSxrPWsrMXwwO2lmKGFbY3Q+PjJdPWFbbT4+Ml0sYVtjdCs0Pj4yXT1hW20rND4+Ml0sYVtjdCs4Pj4yXT1hW20rOD4+Ml0sYVtjdCsxMj4+Ml09YVttKzEyPj4yXSxhW2J0Pj4yXT1hW0E+PjJdLGFbYnQrND4+Ml09YVtBKzQ+PjJdLGFbYnQrOD4+Ml09YVtBKzg+''@;'; + put 'put ''PjJdLGFbYnQrMTI+PjJdPWFbQSsxMj4+Ml0sZnVuY3Rpb24gajQobCxjLGYscCxtLEEsdyxiLGspe2Z8PTAscHw9MCxtfD0wLEF8PTAsd3w9MCxifD0wLGt8PTA7dmFyIHBlLGdlLGJlLE9lLExlLFdlLG90LFN0LGt0LEV0LE09MCxEPTAsUj0wLEc9MCxLPTAsUmU9MCxIZT0wLFZlPTAscWU9''@;'; + put 'put ''MCxudD0wLHN0PTAsWnQ9MCxjdD0wLGJ0PTAsYW49MCxTbj0wLEhuPTA7Zm9yKEV0PWxlLGxlPWxlKzEyOHwwLFdlPUV0KzExMnwwLExlPUV0KzgwfDAsT2U9RXQscGU9RXQrOTZ8MCxnZT1FdCs2NHwwLGJlPUV0KzQ4fDAsb3Q9RXQrMzJ8MCxTdD1FdCsxNnwwLGt0PShsfD0wKSsoKGN8PTAp''@;'; + put 'put ''LTE8PDQpfDAsSz0wLFJlPTAsSGU9MCxWZT0wLHFlPTAsbnQ9MDshKCgwfEspPj0oMHxjKSk7KWFbTGU+PjJdPWFbKGFuPWYrKDQwKkt8MCkrOHwwKT4+Ml0sYVtMZSs0Pj4yXT1hW2FuKzQ+PjJdLGFbTGUrOD4+Ml09YVthbis4Pj4yXSxhW0xlKzEyPj4yXT1hW2FuKzEyPj4yXSxhW1dlPj4y''@;'; + put 'put ''XT1hW2FuPj4yXSxhW1dlKzQ+PjJdPWFbYW4rND4+Ml0sYVtXZSs4Pj4yXT1hW2FuKzg+PjJdLGFbV2UrMTI+PjJdPWFbYW4rMTI+PjJdLFp0PStzNShMZSxXZSkrSGUsYnQ9ZisoNDAqS3wwKSsyNHwwLGFbTGU+PjJdPWFbYW4+PjJdLGFbTGUrND4+Ml09YVthbis0Pj4yXSxhW0xlKzg+PjJd''@;'; + put 'put ''PWFbYW4rOD4+Ml0sYVtMZSsxMj4+Ml09YVthbisxMj4+Ml0sYVtXZT4+Ml09YVtidD4+Ml0sYVtXZSs0Pj4yXT1hW2J0KzQ+PjJdLGFbV2UrOD4+Ml09YVtidCs4Pj4yXSxhW1dlKzEyPj4yXT1hW2J0KzEyPj4yXSxHPStzNShMZSxXZSkrbnQsYVtMZT4+Ml09YVtidD4+Ml0sYVtMZSs0Pj4y''@;'; + put 'put ''XT1hW2J0KzQ+PjJdLGFbTGUrOD4+Ml09YVtidCs4Pj4yXSxhW0xlKzEyPj4yXT1hW2J0KzEyPj4yXSxhW1dlPj4yXT1hW2J0Pj4yXSxhW1dlKzQ+PjJdPWFbYnQrND4+Ml0sYVtXZSs4Pj4yXT1hW2J0Kzg+PjJdLGFbV2UrMTI+PjJdPWFbYnQrMTI+PjJdLFI9K3M1KExlLFdlKStWZSxTbj1s''@;'; + put 'put ''KyhLPDw0KXwwLGN0PSt0eCgrX1soSG49ZisoNDAqS3wwKXwwKT4+M10pLGFbV2U+PjJdPWFbbD4+Ml0sYVtXZSs0Pj4yXT1hW2wrND4+Ml0sYVtXZSs4Pj4yXT1hW2wrOD4+Ml0sYVtXZSsxMj4+Ml09YVtsKzEyPj4yXSxfZihnZSxXZSxjdCksY3Q9K1ZCKCtfW0huPj4zXSksYVtXZT4+Ml09''@;'; + put 'put ''YVtrdD4+Ml0sYVtXZSs0Pj4yXT1hW2t0KzQ+PjJdLGFbV2UrOD4+Ml09YVtrdCs4Pj4yXSxhW1dlKzEyPj4yXT1hW2t0KzEyPj4yXSxfZihiZSxXZSxjdCksYVtMZT4+Ml09YVtnZT4+Ml0sYVtMZSs0Pj4yXT1hW2dlKzQ+PjJdLGFbTGUrOD4+Ml09YVtnZSs4Pj4yXSxhW0xlKzEyPj4yXT1h''@;'; + put 'put ''W2dlKzEyPj4yXSxhW1dlPj4yXT1hW2JlPj4yXSxhW1dlKzQ+PjJdPWFbYmUrND4+Ml0sYVtXZSs4Pj4yXT1hW2JlKzg+PjJdLGFbV2UrMTI+PjJdPWFbYmUrMTI+PjJdLHFFKHBlLExlLFdlKSxhW0xlPj4yXT1hW1NuPj4yXSxhW0xlKzQ+PjJdPWFbU24rND4+Ml0sYVtMZSs4Pj4yXT1hW1Nu''@;'; + put 'put ''Kzg+PjJdLGFbTGUrMTI+PjJdPWFbU24rMTI+PjJdLGFbV2U+PjJdPWFbcGU+PjJdLGFbV2UrND4+Ml09YVtwZSs0Pj4yXSxhW1dlKzg+PjJdPWFbcGUrOD4+Ml0sYVtXZSsxMj4+Ml09YVtwZSsxMj4+Ml0sZUEoT2UsTGUsV2UpLGFbTGU+PjJdPWFbYW4+PjJdLGFbTGUrND4+Ml09YVthbis0''@;'; + put 'put ''Pj4yXSxhW0xlKzg+PjJdPWFbYW4rOD4+Ml0sYVtMZSsxMj4+Ml09YVthbisxMj4+Ml0sYVtXZT4+Ml09YVtPZT4+Ml0sYVtXZSs0Pj4yXT1hW09lKzQ+PjJdLGFbV2UrOD4+Ml09YVtPZSs4Pj4yXSxhW1dlKzEyPj4yXT1hW09lKzEyPj4yXSxjdD0rczUoTGUsV2UpK1JlLGFbTGU+PjJdPWFb''@;'; + put 'put ''YnQ+PjJdLGFbTGUrND4+Ml09YVtidCs0Pj4yXSxhW0xlKzg+PjJdPWFbYnQrOD4+Ml0sYVtMZSsxMj4+Ml09YVtidCsxMj4+Ml0sYVtXZT4+Ml09YVtPZT4+Ml0sYVtXZSs0Pj4yXT1hW09lKzQ+PjJdLGFbV2UrOD4+Ml09YVtPZSs4Pj4yXSxhW1dlKzEyPj4yXT1hW09lKzEyPj4yXSxLPUsr''@;'; + put 'put ''MXwwLFJlPWN0LEhlPVp0LFZlPVIscWU9K3M1KExlLFdlKStxZSxudD1HOyhHPShSPVZlKkhlLW50Km50KT49MD9SOi1SKT49MWUtNiYmIShHPDFlLTZ8KE09KFZlKlJlLW50KnFlKS9SKTw9MHwoRD0oSGUqcWUtbnQqUmUpL1IpPD0wKXx8KHN0PTYpLDY9PSgwfHN0KSYmKGFbTGU+PjJdPWFb''@;'; + put 'put ''bD4+Ml0sYVtMZSs0Pj4yXT1hW2wrND4+Ml0sYVtMZSs4Pj4yXT1hW2wrOD4+Ml0sYVtMZSsxMj4+Ml09YVtsKzEyPj4yXSxhW1dlPj4yXT1hW2t0Pj4yXSxhW1dlKzQ+PjJdPWFba3QrND4+Ml0sYVtXZSs4Pj4yXT1hW2t0Kzg+PjJdLGFbV2UrMTI+PjJdPWFba3QrMTI+PjJdLEQ9TT0uMzMz''@;'; + put 'put ''MzMzMzMzMzMzMzMzMyorb18oTGUsV2UpKSxhW0E+PjJdPWFbbD4+Ml0sYVtBKzQ+PjJdPWFbbCs0Pj4yXSxhW0ErOD4+Ml09YVtsKzg+PjJdLGFbQSsxMj4+Ml09YVtsKzEyPj4yXSxhW1dlPj4yXT1hW3A+PjJdLGFbV2UrND4+Ml09YVtwKzQ+PjJdLGFbV2UrOD4+Ml09YVtwKzg+PjJdLGFb''@;'; + put 'put ''V2UrMTI+PjJdPWFbcCsxMj4+Ml0sX2Yob3QsV2UsTSksYVt3Pj4yXT1hW290Pj4yXSxhW3crND4+Ml09YVtvdCs0Pj4yXSxhW3crOD4+Ml09YVtvdCs4Pj4yXSxhW3crMTI+PjJdPWFbb3QrMTI+PjJdLGFbYj4+Ml09YVtrdD4+Ml0sYVtiKzQ+PjJdPWFba3QrND4+Ml0sYVtiKzg+PjJdPWFb''@;'; + put 'put ''a3QrOD4+Ml0sYVtiKzEyPj4yXT1hW2t0KzEyPj4yXSxhW1dlPj4yXT1hW20+PjJdLGFbV2UrND4+Ml09YVttKzQ+PjJdLGFbV2UrOD4+Ml09YVttKzg+PjJdLGFbV2UrMTI+PjJdPWFbbSsxMj4+Ml0sX2YoU3QsV2UsRCksYVtrPj4yXT1hW1N0Pj4yXSxhW2srND4+Ml09YVtTdCs0Pj4yXSxh''@;'; + put 'put ''W2srOD4+Ml09YVtTdCs4Pj4yXSxhW2srMTI+PjJdPWFbU3QrMTI+PjJdLGxlPUV0fShmLHAsdyxjdCxidCxFdCxudCxadCxvdCksYVtLPj4yXT1hW0V0Pj4yXSxhW0srND4+Ml09YVtFdCs0Pj4yXSxhW0srOD4+Ml09YVtFdCs4Pj4yXSxhW0srMTI+PjJdPWFbRXQrMTI+PjJdLGFbUmU+PjJd''@;'; + put 'put ''PWFbbnQ+PjJdLGFbUmUrND4+Ml09YVtudCs0Pj4yXSxhW1JlKzg+PjJdPWFbbnQrOD4+Ml0sYVtSZSsxMj4+Ml09YVtudCsxMj4+Ml0sYVtjdD4+Ml09YVtadD4+Ml0sYVtjdCs0Pj4yXT1hW1p0KzQ+PjJdLGFbY3QrOD4+Ml09YVtadCs4Pj4yXSxhW2N0KzEyPj4yXT1hW1p0KzEyPj4yXSxh''@;'; + put 'put ''W2J0Pj4yXT1hW290Pj4yXSxhW2J0KzQ+PjJdPWFbb3QrND4+Ml0sYVtidCs4Pj4yXT1hW290Kzg+PjJdLGFbYnQrMTI+PjJdPWFbb3QrMTI+PjJdLDB8ZnVuY3Rpb24gYV8obCxjLGYscCxtLEEsdyxiKXtsfD0wLGN8PTAsd3w9MDt2YXIgRCxSLEcsSyxwZSxnZSxiZSxPZSxMZSxSZSxIZSxW''@;'; + put 'put ''ZSxxZSxXZSxvdCxrPTAsTT0wLG50PTAsU3Q9MCxrdD0wO2ZvcihvdD1sZSxsZT1sZSs2NHwwLHFlPTI9PSgwfChifD0wKSksVmU9K19bKGZ8PTApPj4zXSxPZT0rX1tmKzg+PjNdLExlPShXZT1vdCkrOHwwLFJlPStfWyhwfD0wKT4+M10sSGU9V2UrMTZ8MCxHPStfW3ArOD4+M10sSz1XZSsy''@;'; + put 'put ''NHwwLHBlPStfWyhtfD0wKT4+M10sZ2U9K19bKEF8PTApPj4zXSxiZT1XZSszMnwwLFI9K19bbSs4Pj4zXSxEPStfW0ErOD4+M10scD1XZSs0MHwwLG09V2UrNDh8MCxBPVdlKzU2fDAsZj0xLGs9NCxNPTQ7Oyl7aWYoX1tXZT4+M109VmUsX1tMZT4+M109T2UsX1tIZT4+M109KFN0PS4zMzMz''@;'; + put 'put ''MzMzMzMzMzMzMzMzKk0pKlJlK1ZlLF9bSz4+M109U3QqRytPZSxfW2JlPj4zXT1wZS0oU3Q9LjMzMzMzMzMzMzMzMzMzMzMqaykqZ2UsX1twPj4zXT1SLVN0KkQsX1ttPj4zXT1wZSxfW0E+PjNdPVIsZiYmKFN0PStsXyhXZSw0KSk8K2xfKHcsYiktLjAwMSl7Zj0wO2JyZWFrfWlmKDB8VzEo''@;'; + put 'put ''bCxjLFdlKSl7bnQ9NTticmVha31pZigwPT1NJjA9PWspe250PTk7YnJlYWt9Zj0wLGs9KGt0PU0+LjAxKT8uNSprOjAsTT1rdD8uNSpNOjB9ZTpkb3tpZig1PT0oMHxudCkpZm9yKCRFKDQrKDB8YVs0NzQ1OV0pfDApLHA9MHxhWzQ3NDYwXSxmPTE7Oyl7aWYoND09KDB8Zikpe2Y9MTticmVh''@;'; + put 'put ''ayBlfV9bcCsoKGt0PTB8YVs0NzQ1OV0pPDw0KT4+M109K19bV2UrKGY8PDQpPj4zXSxTdD0rX1tXZSsoZjw8NCkrOD4+M10sYVs0NzQ1OV09a3QrMSxfW3ArKGt0PDw0KSs4Pj4zXT1TdCxmPWYrMXwwfWVsc2UgaWYoOT09KDB8bnQpKWlmKHFlKWZvcigkRSg0KygwfGFbNDc0NTldKXwwKSxw''@;'; + put 'put ''PTB8YVs0NzQ2MF0sZj0xOzspe2lmKDQ9PSgwfGYpKXtmPTE7YnJlYWsgZX1fW3ArKChrdD0wfGFbNDc0NTldKTw8NCk+PjNdPStfW1dlKyhmPDw0KT4+M10sU3Q9K19bV2UrKGY8PDQpKzg+PjNdLGFbNDc0NTldPWt0KzEsX1twKyhrdDw8NCkrOD4+M109U3QsZj1mKzF8MH1lbHNlIGY9MH13''@;'; + put 'put ''aGlsZSgwKTtyZXR1cm4gbGU9b3QsMHxmfShsLGMsSyxSZSxjdCxidCxmLHApKXc9MDtlbHNle2ZvcihhW2J0Pj4yXT1hW250Pj4yXSxhW2J0KzQ+PjJdPWFbbnQrND4+Ml0sYVtidCs4Pj4yXT1hW250Kzg+PjJdLGFbYnQrMTI+PjJdPWFbbnQrMTI+PjJdLF9mKHFlLGJ0LC4zMzMzMzMzMzMz''@;'; + put 'put ''MzMzMzMzKSxhW2N0Pj4yXT1hW0V0Pj4yXSxhW2N0KzQ+PjJdPWFbRXQrND4+Ml0sYVtjdCs4Pj4yXT1hW0V0Kzg+PjJdLGFbY3QrMTI+PjJdPWFbRXQrMTI+PjJdLGFbYnQ+PjJdPWFbcWU+PjJdLGFbYnQrND4+Ml09YVtxZSs0Pj4yXSxhW2J0Kzg+PjJdPWFbcWUrOD4+Ml0sYVtidCsxMj4+''@;'; + put 'put ''Ml09YVtxZSsxMj4+Ml0scUUoV2UsY3QsYnQpLExlPStfW1dlPj4zXSxPZT0rX1tXZSs4Pj4zXSxhW2J0Pj4yXT1hW290Pj4yXSxhW2J0KzQ+PjJdPWFbb3QrND4+Ml0sYVtidCs4Pj4yXT1hW290Kzg+PjJdLGFbYnQrMTI+PjJdPWFbb3QrMTI+PjJdLF9mKFN0LGJ0LC4zMzMzMzMzMzMzMzMz''@;'; + put 'put ''MzMzKSxhW2N0Pj4yXT1hW1p0Pj4yXSxhW2N0KzQ+PjJdPWFbWnQrND4+Ml0sYVtjdCs4Pj4yXT1hW1p0Kzg+PjJdLGFbY3QrMTI+PjJdPWFbWnQrMTI+PjJdLGFbYnQ+PjJdPWFbU3Q+PjJdLGFbYnQrND4+Ml09YVtTdCs0Pj4yXSxhW2J0Kzg+PjJdPWFbU3QrOD4+Ml0sYVtidCsxMj4+Ml09''@;'; + put 'put ''YVtTdCsxMj4+Ml0sZUEoa3QsY3QsYnQpLGJlPStfW2t0Pj4zXSxHPStfW2t0Kzg+PjNdLEs9MHxhWzQ3NDYyXSxwZT0rX1tFdD4+M10sZ2U9K19bWnQ+PjNdLFI9K19bRXQrOD4+M10sTT0rX1tadCs4Pj4zXSxEPWZyKzh8MCx3PS0xLGI9LTEsaz0xOyEoKDB8ayk+PSgwfHN0KSk7KWwwPStO''@;'; + put 'put ''QihMcj0rX1tLKyg0MCprfDApPj4zXSksVmk9K0VtKExyKSxPaT0rT2QoTHIpLExyPStleChMciksX1tmcj4+M109VmkqTGUrcGUqbDArT2kqYmUrZ2UqTHIsX1tEPj4zXT1PaSpHK1ZpKk9lK1IqbDArTSpMcixKcj1mKyhrPDw0KXwwLGFbY3Q+PjJdPWFbZnI+PjJdLGFbY3QrND4+Ml09YVtm''@;'; + put 'put ''cis0Pj4yXSxhW2N0Kzg+PjJdPWFbZnIrOD4+Ml0sYVtjdCsxMj4+Ml09YVtmcisxMj4+Ml0sYVtidD4+Ml09YVtKcj4+Ml0sYVtidCs0Pj4yXT1hW0pyKzQ+PjJdLGFbYnQrOD4+Ml09YVtKcis4Pj4yXSxhW2J0KzEyPj4yXT1hW0pyKzEyPj4yXSx3PShKcj0oTHI9K29fKGN0LGJ0KSk+Yik/''@;'; + put 'put ''azp3LGI9SnI/THI6YixrPWsrMXwwO2ZyPWYrKHcrLTE8PDQpfDAsYVtjdD4+Ml09YVsoSnI9Zisodzw8NCl8MCk+PjJdLGFbY3QrND4+Ml09YVtKcis0Pj4yXSxhW2N0Kzg+PjJdPWFbSnIrOD4+Ml0sYVtjdCsxMj4+Ml09YVtKcisxMj4+Ml0sYVtidD4+Ml09YVtmcj4+Ml0sYVtidCs0Pj4y''@;'; + put 'put ''XT1hW2ZyKzQ+PjJdLGFbYnQrOD4+Ml09YVtmcis4Pj4yXSxhW2J0KzEyPj4yXT1hW2ZyKzEyPj4yXSxlQSh1cixjdCxidCksYVtidD4+Ml09YVt1cj4+Ml0sYVtidCs0Pj4yXT1hW3VyKzQ+PjJdLGFbYnQrOD4+Ml09YVt1cis4Pj4yXSxhW2J0KzEyPj4yXT1hW3VyKzEyPj4yXSxhNShTbixi''@;'; + put 'put ''dCksYVtjdD4+Ml09YVsodXI9ZisoKGZyPXcrMXwwKTw8NCl8MCk+PjJdLGFbY3QrND4+Ml09YVt1cis0Pj4yXSxhW2N0Kzg+PjJdPWFbdXIrOD4+Ml0sYVtjdCsxMj4+Ml09YVt1cisxMj4+Ml0sYVtidD4+Ml09YVtKcj4+Ml0sYVtidCs0Pj4yXT1hW0pyKzQ+PjJdLGFbYnQrOD4+Ml09YVtK''@;'; + put 'put ''cis4Pj4yXSxhW2J0KzEyPj4yXT1hW0pyKzEyPj4yXSxlQShIcixjdCxidCksYVtidD4+Ml09YVtIcj4+Ml0sYVtidCs0Pj4yXT1hW0hyKzQ+PjJdLGFbYnQrOD4+Ml09YVtIcis4Pj4yXSxhW2J0KzEyPj4yXT1hW0hyKzEyPj4yXSxhNShIbixidCksYVtjdD4+Ml09YVtTbj4+Ml0sYVtjdCs0''@;'; + put 'put ''Pj4yXT1hW1NuKzQ+PjJdLGFbY3QrOD4+Ml09YVtTbis4Pj4yXSxhW2N0KzEyPj4yXT1hW1NuKzEyPj4yXSxhW2J0Pj4yXT1hW0huPj4yXSxhW2J0KzQ+PjJdPWFbSG4rND4+Ml0sYVtidCs4Pj4yXT1hW0huKzg+PjJdLGFbYnQrMTI+PjJdPWFbSG4rMTI+PjJdLHFFKEVyLGN0LGJ0KSxhW2J0''@;'; + put 'put ''Pj4yXT1hW0VyPj4yXSxhW2J0KzQ+PjJdPWFbRXIrND4+Ml0sYVtidCs4Pj4yXT1hW0VyKzg+PjJdLGFbYnQrMTI+PjJdPWFbRXIrMTI+PjJdLGE1KGFuLGJ0KSxhW2N0Pj4yXT1hW20+PjJdLGFbY3QrND4+Ml09YVttKzQ+PjJdLGFbY3QrOD4+Ml09YVttKzg+PjJdLGFbY3QrMTI+PjJdPWFb''@;'; + put 'put ''bSsxMj4+Ml0sYVtidD4+Ml09YVthbj4+Ml0sYVtidCs0Pj4yXT1hW2FuKzQ+PjJdLGFbYnQrOD4+Ml09YVthbis4Pj4yXSxhW2J0KzEyPj4yXT1hW2FuKzEyPj4yXSxsNShsLGMsZixmcixjdCxidCksYVtjdD4+Ml09YVthbj4+Ml0sYVtjdCs0Pj4yXT1hW2FuKzQ+PjJdLGFbY3QrOD4+Ml09''@;'; + put 'put ''YVthbis4Pj4yXSxhW2N0KzEyPj4yXT1hW2FuKzEyPj4yXSxhW2J0Pj4yXT1hW0E+PjJdLGFbYnQrND4+Ml09YVtBKzQ+PjJdLGFbYnQrOD4+Ml09YVtBKzg+PjJdLGFbYnQrMTI+PjJdPWFbQSsxMj4+Ml0sbDUobCxjLEpyLHAtd3wwLGN0LGJ0KSx3PTB9fXJldHVybiBsZT1EciwwfHd9XSxY''@;'; + put 'put ''aj1bSmosZnVuY3Rpb24gUTFlKGwsYyxmLHAsbSxBLHcsYixrLE0pe3JldHVybiAwfG1nKDM5LGx8PTAsY3w9MCxmfD0wLHB8PTAsbXw9MCxBfD0wLHd8PTAsYnw9MCxrfD0wLE18PTApfSxmdW5jdGlvbiBldWUobCxjLGYscCxtLEEsdyxiLGssTSl7cmV0dXJuIDB8bWcoNDAsbHw9MCxjfD0w''@;'; + put 'put ''LGZ8PTAscHw9MCxtfD0wLEF8PTAsd3w9MCxifD0wLGt8PTAsTXw9MCl9LEpqXSxpcT1bZnYsZnVuY3Rpb24gYk4oKXtSbigxODkyNDQpfSxmdW5jdGlvbiBKb2UoKXt2YXIgTSxELFIsbD0wLGM9MCxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxrPTA7Zm9yKFI9bGUsbGU9bGUrMTZ8MCxEPVIr''@;'; + put 'put ''OHwwLGs9UixNPTB8bEQoMHxhWzQ3MjUxXSksbD0xOTIrKDB8YVsxNisoMHxhWzQ3MjU0XSk+PjJdKXwwOzspe2lmKCEoYz0wfGFbbD4+Ml0pKXtiPTA7YnJlYWt9MHxhWzI5MisobD0wfGFbKGY9YysxNnwwKT4+Ml0pPj4yXXx8KEQ3KE0sYyksbD0wfGFbZj4+Ml0pLGw9bCsxNjR8MH1mb3Io''@;'; + put 'put ''O2w9MHxzRChNKTspe2ZvcihhWyhwPTIzMisobD0wfGFbKHc9bCsxNnwwKT4+Ml0pfDApPj4yXT0wLGY9MHxhW2wrMTcyPj4yXSxjPTAsQT0wOzspe2lmKCEobT0wfGFbZisoYzw8Mik+PjJdKSl7cD0wO2JyZWFrfWFbcD4+Ml09bT0oMHxBKT4oMHwobT0oMHxhWzIzMisoMHxhWzE2KygwfGFb''@;'; + put 'put ''KDM9PSgzJmFbbT4+Ml18MCk/bTptKzQ4fDApKzQwPj4yXSk+PjJdKT4+Ml0pKygwfGhyWzE3MCsoMHxhW20rMTY+PjJdKT4+MV0pfDApKT9BOm0sYz1jKzF8MCxBPW19Zm9yKDtjPTB8YVsoMHxhW2wrMTgwPj4yXSkrKHA8PDIpPj4yXTspZj1jKy00OHwwLGFbKG09MjkyKygwfGFbMTYrKDB8''@;'; + put 'put ''YVsoMj09KDMmYVtjPj4yXXwwKT9jOmYpKzQwPj4yXSk+PjJdKXwwKT4+Ml09KEE9MHxhW20+PjJdKS0xLCgwfEEpPDImJihENyhNLDB8YVsoMj09KDMmYVtjPj4yXXwwKT9jOmYpKzQwPj4yXSksbD0wfGFbdz4+Ml0pLHA9cCsxfDA7Yj1iKzF8MH1lOmRve2lmKCgwfGIpIT0oMHxhWzQ3MjUx''@;'; + put 'put ''XSkpZm9yKCRyKDEsMTAyNTU2LGspLGw9MTkyKygwfGFbMTYrKDB8YVs0NzI1NF0pPj4yXSl8MDs7KXtpZighKGM9MHxhW2w+PjJdKSlicmVhayBlOzB8YVsyOTIrKGw9MHxhWyhmPWMrMTZ8MCk+PjJdKT4+Ml0mJihrPTB8dGkoYyksbD0wfGFbMjkyKygwfGFbZj4+Ml0pPj4yXSxhW0Q+PjJd''@;'; + put 'put ''PWssYVtEKzQ+PjJdPWwsJHIoMywxMDI1NzgsRCksbD0wfGFbZj4+Ml0pLGw9bCsxNjR8MH19d2hpbGUoMCk7ZEooTSksbGU9Un0sZ1EsZnVuY3Rpb24gWG9lKCl7dmFyIG0sbD0wLGM9MCxmPTAscD0wO2ZvcihsPTE5MisoMHxhWzE2KygwfGFbNDcyNTRdKT4+Ml0pfDA7bD0wfGFbbD4+Ml07''@;'; + put 'put ''KWFbMjgwKyhsPTB8YVtsKzE2Pj4yXSk+PjJdPTAsbD1sKzE2NHwwO2ZvcihtPTB8dnIoYVs0NzI1MV08PDIpLHA9MCxsPTE5MisoMHxhWzE2KygwfGFbNDcyNTRdKT4+Ml0pfDA7Yz0wfGFbbD4+Ml07KTB8YVsyODArKGw9MHxhWyhmPWMrMTZ8MCk+PjJdKT4+Ml0/Yz1wOihhW20rKHA8PDIp''@;'; + put 'put ''Pj4yXT0wfGVhZShjKSxjPXArMXwwLGw9MHxhW2Y+PjJdKSxwPWMsbD1sKzE2NHwwO2ZvcihsPTB8ZnVuY3Rpb24gdGFlKGwsYyl7bHw9MCxjfD0wO3ZhciBwLGY9MDtmb3IocD0wfHZyKDgpLGFbcD4+Ml09bCxhW3ArND4+Ml09YyxmPTA7ISgoMHxmKT49KDB8YykpOylhWzgrKDB8YVtsKyhm''@;'; + put 'put ''PDwyKT4+Ml0pPj4yXT1mLGY9ZisxfDA7Zm9yKGY9KDB8YykvMnwwOyEoKDB8Zik8PS0xKTspVUgocCxmKSxmPWYrLTF8MDtyZXR1cm4gMHxwfShtLHApOyEoKDB8bmFlKGwpKTw9MSk7KVVIKGwsMHxhWzgrKDB8b2FlKDB8aWFlKDB8cmFlKGwpKSkpPj4yXSk7Zm9yKEZ0KGwpLGw9MDshKCgw''@;'; + put 'put ''fGwpPj0oMHxwKSk7KUZ0KDB8YVttKyhsPDwyKT4+Ml0pLGw9bCsxfDA7RnQobSksKDB8YVs0NzI1NV0pIT0oKDB8YVs0NzI1MV0pLTF8MCk/UHIoMTAyMzAxLDEwMjMzMSw1MjMsMTAyMzM2KTpmdW5jdGlvbiBhYWUoKXtRSSgwfGFbMTkyKygwfGFbMTYrKDB8YVs0NzI1NF0pPj4yXSk+PjJd''@;'; + put 'put ''LDAsMSksUUgoMHxhWzE5MisoMHxhWzE2KygwfGFbNDcyNTRdKT4+Ml0pPj4yXSwwKX0oKX0sZnVuY3Rpb24gV0goKXt2YXIgTSxsPTAsYz0wLGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxEPTAsUj0wO2Zvcih2USgpLE09MHx2cig0KyhhWzQ3MjUzXTw8Mil8MCksYz0wfGFbNDcyNTNd''@;'; + put 'put ''LGw9MDshKCgwfGwpPigwfGMpKTspYVtNKyhsPDwyKT4+Ml09MCxsPWwrMXwwO2ZvcihjPWw9MTkyKygwfGFbMTYrKDB8YVs0NzI1NF0pPj4yXSl8MDtjPTB8YVtjPj4yXTspMHxmZVsxNTYrKGM9MHxhW2MrMTY+PjJdKT4+MF18fChhWyhrPU0rKGFbYysyMzI+PjJdPDwyKXwwKT4+Ml09MSso''@;'; + put 'put ''MHxhW2s+PjJdKSksYz1jKzE2NHwwO2Zvcig7bD0wfGFbbD4+Ml07KXtpZighKDB8ZmVbMTU2KyhsPTB8YVsoaz1sKzE2fDApPj4yXSk+PjBdKSl7Zm9yKG09MHxhWzQ3MjUzXSxmPTB8YVtsKzE3Mj4+Ml0sYj0wLHc9MCxjPTA7cD0wfGFbZisoYzw8Mik+PjJdOyliPSgwfGFbMTU2KyhEPTB8''@;'; + put 'put ''YVtwKzE2Pj4yXSk+PjJdKStifDAsdz0oMHx3KT4oMHwoQT0oMHxhWzIzMisoMHxhWzE2KygwfGFbKDM9PSgzJmFbcD4+Ml18MCk/cDpwKzQ4fDApKzQwPj4yXSk+PjJdKT4+Ml0pKygwfGhyW0QrMTcwPj4xXSl8MCkpP3c6QSxjPWMrMXwwO2ZvcihwPTB8YVtsKzE4MD4+Ml0sQT0wLGM9MDtm''@;'; + put 'put ''PTB8YVtwKyhjPDwyKT4+Ml07KUE9KDB8YVsxNTYrKFI9MHxhW2YrMTY+PjJdKT4+Ml0pK0F8MCxtPSgwfG0pPCgwfChEPSgwfGFbMjMyKygwfGFbMTYrKDB8YVsoMj09KDMmYVtmPj4yXXwwKT9mOmYrLTQ4fDApKzQwPj4yXSk+PjJdKT4+Ml0pLSgwfGhyW1IrMTcwPj4xXSl8MCkpP206RCxj''@;'; + put 'put ''PWMrMXwwO2lmKGM9KDB8dyk+MD93OjAsKDB8Yik9PSgwfEEpKXtmb3IocD1jLGY9YztjPWYrMXwwLCEoKDB8Zik+PSgwfG0pKTspcD0oMHxhW00rKGM8PDIpPj4yXSk8KDB8YVtNKyhwPDwyKT4+Ml0pP2M6cCxmPWM7YVsoRD1NKyhhWyhSPWwrMjMyfDApPj4yXTw8Mil8MCk+PjJdPSgwfGFb''@;'; + put 'put ''RD4+Ml0pLTEsYVsoRD1NKyhwPDwyKXwwKT4+Ml09MSsoMHxhW0Q+PjJdKSxhW1I+PjJdPXB9KGM9MHxhW2wrMjY0Pj4yXSkmJihGdChjKSxsPTB8YVtrPj4yXSksKGM9MHxhW2wrMjcyPj4yXSkmJihGdChjKSxsPTB8YVtrPj4yXSksZmVbbCsxNTc+PjBdPTB9bD1sKzE2NHwwfUZ0KE0pfSxm''@;'; + put 'put ''dW5jdGlvbiBtUSgpe3ZhciBsPTAsYz0wLGY9MCxwPTAsbT0wLEE9MDtmb3IoYz0wOyEoKDB8Yyk+PSgwfGFbNDcyNTVdKSk7KXtsPTB8YVsoMHxhWzQ3MjU2XSkrKGM8PDIpPj4yXTtkb3tpZigwPT0oMHxhWzE2MCsoMHxhW2wrMTY+PjJdKT4+Ml0pJiYwfChmPTB8R0gobCkpJiYoMHwocD0o''@;'; + put 'put ''MHxhWzIzMisoMHxhWzE2KygwfGFbKDI9PSgwfChwPTMmYVtmPj4yXSkpP2Y6ZistNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSktKDB8YVsyMzIrKDB8YVsxNisoMHxhWygzPT0oMHxwKT9mOmYrNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSktKDB8aHJbMTcwKygwfGFbZisxNj4+Ml0pPj4xXSl8MCkp''@;'; + put 'put ''Pj0yKXtpZigoMHxhWzI4OCsoMHxhWzE2KyhtPTB8YVsoMz09KDB8KEE9MyZhW2w+PjJdKSk/bDpsKzQ4fDApKzQwPj4yXSk+PjJdKT4+Ml0pPCgwfGFbMjg4KygwfGFbMTYrKGw9MHxhWygyPT0oMHxBKT9sOmwrLTQ4fDApKzQwPj4yXSk+PjJdKT4+Ml0pKXtYNShtLHA+Pj4xKTticmVha31Y''@;'; + put 'put ''NShsLCgwfHApLy0yfDApO2JyZWFrfX13aGlsZSgwKTtjPWMrMXwwfWdRKCl9LHZRLGZ1bmN0aW9uIGJtKCl7RnQoMHxhWzQ3Mzc1XSksYVs0NzM3NV09MCxhWzQ3Mzg3XT0wfSxmdixmdixmdixmdixmdixmdixmdl0sQ289W2Y4LGZ1bmN0aW9uIG5pZShsKXt2YXIgYyxmLHAsbTtzd2l0Y2go''@;'; + put 'put ''bT1sZSxsZT1sZSsxNnwwLGM9bSs0fDAsZj1tLHA9MHxhWzgrKDB8YVsxNisobHw9MCk+PjJdKT4+Ml0sMHxhWyhsPWwrNjR8MCk+PjJdKXtjYXNlIDA6RTcocCk7YnJlYWs7Y2FzZSAxOjEmaXRbMTM2KygwfGFbcCsxNj4+Ml0pPj4xXSYmYkoocCk7YnJlYWs7Y2FzZSA0OmNhc2UgNTpjYXNl''@;'; + put 'put ''IDY6Q1EocCxmLGMpLGZ1bmN0aW9uIEpkKGwsYyxmLHApe2x8PTAsY3w9MCxmfD0wLHB8PTA7dmFyIHcsbT0wLEE9MDtBPTB8QjAoODI0MCksYVs0NjY5MF09QTtlOmRve3N3aXRjaCgwfHApe2Nhc2UgNjppdFtBKzgyMzI+PjFdPTE0LHA9NjY3Njk7YnJlYWs7Y2FzZSA1Oml0W0ErODIzMj4+''@;'; + put 'put ''MV09MTIscD02Njc3MzticmVhaztkZWZhdWx0OmlmKDB8KHA9MHxMaShsLDY2NzUzKSkmJjB8ZmVbcD4+MF0mJig2NTUzNSYobT0wfGlwKHApKSk+MTApe2l0WzgyMzIrKEE9MHxhWzQ2NjkwXSk+PjFdPW07YnJlYWsgZX1wPTB8aXAoNjY3NjUpLGl0WzgyMzIrKEE9MHxhWzQ2NjkwXSk+PjFd''@;'; + put 'put ''PXAscD02Njc2NX19d2hpbGUoMCk7Zm9yKGFbQSs4MjM2Pj4yXT1wLDB8YVsxODArKHA9MHxhWyh3PWwrMTZ8MCk+PjJdKT4+Ml0/KG09MHxaMihsLDAsOTk4MDgsMTk1MDU5KSxBPTB8YVs0NjY5MF0scD0wfGFbdz4+Ml0pOm09MCxhW0E+PjJdPW0scD04JmZlW3ArMTEzPj4wXT8wfFoyKGws''@;'; + put 'put ''MCw2Njc3NywxOTUwNTkpOjAsYVs0KygwfGFbNDY2OTBdKT4+Ml09cCxBPTB8WjIobCwxLDk5ODA4LDE5NTA1OSksYVs4KygwfGFbNDY2OTBdKT4+Ml09QSxBPTB8WjIobCwxLDY2Nzc3LDE5NTA1OSksYVsxMisoMHxhWzQ2NjkwXSk+PjJdPUEsQT0wfFoyKGwsMiw5OTgwOCwxOTUwNTkpLGFb''@;'; + put 'put ''MTYrKHA9MHxhWzQ2NjkwXSk+PjJdPUEsZj8obT0wfFoyKGwsMiw2Njc4NSwxOTUwNTkpLHA9MHxhWzQ2NjkwXSk6bT0wLGFbcCsyMD4+Ml09bSxjPyhtPTB8WjIobCwyLDY2NzkzLDE5NTA1OSkscD0wfGFbNDY2OTBdKTptPTAsYVtwKzI0Pj4yXT1tLDMzJihtPTB8ZmVbMTEzKygwfGFbdz4+''@;'; + put 'put ''Ml0pPj4wXSk/KEE9MHxaMihsLDIsNjY3NzcsMTk1MDU5KSxwPTB8YVs0NjY5MF0sbT0wfGZlWzExMysoMHxhW3c+PjJdKT4+MF0pOkE9MCxhW3ArMjg+PjJdPUEsMiZtPyhBPTB8WjIobCwyLDY2ODAxLDE5NTA1OSkscD0wfGFbNDY2OTBdLG09MHxmZVsxMTMrKDB8YVt3Pj4yXSk+PjBdKTpB''@;'; + put 'put ''PTAsYVtwKzMyPj4yXT1BLDQmbT8obT0wfFoyKGwsMiw2NjgxMCwxOTUwNTkpLHA9MHxhWzQ2NjkwXSk6bT0wLGFbcCszNj4+Ml09bSxwPTA7OCE9KDB8cCk7KXVzKDE4NjYzMisocDw8NCl8MCwxMDI0LDQwKygwfGFbNDY2OTBdKSsocDw8MTApfDApLHA9cCsxfDB9KHAsMHxhW2Y+PjJdLDB8''@;'; + put 'put ''YVtjPj4yXSwwfGFbbD4+Ml0pfWxlPW19LGZ1bmN0aW9uIFNXKGwpe3ZhciBjLGYscCxtO3N3aXRjaChmPTB8YVs4KygwfGFbMTYrKGx8PTApPj4yXSk+PjJdLDB8YVs0NjY1NV18fChhWzQ2NjU1XT1hWzQ2NzhdLGFbNDY2NTZdPTU3LGFbNDY2NTddPTE5KSxjPTB8YVsobT04KygwfGFbKHA9''@;'; + put 'put ''Zis2NHwwKT4+Ml0pfDApPj4yXSxhW20+PjJdPTE4NjYyMCwwfGFbbCs2ND4+Ml0pe2Nhc2UgMjp3UShsLGYsbCwwKTticmVhaztjYXNlIDM6d1EobCxmLGwsMSk7YnJlYWs7Y2FzZSAxOmNhc2UgMDoxMzQyMTc3MjgmYVtsKzE1Mj4+Ml18fFhuZShmLGwpO2JyZWFrO2Nhc2UgNjpjYXNlIDU6''@;'; + put 'put ''Y2FzZSA0OihmdW5jdGlvbiBTRihsKXtsfD0wO3ZhciBjPTAsZj0wO2ZvcigoMHwoYz0wfGFbNDY2NTldKSkhPSgwfGFbNDY2NThdKSYmKChmPTB8YVthWzQ2NjkwXT4+Ml0pfHwoZj0wfFoyKGwsMCw5OTgwOCwxOTUwNTkpLGFbYVs0NjY5MF0+PjJdPWYsYz0wfGFbNDY2NTldKSxjPj4+MD49''@;'; + put 'put ''KDB8YVs0NjY2MF0pPj4+MCYmKFEwKDE4NjYzMiwxKSxjPTB8YVs0NjY1OV0pLGZlW2M+PjBdPTAsYVs0NjY1OV09Yz0wfGFbNDY2NThdLFZsKGwsZixjKSksMHxhWzEyKygwfGFbbCsxNj4+Ml0pPj4yXSYmKGY9MHxhWzQrKDB8YVs0NjY5MF0pPj4yXSwoYz0wfGFbNDY2NzVdKT4+PjA+PSgw''@;'; + put 'put ''fGFbNDY2NzZdKT4+PjAmJihRMCgxODY2OTYsMSksYz0wfGFbNDY2NzVdKSxmZVtjPj4wXT0wLGFbNDY2NzVdPWM9MHxhWzQ2Njc0XSxWbChsLGYsYykpLEk1KGwsNjY3NTMsMHxhWzgyMzYrKDB8YVs0NjY5MF0pPj4yXSwxOTUwNTkpLGM9MDs4IT0oMHxjKTspQzIoMTg2NjMyKyhjPDw0KXww''@;'; + put 'put ''KSxjPWMrMXwwO0Z0KDB8YVs0NjY5MF0pLF9bMV09MSxfWzVdPTEsYVs0NjY5MV09MCxhWzQ2Njk1XT0wfSkoZiksMTM0MjE3NzI4JmFbbCsxNTI+PjJdfHxYbmUoZixsKX1hWzgrKDB8YVtwPj4yXSk+PjJdPWN9LGZ1bmN0aW9uIHJpZShsKXt2YXIgZixjPTA7Zj0wfGFbOCsoMHxhWzE2Kyhs''@;'; + put 'put ''fD0wKT4+Ml0pPj4yXSxjPTB8YVthWzQ2NjkwXT4+Ml0sKGw9MHxhWzQ2NjYzXSk+Pj4wPj0oMHxhWzQ2NjY0XSk+Pj4wJiYoUTAoMTg2NjQ4LDEpLGw9MHxhWzQ2NjYzXSksZmVbbD4+MF09MCxhWzQ2NjYzXT1sPTB8YVs0NjY2Ml0sVmwoZixjLGwpLDB8YVsxMisoMHxhW2YrMTY+PjJdKT4+''@;'; + put 'put ''Ml0mJihjPTB8YVs0KygwfGFbNDY2OTBdKT4+Ml0sKGw9MHxhWzQ2Njc5XSk+Pj4wPj0oMHxhWzQ2NjgwXSk+Pj4wJiYoUTAoMTg2NzEyLDEpLGw9MHxhWzQ2Njc5XSksZmVbbD4+MF09MCxhWzQ2Njc5XT1sPTB8YVs0NjY3OF0sVmwoZixjLGwpKSxfWzJdPTEsX1s2XT0xLGFbNDY2OTJdPTAs''@;'; + put 'put ''YVs0NjY5Nl09MH0sZnVuY3Rpb24gZTdlKGwpe3ZhciBmLGM9MDtmPTB8YVs4KygwfGFbMTYrKGx8PTApPj4yXSk+PjJdLCgwfGFbNDY2NjJdKSE9KDB8KGw9MHxhWzQ2NjYzXSkpJiYoYz0wfGFbOCsoMHxhWzQ2NjkwXSk+PjJdLGw+Pj4wPj0oMHxhWzQ2NjY0XSk+Pj4wJiYoUTAoMTg2NjQ4''@;'; + put 'put ''LDEpLGw9MHxhWzQ2NjYzXSksZmVbbD4+MF09MCxhWzQ2NjYzXT1sPTB8YVs0NjY2Ml0sVmwoZixjLGwpKSwoMHxhWzQ2Njc4XSkhPSgwfChsPTB8YVs0NjY3OV0pKSYmKGM9MHxhWzEyKygwfGFbNDY2OTBdKT4+Ml0sbD4+PjA+PSgwfGFbNDY2ODBdKT4+PjAmJihRMCgxODY3MTIsMSksbD0w''@;'; + put 'put ''fGFbNDY2NzldKSxmZVtsPj4wXT0wLGFbNDY2NzldPWw9MHxhWzQ2Njc4XSxWbChmLGMsbCkpLF9bOV09MSxfWzExXT0xLGFbNDY2OTldPTAsYVs0NjcwMV09MH0sZnVuY3Rpb24gTVcobCl7dmFyIGYsYz0wO2Y9MHxhWzgrKDB8YVsxNisobHw9MCk+PjJdKT4+Ml0sKDB8YVs0NjY2Ml0pIT0o''@;'; + put 'put ''MHwobD0wfGFbNDY2NjNdKSkmJihjPTB8YVsxNisoMHxhWzQ2NjkwXSk+PjJdLGw+Pj4wPj0oMHxhWzQ2NjY0XSk+Pj4wJiYoUTAoMTg2NjQ4LDEpLGw9MHxhWzQ2NjYzXSksZmVbbD4+MF09MCxhWzQ2NjYzXT1sPTB8YVs0NjY2Ml0sVmwoZixjLGwpKSwoMHxhWzQ2NjY2XSkhPSgwfChsPTB8''@;'; + put 'put ''YVs0NjY2N10pKSYmKGM9MHxhWzI0KygwfGFbNDY2OTBdKT4+Ml0sbD4+PjA+PSgwfGFbNDY2NjhdKT4+PjAmJihRMCgxODY2NjQsMSksbD0wfGFbNDY2NjddKSxmZVtsPj4wXT0wLGFbNDY2NjddPWw9MHxhWzQ2NjY2XSxWbChmLGMsbCkpLCgwfGFbNDY2NzBdKSE9KDB8KGw9MHxhWzQ2Njcx''@;'; + put 'put ''XSkpJiYoYz0wfGFbMjArKDB8YVs0NjY5MF0pPj4yXSxsPj4+MD49KDB8YVs0NjY3Ml0pPj4+MCYmKFEwKDE4NjY4MCwxKSxsPTB8YVs0NjY3MV0pLGZlW2w+PjBdPTAsYVs0NjY3MV09bD0wfGFbNDY2NzBdLFZsKGYsYyxsKSksKDB8YVs0NjY3OF0pIT0oMHwobD0wfGFbNDY2NzldKSkmJihj''@;'; + put 'put ''PTB8YVsyOCsoMHxhWzQ2NjkwXSk+PjJdLGw+Pj4wPj0oMHxhWzQ2NjgwXSk+Pj4wJiYoUTAoMTg2NzEyLDEpLGw9MHxhWzQ2Njc5XSksZmVbbD4+MF09MCxhWzQ2Njc5XT1sPTB8YVs0NjY3OF0sVmwoZixjLGwpKSwoMHxhWzQ2NjgyXSkhPSgwfChsPTB8YVs0NjY4M10pKSYmKGM9MHxhWzM2''@;'; + put 'put ''KygwfGFbNDY2OTBdKT4+Ml0sbD4+PjA+PSgwfGFbNDY2ODRdKT4+PjAmJihRMCgxODY3MjgsMSksbD0wfGFbNDY2ODNdKSxmZVtsPj4wXT0wLGFbNDY2ODNdPWw9MHxhWzQ2NjgyXSxWbChmLGMsbCkpLCgwfGFbNDY2ODZdKSE9KDB8KGw9MHxhWzQ2Njg3XSkpJiYoYz0wfGFbMzIrKDB8YVs0''@;'; + put 'put ''NjY5MF0pPj4yXSxsPj4+MD49KDB8YVs0NjY4OF0pPj4+MCYmKFEwKDE4Njc0NCwxKSxsPTB8YVs0NjY4N10pLGZlW2w+PjBdPTAsYVs0NjY4N109bD0wfGFbNDY2ODZdLFZsKGYsYyxsKSksX1sxMF09MSxfWzEyXT0xLF9bM109MSxfWzRdPTEsX1s3XT0xLF9bOF09MSxhWzQ2NzAwXT0wLGFb''@;'; + put 'put ''NDY3MDJdPTAsYVs0NjY5M109MCxhWzQ2Njk0XT0wLGFbNDY2OTddPTAsYVs0NjY5OF09MH0sZnVuY3Rpb24gSVcobCl7dmFyIGM9MDtzd2l0Y2goMHxhWzY0KyhsfD0wKT4+Ml0pe2Nhc2UgMDpjPTB8ZnVuY3Rpb24gRVQobCl7dmFyIGMsZj0wLHA9MCxtPTA7cD1sfD0wLG09NDArKGY9Yz0w''@;'; + put 'put ''fHZyKDM5MikpfDA7ZG97YVtmPj4yXT1hW3A+PjJdLGY9Zis0fDAscD1wKzR8MH13aGlsZSgoMHxmKTwoMHxtKSk7cmV0dXJuIGFbKG09Yys2MHwwKT4+Ml09YVsocD1sKzYwfDApPj4yXSxhW20rND4+Ml09YVtwKzQ+PjJdLGFbbSs4Pj4yXT1hW3ArOD4+Ml0sYVttKzEyPj4yXT1hW3ArMTI+''@;'; + put 'put ''PjJdLGFbbSsxNj4+Ml09YVtwKzE2Pj4yXSxhWyhtPWMrODB8MCk+PjJdPWFbKHA9bCs4MHwwKT4+Ml0sYVttKzQ+PjJdPWFbcCs0Pj4yXSxhW20rOD4+Ml09YVtwKzg+PjJdLGFbbSsxMj4+Ml09YVtwKzEyPj4yXSxhW20rMTY+PjJdPWFbcCsxNj4+Ml0sMHxjfSgwfGFbbD4+Ml0pLGZ1bmN0''@;'; + put 'put ''aW9uICRHKGwsYyxmLHApe3B8PTA7dmFyIG0sQSxiLHc9MDtiPWxlLGxlPWxlKzE2fDAsQT1iLG09MHxhWzYwKyhjfD0wKT4+Ml0seFQobHw9MCxmfD0wKSxhWzU2KyhjPTB8YVtsKzE2ND4+Ml0pPj4yXT0wfEM5KGMsMHxhW2MrNTI+PjJdKSwwIT0oMHxoMChtLDEzNzQ4MywwLDEpKSYmMCE9''@;'; + put 'put ''KDB8YVs4KygwfGFbbSsxNj4+Ml0pPj4yXSl8fDY3MTA4ODY0JmFbYysxNTI+PjJdP3c9NTooWG0oOTg5MTEsQSksYz0tMSksNT09KDB8dykmJihhW2MrMzY+PjJdPXAscHx8KGFbKHc9YysxNTJ8MCk+PjJdPTEzNDIxNzcyOHxhW3c+PjJdKSx3PTB8ZzIobCxtKSxrOShjKSxsRihsKSxjPXcp''@;'; + put 'put ''LGxlPWJ9KGMsMHxhWzgrKDB8YVtsKzE2Pj4yXSk+PjJdLDY3Nzk3LDApLGZ1bmN0aW9uIFpHKGwpe2xGKGx8PTApLEZ0KGwpfShjKTticmVhaztjYXNlIDE6RTcoMHxhWzE2OCsoMHxhW2w+PjJdKT4+Ml0pfX0sZnVuY3Rpb24gYWllKGwpe3ZhciBjLGYscCxtO3A9bGUsbGU9bGUrMTZ8MCxj''@;'; + put 'put ''PXAsZj0wfGFbOCsoMHxhWzE2KyhsfD0wKT4+Ml0pPj4yXSwwfGFbNDY3MDNdfHwoYVs0NjcwM109YVs0Njc4XSxhWzQ2NzA0XT01NyxhWzQ2NzA1XT0xOSksYVs4KygwfGFbZis2ND4+Ml0pPj4yXT0xODY4MTIsR1QoZiwxKSxhW2M+PjJdPTAsZmVbYys0Pj4wXT0xPT0oMHxmZVsxMTUrKDB8''@;'; + put 'put ''YVtmKzE2Pj4yXSk+PjBdKSYxLGZlW2MrNT4+MF09MSYoMD09KDB8KG09MHxhW2wrNjQ+PjJdKSl8Mz09KDB8bSkpLGZlW2MrNj4+MF09MCxURihmLGwsMSxjKSxsZT1wfSxmdW5jdGlvbiBhN2UobCl7dmFyIGMsZixwLG0sQSx3LGIsaztjPWxlLGxlPWxlKzMyfDAsZj1jKzI0fDAscD1jKzE2''@;'; + put 'put ''fDAsQT1jLG09MHxhWzE2KyhsfD0wKT4+Ml0sRW4obCw2ODYyMyksYj0wfGFbNCsoaz0wfGFbYVtsKzEyPj4yXT4+Ml0pPj4yXSx3PTB8YVtrKzg+PjJdLGFbQT4+Ml09YVtrPj4yXSxhW0ErND4+Ml09YixhW0ErOD4+Ml09dyxPcihsLDY4NjMzLEEpLGFbcD4+Ml09MHx0aSgwfGFbbSs4Pj4y''@;'; + put 'put ''XSksT3IobCw2ODY2OCxwKSxhW2Y+PjJdPTB8QXIoMHxhW2wrMTY4Pj4yXSwwfGFbbCsxNjQ+PjJdKSxPcihsLDY4NjgxLGYpLEVuKGwsNjg2OTQpLEVuKGwsNjg3MDQpLEVuKGwsNjg3MTIpLEVuKGwsNjg3MjApLEVuKGwsNjg3MjgpLEVuKGwsNjg3MzYpLEVuKGwsNjg3NDQpLEVuKGwsNjg3''@;'; + put 'put ''NDgpLEVuKGwsNjg3NTMpLGxlPWN9LGZ1bmN0aW9uIEZXKGwpe0VuKGx8PTAsNjg2MDQpfSxmdW5jdGlvbiBoaWUobCl7YVs0NjcxMF09Mn0sZnVuY3Rpb24gREYobCl7YVs0NjcxMF09MX0sZnVuY3Rpb24gWkMobCl7YVs0NjcxMF09Mn0sZnVuY3Rpb24gZGllKGwpe2FbNDY3MTBdPTB9LGZ1''@;'; + put 'put ''bmN0aW9uIFdUKGwpe2FbNDY3MTBdPTJ9LGZ1bmN0aW9uIFZXKGwpe3ZhciBjPTAsZj0wLHA9MDtzd2l0Y2goZj0wfGFbMTYrKGx8PTApPj4yXSwwfGFbbCs2ND4+Ml0pe2Nhc2UgMDpFbihsLDY4MjIwKSwwfChmPTB8YVsoYz1mKzIwOHwwKT4+Ml0pJiYwfGZlW2Y+PjBdJiYoRW4obCw2ODIz''@;'; + put 'put ''NCksRW4obCwwfE0xKDB8YVtjPj4yXSkpLEVuKGwsMTUzNTk5KSk7YnJlYWs7Y2FzZSAxOjB8KHA9MHxhWyhjPWYrMjA4fDApPj4yXSkmJjB8ZmVbcD4+MF0mJihFbihsLDY4MjM0KSxFbihsLDB8TTEoMHxhW2M+PjJdKSksRW4obCwxMDI2MDQpLEVuKGwsMHxNMSgwfHRpKDB8YVtmKzg+PjJd''@;'; + put 'put ''KSkpLEVuKGwsMTUzNTk5KSk7YnJlYWs7Y2FzZSAzOnA9MHxNMSgwfHRpKDB8YVtmKzg+PjJdKSksRW4obCw2ODI0MyksRW4obCxwKSxFbihsLDY4MjUzKSxFbihsLHApLEVuKGwsNjgyMDgpfX0sZnVuY3Rpb24gT0YobCl7dmFyIGM7c3dpdGNoKGM9MHxhWzE2KyhsfD0wKT4+Ml0sMHxhW2wr''@;'; + put 'put ''NjQ+PjJdKXtjYXNlIDI6VVQobCwwfGFbYysyNjQ+PjJdLDB8YVtjKzI3Mj4+Ml0sMHxhW2MrMjY4Pj4yXSwwfGFbYysyMDg+PjJdLDB8YVtjKzIyOD4+Ml0sMHxhW2MrMjQ0Pj4yXSwwfGFbYysyMTI+PjJdKTticmVhaztjYXNlIDM6VVQobCwwfGFbYysyNjQ+PjJdLDB8YVtjKzI3Mj4+Ml0s''@;'; + put 'put ''MHxhW2MrMjY4Pj4yXSwwfGFbYysyMDg+PjJdLDB8YVtjKzIyOD4+Ml0sMHxhW2MrMjQ0Pj4yXSwwfGFbYysyMTI+PjJdKSxFbihsLDY4MjEyKX19LGZ1bmN0aW9uIGpXKGwpe3ZhciBjLGYscCxtLEEsdyxiLGs7Yz1sZSxsZT1sZSszMnwwLGY9YysyNHwwLHA9YysxNnwwLEE9YyxtPTB8YVsx''@;'; + put 'put ''NisobHw9MCk+PjJdLEVuKGwsNjg2MjMpLGI9MHxhWzQrKGs9MHxhW2FbbCsxMj4+Ml0+PjJdKT4+Ml0sdz0wfGFbays4Pj4yXSxhW0E+PjJdPWFbaz4+Ml0sYVtBKzQ+PjJdPWIsYVtBKzg+PjJdPXcsT3IobCw2ODYzMyxBKSxhW3A+PjJdPTB8dGkoMHxhW20rOD4+Ml0pLE9yKGwsNjg2Njgs''@;'; + put 'put ''cCksYVtmPj4yXT0wfEFyKDB8YVtsKzE2OD4+Ml0sMHxhW2wrMTY0Pj4yXSksT3IobCw2ODY4MSxmKSxFbihsLDY4Njk0KSxFbihsLDY4NzA0KSxFbihsLDY4NzEyKSxFbihsLDY4NzIwKSxFbihsLDY4NzI4KSxFbihsLDY4NzM2KSxFbihsLDY4NzQ0KSxFbihsLDY4NzQ4KSxFbihsLDY4NzUz''@;'; + put 'put ''KSxsZT1jfSxmdW5jdGlvbiB5aWUobCl7RW4obHw9MCw2ODYwNCl9LGZ1bmN0aW9uIHdpZShsKXthWzQ2NzE2XT0yfSxmdW5jdGlvbiBiaWUobCl7YVs0NjcxNl09MX0sZnVuY3Rpb24gX2llKGwpe2FbNDY3MTZdPTJ9LGZ1bmN0aW9uIFFUKGwpe2FbNDY3MTZdPTB9LGZ1bmN0aW9uIFpXKGwp''@;'; + put 'put ''e2FbNDY3MTZdPTJ9LGZ1bmN0aW9uIE1pZShsKXt2YXIgYyxmLHAsbSxBO2Y9bGUsbGU9bGUrMTZ8MCxjPWYsRW4obHw9MCw3MzMzMiksRW4obCwyPT0oMHxhW2wrNjQ+PjJdKT83MzM0NzoxNTM1OTkpLG09MHxhWzQrKEE9MHxhW2FbbCsxMj4+Ml0+PjJdKT4+Ml0scD0wfGFbQSs4Pj4yXSxh''@;'; + put 'put ''W2M+PjJdPWFbQT4+Ml0sYVtjKzQ+PjJdPW0sYVtjKzg+PjJdPXAsT3IobCw3MzM1OCxjKSxsZT1mfSxmdW5jdGlvbiBVVyhsKXt2YXIgbSxBLGM9MCxmPTAscD0wO0E9bGUsbGU9bGUrMzJ8MCxtPUErOHwwLHA9QSxFbihsfD0wLDczMjg2KSxjPWwrMTJ8MCwyIT0oMHxhWyhmPWwrNjR8MCk+''@;'; + put 'put ''PjJdKSYmKGFbcD4+Ml09YVsyOCsoMHxhW2M+PjJdKT4+Ml0sT3IobCw3MzI5NyxwKSksMD09KDB8YVsyMCsoMHxhW2M+PjJdKT4+Ml0pJiYyIT0oMHxhW2Y+PjJdKSYmKGM9MHxhW2wrNDc2Pj4yXSxmPTB8YVtsKzQ4MD4+Ml0scD0wfGFbbCs0ODQ+PjJdLGFbbT4+Ml09YVtsKzQ3Mj4+Ml0s''@;'; + put 'put ''YVttKzQ+PjJdPWMsYVttKzg+PjJdPWYsYVttKzEyPj4yXT1wLE9yKGwsNjk2NjYsbSkpLEVuKGwsNzMzMTIpLEVuKGwsNzMzMjUpLGxlPUF9LGZ1bmN0aW9uIEVpZShsKXt2YXIgZixwLG0sQSx3LGIsayxjPTAsTT0wLEQ9MDtpZihrPWxlLGxlPWxlKzMyfDAsYj1rKzI0fDAscD1rKzh8MCx3''@;'; + put 'put ''PWssbT0wfGFbMTYrKGx8PTApPj4yXSxmZVsxOTM3NjhdPTAsQT1tKzh8MCwhKDB8YVsyOCsoMHxhWyhmPWwrMTJ8MCk+PjJdKT4+Ml0pKXthW3c+PjJdPTB8dGkoMHxhW0E+PjJdKSxPcihsLDY5NTk3LHcpLEVuKGwsMj09KDB8YVsoYz1sKzY0fDApPj4yXSk/Njk2MzA6Njk2MTIpO2Rve2lm''@;'; + put 'put ''KCEoMHxhWzIwKygwfGFbZj4+Ml0pPj4yXSkpe2lmKDI9PSgwfGFbYz4+Ml0pKXtEPTB8YVtsKzQ2MD4+Ml0sTT0wfGFbbCs0NjQ+PjJdLGM9MHxhW2wrNDY4Pj4yXSxhW3A+PjJdPWFbbCs0NTY+PjJdLGFbcCs0Pj4yXT1ELGFbcCs4Pj4yXT1NLGFbcCsxMj4+Ml09YyxPcihsLDY5NjY2LHAp''@;'; + put 'put ''O2JyZWFrfUVuKGwsNjk2NDIpO2JyZWFrfX13aGlsZSgwKTtFbihsLDY5Njk2KSxlTihsLDB8YVsyNCsoMHxhW2Y+PjJdKT4+Ml0sMTNlMyksZnVuY3Rpb24gRWFlKGwpe2x8PTA7dmFyIGYscCxjPTAsbT0wO3A9bGUsbGU9bGUrMTZ8MCxmPXAsYz0wfGFbNDcyNjZdO2U6ZG97aWYoMHxjKWZv''@;'; + put 'put ''cihjPTB8bWlbNjMmYVtjPj4yXV0oYywwLDEyOCk7Oyl7aWYoIWMpYnJlYWsgZTswfGZlW2MrMTY+PjBdfHwoYVtmPj4yXT1hW2MrMTI+PjJdLE9yKGwsMTA0NDYyLGYpLEVuKGwsMTA0NDgwKSxOUShsLGMpLEVuKGwsMTA0NDk4KSxFbihsLDEwNDUxMykpLGM9MHxtaVs2MyZhWyhtPTB8YVs0''@;'; + put 'put ''NzI2Nl0pPj4yXV0obSxjLDgpfX13aGlsZSgwKTtsZT1wfShsKSwwfChjPTB8YVsyMCsoMHxhW2Y+PjJdKT4+Ml0pJiYoYVt3Pj4yXT1hW2M+PjJdLGFbdys0Pj4yXT0wLGVOKGwsMCx3KSl9YVs0NjcyMF09MT09KDB8ZmVbMTE1KygwfGFbMTYrKDB8YVtBPj4yXSk+PjJdKT4+MF0pPzE6LTEs''@;'; + put 'put ''MHxmZVsxOTM3NjhdfHwoRW4obCw2OTcxNiksZmVbMTkzNzY4XT0xKSwwfChjPTB8YVttKzIwOD4+Ml0pJiYoYVtiPj4yXT0wfHROKGMsMHxhWzQ2NzIwXSksT3IobCw2OTcyOSxiKSksbGU9a30sZnVuY3Rpb24gVGllKGwpe3ZhciBwLG0sQSx3LGIsayxELFIsRyxLLHBlLGdlLE9lLExlLFJl''@;'; + put 'put ''LGM9MCxmPTAsTT0wLGJlPTA7Z2U9bGUsbGU9bGUrMTQ0fDAscGU9Z2UrMTI4fDAsSz1nZSsxMTJ8MCxHPWdlKzcyfDAsUj1nZSs1NnwwLEQ9Z2UrNDB8MCxNPWdlKzMyfDAscD1nZSsyNHwwLGM9Z2UrOHwwLG09MHxhWzQ1NisobHw9MCk+PjJdLGI9MHxhW2wrNDYwPj4yXSxBPTB8YVtsKzQ2''@;'; + put 'put ''ND4+Ml0sdz0wfGFbbCs0Njg+PjJdLGFbKGY9Z2UpPj4yXT1iZT0xKygwfGFbMjgrKDB8YVsoaz1sKzEyfDApPj4yXSk+PjJdKXwwLGFbZis0Pj4yXT1iZSxPcihsLDY5MjA4LGYpLDB8YVsyMCsoMHxhW2s+PjJdKT4+Ml18fChhW2M+PjJdPW0sYVtjKzQ+PjJdPWIsYVtjKzg+PjJdPUEsYVtj''@;'; + put 'put ''KzEyPj4yXT13LE9yKGwsNjkyMjUsYykpLGFbcD4+Ml09MHxhWyhmPWwrMzYwfDApPj4yXT82OTI1OTo2OTI2OSxPcihsLDY5Mjc4LHApLDE9PSgwfGFbKGM9bCs2NHwwKT4+Ml0pJiYoYVtNPj4yXT1BLGFbTSs0Pj4yXT13LE9yKGwsNjkzMDMsTSkpLE09MHxhW2wrMjAwPj4yXSxiZT0wfGFb''@;'; + put 'put ''bCsyMDQ+PjJdLGFbRD4+Ml09YVtsKzE5Nj4+Ml0sYVtEKzQ+PjJdPU0sYVtEKzg+PjJdPWJlLE9yKGwsNjkzNDIsRCksMHxhWzIwKygwfGFbaz4+Ml0pPj4yXXx8KGFbUj4+Ml09bSxhW1IrND4+Ml09YixhW1IrOD4+Ml09QS1tLGFbUisxMj4+Ml09dy1iLE9yKGwsNjkzNjIsUikpLFJlPStf''@;'; + put 'put ''W2wrNDk2Pj4zXSxiZT0wfGFbZj4+Ml0sTGU9K19bbCs1MDQ+PjNdLE9lPStfW2wrNTEyPj4zXSxfW0c+PjNdPStfW2wrNDg4Pj4zXSxfW0crOD4+M109UmUsYVtHKzE2Pj4yXT1iZSxfW0crMjQ+PjNdPUxlLF9bRyszMj4+M109T2UsT3IobCw2OTQwMixHKSwxPT0oMHxhW2M+PjJdKSYmKCgw''@;'; + put 'put ''fEEpPjE0Mzk5fCgwfHcpPjE0Mzk5JiYoYmU9MHxhWzE2KygwfGFbaz4+Ml0pPj4yXSxhW0s+PjJdPUEsYVtLKzQ+PjJdPXcsYVtLKzg+PjJdPTE0NDAwLEdzWzYzJmJlXSg2OTQ0NSxLKSksYVtwZT4+Ml09bSxhW3BlKzQ+PjJdPWIsYVtwZSs4Pj4yXT1BLGFbcGUrMTI+PjJdPXcsT3IobCw2''@;'; + put 'put ''OTU0MCxwZSkpLGxlPWdlfSxmdW5jdGlvbiBQRihsKXt2YXIgYyxmLHA7cD1sZSxsZT1sZSsxNnwwLGY9cCwwfGFbMjArKDB8YVsoYz0xMisobHw9MCl8MCk+PjJdKT4+Ml0mJihFbihsLDY5MTMyKSxlTihsLDAsNCsoMHxhWzIwKygwfGFbYz4+Ml0pPj4yXSl8MCkpLEVuKGwsNjkxNDkpLEVu''@;'; + put 'put ''KGwsNjkxNzYpLGFbZj4+Ml09YVsyOCsoMHxhW2M+PjJdKT4+Ml0sT3IobCw2OTE5MSxmKSxsZT1wfSxmdW5jdGlvbiBzN2UobCl7dmFyIGMsZjtjPWxlLGxlPWxlKzE2fDAsYVsoZj1jKT4+Ml09MHx0aSgwfGFbOCsoMHxhWzE2KyhsfD0wKT4+Ml0pPj4yXSksT3IobCw2OTEyNSxmKSxFbihs''@;'; + put 'put ''LDY5MTE4KSxsZT1jfSxmdW5jdGlvbiB1N2UobCl7RW4obHw9MCw4NDU1Mil9LGZ1bmN0aW9uIElpZShsKXtFbihsfD0wLDY5MTE4KX0sZnVuY3Rpb24gRGllKGwpe0VuKGx8PTAsODQ1NTIpfSxmdW5jdGlvbiBMaWUobCl7RW4obHw9MCw2OTExOCl9LGZ1bmN0aW9uIFFXKGwpe0VuKGx8PTAs''@;'; + put 'put ''ODQ1NTIpfSxmdW5jdGlvbiBCaWUobCl7dmFyIGM9MDtFbihsfD0wLDc0ODM4KSwwfChjPTB8TGkoMHxhWzE2OCsoMHxhW2w+PjJdKT4+Ml0sNzQ4OTQpKSYmMHxmZVtjPj4wXSYmKEVuKGwsNzQ5MDUpLEVuKGwsYyksRW4obCw3NDkyOSkpLEVuKGwsNzQ5NTApLEVuKGwsNzQ5OTgpLEVuKGws''@;'; + put 'put ''NzUwNTIpLEVuKGwsMHxNMSgwfGFbYVthWyhjPWwrMTJ8MCk+PjJdPj4yXT4+Ml0pKSxFbihsLDc4MTgxKSxFbihsLDB8TTEoMHxhWzQrKDB8YVthW2M+PjJdPj4yXSk+PjJdKSksRW4obCw3ODE5MSksRW4obCwwfE0xKDB8YVs4KygwfGFbYVtjPj4yXT4+Ml0pPj4yXSkpLEVuKGwsNzU0MzQp''@;'; + put 'put ''LEVuKGwsNzU0NTgpfSxmdW5jdGlvbiBQaWUobCl7dmFyIHAsbSxBLHcsYixrLGM9MCxmPTA7QT1sZSxsZT1sZSs0OHwwLG09QSsxNnwwLHA9QSs4fDAsZj1BLGM9MHxhWzE2KyhsfD0wKT4+Ml0sRW4obCw3NDY3MyksMHxmZVsoMHx0aSgwfGFbKGM9Yys4fDApPj4yXSkpPj4wXSYmKEVuKGws''@;'; + put 'put ''NzUzOTcpLEVuKGwsMHxNMSgwfHRpKDB8YVtjPj4yXSkpKSksYVtmPj4yXT0wfEFyKDB8YVtsKzE2OD4+Ml0sMHxhW2wrMTY0Pj4yXSksT3IobCw3NDY3OCxmKSxmPTB8YVtsKzQ1Mj4+Ml0sYVtwPj4yXT1hW2wrNDQ4Pj4yXSxhW3ArND4+Ml09ZixPcihsLDc0Njk0LHApLGs9K19bbCszOTI+''@;'; + put 'put ''PjNdLGI9K19bbCs0MDA+PjNdLHc9K19bbCs0MDg+PjNdLF9bbT4+M109K19bbCszODQ+PjNdLF9bbSs4Pj4zXT1rLF9bbSsxNj4+M109YixfW20rMjQ+PjNdPXcsT3IobCw3NDcyNyxtKSxFbihsLDc0NzU4KSxFbihsLDc0Nzk0KSxFbihsLDc2Mzg4KSxsZT1BfSxmdW5jdGlvbiBoN2UobCl7''@;'; + put 'put ''RW4obHw9MCw3NDY2NSl9LGZ1bmN0aW9uIHFXKGwpe0VuKGx8PTAsNzQ1MTMpfSxmdW5jdGlvbiBGNShsKXt2YXIgYyxmLHAsbTtmPWxlLGxlPWxlKzE2fDAscD1mLGM3KGx8PTAsMHxhWzIxMisobT0wfGFbbCsxNj4+Ml0pPj4yXSwwLDExMTQ5NCwwfGFbKGM9bSs4fDApPj4yXSksRW4obCw3''@;'; + put 'put ''NDYxNyksWnMobCwrX1tsKzQ4OD4+M10pLEVuKGwsMTAyNjA0KSxacyhsLCtfW2wrNDk2Pj4zXSksYVtwPj4yXT0wLSgwfGFbbCszNjA+PjJdKSxPcihsLDc0NjM2LHApLFpzKGwsK19bbCs1MDQ+PjNdKSxFbihsLDEwMjYwNCksWnMobCwtK19bbCs1MTI+PjNdKSxFbihsLDc0NjYwKSwwfGZl''@;'; + put 'put ''WygwfHRpKDB8YVtjPj4yXSkpPj4wXSYmKEVuKGwsNzQ1NjkpLEVuKGwsMHxNMSgwfHRpKDB8YVtjPj4yXSkpKSxFbihsLDc0NTc3KSksbGU9Zn0sZnVuY3Rpb24gRmllKGwpe0VuKGx8PTAsNzQ1MTMpfSxmdW5jdGlvbiBIaWUobCl7dmFyIGMsZjtjNyhsfD0wLDB8YVsyMTIrKGY9MHxhW2wr''@;'; + put 'put ''MTY+PjJdKT4+Ml0sMCwxMDgwMDYsMHxhWyhjPWYrOHwwKT4+Ml0pLEVuKGwsNzYzODgpLEVuKGwsNzQ1NjkpLEVuKGwsMHxNMSgwfHRpKDB8YVtjPj4yXSkpKSxFbihsLDc0NTc3KX0sZnVuY3Rpb24gRkYobCl7RW4obHw9MCw3NDUxMyl9LGZ1bmN0aW9uIGVZKGwpe3ZhciBmLHAsYz0wO2M3''@;'; + put 'put ''KGx8PTAsMHxhWzIxMisoZj0wfGFbbCsxNj4+Ml0pPj4yXSxjPSgwfChjPTB8YVtsKzE2MD4+Ml0pKT4xPzB8YVsoMHxhWzMwOCsoMHxhW2w+PjJdKT4+Ml0pKyhjPDwyKT4+Ml06MCwxMTE0ODEsMHxhWyhwPWYrOHwwKT4+Ml0pLEVuKGwsNzYzODgpLEVuKGwsNzQ1NjkpLEVuKGwsMHxNMSgw''@;'; + put 'put ''fHRpKDB8YVtwPj4yXSkpKSxFbihsLDc0NTc3KX0sZnVuY3Rpb24gcDdlKGwpe0VuKGx8PTAsNzQ1MTMpfSxmdW5jdGlvbiBnN2UobCl7dmFyIGYsYz0wO2M3KGx8PTAsMHxhWzIxMisoZj0wfGFbbCsxNj4+Ml0pPj4yXSwwLDExMTQ1MCwwfGFbKGM9Zis4fDApPj4yXSksRW4obCw3NjM4OCks''@;'; + put 'put ''RW4obCw3NDU2OSksRW4obCwwfE0xKGM9MHxtMigxMDIwOTUsMHxhW2M+PjJdKSkpLEZ0KGMpLEVuKGwsNzQ1NzcpfSxmdW5jdGlvbiBtN2UobCl7RW4obHw9MCw3NDUxMyl9LGZ1bmN0aW9uIHY3ZShsKXtFbihsfD0wLDc2MzQzKSxFbihsLDc0NTEzKX0sZnVuY3Rpb24gamllKGwpe3ZhciBj''@;'; + put 'put ''O0VuKGx8PTAsNzU0MTgpLEVuKGwsMHxLVCgwfGFbYVthWyhjPWwrMTJ8MCk+PjJdPj4yXT4+Ml0pKSxFbihsLDc4MTgxKSxFbihsLDB8S1QoMHxhWzQrKDB8YVthW2M+PjJdPj4yXSk+PjJdKSksRW4obCw3ODE5MSksRW4obCwwfEtUKDB8YVs4KygwfGFbYVtjPj4yXT4+Ml0pPj4yXSkpLEVu''@;'; + put 'put ''KGwsNzU0MzQpfSxmdW5jdGlvbiByWShsKXt2YXIgZixwLGM9MDtwPWxlLGxlPWxlKzE2fDAsZj1wLGM9MHxhWzE2KyhsfD0wKT4+Ml0sRW4obCw3NTM5NSksMHxmZVsoMHx0aSgwfGFbKGM9Yys4fDApPj4yXSkpPj4wXSYmKEVuKGwsNzUzOTcpLEVuKGwsMHxLVCgwfHRpKDB8YVtjPj4yXSkp''@;'; + put 'put ''KSksYVtmPj4yXT0wfEFyKDB8YVtsKzE2OD4+Ml0sMHxhW2wrMTY0Pj4yXSksT3IobCw3NTQwNixmKSxhWzQ2NzIzXT0wLGxlPXB9LGZ1bmN0aW9uIGs3ZShsKXthWzQ2NzIzXT0xfSxmdW5jdGlvbiBTN2UobCl7YVs0NjcyM109LTF9LGZ1bmN0aW9uIEw3ZShsKXt2YXIgYztFbihsfD0wLDc4''@;'; + put 'put ''MTUzKSxFbihsLDc4MTYxKSxFbihsLDB8bmkoMHxhW2FbYVsoYz1sKzEyfDApPj4yXT4+Ml0+PjJdKSksRW4obCw3ODE4MSksRW4obCwwfG5pKDB8YVs0KygwfGFbYVtjPj4yXT4+Ml0pPj4yXSkpLEVuKGwsNzgxOTEpLEVuKGwsMHxuaSgwfGFbOCsoMHxhW2FbYz4+Ml0+PjJdKT4+Ml0pKSxF''@;'; + put 'put ''bihsLDc4MTk0KX0sZnVuY3Rpb24gTzdlKGwpe3ZhciBBLHcsYz0wLGY9MCxwPTAsbT0wO3c9bGUsbGU9bGUrMzJ8MCxBPXcrMjR8MCxtPXcrMTZ8MCxwPXcrOHwwLGY9dyxjPTB8YVsxNisobHw9MCk+PjJdLGFbNDY3MjddPX5+KCtfW2wrMjMyPj4zXS0rX1tsKzIxNj4+M10pLGFbNDY3MjZd''@;'; + put 'put ''PX5+KCtfW2wrMjI0Pj4zXS0rX1tsKzIwOD4+M10pLEVuKGwsNzY4NDApLEVuKGwsNzY4NDcpLGM9MHx0aSgwfGFbYys4Pj4yXSksMHxmZVtjPj4wXSYmKEVuKGwsNzY5MTYpLEVuKGwsMHxuaShjKSksRW4obCw3NjkyNCkpLGFbZj4+Ml09MHxBcigwfGFbbCsxNjg+PjJdLDB8YVtsKzE2ND4+''@;'; + put 'put ''Ml0pLE9yKGwsNzY5MzMsZiksRW4obCw3Njk1MyksRW4obCw3Njk4OCksRW4obCw3NzAxNiksRW4obCw3NzAyMiksRW4obCw3NzA2NSksRW4obCw3NzEwNiksRW4obCw3NzEyNSksRW4obCw3NzE0MiksRW4obCw3NzE5MCksRW4obCw3NzI0MyksRW4obCw3NzMxOSksRW4obCw3NzM5NSksRW4o''@;'; + put 'put ''bCw3NzQwNCksRW4obCw3NzQyNyksRW4obCw3NzQ1NCksRW4obCw3NzUwNyksRW4obCw3NzUyOSksRW4obCw3NzU3NCksRW4obCw3NzU4NiksRW4obCw3NzU5NiksRW4obCw3NzYyMiksRW4obCw3NzUwNyksRW4obCw3NzY3NCksRW4obCw3NzU3NCksRW4obCw3NzU4NiksRW4obCw3NzcxOCks''@;'; + put 'put ''RW4obCw3NzQyNyksRW4obCw3NzQ1NCksRW4obCw3NzUwNyksRW4obCw3NzY3NCksRW4obCw3NzU3NCksRW4obCw3NzU4NiksRW4obCw3NzU5NiksRW4obCw3NzYyMiksRW4obCw3NzUwNyksRW4obCw3NzUyOSksRW4obCw3NzU3NCksRW4obCw3NzU4NiksRW4obCw3NzczMSksRW4obCw3Nzcz''@;'; + put 'put ''OSksRW4obCw3Nzc0NSksRW4obCw3Nzc1OSksRW4obCw3Nzc2NyksRW4obCw3NzgwMCksZj0xMCsoMHxhWzQ2NzI3XSl8MCxhW3A+PjJdPWFbNDY3MjZdLGFbcCs0Pj4yXT1mLE9yKGwsNzc4NzcscCksRW4obCw3NzkwNyksRW4obCw3NzkxNiksRW4obCw3Nzk3NCksRW4obCw3Nzk4NCksRW4o''@;'; + put 'put ''bCw3ODA0OSkscD0wfGFbNDY3MjddLGFbbT4+Ml09YVs0NjcyNl0sYVttKzQ+PjJdPXAsT3IobCw3ODA4NixtKSxtPTB8YVs0NjcyN10sYVtBPj4yXT1hWzQ2NzI2XSxhW0ErND4+Ml09bSxPcihsLDc4MTE0LEEpLGxlPXd9LGZ1bmN0aW9uIFI3ZShsKXtFbihsfD0wLDc2MzkxKSxFbihsLDc2''@;'; + put 'put ''NDAzKSxFbihsLDc2NDExKSxFbihsLDc2NDc0KSxFbihsLDc2NDAzKSxFbihsLDc2NTE5KSxFbihsLDc2NTY4KSxFbihsLDc2NjIyKSxFbihsLDc2NDAzKSxFbihsLDc2NzIyKSxFbihsLDc2NzcxKSxFbihsLDc2NDAzKSxFbihsLDc2ODIzKX0sZnVuY3Rpb24gUDdlKGwpe0VuKGx8PTAsNzYz''@;'; + put 'put ''NDMpfSxmdW5jdGlvbiBWN2UobCl7dmFyIGMsZixwO2M9bGUsbGU9bGUrMTZ8MCxmPWMrOHwwLHA9YyxFbihsfD0wLDgwNDUxKSxFbihsLDgwNDY2KSxFbihsLDgwNTA1KSxFbihsLDgwNTU0KSxhW3A+PjJdPTEzNzMxNCxhW3ArND4+Ml09ODA2NDIsT3IobCw4MDYyMyxwKSxhW2Y+PjJdPTEz''@;'; + put 'put ''NzE5OCxhW2YrND4+Ml09ODA2NDgsT3IobCw4MDYyMyxmKSxsZT1jfSxmdW5jdGlvbiBWMihsKXt2YXIgYyxmLHAsbSxBLHcsYjtjPWxlLGxlPWxlKzY0fDAsZj1jKzh8MCxhWyhiPWMpPj4yXT0wfHRpKDB8YVs4KygwfGFbMTYrKGx8PTApPj4yXSk+PjJdKSxPcihsLDc5NDA0LGIpLEE9LjUq''@;'; + put 'put ''K19bbCszNzY+PjNdKitfW2wrNDk2Pj4zXSxtPTE4MCorWmYoLjAwMjAwMDAwMDA5NDk5NDkwMjYqKHc9LjUqK19bbCszNjg+PjNdKitfW2wrNDg4Pj4zXSkpKi42MzY2MTk3NzIzNjc1ODE0LHA9MTgwKitaZiguMDAyMDAwMDAwMDk0OTk0OTAyNipBKSouNjM2NjE5NzcyMzY3NTgxNCxfW2Y+''@;'; + put 'put ''PjNdPXcsX1tmKzg+PjNdPUEsX1tmKzE2Pj4zXT0tNTAwLF9bZisyND4+M109dyxfW2YrMzI+PjNdPUEsX1tmKzQwPj4zXT0wLF9bZis0OD4+M109MS4yKihtPnA/bTpwKSxPcihsLDc5NDI2LGYpLEVuKGwsNzk1NzMpLEVuKGwsODA0MDMpLGxlPWN9LGZ1bmN0aW9uIGo3ZShsKXtFbihsfD0w''@;'; + put 'put ''LDc5Mzg3KX0sZnVuY3Rpb24gbm8obCl7RW4obHw9MCw3OTM0MCl9LGZ1bmN0aW9uIHo3ZShsKXtFbihsfD0wLDc5MzIyKX0sZnVuY3Rpb24gYVkobCl7RW4obHw9MCw3OTMwNil9LGZ1bmN0aW9uIEc3ZShsKXtFbihsfD0wLDc5Mjg1KSxqbls0NjcyOF09K2puWzQ2NzI4XS0yfSxmdW5jdGlv''@;'; + put 'put ''biBsWShsKXtFbihsfD0wLDc5MjY2KX0sZnVuY3Rpb24gR2llKGwpe3ZhciBjLGY7Yz1sZSxsZT1sZSsxNnwwLGFbKGY9Yyk+PjJdPTB8dGkoMHxhWzgrKDB8YVsxNisobHw9MCk+PjJdKT4+Ml0pLE9yKGwsNzkyNDQsZiksbGU9Y30sZnVuY3Rpb24gVzdlKGwpe0VuKGx8PTAsNzkyMjgpfSxm''@;'; + put 'put ''dW5jdGlvbiBZN2UobCl7RW4obHw9MCw3OTIxMCksam5bNDY3MjhdPStqbls0NjcyOF0tNX0sZnVuY3Rpb24gVTdlKGwpe0VuKGx8PTAsNzkxOTQpLGpuWzQ2NzI4XT0ram5bNDY3MjhdKzV9LGZ1bmN0aW9uICQ3ZShsKXt2YXIgYyxmLHAsQSxiLGssbT0wLHc9MDtjPWxlLGxlPWxlKzMyfDAs''@;'; + put 'put ''Zj1jKzI0fDAscD1jKzE2fDAsbT0wfGFbMTYrKGx8PTApPj4yXSxrPTB8YVsodz0wfGFbYVtsKzEyPj4yXT4+Ml0pPj4yXSxiPTB8YVt3KzQ+PjJdLHc9MHxhW3crOD4+Ml0sYVsoQT1jKT4+Ml09ODEwOTQsYVtBKzQ+PjJdPWssYVtBKzg+PjJdPWIsYVtBKzEyPj4yXT13LE9yKGwsODM3MDQs''@;'; + put 'put ''QSksbT0wfHRpKDB8YVttKzg+PjJdKSxhW3A+PjJdPTgxMDk0LGFbcCs0Pj4yXT1tLE9yKGwsODM3MzYscCksYVtmPj4yXT04MTA5NCxPcihsLDgzNzUwLGYpLGxlPWN9LGZ1bmN0aW9uIHE3ZShsKXt2YXIgYyxmO2x8PTAsYz1sZSxsZT1sZSsxNnwwLGFbKGY9Yyk+PjJdPTgxMDk0LE9yKGws''@;'; + put 'put ''ODM2NTIsZiksbGU9Y30sZnVuY3Rpb24gZXZlKGwpe3ZhciBmLG0sQSx3LGIsTSxELFIsRyxLLHBlLGdlLGJlLE9lLExlLFJlLEhlLFZlLHFlLG50LFdlLG90LFN0LGt0LHN0LEV0LFp0LGN0LGJ0LGFuLFNuLEhuLHVyLEhyLEVyLGZyLERyLEpyLExyLGwwLFZpLGM9MCxwPTAsaz0wO1ZpPWxl''@;'; + put 'put ''LGxlPWxlKzMwNHwwLGwwPVZpKzI5NnwwLExyPVZpKzI4OHwwLEpyPVZpKzI3MnwwLGZyPVZpKzI2NHwwLEVyPVZpKzI1NnwwLEhyPVZpKzI0OHwwLHVyPVZpKzI0MHwwLEhuPVZpKzIzMnwwLFNuPVZpKzIyNHwwLGFuPVZpKzIxNnwwLGJ0PVZpKzIwOHwwLGN0PVZpKzIwMHwwLFp0PVZpKzE5''@;'; + put 'put ''MnwwLEV0PVZpKzE4NHwwLHN0PVZpKzE3NnwwLGt0PVZpKzE2OHwwLFN0PVZpKzE2MHwwLG90PVZpKzE1MnwwLG50PVZpKzE0NHwwLHFlPVZpKzEzNnwwLFZlPVZpKzEyOHwwLEhlPVZpKzEyMHwwLFJlPVZpKzExMnwwLExlPVZpKzEwNHwwLE9lPVZpKzk2fDAsYmU9VmkrODh8MCxnZT1WaSs4''@;'; + put 'put ''MHwwLHBlPVZpKzcyfDAsSz1WaSs2NHwwLEc9VmkrNTZ8MCxSPVZpKzQ4fDAsRHI9VmkrNDB8MCxXZT1WaSsyNHwwLEQ9VmkrMTZ8MCxNPVZpLEE9MHxhWzQ1NisobHw9MCk+PjJdLHc9MHxhW2wrNDYwPj4yXSxiPTB8YVtsKzQ2ND4+Ml0saz0wfGFbbCs0Njg+PjJdLG09bCszNjB8MDtlOmRv''@;'; + put 'put ''e2lmKDB8YVs0MDI1XSl7c3dpdGNoKDB8YVttPj4yXSl7Y2FzZSA5MDpjYXNlIDA6YnJlYWsgZX1ZQSgpLGFbNDAyNV09MH19d2hpbGUoMCk7cD0uMDEzODg4ODg4ODg4ODg4ODg4KigrKDB8ayktKygwfHcpKSxjPS4wMTM4ODg4ODg4ODg4ODg4ODgqKCsoMHxiKS0rKDB8QSkpLGY9KGs9OTA9''@;'; + put 'put ''PSgwfGFbbT4+Ml0pKT9wOmMscD1rP2M6cCxfW00+PjNdPWYsX1tNKzg+PjNdPXAsT3IobCw4MTI4MSxNKSxhW0Q+PjJdPTgxMDk0LE9yKGwsODEyOTYsRCksZj4wPyhjPStmdW5jdGlvbiBqdWUobCl7dmFyIGM9MCxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wO19bU2k+PjNdPWw9''@;'; + put 'put ''K2wsYz0wfGFbU2k+PjJdLHA9KDB8KGY9MHxhW1NpKzQ+PjJdKSk8MDtkb3tpZihwfGY+Pj4wPDEwNDg1NzYpe2lmKDA9PSgwfGMpJjA9PSgyMTQ3NDgzNjQ3JmZ8MCkpe2w9LTEvKGwqbCk7YnJlYWt9aWYocCl7bD0obC1sKS8wO2JyZWFrfV9bU2k+PjNdPTB4NDAwMDAwMDAwMDAwMDAqbCxm''@;'; + put 'put ''PTB8YVtTaSs0Pj4yXSxwPS0xMDc3LGM9MHxhW1NpPj4yXSxtPTk7YnJlYWt9Zj4+PjA8PTIxNDY0MzUwNzEmJigwPT0oMHxjKSYhMCYxMDcyNjkzMjQ4PT0oMHxmKT9sPTA6KHA9LTEwMjMsbT05KSl9d2hpbGUoMCk7cmV0dXJuIDk9PSgwfG0pJiYobT1mKzYxNDI0MnwwLGFbU2k+PjJdPWMs''@;'; + put 'put ''YVtTaSs0Pj4yXT0xMDcyMDc5MDA2KygxMDQ4NTc1Jm0pLEE9KE09KGs9KGI9K19bU2k+PjNdLTEpLyhiKzIpKSprKSpNLF9bU2k+PjNdPWItKHc9YiooLjUqYikpLGY9MHxhW1NpKzQ+PjJdLGFbU2k+PjJdPTAsYVtTaSs0Pj4yXT1mLEE9Yi0obD0rX1tTaT4+M10pLXcrayoodysoQSooQSoo''@;'; + put 'put ''LjE1MzEzODM3Njk5MjA5MzczKkErLjIyMjIyMTk4NDMyMTQ5Nzg0KSsuMzk5OTk5OTk5OTk0MDk0MikrTSooQSooQSooLjE0Nzk4MTk4NjA1MTE2NTg2KkErLjE4MTgzNTcyMTYxNjE4MDUpKy4yODU3MTQyODc0MzY2MjM5KSsuNjY2NjY2NjY2NjY2NjczNSkpKSxsPShiPShrPS4zMDEwMjk5''@;'; + put 'put ''OTU2NjM2MTE3Nyoodz0rKHArKG0+Pj4yMCl8MCkpKSsoTT0uNDM0Mjk0NDgxODc4MTY4OSpsKSkrKE0rKGstYikrKC40MzQyOTQ0ODE4NzgxNjg5KkErKDM2OTQyMzkwNzcxNTg5MzFlLTI4KncrMjUwODI5NDY3MTE2NDUyNzVlLTI3KihBK2wpKSkpKSwrbH0oZiksX1sxOTIxNF09YyxjPWMr''@;'; + put 'put ''My0rKDB8fn5jKSk6Yz0zLGM9K3FsKDEwLCtjKSxfWzE5MjE0XT1jLF9bV2U+PjNdPWMsX1tXZSs4Pj4zXT1jLE9yKGwsODE0NjUsV2UpLGFbRHI+PjJdPTgxMDk0LE9yKGwsODE1MDAsRHIpLGFbUj4+Ml09ODEwOTQsT3IobCw4MTU1OCxSKSxhW0c+PjJdPTgxMDk0LE9yKGwsODE2MTgsRyks''@;'; + put 'put ''YVtLPj4yXT04MTA5NCxPcihsLDgxNjY3LEspLGFbcGU+PjJdPTgxMDk0LE9yKGwsODE3MDYscGUpLGFbZ2U+PjJdPTgxMDk0LE9yKGwsODE3NTcsZ2UpLGFbYmU+PjJdPTgxMDk0LE9yKGwsODE4MTksYmUpLGFbT2U+PjJdPTgxMDk0LE9yKGwsODE5MjksT2UpLGFbTGU+PjJdPTgxMDk0LE9y''@;'; + put 'put ''KGwsODIwMjAsTGUpLGFbUmU+PjJdPTgxMDk0LE9yKGwsODIwNzQsUmUpLGFbSGU+PjJdPTgxMDk0LE9yKGwsODIxNDMsSGUpLE9yKGwsODIxNzksVmUpLGFbcWU+PjJdPTgxMDk0LE9yKGwsODIzMDQscWUpLGFbbnQ+PjJdPTgxMDk0LE9yKGwsODIzMzMsbnQpLE9yKGwsODIzNzMsb3QpLGFb''@;'; + put 'put ''U3Q+PjJdPTgxMDk0LE9yKGwsODI0NjYsU3QpLGFba3Q+PjJdPTgxMDk0LE9yKGwsODI1MjUsa3QpLGFbc3Q+PjJdPTgxMDk0LE9yKGwsODI2MDYsc3QpLE9yKGwsODI2NzYsRXQpLGFbWnQ+PjJdPTgxMDk0LE9yKGwsODI3NjUsWnQpLGFbY3Q+PjJdPTgxMDk0LE9yKGwsODI4NzAsY3QpLGFb''@;'; + put 'put ''YnQ+PjJdPTgxMDk0LE9yKGwsODI5NDYsYnQpLGFbYW4+PjJdPTgxMDk0LE9yKGwsODI5ODUsYW4pLGFbU24+PjJdPTgxMDk0LE9yKGwsODMwODQsU24pLGFbSG4+PjJdPTgxMDk0LE9yKGwsODMxMzAsSG4pLE9yKGwsODMyMTksdXIpLGFbSHI+PjJdPTgxMDk0LE9yKGwsODMyNjAsSHIpLGFb''@;'; + put 'put ''RXI+PjJdPTgxMDk0LE9yKGwsODMzNDMsRXIpLGFbZnI+PjJdPTgxMDk0LE9yKGwsODM0NDQsZnIpLF9bSnI+PjNdPXAsX1tKcis4Pj4zXT1mLE9yKGwsODM1MDgsSnIpLE9yKGwsODM1MzYsTHIpLE9yKGwsODM1NDQsbDApLGxlPVZpfSxmdW5jdGlvbiBhYShsKXt2YXIgYztjPWxlLGxlPWxl''@;'; + put 'put ''KzE2fDAsT3IobHw9MCw4MTI3NCxjKSxsZT1jfSxmdW5jdGlvbiBlMGUobCl7MHxHbyhsfD0wKSYmZnVuY3Rpb24gdDBlKGwpe3ZhciBBLHcsYz0wLGY9MCxwPTAsbT0wO2lmKHc9bGUsbGU9bGUrNDh8MCxBPXcrMzJ8MCxtPXcsYz0wfHhjKGx8PTAsLTEsOCksZj0wfFMxKGwsMCxtKSxhNyhs''@;'; + put 'put ''LDIsOCxtKSwocD0oMHxjKTwwKSYoZj0wPT0oMHxmKSkpaDcobCk7ZWxzZXtmP2FbbSsxNj4+Ml09MzpjPXA/ODpjLGFbbSs4Pj4yXT1jLGFbbSsyMD4+Ml09MCxwPTB8em1lKGwsQSwwKSxjPTB8YVtBPj4yXTtkb3tpZigxPT0oMHxjKSloNyhsKSxjPTA7ZWxzZXtpZigwfGFbODQrKDB8YVs4''@;'; + put 'put ''KygwfGFbbCsxNj4+Ml0pPj4yXSk+PjJdKXtoNyhsKSxjPTA7YnJlYWt9Zm9yKGFbbSsxMj4+Ml09MSxmPTA7ISgoMHxmKT49KDB8YykpOyluMGUoYz0wfGFbcCsoZjw8Mik+PjJdLGwpLGg3KGMpLGY9ZisxfDAsYz0wfGFbQT4+Ml07cjBlKGwpLFRDKDB8YVtBPj4yXSxwLGwsbSkscFkobCks''@;'; + put 'put ''aTBlKDB8YVtBPj4yXSxwLGwpLGM9MH19d2hpbGUoMCk7Zm9yKDshKCgwfGMpPj0oMHxhW0E+PjJdKSk7KUZ0KDB8YVs4KygwfGFbMTYrKDB8YVsobT1wKyhjPDwyKXwwKT4+Ml0pPj4yXSk+PjJdKSxONSgwfGFbbT4+Ml0pLG9pKGwsMHxhW20+PjJdKSxjPWMrMXwwO0Z0KHApfWxlPXd9KGwp''@;'; + put 'put ''LHQ0KGwpfSxINSxBMixmdW5jdGlvbiBHbGUobCl7dmFyIGM9MCxmPTA7Zm9yKGY9MHxEdChsfD0wKTtmOyl7Zm9yKGM9MHx3MChsLGYpO2M7KWFnKGMpLGM9MHxTMChsLGMpO29nKGYpLGY9MHx6dChsLGYpfSFmdW5jdGlvbiBXbGUobCl7bHw9MCwwIT0oMHxhWzQ3MTM0XSl8KDB8YVs0Njc5''@;'; + put 'put ''NV0pPDAmJnFOKGwpLCgwfGRpKGwpKSE9KDB8bCkmJmwyKGwsMCwxMzc0ODMpfShsKX0sZnVuY3Rpb24gU2sobCl7bHw9MDt2YXIgcCxtLGM9MCxmPTAsQT0wLHc9MCxiPTA7Zm9yKHc9NCxBPTB8QjAoNDApLGFbQT4+Ml09MCxtPStfWzIzMjkzXSxNbj0wLHA9K0NoKDEsMHxsKSxjPU1uLE1u''@;'; + put 'put ''PTAsMCE9KDB8YykmMCE9KDB8eG4pPygoZj0wfGdpKDB8YVtjPj4yXSwwfEEsMHx3KSl8fHplKDB8YywwfHhuKSxEbj14bik6Zj0tMSwxIT0oMHxmKT8oX1syMzI5M109cCxNbj0wLHNzKDEwMiwwfGwpLGM9TW4sTW49MCwwIT0oMHxjKSYwIT0oMHx4bik/KChmPTB8Z2koMHxhW2M+PjJdLDB8''@;'; + put 'put ''QSwwfHcpKXx8emUoMHxjLDB8eG4pLERuPXhuKTpmPS0xLDEhPSgwfGYpPyhBPTB8UGYoMTg3MjEyLDEsMHxBLDB8dyksdz1EbixmPU1uPTAsTW49MCwwIT0oMHxmKSYwIT0oMHx4bik/KChjPTB8Z2koMHxhW2Y+PjJdLDB8QSwwfHcpKXx8emUoMHxmLDB8eG4pLERuPXhuKTpjPS0xLGM9MSE9''@;'; + put 'put ''KDB8Yyk/MDpEbik6Yz1Ebik6Yz1EbjshKDB8Yyk7KWlmKE1uPTAsc3MoMTAzLDB8bCksYz1NbixNbj0wLDAhPSgwfGMpJjAhPSgwfHhuKT8oKGY9MHxnaSgwfGFbYz4+Ml0sMHxBLDB8dykpfHx6ZSgwfGMsMHx4biksRG49eG4pOmY9LTEsMSE9KDB8ZikpaWYoTW49MCxhMCgyMiwwfGwpLGM9''@;'; + put 'put ''TW4sTW49MCwwIT0oMHxjKSYwIT0oMHx4bik/KChmPTB8Z2koMHxhW2M+PjJdLDB8QSwwfHcpKXx8emUoMHxjLDB8eG4pLERuPXhuKTpmPS0xLDEhPSgwfGYpKWlmKDE0Jml0WzEzNisoMHxhW2wrMTY+PjJdKT4+MV0mJihNbj0wLHNzKDEwNCwwfGwpLGM9TW4sTW49MCwwIT0oMHxjKSYwIT0o''@;'; + put 'put ''MHx4bik/KChmPTB8Z2koMHxhW2M+PjJdLDB8QSwwfHcpKXx8emUoMHxjLDB8eG4pLERuPXhuKTpmPS0xLDE9PSgwfGYpKSljPURuO2Vsc2V7aWYoTW49MCxaMSgyMiwwfGwsMCksYz1NbixNbj0wLDAhPSgwfGMpJjAhPSgwfHhuKT8oKGY9MHxnaSgwfGFbYz4+Ml0sMHxBLDB8dykpfHx6ZSgw''@;'; + put 'put ''fGMsMHx4biksRG49eG4pOmY9LTEsMSE9KDB8Zikpe2I9MTI7YnJlYWt9Yz1Ebn1lbHNlIGM9RG47ZWxzZSBjPURuOzEyPT0oMHxiKSYmKF9bMjMyOTNdPW0pLEZ0KDB8QSl9LGZ1bmN0aW9uIEVzZShsKXt2YXIgYz0wLGY9MDtmb3IoZj0wfER0KGx8PTApO2Y7KXtmb3IoYz0wfHcwKGwsZik7''@;'; + put 'put ''YzspYWcoYyksYz0wfFMwKGwsYyk7b2coZiksZj0wfHp0KGwsZil9IWZ1bmN0aW9uIHhzZShsKXtzWChsfD0wKSxGdCgwfGFbMTUyKygwfGFbKGw9bCsxNnwwKT4+Ml0pPj4yXSksRnQoMHxhWzE0MCsoMHxhW2w+PjJdKT4+Ml0pfShsKX0sZnVuY3Rpb24gQVgobCl7dmFyIGIsayxNLEQsRyxL''@;'; + put 'put ''LGM9MCxmPTAscD0wLG09MCxBPTAsdz0wLFI9MDtpZihLPWxlLGxlPWxlKzExMnwwLGI9Sys0MHwwLGs9SysxNnwwLEc9SysxMDB8MCxNPUssQT1LKzg4fDAsRD1LKzU2fDAsZnVuY3Rpb24gWXNlKGwpe3ZhciBjLGY9MDtyNChsfD0wLDIpLGM9MHxlcyhsLDB8c2kobCwwLDkxMzY4LDApLDIs''@;'; + put 'put ''MiksZj02NTUzNSYoMHxlcyhsLDB8c2kobCwwLDkxMzc0LDApLGMsMikpLGl0WzE3NisoMHxhWzE2KygwfGRpKGwpKT4+Ml0pPj4xXT1mLGY9KDB8aHJbMTc2KygwfGFbMTYrKDB8ZGkobCkpPj4yXSk+PjFdKTwxMD8wfGl0WzE3NisoMHxhWzE2KygwfGRpKGwpKT4+Ml0pPj4xXToxMCxpdFsx''@;'; + put 'put ''NzYrKDB8YVsxNisoMHxkaShsKSk+PjJdKT4+MV09ZixhWzQ3MTM3XT1mJj02NTUzNSxpdFsxNzgrKDB8YVsxNisoMHxkaShsKSk+PjJdKT4+MV09KDB8Yyk8KDB8Zik/YzpmLGZ1bmN0aW9uIHdYKGwpe3ZhciBjPTAsZj0wO2ZvcihjPTB8RHQobHw9MCk7Yzspd2soYyksYz0wfHp0KGwsYyk7''@;'; + put 'put ''Zm9yKGY9MHxEdChsKTtmOyl7Zm9yKGM9MHx3MChsLGYpO2M7KWJYKGMpLGM9MHxTMChsLGMpO2Y9MHx6dChsLGYpfX0obCl9KGx8PTApLGM9MSYobT0yPT0oMHxhWzQ3MTM3XSkpLDB8R28obCkpe2lmKGZ1bmN0aW9uIFVzZShsLGMpe2x8PTA7dmFyIHAsbSxBLGY9MDtBPWxlLGxlPWxlKzE2''@;'; + put 'put ''fDAsbT1BKzh8MCxhWyhmPUErMTJ8MCk+PjJdPWFbKHA9MTA4KyhjfD0wKXwwKT4+Ml0sMiE9KDB8Rk4obCwyLGYpKSYmJHIoMCw5MTE2OSxBKSxhW3A+PjJdPWFbZj4+Ml0sX1tjKzI0Pj4zXT0rTWwobCwwfHNpKGwsMCw5MTIwMiwwKSwtMSwwKSxfW2M+PjNdPS0rTWwobCwwfHNpKGwsMCw5''@;'; + put 'put ''MTIwNCwwKSwxLjAwMDEyMzQsMCksYVtjKzQwPj4yXT0wfGVzKGwsMHxzaShsLDAsOTEyMTksMCksMjE0NzQ4MzY0NywwKSxhW2MrMTIwPj4yXT0wfGZ1bmN0aW9uIEpzZShsLGMpe2x8PTAsY3w9MDtkb3tpZihjKXtpZihsPTB8SG8obCxjKSwoKGM9MHxmZVtsPj4wXSktNDh8MCk+Pj4wPDEw''@;'; + put 'put ''KXtsPSgwfChsPTB8cjMobCkpKTw1P2w6MDticmVha31sPTB8Z0woYyk/MHx5MChsLDkxMzMwKT8wfHkwKGwsOTEzMzkpPzB8eTAobCwxMzU3MDkpPzB8eTAobCw5MTM1MCk/KGw9MD09KDB8eTAobCw5MTM2MSkpKT80OjA6MzowOjE6MjowfWVsc2UgbD0wfXdoaWxlKDApO3JldHVybiAwfGx9''@;'; + put 'put ''KGwsMHxzaShsLDAsOTEyMjYsMCkpLGFbYysxMzI+PjJdPTB8ZnVuY3Rpb24gWHNlKGwsYyl7bHw9MCxjfD0wO2Rve2lmKGMpe2lmKGw9MHxIbyhsLGMpLCgoYz0wfGZlW2w+PjBdKS00OHwwKT4+PjA8MTApe2w9KGw9MHxyMyhsKSk+Pj4wPDM/bDoxO2JyZWFrfWw9MHxnTChjKT8wIT0oMHx5''@;'; + put 'put ''MChsLDEzNTcwOSkpJiYwIT0oMHx5MChsLDEzNzMwOCkpPzAhPSgwfHkwKGwsOTk3MzApKSYmMCE9KDB8eTAobCwxMDc2NTIpKSYmMCE9KDB8eTAobCwxMDc2NTcpKSYmKGw9MD09KDB8eTAobCw5MTMyNSkpKT8yOjE6MDoxfWVsc2UgbD0xfXdoaWxlKDApO3JldHVybiAwfGx9KGwsMHxzaShs''@;'; + put 'put ''LDAsOTEyMzYsMCkpLGFbYysxMzY+PjJdPTAsYVtjKzExMj4+Ml09MjU1JigwfG5nKDB8TGkobCw5MTI0NSksMCkpLGFbYysxMjg+PjJdPTI1NSYoMHxuZygwfExpKGwsOTEyNTQpLDEpKSxfW2MrMTUyPj4zXT0rTWwobCwwfHNpKGwsMCw5MTI2OSwwKSwwLC0xNzk3NjkzMTM0ODYyMzE1N2Uy''@;'; + put 'put ''OTIpLGY9MHxlcyhsLDB8c2kobCwwLDkxMjc4LDApLDAsMCksYVsobD1jKzE2MHwwKT4+Ml09ZiwoMHxmKT40JiYoYVttPj4yXT1mLCRyKDAsOTEyOTEsbSksYVtsPj4yXT0wKSxsZT1BfShsLFI9MHxLc2UoKSksYzJlKGwsaywwKSxtJjE4PT0oMHxhW2s+PjJdKT8oYVtSKzEyND4+Ml09YVtr''@;'; + put 'put ''Kzg+PjJdLF9bUisxNDQ+PjNdPStfW2srMTY+PjNdLFc3KEEsbCksMHxmZVtBKzg+PjBdPyhwPS4wMTM4ODg4ODg4ODg4ODg4ODgqK2puW0ErND4+Ml0sZj0uMDEzODg4ODg4ODg4ODg4ODg4KitqbltBPj4yXSk6KHA9LjA1NTU1NTU1NTU1NTU1NTU1LGY9LjA1NTU1NTU1NTU1NTU1NTU1KSxf''@;'; + put 'put ''W00+PjNdPWYsX1tNKzg+PjNdPXAsYz0wKTphW1IrMTI0Pj4yXT0tMSx3PTB8clcobCxHLDApLDE9PSgwfGFbRz4+Ml0pKWFbYj4+Ml09YVtNPj4yXSxhW2IrND4+Ml09YVtNKzQ+PjJdLGFbYis4Pj4yXT1hW00rOD4+Ml0sYVtiKzEyPj4yXT1hW00rMTI+PjJdLHlYKGwsUixiKSwwfGMmJno3''@;'; + put 'put ''KGwsayksSzYobCksYz0wO2Vsc2V7Zm9yKGE3KGwsMiw4LEQpLGFbRCsxMj4+Ml09MSxBPTA9PSgwfGMpLG09MDshKCgwfG0pPj0oMHwoYz0wfGFbRz4+Ml0pKSk7KXhDKGM9MHxhW3crKG08PDIpPj4yXSksYVtiPj4yXT1hW00+PjJdLGFbYis0Pj4yXT1hW00rND4+Ml0sYVtiKzg+PjJdPWFb''@;'; + put 'put ''TSs4Pj4yXSxhW2IrMTI+PjJdPWFbTSsxMj4+Ml0seVgoYyxSLGIpLEF8fHo3KGMsaykscjQoYywyKSxLNihjKSxtPW0rMXwwO1RDKGMsdyxsLEQpLGM9MH1mb3IoOyEoKDB8Yyk+PSgwfGFbRz4+Ml0pKTspb2kobCwwfGFbdysoYzw8Mik+PjJdKSxjPWMrMXwwO0Z0KHcpLGRWKFIpfXQ0KGwp''@;'; + put 'put ''LGxlPUt9LGZ1bmN0aW9uIGU4KGwpe3ZhciBjPTAsZj0wO2ZvcihmPTB8RHQobHw9MCk7Zjspe2ZvcihjPTB8dzAobCxmKTtjOylhZyhjKSxjPTB8UzAobCxjKTtvZyhmKSxmPTB8enQobCxmKX19LGZ1bmN0aW9uIG1zZShsKXt2YXIgUixnZSxiZSxjPTAsZj0wLHA9MCxtPTAsQT0wLHc9MCxi''@;'; + put 'put ''PTAsaz0wLE09MCxEPTAsRz0wLEs9MCxwZT0wO2lmKGJlPWxlLGxlPWxlKzgwfDAsaz1iZSszMnwwLEE9YmUrMjR8MCxtPWJlKzE2fDAsdz1iZSxnZT1iZSs3MnwwLFI9YmUrNDB8MCwwfEdvKGx8PTApKXtpZihmdW5jdGlvbiBidmUobCl7cjQobHw9MCwyKSxpdFsxNzYrKDB8YVtsKzE2Pj4y''@;'; + put 'put ''XSk+PjFdPTIsYVs0NzEzN109MixmdW5jdGlvbiBGNyhsKXt2YXIgcCxtLGM9MCxmPTA7Zm9yKHA9MHx2cig1NiooYz0wfEdvKGx8PTApKXwwKSxjPTB8dnIoNCsoYzw8Mil8MCksYVsxNTIrKDB8YVsobT1sKzE2fDApPj4yXSk+PjJdPWMsYz0wfER0KGwpLGY9MDtjOyl3ayhjKSxhWzExMiso''@;'; + put 'put ''MHxhW2MrMTY+PjJdKT4+Ml09cCsoNTYqZnwwKSxhWygwfGFbMTUyKygwfGFbbT4+Ml0pPj4yXSkrKGY8PDIpPj4yXT1jLGM9MHx6dChsLGMpLGY9ZisxfDA7Zm9yKGY9MHxEdChsKTtmOyl7Zm9yKGM9MHx3MChsLGYpO2M7KWdzZShjKSxjPTB8UzAobCxjKTtmPTB8enQobCxmKX19KGwpfShs''@;'; + put 'put ''KSwocD0wfExpKGwsOTU3MzgpKT8wfGZlW3A+PjBdPyhjPTB8R3IobCxwLDApKT9wZT0wOihhW20+PjJdPXAsJHIoMCw5MDQ0OCxtKSwkcigzLDkwNDg4LEEpLGM9MCxwZT0xKTooYz0wLHBlPTEpOihjPTAscGU9MCksRD0wIT0oMHwoTT0wfHNpKGwsMSw5NTczOCwwKSkpLDB8KHA9MHxMaShs''@;'; + put 'put ''LDE0MDc0MikpJiYwfGZlW3A+PjBdJiYoYj13Kzh8MCxhW2s+PjJdPXcsYVtrKzQ+PjJdPWIsMT09KDB8aWwocCwxMDU1MDMsaykpKSYmKF9bYj4+M109K19bdz4+M10pLDB8R28obCkpe2lmKGs9MHxyVyhsLGdlLDApLDE9PSgwfGFbZ2U+PjJdKSl7bT0wIT0oMHxjKTtkb3tpZihtKWY9Yztl''@;'; + put 'put ''bHNle2lmKEQmJjB8KGY9MHx2c2UobCxNKSkpYnJlYWs7Zj0wfX13aGlsZSgwKTtwPTB8JFYobCxmKSwwIT0oMHxmKXwxXkR8fFZsKHAsTSwxNDI0NjMpLEs9MTYrKDB8RHQobCkpfDAsRnQoMHxhWzExMisoMHxhW0s+PjJdKT4+Ml0pLGFbMTEyKygwfGFbSz4+Ml0pPj4yXT0wLER5KGwpLEs2''@;'; + put 'put ''KGwpLGM9MD09KDB8cGUpfG0/YzpwfWVsc2V7Zm9yKGE3KGwsMiw4LFIpLGFbUisxMj4+Ml09MCxiPTA9PSgwfHBlKSx3PTA7ISgoMHx3KT49KDB8YVtnZT4+Ml0pKTspe209MHxhW2srKHc8PDIpPj4yXSwoZj0wIT0oMHxjKSkmJjAhPSgwfE5yKG0sYykpP3A9YzpLPTIzO2Rve2lmKDIzPT0o''@;'; + put 'put ''MHxLKSl7aWYoSz0wLEQmJjB8KEc9MHx2c2UobSxNKSkpe3A9RzticmVha31wPTB9fXdoaWxlKDApO3hDKG0pLEE9MHwkVihtLHApLGM9YnxmP2M6QSxEJiYwPT0oMHxwKXwoMHxwKT09KDB8YykmJlZsKEEsTSwxNDI0NjMpLER5KG0pLHc9dysxfDB9Sz0xNisoMHxEdChsKSl8MCxGdCgwfGFb''@;'; + put 'put ''MTEyKygwfGFbSz4+Ml0pPj4yXSksYVsxMTIrKDB8YVtLPj4yXSk+PjJdPTAsVEMoMHxhW2dlPj4yXSxrLGwsUiksSzYobCl9Zm9yKGY9MDshKCgwfGYpPj0oMHxhW2dlPj4yXSkpOylvaShsLDB8YVtrKyhmPDwyKT4+Ml0pLGY9ZisxfDA7RnQoayl9MHxwZSYma2MobCw5NTczOCwwfHRpKGMp''@;'; + put 'put ''KSx0NChsKX1sZT1iZX0sZnVuY3Rpb24gX3ZlKGwpe3ZhciBjPTAsZj0wO2lmKDB8KGM9MHxEdChsfD0wKSkpe2Zvcig7Yzspe2ZvcihmPTB8dzAobCxjKTtmOylhZyhmKSxmPTB8UzAobCxmKTtvZyhjKSxjPTB8enQobCxjKX0hZnVuY3Rpb24gcUoobCl7RnQoMHxhWzE1MisoMHxhWzE2Kyhs''@;'; + put 'put ''fD0wKT4+Ml0pPj4yXSksKDB8ZGkobCkpIT0oMHxsKSYmbDIobCwwLDEzNzQ4Myl9KGwpfX0sZnVuY3Rpb24gdlgobCl7MHxHbyhsfD0wKSYmKGZ1bmN0aW9uIEd2ZShsKXtyNChsfD0wLDIpLGl0WzE3NisoMHxhW2wrMTY+PjJdKT4+MV09MixhWzQ3MTM3XT0yLGZ1bmN0aW9uIGpzZShsKXt2''@;'; + put 'put ''YXIgcCxtLGM9MCxmPTA7Zm9yKHA9MHx2cigoMHxHbyhsfD0wKSk8PDIpLGM9MHx2cig0KygoMHxHbyhsKSk8PDIpfDApLGFbMTUyKygwfGFbKG09bCsxNnwwKT4+Ml0pPj4yXT1jLGM9MHxEdChsKSxmPTA7Yzspd2soYyksYVsxMTIrKDB8YVtjKzE2Pj4yXSk+PjJdPXArKGY8PDIpLGFbKDB8''@;'; + put 'put ''YVsxNTIrKDB8YVttPj4yXSk+PjJdKSsoZjw8Mik+PjJdPWMsYz0wfHp0KGwsYyksZj1mKzF8MDtmb3IoZj0wfER0KGwpO2Y7KXtmb3IoYz0wfHcwKGwsZik7YzspV3ZlKGMpLGM9MHxTMChsLGMpO2Y9MHx6dChsLGYpfX0obCl9KGwpLGZ1bmN0aW9uIHpzZShsKXt2YXIgcCx3LGM9MCxmPTAs''@;'; + put 'put ''bT0wLEE9MCxiPTA7aWYodz1sZSxsZT1sZSs0OHwwLGM9dyszMnwwLHA9dywwfEdvKGx8PTApKXtpZihBPTB8ZnVuY3Rpb24gWnNlKGwsYyl7bHw9MCxjfD0wO3ZhciBrLEQsZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsTT0wO2ZvcihEPWxlLGxlPWxlKzE2fDAsaz1ELGZlWyhNPUQrNHwwKT4+''@;'; + put 'put ''MF09MHxmZVsxODU5Nl0sZmVbTSsxPj4wXT0wfGZlWzE4NTk3XSxmZVtNKzI+PjBdPTB8ZmVbMTg1OThdLGZlW00rMz4+MF09MHxmZVsxODU5OV0saDAoTT0wfG9jKDkxMTU2LE0sMCksOTExNjQsMjgwLDEpLGFbMTQwKygwfGFbbCsxNj4+Ml0pPj4yXT1NLGY9MHxEdChsKTtmOykwfGFbYVsx''@;'; + put 'put ''MTIrKDB8YVsocD1mKzE2fDApPj4yXSk+PjJdPj4yXXx8KGI9MHxZdmUoTSwwfHRpKGYpLGYpLGFbYVsxMTIrKDB8YVtwPj4yXSk+PjJdPj4yXT1iKSxmPTB8enQobCxmKTtmb3IocD0wfER0KGwpO3A7KXtmb3IoZj0wfHcwKGwscCk7ZjspKDB8KG09MHxhW2FbMTEyKygwfGFbMTYrKDB8YVso''@;'; + put 'put ''Mz09KDB8KEE9MyZhW2Y+PjJdKSk/ZjpmKzQ4fDApKzQwPj4yXSk+PjJdKT4+Ml0+PjJdKSkhPSgwfChBPTB8YVthWzExMisoMHxhWzE2KygwfGFbKDI9PSgwfEEpP2Y6ZistNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXT4+Ml0pKSYmaDAoMHxLYShNLG0sQSwwLDEpLDEzNzQ2MCwxNzYsMSksZj0w''@;'; + put 'put ''fFMwKGwsZik7cD0wfHp0KGwscCl9Zm9yKGI9MHxyVyhNLGssMCkscD0wOyEoKDB8cCk+PSgwfGFbaz4+Ml0pKTspe2ZvcihmPTB8RHQoQT0wfGFbYisocDw8Mik+PjJdKTtmOyl7Zm9yKG09MHx3MChsLDB8YVthWzExMisoMHxhW2YrMTY+PjJdKT4+Ml0+PjJdKTttOykoMHxmKSE9KDB8KHc9''@;'; + put 'put ''MHxhW2FbMTEyKygwfGFbMTYrKDB8YVsoMj09KDMmYVttPj4yXXwwKT9tOm0rLTQ4fDApKzQwPj4yXSk+PjJdKT4+Ml0+PjJdKSkmJihoMCh3PTB8S2EoTSxmLHcsMCwxKSwxMzc0NjAsMTc2LDEpLFpkKEEsdywxKSksbT0wfFMwKGwsbSk7Zj0wfHp0KEEsZil9cD1wKzF8MH1mb3IoZj0wfER0''@;'; + put 'put ''KE0pO2Y7KXtmb3IocD0wfHcwKE0sZik7cDspbD0wfHZyKDgpLGFbMTIwKygwfGFbcCsxNj4+Ml0pPj4yXT1sLHA9MHxTMChNLHApO2Y9MHx6dChNLGYpfXJldHVybiBhW2M+PjJdPWFbaz4+Ml0sbGU9RCwwfGJ9KGwsYyksbT0wfGFbYz4+Ml0sYz0wfGFbQT4+Ml0sMT09KDB8bSkpX3goYyxs''@;'; + put 'put ''KSxHc2UoMHxhW0E+PjJdKSxEeShsKTtlbHNle2ZvcihmPTB8YVtjKzYwPj4yXSxhNyhsLDIsOCxwKSxjPTA7ISgoMHxjKT49KDB8bSkpOylfeChiPTB8YVtBKyhjPDwyKT4+Ml0sbCksRHkoYiksYz1jKzF8MDtmb3IoVEMobSxBLGYscCksYz0wOyEoKDB8Yyk+PSgwfG0pKTspR3NlKDB8YVtB''@;'; + put 'put ''KyhjPDwyKT4+Ml0pLGM9YysxfDB9RnQoQSl9bGU9d30obCksRnQoMHxhWzExMisoMHxhWzE2KygwfER0KGwpKT4+Ml0pPj4yXSksSzYobCksdDQobCkpfSxmdW5jdGlvbiBVdmUobCl7dmFyIGM9MCxmPTAscD0wO2lmKDB8KGM9MHxEdChsfD0wKSkpe2ZvcihmdW5jdGlvbiBXc2UobCl7dmFy''@;'; + put 'put ''IGM9MCxmPTA7Zm9yKGY9MHxEdChsfD0wKTtmOyl7Zm9yKGM9MHx3MChsLGYpO2M7KUZ0KDB8YVsxMjArKDB8YVtjKzE2Pj4yXSk+PjJdKSxjPTB8UzAobCxjKTtGdCgwfGFbMTEyKygwfGFbKGM9ZisxNnwwKT4+Ml0pPj4yXSksRnQoMHxhWzEzMisoMHxhW2M+PjJdKT4+Ml0pLGY9MHx6dChs''@;'; + put 'put ''LGYpfUMxKGwpfSgwfGFbMTQwKygwfGFbKHA9bCsxNnwwKT4+Ml0pPj4yXSk7Yzspe2ZvcihmPTB8dzAobCxjKTtmOylhZyhmKSxmPTB8UzAobCxmKTtvZyhjKSxjPTB8enQobCxjKX1GdCgwfGFbMTUyKygwfGFbcD4+Ml0pPj4yXSksKDB8ZGkobCkpIT0oMHxsKSYmbDIobCwwLDEzNzQ4Myl9''@;'; + put 'put ''fSxmdW5jdGlvbiBabGUobCl7bHw9MCxhWzQ3MTM0XT0xLEEyKGwpLGFbNDcxMzRdPTB9LGZ1bmN0aW9uIHpsZShsKXtsfD0wLGFbNDcxMzRdPTIsQTIobCksYVs0NzEzNF09MH0sZnVuY3Rpb24gZVgobCl7KGZ1bmN0aW9uIEN2ZShsKXthWzQ3MTQ3XT0wfHNpKGx8PTAsMSwxMDgyMzAsMTA4''@;'; + put 'put ''MjM2KSxyNChsLDIpLGl0WzE3NisoMHxhW2wrMTY+PjJdKT4+MV09MixhWzQ3MTM3XT0yLHRYKGwsMCksZnVuY3Rpb24ga3ZlKGwpe3ZhciBtLEEsYz0wLGY9MCxwPTA7Zm9yKG09MHx2cigoMHxHbyhsfD0wKSk8PDIpLGM9MHx2cig0KygoMHxHbyhsKSk8PDIpfDApLGFbMTUyKygwfGFbKEE9''@;'; + put 'put ''bCsxNnwwKT4+Ml0pPj4yXT1jLGM9MHxEdChsKSxmPTA7Yzspe2ZvcihoMChjLDEzNzQ0NywzMDQsMSksYVsxMTIrKDB8YVtjKzE2Pj4yXSk+PjJdPW0rKGY8PDIpLGFbKDB8YVsxNTIrKDB8YVtBPj4yXSk+PjJdKSsoZjw8Mik+PjJdPWMsb1YoYykscD0wfHcwKGwsYyk7cDspU3ZlKHApLHA9''@;'; + put 'put ''MHxTMChsLHApO2M9MHx6dChsLGMpLGY9ZisxfDB9fShsKX0pKGx8PTApLDA9PSgwfEdvKGwpKSYmISgwfGFbMTgwKygwfGFbbCsxNj4+Ml0pPj4yXSl8fChmdW5jdGlvbiBBSyhsKXt2YXIgYyxwLG0sZj0wO2M9bGUsbGU9bGUrMzJ8MCxwPWMsZj0wfHNpKGx8PTAsMSw5NDEyMiwwKSxmPShs''@;'; + put 'put ''PTB8bzFlKGwsMHxzaShsLDAsOTQxMjIsMCksZiwwfHNpKGwsMCw5NDEyNywwKSkpKzE2fDAsZnVuY3Rpb24gSTllKGwsYyxmLHAsbSl7Zj0rZixwPStwLG09K20sX1sobHw9MCk+PjNdPWM9K2MsX1tsKzg+PjNdPWYsX1tsKzE2Pj4zXT1wLF9bbCsyND4+M109bX0ocCwwLDAsbT0rRDAoKygr''@;'; + put 'put ''X1tsPj4zXSsuMSkpLG0pLGFbZj4+Ml09YVtwPj4yXSxhW2YrND4+Ml09YVtwKzQ+PjJdLGFbZis4Pj4yXT1hW3ArOD4+Ml0sYVtmKzEyPj4yXT1hW3ArMTI+PjJdLGFbZisxNj4+Ml09YVtwKzE2Pj4yXSxhW2YrMjA+PjJdPWFbcCsyMD4+Ml0sYVtmKzI0Pj4yXT1hW3ArMjQ+PjJdLGFbZisy''@;'; + put 'put ''OD4+Ml09YVtwKzI4Pj4yXSx5SyhsKSx3SyhsKSxhMWUobCksbGU9Y30obCksdDQobCkpfSxmdW5jdGlvbiBFdmUobCl7dmFyIGM9MCxmPTA7aWYoMHwoYz0wfER0KGx8PTApKSl7Zm9yKEZ0KDB8YVsxMTIrKDB8YVtjKzE2Pj4yXSk+PjJdKTtjOyl7Zm9yKGY9MHx3MChsLGMpO2Y7KWFnKGYp''@;'; + put 'put ''LGY9MHxTMChsLGYpO29nKGMpLGM9MHx6dChsLGMpfSFmdW5jdGlvbiB4dmUobCl7RnQoMHxhWzE1MisoMHxhWzE2KyhsfD0wKT4+Ml0pPj4yXSksKDB8ZGkobCkpIT0oMHxsKSYmbDIobCwwLDEzNzQ4Myl9KGwpfX0sZnVuY3Rpb24gQXNlKGwpe3ZhciBjPTAsZj0wLHA9MDtpZihmdW5jdGlv''@;'; + put 'put ''biB5c2UobCl7dmFyIGM9MCxmPTA7Zm9yKHI0KGx8PTAsMiksaXRbMTc2KygwfGFbbCsxNj4+Ml0pPj4xXT0yLGFbNDcxMzddPTIsYz0wfER0KGwpO2M7KXdrKGMpLGM9MHx6dChsLGMpO2ZvcihmPTB8RHQobCk7Zjspe2ZvcihjPTB8dzAobCxmKTtjOyloMChjLDEzNzQ2MCwxNzYsMSksTDco''@;'; + put 'put ''YyksYz0wfFMwKGwsYyk7Zj0wfHp0KGwsZil9fShsfD0wKSxyWChsLDApLHdzZShsLDApLGFWKGwsMCksMHxhWzg0KygwfGFbOCsoYz0wfGFbbCsxNj4+Ml0pPj4yXSk+PjJdKXtmb3IoYz0wfER0KGwpO2M7KV9bKGY9MHxhWzEzMisocD0wfGFbYysxNj4+Ml0pPj4yXSk+PjNdPS4wMTM4ODg4''@;'; + put 'put ''ODg4ODg4ODg4ODgqK19bcCsxNj4+M10sX1tmKzg+PjNdPS4wMTM4ODg4ODg4ODg4ODg4ODgqK19bcCsyND4+M10sYz0wfHp0KGwsYyk7Q0QobCwxKX1lbHNlKGM9MTQmaXRbYysxMzY+PjFdKTw8MTY+PjE2JiZfRChsLDY1NTM1JmMpO3Q0KGwpfSxmdW5jdGlvbiBhWChsKXt2YXIgYz0wO2Zv''@;'; + put 'put ''cihjPTB8RHQobHw9MCk7Yzspb2coYyksYz0wfHp0KGwsYyk7bFgobCl9LGZ1bmN0aW9uIGdDKGwpe30sZnVuY3Rpb24gUmFlKGwpe2x8PTA7dmFyIG50LFdlLG90LGt0LGFuLEhyLERyLEpyLExyLGwwLFZpLGM9MCxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0w''@;'; + put 'put ''LEs9MCxwZT0wLGdlPTAsYmU9MCxPZT0wLExlPTAsUmU9MCxIZT0wLFZlPTAscWU9MCxTdD0wLHN0PTAsRXQ9MCxadD0wLGN0PTAsYnQ9MCxTbj0wLEhuPTAsdXI9MCxFcj0wLGZyPTAsT2k9MDtWaT1sZSxsZT1sZSsxNDR8MCxrdD1WaSsxMTJ8MCxadD1WaSsxMDR8MCxXZT1WaSs5NnwwLG90''@;'; + put 'put ''PVZpKzg4fDAsQT1WaSs4MHwwLERyPVZpKzY0fDAsTHI9VmkrNDh8MCxhbj1WaSs0MHwwLFNuPVZpKzMyfDAsdz1WaSsyNHwwLFI9VmkrMTZ8MCxudD1WaSsxMzZ8MCxxZT1WaSsxMjh8MCxzdD1WaSxsMD0wfHZyKDQ4KSxtPTE2MTY9PSgwfChFcj0wfGFbOCsoMHxhWzgrKDB8YVsoSnI9bCsx''@;'; + put 'put ''NnwwKT4+Ml0pPj4yXSk+PjJdKSksZnI9MHxhW0VyPj4yXSxjPTB8YVtFcis0Pj4yXSxmPTB8YVtFcis4Pj4yXSxrPStfW0VyKzE2Pj4zXSxNPStfW0VyKzMyPj4zXSxEPStfW0VyKzI0Pj4zXSxmcnw9MjU1JigwfHQxKDB8TGkobCwxMDU1MTEpKSk7ZG97aWYobSlwPTAsYj0wO2Vsc2V7aWYo''@;'; + put 'put ''IWZyKXtwPSsoMHx+figocD03MiorX1s0MCsoRXI9MHxhW0pyPj4yXSk+PjNdKSsocD49MD8uNTotLjUpKSksYj0rKDB8fn4oKGI9NzIqK19bRXIrMzI+PjNdKSsoYj49MD8uNTotLjUpKSk7YnJlYWt9KGI9K0ZhZShsKSk+MHx8KGI9KygwfH5+KChiPTcyKigocD0rX1szMisoRXI9MHxhW0py''@;'; + put 'put ''Pj4yXSk+PjNdKTwoYj0rX1tFcis0MD4+M10pP3A6YikpKyhiPj0wPy41Oi0uNSkpKSkscD1ifX13aGlsZSgwKTtpZihFcj0wfGVzKGwsMHxhWzQ3MTYwXSxjLDApLEhyPStNbChsLDB8YVs0NzE2Ml0sMCwtMzYwKStrLGY/KFN0PWYsdXI9TSxIbj1EKToodXI9K01sKGwsMHxhWzQ3MTYzXSww''@;'; + put 'put ''LC0xMDApLFN0PTB8ZXMobCwwfGFbNDcxNTldLDQsMCksSG49K01sKGwsMHxhWzQ3MTY0XSwwLC0xMDApKSxhW0RyPj4yXT1hWyhmPTI0KyhjPTB8YVsxMDQrKDB8YVtKcj4+Ml0pPj4yXSl8MCk+PjJdLGFbRHIrND4+Ml09YVtmKzQ+PjJdLGFbRHIrOD4+Ml09YVtmKzg+PjJdLGFbRHIrMTI+''@;'; + put 'put ''PjJdPWFbZisxMj4+Ml0sKEc9K19bRHI+PjNdKT4wP218fChFdD0xMSk6bXwhKCtfW0RyKzg+PjNdPjApfHwoRXQ9MTEpLDExPT0oMHxFdCkpe2M9MHxMaShsLDEwNTQ5Nik7ZG97aWYoYyl7aWYoX1tSPj4zXT0wLF9bdz4+M109MCxhW0E+PjJdPXcsYVtBKzQ+PjJdPVIsYz0wfGlsKGMsMTA1''@;'; + put 'put ''NTAzLEEpLChrPStfW3c+PjNdKTwwJiYoX1t3Pj4zXT0wLGs9MCksKE09K19bUj4+M10pPDA/KF9bUj4+M109MCxEPTApOkQ9TSwoMHxjKTw9MCl7X1tEcj4+M109TT1HKzE2LGs9ODticmVha31fW0RyPj4zXT1NPUcrKGs9Kyh+figoayo9NzIpKyhrPj0wPy41Oi0uNSkpPDwxfDApKSwxIT0o''@;'; + put 'put ''MHxjKSYmKGs9Kyh+figoaz03MipEKSsoaz49MD8uNTotLjUpKTw8MXwwKSl9ZWxzZSBfW0RyPj4zXT1NPUcrMTYsaz04fXdoaWxlKDApO19bKGM9RHIrOHwwKT4+M109K19bYz4+M10rayxjPTB8YVsxMDQrKDB8YVtKcj4+Ml0pPj4yXSxHPU19cGU9K19bYysyND4+M10sKGs9K19bYVs4Kygw''@;'; + put 'put ''fGFbMTYrKDB8Y3IobCkpPj4yXSk+PjJdPj4zXSk+MD8oYnQ9K1hRKEcsY3Q9KygwfH5+KChjdD03MiprKSsoY3Q+PTA/LjU6LS41KSkpKSxfW0RyPj4zXT1idCxfWyhSPURyKzh8MCk+PjNdPStYUSgrX1tSPj4zXSxjdCkpOmJ0PUcsYz0wfGFbOCsoMHxhW0pyPj4yXSk+PjJdO2Rve2lmKDB8''@;'; + put 'put ''ZmVbYysxMj4+MF0pe2lmKDk5PT0oMHxmZVsoYz0wfGFbYz4+Ml0pPj4wXSkmJjA9PSgwfFppKGMsMTA1NTE5KSkpe2lmKGY9MHxMaShsLDEwNTUyNiksVUcobnQsMHxjcihsKSxmKSwtMT09KChtPTB8YVtudCs0Pj4yXSkmKGM9MHxhW250Pj4yXSl8MCkpe2M9MHx0aShsKSxhW290Pj4yXT0w''@;'; + put 'put ''fGY/ZjoxMDU1MzYsYVtvdCs0Pj4yXT1jLCRyKDAsMTA1NTQyLG90KSxmPTAsYz0wO2JyZWFrfWZlWzExNCsoMHxhWzE2KygwfGNyKGwpKT4+Ml0pPj4wXT0xLGY9YysyfDAsYz1tKzJ8MDticmVha31mPTAsYz0wfWVsc2V7aWYoMCE9KDB8KGY9MHxMaShsLDEwOTAyNSkpKSYmMCE9KDB8ZmVb''@;'; + put 'put ''Zj4+MF0pKXtpZihVRyhxZSwwfGNyKGwpLGYpLC0xPT0oKG09MHxhW3FlKzQ+PjJdKSYoYz0wfGFbcWU+PjJdKXwwKSl7Yz0wfHRpKGwpLGFbV2U+PjJdPWYsYVtXZSs0Pj4yXT1jLCRyKDAsMTA1NTg3LFdlKSxmPTAsYz0wO2JyZWFrfWZlWzExNCsoMHxhWzE2KygwfGNyKGwpKT4+Ml0pPj4w''@;'; + put 'put ''XT0xLGY9YysyfDAsYz1tKzJ8MDticmVha31mPTAsYz0wfX13aGlsZSgwKTtfW0xyPj4zXT1idD4oY3Q9KygwfGYpKT9idDpjdCxLPSsoMHxjKSxfWyhjPUxyKzh8MCk+PjNdPShjdD0rX1tEcis4Pj4zXSk+Sz9jdDpLLGY9KDB8U3QpPDMmKDAhPUhufDAhPXVyKT8xMjA6U3QsQT0obT0wfExp''@;'; + put 'put ''KGwsMTA1NjI4KSk/KEE9MHxmZVttPj4wXSk8PDI0Pj4yND09MTE2PzExNjpBPDwyND4+MjQ9PTk4Pzk4Ojk5Ojk5LGZlWzgwKygwfGFbMTA0KyhtPTB8YVtKcj4+Ml0pPj4yXSk+PjBdPUEsND09KDB8ZikmJigwPT1Ibj8wPT0oMHwoMHx+fihIcisoSHI+PTA/LjU6LS41KSkpJTkwKTowKSYw''@;'; + put 'put ''PT11cj9SPTE6RXQ9Mzk7ZG97aWYoMzk9PSgwfEV0KSl7aWYoMHwobT0wfGFbNDQrKDB8YVs4KygwfGFbbSs4Pj4yXSk+PjJdKT4+Ml0pKXtSPTB8YVttPj4yXSxhW2t0Pj4yXT1hW0xyPj4yXSxhW2t0KzQ+PjJdPWFbTHIrND4+Ml0sYVtrdCs4Pj4yXT1hW0xyKzg+PjJdLGFba3QrMTI+PjJd''@;'; + put 'put ''PWFbTHIrMTI+PjJdLEdzWzYzJlJdKHN0LGt0KSxhW0xyPj4yXT1hW3N0Pj4yXSxhW0xyKzQ+PjJdPWFbc3QrND4+Ml0sYVtMcis4Pj4yXT1hW3N0Kzg+PjJdLGFbTHIrMTI+PjJdPWFbc3QrMTI+PjJdLFI9MDticmVha31wPihNPTEuNDE0MjEzNTYyMzczMDk1MSooaz0rX1tjPj4zXSkpJkE8''@;'; + put 'put ''PDI0Pj4yND09OTk/KEQ9K0QwKDEvKDEtKEQ9ay9wKSpEKSksX1tMcj4+M109RCo9K19bTHI+PjNdKTooX1tMcj4+M109RD0xLjQxNDIxMzU2MjM3MzA5NTEqK19bTHI+PjNdLF9bYz4+M109TSxrPU0pLCgwfGYpPjImJihWZT0raGEoMy4xNDE1OTI2NTM1ODk3OTMvKygwfGYpKSxfW0xyPj4z''@;'; + put 'put ''XT1EL1ZlLF9bYz4+M109ay9WZSksUj0wfX13aGlsZSgwKTtrPStfW2M+PjNdLG09MHx2MihsLDB8YVs0NzE2NV0sMTM3MzA4KSwxMTU9PSgwfGZlW20+PjBdKSYmMD09KDB8WmkobSwxMDgyMzApKT8oX1tMcj4+M109YixfW2M+PjNdPXAsYVsoWnQ9bDArNDB8MCk+PjJdPTIwNDh8YVtadD4+''@;'; + put 'put ''Ml0pOigoMHx0MShtKSk8PDI0Pj4yND8oIShiPCtfWzI0KyhFdD0wfGFbMTA0KygwfGFbSnI+PjJdKT4+Ml0pPj4zXSkmJiEocDwrX1tFdCszMj4+M10pfHwoc3Q9MHx0aShsKSxFdD0wfHRpKDB8Y3IobCkpLGFbWnQ+PjJdPXN0LGFbWnQrND4+Ml09RXQsJHIoMCwxMDU2MzcsWnQpKSxfW0xy''@;'; + put 'put ''Pj4zXT1iKTooX1tMcj4+M109Yj1iPihWZT0rX1tMcj4+M10pP2I6VmUscD1wPihWZT0rX1tjPj4zXSk/cDpWZSksX1tjPj4zXT1wKSxmcj8oX1tjPj4zXT1IZT1iPnA/YjpwLF9bTHI+PjNdPUhlLFZlPUhlKTooVmU9cCxIZT1iKTtkb3tpZigoMHx0MSgwfHYyKGwsMHxhWzQ3MTU2XSwxMzcz''@;'; + put 'put ''MDgpKSk8PDI0Pj4yNClwPWJ0O2Vsc2V7aWYoUil7cD0rX1soYnQ+K19bTHI+PjNdP0RyOkxyKT4+M107YnJlYWt9cD1jdDwocD0rX1tjPj4zXSk/YnQ+KHA9K19bTHI+PjNdKitEMCgrKDEtY3QqY3QvKHAqcCkpKSk/YnQ6cDpidH19d2hpbGUoMCk7X1s0MCsobT0wfGFbMTA0KygwfGFbSnI+''@;'; + put 'put ''PjJdKT4+Ml0pPj4zXT1wZS1HK3AsMjA0OCZhWyhxZT1sMCs0MHwwKT4+Ml18fChSZT0rX1tjPj4zXS1rLF9bbSs0OD4+M109KGN0PEs/Sy1jdCtSZTpSZSkrY3QpLG09KHc9KDB8RXIpPjEpP0VyOjE7ZTpkb3tpZigoMHxmKTwzKWlmKG09MHx2cihtPDw1KSxiPS41KitfW0xyPj4zXSxwPS41''@;'; + put 'put ''KitfW2M+PjNdLF9bbT4+M109LWIsX1ttKzg+PjNdPS1wLF9bbSsxNj4+M109YixfW20rMjQ+PjNdPXAsdyl7Zm9yKGY9MSxBPTI7KDB8ZikhPSgwfEVyKTspVmU9cCs0LF9bbSsoQTw8NCk+PjNdPS0oSGU9Yis0KSxfW20rKEE8PDQpKzg+PjNdPS1WZSxfW20rKChTbj0xfEEpPDw0KT4+M109''@;'; + put 'put ''SGUsX1ttKyhTbjw8NCkrOD4+M109VmUsZj1mKzF8MCxBPUErMnwwLGI9SGUscD1WZTtfW0xyPj4zXT0yKmIsX1tjPj4zXT0yKnAsZj0yfWVsc2UgZj0yO2Vsc2V7bT0wfHZyKDB8QXIobTw8NCxmKSksQT0wfGFbNDQrKDB8YVs4KygwfGFbOCsoMHxhW0pyPj4yXSk+PjJdKT4+Ml0pPj4yXTt0''@;'; + put 'put ''OmRve2lmKEEpR3NbNjMmYVtBKzQ+PjJdXShtLExyKSxiPS41KitfW2M+PjNdLHA9LjUqK19bTHI+PjNdO2Vsc2V7Zm9yKEs9K0RhKCsoZ2U9LjUqKEc9Ni4yODMxODUzMDcxNzk1ODYvKygwfGYpKSkpLHBlPStLeSgrZW8oK3VyKSsgK2VvKCtIbiksMSksZ2U9MS40MTQyMTM1NjIzNzMwOTUx''@;'; + put 'put ''KkhuLytoYSgrZ2UpLGJlPS41KnVyLGRMKC41KihHKy0zLjE0MTU5MjY1MzU4OTc5MyksYW4sU24pLE9lPS4wMTc0NTMyOTI1MTk5NDMyOTUqSHIsYj0wLHA9MCxrPTAsQT0wLE09LjUqK19bU24+PjNdLEQ9LjUqK19bYW4+PjNdOzspe2lmKCgwfEEpPj0oMHxmKSlicmVhayB0O2lmKGRMKGsr''@;'; + put 'put ''PUcsYW4sU24pLGRMKCtVbCgrKEQ9K19bYW4+PjNdKksrRCksKyhSZT0oRCpnZStwZSkqKE09K19bU24+PjNdKksrTSkrYmUqRCkpK09lLGFuLFNuKSxSZT0rS3koUmUsRCksTGU9K19bU24+PjNdKlJlKitfW0xyPj4zXSxSZT0rX1thbj4+M10qUmUqK19bYz4+M10scD0oT2k9K2VvKCtMZSkp''@;'; + put 'put ''PnA/T2k6cCxiPShPaT0rZW8oK1JlKSk+Yj9PaTpiLF9bbSsoQTw8NCk+PjNdPUxlLF9bbSsoQTw8NCkrOD4+M109UmUsUilicmVhaztBPUErMXwwfV9bbSsxNj4+M109T2k9LUxlLF9bbSsyND4+M109UmUsX1ttKzMyPj4zXT1PaSxfW20rNDA+PjNdPU9pPS1SZSxfW20rNDg+PjNdPUxlLF9b''@;'; + put 'put ''bSs1Nj4+M109T2l9fXdoaWxlKDApO2ZvcihiKj0yLF9bTHI+PjNdPUhlPUhlPihwKj0yKT9IZTpwLF9bYz4+M109T2k9VmU+Yj9WZTpiLHA9SGUvcCxiPU9pL2IsQT0wOyEoKDB8QSk+PSgwfGYpKTspT2k9K19bKGw9bSsoQTw8NCkrOHwwKT4+M10qYixfWyhadD1tKyhBPDw0KXwwKT4+M109''@;'; + put 'put ''K19bWnQ+PjNdKnAsX1tsPj4zXT1PaSxBPUErMXwwO2lmKHcpe3A9K1VsKCsoKGs9K19bbSs4Pj4zXSktK19bbSsoKHc9ZistMXwwKTw8NCkrOD4+M10pLCsoKGI9K19bbT4+M10pLStfW20rKHc8PDQpPj4zXSkpLHc9MDt0OmZvcig7ISgoMHx3KT49KDB8ZikpOylmb3IoUj13KzF8MCxBPSgw''@;'; + put 'put ''fFIpJSgwfGYpfDAsTT0rX1ttKyhBPDw0KT4+M10sRD0rX1ttKyhBPDw0KSs4Pj4zXSxHPStVbCgrKEQtayksKyhNLWIpKSxWZT0uNSoocCszLjE0MTU5MjY1MzU4OTc5My1HKSxPaT00LytEYSgrVmUpLGRMKHAtVmUsYW4sU24pLF9bYW4+PjNdPStfW2FuPj4zXSpPaSxfW1NuPj4zXT0rX1tT''@;'; + put 'put ''bj4+M10qT2ksQT0xLHA9azs7KXtpZigoMHxBKT09KDB8RXIpKXtwPUcsdz1SLGI9TSxrPUQ7Y29udGludWUgdH1WZT0rX1tTbj4+M10rYixPaT0rX1thbj4+M10rcCxsPSgwfEFyKEEsZikpK3d8MCxfW20rKGw8PDQpPj4zXT1WZSxfW20rKGw8PDQpKzg+PjNdPU9pLEE9QSsxfDAsYj1WZSxw''@;'; + put 'put ''PU9pfWZvcih3PTB8QXIoZixFcistMXwwKSxBPTA7Oyl7aWYoKDB8QSk+PSgwfGYpKWJyZWFrIGU7VmU9K19bbSsoKFNuPUErd3wwKTw8NCkrOD4+M10sSGU9MiorZW8oKyArX1ttKyhTbjw8NCk+PjNdKSxfW0xyPj4zXT1IZT4oT2k9K19bTHI+PjNdKT9IZTpPaSxWZT0yKitlbygrVmUpLF9b''@;'; + put 'put ''Yz4+M109VmU+KE9pPStfW2M+PjNdKT9WZTpPaSxBPUErMXwwfX19fXdoaWxlKDApO2FbbDA+PjJdPWZyLGFbbDArND4+Ml09RXIsYVtsMCs4Pj4yXT1mLF9bbDArMTY+PjNdPUhyLF9bbDArMzI+PjNdPXVyLF9bbDArMjQ+PjNdPUhuLGFbbDArNDQ+PjJdPW0scD0rX1tMcj4+M10sMjA0OCZh''@;'; + put 'put ''W3FlPj4yXT8oX1szMisoZj0wfGFbSnI+PjJdKT4+M109LjAxMzg4ODg4ODg4ODg4ODg4OCorX1soYnQ+cD9EcjpMcik+PjNdLGM9KGN0PitfW2M+PjNdP0RyOkxyKSs4fDApOl9bMzIrKGY9MHxhW0pyPj4yXSk+PjNdPS4wMTM4ODg4ODg4ODg4ODg4ODgqcCxfW2YrNDA+PjNdPS4wMTM4ODg4''@;'; + put 'put ''ODg4ODg4ODg4ODgqK19bYz4+M10sYVtmKzEyPj4yXT1sMCxsZT1WaX0sZnVuY3Rpb24gemFlKGwpezB8KGw9MHxhWzEyKygwfGFbMTYrKGx8PTApPj4yXSk+PjJdKSYmKEZ0KDB8YVtsKzQ0Pj4yXSksRnQobCkpfSxmdW5jdGlvbiBQYWUobCl7bHw9MDt2YXIgYixrLGM9MCxmPTAscD0wLG09''@;'; + put 'put ''MCxBPTAsdz0wLE09MCxEPTA7aWYoYj0wfHZyKDQ4KSxBPTB8YVs0KygwfGFbOCsoMHxhWzgrKDB8YVsoaz1sKzE2fDApPj4yXSk+PjJdKT4+Ml0pPj4yXSxtPStNbChsLDB8YVs0NzE0Nl0sMTc5NzY5MzEzNDg2MjMxNTdlMjkyLDApLGM9K01sKGwsMHxhWzQ3MTQ1XSwxNzk3NjkzMTM0ODYy''@;'; + put 'put ''MzE1N2UyOTIsMCksX1s0MCsodz0wfGFbaz4+Ml0pPj4zXT1tPTE3OTc2OTMxMzQ4NjIzMTU3ZTI5Mj09YyYxNzk3NjkzMTM0ODYyMzE1N2UyOTI9PShtPW08Yz9tOmMpPy4wNTptPjA/bT4zZS00P206M2UtNDptLF9bdyszMj4+M109bSxjPTcyKm0sdz0wfHZyKCgwfChBPTB8ZXMobCwwfGFb''@;'; + put 'put ''NDcxNjBdLEEsMCkpKTwxPzMyOkE8PDUpLF9bdz4+M109cD0tKG0qPTM2KSxfW3crOD4+M109cCxfW3crMTY+PjNdPW0sX1t3KzI0Pj4zXT1tLCgwfEEpPjEpe2ZvcihsPTEsZj0yLHA9bSxjPW07KDB8bCkhPSgwfEEpOyltPWMrNCxfW3crKGY8PDQpPj4zXT0tKE09cCs0KSxfW3crKGY8PDQp''@;'; + put 'put ''Kzg+PjNdPS1tLF9bdysoKEQ9MXxmKTw8NCk+PjNdPU0sX1t3KyhEPDw0KSs4Pj4zXT1tLGw9bCsxfDAsZj1mKzJ8MCxwPU0sYz1tO2M9MipwfWFbYj4+Ml09MSxhW2IrND4+Ml09QSxhW2IrOD4+Ml09MixhWyhEPWIrMTZ8MCk+PjJdPTAsYVtEKzQ+PjJdPTAsYVtEKzg+PjJdPTAsYVtEKzEy''@;'; + put 'put ''Pj4yXT0wLGFbRCsxNj4+Ml09MCxhW0QrMjA+PjJdPTAsYVtiKzQ0Pj4yXT13LF9bMzIrKEQ9MHxhW2s+PjJdKT4+M109TT0uMDEzODg4ODg4ODg4ODg4ODg4KmMsX1tEKzQwPj4zXT1NLGFbRCsxMj4+Ml09Yn0sZnVuY3Rpb24gQmFlKGwpe3ZhciBiLGssTSxSLGM9MCxmPTAscD0wLG09MCxB''@;'; + put 'put ''PTAsdz0wLEQ9MDtSPWxlLGxlPWxlKzY0fDAsYj1SKzQwfDAscD1SKzMyfDAsaz1SKzE2fDAsRD1SLGY9KDB8YVsxMTYrKDB8YVsxNisoMHxjcihsfD0wKSk+PjJdKT4+Ml0pPj4+MiYxXjEsYVs0NzI4Ml09bT0wfGFbYVsxMDQrKDB8YVsoTT1sKzE2fDApPj4yXSk+PjJdPj4yXSwoYz0wfGlO''@;'; + put 'put ''KGwsZiwxLG09MHx2cigoKDB8KG09MHxVbyhtKSkpPjE/bToxKSsxfDApKSl8fChhW3A+PjJdPWFbYVsxMDQrKDB8YVtNPj4yXSk+PjJdPj4yXSwkcigxLDEwNTQ3MixwKSxhWzQ3MjgyXT0xMDU0OTMsYz0wfGlOKGwsZiwxLG0pKSxGdChtKSxVUShiLGwsYyksX1tEPj4zXT13PSsoMHx+figo''@;'; + put 'put ''dz03MiorX1szMisoZj0wfGFbTT4+Ml0pPj4zXSkrKHc+PTA/LjU6LS41KSkpLEE9NzIqK19bZis0MD4+M10sX1soZj1EKzh8MCk+PjNdPUE9KygwfH5+KEErKEE+PTA/LjU6LS41KSkpLCgwfHQxKDB8djIobCwwfGFbNDcxNjVdLDEzNzMwOCkpKTw8MjQ+PjI0PyhmPWMrOHwwLHA9Yyk6KF9b''@;'; + put 'put ''RD4+M109dz0rX1soK19bYz4+M10+dz9jOkQpPj4zXSxfW2Y+PjNdPUE9K19bKCtfWyhwPWMrOHwwKT4+M10+QT9jOkQpKzg+PjNdLGY9cCxwPWMpLGw9MjU1JigwfHQxKDB8djIobCwwfGFbNDcxNTZdLDEzNzMwOCkpKSxhW2I+PjJdPWFbRD4+Ml0sYVtiKzQ+PjJdPWFbRCs0Pj4yXSxhW2Ir''@;'; + put 'put ''OD4+Ml09YVtEKzg+PjJdLGFbYisxMj4+Ml09YVtEKzEyPj4yXSxRUShjLGIsbCksX3koaywtLjUqdywuNSpBKSxhW2I+PjJdPWFbaz4+Ml0sYVtiKzQ+PjJdPWFbays0Pj4yXSxhW2IrOD4+Ml09YVtrKzg+PjJdLGFbYisxMj4+Ml09YVtrKzEyPj4yXSxKUShjLGIsMTUpLF9bMzIrKEQ9MHxh''@;'; + put 'put ''W00+PjJdKT4+M109LjAxMzg4ODg4ODg4ODg4ODg4OCorX1twPj4zXSxfW0QrNDA+PjNdPS4wMTM4ODg4ODg4ODg4ODg4ODgqKCtfW2Y+PjNdKzEpLGFbRCsxMj4+Ml09YyxsZT1SfSxmdW5jdGlvbiBYYWUobCl7b04oMHxhWzEyKygwfGFbMTYrKGx8PTApPj4yXSk+PjJdKX0sZnVuY3Rpb24g''@;'; + put 'put ''U2FlKGwpe3ZhciBwLGM9MCxmPTAsbT0wLEE9MDtwPWxlLGxlPWxlKzE2fDAsZj1wLChjPTB8ZkQoMHxMaShsfD0wLDEwNTUyNikpKT8oYz0wfGZ1bmN0aW9uIE1hZShsKXtsfD0wO3ZhciBBLHcsYixHLGM9MCxmPTAscD0wLG09MCxrPTAsTT0wLEQ9MCxSPTAsSz0wO0c9bGUsbGU9bGUrMTE1''@;'; + put 'put ''MnwwLHc9RysyNHwwLEE9Rys4fDAsZj1HLHA9RysxMjB8MCxiPUcrNDR8MCxrPUcrNDB8MCxNPUcrMzZ8MCxEPUcrMzJ8MCxSPUcrMjh8MCwoYz0wfGFbNDcyNjZdKXx8KGM9MHxpcygyMDgxMiwwfGFbNDU4MV0pLGFbNDcyNjZdPWMpLGM9MHxtaVs2MyZhW2M+PjJdXShjLGwsNTEyKTtkb3tp''@;'; + put 'put ''ZighYyl7aWYoIShtPTB8blMobCwxMzg4MjEpKSl7YVtmPj4yXT1sLCRyKDAsMTA0MjgzLGYpLGM9MDticmVha31mb3IoYz0wLGY9MDs7KXtpZighKDB8eWcocCwxMDI0LG0pKSl7cD0xMTticmVha31pZihhW0E+PjJdPWssYVtBKzQ+PjJdPU0sYVtBKzg+PjJdPUQsYVtBKzEyPj4yXT1SLGY9''@;'; + put 'put ''KEs9ND09KDB8aWwocCwxMDQzMTEsQSkpKT8xOmYsMzchPSgwfGZlW3A+PjBdKSYmKGM9KEs9MD09KDB8dFMocCwxMDQzNDApKSk/YzoxKSwwIT0oMHxmKSYwIT0oMHxjKSl7cD0xMjticmVha319MTE9PSgwfHApJiYoZj9wPTEyOihhW3c+PjJdPWwsJHIoMCwxMDQzNDUsdyksYz0wKSksMTI9''@;'; + put 'put ''PSgwfHApJiYoSz0wfFFuKDY0KSxhW0srMzI+PjJdPWs9MHxhW2s+PjJdLE09MHxhW00+PjJdLGFbSys0MD4+Ml09KDB8YVtEPj4yXSktayxhW0srMzY+PjJdPSgwfGFbUj4+Ml0pLU0sYVtLKzg+PjJdPWwsYVs0NzI2N109MSsoUj0wfGFbNDcyNjddKSxhW0srMTI+PjJdPVIsVCQoMHxZJCht''@;'; + put 'put ''KSxiKSxEPTB8UW4oMSsoUj0wfGFbYiszNj4+Ml0pfDApLGFbSys1Mj4+Ml09RCxuMyhtLDAsMCksRyQoRCxSLDEsbSksZmVbRCtSPj4wXT0wLG1pWzYzJmFbKFI9MHxhWzQ3MjY2XSk+PjJdXShSLEssMSksZmVbSysxNj4+MF09YyxjPUspLGV3KG0pfX13aGlsZSgwKTtyZXR1cm4gbGU9Ryww''@;'; + put 'put ''fGN9KGMpLDB8YyYmKGY9MHxhW2MrNDQ+PjJdLF9bMzIrKGw9MHxhWyhBPWwrMTZ8MCk+PjJdKT4+M109LjAxMzg4ODg4ODg4ODg4ODg4OCorKDB8KG09MHxhW2MrNDA+PjJdKSksX1tsKzQwPj4zXT0uMDEzODg4ODg4ODg4ODg4ODg4KisoMHxmKSxsPTB8dnIoMTIpLGFbMTIrKDB8YVtBPj4y''@;'; + put 'put ''XSk+PjJdPWwsYVtsPj4yXT1hW2MrMTI+PjJdLGFbbCs0Pj4yXT0oKDB8bSkvLTJ8MCktKDB8YVtjKzMyPj4yXSksYVtsKzg+PjJdPSgoMHxmKS8tMnwwKS0oMHxhW2MrMzY+PjJdKSkpOihhW2Y+PjJdPTB8dGkobCksJHIoMCwxMDQyMzQsZikpLGxlPXB9LGZ1bmN0aW9uIEhRKGwpe0Z0KDB8''@;'; + put 'put ''YVsxMisoMHxhWzE2KyhsfD0wKT4+Ml0pPj4yXSl9LGZ1bmN0aW9uIE9SKGwpe3ZhciBjLGY9MDtjPTB8YVsxNjgrKDB8YVsobHw9MCk+PjJdKT4+Ml0sMHxhWyhmPWwrNTgwfDApPj4yXXx8KGFbZj4+Ml09YyxmZVsoZj0xMTIrKDB8YVtjKzE2Pj4yXSl8MCk+PjBdPTJ8ZmVbZj4+MF0sWTgo''@;'; + put 'put ''bCxjKSksZ1cobCxjKSxmZVtsKzU0MD4+MF09MX0sZnVuY3Rpb24gYmIobCl7fSxmdW5jdGlvbiB0dmUobCl7ciQoMHxhWzUyKyhsfD0wKT4+Ml0sMHxhW2wrNTY+PjJdKX0sZnVuY3Rpb24gRlUobCl7dmFyIGssRCxLLGM9MCxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxNPTAsUj0wLEc9MDtm''@;'; + put 'put ''b3IoSz1sZSxsZT1sZSszMnwwLFI9SysxNnwwLEQ9SyxjPTB8aXRbMjM2KyhmPTB8YVsoaz0xNisobHw9MCl8MCk+PjJdKT4+MV07ISgoMHxjKT4oMHxpdFtmKzIzOD4+MV0pKTspYVsoMHxhW2YrMjY4Pj4yXSkrKGM8PDIpPj4yXT0wLGM9YysxfDAsZj0wfGFbaz4+Ml07Zm9yKHFZKGwpLHc9''@;'; + put 'put ''MHxEdChsKTt3Oyl7Zm9yKEhVKGwsdyksQT0wfHcwKGwsdyk7QTspe2ZvcihmPUE7Yz0wfGFbMTcyKygwfGFbZisxNj4+Ml0pPj4yXTspZj1jO2ZvcihtPUErLTQ4fDA7Yz1mKy00OHwwLCEoKDB8YVsyMzIrKDB8YVsxNisocD0wfGFbKDI9PSgzJmFbZj4+Ml18MCk/ZjpjKSs0MD4+Ml0pPj4y''@;'; + put 'put ''XSk+PjJdKT49KDB8YVsyMzIrKDB8YVsxNisoMHxhWygyPT0oMyZhW0E+PjJdfDApP0E6bSkrNDA+PjJdKT4+Ml0pPj4yXSkpOylIVShsLHApLGY9MHxhW2FbMTgwKygwfGFbMTYrKDB8YVsoMj09KDMmYVtmPj4yXXwwKT9mOmMpKzQwPj4yXSk+PjJdKT4+Ml0+PjJdO0E9MHxTMChsLEEpfXc9''@;'; + put 'put ''MHx6dChsLHcpfWZvcihBPTB8aXRbMjM2KyhjPTB8YVtrPj4yXSk+PjFdOzspe2lmKCgwfEEpPigwfGl0W2MrMjM4Pj4xXSkpe2I9MSxNPWM7YnJlYWt9aWYoYz0wfGFbKDB8YVtjKzI2OD4+Ml0pKyhBPDwyKT4+Ml0sdz0wfGFbKDB8YVsxOTYrKDB8YVsxNisoMHxBYShsKSk+PjJdKT4+Ml0p''@;'; + put 'put ''KyhBPDw2KSs0Pj4yXSwoMHxhW3crKGFbMjM2KygwfGFbKGY9YysxNnwwKT4+Ml0pPj4yXTw8Mik+PjJdKSE9KDB8Yykpe0c9MTc7YnJlYWt9bT0wfGFbKDB8YVsxOTYrKDB8YVsxNisoMHxBYShsKSk+PjJdKT4+Ml0pKyhBPDw2KSs0Pj4yXSxhWyhmPTB8YVsxOTYrKGM9MHxhW2s+PjJdKT4+''@;'; + put 'put ''Ml0pKyhBPDw2KSs0Pj4yXT1tKyhhWzIzNisoMHxhWzE2KygwfGFbKDB8YVtjKzI2OD4+Ml0pKyhBPDwyKT4+Ml0pPj4yXSk+PjJdPDwyKSxjPS0xLG09MDtlOmZvcig7ISgoMHxtKT49KDB8YVtmKyhBPDw2KT4+Ml0pKSYmKGY9MHxhWygwfGFbZisoQTw8NikrND4+Ml0pKyhtPDwyKT4+Ml0s''@;'; + put 'put ''Zik7KXtwPTB8YVtmKzE2Pj4yXTt0OmRve2lmKDB8ZmVbcCsxNTY+PjBdKXtmb3IoZj0wfGFbYVtwKzE3Mj4+Ml0+PjJdOzspe2lmKCFmKWJyZWFrIHQ7aWYoIShwPTB8YVsxMTYrKDB8YVtmKzE2Pj4yXSk+PjJdKSlicmVhaztmPXB9MHxOcihsLDB8YVsoMz09KDMmYVtmPj4yXXwwKT9mOmYr''@;'; + put 'put ''NDh8MCkrNDA+PjJdKSYmKGM9KHc9MD09KDB8TnIobCwwfGFbKDI9PSgzJmFbZj4+Ml18MCk/ZjpmKy00OHwwKSs0MD4+Ml0pKSk/YzptKX1lbHNle2lmKCEoMHxOcihsLGYpKSlicmVhayBlO2M9bX19d2hpbGUoMCk7bT1tKzF8MCxmPTB8YVsxOTYrKDB8YVtrPj4yXSk+PjJdfS0xPT0oMHxj''@;'; + put 'put ''KSYmKGFbUj4+Ml09MHx0aShsKSxhW1IrND4+Ml09QSwkcigwLDg4Mjc3LFIpKSxhWygwfGFbMTk2Kyh3PTB8YVtrPj4yXSk+PjJdKSsoQTw8Nik+PjJdPWMrMSxBPUErMXwwLGM9d31mb3IoMTc9PSgwfEcpJiYoUj0wfHRpKGMpLEc9MHxhWzIzNisoMHxhW2Y+PjJdKT4+Ml0sYVtEPj4yXT1S''@;'; + put 'put ''LGFbRCs0Pj4yXT1HLGFbRCs4Pj4yXT1BLCRyKDEsODgyMTksRCksemUoMTg3MDE2LDEpKTshKCgwfGIpPigwfGFbTSsxODA+PjJdKSk7KUZVKDB8YVsoMHxhW00rMTg0Pj4yXSkrKGI8PDIpPj4yXSksYj1iKzF8MCxNPTB8YVtrPj4yXTtsZT1LfSxmdW5jdGlvbiBJc2UobCl7dmFyIGYsYz0w''@;'; + put 'put ''O3I0KGx8PTAsMiksYz0wfHZyKDU2KSxhWzE0MCsoMHxhWyhmPWwrMTZ8MCk+PjJdKT4+Ml09YyxjPTY1NTM1JigwfGVzKGwsMHxzaShsLDAsOTEzNzQsMCksMiwyKSksaXRbMTc2KygwfGFbZj4+Ml0pPj4xXT1jPSg2NTUzNSZjKTwxMD9jOjEwLGFbNDcxMzddPTY1NTM1JmMsRUQobCwwLGwp''@;'; + put 'put ''LGZ1bmN0aW9uIExzZShsKXtsfD0wO3ZhciBwLGM9MCxmPTA7cD1sZSxsZT1sZSsxNnwwLGFbNDY0NzRdPTEsYVs0NjQ3NV09MSxhWzQ2NDc3XT0tMSxhWzQ2NDc5XT01MCxfWzIzMjQ1XT0wLF9bMjMyNDBdPTAsX1syMzI0MV09MSxhWzQ2NDc4XT0wfGVzKGwsMHxzaShsLDAsOTEwNjEsMCks''@;'; + put 'put ''NjAwLDApLGY9K01sKGwsMHxzaShsLDAsOTEyMDIsMCksLjMsMCksX1syMzI0Ml09ZixfWzEzNzFdPWYsYz0rTWwobCwwfHNpKGwsMCw5MTA2OSwwKSwtMSwwKSxfWzIzMjQzXT1jLGFbNDY0NzZdPTEsbD0wfEZOKGwsMiwxODU5MDQpLGFbNDY0ODhdPWwsbHx8KCRyKDAsOTEwNzIscCksYVs0''@;'; + put 'put ''NjQ3Nl09MiksYVs0NjUwNF09KDB8QXIoMHxhWzQ2NDc4XSwwfGFbNDY0NzldKSkvMTAwfDAsX1syMzI0N109KGY9K19bMjMyNDJdKSpmLDB8YVs0NjQ3NF0mJigoYz0rX1syMzI0NV0pPD0wJiYoX1syMzI0NV09Yz0zKmYpLF9bMjMyNDZdPWMqYyksbGU9cH0obCksZnVuY3Rpb24gQ3NlKGwp''@;'; + put 'put ''e3ZhciBjPTAsZj0wLHA9MDtmb3IoJGkobHw9MCwxLDEzNzQ0NywzMDQsMSksZnVuY3Rpb24gU2xlKGwpe3ZhciBwLEEsYixjPTAsZj0wLG09MCx3PTA7Zm9yKGI9bGUsbGU9bGUrMTQ0fDAscD1iLEE9MHx5SihsfD0wKSxtPTB8aXMoMjM1OTIsMHxhWzQ1ODFdKSxoMCh3PTB8ZHMobCwxMDgw''@;'; + put 'put ''MTQsMSksMTM3NDgzLDI4MCwxKSx1cyhwLDEyOCxiKzE2fDApLGM9MHxEdChsKTtjOyl7ZTpkb3tpZighKDB8ZmVbMTE4KygwfGFbYysxNj4+Ml0pPj4wXSkpZm9yKGY9MHx3MChsLGMpOzspe2lmKCFmKWJyZWFrIGU7TWxlKGYsdyxwLG0sQSksZj0wfFMwKGwsZil9fXdoaWxlKDApO2M9MHx6''@;'; + put 'put ''dChsLGMpfWZvcihDMihwKSxObChtKSxmPTB8R28odyksYz0wfER0KHcpO2M7KW09MHx6dCh3LGMpLG9pKGwsYyksYz1tO0MxKHcpLDB8ZiYmKGl0Wyh3PTEzNisoMHxhW2wrMTY+PjJdKXwwKT4+MV09MXxpdFt3Pj4xXSksTmwoQSksbGU9Yn0obCksYz0wfHZyKDQrKCgwfEdvKGwpKTw8Mil8''@;'; + put 'put ''MCksYVsxNTIrKDB8YVsocD1sKzE2fDApPj4yXSk+PjJdPWMsYz0wLGY9MHxEdChsKTtmOylrc2UoZiksYVsoMHxhWzE1MisoMHxhW3A+PjJdKT4+Ml0pKyhjPDwyKT4+Ml09ZixhWzEyMCsoMHxhW2YrMTY+PjJdKT4+Ml09YyxjPWMrMXwwLGY9MHx6dChsLGYpO2ZvcihwPTB8c2kobCwyLDky''@;'; + put 'put ''NDkzLDApLGY9MHxEdChsKTtmOyl7Zm9yKGM9MHx3MChsLGYpO2M7KVNzZShjLHApLGM9MHxTMChsLGMpO2Y9MHx6dChsLGYpfSFmdW5jdGlvbiBNc2UobCl7dmFyIGssTSxSLEcsSyxjPTAsZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsRD0wLHBlPTA7Sz1sZSxsZT1sZSszMnwwLEc9SysxNnww''@;'; + put 'put ''LFI9SyxrPUsrMjR8MCxNPTB8c2kobHw9MCwxLDEwMjYyMywwKTtlOmRve2lmKDB8TSlmb3IoRD0wfHNpKGwsMSw5MDY2MCwwKSxBPWwrMTZ8MCx3PTA9PSgwfEQpLGI9MHxhWzE1NzEyXSxtPTA7Oyl7aWYoIShmPTB8YVsoMHxhWzE1MisoMHxhW0E+PjJdKT4+Ml0pKyhtPDwyKT4+Ml0pKWJy''@;'; + put 'put ''ZWFrIGU7bD0wfEhvKGYsTSk7ZG97aWYoMHxmZVtsPj4wXSl7aWYoYz0wfGFbMTMyKygwfGFbKHA9ZisxNnwwKT4+Ml0pPj4yXSxmZVtrPj4wXT0wLGFbUj4+Ml09YyxhW1IrND4+Ml09Yys4LGFbUis4Pj4yXT1rLCgwfGlsKGwsMTAxNzQ5LFIpKTw9MSl7YVtHPj4yXT0wfHRpKGYpLGFbRys0''@;'; + put 'put ''Pj4yXT1sLFQwKGIsOTA2NjQsRyk7YnJlYWt9dDpkb3tpZigrX1syMzI5M10+MClmb3IobD0wOzspe2lmKDI9PSgwfGwpKWJyZWFrIHQ7X1socGU9YysobDw8Myl8MCk+PjNdPStfW3BlPj4zXS8rX1syMzI5M10sbD1sKzF8MH19d2hpbGUoMCk7aWYoZmVbMTE5KyhsPTB8YVtwPj4yXSk+PjBd''@;'; + put 'put ''PTEsMzMhPSgwfGZlW2s+PjBdKSl7aWYod3x8ISgoMHx0MSgwfEhvKGYsRCkpKTw8MjQ+PjI0KSlicmVhaztsPTB8YVtwPj4yXX1mZVtsKzExOT4+MF09M319d2hpbGUoMCk7bT1tKzF8MH19d2hpbGUoMCk7bGU9S30obCl9KGwpfSxmdW5jdGlvbiBzVihsKXt2YXIgYyxmO2M9bGUsbGU9bGUr''@;'; + put 'put ''NjR8MCxmdW5jdGlvbiBUc2UobCxjKXthWzQrKGN8PTApPj4yXT0wfHNpKGx8PTAsMCw5MDcxNiwwKSxhW2MrOD4+Ml09MHxzaShsLDAsMTQxMTE2LDApLGFbYysxMj4+Ml09MHxzaShsLDAsMTQxMDQ4LDApLGFbYz4+Ml09bCxhW2MrMTY+PjJdPTAsYVtjKzM2Pj4yXT0wfGE3KGwsMiw0LGMr''@;'; + put 'put ''MjB8MCl9KGx8PTAsZj1jKSx1VihsLGYpLGZ1bmN0aW9uIHVYKGwpe3ZhciBjPTAsZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTA7Zm9yKGM9MHxEdChsfD0wKTtjOykwfGZlWzExOCsoZj0wfGFbYysxNj4+Ml0pPj4wXSYmKG09MzYqKHc9K19bMjQrKGI9MHxhWzE0MCsoMHxhWzE2KygwfGFbZisy''@;'; + put 'put ''MTI+PjJdKT4+Ml0pPj4yXSk+PjNdLStfW2IrOD4+M10pLHA9MzYqKEE9K19bYiszMj4+M10tK19bYisxNj4+M10pLF9bKGI9MHxhW2YrMTMyPj4yXSk+PjNdPS41KncsX1tiKzg+PjNdPS41KkEsX1tmKzMyPj4zXT13LF9bZis0MD4+M109QSxfW2YrOTY+PjNdPW0sX1tmKzg4Pj4zXT1tLF9b''@;'; + put 'put ''Zis4MD4+M109NzIqQSxfWyhmPTB8YVs0NCsoMHxhW2YrMTI+PjJdKT4+Ml0pPj4zXT1tLF9bZis4Pj4zXT1wLF9bZisxNj4+M109QT0tbSxfW2YrMjQ+PjNdPXAsX1tmKzMyPj4zXT1BLF9bZis0MD4+M109cD0tcCxfW2YrNDg+PjNdPW0sX1tmKzU2Pj4zXT1wKSxjPTB8enQobCxjKX0obCks''@;'; + put 'put ''Y1gobCxsKSx4RChsKSxsZT1jfSxmdW5jdGlvbiBCdmUobCl7dmFyIGYscCxtLHcsYz0wLEE9MDtpZih3PWxlLGxlPWxlKzE2fDAsbT13LGM9NjU1MzUmKHA9MTQmaXRbMTM2KygwfGFbKGY9MTYrKGx8PTApfDApPj4yXSk+PjFdKSwoNjU1MzUmcCk+OCl7cDw8MTY+PjE2PT0xMj8wfFBKKGws''@;'; + put 'put ''MjIsMTApJiYoYVs0NzEzNF09MixBPTUpOkE9NTtkb3tpZig1PT0oMHxBKSl7aWYoMSZpdFsxMzYrKDB8YVtmPj4yXSk+PjFdKXskcigwLDkwOTk4LG0pLGM9MjticmVha31fRChsLGMpO2JyZWFrfX13aGlsZSgwKTthWzQ3MTM0XT0wfSgwfGFbNDcxMzhdKTwxJiZfRChsLGMpLGxlPXd9LEZ0''@;'; + put 'put ''LGZ1bmN0aW9uIGlqKGwpe0Z0KDB8YVs4KyhsfD0wKT4+Ml0pLEZ0KGwpfSxUNSxNcmUsZnVuY3Rpb24genJlKGwpezc9PSgwfGFbKGx8PTApPj4yXSkmJnZ5KDB8YVtsKzExMj4+Ml0sMSl9LGZ1bmN0aW9uIHF1KGwpe2x8PTA7dmFyIGM9MDswfGFbNDczNzVdfHwoYz0wfHZyKDQrKGw8PDIp''@;'; + put 'put ''fDApLGFbNDczNzVdPWMsYVtjPj4yXT0xODk1MDQsYVs0NzM4Nl09bCksYVs0NzM4N109MH0sZnVuY3Rpb24ga1IobCl7dmFyIGYsYz0wLHA9MDtmb3IoYVsobHw9MCk+PjJdPWM9MHxhW2wrOD4+Ml0sYVtsKzQ+PjJdPWFbbCsxMj4+Ml0sZj1sKzE2fDAsbD0wOyEoKDB8bCk+PSgwfGMpKTsp''@;'; + put 'put ''aXRbKHA9MHxhW2Y+PjJdKSsoNDAqbHwwKSsxNj4+MV09MHxpdFtwKyg0MCpsfDApKzE4Pj4xXSxsPWwrMXwwO2ZvcihjPWMrMnwwOyEoKDB8bCk+PSgwfGMpKTspaXRbKDB8YVtmPj4yXSkrKDQwKmx8MCkrMTY+PjFdPTAsbD1sKzF8MH0sZnVuY3Rpb24gcFIobCl7dmFyIGMsZjttUigwfGFb''@;'; + put 'put ''KGY9MjArKGx8PTApfDApPj4yXSksbVIoMHxhWyhjPWwrMjR8MCk+PjJdKSxoYigwfGFbZj4+Ml0pLGhiKDB8YVtjPj4yXSksWWMoMHxhW2Y+PjJdLGwpLFljKDB8YVtjPj4yXSxsKSxpbSgwfGFbZj4+Ml0pLGltKDB8YVtjPj4yXSl9LEF5LGZ1bmN0aW9uIGZCKGwpe3ZhciBjLGY7RnQoMHxh''@;'; + put 'put ''WzM2KygwfGFbKGY9OCsobHw9MCl8MCk+PjJdKT4+Ml0pLEZ0KDB8YVszNisoMHxhWyhjPWwrMTJ8MCk+PjJdKT4+Ml0pLEZ0KDB8YVtmPj4yXSksRnQoMHxhW2M+PjJdKSxmdW5jdGlvbiBRTShsKXt2YXIgYztGdCgwfGFbMjgrKDB8YVsoYz0xNisobHw9MCl8MCk+PjJdKT4+Ml0pLEZ0KDB8''@;'; + put 'put ''YVtjPj4yXSksRnQoMHxhW2wrMjA+PjJdKSxGdChsKX0oMHxhW2wrMTY+PjJdKSxObCgwfGFbbCsyMD4+Ml0pLE5sKDB8YVtsKzI0Pj4yXSksRnQobCl9LCRFLGZ1bmN0aW9uIGRHKGwpe3ZhciBmLHAsdyxjPTAsbT0wLEE9MDt3PWxlLGxlPWxlKzY0fDAscD13KzQ4fDAsQT13KzMyfDAsbT13''@;'; + put 'put ''KzE2fDAsZj13LCgwfGFbNDc1MTZdKTwoMHwobHw9MCkpJiYoKGM9MHxhWzQ3NTEwXSk/KG09MHxVYShjLGw8PDMpLGFbNDc1MTBdPW0sbXx8KG09MHxhWzE1NzEyXSxhW0E+PjJdPTE0MTg1OCxhW0ErND4+Ml09NTMzLGFbQSs4Pj4yXT0xNDIxNDcsVDAobSwxNDE4MzksQSksemUoMTg5ODU2''@;'; + put 'put ''LDEpKSxBPTB8VWEoMHxhWzQ3NTExXSxsPDwyKSxhWzQ3NTExXT1BLEF8fChBPTB8YVsxNTcxMl0sYVtwPj4yXT0xNDE4NTgsYVtwKzQ+PjJdPTUzOSxhW3ArOD4+Ml09MTQyMTY3LFQwKEEsMTQxODM5LHApLHplKDE4OTg1NiwxKSkpOihBPTB8QjAobDw8MyksYVs0NzUxMF09QSxBfHwoQT0w''@;'; + put 'put ''fGFbMTU3MTJdLGFbZj4+Ml09MTQxODU4LGFbZis0Pj4yXT01MjMsYVtmKzg+PjJdPTE0MjEwOCxUMChBLDE0MTgzOSxmKSx6ZSgxODk4NTYsMSkpLEE9MHxCMChsPDwyKSxhWzQ3NTExXT1BLEF8fChBPTB8YVsxNTcxMl0sYVttPj4yXT0xNDE4NTgsYVttKzQ+PjJdPTUyNyxhW20rOD4+Ml09''@;'; + put 'put ''MTQyMTI3LFQwKEEsMTQxODM5LG0pLHplKDE4OTg1NiwxKSkpLGFbNDc1MTZdPWwpLGxlPXd9LGZ1bmN0aW9uIG5BKGwpe3ZhciBtLGM9MCxmPTAscD0wO209bGUsbGU9bGUrMzJ8MCxwPW0rMTZ8MCxmPW0sKDB8YVs0NzUwNl0pPCgwfChsfD0wKSkmJigoYz0wfGFbNDc1MDVdKT8oZj0wfFVh''@;'; + put 'put ''KGMsbDw8MiksYVs0NzUwNV09ZixmfHwoZj0wfGFbMTU3MTJdLGFbcD4+Ml09MTQxODU4LGFbcCs0Pj4yXT01ODAsYVtwKzg+PjJdPTE0MjA4NSxUMChmLDE0MTgzOSxwKSx6ZSgxODk4NTYsMSkpKToocD0wfEIwKGw8PDIpLGFbNDc1MDVdPXAscHx8KHA9MHxhWzE1NzEyXSxhW2Y+PjJdPTE0''@;'; + put 'put ''MTg1OCxhW2YrND4+Ml09NTczLGFbZis4Pj4yXT0xNDIwNjMsVDAocCwxNDE4MzksZiksemUoMTg5ODU2LDEpKSksYVs0NzUwNl09bCksbGU9bX0sZnVuY3Rpb24gZ0cobCl7dmFyIG0sYz0wLGY9MCxwPTA7bT1sZSxsZT1sZSszMnwwLHA9bSsxNnwwLGY9bSwoMHxhWzQ3NTE0XSk8KDB8KGx8''@;'; + put 'put ''PTApKSYmKChjPTB8YVs0NzUxMl0pPyhmPTB8VWEoYyxsPDw0KSxhWzQ3NTEyXT1mLGZ8fChmPTB8YVsxNTcxMl0sYVtwPj4yXT0xNDE4NTgsYVtwKzQ+PjJdPTU5OSxhW3ArOD4+Ml09MTQxOTg0LFQwKGYsMTQxODM5LHApLHplKDE4OTg1NiwxKSkpOihwPTB8QjAobDw8NCksYVs0NzUxMl09''@;'; + put 'put ''cCxwfHwocD0wfGFbMTU3MTJdLGFbZj4+Ml09MTQxODU4LGFbZis0Pj4yXT01OTMsYVtmKzg+PjJdPTE0MTk2NixUMChwLDE0MTgzOSxmKSx6ZSgxODk4NTYsMSkpKSxhWzQ3NTE0XT1sKSxsZT1tfSxmOCxmOCxmOCxmOCxmOCxmOCxmOCxmOCxmOF0sR3M9W0RzLGZ1bmN0aW9uIEhXKGwsYyl7''@;'; + put 'put ''bHw9MDt2YXIgdyxrLE0sZj0wLHA9MCxtPTAsQT0wLGI9MCxEPTA7TT1sZSxsZT1sZSszMnwwLHc9TSxBPU0rMjB8MCxrPTMyKyhjfD0wKXwwO2U6ZG97c3dpdGNoKDB8YVtrPj4yXSl7Y2FzZSA1OmZvcihmPTA7Oyl7aWYocD0wfGFbMTI3MjQrKGY8PDIpPj4yXSw4PT0oMHxmKSlicmVhayBl''@;'; + put 'put ''O2lmKCgwfGZlW3A+PjBdKT09KDB8ZmVbKG09MHxhW2M+PjJdKT4+MF0pJiYwPT0oMHxaaShwLG0pKSl7Yj0xMDticmVhayBlfWY9ZisxfDB9Y2FzZSAxOmY9MzIrKDB8TlcoQSwwfFh0W2M+PjBdLDB8WHRbKHA9YysxfDApPj4wXSwwfFh0WyhtPWMrMnwwKT4+MF0pKXwwLDB8YVtBPj4yXSYm''@;'; + put 'put ''KEQ9MHxYdFtjPj4wXSxBPTB8WHRbcD4+MF0sYj0wfFh0W20+PjBdLGFbdz4+Ml09MCxhW3crND4+Ml09ZixhW3crOD4+Ml09RCxhW3crMTI+PjJdPUEsYVt3KzE2Pj4yXT1iLE9yKGwsNjg0OTIsdykpLGI9MTA7YnJlYWs7ZGVmYXVsdDpQcigxMzgzOTQsNjc4ODksMTYzLDY3OTIwKX19d2hp''@;'; + put 'put ''bGUoMCk7MTA9PSgwfGIpJiYoYVtjPj4yXT1mKSxhW2s+PjJdPTYsbGU9TX0sZnVuY3Rpb24gWVQobCxjKXt2YXIgZixwO2x8PTAsZj1sZSxsZT1sZSsxNnwwLGFbKHA9Zik+PjJdPWN8PTAsT3IobCw2ODMyNSxwKSxsZT1mfSxmdW5jdGlvbiBKVChsLGMpe2x8PTA7dmFyIHcsayxNLGY9MCxw''@;'; + put 'put ''PTAsbT0wLEE9MCxiPTAsRD0wO009bGUsbGU9bGUrMzJ8MCx3PU0sQT1NKzIwfDAsaz0zMisoY3w9MCl8MDtlOmRve3N3aXRjaCgwfGFbaz4+Ml0pe2Nhc2UgNTpmb3IoZj0wOzspe2lmKHA9MHxhWzEyNzI0KyhmPDwyKT4+Ml0sOD09KDB8ZikpYnJlYWsgZTtpZigoMHxmZVtwPj4wXSk9PSgw''@;'; + put 'put ''fGZlWyhtPTB8YVtjPj4yXSk+PjBdKSYmMD09KDB8WmkocCxtKSkpe2I9MTA7YnJlYWsgZX1mPWYrMXwwfWNhc2UgMTpmPTMyKygwfFlXKEEsMHxYdFtjPj4wXSwwfFh0WyhwPWMrMXwwKT4+MF0sMHxYdFsobT1jKzJ8MCk+PjBdKSl8MCwwfGFbQT4+Ml0mJihEPTB8WHRbYz4+MF0sQT0wfFh0''@;'; + put 'put ''W3A+PjBdLGI9MHxYdFttPj4wXSxhW3c+PjJdPTAsYVt3KzQ+PjJdPWYsYVt3Kzg+PjJdPUQsYVt3KzEyPj4yXT1BLGFbdysxNj4+Ml09YixPcihsLDY4NDkyLHcpKSxiPTEwO2JyZWFrO2Nhc2UgMDpmPTAsYj0xMDticmVhaztkZWZhdWx0OlByKDEzODM5NCw2ODUxMywxNjgsNjg1MzIpfX13''@;'; + put 'put ''aGlsZSgwKTsxMD09KDB8YikmJihhW2M+PjJdPWYpLGFbaz4+Ml09NixsZT1NfSxmdW5jdGlvbiBraWUobCxjKXt2YXIgZixwO2x8PTAsZj1sZSxsZT1sZSsxNnwwLGFbKHA9Zik+PjJdPWN8PTAsT3IobCw2ODMyNSxwKSxsZT1mfSxmdW5jdGlvbiBSaWUobCxjKXtjfD0wLEVuKGx8PTAsNjg4''@;'; + put 'put ''NDkpLEVuKGwsYyksRW4obCwxNTM1OTkpfSxmdW5jdGlvbiBfN2UobCxjKXtjfD0wLEVuKGx8PTAsNzMzOTgpLEVuKGwsMHxNMShjKSksRW4obCw3NTQ1OCl9LGZ1bmN0aW9uIEQ3ZShsLGMpe2N8PTAsRW4obHw9MCw3NTEzOCksRW4obCwwfEtUKGMpKSxFbihsLDE1MzU5OSl9LGZ1bmN0aW9u''@;'; + put 'put ''IE43ZShsLGMpe2N8PTAsRW4obHw9MCw3NTQ0NiksRW4obCwwfG5pKGMpKSxFbihsLDc1NDU4KX0sZnVuY3Rpb24gV2llKGwsYyl7dmFyIGYscDtsfD0wLGY9bGUsbGU9bGUrMTZ8MCxhWyhwPWYpPj4yXT1jfD0wLE9yKGwsNzgyNDIscCksbGU9Zn0sZnVuY3Rpb24gckkobCxjKXt2YXIgZixw''@;'; + put 'put ''O2x8PTAsY3w9MCxmPWxlLGxlPWxlKzE2fDAsYVsocD1mKT4+Ml09ODEwOTQsYVtwKzQ+PjJdPWMsT3IobCw4MTA4NyxwKSxsZT1mfSxmdW5jdGlvbiBZZShsLGMpe0Z0KGN8PTApfSxmdW5jdGlvbiBXYWUobCxjKXtjfD0wO3ZhciBrLE0scGUsZ2UsYmUsT2UsTGUsUmUsV2Usb3QsU3Qsa3Qs''@;'; + put 'put ''RXQsWnQsY3QsYnQsYW4sZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsRD0wLFI9MCxHPTAsSz0wLEhlPTAsVmU9MCxxZT0wLG50PTAsc3Q9MCxTbj0wLEhuPTA7YW49bGUsbGU9bGUrNDh8MCxTdD1hbisyNHwwLG90PWFuKzE2fDAsUmU9YW4rOHwwLExlPWFuLFp0PWFuKzMyfDAsdz1hbisyOHww''@;'; + put 'put ''LDA9PSgwfChmPTB8YVsoYnQ9MjA4KyhjdD0wfGFbMTYrKGx8PTApPj4yXSl8MCk+PjJdKSkmJjA9PSgxJml0W2N0KzI2MD4+MV0pP3N0PTA6bnQ9NCw0PT0oMHxudCkmJig0JmFbbCsxNTI+PjJdfHxHMShsLGYsMHxhW2N0KzIyOD4+Ml0sMHxhW2N0KzI0ND4+Ml0sMHxhW2N0KzIxMj4+Ml0p''@;'; + put 'put ''LHN0PTEpLFdlPTB8YVs0NCsoRD0wfGFbMTIrKGY9MHxhWyhrdD1jKzE2fDApPj4yXSk+PjJdKT4+Ml0sRXQ9MHxhW0QrOD4+Ml0sRD0wfGFbRCs0Pj4yXSwoMHxhWzQ3Mjg1XSk8KDB8RXQpJiYoYVs0NzI4NV09Zj1FdCs1fDAsZj0ocD0wfGFbNDcyODZdKT8wfFYwKHAsZjw8NCk6MHxRbihm''@;'; + put 'put ''PDw0KSxhWzQ3Mjg2XT1mLGY9MHxhW2t0Pj4yXSksYVsocWU9NTYrKDB8YVtmKzEwND4+Ml0pfDApPj4yXT1hWyhmPWYrMTZ8MCk+PjJdLGFbcWUrND4+Ml09YVtmKzQ+PjJdLGFbcWUrOD4+Ml09YVtmKzg+PjJdLGFbcWUrMTI+PjJdPWFbZisxMj4+Ml0sSGU9KCtfWzk2KyhxZT0wfGFba3Q+''@;'; + put 'put ''PjJdKT4+M10rICtfW3FlKzg4Pj4zXSkvKygwfH5+KChIZT03MiorX1txZSszMj4+M10pKyhIZT49MD8uNTotLjUpKSksVmU9K19bcWUrODA+PjNdLysoMHx+figoVmU9NzIqK19bcWUrNDA+PjNdKSsoVmU+PTA/LjU6LS41KSkpLHFlPTB8JFEobCxjKSxhW1p0Pj4yXT0wLGY9MHxYdFsxMTcr''@;'; + put 'put ''KDB8YVtrdD4+Ml0pPj4wXTtkb3tpZigxJmYpbWEobCxSPTB8QmEoYywwLDEwNjI0MCkpLGhsKGwsMHxCYShjLDAsMTA2MjQ4KSkscD0wLGY9MTtlbHNle2lmKDImZnwwKXttYShsLFI9MHxCYShjLDAsMTA2MjU2KSksaGwobCwwfEJhKGMsMCwxMDYyNjQpKSxwPTAsZj0xO2JyZWFrfWlmKDgm''@;'; + put 'put ''ZnwwKXttYShsLFI9MHxCYShjLDAsMTA2MjcyKSksaGwobCwwfEJhKGMsMCwxMDYyODApKSxwPTAsZj0xO2JyZWFrfWlmKDQmZnwwKXttYShsLFI9MHxCYShjLDAsMTA2Mjg4KSksaGwobCwwfEJhKGMsMCwxMDYyOTYpKSxwPTAsZj0xO2JyZWFrfTEmcWU/KDB8dWsocD0wfGxOKGMpLFp0LHcp''@;'; + put 'put ''KTw8MjQ+PjI0PyhobChsLDB8YVtadD4+Ml0pLFVmKGwsKGY9MHxhW1p0KzQ+PjJdKXx8MTM3MzE0LEE9MHxlcyhjLDB8YVs0NzE3M10sMCwwKSxtPStqblt3Pj4yXSksZj0oMiZxZSk+Pj4xfDIpOihobChsLHApLGY9MSk6NTc2JnFlPyhwPTB8bE4oYyksZj0xKToocD0wLGY9MCksUj0wfGt5''@;'; + put 'put ''KGwsYyl9fXdoaWxlKDApO2ZvcigwfGZlWzEyKyhBPTB8YVs4KygwfGFba3Q+PjJdKT4+Ml0pPj4wXT85OT09KDB8ZmVbKEE9MHxhW0E+PjJdKT4+MF0pPyhBPTA9PSgwfFppKEEsMTA1NTE5KSksbnQ9MzMpOks9MTooQT0xLG50PTMzKSwzMz09KDB8bnQpJiYoMCE9KDB8RCl8Zjw8MjQ+PjI0''@;'; + put 'put ''PT0wfChBXj0xKT9LPUE6KG1hKGwsMTM3Mzc5KSxEPTEsSz0wKSkscGU9KDB8RXQpPDMsZ2U9MCE9KDUxMiZxZXwwKSxPZT0wPT0oOCZxZXwwKSxiZT0wPT0oNjQmcWV8MCksaz0wPT0oMTAyNCZxZXwwKSxNPTA9PSgyMTMwNzA2NDQ0JnFlfDApLEc9MDshKCgwfEcpPj0oMHxEKSk7KXtmb3Io''@;'; + put 'put ''dz0wfEFyKEcsRXQpLGI9MHxhWzQ3Mjg2XSxBPTA7ISgoMHxBKT49KDB8RXQpKTspbT0rX1tXZSsoKEhuPUErd3wwKTw8NCkrOD4+M10sX1tiKyhBPDw0KT4+M109K19bMTYrKFNuPTB8YVtrdD4+Ml0pPj4zXSsgK19bV2UrKEhuPDw0KT4+M10qSGUsX1tiKyhBPDw0KSs4Pj4zXT0rX1tTbisy''@;'; + put 'put ''ND4+M10rbSpWZSxBPUErMXwwO2Rve2lmKCFwZSl7aWYoIWJlKXswPT0oMHxHKSYmKDB8d0YobCxiLHAsMSkpPjEmJihhW1JlPj4yXT0wfHRpKGMpLCRyKDMsMTA2MzA0LFJlKSksa2EobCwwfGFbNDcyODZdLEV0LDApO2JyZWFrfWlmKCFrKXttYShsLDEzNzM3OSksa2EobCwwfGFbNDcyODZd''@;'; + put 'put ''LEV0LDI1NSZmKSxtYShsLFIpLFdvKGwsMzIrKDB8YVs0NzI4Nl0pfDAsMik7YnJlYWt9aWYoZiY9MjU1LE0pe2thKGwsYixFdCxmKTticmVha31LNShsLGIsRXQscWUsZik7YnJlYWt9Z2UmMD09KDB8RykmJjAhPSgwfCRzKHAsNTgpKSYmKCgwfHBXKGwsYixwKSk+MSYmKGFbTGU+PjJdPTB8''@;'; + put 'put ''dGkoYyksJHIoMywxMDYzMDQsTGUpKSxmPTApLCR1KGwsMHxhWzQ3Mjg2XSxFdCwyNTUmZiksT2V8fHNOKGwsYyl9d2hpbGUoMCk7Rz1HKzF8MCxmPTB9aWYoMHxmZVsxMisoQT0wfGFbOCsoMHxhW2t0Pj4yXSk+PjJdKT4+MF0/OTk9PSgwfGZlWyhBPTB8YVtBPj4yXSk+PjBdKSYmMD09KDB8''@;'; + put 'put ''WmkoQSwxMDU1MTkpKT8wfChBPTB8TGkoYywxMDU1MjYpKSYmMHxmZVtBPj4wXSYmKGI9QSxudD02NSk6KGI9QSxudD02NSk6MHwoQT0wfExpKGMsMTA5MDI1KSkmJjB8ZmVbQT4+MF0mJihiPUEsbnQ9NjUpLDY1PT0oMHxudCkpe2Zvcih3PTB8YVs0NzI4Nl0sQT0wOyEoKDB8QSk+PSgwfEV0''@;'; + put 'put ''KSk7KW09K19bV2UrKEE8PDQpKzg+PjNdLF9bdysoQTw8NCk+PjNdPStfWzE2KyhIbj0wfGFba3Q+PjJdKT4+M10rICtfW1dlKyhBPDw0KT4+M10qSGUsX1t3KyhBPDw0KSs4Pj4zXT0rX1tIbisyND4+M10rbSpWZSxBPUErMXwwO0E9MjU1JmY7ZG97aWYoIShLfGY8PDI0Pj4yND09MCkpe2lm''@;'; + put 'put ''KHBlKXtpZihnZSYwPT0oMHxHKSYmMCE9KDB8JHMocCw1OCkpJiYoKDB8cFcobCx3LHApKT4xJiYoYVtvdD4+Ml09MHx0aShjKSwkcigzLDEwNjMwNCxvdCkpLGY9MCksJHUobCwwfGFbNDcyODZdLEV0LDI1NSZmKSxPZSlicmVhaztzTihsLGMpO2JyZWFrfWlmKGJlKXtpZigxMiZxZSl7SzUo''@;'; + put 'put ''bCx3LEV0LHFlLEEpO2JyZWFrfWthKGwsdyxFdCxBKTticmVha30oMHx3RihsLHcscCwxKSk+MSYmKGFbU3Q+PjJdPTB8dGkoYyksJHIoMywxMDYzMDQsU3QpKSxrYShsLDB8YVs0NzI4Nl0sRXQsMCk7YnJlYWt9fXdoaWxlKDApO3FNKGwsYixIbj0wfGFbNDcyODZdLEV0LGYsMHx2MihjLDB8''@;'; + put 'put ''YVs0NzE2Nl0sMTM3MzA4KSl9RnQoMHxhW1p0Pj4yXSksYjcobCwxMCwwfGFbMTA0KygwfGFba3Q+PjJdKT4+Ml0pLHN0JiYoNCZhW2wrMTUyPj4yXXwwJiZHMShsLDB8YVtidD4+Ml0sMHxhW2N0KzIyOD4+Ml0sMHxhW2N0KzI0ND4+Ml0sMHxhW2N0KzIxMj4+Ml0pLEVoKGwpKSxsZT1hbn0s''@;'; + put 'put ''ZnVuY3Rpb24gbmxlKGwsYyl7Y3w9MDt2YXIgYixrLE0sUixHLEssZj0wLHA9MCxtPTAsQT0wLHc9MCxEPTAscGU9MCxnZT0wLGJlPTA7Sz1sZSxsZT1sZSsxNnwwLG09SywwPT0oMHwoZj0wfGFbKEc9MjA4KyhSPTB8YVsxNisobHw9MCk+PjJdKXwwKT4+Ml0pKSYmMD09KDEmaXRbUisyNjA+''@;'; + put 'put ''PjFdKT9EPTA6KDQmYVtsKzE1Mj4+Ml18fEcxKGwsZiwwfGFbUisyMjg+PjJdLDB8YVtSKzI0ND4+Ml0sMHxhW1IrMjEyPj4yXSksRD0xKSxrPTB8YVs0NCsoQT0wfGFbMTIrKDB8YVsoYj1jKzE2fDApPj4yXSk+PjJdKT4+Ml0sTT0wfGFbQSs4Pj4yXSxBPTB8YVtBKzQ+PjJdLCgwfGFbNDcy''@;'; + put 'put ''OThdKTwoMHxNKSYmKGFbNDcyOThdPWY9TSsyfDAsZj0ocD0wfGFbNDcyOTldKT8wfFYwKHAsZjw8NCk6MHxRbihmPDw0KSxhWzQ3Mjk5XT1mKSwkSShjLG0pLGQyKGwsMzImYVttPj4yXT8yMjAxNjoyMjAyMCksMHwoZj0wfGFbNDcxNzJdKSYmeGgobCwrTWwoYyxmLDEsMCkpLGY9MHxYdFsx''@;'; + put 'put ''MTcrKDB8YVtiPj4yXSk+PjBdO2Rve2lmKCEoMSZmKSl7aWYoMiZmfDApe21hKGwsMHxCYShjLDAsMTA2MjU2KSksaGwobCxmPTB8QmEoYywwLDEwNjI2NCkpO2JyZWFrfWlmKDgmZnwwKXttYShsLDB8QmEoYywwLDEwNjI3MikpLGhsKGwsZj0wfEJhKGMsMCwxMDYyODApKTticmVha31pZig0''@;'; + put 'put ''JmYpe21hKGwsMHxCYShjLDAsMTA2Mjg4KSksaGwobCxmPTB8QmEoYywwLDEwNjI5NikpO2JyZWFrfWhsKGwsZj0wfHFRKGMsMTM3MzE0KSksa3kobCxjKTticmVha31tYShsLDB8QmEoYywwLDEwNjI0MCkpLGhsKGwsZj0wfEJhKGMsMCwxMDYyNDgpKX13aGlsZSgwKTtmb3IoQT9wPUE6KDB8''@;'; + put 'put ''ZmVbZj4+MF0mJm1hKGwsZikscD0xKSxtPTEsYz0wOyEoKDB8Yyk+PSgwfHApKTspe2ZvcihBPTB8QXIoYyxNKSx3PTB8YVs0NzI5OV0sZj0wOyEoKDB8Zik+PSgwfE0pKTspcGU9K19baysoKGJlPWYrQXwwKTw8NCkrOD4+M10sX1t3KyhmPDw0KT4+M109K19bMTYrKGdlPTB8YVtiPj4yXSk+''@;'; + put 'put ''PjNdKyArX1trKyhiZTw8NCk+PjNdLF9bdysoZjw8NCkrOD4+M109K19bZ2UrMjQ+PjNdK3BlLGY9ZisxfDA7JHUobCx3LE0sbSksbT0wLGM9YysxfDB9RCYmKDQmYVtsKzE1Mj4+Ml18MCYmRzEobCwwfGFbRz4+Ml0sMHxhW1IrMjI4Pj4yXSwwfGFbUisyNDQ+PjJdLDB8YVtSKzIxMj4+Ml0p''@;'; + put 'put ''LEVoKGwpKSxsZT1LfSxmdW5jdGlvbiAkYWUobCxjKXt2YXIgYixrLFIsRyxLLHBlLGJlLE9lLGdlLGY9MCxwPTAsbT0wLEE9MCx3PTAsTT0wLEQ9MDtiZT1sZSxsZT1sZSsxNDR8MCxiPWJlKzk2fDAsUj1iZSxHPWJlKzEyOHwwLGdlPShmPTB8YVsocGU9MjA4KyhLPTB8YVsxNisobHw9MCk+''@;'; + put 'put ''PjJdKXwwKT4+Ml0pPzE6MCE9KDEmaXRbSysyNjA+PjFdKSxhWyhNPWJlKzY0fDApPj4yXT1hWyhtPTE2KyhrPTB8YVsxMisoRD0wfGFbKHc9MTYrKGN8PTApfDApPj4yXSk+PjJdKXwwKT4+Ml0sYVtNKzQ+PjJdPWFbbSs0Pj4yXSxhW00rOD4+Ml09YVttKzg+PjJdLGFbTSsxMj4+Ml09YVtt''@;'; + put 'put ''KzEyPj4yXSxhW00rMTY+PjJdPWFbbSsxNj4+Ml0sYVtNKzIwPj4yXT1hW20rMjA+PjJdLGFbTSsyND4+Ml09YVttKzI0Pj4yXSxhW00rMjg+PjJdPWFbbSsyOD4+Ml0sX1tNPj4zXT0rX1tNPj4zXSsoT2U9K19bRCsxNj4+M10pLEE9K19bRCsyND4+M10sX1soRD1NKzh8MCk+PjNdPStfW0Q+''@;'; + put 'put ''PjNdK0EsX1soRD1NKzE2fDApPj4zXT0rX1tEPj4zXStPZSxfWyhtPU0rMjR8MCk+PjNdPStfW20+PjNdK0EsZ2UmJjA9PSg0JmFbbCsxNTI+PjJdfDApJiZHMShsLGYsMHxhW0srMjI4Pj4yXSwwfGFbSysyNDQ+PjJdLDB8YVtLKzIxMj4+Ml0pLGY9MHwkUShsLGMpLGt5KGwsYyksYVtHPj4y''@;'; + put 'put ''XT0wLDEmZj8oMHx1ayhwPTB8bE4oYyksRyxiKSk8PDI0Pj4yND8oaGwobCwwfGFbRz4+Ml0pLFVmKGwsKHA9MHxhW0crND4+Ml0pfHwxMzczMTQsbT0wfGVzKGMsMHxhWzQ3MTczXSwwLDApLEE9K2puW2I+PjJdKSxwPWY+Pj4xJjF8Mik6KGhsKGwscCkscD0xKTpwPTAsNzc9PSgwfGZlWyht''@;'; + put 'put ''PTB8YVthWzgrKDB8YVt3Pj4yXSk+PjJdPj4yXSk+PjBdKSYmKGY9KHc9MD09KDB8WmkobSwxMDYyMjcpKSk/NHxmOmYpLDIxMzA3MDY0NDQmZj8oYVtSPj4yXT1hW00+PjJdLGFbUis0Pj4yXT1hW00rND4+Ml0sYVtSKzg+PjJdPWFbTSs4Pj4yXSxhW1IrMTI+PjJdPWFbTSsxMj4+Ml0sYVso''@;'; + put 'put ''TT1SKzMyfDApPj4yXT1hW0Q+PjJdLGFbTSs0Pj4yXT1hW0QrND4+Ml0sYVtNKzg+PjJdPWFbRCs4Pj4yXSxhW00rMTI+PjJdPWFbRCsxMj4+Ml0sX1tSKzE2Pj4zXT0rX1tNPj4zXSxfW1IrMjQ+PjNdPStfW1IrOD4+M10sX1tSKzQ4Pj4zXT0rX1tSPj4zXSxfW1IrNTY+PjNdPStfW1IrNDA+''@;'; + put 'put ''PjNdLEs1KGwsUiw0LGYscCkpOihhW2I+PjJdPWFbTT4+Ml0sYVtiKzQ+PjJdPWFbTSs0Pj4yXSxhW2IrOD4+Ml09YVtNKzg+PjJdLGFbYisxMj4+Ml09YVtNKzEyPj4yXSxhW2IrMTY+PjJdPWFbTSsxNj4+Ml0sYVtiKzIwPj4yXT1hW00rMjA+PjJdLGFbYisyND4+Ml09YVtNKzI0Pj4yXSxh''@;'; + put 'put ''W2IrMjg+PjJdPWFbTSsyOD4+Ml0seTMobCxiLHApKSxySihsLGMsayksRnQoMHxhW0c+PjJdKSxnZSYmKDQmYVtsKzE1Mj4+Ml18MCYmRzEobCwwfGFbcGU+PjJdLDB8YVtLKzIyOD4+Ml0sMHxhW0srMjQ0Pj4yXSwwfGFbSysyMTI+PjJdKSxFaChsKSksbGU9YmV9LGZ1bmN0aW9uIEphZShs''@;'; + put 'put ''LGMpe3ZhciBmLHAsQSx3LE0sYixtPTAsaz0wLEQ9MCxSPTA7TT1sZSxsZT1sZSszMnwwLGs9TSxiPShtPTB8YVsodz0yMDgrKEE9MHxhWzE2KyhsfD0wKT4+Ml0pfDApPj4yXSk/MTowIT0oMSZpdFtBKzI2MD4+MV0pLDB8KHA9MHxhWzEyKyhjPTB8YVsoZj0xNisoY3w9MCl8MCk+PjJdKT4+''@;'; + put 'put ''Ml0pJiYoYiYmMD09KDQmYVtsKzE1Mj4+Ml18MCkmJihHMShsLG0sMHxhW0ErMjI4Pj4yXSwwfGFbQSsyNDQ+PjJdLDB8YVtBKzIxMj4+Ml0pLGM9MHxhW2Y+PjJdKSxtPTB8YVtsKzM2Pj4yXSxSPStfW2MrMjQ+PjNdKyArKDB8YVtwKzg+PjJdKSxEPTB8YVtwPj4yXSxfW2s+PjNdPStfW2Mr''@;'; + put 'put ''MTY+PjNdKyArKDB8YVtwKzQ+PjJdKSxfW2srOD4+M109UixhW2srMTY+PjJdPUQsVDAobSwxMDY0NTAsayksYVsoaz01NisoMHxhWzEwNCsobT0wfGFbZj4+Ml0pPj4yXSl8MCk+PjJdPWFbKG09bSsxNnwwKT4+Ml0sYVtrKzQ+PjJdPWFbbSs0Pj4yXSxhW2srOD4+Ml09YVttKzg+PjJdLGFb''@;'; + put 'put ''aysxMj4+Ml09YVttKzEyPj4yXSxiNyhsLDEwLDB8YVsxMDQrKDB8YVtmPj4yXSk+PjJdKSxiJiYoNCZhW2wrMTUyPj4yXXwwJiZHMShsLDB8YVt3Pj4yXSwwfGFbQSsyMjg+PjJdLDB8YVtBKzI0ND4+Ml0sMHxhW0ErMjEyPj4yXSksRWgobCkpKSxsZT1NfSxmdW5jdGlvbiBqYWUobCxjKXt2''@;'; + put 'put ''YXIgcCxmPTA7X1sobHw9MCk+PjNdPTQuOTc5Nzk2NTY5NzY1NTYqKGY9KHA9LjUyNTczMTExMjExOTEzMzYqK19bKGN8PTApPj4zXSk+KGY9Ljg5NDQyNzE5MDk5OTkxNTkqK19bYys4Pj4zXSk/cDpmKSxfW2wrOD4+M109NC43MzYwNjc5Nzc0OTk3OSpmfSxmdW5jdGlvbiBaYWUobCxjKXts''@;'; + put 'put ''fD0wO3ZhciB3LGIsTSxmPTAscD0wLG09MCxBPTAsaz0wLEQ9MCxSPTA7Zm9yKChmPShtPStfWyhNPTgrKGN8PTApfDApPj4zXSkvKHA9K19bYz4+M10pKT4uOTUxMDU2NTE2Mjk1MTUzNj9rPTEuMDUxNDYyMjI0MjM4MjY3MiptOmY8Ljk1MTA1NjUxNjI5NTE1MzY/KGs9cCxtPS45NTEwNTY1''@;'; + put 'put ''MTYyOTUxNTM2KnApOms9cCxwPS41MjU3MzExMTIxMTkxMzM2Kmssdz0uMjAwODExNDE1ODg2MjI3MjUqayxiPS4wNTAyMDI4NTM5NzE1NTY4MSprLGY9LjMxNDE1OTI2NTM1ODk3OTMsQT0wOyEoKDB8QSk+PTEwKTspX1tsKyhBPDw0KT4+M109K2hhKCtmKSpwLF9bbCsoQTw8NCkrOD4+M109''@;'; + put 'put ''K0RhKCtmKSpwLWIsX1tsKygoRD0xfEEpPDw0KT4+M109K2hhKCsoUj1mKy42MjgzMTg1MzA3MTc5NTg2KSkqdyxfW2wrKEQ8PDQpKzg+PjNdPStEYSgrUikqdy1iLGYrPTEuMjU2NjM3MDYxNDM1OTE3MixBPUErMnwwO19bYz4+M109ayxfW00+PjNdPW19LGZ1bmN0aW9uIGVsZShsLGMpe3Zh''@;'; + put 'put ''ciBmO2x8PTAsX1soZj04KyhjfD0wKXwwKT4+M109MS4zNzUqK19bZj4+M10sYVtsPj4yXT1hW2M+PjJdLGFbbCs0Pj4yXT1hW2MrND4+Ml0sYVtsKzg+PjJdPWFbYys4Pj4yXSxhW2wrMTI+PjJdPWFbYysxMj4+Ml19LGZ1bmN0aW9uIHRsZShsLGMpe3ZhciBwLG0sYixNLEQsZj0wLEE9MCx3''@;'; + put 'put ''PTAsaz0wO3c9LjUqKEQ9K19bOCsoY3w9MCk+PjNdKSxfWyhsfD0wKT4+M109bT0uNSooaz0rX1tjPj4zXSksX1tsKzg+PjNdPXA9LjQwOTA5MDkwOTA5MDkwOTA2KkQsX1tsKzE2Pj4zXT1tLF9bbCsyND4+M109QT0uNDU5MjUzMDkwOTA5MDkwOSpELF9bbCszMj4+M109Yj0uMjc1ODkyKmss''@;'; + put 'put ''X1tsKzQwPj4zXT13LF9bbCs0OD4+M109MCxfW2wrNTY+PjNdPXcsX1tsKzY0Pj4zXT1rKj0tLjI3NTg5MixfW2wrNzI+PjNdPXcsX1tsKzgwPj4zXT1NPS1tLF9bbCs4OD4+M109QSxfWyhmPWwrOTZ8MCk+PjNdPU0sX1tsKzEwND4+M109cCxhWyhjPWwrMTEyfDApPj4yXT1hW2Y+PjJdLGFb''@;'; + put 'put ''Yys0Pj4yXT1hW2YrND4+Ml0sYVtjKzg+PjJdPWFbZis4Pj4yXSxhW2MrMTI+PjJdPWFbZisxMj4+Ml0sX1soYz1sKzEyOHwwKT4+M109TSxfW2wrMTM2Pj4zXT0tLjQwOTA5MDkwOTA5MDkwOTA2KkQsYVsoZj1sKzE0NHwwKT4+Ml09YVtjPj4yXSxhW2YrND4+Ml09YVtjKzQ+PjJdLGFbZis4''@;'; + put 'put ''Pj4yXT1hW2MrOD4+Ml0sYVtmKzEyPj4yXT1hW2MrMTI+PjJdLF9bbCsxNjA+PjNdPU0sX1tsKzE2OD4+M109QT0tQSxfW2wrMTc2Pj4zXT1rLF9bbCsxODQ+PjNdPXc9LXcsX1tsKzE5Mj4+M109MCxfW2wrMjAwPj4zXT13LF9bbCsyMDg+PjNdPWIsX1tsKzIxNj4+M109dyxfW2wrMjI0Pj4z''@;'; + put 'put ''XT1tLF9bbCsyMzI+PjNdPUEsX1soZj1sKzI0MHwwKT4+M109bSxfW2wrMjQ4Pj4zXT0tcCxhWyhjPWwrMjU2fDApPj4yXT1hW2Y+PjJdLGFbYys0Pj4yXT1hW2YrND4+Ml0sYVtjKzg+PjJdPWFbZis4Pj4yXSxhW2MrMTI+PjJdPWFbZisxMj4+Ml0sYz1sKzI4OHwwLGFbKGY9bCsyNzJ8MCk+''@;'; + put 'put ''PjJdPWFbbD4+Ml0sYVtmKzQ+PjJdPWFbbCs0Pj4yXSxhW2YrOD4+Ml09YVtsKzg+PjJdLGFbZisxMj4+Ml09YVtsKzEyPj4yXSxhW2M+PjJdPWFbbD4+Ml0sYVtjKzQ+PjJdPWFbbCs0Pj4yXSxhW2MrOD4+Ml09YVtsKzg+PjJdLGFbYysxMj4+Ml09YVtsKzEyPj4yXX0sZnVuY3Rpb24geWIo''@;'; + put 'put ''bCxjKXt2YXIgbSxBLHcsYixmPTAscD0wO2lmKGI9bGUsbGU9bGUrMTZ8MCxmPWIsbT0oK19bOCsoY3w9MCk+PjNdLStfWzU2OCsobHw9MCk+PjNdKS8rX1tsKzUyOD4+M10sISgrZW8oKyh3PSgrX1tjPj4zXS0rX1soQT1sKzU2MHwwKT4+M10pLytfW2wrNTIwPj4zXSkpPDFlLTQmK2VvKCtt''@;'; + put 'put ''KTwxZS00KSl7c3dpdGNoKDB8ZmVbbCs1NDE+PjBdKXtjYXNlIDA6YVtmPj4yXT1hW2M+PjJdLGFbZis0Pj4yXT1hW2MrND4+Ml0sYVtmKzg+PjJdPWFbYys4Pj4yXSxhW2YrMTI+PjJdPWFbYysxMj4+Ml0sTTkobCxmKTticmVhaztjYXNlIDI6cD0rX1tsKzM1Mj4+M10sMHxhW2wrMzYwPj4y''@;'; + put 'put ''XT8oX1soZj1sKzMzNnwwKT4+M109K19bZj4+M10tbS9wLF9bKGY9bCszNDR8MCk+PjNdPStfW2Y+PjNdK3cvcCk6KF9bKGY9bCszMzZ8MCk+PjNdPStfW2Y+PjNdLXcvcCxfWyhmPWwrMzQ0fDApPj4zXT0rX1tmPj4zXS1tL3ApLGZlW2wrNTM3Pj4wXT0xfWFbQT4+Ml09YVtjPj4yXSxhW0Er''@;'; + put 'put ''ND4+Ml09YVtjKzQ+PjJdLGFbQSs4Pj4yXT1hW2MrOD4+Ml0sYVtBKzEyPj4yXT1hW2MrMTI+PjJdfWxlPWJ9LGZ1bmN0aW9uIHF6KGwsYyl7RFQobD0wfGFbKGx8PTApPj4yXSwwfGFbbCsxNjg+PjJdLGN8PTApfSxYNixYbSxmdW5jdGlvbiBxRyhsLGMpe1luKGN8PTAsbHw9MCwxKX0sZnVu''@;'; + put 'put ''Y3Rpb24gJG9lKGwsYyl7bHw9MDt2YXIgYixrLE0sUixmPTAscD0wLG09MCxBPTAsdz0wLEQ9MDtSPWxlLGxlPWxlKzE2fDAsRD1SLE09KGN8PTApLTQ4fDAsYj1jKzQ4fDAsbT0oMHxhWzIzMisoMHxhWzE2KygwfGFbKDI9PSgwfChtPTMmYVtjPj4yXSkpP2M6TSkrNDA+PjJdKT4+Ml0pPj4y''@;'; + put 'put ''XSktKDB8YVsyMzIrKDB8YVsxNisoMHxhWygzPT0oMHxtKT9jOmIpKzQwPj4yXSk+PjJdKT4+Ml0pLSgwfGhyWzE3MCsoMHxhWyhrPWMrMTZ8MCk+PjJdKT4+MV0pfDA7ZG97aWYoKDB8bSk+MCl7aWYoMT09KCgwfGFbMjc2Kyh3PTB8YVsxNisoQT0wfGFbKDM9PSgwfChmPTMmYVtsPj4yXSkp''@;'; + put 'put ''P2w6bCs0OHwwKSs0MD4+Ml0pPj4yXSk+PjJdKSsoMHxhW3crMjY4Pj4yXSl8MCkpe1g1KEEsbSk7YnJlYWt9aWYoMT09KCgwfGFbMjc2KyhwPTB8YVsxNisoZj0wfGFbKDI9PSgwfGYpP2w6bCstNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSkrKDB8YVtwKzI2OD4+Ml0pfDApKXtYNShmLDAtbXww''@;'; + put 'put ''KTticmVha31pZigoMHxhW3crMjg4Pj4yXSk8KDB8YVtwKzI4OD4+Ml0pKXtYNShBLG0pO2JyZWFrfVg1KGYsMC1tfDApO2JyZWFrfX13aGlsZSgwKTtpZihtPTB8QVEoMHxhWygzPT0oMHwobT0zJmFbYz4+Ml0pKT9jOmIpKzQwPj4yXSwwfGFbKDI9PSgwfG0pP2M6TSkrNDA+PjJdLHA9MHxh''@;'; + put 'put ''WzE2MCsoMHxhWyhmPWwrMTZ8MCk+PjJdKT4+Ml0sMSksKDB8QVEoMHxhWygyPT0oMHwodz0zJmFbYz4+Ml0pKT9jOk0pKzQwPj4yXSwwfGFbKDM9PSgwfHcpP2M6YikrNDA+PjJdLHAsMCkpPT0oMHxtKSlyZXR1cm4gYVsxNjArKDB8YVtrPj4yXSk+PjJdPTAtcCxhWzE2MCsoMHxhW2Y+PjJd''@;'; + put 'put ''KT4+Ml09MCxmdW5jdGlvbiBxb2UobCxjKXt2YXIgZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MDtmb3IoYVsxNjQrKDB8YVsxNisoY3w9MCk+PjJdKT4+Ml09YVsocD0xNjQrKDB8YVsoYj0xNisobHw9MCl8MCk+PjJdKXwwKT4+Ml0sYVsoMHxhWzQ3MjU2XSkrKGFbcD4+Ml08PDIp''@;'; + put 'put ''Pj4yXT1jLGFbMTY0KygwfGFbYj4+Ml0pPj4yXT0tMSxhWyhBPTI3NisocD0wfGFbKGI9MTYrKDB8YVsoMz09KDMmYVtsPj4yXXwwKT9sOmwrNDh8MCkrNDA+PjJdKXwwKT4+Ml0pfDApPj4yXT1rPShtPTB8YVtBPj4yXSktMXwwLEE9cCsyNzJ8MCx3PTA7Oyl7aWYoKDB8dyk+PSgwfG0pKXtN''@;'; + put 'put ''PTM7YnJlYWt9aWYoKDB8YVsoZj0wfGFbQT4+Ml0pKyh3PDwyKT4+Ml0pPT0oMHxsKSlicmVhazt3PXcrMXwwfWZvcigzPT0oMHxNKSYmKGY9MHxhW3ArMjcyPj4yXSksYVtmKyh3PDwyKT4+Ml09YVtmKyhrPDwyKT4+Ml0sYVsoMHxhWzI3MisoMHxhW2I+PjJdKT4+Ml0pKyhrPDwyKT4+Ml09''@;'; + put 'put ''MCxhWyhBPTI2OCsocD0wfGFbKGI9MTYrKDB8YVsoMj09KDMmYVtsPj4yXXwwKT9sOmwrLTQ4fDApKzQwPj4yXSl8MCk+PjJdKXwwKT4+Ml09az0obT0wfGFbQT4+Ml0pLTF8MCxBPXArMjY0fDAsdz0wOzspe2lmKCgwfHcpPj0oMHxtKSl7TT04O2JyZWFrfWlmKCgwfGFbKGY9MHxhW0E+PjJd''@;'; + put 'put ''KSsodzw8Mik+PjJdKT09KDB8bCkpYnJlYWs7dz13KzF8MH04PT0oMHxNKSYmKGY9MHxhW3ArMjY0Pj4yXSksYVtmKyh3PDwyKT4+Ml09YVtmKyhrPDwyKT4+Ml0sYVsoMHxhWzI2NCsoMHxhW2I+PjJdKT4+Ml0pKyhrPDwyKT4+Ml09MCxrPTB8YVsyNzIrKGw9MHxhWyhNPTE2KygwfGFbKDM9''@;'; + put 'put ''PSgzJmFbYz4+Ml18MCk/YzpjKzQ4fDApKzQwPj4yXSl8MCk+PjJdKT4+Ml0sYVsobD1sKzI3NnwwKT4+Ml09MSsoYj0wfGFbbD4+Ml0pLGFbaysoYjw8Mik+PjJdPWMsYVsoMHxhWzI3MisoTT0wfGFbTT4+Ml0pPj4yXSkrKGFbTSsyNzY+PjJdPDwyKT4+Ml09MCxrPTB8YVsyNjQrKGI9MHxh''@;'; + put 'put ''WyhNPTE2KygwfGFbKDI9PSgzJmFbYz4+Ml18MCk/YzpjKy00OHwwKSs0MD4+Ml0pfDApPj4yXSk+PjJdLGFbKGI9YisyNjh8MCk+PjJdPTErKGw9MHxhW2I+PjJdKSxhW2srKGw8PDIpPj4yXT1jLGFbKDB8YVsyNjQrKE09MHxhW00+PjJdKT4+Ml0pKyhhW00rMjY4Pj4yXTw8Mik+PjJdPTB9''@;'; + put 'put ''KGwsYyksUUkobSwwfGFbMjgwKyhEPTB8YVttKzE2Pj4yXSk+PjJdLDB8YVtEKzI4ND4+Ml0pLHZvaWQobGU9Uik7JHIoMSwxMDIyNjIsRCksemUoMTg4ODQ4LDEpfSxmdW5jdGlvbiBZaShsLGMpe2N8PTA7dmFyIHcsYixrLE0sRCxHLEssZj0wLHA9MCxtPTAsQT0wLFI9MCxwZT0wO2ZvcihL''@;'; + put 'put ''PWxlLGxlPWxlKzY0fDAsRz1LKzMyfDAsUj1LKzE2fDAsYj1LLGs9Sys0OHwwLF91KDExMDkzNSxsfD0wKSxfdSgxMTA5NDYsbCksTT1jKzE2fDAsRD1iKzh8MCx3PWsrNHwwLEE9MDshKCgwfEEpPj0oMHxhW2M+PjJdKSk7KSgwfChwPTB8YVsoZj0wfGFbTT4+Ml0pKyg0MCpBfDApKzIwPj4y''@;'; + put 'put ''XSkpPT0oMHwobT0wfGFbZisoNDAqQXwwKSsyND4+Ml0pKT8oaDIoYixwKSxmPX5+K19bYj4+M10scD1+fitfW0Q+PjNdKToobG0oaywwPT0oMSZhW3A+PjJdfDApP3A6bSxmKyg0MCpBfDApfDApLGY9MHxhW2s+PjJdLHA9MHxhW3c+PjJdKSxhW1I+PjJdPUEsYVtSKzQ+PjJdPWYsYVtSKzg+''@;'; + put 'put ''PjJdPXAsVDAobCwxMTA5NjYsUiksQT1BKzF8MDtmb3IobT1jKzR8MCxwPWMrMjB8MCxmPTA7ISgoMHxmKT49KDB8YVttPj4yXSkpOyljPTB8YVsoUj0wfGFbcD4+Ml0pKygyNCpmfDApKzE2Pj4yXSxwZT0rX1tSKygyNCpmfDApPj4zXSxhW0c+PjJdPWFbUisoMjQqZnwwKSsxMj4+Ml0sYVtH''@;'; + put 'put ''KzQ+PjJdPWMsX1tHKzg+PjNdPXBlLFQwKGwsMTEwOTg2LEcpLGY9ZisxfDA7X3UoMTExMDA4LGwpLGxlPUt9LGZ1bmN0aW9uIENCKGwsYyl7Y3w9MDtkb3tpZigwfHkwKGMsMTQwNjAzKSl7aWYoMHx5MChjLDE0MDYwOSkmJjB8eTAoYywxNDA2MTIpKXtpZighKDB8eTAoYywxNDA2MTUpKSl7''@;'; + put 'put ''YVs0NzQwOV09MjY1LGZlWzE4OTY2Ml09MDticmVha31pZighKDB8eTAoYywxNDA2MTgpKSl7YVs0NzQwOV09MjYzO2JyZWFrfWlmKCEoMHx5MChjLDE0MDYyMykpKXthWzQ3NDA5XT0yNjY7YnJlYWt9aWYoISgwfHkwKGMsMTQwNjI4KSkpe2FbNDc0MDldPTI3MDticmVha31pZighKDB8eTAo''@;'; + put 'put ''YywxNDA2MzApKSl7YVs0NzQwOV09MjcxO2JyZWFrfWlmKCEoMHx5MChjLDE0MDYzMikpKXthWzQ3NDA5XT0yNzI7YnJlYWt9aWYoISgwfHkwKGMsMTQwNjM0KSkpe2FbNDc0MDldPTI2OTticmVha31pZighKDB8eTAoYywxNDA2MzYpKSl7YVs0NzQwOV09MjczO2JyZWFrfWlmKCEoMHx5MChj''@;'; + put 'put ''LDE0MDY0MCkpKXthWzQ3NDA5XT0yNzQ7YnJlYWt9aWYoISgwfHkwKGMsMTQwNjQ0KSkpe2FbNDc0MDldPTI3NTticmVha31pZighKDB8eTAoYywxNDA2NDYpKSl7YVs0NzQwOV09MjgzPT0oMHxhWzQ3NDA5XSk/MjgyOjI1ODticmVha31pZighKDB8eTAoYywxNDA2NDkpKSl7YVs0NzQwOV09''@;'; + put 'put ''Mjc3PT0oMHxhWzQ3NDA5XSk/Mjc2OjI3ODticmVha31pZighKDB8eTAoYywxNDA2NTIpKSl7YVs0NzQwOV09MjgwPT0oMHxhWzQ3NDA5XSk/Mjc5OjI4MTticmVha31pZigwfHkwKGMsMTQwNjU1KSl7R0UoYyk7YnJlYWt9YVs0NzQwOV09Mjg1PT0oMHxhWzQ3NDA5XSk/Mjg0OjI1OTticmVh''@;'; + put 'put ''a31hWzQ3NDA5XT0yNjF9ZWxzZSBhWzQ3NDA5XT0yNjQsZmVbMTg5NjYyXT0xfXdoaWxlKDApfSxhNSxmdW5jdGlvbiBwRyhsLGMpe2x8PTAsY3w9MDt2YXIgdyxiLGY9MCxwPTAsbT0wLEE9MDtiPWxlLGxlPWxlKzE2fDAsdz1iO2U6Zm9yKDs7KXtpZighKCgwfGMpPjMpKXtjPTk7YnJlYWt9''@;'; + put 'put ''Zm9yKHA9MDs7KXtpZigoMHxwKT49KDB8Yykpe2M9ODticmVhayBlfWlmKGY9KDB8KG09cCsxfDApKSUoMHxjKXwwLDB8ckEocCxBPShwKzJ8MCklKDB8Yyl8MCxsLGMpKWJyZWFrO3A9bX1mb3IocngoMHxhW2wrKHA8PDIpPj4yXSwwfGFbbCsoZjw8Mik+PjJdLDB8YVtsKyhBPDwyKT4+Ml0p''@;'; + put 'put ''LGM9YystMXwwOzspe2lmKCgwfGYpPj0oMHxjKSljb250aW51ZSBlO2FbbCsoZjw8Mik+PjJdPWFbbCsoKEE9ZisxfDApPDwyKT4+Ml0sZj1BfX04PT0oMHxjKT8obD0wfGFbMTU3MTJdLGFbdz4+Ml09MTQxODU4LGFbdys0Pj4yXT0zMjQsYVt3Kzg+PjJdPTE0MjAwMyxUMChsLDE0MTgzOSx3''@;'; + put 'put ''KSk6OT09KDB8YykmJnJ4KDB8YVtsPj4yXSwwfGFbbCs0Pj4yXSwwfGFbbCs4Pj4yXSksbGU9Yn0sZnVuY3Rpb24gc18obCxjKXt2YXIgYixrLE0sZj0wLHA9MCxtPTAsQT0wLHc9MCxEPTAsUj0wLEc9MCxLPTA7Zm9yKGs9KGI9MHxhWzQ3NTEzXSkrKDUyKihsfD0wKXwwKXwwLE09YisoNTIq''@;'; + put 'put ''KGN8PTApfDApfDAsQT0wOzMhPSgwfEEpOyl7Zm9yKEQ9YisoNTIqbHwwKSs0KyhBPDw0KXwwLFI9YisoNTIqbHwwKSs0KyhBPDw0KSs0fDAsRz1iKyg1MipsfDApKzQrKEE8PDQpKzEyfDAsbT0wOzMhPSgwfG0pOykoMHwoSz0wfGFbYVtEPj4yXT4+Ml0pKT09KDB8KHc9MHxhW2FbYisoNTIq''@;'; + put 'put ''Y3wwKSs0KyhtPDw0KT4+Ml0+PjJdKSk/cD0oMHxhW2FbUj4+Ml0+PjJdKT09KDB8KGY9MHxhW2FbYisoNTIqY3wwKSs0KyhtPDw0KSs0Pj4yXT4+Ml0pKT8xMDo4OihmPTB8YVthW2IrKDUyKmN8MCkrNCsobTw8NCkrND4+Ml0+PjJdLHA9OCksOD09KDB8cCkmJihwPTAsKDB8Syk9PSgwfGYp''@;'; + put 'put ''KSYmKDB8YVthW1I+PjJdPj4yXSk9PSgwfHcpJiYocD0xMCksMTA9PSgwfHApJiYoYVtHPj4yXT1NLGFbYisoNTIqY3wwKSs0KyhtPDw0KSsxMj4+Ml09ayksbT1tKzF8MDtBPUErMXwwfX0sZnVuY3Rpb24gbUcobCxjKXtjfD0wO3ZhciBwLGY9MCxtPTA7bT0oMHwoZj0wfGFbNDc1MDhdKSk+''@;'; + put 'put ''PSgwfChwPTB8YVs0NzUwN10pKSwxPT0oMHwobHw9MCkpP20/KGFbYys0Pj4yXT1hWygwfGFbNDc1MDVdKSsocDw8Mik+PjJdLGw9MTkwMDI4LGY9LTEpOihsPTE5MDAyOCxmPS0xKTptPyhhW2MrND4+Ml09YVsoMHxhWzQ3NTA1XSkrKGY8PDIpPj4yXSxsPTE5MDAzMixmPTEpOihsPTE5MDAz''@;'; + put 'put ''MixmPTEpLGFbbD4+Ml09bT0oMHxhW2w+PjJdKStmfDAsYVsoMHxhWzQ3NTA1XSkrKG08PDIpPj4yXT1jfSxmdW5jdGlvbiBaNChsLGMpe2FbKDE9PSgwfChsfD0wKSk/MTkwMDMyOjE5MDAyOCk+PjJdPWN8PTB9LERzLERzLERzLERzLERzLERzLERzLERzLERzLERzLERzLERzLERzLERzLERz''@;'; + put 'put ''LERzLERzLERzLERzLERzLERzLERzLERzLERzLERzLERzLERzLERzLERzLERzLERzXSxkbD1bTTAsZnVuY3Rpb24gaWllKGwsYyxmKXtjfD0wLGZ8PTA7dmFyIG0sQSx3LE0sRCxLLHBlLHA9MCxiPTAsaz0wLFI9MCxHPTA7cGU9bGUsbGU9bGUrMTA1NnwwLEE9cGUrMTZ8MCxLPXBlKzh8MCxH''@;'; + put 'put ''PXBlLHc9cGUrMzJ8MCx1byhEPTB8YVsxMTQxNisoKE09MHxhWzEyKygwfGFbMTYrKGx8PTApPj4yXSk+PjJdKTw8Mik+PjJdLDY2OTE2KSxXaCh3LCtfWzE2KygwfGFbKHA9Zis0fDApPj4yXSk+PjNdKSx1byhELHcpLFA1KGwsMTk1MDU5LDB8YVthW3A+PjJdPj4yXSksTkMobCksUj0oUj0w''@;'; + put 'put ''fGZlW2YrNDg+PjBdKTw8MjQ+PjI0PT0xMDg/LTE6Ujw8MjQ+PjI0PT0xMTQmMSxwPShwPTB8YVtwPj4yXSk/MTI3JmFbcCsyND4+Ml06MCwoNjU1MzUmKG09MHxpdFs4MjMyKygwfGFbNDY2OTBdKT4+MV0pKT4xNCYmKDB8YVsoaz0xODY3NjQrKE08PDIpfDApPj4yXSkhPSgwfChiPWFbMTE0''@;'; + put 'put ''NjQrKCg2NTUzNSZtKS0xNTw8Mik+PjJdJnApKSYmKGFbRz4+Ml09Yixvbyh3LDY2OTE5LEcpLHVvKEQsdyksYVtrPj4yXT1iKSxfWyhHPWMrOHwwKT4+M109K19bRz4+M10rICtfW2YrMjQ+PjNdLHVvKEQsNjY5MjUpLGFbQT4+Ml09YVtjPj4yXSxhW0ErND4+Ml09YVtjKzQ+PjJdLGFbQSs4''@;'; + put 'put ''Pj4yXT1hW2MrOD4+Ml0sYVtBKzEyPj4yXT1hW2MrMTI+PjJdLEI1KEQsQSksYVtLPj4yXT1SLG9vKHcsMTAyMjIwLEspLHVvKEQsdyksV2godywrX1tmKzMyPj4zXSksdW8oRCx3KSxQNShsLDE5NTA1OSwwfGFbZj4+Ml0pLGxlPXBlfSxmdW5jdGlvbiBFVyhsLGMsZil7dmFyIHAsbSxBLHc7''@;'; + put 'put ''Y3w9MCxmfD0wLHc9bGUsbGU9bGUrMTA0MHwwLG09dyxBPXcrMTZ8MCxwPTB8YVsxMisoMHxhWzE2KyhsfD0wKT4+Ml0pPj4yXSxqVChsKSxOQyhsKSxmPygzPT0oMXxmKT94RihsLGYsYywyKTpaVChsKSx1byhsPTB8YVsxMTQxNisocDw8Mik+PjJdLDY2OTEwKSk6dW8obD0wfGFbMTE0MTYr''@;'; + put 'put ''KHA8PDIpPj4yXSw2NjkxMyksYVttPj4yXT1hW2M+PjJdLGFbbSs0Pj4yXT1hW2MrND4+Ml0sYVttKzg+PjJdPWFbYys4Pj4yXSxhW20rMTI+PjJdPWFbYysxMj4+Ml0sQjUobCxtKSxXaChBLCtfW2MrMTY+PjNdLStfW2M+PjNdKSx1byhsLEEpLFdoKEEsK19bYysyND4+M10tK19bYys4Pj4z''@;'; + put 'put ''XSksdW8obCxBKSxsZT13fSxmdW5jdGlvbiBLZChsLGMsZil7Y3w9MCxmfD0wLGpUKGx8PTApLE5DKGwpLFZDKGwsNzYsYyxmKX0sZnVuY3Rpb24gZmllKGwsYyxmKXtGdCgwfGFbOCsoY3w9MCk+PjJdKSxGdChjKX0sZnVuY3Rpb24gcGllKGwsYyxmKXtjfD0wO3ZhciBtLEEsdyxiLGssTSxE''@;'; + put 'put ''LFIsRyxLLHBlLHA9MDtSPWxlLGxlPWxlKzgwfDAsRD1SLGs9MHxhWzE2KygwfGFbMTYrKGx8PTApPj4yXSk+PjJdLE09MHxhWzQ2NzEwXSxBPTB8YVtsKzM2MD4+Ml0/MS41NzA3OTYzMjY3OTQ4OTY2OjAsYj0uMzMzMzMzMzMzMzMzMzMzMyoobT0rX1tsKzM1Mj4+M10qK19bMTYrKHA9MHxh''@;'; + put 'put ''WzQrKGZ8PTApPj4yXSk+PjNdKSorKCgwfFVvKHc9MHxhW2Y+PjJdKSk+Pj4wKSxwPShwPTB8YVtwKzg+PjJdKT8wfGFbcCsyMD4+Ml06LTEscGU9MHxmZVtmKzQ4Pj4wXSxLPStfW2M+PjNdLEc9K19bYys4Pj4zXSxmPTB8ZnVuY3Rpb24gekMobCl7bHw9MDt2YXIgQSx3LGM9MCxmPTAscD0w''@;'; + put 'put ''LG09MDtmb3Iodz1sZSxsZT1sZSsxNnwwLEE9dywoYz0wfGFbNDY3MTJdKXx8KGFbNDY3MTNdPTY0LGM9MHxCMCg2NCksYVs0NjcxMl09YyksZj0wO209bCsxfDAsKHA9MHxmZVtsPj4wXSk8PDI0Pj4yNDspKDB8Zik+KChsPTB8YVs0NjcxM10pLTh8MCkmJihhWzQ2NzEzXT1jPWw8PDEsYz0w''@;'; + put 'put ''fFVhKDB8YVs0NjcxMl0sYyksYVs0NjcxMl09YyxjPWMrZnwwKSxwPDwyND4+MjQ8PS0xPyhmZVtjPj4wXT05MixhW0E+PjJdPTI1NSZwLG9vKGMrMXwwLDgxMjI0LEEpLGw9bSxjPWMrNHwwLGY9Zis0fDApOihwPDwyND4+MjQ9PTkyJiYoZmVbYz4+MF09OTIsZj1mKzF8MCxjPWMrMXwwKSxm''@;'; + put 'put ''ZVtjPj4wXT1wLGw9bSxjPWMrMXwwLGY9ZisxfDApO3JldHVybiBmZVtjPj4wXT0wLGxlPXcsMHxhWzQ2NzEyXX0odyksYVtEPj4yXT00LGFbRCs0Pj4yXT1wZTw8MjQ+PjI0PT0xMDg/MDpwZTw8MjQ+PjI0PT0xMTQ/MjoxLGFbRCs4Pj4yXT1rLGFbRCsxMj4+Ml09TSxhW0QrMTY+PjJdPTAs''@;'; + put 'put ''YVtEKzIwPj4yXT1wLF9bRCsyND4+M109bSxfW0QrMzI+PjNdPUEsYVtEKzQwPj4yXT02LF9bRCs0OD4+M109bSxfW0QrNTY+PjNdPWIsYVtEKzY0Pj4yXT1+fihLKyhLPj0wPy41Oi0uNSkpLGFbRCs2OD4+Ml09fn4oRysoRystNzI+PTA/LTcxLjU6LTcyLjUpKSxhW0QrNzI+PjJdPWYsT3Io''@;'; + put 'put ''bCw2ODU0OSxEKSxsZT1SfSxmdW5jdGlvbiBnaWUobCxjLGYpe2N8PTAsZnw9MDt2YXIgcCxtLEEsdyxiLFIsRyxLLHBlLGdlLGJlLE9lLGs9MCxNPTAsRD0wO3A9bGUsbGU9bGUrMTEyfDAsbT1wKzh8MCxnZT1+fitfWzE1Misoaz0wfGFbMTYrKGx8PTApPj4yXSk+PjNdLHBlPTB8YVtrKzE2''@;'; + put 'put ''Pj4yXSxLPTB8YVtrKzU2Pj4yXSxHPTB8YVs0NjcxMF0sdTcoayxPZT1wKzEwNHwwLGJlPXApLGs9fn4oKEQ9K19bYz4+M10pKyhEPj0wPy41Oi0uNSkpLGI9fn4oKE09K19bYys4Pj4zXSkrKE0+PTA/LjU6LS41KSksRD0odz0rX1tjKzE2Pj4zXSktRCxNPShBPStfW2MrMjQ+PjNdKS1NLGM9''@;'; + put 'put ''MHxhW09lPj4yXSxSPStfW2JlPj4zXSxhW20+PjJdPTEsYVttKzQ+PjJdPTEsYVttKzg+PjJdPWMsYVttKzEyPj4yXT1nZSxhW20rMTY+PjJdPXBlLGFbbSsyMD4+Ml09SyxhW20rMjQ+PjJdPUcsYVttKzI4Pj4yXT0wLGFbbSszMj4+Ml09MHxmPzIwOi0xLF9bbSs0MD4+M109UixhW20rNDg+''@;'; + put 'put ''PjJdPTAsX1ttKzU2Pj4zXT0wLGFbbSs2ND4+Ml09ayxhW20rNjg+PjJdPWIsYVttKzcyPj4yXT1+fihEKyhEPj0wPy41Oi0uNSkpLGFbbSs3Nj4+Ml09fn4oTSsoTT49MD8uNTotLjUpKSxhW20rODA+PjJdPWssYVttKzg0Pj4yXT1iLGFbbSs4OD4+Ml09fn4odysodz49MD8uNTotLjUpKSxh''@;'; + put 'put ''W20rOTI+PjJdPX5+KEErKEE+PTA/LjU6LS41KSksT3IobCw2ODQyNyxtKSxsZT1wfSxmdW5jdGlvbiBBaWUobCxjLGYpe2N8PTAsZnw9MDt2YXIgcCxtLEEsdyxiLGssRCxSLE09MDtwPWxlLGxlPWxlKzk2fDAsbT1wKzh8MCxrPX5+K19bMTUyKyhSPTB8YVsxNisobHw9MCk+PjJdKT4+M10s''@;'; + put 'put ''Yj0wfGFbUisxNj4+Ml0sdz0wfGFbNDY3MTBdLHU3KFIsTT1wKzgwfDAsRD1wKSxNPTB8YVtNPj4yXSxBPStfW0Q+PjNdLGFbbT4+Ml09MixhW20rND4+Ml09MSxhW20rOD4+Ml09TSxhW20rMTI+PjJdPWssYVttKzE2Pj4yXT1iLGFbbSsyMD4+Ml09MCxhW20rMjQ+PjJdPXcsYVttKzI4Pj4y''@;'; + put 'put ''XT0wLGFbbSszMj4+Ml09MCxfW20rNDA+PjNdPUEsYVttKzQ4Pj4yXT0wLGFbbSs1Mj4+Ml09MCxhW20rNTY+PjJdPTAsYVttKzYwPj4yXT0wLGFbbSs2ND4+Ml09MCxhW20rNjg+PjJdPWYsT3IobCw2ODMzMSxtKSxMRihsLGMsZiwwKSxsZT1wfSxmdW5jdGlvbiBsN2UobCxjLGYpe3ZhciBt''@;'; + put 'put ''LEEsdyxiLGssTSxELFIsRyxwPTA7TT1sZSxsZT1sZSs4MHwwLGs9TSx3PTB8YVsxNisoMHxhWzE2KyhsfD0wKT4+Ml0pPj4yXSxiPTB8YVs0NjcxNl0sbT0rX1tsKzM1Mj4+M10qK19bMTYrKHA9MHxhWzQrKGZ8PTApPj4yXSk+PjNdLEE9MHxhW2wrMzYwPj4yXT8xLjU3MDc5NjMyNjc5NDg5''@;'; + put 'put ''NjY6MCxwPShwPTB8YVtwKzg+PjJdKT8wfGFbcCsyMD4+Ml06LTEsRz0wfGZlW2YrNDg+PjBdLFI9K19bKGN8PTApPj4zXSxEPStfW2MrOD4+M10sZj0wfGZ1bmN0aW9uIFNpZShsKXtsfD0wO3ZhciBBLHcsYz0wLGY9MCxwPTAsbT0wO2Zvcih3PWxlLGxlPWxlKzE2fDAsQT13LChjPTB8YVs0''@;'; + put 'put ''NjcxOF0pfHwoYVs0NjcxOV09NjQsYz0wfEIwKDY0KSxhWzQ2NzE4XT1jKSxmPTA7bT1sKzF8MCwocD0wfGZlW2w+PjBdKTw8MjQ+PjI0OykoMHxmKT4oKGw9MHxhWzQ2NzE5XSktOHwwKSYmKGFbNDY3MTldPWM9bDw8MSxjPTB8VWEoMHxhWzQ2NzE4XSxjKSxhWzQ2NzE4XT1jLGM9YytmfDAp''@;'; + put 'put ''LHA8PDI0Pj4yNDw9LTE/KGZlW2M+PjBdPTkyLGFbQT4+Ml09MjU1JnAsb28oYysxfDAsODEyMjQsQSksbD1tLGM9Yys0fDAsZj1mKzR8MCk6KHA8PDI0Pj4yND09OTImJihmZVtjPj4wXT05MixmPWYrMXwwLGM9YysxfDApLGZlW2M+PjBdPXAsbD1tLGM9YysxfDAsZj1mKzF8MCk7cmV0dXJu''@;'; + put 'put ''IGZlW2M+PjBdPTAsbGU9dywwfGFbNDY3MThdfSgwfGFbZj4+Ml0pLGFbaz4+Ml09NCxhW2srND4+Ml09Rzw8MjQ+PjI0PT0xMDg/MDpHPDwyND4+MjQ9PTExND8yOjEsYVtrKzg+PjJdPXcsYVtrKzEyPj4yXT1iLGFbaysxNj4+Ml09MCxhW2srMjA+PjJdPXAsX1trKzI0Pj4zXT1tLF9baysz''@;'; + put 'put ''Mj4+M109QSxhW2srNDA+PjJdPTQsX1trKzQ4Pj4zXT0wLF9bays1Nj4+M109MCxhW2srNjQ+PjJdPX5+KFIrKFI+PTA/LjU6LS41KSksYVtrKzY4Pj4yXT1+fihEKyhEPj0wPy41Oi0uNSkpLGFbays3Mj4+Ml09ZixPcihsLDY4NTQ5LGspLGxlPU19LGZ1bmN0aW9uIEJGKGwsYyxmKXtjfD0w''@;'; + put 'put ''LGZ8PTA7dmFyIHAsbSxBLHcsYixSLEcsSyxwZSxnZSxiZSxPZSxrPTAsTT0wLEQ9MDtwPWxlLGxlPWxlKzExMnwwLG09cCs4fDAsZ2U9fn4rX1sxNTIrKGs9MHxhWzE2KyhsfD0wKT4+Ml0pPj4zXSxwZT0wfGFbaysxNj4+Ml0sSz0wfGFbays1Nj4+Ml0sRz0wfGFbNDY3MTZdLFhUKGssT2U9''@;'; + put 'put ''cCsxMDR8MCxiZT1wKSxrPX5+KChEPStfW2M+PjNdKSsoRD49MD8uNTotLjUpKSxiPX5+KChNPStfW2MrOD4+M10pKyhNPj0wPy41Oi0uNSkpLEQ9KHc9K19bYysxNj4+M10pLUQsTT0oQT0rX1tjKzI0Pj4zXSktTSxjPTB8YVtPZT4+Ml0sUj0rX1tiZT4+M10sYVttPj4yXT0xLGFbbSs0Pj4y''@;'; + put 'put ''XT0xLGFbbSs4Pj4yXT1jLGFbbSsxMj4+Ml09Z2UsYVttKzE2Pj4yXT1wZSxhW20rMjA+PjJdPUssYVttKzI0Pj4yXT1HLGFbbSsyOD4+Ml09MCxhW20rMzI+PjJdPTB8Zj8yMDotMSxfW20rNDA+PjNdPVIsYVttKzQ4Pj4yXT0wLF9bbSs1Nj4+M109MCxhW20rNjQ+PjJdPWssYVttKzY4Pj4y''@;'; + put 'put ''XT1iLGFbbSs3Mj4+Ml09fn4oRCsoRD49MD8uNTotLjUpKSxhW20rNzY+PjJdPX5+KE0rKE0+PTA/LjU6LS41KSksYVttKzgwPj4yXT1rLGFbbSs4ND4+Ml09YixhW20rODg+PjJdPX5+KHcrKHc+PTA/LjU6LS41KSksYVttKzkyPj4yXT1+fihBKyhBPj0wPy41Oi0uNSkpLE9yKGwsNjg0Mjcs''@;'; + put 'put ''bSksbGU9cH0sZnVuY3Rpb24gR1cobCxjLGYpe2N8PTAsZnw9MDt2YXIgcCxtLEEsdyxiLGssRCxSLE09MDtwPWxlLGxlPWxlKzk2fDAsbT1wKzh8MCxrPX5+K19bMTUyKyhSPTB8YVsxNisobHw9MCk+PjJdKT4+M10sYj0wfGFbUisxNj4+Ml0sdz0wfGFbNDY3MTZdLFhUKFIsTT1wKzgwfDAs''@;'; + put 'put ''RD1wKSxNPTB8YVtNPj4yXSxBPStfW0Q+PjNdLGFbbT4+Ml09MixhW20rND4+Ml09MSxhW20rOD4+Ml09TSxhW20rMTI+PjJdPWssYVttKzE2Pj4yXT1iLGFbbSsyMD4+Ml09MCxhW20rMjQ+PjJdPXcsYVttKzI4Pj4yXT0wLGFbbSszMj4+Ml09MCxfW20rNDA+PjNdPUEsYVttKzQ4Pj4yXT0w''@;'; + put 'put ''LGFbbSs1Mj4+Ml09MCxhW20rNTY+PjJdPTAsYVttKzYwPj4yXT0wLGFbbSs2ND4+Ml09MCxhW20rNjg+PjJdPWYsT3IobCw2ODMzMSxtKSxXVyhsLGMsZiwwKSxsZT1wfSxmdW5jdGlvbiBKVyhsLGMsZil7Y3w9MCxmfD0wO3ZhciB3LGIsayxwPTAsbT0wLEE9MCxNPTA7aWYoaz1sZSxsZT1s''@;'; + put 'put ''ZSszMnwwLHc9ays4fDAsYj1rLCEoK19bNDArKHA9MHxhWzE2KyhsfD0wKT4+Ml0pPj4zXTwuNSkpe3N3aXRjaChhcChsLHArMTZ8MCksWnMobCwrX1sxNisoMHxhWyhBPWYrNHwwKT4+Ml0pPj4zXSksYVt3Pj4yXT1hW2FbQT4+Ml0+PjJdLE9yKGwsNjg5NzMsdyksQT0wfHROKDB8YVtmPj4y''@;'; + put 'put ''XSwwfGFbNDY3MjBdKSwwfGZlW2YrNDg+PjBdKXtjYXNlIDExNDpwPU09ZiszMnwwLG09K19bTT4+M107YnJlYWs7Y2FzZSAxMDg6cD1mKzMyfDAsbT0wO2JyZWFrO2RlZmF1bHQ6cD1NPWYrMzJ8MCxtPS41KitfW00+PjNdfV9bYz4+M109K19bYz4+M10tbSxfWyhNPWMrOHwwKT4+M109K19b''@;'; + put 'put ''TT4+M10rICtfW2YrMjQ+PjNdLGFbdz4+Ml09YVtjPj4yXSxhW3crND4+Ml09YVtjKzQ+PjJdLGFbdys4Pj4yXT1hW2MrOD4+Ml0sYVt3KzEyPj4yXT1hW2MrMTI+PjJdLG5oKGwsdyksRW4obCw2ODk4OCksWnMobCwrX1twPj4zXSksYVtiPj4yXT1BLE9yKGwsNjg5OTcsYil9bGU9a30sZnVu''@;'; + put 'put ''Y3Rpb24gWFcobCxjLGYpe2x8PTAsZnw9MDt2YXIgbSxBLHA9MDtBPWxlLGxlPWxlKzMyfDAsYVsobT1BKT4+Ml09YVsoY3w9MCk+PjJdLGFbbSs0Pj4yXT1hW2MrND4+Ml0sYVttKzg+PjJdPWFbYys4Pj4yXSxhW20rMTI+PjJdPWFbYysxMj4+Ml0sX1ttKzE2Pj4zXT0rX1tjKzE2Pj4zXS0r''@;'; + put 'put ''X1tjPj4zXSxfW20rMjQ+PjNdPStfW2MrMjQ+PjNdLStfW2MrOD4+M10sYz1sKzE2fDAsMHxmJiYrX1s4MCsocD0wfGFbYz4+Ml0pPj4zXT4uNSYmKGFwKGwscCs1NnwwKSxHMyhsLG0sMiksRW4obCw2ODkzMSkpLCtfWzQwKygwfGFbYz4+Ml0pPj4zXT4uNSYmKHpBKGwpLGFwKGwsMTYrKDB8''@;'; + put 'put ''YVtjPj4yXSl8MCksRzMobCxtLDIpLEVuKGwsNjg5NTEpKSxsZT1BfSxmdW5jdGlvbiBjN2UobCxjLGYpe2N8PTAsZnw9MDt2YXIgbSxBLHA9MCx3PTA7aWYoQT1sZSxsZT1sZSsxNnwwLG09QSwrX1s0MCsoMHxhWyhwPTE2KyhsfD0wKXwwKT4+Ml0pPj4zXT4uNSl7Zm9yKHpBKGwpLGFwKGws''@;'; + put 'put ''MTYrKDB8YVtwPj4yXSl8MCksRW4obCw2ODg1MiksYVttPj4yXT1hW2M+PjJdLGFbbSs0Pj4yXT1hW2MrND4+Ml0sYVttKzg+PjJdPWFbYys4Pj4yXSxhW20rMTI+PjJdPWFbYysxMj4+Ml0sbmgobCxtKSxFbihsLDY4ODYxKSxwPTE7ISgoMHxwKT49KDB8ZikpOylhW20+PjJdPWFbKHc9Yyso''@;'; + put 'put ''cDw8NCl8MCk+PjJdLGFbbSs0Pj4yXT1hW3crND4+Ml0sYVttKzg+PjJdPWFbdys4Pj4yXSxhW20rMTI+PjJdPWFbdysxMj4+Ml0sbmgobCxtKSxFbihsLDY4ODcwKSxwPXArMXwwO0VuKGwsNjg4NzkpfWxlPUF9LGZ1bmN0aW9uIEE3ZShsLGMsZil7Y3w9MCxmfD0wO3ZhciBiLGssTSxELFIs''@;'; + put 'put ''RyxLLHBlLGdlLGJlLE9lLExlLEhlLFZlLHFlLG50LG90LFN0LHN0LFp0LGN0LGJ0LHA9MCxtPTAsQT0wLHc9MCxSZT0wLFdlPTAsa3Q9MCxFdD0wO3N3aXRjaChidD1sZSxsZT1sZSsxNzZ8MCxjdD1idCsxNjB8MCxadD1idCsxNTJ8MCxvdD1idCsxMzZ8MCxFdD1idCsxMjh8MCxXZT1idCsx''@;'; + put 'put ''MjB8MCxudD1idCsxMTJ8MCxxZT1idCsxMDR8MCxWZT1idCs5NnwwLEhlPWJ0Kzg4fDAsTGU9YnQrODB8MCxiZT1idCs3MnwwLGdlPWJ0KzY0fDAscGU9YnQrNTZ8MCxLPWJ0KzQ4fDAscD1idCs0MHwwLEQ9YnQrMzJ8MCxHPWJ0KzI0fDAsUj1idCsxNnwwLE09YnQrOHwwLGs9YnQsc3Q9MHxh''@;'; + put 'put ''WzE2KyhsfD0wKT4+Ml0sRW4obCw3NDA0NCksMHxmZVtmKzQ4Pj4wXSl7Y2FzZSAxMDg6RW4obCw3NDA1MCk7YnJlYWs7Y2FzZSAxMTQ6RW4obCw3NDA3MSk7YnJlYWs7ZGVmYXVsdDpFbihsLDc0MDkwKX1pZihfWyhrdD1jKzh8MCk+PjNdPVN0PStfW2t0Pj4zXSsgK19bZisyND4+M10sNTEy''@;'; + put 'put ''Jml0WyhrdD1zdCsyNjB8MCk+PjFdfHwoRW4obCw3NDExMiksWnMobCwrX1tjPj4zXSksRW4obCw3NDExNyksWnMobCwtU3QpLEVuKGwsOTg3NDQpKSxiPTB8YVs4KyhjPTB8YVsoT2U9Zis0fDApPj4yXSk+PjJdKXtzd2l0Y2goMHxhWzI0NCsoMHxhWzE2KygwfGFbMTY4KygwfGFbbD4+Ml0p''@;'; + put 'put ''Pj4yXSk+PjJdKT4+Ml0pe2Nhc2UgMTp3PWIsYz1iKzE2fDAscD1iKzh8MDticmVhaztjYXNlIDI6dz1iKzI0fDAsYz1iKzMyfDAscD1iKzI4fDA7YnJlYWs7ZGVmYXVsdDp3PWIrNHwwLGM9YisxNnwwLHA9Yis4fDB9bT0wfGFbYz4+Ml0sYz0wfGFbcD4+Ml0sQT0wfGFbYisxMj4+Ml0sYVtr''@;'; + put 'put ''Pj4yXT1hW3c+PjJdLE9yKGwsNzQxMjMsayksMHwocD0wfGFbYisyND4+Ml0pJiYoYVtNPj4yXT1wLE9yKGwsNzQxNDAsTSkpLEVuKGwsOTg3NDQpLDB8YyYmKGFbUj4+Ml09YyxPcihsLDc0MTQ0LFIpKSwwfEEmJihhW0c+PjJdPUEsT3IobCw3NDE2MixHKSksbT8oYVtEPj4yXT1tLE9yKGws''@;'; + put 'put ''NzQxODEsRCkpOm09MH1lbHNlIGFbcD4+Ml09YVtjPj4yXSxPcihsLDc0MTk4LHApLG09MCxjPTA7c3dpdGNoKDB8KHA9MHxhW09lPj4yXSkmJjEyNyYoUmU9MHxhW3ArMjQ+PjJdKXwwJiYoMCE9KDB8Yyl8MD09KDEmUmV8MCl8fE9yKGwsNzQyMTYsSyksMCE9KDB8bSl8MD09KDImUmV8MCl8''@;'; + put 'put ''fE9yKGwsNzQyMzYscGUpLDEwMCZSZXwwJiYoT3IobCw3NDI1NyxnZSksNCZSZT8oT3IobCwxMDU5ODYsYmUpLGM9MSk6Yz0wLDY0JlJlJiYoYVtMZT4+Ml09MHxjPzEwMDk5OToxOTUwNTksT3IobCw3NDI3NixMZSksYz0xKSwzMiZSZXwwJiYoYVtIZT4+Ml09MHxjPzEwMDk5OToxOTUwNTks''@;'; + put 'put ''T3IobCw3NDI4NyxIZSkpLE9yKGwsOTg3NDQsVmUpKSw4JlJlfDAmJk9yKGwsNzQzMDIscWUpLDE2JlJlfDAmJk9yKGwsNzQzMjYsbnQpKSxfW1dlPj4zXT0rX1sxNisoMHxhW09lPj4yXSk+PjNdLE9yKGwsNzQzNDgsV2UpLGM9c3QrMTZ8MCwwfGFbc3QrNDg+PjJdKXtjYXNlIDU6MHx5MChj''@;'; + put 'put ''PTB8YVtjPj4yXSwxMzczMTQpJiYoYVtFdD4+Ml09YyxPcihsLDc0MzY2LEV0KSk7YnJlYWs7Y2FzZSAxOldlPTB8WHRbYysxPj4wXSxFdD0wfFh0W2MrMj4+MF0sYVtvdD4+Ml09WHRbYz4+MF0sYVtvdCs0Pj4yXT1XZSxhW290Kzg+PjJdPUV0LE9yKGwsNzQzNzcsb3QpO2JyZWFrO2RlZmF1''@;'; + put 'put ''bHQ6UHIoMTM4Mzk0LDczNTU4LDQ4Niw3NDM5OSl9RW4obCw3NDQxMiksNTEyJml0W2t0Pj4xXSYmKGFbWnQ+PjJdPTB8TTEoMHxhW3N0KzIxMj4+Ml0pLE9yKGwsNzQ0MTQsWnQpLEVuKGwsNzQ0NjMpLFpzKGwsLVN0KSxFbihsLDc0NDgxKSksRW4obCwwfFpIKDB8YVtmPj4yXSwxKSksNTEy''@;'; + put 'put ''Jml0W2t0Pj4xXSYmT3IobCw3NDQ4NCxjdCksRW4obCw3NDUwNCksbGU9YnR9LGZ1bmN0aW9uIHk3ZShsLGMsZil7bHw9MCxjfD0wO3ZhciBwPTA7c3dpdGNoKDB8KGZ8PTApKXtjYXNlIDI6cD0wfHRZKGwsYywyKTticmVhaztjYXNlIDM6cD0wfG5ZKGwpO2JyZWFrO2RlZmF1bHQ6cD0wfUVu''@;'; + put 'put ''KGwsNzQwMDgpLEhGKGwsZixwKSxFbihsLDc0MDE3KSxacyhsLCtfW2M+PjNdKSxFbihsLDc0MDIzKSxacyhsLC0rX1soZj1jKzh8MCk+PjNdKSxFbihsLDc0MDMwKSxacyhsLCtfW2MrMTY+PjNdLStfW2M+PjNdKSxFbihsLDc0MDM3KSxacyhsLCtfW2MrMjQ+PjNdLStfW2Y+PjNdKSxFbihs''@;'; + put 'put ''LDczNDI0KX0sZnVuY3Rpb24gVmllKGwsYyxmKXtjfD0wLGZ8PTA7dmFyIHA9MDtmb3IoRW4obHw9MCw3MzQwNCksSEYobCwwLDApLEVuKGwsNzM0MTQpLHA9MDshKCgwfHApPj0oMHxmKSk7KVpzKGwsK19bYysocDw8NCk+PjNdKSxFbihsLDEwMDk5OSksWnMobCwtK19bYysocDw8NCkrOD4+''@;'; + put 'put ''M10pLEVuKGwsMTAyNjA0KSxwPXArMXwwO0VuKGwsNzM0MjQpfSxmdW5jdGlvbiBNN2UobCxjLGYpe2N8PTAsZnw9MDt2YXIgayxNLHA9MCxtPTAsQT0wLHc9MCxiPTA7aWYoTT1sZSxsZT1sZSs0OHwwLEE9TSs4fDAsaz1NLDB8YVsxNDQrKHA9MHxhWzE2KyhsfD0wKT4+Ml0pPj4yXSYmMHwo''@;'; + put 'put ''dz1+figrX1tsKzM1Mj4+M10qK19bMTYrKDB8YVsoYj1mKzR8MCk+PjJdKT4+M10pKSl7JFQobCksRW4obCw3NTMzNCksX1sobT1jKzh8MCk+PjNdPStfW20+PjNdLS41NSorKDB8dyksYVtBPj4yXT1hW2M+PjJdLGFbQSs0Pj4yXT1hW2MrND4+Ml0sYVtBKzg+PjJdPWFbYys4Pj4yXSxhW0Er''@;'; + put 'put ''MTI+PjJdPWFbYysxMj4+Ml0sbmgobCxBKSxFbihsLDc1MzQ4KSxFbihsLDB8YVtmPj4yXSksRW4obCw3NTM1NyksRW4obCw3NTE1NSksYz1wKzE2fDAscD0obT1BKSs0MHwwO2Rve2FbbT4+Ml09YVtjPj4yXSxtPW0rNHwwLGM9Yys0fDB9d2hpbGUoKDB8bSk8KDB8cCkpO3N3aXRjaChHQShs''@;'; + put 'put ''LEEpLEVuKGwsNzUzNTkpLGI9MHxhWygwPT0oMHwoYj0wfGFbOCsoQT0wfGFbYj4+Ml0pPj4yXSkpP0E6Yis0fDApPj4yXSxFbihsLDk4NzQ0KSxFbihsLGIpLEVuKGwsOTg3NDQpLGFbaz4+Ml09dyxPcihsLDc1MzY4LGspLDB8ZmVbZis0OD4+MF0pe2Nhc2UgMTA4OkVuKGwsNzUzNzMpO2Jy''@;'; + put 'put ''ZWFrO2Nhc2UgMTE0OkVuKGwsNzUzODQpfXFUKGwpLEVuKGwsMTUzNTk5KX1sZT1NfSxmdW5jdGlvbiBFN2UobCxjLGYpe2N8PTAsZnw9MDt2YXIgbSxBLHcsYixwPTAsaz0wLE09MCxEPTA7aWYoYj1sZSxsZT1sZSs0OHwwLG09YiwwfGFbKHc9MTQ0KyhBPTB8YVsxNisobHw9MCk+PjJdKXww''@;'; + put 'put ''KT4+Ml0pe009K19bYysyND4+M10saz0rX1socD1jKzh8MCk+PjNdLF9bYz4+M109KEQ9K19bYz4+M10pLStfW2MrMTY+PjNdK0QsX1twPj4zXT1rLU0raywkVChsKSxFbihsLDc1MzIwKSxHMyhsLGMsMiksRW4obCw3NTE1NSk7ZG97aWYoIWYpe2lmKDB8YVs0NjcyM10pe0VuKGwsMTM3MTk4''@;'; + put 'put ''KTticmVha31FbihsLDk3MzA5KTticmVha31mPUErNTZ8MCxwPShjPW0pKzQwfDA7ZG97YVtjPj4yXT1hW2Y+PjJdLGM9Yys0fDAsZj1mKzR8MH13aGlsZSgoMHxjKTwoMHxwKSk7R0EobCxtKX13aGlsZSgwKTsxPT0oMHxhWzQ2NzIzXSkmJihhWzQ2NzIzXT0wKSxFbihsLDc1MjY2KSxacyhs''@;'; + put 'put ''LCtfW0ErMTUyPj4zXSksRW4obCw3NTMwOSksZj1BKzE2fDAscD0oYz1tKSs0MHwwO2Rve2FbYz4+Ml09YVtmPj4yXSxjPWMrNHwwLGY9Zis0fDB9d2hpbGUoKDB8Yyk8KDB8cCkpO0dBKGwsbSksMT09KDB8KGM9MHxhW3c+PjJdKSkmJihFbihsLDc1MTYzKSxjPTB8YVt3Pj4yXSksMj09KDB8''@;'; + put 'put ''YykmJkVuKGwsNzUxNzIpLHFUKGwpLEVuKGwsMTUzNTk5KX1sZT1ifSxmdW5jdGlvbiBJN2UobCxjLGYpe2N8PTAsZnw9MDt2YXIgcCxBLHcsYixtPTA7aWYoYj1sZSxsZT1sZSs0OHwwLEE9YiwwfGFbKHc9MTQ0KyhwPTB8YVsxNisobHw9MCk+PjJdKXwwKT4+Ml0peyRUKGwpLEVuKGwsNzUx''@;'; + put 'put ''NDEpLEczKGwsYyxmKSxFbihsLDc1MTU1KSxjPXArMTZ8MCxmPShtPUEpKzQwfDA7ZG97YVttPj4yXT1hW2M+PjJdLG09bSs0fDAsYz1jKzR8MH13aGlsZSgoMHxtKTwoMHxmKSk7R0EobCxBKSwxPT0oMHwoYz0wfGFbdz4+Ml0pKSYmKEVuKGwsNzUxNjMpLGM9MHxhW3c+PjJdKSwyPT0oMHxj''@;'; + put 'put ''KSYmRW4obCw3NTE3MikscVQobCksRW4obCwxNTM1OTkpfWxlPWJ9LGZ1bmN0aW9uIEY3ZShsLGMsZil7Y3w9MDt2YXIgayxNLEQsUixHLEsscGUsZ2UsYmUsT2UsUmUsVmUscWUscD0wLG09MCxBPTAsdz0wLGI9MCxMZT0wLEhlPTA7c3dpdGNoKFZlPWxlLGxlPWxlKzExMnwwLFJlPVZlKzk2''@;'; + put 'put ''fDAsSGU9VmUrODh8MCxPZT1WZSs4MHwwLFI9VmUrNzJ8MCxiZT1WZSs2NHwwLHBlPVZlKzU2fDAsSz1WZSs0OHwwLEc9VmUrNDB8MCxEPVZlKzI0fDAsTT1WZSs4fDAsaz1WZSxMZT0wfGFbMTYrKGx8PTApPj4yXSwwfGZlWzQ4KyhmfD0wKT4+MF0pe2Nhc2UgMTA4OkE9K19bYz4+M10sYj0r''@;'; + put 'put ''X1tmKzMyPj4zXTticmVhaztjYXNlIDExNDpBPStfW2M+PjNdLShiPStfW2YrMzI+PjNdKTticmVhaztkZWZhdWx0OkE9K19bYz4+M10tLjUqKGI9K19bZiszMj4+M10pfXN3aXRjaCgobT0rX1socD1mKzQwfDApPj4zXSk8KHc9K19bMTYrKDB8YVsoZ2U9Zis0fDApPj4yXSk+PjNdKSYmKF9b''@;'; + put 'put ''cD4+M109bT0xLjEqdysxKSxxZT1BKy04LHc9KygoMHxhWzQ2NzI3XSk+Pj4wKS0rX1tjKzg+PjNdLW0rLjIqdysodzwxMj8xLjQ6MiksT3IobCw3NjAwNSxrKSxfW00+PjNdPXFlLF9bTSs4Pj4zXT13LE9yKGwsNzU5NDIsTSksX1tEPj4zXT1BKzgrYi1xZSxfW0QrOD4+M109bSxPcihsLDc1''@;'; + put 'put ''OTY2LEQpLEVuKGwsNzYwNDApLEVuKGwsNzYwNzQpLChjPTB8YVs4KyhwPTB8YVtnZT4+Ml0pPj4yXSk/KGFbRz4+Ml09YVtjKzQ+PjJdLE9yKGwsNzYxNjQsRyksMHwocD0wfGFbYys4Pj4yXSkmJihhW0s+PjJdPXAsT3IobCw3NjE4MyxLKSksMHwocD0wfGFbYysxMj4+Ml0pJiYoYVtwZT4+''@;'; + put 'put ''Ml09cCxPcihsLDc2MjAwLHBlKSksMHwocD0wfGFbYysxNj4+Ml0pJiYoYVtiZT4+Ml09cCxPcihsLDc2MjE4LGJlKSkpOihhW1I+PjJdPWFbcD4+Ml0sT3IobCw3NjE2NCxSKSksX1tPZT4+M109K19bMTYrKDB8YVtnZT4+Ml0pPj4zXSxPcihsLDc2MjM0LE9lKSxwPUxlKzE2fDAsMHxhW0xl''@;'; + put 'put ''KzQ4Pj4yXSl7Y2FzZSA1OjB8eTAocD0wfGFbcD4+Ml0sMTM3MzE0KSYmKGFbSGU+PjJdPXAsT3IobCw3NjI1NCxIZSkpO2JyZWFrO2Nhc2UgMTpMZT0wfFh0W3ArMT4+MF0sSGU9MHxYdFtwKzI+PjBdLGFbUmU+PjJdPVh0W3A+PjBdLGFbUmUrND4+Ml09TGUsYVtSZSs4Pj4yXT1IZSxPcihs''@;'; + put 'put ''LDc2MjY0LFJlKTticmVhaztkZWZhdWx0OlByKDEzODM5NCw3NTcyOCw0MzgsNzYyODUpfUVuKGwsNzYyOTgpLEVuKGwsMHxuaSgwfGFbZj4+Ml0pKSxFbihsLDc2MzA5KSxFbihsLDc2MzMyKSxsZT1WZX0sZnVuY3Rpb24gWmllKGwsYyxmKXtjfD0wLGZ8PTA7dmFyIHAsbSxBLHcsYixNLGs9''@;'; + put 'put ''MDtwPWxlLGxlPWxlKzMyfDAsbT1wKzE2fDAsYj1wLEVuKGx8PTAsNzU5MDYpLEE9KGs9K19bYysyND4+M10pLStfW2MrOD4+M10saz0rKCgwfGFbNDY3MjddKT4+PjApLWssX1tiPj4zXT0oTT0rX1tjPj4zXSktKHc9K19bYysxNj4+M10tTSksX1tiKzg+PjNdPWssT3IobCw3NTk0MixiKSxf''@;'; + put 'put ''W20+PjNdPTIqdyxfW20rOD4+M109MipBLE9yKGwsNzU5NjYsbSksaVkobCxmKSxFbihsLDc1Nzg4KSxlSShsKSxFbihsLDc1OTk0KSxsZT1wfSxmdW5jdGlvbiBIN2UobCxjLGYpe2N8PTAsZnw9MDt2YXIgdyxiLGsscD0wLG09MCxBPTAsTT0wO2ZvcihrPWxlLGxlPWxlKzQ4fDAsYj1rKzI0''@;'; + put 'put ''fDAsdz1rKzh8MCxtPWssRW4obHw9MCw3NTUxMSksQT0wfGFbNDY3MjddLGFbbT4+Ml09YVs0NjcyNl0sYVttKzQ+PjJdPUEsT3IobCw3NTU0OCxtKSxFbihsLDc1NTg4KSxtPWYrLTF8MCxBPWMrOHwwLHA9MDshKCgwfHApPj0oMHxmKSk7KXA/KE09KygoMHxhWzQ2NzI3XSk+Pj4wKS0rX1tj''@;'; + put 'put ''KyhwPDw0KSs4Pj4zXSxfW2I+PjNdPStfW2MrKHA8PDQpPj4zXSxfW2IrOD4+M109TSxPcihsLDc1NjA0LGIpKTooRW4obCw3NTYwMCksTT0rKCgwfGFbNDY3MjddKT4+PjApLStfW0E+PjNdLF9bdz4+M109K19bYz4+M10sX1t3Kzg+PjNdPU0sT3IobCw3NTYwNCx3KSxFbihsLDc1NjE1KSks''@;'; + put 'put ''KDB8cCk9PSgwfG0pJiZFbihsLDc1NjE5KSxwPXArMXwwO0VuKGwsNzU2MjMpLGVJKGwpLEVuKGwsNzU2MjcpLGxlPWt9LGZ1bmN0aW9uIG5JKGwsYyxmKXtsfD0wLGN8PTA7dmFyIEQsRyxLLHBlLGdlLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxSPTA7c3dpdGNoKEc9bGUsbGU9bGUr''@;'; + put 'put ''MTQ0fDAsTT1HKzEwNHwwLFI9Rys1NnwwLGI9RyszMnwwLEE9RysyNHwwLHA9K19bMTYrKG09MHxhWyhEPTQrKGZ8PTApfDApPj4yXSk+PjNdLG09MHxhW20+PjJdLGFbKGs9Ryk+PjJdPWFbZj4+Ml0sX1trKzg+PjNdPXAsYVtrKzE2Pj4yXT1tLE9yKGwsNzkwNDAsayksam5bNDY3MjldPStq''@;'; + put 'put ''bls0NjcyOF0tOSwwfGZlW2YrNDg+PjBdKXtjYXNlIDEwODpwPStfW2M+PjNdO2JyZWFrO2Nhc2UgMTE0Om09YyxwPStfW2M+PjNdLStfW2YrMzI+PjNdLHc9NTticmVhaztkZWZhdWx0Om09YyxwPStfW2M+PjNdLS41KitfW2YrMzI+PjNdLHc9NX01PT0oMHx3KSYmKF9bbT4+M109cCkscGU9''@;'; + put 'put ''KCtfW2wrNTA0Pj4zXStwKSooZ2U9K19bbCs0ODg+PjNdKSxLPSgrX1tsKzUxMj4+M10rICtfW2MrOD4+M10pKitfW2wrNDk2Pj4zXSxfW0E+PjNdPStfWzE2KygwfGFbRD4+Ml0pPj4zXSpnZSxrPTB8RWEobCw3OTA5MixBKSxwPSsoMHxhW2wrMzYwPj4yXSksX1tiPj4zXT0wLF9bYis4Pj4z''@;'; + put 'put ''XT0wLF9bYisxNj4+M109cCxtPTB8RWEobCw3ODMwOSxiKSxwPStqbls0NjcyOV0sX1tNPj4zXT1wZSxfW00rOD4+M109SyxfW00rMTY+PjNdPXAsYz0wfEVhKGwsNzgzNDEsTSksdz0xNisoMHxhW2wrMTY+PjJdKXwwLGI9KEE9TSkrNDB8MDtkb3thW0E+PjJdPWFbdz4+Ml0sQT1BKzR8MCx3''@;'; + put 'put ''PXcrNHwwfXdoaWxlKCgwfEEpPCgwfGIpKTtNPTB8V0EobCxNLDApLGY9MHxhW2Y+PjJdLGFbUj4+Ml09YVthW0Q+PjJdPj4yXSxfW1IrOD4+M109LjI1LF9bUisxNj4+M109MCxhW1IrMjQ+PjJdPWYsYVtSKzI4Pj4yXT03OTE3OSxhW1IrMzI+PjJdPWssYVtSKzM2Pj4yXT1tLGFbUis0MD4+''@;'; + put 'put ''Ml09YyxhW1IrNDQ+PjJdPU0sRW4obCxSPTB8RWEobCw3OTEwNCxSKSksRnQoUiksRnQobSksRnQoTSksRnQoYyksRnQoayksbGU9R30sZnVuY3Rpb24gUTdlKGwsYyxmKXtjfD0wLGZ8PTA7dmFyIE0sRCxSLEcsSyxwZSxnZSxWZSxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxiZT0wLE9lPTAs''@;'; + put 'put ''TGU9MCxSZT0wLEhlPTAscWU9MDtWZT1sZSxsZT1sZSsyNDB8MCxSZT1WZSsxOTJ8MCxIZT1WZSsxNTJ8MCxnZT1WZSsxMjh8MCxLPVZlKzEwNHwwLEQ9VmUrODB8MCxNPVZlKzQ4fDAscD1WZSsyNHwwLGs9VmUsRW4obHw9MCw3ODkxNyksam5bNDY3MjldPStqbls0NjcyOF0tNixSPSgrX1ts''@;'; + put 'put ''KzUwND4+M10rKEE9K19bYz4+M10pKSoodz0rX1tsKzQ4OD4+M10pLEc9KCtfW2wrNTEyPj4zXSsocWU9K19bYys4Pj4zXSkpKihiPStfW2wrNDk2Pj4zXSksQT0rX1sxNTIrKDB8YVsocGU9bCsxNnwwKT4+Ml0pPj4zXS8ocWU9KGIqPStfW2MrMjQ+PjNdLXFlKSsodyo9K19bYysxNj4+M10t''@;'; + put 'put ''QSkpKjIuNSxfW2s+PjNdPXcsX1trKzg+PjNdPS4yNSpxZSxfW2srMTY+PjNdPWIsYz0wfEVhKGwsNzgyNzcsaykscWU9KygwfGFbKGs9bCszNjB8MCk+PjJdKSxfW3A+PjNdPTkwLF9bcCs4Pj4zXT0wLF9bcCsxNj4+M109cWUscD0wfEVhKGwsNzgzMDkscCkscWU9K2puWzQ2NzI5XSxfW1Jl''@;'; + put 'put ''Pj4zXT1SLF9bUmUrOD4+M109RyxfW1JlKzE2Pj4zXT1xZSxtPTB8RWEobCw3ODM0MSxSZSksT2U9MTYrKDB8YVtwZT4+Ml0pfDAsTGU9KGJlPVJlKSs0MHwwO2Rve2FbYmU+PjJdPWFbT2U+PjJdLGJlPWJlKzR8MCxPZT1PZSs0fDB9d2hpbGUoKDB8YmUpPCgwfExlKSk7aWYoT2U9MHxXQShs''@;'; + put 'put ''LFJlLDApLF9bTT4+M109MSxfW00rOD4+M109QSxhW00rMTY+PjJdPWMsYVtNKzIwPj4yXT1wLGFbTSsyND4+Ml09bSxhW00rMjg+PjJdPU9lLEVuKGwsTGU9MHxFYShsLDc4OTMyLE0pKSxGdChjKSxGdChwKSxGdChtKSxGdChPZSksRnQoTGUpLDB8Zil7X1tEPj4zXT13LF9bRCs4Pj4zXT1i''@;'; + put 'put ''LF9bRCsxNj4+M109MSxtPTB8RWEobCw3ODI3NyxEKSxxZT0rKDB8YVtrPj4yXSksX1tLPj4zXT0wLF9bSys4Pj4zXT0wLF9bSysxNj4+M109cWUscD0wfEVhKGwsNzgzMDksSykscWU9K2puWzQ2NzI5XSxfW2dlPj4zXT1SLF9bZ2UrOD4+M109RyxfW2dlKzE2Pj4zXT1xZSxjPTB8RWEobCw3''@;'; + put 'put ''ODM0MSxnZSksT2U9NTYrKDB8YVtwZT4+Ml0pfDAsTGU9KGJlPVJlKSs0MHwwO2Rve2FbYmU+PjJdPWFbT2U+PjJdLGJlPWJlKzR8MCxPZT1PZSs0fDB9d2hpbGUoKDB8YmUpPCgwfExlKSk7UmU9MHxXQShsLFJlLDApLF9bSGU+PjNdPTAsX1tIZSs4Pj4zXT0wLF9bSGUrMTY+PjNdPTAsYVtI''@;'; + put 'put ''ZSsyND4+Ml09bSxhW0hlKzI4Pj4yXT1wLGFbSGUrMzI+PjJdPWMsYVtIZSszNj4+Ml09UmUsRW4obCxIZT0wfEVhKGwsNzg5NzgsSGUpKSxGdChtKSxGdChwKSxGdChjKSxGdChSZSksRnQoSGUpfWxlPVZlfSxmdW5jdGlvbiBLN2UobCxjLGYpe2N8PTAsZnw9MDt2YXIgYixELFIsSyxwZSxi''@;'; + put 'put ''ZSxPZSxwPTAsbT0wLEE9MCx3PTAsaz0wLE09MCxHPTAsZ2U9MCxMZT0wLFJlPTAsSGU9MDtPZT1sZSxsZT1sZSsxNjB8MCxwPU9lKzEyMHwwLGJlPU9lKzExMnwwLGdlPU9lKzk2fDAscGU9T2UrODh8MCxLPU9lKzU2fDAsaz1PZSs0OHwwLE09T2UrMjR8MCxHPU9lLEVuKGx8PTAsNzgyNjEp''@;'; + put 'put ''LGpuWzQ2NzI5XT0ram5bNDY3MjhdLTYsTGU9K19bbCs0OTY+PjNdLF9bRz4+M109K19bbCs0ODg+PjNdLF9bRys4Pj4zXT1MZSxfW0crMTY+PjNdPTEsRz0wfEVhKGwsNzgyNzcsRyksTGU9KygwfGFbbCszNjA+PjJdKSxfW00+PjNdPTAsX1tNKzg+PjNdPTAsX1tNKzE2Pj4zXT1MZSxNPTB8''@;'; + put 'put ''RWEobCw3ODMwOSxNKSxMZT0ram5bNDY3MjldLF9bcD4+M109MCxfW3ArOD4+M109MCxfW3ArMTY+PjNdPUxlLEQ9MHxFYShsLDc4MzQxLHApLEE9MTYrKDB8YVsoUj1sKzE2fDApPj4yXSl8MCx3PShtPXApKzQwfDA7ZG97YVttPj4yXT1hW0E+PjJdLG09bSs0fDAsQT1BKzR8MH13aGlsZSgo''@;'; + put 'put ''MHxtKTwoMHx3KSk7Zm9yKEE9MHxXQShsLHAsMCksYVtrPj4yXT03ODQwNCxhW2srND4+Ml09Zix3PWwrNTA0fDAsYj1sKzUxMnwwLG09MCxwPTB8RWEobCw3ODM3MyxrKTshKCgwfG0pPj0oMHxmKSk7KUhlPStfW2I+PjNdKyArX1tjKyhtPDw0KSs4Pj4zXSxMZT0rX1sxNTIrKDB8YVtSPj4y''@;'; + put 'put ''XSk+PjNdLF9bSz4+M109K19bdz4+M10rICtfW2MrKG08PDQpPj4zXSxfW0srOD4+M109SGUsX1tLKzE2Pj4zXT0wLF9bSysyND4+M109TGUsUmU9MHxFYShsLDc4NDE4LEspLGFbcGU+PjJdPXAsYVtwZSs0Pj4yXT1SZSxrPTB8RWEobCw3ODQ0NyxwZSksRnQoUmUpLEZ0KHApLG09bSsxfDAs''@;'; + put 'put ''cD1rO2FbZ2U+PjJdPUcsYVtnZSs0Pj4yXT1NLGFbZ2UrOD4+Ml09RCxhW2dlKzEyPj4yXT1BLGdlPTB8RWEobCw3ODQ1NixnZSksYVtiZT4+Ml09cCxhW2JlKzQ+PjJdPWdlLFJlPTB8RWEobCw3ODUwMixiZSksRnQoZ2UpLEVuKGwsUmUpLEZ0KEcpLEZ0KE0pLEZ0KEQpLEZ0KEEpLEZ0KFJl''@;'; + put 'put ''KSxsZT1PZX0sZnVuY3Rpb24gY3MobCxjLGYpe2x8PTAsY3w9MDt2YXIgayxNLFIsRyxLLHA9MCxtPTAsQT0wLHc9MCxiPTAsRD0wO3N3aXRjaChLPWxlLGxlPWxlKzQ4fDAsRz1LKzI0fDAsUj1LKzh8MCxEPUssMHxmZVs0OCsoZnw9MCk+PjBdKXtjYXNlIDEwODpiPWMsQT0rX1tmKzMyPj4z''@;'; + put 'put ''XSx3PStfW2M+PjNdO2JyZWFrO2Nhc2UgMTE0Om09QT0rX1tmKzMyPj4zXSxwPTU7YnJlYWs7ZGVmYXVsdDptPS41KihBPStfW2YrMzI+PjNdKSxwPTV9NT09KDB8cCkmJihfW2M+PjNdPXc9K19bYz4+M10tbSxiPWMpLF9bKGM9Yys4fDApPj4zXT1NPStfW2M+PjNdKy4wMDQ2Mjk2Mjk2Mjk2''@;'; + put 'put ''Mjk2MjkqKG09K19bMTYrKHA9MHxhWyhrPWYrNHwwKT4+Ml0pPj4zXSksX1tiPj4zXT1BPXcrLjAwNjk0NDQ0NDQ0NDQ0NDQ0NCpBLHA9MHxhW3A+PjJdO2Rve2lmKHApe2lmKDB8KGM9MHxhWzQ2NzMwXSkmJjA9PSgwfFppKGMscCkpKWJyZWFrO2FbRD4+Ml09MHxKaWUocCksT3IobCw4MTE3''@;'; + put 'put ''MyxEKSxhWzQ2NzMwXT1hWyhEPTB8YVtrPj4yXSk+PjJdLG09K19bRCsxNj4+M119fXdoaWxlKDApOygwfChwPSgwfChwPX5+bSkpPjE/cDoxKSkhPSgwfGFbNDY3MzFdKSYmKHc9K19bMTkyMTRdLGFbUj4+Ml09cCxfW1IrOD4+M109dyxPcihsLDgxMTgxLFIpLGFbNDY3MzFdPXApLGFbRz4+''@;'; + put 'put ''Ml09MHxmdW5jdGlvbiBWRihsKXtsfD0wO3ZhciBBLHcsYz0wLGY9MCxwPTAsbT0wO2Zvcih3PWxlLGxlPWxlKzE2fDAsQT13LChjPTB8YVs0NjczMl0pfHwoYVs0NjczM109NjQsYz0wfEIwKDY0KSxhWzQ2NzMyXT1jKSxmPTA7bT1sKzF8MCwocD0wfGZlW2w+PjBdKTw8MjQ+PjI0OykoMHxm''@;'; + put 'put ''KT4oKGw9MHxhWzQ2NzMzXSktOHwwKSYmKGFbNDY3MzNdPWM9bDw8MSxjPTB8VWEoMHxhWzQ2NzMyXSxjKSxhWzQ2NzMyXT1jLGM9YytmfDApLHA8PDI0Pj4yNDw9LTE/KGZlW2M+PjBdPTkyLGFbQT4+Ml09MjU1JnAsb28oYysxfDAsODEyMjQsQSksbD1tLGM9Yys0fDAsZj1mKzR8MCk6KHA8''@;'; + put 'put ''PDI0Pj4yND09OTImJihmZVtjPj4wXT05MixmPWYrMXwwLGM9YysxfDApLGZlW2M+PjBdPXAsbD1tLGM9YysxfDAsZj1mKzF8MCk7cmV0dXJuIGZlW2M+PjBdPTAsbGU9dywwfGFbNDY3MzJdfSgwfGFbZj4+Ml0pLF9bRys4Pj4zXT1BLF9bRysxNj4+M109TSxPcihsLDgxMjAyLEcpLGxlPUt9''@;'; + put 'put ''LGZ1bmN0aW9uIFlpZShsLGMsZil7dmFyIHAsbSxBLHcsYixrO2x8PTAsZnw9MCxwPWxlLGxlPWxlKzQ4fDAsaz0uMDI3Nzc3Nzc3Nzc3Nzc3Nzc2KigrX1sxNisoY3w9MCk+PjNdLSh3PStfW2M+PjNdKSksYj0uMDI3Nzc3Nzc3Nzc3Nzc3Nzc2KigrX1tjKzI0Pj4zXS0oQT0rX1tjKzg+PjNd''@;'; + put 'put ''KSksYVsobT1wKT4+Ml09MSxhW20rND4+Ml09MHxmPzgxMTE1OjE5NTA1OSxfW20rOD4+M109ayxfW20rMTY+PjNdPWIsX1ttKzI0Pj4zXT0uMDEzODg4ODg4ODg4ODg4ODg4KncsX1ttKzMyPj4zXT0uMDEzODg4ODg4ODg4ODg4ODg4KkEsT3IobCw4MTEyMSxtKSxsZT1wfSxmdW5jdGlvbiBz''@;'; + put 'put ''WShsLGMsZil7dmFyIHA7Y3w9MCxmfD0wLHA9bGUsbGU9bGUrMTZ8MCxORigwfGFbMTYrKGx8PTApPj4yXSxwKzh8MCxwKSx1WShsLGMsZiwwKSxsZT1wfSxmdW5jdGlvbiBvb2UobCxjLGYpe2gwKGN8PTAsODcyMzAsMHxhWyhmfD0wKT4+Ml0sMSl9LGZ1bmN0aW9uIGhVKGwsYyxmKXtoMChj''@;'; + put 'put ''fD0wLDg3Mzk3LDB8YVs0KyhmfD0wKT4+Ml0sMSl9LGZ1bmN0aW9uIGFvZShsLGMsZil7aDAoY3w9MCw4NzM4MiwwfGFbOCsoZnw9MCk+PjJdLDEpfSxmdW5jdGlvbiBPSihsLGMsZil7RnQoY3w9MCl9LGZ1bmN0aW9uIE1BKGwsYyxmKXtGdChjfD0wKX0sZnVuY3Rpb24gYVQobCxjLGYpe0Z0''@;'; + put 'put ''KGN8PTApfSxmdW5jdGlvbiBWUChsLGMsZil7ZTAoMHxhWzQ2OTQyXSwwfGFbOCsoY3w9MCk+PjJdKSxlMCgwfGFbNDY5NDJdLDB8YVtjKzEyPj4yXSkseHQoMHxhWzQ2OTQyXSxjKX0sZnVuY3Rpb24gVVAobCxjLGYpe30sZnVuY3Rpb24gVXQobCxjLGYpe2x8PTAsKDI4KyhsPTB8YVsxNiso''@;'; + put 'put ''Y3w9MCk+PjJdKXwwKSE9KDB8YykmJnh0KDB8YVtsKzI0Pj4yXSxjKX0sZnVuY3Rpb24gam8obCxjLGYpeyhmdW5jdGlvbiB3YShsKXt2YXIgYyxmPTA7Zm9yKGM9MTYrKGx8PTApfDAsbD0wfGFbbCsyND4+Ml07bDspZj0wfGFbbCs0Pj4yXSx4dCgwfGFbYz4+Ml0sbCksbD1mfSkoY3w9MCks''@;'; + put 'put ''eHQoMHxhW2MrMTY+PjJdLGMpfSxmdW5jdGlvbiBVbmUobCxjLGYpe2x8PTAsY3w9MCwobD0wfGFbNDY5ODRdKT94dChsLGMpOkZ0KGMpfSxmdW5jdGlvbiBfcmUobCxjLGYpe2x8PTA7dmFyIHA9MDswfChsPTB8YVsyMCsoY3w9MCk+PjJdKSYmZXcobCksMHxhW2MrNTI+PjJdJiYwfChwPTB8''@;'; + put 'put ''YVtjKzYwPj4yXSkmJkNvWzEyNyZwXShjKSxGdChjKX0sZnVuY3Rpb24gaVEobCxjLGYpe0Z0KGN8PTApfSxmdW5jdGlvbiBmYWUobCxjLGYpe0Z0KGN8PTApfSxmdW5jdGlvbiBtYWUobCxjLGYpe2FbKGN8PTApPj4yXT1hWyhmPTM2KyhmfD0wKXwwKT4+Ml0sYVtmPj4yXT1jfSxmdW5jdGlv''@;'; + put 'put ''biBGUShsLGMsZil7RnQoMHxhWzUyKyhjfD0wKT4+Ml0pfSxmdW5jdGlvbiBUbGUobCxjLGYpe0Z0KGN8PTApfSxmdW5jdGlvbiBEbGUobCxjLGYpe0Z0KGN8PTApfSxmdW5jdGlvbiBqOChsLGMsZil7TmwoMHxhWzE2KyhjfD0wKT4+Ml0pLEZ0KGMpfSxmdW5jdGlvbiBwYihsLGMsZil7KGZ1''@;'; + put 'put ''bmN0aW9uIENSKGwpe3ZhciBmLGM9MCxwPTA7Zm9yKGY9NCsobHw9MCl8MCxjPTA7cD0wfGFbZj4+Ml0sISgoMHxjKT49KDB8YVtsPj4yXSkpOylObCgwfGFbcCsoMTIqY3wwKSs4Pj4yXSksYz1jKzF8MDtGdChwKSxGdChsKX0pKDB8YVszMisoY3w9MCk+PjJdKSxGdCgwfGFbYysyOD4+Ml0p''@;'; + put 'put ''LEZ0KGMpfSxmdW5jdGlvbiBSUihsLGMsZil7bHw9MCxmfD0wO3ZhciBiLHA9MCxtPTAsQT0wLHc9MDtzd2l0Y2goYj1sZSxsZT1sZSsxNnwwLHA9YiwwfChjfD0wKSl7Y2FzZSAxOmFbcD4+Ml09YVtmPj4yXSxhW3ArND4+Ml09YVtmKzQ+PjJdLGFbcCs4Pj4yXT1hW2YrOD4+Ml0sYVtwKzEy''@;'; + put 'put ''Pj4yXT1hW2YrMTI+PjJdLE05KGwscCksZnVuY3Rpb24gRTkobCl7dmFyIGM9MCxmPTAscD0wO2M9MHxhWyhwPTU4MCsobHw9MCl8MCk+PjJdO2U6ZG97aWYoMHxjKXN3aXRjaCgwfGtpKGMpKXtjYXNlIDA6ZmVbKGY9MTEyKygwfGFbYysxNj4+Ml0pfDApPj4wXT0tNyZmZVtmPj4wXXw0O2Jy''@;'; + put 'put ''ZWFrIGU7Y2FzZSAxOmZlWyhmPTExNysoMHxhW2MrMTY+PjJdKXwwKT4+MF09LTcmZmVbZj4+MF18NDticmVhayBlO2Nhc2UgMjpmZVsoZj0xMTUrKDB8YVtjKzE2Pj4yXSl8MCk+PjBdPS03JmZlW2Y+PjBdfDQ7YnJlYWsgZTtkZWZhdWx0OmJyZWFrIGV9fXdoaWxlKDApOzB8KGY9MHxhWyhj''@;'; + put 'put ''PWwrNTg4fDApPj4yXSkmJihGdChmKSxhW2M+PjJdPTApLGFbcD4+Ml09Yz0wfGFbbCs1NzY+PjJdO2U6ZG97aWYoMHxjKXN3aXRjaCgwfGtpKGMpKXtjYXNlIDA6ZmVbKHA9MTEyKygwfGFbYysxNj4+Ml0pfDApPj4wXT0yfGZlW3A+PjBdLFk4KGwsYyk7YnJlYWsgZTtjYXNlIDE6ZmVbKHA9''@;'; + put 'put ''MTE3KygwfGFbYysxNj4+Ml0pfDApPj4wXT0yfGZlW3A+PjBdLGIzKGwsYyk7YnJlYWsgZTtjYXNlIDI6ZmVbKHA9MTE1KygwfGFbYysxNj4+Ml0pfDApPj4wXT0yfGZlW3A+PjBdLGEyKGwsYyk7YnJlYWsgZTtkZWZhdWx0OmJyZWFrIGV9fXdoaWxlKDApfShsKSxmZVtsKzUzOD4+MF09MSxm''@;'; + put 'put ''ZVtsKzU0MT4+MF09MSx3PTEzO2JyZWFrO2Nhc2UgMjpmZVtsKzUzOD4+MF09MSxmZVtsKzU0MT4+MF09Mix3PTEzO2JyZWFrO2Nhc2UgMzphW3A+PjJdPWFbZj4+Ml0sYVtwKzQ+PjJdPWFbZis0Pj4yXSxhW3ArOD4+Ml09YVtmKzg+PjJdLGFbcCsxMj4+Ml09YVtmKzEyPj4yXSxNOShsLHAp''@;'; + put 'put ''LGZlW2wrNTM4Pj4wXT0xLGZlW2wrNTQxPj4wXT0zLHc9MTM7YnJlYWs7Y2FzZSA0OmZlW2wrNTM2Pj4wXT0wLDB8YVtsKzM2MD4+Ml0/KF9bKGM9bCszMzZ8MCk+PjNdPStfW2M+PjNdLS4xMDAwMDAwMDAwMDAwMDAwOSooK19bZis4Pj4zXS0uNSorKCgwfGFbbCs0NTI+PjJdKT4+PjApKS8o''@;'; + put 'put ''K19bbCs1Mjg+PjNdKihBPStfWyhwPWwrMzUyfDApPj4zXSkpLG09K19bZj4+M10tLjUqKygoMHxhW2wrNDQ4Pj4yXSk+Pj4wKSxjPWwrNTIwfDApOihfWyhjPWwrMzM2fDApPj4zXT0uMTAwMDAwMDAwMDAwMDAwMDkqKCtfW2Y+PjNdLS41KisoKDB8YVtsKzQ0OD4+Ml0pPj4+MCkpLygrX1ts''@;'; + put 'put ''KzUyMD4+M10qKEE9K19bKHA9bCszNTJ8MCk+PjNdKSkrICtfW2M+PjNdLG09K19bZis4Pj4zXS0uNSorKCgwfGFbbCs0NTI+PjJdKT4+PjApLGM9bCs1Mjh8MCksX1sodz1sKzM0NHwwKT4+M109LjEwMDAwMDAwMDAwMDAwMDA5Km0vKCtfW2M+PjNdKkEpKyArX1t3Pj4zXSxfW3A+PjNdPTEu''@;'; + put 'put ''MSpBLHc9MTM7YnJlYWs7Y2FzZSA1OmZlW2wrNTM2Pj4wXT0wLF9bKHc9bCszNTJ8MCk+PjNdPUE9LjkwOTA5MDkwOTA5MDkwOTEqK19bdz4+M10sMHxhW2wrMzYwPj4yXT8oX1socD1sKzMzNnwwKT4+M109LjEwMDAwMDAwMDAwMDAwMDA5KigrX1tmKzg+PjNdLS41KisoKDB8YVtsKzQ1Mj4+''@;'; + put 'put ''Ml0pPj4+MCkpLygrX1tsKzUyOD4+M10qQSkrICtfW3A+PjNdLG09K19bZj4+M10tLjUqKygoMHxhW2wrNDQ4Pj4yXSk+Pj4wKSxwPWwrNTIwfDApOihfWyhwPWwrMzM2fDApPj4zXT0rX1twPj4zXS0uMTAwMDAwMDAwMDAwMDAwMDkqKCtfW2Y+PjNdLS41KisoKDB8YVtsKzQ0OD4+Ml0pPj4+''@;'; + put 'put ''MCkpLygrX1tsKzUyMD4+M10qQSksbT0rX1tmKzg+PjNdLS41KisoKDB8YVtsKzQ1Mj4+Ml0pPj4+MCkscD1sKzUyOHwwKSxfWyh3PWwrMzQ0fDApPj4zXT0rX1t3Pj4zXS0uMTAwMDAwMDAwMDAwMDAwMDkqbS8oK19bcD4+M10qQSksdz0xM30xMz09KDB8dykmJihmZVtsKzUzNz4+MF09MSks''@;'; + put 'put ''YVsobD1sKzU2MHwwKT4+Ml09YVtmPj4yXSxhW2wrND4+Ml09YVtmKzQ+PjJdLGFbbCs4Pj4yXT1hW2YrOD4+Ml0sYVtsKzEyPj4yXT1hW2YrMTI+PjJdLGxlPWJ9LGZ1bmN0aW9uIEt6KGwsYyxmKXtmZVs1MzgrKGx8PTApPj4wXT0wLGZlW2wrNTQxPj4wXT0wfSxmdW5jdGlvbiB3YihsLGMs''@;'; + put 'put ''Zil7fSxmdW5jdGlvbiAkeihsLGMsZil7Znw9MDt2YXIgYixwPTAsbT0wLEE9MCx3PTA7Yj0wfGFbKGx8PTApPj4yXSwoY3w9MCk/MHwoYz0wfG5TKGMsMTM4ODIxKSkmJih3PTB8bkYoYywwKSxldyhjKSxwPTUpOih3PTB8bkYoMHxhWzE1NjQ3XSwwKSxwPTUpLDU9PSgwfHApJiYwfHcmJigw''@;'; + put 'put ''fChjPTB8YVsobT1iKzE2OHwwKT4+Ml0pJiYoMCE9KDB8KHA9MHxhW2IrMTcyPj4yXSkpJiYwIT0oMHwoQT0wfGFbcCs0Pj4yXSkpJiYoQ29bMTI3JkFdKGMpLGM9MHxhW20+PjJdKSxmdW5jdGlvbiBkcChsKXt2YXIgYz0wLGY9MCxwPTA7Yz0wfGFbOCsoZj0wfGFbKHA9MTYrKGx8PTApfDAp''@;'; + put 'put ''Pj4yXSk+PjJdO2Rve2lmKGMpe2lmKChmPTB8YVtjKzg4Pj4yXSkmJihGcmUoZiksIShjPTB8YVs4KyhmPTB8YVtwPj4yXSk+PjJdKSkpe2M9ZjticmVha31GdCgwfGFbYys5Mj4+Ml0pLGM9MHxhW3A+PjJdfWVsc2UgYz1mfXdoaWxlKDApO0Z0KDB8YVtjKzg+PjJdKSxhWzgrKHA9MHxhW3A+''@;'; + put 'put ''PjJdKT4+Ml09MCxJYygwfGFbcCsxMj4+Ml0pLGwyKGwsMCwxMzc0ODMpfShjKSxDMSgwfGFbbT4+Ml0pKSwkaSh3LDAsMTM3NDgzLDI4MCwxKSwkaSh3LDEsMTM3NDQ3LDMwNCwxKSwkaSh3LDIsMTM3NDYwLDE3NiwxKSxhW20+PjJdPXcsYVsxNDQrKDB8YVt3KzE2Pj4yXSk+PjJdPWIsLTEh''@;'; + put 'put ''PSgwfERUKGIsdyxmKSkmJihhW2wrNTgwPj4yXT0wLGFbbCs1NzY+PjJdPTAsZmVbbCs1Mzc+PjBdPTEpKX0sZnVuY3Rpb24gUzkobCxjLGYpe2N8PTAsZnw9MDt2YXIgQSxwPTAsbT0wLHc9MCxiPTA7MCE9KDB8KHA9MHxhWyhtPTE2MCsoQT0wfGFbKGx8PTApPj4yXSl8MCk+PjJdKSkmJjA9''@;'; + put 'put ''PSgwfGFbQSsxNjQ+PjJdKT8odz0wfGFbKGI9QSsxOTJ8MCk+PjJdLGFbbT4+Ml09MCxhW2I+PjJdPTAsbT13KToobT0wLHA9MCksZnVuY3Rpb24gQ3JlKGwsYyxmLHApe3B8PTA7dmFyIG0sQSxiLHc9MDtiPWxlLGxlPWxlKzE2fDAsQT1iLG09MHxhWzYwKyhjfD0wKT4+Ml0seFQobHw9MCxm''@;'; + put 'put ''fD0wKSxhWzU2KyhjPTB8YVtsKzE2ND4+Ml0pPj4yXT0wfEM5KGMsMHxhW2MrNTI+PjJdKSwwIT0oMHxoMChtLDEzNzQ4MywwLDEpKSYmMCE9KDB8YVs4KygwfGFbbSsxNj4+Ml0pPj4yXSl8fDY3MTA4ODY0JmFbYysxNTI+PjJdP3c9NTooWG0oOTg5MTEsQSksYz0tMSksNT09KDB8dykmJihm''@;'; + put 'put ''dW5jdGlvbiBocmUobCxjKXtjfD0wO3ZhciBmPTAscD0wOyhmPTB8YVsocD0xNjArKGx8PTApfDApPj4yXSk/KHA9MHxhWzQ2OTk5XSkmJigoZj0wfGFbcCs0Pj4yXSl8fChmPTB8dnIoNjMyKSxhWzQrKDB8YVs0Njk5OV0pPj4yXT1mKSk6KGY9MHx2cig2MzIpLGFbcD4+Ml09ZixhW2wrMTY0''@;'; + put 'put ''Pj4yXT1mKSxhWzQ2OTk5XT1mLGFbZiszMj4+Ml09YyxhW2Y+PjJdPWx9KGwscCksdz0wfGcyKGwsbSksazkoYyksZnJlKGMpLGxGKGwpLGM9dyksbGU9Yn0oQSwwfGFbQSsxNjg+PjJdLGMsZiksMHxwJiYoYVsxNjArKGI9MHxhW2w+PjJdKT4+Ml09cCxhW2IrMTkyPj4yXT1tKX0sZnVuY3Rp''@;'; + put 'put ''b24gYmMobCxjLGYpe0Z0KGN8PTApfSxmdW5jdGlvbiB2QihsLGMsZil7TmwoMHxhWzgrKGN8PTApPj4yXSksRnQoYyl9LGZ1bmN0aW9uIEtiKGwsYyxmKXtGdChjfD0wKX0sdUMsS20sZnVuY3Rpb24genIobCxjLGYpe2x8PTAsZnw9MDt2YXIgcD0wO2ZvcihhWzQ2OTU2XT1jfD0wLGY9MHxT''@;'; + put 'put ''cyhsLGMpO2Y7KXA9MHxOcyhsLGYsYyksS20obCxmLDApLGY9cDttaVs2MyZhWyhwPTB8YVtsKzQwPj4yXSk+PjJdXShwLDE4NzgwOCwyKSxtaVs2MyZhWyhwPTB8YVtsKzM2Pj4yXSk+PjJdXShwLDE4NzgwOCwyKX0seG8sZnVuY3Rpb24gTWMobCxjLGYpe0hpKGN8PTAsZnw9MCl9LGZ1bmN0''@;'; + put 'put ''aW9uIGhrKGwsYyxmKXtjfD0wLGZ8PTA7dmFyIHA9MCxtPTAsQT0wLHc9MDtmb3IobD0xOTIrKDB8YVsxNisobHw9MCk+PjJdKXwwLHA9MCx3PTA7bD0wfGFbbD4+Ml07KXtmb3IobT0wfGFbMTgwKyhBPTB8YVtsKzE2Pj4yXSk+PjJdLGw9MDswfGFbbSsobDw8Mik+PjJdOylsPWwrMXwwLHA9''@;'; + put 'put ''cCsxfDA7bD1BKzE2NHwwLHc9dysxfDB9YVtjPj4yXT13LGFbZj4+Ml09cH0sZnVuY3Rpb24gd04obCxjLGYpe0Z0KDB8YVsoY3w9MCk+PjJdKSxGdCgwfGFbYys0Pj4yXSksRnQoYyl9LGU0LGZ1bmN0aW9uIEt1KGwsYyxmKXtsfD0wLGZ8PTA7dmFyIHcsYixrLE0scD0wLG09MCxBPTA7Zm9y''@;'; + put 'put ''KE09bGUsbGU9bGUrMzJ8MCx3PU0saDIoTSsxNnwwLGN8PTApLGI9YyszMnwwLGs9YyszNnwwLG09MDshKCgwfG0pPj0oMHxhW2I+PjJdKSk7KSgwfChwPTB8YVsyMCsoQT0wfGFbKDB8YVtrPj4yXSkrKG08PDIpPj4yXSk+PjJdKSk9PSgwfGMpJiYocD0wfGFbQSsyND4+Ml0pLENpKHcsQSxw''@;'; + put 'put ''KSx2MyhsLGYsQSwwKSxtPW0rMXwwO2FbbD4+Ml09MSsoMHxhW2w+PjJdKSxhW2YrMjQ+PjJdPWMsYVtmKzIwPj4yXT1jLGxlPU19LGZ1bmN0aW9uIFd6KGwsYyxmKXtsfD0wLGN8PTA7dmFyIHcsYixwPTAsbT0wLEE9MCxrPTA7Zm9yKGI9MjArKGZ8PTApfDAsdz1mKzI0fDAsZj0wOyEoKDB8''@;'; + put 'put ''Zik+PSgwfGwpKTspe2ZvcihtPTB8YVtjKyhmPDwzKT4+Ml0sQT0wfGFbYysoZjw8MykrND4+Ml0scD0wOyEoKDB8cCk+PSgwfG0pKTspWk0oMHxsNigwfGFbKDA9PSgwfGZlWyhrPUErKDU2KnB8MCl8MCk+PjBdKT9iOncpPj4yXSxrKSxrKSxwPXArMXwwO2Y9ZisxfDB9fSxmdW5jdGlvbiBO''@;'; + put 'put ''RShsLGMsZil7KGZ1bmN0aW9uIHdCKGwpe3ZhciBjO3N3aXRjaChjPTg4KyhsfD0wKXwwLDB8ZmVbbCs5Mj4+MF0pe2Nhc2UgMTpWRSgwfGFbYz4+Ml0pO2JyZWFrO2Nhc2UgMjpRUigwfGFbYz4+Ml0pfUs4KGwpLEZ0KGwpfSkoMHxhWzgrKGN8PTApPj4yXSksRnQoYyl9LGZ1bmN0aW9uIEFC''@;'; + put 'put ''KGwsYyxmKXtGdCgwfGFbOCsoY3w9MCk+PjJdKSxGdChjKX0sZnVuY3Rpb24gakUobCxjLGYpe2x8PTAsZnw9MDt2YXIgbSxwPTAsQT0wO2lmKChsPTB8aXRbKG09MTIrKGN8PTApfDApPj4xXSk8PDE2Pj4xNil7Zm9yKGY9MCxwPTB8YVsoQT1jKzh8MCk+PjJdOyEoKDB8Zik+PShsPDwxNj4+''@;'; + put 'put ''MTZ8MCkpOylGdCgwfGFbcD4+Ml0pLGY9ZisxfDAscD1wKzU2fDAsbD0wfGl0W20+PjFdO0Z0KDB8YVtBPj4yXSl9RnQoYyl9LGZ1bmN0aW9uIF9CKGwsYyxmKXtsfD0wLGN8PTAsZnw9MDtkb3tpZigwfHkwKGMsMTQwNjAzKSl7aWYoMHx5MChjLDE0MDYwOSkmJjB8eTAoYywxNDA2MTIpKXtp''@;'; + put 'put ''ZighKDB8eTAoYywxNDA2MTUpKSl7ZmVbMTg5NjYyXT0xLGFbNDczOTldPTB8a0IoZiksYVs0NzQwOV09Mjg3O2JyZWFrfWlmKCEoMHx5MChjLDE0MDYyMykpKXthWzQ3Mzk5XT0wfElkKGwsZiwwKSxhWzQ3NDA5XT0yODg7YnJlYWt9aWYoISgwfHkwKGMsMTQwNjI4KSkpe2FbNDczOTldPTB8''@;'; + put 'put ''SWQobCwwLDEpLGFbNDc0MDldPTI5MDticmVha31pZighKDB8eTAoYywxNDA2NDQpKSl7YVs0NzM5OV09MHxJZChsLDAsMzIpLGFbNDc0MDldPTI5NTticmVha31pZighKDB8eTAoYywxNDA2MzApKSl7YVs0NzM5OV09MHxJZChsLDAsNCksYVs0NzQwOV09MjkxO2JyZWFrfWlmKCEoMHx5MChj''@;'; + put 'put ''LDE0MDYzMikpKXthWzQ3Mzk5XT0wfElkKGwsMCw2NCksYVs0NzQwOV09MjkyO2JyZWFrfWlmKCEoMHx5MChjLDE0MDYzNCkpKXthWzQ3Mzk5XT0wfElkKGwsMCwyKSxhWzQ3NDA5XT0yODk7YnJlYWt9aWYoISgwfHkwKGMsMTQwNjM2KSkpe2FbNDczOTldPTB8SWQobCwwLDgpLGFbNDc0MDld''@;'; + put 'put ''PTI5MzticmVha31pZighKDB8eTAoYywxNDA2NDApKSl7YVs0NzM5OV09MHxJZChsLDAsMTYpLGFbNDc0MDldPTI5NDticmVha31pZighKDB8eTAoYywxNDA2NDYpKSl7bEcoZiksYVs0NzQwOV09MjgzO2JyZWFrfWlmKCEoMHx5MChjLDE0MDY0OSkpKXthWzQ3NDA5XT0yNzc7YnJlYWt9aWYo''@;'; + put 'put ''ISgwfHkwKGMsMTQwNjUyKSkpe2FbNDc0MDldPTI4MDticmVha31pZighKDB8eTAoYywxNDA2NTUpKSl7YVs0NzM5OV09MHxZRShmKSxhWzQ3NDA5XT0yODU7YnJlYWt9aWYoMHx5MChjLDE0MDYxOCkpe0dFKGMpO2JyZWFrfWFbNDc0MDldPTI2MjticmVha31mZVsxODk2NjJdPTAsYVs0NzQw''@;'; + put 'put ''OV09MjYwfWVsc2UgYVs0NzM5OV09MHxXRShmKSxmZVsxODk2NjJdPTAsYVs0NzQwOV09Mjg2fXdoaWxlKDApfSxmdW5jdGlvbiB6RShsLGMsZil7bHw9MCxjfD0wLGZ8PTA7dmFyIHA9MCxtPTAsQT0wO2lmKDB8ZmVbMTg5NjYyXSl7Zm9yKGw9MDtmOylBPWMrMXwwLCgyNTUmKG09MHxmZVtj''@;'; + put 'put ''Pj4wXSkpPjMxJiYoKHA9MHxhWzQrKGM9MHxhWzQ3NDEwXSk+PjJdKT4+PjA+PSgwfGFbYys4Pj4yXSk+Pj4wJiYoUTAoYywxKSxjPXA9MHxhWzQ3NDEwXSxwPTB8YVtwKzQ+PjJdKSxhW2MrND4+Ml09cCsxLGZlW3A+PjBdPW0sbD1sKzF8MCksYz1BLGY9ZistMXwwOzB8bCYmKGFbNDc0MDld''@;'; + put 'put ''PTI2Nyl9fSxNMCxNMCxNMCxNMCxNMCxNMCxNMCxNMCxNMCxNMCxNMCxNMCxNMCxNMCxNMCxNMCxNMCxNMCxNMCxNMCxNMCxNMCxNMCxNMCxNMCxNMCxNMCxNMCxNMCxNMCxNMCxNMCxNMCxNMCxNMCxNMCxNMCxNMCxNMCxNMCxNMCxNMCxNMCxNMCxNMCxNMCxNMCxNMCxNMCxNMCxNMCxNMCxN''@;'; + put 'put ''MCxNMCxNMCxNMF0sdXc9W2ZjLGZ1bmN0aW9uIHFtZShsLGMsZixwLG0sQSl7bHw9MCxwPStwLEF8PTA7dmFyIEQsUixHLHc9MCxiPTAsaz0wLE09MDtHPWxlLGxlPWxlKzk2fDAsUj1HLEQ9KHc9K19bOCsoZnw9MCk+PjNdKSooaz0obT0rbSk+ND8uMDg3NSptOi4zNSksayo9Yj0rX1tmPj4z''@;'; + put 'put ''XSxfWyhNPUcrODB8MCk+PjNdPWI9KHA9K19bKGN8PTApPj4zXSkrYixfW00rOD4+M109dys9bT0rX1tjKzg+PjNdLGY9Uis2NHwwLDMyJkE/KGFbZj4+Ml09YVtjPj4yXSxhW2YrND4+Ml09YVtjKzQ+PjJdLGFbZis4Pj4yXT1hW2MrOD4+Ml0sYVtmKzEyPj4yXT1hW2MrMTI+PjJdLGFbUj4+''@;'; + put 'put ''Ml09YVtjPj4yXSxhW1IrND4+Ml09YVtjKzQ+PjJdLGFbUis4Pj4yXT1hW2MrOD4+Ml0sYVtSKzEyPj4yXT1hW2MrMTI+PjJdLGFbKGM9UiszMnwwKT4+Ml09YVtNPj4yXSxhW2MrND4+Ml09YVtNKzQ+PjJdLGFbYys4Pj4yXT1hW00rOD4+Ml0sYVtjKzEyPj4yXT1hW00rMTI+PjJdKTooYVtm''@;'; + put 'put ''Pj4yXT1hW00+PjJdLGFbZis0Pj4yXT1hW00rND4+Ml0sYVtmKzg+PjJdPWFbTSs4Pj4yXSxhW2YrMTI+PjJdPWFbTSsxMj4+Ml0sYVtSPj4yXT1hW00+PjJdLGFbUis0Pj4yXT1hW00rND4+Ml0sYVtSKzg+PjJdPWFbTSs4Pj4yXSxhW1IrMTI+PjJdPWFbTSsxMj4+Ml0sYVsoTT1SKzMyfDAp''@;'; + put 'put ''Pj4yXT1hW2M+PjJdLGFbTSs0Pj4yXT1hW2MrND4+Ml0sYVtNKzg+PjJdPWFbYys4Pj4yXSxhW00rMTI+PjJdPWFbYysxMj4+Ml0sbT13LHA9YiksX1tSKzE2Pj4zXT1wK0QsX1tSKzI0Pj4zXT1tLWssX1tSKzQ4Pj4zXT1wLUQsX1tSKzU2Pj4zXT1tK2s7ZG97aWYoISg2NCZBKSl7aWYoMTI4''@;'; + put 'put ''JkEpe2thKGwsUiszMnwwLDMsQT4+PjQmMV4xKTticmVha31rYShsLFIrMTZ8MCwzLEE+Pj40JjFeMSk7YnJlYWt9a2EobCxSLDMsQT4+PjQmMV4xKX13aGlsZSgwKTtsZT1HfSxmdW5jdGlvbiBXMyhsLGMsZixwLG0sQSl7bHw9MDt2YXIgRCxSLEcsTGUsUmUsSGUsdz0wLGI9MCxrPTAsTT0w''@;'; + put 'put ''LEs9MCxwZT0wLGdlPTAsYmU9MCxPZT0wLFZlPTA7SGU9bGUsbGU9bGUrMTYwfDAsUmU9SGUsTGU9KEs9ISgoSz00KihwPStwKSk8KG09K20pKXwoVmU9MD09KDMyJihBfD0wKXwwKSk/LjQ1Om0vSyouNDUpKihwZT0tKE9lPStfWzgrKGZ8PTApPj4zXSkpLEsqPWJlPStfW2Y+PjNdLHBlKj1n''@;'; + put 'put ''ZT0hKG0+MSl8VmU/MDouMDUqKG0rLTEpL3AsZ2UqPWJlLF9bKEQ9SGUrMTQ0fDApPj4zXT1wPShHPStfWyhjfD0wKT4+M10pK2JlLF9bRCs4Pj4zXT1tPU9lKyhSPStfW2MrOD4+M10pLGJlPS41KmJlK0csT2U9LjUqT2UrUixmPVJlKzEyOHwwLFZlPyhhW2Y+PjJdPWFbRD4+Ml0sYVtmKzQ+''@;'; + put 'put ''PjJdPWFbRCs0Pj4yXSxhW2YrOD4+Ml09YVtEKzg+PjJdLGFbZisxMj4+Ml09YVtEKzEyPj4yXSxhW1JlPj4yXT1hW0Q+PjJdLGFbUmUrND4+Ml09YVtEKzQ+PjJdLGFbUmUrOD4+Ml09YVtEKzg+PjJdLGFbUmUrMTI+PjJdPWFbRCsxMj4+Ml0sYVsoVmU9UmUrNjR8MCk+PjJdPWFbYz4+Ml0s''@;'; + put 'put ''YVtWZSs0Pj4yXT1hW2MrND4+Ml0sYVtWZSs4Pj4yXT1hW2MrOD4+Ml0sYVtWZSsxMj4+Ml09YVtjKzEyPj4yXSx3PVIsYj1HLGs9UixNPUcsbT1SLHA9Ryk6KGFbZj4+Ml09YVtjPj4yXSxhW2YrND4+Ml09YVtjKzQ+PjJdLGFbZis4Pj4yXT1hW2MrOD4+Ml0sYVtmKzEyPj4yXT1hW2MrMTI+''@;'; + put 'put ''PjJdLGFbUmU+PjJdPWFbYz4+Ml0sYVtSZSs0Pj4yXT1hW2MrND4+Ml0sYVtSZSs4Pj4yXT1hW2MrOD4+Ml0sYVtSZSsxMj4+Ml09YVtjKzEyPj4yXSxhWyhWZT1SZSs2NHwwKT4+Ml09YVtEPj4yXSxhW1ZlKzQ+PjJdPWFbRCs0Pj4yXSxhW1ZlKzg+PjJdPWFbRCs4Pj4yXSxhW1ZlKzEyPj4y''@;'; + put 'put ''XT1hW0QrMTI+PjJdLHc9bStnZSxiPXArcGUsaz1tLWdlLE09cC1wZSksX1tSZSsxNj4+M109cC1MZSxfW1JlKzI0Pj4zXT1tLUssX1tSZSszMj4+M109YmUtcGUsX1tSZSs0MD4+M109T2UtZ2UsX1tSZSs0OD4+M109TSxfW1JlKzU2Pj4zXT1rLF9bUmUrODA+PjNdPWIsX1tSZSs4OD4+M109''@;'; + put 'put ''dyxfW1JlKzk2Pj4zXT1iZStwZSxfW1JlKzEwND4+M109T2UrZ2UsX1tSZSsxMTI+PjNdPXArTGUsX1tSZSsxMjA+PjNdPW0rSztkb3tpZighKDY0JkEpKXtpZigxMjgmQSl7a2EobCxSZSs0OHwwLDYsMSk7YnJlYWt9a2EobCxSZSw5LDEpO2JyZWFrfWthKGwsUmUsNiwxKX13aGlsZSgwKTts''@;'; + put 'put ''ZT1IZX0sZnVuY3Rpb24gdkYobCxjLGYscCxtLEEpe2x8PTAscD0rcCxtPSttLEF8PTA7dmFyIHcsYixELFIsRyxLLGdlLGJlLGs9MCxNPTAscGU9MDtLPWxlLGxlPWxlKzY0fDAscD0oaz0rX1soY3w9MCk+PjNdKSsoZ2U9K19bKGZ8PTApPj4zXSksbT0oTT0rX1tjKzg+PjNdKSsoYmU9K19b''@;'; + put 'put ''Zis4Pj4zXSksdz1rKy4yKmdlLGI9TSsuMipiZSxrKz0uNipnZSxNKz0uNipiZSxfWyhHPUspPj4zXT13LWJlLF9bRys4Pj4zXT1iK2dlLF9bKEQ9RysxNnwwKT4+M109dytiZSxfWyhSPUcrMjR8MCk+PjNdPWItZ2UsX1tHKzMyPj4zXT1rK2JlLF9bRys0MD4+M109TS1nZSxfW0crNDg+PjNd''@;'; + put 'put ''PWstYmUsX1tHKzU2Pj4zXT1NK2dlLDY0JkE/KGY9MyxBPTAscGU9Myk6MTI4JkF8MCYmKGY9MixBPTEscGU9MyksMz09KDB8cGUpJiYoX1tHKyhBPDw0KT4+M109dyxfW0crKEE8PDQpKzg+PjNdPWIsX1tHKyhmPDw0KT4+M109ayxfW0crKGY8PDQpKzg+PjNdPU0pLGthKGwsRyw0LDEpLGFb''@;'; + put 'put ''Rz4+Ml09YVtjPj4yXSxhW0crND4+Ml09YVtjKzQ+PjJdLGFbRys4Pj4yXT1hW2MrOD4+Ml0sYVtHKzEyPj4yXT1hW2MrMTI+PjJdLF9bRD4+M109cCxfW1I+PjNdPW0sV28obCxHLDIpLGxlPUt9LGZ1bmN0aW9uIEhyZShsLGMsZixwLG0sQSl7bHw9MCxwPStwLG09K20sQXw9MDt2YXIgayxN''@;'; + put 'put ''LEQsUixLLHBlLGdlLGJlLHc9MCxiPTAsRz0wO1I9bGUsbGU9bGUrNjR8MCxwZT0tLjQqKGI9K19bOCsoZnw9MCk+PjNdKSxLPS40Kih3PStfW2Y+PjNdKSxwPShiZT0rX1soY3w9MCk+PjNdKSsuOCp3LG09KGdlPStfW2MrOD4+M10pKy44KmIsdz1iZSt3LGI9Z2UrYixfWyhEPVIpPj4zXT1i''@;'; + put 'put ''ZStwZSxfWyhrPUQrOHwwKT4+M109Z2UrSyxfWyhmPUQrMTZ8MCk+PjNdPWJlLXBlLF9bKE09RCsyNHwwKT4+M109Z2UtSyxfW0QrMzI+PjNdPXAtcGUsX1tEKzQwPj4zXT1tLUssX1tEKzQ4Pj4zXT1wK3BlLF9bRCs1Nj4+M109bStLLDY0JkE/KGFbRD4+Ml09YVtjPj4yXSxhW0QrND4+Ml09''@;'; + put 'put ''YVtjKzQ+PjJdLGFbRCs4Pj4yXT1hW2MrOD4+Ml0sYVtEKzEyPj4yXT1hW2MrMTI+PjJdLGY9MyxHPTUpOjEyOCZBfDAmJihhW2Y+PjJdPWFbYz4+Ml0sYVtmKzQ+PjJdPWFbYys0Pj4yXSxhW2YrOD4+Ml09YVtjKzg+PjJdLGFbZisxMj4+Ml09YVtjKzEyPj4yXSxmPTIsRz01KSw1PT0oMHxH''@;'; + put 'put ''KSYmKF9bRCsoZjw8NCk+PjNdPXAsX1tEKyhmPDw0KSs4Pj4zXT1tKSxrYShsLEQsNCxBPj4+NCYxXjEpLF9bRD4+M109cCxfW2s+PjNdPW0sX1tEKzE2Pj4zXT13LF9bTT4+M109YixXbyhsLEQsMiksbGU9Un0sZnVuY3Rpb24gTnJlKGwsYyxmLHAsbSxBKXt2YXIgdyxiLGssTSxELFIsRyxL''@;'; + put 'put ''O2x8PTAscD0rcCxtPSttLEF8PTAsYj1sZSxsZT1sZSs4MHwwLGs9LS4zMzMzMzMzMzMzMzMzMzMzKihEPStfWzgrKGZ8PTApPj4zXSksbT0uMzMzMzMzMzMzMzMzMzMzMyooRz0rX1tmPj4zXSksTT0oSz0rX1soY3w9MCk+PjNdKSsuNSpHLHA9KFI9K19bYys4Pj4zXSkrLjUqRCxmPSh3PWIp''@;'; + put 'put ''KzY0fDAsX1t3KzY0Pj4zXT1LK0csX1t3KzcyPj4zXT1SK0QsYVt3Pj4yXT1hW2Y+PjJdLGFbdys0Pj4yXT1hW2YrND4+Ml0sYVt3Kzg+PjJdPWFbZis4Pj4yXSxhW3crMTI+PjJdPWFbZisxMj4+Ml0sX1t3KzE2Pj4zXT1NK2ssX1t3KzI0Pj4zXT1wK20sYVsoZj13KzMyfDApPj4yXT1hW2M+''@;'; + put 'put ''PjJdLGFbZis0Pj4yXT1hW2MrND4+Ml0sYVtmKzg+PjJdPWFbYys4Pj4yXSxhW2YrMTI+PjJdPWFbYysxMj4+Ml0sX1t3KzQ4Pj4zXT1NLWssX1t3KzU2Pj4zXT1wLW07ZG97aWYoISg2NCZBKSl7aWYoZj1BPj4+NCYxXjEsMTI4JkEpe2thKGwsdywzLGYpO2JyZWFrfWthKGwsdyw0LGYpO2Jy''@;'; + put 'put ''ZWFrfWthKGwsZiwzLEE+Pj40JjFeMSl9d2hpbGUoMCk7bGU9Yn0sZnVuY3Rpb24gVnJlKGwsYyxmLHAsbSxBKXtsfD0wLGN8PTAscD0rcCxtPSttLEF8PTA7dmFyIHcsYixrLEQsTT0wO3c9bGUsbGU9bGUrMzJ8MCxiPXcscD0uNSorRDAoKygobT0rX1s4KyhmfD0wKT4+M10pKm0rKE09K19b''@;'; + put 'put ''Zj4+M10pKk0pKSxfW2I+PjNdPShEPStfW2M+PjNdKSsoTSo9LjUpLXAsX1tiKzg+PjNdPShrPStfW2MrOD4+M10pLXArKG0qPS41KSxfW2IrMTY+PjNdPUQrcCtNLF9bYisyND4+M109aytwK20sJHUobCxiLDIsQT4+PjQmMV4xKSxsZT13fSxmdW5jdGlvbiBqcmUobCxjLGYscCxtLEEpe2x8''@;'; + put 'put ''PTAscD0rcCxBfD0wO3ZhciBrLEcsSyxwZSxnZSxiZSx3PTAsYj0wLE09MCxEPTAsUj0wO2JlPWxlLGxlPWxlKzExMnwwLEs9YmUrNDh8MCxnZT1iZSxHPStfWyhjfD0wKT4+M10sdz0rX1tjKzg+PjNdLHA9KE09K19bOCsoZnw9MCk+PjNdKSooRD0obT0rbSk+ND8uMTI1Km06LjUpLG09KFI9''@;'; + put 'put ''K19bZj4+M10pKkQsYVsocGU9YmUrMTZ8MCk+PjJdPWFbYz4+Ml0sYVtwZSs0Pj4yXT1hW2MrND4+Ml0sYVtwZSs4Pj4yXT1hW2MrOD4+Ml0sYVtwZSsxMj4+Ml09YVtjKzEyPj4yXSxfW3BlKzE2Pj4zXT1SK0csX1twZSsyND4+M109TSt3LF9bSz4+M109RCooUi1NKStHLF9bSys4Pj4zXT1r''@;'; + put 'put ''PShiPUQqKE0rUikpK3csX1tLKzQ4Pj4zXT1iK0csX1tLKzU2Pj4zXT13PUQqKE0tUikrdyxNPShSPS0uOTUqcCkrbStHLEQ9MS4zMzMzMzMzMzMzMzMzMzMzKm0sMzImQT8oYj0yLjMzMzMzMzMzMzMzMzMzMyptLHcrPXAqPTEuMzMzMzMzMzMzMzMzMzMzMyxtPWsrcCxwPU0rRCk6KGI9LS4z''@;'; + put 'put ''MzMzMzMzMzMzMzMzMzMyNiptLHctPXAqPTEuMzMzMzMzMzMzMzMzMzMzMyxtPWstcCxwPU0tRCksX1tLKzE2Pj4zXT1wLF9bSysyND4+M109bSxfW0srMzI+PjNdPWItUitHLF9bSys0MD4+M109dyxXbyhsLHBlLDIpLDY0JkE/d3UoZ2UsSywzLC41LDAsSyk6MTI4JkF8MCYmd3UoZ2UsSywz''@;'; + put 'put ''LC41LEssMCksUWYobCxLLDQsMCwwLDApLGxlPWJlfSxmdW5jdGlvbiBMQyhsLGMsZixwLG0sQSl7dmFyIHc7bHw9MCxwPStwLG09K20sQXw9MCxBPWxlLGxlPWxlKzMyfDAscD0rX1soZnw9MCk+PjNdKyArX1soY3w9MCk+PjNdLG09K19bZis4Pj4zXSsgK19bYys4Pj4zXSxhWyh3PUEpPj4y''@;'; + put 'put ''XT1hW2M+PjJdLGFbdys0Pj4yXT1hW2MrND4+Ml0sYVt3Kzg+PjJdPWFbYys4Pj4yXSxhW3crMTI+PjJdPWFbYysxMj4+Ml0sX1t3KzE2Pj4zXT1wLF9bdysyND4+M109bSxXbyhsLHcsMiksbGU9QX0sZmMsZmMsZmMsZmMsZmMsZmMsZmNdLFJjPVtmdW5jdGlvbiBhUyhsLGMsZixwKXt3Migx''@;'; + put 'put ''Nyl9LGZ1bmN0aW9uIFhkKGwsYyxmLHApe2N8PTAsZnw9MCxwfD0wLGpUKGx8PTApLE5DKGwpLHA/KDM9PSgxfHApP3hGKGwscCxjLGYpOlpUKGwpLFZDKGwsODAsYyxmKSk6VkMobCwxMTIsYyxmKX0sZnVuY3Rpb24gbWllKGwsYyxmLHApe2N8PTAsZnw9MCxwfD0wO3ZhciBtLEEsdyxiLGss''@;'; + put 'put ''TSxELEcsSyxSPTA7bT1sZSxsZT1sZSs5NnwwLEE9bSs4fDAsRD1+fitfWzE1MisoSz0wfGFbMTYrKGx8PTApPj4yXSk+PjNdLE09MHxhW0srMTY+PjJdLGs9MHxhW0srNTY+PjJdLGI9MHxhWzQ2NzEwXSx1NyhLLFI9bSs4MHwwLEc9bSksUj0wfGFbUj4+Ml0sdz0rX1tHPj4zXSxhW0E+PjJd''@;'; + put 'put ''PTIsYVtBKzQ+PjJdPTMsYVtBKzg+PjJdPVIsYVtBKzEyPj4yXT1ELGFbQSsxNj4+Ml09TSxhW0ErMjA+PjJdPWssYVtBKzI0Pj4yXT1iLGFbQSsyOD4+Ml09MCxhW0ErMzI+PjJdPTB8cD8yMDotMSxfW0ErNDA+PjNdPXcsYVtBKzQ4Pj4yXT0wLGFbQSs1Mj4+Ml09MCxhW0ErNTY+PjJdPTAs''@;'; + put 'put ''YVtBKzYwPj4yXT0wLGFbQSs2ND4+Ml09MCxhW0ErNjg+PjJdPWYrMSxPcihsLDY4MzMxLEEpLExGKGwsYyxmLDEpLGxlPW19LGZ1bmN0aW9uIENpZShsLGMsZixwKXtjfD0wLGZ8PTAscHw9MDt2YXIgbSxBLHcsYixrLE0sRCxHLEssUj0wO209bGUsbGU9bGUrOTZ8MCxBPW0rOHwwLEQ9fn4r''@;'; + put 'put ''X1sxNTIrKEs9MHxhWzE2KyhsfD0wKT4+Ml0pPj4zXSxNPTB8YVtLKzE2Pj4yXSxrPTB8YVtLKzU2Pj4yXSxiPTB8YVs0NjcxNl0sWFQoSyxSPW0rODB8MCxHPW0pLFI9MHxhW1I+PjJdLHc9K19bRz4+M10sYVtBPj4yXT0yLGFbQSs0Pj4yXT0zLGFbQSs4Pj4yXT1SLGFbQSsxMj4+Ml09RCxh''@;'; + put 'put ''W0ErMTY+PjJdPU0sYVtBKzIwPj4yXT1rLGFbQSsyND4+Ml09YixhW0ErMjg+PjJdPTAsYVtBKzMyPj4yXT0wfHA/MjA6LTEsX1tBKzQwPj4zXT13LGFbQSs0OD4+Ml09MCxhW0ErNTI+PjJdPTAsYVtBKzU2Pj4yXT0wLGFbQSs2MD4+Ml09MCxhW0ErNjQ+PjJdPTAsYVtBKzY4Pj4yXT1mKzEs''@;'; + put 'put ''T3IobCw2ODMzMSxBKSxXVyhsLGMsZiwxKSxsZT1tfSxmdW5jdGlvbiB4aWUobCxjLGYscCl7dmFyIG07bHw9MCxjfD0wLHB8PTAsYz1sZSxsZT1sZSsxNnwwLGFbKG09Yyk+PjJdPWZ8PTAsYVttKzQ+PjJdPXAsT3IobCw2OTU4MSxtKSxsZT1jfSxmdW5jdGlvbiBLVyhsLGMsZixwKXtjfD0w''@;'; + put 'put ''LGZ8PTA7dmFyIHcsYixtPTAsQT0wO2lmKGI9bGUsbGU9bGUrMTZ8MCx3PWIsQT0xNisobHw9MCl8MCwwfChwfD0wKSYmK19bODArKG09MHxhW0E+PjJdKT4+M10+LjUpe2ZvcihhcChsLG0rNTZ8MCksRW4obCw2ODg1MiksYVt3Pj4yXT1hW2M+PjJdLGFbdys0Pj4yXT1hW2MrND4+Ml0sYVt3''@;'; + put 'put ''Kzg+PjJdPWFbYys4Pj4yXSxhW3crMTI+PjJdPWFbYysxMj4+Ml0sbmgobCx3KSxFbihsLDY4ODYxKSxwPTE7ISgoMHxwKT49KDB8ZikpOylhW3c+PjJdPWFbKG09YysocDw8NCl8MCk+PjJdLGFbdys0Pj4yXT1hW20rND4+Ml0sYVt3Kzg+PjJdPWFbbSs4Pj4yXSxhW3crMTI+PjJdPWFbbSsx''@;'; + put 'put ''Mj4+Ml0sbmgobCx3KSxFbihsLDY4ODcwKSxwPXArMXwwO0VuKGwsNjg4OTcpfWlmKCtfWzQwKygwfGFbQT4+Ml0pPj4zXT4uNSl7Zm9yKHpBKGwpLGFwKGwsMTYrKDB8YVtBPj4yXSl8MCksRW4obCw2ODg1MiksYVt3Pj4yXT1hW2M+PjJdLGFbdys0Pj4yXT1hW2MrND4+Ml0sYVt3Kzg+PjJd''@;'; + put 'put ''PWFbYys4Pj4yXSxhW3crMTI+PjJdPWFbYysxMj4+Ml0sbmgobCx3KSxFbihsLDY4ODYxKSxwPTE7ISgoMHxwKT49KDB8ZikpOylhW3c+PjJdPWFbKEE9YysocDw8NCl8MCk+PjJdLGFbdys0Pj4yXT1hW0ErND4+Ml0sYVt3Kzg+PjJdPWFbQSs4Pj4yXSxhW3crMTI+PjJdPWFbQSsxMj4+Ml0s''@;'; + put 'put ''bmgobCx3KSxFbihsLDY4ODcwKSxwPXArMXwwO0VuKGwsNjg5MTMpfWxlPWJ9LGZ1bmN0aW9uIGQ3ZShsLGMsZixwKXtjNyhsfD0wLGN8PTAsMCwxMDE1MTAsMHxhWzgrKDB8YVtsKzE2Pj4yXSk+PjJdKSxFbihsLDc2Mzg4KX0sZnVuY3Rpb24gdzdlKGwsYyxmLHApe2x8PTAsY3w9MCxmfD0w''@;'; + put 'put ''O3ZhciBtPTA7c3dpdGNoKDB8KHB8PTApKXtjYXNlIDI6bT0wfHRZKGwsYyxmKTticmVhaztjYXNlIDM6bT0wfG5ZKGwpO2JyZWFrO2RlZmF1bHQ6bT0wfWZvcihFbihsLDczOTk5KSxIRihsLHAsbSksRW4obCw3MzQxNCksbT0wOyEoKDB8bSk+PSgwfGYpKTspWnMobCwrX1tjKyhtPDw0KT4+''@;'; + put 'put ''M10pLEVuKGwsMTAwOTk5KSxacyhsLC0rX1tjKyhtPDw0KSs4Pj4zXSksRW4obCwxMDI2MDQpLG09bSsxfDA7WnMobCwrX1tjPj4zXSksRW4obCwxMDA5OTkpLFpzKGwsLStfW2MrOD4+M10pLEVuKGwsNzM0MjQpfSxmdW5jdGlvbiB4N2UobCxjLGYscCl7dmFyIG0sQSx3LGI7aWYoY3w9MCxm''@;'; + put 'put ''fD0wLHB8PTAsYj1sZSxsZT1sZSs0OHwwLG09YiwwfGFbKHc9MTQ0KyhBPTB8YVsxNisobHw9MCk+PjJdKXwwKT4+Ml0peyRUKGwpLEVuKGwsNzUyOTIpLEczKGwsYyxmKSxFbihsLDc1MTU1KTtkb3tpZighcCl7aWYoMHxhWzQ2NzIzXSl7RW4obCwxMzcxOTgpO2JyZWFrfUVuKGwsOTczMDkp''@;'; + put 'put ''O2JyZWFrfWY9QSs1NnwwLHA9KGM9bSkrNDB8MDtkb3thW2M+PjJdPWFbZj4+Ml0sYz1jKzR8MCxmPWYrNHwwfXdoaWxlKCgwfGMpPCgwfHApKTtHQShsLG0pfXdoaWxlKDApOzE9PSgwfGFbNDY3MjNdKSYmKGFbNDY3MjNdPTApLEVuKGwsNzUyNjYpLFpzKGwsK19bQSsxNTI+PjNdKSxFbihs''@;'; + put 'put ''LDc1MzA5KSxmPUErMTZ8MCxwPShjPW0pKzQwfDA7ZG97YVtjPj4yXT1hW2Y+PjJdLGM9Yys0fDAsZj1mKzR8MH13aGlsZSgoMHxjKTwoMHxwKSk7R0EobCxtKSwxPT0oMHwoYz0wfGFbdz4+Ml0pKSYmKEVuKGwsNzUxNjMpLGM9MHxhW3c+PjJdKSwyPT0oMHxjKSYmRW4obCw3NTE3MikscVQo''@;'; + put 'put ''bCksRW4obCwxNTM1OTkpfWxlPWJ9LGZ1bmN0aW9uIHppZShsLGMsZixwKXtjfD0wLGZ8PTAscHw9MDt2YXIgYixrLE0sRCxtPTAsQT0wLHc9MDtmb3IoTT1sZSxsZT1sZSs0OHwwLGs9TSsyNHwwLGI9TSs4fDAsQT1NLEVuKGx8PTAsNzU1MTEpLEQ9MHxhWzQ2NzI3XSxhW0E+PjJdPWFbNDY3''@;'; + put 'put ''MjZdLGFbQSs0Pj4yXT1ELE9yKGwsNzU3NjQsQSksaVkobCxwKSxFbihsLDc1Nzg4KSxlSShsKSxFbihsLDc1NzkxKSxBPWYrLTF8MCxwPTA7ISgoMHxwKT49KDB8ZikpOyl3PStfW2MrKHA8PDQpPj4zXSxtPSsoKDB8YVs0NjcyN10pPj4+MCktK19bYysocDw8NCkrOD4+M10scD8oX1trPj4z''@;'; + put 'put ''XT13LF9bays4Pj4zXT1tLE9yKGwsNzU4ODQsaykpOihFbihsLDc1ODE4KSxfW2I+PjNdPXcsX1tiKzg+PjNdPW0sT3IobCw3NTg4NCxiKSxFbihsLDc1ODk1KSksKDB8cCk9PSgwfEEpJiZFbihsLDc1ODk4KSxwPXArMXwwO0VuKGwsNzU2MjcpLGxlPU19LGZ1bmN0aW9uIFo3ZShsLGMsZixw''@;'; + put 'put ''KXt2YXIgbSxBO2x8PTAsZnw9MCxwfD0wLG09bGUsbGU9bGUrMTZ8MCxhWyhBPW0pPj4yXT1jfD0wLGFbQSs0Pj4yXT1mLGFbQSs4Pj4yXT1wLE9yKGwsNzkzNTcsQSksam5bNDY3MjhdPSsoMHxBcihmLC0xMCkpLGxlPW19LGZ1bmN0aW9uIEo3ZShsLGMsZixwKXtjfD0wLGZ8PTAscHw9MDt2''@;'; + put 'put ''YXIgRCxSLEcsSyxwZSxnZSxiZSxPZSxMZSxIZSxWZSxxZSxudCxXZSxTdCxrdCxzdCxFdCxjdCxidCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxSZT0wLG90PTAsWnQ9MCxhbj0wLFNuPTAsSG49MDtidD1sZSxsZT1sZSszMzZ8MCxudD1idCsyOTZ8MCxjdD1idCsyODh8MCxadD1idCsyNzJ8''@;'; + put 'put ''MCxFdD1idCsyNjR8MCxzdD1idCsyNDB8MCxvdD1idCsyMzJ8MCxxZT1idCsyMDh8MCxWZT1idCsxODR8MCxMZT1idCsxNjB8MCxPZT1idCsxNTJ8MCxiZT1idCsxMzZ8MCxnZT1idCsxMjh8MCxwZT1idCs5NnwwLEs9YnQrODh8MCxHPWJ0KzU2fDAsbT1idCs0OHwwLGs9YnQrMjR8MCxiPWJ0''@;'; + put 'put ''LEVuKGx8PTAsNzg3ODIpLGpuWzQ2NzI5XT0ram5bNDY3MjhdLTIsYW49K19bKFI9bCs0OTZ8MCk+PjNdLF9bYj4+M109K19bKEQ9bCs0ODh8MCk+PjNdLF9bYis4Pj4zXT1hbixfW2IrMTY+PjNdPTEsYj0wfEVhKGwsNzgyNzcsYiksYW49KygwfGFbKEhlPWwrMzYwfDApPj4yXSksX1trPj4z''@;'; + put 'put ''XT0wLF9bays4Pj4zXT0wLF9baysxNj4+M109YW4saz0wfEVhKGwsNzgzMDksayksYW49K2puWzQ2NzI5XS0yLF9bbnQ+PjNdPTAsX1tudCs4Pj4zXT0wLF9bbnQrMTY+PjNdPWFuLE09MHxFYShsLDc4MzQxLG50KSx3PTE2KygwfGFbKFdlPWwrMTZ8MCk+PjJdKXwwLFJlPShBPW50KSs0MHww''@;'; + put 'put ''O2Rve2FbQT4+Ml09YVt3Pj4yXSxBPUErNHwwLHc9dys0fDB9d2hpbGUoKDB8QSk8KDB8UmUpKTtmb3Iodz0wfFdBKGwsbnQsMCksYVttPj4yXT03ODQwNCxhW20rND4+Ml09ZisxLFN0PWwrNTA0fDAsa3Q9bCs1MTJ8MCxBPTAsbT0wfEVhKGwsNzgzNzMsbSk7ISgoMHxBKT49KDB8ZikpOylI''@;'; + put 'put ''bj0rX1trdD4+M10rICtfW2MrKEE8PDQpKzg+PjNdLGFuPStfWzE1MisoMHxhW1dlPj4yXSk+PjNdLF9bRz4+M109K19bU3Q+PjNdKyArX1tjKyhBPDw0KT4+M10sX1tHKzg+PjNdPUhuLF9bRysxNj4+M109MCxfW0crMjQ+PjNdPWFuLFNuPTB8RWEobCw3ODQxOCxHKSxhW0s+PjJdPW0sYVtL''@;'; + put 'put ''KzQ+PjJdPVNuLFJlPTB8RWEobCw3ODQ0NyxLKSxGdChTbiksRnQobSksQT1BKzF8MCxtPVJlO2lmKGFuPStfW2t0Pj4zXSsgK19bYys4Pj4zXSxIbj0rX1sxNTIrKDB8YVtXZT4+Ml0pPj4zXSxfW3BlPj4zXT0rX1tTdD4+M10rICtfW2M+PjNdLF9bcGUrOD4+M109YW4sX1twZSsxNj4+M109''@;'; + put 'put ''MCxfW3BlKzI0Pj4zXT1IbixSZT0wfEVhKGwsNzg0MTgscGUpLGFbZ2U+PjJdPW0sYVtnZSs0Pj4yXT1SZSxTbj0wfEVhKGwsNzg0NDcsZ2UpLEZ0KFJlKSxGdChtKSxhW2JlPj4yXT1iLGFbYmUrND4+Ml09ayxhW2JlKzg+PjJdPU0sYVtiZSsxMj4+Ml09dyxSZT0wfEVhKGwsNzg3OTcsYmUp''@;'; + put 'put ''LGFbT2U+PjJdPVNuLGFbT2UrND4+Ml09UmUsU249MHxFYShsLDc4NTAyLE9lKSxGdChSZSksRW4obCxTbiksRnQoYiksRnQoayksRnQoTSksRnQodyksRnQoU24pLDB8cCl7SG49K19bUj4+M10sX1tMZT4+M109K19bRD4+M10sX1tMZSs4Pj4zXT1IbixfW0xlKzE2Pj4zXT0xLE09MHxFYShs''@;'; + put 'put ''LDc4Mjc3LExlKSxIbj0rKDB8YVtIZT4+Ml0pLF9bVmU+PjNdPTAsX1tWZSs4Pj4zXT0wLF9bVmUrMTY+PjNdPUhuLGs9MHxFYShsLDc4MzA5LFZlKSxIbj0ram5bNDY3MjldLTIsX1txZT4+M109MCxfW3FlKzg+PjNdPTAsX1txZSsxNj4+M109SG4sYj0wfEVhKGwsNzgzNDEscWUpLHc9NTYr''@;'; + put 'put ''KDB8YVtXZT4+Ml0pfDAsUmU9KEE9bnQpKzQwfDA7ZG97YVtBPj4yXT1hW3c+PjJdLEE9QSs0fDAsdz13KzR8MH13aGlsZSgoMHxBKTwoMHxSZSkpO2Zvcih3PTB8V0EobCxudCwuMjUpLGFbb3Q+PjJdPWYsQT0wLG09MHxFYShsLDc4ODQyLG90KTshKCgwfEEpPj0oMHxmKSk7KUhuPStfW2t0''@;'; + put 'put ''Pj4zXSsgK19bYysoQTw8NCkrOD4+M10sX1tzdD4+M109K19bU3Q+PjNdKyArX1tjKyhBPDw0KT4+M10sX1tzdCs4Pj4zXT1IbixfW3N0KzE2Pj4zXT0wLG90PTB8RWEobCw3ODg1NyxzdCksYVtFdD4+Ml09bSxhW0V0KzQ+PjJdPW90LFNuPTB8RWEobCw3ODg3OSxFdCksRnQob3QpLEZ0KG0p''@;'; + put 'put ''LEE9QSsxfDAsbT1TbjthW1p0Pj4yXT1NLGFbWnQrND4+Ml09ayxhW1p0Kzg+PjJdPWIsYVtadCsxMj4+Ml09dyxadD0wfEVhKGwsNzg4ODksWnQpLGFbY3Q+PjJdPW0sYVtjdCs0Pj4yXT1adCxTbj0wfEVhKGwsNzg1MDIsY3QpLEZ0KFp0KSxFbihsLFNuKSxGdChNKSxGdChrKSxGdChiKSxG''@;'; + put 'put ''dCh3KSxGdChTbil9bGU9YnR9LGZ1bmN0aW9uIFVpZShsLGMsZixwKXtjfD0wLGZ8PTAscHw9MCxwPWxlLGxlPWxlKzE2fDAsTkYoMHxhWzE2KyhsfD0wKT4+Ml0scCs4fDAscCksdVkobCxjLGYsMSksbGU9cH0sZnVuY3Rpb24gJGllKGwsYyxmLHApe2N8PTAscHw9MDt2YXIgQSx3LGIsayxN''@;'; + put 'put ''LEQsUixtPTA7Uj1sZSxsZT1sZSs5NnwwLEQ9Uis1NnwwLE09UiszMnwwLGs9UixiPStfWzE2KyhmfD0wKT4+M10tKHc9K19bZj4+M10pLEE9KG09K19bZisyND4+M10pLStfW2YrOD4+M10sKGx8PTApfHxQcigxMTEyODIsODQ0MDcsNTMsODQ4NjApLGN8fFByKDExMTMxMiw4NDQwNyw1NCw4''@;'; + put 'put ''NDg2MCksMHxhWyhwPWMrOHwwKT4+Ml18fFByKDExMTMxNSw4NDQwNyw1NSw4NDg2MCksRW4obCw4NDg3OSksRW4obCwwfGFbcD4+Ml0pLG09LW0sMHxhWyhwPWwrMzYwfDApPj4yXT8oX1trPj4zXT1BLF9bays4Pj4zXT1iLF9baysxNj4+M109dyxfW2srMjQ+PjNdPW0sT3IobCw4NDg5OSxr''@;'; + put 'put ''KSxhW00+PjJdPWFbcD4+Ml0sX1tNKzg+PjNdPXcsX1tNKzE2Pj4zXT1tLE9yKGwsODQ5NzgsTSkpOihfW0Q+PjNdPWIsX1tEKzg+PjNdPUEsX1tEKzE2Pj4zXT13LF9bRCsyND4+M109bSxPcihsLDg1MDA4LEQpKSxFbihsLDg1MDg3KSxsZT1SfSxmdW5jdGlvbiBZaChsLGMsZixwKXtjfD0w''@;'; + put 'put ''LGZ8PTAscHw9MDt2YXIgbSxBLHcsYj0wLGs9MCxNPTA7aWYodz1sZSxsZT1sZSsxMjh8MCxBPXcrODB8MCxtPXcsKGx8PTApfHxQcigxMTEyODIsODQ0MDcsOTcsODQ3NTEpLGN8fFByKDExMTMxMiw4NDQwNyw5OCw4NDc1MSkscD0wfGFbYys4Pj4yXSlyZXR1cm4gYj1+figoTT0rX1tmPj4z''@;'; + put 'put ''XSkrKE0+PTA/LjU6LS41KSksYz1+figoTT0rX1tmKzg+PjNdKSsoTT49MD8uNTotLjUpKSxrPX5+KChNPStfW2YrMTY+PjNdKSsoTT49MD8uNTotLjUpKSxmPX5+KChNPStfW2YrMjQ+PjNdKSsoTT49MD8uNTotLjUpKSxhW20+PjJdPTIsYVttKzQ+PjJdPTUsYVttKzg+PjJdPTAsYVttKzEy''@;'; + put 'put ''Pj4yXT0wLGFbbSsxNj4+Ml09MCxhW20rMjA+PjJdPS0xLGFbbSsyND4+Ml09MSxhW20rMjg+PjJdPS0xLGFbbSszMj4+Ml09MCxfW20rNDA+PjNdPTAsYVttKzQ4Pj4yXT0wLGFbbSs1Mj4+Ml09MCxhW20rNTY+PjJdPTAsYVttKzYwPj4yXT0wLGFbbSs2ND4+Ml09MCxhW20rNjg+PjJdPTUs''@;'; + put 'put ''YVttKzcyPj4yXT0wLGFbbSs3Nj4+Ml09cCxPcihsLDg0NzcwLG0pLGFbQT4+Ml09YixhW0ErND4+Ml09YyxhW0ErOD4+Ml09YixhW0ErMTI+PjJdPWYsYVtBKzE2Pj4yXT1rLGFbQSsyMD4+Ml09ZixhW0ErMjQ+PjJdPWssYVtBKzI4Pj4yXT1jLGFbQSszMj4+Ml09YixhW0ErMzY+PjJdPWMs''@;'; + put 'put ''T3IobCw4NDgyOCxBKSx2b2lkKGxlPXcpO1ByKDExMTMxNSw4NDQwNyw5OSw4NDc1MSl9LGZ1bmN0aW9uIFFBKGwsYyxmLHApe3ZhciBtLEE7aWYoY3w9MCxmfD0wLHB8PTAsQT1sZSxsZT1sZSs4MHwwLG09QSs0OHwwLChsfD0wKXx8UHIoMTExMjgyLDg0NDA3LDEyMSw4NDU2MiksKHA9MHxh''@;'; + put 'put ''W2wrMTY+PjJdKXx8UHIoOTk5MDIsODQ0MDcsMTIzLDg0NTYyKSxjfHxQcigxMTEzMTIsODQ0MDcsMTI0LDg0NTYyKSwwfGFbKGY9Yys4fDApPj4yXXx8UHIoMTExMzE1LDg0NDA3LDEyNSw4NDU2MiksMHxhW3ArOD4+Ml0pcmV0dXJuIE9yKGwsODQ1ODIsQSksT3IobCw4NDU5MSxBKzh8MCks''@;'; + put 'put ''T3IobCw4NDYxOCxBKzE2fDApLE9yKGwsODQ2NDMsQSsyNHwwKSxPcihsLDg0NjcyLEErMzJ8MCksT3IobCw4NDcwMCxBKzQwfDApLGFbbT4+Ml09YVtmPj4yXSxPcihsLDg0NzA3LG0pLE9yKGwsODQ3NDYsQSs1NnwwKSxPcihsLDExMTAwOCxBKzY0fDApLHZvaWQobGU9QSk7UHIoMTM4ODc5''@;'; + put 'put ''LDg0NDA3LDEyOCw4NDU2Mil9LGZ1bmN0aW9uIEtpZShsLGMsZixwKXtjfD0wLGZ8PTAscHw9MDt2YXIgdyxiLGssTSxELG09MCxBPTAsUj0wO0Q9bGUsbGU9bGUrMTEyfDAsTT1EKzI0fDAsaz1EKzE2fDAsYj1ELEE9RCsyOHwwLChsfD0wKXx8UHIoMTExMjgyLDg0NDA3LDE1Myw4NDQ4OCks''@;'; + put 'put ''Y3x8UHIoMTExMzEyLDg0NDA3LDE1NCw4NDQ4OCksMHxhW2MrOD4+Ml18fFByKDExMTMxNSw4NDQwNywxNTUsODQ0ODgpLDB8YVsodz1jKzUyfDApPj4yXT8xMDA9PSgwfChtPTB8YVsocD1jKzYwfDApPj4yXSkpP209MTg6KENvWzEyNyZtXShjKSxhW3c+PjJdPTAsYVtwPj4yXT0wLGFbYys1''@;'; + put 'put ''Nj4+Ml09MCxtPTEwKTptPTEwO2Rve2lmKDEwPT0oMHxtKSl7aWYoISgoMHxncmUoYykpPDwyND4+MjQpKWJyZWFrO3A9MHxZJCgwfGFbYysyMD4+Ml0pLDY9PSgtMiZhW2MrMjQ+PjJdfDApPyhUJChwLEEpLGFbYys1Nj4+Ml09QT0wfGFbQSszNj4+Ml0scD0wfE51ZSgwLEEsMSwxLHAsMCks''@;'; + put 'put ''YVt3Pj4yXT1wLGZlW2MrMTY+PjBdPTEpOnA9MHxhW3c+PjJdLDB8cCYmKGFbYys2MD4+Ml09MTAwKSxZRyhjKSwwfGFbdz4+Ml0mJihtPTE4KX19d2hpbGUoMCk7MTg9PSgwfG0pJiYoUj0rX1tmKzg+PjNdLSsoMHxhW2MrMzY+PjJdKSxfW2I+PjNdPStfW2Y+PjNdLSsoMHxhW2MrMzI+PjJd''@;'; + put 'put ''KSxfW2IrOD4+M109UixPcihsLDg0NTA2LGIpLDB8ZmVbYysxNj4+MF0/TlEobCxjKTooYVtrPj4yXT1hW2MrMTI+PjJdLE9yKGwsODQ1MzcsaykpLE9yKGwsODQ1NTIsTSkpLGxlPUR9LGZ1bmN0aW9uIFVBKGwsYyxmLHApe2N8PTAsZnw9MCxwfD0wO3ZhciB3LGIsayxELFIsRyxLLGdlLGJl''@;'; + put 'put ''LG09MCxBPTAsTT0wLHBlPTAsT2U9MDtpZihiZT1sZSxsZT1sZSsxNjB8MCxnZT1iZSsxNTJ8MCxwZT1iZSsxMzZ8MCxLPWJlKzEyMHwwLGs9YmUrMTEyfDAsRD1iZSsxMDR8MCxNPWJlKzg4fDAsYj1iZSs3MnwwLHc9YmUrNjR8MCxSPWJlLChsfD0wKXx8UHIoMTExMjgyLDg0NDA3LDIxMiw4''@;'; + put 'put ''NDQyNiksY3x8UHIoMTExMzEyLDg0NDA3LDIxMyw4NDQyNiksMHxhWyhHPWMrOHwwKT4+Ml18fFByKDExMTMxNSw4NDQwNywyMTQsODQ0MjYpLDB8YVtjKzUyPj4yXSl7aWYoYVtSPj4yXT1hW2Y+PjJdLGFbUis0Pj4yXT1hW2YrND4+Ml0sYVtSKzg+PjJdPWFbZis4Pj4yXSxhW1IrMTI+PjJd''@;'; + put 'put ''PWFbZisxMj4+Ml0sYVsoYz1SKzMyfDApPj4yXT1hWyhmPWYrMTZ8MCk+PjJdLGFbYys0Pj4yXT1hW2YrND4+Ml0sYVtjKzg+PjJdPWFbZis4Pj4yXSxhW2MrMTI+PjJdPWFbZisxMj4+Ml0sX1tSKzE2Pj4zXT1tPStfW1I+PjNdLF9bUisyND4+M109K19bUis0MD4+M10sX1tSKzQ4Pj4zXT0r''@;'; + put 'put ''X1tjPj4zXSxfW1IrNTY+PjNdPUE9K19bUis4Pj4zXSxwPDwyND4+MjQpe2ZvcihPcihsLDg0NDQ3LHcpLGM9MDs0IT0oMHxjKTspT2U9K19bUisoYzw8NCkrOD4+M10sX1tiPj4zXT0rX1tSKyhjPDw0KT4+M10sX1tiKzg+PjNdPU9lLE9yKGwsODQ0NTAsYiksYz1jKzF8MDtfW00+PjNdPW0s''@;'; + put 'put ''X1tNKzg+PjNdPUEsT3IobCw4NDQ1MCxNKSxNPTB8YVtHPj4yXSxhW0Q+PjJdPTQsYVtEKzQ+PjJdPU0sT3IobCw4NDQ1NyxEKX1mb3IoT3IobCw4NDQ0NyxrKSxjPTA7NCE9KDB8Yyk7KU9lPStfW1IrKGM8PDQpKzg+PjNdLF9bSz4+M109K19bUisoYzw8NCk+PjNdLF9bSys4Pj4zXT1PZSxP''@;'; + put 'put ''cihsLDg0NDUwLEspLGM9YysxfDA7X1twZT4+M109bSxfW3BlKzg+PjNdPUEsT3IobCw4NDQ1MCxwZSkscGU9MHxhW0c+PjJdLGFbZ2U+PjJdPTQsYVtnZSs0Pj4yXT1wZSxPcihsLDg0NDcyLGdlKX1sZT1iZX0sZnVuY3Rpb24gY1kobCxjLGYscCl7fSxmdW5jdGlvbiBvaWUobCxjLGYscCl7''@;'; + put 'put ''dmFyIG0sQSx3O2N8PTAsZnw9MCxwfD0wLHA9bGUsbGU9bGUrMTA0MHwwLHc9cCxtPXArMTZ8MCx1byhBPTB8YVsxMTQxNisoYVsxMisoMHxhWzE2KyhsfD0wKT4+Ml0pPj4yXTw8Mik+PjJdLDY3MDEzKSxhW3c+PjJdPWFbZj4+Ml0sYVt3KzQ+PjJdPWFbZis0Pj4yXSxhW3crOD4+Ml09YVtm''@;'; + put 'put ''Kzg+PjJdLGFbdysxMj4+Ml09YVtmKzEyPj4yXSxCNShBLHcpLFdoKG0sK19bZisxNj4+M10tK19bZj4+M10pLHVvKEEsbSksV2gobSwrX1tmKzI0Pj4zXS0rX1tmKzg+PjNdKSx1byhBLG0pLFA1KGwsMTk1MDU5LDB8YVtjKzg+PjJdKSxsZT1wfSxmdW5jdGlvbiBYaWUobCxjLGYscCl7cHw9''@;'; + put 'put ''MDt2YXIgbSx3LGIsayxBPTA7cD1sZSxsZT1sZSs0OHwwLGs9K19bMTYrKGZ8PTApPj4zXS0odz0rX1tmPj4zXSksYj0oQT0rX1tmKzI0Pj4zXSktK19bZis4Pj4zXSxBPSsofn4oK19bMjMyKyhsfD0wKT4+M10tK19bbCsyMTY+PjNdKT4+PjApLUEsYVsobT1wKT4+Ml09YVs4KyhjfD0wKT4+''@;'; + put 'put ''Ml0sX1ttKzg+PjNdPWssX1ttKzE2Pj4zXT1iLF9bbSsyND4+M109dyxfW20rMzI+PjNdPUEsT3IobCw4NDMxMCxtKSxFbihsLDg0NDAyKSxsZT1wfSxmdW5jdGlvbiBpSShsLGMsZixwKXt2YXIgbSxBLHcsYixrO2x8PTAsZnw9MCxwfD0wLHA9bGUsbGU9bGUrMzJ8MCxtPXArOHwwLGFbKGI9''@;'; + put 'put ''cCk+PjJdPWs9MHxhWyhjPTgrKGN8PTApfDApPj4yXSxhW2IrND4+Ml09ayxPcihsLDg0MjIzLGIpLHc9LjUqKCtfW2Y+PjNdKyArX1tmKzE2Pj4zXSksQT0uNSooK19bZis4Pj4zXSsgK19bZisyND4+M10pLGFbbT4+Ml09YVtjPj4yXSxfW20rOD4+M109dyxfW20rMTY+PjNdPUEsT3IobCw4''@;'; + put 'put ''NDI2NSxtKSxsZT1wfSxmdW5jdGlvbiBuNyhsLGMsZixwKXswPT0oMSYoZnw9MCl8MCkmITAmJmUwKGx8PTAsZil9LGZ1bmN0aW9uIEdhZShsLGMsZixwKXtsfD0wLGN8PTAscHw9MDt2YXIgayxELFIsbT0wLEE9MCx3PTAsYj0wLE09MDtpZihSPWxlLGxlPWxlKzgwfDAsaz1SKzQwfDAsbT1S''@;'; + put 'put ''LEQ9Uis2NHwwLEE9Uis1NnwwLDB8ZmVbKGZ8PTApPj4wXSl7dz0wPT0oMHxwKT8xMDYzNTY6cCxhW0Q+PjJdPTE1LHA9MHxhWyhiPWMrMTZ8MCk+PjJdO2Rve2lmKDB8ZmVbODIrKDB8YVtwKzEwND4+Ml0pPj4wXSl7aWYoIShwPTB8ckcoYyxmLEQpKSl7cD0wfGFbYj4+Ml0sTT04O2JyZWFr''@;'; + put 'put ''fTB8bWsoYyxwLG0sdywwfGFbRD4+Ml0sMCkmJihhW2s+PjJdPTB8dGkoYyksYVtrKzQ+PjJdPWYsYVtrKzg+PjJdPXcsJHIoMCwxMDYzNTgsaykpfWVsc2UgTT04fXdoaWxlKDApOzg9PSgwfE0pJiYoMTY2ND09KDB8YVs4KygwfGFbcCs4Pj4yXSk+PjJdKT9BPTA6KGFbQT4+Ml09YyxhW0Er''@;'; + put 'put ''ND4+Ml09MCksMHxtayhjLDAsbSxmLDB8YVtEPj4yXSxBKSYmZUooYyxmKSksYVttKzM2Pj4yXT0wLEE9bCs0MHwwO2Rve2FbbD4+Ml09YVttPj4yXSxsPWwrNHwwLG09bSs0fDB9d2hpbGUoKDB8bCk8KDB8QSkpfWVsc2V7bT00MjA4LEE9bCs0MHwwO2Rve2FbbD4+Ml09YVttPj4yXSxsPWwr''@;'; + put 'put ''NHwwLG09bSs0fDB9d2hpbGUoKDB8bCk8KDB8QSkpfWxlPVJ9LGZ1bmN0aW9uIHVOKGwsYyxmLHApe2x8PTAsY3w9MCxwfD0wO3ZhciBiLGssbT0wLEE9MCx3PTA7aWYoaz1sZSxsZT1sZSs2NHwwLGI9ays0MHwwLG09aywwfGZlWyhmfD0wKT4+MF0pe3A9MD09KDB8cCk/MTA2MzU2OnAsKHc9''@;'; + put 'put ''MHxpSihBPTB8YVsxMisoMHxhW2MrMTY+PjJdKT4+Ml0sZikpPzB8bWsoYyx3KzE2fDAsbSxwLDB8WHRbdys2NT4+MF0sMCkmJihhW2I+PjJdPTB8dGkoYyksYVtiKzQ+PjJdPWYsYVtiKzg+PjJdPXAsJHIoMCwxMDYzNTgsYikpOjB8bWsoYyxBKzE2fDAsbSxmLDE1LDApJiZlSihjLGYpLHA9''@;'; + put 'put ''bCs0MHwwO2Rve2FbbD4+Ml09YVttPj4yXSxsPWwrNHwwLG09bSs0fDB9d2hpbGUoKDB8bCk8KDB8cCkpfWVsc2V7bT00MjA4LHA9bCs0MHwwO2Rve2FbbD4+Ml09YVttPj4yXSxsPWwrNHwwLG09bSs0fDB9d2hpbGUoKDB8bCk8KDB8cCkpfWxlPWt9LGZqLGZ1bmN0aW9uIE4xZShsLGMsZixw''@;'; + put 'put ''KXtjfD0wLGZ8PTA7dmFyIHcsYixtPTAsQT0wO2Zvcih3PTcyKyhsfD0wKXwwLGI9NCsocHw9MCl8MDshKChmLWN8MCk8PTEpOyl7c3dpdGNoKG09MHxmZVtjKzE+PjBdLDB8KGw9KGw9MHxmZVtjPj4wXSk8PDI0Pj4yND8wfGYwKGwsbSk6MHxYdFt3KygyNTUmbSk+PjBdKSl7Y2FzZSA1OmRl''@;'; + put 'put ''ZmF1bHQ6Yz1jKzJ8MDticmVhaztjYXNlIDY6Yz1jKzN8MDticmVhaztjYXNlIDc6Yz1jKzR8MDticmVhaztjYXNlIDEwOmFbYj4+Ml09LTEsYVtwPj4yXT0xKygwfGFbcD4+Ml0pLGM9YysyfDA7YnJlYWs7Y2FzZSA5OmFbcD4+Ml09MSsoMHxhW3A+PjJdKSwoZi0oQT1jKzJ8MCl8MCk+MT8o''@;'; + put 'put ''bT0wfGZlW2MrMz4+MF0sYz0xMD09KDB8KGw9KGw9MHxmZVtBPj4wXSk8PDI0Pj4yND8wfGYwKGwsbSk6MHxYdFt3KygyNTUmbSk+PjBdKSk/Yys0fDA6QSk6Yz1BLGFbYj4+Ml09LTF9YVtiPj4yXT0xKygwfGFbYj4+Ml0pfX0sZnVuY3Rpb24gUTllKGwsYyxmLHApe2N8PTAsZnw9MDt2YXIg''@;'; + put 'put ''dyxiLG09MCxBPTA7Zm9yKHc9NzIrKGx8PTApfDAsYj00KyhwfD0wKXwwOyEoKGYtY3wwKTw9MSk7KXtzd2l0Y2gobT0wfGZlW2M+PjBdLDB8KGw9KGw9MHxmZVtjKzE+PjBdKTw8MjQ+PjI0PzB8ZjAobCxtKTowfFh0W3crKDI1NSZtKT4+MF0pKXtjYXNlIDU6ZGVmYXVsdDpjPWMrMnwwO2Jy''@;'; + put 'put ''ZWFrO2Nhc2UgNjpjPWMrM3wwO2JyZWFrO2Nhc2UgNzpjPWMrNHwwO2JyZWFrO2Nhc2UgMTA6YVtiPj4yXT0tMSxhW3A+PjJdPTErKDB8YVtwPj4yXSksYz1jKzJ8MDticmVhaztjYXNlIDk6YVtwPj4yXT0xKygwfGFbcD4+Ml0pLChmLShBPWMrMnwwKXwwKT4xPyhtPTB8ZmVbQT4+MF0sYz0x''@;'; + put 'put ''MD09KDB8KGw9KGw9MHxmZVtjKzM+PjBdKTw8MjQ+PjI0PzB8ZjAobCxtKTowfFh0W3crKDI1NSZtKT4+MF0pKT9jKzR8MDpBKTpjPUEsYVtiPj4yXT0tMX1hW2I+PjJdPTErKDB8YVtiPj4yXSl9fSx4MSxmdW5jdGlvbiBQcyhsLGMsZixwKXtsfD0wLGZ8PTAscHw9MDt2YXIgYixrLE0sRCxt''@;'; + put 'put ''PTAsQT0wLHc9MDtmb3IoRD1sZSxsZT1sZSszMnwwLGI9RCxoMihEKzE2fDAsY3w9MCksaz1jKzMyfDAsTT1jKzM2fDAsbT0wOyEoKDB8bSk+PSgwfGFbaz4+Ml0pKTspe0E9MHxhWygwfGFbTT4+Ml0pKyhtPDwyKT4+Ml07ZG97aWYoISgwfGZlW0ErMzY+PjBdKSl7aWYoKDB8KHc9MHxhW0Er''@;'; + put 'put ''MjA+PjJdKSk9PSgwfGMpKXtDaShiLEEsMHxhW0ErMjQ+PjJdKSx2MyhsLHAsQSwwKTticmVha31DaShiLEEsdyksdjMobCxmLEEsMCk7YnJlYWt9fXdoaWxlKDApO209bSsxfDB9YVtsPj4yXT0yKygwfGFbbD4+Ml0pLGxlPUR9LGZ1bmN0aW9uIEZzKGwsYyxmLHApe2x8PTAsY3w9MCxwfD0w''@;'; + put 'put ''O3ZhciBxZSxudCxXZSxvdCxTdCxrdCxFdCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxLPTAscGU9MCxnZT0wLGJlPTAsT2U9MCxMZT0wLFJlPTAsSGU9MCxWZT0wLHN0PTA7Zm9yKEV0PWxlLGxlPWxlKzEyOHwwLFdlPUV0KzY0fDAsTT1FdCs0OHwwLG90PUV0KzMyfDAs''@;'; + put 'put ''U3Q9RXQrMTZ8MCxrdD1FdCxtPTAsQT1mfD0wO0E7KW09bSsxfDAsQT0wfGFbQSs4Pj4yXTtmb3IobnQ9MHx2cigoNTYqbXwwKS0xMTJ8MCksYVtXZSs1Mj4+Ml09MCxhW1dlKzQ4Pj4yXT0wLEE9MHxhWzgrKGY9MHxhWyhxZT1mKzh8MCk+PjJdKT4+Ml0sMSZhWyhtPTB8YVtmKzIwPj4yXSk+''@;'; + put 'put ''PjJdJiYobT0wfGFbZisyND4+Ml0pLENpKE0sZixtKSx3PWYsRz1mLFI9MCxEPStfW00+PjNdLFZlPTAsaz0wLFJlPStfW00rOD4+M107MHxhWyhIZT1BKzh8MCk+PjJdOyl7aWYoRUUoYyxPZT0wfGdiKHcsQSksMHxhW0crMTI+PjJdKSwoMHxmZVsoZ2U9RyszNnwwKT4+MF0pPT0oMHxmZVso''@;'; + put 'put ''YmU9QSszNnwwKT4+MF0pPygwfGFbSGU+PjJdKT09KDB8cCk/KENpKFN0LEEsT2UpLGY9U3Qsc3Q9MTIpOih3PUcsZj1WZSxiPVJlKTooaDIob3QsT2UpLGY9b3Qsc3Q9MTIpLDEyPT0oMHxzdCkpe3N0PTAsTGU9K19bZj4+M10sYj0rX1tmKzg+PjNdLEs9KDB8Ryk9PSgwfGFbcWU+PjJdKSwo''@;'; + put 'put ''cGU9KGY9MHxmZVtnZT4+MF0pPDwyND4+MjQ9PTApPyhmPTB8ZmVbYmU+PjBdPygwfGFbQSsyMD4+Ml0pPT0oMHxPZSk/NDoyOjAsTT1PZSs0OHwwLEc9bSs0OHwwLHc9bSs0MHwwLG09Sz8wOlI+RD80OjIpOihmPWY8PDI0Pj4yND09KDB8ZmVbYmU+PjBdKT8wOigwfGFbQSsyMD4+Ml0pPT0o''@;'; + put 'put ''MHxPZSk/MTozLE09T2UrNDB8MCxHPW0rNDB8MCx3PW0rNDh8MCxtPUs/MDprPlJlPzE6MyksdzkoV2UsMSZwZSwrX1t3Pj4zXSwrX1tHPj4zXSwrX1tNPj4zXSxtLGYpLEc9VmUrMXwwLGY9V2Usdz01NisobT1udCsoNTYqVmV8MCl8MCl8MDtkb3thW20+PjJdPWFbZj4+Ml0sbT1tKzR8MCxm''@;'; + put 'put ''PWYrNHwwfXdoaWxlKCgwfG0pPCgwfHcpKTtpZigoMHxmZVtnZT4+MF0pIT0oMHxmZVtiZT4+MF0pJiYoMHxhW0hlPj4yXSk9PSgwfHApKXtDaShrdCxBLE9lKSxmPU9lKzQwfDAsbT1PZSs0OHwwLHc5KFdlLDEmKE09MD09KDB8ZmVbYmU+PjBdKSksK19bKE0/ZjptKT4+M10sUj0rX1soTT9t''@;'; + put 'put ''OmYpPj4zXSxSLE0/RD5MZT80OjI6UmU+Yj8xOjMsMCksTT1WZSsyfDAsZj1XZSx3PTU2KyhtPW50Kyg1NipHfDApfDApfDA7ZG97YVttPj4yXT1hW2Y+PjJdLG09bSs0fDAsZj1mKzR8MH13aGlsZSgoMHxtKTwoMHx3KSk7bT1PZSx3PUEsUj1ELEQ9TGUsZj1NLGs9UmV9ZWxzZSBtPU9lLHc9''@;'; + put 'put ''QSxSPUQsRD1MZSxmPUcsaz1SZX1PZT1BLEE9MHxhW0hlPj4yXSxHPXcsVmU9ZixSZT1iLHc9T2V9Zm9yKEE9MHxVYShudCw1NipWZXwwKSxmPVZlKy0xfDAsbT0wOyEoKDB8bSk+PSgwfFZlKSk7KSgwfG0pPjAmJihhW0ErKDU2Km18MCkrNDg+PjJdPUErKDU2KihtKy0xfDApfDApKSwoMHxt''@;'; + put 'put ''KTwoMHxmKT8oYVtBKyg1NiptfDApKzUyPj4yXT1BKyg1Niooc3Q9bSsxfDApfDApLG09c3QpOm09bSsxfDA7YVtsPj4yXT1WZSxhW2wrND4+Ml09QSxsZT1FdH0sZnVuY3Rpb24gUUsobCxjLGYscCl7ZmooNTg1ODQsY3w9MCxmfD0wLHB8PTApfV0scDg9W01wLGZ1bmN0aW9uIFJGKGwsYyxm''@;'; + put 'put ''LHAsbSl7dmFyIEE7VVQobHw9MCwwfGFbMjY0KyhBPTB8YVtsKzE2Pj4yXSk+PjJdLDB8YVtBKzI3Mj4+Ml0sMHxhW0ErMjY4Pj4yXSxjfD0wLGZ8PTAscHw9MCxtfD0wKX0sZnVuY3Rpb24gT2llKGwsYyxmLHAsbSl7bHw9MCxmfD0wLHB8PTA7dmFyIEE9MDtwPWxlLGxlPWxlKzE2fDAsZj1w''@;'; + put 'put ''LDB8KGN8PTApJiYwfGFbKEE9MjcyKygwfGFbbCsxNj4+Ml0pfDApPj4yXSYmKEVuKGwsNjkwMTQpLEczKGwsMHxhW0E+PjJdLDIpLEVuKGwsNjkwMjUpLGFbZj4+Ml09MHx0TihjLDB8YVs0NjcyMF0pLE9yKGwsNjkwMjksZikpLGxlPXB9LGZ1bmN0aW9uIGY3ZShsLGMsZixwLG0pe2N8PTAs''@;'; + put 'put ''Znw9MCxwfD0wO3ZhciBBLHcsayxNLEQsYj0wO0Q9bGUsbGU9bGUrMzJ8MCxBPUQrMTZ8MCxNPUQrOHwwLGs9RCx3PTE2KyhsfD0wKXwwLDB8KG18PTApJiYrX1s4MCsoYj0wfGFbdz4+Ml0pPj4zXT4uNSYmKGFwKGwsYis1NnwwKSxFbihsLDg0NDQ3KSxHMyhsLGYscCksRW4obCwxMDI2MDQp''@;'; + put 'put ''LGFbQT4+Ml09YVtmPj4yXSxhW0ErND4+Ml09YVtmKzQ+PjJdLGFbQSs4Pj4yXT1hW2YrOD4+Ml0sYVtBKzEyPj4yXT1hW2YrMTI+PjJdLG5oKGwsQSksYVtrPj4yXT1wLGFbays0Pj4yXT1jLE9yKGwsNjg3NjYsaykpLCtfWzQwKygwfGFbdz4+Ml0pPj4zXT4uNSYmKHpBKGwpLGFwKGwsMTYr''@;'; + put 'put ''KDB8YVt3Pj4yXSl8MCksRW4obCw4NDQ0NyksRzMobCxmLHApLEVuKGwsMTAyNjA0KSxhW0E+PjJdPWFbZj4+Ml0sYVtBKzQ+PjJdPWFbZis0Pj4yXSxhW0ErOD4+Ml09YVtmKzg+PjJdLGFbQSsxMj4+Ml09YVtmKzEyPj4yXSxuaChsLEEpLGFbTT4+Ml09cCxhW00rND4+Ml09YyxPcihsLDY4''@;'; + put 'put ''NzgyLE0pKSxsZT1EfSxmdW5jdGlvbiBOaWUobCxjLGYscCxtKXtjfD0wLGZ8PTAscHw9MCxtfD0wLEVuKGx8PTAsNzQ1MTkpLDB8bSYmKEVuKGwsNzQ1MjIpLEVuKGwsMHxNMShtKSksRW4obCw5ODc0NCkpLEVuKGwsNzQ0MTIpLEVuKGwsNzYzNDkpLDB8YyYmMHxmZVtjPj4wXSYmKEVuKGws''@;'; + put 'put ''NzQ1MzApLEVuKGwsYyksRW4obCw5ODc0NCkpLDB8ZiYmMHxmZVtmPj4wXSYmKEVuKGwsNzQ1NDQpLEVuKGwsMHxaSChmLDEpKSxFbihsLDk4NzQ0KSksMHxwJiYwfGZlW3A+PjBdJiYoRW4obCw3NDU1OSksRW4obCwwfE0xKHApKSxFbihsLDk4NzQ0KSksRW4obCw3NjM4OCl9LGZ1bmN0aW9u''@;'; + put 'put ''IEI3ZShsLGMsZixwLG0pe3ZhciBBLHcsYjtjfD0wLGZ8PTAscHw9MCxtfD0wLGI9bGUsbGU9bGUrMzJ8MCx3PWIrMTZ8MCxBPWIrOHwwLG09YixFbihsfD0wLDc2MzQ5KSwwfGMmJjB8ZmVbYz4+MF0mJihhW20+PjJdPTB8bmkoYyksT3IobCw3NjM1MixtKSksMHxmJiYwfGZlW2Y+PjBdJiYo''@;'; + put 'put ''YVtBPj4yXT0wfG5pKGYpLE9yKGwsNzYzNjMsQSkpLDB8cCYmMHxmZVtwPj4wXSYmKGFbdz4+Ml09MHxuaShwKSxPcihsLDc2Mzc1LHcpKSxFbihsLDc2Mzg4KSxsZT1ifSxmdW5jdGlvbiBCVShsLGMsZixwLG0pe3B8PTA7dmFyIFIsRyxwZSxnZSxMZSxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9''@;'; + put 'put ''MCxLPTAsYmU9MCxPZT0wO2ZvcihSPTE9PSgwfChtfD0wKSksRz0xNisoZ2U9MHxhWygwfGFbKDB8YVsxOTYrKDB8YVsoTGU9MTYrKGx8PTApfDApPj4yXSk+PjJdKSsoKGN8PTApPDw2KSs0Pj4yXSkrKChmfD0wKTw8Mik+PjJdKXwwLEQ9cGU9ZisxfDA7Oyl7aWYoKDB8RCk+KDB8cCkpe0E9''@;'; + put 'put ''cCxPZT1wZTticmVha31NPTE2KyhLPTB8YVsoMHxhWygwfGFbMTk2KygwfGFbTGU+PjJdKT4+Ml0pKyhjPDw2KSs0Pj4yXSkrKEQ8PDIpPj4yXSl8MDtlOmRve2lmKFIpZm9yKDs7KXtpZighKGs9MHxhW2FbMTgwKyhmPTB8YVtNPj4yXSk+PjJdPj4yXSkpYnJlYWsgZTtmb3Iodz0wfGFbMTgw''@;'; + put 'put ''KygwfGFbRz4+Ml0pPj4yXSxiPWsrLTQ4fDAsbT0wOzspe2lmKCEoZj0wfGFbdysobTw8Mik+PjJdKSl7YmU9ODticmVha31pZigoMHxhWygyPT0oMyZhW2Y+PjJdfDApP2Y6ZistNDh8MCkrNDA+PjJdKT09KDB8YVsoMj09KDMmYVtrPj4yXXwwKT9rOmIpKzQwPj4yXSkpYnJlYWs7bT1tKzF8''@;'; + put 'put ''MH1mb3IoOD09KDB8YmUpJiYoYmU9MCxmPTB8SmMoZ2UsMHxhWygyPT0oMyZhW2s+PjJdfDApP2s6YikrNDA+PjJdLGspKTttPTB8YVthWzE3MisoMHxhW00+PjJdKT4+Ml0+PjJdOyl6NihtLGYpLFUzKG0pO1UzKGspfWVsc2UgZm9yKDs7KXtpZighKGs9MHxhW2FbMTcyKyhmPTB8YVtNPj4y''@;'; + put 'put ''XSk+PjJdPj4yXSkpYnJlYWsgZTtmb3Iodz0wfGFbMTcyKygwfGFbRz4+Ml0pPj4yXSxiPWsrNDh8MCxtPTA7Oyl7aWYoIShmPTB8YVt3KyhtPDwyKT4+Ml0pKXtiZT0xNzticmVha31pZigoMHxhWygzPT0oMyZhW2Y+PjJdfDApP2Y6Zis0OHwwKSs0MD4+Ml0pPT0oMHxhWygzPT0oMyZhW2s+''@;'; + put 'put ''PjJdfDApP2s6YikrNDA+PjJdKSlicmVhazttPW0rMXwwfWZvcigxNz09KDB8YmUpJiYoYmU9MCxmPTB8SmMoMHxhWygzPT0oMyZhW2s+PjJdfDApP2s6YikrNDA+PjJdLGdlLGspKTttPTB8YVthWzE4MCsoMHxhW00+PjJdKT4+Ml0+PjJdOyl6NihtLGYpLFUzKG0pO1UzKGspfX13aGlsZSgw''@;'; + put 'put ''KTtpZigoMHxhW2YrMTc2Pj4yXSkhPSgwLSgwfGFbZisxODQ+PjJdKXwwKSl7YmU9MjM7YnJlYWt9dUkobCxLKSxEPUQrMXwwfWZvcigyMz09KDB8YmUpJiZQcig4ODMxMyw4ODM1NywxMTUsODgzNjQpOyEoKDB8KEE9QSsxfDApKT49KDB8YVsobT0oZj0wfGFbMTk2KygwfGFbTGU+PjJdKT4+''@;'; + put 'put ''Ml0pKyhjPDw2KXwwKT4+Ml0pKTspYVsocD0wfGFbZisoYzw8NikrND4+Ml0pKyhPZTw8Mik+PjJdPWJlPTB8YVtwKyhBPDwyKT4+Ml0sYVsyMzYrKDB8YVtiZSsxNj4+Ml0pPj4yXT1PZSxPZT1PZSsxfDA7YVttPj4yXT1PZSxhWygwfGFbZisoYzw8NikrND4+Ml0pKyhPZTw8Mik+PjJdPTB9''@;'; + put 'put ''LGVXLGZ1bmN0aW9uIGdmKGwsYyxmLHAsbSl7bHw9MCxjfD0wLGZ8PTAscHw9MCxtfD0wO3ZhciBiLE0sRCxSLEcsSyxwZSxnZSxiZSxPZSxSZSxIZSxxZSxBPTAsdz0wLGs9MCxMZT0wLFZlPTAsbnQ9MCxXZT0wLG90PTAsU3Q9MCxrdD0wO2ZvcihxZT1sZSxsZT1sZSsyMjR8MCxEPXFlKzE3''@;'; + put 'put ''NnwwLE09cWUrMjA4fDAsSGU9cWUrMTYwfDAsVmU9cWUrMTI4fDAsaz1xZSs5NnwwLGJlPXFlKzY0fDAsUj1xZSszMnwwLF9bKExlPShPZT1xZSkrOHwwKT4+M109MTc5NzY5MzEzNDg2MjMxNTdlMjkyLF9bT2U+PjNdPTE3OTc2OTMxMzQ4NjIzMTU3ZTI5MixfWyhSZT1PZSsyNHwwKT4+M109''@;'; + put 'put ''LTE3OTc2OTMxMzQ4NjIzMTU3ZTI5MixfWyhHPU9lKzE2fDApPj4zXT0tMTc5NzY5MzEzNDg2MjMxNTdlMjkyLF91KDExMDE4MyxsKSxhW0Q+PjJdPTEwLGFbRCs0Pj4yXT0xMCxUMChsLDExMDU4OSxEKSxfdSgxMzgyNjUsbCksdz1jKzR8MCxiPWMrMTJ8MCxLPWJlKzh8MCxwZT1iZSsxNnww''@;'; + put 'put ''LGdlPWJlKzI0fDAsQT0wOyEoKDB8QSk+PSgwfGFbdz4+Ml0pKTspYVtiZT4+Ml09YVsoU3Q9KDB8YVtiPj4yXSkrKDcyKkF8MCkrNDB8MCk+PjJdLGFbYmUrND4+Ml09YVtTdCs0Pj4yXSxhW2JlKzg+PjJdPWFbU3QrOD4+Ml0sYVtiZSsxMj4+Ml09YVtTdCsxMj4+Ml0sYVtiZSsxNj4+Ml09''@;'; + put 'put ''YVtTdCsxNj4+Ml0sYVtiZSsyMD4+Ml09YVtTdCsyMD4+Ml0sYVtiZSsyND4+Ml09YVtTdCsyND4+Ml0sYVtiZSsyOD4+Ml09YVtTdCsyOD4+Ml0sb3Q9K19bSz4+M10sV2U9K19bcGU+PjNdLG50PStfW2dlPj4zXSxfW2s+PjNdPStfW2JlPj4zXSxfW2srOD4+M109b3QsX1trKzE2Pj4zXT1X''@;'; + put 'put ''ZSxfW2srMjQ+PjNdPW50LFQwKGwsMTM4Mjg0LGspLEE9QSsxfDA7Zm9yKEE9MDshKCgwfEEpPj0oMHxmKSk7KVN0PTB8YVttKyhBPDwzKSs0Pj4yXSxhW00+PjJdPWFbKGs9cCsoQTw8Myl8MCk+PjJdLGFbTSs0Pj4yXT1hW2srND4+Ml0sYVtEPj4yXT1hW09lPj4yXSxhW0QrND4+Ml09YVtP''@;'; + put 'put ''ZSs0Pj4yXSxhW0QrOD4+Ml09YVtPZSs4Pj4yXSxhW0QrMTI+PjJdPWFbT2UrMTI+PjJdLGFbRCsxNj4+Ml09YVtPZSsxNj4+Ml0sYVtEKzIwPj4yXT1hW09lKzIwPj4yXSxhW0QrMjQ+PjJdPWFbT2UrMjQ+PjJdLGFbRCsyOD4+Ml09YVtPZSsyOD4+Ml0sWXooUixsLFN0LE0sYyxEKSxhW09l''@;'; + put 'put ''Pj4yXT1hW1I+PjJdLGFbT2UrND4+Ml09YVtSKzQ+PjJdLGFbT2UrOD4+Ml09YVtSKzg+PjJdLGFbT2UrMTI+PjJdPWFbUisxMj4+Ml0sYVtPZSsxNj4+Ml09YVtSKzE2Pj4yXSxhW09lKzIwPj4yXT1hW1IrMjA+PjJdLGFbT2UrMjQ+PjJdPWFbUisyND4+Ml0sYVtPZSsyOD4+Ml09YVtSKzI4''@;'; + put 'put ''Pj4yXSxBPUErMXwwO2ZvcihfdSgxMTA2MDYsbCksdz1jKzh8MCxBPTA7ISgoMHxBKT49KDB8YVtjPj4yXSkpOylhW2JlPj4yXT1hWyhTdD0oMHxhW3c+PjJdKSsoNzIqQXwwKSs0MHwwKT4+Ml0sYVtiZSs0Pj4yXT1hW1N0KzQ+PjJdLGFbYmUrOD4+Ml09YVtTdCs4Pj4yXSxhW2JlKzEyPj4y''@;'; + put 'put ''XT1hW1N0KzEyPj4yXSxhW2JlKzE2Pj4yXT1hW1N0KzE2Pj4yXSxhW2JlKzIwPj4yXT1hW1N0KzIwPj4yXSxhW2JlKzI0Pj4yXT1hW1N0KzI0Pj4yXSxhW2JlKzI4Pj4yXT1hW1N0KzI4Pj4yXSxudD0rX1tLPj4zXSxXZT0rX1twZT4+M10sb3Q9K19bZ2U+PjNdLF9bVmU+PjNdPWt0PStfW2Jl''@;'; + put 'put ''Pj4zXSxfW1ZlKzg+PjNdPW50LF9bVmUrMTY+PjNdPVdlLF9bVmUrMjQ+PjNdPW90LFQwKGwsMTM4MzIxLFZlKSxfW09lPj4zXT0rX1soK19bT2U+PjNdPGt0P09lOmJlKT4+M10sX1tMZT4+M109K19bKCtfW0xlPj4zXTxudD9PZTpiZSkrOD4+M10sX1tHPj4zXT0rX1soK19bRz4+M10+V2U/''@;'; + put 'put ''T2U6YmUpKzE2Pj4zXSxfW1JlPj4zXT0rX1soK19bUmU+PjNdPm90P09lOmJlKSsyND4+M10sQT1BKzF8MDtMZT1+figrX1tMZT4+M10rMTApLFZlPX5+KCtfW0c+PjNdKzEwKSxTdD1+figrX1tSZT4+M10rMTApLGFbSGU+PjJdPX5+KCtfW09lPj4zXSsxMCksYVtIZSs0Pj4yXT1MZSxhW0hl''@;'; + put 'put ''Kzg+PjJdPVZlLGFbSGUrMTI+PjJdPVN0LFQwKGwsMTEwNjMxLEhlKSxsZT1xZX0sTXAsTXAsTXAsTXAsTXAsTXAsTXBdLGh2PVtsdyxmdW5jdGlvbiB0N2UobCxjLGYscCxtLEEpe2N8PTAsZnw9MCxBfD0wLGpUKGx8PTApLE5DKGwpLEE/KDM9PSgxfEEpP3hGKGwsQSxjLGYpOlpUKGwpLFZD''@;'; + put 'put ''KGwsOTgsYyxmKSk6VkMobCw2NixjLGYpfSxmdW5jdGlvbiB2aWUobCxjLGYscCxtLEEpe2N8PTAscHw9MCxtfD0wLEF8PTA7dmFyIE0sRCxLLHBlLGdlLGJlLE9lLExlLFJlLEhlLFZlLHFlLG50LFdlLG90LHc9MCxiPTAsaz0wLFI9MCxHPTAsU3Q9MCxrdD0wLHN0PTA7Zm9yKG90PWxlLGxl''@;'; + put 'put ''PWxlKzE5MnwwLFdlPW90KzE3NnwwLHFlPW90KzE2OHwwLG50PW90KzEwNHwwLFZlPW90Kzk2fDAsdz1vdCs4OHwwLE9lPW90KzE4MHwwLExlPW90KzgwfDAsUmU9b3QrMTZ8MCxIZT1vdCxLPX5+K19bMTUyKyhwPTB8YVsobT0xNisobHw9MCl8MCk+PjJdKT4+M10scGU9MHxhW3ArMTY+PjJd''@;'; + put 'put ''LGdlPTB8YVs0NjcxMF0sKDB8KGZ8PTApKTw9MyYmUHIoNjc4ODIsNjc4ODksMzYwLDY3OTA5KSxiZT0wfEIwKDE0MCsoMTQwKmZ8MCl8MCksdTcocCxPZSxMZSksQT8oUj01LGI9MHxhWzU2KygwfGFbbT4+Ml0pPj4yXSxrPTIwKTooUj00LGI9MCxrPS0xKSxfWyhEPVJlKzQ4fDApPj4zXT1r''@;'; + put 'put ''dD0rX1tjPj4zXSxfW1JlKzU2Pj4zXT1TdD0rX1tjKzg+PjNdLGFbdz4+Ml09fn4oa3QrKGt0Pj0wPy41Oi0uNSkpLGFbdys0Pj4yXT1+fihTdCsoU3Q+PTA/LjU6LS41KSksTT1IZSs4fDAscD1iZSsoMHxvbyhiZSw4MTA5OSx3KSl8MCxHPTEsQT0wOyEoKDB8KHc9QSszfDApKT49KDB8Zikp''@;'; + put 'put ''Oyl7Zm9yKGFbUmU+PjJdPWFbRD4+Ml0sYVtSZSs0Pj4yXT1hW0QrND4+Ml0sYVtSZSs4Pj4yXT1hW0QrOD4+Ml0sYVtSZSsxMj4+Ml09YVtEKzEyPj4yXSxtPTE7Oyl7aWYoND09KDB8bSkpe209MTticmVha31fW1JlKyhtPDw0KT4+M109K19bYysoKHN0PW0rQXwwKTw8NCk+PjNdLF9bUmUr''@;'; + put 'put ''KG08PDQpKzg+PjNdPStfW2MrKHN0PDw0KSs4Pj4zXSxtPW0rMXwwfWZvcig7NyE9KDB8bSk7KXd1KEhlLFJlLDMsLjE2NjY2NjY2NjY2NjY2NjY2KisoMHxtKSwwLDApLGt0PStfW00+PjNdLGFbVmU+PjJdPX5+KChTdD0rX1tIZT4+M10pKyhTdD49MD8uNTotLjUpKSxhW1ZlKzQ+PjJdPX5+''@;'; + put 'put ''KGt0KyhrdD49MD8uNTotLjUpKSxtPW0rMXwwLHA9cCsoMHxvbyhwLDgxMDk5LFZlKSl8MDtHPUcrNnwwLEE9d31mb3IobT0wfGFbT2U+PjJdLGt0PStfW0xlPj4zXSxhW250Pj4yXT0zLGFbbnQrND4+Ml09UixhW250Kzg+PjJdPW0sYVtudCsxMj4+Ml09SyxhW250KzE2Pj4yXT1wZSxhW250''@;'; + put 'put ''KzIwPj4yXT1iLGFbbnQrMjQ+PjJdPWdlLGFbbnQrMjg+PjJdPTAsYVtudCszMj4+Ml09ayxfW250KzQwPj4zXT1rdCxhW250KzQ4Pj4yXT0wLGFbbnQrNTI+PjJdPTAsYVtudCs1Nj4+Ml09MCxhW250KzYwPj4yXT1HLE9yKGwsNjgzODIsbnQpLGFbcWU+PjJdPWJlLE9yKGwsODExMDYscWUp''@;'; + put 'put ''LEZ0KGJlKSxtPUcrLTF8MCxwPTA7ISgoMHxwKT49KDB8RykpOylhW1dlPj4yXT0wIT0oMHwoMHxwKSUoMHxtKSkmMSxPcihsLDgxMTExLFdlKSxwPXArMXwwO0VuKGwsMTUzNTk5KSxsZT1vdH0sZnVuY3Rpb24gelcobCxjLGYscCxtLEEpe2N8PTAscHw9MCxtfD0wLEF8PTA7dmFyIE0sRCxL''@;'; + put 'put ''LHBlLGdlLGJlLE9lLExlLFJlLEhlLFZlLHFlLG50LFdlLG90LHc9MCxiPTAsaz0wLFI9MCxHPTAsU3Q9MCxrdD0wLHN0PTA7Zm9yKG90PWxlLGxlPWxlKzE5MnwwLFdlPW90KzE3NnwwLHFlPW90KzE2OHwwLG50PW90KzEwNHwwLFZlPW90Kzk2fDAsbT1vdCs4OHwwLE9lPW90KzE4MHwwLExl''@;'; + put 'put ''PW90KzgwfDAsUmU9b3QrMTZ8MCxIZT1vdCxLPX5+K19bMTUyKyhHPTB8YVsocD0xNisobHw9MCl8MCk+PjJdKT4+M10scGU9MHxhW0crMTY+PjJdLGdlPTB8YVs0NjcxNl0sYmU9MHxCMCgxNDArKDE0MCooZnw9MCl8MCl8MCksWFQoRyxPZSxMZSksQT8oUj01LGI9MHxhWzU2KygwfGFbcD4+''@;'; + put 'put ''Ml0pPj4yXSxrPTIwKTooUj00LGI9MCxrPS0xKSxfWyhEPVJlKzQ4fDApPj4zXT1rdD0rX1tjPj4zXSxfW1JlKzU2Pj4zXT1TdD0rX1tjKzg+PjNdLGFbbT4+Ml09fn4oa3QrKGt0Pj0wPy41Oi0uNSkpLGFbbSs0Pj4yXT1+fihTdCsoU3Q+PTA/LjU6LS41KSksTT1IZSs4fDAscD1iZSsoMHxv''@;'; + put 'put ''byhiZSw4MTA5OSxtKSl8MCxHPTEsQT0wOyEoKDB8KHc9QSszfDApKT49KDB8ZikpOyl7Zm9yKGFbUmU+PjJdPWFbRD4+Ml0sYVtSZSs0Pj4yXT1hW0QrND4+Ml0sYVtSZSs4Pj4yXT1hW0QrOD4+Ml0sYVtSZSsxMj4+Ml09YVtEKzEyPj4yXSxtPTE7Oyl7aWYoND09KDB8bSkpe209MTticmVh''@;'; + put 'put ''a31fW1JlKyhtPDw0KT4+M109K19bYysoKHN0PW0rQXwwKTw8NCk+PjNdLF9bUmUrKG08PDQpKzg+PjNdPStfW2MrKHN0PDw0KSs4Pj4zXSxtPW0rMXwwfWZvcig7NyE9KDB8bSk7KXd1KEhlLFJlLDMsLjE2NjY2NjY2NjY2NjY2NjY2KisoMHxtKSwwLDApLGt0PStfW00+PjNdLGFbVmU+PjJd''@;'; + put 'put ''PX5+KChTdD0rX1tIZT4+M10pKyhTdD49MD8uNTotLjUpKSxhW1ZlKzQ+PjJdPX5+KGt0KyhrdD49MD8uNTotLjUpKSxtPW0rMXwwLHA9cCsoMHxvbyhwLDgxMDk5LFZlKSl8MDtHPUcrNnwwLEE9d31mb3IobT0wfGFbT2U+PjJdLGt0PStfW0xlPj4zXSxhW250Pj4yXT0zLGFbbnQrND4+Ml09''@;'; + put 'put ''UixhW250Kzg+PjJdPW0sYVtudCsxMj4+Ml09SyxhW250KzE2Pj4yXT1wZSxhW250KzIwPj4yXT1iLGFbbnQrMjQ+PjJdPWdlLGFbbnQrMjg+PjJdPTAsYVtudCszMj4+Ml09ayxfW250KzQwPj4zXT1rdCxhW250KzQ4Pj4yXT0wLGFbbnQrNTI+PjJdPTAsYVtudCs1Nj4+Ml09MCxhW250KzYw''@;'; + put 'put ''Pj4yXT1HLE9yKGwsNjgzODIsbnQpLGFbcWU+PjJdPWJlLE9yKGwsODExMDYscWUpLEZ0KGJlKSxtPUcrLTF8MCxwPTA7ISgoMHxwKT49KDB8RykpOylhW1dlPj4yXT0wIT0oMHwoMHxwKSUoMHxtKSkmMSxPcihsLDgxMTExLFdlKSxwPXArMXwwO0VuKGwsMTUzNTk5KSxsZT1vdH0sZnVuY3Rp''@;'; + put 'put ''b24gJFcobCxjLGYscCxtLEEpe2N8PTAsZnw9MCxwfD0wLG18PTA7dmFyIHcsayxiPTA7aWYoaz1sZSxsZT1sZSsxNnwwLG09ayx3PTE2KyhsfD0wKXwwLDB8KEF8PTApJiYrX1s4MCsoYj0wfGFbdz4+Ml0pPj4zXT4uNSl7Zm9yKGFwKGwsYis1NnwwKSxFbihsLDY4ODUyKSxhW20+PjJdPWFb''@;'; + put 'put ''Yz4+Ml0sYVttKzQ+PjJdPWFbYys0Pj4yXSxhW20rOD4+Ml09YVtjKzg+PjJdLGFbbSsxMj4+Ml09YVtjKzEyPj4yXSxuaChsLG0pLEVuKGwsNjg4NjEpLHA9MTshKCgwfHApPj0oMHxmKSk7KUczKGwsYysocDw8NCl8MCwzKSxFbihsLDY4ODg3KSxwPXArM3wwO0VuKGwsNjg4OTcpfWlmKCtf''@;'; + put 'put ''WzQwKygwfGFbdz4+Ml0pPj4zXT4uNSl7Zm9yKHpBKGwpLGFwKGwsMTYrKDB8YVt3Pj4yXSl8MCksRW4obCw2ODg1MiksYVttPj4yXT1hW2M+PjJdLGFbbSs0Pj4yXT1hW2MrND4+Ml0sYVttKzg+PjJdPWFbYys4Pj4yXSxhW20rMTI+PjJdPWFbYysxMj4+Ml0sbmgobCxtKSxFbihsLDY4ODYx''@;'; + put 'put ''KSxwPTE7ISgoMHxwKT49KDB8ZikpOylHMyhsLGMrKHA8PDQpfDAsMyksRW4obCw2ODg4NykscD1wKzN8MDtFbihsLDY4ODc5KX1sZT1rfSxmdW5jdGlvbiBiN2UobCxjLGYscCxtLEEpe3N3aXRjaChjfD0wLGZ8PTAscHw9MCxtfD0wLG09MHxhWzE2KyhsfD0wKT4+Ml0sMHwoQXw9MCkpe2Nh''@;'; + put 'put ''c2UgMjpwPTB8dFkobCxjLGYpO2JyZWFrO2Nhc2UgMzpwPTB8blkobCk7YnJlYWs7ZGVmYXVsdDpwPTB9RW4obCw3MzU5NCksNTEyJml0W20rMjYwPj4xXSYmKEVuKGwsNzM2MDApLEVuKGwsMHxNMSgwfGFbbSsyMTI+PjJdKSksRW4obCw3MzYwNikpLEhGKGwsQSxwKSxFbihsLDczNjExKSxm''@;'; + put 'put ''dW5jdGlvbiBDN2UobCxjLGYpe2x8PTAsY3w9MCxmfD0wO3ZhciBBLHcscD0wLG09MDtmb3Iodz1sZSxsZT1sZSsxNnwwLEE9dyxwPTc3LG09MDshKCgwfG0pPj0oMHxmKSk7KWFbQT4+Ml09cCxPcihsLDczNjE2LEEpLFpzKGwsK19bYysobTw8NCk+PjNdKSxFbihsLDEwMDk5OSksWnMobCwt''@;'; + put 'put ''K19bYysobTw8NCkrOD4+M10pLHA9MD09KDB8bSk/Njc6MzIsbT1tKzF8MDtsZT13fShsLGMsZiksRW4obCw3MzQyNCl9LGZ1bmN0aW9uIFQ3ZShsLGMsZixwLG0sQSl7dmFyIHcsYixrLE07aWYoY3w9MCxmfD0wLHB8PTAsbXw9MCxBfD0wLE09bGUsbGU9bGUrNDh8MCx3PU0sMHxhWyhrPTE0''@;'; + put 'put ''NCsoYj0wfGFbMTYrKGx8PTApPj4yXSl8MCk+PjJdKXskVChsKSxFbihsLDc1MTQxKSxHMyhsLGMsZiksRW4obCw3NTE1NSksbT1iKzE2fDAsQT0ocD13KSs0MHwwO2Rve2FbcD4+Ml09YVttPj4yXSxwPXArNHwwLG09bSs0fDB9d2hpbGUoKDB8cCk8KDB8QSkpO0dBKGwsdyksRW4obCw3NTI2''@;'; + put 'put ''NiksWnMobCwrX1tiKzE1Mj4+M10pLDE9PSgwfChwPTB8YVtrPj4yXSkpJiYoRW4obCw3NTE2MykscD0wfGFbaz4+Ml0pLDI9PSgwfHApJiZFbihsLDc1MTcyKSxFbihsLDc1Mjc1KSxxVChsKSxFbihsLDE1MzU5OSl9bGU9TX0sZnVuY3Rpb24gZjcobCxjLGYscCxtLEEpe3ZhciB3O2N8PTAs''@;'; + put 'put ''Znw9MCxwfD0wLG18PTAsQXw9MCxtPWxlLGxlPWxlKzE2fDAscD1tLEVuKGx8PTAsNzU1MTEpLHc9MHxhWzQ2NzI3XSxhW3A+PjJdPWFbNDY3MjZdLGFbcCs0Pj4yXT13LE9yKGwsNzU3NjQscCksaVkobCxBKSxFbihsLDc1Nzg4KSxlSShsKSxFbihsLDc1NzkxKSxmdW5jdGlvbiBvWShsLGMs''@;'; + put 'put ''Zil7bHw9MCxjfD0wLGZ8PTA7dmFyIEEsdyxwPTAsbT0wLGI9MCxrPTA7Zm9yKHc9bGUsbGU9bGUrMzJ8MCxBPXcscD03NTgxOCxtPTA7ISgoMHxtKT49KDB8ZikpOylrPStfW2MrKG08PDQpPj4zXSxiPSsoKDB8YVs0NjcyN10pPj4+MCktK19bYysobTw8NCkrOD4+M10sYVtBPj4yXT1wLF9b''@;'; + put 'put ''QSs4Pj4zXT1rLF9bQSsxNj4+M109YixPcihsLDc1ODIxLEEpLHA9MD09KDB8bSk/NzU4MzQ6MTk1MDU5LG09bSsxfDA7RW4obCw5ODc0NCksbGU9d30obCxjLGYpLEVuKGwsNzU4MDQpLGxlPW19LGZ1bmN0aW9uIFg3ZShsLGMsZixwLG0sQSl7Y3w9MCxmfD0wLHB8PTAsbXw9MCxBfD0wO3Zh''@;'; + put 'put ''ciBNLEQsUixHLGdlLGJlLE9lLExlLFJlLEhlLFZlLHFlLG50LHc9MCxiPTAsaz0wLEs9MCxwZT0wLFdlPTAsb3Q9MDtudD1sZSxsZT1sZSsyMDh8MCxwPW50KzE2MHwwLHFlPW50KzE1MnwwLFZlPW50KzEzNnwwLEhlPW50KzEyOHwwLFJlPW50Kzk2fDAsTGU9bnQrODh8MCxPZT1udCs1Nnww''@;'; + put 'put ''LGI9bnQrNDh8MCxwZT1udCsyNHwwLEs9bnQsRW4obHw9MCw3ODcwOSksam5bNDY3MjldPStqbls0NjcyOF0tNCxXZT0rX1tsKzQ5Nj4+M10sX1tLPj4zXT0rX1tsKzQ4OD4+M10sX1tLKzg+PjNdPVdlLF9bSysxNj4+M109MSxLPTB8RWEobCw3ODI3NyxLKSxXZT0rKDB8YVtsKzM2MD4+Ml0p''@;'; + put 'put ''LF9bcGU+PjNdPTAsX1twZSs4Pj4zXT0wLF9bcGUrMTY+PjNdPVdlLHBlPTB8RWEobCw3ODMwOSxwZSksV2U9K2puWzQ2NzI5XS0yLF9bcD4+M109MCxfW3ArOD4+M109MCxfW3ArMTY+PjNdPVdlLGdlPTB8RWEobCw3ODM0MSxwKSxBPTU2KygwfGFbKGJlPWwrMTZ8MCk+PjJdKXwwLHc9KG09''@;'; + put 'put ''cCkrNDB8MDtkb3thW20+PjJdPWFbQT4+Ml0sbT1tKzR8MCxBPUErNHwwfXdoaWxlKCgwfG0pPCgwfHcpKTtmb3IoTT0wfFdBKGwscCwwKSxhW2I+PjJdPTc4NzIzLGFbYis0Pj4yXT1mKzIsRD1sKzUwNHwwLFI9bCs1MTJ8MCxHPWYrLTF8MCxrPTAscD0wfEVhKGwsNzgzNzMsYik7ISgoMHxr''@;'; + put 'put ''KT49KDB8ZikpOylvdD0rX1tSPj4zXSsgK19bKEE9Yysoazw8NCkrOHwwKT4+M10sV2U9K19bMTUyKygwfGFbYmU+PjJdKT4+M10sX1tPZT4+M109K19bRD4+M10rICtfWyhtPWMrKGs8PDQpfDApPj4zXSxfW09lKzg+PjNdPW90LF9bT2UrMTY+PjNdPTAsX1tPZSsyND4+M109V2UsYj0wfEVh''@;'; + put 'put ''KGwsNzg0MTgsT2UpLGFbTGU+PjJdPXAsYVtMZSs0Pj4yXT1iLHc9MHxFYShsLDc4NDQ3LExlKSxGdChiKSxGdChwKSwwPT0oMHxrKXwoMHxrKT09KDB8Ryk/KFdlPStfW1I+PjNdKyArX1tBPj4zXSxvdD0rX1sxNTIrKDB8YVtiZT4+Ml0pPj4zXSxfW1JlPj4zXT0rX1tEPj4zXSsgK19bbT4+''@;'; + put 'put ''M10sX1tSZSs4Pj4zXT1XZSxfW1JlKzE2Pj4zXT0wLF9bUmUrMjQ+PjNdPW90LGI9MHxFYShsLDc4NDE4LFJlKSxhW0hlPj4yXT13LGFbSGUrND4+Ml09YixwPTB8RWEobCw3ODQ0NyxIZSksRnQoYiksRnQodykpOnA9dyxrPWsrMXwwO2FbVmU+PjJdPUssYVtWZSs0Pj4yXT1wZSxhW1ZlKzg+''@;'; + put 'put ''PjJdPWdlLGFbVmUrMTI+PjJdPU0sYz0wfEVhKGwsNzg3MzIsVmUpLGFbcWU+PjJdPXAsYVtxZSs0Pj4yXT1jLGY9MHxFYShsLDc4NTAyLHFlKSxGdChjKSxFbihsLGYpLEZ0KEspLEZ0KHBlKSxGdChnZSksRnQoTSksRnQoZiksbGU9bnR9LGZ1bmN0aW9uIFFpZShsLGMsZixwLG0sQSl7Y3w9''@;'; + put 'put ''MCxwfD0wLG18PTAsQXw9MDt2YXIgdyxiLEQsUixHLEssZ2UsYmUsaz0wLE09MCxwZT0wLE9lPTAsTGU9MCxSZT0wO2ZvcihiZT1sZSxsZT1sZSsxMjh8MCxnZT1iZSsxMTJ8MCxLPWJlKzEwNHwwLEc9YmUrOTZ8MCxwPWJlKzg4fDAsRD1iZSsxNnwwLFI9YmUsaz0wfGFbMTYrKGx8PTApPj4y''@;'; + put 'put ''XSxiPTB8QjAoMTQwKygxNDAqKGZ8PTApfDApfDApLE5GKGssYmUrMTE2fDAsYmUrODB8MCksX1soaz1EKzQ4fDApPj4zXT1MZT0rX1tjPj4zXSxfW0QrNTY+PjNdPU9lPStfW2MrOD4+M10sYVtwPj4yXT1+fihMZSsoTGU+PTA/LjU6LS41KSksYVtwKzQ+PjJdPX5+KE9lKyhPZT49MD8uNTot''@;'; + put 'put ''LjUpKSx3PVIrOHwwLHA9YisoMHxvbyhiLDgxMDk5LHApKXwwLHBlPTEsQT0wOyEoKDB8KE09QSszfDApKT49KDB8ZikpOyl7Zm9yKGFbRD4+Ml09YVtrPj4yXSxhW0QrND4+Ml09YVtrKzQ+PjJdLGFbRCs4Pj4yXT1hW2srOD4+Ml0sYVtEKzEyPj4yXT1hW2srMTI+PjJdLG09MTs7KXtpZig0''@;'; + put 'put ''PT0oMHxtKSl7bT0xO2JyZWFrfV9bRCsobTw8NCk+PjNdPStfW2MrKChSZT1tK0F8MCk8PDQpPj4zXSxfW0QrKG08PDQpKzg+PjNdPStfW2MrKFJlPDw0KSs4Pj4zXSxtPW0rMXwwfWZvcig7NyE9KDB8bSk7KXd1KFIsRCwzLC4xNjY2NjY2NjY2NjY2NjY2NiorKDB8bSksMCwwKSxMZT0rX1t3''@;'; + put 'put ''Pj4zXSxhW0c+PjJdPX5+KChPZT0rX1tSPj4zXSkrKE9lPj0wPy41Oi0uNSkpLGFbRys0Pj4yXT1+fihMZSsoTGU+PTA/LjU6LS41KSksbT1tKzF8MCxwPXArKDB8b28ocCw4MTA5OSxHKSl8MDtwZT1wZSs2fDAsQT1NfWZvcihhW0s+PjJdPWIsT3IobCw4MTEwNixLKSxGdChiKSxtPXBlKy0x''@;'; + put 'put ''fDAscD0wOyEoKDB8cCk+PSgwfHBlKSk7KWFbZ2U+PjJdPTAhPSgwfCgwfHApJSgwfG0pKSYxLE9yKGwsODExMTEsZ2UpLHA9cCsxfDA7RW4obCwxNTM1OTkpLGxlPWJlfSxmdW5jdGlvbiBDZChsLGMsZixwLG0sQSl7Y3w9MCxmfD0wLHB8PTAsbXw9MDt2YXIgTGUsUmUsSGUsU3Qsa3QsWnQs''@;'; + put 'put ''Y3QsYnQsYW4sSG4sdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLEs9MCxwZT0wLGdlPTAsYmU9MCxPZT0wLFZlPTAscWU9MCxudD0wLFdlPTAsb3Q9MCxFdD0wLHVyPTAsSHI9MCxFcj0wO2ZvcihIbj1sZSxsZT1sZSsxMTJ8MCxrdD1Ibis4OHwwLFN0PUhuKzcyfDAsYnQ9SG4rNTZ8MCxh''@;'; + put 'put ''bj1Ibis0MHwwLExlPTA9PSgwfChBfD0wKSksUmU9KGN0PUhuKSs4fDAsSGU9OCsoWnQ9SG4rMTZ8MCl8MCxPZT0wLGs9MCxNPTAsRD0wLFI9MCxBPTA7ISgoMHxPZSk+PSgwfGYpKTspe2ZvcihxZT00OCsoVmU9MHxhW20rKE9lPDwzKSs0Pj4yXSl8MCxXZT0xNisoMHxhWyhudD1WZSsxNnww''@;'; + put 'put ''KT4+Ml0pfDAsYVtTdD4+Ml09YVsoYmU9MTYrKDB8YVsxNisoMHxhWygzPT0oMyZhW1ZlPj4yXXwwKT9WZTpxZSkrNDA+PjJdKT4+Ml0pfDApPj4yXSxhW1N0KzQ+PjJdPWFbYmUrND4+Ml0sYVtTdCs4Pj4yXT1hW2JlKzg+PjJdLGFbU3QrMTI+PjJdPWFbYmUrMTI+PjJdLGFba3Q+PjJdPWFb''@;'; + put 'put ''V2U+PjJdLGFba3QrND4+Ml09YVtXZSs0Pj4yXSxhW2t0Kzg+PjJdPWFbV2UrOD4+Ml0sYVtrdCsxMj4+Ml09YVtXZSsxMj4+Ml0sZmIoYnQsU3Qsa3QpLGFbWnQ+PjJdPWFbYnQ+PjJdLGFbWnQrND4+Ml09YVtidCs0Pj4yXSxhW1p0Kzg+PjJdPWFbYnQrOD4+Ml0sYVtadCsxMj4+Ml09YVti''@;'; + put 'put ''dCsxMj4+Ml0sV2U9VmUrLTQ4fDAsZ2U9NTYrKDB8YVtudD4+Ml0pfDAsYVtTdD4+Ml09YVsoYmU9MTYrKDB8YVsxNisoMHxhWygyPT0oMyZhW1ZlPj4yXXwwKT9WZTpXZSkrNDA+PjJdKT4+Ml0pfDApPj4yXSxhW1N0KzQ+PjJdPWFbYmUrND4+Ml0sYVtTdCs4Pj4yXT1hW2JlKzg+PjJdLGFb''@;'; + put 'put ''U3QrMTI+PjJdPWFbYmUrMTI+PjJdLGFba3Q+PjJdPWFbZ2U+PjJdLGFba3QrND4+Ml09YVtnZSs0Pj4yXSxhW2t0Kzg+PjJdPWFbZ2UrOD4+Ml0sYVtrdCsxMj4+Ml09YVtnZSsxMj4+Ml0sZmIoYW4sU3Qsa3QpLGFbY3Q+PjJdPWFbYW4+PjJdLGFbY3QrND4+Ml09YVthbis0Pj4yXSxhW2N0''@;'; + put 'put ''Kzg+PjJdPWFbYW4rOD4+Ml0sYVtjdCsxMj4+Ml09YVthbisxMj4+Ml0sYmU9MHxhW3ArKE9lPDwzKSs0Pj4yXSxvdD0xKyhwZT0zKihnZT0wfGFbcCsoT2U8PDMpPj4yXSl8MCl8MCwoMHxwZSk+PSgwfE0pJiYoMHxrJiZGdChBKSxrPVI9MHxRbihvdDw8NCksTT1vdCxEPVIsQT1SKSwwfGZl''@;'; + put 'put ''W2JlPj4wXT8odz0ra2QoYmUsYyksYj0rX1tIZT4+M10pOihiPSsoMHxtMyhiZSxjKSksdz0rX1tadD4+M10pLEs9aysxNnwwLF9baysxNj4+M109dyxfW2srMjQ+PjNdPWIsYVtSPj4yXT1hW0s+PjJdLGFbUis0Pj4yXT1hW0srND4+Ml0sYVtSKzg+PjJdPWFbSys4Pj4yXSxhW1IrMTI+PjJd''@;'; + put 'put ''PWFbSysxMj4+Ml0sSz0xLEc9YmUscGU9MjshKCgwfEspPj0oMHxnZSkpOykwfGZlWyhHPWJlKyg1NipLfDApfDApPj4wXT93PStrZChHLGMpOmI9KygwfG0zKEcsYykpLHVyPWsrKHBlKzI8PDQpfDAsRXI9aysocGUrMTw8NCl8MCxfWyhIcj1rKyhwZTw8NCl8MCk+PjNdPXcsX1trKyhwZTw8''@;'; + put 'put ''NCkrOD4+M109YixhW0VyPj4yXT1hW0hyPj4yXSxhW0VyKzQ+PjJdPWFbSHIrND4+Ml0sYVtFcis4Pj4yXT1hW0hyKzg+PjJdLGFbRXIrMTI+PjJdPWFbSHIrMTI+PjJdLGFbdXI+PjJdPWFbSHI+PjJdLGFbdXIrND4+Ml09YVtIcis0Pj4yXSxhW3VyKzg+PjJdPWFbSHIrOD4+Ml0sYVt1cisx''@;'; + put 'put ''Mj4+Ml09YVtIcisxMj4+Ml0sSz1LKzF8MCxwZT1wZSszfDA7MHxmZVtHPj4wXT8odz0ra2QoRyxjKSxiPStfW1JlPj4zXSk6KGI9KygwfG0zKEcsYykpLHc9K19bY3Q+PjNdKSxFcj1rKyhwZTw8NCl8MCxfWyhIcj1rKygodXI9cGUrMXwwKTw8NCl8MCk+PjNdPXcsX1trKyh1cjw8NCkrOD4+''@;'; + put 'put ''M109YixhW0VyPj4yXT1hW0hyPj4yXSxhW0VyKzQ+PjJdPWFbSHIrND4+Ml0sYVtFcis4Pj4yXT1hW0hyKzg+PjJdLGFbRXIrMTI+PjJdPWFbSHIrMTI+PjJdLEF1KFZlLDB8YVsoMj09KDMmYVtWZT4+Ml18MCk/VmU6V2UpKzQwPj4yXSxrLG90LDI1NjgwKSwhTGUmJjB8KEV0PTB8YVs5Niso''@;'; + put 'put ''MHxhW250Pj4yXSk+PjJdKSYmMD09KDB8ZmVbRXQrODE+PjBdKSYmKGFbU3Q+PjJdPWFbWnQ+PjJdLGFbU3QrND4+Ml09YVtadCs0Pj4yXSxhW1N0Kzg+PjJdPWFbWnQrOD4+Ml0sYVtTdCsxMj4+Ml09YVtadCsxMj4+Ml0sYVtrdD4+Ml09YVtjdD4+Ml0sYVtrdCs0Pj4yXT1hW2N0KzQ+PjJd''@;'; + put 'put ''LGFba3QrOD4+Ml09YVtjdCs4Pj4yXSxhW2t0KzEyPj4yXT1hW2N0KzEyPj4yXSx0ZygwLFZlKSksT2U9T2UrMXwwfUZ0KEQpLGxlPUhufSxsdyxsdyxsdyxsdyxsd10sbFM9W2Z1bmN0aW9uIHpzKGwsYyxmLHAsbSxBLHcsYixrKXt3MigyMCl9XTtyZXR1cm57X19fZXJybm9fbG9jYXRpb246''@;'; + put 'put ''ZnVuY3Rpb24gdHMoKXtyZXR1cm4gMTkwNTcyfSxfX19tdWxkaTM6cncsX19fdWRpdmRpMzppdyxfX191cmVtZGkzOmlTLF9iaXRzaGlmdDY0QXNocjpJTCxfYml0c2hpZnQ2NExzaHI6d2wsX2JpdHNoaWZ0NjRTaGw6Wm8sX2R0ZXh0cmFjdDpGMyxfZnJlZTpGdCxfaHRvbnM6ZnVuY3Rpb24g''@;'; + put 'put ''Z2NlKGwpe3JldHVybiAwfGZ1bmN0aW9uIG1jZShsKXtyZXR1cm4gMHxtZmUoMHwobHw9MCkpfShsfD0wKX0sX2k2NEFkZDp6bCxfaTY0U3VidHJhY3Q6U3AsX2xsdm1fYnN3YXBfaTE2Om1mZSxfbGx2bV9ic3dhcF9pMzI6SXMsX21hbGxvYzpCMCxfbWVtYWxpZ246ZnVuY3Rpb24gRnVlKGws''@;'; + put 'put ''Yyl7cmV0dXJuIGN8PTAsKGx8PTApPj4+MDw5PzB8KGM9MHxCMChjKSk6KGM9MHxmdW5jdGlvbiBBQWUobCxjKXtjfD0wO3ZhciBBLGY9MCxwPTAsbT0wLHc9MCxiPTA7aWYoKGw9KGx8PTApPj4+MD4xNj9sOjE2KSstMSZsKWZvcihmPTE2Ozspe2lmKCEoZj4+PjA8bD4+PjApKXtsPWY7YnJl''@;'; + put 'put ''YWt9Zjw8PTF9aWYoKC02NC1sfDApPj4+MDw9Yz4+PjApcmV0dXJuIGFbNDc2NDNdPTEyLDA7aWYoIShmPTB8QjAoMTIrKEE9Yz4+PjA8MTE/MTY6YysxMSYtOCkrbHwwKSkpcmV0dXJuIDA7bT1mKy04fDA7ZG97aWYobCstMSZmKXtpZihwPSgocD0oZitsKy0xJjAtbCktOHwwKS0oYz1tKXww''@;'; + put 'put ''KT4+PjA+MTU/cDpwK2x8MCxmPSgtOCYoYj0wfGFbKGw9ZistNHwwKT4+Ml0pKS0oYz1wLWN8MCl8MCwzJmIpe2FbKGI9cCs0fDApPj4yXT1mfDEmYVtiPj4yXXwyLGFbKGY9cCtmKzR8MCk+PjJdPTF8YVtmPj4yXSxhW2w+PjJdPWN8MSZhW2w+PjJdfDIsYVtiPj4yXT0xfGFbYj4+Ml0sZkwo''@;'; + put 'put ''bSxjKSxsPXAsYz1wO2JyZWFrfWFbcD4+Ml09KDB8YVttPj4yXSkrYyxhW3ArND4+Ml09ZixsPXAsYz1wO2JyZWFrfWw9bSxjPW19d2hpbGUoMCk7cmV0dXJuIDMmKGY9MHxhWyhsPWwrNHwwKT4+Ml0pfDAmJih3PS04JmYpPj4+MD4oQSsxNnwwKT4+PjAmJihiPXctQXwwLG09YytBfDAsYVts''@;'; + put 'put ''Pj4yXT1BfDEmZnwyLGFbbSs0Pj4yXT0zfGIsYVsodz1jK3crNHwwKT4+Ml09MXxhW3c+PjJdLGZMKG0sYikpLDB8Yys4fShsLGMpLDB8Yyl9LF9tZW1jcHk6Z28sX21lbW1vdmU6cjEsX21lbXNldDp1MixfcmVhbGxvYzpVYSxfc2F2ZVNldGptcDpQZixfc2Jyazp5MixfdGVzdFNldGptcDpn''@;'; + put 'put ''aSxfdml6Q3JlYXRlRmlsZTpmdW5jdGlvbiB0aWUobCxjKXtJNCgwLDB8KGx8PTApLDB8KGN8PTApKX0sX3Zpekxhc3RFcnJvck1lc3NhZ2U6ZnVuY3Rpb24ga1coKXtyZXR1cm4gMHxhWzQ2NjU0XX0sX3ZpelJlbmRlckZyb21TdHJpbmc6ZnVuY3Rpb24gTm8obCxjLGYpe2x8PTAsY3w9MCxm''@;'; + put 'put ''fD0wO3ZhciBtLEEsdyxiLHA9MDtmb3IoYj1sZSxsZT1sZSsxNnwwLEE9YixhWyhtPWIrNHwwKT4+Ml09MCxMVCh3PTB8S0coKSwxMDk3NiksTFQodywxNzIyMCksTFQodywxNzQ0MCksZnVuY3Rpb24gY1QobCl7dmFyIGM7Yz0wfGFbNDY5MzZdLGFbNDY5MzZdPWx8PTB9KDEpLGZ1bmN0aW9u''@;'; + put 'put ''IHVUKGwpe3ZhciBjO2M9MHxhWzQ2OTM1XSxhWzQ2OTM1XT1sfD0wfSgxOCk7bD0wfHdlKGwpLHA9MHxhW20+PjJdLGw7KTB8cHx8KERUKHcsbCxmKSxrcmUodyxsLGMsbSxBKSksbD0xOTUwNTk7cmV0dXJuIGxlPWIsMHxwfSxkeW5DYWxsX2Q6ZnVuY3Rpb24gdmZlKGwpe3JldHVybitoOFsx''@;'; + put 'put ''JihsfD0wKV0oKX0sZHluQ2FsbF9kZGRkOmZ1bmN0aW9uIE9jKGwsYyxmLHApe3JldHVybitzd1s3JihsfD0wKV0oKyhjPStjKSwrKGY9K2YpLCsocD0rcCkpfSxkeW5DYWxsX2RpOmZ1bmN0aW9uIEokKGwsYyl7cmV0dXJuK3JxWzEmKGx8PTApXSgwfChjfD0wKSl9LGR5bkNhbGxfaTpmdW5j''@;'; + put 'put ''dGlvbiBzNChsKXtyZXR1cm4gMHwkMVszJihsfD0wKV0oKX0sZHluQ2FsbF9paTpmdW5jdGlvbiB1NChsLGMpe3JldHVybiAwfF9vWzYzJihsfD0wKV0oMHwoY3w9MCkpfSxkeW5DYWxsX2lpaTpmdW5jdGlvbiBBZmUobCxjLGYpe3JldHVybiAwfEJpWzEyNyYobHw9MCldKDB8KGN8PTApLDB8''@;'; + put 'put ''KGZ8PTApKX0sZHluQ2FsbF9paWlkZDpmdW5jdGlvbiB5ZmUobCxjLGYscCxtKXtyZXR1cm4gMHxkOFszJihsfD0wKV0oMHwoY3w9MCksMHwoZnw9MCksKyhwPStwKSwrKG09K20pKX0sZHluQ2FsbF9paWlpOmZ1bmN0aW9uIFlqKGwsYyxmLHApe3JldHVybiAwfG1pWzYzJihsfD0wKV0oMHwo''@;'; + put 'put ''Y3w9MCksMHwoZnw9MCksMHwocHw9MCkpfSxkeW5DYWxsX2lpaWlpOmZ1bmN0aW9uIG5zKGwsYyxmLHAsbSl7cmV0dXJuIDB8cTBbMTI3JihsfD0wKV0oMHwoY3w9MCksMHwoZnw9MCksMHwocHw9MCksMHwobXw9MCkpfSxkeW5DYWxsX2lpaWlpaTpmdW5jdGlvbiBjdihsLGMsZixwLG0sQSl7''@;'; + put 'put ''cmV0dXJuIDB8UjJbMTI3JihsfD0wKV0oMHwoY3w9MCksMHwoZnw9MCksMHwocHw9MCksMHwobXw9MCksMHwoQXw9MCkpfSxkeW5DYWxsX2lpaWlpaWk6ZnVuY3Rpb24gd2ZlKGwsYyxmLHAsbSxBLHcpe3JldHVybiAwfG8zWzEmKGx8PTApXSgwfChjfD0wKSwwfChmfD0wKSwwfChwfD0wKSww''@;'; + put 'put ''fChtfD0wKSwwfChBfD0wKSwwfCh3fD0wKSl9LGR5bkNhbGxfaWlpaWlpaWlpaWk6ZnVuY3Rpb24gYmZlKGwsYyxmLHAsbSxBLHcsYixrLE0sRCl7cmV0dXJuIDB8WGpbMyYobHw9MCldKDB8KGN8PTApLDB8KGZ8PTApLDB8KHB8PTApLDB8KG18PTApLDB8KEF8PTApLDB8KHd8PTApLDB8KGJ8''@;'; + put 'put ''PTApLDB8KGt8PTApLDB8KE18PTApLDB8KER8PTApKX0sZHluQ2FsbF92OmZ1bmN0aW9uIFgkKGwpe2lxWzE1JihsfD0wKV0oKX0sZHluQ2FsbF92aTpmdW5jdGlvbiBvUyhsLGMpe0NvWzEyNyYobHw9MCldKDB8KGN8PTApKX0sZHluQ2FsbF92aWk6ZnVuY3Rpb24gREwobCxjLGYpe0dzWzYz''@;'; + put 'put ''JihsfD0wKV0oMHwoY3w9MCksMHwoZnw9MCkpfSxkeW5DYWxsX3ZpaWk6ZnVuY3Rpb24gSyQobCxjLGYscCl7ZGxbMTI3JihsfD0wKV0oMHwoY3w9MCksMHwoZnw9MCksMHwocHw9MCkpfSxkeW5DYWxsX3ZpaWlkZGk6ZnVuY3Rpb24gJCQobCxjLGYscCxtLEEsdyl7dXdbMTUmKGx8PTApXSgw''@;'; + put 'put ''fChjfD0wKSwwfChmfD0wKSwwfChwfD0wKSwrKG09K20pLCsoQT0rQSksMHwod3w9MCkpfSxkeW5DYWxsX3ZpaWlpOmZ1bmN0aW9uIHEkKGwsYyxmLHAsbSl7UmNbMzEmKGx8PTApXSgwfChjfD0wKSwwfChmfD0wKSwwfChwfD0wKSwwfChtfD0wKSl9LGR5bkNhbGxfdmlpaWlpOmZ1bmN0aW9u''@;'; + put 'put ''IG93KGwsYyxmLHAsbSxBKXtwOFsxNSYobHw9MCldKDB8KGN8PTApLDB8KGZ8PTApLDB8KHB8PTApLDB8KG18PTApLDB8KEF8PTApKX0sZHluQ2FsbF92aWlpaWlpOmZ1bmN0aW9uIGF3KGwsYyxmLHAsbSxBLHcpe2h2WzE1JihsfD0wKV0oMHwoY3w9MCksMHwoZnw9MCksMHwocHw9MCksMHwo''@;'; + put 'put ''bXw9MCksMHwoQXw9MCksMHwod3w9MCkpfSxkeW5DYWxsX3ZpaWlpaWlpaWk6ZnVuY3Rpb24gVWoobCxjLGYscCxtLEEsdyxiLGssTSl7bFNbMCYobHw9MCldKDB8KGN8PTApLDB8KGZ8PTApLDB8KHB8PTApLDB8KG18PTApLDB8KEF8PTApLDB8KHd8PTApLDB8KGJ8PTApLDB8KGt8PTApLDB8''@;'; + put 'put ''KE18PTApKX0sZXN0YWJsaXNoU3RhY2tTcGFjZTpmdW5jdGlvbiBxcmUobCxjKXtsZT1sfD0wLDB9LGdldFRlbXBSZXQwOmZ1bmN0aW9uIGVpZSgpe3JldHVybiAwfERufSxydW5Qb3N0U2V0czpmdW5jdGlvbiBwZmUoKXt9LHNldFRlbXBSZXQwOmZ1bmN0aW9uIENXKGwpe0RuPWx8PTB9LHNl''@;'; + put 'put ''dFRocmV3OmZ1bmN0aW9uIF9XKGwsYyl7TW58fChNbj1sfD0wLHhuPWN8PTApfSxzdGFja0FsbG9jOmZ1bmN0aW9uICRyZShsKXt2YXIgYztyZXR1cm4gYz1sZSxsZT0xNSsobGU9bGUrKGx8PTApfDApJi0xNiwwfGN9LHN0YWNrUmVzdG9yZTpmdW5jdGlvbiBsYyhsKXtsZT1sfD0wfSxzdGFj''@;'; + put 'put ''a1NhdmU6ZnVuY3Rpb24gYlcoKXtyZXR1cm4gMHxsZX19fShaLmFzbUdsb2JhbEFyZyxaLmFzbUxpYnJhcnlBcmcsb24pLGViPShaLl9fX2Vycm5vX2xvY2F0aW9uPUtvLl9fX2Vycm5vX2xvY2F0aW9uLFouX19fbXVsZGkzPUtvLl9fX211bGRpMyxaLl9fX3VkaXZkaTM9S28uX19fdWRpdmRp''@;'; + put 'put ''MyxaLl9fX3VyZW1kaTM9S28uX19fdXJlbWRpMyxaLl9iaXRzaGlmdDY0QXNocj1Lby5fYml0c2hpZnQ2NEFzaHIsWi5fYml0c2hpZnQ2NExzaHI9S28uX2JpdHNoaWZ0NjRMc2hyLFouX2JpdHNoaWZ0NjRTaGw9S28uX2JpdHNoaWZ0NjRTaGwsWi5fZHRleHRyYWN0PUtvLl9kdGV4dHJhY3Qs''@;'; + put 'put ''Wi5fZnJlZT1Lby5fZnJlZSksenA9KFouX2h0b25zPUtvLl9odG9ucyxaLl9pNjRBZGQ9S28uX2k2NEFkZCxaLl9pNjRTdWJ0cmFjdD1Lby5faTY0U3VidHJhY3QsWi5fbGx2bV9ic3dhcF9pMTY9S28uX2xsdm1fYnN3YXBfaTE2LFouX2xsdm1fYnN3YXBfaTMyPUtvLl9sbHZtX2Jzd2FwX2kz''@;'; + put 'put ''MixaLl9tYWxsb2M9S28uX21hbGxvYyksV2c9Wi5fbWVtYWxpZ249S28uX21lbWFsaWduLFlnPShaLl9tZW1jcHk9S28uX21lbWNweSxaLl9tZW1tb3ZlPUtvLl9tZW1tb3ZlLFouX21lbXNldD1Lby5fbWVtc2V0KSxRZz0oWi5fcmVhbGxvYz1Lby5fcmVhbGxvYyxaLl9zYXZlU2V0am1wPUtv''@;'; + put 'put ''Ll9zYXZlU2V0am1wLFouX3Nicms9S28uX3NicmssWi5fdGVzdFNldGptcD1Lby5fdGVzdFNldGptcCxaLl92aXpDcmVhdGVGaWxlPUtvLl92aXpDcmVhdGVGaWxlLFouX3Zpekxhc3RFcnJvck1lc3NhZ2U9S28uX3Zpekxhc3RFcnJvck1lc3NhZ2UsWi5fdml6UmVuZGVyRnJvbVN0cmluZz1L''@;'; + put 'put ''by5fdml6UmVuZGVyRnJvbVN0cmluZyxaLmVzdGFibGlzaFN0YWNrU3BhY2U9S28uZXN0YWJsaXNoU3RhY2tTcGFjZSxaLmdldFRlbXBSZXQwPUtvLmdldFRlbXBSZXQwLFoucnVuUG9zdFNldHM9S28ucnVuUG9zdFNldHMsWi5zZXRUZW1wUmV0MD1Lby5zZXRUZW1wUmV0MCxaLnNldFRocmV3''@;'; + put 'put ''PUtvLnNldFRocmV3LFouc3RhY2tBbGxvYz1Lby5zdGFja0FsbG9jKSxXcD1aLnN0YWNrUmVzdG9yZT1Lby5zdGFja1Jlc3RvcmUsUXM9Wi5zdGFja1NhdmU9S28uc3RhY2tTYXZlO2lmKFouZHluQ2FsbF9kPUtvLmR5bkNhbGxfZCxaLmR5bkNhbGxfZGRkZD1Lby5keW5DYWxsX2RkZGQsWi5k''@;'; + put 'put ''eW5DYWxsX2RpPUtvLmR5bkNhbGxfZGksWi5keW5DYWxsX2k9S28uZHluQ2FsbF9pLFouZHluQ2FsbF9paT1Lby5keW5DYWxsX2lpLFouZHluQ2FsbF9paWk9S28uZHluQ2FsbF9paWksWi5keW5DYWxsX2lpaWRkPUtvLmR5bkNhbGxfaWlpZGQsWi5keW5DYWxsX2lpaWk9S28uZHluQ2FsbF9p''@;'; + put 'put ''aWlpLFouZHluQ2FsbF9paWlpaT1Lby5keW5DYWxsX2lpaWlpLFouZHluQ2FsbF9paWlpaWk9S28uZHluQ2FsbF9paWlpaWksWi5keW5DYWxsX2lpaWlpaWk9S28uZHluQ2FsbF9paWlpaWlpLFouZHluQ2FsbF9paWlpaWlpaWlpaT1Lby5keW5DYWxsX2lpaWlpaWlpaWlpLFouZHluQ2FsbF92''@;'; + put 'put ''PUtvLmR5bkNhbGxfdixaLmR5bkNhbGxfdmk9S28uZHluQ2FsbF92aSxaLmR5bkNhbGxfdmlpPUtvLmR5bkNhbGxfdmlpLFouZHluQ2FsbF92aWlpPUtvLmR5bkNhbGxfdmlpaSxaLmR5bkNhbGxfdmlpaWRkaT1Lby5keW5DYWxsX3ZpaWlkZGksWi5keW5DYWxsX3ZpaWlpPUtvLmR5bkNhbGxf''@;'; + put 'put ''dmlpaWksWi5keW5DYWxsX3ZpaWlpaT1Lby5keW5DYWxsX3ZpaWlpaSxaLmR5bkNhbGxfdmlpaWlpaT1Lby5keW5DYWxsX3ZpaWlpaWksWi5keW5DYWxsX3ZpaWlpaWlpaWk9S28uZHluQ2FsbF92aWlpaWlpaWlpLFouYXNtPUtvLFouY2NhbGw9eCxaLlBvaW50ZXJfc3RyaW5naWZ5PUYsWi5V''@;'; + put 'put ''VEY4VG9TdHJpbmc9RGUsRW8paWYoY2EoRW8pfHwoImZ1bmN0aW9uIj09dHlwZW9mIFoubG9jYXRlRmlsZT9Fbz1aLmxvY2F0ZUZpbGUoRW8pOloubWVtb3J5SW5pdGlhbGl6ZXJQcmVmaXhVUkwmJihFbz1aLm1lbW9yeUluaXRpYWxpemVyUHJlZml4VVJMK0VvKSksTnx8ZWUpe3ZhciBOMT1a''@;'; + put 'put ''LnJlYWRCaW5hcnkoRW8pO3R0LnNldChOMSxUZSl9ZWxzZXtsZXQgcHQ9ZnVuY3Rpb24oKXtaLnJlYWRBc3luYyhFbyxfaCxmdW5jdGlvbigpe3Rocm93ImNvdWxkIG5vdCBsb2FkIG1lbW9yeSBpbml0aWFsaXplciAiK0VvfSl9O0RpKCk7dmFyIF9oPWZ1bmN0aW9uKEl0KXtJdC5ieXRlTGVu''@;'; + put 'put ''Z3RoJiYoSXQ9bmV3IFVpbnQ4QXJyYXkoSXQpKSx0dC5zZXQoSXQsVGUpLFoubWVtb3J5SW5pdGlhbGl6ZXJSZXF1ZXN0JiZkZWxldGUgWi5tZW1vcnlJbml0aWFsaXplclJlcXVlc3QucmVzcG9uc2UsVzAoKX0sQWQ9VXUoRW8pO2lmKEFkKV9oKEFkLmJ1ZmZlcik7ZWxzZSBpZihaLm1lbW9y''@;'; + put 'put ''eUluaXRpYWxpemVyUmVxdWVzdCl7bGV0IEl0PWZ1bmN0aW9uKCl7dmFyIFB0PVoubWVtb3J5SW5pdGlhbGl6ZXJSZXF1ZXN0LGZlPVB0LnJlc3BvbnNlO2lmKDIwMCE9PVB0LnN0YXR1cyYmMCE9PVB0LnN0YXR1cyl7dmFyIGl0PVV1KFoubWVtb3J5SW5pdGlhbGl6ZXJSZXF1ZXN0VVJMKTtp''@;'; + put 'put ''ZighaXQpcmV0dXJuIGNvbnNvbGUud2FybigiYSBwcm9ibGVtIHNlZW1zIHRvIGhhdmUgaGFwcGVuZWQgd2l0aCBNb2R1bGUubWVtb3J5SW5pdGlhbGl6ZXJSZXF1ZXN0LCBzdGF0dXM6ICIrUHQuc3RhdHVzKyIsIHJldHJ5aW5nICIrRW8pLHZvaWQgcHQoKTtmZT1pdC5idWZmZXJ9X2goZmUp''@;'; + put 'put ''fTtaLm1lbW9yeUluaXRpYWxpemVyUmVxdWVzdC5yZXNwb25zZT9zZXRUaW1lb3V0KEl0LDApOloubWVtb3J5SW5pdGlhbGl6ZXJSZXF1ZXN0LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLEl0KX1lbHNlIHB0KCl9ZnVuY3Rpb24gQ2EocHQpe3RoaXMubmFtZT0iRXhpdFN0YXR1cyIsdGhpcy5t''@;'; + put 'put ''ZXNzYWdlPSJQcm9ncmFtIHRlcm1pbmF0ZWQgd2l0aCBleGl0KCIrcHQrIikiLHRoaXMuc3RhdHVzPXB0fWZ1bmN0aW9uIHFnKHB0KXtmdW5jdGlvbiBJdCgpe1ouY2FsbGVkUnVufHwoWi5jYWxsZWRSdW49ITAsIUVlJiYoS24oKSxOdCgpLFoub25SdW50aW1lSW5pdGlhbGl6ZWQmJloub25S''@;'; + put 'put ''dW50aW1lSW5pdGlhbGl6ZWQoKSxVbigpKSl9cHQ9cHR8fFouYXJndW1lbnRzLG4wPjB8fChwbigpLG4wPjApfHxaLmNhbGxlZFJ1bnx8KFouc2V0U3RhdHVzPyhaLnNldFN0YXR1cygiUnVubmluZy4uLiIpLHNldFRpbWVvdXQoZnVuY3Rpb24oKXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Wi5z''@;'; + put 'put ''ZXRTdGF0dXMoIiIpfSwxKSxJdCgpfSwxKSk6SXQoKSl9ZnVuY3Rpb24gaWIocHQsSXQpe0l0JiZaLm5vRXhpdFJ1bnRpbWUmJjA9PT1wdHx8KFoubm9FeGl0UnVudGltZXx8KEVlPSEwLGduPSRnLHNuKCksWi5vbkV4aXQmJloub25FeGl0KHB0KSksTiYmcHJvY2Vzcy5leGl0KHB0KSxaLnF1''@;'; + put 'put ''aXQocHQsbmV3IENhKHB0KSkpfWZ1bmN0aW9uIGYyKHB0KXt0aHJvdyBaLm9uQWJvcnQmJloub25BYm9ydChwdCksdm9pZCAwIT09cHQ/KFoucHJpbnQocHQpLFoucHJpbnRFcnIocHQpLHB0PUpTT04uc3RyaW5naWZ5KHB0KSk6cHQ9IiIsRWU9ITAsImFib3J0KCIrcHQrIikuIEJ1aWxkIHdp''@;'; + put 'put ''dGggLXMgQVNTRVJUSU9OUz0xIGZvciBtb3JlIGluZm8uIn1pZigoQ2EucHJvdG90eXBlPW5ldyBFcnJvcikuY29uc3RydWN0b3I9Q2EsbTA9ZnVuY3Rpb24gcHQoKXtaLmNhbGxlZFJ1bnx8cWcoKSxaLmNhbGxlZFJ1bnx8KG0wPXB0KX0sWi5ydW49cWcsWi5leGl0PWliLFouYWJvcnQ9ZjIs''@;'; + put 'put ''Wi5wcmVJbml0KWZvcigiZnVuY3Rpb24iPT10eXBlb2YgWi5wcmVJbml0JiYoWi5wcmVJbml0PVtaLnByZUluaXRdKTtaLnByZUluaXQubGVuZ3RoPjA7KVoucHJlSW5pdC5wb3AoKSgpO3JldHVybiBaLm5vRXhpdFJ1bnRpbWU9ITAscWcoKSxafTtmdW5jdGlvbiBFKFEpe3ZhciBxLFo9YXJn''@;'; + put 'put ''dW1lbnRzLmxlbmd0aDw9MXx8dm9pZCAwPT09YXJndW1lbnRzWzFdP3t9OmFyZ3VtZW50c1sxXSxpZT12b2lkIDA9PT1aLmZvcm1hdD8ic3ZnIjpaLmZvcm1hdCxhZT12b2lkIDA9PT1aLmVuZ2luZT8iZG90IjpaLmVuZ2luZSxZPVouc2NhbGUsVz1aLnRvdGFsTWVtb3J5LE49dm9pZCAwPT09''@;'; + put 'put ''Wi5maWxlcz9bXTpaLmZpbGVzLGVlPXZvaWQgMD09PVouaW1hZ2VzP1tdOlouaW1hZ2VzO2ZvcihxPTA7cTxlZS5sZW5ndGg7cSsrKU4ucHVzaCh7cGF0aDplZVtxXS5wYXRoLGRhdGE6Jzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04IiBzdGFuZGFsb25lPSJubyI/PlxuPCFE''@;'; + put 'put ''T0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj5cbjxzdmcgd2lkdGg9IicrZWVbcV0ud2lkdGgrJyIgaGVpZ2h0PSInK2VlW3FdLmhlaWdodCsnIj48L3N2Zz4nfSk7cmV0''@;'; + put 'put ''dXJuInBuZy1pbWFnZS1lbGVtZW50Ij09aWU/RS5zdmdYbWxUb1BuZ0ltYWdlRWxlbWVudChNZShRLCJzdmciLGFlLFcsTiksWSk6TWUoUSxpZSxhZSxXLE4pfWZ1bmN0aW9uIE1lKFEsWixpZSxhZSxZKXt2YXIgTixXPUIoe1RPVEFMX01FTU9SWTphZX0pO2ZvcihOPTA7TjxZLmxlbmd0aDtO''@;'; + put 'put ''KyspVy5jY2FsbCgidml6Q3JlYXRlRmlsZSIsIm51bWJlciIsWyJzdHJpbmciLCJzdHJpbmciXSxbWVtOXS5wYXRoLFlbTl0uZGF0YV0pO3ZhciBlZT1XLmNjYWxsKCJ2aXpSZW5kZXJGcm9tU3RyaW5nIiwibnVtYmVyIixbInN0cmluZyIsInN0cmluZyIsInN0cmluZyJdLFtRLFosaWVdKSxx''@;'; + put 'put ''PVcuUG9pbnRlcl9zdHJpbmdpZnkoZWUpLEo9Vy5jY2FsbCgidml6TGFzdEVycm9yTWVzc2FnZSIsIm51bWJlciIsW10sW10pLHNlPVcuUG9pbnRlcl9zdHJpbmdpZnkoSik7aWYoIiIhPXNlKXRocm93IG5ldyBFcnJvcihzZSk7cmV0dXJuIHF9RS5zdmdYbWxUb1BuZ0ltYWdlRWxlbWVudD1m''@;'; + put 'put ''dW5jdGlvbihRLFosaWUpe3ZvaWQgMD09PVomJihaPSJkZXZpY2VQaXhlbFJhdGlvImluIHdpbmRvdyYmd2luZG93LmRldmljZVBpeGVsUmF0aW8+MT93aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbzoxKTt2YXIgYWU9bmV3IEltYWdlO3RyeXtpZigib2JqZWN0Ij09dHlwZW9mIGZhYnJpYyYmZmFi''@;'; + put 'put ''cmljLmxvYWRTVkdGcm9tU3RyaW5nKWZhYnJpYy5sb2FkU1ZHRnJvbVN0cmluZyhRLGZ1bmN0aW9uKFcsTil7aWYoMD09Vy5sZW5ndGgpe2lmKHZvaWQgMCE9PWllKXJldHVybiB2b2lkIGllKG5ldyBFcnJvcigiRXJyb3IgbG9hZGluZyBTVkcgd2l0aCBGYWJyaWMiKSk7dGhyb3cgbmV3IEVy''@;'; + put 'put ''cm9yKCJFcnJvciBsb2FkaW5nIFNWRyB3aXRoIEZhYnJpYyIpfXZhciBlZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKTtlZS53aWR0aD1OLndpZHRoLGVlLmhlaWdodD1OLmhlaWdodDt2YXIgcT1uZXcgZmFicmljLkNhbnZhcyhlZSx7ZW5hYmxlUmV0aW5hU2NhbGluZzohMX0p''@;'; + put 'put ''LEo9ZmFicmljLnV0aWwuZ3JvdXBTVkdFbGVtZW50cyhXLE4pO3EuYWRkKEopLnJlbmRlckFsbCgpLGFlLnNyYz1xLnRvRGF0YVVSTCh7bXVsdGlwbGllcjpafSksYWUud2lkdGg9Ti53aWR0aCxhZS5oZWlnaHQ9Ti5oZWlnaHQsdm9pZCAwIT09aWUmJmllKG51bGwsYWUpfSk7ZWxzZXt2YXIg''@;'; + put 'put ''WT1uZXcgSW1hZ2U7WS5vbmxvYWQ9ZnVuY3Rpb24oKXt2YXIgVz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKTtXLndpZHRoPVkud2lkdGgqWixXLmhlaWdodD1ZLmhlaWdodCpaLFcuZ2V0Q29udGV4dCgiMmQiKS5kcmF3SW1hZ2UoWSwwLDAsVy53aWR0aCxXLmhlaWdodCksYWUu''@;'; + put 'put ''c3JjPVcudG9EYXRhVVJMKCJpbWFnZS9wbmciKSxhZS53aWR0aD1ZLndpZHRoLGFlLmhlaWdodD1ZLmhlaWdodCx2b2lkIDAhPT1pZSYmaWUobnVsbCxhZSl9LFkub25lcnJvcj1mdW5jdGlvbihXKXt2YXIgTjtpZihOPSJlcnJvciJpbiBXP1cuZXJyb3I6bmV3IEVycm9yKCJFcnJvciBsb2Fk''@;'; + put 'put ''aW5nIFNWRyIpLHZvaWQgMD09PWllKXRocm93IE47aWUoTil9LFkuc3JjPSJkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LCIrZnVuY3Rpb24gVShRKXtyZXR1cm4gYnRvYShlbmNvZGVVUklDb21wb25lbnQoUSkucmVwbGFjZSgvJShbMC05QS1GXXsyfSkvZyxmdW5jdGlvbihaLGllKXtyZXR1''@;'; + put 'put ''cm4gU3RyaW5nLmZyb21DaGFyQ29kZSgiMHgiK2llKX0pKX0oUSl9fWNhdGNoKFcpe2lmKHZvaWQgMD09PWllKXRocm93IFc7aWUoVyl9aWYodm9pZCAwPT09aWUpcmV0dXJuIGFlfSxFLnN2Z1htbFRvUG5nQmFzZTY0PWZ1bmN0aW9uKFEsWixpZSl7RS5zdmdYbWxUb1BuZ0ltYWdlRWxlbWVu''@;'; + put 'put ''dChRLFosZnVuY3Rpb24oYWUsWSl7YWU/aWUoYWUpOmllKG51bGwsWS5zcmMuc2xpY2UoMjIpKX0pfSxYZS5leHBvcnRzPUV9KCl9LDg4NTgzOigpPT57InVzZSBzdHJpY3QiOyFmdW5jdGlvbihDdCl7Y29uc3QgZnQ9Q3QucGVyZm9ybWFuY2U7ZnVuY3Rpb24gSHQobW4pe2Z0JiZmdC5tYXJr''@;'; + put 'put ''JiZmdC5tYXJrKG1uKX1mdW5jdGlvbiBHZShtbix1bil7ZnQmJmZ0Lm1lYXN1cmUmJmZ0Lm1lYXN1cmUobW4sdW4pfUh0KCJab25lIik7Y29uc3QgVWU9Q3QuX19ab25lX3N5bWJvbF9wcmVmaXh8fCJfX3pvbmVfc3ltYm9sX18iO2Z1bmN0aW9uIHl0KG1uKXtyZXR1cm4gVWUrbW59Y29uc3Qg''@;'; + put 'put ''anQ9ITA9PT1DdFt5dCgiZm9yY2VEdXBsaWNhdGVab25lQ2hlY2siKV07aWYoQ3QuWm9uZSl7aWYoanR8fCJmdW5jdGlvbiIhPXR5cGVvZiBDdC5ab25lLl9fc3ltYm9sX18pdGhyb3cgbmV3IEVycm9yKCJab25lIGFscmVhZHkgbG9hZGVkLiIpO3JldHVybiBDdC5ab25lfWxldCBRdD0oKCk9''@;'; + put 'put ''PntjbGFzcyBtbntjb25zdHJ1Y3Rvcihjbixfbil7dGhpcy5fcGFyZW50PWNuLHRoaXMuX25hbWU9X24/X24ubmFtZXx8InVubmFtZWQiOiI8cm9vdD4iLHRoaXMuX3Byb3BlcnRpZXM9X24mJl9uLnByb3BlcnRpZXN8fHt9LHRoaXMuX3pvbmVEZWxlZ2F0ZT1uZXcgZG4odGhpcyx0aGlzLl9w''@;'; + put 'put ''YXJlbnQmJnRoaXMuX3BhcmVudC5fem9uZURlbGVnYXRlLF9uKX1zdGF0aWMgYXNzZXJ0Wm9uZVBhdGNoZWQoKXtpZihDdC5Qcm9taXNlIT09d24uWm9uZUF3YXJlUHJvbWlzZSl0aHJvdyBuZXcgRXJyb3IoIlpvbmUuanMgaGFzIGRldGVjdGVkIHRoYXQgWm9uZUF3YXJlUHJvbWlzZSBgKHdp''@;'; + put 'put ''bmRvd3xnbG9iYWwpLlByb21pc2VgIGhhcyBiZWVuIG92ZXJ3cml0dGVuLlxuTW9zdCBsaWtlbHkgY2F1c2UgaXMgdGhhdCBhIFByb21pc2UgcG9seWZpbGwgaGFzIGJlZW4gbG9hZGVkIGFmdGVyIFpvbmUuanMgKFBvbHlmaWxsaW5nIFByb21pc2UgYXBpIGlzIG5vdCBuZWNlc3Nhcnkgd2hl''@;'; + put 'put ''biB6b25lLmpzIGlzIGxvYWRlZC4gSWYgeW91IG11c3QgbG9hZCBvbmUsIGRvIHNvIGJlZm9yZSBsb2FkaW5nIHpvbmUuanMuKSIpfXN0YXRpYyBnZXQgcm9vdCgpe2xldCBjbj1tbi5jdXJyZW50O2Zvcig7Y24ucGFyZW50Oyljbj1jbi5wYXJlbnQ7cmV0dXJuIGNufXN0YXRpYyBnZXQgY3Vy''@;'; + put 'put ''cmVudCgpe3JldHVybiB6bi56b25lfXN0YXRpYyBnZXQgY3VycmVudFRhc2soKXtyZXR1cm4gVHJ9c3RhdGljIF9fbG9hZF9wYXRjaChjbixfbixHdD0hMSl7aWYod24uaGFzT3duUHJvcGVydHkoY24pKXtpZighR3QmJmp0KXRocm93IEVycm9yKCJBbHJlYWR5IGxvYWRlZCBwYXRjaDogIitj''@;'; + put 'put ''bil9ZWxzZSBpZighQ3RbIl9fWm9uZV9kaXNhYmxlXyIrY25dKXtjb25zdCBrbj0iWm9uZToiK2NuO0h0KGtuKSx3bltjbl09X24oQ3QsbW4sdG4pLEdlKGtuLGtuKX19Z2V0IHBhcmVudCgpe3JldHVybiB0aGlzLl9wYXJlbnR9Z2V0IG5hbWUoKXtyZXR1cm4gdGhpcy5fbmFtZX1nZXQoY24p''@;'; + put 'put ''e2NvbnN0IF9uPXRoaXMuZ2V0Wm9uZVdpdGgoY24pO2lmKF9uKXJldHVybiBfbi5fcHJvcGVydGllc1tjbl19Z2V0Wm9uZVdpdGgoY24pe2xldCBfbj10aGlzO2Zvcig7X247KXtpZihfbi5fcHJvcGVydGllcy5oYXNPd25Qcm9wZXJ0eShjbikpcmV0dXJuIF9uO19uPV9uLl9wYXJlbnR9cmV0''@;'; + put 'put ''dXJuIG51bGx9Zm9yayhjbil7aWYoIWNuKXRocm93IG5ldyBFcnJvcigiWm9uZVNwZWMgcmVxdWlyZWQhIik7cmV0dXJuIHRoaXMuX3pvbmVEZWxlZ2F0ZS5mb3JrKHRoaXMsY24pfXdyYXAoY24sX24pe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBjbil0aHJvdyBuZXcgRXJyb3IoIkV4cGVjdGlu''@;'; + put 'put ''ZyBmdW5jdGlvbiBnb3Q6ICIrY24pO2NvbnN0IEd0PXRoaXMuX3pvbmVEZWxlZ2F0ZS5pbnRlcmNlcHQodGhpcyxjbixfbiksa249dGhpcztyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4ga24ucnVuR3VhcmRlZChHdCx0aGlzLGFyZ3VtZW50cyxfbil9fXJ1bihjbixfbixHdCxrbil7em49e3Bh''@;'; + put 'put ''cmVudDp6bix6b25lOnRoaXN9O3RyeXtyZXR1cm4gdGhpcy5fem9uZURlbGVnYXRlLmludm9rZSh0aGlzLGNuLF9uLEd0LGtuKX1maW5hbGx5e3puPXpuLnBhcmVudH19cnVuR3VhcmRlZChjbixfbj1udWxsLEd0LGtuKXt6bj17cGFyZW50OnpuLHpvbmU6dGhpc307dHJ5e3RyeXtyZXR1cm4g''@;'; + put 'put ''dGhpcy5fem9uZURlbGVnYXRlLmludm9rZSh0aGlzLGNuLF9uLEd0LGtuKX1jYXRjaChWbil7aWYodGhpcy5fem9uZURlbGVnYXRlLmhhbmRsZUVycm9yKHRoaXMsVm4pKXRocm93IFZufX1maW5hbGx5e3puPXpuLnBhcmVudH19cnVuVGFzayhjbixfbixHdCl7aWYoY24uem9uZSE9dGhpcyl0''@;'; + put 'put ''aHJvdyBuZXcgRXJyb3IoIkEgdGFzayBjYW4gb25seSBiZSBydW4gaW4gdGhlIHpvbmUgb2YgY3JlYXRpb24hIChDcmVhdGlvbjogIisoY24uem9uZXx8cHIpLm5hbWUrIjsgRXhlY3V0aW9uOiAiK3RoaXMubmFtZSsiKSIpO2lmKGNuLnN0YXRlPT09bnImJihjbi50eXBlPT09VW58fGNuLnR5''@;'; + put 'put ''cGU9PT1zbikpcmV0dXJuO2NvbnN0IGtuPWNuLnN0YXRlIT1XdDtrbiYmY24uX3RyYW5zaXRpb25UbyhXdCxxbiksY24ucnVuQ291bnQrKztjb25zdCBWbj1UcjtUcj1jbix6bj17cGFyZW50OnpuLHpvbmU6dGhpc307dHJ5e2NuLnR5cGU9PXNuJiZjbi5kYXRhJiYhY24uZGF0YS5pc1Blcmlv''@;'; + put 'put ''ZGljJiYoY24uY2FuY2VsRm49dm9pZCAwKTt0cnl7cmV0dXJuIHRoaXMuX3pvbmVEZWxlZ2F0ZS5pbnZva2VUYXNrKHRoaXMsY24sX24sR3QpfWNhdGNoKGVuKXtpZih0aGlzLl96b25lRGVsZWdhdGUuaGFuZGxlRXJyb3IodGhpcyxlbikpdGhyb3cgZW59fWZpbmFsbHl7Y24uc3RhdGUhPT1u''@;'; + put 'put ''ciYmY24uc3RhdGUhPT1LbiYmKGNuLnR5cGU9PVVufHxjbi5kYXRhJiZjbi5kYXRhLmlzUGVyaW9kaWM/a24mJmNuLl90cmFuc2l0aW9uVG8ocW4sV3QpOihjbi5ydW5Db3VudD0wLHRoaXMuX3VwZGF0ZVRhc2tDb3VudChjbiwtMSksa24mJmNuLl90cmFuc2l0aW9uVG8obnIsV3QsbnIpKSks''@;'; + put 'put ''em49em4ucGFyZW50LFRyPVZufX1zY2hlZHVsZVRhc2soY24pe2lmKGNuLnpvbmUmJmNuLnpvbmUhPT10aGlzKXtsZXQgR3Q9dGhpcztmb3IoO0d0Oyl7aWYoR3Q9PT1jbi56b25lKXRocm93IEVycm9yKGBjYW4gbm90IHJlc2NoZWR1bGUgdGFzayB0byAke3RoaXMubmFtZX0gd2hpY2ggaXMg''@;'; + put 'put ''ZGVzY2VuZGFudHMgb2YgdGhlIG9yaWdpbmFsIHpvbmUgJHtjbi56b25lLm5hbWV9YCk7R3Q9R3QucGFyZW50fX1jbi5fdHJhbnNpdGlvblRvKEFuLG5yKTtjb25zdCBfbj1bXTtjbi5fem9uZURlbGVnYXRlcz1fbixjbi5fem9uZT10aGlzO3RyeXtjbj10aGlzLl96b25lRGVsZWdhdGUuc2No''@;'; + put 'put ''ZWR1bGVUYXNrKHRoaXMsY24pfWNhdGNoKEd0KXt0aHJvdyBjbi5fdHJhbnNpdGlvblRvKEtuLEFuLG5yKSx0aGlzLl96b25lRGVsZWdhdGUuaGFuZGxlRXJyb3IodGhpcyxHdCksR3R9cmV0dXJuIGNuLl96b25lRGVsZWdhdGVzPT09X24mJnRoaXMuX3VwZGF0ZVRhc2tDb3VudChjbiwxKSxj''@;'; + put 'put ''bi5zdGF0ZT09QW4mJmNuLl90cmFuc2l0aW9uVG8ocW4sQW4pLGNufXNjaGVkdWxlTWljcm9UYXNrKGNuLF9uLEd0LGtuKXtyZXR1cm4gdGhpcy5zY2hlZHVsZVRhc2sobmV3IHluKE50LGNuLF9uLEd0LGtuLHZvaWQgMCkpfXNjaGVkdWxlTWFjcm9UYXNrKGNuLF9uLEd0LGtuLFZuKXtyZXR1''@;'; + put 'put ''cm4gdGhpcy5zY2hlZHVsZVRhc2sobmV3IHluKHNuLGNuLF9uLEd0LGtuLFZuKSl9c2NoZWR1bGVFdmVudFRhc2soY24sX24sR3Qsa24sVm4pe3JldHVybiB0aGlzLnNjaGVkdWxlVGFzayhuZXcgeW4oVW4sY24sX24sR3Qsa24sVm4pKX1jYW5jZWxUYXNrKGNuKXtpZihjbi56b25lIT10aGlz''@;'; + put 'put ''KXRocm93IG5ldyBFcnJvcigiQSB0YXNrIGNhbiBvbmx5IGJlIGNhbmNlbGxlZCBpbiB0aGUgem9uZSBvZiBjcmVhdGlvbiEgKENyZWF0aW9uOiAiKyhjbi56b25lfHxwcikubmFtZSsiOyBFeGVjdXRpb246ICIrdGhpcy5uYW1lKyIpIik7Y24uX3RyYW5zaXRpb25UbyhwbixxbixXdCk7dHJ5''@;'; + put 'put ''e3RoaXMuX3pvbmVEZWxlZ2F0ZS5jYW5jZWxUYXNrKHRoaXMsY24pfWNhdGNoKF9uKXt0aHJvdyBjbi5fdHJhbnNpdGlvblRvKEtuLHBuKSx0aGlzLl96b25lRGVsZWdhdGUuaGFuZGxlRXJyb3IodGhpcyxfbiksX259cmV0dXJuIHRoaXMuX3VwZGF0ZVRhc2tDb3VudChjbiwtMSksY24uX3Ry''@;'; + put 'put ''YW5zaXRpb25UbyhucixwbiksY24ucnVuQ291bnQ9MCxjbn1fdXBkYXRlVGFza0NvdW50KGNuLF9uKXtjb25zdCBHdD1jbi5fem9uZURlbGVnYXRlczstMT09X24mJihjbi5fem9uZURlbGVnYXRlcz1udWxsKTtmb3IobGV0IGtuPTA7a248R3QubGVuZ3RoO2tuKyspR3Rba25dLl91cGRhdGVU''@;'; + put 'put ''YXNrQ291bnQoY24udHlwZSxfbil9fXJldHVybiBtbi5fX3N5bWJvbF9fPXl0LG1ufSkoKTtjb25zdCBnbj17bmFtZToiIixvbkhhc1Rhc2s6KG1uLHVuLGNuLF9uKT0+bW4uaGFzVGFzayhjbixfbiksb25TY2hlZHVsZVRhc2s6KG1uLHVuLGNuLF9uKT0+bW4uc2NoZWR1bGVUYXNrKGNuLF9u''@;'; + put 'put ''KSxvbkludm9rZVRhc2s6KG1uLHVuLGNuLF9uLEd0LGtuKT0+bW4uaW52b2tlVGFzayhjbixfbixHdCxrbiksb25DYW5jZWxUYXNrOihtbix1bixjbixfbik9Pm1uLmNhbmNlbFRhc2soY24sX24pfTtjbGFzcyBkbntjb25zdHJ1Y3Rvcih1bixjbixfbil7dGhpcy5fdGFza0NvdW50cz17bWlj''@;'; + put 'put ''cm9UYXNrOjAsbWFjcm9UYXNrOjAsZXZlbnRUYXNrOjB9LHRoaXMuem9uZT11bix0aGlzLl9wYXJlbnREZWxlZ2F0ZT1jbix0aGlzLl9mb3JrWlM9X24mJihfbiYmX24ub25Gb3JrP19uOmNuLl9mb3JrWlMpLHRoaXMuX2ZvcmtEbGd0PV9uJiYoX24ub25Gb3JrP2NuOmNuLl9mb3JrRGxndCks''@;'; + put 'put ''dGhpcy5fZm9ya0N1cnJab25lPV9uJiYoX24ub25Gb3JrP3RoaXMuem9uZTpjbi5fZm9ya0N1cnJab25lKSx0aGlzLl9pbnRlcmNlcHRaUz1fbiYmKF9uLm9uSW50ZXJjZXB0P19uOmNuLl9pbnRlcmNlcHRaUyksdGhpcy5faW50ZXJjZXB0RGxndD1fbiYmKF9uLm9uSW50ZXJjZXB0P2NuOmNu''@;'; + put 'put ''Ll9pbnRlcmNlcHREbGd0KSx0aGlzLl9pbnRlcmNlcHRDdXJyWm9uZT1fbiYmKF9uLm9uSW50ZXJjZXB0P3RoaXMuem9uZTpjbi5faW50ZXJjZXB0Q3VyclpvbmUpLHRoaXMuX2ludm9rZVpTPV9uJiYoX24ub25JbnZva2U/X246Y24uX2ludm9rZVpTKSx0aGlzLl9pbnZva2VEbGd0PV9uJiYo''@;'; + put 'put ''X24ub25JbnZva2U/Y246Y24uX2ludm9rZURsZ3QpLHRoaXMuX2ludm9rZUN1cnJab25lPV9uJiYoX24ub25JbnZva2U/dGhpcy56b25lOmNuLl9pbnZva2VDdXJyWm9uZSksdGhpcy5faGFuZGxlRXJyb3JaUz1fbiYmKF9uLm9uSGFuZGxlRXJyb3I/X246Y24uX2hhbmRsZUVycm9yWlMpLHRo''@;'; + put 'put ''aXMuX2hhbmRsZUVycm9yRGxndD1fbiYmKF9uLm9uSGFuZGxlRXJyb3I/Y246Y24uX2hhbmRsZUVycm9yRGxndCksdGhpcy5faGFuZGxlRXJyb3JDdXJyWm9uZT1fbiYmKF9uLm9uSGFuZGxlRXJyb3I/dGhpcy56b25lOmNuLl9oYW5kbGVFcnJvckN1cnJab25lKSx0aGlzLl9zY2hlZHVsZVRh''@;'; + put 'put ''c2taUz1fbiYmKF9uLm9uU2NoZWR1bGVUYXNrP19uOmNuLl9zY2hlZHVsZVRhc2taUyksdGhpcy5fc2NoZWR1bGVUYXNrRGxndD1fbiYmKF9uLm9uU2NoZWR1bGVUYXNrP2NuOmNuLl9zY2hlZHVsZVRhc2tEbGd0KSx0aGlzLl9zY2hlZHVsZVRhc2tDdXJyWm9uZT1fbiYmKF9uLm9uU2NoZWR1''@;'; + put 'put ''bGVUYXNrP3RoaXMuem9uZTpjbi5fc2NoZWR1bGVUYXNrQ3VyclpvbmUpLHRoaXMuX2ludm9rZVRhc2taUz1fbiYmKF9uLm9uSW52b2tlVGFzaz9fbjpjbi5faW52b2tlVGFza1pTKSx0aGlzLl9pbnZva2VUYXNrRGxndD1fbiYmKF9uLm9uSW52b2tlVGFzaz9jbjpjbi5faW52b2tlVGFza0Rs''@;'; + put 'put ''Z3QpLHRoaXMuX2ludm9rZVRhc2tDdXJyWm9uZT1fbiYmKF9uLm9uSW52b2tlVGFzaz90aGlzLnpvbmU6Y24uX2ludm9rZVRhc2tDdXJyWm9uZSksdGhpcy5fY2FuY2VsVGFza1pTPV9uJiYoX24ub25DYW5jZWxUYXNrP19uOmNuLl9jYW5jZWxUYXNrWlMpLHRoaXMuX2NhbmNlbFRhc2tEbGd0''@;'; + put 'put ''PV9uJiYoX24ub25DYW5jZWxUYXNrP2NuOmNuLl9jYW5jZWxUYXNrRGxndCksdGhpcy5fY2FuY2VsVGFza0N1cnJab25lPV9uJiYoX24ub25DYW5jZWxUYXNrP3RoaXMuem9uZTpjbi5fY2FuY2VsVGFza0N1cnJab25lKSx0aGlzLl9oYXNUYXNrWlM9bnVsbCx0aGlzLl9oYXNUYXNrRGxndD1u''@;'; + put 'put ''dWxsLHRoaXMuX2hhc1Rhc2tEbGd0T3duZXI9bnVsbCx0aGlzLl9oYXNUYXNrQ3VyclpvbmU9bnVsbDtjb25zdCBHdD1fbiYmX24ub25IYXNUYXNrOyhHdHx8Y24mJmNuLl9oYXNUYXNrWlMpJiYodGhpcy5faGFzVGFza1pTPUd0P19uOmduLHRoaXMuX2hhc1Rhc2tEbGd0PWNuLHRoaXMuX2hh''@;'; + put 'put ''c1Rhc2tEbGd0T3duZXI9dGhpcyx0aGlzLl9oYXNUYXNrQ3VyclpvbmU9dW4sX24ub25TY2hlZHVsZVRhc2t8fCh0aGlzLl9zY2hlZHVsZVRhc2taUz1nbix0aGlzLl9zY2hlZHVsZVRhc2tEbGd0PWNuLHRoaXMuX3NjaGVkdWxlVGFza0N1cnJab25lPXRoaXMuem9uZSksX24ub25JbnZva2VU''@;'; + put 'put ''YXNrfHwodGhpcy5faW52b2tlVGFza1pTPWduLHRoaXMuX2ludm9rZVRhc2tEbGd0PWNuLHRoaXMuX2ludm9rZVRhc2tDdXJyWm9uZT10aGlzLnpvbmUpLF9uLm9uQ2FuY2VsVGFza3x8KHRoaXMuX2NhbmNlbFRhc2taUz1nbix0aGlzLl9jYW5jZWxUYXNrRGxndD1jbix0aGlzLl9jYW5jZWxU''@;'; + put 'put ''YXNrQ3VyclpvbmU9dGhpcy56b25lKSl9Zm9yayh1bixjbil7cmV0dXJuIHRoaXMuX2ZvcmtaUz90aGlzLl9mb3JrWlMub25Gb3JrKHRoaXMuX2ZvcmtEbGd0LHRoaXMuem9uZSx1bixjbik6bmV3IFF0KHVuLGNuKX1pbnRlcmNlcHQodW4sY24sX24pe3JldHVybiB0aGlzLl9pbnRlcmNlcHRa''@;'; + put 'put ''Uz90aGlzLl9pbnRlcmNlcHRaUy5vbkludGVyY2VwdCh0aGlzLl9pbnRlcmNlcHREbGd0LHRoaXMuX2ludGVyY2VwdEN1cnJab25lLHVuLGNuLF9uKTpjbn1pbnZva2UodW4sY24sX24sR3Qsa24pe3JldHVybiB0aGlzLl9pbnZva2VaUz90aGlzLl9pbnZva2VaUy5vbkludm9rZSh0aGlzLl9p''@;'; + put 'put ''bnZva2VEbGd0LHRoaXMuX2ludm9rZUN1cnJab25lLHVuLGNuLF9uLEd0LGtuKTpjbi5hcHBseShfbixHdCl9aGFuZGxlRXJyb3IodW4sY24pe3JldHVybiF0aGlzLl9oYW5kbGVFcnJvclpTfHx0aGlzLl9oYW5kbGVFcnJvclpTLm9uSGFuZGxlRXJyb3IodGhpcy5faGFuZGxlRXJyb3JEbGd0''@;'; + put 'put ''LHRoaXMuX2hhbmRsZUVycm9yQ3VyclpvbmUsdW4sY24pfXNjaGVkdWxlVGFzayh1bixjbil7bGV0IF9uPWNuO2lmKHRoaXMuX3NjaGVkdWxlVGFza1pTKXRoaXMuX2hhc1Rhc2taUyYmX24uX3pvbmVEZWxlZ2F0ZXMucHVzaCh0aGlzLl9oYXNUYXNrRGxndE93bmVyKSxfbj10aGlzLl9zY2hl''@;'; + put 'put ''ZHVsZVRhc2taUy5vblNjaGVkdWxlVGFzayh0aGlzLl9zY2hlZHVsZVRhc2tEbGd0LHRoaXMuX3NjaGVkdWxlVGFza0N1cnJab25lLHVuLGNuKSxfbnx8KF9uPWNuKTtlbHNlIGlmKGNuLnNjaGVkdWxlRm4pY24uc2NoZWR1bGVGbihjbik7ZWxzZXtpZihjbi50eXBlIT1OdCl0aHJvdyBuZXcg''@;'; + put 'put ''RXJyb3IoIlRhc2sgaXMgbWlzc2luZyBzY2hlZHVsZUZuLiIpO3hyKGNuKX1yZXR1cm4gX259aW52b2tlVGFzayh1bixjbixfbixHdCl7cmV0dXJuIHRoaXMuX2ludm9rZVRhc2taUz90aGlzLl9pbnZva2VUYXNrWlMub25JbnZva2VUYXNrKHRoaXMuX2ludm9rZVRhc2tEbGd0LHRoaXMuX2lu''@;'; + put 'put ''dm9rZVRhc2tDdXJyWm9uZSx1bixjbixfbixHdCk6Y24uY2FsbGJhY2suYXBwbHkoX24sR3QpfWNhbmNlbFRhc2sodW4sY24pe2xldCBfbjtpZih0aGlzLl9jYW5jZWxUYXNrWlMpX249dGhpcy5fY2FuY2VsVGFza1pTLm9uQ2FuY2VsVGFzayh0aGlzLl9jYW5jZWxUYXNrRGxndCx0aGlzLl9j''@;'; + put 'put ''YW5jZWxUYXNrQ3VyclpvbmUsdW4sY24pO2Vsc2V7aWYoIWNuLmNhbmNlbEZuKXRocm93IEVycm9yKCJUYXNrIGlzIG5vdCBjYW5jZWxhYmxlIik7X249Y24uY2FuY2VsRm4oY24pfXJldHVybiBfbn1oYXNUYXNrKHVuLGNuKXt0cnl7dGhpcy5faGFzVGFza1pTJiZ0aGlzLl9oYXNUYXNrWlMu''@;'; + put 'put ''b25IYXNUYXNrKHRoaXMuX2hhc1Rhc2tEbGd0LHRoaXMuX2hhc1Rhc2tDdXJyWm9uZSx1bixjbil9Y2F0Y2goX24pe3RoaXMuaGFuZGxlRXJyb3IodW4sX24pfX1fdXBkYXRlVGFza0NvdW50KHVuLGNuKXtjb25zdCBfbj10aGlzLl90YXNrQ291bnRzLEd0PV9uW3VuXSxrbj1fblt1bl09R3Qr''@;'; + put 'put ''Y247aWYoa248MCl0aHJvdyBuZXcgRXJyb3IoIk1vcmUgdGFza3MgZXhlY3V0ZWQgdGhlbiB3ZXJlIHNjaGVkdWxlZC4iKTswIT1HdCYmMCE9a258fHRoaXMuaGFzVGFzayh0aGlzLnpvbmUse21pY3JvVGFzazpfbi5taWNyb1Rhc2s+MCxtYWNyb1Rhc2s6X24ubWFjcm9UYXNrPjAsZXZlbnRU''@;'; + put 'put ''YXNrOl9uLmV2ZW50VGFzaz4wLGNoYW5nZTp1bn0pfX1jbGFzcyB5bntjb25zdHJ1Y3Rvcih1bixjbixfbixHdCxrbixWbil7aWYodGhpcy5fem9uZT1udWxsLHRoaXMucnVuQ291bnQ9MCx0aGlzLl96b25lRGVsZWdhdGVzPW51bGwsdGhpcy5fc3RhdGU9Im5vdFNjaGVkdWxlZCIsdGhpcy50''@;'; + put 'put ''eXBlPXVuLHRoaXMuc291cmNlPWNuLHRoaXMuZGF0YT1HdCx0aGlzLnNjaGVkdWxlRm49a24sdGhpcy5jYW5jZWxGbj1WbiwhX24pdGhyb3cgbmV3IEVycm9yKCJjYWxsYmFjayBpcyBub3QgZGVmaW5lZCIpO3RoaXMuY2FsbGJhY2s9X247Y29uc3QgZW49dGhpczt0aGlzLmludm9rZT11bj09''@;'; + put 'put ''PVVuJiZHdCYmR3QudXNlRz95bi5pbnZva2VUYXNrOmZ1bmN0aW9uKCl7cmV0dXJuIHluLmludm9rZVRhc2suY2FsbChDdCxlbix0aGlzLGFyZ3VtZW50cyl9fXN0YXRpYyBpbnZva2VUYXNrKHVuLGNuLF9uKXt1bnx8KHVuPXRoaXMpLEJuKys7dHJ5e3JldHVybiB1bi5ydW5Db3VudCsrLHVu''@;'; + put 'put ''LnpvbmUucnVuVGFzayh1bixjbixfbil9ZmluYWxseXsxPT1CbiYmcXQoKSxCbi0tfX1nZXQgem9uZSgpe3JldHVybiB0aGlzLl96b25lfWdldCBzdGF0ZSgpe3JldHVybiB0aGlzLl9zdGF0ZX1jYW5jZWxTY2hlZHVsZVJlcXVlc3QoKXt0aGlzLl90cmFuc2l0aW9uVG8obnIsQW4pfV90cmFu''@;'; + put 'put ''c2l0aW9uVG8odW4sY24sX24pe2lmKHRoaXMuX3N0YXRlIT09Y24mJnRoaXMuX3N0YXRlIT09X24pdGhyb3cgbmV3IEVycm9yKGAke3RoaXMudHlwZX0gJyR7dGhpcy5zb3VyY2V9JzogY2FuIG5vdCB0cmFuc2l0aW9uIHRvICcke3VufScsIGV4cGVjdGluZyBzdGF0ZSAnJHtjbn0nJHtfbj8i''@;'; + put 'put ''IG9yICciK19uKyInIjoiIn0sIHdhcyAnJHt0aGlzLl9zdGF0ZX0nLmApO3RoaXMuX3N0YXRlPXVuLHVuPT1uciYmKHRoaXMuX3pvbmVEZWxlZ2F0ZXM9bnVsbCl9dG9TdHJpbmcoKXtyZXR1cm4gdGhpcy5kYXRhJiZ2b2lkIDAhPT10aGlzLmRhdGEuaGFuZGxlSWQ/dGhpcy5kYXRhLmhhbmRs''@;'; + put 'put ''ZUlkLnRvU3RyaW5nKCk6T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHRoaXMpfXRvSlNPTigpe3JldHVybnt0eXBlOnRoaXMudHlwZSxzdGF0ZTp0aGlzLnN0YXRlLHNvdXJjZTp0aGlzLnNvdXJjZSx6b25lOnRoaXMuem9uZS5uYW1lLHJ1bkNvdW50OnRoaXMucnVuQ291bnR9fX1j''@;'; + put 'put ''b25zdCBsbj15dCgic2V0VGltZW91dCIpLE5uPXl0KCJQcm9taXNlIiksYm49eXQoInRoZW4iKTtsZXQgWG4sZXI9W10sc3I9ITE7ZnVuY3Rpb24gRnIobW4pe2lmKFhufHxDdFtObl0mJihYbj1DdFtObl0ucmVzb2x2ZSgwKSksWG4pe2xldCB1bj1Ybltibl07dW58fCh1bj1Ybi50aGVuKSx1''@;'; + put 'put ''bi5jYWxsKFhuLG1uKX1lbHNlIEN0W2xuXShtbiwwKX1mdW5jdGlvbiB4cihtbil7MD09PUJuJiYwPT09ZXIubGVuZ3RoJiZGcihxdCksbW4mJmVyLnB1c2gobW4pfWZ1bmN0aW9uIHF0KCl7aWYoIXNyKXtmb3Ioc3I9ITA7ZXIubGVuZ3RoOyl7Y29uc3QgbW49ZXI7ZXI9W107Zm9yKGxldCB1''@;'; + put 'put ''bj0wO3VuPG1uLmxlbmd0aDt1bisrKXtjb25zdCBjbj1tblt1bl07dHJ5e2NuLnpvbmUucnVuVGFzayhjbixudWxsLG51bGwpfWNhdGNoKF9uKXt0bi5vblVuaGFuZGxlZEVycm9yKF9uKX19fXRuLm1pY3JvdGFza0RyYWluRG9uZSgpLHNyPSExfX1jb25zdCBwcj17bmFtZToiTk8gWk9ORSJ9''@;'; + put 'put ''LG5yPSJub3RTY2hlZHVsZWQiLEFuPSJzY2hlZHVsaW5nIixxbj0ic2NoZWR1bGVkIixXdD0icnVubmluZyIscG49ImNhbmNlbGluZyIsS249InVua25vd24iLE50PSJtaWNyb1Rhc2siLHNuPSJtYWNyb1Rhc2siLFVuPSJldmVudFRhc2siLHduPXt9LHRuPXtzeW1ib2w6eXQsY3VycmVudFpv''@;'; + put 'put ''bmVGcmFtZTooKT0+em4sb25VbmhhbmRsZWRFcnJvcjprcixtaWNyb3Rhc2tEcmFpbkRvbmU6a3Isc2NoZWR1bGVNaWNyb1Rhc2s6eHIsc2hvd1VuY2F1Z2h0RXJyb3I6KCk9PiFRdFt5dCgiaWdub3JlQ29uc29sZUVycm9yVW5jYXVnaHRFcnJvciIpXSxwYXRjaEV2ZW50VGFyZ2V0OigpPT5b''@;'; + put 'put ''XSxwYXRjaE9uUHJvcGVydGllczprcixwYXRjaE1ldGhvZDooKT0+a3IsYmluZEFyZ3VtZW50czooKT0+W10scGF0Y2hUaGVuOigpPT5rcixwYXRjaE1hY3JvVGFzazooKT0+a3IscGF0Y2hFdmVudFByb3RvdHlwZTooKT0+a3IsaXNJRU9yRWRnZTooKT0+ITEsZ2V0R2xvYmFsT2JqZWN0czoo''@;'; + put 'put ''KT0+e30sT2JqZWN0RGVmaW5lUHJvcGVydHk6KCk9PmtyLE9iamVjdEdldE93blByb3BlcnR5RGVzY3JpcHRvcjooKT0+e30sT2JqZWN0Q3JlYXRlOigpPT57fSxBcnJheVNsaWNlOigpPT5bXSxwYXRjaENsYXNzOigpPT5rcix3cmFwV2l0aEN1cnJlbnRab25lOigpPT5rcixmaWx0ZXJQcm9w''@;'; + put 'put ''ZXJ0aWVzOigpPT5bXSxhdHRhY2hPcmlnaW5Ub1BhdGNoZWQ6KCk9PmtyLF9yZWRlZmluZVByb3BlcnR5OigpPT5rcixwYXRjaENhbGxiYWNrczooKT0+a3IsbmF0aXZlU2NoZWR1bGVNaWNyb1Rhc2s6RnJ9O2xldCB6bj17cGFyZW50Om51bGwsem9uZTpuZXcgUXQobnVsbCxudWxsKX0sVHI9''@;'; + put 'put ''bnVsbCxCbj0wO2Z1bmN0aW9uIGtyKCl7fUdlKCJab25lIiwiWm9uZSIpLEN0LlpvbmU9UXR9KCJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiZ3aW5kb3d8fCJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZiYmc2VsZnx8Z2xvYmFsKTtjb25zdCBYZT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNj''@;'; + put 'put ''cmlwdG9yLEplPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSxMPU9iamVjdC5nZXRQcm90b3R5cGVPZixtZT1PYmplY3QuY3JlYXRlLEI9QXJyYXkucHJvdG90eXBlLnNsaWNlLEU9ImFkZEV2ZW50TGlzdGVuZXIiLE1lPSJyZW1vdmVFdmVudExpc3RlbmVyIixVPVpvbmUuX19zeW1ib2xfXyhFKSxR''@;'; + put 'put ''PVpvbmUuX19zeW1ib2xfXyhNZSksWj0idHJ1ZSIsaWU9ImZhbHNlIixhZT1ab25lLl9fc3ltYm9sX18oIiIpO2Z1bmN0aW9uIFkoQ3QsZnQpe3JldHVybiBab25lLmN1cnJlbnQud3JhcChDdCxmdCl9ZnVuY3Rpb24gVyhDdCxmdCxIdCxHZSxVZSl7cmV0dXJuIFpvbmUuY3VycmVudC5zY2hl''@;'; + put 'put ''ZHVsZU1hY3JvVGFzayhDdCxmdCxIdCxHZSxVZSl9Y29uc3QgTj1ab25lLl9fc3ltYm9sX18sZWU9InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cscT1lZT93aW5kb3c6dm9pZCAwLEo9ZWUmJnF8fCJvYmplY3QiPT10eXBlb2Ygc2VsZiYmc2VsZnx8Z2xvYmFsO2Z1bmN0aW9uIG9lKEN0LGZ0''@;'; + put 'put ''KXtmb3IobGV0IEh0PUN0Lmxlbmd0aC0xO0h0Pj0wO0h0LS0pImZ1bmN0aW9uIj09dHlwZW9mIEN0W0h0XSYmKEN0W0h0XT1ZKEN0W0h0XSxmdCsiXyIrSHQpKTtyZXR1cm4gQ3R9ZnVuY3Rpb24gZGUoQ3Qpe3JldHVybiFDdHx8ITEhPT1DdC53cml0YWJsZSYmISgiZnVuY3Rpb24iPT10eXBl''@;'; + put 'put ''b2YgQ3QuZ2V0JiZ2b2lkIDA9PT1DdC5zZXQpfWNvbnN0IHZlPSJ1bmRlZmluZWQiIT10eXBlb2YgV29ya2VyR2xvYmFsU2NvcGUmJnNlbGYgaW5zdGFuY2VvZiBXb3JrZXJHbG9iYWxTY29wZSxBZT0hKCJudyJpbiBKKSYmdm9pZCAwIT09Si5wcm9jZXNzJiYiW29iamVjdCBwcm9jZXNzXSI9''@;'; + put 'put ''PT17fS50b1N0cmluZy5jYWxsKEoucHJvY2Vzcyksa2U9IUFlJiYhdmUmJiEoIWVlfHwhcS5IVE1MRWxlbWVudCksU2U9dm9pZCAwIT09Si5wcm9jZXNzJiYiW29iamVjdCBwcm9jZXNzXSI9PT17fS50b1N0cmluZy5jYWxsKEoucHJvY2VzcykmJiF2ZSYmISghZWV8fCFxLkhUTUxFbGVtZW50''@;'; + put 'put ''KSxJZT17fSxUZT1mdW5jdGlvbihDdCl7aWYoIShDdD1DdHx8Si5ldmVudCkpcmV0dXJuO2xldCBmdD1JZVtDdC50eXBlXTtmdHx8KGZ0PUllW0N0LnR5cGVdPU4oIk9OX1BST1BFUlRZIitDdC50eXBlKSk7Y29uc3QgSHQ9dGhpc3x8Q3QudGFyZ2V0fHxKLEdlPUh0W2Z0XTtsZXQgVWU7aWYo''@;'; + put 'put ''a2UmJkh0PT09cSYmImVycm9yIj09PUN0LnR5cGUpe2NvbnN0IHl0PUN0O1VlPUdlJiZHZS5jYWxsKHRoaXMseXQubWVzc2FnZSx5dC5maWxlbmFtZSx5dC5saW5lbm8seXQuY29sbm8seXQuZXJyb3IpLCEwPT09VWUmJkN0LnByZXZlbnREZWZhdWx0KCl9ZWxzZSBVZT1HZSYmR2UuYXBwbHko''@;'; + put 'put ''dGhpcyxhcmd1bWVudHMpLG51bGwhPVVlJiYhVWUmJkN0LnByZXZlbnREZWZhdWx0KCk7cmV0dXJuIFVlfTtmdW5jdGlvbiBFZShDdCxmdCxIdCl7bGV0IEdlPVhlKEN0LGZ0KTtpZighR2UmJkh0JiZYZShIdCxmdCkmJihHZT17ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSwhR2V8''@;'; + put 'put ''fCFHZS5jb25maWd1cmFibGUpcmV0dXJuO2NvbnN0IFVlPU4oIm9uIitmdCsicGF0Y2hlZCIpO2lmKEN0Lmhhc093blByb3BlcnR5KFVlKSYmQ3RbVWVdKXJldHVybjtkZWxldGUgR2Uud3JpdGFibGUsZGVsZXRlIEdlLnZhbHVlO2NvbnN0IHl0PUdlLmdldCxqdD1HZS5zZXQsUXQ9ZnQuc2xp''@;'; + put 'put ''Y2UoMik7bGV0IGduPUllW1F0XTtnbnx8KGduPUllW1F0XT1OKCJPTl9QUk9QRVJUWSIrUXQpKSxHZS5zZXQ9ZnVuY3Rpb24oZG4pe2xldCB5bj10aGlzOyF5biYmQ3Q9PT1KJiYoeW49SikseW4mJigiZnVuY3Rpb24iPT10eXBlb2YgeW5bZ25dJiZ5bi5yZW1vdmVFdmVudExpc3RlbmVyKFF0''@;'; + put 'put ''LFRlKSxqdCYmanQuY2FsbCh5bixudWxsKSx5bltnbl09ZG4sImZ1bmN0aW9uIj09dHlwZW9mIGRuJiZ5bi5hZGRFdmVudExpc3RlbmVyKFF0LFRlLCExKSl9LEdlLmdldD1mdW5jdGlvbigpe2xldCBkbj10aGlzO2lmKCFkbiYmQ3Q9PT1KJiYoZG49SiksIWRuKXJldHVybiBudWxsO2NvbnN0''@;'; + put 'put ''IHluPWRuW2duXTtpZih5bilyZXR1cm4geW47aWYoeXQpe2xldCBsbj15dC5jYWxsKHRoaXMpO2lmKGxuKXJldHVybiBHZS5zZXQuY2FsbCh0aGlzLGxuKSwiZnVuY3Rpb24iPT10eXBlb2YgZG4ucmVtb3ZlQXR0cmlidXRlJiZkbi5yZW1vdmVBdHRyaWJ1dGUoZnQpLGxufXJldHVybiBudWxs''@;'; + put 'put ''fSxKZShDdCxmdCxHZSksQ3RbVWVdPSEwfWZ1bmN0aW9uIGhlKEN0LGZ0LEh0KXtpZihmdClmb3IobGV0IEdlPTA7R2U8ZnQubGVuZ3RoO0dlKyspRWUoQ3QsIm9uIitmdFtHZV0sSHQpO2Vsc2V7Y29uc3QgR2U9W107Zm9yKGNvbnN0IFVlIGluIEN0KSJvbiI9PVVlLnNsaWNlKDAsMikmJkdl''@;'; + put 'put ''LnB1c2goVWUpO2ZvcihsZXQgVWU9MDtVZTxHZS5sZW5ndGg7VWUrKylFZShDdCxHZVtVZV0sSHQpfX1jb25zdCBPPU4oIm9yaWdpbmFsSW5zdGFuY2UiKTtmdW5jdGlvbiB6KEN0KXtjb25zdCBmdD1KW0N0XTtpZighZnQpcmV0dXJuO0pbTihDdCldPWZ0LEpbQ3RdPWZ1bmN0aW9uKCl7Y29u''@;'; + put 'put ''c3QgVWU9b2UoYXJndW1lbnRzLEN0KTtzd2l0Y2goVWUubGVuZ3RoKXtjYXNlIDA6dGhpc1tPXT1uZXcgZnQ7YnJlYWs7Y2FzZSAxOnRoaXNbT109bmV3IGZ0KFVlWzBdKTticmVhaztjYXNlIDI6dGhpc1tPXT1uZXcgZnQoVWVbMF0sVWVbMV0pO2JyZWFrO2Nhc2UgMzp0aGlzW09dPW5ldyBm''@;'; + put 'put ''dChVZVswXSxVZVsxXSxVZVsyXSk7YnJlYWs7Y2FzZSA0OnRoaXNbT109bmV3IGZ0KFVlWzBdLFVlWzFdLFVlWzJdLFVlWzNdKTticmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiQXJnIGxpc3QgdG9vIGxvbmcuIil9fSx4KEpbQ3RdLGZ0KTtjb25zdCBIdD1uZXcgZnQoZnVuY3Rpb24o''@;'; + put 'put ''KXt9KTtsZXQgR2U7Zm9yKEdlIGluIEh0KSJYTUxIdHRwUmVxdWVzdCI9PT1DdCYmInJlc3BvbnNlQmxvYiI9PT1HZXx8ZnVuY3Rpb24oVWUpeyJmdW5jdGlvbiI9PXR5cGVvZiBIdFtVZV0/SltDdF0ucHJvdG90eXBlW1VlXT1mdW5jdGlvbigpe3JldHVybiB0aGlzW09dW1VlXS5hcHBseSh0''@;'; + put 'put ''aGlzW09dLGFyZ3VtZW50cyl9OkplKEpbQ3RdLnByb3RvdHlwZSxVZSx7c2V0OmZ1bmN0aW9uKHl0KXsiZnVuY3Rpb24iPT10eXBlb2YgeXQ/KHRoaXNbT11bVWVdPVkoeXQsQ3QrIi4iK1VlKSx4KHRoaXNbT11bVWVdLHl0KSk6dGhpc1tPXVtVZV09eXR9LGdldDpmdW5jdGlvbigpe3JldHVy''@;'; + put 'put ''biB0aGlzW09dW1VlXX19KX0oR2UpO2ZvcihHZSBpbiBmdCkicHJvdG90eXBlIiE9PUdlJiZmdC5oYXNPd25Qcm9wZXJ0eShHZSkmJihKW0N0XVtHZV09ZnRbR2VdKX1mdW5jdGlvbiBuZShDdCxmdCxIdCl7bGV0IEdlPUN0O2Zvcig7R2UmJiFHZS5oYXNPd25Qcm9wZXJ0eShmdCk7KUdlPUwo''@;'; + put 'put ''R2UpOyFHZSYmQ3RbZnRdJiYoR2U9Q3QpO2NvbnN0IFVlPU4oZnQpO2xldCB5dD1udWxsO2lmKEdlJiYoISh5dD1HZVtVZV0pfHwhR2UuaGFzT3duUHJvcGVydHkoVWUpKSYmKHl0PUdlW1VlXT1HZVtmdF0sZGUoR2UmJlhlKEdlLGZ0KSkpKXtjb25zdCBRdD1IdCh5dCxVZSxmdCk7R2VbZnRd''@;'; + put 'put ''PWZ1bmN0aW9uKCl7cmV0dXJuIFF0KHRoaXMsYXJndW1lbnRzKX0seChHZVtmdF0seXQpfXJldHVybiB5dH1mdW5jdGlvbiB0ZShDdCxmdCxIdCl7bGV0IEdlPW51bGw7ZnVuY3Rpb24gVWUoeXQpe2NvbnN0IGp0PXl0LmRhdGE7cmV0dXJuIGp0LmFyZ3NbanQuY2JJZHhdPWZ1bmN0aW9uKCl7''@;'; + put 'put ''eXQuaW52b2tlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sR2UuYXBwbHkoanQudGFyZ2V0LGp0LmFyZ3MpLHl0fUdlPW5lKEN0LGZ0LHl0PT5mdW5jdGlvbihqdCxRdCl7Y29uc3QgZ249SHQoanQsUXQpO3JldHVybiBnbi5jYklkeD49MCYmImZ1bmN0aW9uIj09dHlwZW9mIFF0W2duLmNiSWR4''@;'; + put 'put ''XT9XKGduLm5hbWUsUXRbZ24uY2JJZHhdLGduLFVlKTp5dC5hcHBseShqdCxRdCl9KX1mdW5jdGlvbiB4KEN0LGZ0KXtDdFtOKCJPcmlnaW5hbERlbGVnYXRlIildPWZ0fWxldCBQPSExLFY9ITE7ZnVuY3Rpb24gUygpe2lmKFApcmV0dXJuIFY7UD0hMDt0cnl7Y29uc3QgQ3Q9cS5uYXZpZ2F0''@;'; + put 'put ''b3IudXNlckFnZW50OygtMSE9PUN0LmluZGV4T2YoIk1TSUUgIil8fC0xIT09Q3QuaW5kZXhPZigiVHJpZGVudC8iKXx8LTEhPT1DdC5pbmRleE9mKCJFZGdlLyIpKSYmKFY9ITApfWNhdGNoKEN0KXt9cmV0dXJuIFZ9Wm9uZS5fX2xvYWRfcGF0Y2goIlpvbmVBd2FyZVByb21pc2UiLChDdCxm''@;'; + put 'put ''dCxIdCk9Pntjb25zdCBHZT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLFVlPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSxqdD1IdC5zeW1ib2wsUXQ9W10sZ249ITA9PT1DdFtqdCgiRElTQUJMRV9XUkFQUElOR19VTkNBVUdIVF9QUk9NSVNFX1JFSkVDVElPTiIpXSxkbj1qdCgiUHJv''@;'; + put 'put ''bWlzZSIpLHluPWp0KCJ0aGVuIik7SHQub25VbmhhbmRsZWRFcnJvcj1lbj0+e2lmKEh0LnNob3dVbmNhdWdodEVycm9yKCkpe2NvbnN0IEluPWVuJiZlbi5yZWplY3Rpb247SW4/Y29uc29sZS5lcnJvcigiVW5oYW5kbGVkIFByb21pc2UgcmVqZWN0aW9uOiIsSW4gaW5zdGFuY2VvZiBFcnJv''@;'; + put 'put ''cj9Jbi5tZXNzYWdlOkluLCI7IFpvbmU6Iixlbi56b25lLm5hbWUsIjsgVGFzazoiLGVuLnRhc2smJmVuLnRhc2suc291cmNlLCI7IFZhbHVlOiIsSW4sSW4gaW5zdGFuY2VvZiBFcnJvcj9Jbi5zdGFjazp2b2lkIDApOmNvbnNvbGUuZXJyb3IoZW4pfX0sSHQubWljcm90YXNrRHJhaW5Eb25l''@;'; + put 'put ''PSgpPT57Zm9yKDtRdC5sZW5ndGg7KXtjb25zdCBlbj1RdC5zaGlmdCgpO3RyeXtlbi56b25lLnJ1bkd1YXJkZWQoKCk9Pnt0aHJvdyBlbi50aHJvd09yaWdpbmFsP2VuLnJlamVjdGlvbjplbn0pfWNhdGNoKEluKXtibihJbil9fX07Y29uc3QgTm49anQoInVuaGFuZGxlZFByb21pc2VSZWpl''@;'; + put 'put ''Y3Rpb25IYW5kbGVyIik7ZnVuY3Rpb24gYm4oZW4pe0h0Lm9uVW5oYW5kbGVkRXJyb3IoZW4pO3RyeXtjb25zdCBJbj1mdFtObl07ImZ1bmN0aW9uIj09dHlwZW9mIEluJiZJbi5jYWxsKHRoaXMsZW4pfWNhdGNoKEluKXt9fWZ1bmN0aW9uIGVyKGVuKXtyZXR1cm4gZW4mJmVuLnRoZW59ZnVu''@;'; + put 'put ''Y3Rpb24gc3IoZW4pe3JldHVybiBlbn1mdW5jdGlvbiBYbihlbil7cmV0dXJuIGNuLnJlamVjdChlbil9Y29uc3QgRnI9anQoInN0YXRlIikseHI9anQoInZhbHVlIikscXQ9anQoImZpbmFsbHkiKSxwcj1qdCgicGFyZW50UHJvbWlzZVZhbHVlIiksbnI9anQoInBhcmVudFByb21pc2VTdGF0''@;'; + put 'put ''ZSIpLHFuPW51bGwscG49ITE7ZnVuY3Rpb24gTnQoZW4sSW4pe3JldHVybiBKbj0+e3RyeXt0bihlbixJbixKbil9Y2F0Y2gob3Ipe3RuKGVuLCExLG9yKX19fWNvbnN0IHNuPWZ1bmN0aW9uKCl7bGV0IGVuPSExO3JldHVybiBmdW5jdGlvbihKbil7cmV0dXJuIGZ1bmN0aW9uKCl7ZW58fChl''@;'; + put 'put ''bj0hMCxKbi5hcHBseShudWxsLGFyZ3VtZW50cykpfX19LHduPWp0KCJjdXJyZW50VGFza1RyYWNlIik7ZnVuY3Rpb24gdG4oZW4sSW4sSm4pe2NvbnN0IG9yPXNuKCk7aWYoZW49PT1Kbil0aHJvdyBuZXcgVHlwZUVycm9yKCJQcm9taXNlIHJlc29sdmVkIHdpdGggaXRzZWxmIik7aWYoZW5b''@;'; + put 'put ''RnJdPT09cW4pe2xldCBncj1udWxsO3RyeXsoIm9iamVjdCI9PXR5cGVvZiBKbnx8ImZ1bmN0aW9uIj09dHlwZW9mIEpuKSYmKGdyPUpuJiZKbi50aGVuKX1jYXRjaChLcil7cmV0dXJuIG9yKCgpPT57dG4oZW4sITEsS3IpfSkoKSxlbn1pZihJbiE9PXBuJiZKbiBpbnN0YW5jZW9mIGNuJiZK''@;'; + put 'put ''bi5oYXNPd25Qcm9wZXJ0eShGcikmJkpuLmhhc093blByb3BlcnR5KHhyKSYmSm5bRnJdIT09cW4pVHIoSm4pLHRuKGVuLEpuW0ZyXSxKblt4cl0pO2Vsc2UgaWYoSW4hPT1wbiYmImZ1bmN0aW9uIj09dHlwZW9mIGdyKXRyeXtnci5jYWxsKEpuLG9yKE50KGVuLEluKSksb3IoTnQoZW4sITEp''@;'; + put 'put ''KSl9Y2F0Y2goS3Ipe29yKCgpPT57dG4oZW4sITEsS3IpfSkoKX1lbHNle2VuW0ZyXT1Jbjtjb25zdCBLcj1lblt4cl07aWYoZW5beHJdPUpuLGVuW3F0XT09PXF0JiYhMD09PUluJiYoZW5bRnJdPWVuW25yXSxlblt4cl09ZW5bcHJdKSxJbj09PXBuJiZKbiBpbnN0YW5jZW9mIEVycm9yKXtj''@;'; + put 'put ''b25zdCBWcj1mdC5jdXJyZW50VGFzayYmZnQuY3VycmVudFRhc2suZGF0YSYmZnQuY3VycmVudFRhc2suZGF0YS5fX2NyZWF0aW9uVHJhY2VfXztWciYmVWUoSm4sd24se2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiExLHdyaXRhYmxlOiEwLHZhbHVlOlZyfSl9Zm9yKGxldCBWcj0wO1Zy''@;'; + put 'put ''PEtyLmxlbmd0aDspQm4oZW4sS3JbVnIrK10sS3JbVnIrK10sS3JbVnIrK10sS3JbVnIrK10pO2lmKDA9PUtyLmxlbmd0aCYmSW49PXBuKXtlbltGcl09MDtsZXQgVnI9Sm47dHJ5e3Rocm93IG5ldyBFcnJvcigiVW5jYXVnaHQgKGluIHByb21pc2UpOiAiK2Z1bmN0aW9uIHl0KGVuKXtyZXR1''@;'; + put 'put ''cm4gZW4mJmVuLnRvU3RyaW5nPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZz8oZW4uY29uc3RydWN0b3ImJmVuLmNvbnN0cnVjdG9yLm5hbWV8fCIiKSsiOiAiK0pTT04uc3RyaW5naWZ5KGVuKTplbj9lbi50b1N0cmluZygpOk9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlbil9''@;'; + put 'put ''KEpuKSsoSm4mJkpuLnN0YWNrPyJcbiIrSm4uc3RhY2s6IiIpKX1jYXRjaChpaSl7VnI9aWl9Z24mJihWci50aHJvd09yaWdpbmFsPSEwKSxWci5yZWplY3Rpb249Sm4sVnIucHJvbWlzZT1lbixWci56b25lPWZ0LmN1cnJlbnQsVnIudGFzaz1mdC5jdXJyZW50VGFzayxRdC5wdXNoKFZyKSxI''@;'; + put 'put ''dC5zY2hlZHVsZU1pY3JvVGFzaygpfX19cmV0dXJuIGVufWNvbnN0IHpuPWp0KCJyZWplY3Rpb25IYW5kbGVkSGFuZGxlciIpO2Z1bmN0aW9uIFRyKGVuKXtpZigwPT09ZW5bRnJdKXt0cnl7Y29uc3QgSW49ZnRbem5dO0luJiYiZnVuY3Rpb24iPT10eXBlb2YgSW4mJkluLmNhbGwodGhpcyx7''@;'; + put 'put ''cmVqZWN0aW9uOmVuW3hyXSxwcm9taXNlOmVufSl9Y2F0Y2goSW4pe31lbltGcl09cG47Zm9yKGxldCBJbj0wO0luPFF0Lmxlbmd0aDtJbisrKWVuPT09UXRbSW5dLnByb21pc2UmJlF0LnNwbGljZShJbiwxKX19ZnVuY3Rpb24gQm4oZW4sSW4sSm4sb3IsZ3Ipe1RyKGVuKTtjb25zdCBLcj1l''@;'; + put 'put ''bltGcl0sVnI9S3I/ImZ1bmN0aW9uIj09dHlwZW9mIG9yP29yOnNyOiJmdW5jdGlvbiI9PXR5cGVvZiBncj9ncjpYbjtJbi5zY2hlZHVsZU1pY3JvVGFzaygiUHJvbWlzZS50aGVuIiwoKT0+e3RyeXtjb25zdCBpaT1lblt4cl0sUnI9ISFKbiYmcXQ9PT1KbltxdF07UnImJihKbltwcl09aWks''@;'; + put 'put ''Sm5bbnJdPUtyKTtjb25zdCBsaT1Jbi5ydW4oVnIsdm9pZCAwLFJyJiZWciE9PVhuJiZWciE9PXNyP1tdOltpaV0pO3RuKEpuLCEwLGxpKX1jYXRjaChpaSl7dG4oSm4sITEsaWkpfX0sSm4pfWNvbnN0IG1uPWZ1bmN0aW9uKCl7fSx1bj1DdC5BZ2dyZWdhdGVFcnJvcjtjbGFzcyBjbntzdGF0''@;'; + put 'put ''aWMgdG9TdHJpbmcoKXtyZXR1cm4iZnVuY3Rpb24gWm9uZUF3YXJlUHJvbWlzZSgpIHsgW25hdGl2ZSBjb2RlXSB9In1zdGF0aWMgcmVzb2x2ZShJbil7cmV0dXJuIHRuKG5ldyB0aGlzKG51bGwpLCEwLEluKX1zdGF0aWMgcmVqZWN0KEluKXtyZXR1cm4gdG4obmV3IHRoaXMobnVsbCkscG4s''@;'; + put 'put ''SW4pfXN0YXRpYyBhbnkoSW4pe2lmKCFJbnx8ImZ1bmN0aW9uIiE9dHlwZW9mIEluW1N5bWJvbC5pdGVyYXRvcl0pcmV0dXJuIFByb21pc2UucmVqZWN0KG5ldyB1bihbXSwiQWxsIHByb21pc2VzIHdlcmUgcmVqZWN0ZWQiKSk7Y29uc3QgSm49W107bGV0IG9yPTA7dHJ5e2ZvcihsZXQgVnIg''@;'; + put 'put ''b2YgSW4pb3IrKyxKbi5wdXNoKGNuLnJlc29sdmUoVnIpKX1jYXRjaChWcil7cmV0dXJuIFByb21pc2UucmVqZWN0KG5ldyB1bihbXSwiQWxsIHByb21pc2VzIHdlcmUgcmVqZWN0ZWQiKSl9aWYoMD09PW9yKXJldHVybiBQcm9taXNlLnJlamVjdChuZXcgdW4oW10sIkFsbCBwcm9taXNlcyB3''@;'; + put 'put ''ZXJlIHJlamVjdGVkIikpO2xldCBncj0hMTtjb25zdCBLcj1bXTtyZXR1cm4gbmV3IGNuKChWcixpaSk9Pntmb3IobGV0IFJyPTA7UnI8Sm4ubGVuZ3RoO1JyKyspSm5bUnJdLnRoZW4obGk9Pntncnx8KGdyPSEwLFZyKGxpKSl9LGxpPT57S3IucHVzaChsaSksb3ItLSwwPT09b3ImJihncj0h''@;'; + put 'put ''MCxpaShuZXcgdW4oS3IsIkFsbCBwcm9taXNlcyB3ZXJlIHJlamVjdGVkIikpKX0pfSl9c3RhdGljIHJhY2UoSW4pe2xldCBKbixvcixncj1uZXcgdGhpcygoaWksUnIpPT57Sm49aWksb3I9UnJ9KTtmdW5jdGlvbiBLcihpaSl7Sm4oaWkpfWZ1bmN0aW9uIFZyKGlpKXtvcihpaSl9Zm9yKGxl''@;'; + put 'put ''dCBpaSBvZiBJbillcihpaSl8fChpaT10aGlzLnJlc29sdmUoaWkpKSxpaS50aGVuKEtyLFZyKTtyZXR1cm4gZ3J9c3RhdGljIGFsbChJbil7cmV0dXJuIGNuLmFsbFdpdGhDYWxsYmFjayhJbil9c3RhdGljIGFsbFNldHRsZWQoSW4pe3JldHVybih0aGlzJiZ0aGlzLnByb3RvdHlwZSBpbnN0''@;'; + put 'put ''YW5jZW9mIGNuP3RoaXM6Y24pLmFsbFdpdGhDYWxsYmFjayhJbix7dGhlbkNhbGxiYWNrOm9yPT4oe3N0YXR1czoiZnVsZmlsbGVkIix2YWx1ZTpvcn0pLGVycm9yQ2FsbGJhY2s6b3I9Pih7c3RhdHVzOiJyZWplY3RlZCIscmVhc29uOm9yfSl9KX1zdGF0aWMgYWxsV2l0aENhbGxiYWNrKElu''@;'; + put 'put ''LEpuKXtsZXQgb3IsZ3IsS3I9bmV3IHRoaXMoKGxpLE1pKT0+e29yPWxpLGdyPU1pfSksVnI9MixpaT0wO2NvbnN0IFJyPVtdO2ZvcihsZXQgbGkgb2YgSW4pe2VyKGxpKXx8KGxpPXRoaXMucmVzb2x2ZShsaSkpO2NvbnN0IE1pPWlpO3RyeXtsaS50aGVuKG8wPT57UnJbTWldPUpuP0puLnRo''@;'; + put 'put ''ZW5DYWxsYmFjayhvMCk6bzAsVnItLSwwPT09VnImJm9yKFJyKX0sbzA9PntKbj8oUnJbTWldPUpuLmVycm9yQ2FsbGJhY2sobzApLFZyLS0sMD09PVZyJiZvcihScikpOmdyKG8wKX0pfWNhdGNoKG8wKXtncihvMCl9VnIrKyxpaSsrfXJldHVybiBWci09MiwwPT09VnImJm9yKFJyKSxLcn1j''@;'; + put 'put ''b25zdHJ1Y3RvcihJbil7Y29uc3QgSm49dGhpcztpZighKEpuIGluc3RhbmNlb2YgY24pKXRocm93IG5ldyBFcnJvcigiTXVzdCBiZSBhbiBpbnN0YW5jZW9mIFByb21pc2UuIik7Sm5bRnJdPXFuLEpuW3hyXT1bXTt0cnl7Y29uc3Qgb3I9c24oKTtJbiYmSW4ob3IoTnQoSm4sITApKSxvcihO''@;'; + put 'put ''dChKbixwbikpKX1jYXRjaChvcil7dG4oSm4sITEsb3IpfX1nZXRbU3ltYm9sLnRvU3RyaW5nVGFnXSgpe3JldHVybiJQcm9taXNlIn1nZXRbU3ltYm9sLnNwZWNpZXNdKCl7cmV0dXJuIGNufXRoZW4oSW4sSm4pe3ZhciBvcjtsZXQgZ3I9bnVsbD09PShvcj10aGlzLmNvbnN0cnVjdG9yKXx8''@;'; + put 'put ''dm9pZCAwPT09b3I/dm9pZCAwOm9yW1N5bWJvbC5zcGVjaWVzXTsoIWdyfHwiZnVuY3Rpb24iIT10eXBlb2YgZ3IpJiYoZ3I9dGhpcy5jb25zdHJ1Y3Rvcnx8Y24pO2NvbnN0IEtyPW5ldyBncihtbiksVnI9ZnQuY3VycmVudDtyZXR1cm4gdGhpc1tGcl09PXFuP3RoaXNbeHJdLnB1c2goVnIs''@;'; + put 'put ''S3IsSW4sSm4pOkJuKHRoaXMsVnIsS3IsSW4sSm4pLEtyfWNhdGNoKEluKXtyZXR1cm4gdGhpcy50aGVuKG51bGwsSW4pfWZpbmFsbHkoSW4pe3ZhciBKbjtsZXQgb3I9bnVsbD09PShKbj10aGlzLmNvbnN0cnVjdG9yKXx8dm9pZCAwPT09Sm4/dm9pZCAwOkpuW1N5bWJvbC5zcGVjaWVzXTso''@;'; + put 'put ''IW9yfHwiZnVuY3Rpb24iIT10eXBlb2Ygb3IpJiYob3I9Y24pO2NvbnN0IGdyPW5ldyBvcihtbik7Z3JbcXRdPXF0O2NvbnN0IEtyPWZ0LmN1cnJlbnQ7cmV0dXJuIHRoaXNbRnJdPT1xbj90aGlzW3hyXS5wdXNoKEtyLGdyLEluLEluKTpCbih0aGlzLEtyLGdyLEluLEluKSxncn19Y24ucmVz''@;'; + put 'put ''b2x2ZT1jbi5yZXNvbHZlLGNuLnJlamVjdD1jbi5yZWplY3QsY24ucmFjZT1jbi5yYWNlLGNuLmFsbD1jbi5hbGw7Y29uc3QgX249Q3RbZG5dPUN0LlByb21pc2U7Q3QuUHJvbWlzZT1jbjtjb25zdCBHdD1qdCgidGhlblBhdGNoZWQiKTtmdW5jdGlvbiBrbihlbil7Y29uc3QgSW49ZW4ucHJv''@;'; + put 'put ''dG90eXBlLEpuPUdlKEluLCJ0aGVuIik7aWYoSm4mJighMT09PUpuLndyaXRhYmxlfHwhSm4uY29uZmlndXJhYmxlKSlyZXR1cm47Y29uc3Qgb3I9SW4udGhlbjtJblt5bl09b3IsZW4ucHJvdG90eXBlLnRoZW49ZnVuY3Rpb24oZ3IsS3Ipe3JldHVybiBuZXcgY24oKGlpLFJyKT0+e29yLmNh''@;'; + put 'put ''bGwodGhpcyxpaSxScil9KS50aGVuKGdyLEtyKX0sZW5bR3RdPSEwfXJldHVybiBIdC5wYXRjaFRoZW49a24sX24mJihrbihfbiksbmUoQ3QsImZldGNoIixlbj0+ZnVuY3Rpb24gVm4oZW4pe3JldHVybiBmdW5jdGlvbihJbixKbil7bGV0IG9yPWVuLmFwcGx5KEluLEpuKTtpZihvciBpbnN0''@;'; + put 'put ''YW5jZW9mIGNuKXJldHVybiBvcjtsZXQgZ3I9b3IuY29uc3RydWN0b3I7cmV0dXJuIGdyW0d0XXx8a24oZ3IpLG9yfX0oZW4pKSksUHJvbWlzZVtmdC5fX3N5bWJvbF9fKCJ1bmNhdWdodFByb21pc2VFcnJvcnMiKV09UXQsY259KSxab25lLl9fbG9hZF9wYXRjaCgidG9TdHJpbmciLEN0PT57''@;'; + put 'put ''Y29uc3QgZnQ9RnVuY3Rpb24ucHJvdG90eXBlLnRvU3RyaW5nLEh0PU4oIk9yaWdpbmFsRGVsZWdhdGUiKSxHZT1OKCJQcm9taXNlIiksVWU9TigiRXJyb3IiKSx5dD1mdW5jdGlvbigpe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzKXtjb25zdCBkbj10aGlzW0h0XTtpZihkbilyZXR1cm4i''@;'; + put 'put ''ZnVuY3Rpb24iPT10eXBlb2YgZG4/ZnQuY2FsbChkbik6T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGRuKTtpZih0aGlzPT09UHJvbWlzZSl7Y29uc3QgeW49Q3RbR2VdO2lmKHluKXJldHVybiBmdC5jYWxsKHluKX1pZih0aGlzPT09RXJyb3Ipe2NvbnN0IHluPUN0W1VlXTtpZih5''@;'; + put 'put ''bilyZXR1cm4gZnQuY2FsbCh5bil9fXJldHVybiBmdC5jYWxsKHRoaXMpfTt5dFtIdF09ZnQsRnVuY3Rpb24ucHJvdG90eXBlLnRvU3RyaW5nPXl0O2NvbnN0IGp0PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc7T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiJm''@;'; + put 'put ''dW5jdGlvbiI9PXR5cGVvZiBQcm9taXNlJiZ0aGlzIGluc3RhbmNlb2YgUHJvbWlzZT8iW29iamVjdCBQcm9taXNlXSI6anQuY2FsbCh0aGlzKX19KTtsZXQgRj0hMTtpZigidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyl0cnl7Y29uc3QgQ3Q9T2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LCJw''@;'; + put 'put ''YXNzaXZlIix7Z2V0OmZ1bmN0aW9uKCl7Rj0hMH19KTt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigidGVzdCIsQ3QsQ3QpLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJ0ZXN0IixDdCxDdCl9Y2F0Y2goQ3Qpe0Y9ITF9Y29uc3QgeWU9e3VzZUc6ITB9LENlPXt9LERlPXt9LFBlPW5ldyBS''@;'; + put 'put ''ZWdFeHAoIl4iK2FlKyIoXFx3KykodHJ1ZXxmYWxzZSkkIiksUWU9TigicHJvcGFnYXRpb25TdG9wcGVkIik7ZnVuY3Rpb24gJGUoQ3QsZnQpe2NvbnN0IEh0PShmdD9mdChDdCk6Q3QpK2llLEdlPShmdD9mdChDdCk6Q3QpK1osVWU9YWUrSHQseXQ9YWUrR2U7Q2VbQ3RdPXt9LENlW0N0XVtp''@;'; + put 'put ''ZV09VWUsQ2VbQ3RdW1pdPXl0fWZ1bmN0aW9uIGd0KEN0LGZ0LEh0LEdlKXtjb25zdCBVZT1HZSYmR2UuYWRkfHxFLHl0PUdlJiZHZS5ybXx8TWUsanQ9R2UmJkdlLmxpc3RlbmVyc3x8ImV2ZW50TGlzdGVuZXJzIixRdD1HZSYmR2Uucm1BbGx8fCJyZW1vdmVBbGxMaXN0ZW5lcnMiLGduPU4o''@;'; + put 'put ''VWUpLGRuPSIuIitVZSsiOiIsTm49ZnVuY3Rpb24oeHIscXQscHIpe2lmKHhyLmlzUmVtb3ZlZClyZXR1cm47Y29uc3QgbnI9eHIuY2FsbGJhY2s7bGV0IEFuOyJvYmplY3QiPT10eXBlb2YgbnImJm5yLmhhbmRsZUV2ZW50JiYoeHIuY2FsbGJhY2s9V3Q9Pm5yLmhhbmRsZUV2ZW50KFd0KSx4''@;'; + put 'put ''ci5vcmlnaW5hbERlbGVnYXRlPW5yKTt0cnl7eHIuaW52b2tlKHhyLHF0LFtwcl0pfWNhdGNoKFd0KXtBbj1XdH1jb25zdCBxbj14ci5vcHRpb25zO3JldHVybiBxbiYmIm9iamVjdCI9PXR5cGVvZiBxbiYmcW4ub25jZSYmcXRbeXRdLmNhbGwocXQscHIudHlwZSx4ci5vcmlnaW5hbERlbGVn''@;'; + put 'put ''YXRlP3hyLm9yaWdpbmFsRGVsZWdhdGU6eHIuY2FsbGJhY2sscW4pLEFufTtmdW5jdGlvbiBibih4cixxdCxwcil7aWYoIShxdD1xdHx8Q3QuZXZlbnQpKXJldHVybjtjb25zdCBucj14cnx8cXQudGFyZ2V0fHxDdCxBbj1ucltDZVtxdC50eXBlXVtwcj9aOmllXV07aWYoQW4pe2NvbnN0IHFu''@;'; + put 'put ''PVtdO2lmKDE9PT1Bbi5sZW5ndGgpe2NvbnN0IFd0PU5uKEFuWzBdLG5yLHF0KTtXdCYmcW4ucHVzaChXdCl9ZWxzZXtjb25zdCBXdD1Bbi5zbGljZSgpO2ZvcihsZXQgcG49MDtwbjxXdC5sZW5ndGgmJighcXR8fCEwIT09cXRbUWVdKTtwbisrKXtjb25zdCBLbj1ObihXdFtwbl0sbnIscXQp''@;'; + put 'put ''O0tuJiZxbi5wdXNoKEtuKX19aWYoMT09PXFuLmxlbmd0aCl0aHJvdyBxblswXTtmb3IobGV0IFd0PTA7V3Q8cW4ubGVuZ3RoO1d0Kyspe2NvbnN0IHBuPXFuW1d0XTtmdC5uYXRpdmVTY2hlZHVsZU1pY3JvVGFzaygoKT0+e3Rocm93IHBufSl9fX1jb25zdCBlcj1mdW5jdGlvbih4cil7cmV0''@;'; + put 'put ''dXJuIGJuKHRoaXMseHIsITEpfSxzcj1mdW5jdGlvbih4cil7cmV0dXJuIGJuKHRoaXMseHIsITApfTtmdW5jdGlvbiBYbih4cixxdCl7aWYoIXhyKXJldHVybiExO2xldCBwcj0hMDtxdCYmdm9pZCAwIT09cXQudXNlRyYmKHByPXF0LnVzZUcpO2NvbnN0IG5yPXF0JiZxdC52aDtsZXQgQW49''@;'; + put 'put ''ITA7cXQmJnZvaWQgMCE9PXF0LmNoa0R1cCYmKEFuPXF0LmNoa0R1cCk7bGV0IHFuPSExO3F0JiZ2b2lkIDAhPT1xdC5ydCYmKHFuPXF0LnJ0KTtsZXQgV3Q9eHI7Zm9yKDtXdCYmIVd0Lmhhc093blByb3BlcnR5KFVlKTspV3Q9TChXdCk7aWYoIVd0JiZ4cltVZV0mJihXdD14ciksIVd0fHxX''@;'; + put 'put ''dFtnbl0pcmV0dXJuITE7Y29uc3QgcG49cXQmJnF0LmV2ZW50TmFtZVRvU3RyaW5nLEtuPXt9LE50PVd0W2duXT1XdFtVZV0sc249V3RbTih5dCldPVd0W3l0XSxVbj1XdFtOKGp0KV09V3RbanRdLHduPVd0W04oUXQpXT1XdFtRdF07bGV0IHRuO2Z1bmN0aW9uIHpuKEpuLG9yKXtyZXR1cm4h''@;'; + put 'put ''RiYmIm9iamVjdCI9PXR5cGVvZiBKbiYmSm4/ISFKbi5jYXB0dXJlOkYmJm9yPyJib29sZWFuIj09dHlwZW9mIEpuP3tjYXB0dXJlOkpuLHBhc3NpdmU6ITB9OkpuPyJvYmplY3QiPT10eXBlb2YgSm4mJiExIT09Sm4ucGFzc2l2ZT9PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sSm4p''@;'; + put 'put ''LHtwYXNzaXZlOiEwfSk6Sm46e3Bhc3NpdmU6ITB9OkpufXF0JiZxdC5wcmVwZW5kJiYodG49V3RbTihxdC5wcmVwZW5kKV09V3RbcXQucHJlcGVuZF0pO2NvbnN0IGNuPXByP2Z1bmN0aW9uKEpuKXtpZighS24uaXNFeGlzdGluZylyZXR1cm4gTnQuY2FsbChLbi50YXJnZXQsS24uZXZlbnRO''@;'; + put 'put ''YW1lLEtuLmNhcHR1cmU/c3I6ZXIsS24ub3B0aW9ucyl9OmZ1bmN0aW9uKEpuKXtyZXR1cm4gTnQuY2FsbChLbi50YXJnZXQsS24uZXZlbnROYW1lLEpuLmludm9rZSxLbi5vcHRpb25zKX0sX249cHI/ZnVuY3Rpb24oSm4pe2lmKCFKbi5pc1JlbW92ZWQpe2NvbnN0IG9yPUNlW0puLmV2ZW50''@;'; + put 'put ''TmFtZV07bGV0IGdyO29yJiYoZ3I9b3JbSm4uY2FwdHVyZT9aOmllXSk7Y29uc3QgS3I9Z3ImJkpuLnRhcmdldFtncl07aWYoS3IpZm9yKGxldCBWcj0wO1ZyPEtyLmxlbmd0aDtWcisrKWlmKEtyW1ZyXT09PUpuKXtLci5zcGxpY2UoVnIsMSksSm4uaXNSZW1vdmVkPSEwLDA9PT1Lci5sZW5n''@;'; + put 'put ''dGgmJihKbi5hbGxSZW1vdmVkPSEwLEpuLnRhcmdldFtncl09bnVsbCk7YnJlYWt9fWlmKEpuLmFsbFJlbW92ZWQpcmV0dXJuIHNuLmNhbGwoSm4udGFyZ2V0LEpuLmV2ZW50TmFtZSxKbi5jYXB0dXJlP3NyOmVyLEpuLm9wdGlvbnMpfTpmdW5jdGlvbihKbil7cmV0dXJuIHNuLmNhbGwoSm4u''@;'; + put 'put ''dGFyZ2V0LEpuLmV2ZW50TmFtZSxKbi5pbnZva2UsSm4ub3B0aW9ucyl9LGtuPXF0JiZxdC5kaWZmP3F0LmRpZmY6ZnVuY3Rpb24oSm4sb3Ipe2NvbnN0IGdyPXR5cGVvZiBvcjtyZXR1cm4iZnVuY3Rpb24iPT09Z3ImJkpuLmNhbGxiYWNrPT09b3J8fCJvYmplY3QiPT09Z3ImJkpuLm9yaWdp''@;'; + put 'put ''bmFsRGVsZWdhdGU9PT1vcn0sVm49Wm9uZVtOKCJVTlBBVENIRURfRVZFTlRTIildLGVuPUN0W04oIlBBU1NJVkVfRVZFTlRTIildLEluPWZ1bmN0aW9uKEpuLG9yLGdyLEtyLFZyPSExLGlpPSExKXtyZXR1cm4gZnVuY3Rpb24oKXtjb25zdCBScj10aGlzfHxDdDtsZXQgbGk9YXJndW1lbnRz''@;'; + put 'put ''WzBdO3F0JiZxdC50cmFuc2ZlckV2ZW50TmFtZSYmKGxpPXF0LnRyYW5zZmVyRXZlbnROYW1lKGxpKSk7bGV0IE1pPWFyZ3VtZW50c1sxXTtpZighTWkpcmV0dXJuIEpuLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtpZihBZSYmInVuY2F1Z2h0RXhjZXB0aW9uIj09PWxpKXJldHVybiBKbi5hcHBs''@;'; + put 'put ''eSh0aGlzLGFyZ3VtZW50cyk7bGV0IG8wPSExO2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBNaSl7aWYoIU1pLmhhbmRsZUV2ZW50KXJldHVybiBKbi5hcHBseSh0aGlzLGFyZ3VtZW50cyk7bzA9ITB9aWYobnImJiFucihKbixNaSxScixhcmd1bWVudHMpKXJldHVybjtjb25zdCBuMD1GJiYhIWVu''@;'; + put 'put ''JiYtMSE9PWVuLmluZGV4T2YobGkpLGQwPXpuKGFyZ3VtZW50c1syXSxuMCk7aWYoVm4pZm9yKGxldCBBaT0wO0FpPFZuLmxlbmd0aDtBaSsrKWlmKGxpPT09Vm5bQWldKXJldHVybiBuMD9Kbi5jYWxsKFJyLGxpLE1pLGQwKTpKbi5hcHBseSh0aGlzLGFyZ3VtZW50cyk7Y29uc3QgbTA9ISFk''@;'; + put 'put ''MCYmKCJib29sZWFuIj09dHlwZW9mIGQwfHxkMC5jYXB0dXJlKSxHMD0hKCFkMHx8Im9iamVjdCIhPXR5cGVvZiBkMCkmJmQwLm9uY2UsRGk9Wm9uZS5jdXJyZW50O2xldCBXMD1DZVtsaV07VzB8fCgkZShsaSxwbiksVzA9Q2VbbGldKTtjb25zdCBFbz1XMFttMD9aOmllXTtsZXQgbGwscW89''@;'; + put 'put ''UnJbRW9dLGNhPSExO2lmKHFvKXtpZihjYT0hMCxBbilmb3IobGV0IEFpPTA7QWk8cW8ubGVuZ3RoO0FpKyspaWYoa24ocW9bQWldLE1pKSlyZXR1cm59ZWxzZSBxbz1ScltFb109W107Y29uc3QgUWk9UnIuY29uc3RydWN0b3IubmFtZSxNYT1EZVtRaV07TWEmJihsbD1NYVtsaV0pLGxsfHwo''@;'; + put 'put ''bGw9UWkrb3IrKHBuP3BuKGxpKTpsaSkpLEtuLm9wdGlvbnM9ZDAsRzAmJihLbi5vcHRpb25zLm9uY2U9ITEpLEtuLnRhcmdldD1ScixLbi5jYXB0dXJlPW0wLEtuLmV2ZW50TmFtZT1saSxLbi5pc0V4aXN0aW5nPWNhO2NvbnN0IG5sPXByP3llOnZvaWQgMDtubCYmKG5sLnRhc2tEYXRhPUtu''@;'; + put 'put ''KTtjb25zdCBnbD1EaS5zY2hlZHVsZUV2ZW50VGFzayhsbCxNaSxubCxncixLcik7cmV0dXJuIEtuLnRhcmdldD1udWxsLG5sJiYobmwudGFza0RhdGE9bnVsbCksRzAmJihkMC5vbmNlPSEwKSwhRiYmImJvb2xlYW4iPT10eXBlb2YgZ2wub3B0aW9uc3x8KGdsLm9wdGlvbnM9ZDApLGdsLnRh''@;'; + put 'put ''cmdldD1ScixnbC5jYXB0dXJlPW0wLGdsLmV2ZW50TmFtZT1saSxvMCYmKGdsLm9yaWdpbmFsRGVsZWdhdGU9TWkpLGlpP3FvLnVuc2hpZnQoZ2wpOnFvLnB1c2goZ2wpLFZyP1JyOnZvaWQgMH19O3JldHVybiBXdFtVZV09SW4oTnQsZG4sY24sX24scW4pLHRuJiYoV3QucHJlcGVuZExpc3Rl''@;'; + put 'put ''bmVyPUluKHRuLCIucHJlcGVuZExpc3RlbmVyOiIsZnVuY3Rpb24oSm4pe3JldHVybiB0bi5jYWxsKEtuLnRhcmdldCxLbi5ldmVudE5hbWUsSm4uaW52b2tlLEtuLm9wdGlvbnMpfSxfbixxbiwhMCkpLFd0W3l0XT1mdW5jdGlvbigpe2NvbnN0IEpuPXRoaXN8fEN0O2xldCBvcj1hcmd1bWVu''@;'; + put 'put ''dHNbMF07cXQmJnF0LnRyYW5zZmVyRXZlbnROYW1lJiYob3I9cXQudHJhbnNmZXJFdmVudE5hbWUob3IpKTtjb25zdCBncj1hcmd1bWVudHNbMl0sS3I9ISFnciYmKCJib29sZWFuIj09dHlwZW9mIGdyfHxnci5jYXB0dXJlKSxWcj1hcmd1bWVudHNbMV07aWYoIVZyKXJldHVybiBzbi5hcHBs''@;'; + put 'put ''eSh0aGlzLGFyZ3VtZW50cyk7aWYobnImJiFucihzbixWcixKbixhcmd1bWVudHMpKXJldHVybjtjb25zdCBpaT1DZVtvcl07bGV0IFJyO2lpJiYoUnI9aWlbS3I/WjppZV0pO2NvbnN0IGxpPVJyJiZKbltScl07aWYobGkpZm9yKGxldCBNaT0wO01pPGxpLmxlbmd0aDtNaSsrKXtjb25zdCBv''@;'; + put 'put ''MD1saVtNaV07aWYoa24obzAsVnIpKXJldHVybiBsaS5zcGxpY2UoTWksMSksbzAuaXNSZW1vdmVkPSEwLDA9PT1saS5sZW5ndGgmJihvMC5hbGxSZW1vdmVkPSEwLEpuW1JyXT1udWxsLCJzdHJpbmciPT10eXBlb2Ygb3IpJiYoSm5bYWUrIk9OX1BST1BFUlRZIitvcl09bnVsbCksbzAuem9u''@;'; + put 'put ''ZS5jYW5jZWxUYXNrKG8wKSxxbj9Kbjp2b2lkIDB9cmV0dXJuIHNuLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sV3RbanRdPWZ1bmN0aW9uKCl7Y29uc3QgSm49dGhpc3x8Q3Q7bGV0IG9yPWFyZ3VtZW50c1swXTtxdCYmcXQudHJhbnNmZXJFdmVudE5hbWUmJihvcj1xdC50cmFuc2ZlckV2ZW50''@;'; + put 'put ''TmFtZShvcikpO2NvbnN0IGdyPVtdLEtyPXd0KEpuLHBuP3BuKG9yKTpvcik7Zm9yKGxldCBWcj0wO1ZyPEtyLmxlbmd0aDtWcisrKXtjb25zdCBpaT1LcltWcl07Z3IucHVzaChpaS5vcmlnaW5hbERlbGVnYXRlP2lpLm9yaWdpbmFsRGVsZWdhdGU6aWkuY2FsbGJhY2spfXJldHVybiBncn0s''@;'; + put 'put ''V3RbUXRdPWZ1bmN0aW9uKCl7Y29uc3QgSm49dGhpc3x8Q3Q7bGV0IG9yPWFyZ3VtZW50c1swXTtpZihvcil7cXQmJnF0LnRyYW5zZmVyRXZlbnROYW1lJiYob3I9cXQudHJhbnNmZXJFdmVudE5hbWUob3IpKTtjb25zdCBncj1DZVtvcl07aWYoZ3Ipe2NvbnN0IGlpPUpuW2dyW2llXV0sUnI9''@;'; + put 'put ''Sm5bZ3JbWl1dO2lmKGlpKXtjb25zdCBsaT1paS5zbGljZSgpO2ZvcihsZXQgTWk9MDtNaTxsaS5sZW5ndGg7TWkrKyl7Y29uc3QgbzA9bGlbTWldO3RoaXNbeXRdLmNhbGwodGhpcyxvcixvMC5vcmlnaW5hbERlbGVnYXRlP28wLm9yaWdpbmFsRGVsZWdhdGU6bzAuY2FsbGJhY2ssbzAub3B0''@;'; + put 'put ''aW9ucyl9fWlmKFJyKXtjb25zdCBsaT1Sci5zbGljZSgpO2ZvcihsZXQgTWk9MDtNaTxsaS5sZW5ndGg7TWkrKyl7Y29uc3QgbzA9bGlbTWldO3RoaXNbeXRdLmNhbGwodGhpcyxvcixvMC5vcmlnaW5hbERlbGVnYXRlP28wLm9yaWdpbmFsRGVsZWdhdGU6bzAuY2FsbGJhY2ssbzAub3B0aW9u''@;'; + put 'put ''cyl9fX19ZWxzZXtjb25zdCBncj1PYmplY3Qua2V5cyhKbik7Zm9yKGxldCBLcj0wO0tyPGdyLmxlbmd0aDtLcisrKXtjb25zdCBpaT1QZS5leGVjKGdyW0tyXSk7bGV0IFJyPWlpJiZpaVsxXTtSciYmInJlbW92ZUxpc3RlbmVyIiE9PVJyJiZ0aGlzW1F0XS5jYWxsKHRoaXMsUnIpfXRoaXNb''@;'; + put 'put ''UXRdLmNhbGwodGhpcywicmVtb3ZlTGlzdGVuZXIiKX1pZihxbilyZXR1cm4gdGhpc30seChXdFtVZV0sTnQpLHgoV3RbeXRdLHNuKSx3biYmeChXdFtRdF0sd24pLFVuJiZ4KFd0W2p0XSxVbiksITB9bGV0IEZyPVtdO2ZvcihsZXQgeHI9MDt4cjxIdC5sZW5ndGg7eHIrKylGclt4cl09WG4o''@;'; + put 'put ''SHRbeHJdLEdlKTtyZXR1cm4gRnJ9ZnVuY3Rpb24gd3QoQ3QsZnQpe2lmKCFmdCl7Y29uc3QgeXQ9W107Zm9yKGxldCBqdCBpbiBDdCl7Y29uc3QgUXQ9UGUuZXhlYyhqdCk7bGV0IGduPVF0JiZRdFsxXTtpZihnbiYmKCFmdHx8Z249PT1mdCkpe2NvbnN0IGRuPUN0W2p0XTtpZihkbilmb3Io''@;'; + put 'put ''bGV0IHluPTA7eW48ZG4ubGVuZ3RoO3luKyspeXQucHVzaChkblt5bl0pfX1yZXR1cm4geXR9bGV0IEh0PUNlW2Z0XTtIdHx8KCRlKGZ0KSxIdD1DZVtmdF0pO2NvbnN0IEdlPUN0W0h0W2llXV0sVWU9Q3RbSHRbWl1dO3JldHVybiBHZT9VZT9HZS5jb25jYXQoVWUpOkdlLnNsaWNlKCk6VWU/''@;'; + put 'put ''VWUuc2xpY2UoKTpbXX1mdW5jdGlvbiBtdChDdCxmdCl7Y29uc3QgSHQ9Q3QuRXZlbnQ7SHQmJkh0LnByb3RvdHlwZSYmZnQucGF0Y2hNZXRob2QoSHQucHJvdG90eXBlLCJzdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24iLEdlPT5mdW5jdGlvbihVZSx5dCl7VWVbUWVdPSEwLEdlJiZHZS5hcHBs''@;'; + put 'put ''eShVZSx5dCl9KX1mdW5jdGlvbiB2dChDdCxmdCxIdCxHZSxVZSl7Y29uc3QgeXQ9Wm9uZS5fX3N5bWJvbF9fKEdlKTtpZihmdFt5dF0pcmV0dXJuO2NvbnN0IGp0PWZ0W3l0XT1mdFtHZV07ZnRbR2VdPWZ1bmN0aW9uKFF0LGduLGRuKXtyZXR1cm4gZ24mJmduLnByb3RvdHlwZSYmVWUuZm9y''@;'; + put 'put ''RWFjaChmdW5jdGlvbih5bil7Y29uc3QgbG49YCR7SHR9LiR7R2V9OjpgK3luLE5uPWduLnByb3RvdHlwZTt0cnl7aWYoTm4uaGFzT3duUHJvcGVydHkoeW4pKXtjb25zdCBibj1DdC5PYmplY3RHZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoTm4seW4pO2JuJiZibi52YWx1ZT8oYm4udmFsdWU9''@;'; + put 'put ''Q3Qud3JhcFdpdGhDdXJyZW50Wm9uZShibi52YWx1ZSxsbiksQ3QuX3JlZGVmaW5lUHJvcGVydHkoZ24ucHJvdG90eXBlLHluLGJuKSk6Tm5beW5dJiYoTm5beW5dPUN0LndyYXBXaXRoQ3VycmVudFpvbmUoTm5beW5dLGxuKSl9ZWxzZSBOblt5bl0mJihOblt5bl09Q3Qud3JhcFdpdGhDdXJy''@;'; + put 'put ''ZW50Wm9uZShOblt5bl0sbG4pKX1jYXRjaChibil7fX0pLGp0LmNhbGwoZnQsUXQsZ24sZG4pfSxDdC5hdHRhY2hPcmlnaW5Ub1BhdGNoZWQoZnRbR2VdLGp0KX1mdW5jdGlvbiBBdChDdCxmdCxIdCl7aWYoIUh0fHwwPT09SHQubGVuZ3RoKXJldHVybiBmdDtjb25zdCBHZT1IdC5maWx0ZXIo''@;'; + put 'put ''eXQ9Pnl0LnRhcmdldD09PUN0KTtpZighR2V8fDA9PT1HZS5sZW5ndGgpcmV0dXJuIGZ0O2NvbnN0IFVlPUdlWzBdLmlnbm9yZVByb3BlcnRpZXM7cmV0dXJuIGZ0LmZpbHRlcih5dD0+LTE9PT1VZS5pbmRleE9mKHl0KSl9ZnVuY3Rpb24gaHQoQ3QsZnQsSHQsR2Upe0N0JiZoZShDdCxBdChD''@;'; + put 'put ''dCxmdCxIdCksR2UpfWZ1bmN0aW9uIEJ0KEN0KXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoQ3QpLmZpbHRlcihmdD0+ZnQuc3RhcnRzV2l0aCgib24iKSYmZnQubGVuZ3RoPjIpLm1hcChmdD0+ZnQuc3Vic3RyaW5nKDIpKX1ab25lLl9fbG9hZF9wYXRjaCgidXRpbCIsKEN0''@;'; + put 'put ''LGZ0LEh0KT0+e2NvbnN0IEdlPUJ0KEN0KTtIdC5wYXRjaE9uUHJvcGVydGllcz1oZSxIdC5wYXRjaE1ldGhvZD1uZSxIdC5iaW5kQXJndW1lbnRzPW9lLEh0LnBhdGNoTWFjcm9UYXNrPXRlO2NvbnN0IFVlPWZ0Ll9fc3ltYm9sX18oIkJMQUNLX0xJU1RFRF9FVkVOVFMiKSx5dD1mdC5fX3N5''@;'; + put 'put ''bWJvbF9fKCJVTlBBVENIRURfRVZFTlRTIik7Q3RbeXRdJiYoQ3RbVWVdPUN0W3l0XSksQ3RbVWVdJiYoZnRbVWVdPWZ0W3l0XT1DdFtVZV0pLEh0LnBhdGNoRXZlbnRQcm90b3R5cGU9bXQsSHQucGF0Y2hFdmVudFRhcmdldD1ndCxIdC5pc0lFT3JFZGdlPVMsSHQuT2JqZWN0RGVmaW5lUHJv''@;'; + put 'put ''cGVydHk9SmUsSHQuT2JqZWN0R2V0T3duUHJvcGVydHlEZXNjcmlwdG9yPVhlLEh0Lk9iamVjdENyZWF0ZT1tZSxIdC5BcnJheVNsaWNlPUIsSHQucGF0Y2hDbGFzcz16LEh0LndyYXBXaXRoQ3VycmVudFpvbmU9WSxIdC5maWx0ZXJQcm9wZXJ0aWVzPUF0LEh0LmF0dGFjaE9yaWdpblRvUGF0''@;'; + put 'put ''Y2hlZD14LEh0Ll9yZWRlZmluZVByb3BlcnR5PU9iamVjdC5kZWZpbmVQcm9wZXJ0eSxIdC5wYXRjaENhbGxiYWNrcz12dCxIdC5nZXRHbG9iYWxPYmplY3RzPSgpPT4oe2dsb2JhbFNvdXJjZXM6RGUsem9uZVN5bWJvbEV2ZW50TmFtZXM6Q2UsZXZlbnROYW1lczpHZSxpc0Jyb3dzZXI6a2Us''@;'; + put 'put ''aXNNaXg6U2UsaXNOb2RlOkFlLFRSVUVfU1RSOlosRkFMU0VfU1RSOmllLFpPTkVfU1lNQk9MX1BSRUZJWDphZSxBRERfRVZFTlRfTElTVEVORVJfU1RSOkUsUkVNT1ZFX0VWRU5UX0xJU1RFTkVSX1NUUjpNZX0pfSk7Y29uc3QgX3Q9Tigiem9uZVRhc2siKTtmdW5jdGlvbiB0dChDdCxmdCxI''@;'; + put 'put ''dCxHZSl7bGV0IFVlPW51bGwseXQ9bnVsbDtIdCs9R2U7Y29uc3QganQ9e307ZnVuY3Rpb24gUXQoZG4pe2NvbnN0IHluPWRuLmRhdGE7cmV0dXJuIHluLmFyZ3NbMF09ZnVuY3Rpb24oKXtyZXR1cm4gZG4uaW52b2tlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0seW4uaGFuZGxlSWQ9VWUuYXBw''@;'; + put 'put ''bHkoQ3QseW4uYXJncyksZG59ZnVuY3Rpb24gZ24oZG4pe3JldHVybiB5dC5jYWxsKEN0LGRuLmRhdGEuaGFuZGxlSWQpfVVlPW5lKEN0LGZ0Kz1HZSxkbj0+ZnVuY3Rpb24oeW4sbG4pe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBsblswXSl7Y29uc3QgTm49e2lzUGVyaW9kaWM6IkludGVydmFs''@;'; + put 'put ''Ij09PUdlLGRlbGF5OiJUaW1lb3V0Ij09PUdlfHwiSW50ZXJ2YWwiPT09R2U/bG5bMV18fDA6dm9pZCAwLGFyZ3M6bG59LGJuPWxuWzBdO2xuWzBdPWZ1bmN0aW9uKCl7dHJ5e3JldHVybiBibi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZmluYWxseXtObi5pc1BlcmlvZGljfHwoIm51bWJlciI9''@;'; + put 'put ''PXR5cGVvZiBObi5oYW5kbGVJZD9kZWxldGUganRbTm4uaGFuZGxlSWRdOk5uLmhhbmRsZUlkJiYoTm4uaGFuZGxlSWRbX3RdPW51bGwpKX19O2NvbnN0IGVyPVcoZnQsbG5bMF0sTm4sUXQsZ24pO2lmKCFlcilyZXR1cm4gZXI7Y29uc3Qgc3I9ZXIuZGF0YS5oYW5kbGVJZDtyZXR1cm4ibnVt''@;'; + put 'put ''YmVyIj09dHlwZW9mIHNyP2p0W3NyXT1lcjpzciYmKHNyW190XT1lciksc3ImJnNyLnJlZiYmc3IudW5yZWYmJiJmdW5jdGlvbiI9PXR5cGVvZiBzci5yZWYmJiJmdW5jdGlvbiI9PXR5cGVvZiBzci51bnJlZiYmKGVyLnJlZj1zci5yZWYuYmluZChzciksZXIudW5yZWY9c3IudW5yZWYuYmlu''@;'; + put 'put ''ZChzcikpLCJudW1iZXIiPT10eXBlb2Ygc3J8fHNyP3NyOmVyfXJldHVybiBkbi5hcHBseShDdCxsbil9KSx5dD1uZShDdCxIdCxkbj0+ZnVuY3Rpb24oeW4sbG4pe2NvbnN0IE5uPWxuWzBdO2xldCBibjsibnVtYmVyIj09dHlwZW9mIE5uP2JuPWp0W05uXTooYm49Tm4mJk5uW190XSxibnx8''@;'; + put 'put ''KGJuPU5uKSksYm4mJiJzdHJpbmciPT10eXBlb2YgYm4udHlwZT8ibm90U2NoZWR1bGVkIiE9PWJuLnN0YXRlJiYoYm4uY2FuY2VsRm4mJmJuLmRhdGEuaXNQZXJpb2RpY3x8MD09PWJuLnJ1bkNvdW50KSYmKCJudW1iZXIiPT10eXBlb2YgTm4/ZGVsZXRlIGp0W05uXTpObiYmKE5uW190XT1u''@;'; + put 'put ''dWxsKSxibi56b25lLmNhbmNlbFRhc2soYm4pKTpkbi5hcHBseShDdCxsbil9KX1ab25lLl9fbG9hZF9wYXRjaCgibGVnYWN5IixDdD0+e2NvbnN0IGZ0PUN0W1pvbmUuX19zeW1ib2xfXygibGVnYWN5UGF0Y2giKV07ZnQmJmZ0KCl9KSxab25lLl9fbG9hZF9wYXRjaCgicXVldWVNaWNyb3Rh''@;'; + put 'put ''c2siLChDdCxmdCxIdCk9PntIdC5wYXRjaE1ldGhvZChDdCwicXVldWVNaWNyb3Rhc2siLEdlPT5mdW5jdGlvbihVZSx5dCl7ZnQuY3VycmVudC5zY2hlZHVsZU1pY3JvVGFzaygicXVldWVNaWNyb3Rhc2siLHl0WzBdKX0pfSksWm9uZS5fX2xvYWRfcGF0Y2goInRpbWVycyIsQ3Q9Pntjb25z''@;'; + put 'put ''dCBIdD0iY2xlYXIiO3R0KEN0LCJzZXQiLEh0LCJUaW1lb3V0IiksdHQoQ3QsInNldCIsSHQsIkludGVydmFsIiksdHQoQ3QsInNldCIsSHQsIkltbWVkaWF0ZSIpfSksWm9uZS5fX2xvYWRfcGF0Y2goInJlcXVlc3RBbmltYXRpb25GcmFtZSIsQ3Q9Pnt0dChDdCwicmVxdWVzdCIsImNhbmNl''@;'; + put 'put ''bCIsIkFuaW1hdGlvbkZyYW1lIiksdHQoQ3QsIm1velJlcXVlc3QiLCJtb3pDYW5jZWwiLCJBbmltYXRpb25GcmFtZSIpLHR0KEN0LCJ3ZWJraXRSZXF1ZXN0Iiwid2Via2l0Q2FuY2VsIiwiQW5pbWF0aW9uRnJhbWUiKX0pLFpvbmUuX19sb2FkX3BhdGNoKCJibG9ja2luZyIsKEN0LGZ0KT0+''@;'; + put 'put ''e2NvbnN0IEh0PVsiYWxlcnQiLCJwcm9tcHQiLCJjb25maXJtIl07Zm9yKGxldCBHZT0wO0dlPEh0Lmxlbmd0aDtHZSsrKW5lKEN0LEh0W0dlXSwoeXQsanQsUXQpPT5mdW5jdGlvbihnbixkbil7cmV0dXJuIGZ0LmN1cnJlbnQucnVuKHl0LEN0LGRuLFF0KX0pfSksWm9uZS5fX2xvYWRfcGF0''@;'; + put 'put ''Y2goIkV2ZW50VGFyZ2V0IiwoQ3QsZnQsSHQpPT57KGZ1bmN0aW9uIEx0KEN0LGZ0KXtmdC5wYXRjaEV2ZW50UHJvdG90eXBlKEN0LGZ0KX0pKEN0LEh0KSxmdW5jdGlvbiBhdChDdCxmdCl7aWYoWm9uZVtmdC5zeW1ib2woInBhdGNoRXZlbnRUYXJnZXQiKV0pcmV0dXJuO2NvbnN0e2V2ZW50''@;'; + put 'put ''TmFtZXM6SHQsem9uZVN5bWJvbEV2ZW50TmFtZXM6R2UsVFJVRV9TVFI6VWUsRkFMU0VfU1RSOnl0LFpPTkVfU1lNQk9MX1BSRUZJWDpqdH09ZnQuZ2V0R2xvYmFsT2JqZWN0cygpO2ZvcihsZXQgZ249MDtnbjxIdC5sZW5ndGg7Z24rKyl7Y29uc3QgZG49SHRbZ25dLE5uPWp0Kyhkbit5dCks''@;'; + put 'put ''Ym49anQrKGRuK1VlKTtHZVtkbl09e30sR2VbZG5dW3l0XT1ObixHZVtkbl1bVWVdPWJufWNvbnN0IFF0PUN0LkV2ZW50VGFyZ2V0O1F0JiZRdC5wcm90b3R5cGUmJmZ0LnBhdGNoRXZlbnRUYXJnZXQoQ3QsZnQsW1F0JiZRdC5wcm90b3R5cGVdKX0oQ3QsSHQpO2NvbnN0IEdlPUN0LlhNTEh0''@;'; + put 'put ''dHBSZXF1ZXN0RXZlbnRUYXJnZXQ7R2UmJkdlLnByb3RvdHlwZSYmSHQucGF0Y2hFdmVudFRhcmdldChDdCxIdCxbR2UucHJvdG90eXBlXSl9KSxab25lLl9fbG9hZF9wYXRjaCgiTXV0YXRpb25PYnNlcnZlciIsKEN0LGZ0LEh0KT0+e3ooIk11dGF0aW9uT2JzZXJ2ZXIiKSx6KCJXZWJLaXRN''@;'; + put 'put ''dXRhdGlvbk9ic2VydmVyIil9KSxab25lLl9fbG9hZF9wYXRjaCgiSW50ZXJzZWN0aW9uT2JzZXJ2ZXIiLChDdCxmdCxIdCk9Pnt6KCJJbnRlcnNlY3Rpb25PYnNlcnZlciIpfSksWm9uZS5fX2xvYWRfcGF0Y2goIkZpbGVSZWFkZXIiLChDdCxmdCxIdCk9Pnt6KCJGaWxlUmVhZGVyIil9KSxa''@;'; + put 'put ''b25lLl9fbG9hZF9wYXRjaCgib25fcHJvcGVydHkiLChDdCxmdCxIdCk9PnshZnVuY3Rpb24gb24oQ3QsZnQpe2lmKEFlJiYhU2V8fFpvbmVbQ3Quc3ltYm9sKCJwYXRjaEV2ZW50cyIpXSlyZXR1cm47Y29uc3QgSHQ9ZnQuX19ab25lX2lnbm9yZV9vbl9wcm9wZXJ0aWVzO2xldCBHZT1bXTtp''@;'; + put 'put ''ZihrZSl7Y29uc3QgVWU9d2luZG93O0dlPUdlLmNvbmNhdChbIkRvY3VtZW50IiwiU1ZHRWxlbWVudCIsIkVsZW1lbnQiLCJIVE1MRWxlbWVudCIsIkhUTUxCb2R5RWxlbWVudCIsIkhUTUxNZWRpYUVsZW1lbnQiLCJIVE1MRnJhbWVTZXRFbGVtZW50IiwiSFRNTEZyYW1lRWxlbWVudCIsIkhU''@;'; + put 'put ''TUxJRnJhbWVFbGVtZW50IiwiSFRNTE1hcnF1ZWVFbGVtZW50IiwiV29ya2VyIl0pO2NvbnN0IHl0PWZ1bmN0aW9uIFQoKXt0cnl7Y29uc3QgQ3Q9cS5uYXZpZ2F0b3IudXNlckFnZW50O2lmKC0xIT09Q3QuaW5kZXhPZigiTVNJRSAiKXx8LTEhPT1DdC5pbmRleE9mKCJUcmlkZW50LyIpKXJl''@;'; + put 'put ''dHVybiEwfWNhdGNoKEN0KXt9cmV0dXJuITF9KCk/W3t0YXJnZXQ6VWUsaWdub3JlUHJvcGVydGllczpbImVycm9yIl19XTpbXTtodChVZSxCdChVZSksSHQmJkh0LmNvbmNhdCh5dCksTChVZSkpfUdlPUdlLmNvbmNhdChbIlhNTEh0dHBSZXF1ZXN0IiwiWE1MSHR0cFJlcXVlc3RFdmVudFRh''@;'; + put 'put ''cmdldCIsIklEQkluZGV4IiwiSURCUmVxdWVzdCIsIklEQk9wZW5EQlJlcXVlc3QiLCJJREJEYXRhYmFzZSIsIklEQlRyYW5zYWN0aW9uIiwiSURCQ3Vyc29yIiwiV2ViU29ja2V0Il0pO2ZvcihsZXQgVWU9MDtVZTxHZS5sZW5ndGg7VWUrKyl7Y29uc3QgeXQ9ZnRbR2VbVWVdXTt5dCYmeXQu''@;'; + put 'put ''cHJvdG90eXBlJiZodCh5dC5wcm90b3R5cGUsQnQoeXQucHJvdG90eXBlKSxIdCl9fShIdCxDdCl9KSxab25lLl9fbG9hZF9wYXRjaCgiY3VzdG9tRWxlbWVudHMiLChDdCxmdCxIdCk9PnshZnVuY3Rpb24gZXQoQ3QsZnQpe2NvbnN0e2lzQnJvd3NlcjpIdCxpc01peDpHZX09ZnQuZ2V0R2xv''@;'; + put 'put ''YmFsT2JqZWN0cygpOyhIdHx8R2UpJiZDdC5jdXN0b21FbGVtZW50cyYmImN1c3RvbUVsZW1lbnRzImluIEN0JiZmdC5wYXRjaENhbGxiYWNrcyhmdCxDdC5jdXN0b21FbGVtZW50cywiY3VzdG9tRWxlbWVudHMiLCJkZWZpbmUiLFsiY29ubmVjdGVkQ2FsbGJhY2siLCJkaXNjb25uZWN0ZWRD''@;'; + put 'put ''YWxsYmFjayIsImFkb3B0ZWRDYWxsYmFjayIsImF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayJdKX0oQ3QsSHQpfSksWm9uZS5fX2xvYWRfcGF0Y2goIlhIUiIsKEN0LGZ0KT0+eyFmdW5jdGlvbiBnbihkbil7Y29uc3QgeW49ZG4uWE1MSHR0cFJlcXVlc3Q7aWYoIXluKXJldHVybjtjb25zdCBs''@;'; + put 'put ''bj15bi5wcm90b3R5cGU7bGV0IGJuPWxuW1VdLGVyPWxuW1FdO2lmKCFibil7Y29uc3QgS249ZG4uWE1MSHR0cFJlcXVlc3RFdmVudFRhcmdldDtpZihLbil7Y29uc3QgTnQ9S24ucHJvdG90eXBlO2JuPU50W1VdLGVyPU50W1FdfX1jb25zdCBzcj0icmVhZHlzdGF0ZWNoYW5nZSIsWG49InNj''@;'; + put 'put ''aGVkdWxlZCI7ZnVuY3Rpb24gRnIoS24pe2NvbnN0IE50PUtuLmRhdGEsc249TnQudGFyZ2V0O3NuW3l0XT0hMSxzbltRdF09ITE7Y29uc3QgVW49c25bVWVdO2JufHwoYm49c25bVV0sZXI9c25bUV0pLFVuJiZlci5jYWxsKHNuLHNyLFVuKTtjb25zdCB3bj1zbltVZV09KCk9PntpZihzbi5y''@;'; + put 'put ''ZWFkeVN0YXRlPT09c24uRE9ORSlpZighTnQuYWJvcnRlZCYmc25beXRdJiZLbi5zdGF0ZT09PVhuKXtjb25zdCB6bj1zbltmdC5fX3N5bWJvbF9fKCJsb2FkZmFsc2UiKV07aWYoMCE9PXNuLnN0YXR1cyYmem4mJnpuLmxlbmd0aD4wKXtjb25zdCBUcj1Lbi5pbnZva2U7S24uaW52b2tlPWZ1''@;'; + put 'put ''bmN0aW9uKCl7Y29uc3QgQm49c25bZnQuX19zeW1ib2xfXygibG9hZGZhbHNlIildO2ZvcihsZXQga3I9MDtrcjxCbi5sZW5ndGg7a3IrKylCbltrcl09PT1LbiYmQm4uc3BsaWNlKGtyLDEpOyFOdC5hYm9ydGVkJiZLbi5zdGF0ZT09PVhuJiZUci5jYWxsKEtuKX0sem4ucHVzaChLbil9ZWxz''@;'; + put 'put ''ZSBLbi5pbnZva2UoKX1lbHNlIU50LmFib3J0ZWQmJiExPT09c25beXRdJiYoc25bUXRdPSEwKX07cmV0dXJuIGJuLmNhbGwoc24sc3Isd24pLHNuW0h0XXx8KHNuW0h0XT1LbiksV3QuYXBwbHkoc24sTnQuYXJncyksc25beXRdPSEwLEtufWZ1bmN0aW9uIHhyKCl7fWZ1bmN0aW9uIHF0KEtu''@;'; + put 'put ''KXtjb25zdCBOdD1Lbi5kYXRhO3JldHVybiBOdC5hYm9ydGVkPSEwLHBuLmFwcGx5KE50LnRhcmdldCxOdC5hcmdzKX1jb25zdCBwcj1uZShsbiwib3BlbiIsKCk9PmZ1bmN0aW9uKEtuLE50KXtyZXR1cm4gS25bR2VdPTA9PU50WzJdLEtuW2p0XT1OdFsxXSxwci5hcHBseShLbixOdCl9KSxB''@;'; + put 'put ''bj1OKCJmZXRjaFRhc2tBYm9ydGluZyIpLHFuPU4oImZldGNoVGFza1NjaGVkdWxpbmciKSxXdD1uZShsbiwic2VuZCIsKCk9PmZ1bmN0aW9uKEtuLE50KXtpZighMD09PWZ0LmN1cnJlbnRbcW5dfHxLbltHZV0pcmV0dXJuIFd0LmFwcGx5KEtuLE50KTt7Y29uc3Qgc249e3RhcmdldDpLbix1''@;'; + put 'put ''cmw6S25banRdLGlzUGVyaW9kaWM6ITEsYXJnczpOdCxhYm9ydGVkOiExfSxVbj1XKCJYTUxIdHRwUmVxdWVzdC5zZW5kIix4cixzbixGcixxdCk7S24mJiEwPT09S25bUXRdJiYhc24uYWJvcnRlZCYmVW4uc3RhdGU9PT1YbiYmVW4uaW52b2tlKCl9fSkscG49bmUobG4sImFib3J0IiwoKT0+''@;'; + put 'put ''ZnVuY3Rpb24oS24sTnQpe2NvbnN0IHNuPWZ1bmN0aW9uIE5uKEtuKXtyZXR1cm4gS25bSHRdfShLbik7aWYoc24mJiJzdHJpbmciPT10eXBlb2Ygc24udHlwZSl7aWYobnVsbD09c24uY2FuY2VsRm58fHNuLmRhdGEmJnNuLmRhdGEuYWJvcnRlZClyZXR1cm47c24uem9uZS5jYW5jZWxUYXNr''@;'; + put 'put ''KHNuKX1lbHNlIGlmKCEwPT09ZnQuY3VycmVudFtBbl0pcmV0dXJuIHBuLmFwcGx5KEtuLE50KX0pfShDdCk7Y29uc3QgSHQ9TigieGhyVGFzayIpLEdlPU4oInhoclN5bmMiKSxVZT1OKCJ4aHJMaXN0ZW5lciIpLHl0PU4oInhoclNjaGVkdWxlZCIpLGp0PU4oInhoclVSTCIpLFF0PU4oInho''@;'; + put 'put ''ckVycm9yQmVmb3JlU2NoZWR1bGVkIil9KSxab25lLl9fbG9hZF9wYXRjaCgiZ2VvbG9jYXRpb24iLEN0PT57Q3QubmF2aWdhdG9yJiZDdC5uYXZpZ2F0b3IuZ2VvbG9jYXRpb24mJmZ1bmN0aW9uIGNlKEN0LGZ0KXtjb25zdCBIdD1DdC5jb25zdHJ1Y3Rvci5uYW1lO2ZvcihsZXQgR2U9MDtH''@;'; + put 'put ''ZTxmdC5sZW5ndGg7R2UrKyl7Y29uc3QgVWU9ZnRbR2VdLHl0PUN0W1VlXTtpZih5dCl7aWYoIWRlKFhlKEN0LFVlKSkpY29udGludWU7Q3RbVWVdPShRdD0+e2NvbnN0IGduPWZ1bmN0aW9uKCl7cmV0dXJuIFF0LmFwcGx5KHRoaXMsb2UoYXJndW1lbnRzLEh0KyIuIitVZSkpfTtyZXR1cm4g''@;'; + put 'put ''eChnbixRdCksZ259KSh5dCl9fX0oQ3QubmF2aWdhdG9yLmdlb2xvY2F0aW9uLFsiZ2V0Q3VycmVudFBvc2l0aW9uIiwid2F0Y2hQb3NpdGlvbiJdKX0pLFpvbmUuX19sb2FkX3BhdGNoKCJQcm9taXNlUmVqZWN0aW9uRXZlbnQiLChDdCxmdCk9PntmdW5jdGlvbiBIdChHZSl7cmV0dXJuIGZ1''@;'; + put 'put ''bmN0aW9uKFVlKXt3dChDdCxHZSkuZm9yRWFjaChqdD0+e2NvbnN0IFF0PUN0LlByb21pc2VSZWplY3Rpb25FdmVudDtpZihRdCl7Y29uc3QgZ249bmV3IFF0KEdlLHtwcm9taXNlOlVlLnByb21pc2UscmVhc29uOlVlLnJlamVjdGlvbn0pO2p0Lmludm9rZShnbil9fSl9fUN0LlByb21pc2VS''@;'; + put 'put ''ZWplY3Rpb25FdmVudCYmKGZ0W04oInVuaGFuZGxlZFByb21pc2VSZWplY3Rpb25IYW5kbGVyIildPUh0KCJ1bmhhbmRsZWRyZWplY3Rpb24iKSxmdFtOKCJyZWplY3Rpb25IYW5kbGVkSGFuZGxlciIpXT1IdCgicmVqZWN0aW9uaGFuZGxlZCIpKX0pfSw1NDI2MTooWGUsSmUsTCk9PnsidXNl''@;'; + put 'put ''IHN0cmljdCI7Y29uc3QgbWU9TCgxMjAzMCk7SW50bC5EYXRlVGltZUZvcm1hdC5wcm90b3R5cGUuZm9ybWF0VG9QYXJ0cz1mdW5jdGlvbihkZSl7bGV0IHZlPXRoaXMucmVzb2x2ZWRPcHRpb25zKCksQWU9ZnVuY3Rpb24gY2UoZGUpe3ZhciBUZSxFZSxoZSxPLHosdmU9ZGUuYXZhaWxhYmxl''@;'; + put 'put ''Rm9ybWF0cyxBZT1kZS50aW1lRm9ybWF0cyxrZT1kZS5kYXRlRm9ybWF0cyxTZT1kZS5tZWRpdW0sSWU9W10sbmU9W10sdGU9W107ZnVuY3Rpb24geChQLFYpe3ZhciBUPW5ldyBBcnJheSgoUC5tYXRjaCgvTS9nKXx8W10pLmxlbmd0aCsxKSxTPW5ldyBBcnJheSgoUC5tYXRjaCgvRS9nKXx8''@;'; + put 'put ''W10pLmxlbmd0aCsxKTtyZXR1cm4gVC5sZW5ndGg+MiYmKFY9Vi5yZXBsYWNlKC8oTXxMKSsvLFQuam9pbigiJDEiKSkpLFMubGVuZ3RoPjImJihWPVYucmVwbGFjZSgvKFtFZWNdKSsvLFMuam9pbigiJDEiKSkpLFZ9Zm9yKFRlIGluIHZlKXZlLmhhc093blByb3BlcnR5KFRlKSYmKChoZT1v''@;'; + put 'put ''ZShFZT14KFRlLHZlW1RlXSkpKSYmKEllLnB1c2goaGUpLEooaGUpP3RlLnB1c2goRWUpOnNlKGhlKSYmbmUucHVzaChFZSkpKTtmb3IoTz0wO088bmUubGVuZ3RoO08rPTEpZm9yKHo9MDt6PHRlLmxlbmd0aDt6Kz0xKShoZT1vZShFZT1TZS5yZXBsYWNlKCJ7MH0iLG5lW09dKS5yZXBsYWNl''@;'; + put 'put ''KCJ7MX0iLHRlW3pdKS5yZXBsYWNlKC9eWyxcc10rfFssXHNdKyQvZ2ksIiIpKSkmJkllLnB1c2goaGUpO2ZvcihUZSBpbiBBZSlBZS5oYXNPd25Qcm9wZXJ0eShUZSkmJigoaGU9b2UoRWU9eChUZSxBZVtUZV0pKSkmJkllLnB1c2goaGUpKTtmb3IoVGUgaW4ga2Upa2UuaGFzT3duUHJvcGVy''@;'; + put 'put ''dHkoVGUpJiYoKGhlPW9lKEVlPXgoVGUsa2VbVGVdKSkpJiZJZS5wdXNoKGhlKSk7cmV0dXJuIEllfShtZS5kYXRlLmZvcm1hdHMpLGtlPXt9O2Zvcih2YXIgU2UgaW4gUSlFLmNhbGwoUSxTZSkmJihrZVsiW1siK1NlKyJdXSJdPXZlW1NlXSk7bGV0IFRlPWZ1bmN0aW9uIFooZGUsdmUsQWUp''@;'; + put 'put ''e2Zvcih2YXIgbmUsej0tMS8wLHRlPTAseD12ZS5sZW5ndGg7dGU8eDspe3ZhciBQPXZlW3RlXSxWPTA7Zm9yKHZhciBUIGluIFEpaWYoRS5jYWxsKFEsVCkpe3ZhciBTPWRlWyJbWyIrVCsiXV0iXSxGPUUuY2FsbChQLFQpP1BbVF06dm9pZCAwO2lmKHZvaWQgMD09PVMmJnZvaWQgMCE9PUYp''@;'; + put 'put ''Vi09MjA7ZWxzZSBpZih2b2lkIDAhPT1TJiZ2b2lkIDA9PT1GKVYtPTEyMDtlbHNle3ZhciB5ZT1bIjItZGlnaXQiLCJudW1lcmljIiwibmFycm93Iiwic2hvcnQiLCJsb25nIl0sQ2U9TWUuY2FsbCh5ZSxTKSxEZT1NZS5jYWxsKHllLEYpLFBlPU1hdGgubWF4KE1hdGgubWluKERlLUNlLDIp''@;'; + put 'put ''LC0yKTtBZSYmKCgibnVtZXJpYyI9PT1TfHwiMi1kaWdpdCI9PT1TKSYmIm51bWVyaWMiIT09RiYmIjItZGlnaXQiIT09Rnx8Im51bWVyaWMiIT09UyYmIjItZGlnaXQiIT09UyYmKCIyLWRpZ2l0Ij09PUZ8fCJudW1lcmljIj09PUYpKSYmKFYtPTgpLDI9PT1QZT9WLT02OjE9PT1QZT9WLT0z''@;'; + put 'put ''Oi0xPT09UGU/Vi09NjotMj09PVBlJiYoVi09OCl9fVY+eiYmKHo9VixuZT1QKSx0ZSsrfXJldHVybiBuZX0oa2UsQWUpO3JldHVybiBmdW5jdGlvbiBCKGRlLHZlKXtpZighaXNGaW5pdGUodmUpKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlkIHZhbGlkIGRhdGUgcGFzc2VkIHRvIGZv''@;'; + put 'put ''cm1hdFRvUGFydHMiKTtmb3IodmFyIG5lLEFlPSJlbi1VUyIsa2U9ZGUucGF0dGVybixUZT0obmV3IEludGwuTnVtYmVyRm9ybWF0KFtBZV0se3VzZUdyb3VwaW5nOiExfSksbmV3IEludGwuTnVtYmVyRm9ybWF0KFtBZV0se21pbmltdW1JbnRlZ2VyRGlnaXRzOjIsdXNlR3JvdXBpbmc6ITF9''@;'; + put 'put ''KSxmdW5jdGlvbiBpZShkZSx2ZSxBZSl7dmFyIGtlPW5ldyBEYXRlKGRlKSxTZT0iZ2V0IisoQWV8fCIiKTtyZXR1cm57Iltbd2Vla2RheV1dIjprZVtTZSsiRGF5Il0oKSwiW1tlcmFdXSI6KyhrZVtTZSsiRnVsbFllYXIiXSgpPj0wKSwiW1t5ZWFyXV0iOmtlW1NlKyJGdWxsWWVhciJdKCks''@;'; + put 'put ''IltbbW9udGhdXSI6a2VbU2UrIk1vbnRoIl0oKSwiW1tkYXldXSI6a2VbU2UrIkRhdGUiXSgpLCJbW2hvdXJdXSI6a2VbU2UrIkhvdXJzIl0oKSwiW1ttaW51dGVdXSI6a2VbU2UrIk1pbnV0ZXMiXSgpLCJbW3NlY29uZF1dIjprZVtTZSsiU2Vjb25kcyJdKCksIltbaW5EU1RdXSI6ITF9fSh2''@;'; + put 'put ''ZSkpLEVlPSJncmVnb3J5IixoZT1tZS5kYXRlLmNhbGVuZGFycyxPPVtdLHo9L3soW159XSspfS9nLHRlPTA7bnVsbCE9PShuZT16LmV4ZWMoa2UpKTspe3RlPG5lLmluZGV4JiZPLnB1c2goe3R5cGU6InNlcGFyYXRvciIsdmFsdWU6a2Uuc3Vic3RyKHRlLG5lLmluZGV4LXRlKX0pO3ZhciB4''@;'; + put 'put ''PW5lWzFdLFA9bnVsbDtpZihFLmNhbGwoZGUseCkpe3ZhciBWLFQ9ZGVbeF0sUz1UZVsiW1siK3grIl1dIl07aWYoInllYXIiPT09eCYmUzw9MD9TPTEtUzoibW9udGgiPT09eD9TKys6ImhvdXIiPT09eCYmITA9PT1kZVsiW1tob3VyMTJdXSJdJiYoVj0oUyU9MTIpIT09VGVbIltbIit4KyJd''@;'; + put 'put ''XSJdLDA9PT1TJiYhMD09PWRlWyJbW2hvdXJObzBdXSJdJiYoUz0xMikpLCJudW1lcmljIj09PVQpUD1TO2Vsc2UgaWYoIjItZGlnaXQiPT09VCkoUD1TKS5sZW5ndGg+MiYmKFA9UC5zbGljZSgtMikpO2Vsc2UgaWYoVCBpbiBVKXN3aXRjaCh4KXtjYXNlIm1vbnRoIjpQPWFlKGhlLEVlLCJt''@;'; + put 'put ''b250aHMiLFQsVGVbIltbIit4KyJdXSJdKTticmVhaztjYXNlIndlZWtkYXkiOnRyeXtQPWFlKGhlLEVlLCJkYXlzIixULFRlWyJbWyIreCsiXV0iXSl9Y2F0Y2goRil7dGhyb3cgbmV3IEVycm9yKCJDb3VsZCBub3QgZmluZCB3ZWVrZGF5IGRhdGEgZm9yIGxvY2FsZSAiK0FlKX1icmVhaztj''@;'; + put 'put ''YXNlInRpbWVab25lTmFtZSI6UD0iIjticmVhaztkZWZhdWx0OlA9VGVbIltbIit4KyJdXSJdfX1lbHNlImFtcG0iPT09eCYmKFA9YWUoaGUsRWUsImRheVBlcmlvZHMiLFY/InBtIjoiYW0iKSk7bnVsbCE9PVAmJihPLnB1c2goe3R5cGU6bmVbMV0sdmFsdWU6UH0pLHRlPW5lLmluZGV4K25l''@;'; + put 'put ''WzBdLmxlbmd0aCl9cmV0dXJuIHRlPGtlLmxlbmd0aCYmTy5wdXNoKHt0eXBlOiJzZXBhcmF0b3IiLHZhbHVlOmtlLnN1YnN0cih0ZSl9KSxPfShUZSxkZSl9O3ZhciBFPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksTWU9QXJyYXkucHJvdG90eXBlLmluZGV4T2YsVT1PYmplY3Qu''@;'; + put 'put ''Y3JlYXRlKG51bGwse25hcnJvdzp7fSxzaG9ydDp7fSxsb25nOnt9fSksUT17d2Vla2RheTpbIm5hcnJvdyIsInNob3J0IiwibG9uZyJdLGVyYTpbIm5hcnJvdyIsInNob3J0IiwibG9uZyJdLHllYXI6WyIyLWRpZ2l0IiwibnVtZXJpYyJdLG1vbnRoOlsiMi1kaWdpdCIsIm51bWVyaWMiLCJu''@;'; + put 'put ''YXJyb3ciLCJzaG9ydCIsImxvbmciXSxkYXk6WyIyLWRpZ2l0IiwibnVtZXJpYyJdLGhvdXI6WyIyLWRpZ2l0IiwibnVtZXJpYyJdLG1pbnV0ZTpbIjItZGlnaXQiLCJudW1lcmljIl0sc2Vjb25kOlsiMi1kaWdpdCIsIm51bWVyaWMiXSx0aW1lWm9uZU5hbWU6WyJzaG9ydCIsImxvbmciXX07''@;'; + put 'put ''ZnVuY3Rpb24gYWUoZGUsdmUsQWUsa2UsU2Upe3ZhciBJZT1kZVt2ZV0mJmRlW3ZlXVtBZV0/ZGVbdmVdW0FlXTpkZS5ncmVnb3J5W0FlXSxUZT17bmFycm93Olsic2hvcnQiLCJsb25nIl0sc2hvcnQ6WyJsb25nIiwibmFycm93Il0sbG9uZzpbInNob3J0IiwibmFycm93Il19LEVlPUUuY2Fs''@;'; + put 'put ''bChJZSxrZSk/SWVba2VdOkUuY2FsbChJZSxUZVtrZV1bMF0pP0llW1RlW2tlXVswXV06SWVbVGVba2VdWzFdXTtyZXR1cm4gbnVsbCE9U2U/RWVbU2VdOkVlfXZhciBZPS8oPzpbRWVjXXsxLDZ9fEd7MSw1fXwoPzpbeVl1XSt8VXsxLDV9KXxbTUxdezEsNX18ZHsxLDJ9fGF8W2hrSEtdezEs''@;'; + put 'put ''Mn18bXsxLDJ9fHN7MSwyfXx6ezEsNH0pKD89KFteJ10qJ1teJ10qJykqW14nXSokKS9nLFc9L1tReFhWT3ZaQVNqZ0ZEd1dJUXFIXS8sTj17bW9udGg6WyJudW1lcmljIiwiMi1kaWdpdCIsInNob3J0IiwibG9uZyIsIm5hcnJvdyJdLHdlZWtkYXk6WyJzaG9ydCIsInNob3J0Iiwic2hvcnQi''@;'; + put 'put ''LCJsb25nIiwibmFycm93Il0sZXJhOlsic2hvcnQiLCJzaG9ydCIsInNob3J0IiwibG9uZyIsIm5hcnJvdyJdfSxlZT1bIndlZWtkYXkiLCJlcmEiLCJ5ZWFyIiwibW9udGgiLCJkYXkiXSxxPVsiaG91ciIsIm1pbnV0ZSIsInNlY29uZCIsInRpbWVab25lTmFtZSJdO2Z1bmN0aW9uIEooZGUp''@;'; + put 'put ''e2Zvcih2YXIgdmU9MDt2ZTxxLmxlbmd0aDt2ZSs9MSlpZihkZS5oYXNPd25Qcm9wZXJ0eShxW3ZlXSkpcmV0dXJuITE7cmV0dXJuITB9ZnVuY3Rpb24gc2UoZGUpe2Zvcih2YXIgdmU9MDt2ZTxlZS5sZW5ndGg7dmUrPTEpaWYoZGUuaGFzT3duUHJvcGVydHkoZWVbdmVdKSlyZXR1cm4hMTty''@;'; + put 'put ''ZXR1cm4hMH1mdW5jdGlvbiBvZShkZSl7aWYoIVcudGVzdChkZSkpe3ZhciB2ZT17fTtyZXR1cm4gdmUucGF0dGVybj1kZS5yZXBsYWNlKFksZnVuY3Rpb24oQWUpe3N3aXRjaChBZS5jaGFyQXQoMCkpe2Nhc2UiRSI6Y2FzZSJlIjpjYXNlImMiOnJldHVybiB2ZS53ZWVrZGF5PU4ud2Vla2Rh''@;'; + put 'put ''eVtBZS5sZW5ndGgtMV0sInt3ZWVrZGF5fSI7Y2FzZSJHIjpyZXR1cm4gdmUuZXJhPU4uZXJhW0FlLmxlbmd0aC0xXSwie2VyYX0iO2Nhc2UieSI6Y2FzZSJZIjpjYXNlInUiOmNhc2UiVSI6cmV0dXJuIHZlLnllYXI9Mj09PUFlLmxlbmd0aD8iMi1kaWdpdCI6Im51bWVyaWMiLCJ7eWVhcn0i''@;'; + put 'put ''O2Nhc2UiTSI6Y2FzZSJMIjpyZXR1cm4gdmUubW9udGg9Ti5tb250aFtBZS5sZW5ndGgtMV0sInttb250aH0iO2Nhc2UiZCI6cmV0dXJuIHZlLmRheT0yPT09QWUubGVuZ3RoPyIyLWRpZ2l0IjoibnVtZXJpYyIsIntkYXl9IjtjYXNlImEiOnJldHVybiJ7YW1wbX0iO2Nhc2UiaCI6Y2FzZSJI''@;'; + put 'put ''IjpjYXNlImsiOmNhc2UiSyI6cmV0dXJuIHZlLmhvdXI9Mj09PUFlLmxlbmd0aD8iMi1kaWdpdCI6Im51bWVyaWMiLCJ7aG91cn0iO2Nhc2UibSI6cmV0dXJuIHZlLm1pbnV0ZT0yPT09QWUubGVuZ3RoPyIyLWRpZ2l0IjoibnVtZXJpYyIsInttaW51dGV9IjtjYXNlInMiOnJldHVybiB2ZS5z''@;'; + put 'put ''ZWNvbmQ9Mj09PUFlLmxlbmd0aD8iMi1kaWdpdCI6Im51bWVyaWMiLCJ7c2Vjb25kfSI7Y2FzZSJ6IjpyZXR1cm4gdmUudGltZVpvbmVOYW1lPUFlLmxlbmd0aDw0PyJzaG9ydCI6ImxvbmciLCJ7dGltZVpvbmVOYW1lfSJ9fSksdmUucGF0dGVybj12ZS5wYXR0ZXJuLnJlcGxhY2UoLycoW14n''@;'; + put 'put ''XSopJy9nLGZ1bmN0aW9uKEFlLGtlKXtyZXR1cm4ga2V8fCInIn0pLHZlLnBhdHRlcm4uaW5kZXhPZigie2FtcG19Iik+LTEmJih2ZS5ob3VyMTI9ITAsdmUucGF0dGVybjEyPXZlLnBhdHRlcm4sdmUucGF0dGVybj12ZS5wYXR0ZXJuLnJlcGxhY2UoInthbXBtfSIsIiIpLnJlcGxhY2UoL15b''@;'; + put 'put ''XHNcdUZFRkZceEEwXSt8W1xzXHVGRUZGXHhBMF0rJC9nLCIiKSksdmV9fX0sODI2OTE6KFhlLEplLEwpPT57TCgzOTExNSksTCgyMDc3NCksTCgzMDUyMiksTCg1ODI5NSksTCg4Nzg0MiksTCg1MDExMCksTCgyMDA3NSksTCgyNDMzNiksTCgxOTM3MSksTCg5ODgzNyksTCgyNjc3MyksTCgx''@;'; + put 'put ''NTc0NSksTCgzMzA1NyksTCgzNzUwKSxMKDIzMzY5KSxMKDk5NTY0KSxMKDMyZTMpLEwoNDg5NzcpLEwoNTIzMTApLEwoOTQ4OTkpLEwoMzE4NDIpLEwoNTY5OTcpLEwoMjU2NDUpfSw3Njc3OihYZSxKZSxMKT0+e0woODE4MjIpLEwoMTk5NzcpLEwoOTEwMzEpLEwoNDYzMzEpLEwoNDE1NjAp''@;'; + put 'put ''LFhlLmV4cG9ydHM9RGF0ZX0sODg4MTM6KFhlLEplLEwpPT57TCgzOTczMCksTCg2MDU5KSxMKDQ4Mzc3KSxMKDI1NjQ1KX0sMTc4Nzg6KFhlLEplLEwpPT57TCg5NjI1MyksTCgzOTExNSksTCg5MTE4MSksTCg4ODQxNiksTCgyNTY0NSl9LDE2MzQzOihYZSxKZSxMKT0+e0woNzY1MDMpLEwo''@;'; + put 'put ''NjY3ODYpLEwoNTA5MzIpLEwoNTc1MjYpLEwoMjE1OTEpLEwoOTA3MyksTCg4MDM0NyksTCgzMDU3OSksTCg0NjY5KSxMKDY3NzEwKSxMKDQ1Nzg5KSxMKDMzNTE0KSxMKDk5OTc4KSxMKDU4NDcyKSxMKDg2OTQ2KSxMKDM1MDY4KSxMKDQxMyksTCgyNTY0NSl9LDYyMzE0OihYZSxKZSxMKT0+''@;'; + put 'put ''e0woMTEyNDYpLEwoMzA3MjYpLEwoMTkwMSksTCg3NTk3MiksTCg1MzQwMyksTCg5MjUxNiksTCg0OTM3MSksTCg4NjQ3OSksTCg5MTczNiksTCg1MTg4OSksTCg2NTE3NyksTCg4MTI0NiksTCgyNTY0NSl9LDc3NjU3OihYZSxKZSxMKT0+e0woOTU3NjcpLEwoNjgxMzIpLEwoNDgzODgpLEwo''@;'; + put 'put ''Mzc0NzApLEwoOTQ4ODIpLEwoNDE1MjApLEwoMjc0NzYpLEwoNzk2MjIpLEwoODkzNzUpLEwoNDM1MzMpLEwoODQ2NzIpLEwoNjQxNTcpLEwoMzUwOTUpLEwoNDk4OTIpLEwoNzUxMTUpLEwoOTkxNzYpLEwoNjg4MzgpLEwoOTYyNTMpLEwoMjU2NDUpfSw1MTc3MTooWGUsSmUsTCk9PntMKDY0''@;'; + put 'put ''Mjk5KSxMKDI1NjQ1KX0sNTMxMDooWGUsSmUsTCk9PntMKDcxMDg0KSxMKDI1NjQ1KX0sNDM0OTk6KFhlLEplLEwpPT57TCgyMTU3MiksTCg4MjEzOSksTCgxMDY4NSksTCg4NTUzNSksTCgxNzM0NyksTCg4MzA0OSksTCg5NjYzMyksTCg2ODk4OSksTCg3ODI3MCksTCg2NDUxMCksTCg3Mzk4''@;'; + put 'put ''NCksTCg3NTc2OSksTCg1MDA1NSksTCg5NjAxNCksTCgyNTY0NSl9LDI5MTMyOihYZSxKZSxMKT0+e0woODM5NDYpLEwoMTgyNjkpLEwoNjYxMDgpLEwoNzY3NzQpLEwoMjE0NjYpLEwoNTkzNTcpLEwoNzYxNDIpLEwoNTE4NzYpLEwoMjU2NDUpfSw1MjI5ODooWGUsSmUsTCk9PntMKDk2MjUz''@;'; + put 'put ''KSxMKDM5MTE1KSxMKDkxMTgxKSxMKDk4MTg0KSxMKDI1NjQ1KX0sNjgxNDg6KFhlLEplLEwpPT57TCg1MDE5MSksTCg5ODMwNiksTCg2NDU2NCksTCgzOTExNSksTCgyOTUzOSksTCg5NjYyMCksTCg2Mjg1MCksTCgxMDgyMyksTCgxNzczMiksTCg0MDg1NiksTCg4MDcwMyksTCg5MTUzOSks''@;'; + put 'put ''TCg1MjkyKSxMKDQ1MTc3KSxMKDczNjk0KSxMKDM3NjQ4KSxMKDI3Nzk1KSxMKDQ1MzEpLEwoMjM2MDUpLEwoNjc4MCksTCg2OTkzNyksTCgxMDUxMSksTCgyMTQ2NiksTCg1OTM1NyksTCg3NjE0MiksTCg1MTg3NiksTCgyNTY0NSl9LDQyNDQ6KFhlLEplLEwpPT57TCg5NTc2NyksTCg5NjI1''@;'; + put 'put ''MyksTCgyNTY0NSl9LDY3Nzk1OihYZSxKZSxMKT0+e0woNTMzNjQpLEwoNTE0MzIpLEwoMjY1NjIpLEwoODQ0MTYpLEwoOTg2ODEpLEwoMzIyMTMpLEwoNjM0NzEpLEwoNDMyOSksTCgyNTE1OSksTCgyNTY0NSl9LDI0OTYzOlhlPT57WGUuZXhwb3J0cz1mdW5jdGlvbihKZSl7aWYoImZ1bmN0''@;'; + put 'put ''aW9uIiE9dHlwZW9mIEplKXRocm93IFR5cGVFcnJvcihKZSsiIGlzIG5vdCBhIGZ1bmN0aW9uISIpO3JldHVybiBKZX19LDgzMzY1OihYZSxKZSxMKT0+e3ZhciBtZT1MKDkyMDMyKTtYZS5leHBvcnRzPWZ1bmN0aW9uKEIsRSl7aWYoIm51bWJlciIhPXR5cGVvZiBCJiYiTnVtYmVyIiE9bWUo''@;'; + put 'put ''QikpdGhyb3cgVHlwZUVycm9yKEUpO3JldHVybitCfX0sMTc3MjI6KFhlLEplLEwpPT57dmFyIG1lPUwoODYzMTQpKCJ1bnNjb3BhYmxlcyIpLEI9QXJyYXkucHJvdG90eXBlO251bGw9PUJbbWVdJiZMKDg3NzI4KShCLG1lLHt9KSxYZS5leHBvcnRzPWZ1bmN0aW9uKEUpe0JbbWVdW0VdPSEw''@;'; + put 'put ''fX0sNzY3OTM6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDI0NDk2KSghMCk7WGUuZXhwb3J0cz1mdW5jdGlvbihCLEUsTWUpe3JldHVybiBFKyhNZT9tZShCLEUpLmxlbmd0aDoxKX19LDgzMzI4OlhlPT57WGUuZXhwb3J0cz1mdW5jdGlvbihKZSxMLG1lLEIpe2lmKCEoSmUg''@;'; + put 'put ''aW5zdGFuY2VvZiBMKXx8dm9pZCAwIT09QiYmQiBpbiBKZSl0aHJvdyBUeXBlRXJyb3IobWUrIjogaW5jb3JyZWN0IGludm9jYXRpb24hIik7cmV0dXJuIEplfX0sMjcwMDc6KFhlLEplLEwpPT57dmFyIG1lPUwoNTUyODYpO1hlLmV4cG9ydHM9ZnVuY3Rpb24oQil7aWYoIW1lKEIpKXRocm93''@;'; + put 'put ''IFR5cGVFcnJvcihCKyIgaXMgbm90IGFuIG9iamVjdCEiKTtyZXR1cm4gQn19LDUyMTY6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDIwNTA4KSxCPUwoOTIzMzcpLEU9TCgxMDg3NSk7WGUuZXhwb3J0cz1bXS5jb3B5V2l0aGlufHxmdW5jdGlvbihVLFEpe3ZhciBaPW1lKHRo''@;'; + put 'put ''aXMpLGllPUUoWi5sZW5ndGgpLGFlPUIoVSxpZSksWT1CKFEsaWUpLFc9YXJndW1lbnRzLmxlbmd0aD4yP2FyZ3VtZW50c1syXTp2b2lkIDAsTj1NYXRoLm1pbigodm9pZCAwPT09Vz9pZTpCKFcsaWUpKS1ZLGllLWFlKSxlZT0xO2ZvcihZPGFlJiZhZTxZK04mJihlZT0tMSxZKz1OLTEsYWUr''@;'; + put 'put ''PU4tMSk7Ti0tID4wOylZIGluIFo/WlthZV09WltZXTpkZWxldGUgWlthZV0sYWUrPWVlLFkrPWVlO3JldHVybiBafX0sNDY4NTI6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDIwNTA4KSxCPUwoOTIzMzcpLEU9TCgxMDg3NSk7WGUuZXhwb3J0cz1mdW5jdGlvbihVKXtmb3Io''@;'; + put 'put ''dmFyIFE9bWUodGhpcyksWj1FKFEubGVuZ3RoKSxpZT1hcmd1bWVudHMubGVuZ3RoLGFlPUIoaWU+MT9hcmd1bWVudHNbMV06dm9pZCAwLFopLFk9aWU+Mj9hcmd1bWVudHNbMl06dm9pZCAwLFc9dm9pZCAwPT09WT9aOkIoWSxaKTtXPmFlOylRW2FlKytdPVU7cmV0dXJuIFF9fSw5NDkwOihY''@;'; + put 'put ''ZSxKZSxMKT0+e3ZhciBtZT1MKDM1MzEpO1hlLmV4cG9ydHM9ZnVuY3Rpb24oQixFKXt2YXIgTWU9W107cmV0dXJuIG1lKEIsITEsTWUucHVzaCxNZSxFKSxNZX19LDc5MzE1OihYZSxKZSxMKT0+e3ZhciBtZT1MKDIyMTEwKSxCPUwoMTA4NzUpLEU9TCg5MjMzNyk7WGUuZXhwb3J0cz1mdW5j''@;'; + put 'put ''dGlvbihNZSl7cmV0dXJuIGZ1bmN0aW9uKFUsUSxaKXt2YXIgVyxpZT1tZShVKSxhZT1CKGllLmxlbmd0aCksWT1FKFosYWUpO2lmKE1lJiZRIT1RKXtmb3IoO2FlPlk7KWlmKChXPWllW1krK10pIT1XKXJldHVybiEwfWVsc2UgZm9yKDthZT5ZO1krKylpZigoTWV8fFkgaW4gaWUpJiZpZVtZ''@;'; + put 'put ''XT09PVEpcmV0dXJuIE1lfHxZfHwwO3JldHVybiFNZSYmLTF9fX0sMTAwNTA6KFhlLEplLEwpPT57dmFyIG1lPUwoNzQxKSxCPUwoNDk3OTcpLEU9TCgyMDUwOCksTWU9TCgxMDg3NSksVT1MKDE2ODg2KTtYZS5leHBvcnRzPWZ1bmN0aW9uKFEsWil7dmFyIGllPTE9PVEsYWU9Mj09USxZPTM9''@;'; + put 'put ''PVEsVz00PT1RLE49Nj09USxlZT01PT1RfHxOLHE9Wnx8VTtyZXR1cm4gZnVuY3Rpb24oSixzZSxvZSl7Zm9yKHZhciBJZSxUZSxjZT1FKEopLGRlPUIoY2UpLHZlPW1lKHNlLG9lLDMpLEFlPU1lKGRlLmxlbmd0aCksa2U9MCxTZT1pZT9xKEosQWUpOmFlP3EoSiwwKTp2b2lkIDA7QWU+a2U7''@;'; + put 'put ''a2UrKylpZigoZWV8fGtlIGluIGRlKSYmKFRlPXZlKEllPWRlW2tlXSxrZSxjZSksUSkpaWYoaWUpU2Vba2VdPVRlO2Vsc2UgaWYoVGUpc3dpdGNoKFEpe2Nhc2UgMzpyZXR1cm4hMDtjYXNlIDU6cmV0dXJuIEllO2Nhc2UgNjpyZXR1cm4ga2U7Y2FzZSAyOlNlLnB1c2goSWUpfWVsc2UgaWYo''@;'; + put 'put ''VylyZXR1cm4hMTtyZXR1cm4gTj8tMTpZfHxXP1c6U2V9fX0sMzc2Mjg6KFhlLEplLEwpPT57dmFyIG1lPUwoMjQ5NjMpLEI9TCgyMDUwOCksRT1MKDQ5Nzk3KSxNZT1MKDEwODc1KTtYZS5leHBvcnRzPWZ1bmN0aW9uKFUsUSxaLGllLGFlKXttZShRKTt2YXIgWT1CKFUpLFc9RShZKSxOPU1l''@;'; + put 'put ''KFkubGVuZ3RoKSxlZT1hZT9OLTE6MCxxPWFlPy0xOjE7aWYoWjwyKWZvcig7Oyl7aWYoZWUgaW4gVyl7aWU9V1tlZV0sZWUrPXE7YnJlYWt9aWYoZWUrPXEsYWU/ZWU8MDpOPD1lZSl0aHJvdyBUeXBlRXJyb3IoIlJlZHVjZSBvZiBlbXB0eSBhcnJheSB3aXRoIG5vIGluaXRpYWwgdmFsdWUi''@;'; + put 'put ''KX1mb3IoO2FlP2VlPj0wOk4+ZWU7ZWUrPXEpZWUgaW4gVyYmKGllPVEoaWUsV1tlZV0sZWUsWSkpO3JldHVybiBpZX19LDQyNzM2OihYZSxKZSxMKT0+e3ZhciBtZT1MKDU1Mjg2KSxCPUwoNDMwMiksRT1MKDg2MzE0KSgic3BlY2llcyIpO1hlLmV4cG9ydHM9ZnVuY3Rpb24oTWUpe3ZhciBV''@;'; + put 'put ''O3JldHVybiBCKE1lKSYmKCJmdW5jdGlvbiI9PXR5cGVvZihVPU1lLmNvbnN0cnVjdG9yKSYmKFU9PT1BcnJheXx8QihVLnByb3RvdHlwZSkpJiYoVT12b2lkIDApLG1lKFUpJiZudWxsPT09KFU9VVtFXSkmJihVPXZvaWQgMCkpLHZvaWQgMD09PVU/QXJyYXk6VX19LDE2ODg2OihYZSxKZSxM''@;'; + put 'put ''KT0+e3ZhciBtZT1MKDQyNzM2KTtYZS5leHBvcnRzPWZ1bmN0aW9uKEIsRSl7cmV0dXJuIG5ldyhtZShCKSkoRSl9fSwzNDM5ODooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoMjQ5NjMpLEI9TCg1NTI4NiksRT1MKDk3MjQyKSxNZT1bXS5zbGljZSxVPXt9LFE9ZnVuY3Rpb24o''@;'; + put 'put ''WixpZSxhZSl7aWYoIShpZSBpbiBVKSl7Zm9yKHZhciBZPVtdLFc9MDtXPGllO1crKylZW1ddPSJhWyIrVysiXSI7VVtpZV09RnVuY3Rpb24oIkYsYSIsInJldHVybiBuZXcgRigiK1kuam9pbigiLCIpKyIpIil9cmV0dXJuIFVbaWVdKFosYWUpfTtYZS5leHBvcnRzPUZ1bmN0aW9uLmJpbmR8''@;'; + put 'put ''fGZ1bmN0aW9uKGllKXt2YXIgYWU9bWUodGhpcyksWT1NZS5jYWxsKGFyZ3VtZW50cywxKSxXPWZ1bmN0aW9uKCl7dmFyIE49WS5jb25jYXQoTWUuY2FsbChhcmd1bWVudHMpKTtyZXR1cm4gdGhpcyBpbnN0YW5jZW9mIFc/UShhZSxOLmxlbmd0aCxOKTpFKGFlLE4saWUpfTtyZXR1cm4gQihh''@;'; + put 'put ''ZS5wcm90b3R5cGUpJiYoVy5wcm90b3R5cGU9YWUucHJvdG90eXBlKSxXfX0sNDE0ODg6KFhlLEplLEwpPT57dmFyIG1lPUwoOTIwMzIpLEI9TCg4NjMxNCkoInRvU3RyaW5nVGFnIiksRT0iQXJndW1lbnRzIj09bWUoZnVuY3Rpb24oKXtyZXR1cm4gYXJndW1lbnRzfSgpKTtYZS5leHBvcnRz''@;'; + put 'put ''PWZ1bmN0aW9uKFUpe3ZhciBRLFosaWU7cmV0dXJuIHZvaWQgMD09PVU/IlVuZGVmaW5lZCI6bnVsbD09PVU/Ik51bGwiOiJzdHJpbmciPT10eXBlb2YoWj1mdW5jdGlvbihVLFEpe3RyeXtyZXR1cm4gVVtRXX1jYXRjaChaKXt9fShRPU9iamVjdChVKSxCKSk/WjpFP21lKFEpOiJPYmplY3Qi''@;'; + put 'put ''PT0oaWU9bWUoUSkpJiYiZnVuY3Rpb24iPT10eXBlb2YgUS5jYWxsZWU/IkFyZ3VtZW50cyI6aWV9fSw5MjAzMjpYZT0+e3ZhciBKZT17fS50b1N0cmluZztYZS5leHBvcnRzPWZ1bmN0aW9uKEwpe3JldHVybiBKZS5jYWxsKEwpLnNsaWNlKDgsLTEpfX0sOTgyNDooWGUsSmUsTCk9PnsidXNl''@;'; + put 'put ''IHN0cmljdCI7dmFyIG1lPUwoOTkyNzUpLmYsQj1MKDQyNTAzKSxFPUwoMjQ0MDgpLE1lPUwoNzQxKSxVPUwoODMzMjgpLFE9TCgzNTMxKSxaPUwoNDI5MjMpLGllPUwoMTU0MzYpLGFlPUwoMjk3NCksWT1MKDY3MDU3KSxXPUwoODQ3MjgpLmZhc3RLZXksTj1MKDE2MTYpLGVlPVk/Il9zIjoi''@;'; + put 'put ''c2l6ZSIscT1mdW5jdGlvbihKLHNlKXt2YXIgY2Usb2U9VyhzZSk7aWYoIkYiIT09b2UpcmV0dXJuIEouX2lbb2VdO2ZvcihjZT1KLl9mO2NlO2NlPWNlLm4paWYoY2Uuaz09c2UpcmV0dXJuIGNlfTtYZS5leHBvcnRzPXtnZXRDb25zdHJ1Y3RvcjpmdW5jdGlvbihKLHNlLG9lLGNlKXt2YXIg''@;'; + put 'put ''ZGU9SihmdW5jdGlvbih2ZSxBZSl7VSh2ZSxkZSxzZSwiX2kiKSx2ZS5fdD1zZSx2ZS5faT1CKG51bGwpLHZlLl9mPXZvaWQgMCx2ZS5fbD12b2lkIDAsdmVbZWVdPTAsbnVsbCE9QWUmJlEoQWUsb2UsdmVbY2VdLHZlKX0pO3JldHVybiBFKGRlLnByb3RvdHlwZSx7Y2xlYXI6ZnVuY3Rpb24o''@;'; + put 'put ''KXtmb3IodmFyIEFlPU4odGhpcyxzZSksa2U9QWUuX2ksU2U9QWUuX2Y7U2U7U2U9U2UubilTZS5yPSEwLFNlLnAmJihTZS5wPVNlLnAubj12b2lkIDApLGRlbGV0ZSBrZVtTZS5pXTtBZS5fZj1BZS5fbD12b2lkIDAsQWVbZWVdPTB9LGRlbGV0ZTpmdW5jdGlvbih2ZSl7dmFyIEFlPU4odGhp''@;'; + put 'put ''cyxzZSksa2U9cShBZSx2ZSk7aWYoa2Upe3ZhciBTZT1rZS5uLEllPWtlLnA7ZGVsZXRlIEFlLl9pW2tlLmldLGtlLnI9ITAsSWUmJihJZS5uPVNlKSxTZSYmKFNlLnA9SWUpLEFlLl9mPT1rZSYmKEFlLl9mPVNlKSxBZS5fbD09a2UmJihBZS5fbD1JZSksQWVbZWVdLS19cmV0dXJuISFrZX0s''@;'; + put 'put ''Zm9yRWFjaDpmdW5jdGlvbihBZSl7Tih0aGlzLHNlKTtmb3IodmFyIFNlLGtlPU1lKEFlLGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwLDMpO1NlPVNlP1NlLm46dGhpcy5fZjspZm9yKGtlKFNlLnYsU2Uuayx0aGlzKTtTZSYmU2UucjspU2U9U2UucH0saGFzOmZ1bmN0''@;'; + put 'put ''aW9uKEFlKXtyZXR1cm4hIXEoTih0aGlzLHNlKSxBZSl9fSksWSYmbWUoZGUucHJvdG90eXBlLCJzaXplIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIE4odGhpcyxzZSlbZWVdfX0pLGRlfSxkZWY6ZnVuY3Rpb24oSixzZSxvZSl7dmFyIGRlLHZlLGNlPXEoSixzZSk7cmV0dXJuIGNlP2NlLnY9''@;'; + put 'put ''b2U6KEouX2w9Y2U9e2k6dmU9VyhzZSwhMCksazpzZSx2Om9lLHA6ZGU9Si5fbCxuOnZvaWQgMCxyOiExfSxKLl9mfHwoSi5fZj1jZSksZGUmJihkZS5uPWNlKSxKW2VlXSsrLCJGIiE9PXZlJiYoSi5faVt2ZV09Y2UpKSxKfSxnZXRFbnRyeTpxLHNldFN0cm9uZzpmdW5jdGlvbihKLHNlLG9l''@;'; + put 'put ''KXtaKEosc2UsZnVuY3Rpb24oY2UsZGUpe3RoaXMuX3Q9TihjZSxzZSksdGhpcy5faz1kZSx0aGlzLl9sPXZvaWQgMH0sZnVuY3Rpb24oKXtmb3IodmFyIGNlPXRoaXMsZGU9Y2UuX2ssdmU9Y2UuX2w7dmUmJnZlLnI7KXZlPXZlLnA7cmV0dXJuIGNlLl90JiYoY2UuX2w9dmU9dmU/dmUubjpj''@;'; + put 'put ''ZS5fdC5fZik/aWUoMCwia2V5cyI9PWRlP3ZlLms6InZhbHVlcyI9PWRlP3ZlLnY6W3ZlLmssdmUudl0pOihjZS5fdD12b2lkIDAsaWUoMSkpfSxvZT8iZW50cmllcyI6InZhbHVlcyIsIW9lLCEwKSxhZShzZSl9fX0sMjM2NTc6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDI0''@;'; + put 'put ''NDA4KSxCPUwoODQ3MjgpLmdldFdlYWssRT1MKDI3MDA3KSxNZT1MKDU1Mjg2KSxVPUwoODMzMjgpLFE9TCgzNTMxKSxaPUwoMTAwNTApLGllPUwoNzkxODEpLGFlPUwoMTYxNiksWT1aKDUpLFc9Wig2KSxOPTAsZWU9ZnVuY3Rpb24oc2Upe3JldHVybiBzZS5fbHx8KHNlLl9sPW5ldyBxKX0s''@;'; + put 'put ''cT1mdW5jdGlvbigpe3RoaXMuYT1bXX0sSj1mdW5jdGlvbihzZSxvZSl7cmV0dXJuIFkoc2UuYSxmdW5jdGlvbihjZSl7cmV0dXJuIGNlWzBdPT09b2V9KX07cS5wcm90b3R5cGU9e2dldDpmdW5jdGlvbihzZSl7dmFyIG9lPUoodGhpcyxzZSk7aWYob2UpcmV0dXJuIG9lWzFdfSxoYXM6ZnVu''@;'; + put 'put ''Y3Rpb24oc2Upe3JldHVybiEhSih0aGlzLHNlKX0sc2V0OmZ1bmN0aW9uKHNlLG9lKXt2YXIgY2U9Sih0aGlzLHNlKTtjZT9jZVsxXT1vZTp0aGlzLmEucHVzaChbc2Usb2VdKX0sZGVsZXRlOmZ1bmN0aW9uKHNlKXt2YXIgb2U9Vyh0aGlzLmEsZnVuY3Rpb24oY2Upe3JldHVybiBjZVswXT09''@;'; + put 'put ''PXNlfSk7cmV0dXJufm9lJiZ0aGlzLmEuc3BsaWNlKG9lLDEpLCEhfm9lfX0sWGUuZXhwb3J0cz17Z2V0Q29uc3RydWN0b3I6ZnVuY3Rpb24oc2Usb2UsY2UsZGUpe3ZhciB2ZT1zZShmdW5jdGlvbihBZSxrZSl7VShBZSx2ZSxvZSwiX2kiKSxBZS5fdD1vZSxBZS5faT1OKyssQWUuX2w9dm9p''@;'; + put 'put ''ZCAwLG51bGwhPWtlJiZRKGtlLGNlLEFlW2RlXSxBZSl9KTtyZXR1cm4gbWUodmUucHJvdG90eXBlLHtkZWxldGU6ZnVuY3Rpb24oQWUpe2lmKCFNZShBZSkpcmV0dXJuITE7dmFyIGtlPUIoQWUpO3JldHVybiEwPT09a2U/ZWUoYWUodGhpcyxvZSkpLmRlbGV0ZShBZSk6a2UmJmllKGtlLHRo''@;'; + put 'put ''aXMuX2kpJiZkZWxldGUga2VbdGhpcy5faV19LGhhczpmdW5jdGlvbihrZSl7aWYoIU1lKGtlKSlyZXR1cm4hMTt2YXIgU2U9QihrZSk7cmV0dXJuITA9PT1TZT9lZShhZSh0aGlzLG9lKSkuaGFzKGtlKTpTZSYmaWUoU2UsdGhpcy5faSl9fSksdmV9LGRlZjpmdW5jdGlvbihzZSxvZSxjZSl7''@;'; + put 'put ''dmFyIGRlPUIoRShvZSksITApO3JldHVybiEwPT09ZGU/ZWUoc2UpLnNldChvZSxjZSk6ZGVbc2UuX2ldPWNlLHNlfSx1ZnN0b3JlOmVlfX0sNDU3OTU6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDM4MTYpLEI9TCg0Mjk4NSksRT1MKDc3MjM0KSxNZT1MKDI0NDA4KSxVPUwo''@;'; + put 'put ''ODQ3MjgpLFE9TCgzNTMxKSxaPUwoODMzMjgpLGllPUwoNTUyODYpLGFlPUwoNzQyNTMpLFk9TCg3NDYyKSxXPUwoMjI5NDMpLE49TCg0MDI2Nik7WGUuZXhwb3J0cz1mdW5jdGlvbihlZSxxLEosc2Usb2UsY2Upe3ZhciBkZT1tZVtlZV0sdmU9ZGUsQWU9b2U/InNldCI6ImFkZCIsa2U9dmUm''@;'; + put 'put ''JnZlLnByb3RvdHlwZSxTZT17fSxJZT1mdW5jdGlvbihuZSl7dmFyIHRlPWtlW25lXTtFKGtlLG5lLCJkZWxldGUiPT1uZT9mdW5jdGlvbih4KXtyZXR1cm4hKGNlJiYhaWUoeCkpJiZ0ZS5jYWxsKHRoaXMsMD09PXg/MDp4KX06ImhhcyI9PW5lP2Z1bmN0aW9uKFApe3JldHVybiEoY2UmJiFp''@;'; + put 'put ''ZShQKSkmJnRlLmNhbGwodGhpcywwPT09UD8wOlApfToiZ2V0Ij09bmU/ZnVuY3Rpb24oUCl7cmV0dXJuIGNlJiYhaWUoUCk/dm9pZCAwOnRlLmNhbGwodGhpcywwPT09UD8wOlApfToiYWRkIj09bmU/ZnVuY3Rpb24oUCl7cmV0dXJuIHRlLmNhbGwodGhpcywwPT09UD8wOlApLHRoaXN9OmZ1''@;'; + put 'put ''bmN0aW9uKFAsVil7cmV0dXJuIHRlLmNhbGwodGhpcywwPT09UD8wOlAsViksdGhpc30pfTtpZigiZnVuY3Rpb24iPT10eXBlb2YgdmUmJihjZXx8a2UuZm9yRWFjaCYmIWFlKGZ1bmN0aW9uKCl7KG5ldyB2ZSkuZW50cmllcygpLm5leHQoKX0pKSl7dmFyIFRlPW5ldyB2ZSxFZT1UZVtBZV0o''@;'; + put 'put ''Y2U/e306LTAsMSkhPVRlLGhlPWFlKGZ1bmN0aW9uKCl7VGUuaGFzKDEpfSksTz1ZKGZ1bmN0aW9uKG5lKXtuZXcgdmUobmUpfSksej0hY2UmJmFlKGZ1bmN0aW9uKCl7Zm9yKHZhciBuZT1uZXcgdmUsdGU9NTt0ZS0tOyluZVtBZV0odGUsdGUpO3JldHVybiFuZS5oYXMoLTApfSk7T3x8KCh2''@;'; + put 'put ''ZT1xKGZ1bmN0aW9uKG5lLHRlKXtaKG5lLHZlLGVlKTt2YXIgeD1OKG5ldyBkZSxuZSx2ZSk7cmV0dXJuIG51bGwhPXRlJiZRKHRlLG9lLHhbQWVdLHgpLHh9KSkucHJvdG90eXBlPWtlLGtlLmNvbnN0cnVjdG9yPXZlKSwoaGV8fHopJiYoSWUoImRlbGV0ZSIpLEllKCJoYXMiKSxvZSYmSWUo''@;'; + put 'put ''ImdldCIpKSwoenx8RWUpJiZJZShBZSksY2UmJmtlLmNsZWFyJiZkZWxldGUga2UuY2xlYXJ9ZWxzZSB2ZT1zZS5nZXRDb25zdHJ1Y3RvcihxLGVlLG9lLEFlKSxNZSh2ZS5wcm90b3R5cGUsSiksVS5ORUVEPSEwO3JldHVybiBXKHZlLGVlKSxTZVtlZV09dmUsQihCLkcrQi5XK0IuRioodmUh''@;'; + put 'put ''PWRlKSxTZSksY2V8fHNlLnNldFN0cm9uZyh2ZSxlZSxvZSksdmV9fSwyNTY0NTpYZT0+e3ZhciBKZT1YZS5leHBvcnRzPXt2ZXJzaW9uOiIyLjYuMTIifTsibnVtYmVyIj09dHlwZW9mIF9fZSYmKF9fZT1KZSl9LDkyODExOihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCg5OTI3''@;'; + put 'put ''NSksQj1MKDkwNjgxKTtYZS5leHBvcnRzPWZ1bmN0aW9uKEUsTWUsVSl7TWUgaW4gRT9tZS5mKEUsTWUsQigwLFUpKTpFW01lXT1VfX0sNzQxOihYZSxKZSxMKT0+e3ZhciBtZT1MKDI0OTYzKTtYZS5leHBvcnRzPWZ1bmN0aW9uKEIsRSxNZSl7aWYobWUoQiksdm9pZCAwPT09RSlyZXR1cm4g''@;'; + put 'put ''Qjtzd2l0Y2goTWUpe2Nhc2UgMTpyZXR1cm4gZnVuY3Rpb24oVSl7cmV0dXJuIEIuY2FsbChFLFUpfTtjYXNlIDI6cmV0dXJuIGZ1bmN0aW9uKFUsUSl7cmV0dXJuIEIuY2FsbChFLFUsUSl9O2Nhc2UgMzpyZXR1cm4gZnVuY3Rpb24oVSxRLFope3JldHVybiBCLmNhbGwoRSxVLFEsWil9fXJl''@;'; + put 'put ''dHVybiBmdW5jdGlvbigpe3JldHVybiBCLmFwcGx5KEUsYXJndW1lbnRzKX19fSw1MzUzNzooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoNzQyNTMpLEI9RGF0ZS5wcm90b3R5cGUuZ2V0VGltZSxFPURhdGUucHJvdG90eXBlLnRvSVNPU3RyaW5nLE1lPWZ1bmN0aW9uKFUpe3Jl''@;'; + put 'put ''dHVybiBVPjk/VToiMCIrVX07WGUuZXhwb3J0cz1tZShmdW5jdGlvbigpe3JldHVybiIwMzg1LTA3LTI1VDA3OjA2OjM5Ljk5OVoiIT1FLmNhbGwobmV3IERhdGUoLTUwMDAwMDAwMDAwMDAxKSl9KXx8IW1lKGZ1bmN0aW9uKCl7RS5jYWxsKG5ldyBEYXRlKE5hTikpfSk/ZnVuY3Rpb24oKXtp''@;'; + put 'put ''ZighaXNGaW5pdGUoQi5jYWxsKHRoaXMpKSl0aHJvdyBSYW5nZUVycm9yKCJJbnZhbGlkIHRpbWUgdmFsdWUiKTt2YXIgUT10aGlzLFo9US5nZXRVVENGdWxsWWVhcigpLGllPVEuZ2V0VVRDTWlsbGlzZWNvbmRzKCksYWU9WjwwPyItIjpaPjk5OTk/IisiOiIiO3JldHVybiBhZSsoIjAwMDAw''@;'; + put 'put ''IitNYXRoLmFicyhaKSkuc2xpY2UoYWU/LTY6LTQpKyItIitNZShRLmdldFVUQ01vbnRoKCkrMSkrIi0iK01lKFEuZ2V0VVRDRGF0ZSgpKSsiVCIrTWUoUS5nZXRVVENIb3VycygpKSsiOiIrTWUoUS5nZXRVVENNaW51dGVzKCkpKyI6IitNZShRLmdldFVUQ1NlY29uZHMoKSkrIi4iKyhpZT45''@;'; + put 'put ''OT9pZToiMCIrTWUoaWUpKSsiWiJ9OkV9LDg3MDooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoMjcwMDcpLEI9TCgyMTY4OSksRT0ibnVtYmVyIjtYZS5leHBvcnRzPWZ1bmN0aW9uKE1lKXtpZigic3RyaW5nIiE9PU1lJiZNZSE9PUUmJiJkZWZhdWx0IiE9PU1lKXRocm93IFR5''@;'; + put 'put ''cGVFcnJvcigiSW5jb3JyZWN0IGhpbnQiKTtyZXR1cm4gQihtZSh0aGlzKSxNZSE9RSl9fSw5MTM1NTpYZT0+e1hlLmV4cG9ydHM9ZnVuY3Rpb24oSmUpe2lmKG51bGw9PUplKXRocm93IFR5cGVFcnJvcigiQ2FuJ3QgY2FsbCBtZXRob2Qgb24gICIrSmUpO3JldHVybiBKZX19LDY3MDU3OihY''@;'; + put 'put ''ZSxKZSxMKT0+e1hlLmV4cG9ydHM9IUwoNzQyNTMpKGZ1bmN0aW9uKCl7cmV0dXJuIDchPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwiYSIse2dldDpmdW5jdGlvbigpe3JldHVybiA3fX0pLmF9KX0sNjI0NTc6KFhlLEplLEwpPT57dmFyIG1lPUwoNTUyODYpLEI9TCgzODE2KS5kb2N1bWVu''@;'; + put 'put ''dCxFPW1lKEIpJiZtZShCLmNyZWF0ZUVsZW1lbnQpO1hlLmV4cG9ydHM9ZnVuY3Rpb24oTWUpe3JldHVybiBFP0IuY3JlYXRlRWxlbWVudChNZSk6e319fSw3NDQzMDpYZT0+e1hlLmV4cG9ydHM9ImNvbnN0cnVjdG9yLGhhc093blByb3BlcnR5LGlzUHJvdG90eXBlT2YscHJvcGVydHlJc0Vu''@;'; + put 'put ''dW1lcmFibGUsdG9Mb2NhbGVTdHJpbmcsdG9TdHJpbmcsdmFsdWVPZiIuc3BsaXQoIiwiKX0sNTU0MTooWGUsSmUsTCk9Pnt2YXIgbWU9TCg0NzE4NCksQj1MKDY0NTQ4KSxFPUwoMTQ2ODIpO1hlLmV4cG9ydHM9ZnVuY3Rpb24oTWUpe3ZhciBVPW1lKE1lKSxRPUIuZjtpZihRKWZvcih2YXIg''@;'; + put 'put ''WSxaPVEoTWUpLGllPUUuZixhZT0wO1oubGVuZ3RoPmFlOylpZS5jYWxsKE1lLFk9WlthZSsrXSkmJlUucHVzaChZKTtyZXR1cm4gVX19LDQyOTg1OihYZSxKZSxMKT0+e3ZhciBtZT1MKDM4MTYpLEI9TCgyNTY0NSksRT1MKDg3NzI4KSxNZT1MKDc3MjM0KSxVPUwoNzQxKSxRPSJwcm90b3R5''@;'; + put 'put ''cGUiLFo9ZnVuY3Rpb24oaWUsYWUsWSl7dmFyIGRlLHZlLEFlLGtlLFc9aWUmWi5GLE49aWUmWi5HLHE9aWUmWi5QLEo9aWUmWi5CLHNlPU4/bWU6aWUmWi5TP21lW2FlXXx8KG1lW2FlXT17fSk6KG1lW2FlXXx8e30pW1FdLG9lPU4/QjpCW2FlXXx8KEJbYWVdPXt9KSxjZT1vZVtRXXx8KG9l''@;'; + put 'put ''W1FdPXt9KTtmb3IoZGUgaW4gTiYmKFk9YWUpLFkpQWU9KCh2ZT0hVyYmc2UmJnZvaWQgMCE9PXNlW2RlXSk/c2U6WSlbZGVdLGtlPUomJnZlP1UoQWUsbWUpOnEmJiJmdW5jdGlvbiI9PXR5cGVvZiBBZT9VKEZ1bmN0aW9uLmNhbGwsQWUpOkFlLHNlJiZNZShzZSxkZSxBZSxpZSZaLlUpLG9l''@;'; + put 'put ''W2RlXSE9QWUmJkUob2UsZGUsa2UpLHEmJmNlW2RlXSE9QWUmJihjZVtkZV09QWUpfTttZS5jb3JlPUIsWi5GPTEsWi5HPTIsWi5TPTQsWi5QPTgsWi5CPTE2LFouVz0zMixaLlU9NjQsWi5SPTEyOCxYZS5leHBvcnRzPVp9LDg4NTI6KFhlLEplLEwpPT57dmFyIG1lPUwoODYzMTQpKCJtYXRj''@;'; + put 'put ''aCIpO1hlLmV4cG9ydHM9ZnVuY3Rpb24oQil7dmFyIEU9Ly4vO3RyeXsiLy4vIltCXShFKX1jYXRjaChNZSl7dHJ5e3JldHVybiBFW21lXT0hMSwhIi8uLyJbQl0oRSl9Y2F0Y2goVSl7fX1yZXR1cm4hMH19LDc0MjUzOlhlPT57WGUuZXhwb3J0cz1mdW5jdGlvbihKZSl7dHJ5e3JldHVybiEh''@;'; + put 'put ''SmUoKX1jYXRjaChMKXtyZXR1cm4hMH19fSwyODA4MjooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7TCgxODI2OSk7dmFyIG1lPUwoNzcyMzQpLEI9TCg4NzcyOCksRT1MKDc0MjUzKSxNZT1MKDkxMzU1KSxVPUwoODYzMTQpLFE9TCgyMTE2NSksWj1VKCJzcGVjaWVzIiksaWU9IUUoZnVuY3Rp''@;'; + put 'put ''b24oKXt2YXIgWT0vLi87cmV0dXJuIFkuZXhlYz1mdW5jdGlvbigpe3ZhciBXPVtdO3JldHVybiBXLmdyb3Vwcz17YToiNyJ9LFd9LCI3IiE9PSIiLnJlcGxhY2UoWSwiJDxhPiIpfSksYWU9ZnVuY3Rpb24oKXt2YXIgWT0vKD86KS8sVz1ZLmV4ZWM7WS5leGVjPWZ1bmN0aW9uKCl7cmV0dXJu''@;'; + put 'put ''IFcuYXBwbHkodGhpcyxhcmd1bWVudHMpfTt2YXIgTj0iYWIiLnNwbGl0KFkpO3JldHVybiAyPT09Ti5sZW5ndGgmJiJhIj09PU5bMF0mJiJiIj09PU5bMV19KCk7WGUuZXhwb3J0cz1mdW5jdGlvbihZLFcsTil7dmFyIGVlPVUoWSkscT0hRShmdW5jdGlvbigpe3ZhciB2ZT17fTtyZXR1cm4g''@;'; + put 'put ''dmVbZWVdPWZ1bmN0aW9uKCl7cmV0dXJuIDd9LDchPSIiW1ldKHZlKX0pLEo9cT8hRShmdW5jdGlvbigpe3ZhciB2ZT0hMSxBZT0vYS87cmV0dXJuIEFlLmV4ZWM9ZnVuY3Rpb24oKXtyZXR1cm4gdmU9ITAsbnVsbH0sInNwbGl0Ij09PVkmJihBZS5jb25zdHJ1Y3Rvcj17fSxBZS5jb25zdHJ1''@;'; + put 'put ''Y3RvcltaXT1mdW5jdGlvbigpe3JldHVybiBBZX0pLEFlW2VlXSgiIiksIXZlfSk6dm9pZCAwO2lmKCFxfHwhSnx8InJlcGxhY2UiPT09WSYmIWllfHwic3BsaXQiPT09WSYmIWFlKXt2YXIgc2U9Ly4vW2VlXSxvZT1OKE1lLGVlLCIiW1ldLGZ1bmN0aW9uKEFlLGtlLFNlLEllLFRlKXtyZXR1''@;'; + put 'put ''cm4ga2UuZXhlYz09PVE/cSYmIVRlP3tkb25lOiEwLHZhbHVlOnNlLmNhbGwoa2UsU2UsSWUpfTp7ZG9uZTohMCx2YWx1ZTpBZS5jYWxsKFNlLGtlLEllKX06e2RvbmU6ITF9fSksZGU9b2VbMV07bWUoU3RyaW5nLnByb3RvdHlwZSxZLG9lWzBdKSxCKFJlZ0V4cC5wcm90b3R5cGUsZWUsMj09''@;'; + put 'put ''Vz9mdW5jdGlvbih2ZSxBZSl7cmV0dXJuIGRlLmNhbGwodmUsdGhpcyxBZSl9OmZ1bmN0aW9uKHZlKXtyZXR1cm4gZGUuY2FsbCh2ZSx0aGlzKX0pfX19LDUzMjE4OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCgyNzAwNyk7WGUuZXhwb3J0cz1mdW5jdGlvbigpe3ZhciBCPW1l''@;'; + put 'put ''KHRoaXMpLEU9IiI7cmV0dXJuIEIuZ2xvYmFsJiYoRSs9ImciKSxCLmlnbm9yZUNhc2UmJihFKz0iaSIpLEIubXVsdGlsaW5lJiYoRSs9Im0iKSxCLnVuaWNvZGUmJihFKz0idSIpLEIuc3RpY2t5JiYoRSs9InkiKSxFfX0sMzUzMTooWGUsSmUsTCk9Pnt2YXIgbWU9TCg3NDEpLEI9TCgyODg1''@;'; + put 'put ''MSksRT1MKDg2NTU1KSxNZT1MKDI3MDA3KSxVPUwoMTA4NzUpLFE9TCg2OTAwMiksWj17fSxpZT17fSxhZT1YZS5leHBvcnRzPWZ1bmN0aW9uKFksVyxOLGVlLHEpe3ZhciBjZSxkZSx2ZSxBZSxKPXE/ZnVuY3Rpb24oKXtyZXR1cm4gWX06UShZKSxzZT1tZShOLGVlLFc/MjoxKSxvZT0wO2lm''@;'; + put 'put ''KCJmdW5jdGlvbiIhPXR5cGVvZiBKKXRocm93IFR5cGVFcnJvcihZKyIgaXMgbm90IGl0ZXJhYmxlISIpO2lmKEUoSikpe2ZvcihjZT1VKFkubGVuZ3RoKTtjZT5vZTtvZSsrKWlmKChBZT1XP3NlKE1lKGRlPVlbb2VdKVswXSxkZVsxXSk6c2UoWVtvZV0pKT09PVp8fEFlPT09aWUpcmV0dXJu''@;'; + put 'put ''IEFlfWVsc2UgZm9yKHZlPUouY2FsbChZKTshKGRlPXZlLm5leHQoKSkuZG9uZTspaWYoKEFlPUIodmUsc2UsZGUudmFsdWUsVykpPT09Wnx8QWU9PT1pZSlyZXR1cm4gQWV9O2FlLkJSRUFLPVosYWUuUkVUVVJOPWllfSw0MDAxODooWGUsSmUsTCk9PntYZS5leHBvcnRzPUwoMzgyNSkoIm5h''@;'; + put 'put ''dGl2ZS1mdW5jdGlvbi10by1zdHJpbmciLEZ1bmN0aW9uLnRvU3RyaW5nKX0sMzgxNjpYZT0+e3ZhciBKZT1YZS5leHBvcnRzPSJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiZ3aW5kb3cuTWF0aD09TWF0aD93aW5kb3c6InVuZGVmaW5lZCIhPXR5cGVvZiBzZWxmJiZzZWxmLk1hdGg9PU1h''@;'; + put 'put ''dGg/c2VsZjpGdW5jdGlvbigicmV0dXJuIHRoaXMiKSgpOyJudW1iZXIiPT10eXBlb2YgX19nJiYoX19nPUplKX0sNzkxODE6WGU9Pnt2YXIgSmU9e30uaGFzT3duUHJvcGVydHk7WGUuZXhwb3J0cz1mdW5jdGlvbihMLG1lKXtyZXR1cm4gSmUuY2FsbChMLG1lKX19LDg3NzI4OihYZSxKZSxM''@;'; + put 'put ''KT0+e3ZhciBtZT1MKDk5Mjc1KSxCPUwoOTA2ODEpO1hlLmV4cG9ydHM9TCg2NzA1Nyk/ZnVuY3Rpb24oRSxNZSxVKXtyZXR1cm4gbWUuZihFLE1lLEIoMSxVKSl9OmZ1bmN0aW9uKEUsTWUsVSl7cmV0dXJuIEVbTWVdPVUsRX19LDQwNjM5OihYZSxKZSxMKT0+e3ZhciBtZT1MKDM4MTYpLmRv''@;'; + put 'put ''Y3VtZW50O1hlLmV4cG9ydHM9bWUmJm1lLmRvY3VtZW50RWxlbWVudH0sMTczNDooWGUsSmUsTCk9PntYZS5leHBvcnRzPSFMKDY3MDU3KSYmIUwoNzQyNTMpKGZ1bmN0aW9uKCl7cmV0dXJuIDchPU9iamVjdC5kZWZpbmVQcm9wZXJ0eShMKDYyNDU3KSgiZGl2IiksImEiLHtnZXQ6ZnVuY3Rp''@;'; + put 'put ''b24oKXtyZXR1cm4gN319KS5hfSl9LDQwMjY2OihYZSxKZSxMKT0+e3ZhciBtZT1MKDU1Mjg2KSxCPUwoMjczNzUpLnNldDtYZS5leHBvcnRzPWZ1bmN0aW9uKEUsTWUsVSl7dmFyIFosUT1NZS5jb25zdHJ1Y3RvcjtyZXR1cm4gUSE9PVUmJiJmdW5jdGlvbiI9PXR5cGVvZiBRJiYoWj1RLnBy''@;'; + put 'put ''b3RvdHlwZSkhPT1VLnByb3RvdHlwZSYmbWUoWikmJkImJkIoRSxaKSxFfX0sOTcyNDI6WGU9PntYZS5leHBvcnRzPWZ1bmN0aW9uKEplLEwsbWUpe3ZhciBCPXZvaWQgMD09PW1lO3N3aXRjaChMLmxlbmd0aCl7Y2FzZSAwOnJldHVybiBCP0plKCk6SmUuY2FsbChtZSk7Y2FzZSAxOnJldHVy''@;'; + put 'put ''biBCP0plKExbMF0pOkplLmNhbGwobWUsTFswXSk7Y2FzZSAyOnJldHVybiBCP0plKExbMF0sTFsxXSk6SmUuY2FsbChtZSxMWzBdLExbMV0pO2Nhc2UgMzpyZXR1cm4gQj9KZShMWzBdLExbMV0sTFsyXSk6SmUuY2FsbChtZSxMWzBdLExbMV0sTFsyXSk7Y2FzZSA0OnJldHVybiBCP0plKExb''@;'; + put 'put ''MF0sTFsxXSxMWzJdLExbM10pOkplLmNhbGwobWUsTFswXSxMWzFdLExbMl0sTFszXSl9cmV0dXJuIEplLmFwcGx5KG1lLEwpfX0sNDk3OTc6KFhlLEplLEwpPT57dmFyIG1lPUwoOTIwMzIpO1hlLmV4cG9ydHM9T2JqZWN0KCJ6IikucHJvcGVydHlJc0VudW1lcmFibGUoMCk/T2JqZWN0OmZ1''@;'; + put 'put ''bmN0aW9uKEIpe3JldHVybiJTdHJpbmciPT1tZShCKT9CLnNwbGl0KCIiKTpPYmplY3QoQil9fSw4NjU1NTooWGUsSmUsTCk9Pnt2YXIgbWU9TCg4NzIzNCksQj1MKDg2MzE0KSgiaXRlcmF0b3IiKSxFPUFycmF5LnByb3RvdHlwZTtYZS5leHBvcnRzPWZ1bmN0aW9uKE1lKXtyZXR1cm4gdm9p''@;'; + put 'put ''ZCAwIT09TWUmJihtZS5BcnJheT09PU1lfHxFW0JdPT09TWUpfX0sNDMwMjooWGUsSmUsTCk9Pnt2YXIgbWU9TCg5MjAzMik7WGUuZXhwb3J0cz1BcnJheS5pc0FycmF5fHxmdW5jdGlvbihFKXtyZXR1cm4iQXJyYXkiPT1tZShFKX19LDE4MzY3OihYZSxKZSxMKT0+e3ZhciBtZT1MKDU1Mjg2''@;'; + put 'put ''KSxCPU1hdGguZmxvb3I7WGUuZXhwb3J0cz1mdW5jdGlvbihNZSl7cmV0dXJuIW1lKE1lKSYmaXNGaW5pdGUoTWUpJiZCKE1lKT09PU1lfX0sNTUyODY6WGU9PntYZS5leHBvcnRzPWZ1bmN0aW9uKEplKXtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIEplP251bGwhPT1KZToiZnVuY3Rpb24iPT10''@;'; + put 'put ''eXBlb2YgSmV9fSw1NTM2NDooWGUsSmUsTCk9Pnt2YXIgbWU9TCg1NTI4NiksQj1MKDkyMDMyKSxFPUwoODYzMTQpKCJtYXRjaCIpO1hlLmV4cG9ydHM9ZnVuY3Rpb24oTWUpe3ZhciBVO3JldHVybiBtZShNZSkmJih2b2lkIDAhPT0oVT1NZVtFXSk/ISFVOiJSZWdFeHAiPT1CKE1lKSl9fSwy''@;'; + put 'put ''ODg1MTooWGUsSmUsTCk9Pnt2YXIgbWU9TCgyNzAwNyk7WGUuZXhwb3J0cz1mdW5jdGlvbihCLEUsTWUsVSl7dHJ5e3JldHVybiBVP0UobWUoTWUpWzBdLE1lWzFdKTpFKE1lKX1jYXRjaChaKXt2YXIgUT1CLnJldHVybjt0aHJvdyB2b2lkIDAhPT1RJiZtZShRLmNhbGwoQikpLFp9fX0sNDk5''@;'; + put 'put ''ODg6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDQyNTAzKSxCPUwoOTA2ODEpLEU9TCgyMjk0MyksTWU9e307TCg4NzcyOCkoTWUsTCg4NjMxNCkoIml0ZXJhdG9yIiksZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pLFhlLmV4cG9ydHM9ZnVuY3Rpb24oVSxRLFope1UucHJvdG90''@;'; + put 'put ''eXBlPW1lKE1lLHtuZXh0OkIoMSxaKX0pLEUoVSxRKyIgSXRlcmF0b3IiKX19LDQyOTIzOihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCg0NDYxKSxCPUwoNDI5ODUpLEU9TCg3NzIzNCksTWU9TCg4NzcyOCksVT1MKDg3MjM0KSxRPUwoNDk5ODgpLFo9TCgyMjk0MyksaWU9TCg0''@;'; + put 'put ''NjgpLGFlPUwoODYzMTQpKCJpdGVyYXRvciIpLFk9IShbXS5rZXlzJiYibmV4dCJpbltdLmtleXMoKSksTj0ia2V5cyIsZWU9InZhbHVlcyIscT1mdW5jdGlvbigpe3JldHVybiB0aGlzfTtYZS5leHBvcnRzPWZ1bmN0aW9uKEosc2Usb2UsY2UsZGUsdmUsQWUpe1Eob2Usc2UsY2UpO3ZhciB0''@;'; + put 'put ''ZSx4LFAsa2U9ZnVuY3Rpb24oVil7aWYoIVkmJlYgaW4gRWUpcmV0dXJuIEVlW1ZdO3N3aXRjaChWKXtjYXNlIE46Y2FzZSBlZTpyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gbmV3IG9lKHRoaXMsVil9fXJldHVybiBmdW5jdGlvbigpe3JldHVybiBuZXcgb2UodGhpcyxWKX19LFNlPXNlKyIg''@;'; + put 'put ''SXRlcmF0b3IiLEllPWRlPT1lZSxUZT0hMSxFZT1KLnByb3RvdHlwZSxoZT1FZVthZV18fEVlWyJAQGl0ZXJhdG9yIl18fGRlJiZFZVtkZV0sTz1oZXx8a2UoZGUpLHo9ZGU/SWU/a2UoImVudHJpZXMiKTpPOnZvaWQgMCxuZT0iQXJyYXkiPT1zZSYmRWUuZW50cmllc3x8aGU7aWYobmUmJihQ''@;'; + put 'put ''PWllKG5lLmNhbGwobmV3IEopKSkhPT1PYmplY3QucHJvdG90eXBlJiZQLm5leHQmJihaKFAsU2UsITApLCFtZSYmImZ1bmN0aW9uIiE9dHlwZW9mIFBbYWVdJiZNZShQLGFlLHEpKSxJZSYmaGUmJmhlLm5hbWUhPT1lZSYmKFRlPSEwLE89ZnVuY3Rpb24oKXtyZXR1cm4gaGUuY2FsbCh0aGlz''@;'; + put 'put ''KX0pLCghbWV8fEFlKSYmKFl8fFRlfHwhRWVbYWVdKSYmTWUoRWUsYWUsTyksVVtzZV09TyxVW1NlXT1xLGRlKWlmKHRlPXt2YWx1ZXM6SWU/TzprZShlZSksa2V5czp2ZT9POmtlKE4pLGVudHJpZXM6en0sQWUpZm9yKHggaW4gdGUpeCBpbiBFZXx8RShFZSx4LHRlW3hdKTtlbHNlIEIoQi5Q''@;'; + put 'put ''K0IuRiooWXx8VGUpLHNlLHRlKTtyZXR1cm4gdGV9fSw3NDYyOihYZSxKZSxMKT0+e3ZhciBtZT1MKDg2MzE0KSgiaXRlcmF0b3IiKSxCPSExO3RyeXt2YXIgRT1bN11bbWVdKCk7RS5yZXR1cm49ZnVuY3Rpb24oKXtCPSEwfSxBcnJheS5mcm9tKEUsZnVuY3Rpb24oKXt0aHJvdyAyfSl9Y2F0''@;'; + put 'put ''Y2goTWUpe31YZS5leHBvcnRzPWZ1bmN0aW9uKE1lLFUpe2lmKCFVJiYhQilyZXR1cm4hMTt2YXIgUT0hMTt0cnl7dmFyIFo9WzddLGllPVpbbWVdKCk7aWUubmV4dD1mdW5jdGlvbigpe3JldHVybntkb25lOlE9ITB9fSxaW21lXT1mdW5jdGlvbigpe3JldHVybiBpZX0sTWUoWil9Y2F0Y2go''@;'; + put 'put ''YWUpe31yZXR1cm4gUX19LDE1NDM2OlhlPT57WGUuZXhwb3J0cz1mdW5jdGlvbihKZSxMKXtyZXR1cm57dmFsdWU6TCxkb25lOiEhSmV9fX0sODcyMzQ6WGU9PntYZS5leHBvcnRzPXt9fSw0NDYxOlhlPT57WGUuZXhwb3J0cz0hMX0sMTMwODY6WGU9Pnt2YXIgSmU9TWF0aC5leHBtMTtYZS5l''@;'; + put 'put ''eHBvcnRzPSFKZXx8SmUoMTApPjIyMDI1LjQ2NTc5NDgwNjcxOHx8SmUoMTApPDIyMDI1LjQ2NTc5NDgwNjcxOHx8LTJlLTE3IT1KZSgtMmUtMTcpP2Z1bmN0aW9uKG1lKXtyZXR1cm4gMD09KG1lPSttZSk/bWU6bWU+LTFlLTYmJm1lPDFlLTY/bWUrbWUqbWUvMjpNYXRoLmV4cChtZSktMX06''@;'; + put 'put ''SmV9LDM0OTM0OihYZSxKZSxMKT0+e3ZhciBtZT1MKDYxODAxKSxCPU1hdGgucG93LEU9QigyLC01MiksTWU9QigyLC0yMyksVT1CKDIsMTI3KSooMi1NZSksUT1CKDIsLTEyNik7WGUuZXhwb3J0cz1NYXRoLmZyb3VuZHx8ZnVuY3Rpb24oYWUpe3ZhciBOLGVlLFk9TWF0aC5hYnMoYWUpLFc9''@;'; + put 'put ''bWUoYWUpO3JldHVybiBZPFE/VyooWS9RL01lKzEvRS0xL0UpKlEqTWU6KGVlPShOPSgxK01lL0UpKlkpLShOLVkpKT5VfHxlZSE9ZWU/VyooMS8wKTpXKmVlfX0sNDYyMDY6WGU9PntYZS5leHBvcnRzPU1hdGgubG9nMXB8fGZ1bmN0aW9uKEwpe3JldHVybihMPStMKT4tMWUtOCYmTDwxZS04''@;'; + put 'put ''P0wtTCpMLzI6TWF0aC5sb2coMStMKX19LDYxODAxOlhlPT57WGUuZXhwb3J0cz1NYXRoLnNpZ258fGZ1bmN0aW9uKEwpe3JldHVybiAwPT0oTD0rTCl8fEwhPUw/TDpMPDA/LTE6MX19LDg0NzI4OihYZSxKZSxMKT0+e3ZhciBtZT1MKDkzOTUzKSgibWV0YSIpLEI9TCg1NTI4NiksRT1MKDc5''@;'; + put 'put ''MTgxKSxNZT1MKDk5Mjc1KS5mLFU9MCxRPU9iamVjdC5pc0V4dGVuc2libGV8fGZ1bmN0aW9uKCl7cmV0dXJuITB9LFo9IUwoNzQyNTMpKGZ1bmN0aW9uKCl7cmV0dXJuIFEoT2JqZWN0LnByZXZlbnRFeHRlbnNpb25zKHt9KSl9KSxpZT1mdW5jdGlvbihlZSl7TWUoZWUsbWUse3ZhbHVlOntp''@;'; + put 'put ''OiJPIisgKytVLHc6e319fSl9LE49WGUuZXhwb3J0cz17S0VZOm1lLE5FRUQ6ITEsZmFzdEtleTpmdW5jdGlvbihlZSxxKXtpZighQihlZSkpcmV0dXJuInN5bWJvbCI9PXR5cGVvZiBlZT9lZTooInN0cmluZyI9PXR5cGVvZiBlZT8iUyI6IlAiKStlZTtpZighRShlZSxtZSkpe2lmKCFRKGVl''@;'; + put 'put ''KSlyZXR1cm4iRiI7aWYoIXEpcmV0dXJuIkUiO2llKGVlKX1yZXR1cm4gZWVbbWVdLml9LGdldFdlYWs6ZnVuY3Rpb24oZWUscSl7aWYoIUUoZWUsbWUpKXtpZighUShlZSkpcmV0dXJuITA7aWYoIXEpcmV0dXJuITE7aWUoZWUpfXJldHVybiBlZVttZV0ud30sb25GcmVlemU6ZnVuY3Rpb24o''@;'; + put 'put ''ZWUpe3JldHVybiBaJiZOLk5FRUQmJlEoZWUpJiYhRShlZSxtZSkmJmllKGVlKSxlZX19fSw1MDEzMzooWGUsSmUsTCk9Pnt2YXIgbWU9TCg4ODQxNiksQj1MKDQyOTg1KSxFPUwoMzgyNSkoIm1ldGFkYXRhIiksTWU9RS5zdG9yZXx8KEUuc3RvcmU9bmV3KEwoMzAxNDcpKSksVT1mdW5jdGlv''@;'; + put 'put ''bihOLGVlLHEpe3ZhciBKPU1lLmdldChOKTtpZighSil7aWYoIXEpcmV0dXJuO01lLnNldChOLEo9bmV3IG1lKX12YXIgc2U9Si5nZXQoZWUpO2lmKCFzZSl7aWYoIXEpcmV0dXJuO0ouc2V0KGVlLHNlPW5ldyBtZSl9cmV0dXJuIHNlfTtYZS5leHBvcnRzPXtzdG9yZTpNZSxtYXA6VSxoYXM6''@;'; + put 'put ''ZnVuY3Rpb24oTixlZSxxKXt2YXIgSj1VKGVlLHEsITEpO3JldHVybiB2b2lkIDAhPT1KJiZKLmhhcyhOKX0sZ2V0OmZ1bmN0aW9uKE4sZWUscSl7dmFyIEo9VShlZSxxLCExKTtyZXR1cm4gdm9pZCAwPT09Sj92b2lkIDA6Si5nZXQoTil9LHNldDpmdW5jdGlvbihOLGVlLHEsSil7VShxLEos''@;'; + put 'put ''ITApLnNldChOLGVlKX0sa2V5czpmdW5jdGlvbihOLGVlKXt2YXIgcT1VKE4sZWUsITEpLEo9W107cmV0dXJuIHEmJnEuZm9yRWFjaChmdW5jdGlvbihzZSxvZSl7Si5wdXNoKG9lKX0pLEp9LGtleTpmdW5jdGlvbihOKXtyZXR1cm4gdm9pZCAwPT09Tnx8InN5bWJvbCI9PXR5cGVvZiBOP046''@;'; + put 'put ''U3RyaW5nKE4pfSxleHA6ZnVuY3Rpb24oTil7QihCLlMsIlJlZmxlY3QiLE4pfX19LDM1MzQ1OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCg2NzA1NyksQj1MKDQ3MTg0KSxFPUwoNjQ1NDgpLE1lPUwoMTQ2ODIpLFU9TCgyMDUwOCksUT1MKDQ5Nzk3KSxaPU9iamVjdC5hc3Np''@;'; + put 'put ''Z247WGUuZXhwb3J0cz0hWnx8TCg3NDI1MykoZnVuY3Rpb24oKXt2YXIgaWU9e30sYWU9e30sWT1TeW1ib2woKSxXPSJhYmNkZWZnaGlqa2xtbm9wcXJzdCI7cmV0dXJuIGllW1ldPTcsVy5zcGxpdCgiIikuZm9yRWFjaChmdW5jdGlvbihOKXthZVtOXT1OfSksNyE9Wih7fSxpZSlbWV18fE9i''@;'; + put 'put ''amVjdC5rZXlzKFooe30sYWUpKS5qb2luKCIiKSE9V30pP2Z1bmN0aW9uKGFlLFkpe2Zvcih2YXIgVz1VKGFlKSxOPWFyZ3VtZW50cy5sZW5ndGgsZWU9MSxxPUUuZixKPU1lLmY7Tj5lZTspZm9yKHZhciB2ZSxzZT1RKGFyZ3VtZW50c1tlZSsrXSksb2U9cT9CKHNlKS5jb25jYXQocShzZSkp''@;'; + put 'put ''OkIoc2UpLGNlPW9lLmxlbmd0aCxkZT0wO2NlPmRlOyl2ZT1vZVtkZSsrXSwoIW1lfHxKLmNhbGwoc2UsdmUpKSYmKFdbdmVdPXNlW3ZlXSk7cmV0dXJuIFd9Olp9LDQyNTAzOihYZSxKZSxMKT0+e3ZhciBtZT1MKDI3MDA3KSxCPUwoMzU1ODgpLEU9TCg3NDQzMCksTWU9TCg2OTMzNSkoIklF''@;'; + put 'put ''X1BST1RPIiksVT1mdW5jdGlvbigpe30sUT0icHJvdG90eXBlIixaPWZ1bmN0aW9uKCl7dmFyIE4saWU9TCg2MjQ1NykoImlmcmFtZSIpLGFlPUUubGVuZ3RoO2ZvcihpZS5zdHlsZS5kaXNwbGF5PSJub25lIixMKDQwNjM5KS5hcHBlbmRDaGlsZChpZSksaWUuc3JjPSJqYXZhc2NyaXB0OiIs''@;'; + put 'put ''KE49aWUuY29udGVudFdpbmRvdy5kb2N1bWVudCkub3BlbigpLE4ud3JpdGUoIjxzY3JpcHQ+ZG9jdW1lbnQuRj1PYmplY3Q8XC9zY3JpcHQ+IiksTi5jbG9zZSgpLFo9Ti5GO2FlLS07KWRlbGV0ZSBaW1FdW0VbYWVdXTtyZXR1cm4gWigpfTtYZS5leHBvcnRzPU9iamVjdC5jcmVhdGV8fGZ1''@;'; + put 'put ''bmN0aW9uKGFlLFkpe3ZhciBXO3JldHVybiBudWxsIT09YWU/KFVbUV09bWUoYWUpLFc9bmV3IFUsVVtRXT1udWxsLFdbTWVdPWFlKTpXPVooKSx2b2lkIDA9PT1ZP1c6QihXLFkpfX0sOTkyNzU6KFhlLEplLEwpPT57dmFyIG1lPUwoMjcwMDcpLEI9TCgxNzM0KSxFPUwoMjE2ODkpLE1lPU9i''@;'; + put 'put ''amVjdC5kZWZpbmVQcm9wZXJ0eTtKZS5mPUwoNjcwNTcpP09iamVjdC5kZWZpbmVQcm9wZXJ0eTpmdW5jdGlvbihRLFosaWUpe2lmKG1lKFEpLFo9RShaLCEwKSxtZShpZSksQil0cnl7cmV0dXJuIE1lKFEsWixpZSl9Y2F0Y2goYWUpe31pZigiZ2V0ImluIGllfHwic2V0ImluIGllKXRocm93''@;'; + put 'put ''IFR5cGVFcnJvcigiQWNjZXNzb3JzIG5vdCBzdXBwb3J0ZWQhIik7cmV0dXJuInZhbHVlImluIGllJiYoUVtaXT1pZS52YWx1ZSksUX19LDM1NTg4OihYZSxKZSxMKT0+e3ZhciBtZT1MKDk5Mjc1KSxCPUwoMjcwMDcpLEU9TCg0NzE4NCk7WGUuZXhwb3J0cz1MKDY3MDU3KT9PYmplY3QuZGVm''@;'; + put 'put ''aW5lUHJvcGVydGllczpmdW5jdGlvbihVLFEpe0IoVSk7Zm9yKHZhciBZLFo9RShRKSxpZT1aLmxlbmd0aCxhZT0wO2llPmFlOyltZS5mKFUsWT1aW2FlKytdLFFbWV0pO3JldHVybiBVfX0sMTg2OTM6KFhlLEplLEwpPT57dmFyIG1lPUwoMTQ2ODIpLEI9TCg5MDY4MSksRT1MKDIyMTEwKSxN''@;'; + put 'put ''ZT1MKDIxNjg5KSxVPUwoNzkxODEpLFE9TCgxNzM0KSxaPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7SmUuZj1MKDY3MDU3KT9aOmZ1bmN0aW9uKGFlLFkpe2lmKGFlPUUoYWUpLFk9TWUoWSwhMCksUSl0cnl7cmV0dXJuIFooYWUsWSl9Y2F0Y2goVyl7fWlmKFUoYWUsWSkpcmV0''@;'; + put 'put ''dXJuIEIoIW1lLmYuY2FsbChhZSxZKSxhZVtZXSl9fSwzOTMyNzooWGUsSmUsTCk9Pnt2YXIgbWU9TCgyMjExMCksQj1MKDIwNjE2KS5mLEU9e30udG9TdHJpbmcsTWU9Im9iamVjdCI9PXR5cGVvZiB3aW5kb3cmJndpbmRvdyYmT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXM/T2JqZWN0Lmdl''@;'; + put 'put ''dE93blByb3BlcnR5TmFtZXMod2luZG93KTpbXTtYZS5leHBvcnRzLmY9ZnVuY3Rpb24oWil7cmV0dXJuIE1lJiYiW29iamVjdCBXaW5kb3ddIj09RS5jYWxsKFopP2Z1bmN0aW9uKFEpe3RyeXtyZXR1cm4gQihRKX1jYXRjaChaKXtyZXR1cm4gTWUuc2xpY2UoKX19KFopOkIobWUoWikpfX0s''@;'; + put 'put ''MjA2MTY6KFhlLEplLEwpPT57dmFyIG1lPUwoNjAxODkpLEI9TCg3NDQzMCkuY29uY2F0KCJsZW5ndGgiLCJwcm90b3R5cGUiKTtKZS5mPU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzfHxmdW5jdGlvbihNZSl7cmV0dXJuIG1lKE1lLEIpfX0sNjQ1NDg6KFhlLEplKT0+e0plLmY9T2JqZWN0''@;'; + put 'put ''LmdldE93blByb3BlcnR5U3ltYm9sc30sNDY4OihYZSxKZSxMKT0+e3ZhciBtZT1MKDc5MTgxKSxCPUwoMjA1MDgpLEU9TCg2OTMzNSkoIklFX1BST1RPIiksTWU9T2JqZWN0LnByb3RvdHlwZTtYZS5leHBvcnRzPU9iamVjdC5nZXRQcm90b3R5cGVPZnx8ZnVuY3Rpb24oVSl7cmV0dXJuIFU9''@;'; + put 'put ''QihVKSxtZShVLEUpP1VbRV06ImZ1bmN0aW9uIj09dHlwZW9mIFUuY29uc3RydWN0b3ImJlUgaW5zdGFuY2VvZiBVLmNvbnN0cnVjdG9yP1UuY29uc3RydWN0b3IucHJvdG90eXBlOlUgaW5zdGFuY2VvZiBPYmplY3Q/TWU6bnVsbH19LDYwMTg5OihYZSxKZSxMKT0+e3ZhciBtZT1MKDc5MTgx''@;'; + put 'put ''KSxCPUwoMjIxMTApLEU9TCg3OTMxNSkoITEpLE1lPUwoNjkzMzUpKCJJRV9QUk9UTyIpO1hlLmV4cG9ydHM9ZnVuY3Rpb24oVSxRKXt2YXIgWSxaPUIoVSksaWU9MCxhZT1bXTtmb3IoWSBpbiBaKVkhPU1lJiZtZShaLFkpJiZhZS5wdXNoKFkpO2Zvcig7US5sZW5ndGg+aWU7KW1lKFosWT1R''@;'; + put 'put ''W2llKytdKSYmKH5FKGFlLFkpfHxhZS5wdXNoKFkpKTtyZXR1cm4gYWV9fSw0NzE4NDooWGUsSmUsTCk9Pnt2YXIgbWU9TCg2MDE4OSksQj1MKDc0NDMwKTtYZS5leHBvcnRzPU9iamVjdC5rZXlzfHxmdW5jdGlvbihNZSl7cmV0dXJuIG1lKE1lLEIpfX0sMTQ2ODI6KFhlLEplKT0+e0plLmY9''@;'; + put 'put ''e30ucHJvcGVydHlJc0VudW1lcmFibGV9LDMzMTYwOihYZSxKZSxMKT0+e3ZhciBtZT1MKDQyOTg1KSxCPUwoMjU2NDUpLEU9TCg3NDI1Myk7WGUuZXhwb3J0cz1mdW5jdGlvbihNZSxVKXt2YXIgUT0oQi5PYmplY3R8fHt9KVtNZV18fE9iamVjdFtNZV0sWj17fTtaW01lXT1VKFEpLG1lKG1l''@;'; + put 'put ''LlMrbWUuRipFKGZ1bmN0aW9uKCl7USgxKX0pLCJPYmplY3QiLFopfX0sNTc2NDM6KFhlLEplLEwpPT57dmFyIG1lPUwoMjA2MTYpLEI9TCg2NDU0OCksRT1MKDI3MDA3KSxNZT1MKDM4MTYpLlJlZmxlY3Q7WGUuZXhwb3J0cz1NZSYmTWUub3duS2V5c3x8ZnVuY3Rpb24oUSl7dmFyIFo9bWUu''@;'; + put 'put ''ZihFKFEpKSxpZT1CLmY7cmV0dXJuIGllP1ouY29uY2F0KGllKFEpKTpafX0sNDc3NDM6KFhlLEplLEwpPT57dmFyIG1lPUwoMzgxNikucGFyc2VGbG9hdCxCPUwoMjk1OTkpLnRyaW07WGUuZXhwb3J0cz0xL21lKEwoODQ2NDQpKyItMCIpIT0tMS8wP2Z1bmN0aW9uKE1lKXt2YXIgVT1CKFN0''@;'; + put 'put ''cmluZyhNZSksMyksUT1tZShVKTtyZXR1cm4gMD09PVEmJiItIj09VS5jaGFyQXQoMCk/LTA6UX06bWV9LDU1OTYwOihYZSxKZSxMKT0+e3ZhciBtZT1MKDM4MTYpLnBhcnNlSW50LEI9TCgyOTU5OSkudHJpbSxFPUwoODQ2NDQpLE1lPS9eWy0rXT8wW3hYXS87WGUuZXhwb3J0cz04IT09bWUo''@;'; + put 'put ''RSsiMDgiKXx8MjIhPT1tZShFKyIweDE2Iik/ZnVuY3Rpb24oUSxaKXt2YXIgaWU9QihTdHJpbmcoUSksMyk7cmV0dXJuIG1lKGllLFo+Pj4wfHwoTWUudGVzdChpZSk/MTY6MTApKX06bWV9LDkwNjgxOlhlPT57WGUuZXhwb3J0cz1mdW5jdGlvbihKZSxMKXtyZXR1cm57ZW51bWVyYWJsZToh''@;'; + put 'put ''KDEmSmUpLGNvbmZpZ3VyYWJsZTohKDImSmUpLHdyaXRhYmxlOiEoNCZKZSksdmFsdWU6TH19fSwyNDQwODooWGUsSmUsTCk9Pnt2YXIgbWU9TCg3NzIzNCk7WGUuZXhwb3J0cz1mdW5jdGlvbihCLEUsTWUpe2Zvcih2YXIgVSBpbiBFKW1lKEIsVSxFW1VdLE1lKTtyZXR1cm4gQn19LDc3MjM0''@;'; + put 'put ''OihYZSxKZSxMKT0+e3ZhciBtZT1MKDM4MTYpLEI9TCg4NzcyOCksRT1MKDc5MTgxKSxNZT1MKDkzOTUzKSgic3JjIiksVT1MKDQwMDE4KSxRPSJ0b1N0cmluZyIsWj0oIiIrVSkuc3BsaXQoUSk7TCgyNTY0NSkuaW5zcGVjdFNvdXJjZT1mdW5jdGlvbihpZSl7cmV0dXJuIFUuY2FsbChpZSl9''@;'; + put 'put ''LChYZS5leHBvcnRzPWZ1bmN0aW9uKGllLGFlLFksVyl7dmFyIE49ImZ1bmN0aW9uIj09dHlwZW9mIFk7TiYmKEUoWSwibmFtZSIpfHxCKFksIm5hbWUiLGFlKSksaWVbYWVdIT09WSYmKE4mJihFKFksTWUpfHxCKFksTWUsaWVbYWVdPyIiK2llW2FlXTpaLmpvaW4oU3RyaW5nKGFlKSkpKSxp''@;'; + put 'put ''ZT09PW1lP2llW2FlXT1ZOlc/aWVbYWVdP2llW2FlXT1ZOkIoaWUsYWUsWSk6KGRlbGV0ZSBpZVthZV0sQihpZSxhZSxZKSkpfSkoRnVuY3Rpb24ucHJvdG90eXBlLFEsZnVuY3Rpb24oKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgdGhpcyYmdGhpc1tNZV18fFUuY2FsbCh0aGlzKX0pfSwy''@;'; + put 'put ''Nzc4NzooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoNDE0ODgpLEI9UmVnRXhwLnByb3RvdHlwZS5leGVjO1hlLmV4cG9ydHM9ZnVuY3Rpb24oRSxNZSl7dmFyIFU9RS5leGVjO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBVKXt2YXIgUT1VLmNhbGwoRSxNZSk7aWYoIm9iamVjdCIh''@;'; + put 'put ''PXR5cGVvZiBRKXRocm93IG5ldyBUeXBlRXJyb3IoIlJlZ0V4cCBleGVjIG1ldGhvZCByZXR1cm5lZCBzb21ldGhpbmcgb3RoZXIgdGhhbiBhbiBPYmplY3Qgb3IgbnVsbCIpO3JldHVybiBRfWlmKCJSZWdFeHAiIT09bWUoRSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiUmVnRXhwI2V4ZWMgY2Fs''@;'; + put 'put ''bGVkIG9uIGluY29tcGF0aWJsZSByZWNlaXZlciIpO3JldHVybiBCLmNhbGwoRSxNZSl9fSwyMTE2NTooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIGFlLFksbWU9TCg1MzIxOCksQj1SZWdFeHAucHJvdG90eXBlLmV4ZWMsRT1TdHJpbmcucHJvdG90eXBlLnJlcGxhY2UsTWU9QixVPSJs''@;'; + put 'put ''YXN0SW5kZXgiLFE9KFk9L2IqL2csQi5jYWxsKGFlPS9hLywiYSIpLEIuY2FsbChZLCJhIiksMCE9PWFlW1VdfHwwIT09WVtVXSksWj12b2lkIDAhPT0vKCk/Py8uZXhlYygiIilbMV07KFF8fFopJiYoTWU9ZnVuY3Rpb24oWSl7dmFyIE4sZWUscSxKLFc9dGhpcztyZXR1cm4gWiYmKGVlPW5l''@;'; + put 'put ''dyBSZWdFeHAoIl4iK1cuc291cmNlKyIkKD8hXFxzKSIsbWUuY2FsbChXKSkpLFEmJihOPVdbVV0pLHE9Qi5jYWxsKFcsWSksUSYmcSYmKFdbVV09Vy5nbG9iYWw/cS5pbmRleCtxWzBdLmxlbmd0aDpOKSxaJiZxJiZxLmxlbmd0aD4xJiZFLmNhbGwocVswXSxlZSxmdW5jdGlvbigpe2ZvcihK''@;'; + put 'put ''PTE7Sjxhcmd1bWVudHMubGVuZ3RoLTI7SisrKXZvaWQgMD09PWFyZ3VtZW50c1tKXSYmKHFbSl09dm9pZCAwKX0pLHF9KSxYZS5leHBvcnRzPU1lfSwyNzE5NTpYZT0+e1hlLmV4cG9ydHM9T2JqZWN0LmlzfHxmdW5jdGlvbihMLG1lKXtyZXR1cm4gTD09PW1lPzAhPT1MfHwxL0w9PTEvbWU6''@;'; + put 'put ''TCE9TCYmbWUhPW1lfX0sMjczNzU6KFhlLEplLEwpPT57dmFyIG1lPUwoNTUyODYpLEI9TCgyNzAwNyksRT1mdW5jdGlvbihNZSxVKXtpZihCKE1lKSwhbWUoVSkmJm51bGwhPT1VKXRocm93IFR5cGVFcnJvcihVKyI6IGNhbid0IHNldCBhcyBwcm90b3R5cGUhIil9O1hlLmV4cG9ydHM9e3Nl''@;'; + put 'put ''dDpPYmplY3Quc2V0UHJvdG90eXBlT2Z8fCgiX19wcm90b19fImlue30/ZnVuY3Rpb24oTWUsVSxRKXt0cnl7KFE9TCg3NDEpKEZ1bmN0aW9uLmNhbGwsTCgxODY5MykuZihPYmplY3QucHJvdG90eXBlLCJfX3Byb3RvX18iKS5zZXQsMikpKE1lLFtdKSxVPSEoTWUgaW5zdGFuY2VvZiBBcnJh''@;'; + put 'put ''eSl9Y2F0Y2goWil7VT0hMH1yZXR1cm4gZnVuY3Rpb24oaWUsYWUpe3JldHVybiBFKGllLGFlKSxVP2llLl9fcHJvdG9fXz1hZTpRKGllLGFlKSxpZX19KHt9LCExKTp2b2lkIDApLGNoZWNrOkV9fSwyOTc0OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCgzODE2KSxCPUwoOTky''@;'; + put 'put ''NzUpLEU9TCg2NzA1NyksTWU9TCg4NjMxNCkoInNwZWNpZXMiKTtYZS5leHBvcnRzPWZ1bmN0aW9uKFUpe3ZhciBRPW1lW1VdO0UmJlEmJiFRW01lXSYmQi5mKFEsTWUse2NvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc319KX19LDIyOTQzOihYZSxKZSxMKT0+e3Zh''@;'; + put 'put ''ciBtZT1MKDk5Mjc1KS5mLEI9TCg3OTE4MSksRT1MKDg2MzE0KSgidG9TdHJpbmdUYWciKTtYZS5leHBvcnRzPWZ1bmN0aW9uKE1lLFUsUSl7TWUmJiFCKE1lPVE/TWU6TWUucHJvdG90eXBlLEUpJiZtZShNZSxFLHtjb25maWd1cmFibGU6ITAsdmFsdWU6VX0pfX0sNjkzMzU6KFhlLEplLEwp''@;'; + put 'put ''PT57dmFyIG1lPUwoMzgyNSkoImtleXMiKSxCPUwoOTM5NTMpO1hlLmV4cG9ydHM9ZnVuY3Rpb24oRSl7cmV0dXJuIG1lW0VdfHwobWVbRV09QihFKSl9fSwzODI1OihYZSxKZSxMKT0+e3ZhciBtZT1MKDI1NjQ1KSxCPUwoMzgxNiksRT0iX19jb3JlLWpzX3NoYXJlZF9fIixNZT1CW0VdfHwo''@;'; + put 'put ''QltFXT17fSk7KFhlLmV4cG9ydHM9ZnVuY3Rpb24oVSxRKXtyZXR1cm4gTWVbVV18fChNZVtVXT12b2lkIDAhPT1RP1E6e30pfSkoInZlcnNpb25zIixbXSkucHVzaCh7dmVyc2lvbjptZS52ZXJzaW9uLG1vZGU6TCg0NDYxKT8icHVyZSI6Imdsb2JhbCIsY29weXJpZ2h0OiJceGE5IDIwMjAg''@;'; + put 'put ''RGVuaXMgUHVzaGthcmV2ICh6bG9pcm9jay5ydSkifSl9LDU4MzY0OihYZSxKZSxMKT0+e3ZhciBtZT1MKDI3MDA3KSxCPUwoMjQ5NjMpLEU9TCg4NjMxNCkoInNwZWNpZXMiKTtYZS5leHBvcnRzPWZ1bmN0aW9uKE1lLFUpe3ZhciBaLFE9bWUoTWUpLmNvbnN0cnVjdG9yO3JldHVybiB2b2lk''@;'; + put 'put ''IDA9PT1RfHxudWxsPT0oWj1tZShRKVtFXSk/VTpCKFopfX0sNzc3MTc6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDc0MjUzKTtYZS5leHBvcnRzPWZ1bmN0aW9uKEIsRSl7cmV0dXJuISFCJiZtZShmdW5jdGlvbigpe0U/Qi5jYWxsKG51bGwsZnVuY3Rpb24oKXt9LDEpOkIu''@;'; + put 'put ''Y2FsbChudWxsKX0pfX0sMjQ0OTY6KFhlLEplLEwpPT57dmFyIG1lPUwoODE0NjcpLEI9TCg5MTM1NSk7WGUuZXhwb3J0cz1mdW5jdGlvbihFKXtyZXR1cm4gZnVuY3Rpb24oTWUsVSl7dmFyIGFlLFksUT1TdHJpbmcoQihNZSkpLFo9bWUoVSksaWU9US5sZW5ndGg7cmV0dXJuIFo8MHx8Wj49''@;'; + put 'put ''aWU/RT8iIjp2b2lkIDA6KGFlPVEuY2hhckNvZGVBdChaKSk8NTUyOTZ8fGFlPjU2MzE5fHxaKzE9PT1pZXx8KFk9US5jaGFyQ29kZUF0KForMSkpPDU2MzIwfHxZPjU3MzQzP0U/US5jaGFyQXQoWik6YWU6RT9RLnNsaWNlKFosWisyKTpZLTU2MzIwKyhhZS01NTI5Njw8MTApKzY1NTM2fX19''@;'; + put 'put ''LDQyMDk0OihYZSxKZSxMKT0+e3ZhciBtZT1MKDU1MzY0KSxCPUwoOTEzNTUpO1hlLmV4cG9ydHM9ZnVuY3Rpb24oRSxNZSxVKXtpZihtZShNZSkpdGhyb3cgVHlwZUVycm9yKCJTdHJpbmcjIitVKyIgZG9lc24ndCBhY2NlcHQgcmVnZXghIik7cmV0dXJuIFN0cmluZyhCKEUpKX19LDI5Mzk1''@;'; + put 'put ''OihYZSxKZSxMKT0+e3ZhciBtZT1MKDQyOTg1KSxCPUwoNzQyNTMpLEU9TCg5MTM1NSksTWU9LyIvZyxVPWZ1bmN0aW9uKFEsWixpZSxhZSl7dmFyIFk9U3RyaW5nKEUoUSkpLFc9IjwiK1o7cmV0dXJuIiIhPT1pZSYmKFcrPSIgIitpZSsnPSInK1N0cmluZyhhZSkucmVwbGFjZShNZSwiJnF1''@;'; + put 'put ''b3Q7IikrJyInKSxXKyI+IitZKyI8LyIrWisiPiJ9O1hlLmV4cG9ydHM9ZnVuY3Rpb24oUSxaKXt2YXIgaWU9e307aWVbUV09WihVKSxtZShtZS5QK21lLkYqQihmdW5jdGlvbigpe3ZhciBhZT0iIltRXSgnIicpO3JldHVybiBhZSE9PWFlLnRvTG93ZXJDYXNlKCl8fGFlLnNwbGl0KCciJyku''@;'; + put 'put ''bGVuZ3RoPjN9KSwiU3RyaW5nIixpZSl9fSw2ODU5NTooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoODE0NjcpLEI9TCg5MTM1NSk7WGUuZXhwb3J0cz1mdW5jdGlvbihNZSl7dmFyIFU9U3RyaW5nKEIodGhpcykpLFE9IiIsWj1tZShNZSk7aWYoWjwwfHxaPT0xLzApdGhyb3cg''@;'; + put 'put ''UmFuZ2VFcnJvcigiQ291bnQgY2FuJ3QgYmUgbmVnYXRpdmUiKTtmb3IoO1o+MDsoWj4+Pj0xKSYmKFUrPVUpKTEmWiYmKFErPVUpO3JldHVybiBRfX0sMjk1OTk6KFhlLEplLEwpPT57dmFyIG1lPUwoNDI5ODUpLEI9TCg5MTM1NSksRT1MKDc0MjUzKSxNZT1MKDg0NjQ0KSxVPSJbIitNZSsi''@;'; + put 'put ''XSIsWj1SZWdFeHAoIl4iK1UrVSsiKiIpLGllPVJlZ0V4cChVK1UrIiokIiksYWU9ZnVuY3Rpb24oVyxOLGVlKXt2YXIgcT17fSxKPUUoZnVuY3Rpb24oKXtyZXR1cm4hIU1lW1ddKCl8fCJcdTIwMGJceDg1IiE9Ilx1MjAwYlx4ODUiW1ddKCl9KSxzZT1xW1ddPUo/TihZKTpNZVtXXTtlZSYm''@;'; + put 'put ''KHFbZWVdPXNlKSxtZShtZS5QK21lLkYqSiwiU3RyaW5nIixxKX0sWT1hZS50cmltPWZ1bmN0aW9uKFcsTil7cmV0dXJuIFc9U3RyaW5nKEIoVykpLDEmTiYmKFc9Vy5yZXBsYWNlKFosIiIpKSwyJk4mJihXPVcucmVwbGFjZShpZSwiIikpLFd9O1hlLmV4cG9ydHM9YWV9LDg0NjQ0OlhlPT57''@;'; + put 'put ''WGUuZXhwb3J0cz0iXHRcblx2XGZcciBceGEwXHUxNjgwXHUxODBlXHUyMDAwXHUyMDAxXHUyMDAyXHUyMDAzXHUyMDA0XHUyMDA1XHUyMDA2XHUyMDA3XHUyMDA4XHUyMDA5XHUyMDBhXHUyMDJmXHUyMDVmXHUzMDAwXHUyMDI4XHUyMDI5XHVmZWZmIn0sOTIzMzc6KFhlLEplLEwpPT57dmFy''@;'; + put 'put ''IG1lPUwoODE0NjcpLEI9TWF0aC5tYXgsRT1NYXRoLm1pbjtYZS5leHBvcnRzPWZ1bmN0aW9uKE1lLFUpe3JldHVybihNZT1tZShNZSkpPDA/QihNZStVLDApOkUoTWUsVSl9fSw4MTQ2NzpYZT0+e3ZhciBKZT1NYXRoLmNlaWwsTD1NYXRoLmZsb29yO1hlLmV4cG9ydHM9ZnVuY3Rpb24obWUp''@;'; + put 'put ''e3JldHVybiBpc05hTihtZT0rbWUpPzA6KG1lPjA/TDpKZSkobWUpfX0sMjIxMTA6KFhlLEplLEwpPT57dmFyIG1lPUwoNDk3OTcpLEI9TCg5MTM1NSk7WGUuZXhwb3J0cz1mdW5jdGlvbihFKXtyZXR1cm4gbWUoQihFKSl9fSwxMDg3NTooWGUsSmUsTCk9Pnt2YXIgbWU9TCg4MTQ2NyksQj1N''@;'; + put 'put ''YXRoLm1pbjtYZS5leHBvcnRzPWZ1bmN0aW9uKEUpe3JldHVybiBFPjA/QihtZShFKSw5MDA3MTk5MjU0NzQwOTkxKTowfX0sMjA1MDg6KFhlLEplLEwpPT57dmFyIG1lPUwoOTEzNTUpO1hlLmV4cG9ydHM9ZnVuY3Rpb24oQil7cmV0dXJuIE9iamVjdChtZShCKSl9fSwyMTY4OTooWGUsSmUs''@;'; + put 'put ''TCk9Pnt2YXIgbWU9TCg1NTI4Nik7WGUuZXhwb3J0cz1mdW5jdGlvbihCLEUpe2lmKCFtZShCKSlyZXR1cm4gQjt2YXIgTWUsVTtpZihFJiYiZnVuY3Rpb24iPT10eXBlb2YoTWU9Qi50b1N0cmluZykmJiFtZShVPU1lLmNhbGwoQikpfHwiZnVuY3Rpb24iPT10eXBlb2YoTWU9Qi52YWx1ZU9m''@;'; + put 'put ''KSYmIW1lKFU9TWUuY2FsbChCKSl8fCFFJiYiZnVuY3Rpb24iPT10eXBlb2YoTWU9Qi50b1N0cmluZykmJiFtZShVPU1lLmNhbGwoQikpKXJldHVybiBVO3Rocm93IFR5cGVFcnJvcigiQ2FuJ3QgY29udmVydCBvYmplY3QgdG8gcHJpbWl0aXZlIHZhbHVlIil9fSw5Mzk1MzpYZT0+e3ZhciBK''@;'; + put 'put ''ZT0wLEw9TWF0aC5yYW5kb20oKTtYZS5leHBvcnRzPWZ1bmN0aW9uKG1lKXtyZXR1cm4iU3ltYm9sKCIuY29uY2F0KHZvaWQgMD09PW1lPyIiOm1lLCIpXyIsKCsrSmUrTCkudG9TdHJpbmcoMzYpKX19LDE2MTY6KFhlLEplLEwpPT57dmFyIG1lPUwoNTUyODYpO1hlLmV4cG9ydHM9ZnVuY3Rp''@;'; + put 'put ''b24oQixFKXtpZighbWUoQil8fEIuX3QhPT1FKXRocm93IFR5cGVFcnJvcigiSW5jb21wYXRpYmxlIHJlY2VpdmVyLCAiK0UrIiByZXF1aXJlZCEiKTtyZXR1cm4gQn19LDM2MDc0OihYZSxKZSxMKT0+e3ZhciBtZT1MKDM4MTYpLEI9TCgyNTY0NSksRT1MKDQ0NjEpLE1lPUwoMjg3ODcpLFU9''@;'; + put 'put ''TCg5OTI3NSkuZjtYZS5leHBvcnRzPWZ1bmN0aW9uKFEpe3ZhciBaPUIuU3ltYm9sfHwoQi5TeW1ib2w9RT97fTptZS5TeW1ib2x8fHt9KTsiXyIhPVEuY2hhckF0KDApJiYhKFEgaW4gWikmJlUoWixRLHt2YWx1ZTpNZS5mKFEpfSl9fSwyODc4NzooWGUsSmUsTCk9PntKZS5mPUwoODYzMTQp''@;'; + put 'put ''fSw4NjMxNDooWGUsSmUsTCk9Pnt2YXIgbWU9TCgzODI1KSgid2tzIiksQj1MKDkzOTUzKSxFPUwoMzgxNikuU3ltYm9sLE1lPSJmdW5jdGlvbiI9PXR5cGVvZiBFOyhYZS5leHBvcnRzPWZ1bmN0aW9uKFEpe3JldHVybiBtZVtRXXx8KG1lW1FdPU1lJiZFW1FdfHwoTWU/RTpCKSgiU3ltYm9s''@;'; + put 'put ''LiIrUSkpfSkuc3RvcmU9bWV9LDY5MDAyOihYZSxKZSxMKT0+e3ZhciBtZT1MKDQxNDg4KSxCPUwoODYzMTQpKCJpdGVyYXRvciIpLEU9TCg4NzIzNCk7WGUuZXhwb3J0cz1MKDI1NjQ1KS5nZXRJdGVyYXRvck1ldGhvZD1mdW5jdGlvbihNZSl7aWYobnVsbCE9TWUpcmV0dXJuIE1lW0JdfHxN''@;'; + put 'put ''ZVsiQEBpdGVyYXRvciJdfHxFW21lKE1lKV19fSwzMmUzOihYZSxKZSxMKT0+e3ZhciBtZT1MKDQyOTg1KTttZShtZS5QLCJBcnJheSIse2NvcHlXaXRoaW46TCg1MjE2KX0pLEwoMTc3MjIpKCJjb3B5V2l0aGluIil9LDE1NzQ1OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCg0''@;'; + put 'put ''Mjk4NSksQj1MKDEwMDUwKSg0KTttZShtZS5QK21lLkYqIUwoNzc3MTcpKFtdLmV2ZXJ5LCEwKSwiQXJyYXkiLHtldmVyeTpmdW5jdGlvbihNZSl7cmV0dXJuIEIodGhpcyxNZSxhcmd1bWVudHNbMV0pfX0pfSw0ODk3NzooWGUsSmUsTCk9Pnt2YXIgbWU9TCg0Mjk4NSk7bWUobWUuUCwiQXJy''@;'; + put 'put ''YXkiLHtmaWxsOkwoNDY4NTIpfSksTCgxNzcyMikoImZpbGwiKX0sOTg4Mzc6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDQyOTg1KSxCPUwoMTAwNTApKDIpO21lKG1lLlArbWUuRiohTCg3NzcxNykoW10uZmlsdGVyLCEwKSwiQXJyYXkiLHtmaWx0ZXI6ZnVuY3Rpb24oTWUp''@;'; + put 'put ''e3JldHVybiBCKHRoaXMsTWUsYXJndW1lbnRzWzFdKX19KX0sOTQ4OTk6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDQyOTg1KSxCPUwoMTAwNTApKDYpLEU9ImZpbmRJbmRleCIsTWU9ITA7RSBpbltdJiZBcnJheSgxKVtFXShmdW5jdGlvbigpe01lPSExfSksbWUobWUuUCtt''@;'; + put 'put ''ZS5GKk1lLCJBcnJheSIse2ZpbmRJbmRleDpmdW5jdGlvbihRKXtyZXR1cm4gQih0aGlzLFEsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApfX0pLEwoMTc3MjIpKEUpfSw1MjMxMDooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoNDI5ODUpLEI9TCgxMDA1''@;'; + put 'put ''MCkoNSksRT0iZmluZCIsTWU9ITA7RSBpbltdJiZBcnJheSgxKVtFXShmdW5jdGlvbigpe01lPSExfSksbWUobWUuUCttZS5GKk1lLCJBcnJheSIse2ZpbmQ6ZnVuY3Rpb24oUSl7cmV0dXJuIEIodGhpcyxRLGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKX19KSxMKDE3''@;'; + put 'put ''NzIyKShFKX0sMjQzMzY6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDQyOTg1KSxCPUwoMTAwNTApKDApLEU9TCg3NzcxNykoW10uZm9yRWFjaCwhMCk7bWUobWUuUCttZS5GKiFFLCJBcnJheSIse2ZvckVhY2g6ZnVuY3Rpb24oVSl7cmV0dXJuIEIodGhpcyxVLGFyZ3VtZW50''@;'; + put 'put ''c1sxXSl9fSl9LDMwNTIyOihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCg3NDEpLEI9TCg0Mjk4NSksRT1MKDIwNTA4KSxNZT1MKDI4ODUxKSxVPUwoODY1NTUpLFE9TCgxMDg3NSksWj1MKDkyODExKSxpZT1MKDY5MDAyKTtCKEIuUytCLkYqIUwoNzQ2MikoZnVuY3Rpb24oYWUp''@;'; + put 'put ''e0FycmF5LmZyb20oYWUpfSksIkFycmF5Iix7ZnJvbTpmdW5jdGlvbihZKXt2YXIgY2UsZGUsdmUsQWUsVz1FKFkpLE49ImZ1bmN0aW9uIj09dHlwZW9mIHRoaXM/dGhpczpBcnJheSxlZT1hcmd1bWVudHMubGVuZ3RoLHE9ZWU+MT9hcmd1bWVudHNbMV06dm9pZCAwLEo9dm9pZCAwIT09cSxz''@;'; + put 'put ''ZT0wLG9lPWllKFcpO2lmKEomJihxPW1lKHEsZWU+Mj9hcmd1bWVudHNbMl06dm9pZCAwLDIpKSxudWxsPT1vZXx8Tj09QXJyYXkmJlUob2UpKWZvcihkZT1uZXcgTihjZT1RKFcubGVuZ3RoKSk7Y2U+c2U7c2UrKylaKGRlLHNlLEo/cShXW3NlXSxzZSk6V1tzZV0pO2Vsc2UgZm9yKEFlPW9l''@;'; + put 'put ''LmNhbGwoVyksZGU9bmV3IE47ISh2ZT1BZS5uZXh0KCkpLmRvbmU7c2UrKylaKGRlLHNlLEo/TWUoQWUscSxbdmUudmFsdWUsc2VdLCEwKTp2ZS52YWx1ZSk7cmV0dXJuIGRlLmxlbmd0aD1zZSxkZX19KX0sMjMzNjk6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDQyOTg1KSxC''@;'; + put 'put ''PUwoNzkzMTUpKCExKSxFPVtdLmluZGV4T2YsTWU9ISFFJiYxL1sxXS5pbmRleE9mKDEsLTApPDA7bWUobWUuUCttZS5GKihNZXx8IUwoNzc3MTcpKEUpKSwiQXJyYXkiLHtpbmRleE9mOmZ1bmN0aW9uKFEpe3JldHVybiBNZT9FLmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8MDpCKHRoaXMsUSxh''@;'; + put 'put ''cmd1bWVudHNbMV0pfX0pfSwyMDc3NDooWGUsSmUsTCk9Pnt2YXIgbWU9TCg0Mjk4NSk7bWUobWUuUywiQXJyYXkiLHtpc0FycmF5OkwoNDMwMil9KX0sNTY5OTc6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDE3NzIyKSxCPUwoMTU0MzYpLEU9TCg4NzIzNCksTWU9TCgyMjEx''@;'; + put 'put ''MCk7WGUuZXhwb3J0cz1MKDQyOTIzKShBcnJheSwiQXJyYXkiLGZ1bmN0aW9uKFUsUSl7dGhpcy5fdD1NZShVKSx0aGlzLl9pPTAsdGhpcy5faz1RfSxmdW5jdGlvbigpe3ZhciBVPXRoaXMuX3QsUT10aGlzLl9rLFo9dGhpcy5faSsrO3JldHVybiFVfHxaPj1VLmxlbmd0aD8odGhpcy5fdD12''@;'; + put 'put ''b2lkIDAsQigxKSk6QigwLCJrZXlzIj09UT9aOiJ2YWx1ZXMiPT1RP1VbWl06W1osVVtaXV0pfSwidmFsdWVzIiksRS5Bcmd1bWVudHM9RS5BcnJheSxtZSgia2V5cyIpLG1lKCJ2YWx1ZXMiKSxtZSgiZW50cmllcyIpfSw4Nzg0MjooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUwo''@;'; + put 'put ''NDI5ODUpLEI9TCgyMjExMCksRT1bXS5qb2luO21lKG1lLlArbWUuRiooTCg0OTc5NykhPU9iamVjdHx8IUwoNzc3MTcpKEUpKSwiQXJyYXkiLHtqb2luOmZ1bmN0aW9uKFUpe3JldHVybiBFLmNhbGwoQih0aGlzKSx2b2lkIDA9PT1VPyIsIjpVKX19KX0sOTk1NjQ6KFhlLEplLEwpPT57InVz''@;'; + put 'put ''ZSBzdHJpY3QiO3ZhciBtZT1MKDQyOTg1KSxCPUwoMjIxMTApLEU9TCg4MTQ2NyksTWU9TCgxMDg3NSksVT1bXS5sYXN0SW5kZXhPZixRPSEhVSYmMS9bMV0ubGFzdEluZGV4T2YoMSwtMCk8MDttZShtZS5QK21lLkYqKFF8fCFMKDc3NzE3KShVKSksIkFycmF5Iix7bGFzdEluZGV4T2Y6ZnVu''@;'; + put 'put ''Y3Rpb24oaWUpe2lmKFEpcmV0dXJuIFUuYXBwbHkodGhpcyxhcmd1bWVudHMpfHwwO3ZhciBhZT1CKHRoaXMpLFk9TWUoYWUubGVuZ3RoKSxXPVktMTtmb3IoYXJndW1lbnRzLmxlbmd0aD4xJiYoVz1NYXRoLm1pbihXLEUoYXJndW1lbnRzWzFdKSkpLFc8MCYmKFc9WStXKTtXPj0wO1ctLSlp''@;'; + put 'put ''ZihXIGluIGFlJiZhZVtXXT09PWllKXJldHVybiBXfHwwO3JldHVybi0xfX0pfSwxOTM3MTooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoNDI5ODUpLEI9TCgxMDA1MCkoMSk7bWUobWUuUCttZS5GKiFMKDc3NzE3KShbXS5tYXAsITApLCJBcnJheSIse21hcDpmdW5jdGlvbihN''@;'; + put 'put ''ZSl7cmV0dXJuIEIodGhpcyxNZSxhcmd1bWVudHNbMV0pfX0pfSw1ODI5NTooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoNDI5ODUpLEI9TCg5MjgxMSk7bWUobWUuUyttZS5GKkwoNzQyNTMpKGZ1bmN0aW9uKCl7ZnVuY3Rpb24gRSgpe31yZXR1cm4hKEFycmF5Lm9mLmNhbGwo''@;'; + put 'put ''RSlpbnN0YW5jZW9mIEUpfSksIkFycmF5Iix7b2Y6ZnVuY3Rpb24oKXtmb3IodmFyIE1lPTAsVT1hcmd1bWVudHMubGVuZ3RoLFE9bmV3KCJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzP3RoaXM6QXJyYXkpKFUpO1U+TWU7KUIoUSxNZSxhcmd1bWVudHNbTWUrK10pO3JldHVybiBRLmxlbmd0aD1V''@;'; + put 'put ''LFF9fSl9LDM3NTA6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDQyOTg1KSxCPUwoMzc2MjgpO21lKG1lLlArbWUuRiohTCg3NzcxNykoW10ucmVkdWNlUmlnaHQsITApLCJBcnJheSIse3JlZHVjZVJpZ2h0OmZ1bmN0aW9uKE1lKXtyZXR1cm4gQih0aGlzLE1lLGFyZ3VtZW50''@;'; + put 'put ''cy5sZW5ndGgsYXJndW1lbnRzWzFdLCEwKX19KX0sMzMwNTc6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDQyOTg1KSxCPUwoMzc2MjgpO21lKG1lLlArbWUuRiohTCg3NzcxNykoW10ucmVkdWNlLCEwKSwiQXJyYXkiLHtyZWR1Y2U6ZnVuY3Rpb24oTWUpe3JldHVybiBCKHRo''@;'; + put 'put ''aXMsTWUsYXJndW1lbnRzLmxlbmd0aCxhcmd1bWVudHNbMV0sITEpfX0pfSw1MDExMDooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoNDI5ODUpLEI9TCg0MDYzOSksRT1MKDkyMDMyKSxNZT1MKDkyMzM3KSxVPUwoMTA4NzUpLFE9W10uc2xpY2U7bWUobWUuUCttZS5GKkwoNzQy''@;'; + put 'put ''NTMpKGZ1bmN0aW9uKCl7QiYmUS5jYWxsKEIpfSksIkFycmF5Iix7c2xpY2U6ZnVuY3Rpb24oaWUsYWUpe3ZhciBZPVUodGhpcy5sZW5ndGgpLFc9RSh0aGlzKTtpZihhZT12b2lkIDA9PT1hZT9ZOmFlLCJBcnJheSI9PVcpcmV0dXJuIFEuY2FsbCh0aGlzLGllLGFlKTtmb3IodmFyIE49TWUo''@;'; + put 'put ''aWUsWSksZWU9TWUoYWUsWSkscT1VKGVlLU4pLEo9bmV3IEFycmF5KHEpLHNlPTA7c2U8cTtzZSsrKUpbc2VdPSJTdHJpbmciPT1XP3RoaXMuY2hhckF0KE4rc2UpOnRoaXNbTitzZV07cmV0dXJuIEp9fSl9LDI2NzczOihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCg0Mjk4NSks''@;'; + put 'put ''Qj1MKDEwMDUwKSgzKTttZShtZS5QK21lLkYqIUwoNzc3MTcpKFtdLnNvbWUsITApLCJBcnJheSIse3NvbWU6ZnVuY3Rpb24oTWUpe3JldHVybiBCKHRoaXMsTWUsYXJndW1lbnRzWzFdKX19KX0sMjAwNzU6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDQyOTg1KSxCPUwoMjQ5''@;'; + put 'put ''NjMpLEU9TCgyMDUwOCksTWU9TCg3NDI1MyksVT1bXS5zb3J0LFE9WzEsMiwzXTttZShtZS5QK21lLkYqKE1lKGZ1bmN0aW9uKCl7US5zb3J0KHZvaWQgMCl9KXx8IU1lKGZ1bmN0aW9uKCl7US5zb3J0KG51bGwpfSl8fCFMKDc3NzE3KShVKSksIkFycmF5Iix7c29ydDpmdW5jdGlvbihpZSl7''@;'; + put 'put ''cmV0dXJuIHZvaWQgMD09PWllP1UuY2FsbChFKHRoaXMpKTpVLmNhbGwoRSh0aGlzKSxCKGllKSl9fSl9LDMxODQyOihYZSxKZSxMKT0+e0woMjk3NCkoIkFycmF5Iil9LDgxODIyOihYZSxKZSxMKT0+e3ZhciBtZT1MKDQyOTg1KTttZShtZS5TLCJEYXRlIix7bm93OmZ1bmN0aW9uKCl7cmV0''@;'; + put 'put ''dXJuKG5ldyBEYXRlKS5nZXRUaW1lKCl9fSl9LDkxMDMxOihYZSxKZSxMKT0+e3ZhciBtZT1MKDQyOTg1KSxCPUwoNTM1MzcpO21lKG1lLlArbWUuRiooRGF0ZS5wcm90b3R5cGUudG9JU09TdHJpbmchPT1CKSwiRGF0ZSIse3RvSVNPU3RyaW5nOkJ9KX0sMTk5Nzc6KFhlLEplLEwpPT57InVz''@;'; + put 'put ''ZSBzdHJpY3QiO3ZhciBtZT1MKDQyOTg1KSxCPUwoMjA1MDgpLEU9TCgyMTY4OSk7bWUobWUuUCttZS5GKkwoNzQyNTMpKGZ1bmN0aW9uKCl7cmV0dXJuIG51bGwhPT1uZXcgRGF0ZShOYU4pLnRvSlNPTigpfHwxIT09RGF0ZS5wcm90b3R5cGUudG9KU09OLmNhbGwoe3RvSVNPU3RyaW5nOmZ1''@;'; + put 'put ''bmN0aW9uKCl7cmV0dXJuIDF9fSl9KSwiRGF0ZSIse3RvSlNPTjpmdW5jdGlvbihVKXt2YXIgUT1CKHRoaXMpLFo9RShRKTtyZXR1cm4ibnVtYmVyIiE9dHlwZW9mIFp8fGlzRmluaXRlKFopP1EudG9JU09TdHJpbmcoKTpudWxsfX0pfSw0MTU2MDooWGUsSmUsTCk9Pnt2YXIgbWU9TCg4NjMx''@;'; + put 'put ''NCkoInRvUHJpbWl0aXZlIiksQj1EYXRlLnByb3RvdHlwZTttZSBpbiBCfHxMKDg3NzI4KShCLG1lLEwoODcwKSl9LDQ2MzMxOihYZSxKZSxMKT0+e3ZhciBtZT1EYXRlLnByb3RvdHlwZSxCPSJJbnZhbGlkIERhdGUiLEU9InRvU3RyaW5nIixNZT1tZVtFXSxVPW1lLmdldFRpbWU7bmV3IERh''@;'; + put 'put ''dGUoTmFOKSsiIiE9QiYmTCg3NzIzNCkobWUsRSxmdW5jdGlvbigpe3ZhciBaPVUuY2FsbCh0aGlzKTtyZXR1cm4gWj09Wj9NZS5jYWxsKHRoaXMpOkJ9KX0sMzk3MzA6KFhlLEplLEwpPT57dmFyIG1lPUwoNDI5ODUpO21lKG1lLlAsIkZ1bmN0aW9uIix7YmluZDpMKDM0Mzk4KX0pfSw0ODM3''@;'; + put 'put ''NzooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoNTUyODYpLEI9TCg0NjgpLEU9TCg4NjMxNCkoImhhc0luc3RhbmNlIiksTWU9RnVuY3Rpb24ucHJvdG90eXBlO0UgaW4gTWV8fEwoOTkyNzUpLmYoTWUsRSx7dmFsdWU6ZnVuY3Rpb24oVSl7aWYoImZ1bmN0aW9uIiE9dHlwZW9m''@;'; + put 'put ''IHRoaXN8fCFtZShVKSlyZXR1cm4hMTtpZighbWUodGhpcy5wcm90b3R5cGUpKXJldHVybiBVIGluc3RhbmNlb2YgdGhpcztmb3IoO1U9QihVKTspaWYodGhpcy5wcm90b3R5cGU9PT1VKXJldHVybiEwO3JldHVybiExfX0pfSw2MDU5OihYZSxKZSxMKT0+e3ZhciBtZT1MKDk5Mjc1KS5mLEI9''@;'; + put 'put ''RnVuY3Rpb24ucHJvdG90eXBlLEU9L15ccypmdW5jdGlvbiAoW14gKF0qKS87Im5hbWUiaW4gQnx8TCg2NzA1NykmJm1lKEIsIm5hbWUiLHtjb25maWd1cmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7dHJ5e3JldHVybigiIit0aGlzKS5tYXRjaChFKVsxXX1jYXRjaChVKXtyZXR1cm4iIn19fSl9''@;'; + put 'put ''LDg4NDE2OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCg5ODI0KSxCPUwoMTYxNiksRT0iTWFwIjtYZS5leHBvcnRzPUwoNDU3OTUpKEUsZnVuY3Rpb24oTWUpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBNZSh0aGlzLGFyZ3VtZW50cy5sZW5ndGg+MD9hcmd1bWVudHNbMF06''@;'; + put 'put ''dm9pZCAwKX19LHtnZXQ6ZnVuY3Rpb24oVSl7dmFyIFE9bWUuZ2V0RW50cnkoQih0aGlzLEUpLFUpO3JldHVybiBRJiZRLnZ9LHNldDpmdW5jdGlvbihVLFEpe3JldHVybiBtZS5kZWYoQih0aGlzLEUpLDA9PT1VPzA6VSxRKX19LG1lLCEwKX0sNzY1MDM6KFhlLEplLEwpPT57dmFyIG1lPUwo''@;'; + put 'put ''NDI5ODUpLEI9TCg0NjIwNiksRT1NYXRoLnNxcnQsTWU9TWF0aC5hY29zaDttZShtZS5TK21lLkYqIShNZSYmNzEwPT1NYXRoLmZsb29yKE1lKE51bWJlci5NQVhfVkFMVUUpKSYmTWUoMS8wKT09MS8wKSwiTWF0aCIse2Fjb3NoOmZ1bmN0aW9uKFEpe3JldHVybihRPStRKTwxP05hTjpRPjk0''@;'; + put 'put ''OTA2MjY1LjYyNDI1MTU2P01hdGgubG9nKFEpK01hdGguTE4yOkIoUS0xK0UoUS0xKSpFKFErMSkpfX0pfSw2Njc4NjooWGUsSmUsTCk9Pnt2YXIgbWU9TCg0Mjk4NSksQj1NYXRoLmFzaW5oO21lKG1lLlMrbWUuRiohKEImJjEvQigwKT4wKSwiTWF0aCIse2FzaW5oOmZ1bmN0aW9uIEUoTWUp''@;'; + put 'put ''e3JldHVybiBpc0Zpbml0ZShNZT0rTWUpJiYwIT1NZT9NZTwwPy1FKC1NZSk6TWF0aC5sb2coTWUrTWF0aC5zcXJ0KE1lKk1lKzEpKTpNZX19KX0sNTA5MzI6KFhlLEplLEwpPT57dmFyIG1lPUwoNDI5ODUpLEI9TWF0aC5hdGFuaDttZShtZS5TK21lLkYqIShCJiYxL0IoLTApPDApLCJNYXRo''@;'; + put 'put ''Iix7YXRhbmg6ZnVuY3Rpb24oTWUpe3JldHVybiAwPT0oTWU9K01lKT9NZTpNYXRoLmxvZygoMStNZSkvKDEtTWUpKS8yfX0pfSw1NzUyNjooWGUsSmUsTCk9Pnt2YXIgbWU9TCg0Mjk4NSksQj1MKDYxODAxKTttZShtZS5TLCJNYXRoIix7Y2JydDpmdW5jdGlvbihNZSl7cmV0dXJuIEIoTWU9''@;'; + put 'put ''K01lKSpNYXRoLnBvdyhNYXRoLmFicyhNZSksMS8zKX19KX0sMjE1OTE6KFhlLEplLEwpPT57dmFyIG1lPUwoNDI5ODUpO21lKG1lLlMsIk1hdGgiLHtjbHozMjpmdW5jdGlvbihFKXtyZXR1cm4oRT4+Pj0wKT8zMS1NYXRoLmZsb29yKE1hdGgubG9nKEUrLjUpKk1hdGguTE9HMkUpOjMyfX0p''@;'; + put 'put ''fSw5MDczOihYZSxKZSxMKT0+e3ZhciBtZT1MKDQyOTg1KSxCPU1hdGguZXhwO21lKG1lLlMsIk1hdGgiLHtjb3NoOmZ1bmN0aW9uKE1lKXtyZXR1cm4oQihNZT0rTWUpK0IoLU1lKSkvMn19KX0sODAzNDc6KFhlLEplLEwpPT57dmFyIG1lPUwoNDI5ODUpLEI9TCgxMzA4Nik7bWUobWUuUytt''@;'; + put 'put ''ZS5GKihCIT1NYXRoLmV4cG0xKSwiTWF0aCIse2V4cG0xOkJ9KX0sMzA1Nzk6KFhlLEplLEwpPT57dmFyIG1lPUwoNDI5ODUpO21lKG1lLlMsIk1hdGgiLHtmcm91bmQ6TCgzNDkzNCl9KX0sNDY2OTooWGUsSmUsTCk9Pnt2YXIgbWU9TCg0Mjk4NSksQj1NYXRoLmFiczttZShtZS5TLCJNYXRo''@;'; + put 'put ''Iix7aHlwb3Q6ZnVuY3Rpb24oTWUsVSl7Zm9yKHZhciBZLFcsUT0wLFo9MCxpZT1hcmd1bWVudHMubGVuZ3RoLGFlPTA7WjxpZTspYWU8KFk9Qihhcmd1bWVudHNbWisrXSkpPyhRPVEqKFc9YWUvWSkqVysxLGFlPVkpOlErPVk+MD8oVz1ZL2FlKSpXOlk7cmV0dXJuIGFlPT09MS8wPzEvMDph''@;'; + put 'put ''ZSpNYXRoLnNxcnQoUSl9fSl9LDY3NzEwOihYZSxKZSxMKT0+e3ZhciBtZT1MKDQyOTg1KSxCPU1hdGguaW11bDttZShtZS5TK21lLkYqTCg3NDI1MykoZnVuY3Rpb24oKXtyZXR1cm4tNSE9Qig0Mjk0OTY3Mjk1LDUpfHwyIT1CLmxlbmd0aH0pLCJNYXRoIix7aW11bDpmdW5jdGlvbihNZSxV''@;'; + put 'put ''KXt2YXIgUT02NTUzNSxaPStNZSxpZT0rVSxhZT1RJlosWT1RJmllO3JldHVybiAwfGFlKlkrKChRJlo+Pj4xNikqWSthZSooUSZpZT4+PjE2KTw8MTY+Pj4wKX19KX0sNDU3ODk6KFhlLEplLEwpPT57dmFyIG1lPUwoNDI5ODUpO21lKG1lLlMsIk1hdGgiLHtsb2cxMDpmdW5jdGlvbihFKXty''@;'; + put 'put ''ZXR1cm4gTWF0aC5sb2coRSkqTWF0aC5MT0cxMEV9fSl9LDMzNTE0OihYZSxKZSxMKT0+e3ZhciBtZT1MKDQyOTg1KTttZShtZS5TLCJNYXRoIix7bG9nMXA6TCg0NjIwNil9KX0sOTk5Nzg6KFhlLEplLEwpPT57dmFyIG1lPUwoNDI5ODUpO21lKG1lLlMsIk1hdGgiLHtsb2cyOmZ1bmN0aW9u''@;'; + put 'put ''KEUpe3JldHVybiBNYXRoLmxvZyhFKS9NYXRoLkxOMn19KX0sNTg0NzI6KFhlLEplLEwpPT57dmFyIG1lPUwoNDI5ODUpO21lKG1lLlMsIk1hdGgiLHtzaWduOkwoNjE4MDEpfSl9LDg2OTQ2OihYZSxKZSxMKT0+e3ZhciBtZT1MKDQyOTg1KSxCPUwoMTMwODYpLEU9TWF0aC5leHA7bWUobWUu''@;'; + put 'put ''UyttZS5GKkwoNzQyNTMpKGZ1bmN0aW9uKCl7cmV0dXJuLTJlLTE3IT0hTWF0aC5zaW5oKC0yZS0xNyl9KSwiTWF0aCIse3Npbmg6ZnVuY3Rpb24oVSl7cmV0dXJuIE1hdGguYWJzKFU9K1UpPDE/KEIoVSktQigtVSkpLzI6KEUoVS0xKS1FKC1VLTEpKSooTWF0aC5FLzIpfX0pfSwzNTA2ODoo''@;'; + put 'put ''WGUsSmUsTCk9Pnt2YXIgbWU9TCg0Mjk4NSksQj1MKDEzMDg2KSxFPU1hdGguZXhwO21lKG1lLlMsIk1hdGgiLHt0YW5oOmZ1bmN0aW9uKFUpe3ZhciBRPUIoVT0rVSksWj1CKC1VKTtyZXR1cm4gUT09MS8wPzE6Wj09MS8wPy0xOihRLVopLyhFKFUpK0UoLVUpKX19KX0sNDEzOihYZSxKZSxM''@;'; + put 'put ''KT0+e3ZhciBtZT1MKDQyOTg1KTttZShtZS5TLCJNYXRoIix7dHJ1bmM6ZnVuY3Rpb24oRSl7cmV0dXJuKEU+MD9NYXRoLmZsb29yOk1hdGguY2VpbCkoRSl9fSl9LDExMjQ2OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCgzODE2KSxCPUwoNzkxODEpLEU9TCg5MjAzMiksTWU9''@;'; + put 'put ''TCg0MDI2NiksVT1MKDIxNjg5KSxRPUwoNzQyNTMpLFo9TCgyMDYxNikuZixpZT1MKDE4NjkzKS5mLGFlPUwoOTkyNzUpLmYsWT1MKDI5NTk5KS50cmltLFc9Ik51bWJlciIsTj1tZVtXXSxlZT1OLHE9Ti5wcm90b3R5cGUsSj1FKEwoNDI1MDMpKHEpKT09VyxzZT0idHJpbSJpbiBTdHJpbmcu''@;'; + put 'put ''cHJvdG90eXBlLG9lPWZ1bmN0aW9uKEFlKXt2YXIga2U9VShBZSwhMSk7aWYoInN0cmluZyI9PXR5cGVvZiBrZSYma2UubGVuZ3RoPjIpe3ZhciBJZSxUZSxFZSxTZT0oa2U9c2U/a2UudHJpbSgpOlkoa2UsMykpLmNoYXJDb2RlQXQoMCk7aWYoNDM9PT1TZXx8NDU9PT1TZSl7aWYoODg9PT0o''@;'; + put 'put ''SWU9a2UuY2hhckNvZGVBdCgyKSl8fDEyMD09PUllKXJldHVybiBOYU59ZWxzZSBpZig0OD09PVNlKXtzd2l0Y2goa2UuY2hhckNvZGVBdCgxKSl7Y2FzZSA2NjpjYXNlIDk4OlRlPTIsRWU9NDk7YnJlYWs7Y2FzZSA3OTpjYXNlIDExMTpUZT04LEVlPTU1O2JyZWFrO2RlZmF1bHQ6cmV0dXJu''@;'; + put 'put ''K2tlfWZvcih2YXIgbmUsaGU9a2Uuc2xpY2UoMiksTz0wLHo9aGUubGVuZ3RoO088ejtPKyspaWYoKG5lPWhlLmNoYXJDb2RlQXQoTykpPDQ4fHxuZT5FZSlyZXR1cm4gTmFOO3JldHVybiBwYXJzZUludChoZSxUZSl9fXJldHVybitrZX07aWYoIU4oIiAwbzEiKXx8IU4oIjBiMSIpfHxOKCIr''@;'; + put 'put ''MHgxIikpe049ZnVuY3Rpb24oa2Upe3ZhciBTZT1hcmd1bWVudHMubGVuZ3RoPDE/MDprZSxJZT10aGlzO3JldHVybiBJZSBpbnN0YW5jZW9mIE4mJihKP1EoZnVuY3Rpb24oKXtxLnZhbHVlT2YuY2FsbChJZSl9KTpFKEllKSE9Vyk/TWUobmV3IGVlKG9lKFNlKSksSWUsTik6b2UoU2UpfTtm''@;'; + put 'put ''b3IodmFyIHZlLGNlPUwoNjcwNTcpP1ooZWUpOiJNQVhfVkFMVUUsTUlOX1ZBTFVFLE5hTixORUdBVElWRV9JTkZJTklUWSxQT1NJVElWRV9JTkZJTklUWSxFUFNJTE9OLGlzRmluaXRlLGlzSW50ZWdlcixpc05hTixpc1NhZmVJbnRlZ2VyLE1BWF9TQUZFX0lOVEVHRVIsTUlOX1NBRkVfSU5U''@;'; + put 'put ''RUdFUixwYXJzZUZsb2F0LHBhcnNlSW50LGlzSW50ZWdlciIuc3BsaXQoIiwiKSxkZT0wO2NlLmxlbmd0aD5kZTtkZSsrKUIoZWUsdmU9Y2VbZGVdKSYmIUIoTix2ZSkmJmFlKE4sdmUsaWUoZWUsdmUpKTtOLnByb3RvdHlwZT1xLHEuY29uc3RydWN0b3I9TixMKDc3MjM0KShtZSxXLE4pfX0s''@;'; + put 'put ''NzU5NzI6KFhlLEplLEwpPT57dmFyIG1lPUwoNDI5ODUpO21lKG1lLlMsIk51bWJlciIse0VQU0lMT046TWF0aC5wb3coMiwtNTIpfSl9LDUzNDAzOihYZSxKZSxMKT0+e3ZhciBtZT1MKDQyOTg1KSxCPUwoMzgxNikuaXNGaW5pdGU7bWUobWUuUywiTnVtYmVyIix7aXNGaW5pdGU6ZnVuY3Rp''@;'; + put 'put ''b24oTWUpe3JldHVybiJudW1iZXIiPT10eXBlb2YgTWUmJkIoTWUpfX0pfSw5MjUxNjooWGUsSmUsTCk9Pnt2YXIgbWU9TCg0Mjk4NSk7bWUobWUuUywiTnVtYmVyIix7aXNJbnRlZ2VyOkwoMTgzNjcpfSl9LDQ5MzcxOihYZSxKZSxMKT0+e3ZhciBtZT1MKDQyOTg1KTttZShtZS5TLCJOdW1i''@;'; + put 'put ''ZXIiLHtpc05hTjpmdW5jdGlvbihFKXtyZXR1cm4gRSE9RX19KX0sODY0Nzk6KFhlLEplLEwpPT57dmFyIG1lPUwoNDI5ODUpLEI9TCgxODM2NyksRT1NYXRoLmFiczttZShtZS5TLCJOdW1iZXIiLHtpc1NhZmVJbnRlZ2VyOmZ1bmN0aW9uKFUpe3JldHVybiBCKFUpJiZFKFUpPD05MDA3MTk5''@;'; + put 'put ''MjU0NzQwOTkxfX0pfSw5MTczNjooWGUsSmUsTCk9Pnt2YXIgbWU9TCg0Mjk4NSk7bWUobWUuUywiTnVtYmVyIix7TUFYX1NBRkVfSU5URUdFUjo5MDA3MTk5MjU0NzQwOTkxfSl9LDUxODg5OihYZSxKZSxMKT0+e3ZhciBtZT1MKDQyOTg1KTttZShtZS5TLCJOdW1iZXIiLHtNSU5fU0FGRV9J''@;'; + put 'put ''TlRFR0VSOi05MDA3MTk5MjU0NzQwOTkxfSl9LDY1MTc3OihYZSxKZSxMKT0+e3ZhciBtZT1MKDQyOTg1KSxCPUwoNDc3NDMpO21lKG1lLlMrbWUuRiooTnVtYmVyLnBhcnNlRmxvYXQhPUIpLCJOdW1iZXIiLHtwYXJzZUZsb2F0OkJ9KX0sODEyNDY6KFhlLEplLEwpPT57dmFyIG1lPUwoNDI5''@;'; + put 'put ''ODUpLEI9TCg1NTk2MCk7bWUobWUuUyttZS5GKihOdW1iZXIucGFyc2VJbnQhPUIpLCJOdW1iZXIiLHtwYXJzZUludDpCfSl9LDMwNzI2OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCg0Mjk4NSksQj1MKDgxNDY3KSxFPUwoODMzNjUpLE1lPUwoNjg1OTUpLFU9MS4udG9GaXhl''@;'; + put 'put ''ZCxRPU1hdGguZmxvb3IsWj1bMCwwLDAsMCwwLDBdLGllPSJOdW1iZXIudG9GaXhlZDogaW5jb3JyZWN0IGludm9jYXRpb24hIixZPWZ1bmN0aW9uKEosc2Upe2Zvcih2YXIgb2U9LTEsY2U9c2U7KytvZTw2OylaW29lXT0oY2UrPUoqWltvZV0pJTFlNyxjZT1RKGNlLzFlNyl9LFc9ZnVuY3Rp''@;'; + put 'put ''b24oSil7Zm9yKHZhciBzZT02LG9lPTA7LS1zZT49MDspWltzZV09USgob2UrPVpbc2VdKS9KKSxvZT1vZSVKKjFlN30sTj1mdW5jdGlvbigpe2Zvcih2YXIgSj02LHNlPSIiOy0tSj49MDspaWYoIiIhPT1zZXx8MD09PUp8fDAhPT1aW0pdKXt2YXIgb2U9U3RyaW5nKFpbSl0pO3NlPSIiPT09''@;'; + put 'put ''c2U/b2U6c2UrTWUuY2FsbCgiMCIsNy1vZS5sZW5ndGgpK29lfXJldHVybiBzZX0sZWU9ZnVuY3Rpb24oSixzZSxvZSl7cmV0dXJuIDA9PT1zZT9vZTpzZSUyPT0xP2VlKEosc2UtMSxvZSpKKTplZShKKkosc2UvMixvZSl9O21lKG1lLlArbWUuRiooISFVJiYoIjAuMDAwIiE9PThlLTUudG9G''@;'; + put 'put ''aXhlZCgzKXx8IjEiIT09LjkudG9GaXhlZCgwKXx8IjEuMjUiIT09MS4yNTUudG9GaXhlZCgyKXx8IjEwMDAwMDAwMDAwMDAwMDAxMjgiIT09KDB4ZGUwYjZiM2E3NjQwMDgwKS50b0ZpeGVkKDApKXx8IUwoNzQyNTMpKGZ1bmN0aW9uKCl7VS5jYWxsKHt9KX0pKSwiTnVtYmVyIix7dG9GaXhl''@;'; + put 'put ''ZDpmdW5jdGlvbihzZSl7dmFyIEFlLGtlLFNlLEllLG9lPUUodGhpcyxpZSksY2U9QihzZSksZGU9IiIsdmU9IjAiO2lmKGNlPDB8fGNlPjIwKXRocm93IFJhbmdlRXJyb3IoaWUpO2lmKG9lIT1vZSlyZXR1cm4iTmFOIjtpZihvZTw9LTFlMjF8fG9lPj0xZTIxKXJldHVybiBTdHJpbmcob2Up''@;'; + put 'put ''O2lmKG9lPDAmJihkZT0iLSIsb2U9LW9lKSxvZT4xZS0yMSlpZihBZT1mdW5jdGlvbihKKXtmb3IodmFyIHNlPTAsb2U9SjtvZT49NDA5Njspc2UrPTEyLG9lLz00MDk2O2Zvcig7b2U+PTI7KXNlKz0xLG9lLz0yO3JldHVybiBzZX0ob2UqZWUoMiw2OSwxKSktNjksa2U9QWU8MD9vZSplZSgy''@;'; + put 'put ''LC1BZSwxKTpvZS9lZSgyLEFlLDEpLGtlKj00NTAzNTk5NjI3MzcwNDk2LChBZT01Mi1BZSk+MCl7Zm9yKFkoMCxrZSksU2U9Y2U7U2U+PTc7KVkoMWU3LDApLFNlLT03O2ZvcihZKGVlKDEwLFNlLDEpLDApLFNlPUFlLTE7U2U+PTIzOylXKDE8PDIzKSxTZS09MjM7VygxPDxTZSksWSgxLDEp''@;'; + put 'put ''LFcoMiksdmU9TigpfWVsc2UgWSgwLGtlKSxZKDE8PC1BZSwwKSx2ZT1OKCkrTWUuY2FsbCgiMCIsY2UpO3JldHVybiB2ZT1jZT4wP2RlKygoSWU9dmUubGVuZ3RoKTw9Y2U/IjAuIitNZS5jYWxsKCIwIixjZS1JZSkrdmU6dmUuc2xpY2UoMCxJZS1jZSkrIi4iK3ZlLnNsaWNlKEllLWNlKSk6''@;'; + put 'put ''ZGUrdmV9fSl9LDE5MDE6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDQyOTg1KSxCPUwoNzQyNTMpLEU9TCg4MzM2NSksTWU9MS4udG9QcmVjaXNpb247bWUobWUuUCttZS5GKihCKGZ1bmN0aW9uKCl7cmV0dXJuIjEiIT09TWUuY2FsbCgxLHZvaWQgMCl9KXx8IUIoZnVuY3Rp''@;'; + put 'put ''b24oKXtNZS5jYWxsKHt9KX0pKSwiTnVtYmVyIix7dG9QcmVjaXNpb246ZnVuY3Rpb24oUSl7dmFyIFo9RSh0aGlzLCJOdW1iZXIjdG9QcmVjaXNpb246IGluY29ycmVjdCBpbnZvY2F0aW9uISIpO3JldHVybiB2b2lkIDA9PT1RP01lLmNhbGwoWik6TWUuY2FsbChaLFEpfX0pfSw3NTExNToo''@;'; + put 'put ''WGUsSmUsTCk9Pnt2YXIgbWU9TCg0Mjk4NSk7bWUobWUuUyttZS5GLCJPYmplY3QiLHthc3NpZ246TCgzNTM0NSl9KX0sNjgxMzI6KFhlLEplLEwpPT57dmFyIG1lPUwoNDI5ODUpO21lKG1lLlMsIk9iamVjdCIse2NyZWF0ZTpMKDQyNTAzKX0pfSwzNzQ3MDooWGUsSmUsTCk9Pnt2YXIgbWU9''@;'; + put 'put ''TCg0Mjk4NSk7bWUobWUuUyttZS5GKiFMKDY3MDU3KSwiT2JqZWN0Iix7ZGVmaW5lUHJvcGVydGllczpMKDM1NTg4KX0pfSw0ODM4ODooWGUsSmUsTCk9Pnt2YXIgbWU9TCg0Mjk4NSk7bWUobWUuUyttZS5GKiFMKDY3MDU3KSwiT2JqZWN0Iix7ZGVmaW5lUHJvcGVydHk6TCg5OTI3NSkuZn0p''@;'; + put 'put ''fSw4OTM3NTooWGUsSmUsTCk9Pnt2YXIgbWU9TCg1NTI4NiksQj1MKDg0NzI4KS5vbkZyZWV6ZTtMKDMzMTYwKSgiZnJlZXplIixmdW5jdGlvbihFKXtyZXR1cm4gZnVuY3Rpb24oVSl7cmV0dXJuIEUmJm1lKFUpP0UoQihVKSk6VX19KX0sOTQ4ODI6KFhlLEplLEwpPT57dmFyIG1lPUwoMjIx''@;'; + put 'put ''MTApLEI9TCgxODY5MykuZjtMKDMzMTYwKSgiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIixmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbihNZSxVKXtyZXR1cm4gQihtZShNZSksVSl9fSl9LDc5NjIyOihYZSxKZSxMKT0+e0woMzMxNjApKCJnZXRPd25Qcm9wZXJ0eU5hbWVzIixmdW5jdGlv''@;'; + put 'put ''bigpe3JldHVybiBMKDM5MzI3KS5mfSl9LDQxNTIwOihYZSxKZSxMKT0+e3ZhciBtZT1MKDIwNTA4KSxCPUwoNDY4KTtMKDMzMTYwKSgiZ2V0UHJvdG90eXBlT2YiLGZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKE1lKXtyZXR1cm4gQihtZShNZSkpfX0pfSw0OTg5MjooWGUsSmUsTCk9Pnt2''@;'; + put 'put ''YXIgbWU9TCg1NTI4Nik7TCgzMzE2MCkoImlzRXh0ZW5zaWJsZSIsZnVuY3Rpb24oQil7cmV0dXJuIGZ1bmN0aW9uKE1lKXtyZXR1cm4hIW1lKE1lKSYmKCFCfHxCKE1lKSl9fSl9LDY0MTU3OihYZSxKZSxMKT0+e3ZhciBtZT1MKDU1Mjg2KTtMKDMzMTYwKSgiaXNGcm96ZW4iLGZ1bmN0aW9u''@;'; + put 'put ''KEIpe3JldHVybiBmdW5jdGlvbihNZSl7cmV0dXJuIW1lKE1lKXx8ISFCJiZCKE1lKX19KX0sMzUwOTU6KFhlLEplLEwpPT57dmFyIG1lPUwoNTUyODYpO0woMzMxNjApKCJpc1NlYWxlZCIsZnVuY3Rpb24oQil7cmV0dXJuIGZ1bmN0aW9uKE1lKXtyZXR1cm4hbWUoTWUpfHwhIUImJkIoTWUp''@;'; + put 'put ''fX0pfSw5OTE3NjooWGUsSmUsTCk9Pnt2YXIgbWU9TCg0Mjk4NSk7bWUobWUuUywiT2JqZWN0Iix7aXM6TCgyNzE5NSl9KX0sMjc0NzY6KFhlLEplLEwpPT57dmFyIG1lPUwoMjA1MDgpLEI9TCg0NzE4NCk7TCgzMzE2MCkoImtleXMiLGZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKE1lKXty''@;'; + put 'put ''ZXR1cm4gQihtZShNZSkpfX0pfSw4NDY3MjooWGUsSmUsTCk9Pnt2YXIgbWU9TCg1NTI4NiksQj1MKDg0NzI4KS5vbkZyZWV6ZTtMKDMzMTYwKSgicHJldmVudEV4dGVuc2lvbnMiLGZ1bmN0aW9uKEUpe3JldHVybiBmdW5jdGlvbihVKXtyZXR1cm4gRSYmbWUoVSk/RShCKFUpKTpVfX0pfSw0''@;'; + put 'put ''MzUzMzooWGUsSmUsTCk9Pnt2YXIgbWU9TCg1NTI4NiksQj1MKDg0NzI4KS5vbkZyZWV6ZTtMKDMzMTYwKSgic2VhbCIsZnVuY3Rpb24oRSl7cmV0dXJuIGZ1bmN0aW9uKFUpe3JldHVybiBFJiZtZShVKT9FKEIoVSkpOlV9fSl9LDY4ODM4OihYZSxKZSxMKT0+e3ZhciBtZT1MKDQyOTg1KTtt''@;'; + put 'put ''ZShtZS5TLCJPYmplY3QiLHtzZXRQcm90b3R5cGVPZjpMKDI3Mzc1KS5zZXR9KX0sOTYyNTM6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDQxNDg4KSxCPXt9O0JbTCg4NjMxNCkoInRvU3RyaW5nVGFnIildPSJ6IixCKyIiIT0iW29iamVjdCB6XSImJkwoNzcyMzQpKE9iamVj''@;'; + put 'put ''dC5wcm90b3R5cGUsInRvU3RyaW5nIixmdW5jdGlvbigpe3JldHVybiJbb2JqZWN0ICIrbWUodGhpcykrIl0ifSwhMCl9LDY0Mjk5OihYZSxKZSxMKT0+e3ZhciBtZT1MKDQyOTg1KSxCPUwoNDc3NDMpO21lKG1lLkcrbWUuRioocGFyc2VGbG9hdCE9Qikse3BhcnNlRmxvYXQ6Qn0pfSw3MTA4''@;'; + put 'put ''NDooWGUsSmUsTCk9Pnt2YXIgbWU9TCg0Mjk4NSksQj1MKDU1OTYwKTttZShtZS5HK21lLkYqKHBhcnNlSW50IT1CKSx7cGFyc2VJbnQ6Qn0pfSwyMTU3MjooWGUsSmUsTCk9Pnt2YXIgbWU9TCg0Mjk4NSksQj1MKDI0OTYzKSxFPUwoMjcwMDcpLE1lPShMKDM4MTYpLlJlZmxlY3R8fHt9KS5h''@;'; + put 'put ''cHBseSxVPUZ1bmN0aW9uLmFwcGx5O21lKG1lLlMrbWUuRiohTCg3NDI1MykoZnVuY3Rpb24oKXtNZShmdW5jdGlvbigpe30pfSksIlJlZmxlY3QiLHthcHBseTpmdW5jdGlvbihaLGllLGFlKXt2YXIgWT1CKFopLFc9RShhZSk7cmV0dXJuIE1lP01lKFksaWUsVyk6VS5jYWxsKFksaWUsVyl9''@;'; + put 'put ''fSl9LDgyMTM5OihYZSxKZSxMKT0+e3ZhciBtZT1MKDQyOTg1KSxCPUwoNDI1MDMpLEU9TCgyNDk2MyksTWU9TCgyNzAwNyksVT1MKDU1Mjg2KSxRPUwoNzQyNTMpLFo9TCgzNDM5OCksaWU9KEwoMzgxNikuUmVmbGVjdHx8e30pLmNvbnN0cnVjdCxhZT1RKGZ1bmN0aW9uKCl7ZnVuY3Rpb24g''@;'; + put 'put ''Vygpe31yZXR1cm4hKGllKGZ1bmN0aW9uKCl7fSxbXSxXKWluc3RhbmNlb2YgVyl9KSxZPSFRKGZ1bmN0aW9uKCl7aWUoZnVuY3Rpb24oKXt9KX0pO21lKG1lLlMrbWUuRiooYWV8fFkpLCJSZWZsZWN0Iix7Y29uc3RydWN0OmZ1bmN0aW9uKE4sZWUpe0UoTiksTWUoZWUpO3ZhciBxPWFyZ3Vt''@;'; + put 'put ''ZW50cy5sZW5ndGg8Mz9OOkUoYXJndW1lbnRzWzJdKTtpZihZJiYhYWUpcmV0dXJuIGllKE4sZWUscSk7aWYoTj09cSl7c3dpdGNoKGVlLmxlbmd0aCl7Y2FzZSAwOnJldHVybiBuZXcgTjtjYXNlIDE6cmV0dXJuIG5ldyBOKGVlWzBdKTtjYXNlIDI6cmV0dXJuIG5ldyBOKGVlWzBdLGVlWzFd''@;'; + put 'put ''KTtjYXNlIDM6cmV0dXJuIG5ldyBOKGVlWzBdLGVlWzFdLGVlWzJdKTtjYXNlIDQ6cmV0dXJuIG5ldyBOKGVlWzBdLGVlWzFdLGVlWzJdLGVlWzNdKX12YXIgSj1bbnVsbF07cmV0dXJuIEoucHVzaC5hcHBseShKLGVlKSxuZXcoWi5hcHBseShOLEopKX12YXIgc2U9cS5wcm90b3R5cGUsb2U9''@;'; + put 'put ''QihVKHNlKT9zZTpPYmplY3QucHJvdG90eXBlKSxjZT1GdW5jdGlvbi5hcHBseS5jYWxsKE4sb2UsZWUpO3JldHVybiBVKGNlKT9jZTpvZX19KX0sMTA2ODU6KFhlLEplLEwpPT57dmFyIG1lPUwoOTkyNzUpLEI9TCg0Mjk4NSksRT1MKDI3MDA3KSxNZT1MKDIxNjg5KTtCKEIuUytCLkYqTCg3''@;'; + put 'put ''NDI1MykoZnVuY3Rpb24oKXtSZWZsZWN0LmRlZmluZVByb3BlcnR5KG1lLmYoe30sMSx7dmFsdWU6MX0pLDEse3ZhbHVlOjJ9KX0pLCJSZWZsZWN0Iix7ZGVmaW5lUHJvcGVydHk6ZnVuY3Rpb24oUSxaLGllKXtFKFEpLFo9TWUoWiwhMCksRShpZSk7dHJ5e3JldHVybiBtZS5mKFEsWixpZSks''@;'; + put 'put ''ITB9Y2F0Y2goYWUpe3JldHVybiExfX19KX0sODU1MzU6KFhlLEplLEwpPT57dmFyIG1lPUwoNDI5ODUpLEI9TCgxODY5MykuZixFPUwoMjcwMDcpO21lKG1lLlMsIlJlZmxlY3QiLHtkZWxldGVQcm9wZXJ0eTpmdW5jdGlvbihVLFEpe3ZhciBaPUIoRShVKSxRKTtyZXR1cm4hKFomJiFaLmNv''@;'; + put 'put ''bmZpZ3VyYWJsZSkmJmRlbGV0ZSBVW1FdfX0pfSwxNzM0NzooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoNDI5ODUpLEI9TCgyNzAwNyksRT1mdW5jdGlvbihNZSl7dGhpcy5fdD1CKE1lKSx0aGlzLl9pPTA7dmFyIFEsVT10aGlzLl9rPVtdO2ZvcihRIGluIE1lKVUucHVzaChR''@;'; + put 'put ''KX07TCg0OTk4OCkoRSwiT2JqZWN0IixmdW5jdGlvbigpe3ZhciBRLFU9dGhpcy5faztkb3tpZih0aGlzLl9pPj1VLmxlbmd0aClyZXR1cm57dmFsdWU6dm9pZCAwLGRvbmU6ITB9fXdoaWxlKCEoKFE9VVt0aGlzLl9pKytdKWluIHRoaXMuX3QpKTtyZXR1cm57dmFsdWU6USxkb25lOiExfX0p''@;'; + put 'put ''LG1lKG1lLlMsIlJlZmxlY3QiLHtlbnVtZXJhdGU6ZnVuY3Rpb24oVSl7cmV0dXJuIG5ldyBFKFUpfX0pfSw5NjYzMzooWGUsSmUsTCk9Pnt2YXIgbWU9TCgxODY5MyksQj1MKDQyOTg1KSxFPUwoMjcwMDcpO0IoQi5TLCJSZWZsZWN0Iix7Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yOmZ1bmN0''@;'; + put 'put ''aW9uKFUsUSl7cmV0dXJuIG1lLmYoRShVKSxRKX19KX0sNjg5ODk6KFhlLEplLEwpPT57dmFyIG1lPUwoNDI5ODUpLEI9TCg0NjgpLEU9TCgyNzAwNyk7bWUobWUuUywiUmVmbGVjdCIse2dldFByb3RvdHlwZU9mOmZ1bmN0aW9uKFUpe3JldHVybiBCKEUoVSkpfX0pfSw4MzA0OTooWGUsSmUs''@;'; + put 'put ''TCk9Pnt2YXIgbWU9TCgxODY5MyksQj1MKDQ2OCksRT1MKDc5MTgxKSxNZT1MKDQyOTg1KSxVPUwoNTUyODYpLFE9TCgyNzAwNyk7TWUoTWUuUywiUmVmbGVjdCIse2dldDpmdW5jdGlvbiBaKGllLGFlKXt2YXIgVyxOLFk9YXJndW1lbnRzLmxlbmd0aDwzP2llOmFyZ3VtZW50c1syXTtyZXR1''@;'; + put 'put ''cm4gUShpZSk9PT1ZP2llW2FlXTooVz1tZS5mKGllLGFlKSk/RShXLCJ2YWx1ZSIpP1cudmFsdWU6dm9pZCAwIT09Vy5nZXQ/Vy5nZXQuY2FsbChZKTp2b2lkIDA6VShOPUIoaWUpKT9aKE4sYWUsWSk6dm9pZCAwfX0pfSw3ODI3MDooWGUsSmUsTCk9Pnt2YXIgbWU9TCg0Mjk4NSk7bWUobWUu''@;'; + put 'put ''UywiUmVmbGVjdCIse2hhczpmdW5jdGlvbihFLE1lKXtyZXR1cm4gTWUgaW4gRX19KX0sNjQ1MTA6KFhlLEplLEwpPT57dmFyIG1lPUwoNDI5ODUpLEI9TCgyNzAwNyksRT1PYmplY3QuaXNFeHRlbnNpYmxlO21lKG1lLlMsIlJlZmxlY3QiLHtpc0V4dGVuc2libGU6ZnVuY3Rpb24oVSl7cmV0''@;'; + put 'put ''dXJuIEIoVSksIUV8fEUoVSl9fSl9LDczOTg0OihYZSxKZSxMKT0+e3ZhciBtZT1MKDQyOTg1KTttZShtZS5TLCJSZWZsZWN0Iix7b3duS2V5czpMKDU3NjQzKX0pfSw3NTc2OTooWGUsSmUsTCk9Pnt2YXIgbWU9TCg0Mjk4NSksQj1MKDI3MDA3KSxFPU9iamVjdC5wcmV2ZW50RXh0ZW5zaW9u''@;'; + put 'put ''czttZShtZS5TLCJSZWZsZWN0Iix7cHJldmVudEV4dGVuc2lvbnM6ZnVuY3Rpb24oVSl7QihVKTt0cnl7cmV0dXJuIEUmJkUoVSksITB9Y2F0Y2goUSl7cmV0dXJuITF9fX0pfSw5NjAxNDooWGUsSmUsTCk9Pnt2YXIgbWU9TCg0Mjk4NSksQj1MKDI3Mzc1KTtCJiZtZShtZS5TLCJSZWZsZWN0''@;'; + put 'put ''Iix7c2V0UHJvdG90eXBlT2Y6ZnVuY3Rpb24oTWUsVSl7Qi5jaGVjayhNZSxVKTt0cnl7cmV0dXJuIEIuc2V0KE1lLFUpLCEwfWNhdGNoKFEpe3JldHVybiExfX19KX0sNTAwNTU6KFhlLEplLEwpPT57dmFyIG1lPUwoOTkyNzUpLEI9TCgxODY5MyksRT1MKDQ2OCksTWU9TCg3OTE4MSksVT1M''@;'; + put 'put ''KDQyOTg1KSxRPUwoOTA2ODEpLFo9TCgyNzAwNyksaWU9TCg1NTI4Nik7VShVLlMsIlJlZmxlY3QiLHtzZXQ6ZnVuY3Rpb24gYWUoWSxXLE4pe3ZhciBKLHNlLGVlPWFyZ3VtZW50cy5sZW5ndGg8ND9ZOmFyZ3VtZW50c1szXSxxPUIuZihaKFkpLFcpO2lmKCFxKXtpZihpZShzZT1FKFkpKSly''@;'; + put 'put ''ZXR1cm4gYWUoc2UsVyxOLGVlKTtxPVEoMCl9aWYoTWUocSwidmFsdWUiKSl7aWYoITE9PT1xLndyaXRhYmxlfHwhaWUoZWUpKXJldHVybiExO2lmKEo9Qi5mKGVlLFcpKXtpZihKLmdldHx8Si5zZXR8fCExPT09Si53cml0YWJsZSlyZXR1cm4hMTtKLnZhbHVlPU4sbWUuZihlZSxXLEopfWVs''@;'; + put 'put ''c2UgbWUuZihlZSxXLFEoMCxOKSk7cmV0dXJuITB9cmV0dXJuIHZvaWQgMCE9PXEuc2V0JiYocS5zZXQuY2FsbChlZSxOKSwhMCl9fSl9LDgzOTQ2OihYZSxKZSxMKT0+e3ZhciBtZT1MKDM4MTYpLEI9TCg0MDI2NiksRT1MKDk5Mjc1KS5mLE1lPUwoMjA2MTYpLmYsVT1MKDU1MzY0KSxRPUwo''@;'; + put 'put ''NTMyMTgpLFo9bWUuUmVnRXhwLGllPVosYWU9Wi5wcm90b3R5cGUsWT0vYS9nLFc9L2EvZyxOPW5ldyBaKFkpIT09WTtpZihMKDY3MDU3KSYmKCFOfHxMKDc0MjUzKShmdW5jdGlvbigpe3JldHVybiBXW0woODYzMTQpKCJtYXRjaCIpXT0hMSxaKFkpIT1ZfHxaKFcpPT1XfHwiL2EvaSIhPVoo''@;'; + put 'put ''WSwiaSIpfSkpKXtaPWZ1bmN0aW9uKG9lLGNlKXt2YXIgZGU9dGhpcyBpbnN0YW5jZW9mIFosdmU9VShvZSksQWU9dm9pZCAwPT09Y2U7cmV0dXJuIWRlJiZ2ZSYmb2UuY29uc3RydWN0b3I9PT1aJiZBZT9vZTpCKE4/bmV3IGllKHZlJiYhQWU/b2Uuc291cmNlOm9lLGNlKTppZSgodmU9b2Ug''@;'; + put 'put ''aW5zdGFuY2VvZiBaKT9vZS5zb3VyY2U6b2UsdmUmJkFlP1EuY2FsbChvZSk6Y2UpLGRlP3RoaXM6YWUsWil9O2Zvcih2YXIgZWU9ZnVuY3Rpb24oc2Upe3NlIGluIFp8fEUoWixzZSx7Y29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBpZVtzZV19LHNldDpmdW5jdGlvbihv''@;'; + put 'put ''ZSl7aWVbc2VdPW9lfX0pfSxxPU1lKGllKSxKPTA7cS5sZW5ndGg+SjspZWUocVtKKytdKTthZS5jb25zdHJ1Y3Rvcj1aLFoucHJvdG90eXBlPWFlLEwoNzcyMzQpKG1lLCJSZWdFeHAiLFopfUwoMjk3NCkoIlJlZ0V4cCIpfSwxODI2OTooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1l''@;'; + put 'put ''PUwoMjExNjUpO0woNDI5ODUpKHt0YXJnZXQ6IlJlZ0V4cCIscHJvdG86ITAsZm9yY2VkOm1lIT09Ly4vLmV4ZWN9LHtleGVjOm1lfSl9LDc2Nzc0OihYZSxKZSxMKT0+e0woNjcwNTcpJiYiZyIhPS8uL2cuZmxhZ3MmJkwoOTkyNzUpLmYoUmVnRXhwLnByb3RvdHlwZSwiZmxhZ3MiLHtjb25m''@;'; + put 'put ''aWd1cmFibGU6ITAsZ2V0OkwoNTMyMTgpfSl9LDIxNDY2OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCgyNzAwNyksQj1MKDEwODc1KSxFPUwoNzY3OTMpLE1lPUwoMjc3ODcpO0woMjgwODIpKCJtYXRjaCIsMSxmdW5jdGlvbihVLFEsWixpZSl7cmV0dXJuW2Z1bmN0aW9uKFkp''@;'; + put 'put ''e3ZhciBXPVUodGhpcyksTj1udWxsPT1ZP3ZvaWQgMDpZW1FdO3JldHVybiB2b2lkIDAhPT1OP04uY2FsbChZLFcpOm5ldyBSZWdFeHAoWSlbUV0oU3RyaW5nKFcpKX0sZnVuY3Rpb24oYWUpe3ZhciBZPWllKFosYWUsdGhpcyk7aWYoWS5kb25lKXJldHVybiBZLnZhbHVlO3ZhciBXPW1lKGFl''@;'; + put 'put ''KSxOPVN0cmluZyh0aGlzKTtpZighVy5nbG9iYWwpcmV0dXJuIE1lKFcsTik7dmFyIGVlPVcudW5pY29kZTtXLmxhc3RJbmRleD0wO2Zvcih2YXIgc2UscT1bXSxKPTA7bnVsbCE9PShzZT1NZShXLE4pKTspe3ZhciBvZT1TdHJpbmcoc2VbMF0pO3FbSl09b2UsIiI9PT1vZSYmKFcubGFzdElu''@;'; + put 'put ''ZGV4PUUoTixCKFcubGFzdEluZGV4KSxlZSkpLEorK31yZXR1cm4gMD09PUo/bnVsbDpxfV19KX0sNTkzNTc6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDI3MDA3KSxCPUwoMjA1MDgpLEU9TCgxMDg3NSksTWU9TCg4MTQ2NyksVT1MKDc2NzkzKSxRPUwoMjc3ODcpLFo9TWF0''@;'; + put 'put ''aC5tYXgsaWU9TWF0aC5taW4sYWU9TWF0aC5mbG9vcixZPS9cJChbJCZgJ118XGRcZD98PFtePl0qPikvZyxXPS9cJChbJCZgJ118XGRcZD8pL2csTj1mdW5jdGlvbihlZSl7cmV0dXJuIHZvaWQgMD09PWVlP2VlOlN0cmluZyhlZSl9O0woMjgwODIpKCJyZXBsYWNlIiwyLGZ1bmN0aW9uKGVl''@;'; + put 'put ''LHEsSixzZSl7cmV0dXJuW2Z1bmN0aW9uKGRlLHZlKXt2YXIgQWU9ZWUodGhpcyksa2U9bnVsbD09ZGU/dm9pZCAwOmRlW3FdO3JldHVybiB2b2lkIDAhPT1rZT9rZS5jYWxsKGRlLEFlLHZlKTpKLmNhbGwoU3RyaW5nKEFlKSxkZSx2ZSl9LGZ1bmN0aW9uKGNlLGRlKXt2YXIgdmU9c2UoSixj''@;'; + put 'put ''ZSx0aGlzLGRlKTtpZih2ZS5kb25lKXJldHVybiB2ZS52YWx1ZTt2YXIgQWU9bWUoY2UpLGtlPVN0cmluZyh0aGlzKSxTZT0iZnVuY3Rpb24iPT10eXBlb2YgZGU7U2V8fChkZT1TdHJpbmcoZGUpKTt2YXIgSWU9QWUuZ2xvYmFsO2lmKEllKXt2YXIgVGU9QWUudW5pY29kZTtBZS5sYXN0SW5k''@;'; + put 'put ''ZXg9MH1mb3IodmFyIEVlPVtdOzspe3ZhciBoZT1RKEFlLGtlKTtpZihudWxsPT09aGV8fChFZS5wdXNoKGhlKSwhSWUpKWJyZWFrOyIiPT09U3RyaW5nKGhlWzBdKSYmKEFlLmxhc3RJbmRleD1VKGtlLEUoQWUubGFzdEluZGV4KSxUZSkpfWZvcih2YXIgej0iIixuZT0wLHRlPTA7dGU8RWUu''@;'; + put 'put ''bGVuZ3RoO3RlKyspe2hlPUVlW3RlXTtmb3IodmFyIHg9U3RyaW5nKGhlWzBdKSxQPVooaWUoTWUoaGUuaW5kZXgpLGtlLmxlbmd0aCksMCksVj1bXSxUPTE7VDxoZS5sZW5ndGg7VCsrKVYucHVzaChOKGhlW1RdKSk7dmFyIFM9aGUuZ3JvdXBzO2lmKFNlKXt2YXIgRj1beF0uY29uY2F0KFYs''@;'; + put 'put ''UCxrZSk7dm9pZCAwIT09UyYmRi5wdXNoKFMpO3ZhciB5ZT1TdHJpbmcoZGUuYXBwbHkodm9pZCAwLEYpKX1lbHNlIHllPW9lKHgsa2UsUCxWLFMsZGUpO1A+PW5lJiYoeis9a2Uuc2xpY2UobmUsUCkreWUsbmU9UCt4Lmxlbmd0aCl9cmV0dXJuIHora2Uuc2xpY2UobmUpfV07ZnVuY3Rpb24g''@;'; + put 'put ''b2UoY2UsZGUsdmUsQWUsa2UsU2Upe3ZhciBJZT12ZStjZS5sZW5ndGgsVGU9QWUubGVuZ3RoLEVlPVc7cmV0dXJuIHZvaWQgMCE9PWtlJiYoa2U9QihrZSksRWU9WSksSi5jYWxsKFNlLEVlLGZ1bmN0aW9uKGhlLE8pe3ZhciB6O3N3aXRjaChPLmNoYXJBdCgwKSl7Y2FzZSIkIjpyZXR1cm4i''@;'; + put 'put ''JCI7Y2FzZSImIjpyZXR1cm4gY2U7Y2FzZSJgIjpyZXR1cm4gZGUuc2xpY2UoMCx2ZSk7Y2FzZSInIjpyZXR1cm4gZGUuc2xpY2UoSWUpO2Nhc2UiPCI6ej1rZVtPLnNsaWNlKDEsLTEpXTticmVhaztkZWZhdWx0OnZhciBuZT0rTztpZigwPT09bmUpcmV0dXJuIGhlO2lmKG5lPlRlKXt2YXIg''@;'; + put 'put ''dGU9YWUobmUvMTApO3JldHVybiAwPT09dGU/aGU6dGU8PVRlP3ZvaWQgMD09PUFlW3RlLTFdP08uY2hhckF0KDEpOkFlW3RlLTFdK08uY2hhckF0KDEpOmhlfXo9QWVbbmUtMV19cmV0dXJuIHZvaWQgMD09PXo/IiI6en0pfX0pfSw3NjE0MjooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFy''@;'; + put 'put ''IG1lPUwoMjcwMDcpLEI9TCgyNzE5NSksRT1MKDI3Nzg3KTtMKDI4MDgyKSgic2VhcmNoIiwxLGZ1bmN0aW9uKE1lLFUsUSxaKXtyZXR1cm5bZnVuY3Rpb24oYWUpe3ZhciBZPU1lKHRoaXMpLFc9bnVsbD09YWU/dm9pZCAwOmFlW1VdO3JldHVybiB2b2lkIDAhPT1XP1cuY2FsbChhZSxZKTpu''@;'; + put 'put ''ZXcgUmVnRXhwKGFlKVtVXShTdHJpbmcoWSkpfSxmdW5jdGlvbihpZSl7dmFyIGFlPVooUSxpZSx0aGlzKTtpZihhZS5kb25lKXJldHVybiBhZS52YWx1ZTt2YXIgWT1tZShpZSksVz1TdHJpbmcodGhpcyksTj1ZLmxhc3RJbmRleDtCKE4sMCl8fChZLmxhc3RJbmRleD0wKTt2YXIgZWU9RShZ''@;'; + put 'put ''LFcpO3JldHVybiBCKFkubGFzdEluZGV4LE4pfHwoWS5sYXN0SW5kZXg9TiksbnVsbD09PWVlPy0xOmVlLmluZGV4fV19KX0sNTE4NzY6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDU1MzY0KSxCPUwoMjcwMDcpLEU9TCg1ODM2NCksTWU9TCg3Njc5MyksVT1MKDEwODc1KSxR''@;'; + put 'put ''PUwoMjc3ODcpLFo9TCgyMTE2NSksaWU9TCg3NDI1MyksYWU9TWF0aC5taW4sWT1bXS5wdXNoLFc9InNwbGl0IixOPSJsZW5ndGgiLGVlPSJsYXN0SW5kZXgiLHE9NDI5NDk2NzI5NSxKPSFpZShmdW5jdGlvbigpe1JlZ0V4cChxLCJ5Iil9KTtMKDI4MDgyKSgic3BsaXQiLDIsZnVuY3Rpb24o''@;'; + put 'put ''c2Usb2UsY2UsZGUpe3ZhciB2ZTtyZXR1cm4gdmU9ImMiPT0iYWJiYyJbV10oLyhiKSovKVsxXXx8NCE9InRlc3QiW1ddKC8oPzopLywtMSlbTl18fDIhPSJhYiJbV10oLyg/OmFiKSovKVtOXXx8NCE9Ii4iW1ddKC8oLj8pKC4/KS8pW05dfHwiLiJbV10oLygpKCkvKVtOXT4xfHwiIltXXSgv''@;'; + put 'put ''Lj8vKVtOXT9mdW5jdGlvbihBZSxrZSl7dmFyIFNlPVN0cmluZyh0aGlzKTtpZih2b2lkIDA9PT1BZSYmMD09PWtlKXJldHVybltdO2lmKCFtZShBZSkpcmV0dXJuIGNlLmNhbGwoU2UsQWUsa2UpO2Zvcih2YXIgeixuZSx0ZSxJZT1bXSxFZT0wLGhlPXZvaWQgMD09PWtlP3E6a2U+Pj4wLE89''@;'; + put 'put ''bmV3IFJlZ0V4cChBZS5zb3VyY2UsKEFlLmlnbm9yZUNhc2U/ImkiOiIiKSsoQWUubXVsdGlsaW5lPyJtIjoiIikrKEFlLnVuaWNvZGU/InUiOiIiKSsoQWUuc3RpY2t5PyJ5IjoiIikrImciKTsoej1aLmNhbGwoTyxTZSkpJiYhKChuZT1PW2VlXSk+RWUmJihJZS5wdXNoKFNlLnNsaWNlKEVl''@;'; + put 'put ''LHouaW5kZXgpKSx6W05dPjEmJnouaW5kZXg8U2VbTl0mJlkuYXBwbHkoSWUsei5zbGljZSgxKSksdGU9elswXVtOXSxFZT1uZSxJZVtOXT49aGUpKTspT1tlZV09PT16LmluZGV4JiZPW2VlXSsrO3JldHVybiBFZT09PVNlW05dPyh0ZXx8IU8udGVzdCgiIikpJiZJZS5wdXNoKCIiKTpJZS5w''@;'; + put 'put ''dXNoKFNlLnNsaWNlKEVlKSksSWVbTl0+aGU/SWUuc2xpY2UoMCxoZSk6SWV9OiIwIltXXSh2b2lkIDAsMClbTl0/ZnVuY3Rpb24oQWUsa2Upe3JldHVybiB2b2lkIDA9PT1BZSYmMD09PWtlP1tdOmNlLmNhbGwodGhpcyxBZSxrZSl9OmNlLFtmdW5jdGlvbihrZSxTZSl7dmFyIEllPXNlKHRo''@;'; + put 'put ''aXMpLFRlPW51bGw9PWtlP3ZvaWQgMDprZVtvZV07cmV0dXJuIHZvaWQgMCE9PVRlP1RlLmNhbGwoa2UsSWUsU2UpOnZlLmNhbGwoU3RyaW5nKEllKSxrZSxTZSl9LGZ1bmN0aW9uKEFlLGtlKXt2YXIgU2U9ZGUodmUsQWUsdGhpcyxrZSx2ZSE9PWNlKTtpZihTZS5kb25lKXJldHVybiBTZS52''@;'; + put 'put ''YWx1ZTt2YXIgSWU9QihBZSksVGU9U3RyaW5nKHRoaXMpLEVlPUUoSWUsUmVnRXhwKSxoZT1JZS51bmljb2RlLHo9bmV3IEVlKEo/SWU6Il4oPzoiK0llLnNvdXJjZSsiKSIsKEllLmlnbm9yZUNhc2U/ImkiOiIiKSsoSWUubXVsdGlsaW5lPyJtIjoiIikrKEllLnVuaWNvZGU/InUiOiIiKSso''@;'; + put 'put ''Sj8ieSI6ImciKSksbmU9dm9pZCAwPT09a2U/cTprZT4+PjA7aWYoMD09PW5lKXJldHVybltdO2lmKDA9PT1UZS5sZW5ndGgpcmV0dXJuIG51bGw9PT1RKHosVGUpP1tUZV06W107Zm9yKHZhciB0ZT0wLHg9MCxQPVtdO3g8VGUubGVuZ3RoOyl7ei5sYXN0SW5kZXg9Sj94OjA7dmFyIFQsVj1R''@;'; + put 'put ''KHosSj9UZTpUZS5zbGljZSh4KSk7aWYobnVsbD09PVZ8fChUPWFlKFUoei5sYXN0SW5kZXgrKEo/MDp4KSksVGUubGVuZ3RoKSk9PT10ZSl4PU1lKFRlLHgsaGUpO2Vsc2V7aWYoUC5wdXNoKFRlLnNsaWNlKHRlLHgpKSxQLmxlbmd0aD09PW5lKXJldHVybiBQO2Zvcih2YXIgUz0xO1M8PVYu''@;'; + put 'put ''bGVuZ3RoLTE7UysrKWlmKFAucHVzaChWW1NdKSxQLmxlbmd0aD09PW5lKXJldHVybiBQO3g9dGU9VH19cmV0dXJuIFAucHVzaChUZS5zbGljZSh0ZSkpLFB9XX0pfSw2NjEwODooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7TCg3Njc3NCk7dmFyIG1lPUwoMjcwMDcpLEI9TCg1MzIxOCksRT1M''@;'; + put 'put ''KDY3MDU3KSxNZT0idG9TdHJpbmciLFU9Ly4vW01lXSxRPWZ1bmN0aW9uKFope0woNzcyMzQpKFJlZ0V4cC5wcm90b3R5cGUsTWUsWiwhMCl9O0woNzQyNTMpKGZ1bmN0aW9uKCl7cmV0dXJuIi9hL2IiIT1VLmNhbGwoe3NvdXJjZToiYSIsZmxhZ3M6ImIifSl9KT9RKGZ1bmN0aW9uKCl7dmFy''@;'; + put 'put ''IGllPW1lKHRoaXMpO3JldHVybiIvIi5jb25jYXQoaWUuc291cmNlLCIvIiwiZmxhZ3MiaW4gaWU/aWUuZmxhZ3M6IUUmJmllIGluc3RhbmNlb2YgUmVnRXhwP0IuY2FsbChpZSk6dm9pZCAwKX0pOlUubmFtZSE9TWUmJlEoZnVuY3Rpb24oKXtyZXR1cm4gVS5jYWxsKHRoaXMpfSl9LDk4MTg0''@;'; + put 'put ''OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCg5ODI0KSxCPUwoMTYxNik7WGUuZXhwb3J0cz1MKDQ1Nzk1KSgiU2V0IixmdW5jdGlvbihNZSl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIE1lKHRoaXMsYXJndW1lbnRzLmxlbmd0aD4wP2FyZ3VtZW50c1swXTp2b2lkIDApfX0s''@;'; + put 'put ''e2FkZDpmdW5jdGlvbihVKXtyZXR1cm4gbWUuZGVmKEIodGhpcywiU2V0IiksVT0wPT09VT8wOlUsVSl9fSxtZSl9LDQwODU2OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0IjtMKDI5Mzk1KSgiYW5jaG9yIixmdW5jdGlvbihtZSl7cmV0dXJuIGZ1bmN0aW9uKEUpe3JldHVybiBtZSh0aGlzLCJh''@;'; + put 'put ''IiwibmFtZSIsRSl9fSl9LDgwNzAzOihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0IjtMKDI5Mzk1KSgiYmlnIixmdW5jdGlvbihtZSl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIG1lKHRoaXMsImJpZyIsIiIsIiIpfX0pfSw5MTUzOTooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7TCgyOTM5NSko''@;'; + put 'put ''ImJsaW5rIixmdW5jdGlvbihtZSl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIG1lKHRoaXMsImJsaW5rIiwiIiwiIil9fSl9LDUyOTI6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO0woMjkzOTUpKCJib2xkIixmdW5jdGlvbihtZSl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIG1lKHRoaXMs''@;'; + put 'put ''ImIiLCIiLCIiKX19KX0sMjk1Mzk6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDQyOTg1KSxCPUwoMjQ0OTYpKCExKTttZShtZS5QLCJTdHJpbmciLHtjb2RlUG9pbnRBdDpmdW5jdGlvbihNZSl7cmV0dXJuIEIodGhpcyxNZSl9fSl9LDk2NjIwOihYZSxKZSxMKT0+eyJ1c2Ug''@;'; + put 'put ''c3RyaWN0Ijt2YXIgbWU9TCg0Mjk4NSksQj1MKDEwODc1KSxFPUwoNDIwOTQpLE1lPSJlbmRzV2l0aCIsVT0iIltNZV07bWUobWUuUCttZS5GKkwoODg1MikoTWUpLCJTdHJpbmciLHtlbmRzV2l0aDpmdW5jdGlvbihaKXt2YXIgaWU9RSh0aGlzLFosTWUpLGFlPWFyZ3VtZW50cy5sZW5ndGg+''@;'; + put 'put ''MT9hcmd1bWVudHNbMV06dm9pZCAwLFk9QihpZS5sZW5ndGgpLFc9dm9pZCAwPT09YWU/WTpNYXRoLm1pbihCKGFlKSxZKSxOPVN0cmluZyhaKTtyZXR1cm4gVT9VLmNhbGwoaWUsTixXKTppZS5zbGljZShXLU4ubGVuZ3RoLFcpPT09Tn19KX0sNDUxNzc6KFhlLEplLEwpPT57InVzZSBzdHJp''@;'; + put 'put ''Y3QiO0woMjkzOTUpKCJmaXhlZCIsZnVuY3Rpb24obWUpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBtZSh0aGlzLCJ0dCIsIiIsIiIpfX0pfSw3MzY5NDooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7TCgyOTM5NSkoImZvbnRjb2xvciIsZnVuY3Rpb24obWUpe3JldHVybiBmdW5jdGlvbihF''@;'; + put 'put ''KXtyZXR1cm4gbWUodGhpcywiZm9udCIsImNvbG9yIixFKX19KX0sMzc2NDg6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO0woMjkzOTUpKCJmb250c2l6ZSIsZnVuY3Rpb24obWUpe3JldHVybiBmdW5jdGlvbihFKXtyZXR1cm4gbWUodGhpcywiZm9udCIsInNpemUiLEUpfX0pfSw1MDE5MToo''@;'; + put 'put ''WGUsSmUsTCk9Pnt2YXIgbWU9TCg0Mjk4NSksQj1MKDkyMzM3KSxFPVN0cmluZy5mcm9tQ2hhckNvZGUsTWU9U3RyaW5nLmZyb21Db2RlUG9pbnQ7bWUobWUuUyttZS5GKighIU1lJiYxIT1NZS5sZW5ndGgpLCJTdHJpbmciLHtmcm9tQ29kZVBvaW50OmZ1bmN0aW9uKFEpe2Zvcih2YXIgWSxa''@;'; + put 'put ''PVtdLGllPWFyZ3VtZW50cy5sZW5ndGgsYWU9MDtpZT5hZTspe2lmKFk9K2FyZ3VtZW50c1thZSsrXSxCKFksMTExNDExMSkhPT1ZKXRocm93IFJhbmdlRXJyb3IoWSsiIGlzIG5vdCBhIHZhbGlkIGNvZGUgcG9pbnQiKTtaLnB1c2goWTw2NTUzNj9FKFkpOkUoNTUyOTYrKChZLT02NTUzNik+''@;'; + put 'put ''PjEwKSxZJTEwMjQrNTYzMjApKX1yZXR1cm4gWi5qb2luKCIiKX19KX0sNjI4NTA6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDQyOTg1KSxCPUwoNDIwOTQpLEU9ImluY2x1ZGVzIjttZShtZS5QK21lLkYqTCg4ODUyKShFKSwiU3RyaW5nIix7aW5jbHVkZXM6ZnVuY3Rpb24o''@;'; + put 'put ''VSl7cmV0dXJuISF+Qih0aGlzLFUsRSkuaW5kZXhPZihVLGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKX19KX0sMjc3OTU6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO0woMjkzOTUpKCJpdGFsaWNzIixmdW5jdGlvbihtZSl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJu''@;'; + put 'put ''IG1lKHRoaXMsImkiLCIiLCIiKX19KX0sMzkxMTU6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDI0NDk2KSghMCk7TCg0MjkyMykoU3RyaW5nLCJTdHJpbmciLGZ1bmN0aW9uKEIpe3RoaXMuX3Q9U3RyaW5nKEIpLHRoaXMuX2k9MH0sZnVuY3Rpb24oKXt2YXIgTWUsQj10aGlz''@;'; + put 'put ''Ll90LEU9dGhpcy5faTtyZXR1cm4gRT49Qi5sZW5ndGg/e3ZhbHVlOnZvaWQgMCxkb25lOiEwfTooTWU9bWUoQixFKSx0aGlzLl9pKz1NZS5sZW5ndGgse3ZhbHVlOk1lLGRvbmU6ITF9KX0pfSw0NTMxOihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0IjtMKDI5Mzk1KSgibGluayIsZnVuY3Rpb24o''@;'; + put 'put ''bWUpe3JldHVybiBmdW5jdGlvbihFKXtyZXR1cm4gbWUodGhpcywiYSIsImhyZWYiLEUpfX0pfSw5ODMwNjooWGUsSmUsTCk9Pnt2YXIgbWU9TCg0Mjk4NSksQj1MKDIyMTEwKSxFPUwoMTA4NzUpO21lKG1lLlMsIlN0cmluZyIse3JhdzpmdW5jdGlvbihVKXtmb3IodmFyIFE9QihVLnJhdyks''@;'; + put 'put ''Wj1FKFEubGVuZ3RoKSxpZT1hcmd1bWVudHMubGVuZ3RoLGFlPVtdLFk9MDtaPlk7KWFlLnB1c2goU3RyaW5nKFFbWSsrXSkpLFk8aWUmJmFlLnB1c2goU3RyaW5nKGFyZ3VtZW50c1tZXSkpO3JldHVybiBhZS5qb2luKCIiKX19KX0sMTA4MjM6KFhlLEplLEwpPT57dmFyIG1lPUwoNDI5ODUp''@;'; + put 'put ''O21lKG1lLlAsIlN0cmluZyIse3JlcGVhdDpMKDY4NTk1KX0pfSwyMzYwNTooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7TCgyOTM5NSkoInNtYWxsIixmdW5jdGlvbihtZSl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIG1lKHRoaXMsInNtYWxsIiwiIiwiIil9fSl9LDE3NzMyOihYZSxKZSxM''@;'; + put 'put ''KT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCg0Mjk4NSksQj1MKDEwODc1KSxFPUwoNDIwOTQpLE1lPSJzdGFydHNXaXRoIixVPSIiW01lXTttZShtZS5QK21lLkYqTCg4ODUyKShNZSksIlN0cmluZyIse3N0YXJ0c1dpdGg6ZnVuY3Rpb24oWil7dmFyIGllPUUodGhpcyxaLE1lKSxhZT1CKE1h''@;'; + put 'put ''dGgubWluKGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwLGllLmxlbmd0aCkpLFk9U3RyaW5nKFopO3JldHVybiBVP1UuY2FsbChpZSxZLGFlKTppZS5zbGljZShhZSxhZStZLmxlbmd0aCk9PT1ZfX0pfSw2NzgwOihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0IjtMKDI5Mzk1''@;'; + put 'put ''KSgic3RyaWtlIixmdW5jdGlvbihtZSl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIG1lKHRoaXMsInN0cmlrZSIsIiIsIiIpfX0pfSw2OTkzNzooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7TCgyOTM5NSkoInN1YiIsZnVuY3Rpb24obWUpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBtZSh0''@;'; + put 'put ''aGlzLCJzdWIiLCIiLCIiKX19KX0sMTA1MTE6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO0woMjkzOTUpKCJzdXAiLGZ1bmN0aW9uKG1lKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gbWUodGhpcywic3VwIiwiIiwiIil9fSl9LDY0NTY0OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0IjtMKDI5''@;'; + put 'put ''NTk5KSgidHJpbSIsZnVuY3Rpb24obWUpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBtZSh0aGlzLDMpfX0pfSw5NTc2NzooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoMzgxNiksQj1MKDc5MTgxKSxFPUwoNjcwNTcpLE1lPUwoNDI5ODUpLFU9TCg3NzIzNCksUT1MKDg0NzI4''@;'; + put 'put ''KS5LRVksWj1MKDc0MjUzKSxpZT1MKDM4MjUpLGFlPUwoMjI5NDMpLFk9TCg5Mzk1MyksVz1MKDg2MzE0KSxOPUwoMjg3ODcpLGVlPUwoMzYwNzQpLHE9TCg1NTQxKSxKPUwoNDMwMiksc2U9TCgyNzAwNyksb2U9TCg1NTI4NiksY2U9TCgyMDUwOCksZGU9TCgyMjExMCksdmU9TCgyMTY4OSks''@;'; + put 'put ''QWU9TCg5MDY4MSksa2U9TCg0MjUwMyksU2U9TCgzOTMyNyksSWU9TCgxODY5MyksVGU9TCg2NDU0OCksRWU9TCg5OTI3NSksaGU9TCg0NzE4NCksTz1JZS5mLHo9RWUuZixuZT1TZS5mLHRlPW1lLlN5bWJvbCx4PW1lLkpTT04sUD14JiZ4LnN0cmluZ2lmeSxWPSJwcm90b3R5cGUiLFQ9Vygi''@;'; + put 'put ''X2hpZGRlbiIpLFM9VygidG9QcmltaXRpdmUiKSxGPXt9LnByb3BlcnR5SXNFbnVtZXJhYmxlLHllPWllKCJzeW1ib2wtcmVnaXN0cnkiKSxDZT1pZSgic3ltYm9scyIpLERlPWllKCJvcC1zeW1ib2xzIiksUGU9T2JqZWN0W1ZdLFFlPSJmdW5jdGlvbiI9PXR5cGVvZiB0ZSYmISFUZS5mLCRl''@;'; + put 'put ''PW1lLlFPYmplY3QsZ3Q9ISRlfHwhJGVbVl18fCEkZVtWXS5maW5kQ2hpbGQsd3Q9RSYmWihmdW5jdGlvbigpe3JldHVybiA3IT1rZSh6KHt9LCJhIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHoodGhpcywiYSIse3ZhbHVlOjd9KS5hfX0pKS5hfSk/ZnVuY3Rpb24oR2UsVWUseXQpe3ZhciBq''@;'; + put 'put ''dD1PKFBlLFVlKTtqdCYmZGVsZXRlIFBlW1VlXSx6KEdlLFVlLHl0KSxqdCYmR2UhPT1QZSYmeihQZSxVZSxqdCl9OnosbXQ9ZnVuY3Rpb24oR2Upe3ZhciBVZT1DZVtHZV09a2UodGVbVl0pO3JldHVybiBVZS5faz1HZSxVZX0sdnQ9UWUmJiJzeW1ib2wiPT10eXBlb2YgdGUuaXRlcmF0b3I/''@;'; + put 'put ''ZnVuY3Rpb24oR2Upe3JldHVybiJzeW1ib2wiPT10eXBlb2YgR2V9OmZ1bmN0aW9uKEdlKXtyZXR1cm4gR2UgaW5zdGFuY2VvZiB0ZX0sQXQ9ZnVuY3Rpb24oVWUseXQsanQpe3JldHVybiBVZT09PVBlJiZBdChEZSx5dCxqdCksc2UoVWUpLHl0PXZlKHl0LCEwKSxzZShqdCksQihDZSx5dCk/''@;'; + put 'put ''KGp0LmVudW1lcmFibGU/KEIoVWUsVCkmJlVlW1RdW3l0XSYmKFVlW1RdW3l0XT0hMSksanQ9a2UoanQse2VudW1lcmFibGU6QWUoMCwhMSl9KSk6KEIoVWUsVCl8fHooVWUsVCxBZSgxLHt9KSksVWVbVF1beXRdPSEwKSx3dChVZSx5dCxqdCkpOnooVWUseXQsanQpfSxodD1mdW5jdGlvbihV''@;'; + put 'put ''ZSx5dCl7c2UoVWUpO2Zvcih2YXIgZG4sanQ9cSh5dD1kZSh5dCkpLFF0PTAsZ249anQubGVuZ3RoO2duPlF0OylBdChVZSxkbj1qdFtRdCsrXSx5dFtkbl0pO3JldHVybiBVZX0sb249ZnVuY3Rpb24oVWUpe3ZhciB5dD1GLmNhbGwodGhpcyxVZT12ZShVZSwhMCkpO3JldHVybiEodGhpcz09''@;'; + put 'put ''PVBlJiZCKENlLFVlKSYmIUIoRGUsVWUpKSYmKCEoeXR8fCFCKHRoaXMsVWUpfHwhQihDZSxVZSl8fEIodGhpcyxUKSYmdGhpc1tUXVtVZV0pfHx5dCl9LF90PWZ1bmN0aW9uKFVlLHl0KXtpZihVZT1kZShVZSkseXQ9dmUoeXQsITApLFVlIT09UGV8fCFCKENlLHl0KXx8QihEZSx5dCkpe3Zh''@;'; + put 'put ''ciBqdD1PKFVlLHl0KTtyZXR1cm4ganQmJkIoQ2UseXQpJiYhKEIoVWUsVCkmJlVlW1RdW3l0XSkmJihqdC5lbnVtZXJhYmxlPSEwKSxqdH19LHR0PWZ1bmN0aW9uKFVlKXtmb3IodmFyIGduLHl0PW5lKGRlKFVlKSksanQ9W10sUXQ9MDt5dC5sZW5ndGg+UXQ7KSFCKENlLGduPXl0W1F0Kytd''@;'; + put 'put ''KSYmZ24hPVQmJmduIT1RJiZqdC5wdXNoKGduKTtyZXR1cm4ganR9LGV0PWZ1bmN0aW9uKFVlKXtmb3IodmFyIGRuLHl0PVVlPT09UGUsanQ9bmUoeXQ/RGU6ZGUoVWUpKSxRdD1bXSxnbj0wO2p0Lmxlbmd0aD5nbjspQihDZSxkbj1qdFtnbisrXSkmJigheXR8fEIoUGUsZG4pKSYmUXQucHVz''@;'; + put 'put ''aChDZVtkbl0pO3JldHVybiBRdH07UWV8fChVKCh0ZT1mdW5jdGlvbigpe2lmKHRoaXMgaW5zdGFuY2VvZiB0ZSl0aHJvdyBUeXBlRXJyb3IoIlN5bWJvbCBpcyBub3QgYSBjb25zdHJ1Y3RvciEiKTt2YXIgVWU9WShhcmd1bWVudHMubGVuZ3RoPjA/YXJndW1lbnRzWzBdOnZvaWQgMCkseXQ9''@;'; + put 'put ''ZnVuY3Rpb24oanQpe3RoaXM9PT1QZSYmeXQuY2FsbChEZSxqdCksQih0aGlzLFQpJiZCKHRoaXNbVF0sVWUpJiYodGhpc1tUXVtVZV09ITEpLHd0KHRoaXMsVWUsQWUoMSxqdCkpfTtyZXR1cm4gRSYmZ3QmJnd0KFBlLFVlLHtjb25maWd1cmFibGU6ITAsc2V0Onl0fSksbXQoVWUpfSlbVl0s''@;'; + put 'put ''InRvU3RyaW5nIixmdW5jdGlvbigpe3JldHVybiB0aGlzLl9rfSksSWUuZj1fdCxFZS5mPUF0LEwoMjA2MTYpLmY9U2UuZj10dCxMKDE0NjgyKS5mPW9uLFRlLmY9ZXQsRSYmIUwoNDQ2MSkmJlUoUGUsInByb3BlcnR5SXNFbnVtZXJhYmxlIixvbiwhMCksTi5mPWZ1bmN0aW9uKEdlKXtyZXR1''@;'; + put 'put ''cm4gbXQoVyhHZSkpfSksTWUoTWUuRytNZS5XK01lLkYqIVFlLHtTeW1ib2w6dGV9KTtmb3IodmFyIGF0PSJoYXNJbnN0YW5jZSxpc0NvbmNhdFNwcmVhZGFibGUsaXRlcmF0b3IsbWF0Y2gscmVwbGFjZSxzZWFyY2gsc3BlY2llcyxzcGxpdCx0b1ByaW1pdGl2ZSx0b1N0cmluZ1RhZyx1bnNj''@;'; + put 'put ''b3BhYmxlcyIuc3BsaXQoIiwiKSxMdD0wO2F0Lmxlbmd0aD5MdDspVyhhdFtMdCsrXSk7Zm9yKHZhciBDdD1oZShXLnN0b3JlKSxmdD0wO0N0Lmxlbmd0aD5mdDspZWUoQ3RbZnQrK10pO01lKE1lLlMrTWUuRiohUWUsIlN5bWJvbCIse2ZvcjpmdW5jdGlvbihHZSl7cmV0dXJuIEIoeWUsR2Ur''@;'; + put 'put ''PSIiKT95ZVtHZV06eWVbR2VdPXRlKEdlKX0sa2V5Rm9yOmZ1bmN0aW9uKFVlKXtpZighdnQoVWUpKXRocm93IFR5cGVFcnJvcihVZSsiIGlzIG5vdCBhIHN5bWJvbCEiKTtmb3IodmFyIHl0IGluIHllKWlmKHllW3l0XT09PVVlKXJldHVybiB5dH0sdXNlU2V0dGVyOmZ1bmN0aW9uKCl7Z3Q9''@;'; + put 'put ''ITB9LHVzZVNpbXBsZTpmdW5jdGlvbigpe2d0PSExfX0pLE1lKE1lLlMrTWUuRiohUWUsIk9iamVjdCIse2NyZWF0ZTpmdW5jdGlvbihVZSx5dCl7cmV0dXJuIHZvaWQgMD09PXl0P2tlKFVlKTpodChrZShVZSkseXQpfSxkZWZpbmVQcm9wZXJ0eTpBdCxkZWZpbmVQcm9wZXJ0aWVzOmh0LGdl''@;'; + put 'put ''dE93blByb3BlcnR5RGVzY3JpcHRvcjpfdCxnZXRPd25Qcm9wZXJ0eU5hbWVzOnR0LGdldE93blByb3BlcnR5U3ltYm9sczpldH0pO3ZhciBIdD1aKGZ1bmN0aW9uKCl7VGUuZigxKX0pO01lKE1lLlMrTWUuRipIdCwiT2JqZWN0Iix7Z2V0T3duUHJvcGVydHlTeW1ib2xzOmZ1bmN0aW9uKFVl''@;'; + put 'put ''KXtyZXR1cm4gVGUuZihjZShVZSkpfX0pLHgmJk1lKE1lLlMrTWUuRiooIVFlfHxaKGZ1bmN0aW9uKCl7dmFyIEdlPXRlKCk7cmV0dXJuIltudWxsXSIhPVAoW0dlXSl8fCJ7fSIhPVAoe2E6R2V9KXx8Int9IiE9UChPYmplY3QoR2UpKX0pKSwiSlNPTiIse3N0cmluZ2lmeTpmdW5jdGlvbihV''@;'; + put 'put ''ZSl7Zm9yKHZhciBRdCxnbix5dD1bVWVdLGp0PTE7YXJndW1lbnRzLmxlbmd0aD5qdDspeXQucHVzaChhcmd1bWVudHNbanQrK10pO2lmKGduPVF0PXl0WzFdLChvZShRdCl8fHZvaWQgMCE9PVVlKSYmIXZ0KFVlKSlyZXR1cm4gSihRdCl8fChRdD1mdW5jdGlvbihkbix5bil7aWYoImZ1bmN0''@;'; + put 'put ''aW9uIj09dHlwZW9mIGduJiYoeW49Z24uY2FsbCh0aGlzLGRuLHluKSksIXZ0KHluKSlyZXR1cm4geW59KSx5dFsxXT1RdCxQLmFwcGx5KHgseXQpfX0pLHRlW1ZdW1NdfHxMKDg3NzI4KSh0ZVtWXSxTLHRlW1ZdLnZhbHVlT2YpLGFlKHRlLCJTeW1ib2wiKSxhZShNYXRoLCJNYXRoIiwhMCks''@;'; + put 'put ''YWUobWUuSlNPTiwiSlNPTiIsITApfSwzMDE0NzooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIEosbWU9TCgzODE2KSxCPUwoMTAwNTApKDApLEU9TCg3NzIzNCksTWU9TCg4NDcyOCksVT1MKDM1MzQ1KSxRPUwoMjM2NTcpLFo9TCg1NTI4NiksaWU9TCgxNjE2KSxhZT1MKDE2MTYpLFk9''@;'; + put 'put ''IW1lLkFjdGl2ZVhPYmplY3QmJiJBY3RpdmVYT2JqZWN0ImluIG1lLFc9IldlYWtNYXAiLE49TWUuZ2V0V2VhayxlZT1PYmplY3QuaXNFeHRlbnNpYmxlLHE9US51ZnN0b3JlLHNlPWZ1bmN0aW9uKGRlKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gZGUodGhpcyxhcmd1bWVudHMubGVuZ3Ro''@;'; + put 'put ''PjA/YXJndW1lbnRzWzBdOnZvaWQgMCl9fSxvZT17Z2V0OmZ1bmN0aW9uKHZlKXtpZihaKHZlKSl7dmFyIEFlPU4odmUpO3JldHVybiEwPT09QWU/cShpZSh0aGlzLFcpKS5nZXQodmUpOkFlP0FlW3RoaXMuX2ldOnZvaWQgMH19LHNldDpmdW5jdGlvbih2ZSxBZSl7cmV0dXJuIFEuZGVmKGll''@;'; + put 'put ''KHRoaXMsVyksdmUsQWUpfX0sY2U9WGUuZXhwb3J0cz1MKDQ1Nzk1KShXLHNlLG9lLFEsITAsITApO2FlJiZZJiYoVSgoSj1RLmdldENvbnN0cnVjdG9yKHNlLFcpKS5wcm90b3R5cGUsb2UpLE1lLk5FRUQ9ITAsQihbImRlbGV0ZSIsImhhcyIsImdldCIsInNldCJdLGZ1bmN0aW9uKGRlKXt2''@;'; + put 'put ''YXIgdmU9Y2UucHJvdG90eXBlLEFlPXZlW2RlXTtFKHZlLGRlLGZ1bmN0aW9uKGtlLFNlKXtpZihaKGtlKSYmIWVlKGtlKSl7dGhpcy5fZnx8KHRoaXMuX2Y9bmV3IEopO3ZhciBJZT10aGlzLl9mW2RlXShrZSxTZSk7cmV0dXJuInNldCI9PWRlP3RoaXM6SWV9cmV0dXJuIEFlLmNhbGwodGhp''@;'; + put 'put ''cyxrZSxTZSl9KX0pKX0sNTMzNjQ6KFhlLEplLEwpPT57dmFyIG1lPUwoNTAxMzMpLEI9TCgyNzAwNyksRT1tZS5rZXksTWU9bWUuc2V0O21lLmV4cCh7ZGVmaW5lTWV0YWRhdGE6ZnVuY3Rpb24oUSxaLGllLGFlKXtNZShRLFosQihpZSksRShhZSkpfX0pfSw1MTQzMjooWGUsSmUsTCk9Pnt2''@;'; + put 'put ''YXIgbWU9TCg1MDEzMyksQj1MKDI3MDA3KSxFPW1lLmtleSxNZT1tZS5tYXAsVT1tZS5zdG9yZTttZS5leHAoe2RlbGV0ZU1ldGFkYXRhOmZ1bmN0aW9uKFosaWUpe3ZhciBhZT1hcmd1bWVudHMubGVuZ3RoPDM/dm9pZCAwOkUoYXJndW1lbnRzWzJdKSxZPU1lKEIoaWUpLGFlLCExKTtpZih2''@;'; + put 'put ''b2lkIDA9PT1ZfHwhWS5kZWxldGUoWikpcmV0dXJuITE7aWYoWS5zaXplKXJldHVybiEwO3ZhciBXPVUuZ2V0KGllKTtyZXR1cm4gVy5kZWxldGUoYWUpLCEhVy5zaXplfHxVLmRlbGV0ZShpZSl9fSl9LDg0NDE2OihYZSxKZSxMKT0+e3ZhciBtZT1MKDk4MTg0KSxCPUwoOTQ5MCksRT1MKDUw''@;'; + put 'put ''MTMzKSxNZT1MKDI3MDA3KSxVPUwoNDY4KSxRPUUua2V5cyxaPUUua2V5LGllPWZ1bmN0aW9uKGFlLFkpe3ZhciBXPVEoYWUsWSksTj1VKGFlKTtpZihudWxsPT09TilyZXR1cm4gVzt2YXIgZWU9aWUoTixZKTtyZXR1cm4gZWUubGVuZ3RoP1cubGVuZ3RoP0IobmV3IG1lKFcuY29uY2F0KGVl''@;'; + put 'put ''KSkpOmVlOld9O0UuZXhwKHtnZXRNZXRhZGF0YUtleXM6ZnVuY3Rpb24oWSl7cmV0dXJuIGllKE1lKFkpLGFyZ3VtZW50cy5sZW5ndGg8Mj92b2lkIDA6Wihhcmd1bWVudHNbMV0pKX19KX0sMjY1NjI6KFhlLEplLEwpPT57dmFyIG1lPUwoNTAxMzMpLEI9TCgyNzAwNyksRT1MKDQ2OCksTWU9''@;'; + put 'put ''bWUuaGFzLFU9bWUuZ2V0LFE9bWUua2V5LFo9ZnVuY3Rpb24oaWUsYWUsWSl7aWYoTWUoaWUsYWUsWSkpcmV0dXJuIFUoaWUsYWUsWSk7dmFyIE49RShhZSk7cmV0dXJuIG51bGwhPT1OP1ooaWUsTixZKTp2b2lkIDB9O21lLmV4cCh7Z2V0TWV0YWRhdGE6ZnVuY3Rpb24oYWUsWSl7cmV0dXJu''@;'; + put 'put ''IFooYWUsQihZKSxhcmd1bWVudHMubGVuZ3RoPDM/dm9pZCAwOlEoYXJndW1lbnRzWzJdKSl9fSl9LDMyMjEzOihYZSxKZSxMKT0+e3ZhciBtZT1MKDUwMTMzKSxCPUwoMjcwMDcpLEU9bWUua2V5cyxNZT1tZS5rZXk7bWUuZXhwKHtnZXRPd25NZXRhZGF0YUtleXM6ZnVuY3Rpb24oUSl7cmV0''@;'; + put 'put ''dXJuIEUoQihRKSxhcmd1bWVudHMubGVuZ3RoPDI/dm9pZCAwOk1lKGFyZ3VtZW50c1sxXSkpfX0pfSw5ODY4MTooWGUsSmUsTCk9Pnt2YXIgbWU9TCg1MDEzMyksQj1MKDI3MDA3KSxFPW1lLmdldCxNZT1tZS5rZXk7bWUuZXhwKHtnZXRPd25NZXRhZGF0YTpmdW5jdGlvbihRLFope3JldHVy''@;'; + put 'put ''biBFKFEsQihaKSxhcmd1bWVudHMubGVuZ3RoPDM/dm9pZCAwOk1lKGFyZ3VtZW50c1syXSkpfX0pfSw2MzQ3MTooWGUsSmUsTCk9Pnt2YXIgbWU9TCg1MDEzMyksQj1MKDI3MDA3KSxFPUwoNDY4KSxNZT1tZS5oYXMsVT1tZS5rZXksUT1mdW5jdGlvbihaLGllLGFlKXtpZihNZShaLGllLGFl''@;'; + put 'put ''KSlyZXR1cm4hMDt2YXIgVz1FKGllKTtyZXR1cm4gbnVsbCE9PVcmJlEoWixXLGFlKX07bWUuZXhwKHtoYXNNZXRhZGF0YTpmdW5jdGlvbihpZSxhZSl7cmV0dXJuIFEoaWUsQihhZSksYXJndW1lbnRzLmxlbmd0aDwzP3ZvaWQgMDpVKGFyZ3VtZW50c1syXSkpfX0pfSw0MzI5OihYZSxKZSxM''@;'; + put 'put ''KT0+e3ZhciBtZT1MKDUwMTMzKSxCPUwoMjcwMDcpLEU9bWUuaGFzLE1lPW1lLmtleTttZS5leHAoe2hhc093bk1ldGFkYXRhOmZ1bmN0aW9uKFEsWil7cmV0dXJuIEUoUSxCKFopLGFyZ3VtZW50cy5sZW5ndGg8Mz92b2lkIDA6TWUoYXJndW1lbnRzWzJdKSl9fSl9LDI1MTU5OihYZSxKZSxM''@;'; + put 'put ''KT0+e3ZhciBtZT1MKDUwMTMzKSxCPUwoMjcwMDcpLEU9TCgyNDk2MyksTWU9bWUua2V5LFU9bWUuc2V0O21lLmV4cCh7bWV0YWRhdGE6ZnVuY3Rpb24oWixpZSl7cmV0dXJuIGZ1bmN0aW9uKFksVyl7VShaLGllLCh2b2lkIDAhPT1XP0I6RSkoWSksTWUoVykpfX19KX0sOTExODE6KFhlLEpl''@;'; + put 'put ''LEwpPT57Zm9yKHZhciBtZT1MKDU2OTk3KSxCPUwoNDcxODQpLEU9TCg3NzIzNCksTWU9TCgzODE2KSxVPUwoODc3MjgpLFE9TCg4NzIzNCksWj1MKDg2MzE0KSxpZT1aKCJpdGVyYXRvciIpLGFlPVooInRvU3RyaW5nVGFnIiksWT1RLkFycmF5LFc9e0NTU1J1bGVMaXN0OiEwLENTU1N0eWxl''@;'; + put 'put ''RGVjbGFyYXRpb246ITEsQ1NTVmFsdWVMaXN0OiExLENsaWVudFJlY3RMaXN0OiExLERPTVJlY3RMaXN0OiExLERPTVN0cmluZ0xpc3Q6ITEsRE9NVG9rZW5MaXN0OiEwLERhdGFUcmFuc2Zlckl0ZW1MaXN0OiExLEZpbGVMaXN0OiExLEhUTUxBbGxDb2xsZWN0aW9uOiExLEhUTUxDb2xsZWN0''@;'; + put 'put ''aW9uOiExLEhUTUxGb3JtRWxlbWVudDohMSxIVE1MU2VsZWN0RWxlbWVudDohMSxNZWRpYUxpc3Q6ITAsTWltZVR5cGVBcnJheTohMSxOYW1lZE5vZGVNYXA6ITEsTm9kZUxpc3Q6ITAsUGFpbnRSZXF1ZXN0TGlzdDohMSxQbHVnaW46ITEsUGx1Z2luQXJyYXk6ITEsU1ZHTGVuZ3RoTGlzdDoh''@;'; + put 'put ''MSxTVkdOdW1iZXJMaXN0OiExLFNWR1BhdGhTZWdMaXN0OiExLFNWR1BvaW50TGlzdDohMSxTVkdTdHJpbmdMaXN0OiExLFNWR1RyYW5zZm9ybUxpc3Q6ITEsU291cmNlQnVmZmVyTGlzdDohMSxTdHlsZVNoZWV0TGlzdDohMCxUZXh0VHJhY2tDdWVMaXN0OiExLFRleHRUcmFja0xpc3Q6ITEs''@;'; + put 'put ''VG91Y2hMaXN0OiExfSxOPUIoVyksZWU9MDtlZTxOLmxlbmd0aDtlZSsrKXt2YXIgY2UscT1OW2VlXSxKPVdbcV0sc2U9TWVbcV0sb2U9c2UmJnNlLnByb3RvdHlwZTtpZihvZSYmKG9lW2llXXx8VShvZSxpZSxZKSxvZVthZV18fFUob2UsYWUscSksUVtxXT1ZLEopKWZvcihjZSBpbiBtZSlv''@;'; + put 'put ''ZVtjZV18fEUob2UsY2UsbWVbY2VdLCEwKX19LDgxNDUwOihYZSxKZSxMKT0+e3ZhciBtZT1MKDEyMDE0KSxCPUwoOTQ2NzYpLEU9VHlwZUVycm9yO1hlLmV4cG9ydHM9ZnVuY3Rpb24oTWUpe2lmKG1lKE1lKSlyZXR1cm4gTWU7dGhyb3cgRShCKE1lKSsiIGlzIG5vdCBhIGZ1bmN0aW9uIil9''@;'; + put 'put ''fSw1NjU4MTooWGUsSmUsTCk9Pnt2YXIgbWU9TCg0OTQ1MyksQj1MKDk0Njc2KSxFPVR5cGVFcnJvcjtYZS5leHBvcnRzPWZ1bmN0aW9uKE1lKXtpZihtZShNZSkpcmV0dXJuIE1lO3Rocm93IEUoQihNZSkrIiBpcyBub3QgYSBjb25zdHJ1Y3RvciIpfX0sNzAwODooWGUsSmUsTCk9Pnt2YXIg''@;'; + put 'put ''bWU9TCgxMjAxNCksQj1TdHJpbmcsRT1UeXBlRXJyb3I7WGUuZXhwb3J0cz1mdW5jdGlvbihNZSl7aWYoIm9iamVjdCI9PXR5cGVvZiBNZXx8bWUoTWUpKXJldHVybiBNZTt0aHJvdyBFKCJDYW4ndCBzZXQgIitCKE1lKSsiIGFzIGEgcHJvdG90eXBlIil9fSw3NDk2NTooWGUsSmUsTCk9Pnt2''@;'; + put 'put ''YXIgbWU9TCgyNTQ2KSxCPUwoNzQ0MTApLEU9TCg1MTE4MykuZixNZT1tZSgidW5zY29wYWJsZXMiKSxVPUFycmF5LnByb3RvdHlwZTtudWxsPT1VW01lXSYmRShVLE1lLHtjb25maWd1cmFibGU6ITAsdmFsdWU6QihudWxsKX0pLFhlLmV4cG9ydHM9ZnVuY3Rpb24oUSl7VVtNZV1bUV09ITB9''@;'; + put 'put ''fSw2MTY3NjooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoNzUwNTgpLmNoYXJBdDtYZS5leHBvcnRzPWZ1bmN0aW9uKEIsRSxNZSl7cmV0dXJuIEUrKE1lP21lKEIsRSkubGVuZ3RoOjEpfX0sOTUyMDQ6KFhlLEplLEwpPT57dmFyIG1lPUwoMzc0NzQpLEI9VHlwZUVycm9yO1hl''@;'; + put 'put ''LmV4cG9ydHM9ZnVuY3Rpb24oRSxNZSl7aWYobWUoTWUsRSkpcmV0dXJuIEU7dGhyb3cgQigiSW5jb3JyZWN0IGludm9jYXRpb24iKX19LDU4NjQ3OihYZSxKZSxMKT0+e3ZhciBtZT1MKDcxNDk2KSxCPVN0cmluZyxFPVR5cGVFcnJvcjtYZS5leHBvcnRzPWZ1bmN0aW9uKE1lKXtpZihtZShN''@;'; + put 'put ''ZSkpcmV0dXJuIE1lO3Rocm93IEUoQihNZSkrIiBpcyBub3QgYW4gb2JqZWN0Iil9fSw2Mjc4OTooWGUsSmUsTCk9Pnt2YXIgbWU9TCgyMzUyMyk7WGUuZXhwb3J0cz1tZShmdW5jdGlvbigpe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBBcnJheUJ1ZmZlcil7dmFyIEI9bmV3IEFycmF5QnVmZmVy''@;'; + put 'put ''KDgpO09iamVjdC5pc0V4dGVuc2libGUoQikmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShCLCJhIix7dmFsdWU6OH0pfX0pfSw1NzE3OTooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoNjgwNzEpLEI9TCg3NjE2MyksRT1MKDU0NDUwKTtYZS5leHBvcnRzPWZ1bmN0aW9uKFUpe2Zv''@;'; + put 'put ''cih2YXIgUT1tZSh0aGlzKSxaPUUoUSksaWU9YXJndW1lbnRzLmxlbmd0aCxhZT1CKGllPjE/YXJndW1lbnRzWzFdOnZvaWQgMCxaKSxZPWllPjI/YXJndW1lbnRzWzJdOnZvaWQgMCxXPXZvaWQgMD09PVk/WjpCKFksWik7Vz5hZTspUVthZSsrXT1VO3JldHVybiBRfX0sMzczMTk6KFhlLEpl''@;'; + put 'put ''LEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDk1NjY5KS5mb3JFYWNoLEU9TCg2MzEyNCkoImZvckVhY2giKTtYZS5leHBvcnRzPUU/W10uZm9yRWFjaDpmdW5jdGlvbihVKXtyZXR1cm4gbWUodGhpcyxVLGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKX19LDY2NjY2''@;'; + put 'put ''OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCg4NTQ5KSxCPUwoMzU2MiksRT1MKDY4MDcxKSxNZT1MKDE4NzYpLFU9TCg5NzEwNiksUT1MKDQ5NDUzKSxaPUwoNTQ0NTApLGllPUwoOTUwMDQpLGFlPUwoMTI5ODkpLFk9TCg2NjI4OCksVz1BcnJheTtYZS5leHBvcnRzPWZ1bmN0''@;'; + put 'put ''aW9uKGVlKXt2YXIgcT1FKGVlKSxKPVEodGhpcyksc2U9YXJndW1lbnRzLmxlbmd0aCxvZT1zZT4xP2FyZ3VtZW50c1sxXTp2b2lkIDAsY2U9dm9pZCAwIT09b2U7Y2UmJihvZT1tZShvZSxzZT4yP2FyZ3VtZW50c1syXTp2b2lkIDApKTt2YXIgQWUsa2UsU2UsSWUsVGUsRWUsZGU9WShxKSx2''@;'; + put 'put ''ZT0wO2lmKCFkZXx8dGhpcz09PVcmJlUoZGUpKWZvcihBZT1aKHEpLGtlPUo/bmV3IHRoaXMoQWUpOlcoQWUpO0FlPnZlO3ZlKyspRWU9Y2U/b2UocVt2ZV0sdmUpOnFbdmVdLGllKGtlLHZlLEVlKTtlbHNlIGZvcihUZT0oSWU9YWUocSxkZSkpLm5leHQsa2U9Sj9uZXcgdGhpczpbXTshKFNl''@;'; + put 'put ''PUIoVGUsSWUpKS5kb25lO3ZlKyspRWU9Y2U/TWUoSWUsb2UsW1NlLnZhbHVlLHZlXSwhMCk6U2UudmFsdWUsaWUoa2UsdmUsRWUpO3JldHVybiBrZS5sZW5ndGg9dmUsa2V9fSwzNjMwNTooWGUsSmUsTCk9Pnt2YXIgbWU9TCg1MDMyNyksQj1MKDc2MTYzKSxFPUwoNTQ0NTApLE1lPWZ1bmN0''@;'; + put 'put ''aW9uKFUpe3JldHVybiBmdW5jdGlvbihRLFosaWUpe3ZhciBOLGFlPW1lKFEpLFk9RShhZSksVz1CKGllLFkpO2lmKFUmJlohPVope2Zvcig7WT5XOylpZigoTj1hZVtXKytdKSE9TilyZXR1cm4hMH1lbHNlIGZvcig7WT5XO1crKylpZigoVXx8VyBpbiBhZSkmJmFlW1ddPT09WilyZXR1cm4g''@;'; + put 'put ''VXx8V3x8MDtyZXR1cm4hVSYmLTF9fTtYZS5leHBvcnRzPXtpbmNsdWRlczpNZSghMCksaW5kZXhPZjpNZSghMSl9fSw5NTY2OTooWGUsSmUsTCk9Pnt2YXIgbWU9TCg4NTQ5KSxCPUwoNjYxMyksRT1MKDU2NjA3KSxNZT1MKDY4MDcxKSxVPUwoNTQ0NTApLFE9TCgzMTg1NyksWj1CKFtdLnB1''@;'; + put 'put ''c2gpLGllPWZ1bmN0aW9uKGFlKXt2YXIgWT0xPT1hZSxXPTI9PWFlLE49Mz09YWUsZWU9ND09YWUscT02PT1hZSxKPTc9PWFlLHNlPTU9PWFlfHxxO3JldHVybiBmdW5jdGlvbihvZSxjZSxkZSx2ZSl7Zm9yKHZhciBPLHosQWU9TWUob2UpLGtlPUUoQWUpLFNlPW1lKGNlLGRlKSxJZT1VKGtl''@;'; + put 'put ''KSxUZT0wLEVlPXZlfHxRLGhlPVk/RWUob2UsSWUpOld8fEo/RWUob2UsMCk6dm9pZCAwO0llPlRlO1RlKyspaWYoKHNlfHxUZSBpbiBrZSkmJih6PVNlKE89a2VbVGVdLFRlLEFlKSxhZSkpaWYoWSloZVtUZV09ejtlbHNlIGlmKHopc3dpdGNoKGFlKXtjYXNlIDM6cmV0dXJuITA7Y2FzZSA1''@;'; + put 'put ''OnJldHVybiBPO2Nhc2UgNjpyZXR1cm4gVGU7Y2FzZSAyOlooaGUsTyl9ZWxzZSBzd2l0Y2goYWUpe2Nhc2UgNDpyZXR1cm4hMTtjYXNlIDc6WihoZSxPKX1yZXR1cm4gcT8tMTpOfHxlZT9lZTpoZX19O1hlLmV4cG9ydHM9e2ZvckVhY2g6aWUoMCksbWFwOmllKDEpLGZpbHRlcjppZSgyKSxz''@;'; + put 'put ''b21lOmllKDMpLGV2ZXJ5OmllKDQpLGZpbmQ6aWUoNSksZmluZEluZGV4OmllKDYpLGZpbHRlclJlamVjdDppZSg3KX19LDk2MjI6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDExMzA2KSxCPUwoNTAzMjcpLEU9TCg0MDcwMiksTWU9TCg1NDQ1MCksVT1MKDYzMTI0KSxRPU1h''@;'; + put 'put ''dGgubWluLFo9W10ubGFzdEluZGV4T2YsaWU9ISFaJiYxL1sxXS5sYXN0SW5kZXhPZigxLC0wKTwwLGFlPVUoImxhc3RJbmRleE9mIik7WGUuZXhwb3J0cz1pZXx8IWFlP2Z1bmN0aW9uKE4pe2lmKGllKXJldHVybiBtZShaLHRoaXMsYXJndW1lbnRzKXx8MDt2YXIgZWU9Qih0aGlzKSxxPU1l''@;'; + put 'put ''KGVlKSxKPXEtMTtmb3IoYXJndW1lbnRzLmxlbmd0aD4xJiYoSj1RKEosRShhcmd1bWVudHNbMV0pKSksSjwwJiYoSj1xK0opO0o+PTA7Si0tKWlmKEogaW4gZWUmJmVlW0pdPT09TilyZXR1cm4gSnx8MDtyZXR1cm4tMX06Wn0sNTEyOTg6KFhlLEplLEwpPT57dmFyIG1lPUwoMjM1MjMpLEI9''@;'; + put 'put ''TCgyNTQ2KSxFPUwoMjkzODUpLE1lPUIoInNwZWNpZXMiKTtYZS5leHBvcnRzPWZ1bmN0aW9uKFUpe3JldHVybiBFPj01MXx8IW1lKGZ1bmN0aW9uKCl7dmFyIFE9W107cmV0dXJuKFEuY29uc3RydWN0b3I9e30pW01lXT1mdW5jdGlvbigpe3JldHVybntmb286MX19LDEhPT1RW1VdKEJvb2xl''@;'; + put 'put ''YW4pLmZvb30pfX0sNjMxMjQ6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDIzNTIzKTtYZS5leHBvcnRzPWZ1bmN0aW9uKEIsRSl7dmFyIE1lPVtdW0JdO3JldHVybiEhTWUmJm1lKGZ1bmN0aW9uKCl7TWUuY2FsbChudWxsLEV8fGZ1bmN0aW9uKCl7cmV0dXJuIDF9LDEpfSl9''@;'; + put 'put ''fSw3Mzc2MDooWGUsSmUsTCk9Pnt2YXIgbWU9TCg4MTQ1MCksQj1MKDY4MDcxKSxFPUwoNTY2MDcpLE1lPUwoNTQ0NTApLFU9VHlwZUVycm9yLFE9ZnVuY3Rpb24oWil7cmV0dXJuIGZ1bmN0aW9uKGllLGFlLFksVyl7bWUoYWUpO3ZhciBOPUIoaWUpLGVlPUUoTikscT1NZShOKSxKPVo/cS0x''@;'; + put 'put ''OjAsc2U9Wj8tMToxO2lmKFk8Milmb3IoOzspe2lmKEogaW4gZWUpe1c9ZWVbSl0sSis9c2U7YnJlYWt9aWYoSis9c2UsWj9KPDA6cTw9Sil0aHJvdyBVKCJSZWR1Y2Ugb2YgZW1wdHkgYXJyYXkgd2l0aCBubyBpbml0aWFsIHZhbHVlIil9Zm9yKDtaP0o+PTA6cT5KO0orPXNlKUogaW4gZWUm''@;'; + put 'put ''JihXPWFlKFcsZWVbSl0sSixOKSk7cmV0dXJuIFd9fTtYZS5leHBvcnRzPXtsZWZ0OlEoITEpLHJpZ2h0OlEoITApfX0sMTA4NzI6KFhlLEplLEwpPT57dmFyIG1lPUwoNzYxNjMpLEI9TCg1NDQ1MCksRT1MKDk1MDA0KSxNZT1BcnJheSxVPU1hdGgubWF4O1hlLmV4cG9ydHM9ZnVuY3Rpb24o''@;'; + put 'put ''USxaLGllKXtmb3IodmFyIGFlPUIoUSksWT1tZShaLGFlKSxXPW1lKHZvaWQgMD09PWllP2FlOmllLGFlKSxOPU1lKFUoVy1ZLDApKSxlZT0wO1k8VztZKyssZWUrKylFKE4sZWUsUVtZXSk7cmV0dXJuIE4ubGVuZ3RoPWVlLE59fSw0MDkzMDooWGUsSmUsTCk9Pnt2YXIgbWU9TCg2NjEzKTtY''@;'; + put 'put ''ZS5leHBvcnRzPW1lKFtdLnNsaWNlKX0sMzI1OTQ6KFhlLEplLEwpPT57dmFyIG1lPUwoMTA4NzIpLEI9TWF0aC5mbG9vcixFPWZ1bmN0aW9uKFEsWil7dmFyIGllPVEubGVuZ3RoLGFlPUIoaWUvMik7cmV0dXJuIGllPDg/TWUoUSxaKTpVKFEsRShtZShRLDAsYWUpLFopLEUobWUoUSxhZSks''@;'; + put 'put ''WiksWil9LE1lPWZ1bmN0aW9uKFEsWil7Zm9yKHZhciBZLFcsaWU9US5sZW5ndGgsYWU9MTthZTxpZTspe2ZvcihXPWFlLFk9UVthZV07VyYmWihRW1ctMV0sWSk+MDspUVtXXT1RWy0tV107VyE9PWFlKysmJihRW1ddPVkpfXJldHVybiBRfSxVPWZ1bmN0aW9uKFEsWixpZSxhZSl7Zm9yKHZh''@;'; + put 'put ''ciBZPVoubGVuZ3RoLFc9aWUubGVuZ3RoLE49MCxlZT0wO048WXx8ZWU8VzspUVtOK2VlXT1OPFkmJmVlPFc/YWUoWltOXSxpZVtlZV0pPD0wP1pbTisrXTppZVtlZSsrXTpOPFk/WltOKytdOmllW2VlKytdO3JldHVybiBRfTtYZS5leHBvcnRzPUV9LDU3ODM1OihYZSxKZSxMKT0+e3ZhciBt''@;'; + put 'put ''ZT1MKDI5MTA2KSxCPUwoNDk0NTMpLEU9TCg3MTQ5NiksVT1MKDI1NDYpKCJzcGVjaWVzIiksUT1BcnJheTtYZS5leHBvcnRzPWZ1bmN0aW9uKFope3ZhciBpZTtyZXR1cm4gbWUoWikmJihCKGllPVouY29uc3RydWN0b3IpJiYoaWU9PT1RfHxtZShpZS5wcm90b3R5cGUpKXx8RShpZSkmJm51''@;'; + put 'put ''bGw9PT0oaWU9aWVbVV0pKSYmKGllPXZvaWQgMCksdm9pZCAwPT09aWU/UTppZX19LDMxODU3OihYZSxKZSxMKT0+e3ZhciBtZT1MKDU3ODM1KTtYZS5leHBvcnRzPWZ1bmN0aW9uKEIsRSl7cmV0dXJuIG5ldyhtZShCKSkoMD09PUU/MDpFKX19LDE4NzY6KFhlLEplLEwpPT57dmFyIG1lPUwo''@;'; + put 'put ''NTg2NDcpLEI9TCg4MDMwNyk7WGUuZXhwb3J0cz1mdW5jdGlvbihFLE1lLFUsUSl7dHJ5e3JldHVybiBRP01lKG1lKFUpWzBdLFVbMV0pOk1lKFUpfWNhdGNoKFope0IoRSwidGhyb3ciLFopfX19LDI3NzkyOihYZSxKZSxMKT0+e3ZhciBCPUwoMjU0NikoIml0ZXJhdG9yIiksRT0hMTt0cnl7''@;'; + put 'put ''dmFyIE1lPTAsVT17bmV4dDpmdW5jdGlvbigpe3JldHVybntkb25lOiEhTWUrK319LHJldHVybjpmdW5jdGlvbigpe0U9ITB9fTtVW0JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LEFycmF5LmZyb20oVSxmdW5jdGlvbigpe3Rocm93IDJ9KX1jYXRjaChRKXt9WGUuZXhwb3J0cz1mdW5jdGlv''@;'; + put 'put ''bihRLFope2lmKCFaJiYhRSlyZXR1cm4hMTt2YXIgaWU9ITE7dHJ5e3ZhciBhZT17fTthZVtCXT1mdW5jdGlvbigpe3JldHVybntuZXh0OmZ1bmN0aW9uKCl7cmV0dXJue2RvbmU6aWU9ITB9fX19LFEoYWUpfWNhdGNoKFkpe31yZXR1cm4gaWV9fSw5NDcyMzooWGUsSmUsTCk9Pnt2YXIgbWU9''@;'; + put 'put ''TCg2NjEzKSxCPW1lKHt9LnRvU3RyaW5nKSxFPW1lKCIiLnNsaWNlKTtYZS5leHBvcnRzPWZ1bmN0aW9uKE1lKXtyZXR1cm4gRShCKE1lKSw4LC0xKX19LDc5NTIwOihYZSxKZSxMKT0+e3ZhciBtZT1MKDI3NDkwKSxCPUwoMTIwMTQpLEU9TCg5NDcyMyksVT1MKDI1NDYpKCJ0b1N0cmluZ1Rh''@;'; + put 'put ''ZyIpLFE9T2JqZWN0LFo9IkFyZ3VtZW50cyI9PUUoZnVuY3Rpb24oKXtyZXR1cm4gYXJndW1lbnRzfSgpKTtYZS5leHBvcnRzPW1lP0U6ZnVuY3Rpb24oYWUpe3ZhciBZLFcsTjtyZXR1cm4gdm9pZCAwPT09YWU/IlVuZGVmaW5lZCI6bnVsbD09PWFlPyJOdWxsIjoic3RyaW5nIj09dHlwZW9m''@;'; + put 'put ''KFc9ZnVuY3Rpb24oYWUsWSl7dHJ5e3JldHVybiBhZVtZXX1jYXRjaChXKXt9fShZPVEoYWUpLFUpKT9XOlo/RShZKToiT2JqZWN0Ij09KE49RShZKSkmJkIoWS5jYWxsZWUpPyJBcmd1bWVudHMiOk59fSw0NTE0MDooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoNTExODMpLmYs''@;'; + put 'put ''Qj1MKDc0NDEwKSxFPUwoNzQwNjkpLE1lPUwoODU0OSksVT1MKDk1MjA0KSxRPUwoMjY1NDMpLFo9TCgzODQ5NyksaWU9TCg2ODMxNSksYWU9TCg4NTYyNCksWT1MKDcxODMyKS5mYXN0S2V5LFc9TCg3MjcpLE49Vy5zZXQsZWU9Vy5nZXR0ZXJGb3I7WGUuZXhwb3J0cz17Z2V0Q29uc3RydWN0''@;'; + put 'put ''b3I6ZnVuY3Rpb24ocSxKLHNlLG9lKXt2YXIgY2U9cShmdW5jdGlvbihTZSxJZSl7VShTZSxkZSksTihTZSx7dHlwZTpKLGluZGV4OkIobnVsbCksZmlyc3Q6dm9pZCAwLGxhc3Q6dm9pZCAwLHNpemU6MH0pLGFlfHwoU2Uuc2l6ZT0wKSxudWxsIT1JZSYmUShJZSxTZVtvZV0se3RoYXQ6U2Us''@;'; + put 'put ''QVNfRU5UUklFUzpzZX0pfSksZGU9Y2UucHJvdG90eXBlLHZlPWVlKEopLEFlPWZ1bmN0aW9uKFNlLEllLFRlKXt2YXIgTyx6LEVlPXZlKFNlKSxoZT1rZShTZSxJZSk7cmV0dXJuIGhlP2hlLnZhbHVlPVRlOihFZS5sYXN0PWhlPXtpbmRleDp6PVkoSWUsITApLGtleTpJZSx2YWx1ZTpUZSxw''@;'; + put 'put ''cmV2aW91czpPPUVlLmxhc3QsbmV4dDp2b2lkIDAscmVtb3ZlZDohMX0sRWUuZmlyc3R8fChFZS5maXJzdD1oZSksTyYmKE8ubmV4dD1oZSksYWU/RWUuc2l6ZSsrOlNlLnNpemUrKywiRiIhPT16JiYoRWUuaW5kZXhbel09aGUpKSxTZX0sa2U9ZnVuY3Rpb24oU2UsSWUpe3ZhciBoZSxUZT12''@;'; + put 'put ''ZShTZSksRWU9WShJZSk7aWYoIkYiIT09RWUpcmV0dXJuIFRlLmluZGV4W0VlXTtmb3IoaGU9VGUuZmlyc3Q7aGU7aGU9aGUubmV4dClpZihoZS5rZXk9PUllKXJldHVybiBoZX07cmV0dXJuIEUoZGUse2NsZWFyOmZ1bmN0aW9uKCl7Zm9yKHZhciBUZT12ZSh0aGlzKSxFZT1UZS5pbmRleCxo''@;'; + put 'put ''ZT1UZS5maXJzdDtoZTspaGUucmVtb3ZlZD0hMCxoZS5wcmV2aW91cyYmKGhlLnByZXZpb3VzPWhlLnByZXZpb3VzLm5leHQ9dm9pZCAwKSxkZWxldGUgRWVbaGUuaW5kZXhdLGhlPWhlLm5leHQ7VGUuZmlyc3Q9VGUubGFzdD12b2lkIDAsYWU/VGUuc2l6ZT0wOnRoaXMuc2l6ZT0wfSxkZWxl''@;'; + put 'put ''dGU6ZnVuY3Rpb24oU2Upe3ZhciBUZT12ZSh0aGlzKSxFZT1rZSh0aGlzLFNlKTtpZihFZSl7dmFyIGhlPUVlLm5leHQsTz1FZS5wcmV2aW91cztkZWxldGUgVGUuaW5kZXhbRWUuaW5kZXhdLEVlLnJlbW92ZWQ9ITAsTyYmKE8ubmV4dD1oZSksaGUmJihoZS5wcmV2aW91cz1PKSxUZS5maXJz''@;'; + put 'put ''dD09RWUmJihUZS5maXJzdD1oZSksVGUubGFzdD09RWUmJihUZS5sYXN0PU8pLGFlP1RlLnNpemUtLTp0aGlzLnNpemUtLX1yZXR1cm4hIUVlfSxmb3JFYWNoOmZ1bmN0aW9uKEllKXtmb3IodmFyIGhlLFRlPXZlKHRoaXMpLEVlPU1lKEllLGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNb''@;'; + put 'put ''MV06dm9pZCAwKTtoZT1oZT9oZS5uZXh0OlRlLmZpcnN0Oylmb3IoRWUoaGUudmFsdWUsaGUua2V5LHRoaXMpO2hlJiZoZS5yZW1vdmVkOyloZT1oZS5wcmV2aW91c30saGFzOmZ1bmN0aW9uKEllKXtyZXR1cm4hIWtlKHRoaXMsSWUpfX0pLEUoZGUsc2U/e2dldDpmdW5jdGlvbihJZSl7dmFy''@;'; + put 'put ''IFRlPWtlKHRoaXMsSWUpO3JldHVybiBUZSYmVGUudmFsdWV9LHNldDpmdW5jdGlvbihJZSxUZSl7cmV0dXJuIEFlKHRoaXMsMD09PUllPzA6SWUsVGUpfX06e2FkZDpmdW5jdGlvbihJZSl7cmV0dXJuIEFlKHRoaXMsSWU9MD09PUllPzA6SWUsSWUpfX0pLGFlJiZtZShkZSwic2l6ZSIse2dl''@;'; + put 'put ''dDpmdW5jdGlvbigpe3JldHVybiB2ZSh0aGlzKS5zaXplfX0pLGNlfSxzZXRTdHJvbmc6ZnVuY3Rpb24ocSxKLHNlKXt2YXIgb2U9SisiIEl0ZXJhdG9yIixjZT1lZShKKSxkZT1lZShvZSk7WihxLEosZnVuY3Rpb24odmUsQWUpe04odGhpcyx7dHlwZTpvZSx0YXJnZXQ6dmUsc3RhdGU6Y2Uo''@;'; + put 'put ''dmUpLGtpbmQ6QWUsbGFzdDp2b2lkIDB9KX0sZnVuY3Rpb24oKXtmb3IodmFyIHZlPWRlKHRoaXMpLEFlPXZlLmtpbmQsa2U9dmUubGFzdDtrZSYma2UucmVtb3ZlZDspa2U9a2UucHJldmlvdXM7cmV0dXJuIHZlLnRhcmdldCYmKHZlLmxhc3Q9a2U9a2U/a2UubmV4dDp2ZS5zdGF0ZS5maXJz''@;'; + put 'put ''dCk/ImtleXMiPT1BZT97dmFsdWU6a2Uua2V5LGRvbmU6ITF9OiJ2YWx1ZXMiPT1BZT97dmFsdWU6a2UudmFsdWUsZG9uZTohMX06e3ZhbHVlOltrZS5rZXksa2UudmFsdWVdLGRvbmU6ITF9Oih2ZS50YXJnZXQ9dm9pZCAwLHt2YWx1ZTp2b2lkIDAsZG9uZTohMH0pfSxzZT8iZW50cmllcyI6''@;'; + put 'put ''InZhbHVlcyIsIXNlLCEwKSxpZShKKX19fSw0Mjk2OTooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoNjYxMyksQj1MKDc0MDY5KSxFPUwoNzE4MzIpLmdldFdlYWtEYXRhLE1lPUwoNTg2NDcpLFU9TCg3MTQ5NiksUT1MKDk1MjA0KSxaPUwoMjY1NDMpLGllPUwoOTU2NjkpLGFl''@;'; + put 'put ''PUwoNDg4MTEpLFk9TCg3MjcpLFc9WS5zZXQsTj1ZLmdldHRlckZvcixlZT1pZS5maW5kLHE9aWUuZmluZEluZGV4LEo9bWUoW10uc3BsaWNlKSxzZT0wLG9lPWZ1bmN0aW9uKHZlKXtyZXR1cm4gdmUuZnJvemVufHwodmUuZnJvemVuPW5ldyBjZSl9LGNlPWZ1bmN0aW9uKCl7dGhpcy5lbnRy''@;'; + put 'put ''aWVzPVtdfSxkZT1mdW5jdGlvbih2ZSxBZSl7cmV0dXJuIGVlKHZlLmVudHJpZXMsZnVuY3Rpb24oa2Upe3JldHVybiBrZVswXT09PUFlfSl9O2NlLnByb3RvdHlwZT17Z2V0OmZ1bmN0aW9uKHZlKXt2YXIgQWU9ZGUodGhpcyx2ZSk7aWYoQWUpcmV0dXJuIEFlWzFdfSxoYXM6ZnVuY3Rpb24o''@;'; + put 'put ''dmUpe3JldHVybiEhZGUodGhpcyx2ZSl9LHNldDpmdW5jdGlvbih2ZSxBZSl7dmFyIGtlPWRlKHRoaXMsdmUpO2tlP2tlWzFdPUFlOnRoaXMuZW50cmllcy5wdXNoKFt2ZSxBZV0pfSxkZWxldGU6ZnVuY3Rpb24odmUpe3ZhciBBZT1xKHRoaXMuZW50cmllcyxmdW5jdGlvbihrZSl7cmV0dXJu''@;'; + put 'put ''IGtlWzBdPT09dmV9KTtyZXR1cm5+QWUmJkoodGhpcy5lbnRyaWVzLEFlLDEpLCEhfkFlfX0sWGUuZXhwb3J0cz17Z2V0Q29uc3RydWN0b3I6ZnVuY3Rpb24odmUsQWUsa2UsU2Upe3ZhciBJZT12ZShmdW5jdGlvbihPLHope1EoTyxUZSksVyhPLHt0eXBlOkFlLGlkOnNlKyssZnJvemVuOnZv''@;'; + put 'put ''aWQgMH0pLG51bGwhPXomJlooeixPW1NlXSx7dGhhdDpPLEFTX0VOVFJJRVM6a2V9KX0pLFRlPUllLnByb3RvdHlwZSxFZT1OKEFlKSxoZT1mdW5jdGlvbihPLHosbmUpe3ZhciB0ZT1FZShPKSx4PUUoTWUoeiksITApO3JldHVybiEwPT09eD9vZSh0ZSkuc2V0KHosbmUpOnhbdGUuaWRdPW5l''@;'; + put 'put ''LE99O3JldHVybiBCKFRlLHtkZWxldGU6ZnVuY3Rpb24oTyl7dmFyIHo9RWUodGhpcyk7aWYoIVUoTykpcmV0dXJuITE7dmFyIG5lPUUoTyk7cmV0dXJuITA9PT1uZT9vZSh6KS5kZWxldGUoTyk6bmUmJmFlKG5lLHouaWQpJiZkZWxldGUgbmVbei5pZF19LGhhczpmdW5jdGlvbih6KXt2YXIg''@;'; + put 'put ''bmU9RWUodGhpcyk7aWYoIVUoeikpcmV0dXJuITE7dmFyIHRlPUUoeik7cmV0dXJuITA9PT10ZT9vZShuZSkuaGFzKHopOnRlJiZhZSh0ZSxuZS5pZCl9fSksQihUZSxrZT97Z2V0OmZ1bmN0aW9uKHope3ZhciBuZT1FZSh0aGlzKTtpZihVKHopKXt2YXIgdGU9RSh6KTtyZXR1cm4hMD09PXRl''@;'; + put 'put ''P29lKG5lKS5nZXQoeik6dGU/dGVbbmUuaWRdOnZvaWQgMH19LHNldDpmdW5jdGlvbih6LG5lKXtyZXR1cm4gaGUodGhpcyx6LG5lKX19OnthZGQ6ZnVuY3Rpb24oeil7cmV0dXJuIGhlKHRoaXMseiwhMCl9fSksSWV9fX0sNDY4NTc6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1M''@;'; + put 'put ''KDg1NjQ4KSxCPUwoNzA3MDUpLEU9TCg2NjEzKSxNZT1MKDY3NTA3KSxVPUwoMjU2NjYpLFE9TCg3MTgzMiksWj1MKDI2NTQzKSxpZT1MKDk1MjA0KSxhZT1MKDEyMDE0KSxZPUwoNzE0OTYpLFc9TCgyMzUyMyksTj1MKDI3NzkyKSxlZT1MKDU1OTY4KSxxPUwoNTE4NDkpO1hlLmV4cG9ydHM9''@;'; + put 'put ''ZnVuY3Rpb24oSixzZSxvZSl7dmFyIGNlPS0xIT09Si5pbmRleE9mKCJNYXAiKSxkZT0tMSE9PUouaW5kZXhPZigiV2VhayIpLHZlPWNlPyJzZXQiOiJhZGQiLEFlPUJbSl0sa2U9QWUmJkFlLnByb3RvdHlwZSxTZT1BZSxJZT17fSxUZT1mdW5jdGlvbih4KXt2YXIgUD1FKGtlW3hdKTtVKGtl''@;'; + put 'put ''LHgsImFkZCI9PXg/ZnVuY3Rpb24oVCl7cmV0dXJuIFAodGhpcywwPT09VD8wOlQpLHRoaXN9OiJkZWxldGUiPT14P2Z1bmN0aW9uKFYpe3JldHVybiEoZGUmJiFZKFYpKSYmUCh0aGlzLDA9PT1WPzA6Vil9OiJnZXQiPT14P2Z1bmN0aW9uKFQpe3JldHVybiBkZSYmIVkoVCk/dm9pZCAwOlAo''@;'; + put 'put ''dGhpcywwPT09VD8wOlQpfToiaGFzIj09eD9mdW5jdGlvbihUKXtyZXR1cm4hKGRlJiYhWShUKSkmJlAodGhpcywwPT09VD8wOlQpfTpmdW5jdGlvbihULFMpe3JldHVybiBQKHRoaXMsMD09PVQ/MDpULFMpLHRoaXN9KX07aWYoTWUoSiwhYWUoQWUpfHwhKGRlfHxrZS5mb3JFYWNoJiYhVyhm''@;'; + put 'put ''dW5jdGlvbigpeyhuZXcgQWUpLmVudHJpZXMoKS5uZXh0KCl9KSkpKVNlPW9lLmdldENvbnN0cnVjdG9yKHNlLEosY2UsdmUpLFEuZW5hYmxlKCk7ZWxzZSBpZihNZShKLCEwKSl7dmFyIGhlPW5ldyBTZSxPPWhlW3ZlXShkZT97fTotMCwxKSE9aGUsej1XKGZ1bmN0aW9uKCl7aGUuaGFzKDEp''@;'; + put 'put ''fSksbmU9TihmdW5jdGlvbih4KXtuZXcgQWUoeCl9KSx0ZT0hZGUmJlcoZnVuY3Rpb24oKXtmb3IodmFyIHg9bmV3IEFlLFA9NTtQLS07KXhbdmVdKFAsUCk7cmV0dXJuIXguaGFzKC0wKX0pO25lfHwoKFNlPXNlKGZ1bmN0aW9uKHgsUCl7aWUoeCxrZSk7dmFyIFY9cShuZXcgQWUseCxTZSk7''@;'; + put 'put ''cmV0dXJuIG51bGwhPVAmJlooUCxWW3ZlXSx7dGhhdDpWLEFTX0VOVFJJRVM6Y2V9KSxWfSkpLnByb3RvdHlwZT1rZSxrZS5jb25zdHJ1Y3Rvcj1TZSksKHp8fHRlKSYmKFRlKCJkZWxldGUiKSxUZSgiaGFzIiksY2UmJlRlKCJnZXQiKSksKHRlfHxPKSYmVGUodmUpLGRlJiZrZS5jbGVhciYm''@;'; + put 'put ''ZGVsZXRlIGtlLmNsZWFyfXJldHVybiBJZVtKXT1TZSxtZSh7Z2xvYmFsOiEwLGNvbnN0cnVjdG9yOiEwLGZvcmNlZDpTZSE9QWV9LEllKSxlZShTZSxKKSxkZXx8b2Uuc2V0U3Ryb25nKFNlLEosY2UpLFNlfX0sNzc1NDg6KFhlLEplLEwpPT57dmFyIG1lPUwoNDg4MTEpLEI9TCgyMTE5OSks''@;'; + put 'put ''RT1MKDQ3OTg3KSxNZT1MKDUxMTgzKTtYZS5leHBvcnRzPWZ1bmN0aW9uKFUsUSxaKXtmb3IodmFyIGllPUIoUSksYWU9TWUuZixZPUUuZixXPTA7VzxpZS5sZW5ndGg7VysrKXt2YXIgTj1pZVtXXTshbWUoVSxOKSYmKCFafHwhbWUoWixOKSkmJmFlKFUsTixZKFEsTikpfX19LDc2NTcxOihY''@;'; + put 'put ''ZSxKZSxMKT0+e3ZhciBCPUwoMjU0NikoIm1hdGNoIik7WGUuZXhwb3J0cz1mdW5jdGlvbihFKXt2YXIgTWU9Ly4vO3RyeXsiLy4vIltFXShNZSl9Y2F0Y2goVSl7dHJ5e3JldHVybiBNZVtCXT0hMSwiLy4vIltFXShNZSl9Y2F0Y2goUSl7fX1yZXR1cm4hMX19LDQ2MDg2OihYZSxKZSxMKT0+''@;'; + put 'put ''e3ZhciBtZT1MKDIzNTIzKTtYZS5leHBvcnRzPSFtZShmdW5jdGlvbigpe2Z1bmN0aW9uIEIoKXt9cmV0dXJuIEIucHJvdG90eXBlLmNvbnN0cnVjdG9yPW51bGwsT2JqZWN0LmdldFByb3RvdHlwZU9mKG5ldyBCKSE9PUIucHJvdG90eXBlfSl9LDk1MTEwOihYZSxKZSxMKT0+e3ZhciBtZT1M''@;'; + put 'put ''KDY2MTMpLEI9TCgyNDU3MiksRT1MKDkyMSksTWU9LyIvZyxVPW1lKCIiLnJlcGxhY2UpO1hlLmV4cG9ydHM9ZnVuY3Rpb24oUSxaLGllLGFlKXt2YXIgWT1FKEIoUSkpLFc9IjwiK1o7cmV0dXJuIiIhPT1pZSYmKFcrPSIgIitpZSsnPSInK1UoRShhZSksTWUsIiZxdW90OyIpKyciJyksVysi''@;'; + put 'put ''PiIrWSsiPC8iK1orIj4ifX0sOTc4OTU6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDE4NTQ2KS5JdGVyYXRvclByb3RvdHlwZSxCPUwoNzQ0MTApLEU9TCg3MzkyMCksTWU9TCg1NTk2OCksVT1MKDk1MjU3KSxRPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9O1hlLmV4cG9ydHM9''@;'; + put 'put ''ZnVuY3Rpb24oWixpZSxhZSxZKXt2YXIgVz1pZSsiIEl0ZXJhdG9yIjtyZXR1cm4gWi5wcm90b3R5cGU9QihtZSx7bmV4dDpFKCshWSxhZSl9KSxNZShaLFcsITEsITApLFVbV109USxafX0sMTYwMTc6KFhlLEplLEwpPT57dmFyIG1lPUwoODU2MjQpLEI9TCg1MTE4MyksRT1MKDczOTIwKTtY''@;'; + put 'put ''ZS5leHBvcnRzPW1lP2Z1bmN0aW9uKE1lLFUsUSl7cmV0dXJuIEIuZihNZSxVLEUoMSxRKSl9OmZ1bmN0aW9uKE1lLFUsUSl7cmV0dXJuIE1lW1VdPVEsTWV9fSw3MzkyMDpYZT0+e1hlLmV4cG9ydHM9ZnVuY3Rpb24oSmUsTCl7cmV0dXJue2VudW1lcmFibGU6ISgxJkplKSxjb25maWd1cmFi''@;'; + put 'put ''bGU6ISgyJkplKSx3cml0YWJsZTohKDQmSmUpLHZhbHVlOkx9fX0sOTUwMDQ6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDg0MDk0KSxCPUwoNTExODMpLEU9TCg3MzkyMCk7WGUuZXhwb3J0cz1mdW5jdGlvbihNZSxVLFEpe3ZhciBaPW1lKFUpO1ogaW4gTWU/Qi5mKE1lLFos''@;'; + put 'put ''RSgwLFEpKTpNZVtaXT1RfX0sMjU2NjY6KFhlLEplLEwpPT57dmFyIG1lPUwoMTIwMTQpLEI9TCg1MTE4MyksRT1MKDM0NDY4KSxNZT1MKDczNDcwKTtYZS5leHBvcnRzPWZ1bmN0aW9uKFUsUSxaLGllKXtpZXx8KGllPXt9KTt2YXIgYWU9aWUuZW51bWVyYWJsZSxZPXZvaWQgMCE9PWllLm5h''@;'; + put 'put ''bWU/aWUubmFtZTpRO2lmKG1lKFopJiZFKFosWSxpZSksaWUuZ2xvYmFsKWFlP1VbUV09WjpNZShRLFopO2Vsc2V7dHJ5e2llLnVuc2FmZT9VW1FdJiYoYWU9ITApOmRlbGV0ZSBVW1FdfWNhdGNoKFcpe31hZT9VW1FdPVo6Qi5mKFUsUSx7dmFsdWU6WixlbnVtZXJhYmxlOiExLGNvbmZpZ3Vy''@;'; + put 'put ''YWJsZTohaWUubm9uQ29uZmlndXJhYmxlLHdyaXRhYmxlOiFpZS5ub25Xcml0YWJsZX0pfXJldHVybiBVfX0sNzQwNjk6KFhlLEplLEwpPT57dmFyIG1lPUwoMjU2NjYpO1hlLmV4cG9ydHM9ZnVuY3Rpb24oQixFLE1lKXtmb3IodmFyIFUgaW4gRSltZShCLFUsRVtVXSxNZSk7cmV0dXJuIEJ9''@;'; + put 'put ''fSw3MzQ3MDooWGUsSmUsTCk9Pnt2YXIgbWU9TCg3MDcwNSksQj1PYmplY3QuZGVmaW5lUHJvcGVydHk7WGUuZXhwb3J0cz1mdW5jdGlvbihFLE1lKXt0cnl7QihtZSxFLHt2YWx1ZTpNZSxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KX1jYXRjaChVKXttZVtFXT1NZX1yZXR1cm4gTWV9''@;'; + put 'put ''fSwzODQ5NzooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoODU2NDgpLEI9TCgzNTYyKSxFPUwoMTAwMTcpLE1lPUwoMTM4NjkpLFU9TCgxMjAxNCksUT1MKDk3ODk1KSxaPUwoODI3MzMpLGllPUwoMTk1ODcpLGFlPUwoNTU5NjgpLFk9TCgxNjAxNyksVz1MKDI1NjY2KSxOPUwo''@;'; + put 'put ''MjU0NiksZWU9TCg5NTI1NykscT1MKDE4NTQ2KSxKPU1lLlBST1BFUixzZT1NZS5DT05GSUdVUkFCTEUsb2U9cS5JdGVyYXRvclByb3RvdHlwZSxjZT1xLkJVR0dZX1NBRkFSSV9JVEVSQVRPUlMsZGU9TigiaXRlcmF0b3IiKSxBZT0idmFsdWVzIixrZT0iZW50cmllcyIsU2U9ZnVuY3Rpb24o''@;'; + put 'put ''KXtyZXR1cm4gdGhpc307WGUuZXhwb3J0cz1mdW5jdGlvbihJZSxUZSxFZSxoZSxPLHosbmUpe1EoRWUsVGUsaGUpO3ZhciB5ZSxDZSxEZSx0ZT1mdW5jdGlvbihQZSl7aWYoUGU9PT1PJiZTKXJldHVybiBTO2lmKCFjZSYmUGUgaW4gVilyZXR1cm4gVltQZV07c3dpdGNoKFBlKXtjYXNlImtl''@;'; + put 'put ''eXMiOmNhc2UgQWU6Y2FzZSBrZTpyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gbmV3IEVlKHRoaXMsUGUpfX1yZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gbmV3IEVlKHRoaXMpfX0seD1UZSsiIEl0ZXJhdG9yIixQPSExLFY9SWUucHJvdG90eXBlLFQ9VltkZV18fFZbIkBAaXRlcmF0b3IiXXx8''@;'; + put 'put ''TyYmVltPXSxTPSFjZSYmVHx8dGUoTyksRj0iQXJyYXkiPT1UZSYmVi5lbnRyaWVzfHxUO2lmKEYmJih5ZT1aKEYuY2FsbChuZXcgSWUpKSkhPT1PYmplY3QucHJvdG90eXBlJiZ5ZS5uZXh0JiYoIUUmJlooeWUpIT09b2UmJihpZT9pZSh5ZSxvZSk6VSh5ZVtkZV0pfHxXKHllLGRlLFNlKSks''@;'; + put 'put ''YWUoeWUseCwhMCwhMCksRSYmKGVlW3hdPVNlKSksSiYmTz09QWUmJlQmJlQubmFtZSE9PUFlJiYoIUUmJnNlP1koViwibmFtZSIsQWUpOihQPSEwLFM9ZnVuY3Rpb24oKXtyZXR1cm4gQihULHRoaXMpfSkpLE8paWYoQ2U9e3ZhbHVlczp0ZShBZSksa2V5czp6P1M6dGUoImtleXMiKSxlbnRy''@;'; + put 'put ''aWVzOnRlKGtlKX0sbmUpZm9yKERlIGluIENlKShjZXx8UHx8IShEZSBpbiBWKSkmJlcoVixEZSxDZVtEZV0pO2Vsc2UgbWUoe3RhcmdldDpUZSxwcm90bzohMCxmb3JjZWQ6Y2V8fFB9LENlKTtyZXR1cm4oIUV8fG5lKSYmVltkZV0hPT1TJiZXKFYsZGUsUyx7bmFtZTpPfSksZWVbVGVdPVMs''@;'; + put 'put ''Q2V9fSwzOTIzNTooWGUsSmUsTCk9Pnt2YXIgbWU9TCg5MjczMyksQj1MKDQ4ODExKSxFPUwoMjgxMSksTWU9TCg1MTE4MykuZjtYZS5leHBvcnRzPWZ1bmN0aW9uKFUpe3ZhciBRPW1lLlN5bWJvbHx8KG1lLlN5bWJvbD17fSk7QihRLFUpfHxNZShRLFUse3ZhbHVlOkUuZihVKX0pfX0sNDYy''@;'; + put 'put ''ODooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoOTQ2NzYpLEI9VHlwZUVycm9yO1hlLmV4cG9ydHM9ZnVuY3Rpb24oRSxNZSl7aWYoIWRlbGV0ZSBFW01lXSl0aHJvdyBCKCJDYW5ub3QgZGVsZXRlIHByb3BlcnR5ICIrbWUoTWUpKyIgb2YgIittZShFKSl9fSw4NTYyNDooWGUs''@;'; + put 'put ''SmUsTCk9Pnt2YXIgbWU9TCgyMzUyMyk7WGUuZXhwb3J0cz0hbWUoZnVuY3Rpb24oKXtyZXR1cm4gNyE9T2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LDEse2dldDpmdW5jdGlvbigpe3JldHVybiA3fX0pWzFdfSl9LDQ2MzEzOihYZSxKZSxMKT0+e3ZhciBtZT1MKDcwNzA1KSxCPUwoNzE0OTYp''@;'; + put 'put ''LEU9bWUuZG9jdW1lbnQsTWU9QihFKSYmQihFLmNyZWF0ZUVsZW1lbnQpO1hlLmV4cG9ydHM9ZnVuY3Rpb24oVSl7cmV0dXJuIE1lP0UuY3JlYXRlRWxlbWVudChVKTp7fX19LDIzMTI0OlhlPT57dmFyIEplPVR5cGVFcnJvcjtYZS5leHBvcnRzPWZ1bmN0aW9uKG1lKXtpZihtZT45MDA3MTk5''@;'; + put 'put ''MjU0NzQwOTkxKXRocm93IEplKCJNYXhpbXVtIGFsbG93ZWQgaW5kZXggZXhjZWVkZWQiKTtyZXR1cm4gbWV9fSwxOTIzMTpYZT0+e1hlLmV4cG9ydHM9e0NTU1J1bGVMaXN0OjAsQ1NTU3R5bGVEZWNsYXJhdGlvbjowLENTU1ZhbHVlTGlzdDowLENsaWVudFJlY3RMaXN0OjAsRE9NUmVjdExp''@;'; + put 'put ''c3Q6MCxET01TdHJpbmdMaXN0OjAsRE9NVG9rZW5MaXN0OjEsRGF0YVRyYW5zZmVySXRlbUxpc3Q6MCxGaWxlTGlzdDowLEhUTUxBbGxDb2xsZWN0aW9uOjAsSFRNTENvbGxlY3Rpb246MCxIVE1MRm9ybUVsZW1lbnQ6MCxIVE1MU2VsZWN0RWxlbWVudDowLE1lZGlhTGlzdDowLE1pbWVUeXBl''@;'; + put 'put ''QXJyYXk6MCxOYW1lZE5vZGVNYXA6MCxOb2RlTGlzdDoxLFBhaW50UmVxdWVzdExpc3Q6MCxQbHVnaW46MCxQbHVnaW5BcnJheTowLFNWR0xlbmd0aExpc3Q6MCxTVkdOdW1iZXJMaXN0OjAsU1ZHUGF0aFNlZ0xpc3Q6MCxTVkdQb2ludExpc3Q6MCxTVkdTdHJpbmdMaXN0OjAsU1ZHVHJhbnNm''@;'; + put 'put ''b3JtTGlzdDowLFNvdXJjZUJ1ZmZlckxpc3Q6MCxTdHlsZVNoZWV0TGlzdDowLFRleHRUcmFja0N1ZUxpc3Q6MCxUZXh0VHJhY2tMaXN0OjAsVG91Y2hMaXN0OjB9fSwyOTkxMDooWGUsSmUsTCk9Pnt2YXIgQj1MKDQ2MzEzKSgic3BhbiIpLmNsYXNzTGlzdCxFPUImJkIuY29uc3RydWN0b3Im''@;'; + put 'put ''JkIuY29uc3RydWN0b3IucHJvdG90eXBlO1hlLmV4cG9ydHM9RT09PU9iamVjdC5wcm90b3R5cGU/dm9pZCAwOkV9LDc1NzA2OihYZSxKZSxMKT0+e3ZhciBCPUwoNzc4MzkpLm1hdGNoKC9maXJlZm94XC8oXGQrKS9pKTtYZS5leHBvcnRzPSEhQiYmK0JbMV19LDk4ODY6KFhlLEplLEwpPT57''@;'; + put 'put ''dmFyIG1lPUwoNzc4MzkpO1hlLmV4cG9ydHM9L01TSUV8VHJpZGVudC8udGVzdChtZSl9LDc4NTIwOihYZSxKZSxMKT0+e3ZhciBtZT1MKDc3ODM5KTtYZS5leHBvcnRzPS8oPzppcGFkfGlwaG9uZXxpcG9kKS4qYXBwbGV3ZWJraXQvaS50ZXN0KG1lKX0sODcyNDQ6KFhlLEplLEwpPT57dmFy''@;'; + put 'put ''IG1lPUwoOTQ3MjMpLEI9TCg3MDcwNSk7WGUuZXhwb3J0cz0icHJvY2VzcyI9PW1lKEIucHJvY2Vzcyl9LDc3ODM5OihYZSxKZSxMKT0+e3ZhciBtZT1MKDQ2NjkzKTtYZS5leHBvcnRzPW1lKCJuYXZpZ2F0b3IiLCJ1c2VyQWdlbnQiKXx8IiJ9LDI5Mzg1OihYZSxKZSxMKT0+e3ZhciBaLGll''@;'; + put 'put ''LG1lPUwoNzA3MDUpLEI9TCg3NzgzOSksRT1tZS5wcm9jZXNzLE1lPW1lLkRlbm8sVT1FJiZFLnZlcnNpb25zfHxNZSYmTWUudmVyc2lvbixRPVUmJlUudjg7USYmKGllPShaPVEuc3BsaXQoIi4iKSlbMF0+MCYmWlswXTw0PzE6KyhaWzBdK1pbMV0pKSwhaWUmJkImJighKFo9Qi5tYXRjaCgv''@;'; + put 'put ''RWRnZVwvKFxkKykvKSl8fFpbMV0+PTc0KSYmKFo9Qi5tYXRjaCgvQ2hyb21lXC8oXGQrKS8pKSYmKGllPStaWzFdKSxYZS5leHBvcnRzPWllfSw5NjM0OihYZSxKZSxMKT0+e3ZhciBCPUwoNzc4MzkpLm1hdGNoKC9BcHBsZVdlYktpdFwvKFxkKylcLi8pO1hlLmV4cG9ydHM9ISFCJiYrQlsx''@;'; + put 'put ''XX0sNDc4MzM6WGU9PntYZS5leHBvcnRzPVsiY29uc3RydWN0b3IiLCJoYXNPd25Qcm9wZXJ0eSIsImlzUHJvdG90eXBlT2YiLCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsInRvTG9jYWxlU3RyaW5nIiwidG9TdHJpbmciLCJ2YWx1ZU9mIl19LDg1NjQ4OihYZSxKZSxMKT0+e3ZhciBtZT1MKDcw''@;'; + put 'put ''NzA1KSxCPUwoNDc5ODcpLmYsRT1MKDE2MDE3KSxNZT1MKDI1NjY2KSxVPUwoNzM0NzApLFE9TCg3NzU0OCksWj1MKDY3NTA3KTtYZS5leHBvcnRzPWZ1bmN0aW9uKGllLGFlKXt2YXIgcSxKLHNlLG9lLGNlLFk9aWUudGFyZ2V0LFc9aWUuZ2xvYmFsLE49aWUuc3RhdDtpZihxPVc/bWU6Tj9t''@;'; + put 'put ''ZVtZXXx8VShZLHt9KToobWVbWV18fHt9KS5wcm90b3R5cGUpZm9yKEogaW4gYWUpe2lmKG9lPWFlW0pdLHNlPWllLmRvbnRDYWxsR2V0U2V0PyhjZT1CKHEsSikpJiZjZS52YWx1ZTpxW0pdLCFaKFc/SjpZKyhOPyIuIjoiIyIpK0osaWUuZm9yY2VkKSYmdm9pZCAwIT09c2Upe2lmKHR5cGVv''@;'; + put 'put ''ZiBvZT09dHlwZW9mIHNlKWNvbnRpbnVlO1Eob2Usc2UpfShpZS5zaGFtfHxzZSYmc2Uuc2hhbSkmJkUob2UsInNoYW0iLCEwKSxNZShxLEosb2UsaWUpfX19LDIzNTIzOlhlPT57WGUuZXhwb3J0cz1mdW5jdGlvbihKZSl7dHJ5e3JldHVybiEhSmUoKX1jYXRjaChMKXtyZXR1cm4hMH19fSwy''@;'; + put 'put ''MjgxNDooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7TCg0Mjc2MCk7dmFyIG1lPUwoNjYxMyksQj1MKDI1NjY2KSxFPUwoMjIyMzQpLE1lPUwoMjM1MjMpLFU9TCgyNTQ2KSxRPUwoMTYwMTcpLFo9VSgic3BlY2llcyIpLGllPVJlZ0V4cC5wcm90b3R5cGU7WGUuZXhwb3J0cz1mdW5jdGlvbihh''@;'; + put 'put ''ZSxZLFcsTil7dmFyIGVlPVUoYWUpLHE9IU1lKGZ1bmN0aW9uKCl7dmFyIGNlPXt9O3JldHVybiBjZVtlZV09ZnVuY3Rpb24oKXtyZXR1cm4gN30sNyE9IiJbYWVdKGNlKX0pLEo9cSYmIU1lKGZ1bmN0aW9uKCl7dmFyIGNlPSExLGRlPS9hLztyZXR1cm4ic3BsaXQiPT09YWUmJigoZGU9e30p''@;'; + put 'put ''LmNvbnN0cnVjdG9yPXt9LGRlLmNvbnN0cnVjdG9yW1pdPWZ1bmN0aW9uKCl7cmV0dXJuIGRlfSxkZS5mbGFncz0iIixkZVtlZV09Ly4vW2VlXSksZGUuZXhlYz1mdW5jdGlvbigpe3JldHVybiBjZT0hMCxudWxsfSxkZVtlZV0oIiIpLCFjZX0pO2lmKCFxfHwhSnx8Vyl7dmFyIHNlPW1lKC8u''@;'; + put 'put ''L1tlZV0pLG9lPVkoZWUsIiJbYWVdLGZ1bmN0aW9uKGNlLGRlLHZlLEFlLGtlKXt2YXIgU2U9bWUoY2UpLEllPWRlLmV4ZWM7cmV0dXJuIEllPT09RXx8SWU9PT1pZS5leGVjP3EmJiFrZT97ZG9uZTohMCx2YWx1ZTpzZShkZSx2ZSxBZSl9Ontkb25lOiEwLHZhbHVlOlNlKHZlLGRlLEFlKX06''@;'; + put 'put ''e2RvbmU6ITF9fSk7QihTdHJpbmcucHJvdG90eXBlLGFlLG9lWzBdKSxCKGllLGVlLG9lWzFdKX1OJiZRKGllW2VlXSwic2hhbSIsITApfX0sMTI1NjY6KFhlLEplLEwpPT57dmFyIG1lPUwoMjM1MjMpO1hlLmV4cG9ydHM9IW1lKGZ1bmN0aW9uKCl7cmV0dXJuIE9iamVjdC5pc0V4dGVuc2li''@;'; + put 'put ''bGUoT2JqZWN0LnByZXZlbnRFeHRlbnNpb25zKHt9KSl9KX0sMTEzMDY6KFhlLEplLEwpPT57dmFyIG1lPUwoMzY1NjEpLEI9RnVuY3Rpb24ucHJvdG90eXBlLEU9Qi5hcHBseSxNZT1CLmNhbGw7WGUuZXhwb3J0cz0ib2JqZWN0Ij09dHlwZW9mIFJlZmxlY3QmJlJlZmxlY3QuYXBwbHl8fCht''@;'; + put 'put ''ZT9NZS5iaW5kKEUpOmZ1bmN0aW9uKCl7cmV0dXJuIE1lLmFwcGx5KEUsYXJndW1lbnRzKX0pfSw4NTQ5OihYZSxKZSxMKT0+e3ZhciBtZT1MKDY2MTMpLEI9TCg4MTQ1MCksRT1MKDM2NTYxKSxNZT1tZShtZS5iaW5kKTtYZS5leHBvcnRzPWZ1bmN0aW9uKFUsUSl7cmV0dXJuIEIoVSksdm9p''@;'; + put 'put ''ZCAwPT09UT9VOkU/TWUoVSxRKTpmdW5jdGlvbigpe3JldHVybiBVLmFwcGx5KFEsYXJndW1lbnRzKX19fSwzNjU2MTooWGUsSmUsTCk9Pnt2YXIgbWU9TCgyMzUyMyk7WGUuZXhwb3J0cz0hbWUoZnVuY3Rpb24oKXt2YXIgQj1mdW5jdGlvbigpe30uYmluZCgpO3JldHVybiJmdW5jdGlvbiIh''@;'; + put 'put ''PXR5cGVvZiBCfHxCLmhhc093blByb3BlcnR5KCJwcm90b3R5cGUiKX0pfSw2OTg5OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCg2NjEzKSxCPUwoODE0NTApLEU9TCg3MTQ5NiksTWU9TCg0ODgxMSksVT1MKDQwOTMwKSxRPUwoMzY1NjEpLFo9RnVuY3Rpb24saWU9bWUoW10u''@;'; + put 'put ''Y29uY2F0KSxhZT1tZShbXS5qb2luKSxZPXt9LFc9ZnVuY3Rpb24oTixlZSxxKXtpZighTWUoWSxlZSkpe2Zvcih2YXIgSj1bXSxzZT0wO3NlPGVlO3NlKyspSltzZV09ImFbIitzZSsiXSI7WVtlZV09WigiQyxhIiwicmV0dXJuIG5ldyBDKCIrYWUoSiwiLCIpKyIpIil9cmV0dXJuIFlbZWVd''@;'; + put 'put ''KE4scSl9O1hlLmV4cG9ydHM9UT9aLmJpbmQ6ZnVuY3Rpb24oZWUpe3ZhciBxPUIodGhpcyksSj1xLnByb3RvdHlwZSxzZT1VKGFyZ3VtZW50cywxKSxvZT1mdW5jdGlvbigpe3ZhciBkZT1pZShzZSxVKGFyZ3VtZW50cykpO3JldHVybiB0aGlzIGluc3RhbmNlb2Ygb2U/VyhxLGRlLmxlbmd0''@;'; + put 'put ''aCxkZSk6cS5hcHBseShlZSxkZSl9O3JldHVybiBFKEopJiYob2UucHJvdG90eXBlPUopLG9lfX0sMzU2MjooWGUsSmUsTCk9Pnt2YXIgbWU9TCgzNjU2MSksQj1GdW5jdGlvbi5wcm90b3R5cGUuY2FsbDtYZS5leHBvcnRzPW1lP0IuYmluZChCKTpmdW5jdGlvbigpe3JldHVybiBCLmFwcGx5''@;'; + put 'put ''KEIsYXJndW1lbnRzKX19LDEzODY5OihYZSxKZSxMKT0+e3ZhciBtZT1MKDg1NjI0KSxCPUwoNDg4MTEpLEU9RnVuY3Rpb24ucHJvdG90eXBlLE1lPW1lJiZPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLFU9QihFLCJuYW1lIiksUT1VJiYic29tZXRoaW5nIj09PWZ1bmN0aW9uKCl7''@;'; + put 'put ''fS5uYW1lLFo9VSYmKCFtZXx8bWUmJk1lKEUsIm5hbWUiKS5jb25maWd1cmFibGUpO1hlLmV4cG9ydHM9e0VYSVNUUzpVLFBST1BFUjpRLENPTkZJR1VSQUJMRTpafX0sNjYxMzooWGUsSmUsTCk9Pnt2YXIgbWU9TCgzNjU2MSksQj1GdW5jdGlvbi5wcm90b3R5cGUsTWU9Qi5jYWxsLFU9bWUm''@;'; + put 'put ''JkIuYmluZC5iaW5kKE1lLE1lKTtYZS5leHBvcnRzPW1lP2Z1bmN0aW9uKFEpe3JldHVybiBRJiZVKFEpfTpmdW5jdGlvbihRKXtyZXR1cm4gUSYmZnVuY3Rpb24oKXtyZXR1cm4gTWUuYXBwbHkoUSxhcmd1bWVudHMpfX19LDQ2NjkzOihYZSxKZSxMKT0+e3ZhciBtZT1MKDcwNzA1KSxCPUwo''@;'; + put 'put ''MTIwMTQpLEU9ZnVuY3Rpb24oTWUpe3JldHVybiBCKE1lKT9NZTp2b2lkIDB9O1hlLmV4cG9ydHM9ZnVuY3Rpb24oTWUsVSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg8Mj9FKG1lW01lXSk6bWVbTWVdJiZtZVtNZV1bVV19fSw2NjI4ODooWGUsSmUsTCk9Pnt2YXIgbWU9TCg3OTUyMCksQj1M''@;'; + put 'put ''KDIwOTQ4KSxFPUwoOTUyNTcpLFU9TCgyNTQ2KSgiaXRlcmF0b3IiKTtYZS5leHBvcnRzPWZ1bmN0aW9uKFEpe2lmKG51bGwhPVEpcmV0dXJuIEIoUSxVKXx8QihRLCJAQGl0ZXJhdG9yIil8fEVbbWUoUSldfX0sMTI5ODk6KFhlLEplLEwpPT57dmFyIG1lPUwoMzU2MiksQj1MKDgxNDUwKSxF''@;'; + put 'put ''PUwoNTg2NDcpLE1lPUwoOTQ2NzYpLFU9TCg2NjI4OCksUT1UeXBlRXJyb3I7WGUuZXhwb3J0cz1mdW5jdGlvbihaLGllKXt2YXIgYWU9YXJndW1lbnRzLmxlbmd0aDwyP1UoWik6aWU7aWYoQihhZSkpcmV0dXJuIEUobWUoYWUsWikpO3Rocm93IFEoTWUoWikrIiBpcyBub3QgaXRlcmFibGUi''@;'; + put 'put ''KX19LDIwOTQ4OihYZSxKZSxMKT0+e3ZhciBtZT1MKDgxNDUwKTtYZS5leHBvcnRzPWZ1bmN0aW9uKEIsRSl7dmFyIE1lPUJbRV07cmV0dXJuIG51bGw9PU1lP3ZvaWQgMDptZShNZSl9fSw2MzM4MjooWGUsSmUsTCk9Pnt2YXIgbWU9TCg2NjEzKSxCPUwoNjgwNzEpLEU9TWF0aC5mbG9vcixN''@;'; + put 'put ''ZT1tZSgiIi5jaGFyQXQpLFU9bWUoIiIucmVwbGFjZSksUT1tZSgiIi5zbGljZSksWj0vXCQoWyQmJ2BdfFxkezEsMn18PFtePl0qPikvZyxpZT0vXCQoWyQmJ2BdfFxkezEsMn0pL2c7WGUuZXhwb3J0cz1mdW5jdGlvbihhZSxZLFcsTixlZSxxKXt2YXIgSj1XK2FlLmxlbmd0aCxzZT1OLmxl''@;'; + put 'put ''bmd0aCxvZT1pZTtyZXR1cm4gdm9pZCAwIT09ZWUmJihlZT1CKGVlKSxvZT1aKSxVKHEsb2UsZnVuY3Rpb24oY2UsZGUpe3ZhciB2ZTtzd2l0Y2goTWUoZGUsMCkpe2Nhc2UiJCI6cmV0dXJuIiQiO2Nhc2UiJiI6cmV0dXJuIGFlO2Nhc2UiYCI6cmV0dXJuIFEoWSwwLFcpO2Nhc2UiJyI6cmV0''@;'; + put 'put ''dXJuIFEoWSxKKTtjYXNlIjwiOnZlPWVlW1EoZGUsMSwtMSldO2JyZWFrO2RlZmF1bHQ6dmFyIEFlPStkZTtpZigwPT09QWUpcmV0dXJuIGNlO2lmKEFlPnNlKXt2YXIga2U9RShBZS8xMCk7cmV0dXJuIDA9PT1rZT9jZTprZTw9c2U/dm9pZCAwPT09TltrZS0xXT9NZShkZSwxKTpOW2tlLTFd''@;'; + put 'put ''K01lKGRlLDEpOmNlfXZlPU5bQWUtMV19cmV0dXJuIHZvaWQgMD09PXZlPyIiOnZlfSl9fSw3MDcwNTpYZT0+e3ZhciBKZT1mdW5jdGlvbihMKXtyZXR1cm4gTCYmTC5NYXRoPT1NYXRoJiZMfTtYZS5leHBvcnRzPUplKCJvYmplY3QiPT10eXBlb2YgZ2xvYmFsVGhpcyYmZ2xvYmFsVGhpcyl8''@;'; + put 'put ''fEplKCJvYmplY3QiPT10eXBlb2Ygd2luZG93JiZ3aW5kb3cpfHxKZSgib2JqZWN0Ij09dHlwZW9mIHNlbGYmJnNlbGYpfHxKZSgib2JqZWN0Ij09dHlwZW9mIGdsb2JhbCYmZ2xvYmFsKXx8ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30oKXx8RnVuY3Rpb24oInJldHVybiB0aGlzIikoKX0sNDg4''@;'; + put 'put ''MTE6KFhlLEplLEwpPT57dmFyIG1lPUwoNjYxMyksQj1MKDY4MDcxKSxFPW1lKHt9Lmhhc093blByb3BlcnR5KTtYZS5leHBvcnRzPU9iamVjdC5oYXNPd258fGZ1bmN0aW9uKFUsUSl7cmV0dXJuIEUoQihVKSxRKX19LDE5OTA5OlhlPT57WGUuZXhwb3J0cz17fX0sNTk0MDY6KFhlLEplLEwp''@;'; + put 'put ''PT57dmFyIG1lPUwoNDY2OTMpO1hlLmV4cG9ydHM9bWUoImRvY3VtZW50IiwiZG9jdW1lbnRFbGVtZW50Iil9LDk0Njc1OihYZSxKZSxMKT0+e3ZhciBtZT1MKDg1NjI0KSxCPUwoMjM1MjMpLEU9TCg0NjMxMyk7WGUuZXhwb3J0cz0hbWUmJiFCKGZ1bmN0aW9uKCl7cmV0dXJuIDchPU9iamVj''@;'; + put 'put ''dC5kZWZpbmVQcm9wZXJ0eShFKCJkaXYiKSwiYSIse2dldDpmdW5jdGlvbigpe3JldHVybiA3fX0pLmF9KX0sNTY2MDc6KFhlLEplLEwpPT57dmFyIG1lPUwoNjYxMyksQj1MKDIzNTIzKSxFPUwoOTQ3MjMpLE1lPU9iamVjdCxVPW1lKCIiLnNwbGl0KTtYZS5leHBvcnRzPUIoZnVuY3Rpb24o''@;'; + put 'put ''KXtyZXR1cm4hTWUoInoiKS5wcm9wZXJ0eUlzRW51bWVyYWJsZSgwKX0pP2Z1bmN0aW9uKFEpe3JldHVybiJTdHJpbmciPT1FKFEpP1UoUSwiIik6TWUoUSl9Ok1lfSw1MTg0OTooWGUsSmUsTCk9Pnt2YXIgbWU9TCgxMjAxNCksQj1MKDcxNDk2KSxFPUwoMTk1ODcpO1hlLmV4cG9ydHM9ZnVu''@;'; + put 'put ''Y3Rpb24oTWUsVSxRKXt2YXIgWixpZTtyZXR1cm4gRSYmbWUoWj1VLmNvbnN0cnVjdG9yKSYmWiE9PVEmJkIoaWU9Wi5wcm90b3R5cGUpJiZpZSE9PVEucHJvdG90eXBlJiZFKE1lLGllKSxNZX19LDU3MzcxOihYZSxKZSxMKT0+e3ZhciBtZT1MKDY2MTMpLEI9TCgxMjAxNCksRT1MKDgxMDY5''@;'; + put 'put ''KSxNZT1tZShGdW5jdGlvbi50b1N0cmluZyk7QihFLmluc3BlY3RTb3VyY2UpfHwoRS5pbnNwZWN0U291cmNlPWZ1bmN0aW9uKFUpe3JldHVybiBNZShVKX0pLFhlLmV4cG9ydHM9RS5pbnNwZWN0U291cmNlfSw3MTgzMjooWGUsSmUsTCk9Pnt2YXIgbWU9TCg4NTY0OCksQj1MKDY2MTMpLEU9''@;'; + put 'put ''TCgxOTkwOSksTWU9TCg3MTQ5NiksVT1MKDQ4ODExKSxRPUwoNTExODMpLmYsWj1MKDc1NDMxKSxpZT1MKDM1ODA4KSxhZT1MKDU1MjE4KSxZPUwoNTI4MTApLFc9TCgxMjU2NiksTj0hMSxlZT1ZKCJtZXRhIikscT0wLEo9ZnVuY3Rpb24oQWUpe1EoQWUsZWUse3ZhbHVlOntvYmplY3RJRDoi''@;'; + put 'put ''TyIrcSsrLHdlYWtEYXRhOnt9fX0pfSx2ZT1YZS5leHBvcnRzPXtlbmFibGU6ZnVuY3Rpb24oKXt2ZS5lbmFibGU9ZnVuY3Rpb24oKXt9LE49ITA7dmFyIEFlPVouZixrZT1CKFtdLnNwbGljZSksU2U9e307U2VbZWVdPTEsQWUoU2UpLmxlbmd0aCYmKFouZj1mdW5jdGlvbihJZSl7Zm9yKHZh''@;'; + put 'put ''ciBUZT1BZShJZSksRWU9MCxoZT1UZS5sZW5ndGg7RWU8aGU7RWUrKylpZihUZVtFZV09PT1lZSl7a2UoVGUsRWUsMSk7YnJlYWt9cmV0dXJuIFRlfSxtZSh7dGFyZ2V0OiJPYmplY3QiLHN0YXQ6ITAsZm9yY2VkOiEwfSx7Z2V0T3duUHJvcGVydHlOYW1lczppZS5mfSkpfSxmYXN0S2V5OmZ1''@;'; + put 'put ''bmN0aW9uKEFlLGtlKXtpZighTWUoQWUpKXJldHVybiJzeW1ib2wiPT10eXBlb2YgQWU/QWU6KCJzdHJpbmciPT10eXBlb2YgQWU/IlMiOiJQIikrQWU7aWYoIVUoQWUsZWUpKXtpZighYWUoQWUpKXJldHVybiJGIjtpZigha2UpcmV0dXJuIkUiO0ooQWUpfXJldHVybiBBZVtlZV0ub2JqZWN0''@;'; + put 'put ''SUR9LGdldFdlYWtEYXRhOmZ1bmN0aW9uKEFlLGtlKXtpZighVShBZSxlZSkpe2lmKCFhZShBZSkpcmV0dXJuITA7aWYoIWtlKXJldHVybiExO0ooQWUpfXJldHVybiBBZVtlZV0ud2Vha0RhdGF9LG9uRnJlZXplOmZ1bmN0aW9uKEFlKXtyZXR1cm4gVyYmTiYmYWUoQWUpJiYhVShBZSxlZSkm''@;'; + put 'put ''JkooQWUpLEFlfX07RVtlZV09ITB9LDcyNzooWGUsSmUsTCk9Pnt2YXIgZWUscSxKLG1lPUwoODA4MDYpLEI9TCg3MDcwNSksRT1MKDY2MTMpLE1lPUwoNzE0OTYpLFU9TCgxNjAxNyksUT1MKDQ4ODExKSxaPUwoODEwNjkpLGllPUwoMjcyMzApLGFlPUwoMTk5MDkpLFk9Ik9iamVjdCBhbHJl''@;'; + put 'put ''YWR5IGluaXRpYWxpemVkIixXPUIuVHlwZUVycm9yO2lmKG1lfHxaLnN0YXRlKXt2YXIgY2U9Wi5zdGF0ZXx8KFouc3RhdGU9bmV3KDAsQi5XZWFrTWFwKSksZGU9RShjZS5nZXQpLHZlPUUoY2UuaGFzKSxBZT1FKGNlLnNldCk7ZWU9ZnVuY3Rpb24oU2UsSWUpe2lmKHZlKGNlLFNlKSl0aHJv''@;'; + put 'put ''dyBuZXcgVyhZKTtyZXR1cm4gSWUuZmFjYWRlPVNlLEFlKGNlLFNlLEllKSxJZX0scT1mdW5jdGlvbihTZSl7cmV0dXJuIGRlKGNlLFNlKXx8e319LEo9ZnVuY3Rpb24oU2Upe3JldHVybiB2ZShjZSxTZSl9fWVsc2V7dmFyIGtlPWllKCJzdGF0ZSIpO2FlW2tlXT0hMCxlZT1mdW5jdGlvbihT''@;'; + put 'put ''ZSxJZSl7aWYoUShTZSxrZSkpdGhyb3cgbmV3IFcoWSk7cmV0dXJuIEllLmZhY2FkZT1TZSxVKFNlLGtlLEllKSxJZX0scT1mdW5jdGlvbihTZSl7cmV0dXJuIFEoU2Usa2UpP1NlW2tlXTp7fX0sSj1mdW5jdGlvbihTZSl7cmV0dXJuIFEoU2Usa2UpfX1YZS5leHBvcnRzPXtzZXQ6ZWUsZ2V0''@;'; + put 'put ''OnEsaGFzOkosZW5mb3JjZTpmdW5jdGlvbihTZSl7cmV0dXJuIEooU2UpP3EoU2UpOmVlKFNlLHt9KX0sZ2V0dGVyRm9yOmZ1bmN0aW9uKFNlKXtyZXR1cm4gZnVuY3Rpb24oSWUpe3ZhciBUZTtpZighTWUoSWUpfHwoVGU9cShJZSkpLnR5cGUhPT1TZSl0aHJvdyBXKCJJbmNvbXBhdGlibGUg''@;'; + put 'put ''cmVjZWl2ZXIsICIrU2UrIiByZXF1aXJlZCIpO3JldHVybiBUZX19fX0sOTcxMDY6KFhlLEplLEwpPT57dmFyIG1lPUwoMjU0NiksQj1MKDk1MjU3KSxFPW1lKCJpdGVyYXRvciIpLE1lPUFycmF5LnByb3RvdHlwZTtYZS5leHBvcnRzPWZ1bmN0aW9uKFUpe3JldHVybiB2b2lkIDAhPT1VJiYo''@;'; + put 'put ''Qi5BcnJheT09PVV8fE1lW0VdPT09VSl9fSwyOTEwNjooWGUsSmUsTCk9Pnt2YXIgbWU9TCg5NDcyMyk7WGUuZXhwb3J0cz1BcnJheS5pc0FycmF5fHxmdW5jdGlvbihFKXtyZXR1cm4iQXJyYXkiPT1tZShFKX19LDEyMDE0OlhlPT57WGUuZXhwb3J0cz1mdW5jdGlvbihKZSl7cmV0dXJuImZ1''@;'; + put 'put ''bmN0aW9uIj09dHlwZW9mIEplfX0sNDk0NTM6KFhlLEplLEwpPT57dmFyIG1lPUwoNjYxMyksQj1MKDIzNTIzKSxFPUwoMTIwMTQpLE1lPUwoNzk1MjApLFU9TCg0NjY5MyksUT1MKDU3MzcxKSxaPWZ1bmN0aW9uKCl7fSxpZT1bXSxhZT1VKCJSZWZsZWN0IiwiY29uc3RydWN0IiksWT0vXlxz''@;'; + put 'put ''Kig/OmNsYXNzfGZ1bmN0aW9uKVxiLyxXPW1lKFkuZXhlYyksTj0hWS5leGVjKFopLGVlPWZ1bmN0aW9uKHNlKXtpZighRShzZSkpcmV0dXJuITE7dHJ5e3JldHVybiBhZShaLGllLHNlKSwhMH1jYXRjaChvZSl7cmV0dXJuITF9fSxxPWZ1bmN0aW9uKHNlKXtpZighRShzZSkpcmV0dXJuITE7''@;'; + put 'put ''c3dpdGNoKE1lKHNlKSl7Y2FzZSJBc3luY0Z1bmN0aW9uIjpjYXNlIkdlbmVyYXRvckZ1bmN0aW9uIjpjYXNlIkFzeW5jR2VuZXJhdG9yRnVuY3Rpb24iOnJldHVybiExfXRyeXtyZXR1cm4gTnx8ISFXKFksUShzZSkpfWNhdGNoKG9lKXtyZXR1cm4hMH19O3Euc2hhbT0hMCxYZS5leHBvcnRz''@;'; + put 'put ''PSFhZXx8QihmdW5jdGlvbigpe3ZhciBKO3JldHVybiBlZShlZS5jYWxsKXx8IWVlKE9iamVjdCl8fCFlZShmdW5jdGlvbigpe0o9ITB9KXx8Sn0pP3E6ZWV9LDE0MTI1OihYZSxKZSxMKT0+e3ZhciBtZT1MKDQ4ODExKTtYZS5leHBvcnRzPWZ1bmN0aW9uKEIpe3JldHVybiB2b2lkIDAhPT1C''@;'; + put 'put ''JiYobWUoQiwidmFsdWUiKXx8bWUoQiwid3JpdGFibGUiKSl9fSw2NzUwNzooWGUsSmUsTCk9Pnt2YXIgbWU9TCgyMzUyMyksQj1MKDEyMDE0KSxFPS8jfFwucHJvdG90eXBlXC4vLE1lPWZ1bmN0aW9uKGFlLFkpe3ZhciBXPVFbVShhZSldO3JldHVybiBXPT1pZXx8VyE9WiYmKEIoWSk/bWUo''@;'; + put 'put ''WSk6ISFZKX0sVT1NZS5ub3JtYWxpemU9ZnVuY3Rpb24oYWUpe3JldHVybiBTdHJpbmcoYWUpLnJlcGxhY2UoRSwiLiIpLnRvTG93ZXJDYXNlKCl9LFE9TWUuZGF0YT17fSxaPU1lLk5BVElWRT0iTiIsaWU9TWUuUE9MWUZJTEw9IlAiO1hlLmV4cG9ydHM9TWV9LDMwNDI6KFhlLEplLEwpPT57''@;'; + put 'put ''dmFyIG1lPUwoNzE0OTYpLEI9TWF0aC5mbG9vcjtYZS5leHBvcnRzPU51bWJlci5pc0ludGVnZXJ8fGZ1bmN0aW9uKE1lKXtyZXR1cm4hbWUoTWUpJiZpc0Zpbml0ZShNZSkmJkIoTWUpPT09TWV9fSw3MTQ5NjooWGUsSmUsTCk9Pnt2YXIgbWU9TCgxMjAxNCk7WGUuZXhwb3J0cz1mdW5jdGlv''@;'; + put 'put ''bihCKXtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIEI/bnVsbCE9PUI6bWUoQil9fSwxMDAxNzpYZT0+e1hlLmV4cG9ydHM9ITF9LDQxODA0OihYZSxKZSxMKT0+e3ZhciBtZT1MKDcxNDk2KSxCPUwoOTQ3MjMpLE1lPUwoMjU0NikoIm1hdGNoIik7WGUuZXhwb3J0cz1mdW5jdGlvbihVKXt2YXIg''@;'; + put 'put ''UTtyZXR1cm4gbWUoVSkmJih2b2lkIDAhPT0oUT1VW01lXSk/ISFROiJSZWdFeHAiPT1CKFUpKX19LDY5NzU6KFhlLEplLEwpPT57dmFyIG1lPUwoNDY2OTMpLEI9TCgxMjAxNCksRT1MKDM3NDc0KSxNZT1MKDIzOTYxKSxVPU9iamVjdDtYZS5leHBvcnRzPU1lP2Z1bmN0aW9uKFEpe3JldHVy''@;'; + put 'put ''biJzeW1ib2wiPT10eXBlb2YgUX06ZnVuY3Rpb24oUSl7dmFyIFo9bWUoIlN5bWJvbCIpO3JldHVybiBCKFopJiZFKFoucHJvdG90eXBlLFUoUSkpfX0sMjY1NDM6KFhlLEplLEwpPT57dmFyIG1lPUwoODU0OSksQj1MKDM1NjIpLEU9TCg1ODY0NyksTWU9TCg5NDY3NiksVT1MKDk3MTA2KSxR''@;'; + put 'put ''PUwoNTQ0NTApLFo9TCgzNzQ3NCksaWU9TCgxMjk4OSksYWU9TCg2NjI4OCksWT1MKDgwMzA3KSxXPVR5cGVFcnJvcixOPWZ1bmN0aW9uKHEsSil7dGhpcy5zdG9wcGVkPXEsdGhpcy5yZXN1bHQ9Sn0sZWU9Ti5wcm90b3R5cGU7WGUuZXhwb3J0cz1mdW5jdGlvbihxLEosc2Upe3ZhciBTZSxJ''@;'; + put 'put ''ZSxUZSxFZSxoZSxPLHosY2U9ISghc2V8fCFzZS5BU19FTlRSSUVTKSxkZT0hKCFzZXx8IXNlLklTX1JFQ09SRCksdmU9ISghc2V8fCFzZS5JU19JVEVSQVRPUiksQWU9ISghc2V8fCFzZS5JTlRFUlJVUFRFRCksa2U9bWUoSixzZSYmc2UudGhhdCksbmU9ZnVuY3Rpb24oeCl7cmV0dXJuIFNl''@;'; + put 'put ''JiZZKFNlLCJub3JtYWwiLHgpLG5ldyBOKCEwLHgpfSx0ZT1mdW5jdGlvbih4KXtyZXR1cm4gY2U/KEUoeCksQWU/a2UoeFswXSx4WzFdLG5lKTprZSh4WzBdLHhbMV0pKTpBZT9rZSh4LG5lKTprZSh4KX07aWYoZGUpU2U9cS5pdGVyYXRvcjtlbHNlIGlmKHZlKVNlPXE7ZWxzZXtpZighKEll''@;'; + put 'put ''PWFlKHEpKSl0aHJvdyBXKE1lKHEpKyIgaXMgbm90IGl0ZXJhYmxlIik7aWYoVShJZSkpe2ZvcihUZT0wLEVlPVEocSk7RWU+VGU7VGUrKylpZigoaGU9dGUocVtUZV0pKSYmWihlZSxoZSkpcmV0dXJuIGhlO3JldHVybiBuZXcgTighMSl9U2U9aWUocSxJZSl9Zm9yKE89ZGU/cS5uZXh0OlNl''@;'; + put 'put ''Lm5leHQ7ISh6PUIoTyxTZSkpLmRvbmU7KXt0cnl7aGU9dGUoei52YWx1ZSl9Y2F0Y2goeCl7WShTZSwidGhyb3ciLHgpfWlmKCJvYmplY3QiPT10eXBlb2YgaGUmJmhlJiZaKGVlLGhlKSlyZXR1cm4gaGV9cmV0dXJuIG5ldyBOKCExKX19LDgwMzA3OihYZSxKZSxMKT0+e3ZhciBtZT1MKDM1''@;'; + put 'put ''NjIpLEI9TCg1ODY0NyksRT1MKDIwOTQ4KTtYZS5leHBvcnRzPWZ1bmN0aW9uKE1lLFUsUSl7dmFyIFosaWU7QihNZSk7dHJ5e2lmKCEoWj1FKE1lLCJyZXR1cm4iKSkpe2lmKCJ0aHJvdyI9PT1VKXRocm93IFE7cmV0dXJuIFF9Wj1tZShaLE1lKX1jYXRjaChhZSl7aWU9ITAsWj1hZX1pZigi''@;'; + put 'put ''dGhyb3ciPT09VSl0aHJvdyBRO2lmKGllKXRocm93IFo7cmV0dXJuIEIoWiksUX19LDE4NTQ2OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgWSxXLE4sbWU9TCgyMzUyMyksQj1MKDEyMDE0KSxFPUwoNzQ0MTApLE1lPUwoODI3MzMpLFU9TCgyNTY2NiksUT1MKDI1NDYpLFo9TCgxMDAx''@;'; + put 'put ''NyksaWU9USgiaXRlcmF0b3IiKSxhZT0hMTtbXS5rZXlzJiYoIm5leHQiaW4oTj1bXS5rZXlzKCkpPyhXPU1lKE1lKE4pKSkhPT1PYmplY3QucHJvdG90eXBlJiYoWT1XKTphZT0hMCksbnVsbD09WXx8bWUoZnVuY3Rpb24oKXt2YXIgcT17fTtyZXR1cm4gWVtpZV0uY2FsbChxKSE9PXF9KT9Z''@;'; + put 'put ''PXt9OlomJihZPUUoWSkpLEIoWVtpZV0pfHxVKFksaWUsZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pLFhlLmV4cG9ydHM9e0l0ZXJhdG9yUHJvdG90eXBlOlksQlVHR1lfU0FGQVJJX0lURVJBVE9SUzphZX19LDk1MjU3OlhlPT57WGUuZXhwb3J0cz17fX0sNTQ0NTA6KFhlLEplLEwpPT57dmFy''@;'; + put 'put ''IG1lPUwoNjUzMTYpO1hlLmV4cG9ydHM9ZnVuY3Rpb24oQil7cmV0dXJuIG1lKEIubGVuZ3RoKX19LDM0NDY4OihYZSxKZSxMKT0+e3ZhciBtZT1MKDIzNTIzKSxCPUwoMTIwMTQpLEU9TCg0ODgxMSksTWU9TCg4NTYyNCksVT1MKDEzODY5KS5DT05GSUdVUkFCTEUsUT1MKDU3MzcxKSxaPUwo''@;'; + put 'put ''NzI3KSxpZT1aLmVuZm9yY2UsYWU9Wi5nZXQsWT1PYmplY3QuZGVmaW5lUHJvcGVydHksVz1NZSYmIW1lKGZ1bmN0aW9uKCl7cmV0dXJuIDghPT1ZKGZ1bmN0aW9uKCl7fSwibGVuZ3RoIix7dmFsdWU6OH0pLmxlbmd0aH0pLE49U3RyaW5nKFN0cmluZykuc3BsaXQoIlN0cmluZyIpLGVlPVhl''@;'; + put 'put ''LmV4cG9ydHM9ZnVuY3Rpb24ocSxKLHNlKXsiU3ltYm9sKCI9PT1TdHJpbmcoSikuc2xpY2UoMCw3KSYmKEo9IlsiK1N0cmluZyhKKS5yZXBsYWNlKC9eU3ltYm9sXCgoW14pXSopXCkvLCIkMSIpKyJdIiksc2UmJnNlLmdldHRlciYmKEo9ImdldCAiK0opLHNlJiZzZS5zZXR0ZXImJihKPSJz''@;'; + put 'put ''ZXQgIitKKSwoIUUocSwibmFtZSIpfHxVJiZxLm5hbWUhPT1KKSYmKE1lP1kocSwibmFtZSIse3ZhbHVlOkosY29uZmlndXJhYmxlOiEwfSk6cS5uYW1lPUopLFcmJnNlJiZFKHNlLCJhcml0eSIpJiZxLmxlbmd0aCE9PXNlLmFyaXR5JiZZKHEsImxlbmd0aCIse3ZhbHVlOnNlLmFyaXR5fSk7''@;'; + put 'put ''dHJ5e3NlJiZFKHNlLCJjb25zdHJ1Y3RvciIpJiZzZS5jb25zdHJ1Y3Rvcj9NZSYmWShxLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pOnEucHJvdG90eXBlJiYocS5wcm90b3R5cGU9dm9pZCAwKX1jYXRjaChjZSl7fXZhciBvZT1pZShxKTtyZXR1cm4gRShvZSwic291cmNlIil8fChvZS5z''@;'; + put 'put ''b3VyY2U9Ti5qb2luKCJzdHJpbmciPT10eXBlb2YgSj9KOiIiKSkscX07RnVuY3Rpb24ucHJvdG90eXBlLnRvU3RyaW5nPWVlKGZ1bmN0aW9uKCl7cmV0dXJuIEIodGhpcykmJmFlKHRoaXMpLnNvdXJjZXx8USh0aGlzKX0sInRvU3RyaW5nIil9LDg0NzQ0OlhlPT57dmFyIEplPU1hdGguY2Vp''@;'; + put 'put ''bCxMPU1hdGguZmxvb3I7WGUuZXhwb3J0cz1NYXRoLnRydW5jfHxmdW5jdGlvbihCKXt2YXIgRT0rQjtyZXR1cm4oRT4wP0w6SmUpKEUpfX0sMzk0NjY6KFhlLEplLEwpPT57dmFyIG1lPUwoODI3NzApO1hlLmV4cG9ydHM9bWUmJiEhU3ltYm9sLmZvciYmISFTeW1ib2wua2V5Rm9yfSw4Mjc3''@;'; + put 'put ''MDooWGUsSmUsTCk9Pnt2YXIgbWU9TCgyOTM4NSksQj1MKDIzNTIzKTtYZS5leHBvcnRzPSEhT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyYmIUIoZnVuY3Rpb24oKXt2YXIgRT1TeW1ib2woKTtyZXR1cm4hU3RyaW5nKEUpfHwhKE9iamVjdChFKWluc3RhbmNlb2YgU3ltYm9sKXx8IVN5''@;'; + put 'put ''bWJvbC5zaGFtJiZtZSYmbWU8NDF9KX0sODA4MDY6KFhlLEplLEwpPT57dmFyIG1lPUwoNzA3MDUpLEI9TCgxMjAxNCksRT1MKDU3MzcxKSxNZT1tZS5XZWFrTWFwO1hlLmV4cG9ydHM9QihNZSkmJi9uYXRpdmUgY29kZS8udGVzdChFKE1lKSl9LDQxOTYxOihYZSxKZSxMKT0+e3ZhciBtZT1M''@;'; + put 'put ''KDQxODA0KSxCPVR5cGVFcnJvcjtYZS5leHBvcnRzPWZ1bmN0aW9uKEUpe2lmKG1lKEUpKXRocm93IEIoIlRoZSBtZXRob2QgZG9lc24ndCBhY2NlcHQgcmVndWxhciBleHByZXNzaW9ucyIpO3JldHVybiBFfX0sNDc5NTk6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDg1NjI0''@;'; + put 'put ''KSxCPUwoNjYxMyksRT1MKDM1NjIpLE1lPUwoMjM1MjMpLFU9TCgxNDU0NSksUT1MKDU1MzQpLFo9TCg0NjkwMSksaWU9TCg2ODA3MSksYWU9TCg1NjYwNyksWT1PYmplY3QuYXNzaWduLFc9T2JqZWN0LmRlZmluZVByb3BlcnR5LE49QihbXS5jb25jYXQpO1hlLmV4cG9ydHM9IVl8fE1lKGZ1''@;'; + put 'put ''bmN0aW9uKCl7aWYobWUmJjEhPT1ZKHtiOjF9LFkoVyh7fSwiYSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7Vyh0aGlzLCJiIix7dmFsdWU6MyxlbnVtZXJhYmxlOiExfSl9fSkse2I6Mn0pKS5iKXJldHVybiEwO3ZhciBlZT17fSxxPXt9LEo9U3ltYm9sKCksc2U9ImFiY2RlZmdo''@;'; + put 'put ''aWprbG1ub3BxcnN0IjtyZXR1cm4gZWVbSl09NyxzZS5zcGxpdCgiIikuZm9yRWFjaChmdW5jdGlvbihvZSl7cVtvZV09b2V9KSw3IT1ZKHt9LGVlKVtKXXx8VShZKHt9LHEpKS5qb2luKCIiKSE9c2V9KT9mdW5jdGlvbihxLEope2Zvcih2YXIgc2U9aWUocSksb2U9YXJndW1lbnRzLmxlbmd0''@;'; + put 'put ''aCxjZT0xLGRlPVEuZix2ZT1aLmY7b2U+Y2U7KWZvcih2YXIgVGUsQWU9YWUoYXJndW1lbnRzW2NlKytdKSxrZT1kZT9OKFUoQWUpLGRlKEFlKSk6VShBZSksU2U9a2UubGVuZ3RoLEllPTA7U2U+SWU7KVRlPWtlW0llKytdLCghbWV8fEUodmUsQWUsVGUpKSYmKHNlW1RlXT1BZVtUZV0pO3Jl''@;'; + put 'put ''dHVybiBzZX06WX0sNzQ0MTA6KFhlLEplLEwpPT57dmFyIG9lLG1lPUwoNTg2NDcpLEI9TCg3NzMyOCksRT1MKDQ3ODMzKSxNZT1MKDE5OTA5KSxVPUwoNTk0MDYpLFE9TCg0NjMxMyksWj1MKDI3MjMwKSxZPSJwcm90b3R5cGUiLFc9InNjcmlwdCIsTj1aKCJJRV9QUk9UTyIpLGVlPWZ1bmN0''@;'; + put 'put ''aW9uKCl7fSxxPWZ1bmN0aW9uKGRlKXtyZXR1cm4iPCIrVysiPiIrZGUrIjwvIitXKyI+In0sSj1mdW5jdGlvbihkZSl7ZGUud3JpdGUocSgiIikpLGRlLmNsb3NlKCk7dmFyIHZlPWRlLnBhcmVudFdpbmRvdy5PYmplY3Q7cmV0dXJuIGRlPW51bGwsdmV9LGNlPWZ1bmN0aW9uKCl7dHJ5e29l''@;'; + put 'put ''PW5ldyBBY3RpdmVYT2JqZWN0KCJodG1sZmlsZSIpfWNhdGNoKHZlKXt9Y2U9InVuZGVmaW5lZCIhPXR5cGVvZiBkb2N1bWVudD9kb2N1bWVudC5kb21haW4mJm9lP0oob2UpOmZ1bmN0aW9uKCl7dmFyIEFlLGRlPVEoImlmcmFtZSIpO3JldHVybiBkZS5zdHlsZS5kaXNwbGF5PSJub25lIixV''@;'; + put 'put ''LmFwcGVuZENoaWxkKGRlKSxkZS5zcmM9U3RyaW5nKCJqYXZhc2NyaXB0OiIpLChBZT1kZS5jb250ZW50V2luZG93LmRvY3VtZW50KS5vcGVuKCksQWUud3JpdGUocSgiZG9jdW1lbnQuRj1PYmplY3QiKSksQWUuY2xvc2UoKSxBZS5GfSgpOkoob2UpO2Zvcih2YXIgZGU9RS5sZW5ndGg7ZGUt''@;'; + put 'put ''LTspZGVsZXRlIGNlW1ldW0VbZGVdXTtyZXR1cm4gY2UoKX07TWVbTl09ITAsWGUuZXhwb3J0cz1PYmplY3QuY3JlYXRlfHxmdW5jdGlvbih2ZSxBZSl7dmFyIGtlO3JldHVybiBudWxsIT09dmU/KGVlW1ldPW1lKHZlKSxrZT1uZXcgZWUsZWVbWV09bnVsbCxrZVtOXT12ZSk6a2U9Y2UoKSx2''@;'; + put 'put ''b2lkIDA9PT1BZT9rZTpCLmYoa2UsQWUpfX0sNzczMjg6KFhlLEplLEwpPT57dmFyIG1lPUwoODU2MjQpLEI9TCgyMDExOCksRT1MKDUxMTgzKSxNZT1MKDU4NjQ3KSxVPUwoNTAzMjcpLFE9TCgxNDU0NSk7SmUuZj1tZSYmIUI/T2JqZWN0LmRlZmluZVByb3BlcnRpZXM6ZnVuY3Rpb24oaWUs''@;'; + put 'put ''YWUpe01lKGllKTtmb3IodmFyIHEsWT1VKGFlKSxXPVEoYWUpLE49Vy5sZW5ndGgsZWU9MDtOPmVlOylFLmYoaWUscT1XW2VlKytdLFlbcV0pO3JldHVybiBpZX19LDUxMTgzOihYZSxKZSxMKT0+e3ZhciBtZT1MKDg1NjI0KSxCPUwoOTQ2NzUpLEU9TCgyMDExOCksTWU9TCg1ODY0NyksVT1M''@;'; + put 'put ''KDg0MDk0KSxRPVR5cGVFcnJvcixaPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSxpZT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLGFlPSJlbnVtZXJhYmxlIixZPSJjb25maWd1cmFibGUiLFc9IndyaXRhYmxlIjtKZS5mPW1lP0U/ZnVuY3Rpb24oZWUscSxKKXtpZihNZShlZSkscT1V''@;'; + put 'put ''KHEpLE1lKEopLCJmdW5jdGlvbiI9PXR5cGVvZiBlZSYmInByb3RvdHlwZSI9PT1xJiYidmFsdWUiaW4gSiYmVyBpbiBKJiYhSltXXSl7dmFyIHNlPWllKGVlLHEpO3NlJiZzZVtXXSYmKGVlW3FdPUoudmFsdWUsSj17Y29uZmlndXJhYmxlOlkgaW4gSj9KW1ldOnNlW1ldLGVudW1lcmFibGU6''@;'; + put 'put ''YWUgaW4gSj9KW2FlXTpzZVthZV0sd3JpdGFibGU6ITF9KX1yZXR1cm4gWihlZSxxLEopfTpaOmZ1bmN0aW9uKGVlLHEsSil7aWYoTWUoZWUpLHE9VShxKSxNZShKKSxCKXRyeXtyZXR1cm4gWihlZSxxLEopfWNhdGNoKHNlKXt9aWYoImdldCJpbiBKfHwic2V0ImluIEopdGhyb3cgUSgiQWNj''@;'; + put 'put ''ZXNzb3JzIG5vdCBzdXBwb3J0ZWQiKTtyZXR1cm4idmFsdWUiaW4gSiYmKGVlW3FdPUoudmFsdWUpLGVlfX0sNDc5ODc6KFhlLEplLEwpPT57dmFyIG1lPUwoODU2MjQpLEI9TCgzNTYyKSxFPUwoNDY5MDEpLE1lPUwoNzM5MjApLFU9TCg1MDMyNyksUT1MKDg0MDk0KSxaPUwoNDg4MTEpLGll''@;'; + put 'put ''PUwoOTQ2NzUpLGFlPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7SmUuZj1tZT9hZTpmdW5jdGlvbihXLE4pe2lmKFc9VShXKSxOPVEoTiksaWUpdHJ5e3JldHVybiBhZShXLE4pfWNhdGNoKGVlKXt9aWYoWihXLE4pKXJldHVybiBNZSghQihFLmYsVyxOKSxXW05dKX19LDM1ODA4''@;'; + put 'put ''OihYZSxKZSxMKT0+e3ZhciBtZT1MKDk0NzIzKSxCPUwoNTAzMjcpLEU9TCg3NTQzMSkuZixNZT1MKDEwODcyKSxVPSJvYmplY3QiPT10eXBlb2Ygd2luZG93JiZ3aW5kb3cmJk9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzP09iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHdpbmRvdyk6W107''@;'; + put 'put ''WGUuZXhwb3J0cy5mPWZ1bmN0aW9uKGllKXtyZXR1cm4gVSYmIldpbmRvdyI9PW1lKGllKT9mdW5jdGlvbihaKXt0cnl7cmV0dXJuIEUoWil9Y2F0Y2goaWUpe3JldHVybiBNZShVKX19KGllKTpFKEIoaWUpKX19LDc1NDMxOihYZSxKZSxMKT0+e3ZhciBtZT1MKDI0OTY3KSxFPUwoNDc4MzMp''@;'; + put 'put ''LmNvbmNhdCgibGVuZ3RoIiwicHJvdG90eXBlIik7SmUuZj1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lc3x8ZnVuY3Rpb24oVSl7cmV0dXJuIG1lKFUsRSl9fSw1NTM0OihYZSxKZSk9PntKZS5mPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHN9LDgyNzMzOihYZSxKZSxMKT0+e3ZhciBt''@;'; + put 'put ''ZT1MKDQ4ODExKSxCPUwoMTIwMTQpLEU9TCg2ODA3MSksTWU9TCgyNzIzMCksVT1MKDQ2MDg2KSxRPU1lKCJJRV9QUk9UTyIpLFo9T2JqZWN0LGllPVoucHJvdG90eXBlO1hlLmV4cG9ydHM9VT9aLmdldFByb3RvdHlwZU9mOmZ1bmN0aW9uKGFlKXt2YXIgWT1FKGFlKTtpZihtZShZLFEpKXJl''@;'; + put 'put ''dHVybiBZW1FdO3ZhciBXPVkuY29uc3RydWN0b3I7cmV0dXJuIEIoVykmJlkgaW5zdGFuY2VvZiBXP1cucHJvdG90eXBlOlkgaW5zdGFuY2VvZiBaP2llOm51bGx9fSw1NTIxODooWGUsSmUsTCk9Pnt2YXIgbWU9TCgyMzUyMyksQj1MKDcxNDk2KSxFPUwoOTQ3MjMpLE1lPUwoNjI3ODkpLFU9''@;'; + put 'put ''T2JqZWN0LmlzRXh0ZW5zaWJsZSxRPW1lKGZ1bmN0aW9uKCl7VSgxKX0pO1hlLmV4cG9ydHM9UXx8TWU/ZnVuY3Rpb24oaWUpe3JldHVybiEoIUIoaWUpfHxNZSYmIkFycmF5QnVmZmVyIj09RShpZSkpJiYoIVV8fFUoaWUpKX06VX0sMzc0NzQ6KFhlLEplLEwpPT57dmFyIG1lPUwoNjYxMyk7''@;'; + put 'put ''WGUuZXhwb3J0cz1tZSh7fS5pc1Byb3RvdHlwZU9mKX0sMjQ5Njc6KFhlLEplLEwpPT57dmFyIG1lPUwoNjYxMyksQj1MKDQ4ODExKSxFPUwoNTAzMjcpLE1lPUwoMzYzMDUpLmluZGV4T2YsVT1MKDE5OTA5KSxRPW1lKFtdLnB1c2gpO1hlLmV4cG9ydHM9ZnVuY3Rpb24oWixpZSl7dmFyIE4s''@;'; + put 'put ''YWU9RShaKSxZPTAsVz1bXTtmb3IoTiBpbiBhZSkhQihVLE4pJiZCKGFlLE4pJiZRKFcsTik7Zm9yKDtpZS5sZW5ndGg+WTspQihhZSxOPWllW1krK10pJiYofk1lKFcsTil8fFEoVyxOKSk7cmV0dXJuIFd9fSwxNDU0NTooWGUsSmUsTCk9Pnt2YXIgbWU9TCgyNDk2NyksQj1MKDQ3ODMzKTtY''@;'; + put 'put ''ZS5leHBvcnRzPU9iamVjdC5rZXlzfHxmdW5jdGlvbihNZSl7cmV0dXJuIG1lKE1lLEIpfX0sNDY5MDE6KFhlLEplKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgTD17fS5wcm9wZXJ0eUlzRW51bWVyYWJsZSxtZT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLEI9bWUmJiFMLmNhbGwoezE6''@;'; + put 'put ''Mn0sMSk7SmUuZj1CP2Z1bmN0aW9uKE1lKXt2YXIgVT1tZSh0aGlzLE1lKTtyZXR1cm4hIVUmJlUuZW51bWVyYWJsZX06TH0sMTk1ODc6KFhlLEplLEwpPT57dmFyIG1lPUwoNjYxMyksQj1MKDU4NjQ3KSxFPUwoNzAwOCk7WGUuZXhwb3J0cz1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fCgiX19w''@;'; + put 'put ''cm90b19fImlue30/ZnVuY3Rpb24oKXt2YXIgUSxNZT0hMSxVPXt9O3RyeXsoUT1tZShPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKE9iamVjdC5wcm90b3R5cGUsIl9fcHJvdG9fXyIpLnNldCkpKFUsW10pLE1lPVUgaW5zdGFuY2VvZiBBcnJheX1jYXRjaChaKXt9cmV0dXJuIGZ1''@;'; + put 'put ''bmN0aW9uKGllLGFlKXtyZXR1cm4gQihpZSksRShhZSksTWU/UShpZSxhZSk6aWUuX19wcm90b19fPWFlLGllfX0oKTp2b2lkIDApfSw0NDU4MjooWGUsSmUsTCk9Pnt2YXIgbWU9TCg4NTYyNCksQj1MKDY2MTMpLEU9TCgxNDU0NSksTWU9TCg1MDMyNyksUT1CKEwoNDY5MDEpLmYpLFo9Qihb''@;'; + put 'put ''XS5wdXNoKSxpZT1mdW5jdGlvbihhZSl7cmV0dXJuIGZ1bmN0aW9uKFkpe2Zvcih2YXIgc2UsVz1NZShZKSxOPUUoVyksZWU9Ti5sZW5ndGgscT0wLEo9W107ZWU+cTspc2U9TltxKytdLCghbWV8fFEoVyxzZSkpJiZaKEosYWU/W3NlLFdbc2VdXTpXW3NlXSk7cmV0dXJuIEp9fTtYZS5leHBv''@;'; + put 'put ''cnRzPXtlbnRyaWVzOmllKCEwKSx2YWx1ZXM6aWUoITEpfX0sNzcwNTooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoMjc0OTApLEI9TCg3OTUyMCk7WGUuZXhwb3J0cz1tZT97fS50b1N0cmluZzpmdW5jdGlvbigpe3JldHVybiJbb2JqZWN0ICIrQih0aGlzKSsiXSJ9fSw2MzQx''@;'; + put 'put ''NTooWGUsSmUsTCk9Pnt2YXIgbWU9TCgzNTYyKSxCPUwoMTIwMTQpLEU9TCg3MTQ5NiksTWU9VHlwZUVycm9yO1hlLmV4cG9ydHM9ZnVuY3Rpb24oVSxRKXt2YXIgWixpZTtpZigic3RyaW5nIj09PVEmJkIoWj1VLnRvU3RyaW5nKSYmIUUoaWU9bWUoWixVKSl8fEIoWj1VLnZhbHVlT2YpJiYh''@;'; + put 'put ''RShpZT1tZShaLFUpKXx8InN0cmluZyIhPT1RJiZCKFo9VS50b1N0cmluZykmJiFFKGllPW1lKFosVSkpKXJldHVybiBpZTt0aHJvdyBNZSgiQ2FuJ3QgY29udmVydCBvYmplY3QgdG8gcHJpbWl0aXZlIHZhbHVlIil9fSwyMTE5OTooWGUsSmUsTCk9Pnt2YXIgbWU9TCg0NjY5MyksQj1MKDY2''@;'; + put 'put ''MTMpLEU9TCg3NTQzMSksTWU9TCg1NTM0KSxVPUwoNTg2NDcpLFE9QihbXS5jb25jYXQpO1hlLmV4cG9ydHM9bWUoIlJlZmxlY3QiLCJvd25LZXlzIil8fGZ1bmN0aW9uKGllKXt2YXIgYWU9RS5mKFUoaWUpKSxZPU1lLmY7cmV0dXJuIFk/UShhZSxZKGllKSk6YWV9fSw5MjczMzooWGUsSmUs''@;'; + put 'put ''TCk9Pnt2YXIgbWU9TCg3MDcwNSk7WGUuZXhwb3J0cz1tZX0sNzg4MDooWGUsSmUsTCk9Pnt2YXIgbWU9TCg1MTE4MykuZjtYZS5leHBvcnRzPWZ1bmN0aW9uKEIsRSxNZSl7TWUgaW4gQnx8bWUoQixNZSx7Y29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBFW01lXX0sc2V0''@;'; + put 'put ''OmZ1bmN0aW9uKFUpe0VbTWVdPVV9fSl9fSw1ODEyNjooWGUsSmUsTCk9Pnt2YXIgbWU9TCgzNTYyKSxCPUwoNTg2NDcpLEU9TCgxMjAxNCksTWU9TCg5NDcyMyksVT1MKDIyMjM0KSxRPVR5cGVFcnJvcjtYZS5leHBvcnRzPWZ1bmN0aW9uKFosaWUpe3ZhciBhZT1aLmV4ZWM7aWYoRShhZSkp''@;'; + put 'put ''e3ZhciBZPW1lKGFlLFosaWUpO3JldHVybiBudWxsIT09WSYmQihZKSxZfWlmKCJSZWdFeHAiPT09TWUoWikpcmV0dXJuIG1lKFUsWixpZSk7dGhyb3cgUSgiUmVnRXhwI2V4ZWMgY2FsbGVkIG9uIGluY29tcGF0aWJsZSByZWNlaXZlciIpfX0sMjIyMzQ6KFhlLEplLEwpPT57InVzZSBzdHJp''@;'; + put 'put ''Y3QiO3ZhciBrZSxTZSxtZT1MKDM1NjIpLEI9TCg2NjEzKSxFPUwoOTIxKSxNZT1MKDQ4NzI1KSxVPUwoOTcxODkpLFE9TCg2ODgzNSksWj1MKDc0NDEwKSxpZT1MKDcyNykuZ2V0LGFlPUwoNDMxODYpLFk9TCg1MTk0OSksVz1RKCJuYXRpdmUtc3RyaW5nLXJlcGxhY2UiLFN0cmluZy5wcm90''@;'; + put 'put ''b3R5cGUucmVwbGFjZSksTj1SZWdFeHAucHJvdG90eXBlLmV4ZWMsZWU9TixxPUIoIiIuY2hhckF0KSxKPUIoIiIuaW5kZXhPZiksc2U9QigiIi5yZXBsYWNlKSxvZT1CKCIiLnNsaWNlKSxjZT0oU2U9L2IqL2csbWUoTixrZT0vYS8sImEiKSxtZShOLFNlLCJhIiksMCE9PWtlLmxhc3RJbmRl''@;'; + put 'put ''eHx8MCE9PVNlLmxhc3RJbmRleCksZGU9VS5CUk9LRU5fQ0FSRVQsdmU9dm9pZCAwIT09LygpPz8vLmV4ZWMoIiIpWzFdOyhjZXx8dmV8fGRlfHxhZXx8WSkmJihlZT1mdW5jdGlvbihTZSl7dmFyIE8seixuZSx0ZSx4LFAsVixJZT10aGlzLFRlPWllKEllKSxFZT1FKFNlKSxoZT1UZS5yYXc7''@;'; + put 'put ''aWYoaGUpcmV0dXJuIGhlLmxhc3RJbmRleD1JZS5sYXN0SW5kZXgsTz1tZShlZSxoZSxFZSksSWUubGFzdEluZGV4PWhlLmxhc3RJbmRleCxPO3ZhciBUPVRlLmdyb3VwcyxTPWRlJiZJZS5zdGlja3ksRj1tZShNZSxJZSkseWU9SWUuc291cmNlLENlPTAsRGU9RWU7aWYoUyYmKEY9c2UoRiwi''@;'; + put 'put ''eSIsIiIpLC0xPT09SihGLCJnIikmJihGKz0iZyIpLERlPW9lKEVlLEllLmxhc3RJbmRleCksSWUubGFzdEluZGV4PjAmJighSWUubXVsdGlsaW5lfHxJZS5tdWx0aWxpbmUmJiJcbiIhPT1xKEVlLEllLmxhc3RJbmRleC0xKSkmJih5ZT0iKD86ICIreWUrIikiLERlPSIgIitEZSxDZSsrKSx6''@;'; + put 'put ''PW5ldyBSZWdFeHAoIl4oPzoiK3llKyIpIixGKSksdmUmJih6PW5ldyBSZWdFeHAoIl4iK3llKyIkKD8hXFxzKSIsRikpLGNlJiYobmU9SWUubGFzdEluZGV4KSx0ZT1tZShOLFM/ejpJZSxEZSksUz90ZT8odGUuaW5wdXQ9b2UodGUuaW5wdXQsQ2UpLHRlWzBdPW9lKHRlWzBdLENlKSx0ZS5p''@;'; + put 'put ''bmRleD1JZS5sYXN0SW5kZXgsSWUubGFzdEluZGV4Kz10ZVswXS5sZW5ndGgpOkllLmxhc3RJbmRleD0wOmNlJiZ0ZSYmKEllLmxhc3RJbmRleD1JZS5nbG9iYWw/dGUuaW5kZXgrdGVbMF0ubGVuZ3RoOm5lKSx2ZSYmdGUmJnRlLmxlbmd0aD4xJiZtZShXLHRlWzBdLHosZnVuY3Rpb24oKXtm''@;'; + put 'put ''b3IoeD0xO3g8YXJndW1lbnRzLmxlbmd0aC0yO3grKyl2b2lkIDA9PT1hcmd1bWVudHNbeF0mJih0ZVt4XT12b2lkIDApfSksdGUmJlQpZm9yKHRlLmdyb3Vwcz1QPVoobnVsbCkseD0wO3g8VC5sZW5ndGg7eCsrKVBbKFY9VFt4XSlbMF1dPXRlW1ZbMV1dO3JldHVybiB0ZX0pLFhlLmV4cG9y''@;'; + put 'put ''dHM9ZWV9LDQ4NzI1OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCg1ODY0Nyk7WGUuZXhwb3J0cz1mdW5jdGlvbigpe3ZhciBCPW1lKHRoaXMpLEU9IiI7cmV0dXJuIEIuaGFzSW5kaWNlcyYmKEUrPSJkIiksQi5nbG9iYWwmJihFKz0iZyIpLEIuaWdub3JlQ2FzZSYmKEUrPSJp''@;'; + put 'put ''IiksQi5tdWx0aWxpbmUmJihFKz0ibSIpLEIuZG90QWxsJiYoRSs9InMiKSxCLnVuaWNvZGUmJihFKz0idSIpLEIudW5pY29kZVNldHMmJihFKz0idiIpLEIuc3RpY2t5JiYoRSs9InkiKSxFfX0sODE2MjA6KFhlLEplLEwpPT57dmFyIG1lPUwoMzU2MiksQj1MKDQ4ODExKSxFPUwoMzc0NzQp''@;'; + put 'put ''LE1lPUwoNDg3MjUpLFU9UmVnRXhwLnByb3RvdHlwZTtYZS5leHBvcnRzPWZ1bmN0aW9uKFEpe3ZhciBaPVEuZmxhZ3M7cmV0dXJuIHZvaWQgMCE9PVp8fCJmbGFncyJpbiBVfHxCKFEsImZsYWdzIil8fCFFKFUsUSk/WjptZShNZSxRKX19LDk3MTg5OihYZSxKZSxMKT0+e3ZhciBtZT1MKDIz''@;'; + put 'put ''NTIzKSxFPUwoNzA3MDUpLlJlZ0V4cCxNZT1tZShmdW5jdGlvbigpe3ZhciBaPUUoImEiLCJ5Iik7cmV0dXJuIFoubGFzdEluZGV4PTIsbnVsbCE9Wi5leGVjKCJhYmNkIil9KSxVPU1lfHxtZShmdW5jdGlvbigpe3JldHVybiFFKCJhIiwieSIpLnN0aWNreX0pLFE9TWV8fG1lKGZ1bmN0aW9u''@;'; + put 'put ''KCl7dmFyIFo9RSgiXnIiLCJneSIpO3JldHVybiBaLmxhc3RJbmRleD0yLG51bGwhPVouZXhlYygic3RyIil9KTtYZS5leHBvcnRzPXtCUk9LRU5fQ0FSRVQ6USxNSVNTRURfU1RJQ0tZOlUsVU5TVVBQT1JURURfWTpNZX19LDQzMTg2OihYZSxKZSxMKT0+e3ZhciBtZT1MKDIzNTIzKSxFPUwo''@;'; + put 'put ''NzA3MDUpLlJlZ0V4cDtYZS5leHBvcnRzPW1lKGZ1bmN0aW9uKCl7dmFyIE1lPUUoIi4iLCJzIik7cmV0dXJuIShNZS5kb3RBbGwmJk1lLmV4ZWMoIlxuIikmJiJzIj09PU1lLmZsYWdzKX0pfSw1MTk0OTooWGUsSmUsTCk9Pnt2YXIgbWU9TCgyMzUyMyksRT1MKDcwNzA1KS5SZWdFeHA7WGUu''@;'; + put 'put ''ZXhwb3J0cz1tZShmdW5jdGlvbigpe3ZhciBNZT1FKCIoPzxhPmIpIiwiZyIpO3JldHVybiJiIiE9PU1lLmV4ZWMoImIiKS5ncm91cHMuYXx8ImJjIiE9PSJiIi5yZXBsYWNlKE1lLCIkPGE+YyIpfSl9LDI0NTcyOlhlPT57dmFyIEplPVR5cGVFcnJvcjtYZS5leHBvcnRzPWZ1bmN0aW9uKEwp''@;'; + put 'put ''e2lmKG51bGw9PUwpdGhyb3cgSmUoIkNhbid0IGNhbGwgbWV0aG9kIG9uICIrTCk7cmV0dXJuIEx9fSw1NTg4MTpYZT0+e1hlLmV4cG9ydHM9T2JqZWN0LmlzfHxmdW5jdGlvbihMLG1lKXtyZXR1cm4gTD09PW1lPzAhPT1MfHwxL0w9PTEvbWU6TCE9TCYmbWUhPW1lfX0sOTU4OTU6KFhlLEpl''@;'; + put 'put ''LEwpPT57dmFyIG1lPUwoNzA3MDUpLEI9TCgxMTMwNiksRT1MKDEyMDE0KSxNZT1MKDc3ODM5KSxVPUwoNDA5MzApLFE9TCg3OTU0NSksWj0vTVNJRSAuXC4vLnRlc3QoTWUpLGllPW1lLkZ1bmN0aW9uLGFlPWZ1bmN0aW9uKFkpe3JldHVybiBaP2Z1bmN0aW9uKFcsTil7dmFyIGVlPVEoYXJn''@;'; + put 'put ''dW1lbnRzLmxlbmd0aCwxKT4yLHE9RShXKT9XOmllKFcpLEo9ZWU/VShhcmd1bWVudHMsMik6dm9pZCAwO3JldHVybiBZKGVlP2Z1bmN0aW9uKCl7QihxLHRoaXMsSil9OnEsTil9Oll9O1hlLmV4cG9ydHM9e3NldFRpbWVvdXQ6YWUobWUuc2V0VGltZW91dCksc2V0SW50ZXJ2YWw6YWUobWUu''@;'; + put 'put ''c2V0SW50ZXJ2YWwpfX0sNjgzMTU6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDQ2NjkzKSxCPUwoNTExODMpLEU9TCgyNTQ2KSxNZT1MKDg1NjI0KSxVPUUoInNwZWNpZXMiKTtYZS5leHBvcnRzPWZ1bmN0aW9uKFEpe3ZhciBaPW1lKFEpO01lJiZaJiYhWltVXSYmKDAsQi5m''@;'; + put 'put ''KShaLFUse2NvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc319KX19LDU1OTY4OihYZSxKZSxMKT0+e3ZhciBtZT1MKDUxMTgzKS5mLEI9TCg0ODgxMSksTWU9TCgyNTQ2KSgidG9TdHJpbmdUYWciKTtYZS5leHBvcnRzPWZ1bmN0aW9uKFUsUSxaKXtVJiYhWiYmKFU9''@;'; + put 'put ''VS5wcm90b3R5cGUpLFUmJiFCKFUsTWUpJiZtZShVLE1lLHtjb25maWd1cmFibGU6ITAsdmFsdWU6UX0pfX0sMjcyMzA6KFhlLEplLEwpPT57dmFyIG1lPUwoNjg4MzUpLEI9TCg1MjgxMCksRT1tZSgia2V5cyIpO1hlLmV4cG9ydHM9ZnVuY3Rpb24oTWUpe3JldHVybiBFW01lXXx8KEVbTWVd''@;'; + put 'put ''PUIoTWUpKX19LDgxMDY5OihYZSxKZSxMKT0+e3ZhciBtZT1MKDcwNzA1KSxCPUwoNzM0NzApLEU9Il9fY29yZS1qc19zaGFyZWRfXyIsTWU9bWVbRV18fEIoRSx7fSk7WGUuZXhwb3J0cz1NZX0sNjg4MzU6KFhlLEplLEwpPT57dmFyIG1lPUwoMTAwMTcpLEI9TCg4MTA2OSk7KFhlLmV4cG9y''@;'; + put 'put ''dHM9ZnVuY3Rpb24oRSxNZSl7cmV0dXJuIEJbRV18fChCW0VdPXZvaWQgMCE9PU1lP01lOnt9KX0pKCJ2ZXJzaW9ucyIsW10pLnB1c2goe3ZlcnNpb246IjMuMjQuMSIsbW9kZTptZT8icHVyZSI6Imdsb2JhbCIsY29weXJpZ2h0OiJceGE5IDIwMTQtMjAyMiBEZW5pcyBQdXNoa2FyZXYgKHps''@;'; + put 'put ''b2lyb2NrLnJ1KSIsbGljZW5zZToiaHR0cHM6Ly9naXRodWIuY29tL3psb2lyb2NrL2NvcmUtanMvYmxvYi92My4yNC4xL0xJQ0VOU0UiLHNvdXJjZToiaHR0cHM6Ly9naXRodWIuY29tL3psb2lyb2NrL2NvcmUtanMifSl9LDkxMzooWGUsSmUsTCk9Pnt2YXIgbWU9TCg1ODY0NyksQj1MKDU2''@;'; + put 'put ''NTgxKSxNZT1MKDI1NDYpKCJzcGVjaWVzIik7WGUuZXhwb3J0cz1mdW5jdGlvbihVLFEpe3ZhciBpZSxaPW1lKFUpLmNvbnN0cnVjdG9yO3JldHVybiB2b2lkIDA9PT1afHxudWxsPT0oaWU9bWUoWilbTWVdKT9ROkIoaWUpfX0sOTc4MTg6KFhlLEplLEwpPT57dmFyIG1lPUwoMjM1MjMpO1hl''@;'; + put 'put ''LmV4cG9ydHM9ZnVuY3Rpb24oQil7cmV0dXJuIG1lKGZ1bmN0aW9uKCl7dmFyIEU9IiJbQl0oJyInKTtyZXR1cm4gRSE9PUUudG9Mb3dlckNhc2UoKXx8RS5zcGxpdCgnIicpLmxlbmd0aD4zfSl9fSw3NTA1ODooWGUsSmUsTCk9Pnt2YXIgbWU9TCg2NjEzKSxCPUwoNDA3MDIpLEU9TCg5MjEp''@;'; + put 'put ''LE1lPUwoMjQ1NzIpLFU9bWUoIiIuY2hhckF0KSxRPW1lKCIiLmNoYXJDb2RlQXQpLFo9bWUoIiIuc2xpY2UpLGllPWZ1bmN0aW9uKGFlKXtyZXR1cm4gZnVuY3Rpb24oWSxXKXt2YXIgSixzZSxOPUUoTWUoWSkpLGVlPUIoVykscT1OLmxlbmd0aDtyZXR1cm4gZWU8MHx8ZWU+PXE/YWU/IiI6''@;'; + put 'put ''dm9pZCAwOihKPVEoTixlZSkpPDU1Mjk2fHxKPjU2MzE5fHxlZSsxPT09cXx8KHNlPVEoTixlZSsxKSk8NTYzMjB8fHNlPjU3MzQzP2FlP1UoTixlZSk6SjphZT9aKE4sZWUsZWUrMik6c2UtNTYzMjArKEotNTUyOTY8PDEwKSs2NTUzNn19O1hlLmV4cG9ydHM9e2NvZGVBdDppZSghMSksY2hh''@;'; + put 'put ''ckF0OmllKCEwKX19LDcyMjEwOihYZSxKZSxMKT0+e3ZhciBtZT1MKDc3ODM5KTtYZS5leHBvcnRzPS9WZXJzaW9uXC8xMCg/OlwuXGQrKXsxLDJ9KD86IFtcdy4vXSspPyg/OiBNb2JpbGVcL1x3Kyk/IFNhZmFyaVwvLy50ZXN0KG1lKX0sMjEyODU6KFhlLEplLEwpPT57dmFyIG1lPUwoNjYx''@;'; + put 'put ''MyksQj1MKDY1MzE2KSxFPUwoOTIxKSxNZT1MKDQ1OTYwKSxVPUwoMjQ1NzIpLFE9bWUoTWUpLFo9bWUoIiIuc2xpY2UpLGllPU1hdGguY2VpbCxhZT1mdW5jdGlvbihZKXtyZXR1cm4gZnVuY3Rpb24oVyxOLGVlKXt2YXIgY2UsZGUscT1FKFUoVykpLEo9QihOKSxzZT1xLmxlbmd0aCxvZT12''@;'; + put 'put ''b2lkIDA9PT1lZT8iICI6RShlZSk7cmV0dXJuIEo8PXNlfHwiIj09b2U/cTooKGRlPVEob2UsaWUoKGNlPUotc2UpL29lLmxlbmd0aCkpKS5sZW5ndGg+Y2UmJihkZT1aKGRlLDAsY2UpKSxZP3ErZGU6ZGUrcSl9fTtYZS5leHBvcnRzPXtzdGFydDphZSghMSksZW5kOmFlKCEwKX19LDQ1OTYw''@;'; + put 'put ''OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCg0MDcwMiksQj1MKDkyMSksRT1MKDI0NTcyKSxNZT1SYW5nZUVycm9yO1hlLmV4cG9ydHM9ZnVuY3Rpb24oUSl7dmFyIFo9QihFKHRoaXMpKSxpZT0iIixhZT1tZShRKTtpZihhZTwwfHxhZT09MS8wKXRocm93IE1lKCJXcm9uZyBu''@;'; + put 'put ''dW1iZXIgb2YgcmVwZXRpdGlvbnMiKTtmb3IoO2FlPjA7KGFlPj4+PTEpJiYoWis9WikpMSZhZSYmKGllKz1aKTtyZXR1cm4gaWV9fSw0NTcxMjooWGUsSmUsTCk9Pnt2YXIgbWU9TCgxMzg2OSkuUFJPUEVSLEI9TCgyMzUyMyksRT1MKDc3ODYzKTtYZS5leHBvcnRzPWZ1bmN0aW9uKFUpe3Jl''@;'; + put 'put ''dHVybiBCKGZ1bmN0aW9uKCl7cmV0dXJuISFFW1VdKCl8fCJcdTIwMGJceDg1XHUxODBlIiE9PSJcdTIwMGJceDg1XHUxODBlIltVXSgpfHxtZSYmRVtVXS5uYW1lIT09VX0pfX0sOTMxNjY6KFhlLEplLEwpPT57dmFyIG1lPUwoNjYxMyksQj1MKDI0NTcyKSxFPUwoOTIxKSxNZT1MKDc3ODYz''@;'; + put 'put ''KSxVPW1lKCIiLnJlcGxhY2UpLFE9IlsiK01lKyJdIixaPVJlZ0V4cCgiXiIrUStRKyIqIiksaWU9UmVnRXhwKFErUSsiKiQiKSxhZT1mdW5jdGlvbihZKXtyZXR1cm4gZnVuY3Rpb24oVyl7dmFyIE49RShCKFcpKTtyZXR1cm4gMSZZJiYoTj1VKE4sWiwiIikpLDImWSYmKE49VShOLGllLCIi''@;'; + put 'put ''KSksTn19O1hlLmV4cG9ydHM9e3N0YXJ0OmFlKDEpLGVuZDphZSgyKSx0cmltOmFlKDMpfX0sMTQ0OTg6KFhlLEplLEwpPT57dmFyIG1lPUwoMzU2MiksQj1MKDQ2NjkzKSxFPUwoMjU0NiksTWU9TCgyNTY2Nik7WGUuZXhwb3J0cz1mdW5jdGlvbigpe3ZhciBVPUIoIlN5bWJvbCIpLFE9VSYm''@;'; + put 'put ''VS5wcm90b3R5cGUsWj1RJiZRLnZhbHVlT2YsaWU9RSgidG9QcmltaXRpdmUiKTtRJiYhUVtpZV0mJk1lKFEsaWUsZnVuY3Rpb24oYWUpe3JldHVybiBtZShaLHRoaXMpfSx7YXJpdHk6MX0pfX0sNTUyNjE6KFhlLEplLEwpPT57dmFyIFNlLEllLFRlLEVlLG1lPUwoNzA3MDUpLEI9TCgxMTMw''@;'; + put 'put ''NiksRT1MKDg1NDkpLE1lPUwoMTIwMTQpLFU9TCg0ODgxMSksUT1MKDIzNTIzKSxaPUwoNTk0MDYpLGllPUwoNDA5MzApLGFlPUwoNDYzMTMpLFk9TCg3OTU0NSksVz1MKDc4NTIwKSxOPUwoODcyNDQpLGVlPW1lLnNldEltbWVkaWF0ZSxxPW1lLmNsZWFySW1tZWRpYXRlLEo9bWUucHJvY2Vz''@;'; + put 'put ''cyxzZT1tZS5EaXNwYXRjaCxvZT1tZS5GdW5jdGlvbixjZT1tZS5NZXNzYWdlQ2hhbm5lbCxkZT1tZS5TdHJpbmcsdmU9MCxBZT17fSxrZT0ib25yZWFkeXN0YXRlY2hhbmdlIjt0cnl7U2U9bWUubG9jYXRpb259Y2F0Y2godGUpe312YXIgaGU9ZnVuY3Rpb24odGUpe2lmKFUoQWUsdGUpKXt2''@;'; + put 'put ''YXIgeD1BZVt0ZV07ZGVsZXRlIEFlW3RlXSx4KCl9fSxPPWZ1bmN0aW9uKHRlKXtyZXR1cm4gZnVuY3Rpb24oKXtoZSh0ZSl9fSx6PWZ1bmN0aW9uKHRlKXtoZSh0ZS5kYXRhKX0sbmU9ZnVuY3Rpb24odGUpe21lLnBvc3RNZXNzYWdlKGRlKHRlKSxTZS5wcm90b2NvbCsiLy8iK1NlLmhvc3Qp''@;'; + put 'put ''fTsoIWVlfHwhcSkmJihlZT1mdW5jdGlvbih4KXtZKGFyZ3VtZW50cy5sZW5ndGgsMSk7dmFyIFA9TWUoeCk/eDpvZSh4KSxWPWllKGFyZ3VtZW50cywxKTtyZXR1cm4gQWVbKyt2ZV09ZnVuY3Rpb24oKXtCKFAsdm9pZCAwLFYpfSxJZSh2ZSksdmV9LHE9ZnVuY3Rpb24oeCl7ZGVsZXRlIEFl''@;'; + put 'put ''W3hdfSxOP0llPWZ1bmN0aW9uKHRlKXtKLm5leHRUaWNrKE8odGUpKX06c2UmJnNlLm5vdz9JZT1mdW5jdGlvbih0ZSl7c2Uubm93KE8odGUpKX06Y2UmJiFXPyhFZT0oVGU9bmV3IGNlKS5wb3J0MixUZS5wb3J0MS5vbm1lc3NhZ2U9eixJZT1FKEVlLnBvc3RNZXNzYWdlLEVlKSk6bWUuYWRk''@;'; + put 'put ''RXZlbnRMaXN0ZW5lciYmTWUobWUucG9zdE1lc3NhZ2UpJiYhbWUuaW1wb3J0U2NyaXB0cyYmU2UmJiJmaWxlOiIhPT1TZS5wcm90b2NvbCYmIVEobmUpPyhJZT1uZSxtZS5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIix6LCExKSk6SWU9a2UgaW4gYWUoInNjcmlwdCIpP2Z1bmN0aW9uKHRl''@;'; + put 'put ''KXtaLmFwcGVuZENoaWxkKGFlKCJzY3JpcHQiKSlba2VdPWZ1bmN0aW9uKCl7Wi5yZW1vdmVDaGlsZCh0aGlzKSxoZSh0ZSl9fTpmdW5jdGlvbih0ZSl7c2V0VGltZW91dChPKHRlKSwwKX0pLFhlLmV4cG9ydHM9e3NldDplZSxjbGVhcjpxfX0sMTQyNjooWGUsSmUsTCk9Pnt2YXIgbWU9TCg2''@;'; + put 'put ''NjEzKTtYZS5leHBvcnRzPW1lKDEuLnZhbHVlT2YpfSw3NjE2MzooWGUsSmUsTCk9Pnt2YXIgbWU9TCg0MDcwMiksQj1NYXRoLm1heCxFPU1hdGgubWluO1hlLmV4cG9ydHM9ZnVuY3Rpb24oTWUsVSl7dmFyIFE9bWUoTWUpO3JldHVybiBRPDA/QihRK1UsMCk6RShRLFUpfX0sNTAzMjc6KFhl''@;'; + put 'put ''LEplLEwpPT57dmFyIG1lPUwoNTY2MDcpLEI9TCgyNDU3Mik7WGUuZXhwb3J0cz1mdW5jdGlvbihFKXtyZXR1cm4gbWUoQihFKSl9fSw0MDcwMjooWGUsSmUsTCk9Pnt2YXIgbWU9TCg4NDc0NCk7WGUuZXhwb3J0cz1mdW5jdGlvbihCKXt2YXIgRT0rQjtyZXR1cm4gRSE9RXx8MD09PUU/MDpt''@;'; + put 'put ''ZShFKX19LDY1MzE2OihYZSxKZSxMKT0+e3ZhciBtZT1MKDQwNzAyKSxCPU1hdGgubWluO1hlLmV4cG9ydHM9ZnVuY3Rpb24oRSl7cmV0dXJuIEU+MD9CKG1lKEUpLDkwMDcxOTkyNTQ3NDA5OTEpOjB9fSw2ODA3MTooWGUsSmUsTCk9Pnt2YXIgbWU9TCgyNDU3MiksQj1PYmplY3Q7WGUuZXhw''@;'; + put 'put ''b3J0cz1mdW5jdGlvbihFKXtyZXR1cm4gQihtZShFKSl9fSw3NTUzNzooWGUsSmUsTCk9Pnt2YXIgbWU9TCgzNTYyKSxCPUwoNzE0OTYpLEU9TCg2OTc1KSxNZT1MKDIwOTQ4KSxVPUwoNjM0MTUpLFE9TCgyNTQ2KSxaPVR5cGVFcnJvcixpZT1RKCJ0b1ByaW1pdGl2ZSIpO1hlLmV4cG9ydHM9''@;'; + put 'put ''ZnVuY3Rpb24oYWUsWSl7aWYoIUIoYWUpfHxFKGFlKSlyZXR1cm4gYWU7dmFyIE4sVz1NZShhZSxpZSk7aWYoVyl7aWYodm9pZCAwPT09WSYmKFk9ImRlZmF1bHQiKSxOPW1lKFcsYWUsWSksIUIoTil8fEUoTikpcmV0dXJuIE47dGhyb3cgWigiQ2FuJ3QgY29udmVydCBvYmplY3QgdG8gcHJp''@;'; + put 'put ''bWl0aXZlIHZhbHVlIil9cmV0dXJuIHZvaWQgMD09PVkmJihZPSJudW1iZXIiKSxVKGFlLFkpfX0sODQwOTQ6KFhlLEplLEwpPT57dmFyIG1lPUwoNzU1MzcpLEI9TCg2OTc1KTtYZS5leHBvcnRzPWZ1bmN0aW9uKEUpe3ZhciBNZT1tZShFLCJzdHJpbmciKTtyZXR1cm4gQihNZSk/TWU6TWUr''@;'; + put 'put ''IiJ9fSwyNzQ5MDooWGUsSmUsTCk9Pnt2YXIgRT17fTtFW0woMjU0NikoInRvU3RyaW5nVGFnIildPSJ6IixYZS5leHBvcnRzPSJbb2JqZWN0IHpdIj09PVN0cmluZyhFKX0sOTIxOihYZSxKZSxMKT0+e3ZhciBtZT1MKDc5NTIwKSxCPVN0cmluZztYZS5leHBvcnRzPWZ1bmN0aW9uKEUpe2lm''@;'; + put 'put ''KCJTeW1ib2wiPT09bWUoRSkpdGhyb3cgVHlwZUVycm9yKCJDYW5ub3QgY29udmVydCBhIFN5bWJvbCB2YWx1ZSB0byBhIHN0cmluZyIpO3JldHVybiBCKEUpfX0sOTQ2NzY6WGU9Pnt2YXIgSmU9U3RyaW5nO1hlLmV4cG9ydHM9ZnVuY3Rpb24oTCl7dHJ5e3JldHVybiBKZShMKX1jYXRjaCht''@;'; + put 'put ''ZSl7cmV0dXJuIk9iamVjdCJ9fX0sNTI4MTA6KFhlLEplLEwpPT57dmFyIG1lPUwoNjYxMyksQj0wLEU9TWF0aC5yYW5kb20oKSxNZT1tZSgxLi50b1N0cmluZyk7WGUuZXhwb3J0cz1mdW5jdGlvbihVKXtyZXR1cm4iU3ltYm9sKCIrKHZvaWQgMD09PVU/IiI6VSkrIilfIitNZSgrK0IrRSwz''@;'; + put 'put ''Nil9fSwyMzk2MTooWGUsSmUsTCk9Pnt2YXIgbWU9TCg4Mjc3MCk7WGUuZXhwb3J0cz1tZSYmIVN5bWJvbC5zaGFtJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcn0sMjAxMTg6KFhlLEplLEwpPT57dmFyIG1lPUwoODU2MjQpLEI9TCgyMzUyMyk7WGUuZXhwb3J0cz1tZSYmQihm''@;'; + put 'put ''dW5jdGlvbigpe3JldHVybiA0MiE9T2JqZWN0LmRlZmluZVByb3BlcnR5KGZ1bmN0aW9uKCl7fSwicHJvdG90eXBlIix7dmFsdWU6NDIsd3JpdGFibGU6ITF9KS5wcm90b3R5cGV9KX0sNzk1NDU6WGU9Pnt2YXIgSmU9VHlwZUVycm9yO1hlLmV4cG9ydHM9ZnVuY3Rpb24oTCxtZSl7aWYoTDxt''@;'; + put 'put ''ZSl0aHJvdyBKZSgiTm90IGVub3VnaCBhcmd1bWVudHMiKTtyZXR1cm4gTH19LDI4MTE6KFhlLEplLEwpPT57dmFyIG1lPUwoMjU0Nik7SmUuZj1tZX0sMjU0NjooWGUsSmUsTCk9Pnt2YXIgbWU9TCg3MDcwNSksQj1MKDY4ODM1KSxFPUwoNDg4MTEpLE1lPUwoNTI4MTApLFU9TCg4Mjc3MCks''@;'; + put 'put ''UT1MKDIzOTYxKSxaPUIoIndrcyIpLGllPW1lLlN5bWJvbCxhZT1pZSYmaWUuZm9yLFk9UT9pZTppZSYmaWUud2l0aG91dFNldHRlcnx8TWU7WGUuZXhwb3J0cz1mdW5jdGlvbihXKXtpZighRShaLFcpfHwhVSYmInN0cmluZyIhPXR5cGVvZiBaW1ddKXt2YXIgTj0iU3ltYm9sLiIrVztaW1dd''@;'; + put 'put ''PVUmJkUoaWUsVyk/aWVbV106USYmYWU/YWUoTik6WShOKX1yZXR1cm4gWltXXX19LDc3ODYzOlhlPT57WGUuZXhwb3J0cz0iXHRcblx2XGZcciBceGEwXHUxNjgwXHUyMDAwXHUyMDAxXHUyMDAyXHUyMDAzXHUyMDA0XHUyMDA1XHUyMDA2XHUyMDA3XHUyMDA4XHUyMDA5XHUyMDBhXHUyMDJm''@;'; + put 'put ''XHUyMDVmXHUzMDAwXHUyMDI4XHUyMDI5XHVmZWZmIn0sMzExMjM6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDg1NjQ4KSxCPUwoMjM1MjMpLEU9TCgyOTEwNiksTWU9TCg3MTQ5NiksVT1MKDY4MDcxKSxRPUwoNTQ0NTApLFo9TCgyMzEyNCksaWU9TCg5NTAwNCksYWU9TCgz''@;'; + put 'put ''MTg1NyksWT1MKDUxMjk4KSxXPUwoMjU0NiksTj1MKDI5Mzg1KSxlZT1XKCJpc0NvbmNhdFNwcmVhZGFibGUiKSxxPU4+PTUxfHwhQihmdW5jdGlvbigpe3ZhciBjZT1bXTtyZXR1cm4gY2VbZWVdPSExLGNlLmNvbmNhdCgpWzBdIT09Y2V9KSxKPVkoImNvbmNhdCIpLHNlPWZ1bmN0aW9uKGNl''@;'; + put 'put ''KXtpZighTWUoY2UpKXJldHVybiExO3ZhciBkZT1jZVtlZV07cmV0dXJuIHZvaWQgMCE9PWRlPyEhZGU6RShjZSl9O21lKHt0YXJnZXQ6IkFycmF5Iixwcm90bzohMCxhcml0eToxLGZvcmNlZDohcXx8IUp9LHtjb25jYXQ6ZnVuY3Rpb24oZGUpe3ZhciBTZSxJZSxUZSxFZSxoZSx2ZT1VKHRo''@;'; + put 'put ''aXMpLEFlPWFlKHZlLDApLGtlPTA7Zm9yKFNlPS0xLFRlPWFyZ3VtZW50cy5sZW5ndGg7U2U8VGU7U2UrKylpZihzZShoZT0tMT09PVNlP3ZlOmFyZ3VtZW50c1tTZV0pKWZvcihFZT1RKGhlKSxaKGtlK0VlKSxJZT0wO0llPEVlO0llKyssa2UrKylJZSBpbiBoZSYmaWUoQWUsa2UsaGVbSWVd''@;'; + put 'put ''KTtlbHNlIFooa2UrMSksaWUoQWUsa2UrKyxoZSk7cmV0dXJuIEFlLmxlbmd0aD1rZSxBZX19KX0sMjQ4MDooWGUsSmUsTCk9Pnt2YXIgbWU9TCg4NTY0OCksQj1MKDU3MTc5KSxFPUwoNzQ5NjUpO21lKHt0YXJnZXQ6IkFycmF5Iixwcm90bzohMH0se2ZpbGw6Qn0pLEUoImZpbGwiKX0sMzQ3''@;'; + put 'put ''NzA6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDg1NjQ4KSxCPUwoOTU2NjkpLmZpbHRlcjttZSh7dGFyZ2V0OiJBcnJheSIscHJvdG86ITAsZm9yY2VkOiFMKDUxMjk4KSgiZmlsdGVyIil9LHtmaWx0ZXI6ZnVuY3Rpb24oUSl7cmV0dXJuIEIodGhpcyxRLGFyZ3VtZW50cy5s''@;'; + put 'put ''ZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKX19KX0sMzU4MTA6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDg1NjQ4KSxCPUwoOTU2NjkpLmZpbmRJbmRleCxFPUwoNzQ5NjUpLE1lPSJmaW5kSW5kZXgiLFU9ITA7TWUgaW5bXSYmQXJyYXkoMSlbTWVdKGZ1bmN0aW9uKCl7''@;'; + put 'put ''VT0hMX0pLG1lKHt0YXJnZXQ6IkFycmF5Iixwcm90bzohMCxmb3JjZWQ6VX0se2ZpbmRJbmRleDpmdW5jdGlvbihaKXtyZXR1cm4gQih0aGlzLFosYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApfX0pLEUoTWUpfSw1NDY3OTooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7''@;'; + put 'put ''dmFyIG1lPUwoODU2NDgpLEI9TCg5NTY2OSkuZmluZCxFPUwoNzQ5NjUpLE1lPSJmaW5kIixVPSEwO01lIGluW10mJkFycmF5KDEpW01lXShmdW5jdGlvbigpe1U9ITF9KSxtZSh7dGFyZ2V0OiJBcnJheSIscHJvdG86ITAsZm9yY2VkOlV9LHtmaW5kOmZ1bmN0aW9uKFope3JldHVybiBCKHRo''@;'; + put 'put ''aXMsWixhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCl9fSksRShNZSl9LDY5MTA6KFhlLEplLEwpPT57dmFyIG1lPUwoODU2NDgpLEI9TCg2NjY2Nik7bWUoe3RhcmdldDoiQXJyYXkiLHN0YXQ6ITAsZm9yY2VkOiFMKDI3NzkyKShmdW5jdGlvbihVKXtBcnJheS5mcm9t''@;'; + put 'put ''KFUpfSl9LHtmcm9tOkJ9KX0sMTM0MDA6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDg1NjQ4KSxCPUwoMzYzMDUpLmluY2x1ZGVzLEU9TCgyMzUyMyksTWU9TCg3NDk2NSk7bWUoe3RhcmdldDoiQXJyYXkiLHByb3RvOiEwLGZvcmNlZDpFKGZ1bmN0aW9uKCl7cmV0dXJuIUFy''@;'; + put 'put ''cmF5KDEpLmluY2x1ZGVzKCl9KX0se2luY2x1ZGVzOmZ1bmN0aW9uKFope3JldHVybiBCKHRoaXMsWixhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCl9fSksTWUoImluY2x1ZGVzIil9LDYzOTY3OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCg4NTY0OCks''@;'; + put 'put ''Qj1MKDY2MTMpLEU9TCgzNjMwNSkuaW5kZXhPZixNZT1MKDYzMTI0KSxVPUIoW10uaW5kZXhPZiksUT0hIVUmJjEvVShbMV0sMSwtMCk8MCxaPU1lKCJpbmRleE9mIik7bWUoe3RhcmdldDoiQXJyYXkiLHByb3RvOiEwLGZvcmNlZDpRfHwhWn0se2luZGV4T2Y6ZnVuY3Rpb24oYWUpe3ZhciBZ''@;'; + put 'put ''PWFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwO3JldHVybiBRP1UodGhpcyxhZSxZKXx8MDpFKHRoaXMsYWUsWSl9fSl9LDU3OTQzOihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCg1MDMyNyksQj1MKDc0OTY1KSxFPUwoOTUyNTcpLE1lPUwoNzI3KSxVPUwo''@;'; + put 'put ''NTExODMpLmYsUT1MKDM4NDk3KSxaPUwoMTAwMTcpLGllPUwoODU2MjQpLGFlPSJBcnJheSBJdGVyYXRvciIsWT1NZS5zZXQsVz1NZS5nZXR0ZXJGb3IoYWUpO1hlLmV4cG9ydHM9UShBcnJheSwiQXJyYXkiLGZ1bmN0aW9uKGVlLHEpe1kodGhpcyx7dHlwZTphZSx0YXJnZXQ6bWUoZWUpLGlu''@;'; + put 'put ''ZGV4OjAsa2luZDpxfSl9LGZ1bmN0aW9uKCl7dmFyIGVlPVcodGhpcykscT1lZS50YXJnZXQsSj1lZS5raW5kLHNlPWVlLmluZGV4Kys7cmV0dXJuIXF8fHNlPj1xLmxlbmd0aD8oZWUudGFyZ2V0PXZvaWQgMCx7dmFsdWU6dm9pZCAwLGRvbmU6ITB9KToia2V5cyI9PUo/e3ZhbHVlOnNlLGRv''@;'; + put 'put ''bmU6ITF9OiJ2YWx1ZXMiPT1KP3t2YWx1ZTpxW3NlXSxkb25lOiExfTp7dmFsdWU6W3NlLHFbc2VdXSxkb25lOiExfX0sInZhbHVlcyIpO3ZhciBOPUUuQXJndW1lbnRzPUUuQXJyYXk7aWYoQigia2V5cyIpLEIoInZhbHVlcyIpLEIoImVudHJpZXMiKSwhWiYmaWUmJiJ2YWx1ZXMiIT09Ti5u''@;'; + put 'put ''YW1lKXRyeXtVKE4sIm5hbWUiLHt2YWx1ZToidmFsdWVzIn0pfWNhdGNoKGVlKXt9fSw3Njc0OTooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoODU2NDgpLEI9TCg2NjEzKSxFPUwoNTY2MDcpLE1lPUwoNTAzMjcpLFU9TCg2MzEyNCksUT1CKFtdLmpvaW4pLFo9RSE9T2JqZWN0''@;'; + put 'put ''LGllPVUoImpvaW4iLCIsIik7bWUoe3RhcmdldDoiQXJyYXkiLHByb3RvOiEwLGZvcmNlZDpafHwhaWV9LHtqb2luOmZ1bmN0aW9uKFkpe3JldHVybiBRKE1lKHRoaXMpLHZvaWQgMD09PVk/IiwiOlkpfX0pfSw1ODA6KFhlLEplLEwpPT57dmFyIG1lPUwoODU2NDgpLEI9TCg5NjIyKTttZSh7''@;'; + put 'put ''dGFyZ2V0OiJBcnJheSIscHJvdG86ITAsZm9yY2VkOkIhPT1bXS5sYXN0SW5kZXhPZn0se2xhc3RJbmRleE9mOkJ9KX0sODMwMjg6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDg1NjQ4KSxCPUwoOTU2NjkpLm1hcDttZSh7dGFyZ2V0OiJBcnJheSIscHJvdG86ITAsZm9yY2Vk''@;'; + put 'put ''OiFMKDUxMjk4KSgibWFwIil9LHttYXA6ZnVuY3Rpb24oUSl7cmV0dXJuIEIodGhpcyxRLGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKX19KX0sNzE3NzI6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDg1NjQ4KSxCPUwoNzM3NjApLmxlZnQsRT1MKDYz''@;'; + put 'put ''MTI0KSxNZT1MKDI5Mzg1KSxVPUwoODcyNDQpO21lKHt0YXJnZXQ6IkFycmF5Iixwcm90bzohMCxmb3JjZWQ6IUUoInJlZHVjZSIpfHwhVSYmTWU+NzkmJk1lPDgzfSx7cmVkdWNlOmZ1bmN0aW9uKGFlKXt2YXIgWT1hcmd1bWVudHMubGVuZ3RoO3JldHVybiBCKHRoaXMsYWUsWSxZPjE/YXJn''@;'; + put 'put ''dW1lbnRzWzFdOnZvaWQgMCl9fSl9LDgzNTkwOihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCg4NTY0OCksQj1MKDY2MTMpLEU9TCgyOTEwNiksTWU9QihbXS5yZXZlcnNlKSxVPVsxLDJdO21lKHt0YXJnZXQ6IkFycmF5Iixwcm90bzohMCxmb3JjZWQ6U3RyaW5nKFUpPT09U3Ry''@;'; + put 'put ''aW5nKFUucmV2ZXJzZSgpKX0se3JldmVyc2U6ZnVuY3Rpb24oKXtyZXR1cm4gRSh0aGlzKSYmKHRoaXMubGVuZ3RoPXRoaXMubGVuZ3RoKSxNZSh0aGlzKX19KX0sOTcwODc6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDg1NjQ4KSxCPUwoMjkxMDYpLEU9TCg0OTQ1MyksTWU9''@;'; + put 'put ''TCg3MTQ5NiksVT1MKDc2MTYzKSxRPUwoNTQ0NTApLFo9TCg1MDMyNyksaWU9TCg5NTAwNCksYWU9TCgyNTQ2KSxZPUwoNTEyOTgpLFc9TCg0MDkzMCksTj1ZKCJzbGljZSIpLGVlPWFlKCJzcGVjaWVzIikscT1BcnJheSxKPU1hdGgubWF4O21lKHt0YXJnZXQ6IkFycmF5Iixwcm90bzohMCxm''@;'; + put 'put ''b3JjZWQ6IU59LHtzbGljZTpmdW5jdGlvbihvZSxjZSl7dmFyIFNlLEllLFRlLGRlPVoodGhpcyksdmU9UShkZSksQWU9VShvZSx2ZSksa2U9VSh2b2lkIDA9PT1jZT92ZTpjZSx2ZSk7aWYoQihkZSkmJigoRShTZT1kZS5jb25zdHJ1Y3RvcikmJihTZT09PXF8fEIoU2UucHJvdG90eXBlKSl8''@;'; + put 'put ''fE1lKFNlKSYmbnVsbD09PShTZT1TZVtlZV0pKSYmKFNlPXZvaWQgMCksU2U9PT1xfHx2b2lkIDA9PT1TZSkpcmV0dXJuIFcoZGUsQWUsa2UpO2ZvcihJZT1uZXcodm9pZCAwPT09U2U/cTpTZSkoSihrZS1BZSwwKSksVGU9MDtBZTxrZTtBZSsrLFRlKyspQWUgaW4gZGUmJmllKEllLFRlLGRl''@;'; + put 'put ''W0FlXSk7cmV0dXJuIEllLmxlbmd0aD1UZSxJZX19KX0sMTMyNzg6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDg1NjQ4KSxCPUwoNjYxMyksRT1MKDgxNDUwKSxNZT1MKDY4MDcxKSxVPUwoNTQ0NTApLFE9TCg0NjI4KSxaPUwoOTIxKSxpZT1MKDIzNTIzKSxhZT1MKDMyNTk0''@;'; + put 'put ''KSxZPUwoNjMxMjQpLFc9TCg3NTcwNiksTj1MKDk4ODYpLGVlPUwoMjkzODUpLHE9TCg5NjM0KSxKPVtdLHNlPUIoSi5zb3J0KSxvZT1CKEoucHVzaCksY2U9aWUoZnVuY3Rpb24oKXtKLnNvcnQodm9pZCAwKX0pLGRlPWllKGZ1bmN0aW9uKCl7Si5zb3J0KG51bGwpfSksdmU9WSgic29ydCIp''@;'; + put 'put ''LEFlPSFpZShmdW5jdGlvbigpe2lmKGVlKXJldHVybiBlZTw3MDtpZighKFcmJlc+Mykpe2lmKE4pcmV0dXJuITA7aWYocSlyZXR1cm4gcTw2MDM7dmFyIFRlLEVlLGhlLE8sSWU9IiI7Zm9yKFRlPTY1O1RlPDc2O1RlKyspe3N3aXRjaChFZT1TdHJpbmcuZnJvbUNoYXJDb2RlKFRlKSxUZSl7''@;'; + put 'put ''Y2FzZSA2NjpjYXNlIDY5OmNhc2UgNzA6Y2FzZSA3MjpoZT0zO2JyZWFrO2Nhc2UgNjg6Y2FzZSA3MTpoZT00O2JyZWFrO2RlZmF1bHQ6aGU9Mn1mb3IoTz0wO088NDc7TysrKUoucHVzaCh7azpFZStPLHY6aGV9KX1mb3IoSi5zb3J0KGZ1bmN0aW9uKHosbmUpe3JldHVybiBuZS52LXoudn0p''@;'; + put 'put ''LE89MDtPPEoubGVuZ3RoO08rKylFZT1KW09dLmsuY2hhckF0KDApLEllLmNoYXJBdChJZS5sZW5ndGgtMSkhPT1FZSYmKEllKz1FZSk7cmV0dXJuIkRHQkVGSEFDSUpLIiE9PUllfX0pO21lKHt0YXJnZXQ6IkFycmF5Iixwcm90bzohMCxmb3JjZWQ6Y2V8fCFkZXx8IXZlfHwhQWV9LHtzb3J0''@;'; + put 'put ''OmZ1bmN0aW9uKFRlKXt2b2lkIDAhPT1UZSYmRShUZSk7dmFyIEVlPU1lKHRoaXMpO2lmKEFlKXJldHVybiB2b2lkIDA9PT1UZT9zZShFZSk6c2UoRWUsVGUpO3ZhciB6LG5lLGhlPVtdLE89VShFZSk7Zm9yKG5lPTA7bmU8TztuZSsrKW5lIGluIEVlJiZvZShoZSxFZVtuZV0pO2ZvcihhZSho''@;'; + put 'put ''ZSxmdW5jdGlvbihJZSl7cmV0dXJuIGZ1bmN0aW9uKFRlLEVlKXtyZXR1cm4gdm9pZCAwPT09RWU/LTE6dm9pZCAwPT09VGU/MTp2b2lkIDAhPT1JZT8rSWUoVGUsRWUpfHwwOlooVGUpPlooRWUpPzE6LTF9fShUZSkpLHo9aGUubGVuZ3RoLG5lPTA7bmU8ejspRWVbbmVdPWhlW25lKytdO2Zv''@;'; + put 'put ''cig7bmU8TzspUShFZSxuZSsrKTtyZXR1cm4gRWV9fSl9LDUyMzEzOihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCg4NTY0OCksQj1MKDY4MDcxKSxFPUwoNzYxNjMpLE1lPUwoNDA3MDIpLFU9TCg1NDQ1MCksUT1MKDIzMTI0KSxaPUwoMzE4NTcpLGllPUwoOTUwMDQpLGFlPUwo''@;'; + put 'put ''NDYyOCksVz1MKDUxMjk4KSgic3BsaWNlIiksTj1NYXRoLm1heCxlZT1NYXRoLm1pbjttZSh7dGFyZ2V0OiJBcnJheSIscHJvdG86ITAsZm9yY2VkOiFXfSx7c3BsaWNlOmZ1bmN0aW9uKEosc2Upe3ZhciBBZSxrZSxTZSxJZSxUZSxFZSxvZT1CKHRoaXMpLGNlPVUob2UpLGRlPUUoSixjZSks''@;'; + put 'put ''dmU9YXJndW1lbnRzLmxlbmd0aDtmb3IoMD09PXZlP0FlPWtlPTA6MT09PXZlPyhBZT0wLGtlPWNlLWRlKTooQWU9dmUtMixrZT1lZShOKE1lKHNlKSwwKSxjZS1kZSkpLFEoY2UrQWUta2UpLFNlPVoob2Usa2UpLEllPTA7SWU8a2U7SWUrKykoVGU9ZGUrSWUpaW4gb2UmJmllKFNlLEllLG9l''@;'; + put 'put ''W1RlXSk7aWYoU2UubGVuZ3RoPWtlLEFlPGtlKXtmb3IoSWU9ZGU7SWU8Y2Uta2U7SWUrKylFZT1JZStBZSwoVGU9SWUra2UpaW4gb2U/b2VbRWVdPW9lW1RlXTphZShvZSxFZSk7Zm9yKEllPWNlO0llPmNlLWtlK0FlO0llLS0pYWUob2UsSWUtMSl9ZWxzZSBpZihBZT5rZSlmb3IoSWU9Y2Ut''@;'; + put 'put ''a2U7SWU+ZGU7SWUtLSlFZT1JZStBZS0xLChUZT1JZStrZS0xKWluIG9lP29lW0VlXT1vZVtUZV06YWUob2UsRWUpO2ZvcihJZT0wO0llPEFlO0llKyspb2VbSWUrZGVdPWFyZ3VtZW50c1tJZSsyXTtyZXR1cm4gb2UubGVuZ3RoPWNlLWtlK0FlLFNlfX0pfSwxODE1ODooWGUsSmUsTCk9Pnt2''@;'; + put 'put ''YXIgbWU9TCg4NTYyNCksQj1MKDEzODY5KS5FWElTVFMsRT1MKDY2MTMpLE1lPUwoNTExODMpLmYsVT1GdW5jdGlvbi5wcm90b3R5cGUsUT1FKFUudG9TdHJpbmcpLFo9L2Z1bmN0aW9uXGIoPzpcc3xcL1wqW1xTXHNdKj9cKlwvfFwvXC9bXlxuXHJdKltcblxyXSspKihbXlxzKC9dKikvLGll''@;'; + put 'put ''PUUoWi5leGVjKTttZSYmIUImJk1lKFUsIm5hbWUiLHtjb25maWd1cmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7dHJ5e3JldHVybiBpZShaLFEodGhpcykpWzFdfWNhdGNoKFkpe3JldHVybiIifX19KX0sMTMwMDY6KFhlLEplLEwpPT57dmFyIG1lPUwoODU2NDgpLEI9TCg0NjY5MyksRT1MKDEx''@;'; + put 'put ''MzA2KSxNZT1MKDM1NjIpLFU9TCg2NjEzKSxRPUwoMjM1MjMpLFo9TCgyOTEwNiksaWU9TCgxMjAxNCksYWU9TCg3MTQ5NiksWT1MKDY5NzUpLFc9TCg0MDkzMCksTj1MKDgyNzcwKSxlZT1CKCJKU09OIiwic3RyaW5naWZ5IikscT1VKC8uLy5leGVjKSxKPVUoIiIuY2hhckF0KSxzZT1VKCIi''@;'; + put 'put ''LmNoYXJDb2RlQXQpLG9lPVUoIiIucmVwbGFjZSksY2U9VSgxLi50b1N0cmluZyksZGU9L1tcdUQ4MDAtXHVERkZGXS9nLHZlPS9eW1x1RDgwMC1cdURCRkZdJC8sQWU9L15bXHVEQzAwLVx1REZGRl0kLyxrZT0hTnx8UShmdW5jdGlvbigpe3ZhciBFZT1CKCJTeW1ib2wiKSgpO3JldHVybiJb''@;'; + put 'put ''bnVsbF0iIT1lZShbRWVdKXx8Int9IiE9ZWUoe2E6RWV9KXx8Int9IiE9ZWUoT2JqZWN0KEVlKSl9KSxTZT1RKGZ1bmN0aW9uKCl7cmV0dXJuJyJcXHVkZjA2XFx1ZDgzNCInIT09ZWUoIlx1ZGYwNlx1ZDgzNCIpfHwnIlxcdWRlYWQiJyE9PWVlKCJcdWRlYWQiKX0pLEllPWZ1bmN0aW9uKEVl''@;'; + put 'put ''LGhlKXt2YXIgTz1XKGFyZ3VtZW50cyksej1oZTtpZigoYWUoaGUpfHx2b2lkIDAhPT1FZSkmJiFZKEVlKSlyZXR1cm4gWihoZSl8fChoZT1mdW5jdGlvbihuZSx0ZSl7aWYoaWUoeikmJih0ZT1NZSh6LHRoaXMsbmUsdGUpKSwhWSh0ZSkpcmV0dXJuIHRlfSksT1sxXT1oZSxFKGVlLG51bGws''@;'; + put 'put ''Tyl9LFRlPWZ1bmN0aW9uKEVlLGhlLE8pe3ZhciB6PUooTyxoZS0xKSxuZT1KKE8saGUrMSk7cmV0dXJuIHEodmUsRWUpJiYhcShBZSxuZSl8fHEoQWUsRWUpJiYhcSh2ZSx6KT8iXFx1IitjZShzZShFZSwwKSwxNik6RWV9O2VlJiZtZSh7dGFyZ2V0OiJKU09OIixzdGF0OiEwLGFyaXR5OjMs''@;'; + put 'put ''Zm9yY2VkOmtlfHxTZX0se3N0cmluZ2lmeTpmdW5jdGlvbihoZSxPLHope3ZhciBuZT1XKGFyZ3VtZW50cyksdGU9RShrZT9JZTplZSxudWxsLG5lKTtyZXR1cm4gU2UmJiJzdHJpbmciPT10eXBlb2YgdGU/b2UodGUsZGUsVGUpOnRlfX0pfSw4ODc2MjooWGUsSmUsTCk9PnsidXNlIHN0cmlj''@;'; + put 'put ''dCI7TCg0Njg1NykoIk1hcCIsZnVuY3Rpb24oRSl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIEUodGhpcyxhcmd1bWVudHMubGVuZ3RoP2FyZ3VtZW50c1swXTp2b2lkIDApfX0sTCg0NTE0MCkpfSw5NjY0OihYZSxKZSxMKT0+e0woODg3NjIpfSw2NDk1MjooWGUsSmUsTCk9PnsidXNlIHN0''@;'; + put 'put ''cmljdCI7dmFyIG1lPUwoODU2MjQpLEI9TCg3MDcwNSksRT1MKDY2MTMpLE1lPUwoNjc1MDcpLFU9TCgyNTY2NiksUT1MKDQ4ODExKSxaPUwoNTE4NDkpLGllPUwoMzc0NzQpLGFlPUwoNjk3NSksWT1MKDc1NTM3KSxXPUwoMjM1MjMpLE49TCg3NTQzMSkuZixlZT1MKDQ3OTg3KS5mLHE9TCg1''@;'; + put 'put ''MTE4MykuZixKPUwoMTQyNiksc2U9TCg5MzE2NikudHJpbSxvZT0iTnVtYmVyIixjZT1CW29lXSxkZT1jZS5wcm90b3R5cGUsdmU9Qi5UeXBlRXJyb3IsQWU9RSgiIi5zbGljZSksa2U9RSgiIi5jaGFyQ29kZUF0KSxTZT1mdW5jdGlvbih6KXt2YXIgbmU9WSh6LCJudW1iZXIiKTtyZXR1cm4i''@;'; + put 'put ''YmlnaW50Ij09dHlwZW9mIG5lP25lOkllKG5lKX0sSWU9ZnVuY3Rpb24oeil7dmFyIHRlLHgsUCxWLFQsUyxGLHllLG5lPVkoeiwibnVtYmVyIik7aWYoYWUobmUpKXRocm93IHZlKCJDYW5ub3QgY29udmVydCBhIFN5bWJvbCB2YWx1ZSB0byBhIG51bWJlciIpO2lmKCJzdHJpbmciPT10eXBl''@;'; + put 'put ''b2YgbmUmJm5lLmxlbmd0aD4yKWlmKG5lPXNlKG5lKSw0Mz09PSh0ZT1rZShuZSwwKSl8fDQ1PT09dGUpe2lmKDg4PT09KHg9a2UobmUsMikpfHwxMjA9PT14KXJldHVybiBOYU59ZWxzZSBpZig0OD09PXRlKXtzd2l0Y2goa2UobmUsMSkpe2Nhc2UgNjY6Y2FzZSA5ODpQPTIsVj00OTticmVh''@;'; + put 'put ''aztjYXNlIDc5OmNhc2UgMTExOlA9OCxWPTU1O2JyZWFrO2RlZmF1bHQ6cmV0dXJuK25lfWZvcihTPShUPUFlKG5lLDIpKS5sZW5ndGgsRj0wO0Y8UztGKyspaWYoKHllPWtlKFQsRikpPDQ4fHx5ZT5WKXJldHVybiBOYU47cmV0dXJuIHBhcnNlSW50KFQsUCl9cmV0dXJuK25lfTtpZihNZShv''@;'; + put 'put ''ZSwhY2UoIiAwbzEiKXx8IWNlKCIwYjEiKXx8Y2UoIisweDEiKSkpe2Zvcih2YXIgTyxUZT1mdW5jdGlvbihuZSl7dmFyIHRlPWFyZ3VtZW50cy5sZW5ndGg8MT8wOmNlKFNlKG5lKSkseD10aGlzO3JldHVybiBpZShkZSx4KSYmVyhmdW5jdGlvbigpe0ooeCl9KT9aKE9iamVjdCh0ZSkseCxU''@;'; + put 'put ''ZSk6dGV9LEVlPW1lP04oY2UpOiJNQVhfVkFMVUUsTUlOX1ZBTFVFLE5hTixORUdBVElWRV9JTkZJTklUWSxQT1NJVElWRV9JTkZJTklUWSxFUFNJTE9OLE1BWF9TQUZFX0lOVEVHRVIsTUlOX1NBRkVfSU5URUdFUixpc0Zpbml0ZSxpc0ludGVnZXIsaXNOYU4saXNTYWZlSW50ZWdlcixwYXJz''@;'; + put 'put ''ZUZsb2F0LHBhcnNlSW50LGZyb21TdHJpbmcscmFuZ2UiLnNwbGl0KCIsIiksaGU9MDtFZS5sZW5ndGg+aGU7aGUrKylRKGNlLE89RWVbaGVdKSYmIVEoVGUsTykmJnEoVGUsTyxlZShjZSxPKSk7VGUucHJvdG90eXBlPWRlLGRlLmNvbnN0cnVjdG9yPVRlLFUoQixvZSxUZSx7Y29uc3RydWN0''@;'; + put 'put ''b3I6ITB9KX19LDcwODY0OihYZSxKZSxMKT0+e0woODU2NDgpKHt0YXJnZXQ6Ik51bWJlciIsc3RhdDohMH0se2lzSW50ZWdlcjpMKDMwNDIpfSl9LDQyMTQwOihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCg4NTY0OCksQj1MKDY2MTMpLEU9TCg0MDcwMiksTWU9TCgxNDI2KSxV''@;'; + put 'put ''PUwoNDU5NjApLFE9TCgyMzUyMyksWj1SYW5nZUVycm9yLGllPVN0cmluZyxhZT1NYXRoLmZsb29yLFk9QihVKSxXPUIoIiIuc2xpY2UpLE49QigxLi50b0ZpeGVkKSxlZT1mdW5jdGlvbihkZSx2ZSxBZSl7cmV0dXJuIDA9PT12ZT9BZTp2ZSUyPT0xP2VlKGRlLHZlLTEsQWUqZGUpOmVlKGRl''@;'; + put 'put ''KmRlLHZlLzIsQWUpfSxKPWZ1bmN0aW9uKGRlLHZlLEFlKXtmb3IodmFyIGtlPS0xLFNlPUFlOysra2U8NjspZGVba2VdPShTZSs9dmUqZGVba2VdKSUxZTcsU2U9YWUoU2UvMWU3KX0sc2U9ZnVuY3Rpb24oZGUsdmUpe2Zvcih2YXIgQWU9NixrZT0wOy0tQWU+PTA7KWRlW0FlXT1hZSgoa2Ur''@;'; + put 'put ''PWRlW0FlXSkvdmUpLGtlPWtlJXZlKjFlN30sb2U9ZnVuY3Rpb24oZGUpe2Zvcih2YXIgdmU9NixBZT0iIjstLXZlPj0wOylpZigiIiE9PUFlfHwwPT09dmV8fDAhPT1kZVt2ZV0pe3ZhciBrZT1pZShkZVt2ZV0pO0FlPSIiPT09QWU/a2U6QWUrWSgiMCIsNy1rZS5sZW5ndGgpK2tlfXJldHVy''@;'; + put 'put ''biBBZX07bWUoe3RhcmdldDoiTnVtYmVyIixwcm90bzohMCxmb3JjZWQ6UShmdW5jdGlvbigpe3JldHVybiIwLjAwMCIhPT1OKDhlLTUsMyl8fCIxIiE9PU4oLjksMCl8fCIxLjI1IiE9PU4oMS4yNTUsMil8fCIxMDAwMDAwMDAwMDAwMDAwMTI4IiE9PU4oMHhkZTBiNmIzYTc2NDAwODAsMCl9''@;'; + put 'put ''KXx8IVEoZnVuY3Rpb24oKXtOKHt9KX0pfSx7dG9GaXhlZDpmdW5jdGlvbih2ZSl7dmFyIEVlLGhlLE8seixBZT1NZSh0aGlzKSxrZT1FKHZlKSxTZT1bMCwwLDAsMCwwLDBdLEllPSIiLFRlPSIwIjtpZihrZTwwfHxrZT4yMCl0aHJvdyBaKCJJbmNvcnJlY3QgZnJhY3Rpb24gZGlnaXRzIik7''@;'; + put 'put ''aWYoQWUhPUFlKXJldHVybiJOYU4iO2lmKEFlPD0tMWUyMXx8QWU+PTFlMjEpcmV0dXJuIGllKEFlKTtpZihBZTwwJiYoSWU9Ii0iLEFlPS1BZSksQWU+MWUtMjEpaWYoRWU9ZnVuY3Rpb24oZGUpe2Zvcih2YXIgdmU9MCxBZT1kZTtBZT49NDA5NjspdmUrPTEyLEFlLz00MDk2O2Zvcig7QWU+''@;'; + put 'put ''PTI7KXZlKz0xLEFlLz0yO3JldHVybiB2ZX0oQWUqZWUoMiw2OSwxKSktNjksaGU9RWU8MD9BZSplZSgyLC1FZSwxKTpBZS9lZSgyLEVlLDEpLGhlKj00NTAzNTk5NjI3MzcwNDk2LChFZT01Mi1FZSk+MCl7Zm9yKEooU2UsMCxoZSksTz1rZTtPPj03OylKKFNlLDFlNywwKSxPLT03O2ZvcihK''@;'; + put 'put ''KFNlLGVlKDEwLE8sMSksMCksTz1FZS0xO08+PTIzOylzZShTZSwxPDwyMyksTy09MjM7c2UoU2UsMTw8TyksSihTZSwxLDEpLHNlKFNlLDIpLFRlPW9lKFNlKX1lbHNlIEooU2UsMCxoZSksSihTZSwxPDwtRWUsMCksVGU9b2UoU2UpK1koIjAiLGtlKTtyZXR1cm4gVGU9a2U+MD9JZSsoKHo9''@;'; + put 'put ''VGUubGVuZ3RoKTw9a2U/IjAuIitZKCIwIixrZS16KStUZTpXKFRlLDAsei1rZSkrIi4iK1coVGUsei1rZSkpOkllK1RlfX0pfSwzMzQ3MDooWGUsSmUsTCk9Pnt2YXIgbWU9TCg4NTY0OCksQj1MKDQ3OTU5KTttZSh7dGFyZ2V0OiJPYmplY3QiLHN0YXQ6ITAsYXJpdHk6Mixmb3JjZWQ6T2Jq''@;'; + put 'put ''ZWN0LmFzc2lnbiE9PUJ9LHthc3NpZ246Qn0pfSw4Mjc1NjooWGUsSmUsTCk9Pnt2YXIgbWU9TCg4NTY0OCksQj1MKDEyNTY2KSxFPUwoMjM1MjMpLE1lPUwoNzE0OTYpLFU9TCg3MTgzMikub25GcmVlemUsUT1PYmplY3QuZnJlZXplO21lKHt0YXJnZXQ6Ik9iamVjdCIsc3RhdDohMCxmb3Jj''@;'; + put 'put ''ZWQ6RShmdW5jdGlvbigpe1EoMSl9KSxzaGFtOiFCfSx7ZnJlZXplOmZ1bmN0aW9uKGFlKXtyZXR1cm4gUSYmTWUoYWUpP1EoVShhZSkpOmFlfX0pfSw1NDc0MDooWGUsSmUsTCk9Pnt2YXIgbWU9TCg4NTY0OCksQj1MKDIzNTIzKSxFPUwoNTAzMjcpLE1lPUwoNDc5ODcpLmYsVT1MKDg1NjI0''@;'; + put 'put ''KSxRPUIoZnVuY3Rpb24oKXtNZSgxKX0pO21lKHt0YXJnZXQ6Ik9iamVjdCIsc3RhdDohMCxmb3JjZWQ6IVV8fFEsc2hhbTohVX0se2dldE93blByb3BlcnR5RGVzY3JpcHRvcjpmdW5jdGlvbihhZSxZKXtyZXR1cm4gTWUoRShhZSksWSl9fSl9LDU1NjE1OihYZSxKZSxMKT0+e3ZhciBtZT1M''@;'; + put 'put ''KDg1NjQ4KSxCPUwoODU2MjQpLEU9TCgyMTE5OSksTWU9TCg1MDMyNyksVT1MKDQ3OTg3KSxRPUwoOTUwMDQpO21lKHt0YXJnZXQ6Ik9iamVjdCIsc3RhdDohMCxzaGFtOiFCfSx7Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yczpmdW5jdGlvbihpZSl7Zm9yKHZhciBxLEosYWU9TWUoaWUpLFk9''@;'; + put 'put ''VS5mLFc9RShhZSksTj17fSxlZT0wO1cubGVuZ3RoPmVlOyl2b2lkIDAhPT0oSj1ZKGFlLHE9V1tlZSsrXSkpJiZRKE4scSxKKTtyZXR1cm4gTn19KX0sNDM5OTooWGUsSmUsTCk9Pnt2YXIgbWU9TCg4NTY0OCksQj1MKDIzNTIzKSxFPUwoMzU4MDgpLmY7bWUoe3RhcmdldDoiT2JqZWN0Iixz''@;'; + put 'put ''dGF0OiEwLGZvcmNlZDpCKGZ1bmN0aW9uKCl7cmV0dXJuIU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKDEpfSl9LHtnZXRPd25Qcm9wZXJ0eU5hbWVzOkV9KX0sNjMxOTg6KFhlLEplLEwpPT57dmFyIG1lPUwoODU2NDgpLEI9TCg4Mjc3MCksRT1MKDIzNTIzKSxNZT1MKDU1MzQpLFU9TCg2''@;'; + put 'put ''ODA3MSk7bWUoe3RhcmdldDoiT2JqZWN0IixzdGF0OiEwLGZvcmNlZDohQnx8RShmdW5jdGlvbigpe01lLmYoMSl9KX0se2dldE93blByb3BlcnR5U3ltYm9sczpmdW5jdGlvbihpZSl7dmFyIGFlPU1lLmY7cmV0dXJuIGFlP2FlKFUoaWUpKTpbXX19KX0sMjg3NjQ6KFhlLEplLEwpPT57dmFy''@;'; + put 'put ''IG1lPUwoODU2NDgpLEI9TCgyMzUyMyksRT1MKDY4MDcxKSxNZT1MKDgyNzMzKSxVPUwoNDYwODYpO21lKHt0YXJnZXQ6Ik9iamVjdCIsc3RhdDohMCxmb3JjZWQ6QihmdW5jdGlvbigpe01lKDEpfSksc2hhbTohVX0se2dldFByb3RvdHlwZU9mOmZ1bmN0aW9uKGllKXtyZXR1cm4gTWUoRShp''@;'; + put 'put ''ZSkpfX0pfSw5NjI1MTooWGUsSmUsTCk9Pnt2YXIgbWU9TCg4NTY0OCksQj1MKDY4MDcxKSxFPUwoMTQ1NDUpO21lKHt0YXJnZXQ6Ik9iamVjdCIsc3RhdDohMCxmb3JjZWQ6TCgyMzUyMykoZnVuY3Rpb24oKXtFKDEpfSl9LHtrZXlzOmZ1bmN0aW9uKFope3JldHVybiBFKEIoWikpfX0pfSwx''@;'; + put 'put ''NjE2MTooWGUsSmUsTCk9PntMKDg1NjQ4KSh7dGFyZ2V0OiJPYmplY3QiLHN0YXQ6ITB9LHtzZXRQcm90b3R5cGVPZjpMKDE5NTg3KX0pfSwyMDY0NzooWGUsSmUsTCk9Pnt2YXIgbWU9TCgyNzQ5MCksQj1MKDI1NjY2KSxFPUwoNzcwNSk7bWV8fEIoT2JqZWN0LnByb3RvdHlwZSwidG9TdHJp''@;'; + put 'put ''bmciLEUse3Vuc2FmZTohMH0pfSw4Mzg1NzooWGUsSmUsTCk9Pnt2YXIgbWU9TCg4NTY0OCksQj1MKDQ0NTgyKS52YWx1ZXM7bWUoe3RhcmdldDoiT2JqZWN0IixzdGF0OiEwfSx7dmFsdWVzOmZ1bmN0aW9uKE1lKXtyZXR1cm4gQihNZSl9fSl9LDkxNjgzOihYZSxKZSxMKT0+e3ZhciBtZT1M''@;'; + put 'put ''KDg1NjQ4KSxCPUwoNDY2OTMpLEU9TCgxMTMwNiksTWU9TCg2OTg5KSxVPUwoNTY1ODEpLFE9TCg1ODY0NyksWj1MKDcxNDk2KSxpZT1MKDc0NDEwKSxhZT1MKDIzNTIzKSxZPUIoIlJlZmxlY3QiLCJjb25zdHJ1Y3QiKSxXPU9iamVjdC5wcm90b3R5cGUsTj1bXS5wdXNoLGVlPWFlKGZ1bmN0''@;'; + put 'put ''aW9uKCl7ZnVuY3Rpb24gc2UoKXt9cmV0dXJuIShZKGZ1bmN0aW9uKCl7fSxbXSxzZSlpbnN0YW5jZW9mIHNlKX0pLHE9IWFlKGZ1bmN0aW9uKCl7WShmdW5jdGlvbigpe30pfSksSj1lZXx8cTttZSh7dGFyZ2V0OiJSZWZsZWN0IixzdGF0OiEwLGZvcmNlZDpKLHNoYW06Sn0se2NvbnN0cnVj''@;'; + put 'put ''dDpmdW5jdGlvbihvZSxjZSl7VShvZSksUShjZSk7dmFyIGRlPWFyZ3VtZW50cy5sZW5ndGg8Mz9vZTpVKGFyZ3VtZW50c1syXSk7aWYocSYmIWVlKXJldHVybiBZKG9lLGNlLGRlKTtpZihvZT09ZGUpe3N3aXRjaChjZS5sZW5ndGgpe2Nhc2UgMDpyZXR1cm4gbmV3IG9lO2Nhc2UgMTpyZXR1''@;'; + put 'put ''cm4gbmV3IG9lKGNlWzBdKTtjYXNlIDI6cmV0dXJuIG5ldyBvZShjZVswXSxjZVsxXSk7Y2FzZSAzOnJldHVybiBuZXcgb2UoY2VbMF0sY2VbMV0sY2VbMl0pO2Nhc2UgNDpyZXR1cm4gbmV3IG9lKGNlWzBdLGNlWzFdLGNlWzJdLGNlWzNdKX12YXIgdmU9W251bGxdO3JldHVybiBFKE4sdmUs''@;'; + put 'put ''Y2UpLG5ldyhFKE1lLG9lLHZlKSl9dmFyIEFlPWRlLnByb3RvdHlwZSxrZT1pZShaKEFlKT9BZTpXKSxTZT1FKG9lLGtlLGNlKTtyZXR1cm4gWihTZSk/U2U6a2V9fSl9LDIwMjczOihYZSxKZSxMKT0+e3ZhciBtZT1MKDg1NjQ4KSxCPUwoMzU2MiksRT1MKDcxNDk2KSxNZT1MKDU4NjQ3KSxV''@;'; + put 'put ''PUwoMTQxMjUpLFE9TCg0Nzk4NyksWj1MKDgyNzMzKTttZSh7dGFyZ2V0OiJSZWZsZWN0IixzdGF0OiEwfSx7Z2V0OmZ1bmN0aW9uIGllKGFlLFkpe3ZhciBOLGVlLFc9YXJndW1lbnRzLmxlbmd0aDwzP2FlOmFyZ3VtZW50c1syXTtyZXR1cm4gTWUoYWUpPT09Vz9hZVtZXTooTj1RLmYoYWUs''@;'; + put 'put ''WSkpP1UoTik/Ti52YWx1ZTp2b2lkIDA9PT1OLmdldD92b2lkIDA6QihOLmdldCxXKTpFKGVlPVooYWUpKT9pZShlZSxZLFcpOnZvaWQgMH19KX0sMTY4MjU6KFhlLEplLEwpPT57dmFyIG1lPUwoODU2MjQpLEI9TCg3MDcwNSksRT1MKDY2MTMpLE1lPUwoNjc1MDcpLFU9TCg1MTg0OSksUT1M''@;'; + put 'put ''KDE2MDE3KSxaPUwoNzU0MzEpLmYsaWU9TCgzNzQ3NCksYWU9TCg0MTgwNCksWT1MKDkyMSksVz1MKDgxNjIwKSxOPUwoOTcxODkpLGVlPUwoNzg4MCkscT1MKDI1NjY2KSxKPUwoMjM1MjMpLHNlPUwoNDg4MTEpLG9lPUwoNzI3KS5lbmZvcmNlLGNlPUwoNjgzMTUpLGRlPUwoMjU0NiksdmU9''@;'; + put 'put ''TCg0MzE4NiksQWU9TCg1MTk0OSksa2U9ZGUoIm1hdGNoIiksU2U9Qi5SZWdFeHAsSWU9U2UucHJvdG90eXBlLFRlPUIuU3ludGF4RXJyb3IsRWU9RShJZS5leGVjKSxoZT1FKCIiLmNoYXJBdCksTz1FKCIiLnJlcGxhY2UpLHo9RSgiIi5pbmRleE9mKSxuZT1FKCIiLnNsaWNlKSx0ZT0vXlw/''@;'; + put 'put ''PFteXHNcZCEjJSYqKzw9PkBeXVteXHMhIyUmKis8PT5AXl0qPi8seD0vYS9nLFA9L2EvZyxWPW5ldyBTZSh4KSE9PXgsVD1OLk1JU1NFRF9TVElDS1ksUz1OLlVOU1VQUE9SVEVEX1k7aWYoTWUoIlJlZ0V4cCIsbWUmJighVnx8VHx8dmV8fEFlfHxKKGZ1bmN0aW9uKCl7cmV0dXJuIFBba2Vd''@;'; + put 'put ''PSExLFNlKHgpIT14fHxTZShQKT09UHx8Ii9hL2kiIT1TZSh4LCJpIil9KSkpKXtmb3IodmFyIERlPWZ1bmN0aW9uKGd0LHd0KXt2YXIgb24sX3QsdHQsZXQsYXQsTHQsbXQ9aWUoSWUsdGhpcyksdnQ9YWUoZ3QpLEF0PXZvaWQgMD09PXd0LGh0PVtdLEJ0PWd0O2lmKCFtdCYmdnQmJkF0JiZn''@;'; + put 'put ''dC5jb25zdHJ1Y3Rvcj09PURlKXJldHVybiBndDtpZigodnR8fGllKEllLGd0KSkmJihndD1ndC5zb3VyY2UsQXQmJih3dD1XKEJ0KSkpLGd0PXZvaWQgMD09PWd0PyIiOlkoZ3QpLHd0PXZvaWQgMD09PXd0PyIiOlkod3QpLEJ0PWd0LHZlJiYiZG90QWxsImluIHgmJihfdD0hIXd0JiZ6KHd0''@;'; + put 'put ''LCJzIik+LTEpJiYod3Q9Tyh3dCwvcy9nLCIiKSksb249d3QsVCYmInN0aWNreSJpbiB4JiYodHQ9ISF3dCYmeih3dCwieSIpPi0xKSYmUyYmKHd0PU8od3QsL3kvZywiIikpLEFlJiYoZXQ9ZnVuY3Rpb24oJGUpe2Zvcih2YXIgdHQsZ3Q9JGUubGVuZ3RoLHd0PTAsbXQ9IiIsdnQ9W10sQXQ9''@;'; + put 'put ''e30saHQ9ITEsQnQ9ITEsb249MCxfdD0iIjt3dDw9Z3Q7d3QrKyl7aWYoIlxcIj09PSh0dD1oZSgkZSx3dCkpKXR0Kz1oZSgkZSwrK3d0KTtlbHNlIGlmKCJdIj09PXR0KWh0PSExO2Vsc2UgaWYoIWh0KXN3aXRjaCghMCl7Y2FzZSJbIj09PXR0Omh0PSEwO2JyZWFrO2Nhc2UiKCI9PT10dDpF''@;'; + put 'put ''ZSh0ZSxuZSgkZSx3dCsxKSkmJih3dCs9MixCdD0hMCksbXQrPXR0LG9uKys7Y29udGludWU7Y2FzZSI+Ij09PXR0JiZCdDppZigiIj09PV90fHxzZShBdCxfdCkpdGhyb3cgbmV3IFRlKCJJbnZhbGlkIGNhcHR1cmUgZ3JvdXAgbmFtZSIpO0F0W190XT0hMCx2dFt2dC5sZW5ndGhdPVtfdCxv''@;'; + put 'put ''bl0sQnQ9ITEsX3Q9IiI7Y29udGludWV9QnQ/X3QrPXR0Om10Kz10dH1yZXR1cm5bbXQsdnRdfShndCksZ3Q9ZXRbMF0saHQ9ZXRbMV0pLGF0PVUoU2UoZ3Qsd3QpLG10P3RoaXM6SWUsRGUpLChfdHx8dHR8fGh0Lmxlbmd0aCkmJihMdD1vZShhdCksX3QmJihMdC5kb3RBbGw9ITAsTHQucmF3''@;'; + put 'put ''PURlKGZ1bmN0aW9uKCRlKXtmb3IodmFyIEF0LGd0PSRlLmxlbmd0aCx3dD0wLG10PSIiLHZ0PSExO3d0PD1ndDt3dCsrKSJcXCIhPT0oQXQ9aGUoJGUsd3QpKT92dHx8Ii4iIT09QXQ/KCJbIj09PUF0P3Z0PSEwOiJdIj09PUF0JiYodnQ9ITEpLG10Kz1BdCk6bXQrPSJbXFxzXFxTXSI6bXQr''@;'; + put 'put ''PUF0K2hlKCRlLCsrd3QpO3JldHVybiBtdH0oZ3QpLG9uKSksdHQmJihMdC5zdGlja3k9ITApLGh0Lmxlbmd0aCYmKEx0Lmdyb3Vwcz1odCkpLGd0IT09QnQpdHJ5e1EoYXQsInNvdXJjZSIsIiI9PT1CdD8iKD86KSI6QnQpfWNhdGNoKEN0KXt9cmV0dXJuIGF0fSxQZT1aKFNlKSxRZT0wO1Bl''@;'; + put 'put ''Lmxlbmd0aD5RZTspZWUoRGUsU2UsUGVbUWUrK10pO0llLmNvbnN0cnVjdG9yPURlLERlLnByb3RvdHlwZT1JZSxxKEIsIlJlZ0V4cCIsRGUse2NvbnN0cnVjdG9yOiEwfSl9Y2UoIlJlZ0V4cCIpfSw0Mjc2MDooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoODU2NDgpLEI9TCgy''@;'; + put 'put ''MjIzNCk7bWUoe3RhcmdldDoiUmVnRXhwIixwcm90bzohMCxmb3JjZWQ6Ly4vLmV4ZWMhPT1CfSx7ZXhlYzpCfSl9LDMwNTcxOihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCgxMzg2OSkuUFJPUEVSLEI9TCgyNTY2NiksRT1MKDU4NjQ3KSxNZT1MKDkyMSksVT1MKDIzNTIzKSxR''@;'; + put 'put ''PUwoODE2MjApLFo9InRvU3RyaW5nIixhZT1SZWdFeHAucHJvdG90eXBlW1pdOyhVKGZ1bmN0aW9uKCl7cmV0dXJuIi9hL2IiIT1hZS5jYWxsKHtzb3VyY2U6ImEiLGZsYWdzOiJiIn0pfSl8fG1lJiZhZS5uYW1lIT1aKSYmQihSZWdFeHAucHJvdG90eXBlLFosZnVuY3Rpb24oKXt2YXIgZWU9''@;'; + put 'put ''RSh0aGlzKTtyZXR1cm4iLyIrTWUoZWUuc291cmNlKSsiLyIrTWUoUShlZSkpfSx7dW5zYWZlOiEwfSl9LDgwMDY6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO0woNDY4NTcpKCJTZXQiLGZ1bmN0aW9uKEUpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBFKHRoaXMsYXJndW1lbnRzLmxlbmd0''@;'; + put 'put ''aD9hcmd1bWVudHNbMF06dm9pZCAwKX19LEwoNDUxNDApKX0sMTgzMjM6KFhlLEplLEwpPT57TCg4MDA2KX0sMTY2NjE6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDg1NjQ4KSxCPUwoNzUwNTgpLmNvZGVBdDttZSh7dGFyZ2V0OiJTdHJpbmciLHByb3RvOiEwfSx7Y29kZVBv''@;'; + put 'put ''aW50QXQ6ZnVuY3Rpb24oTWUpe3JldHVybiBCKHRoaXMsTWUpfX0pfSwzNzQ5OTooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIEosbWU9TCg4NTY0OCksQj1MKDY2MTMpLEU9TCg0Nzk4NykuZixNZT1MKDY1MzE2KSxVPUwoOTIxKSxRPUwoNDE5NjEpLFo9TCgyNDU3MiksaWU9TCg3NjU3''@;'; + put 'put ''MSksYWU9TCgxMDAxNyksWT1CKCIiLmVuZHNXaXRoKSxXPUIoIiIuc2xpY2UpLE49TWF0aC5taW4sZWU9aWUoImVuZHNXaXRoIik7bWUoe3RhcmdldDoiU3RyaW5nIixwcm90bzohMCxmb3JjZWQ6ISghYWUmJiFlZSYmKEo9RShTdHJpbmcucHJvdG90eXBlLCJlbmRzV2l0aCIpLEomJiFKLndy''@;'; + put 'put ''aXRhYmxlKXx8ZWUpfSx7ZW5kc1dpdGg6ZnVuY3Rpb24oc2Upe3ZhciBvZT1VKFoodGhpcykpO1Eoc2UpO3ZhciBjZT1hcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCxkZT1vZS5sZW5ndGgsdmU9dm9pZCAwPT09Y2U/ZGU6TihNZShjZSksZGUpLEFlPVUoc2UpO3JldHVy''@;'; + put 'put ''biBZP1kob2UsQWUsdmUpOlcob2UsdmUtQWUubGVuZ3RoLHZlKT09PUFlfX0pfSw0NTEzNTooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoODU2NDgpLEI9TCg2NjEzKSxFPUwoNDE5NjEpLE1lPUwoMjQ1NzIpLFU9TCg5MjEpLFE9TCg3NjU3MSksWj1CKCIiLmluZGV4T2YpO21l''@;'; + put 'put ''KHt0YXJnZXQ6IlN0cmluZyIscHJvdG86ITAsZm9yY2VkOiFRKCJpbmNsdWRlcyIpfSx7aW5jbHVkZXM6ZnVuY3Rpb24oYWUpe3JldHVybiEhflooVShNZSh0aGlzKSksVShFKGFlKSksYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApfX0pfSw1Mzk1MDooWGUsSmUsTCk9''@;'; + put 'put ''PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoNzUwNTgpLmNoYXJBdCxCPUwoOTIxKSxFPUwoNzI3KSxNZT1MKDM4NDk3KSxVPSJTdHJpbmcgSXRlcmF0b3IiLFE9RS5zZXQsWj1FLmdldHRlckZvcihVKTtNZShTdHJpbmcsIlN0cmluZyIsZnVuY3Rpb24oaWUpe1EodGhpcyx7dHlwZTpVLHN0cmlu''@;'; + put 'put ''ZzpCKGllKSxpbmRleDowfSl9LGZ1bmN0aW9uKCl7dmFyIE4sYWU9Wih0aGlzKSxZPWFlLnN0cmluZyxXPWFlLmluZGV4O3JldHVybiBXPj1ZLmxlbmd0aD97dmFsdWU6dm9pZCAwLGRvbmU6ITB9OihOPW1lKFksVyksYWUuaW5kZXgrPU4ubGVuZ3RoLHt2YWx1ZTpOLGRvbmU6ITF9KX0pfSw0''@;'; + put 'put ''OTI5NTooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoODU2NDgpLEI9TCg5NTExMCk7bWUoe3RhcmdldDoiU3RyaW5nIixwcm90bzohMCxmb3JjZWQ6TCg5NzgxOCkoImxpbmsiKX0se2xpbms6ZnVuY3Rpb24oVSl7cmV0dXJuIEIodGhpcywiYSIsImhyZWYiLFUpfX0pfSwyNzYy''@;'; + put 'put ''OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCgzNTYyKSxCPUwoMjI4MTQpLEU9TCg1ODY0NyksTWU9TCg2NTMxNiksVT1MKDkyMSksUT1MKDI0NTcyKSxaPUwoMjA5NDgpLGllPUwoNjE2NzYpLGFlPUwoNTgxMjYpO0IoIm1hdGNoIixmdW5jdGlvbihZLFcsTil7cmV0dXJuW2Z1''@;'; + put 'put ''bmN0aW9uKHEpe3ZhciBKPVEodGhpcyksc2U9bnVsbD09cT92b2lkIDA6WihxLFkpO3JldHVybiBzZT9tZShzZSxxLEopOm5ldyBSZWdFeHAocSlbWV0oVShKKSl9LGZ1bmN0aW9uKGVlKXt2YXIgcT1FKHRoaXMpLEo9VShlZSksc2U9TihXLHEsSik7aWYoc2UuZG9uZSlyZXR1cm4gc2UudmFs''@;'; + put 'put ''dWU7aWYoIXEuZ2xvYmFsKXJldHVybiBhZShxLEopO3ZhciBvZT1xLnVuaWNvZGU7cS5sYXN0SW5kZXg9MDtmb3IodmFyIHZlLGNlPVtdLGRlPTA7bnVsbCE9PSh2ZT1hZShxLEopKTspe3ZhciBBZT1VKHZlWzBdKTtjZVtkZV09QWUsIiI9PT1BZSYmKHEubGFzdEluZGV4PWllKEosTWUocS5s''@;'; + put 'put ''YXN0SW5kZXgpLG9lKSksZGUrK31yZXR1cm4gMD09PWRlP251bGw6Y2V9XX0pfSw3ODI0NjooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoODU2NDgpLEI9TCgyMTI4NSkuc3RhcnQ7bWUoe3RhcmdldDoiU3RyaW5nIixwcm90bzohMCxmb3JjZWQ6TCg3MjIxMCl9LHtwYWRTdGFy''@;'; + put 'put ''dDpmdW5jdGlvbihVKXtyZXR1cm4gQih0aGlzLFUsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApfX0pfSwxMDQxNDooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoMTEzMDYpLEI9TCgzNTYyKSxFPUwoNjYxMyksTWU9TCgyMjgxNCksVT1MKDIzNTIzKSxR''@;'; + put 'put ''PUwoNTg2NDcpLFo9TCgxMjAxNCksaWU9TCg0MDcwMiksYWU9TCg2NTMxNiksWT1MKDkyMSksVz1MKDI0NTcyKSxOPUwoNjE2NzYpLGVlPUwoMjA5NDgpLHE9TCg2MzM4MiksSj1MKDU4MTI2KSxvZT1MKDI1NDYpKCJyZXBsYWNlIiksY2U9TWF0aC5tYXgsZGU9TWF0aC5taW4sdmU9RShbXS5j''@;'; + put 'put ''b25jYXQpLEFlPUUoW10ucHVzaCksa2U9RSgiIi5pbmRleE9mKSxTZT1FKCIiLnNsaWNlKSxJZT1mdW5jdGlvbihPKXtyZXR1cm4gdm9pZCAwPT09Tz9POlN0cmluZyhPKX0sVGU9IiQwIj09PSJhIi5yZXBsYWNlKC8uLywiJDAiKSxFZT0hIS8uL1tvZV0mJiIiPT09Ly4vW29lXSgiYSIsIiQw''@;'; + put 'put ''Iik7TWUoInJlcGxhY2UiLGZ1bmN0aW9uKE8seixuZSl7dmFyIHRlPUVlPyIkIjoiJDAiO3JldHVybltmdW5jdGlvbihQLFYpe3ZhciBUPVcodGhpcyksUz1udWxsPT1QP3ZvaWQgMDplZShQLG9lKTtyZXR1cm4gUz9CKFMsUCxULFYpOkIoeixZKFQpLFAsVil9LGZ1bmN0aW9uKHgsUCl7dmFy''@;'; + put 'put ''IFY9USh0aGlzKSxUPVkoeCk7aWYoInN0cmluZyI9PXR5cGVvZiBQJiYtMT09PWtlKFAsdGUpJiYtMT09PWtlKFAsIiQ8Iikpe3ZhciBTPW5lKHosVixULFApO2lmKFMuZG9uZSlyZXR1cm4gUy52YWx1ZX12YXIgRj1aKFApO0Z8fChQPVkoUCkpO3ZhciB5ZT1WLmdsb2JhbDtpZih5ZSl7dmFy''@;'; + put 'put ''IENlPVYudW5pY29kZTtWLmxhc3RJbmRleD0wfWZvcih2YXIgRGU9W107Oyl7dmFyIFBlPUooVixUKTtpZihudWxsPT09UGV8fChBZShEZSxQZSksIXllKSlicmVhazsiIj09PVkoUGVbMF0pJiYoVi5sYXN0SW5kZXg9TihULGFlKFYubGFzdEluZGV4KSxDZSkpfWZvcih2YXIgJGU9IiIsZ3Q9''@;'; + put 'put ''MCx3dD0wO3d0PERlLmxlbmd0aDt3dCsrKXtmb3IodmFyIG10PVkoKFBlPURlW3d0XSlbMF0pLHZ0PWNlKGRlKGllKFBlLmluZGV4KSxULmxlbmd0aCksMCksQXQ9W10saHQ9MTtodDxQZS5sZW5ndGg7aHQrKylBZShBdCxJZShQZVtodF0pKTt2YXIgQnQ9UGUuZ3JvdXBzO2lmKEYpe3ZhciBv''@;'; + put 'put ''bj12ZShbbXRdLEF0LHZ0LFQpO3ZvaWQgMCE9PUJ0JiZBZShvbixCdCk7dmFyIF90PVkobWUoUCx2b2lkIDAsb24pKX1lbHNlIF90PXEobXQsVCx2dCxBdCxCdCxQKTt2dD49Z3QmJigkZSs9U2UoVCxndCx2dCkrX3QsZ3Q9dnQrbXQubGVuZ3RoKX1yZXR1cm4gJGUrU2UoVCxndCl9XX0sISFV''@;'; + put 'put ''KGZ1bmN0aW9uKCl7dmFyIE89Ly4vO3JldHVybiBPLmV4ZWM9ZnVuY3Rpb24oKXt2YXIgej1bXTtyZXR1cm4gei5ncm91cHM9e2E6IjcifSx6fSwiNyIhPT0iIi5yZXBsYWNlKE8sIiQ8YT4iKX0pfHwhVGV8fEVlKX0sNzc5NDooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoMzU2''@;'; + put 'put ''MiksQj1MKDIyODE0KSxFPUwoNTg2NDcpLE1lPUwoMjQ1NzIpLFU9TCg1NTg4MSksUT1MKDkyMSksWj1MKDIwOTQ4KSxpZT1MKDU4MTI2KTtCKCJzZWFyY2giLGZ1bmN0aW9uKGFlLFksVyl7cmV0dXJuW2Z1bmN0aW9uKGVlKXt2YXIgcT1NZSh0aGlzKSxKPW51bGw9PWVlP3ZvaWQgMDpaKGVl''@;'; + put 'put ''LGFlKTtyZXR1cm4gSj9tZShKLGVlLHEpOm5ldyBSZWdFeHAoZWUpW2FlXShRKHEpKX0sZnVuY3Rpb24oTil7dmFyIGVlPUUodGhpcykscT1RKE4pLEo9VyhZLGVlLHEpO2lmKEouZG9uZSlyZXR1cm4gSi52YWx1ZTt2YXIgc2U9ZWUubGFzdEluZGV4O1Uoc2UsMCl8fChlZS5sYXN0SW5kZXg9''@;'; + put 'put ''MCk7dmFyIG9lPWllKGVlLHEpO3JldHVybiBVKGVlLmxhc3RJbmRleCxzZSl8fChlZS5sYXN0SW5kZXg9c2UpLG51bGw9PT1vZT8tMTpvZS5pbmRleH1dfSl9LDY0NDE4OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCgxMTMwNiksQj1MKDM1NjIpLEU9TCg2NjEzKSxNZT1MKDIy''@;'; + put 'put ''ODE0KSxVPUwoNDE4MDQpLFE9TCg1ODY0NyksWj1MKDI0NTcyKSxpZT1MKDkxMyksYWU9TCg2MTY3NiksWT1MKDY1MzE2KSxXPUwoOTIxKSxOPUwoMjA5NDgpLGVlPUwoMTA4NzIpLHE9TCg1ODEyNiksSj1MKDIyMjM0KSxzZT1MKDk3MTg5KSxvZT1MKDIzNTIzKSxjZT1zZS5VTlNVUFBPUlRF''@;'; + put 'put ''RF9ZLGRlPTQyOTQ5NjcyOTUsdmU9TWF0aC5taW4sQWU9W10ucHVzaCxrZT1FKC8uLy5leGVjKSxTZT1FKEFlKSxJZT1FKCIiLnNsaWNlKTtNZSgic3BsaXQiLGZ1bmN0aW9uKEVlLGhlLE8pe3ZhciB6O3JldHVybiB6PSJjIj09ImFiYmMiLnNwbGl0KC8oYikqLylbMV18fDQhPSJ0ZXN0Ii5z''@;'; + put 'put ''cGxpdCgvKD86KS8sLTEpLmxlbmd0aHx8MiE9ImFiIi5zcGxpdCgvKD86YWIpKi8pLmxlbmd0aHx8NCE9Ii4iLnNwbGl0KC8oLj8pKC4/KS8pLmxlbmd0aHx8Ii4iLnNwbGl0KC8oKSgpLykubGVuZ3RoPjF8fCIiLnNwbGl0KC8uPy8pLmxlbmd0aD9mdW5jdGlvbihuZSx0ZSl7dmFyIHg9Vyha''@;'; + put 'put ''KHRoaXMpKSxQPXZvaWQgMD09PXRlP2RlOnRlPj4+MDtpZigwPT09UClyZXR1cm5bXTtpZih2b2lkIDA9PT1uZSlyZXR1cm5beF07aWYoIVUobmUpKXJldHVybiBCKGhlLHgsbmUsUCk7Zm9yKHZhciB5ZSxDZSxEZSxWPVtdLFM9MCxGPW5ldyBSZWdFeHAobmUuc291cmNlLChuZS5pZ25vcmVD''@;'; + put 'put ''YXNlPyJpIjoiIikrKG5lLm11bHRpbGluZT8ibSI6IiIpKyhuZS51bmljb2RlPyJ1IjoiIikrKG5lLnN0aWNreT8ieSI6IiIpKyJnIik7KHllPUIoSixGLHgpKSYmISgoQ2U9Ri5sYXN0SW5kZXgpPlMmJihTZShWLEllKHgsUyx5ZS5pbmRleCkpLHllLmxlbmd0aD4xJiZ5ZS5pbmRleDx4Lmxl''@;'; + put 'put ''bmd0aCYmbWUoQWUsVixlZSh5ZSwxKSksRGU9eWVbMF0ubGVuZ3RoLFM9Q2UsVi5sZW5ndGg+PVApKTspRi5sYXN0SW5kZXg9PT15ZS5pbmRleCYmRi5sYXN0SW5kZXgrKztyZXR1cm4gUz09PXgubGVuZ3RoPyhEZXx8IWtlKEYsIiIpKSYmU2UoViwiIik6U2UoVixJZSh4LFMpKSxWLmxlbmd0''@;'; + put 'put ''aD5QP2VlKFYsMCxQKTpWfToiMCIuc3BsaXQodm9pZCAwLDApLmxlbmd0aD9mdW5jdGlvbihuZSx0ZSl7cmV0dXJuIHZvaWQgMD09PW5lJiYwPT09dGU/W106QihoZSx0aGlzLG5lLHRlKX06aGUsW2Z1bmN0aW9uKHRlLHgpe3ZhciBQPVoodGhpcyksVj1udWxsPT10ZT92b2lkIDA6Tih0ZSxF''@;'; + put 'put ''ZSk7cmV0dXJuIFY/QihWLHRlLFAseCk6Qih6LFcoUCksdGUseCl9LGZ1bmN0aW9uKG5lLHRlKXt2YXIgeD1RKHRoaXMpLFA9VyhuZSksVj1PKHoseCxQLHRlLHohPT1oZSk7aWYoVi5kb25lKXJldHVybiBWLnZhbHVlO3ZhciBUPWllKHgsUmVnRXhwKSxTPXgudW5pY29kZSx5ZT1uZXcgVChj''@;'; + put 'put ''ZT8iXig/OiIreC5zb3VyY2UrIikiOngsKHguaWdub3JlQ2FzZT8iaSI6IiIpKyh4Lm11bHRpbGluZT8ibSI6IiIpKyh4LnVuaWNvZGU/InUiOiIiKSsoY2U/ImciOiJ5IikpLENlPXZvaWQgMD09PXRlP2RlOnRlPj4+MDtpZigwPT09Q2UpcmV0dXJuW107aWYoMD09PVAubGVuZ3RoKXJldHVy''@;'; + put 'put ''biBudWxsPT09cSh5ZSxQKT9bUF06W107Zm9yKHZhciBEZT0wLFBlPTAsUWU9W107UGU8UC5sZW5ndGg7KXt5ZS5sYXN0SW5kZXg9Y2U/MDpQZTt2YXIgZ3QsJGU9cSh5ZSxjZT9JZShQLFBlKTpQKTtpZihudWxsPT09JGV8fChndD12ZShZKHllLmxhc3RJbmRleCsoY2U/UGU6MCkpLFAubGVu''@;'; + put 'put ''Z3RoKSk9PT1EZSlQZT1hZShQLFBlLFMpO2Vsc2V7aWYoU2UoUWUsSWUoUCxEZSxQZSkpLFFlLmxlbmd0aD09PUNlKXJldHVybiBRZTtmb3IodmFyIHd0PTE7d3Q8PSRlLmxlbmd0aC0xO3d0KyspaWYoU2UoUWUsJGVbd3RdKSxRZS5sZW5ndGg9PT1DZSlyZXR1cm4gUWU7UGU9RGU9Z3R9fXJl''@;'; + put 'put ''dHVybiBTZShRZSxJZShQLERlKSksUWV9XX0sISFvZShmdW5jdGlvbigpe3ZhciBFZT0vKD86KS8saGU9RWUuZXhlYztFZS5leGVjPWZ1bmN0aW9uKCl7cmV0dXJuIGhlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX07dmFyIE89ImFiIi5zcGxpdChFZSk7cmV0dXJuIDIhPT1PLmxlbmd0aHx8ImEi''@;'; + put 'put ''IT09T1swXXx8ImIiIT09T1sxXX0pLGNlKX0sODU3MzU6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBKLG1lPUwoODU2NDgpLEI9TCg2NjEzKSxFPUwoNDc5ODcpLmYsTWU9TCg2NTMxNiksVT1MKDkyMSksUT1MKDQxOTYxKSxaPUwoMjQ1NzIpLGllPUwoNzY1NzEpLGFlPUwoMTAwMTcp''@;'; + put 'put ''LFk9QigiIi5zdGFydHNXaXRoKSxXPUIoIiIuc2xpY2UpLE49TWF0aC5taW4sZWU9aWUoInN0YXJ0c1dpdGgiKTttZSh7dGFyZ2V0OiJTdHJpbmciLHByb3RvOiEwLGZvcmNlZDohKCFhZSYmIWVlJiYoSj1FKFN0cmluZy5wcm90b3R5cGUsInN0YXJ0c1dpdGgiKSxKJiYhSi53cml0YWJsZSl8''@;'; + put 'put ''fGVlKX0se3N0YXJ0c1dpdGg6ZnVuY3Rpb24oc2Upe3ZhciBvZT1VKFoodGhpcykpO1Eoc2UpO3ZhciBjZT1NZShOKGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwLG9lLmxlbmd0aCkpLGRlPVUoc2UpO3JldHVybiBZP1kob2UsZGUsY2UpOlcob2UsY2UsY2UrZGUubGVu''@;'; + put 'put ''Z3RoKT09PWRlfX0pfSw4MzYyMDooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoODU2NDgpLEI9TCg5MzE2NikudHJpbTttZSh7dGFyZ2V0OiJTdHJpbmciLHByb3RvOiEwLGZvcmNlZDpMKDQ1NzEyKSgidHJpbSIpfSx7dHJpbTpmdW5jdGlvbigpe3JldHVybiBCKHRoaXMpfX0p''@;'; + put 'put ''fSw0NDY0NjooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoODU2NDgpLEI9TCg3MDcwNSksRT1MKDM1NjIpLE1lPUwoNjYxMyksVT1MKDEwMDE3KSxRPUwoODU2MjQpLFo9TCg4Mjc3MCksaWU9TCgyMzUyMyksYWU9TCg0ODgxMSksWT1MKDM3NDc0KSxXPUwoNTg2NDcpLE49TCg1''@;'; + put 'put ''MDMyNyksZWU9TCg4NDA5NCkscT1MKDkyMSksSj1MKDczOTIwKSxzZT1MKDc0NDEwKSxvZT1MKDE0NTQ1KSxjZT1MKDc1NDMxKSxkZT1MKDM1ODA4KSx2ZT1MKDU1MzQpLEFlPUwoNDc5ODcpLGtlPUwoNTExODMpLFNlPUwoNzczMjgpLEllPUwoNDY5MDEpLFRlPUwoMjU2NjYpLEVlPUwoNjg4''@;'; + put 'put ''MzUpLGhlPUwoMjcyMzApLE89TCgxOTkwOSksej1MKDUyODEwKSxuZT1MKDI1NDYpLHRlPUwoMjgxMSkseD1MKDM5MjM1KSxQPUwoMTQ0OTgpLFY9TCg1NTk2OCksVD1MKDcyNyksUz1MKDk1NjY5KS5mb3JFYWNoLEY9aGUoImhpZGRlbiIpLHllPSJTeW1ib2wiLENlPSJwcm90b3R5cGUiLERl''@;'; + put 'put ''PVQuc2V0LFBlPVQuZ2V0dGVyRm9yKHllKSxRZT1PYmplY3RbQ2VdLCRlPUIuU3ltYm9sLGd0PSRlJiYkZVtDZV0sd3Q9Qi5UeXBlRXJyb3IsbXQ9Qi5RT2JqZWN0LHZ0PUFlLmYsQXQ9a2UuZixodD1kZS5mLEJ0PUllLmYsb249TWUoW10ucHVzaCksX3Q9RWUoInN5bWJvbHMiKSx0dD1FZSgi''@;'; + put 'put ''b3Atc3ltYm9scyIpLGV0PUVlKCJ3a3MiKSxhdD0hbXR8fCFtdFtDZV18fCFtdFtDZV0uZmluZENoaWxkLEx0PVEmJmllKGZ1bmN0aW9uKCl7cmV0dXJuIDchPXNlKEF0KHt9LCJhIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEF0KHRoaXMsImEiLHt2YWx1ZTo3fSkuYX19KSkuYX0pP2Z1bmN0''@;'; + put 'put ''aW9uKGduLGRuLHluKXt2YXIgbG49dnQoUWUsZG4pO2xuJiZkZWxldGUgUWVbZG5dLEF0KGduLGRuLHluKSxsbiYmZ24hPT1RZSYmQXQoUWUsZG4sbG4pfTpBdCxDdD1mdW5jdGlvbihnbixkbil7dmFyIHluPV90W2duXT1zZShndCk7cmV0dXJuIERlKHluLHt0eXBlOnllLHRhZzpnbixkZXNj''@;'; + put 'put ''cmlwdGlvbjpkbn0pLFF8fCh5bi5kZXNjcmlwdGlvbj1kbikseW59LGZ0PWZ1bmN0aW9uKGRuLHluLGxuKXtkbj09PVFlJiZmdCh0dCx5bixsbiksVyhkbik7dmFyIE5uPWVlKHluKTtyZXR1cm4gVyhsbiksYWUoX3QsTm4pPyhsbi5lbnVtZXJhYmxlPyhhZShkbixGKSYmZG5bRl1bTm5dJiYo''@;'; + put 'put ''ZG5bRl1bTm5dPSExKSxsbj1zZShsbix7ZW51bWVyYWJsZTpKKDAsITEpfSkpOihhZShkbixGKXx8QXQoZG4sRixKKDEse30pKSxkbltGXVtObl09ITApLEx0KGRuLE5uLGxuKSk6QXQoZG4sTm4sbG4pfSxIdD1mdW5jdGlvbihkbix5bil7Vyhkbik7dmFyIGxuPU4oeW4pLE5uPW9lKGxuKS5j''@;'; + put 'put ''b25jYXQoUXQobG4pKTtyZXR1cm4gUyhObixmdW5jdGlvbihibil7KCFRfHxFKFVlLGxuLGJuKSkmJmZ0KGRuLGJuLGxuW2JuXSl9KSxkbn0sVWU9ZnVuY3Rpb24oZG4pe3ZhciB5bj1lZShkbiksbG49RShCdCx0aGlzLHluKTtyZXR1cm4hKHRoaXM9PT1RZSYmYWUoX3QseW4pJiYhYWUodHQs''@;'; + put 'put ''eW4pKSYmKCEobG58fCFhZSh0aGlzLHluKXx8IWFlKF90LHluKXx8YWUodGhpcyxGKSYmdGhpc1tGXVt5bl0pfHxsbil9LHl0PWZ1bmN0aW9uKGRuLHluKXt2YXIgbG49TihkbiksTm49ZWUoeW4pO2lmKGxuIT09UWV8fCFhZShfdCxObil8fGFlKHR0LE5uKSl7dmFyIGJuPXZ0KGxuLE5uKTty''@;'; + put 'put ''ZXR1cm4gYm4mJmFlKF90LE5uKSYmIShhZShsbixGKSYmbG5bRl1bTm5dKSYmKGJuLmVudW1lcmFibGU9ITApLGJufX0sanQ9ZnVuY3Rpb24oZG4pe3ZhciB5bj1odChOKGRuKSksbG49W107cmV0dXJuIFMoeW4sZnVuY3Rpb24oTm4peyFhZShfdCxObikmJiFhZShPLE5uKSYmb24obG4sTm4p''@;'; + put 'put ''fSksbG59LFF0PWZ1bmN0aW9uKGduKXt2YXIgZG49Z249PT1RZSx5bj1odChkbj90dDpOKGduKSksbG49W107cmV0dXJuIFMoeW4sZnVuY3Rpb24oTm4pe2FlKF90LE5uKSYmKCFkbnx8YWUoUWUsTm4pKSYmb24obG4sX3RbTm5dKX0pLGxufTtafHwoVGUoZ3Q9KCRlPWZ1bmN0aW9uKCl7aWYo''@;'; + put 'put ''WShndCx0aGlzKSl0aHJvdyB3dCgiU3ltYm9sIGlzIG5vdCBhIGNvbnN0cnVjdG9yIik7dmFyIGRuPWFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9xKGFyZ3VtZW50c1swXSk6dm9pZCAwLHluPXooZG4pLGxuPWZ1bmN0aW9uKE5uKXt0aGlzPT09UWUmJkUobG4sdHQs''@;'; + put 'put ''Tm4pLGFlKHRoaXMsRikmJmFlKHRoaXNbRl0seW4pJiYodGhpc1tGXVt5bl09ITEpLEx0KHRoaXMseW4sSigxLE5uKSl9O3JldHVybiBRJiZhdCYmTHQoUWUseW4se2NvbmZpZ3VyYWJsZTohMCxzZXQ6bG59KSxDdCh5bixkbil9KVtDZV0sInRvU3RyaW5nIixmdW5jdGlvbigpe3JldHVybiBQ''@;'; + put 'put ''ZSh0aGlzKS50YWd9KSxUZSgkZSwid2l0aG91dFNldHRlciIsZnVuY3Rpb24oZ24pe3JldHVybiBDdCh6KGduKSxnbil9KSxJZS5mPVVlLGtlLmY9ZnQsU2UuZj1IdCxBZS5mPXl0LGNlLmY9ZGUuZj1qdCx2ZS5mPVF0LHRlLmY9ZnVuY3Rpb24oZ24pe3JldHVybiBDdChuZShnbiksZ24pfSxR''@;'; + put 'put ''JiYoQXQoZ3QsImRlc2NyaXB0aW9uIix7Y29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBQZSh0aGlzKS5kZXNjcmlwdGlvbn19KSxVfHxUZShRZSwicHJvcGVydHlJc0VudW1lcmFibGUiLFVlLHt1bnNhZmU6ITB9KSkpLG1lKHtnbG9iYWw6ITAsY29uc3RydWN0b3I6ITAs''@;'; + put 'put ''d3JhcDohMCxmb3JjZWQ6IVosc2hhbTohWn0se1N5bWJvbDokZX0pLFMob2UoZXQpLGZ1bmN0aW9uKGduKXt4KGduKX0pLG1lKHt0YXJnZXQ6eWUsc3RhdDohMCxmb3JjZWQ6IVp9LHt1c2VTZXR0ZXI6ZnVuY3Rpb24oKXthdD0hMH0sdXNlU2ltcGxlOmZ1bmN0aW9uKCl7YXQ9ITF9fSksbWUo''@;'; + put 'put ''e3RhcmdldDoiT2JqZWN0IixzdGF0OiEwLGZvcmNlZDohWixzaGFtOiFRfSx7Y3JlYXRlOmZ1bmN0aW9uKGRuLHluKXtyZXR1cm4gdm9pZCAwPT09eW4/c2UoZG4pOkh0KHNlKGRuKSx5bil9LGRlZmluZVByb3BlcnR5OmZ0LGRlZmluZVByb3BlcnRpZXM6SHQsZ2V0T3duUHJvcGVydHlEZXNj''@;'; + put 'put ''cmlwdG9yOnl0fSksbWUoe3RhcmdldDoiT2JqZWN0IixzdGF0OiEwLGZvcmNlZDohWn0se2dldE93blByb3BlcnR5TmFtZXM6anR9KSxQKCksVigkZSx5ZSksT1tGXT0hMH0sODY0Mjc6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDg1NjQ4KSxCPUwoODU2MjQpLEU9TCg3MDcw''@;'; + put 'put ''NSksTWU9TCg2NjEzKSxVPUwoNDg4MTEpLFE9TCgxMjAxNCksWj1MKDM3NDc0KSxpZT1MKDkyMSksYWU9TCg1MTE4MykuZixZPUwoNzc1NDgpLFc9RS5TeW1ib2wsTj1XJiZXLnByb3RvdHlwZTtpZihCJiZRKFcpJiYoISgiZGVzY3JpcHRpb24iaW4gTil8fHZvaWQgMCE9PVcoKS5kZXNjcmlw''@;'; + put 'put ''dGlvbikpe3ZhciBlZT17fSxxPWZ1bmN0aW9uKCl7dmFyIGtlPWFyZ3VtZW50cy5sZW5ndGg8MXx8dm9pZCAwPT09YXJndW1lbnRzWzBdP3ZvaWQgMDppZShhcmd1bWVudHNbMF0pLFNlPVooTix0aGlzKT9uZXcgVyhrZSk6dm9pZCAwPT09a2U/VygpOlcoa2UpO3JldHVybiIiPT09a2UmJihl''@;'; + put 'put ''ZVtTZV09ITApLFNlfTtZKHEsVykscS5wcm90b3R5cGU9TixOLmNvbnN0cnVjdG9yPXE7dmFyIEo9IlN5bWJvbCh0ZXN0KSI9PVN0cmluZyhXKCJ0ZXN0IikpLHNlPU1lKE4udG9TdHJpbmcpLG9lPU1lKE4udmFsdWVPZiksY2U9L15TeW1ib2xcKCguKilcKVteKV0rJC8sZGU9TWUoIiIucmVw''@;'; + put 'put ''bGFjZSksdmU9TWUoIiIuc2xpY2UpO2FlKE4sImRlc2NyaXB0aW9uIix7Y29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3ZhciBrZT1vZSh0aGlzKSxTZT1zZShrZSk7aWYoVShlZSxrZSkpcmV0dXJuIiI7dmFyIEllPUo/dmUoU2UsNywtMSk6ZGUoU2UsY2UsIiQxIik7cmV0dXJuIiI9''@;'; + put 'put ''PT1JZT92b2lkIDA6SWV9fSksbWUoe2dsb2JhbDohMCxjb25zdHJ1Y3RvcjohMCxmb3JjZWQ6ITB9LHtTeW1ib2w6cX0pfX0sNzg3OTA6KFhlLEplLEwpPT57dmFyIG1lPUwoODU2NDgpLEI9TCg0NjY5MyksRT1MKDQ4ODExKSxNZT1MKDkyMSksVT1MKDY4ODM1KSxRPUwoMzk0NjYpLFo9VSgi''@;'; + put 'put ''c3RyaW5nLXRvLXN5bWJvbC1yZWdpc3RyeSIpLGllPVUoInN5bWJvbC10by1zdHJpbmctcmVnaXN0cnkiKTttZSh7dGFyZ2V0OiJTeW1ib2wiLHN0YXQ6ITAsZm9yY2VkOiFRfSx7Zm9yOmZ1bmN0aW9uKGFlKXt2YXIgWT1NZShhZSk7aWYoRShaLFkpKXJldHVybiBaW1ldO3ZhciBXPUIoIlN5''@;'; + put 'put ''bWJvbCIpKFkpO3JldHVybiBaW1ldPVcsaWVbV109WSxXfX0pfSwzMzU4MzooWGUsSmUsTCk9PntMKDM5MjM1KSgiaXRlcmF0b3IiKX0sMjY1NzooWGUsSmUsTCk9PntMKDQ0NjQ2KSxMKDc4NzkwKSxMKDI4NTQwKSxMKDEzMDA2KSxMKDYzMTk4KX0sMjg1NDA6KFhlLEplLEwpPT57dmFyIG1l''@;'; + put 'put ''PUwoODU2NDgpLEI9TCg0ODgxMSksRT1MKDY5NzUpLE1lPUwoOTQ2NzYpLFU9TCg2ODgzNSksUT1MKDM5NDY2KSxaPVUoInN5bWJvbC10by1zdHJpbmctcmVnaXN0cnkiKTttZSh7dGFyZ2V0OiJTeW1ib2wiLHN0YXQ6ITAsZm9yY2VkOiFRfSx7a2V5Rm9yOmZ1bmN0aW9uKGFlKXtpZighRShh''@;'; + put 'put ''ZSkpdGhyb3cgVHlwZUVycm9yKE1lKGFlKSsiIGlzIG5vdCBhIHN5bWJvbCIpO2lmKEIoWixhZSkpcmV0dXJuIFpbYWVdfX0pfSwxOTMwODooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIE4sbWU9TCg3MDcwNSksQj1MKDY2MTMpLEU9TCg3NDA2OSksTWU9TCg3MTgzMiksVT1MKDQ2ODU3''@;'; + put 'put ''KSxRPUwoNDI5NjkpLFo9TCg3MTQ5NiksaWU9TCg1NTIxOCksYWU9TCg3MjcpLmVuZm9yY2UsWT1MKDgwODA2KSxXPSFtZS5BY3RpdmVYT2JqZWN0JiYiQWN0aXZlWE9iamVjdCJpbiBtZSxlZT1mdW5jdGlvbih2ZSl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHZlKHRoaXMsYXJndW1lbnRz''@;'; + put 'put ''Lmxlbmd0aD9hcmd1bWVudHNbMF06dm9pZCAwKX19LHE9VSgiV2Vha01hcCIsZWUsUSk7aWYoWSYmVyl7Tj1RLmdldENvbnN0cnVjdG9yKGVlLCJXZWFrTWFwIiwhMCksTWUuZW5hYmxlKCk7dmFyIEo9cS5wcm90b3R5cGUsc2U9QihKLmRlbGV0ZSksb2U9QihKLmhhcyksY2U9QihKLmdldCks''@;'; + put 'put ''ZGU9QihKLnNldCk7RShKLHtkZWxldGU6ZnVuY3Rpb24odmUpe2lmKFoodmUpJiYhaWUodmUpKXt2YXIgQWU9YWUodGhpcyk7cmV0dXJuIEFlLmZyb3plbnx8KEFlLmZyb3plbj1uZXcgTiksc2UodGhpcyx2ZSl8fEFlLmZyb3plbi5kZWxldGUodmUpfXJldHVybiBzZSh0aGlzLHZlKX0saGFz''@;'; + put 'put ''OmZ1bmN0aW9uKEFlKXtpZihaKEFlKSYmIWllKEFlKSl7dmFyIGtlPWFlKHRoaXMpO3JldHVybiBrZS5mcm96ZW58fChrZS5mcm96ZW49bmV3IE4pLG9lKHRoaXMsQWUpfHxrZS5mcm96ZW4uaGFzKEFlKX1yZXR1cm4gb2UodGhpcyxBZSl9LGdldDpmdW5jdGlvbihBZSl7aWYoWihBZSkmJiFp''@;'; + put 'put ''ZShBZSkpe3ZhciBrZT1hZSh0aGlzKTtyZXR1cm4ga2UuZnJvemVufHwoa2UuZnJvemVuPW5ldyBOKSxvZSh0aGlzLEFlKT9jZSh0aGlzLEFlKTprZS5mcm96ZW4uZ2V0KEFlKX1yZXR1cm4gY2UodGhpcyxBZSl9LHNldDpmdW5jdGlvbihBZSxrZSl7aWYoWihBZSkmJiFpZShBZSkpe3ZhciBT''@;'; + put 'put ''ZT1hZSh0aGlzKTtTZS5mcm96ZW58fChTZS5mcm96ZW49bmV3IE4pLG9lKHRoaXMsQWUpP2RlKHRoaXMsQWUsa2UpOlNlLmZyb3plbi5zZXQoQWUsa2UpfWVsc2UgZGUodGhpcyxBZSxrZSk7cmV0dXJuIHRoaXN9fSl9fSw2NTEyNTooWGUsSmUsTCk9PntMKDE5MzA4KX0sOTgzNzM6KFhlLEpl''@;'; + put 'put ''LEwpPT57InVzZSBzdHJpY3QiO0woNDY4NTcpKCJXZWFrU2V0IixmdW5jdGlvbihFKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gRSh0aGlzLGFyZ3VtZW50cy5sZW5ndGg/YXJndW1lbnRzWzBdOnZvaWQgMCl9fSxMKDQyOTY5KSl9LDM4MTgzOihYZSxKZSxMKT0+e0woOTgzNzMpfSwyMjQ5''@;'; + put 'put ''NjooWGUsSmUsTCk9Pnt2YXIgbWU9TCg4NTY0OCksQj1MKDcwNzA1KSxFPUwoNTUyNjEpLmNsZWFyO21lKHtnbG9iYWw6ITAsYmluZDohMCxlbnVtZXJhYmxlOiEwLGZvcmNlZDpCLmNsZWFySW1tZWRpYXRlIT09RX0se2NsZWFySW1tZWRpYXRlOkV9KX0sNTg1OTQ6KFhlLEplLEwpPT57dmFy''@;'; + put 'put ''IG1lPUwoNzA3MDUpLEI9TCgxOTIzMSksRT1MKDI5OTEwKSxNZT1MKDM3MzE5KSxVPUwoMTYwMTcpLFE9ZnVuY3Rpb24oaWUpe2lmKGllJiZpZS5mb3JFYWNoIT09TWUpdHJ5e1UoaWUsImZvckVhY2giLE1lKX1jYXRjaChhZSl7aWUuZm9yRWFjaD1NZX19O2Zvcih2YXIgWiBpbiBCKUJbWl0m''@;'; + put 'put ''JlEobWVbWl0mJm1lW1pdLnByb3RvdHlwZSk7UShFKX0sNTgyNzI6KFhlLEplLEwpPT57dmFyIG1lPUwoNzA3MDUpLEI9TCgxOTIzMSksRT1MKDI5OTEwKSxNZT1MKDU3OTQzKSxVPUwoMTYwMTcpLFE9TCgyNTQ2KSxaPVEoIml0ZXJhdG9yIiksaWU9USgidG9TdHJpbmdUYWciKSxhZT1NZS52''@;'; + put 'put ''YWx1ZXMsWT1mdW5jdGlvbihOLGVlKXtpZihOKXtpZihOW1pdIT09YWUpdHJ5e1UoTixaLGFlKX1jYXRjaChKKXtOW1pdPWFlfWlmKE5baWVdfHxVKE4saWUsZWUpLEJbZWVdKWZvcih2YXIgcSBpbiBNZSlpZihOW3FdIT09TWVbcV0pdHJ5e1UoTixxLE1lW3FdKX1jYXRjaChKKXtOW3FdPU1l''@;'; + put 'put ''W3FdfX19O2Zvcih2YXIgVyBpbiBCKVkobWVbV10mJm1lW1ddLnByb3RvdHlwZSxXKTtZKEUsIkRPTVRva2VuTGlzdCIpfSw5MTk0NTooWGUsSmUsTCk9PntMKDIyNDk2KSxMKDM0NDQzKX0sMzQ0NDM6KFhlLEplLEwpPT57dmFyIG1lPUwoODU2NDgpLEI9TCg3MDcwNSksRT1MKDU1MjYxKS5z''@;'; + put 'put ''ZXQ7bWUoe2dsb2JhbDohMCxiaW5kOiEwLGVudW1lcmFibGU6ITAsZm9yY2VkOkIuc2V0SW1tZWRpYXRlIT09RX0se3NldEltbWVkaWF0ZTpFfSl9LDU2NjcwOihYZSxKZSxMKT0+e3ZhciBtZT1MKDg1NjQ4KSxCPUwoNzA3MDUpLEU9TCg5NTg5NSkuc2V0SW50ZXJ2YWw7bWUoe2dsb2JhbDoh''@;'; + put 'put ''MCxiaW5kOiEwLGZvcmNlZDpCLnNldEludGVydmFsIT09RX0se3NldEludGVydmFsOkV9KX0sNTkxNzI6KFhlLEplLEwpPT57dmFyIG1lPUwoODU2NDgpLEI9TCg3MDcwNSksRT1MKDk1ODk1KS5zZXRUaW1lb3V0O21lKHtnbG9iYWw6ITAsYmluZDohMCxmb3JjZWQ6Qi5zZXRUaW1lb3V0IT09''@;'; + put 'put ''RX0se3NldFRpbWVvdXQ6RX0pfSw1ODMyNDooWGUsSmUsTCk9PntMKDU2NjcwKSxMKDU5MTcyKX0sNDY3MDA6KFhlLEplLEwpPT57dmFyIG1lPXsiLi9hZiI6MjcwODgsIi4vYWYuanMiOjI3MDg4LCIuL2FyIjoxNzAzOCwiLi9hci1keiI6NTI1MDIsIi4vYXItZHouanMiOjUyNTAyLCIuL2Fy''@;'; + put 'put ''LWt3IjozMDEyOCwiLi9hci1rdy5qcyI6MzAxMjgsIi4vYXItbHkiOjg0NTE5LCIuL2FyLWx5LmpzIjo4NDUxOSwiLi9hci1tYSI6NjU0NDMsIi4vYXItbWEuanMiOjY1NDQzLCIuL2FyLXNhIjoxNzY0MiwiLi9hci1zYS5qcyI6MTc2NDIsIi4vYXItdG4iOjY4NTkyLCIuL2FyLXRuLmpzIjo2''@;'; + put 'put ''ODU5MiwiLi9hci5qcyI6MTcwMzgsIi4vYXoiOjUxMjEzLCIuL2F6LmpzIjo1MTIxMywiLi9iZSI6NjkxOTEsIi4vYmUuanMiOjY5MTkxLCIuL2JnIjo5MDMyMiwiLi9iZy5qcyI6OTAzMjIsIi4vYm0iOjI4MDQyLCIuL2JtLmpzIjoyODA0MiwiLi9ibiI6NTk2MjAsIi4vYm4tYmQiOjY1OTAz''@;'; + put 'put ''LCIuL2JuLWJkLmpzIjo2NTkwMywiLi9ibi5qcyI6NTk2MjAsIi4vYm8iOjY5NjQ1LCIuL2JvLmpzIjo2OTY0NSwiLi9iciI6NDUwMjAsIi4vYnIuanMiOjQ1MDIwLCIuL2JzIjo2NDc5MiwiLi9icy5qcyI6NjQ3OTIsIi4vY2EiOjQ3OTgwLCIuL2NhLmpzIjo0Nzk4MCwiLi9jcyI6NDczMjIs''@;'; + put 'put ''Ii4vY3MuanMiOjQ3MzIyLCIuL2N2Ijo5MDM2NSwiLi9jdi5qcyI6OTAzNjUsIi4vY3kiOjMyMDkyLCIuL2N5LmpzIjozMjA5MiwiLi9kYSI6NzczODcsIi4vZGEuanMiOjc3Mzg3LCIuL2RlIjo1NDMwNywiLi9kZS1hdCI6Mjk0NTksIi4vZGUtYXQuanMiOjI5NDU5LCIuL2RlLWNoIjo2NzI0''@;'; + put 'put ''MywiLi9kZS1jaC5qcyI6NjcyNDMsIi4vZGUuanMiOjU0MzA3LCIuL2R2IjozOTY1OSwiLi9kdi5qcyI6Mzk2NTksIi4vZWwiOjM0NjAsIi4vZWwuanMiOjM0NjAsIi4vZW4tYXUiOjk0MzY5LCIuL2VuLWF1LmpzIjo5NDM2OSwiLi9lbi1jYSI6NjA1MzAsIi4vZW4tY2EuanMiOjYwNTMwLCIu''@;'; + put 'put ''L2VuLWdiIjo5OTk4LCIuL2VuLWdiLmpzIjo5OTk4LCIuL2VuLWllIjoxMzM5MSwiLi9lbi1pZS5qcyI6MTMzOTEsIi4vZW4taWwiOjc1NDE0LCIuL2VuLWlsLmpzIjo3NTQxNCwiLi9lbi1pbiI6MTk2MTUsIi4vZW4taW4uanMiOjE5NjE1LCIuL2VuLW56IjoyMTI0OCwiLi9lbi1uei5qcyI6''@;'; + put 'put ''MjEyNDgsIi4vZW4tc2ciOjEzNzY3LCIuL2VuLXNnLmpzIjoxMzc2NywiLi9lbyI6ODQ1MzAsIi4vZW8uanMiOjg0NTMwLCIuL2VzIjo4Njg2NiwiLi9lcy1kbyI6MTg5NDQsIi4vZXMtZG8uanMiOjE4OTQ0LCIuL2VzLW14IjoyOTExNiwiLi9lcy1teC5qcyI6MjkxMTYsIi4vZXMtdXMiOjgz''@;'; + put 'put ''NjA5LCIuL2VzLXVzLmpzIjo4MzYwOSwiLi9lcy5qcyI6ODY4NjYsIi4vZXQiOjk2NzI1LCIuL2V0LmpzIjo5NjcyNSwiLi9ldSI6Njc5MzEsIi4vZXUuanMiOjY3OTMxLCIuL2ZhIjo1NjQxNywiLi9mYS5qcyI6NTY0MTcsIi4vZmkiOjIwOTQ0LCIuL2ZpLmpzIjoyMDk0NCwiLi9maWwiOjYx''@;'; + put 'put ''NzY2LCIuL2ZpbC5qcyI6NjE3NjYsIi4vZm8iOjk1ODY3LCIuL2ZvLmpzIjo5NTg2NywiLi9mciI6MTYzNiwiLi9mci1jYSI6MTY4NDgsIi4vZnItY2EuanMiOjE2ODQ4LCIuL2ZyLWNoIjo3Nzc3MywiLi9mci1jaC5qcyI6Nzc3NzMsIi4vZnIuanMiOjE2MzYsIi4vZnkiOjE0OTQwLCIuL2Z5''@;'; + put 'put ''LmpzIjoxNDk0MCwiLi9nYSI6OTE0MDIsIi4vZ2EuanMiOjkxNDAyLCIuL2dkIjo0NjkyNCwiLi9nZC5qcyI6NDY5MjQsIi4vZ2wiOjE2Mzk4LCIuL2dsLmpzIjoxNjM5OCwiLi9nb20tZGV2YSI6NzI0NTcsIi4vZ29tLWRldmEuanMiOjcyNDU3LCIuL2dvbS1sYXRuIjo1MjU0NSwiLi9nb20t''@;'; + put 'put ''bGF0bi5qcyI6NTI1NDUsIi4vZ3UiOjQyNjQxLCIuL2d1LmpzIjo0MjY0MSwiLi9oZSI6NzUzNiwiLi9oZS5qcyI6NzUzNiwiLi9oaSI6OTYzMzUsIi4vaGkuanMiOjk2MzM1LCIuL2hyIjo3NDU4LCIuL2hyLmpzIjo3NDU4LCIuL2h1Ijo1NjU0MCwiLi9odS5qcyI6NTY1NDAsIi4vaHktYW0i''@;'; + put 'put ''OjY1MjgzLCIuL2h5LWFtLmpzIjo2NTI4MywiLi9pZCI6OTg3ODAsIi4vaWQuanMiOjk4NzgwLCIuL2lzIjoxNDIwNSwiLi9pcy5qcyI6MTQyMDUsIi4vaXQiOjM0MjExLCIuL2l0LWNoIjoyOTk4NSwiLi9pdC1jaC5qcyI6Mjk5ODUsIi4vaXQuanMiOjM0MjExLCIuL2phIjozMTAwMywiLi9q''@;'; + put 'put ''YS5qcyI6MzEwMDMsIi4vanYiOjYwNDIwLCIuL2p2LmpzIjo2MDQyMCwiLi9rYSI6NDA4NTEsIi4va2EuanMiOjQwODUxLCIuL2trIjoxNjA3NCwiLi9ray5qcyI6MTYwNzQsIi4va20iOjUzMzQzLCIuL2ttLmpzIjo1MzM0MywiLi9rbiI6NDQ3OTksIi4va24uanMiOjQ0Nzk5LCIuL2tvIjox''@;'; + put 'put ''MzU0OSwiLi9rby5qcyI6MTM1NDksIi4va3UiOjkxMDM3LCIuL2t1LmpzIjo5MTAzNywiLi9reSI6OTMxMjUsIi4va3kuanMiOjkzMTI1LCIuL2xiIjo2OTU4NiwiLi9sYi5qcyI6Njk1ODYsIi4vbG8iOjMyMzQ5LCIuL2xvLmpzIjozMjM0OSwiLi9sdCI6OTI0MDAsIi4vbHQuanMiOjkyNDAw''@;'; + put 'put ''LCIuL2x2IjozOTk5MSwiLi9sdi5qcyI6Mzk5OTEsIi4vbWUiOjI4NDc3LCIuL21lLmpzIjoyODQ3NywiLi9taSI6NTUxMTgsIi4vbWkuanMiOjU1MTE4LCIuL21rIjoxNTk0MywiLi9tay5qcyI6MTU5NDMsIi4vbWwiOjEzODQ5LCIuL21sLmpzIjoxMzg0OSwiLi9tbiI6MzE5NzcsIi4vbW4u''@;'; + put 'put ''anMiOjMxOTc3LCIuL21yIjo2NjE4NCwiLi9tci5qcyI6NjYxODQsIi4vbXMiOjcwNDg1LCIuL21zLW15Ijo2NDUyNCwiLi9tcy1teS5qcyI6NjQ1MjQsIi4vbXMuanMiOjcwNDg1LCIuL210IjozNjY4MSwiLi9tdC5qcyI6MzY2ODEsIi4vbXkiOjUyMDI0LCIuL215LmpzIjo1MjAyNCwiLi9u''@;'; + put 'put ''YiI6NDI2ODgsIi4vbmIuanMiOjQyNjg4LCIuL25lIjo2ODkxNCwiLi9uZS5qcyI6Njg5MTQsIi4vbmwiOjExNzU4LCIuL25sLWJlIjo1MjI3MiwiLi9ubC1iZS5qcyI6NTIyNzIsIi4vbmwuanMiOjExNzU4LCIuL25uIjo0MTUxMCwiLi9ubi5qcyI6NDE1MTAsIi4vb2MtbG5jIjo1Mjc5Nywi''@;'; + put 'put ''Li9vYy1sbmMuanMiOjUyNzk3LCIuL3BhLWluIjozNzk0NCwiLi9wYS1pbi5qcyI6Mzc5NDQsIi4vcGwiOjE2MDUsIi4vcGwuanMiOjE2MDUsIi4vcHQiOjU0MjI1LCIuL3B0LWJyIjo3Mzg0MCwiLi9wdC1ici5qcyI6NzM4NDAsIi4vcHQuanMiOjU0MjI1LCIuL3JvIjo0NTEyOCwiLi9yby5q''@;'; + put 'put ''cyI6NDUxMjgsIi4vcnUiOjM1MTI3LCIuL3J1LmpzIjozNTEyNywiLi9zZCI6MzI1MjUsIi4vc2QuanMiOjMyNTI1LCIuL3NlIjo1OTg5MywiLi9zZS5qcyI6NTk4OTMsIi4vc2kiOjMzMTIzLCIuL3NpLmpzIjozMzEyMywiLi9zayI6NTk2MzUsIi4vc2suanMiOjU5NjM1LCIuL3NsIjo3ODEw''@;'; + put 'put ''NiwiLi9zbC5qcyI6NzgxMDYsIi4vc3EiOjg4Nzk5LCIuL3NxLmpzIjo4ODc5OSwiLi9zciI6OTc5NDksIi4vc3ItY3lybCI6NTI4NzIsIi4vc3ItY3lybC5qcyI6NTI4NzIsIi4vc3IuanMiOjk3OTQ5LCIuL3NzIjo4NjE2NywiLi9zcy5qcyI6ODYxNjcsIi4vc3YiOjM5NzEzLCIuL3N2Lmpz''@;'; + put 'put ''IjozOTcxMywiLi9zdyI6NDE5ODIsIi4vc3cuanMiOjQxOTgyLCIuL3RhIjoyMjczMiwiLi90YS5qcyI6MjI3MzIsIi4vdGUiOjQzNjM2LCIuL3RlLmpzIjo0MzYzNiwiLi90ZXQiOjIxMTUsIi4vdGV0LmpzIjoyMTE1LCIuL3RnIjo2OTgwMSwiLi90Zy5qcyI6Njk4MDEsIi4vdGgiOjI4Njgs''@;'; + put 'put ''Ii4vdGguanMiOjI4NjgsIi4vdGsiOjMxMzEwLCIuL3RrLmpzIjozMTMxMCwiLi90bC1waCI6MjIzNjAsIi4vdGwtcGguanMiOjIyMzYwLCIuL3RsaCI6NjY2NDUsIi4vdGxoLmpzIjo2NjY0NSwiLi90ciI6OTgzNzQsIi4vdHIuanMiOjk4Mzc0LCIuL3R6bCI6MjU2LCIuL3R6bC5qcyI6MjU2''@;'; + put 'put ''LCIuL3R6bSI6NjE1OTUsIi4vdHptLWxhdG4iOjYxNjMxLCIuL3R6bS1sYXRuLmpzIjo2MTYzMSwiLi90em0uanMiOjYxNTk1LCIuL3VnLWNuIjo2MDUwLCIuL3VnLWNuLmpzIjo2MDUwLCIuL3VrIjo2NTYxMCwiLi91ay5qcyI6NjU2MTAsIi4vdXIiOjg2MDc3LCIuL3VyLmpzIjo4NjA3Nywi''@;'; + put 'put ''Li91eiI6MjI4NjIsIi4vdXotbGF0biI6MTIyMDcsIi4vdXotbGF0bi5qcyI6MTIyMDcsIi4vdXouanMiOjIyODYyLCIuL3ZpIjo0ODA5MywiLi92aS5qcyI6NDgwOTMsIi4veC1wc2V1ZG8iOjI1NTkwLCIuL3gtcHNldWRvLmpzIjoyNTU5MCwiLi95byI6OTA1OCwiLi95by5qcyI6OTA1OCwi''@;'; + put 'put ''Li96aC1jbiI6Nzc5MDgsIi4vemgtY24uanMiOjc3OTA4LCIuL3poLWhrIjo4ODY3LCIuL3poLWhrLmpzIjo4ODY3LCIuL3poLW1vIjozMTEzMywiLi96aC1tby5qcyI6MzExMzMsIi4vemgtdHciOjgzMjkxLCIuL3poLXR3LmpzIjo4MzI5MX07ZnVuY3Rpb24gQihNZSl7dmFyIFU9RShNZSk7''@;'; + put 'put ''cmV0dXJuIEwoVSl9ZnVuY3Rpb24gRShNZSl7aWYoIUwubyhtZSxNZSkpe3ZhciBVPW5ldyBFcnJvcigiQ2Fubm90IGZpbmQgbW9kdWxlICciK01lKyInIik7dGhyb3cgVS5jb2RlPSJNT0RVTEVfTk9UX0ZPVU5EIixVfXJldHVybiBtZVtNZV19Qi5rZXlzPWZ1bmN0aW9uKCl7cmV0dXJuIE9i''@;'; + put 'put ''amVjdC5rZXlzKG1lKX0sQi5yZXNvbHZlPUUsWGUuZXhwb3J0cz1CLEIuaWQ9NDY3MDB9LDc4NzczOigpPT57fSw4MDk1MDooKT0+e30sNDY2MDE6KCk9Pnt9LDg2MjM6KCk9Pnt9LDc3NDg6KCk9Pnt9LDg1NTY4OigpPT57fSwxOTUyNzooKT0+e30sNjkzMzE6KCk9Pnt9LDU2NjE5OigpPT57''@;'; + put 'put ''fSw3NzEwODooKT0+e30sNTIzNjE6KCk9Pnt9LDk0NjE2OigpPT57fSwzNTE1OTooKT0+e30sNzU3MDE6KCk9Pnt9LDE3MTU2OlhlPT57ZnVuY3Rpb24gSmUobWUsQixFLE1lLFUsUSxaKXt0cnl7dmFyIGllPW1lW1FdKFopLGFlPWllLnZhbHVlfWNhdGNoKFkpe3JldHVybiB2b2lkIEUoWSl9''@;'; + put 'put ''aWUuZG9uZT9CKGFlKTpQcm9taXNlLnJlc29sdmUoYWUpLnRoZW4oTWUsVSl9WGUuZXhwb3J0cz1mdW5jdGlvbiBMKG1lKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgQj10aGlzLEU9YXJndW1lbnRzO3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihNZSxVKXt2YXIgUT1tZS5hcHBseShCLEUp''@;'; + put 'put ''O2Z1bmN0aW9uIFooYWUpe0plKFEsTWUsVSxaLGllLCJuZXh0IixhZSl9ZnVuY3Rpb24gaWUoYWUpe0plKFEsTWUsVSxaLGllLCJ0aHJvdyIsYWUpfVoodm9pZCAwKX0pfX0sWGUuZXhwb3J0cy5fX2VzTW9kdWxlPSEwLFhlLmV4cG9ydHMuZGVmYXVsdD1YZS5leHBvcnRzfSw0NDk0NjpYZT0+''@;'; + put 'put ''eyJ1c2Ugc3RyaWN0IjtYZS5leHBvcnRzPUpTT04ucGFyc2UoJ3siYWVzLTEyOC1lY2IiOnsiY2lwaGVyIjoiQUVTIiwia2V5IjoxMjgsIml2IjowLCJtb2RlIjoiRUNCIiwidHlwZSI6ImJsb2NrIn0sImFlcy0xOTItZWNiIjp7ImNpcGhlciI6IkFFUyIsImtleSI6MTkyLCJpdiI6MCwibW9k''@;'; + put 'put ''ZSI6IkVDQiIsInR5cGUiOiJibG9jayJ9LCJhZXMtMjU2LWVjYiI6eyJjaXBoZXIiOiJBRVMiLCJrZXkiOjI1NiwiaXYiOjAsIm1vZGUiOiJFQ0IiLCJ0eXBlIjoiYmxvY2sifSwiYWVzLTEyOC1jYmMiOnsiY2lwaGVyIjoiQUVTIiwia2V5IjoxMjgsIml2IjoxNiwibW9kZSI6IkNCQyIsInR5''@;'; + put 'put ''cGUiOiJibG9jayJ9LCJhZXMtMTkyLWNiYyI6eyJjaXBoZXIiOiJBRVMiLCJrZXkiOjE5MiwiaXYiOjE2LCJtb2RlIjoiQ0JDIiwidHlwZSI6ImJsb2NrIn0sImFlcy0yNTYtY2JjIjp7ImNpcGhlciI6IkFFUyIsImtleSI6MjU2LCJpdiI6MTYsIm1vZGUiOiJDQkMiLCJ0eXBlIjoiYmxvY2si''@;'; + put 'put ''fSwiYWVzMTI4Ijp7ImNpcGhlciI6IkFFUyIsImtleSI6MTI4LCJpdiI6MTYsIm1vZGUiOiJDQkMiLCJ0eXBlIjoiYmxvY2sifSwiYWVzMTkyIjp7ImNpcGhlciI6IkFFUyIsImtleSI6MTkyLCJpdiI6MTYsIm1vZGUiOiJDQkMiLCJ0eXBlIjoiYmxvY2sifSwiYWVzMjU2Ijp7ImNpcGhlciI6''@;'; + put 'put ''IkFFUyIsImtleSI6MjU2LCJpdiI6MTYsIm1vZGUiOiJDQkMiLCJ0eXBlIjoiYmxvY2sifSwiYWVzLTEyOC1jZmIiOnsiY2lwaGVyIjoiQUVTIiwia2V5IjoxMjgsIml2IjoxNiwibW9kZSI6IkNGQiIsInR5cGUiOiJzdHJlYW0ifSwiYWVzLTE5Mi1jZmIiOnsiY2lwaGVyIjoiQUVTIiwia2V5''@;'; + put 'put ''IjoxOTIsIml2IjoxNiwibW9kZSI6IkNGQiIsInR5cGUiOiJzdHJlYW0ifSwiYWVzLTI1Ni1jZmIiOnsiY2lwaGVyIjoiQUVTIiwia2V5IjoyNTYsIml2IjoxNiwibW9kZSI6IkNGQiIsInR5cGUiOiJzdHJlYW0ifSwiYWVzLTEyOC1jZmI4Ijp7ImNpcGhlciI6IkFFUyIsImtleSI6MTI4LCJp''@;'; + put 'put ''diI6MTYsIm1vZGUiOiJDRkI4IiwidHlwZSI6InN0cmVhbSJ9LCJhZXMtMTkyLWNmYjgiOnsiY2lwaGVyIjoiQUVTIiwia2V5IjoxOTIsIml2IjoxNiwibW9kZSI6IkNGQjgiLCJ0eXBlIjoic3RyZWFtIn0sImFlcy0yNTYtY2ZiOCI6eyJjaXBoZXIiOiJBRVMiLCJrZXkiOjI1NiwiaXYiOjE2''@;'; + put 'put ''LCJtb2RlIjoiQ0ZCOCIsInR5cGUiOiJzdHJlYW0ifSwiYWVzLTEyOC1jZmIxIjp7ImNpcGhlciI6IkFFUyIsImtleSI6MTI4LCJpdiI6MTYsIm1vZGUiOiJDRkIxIiwidHlwZSI6InN0cmVhbSJ9LCJhZXMtMTkyLWNmYjEiOnsiY2lwaGVyIjoiQUVTIiwia2V5IjoxOTIsIml2IjoxNiwibW9k''@;'; + put 'put ''ZSI6IkNGQjEiLCJ0eXBlIjoic3RyZWFtIn0sImFlcy0yNTYtY2ZiMSI6eyJjaXBoZXIiOiJBRVMiLCJrZXkiOjI1NiwiaXYiOjE2LCJtb2RlIjoiQ0ZCMSIsInR5cGUiOiJzdHJlYW0ifSwiYWVzLTEyOC1vZmIiOnsiY2lwaGVyIjoiQUVTIiwia2V5IjoxMjgsIml2IjoxNiwibW9kZSI6Ik9G''@;'; + put 'put ''QiIsInR5cGUiOiJzdHJlYW0ifSwiYWVzLTE5Mi1vZmIiOnsiY2lwaGVyIjoiQUVTIiwia2V5IjoxOTIsIml2IjoxNiwibW9kZSI6Ik9GQiIsInR5cGUiOiJzdHJlYW0ifSwiYWVzLTI1Ni1vZmIiOnsiY2lwaGVyIjoiQUVTIiwia2V5IjoyNTYsIml2IjoxNiwibW9kZSI6Ik9GQiIsInR5cGUi''@;'; + put 'put ''OiJzdHJlYW0ifSwiYWVzLTEyOC1jdHIiOnsiY2lwaGVyIjoiQUVTIiwia2V5IjoxMjgsIml2IjoxNiwibW9kZSI6IkNUUiIsInR5cGUiOiJzdHJlYW0ifSwiYWVzLTE5Mi1jdHIiOnsiY2lwaGVyIjoiQUVTIiwia2V5IjoxOTIsIml2IjoxNiwibW9kZSI6IkNUUiIsInR5cGUiOiJzdHJlYW0i''@;'; + put 'put ''fSwiYWVzLTI1Ni1jdHIiOnsiY2lwaGVyIjoiQUVTIiwia2V5IjoyNTYsIml2IjoxNiwibW9kZSI6IkNUUiIsInR5cGUiOiJzdHJlYW0ifSwiYWVzLTEyOC1nY20iOnsiY2lwaGVyIjoiQUVTIiwia2V5IjoxMjgsIml2IjoxMiwibW9kZSI6IkdDTSIsInR5cGUiOiJhdXRoIn0sImFlcy0xOTIt''@;'; + put 'put ''Z2NtIjp7ImNpcGhlciI6IkFFUyIsImtleSI6MTkyLCJpdiI6MTIsIm1vZGUiOiJHQ00iLCJ0eXBlIjoiYXV0aCJ9LCJhZXMtMjU2LWdjbSI6eyJjaXBoZXIiOiJBRVMiLCJrZXkiOjI1NiwiaXYiOjEyLCJtb2RlIjoiR0NNIiwidHlwZSI6ImF1dGgifX0nKX0sNzUyMDc6WGU9PnsidXNlIHN0''@;'; + put 'put ''cmljdCI7WGUuZXhwb3J0cz1KU09OLnBhcnNlKCd7InNoYTIyNFdpdGhSU0FFbmNyeXB0aW9uIjp7InNpZ24iOiJyc2EiLCJoYXNoIjoic2hhMjI0IiwiaWQiOiIzMDJkMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDQwNTAwMDQxYyJ9LCJSU0EtU0hBMjI0Ijp7InNpZ24iOiJlY2RzYS9yc2Ei''@;'; + put 'put ''LCJoYXNoIjoic2hhMjI0IiwiaWQiOiIzMDJkMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDQwNTAwMDQxYyJ9LCJzaGEyNTZXaXRoUlNBRW5jcnlwdGlvbiI6eyJzaWduIjoicnNhIiwiaGFzaCI6InNoYTI1NiIsImlkIjoiMzAzMTMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDA0MjAi''@;'; + put 'put ''fSwiUlNBLVNIQTI1NiI6eyJzaWduIjoiZWNkc2EvcnNhIiwiaGFzaCI6InNoYTI1NiIsImlkIjoiMzAzMTMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDA0MjAifSwic2hhMzg0V2l0aFJTQUVuY3J5cHRpb24iOnsic2lnbiI6InJzYSIsImhhc2giOiJzaGEzODQiLCJpZCI6IjMwNDEz''@;'; + put 'put ''MDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMjA1MDAwNDMwIn0sIlJTQS1TSEEzODQiOnsic2lnbiI6ImVjZHNhL3JzYSIsImhhc2giOiJzaGEzODQiLCJpZCI6IjMwNDEzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMjA1MDAwNDMwIn0sInNoYTUxMldpdGhSU0FFbmNyeXB0aW9uIjp7InNpZ24i''@;'; + put 'put ''OiJyc2EiLCJoYXNoIjoic2hhNTEyIiwiaWQiOiIzMDUxMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDMwNTAwMDQ0MCJ9LCJSU0EtU0hBNTEyIjp7InNpZ24iOiJlY2RzYS9yc2EiLCJoYXNoIjoic2hhNTEyIiwiaWQiOiIzMDUxMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDMwNTAwMDQ0MCJ9''@;'; + put 'put ''LCJSU0EtU0hBMSI6eyJzaWduIjoicnNhIiwiaGFzaCI6InNoYTEiLCJpZCI6IjMwMjEzMDA5MDYwNTJiMGUwMzAyMWEwNTAwMDQxNCJ9LCJlY2RzYS13aXRoLVNIQTEiOnsic2lnbiI6ImVjZHNhIiwiaGFzaCI6InNoYTEiLCJpZCI6IiJ9LCJzaGEyNTYiOnsic2lnbiI6ImVjZHNhIiwiaGFz''@;'; + put 'put ''aCI6InNoYTI1NiIsImlkIjoiIn0sInNoYTIyNCI6eyJzaWduIjoiZWNkc2EiLCJoYXNoIjoic2hhMjI0IiwiaWQiOiIifSwic2hhMzg0Ijp7InNpZ24iOiJlY2RzYSIsImhhc2giOiJzaGEzODQiLCJpZCI6IiJ9LCJzaGE1MTIiOnsic2lnbiI6ImVjZHNhIiwiaGFzaCI6InNoYTUxMiIsImlk''@;'; + put 'put ''IjoiIn0sIkRTQS1TSEEiOnsic2lnbiI6ImRzYSIsImhhc2giOiJzaGExIiwiaWQiOiIifSwiRFNBLVNIQTEiOnsic2lnbiI6ImRzYSIsImhhc2giOiJzaGExIiwiaWQiOiIifSwiRFNBIjp7InNpZ24iOiJkc2EiLCJoYXNoIjoic2hhMSIsImlkIjoiIn0sIkRTQS1XSVRILVNIQTIyNCI6eyJz''@;'; + put 'put ''aWduIjoiZHNhIiwiaGFzaCI6InNoYTIyNCIsImlkIjoiIn0sIkRTQS1TSEEyMjQiOnsic2lnbiI6ImRzYSIsImhhc2giOiJzaGEyMjQiLCJpZCI6IiJ9LCJEU0EtV0lUSC1TSEEyNTYiOnsic2lnbiI6ImRzYSIsImhhc2giOiJzaGEyNTYiLCJpZCI6IiJ9LCJEU0EtU0hBMjU2Ijp7InNpZ24i''@;'; + put 'put ''OiJkc2EiLCJoYXNoIjoic2hhMjU2IiwiaWQiOiIifSwiRFNBLVdJVEgtU0hBMzg0Ijp7InNpZ24iOiJkc2EiLCJoYXNoIjoic2hhMzg0IiwiaWQiOiIifSwiRFNBLVNIQTM4NCI6eyJzaWduIjoiZHNhIiwiaGFzaCI6InNoYTM4NCIsImlkIjoiIn0sIkRTQS1XSVRILVNIQTUxMiI6eyJzaWdu''@;'; + put 'put ''IjoiZHNhIiwiaGFzaCI6InNoYTUxMiIsImlkIjoiIn0sIkRTQS1TSEE1MTIiOnsic2lnbiI6ImRzYSIsImhhc2giOiJzaGE1MTIiLCJpZCI6IiJ9LCJEU0EtUklQRU1EMTYwIjp7InNpZ24iOiJkc2EiLCJoYXNoIjoicm1kMTYwIiwiaWQiOiIifSwicmlwZW1kMTYwV2l0aFJTQSI6eyJzaWdu''@;'; + put 'put ''IjoicnNhIiwiaGFzaCI6InJtZDE2MCIsImlkIjoiMzAyMTMwMDkwNjA1MmIyNDAzMDIwMTA1MDAwNDE0In0sIlJTQS1SSVBFTUQxNjAiOnsic2lnbiI6InJzYSIsImhhc2giOiJybWQxNjAiLCJpZCI6IjMwMjEzMDA5MDYwNTJiMjQwMzAyMDEwNTAwMDQxNCJ9LCJtZDVXaXRoUlNBRW5jcnlw''@;'; + put 'put ''dGlvbiI6eyJzaWduIjoicnNhIiwiaGFzaCI6Im1kNSIsImlkIjoiMzAyMDMwMGMwNjA4MmE4NjQ4ODZmNzBkMDIwNTA1MDAwNDEwIn0sIlJTQS1NRDUiOnsic2lnbiI6InJzYSIsImhhc2giOiJtZDUiLCJpZCI6IjMwMjAzMDBjMDYwODJhODY0ODg2ZjcwZDAyMDUwNTAwMDQxMCJ9fScpfSwx''@;'; + put 'put ''MzA4OlhlPT57InVzZSBzdHJpY3QiO1hlLmV4cG9ydHM9SlNPTi5wYXJzZSgneyIxLjMuMTMyLjAuMTAiOiJzZWNwMjU2azEiLCIxLjMuMTMyLjAuMzMiOiJwMjI0IiwiMS4yLjg0MC4xMDA0NS4zLjEuMSI6InAxOTIiLCIxLjIuODQwLjEwMDQ1LjMuMS43IjoicDI1NiIsIjEuMy4xMzIuMC4z''@;'; + put 'put ''NCI6InAzODQiLCIxLjMuMTMyLjAuMzUiOiJwNTIxIn0nKX0sMjk3OTk6WGU9PnsidXNlIHN0cmljdCI7WGUuZXhwb3J0cz1KU09OLnBhcnNlKCd7Im1vZHAxIjp7ImdlbiI6IjAyIiwicHJpbWUiOiJmZmZmZmZmZmZmZmZmZmZmYzkwZmRhYTIyMTY4YzIzNGM0YzY2MjhiODBkYzFjZDEyOTAy''@;'; + put 'put ''NGUwODhhNjdjYzc0MDIwYmJlYTYzYjEzOWIyMjUxNGEwODc5OGUzNDA0ZGRlZjk1MTliM2NkM2E0MzFiMzAyYjBhNmRmMjVmMTQzNzRmZTEzNTZkNmQ1MWMyNDVlNDg1YjU3NjYyNWU3ZWM2ZjQ0YzQyZTlhNjNhMzYyMGZmZmZmZmZmZmZmZmZmZmYifSwibW9kcDIiOnsiZ2VuIjoiMDIiLCJw''@;'; + put 'put ''cmltZSI6ImZmZmZmZmZmZmZmZmZmZmZjOTBmZGFhMjIxNjhjMjM0YzRjNjYyOGI4MGRjMWNkMTI5MDI0ZTA4OGE2N2NjNzQwMjBiYmVhNjNiMTM5YjIyNTE0YTA4Nzk4ZTM0MDRkZGVmOTUxOWIzY2QzYTQzMWIzMDJiMGE2ZGYyNWYxNDM3NGZlMTM1NmQ2ZDUxYzI0NWU0ODViNTc2NjI1ZTdl''@;'; + put 'put ''YzZmNDRjNDJlOWE2MzdlZDZiMGJmZjVjYjZmNDA2YjdlZGVlMzg2YmZiNWE4OTlmYTVhZTlmMjQxMTdjNGIxZmU2NDkyODY2NTFlY2U2NTM4MWZmZmZmZmZmZmZmZmZmZmYifSwibW9kcDUiOnsiZ2VuIjoiMDIiLCJwcmltZSI6ImZmZmZmZmZmZmZmZmZmZmZjOTBmZGFhMjIxNjhjMjM0YzRj''@;'; + put 'put ''NjYyOGI4MGRjMWNkMTI5MDI0ZTA4OGE2N2NjNzQwMjBiYmVhNjNiMTM5YjIyNTE0YTA4Nzk4ZTM0MDRkZGVmOTUxOWIzY2QzYTQzMWIzMDJiMGE2ZGYyNWYxNDM3NGZlMTM1NmQ2ZDUxYzI0NWU0ODViNTc2NjI1ZTdlYzZmNDRjNDJlOWE2MzdlZDZiMGJmZjVjYjZmNDA2YjdlZGVlMzg2YmZi''@;'; + put 'put ''NWE4OTlmYTVhZTlmMjQxMTdjNGIxZmU2NDkyODY2NTFlY2U0NWIzZGMyMDA3Y2I4YTE2M2JmMDU5OGRhNDgzNjFjNTVkMzlhNjkxNjNmYThmZDI0Y2Y1ZjgzNjU1ZDIzZGNhM2FkOTYxYzYyZjM1NjIwODU1MmJiOWVkNTI5MDc3MDk2OTY2ZDY3MGMzNTRlNGFiYzk4MDRmMTc0NmMwOGNhMjM3''@;'; + put 'put ''MzI3ZmZmZmZmZmZmZmZmZmZmZiJ9LCJtb2RwMTQiOnsiZ2VuIjoiMDIiLCJwcmltZSI6ImZmZmZmZmZmZmZmZmZmZmZjOTBmZGFhMjIxNjhjMjM0YzRjNjYyOGI4MGRjMWNkMTI5MDI0ZTA4OGE2N2NjNzQwMjBiYmVhNjNiMTM5YjIyNTE0YTA4Nzk4ZTM0MDRkZGVmOTUxOWIzY2QzYTQzMWIz''@;'; + put 'put ''MDJiMGE2ZGYyNWYxNDM3NGZlMTM1NmQ2ZDUxYzI0NWU0ODViNTc2NjI1ZTdlYzZmNDRjNDJlOWE2MzdlZDZiMGJmZjVjYjZmNDA2YjdlZGVlMzg2YmZiNWE4OTlmYTVhZTlmMjQxMTdjNGIxZmU2NDkyODY2NTFlY2U0NWIzZGMyMDA3Y2I4YTE2M2JmMDU5OGRhNDgzNjFjNTVkMzlhNjkxNjNm''@;'; + put 'put ''YThmZDI0Y2Y1ZjgzNjU1ZDIzZGNhM2FkOTYxYzYyZjM1NjIwODU1MmJiOWVkNTI5MDc3MDk2OTY2ZDY3MGMzNTRlNGFiYzk4MDRmMTc0NmMwOGNhMTgyMTdjMzI5MDVlNDYyZTM2Y2UzYmUzOWU3NzJjMTgwZTg2MDM5YjI3ODNhMmVjMDdhMjhmYjVjNTVkZjA2ZjRjNTJjOWRlMmJjYmY2OTU1''@;'; + put 'put ''ODE3MTgzOTk1NDk3Y2VhOTU2YWU1MTVkMjI2MTg5OGZhMDUxMDE1NzI4ZTVhOGFhY2FhNjhmZmZmZmZmZmZmZmZmZmZmIn0sIm1vZHAxNSI6eyJnZW4iOiIwMiIsInByaW1lIjoiZmZmZmZmZmZmZmZmZmZmZmM5MGZkYWEyMjE2OGMyMzRjNGM2NjI4YjgwZGMxY2QxMjkwMjRlMDg4YTY3Y2M3''@;'; + put 'put ''NDAyMGJiZWE2M2IxMzliMjI1MTRhMDg3OThlMzQwNGRkZWY5NTE5YjNjZDNhNDMxYjMwMmIwYTZkZjI1ZjE0Mzc0ZmUxMzU2ZDZkNTFjMjQ1ZTQ4NWI1NzY2MjVlN2VjNmY0NGM0MmU5YTYzN2VkNmIwYmZmNWNiNmY0MDZiN2VkZWUzODZiZmI1YTg5OWZhNWFlOWYyNDExN2M0YjFmZTY0OTI4''@;'; + put 'put ''NjY1MWVjZTQ1YjNkYzIwMDdjYjhhMTYzYmYwNTk4ZGE0ODM2MWM1NWQzOWE2OTE2M2ZhOGZkMjRjZjVmODM2NTVkMjNkY2EzYWQ5NjFjNjJmMzU2MjA4NTUyYmI5ZWQ1MjkwNzcwOTY5NjZkNjcwYzM1NGU0YWJjOTgwNGYxNzQ2YzA4Y2ExODIxN2MzMjkwNWU0NjJlMzZjZTNiZTM5ZTc3MmMx''@;'; + put 'put ''ODBlODYwMzliMjc4M2EyZWMwN2EyOGZiNWM1NWRmMDZmNGM1MmM5ZGUyYmNiZjY5NTU4MTcxODM5OTU0OTdjZWE5NTZhZTUxNWQyMjYxODk4ZmEwNTEwMTU3MjhlNWE4YWFhYzQyZGFkMzMxNzBkMDQ1MDdhMzNhODU1MjFhYmRmMWNiYTY0ZWNmYjg1MDQ1OGRiZWYwYThhZWE3MTU3NWQwNjBj''@;'; + put 'put ''N2RiMzk3MGY4NWE2ZTFlNGM3YWJmNWFlOGNkYjA5MzNkNzFlOGM5NGUwNGEyNTYxOWRjZWUzZDIyNjFhZDJlZTZiZjEyZmZhMDZkOThhMDg2NGQ4NzYwMjczM2VjODZhNjQ1MjFmMmIxODE3N2IyMDBjYmJlMTE3NTc3YTYxNWQ2Yzc3MDk4OGMwYmFkOTQ2ZTIwOGUyNGZhMDc0ZTVhYjMxNDNk''@;'; + put 'put ''YjViZmNlMGZkMTA4ZTRiODJkMTIwYTkzYWQyY2FmZmZmZmZmZmZmZmZmZmZmIn0sIm1vZHAxNiI6eyJnZW4iOiIwMiIsInByaW1lIjoiZmZmZmZmZmZmZmZmZmZmZmM5MGZkYWEyMjE2OGMyMzRjNGM2NjI4YjgwZGMxY2QxMjkwMjRlMDg4YTY3Y2M3NDAyMGJiZWE2M2IxMzliMjI1MTRhMDg3''@;'; + put 'put ''OThlMzQwNGRkZWY5NTE5YjNjZDNhNDMxYjMwMmIwYTZkZjI1ZjE0Mzc0ZmUxMzU2ZDZkNTFjMjQ1ZTQ4NWI1NzY2MjVlN2VjNmY0NGM0MmU5YTYzN2VkNmIwYmZmNWNiNmY0MDZiN2VkZWUzODZiZmI1YTg5OWZhNWFlOWYyNDExN2M0YjFmZTY0OTI4NjY1MWVjZTQ1YjNkYzIwMDdjYjhhMTYz''@;'; + put 'put ''YmYwNTk4ZGE0ODM2MWM1NWQzOWE2OTE2M2ZhOGZkMjRjZjVmODM2NTVkMjNkY2EzYWQ5NjFjNjJmMzU2MjA4NTUyYmI5ZWQ1MjkwNzcwOTY5NjZkNjcwYzM1NGU0YWJjOTgwNGYxNzQ2YzA4Y2ExODIxN2MzMjkwNWU0NjJlMzZjZTNiZTM5ZTc3MmMxODBlODYwMzliMjc4M2EyZWMwN2EyOGZi''@;'; + put 'put ''NWM1NWRmMDZmNGM1MmM5ZGUyYmNiZjY5NTU4MTcxODM5OTU0OTdjZWE5NTZhZTUxNWQyMjYxODk4ZmEwNTEwMTU3MjhlNWE4YWFhYzQyZGFkMzMxNzBkMDQ1MDdhMzNhODU1MjFhYmRmMWNiYTY0ZWNmYjg1MDQ1OGRiZWYwYThhZWE3MTU3NWQwNjBjN2RiMzk3MGY4NWE2ZTFlNGM3YWJmNWFl''@;'; + put 'put ''OGNkYjA5MzNkNzFlOGM5NGUwNGEyNTYxOWRjZWUzZDIyNjFhZDJlZTZiZjEyZmZhMDZkOThhMDg2NGQ4NzYwMjczM2VjODZhNjQ1MjFmMmIxODE3N2IyMDBjYmJlMTE3NTc3YTYxNWQ2Yzc3MDk4OGMwYmFkOTQ2ZTIwOGUyNGZhMDc0ZTVhYjMxNDNkYjViZmNlMGZkMTA4ZTRiODJkMTIwYTky''@;'; + put 'put ''MTA4MDExYTcyM2MxMmE3ODdlNmQ3ODg3MTlhMTBiZGJhNWIyNjk5YzMyNzE4NmFmNGUyM2MxYTk0NjgzNGI2MTUwYmRhMjU4M2U5Y2EyYWQ0NGNlOGRiYmJjMmRiMDRkZThlZjkyZThlZmMxNDFmYmVjYWE2Mjg3YzU5NDc0ZTZiYzA1ZDk5YjI5NjRmYTA5MGMzYTIyMzNiYTE4NjUxNWJlN2Vk''@;'; + put 'put ''MWY2MTI5NzBjZWUyZDdhZmI4MWJkZDc2MjE3MDQ4MWNkMDA2OTEyN2Q1YjA1YWE5OTNiNGVhOTg4ZDhmZGRjMTg2ZmZiN2RjOTBhNmMwOGY0ZGY0MzVjOTM0MDYzMTk5ZmZmZmZmZmZmZmZmZmZmZiJ9LCJtb2RwMTciOnsiZ2VuIjoiMDIiLCJwcmltZSI6ImZmZmZmZmZmZmZmZmZmZmZjOTBm''@;'; + put 'put ''ZGFhMjIxNjhjMjM0YzRjNjYyOGI4MGRjMWNkMTI5MDI0ZTA4OGE2N2NjNzQwMjBiYmVhNjNiMTM5YjIyNTE0YTA4Nzk4ZTM0MDRkZGVmOTUxOWIzY2QzYTQzMWIzMDJiMGE2ZGYyNWYxNDM3NGZlMTM1NmQ2ZDUxYzI0NWU0ODViNTc2NjI1ZTdlYzZmNDRjNDJlOWE2MzdlZDZiMGJmZjVjYjZm''@;'; + put 'put ''NDA2YjdlZGVlMzg2YmZiNWE4OTlmYTVhZTlmMjQxMTdjNGIxZmU2NDkyODY2NTFlY2U0NWIzZGMyMDA3Y2I4YTE2M2JmMDU5OGRhNDgzNjFjNTVkMzlhNjkxNjNmYThmZDI0Y2Y1ZjgzNjU1ZDIzZGNhM2FkOTYxYzYyZjM1NjIwODU1MmJiOWVkNTI5MDc3MDk2OTY2ZDY3MGMzNTRlNGFiYzk4''@;'; + put 'put ''MDRmMTc0NmMwOGNhMTgyMTdjMzI5MDVlNDYyZTM2Y2UzYmUzOWU3NzJjMTgwZTg2MDM5YjI3ODNhMmVjMDdhMjhmYjVjNTVkZjA2ZjRjNTJjOWRlMmJjYmY2OTU1ODE3MTgzOTk1NDk3Y2VhOTU2YWU1MTVkMjI2MTg5OGZhMDUxMDE1NzI4ZTVhOGFhYWM0MmRhZDMzMTcwZDA0NTA3YTMzYTg1''@;'; + put 'put ''NTIxYWJkZjFjYmE2NGVjZmI4NTA0NThkYmVmMGE4YWVhNzE1NzVkMDYwYzdkYjM5NzBmODVhNmUxZTRjN2FiZjVhZThjZGIwOTMzZDcxZThjOTRlMDRhMjU2MTlkY2VlM2QyMjYxYWQyZWU2YmYxMmZmYTA2ZDk4YTA4NjRkODc2MDI3MzNlYzg2YTY0NTIxZjJiMTgxNzdiMjAwY2JiZTExNzU3''@;'; + put 'put ''N2E2MTVkNmM3NzA5ODhjMGJhZDk0NmUyMDhlMjRmYTA3NGU1YWIzMTQzZGI1YmZjZTBmZDEwOGU0YjgyZDEyMGE5MjEwODAxMWE3MjNjMTJhNzg3ZTZkNzg4NzE5YTEwYmRiYTViMjY5OWMzMjcxODZhZjRlMjNjMWE5NDY4MzRiNjE1MGJkYTI1ODNlOWNhMmFkNDRjZThkYmJiYzJkYjA0ZGU4''@;'; + put 'put ''ZWY5MmU4ZWZjMTQxZmJlY2FhNjI4N2M1OTQ3NGU2YmMwNWQ5OWIyOTY0ZmEwOTBjM2EyMjMzYmExODY1MTViZTdlZDFmNjEyOTcwY2VlMmQ3YWZiODFiZGQ3NjIxNzA0ODFjZDAwNjkxMjdkNWIwNWFhOTkzYjRlYTk4OGQ4ZmRkYzE4NmZmYjdkYzkwYTZjMDhmNGRmNDM1YzkzNDAyODQ5MjM2''@;'; + put 'put ''YzNmYWI0ZDI3YzcwMjZjMWQ0ZGNiMjYwMjY0NmRlYzk3NTFlNzYzZGJhMzdiZGY4ZmY5NDA2YWQ5ZTUzMGVlNWRiMzgyZjQxMzAwMWFlYjA2YTUzZWQ5MDI3ZDgzMTE3OTcyN2IwODY1YTg5MThkYTNlZGJlYmNmOWIxNGVkNDRjZTZjYmFjZWQ0YmIxYmRiN2YxNDQ3ZTZjYzI1NGIzMzIwNTE1''@;'; + put 'put ''MTJiZDdhZjQyNmZiOGY0MDEzNzhjZDJiZjU5ODNjYTAxYzY0YjkyZWNmMDMyZWExNWQxNzIxZDAzZjQ4MmQ3Y2U2ZTc0ZmVmNmQ1NWU3MDJmNDY5ODBjODJiNWE4NDAzMTkwMGIxYzllNTllN2M5N2ZiZWM3ZThmMzIzYTk3YTdlMzZjYzg4YmUwZjFkNDViN2ZmNTg1YWM1NGJkNDA3YjIyYjQx''@;'; + put 'put ''NTRhYWNjOGY2ZDdlYmY0OGUxZDgxNGNjNWVkMjBmODAzN2UwYTc5NzE1ZWVmMjliZTMyODA2YTFkNThiYjdjNWRhNzZmNTUwYWEzZDhhMWZiZmYwZWIxOWNjYjFhMzEzZDU1Y2RhNTZjOWVjMmVmMjk2MzIzODdmZThkNzZlM2MwNDY4MDQzZThmNjYzZjQ4NjBlZTEyYmYyZDViMGI3NDc0ZDZl''@;'; + put 'put ''Njk0ZjkxZTZkY2M0MDI0ZmZmZmZmZmZmZmZmZmZmZiJ9LCJtb2RwMTgiOnsiZ2VuIjoiMDIiLCJwcmltZSI6ImZmZmZmZmZmZmZmZmZmZmZjOTBmZGFhMjIxNjhjMjM0YzRjNjYyOGI4MGRjMWNkMTI5MDI0ZTA4OGE2N2NjNzQwMjBiYmVhNjNiMTM5YjIyNTE0YTA4Nzk4ZTM0MDRkZGVmOTUx''@;'; + put 'put ''OWIzY2QzYTQzMWIzMDJiMGE2ZGYyNWYxNDM3NGZlMTM1NmQ2ZDUxYzI0NWU0ODViNTc2NjI1ZTdlYzZmNDRjNDJlOWE2MzdlZDZiMGJmZjVjYjZmNDA2YjdlZGVlMzg2YmZiNWE4OTlmYTVhZTlmMjQxMTdjNGIxZmU2NDkyODY2NTFlY2U0NWIzZGMyMDA3Y2I4YTE2M2JmMDU5OGRhNDgzNjFj''@;'; + put 'put ''NTVkMzlhNjkxNjNmYThmZDI0Y2Y1ZjgzNjU1ZDIzZGNhM2FkOTYxYzYyZjM1NjIwODU1MmJiOWVkNTI5MDc3MDk2OTY2ZDY3MGMzNTRlNGFiYzk4MDRmMTc0NmMwOGNhMTgyMTdjMzI5MDVlNDYyZTM2Y2UzYmUzOWU3NzJjMTgwZTg2MDM5YjI3ODNhMmVjMDdhMjhmYjVjNTVkZjA2ZjRjNTJj''@;'; + put 'put ''OWRlMmJjYmY2OTU1ODE3MTgzOTk1NDk3Y2VhOTU2YWU1MTVkMjI2MTg5OGZhMDUxMDE1NzI4ZTVhOGFhYWM0MmRhZDMzMTcwZDA0NTA3YTMzYTg1NTIxYWJkZjFjYmE2NGVjZmI4NTA0NThkYmVmMGE4YWVhNzE1NzVkMDYwYzdkYjM5NzBmODVhNmUxZTRjN2FiZjVhZThjZGIwOTMzZDcxZThj''@;'; + put 'put ''OTRlMDRhMjU2MTlkY2VlM2QyMjYxYWQyZWU2YmYxMmZmYTA2ZDk4YTA4NjRkODc2MDI3MzNlYzg2YTY0NTIxZjJiMTgxNzdiMjAwY2JiZTExNzU3N2E2MTVkNmM3NzA5ODhjMGJhZDk0NmUyMDhlMjRmYTA3NGU1YWIzMTQzZGI1YmZjZTBmZDEwOGU0YjgyZDEyMGE5MjEwODAxMWE3MjNjMTJh''@;'; + put 'put ''Nzg3ZTZkNzg4NzE5YTEwYmRiYTViMjY5OWMzMjcxODZhZjRlMjNjMWE5NDY4MzRiNjE1MGJkYTI1ODNlOWNhMmFkNDRjZThkYmJiYzJkYjA0ZGU4ZWY5MmU4ZWZjMTQxZmJlY2FhNjI4N2M1OTQ3NGU2YmMwNWQ5OWIyOTY0ZmEwOTBjM2EyMjMzYmExODY1MTViZTdlZDFmNjEyOTcwY2VlMmQ3''@;'; + put 'put ''YWZiODFiZGQ3NjIxNzA0ODFjZDAwNjkxMjdkNWIwNWFhOTkzYjRlYTk4OGQ4ZmRkYzE4NmZmYjdkYzkwYTZjMDhmNGRmNDM1YzkzNDAyODQ5MjM2YzNmYWI0ZDI3YzcwMjZjMWQ0ZGNiMjYwMjY0NmRlYzk3NTFlNzYzZGJhMzdiZGY4ZmY5NDA2YWQ5ZTUzMGVlNWRiMzgyZjQxMzAwMWFlYjA2''@;'; + put 'put ''YTUzZWQ5MDI3ZDgzMTE3OTcyN2IwODY1YTg5MThkYTNlZGJlYmNmOWIxNGVkNDRjZTZjYmFjZWQ0YmIxYmRiN2YxNDQ3ZTZjYzI1NGIzMzIwNTE1MTJiZDdhZjQyNmZiOGY0MDEzNzhjZDJiZjU5ODNjYTAxYzY0YjkyZWNmMDMyZWExNWQxNzIxZDAzZjQ4MmQ3Y2U2ZTc0ZmVmNmQ1NWU3MDJm''@;'; + put 'put ''NDY5ODBjODJiNWE4NDAzMTkwMGIxYzllNTllN2M5N2ZiZWM3ZThmMzIzYTk3YTdlMzZjYzg4YmUwZjFkNDViN2ZmNTg1YWM1NGJkNDA3YjIyYjQxNTRhYWNjOGY2ZDdlYmY0OGUxZDgxNGNjNWVkMjBmODAzN2UwYTc5NzE1ZWVmMjliZTMyODA2YTFkNThiYjdjNWRhNzZmNTUwYWEzZDhhMWZi''@;'; + put 'put ''ZmYwZWIxOWNjYjFhMzEzZDU1Y2RhNTZjOWVjMmVmMjk2MzIzODdmZThkNzZlM2MwNDY4MDQzZThmNjYzZjQ4NjBlZTEyYmYyZDViMGI3NDc0ZDZlNjk0ZjkxZTZkYmUxMTU5NzRhMzkyNmYxMmZlZTVlNDM4Nzc3Y2I2YTkzMmRmOGNkOGJlYzRkMDczYjkzMWJhM2JjODMyYjY4ZDlkZDMwMDc0''@;'; + put 'put ''MWZhN2JmOGFmYzQ3ZWQyNTc2ZjY5MzZiYTQyNDY2M2FhYjYzOWM1YWU0ZjU2ODM0MjNiNDc0MmJmMWM5NzgyMzhmMTZjYmUzOWQ2NTJkZTNmZGI4YmVmYzg0OGFkOTIyMjIyZTA0YTQwMzdjMDcxM2ViNTdhODFhMjNmMGM3MzQ3M2ZjNjQ2Y2VhMzA2YjRiY2JjODg2MmY4Mzg1ZGRmYTlkNGI3''@;'; + put 'put ''ZmEyYzA4N2U4Nzk2ODMzMDNlZDViZGQzYTA2MmIzY2Y1YjNhMjc4YTY2ZDJhMTNmODNmNDRmODJkZGYzMTBlZTA3NGFiNmEzNjQ1OTdlODk5YTAyNTVkYzE2NGYzMWNjNTA4NDY4NTFkZjlhYjQ4MTk1ZGVkN2VhMWIxZDUxMGJkN2VlNzRkNzNmYWYzNmJjMzFlY2ZhMjY4MzU5MDQ2ZjRlYjg3''@;'; + put 'put ''OWY5MjQwMDk0MzhiNDgxYzZjZDc4ODlhMDAyZWQ1ZWUzODJiYzkxOTBkYTZmYzAyNmU0Nzk1NThlNDQ3NTY3N2U5YWE5ZTMwNTBlMjc2NTY5NGRmYzgxZjU2ZTg4MGI5NmU3MTYwYzk4MGRkOThlZGQzZGZmZmZmZmZmZmZmZmZmZmZmIn19Jyl9LDE4NTk3OlhlPT57InVzZSBzdHJpY3QiO1hl''@;'; + put 'put ''LmV4cG9ydHM9e2k4OiI2LjUuNCJ9fSw2MzQ4MDpYZT0+eyJ1c2Ugc3RyaWN0IjtYZS5leHBvcnRzPUpTT04ucGFyc2UoJ1tbIjg3NDAiLCJcdTQzZjBcdTRjMzJcdTQ2MDNcdTQ1YTZcdTQ1NzhcdXsyNzI2N31cdTRkNzdcdTQ1YjNcdXsyN2NiMX1cdTRjZTJcdXsyN2NjNX1cdTNiOTVcdTQ3''@;'; + put 'put ''MzZcdTQ3NDRcdTRjNDdcdTRjNDBcdXsyNDJiZn1cdXsyMzYxN31cdXsyNzM1Mn1cdXsyNmU4Yn1cdXsyNzBkMn1cdTRjNTdcdXsyYTM1MX1cdTQ3NGZcdTQ1ZGFcdTRjODVcdXsyN2M2Y31cdTRkMDdcdTRhYTRcdTQ2YTFcdXsyNmIyM31cdTcyMjVcdXsyNWE1NH1cdXsyMWE2M31cdXsyM2Uw''@;'; + put 'put ''Nn1cdXsyM2Y2MX1cdTY2NGRcdTU2ZmIiXSxbIjg3NjciLCJcdTdkOTVcdTU5MWRcdXsyOGJiOX1cdTNkZjRcdTk3MzRcdXsyN2JlZn1cdTViZGJcdXsyMWQ1ZX1cdTVhYTRcdTM2MjVcdXsyOWViMH1cdTVhZDFcdTViYjdcdTVjZmNcdTY3NmVcdTg1OTNcdXsyOTk0NX1cdTc0NjFcdTc0OWRc''@;'; + put 'put ''dTM4NzVcdXsyMWQ1M31cdXsyMzY5ZX1cdXsyNjAyMX1cdTNlZWMiXSxbIjg3YTEiLCJcdXsyNThkZX1cdTNhZjVcdTdhZmNcdTlmOTdcdXsyNDE2MX1cdXsyODkwZH1cdXsyMzFlYX1cdXsyMGE4YX1cdXsyMzI1ZX1cdTQzMGFcdTg0ODRcdTlmOTZcdTk0MmZcdTQ5MzBcdTg2MTNcdTU4OTZc''@;'; + put 'put ''dTk3NGFcdTkyMThcdTc5ZDBcdTdhMzJcdTY2NjBcdTZhMjlcdTg4OWRcdTc0NGNcdTdiYzVcdTY3ODJcdTdhMmNcdTUyNGZcdTkwNDZcdTM0ZTZcdTczYzRcdXsyNWRiOX1cdTc0YzZcdTlmYzdcdTU3YjNcdTQ5MmZcdTU0NGNcdTQxMzFcdXsyMzY4ZX1cdTU4MThcdTdhNzJcdXsyN2I2NX1c''@;'; + put 'put ''dThiOGZcdTQ2YWVcdXsyNmU4OH1cdTQxODFcdXsyNWQ5OX1cdTdiYWVcdXsyMjRiY31cdTlmYzhcdXsyMjRjMX1cdXsyMjRjOX1cdXsyMjRjY31cdTlmYzlcdTg1MDRcdXsyMzViYn1cdTQwYjRcdTlmY2FcdTQ0ZTFcdXsyYWRmZn1cdTYyYzFcdTcwNmVcdTlmY2IiXSxbIjg4NDAiLCJcdTMx''@;'; + put 'put ''YzAiLDQsIlx1ezIwMTBjfVx1MzFjNVx1ezIwMGQxfVx1ezIwMGNkfVx1MzFjNlx1MzFjN1x1ezIwMGNifVx1ezIxZmU4fVx1MzFjOFx1ezIwMGNhfVx1MzFjOVx1MzFjYVx1MzFjYlx1MzFjY1x1ezIwMTBlfVx1MzFjZFx1MzFjZVx1MDEwMFx4YzFcdTAxY2RceGMwXHUwMTEyXHhjOVx1MDEx''@;'; + put 'put ''YVx4YzhcdTAxNGNceGQzXHUwMWQxXHhkMlx1MGZmZlx4Y2FcdTAzMDRcdTFlYmVcdTBmZmZceGNhXHUwMzBjXHUxZWMwXHhjYVx1MDEwMVx4ZTFcdTAxY2VceGUwXHUwMjUxXHUwMTEzXHhlOVx1MDExYlx4ZThcdTAxMmJceGVkXHUwMWQwXHhlY1x1MDE0ZFx4ZjNcdTAxZDJceGYyXHUwMTZi''@;'; + put 'put ''XHhmYVx1MDFkNFx4ZjlcdTAxZDZcdTAxZDhcdTAxZGEiXSxbIjg4YTEiLCJcdTAxZGNceGZjXHUwZmZmXHhlYVx1MDMwNFx1MWViZlx1MGZmZlx4ZWFcdTAzMGNcdTFlYzFceGVhXHUwMjYxXHUyM2RhXHUyM2RiIl0sWyI4OTQwIiwiXHV7MmEzYTl9XHV7MjExNDV9Il0sWyI4OTQzIiwiXHU2''@;'; + put 'put ''NTBhIl0sWyI4OTQ2IiwiXHU0ZTNkXHU2ZWRkXHU5ZDRlXHU5MWRmIl0sWyI4OTRjIiwiXHV7Mjc3MzV9XHU2NDkxXHU0ZjFhXHU0ZjI4XHU0ZmE4XHU1MTU2XHU1MTc0XHU1MTljXHU1MWU0XHU1MmExXHU1MmE4XHU1MzNiXHU1MzRlXHU1M2QxXHU1M2Q4XHU1NmUyXHU1OGYwXHU1OTA0XHU1''@;'; + put 'put ''OTA3XHU1OTMyXHU1OTM0XHU1YjY2XHU1YjllXHU1YjlmXHU1YzlhXHU1ZTg2XHU2MDNiXHU2NTg5XHU2N2ZlXHU2ODA0XHU2ODY1XHU2ZDRlXHU3MGJjXHU3NTM1XHU3ZWE0XHU3ZWFjXHU3ZWJhXHU3ZWM3XHU3ZWNmXHU3ZWRmXHU3ZjA2XHU3ZjM3XHU4MjdhXHU4MmNmXHU4MzZmXHU4OWM2''@;'; + put 'put ''XHU4YmJlXHU4YmUyXHU4ZjY2XHU4ZjY3XHU4ZjZlIl0sWyI4OWExIiwiXHU3NDExXHU3Y2ZjXHU3ZGNkXHU2OTQ2XHU3YWM5XHU1MjI3Il0sWyI4OWFiIiwiXHU5MThjXHU3OGI4XHU5MTVlXHU4MGJjIl0sWyI4OWIwIiwiXHU4ZDBiXHU4MGY2XHV7MjA5ZTd9Il0sWyI4OWI1IiwiXHU4MDlm''@;'; + put 'put ''XHU5ZWM3XHU0Y2NkXHU5ZGM5XHU5ZTBjXHU0YzNlXHV7MjlkZjZ9XHV7MjcwMGV9XHU5ZTBhXHV7MmExMzN9XHUzNWMxIl0sWyI4OWMxIiwiXHU2ZTlhXHU4MjNlXHU3NTE5Il0sWyI4OWM1IiwiXHU0OTExXHU5YTZjXHU5YThmXHU5Zjk5XHU3OTg3XHV7Mjg0NmN9XHV7MjFkY2F9XHV7MjA1''@;'; + put 'put ''ZDB9XHV7MjJhZTZ9XHU0ZTI0XHU0ZTgxXHU0ZTgwXHU0ZTg3XHU0ZWJmXHU0ZWViXHU0ZjM3XHUzNDRjXHU0ZmJkXHUzZTQ4XHU1MDAzXHU1MDg4XHUzNDdkXHUzNDkzXHUzNGE1XHU1MTg2XHU1OTA1XHU1MWRiXHU1MWZjXHU1MjA1XHU0ZTg5XHU1Mjc5XHU1MjkwXHU1MzI3XHUzNWM3XHU1''@;'; + put 'put ''M2E5XHUzNTUxXHU1M2IwXHUzNTUzXHU1M2MyXHU1NDIzXHUzNTZkXHUzNTcyXHUzNjgxXHU1NDkzXHU1NGEzXHU1NGI0XHU1NGI5XHU1NGQwXHU1NGVmXHU1NTE4XHU1NTIzXHU1NTI4XHUzNTk4XHU1NTNmXHUzNWE1XHUzNWJmXHU1NWQ3XHUzNWM1Il0sWyI4YTQwIiwiXHV7MjdkODR9XHU1''@;'; + put 'put ''NTI1Il0sWyI4YTQzIiwiXHV7MjBjNDJ9XHV7MjBkMTV9XHV7MjUxMmJ9XHU1NTkwXHV7MjJjYzZ9XHUzOWVjXHV7MjAzNDF9XHU4ZTQ2XHV7MjRkYjh9XHV7Mjk0ZTV9XHU0MDUzXHV7MjgwYmV9XHU3NzdhXHV7MjJjMzh9XHUzYTM0XHU0N2Q1XHV7MjgxNWR9XHV7MjY5ZjJ9XHV7MjRkZWF9''@;'; + put 'put ''XHU2NGRkXHV7MjBkN2N9XHV7MjBmYjR9XHV7MjBjZDV9XHV7MjEwZjR9XHU2NDhkXHU4ZTdlXHV7MjBlOTZ9XHV7MjBjMGJ9XHV7MjBmNjR9XHV7MjJjYTl9XHV7MjgyNTZ9XHV7MjQ0ZDN9Il0sWyI4YTY0IiwiXHV7MjBkNDZ9XHV7MjlhNGR9XHV7MjgwZTl9XHU0N2Y0XHV7MjRlYTd9XHV7''@;'; + put 'put ''MjJjYzJ9XHU5YWIyXHUzYTY3XHV7Mjk1ZjR9XHUzZmVkXHUzNTA2XHV7MjUyYzd9XHV7Mjk3ZDR9XHV7Mjc4Yzh9XHV7MjJkNDR9XHU5ZDZlXHU5ODE1Il0sWyI4YTc2IiwiXHU0M2Q5XHV7MjYwYTV9XHU2NGI0XHU1NGUzXHV7MjJkNGN9XHV7MjJiY2F9XHV7MjEwNzd9XHUzOWZiXHV7MjEw''@;'; + put 'put ''NmZ9Il0sWyI4YWExIiwiXHV7MjY2ZGF9XHV7MjY3MTZ9XHV7Mjc5YTB9XHU2NGVhXHV7MjUwNTJ9XHV7MjBjNDN9XHU4ZTY4XHV7MjIxYTF9XHV7MjhiNGN9XHV7MjA3MzF9Il0sWyI4YWFjIiwiXHU0ODBiXHV7MjAxYTl9XHUzZmZhXHU1ODczXHV7MjJkOGR9Il0sWyI4YWIyIiwiXHV7MjQ1''@;'; + put 'put ''Yzh9XHV7MjA0ZmN9XHV7MjYwOTd9XHV7MjBmNGN9XHV7MjBkOTZ9XHU1NTc5XHU0MGJiXHU0M2JhIl0sWyI4YWJiIiwiXHU0YWI0XHV7MjJhNjZ9XHV7MjEwOWR9XHU4MWFhXHU5OGY1XHV7MjBkOWN9XHU2Mzc5XHUzOWZlXHV7MjI3NzV9XHU4ZGMwXHU1NmExXHU2NDdjXHUzZTQzIl0sWyI4''@;'; + put 'put ''YWM5IiwiXHV7MmE2MDF9XHV7MjBlMDl9XHV7MjJhY2Z9XHV7MjJjYzl9Il0sWyI4YWNlIiwiXHV7MjEwYzh9XHV7MjM5YzJ9XHUzOTkyXHUzYTA2XHV7MjgyOWJ9XHUzNTc4XHV7MjVlNDl9XHV7MjIwYzd9XHU1NjUyXHV7MjBmMzF9XHV7MjJjYjJ9XHV7Mjk3MjB9XHUzNGJjXHU2YzNkXHV7''@;'; + put 'put ''MjRlM2J9Il0sWyI4YWRmIiwiXHV7Mjc1NzR9XHV7MjJlOGJ9XHV7MjIyMDh9XHV7MmE2NWJ9XHV7MjhjY2R9XHV7MjBlN2F9XHV7MjBjMzR9XHV7MjY4MWN9XHU3ZjkzXHV7MjEwY2Z9XHV7MjI4MDN9XHV7MjI5Mzl9XHUzNWZiXHV7MjUxZTN9XHV7MjBlOGN9XHV7MjBmOGR9XHV7MjBlYWF9''@;'; + put 'put ''XHUzZjkzXHV7MjBmMzB9XHV7MjBkNDd9XHV7MjExNGZ9XHV7MjBlNGN9Il0sWyI4YWY2IiwiXHV7MjBlYWJ9XHV7MjBiYTl9XHV7MjBkNDh9XHV7MjEwYzB9XHV7MjExM2R9XHUzZmY5XHV7MjI2OTZ9XHU2NDMyXHV7MjBmYWR9Il0sWyI4YjQwIiwiXHV7MjMzZjR9XHV7Mjc2Mzl9XHV7MjJi''@;'; + put 'put ''Y2V9XHV7MjBkN2V9XHV7MjBkN2Z9XHV7MjJjNTF9XHV7MjJjNTV9XHUzYTE4XHV7MjBlOTh9XHV7MjEwYzd9XHV7MjBmMmV9XHV7MmE2MzJ9XHV7MjZiNTB9XHV7MjhjZDJ9XHV7MjhkOTl9XHV7MjhjY2F9XHU5NWFhXHU1NGNjXHU4MmM0XHU1NWI5Il0sWyI4YjU1IiwiXHV7MjllYzN9XHU5''@;'; + put 'put ''YzI2XHU5YWI2XHV7Mjc3NWV9XHV7MjJkZWV9XHU3MTQwXHU4MTZkXHU4MGVjXHU1YzFjXHV7MjY1NzJ9XHU4MTM0XHUzNzk3XHU1MzVmXHV7MjgwYmR9XHU5MWI2XHV7MjBlZmF9XHV7MjBlMGZ9XHV7MjBlNzd9XHV7MjBlZmJ9XHUzNWRkXHV7MjRkZWJ9XHUzNjA5XHV7MjBjZDZ9XHU1NmFm''@;'; + put 'put ''XHV7MjI3YjV9XHV7MjEwYzl9XHV7MjBlMTB9XHV7MjBlNzh9XHV7MjEwNzh9XHV7MjExNDh9XHV7MjgyMDd9XHV7MjE0NTV9XHV7MjBlNzl9XHV7MjRlNTB9XHV7MjJkYTR9XHU1YTU0XHV7MjEwMWR9XHV7MjEwMWV9XHV7MjEwZjV9XHV7MjEwZjZ9XHU1NzljXHV7MjBlMTF9Il0sWyI4YmEx''@;'; + put 'put ''IiwiXHV7Mjc2OTR9XHV7MjgyY2R9XHV7MjBmYjV9XHV7MjBlN2J9XHV7MjUxN2V9XHUzNzAzXHV7MjBmYjZ9XHV7MjExODB9XHV7MjUyZDh9XHV7MmEyYmR9XHV7MjQ5ZGF9XHV7MjE4M2F9XHV7MjQxNzd9XHV7MjgyN2N9XHU1ODk5XHU1MjY4XHUzNjFhXHV7MjU3M2R9XHU3YmIyXHU1YjY4''@;'; + put 'put ''XHU0ODAwXHU0YjJjXHU5ZjI3XHU0OWU3XHU5YzFmXHU5YjhkXHV7MjViNzR9XHV7MjMxM2R9XHU1NWZiXHUzNWYyXHU1Njg5XHU0ZTI4XHU1OTAyXHV7MjFiYzF9XHV7MmY4Nzh9XHU5NzUxXHV7MjAwODZ9XHU0ZTViXHU0ZWJiXHUzNTNlXHU1YzIzXHU1ZjUxXHU1ZmM0XHUzOGZhXHU2MjRj''@;'; + put 'put ''XHU2NTM1XHU2YjdhXHU2YzM1XHU2YzNhXHU3MDZjXHU3MjJiXHU0ZTJjXHU3MmFkXHV7MjQ4ZTl9XHU3ZjUyXHU3OTNiXHU3Y2Y5XHU3ZjUzXHV7MjYyNmF9XHUzNGMxIl0sWyI4YmRlIiwiXHV7MjYzNGJ9XHU4MDAyXHU4MDgwXHV7MjY2MTJ9XHV7MjY5NTF9XHU1MzVkXHU4ODY0XHU4OWMx''@;'; + put 'put ''XHV7Mjc4YjJ9XHU4YmEwXHU4ZDFkXHU5NDg1XHU5NTc4XHU5NTdmXHU5NWU4XHV7MjhlMGZ9XHU5N2U2XHU5ODc1XHU5OGNlXHU5OGRlXHU5OTYzXHV7Mjk4MTB9XHU5YzdjXHU5ZTFmXHU5ZWM0XHU2YjZmXHVmOTA3XHU0ZTM3XHV7MjAwODd9XHU5NjFkXHU2MjM3XHU5NGEyIl0sWyI4YzQw''@;'; + put 'put ''IiwiXHU1MDNiXHU2ZGZlXHV7MjljNzN9XHU5ZmE2XHUzZGM5XHU4ODhmXHV7MjQxNGV9XHU3MDc3XHU1Y2Y1XHU0YjIwXHV7MjUxY2R9XHUzNTU5XHV7MjVkMzB9XHU2MTIyXHV7MjhhMzJ9XHU4ZmE3XHU5MWY2XHU3MTkxXHU2NzE5XHU3M2JhXHV7MjMyODF9XHV7MmExMDd9XHUzYzhiXHV7''@;'; + put 'put ''MjE5ODB9XHU0YjEwXHU3OGU0XHU3NDAyXHU1MWFlXHV7Mjg3MGZ9XHU0MDA5XHU2YTYzXHV7MmEyYmF9XHU0MjIzXHU4NjBmXHV7MjBhNmZ9XHU3YTJhXHV7Mjk5NDd9XHV7MjhhZWF9XHU5NzU1XHU3MDRkXHU1MzI0XHV7MjIwN2V9XHU5M2Y0XHU3NmQ5XHV7Mjg5ZTN9XHU5ZmE3XHU3N2Rk''@;'; + put 'put ''XHU0ZWEzXHU0ZmYwXHU1MGJjXHU0ZTJmXHU0ZjE3XHU5ZmE4XHU1NDM0XHU3ZDhiXHU1ODkyXHU1OGQwXHV7MjFkYjZ9XHU1ZTkyXHU1ZTk5XHU1ZmMyXHV7MjI3MTJ9XHU2NThiIl0sWyI4Y2ExIiwiXHV7MjMzZjl9XHU2OTE5XHU2YTQzXHV7MjNjNjN9XHU2Y2ZmIl0sWyI4Y2E3IiwiXHU3''@;'; + put 'put ''MjAwXHV7MjQ1MDV9XHU3MzhjXHUzZWRiXHV7MjRhMTN9XHU1YjE1XHU3NGI5XHU4YjgzXHV7MjVjYTR9XHV7MjU2OTV9XHU3YTkzXHU3YmVjXHU3Y2MzXHU3ZTZjXHU4MmY4XHU4NTk3XHU5ZmE5XHU4ODkwXHU5ZmFhXHU4ZWI5XHU5ZmFiXHU4ZmNmXHU4NTVmXHU5OWUwXHU5MjIxXHU5ZmFj''@;'; + put 'put ''XHV7MjhkYjl9XHV7MjE0M2Z9XHU0MDcxXHU0MmEyXHU1YTFhIl0sWyI4Y2M5IiwiXHU5ODY4XHU2NzZiXHU0Mjc2XHU1NzNkIl0sWyI4Y2NlIiwiXHU4NWQ2XHV7MjQ5N2J9XHU4MmJmXHV7MjcxMGR9XHU0YzgxXHV7MjZkNzR9XHU1ZDdiXHV7MjZiMTV9XHV7MjZmYmV9XHU5ZmFkXHU5ZmFl''@;'; + put 'put ''XHU1Yjk2XHU5ZmFmXHU2NmU3XHU3ZTViXHU2ZTU3XHU3OWNhXHUzZDg4XHU0NGMzXHV7MjMyNTZ9XHV7MjI3OTZ9XHU0MzlhXHU0NTM2Il0sWyI4Y2U2IiwiXHU1Y2Q1XHV7MjNiMWF9XHU4YWY5XHU1Yzc4XHUzZDEyXHV7MjM1NTF9XHU1ZDc4XHU5ZmIyXHU3MTU3XHU0NTU4XHV7MjQwZWN9''@;'; + put 'put ''XHV7MjFlMjN9XHU0Yzc3XHUzOTc4XHUzNDRhXHV7MjAxYTR9XHV7MjZjNDF9XHU4YWNjXHU0ZmI0XHV7MjAyMzl9XHU1OWJmXHU4MTZjXHU5ODU2XHV7Mjk4ZmF9XHU1ZjNiIl0sWyI4ZDQwIiwiXHV7MjBiOWZ9Il0sWyI4ZDQyIiwiXHV7MjIxYzF9XHV7Mjg5NmR9XHU0MTAyXHU0NmJiXHV7''@;'; + put 'put ''MjkwNzl9XHUzZjA3XHU5ZmIzXHV7MmExYjV9XHU0MGY4XHUzN2Q2XHU0NmY3XHV7MjZjNDZ9XHU0MTdjXHV7Mjg2YjJ9XHV7MjczZmZ9XHU0NTZkXHUzOGQ0XHV7MjU0OWF9XHU0NTYxXHU0NTFiXHU0ZDg5XHU0YzdiXHU0ZDc2XHU0NWVhXHUzZmM4XHV7MjRiMGZ9XHUzNjYxXHU0NGRlXHU0''@;'; + put 'put ''NGJkXHU0MWVkXHU1ZDNlXHU1ZDQ4XHU1ZDU2XHUzZGZjXHUzODBmXHU1ZGE0XHU1ZGI5XHUzODIwXHUzODM4XHU1ZTQyXHU1ZWJkXHU1ZjI1XHU1ZjgzXHUzOTA4XHUzOTE0XHUzOTNmXHUzOTRkXHU2MGQ3XHU2MTNkXHU1Y2U1XHUzOTg5XHU2MWI3XHU2MWI5XHU2MWNmXHUzOWI4XHU2MjJj''@;'; + put 'put ''XHU2MjkwXHU2MmU1XHU2MzE4XHUzOWY4XHU1NmIxIl0sWyI4ZGExIiwiXHUzYTAzXHU2M2UyXHU2M2ZiXHU2NDA3XHU2NDVhXHUzYTRiXHU2NGMwXHU1ZDE1XHU1NjIxXHU5ZjlmXHUzYTk3XHU2NTg2XHUzYWJkXHU2NWZmXHU2NjUzXHUzYWYyXHU2NjkyXHUzYjIyXHU2NzE2XHUzYjQyXHU2''@;'; + put 'put ''N2E0XHU2ODAwXHUzYjU4XHU2ODRhXHU2ODg0XHUzYjcyXHUzYjcxXHUzYjdiXHU2OTA5XHU2OTQzXHU3MjVjXHU2OTY0XHU2OTlmXHU2OTg1XHUzYmJjXHU2OWQ2XHUzYmRkXHU2YTY1XHU2YTc0XHU2YTcxXHU2YTgyXHUzYmVjXHU2YTk5XHUzYmYyXHU2YWFiXHU2YWI1XHU2YWQ0XHU2YWY2''@;'; + put 'put ''XHU2YjgxXHU2YmMxXHU2YmVhXHU2Yzc1XHU2Y2FhXHUzY2NiXHU2ZDAyXHU2ZDA2XHU2ZDI2XHU2ZDgxXHUzY2VmXHU2ZGE0XHU2ZGIxXHU2ZTE1XHU2ZTE4XHU2ZTI5XHU2ZTg2XHV7Mjg5YzB9XHU2ZWJiXHU2ZWUyXHU2ZWRhXHU5ZjdmXHU2ZWU4XHU2ZWU5XHU2ZjI0XHU2ZjM0XHUzZDQ2''@;'; + put 'put ''XHV7MjNmNDF9XHU2ZjgxXHU2ZmJlXHUzZDZhXHUzZDc1XHU3MWI3XHU1Yzk5XHUzZDhhXHU3MDJjXHUzZDkxXHU3MDUwXHU3MDU0XHU3MDZmXHU3MDdmXHU3MDg5XHV7MjAzMjV9XHU0M2MxXHUzNWYxXHV7MjBlZDh9Il0sWyI4ZTQwIiwiXHV7MjNlZDd9XHU1N2JlXHV7MjZlZDN9XHU3MTNl''@;'; + put 'put ''XHV7MjU3ZTB9XHUzNjRlXHU2OWEyXHV7MjhiZTl9XHU1Yjc0XHU3YTQ5XHV7MjU4ZTF9XHV7Mjk0ZDl9XHU3YTY1XHU3YTdkXHV7MjU5YWN9XHU3YWJiXHU3YWIwXHU3YWMyXHU3YWMzXHU3MWQxXHV7MjY0OGR9XHU0MWNhXHU3YWRhXHU3YWRkXHU3YWVhXHU0MWVmXHU1NGIyXHV7MjVjMDF9''@;'; + put 'put ''XHU3YjBiXHU3YjU1XHU3YjI5XHV7MjUzMGV9XHV7MjVjZmV9XHU3YmEyXHU3YjZmXHU4MzljXHV7MjViYjR9XHV7MjZjN2Z9XHU3YmQwXHU4NDIxXHU3YjkyXHU3YmI4XHV7MjVkMjB9XHUzZGFkXHV7MjVjNjV9XHU4NDkyXHU3YmZhXHU3YzA2XHU3YzM1XHV7MjVjYzF9XHU3YzQ0XHU3Yzgz''@;'; + put 'put ''XHV7MjQ4ODJ9XHU3Y2E2XHU2NjdkXHV7MjQ1Nzh9XHU3Y2M5XHU3Y2M3XHU3Y2U2XHU3Yzc0XHU3Y2YzXHU3Y2Y1XHU3Y2NlIl0sWyI4ZWExIiwiXHU3ZTY3XHU0NTFkXHV7MjZlNDR9XHU3ZDVkXHV7MjZlZDZ9XHU3NDhkXHU3ZDg5XHU3ZGFiXHU3MTM1XHU3ZGIzXHU3ZGQyXHV7MjQwNTd9''@;'; + put 'put ''XHV7MjYwMjl9XHU3ZGU0XHUzZDEzXHU3ZGY1XHV7MjE3Zjl9XHU3ZGU1XHV7MjgzNmR9XHU3ZTFkXHV7MjYxMjF9XHV7MjYxNWF9XHU3ZTZlXHU3ZTkyXHU0MzJiXHU5NDZjXHU3ZTI3XHU3ZjQwXHU3ZjQxXHU3ZjQ3XHU3OTM2XHV7MjYyZDB9XHU5OWUxXHU3Zjk3XHV7MjYzNTF9XHU3ZmEz''@;'; + put 'put ''XHV7MjE2NjF9XHV7MjAwNjh9XHU0NTVjXHV7MjM3NjZ9XHU0NTAzXHV7MjgzM2F9XHU3ZmZhXHV7MjY0ODl9XHU4MDA1XHU4MDA4XHU4MDFkXHU4MDI4XHU4MDJmXHV7MmEwODd9XHV7MjZjYzN9XHU4MDNiXHU4MDNjXHU4MDYxXHV7MjI3MTR9XHU0OTg5XHV7MjY2MjZ9XHV7MjNkZTN9XHV7''@;'; + put 'put ''MjY2ZTh9XHU2NzI1XHU4MGE3XHV7MjhhNDh9XHU4MTA3XHU4MTFhXHU1OGIwXHV7MjI2ZjZ9XHU2YzdmXHV7MjY0OTh9XHV7MjRmYjh9XHU2NGU3XHV7MjE0OGF9XHU4MjE4XHV7MjE4NWV9XHU2YTUzXHV7MjRhNjV9XHV7MjRhOTV9XHU0NDdhXHU4MjI5XHV7MjBiMGR9XHV7MjZhNTJ9XHV7''@;'; + put 'put ''MjNkN2V9XHU0ZmY5XHV7MjE0ZmR9XHU4NGUyXHU4MzYyXHV7MjZiMGF9XHV7MjQ5YTd9XHV7MjM1MzB9XHV7MjE3NzN9XHV7MjNkZjh9XHU4MmFhXHU2OTFiXHV7MmY5OTR9XHU0MWRiIl0sWyI4ZjQwIiwiXHU4NTRiXHU4MmQwXHU4MzFhXHV7MjBlMTZ9XHV7MjE3YjR9XHUzNmMxXHV7MjMx''@;'; + put 'put ''N2R9XHV7MjM1NWF9XHU4MjdiXHU4MmUyXHU4MzE4XHV7MjNlOGJ9XHV7MjZkYTN9XHV7MjZiMDV9XHV7MjZiOTd9XHV7MjM1Y2V9XHUzZGJmXHU4MzFkXHU1NWVjXHU4Mzg1XHU0NTBiXHV7MjZkYTV9XHU4M2FjXHU4M2MxXHU4M2QzXHUzNDdlXHV7MjZlZDR9XHU2YTU3XHU4NTVhXHUzNDk2''@;'; + put 'put ''XHV7MjZlNDJ9XHV7MjJlZWZ9XHU4NDU4XHV7MjViZTR9XHU4NDcxXHUzZGQzXHU0NGU0XHU2YWE3XHU4NDRhXHV7MjNjYjV9XHU3OTU4XHU4NGE4XHV7MjZiOTZ9XHV7MjZlNzd9XHV7MjZlNDN9XHU4NGRlXHU4NDBmXHU4MzkxXHU0NGEwXHU4NDkzXHU4NGU0XHV7MjVjOTF9XHU0MjQwXHV7''@;'; + put 'put ''MjVjYzB9XHU0NTQzXHU4NTM0XHU1YWYyXHV7MjZlOTl9XHU0NTI3XHU4NTczXHU0NTE2XHU2N2JmXHU4NjE2Il0sWyI4ZmExIiwiXHV7Mjg2MjV9XHV7Mjg2M2J9XHU4NWMxXHV7MjcwODh9XHU4NjAyXHV7MjE1ODJ9XHV7MjcwY2R9XHV7MmY5YjJ9XHU0NTZhXHU4NjI4XHUzNjQ4XHV7MjE4''@;'; + put 'put ''YTJ9XHU1M2Y3XHV7MjczOWF9XHU4NjdlXHU4NzcxXHV7MmEwZjh9XHU4N2VlXHV7MjJjMjd9XHU4N2IxXHU4N2RhXHU4ODBmXHU1NjYxXHU4NjZjXHU2ODU2XHU0NjBmXHU4ODQ1XHU4ODQ2XHV7Mjc1ZTB9XHV7MjNkYjl9XHV7Mjc1ZTR9XHU4ODVlXHU4ODljXHU0NjViXHU4OGI0XHU4OGI1''@;'; + put 'put ''XHU2M2MxXHU4OGM1XHU3Nzc3XHV7Mjc3MGZ9XHU4OTg3XHU4OThhXHU4OWE2XHU4OWE5XHU4OWE3XHU4OWJjXHV7MjhhMjV9XHU4OWU3XHV7Mjc5MjR9XHV7MjdhYmR9XHU4YTljXHU3NzkzXHU5MWZlXHU4YTkwXHV7MjdhNTl9XHU3YWU5XHV7MjdiM2F9XHV7MjNmOGZ9XHU0NzEzXHV7Mjdi''@;'; + put 'put ''Mzh9XHU3MTdjXHU4YjBjXHU4YjFmXHV7MjU0MzB9XHV7MjU1NjV9XHU4YjNmXHU4YjRjXHU4YjRkXHU4YWE5XHV7MjRhN2F9XHU4YjkwXHU4YjliXHU4YWFmXHV7MjE2ZGZ9XHU0NjE1XHU4ODRmXHU4YzliXHV7MjdkNTR9XHV7MjdkOGZ9XHV7MmY5ZDR9XHUzNzI1XHV7MjdkNTN9XHU4Y2Q2''@;'; + put 'put ''XHV7MjdkOTh9XHV7MjdkYmR9XHU4ZDEyXHU4ZDAzXHV7MjE5MTB9XHU4Y2RiXHU3MDVjXHU4ZDExXHV7MjRjYzl9XHUzZWQwXHU4ZDc3Il0sWyI5MDQwIiwiXHU4ZGE5XHV7MjgwMDJ9XHV7MjEwMTR9XHV7MjQ5OGF9XHUzYjdjXHV7MjgxYmN9XHV7MjcxMGN9XHU3YWU3XHU4ZWFkXHU4ZWI2''@;'; + put 'put ''XHU4ZWMzXHU5MmQ0XHU4ZjE5XHU4ZjJkXHV7MjgzNjV9XHV7Mjg0MTJ9XHU4ZmE1XHU5MzAzXHV7MmEyOWZ9XHV7MjBhNTB9XHU4ZmIzXHU0OTJhXHV7Mjg5ZGV9XHV7Mjg1M2R9XHV7MjNkYmJ9XHU1ZWY4XHV7MjMyNjJ9XHU4ZmY5XHV7MmEwMTR9XHV7Mjg2YmN9XHV7Mjg1MDF9XHV7MjIz''@;'; + put 'put ''MjV9XHUzOTgwXHV7MjZlZDd9XHU5MDM3XHV7Mjg1M2N9XHV7MjdhYmV9XHU5MDYxXHV7Mjg1NmN9XHV7Mjg2MGJ9XHU5MGE4XHV7Mjg3MTN9XHU5MGM0XHV7Mjg2ZTZ9XHU5MGFlXHU5MGZkXHU5MTY3XHUzYWYwXHU5MWE5XHU5MWM0XHU3Y2FjXHV7Mjg5MzN9XHV7MjFlODl9XHU5MjBlXHU2''@;'; + put 'put ''YzlmXHU5MjQxXHU5MjYyXHV7MjU1Yjl9XHU5MmI5XHV7MjhhYzZ9XHV7MjNjOWJ9XHV7MjhiMGN9XHV7MjU1ZGJ9Il0sWyI5MGExIiwiXHV7MjBkMzF9XHU5MzJjXHU5MzZiXHV7MjhhZTF9XHV7MjhiZWJ9XHU3MDhmXHU1YWMzXHV7MjhhZTJ9XHV7MjhhZTV9XHU0OTY1XHU5MjQ0XHV7Mjhi''@;'; + put 'put ''ZWN9XHV7MjhjMzl9XHV7MjhiZmZ9XHU5MzczXHU5NDViXHU4ZWJjXHU5NTg1XHU5NWE2XHU5NDI2XHU5NWEwXHU2ZmY2XHU0MmI5XHV7MjI2N2F9XHV7Mjg2ZDh9XHV7MjEyN2N9XHV7MjNlMmV9XHU0OWRmXHU2YzFjXHU5NjdiXHU5Njk2XHU0MTZjXHU5NmEzXHV7MjZlZDV9XHU2MWRhXHU5''@;'; + put 'put ''NmI2XHU3OGY1XHV7MjhhZTB9XHU5NmJkXHU1M2NjXHU0OWExXHV7MjZjYjh9XHV7MjAyNzR9XHV7MjY0MTB9XHV7MjkwYWZ9XHV7MjkwZTV9XHV7MjRhZDF9XHV7MjE5MTV9XHV7MjMzMGF9XHU5NzMxXHU4NjQyXHU5NzM2XHU0YTBmXHU0NTNkXHU0NTg1XHV7MjRhZTl9XHU3MDc1XHU1YjQx''@;'; + put 'put ''XHU5NzFiXHU5NzVjXHV7MjkxZDV9XHU5NzU3XHU1YjRhXHV7MjkxZWJ9XHU5NzVmXHU5NDI1XHU1MGQwXHV7MjMwYjd9XHV7MjMwYmN9XHU5Nzg5XHU5NzlmXHU5N2IxXHU5N2JlXHU5N2MwXHU5N2QyXHU5N2UwXHV7MjU0NmN9XHU5N2VlXHU3NDFjXHV7Mjk0MzN9XHU5N2ZmXHU5N2Y1XHV7''@;'; + put 'put ''Mjk0MWR9XHV7Mjc5N2F9XHU0YWQxXHU5ODM0XHU5ODMzXHU5ODRiXHU5ODY2XHUzYjBlXHV7MjcxNzV9XHUzZDUxXHV7MjA2MzB9XHV7MjQxNWN9Il0sWyI5MTQwIiwiXHV7MjU3MDZ9XHU5OGNhXHU5OGI3XHU5OGM4XHU5OGM3XHU0YWZmXHV7MjZkMjd9XHV7MjE2ZDN9XHU1NWIwXHU5OGUx''@;'; + put 'put ''XHU5OGU2XHU5OGVjXHU5Mzc4XHU5OTM5XHV7MjRhMjl9XHU0YjcyXHV7Mjk4NTd9XHV7Mjk5MDV9XHU5OWY1XHU5YTBjXHU5YTNiXHU5YTEwXHU5YTU4XHV7MjU3MjV9XHUzNmM0XHV7MjkwYjF9XHV7MjliZDV9XHU5YWUwXHU5YWUyXHV7MjliMDV9XHU5YWY0XHU0YzBlXHU5YjE0XHU5YjJk''@;'; + put 'put ''XHV7Mjg2MDB9XHU1MDM0XHU5YjM0XHV7MjY5YTh9XHUzOGMzXHV7MjMwN2R9XHU5YjUwXHU5YjQwXHV7MjlkM2V9XHU1YTQ1XHV7MjE4NjN9XHU5YjhlXHV7MjQyNGJ9XHU5YzAyXHU5YmZmXHU5YzBjXHV7MjllNjh9XHU5ZGQ0XHV7MjlmYjd9XHV7MmExOTJ9XHV7MmExYWJ9XHV7MmEwZTF9''@;'; + put 'put ''XHV7MmExMjN9XHV7MmExZGZ9XHU5ZDdlXHU5ZDgzXHV7MmExMzR9XHU5ZTBlXHU2ODg4Il0sWyI5MWExIiwiXHU5ZGM0XHV7MjIxNWJ9XHV7MmExOTN9XHV7MmEyMjB9XHV7MjE5M2J9XHV7MmEyMzN9XHU5ZDM5XHV7MmEwYjl9XHV7MmEyYjR9XHU5ZTkwXHU5ZTk1XHU5ZTllXHU5ZWEyXHU0''@;'; + put 'put ''ZDM0XHU5ZWFhXHU5ZWFmXHV7MjQzNjR9XHU5ZWMxXHUzYjYwXHUzOWU1XHUzZDFkXHU0ZjMyXHUzN2JlXHV7MjhjMmJ9XHU5ZjAyXHU5ZjA4XHU0Yjk2XHU5NDI0XHV7MjZkYTJ9XHU5ZjE3XHU5ZjE2XHU5ZjM5XHU1NjlmXHU1NjhhXHU5ZjQ1XHU5OWI4XHV7MjkwOGJ9XHU5N2YyXHU4NDdm''@;'; + put 'put ''XHU5ZjYyXHU5ZjY5XHU3YWRjXHU5ZjhlXHU3MjE2XHU0YmJlXHV7MjQ5NzV9XHV7MjQ5YmJ9XHU3MTc3XHV7MjQ5Zjh9XHV7MjQzNDh9XHV7MjRhNTF9XHU3MzllXHV7MjhiZGF9XHV7MjE4ZmF9XHU3OTlmXHV7Mjg5N2V9XHV7MjhlMzZ9XHU5MzY5XHU5M2YzXHV7MjhhNDR9XHU5MmVjXHU5''@;'; + put 'put ''MzgxXHU5M2NiXHV7Mjg5NmN9XHV7MjQ0Yjl9XHU3MjE3XHUzZWViXHU3NzcyXHU3YTQzXHU3MGQwXHV7MjQ0NzN9XHV7MjQzZjh9XHU3MTdlXHV7MjE3ZWZ9XHU3MGEzXHV7MjE4YmV9XHV7MjM1OTl9XHUzZWM3XHV7MjE4ODV9XHV7MjU0MmZ9XHV7MjE3Zjh9XHUzNzIyXHV7MjE2ZmJ9XHV7''@;'; + put 'put ''MjE4Mzl9XHUzNmUxXHV7MjE3NzR9XHV7MjE4ZDF9XHV7MjVmNGJ9XHUzNzIzXHV7MjE2YzB9XHU1NzViXHV7MjRhMjV9XHV7MjEzZmV9XHV7MjEyYTh9Il0sWyI5MjQwIiwiXHV7MjEzYzZ9XHV7MjE0YjZ9XHU4NTAzXHV7MjM2YTZ9XHU4NTAzXHU4NDU1XHV7MjQ5OTR9XHV7MjcxNjV9XHV7''@;'; + put 'put ''MjNlMzF9XHV7MjU1NWN9XHV7MjNlZmJ9XHV7MjcwNTJ9XHU0NGY0XHV7MjM2ZWV9XHV7Mjk5OWR9XHV7MjZmMjZ9XHU2N2Y5XHUzNzMzXHUzYzE1XHUzZGU3XHU1ODZjXHV7MjE5MjJ9XHU2ODEwXHU0MDU3XHV7MjM3M2Z9XHV7MjQwZTF9XHV7MjQwOGJ9XHV7MjQxMGZ9XHV7MjZjMjF9XHU1''@;'; + put 'put ''NGNiXHU1NjllXHV7MjY2YjF9XHU1NjkyXHV7MjBmZGZ9XHV7MjBiYTh9XHV7MjBlMGR9XHU5M2M2XHV7MjhiMTN9XHU5MzljXHU0ZWY4XHU1MTJiXHUzODE5XHV7MjQ0MzZ9XHU0ZWJjXHV7MjA0NjV9XHV7MjAzN2Z9XHU0ZjRiXHU0ZjhhXHV7MjU2NTF9XHU1YTY4XHV7MjAxYWJ9XHV7MjAz''@;'; + put 'put ''Y2J9XHUzOTk5XHV7MjAzMGF9XHV7MjA0MTR9XHUzNDM1XHU0ZjI5XHV7MjAyYzB9XHV7MjhlYjN9XHV7MjAyNzV9XHU4YWRhXHV7MjAyMGN9XHU0ZTk4Il0sWyI5MmExIiwiXHU1MGNkXHU1MTBkXHU0ZmEyXHU0ZjAzXHV7MjRhMGV9XHV7MjNlOGF9XHU0ZjQyXHU1MDJlXHU1MDZjXHU1MDgx''@;'; + put 'put ''XHU0ZmNjXHU0ZmU1XHU1MDU4XHU1MGZjXHU1MTU5XHU1MTViXHU1MTVkXHU1MTVlXHU2ZTc2XHV7MjM1OTV9XHV7MjNlMzl9XHV7MjNlYmZ9XHU2ZDcyXHV7MjE4ODR9XHV7MjNlODl9XHU1MWE4XHU1MWMzXHV7MjA1ZTB9XHU0NGRkXHV7MjA0YTN9XHV7MjA0OTJ9XHV7MjA0OTF9XHU4ZDdh''@;'; + put 'put ''XHV7MjhhOWN9XHV7MjA3MGV9XHU1MjU5XHU1MmE0XHV7MjA4NzN9XHU1MmUxXHU5MzZlXHU0NjdhXHU3MThjXHV7MjQzOGN9XHV7MjBjMjB9XHV7MjQ5YWN9XHV7MjEwZTR9XHU2OWQxXHV7MjBlMWR9XHU3NDc5XHUzZWRlXHU3NDk5XHU3NDE0XHU3NDU2XHU3Mzk4XHU0YjhlXHV7MjRhYmN9''@;'; + put 'put ''XHV7MjQwOGR9XHU1M2QwXHUzNTg0XHU3MjBmXHV7MjQwYzl9XHU1NWI0XHV7MjAzNDV9XHU1NGNkXHV7MjBiYzZ9XHU1NzFkXHU5MjVkXHU5NmY0XHU5MzY2XHU1N2RkXHU1NzhkXHU1NzdmXHUzNjNlXHU1OGNiXHU1YTk5XHV7MjhhNDZ9XHV7MjE2ZmF9XHV7MjE3NmZ9XHV7MjE3MTB9XHU1''@;'; + put 'put ''YTJjXHU1OWI4XHU5MjhmXHU1YTdlXHU1YWNmXHU1YTEyXHV7MjU5NDZ9XHV7MjE5ZjN9XHV7MjE4NjF9XHV7MjQyOTV9XHUzNmY1XHU2ZDA1XHU3NDQzXHU1YTIxXHV7MjVlODN9Il0sWyI5MzQwIiwiXHU1YTgxXHV7MjhiZDd9XHV7MjA0MTN9XHU5M2UwXHU3NDhjXHV7MjEzMDN9XHU3MTA1''@;'; + put 'put ''XHU0OTcyXHU5NDA4XHV7Mjg5ZmJ9XHU5M2JkXHUzN2EwXHU1YzFlXHU1YzllXHU1ZTVlXHU1ZTQ4XHV7MjE5OTZ9XHV7MjE5N2N9XHV7MjNhZWV9XHU1ZWNkXHU1YjRmXHV7MjE5MDN9XHV7MjE5MDR9XHUzNzAxXHV7MjE4YTB9XHUzNmRkXHV7MjE2ZmV9XHUzNmQzXHU4MTJhXHV7MjhhNDd9''@;'; + put 'put ''XHV7MjFkYmF9XHV7MjM0NzJ9XHV7Mjg5YTh9XHU1ZjBjXHU1ZjBlXHV7MjE5Mjd9XHV7MjE3YWJ9XHU1YTZiXHV7MjE3M2J9XHU1YjQ0XHU4NjE0XHV7Mjc1ZmR9XHU4ODYwXHU2MDdlXHV7MjI4NjB9XHV7MjI2MmJ9XHU1ZmRiXHUzZWI4XHV7MjI1YWZ9XHV7MjI1YmV9XHV7MjkwODh9XHV7''@;'; + put 'put ''MjZmNzN9XHU2MWMwXHV7MjAwM2V9XHV7MjAwNDZ9XHV7MjI2MWJ9XHU2MTk5XHU2MTk4XHU2MDc1XHV7MjJjOWJ9XHV7MjJkMDd9XHV7MjQ2ZDR9XHV7MjkxNGR9Il0sWyI5M2ExIiwiXHU2NDcxXHV7MjQ2NjV9XHV7MjJiNmF9XHUzYTI5XHV7MjJiMjJ9XHV7MjM0NTB9XHV7Mjk4ZWF9XHV7''@;'; + put 'put ''MjJlNzh9XHU2MzM3XHV7MmE0NWJ9XHU2NGI2XHU2MzMxXHU2M2QxXHV7MjQ5ZTN9XHV7MjJkNjd9XHU2MmE0XHV7MjJjYTF9XHU2NDNiXHU2NTZiXHU2OTcyXHUzYmY0XHV7MjMwOGV9XHV7MjMyYWR9XHV7MjQ5ODl9XHV7MjMyYWJ9XHU1NTBkXHV7MjMyZTB9XHV7MjE4ZDl9XHV7Mjk0M2Z9''@;'; + put 'put ''XHU2NmNlXHV7MjMyODl9XHV7MjMxYjN9XHUzYWUwXHU0MTkwXHV7MjU1ODR9XHV7MjhiMjJ9XHV7MjU1OGZ9XHV7MjE2ZmN9XHV7MjU1NWJ9XHV7MjU0MjV9XHU3OGVlXHV7MjMxMDN9XHV7MjE4MmF9XHV7MjMyMzR9XHUzNDY0XHV7MjMyMGZ9XHV7MjMxODJ9XHV7MjQyYzl9XHU2NjhlXHV7''@;'; + put 'put ''MjZkMjR9XHU2NjZiXHU0YjkzXHU2NjMwXHV7Mjc4NzB9XHV7MjFkZWJ9XHU2NjYzXHV7MjMyZDJ9XHV7MjMyZTF9XHU2NjFlXHV7MjU4NzJ9XHUzOGQxXHV7MjM4M2F9XHV7MjM3YmN9XHUzYjk5XHV7MjM3YTJ9XHV7MjMzZmV9XHU3NGQwXHUzYjk2XHU2NzhmXHV7MjQ2MmF9XHU2OGI2XHU2''@;'; + put 'put ''ODFlXHUzYmM0XHU2YWJlXHUzODYzXHV7MjM3ZDV9XHV7MjQ0ODd9XHU2YTMzXHU2YTUyXHU2YWM5XHU2YjA1XHV7MjE5MTJ9XHU2NTExXHU2ODk4XHU2YTRjXHUzYmQ3XHU2YTdhXHU2YjU3XHV7MjNmYzB9XHV7MjNjOWF9XHU5M2EwXHU5MmYyXHV7MjhiZWF9XHV7MjhhY2J9Il0sWyI5NDQw''@;'; + put 'put ''IiwiXHU5Mjg5XHV7MjgwMWV9XHV7Mjg5ZGN9XHU5NDY3XHU2ZGE1XHU2ZjBiXHV7MjQ5ZWN9XHU2ZDY3XHV7MjNmN2Z9XHUzZDhmXHU2ZTA0XHV7MjQwM2N9XHU1YTNkXHU2ZTBhXHU1ODQ3XHU2ZDI0XHU3ODQyXHU3MTNiXHV7MjQzMWF9XHV7MjQyNzZ9XHU3MGYxXHU3MjUwXHU3Mjg3XHU3''@;'; + put 'put ''Mjk0XHV7MjQ3OGZ9XHV7MjQ3MjV9XHU1MTc5XHV7MjRhYTR9XHV7MjA1ZWJ9XHU3NDdhXHV7MjNlZjh9XHV7MjM2NWZ9XHV7MjRhNGF9XHV7MjQ5MTd9XHV7MjVmZTF9XHUzZjA2XHUzZWIxXHV7MjRhZGZ9XHV7MjhjMjN9XHV7MjNmMzV9XHU2MGE3XHUzZWYzXHU3NGNjXHU3NDNjXHU5Mzg3''@;'; + put 'put ''XHU3NDM3XHU0NDlmXHV7MjZkZWF9XHU0NTUxXHU3NTgzXHUzZjYzXHV7MjRjZDl9XHV7MjRkMDZ9XHUzZjU4XHU3NTU1XHU3NjczXHV7MmE1YzZ9XHUzYjE5XHU3NDY4XHV7MjhhY2N9XHV7MjQ5YWJ9XHV7MjQ5OGV9XHUzYWZiIl0sWyI5NGExIiwiXHUzZGNkXHV7MjRhNGV9XHUzZWZmXHV7''@;'; + put 'put ''MjQ5YzV9XHV7MjQ4ZjN9XHU5MWZhXHU1NzMyXHU5MzQyXHV7MjhhZTN9XHV7MjE4NjR9XHU1MGRmXHV7MjUyMjF9XHV7MjUxZTd9XHU3Nzc4XHV7MjMyMzJ9XHU3NzBlXHU3NzBmXHU3NzdiXHV7MjQ2OTd9XHV7MjM3ODF9XHUzYTVlXHV7MjQ4ZjB9XHU3NDM4XHU3NDliXHUzZWJmXHV7MjRh''@;'; + put 'put ''YmF9XHV7MjRhYzd9XHU0MGM4XHV7MjRhOTZ9XHV7MjYxYWV9XHU5MzA3XHV7MjU1ODF9XHU3ODFlXHU3ODhkXHU3ODg4XHU3OGQyXHU3M2QwXHU3OTU5XHV7Mjc3NDF9XHV7MjU2ZTN9XHU0MTBlXHU3OTliXHU4NDk2XHU3OWE1XHU2YTJkXHV7MjNlZmF9XHU3YTNhXHU3OWY0XHU0MTZlXHV7''@;'; + put 'put ''MjE2ZTZ9XHU0MTMyXHU5MjM1XHU3OWYxXHV7MjBkNGN9XHV7MjQ5OGN9XHV7MjAyOTl9XHV7MjNkYmF9XHV7MjE3NmV9XHUzNTk3XHU1NTZiXHUzNTcwXHUzNmFhXHV7MjAxZDR9XHV7MjBjMGR9XHU3YWUyXHU1YTU5XHV7MjI2ZjV9XHV7MjVhYWZ9XHV7MjVhOWN9XHU1YTBkXHV7MjAyNWJ9''@;'; + put 'put ''XHU3OGYwXHU1YTJhXHV7MjViYzZ9XHU3YWZlXHU0MWY5XHU3YzVkXHU3YzZkXHU0MjExXHV7MjViYjN9XHV7MjVlYmN9XHV7MjVlYTZ9XHU3Y2NkXHV7MjQ5Zjl9XHV7MjE3YjB9XHU3YzhlXHU3YzdjXHU3Y2FlXHU2YWIyXHU3ZGRjXHU3ZTA3XHU3ZGQzXHU3ZjRlXHV7MjYyNjF9Il0sWyI5''@;'; + put 'put ''NTQwIiwiXHV7MjYxNWN9XHV7MjdiNDh9XHU3ZDk3XHV7MjVlODJ9XHU0MjZhXHV7MjZiNzV9XHV7MjA5MTZ9XHU2N2Q2XHV7MjAwNGV9XHV7MjM1Y2Z9XHU1N2M0XHV7MjY0MTJ9XHV7MjYzZjh9XHV7MjQ5NjJ9XHU3ZmRkXHU3YjI3XHV7MjA4MmN9XHV7MjVhZTl9XHV7MjVkNDN9XHU3YjBj''@;'; + put 'put ''XHV7MjVlMGV9XHU5OWU2XHU4NjQ1XHU5YTYzXHU2YTFjXHV7MjM0M2Z9XHUzOWUyXHV7MjQ5Zjd9XHV7MjY1YWR9XHU5YTFmXHV7MjY1YTB9XHU4NDgwXHV7MjcxMjd9XHV7MjZjZDF9XHU0NGVhXHU4MTM3XHU0NDAyXHU4MGM2XHU4MTA5XHU4MTQyXHV7MjY3YjR9XHU5OGMzXHV7MjZhNDJ9''@;'; + put 'put ''XHU4MjYyXHU4MjY1XHV7MjZhNTF9XHU4NDUzXHV7MjZkYTd9XHU4NjEwXHV7MjcyMWJ9XHU1YTg2XHU0MTdmXHV7MjE4NDB9XHU1YjJiXHV7MjE4YTF9XHU1YWU0XHV7MjE4ZDh9XHU4NmEwXHV7MmY5YmN9XHV7MjNkOGZ9XHU4ODJkXHV7Mjc0MjJ9XHU1YTAyIl0sWyI5NWExIiwiXHU4ODZl''@;'; + put 'put ''XHU0ZjQ1XHU4ODg3XHU4OGJmXHU4OGU2XHU4OTY1XHU4OTRkXHV7MjU2ODN9XHU4OTU0XHV7Mjc3ODV9XHV7Mjc3ODR9XHV7MjhiZjV9XHV7MjhiZDl9XHV7MjhiOWN9XHV7Mjg5Zjl9XHUzZWFkXHU4NGEzXHU0NmY1XHU0NmNmXHUzN2YyXHU4YTNkXHU4YTFjXHV7Mjk0NDh9XHU1ZjRkXHU5''@;'; + put 'put ''MjJiXHV7MjQyODR9XHU2NWQ0XHU3MTI5XHU3MGM0XHV7MjE4NDV9XHU5ZDZkXHU4YzlmXHU4Y2U5XHV7MjdkZGN9XHU1OTlhXHU3N2MzXHU1OWYwXHU0MzZlXHUzNmQ0XHU4ZTJhXHU4ZWE3XHV7MjRjMDl9XHU4ZjMwXHU4ZjRhXHU0MmY0XHU2YzU4XHU2ZmJiXHV7MjIzMjF9XHU0ODliXHU2''@;'; + put 'put ''Zjc5XHU2ZThiXHV7MjE3ZGF9XHU5YmU5XHUzNmI1XHV7MjQ5MmZ9XHU5MGJiXHU5MDk3XHU1NTcxXHU0OTA2XHU5MWJiXHU5NDA0XHV7MjhhNGJ9XHU0MDYyXHV7MjhhZmN9XHU5NDI3XHV7MjhjMWR9XHV7MjhjM2J9XHU4NGU1XHU4YTJiXHU5NTk5XHU5NWE3XHU5NTk3XHU5NTk2XHV7Mjhk''@;'; + put 'put ''MzR9XHU3NDQ1XHUzZWMyXHV7MjQ4ZmZ9XHV7MjRhNDJ9XHV7MjQzZWF9XHUzZWU3XHV7MjMyMjV9XHU5NjhmXHV7MjhlZTd9XHV7MjhlNjZ9XHV7MjhlNjV9XHUzZWNjXHV7MjQ5ZWR9XHV7MjRhNzh9XHV7MjNmZWV9XHU3NDEyXHU3NDZiXHUzZWZjXHU5NzQxXHV7MjkwYjB9Il0sWyI5NjQw''@;'; + put 'put ''IiwiXHU2ODQ3XHU0YTFkXHV7MjkwOTN9XHV7MjU3ZGZ9XHU5NzVkXHU5MzY4XHV7Mjg5ODl9XHV7MjhjMjZ9XHV7MjhiMmZ9XHV7MjYzYmV9XHU5MmJhXHU1YjExXHU4YjY5XHU0OTNjXHU3M2Y5XHV7MjQyMWJ9XHU5NzliXHU5NzcxXHU5OTM4XHV7MjBmMjZ9XHU1ZGMxXHV7MjhiYzV9XHV7''@;'; + put 'put ''MjRhYjJ9XHU5ODFmXHV7Mjk0ZGF9XHU5MmY2XHV7Mjk1ZDd9XHU5MWU1XHU0NGMwXHV7MjhiNTB9XHV7MjRhNjd9XHV7MjhiNjR9XHU5OGRjXHV7MjhhNDV9XHUzZjAwXHU5MjJhXHU0OTI1XHU4NDE0XHU5OTNiXHU5OTRkXHV7MjdiMDZ9XHUzZGZkXHU5OTliXHU0YjZmXHU5OWFhXHU5YTVj''@;'; + put 'put ''XHV7MjhiNjV9XHV7MjU4Yzh9XHU2YThmXHU5YTIxXHU1YWZlXHU5YTJmXHV7Mjk4ZjF9XHU0YjkwXHV7Mjk5NDh9XHU5OWJjXHU0YmJkXHU0Yjk3XHU5MzdkXHU1ODcyXHV7MjEzMDJ9XHU1ODIyXHV7MjQ5Yjh9Il0sWyI5NmExIiwiXHV7MjE0ZTh9XHU3ODQ0XHV7MjI3MWZ9XHV7MjNkYjh9''@;'; + put 'put ''XHU2OGM1XHUzZDdkXHU5NDU4XHUzOTI3XHU2MTUwXHV7MjI3ODF9XHV7MjI5NmJ9XHU2MTA3XHU5YzRmXHU5YzUzXHU5YzdiXHU5YzM1XHU5YzEwXHU5YjdmXHU5YmNmXHV7MjllMmR9XHU5YjlmXHV7MmExZjV9XHV7MmEwZmV9XHU5ZDIxXHU0Y2FlXHV7MjQxMDR9XHU5ZTE4XHU0Y2IwXHU5''@;'; + put 'put ''ZDBjXHV7MmExYjR9XHV7MmEwZWR9XHV7MmEwZjN9XHV7Mjk5MmZ9XHU5ZGE1XHU4NGJkXHV7MjZlMTJ9XHV7MjZmZGZ9XHV7MjZiODJ9XHU4NWZjXHU0NTMzXHV7MjZkYTR9XHV7MjZlODR9XHV7MjZkZjB9XHU4NDIwXHU4NWVlXHV7MjZlMDB9XHV7MjM3ZDd9XHV7MjYwNjR9XHU3OWUyXHV7''@;'; + put 'put ''MjM1OWN9XHV7MjM2NDB9XHU0OTJkXHV7MjQ5ZGV9XHUzZDYyXHU5M2RiXHU5MmJlXHU5MzQ4XHV7MjAyYmZ9XHU3OGI5XHU5Mjc3XHU5NDRkXHU0ZmU0XHUzNDQwXHU5MDY0XHV7MjU1NWR9XHU3ODNkXHU3ODU0XHU3OGI2XHU3ODRiXHV7MjE3NTd9XHV7MjMxYzl9XHV7MjQ5NDF9XHUzNjlh''@;'; + put 'put ''XHU0ZjcyXHU2ZmRhXHU2ZmQ5XHU3MDFlXHU3MDFlXHU1NDE0XHV7MjQxYjV9XHU1N2JiXHU1OGYzXHU1NzhhXHU5ZDE2XHU1N2Q3XHU3MTM0XHUzNGFmXHV7MjQxYWN9XHU3MWViXHV7MjZjNDB9XHV7MjRmOTd9XHU1YjI4XHV7MjE3YjV9XHV7MjhhNDl9Il0sWyI5NzQwIiwiXHU2MTBjXHU1''@;'; + put 'put ''YWNlXHU1YTBiXHU0MmJjXHV7MjQ0ODh9XHUzNzJjXHU0YjdiXHV7Mjg5ZmN9XHU5M2JiXHU5M2I4XHV7MjE4ZDZ9XHV7MjBmMWR9XHU4NDcyXHV7MjZjYzB9XHV7MjE0MTN9XHV7MjQyZmF9XHV7MjJjMjZ9XHV7MjQzYzF9XHU1OTk0XHV7MjNkYjd9XHV7MjY3NDF9XHU3ZGE4XHV7MjYxNWJ9''@;'; + put 'put ''XHV7MjYwYTR9XHV7MjQ5Yjl9XHV7MjQ5OGJ9XHV7Mjg5ZmF9XHU5MmU1XHU3M2UyXHUzZWU5XHU3NGI0XHV7MjhiNjN9XHV7MjE4OWZ9XHUzZWUxXHV7MjRhYjN9XHU2YWQ4XHU3M2YzXHU3M2ZiXHUzZWQ2XHV7MjRhM2V9XHV7MjRhOTR9XHV7MjE3ZDl9XHV7MjRhNjZ9XHV7MjAzYTd9XHV7''@;'; + put 'put ''MjE0MjR9XHV7MjQ5ZTV9XHU3NDQ4XHV7MjQ5MTZ9XHU3MGE1XHV7MjQ5NzZ9XHU5Mjg0XHU3M2U2XHU5MzVmXHV7MjA0ZmV9XHU5MzMxXHV7MjhhY2V9XHV7MjhhMTZ9XHU5Mzg2XHV7MjhiZTd9XHV7MjU1ZDV9XHU0OTM1XHV7MjhhODJ9XHU3MTZiIl0sWyI5N2ExIiwiXHV7MjQ5NDN9XHV7''@;'; + put 'put ''MjBjZmZ9XHU1NmE0XHV7MjA2MWF9XHV7MjBiZWJ9XHV7MjBjYjh9XHU1NTAyXHU3OWM0XHV7MjE3ZmF9XHU3ZGZlXHV7MjE2YzJ9XHV7MjRhNTB9XHV7MjE4NTJ9XHU0NTJlXHU5NDAxXHUzNzBhXHV7MjhhYzB9XHV7MjQ5YWR9XHU1OWIwXHV7MjE4YmZ9XHV7MjE4ODN9XHV7Mjc0ODR9XHU1''@;'; + put 'put ''YWExXHUzNmUyXHV7MjNkNWJ9XHUzNmIwXHU5MjVmXHU1YTc5XHV7MjhhODF9XHV7MjE4NjJ9XHU5Mzc0XHUzY2NkXHV7MjBhYjR9XHU0YTk2XHUzOThhXHU1MGY0XHUzZDY5XHUzZDRjXHV7MjEzOWN9XHU3MTc1XHU0MmZiXHV7MjgyMTh9XHU2ZTBmXHV7MjkwZTR9XHU0NGViXHU2ZDU3XHV7''@;'; + put 'put ''MjdlNGZ9XHU3MDY3XHU2Y2FmXHUzY2Q2XHV7MjNmZWR9XHV7MjNlMmR9XHU2ZTAyXHU2ZjBjXHUzZDZmXHV7MjAzZjV9XHU3NTUxXHUzNmJjXHUzNGM4XHU0NjgwXHUzZWRhXHU0ODcxXHU1OWM0XHU5MjZlXHU0OTNlXHU4ZjQxXHV7MjhjMWN9XHV7MjZiYzB9XHU1ODEyXHU1N2M4XHUzNmQ2''@;'; + put 'put ''XHV7MjE0NTJ9XHU3MGZlXHV7MjQzNjJ9XHV7MjRhNzF9XHV7MjJmZTN9XHV7MjEyYjB9XHV7MjIzYmR9XHU2OGI5XHU2OTY3XHV7MjEzOTh9XHV7MjM0ZTV9XHV7MjdiZjR9XHV7MjM2ZGZ9XHV7MjhhODN9XHV7MjM3ZDZ9XHV7MjMzZmF9XHV7MjRjOWZ9XHU2YTFhXHV7MjM2YWR9XHV7MjZj''@;'; + put 'put ''Yjd9XHU4NDNlXHU0NGRmXHU0NGNlIl0sWyI5ODQwIiwiXHV7MjZkMjZ9XHV7MjZkNTF9XHV7MjZjODJ9XHV7MjZmZGV9XHU2ZjE3XHV7MjcxMDl9XHU4MzNkXHV7MjE3M2F9XHU4M2VkXHV7MjZjODB9XHV7MjcwNTN9XHV7MjE3ZGJ9XHU1OTg5XHU1YTgyXHV7MjE3YjN9XHU1YTYxXHU1YTcx''@;'; + put 'put ''XHV7MjE5MDV9XHV7MjQxZmN9XHUzNzJkXHU1OWVmXHV7MjE3M2N9XHUzNmM3XHU3MThlXHU5MzkwXHU2NjlhXHV7MjQyYTV9XHU1YTZlXHU1YTJiXHV7MjQyOTN9XHU2YTJiXHV7MjNlZjl9XHV7Mjc3MzZ9XHV7MjQ0NWJ9XHV7MjQyY2F9XHU3MTFkXHV7MjQyNTl9XHV7Mjg5ZTF9XHU0ZmIw''@;'; + put 'put ''XHV7MjZkMjh9XHU1Y2MyXHV7MjQ0Y2V9XHV7MjdlNGR9XHV7MjQzYmR9XHU2YTBjXHV7MjQyNTZ9XHV7MjEzMDR9XHU3MGE2XHU3MTMzXHV7MjQzZTl9XHUzZGE1XHU2Y2RmXHV7MmY4MjV9XHV7MjRhNGZ9XHU3ZTY1XHU1OWViXHU1ZDJmXHUzZGYzXHU1ZjVjXHV7MjRhNWR9XHV7MjE3ZGZ9''@;'; + put 'put ''XHU3ZGE0XHU4NDI2Il0sWyI5OGExIiwiXHU1NDg1XHV7MjNhZmF9XHV7MjMzMDB9XHV7MjAyMTR9XHU1NzdlXHV7MjA4ZDV9XHV7MjA2MTl9XHUzZmU1XHV7MjFmOWV9XHV7MmEyYjZ9XHU3MDAzXHV7MjkxNWJ9XHU1ZDcwXHU3MzhmXHU3Y2QzXHV7MjhhNTl9XHV7Mjk0MjB9XHU0ZmM4XHU3''@;'; + put 'put ''ZmU3XHU3MmNkXHU3MzEwXHV7MjdhZjR9XHU3MzM4XHU3MzM5XHV7MjU2ZjZ9XHU3MzQxXHU3MzQ4XHUzZWE5XHV7MjdiMTh9XHU5MDZjXHU3MWY1XHV7MjQ4ZjJ9XHU3M2UxXHU4MWY2XHUzZWNhXHU3NzBjXHUzZWQxXHU2Y2EyXHU1NmZkXHU3NDE5XHU3NDFlXHU3NDFmXHUzZWUyXHUzZWYw''@;'; + put 'put ''XHUzZWY0XHUzZWZhXHU3NGQzXHUzZjBlXHUzZjUzXHU3NTQyXHU3NTZkXHU3NTcyXHU3NThkXHUzZjdjXHU3NWM4XHU3NWRjXHUzZmMwXHU3NjRkXHUzZmQ3XHU3Njc0XHUzZmRjXHU3NjdhXHV7MjRmNWN9XHU3MTg4XHU1NjIzXHU4OTgwXHU1ODY5XHU0MDFkXHU3NzQzXHU0MDM5XHU2NzYx''@;'; + put 'put ''XHU0MDQ1XHUzNWRiXHU3Nzk4XHU0MDZhXHU0MDZmXHU1YzVlXHU3N2JlXHU3N2NiXHU1OGYyXHU3ODE4XHU3MGI5XHU3ODFjXHU0MGE4XHU3ODM5XHU3ODQ3XHU3ODUxXHU3ODY2XHU4NDQ4XHV7MjU1MzV9XHU3OTMzXHU2ODAzXHU3OTMyXHU0MTAzIl0sWyI5OTQwIiwiXHU0MTA5XHU3OTkx''@;'; + put 'put ''XHU3OTk5XHU4ZmJiXHU3YTA2XHU4ZmJjXHU0MTY3XHU3YTkxXHU0MWIyXHU3YWJjXHU4Mjc5XHU0MWM0XHU3YWNmXHU3YWRiXHU0MWNmXHU0ZTIxXHU3YjYyXHU3YjZjXHU3YjdiXHU3YzEyXHU3YzFiXHU0MjYwXHU0MjdhXHU3YzdiXHU3YzljXHU0MjhjXHU3Y2I4XHU0Mjk0XHU3Y2VkXHU4''@;'; + put 'put ''ZjkzXHU3MGMwXHV7MjBjY2Z9XHU3ZGNmXHU3ZGQ0XHU3ZGQwXHU3ZGZkXHU3ZmFlXHU3ZmI0XHU3MjlmXHU0Mzk3XHU4MDIwXHU4MDI1XHU3YjM5XHU4MDJlXHU4MDMxXHU4MDU0XHUzZGNjXHU1N2I0XHU3MGEwXHU4MGI3XHU4MGU5XHU0M2VkXHU4MTBjXHU3MzJhXHU4MTBlXHU4MTEyXHU3''@;'; + put 'put ''NTYwXHU4MTE0XHU0NDAxXHUzYjM5XHU4MTU2XHU4MTU5XHU4MTVhIl0sWyI5OWExIiwiXHU0NDEzXHU1ODNhXHU4MTdjXHU4MTg0XHU0NDI1XHU4MTkzXHU0NDJkXHU4MWE1XHU1N2VmXHU4MWMxXHU4MWU0XHU4MjU0XHU0NDhmXHU4MmE2XHU4Mjc2XHU4MmNhXHU4MmQ4XHU4MmZmXHU0NGIw''@;'; + put 'put ''XHU4MzU3XHU5NjY5XHU2OThhXHU4NDA1XHU3MGY1XHU4NDY0XHU2MGUzXHU4NDg4XHU0NTA0XHU4NGJlXHU4NGUxXHU4NGY4XHU4NTEwXHU4NTM4XHU4NTUyXHU0NTNiXHU4NTZmXHU4NTcwXHU4NWUwXHU0NTc3XHU4NjcyXHU4NjkyXHU4NmIyXHU4NmVmXHU5NjQ1XHU4NzhiXHU0NjA2XHU0''@;'; + put 'put ''NjE3XHU4OGFlXHU4OGZmXHU4OTI0XHU4OTQ3XHU4OTkxXHV7Mjc5Njd9XHU4YTI5XHU4YTM4XHU4YTk0XHU4YWI0XHU4YzUxXHU4Y2Q0XHU4Y2YyXHU4ZDFjXHU0Nzk4XHU1ODVmXHU4ZGMzXHU0N2VkXHU0ZWVlXHU4ZTNhXHU1NWQ4XHU1NzU0XHU4ZTcxXHU1NWY1XHU4ZWIwXHU0ODM3XHU4''@;'; + put 'put ''ZWNlXHU4ZWUyXHU4ZWU0XHU4ZWVkXHU4ZWYyXHU4ZmI3XHU4ZmMxXHU4ZmNhXHU4ZmNjXHU5MDMzXHU5OWM0XHU0OGFkXHU5OGUwXHU5MjEzXHU0OTFlXHU5MjI4XHU5MjU4XHU5MjZiXHU5MmIxXHU5MmFlXHU5MmJmIl0sWyI5YTQwIiwiXHU5MmUzXHU5MmViXHU5MmYzXHU5MmY0XHU5MmZk''@;'; + put 'put ''XHU5MzQzXHU5Mzg0XHU5M2FkXHU0OTQ1XHU0OTUxXHU5ZWJmXHU5NDE3XHU1MzAxXHU5NDFkXHU5NDJkXHU5NDNlXHU0OTZhXHU5NDU0XHU5NDc5XHU5NTJkXHU5NWEyXHU0OWE3XHU5NWY0XHU5NjMzXHU0OWU1XHU2N2EwXHU0YTI0XHU5NzQwXHU0YTM1XHU5N2IyXHU5N2MyXHU1NjU0XHU0''@;'; + put 'put ''YWU0XHU2MGU4XHU5OGI5XHU0YjE5XHU5OGYxXHU1ODQ0XHU5OTBlXHU5OTE5XHU1MWI0XHU5OTFjXHU5OTM3XHU5OTQyXHU5OTVkXHU5OTYyXHU0YjcwXHU5OWM1XHU0YjlkXHU5YTNjXHU5YjBmXHU3YTgzXHU5YjY5XHU5YjgxXHU5YmRkXHU5YmYxXHU5YmY0XHU0YzZkXHU5YzIwXHUzNzZm''@;'; + put 'put ''XHV7MjFiYzJ9XHU5ZDQ5XHU5YzNhIl0sWyI5YWExIiwiXHU5ZWZlXHU1NjUwXHU5ZDkzXHU5ZGJkXHU5ZGMwXHU5ZGZjXHU5NGY2XHU4ZmI2XHU5ZTdiXHU5ZWFjXHU5ZWIxXHU5ZWJkXHU5ZWM2XHU5NGRjXHU5ZWUyXHU5ZWYxXHU5ZWY4XHU3YWM4XHU5ZjQ0XHV7MjAwOTR9XHV7MjAyYjd9''@;'; + put 'put ''XHV7MjAzYTB9XHU2OTFhXHU5NGMzXHU1OWFjXHV7MjA0ZDd9XHU1ODQwXHU5NGMxXHUzN2I5XHV7MjA1ZDV9XHV7MjA2MTV9XHV7MjA2NzZ9XHV7MjE2YmF9XHU1NzU3XHU3MTczXHV7MjBhYzJ9XHV7MjBhY2R9XHV7MjBiYmZ9XHU1NDZhXHV7MmY4M2J9XHV7MjBiY2J9XHU1NDllXHV7MjBi''@;'; + put 'put ''ZmJ9XHV7MjBjM2J9XHV7MjBjNTN9XHV7MjBjNjV9XHV7MjBjN2N9XHU2MGU3XHV7MjBjOGR9XHU1NjdhXHV7MjBjYjV9XHV7MjBjZGR9XHV7MjBjZWR9XHV7MjBkNmZ9XHV7MjBkYjJ9XHV7MjBkYzh9XHU2OTU1XHU5YzJmXHU4N2E1XHV7MjBlMDR9XHV7MjBlMGV9XHV7MjBlZDd9XHV7MjBm''@;'; + put 'put ''OTB9XHV7MjBmMmR9XHV7MjBlNzN9XHU1YzIwXHV7MjBmYmN9XHU1ZTBiXHV7MjEwNWN9XHV7MjEwNGZ9XHV7MjEwNzZ9XHU2NzFlXHV7MjEwN2J9XHV7MjEwODh9XHV7MjEwOTZ9XHUzNjQ3XHV7MjEwYmZ9XHV7MjEwZDN9XHV7MjExMmZ9XHV7MjExM2J9XHU1MzY0XHU4NGFkXHV7MjEyZTN9''@;'; + put 'put ''XHV7MjEzNzV9XHV7MjEzMzZ9XHU4YjgxXHV7MjE1Nzd9XHV7MjE2MTl9XHV7MjE3YzN9XHV7MjE3Yzd9XHU0ZTc4XHU3MGJiXHV7MjE4MmR9XHV7MjE5NmF9Il0sWyI5YjQwIiwiXHV7MjFhMmR9XHV7MjFhNDV9XHV7MjFjMmF9XHV7MjFjNzB9XHV7MjFjYWN9XHV7MjFlYzh9XHU2MmMzXHV7''@;'; + put 'put ''MjFlZDV9XHV7MjFmMTV9XHU3MTk4XHU2ODU1XHV7MjIwNDV9XHU2OWU5XHUzNmM4XHV7MjIyN2N9XHV7MjIzZDd9XHV7MjIzZmF9XHV7MjI3MmF9XHV7MjI4NzF9XHV7MjI5NGZ9XHU4MmZkXHV7MjI5Njd9XHV7MjI5OTN9XHV7MjJhZDV9XHU4OWE1XHV7MjJhZTh9XHU4ZmEwXHV7MjJiMGV9''@;'; + put 'put ''XHU5N2I4XHV7MjJiM2Z9XHU5ODQ3XHU5YWJkXHV7MjJjNGN9Il0sWyI5YjYyIiwiXHV7MjJjODh9XHV7MjJjYjd9XHV7MjViZTh9XHV7MjJkMDh9XHV7MjJkMTJ9XHV7MjJkYjd9XHV7MjJkOTV9XHV7MjJlNDJ9XHV7MjJmNzR9XHV7MjJmY2N9XHV7MjMwMzN9XHV7MjMwNjZ9XHV7MjMzMWZ9''@;'; + put 'put ''XHV7MjMzZGV9XHU1ZmIxXHU2NjQ4XHU2NmJmXHV7MjdhNzl9XHV7MjM1Njd9XHV7MjM1ZjN9XHU3MjAxXHV7MjQ5YmF9XHU3N2Q3XHV7MjM2MWF9XHV7MjM3MTZ9XHU3ZTg3XHV7MjAzNDZ9XHU1OGI1XHU2NzBlIl0sWyI5YmExIiwiXHU2OTE4XHV7MjNhYTd9XHV7Mjc2NTd9XHV7MjVmZTJ9''@;'; + put 'put ''XHV7MjNlMTF9XHV7MjNlYjl9XHV7Mjc1ZmV9XHV7MjIwOWF9XHU0OGQwXHU0YWI4XHV7MjQxMTl9XHV7MjhhOWF9XHV7MjQyZWV9XHV7MjQzMGR9XHV7MjQwM2J9XHV7MjQzMzR9XHV7MjQzOTZ9XHV7MjRhNDV9XHV7MjA1Y2F9XHU1MWQyXHV7MjA2MTF9XHU1OTlmXHV7MjFlYTh9XHUzYmJl''@;'; + put 'put ''XHV7MjNjZmZ9XHV7MjQ0MDR9XHV7MjQ0ZDZ9XHU1Nzg4XHV7MjQ2NzR9XHUzOTliXHV7MjQ3MmZ9XHV7Mjg1ZTh9XHV7Mjk5Yzl9XHUzNzYyXHV7MjIxYzN9XHU4YjVlXHV7MjhiNGV9XHU5OWQ2XHV7MjQ4MTJ9XHV7MjQ4ZmJ9XHV7MjRhMTV9XHU3MjA5XHV7MjRhYzB9XHV7MjBjNzh9XHU1''@;'; + put 'put ''OTY1XHV7MjRlYTV9XHV7MjRmODZ9XHV7MjA3Nzl9XHU4ZWRhXHV7MjUwMmN9XHU1MjhmXHU1NzNmXHU3MTcxXHV7MjUyOTl9XHV7MjU0MTl9XHV7MjNmNGF9XHV7MjRhYTd9XHU1NWJjXHV7MjU0NDZ9XHV7MjU0NmV9XHV7MjZiNTJ9XHU5MWQ0XHUzNDczXHV7MjU1M2Z9XHV7Mjc2MzJ9XHV7''@;'; + put 'put ''MjU1NWV9XHU0NzE4XHV7MjU1NjJ9XHV7MjU1NjZ9XHV7MjU3Yzd9XHV7MjQ5M2Z9XHV7MjU4NWR9XHU1MDY2XHUzNGZiXHV7MjMzY2N9XHU2MGRlXHV7MjU5MDN9XHU0NzdjXHV7Mjg5NDh9XHV7MjVhYWV9XHV7MjViODl9XHV7MjVjMDZ9XHV7MjFkOTB9XHU1N2ExXHU3MTUxXHU2ZmI2XHV7''@;'; + put 'put ''MjYxMDJ9XHV7MjdjMTJ9XHU5MDU2XHV7MjYxYjJ9XHV7MjRmOWF9XHU4YjYyXHV7MjY0MDJ9XHV7MjY0NGF9Il0sWyI5YzQwIiwiXHU1ZDViXHV7MjZiZjd9XHU4ZjM2XHV7MjY0ODR9XHV7MjE5MWN9XHU4YWVhXHV7MjQ5ZjZ9XHV7MjY0ODh9XHV7MjNmZWZ9XHV7MjY1MTJ9XHU0YmMwXHV7''@;'; + put 'put ''MjY1YmZ9XHV7MjY2YjV9XHV7MjI3MWJ9XHU5NDY1XHV7MjU3ZTF9XHU2MTk1XHU1YTI3XHV7MmY4Y2R9XHU0ZmJiXHU1NmI5XHV7MjQ1MjF9XHV7MjY2ZmN9XHU0ZTZhXHV7MjQ5MzR9XHU5NjU2XHU2ZDhmXHV7MjZjYmR9XHUzNjE4XHU4OTc3XHV7MjY3OTl9XHV7MjY4NmV9XHV7MjY0MTF9''@;'; + put 'put ''XHV7MjY4NWV9XHU3MWRmXHV7MjY4Yzd9XHU3YjQyXHV7MjkwYzB9XHV7MjBhMTF9XHV7MjY5MjZ9XHU5MTA0XHV7MjY5Mzl9XHU3YTQ1XHU5ZGYwXHV7MjY5ZmF9XHU5YTI2XHV7MjZhMmR9XHUzNjVmXHV7MjY0Njl9XHV7MjAwMjF9XHU3OTgzXHV7MjZhMzR9XHV7MjZiNWJ9XHU1ZDJjXHV7''@;'; + put 'put ''MjM1MTl9XHU4M2NmXHV7MjZiOWR9XHU0NmQwXHV7MjZjYTR9XHU3NTNiXHU4ODY1XHV7MjZkYWV9XHU1OGI2Il0sWyI5Y2ExIiwiXHUzNzFjXHV7MjI1OGR9XHV7MjcwNGJ9XHV7MjcxY2R9XHUzYzU0XHV7MjcyODB9XHV7MjcyODV9XHU5MjgxXHV7MjIxN2F9XHV7MjcyOGJ9XHU5MzMwXHV7''@;'; + put 'put ''MjcyZTZ9XHV7MjQ5ZDB9XHU2YzM5XHU5NDlmXHV7Mjc0NTB9XHV7MjBlZjh9XHU4ODI3XHU4OGY1XHV7MjI5MjZ9XHV7Mjg0NzN9XHV7MjE3YjF9XHU2ZWI4XHV7MjRhMmF9XHV7MjE4MjB9XHUzOWE0XHUzNmI5XHU1YzEwXHU3OWUzXHU0NTNmXHU2NmI2XHV7MjljYWR9XHV7Mjk4YTR9XHU4''@;'; + put 'put ''OTQzXHV7Mjc3Y2N9XHV7Mjc4NTh9XHU1NmQ2XHU0MGRmXHV7MjE2MGF9XHUzOWExXHV7MjM3MmZ9XHV7MjgwZTh9XHV7MjEzYzV9XHU3MWFkXHU4MzY2XHV7Mjc5ZGR9XHV7MjkxYTh9XHU1YTY3XHU0Y2I3XHV7MjcwYWZ9XHV7Mjg5YWJ9XHV7Mjc5ZmR9XHV7MjdhMGF9XHV7MjdiMGJ9XHV7''@;'; + put 'put ''MjdkNjZ9XHV7MjQxN2F9XHU3YjQzXHU3OTdlXHV7MjgwMDl9XHU2ZmI1XHV7MmEyZGZ9XHU2YTAzXHV7MjgzMTh9XHU1M2EyXHV7MjZlMDd9XHU5M2JmXHU2ODM2XHU5NzVkXHV7MjgxNmZ9XHV7MjgwMjN9XHV7MjY5YjV9XHV7MjEzZWR9XHV7MjMyMmZ9XHV7MjgwNDh9XHU1ZDg1XHV7Mjhj''@;'; + put 'put ''MzB9XHV7MjgwODN9XHU1NzE1XHU5ODIzXHV7Mjg5NDl9XHU1ZGFiXHV7MjQ5ODh9XHU2NWJlXHU2OWQ1XHU1M2QyXHV7MjRhYTV9XHV7MjNmODF9XHUzYzExXHU2NzM2XHV7MjgwOTB9XHV7MjgwZjR9XHV7MjgxMmV9XHV7MjFmYTF9XHV7MjgxNGZ9Il0sWyI5ZDQwIiwiXHV7MjgxODl9XHV7''@;'; + put 'put ''MjgxYWZ9XHV7MjgyMWF9XHV7MjgzMDZ9XHV7MjgzMmZ9XHV7MjgzOGF9XHUzNWNhXHV7Mjg0Njh9XHV7Mjg2YWF9XHU0OGZhXHU2M2U2XHV7Mjg5NTZ9XHU3ODA4XHU5MjU1XHV7Mjg5Yjh9XHU0M2YyXHV7Mjg5ZTd9XHU0M2RmXHV7Mjg5ZTh9XHV7MjhiNDZ9XHV7MjhiZDR9XHU1OWY4XHV7''@;'; + put 'put ''MjhjMDl9XHU4ZjBiXHV7MjhmYzV9XHV7MjkwZWN9XHU3YjUxXHV7MjkxMTB9XHV7MjkxM2N9XHUzZGY3XHV7MjkxNWV9XHV7MjRhY2F9XHU4ZmQwXHU3MjhmXHU1NjhiXHV7Mjk0ZTd9XHV7Mjk1ZTl9XHV7Mjk1YjB9XHV7Mjk1Yjh9XHV7Mjk3MzJ9XHV7Mjk4ZDF9XHV7Mjk5NDl9XHV7Mjk5''@;'; + put 'put ''NmF9XHV7Mjk5YzN9XHV7MjlhMjh9XHV7MjliMGV9XHV7MjlkNWF9XHV7MjlkOWJ9XHU3ZTlmXHV7MjllZjh9XHV7MjlmMjN9XHU0Y2E0XHU5NTQ3XHV7MmEyOTN9XHU3MWEyXHV7MmEyZmZ9XHU0ZDkxXHU5MDEyXHV7MmE1Y2J9XHU0ZDljXHV7MjBjOWN9XHU4ZmJlXHU1NWMxIl0sWyI5ZGEx''@;'; + put 'put ''IiwiXHU4ZmJhXHV7MjI0YjB9XHU4ZmI5XHV7MjRhOTN9XHU0NTA5XHU3ZTdmXHU2ZjU2XHU2YWIxXHU0ZWVhXHUzNGU0XHV7MjhiMmN9XHV7Mjc4OWR9XHUzNzNhXHU4ZTgwXHV7MjE3ZjV9XHV7MjgwMjR9XHV7MjhiNmN9XHV7MjhiOTl9XHV7MjdhM2V9XHV7MjY2YWZ9XHUzZGViXHV7Mjc2''@;'; + put 'put ''NTV9XHV7MjNjYjd9XHV7MjU2MzV9XHV7MjU5NTZ9XHU0ZTlhXHV7MjVlODF9XHV7MjYyNTh9XHU1NmJmXHV7MjBlNmR9XHU4ZTBlXHU1YjZkXHV7MjNlODh9XHV7MjRjOWV9XHU2M2RlXHU2MmQwXHV7MjE3ZjZ9XHV7MjE4N2J9XHU2NTMwXHU1NjJkXHV7MjVjNGF9XHU1NDFhXHV7MjUzMTF9''@;'; + put 'put ''XHUzZGM2XHV7MjlkOTh9XHU0YzdkXHU1NjIyXHU1NjFlXHU3ZjQ5XHV7MjVlZDh9XHU1OTc1XHV7MjNkNDB9XHU4NzcwXHU0ZTFjXHV7MjBmZWF9XHV7MjBkNDl9XHV7MjM2YmF9XHU4MTE3XHU5ZDVlXHU4ZDE4XHU3NjNiXHU5YzQ1XHU3NjRlXHU3N2I5XHU5MzQ1XHU1NDMyXHU4MTQ4XHU4''@;'; + put 'put ''MmY3XHU1NjI1XHU4MTMyXHU4NDE4XHU4MGJkXHU1NWVhXHU3OTYyXHU1NjQzXHU1NDE2XHV7MjBlOWR9XHUzNWNlXHU1NjA1XHU1NWYxXHU2NmYxXHV7MjgyZTJ9XHUzNjJkXHU3NTM0XHU1NWYwXHU1NWJhXHU1NDk3XHU1NTcyXHV7MjBjNDF9XHV7MjBjOTZ9XHU1ZWQwXHV7MjUxNDh9XHV7''@;'; + put 'put ''MjBlNzZ9XHV7MjJjNjJ9Il0sWyI5ZTQwIiwiXHV7MjBlYTJ9XHU5ZWFiXHU3ZDVhXHU1NWRlXHV7MjEwNzV9XHU2MjlkXHU5NzZkXHU1NDk0XHU4Y2NkXHU3MWY2XHU5MTc2XHU2M2ZjXHU2M2I5XHU2M2ZlXHU1NTY5XHV7MjJiNDN9XHU5YzcyXHV7MjJlYjN9XHU1MTlhXHUzNGRmXHV7MjBk''@;'; + put 'put ''YTd9XHU1MWE3XHU1NDRkXHU1NTFlXHU1NTEzXHU3NjY2XHU4ZTJkXHV7MjY4OGF9XHU3NWIxXHU4MGI2XHU4ODA0XHU4Nzg2XHU4OGM3XHU4MWI2XHU4NDFjXHV7MjEwYzF9XHU0NGVjXHU3MzA0XHV7MjQ3MDZ9XHU1YjkwXHU4MzBiXHV7MjY4OTN9XHU1NjdiXHV7MjI2ZjR9XHV7MjdkMmZ9''@;'; + put 'put ''XHV7MjQxYTN9XHV7MjdkNzN9XHV7MjZlZDB9XHV7MjcyYjZ9XHU5MTcwXHV7MjExZDl9XHU5MjA4XHV7MjNjZmN9XHV7MmE2YTl9XHV7MjBlYWN9XHV7MjBlZjl9XHU3MjY2XHV7MjFjYTJ9XHU0NzRlXHV7MjRmYzJ9XHV7MjdmZjl9XHV7MjBmZWJ9XHU0MGZhIl0sWyI5ZWExIiwiXHU5YzVk''@;'; + put 'put ''XHU2NTFmXHV7MjJkYTB9XHU0OGYzXHV7MjQ3ZTB9XHV7MjlkN2N9XHV7MjBmZWN9XHV7MjBlMGF9XHU2MDYyXHV7Mjc1YTN9XHV7MjBmZWR9Il0sWyI5ZWFkIiwiXHV7MjYwNDh9XHV7MjExODd9XHU3MWEzXHU3ZThlXHU5ZDUwXHU0ZTFhXHU0ZTA0XHUzNTc3XHU1YjBkXHU2Y2IyXHU1MzY3''@;'; + put 'put ''XHUzNmFjXHUzOWRjXHU1MzdkXHUzNmE1XHV7MjQ2MTh9XHU1ODlhXHV7MjRiNmV9XHU4MjJkXHU1NDRiXHU1N2FhXHV7MjVhOTV9XHV7MjA5Nzl9Il0sWyI5ZWM1IiwiXHUzYTUyXHV7MjI0NjV9XHU3Mzc0XHV7MjllYWN9XHU0ZDA5XHU5YmVkXHV7MjNjZmV9XHV7MjlmMzB9XHU0YzViXHV7''@;'; + put 'put ''MjRmYTl9XHV7Mjk1OWV9XHV7MjlmZGV9XHU4NDVjXHV7MjNkYjZ9XHV7MjcyYjJ9XHV7MjY3YjN9XHV7MjM3MjB9XHU2MzJlXHU3ZDI1XHV7MjNlZjd9XHV7MjNlMmN9XHUzYTJhXHU5MDA4XHU1MmNjXHUzZTc0XHUzNjdhXHU0NWU5XHV7MjA0OGV9XHU3NjQwXHU1YWYwXHV7MjBlYjZ9XHU3''@;'; + put 'put ''ODdhXHV7MjdmMmV9XHU1OGE3XHU0MGJmXHU1NjdjXHU5YjhiXHU1ZDc0XHU3NjU0XHV7MmE0MzR9XHU5ZTg1XHU0Y2UxXHU3NWY5XHUzN2ZiXHU2MTE5XHV7MjMwZGF9XHV7MjQzZjJ9Il0sWyI5ZWY1IiwiXHU1NjVkXHV7MjEyYTl9XHU1N2E3XHV7MjQ5NjN9XHV7MjllMDZ9XHU1MjM0XHV7''@;'; + put 'put ''MjcwYWV9XHUzNWFkXHU2YzRhXHU5ZDdjIl0sWyI5ZjQwIiwiXHU3YzU2XHU5YjM5XHU1N2RlXHV7MjE3NmN9XHU1YzUzXHU2NGQzXHV7Mjk0ZDB9XHV7MjYzMzV9XHV7MjcxNjR9XHU4NmFkXHV7MjBkMjh9XHV7MjZkMjJ9XHV7MjRhZTJ9XHV7MjBkNzF9Il0sWyI5ZjRmIiwiXHU1MWZlXHV7''@;'; + put 'put ''MjFmMGZ9XHU1ZDhlXHU5NzAzXHV7MjFkZDF9XHU5ZTgxXHU5MDRjXHU3YjFmXHU5YjAyXHU1Y2QxXHU3YmEzXHU2MjY4XHU2MzM1XHU5YWZmXHU3YmNmXHU5YjJhXHU3YzdlXHU5YjJlXHU3YzQyXHU3Yzg2XHU5YzE1XHU3YmZjXHU5YjA5XHU5ZjE3XHU5YzFiXHV7MjQ5M2V9XHU5ZjVhXHU1''@;'; + put 'put ''NTczXHU1YmMzXHU0ZmZkXHU5ZTk4XHU0ZmYyXHU1MjYwXHUzZTA2XHU1MmQxXHU1NzY3XHU1MDU2XHU1OWI3XHU1ZTEyXHU5N2M4XHU5ZGFiXHU4ZjVjXHU1NDY5XHU5N2I0XHU5OTQwXHU5N2JhXHU1MzJjXHU2MTMwIl0sWyI5ZmExIiwiXHU2OTJjXHU1M2RhXHU5YzBhXHU5ZDAyXHU0YzNi''@;'; + put 'put ''XHU5NjQxXHU2OTgwXHU1MGE2XHU3NTQ2XHV7MjE3NmR9XHU5OWRhXHU1MjczIl0sWyI5ZmFlIiwiXHU5MTU5XHU5NjgxXHU5MTVjIl0sWyI5ZmIyIiwiXHU5MTUxXHV7MjhlOTd9XHU2MzdmXHV7MjZkMjN9XHU2YWNhXHU1NjExXHU5MThlXHU3NTdhXHU2Mjg1XHV7MjAzZmN9XHU3MzRmXHU3''@;'; + put 'put ''YzcwXHV7MjVjMjF9XHV7MjNjZmR9Il0sWyI5ZmMxIiwiXHV7MjQ5MTl9XHU3NmQ2XHU5YjlkXHU0ZTJhXHV7MjBjZDR9XHU4M2JlXHU4ODQyIl0sWyI5ZmM5IiwiXHU1YzRhXHU2OWMwXHU1MGVkXHU1NzdhXHU1MjFmXHU1ZGY1XHU0ZWNlXHU2YzMxXHV7MjAxZjJ9XHU0ZjM5XHU1NDljXHU1''@;'; + put 'put ''NGRhXHU1MjlhXHU4ZDgyXHUzNWZlXHU1ZjBjXHUzNWYzIl0sWyI5ZmRiIiwiXHU2YjUyXHU5MTdjXHU5ZmE1XHU5Yjk3XHU5ODJlXHU5OGI0XHU5YWJhXHU5ZWE4XHU5ZTg0XHU3MTdhXHU3YjE0Il0sWyI5ZmU3IiwiXHU2YmZhXHU4ODE4XHU3Zjc4Il0sWyI5ZmViIiwiXHU1NjIwXHV7MmE2''@;'; + put 'put ''NGF9XHU4ZTc3XHU5ZjUzIl0sWyI5ZmYwIiwiXHU4ZGQ0XHU4ZTRmXHU5ZTFjXHU4ZTAxXHU2MjgyXHV7MjgzN2R9XHU4ZTI4XHU4ZTc1XHU3YWQzXHV7MjRhNzd9XHU3YTNlXHU3OGQ4XHU2Y2VhXHU4YTY3XHU3NjA3Il0sWyJhMDQwIiwiXHV7MjhhNWF9XHU5ZjI2XHU2Y2NlXHU4N2Q2XHU3''@;'; + put 'put ''NWMzXHV7MmEyYjJ9XHU3ODUzXHV7MmY4NDB9XHU4ZDBjXHU3MmUyXHU3MzcxXHU4YjJkXHU3MzAyXHU3NGYxXHU4Y2ViXHV7MjRhYmJ9XHU4NjJmXHU1ZmJhXHU4OGEwXHU0NGI3Il0sWyJhMDU1IiwiXHV7MjE4M2J9XHV7MjZlMDV9Il0sWyJhMDU4IiwiXHU4YTdlXHV7MjI1MWJ9Il0sWyJh''@;'; + put 'put ''MDViIiwiXHU2MGZkXHU3NjY3XHU5YWQ3XHU5ZDQ0XHU5MzZlXHU5YjhmXHU4N2Y1Il0sWyJhMDYzIiwiXHU4ODBmXHU4Y2Y3XHU3MzJjXHU5NzIxXHU5YmIwXHUzNWQ2XHU3MmIyXHU0YzA3XHU3YzUxXHU5OTRhXHV7MjYxNTl9XHU2MTU5XHU0YzA0XHU5ZTk2XHU2MTdkIl0sWyJhMDczIiwi''@;'; + put 'put ''XHU1NzVmXHU2MTZmXHU2MmE2XHU2MjM5XHU2MmNlXHUzYTVjXHU2MWUyXHU1M2FhXHV7MjMzZjV9XHU2MzY0XHU2ODAyXHUzNWQyIl0sWyJhMGExIiwiXHU1ZDU3XHV7MjhiYzJ9XHU4ZmRhXHV7MjhlMzl9Il0sWyJhMGE2IiwiXHU1MGQ5XHV7MjFkNDZ9XHU3OTA2XHU1MzMyXHU5NjM4XHV7''@;'; + put 'put ''MjBmM2J9XHU0MDY1Il0sWyJhMGFlIiwiXHU3N2ZlIl0sWyJhMGIwIiwiXHU3Y2MyXHV7MjVmMWF9XHU3Y2RhXHU3YTJkXHU4MDY2XHU4MDYzXHU3ZDRkXHU3NTA1XHU3NGYyXHU4OTk0XHU4MjFhXHU2NzBjXHU4MDYyXHV7Mjc0ODZ9XHU4MDViXHU3NGYwXHU4MTAzXHU3NzI0XHU4OTg5XHV7''@;'; + put 'put ''MjY3Y2N9XHU3NTUzXHV7MjZlZDF9XHU4N2E5XHU4N2NlXHU4MWM4XHU4NzhjXHU4YTQ5XHU4Y2FkXHU4YjQzXHU3NzJiXHU3NGY4XHU4NGRhXHUzNjM1XHU2OWIyXHU4ZGE2Il0sWyJhMGQ0IiwiXHU4OWE5XHU3NDY4XHU2ZGI5XHU4N2MxXHV7MjQwMTF9XHU3NGU3XHUzZGRiXHU3MTc2XHU2''@;'; + put 'put ''MGE0XHU2MTljXHUzY2QxXHU3MTYyXHU2MDc3Il0sWyJhMGUyIiwiXHU3ZjcxXHV7MjhiMmR9XHU3MjUwXHU2MGU5XHU0YjdlXHU1MjIwXHUzYzE4XHV7MjNjYzd9XHV7MjVlZDd9XHV7Mjc2NTZ9XHV7MjU1MzF9XHV7MjE5NDR9XHV7MjEyZmV9XHV7Mjk5MDN9XHV7MjZkZGN9XHV7MjcwYWR9''@;'; + put 'put ''XHU1Y2MxXHV7MjYxYWR9XHV7MjhhMGZ9XHV7MjM2Nzd9XHV7MjAwZWV9XHV7MjY4NDZ9XHV7MjRmMGV9XHU0NTYyXHU1YjFmXHV7MjYzNGN9XHU5ZjUwXHU5ZWE2XHV7MjYyNmJ9Il0sWyJhM2MwIiwiXHUyNDAwIiwzMSwiXHUyNDIxIl0sWyJjNmExIiwiXHUyNDYwIiw5LCJcdTI0NzQiLDks''@;'; + put 'put ''Ilx1MjE3MCIsOSwiXHU0ZTM2XHU0ZTNmXHU0ZTg1XHU0ZWEwXHU1MTgyXHU1MTk2XHU1MWFiXHU1MmY5XHU1MzM4XHU1MzY5XHU1M2I2XHU1OTBhXHU1YjgwXHU1ZGRiXHUyZjMzXHU1ZTdmXHU1ZWY0XHU1ZjUwXHU1ZjYxXHU2NTM0XHU2NWUwXHU3NTkyXHU3Njc2XHU4ZmI1XHU5NmI2XHhh''@;'; + put 'put ''OFx1MDJjNlx1MzBmZFx1MzBmZVx1MzA5ZFx1MzA5ZVx1MzAwM1x1NGVkZFx1MzAwNVx1MzAwNlx1MzAwN1x1MzBmY1x1ZmYzYlx1ZmYzZFx1MjczZFx1MzA0MSIsMjNdLFsiYzc0MCIsIlx1MzA1OSIsNTgsIlx1MzBhMVx1MzBhMlx1MzBhM1x1MzBhNCJdLFsiYzdhMSIsIlx1MzBhNSIsODEs''@;'; + put 'put ''Ilx1MDQxMCIsNSwiXHUwNDAxXHUwNDE2Iiw0XSxbImM4NDAiLCJcdTA0MWIiLDI2LCJcdTA0NTFcdTA0MzYiLDI1LCJcdTIxZTdcdTIxYjhcdTIxYjlcdTMxY2ZcdXsyMDBjY31cdTRlNWFcdXsyMDA4YX1cdTUyMDJcdTQ0OTEiXSxbImM4YTEiLCJcdTlmYjBcdTUxODhcdTlmYjFcdXsyNzYw''@;'; + put 'put ''N30iXSxbImM4Y2QiLCJcdWZmZTJcdWZmZTRcdWZmMDdcdWZmMDJcdTMyMzFcdTIxMTZcdTIxMjFcdTMwOWJcdTMwOWNcdTJlODBcdTJlODRcdTJlODZcdTJlODdcdTJlODhcdTJlOGFcdTJlOGNcdTJlOGRcdTJlOTVcdTJlOWNcdTJlOWRcdTJlYTVcdTJlYTdcdTJlYWFcdTJlYWNcdTJlYWVc''@;'; + put 'put ''dTJlYjZcdTJlYmNcdTJlYmVcdTJlYzZcdTJlY2FcdTJlY2NcdTJlY2RcdTJlY2ZcdTJlZDZcdTJlZDdcdTJlZGVcdTJlZTMiXSxbImM4ZjUiLCJcdTAyODNcdTAyNTBcdTAyNWJcdTAyNTRcdTAyNzVcdTAxNTNceGY4XHUwMTRiXHUwMjhhXHUwMjZhIl0sWyJmOWZlIiwiXHVmZmVkIl0sWyJm''@;'; + put 'put ''YTQwIiwiXHV7MjA1NDd9XHU5MmRiXHV7MjA1ZGZ9XHV7MjNmYzV9XHU4NTRjXHU0MmI1XHU3M2VmXHU1MWI1XHUzNjQ5XHV7MjQ5NDJ9XHV7Mjg5ZTR9XHU5MzQ0XHV7MjE5ZGJ9XHU4MmVlXHV7MjNjYzh9XHU3ODNjXHU2NzQ0XHU2MmRmXHV7MjQ5MzN9XHV7Mjg5YWF9XHV7MjAyYTB9XHV7''@;'; + put 'put ''MjZiYjN9XHV7MjEzMDV9XHU0ZmFiXHV7MjI0ZWR9XHU1MDA4XHV7MjZkMjl9XHV7MjdhODR9XHV7MjM2MDB9XHV7MjRhYjF9XHV7MjI1MTN9XHU1MDI5XHV7MjAzN2V9XHU1ZmE0XHV7MjAzODB9XHV7MjAzNDd9XHU2ZWRiXHV7MjA0MWZ9XHU1MDdkXHU1MTAxXHUzNDdhXHU1MTBlXHU5ODZj''@;'; + put 'put ''XHUzNzQzXHU4NDE2XHV7MjQ5YTR9XHV7MjA0ODd9XHU1MTYwXHV7MjMzYjR9XHU1MTZhXHV7MjBiZmZ9XHV7MjIwZmN9XHV7MjAyZTV9XHV7MjI1MzB9XHV7MjA1OGV9XHV7MjMyMzN9XHV7MjE5ODN9XHU1YjgyXHU4NzdkXHV7MjA1YjN9XHV7MjNjOTl9XHU1MWIyXHU1MWI4Il0sWyJmYWEx''@;'; + put 'put ''IiwiXHU5ZDM0XHU1MWM5XHU1MWNmXHU1MWQxXHUzY2RjXHU1MWQzXHV7MjRhYTZ9XHU1MWIzXHU1MWUyXHU1MzQyXHU1MWVkXHU4M2NkXHU2OTNlXHV7MjM3MmR9XHU1ZjdiXHU1MjBiXHU1MjI2XHU1MjNjXHU1MmI1XHU1MjU3XHU1Mjk0XHU1MmI5XHU1MmM1XHU3YzE1XHU4NTQyXHU1MmUw''@;'; + put 'put ''XHU4NjBkXHV7MjZiMTN9XHU1MzA1XHV7MjhhZGV9XHU1NTQ5XHU2ZWQ5XHV7MjNmODB9XHV7MjA5NTR9XHV7MjNmZWN9XHU1MzMzXHU1MzQ0XHV7MjBiZTJ9XHU2Y2NiXHV7MjE3MjZ9XHU2ODFiXHU3M2Q1XHU2MDRhXHUzZWFhXHUzOGNjXHV7MjE2ZTh9XHU3MWRkXHU0NGEyXHU1MzZkXHU1''@;'; + put 'put ''Mzc0XHV7Mjg2YWJ9XHU1MzdlXHU1MzdmXHV7MjE1OTZ9XHV7MjE2MTN9XHU3N2U2XHU1MzkzXHV7MjhhOWJ9XHU1M2EwXHU1M2FiXHU1M2FlXHU3M2E3XHV7MjU3NzJ9XHUzZjU5XHU3MzljXHU1M2MxXHU1M2M1XHU2YzQ5XHU0ZTQ5XHU1N2ZlXHU1M2Q5XHUzYWFiXHV7MjBiOGZ9XHU1M2Uw''@;'; + put 'put ''XHV7MjNmZWJ9XHV7MjJkYTN9XHU1M2Y2XHV7MjBjNzd9XHU1NDEzXHU3MDc5XHU1NTJiXHU2NjU3XHU2ZDViXHU1NDZkXHV7MjZiNTN9XHV7MjBkNzR9XHU1NTVkXHU1NDhmXHU1NGE0XHU0N2E2XHV7MjE3MGR9XHV7MjBlZGR9XHUzZGI0XHV7MjBkNGR9Il0sWyJmYjQwIiwiXHV7Mjg5YmN9''@;'; + put 'put ''XHV7MjI2OTh9XHU1NTQ3XHU0Y2VkXHU1NDJmXHU3NDE3XHU1NTg2XHU1NWE5XHU1NjA1XHV7MjE4ZDd9XHV7MjQwM2F9XHU0NTUyXHV7MjQ0MzV9XHU2NmIzXHV7MjEwYjR9XHU1NjM3XHU2NmNkXHV7MjMyOGF9XHU2NmE0XHU2NmFkXHU1NjRkXHU1NjRmXHU3OGYxXHU1NmYxXHU5Nzg3XHU1''@;'; + put 'put ''M2ZlXHU1NzAwXHU1NmVmXHU1NmVkXHV7MjhiNjZ9XHUzNjIzXHV7MjEyNGZ9XHU1NzQ2XHV7MjQxYTV9XHU2YzZlXHU3MDhiXHU1NzQyXHUzNmIxXHV7MjZjN2V9XHU1N2U2XHV7MjE0MTZ9XHU1ODAzXHV7MjE0NTR9XHV7MjQzNjN9XHU1ODI2XHV7MjRiZjV9XHU1ODVjXHU1OGFhXHUzNTYx''@;'; + put 'put ''XHU1OGUwXHU1OGRjXHV7MjEyM2N9XHU1OGZiXHU1YmZmXHU1NzQzXHV7MmExNTB9XHV7MjQyNzh9XHU5M2QzXHUzNWExXHU1OTFmXHU2OGE2XHUzNmMzXHU2ZTU5Il0sWyJmYmExIiwiXHV7MjE2M2V9XHU1YTI0XHU1NTUzXHV7MjE2OTJ9XHU4NTA1XHU1OWM5XHV7MjBkNGV9XHV7MjZjODF9''@;'; + put 'put ''XHV7MjZkMmF9XHV7MjE3ZGN9XHU1OWQ5XHV7MjE3ZmJ9XHV7MjE3YjJ9XHV7MjZkYTZ9XHU2ZDcxXHV7MjE4Mjh9XHV7MjE2ZDV9XHU1OWY5XHV7MjZlNDV9XHU1YWFiXHU1YTYzXHUzNmU2XHV7MjQ5YTl9XHU1YTc3XHUzNzA4XHU1YTk2XHU3NDY1XHU1YWQzXHV7MjZmYTF9XHV7MjI1NTR9''@;'; + put 'put ''XHUzZDg1XHV7MjE5MTF9XHUzNzMyXHV7MjE2Yjh9XHU1ZTgzXHU1MmQwXHU1Yjc2XHU2NTg4XHU1YjdjXHV7MjdhMGV9XHU0MDA0XHU0ODVkXHV7MjAyMDR9XHU1YmQ1XHU2MTYwXHV7MjFhMzR9XHV7MjU5Y2N9XHV7MjA1YTV9XHU1YmYzXHU1YjlkXHU0ZDEwXHU1YzA1XHV7MjFiNDR9XHU1''@;'; + put 'put ''YzEzXHU3M2NlXHU1YzE0XHV7MjFjYTV9XHV7MjZiMjh9XHU1YzQ5XHU0OGRkXHU1Yzg1XHU1Y2U5XHU1Y2VmXHU1ZDhiXHV7MjFkZjl9XHV7MjFlMzd9XHU1ZDEwXHU1ZDE4XHU1ZDQ2XHV7MjFlYTR9XHU1Y2JhXHU1ZGQ3XHU4MmZjXHUzODJkXHV7MjQ5MDF9XHV7MjIwNDl9XHV7MjIxNzN9''@;'; + put 'put ''XHU4Mjg3XHUzODM2XHUzYmMyXHU1ZTJlXHU2YThhXHU1ZTc1XHU1ZTdhXHV7MjQ0YmN9XHV7MjBjZDN9XHU1M2E2XHU0ZWI3XHU1ZWQwXHU1M2E4XHV7MjE3NzF9XHU1ZTA5XHU1ZWY0XHV7Mjg0ODJ9Il0sWyJmYzQwIiwiXHU1ZWY5XHU1ZWZiXHUzOGEwXHU1ZWZjXHU2ODNlXHU5NDFiXHU1''@;'; + put 'put ''ZjBkXHV7MjAxYzF9XHV7MmY4OTR9XHUzYWRlXHU0OGFlXHV7MjEzM2F9XHU1ZjNhXHV7MjY4ODh9XHV7MjIzZDB9XHU1ZjU4XHV7MjI0NzF9XHU1ZjYzXHU5N2JkXHV7MjZlNmV9XHU1ZjcyXHU5MzQwXHV7MjhhMzZ9XHU1ZmE3XHU1ZGI2XHUzZDVmXHV7MjUyNTB9XHV7MjFmNmF9XHV7Mjcw''@;'; + put 'put ''Zjh9XHV7MjI2Njh9XHU5MWQ2XHV7MjAyOWV9XHV7MjhhMjl9XHU2MDMxXHU2Njg1XHV7MjE4Nzd9XHUzOTYzXHUzZGM3XHUzNjM5XHU1NzkwXHV7MjI3YjR9XHU3OTcxXHUzZTQwXHU2MDllXHU2MGE0XHU2MGIzXHV7MjQ5ODJ9XHV7MjQ5OGZ9XHV7MjdhNTN9XHU3NGE0XHU1MGUxXHU1YWEw''@;'; + put 'put ''XHU2MTY0XHU4NDI0XHU2MTQyXHV7MmY4YTZ9XHV7MjZlZDJ9XHU2MTgxXHU1MWY0XHV7MjA2NTZ9XHU2MTg3XHU1YmFhXHV7MjNmYjd9Il0sWyJmY2ExIiwiXHV7MjI4NWZ9XHU2MWQzXHV7MjhiOWR9XHV7Mjk5NWR9XHU2MWQwXHUzOTMyXHV7MjI5ODB9XHV7MjI4YzF9XHU2MDIzXHU2MTVj''@;'; + put 'put ''XHU2NTFlXHU2MzhiXHV7MjAxMTh9XHU2MmM1XHV7MjE3NzB9XHU2MmQ1XHV7MjJlMGR9XHU2MzZjXHV7MjQ5ZGZ9XHUzYTE3XHU2NDM4XHU2M2Y4XHV7MjEzOGV9XHV7MjE3ZmN9XHU2NDkwXHU2ZjhhXHV7MjJlMzZ9XHU5ODE0XHV7MjQwOGN9XHV7MjU3MWR9XHU2NGUxXHU2NGU1XHU5NDdi''@;'; + put 'put ''XHUzYTY2XHU2NDNhXHUzYTU3XHU2NTRkXHU2ZjE2XHV7MjRhMjh9XHV7MjRhMjN9XHU2NTg1XHU2NTZkXHU2NTVmXHV7MjMwN2V9XHU2NWI1XHV7MjQ5NDB9XHU0YjM3XHU2NWQxXHU0MGQ4XHV7MjE4Mjl9XHU2NWUwXHU2NWUzXHU1ZmRmXHV7MjM0MDB9XHU2NjE4XHV7MjMxZjd9XHV7MjMx''@;'; + put 'put ''Zjh9XHU2NjQ0XHV7MjMxYTR9XHV7MjMxYTV9XHU2NjRiXHV7MjBlNzV9XHU2NjY3XHV7MjUxZTZ9XHU2NjczXHU2Njc0XHV7MjFlM2R9XHV7MjMyMzF9XHV7Mjg1ZjR9XHV7MjMxYzh9XHV7MjUzMTN9XHU3N2M1XHV7MjI4Zjd9XHU5OWE0XHU2NzAyXHV7MjQzOWN9XHV7MjRhMjF9XHUzYjJi''@;'; + put 'put ''XHU2OWZhXHV7MjM3YzJ9XHU2NzVlXHU2NzY3XHU2NzYyXHV7MjQxY2R9XHV7MjkwZWR9XHU2N2Q3XHU0NGU5XHU2ODIyXHU2ZTUwXHU5MjNjXHU2ODAxXHV7MjMzZTZ9XHV7MjZkYTB9XHU2ODVkIl0sWyJmZDQwIiwiXHV7MjM0NmZ9XHU2OWUxXHU2YTBiXHV7MjhhZGZ9XHU2OTczXHU2OGMz''@;'; + put 'put ''XHV7MjM1Y2R9XHU2OTAxXHU2OTAwXHUzZDMyXHUzYTAxXHV7MjM2M2N9XHUzYjgwXHU2N2FjXHU2OTYxXHV7MjhhNGF9XHU0MmZjXHU2OTM2XHU2OTk4XHUzYmExXHV7MjAzYzl9XHU4MzYzXHU1MDkwXHU2OWY5XHV7MjM2NTl9XHV7MjIxMmF9XHU2YTQ1XHV7MjM3MDN9XHU2YTlkXHUzYmYz''@;'; + put 'put ''XHU2N2IxXHU2YWM4XHV7MjkxOWN9XHUzYzBkXHU2YjFkXHV7MjA5MjN9XHU2MGRlXHU2YjM1XHU2Yjc0XHV7MjI3Y2R9XHU2ZWI1XHV7MjNhZGJ9XHV7MjAzYjV9XHV7MjE5NTh9XHUzNzQwXHU1NDIxXHV7MjNiNWF9XHU2YmUxXHV7MjNlZmN9XHU2YmRjXHU2YzM3XHV7MjI0OGJ9XHV7MjQ4''@;'; + put 'put ''ZjF9XHV7MjZiNTF9XHU2YzVhXHU4MjI2XHU2Yzc5XHV7MjNkYmN9XHU0NGM1XHV7MjNkYmR9XHV7MjQxYTR9XHV7MjQ5MGN9XHV7MjQ5MDB9Il0sWyJmZGExIiwiXHV7MjNjYzl9XHUzNmU1XHUzY2ViXHV7MjBkMzJ9XHU5YjgzXHV7MjMxZjl9XHV7MjI0OTF9XHU3ZjhmXHU2ODM3XHV7MjZk''@;'; + put 'put ''MjV9XHV7MjZkYTF9XHV7MjZkZWJ9XHU2ZDk2XHU2ZDVjXHU2ZTdjXHU2ZjA0XHV7MjQ5N2Z9XHV7MjQwODV9XHV7MjZlNzJ9XHU4NTMzXHV7MjZmNzR9XHU1MWM3XHU2YzljXHU2ZTFkXHU4NDJlXHV7MjhiMjF9XHU2ZTJmXHV7MjNlMmZ9XHU3NDUzXHV7MjNmODJ9XHU3OWNjXHU2ZTRmXHU1''@;'; + put 'put ''YTkxXHV7MjMwNGJ9XHU2ZmY4XHUzNzBkXHU2ZjlkXHV7MjNlMzB9XHU2ZWZhXHV7MjE0OTd9XHV7MjQwM2R9XHU0NTU1XHU5M2YwXHU2ZjQ0XHU2ZjVjXHUzZDRlXHU2Zjc0XHV7MjkxNzB9XHUzZDNiXHU2ZjlmXHV7MjQxNDR9XHU2ZmQzXHV7MjQwOTF9XHV7MjQxNTV9XHV7MjQwMzl9XHV7''@;'; + put 'put ''MjNmZjB9XHV7MjNmYjR9XHV7MjQxM2Z9XHU1MWRmXHV7MjQxNTZ9XHV7MjQxNTd9XHV7MjQxNDB9XHV7MjYxZGR9XHU3MDRiXHU3MDdlXHU3MGE3XHU3MDgxXHU3MGNjXHU3MGQ1XHU3MGQ2XHU3MGRmXHU0MTA0XHUzZGU4XHU3MWI0XHU3MTk2XHV7MjQyNzd9XHU3MTJiXHU3MTQ1XHU1YTg4''@;'; + put 'put ''XHU3MTRhXHU3MTZlXHU1YzljXHV7MjQzNjV9XHU3MTRmXHU5MzYyXHV7MjQyYzF9XHU3MTJjXHV7MjQ0NWF9XHV7MjRhMjd9XHV7MjRhMjJ9XHU3MWJhXHV7MjhiZTh9XHU3MGJkXHU3MjBlIl0sWyJmZTQwIiwiXHU5NDQyXHU3MjE1XHU1OTExXHU5NDQzXHU3MjI0XHU5MzQxXHV7MjU2MDV9''@;'; + put 'put ''XHU3MjJlXHU3MjQwXHV7MjQ5NzR9XHU2OGJkXHU3MjU1XHU3MjU3XHUzZTU1XHV7MjMwNDR9XHU2ODBkXHU2ZjNkXHU3MjgyXHU3MzJhXHU3MzJiXHV7MjQ4MjN9XHV7Mjg4MmJ9XHU0OGVkXHV7Mjg4MDR9XHU3MzI4XHU3MzJlXHU3M2NmXHU3M2FhXHV7MjBjM2F9XHV7MjZhMmV9XHU3M2M5''@;'; + put 'put ''XHU3NDQ5XHV7MjQxZTJ9XHV7MjE2ZTd9XHV7MjRhMjR9XHU2NjIzXHUzNmM1XHV7MjQ5Yjd9XHV7MjQ5OGR9XHV7MjQ5ZmJ9XHU3M2Y3XHU3NDE1XHU2OTAzXHV7MjRhMjZ9XHU3NDM5XHV7MjA1YzN9XHUzZWQ3XHU3NDVjXHV7MjI4YWR9XHU3NDYwXHV7MjhlYjJ9XHU3NDQ3XHU3M2U0XHU3''@;'; + put 'put ''NDc2XHU4M2I5XHU3NDZjXHUzNzMwXHU3NDc0XHU5M2YxXHU2YTJjXHU3NDgyXHU0OTUzXHV7MjRhOGN9Il0sWyJmZWExIiwiXHV7MjQxNWZ9XHV7MjRhNzl9XHV7MjhiOGZ9XHU1YjQ2XHV7MjhjMDN9XHV7MjE4OWV9XHU3NGM4XHV7MjE5ODh9XHU3NTBlXHU3NGU5XHU3NTFlXHV7MjhlZDl9''@;'; + put 'put ''XHV7MjFhNGJ9XHU1YmQ3XHV7MjhlYWN9XHU5Mzg1XHU3NTRkXHU3NTRhXHU3NTY3XHU3NTZlXHV7MjRmODJ9XHUzZjA0XHV7MjRkMTN9XHU3NThlXHU3NDVkXHU3NTllXHU3NWI0XHU3NjAyXHU3NjJjXHU3NjUxXHU3NjRmXHU3NjZmXHU3Njc2XHV7MjYzZjV9XHU3NjkwXHU4MWVmXHUzN2Y4''@;'; + put 'put ''XHV7MjY5MTF9XHV7MjY5MGV9XHU3NmExXHU3NmE1XHU3NmI3XHU3NmNjXHV7MjZmOWZ9XHU4NDYyXHV7MjUwOWR9XHV7MjUxN2R9XHV7MjFlMWN9XHU3NzFlXHU3NzI2XHU3NzQwXHU2NGFmXHV7MjUyMjB9XHU3NzU4XHV7MjMyYWN9XHU3N2FmXHV7Mjg5NjR9XHV7Mjg5Njh9XHV7MjE2YzF9''@;'; + put 'put ''XHU3N2Y0XHU3ODA5XHV7MjEzNzZ9XHV7MjRhMTJ9XHU2OGNhXHU3OGFmXHU3OGM3XHU3OGQzXHU5NmE1XHU3OTJlXHV7MjU1ZTB9XHU3OGQ3XHU3OTM0XHU3OGIxXHV7Mjc2MGN9XHU4ZmI4XHU4ODg0XHV7MjhiMmJ9XHV7MjYwODN9XHV7MjI2MWN9XHU3OTg2XHU4OTAwXHU2OTAyXHU3OTgw''@;'; + put 'put ''XHV7MjU4NTd9XHU3OTlkXHV7MjdiMzl9XHU3OTNjXHU3OWE5XHU2ZTJhXHV7MjcxMjZ9XHUzZWE4XHU3OWM2XHV7MjkxMGR9XHU3OWQ0Il1dJyl9LDEzMzM2OlhlPT57InVzZSBzdHJpY3QiO1hlLmV4cG9ydHM9SlNPTi5wYXJzZSgnW1siMCIsIlxcdTAwMDAiLDEyNywiXHUyMGFjIl0sWyI4''@;'; + put 'put ''MTQwIiwiXHU0ZTAyXHU0ZTA0XHU0ZTA1XHU0ZTA2XHU0ZTBmXHU0ZTEyXHU0ZTE3XHU0ZTFmXHU0ZTIwXHU0ZTIxXHU0ZTIzXHU0ZTI2XHU0ZTI5XHU0ZTJlXHU0ZTJmXHU0ZTMxXHU0ZTMzXHU0ZTM1XHU0ZTM3XHU0ZTNjXHU0ZTQwXHU0ZTQxXHU0ZTQyXHU0ZTQ0XHU0ZTQ2XHU0ZTRhXHU0''@;'; + put 'put ''ZTUxXHU0ZTU1XHU0ZTU3XHU0ZTVhXHU0ZTViXHU0ZTYyXHU0ZTYzXHU0ZTY0XHU0ZTY1XHU0ZTY3XHU0ZTY4XHU0ZTZhIiw1LCJcdTRlNzJcdTRlNzQiLDksIlx1NGU3ZiIsNiwiXHU0ZTg3XHU0ZThhIl0sWyI4MTgwIiwiXHU0ZTkwXHU0ZTk2XHU0ZTk3XHU0ZTk5XHU0ZTljXHU0ZTlkXHU0''@;'; + put 'put ''ZTllXHU0ZWEzXHU0ZWFhXHU0ZWFmXHU0ZWIwXHU0ZWIxXHU0ZWI0XHU0ZWI2XHU0ZWI3XHU0ZWI4XHU0ZWI5XHU0ZWJjXHU0ZWJkXHU0ZWJlXHU0ZWM4XHU0ZWNjXHU0ZWNmXHU0ZWQwXHU0ZWQyXHU0ZWRhXHU0ZWRiXHU0ZWRjXHU0ZWUwXHU0ZWUyXHU0ZWU2XHU0ZWU3XHU0ZWU5XHU0ZWVk''@;'; + put 'put ''XHU0ZWVlXHU0ZWVmXHU0ZWYxXHU0ZWY0XHU0ZWY4XHU0ZWY5XHU0ZWZhXHU0ZWZjXHU0ZWZlXHU0ZjAwXHU0ZjAyIiw2LCJcdTRmMGJcdTRmMGNcdTRmMTIiLDQsIlx1NGYxY1x1NGYxZFx1NGYyMVx1NGYyM1x1NGYyOFx1NGYyOVx1NGYyY1x1NGYyZFx1NGYyZVx1NGYzMVx1NGYzM1x1NGYz''@;'; + put 'put ''NVx1NGYzN1x1NGYzOVx1NGYzYlx1NGYzZSIsNCwiXHU0ZjQ0XHU0ZjQ1XHU0ZjQ3Iiw1LCJcdTRmNTJcdTRmNTRcdTRmNTZcdTRmNjFcdTRmNjJcdTRmNjZcdTRmNjhcdTRmNmFcdTRmNmJcdTRmNmRcdTRmNmVcdTRmNzFcdTRmNzJcdTRmNzVcdTRmNzdcdTRmNzhcdTRmNzlcdTRmN2FcdTRm''@;'; + put 'put ''N2RcdTRmODBcdTRmODFcdTRmODJcdTRmODVcdTRmODZcdTRmODdcdTRmOGFcdTRmOGNcdTRmOGVcdTRmOTBcdTRmOTJcdTRmOTNcdTRmOTVcdTRmOTZcdTRmOThcdTRmOTlcdTRmOWFcdTRmOWNcdTRmOWVcdTRmOWZcdTRmYTFcdTRmYTIiXSxbIjgyNDAiLCJcdTRmYTRcdTRmYWJcdTRmYWRc''@;'; + put 'put ''dTRmYjAiLDQsIlx1NGZiNiIsOCwiXHU0ZmMwXHU0ZmMxXHU0ZmMyXHU0ZmM2XHU0ZmM3XHU0ZmM4XHU0ZmM5XHU0ZmNiXHU0ZmNjXHU0ZmNkXHU0ZmQyIiw0LCJcdTRmZDlcdTRmZGJcdTRmZTBcdTRmZTJcdTRmZTRcdTRmZTVcdTRmZTdcdTRmZWJcdTRmZWNcdTRmZjBcdTRmZjJcdTRmZjRc''@;'; + put 'put ''dTRmZjVcdTRmZjZcdTRmZjdcdTRmZjlcdTRmZmJcdTRmZmNcdTRmZmRcdTRmZmYiLDExXSxbIjgyODAiLCJcdTUwMGJcdTUwMGVcdTUwMTBcdTUwMTFcdTUwMTNcdTUwMTVcdTUwMTZcdTUwMTdcdTUwMWJcdTUwMWRcdTUwMWVcdTUwMjBcdTUwMjJcdTUwMjNcdTUwMjRcdTUwMjdcdTUwMmJc''@;'; + put 'put ''dTUwMmYiLDEwLCJcdTUwM2JcdTUwM2RcdTUwM2ZcdTUwNDBcdTUwNDFcdTUwNDJcdTUwNDRcdTUwNDVcdTUwNDZcdTUwNDlcdTUwNGFcdTUwNGJcdTUwNGRcdTUwNTAiLDQsIlx1NTA1Nlx1NTA1N1x1NTA1OFx1NTA1OVx1NTA1Ylx1NTA1ZCIsNywiXHU1MDY2Iiw1LCJcdTUwNmQiLDgsIlx1''@;'; + put 'put ''NTA3OFx1NTA3OVx1NTA3YVx1NTA3Y1x1NTA3ZFx1NTA4MVx1NTA4Mlx1NTA4M1x1NTA4NFx1NTA4Nlx1NTA4N1x1NTA4OVx1NTA4YVx1NTA4Ylx1NTA4Y1x1NTA4ZSIsMjAsIlx1NTBhNFx1NTBhNlx1NTBhYVx1NTBhYlx1NTBhZCIsNCwiXHU1MGIzIiw2LCJcdTUwYmMiXSxbIjgzNDAiLCJc''@;'; + put 'put ''dTUwYmQiLDE3LCJcdTUwZDAiLDUsIlx1NTBkN1x1NTBkOFx1NTBkOVx1NTBkYiIsMTAsIlx1NTBlOFx1NTBlOVx1NTBlYVx1NTBlYlx1NTBlZlx1NTBmMFx1NTBmMVx1NTBmMlx1NTBmNFx1NTBmNiIsNCwiXHU1MGZjIiw5LCJcdTUxMDgiXSxbIjgzODAiLCJcdTUxMDlcdTUxMGFcdTUxMGMi''@;'; + put 'put ''LDUsIlx1NTExMyIsMTMsIlx1NTEyMiIsMjgsIlx1NTE0Mlx1NTE0N1x1NTE0YVx1NTE0Y1x1NTE0ZVx1NTE0Zlx1NTE1MFx1NTE1Mlx1NTE1M1x1NTE1N1x1NTE1OFx1NTE1OVx1NTE1Ylx1NTE1ZCIsNCwiXHU1MTYzXHU1MTY0XHU1MTY2XHU1MTY3XHU1MTY5XHU1MTZhXHU1MTZmXHU1MTcy''@;'; + put 'put ''XHU1MTdhXHU1MTdlXHU1MTdmXHU1MTgzXHU1MTg0XHU1MTg2XHU1MTg3XHU1MThhXHU1MThiXHU1MThlXHU1MThmXHU1MTkwXHU1MTkxXHU1MTkzXHU1MTk0XHU1MTk4XHU1MTlhXHU1MTlkXHU1MTllXHU1MTlmXHU1MWExXHU1MWEzXHU1MWE2Iiw0LCJcdTUxYWRcdTUxYWVcdTUxYjRcdTUx''@;'; + put 'put ''YjhcdTUxYjlcdTUxYmFcdTUxYmVcdTUxYmZcdTUxYzFcdTUxYzJcdTUxYzNcdTUxYzVcdTUxYzhcdTUxY2FcdTUxY2RcdTUxY2VcdTUxZDBcdTUxZDIiLDVdLFsiODQ0MCIsIlx1NTFkOFx1NTFkOVx1NTFkYVx1NTFkY1x1NTFkZVx1NTFkZlx1NTFlMlx1NTFlM1x1NTFlNSIsNSwiXHU1MWVj''@;'; + put 'put ''XHU1MWVlXHU1MWYxXHU1MWYyXHU1MWY0XHU1MWY3XHU1MWZlXHU1MjA0XHU1MjA1XHU1MjA5XHU1MjBiXHU1MjBjXHU1MjBmXHU1MjEwXHU1MjEzXHU1MjE0XHU1MjE1XHU1MjFjXHU1MjFlXHU1MjFmXHU1MjIxXHU1MjIyXHU1MjIzXHU1MjI1XHU1MjI2XHU1MjI3XHU1MjJhXHU1MjJjXHU1''@;'; + put 'put ''MjJmXHU1MjMxXHU1MjMyXHU1MjM0XHU1MjM1XHU1MjNjXHU1MjNlXHU1MjQ0Iiw1LCJcdTUyNGJcdTUyNGVcdTUyNGZcdTUyNTJcdTUyNTNcdTUyNTVcdTUyNTdcdTUyNTgiXSxbIjg0ODAiLCJcdTUyNTlcdTUyNWFcdTUyNWJcdTUyNWRcdTUyNWZcdTUyNjBcdTUyNjJcdTUyNjNcdTUyNjRc''@;'; + put 'put ''dTUyNjZcdTUyNjhcdTUyNmJcdTUyNmNcdTUyNmRcdTUyNmVcdTUyNzBcdTUyNzFcdTUyNzMiLDksIlx1NTI3ZVx1NTI4MFx1NTI4MyIsNCwiXHU1Mjg5Iiw2LCJcdTUyOTFcdTUyOTJcdTUyOTQiLDYsIlx1NTI5Y1x1NTJhNFx1NTJhNVx1NTJhNlx1NTJhN1x1NTJhZVx1NTJhZlx1NTJiMFx1''@;'; + put 'put ''NTJiNCIsOSwiXHU1MmMwXHU1MmMxXHU1MmMyXHU1MmM0XHU1MmM1XHU1MmM2XHU1MmM4XHU1MmNhXHU1MmNjXHU1MmNkXHU1MmNlXHU1MmNmXHU1MmQxXHU1MmQzXHU1MmQ0XHU1MmQ1XHU1MmQ3XHU1MmQ5Iiw1LCJcdTUyZTBcdTUyZTFcdTUyZTJcdTUyZTNcdTUyZTUiLDEwLCJcdTUyZjEi''@;'; + put 'put ''LDcsIlx1NTJmYlx1NTJmY1x1NTJmZFx1NTMwMVx1NTMwMlx1NTMwM1x1NTMwNFx1NTMwN1x1NTMwOVx1NTMwYVx1NTMwYlx1NTMwY1x1NTMwZSJdLFsiODU0MCIsIlx1NTMxMVx1NTMxMlx1NTMxM1x1NTMxNFx1NTMxOFx1NTMxYlx1NTMxY1x1NTMxZVx1NTMxZlx1NTMyMlx1NTMyNFx1NTMy''@;'; + put 'put ''NVx1NTMyN1x1NTMyOFx1NTMyOVx1NTMyYlx1NTMyY1x1NTMyZFx1NTMyZiIsOSwiXHU1MzNjXHU1MzNkXHU1MzQwXHU1MzQyXHU1MzQ0XHU1MzQ2XHU1MzRiXHU1MzRjXHU1MzRkXHU1MzUwXHU1MzU0XHU1MzU4XHU1MzU5XHU1MzViXHU1MzVkXHU1MzY1XHU1MzY4XHU1MzZhXHU1MzZjXHU1''@;'; + put 'put ''MzZkXHU1MzcyXHU1Mzc2XHU1Mzc5XHU1MzdiXHU1MzdjXHU1MzdkXHU1MzdlXHU1MzgwXHU1MzgxXHU1MzgzXHU1Mzg3XHU1Mzg4XHU1MzhhXHU1MzhlXHU1MzhmIl0sWyI4NTgwIiwiXHU1MzkwIiw0LCJcdTUzOTZcdTUzOTdcdTUzOTlcdTUzOWJcdTUzOWNcdTUzOWVcdTUzYTBcdTUzYTFc''@;'; + put 'put ''dTUzYTRcdTUzYTdcdTUzYWFcdTUzYWJcdTUzYWNcdTUzYWRcdTUzYWYiLDYsIlx1NTNiN1x1NTNiOFx1NTNiOVx1NTNiYVx1NTNiY1x1NTNiZFx1NTNiZVx1NTNjMFx1NTNjMyIsNCwiXHU1M2NlXHU1M2NmXHU1M2QwXHU1M2QyXHU1M2QzXHU1M2Q1XHU1M2RhXHU1M2RjXHU1M2RkXHU1M2Rl''@;'; + put 'put ''XHU1M2UxXHU1M2UyXHU1M2U3XHU1M2Y0XHU1M2ZhXHU1M2ZlXHU1M2ZmXHU1NDAwXHU1NDAyXHU1NDA1XHU1NDA3XHU1NDBiXHU1NDE0XHU1NDE4XHU1NDE5XHU1NDFhXHU1NDFjXHU1NDIyXHU1NDI0XHU1NDI1XHU1NDJhXHU1NDMwXHU1NDMzXHU1NDM2XHU1NDM3XHU1NDNhXHU1NDNkXHU1''@;'; + put 'put ''NDNmXHU1NDQxXHU1NDQyXHU1NDQ0XHU1NDQ1XHU1NDQ3XHU1NDQ5XHU1NDRjXHU1NDRkXHU1NDRlXHU1NDRmXHU1NDUxXHU1NDVhXHU1NDVkIiw0LCJcdTU0NjNcdTU0NjVcdTU0NjdcdTU0NjkiLDcsIlx1NTQ3NFx1NTQ3OVx1NTQ3YVx1NTQ3ZVx1NTQ3Zlx1NTQ4MVx1NTQ4M1x1NTQ4NVx1''@;'; + put 'put ''NTQ4N1x1NTQ4OFx1NTQ4OVx1NTQ4YVx1NTQ4ZFx1NTQ5MVx1NTQ5M1x1NTQ5N1x1NTQ5OFx1NTQ5Y1x1NTQ5ZVx1NTQ5Zlx1NTRhMFx1NTRhMSJdLFsiODY0MCIsIlx1NTRhMlx1NTRhNVx1NTRhZVx1NTRiMFx1NTRiMlx1NTRiNVx1NTRiNlx1NTRiN1x1NTRiOVx1NTRiYVx1NTRiY1x1NTRi''@;'; + put 'put ''ZVx1NTRjM1x1NTRjNVx1NTRjYVx1NTRjYlx1NTRkNlx1NTRkOFx1NTRkYlx1NTRlMCIsNCwiXHU1NGViXHU1NGVjXHU1NGVmXHU1NGYwXHU1NGYxXHU1NGY0Iiw1LCJcdTU0ZmJcdTU0ZmVcdTU1MDBcdTU1MDJcdTU1MDNcdTU1MDRcdTU1MDVcdTU1MDhcdTU1MGEiLDQsIlx1NTUxMlx1NTUx''@;'; + put 'put ''M1x1NTUxNSIsNSwiXHU1NTFjXHU1NTFkXHU1NTFlXHU1NTFmXHU1NTIxXHU1NTI1XHU1NTI2Il0sWyI4NjgwIiwiXHU1NTI4XHU1NTI5XHU1NTJiXHU1NTJkXHU1NTMyXHU1NTM0XHU1NTM1XHU1NTM2XHU1NTM4XHU1NTM5XHU1NTNhXHU1NTNiXHU1NTNkXHU1NTQwXHU1NTQyXHU1NTQ1XHU1''@;'; + put 'put ''NTQ3XHU1NTQ4XHU1NTRiIiw0LCJcdTU1NTFcdTU1NTJcdTU1NTNcdTU1NTRcdTU1NTciLDQsIlx1NTU1ZFx1NTU1ZVx1NTU1Zlx1NTU2MFx1NTU2Mlx1NTU2M1x1NTU2OFx1NTU2OVx1NTU2Ylx1NTU2ZiIsNSwiXHU1NTc5XHU1NTdhXHU1NTdkXHU1NTdmXHU1NTg1XHU1NTg2XHU1NThjXHU1''@;'; + put 'put ''NThkXHU1NThlXHU1NTkwXHU1NTkyXHU1NTkzXHU1NTk1XHU1NTk2XHU1NTk3XHU1NTlhXHU1NTliXHU1NTllXHU1NWEwIiw2LCJcdTU1YTgiLDgsIlx1NTViMlx1NTViNFx1NTViNlx1NTViOFx1NTViYVx1NTViY1x1NTViZiIsNCwiXHU1NWM2XHU1NWM3XHU1NWM4XHU1NWNhXHU1NWNiXHU1''@;'; + put 'put ''NWNlXHU1NWNmXHU1NWQwXHU1NWQ1XHU1NWQ3Iiw0LCJcdTU1ZGVcdTU1ZTBcdTU1ZTJcdTU1ZTdcdTU1ZTlcdTU1ZWRcdTU1ZWVcdTU1ZjBcdTU1ZjFcdTU1ZjRcdTU1ZjZcdTU1ZjgiLDQsIlx1NTVmZlx1NTYwMlx1NTYwM1x1NTYwNFx1NTYwNSJdLFsiODc0MCIsIlx1NTYwNlx1NTYwN1x1''@;'; + put 'put ''NTYwYVx1NTYwYlx1NTYwZFx1NTYxMCIsNywiXHU1NjE5XHU1NjFhXHU1NjFjXHU1NjFkXHU1NjIwXHU1NjIxXHU1NjIyXHU1NjI1XHU1NjI2XHU1NjI4XHU1NjI5XHU1NjJhXHU1NjJiXHU1NjJlXHU1NjJmXHU1NjMwXHU1NjMzXHU1NjM1XHU1NjM3XHU1NjM4XHU1NjNhXHU1NjNjXHU1NjNk''@;'; + put 'put ''XHU1NjNlXHU1NjQwIiwxMSwiXHU1NjRmIiw0LCJcdTU2NTVcdTU2NTZcdTU2NWFcdTU2NWJcdTU2NWQiLDRdLFsiODc4MCIsIlx1NTY2M1x1NTY2NVx1NTY2Nlx1NTY2N1x1NTY2ZFx1NTY2ZVx1NTY2Zlx1NTY3MFx1NTY3Mlx1NTY3M1x1NTY3NFx1NTY3NVx1NTY3N1x1NTY3OFx1NTY3OVx1''@;'; + put 'put ''NTY3YVx1NTY3ZCIsNywiXHU1Njg3Iiw2LCJcdTU2OTBcdTU2OTFcdTU2OTJcdTU2OTQiLDE0LCJcdTU2YTQiLDEwLCJcdTU2YjAiLDYsIlx1NTZiOFx1NTZiOVx1NTZiYVx1NTZiYlx1NTZiZCIsMTIsIlx1NTZjYiIsOCwiXHU1NmQ1XHU1NmQ2XHU1NmQ4XHU1NmQ5XHU1NmRjXHU1NmUzXHU1''@;'; + put 'put ''NmU1Iiw1LCJcdTU2ZWNcdTU2ZWVcdTU2ZWZcdTU2ZjJcdTU2ZjNcdTU2ZjZcdTU2ZjdcdTU2ZjhcdTU2ZmJcdTU2ZmNcdTU3MDBcdTU3MDFcdTU3MDJcdTU3MDVcdTU3MDdcdTU3MGIiLDZdLFsiODg0MCIsIlx1NTcxMiIsOSwiXHU1NzFkXHU1NzFlXHU1NzIwXHU1NzIxXHU1NzIyXHU1NzI0''@;'; + put 'put ''XHU1NzI1XHU1NzI2XHU1NzI3XHU1NzJiXHU1NzMxXHU1NzMyXHU1NzM0Iiw0LCJcdTU3M2NcdTU3M2RcdTU3M2ZcdTU3NDFcdTU3NDNcdTU3NDRcdTU3NDVcdTU3NDZcdTU3NDhcdTU3NDlcdTU3NGJcdTU3NTIiLDQsIlx1NTc1OFx1NTc1OVx1NTc2Mlx1NTc2M1x1NTc2NVx1NTc2N1x1NTc2''@;'; + put 'put ''Y1x1NTc2ZVx1NTc3MFx1NTc3MVx1NTc3Mlx1NTc3NFx1NTc3NVx1NTc3OFx1NTc3OVx1NTc3YVx1NTc3ZFx1NTc3ZVx1NTc3Zlx1NTc4MCJdLFsiODg4MCIsIlx1NTc4MVx1NTc4N1x1NTc4OFx1NTc4OVx1NTc4YVx1NTc4ZCIsNCwiXHU1Nzk0Iiw2LCJcdTU3OWNcdTU3OWRcdTU3OWVcdTU3''@;'; + put 'put ''OWZcdTU3YTVcdTU3YThcdTU3YWFcdTU3YWNcdTU3YWZcdTU3YjBcdTU3YjFcdTU3YjNcdTU3YjVcdTU3YjZcdTU3YjdcdTU3YjkiLDgsIlx1NTdjNCIsNiwiXHU1N2NjXHU1N2NkXHU1N2QwXHU1N2QxXHU1N2QzXHU1N2Q2XHU1N2Q3XHU1N2RiXHU1N2RjXHU1N2RlXHU1N2UxXHU1N2UyXHU1''@;'; + put 'put ''N2UzXHU1N2U1Iiw3LCJcdTU3ZWVcdTU3ZjBcdTU3ZjFcdTU3ZjJcdTU3ZjNcdTU3ZjVcdTU3ZjZcdTU3ZjdcdTU3ZmJcdTU3ZmNcdTU3ZmVcdTU3ZmZcdTU4MDFcdTU4MDNcdTU4MDRcdTU4MDVcdTU4MDhcdTU4MDlcdTU4MGFcdTU4MGNcdTU4MGVcdTU4MGZcdTU4MTBcdTU4MTJcdTU4MTNc''@;'; + put 'put ''dTU4MTRcdTU4MTZcdTU4MTdcdTU4MThcdTU4MWFcdTU4MWJcdTU4MWNcdTU4MWRcdTU4MWZcdTU4MjJcdTU4MjNcdTU4MjUiLDQsIlx1NTgyYiIsNCwiXHU1ODMxXHU1ODMyXHU1ODMzXHU1ODM0XHU1ODM2Iiw3XSxbIjg5NDAiLCJcdTU4M2UiLDUsIlx1NTg0NSIsNiwiXHU1ODRlXHU1ODRm''@;'; + put 'put ''XHU1ODUwXHU1ODUyXHU1ODUzXHU1ODU1XHU1ODU2XHU1ODU3XHU1ODU5Iiw0LCJcdTU4NWYiLDUsIlx1NTg2NiIsNCwiXHU1ODZkIiwxNiwiXHU1ODdmXHU1ODgyXHU1ODg0XHU1ODg2XHU1ODg3XHU1ODg4XHU1ODhhXHU1ODhiXHU1ODhjIl0sWyI4OTgwIiwiXHU1ODhkIiw0LCJcdTU4OTQi''@;'; + put 'put ''LDQsIlx1NTg5Ylx1NTg5Y1x1NTg5ZFx1NThhMCIsNywiXHU1OGFhIiwxNywiXHU1OGJkXHU1OGJlXHU1OGJmXHU1OGMwXHU1OGMyXHU1OGMzXHU1OGM0XHU1OGM2IiwxMCwiXHU1OGQyXHU1OGQzXHU1OGQ0XHU1OGQ2IiwxMywiXHU1OGU1Iiw1LCJcdTU4ZWRcdTU4ZWZcdTU4ZjFcdTU4ZjJc''@;'; + put 'put ''dTU4ZjRcdTU4ZjVcdTU4ZjdcdTU4ZjhcdTU4ZmEiLDcsIlx1NTkwM1x1NTkwNVx1NTkwNlx1NTkwOCIsNCwiXHU1OTBlXHU1OTEwXHU1OTExXHU1OTEyXHU1OTEzXHU1OTE3XHU1OTE4XHU1OTFiXHU1OTFkXHU1OTFlXHU1OTIwXHU1OTIxXHU1OTIyXHU1OTIzXHU1OTI2XHU1OTI4XHU1OTJj''@;'; + put 'put ''XHU1OTMwXHU1OTMyXHU1OTMzXHU1OTM1XHU1OTM2XHU1OTNiIl0sWyI4YTQwIiwiXHU1OTNkXHU1OTNlXHU1OTNmXHU1OTQwXHU1OTQzXHU1OTQ1XHU1OTQ2XHU1OTRhXHU1OTRjXHU1OTRkXHU1OTUwXHU1OTUyXHU1OTUzXHU1OTU5XHU1OTViIiw0LCJcdTU5NjFcdTU5NjNcdTU5NjRcdTU5''@;'; + put 'put ''NjYiLDEyLCJcdTU5NzVcdTU5NzdcdTU5N2FcdTU5N2JcdTU5N2NcdTU5N2VcdTU5N2ZcdTU5ODBcdTU5ODVcdTU5ODlcdTU5OGJcdTU5OGNcdTU5OGVcdTU5OGZcdTU5OTBcdTU5OTFcdTU5OTRcdTU5OTVcdTU5OThcdTU5OWFcdTU5OWJcdTU5OWNcdTU5OWRcdTU5OWZcdTU5YTBcdTU5YTFc''@;'; + put 'put ''dTU5YTJcdTU5YTYiXSxbIjhhODAiLCJcdTU5YTdcdTU5YWNcdTU5YWRcdTU5YjBcdTU5YjFcdTU5YjMiLDUsIlx1NTliYVx1NTliY1x1NTliZFx1NTliZiIsNiwiXHU1OWM3XHU1OWM4XHU1OWM5XHU1OWNjXHU1OWNkXHU1OWNlXHU1OWNmXHU1OWQ1XHU1OWQ2XHU1OWQ5XHU1OWRiXHU1OWRl''@;'; + put 'put ''Iiw0LCJcdTU5ZTRcdTU5ZTZcdTU5ZTdcdTU5ZTlcdTU5ZWFcdTU5ZWJcdTU5ZWQiLDExLCJcdTU5ZmFcdTU5ZmNcdTU5ZmRcdTU5ZmVcdTVhMDBcdTVhMDJcdTVhMGFcdTVhMGJcdTVhMGRcdTVhMGVcdTVhMGZcdTVhMTBcdTVhMTJcdTVhMTRcdTVhMTVcdTVhMTZcdTVhMTdcdTVhMTlcdTVh''@;'; + put 'put ''MWFcdTVhMWJcdTVhMWRcdTVhMWVcdTVhMjFcdTVhMjJcdTVhMjRcdTVhMjZcdTVhMjdcdTVhMjhcdTVhMmEiLDYsIlx1NWEzM1x1NWEzNVx1NWEzNyIsNCwiXHU1YTNkXHU1YTNlXHU1YTNmXHU1YTQxIiw0LCJcdTVhNDdcdTVhNDhcdTVhNGIiLDksIlx1NWE1Nlx1NWE1N1x1NWE1OFx1NWE1''@;'; + put 'put ''OVx1NWE1YiIsNV0sWyI4YjQwIiwiXHU1YTYxXHU1YTYzXHU1YTY0XHU1YTY1XHU1YTY2XHU1YTY4XHU1YTY5XHU1YTZiIiw4LCJcdTVhNzhcdTVhNzlcdTVhN2JcdTVhN2NcdTVhN2RcdTVhN2VcdTVhODAiLDE3LCJcdTVhOTMiLDYsIlx1NWE5YyIsMTMsIlx1NWFhYlx1NWFhYyJdLFsiOGI4''@;'; + put 'put ''MCIsIlx1NWFhZCIsNCwiXHU1YWI0XHU1YWI2XHU1YWI3XHU1YWI5Iiw0LCJcdTVhYmZcdTVhYzBcdTVhYzMiLDUsIlx1NWFjYVx1NWFjYlx1NWFjZCIsNCwiXHU1YWQzXHU1YWQ1XHU1YWQ3XHU1YWQ5XHU1YWRhXHU1YWRiXHU1YWRkXHU1YWRlXHU1YWRmXHU1YWUyXHU1YWU0XHU1YWU1XHU1''@;'; + put 'put ''YWU3XHU1YWU4XHU1YWVhXHU1YWVjIiw0LCJcdTVhZjIiLDIyLCJcdTViMGEiLDExLCJcdTViMTgiLDI1LCJcdTViMzNcdTViMzVcdTViMzZcdTViMzgiLDcsIlx1NWI0MSIsNl0sWyI4YzQwIiwiXHU1YjQ4Iiw3LCJcdTViNTJcdTViNTZcdTViNWVcdTViNjBcdTViNjFcdTViNjdcdTViNjhc''@;'; + put 'put ''dTViNmJcdTViNmRcdTViNmVcdTViNmZcdTViNzJcdTViNzRcdTViNzZcdTViNzdcdTViNzhcdTViNzlcdTViN2JcdTViN2NcdTViN2VcdTViN2ZcdTViODJcdTViODZcdTViOGFcdTViOGRcdTViOGVcdTViOTBcdTViOTFcdTViOTJcdTViOTRcdTViOTZcdTViOWZcdTViYTdcdTViYThcdTVi''@;'; + put 'put ''YTlcdTViYWNcdTViYWRcdTViYWVcdTViYWZcdTViYjFcdTViYjJcdTViYjdcdTViYmFcdTViYmJcdTViYmNcdTViYzBcdTViYzFcdTViYzNcdTViYzhcdTViYzlcdTViY2FcdTViY2JcdTViY2RcdTViY2VcdTViY2YiXSxbIjhjODAiLCJcdTViZDFcdTViZDQiLDgsIlx1NWJlMFx1NWJlMlx1''@;'; + put 'put ''NWJlM1x1NWJlNlx1NWJlN1x1NWJlOSIsNCwiXHU1YmVmXHU1YmYxIiw2LCJcdTViZmRcdTViZmVcdTVjMDBcdTVjMDJcdTVjMDNcdTVjMDVcdTVjMDdcdTVjMDhcdTVjMGJcdTVjMGNcdTVjMGRcdTVjMGVcdTVjMTBcdTVjMTJcdTVjMTNcdTVjMTdcdTVjMTlcdTVjMWJcdTVjMWVcdTVjMWZc''@;'; + put 'put ''dTVjMjBcdTVjMjFcdTVjMjNcdTVjMjZcdTVjMjhcdTVjMjlcdTVjMmFcdTVjMmJcdTVjMmRcdTVjMmVcdTVjMmZcdTVjMzBcdTVjMzJcdTVjMzNcdTVjMzVcdTVjMzZcdTVjMzdcdTVjNDNcdTVjNDRcdTVjNDZcdTVjNDdcdTVjNGNcdTVjNGRcdTVjNTJcdTVjNTNcdTVjNTRcdTVjNTZcdTVj''@;'; + put 'put ''NTdcdTVjNThcdTVjNWFcdTVjNWJcdTVjNWNcdTVjNWRcdTVjNWZcdTVjNjJcdTVjNjRcdTVjNjciLDYsIlx1NWM3MFx1NWM3MiIsNiwiXHU1YzdiXHU1YzdjXHU1YzdkXHU1YzdlXHU1YzgwXHU1YzgzIiw0LCJcdTVjODlcdTVjOGFcdTVjOGJcdTVjOGVcdTVjOGZcdTVjOTJcdTVjOTNcdTVj''@;'; + put 'put ''OTVcdTVjOWQiLDQsIlx1NWNhNCIsNF0sWyI4ZDQwIiwiXHU1Y2FhXHU1Y2FlXHU1Y2FmXHU1Y2IwXHU1Y2IyXHU1Y2I0XHU1Y2I2XHU1Y2I5XHU1Y2JhXHU1Y2JiXHU1Y2JjXHU1Y2JlXHU1Y2MwXHU1Y2MyXHU1Y2MzXHU1Y2M1Iiw1LCJcdTVjY2MiLDUsIlx1NWNkMyIsNSwiXHU1Y2RhIiw2''@;'; + put 'put ''LCJcdTVjZTJcdTVjZTNcdTVjZTdcdTVjZTlcdTVjZWJcdTVjZWNcdTVjZWVcdTVjZWZcdTVjZjEiLDksIlx1NWNmYyIsNF0sWyI4ZDgwIiwiXHU1ZDAxXHU1ZDA0XHU1ZDA1XHU1ZDA4Iiw1LCJcdTVkMGYiLDQsIlx1NWQxNVx1NWQxN1x1NWQxOFx1NWQxOVx1NWQxYVx1NWQxY1x1NWQxZFx1''@;'; + put 'put ''NWQxZiIsNCwiXHU1ZDI1XHU1ZDI4XHU1ZDJhXHU1ZDJiXHU1ZDJjXHU1ZDJmIiw0LCJcdTVkMzUiLDcsIlx1NWQzZiIsNywiXHU1ZDQ4XHU1ZDQ5XHU1ZDRkIiwxMCwiXHU1ZDU5XHU1ZDVhXHU1ZDVjXHU1ZDVlIiwxMCwiXHU1ZDZhXHU1ZDZkXHU1ZDZlXHU1ZDcwXHU1ZDcxXHU1ZDcyXHU1''@;'; + put 'put ''ZDczXHU1ZDc1IiwxMiwiXHU1ZDgzIiwyMSwiXHU1ZDlhXHU1ZDliXHU1ZDljXHU1ZDllXHU1ZDlmXHU1ZGEwIl0sWyI4ZTQwIiwiXHU1ZGExIiwyMSwiXHU1ZGI4IiwxMiwiXHU1ZGM2Iiw2LCJcdTVkY2UiLDEyLCJcdTVkZGNcdTVkZGZcdTVkZTBcdTVkZTNcdTVkZTRcdTVkZWFcdTVkZWNc''@;'; + put 'put ''dTVkZWQiXSxbIjhlODAiLCJcdTVkZjBcdTVkZjVcdTVkZjZcdTVkZjgiLDQsIlx1NWRmZlx1NWUwMFx1NWUwNFx1NWUwN1x1NWUwOVx1NWUwYVx1NWUwYlx1NWUwZFx1NWUwZVx1NWUxMlx1NWUxM1x1NWUxN1x1NWUxZSIsNywiXHU1ZTI4Iiw0LCJcdTVlMmZcdTVlMzBcdTVlMzIiLDQsIlx1''@;'; + put 'put ''NWUzOVx1NWUzYVx1NWUzZVx1NWUzZlx1NWU0MFx1NWU0MVx1NWU0M1x1NWU0NiIsNSwiXHU1ZTRkIiw2LCJcdTVlNTYiLDQsIlx1NWU1Y1x1NWU1ZFx1NWU1Zlx1NWU2MFx1NWU2MyIsMTQsIlx1NWU3NVx1NWU3N1x1NWU3OVx1NWU3ZVx1NWU4MVx1NWU4Mlx1NWU4M1x1NWU4NVx1NWU4OFx1''@;'; + put 'put ''NWU4OVx1NWU4Y1x1NWU4ZFx1NWU4ZVx1NWU5Mlx1NWU5OFx1NWU5Ylx1NWU5ZFx1NWVhMVx1NWVhMlx1NWVhM1x1NWVhNFx1NWVhOCIsNCwiXHU1ZWFlIiw0LCJcdTVlYjRcdTVlYmFcdTVlYmJcdTVlYmNcdTVlYmRcdTVlYmYiLDZdLFsiOGY0MCIsIlx1NWVjNlx1NWVjN1x1NWVjOFx1NWVj''@;'; + put 'put ''YiIsNSwiXHU1ZWQ0XHU1ZWQ1XHU1ZWQ3XHU1ZWQ4XHU1ZWQ5XHU1ZWRhXHU1ZWRjIiwxMSwiXHU1ZWU5XHU1ZWViIiw4LCJcdTVlZjVcdTVlZjhcdTVlZjlcdTVlZmJcdTVlZmNcdTVlZmRcdTVmMDVcdTVmMDZcdTVmMDdcdTVmMDlcdTVmMGNcdTVmMGRcdTVmMGVcdTVmMTBcdTVmMTJcdTVm''@;'; + put 'put ''MTRcdTVmMTZcdTVmMTlcdTVmMWFcdTVmMWNcdTVmMWRcdTVmMWVcdTVmMjFcdTVmMjJcdTVmMjNcdTVmMjQiXSxbIjhmODAiLCJcdTVmMjhcdTVmMmJcdTVmMmNcdTVmMmVcdTVmMzBcdTVmMzIiLDYsIlx1NWYzYlx1NWYzZFx1NWYzZVx1NWYzZlx1NWY0MSIsMTQsIlx1NWY1MVx1NWY1NFx1''@;'; + put 'put ''NWY1OVx1NWY1YVx1NWY1Ylx1NWY1Y1x1NWY1ZVx1NWY1Zlx1NWY2MFx1NWY2M1x1NWY2NVx1NWY2N1x1NWY2OFx1NWY2Ylx1NWY2ZVx1NWY2Zlx1NWY3Mlx1NWY3NFx1NWY3NVx1NWY3Nlx1NWY3OFx1NWY3YVx1NWY3ZFx1NWY3ZVx1NWY3Zlx1NWY4M1x1NWY4Nlx1NWY4ZFx1NWY4ZVx1NWY4''@;'; + put 'put ''Zlx1NWY5MVx1NWY5M1x1NWY5NFx1NWY5Nlx1NWY5YVx1NWY5Ylx1NWY5ZFx1NWY5ZVx1NWY5Zlx1NWZhMFx1NWZhMiIsNSwiXHU1ZmE5XHU1ZmFiXHU1ZmFjXHU1ZmFmIiw1LCJcdTVmYjZcdTVmYjhcdTVmYjlcdTVmYmFcdTVmYmJcdTVmYmUiLDQsIlx1NWZjN1x1NWZjOFx1NWZjYVx1NWZj''@;'; + put 'put ''Ylx1NWZjZVx1NWZkM1x1NWZkNFx1NWZkNVx1NWZkYVx1NWZkYlx1NWZkY1x1NWZkZVx1NWZkZlx1NWZlMlx1NWZlM1x1NWZlNVx1NWZlNlx1NWZlOFx1NWZlOVx1NWZlY1x1NWZlZlx1NWZmMFx1NWZmMlx1NWZmM1x1NWZmNFx1NWZmNlx1NWZmN1x1NWZmOVx1NWZmYVx1NWZmY1x1NjAwNyJd''@;'; + put 'put ''LFsiOTA0MCIsIlx1NjAwOFx1NjAwOVx1NjAwYlx1NjAwY1x1NjAxMFx1NjAxMVx1NjAxM1x1NjAxN1x1NjAxOFx1NjAxYVx1NjAxZVx1NjAxZlx1NjAyMlx1NjAyM1x1NjAyNFx1NjAyY1x1NjAyZFx1NjAyZVx1NjAzMCIsNCwiXHU2MDM2Iiw0LCJcdTYwM2RcdTYwM2VcdTYwNDBcdTYwNDQi''@;'; + put 'put ''LDYsIlx1NjA0Y1x1NjA0ZVx1NjA0Zlx1NjA1MVx1NjA1M1x1NjA1NFx1NjA1Nlx1NjA1N1x1NjA1OFx1NjA1Ylx1NjA1Y1x1NjA1ZVx1NjA1Zlx1NjA2MFx1NjA2MVx1NjA2NVx1NjA2Nlx1NjA2ZVx1NjA3MVx1NjA3Mlx1NjA3NFx1NjA3NVx1NjA3N1x1NjA3ZVx1NjA4MCJdLFsiOTA4MCIs''@;'; + put 'put ''Ilx1NjA4MVx1NjA4Mlx1NjA4NVx1NjA4Nlx1NjA4N1x1NjA4OFx1NjA4YVx1NjA4Ylx1NjA4ZVx1NjA4Zlx1NjA5MFx1NjA5MVx1NjA5M1x1NjA5NVx1NjA5N1x1NjA5OFx1NjA5OVx1NjA5Y1x1NjA5ZVx1NjBhMVx1NjBhMlx1NjBhNFx1NjBhNVx1NjBhN1x1NjBhOVx1NjBhYVx1NjBhZVx1''@;'; + put 'put ''NjBiMFx1NjBiM1x1NjBiNVx1NjBiNlx1NjBiN1x1NjBiOVx1NjBiYVx1NjBiZCIsNywiXHU2MGM3XHU2MGM4XHU2MGM5XHU2MGNjIiw0LCJcdTYwZDJcdTYwZDNcdTYwZDRcdTYwZDZcdTYwZDdcdTYwZDlcdTYwZGJcdTYwZGVcdTYwZTEiLDQsIlx1NjBlYVx1NjBmMVx1NjBmMlx1NjBmNVx1''@;'; + put 'put ''NjBmN1x1NjBmOFx1NjBmYiIsNCwiXHU2MTAyXHU2MTAzXHU2MTA0XHU2MTA1XHU2MTA3XHU2MTBhXHU2MTBiXHU2MTBjXHU2MTEwIiw0LCJcdTYxMTZcdTYxMTdcdTYxMThcdTYxMTlcdTYxMWJcdTYxMWNcdTYxMWRcdTYxMWVcdTYxMjFcdTYxMjJcdTYxMjVcdTYxMjhcdTYxMjlcdTYxMmFc''@;'; + put 'put ''dTYxMmMiLDE4LCJcdTYxNDAiLDZdLFsiOTE0MCIsIlx1NjE0N1x1NjE0OVx1NjE0Ylx1NjE0ZFx1NjE0Zlx1NjE1MFx1NjE1Mlx1NjE1M1x1NjE1NFx1NjE1NiIsNiwiXHU2MTVlXHU2MTVmXHU2MTYwXHU2MTYxXHU2MTYzXHU2MTY0XHU2MTY1XHU2MTY2XHU2MTY5Iiw2LCJcdTYxNzFcdTYx''@;'; + put 'put ''NzJcdTYxNzNcdTYxNzRcdTYxNzZcdTYxNzgiLDE4LCJcdTYxOGNcdTYxOGRcdTYxOGYiLDQsIlx1NjE5NSJdLFsiOTE4MCIsIlx1NjE5NiIsNiwiXHU2MTllIiw4LCJcdTYxYWFcdTYxYWJcdTYxYWQiLDksIlx1NjFiOCIsNSwiXHU2MWJmXHU2MWMwXHU2MWMxXHU2MWMzIiw0LCJcdTYxYzlc''@;'; + put 'put ''dTYxY2MiLDQsIlx1NjFkM1x1NjFkNSIsMTYsIlx1NjFlNyIsMTMsIlx1NjFmNiIsOCwiXHU2MjAwIiw1LCJcdTYyMDdcdTYyMDlcdTYyMTNcdTYyMTRcdTYyMTlcdTYyMWNcdTYyMWRcdTYyMWVcdTYyMjBcdTYyMjNcdTYyMjZcdTYyMjdcdTYyMjhcdTYyMjlcdTYyMmJcdTYyMmRcdTYyMmZc''@;'; + put 'put ''dTYyMzBcdTYyMzFcdTYyMzJcdTYyMzVcdTYyMzZcdTYyMzgiLDQsIlx1NjI0Mlx1NjI0NFx1NjI0NVx1NjI0Nlx1NjI0YSJdLFsiOTI0MCIsIlx1NjI0Zlx1NjI1MFx1NjI1NVx1NjI1Nlx1NjI1N1x1NjI1OVx1NjI1YVx1NjI1YyIsNiwiXHU2MjY0XHU2MjY1XHU2MjY4XHU2MjcxXHU2Mjcy''@;'; + put 'put ''XHU2Mjc0XHU2Mjc1XHU2Mjc3XHU2Mjc4XHU2MjdhXHU2MjdiXHU2MjdkXHU2MjgxXHU2MjgyXHU2MjgzXHU2Mjg1XHU2Mjg2XHU2Mjg3XHU2Mjg4XHU2MjhiIiw1LCJcdTYyOTRcdTYyOTlcdTYyOWNcdTYyOWRcdTYyOWVcdTYyYTNcdTYyYTZcdTYyYTdcdTYyYTlcdTYyYWFcdTYyYWRcdTYy''@;'; + put 'put ''YWVcdTYyYWZcdTYyYjBcdTYyYjJcdTYyYjNcdTYyYjRcdTYyYjZcdTYyYjdcdTYyYjhcdTYyYmFcdTYyYmVcdTYyYzBcdTYyYzEiXSxbIjkyODAiLCJcdTYyYzNcdTYyY2JcdTYyY2ZcdTYyZDFcdTYyZDVcdTYyZGRcdTYyZGVcdTYyZTBcdTYyZTFcdTYyZTRcdTYyZWFcdTYyZWJcdTYyZjBc''@;'; + put 'put ''dTYyZjJcdTYyZjVcdTYyZjhcdTYyZjlcdTYyZmFcdTYyZmJcdTYzMDBcdTYzMDNcdTYzMDRcdTYzMDVcdTYzMDZcdTYzMGFcdTYzMGJcdTYzMGNcdTYzMGRcdTYzMGZcdTYzMTBcdTYzMTJcdTYzMTNcdTYzMTRcdTYzMTVcdTYzMTdcdTYzMThcdTYzMTlcdTYzMWNcdTYzMjZcdTYzMjdcdTYz''@;'; + put 'put ''MjlcdTYzMmNcdTYzMmRcdTYzMmVcdTYzMzBcdTYzMzFcdTYzMzMiLDUsIlx1NjMzYlx1NjMzY1x1NjMzZVx1NjMzZlx1NjM0MFx1NjM0MVx1NjM0NFx1NjM0N1x1NjM0OFx1NjM0YVx1NjM1MVx1NjM1Mlx1NjM1M1x1NjM1NFx1NjM1NiIsNywiXHU2MzYwXHU2MzY0XHU2MzY1XHU2MzY2XHU2''@;'; + put 'put ''MzY4XHU2MzZhXHU2MzZiXHU2MzZjXHU2MzZmXHU2MzcwXHU2MzcyXHU2MzczXHU2Mzc0XHU2Mzc1XHU2Mzc4XHU2Mzc5XHU2MzdjXHU2MzdkXHU2MzdlXHU2MzdmXHU2MzgxXHU2MzgzXHU2Mzg0XHU2Mzg1XHU2Mzg2XHU2MzhiXHU2MzhkXHU2MzkxXHU2MzkzXHU2Mzk0XHU2Mzk1XHU2Mzk3''@;'; + put 'put ''XHU2Mzk5Iiw2LCJcdTYzYTFcdTYzYTRcdTYzYTZcdTYzYWJcdTYzYWZcdTYzYjFcdTYzYjJcdTYzYjVcdTYzYjZcdTYzYjlcdTYzYmJcdTYzYmRcdTYzYmZcdTYzYzAiXSxbIjkzNDAiLCJcdTYzYzFcdTYzYzJcdTYzYzNcdTYzYzVcdTYzYzdcdTYzYzhcdTYzY2FcdTYzY2JcdTYzY2NcdTYz''@;'; + put 'put ''ZDFcdTYzZDNcdTYzZDRcdTYzZDVcdTYzZDciLDYsIlx1NjNkZlx1NjNlMlx1NjNlNCIsNCwiXHU2M2ViXHU2M2VjXHU2M2VlXHU2M2VmXHU2M2YwXHU2M2YxXHU2M2YzXHU2M2Y1XHU2M2Y3XHU2M2Y5XHU2M2ZhXHU2M2ZiXHU2M2ZjXHU2M2ZlXHU2NDAzXHU2NDA0XHU2NDA2Iiw0LCJcdTY0''@;'; + put 'put ''MGRcdTY0MGVcdTY0MTFcdTY0MTJcdTY0MTUiLDUsIlx1NjQxZFx1NjQxZlx1NjQyMlx1NjQyM1x1NjQyNCJdLFsiOTM4MCIsIlx1NjQyNVx1NjQyN1x1NjQyOFx1NjQyOVx1NjQyYlx1NjQyZSIsNSwiXHU2NDM1Iiw0LCJcdTY0M2JcdTY0M2NcdTY0M2VcdTY0NDBcdTY0NDJcdTY0NDNcdTY0''@;'; + put 'put ''NDlcdTY0NGIiLDYsIlx1NjQ1M1x1NjQ1NVx1NjQ1Nlx1NjQ1N1x1NjQ1OSIsNCwiXHU2NDVmIiw3LCJcdTY0NjhcdTY0NmFcdTY0NmJcdTY0NmNcdTY0NmUiLDksIlx1NjQ3YiIsNiwiXHU2NDgzXHU2NDg2XHU2NDg4Iiw4LCJcdTY0OTNcdTY0OTRcdTY0OTdcdTY0OThcdTY0OWFcdTY0OWJc''@;'; + put 'put ''dTY0OWNcdTY0OWRcdTY0OWYiLDQsIlx1NjRhNVx1NjRhNlx1NjRhN1x1NjRhOFx1NjRhYVx1NjRhYlx1NjRhZlx1NjRiMVx1NjRiMlx1NjRiM1x1NjRiNFx1NjRiNlx1NjRiOVx1NjRiYlx1NjRiZFx1NjRiZVx1NjRiZlx1NjRjMVx1NjRjM1x1NjRjNFx1NjRjNiIsNiwiXHU2NGNmXHU2NGQx''@;'; + put 'put ''XHU2NGQzXHU2NGQ0XHU2NGQ1XHU2NGQ2XHU2NGQ5XHU2NGRhIl0sWyI5NDQwIiwiXHU2NGRiXHU2NGRjXHU2NGRkXHU2NGRmXHU2NGUwXHU2NGUxXHU2NGUzXHU2NGU1XHU2NGU3IiwyNCwiXHU2NTAxIiw3LCJcdTY1MGEiLDcsIlx1NjUxMyIsNCwiXHU2NTE5Iiw4XSxbIjk0ODAiLCJcdTY1''@;'; + put 'put ''MjJcdTY1MjNcdTY1MjRcdTY1MjYiLDQsIlx1NjUyY1x1NjUyZFx1NjUzMFx1NjUzMVx1NjUzMlx1NjUzM1x1NjUzN1x1NjUzYVx1NjUzY1x1NjUzZFx1NjU0MCIsNCwiXHU2NTQ2XHU2NTQ3XHU2NTRhXHU2NTRiXHU2NTRkXHU2NTRlXHU2NTUwXHU2NTUyXHU2NTUzXHU2NTU0XHU2NTU3XHU2''@;'; + put 'put ''NTU4XHU2NTVhXHU2NTVjXHU2NTVmXHU2NTYwXHU2NTYxXHU2NTY0XHU2NTY1XHU2NTY3XHU2NTY4XHU2NTY5XHU2NTZhXHU2NTZkXHU2NTZlXHU2NTZmXHU2NTcxXHU2NTczXHU2NTc1XHU2NTc2XHU2NTc4IiwxNCwiXHU2NTg4XHU2NTg5XHU2NThhXHU2NThkXHU2NThlXHU2NThmXHU2NTky''@;'; + put 'put ''XHU2NTk0XHU2NTk1XHU2NTk2XHU2NTk4XHU2NTlhXHU2NTlkXHU2NTllXHU2NWEwXHU2NWEyXHU2NWEzXHU2NWE2XHU2NWE4XHU2NWFhXHU2NWFjXHU2NWFlXHU2NWIxIiw3LCJcdTY1YmFcdTY1YmJcdTY1YmVcdTY1YmZcdTY1YzBcdTY1YzJcdTY1YzdcdTY1YzhcdTY1YzlcdTY1Y2FcdTY1''@;'; + put 'put ''Y2RcdTY1ZDBcdTY1ZDFcdTY1ZDNcdTY1ZDRcdTY1ZDVcdTY1ZDgiLDcsIlx1NjVlMVx1NjVlM1x1NjVlNFx1NjVlYVx1NjVlYiJdLFsiOTU0MCIsIlx1NjVmMlx1NjVmM1x1NjVmNFx1NjVmNVx1NjVmOFx1NjVmOVx1NjVmYiIsNCwiXHU2NjAxXHU2NjA0XHU2NjA1XHU2NjA3XHU2NjA4XHU2''@;'; + put 'put ''NjA5XHU2NjBiXHU2NjBkXHU2NjEwXHU2NjExXHU2NjEyXHU2NjE2XHU2NjE3XHU2NjE4XHU2NjFhXHU2NjFiXHU2NjFjXHU2NjFlXHU2NjIxXHU2NjIyXHU2NjIzXHU2NjI0XHU2NjI2XHU2NjI5XHU2NjJhXHU2NjJiXHU2NjJjXHU2NjJlXHU2NjMwXHU2NjMyXHU2NjMzXHU2NjM3Iiw0LCJc''@;'; + put 'put ''dTY2M2RcdTY2M2ZcdTY2NDBcdTY2NDJcdTY2NDQiLDYsIlx1NjY0ZFx1NjY0ZVx1NjY1MFx1NjY1MVx1NjY1OCJdLFsiOTU4MCIsIlx1NjY1OVx1NjY1Ylx1NjY1Y1x1NjY1ZFx1NjY1ZVx1NjY2MFx1NjY2Mlx1NjY2M1x1NjY2NVx1NjY2N1x1NjY2OSIsNCwiXHU2NjcxXHU2NjcyXHU2Njcz''@;'; + put 'put ''XHU2Njc1XHU2Njc4XHU2Njc5XHU2NjdiXHU2NjdjXHU2NjdkXHU2NjdmXHU2NjgwXHU2NjgxXHU2NjgzXHU2Njg1XHU2Njg2XHU2Njg4XHU2Njg5XHU2NjhhXHU2NjhiXHU2NjhkXHU2NjhlXHU2NjhmXHU2NjkwXHU2NjkyXHU2NjkzXHU2Njk0XHU2Njk1XHU2Njk4Iiw0LCJcdTY2OWUiLDgs''@;'; + put 'put ''Ilx1NjZhOSIsNCwiXHU2NmFmIiw0LCJcdTY2YjVcdTY2YjZcdTY2YjdcdTY2YjhcdTY2YmFcdTY2YmJcdTY2YmNcdTY2YmRcdTY2YmYiLDI1LCJcdTY2ZGFcdTY2ZGUiLDcsIlx1NjZlN1x1NjZlOFx1NjZlYSIsNSwiXHU2NmYxXHU2NmY1XHU2NmY2XHU2NmY4XHU2NmZhXHU2NmZiXHU2NmZk''@;'; + put 'put ''XHU2NzAxXHU2NzAyXHU2NzAzIl0sWyI5NjQwIiwiXHU2NzA0XHU2NzA1XHU2NzA2XHU2NzA3XHU2NzBjXHU2NzBlXHU2NzBmXHU2NzExXHU2NzEyXHU2NzEzXHU2NzE2XHU2NzE4XHU2NzE5XHU2NzFhXHU2NzFjXHU2NzFlXHU2NzIwIiw1LCJcdTY3MjdcdTY3MjlcdTY3MmVcdTY3MzBcdTY3''@;'; + put 'put ''MzJcdTY3MzNcdTY3MzZcdTY3MzdcdTY3MzhcdTY3MzlcdTY3M2JcdTY3M2NcdTY3M2VcdTY3M2ZcdTY3NDFcdTY3NDRcdTY3NDVcdTY3NDdcdTY3NGFcdTY3NGJcdTY3NGRcdTY3NTJcdTY3NTRcdTY3NTVcdTY3NTciLDQsIlx1Njc1ZFx1Njc2Mlx1Njc2M1x1Njc2NFx1Njc2Nlx1Njc2N1x1''@;'; + put 'put ''Njc2Ylx1Njc2Y1x1Njc2ZVx1Njc3MVx1Njc3NFx1Njc3NiJdLFsiOTY4MCIsIlx1Njc3OFx1Njc3OVx1Njc3YVx1Njc3Ylx1Njc3ZFx1Njc4MFx1Njc4Mlx1Njc4M1x1Njc4NVx1Njc4Nlx1Njc4OFx1Njc4YVx1Njc4Y1x1Njc4ZFx1Njc4ZVx1Njc4Zlx1Njc5MVx1Njc5Mlx1Njc5M1x1Njc5''@;'; + put 'put ''NFx1Njc5Nlx1Njc5OVx1Njc5Ylx1Njc5Zlx1NjdhMFx1NjdhMVx1NjdhNFx1NjdhNlx1NjdhOVx1NjdhY1x1NjdhZVx1NjdiMVx1NjdiMlx1NjdiNFx1NjdiOSIsNywiXHU2N2MyXHU2N2M1Iiw5LCJcdTY3ZDVcdTY3ZDZcdTY3ZDdcdTY3ZGJcdTY3ZGZcdTY3ZTFcdTY3ZTNcdTY3ZTRcdTY3''@;'; + put 'put ''ZTZcdTY3ZTdcdTY3ZThcdTY3ZWFcdTY3ZWJcdTY3ZWRcdTY3ZWVcdTY3ZjJcdTY3ZjUiLDcsIlx1NjdmZVx1NjgwMVx1NjgwMlx1NjgwM1x1NjgwNFx1NjgwNlx1NjgwZFx1NjgxMFx1NjgxMlx1NjgxNFx1NjgxNVx1NjgxOCIsNCwiXHU2ODFlXHU2ODFmXHU2ODIwXHU2ODIyIiw2LCJcdTY4''@;'; + put 'put ''MmIiLDYsIlx1NjgzNFx1NjgzNVx1NjgzNlx1NjgzYVx1NjgzYlx1NjgzZlx1Njg0N1x1Njg0Ylx1Njg0ZFx1Njg0Zlx1Njg1Mlx1Njg1NiIsNV0sWyI5NzQwIiwiXHU2ODVjXHU2ODVkXHU2ODVlXHU2ODVmXHU2ODZhXHU2ODZjIiw3LCJcdTY4NzVcdTY4NzgiLDgsIlx1Njg4Mlx1Njg4NFx1''@;'; + put 'put ''Njg4NyIsNywiXHU2ODkwXHU2ODkxXHU2ODkyXHU2ODk0XHU2ODk1XHU2ODk2XHU2ODk4Iiw5LCJcdTY4YTNcdTY4YTRcdTY4YTVcdTY4YTlcdTY4YWFcdTY4YWJcdTY4YWNcdTY4YWVcdTY4YjFcdTY4YjJcdTY4YjRcdTY4YjZcdTY4YjdcdTY4YjgiXSxbIjk3ODAiLCJcdTY4YjkiLDYsIlx1''@;'; + put 'put ''NjhjMVx1NjhjMyIsNSwiXHU2OGNhXHU2OGNjXHU2OGNlXHU2OGNmXHU2OGQwXHU2OGQxXHU2OGQzXHU2OGQ0XHU2OGQ2XHU2OGQ3XHU2OGQ5XHU2OGRiIiw0LCJcdTY4ZTFcdTY4ZTJcdTY4ZTQiLDksIlx1NjhlZlx1NjhmMlx1NjhmM1x1NjhmNFx1NjhmNlx1NjhmN1x1NjhmOFx1NjhmYlx1''@;'; + put 'put ''NjhmZFx1NjhmZVx1NjhmZlx1NjkwMFx1NjkwMlx1NjkwM1x1NjkwNFx1NjkwNiIsNCwiXHU2OTBjXHU2OTBmXHU2OTExXHU2OTEzIiwxMSwiXHU2OTIxXHU2OTIyXHU2OTIzXHU2OTI1Iiw3LCJcdTY5MmVcdTY5MmZcdTY5MzFcdTY5MzJcdTY5MzNcdTY5MzVcdTY5MzZcdTY5MzdcdTY5Mzhc''@;'; + put 'put ''dTY5M2FcdTY5M2JcdTY5M2NcdTY5M2VcdTY5NDBcdTY5NDFcdTY5NDMiLDE2LCJcdTY5NTVcdTY5NTZcdTY5NThcdTY5NTlcdTY5NWJcdTY5NWNcdTY5NWYiXSxbIjk4NDAiLCJcdTY5NjFcdTY5NjJcdTY5NjRcdTY5NjVcdTY5NjdcdTY5NjhcdTY5NjlcdTY5NmFcdTY5NmNcdTY5NmRcdTY5''@;'; + put 'put ''NmZcdTY5NzBcdTY5NzIiLDQsIlx1Njk3YVx1Njk3Ylx1Njk3ZFx1Njk3ZVx1Njk3Zlx1Njk4MVx1Njk4M1x1Njk4NVx1Njk4YVx1Njk4Ylx1Njk4Y1x1Njk4ZSIsNSwiXHU2OTk2XHU2OTk3XHU2OTk5XHU2OTlhXHU2OTlkIiw5LCJcdTY5YTlcdTY5YWFcdTY5YWNcdTY5YWVcdTY5YWZcdTY5''@;'; + put 'put ''YjBcdTY5YjJcdTY5YjNcdTY5YjVcdTY5YjZcdTY5YjhcdTY5YjlcdTY5YmFcdTY5YmNcdTY5YmQiXSxbIjk4ODAiLCJcdTY5YmVcdTY5YmZcdTY5YzBcdTY5YzIiLDcsIlx1NjljYlx1NjljZFx1NjljZlx1NjlkMVx1NjlkMlx1NjlkM1x1NjlkNSIsNSwiXHU2OWRjXHU2OWRkXHU2OWRlXHU2''@;'; + put 'put ''OWUxIiwxMSwiXHU2OWVlXHU2OWVmXHU2OWYwXHU2OWYxXHU2OWYzIiw5LCJcdTY5ZmVcdTZhMDAiLDksIlx1NmEwYiIsMTEsIlx1NmExOSIsNSwiXHU2YTIwXHU2YTIyIiw1LCJcdTZhMjlcdTZhMmJcdTZhMmNcdTZhMmRcdTZhMmVcdTZhMzBcdTZhMzJcdTZhMzNcdTZhMzRcdTZhMzYiLDYs''@;'; + put 'put ''Ilx1NmEzZiIsNCwiXHU2YTQ1XHU2YTQ2XHU2YTQ4Iiw3LCJcdTZhNTEiLDYsIlx1NmE1YSJdLFsiOTk0MCIsIlx1NmE1YyIsNCwiXHU2YTYyXHU2YTYzXHU2YTY0XHU2YTY2IiwxMCwiXHU2YTcyIiw2LCJcdTZhN2FcdTZhN2JcdTZhN2RcdTZhN2VcdTZhN2ZcdTZhODFcdTZhODJcdTZhODNc''@;'; + put 'put ''dTZhODUiLDgsIlx1NmE4Zlx1NmE5MiIsNCwiXHU2YTk4Iiw3LCJcdTZhYTEiLDVdLFsiOTk4MCIsIlx1NmFhN1x1NmFhOFx1NmFhYVx1NmFhZCIsMTE0LCJcdTZiMjVcdTZiMjZcdTZiMjgiLDZdLFsiOWE0MCIsIlx1NmIyZlx1NmIzMFx1NmIzMVx1NmIzM1x1NmIzNFx1NmIzNVx1NmIzNlx1''@;'; + put 'put ''NmIzOFx1NmIzYlx1NmIzY1x1NmIzZFx1NmIzZlx1NmI0MFx1NmI0MVx1NmI0Mlx1NmI0NFx1NmI0NVx1NmI0OFx1NmI0YVx1NmI0Ylx1NmI0ZCIsMTEsIlx1NmI1YSIsNywiXHU2YjY4XHU2YjY5XHU2YjZiIiwxMywiXHU2YjdhXHU2YjdkXHU2YjdlXHU2YjdmXHU2YjgwXHU2Yjg1XHU2Yjg4''@;'; + put 'put ''Il0sWyI5YTgwIiwiXHU2YjhjXHU2YjhlXHU2YjhmXHU2YjkwXHU2YjkxXHU2Yjk0XHU2Yjk1XHU2Yjk3XHU2Yjk4XHU2Yjk5XHU2YjljIiw0LCJcdTZiYTIiLDcsIlx1NmJhYiIsNywiXHU2YmI2XHU2YmI4Iiw2LCJcdTZiYzBcdTZiYzNcdTZiYzRcdTZiYzYiLDQsIlx1NmJjY1x1NmJjZVx1''@;'; + put 'put ''NmJkMFx1NmJkMVx1NmJkOFx1NmJkYVx1NmJkYyIsNCwiXHU2YmUyIiw3LCJcdTZiZWNcdTZiZWRcdTZiZWVcdTZiZjBcdTZiZjFcdTZiZjJcdTZiZjRcdTZiZjZcdTZiZjdcdTZiZjhcdTZiZmFcdTZiZmJcdTZiZmNcdTZiZmUiLDYsIlx1NmMwOCIsNCwiXHU2YzBlXHU2YzEyXHU2YzE3XHU2''@;'; + put 'put ''YzFjXHU2YzFkXHU2YzFlXHU2YzIwXHU2YzIzXHU2YzI1XHU2YzJiXHU2YzJjXHU2YzJkXHU2YzMxXHU2YzMzXHU2YzM2XHU2YzM3XHU2YzM5XHU2YzNhXHU2YzNiXHU2YzNjXHU2YzNlXHU2YzNmXHU2YzQzXHU2YzQ0XHU2YzQ1XHU2YzQ4XHU2YzRiIiw0LCJcdTZjNTFcdTZjNTJcdTZjNTNc''@;'; + put 'put ''dTZjNTZcdTZjNTgiXSxbIjliNDAiLCJcdTZjNTlcdTZjNWFcdTZjNjJcdTZjNjNcdTZjNjVcdTZjNjZcdTZjNjdcdTZjNmIiLDQsIlx1NmM3MVx1NmM3M1x1NmM3NVx1NmM3N1x1NmM3OFx1NmM3YVx1NmM3Ylx1NmM3Y1x1NmM3Zlx1NmM4MFx1NmM4NFx1NmM4N1x1NmM4YVx1NmM4Ylx1NmM4''@;'; + put 'put ''ZFx1NmM4ZVx1NmM5MVx1NmM5Mlx1NmM5NVx1NmM5Nlx1NmM5N1x1NmM5OFx1NmM5YVx1NmM5Y1x1NmM5ZFx1NmM5ZVx1NmNhMFx1NmNhMlx1NmNhOFx1NmNhY1x1NmNhZlx1NmNiMFx1NmNiNFx1NmNiNVx1NmNiNlx1NmNiN1x1NmNiYVx1NmNjMFx1NmNjMVx1NmNjMlx1NmNjM1x1NmNjNlx1''@;'; + put 'put ''NmNjN1x1NmNjOFx1NmNjYlx1NmNjZFx1NmNjZVx1NmNjZlx1NmNkMVx1NmNkMlx1NmNkOCJdLFsiOWI4MCIsIlx1NmNkOVx1NmNkYVx1NmNkY1x1NmNkZFx1NmNkZlx1NmNlNFx1NmNlNlx1NmNlN1x1NmNlOVx1NmNlY1x1NmNlZFx1NmNmMlx1NmNmNFx1NmNmOVx1NmNmZlx1NmQwMFx1NmQw''@;'; + put 'put ''Mlx1NmQwM1x1NmQwNVx1NmQwNlx1NmQwOFx1NmQwOVx1NmQwYVx1NmQwZFx1NmQwZlx1NmQxMFx1NmQxMVx1NmQxM1x1NmQxNFx1NmQxNVx1NmQxNlx1NmQxOFx1NmQxY1x1NmQxZFx1NmQxZiIsNSwiXHU2ZDI2XHU2ZDI4XHU2ZDI5XHU2ZDJjXHU2ZDJkXHU2ZDJmXHU2ZDMwXHU2ZDM0XHU2''@;'; + put 'put ''ZDM2XHU2ZDM3XHU2ZDM4XHU2ZDNhXHU2ZDNmXHU2ZDQwXHU2ZDQyXHU2ZDQ0XHU2ZDQ5XHU2ZDRjXHU2ZDUwXHU2ZDU1XHU2ZDU2XHU2ZDU3XHU2ZDU4XHU2ZDViXHU2ZDVkXHU2ZDVmXHU2ZDYxXHU2ZDYyXHU2ZDY0XHU2ZDY1XHU2ZDY3XHU2ZDY4XHU2ZDZiXHU2ZDZjXHU2ZDZkXHU2ZDcw''@;'; + put 'put ''XHU2ZDcxXHU2ZDcyXHU2ZDczXHU2ZDc1XHU2ZDc2XHU2ZDc5XHU2ZDdhXHU2ZDdiXHU2ZDdkIiw0LCJcdTZkODNcdTZkODRcdTZkODZcdTZkODdcdTZkOGFcdTZkOGJcdTZkOGRcdTZkOGZcdTZkOTBcdTZkOTJcdTZkOTYiLDQsIlx1NmQ5Y1x1NmRhMlx1NmRhNVx1NmRhY1x1NmRhZFx1NmRi''@;'; + put 'put ''MFx1NmRiMVx1NmRiM1x1NmRiNFx1NmRiNlx1NmRiN1x1NmRiOSIsNSwiXHU2ZGMxXHU2ZGMyXHU2ZGMzXHU2ZGM4XHU2ZGM5XHU2ZGNhIl0sWyI5YzQwIiwiXHU2ZGNkXHU2ZGNlXHU2ZGNmXHU2ZGQwXHU2ZGQyXHU2ZGQzXHU2ZGQ0XHU2ZGQ1XHU2ZGQ3XHU2ZGRhXHU2ZGRiXHU2ZGRjXHU2''@;'; + put 'put ''ZGRmXHU2ZGUyXHU2ZGUzXHU2ZGU1XHU2ZGU3XHU2ZGU4XHU2ZGU5XHU2ZGVhXHU2ZGVkXHU2ZGVmXHU2ZGYwXHU2ZGYyXHU2ZGY0XHU2ZGY1XHU2ZGY2XHU2ZGY4XHU2ZGZhXHU2ZGZkIiw3LCJcdTZlMDZcdTZlMDdcdTZlMDhcdTZlMDlcdTZlMGJcdTZlMGZcdTZlMTJcdTZlMTNcdTZlMTVc''@;'; + put 'put ''dTZlMThcdTZlMTlcdTZlMWJcdTZlMWNcdTZlMWVcdTZlMWZcdTZlMjJcdTZlMjZcdTZlMjdcdTZlMjhcdTZlMmFcdTZlMmNcdTZlMmVcdTZlMzBcdTZlMzFcdTZlMzNcdTZlMzUiXSxbIjljODAiLCJcdTZlMzZcdTZlMzdcdTZlMzlcdTZlM2IiLDcsIlx1NmU0NSIsNywiXHU2ZTRmXHU2ZTUw''@;'; + put 'put ''XHU2ZTUxXHU2ZTUyXHU2ZTU1XHU2ZTU3XHU2ZTU5XHU2ZTVhXHU2ZTVjXHU2ZTVkXHU2ZTVlXHU2ZTYwIiwxMCwiXHU2ZTZjXHU2ZTZkXHU2ZTZmIiwxNCwiXHU2ZTgwXHU2ZTgxXHU2ZTgyXHU2ZTg0XHU2ZTg3XHU2ZTg4XHU2ZThhIiw0LCJcdTZlOTEiLDYsIlx1NmU5OVx1NmU5YVx1NmU5''@;'; + put 'put ''Ylx1NmU5ZFx1NmU5ZVx1NmVhMFx1NmVhMVx1NmVhM1x1NmVhNFx1NmVhNlx1NmVhOFx1NmVhOVx1NmVhYlx1NmVhY1x1NmVhZFx1NmVhZVx1NmViMFx1NmViM1x1NmViNVx1NmViOFx1NmViOVx1NmViY1x1NmViZVx1NmViZlx1NmVjMFx1NmVjM1x1NmVjNFx1NmVjNVx1NmVjNlx1NmVjOFx1''@;'; + put 'put ''NmVjOVx1NmVjYVx1NmVjY1x1NmVjZFx1NmVjZVx1NmVkMFx1NmVkMlx1NmVkNlx1NmVkOFx1NmVkOVx1NmVkYlx1NmVkY1x1NmVkZFx1NmVlM1x1NmVlN1x1NmVlYSIsNV0sWyI5ZDQwIiwiXHU2ZWYwXHU2ZWYxXHU2ZWYyXHU2ZWYzXHU2ZWY1XHU2ZWY2XHU2ZWY3XHU2ZWY4XHU2ZWZhIiw3''@;'; + put 'put ''LCJcdTZmMDNcdTZmMDRcdTZmMDVcdTZmMDdcdTZmMDhcdTZmMGEiLDQsIlx1NmYxMFx1NmYxMVx1NmYxMlx1NmYxNiIsOSwiXHU2ZjIxXHU2ZjIyXHU2ZjIzXHU2ZjI1XHU2ZjI2XHU2ZjI3XHU2ZjI4XHU2ZjJjXHU2ZjJlXHU2ZjMwXHU2ZjMyXHU2ZjM0XHU2ZjM1XHU2ZjM3Iiw2LCJcdTZm''@;'; + put 'put ''M2ZcdTZmNDBcdTZmNDFcdTZmNDIiXSxbIjlkODAiLCJcdTZmNDNcdTZmNDRcdTZmNDVcdTZmNDhcdTZmNDlcdTZmNGFcdTZmNGNcdTZmNGUiLDksIlx1NmY1OVx1NmY1YVx1NmY1Ylx1NmY1ZFx1NmY1Zlx1NmY2MFx1NmY2MVx1NmY2M1x1NmY2NFx1NmY2NVx1NmY2NyIsNSwiXHU2ZjZmXHU2''@;'; + put 'put ''ZjcwXHU2ZjcxXHU2ZjczXHU2Zjc1XHU2Zjc2XHU2Zjc3XHU2Zjc5XHU2ZjdiXHU2ZjdkIiw2LCJcdTZmODVcdTZmODZcdTZmODdcdTZmOGFcdTZmOGJcdTZmOGYiLDEyLCJcdTZmOWRcdTZmOWVcdTZmOWZcdTZmYTBcdTZmYTIiLDQsIlx1NmZhOCIsMTAsIlx1NmZiNFx1NmZiNVx1NmZiN1x1''@;'; + put 'put ''NmZiOFx1NmZiYSIsNSwiXHU2ZmMxXHU2ZmMzIiw1LCJcdTZmY2EiLDYsIlx1NmZkMyIsMTAsIlx1NmZkZlx1NmZlMlx1NmZlM1x1NmZlNFx1NmZlNSJdLFsiOWU0MCIsIlx1NmZlNiIsNywiXHU2ZmYwIiwzMiwiXHU3MDEyIiw3LCJcdTcwMWMiLDYsIlx1NzAyNCIsNl0sWyI5ZTgwIiwiXHU3''@;'; + put 'put ''MDJiIiw5LCJcdTcwMzZcdTcwMzdcdTcwMzhcdTcwM2EiLDE3LCJcdTcwNGRcdTcwNGVcdTcwNTAiLDEzLCJcdTcwNWYiLDExLCJcdTcwNmVcdTcwNzFcdTcwNzJcdTcwNzNcdTcwNzRcdTcwNzdcdTcwNzlcdTcwN2FcdTcwN2JcdTcwN2RcdTcwODFcdTcwODJcdTcwODNcdTcwODRcdTcwODZc''@;'; + put 'put ''dTcwODdcdTcwODhcdTcwOGJcdTcwOGNcdTcwOGRcdTcwOGZcdTcwOTBcdTcwOTFcdTcwOTNcdTcwOTdcdTcwOThcdTcwOWFcdTcwOWJcdTcwOWUiLDEyLCJcdTcwYjBcdTcwYjJcdTcwYjRcdTcwYjVcdTcwYjZcdTcwYmFcdTcwYmVcdTcwYmZcdTcwYzRcdTcwYzVcdTcwYzZcdTcwYzdcdTcw''@;'; + put 'put ''YzlcdTcwY2IiLDEyLCJcdTcwZGEiXSxbIjlmNDAiLCJcdTcwZGNcdTcwZGRcdTcwZGVcdTcwZTBcdTcwZTFcdTcwZTJcdTcwZTNcdTcwZTVcdTcwZWFcdTcwZWVcdTcwZjAiLDYsIlx1NzBmOFx1NzBmYVx1NzBmYlx1NzBmY1x1NzBmZSIsMTAsIlx1NzEwYiIsNCwiXHU3MTExXHU3MTEyXHU3''@;'; + put 'put ''MTE0XHU3MTE3XHU3MTFiIiwxMCwiXHU3MTI3Iiw3LCJcdTcxMzJcdTcxMzNcdTcxMzQiXSxbIjlmODAiLCJcdTcxMzVcdTcxMzciLDEzLCJcdTcxNDZcdTcxNDdcdTcxNDhcdTcxNDlcdTcxNGJcdTcxNGRcdTcxNGYiLDEyLCJcdTcxNWRcdTcxNWYiLDQsIlx1NzE2NVx1NzE2OSIsNCwiXHU3''@;'; + put 'put ''MTZmXHU3MTcwXHU3MTcxXHU3MTc0XHU3MTc1XHU3MTc2XHU3MTc3XHU3MTc5XHU3MTdiXHU3MTdjXHU3MTdlIiw1LCJcdTcxODUiLDQsIlx1NzE4Ylx1NzE4Y1x1NzE4ZFx1NzE4ZVx1NzE5MFx1NzE5MVx1NzE5Mlx1NzE5M1x1NzE5NVx1NzE5Nlx1NzE5N1x1NzE5YSIsNCwiXHU3MWExIiw2''@;'; + put 'put ''LCJcdTcxYTlcdTcxYWFcdTcxYWJcdTcxYWQiLDUsIlx1NzFiNFx1NzFiNlx1NzFiN1x1NzFiOFx1NzFiYSIsOCwiXHU3MWM0Iiw5LCJcdTcxY2YiLDRdLFsiYTA0MCIsIlx1NzFkNiIsOSwiXHU3MWUxXHU3MWUyXHU3MWUzXHU3MWU0XHU3MWU2XHU3MWU4Iiw1LCJcdTcxZWYiLDksIlx1NzFm''@;'; + put 'put ''YSIsMTEsIlx1NzIwNyIsMTldLFsiYTA4MCIsIlx1NzIxYlx1NzIxY1x1NzIxZSIsOSwiXHU3MjI5XHU3MjJiXHU3MjJkXHU3MjJlXHU3MjJmXHU3MjMyXHU3MjMzXHU3MjM0XHU3MjNhXHU3MjNjXHU3MjNlXHU3MjQwIiw2LCJcdTcyNDlcdTcyNGFcdTcyNGJcdTcyNGVcdTcyNGZcdTcyNTBc''@;'; + put 'put ''dTcyNTFcdTcyNTNcdTcyNTRcdTcyNTVcdTcyNTdcdTcyNThcdTcyNWFcdTcyNWNcdTcyNWVcdTcyNjBcdTcyNjNcdTcyNjRcdTcyNjVcdTcyNjhcdTcyNmFcdTcyNmJcdTcyNmNcdTcyNmRcdTcyNzBcdTcyNzFcdTcyNzNcdTcyNzRcdTcyNzZcdTcyNzdcdTcyNzhcdTcyN2JcdTcyN2NcdTcy''@;'; + put 'put ''N2RcdTcyODJcdTcyODNcdTcyODUiLDQsIlx1NzI4Y1x1NzI4ZVx1NzI5MFx1NzI5MVx1NzI5MyIsMTEsIlx1NzJhMCIsMTEsIlx1NzJhZVx1NzJiMVx1NzJiMlx1NzJiM1x1NzJiNVx1NzJiYSIsNiwiXHU3MmM1XHU3MmM2XHU3MmM3XHU3MmM5XHU3MmNhXHU3MmNiXHU3MmNjXHU3MmNmXHU3''@;'; + put 'put ''MmQxXHU3MmQzXHU3MmQ0XHU3MmQ1XHU3MmQ2XHU3MmQ4XHU3MmRhXHU3MmRiIl0sWyJhMWExIiwiXHUzMDAwXHUzMDAxXHUzMDAyXHhiN1x1MDJjOVx1MDJjN1x4YThcdTMwMDNcdTMwMDVcdTIwMTRcdWZmNWVcdTIwMTZcdTIwMjZcdTIwMThcdTIwMTlcdTIwMWNcdTIwMWRcdTMwMTRcdTMw''@;'; + put 'put ''MTVcdTMwMDgiLDcsIlx1MzAxNlx1MzAxN1x1MzAxMFx1MzAxMVx4YjFceGQ3XHhmN1x1MjIzNlx1MjIyN1x1MjIyOFx1MjIxMVx1MjIwZlx1MjIyYVx1MjIyOVx1MjIwOFx1MjIzN1x1MjIxYVx1MjJhNVx1MjIyNVx1MjIyMFx1MjMxMlx1MjI5OVx1MjIyYlx1MjIyZVx1MjI2MVx1MjI0Y1x1''@;'; + put 'put ''MjI0OFx1MjIzZFx1MjIxZFx1MjI2MFx1MjI2ZVx1MjI2Zlx1MjI2NFx1MjI2NVx1MjIxZVx1MjIzNVx1MjIzNFx1MjY0Mlx1MjY0MFx4YjBcdTIwMzJcdTIwMzNcdTIxMDNcdWZmMDRceGE0XHVmZmUwXHVmZmUxXHUyMDMwXHhhN1x1MjExNlx1MjYwNlx1MjYwNVx1MjVjYlx1MjVjZlx1MjVj''@;'; + put 'put ''ZVx1MjVjN1x1MjVjNlx1MjVhMVx1MjVhMFx1MjViM1x1MjViMlx1MjAzYlx1MjE5Mlx1MjE5MFx1MjE5MVx1MjE5M1x1MzAxMyJdLFsiYTJhMSIsIlx1MjE3MCIsOV0sWyJhMmIxIiwiXHUyNDg4IiwxOSwiXHUyNDc0IiwxOSwiXHUyNDYwIiw5XSxbImEyZTUiLCJcdTMyMjAiLDldLFsiYTJm''@;'; + put 'put ''MSIsIlx1MjE2MCIsMTFdLFsiYTNhMSIsIlx1ZmYwMVx1ZmYwMlx1ZmYwM1x1ZmZlNVx1ZmYwNSIsODgsIlx1ZmZlMyJdLFsiYTRhMSIsIlx1MzA0MSIsODJdLFsiYTVhMSIsIlx1MzBhMSIsODVdLFsiYTZhMSIsIlx1MDM5MSIsMTYsIlx1MDNhMyIsNl0sWyJhNmMxIiwiXHUwM2IxIiwxNiwi''@;'; + put 'put ''XHUwM2MzIiw2XSxbImE2ZTAiLCJcdWZlMzVcdWZlMzZcdWZlMzlcdWZlM2FcdWZlM2ZcdWZlNDBcdWZlM2RcdWZlM2VcdWZlNDFcdWZlNDJcdWZlNDNcdWZlNDQiXSxbImE2ZWUiLCJcdWZlM2JcdWZlM2NcdWZlMzdcdWZlMzhcdWZlMzEiXSxbImE2ZjQiLCJcdWZlMzNcdWZlMzQiXSxbImE3''@;'; + put 'put ''YTEiLCJcdTA0MTAiLDUsIlx1MDQwMVx1MDQxNiIsMjVdLFsiYTdkMSIsIlx1MDQzMCIsNSwiXHUwNDUxXHUwNDM2IiwyNV0sWyJhODQwIiwiXHUwMmNhXHUwMmNiXHUwMmQ5XHUyMDEzXHUyMDE1XHUyMDI1XHUyMDM1XHUyMTA1XHUyMTA5XHUyMTk2XHUyMTk3XHUyMTk4XHUyMTk5XHUyMjE1''@;'; + put 'put ''XHUyMjFmXHUyMjIzXHUyMjUyXHUyMjY2XHUyMjY3XHUyMmJmXHUyNTUwIiwzNSwiXHUyNTgxIiw2XSxbImE4ODAiLCJcdTI1ODgiLDcsIlx1MjU5M1x1MjU5NFx1MjU5NVx1MjViY1x1MjViZFx1MjVlMlx1MjVlM1x1MjVlNFx1MjVlNVx1MjYwOVx1MjI5NVx1MzAxMlx1MzAxZFx1MzAxZSJd''@;'; + put 'put ''LFsiYThhMSIsIlx1MDEwMVx4ZTFcdTAxY2VceGUwXHUwMTEzXHhlOVx1MDExYlx4ZThcdTAxMmJceGVkXHUwMWQwXHhlY1x1MDE0ZFx4ZjNcdTAxZDJceGYyXHUwMTZiXHhmYVx1MDFkNFx4ZjlcdTAxZDZcdTAxZDhcdTAxZGFcdTAxZGNceGZjXHhlYVx1MDI1MSJdLFsiYThiZCIsIlx1MDE0''@;'; + put 'put ''NFx1MDE0OCJdLFsiYThjMCIsIlx1MDI2MSJdLFsiYThjNSIsIlx1MzEwNSIsMzZdLFsiYTk0MCIsIlx1MzAyMSIsOCwiXHUzMmEzXHUzMzhlXHUzMzhmXHUzMzljXHUzMzlkXHUzMzllXHUzM2ExXHUzM2M0XHUzM2NlXHUzM2QxXHUzM2QyXHUzM2Q1XHVmZTMwXHVmZmUyXHVmZmU0Il0sWyJh''@;'; + put 'put ''OTU5IiwiXHUyMTIxXHUzMjMxIl0sWyJhOTVjIiwiXHUyMDEwIl0sWyJhOTYwIiwiXHUzMGZjXHUzMDliXHUzMDljXHUzMGZkXHUzMGZlXHUzMDA2XHUzMDlkXHUzMDllXHVmZTQ5Iiw5LCJcdWZlNTRcdWZlNTVcdWZlNTZcdWZlNTdcdWZlNTkiLDhdLFsiYTk4MCIsIlx1ZmU2MiIsNCwiXHVm''@;'; + put 'put ''ZTY4XHVmZTY5XHVmZTZhXHVmZTZiIl0sWyJhOTk2IiwiXHUzMDA3Il0sWyJhOWE0IiwiXHUyNTAwIiw3NV0sWyJhYTQwIiwiXHU3MmRjXHU3MmRkXHU3MmRmXHU3MmUyIiw1LCJcdTcyZWFcdTcyZWJcdTcyZjVcdTcyZjZcdTcyZjlcdTcyZmRcdTcyZmVcdTcyZmZcdTczMDBcdTczMDJcdTcz''@;'; + put 'put ''MDQiLDUsIlx1NzMwYlx1NzMwY1x1NzMwZFx1NzMwZlx1NzMxMFx1NzMxMVx1NzMxMlx1NzMxNFx1NzMxOFx1NzMxOVx1NzMxYVx1NzMxZlx1NzMyMFx1NzMyM1x1NzMyNFx1NzMyNlx1NzMyN1x1NzMyOFx1NzMyZFx1NzMyZlx1NzMzMFx1NzMzMlx1NzMzM1x1NzMzNVx1NzMzNlx1NzMzYVx1''@;'; + put 'put ''NzMzYlx1NzMzY1x1NzMzZFx1NzM0MCIsOF0sWyJhYTgwIiwiXHU3MzQ5XHU3MzRhXHU3MzRiXHU3MzRjXHU3MzRlXHU3MzRmXHU3MzUxXHU3MzUzXHU3MzU0XHU3MzU1XHU3MzU2XHU3MzU4Iiw3LCJcdTczNjEiLDEwLCJcdTczNmVcdTczNzBcdTczNzEiXSxbImFiNDAiLCJcdTczNzIiLDEx''@;'; + put 'put ''LCJcdTczN2YiLDQsIlx1NzM4NVx1NzM4Nlx1NzM4OFx1NzM4YVx1NzM4Y1x1NzM4ZFx1NzM4Zlx1NzM5MFx1NzM5Mlx1NzM5M1x1NzM5NFx1NzM5NVx1NzM5N1x1NzM5OFx1NzM5OVx1NzM5YVx1NzM5Y1x1NzM5ZFx1NzM5ZVx1NzNhMFx1NzNhMVx1NzNhMyIsNSwiXHU3M2FhXHU3M2FjXHU3''@;'; + put 'put ''M2FkXHU3M2IxXHU3M2I0XHU3M2I1XHU3M2I2XHU3M2I4XHU3M2I5XHU3M2JjXHU3M2JkXHU3M2JlXHU3M2JmXHU3M2MxXHU3M2MzIiw0XSxbImFiODAiLCJcdTczY2JcdTczY2NcdTczY2VcdTczZDIiLDYsIlx1NzNkYVx1NzNkYlx1NzNkY1x1NzNkZFx1NzNkZlx1NzNlMVx1NzNlMlx1NzNl''@;'; + put 'put ''M1x1NzNlNFx1NzNlNlx1NzNlOFx1NzNlYVx1NzNlYlx1NzNlY1x1NzNlZVx1NzNlZlx1NzNmMFx1NzNmMVx1NzNmMyIsNF0sWyJhYzQwIiwiXHU3M2Y4IiwxMCwiXHU3NDA0XHU3NDA3XHU3NDA4XHU3NDBiXHU3NDBjXHU3NDBkXHU3NDBlXHU3NDExIiw4LCJcdTc0MWMiLDUsIlx1NzQyM1x1''@;'; + put 'put ''NzQyNFx1NzQyN1x1NzQyOVx1NzQyYlx1NzQyZFx1NzQyZlx1NzQzMVx1NzQzMlx1NzQzNyIsNCwiXHU3NDNkXHU3NDNlXHU3NDNmXHU3NDQwXHU3NDQyIiwxMV0sWyJhYzgwIiwiXHU3NDRlIiw2LCJcdTc0NTZcdTc0NThcdTc0NWRcdTc0NjAiLDEyLCJcdTc0NmVcdTc0NmZcdTc0NzEiLDQs''@;'; + put 'put ''Ilx1NzQ3OFx1NzQ3OVx1NzQ3YSJdLFsiYWQ0MCIsIlx1NzQ3Ylx1NzQ3Y1x1NzQ3ZFx1NzQ3Zlx1NzQ4Mlx1NzQ4NFx1NzQ4NVx1NzQ4Nlx1NzQ4OFx1NzQ4OVx1NzQ4YVx1NzQ4Y1x1NzQ4ZFx1NzQ4Zlx1NzQ5MSIsMTAsIlx1NzQ5ZFx1NzQ5ZiIsNywiXHU3NGFhIiwxNSwiXHU3NGJiIiwx''@;'; + put 'put ''Ml0sWyJhZDgwIiwiXHU3NGM4Iiw5LCJcdTc0ZDMiLDgsIlx1NzRkZFx1NzRkZlx1NzRlMVx1NzRlNVx1NzRlNyIsNiwiXHU3NGYwXHU3NGYxXHU3NGYyIl0sWyJhZTQwIiwiXHU3NGYzXHU3NGY1XHU3NGY4Iiw2LCJcdTc1MDBcdTc1MDFcdTc1MDJcdTc1MDNcdTc1MDUiLDcsIlx1NzUwZVx1''@;'; + put 'put ''NzUxMFx1NzUxMlx1NzUxNFx1NzUxNVx1NzUxNlx1NzUxN1x1NzUxYlx1NzUxZFx1NzUxZVx1NzUyMCIsNCwiXHU3NTI2XHU3NTI3XHU3NTJhXHU3NTJlXHU3NTM0XHU3NTM2XHU3NTM5XHU3NTNjXHU3NTNkXHU3NTNmXHU3NTQxXHU3NTQyXHU3NTQzXHU3NTQ0XHU3NTQ2XHU3NTQ3XHU3NTQ5''@;'; + put 'put ''XHU3NTRhXHU3NTRkXHU3NTUwXHU3NTUxXHU3NTUyXHU3NTUzXHU3NTU1XHU3NTU2XHU3NTU3XHU3NTU4Il0sWyJhZTgwIiwiXHU3NTVkIiw3LCJcdTc1NjdcdTc1NjhcdTc1NjlcdTc1NmIiLDYsIlx1NzU3M1x1NzU3NVx1NzU3Nlx1NzU3N1x1NzU3YSIsNCwiXHU3NTgwXHU3NTgxXHU3NTgy''@;'; + put 'put ''XHU3NTg0XHU3NTg1XHU3NTg3Il0sWyJhZjQwIiwiXHU3NTg4XHU3NTg5XHU3NThhXHU3NThjXHU3NThkXHU3NThlXHU3NTkwXHU3NTkzXHU3NTk1XHU3NTk4XHU3NTliXHU3NTljXHU3NTllXHU3NWEyXHU3NWE2Iiw0LCJcdTc1YWRcdTc1YjZcdTc1YjdcdTc1YmFcdTc1YmJcdTc1YmZcdTc1''@;'; + put 'put ''YzBcdTc1YzFcdTc1YzZcdTc1Y2JcdTc1Y2NcdTc1Y2VcdTc1Y2ZcdTc1ZDBcdTc1ZDFcdTc1ZDNcdTc1ZDdcdTc1ZDlcdTc1ZGFcdTc1ZGNcdTc1ZGRcdTc1ZGZcdTc1ZTBcdTc1ZTFcdTc1ZTVcdTc1ZTlcdTc1ZWNcdTc1ZWRcdTc1ZWVcdTc1ZWZcdTc1ZjJcdTc1ZjNcdTc1ZjVcdTc1ZjZc''@;'; + put 'put ''dTc1ZjdcdTc1ZjhcdTc1ZmFcdTc1ZmJcdTc1ZmRcdTc1ZmVcdTc2MDJcdTc2MDRcdTc2MDZcdTc2MDciXSxbImFmODAiLCJcdTc2MDhcdTc2MDlcdTc2MGJcdTc2MGRcdTc2MGVcdTc2MGZcdTc2MTFcdTc2MTJcdTc2MTNcdTc2MTRcdTc2MTZcdTc2MWFcdTc2MWNcdTc2MWRcdTc2MWVcdTc2''@;'; + put 'put ''MjFcdTc2MjNcdTc2MjdcdTc2MjhcdTc2MmNcdTc2MmVcdTc2MmZcdTc2MzFcdTc2MzJcdTc2MzZcdTc2MzdcdTc2MzlcdTc2M2FcdTc2M2JcdTc2M2RcdTc2NDFcdTc2NDJcdTc2NDQiXSxbImIwNDAiLCJcdTc2NDUiLDYsIlx1NzY0ZSIsNSwiXHU3NjU1XHU3NjU3Iiw0LCJcdTc2NWRcdTc2''@;'; + put 'put ''NWZcdTc2NjBcdTc2NjFcdTc2NjJcdTc2NjQiLDYsIlx1NzY2Y1x1NzY2ZFx1NzY2ZVx1NzY3MCIsNywiXHU3Njc5XHU3NjdhXHU3NjdjXHU3NjdmXHU3NjgwXHU3NjgxXHU3NjgzXHU3Njg1XHU3Njg5XHU3NjhhXHU3NjhjXHU3NjhkXHU3NjhmXHU3NjkwXHU3NjkyXHU3Njk0XHU3Njk1XHU3''@;'; + put 'put ''Njk3XHU3Njk4XHU3NjlhXHU3NjliIl0sWyJiMDgwIiwiXHU3NjljIiw3LCJcdTc2YTUiLDgsIlx1NzZhZlx1NzZiMFx1NzZiM1x1NzZiNSIsOSwiXHU3NmMwXHU3NmMxXHU3NmMzXHU1NTRhXHU5NjNmXHU1N2MzXHU2MzI4XHU1NGNlXHU1NTA5XHU1NGMwXHU3NjkxXHU3NjRjXHU4NTNjXHU3''@;'; + put 'put ''N2VlXHU4MjdlXHU3ODhkXHU3MjMxXHU5Njk4XHU5NzhkXHU2YzI4XHU1Yjg5XHU0ZmZhXHU2MzA5XHU2Njk3XHU1Y2I4XHU4MGZhXHU2ODQ4XHU4MGFlXHU2NjAyXHU3NmNlXHU1MWY5XHU2NTU2XHU3MWFjXHU3ZmYxXHU4ODg0XHU1MGIyXHU1OTY1XHU2MWNhXHU2ZmIzXHU4MmFkXHU2MzRj''@;'; + put 'put ''XHU2MjUyXHU1M2VkXHU1NDI3XHU3YjA2XHU1MTZiXHU3NWE0XHU1ZGY0XHU2MmQ0XHU4ZGNiXHU5Nzc2XHU2MjhhXHU4MDE5XHU1NzVkXHU5NzM4XHU3ZjYyXHU3MjM4XHU3NjdkXHU2N2NmXHU3NjdlXHU2NDQ2XHU0ZjcwXHU4ZDI1XHU2MmRjXHU3YTE3XHU2NTkxXHU3M2VkXHU2NDJjXHU2''@;'; + put 'put ''MjczXHU4MjJjXHU5ODgxXHU2NzdmXHU3MjQ4XHU2MjZlXHU2MmNjXHU0ZjM0XHU3NGUzXHU1MzRhXHU1MjllXHU3ZWNhXHU5MGE2XHU1ZTJlXHU2ODg2XHU2OTljXHU4MTgwXHU3ZWQxXHU2OGQyXHU3OGM1XHU4NjhjXHU5NTUxXHU1MDhkXHU4YzI0XHU4MmRlXHU4MGRlXHU1MzA1XHU4OTEy''@;'; + put 'put ''XHU1MjY1Il0sWyJiMTQwIiwiXHU3NmM0XHU3NmM3XHU3NmM5XHU3NmNiXHU3NmNjXHU3NmQzXHU3NmQ1XHU3NmQ5XHU3NmRhXHU3NmRjXHU3NmRkXHU3NmRlXHU3NmUwIiw0LCJcdTc2ZTYiLDcsIlx1NzZmMFx1NzZmM1x1NzZmNVx1NzZmNlx1NzZmN1x1NzZmYVx1NzZmYlx1NzZmZFx1NzZm''@;'; + put 'put ''Zlx1NzcwMFx1NzcwMlx1NzcwM1x1NzcwNVx1NzcwNlx1NzcwYVx1NzcwY1x1NzcwZSIsMTAsIlx1NzcxYlx1NzcxY1x1NzcxZFx1NzcxZVx1NzcyMVx1NzcyM1x1NzcyNFx1NzcyNVx1NzcyN1x1NzcyYVx1NzcyYiJdLFsiYjE4MCIsIlx1NzcyY1x1NzcyZVx1NzczMCIsNCwiXHU3NzM5XHU3''@;'; + put 'put ''NzNiXHU3NzNkXHU3NzNlXHU3NzNmXHU3NzQyXHU3NzQ0XHU3NzQ1XHU3NzQ2XHU3NzQ4Iiw3LCJcdTc3NTIiLDcsIlx1Nzc1Y1x1ODU4NFx1OTZmOVx1NGZkZFx1NTgyMVx1OTk3MVx1NWI5ZFx1NjJiMVx1NjJhNVx1NjZiNFx1OGM3OVx1OWM4ZFx1NzIwNlx1Njc2Zlx1Nzg5MVx1NjBiMlx1''@;'; + put 'put ''NTM1MVx1NTMxN1x1OGY4OFx1ODBjY1x1OGQxZFx1OTRhMVx1NTAwZFx1NzJjOFx1NTkwN1x1NjBlYlx1NzExOVx1ODhhYlx1NTk1NFx1ODJlZlx1NjcyY1x1N2IyOFx1NWQyOVx1N2VmN1x1NzUyZFx1NmNmNVx1OGU2Nlx1OGZmOFx1OTAzY1x1OWYzYlx1NmJkNFx1OTExOVx1N2IxNFx1NWY3''@;'; + put 'put ''Y1x1NzhhN1x1ODRkNlx1ODUzZFx1NmJkNVx1NmJkOVx1NmJkNlx1NWUwMVx1NWU4N1x1NzVmOVx1OTVlZFx1NjU1ZFx1NWYwYVx1NWZjNVx1OGY5Zlx1NThjMVx1ODFjMlx1OTA3Zlx1OTY1Ylx1OTdhZFx1OGZiOVx1N2YxNlx1OGQyY1x1NjI0MVx1NGZiZlx1NTNkOFx1NTM1ZVx1OGZhOFx1''@;'; + put 'put ''OGZhOVx1OGZhYlx1OTA0ZFx1NjgwN1x1NWY2YVx1ODE5OFx1ODg2OFx1OWNkNlx1NjE4Ylx1NTIyYlx1NzYyYVx1NWY2Y1x1NjU4Y1x1NmZkMlx1NmVlOFx1NWJiZVx1NjQ0OFx1NTE3NVx1NTFiMFx1NjdjNFx1NGUxOVx1NzljOVx1OTk3Y1x1NzBiMyJdLFsiYjI0MCIsIlx1Nzc1ZFx1Nzc1''@;'; + put 'put ''ZVx1Nzc1Zlx1Nzc2MFx1Nzc2NFx1Nzc2N1x1Nzc2OVx1Nzc2YVx1Nzc2ZCIsMTEsIlx1Nzc3YVx1Nzc3Ylx1Nzc3Y1x1Nzc4MVx1Nzc4Mlx1Nzc4M1x1Nzc4NiIsNSwiXHU3NzhmXHU3NzkwXHU3NzkzIiwxMSwiXHU3N2ExXHU3N2EzXHU3N2E0XHU3N2E2XHU3N2E4XHU3N2FiXHU3N2FkXHU3''@;'; + put 'put ''N2FlXHU3N2FmXHU3N2IxXHU3N2IyXHU3N2I0XHU3N2I2Iiw0XSxbImIyODAiLCJcdTc3YmNcdTc3YmVcdTc3YzAiLDEyLCJcdTc3Y2UiLDgsIlx1NzdkOFx1NzdkOVx1NzdkYVx1NzdkZCIsNCwiXHU3N2U0XHU3NWM1XHU1ZTc2XHU3M2JiXHU4M2UwXHU2NGFkXHU2MmU4XHU5NGI1XHU2Y2Uy''@;'; + put 'put ''XHU1MzVhXHU1MmMzXHU2NDBmXHU5NGMyXHU3Yjk0XHU0ZjJmXHU1ZTFiXHU4MjM2XHU4MTE2XHU4MThhXHU2ZTI0XHU2Y2NhXHU5YTczXHU2MzU1XHU1MzVjXHU1NGZhXHU4ODY1XHU1N2UwXHU0ZTBkXHU1ZTAzXHU2YjY1XHU3YzNmXHU5MGU4XHU2MDE2XHU2NGU2XHU3MzFjXHU4OGMxXHU2''@;'; + put 'put ''NzUwXHU2MjRkXHU4ZDIyXHU3NzZjXHU4ZTI5XHU5MWM3XHU1ZjY5XHU4M2RjXHU4NTIxXHU5OTEwXHU1M2MyXHU4Njk1XHU2YjhiXHU2MGVkXHU2MGU4XHU3MDdmXHU4MmNkXHU4MjMxXHU0ZWQzXHU2Y2E3XHU4NWNmXHU2NGNkXHU3Y2Q5XHU2OWZkXHU2NmY5XHU4MzQ5XHU1Mzk1XHU3YjU2''@;'; + put 'put ''XHU0ZmE3XHU1MThjXHU2ZDRiXHU1YzQyXHU4ZTZkXHU2M2QyXHU1M2M5XHU4MzJjXHU4MzM2XHU2N2U1XHU3OGI0XHU2NDNkXHU1YmRmXHU1Yzk0XHU1ZGVlXHU4YmU3XHU2MmM2XHU2N2Y0XHU4YzdhXHU2NDAwXHU2M2JhXHU4NzQ5XHU5OThiXHU4YzE3XHU3ZjIwXHU5NGYyXHU0ZWE3XHU5''@;'; + put 'put ''NjEwXHU5OGE0XHU2NjBjXHU3MzE2Il0sWyJiMzQwIiwiXHU3N2U2XHU3N2U4XHU3N2VhXHU3N2VmXHU3N2YwXHU3N2YxXHU3N2YyXHU3N2Y0XHU3N2Y1XHU3N2Y3XHU3N2Y5XHU3N2ZhXHU3N2ZiXHU3N2ZjXHU3ODAzIiw1LCJcdTc4MGFcdTc4MGJcdTc4MGVcdTc4MGZcdTc4MTBcdTc4MTNc''@;'; + put 'put ''dTc4MTVcdTc4MTlcdTc4MWJcdTc4MWVcdTc4MjBcdTc4MjFcdTc4MjJcdTc4MjRcdTc4MjhcdTc4MmFcdTc4MmJcdTc4MmVcdTc4MmZcdTc4MzFcdTc4MzJcdTc4MzNcdTc4MzVcdTc4MzZcdTc4M2RcdTc4M2ZcdTc4NDFcdTc4NDJcdTc4NDNcdTc4NDRcdTc4NDZcdTc4NDhcdTc4NDlcdTc4''@;'; + put 'put ''NGFcdTc4NGJcdTc4NGRcdTc4NGZcdTc4NTFcdTc4NTNcdTc4NTRcdTc4NThcdTc4NTlcdTc4NWEiXSxbImIzODAiLCJcdTc4NWJcdTc4NWNcdTc4NWUiLDExLCJcdTc4NmYiLDcsIlx1Nzg3OFx1Nzg3OVx1Nzg3YVx1Nzg3Ylx1Nzg3ZCIsNiwiXHU1NzNhXHU1YzFkXHU1ZTM4XHU5NTdmXHU1''@;'; + put 'put ''MDdmXHU4MGEwXHU1MzgyXHU2NTVlXHU3NTQ1XHU1NTMxXHU1MDIxXHU4ZDg1XHU2Mjg0XHU5NDllXHU2NzFkXHU1NjMyXHU2ZjZlXHU1ZGUyXHU1NDM1XHU3MDkyXHU4ZjY2XHU2MjZmXHU2NGE0XHU2M2EzXHU1ZjdiXHU2Zjg4XHU5MGY0XHU4MWUzXHU4ZmIwXHU1YzE4XHU2NjY4XHU1ZmYx''@;'; + put 'put ''XHU2Yzg5XHU5NjQ4XHU4ZDgxXHU4ODZjXHU2NDkxXHU3OWYwXHU1N2NlXHU2YTU5XHU2MjEwXHU1NDQ4XHU0ZTU4XHU3YTBiXHU2MGU5XHU2Zjg0XHU4YmRhXHU2MjdmXHU5MDFlXHU5YThiXHU3OWU0XHU1NDAzXHU3NWY0XHU2MzAxXHU1MzE5XHU2YzYwXHU4ZmRmXHU1ZjFiXHU5YTcwXHU4''@;'; + put 'put ''MDNiXHU5ZjdmXHU0Zjg4XHU1YzNhXHU4ZDY0XHU3ZmM1XHU2NWE1XHU3MGJkXHU1MTQ1XHU1MWIyXHU4NjZiXHU1ZDA3XHU1YmEwXHU2MmJkXHU5MTZjXHU3NTc0XHU4ZTBjXHU3YTIwXHU2MTAxXHU3Yjc5XHU0ZWM3XHU3ZWY4XHU3Nzg1XHU0ZTExXHU4MWVkXHU1MjFkXHU1MWZhXHU2YTcx''@;'; + put 'put ''XHU1M2E4XHU4ZTg3XHU5NTA0XHU5NmNmXHU2ZWMxXHU5NjY0XHU2OTVhIl0sWyJiNDQwIiwiXHU3ODg0XHU3ODg1XHU3ODg2XHU3ODg4XHU3ODhhXHU3ODhiXHU3ODhmXHU3ODkwXHU3ODkyXHU3ODk0XHU3ODk1XHU3ODk2XHU3ODk5XHU3ODlkXHU3ODllXHU3OGEwXHU3OGEyXHU3OGE0XHU3''@;'; + put 'put ''OGE2XHU3OGE4Iiw3LCJcdTc4YjVcdTc4YjZcdTc4YjdcdTc4YjhcdTc4YmFcdTc4YmJcdTc4YmNcdTc4YmRcdTc4YmZcdTc4YzBcdTc4YzJcdTc4YzNcdTc4YzRcdTc4YzZcdTc4YzdcdTc4YzhcdTc4Y2NcdTc4Y2RcdTc4Y2VcdTc4Y2ZcdTc4ZDFcdTc4ZDJcdTc4ZDNcdTc4ZDZcdTc4ZDdc''@;'; + put 'put ''dTc4ZDhcdTc4ZGEiLDldLFsiYjQ4MCIsIlx1NzhlNFx1NzhlNVx1NzhlNlx1NzhlN1x1NzhlOVx1NzhlYVx1NzhlYlx1NzhlZCIsNCwiXHU3OGYzXHU3OGY1XHU3OGY2XHU3OGY4XHU3OGY5XHU3OGZiIiw1LCJcdTc5MDJcdTc5MDNcdTc5MDRcdTc5MDYiLDYsIlx1Nzg0MFx1NTBhOFx1Nzdk''@;'; + put 'put ''N1x1NjQxMFx1ODllNlx1NTkwNFx1NjNlM1x1NWRkZFx1N2E3Zlx1NjkzZFx1NGYyMFx1ODIzOVx1NTU5OFx1NGUzMlx1NzVhZVx1N2E5N1x1NWU2Mlx1NWU4YVx1OTVlZlx1NTIxYlx1NTQzOVx1NzA4YVx1NjM3Nlx1OTUyNFx1NTc4Mlx1NjYyNVx1NjkzZlx1OTE4N1x1NTUwN1x1NmRmM1x1''@;'; + put 'put ''N2VhZlx1ODgyMlx1NjIzM1x1N2VmMFx1NzViNVx1ODMyOFx1NzhjMVx1OTZjY1x1OGY5ZVx1NjE0OFx1NzRmN1x1OGJjZFx1NmI2NFx1NTIzYVx1OGQ1MFx1NmIyMVx1ODA2YVx1ODQ3MVx1NTZmMVx1NTMwNlx1NGVjZVx1NGUxYlx1NTFkMVx1N2M5N1x1OTE4Ylx1N2MwN1x1NGZjM1x1OGU3''@;'; + put 'put ''Zlx1N2JlMVx1N2E5Y1x1NjQ2N1x1NWQxNFx1NTBhY1x1ODEwNlx1NzYwMVx1N2NiOVx1NmRlY1x1N2ZlMFx1Njc1MVx1NWI1OFx1NWJmOFx1NzhjYlx1NjRhZVx1NjQxM1x1NjNhYVx1NjMyYlx1OTUxOVx1NjQyZFx1OGZiZVx1N2I1NFx1NzYyOVx1NjI1M1x1NTkyN1x1NTQ0Nlx1NmI3OVx1''@;'; + put 'put ''NTBhM1x1NjIzNFx1NWUyNlx1NmI4Nlx1NGVlM1x1OGQzN1x1ODg4Ylx1NWY4NVx1OTAyZSJdLFsiYjU0MCIsIlx1NzkwZCIsNSwiXHU3OTE0Iiw5LCJcdTc5MWYiLDQsIlx1NzkyNSIsMTQsIlx1NzkzNSIsNCwiXHU3OTNkXHU3OTNmXHU3OTQyXHU3OTQzXHU3OTQ0XHU3OTQ1XHU3OTQ3XHU3''@;'; + put 'put ''OTRhIiw4LCJcdTc5NTRcdTc5NTVcdTc5NThcdTc5NTlcdTc5NjFcdTc5NjMiXSxbImI1ODAiLCJcdTc5NjRcdTc5NjZcdTc5NjlcdTc5NmFcdTc5NmJcdTc5NmNcdTc5NmVcdTc5NzAiLDYsIlx1Nzk3OVx1Nzk3YiIsNCwiXHU3OTgyXHU3OTgzXHU3OTg2XHU3OTg3XHU3OTg4XHU3OTg5XHU3''@;'; + put 'put ''OThiXHU3OThjXHU3OThkXHU3OThlXHU3OTkwXHU3OTkxXHU3OTkyXHU2MDIwXHU4MDNkXHU2MmM1XHU0ZTM5XHU1MzU1XHU5MGY4XHU2M2I4XHU4MGM2XHU2NWU2XHU2YzJlXHU0ZjQ2XHU2MGVlXHU2ZGUxXHU4YmRlXHU1ZjM5XHU4NmNiXHU1ZjUzXHU2MzIxXHU1MTVhXHU4MzYxXHU2ODYz''@;'; + put 'put ''XHU1MjAwXHU2MzYzXHU4ZTQ4XHU1MDEyXHU1YzliXHU3OTc3XHU1YmZjXHU1MjMwXHU3YTNiXHU2MGJjXHU5MDUzXHU3NmQ3XHU1ZmI3XHU1Zjk3XHU3Njg0XHU4ZTZjXHU3MDZmXHU3NjdiXHU3YjQ5XHU3N2FhXHU1MWYzXHU5MDkzXHU1ODI0XHU0ZjRlXHU2ZWY0XHU4ZmVhXHU2NTRjXHU3''@;'; + put 'put ''YjFiXHU3MmM0XHU2ZGE0XHU3ZmRmXHU1YWUxXHU2MmI1XHU1ZTk1XHU1NzMwXHU4NDgyXHU3YjJjXHU1ZTFkXHU1ZjFmXHU5MDEyXHU3ZjE0XHU5OGEwXHU2MzgyXHU2ZWM3XHU3ODk4XHU3MGI5XHU1MTc4XHU5NzViXHU1N2FiXHU3NTM1XHU0ZjQzXHU3NTM4XHU1ZTk3XHU2MGU2XHU1OTYw''@;'; + put 'put ''XHU2ZGMwXHU2YmJmXHU3ODg5XHU1M2ZjXHU5NmQ1XHU1MWNiXHU1MjAxXHU2Mzg5XHU1NDBhXHU5NDkzXHU4YzAzXHU4ZGNjXHU3MjM5XHU3ODlmXHU4Nzc2XHU4ZmVkXHU4YzBkXHU1M2UwIl0sWyJiNjQwIiwiXHU3OTkzIiw2LCJcdTc5OWIiLDExLCJcdTc5YTgiLDEwLCJcdTc5YjQiLDQs''@;'; + put 'put ''Ilx1NzliY1x1NzliZlx1NzljMlx1NzljNFx1NzljNVx1NzljN1x1NzljOFx1NzljYVx1NzljY1x1NzljZVx1NzljZlx1NzlkMFx1NzlkM1x1NzlkNFx1NzlkNlx1NzlkN1x1NzlkOSIsNSwiXHU3OWUwXHU3OWUxXHU3OWUyXHU3OWU1XHU3OWU4XHU3OWVhIl0sWyJiNjgwIiwiXHU3OWVjXHU3''@;'; + put 'put ''OWVlXHU3OWYxIiw2LCJcdTc5ZjlcdTc5ZmFcdTc5ZmNcdTc5ZmVcdTc5ZmZcdTdhMDFcdTdhMDRcdTdhMDVcdTdhMDdcdTdhMDhcdTdhMDlcdTdhMGFcdTdhMGNcdTdhMGYiLDQsIlx1N2ExNVx1N2ExNlx1N2ExOFx1N2ExOVx1N2ExYlx1N2ExY1x1NGUwMVx1NzZlZlx1NTNlZVx1OTQ4OVx1''@;'; + put 'put ''OTg3Nlx1OWYwZVx1OTUyZFx1NWI5YVx1OGJhMlx1NGUyMlx1NGUxY1x1NTFhY1x1ODQ2M1x1NjFjMlx1NTJhOFx1NjgwYlx1NGY5N1x1NjA2Ylx1NTFiYlx1NmQxZVx1NTE1Y1x1NjI5Nlx1NjU5N1x1OTY2MVx1OGM0Nlx1OTAxN1x1NzVkOFx1OTBmZFx1Nzc2M1x1NmJkMlx1NzI4YVx1NzJl''@;'; + put 'put ''Y1x1OGJmYlx1NTgzNVx1Nzc3OVx1OGQ0Y1x1Njc1Y1x1OTU0MFx1ODA5YVx1NWVhNlx1NmUyMVx1NTk5Mlx1N2FlZlx1NzdlZFx1OTUzYlx1NmJiNVx1NjVhZFx1N2YwZVx1NTgwNlx1NTE1MVx1OTYxZlx1NWJmOVx1NThhOVx1NTQyOFx1OGU3Mlx1NjU2Nlx1OTg3Zlx1NTZlNFx1OTQ5ZFx1''@;'; + put 'put ''NzZmZVx1OTA0MVx1NjM4N1x1NTRjNlx1NTkxYVx1NTkzYVx1NTc5Ylx1OGViMlx1NjczNVx1OGRmYVx1ODIzNVx1NTI0MVx1NjBmMFx1NTgxNVx1ODZmZVx1NWNlOFx1OWU0NVx1NGZjNFx1OTg5ZFx1OGJiOVx1NWEyNVx1NjA3Nlx1NTM4NFx1NjI3Y1x1OTA0Zlx1OTEwMlx1OTk3Zlx1NjA2''@;'; + put 'put ''OVx1ODAwY1x1NTEzZlx1ODAzM1x1NWMxNFx1OTk3NVx1NmQzMVx1NGU4YyJdLFsiYjc0MCIsIlx1N2ExZFx1N2ExZlx1N2EyMVx1N2EyMlx1N2EyNCIsMTQsIlx1N2EzNFx1N2EzNVx1N2EzNlx1N2EzOFx1N2EzYVx1N2EzZVx1N2E0MCIsNSwiXHU3YTQ3Iiw5LCJcdTdhNTIiLDQsIlx1N2E1''@;'; + put 'put ''OCIsMTZdLFsiYjc4MCIsIlx1N2E2OSIsNiwiXHU3YTcxXHU3YTcyXHU3YTczXHU3YTc1XHU3YTdiXHU3YTdjXHU3YTdkXHU3YTdlXHU3YTgyXHU3YTg1XHU3YTg3XHU3YTg5XHU3YThhXHU3YThiXHU3YThjXHU3YThlXHU3YThmXHU3YTkwXHU3YTkzXHU3YTk0XHU3YTk5XHU3YTlhXHU3YTli''@;'; + put 'put ''XHU3YTllXHU3YWExXHU3YWEyXHU4ZDMwXHU1M2QxXHU3ZjVhXHU3YjRmXHU0ZjEwXHU0ZTRmXHU5NjAwXHU2Y2Q1XHU3M2QwXHU4NWU5XHU1ZTA2XHU3NTZhXHU3ZmZiXHU2YTBhXHU3N2ZlXHU5NDkyXHU3ZTQxXHU1MWUxXHU3MGU2XHU1M2NkXHU4ZmQ0XHU4MzAzXHU4ZDI5XHU3MmFmXHU5''@;'; + put 'put ''OTZkXHU2Y2RiXHU1NzRhXHU4MmIzXHU2NWI5XHU4MGFhXHU2MjNmXHU5NjMyXHU1OWE4XHU0ZWZmXHU4YmJmXHU3ZWJhXHU2NTNlXHU4M2YyXHU5NzVlXHU1NTYxXHU5OGRlXHU4MGE1XHU1MzJhXHU4YmZkXHU1NDIwXHU4MGJhXHU1ZTlmXHU2Y2I4XHU4ZDM5XHU4MmFjXHU5MTVhXHU1NDI5''@;'; + put 'put ''XHU2YzFiXHU1MjA2XHU3ZWI3XHU1NzVmXHU3MTFhXHU2YzdlXHU3Yzg5XHU1OTRiXHU0ZWZkXHU1ZmZmXHU2MTI0XHU3Y2FhXHU0ZTMwXHU1YzAxXHU2N2FiXHU4NzAyXHU1Y2YwXHU5NTBiXHU5OGNlXHU3NWFmXHU3MGZkXHU5MDIyXHU1MWFmXHU3ZjFkXHU4YmJkXHU1OTQ5XHU1MWU0XHU0''@;'; + put 'put ''ZjViXHU1NDI2XHU1OTJiXHU2NTc3XHU4MGE0XHU1Yjc1XHU2Mjc2XHU2MmMyXHU4ZjkwXHU1ZTQ1XHU2YzFmXHU3YjI2XHU0ZjBmXHU0ZmQ4XHU2NzBkIl0sWyJiODQwIiwiXHU3YWEzXHU3YWE0XHU3YWE3XHU3YWE5XHU3YWFhXHU3YWFiXHU3YWFlIiw0LCJcdTdhYjQiLDEwLCJcdTdhYzAi''@;'; + put 'put ''LDEwLCJcdTdhY2MiLDksIlx1N2FkN1x1N2FkOFx1N2FkYVx1N2FkYlx1N2FkY1x1N2FkZFx1N2FlMVx1N2FlMlx1N2FlNFx1N2FlNyIsNSwiXHU3YWVlXHU3YWYwXHU3YWYxXHU3YWYyXHU3YWYzIl0sWyJiODgwIiwiXHU3YWY0Iiw0LCJcdTdhZmJcdTdhZmNcdTdhZmVcdTdiMDBcdTdiMDFc''@;'; + put 'put ''dTdiMDJcdTdiMDVcdTdiMDdcdTdiMDlcdTdiMGNcdTdiMGRcdTdiMGVcdTdiMTBcdTdiMTJcdTdiMTNcdTdiMTZcdTdiMTdcdTdiMThcdTdiMWFcdTdiMWNcdTdiMWRcdTdiMWZcdTdiMjFcdTdiMjJcdTdiMjNcdTdiMjdcdTdiMjlcdTdiMmRcdTZkNmVcdTZkYWFcdTc5OGZcdTg4YjFcdTVm''@;'; + put 'put ''MTdcdTc1MmJcdTYyOWFcdThmODVcdTRmZWZcdTkxZGNcdTY1YTdcdTgxMmZcdTgxNTFcdTVlOWNcdTgxNTBcdThkNzRcdTUyNmZcdTg5ODZcdThkNGJcdTU5MGRcdTUwODVcdTRlZDhcdTk2MWNcdTcyMzZcdTgxNzlcdThkMWZcdTViY2NcdThiYTNcdTk2NDRcdTU5ODdcdTdmMWFcdTU0OTBc''@;'; + put 'put ''dTU2NzZcdTU2MGVcdThiZTVcdTY1MzlcdTY5ODJcdTk0OTlcdTc2ZDZcdTZlODlcdTVlNzJcdTc1MThcdTY3NDZcdTY3ZDFcdTdhZmZcdTgwOWRcdThkNzZcdTYxMWZcdTc5YzZcdTY1NjJcdThkNjNcdTUxODhcdTUyMWFcdTk0YTJcdTdmMzhcdTgwOWJcdTdlYjJcdTVjOTdcdTZlMmZcdTY3''@;'; + put 'put ''NjBcdTdiZDlcdTc2OGJcdTlhZDhcdTgxOGZcdTdmOTRcdTdjZDVcdTY0MWVcdTk1NTBcdTdhM2ZcdTU0NGFcdTU0ZTVcdTZiNGNcdTY0MDFcdTYyMDhcdTllM2RcdTgwZjNcdTc1OTlcdTUyNzJcdTk3NjlcdTg0NWJcdTY4M2NcdTg2ZTRcdTk2MDFcdTk2OTRcdTk0ZWNcdTRlMmFcdTU0MDRc''@;'; + put 'put ''dTdlZDlcdTY4MzlcdThkZGZcdTgwMTVcdTY2ZjRcdTVlOWFcdTdmYjkiXSxbImI5NDAiLCJcdTdiMmZcdTdiMzBcdTdiMzJcdTdiMzRcdTdiMzVcdTdiMzZcdTdiMzdcdTdiMzlcdTdiM2JcdTdiM2RcdTdiM2YiLDUsIlx1N2I0Nlx1N2I0OFx1N2I0YVx1N2I0ZFx1N2I0ZVx1N2I1M1x1N2I1''@;'; + put 'put ''NVx1N2I1N1x1N2I1OVx1N2I1Y1x1N2I1ZVx1N2I1Zlx1N2I2MVx1N2I2MyIsMTAsIlx1N2I2Zlx1N2I3MFx1N2I3M1x1N2I3NFx1N2I3Nlx1N2I3OFx1N2I3YVx1N2I3Y1x1N2I3ZFx1N2I3Zlx1N2I4MVx1N2I4Mlx1N2I4M1x1N2I4NFx1N2I4NiIsNiwiXHU3YjhlXHU3YjhmIl0sWyJiOTgw''@;'; + put 'put ''IiwiXHU3YjkxXHU3YjkyXHU3YjkzXHU3Yjk2XHU3Yjk4XHU3Yjk5XHU3YjlhXHU3YjliXHU3YjllXHU3YjlmXHU3YmEwXHU3YmEzXHU3YmE0XHU3YmE1XHU3YmFlXHU3YmFmXHU3YmIwXHU3YmIyXHU3YmIzXHU3YmI1XHU3YmI2XHU3YmI3XHU3YmI5Iiw3LCJcdTdiYzJcdTdiYzNcdTdiYzRc''@;'; + put 'put ''dTU3YzJcdTgwM2ZcdTY4OTdcdTVkZTVcdTY1M2JcdTUyOWZcdTYwNmRcdTlmOWFcdTRmOWJcdThlYWNcdTUxNmNcdTViYWJcdTVmMTNcdTVkZTlcdTZjNWVcdTYyZjFcdThkMjFcdTUxNzFcdTk0YTlcdTUyZmVcdTZjOWZcdTgyZGZcdTcyZDdcdTU3YTJcdTY3ODRcdThkMmRcdTU5MWZcdThm''@;'; + put 'put ''OWNcdTgzYzdcdTU0OTVcdTdiOGRcdTRmMzBcdTZjYmRcdTViNjRcdTU5ZDFcdTlmMTNcdTUzZTRcdTg2Y2FcdTlhYThcdThjMzdcdTgwYTFcdTY1NDVcdTk4N2VcdTU2ZmFcdTk2YzdcdTUyMmVcdTc0ZGNcdTUyNTBcdTViZTFcdTYzMDJcdTg5MDJcdTRlNTZcdTYyZDBcdTYwMmFcdTY4ZmFc''@;'; + put 'put ''dTUxNzNcdTViOThcdTUxYTBcdTg5YzJcdTdiYTFcdTk5ODZcdTdmNTBcdTYwZWZcdTcwNGNcdThkMmZcdTUxNDlcdTVlN2ZcdTkwMWJcdTc0NzBcdTg5YzRcdTU3MmRcdTc4NDVcdTVmNTJcdTlmOWZcdTk1ZmFcdThmNjhcdTliM2NcdThiZTFcdTc2NzhcdTY4NDJcdTY3ZGNcdThkZWFcdThk''@;'; + put 'put ''MzVcdTUyM2RcdThmOGFcdTZlZGFcdTY4Y2RcdTk1MDVcdTkwZWRcdTU2ZmRcdTY3OWNcdTg4ZjlcdThmYzdcdTU0YzgiXSxbImJhNDAiLCJcdTdiYzVcdTdiYzhcdTdiYzlcdTdiY2FcdTdiY2JcdTdiY2RcdTdiY2VcdTdiY2ZcdTdiZDBcdTdiZDJcdTdiZDQiLDQsIlx1N2JkYlx1N2JkY1x1''@;'; + put 'put ''N2JkZVx1N2JkZlx1N2JlMFx1N2JlMlx1N2JlM1x1N2JlNFx1N2JlN1x1N2JlOFx1N2JlOVx1N2JlYlx1N2JlY1x1N2JlZFx1N2JlZlx1N2JmMFx1N2JmMiIsNCwiXHU3YmY4XHU3YmY5XHU3YmZhXHU3YmZiXHU3YmZkXHU3YmZmIiw3LCJcdTdjMDhcdTdjMDlcdTdjMGFcdTdjMGRcdTdjMGVc''@;'; + put 'put ''dTdjMTAiLDUsIlx1N2MxN1x1N2MxOFx1N2MxOSJdLFsiYmE4MCIsIlx1N2MxYSIsNCwiXHU3YzIwIiw1LCJcdTdjMjhcdTdjMjlcdTdjMmIiLDEyLCJcdTdjMzkiLDUsIlx1N2M0Mlx1OWFiOFx1NWI2OVx1NmQ3N1x1NmMyNlx1NGVhNVx1NWJiM1x1OWE4N1x1OTE2M1x1NjFhOFx1OTBhZlx1''@;'; + put 'put ''OTdlOVx1NTQyYlx1NmRiNVx1NWJkMlx1NTFmZFx1NTU4YVx1N2Y1NVx1N2ZmMFx1NjRiY1x1NjM0ZFx1NjVmMVx1NjFiZVx1NjA4ZFx1NzEwYVx1NmM1N1x1NmM0OVx1NTkyZlx1Njc2ZFx1ODIyYVx1NThkNVx1NTY4ZVx1OGM2YVx1NmJlYlx1OTBkZFx1NTk3ZFx1ODAxN1x1NTNmN1x1NmQ2''@;'; + put 'put ''OVx1NTQ3NVx1NTU5ZFx1ODM3N1x1ODNjZlx1NjgzOFx1NzliZVx1NTQ4Y1x1NGY1NVx1NTQwOFx1NzZkMlx1OGM4OVx1OTYwMlx1NmNiM1x1NmRiOFx1OGQ2Ylx1ODkxMFx1OWU2NFx1OGQzYVx1NTYzZlx1OWVkMVx1NzVkNVx1NWY4OFx1NzJlMFx1NjA2OFx1NTRmY1x1NGVhOFx1NmEyYVx1''@;'; + put 'put ''ODg2MVx1NjA1Mlx1OGY3MFx1NTRjNFx1NzBkOFx1ODY3OVx1OWUzZlx1NmQyYVx1NWI4Zlx1NWYxOFx1N2VhMlx1NTU4OVx1NGZhZlx1NzMzNFx1NTQzY1x1NTM5YVx1NTAxOVx1NTQwZVx1NTQ3Y1x1NGU0ZVx1NWZmZFx1NzQ1YVx1NThmNlx1ODQ2Ylx1ODBlMVx1ODc3NFx1NzJkMFx1N2Nj''@;'; + put 'put ''YVx1NmU1NiJdLFsiYmI0MCIsIlx1N2M0MyIsOSwiXHU3YzRlIiwzNiwiXHU3Yzc1Iiw1LCJcdTdjN2UiLDldLFsiYmI4MCIsIlx1N2M4OFx1N2M4YSIsNiwiXHU3YzkzXHU3Yzk0XHU3Yzk2XHU3Yzk5XHU3YzlhXHU3YzliXHU3Y2EwXHU3Y2ExXHU3Y2EzXHU3Y2E2XHU3Y2E3XHU3Y2E4XHU3''@;'; + put 'put ''Y2E5XHU3Y2FiXHU3Y2FjXHU3Y2FkXHU3Y2FmXHU3Y2IwXHU3Y2I0Iiw0LCJcdTdjYmFcdTdjYmJcdTVmMjdcdTg2NGVcdTU1MmNcdTYyYTRcdTRlOTJcdTZjYWFcdTYyMzdcdTgyYjFcdTU0ZDdcdTUzNGVcdTczM2VcdTZlZDFcdTc1M2JcdTUyMTJcdTUzMTZcdThiZGRcdTY5ZDBcdTVmOGFc''@;'; + put 'put ''dTYwMDBcdTZkZWVcdTU3NGZcdTZiMjJcdTczYWZcdTY4NTNcdThmZDhcdTdmMTNcdTYzNjJcdTYwYTNcdTU1MjRcdTc1ZWFcdThjNjJcdTcxMTVcdTZkYTNcdTViYTZcdTVlN2JcdTgzNTJcdTYxNGNcdTllYzRcdTc4ZmFcdTg3NTdcdTdjMjdcdTc2ODdcdTUxZjBcdTYwZjZcdTcxNGNcdTY2''@;'; + put 'put ''NDNcdTVlNGNcdTYwNGRcdThjMGVcdTcwNzBcdTYzMjVcdThmODlcdTVmYmRcdTYwNjJcdTg2ZDRcdTU2ZGVcdTZiYzFcdTYwOTRcdTYxNjdcdTUzNDlcdTYwZTBcdTY2NjZcdThkM2ZcdTc5ZmRcdTRmMWFcdTcwZTlcdTZjNDdcdThiYjNcdThiZjJcdTdlZDhcdTgzNjRcdTY2MGZcdTVhNWFc''@;'; + put 'put ''dTliNDJcdTZkNTFcdTZkZjdcdThjNDFcdTZkM2JcdTRmMTlcdTcwNmJcdTgzYjdcdTYyMTZcdTYwZDFcdTk3MGRcdThkMjdcdTc5NzhcdTUxZmJcdTU3M2VcdTU3ZmFcdTY3M2FcdTc1NzhcdTdhM2RcdTc5ZWZcdTdiOTUiXSxbImJjNDAiLCJcdTdjYmZcdTdjYzBcdTdjYzJcdTdjYzNcdTdj''@;'; + put 'put ''YzRcdTdjYzZcdTdjYzlcdTdjY2JcdTdjY2UiLDYsIlx1N2NkOFx1N2NkYVx1N2NkYlx1N2NkZFx1N2NkZVx1N2NlMSIsNiwiXHU3Y2U5Iiw1LCJcdTdjZjAiLDcsIlx1N2NmOVx1N2NmYVx1N2NmYyIsMTMsIlx1N2QwYiIsNV0sWyJiYzgwIiwiXHU3ZDExIiwxNCwiXHU3ZDIxXHU3ZDIzXHU3''@;'; + put 'put ''ZDI0XHU3ZDI1XHU3ZDI2XHU3ZDI4XHU3ZDI5XHU3ZDJhXHU3ZDJjXHU3ZDJkXHU3ZDJlXHU3ZDMwIiw2LCJcdTgwOGNcdTk5NjVcdThmZjlcdTZmYzBcdThiYTVcdTllMjFcdTU5ZWNcdTdlZTlcdTdmMDlcdTU0MDlcdTY3ODFcdTY4ZDhcdThmOTFcdTdjNGRcdTk2YzZcdTUzY2FcdTYwMjVc''@;'; + put 'put ''dTc1YmVcdTZjNzJcdTUzNzNcdTVhYzlcdTdlYTdcdTYzMjRcdTUxZTBcdTgxMGFcdTVkZjFcdTg0ZGZcdTYyODBcdTUxODBcdTViNjNcdTRmMGVcdTc5NmRcdTUyNDJcdTYwYjhcdTZkNGVcdTViYzRcdTViYzJcdThiYTFcdThiYjBcdTY1ZTJcdTVmY2NcdTk2NDVcdTU5OTNcdTdlZTdcdTdl''@;'; + put 'put ''YWFcdTU2MDlcdTY3YjdcdTU5MzlcdTRmNzNcdTViYjZcdTUyYTBcdTgzNWFcdTk4OGFcdThkM2VcdTc1MzJcdTk0YmVcdTUwNDdcdTdhM2NcdTRlZjdcdTY3YjZcdTlhN2VcdTVhYzFcdTZiN2NcdTc2ZDFcdTU3NWFcdTVjMTZcdTdiM2FcdTk1ZjRcdTcxNGVcdTUxN2NcdTgwYTlcdTgyNzBc''@;'; + put 'put ''dTU5NzhcdTdmMDRcdTgzMjdcdTY4YzBcdTY3ZWNcdTc4YjFcdTc4NzdcdTYyZTNcdTYzNjFcdTdiODBcdTRmZWRcdTUyNmFcdTUxY2ZcdTgzNTBcdTY5ZGJcdTkyNzRcdThkZjVcdThkMzFcdTg5YzFcdTk1MmVcdTdiYWRcdTRlZjYiXSxbImJkNDAiLCJcdTdkMzciLDU0LCJcdTdkNmYiLDdd''@;'; + put 'put ''LFsiYmQ4MCIsIlx1N2Q3OCIsMzIsIlx1NTA2NVx1ODIzMFx1NTI1MVx1OTk2Zlx1NmUxMFx1NmU4NVx1NmRhN1x1NWVmYVx1NTBmNVx1NTlkY1x1NWMwNlx1NmQ0Nlx1NmM1Zlx1NzU4Nlx1ODQ4Ylx1Njg2OFx1NTk1Nlx1OGJiMlx1NTMyMFx1OTE3MVx1OTY0ZFx1ODU0OVx1NjkxMlx1Nzkw''@;'; + put 'put ''MVx1NzEyNlx1ODBmNlx1NGVhNFx1OTBjYVx1NmQ0N1x1OWE4NFx1NWEwN1x1NTZiY1x1NjQwNVx1OTRmMFx1NzdlYlx1NGZhNVx1ODExYVx1NzJlMVx1ODlkMlx1OTk3YVx1N2YzNFx1N2VkZVx1NTI3Zlx1NjU1OVx1OTE3NVx1OGY3Zlx1OGY4M1x1NTNlYlx1N2E5Nlx1NjNlZFx1NjNhNVx1''@;'; + put 'put ''NzY4Nlx1NzlmOFx1ODg1N1x1OTYzNlx1NjIyYVx1NTJhYlx1ODI4Mlx1Njg1NFx1Njc3MFx1NjM3N1x1Nzc2Ylx1N2FlZFx1NmQwMVx1N2VkM1x1ODllM1x1NTlkMFx1NjIxMlx1ODVjOVx1ODJhNVx1NzU0Y1x1NTAxZlx1NGVjYlx1NzVhNVx1OGJlYlx1NWM0YVx1NWRmZVx1N2I0Ylx1NjVh''@;'; + put 'put ''NFx1OTFkMVx1NGVjYVx1NmQyNVx1ODk1Zlx1N2QyN1x1OTUyNlx1NGVjNVx1OGMyOFx1OGZkYlx1OTc3M1x1NjY0Ylx1Nzk4MVx1OGZkMVx1NzBlY1x1NmQ3OCJdLFsiYmU0MCIsIlx1N2Q5OSIsMTIsIlx1N2RhNyIsNiwiXHU3ZGFmIiw0Ml0sWyJiZTgwIiwiXHU3ZGRhIiwzMiwiXHU1YzNk''@;'; + put 'put ''XHU1MmIyXHU4MzQ2XHU1MTYyXHU4MzBlXHU3NzViXHU2Njc2XHU5Y2I4XHU0ZWFjXHU2MGNhXHU3Y2JlXHU3Y2IzXHU3ZWNmXHU0ZTk1XHU4YjY2XHU2NjZmXHU5ODg4XHU5NzU5XHU1ODgzXHU2NTZjXHU5NTVjXHU1Zjg0XHU3NWM5XHU5NzU2XHU3YWRmXHU3YWRlXHU1MWMwXHU3MGFmXHU3''@;'; + put 'put ''YTk4XHU2M2VhXHU3YTc2XHU3ZWEwXHU3Mzk2XHU5N2VkXHU0ZTQ1XHU3MDc4XHU0ZTVkXHU5MTUyXHU1M2E5XHU2NTUxXHU2NWU3XHU4MWZjXHU4MjA1XHU1NDhlXHU1YzMxXHU3NTlhXHU5N2EwXHU2MmQ4XHU3MmQ5XHU3NWJkXHU1YzQ1XHU5YTc5XHU4M2NhXHU1YzQwXHU1NDgwXHU3N2U5''@;'; + put 'put ''XHU0ZTNlXHU2Y2FlXHU4MDVhXHU2MmQyXHU2MzZlXHU1ZGU4XHU1MTc3XHU4ZGRkXHU4ZTFlXHU5NTJmXHU0ZmYxXHU1M2U1XHU2MGU3XHU3MGFjXHU1MjY3XHU2MzUwXHU5ZTQzXHU1YTFmXHU1MDI2XHU3NzM3XHU1Mzc3XHU3ZWUyXHU2NDg1XHU2NTJiXHU2Mjg5XHU2Mzk4XHU1MDE0XHU3''@;'; + put 'put ''MjM1XHU4OWM5XHU1MWIzXHU4YmMwXHU3ZWRkXHU1NzQ3XHU4M2NjXHU5NGE3XHU1MTliXHU1NDFiXHU1Y2ZiIl0sWyJiZjQwIiwiXHU3ZGZiIiw2Ml0sWyJiZjgwIiwiXHU3ZTNhXHU3ZTNjIiw0LCJcdTdlNDIiLDQsIlx1N2U0OCIsMjEsIlx1NGZjYVx1N2FlM1x1NmQ1YVx1OTBlMVx1OWE4''@;'; + put 'put ''Zlx1NTU4MFx1NTQ5Nlx1NTM2MVx1NTRhZlx1NWYwMFx1NjNlOVx1Njk3N1x1NTFlZlx1NjE2OFx1NTIwYVx1NTgyYVx1NTJkOFx1NTc0ZVx1NzgwZFx1NzcwYlx1NWViN1x1NjE3N1x1N2NlMFx1NjI1Ylx1NjI5N1x1NGVhMlx1NzA5NVx1ODAwM1x1NjJmN1x1NzBlNFx1OTc2MFx1NTc3N1x1''@;'; + put 'put ''ODJkYlx1NjdlZlx1NjhmNVx1NzhkNVx1OTg5N1x1NzlkMVx1NThmM1x1NTRiM1x1NTNlZlx1NmUzNFx1NTE0Ylx1NTIzYlx1NWJhMlx1OGJmZVx1ODBhZlx1NTU0M1x1NTdhNlx1NjA3M1x1NTc1MVx1NTQyZFx1N2E3YVx1NjA1MFx1NWI1NFx1NjNhN1x1NjJhMFx1NTNlM1x1NjI2M1x1NWJj''@;'; + put 'put ''N1x1NjdhZlx1NTRlZFx1N2E5Zlx1ODJlNlx1OTE3N1x1NWU5M1x1ODhlNFx1NTkzOFx1NTdhZVx1NjMwZVx1OGRlOFx1ODBlZlx1NTc1N1x1N2I3N1x1NGZhOVx1NWZlYlx1NWJiZFx1NmIzZVx1NTMyMVx1N2I1MFx1NzJjMlx1Njg0Nlx1NzdmZlx1NzczNlx1NjVmN1x1NTFiNVx1NGU4Zlx1''@;'; + put 'put ''NzZkNFx1NWNiZlx1N2FhNVx1ODQ3NVx1NTk0ZVx1OWI0MVx1NTA4MCJdLFsiYzA0MCIsIlx1N2U1ZSIsMzUsIlx1N2U4MyIsMjMsIlx1N2U5Y1x1N2U5ZFx1N2U5ZSJdLFsiYzA4MCIsIlx1N2VhZVx1N2ViNFx1N2ViYlx1N2ViY1x1N2VkNlx1N2VlNFx1N2VlY1x1N2VmOVx1N2YwYVx1N2Yx''@;'; + put 'put ''MFx1N2YxZVx1N2YzN1x1N2YzOVx1N2YzYiIsNiwiXHU3ZjQzXHU3ZjQ2Iiw5LCJcdTdmNTJcdTdmNTNcdTk5ODhcdTYxMjdcdTZlODNcdTU3NjRcdTY2MDZcdTYzNDZcdTU2ZjBcdTYyZWNcdTYyNjlcdTVlZDNcdTk2MTRcdTU3ODNcdTYyYzlcdTU1ODdcdTg3MjFcdTgxNGFcdThmYTNcdTU1''@;'; + put 'put ''NjZcdTgzYjFcdTY3NjVcdThkNTZcdTg0ZGRcdTVhNmFcdTY4MGZcdTYyZTZcdTdiZWVcdTk2MTFcdTUxNzBcdTZmOWNcdThjMzBcdTYzZmRcdTg5YzhcdTYxZDJcdTdmMDZcdTcwYzJcdTZlZTVcdTc0MDVcdTY5OTRcdTcyZmNcdTVlY2FcdTkwY2VcdTY3MTdcdTZkNmFcdTYzNWVcdTUyYjNc''@;'; + put 'put ''dTcyNjJcdTgwMDFcdTRmNmNcdTU5ZTVcdTkxNmFcdTcwZDlcdTZkOWRcdTUyZDJcdTRlNTBcdTk2ZjdcdTk1NmRcdTg1N2VcdTc4Y2FcdTdkMmZcdTUxMjFcdTU3OTJcdTY0YzJcdTgwOGJcdTdjN2JcdTZjZWFcdTY4ZjFcdTY5NWVcdTUxYjdcdTUzOThcdTY4YThcdTcyODFcdTllY2VcdTdi''@;'; + put 'put ''ZjFcdTcyZjhcdTc5YmJcdTZmMTNcdTc0MDZcdTY3NGVcdTkxY2NcdTljYTRcdTc5M2NcdTgzODlcdTgzNTRcdTU0MGZcdTY4MTdcdTRlM2RcdTUzODlcdTUyYjFcdTc4M2VcdTUzODZcdTUyMjlcdTUwODhcdTRmOGJcdTRmZDAiXSxbImMxNDAiLCJcdTdmNTZcdTdmNTlcdTdmNWJcdTdmNWNc''@;'; + put 'put ''dTdmNWRcdTdmNWVcdTdmNjBcdTdmNjMiLDQsIlx1N2Y2Ylx1N2Y2Y1x1N2Y2ZFx1N2Y2Zlx1N2Y3MFx1N2Y3M1x1N2Y3NVx1N2Y3Nlx1N2Y3N1x1N2Y3OFx1N2Y3YVx1N2Y3Ylx1N2Y3Y1x1N2Y3ZFx1N2Y3Zlx1N2Y4MFx1N2Y4MiIsNywiXHU3ZjhiXHU3ZjhkXHU3ZjhmIiw0LCJcdTdmOTUi''@;'; + put 'put ''LDQsIlx1N2Y5Ylx1N2Y5Y1x1N2ZhMFx1N2ZhMlx1N2ZhM1x1N2ZhNVx1N2ZhNlx1N2ZhOCIsNiwiXHU3ZmIxIl0sWyJjMTgwIiwiXHU3ZmIzIiw0LCJcdTdmYmFcdTdmYmJcdTdmYmVcdTdmYzBcdTdmYzJcdTdmYzNcdTdmYzRcdTdmYzZcdTdmYzdcdTdmYzhcdTdmYzlcdTdmY2JcdTdmY2Rc''@;'; + put 'put ''dTdmY2YiLDQsIlx1N2ZkNlx1N2ZkN1x1N2ZkOSIsNSwiXHU3ZmUyXHU3ZmUzXHU3NWUyXHU3YWNiXHU3YzkyXHU2Y2E1XHU5NmI2XHU1MjliXHU3NDgzXHU1NGU5XHU0ZmU5XHU4MDU0XHU4M2IyXHU4ZmRlXHU5NTcwXHU1ZWM5XHU2MDFjXHU2ZDlmXHU1ZTE4XHU2NTViXHU4MTM4XHU5NGZl''@;'; + put 'put ''XHU2MDRiXHU3MGJjXHU3ZWMzXHU3Y2FlXHU1MWM5XHU2ODgxXHU3Y2IxXHU4MjZmXHU0ZTI0XHU4Zjg2XHU5MWNmXHU2NjdlXHU0ZWFlXHU4YzA1XHU2NGE5XHU4MDRhXHU1MGRhXHU3NTk3XHU3MWNlXHU1YmU1XHU4ZmJkXHU2ZjY2XHU0ZTg2XHU2NDgyXHU5NTYzXHU1ZWQ2XHU2NTk5XHU1''@;'; + put 'put ''MjE3XHU4OGMyXHU3MGM4XHU1MmEzXHU3MzBlXHU3NDMzXHU2Nzk3XHU3OGY3XHU5NzE2XHU0ZTM0XHU5MGJiXHU5Y2RlXHU2ZGNiXHU1MWRiXHU4ZDQxXHU1NDFkXHU2MmNlXHU3M2IyXHU4M2YxXHU5NmY2XHU5Zjg0XHU5NGMzXHU0ZjM2XHU3ZjlhXHU1MWNjXHU3MDc1XHU5Njc1XHU1Y2Fk''@;'; + put 'put ''XHU5ODg2XHU1M2U2XHU0ZWU0XHU2ZTljXHU3NDA5XHU2OWI0XHU3ODZiXHU5OThmXHU3NTU5XHU1MjE4XHU3NjI0XHU2ZDQxXHU2N2YzXHU1MTZkXHU5Zjk5XHU4MDRiXHU1NDk5XHU3YjNjXHU3YWJmIl0sWyJjMjQwIiwiXHU3ZmU0XHU3ZmU3XHU3ZmU4XHU3ZmVhXHU3ZmViXHU3ZmVjXHU3''@;'; + put 'put ''ZmVkXHU3ZmVmXHU3ZmYyXHU3ZmY0Iiw2LCJcdTdmZmRcdTdmZmVcdTdmZmZcdTgwMDJcdTgwMDdcdTgwMDhcdTgwMDlcdTgwMGFcdTgwMGVcdTgwMGZcdTgwMTFcdTgwMTNcdTgwMWFcdTgwMWJcdTgwMWRcdTgwMWVcdTgwMWZcdTgwMjFcdTgwMjNcdTgwMjRcdTgwMmIiLDUsIlx1ODAzMlx1''@;'; + put 'put ''ODAzNFx1ODAzOVx1ODAzYVx1ODAzY1x1ODAzZVx1ODA0MFx1ODA0MVx1ODA0NFx1ODA0NVx1ODA0N1x1ODA0OFx1ODA0OVx1ODA0ZVx1ODA0Zlx1ODA1MFx1ODA1MVx1ODA1M1x1ODA1NVx1ODA1Nlx1ODA1NyJdLFsiYzI4MCIsIlx1ODA1OVx1ODA1YiIsMTMsIlx1ODA2YiIsNSwiXHU4MDcy''@;'; + put 'put ''IiwxMSwiXHU5Njg2XHU1Nzg0XHU2MmUyXHU5NjQ3XHU2OTdjXHU1YTA0XHU2NDAyXHU3YmQzXHU2ZjBmXHU5NjRiXHU4MmE2XHU1MzYyXHU5ODg1XHU1ZTkwXHU3MDg5XHU2M2IzXHU1MzY0XHU4NjRmXHU5YzgxXHU5ZTkzXHU3ODhjXHU5NzMyXHU4ZGVmXHU4ZDQyXHU5ZTdmXHU2ZjVlXHU3''@;'; + put 'put ''OTg0XHU1ZjU1XHU5NjQ2XHU2MjJlXHU5YTc0XHU1NDE1XHU5NGRkXHU0ZmEzXHU2NWM1XHU1YzY1XHU1YzYxXHU3ZjE1XHU4NjUxXHU2YzJmXHU1ZjhiXHU3Mzg3XHU2ZWU0XHU3ZWZmXHU1Y2U2XHU2MzFiXHU1YjZhXHU2ZWU2XHU1Mzc1XHU0ZTcxXHU2M2EwXHU3NTY1XHU2MmExXHU4ZjZl''@;'; + put 'put ''XHU0ZjI2XHU0ZWQxXHU2Y2E2XHU3ZWI2XHU4YmJhXHU4NDFkXHU4N2JhXHU3ZjU3XHU5MDNiXHU5NTIzXHU3YmE5XHU5YWExXHU4OGY4XHU4NDNkXHU2ZDFiXHU5YTg2XHU3ZWRjXHU1OTg4XHU5ZWJiXHU3MzliXHU3ODAxXHU4NjgyXHU5YTZjXHU5YTgyXHU1NjFiXHU1NDE3XHU1N2NiXHU0''@;'; + put 'put ''ZTcwXHU5ZWE2XHU1MzU2XHU4ZmM4XHU4MTA5XHU3NzkyXHU5OTkyXHU4NmVlXHU2ZWUxXHU4NTEzXHU2NmZjXHU2MTYyXHU2ZjJiIl0sWyJjMzQwIiwiXHU4MDdlXHU4MDgxXHU4MDgyXHU4MDg1XHU4MDg4XHU4MDhhXHU4MDhkIiw1LCJcdTgwOTRcdTgwOTVcdTgwOTdcdTgwOTlcdTgwOWVc''@;'; + put 'put ''dTgwYTNcdTgwYTZcdTgwYTdcdTgwYThcdTgwYWNcdTgwYjBcdTgwYjNcdTgwYjVcdTgwYjZcdTgwYjhcdTgwYjlcdTgwYmJcdTgwYzVcdTgwYzciLDQsIlx1ODBjZiIsNiwiXHU4MGQ4XHU4MGRmXHU4MGUwXHU4MGUyXHU4MGUzXHU4MGU2XHU4MGVlXHU4MGY1XHU4MGY3XHU4MGY5XHU4MGZi''@;'; + put 'put ''XHU4MGZlXHU4MGZmXHU4MTAwXHU4MTAxXHU4MTAzXHU4MTA0XHU4MTA1XHU4MTA3XHU4MTA4XHU4MTBiIl0sWyJjMzgwIiwiXHU4MTBjXHU4MTE1XHU4MTE3XHU4MTE5XHU4MTFiXHU4MTFjXHU4MTFkXHU4MTFmIiwxMiwiXHU4MTJkXHU4MTJlXHU4MTMwXHU4MTMzXHU4MTM0XHU4MTM1XHU4''@;'; + put 'put ''MTM3XHU4MTM5Iiw0LCJcdTgxM2ZcdThjMjlcdTgyOTJcdTgzMmJcdTc2ZjJcdTZjMTNcdTVmZDlcdTgzYmRcdTczMmJcdTgzMDVcdTk1MWFcdTZiZGJcdTc3ZGJcdTk0YzZcdTUzNmZcdTgzMDJcdTUxOTJcdTVlM2RcdThjOGNcdThkMzhcdTRlNDhcdTczYWJcdTY3OWFcdTY4ODVcdTkxNzZc''@;'; + put 'put ''dTk3MDlcdTcxNjRcdTZjYTFcdTc3MDlcdTVhOTJcdTk1NDFcdTZiY2ZcdTdmOGVcdTY2MjdcdTViZDBcdTU5YjlcdTVhOWFcdTk1ZThcdTk1ZjdcdTRlZWNcdTg0MGNcdTg0OTlcdTZhYWNcdTc2ZGZcdTk1MzBcdTczMWJcdTY4YTZcdTViNWZcdTc3MmZcdTkxOWFcdTk3NjFcdTdjZGNcdThm''@;'; + put 'put ''ZjdcdThjMWNcdTVmMjVcdTdjNzNcdTc5ZDhcdTg5YzVcdTZjY2NcdTg3MWNcdTViYzZcdTVlNDJcdTY4YzlcdTc3MjBcdTdlZjVcdTUxOTVcdTUxNGRcdTUyYzlcdTVhMjlcdTdmMDVcdTk3NjJcdTgyZDdcdTYzY2ZcdTc3ODRcdTg1ZDBcdTc5ZDJcdTZlM2FcdTVlOTlcdTU5OTlcdTg1MTFc''@;'; + put 'put ''dTcwNmRcdTZjMTFcdTYyYmZcdTc2YmZcdTY1NGZcdTYwYWZcdTk1ZmRcdTY2MGVcdTg3OWZcdTllMjNcdTk0ZWRcdTU0MGRcdTU0N2RcdThjMmNcdTY0NzgiXSxbImM0NDAiLCJcdTgxNDAiLDUsIlx1ODE0N1x1ODE0OVx1ODE0ZFx1ODE0ZVx1ODE0Zlx1ODE1Mlx1ODE1Nlx1ODE1N1x1ODE1''@;'; + put 'put ''OFx1ODE1YiIsNCwiXHU4MTYxXHU4MTYyXHU4MTYzXHU4MTY0XHU4MTY2XHU4MTY4XHU4MTZhXHU4MTZiXHU4MTZjXHU4MTZmXHU4MTcyXHU4MTczXHU4MTc1XHU4MTc2XHU4MTc3XHU4MTc4XHU4MTgxXHU4MTgzIiw0LCJcdTgxODlcdTgxOGJcdTgxOGNcdTgxOGRcdTgxOGVcdTgxOTBcdTgx''@;'; + put 'put ''OTIiLDUsIlx1ODE5OVx1ODE5YVx1ODE5ZSIsNCwiXHU4MWE0XHU4MWE1Il0sWyJjNDgwIiwiXHU4MWE3XHU4MWE5XHU4MWFiIiw3LCJcdTgxYjQiLDUsIlx1ODFiY1x1ODFiZFx1ODFiZVx1ODFiZlx1ODFjNFx1ODFjNVx1ODFjN1x1ODFjOFx1ODFjOVx1ODFjYlx1ODFjZCIsNiwiXHU2NDc5''@;'; + put 'put ''XHU4NjExXHU2YTIxXHU4MTljXHU3OGU4XHU2NDY5XHU5YjU0XHU2MmI5XHU2NzJiXHU4M2FiXHU1OGE4XHU5ZWQ4XHU2Y2FiXHU2ZjIwXHU1YmRlXHU5NjRjXHU4YzBiXHU3MjVmXHU2N2QwXHU2MmM3XHU3MjYxXHU0ZWE5XHU1OWM2XHU2YmNkXHU1ODkzXHU2NmFlXHU1ZTU1XHU1MmRmXHU2''@;'; + put 'put ''MTU1XHU2NzI4XHU3NmVlXHU3NzY2XHU3MjY3XHU3YTQ2XHU2MmZmXHU1NGVhXHU1NDUwXHU5NGEwXHU5MGEzXHU1YTFjXHU3ZWIzXHU2YzE2XHU0ZTQzXHU1OTc2XHU4MDEwXHU1OTQ4XHU1MzU3XHU3NTM3XHU5NmJlXHU1NmNhXHU2MzIwXHU4MTExXHU2MDdjXHU5NWY5XHU2ZGQ2XHU1NDYy''@;'; + put 'put ''XHU5OTgxXHU1MTg1XHU1YWU5XHU4MGZkXHU1OWFlXHU5NzEzXHU1MDJhXHU2Y2U1XHU1YzNjXHU2MmRmXHU0ZjYwXHU1MzNmXHU4MTdiXHU5MDA2XHU2ZWJhXHU4NTJiXHU2MmM4XHU1ZTc0XHU3OGJlXHU2NGI1XHU2MzdiXHU1ZmY1XHU1YTE4XHU5MTdmXHU5ZTFmXHU1YzNmXHU2MzRmXHU4''@;'; + put 'put ''MDQyXHU1YjdkXHU1NTZlXHU5NTRhXHU5NTRkXHU2ZDg1XHU2MGE4XHU2N2UwXHU3MmRlXHU1MWRkXHU1YjgxIl0sWyJjNTQwIiwiXHU4MWQ0IiwxNCwiXHU4MWU0XHU4MWU1XHU4MWU2XHU4MWU4XHU4MWU5XHU4MWViXHU4MWVlIiw0LCJcdTgxZjUiLDUsIlx1ODFmZFx1ODFmZlx1ODIwM1x1''@;'; + put 'put ''ODIwNyIsNCwiXHU4MjBlXHU4MjBmXHU4MjExXHU4MjEzXHU4MjE1Iiw1LCJcdTgyMWRcdTgyMjBcdTgyMjRcdTgyMjVcdTgyMjZcdTgyMjdcdTgyMjlcdTgyMmVcdTgyMzJcdTgyM2FcdTgyM2NcdTgyM2RcdTgyM2YiXSxbImM1ODAiLCJcdTgyNDBcdTgyNDFcdTgyNDJcdTgyNDNcdTgyNDVc''@;'; + put 'put ''dTgyNDZcdTgyNDhcdTgyNGFcdTgyNGNcdTgyNGRcdTgyNGVcdTgyNTAiLDcsIlx1ODI1OVx1ODI1Ylx1ODI1Y1x1ODI1ZFx1ODI1ZVx1ODI2MCIsNywiXHU4MjY5XHU2MmU3XHU2Y2RlXHU3MjViXHU2MjZkXHU5NGFlXHU3ZWJkXHU4MTEzXHU2ZDUzXHU1MTljXHU1ZjA0XHU1OTc0XHU1MmFh''@;'; + put 'put ''XHU2MDEyXHU1OTczXHU2Njk2XHU4NjUwXHU3NTlmXHU2MzJhXHU2MWU2XHU3Y2VmXHU4YmZhXHU1NGU2XHU2YjI3XHU5ZTI1XHU2YmI0XHU4NWQ1XHU1NDU1XHU1MDc2XHU2Y2E0XHU1NTZhXHU4ZGI0XHU3MjJjXHU1ZTE1XHU2MDE1XHU3NDM2XHU2MmNkXHU2MzkyXHU3MjRjXHU1Zjk4XHU2''@;'; + put 'put ''ZTQzXHU2ZDNlXHU2NTAwXHU2ZjU4XHU3NmQ4XHU3OGQwXHU3NmZjXHU3NTU0XHU1MjI0XHU1M2RiXHU0ZTUzXHU1ZTllXHU2NWMxXHU4MDJhXHU4MGQ2XHU2MjliXHU1NDg2XHU1MjI4XHU3MGFlXHU4ODhkXHU4ZGQxXHU2Y2UxXHU1NDc4XHU4MGRhXHU1N2Y5XHU4OGY0XHU4ZDU0XHU5NjZh''@;'; + put 'put ''XHU5MTRkXHU0ZjY5XHU2YzliXHU1NWI3XHU3NmM2XHU3ODMwXHU2MmE4XHU3MGY5XHU2ZjhlXHU1ZjZkXHU4NGVjXHU2OGRhXHU3ODdjXHU3YmY3XHU4MWE4XHU2NzBiXHU5ZTRmXHU2MzY3XHU3OGIwXHU1NzZmXHU3ODEyXHU5NzM5XHU2Mjc5XHU2MmFiXHU1Mjg4XHU3NDM1XHU2YmQ3Il0s''@;'; + put 'put ''WyJjNjQwIiwiXHU4MjZhXHU4MjZiXHU4MjZjXHU4MjZkXHU4MjcxXHU4Mjc1XHU4Mjc2XHU4Mjc3XHU4Mjc4XHU4MjdiXHU4MjdjXHU4MjgwXHU4MjgxXHU4MjgzXHU4Mjg1XHU4Mjg2XHU4Mjg3XHU4Mjg5XHU4MjhjXHU4MjkwXHU4MjkzXHU4Mjk0XHU4Mjk1XHU4Mjk2XHU4MjlhXHU4Mjli''@;'; + put 'put ''XHU4MjllXHU4MmEwXHU4MmEyXHU4MmEzXHU4MmE3XHU4MmIyXHU4MmI1XHU4MmI2XHU4MmJhXHU4MmJiXHU4MmJjXHU4MmJmXHU4MmMwXHU4MmMyXHU4MmMzXHU4MmM1XHU4MmM2XHU4MmM5XHU4MmQwXHU4MmQ2XHU4MmQ5XHU4MmRhXHU4MmRkXHU4MmUyXHU4MmU3XHU4MmU4XHU4MmU5XHU4''@;'; + put 'put ''MmVhXHU4MmVjXHU4MmVkXHU4MmVlXHU4MmYwXHU4MmYyXHU4MmYzXHU4MmY1XHU4MmY2XHU4MmY4Il0sWyJjNjgwIiwiXHU4MmZhXHU4MmZjIiw0LCJcdTgzMGFcdTgzMGJcdTgzMGRcdTgzMTBcdTgzMTJcdTgzMTNcdTgzMTZcdTgzMThcdTgzMTlcdTgzMWQiLDksIlx1ODMyOVx1ODMyYVx1''@;'; + put 'put ''ODMyZVx1ODMzMFx1ODMzMlx1ODMzN1x1ODMzYlx1ODMzZFx1NTU2NFx1ODEzZVx1NzViMlx1NzZhZVx1NTMzOVx1NzVkZVx1NTBmYlx1NWM0MVx1OGI2Y1x1N2JjN1x1NTA0Zlx1NzI0N1x1OWE5N1x1OThkOFx1NmYwMlx1NzRlMlx1Nzk2OFx1NjQ4N1x1NzdhNVx1NjJmY1x1OTg5MVx1OGQy''@;'; + put 'put ''Ylx1NTRjMVx1ODA1OFx1NGU1Mlx1NTc2YVx1ODJmOVx1ODQwZFx1NWU3M1x1NTFlZFx1NzRmNlx1OGJjNFx1NWM0Zlx1NTc2MVx1NmNmY1x1OTg4N1x1NWE0Nlx1NzgzNFx1OWI0NFx1OGZlYlx1N2M5NVx1NTI1Nlx1NjI1MVx1OTRmYVx1NGVjNlx1ODM4Nlx1ODQ2MVx1ODNlOVx1ODRiMlx1''@;'; + put 'put ''NTdkNFx1NjczNFx1NTcwM1x1NjY2ZVx1NmQ2Nlx1OGMzMVx1NjZkZFx1NzAxMVx1NjcxZlx1NmIzYVx1NjgxNlx1NjIxYVx1NTliYlx1NGUwM1x1NTFjNFx1NmYwNlx1NjdkMlx1NmM4Zlx1NTE3Nlx1NjhjYlx1NTk0N1x1NmI2N1x1NzU2Nlx1NWQwZVx1ODExMFx1OWY1MFx1NjVkN1x1Nzk0''@;'; + put 'put ''OFx1Nzk0MVx1OWE5MVx1OGQ3N1x1NWM4Mlx1NGU1ZVx1NGYwMVx1NTQyZlx1NTk1MVx1NzgwY1x1NTY2OFx1NmMxNFx1OGZjNFx1NWYwM1x1NmM3ZFx1NmNlM1x1OGJhYlx1NjM5MCJdLFsiYzc0MCIsIlx1ODMzZVx1ODMzZlx1ODM0MVx1ODM0Mlx1ODM0NFx1ODM0NVx1ODM0OFx1ODM0YSIs''@;'; + put 'put ''NCwiXHU4MzUzXHU4MzU1Iiw0LCJcdTgzNWRcdTgzNjJcdTgzNzAiLDYsIlx1ODM3OVx1ODM3YVx1ODM3ZSIsNiwiXHU4Mzg3XHU4Mzg4XHU4MzhhXHU4MzhiXHU4MzhjXHU4MzhkXHU4MzhmXHU4MzkwXHU4MzkxXHU4Mzk0XHU4Mzk1XHU4Mzk2XHU4Mzk3XHU4Mzk5XHU4MzlhXHU4MzlkXHU4''@;'; + put 'put ''MzlmXHU4M2ExIiw2LCJcdTgzYWNcdTgzYWRcdTgzYWUiXSxbImM3ODAiLCJcdTgzYWZcdTgzYjVcdTgzYmJcdTgzYmVcdTgzYmZcdTgzYzJcdTgzYzNcdTgzYzRcdTgzYzZcdTgzYzhcdTgzYzlcdTgzY2JcdTgzY2RcdTgzY2VcdTgzZDBcdTgzZDFcdTgzZDJcdTgzZDNcdTgzZDVcdTgzZDdc''@;'; + put 'put ''dTgzZDlcdTgzZGFcdTgzZGJcdTgzZGVcdTgzZTJcdTgzZTNcdTgzZTRcdTgzZTZcdTgzZTdcdTgzZThcdTgzZWJcdTgzZWNcdTgzZWRcdTYwNzBcdTZkM2RcdTcyNzVcdTYyNjZcdTk0OGVcdTk0YzVcdTUzNDNcdThmYzFcdTdiN2VcdTRlZGZcdThjMjZcdTRlN2VcdTllZDRcdTk0YjFcdTk0''@;'; + put 'put ''YjNcdTUyNGRcdTZmNWNcdTkwNjNcdTZkNDVcdThjMzRcdTU4MTFcdTVkNGNcdTZiMjBcdTZiNDlcdTY3YWFcdTU0NWJcdTgxNTRcdTdmOGNcdTU4OTlcdTg1MzdcdTVmM2FcdTYyYTJcdTZhNDdcdTk1MzlcdTY1NzJcdTYwODRcdTY4NjVcdTc3YTdcdTRlNTRcdTRmYThcdTVkZTdcdTk3OThc''@;'; + put 'put ''dTY0YWNcdTdmZDhcdTVjZWRcdTRmY2ZcdTdhOGRcdTUyMDdcdTgzMDRcdTRlMTRcdTYwMmZcdTdhODNcdTk0YTZcdTRmYjVcdTRlYjJcdTc5ZTZcdTc0MzRcdTUyZTRcdTgyYjlcdTY0ZDJcdTc5YmRcdTViZGRcdTZjODFcdTk3NTJcdThmN2JcdTZjMjJcdTUwM2VcdTUzN2ZcdTZlMDVcdTY0''@;'; + put 'put ''Y2VcdTY2NzRcdTZjMzBcdTYwYzVcdTk4NzdcdThiZjdcdTVlODZcdTc0M2NcdTdhNzdcdTc5Y2JcdTRlMThcdTkwYjFcdTc0MDNcdTZjNDJcdTU2ZGFcdTkxNGJcdTZjYzVcdThkOGJcdTUzM2FcdTg2YzZcdTY2ZjJcdThlYWZcdTVjNDhcdTlhNzFcdTZlMjAiXSxbImM4NDAiLCJcdTgzZWVc''@;'; + put 'put ''dTgzZWZcdTgzZjMiLDQsIlx1ODNmYVx1ODNmYlx1ODNmY1x1ODNmZVx1ODNmZlx1ODQwMFx1ODQwMlx1ODQwNVx1ODQwN1x1ODQwOFx1ODQwOVx1ODQwYVx1ODQxMFx1ODQxMiIsNSwiXHU4NDE5XHU4NDFhXHU4NDFiXHU4NDFlIiw1LCJcdTg0MjkiLDcsIlx1ODQzMiIsNSwiXHU4NDM5XHU4''@;'; + put 'put ''NDNhXHU4NDNiXHU4NDNlIiw3LCJcdTg0NDdcdTg0NDhcdTg0NDkiXSxbImM4ODAiLCJcdTg0NGEiLDYsIlx1ODQ1MiIsNCwiXHU4NDU4XHU4NDVkXHU4NDVlXHU4NDVmXHU4NDYwXHU4NDYyXHU4NDY0Iiw0LCJcdTg0NmFcdTg0NmVcdTg0NmZcdTg0NzBcdTg0NzJcdTg0NzRcdTg0NzdcdTg0''@;'; + put 'put ''NzlcdTg0N2JcdTg0N2NcdTUzZDZcdTVhMzZcdTlmOGJcdThkYTNcdTUzYmJcdTU3MDhcdTk4YTdcdTY3NDNcdTkxOWJcdTZjYzlcdTUxNjhcdTc1Y2FcdTYyZjNcdTcyYWNcdTUyMzhcdTUyOWRcdTdmM2FcdTcwOTRcdTc2MzhcdTUzNzRcdTllNGFcdTY5YjdcdTc4NmVcdTk2YzBcdTg4ZDlc''@;'; + put 'put ''dTdmYTRcdTcxMzZcdTcxYzNcdTUxODlcdTY3ZDNcdTc0ZTRcdTU4ZTRcdTY1MThcdTU2YjdcdThiYTlcdTk5NzZcdTYyNzBcdTdlZDVcdTYwZjlcdTcwZWRcdTU4ZWNcdTRlYzFcdTRlYmFcdTVmY2RcdTk3ZTdcdTRlZmJcdThiYTRcdTUyMDNcdTU5OGFcdTdlYWJcdTYyNTRcdTRlY2RcdTY1''@;'; + put 'put ''ZTVcdTYyMGVcdTgzMzhcdTg0YzlcdTgzNjNcdTg3OGRcdTcxOTRcdTZlYjZcdTViYjlcdTdlZDJcdTUxOTdcdTYzYzlcdTY3ZDRcdTgwODlcdTgzMzlcdTg4MTVcdTUxMTJcdTViN2FcdTU5ODJcdThmYjFcdTRlNzNcdTZjNWRcdTUxNjVcdTg5MjVcdThmNmZcdTk2MmVcdTg1NGFcdTc0NWVc''@;'; + put 'put ''dTk1MTBcdTk1ZjBcdTZkYTZcdTgyZTVcdTVmMzFcdTY0OTJcdTZkMTJcdTg0MjhcdTgxNmVcdTljYzNcdTU4NWVcdThkNWJcdTRlMDlcdTUzYzEiXSxbImM5NDAiLCJcdTg0N2QiLDQsIlx1ODQ4M1x1ODQ4NFx1ODQ4NVx1ODQ4Nlx1ODQ4YVx1ODQ4ZFx1ODQ4ZiIsNywiXHU4NDk4XHU4NDlh''@;'; + put 'put ''XHU4NDliXHU4NDlkXHU4NDllXHU4NDlmXHU4NGEwXHU4NGEyIiwxMiwiXHU4NGIwXHU4NGIxXHU4NGIzXHU4NGI1XHU4NGI2XHU4NGI3XHU4NGJiXHU4NGJjXHU4NGJlXHU4NGMwXHU4NGMyXHU4NGMzXHU4NGM1XHU4NGM2XHU4NGM3XHU4NGM4XHU4NGNiXHU4NGNjXHU4NGNlXHU4NGNmXHU4''@;'; + put 'put ''NGQyXHU4NGQ0XHU4NGQ1XHU4NGQ3Il0sWyJjOTgwIiwiXHU4NGQ4Iiw0LCJcdTg0ZGVcdTg0ZTFcdTg0ZTJcdTg0ZTRcdTg0ZTciLDQsIlx1ODRlZFx1ODRlZVx1ODRlZlx1ODRmMSIsMTAsIlx1ODRmZFx1ODRmZVx1ODUwMFx1ODUwMVx1ODUwMlx1NGYxZVx1NjU2M1x1Njg1MVx1NTVkM1x1''@;'; + put 'put ''NGUyN1x1NjQxNFx1OWE5YVx1NjI2Ylx1NWFjMlx1NzQ1Zlx1ODI3Mlx1NmRhOVx1NjhlZVx1NTBlN1x1ODM4ZVx1NzgwMlx1Njc0MFx1NTIzOVx1NmM5OVx1N2ViMVx1NTBiYlx1NTU2NVx1NzE1ZVx1N2I1Ylx1NjY1Mlx1NzNjYVx1ODJlYlx1Njc0OVx1NWM3MVx1NTIyMFx1NzE3ZFx1ODg2''@;'; + put 'put ''Ylx1OTVlYVx1OTY1NVx1NjRjNVx1OGQ2MVx1ODFiM1x1NTU4NFx1NmM1NVx1NjI0N1x1N2YyZVx1NTg5Mlx1NGYyNFx1NTU0Nlx1OGQ0Zlx1NjY0Y1x1NGUwYVx1NWMxYVx1ODhmM1x1NjhhMlx1NjM0ZVx1N2EwZFx1NzBlN1x1ODI4ZFx1NTJmYVx1OTdmNlx1NWMxMVx1NTRlOFx1OTBiNVx1''@;'; + put 'put ''N2VjZFx1NTk2Mlx1OGQ0YVx1ODZjN1x1ODIwY1x1ODIwZFx1OGQ2Nlx1NjQ0NFx1NWMwNFx1NjE1MVx1NmQ4OVx1NzkzZVx1OGJiZVx1NzgzN1x1NzUzM1x1NTQ3Ylx1NGYzOFx1OGVhYlx1NmRmMVx1NWEyMFx1N2VjNVx1Nzk1ZVx1NmM4OFx1NWJhMVx1NWE3Nlx1NzUxYVx1ODBiZVx1NjE0''@;'; + put 'put ''ZVx1NmUxN1x1NThmMFx1NzUxZlx1NzUyNVx1NzI3Mlx1NTM0N1x1N2VmMyJdLFsiY2E0MCIsIlx1ODUwMyIsOCwiXHU4NTBkXHU4NTBlXHU4NTBmXHU4NTEwXHU4NTEyXHU4NTE0XHU4NTE1XHU4NTE2XHU4NTE4XHU4NTE5XHU4NTFiXHU4NTFjXHU4NTFkXHU4NTFlXHU4NTIwXHU4NTIyIiw4''@;'; + put 'put ''LCJcdTg1MmQiLDksIlx1ODUzZSIsNCwiXHU4NTQ0XHU4NTQ1XHU4NTQ2XHU4NTQ3XHU4NTRiIiwxMF0sWyJjYTgwIiwiXHU4NTU3XHU4NTU4XHU4NTVhXHU4NTViXHU4NTVjXHU4NTVkXHU4NTVmIiw0LCJcdTg1NjVcdTg1NjZcdTg1NjdcdTg1NjkiLDgsIlx1ODU3M1x1ODU3NVx1ODU3Nlx1''@;'; + put 'put ''ODU3N1x1ODU3OFx1ODU3Y1x1ODU3ZFx1ODU3Zlx1ODU4MFx1ODU4MVx1NzcwMVx1NzZkYlx1NTI2OVx1ODBkY1x1NTcyM1x1NWUwOFx1NTkzMVx1NzJlZVx1NjViZFx1NmU3Zlx1OGJkN1x1NWMzOFx1ODY3MVx1NTM0MVx1NzdmM1x1NjJmZVx1NjVmNlx1NGVjMFx1OThkZlx1ODY4MFx1NWI5''@;'; + put 'put ''ZVx1OGJjNlx1NTNmMlx1NzdlMlx1NGY3Zlx1NWM0ZVx1OWE3Nlx1NTljYlx1NWYwZlx1NzkzYVx1NThlYlx1NGUxNlx1NjdmZlx1NGU4Ylx1NjJlZFx1OGE5M1x1OTAxZFx1NTJiZlx1NjYyZlx1NTVkY1x1NTY2Y1x1OTAwMlx1NGVkNVx1NGY4ZFx1OTFjYVx1OTk3MFx1NmMwZlx1NWUwMlx1''@;'; + put 'put ''NjA0M1x1NWJhNFx1ODljNlx1OGJkNVx1NjUzNlx1NjI0Ylx1OTk5Nlx1NWI4OFx1NWJmZlx1NjM4OFx1NTUyZVx1NTNkN1x1NzYyNlx1NTE3ZFx1ODUyY1x1NjdhMlx1NjhiM1x1NmI4YVx1NjI5Mlx1OGY5M1x1NTNkNFx1ODIxMlx1NmRkMVx1NzU4Zlx1NGU2Nlx1OGQ0ZVx1NWI3MFx1NzE5''@;'; + put 'put ''Zlx1ODVhZlx1NjY5MVx1NjZkOVx1N2Y3Mlx1ODcwMFx1OWVjZFx1OWYyMFx1NWM1ZVx1NjcyZlx1OGZmMFx1NjgxMVx1Njc1Zlx1NjIwZFx1N2FkNlx1NTg4NVx1NWViNlx1NjU3MFx1NmYzMSJdLFsiY2I0MCIsIlx1ODU4Mlx1ODU4M1x1ODU4Nlx1ODU4OCIsNiwiXHU4NTkwIiwxMCwiXHU4''@;'; + put 'put ''NTlkIiw2LCJcdTg1YTVcdTg1YTZcdTg1YTdcdTg1YTlcdTg1YWJcdTg1YWNcdTg1YWRcdTg1YjEiLDUsIlx1ODViOFx1ODViYSIsNiwiXHU4NWMyIiw2LCJcdTg1Y2EiLDQsIlx1ODVkMVx1ODVkMiJdLFsiY2I4MCIsIlx1ODVkNFx1ODVkNiIsNSwiXHU4NWRkIiw2LCJcdTg1ZTVcdTg1ZTZc''@;'; + put 'put ''dTg1ZTdcdTg1ZThcdTg1ZWEiLDE0LCJcdTYwNTVcdTUyMzdcdTgwMGRcdTY0NTRcdTg4NzBcdTc1MjlcdTVlMDVcdTY4MTNcdTYyZjRcdTk3MWNcdTUzY2NcdTcyM2RcdThjMDFcdTZjMzRcdTc3NjFcdTdhMGVcdTU0MmVcdTc3YWNcdTk4N2FcdTgyMWNcdThiZjRcdTc4NTVcdTY3MTRcdTcw''@;'; + put 'put ''YzFcdTY1YWZcdTY0OTVcdTU2MzZcdTYwMWRcdTc5YzFcdTUzZjhcdTRlMWRcdTZiN2JcdTgwODZcdTViZmFcdTU1ZTNcdTU2ZGJcdTRmM2FcdTRmM2NcdTk5NzJcdTVkZjNcdTY3N2VcdTgwMzhcdTYwMDJcdTk4ODJcdTkwMDFcdTViOGJcdThiYmNcdThiZjVcdTY0MWNcdTgyNThcdTY0ZGVc''@;'; + put 'put ''dTU1ZmRcdTgyY2ZcdTkxNjVcdTRmZDdcdTdkMjBcdTkwMWZcdTdjOWZcdTUwZjNcdTU4NTFcdTZlYWZcdTViYmZcdThiYzlcdTgwODNcdTkxNzhcdTg0OWNcdTdiOTdcdTg2N2RcdTk2OGJcdTk2OGZcdTdlZTVcdTlhZDNcdTc4OGVcdTVjODFcdTdhNTdcdTkwNDJcdTk2YTdcdTc5NWZcdTVi''@;'; + put 'put ''NTlcdTYzNWZcdTdiMGJcdTg0ZDFcdTY4YWRcdTU1MDZcdTdmMjlcdTc0MTBcdTdkMjJcdTk1MDFcdTYyNDBcdTU4NGNcdTRlZDZcdTViODNcdTU5NzlcdTU4NTQiXSxbImNjNDAiLCJcdTg1ZjlcdTg1ZmFcdTg1ZmNcdTg1ZmRcdTg1ZmVcdTg2MDAiLDQsIlx1ODYwNiIsMTAsIlx1ODYxMlx1''@;'; + put 'put ''ODYxM1x1ODYxNFx1ODYxNVx1ODYxNyIsMTUsIlx1ODYyOFx1ODYyYSIsMTMsIlx1ODYzOVx1ODYzYVx1ODYzYlx1ODYzZFx1ODYzZVx1ODYzZlx1ODY0MCJdLFsiY2M4MCIsIlx1ODY0MSIsMTEsIlx1ODY1Mlx1ODY1M1x1ODY1NSIsNCwiXHU4NjViXHU4NjVjXHU4NjVkXHU4NjVmXHU4NjYw''@;'; + put 'put ''XHU4NjYxXHU4NjYzIiw3LCJcdTczNmRcdTYzMWVcdThlNGJcdThlMGZcdTgwY2VcdTgyZDRcdTYyYWNcdTUzZjBcdTZjZjBcdTkxNWVcdTU5MmFcdTYwMDFcdTZjNzBcdTU3NGRcdTY0NGFcdThkMmFcdTc2MmJcdTZlZTlcdTU3NWJcdTZhODBcdTc1ZjBcdTZmNmRcdThjMmRcdThjMDhcdTU3''@;'; + put 'put ''NjZcdTZiZWZcdTg4OTJcdTc4YjNcdTYzYTJcdTUzZjlcdTcwYWRcdTZjNjRcdTU4NThcdTY0MmFcdTU4MDJcdTY4ZTBcdTgxOWJcdTU1MTBcdTdjZDZcdTUwMThcdThlYmFcdTZkY2NcdThkOWZcdTcwZWJcdTYzOGZcdTZkOWJcdTZlZDRcdTdlZTZcdTg0MDRcdTY4NDNcdTkwMDNcdTZkZDhc''@;'; + put 'put ''dTk2NzZcdThiYThcdTU5NTdcdTcyNzlcdTg1ZTRcdTgxN2VcdTc1YmNcdThhOGFcdTY4YWZcdTUyNTRcdThlMjJcdTk1MTFcdTYzZDBcdTk4OThcdThlNDRcdTU1N2NcdTRmNTNcdTY2ZmZcdTU2OGZcdTYwZDVcdTZkOTVcdTUyNDNcdTVjNDlcdTU5MjlcdTZkZmJcdTU4NmJcdTc1MzBcdTc1''@;'; + put 'put ''MWNcdTYwNmNcdTgyMTRcdTgxNDZcdTYzMTFcdTY3NjFcdThmZTJcdTc3M2FcdThkZjNcdThkMzRcdTk0YzFcdTVlMTZcdTUzODVcdTU0MmNcdTcwYzMiXSxbImNkNDAiLCJcdTg2NmRcdTg2NmZcdTg2NzBcdTg2NzIiLDYsIlx1ODY4MyIsNiwiXHU4NjhlIiw0LCJcdTg2OTRcdTg2OTYiLDUs''@;'; + put 'put ''Ilx1ODY5ZSIsNCwiXHU4NmE1XHU4NmE2XHU4NmFiXHU4NmFkXHU4NmFlXHU4NmIyXHU4NmIzXHU4NmI3XHU4NmI4XHU4NmI5XHU4NmJiIiw0LCJcdTg2YzFcdTg2YzJcdTg2YzNcdTg2YzVcdTg2YzhcdTg2Y2NcdTg2Y2RcdTg2ZDJcdTg2ZDNcdTg2ZDVcdTg2ZDZcdTg2ZDdcdTg2ZGFcdTg2''@;'; + put 'put ''ZGMiXSxbImNkODAiLCJcdTg2ZGRcdTg2ZTBcdTg2ZTFcdTg2ZTJcdTg2ZTNcdTg2ZTVcdTg2ZTZcdTg2ZTdcdTg2ZThcdTg2ZWFcdTg2ZWJcdTg2ZWNcdTg2ZWZcdTg2ZjVcdTg2ZjZcdTg2ZjdcdTg2ZmFcdTg2ZmJcdTg2ZmNcdTg2ZmRcdTg2ZmZcdTg3MDFcdTg3MDRcdTg3MDVcdTg3MDZc''@;'; + put 'put ''dTg3MGJcdTg3MGNcdTg3MGVcdTg3MGZcdTg3MTBcdTg3MTFcdTg3MTRcdTg3MTZcdTZjNDBcdTVlZjdcdTUwNWNcdTRlYWRcdTVlYWRcdTYzM2FcdTgyNDdcdTkwMWFcdTY4NTBcdTkxNmVcdTc3YjNcdTU0MGNcdTk0ZGNcdTVmNjRcdTdhZTVcdTY4NzZcdTYzNDVcdTdiNTJcdTdlZGZcdTc1''@;'; + put 'put ''ZGJcdTUwNzdcdTYyOTVcdTU5MzRcdTkwMGZcdTUxZjhcdTc5YzNcdTdhODFcdTU2ZmVcdTVmOTJcdTkwMTRcdTZkODJcdTVjNjBcdTU3MWZcdTU0MTBcdTUxNTRcdTZlNGRcdTU2ZTJcdTYzYThcdTk4OTNcdTgxN2ZcdTg3MTVcdTg5MmFcdTkwMDBcdTU0MWVcdTVjNmZcdTgxYzBcdTYyZDZc''@;'; + put 'put ''dTYyNThcdTgxMzFcdTllMzVcdTk2NDBcdTlhNmVcdTlhN2NcdTY5MmRcdTU5YTVcdTYyZDNcdTU1M2VcdTYzMTZcdTU0YzdcdTg2ZDlcdTZkM2NcdTVhMDNcdTc0ZTZcdTg4OWNcdTZiNmFcdTU5MTZcdThjNGNcdTVmMmZcdTZlN2VcdTczYTlcdTk4N2RcdTRlMzhcdTcwZjdcdTViOGNcdTc4''@;'; + put 'put ''OTdcdTYzM2RcdTY2NWFcdTc2OTZcdTYwY2JcdTViOWJcdTVhNDlcdTRlMDdcdTgxNTVcdTZjNmFcdTczOGJcdTRlYTFcdTY3ODlcdTdmNTFcdTVmODBcdTY1ZmFcdTY3MWJcdTVmZDhcdTU5ODRcdTVhMDEiXSxbImNlNDAiLCJcdTg3MTlcdTg3MWJcdTg3MWRcdTg3MWZcdTg3MjBcdTg3MjRc''@;'; + put 'put ''dTg3MjZcdTg3MjdcdTg3MjhcdTg3MmFcdTg3MmJcdTg3MmNcdTg3MmRcdTg3MmZcdTg3MzBcdTg3MzJcdTg3MzNcdTg3MzVcdTg3MzZcdTg3MzhcdTg3MzlcdTg3M2FcdTg3M2NcdTg3M2RcdTg3NDAiLDYsIlx1ODc0YVx1ODc0Ylx1ODc0ZFx1ODc0Zlx1ODc1MFx1ODc1MVx1ODc1Mlx1ODc1''@;'; + put 'put ''NFx1ODc1NVx1ODc1Nlx1ODc1OFx1ODc1YSIsNSwiXHU4NzYxXHU4NzYyXHU4NzY2Iiw3LCJcdTg3NmZcdTg3NzFcdTg3NzJcdTg3NzNcdTg3NzUiXSxbImNlODAiLCJcdTg3NzdcdTg3NzhcdTg3NzlcdTg3N2FcdTg3N2ZcdTg3ODBcdTg3ODFcdTg3ODRcdTg3ODZcdTg3ODdcdTg3ODlcdTg3''@;'; + put 'put ''OGFcdTg3OGNcdTg3OGUiLDQsIlx1ODc5NFx1ODc5NVx1ODc5Nlx1ODc5OCIsNiwiXHU4N2EwIiw0LCJcdTVkY2RcdTVmYWVcdTUzNzFcdTk3ZTZcdThmZGRcdTY4NDVcdTU2ZjRcdTU1MmZcdTYwZGZcdTRlM2FcdTZmNGRcdTdlZjRcdTgyYzdcdTg0MGVcdTU5ZDRcdTRmMWZcdTRmMmFcdTVj''@;'; + put 'put ''M2VcdTdlYWNcdTY3MmFcdTg1MWFcdTU0NzNcdTc1NGZcdTgwYzNcdTU1ODJcdTliNGZcdTRmNGRcdTZlMmRcdThjMTNcdTVjMDlcdTYxNzBcdTUzNmJcdTc2MWZcdTZlMjlcdTg2OGFcdTY1ODdcdTk1ZmJcdTdlYjlcdTU0M2JcdTdhMzNcdTdkMGFcdTk1ZWVcdTU1ZTFcdTdmYzFcdTc0ZWVc''@;'; + put 'put ''dTYzMWRcdTg3MTdcdTZkYTFcdTdhOWRcdTYyMTFcdTY1YTFcdTUzNjdcdTYzZTFcdTZjODNcdTVkZWJcdTU0NWNcdTk0YThcdTRlNGNcdTZjNjFcdThiZWNcdTVjNGJcdTY1ZTBcdTgyOWNcdTY4YTdcdTU0M2VcdTU0MzRcdTZiY2JcdTZiNjZcdTRlOTRcdTYzNDJcdTUzNDhcdTgyMWVcdTRm''@;'; + put 'put ''MGRcdTRmYWVcdTU3NWVcdTYyMGFcdTk2ZmVcdTY2NjRcdTcyNjlcdTUyZmZcdTUyYTFcdTYwOWZcdThiZWZcdTY2MTRcdTcxOTlcdTY3OTBcdTg5N2ZcdTc4NTJcdTc3ZmRcdTY2NzBcdTU2M2JcdTU0MzhcdTk1MjFcdTcyN2EiXSxbImNmNDAiLCJcdTg3YTVcdTg3YTZcdTg3YTdcdTg3YTlc''@;'; + put 'put ''dTg3YWFcdTg3YWVcdTg3YjBcdTg3YjFcdTg3YjJcdTg3YjRcdTg3YjZcdTg3YjdcdTg3YjhcdTg3YjlcdTg3YmJcdTg3YmNcdTg3YmVcdTg3YmZcdTg3YzEiLDQsIlx1ODdjN1x1ODdjOFx1ODdjOVx1ODdjYyIsNCwiXHU4N2Q0Iiw2LCJcdTg3ZGNcdTg3ZGRcdTg3ZGVcdTg3ZGZcdTg3ZTFc''@;'; + put 'put ''dTg3ZTJcdTg3ZTNcdTg3ZTRcdTg3ZTZcdTg3ZTdcdTg3ZThcdTg3ZTlcdTg3ZWJcdTg3ZWNcdTg3ZWRcdTg3ZWYiLDldLFsiY2Y4MCIsIlx1ODdmYVx1ODdmYlx1ODdmY1x1ODdmZFx1ODdmZlx1ODgwMFx1ODgwMVx1ODgwMlx1ODgwNCIsNSwiXHU4ODBiIiw3LCJcdTg4MTRcdTg4MTdcdTg4''@;'; + put 'put ''MThcdTg4MTlcdTg4MWFcdTg4MWMiLDQsIlx1ODgyM1x1N2EwMFx1NjA2Zlx1NWUwY1x1NjA4OVx1ODE5ZFx1NTkxNVx1NjBkY1x1NzE4NFx1NzBlZlx1NmVhYVx1NmM1MFx1NzI4MFx1NmE4NFx1ODhhZFx1NWUyZFx1NGU2MFx1NWFiM1x1NTU5Y1x1OTRlM1x1NmQxN1x1N2NmYlx1OTY5OVx1''@;'; + put 'put ''NjIwZlx1N2VjNlx1Nzc4ZVx1ODY3ZVx1NTMyM1x1OTcxZVx1OGY5Nlx1NjY4N1x1NWNlMVx1NGZhMFx1NzJlZFx1NGUwYlx1NTNhNlx1NTkwZlx1NTQxM1x1NjM4MFx1OTUyOFx1NTE0OFx1NGVkOVx1OWM5Y1x1N2VhNFx1NTRiOFx1OGQyNFx1ODg1NFx1ODIzN1x1OTVmMlx1NmQ4ZVx1NWYy''@;'; + put 'put ''Nlx1NWFjY1x1NjYzZVx1OTY2OVx1NzNiMFx1NzMyZVx1NTNiZlx1ODE3YVx1OTk4NVx1N2ZhMVx1NWJhYVx1OTY3N1x1OTY1MFx1N2ViZlx1NzZmOFx1NTNhMlx1OTU3Nlx1OTk5OVx1N2JiMVx1ODk0NFx1NmU1OFx1NGU2MVx1N2ZkNFx1Nzk2NVx1OGJlNlx1NjBmM1x1NTRjZFx1NGVhYlx1''@;'; + put 'put ''OTg3OVx1NWRmN1x1NmE2MVx1NTBjZlx1NTQxMVx1OGM2MVx1ODQyN1x1Nzg1ZFx1OTcwNFx1NTI0YVx1NTRlZVx1NTZhM1x1OTUwMFx1NmQ4OFx1NWJiNVx1NmRjNlx1NjY1MyJdLFsiZDA0MCIsIlx1ODgyNCIsMTMsIlx1ODgzMyIsNSwiXHU4ODNhXHU4ODNiXHU4ODNkXHU4ODNlXHU4ODNm''@;'; + put 'put ''XHU4ODQxXHU4ODQyXHU4ODQzXHU4ODQ2Iiw1LCJcdTg4NGUiLDUsIlx1ODg1NVx1ODg1Nlx1ODg1OFx1ODg1YSIsNiwiXHU4ODY2XHU4ODY3XHU4ODZhXHU4ODZkXHU4ODZmXHU4ODcxXHU4ODczXHU4ODc0XHU4ODc1XHU4ODc2XHU4ODc4XHU4ODc5XHU4ODdhIl0sWyJkMDgwIiwiXHU4ODdi''@;'; + put 'put ''XHU4ODdjXHU4ODgwXHU4ODgzXHU4ODg2XHU4ODg3XHU4ODg5XHU4ODhhXHU4ODhjXHU4ODhlXHU4ODhmXHU4ODkwXHU4ODkxXHU4ODkzXHU4ODk0XHU4ODk1XHU4ODk3Iiw0LCJcdTg4OWQiLDQsIlx1ODhhM1x1ODhhNSIsNSwiXHU1YzBmXHU1YjVkXHU2ODIxXHU4MDk2XHU1NTc4XHU3YjEx''@;'; + put 'put ''XHU2NTQ4XHU2OTU0XHU0ZTliXHU2YjQ3XHU4NzRlXHU5NzhiXHU1MzRmXHU2MzFmXHU2NDNhXHU5MGFhXHU2NTljXHU4MGMxXHU4YzEwXHU1MTk5XHU2OGIwXHU1Mzc4XHU4N2Y5XHU2MWM4XHU2Y2M0XHU2Y2ZiXHU4YzIyXHU1YzUxXHU4NWFhXHU4MmFmXHU5NTBjXHU2YjIzXHU4ZjliXHU2''@;'; + put 'put ''NWIwXHU1ZmZiXHU1ZmMzXHU0ZmUxXHU4ODQ1XHU2NjFmXHU4MTY1XHU3MzI5XHU2MGZhXHU1MTc0XHU1MjExXHU1NzhiXHU1ZjYyXHU5MGEyXHU4ODRjXHU5MTkyXHU1ZTc4XHU2NzRmXHU2MDI3XHU1OWQzXHU1MTQ0XHU1MWY2XHU4MGY4XHU1MzA4XHU2Yzc5XHU5NmM0XHU3MThhXHU0ZjEx''@;'; + put 'put ''XHU0ZmVlXHU3ZjllXHU2NzNkXHU1NWM1XHU5NTA4XHU3OWMwXHU4ODk2XHU3ZWUzXHU1ODlmXHU2MjBjXHU5NzAwXHU4NjVhXHU1NjE4XHU5ODdiXHU1ZjkwXHU4YmI4XHU4NGM0XHU5MTU3XHU1M2Q5XHU2NWVkXHU1ZThmXHU3NTVjXHU2MDY0XHU3ZDZlXHU1YTdmXHU3ZWVhXHU3ZWVkXHU4''@;'; + put 'put ''ZjY5XHU1NWE3XHU1YmEzXHU2MGFjXHU2NWNiXHU3Mzg0Il0sWyJkMTQwIiwiXHU4OGFjXHU4OGFlXHU4OGFmXHU4OGIwXHU4OGIyIiw0LCJcdTg4YjhcdTg4YjlcdTg4YmFcdTg4YmJcdTg4YmRcdTg4YmVcdTg4YmZcdTg4YzBcdTg4YzNcdTg4YzRcdTg4YzdcdTg4YzhcdTg4Y2FcdTg4Y2Jc''@;'; + put 'put ''dTg4Y2NcdTg4Y2RcdTg4Y2ZcdTg4ZDBcdTg4ZDFcdTg4ZDNcdTg4ZDZcdTg4ZDdcdTg4ZGEiLDQsIlx1ODhlMFx1ODhlMVx1ODhlNlx1ODhlN1x1ODhlOSIsNiwiXHU4OGYyXHU4OGY1XHU4OGY2XHU4OGY3XHU4OGZhXHU4OGZiXHU4OGZkXHU4OGZmXHU4OTAwXHU4OTAxXHU4OTAzIiw1XSxb''@;'; + put 'put ''ImQxODAiLCJcdTg5MDlcdTg5MGIiLDQsIlx1ODkxMVx1ODkxNCIsNCwiXHU4OTFjIiw0LCJcdTg5MjJcdTg5MjNcdTg5MjRcdTg5MjZcdTg5MjdcdTg5MjhcdTg5MjlcdTg5MmNcdTg5MmRcdTg5MmVcdTg5MmZcdTg5MzFcdTg5MzJcdTg5MzNcdTg5MzVcdTg5MzdcdTkwMDlcdTc2NjNcdTc3''@;'; + put 'put ''MjlcdTdlZGFcdTk3NzRcdTg1OWJcdTViNjZcdTdhNzRcdTk2ZWFcdTg4NDBcdTUyY2JcdTcxOGZcdTVmYWFcdTY1ZWNcdThiZTJcdTViZmJcdTlhNmZcdTVkZTFcdTZiODlcdTZjNWJcdThiYWRcdThiYWZcdTkwMGFcdThmYzVcdTUzOGJcdTYyYmNcdTllMjZcdTllMmRcdTU0NDBcdTRlMmJc''@;'; + put 'put ''dTgyYmRcdTcyNTlcdTg2OWNcdTVkMTZcdTg4NTlcdTZkYWZcdTk2YzVcdTU0ZDFcdTRlOWFcdThiYjZcdTcxMDlcdTU0YmRcdTk2MDlcdTcwZGZcdTZkZjlcdTc2ZDBcdTRlMjVcdTc4MTRcdTg3MTJcdTVjYTlcdTVlZjZcdThhMDBcdTk4OWNcdTk2MGVcdTcwOGVcdTZjYmZcdTU5NDRcdTYz''@;'; + put 'put ''YTlcdTc3M2NcdTg4NGRcdTZmMTRcdTgyNzNcdTU4MzBcdTcxZDVcdTUzOGNcdTc4MWFcdTk2YzFcdTU1MDFcdTVmNjZcdTcxMzBcdTViYjRcdThjMWFcdTlhOGNcdTZiODNcdTU5MmVcdTllMmZcdTc5ZTdcdTY3NjhcdTYyNmNcdTRmNmZcdTc1YTFcdTdmOGFcdTZkMGJcdTk2MzNcdTZjMjdc''@;'; + put 'put ''dTRlZjBcdTc1ZDJcdTUxN2JcdTY4MzdcdTZmM2VcdTkwODBcdTgxNzBcdTU5OTZcdTc0NzYiXSxbImQyNDAiLCJcdTg5MzgiLDgsIlx1ODk0Mlx1ODk0M1x1ODk0NSIsMjQsIlx1ODk2MCIsNSwiXHU4OTY3IiwxOSwiXHU4OTdjIl0sWyJkMjgwIiwiXHU4OTdkXHU4OTdlXHU4OTgwXHU4OTgy''@;'; + put 'put ''XHU4OTg0XHU4OTg1XHU4OTg3IiwyNiwiXHU2NDQ3XHU1YzI3XHU5MDY1XHU3YTkxXHU4YzIzXHU1OWRhXHU1NGFjXHU4MjAwXHU4MzZmXHU4OTgxXHU4MDAwXHU2OTMwXHU1NjRlXHU4MDM2XHU3MjM3XHU5MWNlXHU1MWI2XHU0ZTVmXHU5ODc1XHU2Mzk2XHU0ZTFhXHU1M2Y2XHU2NmYzXHU4''@;'; + put 'put ''MTRiXHU1OTFjXHU2ZGIyXHU0ZTAwXHU1OGY5XHU1MzNiXHU2M2Q2XHU5NGYxXHU0ZjlkXHU0ZjBhXHU4ODYzXHU5ODkwXHU1OTM3XHU5MDU3XHU3OWZiXHU0ZWVhXHU4MGYwXHU3NTkxXHU2YzgyXHU1YjljXHU1OWU4XHU1ZjVkXHU2OTA1XHU4NjgxXHU1MDFhXHU1ZGYyXHU0ZTU5XHU3N2Uz''@;'; + put 'put ''XHU0ZWU1XHU4MjdhXHU2MjkxXHU2NjEzXHU5MDkxXHU1Yzc5XHU0ZWJmXHU1Zjc5XHU4MWM2XHU5MDM4XHU4MDg0XHU3NWFiXHU0ZWE2XHU4OGQ0XHU2MTBmXHU2YmM1XHU1ZmM2XHU0ZTQ5XHU3NmNhXHU2ZWEyXHU4YmUzXHU4YmFlXHU4YzBhXHU4YmQxXHU1ZjAyXHU3ZmZjXHU3ZmNjXHU3''@;'; + put 'put ''ZWNlXHU4MzM1XHU4MzZiXHU1NmUwXHU2YmI3XHU5N2YzXHU5NjM0XHU1OWZiXHU1NDFmXHU5NGY2XHU2ZGViXHU1YmM1XHU5OTZlXHU1YzM5XHU1ZjE1XHU5NjkwIl0sWyJkMzQwIiwiXHU4OWEyIiwzMCwiXHU4OWMzXHU4OWNkXHU4OWQzXHU4OWQ0XHU4OWQ1XHU4OWQ3XHU4OWQ4XHU4OWQ5''@;'; + put 'put ''XHU4OWRiXHU4OWRkXHU4OWRmXHU4OWUwXHU4OWUxXHU4OWUyXHU4OWU0XHU4OWU3XHU4OWU4XHU4OWU5XHU4OWVhXHU4OWVjXHU4OWVkXHU4OWVlXHU4OWYwXHU4OWYxXHU4OWYyXHU4OWY0Iiw2XSxbImQzODAiLCJcdTg5ZmIiLDQsIlx1OGEwMSIsNSwiXHU4YTA4IiwyMSwiXHU1MzcwXHU4''@;'; + put 'put ''MmYxXHU2YTMxXHU1YTc0XHU5ZTcwXHU1ZTk0XHU3ZjI4XHU4M2I5XHU4NDI0XHU4NDI1XHU4MzY3XHU4NzQ3XHU4ZmNlXHU4ZDYyXHU3NmM4XHU1ZjcxXHU5ODk2XHU3ODZjXHU2NjIwXHU1NGRmXHU2MmU1XHU0ZjYzXHU4MWMzXHU3NWM4XHU1ZWI4XHU5NmNkXHU4ZTBhXHU4NmY5XHU1NDhm''@;'; + put 'put ''XHU2Y2YzXHU2ZDhjXHU2YzM4XHU2MDdmXHU1MmM3XHU3NTI4XHU1ZTdkXHU0ZjE4XHU2MGEwXHU1ZmU3XHU1YzI0XHU3NTMxXHU5MGFlXHU5NGMwXHU3MmI5XHU2Y2I5XHU2ZTM4XHU5MTQ5XHU2NzA5XHU1M2NiXHU1M2YzXHU0ZjUxXHU5MWM5XHU4YmYxXHU1M2M4XHU1ZTdjXHU4ZmMyXHU2''@;'; + put 'put ''ZGU0XHU0ZThlXHU3NmMyXHU2OTg2XHU4NjVlXHU2MTFhXHU4MjA2XHU0ZjU5XHU0ZmRlXHU5MDNlXHU5YzdjXHU2MTA5XHU2ZTFkXHU2ZTE0XHU5Njg1XHU0ZTg4XHU1YTMxXHU5NmU4XHU0ZTBlXHU1YzdmXHU3OWI5XHU1Yjg3XHU4YmVkXHU3ZmJkXHU3Mzg5XHU1N2RmXHU4MjhiXHU5MGMx''@;'; + put 'put ''XHU1NDAxXHU5MDQ3XHU1NWJiXHU1Y2VhXHU1ZmExXHU2MTA4XHU2YjMyXHU3MmYxXHU4MGIyXHU4YTg5Il0sWyJkNDQwIiwiXHU4YTFlIiwzMSwiXHU4YTNmIiw4LCJcdThhNDkiLDIxXSxbImQ0ODAiLCJcdThhNWYiLDI1LCJcdThhN2EiLDYsIlx1NmQ3NFx1NWJkM1x1ODhkNVx1OTg4NFx1''@;'; + put 'put ''OGM2Ylx1OWE2ZFx1OWUzM1x1NmUwYVx1NTFhNFx1NTE0M1x1NTdhM1x1ODg4MVx1NTM5Zlx1NjNmNFx1OGY5NVx1NTZlZFx1NTQ1OFx1NTcwNlx1NzMzZlx1NmU5MFx1N2YxOFx1OGZkY1x1ODJkMVx1NjEzZlx1NjAyOFx1OTY2Mlx1NjZmMFx1N2VhNlx1OGQ4YVx1OGRjM1x1OTRhNVx1NWNi''@;'; + put 'put ''M1x1N2NhNFx1NjcwOFx1NjBhNlx1OTYwNVx1ODAxOFx1NGU5MVx1OTBlN1x1NTMwMFx1OTY2OFx1NTE0MVx1OGZkMFx1ODU3NFx1OTE1ZFx1NjY1NVx1OTdmNVx1NWI1NVx1NTMxZFx1NzgzOFx1Njc0Mlx1NjgzZFx1NTRjOVx1NzA3ZVx1NWJiMFx1OGY3ZFx1NTE4ZFx1NTcyOFx1NTRiMVx1''@;'; + put 'put ''NjUxMlx1NjY4Mlx1OGQ1ZVx1OGQ0M1x1ODEwZlx1ODQ2Y1x1OTA2ZFx1N2NkZlx1NTFmZlx1ODVmYlx1NjdhM1x1NjVlOVx1NmZhMVx1ODZhNFx1OGU4MVx1NTY2YVx1OTAyMFx1NzY4Mlx1NzA3Nlx1NzFlNVx1OGQyM1x1NjJlOVx1NTIxOVx1NmNmZFx1OGQzY1x1NjAwZVx1NTg5ZVx1NjE4''@;'; + put 'put ''ZVx1NjZmZVx1OGQ2MFx1NjI0ZVx1NTViM1x1NmUyM1x1NjcyZFx1OGY2NyJdLFsiZDU0MCIsIlx1OGE4MSIsNywiXHU4YThiIiw3LCJcdThhOTQiLDQ2XSxbImQ1ODAiLCJcdThhYzMiLDMyLCJcdTk0ZTFcdTk1ZjhcdTc3MjhcdTY4MDVcdTY5YThcdTU0OGJcdTRlNGRcdTcwYjhcdThiYzhc''@;'; + put 'put ''dTY0NThcdTY1OGJcdTViODVcdTdhODRcdTUwM2FcdTViZThcdTc3YmJcdTZiZTFcdThhNzlcdTdjOThcdTZjYmVcdTc2Y2ZcdTY1YTlcdThmOTdcdTVkMmRcdTVjNTVcdTg2MzhcdTY4MDhcdTUzNjBcdTYyMThcdTdhZDlcdTZlNWJcdTdlZmRcdTZhMWZcdTdhZTBcdTVmNzBcdTZmMzNcdTVm''@;'; + put 'put ''MjBcdTYzOGNcdTZkYThcdTY3NTZcdTRlMDhcdTVlMTBcdThkMjZcdTRlZDdcdTgwYzBcdTc2MzRcdTk2OWNcdTYyZGJcdTY2MmRcdTYyN2VcdTZjYmNcdThkNzVcdTcxNjdcdTdmNjlcdTUxNDZcdTgwODdcdTUzZWNcdTkwNmVcdTYyOThcdTU0ZjJcdTg2ZjBcdThmOTlcdTgwMDVcdTk1MTdc''@;'; + put 'put ''dTg1MTdcdThmZDlcdTZkNTlcdTczY2RcdTY1OWZcdTc3MWZcdTc1MDRcdTc4MjdcdTgxZmJcdThkMWVcdTk0ODhcdTRmYTZcdTY3OTVcdTc1YjlcdThiY2FcdTk3MDdcdTYzMmZcdTk1NDdcdTk2MzVcdTg0YjhcdTYzMjNcdTc3NDFcdTVmODFcdTcyZjBcdTRlODlcdTYwMTRcdTY1NzRcdTYy''@;'; + put 'put ''ZWZcdTZiNjNcdTY1M2YiXSxbImQ2NDAiLCJcdThhZTQiLDM0LCJcdThiMDgiLDI3XSxbImQ2ODAiLCJcdThiMjRcdThiMjVcdThiMjciLDMwLCJcdTVlMjdcdTc1YzdcdTkwZDFcdThiYzFcdTgyOWRcdTY3OWRcdTY1MmZcdTU0MzFcdTg3MThcdTc3ZTVcdTgwYTJcdTgxMDJcdTZjNDFcdTRl''@;'; + put 'put ''NGJcdTdlYzdcdTgwNGNcdTc2ZjRcdTY5MGRcdTZiOTZcdTYyNjdcdTUwM2NcdTRmODRcdTU3NDBcdTYzMDdcdTZiNjJcdThkYmVcdTUzZWFcdTY1ZThcdTdlYjhcdTVmZDdcdTYzMWFcdTYzYjdcdTgxZjNcdTgxZjRcdTdmNmVcdTVlMWNcdTVjZDlcdTUyMzZcdTY2N2FcdTc5ZTlcdTdhMWFc''@;'; + put 'put ''dThkMjhcdTcwOTlcdTc1ZDRcdTZlZGVcdTZjYmJcdTdhOTJcdTRlMmRcdTc2YzVcdTVmZTBcdTk0OWZcdTg4NzdcdTdlYzhcdTc5Y2RcdTgwYmZcdTkxY2RcdTRlZjJcdTRmMTdcdTgyMWZcdTU0NjhcdTVkZGVcdTZkMzJcdThiY2NcdTdjYTVcdThmNzRcdTgwOThcdTVlMWFcdTU0OTJcdTc2''@;'; + put 'put ''YjFcdTViOTlcdTY2M2NcdTlhYTRcdTczZTBcdTY4MmFcdTg2ZGJcdTY3MzFcdTczMmFcdThiZjhcdThiZGJcdTkwMTBcdTdhZjlcdTcwZGJcdTcxNmVcdTYyYzRcdTc3YTlcdTU2MzFcdTRlM2JcdTg0NTdcdTY3ZjFcdTUyYTlcdTg2YzBcdThkMmVcdTk0ZjhcdTdiNTEiXSxbImQ3NDAiLCJc''@;'; + put 'put ''dThiNDYiLDMxLCJcdThiNjciLDQsIlx1OGI2ZCIsMjVdLFsiZDc4MCIsIlx1OGI4NyIsMjQsIlx1OGJhY1x1OGJiMVx1OGJiYlx1OGJjN1x1OGJkMFx1OGJlYVx1OGMwOVx1OGMxZVx1NGY0Zlx1NmNlOFx1Nzk1ZFx1OWE3Ylx1NjI5M1x1NzIyYVx1NjJmZFx1NGUxM1x1NzgxNlx1OGY2Y1x1''@;'; + put 'put ''NjRiMFx1OGQ1YVx1N2JjNlx1Njg2OVx1NWU4NFx1ODhjNVx1NTk4Nlx1NjQ5ZVx1NThlZVx1NzJiNlx1NjkwZVx1OTUyNVx1OGZmZFx1OGQ1OFx1NTc2MFx1N2YwMFx1OGMwNlx1NTFjNlx1NjM0OVx1NjJkOVx1NTM1M1x1Njg0Y1x1NzQyMlx1ODMwMVx1OTE0Y1x1NTU0NFx1Nzc0MFx1NzA3''@;'; + put 'put ''Y1x1NmQ0YVx1NTE3OVx1NTRhOFx1OGQ0NFx1NTlmZlx1NmVjYlx1NmRjNFx1NWI1Y1x1N2QyYlx1NGVkNFx1N2M3ZFx1NmVkM1x1NWI1MFx1ODFlYVx1NmUwZFx1NWI1N1x1OWIwM1x1NjhkNVx1OGUyYVx1NWI5N1x1N2VmY1x1NjAzYlx1N2ViNVx1OTBiOVx1OGQ3MFx1NTk0Zlx1NjNjZFx1''@;'; + put 'put ''NzlkZlx1OGRiM1x1NTM1Mlx1NjVjZlx1Nzk1Nlx1OGJjNVx1OTYzYlx1N2VjNFx1OTRiYlx1N2U4Mlx1NTYzNFx1OTE4OVx1NjcwMFx1N2Y2YVx1NWMwYVx1OTA3NVx1NjYyOFx1NWRlNlx1NGY1MFx1NjdkZVx1NTA1YVx1NGY1Y1x1NTc1MFx1NWVhNyJdLFsiZDg0MCIsIlx1OGMzOCIsOCwi''@;'; + put 'put ''XHU4YzQyXHU4YzQzXHU4YzQ0XHU4YzQ1XHU4YzQ4XHU4YzRhXHU4YzRiXHU4YzRkIiw3LCJcdThjNTZcdThjNTdcdThjNThcdThjNTlcdThjNWIiLDUsIlx1OGM2MyIsNiwiXHU4YzZjIiw2LCJcdThjNzRcdThjNzVcdThjNzZcdThjNzdcdThjN2IiLDYsIlx1OGM4M1x1OGM4NFx1OGM4Nlx1''@;'; + put 'put ''OGM4NyJdLFsiZDg4MCIsIlx1OGM4OFx1OGM4Ylx1OGM4ZCIsNiwiXHU4Yzk1XHU4Yzk2XHU4Yzk3XHU4Yzk5IiwyMCwiXHU0ZThkXHU0ZTBjXHU1MTQwXHU0ZTEwXHU1ZWZmXHU1MzQ1XHU0ZTE1XHU0ZTk4XHU0ZTFlXHU5YjMyXHU1YjZjXHU1NjY5XHU0ZTI4XHU3OWJhXHU0ZTNmXHU1MzE1''@;'; + put 'put ''XHU0ZTQ3XHU1OTJkXHU3MjNiXHU1MzZlXHU2YzEwXHU1NmRmXHU4MGU0XHU5OTk3XHU2YmQzXHU3NzdlXHU5ZjE3XHU0ZTM2XHU0ZTlmXHU5ZjEwXHU0ZTVjXHU0ZTY5XHU0ZTkzXHU4Mjg4XHU1YjViXHU1NTZjXHU1NjBmXHU0ZWM0XHU1MzhkXHU1MzlkXHU1M2EzXHU1M2E1XHU1M2FlXHU5''@;'; + put 'put ''NzY1XHU4ZDVkXHU1MzFhXHU1M2Y1XHU1MzI2XHU1MzJlXHU1MzNlXHU4ZDVjXHU1MzY2XHU1MzYzXHU1MjAyXHU1MjA4XHU1MjBlXHU1MjJkXHU1MjMzXHU1MjNmXHU1MjQwXHU1MjRjXHU1MjVlXHU1MjYxXHU1MjVjXHU4NGFmXHU1MjdkXHU1MjgyXHU1MjgxXHU1MjkwXHU1MjkzXHU1MTgy''@;'; + put 'put ''XHU3ZjU0XHU0ZWJiXHU0ZWMzXHU0ZWM5XHU0ZWMyXHU0ZWU4XHU0ZWUxXHU0ZWViXHU0ZWRlXHU0ZjFiXHU0ZWYzXHU0ZjIyXHU0ZjY0XHU0ZWY1XHU0ZjI1XHU0ZjI3XHU0ZjA5XHU0ZjJiXHU0ZjVlXHU0ZjY3XHU2NTM4XHU0ZjVhXHU0ZjVkIl0sWyJkOTQwIiwiXHU4Y2FlIiw2Ml0sWyJk''@;'; + put 'put ''OTgwIiwiXHU4Y2VkIiwzMiwiXHU0ZjVmXHU0ZjU3XHU0ZjMyXHU0ZjNkXHU0Zjc2XHU0Zjc0XHU0ZjkxXHU0Zjg5XHU0ZjgzXHU0ZjhmXHU0ZjdlXHU0ZjdiXHU0ZmFhXHU0ZjdjXHU0ZmFjXHU0Zjk0XHU0ZmU2XHU0ZmU4XHU0ZmVhXHU0ZmM1XHU0ZmRhXHU0ZmUzXHU0ZmRjXHU0ZmQxXHU0''@;'; + put 'put ''ZmRmXHU0ZmY4XHU1MDI5XHU1MDRjXHU0ZmYzXHU1MDJjXHU1MDBmXHU1MDJlXHU1MDJkXHU0ZmZlXHU1MDFjXHU1MDBjXHU1MDI1XHU1MDI4XHU1MDdlXHU1MDQzXHU1MDU1XHU1MDQ4XHU1MDRlXHU1MDZjXHU1MDdiXHU1MGE1XHU1MGE3XHU1MGE5XHU1MGJhXHU1MGQ2XHU1MTA2XHU1MGVk''@;'; + put 'put ''XHU1MGVjXHU1MGU2XHU1MGVlXHU1MTA3XHU1MTBiXHU0ZWRkXHU2YzNkXHU0ZjU4XHU0ZjY1XHU0ZmNlXHU5ZmEwXHU2YzQ2XHU3Yzc0XHU1MTZlXHU1ZGZkXHU5ZWM5XHU5OTk4XHU1MTgxXHU1OTE0XHU1MmY5XHU1MzBkXHU4YTA3XHU1MzEwXHU1MWViXHU1OTE5XHU1MTU1XHU0ZWEwXHU1''@;'; + put 'put ''MTU2XHU0ZWIzXHU4ODZlXHU4OGE0XHU0ZWI1XHU4MTE0XHU4OGQyXHU3OTgwXHU1YjM0XHU4ODAzXHU3ZmI4XHU1MWFiXHU1MWIxXHU1MWJkXHU1MWJjIl0sWyJkYTQwIiwiXHU4ZDBlIiwxNCwiXHU4ZDIwXHU4ZDUxXHU4ZDUyXHU4ZDU3XHU4ZDVmXHU4ZDY1XHU4ZDY4XHU4ZDY5XHU4ZDZh''@;'; + put 'put ''XHU4ZDZjXHU4ZDZlXHU4ZDZmXHU4ZDcxXHU4ZDcyXHU4ZDc4Iiw4LCJcdThkODJcdThkODNcdThkODZcdThkODdcdThkODhcdThkODlcdThkOGMiLDQsIlx1OGQ5Mlx1OGQ5M1x1OGQ5NSIsOSwiXHU4ZGEwXHU4ZGExIl0sWyJkYTgwIiwiXHU4ZGEyXHU4ZGE0IiwxMiwiXHU4ZGIyXHU4ZGI2''@;'; + put 'put ''XHU4ZGI3XHU4ZGI5XHU4ZGJiXHU4ZGJkXHU4ZGMwXHU4ZGMxXHU4ZGMyXHU4ZGM1XHU4ZGM3XHU4ZGM4XHU4ZGM5XHU4ZGNhXHU4ZGNkXHU4ZGQwXHU4ZGQyXHU4ZGQzXHU4ZGQ0XHU1MWM3XHU1MTk2XHU1MWEyXHU1MWE1XHU4YmEwXHU4YmE2XHU4YmE3XHU4YmFhXHU4YmI0XHU4YmI1XHU4''@;'; + put 'put ''YmI3XHU4YmMyXHU4YmMzXHU4YmNiXHU4YmNmXHU4YmNlXHU4YmQyXHU4YmQzXHU4YmQ0XHU4YmQ2XHU4YmQ4XHU4YmQ5XHU4YmRjXHU4YmRmXHU4YmUwXHU4YmU0XHU4YmU4XHU4YmU5XHU4YmVlXHU4YmYwXHU4YmYzXHU4YmY2XHU4YmY5XHU4YmZjXHU4YmZmXHU4YzAwXHU4YzAyXHU4YzA0''@;'; + put 'put ''XHU4YzA3XHU4YzBjXHU4YzBmXHU4YzExXHU4YzEyXHU4YzE0XHU4YzE1XHU4YzE2XHU4YzE5XHU4YzFiXHU4YzE4XHU4YzFkXHU4YzFmXHU4YzIwXHU4YzIxXHU4YzI1XHU4YzI3XHU4YzJhXHU4YzJiXHU4YzJlXHU4YzJmXHU4YzMyXHU4YzMzXHU4YzM1XHU4YzM2XHU1MzY5XHU1MzdhXHU5''@;'; + put 'put ''NjFkXHU5NjIyXHU5NjIxXHU5NjMxXHU5NjJhXHU5NjNkXHU5NjNjXHU5NjQyXHU5NjQ5XHU5NjU0XHU5NjVmXHU5NjY3XHU5NjZjXHU5NjcyXHU5Njc0XHU5Njg4XHU5NjhkXHU5Njk3XHU5NmIwXHU5MDk3XHU5MDliXHU5MDlkXHU5MDk5XHU5MGFjXHU5MGExXHU5MGI0XHU5MGIzXHU5MGI2''@;'; + put 'put ''XHU5MGJhIl0sWyJkYjQwIiwiXHU4ZGQ1XHU4ZGQ4XHU4ZGQ5XHU4ZGRjXHU4ZGUwXHU4ZGUxXHU4ZGUyXHU4ZGU1XHU4ZGU2XHU4ZGU3XHU4ZGU5XHU4ZGVkXHU4ZGVlXHU4ZGYwXHU4ZGYxXHU4ZGYyXHU4ZGY0XHU4ZGY2XHU4ZGZjXHU4ZGZlIiw2LCJcdThlMDZcdThlMDdcdThlMDhcdThl''@;'; + put 'put ''MGJcdThlMGRcdThlMGVcdThlMTBcdThlMTFcdThlMTJcdThlMTNcdThlMTUiLDcsIlx1OGUyMFx1OGUyMVx1OGUyNCIsNCwiXHU4ZTJiXHU4ZTJkXHU4ZTMwXHU4ZTMyXHU4ZTMzXHU4ZTM0XHU4ZTM2XHU4ZTM3XHU4ZTM4XHU4ZTNiXHU4ZTNjXHU4ZTNlIl0sWyJkYjgwIiwiXHU4ZTNmXHU4''@;'; + put 'put ''ZTQzXHU4ZTQ1XHU4ZTQ2XHU4ZTRjIiw0LCJcdThlNTMiLDUsIlx1OGU1YSIsMTEsIlx1OGU2N1x1OGU2OFx1OGU2YVx1OGU2Ylx1OGU2ZVx1OGU3MVx1OTBiOFx1OTBiMFx1OTBjZlx1OTBjNVx1OTBiZVx1OTBkMFx1OTBjNFx1OTBjN1x1OTBkM1x1OTBlNlx1OTBlMlx1OTBkY1x1OTBkN1x1''@;'; + put 'put ''OTBkYlx1OTBlYlx1OTBlZlx1OTBmZVx1OTEwNFx1OTEyMlx1OTExZVx1OTEyM1x1OTEzMVx1OTEyZlx1OTEzOVx1OTE0M1x1OTE0Nlx1NTIwZFx1NTk0Mlx1NTJhMlx1NTJhY1x1NTJhZFx1NTJiZVx1NTRmZlx1NTJkMFx1NTJkNlx1NTJmMFx1NTNkZlx1NzFlZVx1NzdjZFx1NWVmNFx1NTFm''@;'; + put 'put ''NVx1NTFmY1x1OWIyZlx1NTNiNlx1NWYwMVx1NzU1YVx1NWRlZlx1NTc0Y1x1NTdhOVx1NTdhMVx1NTg3ZVx1NThiY1x1NThjNVx1NThkMVx1NTcyOVx1NTcyY1x1NTcyYVx1NTczM1x1NTczOVx1NTcyZVx1NTcyZlx1NTc1Y1x1NTczYlx1NTc0Mlx1NTc2OVx1NTc4NVx1NTc2Ylx1NTc4Nlx1''@;'; + put 'put ''NTc3Y1x1NTc3Ylx1NTc2OFx1NTc2ZFx1NTc3Nlx1NTc3M1x1NTdhZFx1NTdhNFx1NTc4Y1x1NTdiMlx1NTdjZlx1NTdhN1x1NTdiNFx1NTc5M1x1NTdhMFx1NTdkNVx1NTdkOFx1NTdkYVx1NTdkOVx1NTdkMlx1NTdiOFx1NTdmNFx1NTdlZlx1NTdmOFx1NTdlNFx1NTdkZCJdLFsiZGM0MCIs''@;'; + put 'put ''Ilx1OGU3M1x1OGU3NVx1OGU3NyIsNCwiXHU4ZTdkXHU4ZTdlXHU4ZTgwXHU4ZTgyXHU4ZTgzXHU4ZTg0XHU4ZTg2XHU4ZTg4Iiw2LCJcdThlOTFcdThlOTJcdThlOTNcdThlOTUiLDYsIlx1OGU5ZFx1OGU5ZiIsMTEsIlx1OGVhZFx1OGVhZVx1OGViMFx1OGViMVx1OGViMyIsNiwiXHU4ZWJi''@;'; + put 'put ''Iiw3XSxbImRjODAiLCJcdThlYzMiLDEwLCJcdThlY2YiLDIxLCJcdTU4MGJcdTU4MGRcdTU3ZmRcdTU3ZWRcdTU4MDBcdTU4MWVcdTU4MTlcdTU4NDRcdTU4MjBcdTU4NjVcdTU4NmNcdTU4ODFcdTU4ODlcdTU4OWFcdTU4ODBcdTk5YThcdTlmMTlcdTYxZmZcdTgyNzlcdTgyN2RcdTgyN2Zc''@;'; + put 'put ''dTgyOGZcdTgyOGFcdTgyYThcdTgyODRcdTgyOGVcdTgyOTFcdTgyOTdcdTgyOTlcdTgyYWJcdTgyYjhcdTgyYmVcdTgyYjBcdTgyYzhcdTgyY2FcdTgyZTNcdTgyOThcdTgyYjdcdTgyYWVcdTgyY2JcdTgyY2NcdTgyYzFcdTgyYTlcdTgyYjRcdTgyYTFcdTgyYWFcdTgyOWZcdTgyYzRcdTgy''@;'; + put 'put ''Y2VcdTgyYTRcdTgyZTFcdTgzMDlcdTgyZjdcdTgyZTRcdTgzMGZcdTgzMDdcdTgyZGNcdTgyZjRcdTgyZDJcdTgyZDhcdTgzMGNcdTgyZmJcdTgyZDNcdTgzMTFcdTgzMWFcdTgzMDZcdTgzMTRcdTgzMTVcdTgyZTBcdTgyZDVcdTgzMWNcdTgzNTFcdTgzNWJcdTgzNWNcdTgzMDhcdTgzOTJc''@;'; + put 'put ''dTgzM2NcdTgzMzRcdTgzMzFcdTgzOWJcdTgzNWVcdTgzMmZcdTgzNGZcdTgzNDdcdTgzNDNcdTgzNWZcdTgzNDBcdTgzMTdcdTgzNjBcdTgzMmRcdTgzM2FcdTgzMzNcdTgzNjZcdTgzNjUiXSxbImRkNDAiLCJcdThlZTUiLDYyXSxbImRkODAiLCJcdThmMjQiLDMyLCJcdTgzNjhcdTgzMWJc''@;'; + put 'put ''dTgzNjlcdTgzNmNcdTgzNmFcdTgzNmRcdTgzNmVcdTgzYjBcdTgzNzhcdTgzYjNcdTgzYjRcdTgzYTBcdTgzYWFcdTgzOTNcdTgzOWNcdTgzODVcdTgzN2NcdTgzYjZcdTgzYTlcdTgzN2RcdTgzYjhcdTgzN2JcdTgzOThcdTgzOWVcdTgzYThcdTgzYmFcdTgzYmNcdTgzYzFcdTg0MDFcdTgz''@;'; + put 'put ''ZTVcdTgzZDhcdTU4MDdcdTg0MThcdTg0MGJcdTgzZGRcdTgzZmRcdTgzZDZcdTg0MWNcdTg0MzhcdTg0MTFcdTg0MDZcdTgzZDRcdTgzZGZcdTg0MGZcdTg0MDNcdTgzZjhcdTgzZjlcdTgzZWFcdTgzYzVcdTgzYzBcdTg0MjZcdTgzZjBcdTgzZTFcdTg0NWNcdTg0NTFcdTg0NWFcdTg0NTlc''@;'; + put 'put ''dTg0NzNcdTg0ODdcdTg0ODhcdTg0N2FcdTg0ODlcdTg0NzhcdTg0M2NcdTg0NDZcdTg0NjlcdTg0NzZcdTg0OGNcdTg0OGVcdTg0MzFcdTg0NmRcdTg0YzFcdTg0Y2RcdTg0ZDBcdTg0ZTZcdTg0YmRcdTg0ZDNcdTg0Y2FcdTg0YmZcdTg0YmFcdTg0ZTBcdTg0YTFcdTg0YjlcdTg0YjRcdTg0''@;'; + put 'put ''OTdcdTg0ZTVcdTg0ZTNcdTg1MGNcdTc1MGRcdTg1MzhcdTg0ZjBcdTg1MzlcdTg1MWZcdTg1M2EiXSxbImRlNDAiLCJcdThmNDUiLDMyLCJcdThmNmFcdThmODBcdThmOGNcdThmOTJcdThmOWRcdThmYTBcdThmYTFcdThmYTJcdThmYTRcdThmYTVcdThmYTZcdThmYTdcdThmYWFcdThmYWNc''@;'; + put 'put ''dThmYWRcdThmYWVcdThmYWZcdThmYjJcdThmYjNcdThmYjRcdThmYjVcdThmYjdcdThmYjhcdThmYmFcdThmYmJcdThmYmNcdThmYmZcdThmYzBcdThmYzNcdThmYzYiXSxbImRlODAiLCJcdThmYzkiLDQsIlx1OGZjZlx1OGZkMlx1OGZkNlx1OGZkN1x1OGZkYVx1OGZlMFx1OGZlMVx1OGZl''@;'; + put 'put ''M1x1OGZlN1x1OGZlY1x1OGZlZlx1OGZmMVx1OGZmMlx1OGZmNFx1OGZmNVx1OGZmNlx1OGZmYVx1OGZmYlx1OGZmY1x1OGZmZVx1OGZmZlx1OTAwN1x1OTAwOFx1OTAwY1x1OTAwZVx1OTAxM1x1OTAxNVx1OTAxOFx1ODU1Nlx1ODUzYlx1ODRmZlx1ODRmY1x1ODU1OVx1ODU0OFx1ODU2OFx1''@;'; + put 'put ''ODU2NFx1ODU1ZVx1ODU3YVx1NzdhMlx1ODU0M1x1ODU3Mlx1ODU3Ylx1ODVhNFx1ODVhOFx1ODU4N1x1ODU4Zlx1ODU3OVx1ODVhZVx1ODU5Y1x1ODU4NVx1ODViOVx1ODViN1x1ODViMFx1ODVkM1x1ODVjMVx1ODVkY1x1ODVmZlx1ODYyN1x1ODYwNVx1ODYyOVx1ODYxNlx1ODYzY1x1NWVm''@;'; + put 'put ''ZVx1NWYwOFx1NTkzY1x1NTk0MVx1ODAzN1x1NTk1NVx1NTk1YVx1NTk1OFx1NTMwZlx1NWMyMlx1NWMyNVx1NWMyY1x1NWMzNFx1NjI0Y1x1NjI2YVx1NjI5Zlx1NjJiYlx1NjJjYVx1NjJkYVx1NjJkN1x1NjJlZVx1NjMyMlx1NjJmNlx1NjMzOVx1NjM0Ylx1NjM0M1x1NjNhZFx1NjNmNlx1''@;'; + put 'put ''NjM3MVx1NjM3YVx1NjM4ZVx1NjNiNFx1NjM2ZFx1NjNhY1x1NjM4YVx1NjM2OVx1NjNhZVx1NjNiY1x1NjNmMlx1NjNmOFx1NjNlMFx1NjNmZlx1NjNjNFx1NjNkZVx1NjNjZVx1NjQ1Mlx1NjNjNlx1NjNiZVx1NjQ0NVx1NjQ0MVx1NjQwYlx1NjQxYlx1NjQyMFx1NjQwY1x1NjQyNlx1NjQy''@;'; + put 'put ''MVx1NjQ1ZVx1NjQ4NFx1NjQ2ZFx1NjQ5NiJdLFsiZGY0MCIsIlx1OTAxOVx1OTAxY1x1OTAyM1x1OTAyNFx1OTAyNVx1OTAyNyIsNSwiXHU5MDMwIiw0LCJcdTkwMzdcdTkwMzlcdTkwM2FcdTkwM2RcdTkwM2ZcdTkwNDBcdTkwNDNcdTkwNDVcdTkwNDZcdTkwNDgiLDQsIlx1OTA0ZVx1OTA1''@;'; + put 'put ''NFx1OTA1NVx1OTA1Nlx1OTA1OVx1OTA1YVx1OTA1YyIsNSwiXHU5MDY0XHU5MDY2XHU5MDY3XHU5MDY5XHU5MDZhXHU5MDZiXHU5MDZjXHU5MDZmIiw0LCJcdTkwNzYiLDYsIlx1OTA3ZVx1OTA4MSJdLFsiZGY4MCIsIlx1OTA4NFx1OTA4NVx1OTA4Nlx1OTA4N1x1OTA4OVx1OTA4YVx1OTA4''@;'; + put 'put ''YyIsNCwiXHU5MDkyXHU5MDk0XHU5MDk2XHU5MDk4XHU5MDlhXHU5MDljXHU5MDllXHU5MDlmXHU5MGEwXHU5MGE0XHU5MGE1XHU5MGE3XHU5MGE4XHU5MGE5XHU5MGFiXHU5MGFkXHU5MGIyXHU5MGI3XHU5MGJjXHU5MGJkXHU5MGJmXHU5MGMwXHU2NDdhXHU2NGI3XHU2NGI4XHU2NDk5XHU2''@;'; + put 'put ''NGJhXHU2NGMwXHU2NGQwXHU2NGQ3XHU2NGU0XHU2NGUyXHU2NTA5XHU2NTI1XHU2NTJlXHU1ZjBiXHU1ZmQyXHU3NTE5XHU1ZjExXHU1MzVmXHU1M2YxXHU1M2ZkXHU1M2U5XHU1M2U4XHU1M2ZiXHU1NDEyXHU1NDE2XHU1NDA2XHU1NDRiXHU1NDUyXHU1NDUzXHU1NDU0XHU1NDU2XHU1NDQz''@;'; + put 'put ''XHU1NDIxXHU1NDU3XHU1NDU5XHU1NDIzXHU1NDMyXHU1NDgyXHU1NDk0XHU1NDc3XHU1NDcxXHU1NDY0XHU1NDlhXHU1NDliXHU1NDg0XHU1NDc2XHU1NDY2XHU1NDlkXHU1NGQwXHU1NGFkXHU1NGMyXHU1NGI0XHU1NGQyXHU1NGE3XHU1NGE2XHU1NGQzXHU1NGQ0XHU1NDcyXHU1NGEzXHU1''@;'; + put 'put ''NGQ1XHU1NGJiXHU1NGJmXHU1NGNjXHU1NGQ5XHU1NGRhXHU1NGRjXHU1NGE5XHU1NGFhXHU1NGE0XHU1NGRkXHU1NGNmXHU1NGRlXHU1NTFiXHU1NGU3XHU1NTIwXHU1NGZkXHU1NTE0XHU1NGYzXHU1NTIyXHU1NTIzXHU1NTBmXHU1NTExXHU1NTI3XHU1NTJhXHU1NTY3XHU1NThmXHU1NWI1''@;'; + put 'put ''XHU1NTQ5XHU1NTZkXHU1NTQxXHU1NTU1XHU1NTNmXHU1NTUwXHU1NTNjIl0sWyJlMDQwIiwiXHU5MGMyXHU5MGMzXHU5MGM2XHU5MGM4XHU5MGM5XHU5MGNiXHU5MGNjXHU5MGNkXHU5MGQyXHU5MGQ0XHU5MGQ1XHU5MGQ2XHU5MGQ4XHU5MGQ5XHU5MGRhXHU5MGRlXHU5MGRmXHU5MGUwXHU5''@;'; + put 'put ''MGUzXHU5MGU0XHU5MGU1XHU5MGU5XHU5MGVhXHU5MGVjXHU5MGVlXHU5MGYwXHU5MGYxXHU5MGYyXHU5MGYzXHU5MGY1XHU5MGY2XHU5MGY3XHU5MGY5XHU5MGZhXHU5MGZiXHU5MGZjXHU5MGZmXHU5MTAwXHU5MTAxXHU5MTAzXHU5MTA1IiwxOSwiXHU5MTFhXHU5MTFiXHU5MTFjIl0sWyJl''@;'; + put 'put ''MDgwIiwiXHU5MTFkXHU5MTFmXHU5MTIwXHU5MTIxXHU5MTI0IiwxMCwiXHU5MTMwXHU5MTMyIiw2LCJcdTkxM2EiLDgsIlx1OTE0NFx1NTUzN1x1NTU1Nlx1NTU3NVx1NTU3Nlx1NTU3N1x1NTUzM1x1NTUzMFx1NTU1Y1x1NTU4Ylx1NTVkMlx1NTU4M1x1NTViMVx1NTViOVx1NTU4OFx1NTU4''@;'; + put 'put ''MVx1NTU5Zlx1NTU3ZVx1NTVkNlx1NTU5MVx1NTU3Ylx1NTVkZlx1NTViZFx1NTViZVx1NTU5NFx1NTU5OVx1NTVlYVx1NTVmN1x1NTVjOVx1NTYxZlx1NTVkMVx1NTVlYlx1NTVlY1x1NTVkNFx1NTVlNlx1NTVkZFx1NTVjNFx1NTVlZlx1NTVlNVx1NTVmMlx1NTVmM1x1NTVjY1x1NTVjZFx1''@;'; + put 'put ''NTVlOFx1NTVmNVx1NTVlNFx1OGY5NFx1NTYxZVx1NTYwOFx1NTYwY1x1NTYwMVx1NTYyNFx1NTYyM1x1NTVmZVx1NTYwMFx1NTYyN1x1NTYyZFx1NTY1OFx1NTYzOVx1NTY1N1x1NTYyY1x1NTY0ZFx1NTY2Mlx1NTY1OVx1NTY1Y1x1NTY0Y1x1NTY1NFx1NTY4Nlx1NTY2NFx1NTY3MVx1NTY2''@;'; + put 'put ''Ylx1NTY3Ylx1NTY3Y1x1NTY4NVx1NTY5M1x1NTZhZlx1NTZkNFx1NTZkN1x1NTZkZFx1NTZlMVx1NTZmNVx1NTZlYlx1NTZmOVx1NTZmZlx1NTcwNFx1NTcwYVx1NTcwOVx1NTcxY1x1NWUwZlx1NWUxOVx1NWUxNFx1NWUxMVx1NWUzMVx1NWUzYlx1NWUzYyJdLFsiZTE0MCIsIlx1OTE0NVx1''@;'; + put 'put ''OTE0N1x1OTE0OFx1OTE1MVx1OTE1M1x1OTE1NFx1OTE1NVx1OTE1Nlx1OTE1OFx1OTE1OVx1OTE1Ylx1OTE1Y1x1OTE1Zlx1OTE2MFx1OTE2Nlx1OTE2N1x1OTE2OFx1OTE2Ylx1OTE2ZFx1OTE3M1x1OTE3YVx1OTE3Ylx1OTE3Y1x1OTE4MCIsNCwiXHU5MTg2XHU5MTg4XHU5MThhXHU5MThl''@;'; + put 'put ''XHU5MThmXHU5MTkzIiw2LCJcdTkxOWMiLDUsIlx1OTFhNCIsNSwiXHU5MWFiXHU5MWFjXHU5MWIwXHU5MWIxXHU5MWIyXHU5MWIzXHU5MWI2XHU5MWI3XHU5MWI4XHU5MWI5XHU5MWJiIl0sWyJlMTgwIiwiXHU5MWJjIiwxMCwiXHU5MWM4XHU5MWNiXHU5MWQwXHU5MWQyIiw5LCJcdTkxZGQi''@;'; + put 'put ''LDgsIlx1NWUzN1x1NWU0NFx1NWU1NFx1NWU1Ylx1NWU1ZVx1NWU2MVx1NWM4Y1x1NWM3YVx1NWM4ZFx1NWM5MFx1NWM5Nlx1NWM4OFx1NWM5OFx1NWM5OVx1NWM5MVx1NWM5YVx1NWM5Y1x1NWNiNVx1NWNhMlx1NWNiZFx1NWNhY1x1NWNhYlx1NWNiMVx1NWNhM1x1NWNjMVx1NWNiN1x1NWNj''@;'; + put 'put ''NFx1NWNkMlx1NWNlNFx1NWNjYlx1NWNlNVx1NWQwMlx1NWQwM1x1NWQyN1x1NWQyNlx1NWQyZVx1NWQyNFx1NWQxZVx1NWQwNlx1NWQxYlx1NWQ1OFx1NWQzZVx1NWQzNFx1NWQzZFx1NWQ2Y1x1NWQ1Ylx1NWQ2Zlx1NWQ1ZFx1NWQ2Ylx1NWQ0Ylx1NWQ0YVx1NWQ2OVx1NWQ3NFx1NWQ4Mlx1''@;'; + put 'put ''NWQ5OVx1NWQ5ZFx1OGM3M1x1NWRiN1x1NWRjNVx1NWY3M1x1NWY3N1x1NWY4Mlx1NWY4N1x1NWY4OVx1NWY4Y1x1NWY5NVx1NWY5OVx1NWY5Y1x1NWZhOFx1NWZhZFx1NWZiNVx1NWZiY1x1ODg2Mlx1NWY2MVx1NzJhZFx1NzJiMFx1NzJiNFx1NzJiN1x1NzJiOFx1NzJjM1x1NzJjMVx1NzJj''@;'; + put 'put ''ZVx1NzJjZFx1NzJkMlx1NzJlOFx1NzJlZlx1NzJlOVx1NzJmMlx1NzJmNFx1NzJmN1x1NzMwMVx1NzJmM1x1NzMwM1x1NzJmYSJdLFsiZTI0MCIsIlx1OTFlNiIsNjJdLFsiZTI4MCIsIlx1OTIyNSIsMzIsIlx1NzJmYlx1NzMxN1x1NzMxM1x1NzMyMVx1NzMwYVx1NzMxZVx1NzMxZFx1NzMx''@;'; + put 'put ''NVx1NzMyMlx1NzMzOVx1NzMyNVx1NzMyY1x1NzMzOFx1NzMzMVx1NzM1MFx1NzM0ZFx1NzM1N1x1NzM2MFx1NzM2Y1x1NzM2Zlx1NzM3ZVx1ODIxYlx1NTkyNVx1OThlN1x1NTkyNFx1NTkwMlx1OTk2M1x1OTk2NyIsNSwiXHU5OTc0XHU5OTc3XHU5OTdkXHU5OTgwXHU5OTg0XHU5OTg3XHU5''@;'; + put 'put ''OThhXHU5OThkXHU5OTkwXHU5OTkxXHU5OTkzXHU5OTk0XHU5OTk1XHU1ZTgwXHU1ZTkxXHU1ZThiXHU1ZTk2XHU1ZWE1XHU1ZWEwXHU1ZWI5XHU1ZWI1XHU1ZWJlXHU1ZWIzXHU4ZDUzXHU1ZWQyXHU1ZWQxXHU1ZWRiXHU1ZWU4XHU1ZWVhXHU4MWJhXHU1ZmM0XHU1ZmM5XHU1ZmQ2XHU1ZmNm''@;'; + put 'put ''XHU2MDAzXHU1ZmVlXHU2MDA0XHU1ZmUxXHU1ZmU0XHU1ZmZlXHU2MDA1XHU2MDA2XHU1ZmVhXHU1ZmVkXHU1ZmY4XHU2MDE5XHU2MDM1XHU2MDI2XHU2MDFiXHU2MDBmXHU2MDBkXHU2MDI5XHU2MDJiXHU2MDBhXHU2MDNmXHU2MDIxXHU2MDc4XHU2MDc5XHU2MDdiXHU2MDdhXHU2MDQyIl0s''@;'; + put 'put ''WyJlMzQwIiwiXHU5MjQ2Iiw0NSwiXHU5Mjc1IiwxNl0sWyJlMzgwIiwiXHU5Mjg2Iiw3LCJcdTkyOGYiLDI0LCJcdTYwNmFcdTYwN2RcdTYwOTZcdTYwOWFcdTYwYWRcdTYwOWRcdTYwODNcdTYwOTJcdTYwOGNcdTYwOWJcdTYwZWNcdTYwYmJcdTYwYjFcdTYwZGRcdTYwZDhcdTYwYzZcdTYw''@;'; + put 'put ''ZGFcdTYwYjRcdTYxMjBcdTYxMjZcdTYxMTVcdTYxMjNcdTYwZjRcdTYxMDBcdTYxMGVcdTYxMmJcdTYxNGFcdTYxNzVcdTYxYWNcdTYxOTRcdTYxYTdcdTYxYjdcdTYxZDRcdTYxZjVcdTVmZGRcdTk2YjNcdTk1ZTlcdTk1ZWJcdTk1ZjFcdTk1ZjNcdTk1ZjVcdTk1ZjZcdTk1ZmNcdTk1ZmVc''@;'; + put 'put ''dTk2MDNcdTk2MDRcdTk2MDZcdTk2MDhcdTk2MGFcdTk2MGJcdTk2MGNcdTk2MGRcdTk2MGZcdTk2MTJcdTk2MTVcdTk2MTZcdTk2MTdcdTk2MTlcdTk2MWFcdTRlMmNcdTcyM2ZcdTYyMTVcdTZjMzVcdTZjNTRcdTZjNWNcdTZjNGFcdTZjYTNcdTZjODVcdTZjOTBcdTZjOTRcdTZjOGNcdTZj''@;'; + put 'put ''NjhcdTZjNjlcdTZjNzRcdTZjNzZcdTZjODZcdTZjYTlcdTZjZDBcdTZjZDRcdTZjYWRcdTZjZjdcdTZjZjhcdTZjZjFcdTZjZDdcdTZjYjJcdTZjZTBcdTZjZDZcdTZjZmFcdTZjZWJcdTZjZWVcdTZjYjFcdTZjZDNcdTZjZWZcdTZjZmUiXSxbImU0NDAiLCJcdTkyYTgiLDUsIlx1OTJhZiIs''@;'; + put 'put ''MjQsIlx1OTJjOSIsMzFdLFsiZTQ4MCIsIlx1OTJlOSIsMzIsIlx1NmQzOVx1NmQyN1x1NmQwY1x1NmQ0M1x1NmQ0OFx1NmQwN1x1NmQwNFx1NmQxOVx1NmQwZVx1NmQyYlx1NmQ0ZFx1NmQyZVx1NmQzNVx1NmQxYVx1NmQ0Zlx1NmQ1Mlx1NmQ1NFx1NmQzM1x1NmQ5MVx1NmQ2Zlx1NmQ5ZVx1''@;'; + put 'put ''NmRhMFx1NmQ1ZVx1NmQ5M1x1NmQ5NFx1NmQ1Y1x1NmQ2MFx1NmQ3Y1x1NmQ2M1x1NmUxYVx1NmRjN1x1NmRjNVx1NmRkZVx1NmUwZVx1NmRiZlx1NmRlMFx1NmUxMVx1NmRlNlx1NmRkZFx1NmRkOVx1NmUxNlx1NmRhYlx1NmUwY1x1NmRhZVx1NmUyYlx1NmU2ZVx1NmU0ZVx1NmU2Ylx1NmVi''@;'; + put 'put ''Mlx1NmU1Zlx1NmU4Nlx1NmU1M1x1NmU1NFx1NmUzMlx1NmUyNVx1NmU0NFx1NmVkZlx1NmViMVx1NmU5OFx1NmVlMFx1NmYyZFx1NmVlMlx1NmVhNVx1NmVhN1x1NmViZFx1NmViYlx1NmViN1x1NmVkN1x1NmViNFx1NmVjZlx1NmU4Zlx1NmVjMlx1NmU5Zlx1NmY2Mlx1NmY0Nlx1NmY0N1x1''@;'; + put 'put ''NmYyNFx1NmYxNVx1NmVmOVx1NmYyZlx1NmYzNlx1NmY0Ylx1NmY3NFx1NmYyYVx1NmYwOVx1NmYyOVx1NmY4OVx1NmY4ZFx1NmY4Y1x1NmY3OFx1NmY3Mlx1NmY3Y1x1NmY3YVx1NmZkMSJdLFsiZTU0MCIsIlx1OTMwYSIsNTEsIlx1OTMzZiIsMTBdLFsiZTU4MCIsIlx1OTM0YSIsMzEsIlx1''@;'; + put 'put ''OTM2Ylx1NmZjOVx1NmZhN1x1NmZiOVx1NmZiNlx1NmZjMlx1NmZlMVx1NmZlZVx1NmZkZVx1NmZlMFx1NmZlZlx1NzAxYVx1NzAyM1x1NzAxYlx1NzAzOVx1NzAzNVx1NzA0Zlx1NzA1ZVx1NWI4MFx1NWI4NFx1NWI5NVx1NWI5M1x1NWJhNVx1NWJiOFx1NzUyZlx1OWE5ZVx1NjQzNFx1NWJl''@;'; + put 'put ''NFx1NWJlZVx1ODkzMFx1NWJmMFx1OGU0N1x1OGIwN1x1OGZiNlx1OGZkM1x1OGZkNVx1OGZlNVx1OGZlZVx1OGZlNFx1OGZlOVx1OGZlNlx1OGZmM1x1OGZlOFx1OTAwNVx1OTAwNFx1OTAwYlx1OTAyNlx1OTAxMVx1OTAwZFx1OTAxNlx1OTAyMVx1OTAzNVx1OTAzNlx1OTAyZFx1OTAyZlx1''@;'; + put 'put ''OTA0NFx1OTA1MVx1OTA1Mlx1OTA1MFx1OTA2OFx1OTA1OFx1OTA2Mlx1OTA1Ylx1NjZiOVx1OTA3NFx1OTA3ZFx1OTA4Mlx1OTA4OFx1OTA4M1x1OTA4Ylx1NWY1MFx1NWY1N1x1NWY1Nlx1NWY1OFx1NWMzYlx1NTRhYlx1NWM1MFx1NWM1OVx1NWI3MVx1NWM2M1x1NWM2Nlx1N2ZiY1x1NWYy''@;'; + put 'put ''YVx1NWYyOVx1NWYyZFx1ODI3NFx1NWYzY1x1OWIzYlx1NWM2ZVx1NTk4MVx1NTk4M1x1NTk4ZFx1NTlhOVx1NTlhYVx1NTlhMyJdLFsiZTY0MCIsIlx1OTM2YyIsMzQsIlx1OTM5MCIsMjddLFsiZTY4MCIsIlx1OTNhYyIsMjksIlx1OTNjYlx1OTNjY1x1OTNjZFx1NTk5N1x1NTljYVx1NTlh''@;'; + put 'put ''Ylx1NTk5ZVx1NTlhNFx1NTlkMlx1NTliMlx1NTlhZlx1NTlkN1x1NTliZVx1NWEwNVx1NWEwNlx1NTlkZFx1NWEwOFx1NTllM1x1NTlkOFx1NTlmOVx1NWEwY1x1NWEwOVx1NWEzMlx1NWEzNFx1NWExMVx1NWEyM1x1NWExM1x1NWE0MFx1NWE2N1x1NWE0YVx1NWE1NVx1NWEzY1x1NWE2Mlx1''@;'; + put 'put ''NWE3NVx1ODBlY1x1NWFhYVx1NWE5Ylx1NWE3N1x1NWE3YVx1NWFiZVx1NWFlYlx1NWFiMlx1NWFkMlx1NWFkNFx1NWFiOFx1NWFlMFx1NWFlM1x1NWFmMVx1NWFkNlx1NWFlNlx1NWFkOFx1NWFkY1x1NWIwOVx1NWIxN1x1NWIxNlx1NWIzMlx1NWIzN1x1NWI0MFx1NWMxNVx1NWMxY1x1NWI1''@;'; + put 'put ''YVx1NWI2NVx1NWI3M1x1NWI1MVx1NWI1M1x1NWI2Mlx1OWE3NVx1OWE3N1x1OWE3OFx1OWE3YVx1OWE3Zlx1OWE3ZFx1OWE4MFx1OWE4MVx1OWE4NVx1OWE4OFx1OWE4YVx1OWE5MFx1OWE5Mlx1OWE5M1x1OWE5Nlx1OWE5OFx1OWE5Ylx1OWE5Y1x1OWE5ZFx1OWE5Zlx1OWFhMFx1OWFhMlx1''@;'; + put 'put ''OWFhM1x1OWFhNVx1OWFhN1x1N2U5Zlx1N2VhMVx1N2VhM1x1N2VhNVx1N2VhOFx1N2VhOSJdLFsiZTc0MCIsIlx1OTNjZSIsNywiXHU5M2Q3Iiw1NF0sWyJlNzgwIiwiXHU5NDBlIiwzMiwiXHU3ZWFkXHU3ZWIwXHU3ZWJlXHU3ZWMwXHU3ZWMxXHU3ZWMyXHU3ZWM5XHU3ZWNiXHU3ZWNjXHU3''@;'; + put 'put ''ZWQwXHU3ZWQ0XHU3ZWQ3XHU3ZWRiXHU3ZWUwXHU3ZWUxXHU3ZWU4XHU3ZWViXHU3ZWVlXHU3ZWVmXHU3ZWYxXHU3ZWYyXHU3ZjBkXHU3ZWY2XHU3ZWZhXHU3ZWZiXHU3ZWZlXHU3ZjAxXHU3ZjAyXHU3ZjAzXHU3ZjA3XHU3ZjA4XHU3ZjBiXHU3ZjBjXHU3ZjBmXHU3ZjExXHU3ZjEyXHU3ZjE3''@;'; + put 'put ''XHU3ZjE5XHU3ZjFjXHU3ZjFiXHU3ZjFmXHU3ZjIxIiw2LCJcdTdmMmFcdTdmMmJcdTdmMmNcdTdmMmRcdTdmMmYiLDQsIlx1N2YzNVx1NWU3YVx1NzU3Zlx1NWRkYlx1NzUzZVx1OTA5NVx1NzM4ZVx1NzM5MVx1NzNhZVx1NzNhMlx1NzM5Zlx1NzNjZlx1NzNjMlx1NzNkMVx1NzNiN1x1NzNi''@;'; + put 'put ''M1x1NzNjMFx1NzNjOVx1NzNjOFx1NzNlNVx1NzNkOVx1OTg3Y1x1NzQwYVx1NzNlOVx1NzNlN1x1NzNkZVx1NzNiYVx1NzNmMlx1NzQwZlx1NzQyYVx1NzQ1Ylx1NzQyNlx1NzQyNVx1NzQyOFx1NzQzMFx1NzQyZVx1NzQyYyJdLFsiZTg0MCIsIlx1OTQyZiIsMTQsIlx1OTQzZiIsNDMsIlx1''@;'; + put 'put ''OTQ2Y1x1OTQ2ZFx1OTQ2ZVx1OTQ2ZiJdLFsiZTg4MCIsIlx1OTQ3MCIsMjAsIlx1OTQ5MVx1OTQ5Nlx1OTQ5OFx1OTRjN1x1OTRjZlx1OTRkM1x1OTRkNFx1OTRkYVx1OTRlNlx1OTRmYlx1OTUxY1x1OTUyMFx1NzQxYlx1NzQxYVx1NzQ0MVx1NzQ1Y1x1NzQ1N1x1NzQ1NVx1NzQ1OVx1NzQ3''@;'; + put 'put ''N1x1NzQ2ZFx1NzQ3ZVx1NzQ5Y1x1NzQ4ZVx1NzQ4MFx1NzQ4MVx1NzQ4N1x1NzQ4Ylx1NzQ5ZVx1NzRhOFx1NzRhOVx1NzQ5MFx1NzRhN1x1NzRkMlx1NzRiYVx1OTdlYVx1OTdlYlx1OTdlY1x1Njc0Y1x1Njc1M1x1Njc1ZVx1Njc0OFx1Njc2OVx1NjdhNVx1Njc4N1x1Njc2YVx1Njc3M1x1''@;'; + put 'put ''Njc5OFx1NjdhN1x1Njc3NVx1NjdhOFx1Njc5ZVx1NjdhZFx1Njc4Ylx1Njc3N1x1Njc3Y1x1NjdmMFx1NjgwOVx1NjdkOFx1NjgwYVx1NjdlOVx1NjdiMFx1NjgwY1x1NjdkOVx1NjdiNVx1NjdkYVx1NjdiM1x1NjdkZFx1NjgwMFx1NjdjM1x1NjdiOFx1NjdlMlx1NjgwZVx1NjdjMVx1Njdm''@;'; + put 'put ''ZFx1NjgzMlx1NjgzM1x1Njg2MFx1Njg2MVx1Njg0ZVx1Njg2Mlx1Njg0NFx1Njg2NFx1Njg4M1x1NjgxZFx1Njg1NVx1Njg2Nlx1Njg0MVx1Njg2N1x1Njg0MFx1NjgzZVx1Njg0YVx1Njg0OVx1NjgyOVx1NjhiNVx1Njg4Zlx1Njg3NFx1Njg3N1x1Njg5M1x1Njg2Ylx1NjhjMlx1Njk2ZVx1''@;'; + put 'put ''NjhmY1x1NjkxZlx1NjkyMFx1NjhmOSJdLFsiZTk0MCIsIlx1OTUyN1x1OTUzM1x1OTUzZFx1OTU0M1x1OTU0OFx1OTU0Ylx1OTU1NVx1OTU1YVx1OTU2MFx1OTU2ZVx1OTU3NFx1OTU3NVx1OTU3NyIsNywiXHU5NTgwIiw0Ml0sWyJlOTgwIiwiXHU5NWFiIiwzMiwiXHU2OTI0XHU2OGYwXHU2''@;'; + put 'put ''OTBiXHU2OTAxXHU2OTU3XHU2OGUzXHU2OTEwXHU2OTcxXHU2OTM5XHU2OTYwXHU2OTQyXHU2OTVkXHU2OTg0XHU2OTZiXHU2OTgwXHU2OTk4XHU2OTc4XHU2OTM0XHU2OWNjXHU2OTg3XHU2OTg4XHU2OWNlXHU2OTg5XHU2OTY2XHU2OTYzXHU2OTc5XHU2OTliXHU2OWE3XHU2OWJiXHU2OWFi''@;'; + put 'put ''XHU2OWFkXHU2OWQ0XHU2OWIxXHU2OWMxXHU2OWNhXHU2OWRmXHU2OTk1XHU2OWUwXHU2OThkXHU2OWZmXHU2YTJmXHU2OWVkXHU2YTE3XHU2YTE4XHU2YTY1XHU2OWYyXHU2YTQ0XHU2YTNlXHU2YWEwXHU2YTUwXHU2YTViXHU2YTM1XHU2YThlXHU2YTc5XHU2YTNkXHU2YTI4XHU2YTU4XHU2''@;'; + put 'put ''YTdjXHU2YTkxXHU2YTkwXHU2YWE5XHU2YTk3XHU2YWFiXHU3MzM3XHU3MzUyXHU2YjgxXHU2YjgyXHU2Yjg3XHU2Yjg0XHU2YjkyXHU2YjkzXHU2YjhkXHU2YjlhXHU2YjliXHU2YmExXHU2YmFhXHU4ZjZiXHU4ZjZkXHU4ZjcxXHU4ZjcyXHU4ZjczXHU4Zjc1XHU4Zjc2XHU4Zjc4XHU4Zjc3''@;'; + put 'put ''XHU4Zjc5XHU4ZjdhXHU4ZjdjXHU4ZjdlXHU4ZjgxXHU4ZjgyXHU4Zjg0XHU4Zjg3XHU4ZjhiIl0sWyJlYTQwIiwiXHU5NWNjIiwyNywiXHU5NWVjXHU5NWZmXHU5NjA3XHU5NjEzXHU5NjE4XHU5NjFiXHU5NjFlXHU5NjIwXHU5NjIzIiw2LCJcdTk2MmJcdTk2MmNcdTk2MmRcdTk2MmZcdTk2''@;'; + put 'put ''MzBcdTk2MzdcdTk2MzhcdTk2MzlcdTk2M2FcdTk2M2VcdTk2NDFcdTk2NDNcdTk2NGFcdTk2NGVcdTk2NGZcdTk2NTFcdTk2NTJcdTk2NTNcdTk2NTZcdTk2NTciXSxbImVhODAiLCJcdTk2NThcdTk2NTlcdTk2NWFcdTk2NWNcdTk2NWRcdTk2NWVcdTk2NjBcdTk2NjNcdTk2NjVcdTk2NjZc''@;'; + put 'put ''dTk2NmJcdTk2NmQiLDQsIlx1OTY3M1x1OTY3OCIsMTIsIlx1OTY4N1x1OTY4OVx1OTY4YVx1OGY4ZFx1OGY4ZVx1OGY4Zlx1OGY5OFx1OGY5YVx1OGVjZVx1NjIwYlx1NjIxN1x1NjIxYlx1NjIxZlx1NjIyMlx1NjIyMVx1NjIyNVx1NjIyNFx1NjIyY1x1ODFlN1x1NzRlZlx1NzRmNFx1NzRm''@;'; + put 'put ''Zlx1NzUwZlx1NzUxMVx1NzUxM1x1NjUzNFx1NjVlZVx1NjVlZlx1NjVmMFx1NjYwYVx1NjYxOVx1Njc3Mlx1NjYwM1x1NjYxNVx1NjYwMFx1NzA4NVx1NjZmN1x1NjYxZFx1NjYzNFx1NjYzMVx1NjYzNlx1NjYzNVx1ODAwNlx1NjY1Zlx1NjY1NFx1NjY0MVx1NjY0Zlx1NjY1Nlx1NjY2MVx1''@;'; + put 'put ''NjY1N1x1NjY3N1x1NjY4NFx1NjY4Y1x1NjZhN1x1NjY5ZFx1NjZiZVx1NjZkYlx1NjZkY1x1NjZlNlx1NjZlOVx1OGQzMlx1OGQzM1x1OGQzNlx1OGQzYlx1OGQzZFx1OGQ0MFx1OGQ0NVx1OGQ0Nlx1OGQ0OFx1OGQ0OVx1OGQ0N1x1OGQ0ZFx1OGQ1NVx1OGQ1OVx1ODljN1x1ODljYVx1ODlj''@;'; + put 'put ''Ylx1ODljY1x1ODljZVx1ODljZlx1ODlkMFx1ODlkMVx1NzI2ZVx1NzI5Zlx1NzI1ZFx1NzI2Nlx1NzI2Zlx1NzI3ZVx1NzI3Zlx1NzI4NFx1NzI4Ylx1NzI4ZFx1NzI4Zlx1NzI5Mlx1NjMwOFx1NjMzMlx1NjNiMCJdLFsiZWI0MCIsIlx1OTY4Y1x1OTY4ZVx1OTY5MVx1OTY5Mlx1OTY5M1x1''@;'; + put 'put ''OTY5NVx1OTY5Nlx1OTY5YVx1OTY5Ylx1OTY5ZCIsOSwiXHU5NmE4Iiw3LCJcdTk2YjFcdTk2YjJcdTk2YjRcdTk2YjVcdTk2YjdcdTk2YjhcdTk2YmFcdTk2YmJcdTk2YmZcdTk2YzJcdTk2YzNcdTk2YzhcdTk2Y2FcdTk2Y2JcdTk2ZDBcdTk2ZDFcdTk2ZDNcdTk2ZDRcdTk2ZDYiLDksIlx1''@;'; + put 'put ''OTZlMSIsNiwiXHU5NmViIl0sWyJlYjgwIiwiXHU5NmVjXHU5NmVkXHU5NmVlXHU5NmYwXHU5NmYxXHU5NmYyXHU5NmY0XHU5NmY1XHU5NmY4XHU5NmZhXHU5NmZiXHU5NmZjXHU5NmZkXHU5NmZmXHU5NzAyXHU5NzAzXHU5NzA1XHU5NzBhXHU5NzBiXHU5NzBjXHU5NzEwXHU5NzExXHU5NzEy''@;'; + put 'put ''XHU5NzE0XHU5NzE1XHU5NzE3Iiw0LCJcdTk3MWRcdTk3MWZcdTk3MjBcdTY0M2ZcdTY0ZDhcdTgwMDRcdTZiZWFcdTZiZjNcdTZiZmRcdTZiZjVcdTZiZjlcdTZjMDVcdTZjMDdcdTZjMDZcdTZjMGRcdTZjMTVcdTZjMThcdTZjMTlcdTZjMWFcdTZjMjFcdTZjMjlcdTZjMjRcdTZjMmFcdTZj''@;'; + put 'put ''MzJcdTY1MzVcdTY1NTVcdTY1NmJcdTcyNGRcdTcyNTJcdTcyNTZcdTcyMzBcdTg2NjJcdTUyMTZcdTgwOWZcdTgwOWNcdTgwOTNcdTgwYmNcdTY3MGFcdTgwYmRcdTgwYjFcdTgwYWJcdTgwYWRcdTgwYjRcdTgwYjdcdTgwZTdcdTgwZThcdTgwZTlcdTgwZWFcdTgwZGJcdTgwYzJcdTgwYzRc''@;'; + put 'put ''dTgwZDlcdTgwY2RcdTgwZDdcdTY3MTBcdTgwZGRcdTgwZWJcdTgwZjFcdTgwZjRcdTgwZWRcdTgxMGRcdTgxMGVcdTgwZjJcdTgwZmNcdTY3MTVcdTgxMTJcdThjNWFcdTgxMzZcdTgxMWVcdTgxMmNcdTgxMThcdTgxMzJcdTgxNDhcdTgxNGNcdTgxNTNcdTgxNzRcdTgxNTlcdTgxNWFcdTgx''@;'; + put 'put ''NzFcdTgxNjBcdTgxNjlcdTgxN2NcdTgxN2RcdTgxNmRcdTgxNjdcdTU4NGRcdTVhYjVcdTgxODhcdTgxODJcdTgxOTFcdTZlZDVcdTgxYTNcdTgxYWFcdTgxY2NcdTY3MjZcdTgxY2FcdTgxYmIiXSxbImVjNDAiLCJcdTk3MjEiLDgsIlx1OTcyYlx1OTcyY1x1OTcyZVx1OTcyZlx1OTczMVx1''@;'; + put 'put ''OTczMyIsNCwiXHU5NzNhXHU5NzNiXHU5NzNjXHU5NzNkXHU5NzNmIiwxOCwiXHU5NzU0XHU5NzU1XHU5NzU3XHU5NzU4XHU5NzVhXHU5NzVjXHU5NzVkXHU5NzVmXHU5NzYzXHU5NzY0XHU5NzY2XHU5NzY3XHU5NzY4XHU5NzZhIiw3XSxbImVjODAiLCJcdTk3NzJcdTk3NzVcdTk3NzciLDQs''@;'; + put 'put ''Ilx1OTc3ZCIsNywiXHU5Nzg2Iiw0LCJcdTk3OGNcdTk3OGVcdTk3OGZcdTk3OTBcdTk3OTNcdTk3OTVcdTk3OTZcdTk3OTdcdTk3OTkiLDQsIlx1ODFjMVx1ODFhNlx1NmIyNFx1NmIzN1x1NmIzOVx1NmI0M1x1NmI0Nlx1NmI1OVx1OThkMVx1OThkMlx1OThkM1x1OThkNVx1OThkOVx1OThk''@;'; + put 'put ''YVx1NmJiM1x1NWY0MFx1NmJjMlx1ODlmM1x1NjU5MFx1OWY1MVx1NjU5M1x1NjViY1x1NjVjNlx1NjVjNFx1NjVjM1x1NjVjY1x1NjVjZVx1NjVkMlx1NjVkNlx1NzA4MFx1NzA5Y1x1NzA5Nlx1NzA5ZFx1NzBiYlx1NzBjMFx1NzBiN1x1NzBhYlx1NzBiMVx1NzBlOFx1NzBjYVx1NzExMFx1''@;'; + put 'put ''NzExM1x1NzExNlx1NzEyZlx1NzEzMVx1NzE3M1x1NzE1Y1x1NzE2OFx1NzE0NVx1NzE3Mlx1NzE0YVx1NzE3OFx1NzE3YVx1NzE5OFx1NzFiM1x1NzFiNVx1NzFhOFx1NzFhMFx1NzFlMFx1NzFkNFx1NzFlN1x1NzFmOVx1NzIxZFx1NzIyOFx1NzA2Y1x1NzExOFx1NzE2Nlx1NzFiOVx1NjIz''@;'; + put 'put ''ZVx1NjIzZFx1NjI0M1x1NjI0OFx1NjI0OVx1NzkzYlx1Nzk0MFx1Nzk0Nlx1Nzk0OVx1Nzk1Ylx1Nzk1Y1x1Nzk1M1x1Nzk1YVx1Nzk2Mlx1Nzk1N1x1Nzk2MFx1Nzk2Zlx1Nzk2N1x1Nzk3YVx1Nzk4NVx1Nzk4YVx1Nzk5YVx1NzlhN1x1NzliM1x1NWZkMVx1NWZkMCJdLFsiZWQ0MCIsIlx1''@;'; + put 'put ''OTc5ZVx1OTc5Zlx1OTdhMVx1OTdhMlx1OTdhNCIsNiwiXHU5N2FjXHU5N2FlXHU5N2IwXHU5N2IxXHU5N2IzXHU5N2I1Iiw0Nl0sWyJlZDgwIiwiXHU5N2U0XHU5N2U1XHU5N2U4XHU5N2VlIiw0LCJcdTk3ZjRcdTk3ZjciLDIzLCJcdTYwM2NcdTYwNWRcdTYwNWFcdTYwNjdcdTYwNDFcdTYw''@;'; + put 'put ''NTlcdTYwNjNcdTYwYWJcdTYxMDZcdTYxMGRcdTYxNWRcdTYxYTlcdTYxOWRcdTYxY2JcdTYxZDFcdTYyMDZcdTgwODBcdTgwN2ZcdTZjOTNcdTZjZjZcdTZkZmNcdTc3ZjZcdTc3ZjhcdTc4MDBcdTc4MDlcdTc4MTdcdTc4MThcdTc4MTFcdTY1YWJcdTc4MmRcdTc4MWNcdTc4MWRcdTc4Mzlc''@;'; + put 'put ''dTc4M2FcdTc4M2JcdTc4MWZcdTc4M2NcdTc4MjVcdTc4MmNcdTc4MjNcdTc4MjlcdTc4NGVcdTc4NmRcdTc4NTZcdTc4NTdcdTc4MjZcdTc4NTBcdTc4NDdcdTc4NGNcdTc4NmFcdTc4OWJcdTc4OTNcdTc4OWFcdTc4ODdcdTc4OWNcdTc4YTFcdTc4YTNcdTc4YjJcdTc4YjlcdTc4YTVcdTc4''@;'; + put 'put ''ZDRcdTc4ZDlcdTc4YzlcdTc4ZWNcdTc4ZjJcdTc5MDVcdTc4ZjRcdTc5MTNcdTc5MjRcdTc5MWVcdTc5MzRcdTlmOWJcdTllZjlcdTllZmJcdTllZmNcdTc2ZjFcdTc3MDRcdTc3MGRcdTc2ZjlcdTc3MDdcdTc3MDhcdTc3MWFcdTc3MjJcdTc3MTlcdTc3MmRcdTc3MjZcdTc3MzVcdTc3Mzhc''@;'; + put 'put ''dTc3NTBcdTc3NTFcdTc3NDdcdTc3NDNcdTc3NWFcdTc3NjgiXSxbImVlNDAiLCJcdTk4MGYiLDYyXSxbImVlODAiLCJcdTk4NGUiLDMyLCJcdTc3NjJcdTc3NjVcdTc3N2ZcdTc3OGRcdTc3N2RcdTc3ODBcdTc3OGNcdTc3OTFcdTc3OWZcdTc3YTBcdTc3YjBcdTc3YjVcdTc3YmRcdTc1M2Fc''@;'; + put 'put ''dTc1NDBcdTc1NGVcdTc1NGJcdTc1NDhcdTc1NWJcdTc1NzJcdTc1NzlcdTc1ODNcdTdmNThcdTdmNjFcdTdmNWZcdThhNDhcdTdmNjhcdTdmNzRcdTdmNzFcdTdmNzlcdTdmODFcdTdmN2VcdTc2Y2RcdTc2ZTVcdTg4MzJcdTk0ODVcdTk0ODZcdTk0ODdcdTk0OGJcdTk0OGFcdTk0OGNcdTk0''@;'; + put 'put ''OGRcdTk0OGZcdTk0OTBcdTk0OTRcdTk0OTdcdTk0OTVcdTk0OWFcdTk0OWJcdTk0OWNcdTk0YTNcdTk0YTRcdTk0YWJcdTk0YWFcdTk0YWRcdTk0YWNcdTk0YWZcdTk0YjBcdTk0YjJcdTk0YjRcdTk0YjYiLDQsIlx1OTRiY1x1OTRiZFx1OTRiZlx1OTRjNFx1OTRjOCIsNiwiXHU5NGQwXHU5''@;'; + put 'put ''NGQxXHU5NGQyXHU5NGQ1XHU5NGQ2XHU5NGQ3XHU5NGQ5XHU5NGQ4XHU5NGRiXHU5NGRlXHU5NGRmXHU5NGUwXHU5NGUyXHU5NGU0XHU5NGU1XHU5NGU3XHU5NGU4XHU5NGVhIl0sWyJlZjQwIiwiXHU5ODZmIiw1LCJcdTk4OGJcdTk4OGVcdTk4OTJcdTk4OTVcdTk4OTlcdTk4YTNcdTk4YTgi''@;'; + put 'put ''LDM3LCJcdTk4Y2ZcdTk4ZDBcdTk4ZDRcdTk4ZDZcdTk4ZDdcdTk4ZGJcdTk4ZGNcdTk4ZGRcdTk4ZTAiLDRdLFsiZWY4MCIsIlx1OThlNVx1OThlNlx1OThlOSIsMzAsIlx1OTRlOVx1OTRlYlx1OTRlZVx1OTRlZlx1OTRmM1x1OTRmNFx1OTRmNVx1OTRmN1x1OTRmOVx1OTRmY1x1OTRmZFx1''@;'; + put 'put ''OTRmZlx1OTUwM1x1OTUwMlx1OTUwNlx1OTUwN1x1OTUwOVx1OTUwYVx1OTUwZFx1OTUwZVx1OTUwZlx1OTUxMiIsNCwiXHU5NTE4XHU5NTFiXHU5NTFkXHU5NTFlXHU5NTFmXHU5NTIyXHU5NTJhXHU5NTJiXHU5NTI5XHU5NTJjXHU5NTMxXHU5NTMyXHU5NTM0XHU5NTM2XHU5NTM3XHU5NTM4''@;'; + put 'put ''XHU5NTNjXHU5NTNlXHU5NTNmXHU5NTQyXHU5NTM1XHU5NTQ0XHU5NTQ1XHU5NTQ2XHU5NTQ5XHU5NTRjXHU5NTRlXHU5NTRmXHU5NTUyXHU5NTUzXHU5NTU0XHU5NTU2XHU5NTU3XHU5NTU4XHU5NTU5XHU5NTViXHU5NTVlXHU5NTVmXHU5NTVkXHU5NTYxXHU5NTYyXHU5NTY0Iiw4LCJcdTk1''@;'; + put 'put ''NmZcdTk1NzFcdTk1NzJcdTk1NzNcdTk1M2FcdTc3ZTdcdTc3ZWNcdTk2YzlcdTc5ZDVcdTc5ZWRcdTc5ZTNcdTc5ZWJcdTdhMDZcdTVkNDdcdTdhMDNcdTdhMDJcdTdhMWVcdTdhMTQiXSxbImYwNDAiLCJcdTk5MDgiLDQsIlx1OTkwZVx1OTkwZlx1OTkxMSIsMjgsIlx1OTkyZiIsMjZdLFsi''@;'; + put 'put ''ZjA4MCIsIlx1OTk0YSIsOSwiXHU5OTU2IiwxMiwiXHU5OTY0XHU5OTY2XHU5OTczXHU5OTc4XHU5OTc5XHU5OTdiXHU5OTdlXHU5OTgyXHU5OTgzXHU5OTg5XHU3YTM5XHU3YTM3XHU3YTUxXHU5ZWNmXHU5OWE1XHU3YTcwXHU3Njg4XHU3NjhlXHU3NjkzXHU3Njk5XHU3NmE0XHU3NGRlXHU3''@;'; + put 'put ''NGUwXHU3NTJjXHU5ZTIwXHU5ZTIyXHU5ZTI4Iiw0LCJcdTllMzJcdTllMzFcdTllMzZcdTllMzhcdTllMzdcdTllMzlcdTllM2FcdTllM2VcdTllNDFcdTllNDJcdTllNDRcdTllNDZcdTllNDdcdTllNDhcdTllNDlcdTllNGJcdTllNGNcdTllNGVcdTllNTFcdTllNTVcdTllNTdcdTllNWFc''@;'; + put 'put ''dTllNWJcdTllNWNcdTllNWVcdTllNjNcdTllNjYiLDYsIlx1OWU3MVx1OWU2ZFx1OWU3M1x1NzU5Mlx1NzU5NFx1NzU5Nlx1NzVhMFx1NzU5ZFx1NzVhY1x1NzVhM1x1NzViM1x1NzViNFx1NzViOFx1NzVjNFx1NzViMVx1NzViMFx1NzVjM1x1NzVjMlx1NzVkNlx1NzVjZFx1NzVlM1x1NzVl''@;'; + put 'put ''OFx1NzVlNlx1NzVlNFx1NzVlYlx1NzVlN1x1NzYwM1x1NzVmMVx1NzVmY1x1NzVmZlx1NzYxMFx1NzYwMFx1NzYwNVx1NzYwY1x1NzYxN1x1NzYwYVx1NzYyNVx1NzYxOFx1NzYxNVx1NzYxOSJdLFsiZjE0MCIsIlx1OTk4Y1x1OTk4ZVx1OTk5YSIsMTAsIlx1OTlhNlx1OTlhN1x1OTlhOSIs''@;'; + put 'put ''NDddLFsiZjE4MCIsIlx1OTlkOSIsMzIsIlx1NzYxYlx1NzYzY1x1NzYyMlx1NzYyMFx1NzY0MFx1NzYyZFx1NzYzMFx1NzYzZlx1NzYzNVx1NzY0M1x1NzYzZVx1NzYzM1x1NzY0ZFx1NzY1ZVx1NzY1NFx1NzY1Y1x1NzY1Nlx1NzY2Ylx1NzY2Zlx1N2ZjYVx1N2FlNlx1N2E3OFx1N2E3OVx1''@;'; + put 'put ''N2E4MFx1N2E4Nlx1N2E4OFx1N2E5NVx1N2FhNlx1N2FhMFx1N2FhY1x1N2FhOFx1N2FhZFx1N2FiM1x1ODg2NFx1ODg2OVx1ODg3Mlx1ODg3ZFx1ODg3Zlx1ODg4Mlx1ODhhMlx1ODhjNlx1ODhiN1x1ODhiY1x1ODhjOVx1ODhlMlx1ODhjZVx1ODhlM1x1ODhlNVx1ODhmMVx1ODkxYVx1ODhm''@;'; + put 'put ''Y1x1ODhlOFx1ODhmZVx1ODhmMFx1ODkyMVx1ODkxOVx1ODkxM1x1ODkxYlx1ODkwYVx1ODkzNFx1ODkyYlx1ODkzNlx1ODk0MVx1ODk2Nlx1ODk3Ylx1NzU4Ylx1ODBlNVx1NzZiMlx1NzZiNFx1NzdkY1x1ODAxMlx1ODAxNFx1ODAxNlx1ODAxY1x1ODAyMFx1ODAyMlx1ODAyNVx1ODAyNlx1''@;'; + put 'put ''ODAyN1x1ODAyOVx1ODAyOFx1ODAzMVx1ODAwYlx1ODAzNVx1ODA0M1x1ODA0Nlx1ODA0ZFx1ODA1Mlx1ODA2OVx1ODA3MVx1ODk4M1x1OTg3OFx1OTg4MFx1OTg4MyJdLFsiZjI0MCIsIlx1OTlmYSIsNjJdLFsiZjI4MCIsIlx1OWEzOSIsMzIsIlx1OTg4OVx1OTg4Y1x1OTg4ZFx1OTg4Zlx1''@;'; + put 'put ''OTg5NFx1OTg5YVx1OTg5Ylx1OTg5ZVx1OTg5Zlx1OThhMVx1OThhMlx1OThhNVx1OThhNlx1ODY0ZFx1ODY1NFx1ODY2Y1x1ODY2ZVx1ODY3Zlx1ODY3YVx1ODY3Y1x1ODY3Ylx1ODZhOFx1ODY4ZFx1ODY4Ylx1ODZhY1x1ODY5ZFx1ODZhN1x1ODZhM1x1ODZhYVx1ODY5M1x1ODZhOVx1ODZi''@;'; + put 'put ''Nlx1ODZjNFx1ODZiNVx1ODZjZVx1ODZiMFx1ODZiYVx1ODZiMVx1ODZhZlx1ODZjOVx1ODZjZlx1ODZiNFx1ODZlOVx1ODZmMVx1ODZmMlx1ODZlZFx1ODZmM1x1ODZkMFx1ODcxM1x1ODZkZVx1ODZmNFx1ODZkZlx1ODZkOFx1ODZkMVx1ODcwM1x1ODcwN1x1ODZmOFx1ODcwOFx1ODcwYVx1''@;'; + put 'put ''ODcwZFx1ODcwOVx1ODcyM1x1ODczYlx1ODcxZVx1ODcyNVx1ODcyZVx1ODcxYVx1ODczZVx1ODc0OFx1ODczNFx1ODczMVx1ODcyOVx1ODczN1x1ODczZlx1ODc4Mlx1ODcyMlx1ODc3ZFx1ODc3ZVx1ODc3Ylx1ODc2MFx1ODc3MFx1ODc0Y1x1ODc2ZVx1ODc4Ylx1ODc1M1x1ODc2M1x1ODc3''@;'; + put 'put ''Y1x1ODc2NFx1ODc1OVx1ODc2NVx1ODc5M1x1ODdhZlx1ODdhOFx1ODdkMiJdLFsiZjM0MCIsIlx1OWE1YSIsMTcsIlx1OWE3Mlx1OWE4M1x1OWE4OVx1OWE4ZFx1OWE4ZVx1OWE5NFx1OWE5NVx1OWE5OVx1OWFhNlx1OWFhOSIsNiwiXHU5YWIyXHU5YWIzXHU5YWI0XHU5YWI1XHU5YWI5XHU5''@;'; + put 'put ''YWJiXHU5YWJkXHU5YWJlXHU5YWJmXHU5YWMzXHU5YWM0XHU5YWM2Iiw0LCJcdTlhY2RcdTlhY2VcdTlhY2ZcdTlhZDBcdTlhZDJcdTlhZDRcdTlhZDVcdTlhZDZcdTlhZDdcdTlhZDlcdTlhZGFcdTlhZGJcdTlhZGMiXSxbImYzODAiLCJcdTlhZGRcdTlhZGVcdTlhZTBcdTlhZTJcdTlhZTNc''@;'; + put 'put ''dTlhZTRcdTlhZTVcdTlhZTdcdTlhZThcdTlhZTlcdTlhZWFcdTlhZWNcdTlhZWVcdTlhZjAiLDgsIlx1OWFmYVx1OWFmYyIsNiwiXHU5YjA0XHU5YjA1XHU5YjA2XHU4N2M2XHU4Nzg4XHU4Nzg1XHU4N2FkXHU4Nzk3XHU4NzgzXHU4N2FiXHU4N2U1XHU4N2FjXHU4N2I1XHU4N2IzXHU4N2Ni''@;'; + put 'put ''XHU4N2QzXHU4N2JkXHU4N2QxXHU4N2MwXHU4N2NhXHU4N2RiXHU4N2VhXHU4N2UwXHU4N2VlXHU4ODE2XHU4ODEzXHU4N2ZlXHU4ODBhXHU4ODFiXHU4ODIxXHU4ODM5XHU4ODNjXHU3ZjM2XHU3ZjQyXHU3ZjQ0XHU3ZjQ1XHU4MjEwXHU3YWZhXHU3YWZkXHU3YjA4XHU3YjAzXHU3YjA0XHU3''@;'; + put 'put ''YjE1XHU3YjBhXHU3YjJiXHU3YjBmXHU3YjQ3XHU3YjM4XHU3YjJhXHU3YjE5XHU3YjJlXHU3YjMxXHU3YjIwXHU3YjI1XHU3YjI0XHU3YjMzXHU3YjNlXHU3YjFlXHU3YjU4XHU3YjVhXHU3YjQ1XHU3Yjc1XHU3YjRjXHU3YjVkXHU3YjYwXHU3YjZlXHU3YjdiXHU3YjYyXHU3YjcyXHU3Yjcx''@;'; + put 'put ''XHU3YjkwXHU3YmE2XHU3YmE3XHU3YmI4XHU3YmFjXHU3YjlkXHU3YmE4XHU3Yjg1XHU3YmFhXHU3YjljXHU3YmEyXHU3YmFiXHU3YmI0XHU3YmQxXHU3YmMxXHU3YmNjXHU3YmRkXHU3YmRhXHU3YmU1XHU3YmU2XHU3YmVhXHU3YzBjXHU3YmZlXHU3YmZjXHU3YzBmXHU3YzE2XHU3YzBiIl0s''@;'; + put 'put ''WyJmNDQwIiwiXHU5YjA3XHU5YjA5Iiw1LCJcdTliMTBcdTliMTFcdTliMTJcdTliMTQiLDEwLCJcdTliMjBcdTliMjFcdTliMjJcdTliMjQiLDEwLCJcdTliMzBcdTliMzFcdTliMzMiLDcsIlx1OWIzZFx1OWIzZVx1OWIzZlx1OWI0MFx1OWI0Nlx1OWI0YVx1OWI0Ylx1OWI0Y1x1OWI0ZVx1''@;'; + put 'put ''OWI1MFx1OWI1Mlx1OWI1M1x1OWI1NSIsNV0sWyJmNDgwIiwiXHU5YjViIiwzMiwiXHU3YzFmXHU3YzJhXHU3YzI2XHU3YzM4XHU3YzQxXHU3YzQwXHU4MWZlXHU4MjAxXHU4MjAyXHU4MjA0XHU4MWVjXHU4ODQ0XHU4MjIxXHU4MjIyXHU4MjIzXHU4MjJkXHU4MjJmXHU4MjI4XHU4MjJiXHU4''@;'; + put 'put ''MjM4XHU4MjNiXHU4MjMzXHU4MjM0XHU4MjNlXHU4MjQ0XHU4MjQ5XHU4MjRiXHU4MjRmXHU4MjVhXHU4MjVmXHU4MjY4XHU4ODdlXHU4ODg1XHU4ODg4XHU4OGQ4XHU4OGRmXHU4OTVlXHU3ZjlkXHU3ZjlmXHU3ZmE3XHU3ZmFmXHU3ZmIwXHU3ZmIyXHU3YzdjXHU2NTQ5XHU3YzkxXHU3Yzlk''@;'; + put 'put ''XHU3YzljXHU3YzllXHU3Y2EyXHU3Y2IyXHU3Y2JjXHU3Y2JkXHU3Y2MxXHU3Y2M3XHU3Y2NjXHU3Y2NkXHU3Y2M4XHU3Y2M1XHU3Y2Q3XHU3Y2U4XHU4MjZlXHU2NmE4XHU3ZmJmXHU3ZmNlXHU3ZmQ1XHU3ZmU1XHU3ZmUxXHU3ZmU2XHU3ZmU5XHU3ZmVlXHU3ZmYzXHU3Y2Y4XHU3ZDc3XHU3''@;'; + put 'put ''ZGE2XHU3ZGFlXHU3ZTQ3XHU3ZTliXHU5ZWI4XHU5ZWI0XHU4ZDczXHU4ZDg0XHU4ZDk0XHU4ZDkxXHU4ZGIxXHU4ZDY3XHU4ZDZkXHU4YzQ3XHU4YzQ5XHU5MTRhXHU5MTUwXHU5MTRlXHU5MTRmXHU5MTY0Il0sWyJmNTQwIiwiXHU5YjdjIiw2Ml0sWyJmNTgwIiwiXHU5YmJiIiwzMiwiXHU5''@;'; + put 'put ''MTYyXHU5MTYxXHU5MTcwXHU5MTY5XHU5MTZmXHU5MTdkXHU5MTdlXHU5MTcyXHU5MTc0XHU5MTc5XHU5MThjXHU5MTg1XHU5MTkwXHU5MThkXHU5MTkxXHU5MWEyXHU5MWEzXHU5MWFhXHU5MWFkXHU5MWFlXHU5MWFmXHU5MWI1XHU5MWI0XHU5MWJhXHU4YzU1XHU5ZTdlXHU4ZGI4XHU4ZGVi''@;'; + put 'put ''XHU4ZTA1XHU4ZTU5XHU4ZTY5XHU4ZGI1XHU4ZGJmXHU4ZGJjXHU4ZGJhXHU4ZGM0XHU4ZGQ2XHU4ZGQ3XHU4ZGRhXHU4ZGRlXHU4ZGNlXHU4ZGNmXHU4ZGRiXHU4ZGM2XHU4ZGVjXHU4ZGY3XHU4ZGY4XHU4ZGUzXHU4ZGY5XHU4ZGZiXHU4ZGU0XHU4ZTA5XHU4ZGZkXHU4ZTE0XHU4ZTFkXHU4''@;'; + put 'put ''ZTFmXHU4ZTJjXHU4ZTJlXHU4ZTIzXHU4ZTJmXHU4ZTNhXHU4ZTQwXHU4ZTM5XHU4ZTM1XHU4ZTNkXHU4ZTMxXHU4ZTQ5XHU4ZTQxXHU4ZTQyXHU4ZTUxXHU4ZTUyXHU4ZTRhXHU4ZTcwXHU4ZTc2XHU4ZTdjXHU4ZTZmXHU4ZTc0XHU4ZTg1XHU4ZThmXHU4ZTk0XHU4ZTkwXHU4ZTljXHU4ZTll''@;'; + put 'put ''XHU4Yzc4XHU4YzgyXHU4YzhhXHU4Yzg1XHU4Yzk4XHU4Yzk0XHU2NTliXHU4OWQ2XHU4OWRlXHU4OWRhXHU4OWRjIl0sWyJmNjQwIiwiXHU5YmRjIiw2Ml0sWyJmNjgwIiwiXHU5YzFiIiwzMiwiXHU4OWU1XHU4OWViXHU4OWVmXHU4YTNlXHU4YjI2XHU5NzUzXHU5NmU5XHU5NmYzXHU5NmVm''@;'; + put 'put ''XHU5NzA2XHU5NzAxXHU5NzA4XHU5NzBmXHU5NzBlXHU5NzJhXHU5NzJkXHU5NzMwXHU5NzNlXHU5ZjgwXHU5ZjgzXHU5Zjg1Iiw1LCJcdTlmOGNcdTllZmVcdTlmMGJcdTlmMGRcdTk2YjlcdTk2YmNcdTk2YmRcdTk2Y2VcdTk2ZDJcdTc3YmZcdTk2ZTBcdTkyOGVcdTkyYWVcdTkyYzhcdTkz''@;'; + put 'put ''M2VcdTkzNmFcdTkzY2FcdTkzOGZcdTk0M2VcdTk0NmJcdTljN2ZcdTljODJcdTljODVcdTljODZcdTljODdcdTljODhcdTdhMjNcdTljOGJcdTljOGVcdTljOTBcdTljOTFcdTljOTJcdTljOTRcdTljOTVcdTljOWFcdTljOWJcdTljOWUiLDUsIlx1OWNhNSIsNCwiXHU5Y2FiXHU5Y2FkXHU5''@;'; + put 'put ''Y2FlXHU5Y2IwIiw3LCJcdTljYmFcdTljYmJcdTljYmNcdTljYmRcdTljYzRcdTljYzVcdTljYzZcdTljYzdcdTljY2FcdTljY2IiXSxbImY3NDAiLCJcdTljM2MiLDYyXSxbImY3ODAiLCJcdTljN2JcdTljN2RcdTljN2VcdTljODBcdTljODNcdTljODRcdTljODlcdTljOGFcdTljOGNcdTlj''@;'; + put 'put ''OGZcdTljOTNcdTljOTZcdTljOTdcdTljOThcdTljOTlcdTljOWRcdTljYWFcdTljYWNcdTljYWZcdTljYjlcdTljYmUiLDQsIlx1OWNjOFx1OWNjOVx1OWNkMVx1OWNkMlx1OWNkYVx1OWNkYlx1OWNlMFx1OWNlMVx1OWNjYyIsNCwiXHU5Y2QzXHU5Y2Q0XHU5Y2Q1XHU5Y2Q3XHU5Y2Q4XHU5''@;'; + put 'put ''Y2Q5XHU5Y2RjXHU5Y2RkXHU5Y2RmXHU5Y2UyXHU5NzdjXHU5Nzg1XHU5NzkxXHU5NzkyXHU5Nzk0XHU5N2FmXHU5N2FiXHU5N2EzXHU5N2IyXHU5N2I0XHU5YWIxXHU5YWIwXHU5YWI3XHU5ZTU4XHU5YWI2XHU5YWJhXHU5YWJjXHU5YWMxXHU5YWMwXHU5YWM1XHU5YWMyXHU5YWNiXHU5YWNj''@;'; + put 'put ''XHU5YWQxXHU5YjQ1XHU5YjQzXHU5YjQ3XHU5YjQ5XHU5YjQ4XHU5YjRkXHU5YjUxXHU5OGU4XHU5OTBkXHU5OTJlXHU5OTU1XHU5OTU0XHU5YWRmXHU5YWUxXHU5YWU2XHU5YWVmXHU5YWViXHU5YWZiXHU5YWVkXHU5YWY5XHU5YjA4XHU5YjBmXHU5YjEzXHU5YjFmXHU5YjIzXHU5ZWJkXHU5''@;'; + put 'put ''ZWJlXHU3ZTNiXHU5ZTgyXHU5ZTg3XHU5ZTg4XHU5ZThiXHU5ZTkyXHU5M2Q2XHU5ZTlkXHU5ZTlmXHU5ZWRiXHU5ZWRjXHU5ZWRkXHU5ZWUwXHU5ZWRmXHU5ZWUyXHU5ZWU5XHU5ZWU3XHU5ZWU1XHU5ZWVhXHU5ZWVmXHU5ZjIyXHU5ZjJjXHU5ZjJmXHU5ZjM5XHU5ZjM3XHU5ZjNkXHU5ZjNl''@;'; + put 'put ''XHU5ZjQ0Il0sWyJmODQwIiwiXHU5Y2UzIiw2Ml0sWyJmODgwIiwiXHU5ZDIyIiwzMl0sWyJmOTQwIiwiXHU5ZDQzIiw2Ml0sWyJmOTgwIiwiXHU5ZDgyIiwzMl0sWyJmYTQwIiwiXHU5ZGEzIiw2Ml0sWyJmYTgwIiwiXHU5ZGUyIiwzMl0sWyJmYjQwIiwiXHU5ZTAzIiwyNywiXHU5ZTI0XHU5''@;'; + put 'put ''ZTI3XHU5ZTJlXHU5ZTMwXHU5ZTM0XHU5ZTNiXHU5ZTNjXHU5ZTQwXHU5ZTRkXHU5ZTUwXHU5ZTUyXHU5ZTUzXHU5ZTU0XHU5ZTU2XHU5ZTU5XHU5ZTVkXHU5ZTVmXHU5ZTYwXHU5ZTYxXHU5ZTYyXHU5ZTY1XHU5ZTZlXHU5ZTZmXHU5ZTcyXHU5ZTc0Iiw5LCJcdTllODAiXSxbImZiODAiLCJc''@;'; + put 'put ''dTllODFcdTllODNcdTllODRcdTllODVcdTllODZcdTllODlcdTllOGFcdTllOGMiLDUsIlx1OWU5NCIsOCwiXHU5ZTllXHU5ZWEwIiw1LCJcdTllYTdcdTllYThcdTllYTlcdTllYWEiXSxbImZjNDAiLCJcdTllYWIiLDgsIlx1OWViNVx1OWViNlx1OWViN1x1OWViOVx1OWViYVx1OWViY1x1''@;'; + put 'put ''OWViZiIsNCwiXHU5ZWM1XHU5ZWM2XHU5ZWM3XHU5ZWM4XHU5ZWNhXHU5ZWNiXHU5ZWNjXHU5ZWQwXHU5ZWQyXHU5ZWQzXHU5ZWQ1XHU5ZWQ2XHU5ZWQ3XHU5ZWQ5XHU5ZWRhXHU5ZWRlXHU5ZWUxXHU5ZWUzXHU5ZWU0XHU5ZWU2XHU5ZWU4XHU5ZWViXHU5ZWVjXHU5ZWVkXHU5ZWVlXHU5ZWYw''@;'; + put 'put ''Iiw4LCJcdTllZmFcdTllZmRcdTllZmYiLDZdLFsiZmM4MCIsIlx1OWYwNiIsNCwiXHU5ZjBjXHU5ZjBmXHU5ZjExXHU5ZjEyXHU5ZjE0XHU5ZjE1XHU5ZjE2XHU5ZjE4XHU5ZjFhIiw1LCJcdTlmMjFcdTlmMjMiLDgsIlx1OWYyZFx1OWYyZVx1OWYzMFx1OWYzMSJdLFsiZmQ0MCIsIlx1OWYz''@;'; + put 'put ''MiIsNCwiXHU5ZjM4XHU5ZjNhXHU5ZjNjXHU5ZjNmIiw0LCJcdTlmNDUiLDEwLCJcdTlmNTIiLDM4XSxbImZkODAiLCJcdTlmNzkiLDUsIlx1OWY4MVx1OWY4Mlx1OWY4ZCIsMTEsIlx1OWY5Y1x1OWY5ZFx1OWY5ZVx1OWZhMSIsNCwiXHVmOTJjXHVmOTc5XHVmOTk1XHVmOWU3XHVmOWYxIl0s''@;'; + put 'put ''WyJmZTQwIiwiXHVmYTBjXHVmYTBkXHVmYTBlXHVmYTBmXHVmYTExXHVmYTEzXHVmYTE0XHVmYTE4XHVmYTFmXHVmYTIwXHVmYTIxXHVmYTIzXHVmYTI0XHVmYTI3XHVmYTI4XHVmYTI5Il1dJyl9LDc3MzQ4OlhlPT57InVzZSBzdHJpY3QiO1hlLmV4cG9ydHM9SlNPTi5wYXJzZSgnW1siMCIs''@;'; + put 'put ''IlxcdTAwMDAiLDEyN10sWyI4MTQxIiwiXHVhYzAyXHVhYzAzXHVhYzA1XHVhYzA2XHVhYzBiIiw0LCJcdWFjMThcdWFjMWVcdWFjMWZcdWFjMjFcdWFjMjJcdWFjMjNcdWFjMjUiLDYsIlx1YWMyZVx1YWMzMlx1YWMzM1x1YWMzNCJdLFsiODE2MSIsIlx1YWMzNVx1YWMzNlx1YWMzN1x1YWMz''@;'; + put 'put ''YVx1YWMzYlx1YWMzZFx1YWMzZVx1YWMzZlx1YWM0MSIsOSwiXHVhYzRjXHVhYzRlIiw1LCJcdWFjNTUiXSxbIjgxODEiLCJcdWFjNTZcdWFjNTdcdWFjNTlcdWFjNWFcdWFjNWJcdWFjNWQiLDE4LCJcdWFjNzJcdWFjNzNcdWFjNzVcdWFjNzZcdWFjNzlcdWFjN2IiLDQsIlx1YWM4Mlx1YWM4''@;'; + put 'put ''N1x1YWM4OFx1YWM4ZFx1YWM4ZVx1YWM4Zlx1YWM5MVx1YWM5Mlx1YWM5M1x1YWM5NSIsNiwiXHVhYzllXHVhY2EyIiw1LCJcdWFjYWJcdWFjYWRcdWFjYWVcdWFjYjEiLDYsIlx1YWNiYVx1YWNiZVx1YWNiZlx1YWNjMFx1YWNjMlx1YWNjM1x1YWNjNVx1YWNjNlx1YWNjN1x1YWNjOVx1YWNj''@;'; + put 'put ''YVx1YWNjYlx1YWNjZCIsNywiXHVhY2Q2XHVhY2Q4Iiw3LCJcdWFjZTJcdWFjZTNcdWFjZTVcdWFjZTZcdWFjZTlcdWFjZWJcdWFjZWRcdWFjZWVcdWFjZjJcdWFjZjRcdWFjZjciLDQsIlx1YWNmZVx1YWNmZlx1YWQwMVx1YWQwMlx1YWQwM1x1YWQwNVx1YWQwNyIsNCwiXHVhZDBlXHVhZDEw''@;'; + put 'put ''XHVhZDEyXHVhZDEzIl0sWyI4MjQxIiwiXHVhZDE0XHVhZDE1XHVhZDE2XHVhZDE3XHVhZDE5XHVhZDFhXHVhZDFiXHVhZDFkXHVhZDFlXHVhZDFmXHVhZDIxIiw3LCJcdWFkMmFcdWFkMmJcdWFkMmUiLDVdLFsiODI2MSIsIlx1YWQzNlx1YWQzN1x1YWQzOVx1YWQzYVx1YWQzYlx1YWQzZCIs''@;'; + put 'put ''NiwiXHVhZDQ2XHVhZDQ4XHVhZDRhIiw1LCJcdWFkNTFcdWFkNTJcdWFkNTNcdWFkNTVcdWFkNTZcdWFkNTciXSxbIjgyODEiLCJcdWFkNTkiLDcsIlx1YWQ2Mlx1YWQ2NCIsNywiXHVhZDZlXHVhZDZmXHVhZDcxXHVhZDcyXHVhZDc3XHVhZDc4XHVhZDc5XHVhZDdhXHVhZDdlXHVhZDgwXHVh''@;'; + put 'put ''ZDgzIiw0LCJcdWFkOGFcdWFkOGJcdWFkOGRcdWFkOGVcdWFkOGZcdWFkOTEiLDEwLCJcdWFkOWUiLDUsIlx1YWRhNSIsMTcsIlx1YWRiOCIsNywiXHVhZGMyXHVhZGMzXHVhZGM1XHVhZGM2XHVhZGM3XHVhZGM5Iiw2LCJcdWFkZDJcdWFkZDQiLDcsIlx1YWRkZFx1YWRkZVx1YWRkZlx1YWRl''@;'; + put 'put ''MVx1YWRlMlx1YWRlM1x1YWRlNSIsMThdLFsiODM0MSIsIlx1YWRmYVx1YWRmYlx1YWRmZFx1YWRmZVx1YWUwMiIsNSwiXHVhZTBhXHVhZTBjXHVhZTBlIiw1LCJcdWFlMTUiLDddLFsiODM2MSIsIlx1YWUxZCIsMTgsIlx1YWUzMlx1YWUzM1x1YWUzNVx1YWUzNlx1YWUzOVx1YWUzYlx1YWUz''@;'; + put 'put ''YyJdLFsiODM4MSIsIlx1YWUzZFx1YWUzZVx1YWUzZlx1YWU0Mlx1YWU0NFx1YWU0N1x1YWU0OFx1YWU0OVx1YWU0Ylx1YWU0Zlx1YWU1MVx1YWU1Mlx1YWU1M1x1YWU1NVx1YWU1NyIsNCwiXHVhZTVlXHVhZTYyXHVhZTYzXHVhZTY0XHVhZTY2XHVhZTY3XHVhZTZhXHVhZTZiXHVhZTZkXHVh''@;'; + put 'put ''ZTZlXHVhZTZmXHVhZTcxIiw2LCJcdWFlN2FcdWFlN2UiLDUsIlx1YWU4NiIsNSwiXHVhZThkIiw0NiwiXHVhZWJmXHVhZWMxXHVhZWMyXHVhZWMzXHVhZWM1Iiw2LCJcdWFlY2VcdWFlZDIiLDUsIlx1YWVkYVx1YWVkYlx1YWVkZCIsOF0sWyI4NDQxIiwiXHVhZWU2XHVhZWU3XHVhZWU5XHVh''@;'; + put 'put ''ZWVhXHVhZWVjXHVhZWVlIiw1LCJcdWFlZjVcdWFlZjZcdWFlZjdcdWFlZjlcdWFlZmFcdWFlZmJcdWFlZmQiLDhdLFsiODQ2MSIsIlx1YWYwNlx1YWYwOVx1YWYwYVx1YWYwYlx1YWYwY1x1YWYwZVx1YWYwZlx1YWYxMSIsMThdLFsiODQ4MSIsIlx1YWYyNCIsNywiXHVhZjJlXHVhZjJmXHVh''@;'; + put 'put ''ZjMxXHVhZjMzXHVhZjM1Iiw2LCJcdWFmM2VcdWFmNDBcdWFmNDRcdWFmNDVcdWFmNDZcdWFmNDdcdWFmNGEiLDUsIlx1YWY1MSIsMTAsIlx1YWY1ZSIsNSwiXHVhZjY2IiwxOCwiXHVhZjdhIiw1LCJcdWFmODFcdWFmODJcdWFmODNcdWFmODVcdWFmODZcdWFmODdcdWFmODkiLDYsIlx1YWY5''@;'; + put 'put ''Mlx1YWY5M1x1YWY5NFx1YWY5NiIsNSwiXHVhZjlkIiwyNiwiXHVhZmJhXHVhZmJiXHVhZmJkXHVhZmJlIl0sWyI4NTQxIiwiXHVhZmJmXHVhZmMxIiw1LCJcdWFmY2FcdWFmY2NcdWFmY2YiLDQsIlx1YWZkNSIsNiwiXHVhZmRkIiw0XSxbIjg1NjEiLCJcdWFmZTIiLDUsIlx1YWZlYSIsNSwi''@;'; + put 'put ''XHVhZmYyXHVhZmYzXHVhZmY1XHVhZmY2XHVhZmY3XHVhZmY5Iiw2LCJcdWIwMDJcdWIwMDMiXSxbIjg1ODEiLCJcdWIwMDUiLDYsIlx1YjAwZFx1YjAwZVx1YjAwZlx1YjAxMVx1YjAxMlx1YjAxM1x1YjAxNSIsNiwiXHViMDFlIiw5LCJcdWIwMjkiLDI2LCJcdWIwNDZcdWIwNDdcdWIwNDlc''@;'; + put 'put ''dWIwNGJcdWIwNGRcdWIwNGZcdWIwNTBcdWIwNTFcdWIwNTJcdWIwNTZcdWIwNThcdWIwNWFcdWIwNWJcdWIwNWNcdWIwNWUiLDI5LCJcdWIwN2VcdWIwN2ZcdWIwODFcdWIwODJcdWIwODNcdWIwODUiLDYsIlx1YjA4ZVx1YjA5MFx1YjA5MiIsNSwiXHViMDliXHViMDlkXHViMDllXHViMGEz''@;'; + put 'put ''XHViMGE0Il0sWyI4NjQxIiwiXHViMGE1XHViMGE2XHViMGE3XHViMGFhXHViMGIwXHViMGIyXHViMGI2XHViMGI3XHViMGI5XHViMGJhXHViMGJiXHViMGJkIiw2LCJcdWIwYzZcdWIwY2EiLDUsIlx1YjBkMiJdLFsiODY2MSIsIlx1YjBkM1x1YjBkNVx1YjBkNlx1YjBkN1x1YjBkOSIsNiwi''@;'; + put 'put ''XHViMGUxXHViMGUyXHViMGUzXHViMGU0XHViMGU2IiwxMF0sWyI4NjgxIiwiXHViMGYxIiwyMiwiXHViMTBhXHViMTBkXHViMTBlXHViMTBmXHViMTExXHViMTE0XHViMTE1XHViMTE2XHViMTE3XHViMTFhXHViMTFlIiw0LCJcdWIxMjZcdWIxMjdcdWIxMjlcdWIxMmFcdWIxMmJcdWIxMmQi''@;'; + put 'put ''LDYsIlx1YjEzNlx1YjEzYSIsNSwiXHViMTQyXHViMTQzXHViMTQ1XHViMTQ2XHViMTQ3XHViMTQ5Iiw2LCJcdWIxNTJcdWIxNTNcdWIxNTZcdWIxNTdcdWIxNTlcdWIxNWFcdWIxNWJcdWIxNWRcdWIxNWVcdWIxNWZcdWIxNjEiLDIyLCJcdWIxN2FcdWIxN2JcdWIxN2RcdWIxN2VcdWIxN2Zc''@;'; + put 'put ''dWIxODFcdWIxODMiLDQsIlx1YjE4YVx1YjE4Y1x1YjE4ZVx1YjE4Zlx1YjE5MFx1YjE5MVx1YjE5NVx1YjE5Nlx1YjE5N1x1YjE5OVx1YjE5YVx1YjE5Ylx1YjE5ZCJdLFsiODc0MSIsIlx1YjE5ZSIsOSwiXHViMWE5IiwxNV0sWyI4NzYxIiwiXHViMWI5IiwxOCwiXHViMWNkXHViMWNlXHVi''@;'; + put 'put ''MWNmXHViMWQxXHViMWQyXHViMWQzXHViMWQ1Il0sWyI4NzgxIiwiXHViMWQ2Iiw1LCJcdWIxZGVcdWIxZTAiLDcsIlx1YjFlYVx1YjFlYlx1YjFlZFx1YjFlZVx1YjFlZlx1YjFmMSIsNywiXHViMWZhXHViMWZjXHViMWZlIiw1LCJcdWIyMDZcdWIyMDdcdWIyMDlcdWIyMGFcdWIyMGQiLDYs''@;'; + put 'put ''Ilx1YjIxNlx1YjIxOFx1YjIxYSIsNSwiXHViMjIxIiwxOCwiXHViMjM1Iiw2LCJcdWIyM2QiLDI2LCJcdWIyNTlcdWIyNWFcdWIyNWJcdWIyNWRcdWIyNWVcdWIyNWZcdWIyNjEiLDYsIlx1YjI2YSIsNF0sWyI4ODQxIiwiXHViMjZmIiw0LCJcdWIyNzYiLDUsIlx1YjI3ZCIsNiwiXHViMjg2''@;'; + put 'put ''XHViMjg3XHViMjg4XHViMjhhIiw0XSxbIjg4NjEiLCJcdWIyOGZcdWIyOTJcdWIyOTNcdWIyOTVcdWIyOTZcdWIyOTdcdWIyOWIiLDQsIlx1YjJhMlx1YjJhNFx1YjJhN1x1YjJhOFx1YjJhOVx1YjJhYlx1YjJhZFx1YjJhZVx1YjJhZlx1YjJiMVx1YjJiMlx1YjJiM1x1YjJiNVx1YjJiNlx1''@;'; + put 'put ''YjJiNyJdLFsiODg4MSIsIlx1YjJiOCIsMTUsIlx1YjJjYVx1YjJjYlx1YjJjZFx1YjJjZVx1YjJjZlx1YjJkMVx1YjJkMyIsNCwiXHViMmRhXHViMmRjXHViMmRlXHViMmRmXHViMmUwXHViMmUxXHViMmUzXHViMmU3XHViMmU5XHViMmVhXHViMmYwXHViMmYxXHViMmYyXHViMmY2XHViMmZj''@;'; + put 'put ''XHViMmZkXHViMmZlXHViMzAyXHViMzAzXHViMzA1XHViMzA2XHViMzA3XHViMzA5Iiw2LCJcdWIzMTJcdWIzMTYiLDUsIlx1YjMxZCIsNTQsIlx1YjM1N1x1YjM1OVx1YjM1YVx1YjM1ZFx1YjM2MFx1YjM2MVx1YjM2Mlx1YjM2MyJdLFsiODk0MSIsIlx1YjM2Nlx1YjM2OFx1YjM2YVx1YjM2''@;'; + put 'put ''Y1x1YjM2ZFx1YjM2Zlx1YjM3Mlx1YjM3M1x1YjM3NVx1YjM3Nlx1YjM3N1x1YjM3OSIsNiwiXHViMzgyXHViMzg2Iiw1LCJcdWIzOGQiXSxbIjg5NjEiLCJcdWIzOGVcdWIzOGZcdWIzOTFcdWIzOTJcdWIzOTNcdWIzOTUiLDEwLCJcdWIzYTIiLDUsIlx1YjNhOVx1YjNhYVx1YjNhYlx1YjNh''@;'; + put 'put ''ZCJdLFsiODk4MSIsIlx1YjNhZSIsMjEsIlx1YjNjNlx1YjNjN1x1YjNjOVx1YjNjYVx1YjNjZFx1YjNjZlx1YjNkMVx1YjNkMlx1YjNkM1x1YjNkNlx1YjNkOFx1YjNkYVx1YjNkY1x1YjNkZVx1YjNkZlx1YjNlMVx1YjNlMlx1YjNlM1x1YjNlNVx1YjNlNlx1YjNlN1x1YjNlOSIsMTgsIlx1''@;'; + put 'put ''YjNmZCIsMTgsIlx1YjQxMSIsNiwiXHViNDE5XHViNDFhXHViNDFiXHViNDFkXHViNDFlXHViNDFmXHViNDIxIiw2LCJcdWI0MmFcdWI0MmMiLDcsIlx1YjQzNSIsMTVdLFsiOGE0MSIsIlx1YjQ0NSIsMTAsIlx1YjQ1Mlx1YjQ1M1x1YjQ1NVx1YjQ1Nlx1YjQ1N1x1YjQ1OSIsNiwiXHViNDYy''@;'; + put 'put ''XHViNDY0XHViNDY2Il0sWyI4YTYxIiwiXHViNDY3Iiw0LCJcdWI0NmQiLDE4LCJcdWI0ODFcdWI0ODIiXSxbIjhhODEiLCJcdWI0ODMiLDQsIlx1YjQ4OSIsMTksIlx1YjQ5ZSIsNSwiXHViNGE1XHViNGE2XHViNGE3XHViNGE5XHViNGFhXHViNGFiXHViNGFkIiw3LCJcdWI0YjZcdWI0Yjhc''@;'; + put 'put ''dWI0YmEiLDUsIlx1YjRjMVx1YjRjMlx1YjRjM1x1YjRjNVx1YjRjNlx1YjRjN1x1YjRjOSIsNiwiXHViNGQxXHViNGQyXHViNGQzXHViNGQ0XHViNGQ2Iiw1LCJcdWI0ZGVcdWI0ZGZcdWI0ZTFcdWI0ZTJcdWI0ZTVcdWI0ZTciLDQsIlx1YjRlZVx1YjRmMFx1YjRmMiIsNSwiXHViNGY5Iiwy''@;'; + put 'put ''NiwiXHViNTE2XHViNTE3XHViNTE5XHViNTFhXHViNTFkIl0sWyI4YjQxIiwiXHViNTFlIiw1LCJcdWI1MjZcdWI1MmIiLDQsIlx1YjUzMlx1YjUzM1x1YjUzNVx1YjUzNlx1YjUzN1x1YjUzOSIsNiwiXHViNTQyXHViNTQ2Il0sWyI4YjYxIiwiXHViNTQ3XHViNTQ4XHViNTQ5XHViNTRhXHVi''@;'; + put 'put ''NTRlXHViNTRmXHViNTUxXHViNTUyXHViNTUzXHViNTU1Iiw2LCJcdWI1NWVcdWI1NjIiLDhdLFsiOGI4MSIsIlx1YjU2YiIsNTIsIlx1YjVhMlx1YjVhM1x1YjVhNVx1YjVhNlx1YjVhN1x1YjVhOVx1YjVhY1x1YjVhZFx1YjVhZVx1YjVhZlx1YjViMlx1YjViNiIsNCwiXHViNWJlXHViNWJm''@;'; + put 'put ''XHViNWMxXHViNWMyXHViNWMzXHViNWM1Iiw2LCJcdWI1Y2VcdWI1ZDIiLDUsIlx1YjVkOSIsMTgsIlx1YjVlZCIsMThdLFsiOGM0MSIsIlx1YjYwMCIsMTUsIlx1YjYxMlx1YjYxM1x1YjYxNVx1YjYxNlx1YjYxN1x1YjYxOSIsNF0sWyI4YzYxIiwiXHViNjFlIiw2LCJcdWI2MjYiLDUsIlx1''@;'; + put 'put ''YjYyZCIsNiwiXHViNjM1Iiw1XSxbIjhjODEiLCJcdWI2M2IiLDEyLCJcdWI2NDkiLDI2LCJcdWI2NjVcdWI2NjZcdWI2NjdcdWI2NjkiLDUwLCJcdWI2OWVcdWI2OWZcdWI2YTFcdWI2YTJcdWI2YTNcdWI2YTUiLDUsIlx1YjZhZFx1YjZhZVx1YjZhZlx1YjZiMFx1YjZiMiIsMTZdLFsiOGQ0''@;'; + put 'put ''MSIsIlx1YjZjMyIsMTYsIlx1YjZkNSIsOF0sWyI4ZDYxIiwiXHViNmRlIiwxNywiXHViNmYxXHViNmYyXHViNmYzXHViNmY1XHViNmY2XHViNmY3XHViNmY5XHViNmZhIl0sWyI4ZDgxIiwiXHViNmZiIiw0LCJcdWI3MDJcdWI3MDNcdWI3MDRcdWI3MDYiLDMzLCJcdWI3MmFcdWI3MmJcdWI3''@;'; + put 'put ''MmRcdWI3MmVcdWI3MzEiLDYsIlx1YjczYVx1YjczYyIsNywiXHViNzQ1XHViNzQ2XHViNzQ3XHViNzQ5XHViNzRhXHViNzRiXHViNzRkIiw2LCJcdWI3NTYiLDksIlx1Yjc2MVx1Yjc2Mlx1Yjc2M1x1Yjc2NVx1Yjc2Nlx1Yjc2N1x1Yjc2OSIsNiwiXHViNzcyXHViNzc0XHViNzc2Iiw1LCJc''@;'; + put 'put ''dWI3N2VcdWI3N2ZcdWI3ODFcdWI3ODJcdWI3ODNcdWI3ODUiLDYsIlx1Yjc4ZVx1Yjc5M1x1Yjc5NFx1Yjc5NVx1Yjc5YVx1Yjc5Ylx1Yjc5ZFx1Yjc5ZSJdLFsiOGU0MSIsIlx1Yjc5Zlx1YjdhMSIsNiwiXHViN2FhXHViN2FlIiw1LCJcdWI3YjZcdWI3YjdcdWI3YjkiLDhdLFsiOGU2MSIs''@;'; + put 'put ''Ilx1YjdjMiIsNCwiXHViN2M4XHViN2NhIiwxOV0sWyI4ZTgxIiwiXHViN2RlIiwxMywiXHViN2VlXHViN2VmXHViN2YxXHViN2YyXHViN2YzXHViN2Y1Iiw2LCJcdWI3ZmVcdWI4MDIiLDQsIlx1YjgwYVx1YjgwYlx1YjgwZFx1YjgwZVx1YjgwZlx1YjgxMSIsNiwiXHViODFhXHViODFjXHVi''@;'; + put 'put ''ODFlIiw1LCJcdWI4MjZcdWI4MjdcdWI4MjlcdWI4MmFcdWI4MmJcdWI4MmQiLDYsIlx1YjgzNlx1YjgzYSIsNSwiXHViODQxXHViODQyXHViODQzXHViODQ1IiwxMSwiXHViODUyXHViODU0Iiw3LCJcdWI4NWVcdWI4NWZcdWI4NjFcdWI4NjJcdWI4NjNcdWI4NjUiLDYsIlx1Yjg2ZVx1Yjg3''@;'; + put 'put ''MFx1Yjg3MiIsNSwiXHViODc5XHViODdhXHViODdiXHViODdkIiw3XSxbIjhmNDEiLCJcdWI4ODUiLDcsIlx1Yjg4ZSIsMTddLFsiOGY2MSIsIlx1YjhhMCIsNywiXHViOGE5Iiw2LCJcdWI4YjFcdWI4YjJcdWI4YjNcdWI4YjVcdWI4YjZcdWI4YjdcdWI4YjkiLDRdLFsiOGY4MSIsIlx1Yjhi''@;'; + put 'put ''ZVx1YjhiZlx1YjhjMlx1YjhjNFx1YjhjNiIsNSwiXHViOGNkXHViOGNlXHViOGNmXHViOGQxXHViOGQyXHViOGQzXHViOGQ1Iiw3LCJcdWI4ZGVcdWI4ZTBcdWI4ZTIiLDUsIlx1YjhlYVx1YjhlYlx1YjhlZFx1YjhlZVx1YjhlZlx1YjhmMSIsNiwiXHViOGZhXHViOGZjXHViOGZlIiw1LCJc''@;'; + put 'put ''dWI5MDUiLDE4LCJcdWI5MTkiLDYsIlx1YjkyMSIsMjYsIlx1YjkzZVx1YjkzZlx1Yjk0MVx1Yjk0Mlx1Yjk0M1x1Yjk0NSIsNiwiXHViOTRkXHViOTRlXHViOTUwXHViOTUyIiw1XSxbIjkwNDEiLCJcdWI5NWFcdWI5NWJcdWI5NWRcdWI5NWVcdWI5NWZcdWI5NjEiLDYsIlx1Yjk2YVx1Yjk2''@;'; + put 'put ''Y1x1Yjk2ZSIsNSwiXHViOTc2XHViOTc3XHViOTc5XHViOTdhXHViOTdiXHViOTdkIl0sWyI5MDYxIiwiXHViOTdlIiw1LCJcdWI5ODZcdWI5ODhcdWI5OGJcdWI5OGNcdWI5OGYiLDE1XSxbIjkwODEiLCJcdWI5OWYiLDEyLCJcdWI5YWVcdWI5YWZcdWI5YjFcdWI5YjJcdWI5YjNcdWI5YjUi''@;'; + put 'put ''LDYsIlx1YjliZVx1YjljMFx1YjljMiIsNSwiXHViOWNhXHViOWNiXHViOWNkXHViOWQzIiw0LCJcdWI5ZGFcdWI5ZGNcdWI5ZGZcdWI5ZTBcdWI5ZTJcdWI5ZTZcdWI5ZTdcdWI5ZTlcdWI5ZWFcdWI5ZWJcdWI5ZWQiLDYsIlx1YjlmNlx1YjlmYiIsNCwiXHViYTAyIiw1LCJcdWJhMDkiLDEx''@;'; + put 'put ''LCJcdWJhMTYiLDMzLCJcdWJhM2FcdWJhM2JcdWJhM2RcdWJhM2VcdWJhM2ZcdWJhNDFcdWJhNDNcdWJhNDRcdWJhNDVcdWJhNDYiXSxbIjkxNDEiLCJcdWJhNDdcdWJhNGFcdWJhNGNcdWJhNGZcdWJhNTBcdWJhNTFcdWJhNTJcdWJhNTZcdWJhNTdcdWJhNTlcdWJhNWFcdWJhNWJcdWJhNWQi''@;'; + put 'put ''LDYsIlx1YmE2Nlx1YmE2YSIsNV0sWyI5MTYxIiwiXHViYTcyXHViYTczXHViYTc1XHViYTc2XHViYTc3XHViYTc5Iiw5LCJcdWJhODZcdWJhODhcdWJhODlcdWJhOGFcdWJhOGJcdWJhOGQiLDVdLFsiOTE4MSIsIlx1YmE5MyIsMjAsIlx1YmFhYVx1YmFhZFx1YmFhZVx1YmFhZlx1YmFiMVx1''@;'; + put 'put ''YmFiMyIsNCwiXHViYWJhXHViYWJjXHViYWJlIiw1LCJcdWJhYzVcdWJhYzZcdWJhYzdcdWJhYzkiLDE0LCJcdWJhZGEiLDMzLCJcdWJhZmRcdWJhZmVcdWJhZmZcdWJiMDFcdWJiMDJcdWJiMDNcdWJiMDUiLDcsIlx1YmIwZVx1YmIxMFx1YmIxMiIsNSwiXHViYjE5XHViYjFhXHViYjFiXHVi''@;'; + put 'put ''YjFkXHViYjFlXHViYjFmXHViYjIxIiw2XSxbIjkyNDEiLCJcdWJiMjhcdWJiMmFcdWJiMmMiLDcsIlx1YmIzN1x1YmIzOVx1YmIzYVx1YmIzZiIsNCwiXHViYjQ2XHViYjQ4XHViYjRhXHViYjRiXHViYjRjXHViYjRlXHViYjUxXHViYjUyIl0sWyI5MjYxIiwiXHViYjUzXHViYjU1XHViYjU2''@;'; + put 'put ''XHViYjU3XHViYjU5Iiw3LCJcdWJiNjJcdWJiNjQiLDcsIlx1YmI2ZCIsNF0sWyI5MjgxIiwiXHViYjcyIiwyMSwiXHViYjg5XHViYjhhXHViYjhiXHViYjhkXHViYjhlXHViYjhmXHViYjkxIiwxOCwiXHViYmE1XHViYmE2XHViYmE3XHViYmE5XHViYmFhXHViYmFiXHViYmFkIiw2LCJcdWJi''@;'; + put 'put ''YjVcdWJiYjZcdWJiYjgiLDcsIlx1YmJjMVx1YmJjMlx1YmJjM1x1YmJjNVx1YmJjNlx1YmJjN1x1YmJjOSIsNiwiXHViYmQxXHViYmQyXHViYmQ0IiwzNSwiXHViYmZhXHViYmZiXHViYmZkXHViYmZlXHViYzAxIl0sWyI5MzQxIiwiXHViYzAzIiw0LCJcdWJjMGFcdWJjMGVcdWJjMTBcdWJj''@;'; + put 'put ''MTJcdWJjMTNcdWJjMTlcdWJjMWFcdWJjMjBcdWJjMjFcdWJjMjJcdWJjMjNcdWJjMjZcdWJjMjhcdWJjMmFcdWJjMmJcdWJjMmNcdWJjMmVcdWJjMmZcdWJjMzJcdWJjMzNcdWJjMzUiXSxbIjkzNjEiLCJcdWJjMzZcdWJjMzdcdWJjMzkiLDYsIlx1YmM0Mlx1YmM0Nlx1YmM0N1x1YmM0OFx1''@;'; + put 'put ''YmM0YVx1YmM0Ylx1YmM0ZVx1YmM0Zlx1YmM1MSIsOF0sWyI5MzgxIiwiXHViYzVhXHViYzViXHViYzVjXHViYzVlIiwzNywiXHViYzg2XHViYzg3XHViYzg5XHViYzhhXHViYzhkXHViYzhmIiw0LCJcdWJjOTZcdWJjOThcdWJjOWIiLDQsIlx1YmNhMlx1YmNhM1x1YmNhNVx1YmNhNlx1YmNh''@;'; + put 'put ''OSIsNiwiXHViY2IyXHViY2I2Iiw1LCJcdWJjYmVcdWJjYmZcdWJjYzFcdWJjYzJcdWJjYzNcdWJjYzUiLDcsIlx1YmNjZVx1YmNkMlx1YmNkM1x1YmNkNFx1YmNkNlx1YmNkN1x1YmNkOVx1YmNkYVx1YmNkYlx1YmNkZCIsMjIsIlx1YmNmN1x1YmNmOVx1YmNmYVx1YmNmYlx1YmNmZCJdLFsi''@;'; + put 'put ''OTQ0MSIsIlx1YmNmZSIsNSwiXHViZDA2XHViZDA4XHViZDBhIiw1LCJcdWJkMTFcdWJkMTJcdWJkMTNcdWJkMTUiLDhdLFsiOTQ2MSIsIlx1YmQxZSIsNSwiXHViZDI1Iiw2LCJcdWJkMmQiLDEyXSxbIjk0ODEiLCJcdWJkM2EiLDUsIlx1YmQ0MSIsNiwiXHViZDRhXHViZDRiXHViZDRkXHVi''@;'; + put 'put ''ZDRlXHViZDRmXHViZDUxIiw2LCJcdWJkNWEiLDksIlx1YmQ2NVx1YmQ2Nlx1YmQ2N1x1YmQ2OSIsMjIsIlx1YmQ4Mlx1YmQ4M1x1YmQ4NVx1YmQ4Nlx1YmQ4YiIsNCwiXHViZDkyXHViZDk0XHViZDk2XHViZDk3XHViZDk4XHViZDliXHViZDlkIiw2LCJcdWJkYTUiLDEwLCJcdWJkYjEiLDYs''@;'; + put 'put ''Ilx1YmRiOSIsMjRdLFsiOTU0MSIsIlx1YmRkMlx1YmRkM1x1YmRkNlx1YmRkN1x1YmRkOVx1YmRkYVx1YmRkYlx1YmRkZCIsMTEsIlx1YmRlYSIsNSwiXHViZGYxIl0sWyI5NTYxIiwiXHViZGYyXHViZGYzXHViZGY1XHViZGY2XHViZGY3XHViZGY5Iiw2LCJcdWJlMDFcdWJlMDJcdWJlMDRc''@;'; + put 'put ''dWJlMDYiLDUsIlx1YmUwZVx1YmUwZlx1YmUxMVx1YmUxMlx1YmUxMyJdLFsiOTU4MSIsIlx1YmUxNSIsNiwiXHViZTFlXHViZTIwIiwzNSwiXHViZTQ2XHViZTQ3XHViZTQ5XHViZTRhXHViZTRiXHViZTRkXHViZTRmIiw0LCJcdWJlNTZcdWJlNThcdWJlNWNcdWJlNWRcdWJlNWVcdWJlNWZc''@;'; + put 'put ''dWJlNjJcdWJlNjNcdWJlNjVcdWJlNjZcdWJlNjdcdWJlNjlcdWJlNmIiLDQsIlx1YmU3Mlx1YmU3NiIsNCwiXHViZTdlXHViZTdmXHViZTgxXHViZTgyXHViZTgzXHViZTg1Iiw2LCJcdWJlOGVcdWJlOTIiLDUsIlx1YmU5YSIsMTMsIlx1YmVhOSIsMTRdLFsiOTY0MSIsIlx1YmViOCIsMjMs''@;'; + put 'put ''Ilx1YmVkMlx1YmVkMyJdLFsiOTY2MSIsIlx1YmVkNVx1YmVkNlx1YmVkOSIsNiwiXHViZWUxXHViZWUyXHViZWU2Iiw1LCJcdWJlZWQiLDhdLFsiOTY4MSIsIlx1YmVmNiIsMTAsIlx1YmYwMiIsNSwiXHViZjBhIiwxMywiXHViZjFhXHViZjFlIiwzMywiXHViZjQyXHViZjQzXHViZjQ1XHVi''@;'; + put 'put ''ZjQ2XHViZjQ3XHViZjQ5Iiw2LCJcdWJmNTJcdWJmNTNcdWJmNTRcdWJmNTYiLDQ0XSxbIjk3NDEiLCJcdWJmODMiLDE2LCJcdWJmOTUiLDhdLFsiOTc2MSIsIlx1YmY5ZSIsMTcsIlx1YmZiMSIsN10sWyI5NzgxIiwiXHViZmI5IiwxMSwiXHViZmM2Iiw1LCJcdWJmY2VcdWJmY2ZcdWJmZDFc''@;'; + put 'put ''dWJmZDJcdWJmZDNcdWJmZDUiLDYsIlx1YmZkZFx1YmZkZVx1YmZlMFx1YmZlMiIsODksIlx1YzAzZFx1YzAzZVx1YzAzZiJdLFsiOTg0MSIsIlx1YzA0MCIsMTYsIlx1YzA1MiIsNSwiXHVjMDU5XHVjMDVhXHVjMDViIl0sWyI5ODYxIiwiXHVjMDVkXHVjMDVlXHVjMDVmXHVjMDYxIiw2LCJc''@;'; + put 'put ''dWMwNmEiLDE1XSxbIjk4ODEiLCJcdWMwN2EiLDIxLCJcdWMwOTJcdWMwOTNcdWMwOTVcdWMwOTZcdWMwOTdcdWMwOTkiLDYsIlx1YzBhMlx1YzBhNFx1YzBhNiIsNSwiXHVjMGFlXHVjMGIxXHVjMGIyXHVjMGI3Iiw0LCJcdWMwYmVcdWMwYzJcdWMwYzNcdWMwYzRcdWMwYzZcdWMwYzdcdWMw''@;'; + put 'put ''Y2FcdWMwY2JcdWMwY2RcdWMwY2VcdWMwY2ZcdWMwZDEiLDYsIlx1YzBkYVx1YzBkZSIsNSwiXHVjMGU2XHVjMGU3XHVjMGU5XHVjMGVhXHVjMGViXHVjMGVkIiw2LCJcdWMwZjZcdWMwZjhcdWMwZmEiLDUsIlx1YzEwMVx1YzEwMlx1YzEwM1x1YzEwNVx1YzEwNlx1YzEwN1x1YzEwOSIsNiwi''@;'; + put 'put ''XHVjMTExXHVjMTEyXHVjMTEzXHVjMTE0XHVjMTE2Iiw1LCJcdWMxMjFcdWMxMjJcdWMxMjVcdWMxMjhcdWMxMjlcdWMxMmFcdWMxMmJcdWMxMmUiXSxbIjk5NDEiLCJcdWMxMzJcdWMxMzNcdWMxMzRcdWMxMzVcdWMxMzdcdWMxM2FcdWMxM2JcdWMxM2RcdWMxM2VcdWMxM2ZcdWMxNDEiLDYs''@;'; + put 'put ''Ilx1YzE0YVx1YzE0ZSIsNSwiXHVjMTU2XHVjMTU3Il0sWyI5OTYxIiwiXHVjMTU5XHVjMTVhXHVjMTViXHVjMTVkIiw2LCJcdWMxNjZcdWMxNmEiLDUsIlx1YzE3MVx1YzE3Mlx1YzE3M1x1YzE3NVx1YzE3Nlx1YzE3N1x1YzE3OVx1YzE3YVx1YzE3YiJdLFsiOTk4MSIsIlx1YzE3YyIsOCwi''@;'; + put 'put ''XHVjMTg2Iiw1LCJcdWMxOGZcdWMxOTFcdWMxOTJcdWMxOTNcdWMxOTVcdWMxOTciLDQsIlx1YzE5ZVx1YzFhMFx1YzFhMlx1YzFhM1x1YzFhNFx1YzFhNlx1YzFhN1x1YzFhYVx1YzFhYlx1YzFhZFx1YzFhZVx1YzFhZlx1YzFiMSIsMTEsIlx1YzFiZSIsNSwiXHVjMWM1XHVjMWM2XHVjMWM3''@;'; + put 'put ''XHVjMWM5XHVjMWNhXHVjMWNiXHVjMWNkIiw2LCJcdWMxZDVcdWMxZDZcdWMxZDkiLDYsIlx1YzFlMVx1YzFlMlx1YzFlM1x1YzFlNVx1YzFlNlx1YzFlN1x1YzFlOSIsNiwiXHVjMWYyXHVjMWY0Iiw3LCJcdWMxZmVcdWMxZmZcdWMyMDFcdWMyMDJcdWMyMDNcdWMyMDUiLDYsIlx1YzIwZVx1''@;'; + put 'put ''YzIxMFx1YzIxMiIsNSwiXHVjMjFhXHVjMjFiXHVjMjFkXHVjMjFlXHVjMjIxXHVjMjIyXHVjMjIzIl0sWyI5YTQxIiwiXHVjMjI0XHVjMjI1XHVjMjI2XHVjMjI3XHVjMjJhXHVjMjJjXHVjMjJlXHVjMjMwXHVjMjMzXHVjMjM1IiwxNl0sWyI5YTYxIiwiXHVjMjQ2XHVjMjQ3XHVjMjQ5Iiw2''@;'; + put 'put ''LCJcdWMyNTJcdWMyNTNcdWMyNTVcdWMyNTZcdWMyNTdcdWMyNTkiLDYsIlx1YzI2MVx1YzI2Mlx1YzI2M1x1YzI2NFx1YzI2NiJdLFsiOWE4MSIsIlx1YzI2NyIsNCwiXHVjMjZlXHVjMjZmXHVjMjcxXHVjMjcyXHVjMjczXHVjMjc1Iiw2LCJcdWMyN2VcdWMyODBcdWMyODIiLDUsIlx1YzI4''@;'; + put 'put ''YSIsNSwiXHVjMjkxIiw2LCJcdWMyOTlcdWMyOWFcdWMyOWNcdWMyOWUiLDUsIlx1YzJhNlx1YzJhN1x1YzJhOVx1YzJhYVx1YzJhYlx1YzJhZSIsNSwiXHVjMmI2XHVjMmI4XHVjMmJhIiwzMywiXHVjMmRlXHVjMmRmXHVjMmUxXHVjMmUyXHVjMmU1Iiw1LCJcdWMyZWVcdWMyZjBcdWMyZjJc''@;'; + put 'put ''dWMyZjNcdWMyZjRcdWMyZjVcdWMyZjdcdWMyZmFcdWMyZmRcdWMyZmVcdWMyZmZcdWMzMDEiLDYsIlx1YzMwYVx1YzMwYlx1YzMwZVx1YzMwZiJdLFsiOWI0MSIsIlx1YzMxMFx1YzMxMVx1YzMxMlx1YzMxNlx1YzMxN1x1YzMxOVx1YzMxYVx1YzMxYlx1YzMxZCIsNiwiXHVjMzI2XHVjMzI3''@;'; + put 'put ''XHVjMzJhIiw4XSxbIjliNjEiLCJcdWMzMzMiLDE3LCJcdWMzNDYiLDddLFsiOWI4MSIsIlx1YzM0ZSIsMjUsIlx1YzM2YVx1YzM2Ylx1YzM2ZFx1YzM2ZVx1YzM2Zlx1YzM3MVx1YzM3MyIsNCwiXHVjMzdhXHVjMzdiXHVjMzdlIiw1LCJcdWMzODVcdWMzODZcdWMzODdcdWMzODlcdWMzOGFc''@;'; + put 'put ''dWMzOGJcdWMzOGQiLDUwLCJcdWMzYzEiLDIyLCJcdWMzZGEiXSxbIjljNDEiLCJcdWMzZGJcdWMzZGRcdWMzZGVcdWMzZTFcdWMzZTMiLDQsIlx1YzNlYVx1YzNlYlx1YzNlY1x1YzNlZSIsNSwiXHVjM2Y2XHVjM2Y3XHVjM2Y5Iiw1XSxbIjljNjEiLCJcdWMzZmYiLDgsIlx1YzQwOSIsNiwi''@;'; + put 'put ''XHVjNDExIiw5XSxbIjljODEiLCJcdWM0MWIiLDgsIlx1YzQyNSIsNiwiXHVjNDJkXHVjNDJlXHVjNDJmXHVjNDMxXHVjNDMyXHVjNDMzXHVjNDM1Iiw2LCJcdWM0M2UiLDksIlx1YzQ0OSIsMjYsIlx1YzQ2Nlx1YzQ2N1x1YzQ2OVx1YzQ2YVx1YzQ2Ylx1YzQ2ZCIsNiwiXHVjNDc2XHVjNDc3''@;'; + put 'put ''XHVjNDc4XHVjNDdhIiw1LCJcdWM0ODEiLDE4LCJcdWM0OTUiLDYsIlx1YzQ5ZCIsMTJdLFsiOWQ0MSIsIlx1YzRhYSIsMTMsIlx1YzRiOVx1YzRiYVx1YzRiYlx1YzRiZCIsOF0sWyI5ZDYxIiwiXHVjNGM2IiwyNV0sWyI5ZDgxIiwiXHVjNGUwIiw4LCJcdWM0ZWEiLDUsIlx1YzRmMlx1YzRm''@;'; + put 'put ''M1x1YzRmNVx1YzRmNlx1YzRmN1x1YzRmOVx1YzRmYlx1YzRmY1x1YzRmZFx1YzRmZVx1YzUwMiIsOSwiXHVjNTBkXHVjNTBlXHVjNTBmXHVjNTExXHVjNTEyXHVjNTEzXHVjNTE1Iiw2LCJcdWM1MWQiLDEwLCJcdWM1MmFcdWM1MmJcdWM1MmRcdWM1MmVcdWM1MmZcdWM1MzEiLDYsIlx1YzUz''@;'; + put 'put ''YVx1YzUzY1x1YzUzZSIsNSwiXHVjNTQ2XHVjNTQ3XHVjNTRiXHVjNTRmXHVjNTUwXHVjNTUxXHVjNTUyXHVjNTU2XHVjNTVhXHVjNTViXHVjNTVjXHVjNTVmXHVjNTYyXHVjNTYzXHVjNTY1XHVjNTY2XHVjNTY3XHVjNTY5Iiw2LCJcdWM1NzJcdWM1NzYiLDUsIlx1YzU3ZVx1YzU3Zlx1YzU4''@;'; + put 'put ''MVx1YzU4Mlx1YzU4M1x1YzU4NVx1YzU4Nlx1YzU4OFx1YzU4OVx1YzU4YVx1YzU4Ylx1YzU4ZVx1YzU5MFx1YzU5Mlx1YzU5M1x1YzU5NCJdLFsiOWU0MSIsIlx1YzU5Nlx1YzU5OVx1YzU5YVx1YzU5Ylx1YzU5ZFx1YzU5ZVx1YzU5Zlx1YzVhMSIsNywiXHVjNWFhIiw5LCJcdWM1YjYiXSxb''@;'; + put 'put ''IjllNjEiLCJcdWM1YjdcdWM1YmFcdWM1YmYiLDQsIlx1YzVjYlx1YzVjZFx1YzVjZlx1YzVkMlx1YzVkM1x1YzVkNVx1YzVkNlx1YzVkN1x1YzVkOSIsNiwiXHVjNWUyXHVjNWU0XHVjNWU2XHVjNWU3Il0sWyI5ZTgxIiwiXHVjNWU4XHVjNWU5XHVjNWVhXHVjNWViXHVjNWVmXHVjNWYxXHVj''@;'; + put 'put ''NWYyXHVjNWYzXHVjNWY1XHVjNWY4XHVjNWY5XHVjNWZhXHVjNWZiXHVjNjAyXHVjNjAzXHVjNjA0XHVjNjA5XHVjNjBhXHVjNjBiXHVjNjBkXHVjNjBlXHVjNjBmXHVjNjExIiw2LCJcdWM2MWFcdWM2MWQiLDYsIlx1YzYyNlx1YzYyN1x1YzYyOVx1YzYyYVx1YzYyYlx1YzYyZlx1YzYzMVx1''@;'; + put 'put ''YzYzMlx1YzYzNlx1YzYzOFx1YzYzYVx1YzYzY1x1YzYzZFx1YzYzZVx1YzYzZlx1YzY0Mlx1YzY0M1x1YzY0NVx1YzY0Nlx1YzY0N1x1YzY0OSIsNiwiXHVjNjUyXHVjNjU2Iiw1LCJcdWM2NWVcdWM2NWZcdWM2NjEiLDEwLCJcdWM2NmRcdWM2NmVcdWM2NzBcdWM2NzIiLDUsIlx1YzY3YVx1''@;'; + put 'put ''YzY3Ylx1YzY3ZFx1YzY3ZVx1YzY3Zlx1YzY4MSIsNiwiXHVjNjhhXHVjNjhjXHVjNjhlIiw1LCJcdWM2OTZcdWM2OTdcdWM2OTlcdWM2OWFcdWM2OWJcdWM2OWQiLDYsIlx1YzZhNiJdLFsiOWY0MSIsIlx1YzZhOFx1YzZhYSIsNSwiXHVjNmIyXHVjNmIzXHVjNmI1XHVjNmI2XHVjNmI3XHVj''@;'; + put 'put ''NmJiIiw0LCJcdWM2YzJcdWM2YzRcdWM2YzYiLDUsIlx1YzZjZSJdLFsiOWY2MSIsIlx1YzZjZlx1YzZkMVx1YzZkMlx1YzZkM1x1YzZkNSIsNiwiXHVjNmRlXHVjNmRmXHVjNmUyIiw1LCJcdWM2ZWFcdWM2ZWJcdWM2ZWRcdWM2ZWVcdWM2ZWZcdWM2ZjFcdWM2ZjIiXSxbIjlmODEiLCJcdWM2''@;'; + put 'put ''ZjMiLDQsIlx1YzZmYVx1YzZmYlx1YzZmY1x1YzZmZSIsNSwiXHVjNzA2XHVjNzA3XHVjNzA5XHVjNzBhXHVjNzBiXHVjNzBkIiw2LCJcdWM3MTZcdWM3MThcdWM3MWEiLDUsIlx1YzcyMlx1YzcyM1x1YzcyNVx1YzcyNlx1YzcyN1x1YzcyOSIsNiwiXHVjNzMyXHVjNzM0XHVjNzM2XHVjNzM4''@;'; + put 'put ''XHVjNzM5XHVjNzNhXHVjNzNiXHVjNzNlXHVjNzNmXHVjNzQxXHVjNzQyXHVjNzQzXHVjNzQ1Iiw0LCJcdWM3NGJcdWM3NGVcdWM3NTBcdWM3NTlcdWM3NWFcdWM3NWJcdWM3NWRcdWM3NWVcdWM3NWZcdWM3NjEiLDYsIlx1Yzc2OVx1Yzc2YVx1Yzc2YyIsNywiXHVjNzc2XHVjNzc3XHVjNzc5''@;'; + put 'put ''XHVjNzdhXHVjNzdiXHVjNzdmXHVjNzgwXHVjNzgxXHVjNzgyXHVjNzg2XHVjNzhiXHVjNzhjXHVjNzhkXHVjNzhmXHVjNzkyXHVjNzkzXHVjNzk1XHVjNzk5XHVjNzliIiw0LCJcdWM3YTJcdWM3YTciLDQsIlx1YzdhZVx1YzdhZlx1YzdiMVx1YzdiMlx1YzdiM1x1YzdiNVx1YzdiNlx1Yzdi''@;'; + put 'put ''NyJdLFsiYTA0MSIsIlx1YzdiOFx1YzdiOVx1YzdiYVx1YzdiYlx1YzdiZVx1YzdjMiIsNSwiXHVjN2NhXHVjN2NiXHVjN2NkXHVjN2NmXHVjN2QxIiw2LCJcdWM3ZDlcdWM3ZGFcdWM3ZGJcdWM3ZGMiXSxbImEwNjEiLCJcdWM3ZGUiLDUsIlx1YzdlNVx1YzdlNlx1YzdlN1x1YzdlOVx1Yzdl''@;'; + put 'put ''YVx1YzdlYlx1YzdlZCIsMTNdLFsiYTA4MSIsIlx1YzdmYiIsNCwiXHVjODAyXHVjODAzXHVjODA1XHVjODA2XHVjODA3XHVjODA5XHVjODBiIiw0LCJcdWM4MTJcdWM4MTRcdWM4MTciLDQsIlx1YzgxZVx1YzgxZlx1YzgyMVx1YzgyMlx1YzgyM1x1YzgyNSIsNiwiXHVjODJlXHVjODMwXHVj''@;'; + put 'put ''ODMyIiw1LCJcdWM4MzlcdWM4M2FcdWM4M2JcdWM4M2RcdWM4M2VcdWM4M2ZcdWM4NDEiLDYsIlx1Yzg0YVx1Yzg0Ylx1Yzg0ZSIsNSwiXHVjODU1IiwyNiwiXHVjODcyXHVjODczXHVjODc1XHVjODc2XHVjODc3XHVjODc5XHVjODdiIiw0LCJcdWM4ODJcdWM4ODRcdWM4ODhcdWM4ODlcdWM4''@;'; + put 'put ''OGFcdWM4OGUiLDUsIlx1Yzg5NSIsNywiXHVjODllXHVjOGEwXHVjOGEyXHVjOGEzXHVjOGE0Il0sWyJhMTQxIiwiXHVjOGE1XHVjOGE2XHVjOGE3XHVjOGE5IiwxOCwiXHVjOGJlXHVjOGJmXHVjOGMwXHVjOGMxIl0sWyJhMTYxIiwiXHVjOGMyXHVjOGMzXHVjOGM1XHVjOGM2XHVjOGM3XHVj''@;'; + put 'put ''OGM5XHVjOGNhXHVjOGNiXHVjOGNkIiw2LCJcdWM4ZDZcdWM4ZDhcdWM4ZGEiLDUsIlx1YzhlMlx1YzhlM1x1YzhlNSJdLFsiYTE4MSIsIlx1YzhlNiIsMTQsIlx1YzhmNiIsNSwiXHVjOGZlXHVjOGZmXHVjOTAxXHVjOTAyXHVjOTAzXHVjOTA3Iiw0LCJcdWM5MGVcdTMwMDBcdTMwMDFcdTMw''@;'; + put 'put ''MDJceGI3XHUyMDI1XHUyMDI2XHhhOFx1MzAwM1x4YWRcdTIwMTVcdTIyMjVcdWZmM2NcdTIyM2NcdTIwMThcdTIwMTlcdTIwMWNcdTIwMWRcdTMwMTRcdTMwMTVcdTMwMDgiLDksIlx4YjFceGQ3XHhmN1x1MjI2MFx1MjI2NFx1MjI2NVx1MjIxZVx1MjIzNFx4YjBcdTIwMzJcdTIwMzNcdTIx''@;'; + put 'put ''MDNcdTIxMmJcdWZmZTBcdWZmZTFcdWZmZTVcdTI2NDJcdTI2NDBcdTIyMjBcdTIyYTVcdTIzMTJcdTIyMDJcdTIyMDdcdTIyNjFcdTIyNTJceGE3XHUyMDNiXHUyNjA2XHUyNjA1XHUyNWNiXHUyNWNmXHUyNWNlXHUyNWM3XHUyNWM2XHUyNWExXHUyNWEwXHUyNWIzXHUyNWIyXHUyNWJkXHUy''@;'; + put 'put ''NWJjXHUyMTkyXHUyMTkwXHUyMTkxXHUyMTkzXHUyMTk0XHUzMDEzXHUyMjZhXHUyMjZiXHUyMjFhXHUyMjNkXHUyMjFkXHUyMjM1XHUyMjJiXHUyMjJjXHUyMjA4XHUyMjBiXHUyMjg2XHUyMjg3XHUyMjgyXHUyMjgzXHUyMjJhXHUyMjI5XHUyMjI3XHUyMjI4XHVmZmUyIl0sWyJhMjQxIiwi''@;'; + put 'put ''XHVjOTEwXHVjOTEyIiw1LCJcdWM5MTkiLDE4XSxbImEyNjEiLCJcdWM5MmQiLDYsIlx1YzkzNSIsMThdLFsiYTI4MSIsIlx1Yzk0OCIsNywiXHVjOTUyXHVjOTUzXHVjOTU1XHVjOTU2XHVjOTU3XHVjOTU5Iiw2LCJcdWM5NjJcdWM5NjQiLDcsIlx1Yzk2ZFx1Yzk2ZVx1Yzk2Zlx1MjFkMlx1''@;'; + put 'put ''MjFkNFx1MjIwMFx1MjIwM1x4YjRcdWZmNWVcdTAyYzdcdTAyZDhcdTAyZGRcdTAyZGFcdTAyZDlceGI4XHUwMmRiXHhhMVx4YmZcdTAyZDBcdTIyMmVcdTIyMTFcdTIyMGZceGE0XHUyMTA5XHUyMDMwXHUyNWMxXHUyNWMwXHUyNWI3XHUyNWI2XHUyNjY0XHUyNjYwXHUyNjYxXHUyNjY1XHUy''@;'; + put 'put ''NjY3XHUyNjYzXHUyMjk5XHUyNWM4XHUyNWEzXHUyNWQwXHUyNWQxXHUyNTkyXHUyNWE0XHUyNWE1XHUyNWE4XHUyNWE3XHUyNWE2XHUyNWE5XHUyNjY4XHUyNjBmXHUyNjBlXHUyNjFjXHUyNjFlXHhiNlx1MjAyMFx1MjAyMVx1MjE5NVx1MjE5N1x1MjE5OVx1MjE5Nlx1MjE5OFx1MjY2ZFx1''@;'; + put 'put ''MjY2OVx1MjY2YVx1MjY2Y1x1MzI3Zlx1MzIxY1x1MjExNlx1MzNjN1x1MjEyMlx1MzNjMlx1MzNkOFx1MjEyMVx1MjBhY1x4YWUiXSxbImEzNDEiLCJcdWM5NzFcdWM5NzJcdWM5NzNcdWM5NzUiLDYsIlx1Yzk3ZCIsMTAsIlx1Yzk4YVx1Yzk4Ylx1Yzk4ZFx1Yzk4ZVx1Yzk4ZiJdLFsiYTM2''@;'; + put 'put ''MSIsIlx1Yzk5MSIsNiwiXHVjOTlhXHVjOTljXHVjOTllIiwxNl0sWyJhMzgxIiwiXHVjOWFmIiwxNiwiXHVjOWMyXHVjOWMzXHVjOWM1XHVjOWM2XHVjOWM5XHVjOWNiIiw0LCJcdWM5ZDJcdWM5ZDRcdWM5ZDdcdWM5ZDhcdWM5ZGJcdWZmMDEiLDU4LCJcdWZmZTZcdWZmM2QiLDMyLCJcdWZm''@;'; + put 'put ''ZTMiXSxbImE0NDEiLCJcdWM5ZGVcdWM5ZGZcdWM5ZTFcdWM5ZTNcdWM5ZTVcdWM5ZTZcdWM5ZThcdWM5ZTlcdWM5ZWFcdWM5ZWJcdWM5ZWVcdWM5ZjIiLDUsIlx1YzlmYVx1YzlmYlx1YzlmZFx1YzlmZVx1YzlmZlx1Y2EwMVx1Y2EwMlx1Y2EwM1x1Y2EwNCJdLFsiYTQ2MSIsIlx1Y2EwNVx1''@;'; + put 'put ''Y2EwNlx1Y2EwN1x1Y2EwYVx1Y2EwZSIsNSwiXHVjYTE1XHVjYTE2XHVjYTE3XHVjYTE5IiwxMl0sWyJhNDgxIiwiXHVjYTI2XHVjYTI3XHVjYTI4XHVjYTJhIiwyOCwiXHUzMTMxIiw5M10sWyJhNTQxIiwiXHVjYTQ3Iiw0LCJcdWNhNGVcdWNhNGZcdWNhNTFcdWNhNTJcdWNhNTNcdWNhNTUi''@;'; + put 'put ''LDYsIlx1Y2E1ZVx1Y2E2MiIsNSwiXHVjYTY5XHVjYTZhIl0sWyJhNTYxIiwiXHVjYTZiIiwxNywiXHVjYTdlIiw1LCJcdWNhODVcdWNhODYiXSxbImE1ODEiLCJcdWNhODciLDE2LCJcdWNhOTkiLDE0LCJcdTIxNzAiLDldLFsiYTViMCIsIlx1MjE2MCIsOV0sWyJhNWMxIiwiXHUwMzkxIiwx''@;'; + put 'put ''NiwiXHUwM2EzIiw2XSxbImE1ZTEiLCJcdTAzYjEiLDE2LCJcdTAzYzMiLDZdLFsiYTY0MSIsIlx1Y2FhOCIsMTksIlx1Y2FiZVx1Y2FiZlx1Y2FjMVx1Y2FjMlx1Y2FjM1x1Y2FjNSJdLFsiYTY2MSIsIlx1Y2FjNiIsNSwiXHVjYWNlXHVjYWQwXHVjYWQyXHVjYWQ0XHVjYWQ1XHVjYWQ2XHVj''@;'; + put 'put ''YWQ3XHVjYWRhIiw1LCJcdWNhZTEiLDZdLFsiYTY4MSIsIlx1Y2FlOFx1Y2FlOVx1Y2FlYVx1Y2FlYlx1Y2FlZCIsNiwiXHVjYWY1IiwxOCwiXHVjYjA5XHVjYjBhXHUyNTAwXHUyNTAyXHUyNTBjXHUyNTEwXHUyNTE4XHUyNTE0XHUyNTFjXHUyNTJjXHUyNTI0XHUyNTM0XHUyNTNjXHUyNTAx''@;'; + put 'put ''XHUyNTAzXHUyNTBmXHUyNTEzXHUyNTFiXHUyNTE3XHUyNTIzXHUyNTMzXHUyNTJiXHUyNTNiXHUyNTRiXHUyNTIwXHUyNTJmXHUyNTI4XHUyNTM3XHUyNTNmXHUyNTFkXHUyNTMwXHUyNTI1XHUyNTM4XHUyNTQyXHUyNTEyXHUyNTExXHUyNTFhXHUyNTE5XHUyNTE2XHUyNTE1XHUyNTBlXHUy''@;'; + put 'put ''NTBkXHUyNTFlXHUyNTFmXHUyNTIxXHUyNTIyXHUyNTI2XHUyNTI3XHUyNTI5XHUyNTJhXHUyNTJkXHUyNTJlXHUyNTMxXHUyNTMyXHUyNTM1XHUyNTM2XHUyNTM5XHUyNTNhXHUyNTNkXHUyNTNlXHUyNTQwXHUyNTQxXHUyNTQzIiw3XSxbImE3NDEiLCJcdWNiMGIiLDQsIlx1Y2IxMVx1Y2Ix''@;'; + put 'put ''Mlx1Y2IxM1x1Y2IxNVx1Y2IxNlx1Y2IxN1x1Y2IxOSIsNiwiXHVjYjIyIiw3XSxbImE3NjEiLCJcdWNiMmEiLDIyLCJcdWNiNDJcdWNiNDNcdWNiNDQiXSxbImE3ODEiLCJcdWNiNDVcdWNiNDZcdWNiNDdcdWNiNGFcdWNiNGJcdWNiNGRcdWNiNGVcdWNiNGZcdWNiNTEiLDYsIlx1Y2I1YVx1''@;'; + put 'put ''Y2I1Ylx1Y2I1Y1x1Y2I1ZSIsNSwiXHVjYjY1Iiw3LCJcdTMzOTVcdTMzOTZcdTMzOTdcdTIxMTNcdTMzOThcdTMzYzRcdTMzYTNcdTMzYTRcdTMzYTVcdTMzYTZcdTMzOTkiLDksIlx1MzNjYVx1MzM4ZFx1MzM4ZVx1MzM4Zlx1MzNjZlx1MzM4OFx1MzM4OVx1MzNjOFx1MzNhN1x1MzNhOFx1''@;'; + put 'put ''MzNiMCIsOSwiXHUzMzgwIiw0LCJcdTMzYmEiLDUsIlx1MzM5MCIsNCwiXHUyMTI2XHUzM2MwXHUzM2MxXHUzMzhhXHUzMzhiXHUzMzhjXHUzM2Q2XHUzM2M1XHUzM2FkXHUzM2FlXHUzM2FmXHUzM2RiXHUzM2E5XHUzM2FhXHUzM2FiXHUzM2FjXHUzM2RkXHUzM2QwXHUzM2QzXHUzM2MzXHUz''@;'; + put 'put ''M2M5XHUzM2RjXHUzM2M2Il0sWyJhODQxIiwiXHVjYjZkIiwxMCwiXHVjYjdhIiwxNF0sWyJhODYxIiwiXHVjYjg5IiwxOCwiXHVjYjlkIiw2XSxbImE4ODEiLCJcdWNiYTQiLDE5LCJcdWNiYjkiLDExLCJceGM2XHhkMFx4YWFcdTAxMjYiXSxbImE4YTYiLCJcdTAxMzIiXSxbImE4YTgiLCJc''@;'; + put 'put ''dTAxM2ZcdTAxNDFceGQ4XHUwMTUyXHhiYVx4ZGVcdTAxNjZcdTAxNGEiXSxbImE4YjEiLCJcdTMyNjAiLDI3LCJcdTI0ZDAiLDI1LCJcdTI0NjAiLDE0LCJceGJkXHUyMTUzXHUyMTU0XHhiY1x4YmVcdTIxNWJcdTIxNWNcdTIxNWRcdTIxNWUiXSxbImE5NDEiLCJcdWNiYzUiLDE0LCJcdWNi''@;'; + put 'put ''ZDUiLDEwXSxbImE5NjEiLCJcdWNiZTBcdWNiZTFcdWNiZTJcdWNiZTNcdWNiZTVcdWNiZTZcdWNiZThcdWNiZWEiLDE4XSxbImE5ODEiLCJcdWNiZmQiLDE0LCJcdWNjMGVcdWNjMGZcdWNjMTFcdWNjMTJcdWNjMTNcdWNjMTUiLDYsIlx1Y2MxZVx1Y2MxZlx1Y2MyMFx1Y2MyM1x1Y2MyNFx4''@;'; + put 'put ''ZTZcdTAxMTFceGYwXHUwMTI3XHUwMTMxXHUwMTMzXHUwMTM4XHUwMTQwXHUwMTQyXHhmOFx1MDE1M1x4ZGZceGZlXHUwMTY3XHUwMTRiXHUwMTQ5XHUzMjAwIiwyNywiXHUyNDljIiwyNSwiXHUyNDc0IiwxNCwiXHhiOVx4YjJceGIzXHUyMDc0XHUyMDdmXHUyMDgxXHUyMDgyXHUyMDgzXHUy''@;'; + put 'put ''MDg0Il0sWyJhYTQxIiwiXHVjYzI1XHVjYzI2XHVjYzJhXHVjYzJiXHVjYzJkXHVjYzJmXHVjYzMxIiw2LCJcdWNjM2FcdWNjM2YiLDQsIlx1Y2M0Nlx1Y2M0N1x1Y2M0OVx1Y2M0YVx1Y2M0Ylx1Y2M0ZFx1Y2M0ZSJdLFsiYWE2MSIsIlx1Y2M0ZiIsNCwiXHVjYzU2XHVjYzVhIiw1LCJcdWNj''@;'; + put 'put ''NjFcdWNjNjJcdWNjNjNcdWNjNjVcdWNjNjdcdWNjNjkiLDYsIlx1Y2M3MVx1Y2M3MiJdLFsiYWE4MSIsIlx1Y2M3M1x1Y2M3NFx1Y2M3NiIsMjksIlx1MzA0MSIsODJdLFsiYWI0MSIsIlx1Y2M5NFx1Y2M5NVx1Y2M5Nlx1Y2M5N1x1Y2M5YVx1Y2M5Ylx1Y2M5ZFx1Y2M5ZVx1Y2M5Zlx1Y2Nh''@;'; + put 'put ''MSIsNiwiXHVjY2FhXHVjY2FlIiw1LCJcdWNjYjZcdWNjYjdcdWNjYjkiXSxbImFiNjEiLCJcdWNjYmFcdWNjYmJcdWNjYmQiLDYsIlx1Y2NjNlx1Y2NjOFx1Y2NjYSIsNSwiXHVjY2QxXHVjY2QyXHVjY2QzXHVjY2Q1Iiw1XSxbImFiODEiLCJcdWNjZGIiLDgsIlx1Y2NlNSIsNiwiXHVjY2Vk''@;'; + put 'put ''XHVjY2VlXHVjY2VmXHVjY2YxIiwxMiwiXHUzMGExIiw4NV0sWyJhYzQxIiwiXHVjY2ZlXHVjY2ZmXHVjZDAwXHVjZDAyIiw1LCJcdWNkMGFcdWNkMGJcdWNkMGRcdWNkMGVcdWNkMGZcdWNkMTEiLDYsIlx1Y2QxYVx1Y2QxY1x1Y2QxZVx1Y2QxZlx1Y2QyMCJdLFsiYWM2MSIsIlx1Y2QyMVx1''@;'; + put 'put ''Y2QyMlx1Y2QyM1x1Y2QyNVx1Y2QyNlx1Y2QyN1x1Y2QyOVx1Y2QyYVx1Y2QyYlx1Y2QyZCIsMTEsIlx1Y2QzYSIsNF0sWyJhYzgxIiwiXHVjZDNmIiwyOCwiXHVjZDVkXHVjZDVlXHVjZDVmXHUwNDEwIiw1LCJcdTA0MDFcdTA0MTYiLDI1XSxbImFjZDEiLCJcdTA0MzAiLDUsIlx1MDQ1MVx1''@;'; + put 'put ''MDQzNiIsMjVdLFsiYWQ0MSIsIlx1Y2Q2MVx1Y2Q2Mlx1Y2Q2M1x1Y2Q2NSIsNiwiXHVjZDZlXHVjZDcwXHVjZDcyIiw1LCJcdWNkNzkiLDddLFsiYWQ2MSIsIlx1Y2Q4MSIsNiwiXHVjZDg5IiwxMCwiXHVjZDk2XHVjZDk3XHVjZDk5XHVjZDlhXHVjZDliXHVjZDlkXHVjZDllXHVjZDlmIl0s''@;'; + put 'put ''WyJhZDgxIiwiXHVjZGEwXHVjZGExXHVjZGEyXHVjZGEzXHVjZGE2XHVjZGE4XHVjZGFhIiw1LCJcdWNkYjEiLDE4LCJcdWNkYzUiXSxbImFlNDEiLCJcdWNkYzYiLDUsIlx1Y2RjZFx1Y2RjZVx1Y2RjZlx1Y2RkMSIsMTZdLFsiYWU2MSIsIlx1Y2RlMiIsNSwiXHVjZGU5XHVjZGVhXHVjZGVi''@;'; + put 'put ''XHVjZGVkXHVjZGVlXHVjZGVmXHVjZGYxIiw2LCJcdWNkZmFcdWNkZmNcdWNkZmUiLDRdLFsiYWU4MSIsIlx1Y2UwM1x1Y2UwNVx1Y2UwNlx1Y2UwN1x1Y2UwOVx1Y2UwYVx1Y2UwYlx1Y2UwZCIsNiwiXHVjZTE1XHVjZTE2XHVjZTE3XHVjZTE4XHVjZTFhIiw1LCJcdWNlMjJcdWNlMjNcdWNl''@;'; + put 'put ''MjVcdWNlMjZcdWNlMjdcdWNlMjlcdWNlMmFcdWNlMmIiXSxbImFmNDEiLCJcdWNlMmNcdWNlMmRcdWNlMmVcdWNlMmZcdWNlMzJcdWNlMzRcdWNlMzYiLDE5XSxbImFmNjEiLCJcdWNlNGEiLDEzLCJcdWNlNWFcdWNlNWJcdWNlNWRcdWNlNWVcdWNlNjIiLDUsIlx1Y2U2YVx1Y2U2YyJdLFsi''@;'; + put 'put ''YWY4MSIsIlx1Y2U2ZSIsNSwiXHVjZTc2XHVjZTc3XHVjZTc5XHVjZTdhXHVjZTdiXHVjZTdkIiw2LCJcdWNlODZcdWNlODhcdWNlOGEiLDUsIlx1Y2U5Mlx1Y2U5M1x1Y2U5NVx1Y2U5Nlx1Y2U5N1x1Y2U5OSJdLFsiYjA0MSIsIlx1Y2U5YSIsNSwiXHVjZWEyXHVjZWE2Iiw1LCJcdWNlYWUi''@;'; + put 'put ''LDEyXSxbImIwNjEiLCJcdWNlYmIiLDUsIlx1Y2VjMiIsMTldLFsiYjA4MSIsIlx1Y2VkNiIsMTMsIlx1Y2VlNlx1Y2VlN1x1Y2VlOVx1Y2VlYVx1Y2VlZCIsNiwiXHVjZWY2XHVjZWZhIiw1LCJcdWFjMDBcdWFjMDFcdWFjMDRcdWFjMDdcdWFjMDhcdWFjMDlcdWFjMGFcdWFjMTAiLDcsIlx1''@;'; + put 'put ''YWMxOSIsNCwiXHVhYzIwXHVhYzI0XHVhYzJjXHVhYzJkXHVhYzJmXHVhYzMwXHVhYzMxXHVhYzM4XHVhYzM5XHVhYzNjXHVhYzQwXHVhYzRiXHVhYzRkXHVhYzU0XHVhYzU4XHVhYzVjXHVhYzcwXHVhYzcxXHVhYzc0XHVhYzc3XHVhYzc4XHVhYzdhXHVhYzgwXHVhYzgxXHVhYzgzXHVhYzg0''@;'; + put 'put ''XHVhYzg1XHVhYzg2XHVhYzg5XHVhYzhhXHVhYzhiXHVhYzhjXHVhYzkwXHVhYzk0XHVhYzljXHVhYzlkXHVhYzlmXHVhY2EwXHVhY2ExXHVhY2E4XHVhY2E5XHVhY2FhXHVhY2FjXHVhY2FmXHVhY2IwXHVhY2I4XHVhY2I5XHVhY2JiXHVhY2JjXHVhY2JkXHVhY2MxXHVhY2M0XHVhY2M4XHVh''@;'; + put 'put ''Y2NjXHVhY2Q1XHVhY2Q3XHVhY2UwXHVhY2UxXHVhY2U0XHVhY2U3XHVhY2U4XHVhY2VhXHVhY2VjXHVhY2VmXHVhY2YwXHVhY2YxXHVhY2YzXHVhY2Y1XHVhY2Y2XHVhY2ZjXHVhY2ZkXHVhZDAwXHVhZDA0XHVhZDA2Il0sWyJiMTQxIiwiXHVjZjAyXHVjZjAzXHVjZjA1XHVjZjA2XHVjZjA3''@;'; + put 'put ''XHVjZjA5Iiw2LCJcdWNmMTJcdWNmMTRcdWNmMTYiLDUsIlx1Y2YxZFx1Y2YxZVx1Y2YxZlx1Y2YyMVx1Y2YyMlx1Y2YyMyJdLFsiYjE2MSIsIlx1Y2YyNSIsNiwiXHVjZjJlXHVjZjMyIiw1LCJcdWNmMzkiLDExXSxbImIxODEiLCJcdWNmNDUiLDE0LCJcdWNmNTZcdWNmNTdcdWNmNTlcdWNm''@;'; + put 'put ''NWFcdWNmNWJcdWNmNWQiLDYsIlx1Y2Y2Nlx1Y2Y2OFx1Y2Y2YVx1Y2Y2Ylx1Y2Y2Y1x1YWQwY1x1YWQwZFx1YWQwZlx1YWQxMVx1YWQxOFx1YWQxY1x1YWQyMFx1YWQyOVx1YWQyY1x1YWQyZFx1YWQzNFx1YWQzNVx1YWQzOFx1YWQzY1x1YWQ0NFx1YWQ0NVx1YWQ0N1x1YWQ0OVx1YWQ1MFx1''@;'; + put 'put ''YWQ1NFx1YWQ1OFx1YWQ2MVx1YWQ2M1x1YWQ2Y1x1YWQ2ZFx1YWQ3MFx1YWQ3M1x1YWQ3NFx1YWQ3NVx1YWQ3Nlx1YWQ3Ylx1YWQ3Y1x1YWQ3ZFx1YWQ3Zlx1YWQ4MVx1YWQ4Mlx1YWQ4OFx1YWQ4OVx1YWQ4Y1x1YWQ5MFx1YWQ5Y1x1YWQ5ZFx1YWRhNFx1YWRiN1x1YWRjMFx1YWRjMVx1YWRj''@;'; + put 'put ''NFx1YWRjOFx1YWRkMFx1YWRkMVx1YWRkM1x1YWRkY1x1YWRlMFx1YWRlNFx1YWRmOFx1YWRmOVx1YWRmY1x1YWRmZlx1YWUwMFx1YWUwMVx1YWUwOFx1YWUwOVx1YWUwYlx1YWUwZFx1YWUxNFx1YWUzMFx1YWUzMVx1YWUzNFx1YWUzN1x1YWUzOFx1YWUzYVx1YWU0MFx1YWU0MVx1YWU0M1x1''@;'; + put 'put ''YWU0NVx1YWU0Nlx1YWU0YVx1YWU0Y1x1YWU0ZFx1YWU0ZVx1YWU1MFx1YWU1NFx1YWU1Nlx1YWU1Y1x1YWU1ZFx1YWU1Zlx1YWU2MFx1YWU2MVx1YWU2NVx1YWU2OFx1YWU2OVx1YWU2Y1x1YWU3MFx1YWU3OCJdLFsiYjI0MSIsIlx1Y2Y2ZFx1Y2Y2ZVx1Y2Y2Zlx1Y2Y3Mlx1Y2Y3M1x1Y2Y3''@;'; + put 'put ''NVx1Y2Y3Nlx1Y2Y3N1x1Y2Y3OSIsNiwiXHVjZjgxXHVjZjgyXHVjZjgzXHVjZjg0XHVjZjg2Iiw1LCJcdWNmOGQiXSxbImIyNjEiLCJcdWNmOGUiLDE4LCJcdWNmYTIiLDUsIlx1Y2ZhOSJdLFsiYjI4MSIsIlx1Y2ZhYSIsNSwiXHVjZmIxIiwxOCwiXHVjZmM1Iiw2LCJcdWFlNzlcdWFlN2Jc''@;'; + put 'put ''dWFlN2NcdWFlN2RcdWFlODRcdWFlODVcdWFlOGNcdWFlYmNcdWFlYmRcdWFlYmVcdWFlYzBcdWFlYzRcdWFlY2NcdWFlY2RcdWFlY2ZcdWFlZDBcdWFlZDFcdWFlZDhcdWFlZDlcdWFlZGNcdWFlZThcdWFlZWJcdWFlZWRcdWFlZjRcdWFlZjhcdWFlZmNcdWFmMDdcdWFmMDhcdWFmMGRcdWFm''@;'; + put 'put ''MTBcdWFmMmNcdWFmMmRcdWFmMzBcdWFmMzJcdWFmMzRcdWFmM2NcdWFmM2RcdWFmM2ZcdWFmNDFcdWFmNDJcdWFmNDNcdWFmNDhcdWFmNDlcdWFmNTBcdWFmNWNcdWFmNWRcdWFmNjRcdWFmNjVcdWFmNzlcdWFmODBcdWFmODRcdWFmODhcdWFmOTBcdWFmOTFcdWFmOTVcdWFmOWNcdWFmYjhc''@;'; + put 'put ''dWFmYjlcdWFmYmNcdWFmYzBcdWFmYzdcdWFmYzhcdWFmYzlcdWFmY2JcdWFmY2RcdWFmY2VcdWFmZDRcdWFmZGNcdWFmZThcdWFmZTlcdWFmZjBcdWFmZjFcdWFmZjRcdWFmZjhcdWIwMDBcdWIwMDFcdWIwMDRcdWIwMGNcdWIwMTBcdWIwMTRcdWIwMWNcdWIwMWRcdWIwMjhcdWIwNDRcdWIw''@;'; + put 'put ''NDVcdWIwNDhcdWIwNGFcdWIwNGNcdWIwNGVcdWIwNTNcdWIwNTRcdWIwNTVcdWIwNTdcdWIwNTkiXSxbImIzNDEiLCJcdWNmY2MiLDE5LCJcdWNmZTJcdWNmZTNcdWNmZTVcdWNmZTZcdWNmZTdcdWNmZTkiXSxbImIzNjEiLCJcdWNmZWEiLDUsIlx1Y2ZmMlx1Y2ZmNFx1Y2ZmNiIsNSwiXHVj''@;'; + put 'put ''ZmZkXHVjZmZlXHVjZmZmXHVkMDAxXHVkMDAyXHVkMDAzXHVkMDA1Iiw1XSxbImIzODEiLCJcdWQwMGIiLDUsIlx1ZDAxMiIsNSwiXHVkMDE5IiwxOSwiXHViMDVkXHViMDdjXHViMDdkXHViMDgwXHViMDg0XHViMDhjXHViMDhkXHViMDhmXHViMDkxXHViMDk4XHViMDk5XHViMDlhXHViMDlj''@;'; + put 'put ''XHViMDlmXHViMGEwXHViMGExXHViMGEyXHViMGE4XHViMGE5XHViMGFiIiw0LCJcdWIwYjFcdWIwYjNcdWIwYjRcdWIwYjVcdWIwYjhcdWIwYmNcdWIwYzRcdWIwYzVcdWIwYzdcdWIwYzhcdWIwYzlcdWIwZDBcdWIwZDFcdWIwZDRcdWIwZDhcdWIwZTBcdWIwZTVcdWIxMDhcdWIxMDlcdWIx''@;'; + put 'put ''MGJcdWIxMGNcdWIxMTBcdWIxMTJcdWIxMTNcdWIxMThcdWIxMTlcdWIxMWJcdWIxMWNcdWIxMWRcdWIxMjNcdWIxMjRcdWIxMjVcdWIxMjhcdWIxMmNcdWIxMzRcdWIxMzVcdWIxMzdcdWIxMzhcdWIxMzlcdWIxNDBcdWIxNDFcdWIxNDRcdWIxNDhcdWIxNTBcdWIxNTFcdWIxNTRcdWIxNTVc''@;'; + put 'put ''dWIxNThcdWIxNWNcdWIxNjBcdWIxNzhcdWIxNzlcdWIxN2NcdWIxODBcdWIxODJcdWIxODhcdWIxODlcdWIxOGJcdWIxOGRcdWIxOTJcdWIxOTNcdWIxOTRcdWIxOThcdWIxOWNcdWIxYThcdWIxY2NcdWIxZDBcdWIxZDRcdWIxZGNcdWIxZGQiXSxbImI0NDEiLCJcdWQwMmUiLDUsIlx1ZDAz''@;'; + put 'put ''Nlx1ZDAzN1x1ZDAzOVx1ZDAzYVx1ZDAzYlx1ZDAzZCIsNiwiXHVkMDQ2XHVkMDQ4XHVkMDRhIiw1XSxbImI0NjEiLCJcdWQwNTFcdWQwNTJcdWQwNTNcdWQwNTVcdWQwNTZcdWQwNTdcdWQwNTkiLDYsIlx1ZDA2MSIsMTAsIlx1ZDA2ZVx1ZDA2ZiJdLFsiYjQ4MSIsIlx1ZDA3MVx1ZDA3Mlx1''@;'; + put 'put ''ZDA3M1x1ZDA3NSIsNiwiXHVkMDdlXHVkMDdmXHVkMDgwXHVkMDgyIiwxOCwiXHViMWRmXHViMWU4XHViMWU5XHViMWVjXHViMWYwXHViMWY5XHViMWZiXHViMWZkXHViMjA0XHViMjA1XHViMjA4XHViMjBiXHViMjBjXHViMjE0XHViMjE1XHViMjE3XHViMjE5XHViMjIwXHViMjM0XHViMjNj''@;'; + put 'put ''XHViMjU4XHViMjVjXHViMjYwXHViMjY4XHViMjY5XHViMjc0XHViMjc1XHViMjdjXHViMjg0XHViMjg1XHViMjg5XHViMjkwXHViMjkxXHViMjk0XHViMjk4XHViMjk5XHViMjlhXHViMmEwXHViMmExXHViMmEzXHViMmE1XHViMmE2XHViMmFhXHViMmFjXHViMmIwXHViMmI0XHViMmM4XHVi''@;'; + put 'put ''MmM5XHViMmNjXHViMmQwXHViMmQyXHViMmQ4XHViMmQ5XHViMmRiXHViMmRkXHViMmUyXHViMmU0XHViMmU1XHViMmU2XHViMmU4XHViMmViIiw0LCJcdWIyZjNcdWIyZjRcdWIyZjVcdWIyZjciLDQsIlx1YjJmZlx1YjMwMFx1YjMwMVx1YjMwNFx1YjMwOFx1YjMxMFx1YjMxMVx1YjMxM1x1''@;'; + put 'put ''YjMxNFx1YjMxNVx1YjMxY1x1YjM1NFx1YjM1NVx1YjM1Nlx1YjM1OFx1YjM1Ylx1YjM1Y1x1YjM1ZVx1YjM1Zlx1YjM2NFx1YjM2NSJdLFsiYjU0MSIsIlx1ZDA5NSIsMTQsIlx1ZDBhNlx1ZDBhN1x1ZDBhOVx1ZDBhYVx1ZDBhYlx1ZDBhZCIsNV0sWyJiNTYxIiwiXHVkMGIzXHVkMGI2XHVk''@;'; + put 'put ''MGI4XHVkMGJhIiw1LCJcdWQwYzJcdWQwYzNcdWQwYzVcdWQwYzZcdWQwYzdcdWQwY2EiLDUsIlx1ZDBkMlx1ZDBkNiIsNF0sWyJiNTgxIiwiXHVkMGRiXHVkMGRlXHVkMGRmXHVkMGUxXHVkMGUyXHVkMGUzXHVkMGU1Iiw2LCJcdWQwZWVcdWQwZjIiLDUsIlx1ZDBmOSIsMTEsIlx1YjM2N1x1''@;'; + put 'put ''YjM2OVx1YjM2Ylx1YjM2ZVx1YjM3MFx1YjM3MVx1YjM3NFx1YjM3OFx1YjM4MFx1YjM4MVx1YjM4M1x1YjM4NFx1YjM4NVx1YjM4Y1x1YjM5MFx1YjM5NFx1YjNhMFx1YjNhMVx1YjNhOFx1YjNhY1x1YjNjNFx1YjNjNVx1YjNjOFx1YjNjYlx1YjNjY1x1YjNjZVx1YjNkMFx1YjNkNFx1YjNk''@;'; + put 'put ''NVx1YjNkN1x1YjNkOVx1YjNkYlx1YjNkZFx1YjNlMFx1YjNlNFx1YjNlOFx1YjNmY1x1YjQxMFx1YjQxOFx1YjQxY1x1YjQyMFx1YjQyOFx1YjQyOVx1YjQyYlx1YjQzNFx1YjQ1MFx1YjQ1MVx1YjQ1NFx1YjQ1OFx1YjQ2MFx1YjQ2MVx1YjQ2M1x1YjQ2NVx1YjQ2Y1x1YjQ4MFx1YjQ4OFx1''@;'; + put 'put ''YjQ5ZFx1YjRhNFx1YjRhOFx1YjRhY1x1YjRiNVx1YjRiN1x1YjRiOVx1YjRjMFx1YjRjNFx1YjRjOFx1YjRkMFx1YjRkNVx1YjRkY1x1YjRkZFx1YjRlMFx1YjRlM1x1YjRlNFx1YjRlNlx1YjRlY1x1YjRlZFx1YjRlZlx1YjRmMVx1YjRmOFx1YjUxNFx1YjUxNVx1YjUxOFx1YjUxYlx1YjUx''@;'; + put 'put ''Y1x1YjUyNFx1YjUyNVx1YjUyN1x1YjUyOFx1YjUyOVx1YjUyYVx1YjUzMFx1YjUzMVx1YjUzNFx1YjUzOCJdLFsiYjY0MSIsIlx1ZDEwNSIsNywiXHVkMTBlIiwxN10sWyJiNjYxIiwiXHVkMTIwIiwxNSwiXHVkMTMyXHVkMTMzXHVkMTM1XHVkMTM2XHVkMTM3XHVkMTM5XHVkMTNiXHVkMTNj''@;'; + put 'put ''XHVkMTNkXHVkMTNlIl0sWyJiNjgxIiwiXHVkMTNmXHVkMTQyXHVkMTQ2Iiw1LCJcdWQxNGVcdWQxNGZcdWQxNTFcdWQxNTJcdWQxNTNcdWQxNTUiLDYsIlx1ZDE1ZVx1ZDE2MFx1ZDE2MiIsNSwiXHVkMTY5XHVkMTZhXHVkMTZiXHVkMTZkXHViNTQwXHViNTQxXHViNTQzXHViNTQ0XHViNTQ1''@;'; + put 'put ''XHViNTRiXHViNTRjXHViNTRkXHViNTUwXHViNTU0XHViNTVjXHViNTVkXHViNTVmXHViNTYwXHViNTYxXHViNWEwXHViNWExXHViNWE0XHViNWE4XHViNWFhXHViNWFiXHViNWIwXHViNWIxXHViNWIzXHViNWI0XHViNWI1XHViNWJiXHViNWJjXHViNWJkXHViNWMwXHViNWM0XHViNWNjXHVi''@;'; + put 'put ''NWNkXHViNWNmXHViNWQwXHViNWQxXHViNWQ4XHViNWVjXHViNjEwXHViNjExXHViNjE0XHViNjE4XHViNjI1XHViNjJjXHViNjM0XHViNjQ4XHViNjY0XHViNjY4XHViNjljXHViNjlkXHViNmEwXHViNmE0XHViNmFiXHViNmFjXHViNmIxXHViNmQ0XHViNmYwXHViNmY0XHViNmY4XHViNzAw''@;'; + put 'put ''XHViNzAxXHViNzA1XHViNzI4XHViNzI5XHViNzJjXHViNzJmXHViNzMwXHViNzM4XHViNzM5XHViNzNiXHViNzQ0XHViNzQ4XHViNzRjXHViNzU0XHViNzU1XHViNzYwXHViNzY0XHViNzY4XHViNzcwXHViNzcxXHViNzczXHViNzc1XHViNzdjXHViNzdkXHViNzgwXHViNzg0XHViNzhjXHVi''@;'; + put 'put ''NzhkXHViNzhmXHViNzkwXHViNzkxXHViNzkyXHViNzk2XHViNzk3Il0sWyJiNzQxIiwiXHVkMTZlIiwxMywiXHVkMTdkIiw2LCJcdWQxODVcdWQxODZcdWQxODdcdWQxODlcdWQxOGEiXSxbImI3NjEiLCJcdWQxOGIiLDIwLCJcdWQxYTJcdWQxYTNcdWQxYTVcdWQxYTZcdWQxYTciXSxbImI3''@;'; + put 'put ''ODEiLCJcdWQxYTkiLDYsIlx1ZDFiMlx1ZDFiNFx1ZDFiNlx1ZDFiN1x1ZDFiOFx1ZDFiOVx1ZDFiYlx1ZDFiZFx1ZDFiZVx1ZDFiZlx1ZDFjMSIsMTQsIlx1Yjc5OFx1Yjc5OVx1Yjc5Y1x1YjdhMFx1YjdhOFx1YjdhOVx1YjdhYlx1YjdhY1x1YjdhZFx1YjdiNFx1YjdiNVx1YjdiOFx1Yjdj''@;'; + put 'put ''N1x1YjdjOVx1YjdlY1x1YjdlZFx1YjdmMFx1YjdmNFx1YjdmY1x1YjdmZFx1YjdmZlx1YjgwMFx1YjgwMVx1YjgwN1x1YjgwOFx1YjgwOVx1YjgwY1x1YjgxMFx1YjgxOFx1YjgxOVx1YjgxYlx1YjgxZFx1YjgyNFx1YjgyNVx1YjgyOFx1YjgyY1x1YjgzNFx1YjgzNVx1YjgzN1x1YjgzOFx1''@;'; + put 'put ''YjgzOVx1Yjg0MFx1Yjg0NFx1Yjg1MVx1Yjg1M1x1Yjg1Y1x1Yjg1ZFx1Yjg2MFx1Yjg2NFx1Yjg2Y1x1Yjg2ZFx1Yjg2Zlx1Yjg3MVx1Yjg3OFx1Yjg3Y1x1Yjg4ZFx1YjhhOFx1YjhiMFx1YjhiNFx1YjhiOFx1YjhjMFx1YjhjMVx1YjhjM1x1YjhjNVx1YjhjY1x1YjhkMFx1YjhkNFx1Yjhk''@;'; + put 'put ''ZFx1YjhkZlx1YjhlMVx1YjhlOFx1YjhlOVx1YjhlY1x1YjhmMFx1YjhmOFx1YjhmOVx1YjhmYlx1YjhmZFx1YjkwNFx1YjkxOFx1YjkyMFx1YjkzY1x1YjkzZFx1Yjk0MFx1Yjk0NFx1Yjk0Y1x1Yjk0Zlx1Yjk1MVx1Yjk1OFx1Yjk1OVx1Yjk1Y1x1Yjk2MFx1Yjk2OFx1Yjk2OSJdLFsiYjg0''@;'; + put 'put ''MSIsIlx1ZDFkMCIsNywiXHVkMWQ5IiwxN10sWyJiODYxIiwiXHVkMWViIiw4LCJcdWQxZjVcdWQxZjZcdWQxZjdcdWQxZjkiLDEzXSxbImI4ODEiLCJcdWQyMDhcdWQyMGEiLDUsIlx1ZDIxMSIsMjQsIlx1Yjk2Ylx1Yjk2ZFx1Yjk3NFx1Yjk3NVx1Yjk3OFx1Yjk3Y1x1Yjk4NFx1Yjk4NVx1''@;'; + put 'put ''Yjk4N1x1Yjk4OVx1Yjk4YVx1Yjk4ZFx1Yjk4ZVx1YjlhY1x1YjlhZFx1YjliMFx1YjliNFx1YjliY1x1YjliZFx1YjliZlx1YjljMVx1YjljOFx1YjljOVx1YjljY1x1YjljZSIsNCwiXHViOWQ4XHViOWQ5XHViOWRiXHViOWRkXHViOWRlXHViOWUxXHViOWUzXHViOWU0XHViOWU1XHViOWU4''@;'; + put 'put ''XHViOWVjXHViOWY0XHViOWY1XHViOWY3XHViOWY4XHViOWY5XHViOWZhXHViYTAwXHViYTAxXHViYTA4XHViYTE1XHViYTM4XHViYTM5XHViYTNjXHViYTQwXHViYTQyXHViYTQ4XHViYTQ5XHViYTRiXHViYTRkXHViYTRlXHViYTUzXHViYTU0XHViYTU1XHViYTU4XHViYTVjXHViYTY0XHVi''@;'; + put 'put ''YTY1XHViYTY3XHViYTY4XHViYTY5XHViYTcwXHViYTcxXHViYTc0XHViYTc4XHViYTgzXHViYTg0XHViYTg1XHViYTg3XHViYThjXHViYWE4XHViYWE5XHViYWFiXHViYWFjXHViYWIwXHViYWIyXHViYWI4XHViYWI5XHViYWJiXHViYWJkXHViYWM0XHViYWM4XHViYWQ4XHViYWQ5XHViYWZj''@;'; + put 'put ''Il0sWyJiOTQxIiwiXHVkMjJhXHVkMjJiXHVkMjJlXHVkMjJmXHVkMjMxXHVkMjMyXHVkMjMzXHVkMjM1Iiw2LCJcdWQyM2VcdWQyNDBcdWQyNDIiLDUsIlx1ZDI0OVx1ZDI0YVx1ZDI0Ylx1ZDI0YyJdLFsiYjk2MSIsIlx1ZDI0ZCIsMTQsIlx1ZDI1ZCIsNiwiXHVkMjY1XHVkMjY2XHVkMjY3''@;'; + put 'put ''XHVkMjY4Il0sWyJiOTgxIiwiXHVkMjY5IiwyMiwiXHVkMjgyXHVkMjgzXHVkMjg1XHVkMjg2XHVkMjg3XHVkMjg5XHVkMjhhXHVkMjhiXHVkMjhjXHViYjAwXHViYjA0XHViYjBkXHViYjBmXHViYjExXHViYjE4XHViYjFjXHViYjIwXHViYjI5XHViYjJiXHViYjM0XHViYjM1XHViYjM2XHVi''@;'; + put 'put ''YjM4XHViYjNiXHViYjNjXHViYjNkXHViYjNlXHViYjQ0XHViYjQ1XHViYjQ3XHViYjQ5XHViYjRkXHViYjRmXHViYjUwXHViYjU0XHViYjU4XHViYjYxXHViYjYzXHViYjZjXHViYjg4XHViYjhjXHViYjkwXHViYmE0XHViYmE4XHViYmFjXHViYmI0XHViYmI3XHViYmMwXHViYmM0XHViYmM4''@;'; + put 'put ''XHViYmQwXHViYmQzXHViYmY4XHViYmY5XHViYmZjXHViYmZmXHViYzAwXHViYzAyXHViYzA4XHViYzA5XHViYzBiXHViYzBjXHViYzBkXHViYzBmXHViYzExXHViYzE0Iiw0LCJcdWJjMWIiLDQsIlx1YmMyNFx1YmMyNVx1YmMyN1x1YmMyOVx1YmMyZFx1YmMzMFx1YmMzMVx1YmMzNFx1YmMz''@;'; + put 'put ''OFx1YmM0MFx1YmM0MVx1YmM0M1x1YmM0NFx1YmM0NVx1YmM0OVx1YmM0Y1x1YmM0ZFx1YmM1MFx1YmM1ZFx1YmM4NFx1YmM4NVx1YmM4OFx1YmM4Ylx1YmM4Y1x1YmM4ZVx1YmM5NFx1YmM5NVx1YmM5NyJdLFsiYmE0MSIsIlx1ZDI4ZFx1ZDI4ZVx1ZDI4Zlx1ZDI5Mlx1ZDI5M1x1ZDI5NFx1''@;'; + put 'put ''ZDI5NiIsNSwiXHVkMjlkXHVkMjllXHVkMjlmXHVkMmExXHVkMmEyXHVkMmEzXHVkMmE1Iiw2LCJcdWQyYWQiXSxbImJhNjEiLCJcdWQyYWVcdWQyYWZcdWQyYjBcdWQyYjIiLDUsIlx1ZDJiYVx1ZDJiYlx1ZDJiZFx1ZDJiZVx1ZDJjMVx1ZDJjMyIsNCwiXHVkMmNhXHVkMmNjIiw1XSxbImJh''@;'; + put 'put ''ODEiLCJcdWQyZDJcdWQyZDNcdWQyZDVcdWQyZDZcdWQyZDdcdWQyZDlcdWQyZGFcdWQyZGJcdWQyZGQiLDYsIlx1ZDJlNiIsOSwiXHVkMmYyXHVkMmYzXHVkMmY1XHVkMmY2XHVkMmY3XHVkMmY5XHVkMmZhXHViYzk5XHViYzlhXHViY2EwXHViY2ExXHViY2E0XHViY2E3XHViY2E4XHViY2Iw''@;'; + put 'put ''XHViY2IxXHViY2IzXHViY2I0XHViY2I1XHViY2JjXHViY2JkXHViY2MwXHViY2M0XHViY2NkXHViY2NmXHViY2QwXHViY2QxXHViY2Q1XHViY2Q4XHViY2RjXHViY2Y0XHViY2Y1XHViY2Y2XHViY2Y4XHViY2ZjXHViZDA0XHViZDA1XHViZDA3XHViZDA5XHViZDEwXHViZDE0XHViZDI0XHVi''@;'; + put 'put ''ZDJjXHViZDQwXHViZDQ4XHViZDQ5XHViZDRjXHViZDUwXHViZDU4XHViZDU5XHViZDY0XHViZDY4XHViZDgwXHViZDgxXHViZDg0XHViZDg3XHViZDg4XHViZDg5XHViZDhhXHViZDkwXHViZDkxXHViZDkzXHViZDk1XHViZDk5XHViZDlhXHViZDljXHViZGE0XHViZGIwXHViZGI4XHViZGQ0''@;'; + put 'put ''XHViZGQ1XHViZGQ4XHViZGRjXHViZGU5XHViZGYwXHViZGY0XHViZGY4XHViZTAwXHViZTAzXHViZTA1XHViZTBjXHViZTBkXHViZTEwXHViZTE0XHViZTFjXHViZTFkXHViZTFmXHViZTQ0XHViZTQ1XHViZTQ4XHViZTRjXHViZTRlXHViZTU0XHViZTU1XHViZTU3XHViZTU5XHViZTVhXHVi''@;'; + put 'put ''ZTViXHViZTYwXHViZTYxXHViZTY0Il0sWyJiYjQxIiwiXHVkMmZiIiw0LCJcdWQzMDJcdWQzMDRcdWQzMDYiLDUsIlx1ZDMwZlx1ZDMxMVx1ZDMxMlx1ZDMxM1x1ZDMxNVx1ZDMxNyIsNCwiXHVkMzFlXHVkMzIyXHVkMzIzIl0sWyJiYjYxIiwiXHVkMzI0XHVkMzI2XHVkMzI3XHVkMzJhXHVk''@;'; + put 'put ''MzJiXHVkMzJkXHVkMzJlXHVkMzJmXHVkMzMxIiw2LCJcdWQzM2FcdWQzM2UiLDUsIlx1ZDM0Nlx1ZDM0N1x1ZDM0OFx1ZDM0OSJdLFsiYmI4MSIsIlx1ZDM0YSIsMzEsIlx1YmU2OFx1YmU2YVx1YmU3MFx1YmU3MVx1YmU3M1x1YmU3NFx1YmU3NVx1YmU3Ylx1YmU3Y1x1YmU3ZFx1YmU4MFx1''@;'; + put 'put ''YmU4NFx1YmU4Y1x1YmU4ZFx1YmU4Zlx1YmU5MFx1YmU5MVx1YmU5OFx1YmU5OVx1YmVhOFx1YmVkMFx1YmVkMVx1YmVkNFx1YmVkN1x1YmVkOFx1YmVlMFx1YmVlM1x1YmVlNFx1YmVlNVx1YmVlY1x1YmYwMVx1YmYwOFx1YmYwOVx1YmYxOFx1YmYxOVx1YmYxYlx1YmYxY1x1YmYxZFx1YmY0''@;'; + put 'put ''MFx1YmY0MVx1YmY0NFx1YmY0OFx1YmY1MFx1YmY1MVx1YmY1NVx1YmY5NFx1YmZiMFx1YmZjNVx1YmZjY1x1YmZjZFx1YmZkMFx1YmZkNFx1YmZkY1x1YmZkZlx1YmZlMVx1YzAzY1x1YzA1MVx1YzA1OFx1YzA1Y1x1YzA2MFx1YzA2OFx1YzA2OVx1YzA5MFx1YzA5MVx1YzA5NFx1YzA5OFx1''@;'; + put 'put ''YzBhMFx1YzBhMVx1YzBhM1x1YzBhNVx1YzBhY1x1YzBhZFx1YzBhZlx1YzBiMFx1YzBiM1x1YzBiNFx1YzBiNVx1YzBiNlx1YzBiY1x1YzBiZFx1YzBiZlx1YzBjMFx1YzBjMVx1YzBjNVx1YzBjOFx1YzBjOVx1YzBjY1x1YzBkMFx1YzBkOFx1YzBkOVx1YzBkYlx1YzBkY1x1YzBkZFx1YzBl''@;'; + put 'put ''NCJdLFsiYmM0MSIsIlx1ZDM2YSIsMTcsIlx1ZDM3ZVx1ZDM3Zlx1ZDM4MVx1ZDM4Mlx1ZDM4M1x1ZDM4NVx1ZDM4Nlx1ZDM4NyJdLFsiYmM2MSIsIlx1ZDM4OFx1ZDM4OVx1ZDM4YVx1ZDM4Ylx1ZDM4ZVx1ZDM5MiIsNSwiXHVkMzlhXHVkMzliXHVkMzlkXHVkMzllXHVkMzlmXHVkM2ExIiw2''@;'; + put 'put ''LCJcdWQzYWFcdWQzYWNcdWQzYWUiXSxbImJjODEiLCJcdWQzYWYiLDQsIlx1ZDNiNVx1ZDNiNlx1ZDNiN1x1ZDNiOVx1ZDNiYVx1ZDNiYlx1ZDNiZCIsNiwiXHVkM2M2XHVkM2M3XHVkM2NhIiw1LCJcdWQzZDEiLDUsIlx1YzBlNVx1YzBlOFx1YzBlY1x1YzBmNFx1YzBmNVx1YzBmN1x1YzBm''@;'; + put 'put ''OVx1YzEwMFx1YzEwNFx1YzEwOFx1YzExMFx1YzExNVx1YzExYyIsNCwiXHVjMTIzXHVjMTI0XHVjMTI2XHVjMTI3XHVjMTJjXHVjMTJkXHVjMTJmXHVjMTMwXHVjMTMxXHVjMTM2XHVjMTM4XHVjMTM5XHVjMTNjXHVjMTQwXHVjMTQ4XHVjMTQ5XHVjMTRiXHVjMTRjXHVjMTRkXHVjMTU0XHVj''@;'; + put 'put ''MTU1XHVjMTU4XHVjMTVjXHVjMTY0XHVjMTY1XHVjMTY3XHVjMTY4XHVjMTY5XHVjMTcwXHVjMTc0XHVjMTc4XHVjMTg1XHVjMThjXHVjMThkXHVjMThlXHVjMTkwXHVjMTk0XHVjMTk2XHVjMTljXHVjMTlkXHVjMTlmXHVjMWExXHVjMWE1XHVjMWE4XHVjMWE5XHVjMWFjXHVjMWIwXHVjMWJk''@;'; + put 'put ''XHVjMWM0XHVjMWM4XHVjMWNjXHVjMWQ0XHVjMWQ3XHVjMWQ4XHVjMWUwXHVjMWU0XHVjMWU4XHVjMWYwXHVjMWYxXHVjMWYzXHVjMWZjXHVjMWZkXHVjMjAwXHVjMjA0XHVjMjBjXHVjMjBkXHVjMjBmXHVjMjExXHVjMjE4XHVjMjE5XHVjMjFjXHVjMjFmXHVjMjIwXHVjMjI4XHVjMjI5XHVj''@;'; + put 'put ''MjJiXHVjMjJkIl0sWyJiZDQxIiwiXHVkM2Q3XHVkM2Q5Iiw3LCJcdWQzZTJcdWQzZTQiLDcsIlx1ZDNlZVx1ZDNlZlx1ZDNmMVx1ZDNmMlx1ZDNmM1x1ZDNmNVx1ZDNmNlx1ZDNmNyJdLFsiYmQ2MSIsIlx1ZDNmOFx1ZDNmOVx1ZDNmYVx1ZDNmYlx1ZDNmZVx1ZDQwMFx1ZDQwMiIsNSwiXHVk''@;'; + put 'put ''NDA5IiwxM10sWyJiZDgxIiwiXHVkNDE3Iiw1LCJcdWQ0MWUiLDI1LCJcdWMyMmZcdWMyMzFcdWMyMzJcdWMyMzRcdWMyNDhcdWMyNTBcdWMyNTFcdWMyNTRcdWMyNThcdWMyNjBcdWMyNjVcdWMyNmNcdWMyNmRcdWMyNzBcdWMyNzRcdWMyN2NcdWMyN2RcdWMyN2ZcdWMyODFcdWMyODhcdWMy''@;'; + put 'put ''ODlcdWMyOTBcdWMyOThcdWMyOWJcdWMyOWRcdWMyYTRcdWMyYTVcdWMyYThcdWMyYWNcdWMyYWRcdWMyYjRcdWMyYjVcdWMyYjdcdWMyYjlcdWMyZGNcdWMyZGRcdWMyZTBcdWMyZTNcdWMyZTRcdWMyZWJcdWMyZWNcdWMyZWRcdWMyZWZcdWMyZjFcdWMyZjZcdWMyZjhcdWMyZjlcdWMyZmJc''@;'; + put 'put ''dWMyZmNcdWMzMDBcdWMzMDhcdWMzMDlcdWMzMGNcdWMzMGRcdWMzMTNcdWMzMTRcdWMzMTVcdWMzMThcdWMzMWNcdWMzMjRcdWMzMjVcdWMzMjhcdWMzMjlcdWMzNDVcdWMzNjhcdWMzNjlcdWMzNmNcdWMzNzBcdWMzNzJcdWMzNzhcdWMzNzlcdWMzN2NcdWMzN2RcdWMzODRcdWMzODhcdWMz''@;'; + put 'put ''OGNcdWMzYzBcdWMzZDhcdWMzZDlcdWMzZGNcdWMzZGZcdWMzZTBcdWMzZTJcdWMzZThcdWMzZTlcdWMzZWRcdWMzZjRcdWMzZjVcdWMzZjhcdWM0MDhcdWM0MTBcdWM0MjRcdWM0MmNcdWM0MzAiXSxbImJlNDEiLCJcdWQ0MzgiLDcsIlx1ZDQ0MVx1ZDQ0Mlx1ZDQ0M1x1ZDQ0NSIsMTRdLFsi''@;'; + put 'put ''YmU2MSIsIlx1ZDQ1NCIsNywiXHVkNDVkXHVkNDVlXHVkNDVmXHVkNDYxXHVkNDYyXHVkNDYzXHVkNDY1Iiw3LCJcdWQ0NmVcdWQ0NzBcdWQ0NzFcdWQ0NzIiXSxbImJlODEiLCJcdWQ0NzMiLDQsIlx1ZDQ3YVx1ZDQ3Ylx1ZDQ3ZFx1ZDQ3ZVx1ZDQ4MVx1ZDQ4MyIsNCwiXHVkNDhhXHVkNDhj''@;'; + put 'put ''XHVkNDhlIiw1LCJcdWQ0OTUiLDgsIlx1YzQzNFx1YzQzY1x1YzQzZFx1YzQ0OFx1YzQ2NFx1YzQ2NVx1YzQ2OFx1YzQ2Y1x1YzQ3NFx1YzQ3NVx1YzQ3OVx1YzQ4MFx1YzQ5NFx1YzQ5Y1x1YzRiOFx1YzRiY1x1YzRlOVx1YzRmMFx1YzRmMVx1YzRmNFx1YzRmOFx1YzRmYVx1YzRmZlx1YzUw''@;'; + put 'put ''MFx1YzUwMVx1YzUwY1x1YzUxMFx1YzUxNFx1YzUxY1x1YzUyOFx1YzUyOVx1YzUyY1x1YzUzMFx1YzUzOFx1YzUzOVx1YzUzYlx1YzUzZFx1YzU0NFx1YzU0NVx1YzU0OFx1YzU0OVx1YzU0YVx1YzU0Y1x1YzU0ZFx1YzU0ZVx1YzU1M1x1YzU1NFx1YzU1NVx1YzU1N1x1YzU1OFx1YzU1OVx1''@;'; + put 'put ''YzU1ZFx1YzU1ZVx1YzU2MFx1YzU2MVx1YzU2NFx1YzU2OFx1YzU3MFx1YzU3MVx1YzU3M1x1YzU3NFx1YzU3NVx1YzU3Y1x1YzU3ZFx1YzU4MFx1YzU4NFx1YzU4N1x1YzU4Y1x1YzU4ZFx1YzU4Zlx1YzU5MVx1YzU5NVx1YzU5N1x1YzU5OFx1YzU5Y1x1YzVhMFx1YzVhOVx1YzViNFx1YzVi''@;'; + put 'put ''NVx1YzViOFx1YzViOVx1YzViYlx1YzViY1x1YzViZFx1YzViZVx1YzVjNCIsNiwiXHVjNWNjXHVjNWNlIl0sWyJiZjQxIiwiXHVkNDllIiwxMCwiXHVkNGFhIiwxNF0sWyJiZjYxIiwiXHVkNGI5IiwxOCwiXHVkNGNkXHVkNGNlXHVkNGNmXHVkNGQxXHVkNGQyXHVkNGQzXHVkNGQ1Il0sWyJi''@;'; + put 'put ''ZjgxIiwiXHVkNGQ2Iiw1LCJcdWQ0ZGRcdWQ0ZGVcdWQ0ZTAiLDcsIlx1ZDRlOVx1ZDRlYVx1ZDRlYlx1ZDRlZFx1ZDRlZVx1ZDRlZlx1ZDRmMSIsNiwiXHVkNGY5XHVkNGZhXHVkNGZjXHVjNWQwXHVjNWQxXHVjNWQ0XHVjNWQ4XHVjNWUwXHVjNWUxXHVjNWUzXHVjNWU1XHVjNWVjXHVjNWVk''@;'; + put 'put ''XHVjNWVlXHVjNWYwXHVjNWY0XHVjNWY2XHVjNWY3XHVjNWZjIiw1LCJcdWM2MDVcdWM2MDZcdWM2MDdcdWM2MDhcdWM2MGNcdWM2MTBcdWM2MThcdWM2MTlcdWM2MWJcdWM2MWNcdWM2MjRcdWM2MjVcdWM2MjhcdWM2MmNcdWM2MmRcdWM2MmVcdWM2MzBcdWM2MzNcdWM2MzRcdWM2MzVcdWM2''@;'; + put 'put ''MzdcdWM2MzlcdWM2M2JcdWM2NDBcdWM2NDFcdWM2NDRcdWM2NDhcdWM2NTBcdWM2NTFcdWM2NTNcdWM2NTRcdWM2NTVcdWM2NWNcdWM2NWRcdWM2NjBcdWM2NmNcdWM2NmZcdWM2NzFcdWM2NzhcdWM2NzlcdWM2N2NcdWM2ODBcdWM2ODhcdWM2ODlcdWM2OGJcdWM2OGRcdWM2OTRcdWM2OTVc''@;'; + put 'put ''dWM2OThcdWM2OWNcdWM2YTRcdWM2YTVcdWM2YTdcdWM2YTlcdWM2YjBcdWM2YjFcdWM2YjRcdWM2YjhcdWM2YjlcdWM2YmFcdWM2YzBcdWM2YzFcdWM2YzNcdWM2YzVcdWM2Y2NcdWM2Y2RcdWM2ZDBcdWM2ZDRcdWM2ZGNcdWM2ZGRcdWM2ZTBcdWM2ZTFcdWM2ZTgiXSxbImMwNDEiLCJcdWQ0''@;'; + put 'put ''ZmUiLDUsIlx1ZDUwNVx1ZDUwNlx1ZDUwN1x1ZDUwOVx1ZDUwYVx1ZDUwYlx1ZDUwZCIsNiwiXHVkNTE2XHVkNTE4Iiw1XSxbImMwNjEiLCJcdWQ1MWUiLDI1XSxbImMwODEiLCJcdWQ1MzhcdWQ1MzlcdWQ1M2FcdWQ1M2JcdWQ1M2VcdWQ1M2ZcdWQ1NDFcdWQ1NDJcdWQ1NDNcdWQ1NDUiLDYs''@;'; + put 'put ''Ilx1ZDU0ZVx1ZDU1MFx1ZDU1MiIsNSwiXHVkNTVhXHVkNTViXHVkNTVkXHVkNTVlXHVkNTVmXHVkNTYxXHVkNTYyXHVkNTYzXHVjNmU5XHVjNmVjXHVjNmYwXHVjNmY4XHVjNmY5XHVjNmZkXHVjNzA0XHVjNzA1XHVjNzA4XHVjNzBjXHVjNzE0XHVjNzE1XHVjNzE3XHVjNzE5XHVjNzIwXHVj''@;'; + put 'put ''NzIxXHVjNzI0XHVjNzI4XHVjNzMwXHVjNzMxXHVjNzMzXHVjNzM1XHVjNzM3XHVjNzNjXHVjNzNkXHVjNzQwXHVjNzQ0XHVjNzRhXHVjNzRjXHVjNzRkXHVjNzRmXHVjNzUxIiw3LCJcdWM3NWNcdWM3NjBcdWM3NjhcdWM3NmJcdWM3NzRcdWM3NzVcdWM3NzhcdWM3N2NcdWM3N2RcdWM3N2Vc''@;'; + put 'put ''dWM3ODNcdWM3ODRcdWM3ODVcdWM3ODdcdWM3ODhcdWM3ODlcdWM3OGFcdWM3OGVcdWM3OTBcdWM3OTFcdWM3OTRcdWM3OTZcdWM3OTdcdWM3OThcdWM3OWFcdWM3YTBcdWM3YTFcdWM3YTNcdWM3YTRcdWM3YTVcdWM3YTZcdWM3YWNcdWM3YWRcdWM3YjBcdWM3YjRcdWM3YmNcdWM3YmRcdWM3''@;'; + put 'put ''YmZcdWM3YzBcdWM3YzFcdWM3YzhcdWM3YzlcdWM3Y2NcdWM3Y2VcdWM3ZDBcdWM3ZDhcdWM3ZGRcdWM3ZTRcdWM3ZThcdWM3ZWNcdWM4MDBcdWM4MDFcdWM4MDRcdWM4MDhcdWM4MGEiXSxbImMxNDEiLCJcdWQ1NjRcdWQ1NjZcdWQ1NjdcdWQ1NmFcdWQ1NmNcdWQ1NmUiLDUsIlx1ZDU3Nlx1''@;'; + put 'put ''ZDU3N1x1ZDU3OVx1ZDU3YVx1ZDU3Ylx1ZDU3ZCIsNiwiXHVkNTg2XHVkNThhXHVkNThiIl0sWyJjMTYxIiwiXHVkNThjXHVkNThkXHVkNThlXHVkNThmXHVkNTkxIiwxOSwiXHVkNWE2XHVkNWE3Il0sWyJjMTgxIiwiXHVkNWE4IiwzMSwiXHVjODEwXHVjODExXHVjODEzXHVjODE1XHVjODE2''@;'; + put 'put ''XHVjODFjXHVjODFkXHVjODIwXHVjODI0XHVjODJjXHVjODJkXHVjODJmXHVjODMxXHVjODM4XHVjODNjXHVjODQwXHVjODQ4XHVjODQ5XHVjODRjXHVjODRkXHVjODU0XHVjODcwXHVjODcxXHVjODc0XHVjODc4XHVjODdhXHVjODgwXHVjODgxXHVjODgzXHVjODg1XHVjODg2XHVjODg3XHVj''@;'; + put 'put ''ODhiXHVjODhjXHVjODhkXHVjODk0XHVjODlkXHVjODlmXHVjOGExXHVjOGE4XHVjOGJjXHVjOGJkXHVjOGM0XHVjOGM4XHVjOGNjXHVjOGQ0XHVjOGQ1XHVjOGQ3XHVjOGQ5XHVjOGUwXHVjOGUxXHVjOGU0XHVjOGY1XHVjOGZjXHVjOGZkXHVjOTAwXHVjOTA0XHVjOTA1XHVjOTA2XHVjOTBj''@;'; + put 'put ''XHVjOTBkXHVjOTBmXHVjOTExXHVjOTE4XHVjOTJjXHVjOTM0XHVjOTUwXHVjOTUxXHVjOTU0XHVjOTU4XHVjOTYwXHVjOTYxXHVjOTYzXHVjOTZjXHVjOTcwXHVjOTc0XHVjOTdjXHVjOTg4XHVjOTg5XHVjOThjXHVjOTkwXHVjOTk4XHVjOTk5XHVjOTliXHVjOTlkXHVjOWMwXHVjOWMxXHVj''@;'; + put 'put ''OWM0XHVjOWM3XHVjOWM4XHVjOWNhXHVjOWQwXHVjOWQxXHVjOWQzIl0sWyJjMjQxIiwiXHVkNWNhXHVkNWNiXHVkNWNkXHVkNWNlXHVkNWNmXHVkNWQxXHVkNWQzIiw0LCJcdWQ1ZGFcdWQ1ZGNcdWQ1ZGUiLDUsIlx1ZDVlNlx1ZDVlN1x1ZDVlOVx1ZDVlYVx1ZDVlYlx1ZDVlZFx1ZDVlZSJd''@;'; + put 'put ''LFsiYzI2MSIsIlx1ZDVlZiIsNCwiXHVkNWY2XHVkNWY4XHVkNWZhIiw1LCJcdWQ2MDJcdWQ2MDNcdWQ2MDVcdWQ2MDZcdWQ2MDdcdWQ2MDkiLDYsIlx1ZDYxMiJdLFsiYzI4MSIsIlx1ZDYxNiIsNSwiXHVkNjFkXHVkNjFlXHVkNjFmXHVkNjIxXHVkNjIyXHVkNjIzXHVkNjI1Iiw3LCJcdWQ2''@;'; + put 'put ''MmUiLDksIlx1ZDYzYVx1ZDYzYlx1YzlkNVx1YzlkNlx1YzlkOVx1YzlkYVx1YzlkY1x1YzlkZFx1YzllMFx1YzllMlx1YzllNFx1YzllN1x1YzllY1x1YzllZFx1YzllZlx1YzlmMFx1YzlmMVx1YzlmOFx1YzlmOVx1YzlmY1x1Y2EwMFx1Y2EwOFx1Y2EwOVx1Y2EwYlx1Y2EwY1x1Y2EwZFx1''@;'; + put 'put ''Y2ExNFx1Y2ExOFx1Y2EyOVx1Y2E0Y1x1Y2E0ZFx1Y2E1MFx1Y2E1NFx1Y2E1Y1x1Y2E1ZFx1Y2E1Zlx1Y2E2MFx1Y2E2MVx1Y2E2OFx1Y2E3ZFx1Y2E4NFx1Y2E5OFx1Y2FiY1x1Y2FiZFx1Y2FjMFx1Y2FjNFx1Y2FjY1x1Y2FjZFx1Y2FjZlx1Y2FkMVx1Y2FkM1x1Y2FkOFx1Y2FkOVx1Y2Fl''@;'; + put 'put ''MFx1Y2FlY1x1Y2FmNFx1Y2IwOFx1Y2IxMFx1Y2IxNFx1Y2IxOFx1Y2IyMFx1Y2IyMVx1Y2I0MVx1Y2I0OFx1Y2I0OVx1Y2I0Y1x1Y2I1MFx1Y2I1OFx1Y2I1OVx1Y2I1ZFx1Y2I2NFx1Y2I3OFx1Y2I3OVx1Y2I5Y1x1Y2JiOFx1Y2JkNFx1Y2JlNFx1Y2JlN1x1Y2JlOVx1Y2MwY1x1Y2MwZFx1''@;'; + put 'put ''Y2MxMFx1Y2MxNFx1Y2MxY1x1Y2MxZFx1Y2MyMVx1Y2MyMlx1Y2MyN1x1Y2MyOFx1Y2MyOVx1Y2MyY1x1Y2MyZVx1Y2MzMFx1Y2MzOFx1Y2MzOVx1Y2MzYiJdLFsiYzM0MSIsIlx1ZDYzZFx1ZDYzZVx1ZDYzZlx1ZDY0MVx1ZDY0Mlx1ZDY0M1x1ZDY0NFx1ZDY0Nlx1ZDY0N1x1ZDY0YVx1ZDY0''@;'; + put 'put ''Y1x1ZDY0ZVx1ZDY0Zlx1ZDY1MFx1ZDY1Mlx1ZDY1M1x1ZDY1Nlx1ZDY1N1x1ZDY1OVx1ZDY1YVx1ZDY1Ylx1ZDY1ZCIsNF0sWyJjMzYxIiwiXHVkNjYyIiw0LCJcdWQ2NjhcdWQ2NmEiLDUsIlx1ZDY3Mlx1ZDY3M1x1ZDY3NSIsMTFdLFsiYzM4MSIsIlx1ZDY4MVx1ZDY4Mlx1ZDY4NFx1ZDY4''@;'; + put 'put ''NiIsNSwiXHVkNjhlXHVkNjhmXHVkNjkxXHVkNjkyXHVkNjkzXHVkNjk1Iiw3LCJcdWQ2OWVcdWQ2YTBcdWQ2YTIiLDUsIlx1ZDZhOVx1ZDZhYVx1Y2MzY1x1Y2MzZFx1Y2MzZVx1Y2M0NFx1Y2M0NVx1Y2M0OFx1Y2M0Y1x1Y2M1NFx1Y2M1NVx1Y2M1N1x1Y2M1OFx1Y2M1OVx1Y2M2MFx1Y2M2''@;'; + put 'put ''NFx1Y2M2Nlx1Y2M2OFx1Y2M3MFx1Y2M3NVx1Y2M5OFx1Y2M5OVx1Y2M5Y1x1Y2NhMFx1Y2NhOFx1Y2NhOVx1Y2NhYlx1Y2NhY1x1Y2NhZFx1Y2NiNFx1Y2NiNVx1Y2NiOFx1Y2NiY1x1Y2NjNFx1Y2NjNVx1Y2NjN1x1Y2NjOVx1Y2NkMFx1Y2NkNFx1Y2NlNFx1Y2NlY1x1Y2NmMFx1Y2QwMVx1''@;'; + put 'put ''Y2QwOFx1Y2QwOVx1Y2QwY1x1Y2QxMFx1Y2QxOFx1Y2QxOVx1Y2QxYlx1Y2QxZFx1Y2QyNFx1Y2QyOFx1Y2QyY1x1Y2QzOVx1Y2Q1Y1x1Y2Q2MFx1Y2Q2NFx1Y2Q2Y1x1Y2Q2ZFx1Y2Q2Zlx1Y2Q3MVx1Y2Q3OFx1Y2Q4OFx1Y2Q5NFx1Y2Q5NVx1Y2Q5OFx1Y2Q5Y1x1Y2RhNFx1Y2RhNVx1Y2Rh''@;'; + put 'put ''N1x1Y2RhOVx1Y2RiMFx1Y2RjNFx1Y2RjY1x1Y2RkMFx1Y2RlOFx1Y2RlY1x1Y2RmMFx1Y2RmOFx1Y2RmOVx1Y2RmYlx1Y2RmZFx1Y2UwNFx1Y2UwOFx1Y2UwY1x1Y2UxNFx1Y2UxOVx1Y2UyMFx1Y2UyMVx1Y2UyNFx1Y2UyOFx1Y2UzMFx1Y2UzMVx1Y2UzM1x1Y2UzNSJdLFsiYzQ0MSIsIlx1''@;'; + put 'put ''ZDZhYlx1ZDZhZFx1ZDZhZVx1ZDZhZlx1ZDZiMSIsNywiXHVkNmJhXHVkNmJjIiw3LCJcdWQ2YzZcdWQ2YzdcdWQ2YzlcdWQ2Y2FcdWQ2Y2IiXSxbImM0NjEiLCJcdWQ2Y2RcdWQ2Y2VcdWQ2Y2ZcdWQ2ZDBcdWQ2ZDJcdWQ2ZDNcdWQ2ZDVcdWQ2ZDZcdWQ2ZDhcdWQ2ZGEiLDUsIlx1ZDZlMVx1''@;'; + put 'put ''ZDZlMlx1ZDZlM1x1ZDZlNVx1ZDZlNlx1ZDZlN1x1ZDZlOSIsNF0sWyJjNDgxIiwiXHVkNmVlXHVkNmVmXHVkNmYxXHVkNmYyXHVkNmYzXHVkNmY0XHVkNmY2Iiw1LCJcdWQ2ZmVcdWQ2ZmZcdWQ3MDFcdWQ3MDJcdWQ3MDNcdWQ3MDUiLDExLCJcdWQ3MTJcdWQ3MTNcdWQ3MTRcdWNlNThcdWNl''@;'; + put 'put ''NTlcdWNlNWNcdWNlNWZcdWNlNjBcdWNlNjFcdWNlNjhcdWNlNjlcdWNlNmJcdWNlNmRcdWNlNzRcdWNlNzVcdWNlNzhcdWNlN2NcdWNlODRcdWNlODVcdWNlODdcdWNlODlcdWNlOTBcdWNlOTFcdWNlOTRcdWNlOThcdWNlYTBcdWNlYTFcdWNlYTNcdWNlYTRcdWNlYTVcdWNlYWNcdWNlYWRc''@;'; + put 'put ''dWNlYzFcdWNlZTRcdWNlZTVcdWNlZThcdWNlZWJcdWNlZWNcdWNlZjRcdWNlZjVcdWNlZjdcdWNlZjhcdWNlZjlcdWNmMDBcdWNmMDFcdWNmMDRcdWNmMDhcdWNmMTBcdWNmMTFcdWNmMTNcdWNmMTVcdWNmMWNcdWNmMjBcdWNmMjRcdWNmMmNcdWNmMmRcdWNmMmZcdWNmMzBcdWNmMzFcdWNm''@;'; + put 'put ''MzhcdWNmNTRcdWNmNTVcdWNmNThcdWNmNWNcdWNmNjRcdWNmNjVcdWNmNjdcdWNmNjlcdWNmNzBcdWNmNzFcdWNmNzRcdWNmNzhcdWNmODBcdWNmODVcdWNmOGNcdWNmYTFcdWNmYThcdWNmYjBcdWNmYzRcdWNmZTBcdWNmZTFcdWNmZTRcdWNmZThcdWNmZjBcdWNmZjFcdWNmZjNcdWNmZjVc''@;'; + put 'put ''dWNmZmNcdWQwMDBcdWQwMDRcdWQwMTFcdWQwMThcdWQwMmRcdWQwMzRcdWQwMzVcdWQwMzhcdWQwM2MiXSxbImM1NDEiLCJcdWQ3MTVcdWQ3MTZcdWQ3MTdcdWQ3MWFcdWQ3MWJcdWQ3MWRcdWQ3MWVcdWQ3MWZcdWQ3MjEiLDYsIlx1ZDcyYVx1ZDcyY1x1ZDcyZSIsNSwiXHVkNzM2XHVkNzM3''@;'; + put 'put ''XHVkNzM5Il0sWyJjNTYxIiwiXHVkNzNhXHVkNzNiXHVkNzNkIiw2LCJcdWQ3NDVcdWQ3NDZcdWQ3NDhcdWQ3NGEiLDUsIlx1ZDc1Mlx1ZDc1M1x1ZDc1NVx1ZDc1YSIsNF0sWyJjNTgxIiwiXHVkNzVmXHVkNzYyXHVkNzY0XHVkNzY2XHVkNzY3XHVkNzY4XHVkNzZhXHVkNzZiXHVkNzZkXHVk''@;'; + put 'put ''NzZlXHVkNzZmXHVkNzcxXHVkNzcyXHVkNzczXHVkNzc1Iiw2LCJcdWQ3N2VcdWQ3N2ZcdWQ3ODBcdWQ3ODIiLDUsIlx1ZDc4YVx1ZDc4Ylx1ZDA0NFx1ZDA0NVx1ZDA0N1x1ZDA0OVx1ZDA1MFx1ZDA1NFx1ZDA1OFx1ZDA2MFx1ZDA2Y1x1ZDA2ZFx1ZDA3MFx1ZDA3NFx1ZDA3Y1x1ZDA3ZFx1''@;'; + put 'put ''ZDA4MVx1ZDBhNFx1ZDBhNVx1ZDBhOFx1ZDBhY1x1ZDBiNFx1ZDBiNVx1ZDBiN1x1ZDBiOVx1ZDBjMFx1ZDBjMVx1ZDBjNFx1ZDBjOFx1ZDBjOVx1ZDBkMFx1ZDBkMVx1ZDBkM1x1ZDBkNFx1ZDBkNVx1ZDBkY1x1ZDBkZFx1ZDBlMFx1ZDBlNFx1ZDBlY1x1ZDBlZFx1ZDBlZlx1ZDBmMFx1ZDBm''@;'; + put 'put ''MVx1ZDBmOFx1ZDEwZFx1ZDEzMFx1ZDEzMVx1ZDEzNFx1ZDEzOFx1ZDEzYVx1ZDE0MFx1ZDE0MVx1ZDE0M1x1ZDE0NFx1ZDE0NVx1ZDE0Y1x1ZDE0ZFx1ZDE1MFx1ZDE1NFx1ZDE1Y1x1ZDE1ZFx1ZDE1Zlx1ZDE2MVx1ZDE2OFx1ZDE2Y1x1ZDE3Y1x1ZDE4NFx1ZDE4OFx1ZDFhMFx1ZDFhMVx1''@;'; + put 'put ''ZDFhNFx1ZDFhOFx1ZDFiMFx1ZDFiMVx1ZDFiM1x1ZDFiNVx1ZDFiYVx1ZDFiY1x1ZDFjMFx1ZDFkOFx1ZDFmNFx1ZDFmOFx1ZDIwN1x1ZDIwOVx1ZDIxMFx1ZDIyY1x1ZDIyZFx1ZDIzMFx1ZDIzNFx1ZDIzY1x1ZDIzZFx1ZDIzZlx1ZDI0MVx1ZDI0OFx1ZDI1YyJdLFsiYzY0MSIsIlx1ZDc4''@;'; + put 'put ''ZFx1ZDc4ZVx1ZDc4Zlx1ZDc5MSIsNiwiXHVkNzlhXHVkNzljXHVkNzllIiw1XSxbImM2YTEiLCJcdWQyNjRcdWQyODBcdWQyODFcdWQyODRcdWQyODhcdWQyOTBcdWQyOTFcdWQyOTVcdWQyOWNcdWQyYTBcdWQyYTRcdWQyYWNcdWQyYjFcdWQyYjhcdWQyYjlcdWQyYmNcdWQyYmZcdWQyYzBc''@;'; + put 'put ''dWQyYzJcdWQyYzhcdWQyYzlcdWQyY2JcdWQyZDRcdWQyZDhcdWQyZGNcdWQyZTRcdWQyZTVcdWQyZjBcdWQyZjFcdWQyZjRcdWQyZjhcdWQzMDBcdWQzMDFcdWQzMDNcdWQzMDVcdWQzMGNcdWQzMGRcdWQzMGVcdWQzMTBcdWQzMTRcdWQzMTZcdWQzMWNcdWQzMWRcdWQzMWZcdWQzMjBcdWQz''@;'; + put 'put ''MjFcdWQzMjVcdWQzMjhcdWQzMjlcdWQzMmNcdWQzMzBcdWQzMzhcdWQzMzlcdWQzM2JcdWQzM2NcdWQzM2RcdWQzNDRcdWQzNDVcdWQzN2NcdWQzN2RcdWQzODBcdWQzODRcdWQzOGNcdWQzOGRcdWQzOGZcdWQzOTBcdWQzOTFcdWQzOThcdWQzOTlcdWQzOWNcdWQzYTBcdWQzYThcdWQzYTlc''@;'; + put 'put ''dWQzYWJcdWQzYWRcdWQzYjRcdWQzYjhcdWQzYmNcdWQzYzRcdWQzYzVcdWQzYzhcdWQzYzlcdWQzZDBcdWQzZDhcdWQzZTFcdWQzZTNcdWQzZWNcdWQzZWRcdWQzZjBcdWQzZjRcdWQzZmNcdWQzZmRcdWQzZmZcdWQ0MDEiXSxbImM3YTEiLCJcdWQ0MDhcdWQ0MWRcdWQ0NDBcdWQ0NDRcdWQ0''@;'; + put 'put ''NWNcdWQ0NjBcdWQ0NjRcdWQ0NmRcdWQ0NmZcdWQ0NzhcdWQ0NzlcdWQ0N2NcdWQ0N2ZcdWQ0ODBcdWQ0ODJcdWQ0ODhcdWQ0ODlcdWQ0OGJcdWQ0OGRcdWQ0OTRcdWQ0YTlcdWQ0Y2NcdWQ0ZDBcdWQ0ZDRcdWQ0ZGNcdWQ0ZGZcdWQ0ZThcdWQ0ZWNcdWQ0ZjBcdWQ0ZjhcdWQ0ZmJcdWQ0ZmRc''@;'; + put 'put ''dWQ1MDRcdWQ1MDhcdWQ1MGNcdWQ1MTRcdWQ1MTVcdWQ1MTdcdWQ1M2NcdWQ1M2RcdWQ1NDBcdWQ1NDRcdWQ1NGNcdWQ1NGRcdWQ1NGZcdWQ1NTFcdWQ1NThcdWQ1NTlcdWQ1NWNcdWQ1NjBcdWQ1NjVcdWQ1NjhcdWQ1NjlcdWQ1NmJcdWQ1NmRcdWQ1NzRcdWQ1NzVcdWQ1NzhcdWQ1N2NcdWQ1''@;'; + put 'put ''ODRcdWQ1ODVcdWQ1ODdcdWQ1ODhcdWQ1ODlcdWQ1OTBcdWQ1YTVcdWQ1YzhcdWQ1YzlcdWQ1Y2NcdWQ1ZDBcdWQ1ZDJcdWQ1ZDhcdWQ1ZDlcdWQ1ZGJcdWQ1ZGRcdWQ1ZTRcdWQ1ZTVcdWQ1ZThcdWQ1ZWNcdWQ1ZjRcdWQ1ZjVcdWQ1ZjdcdWQ1ZjlcdWQ2MDBcdWQ2MDFcdWQ2MDRcdWQ2MDhc''@;'; + put 'put ''dWQ2MTBcdWQ2MTFcdWQ2MTNcdWQ2MTRcdWQ2MTVcdWQ2MWNcdWQ2MjAiXSxbImM4YTEiLCJcdWQ2MjRcdWQ2MmRcdWQ2MzhcdWQ2MzlcdWQ2M2NcdWQ2NDBcdWQ2NDVcdWQ2NDhcdWQ2NDlcdWQ2NGJcdWQ2NGRcdWQ2NTFcdWQ2NTRcdWQ2NTVcdWQ2NThcdWQ2NWNcdWQ2NjdcdWQ2NjlcdWQ2''@;'; + put 'put ''NzBcdWQ2NzFcdWQ2NzRcdWQ2ODNcdWQ2ODVcdWQ2OGNcdWQ2OGRcdWQ2OTBcdWQ2OTRcdWQ2OWRcdWQ2OWZcdWQ2YTFcdWQ2YThcdWQ2YWNcdWQ2YjBcdWQ2YjlcdWQ2YmJcdWQ2YzRcdWQ2YzVcdWQ2YzhcdWQ2Y2NcdWQ2ZDFcdWQ2ZDRcdWQ2ZDdcdWQ2ZDlcdWQ2ZTBcdWQ2ZTRcdWQ2ZThc''@;'; + put 'put ''dWQ2ZjBcdWQ2ZjVcdWQ2ZmNcdWQ2ZmRcdWQ3MDBcdWQ3MDRcdWQ3MTFcdWQ3MThcdWQ3MTlcdWQ3MWNcdWQ3MjBcdWQ3MjhcdWQ3MjlcdWQ3MmJcdWQ3MmRcdWQ3MzRcdWQ3MzVcdWQ3MzhcdWQ3M2NcdWQ3NDRcdWQ3NDdcdWQ3NDlcdWQ3NTBcdWQ3NTFcdWQ3NTRcdWQ3NTZcdWQ3NTdcdWQ3''@;'; + put 'put ''NThcdWQ3NTlcdWQ3NjBcdWQ3NjFcdWQ3NjNcdWQ3NjVcdWQ3NjlcdWQ3NmNcdWQ3NzBcdWQ3NzRcdWQ3N2NcdWQ3N2RcdWQ3ODFcdWQ3ODhcdWQ3ODlcdWQ3OGNcdWQ3OTBcdWQ3OThcdWQ3OTlcdWQ3OWJcdWQ3OWQiXSxbImNhYTEiLCJcdTRmM2RcdTRmNzNcdTUwNDdcdTUwZjlcdTUyYTBc''@;'; + put 'put ''dTUzZWZcdTU0NzVcdTU0ZTVcdTU2MDlcdTVhYzFcdTViYjZcdTY2ODdcdTY3YjZcdTY3YjdcdTY3ZWZcdTZiNGNcdTczYzJcdTc1YzJcdTdhM2NcdTgyZGJcdTgzMDRcdTg4NTdcdTg4ODhcdThhMzZcdThjYzhcdThkY2ZcdThlZmJcdThmZTZcdTk5ZDVcdTUyM2JcdTUzNzRcdTU0MDRcdTYw''@;'; + put 'put ''NmFcdTYxNjRcdTZiYmNcdTczY2ZcdTgxMWFcdTg5YmFcdTg5ZDJcdTk1YTNcdTRmODNcdTUyMGFcdTU4YmVcdTU5NzhcdTU5ZTZcdTVlNzJcdTVlNzlcdTYxYzdcdTYzYzBcdTY3NDZcdTY3ZWNcdTY4N2ZcdTZmOTdcdTc2NGVcdTc3MGJcdTc4ZjVcdTdhMDhcdTdhZmZcdTdjMjFcdTgwOWRc''@;'; + put 'put ''dTgyNmVcdTgyNzFcdThhZWJcdTk1OTNcdTRlNmJcdTU1OWRcdTY2ZjdcdTZlMzRcdTc4YTNcdTdhZWRcdTg0NWJcdTg5MTBcdTg3NGVcdTk3YThcdTUyZDhcdTU3NGVcdTU4MmFcdTVkNGNcdTYxMWZcdTYxYmVcdTYyMjFcdTY1NjJcdTY3ZDFcdTZhNDRcdTZlMWJcdTc1MThcdTc1YjNcdTc2''@;'; + put 'put ''ZTNcdTc3YjBcdTdkM2FcdTkwYWZcdTk0NTFcdTk0NTJcdTlmOTUiXSxbImNiYTEiLCJcdTUzMjNcdTVjYWNcdTc1MzJcdTgwZGJcdTkyNDBcdTk1OThcdTUyNWJcdTU4MDhcdTU5ZGNcdTVjYTFcdTVkMTdcdTVlYjdcdTVmM2FcdTVmNGFcdTYxNzdcdTZjNWZcdTc1N2FcdTc1ODZcdTdjZTBc''@;'; + put 'put ''dTdkNzNcdTdkYjFcdTdmOGNcdTgxNTRcdTgyMjFcdTg1OTFcdTg5NDFcdThiMWJcdTkyZmNcdTk2NGRcdTljNDdcdTRlY2JcdTRlZjdcdTUwMGJcdTUxZjFcdTU4NGZcdTYxMzdcdTYxM2VcdTYxNjhcdTY1MzlcdTY5ZWFcdTZmMTFcdTc1YTVcdTc2ODZcdTc2ZDZcdTdiODdcdTgyYTVcdTg0''@;'; + put 'put ''Y2JcdWY5MDBcdTkzYTdcdTk1OGJcdTU1ODBcdTViYTJcdTU3NTFcdWY5MDFcdTdjYjNcdTdmYjlcdTkxYjVcdTUwMjhcdTUzYmJcdTVjNDVcdTVkZThcdTYyZDJcdTYzNmVcdTY0ZGFcdTY0ZTdcdTZlMjBcdTcwYWNcdTc5NWJcdThkZGRcdThlMWVcdWY5MDJcdTkwN2RcdTkyNDVcdTkyZjhc''@;'; + put 'put ''dTRlN2VcdTRlZjZcdTUwNjVcdTVkZmVcdTVlZmFcdTYxMDZcdTY5NTdcdTgxNzFcdTg2NTRcdThlNDdcdTkzNzVcdTlhMmJcdTRlNWVcdTUwOTFcdTY3NzBcdTY4NDBcdTUxMDlcdTUyOGRcdTUyOTJcdTZhYTIiXSxbImNjYTEiLCJcdTc3YmNcdTkyMTBcdTllZDRcdTUyYWJcdTYwMmZcdThm''@;'; + put 'put ''ZjJcdTUwNDhcdTYxYTlcdTYzZWRcdTY0Y2FcdTY4M2NcdTZhODRcdTZmYzBcdTgxODhcdTg5YTFcdTk2OTRcdTU4MDVcdTcyN2RcdTcyYWNcdTc1MDRcdTdkNzlcdTdlNmRcdTgwYTlcdTg5OGJcdThiNzRcdTkwNjNcdTlkNTFcdTYyODlcdTZjN2FcdTZmNTRcdTdkNTBcdTdmM2FcdThhMjNc''@;'; + put 'put ''dTUxN2NcdTYxNGFcdTdiOWRcdThiMTlcdTkyNTdcdTkzOGNcdTRlYWNcdTRmZDNcdTUwMWVcdTUwYmVcdTUxMDZcdTUyYzFcdTUyY2RcdTUzN2ZcdTU3NzBcdTU4ODNcdTVlOWFcdTVmOTFcdTYxNzZcdTYxYWNcdTY0Y2VcdTY1NmNcdTY2NmZcdTY2YmJcdTY2ZjRcdTY4OTdcdTZkODdcdTcw''@;'; + put 'put ''ODVcdTcwZjFcdTc0OWZcdTc0YTVcdTc0Y2FcdTc1ZDlcdTc4NmNcdTc4ZWNcdTdhZGZcdTdhZjZcdTdkNDVcdTdkOTNcdTgwMTVcdTgwM2ZcdTgxMWJcdTgzOTZcdThiNjZcdThmMTVcdTkwMTVcdTkzZTFcdTk4MDNcdTk4MzhcdTlhNWFcdTliZThcdTRmYzJcdTU1NTNcdTU4M2FcdTU5NTFc''@;'; + put 'put ''dTViNjNcdTVjNDZcdTYwYjhcdTYyMTJcdTY4NDJcdTY4YjAiXSxbImNkYTEiLCJcdTY4ZThcdTZlYWFcdTc1NGNcdTc2NzhcdTc4Y2VcdTdhM2RcdTdjZmJcdTdlNmJcdTdlN2NcdThhMDhcdThhYTFcdThjM2ZcdTk2OGVcdTlkYzRcdTUzZTRcdTUzZTlcdTU0NGFcdTU0NzFcdTU2ZmFcdTU5''@;'; + put 'put ''ZDFcdTViNjRcdTVjM2JcdTVlYWJcdTYyZjdcdTY1MzdcdTY1NDVcdTY1NzJcdTY2YTBcdTY3YWZcdTY5YzFcdTZjYmRcdTc1ZmNcdTc2OTBcdTc3N2VcdTdhM2ZcdTdmOTRcdTgwMDNcdTgwYTFcdTgxOGZcdTgyZTZcdTgyZmRcdTgzZjBcdTg1YzFcdTg4MzFcdTg4YjRcdThhYTVcdWY5MDNc''@;'; + put 'put ''dThmOWNcdTkzMmVcdTk2YzdcdTk4NjdcdTlhZDhcdTlmMTNcdTU0ZWRcdTY1OWJcdTY2ZjJcdTY4OGZcdTdhNDBcdThjMzdcdTlkNjBcdTU2ZjBcdTU3NjRcdTVkMTFcdTY2MDZcdTY4YjFcdTY4Y2RcdTZlZmVcdTc0MjhcdTg4OWVcdTliZTRcdTZjNjhcdWY5MDRcdTlhYThcdTRmOWJcdTUx''@;'; + put 'put ''NmNcdTUxNzFcdTUyOWZcdTViNTRcdTVkZTVcdTYwNTBcdTYwNmRcdTYyZjFcdTYzYTdcdTY1M2JcdTczZDlcdTdhN2FcdTg2YTNcdThjYTJcdTk3OGZcdTRlMzJcdTViZTFcdTYyMDhcdTY3OWNcdTc0ZGMiXSxbImNlYTEiLCJcdTc5ZDFcdTgzZDNcdThhODdcdThhYjJcdThkZThcdTkwNGVc''@;'; + put 'put ''dTkzNGJcdTk4NDZcdTVlZDNcdTY5ZThcdTg1ZmZcdTkwZWRcdWY5MDVcdTUxYTBcdTViOThcdTViZWNcdTYxNjNcdTY4ZmFcdTZiM2VcdTcwNGNcdTc0MmZcdTc0ZDhcdTdiYTFcdTdmNTBcdTgzYzVcdTg5YzBcdThjYWJcdTk1ZGNcdTk5MjhcdTUyMmVcdTYwNWRcdTYyZWNcdTkwMDJcdTRm''@;'; + put 'put ''OGFcdTUxNDlcdTUzMjFcdTU4ZDlcdTVlZTNcdTY2ZTBcdTZkMzhcdTcwOWFcdTcyYzJcdTczZDZcdTdiNTBcdTgwZjFcdTk0NWJcdTUzNjZcdTYzOWJcdTdmNmJcdTRlNTZcdTUwODBcdTU4NGFcdTU4ZGVcdTYwMmFcdTYxMjdcdTYyZDBcdTY5ZDBcdTliNDFcdTViOGZcdTdkMThcdTgwYjFc''@;'; + put 'put ''dThmNWZcdTRlYTRcdTUwZDFcdTU0YWNcdTU1YWNcdTViMGNcdTVkYTBcdTVkZTdcdTY1MmFcdTY1NGVcdTY4MjFcdTZhNGJcdTcyZTFcdTc2OGVcdTc3ZWZcdTdkNWVcdTdmZjlcdTgxYTBcdTg1NGVcdTg2ZGZcdThmMDNcdThmNGVcdTkwY2FcdTk5MDNcdTlhNTVcdTliYWJcdTRlMThcdTRl''@;'; + put 'put ''NDVcdTRlNWRcdTRlYzdcdTRmZjFcdTUxNzdcdTUyZmUiXSxbImNmYTEiLCJcdTUzNDBcdTUzZTNcdTUzZTVcdTU0OGVcdTU2MTRcdTU3NzVcdTU3YTJcdTViYzdcdTVkODdcdTVlZDBcdTYxZmNcdTYyZDhcdTY1NTFcdTY3YjhcdTY3ZTlcdTY5Y2JcdTZiNTBcdTZiYzZcdTZiZWNcdTZjNDJc''@;'; + put 'put ''dTZlOWRcdTcwNzhcdTcyZDdcdTczOTZcdTc0MDNcdTc3YmZcdTc3ZTlcdTdhNzZcdTdkN2ZcdTgwMDlcdTgxZmNcdTgyMDVcdTgyMGFcdTgyZGZcdTg4NjJcdThiMzNcdThjZmNcdThlYzBcdTkwMTFcdTkwYjFcdTkyNjRcdTkyYjZcdTk5ZDJcdTlhNDVcdTljZTlcdTlkZDdcdTlmOWNcdTU3''@;'; + put 'put ''MGJcdTVjNDBcdTgzY2FcdTk3YTBcdTk3YWJcdTllYjRcdTU0MWJcdTdhOThcdTdmYTRcdTg4ZDlcdThlY2RcdTkwZTFcdTU4MDBcdTVjNDhcdTYzOThcdTdhOWZcdTViYWVcdTVmMTNcdTdhNzlcdTdhYWVcdTgyOGVcdThlYWNcdTUwMjZcdTUyMzhcdTUyZjhcdTUzNzdcdTU3MDhcdTYyZjNc''@;'; + put 'put ''dTYzNzJcdTZiMGFcdTZkYzNcdTc3MzdcdTUzYTVcdTczNTdcdTg1NjhcdThlNzZcdTk1ZDVcdTY3M2FcdTZhYzNcdTZmNzBcdThhNmRcdThlY2NcdTk5NGJcdWY5MDZcdTY2NzdcdTZiNzhcdThjYjQiXSxbImQwYTEiLCJcdTliM2NcdWY5MDdcdTUzZWJcdTU3MmRcdTU5NGVcdTYzYzZcdTY5''@;'; + put 'put ''ZmJcdTczZWFcdTc4NDVcdTdhYmFcdTdhYzVcdTdjZmVcdTg0NzVcdTg5OGZcdThkNzNcdTkwMzVcdTk1YThcdTUyZmJcdTU3NDdcdTc1NDdcdTdiNjBcdTgzY2NcdTkyMWVcdWY5MDhcdTZhNThcdTUxNGJcdTUyNGJcdTUyODdcdTYyMWZcdTY4ZDhcdTY5NzVcdTk2OTlcdTUwYzVcdTUyYTRc''@;'; + put 'put ''dTUyZTRcdTYxYzNcdTY1YTRcdTY4MzlcdTY5ZmZcdTc0N2VcdTdiNGJcdTgyYjlcdTgzZWJcdTg5YjJcdThiMzlcdThmZDFcdTk5NDlcdWY5MDlcdTRlY2FcdTU5OTdcdTY0ZDJcdTY2MTFcdTZhOGVcdTc0MzRcdTc5ODFcdTc5YmRcdTgyYTlcdTg4N2VcdTg4N2ZcdTg5NWZcdWY5MGFcdTkz''@;'; + put 'put ''MjZcdTRmMGJcdTUzY2FcdTYwMjVcdTYyNzFcdTZjNzJcdTdkMWFcdTdkNjZcdTRlOThcdTUxNjJcdTc3ZGNcdTgwYWZcdTRmMDFcdTRmMGVcdTUxNzZcdTUxODBcdTU1ZGNcdTU2NjhcdTU3M2JcdTU3ZmFcdTU3ZmNcdTU5MTRcdTU5NDdcdTU5OTNcdTViYzRcdTVjOTBcdTVkMGVcdTVkZjFc''@;'; + put 'put ''dTVlN2VcdTVmY2NcdTYyODBcdTY1ZDdcdTY1ZTMiXSxbImQxYTEiLCJcdTY3MWVcdTY3MWZcdTY3NWVcdTY4Y2JcdTY4YzRcdTZhNWZcdTZiM2FcdTZjMjNcdTZjN2RcdTZjODJcdTZkYzdcdTczOThcdTc0MjZcdTc0MmFcdTc0ODJcdTc0YTNcdTc1NzhcdTc1N2ZcdTc4ODFcdTc4ZWZcdTc5''@;'; + put 'put ''NDFcdTc5NDdcdTc5NDhcdTc5N2FcdTdiOTVcdTdkMDBcdTdkYmFcdTdmODhcdTgwMDZcdTgwMmRcdTgwOGNcdThhMThcdThiNGZcdThjNDhcdThkNzdcdTkzMjFcdTkzMjRcdTk4ZTJcdTk5NTFcdTlhMGVcdTlhMGZcdTlhNjVcdTllOTJcdTdkY2FcdTRmNzZcdTU0MDlcdTYyZWVcdTY4NTRc''@;'; + put 'put ''dTkxZDFcdTU1YWJcdTUxM2FcdWY5MGJcdWY5MGNcdTVhMWNcdTYxZTZcdWY5MGRcdTYyY2ZcdTYyZmZcdWY5MGUiLDUsIlx1OTBhM1x1ZjkxNCIsNCwiXHU4YWZlXHVmOTE5XHVmOTFhXHVmOTFiXHVmOTFjXHU2Njk2XHVmOTFkXHU3MTU2XHVmOTFlXHVmOTFmXHU5NmUzXHVmOTIwXHU2MzRm''@;'; + put 'put ''XHU2MzdhXHU1MzU3XHVmOTIxXHU2NzhmXHU2OTYwXHU2ZTczXHVmOTIyXHU3NTM3XHVmOTIzXHVmOTI0XHVmOTI1Il0sWyJkMmExIiwiXHU3ZDBkXHVmOTI2XHVmOTI3XHU4ODcyXHU1NmNhXHU1YTE4XHVmOTI4Iiw0LCJcdTRlNDNcdWY5MmRcdTUxNjdcdTU5NDhcdTY3ZjBcdTgwMTBcdWY5''@;'; + put 'put ''MmVcdTU5NzNcdTVlNzRcdTY0OWFcdTc5Y2FcdTVmZjVcdTYwNmNcdTYyYzhcdTYzN2JcdTViZTdcdTViZDdcdTUyYWFcdWY5MmZcdTU5NzRcdTVmMjlcdTYwMTJcdWY5MzBcdWY5MzFcdWY5MzJcdTc0NTlcdWY5MzMiLDUsIlx1OTlkMVx1ZjkzOSIsMTAsIlx1NmZjM1x1Zjk0NFx1Zjk0NVx1''@;'; + put 'put ''ODFiZlx1OGZiMlx1NjBmMVx1Zjk0Nlx1Zjk0N1x1ODE2Nlx1Zjk0OFx1Zjk0OVx1NWMzZlx1Zjk0YSIsNywiXHU1YWU5XHU4YTI1XHU2NzdiXHU3ZDEwXHVmOTUyIiw1LCJcdTgwZmRcdWY5NThcdWY5NTlcdTVjM2NcdTZjZTVcdTUzM2ZcdTZlYmFcdTU5MWFcdTgzMzYiXSxbImQzYTEiLCJc''@;'; + put 'put ''dTRlMzlcdTRlYjZcdTRmNDZcdTU1YWVcdTU3MThcdTU4YzdcdTVmNTZcdTY1YjdcdTY1ZTZcdTZhODBcdTZiYjVcdTZlNGRcdTc3ZWRcdTdhZWZcdTdjMWVcdTdkZGVcdTg2Y2JcdTg4OTJcdTkxMzJcdTkzNWJcdTY0YmJcdTZmYmVcdTczN2FcdTc1YjhcdTkwNTRcdTU1NTZcdTU3NGRcdTYx''@;'; + put 'put ''YmFcdTY0ZDRcdTY2YzdcdTZkZTFcdTZlNWJcdTZmNmRcdTZmYjlcdTc1ZjBcdTgwNDNcdTgxYmRcdTg1NDFcdTg5ODNcdThhYzdcdThiNWFcdTkzMWZcdTZjOTNcdTc1NTNcdTdiNTRcdThlMGZcdTkwNWRcdTU1MTBcdTU4MDJcdTU4NThcdTVlNjJcdTYyMDdcdTY0OWVcdTY4ZTBcdTc1NzZc''@;'; + put 'put ''dTdjZDZcdTg3YjNcdTllZThcdTRlZTNcdTU3ODhcdTU3NmVcdTU5MjdcdTVjMGRcdTVjYjFcdTVlMzZcdTVmODVcdTYyMzRcdTY0ZTFcdTczYjNcdTgxZmFcdTg4OGJcdThjYjhcdTk2OGFcdTllZGJcdTViODVcdTVmYjdcdTYwYjNcdTUwMTJcdTUyMDBcdTUyMzBcdTU3MTZcdTU4MzVcdTU4''@;'; + put 'put ''NTdcdTVjMGVcdTVjNjBcdTVjZjZcdTVkOGJcdTVlYTZcdTVmOTJcdTYwYmNcdTYzMTFcdTYzODlcdTY0MTdcdTY4NDMiXSxbImQ0YTEiLCJcdTY4ZjlcdTZhYzJcdTZkZDhcdTZlMjFcdTZlZDRcdTZmZTRcdTcxZmVcdTc2ZGNcdTc3NzlcdTc5YjFcdTdhM2JcdTg0MDRcdTg5YTlcdThjZWRc''@;'; + put 'put ''dThkZjNcdThlNDhcdTkwMDNcdTkwMTRcdTkwNTNcdTkwZmRcdTkzNGRcdTk2NzZcdTk3ZGNcdTZiZDJcdTcwMDZcdTcyNThcdTcyYTJcdTczNjhcdTc3NjNcdTc5YmZcdTdiZTRcdTdlOWJcdThiODBcdTU4YTlcdTYwYzdcdTY1NjZcdTY1ZmRcdTY2YmVcdTZjOGNcdTcxMWVcdTcxYzlcdThj''@;'; + put 'put ''NWFcdTk4MTNcdTRlNmRcdTdhODFcdTRlZGRcdTUxYWNcdTUxY2RcdTUyZDVcdTU0MGNcdTYxYTdcdTY3NzFcdTY4NTBcdTY4ZGZcdTZkMWVcdTZmN2NcdTc1YmNcdTc3YjNcdTdhZTVcdTgwZjRcdTg0NjNcdTkyODVcdTUxNWNcdTY1OTdcdTY3NWNcdTY3OTNcdTc1ZDhcdTdhYzdcdTgzNzNc''@;'; + put 'put ''dWY5NWFcdThjNDZcdTkwMTdcdTk4MmRcdTVjNmZcdTgxYzBcdTgyOWFcdTkwNDFcdTkwNmZcdTkyMGRcdTVmOTdcdTVkOWRcdTZhNTlcdTcxYzhcdTc2N2JcdTdiNDlcdTg1ZTRcdThiMDRcdTkxMjdcdTlhMzBcdTU1ODdcdTYxZjZcdWY5NWJcdTc2NjlcdTdmODUiXSxbImQ1YTEiLCJcdTg2''@;'; + put 'put ''M2ZcdTg3YmFcdTg4ZjhcdTkwOGZcdWY5NWNcdTZkMWJcdTcwZDlcdTczZGVcdTdkNjFcdTg0M2RcdWY5NWRcdTkxNmFcdTk5ZjFcdWY5NWVcdTRlODJcdTUzNzVcdTZiMDRcdTZiMTJcdTcwM2VcdTcyMWJcdTg2MmRcdTllMWVcdTUyNGNcdThmYTNcdTVkNTBcdTY0ZTVcdTY1MmNcdTZiMTZc''@;'; + put 'put ''dTZmZWJcdTdjNDNcdTdlOWNcdTg1Y2RcdTg5NjRcdTg5YmRcdTYyYzlcdTgxZDhcdTg4MWZcdTVlY2FcdTY3MTdcdTZkNmFcdTcyZmNcdTc0MDVcdTc0NmZcdTg3ODJcdTkwZGVcdTRmODZcdTVkMGRcdTVmYTBcdTg0MGFcdTUxYjdcdTYzYTBcdTc1NjVcdTRlYWVcdTUwMDZcdTUxNjlcdTUx''@;'; + put 'put ''YzlcdTY4ODFcdTZhMTFcdTdjYWVcdTdjYjFcdTdjZTdcdTgyNmZcdThhZDJcdThmMWJcdTkxY2ZcdTRmYjZcdTUxMzdcdTUyZjVcdTU0NDJcdTVlZWNcdTYxNmVcdTYyM2VcdTY1YzVcdTZhZGFcdTZmZmVcdTc5MmFcdTg1ZGNcdTg4MjNcdTk1YWRcdTlhNjJcdTlhNmFcdTllOTdcdTllY2Vc''@;'; + put 'put ''dTUyOWJcdTY2YzZcdTZiNzdcdTcwMWRcdTc5MmJcdThmNjJcdTk3NDJcdTYxOTBcdTYyMDBcdTY1MjNcdTZmMjMiXSxbImQ2YTEiLCJcdTcxNDlcdTc0ODlcdTdkZjRcdTgwNmZcdTg0ZWVcdThmMjZcdTkwMjNcdTkzNGFcdTUxYmRcdTUyMTdcdTUyYTNcdTZkMGNcdTcwYzhcdTg4YzJcdTVl''@;'; + put 'put ''YzlcdTY1ODJcdTZiYWVcdTZmYzJcdTdjM2VcdTczNzVcdTRlZTRcdTRmMzZcdTU2ZjlcdWY5NWZcdTVjYmFcdTVkYmFcdTYwMWNcdTczYjJcdTdiMmRcdTdmOWFcdTdmY2VcdTgwNDZcdTkwMWVcdTkyMzRcdTk2ZjZcdTk3NDhcdTk4MThcdTlmNjFcdTRmOGJcdTZmYTdcdTc5YWVcdTkxYjRc''@;'; + put 'put ''dTk2YjdcdTUyZGVcdWY5NjBcdTY0ODhcdTY0YzRcdTZhZDNcdTZmNWVcdTcwMThcdTcyMTBcdTc2ZTdcdTgwMDFcdTg2MDZcdTg2NWNcdThkZWZcdThmMDVcdTk3MzJcdTliNmZcdTlkZmFcdTllNzVcdTc4OGNcdTc5N2ZcdTdkYTBcdTgzYzlcdTkzMDRcdTllN2ZcdTllOTNcdThhZDZcdTU4''@;'; + put 'put ''ZGZcdTVmMDRcdTY3MjdcdTcwMjdcdTc0Y2ZcdTdjNjBcdTgwN2VcdTUxMjFcdTcwMjhcdTcyNjJcdTc4Y2FcdThjYzJcdThjZGFcdThjZjRcdTk2ZjdcdTRlODZcdTUwZGFcdTViZWVcdTVlZDZcdTY1OTlcdTcxY2VcdTc2NDJcdTc3YWRcdTgwNGFcdTg0ZmMiXSxbImQ3YTEiLCJcdTkwN2Nc''@;'; + put 'put ''dTliMjdcdTlmOGRcdTU4ZDhcdTVhNDFcdTVjNjJcdTZhMTNcdTZkZGFcdTZmMGZcdTc2M2JcdTdkMmZcdTdlMzdcdTg1MWVcdTg5MzhcdTkzZTRcdTk2NGJcdTUyODlcdTY1ZDJcdTY3ZjNcdTY5YjRcdTZkNDFcdTZlOWNcdTcwMGZcdTc0MDlcdTc0NjBcdTc1NTlcdTc2MjRcdTc4NmJcdThi''@;'; + put 'put ''MmNcdTk4NWVcdTUxNmRcdTYyMmVcdTk2NzhcdTRmOTZcdTUwMmJcdTVkMTlcdTZkZWFcdTdkYjhcdThmMmFcdTVmOGJcdTYxNDRcdTY4MTdcdWY5NjFcdTk2ODZcdTUyZDJcdTgwOGJcdTUxZGNcdTUxY2NcdTY5NWVcdTdhMWNcdTdkYmVcdTgzZjFcdTk2NzVcdTRmZGFcdTUyMjlcdTUzOThc''@;'; + put 'put ''dTU0MGZcdTU1MGVcdTVjNjVcdTYwYTdcdTY3NGVcdTY4YThcdTZkNmNcdTcyODFcdTcyZjhcdTc0MDZcdTc0ODNcdWY5NjJcdTc1ZTJcdTdjNmNcdTdmNzlcdTdmYjhcdTgzODlcdTg4Y2ZcdTg4ZTFcdTkxY2NcdTkxZDBcdTk2ZTJcdTliYzlcdTU0MWRcdTZmN2VcdTcxZDBcdTc0OThcdTg1''@;'; + put 'put ''ZmFcdThlYWFcdTk2YTNcdTljNTdcdTllOWZcdTY3OTdcdTZkY2JcdTc0MzNcdTgxZThcdTk3MTZcdTc4MmMiXSxbImQ4YTEiLCJcdTdhY2JcdTdiMjBcdTdjOTJcdTY0NjlcdTc0NmFcdTc1ZjJcdTc4YmNcdTc4ZThcdTk5YWNcdTliNTRcdTllYmJcdTViZGVcdTVlNTVcdTZmMjBcdTgxOWNc''@;'; + put 'put ''dTgzYWJcdTkwODhcdTRlMDdcdTUzNGRcdTVhMjlcdTVkZDJcdTVmNGVcdTYxNjJcdTYzM2RcdTY2NjlcdTY2ZmNcdTZlZmZcdTZmMmJcdTcwNjNcdTc3OWVcdTg0MmNcdTg1MTNcdTg4M2JcdThmMTNcdTk5NDVcdTljM2JcdTU1MWNcdTYyYjlcdTY3MmJcdTZjYWJcdTgzMDlcdTg5NmFcdTk3''@;'; + put 'put ''N2FcdTRlYTFcdTU5ODRcdTVmZDhcdTVmZDlcdTY3MWJcdTdkYjJcdTdmNTRcdTgyOTJcdTgzMmJcdTgzYmRcdThmMWVcdTkwOTlcdTU3Y2JcdTU5YjlcdTVhOTJcdTViZDBcdTY2MjdcdTY3OWFcdTY4ODVcdTZiY2ZcdTcxNjRcdTdmNzVcdThjYjdcdThjZTNcdTkwODFcdTliNDVcdTgxMDhc''@;'; + put 'put ''dThjOGFcdTk2NGNcdTlhNDBcdTllYTVcdTViNWZcdTZjMTNcdTczMWJcdTc2ZjJcdTc2ZGZcdTg0MGNcdTUxYWFcdTg5OTNcdTUxNGRcdTUxOTVcdTUyYzlcdTY4YzlcdTZjOTRcdTc3MDRcdTc3MjBcdTdkYmZcdTdkZWNcdTk3NjJcdTllYjVcdTZlYzUiXSxbImQ5YTEiLCJcdTg1MTFcdTUx''@;'; + put 'put ''YTVcdTU0MGRcdTU0N2RcdTY2MGVcdTY2OWRcdTY5MjdcdTZlOWZcdTc2YmZcdTc3OTFcdTgzMTdcdTg0YzJcdTg3OWZcdTkxNjlcdTkyOThcdTljZjRcdTg4ODJcdTRmYWVcdTUxOTJcdTUyZGZcdTU5YzZcdTVlM2RcdTYxNTVcdTY0NzhcdTY0NzlcdTY2YWVcdTY3ZDBcdTZhMjFcdTZiY2Rc''@;'; + put 'put ''dTZiZGJcdTcyNWZcdTcyNjFcdTc0NDFcdTc3MzhcdTc3ZGJcdTgwMTdcdTgyYmNcdTgzMDVcdThiMDBcdThiMjhcdThjOGNcdTY3MjhcdTZjOTBcdTcyNjdcdTc2ZWVcdTc3NjZcdTdhNDZcdTlkYTlcdTZiN2ZcdTZjOTJcdTU5MjJcdTY3MjZcdTg0OTlcdTUzNmZcdTU4OTNcdTU5OTlcdTVl''@;'; + put 'put ''ZGZcdTYzY2ZcdTY2MzRcdTY3NzNcdTZlM2FcdTczMmJcdTdhZDdcdTgyZDdcdTkzMjhcdTUyZDlcdTVkZWJcdTYxYWVcdTYxY2JcdTYyMGFcdTYyYzdcdTY0YWJcdTY1ZTBcdTY5NTlcdTZiNjZcdTZiY2JcdTcxMjFcdTczZjdcdTc1NWRcdTdlNDZcdTgyMWVcdTgzMDJcdTg1NmFcdThhYTNc''@;'; + put 'put ''dThjYmZcdTk3MjdcdTlkNjFcdTU4YThcdTllZDhcdTUwMTFcdTUyMGVcdTU0M2JcdTU1NGZcdTY1ODciXSxbImRhYTEiLCJcdTZjNzZcdTdkMGFcdTdkMGJcdTgwNWVcdTg2OGFcdTk1ODBcdTk2ZWZcdTUyZmZcdTZjOTVcdTcyNjlcdTU0NzNcdTVhOWFcdTVjM2VcdTVkNGJcdTVmNGNcdTVm''@;'; + put 'put ''YWVcdTY3MmFcdTY4YjZcdTY5NjNcdTZlM2NcdTZlNDRcdTc3MDlcdTdjNzNcdTdmOGVcdTg1ODdcdThiMGVcdThmZjdcdTk3NjFcdTllZjRcdTVjYjdcdTYwYjZcdTYxMGRcdTYxYWJcdTY1NGZcdTY1ZmJcdTY1ZmNcdTZjMTFcdTZjZWZcdTczOWZcdTczYzlcdTdkZTFcdTk1OTRcdTViYzZc''@;'; + put 'put ''dTg3MWNcdThiMTBcdTUyNWRcdTUzNWFcdTYyY2RcdTY0MGZcdTY0YjJcdTY3MzRcdTZhMzhcdTZjY2FcdTczYzBcdTc0OWVcdTdiOTRcdTdjOTVcdTdlMWJcdTgxOGFcdTgyMzZcdTg1ODRcdThmZWJcdTk2ZjlcdTk5YzFcdTRmMzRcdTUzNGFcdTUzY2RcdTUzZGJcdTYyY2NcdTY0MmNcdTY1''@;'; + put 'put ''MDBcdTY1OTFcdTY5YzNcdTZjZWVcdTZmNThcdTczZWRcdTc1NTRcdTc2MjJcdTc2ZTRcdTc2ZmNcdTc4ZDBcdTc4ZmJcdTc5MmNcdTdkNDZcdTgyMmNcdTg3ZTBcdThmZDRcdTk4MTJcdTk4ZWZcdTUyYzNcdTYyZDRcdTY0YTVcdTZlMjRcdTZmNTEiXSxbImRiYTEiLCJcdTc2N2NcdThkY2Jc''@;'; + put 'put ''dTkxYjFcdTkyNjJcdTlhZWVcdTliNDNcdTUwMjNcdTUwOGRcdTU3NGFcdTU5YThcdTVjMjhcdTVlNDdcdTVmNzdcdTYyM2ZcdTY1M2VcdTY1YjlcdTY1YzFcdTY2MDlcdTY3OGJcdTY5OWNcdTZlYzJcdTc4YzVcdTdkMjFcdTgwYWFcdTgxODBcdTgyMmJcdTgyYjNcdTg0YTFcdTg2OGNcdThh''@;'; + put 'put ''MmFcdThiMTdcdTkwYTZcdTk2MzJcdTlmOTBcdTUwMGRcdTRmZjNcdWY5NjNcdTU3ZjlcdTVmOThcdTYyZGNcdTYzOTJcdTY3NmZcdTZlNDNcdTcxMTlcdTc2YzNcdTgwY2NcdTgwZGFcdTg4ZjRcdTg4ZjVcdTg5MTlcdThjZTBcdThmMjlcdTkxNGRcdTk2NmFcdTRmMmZcdTRmNzBcdTVlMWJc''@;'; + put 'put ''dTY3Y2ZcdTY4MjJcdTc2N2RcdTc2N2VcdTliNDRcdTVlNjFcdTZhMGFcdTcxNjlcdTcxZDRcdTc1NmFcdWY5NjRcdTdlNDFcdTg1NDNcdTg1ZTlcdTk4ZGNcdTRmMTBcdTdiNGZcdTdmNzBcdTk1YTVcdTUxZTFcdTVlMDZcdTY4YjVcdTZjM2VcdTZjNGVcdTZjZGJcdTcyYWZcdTdiYzRcdTgz''@;'; + put 'put ''MDNcdTZjZDVcdTc0M2FcdTUwZmJcdTUyODhcdTU4YzFcdTY0ZDhcdTZhOTdcdTc0YTdcdTc2NTYiXSxbImRjYTEiLCJcdTc4YTdcdTg2MTdcdTk1ZTJcdTk3MzlcdWY5NjVcdTUzNWVcdTVmMDFcdThiOGFcdThmYThcdThmYWZcdTkwOGFcdTUyMjVcdTc3YTVcdTljNDlcdTlmMDhcdTRlMTlc''@;'; + put 'put ''dTUwMDJcdTUxNzVcdTVjNWJcdTVlNzdcdTY2MWVcdTY2M2FcdTY3YzRcdTY4YzVcdTcwYjNcdTc1MDFcdTc1YzVcdTc5YzlcdTdhZGRcdThmMjdcdTk5MjBcdTlhMDhcdTRmZGRcdTU4MjFcdTU4MzFcdTViZjZcdTY2NmVcdTZiNjVcdTZkMTFcdTZlN2FcdTZmN2RcdTczZTRcdTc1MmJcdTgz''@;'; + put 'put ''ZTlcdTg4ZGNcdTg5MTNcdThiNWNcdThmMTRcdTRmMGZcdTUwZDVcdTUzMTBcdTUzNWNcdTViOTNcdTVmYTlcdTY3MGRcdTc5OGZcdTgxNzlcdTgzMmZcdTg1MTRcdTg5MDdcdTg5ODZcdThmMzlcdThmM2JcdTk5YTVcdTljMTJcdTY3MmNcdTRlNzZcdTRmZjhcdTU5NDlcdTVjMDFcdTVjZWZc''@;'; + put 'put ''dTVjZjBcdTYzNjdcdTY4ZDJcdTcwZmRcdTcxYTJcdTc0MmJcdTdlMmJcdTg0ZWNcdTg3MDJcdTkwMjJcdTkyZDJcdTljZjNcdTRlMGRcdTRlZDhcdTRmZWZcdTUwODVcdTUyNTZcdTUyNmZcdTU0MjZcdTU0OTBcdTU3ZTBcdTU5MmJcdTVhNjYiXSxbImRkYTEiLCJcdTViNWFcdTViNzVcdTVi''@;'; + put 'put ''Y2NcdTVlOWNcdWY5NjZcdTYyNzZcdTY1NzdcdTY1YTdcdTZkNmVcdTZlYTVcdTcyMzZcdTdiMjZcdTdjM2ZcdTdmMzZcdTgxNTBcdTgxNTFcdTgxOWFcdTgyNDBcdTgyOTlcdTgzYTlcdThhMDNcdThjYTBcdThjZTZcdThjZmJcdThkNzRcdThkYmFcdTkwZThcdTkxZGNcdTk2MWNcdTk2NDRc''@;'; + put 'put ''dTk5ZDlcdTljZTdcdTUzMTdcdTUyMDZcdTU0MjlcdTU2NzRcdTU4YjNcdTU5NTRcdTU5NmVcdTVmZmZcdTYxYTRcdTYyNmVcdTY2MTBcdTZjN2VcdTcxMWFcdTc2YzZcdTdjODlcdTdjZGVcdTdkMWJcdTgyYWNcdThjYzFcdTk2ZjBcdWY5NjdcdTRmNWJcdTVmMTdcdTVmN2ZcdTYyYzJcdTVk''@;'; + put 'put ''MjlcdTY3MGJcdTY4ZGFcdTc4N2NcdTdlNDNcdTlkNmNcdTRlMTVcdTUwOTlcdTUzMTVcdTUzMmFcdTUzNTFcdTU5ODNcdTVhNjJcdTVlODdcdTYwYjJcdTYxOGFcdTYyNDlcdTYyNzlcdTY1OTBcdTY3ODdcdTY5YTdcdTZiZDRcdTZiZDZcdTZiZDdcdTZiZDhcdTZjYjhcdWY5NjhcdTc0MzVc''@;'; + put 'put ''dTc1ZmFcdTc4MTJcdTc4OTFcdTc5ZDVcdTc5ZDhcdTdjODNcdTdkY2JcdTdmZTFcdTgwYTUiXSxbImRlYTEiLCJcdTgxM2VcdTgxYzJcdTgzZjJcdTg3MWFcdTg4ZThcdThhYjlcdThiNmNcdThjYmJcdTkxMTlcdTk3NWVcdTk4ZGJcdTlmM2JcdTU2YWNcdTViMmFcdTVmNmNcdTY1OGNcdTZh''@;'; + put 'put ''YjNcdTZiYWZcdTZkNWNcdTZmZjFcdTcwMTVcdTcyNWRcdTczYWRcdThjYTdcdThjZDNcdTk4M2JcdTYxOTFcdTZjMzdcdTgwNThcdTlhMDFcdTRlNGRcdTRlOGJcdTRlOWJcdTRlZDVcdTRmM2FcdTRmM2NcdTRmN2ZcdTRmZGZcdTUwZmZcdTUzZjJcdTUzZjhcdTU1MDZcdTU1ZTNcdTU2ZGJc''@;'; + put 'put ''dTU4ZWJcdTU5NjJcdTVhMTFcdTViZWJcdTViZmFcdTVjMDRcdTVkZjNcdTVlMmJcdTVmOTlcdTYwMWRcdTYzNjhcdTY1OWNcdTY1YWZcdTY3ZjZcdTY3ZmJcdTY4YWRcdTZiN2JcdTZjOTlcdTZjZDdcdTZlMjNcdTcwMDlcdTczNDVcdTc4MDJcdTc5M2VcdTc5NDBcdTc5NjBcdTc5YzFcdTdi''@;'; + put 'put ''ZTlcdTdkMTdcdTdkNzJcdTgwODZcdTgyMGRcdTgzOGVcdTg0ZDFcdTg2YzdcdTg4ZGZcdThhNTBcdThhNWVcdThiMWRcdThjZGNcdThkNjZcdThmYWRcdTkwYWFcdTk4ZmNcdTk5ZGZcdTllOWRcdTUyNGFcdWY5NjlcdTY3MTRcdWY5NmEiXSxbImRmYTEiLCJcdTUwOThcdTUyMmFcdTVjNzFc''@;'; + put 'put ''dTY1NjNcdTZjNTVcdTczY2FcdTc1MjNcdTc1OWRcdTdiOTdcdTg0OWNcdTkxNzhcdTk3MzBcdTRlNzdcdTY0OTJcdTZiYmFcdTcxNWVcdTg1YTlcdTRlMDlcdWY5NmJcdTY3NDlcdTY4ZWVcdTZlMTdcdTgyOWZcdTg1MThcdTg4NmJcdTYzZjdcdTZmODFcdTkyMTJcdTk4YWZcdTRlMGFcdTUw''@;'; + put 'put ''YjdcdTUwY2ZcdTUxMWZcdTU1NDZcdTU1YWFcdTU2MTdcdTViNDBcdTVjMTlcdTVjZTBcdTVlMzhcdTVlOGFcdTVlYTBcdTVlYzJcdTYwZjNcdTY4NTFcdTZhNjFcdTZlNThcdTcyM2RcdTcyNDBcdTcyYzBcdTc2ZjhcdTc5NjVcdTdiYjFcdTdmZDRcdTg4ZjNcdTg5ZjRcdThhNzNcdThjNjFc''@;'; + put 'put ''dThjZGVcdTk3MWNcdTU4NWVcdTc0YmRcdThjZmRcdTU1YzdcdWY5NmNcdTdhNjFcdTdkMjJcdTgyNzJcdTcyNzJcdTc1MWZcdTc1MjVcdWY5NmRcdTdiMTlcdTU4ODVcdTU4ZmJcdTVkYmNcdTVlOGZcdTVlYjZcdTVmOTBcdTYwNTVcdTYyOTJcdTYzN2ZcdTY1NGRcdTY2OTFcdTY2ZDlcdTY2''@;'; + put 'put ''ZjhcdTY4MTZcdTY4ZjJcdTcyODBcdTc0NWVcdTdiNmVcdTdkNmVcdTdkZDZcdTdmNzIiXSxbImUwYTEiLCJcdTgwZTVcdTgyMTJcdTg1YWZcdTg5N2ZcdThhOTNcdTkwMWRcdTkyZTRcdTllY2RcdTlmMjBcdTU5MTVcdTU5NmRcdTVlMmRcdTYwZGNcdTY2MTRcdTY2NzNcdTY3OTBcdTZjNTBc''@;'; + put 'put ''dTZkYzVcdTZmNWZcdTc3ZjNcdTc4YTlcdTg0YzZcdTkxY2JcdTkzMmJcdTRlZDlcdTUwY2FcdTUxNDhcdTU1ODRcdTViMGJcdTViYTNcdTYyNDdcdTY1N2VcdTY1Y2JcdTZlMzJcdTcxN2RcdTc0MDFcdTc0NDRcdTc0ODdcdTc0YmZcdTc2NmNcdTc5YWFcdTdkZGFcdTdlNTVcdTdmYThcdTgx''@;'; + put 'put ''N2FcdTgxYjNcdTgyMzlcdTg2MWFcdTg3ZWNcdThhNzVcdThkZTNcdTkwNzhcdTkyOTFcdTk0MjVcdTk5NGRcdTliYWVcdTUzNjhcdTVjNTFcdTY5NTRcdTZjYzRcdTZkMjlcdTZlMmJcdTgyMGNcdTg1OWJcdTg5M2JcdThhMmRcdThhYWFcdTk2ZWFcdTlmNjdcdTUyNjFcdTY2YjlcdTZiYjJc''@;'; + put 'put ''dTdlOTZcdTg3ZmVcdThkMGRcdTk1ODNcdTk2NWRcdTY1MWRcdTZkODlcdTcxZWVcdWY5NmVcdTU3Y2VcdTU5ZDNcdTViYWNcdTYwMjdcdTYwZmFcdTYyMTBcdTY2MWZcdTY2NWZcdTczMjlcdTczZjlcdTc2ZGJcdTc3MDFcdTdiNmMiXSxbImUxYTEiLCJcdTgwNTZcdTgwNzJcdTgxNjVcdThh''@;'; + put 'put ''YTBcdTkxOTJcdTRlMTZcdTUyZTJcdTZiNzJcdTZkMTdcdTdhMDVcdTdiMzlcdTdkMzBcdWY5NmZcdThjYjBcdTUzZWNcdTU2MmZcdTU4NTFcdTViYjVcdTVjMGZcdTVjMTFcdTVkZTJcdTYyNDBcdTYzODNcdTY0MTRcdTY2MmRcdTY4YjNcdTZjYmNcdTZkODhcdTZlYWZcdTcwMWZcdTcwYTRc''@;'; + put 'put ''dTcxZDJcdTc1MjZcdTc1OGZcdTc1OGVcdTc2MTlcdTdiMTFcdTdiZTBcdTdjMmJcdTdkMjBcdTdkMzlcdTg1MmNcdTg1NmRcdTg2MDdcdThhMzRcdTkwMGRcdTkwNjFcdTkwYjVcdTkyYjdcdTk3ZjZcdTlhMzdcdTRmZDdcdTVjNmNcdTY3NWZcdTZkOTFcdTdjOWZcdTdlOGNcdThiMTZcdThk''@;'; + put 'put ''MTZcdTkwMWZcdTViNmJcdTVkZmRcdTY0MGRcdTg0YzBcdTkwNWNcdTk4ZTFcdTczODdcdTViOGJcdTYwOWFcdTY3N2VcdTZkZGVcdThhMWZcdThhYTZcdTkwMDFcdTk4MGNcdTUyMzdcdWY5NzBcdTcwNTFcdTc4OGVcdTkzOTZcdTg4NzBcdTkxZDdcdTRmZWVcdTUzZDdcdTU1ZmRcdTU2ZGFc''@;'; + put 'put ''dTU3ODJcdTU4ZmRcdTVhYzJcdTViODhcdTVjYWJcdTVjYzBcdTVlMjVcdTYxMDEiXSxbImUyYTEiLCJcdTYyMGRcdTYyNGJcdTYzODhcdTY0MWNcdTY1MzZcdTY1NzhcdTZhMzlcdTZiOGFcdTZjMzRcdTZkMTlcdTZmMzFcdTcxZTdcdTcyZTlcdTczNzhcdTc0MDdcdTc0YjJcdTc2MjZcdTc3''@;'; + put 'put ''NjFcdTc5YzBcdTdhNTdcdTdhZWFcdTdjYjlcdTdkOGZcdTdkYWNcdTdlNjFcdTdmOWVcdTgxMjlcdTgzMzFcdTg0OTBcdTg0ZGFcdTg1ZWFcdTg4OTZcdThhYjBcdThiOTBcdThmMzhcdTkwNDJcdTkwODNcdTkxNmNcdTkyOTZcdTkyYjlcdTk2OGJcdTk2YTdcdTk2YThcdTk2ZDZcdTk3MDBc''@;'; + put 'put ''dTk4MDhcdTk5OTZcdTlhZDNcdTliMWFcdTUzZDRcdTU4N2VcdTU5MTlcdTViNzBcdTViYmZcdTZkZDFcdTZmNWFcdTcxOWZcdTc0MjFcdTc0YjlcdTgwODVcdTgzZmRcdTVkZTFcdTVmODdcdTVmYWFcdTYwNDJcdTY1ZWNcdTY4MTJcdTY5NmZcdTZhNTNcdTZiODlcdTZkMzVcdTZkZjNcdTcz''@;'; + put 'put ''ZTNcdTc2ZmVcdTc3YWNcdTdiNGRcdTdkMTRcdTgxMjNcdTgyMWNcdTgzNDBcdTg0ZjRcdTg1NjNcdThhNjJcdThhYzRcdTkxODdcdTkzMWVcdTk4MDZcdTk5YjRcdTYyMGNcdTg4NTNcdThmZjBcdTkyNjVcdTVkMDdcdTVkMjciXSxbImUzYTEiLCJcdTVkNjlcdTc0NWZcdTgxOWRcdTg3Njhc''@;'; + put 'put ''dTZmZDVcdTYyZmVcdTdmZDJcdTg5MzZcdTg5NzJcdTRlMWVcdTRlNThcdTUwZTdcdTUyZGRcdTUzNDdcdTYyN2ZcdTY2MDdcdTdlNjlcdTg4MDVcdTk2NWVcdTRmOGRcdTUzMTlcdTU2MzZcdTU5Y2JcdTVhYTRcdTVjMzhcdTVjNGVcdTVjNGRcdTVlMDJcdTVmMTFcdTYwNDNcdTY1YmRcdTY2''@;'; + put 'put ''MmZcdTY2NDJcdTY3YmVcdTY3ZjRcdTczMWNcdTc3ZTJcdTc5M2FcdTdmYzVcdTg0OTRcdTg0Y2RcdTg5OTZcdThhNjZcdThhNjlcdThhZTFcdThjNTVcdThjN2FcdTU3ZjRcdTViZDRcdTVmMGZcdTYwNmZcdTYyZWRcdTY5MGRcdTZiOTZcdTZlNWNcdTcxODRcdTdiZDJcdTg3NTVcdThiNThc''@;'; + put 'put ''dThlZmVcdTk4ZGZcdTk4ZmVcdTRmMzhcdTRmODFcdTRmZTFcdTU0N2JcdTVhMjBcdTViYjhcdTYxM2NcdTY1YjBcdTY2NjhcdTcxZmNcdTc1MzNcdTc5NWVcdTdkMzNcdTgxNGVcdTgxZTNcdTgzOThcdTg1YWFcdTg1Y2VcdTg3MDNcdThhMGFcdThlYWJcdThmOWJcdWY5NzFcdThmYzVcdTU5''@;'; + put 'put ''MzFcdTViYTRcdTViZTZcdTYwODlcdTViZTlcdTVjMGJcdTVmYzNcdTZjODEiXSxbImU0YTEiLCJcdWY5NzJcdTZkZjFcdTcwMGJcdTc1MWFcdTgyYWZcdThhZjZcdTRlYzBcdTUzNDFcdWY5NzNcdTk2ZDlcdTZjMGZcdTRlOWVcdTRmYzRcdTUxNTJcdTU1NWVcdTVhMjVcdTVjZThcdTYyMTFc''@;'; + put 'put ''dTcyNTlcdTgyYmRcdTgzYWFcdTg2ZmVcdTg4NTlcdThhMWRcdTk2M2ZcdTk2YzVcdTk5MTNcdTlkMDlcdTlkNWRcdTU4MGFcdTVjYjNcdTVkYmRcdTVlNDRcdTYwZTFcdTYxMTVcdTYzZTFcdTZhMDJcdTZlMjVcdTkxMDJcdTkzNTRcdTk4NGVcdTljMTBcdTlmNzdcdTViODlcdTVjYjhcdTYz''@;'; + put 'put ''MDlcdTY2NGZcdTY4NDhcdTc3M2NcdTk2YzFcdTk3OGRcdTk4NTRcdTliOWZcdTY1YTFcdThiMDFcdThlY2JcdTk1YmNcdTU1MzVcdTVjYTlcdTVkZDZcdTVlYjVcdTY2OTdcdTc2NGNcdTgzZjRcdTk1YzdcdTU4ZDNcdTYyYmNcdTcyY2VcdTlkMjhcdTRlZjBcdTU5MmVcdTYwMGZcdTY2M2Jc''@;'; + put 'put ''dTZiODNcdTc5ZTdcdTlkMjZcdTUzOTNcdTU0YzBcdTU3YzNcdTVkMTZcdTYxMWJcdTY2ZDZcdTZkYWZcdTc4OGRcdTgyN2VcdTk2OThcdTk3NDRcdTUzODRcdTYyN2NcdTYzOTZcdTZkYjJcdTdlMGFcdTgxNGJcdTk4NGQiXSxbImU1YTEiLCJcdTZhZmJcdTdmNGNcdTlkYWZcdTllMWFcdTRl''@;'; + put 'put ''NWZcdTUwM2JcdTUxYjZcdTU5MWNcdTYwZjlcdTYzZjZcdTY5MzBcdTcyM2FcdTgwMzZcdWY5NzRcdTkxY2VcdTVmMzFcdWY5NzVcdWY5NzZcdTdkMDRcdTgyZTVcdTg0NmZcdTg0YmJcdTg1ZTVcdThlOGRcdWY5NzdcdTRmNmZcdWY5NzhcdWY5NzlcdTU4ZTRcdTViNDNcdTYwNTlcdTYzZGFc''@;'; + put 'put ''dTY1MThcdTY1NmRcdTY2OThcdWY5N2FcdTY5NGFcdTZhMjNcdTZkMGJcdTcwMDFcdTcxNmNcdTc1ZDJcdTc2MGRcdTc5YjNcdTdhNzBcdWY5N2JcdTdmOGFcdWY5N2NcdTg5NDRcdWY5N2RcdThiOTNcdTkxYzBcdTk2N2RcdWY5N2VcdTk5MGFcdTU3MDRcdTVmYTFcdTY1YmNcdTZmMDFcdTc2''@;'; + put 'put ''MDBcdTc5YTZcdThhOWVcdTk5YWRcdTliNWFcdTlmNmNcdTUxMDRcdTYxYjZcdTYyOTFcdTZhOGRcdTgxYzZcdTUwNDNcdTU4MzBcdTVmNjZcdTcxMDlcdThhMDBcdThhZmFcdTViN2NcdTg2MTZcdTRmZmFcdTUxM2NcdTU2YjRcdTU5NDRcdTYzYTlcdTZkZjlcdTVkYWFcdTY5NmRcdTUxODZc''@;'; + put 'put ''dTRlODhcdTRmNTlcdWY5N2ZcdWY5ODBcdWY5ODFcdTU5ODJcdWY5ODIiXSxbImU2YTEiLCJcdWY5ODNcdTZiNWZcdTZjNWRcdWY5ODRcdTc0YjVcdTc5MTZcdWY5ODVcdTgyMDdcdTgyNDVcdTgzMzlcdThmM2ZcdThmNWRcdWY5ODZcdTk5MThcdWY5ODdcdWY5ODhcdWY5ODlcdTRlYTZcdWY5''@;'; + put 'put ''OGFcdTU3ZGZcdTVmNzlcdTY2MTNcdWY5OGJcdWY5OGNcdTc1YWJcdTdlNzlcdThiNmZcdWY5OGRcdTkwMDZcdTlhNWJcdTU2YTVcdTU4MjdcdTU5ZjhcdTVhMWZcdTViYjRcdWY5OGVcdTVlZjZcdWY5OGZcdWY5OTBcdTYzNTBcdTYzM2JcdWY5OTFcdTY5M2RcdTZjODdcdTZjYmZcdTZkOGVc''@;'; + put 'put ''dTZkOTNcdTZkZjVcdTZmMTRcdWY5OTJcdTcwZGZcdTcxMzZcdTcxNTlcdWY5OTNcdTcxYzNcdTcxZDVcdWY5OTRcdTc4NGZcdTc4NmZcdWY5OTVcdTdiNzVcdTdkZTNcdWY5OTZcdTdlMmZcdWY5OTdcdTg4NGRcdThlZGZcdWY5OThcdWY5OTlcdWY5OWFcdTkyNWJcdWY5OWJcdTljZjZcdWY5''@;'; + put 'put ''OWNcdWY5OWRcdWY5OWVcdTYwODVcdTZkODVcdWY5OWZcdTcxYjFcdWY5YTBcdWY5YTFcdTk1YjFcdTUzYWRcdWY5YTJcdWY5YTNcdWY5YTRcdTY3ZDNcdWY5YTVcdTcwOGVcdTcxMzBcdTc0MzBcdTgyNzZcdTgyZDIiXSxbImU3YTEiLCJcdWY5YTZcdTk1YmJcdTlhZTVcdTllN2RcdTY2YzRc''@;'; + put 'put ''dWY5YTdcdTcxYzFcdTg0NDlcdWY5YThcdWY5YTlcdTU4NGJcdWY5YWFcdWY5YWJcdTVkYjhcdTVmNzFcdWY5YWNcdTY2MjBcdTY2OGVcdTY5NzlcdTY5YWVcdTZjMzhcdTZjZjNcdTZlMzZcdTZmNDFcdTZmZGFcdTcwMWJcdTcwMmZcdTcxNTBcdTcxZGZcdTczNzBcdWY5YWRcdTc0NWJcdWY5''@;'; + put 'put ''YWVcdTc0ZDRcdTc2YzhcdTdhNGVcdTdlOTNcdWY5YWZcdWY5YjBcdTgyZjFcdThhNjBcdThmY2VcdWY5YjFcdTkzNDhcdWY5YjJcdTk3MTlcdWY5YjNcdWY5YjRcdTRlNDJcdTUwMmFcdWY5YjVcdTUyMDhcdTUzZTFcdTY2ZjNcdTZjNmRcdTZmY2FcdTczMGFcdTc3N2ZcdTdhNjJcdTgyYWVc''@;'; + put 'put ''dTg1ZGRcdTg2MDJcdWY5YjZcdTg4ZDRcdThhNjNcdThiN2RcdThjNmJcdWY5YjdcdTkyYjNcdWY5YjhcdTk3MTNcdTk4MTBcdTRlOTRcdTRmMGRcdTRmYzlcdTUwYjJcdTUzNDhcdTU0M2VcdTU0MzNcdTU1ZGFcdTU4NjJcdTU4YmFcdTU5NjdcdTVhMWJcdTViZTRcdTYwOWZcdWY5YjlcdTYx''@;'; + put 'put ''Y2FcdTY1NTZcdTY1ZmZcdTY2NjRcdTY4YTdcdTZjNWFcdTZmYjMiXSxbImU4YTEiLCJcdTcwY2ZcdTcxYWNcdTczNTJcdTdiN2RcdTg3MDhcdThhYTRcdTljMzJcdTlmMDdcdTVjNGJcdTZjODNcdTczNDRcdTczODlcdTkyM2FcdTZlYWJcdTc0NjVcdTc2MWZcdTdhNjlcdTdlMTVcdTg2MGFc''@;'; + put 'put ''dTUxNDBcdTU4YzVcdTY0YzFcdTc0ZWVcdTc1MTVcdTc2NzBcdTdmYzFcdTkwOTVcdTk2Y2RcdTk5NTRcdTZlMjZcdTc0ZTZcdTdhYTlcdTdhYWFcdTgxZTVcdTg2ZDlcdTg3NzhcdThhMWJcdTVhNDlcdTViOGNcdTViOWJcdTY4YTFcdTY5MDBcdTZkNjNcdTczYTlcdTc0MTNcdTc0MmNcdTc4''@;'; + put 'put ''OTdcdTdkZTlcdTdmZWJcdTgxMThcdTgxNTVcdTgzOWVcdThjNGNcdTk2MmVcdTk4MTFcdTY2ZjBcdTVmODBcdTY1ZmFcdTY3ODlcdTZjNmFcdTczOGJcdTUwMmRcdTVhMDNcdTZiNmFcdTc3ZWVcdTU5MTZcdTVkNmNcdTVkY2RcdTczMjVcdTc1NGZcdWY5YmFcdWY5YmJcdTUwZTVcdTUxZjlc''@;'; + put 'put ''dTU4MmZcdTU5MmRcdTU5OTZcdTU5ZGFcdTViZTVcdWY5YmNcdWY5YmRcdTVkYTJcdTYyZDdcdTY0MTZcdTY0OTNcdTY0ZmVcdWY5YmVcdTY2ZGNcdWY5YmZcdTZhNDhcdWY5YzBcdTcxZmZcdTc0NjRcdWY5YzEiXSxbImU5YTEiLCJcdTdhODhcdTdhYWZcdTdlNDdcdTdlNWVcdTgwMDBcdTgx''@;'; + put 'put ''NzBcdWY5YzJcdTg3ZWZcdTg5ODFcdThiMjBcdTkwNTlcdWY5YzNcdTkwODBcdTk5NTJcdTYxN2VcdTZiMzJcdTZkNzRcdTdlMWZcdTg5MjVcdThmYjFcdTRmZDFcdTUwYWRcdTUxOTdcdTUyYzdcdTU3YzdcdTU4ODlcdTViYjlcdTVlYjhcdTYxNDJcdTY5OTVcdTZkOGNcdTZlNjdcdTZlYjZc''@;'; + put 'put ''dTcxOTRcdTc0NjJcdTc1MjhcdTc1MmNcdTgwNzNcdTgzMzhcdTg0YzlcdThlMGFcdTkzOTRcdTkzZGVcdWY5YzRcdTRlOGVcdTRmNTFcdTUwNzZcdTUxMmFcdTUzYzhcdTUzY2JcdTUzZjNcdTViODdcdTViZDNcdTVjMjRcdTYxMWFcdTYxODJcdTY1ZjRcdTcyNWJcdTczOTdcdTc0NDBcdTc2''@;'; + put 'put ''YzJcdTc5NTBcdTc5OTFcdTc5YjlcdTdkMDZcdTdmYmRcdTgyOGJcdTg1ZDVcdTg2NWVcdThmYzJcdTkwNDdcdTkwZjVcdTkxZWFcdTk2ODVcdTk2ZThcdTk2ZTlcdTUyZDZcdTVmNjdcdTY1ZWRcdTY2MzFcdTY4MmZcdTcxNWNcdTdhMzZcdTkwYzFcdTk4MGFcdTRlOTFcdWY5YzVcdTZhNTJc''@;'; + put 'put ''dTZiOWVcdTZmOTBcdTcxODlcdTgwMThcdTgyYjhcdTg1NTMiXSxbImVhYTEiLCJcdTkwNGJcdTk2OTVcdTk2ZjJcdTk3ZmJcdTg1MWFcdTliMzFcdTRlOTBcdTcxOGFcdTk2YzRcdTUxNDNcdTUzOWZcdTU0ZTFcdTU3MTNcdTU3MTJcdTU3YTNcdTVhOWJcdTVhYzRcdTViYzNcdTYwMjhcdTYx''@;'; + put 'put ''M2ZcdTYzZjRcdTZjODVcdTZkMzlcdTZlNzJcdTZlOTBcdTcyMzBcdTczM2ZcdTc0NTdcdTgyZDFcdTg4ODFcdThmNDVcdTkwNjBcdWY5YzZcdTk2NjJcdTk4NThcdTlkMWJcdTY3MDhcdThkOGFcdTkyNWVcdTRmNGRcdTUwNDlcdTUwZGVcdTUzNzFcdTU3MGRcdTU5ZDRcdTVhMDFcdTVjMDlc''@;'; + put 'put ''dTYxNzBcdTY2OTBcdTZlMmRcdTcyMzJcdTc0NGJcdTdkZWZcdTgwYzNcdTg0MGVcdTg0NjZcdTg1M2ZcdTg3NWZcdTg4NWJcdTg5MThcdThiMDJcdTkwNTVcdTk3Y2JcdTliNGZcdTRlNzNcdTRmOTFcdTUxMTJcdTUxNmFcdWY5YzdcdTU1MmZcdTU1YTlcdTViN2FcdTViYTVcdTVlN2NcdTVl''@;'; + put 'put ''N2RcdTVlYmVcdTYwYTBcdTYwZGZcdTYxMDhcdTYxMDlcdTYzYzRcdTY1MzhcdTY3MDlcdWY5YzhcdTY3ZDRcdTY3ZGFcdWY5YzlcdTY5NjFcdTY5NjJcdTZjYjlcdTZkMjdcdWY5Y2FcdTZlMzhcdWY5Y2IiXSxbImViYTEiLCJcdTZmZTFcdTczMzZcdTczMzdcdWY5Y2NcdTc0NWNcdTc1MzFc''@;'; + put 'put ''dWY5Y2RcdTc2NTJcdWY5Y2VcdWY5Y2ZcdTdkYWRcdTgxZmVcdTg0MzhcdTg4ZDVcdThhOThcdThhZGJcdThhZWRcdThlMzBcdThlNDJcdTkwNGFcdTkwM2VcdTkwN2FcdTkxNDlcdTkxYzlcdTkzNmVcdWY5ZDBcdWY5ZDFcdTU4MDlcdWY5ZDJcdTZiZDNcdTgwODlcdTgwYjJcdWY5ZDNcdWY5''@;'; + put 'put ''ZDRcdTUxNDFcdTU5NmJcdTVjMzlcdWY5ZDVcdWY5ZDZcdTZmNjRcdTczYTdcdTgwZTRcdThkMDdcdWY5ZDdcdTkyMTdcdTk1OGZcdWY5ZDhcdWY5ZDlcdWY5ZGFcdWY5ZGJcdTgwN2ZcdTYyMGVcdTcwMWNcdTdkNjhcdTg3OGRcdWY5ZGNcdTU3YTBcdTYwNjlcdTYxNDdcdTZiYjdcdThhYmVc''@;'; + put 'put ''dTkyODBcdTk2YjFcdTRlNTlcdTU0MWZcdTZkZWJcdTg1MmRcdTk2NzBcdTk3ZjNcdTk4ZWVcdTYzZDZcdTZjZTNcdTkwOTFcdTUxZGRcdTYxYzlcdTgxYmFcdTlkZjlcdTRmOWRcdTUwMWFcdTUxMDBcdTViOWNcdTYxMGZcdTYxZmZcdTY0ZWNcdTY5MDVcdTZiYzVcdTc1OTFcdTc3ZTNcdTdm''@;'; + put 'put ''YTlcdTgyNjRcdTg1OGZcdTg3ZmJcdTg4NjNcdThhYmMiXSxbImVjYTEiLCJcdThiNzBcdTkxYWJcdTRlOGNcdTRlZTVcdTRmMGFcdWY5ZGRcdWY5ZGVcdTU5MzdcdTU5ZThcdWY5ZGZcdTVkZjJcdTVmMWJcdTVmNWJcdTYwMjFcdWY5ZTBcdWY5ZTFcdWY5ZTJcdWY5ZTNcdTcyM2VcdTczZTVc''@;'; + put 'put ''dWY5ZTRcdTc1NzBcdTc1Y2RcdWY5ZTVcdTc5ZmJcdWY5ZTZcdTgwMGNcdTgwMzNcdTgwODRcdTgyZTFcdTgzNTFcdWY5ZTdcdWY5ZThcdThjYmRcdThjYjNcdTkwODdcdWY5ZTlcdWY5ZWFcdTk4ZjRcdTk5MGNcdWY5ZWJcdWY5ZWNcdTcwMzdcdTc2Y2FcdTdmY2FcdTdmY2NcdTdmZmNcdThi''@;'; + put 'put ''MWFcdTRlYmFcdTRlYzFcdTUyMDNcdTUzNzBcdWY5ZWRcdTU0YmRcdTU2ZTBcdTU5ZmJcdTViYzVcdTVmMTVcdTVmY2RcdTZlNmVcdWY5ZWVcdWY5ZWZcdTdkNmFcdTgzMzVcdWY5ZjBcdTg2OTNcdThhOGRcdWY5ZjFcdTk3NmRcdTk3NzdcdWY5ZjJcdWY5ZjNcdTRlMDBcdTRmNWFcdTRmN2Vc''@;'; + put 'put ''dTU4ZjlcdTY1ZTVcdTZlYTJcdTkwMzhcdTkzYjBcdTk5YjlcdTRlZmJcdTU4ZWNcdTU5OGFcdTU5ZDlcdTYwNDFcdWY5ZjRcdWY5ZjVcdTdhMTRcdWY5ZjZcdTgzNGZcdThjYzNcdTUxNjVcdTUzNDQiXSxbImVkYTEiLCJcdWY5ZjdcdWY5ZjhcdWY5ZjlcdTRlY2RcdTUyNjlcdTViNTVcdTgy''@;'; + put 'put ''YmZcdTRlZDRcdTUyM2FcdTU0YThcdTU5YzlcdTU5ZmZcdTViNTBcdTViNTdcdTViNWNcdTYwNjNcdTYxNDhcdTZlY2JcdTcwOTlcdTcxNmVcdTczODZcdTc0ZjdcdTc1YjVcdTc4YzFcdTdkMmJcdTgwMDVcdTgxZWFcdTgzMjhcdTg1MTdcdTg1YzlcdThhZWVcdThjYzdcdTk2Y2NcdTRmNWNc''@;'; + put 'put ''dTUyZmFcdTU2YmNcdTY1YWJcdTY2MjhcdTcwN2NcdTcwYjhcdTcyMzVcdTdkYmRcdTgyOGRcdTkxNGNcdTk2YzBcdTlkNzJcdTViNzFcdTY4ZTdcdTZiOThcdTZmN2FcdTc2ZGVcdTVjOTFcdTY2YWJcdTZmNWJcdTdiYjRcdTdjMmFcdTg4MzZcdTk2ZGNcdTRlMDhcdTRlZDdcdTUzMjBcdTU4''@;'; + put 'put ''MzRcdTU4YmJcdTU4ZWZcdTU5NmNcdTVjMDdcdTVlMzNcdTVlODRcdTVmMzVcdTYzOGNcdTY2YjJcdTY3NTZcdTZhMWZcdTZhYTNcdTZiMGNcdTZmM2ZcdTcyNDZcdWY5ZmFcdTczNTBcdTc0OGJcdTdhZTBcdTdjYTdcdTgxNzhcdTgxZGZcdTgxZTdcdTgzOGFcdTg0NmNcdTg1MjNcdTg1OTRc''@;'; + put 'put ''dTg1Y2ZcdTg4ZGRcdThkMTNcdTkxYWNcdTk1NzciXSxbImVlYTEiLCJcdTk2OWNcdTUxOGRcdTU0YzlcdTU3MjhcdTViYjBcdTYyNGRcdTY3NTBcdTY4M2RcdTY4OTNcdTZlM2RcdTZlZDNcdTcwN2RcdTdlMjFcdTg4YzFcdThjYTFcdThmMDlcdTlmNGJcdTlmNGVcdTcyMmRcdTdiOGZcdThh''@;'; + put 'put ''Y2RcdTkzMWFcdTRmNDdcdTRmNGVcdTUxMzJcdTU0ODBcdTU5ZDBcdTVlOTVcdTYyYjVcdTY3NzVcdTY5NmVcdTZhMTdcdTZjYWVcdTZlMWFcdTcyZDlcdTczMmFcdTc1YmRcdTdiYjhcdTdkMzVcdTgyZTdcdTgzZjlcdTg0NTdcdTg1ZjdcdThhNWJcdThjYWZcdThlODdcdTkwMTlcdTkwYjhc''@;'; + put 'put ''dTk2Y2VcdTlmNWZcdTUyZTNcdTU0MGFcdTVhZTFcdTViYzJcdTY0NThcdTY1NzVcdTZlZjRcdTcyYzRcdWY5ZmJcdTc2ODRcdTdhNGRcdTdiMWJcdTdjNGRcdTdlM2VcdTdmZGZcdTgzN2JcdThiMmJcdThjY2FcdThkNjRcdThkZTFcdThlNWZcdThmZWFcdThmZjlcdTkwNjlcdTkzZDFcdTRm''@;'; + put 'put ''NDNcdTRmN2FcdTUwYjNcdTUxNjhcdTUxNzhcdTUyNGRcdTUyNmFcdTU4NjFcdTU4N2NcdTU5NjBcdTVjMDhcdTVjNTVcdTVlZGJcdTYwOWJcdTYyMzBcdTY4MTNcdTZiYmZcdTZjMDhcdTZmYjEiXSxbImVmYTEiLCJcdTcxNGVcdTc0MjBcdTc1MzBcdTc1MzhcdTc1NTFcdTc2NzJcdTdiNGNc''@;'; + put 'put ''dTdiOGJcdTdiYWRcdTdiYzZcdTdlOGZcdThhNmVcdThmM2VcdThmNDlcdTkyM2ZcdTkyOTNcdTkzMjJcdTk0MmJcdTk2ZmJcdTk4NWFcdTk4NmJcdTk5MWVcdTUyMDdcdTYyMmFcdTYyOThcdTZkNTlcdTc2NjRcdTdhY2FcdTdiYzBcdTdkNzZcdTUzNjBcdTVjYmVcdTVlOTdcdTZmMzhcdTcw''@;'; + put 'put ''YjlcdTdjOThcdTk3MTFcdTliOGVcdTllZGVcdTYzYTVcdTY0N2FcdTg3NzZcdTRlMDFcdTRlOTVcdTRlYWRcdTUwNWNcdTUwNzVcdTU0NDhcdTU5YzNcdTViOWFcdTVlNDBcdTVlYWRcdTVlZjdcdTVmODFcdTYwYzVcdTYzM2FcdTY1M2ZcdTY1NzRcdTY1Y2NcdTY2NzZcdTY2NzhcdTY3ZmVc''@;'; + put 'put ''dTY5NjhcdTZhODlcdTZiNjNcdTZjNDBcdTZkYzBcdTZkZThcdTZlMWZcdTZlNWVcdTcwMWVcdTcwYTFcdTczOGVcdTczZmRcdTc1M2FcdTc3NWJcdTc4ODdcdTc5OGVcdTdhMGJcdTdhN2RcdTdjYmVcdTdkOGVcdTgyNDdcdThhMDJcdThhZWFcdThjOWVcdTkxMmRcdTkxNGFcdTkxZDhcdTky''@;'; + put 'put ''NjZcdTkyY2NcdTkzMjBcdTk3MDZcdTk3NTYiXSxbImYwYTEiLCJcdTk3NWNcdTk4MDJcdTlmMGVcdTUyMzZcdTUyOTFcdTU1N2NcdTU4MjRcdTVlMWRcdTVmMWZcdTYwOGNcdTYzZDBcdTY4YWZcdTZmZGZcdTc5NmRcdTdiMmNcdTgxY2RcdTg1YmFcdTg4ZmRcdThhZjhcdThlNDRcdTkxOGRc''@;'; + put 'put ''dTk2NjRcdTk2OWJcdTk3M2RcdTk4NGNcdTlmNGFcdTRmY2VcdTUxNDZcdTUxY2JcdTUyYTlcdTU2MzJcdTVmMTRcdTVmNmJcdTYzYWFcdTY0Y2RcdTY1ZTlcdTY2NDFcdTY2ZmFcdTY2ZjlcdTY3MWRcdTY4OWRcdTY4ZDdcdTY5ZmRcdTZmMTVcdTZmNmVcdTcxNjdcdTcxZTVcdTcyMmFcdTc0''@;'; + put 'put ''YWFcdTc3M2FcdTc5NTZcdTc5NWFcdTc5ZGZcdTdhMjBcdTdhOTVcdTdjOTdcdTdjZGZcdTdkNDRcdTdlNzBcdTgwODdcdTg1ZmJcdTg2YTRcdThhNTRcdThhYmZcdThkOTlcdThlODFcdTkwMjBcdTkwNmRcdTkxZTNcdTk2M2JcdTk2ZDVcdTljZTVcdTY1Y2ZcdTdjMDdcdThkYjNcdTkzYzNc''@;'; + put 'put ''dTViNThcdTVjMGFcdTUzNTJcdTYyZDlcdTczMWRcdTUwMjdcdTViOTdcdTVmOWVcdTYwYjBcdTYxNmJcdTY4ZDVcdTZkZDlcdTc0MmVcdTdhMmVcdTdkNDJcdTdkOWNcdTdlMzFcdTgxNmIiXSxbImYxYTEiLCJcdThlMmFcdThlMzVcdTkzN2VcdTk0MThcdTRmNTBcdTU3NTBcdTVkZTZcdTVl''@;'; + put 'put ''YTdcdTYzMmJcdTdmNmFcdTRlM2JcdTRmNGZcdTRmOGZcdTUwNWFcdTU5ZGRcdTgwYzRcdTU0NmFcdTU0NjhcdTU1ZmVcdTU5NGZcdTViOTlcdTVkZGVcdTVlZGFcdTY2NWRcdTY3MzFcdTY3ZjFcdTY4MmFcdTZjZThcdTZkMzJcdTZlNGFcdTZmOGRcdTcwYjdcdTczZTBcdTc1ODdcdTdjNGNc''@;'; + put 'put ''dTdkMDJcdTdkMmNcdTdkYTJcdTgyMWZcdTg2ZGJcdThhM2JcdThhODVcdThkNzBcdThlOGFcdThmMzNcdTkwMzFcdTkxNGVcdTkxNTJcdTk0NDRcdTk5ZDBcdTdhZjlcdTdjYTVcdTRmY2FcdTUxMDFcdTUxYzZcdTU3YzhcdTViZWZcdTVjZmJcdTY2NTlcdTZhM2RcdTZkNWFcdTZlOTZcdTZm''@;'; + put 'put ''ZWNcdTcxMGNcdTc1NmZcdTdhZTNcdTg4MjJcdTkwMjFcdTkwNzVcdTk2Y2JcdTk5ZmZcdTgzMDFcdTRlMmRcdTRlZjJcdTg4NDZcdTkxY2RcdTUzN2RcdTZhZGJcdTY5NmJcdTZjNDFcdTg0N2FcdTU4OWVcdTYxOGVcdTY2ZmVcdTYyZWZcdTcwZGRcdTc1MTFcdTc1YzdcdTdlNTJcdTg0Yjhc''@;'; + put 'put ''dThiNDlcdThkMDhcdTRlNGJcdTUzZWEiXSxbImYyYTEiLCJcdTU0YWJcdTU3MzBcdTU3NDBcdTVmZDdcdTYzMDFcdTYzMDdcdTY0NmZcdTY1MmZcdTY1ZThcdTY2N2FcdTY3OWRcdTY3YjNcdTZiNjJcdTZjNjBcdTZjOWFcdTZmMmNcdTc3ZTVcdTc4MjVcdTc5NDlcdTc5NTdcdTdkMTlcdTgw''@;'; + put 'put ''YTJcdTgxMDJcdTgxZjNcdTgyOWRcdTgyYjdcdTg3MThcdThhOGNcdWY5ZmNcdThkMDRcdThkYmVcdTkwNzJcdTc2ZjRcdTdhMTlcdTdhMzdcdTdlNTRcdTgwNzdcdTU1MDdcdTU1ZDRcdTU4NzVcdTYzMmZcdTY0MjJcdTY2NDlcdTY2NGJcdTY4NmRcdTY5OWJcdTZiODRcdTZkMjVcdTZlYjFc''@;'; + put 'put ''dTczY2RcdTc0NjhcdTc0YTFcdTc1NWJcdTc1YjlcdTc2ZTFcdTc3MWVcdTc3OGJcdTc5ZTZcdTdlMDlcdTdlMWRcdTgxZmJcdTg1MmZcdTg4OTdcdThhM2FcdThjZDFcdThlZWJcdThmYjBcdTkwMzJcdTkzYWRcdTk2NjNcdTk2NzNcdTk3MDdcdTRmODRcdTUzZjFcdTU5ZWFcdTVhYzlcdTVl''@;'; + put 'put ''MTlcdTY4NGVcdTc0YzZcdTc1YmVcdTc5ZTlcdTdhOTJcdTgxYTNcdTg2ZWRcdThjZWFcdThkY2NcdThmZWRcdTY1OWZcdTY3MTVcdWY5ZmRcdTU3ZjdcdTZmNTdcdTdkZGRcdThmMmYiXSxbImYzYTEiLCJcdTkzZjZcdTk2YzZcdTVmYjVcdTYxZjJcdTZmODRcdTRlMTRcdTRmOThcdTUwMWZc''@;'; + put 'put ''dTUzYzlcdTU1ZGZcdTVkNmZcdTVkZWVcdTZiMjFcdTZiNjRcdTc4Y2JcdTdiOWFcdWY5ZmVcdThlNDlcdThlY2FcdTkwNmVcdTYzNDlcdTY0M2VcdTc3NDBcdTdhODRcdTkzMmZcdTk0N2ZcdTlmNmFcdTY0YjBcdTZmYWZcdTcxZTZcdTc0YThcdTc0ZGFcdTdhYzRcdTdjMTJcdTdlODJcdTdj''@;'; + put 'put ''YjJcdTdlOThcdThiOWFcdThkMGFcdTk0N2RcdTk5MTBcdTk5NGNcdTUyMzlcdTViZGZcdTY0ZTZcdTY3MmRcdTdkMmVcdTUwZWRcdTUzYzNcdTU4NzlcdTYxNThcdTYxNTlcdTYxZmFcdTY1YWNcdTdhZDlcdThiOTJcdThiOTZcdTUwMDlcdTUwMjFcdTUyNzVcdTU1MzFcdTVhM2NcdTVlZTBc''@;'; + put 'put ''dTVmNzBcdTYxMzRcdTY1NWVcdTY2MGNcdTY2MzZcdTY2YTJcdTY5Y2RcdTZlYzRcdTZmMzJcdTczMTZcdTc2MjFcdTdhOTNcdTgxMzlcdTgyNTlcdTgzZDZcdTg0YmNcdTUwYjVcdTU3ZjBcdTViYzBcdTViZThcdTVmNjlcdTYzYTFcdTc4MjZcdTdkYjVcdTgzZGNcdTg1MjFcdTkxYzdcdTkx''@;'; + put 'put ''ZjVcdTUxOGFcdTY3ZjVcdTdiNTYiXSxbImY0YTEiLCJcdThjYWNcdTUxYzRcdTU5YmJcdTYwYmRcdTg2NTVcdTUwMWNcdWY5ZmZcdTUyNTRcdTVjM2FcdTYxN2RcdTYyMWFcdTYyZDNcdTY0ZjJcdTY1YTVcdTZlY2NcdTc2MjBcdTgxMGFcdThlNjBcdTk2NWZcdTk2YmJcdTRlZGZcdTUzNDNc''@;'; + put 'put ''dTU1OThcdTU5MjlcdTVkZGRcdTY0YzVcdTZjYzlcdTZkZmFcdTczOTRcdTdhN2ZcdTgyMWJcdTg1YTZcdThjZTRcdThlMTBcdTkwNzdcdTkxZTdcdTk1ZTFcdTk2MjFcdTk3YzZcdTUxZjhcdTU0ZjJcdTU1ODZcdTVmYjlcdTY0YTRcdTZmODhcdTdkYjRcdThmMWZcdThmNGRcdTk0MzVcdTUw''@;'; + put 'put ''YzlcdTVjMTZcdTZjYmVcdTZkZmJcdTc1MWJcdTc3YmJcdTdjM2RcdTdjNjRcdThhNzlcdThhYzJcdTU4MWVcdTU5YmVcdTVlMTZcdTYzNzdcdTcyNTJcdTc1OGFcdTc3NmJcdThhZGNcdThjYmNcdThmMTJcdTVlZjNcdTY2NzRcdTZkZjhcdTgwN2RcdTgzYzFcdThhY2JcdTk3NTFcdTliZDZc''@;'; + put 'put ''dWZhMDBcdTUyNDNcdTY2ZmZcdTZkOTVcdTZlZWZcdTdkZTBcdThhZTZcdTkwMmVcdTkwNWVcdTlhZDRcdTUyMWRcdTUyN2ZcdTU0ZThcdTYxOTRcdTYyODRcdTYyZGJcdTY4YTIiXSxbImY1YTEiLCJcdTY5MTJcdTY5NWFcdTZhMzVcdTcwOTJcdTcxMjZcdTc4NWRcdTc5MDFcdTc5MGVcdTc5''@;'; + put 'put ''ZDJcdTdhMGRcdTgwOTZcdTgyNzhcdTgyZDVcdTgzNDlcdTg1NDlcdThjODJcdThkODVcdTkxNjJcdTkxOGJcdTkxYWVcdTRmYzNcdTU2ZDFcdTcxZWRcdTc3ZDdcdTg3MDBcdTg5ZjhcdTViZjhcdTVmZDZcdTY3NTFcdTkwYThcdTUzZTJcdTU4NWFcdTViZjVcdTYwYTRcdTYxODFcdTY0NjBc''@;'; + put 'put ''dTdlM2RcdTgwNzBcdTg1MjVcdTkyODNcdTY0YWVcdTUwYWNcdTVkMTRcdTY3MDBcdTU4OWNcdTYyYmRcdTYzYThcdTY5MGVcdTY5NzhcdTZhMWVcdTZlNmJcdTc2YmFcdTc5Y2JcdTgyYmJcdTg0MjlcdThhY2ZcdThkYThcdThmZmRcdTkxMTJcdTkxNGJcdTkxOWNcdTkzMTBcdTkzMThcdTkz''@;'; + put 'put ''OWFcdTk2ZGJcdTlhMzZcdTljMGRcdTRlMTFcdTc1NWNcdTc5NWRcdTdhZmFcdTdiNTFcdTdiYzlcdTdlMmVcdTg0YzRcdThlNTlcdThlNzRcdThlZjhcdTkwMTBcdTY2MjVcdTY5M2ZcdTc0NDNcdTUxZmFcdTY3MmVcdTllZGNcdTUxNDVcdTVmZTBcdTZjOTZcdTg3ZjJcdTg4NWRcdTg4Nzdc''@;'; + put 'put ''dTYwYjRcdTgxYjVcdTg0MDMiXSxbImY2YTEiLCJcdThkMDVcdTUzZDZcdTU0MzlcdTU2MzRcdTVhMzZcdTVjMzFcdTcwOGFcdTdmZTBcdTgwNWFcdTgxMDZcdTgxZWRcdThkYTNcdTkxODlcdTlhNWZcdTlkZjJcdTUwNzRcdTRlYzRcdTUzYTBcdTYwZmJcdTZlMmNcdTVjNjRcdTRmODhcdTUw''@;'; + put 'put ''MjRcdTU1ZTRcdTVjZDlcdTVlNWZcdTYwNjVcdTY4OTRcdTZjYmJcdTZkYzRcdTcxYmVcdTc1ZDRcdTc1ZjRcdTc2NjFcdTdhMWFcdTdhNDlcdTdkYzdcdTdkZmJcdTdmNmVcdTgxZjRcdTg2YTlcdThmMWNcdTk2YzlcdTk5YjNcdTlmNTJcdTUyNDdcdTUyYzVcdTk4ZWRcdTg5YWFcdTRlMDNc''@;'; + put 'put ''dTY3ZDJcdTZmMDZcdTRmYjVcdTViZTJcdTY3OTVcdTZjODhcdTZkNzhcdTc0MWJcdTc4MjdcdTkxZGRcdTkzN2NcdTg3YzRcdTc5ZTRcdTdhMzFcdTVmZWJcdTRlZDZcdTU0YTRcdTU1M2VcdTU4YWVcdTU5YTVcdTYwZjBcdTYyNTNcdTYyZDZcdTY3MzZcdTY5NTVcdTgyMzVcdTk2NDBcdTk5''@;'; + put 'put ''YjFcdTk5ZGRcdTUwMmNcdTUzNTNcdTU1NDRcdTU3N2NcdWZhMDFcdTYyNThcdWZhMDJcdTY0ZTJcdTY2NmJcdTY3ZGRcdTZmYzFcdTZmZWZcdTc0MjJcdTc0MzhcdThhMTciXSxbImY3YTEiLCJcdTk0MzhcdTU0NTFcdTU2MDZcdTU3NjZcdTVmNDhcdTYxOWFcdTZiNGVcdTcwNThcdTcwYWRc''@;'; + put 'put ''dTdkYmJcdThhOTVcdTU5NmFcdTgxMmJcdTYzYTJcdTc3MDhcdTgwM2RcdThjYWFcdTU4NTRcdTY0MmRcdTY5YmJcdTViOTVcdTVlMTFcdTZlNmZcdWZhMDNcdTg1NjlcdTUxNGNcdTUzZjBcdTU5MmFcdTYwMjBcdTYxNGJcdTZiODZcdTZjNzBcdTZjZjBcdTdiMWVcdTgwY2VcdTgyZDRcdThk''@;'; + put 'put ''YzZcdTkwYjBcdTk4YjFcdWZhMDRcdTY0YzdcdTZmYTRcdTY0OTFcdTY1MDRcdTUxNGVcdTU0MTBcdTU3MWZcdThhMGVcdTYxNWZcdTY4NzZcdWZhMDVcdTc1ZGJcdTdiNTJcdTdkNzFcdTkwMWFcdTU4MDZcdTY5Y2NcdTgxN2ZcdTg5MmFcdTkwMDBcdTk4MzlcdTUwNzhcdTU5NTdcdTU5YWNc''@;'; + put 'put ''dTYyOTVcdTkwMGZcdTliMmFcdTYxNWRcdTcyNzlcdTk1ZDZcdTU3NjFcdTVhNDZcdTVkZjRcdTYyOGFcdTY0YWRcdTY0ZmFcdTY3NzdcdTZjZTJcdTZkM2VcdTcyMmNcdTc0MzZcdTc4MzRcdTdmNzdcdTgyYWRcdThkZGJcdTk4MTdcdTUyMjRcdTU3NDJcdTY3N2ZcdTcyNDhcdTc0ZTNcdThj''@;'; + put 'put ''YTlcdThmYTZcdTkyMTEiXSxbImY4YTEiLCJcdTk2MmFcdTUxNmJcdTUzZWRcdTYzNGNcdTRmNjlcdTU1MDRcdTYwOTZcdTY1NTdcdTZjOWJcdTZkN2ZcdTcyNGNcdTcyZmRcdTdhMTdcdTg5ODdcdThjOWRcdTVmNmRcdTZmOGVcdTcwZjlcdTgxYThcdTYxMGVcdTRmYmZcdTUwNGZcdTYyNDFc''@;'; + put 'put ''dTcyNDdcdTdiYzdcdTdkZThcdTdmZTlcdTkwNGRcdTk3YWRcdTlhMTlcdThjYjZcdTU3NmFcdTVlNzNcdTY3YjBcdTg0MGRcdThhNTVcdTU0MjBcdTViMTZcdTVlNjNcdTVlZTJcdTVmMGFcdTY1ODNcdTgwYmFcdTg1M2RcdTk1ODlcdTk2NWJcdTRmNDhcdTUzMDVcdTUzMGRcdTUzMGZcdTU0''@;'; + put 'put ''ODZcdTU0ZmFcdTU3MDNcdTVlMDNcdTYwMTZcdTYyOWJcdTYyYjFcdTYzNTVcdWZhMDZcdTZjZTFcdTZkNjZcdTc1YjFcdTc4MzJcdTgwZGVcdTgxMmZcdTgyZGVcdTg0NjFcdTg0YjJcdTg4OGRcdTg5MTJcdTkwMGJcdTkyZWFcdTk4ZmRcdTliOTFcdTVlNDVcdTY2YjRcdTY2ZGRcdTcwMTFc''@;'; + put 'put ''dTcyMDZcdWZhMDdcdTRmZjVcdTUyN2RcdTVmNmFcdTYxNTNcdTY3NTNcdTZhMTlcdTZmMDJcdTc0ZTJcdTc5NjhcdTg4NjhcdThjNzlcdTk4YzdcdTk4YzRcdTlhNDMiXSxbImY5YTEiLCJcdTU0YzFcdTdhMWZcdTY5NTNcdThhZjdcdThjNGFcdTk4YThcdTk5YWVcdTVmN2NcdTYyYWJcdTc1''@;'; + put 'put ''YjJcdTc2YWVcdTg4YWJcdTkwN2ZcdTk2NDJcdTUzMzlcdTVmM2NcdTVmYzVcdTZjY2NcdTczY2NcdTc1NjJcdTc1OGJcdTdiNDZcdTgyZmVcdTk5OWRcdTRlNGZcdTkwM2NcdTRlMGJcdTRmNTVcdTUzYTZcdTU5MGZcdTVlYzhcdTY2MzBcdTZjYjNcdTc0NTVcdTgzNzdcdTg3NjZcdThjYzBc''@;'; + put 'put ''dTkwNTBcdTk3MWVcdTljMTVcdTU4ZDFcdTViNzhcdTg2NTBcdThiMTRcdTlkYjRcdTViZDJcdTYwNjhcdTYwOGRcdTY1ZjFcdTZjNTdcdTZmMjJcdTZmYTNcdTcwMWFcdTdmNTVcdTdmZjBcdTk1OTFcdTk1OTJcdTk2NTBcdTk3ZDNcdTUyNzJcdThmNDRcdTUxZmRcdTU0MmJcdTU0YjhcdTU1''@;'; + put 'put ''NjNcdTU1OGFcdTZhYmJcdTZkYjVcdTdkZDhcdTgyNjZcdTkyOWNcdTk2NzdcdTllNzlcdTU0MDhcdTU0YzhcdTc2ZDJcdTg2ZTRcdTk1YTRcdTk1ZDRcdTk2NWNcdTRlYTJcdTRmMDlcdTU5ZWVcdTVhZTZcdTVkZjdcdTYwNTJcdTYyOTdcdTY3NmRcdTY4NDFcdTZjODZcdTZlMmZcdTdmMzhc''@;'; + put 'put ''dTgwOWJcdTgyMmEiXSxbImZhYTEiLCJcdWZhMDhcdWZhMDlcdTk4MDVcdTRlYTVcdTUwNTVcdTU0YjNcdTU3OTNcdTU5NWFcdTViNjlcdTViYjNcdTYxYzhcdTY5NzdcdTZkNzdcdTcwMjNcdTg3ZjlcdTg5ZTNcdThhNzJcdThhZTdcdTkwODJcdTk5ZWRcdTlhYjhcdTUyYmVcdTY4MzhcdTUw''@;'; + put 'put ''MTZcdTVlNzhcdTY3NGZcdTgzNDdcdTg4NGNcdTRlYWJcdTU0MTFcdTU2YWVcdTczZTZcdTkxMTVcdTk3ZmZcdTk5MDlcdTk5NTdcdTk5OTlcdTU2NTNcdTU4OWZcdTg2NWJcdThhMzFcdTYxYjJcdTZhZjZcdTczN2JcdThlZDJcdTZiNDdcdTk2YWFcdTlhNTdcdTU5NTVcdTcyMDBcdThkNmJc''@;'; + put 'put ''dTk3NjlcdTRmZDRcdTVjZjRcdTVmMjZcdTYxZjhcdTY2NWJcdTZjZWJcdTcwYWJcdTczODRcdTczYjlcdTczZmVcdTc3MjlcdTc3NGRcdTdkNDNcdTdkNjJcdTdlMjNcdTgyMzdcdTg4NTJcdWZhMGFcdThjZTJcdTkyNDlcdTk4NmZcdTViNTFcdTdhNzRcdTg4NDBcdTk4MDFcdTVhY2NcdTRm''@;'; + put 'put ''ZTBcdTUzNTRcdTU5M2VcdTVjZmRcdTYzM2VcdTZkNzlcdTcyZjlcdTgxMDVcdTgxMDdcdTgzYTJcdTkyY2ZcdTk4MzBcdTRlYThcdTUxNDRcdTUyMTFcdTU3OGIiXSxbImZiYTEiLCJcdTVmNjJcdTZjYzJcdTZlY2VcdTcwMDVcdTcwNTBcdTcwYWZcdTcxOTJcdTczZTlcdTc0NjlcdTgzNGFc''@;'; + put 'put ''dTg3YTJcdTg4NjFcdTkwMDhcdTkwYTJcdTkzYTNcdTk5YThcdTUxNmVcdTVmNTdcdTYwZTBcdTYxNjdcdTY2YjNcdTg1NTlcdThlNGFcdTkxYWZcdTk3OGJcdTRlNGVcdTRlOTJcdTU0N2NcdTU4ZDVcdTU4ZmFcdTU5N2RcdTVjYjVcdTVmMjdcdTYyMzZcdTYyNDhcdTY2MGFcdTY2NjdcdTZi''@;'; + put 'put ''ZWJcdTZkNjlcdTZkY2ZcdTZlNTZcdTZlZjhcdTZmOTRcdTZmZTBcdTZmZTlcdTcwNWRcdTcyZDBcdTc0MjVcdTc0NWFcdTc0ZTBcdTc2OTNcdTc5NWNcdTdjY2FcdTdlMWVcdTgwZTFcdTgyYTZcdTg0NmJcdTg0YmZcdTg2NGVcdTg2NWZcdTg3NzRcdThiNzdcdThjNmFcdTkzYWNcdTk4MDBc''@;'; + put 'put ''dTk4NjVcdTYwZDFcdTYyMTZcdTkxNzdcdTVhNWFcdTY2MGZcdTZkZjdcdTZlM2VcdTc0M2ZcdTliNDJcdTVmZmRcdTYwZGFcdTdiMGZcdTU0YzRcdTVmMThcdTZjNWVcdTZjZDNcdTZkMmFcdTcwZDhcdTdkMDVcdTg2NzlcdThhMGNcdTlkM2JcdTUzMTZcdTU0OGNcdTViMDVcdTZhM2FcdTcw''@;'; + put 'put ''NmJcdTc1NzUiXSxbImZjYTEiLCJcdTc5OGRcdTc5YmVcdTgyYjFcdTgzZWZcdThhNzFcdThiNDFcdThjYThcdTk3NzRcdWZhMGJcdTY0ZjRcdTY1MmJcdTc4YmFcdTc4YmJcdTdhNmJcdTRlMzhcdTU1OWFcdTU5NTBcdTViYTZcdTVlN2JcdTYwYTNcdTYzZGJcdTZiNjFcdTY2NjVcdTY4NTNc''@;'; + put 'put ''dTZlMTlcdTcxNjVcdTc0YjBcdTdkMDhcdTkwODRcdTlhNjlcdTljMjVcdTZkM2JcdTZlZDFcdTczM2VcdThjNDFcdTk1Y2FcdTUxZjBcdTVlNGNcdTVmYThcdTYwNGRcdTYwZjZcdTYxMzBcdTYxNGNcdTY2NDNcdTY2NDRcdTY5YTVcdTZjYzFcdTZlNWZcdTZlYzlcdTZmNjJcdTcxNGNcdTc0''@;'; + put 'put ''OWNcdTc2ODdcdTdiYzFcdTdjMjdcdTgzNTJcdTg3NTdcdTkwNTFcdTk2OGRcdTllYzNcdTUzMmZcdTU2ZGVcdTVlZmJcdTVmOGFcdTYwNjJcdTYwOTRcdTYxZjdcdTY2NjZcdTY3MDNcdTZhOWNcdTZkZWVcdTZmYWVcdTcwNzBcdTczNmFcdTdlNmFcdTgxYmVcdTgzMzRcdTg2ZDRcdThhYThc''@;'; + put 'put ''dThjYzRcdTUyODNcdTczNzJcdTViOTZcdTZhNmJcdTk0MDRcdTU0ZWVcdTU2ODZcdTViNWRcdTY1NDhcdTY1ODVcdTY2YzlcdTY4OWZcdTZkOGRcdTZkYzYiXSxbImZkYTEiLCJcdTcyM2JcdTgwYjRcdTkxNzVcdTlhNGRcdTRmYWZcdTUwMTlcdTUzOWFcdTU0MGVcdTU0M2NcdTU1ODlcdTU1''@;'; + put 'put ''YzVcdTVlM2ZcdTVmOGNcdTY3M2RcdTcxNjZcdTczZGRcdTkwMDVcdTUyZGJcdTUyZjNcdTU4NjRcdTU4Y2VcdTcxMDRcdTcxOGZcdTcxZmJcdTg1YjBcdThhMTNcdTY2ODhcdTg1YThcdTU1YTdcdTY2ODRcdTcxNGFcdTg0MzFcdTUzNDlcdTU1OTlcdTZiYzFcdTVmNTlcdTVmYmRcdTYzZWVc''@;'; + put 'put ''dTY2ODlcdTcxNDdcdThhZjFcdThmMWRcdTllYmVcdTRmMTFcdTY0M2FcdTcwY2JcdTc1NjZcdTg2NjdcdTYwNjRcdThiNGVcdTlkZjhcdTUxNDdcdTUxZjZcdTUzMDhcdTZkMzZcdTgwZjhcdTllZDFcdTY2MTVcdTZiMjNcdTcwOThcdTc1ZDVcdTU0MDNcdTVjNzlcdTdkMDdcdThhMTZcdTZi''@;'; + put 'put ''MjBcdTZiM2RcdTZiNDZcdTU0MzhcdTYwNzBcdTZkM2RcdTdmZDVcdTgyMDhcdTUwZDZcdTUxZGVcdTU1OWNcdTU2NmJcdTU2Y2RcdTU5ZWNcdTViMDlcdTVlMGNcdTYxOTlcdTYxOThcdTYyMzFcdTY2NWVcdTY2ZTZcdTcxOTlcdTcxYjlcdTcxYmFcdTcyYTdcdTc5YTdcdTdhMDBcdTdmYjJc''@;'; + put 'put ''dThhNzAiXV0nKX0sNzQyODQ6WGU9PnsidXNlIHN0cmljdCI7WGUuZXhwb3J0cz1KU09OLnBhcnNlKCdbWyIwIiwiXFx1MDAwMCIsMTI3XSxbImExNDAiLCJcdTMwMDBcdWZmMGNcdTMwMDFcdTMwMDJcdWZmMGVcdTIwMjdcdWZmMWJcdWZmMWFcdWZmMWZcdWZmMDFcdWZlMzBcdTIwMjZcdTIw''@;'; + put 'put ''MjVcdWZlNTBcdWZlNTFcdWZlNTJceGI3XHVmZTU0XHVmZTU1XHVmZTU2XHVmZTU3XHVmZjVjXHUyMDEzXHVmZTMxXHUyMDE0XHVmZTMzXHUyNTc0XHVmZTM0XHVmZTRmXHVmZjA4XHVmZjA5XHVmZTM1XHVmZTM2XHVmZjViXHVmZjVkXHVmZTM3XHVmZTM4XHUzMDE0XHUzMDE1XHVmZTM5XHVm''@;'; + put 'put ''ZTNhXHUzMDEwXHUzMDExXHVmZTNiXHVmZTNjXHUzMDBhXHUzMDBiXHVmZTNkXHVmZTNlXHUzMDA4XHUzMDA5XHVmZTNmXHVmZTQwXHUzMDBjXHUzMDBkXHVmZTQxXHVmZTQyXHUzMDBlXHUzMDBmXHVmZTQzXHVmZTQ0XHVmZTU5XHVmZTVhIl0sWyJhMWExIiwiXHVmZTViXHVmZTVjXHVmZTVk''@;'; + put 'put ''XHVmZTVlXHUyMDE4XHUyMDE5XHUyMDFjXHUyMDFkXHUzMDFkXHUzMDFlXHUyMDM1XHUyMDMyXHVmZjAzXHVmZjA2XHVmZjBhXHUyMDNiXHhhN1x1MzAwM1x1MjVjYlx1MjVjZlx1MjViM1x1MjViMlx1MjVjZVx1MjYwNlx1MjYwNVx1MjVjN1x1MjVjNlx1MjVhMVx1MjVhMFx1MjViZFx1MjVi''@;'; + put 'put ''Y1x1MzJhM1x1MjEwNVx4YWZcdWZmZTNcdWZmM2ZcdTAyY2RcdWZlNDlcdWZlNGFcdWZlNGRcdWZlNGVcdWZlNGJcdWZlNGNcdWZlNWZcdWZlNjBcdWZlNjFcdWZmMGJcdWZmMGRceGQ3XHhmN1x4YjFcdTIyMWFcdWZmMWNcdWZmMWVcdWZmMWRcdTIyNjZcdTIyNjdcdTIyNjBcdTIyMWVcdTIy''@;'; + put 'put ''NTJcdTIyNjFcdWZlNjIiLDQsIlx1ZmY1ZVx1MjIyOVx1MjIyYVx1MjJhNVx1MjIyMFx1MjIxZlx1MjJiZlx1MzNkMlx1MzNkMVx1MjIyYlx1MjIyZVx1MjIzNVx1MjIzNFx1MjY0MFx1MjY0Mlx1MjI5NVx1MjI5OVx1MjE5MVx1MjE5M1x1MjE5MFx1MjE5Mlx1MjE5Nlx1MjE5N1x1MjE5OVx1''@;'; + put 'put ''MjE5OFx1MjIyNVx1MjIyM1x1ZmYwZiJdLFsiYTI0MCIsIlx1ZmYzY1x1MjIxNVx1ZmU2OFx1ZmYwNFx1ZmZlNVx1MzAxMlx1ZmZlMFx1ZmZlMVx1ZmYwNVx1ZmYyMFx1MjEwM1x1MjEwOVx1ZmU2OVx1ZmU2YVx1ZmU2Ylx1MzNkNVx1MzM5Y1x1MzM5ZFx1MzM5ZVx1MzNjZVx1MzNhMVx1MzM4''@;'; + put 'put ''ZVx1MzM4Zlx1MzNjNFx4YjBcdTUxNTlcdTUxNWJcdTUxNWVcdTUxNWRcdTUxNjFcdTUxNjNcdTU1ZTdcdTc0ZTlcdTdjY2VcdTI1ODEiLDcsIlx1MjU4Zlx1MjU4ZVx1MjU4ZFx1MjU4Y1x1MjU4Ylx1MjU4YVx1MjU4OVx1MjUzY1x1MjUzNFx1MjUyY1x1MjUyNFx1MjUxY1x1MjU5NFx1MjUw''@;'; + put 'put ''MFx1MjUwMlx1MjU5NVx1MjUwY1x1MjUxMFx1MjUxNFx1MjUxOFx1MjU2ZCJdLFsiYTJhMSIsIlx1MjU2ZVx1MjU3MFx1MjU2Zlx1MjU1MFx1MjU1ZVx1MjU2YVx1MjU2MVx1MjVlMlx1MjVlM1x1MjVlNVx1MjVlNFx1MjU3MVx1MjU3Mlx1MjU3M1x1ZmYxMCIsOSwiXHUyMTYwIiw5LCJcdTMw''@;'; + put 'put ''MjEiLDgsIlx1NTM0MVx1NTM0NFx1NTM0NVx1ZmYyMSIsMjUsIlx1ZmY0MSIsMjFdLFsiYTM0MCIsIlx1ZmY1N1x1ZmY1OFx1ZmY1OVx1ZmY1YVx1MDM5MSIsMTYsIlx1MDNhMyIsNiwiXHUwM2IxIiwxNiwiXHUwM2MzIiw2LCJcdTMxMDUiLDEwXSxbImEzYTEiLCJcdTMxMTAiLDI1LCJcdTAy''@;'; + put 'put ''ZDlcdTAyYzlcdTAyY2FcdTAyYzdcdTAyY2IiXSxbImEzZTEiLCJcdTIwYWMiXSxbImE0NDAiLCJcdTRlMDBcdTRlNTlcdTRlMDFcdTRlMDNcdTRlNDNcdTRlNWRcdTRlODZcdTRlOGNcdTRlYmFcdTUxM2ZcdTUxNjVcdTUxNmJcdTUxZTBcdTUyMDBcdTUyMDFcdTUyOWJcdTUzMTVcdTUzNDFc''@;'; + put 'put ''dTUzNWNcdTUzYzhcdTRlMDlcdTRlMGJcdTRlMDhcdTRlMGFcdTRlMmJcdTRlMzhcdTUxZTFcdTRlNDVcdTRlNDhcdTRlNWZcdTRlNWVcdTRlOGVcdTRlYTFcdTUxNDBcdTUyMDNcdTUyZmFcdTUzNDNcdTUzYzlcdTUzZTNcdTU3MWZcdTU4ZWJcdTU5MTVcdTU5MjdcdTU5NzNcdTViNTBcdTVi''@;'; + put 'put ''NTFcdTViNTNcdTViZjhcdTVjMGZcdTVjMjJcdTVjMzhcdTVjNzFcdTVkZGRcdTVkZTVcdTVkZjFcdTVkZjJcdTVkZjNcdTVkZmVcdTVlNzJcdTVlZmVcdTVmMGJcdTVmMTNcdTYyNGQiXSxbImE0YTEiLCJcdTRlMTFcdTRlMTBcdTRlMGRcdTRlMmRcdTRlMzBcdTRlMzlcdTRlNGJcdTVjMzlc''@;'; + put 'put ''dTRlODhcdTRlOTFcdTRlOTVcdTRlOTJcdTRlOTRcdTRlYTJcdTRlYzFcdTRlYzBcdTRlYzNcdTRlYzZcdTRlYzdcdTRlY2RcdTRlY2FcdTRlY2JcdTRlYzRcdTUxNDNcdTUxNDFcdTUxNjdcdTUxNmRcdTUxNmVcdTUxNmNcdTUxOTdcdTUxZjZcdTUyMDZcdTUyMDdcdTUyMDhcdTUyZmJcdTUy''@;'; + put 'put ''ZmVcdTUyZmZcdTUzMTZcdTUzMzlcdTUzNDhcdTUzNDdcdTUzNDVcdTUzNWVcdTUzODRcdTUzY2JcdTUzY2FcdTUzY2RcdTU4ZWNcdTU5MjlcdTU5MmJcdTU5MmFcdTU5MmRcdTViNTRcdTVjMTFcdTVjMjRcdTVjM2FcdTVjNmZcdTVkZjRcdTVlN2JcdTVlZmZcdTVmMTRcdTVmMTVcdTVmYzNc''@;'; + put 'put ''dTYyMDhcdTYyMzZcdTYyNGJcdTYyNGVcdTY1MmZcdTY1ODdcdTY1OTdcdTY1YTRcdTY1YjlcdTY1ZTVcdTY2ZjBcdTY3MDhcdTY3MjhcdTZiMjBcdTZiNjJcdTZiNzlcdTZiY2JcdTZiZDRcdTZiZGJcdTZjMGZcdTZjMzRcdTcwNmJcdTcyMmFcdTcyMzZcdTcyM2JcdTcyNDdcdTcyNTlcdTcy''@;'; + put 'put ''NWJcdTcyYWNcdTczOGJcdTRlMTkiXSxbImE1NDAiLCJcdTRlMTZcdTRlMTVcdTRlMTRcdTRlMThcdTRlM2JcdTRlNGRcdTRlNGZcdTRlNGVcdTRlZTVcdTRlZDhcdTRlZDRcdTRlZDVcdTRlZDZcdTRlZDdcdTRlZTNcdTRlZTRcdTRlZDlcdTRlZGVcdTUxNDVcdTUxNDRcdTUxODlcdTUxOGFc''@;'; + put 'put ''dTUxYWNcdTUxZjlcdTUxZmFcdTUxZjhcdTUyMGFcdTUyYTBcdTUyOWZcdTUzMDVcdTUzMDZcdTUzMTdcdTUzMWRcdTRlZGZcdTUzNGFcdTUzNDlcdTUzNjFcdTUzNjBcdTUzNmZcdTUzNmVcdTUzYmJcdTUzZWZcdTUzZTRcdTUzZjNcdTUzZWNcdTUzZWVcdTUzZTlcdTUzZThcdTUzZmNcdTUz''@;'; + put 'put ''ZjhcdTUzZjVcdTUzZWJcdTUzZTZcdTUzZWFcdTUzZjJcdTUzZjFcdTUzZjBcdTUzZTVcdTUzZWRcdTUzZmJcdTU2ZGJcdTU2ZGFcdTU5MTYiXSxbImE1YTEiLCJcdTU5MmVcdTU5MzFcdTU5NzRcdTU5NzZcdTViNTVcdTViODNcdTVjM2NcdTVkZThcdTVkZTdcdTVkZTZcdTVlMDJcdTVlMDNc''@;'; + put 'put ''dTVlNzNcdTVlN2NcdTVmMDFcdTVmMThcdTVmMTdcdTVmYzVcdTYyMGFcdTYyNTNcdTYyNTRcdTYyNTJcdTYyNTFcdTY1YTVcdTY1ZTZcdTY3MmVcdTY3MmNcdTY3MmFcdTY3MmJcdTY3MmRcdTZiNjNcdTZiY2RcdTZjMTFcdTZjMTBcdTZjMzhcdTZjNDFcdTZjNDBcdTZjM2VcdTcyYWZcdTcz''@;'; + put 'put ''ODRcdTczODlcdTc0ZGNcdTc0ZTZcdTc1MThcdTc1MWZcdTc1MjhcdTc1MjlcdTc1MzBcdTc1MzFcdTc1MzJcdTc1MzNcdTc1OGJcdTc2N2RcdTc2YWVcdTc2YmZcdTc2ZWVcdTc3ZGJcdTc3ZTJcdTc3ZjNcdTc5M2FcdTc5YmVcdTdhNzRcdTdhY2JcdTRlMWVcdTRlMWZcdTRlNTJcdTRlNTNc''@;'; + put 'put ''dTRlNjlcdTRlOTlcdTRlYTRcdTRlYTZcdTRlYTVcdTRlZmZcdTRmMDlcdTRmMTlcdTRmMGFcdTRmMTVcdTRmMGRcdTRmMTBcdTRmMTFcdTRmMGZcdTRlZjJcdTRlZjZcdTRlZmJcdTRlZjBcdTRlZjNcdTRlZmRcdTRmMDFcdTRmMGJcdTUxNDlcdTUxNDdcdTUxNDZcdTUxNDhcdTUxNjgiXSxb''@;'; + put 'put ''ImE2NDAiLCJcdTUxNzFcdTUxOGRcdTUxYjBcdTUyMTdcdTUyMTFcdTUyMTJcdTUyMGVcdTUyMTZcdTUyYTNcdTUzMDhcdTUzMjFcdTUzMjBcdTUzNzBcdTUzNzFcdTU0MDlcdTU0MGZcdTU0MGNcdTU0MGFcdTU0MTBcdTU0MDFcdTU0MGJcdTU0MDRcdTU0MTFcdTU0MGRcdTU0MDhcdTU0MDNc''@;'; + put 'put ''dTU0MGVcdTU0MDZcdTU0MTJcdTU2ZTBcdTU2ZGVcdTU2ZGRcdTU3MzNcdTU3MzBcdTU3MjhcdTU3MmRcdTU3MmNcdTU3MmZcdTU3MjlcdTU5MTlcdTU5MWFcdTU5MzdcdTU5MzhcdTU5ODRcdTU5NzhcdTU5ODNcdTU5N2RcdTU5NzlcdTU5ODJcdTU5ODFcdTViNTdcdTViNThcdTViODdcdTVi''@;'; + put 'put ''ODhcdTViODVcdTViODlcdTViZmFcdTVjMTZcdTVjNzlcdTVkZGVcdTVlMDZcdTVlNzZcdTVlNzQiXSxbImE2YTEiLCJcdTVmMGZcdTVmMWJcdTVmZDlcdTVmZDZcdTYyMGVcdTYyMGNcdTYyMGRcdTYyMTBcdTYyNjNcdTYyNWJcdTYyNThcdTY1MzZcdTY1ZTlcdTY1ZThcdTY1ZWNcdTY1ZWRc''@;'; + put 'put ''dTY2ZjJcdTY2ZjNcdTY3MDlcdTY3M2RcdTY3MzRcdTY3MzFcdTY3MzVcdTZiMjFcdTZiNjRcdTZiN2JcdTZjMTZcdTZjNWRcdTZjNTdcdTZjNTlcdTZjNWZcdTZjNjBcdTZjNTBcdTZjNTVcdTZjNjFcdTZjNWJcdTZjNGRcdTZjNGVcdTcwNzBcdTcyNWZcdTcyNWRcdTc2N2VcdTdhZjlcdTdj''@;'; + put 'put ''NzNcdTdjZjhcdTdmMzZcdTdmOGFcdTdmYmRcdTgwMDFcdTgwMDNcdTgwMGNcdTgwMTJcdTgwMzNcdTgwN2ZcdTgwODlcdTgwOGJcdTgwOGNcdTgxZTNcdTgxZWFcdTgxZjNcdTgxZmNcdTgyMGNcdTgyMWJcdTgyMWZcdTgyNmVcdTgyNzJcdTgyN2VcdTg2NmJcdTg4NDBcdTg4NGNcdTg4NjNc''@;'; + put 'put ''dTg5N2ZcdTk2MjFcdTRlMzJcdTRlYThcdTRmNGRcdTRmNGZcdTRmNDdcdTRmNTdcdTRmNWVcdTRmMzRcdTRmNWJcdTRmNTVcdTRmMzBcdTRmNTBcdTRmNTFcdTRmM2RcdTRmM2FcdTRmMzhcdTRmNDNcdTRmNTRcdTRmM2NcdTRmNDZcdTRmNjMiXSxbImE3NDAiLCJcdTRmNWNcdTRmNjBcdTRm''@;'; + put 'put ''MmZcdTRmNGVcdTRmMzZcdTRmNTlcdTRmNWRcdTRmNDhcdTRmNWFcdTUxNGNcdTUxNGJcdTUxNGRcdTUxNzVcdTUxYjZcdTUxYjdcdTUyMjVcdTUyMjRcdTUyMjlcdTUyMmFcdTUyMjhcdTUyYWJcdTUyYTlcdTUyYWFcdTUyYWNcdTUzMjNcdTUzNzNcdTUzNzVcdTU0MWRcdTU0MmRcdTU0MWVc''@;'; + put 'put ''dTU0M2VcdTU0MjZcdTU0NGVcdTU0MjdcdTU0NDZcdTU0NDNcdTU0MzNcdTU0NDhcdTU0NDJcdTU0MWJcdTU0MjlcdTU0NGFcdTU0MzlcdTU0M2JcdTU0MzhcdTU0MmVcdTU0MzVcdTU0MzZcdTU0MjBcdTU0M2NcdTU0NDBcdTU0MzFcdTU0MmJcdTU0MWZcdTU0MmNcdTU2ZWFcdTU2ZjBcdTU2''@;'; + put 'put ''ZTRcdTU2ZWJcdTU3NGFcdTU3NTFcdTU3NDBcdTU3NGQiXSxbImE3YTEiLCJcdTU3NDdcdTU3NGVcdTU3M2VcdTU3NTBcdTU3NGZcdTU3M2JcdTU4ZWZcdTU5M2VcdTU5OWRcdTU5OTJcdTU5YThcdTU5OWVcdTU5YTNcdTU5OTlcdTU5OTZcdTU5OGRcdTU5YTRcdTU5OTNcdTU5OGFcdTU5YTVc''@;'; + put 'put ''dTViNWRcdTViNWNcdTViNWFcdTViNWJcdTViOGNcdTViOGJcdTViOGZcdTVjMmNcdTVjNDBcdTVjNDFcdTVjM2ZcdTVjM2VcdTVjOTBcdTVjOTFcdTVjOTRcdTVjOGNcdTVkZWJcdTVlMGNcdTVlOGZcdTVlODdcdTVlOGFcdTVlZjdcdTVmMDRcdTVmMWZcdTVmNjRcdTVmNjJcdTVmNzdcdTVm''@;'; + put 'put ''NzlcdTVmZDhcdTVmY2NcdTVmZDdcdTVmY2RcdTVmZjFcdTVmZWJcdTVmZjhcdTVmZWFcdTYyMTJcdTYyMTFcdTYyODRcdTYyOTdcdTYyOTZcdTYyODBcdTYyNzZcdTYyODlcdTYyNmRcdTYyOGFcdTYyN2NcdTYyN2VcdTYyNzlcdTYyNzNcdTYyOTJcdTYyNmZcdTYyOThcdTYyNmVcdTYyOTVc''@;'; + put 'put ''dTYyOTNcdTYyOTFcdTYyODZcdTY1MzlcdTY1M2JcdTY1MzhcdTY1ZjFcdTY2ZjRcdTY3NWZcdTY3NGVcdTY3NGZcdTY3NTBcdTY3NTFcdTY3NWNcdTY3NTZcdTY3NWVcdTY3NDlcdTY3NDZcdTY3NjAiXSxbImE4NDAiLCJcdTY3NTNcdTY3NTdcdTZiNjVcdTZiY2ZcdTZjNDJcdTZjNWVcdTZj''@;'; + put 'put ''OTlcdTZjODFcdTZjODhcdTZjODlcdTZjODVcdTZjOWJcdTZjNmFcdTZjN2FcdTZjOTBcdTZjNzBcdTZjOGNcdTZjNjhcdTZjOTZcdTZjOTJcdTZjN2RcdTZjODNcdTZjNzJcdTZjN2VcdTZjNzRcdTZjODZcdTZjNzZcdTZjOGRcdTZjOTRcdTZjOThcdTZjODJcdTcwNzZcdTcwN2NcdTcwN2Rc''@;'; + put 'put ''dTcwNzhcdTcyNjJcdTcyNjFcdTcyNjBcdTcyYzRcdTcyYzJcdTczOTZcdTc1MmNcdTc1MmJcdTc1MzdcdTc1MzhcdTc2ODJcdTc2ZWZcdTc3ZTNcdTc5YzFcdTc5YzBcdTc5YmZcdTdhNzZcdTdjZmJcdTdmNTVcdTgwOTZcdTgwOTNcdTgwOWRcdTgwOThcdTgwOWJcdTgwOWFcdTgwYjJcdTgy''@;'; + put 'put ''NmZcdTgyOTIiXSxbImE4YTEiLCJcdTgyOGJcdTgyOGRcdTg5OGJcdTg5ZDJcdThhMDBcdThjMzdcdThjNDZcdThjNTVcdThjOWRcdThkNjRcdThkNzBcdThkYjNcdThlYWJcdThlY2FcdThmOWJcdThmYjBcdThmYzJcdThmYzZcdThmYzVcdThmYzRcdTVkZTFcdTkwOTFcdTkwYTJcdTkwYWFc''@;'; + put 'put ''dTkwYTZcdTkwYTNcdTkxNDlcdTkxYzZcdTkxY2NcdTk2MzJcdTk2MmVcdTk2MzFcdTk2MmFcdTk2MmNcdTRlMjZcdTRlNTZcdTRlNzNcdTRlOGJcdTRlOWJcdTRlOWVcdTRlYWJcdTRlYWNcdTRmNmZcdTRmOWRcdTRmOGRcdTRmNzNcdTRmN2ZcdTRmNmNcdTRmOWJcdTRmOGJcdTRmODZcdTRm''@;'; + put 'put ''ODNcdTRmNzBcdTRmNzVcdTRmODhcdTRmNjlcdTRmN2JcdTRmOTZcdTRmN2VcdTRmOGZcdTRmOTFcdTRmN2FcdTUxNTRcdTUxNTJcdTUxNTVcdTUxNjlcdTUxNzdcdTUxNzZcdTUxNzhcdTUxYmRcdTUxZmRcdTUyM2JcdTUyMzhcdTUyMzdcdTUyM2FcdTUyMzBcdTUyMmVcdTUyMzZcdTUyNDFc''@;'; + put 'put ''dTUyYmVcdTUyYmJcdTUzNTJcdTUzNTRcdTUzNTNcdTUzNTFcdTUzNjZcdTUzNzdcdTUzNzhcdTUzNzlcdTUzZDZcdTUzZDRcdTUzZDdcdTU0NzNcdTU0NzUiXSxbImE5NDAiLCJcdTU0OTZcdTU0NzhcdTU0OTVcdTU0ODBcdTU0N2JcdTU0NzdcdTU0ODRcdTU0OTJcdTU0ODZcdTU0N2NcdTU0''@;'; + put 'put ''OTBcdTU0NzFcdTU0NzZcdTU0OGNcdTU0OWFcdTU0NjJcdTU0NjhcdTU0OGJcdTU0N2RcdTU0OGVcdTU2ZmFcdTU3ODNcdTU3NzdcdTU3NmFcdTU3NjlcdTU3NjFcdTU3NjZcdTU3NjRcdTU3N2NcdTU5MWNcdTU5NDlcdTU5NDdcdTU5NDhcdTU5NDRcdTU5NTRcdTU5YmVcdTU5YmJcdTU5ZDRc''@;'; + put 'put ''dTU5YjlcdTU5YWVcdTU5ZDFcdTU5YzZcdTU5ZDBcdTU5Y2RcdTU5Y2JcdTU5ZDNcdTU5Y2FcdTU5YWZcdTU5YjNcdTU5ZDJcdTU5YzVcdTViNWZcdTViNjRcdTViNjNcdTViOTdcdTViOWFcdTViOThcdTViOWNcdTViOTlcdTViOWJcdTVjMWFcdTVjNDhcdTVjNDUiXSxbImE5YTEiLCJcdTVj''@;'; + put 'put ''NDZcdTVjYjdcdTVjYTFcdTVjYjhcdTVjYTlcdTVjYWJcdTVjYjFcdTVjYjNcdTVlMThcdTVlMWFcdTVlMTZcdTVlMTVcdTVlMWJcdTVlMTFcdTVlNzhcdTVlOWFcdTVlOTdcdTVlOWNcdTVlOTVcdTVlOTZcdTVlZjZcdTVmMjZcdTVmMjdcdTVmMjlcdTVmODBcdTVmODFcdTVmN2ZcdTVmN2Nc''@;'; + put 'put ''dTVmZGRcdTVmZTBcdTVmZmRcdTVmZjVcdTVmZmZcdTYwMGZcdTYwMTRcdTYwMmZcdTYwMzVcdTYwMTZcdTYwMmFcdTYwMTVcdTYwMjFcdTYwMjdcdTYwMjlcdTYwMmJcdTYwMWJcdTYyMTZcdTYyMTVcdTYyM2ZcdTYyM2VcdTYyNDBcdTYyN2ZcdTYyYzlcdTYyY2NcdTYyYzRcdTYyYmZcdTYy''@;'; + put 'put ''YzJcdTYyYjlcdTYyZDJcdTYyZGJcdTYyYWJcdTYyZDNcdTYyZDRcdTYyY2JcdTYyYzhcdTYyYThcdTYyYmRcdTYyYmNcdTYyZDBcdTYyZDlcdTYyYzdcdTYyY2RcdTYyYjVcdTYyZGFcdTYyYjFcdTYyZDhcdTYyZDZcdTYyZDdcdTYyYzZcdTYyYWNcdTYyY2VcdTY1M2VcdTY1YTdcdTY1YmNc''@;'; + put 'put ''dTY1ZmFcdTY2MTRcdTY2MTNcdTY2MGNcdTY2MDZcdTY2MDJcdTY2MGVcdTY2MDBcdTY2MGZcdTY2MTVcdTY2MGEiXSxbImFhNDAiLCJcdTY2MDdcdTY3MGRcdTY3MGJcdTY3NmRcdTY3OGJcdTY3OTVcdTY3NzFcdTY3OWNcdTY3NzNcdTY3NzdcdTY3ODdcdTY3OWRcdTY3OTdcdTY3NmZcdTY3''@;'; + put 'put ''NzBcdTY3N2ZcdTY3ODlcdTY3N2VcdTY3OTBcdTY3NzVcdTY3OWFcdTY3OTNcdTY3N2NcdTY3NmFcdTY3NzJcdTZiMjNcdTZiNjZcdTZiNjdcdTZiN2ZcdTZjMTNcdTZjMWJcdTZjZTNcdTZjZThcdTZjZjNcdTZjYjFcdTZjY2NcdTZjZTVcdTZjYjNcdTZjYmRcdTZjYmVcdTZjYmNcdTZjZTJc''@;'; + put 'put ''dTZjYWJcdTZjZDVcdTZjZDNcdTZjYjhcdTZjYzRcdTZjYjlcdTZjYzFcdTZjYWVcdTZjZDdcdTZjYzVcdTZjZjFcdTZjYmZcdTZjYmJcdTZjZTFcdTZjZGJcdTZjY2FcdTZjYWNcdTZjZWZcdTZjZGNcdTZjZDZcdTZjZTAiXSxbImFhYTEiLCJcdTcwOTVcdTcwOGVcdTcwOTJcdTcwOGFcdTcw''@;'; + put 'put ''OTlcdTcyMmNcdTcyMmRcdTcyMzhcdTcyNDhcdTcyNjdcdTcyNjlcdTcyYzBcdTcyY2VcdTcyZDlcdTcyZDdcdTcyZDBcdTczYTlcdTczYThcdTczOWZcdTczYWJcdTczYTVcdTc1M2RcdTc1OWRcdTc1OTlcdTc1OWFcdTc2ODRcdTc2YzJcdTc2ZjJcdTc2ZjRcdTc3ZTVcdTc3ZmRcdTc5M2Vc''@;'; + put 'put ''dTc5NDBcdTc5NDFcdTc5YzlcdTc5YzhcdTdhN2FcdTdhNzlcdTdhZmFcdTdjZmVcdTdmNTRcdTdmOGNcdTdmOGJcdTgwMDVcdTgwYmFcdTgwYTVcdTgwYTJcdTgwYjFcdTgwYTFcdTgwYWJcdTgwYTlcdTgwYjRcdTgwYWFcdTgwYWZcdTgxZTVcdTgxZmVcdTgyMGRcdTgyYjNcdTgyOWRcdTgy''@;'; + put 'put ''OTlcdTgyYWRcdTgyYmRcdTgyOWZcdTgyYjlcdTgyYjFcdTgyYWNcdTgyYTVcdTgyYWZcdTgyYjhcdTgyYTNcdTgyYjBcdTgyYmVcdTgyYjdcdTg2NGVcdTg2NzFcdTUyMWRcdTg4NjhcdThlY2JcdThmY2VcdThmZDRcdThmZDFcdTkwYjVcdTkwYjhcdTkwYjFcdTkwYjZcdTkxYzdcdTkxZDFc''@;'; + put 'put ''dTk1NzdcdTk1ODBcdTk2MWNcdTk2NDBcdTk2M2ZcdTk2M2JcdTk2NDQiXSxbImFiNDAiLCJcdTk2NDJcdTk2YjlcdTk2ZThcdTk3NTJcdTk3NWVcdTRlOWZcdTRlYWRcdTRlYWVcdTRmZTFcdTRmYjVcdTRmYWZcdTRmYmZcdTRmZTBcdTRmZDFcdTRmY2ZcdTRmZGRcdTRmYzNcdTRmYjZcdTRm''@;'; + put 'put ''ZDhcdTRmZGZcdTRmY2FcdTRmZDdcdTRmYWVcdTRmZDBcdTRmYzRcdTRmYzJcdTRmZGFcdTRmY2VcdTRmZGVcdTRmYjdcdTUxNTdcdTUxOTJcdTUxOTFcdTUxYTBcdTUyNGVcdTUyNDNcdTUyNGFcdTUyNGRcdTUyNGNcdTUyNGJcdTUyNDdcdTUyYzdcdTUyYzlcdTUyYzNcdTUyYzFcdTUzMGRc''@;'; + put 'put ''dTUzNTdcdTUzN2JcdTUzOWFcdTUzZGJcdTU0YWNcdTU0YzBcdTU0YThcdTU0Y2VcdTU0YzlcdTU0YjhcdTU0YTZcdTU0YjNcdTU0YzdcdTU0YzJcdTU0YmRcdTU0YWFcdTU0YzEiXSxbImFiYTEiLCJcdTU0YzRcdTU0YzhcdTU0YWZcdTU0YWJcdTU0YjFcdTU0YmJcdTU0YTlcdTU0YTdcdTU0''@;'; + put 'put ''YmZcdTU2ZmZcdTU3ODJcdTU3OGJcdTU3YTBcdTU3YTNcdTU3YTJcdTU3Y2VcdTU3YWVcdTU3OTNcdTU5NTVcdTU5NTFcdTU5NGZcdTU5NGVcdTU5NTBcdTU5ZGNcdTU5ZDhcdTU5ZmZcdTU5ZTNcdTU5ZThcdTVhMDNcdTU5ZTVcdTU5ZWFcdTU5ZGFcdTU5ZTZcdTVhMDFcdTU5ZmJcdTViNjlc''@;'; + put 'put ''dTViYTNcdTViYTZcdTViYTRcdTViYTJcdTViYTVcdTVjMDFcdTVjNGVcdTVjNGZcdTVjNGRcdTVjNGJcdTVjZDlcdTVjZDJcdTVkZjdcdTVlMWRcdTVlMjVcdTVlMWZcdTVlN2RcdTVlYTBcdTVlYTZcdTVlZmFcdTVmMDhcdTVmMmRcdTVmNjVcdTVmODhcdTVmODVcdTVmOGFcdTVmOGJcdTVm''@;'; + put 'put ''ODdcdTVmOGNcdTVmODlcdTYwMTJcdTYwMWRcdTYwMjBcdTYwMjVcdTYwMGVcdTYwMjhcdTYwNGRcdTYwNzBcdTYwNjhcdTYwNjJcdTYwNDZcdTYwNDNcdTYwNmNcdTYwNmJcdTYwNmFcdTYwNjRcdTYyNDFcdTYyZGNcdTYzMTZcdTYzMDlcdTYyZmNcdTYyZWRcdTYzMDFcdTYyZWVcdTYyZmRc''@;'; + put 'put ''dTYzMDdcdTYyZjFcdTYyZjciXSxbImFjNDAiLCJcdTYyZWZcdTYyZWNcdTYyZmVcdTYyZjRcdTYzMTFcdTYzMDJcdTY1M2ZcdTY1NDVcdTY1YWJcdTY1YmRcdTY1ZTJcdTY2MjVcdTY2MmRcdTY2MjBcdTY2MjdcdTY2MmZcdTY2MWZcdTY2MjhcdTY2MzFcdTY2MjRcdTY2ZjdcdTY3ZmZcdTY3''@;'; + put 'put ''ZDNcdTY3ZjFcdTY3ZDRcdTY3ZDBcdTY3ZWNcdTY3YjZcdTY3YWZcdTY3ZjVcdTY3ZTlcdTY3ZWZcdTY3YzRcdTY3ZDFcdTY3YjRcdTY3ZGFcdTY3ZTVcdTY3YjhcdTY3Y2ZcdTY3ZGVcdTY3ZjNcdTY3YjBcdTY3ZDlcdTY3ZTJcdTY3ZGRcdTY3ZDJcdTZiNmFcdTZiODNcdTZiODZcdTZiYjVc''@;'; + put 'put ''dTZiZDJcdTZiZDdcdTZjMWZcdTZjYzlcdTZkMGJcdTZkMzJcdTZkMmFcdTZkNDFcdTZkMjVcdTZkMGNcdTZkMzFcdTZkMWVcdTZkMTciXSxbImFjYTEiLCJcdTZkM2JcdTZkM2RcdTZkM2VcdTZkMzZcdTZkMWJcdTZjZjVcdTZkMzlcdTZkMjdcdTZkMzhcdTZkMjlcdTZkMmVcdTZkMzVcdTZk''@;'; + put 'put ''MGVcdTZkMmJcdTcwYWJcdTcwYmFcdTcwYjNcdTcwYWNcdTcwYWZcdTcwYWRcdTcwYjhcdTcwYWVcdTcwYTRcdTcyMzBcdTcyNzJcdTcyNmZcdTcyNzRcdTcyZTlcdTcyZTBcdTcyZTFcdTczYjdcdTczY2FcdTczYmJcdTczYjJcdTczY2RcdTczYzBcdTczYjNcdTc1MWFcdTc1MmRcdTc1NGZc''@;'; + put 'put ''dTc1NGNcdTc1NGVcdTc1NGJcdTc1YWJcdTc1YTRcdTc1YTVcdTc1YTJcdTc1YTNcdTc2NzhcdTc2ODZcdTc2ODdcdTc2ODhcdTc2YzhcdTc2YzZcdTc2YzNcdTc2YzVcdTc3MDFcdTc2ZjlcdTc2ZjhcdTc3MDlcdTc3MGJcdTc2ZmVcdTc2ZmNcdTc3MDdcdTc3ZGNcdTc4MDJcdTc4MTRcdTc4''@;'; + put 'put ''MGNcdTc4MGRcdTc5NDZcdTc5NDlcdTc5NDhcdTc5NDdcdTc5YjlcdTc5YmFcdTc5ZDFcdTc5ZDJcdTc5Y2JcdTdhN2ZcdTdhODFcdTdhZmZcdTdhZmRcdTdjN2RcdTdkMDJcdTdkMDVcdTdkMDBcdTdkMDlcdTdkMDdcdTdkMDRcdTdkMDZcdTdmMzhcdTdmOGVcdTdmYmZcdTgwMDQiXSxbImFk''@;'; + put 'put ''NDAiLCJcdTgwMTBcdTgwMGRcdTgwMTFcdTgwMzZcdTgwZDZcdTgwZTVcdTgwZGFcdTgwYzNcdTgwYzRcdTgwY2NcdTgwZTFcdTgwZGJcdTgwY2VcdTgwZGVcdTgwZTRcdTgwZGRcdTgxZjRcdTgyMjJcdTgyZTdcdTgzMDNcdTgzMDVcdTgyZTNcdTgyZGJcdTgyZTZcdTgzMDRcdTgyZTVcdTgz''@;'; + put 'put ''MDJcdTgzMDlcdTgyZDJcdTgyZDdcdTgyZjFcdTgzMDFcdTgyZGNcdTgyZDRcdTgyZDFcdTgyZGVcdTgyZDNcdTgyZGZcdTgyZWZcdTgzMDZcdTg2NTBcdTg2NzlcdTg2N2JcdTg2N2FcdTg4NGRcdTg4NmJcdTg5ODFcdTg5ZDRcdThhMDhcdThhMDJcdThhMDNcdThjOWVcdThjYTBcdThkNzRc''@;'; + put 'put ''dThkNzNcdThkYjRcdThlY2RcdThlY2NcdThmZjBcdThmZTZcdThmZTJcdThmZWFcdThmZTUiXSxbImFkYTEiLCJcdThmZWRcdThmZWJcdThmZTRcdThmZThcdTkwY2FcdTkwY2VcdTkwYzFcdTkwYzNcdTkxNGJcdTkxNGFcdTkxY2RcdTk1ODJcdTk2NTBcdTk2NGJcdTk2NGNcdTk2NGRcdTk3''@;'; + put 'put ''NjJcdTk3NjlcdTk3Y2JcdTk3ZWRcdTk3ZjNcdTk4MDFcdTk4YThcdTk4ZGJcdTk4ZGZcdTk5OTZcdTk5OTlcdTRlNThcdTRlYjNcdTUwMGNcdTUwMGRcdTUwMjNcdTRmZWZcdTUwMjZcdTUwMjVcdTRmZjhcdTUwMjlcdTUwMTZcdTUwMDZcdTUwM2NcdTUwMWZcdTUwMWFcdTUwMTJcdTUwMTFc''@;'; + put 'put ''dTRmZmFcdTUwMDBcdTUwMTRcdTUwMjhcdTRmZjFcdTUwMjFcdTUwMGJcdTUwMTlcdTUwMThcdTRmZjNcdTRmZWVcdTUwMmRcdTUwMmFcdTRmZmVcdTUwMmJcdTUwMDlcdTUxN2NcdTUxYTRcdTUxYTVcdTUxYTJcdTUxY2RcdTUxY2NcdTUxYzZcdTUxY2JcdTUyNTZcdTUyNWNcdTUyNTRcdTUy''@;'; + put 'put ''NWJcdTUyNWRcdTUzMmFcdTUzN2ZcdTUzOWZcdTUzOWRcdTUzZGZcdTU0ZThcdTU1MTBcdTU1MDFcdTU1MzdcdTU0ZmNcdTU0ZTVcdTU0ZjJcdTU1MDZcdTU0ZmFcdTU1MTRcdTU0ZTlcdTU0ZWRcdTU0ZTFcdTU1MDlcdTU0ZWVcdTU0ZWEiXSxbImFlNDAiLCJcdTU0ZTZcdTU1MjdcdTU1MDdc''@;'; + put 'put ''dTU0ZmRcdTU1MGZcdTU3MDNcdTU3MDRcdTU3YzJcdTU3ZDRcdTU3Y2JcdTU3YzNcdTU4MDlcdTU5MGZcdTU5NTdcdTU5NThcdTU5NWFcdTVhMTFcdTVhMThcdTVhMWNcdTVhMWZcdTVhMWJcdTVhMTNcdTU5ZWNcdTVhMjBcdTVhMjNcdTVhMjlcdTVhMjVcdTVhMGNcdTVhMDlcdTViNmJcdTVj''@;'; + put 'put ''NThcdTViYjBcdTViYjNcdTViYjZcdTViYjRcdTViYWVcdTViYjVcdTViYjlcdTViYjhcdTVjMDRcdTVjNTFcdTVjNTVcdTVjNTBcdTVjZWRcdTVjZmRcdTVjZmJcdTVjZWFcdTVjZThcdTVjZjBcdTVjZjZcdTVkMDFcdTVjZjRcdTVkZWVcdTVlMmRcdTVlMmJcdTVlYWJcdTVlYWRcdTVlYTdc''@;'; + put 'put ''dTVmMzFcdTVmOTJcdTVmOTFcdTVmOTBcdTYwNTkiXSxbImFlYTEiLCJcdTYwNjNcdTYwNjVcdTYwNTBcdTYwNTVcdTYwNmRcdTYwNjlcdTYwNmZcdTYwODRcdTYwOWZcdTYwOWFcdTYwOGRcdTYwOTRcdTYwOGNcdTYwODVcdTYwOTZcdTYyNDdcdTYyZjNcdTYzMDhcdTYyZmZcdTYzNGVcdTYz''@;'; + put 'put ''M2VcdTYzMmZcdTYzNTVcdTYzNDJcdTYzNDZcdTYzNGZcdTYzNDlcdTYzM2FcdTYzNTBcdTYzM2RcdTYzMmFcdTYzMmJcdTYzMjhcdTYzNGRcdTYzNGNcdTY1NDhcdTY1NDlcdTY1OTlcdTY1YzFcdTY1YzVcdTY2NDJcdTY2NDlcdTY2NGZcdTY2NDNcdTY2NTJcdTY2NGNcdTY2NDVcdTY2NDFc''@;'; + put 'put ''dTY2ZjhcdTY3MTRcdTY3MTVcdTY3MTdcdTY4MjFcdTY4MzhcdTY4NDhcdTY4NDZcdTY4NTNcdTY4MzlcdTY4NDJcdTY4NTRcdTY4MjlcdTY4YjNcdTY4MTdcdTY4NGNcdTY4NTFcdTY4M2RcdTY3ZjRcdTY4NTBcdTY4NDBcdTY4M2NcdTY4NDNcdTY4MmFcdTY4NDVcdTY4MTNcdTY4MThcdTY4''@;'; + put 'put ''NDFcdTZiOGFcdTZiODlcdTZiYjdcdTZjMjNcdTZjMjdcdTZjMjhcdTZjMjZcdTZjMjRcdTZjZjBcdTZkNmFcdTZkOTVcdTZkODhcdTZkODdcdTZkNjZcdTZkNzhcdTZkNzdcdTZkNTlcdTZkOTMiXSxbImFmNDAiLCJcdTZkNmNcdTZkODlcdTZkNmVcdTZkNWFcdTZkNzRcdTZkNjlcdTZkOGNc''@;'; + put 'put ''dTZkOGFcdTZkNzlcdTZkODVcdTZkNjVcdTZkOTRcdTcwY2FcdTcwZDhcdTcwZTRcdTcwZDlcdTcwYzhcdTcwY2ZcdTcyMzlcdTcyNzlcdTcyZmNcdTcyZjlcdTcyZmRcdTcyZjhcdTcyZjdcdTczODZcdTczZWRcdTc0MDlcdTczZWVcdTczZTBcdTczZWFcdTczZGVcdTc1NTRcdTc1NWRcdTc1''@;'; + put 'put ''NWNcdTc1NWFcdTc1NTlcdTc1YmVcdTc1YzVcdTc1YzdcdTc1YjJcdTc1YjNcdTc1YmRcdTc1YmNcdTc1YjlcdTc1YzJcdTc1YjhcdTc2OGJcdTc2YjBcdTc2Y2FcdTc2Y2RcdTc2Y2VcdTc3MjlcdTc3MWZcdTc3MjBcdTc3MjhcdTc3ZTlcdTc4MzBcdTc4MjdcdTc4MzhcdTc4MWRcdTc4MzRc''@;'; + put 'put ''dTc4MzciXSxbImFmYTEiLCJcdTc4MjVcdTc4MmRcdTc4MjBcdTc4MWZcdTc4MzJcdTc5NTVcdTc5NTBcdTc5NjBcdTc5NWZcdTc5NTZcdTc5NWVcdTc5NWRcdTc5NTdcdTc5NWFcdTc5ZTRcdTc5ZTNcdTc5ZTdcdTc5ZGZcdTc5ZTZcdTc5ZTlcdTc5ZDhcdTdhODRcdTdhODhcdTdhZDlcdTdi''@;'; + put 'put ''MDZcdTdiMTFcdTdjODlcdTdkMjFcdTdkMTdcdTdkMGJcdTdkMGFcdTdkMjBcdTdkMjJcdTdkMTRcdTdkMTBcdTdkMTVcdTdkMWFcdTdkMWNcdTdkMGRcdTdkMTlcdTdkMWJcdTdmM2FcdTdmNWZcdTdmOTRcdTdmYzVcdTdmYzFcdTgwMDZcdTgwMThcdTgwMTVcdTgwMTlcdTgwMTdcdTgwM2Rc''@;'; + put 'put ''dTgwM2ZcdTgwZjFcdTgxMDJcdTgwZjBcdTgxMDVcdTgwZWRcdTgwZjRcdTgxMDZcdTgwZjhcdTgwZjNcdTgxMDhcdTgwZmRcdTgxMGFcdTgwZmNcdTgwZWZcdTgxZWRcdTgxZWNcdTgyMDBcdTgyMTBcdTgyMmFcdTgyMmJcdTgyMjhcdTgyMmNcdTgyYmJcdTgzMmJcdTgzNTJcdTgzNTRcdTgz''@;'; + put 'put ''NGFcdTgzMzhcdTgzNTBcdTgzNDlcdTgzMzVcdTgzMzRcdTgzNGZcdTgzMzJcdTgzMzlcdTgzMzZcdTgzMTdcdTgzNDBcdTgzMzFcdTgzMjhcdTgzNDMiXSxbImIwNDAiLCJcdTg2NTRcdTg2OGFcdTg2YWFcdTg2OTNcdTg2YTRcdTg2YTlcdTg2OGNcdTg2YTNcdTg2OWNcdTg4NzBcdTg4Nzdc''@;'; + put 'put ''dTg4ODFcdTg4ODJcdTg4N2RcdTg4NzlcdThhMThcdThhMTBcdThhMGVcdThhMGNcdThhMTVcdThhMGFcdThhMTdcdThhMTNcdThhMTZcdThhMGZcdThhMTFcdThjNDhcdThjN2FcdThjNzlcdThjYTFcdThjYTJcdThkNzdcdThlYWNcdThlZDJcdThlZDRcdThlY2ZcdThmYjFcdTkwMDFcdTkw''@;'; + put 'put ''MDZcdThmZjdcdTkwMDBcdThmZmFcdThmZjRcdTkwMDNcdThmZmRcdTkwMDVcdThmZjhcdTkwOTVcdTkwZTFcdTkwZGRcdTkwZTJcdTkxNTJcdTkxNGRcdTkxNGNcdTkxZDhcdTkxZGRcdTkxZDdcdTkxZGNcdTkxZDlcdTk1ODNcdTk2NjJcdTk2NjNcdTk2NjEiXSxbImIwYTEiLCJcdTk2NWJc''@;'; + put 'put ''dTk2NWRcdTk2NjRcdTk2NThcdTk2NWVcdTk2YmJcdTk4ZTJcdTk5YWNcdTlhYThcdTlhZDhcdTliMjVcdTliMzJcdTliM2NcdTRlN2VcdTUwN2FcdTUwN2RcdTUwNWNcdTUwNDdcdTUwNDNcdTUwNGNcdTUwNWFcdTUwNDlcdTUwNjVcdTUwNzZcdTUwNGVcdTUwNTVcdTUwNzVcdTUwNzRcdTUw''@;'; + put 'put ''NzdcdTUwNGZcdTUwMGZcdTUwNmZcdTUwNmRcdTUxNWNcdTUxOTVcdTUxZjBcdTUyNmFcdTUyNmZcdTUyZDJcdTUyZDlcdTUyZDhcdTUyZDVcdTUzMTBcdTUzMGZcdTUzMTlcdTUzM2ZcdTUzNDBcdTUzM2VcdTUzYzNcdTY2ZmNcdTU1NDZcdTU1NmFcdTU1NjZcdTU1NDRcdTU1NWVcdTU1NjFc''@;'; + put 'put ''dTU1NDNcdTU1NGFcdTU1MzFcdTU1NTZcdTU1NGZcdTU1NTVcdTU1MmZcdTU1NjRcdTU1MzhcdTU1MmVcdTU1NWNcdTU1MmNcdTU1NjNcdTU1MzNcdTU1NDFcdTU1NTdcdTU3MDhcdTU3MGJcdTU3MDlcdTU3ZGZcdTU4MDVcdTU4MGFcdTU4MDZcdTU3ZTBcdTU3ZTRcdTU3ZmFcdTU4MDJcdTU4''@;'; + put 'put ''MzVcdTU3ZjdcdTU3ZjlcdTU5MjBcdTU5NjJcdTVhMzZcdTVhNDFcdTVhNDlcdTVhNjZcdTVhNmFcdTVhNDAiXSxbImIxNDAiLCJcdTVhM2NcdTVhNjJcdTVhNWFcdTVhNDZcdTVhNGFcdTViNzBcdTViYzdcdTViYzVcdTViYzRcdTViYzJcdTViYmZcdTViYzZcdTVjMDlcdTVjMDhcdTVjMDdc''@;'; + put 'put ''dTVjNjBcdTVjNWNcdTVjNWRcdTVkMDdcdTVkMDZcdTVkMGVcdTVkMWJcdTVkMTZcdTVkMjJcdTVkMTFcdTVkMjlcdTVkMTRcdTVkMTlcdTVkMjRcdTVkMjdcdTVkMTdcdTVkZTJcdTVlMzhcdTVlMzZcdTVlMzNcdTVlMzdcdTVlYjdcdTVlYjhcdTVlYjZcdTVlYjVcdTVlYmVcdTVmMzVcdTVm''@;'; + put 'put ''MzdcdTVmNTdcdTVmNmNcdTVmNjlcdTVmNmJcdTVmOTdcdTVmOTlcdTVmOWVcdTVmOThcdTVmYTFcdTVmYTBcdTVmOWNcdTYwN2ZcdTYwYTNcdTYwODlcdTYwYTBcdTYwYThcdTYwY2JcdTYwYjRcdTYwZTZcdTYwYmQiXSxbImIxYTEiLCJcdTYwYzVcdTYwYmJcdTYwYjVcdTYwZGNcdTYwYmNc''@;'; + put 'put ''dTYwZDhcdTYwZDVcdTYwYzZcdTYwZGZcdTYwYjhcdTYwZGFcdTYwYzdcdTYyMWFcdTYyMWJcdTYyNDhcdTYzYTBcdTYzYTdcdTYzNzJcdTYzOTZcdTYzYTJcdTYzYTVcdTYzNzdcdTYzNjdcdTYzOThcdTYzYWFcdTYzNzFcdTYzYTlcdTYzODlcdTYzODNcdTYzOWJcdTYzNmJcdTYzYThcdTYz''@;'; + put 'put ''ODRcdTYzODhcdTYzOTlcdTYzYTFcdTYzYWNcdTYzOTJcdTYzOGZcdTYzODBcdTYzN2JcdTYzNjlcdTYzNjhcdTYzN2FcdTY1NWRcdTY1NTZcdTY1NTFcdTY1NTlcdTY1NTdcdTU1NWZcdTY1NGZcdTY1NThcdTY1NTVcdTY1NTRcdTY1OWNcdTY1OWJcdTY1YWNcdTY1Y2ZcdTY1Y2JcdTY1Y2Nc''@;'; + put 'put ''dTY1Y2VcdTY2NWRcdTY2NWFcdTY2NjRcdTY2NjhcdTY2NjZcdTY2NWVcdTY2ZjlcdTUyZDdcdTY3MWJcdTY4ODFcdTY4YWZcdTY4YTJcdTY4OTNcdTY4YjVcdTY4N2ZcdTY4NzZcdTY4YjFcdTY4YTdcdTY4OTdcdTY4YjBcdTY4ODNcdTY4YzRcdTY4YWRcdTY4ODZcdTY4ODVcdTY4OTRcdTY4''@;'; + put 'put ''OWRcdTY4YThcdTY4OWZcdTY4YTFcdTY4ODJcdTZiMzJcdTZiYmEiXSxbImIyNDAiLCJcdTZiZWJcdTZiZWNcdTZjMmJcdTZkOGVcdTZkYmNcdTZkZjNcdTZkZDlcdTZkYjJcdTZkZTFcdTZkY2NcdTZkZTRcdTZkZmJcdTZkZmFcdTZlMDVcdTZkYzdcdTZkY2JcdTZkYWZcdTZkZDFcdTZkYWVc''@;'; + put 'put ''dTZkZGVcdTZkZjlcdTZkYjhcdTZkZjdcdTZkZjVcdTZkYzVcdTZkZDJcdTZlMWFcdTZkYjVcdTZkZGFcdTZkZWJcdTZkZDhcdTZkZWFcdTZkZjFcdTZkZWVcdTZkZThcdTZkYzZcdTZkYzRcdTZkYWFcdTZkZWNcdTZkYmZcdTZkZTZcdTcwZjlcdTcxMDlcdTcxMGFcdTcwZmRcdTcwZWZcdTcy''@;'; + put 'put ''M2RcdTcyN2RcdTcyODFcdTczMWNcdTczMWJcdTczMTZcdTczMTNcdTczMTlcdTczODdcdTc0MDVcdTc0MGFcdTc0MDNcdTc0MDZcdTczZmVcdTc0MGRcdTc0ZTBcdTc0ZjYiXSxbImIyYTEiLCJcdTc0ZjdcdTc1MWNcdTc1MjJcdTc1NjVcdTc1NjZcdTc1NjJcdTc1NzBcdTc1OGZcdTc1ZDRc''@;'; + put 'put ''dTc1ZDVcdTc1YjVcdTc1Y2FcdTc1Y2RcdTc2OGVcdTc2ZDRcdTc2ZDJcdTc2ZGJcdTc3MzdcdTc3M2VcdTc3M2NcdTc3MzZcdTc3MzhcdTc3M2FcdTc4NmJcdTc4NDNcdTc4NGVcdTc5NjVcdTc5NjhcdTc5NmRcdTc5ZmJcdTdhOTJcdTdhOTVcdTdiMjBcdTdiMjhcdTdiMWJcdTdiMmNcdTdi''@;'; + put 'put ''MjZcdTdiMTlcdTdiMWVcdTdiMmVcdTdjOTJcdTdjOTdcdTdjOTVcdTdkNDZcdTdkNDNcdTdkNzFcdTdkMmVcdTdkMzlcdTdkM2NcdTdkNDBcdTdkMzBcdTdkMzNcdTdkNDRcdTdkMmZcdTdkNDJcdTdkMzJcdTdkMzFcdTdmM2RcdTdmOWVcdTdmOWFcdTdmY2NcdTdmY2VcdTdmZDJcdTgwMWNc''@;'; + put 'put ''dTgwNGFcdTgwNDZcdTgxMmZcdTgxMTZcdTgxMjNcdTgxMmJcdTgxMjlcdTgxMzBcdTgxMjRcdTgyMDJcdTgyMzVcdTgyMzdcdTgyMzZcdTgyMzlcdTgzOGVcdTgzOWVcdTgzOThcdTgzNzhcdTgzYTJcdTgzOTZcdTgzYmRcdTgzYWJcdTgzOTJcdTgzOGFcdTgzOTNcdTgzODlcdTgzYTBcdTgz''@;'; + put 'put ''NzdcdTgzN2JcdTgzN2MiXSxbImIzNDAiLCJcdTgzODZcdTgzYTdcdTg2NTVcdTVmNmFcdTg2YzdcdTg2YzBcdTg2YjZcdTg2YzRcdTg2YjVcdTg2YzZcdTg2Y2JcdTg2YjFcdTg2YWZcdTg2YzlcdTg4NTNcdTg4OWVcdTg4ODhcdTg4YWJcdTg4OTJcdTg4OTZcdTg4OGRcdTg4OGJcdTg5OTNc''@;'; + put 'put ''dTg5OGZcdThhMmFcdThhMWRcdThhMjNcdThhMjVcdThhMzFcdThhMmRcdThhMWZcdThhMWJcdThhMjJcdThjNDlcdThjNWFcdThjYTlcdThjYWNcdThjYWJcdThjYThcdThjYWFcdThjYTdcdThkNjdcdThkNjZcdThkYmVcdThkYmFcdThlZGJcdThlZGZcdTkwMTlcdTkwMGRcdTkwMWFcdTkw''@;'; + put 'put ''MTdcdTkwMjNcdTkwMWZcdTkwMWRcdTkwMTBcdTkwMTVcdTkwMWVcdTkwMjBcdTkwMGZcdTkwMjJcdTkwMTZcdTkwMWJcdTkwMTQiXSxbImIzYTEiLCJcdTkwZThcdTkwZWRcdTkwZmRcdTkxNTdcdTkxY2VcdTkxZjVcdTkxZTZcdTkxZTNcdTkxZTdcdTkxZWRcdTkxZTlcdTk1ODlcdTk2NmFc''@;'; + put 'put ''dTk2NzVcdTk2NzNcdTk2NzhcdTk2NzBcdTk2NzRcdTk2NzZcdTk2NzdcdTk2NmNcdTk2YzBcdTk2ZWFcdTk2ZTlcdTdhZTBcdTdhZGZcdTk4MDJcdTk4MDNcdTliNWFcdTljZTVcdTllNzVcdTllN2ZcdTllYTVcdTllYmJcdTUwYTJcdTUwOGRcdTUwODVcdTUwOTlcdTUwOTFcdTUwODBcdTUw''@;'; + put 'put ''OTZcdTUwOThcdTUwOWFcdTY3MDBcdTUxZjFcdTUyNzJcdTUyNzRcdTUyNzVcdTUyNjlcdTUyZGVcdTUyZGRcdTUyZGJcdTUzNWFcdTUzYTVcdTU1N2JcdTU1ODBcdTU1YTdcdTU1N2NcdTU1OGFcdTU1OWRcdTU1OThcdTU1ODJcdTU1OWNcdTU1YWFcdTU1OTRcdTU1ODdcdTU1OGJcdTU1ODNc''@;'; + put 'put ''dTU1YjNcdTU1YWVcdTU1OWZcdTU1M2VcdTU1YjJcdTU1OWFcdTU1YmJcdTU1YWNcdTU1YjFcdTU1N2VcdTU1ODlcdTU1YWJcdTU1OTlcdTU3MGRcdTU4MmZcdTU4MmFcdTU4MzRcdTU4MjRcdTU4MzBcdTU4MzFcdTU4MjFcdTU4MWRcdTU4MjBcdTU4ZjlcdTU4ZmFcdTU5NjAiXSxbImI0NDAi''@;'; + put 'put ''LCJcdTVhNzdcdTVhOWFcdTVhN2ZcdTVhOTJcdTVhOWJcdTVhYTdcdTViNzNcdTViNzFcdTViZDJcdTViY2NcdTViZDNcdTViZDBcdTVjMGFcdTVjMGJcdTVjMzFcdTVkNGNcdTVkNTBcdTVkMzRcdTVkNDdcdTVkZmRcdTVlNDVcdTVlM2RcdTVlNDBcdTVlNDNcdTVlN2VcdTVlY2FcdTVlYzFc''@;'; + put 'put ''dTVlYzJcdTVlYzRcdTVmM2NcdTVmNmRcdTVmYTlcdTVmYWFcdTVmYThcdTYwZDFcdTYwZTFcdTYwYjJcdTYwYjZcdTYwZTBcdTYxMWNcdTYxMjNcdTYwZmFcdTYxMTVcdTYwZjBcdTYwZmJcdTYwZjRcdTYxNjhcdTYwZjFcdTYxMGVcdTYwZjZcdTYxMDlcdTYxMDBcdTYxMTJcdTYyMWZcdTYy''@;'; + put 'put ''NDlcdTYzYTNcdTYzOGNcdTYzY2ZcdTYzYzBcdTYzZTlcdTYzYzlcdTYzYzZcdTYzY2QiXSxbImI0YTEiLCJcdTYzZDJcdTYzZTNcdTYzZDBcdTYzZTFcdTYzZDZcdTYzZWRcdTYzZWVcdTYzNzZcdTYzZjRcdTYzZWFcdTYzZGJcdTY0NTJcdTYzZGFcdTYzZjlcdTY1NWVcdTY1NjZcdTY1NjJc''@;'; + put 'put ''dTY1NjNcdTY1OTFcdTY1OTBcdTY1YWZcdTY2NmVcdTY2NzBcdTY2NzRcdTY2NzZcdTY2NmZcdTY2OTFcdTY2N2FcdTY2N2VcdTY2NzdcdTY2ZmVcdTY2ZmZcdTY3MWZcdTY3MWRcdTY4ZmFcdTY4ZDVcdTY4ZTBcdTY4ZDhcdTY4ZDdcdTY5MDVcdTY4ZGZcdTY4ZjVcdTY4ZWVcdTY4ZTdcdTY4''@;'; + put 'put ''ZjlcdTY4ZDJcdTY4ZjJcdTY4ZTNcdTY4Y2JcdTY4Y2RcdTY5MGRcdTY5MTJcdTY5MGVcdTY4YzlcdTY4ZGFcdTY5NmVcdTY4ZmJcdTZiM2VcdTZiM2FcdTZiM2RcdTZiOThcdTZiOTZcdTZiYmNcdTZiZWZcdTZjMmVcdTZjMmZcdTZjMmNcdTZlMmZcdTZlMzhcdTZlNTRcdTZlMjFcdTZlMzJc''@;'; + put 'put ''dTZlNjdcdTZlNGFcdTZlMjBcdTZlMjVcdTZlMjNcdTZlMWJcdTZlNWJcdTZlNThcdTZlMjRcdTZlNTZcdTZlNmVcdTZlMmRcdTZlMjZcdTZlNmZcdTZlMzRcdTZlNGRcdTZlM2FcdTZlMmNcdTZlNDNcdTZlMWRcdTZlM2VcdTZlY2IiXSxbImI1NDAiLCJcdTZlODlcdTZlMTlcdTZlNGVcdTZl''@;'; + put 'put ''NjNcdTZlNDRcdTZlNzJcdTZlNjlcdTZlNWZcdTcxMTlcdTcxMWFcdTcxMjZcdTcxMzBcdTcxMjFcdTcxMzZcdTcxNmVcdTcxMWNcdTcyNGNcdTcyODRcdTcyODBcdTczMzZcdTczMjVcdTczMzRcdTczMjlcdTc0M2FcdTc0MmFcdTc0MzNcdTc0MjJcdTc0MjVcdTc0MzVcdTc0MzZcdTc0MzRc''@;'; + put 'put ''dTc0MmZcdTc0MWJcdTc0MjZcdTc0MjhcdTc1MjVcdTc1MjZcdTc1NmJcdTc1NmFcdTc1ZTJcdTc1ZGJcdTc1ZTNcdTc1ZDlcdTc1ZDhcdTc1ZGVcdTc1ZTBcdTc2N2JcdTc2N2NcdTc2OTZcdTc2OTNcdTc2YjRcdTc2ZGNcdTc3NGZcdTc3ZWRcdTc4NWRcdTc4NmNcdTc4NmZcdTdhMGRcdTdh''@;'; + put 'put ''MDhcdTdhMGJcdTdhMDVcdTdhMDBcdTdhOTgiXSxbImI1YTEiLCJcdTdhOTdcdTdhOTZcdTdhZTVcdTdhZTNcdTdiNDlcdTdiNTZcdTdiNDZcdTdiNTBcdTdiNTJcdTdiNTRcdTdiNGRcdTdiNGJcdTdiNGZcdTdiNTFcdTdjOWZcdTdjYTVcdTdkNWVcdTdkNTBcdTdkNjhcdTdkNTVcdTdkMmJc''@;'; + put 'put ''dTdkNmVcdTdkNzJcdTdkNjFcdTdkNjZcdTdkNjJcdTdkNzBcdTdkNzNcdTU1ODRcdTdmZDRcdTdmZDVcdTgwMGJcdTgwNTJcdTgwODVcdTgxNTVcdTgxNTRcdTgxNGJcdTgxNTFcdTgxNGVcdTgxMzlcdTgxNDZcdTgxM2VcdTgxNGNcdTgxNTNcdTgxNzRcdTgyMTJcdTgyMWNcdTgzZTlcdTg0''@;'; + put 'put ''MDNcdTgzZjhcdTg0MGRcdTgzZTBcdTgzYzVcdTg0MGJcdTgzYzFcdTgzZWZcdTgzZjFcdTgzZjRcdTg0NTdcdTg0MGFcdTgzZjBcdTg0MGNcdTgzY2NcdTgzZmRcdTgzZjJcdTgzY2FcdTg0MzhcdTg0MGVcdTg0MDRcdTgzZGNcdTg0MDdcdTgzZDRcdTgzZGZcdTg2NWJcdTg2ZGZcdTg2ZDlc''@;'; + put 'put ''dTg2ZWRcdTg2ZDRcdTg2ZGJcdTg2ZTRcdTg2ZDBcdTg2ZGVcdTg4NTdcdTg4YzFcdTg4YzJcdTg4YjFcdTg5ODNcdTg5OTZcdThhM2JcdThhNjBcdThhNTVcdThhNWVcdThhM2NcdThhNDEiXSxbImI2NDAiLCJcdThhNTRcdThhNWJcdThhNTBcdThhNDZcdThhMzRcdThhM2FcdThhMzZcdThh''@;'; + put 'put ''NTZcdThjNjFcdThjODJcdThjYWZcdThjYmNcdThjYjNcdThjYmRcdThjYzFcdThjYmJcdThjYzBcdThjYjRcdThjYjdcdThjYjZcdThjYmZcdThjYjhcdThkOGFcdThkODVcdThkODFcdThkY2VcdThkZGRcdThkY2JcdThkZGFcdThkZDFcdThkY2NcdThkZGJcdThkYzZcdThlZmJcdThlZjhc''@;'; + put 'put ''dThlZmNcdThmOWNcdTkwMmVcdTkwMzVcdTkwMzFcdTkwMzhcdTkwMzJcdTkwMzZcdTkxMDJcdTkwZjVcdTkxMDlcdTkwZmVcdTkxNjNcdTkxNjVcdTkxY2ZcdTkyMTRcdTkyMTVcdTkyMjNcdTkyMDlcdTkyMWVcdTkyMGRcdTkyMTBcdTkyMDdcdTkyMTFcdTk1OTRcdTk1OGZcdTk1OGJcdTk1''@;'; + put 'put ''OTEiXSxbImI2YTEiLCJcdTk1OTNcdTk1OTJcdTk1OGVcdTk2OGFcdTk2OGVcdTk2OGJcdTk2N2RcdTk2ODVcdTk2ODZcdTk2OGRcdTk2NzJcdTk2ODRcdTk2YzFcdTk2YzVcdTk2YzRcdTk2YzZcdTk2YzdcdTk2ZWZcdTk2ZjJcdTk3Y2NcdTk4MDVcdTk4MDZcdTk4MDhcdTk4ZTdcdTk4ZWFc''@;'; + put 'put ''dTk4ZWZcdTk4ZTlcdTk4ZjJcdTk4ZWRcdTk5YWVcdTk5YWRcdTllYzNcdTllY2RcdTllZDFcdTRlODJcdTUwYWRcdTUwYjVcdTUwYjJcdTUwYjNcdTUwYzVcdTUwYmVcdTUwYWNcdTUwYjdcdTUwYmJcdTUwYWZcdTUwYzdcdTUyN2ZcdTUyNzdcdTUyN2RcdTUyZGZcdTUyZTZcdTUyZTRcdTUy''@;'; + put 'put ''ZTJcdTUyZTNcdTUzMmZcdTU1ZGZcdTU1ZThcdTU1ZDNcdTU1ZTZcdTU1Y2VcdTU1ZGNcdTU1YzdcdTU1ZDFcdTU1ZTNcdTU1ZTRcdTU1ZWZcdTU1ZGFcdTU1ZTFcdTU1YzVcdTU1YzZcdTU1ZTVcdTU1YzlcdTU3MTJcdTU3MTNcdTU4NWVcdTU4NTFcdTU4NThcdTU4NTdcdTU4NWFcdTU4NTRc''@;'; + put 'put ''dTU4NmJcdTU4NGNcdTU4NmRcdTU4NGFcdTU4NjJcdTU4NTJcdTU4NGJcdTU5NjdcdTVhYzFcdTVhYzlcdTVhY2NcdTVhYmVcdTVhYmRcdTVhYmMiXSxbImI3NDAiLCJcdTVhYjNcdTVhYzJcdTVhYjJcdTVkNjlcdTVkNmZcdTVlNGNcdTVlNzlcdTVlYzlcdTVlYzhcdTVmMTJcdTVmNTlcdTVm''@;'; + put 'put ''YWNcdTVmYWVcdTYxMWFcdTYxMGZcdTYxNDhcdTYxMWZcdTYwZjNcdTYxMWJcdTYwZjlcdTYxMDFcdTYxMDhcdTYxNGVcdTYxNGNcdTYxNDRcdTYxNGRcdTYxM2VcdTYxMzRcdTYxMjdcdTYxMGRcdTYxMDZcdTYxMzdcdTYyMjFcdTYyMjJcdTY0MTNcdTY0M2VcdTY0MWVcdTY0MmFcdTY0MmRc''@;'; + put 'put ''dTY0M2RcdTY0MmNcdTY0MGZcdTY0MWNcdTY0MTRcdTY0MGRcdTY0MzZcdTY0MTZcdTY0MTdcdTY0MDZcdTY1NmNcdTY1OWZcdTY1YjBcdTY2OTdcdTY2ODlcdTY2ODdcdTY2ODhcdTY2OTZcdTY2ODRcdTY2OThcdTY2OGRcdTY3MDNcdTY5OTRcdTY5NmQiXSxbImI3YTEiLCJcdTY5NWFcdTY5''@;'; + put 'put ''NzdcdTY5NjBcdTY5NTRcdTY5NzVcdTY5MzBcdTY5ODJcdTY5NGFcdTY5NjhcdTY5NmJcdTY5NWVcdTY5NTNcdTY5NzlcdTY5ODZcdTY5NWRcdTY5NjNcdTY5NWJcdTZiNDdcdTZiNzJcdTZiYzBcdTZiYmZcdTZiZDNcdTZiZmRcdTZlYTJcdTZlYWZcdTZlZDNcdTZlYjZcdTZlYzJcdTZlOTBc''@;'; + put 'put ''dTZlOWRcdTZlYzdcdTZlYzVcdTZlYTVcdTZlOThcdTZlYmNcdTZlYmFcdTZlYWJcdTZlZDFcdTZlOTZcdTZlOWNcdTZlYzRcdTZlZDRcdTZlYWFcdTZlYTdcdTZlYjRcdTcxNGVcdTcxNTlcdTcxNjlcdTcxNjRcdTcxNDlcdTcxNjdcdTcxNWNcdTcxNmNcdTcxNjZcdTcxNGNcdTcxNjVcdTcx''@;'; + put 'put ''NWVcdTcxNDZcdTcxNjhcdTcxNTZcdTcyM2FcdTcyNTJcdTczMzdcdTczNDVcdTczM2ZcdTczM2VcdTc0NmZcdTc0NWFcdTc0NTVcdTc0NWZcdTc0NWVcdTc0NDFcdTc0M2ZcdTc0NTlcdTc0NWJcdTc0NWNcdTc1NzZcdTc1NzhcdTc2MDBcdTc1ZjBcdTc2MDFcdTc1ZjJcdTc1ZjFcdTc1ZmFc''@;'; + put 'put ''dTc1ZmZcdTc1ZjRcdTc1ZjNcdTc2ZGVcdTc2ZGZcdTc3NWJcdTc3NmJcdTc3NjZcdTc3NWVcdTc3NjMiXSxbImI4NDAiLCJcdTc3NzlcdTc3NmFcdTc3NmNcdTc3NWNcdTc3NjVcdTc3NjhcdTc3NjJcdTc3ZWVcdTc4OGVcdTc4YjBcdTc4OTdcdTc4OThcdTc4OGNcdTc4ODlcdTc4N2NcdTc4''@;'; + put 'put ''OTFcdTc4OTNcdTc4N2ZcdTc5N2FcdTc5N2ZcdTc5ODFcdTg0MmNcdTc5YmRcdTdhMWNcdTdhMWFcdTdhMjBcdTdhMTRcdTdhMWZcdTdhMWVcdTdhOWZcdTdhYTBcdTdiNzdcdTdiYzBcdTdiNjBcdTdiNmVcdTdiNjdcdTdjYjFcdTdjYjNcdTdjYjVcdTdkOTNcdTdkNzlcdTdkOTFcdTdkODFc''@;'; + put 'put ''dTdkOGZcdTdkNWJcdTdmNmVcdTdmNjlcdTdmNmFcdTdmNzJcdTdmYTlcdTdmYThcdTdmYTRcdTgwNTZcdTgwNThcdTgwODZcdTgwODRcdTgxNzFcdTgxNzBcdTgxNzhcdTgxNjVcdTgxNmVcdTgxNzNcdTgxNmIiXSxbImI4YTEiLCJcdTgxNzlcdTgxN2FcdTgxNjZcdTgyMDVcdTgyNDdcdTg0''@;'; + put 'put ''ODJcdTg0NzdcdTg0M2RcdTg0MzFcdTg0NzVcdTg0NjZcdTg0NmJcdTg0NDlcdTg0NmNcdTg0NWJcdTg0M2NcdTg0MzVcdTg0NjFcdTg0NjNcdTg0NjlcdTg0NmRcdTg0NDZcdTg2NWVcdTg2NWNcdTg2NWZcdTg2ZjlcdTg3MTNcdTg3MDhcdTg3MDdcdTg3MDBcdTg2ZmVcdTg2ZmJcdTg3MDJc''@;'; + put 'put ''dTg3MDNcdTg3MDZcdTg3MGFcdTg4NTlcdTg4ZGZcdTg4ZDRcdTg4ZDlcdTg4ZGNcdTg4ZDhcdTg4ZGRcdTg4ZTFcdTg4Y2FcdTg4ZDVcdTg4ZDJcdTg5OWNcdTg5ZTNcdThhNmJcdThhNzJcdThhNzNcdThhNjZcdThhNjlcdThhNzBcdThhODdcdThhN2NcdThhNjNcdThhYTBcdThhNzFcdThh''@;'; + put 'put ''ODVcdThhNmRcdThhNjJcdThhNmVcdThhNmNcdThhNzlcdThhN2JcdThhM2VcdThhNjhcdThjNjJcdThjOGFcdThjODlcdThjY2FcdThjYzdcdThjYzhcdThjYzRcdThjYjJcdThjYzNcdThjYzJcdThjYzVcdThkZTFcdThkZGZcdThkZThcdThkZWZcdThkZjNcdThkZmFcdThkZWFcdThkZTRc''@;'; + put 'put ''dThkZTZcdThlYjJcdThmMDNcdThmMDlcdThlZmVcdThmMGEiXSxbImI5NDAiLCJcdThmOWZcdThmYjJcdTkwNGJcdTkwNGFcdTkwNTNcdTkwNDJcdTkwNTRcdTkwM2NcdTkwNTVcdTkwNTBcdTkwNDdcdTkwNGZcdTkwNGVcdTkwNGRcdTkwNTFcdTkwM2VcdTkwNDFcdTkxMTJcdTkxMTdcdTkx''@;'; + put 'put ''NmNcdTkxNmFcdTkxNjlcdTkxYzlcdTkyMzdcdTkyNTdcdTkyMzhcdTkyM2RcdTkyNDBcdTkyM2VcdTkyNWJcdTkyNGJcdTkyNjRcdTkyNTFcdTkyMzRcdTkyNDlcdTkyNGRcdTkyNDVcdTkyMzlcdTkyM2ZcdTkyNWFcdTk1OThcdTk2OThcdTk2OTRcdTk2OTVcdTk2Y2RcdTk2Y2JcdTk2Yzlc''@;'; + put 'put ''dTk2Y2FcdTk2ZjdcdTk2ZmJcdTk2ZjlcdTk2ZjZcdTk3NTZcdTk3NzRcdTk3NzZcdTk4MTBcdTk4MTFcdTk4MTNcdTk4MGFcdTk4MTJcdTk4MGNcdTk4ZmNcdTk4ZjQiXSxbImI5YTEiLCJcdTk4ZmRcdTk4ZmVcdTk5YjNcdTk5YjFcdTk5YjRcdTlhZTFcdTljZTlcdTllODJcdTlmMGVcdTlm''@;'; + put 'put ''MTNcdTlmMjBcdTUwZTdcdTUwZWVcdTUwZTVcdTUwZDZcdTUwZWRcdTUwZGFcdTUwZDVcdTUwY2ZcdTUwZDFcdTUwZjFcdTUwY2VcdTUwZTlcdTUxNjJcdTUxZjNcdTUyODNcdTUyODJcdTUzMzFcdTUzYWRcdTU1ZmVcdTU2MDBcdTU2MWJcdTU2MTdcdTU1ZmRcdTU2MTRcdTU2MDZcdTU2MDlc''@;'; + put 'put ''dTU2MGRcdTU2MGVcdTU1ZjdcdTU2MTZcdTU2MWZcdTU2MDhcdTU2MTBcdTU1ZjZcdTU3MThcdTU3MTZcdTU4NzVcdTU4N2VcdTU4ODNcdTU4OTNcdTU4OGFcdTU4NzlcdTU4ODVcdTU4N2RcdTU4ZmRcdTU5MjVcdTU5MjJcdTU5MjRcdTU5NmFcdTU5NjlcdTVhZTFcdTVhZTZcdTVhZTlcdTVh''@;'; + put 'put ''ZDdcdTVhZDZcdTVhZDhcdTVhZTNcdTViNzVcdTViZGVcdTViZTdcdTViZTFcdTViZTVcdTViZTZcdTViZThcdTViZTJcdTViZTRcdTViZGZcdTVjMGRcdTVjNjJcdTVkODRcdTVkODdcdTVlNWJcdTVlNjNcdTVlNTVcdTVlNTdcdTVlNTRcdTVlZDNcdTVlZDZcdTVmMGFcdTVmNDZcdTVmNzBc''@;'; + put 'put ''dTVmYjlcdTYxNDciXSxbImJhNDAiLCJcdTYxM2ZcdTYxNGJcdTYxNzdcdTYxNjJcdTYxNjNcdTYxNWZcdTYxNWFcdTYxNThcdTYxNzVcdTYyMmFcdTY0ODdcdTY0NThcdTY0NTRcdTY0YTRcdTY0NzhcdTY0NWZcdTY0N2FcdTY0NTFcdTY0NjdcdTY0MzRcdTY0NmRcdTY0N2JcdTY1NzJcdTY1''@;'; + put 'put ''YTFcdTY1ZDdcdTY1ZDZcdTY2YTJcdTY2YThcdTY2OWRcdTY5OWNcdTY5YThcdTY5OTVcdTY5YzFcdTY5YWVcdTY5ZDNcdTY5Y2JcdTY5OWJcdTY5YjdcdTY5YmJcdTY5YWJcdTY5YjRcdTY5ZDBcdTY5Y2RcdTY5YWRcdTY5Y2NcdTY5YTZcdTY5YzNcdTY5YTNcdTZiNDlcdTZiNGNcdTZjMzNc''@;'; + put 'put ''dTZmMzNcdTZmMTRcdTZlZmVcdTZmMTNcdTZlZjRcdTZmMjlcdTZmM2VcdTZmMjBcdTZmMmNcdTZmMGZcdTZmMDJcdTZmMjIiXSxbImJhYTEiLCJcdTZlZmZcdTZlZWZcdTZmMDZcdTZmMzFcdTZmMzhcdTZmMzJcdTZmMjNcdTZmMTVcdTZmMmJcdTZmMmZcdTZmODhcdTZmMmFcdTZlZWNcdTZm''@;'; + put 'put ''MDFcdTZlZjJcdTZlY2NcdTZlZjdcdTcxOTRcdTcxOTlcdTcxN2RcdTcxOGFcdTcxODRcdTcxOTJcdTcyM2VcdTcyOTJcdTcyOTZcdTczNDRcdTczNTBcdTc0NjRcdTc0NjNcdTc0NmFcdTc0NzBcdTc0NmRcdTc1MDRcdTc1OTFcdTc2MjdcdTc2MGRcdTc2MGJcdTc2MDlcdTc2MTNcdTc2ZTFc''@;'; + put 'put ''dTc2ZTNcdTc3ODRcdTc3N2RcdTc3N2ZcdTc3NjFcdTc4YzFcdTc4OWZcdTc4YTdcdTc4YjNcdTc4YTlcdTc4YTNcdTc5OGVcdTc5OGZcdTc5OGRcdTdhMmVcdTdhMzFcdTdhYWFcdTdhYTlcdTdhZWRcdTdhZWZcdTdiYTFcdTdiOTVcdTdiOGJcdTdiNzVcdTdiOTdcdTdiOWRcdTdiOTRcdTdi''@;'; + put 'put ''OGZcdTdiYjhcdTdiODdcdTdiODRcdTdjYjlcdTdjYmRcdTdjYmVcdTdkYmJcdTdkYjBcdTdkOWNcdTdkYmRcdTdkYmVcdTdkYTBcdTdkY2FcdTdkYjRcdTdkYjJcdTdkYjFcdTdkYmFcdTdkYTJcdTdkYmZcdTdkYjVcdTdkYjhcdTdkYWRcdTdkZDJcdTdkYzdcdTdkYWMiXSxbImJiNDAiLCJc''@;'; + put 'put ''dTdmNzBcdTdmZTBcdTdmZTFcdTdmZGZcdTgwNWVcdTgwNWFcdTgwODdcdTgxNTBcdTgxODBcdTgxOGZcdTgxODhcdTgxOGFcdTgxN2ZcdTgxODJcdTgxZTdcdTgxZmFcdTgyMDdcdTgyMTRcdTgyMWVcdTgyNGJcdTg0YzlcdTg0YmZcdTg0YzZcdTg0YzRcdTg0OTlcdTg0OWVcdTg0YjJcdTg0''@;'; + put 'put ''OWNcdTg0Y2JcdTg0YjhcdTg0YzBcdTg0ZDNcdTg0OTBcdTg0YmNcdTg0ZDFcdTg0Y2FcdTg3M2ZcdTg3MWNcdTg3M2JcdTg3MjJcdTg3MjVcdTg3MzRcdTg3MThcdTg3NTVcdTg3MzdcdTg3MjlcdTg4ZjNcdTg5MDJcdTg4ZjRcdTg4ZjlcdTg4ZjhcdTg4ZmRcdTg4ZThcdTg5MWFcdTg4ZWZc''@;'; + put 'put ''dThhYTZcdThhOGNcdThhOWVcdThhYTNcdThhOGRcdThhYTFcdThhOTNcdThhYTQiXSxbImJiYTEiLCJcdThhYWFcdThhYTVcdThhYThcdThhOThcdThhOTFcdThhOWFcdThhYTdcdThjNmFcdThjOGRcdThjOGNcdThjZDNcdThjZDFcdThjZDJcdThkNmJcdThkOTlcdThkOTVcdThkZmNcdThm''@;'; + put 'put ''MTRcdThmMTJcdThmMTVcdThmMTNcdThmYTNcdTkwNjBcdTkwNThcdTkwNWNcdTkwNjNcdTkwNTlcdTkwNWVcdTkwNjJcdTkwNWRcdTkwNWJcdTkxMTlcdTkxMThcdTkxMWVcdTkxNzVcdTkxNzhcdTkxNzdcdTkxNzRcdTkyNzhcdTkyODBcdTkyODVcdTkyOThcdTkyOTZcdTkyN2JcdTkyOTNc''@;'; + put 'put ''dTkyOWNcdTkyYThcdTkyN2NcdTkyOTFcdTk1YTFcdTk1YThcdTk1YTlcdTk1YTNcdTk1YTVcdTk1YTRcdTk2OTlcdTk2OWNcdTk2OWJcdTk2Y2NcdTk2ZDJcdTk3MDBcdTk3N2NcdTk3ODVcdTk3ZjZcdTk4MTdcdTk4MThcdTk4YWZcdTk4YjFcdTk5MDNcdTk5MDVcdTk5MGNcdTk5MDlcdTk5''@;'; + put 'put ''YzFcdTlhYWZcdTlhYjBcdTlhZTZcdTliNDFcdTliNDJcdTljZjRcdTljZjZcdTljZjNcdTllYmNcdTlmM2JcdTlmNGFcdTUxMDRcdTUxMDBcdTUwZmJcdTUwZjVcdTUwZjlcdTUxMDJcdTUxMDhcdTUxMDlcdTUxMDVcdTUxZGMiXSxbImJjNDAiLCJcdTUyODdcdTUyODhcdTUyODlcdTUyOGRc''@;'; + put 'put ''dTUyOGFcdTUyZjBcdTUzYjJcdTU2MmVcdTU2M2JcdTU2MzlcdTU2MzJcdTU2M2ZcdTU2MzRcdTU2MjlcdTU2NTNcdTU2NGVcdTU2NTdcdTU2NzRcdTU2MzZcdTU2MmZcdTU2MzBcdTU4ODBcdTU4OWZcdTU4OWVcdTU4YjNcdTU4OWNcdTU4YWVcdTU4YTlcdTU4YTZcdTU5NmRcdTViMDlcdTVh''@;'; + put 'put ''ZmJcdTViMGJcdTVhZjVcdTViMGNcdTViMDhcdTViZWVcdTViZWNcdTViZTlcdTViZWJcdTVjNjRcdTVjNjVcdTVkOWRcdTVkOTRcdTVlNjJcdTVlNWZcdTVlNjFcdTVlZTJcdTVlZGFcdTVlZGZcdTVlZGRcdTVlZTNcdTVlZTBcdTVmNDhcdTVmNzFcdTVmYjdcdTVmYjVcdTYxNzZcdTYxNjdc''@;'; + put 'put ''dTYxNmVcdTYxNWRcdTYxNTVcdTYxODIiXSxbImJjYTEiLCJcdTYxN2NcdTYxNzBcdTYxNmJcdTYxN2VcdTYxYTdcdTYxOTBcdTYxYWJcdTYxOGVcdTYxYWNcdTYxOWFcdTYxYTRcdTYxOTRcdTYxYWVcdTYyMmVcdTY0NjlcdTY0NmZcdTY0NzlcdTY0OWVcdTY0YjJcdTY0ODhcdTY0OTBcdTY0''@;'; + put 'put ''YjBcdTY0YTVcdTY0OTNcdTY0OTVcdTY0YTlcdTY0OTJcdTY0YWVcdTY0YWRcdTY0YWJcdTY0OWFcdTY0YWNcdTY0OTlcdTY0YTJcdTY0YjNcdTY1NzVcdTY1NzdcdTY1NzhcdTY2YWVcdTY2YWJcdTY2YjRcdTY2YjFcdTZhMjNcdTZhMWZcdTY5ZThcdTZhMDFcdTZhMWVcdTZhMTlcdTY5ZmRc''@;'; + put 'put ''dTZhMjFcdTZhMTNcdTZhMGFcdTY5ZjNcdTZhMDJcdTZhMDVcdTY5ZWRcdTZhMTFcdTZiNTBcdTZiNGVcdTZiYTRcdTZiYzVcdTZiYzZcdTZmM2ZcdTZmN2NcdTZmODRcdTZmNTFcdTZmNjZcdTZmNTRcdTZmODZcdTZmNmRcdTZmNWJcdTZmNzhcdTZmNmVcdTZmOGVcdTZmN2FcdTZmNzBcdTZm''@;'; + put 'put ''NjRcdTZmOTdcdTZmNThcdTZlZDVcdTZmNmZcdTZmNjBcdTZmNWZcdTcxOWZcdTcxYWNcdTcxYjFcdTcxYThcdTcyNTZcdTcyOWJcdTczNGVcdTczNTdcdTc0NjlcdTc0OGJcdTc0ODMiXSxbImJkNDAiLCJcdTc0N2VcdTc0ODBcdTc1N2ZcdTc2MjBcdTc2MjlcdTc2MWZcdTc2MjRcdTc2MjZc''@;'; + put 'put ''dTc2MjFcdTc2MjJcdTc2OWFcdTc2YmFcdTc2ZTRcdTc3OGVcdTc3ODdcdTc3OGNcdTc3OTFcdTc3OGJcdTc4Y2JcdTc4YzVcdTc4YmFcdTc4Y2FcdTc4YmVcdTc4ZDVcdTc4YmNcdTc4ZDBcdTdhM2ZcdTdhM2NcdTdhNDBcdTdhM2RcdTdhMzdcdTdhM2JcdTdhYWZcdTdhYWVcdTdiYWRcdTdi''@;'; + put 'put ''YjFcdTdiYzRcdTdiYjRcdTdiYzZcdTdiYzdcdTdiYzFcdTdiYTBcdTdiY2NcdTdjY2FcdTdkZTBcdTdkZjRcdTdkZWZcdTdkZmJcdTdkZDhcdTdkZWNcdTdkZGRcdTdkZThcdTdkZTNcdTdkZGFcdTdkZGVcdTdkZTlcdTdkOWVcdTdkZDlcdTdkZjJcdTdkZjlcdTdmNzVcdTdmNzdcdTdmYWYi''@;'; + put 'put ''XSxbImJkYTEiLCJcdTdmZTlcdTgwMjZcdTgxOWJcdTgxOWNcdTgxOWRcdTgxYTBcdTgxOWFcdTgxOThcdTg1MTdcdTg1M2RcdTg1MWFcdTg0ZWVcdTg1MmNcdTg1MmRcdTg1MTNcdTg1MTFcdTg1MjNcdTg1MjFcdTg1MTRcdTg0ZWNcdTg1MjVcdTg0ZmZcdTg1MDZcdTg3ODJcdTg3NzRcdTg3''@;'; + put 'put ''NzZcdTg3NjBcdTg3NjZcdTg3NzhcdTg3NjhcdTg3NTlcdTg3NTdcdTg3NGNcdTg3NTNcdTg4NWJcdTg4NWRcdTg5MTBcdTg5MDdcdTg5MTJcdTg5MTNcdTg5MTVcdTg5MGFcdThhYmNcdThhZDJcdThhYzdcdThhYzRcdThhOTVcdThhY2JcdThhZjhcdThhYjJcdThhYzlcdThhYzJcdThhYmZc''@;'; + put 'put ''dThhYjBcdThhZDZcdThhY2RcdThhYjZcdThhYjlcdThhZGJcdThjNGNcdThjNGVcdThjNmNcdThjZTBcdThjZGVcdThjZTZcdThjZTRcdThjZWNcdThjZWRcdThjZTJcdThjZTNcdThjZGNcdThjZWFcdThjZTFcdThkNmRcdThkOWZcdThkYTNcdThlMmJcdThlMTBcdThlMWRcdThlMjJcdThl''@;'; + put 'put ''MGZcdThlMjlcdThlMWZcdThlMjFcdThlMWVcdThlYmFcdThmMWRcdThmMWJcdThmMWZcdThmMjlcdThmMjZcdThmMmFcdThmMWNcdThmMWUiXSxbImJlNDAiLCJcdThmMjVcdTkwNjlcdTkwNmVcdTkwNjhcdTkwNmRcdTkwNzdcdTkxMzBcdTkxMmRcdTkxMjdcdTkxMzFcdTkxODdcdTkxODlc''@;'; + put 'put ''dTkxOGJcdTkxODNcdTkyYzVcdTkyYmJcdTkyYjdcdTkyZWFcdTkyYWNcdTkyZTRcdTkyYzFcdTkyYjNcdTkyYmNcdTkyZDJcdTkyYzdcdTkyZjBcdTkyYjJcdTk1YWRcdTk1YjFcdTk3MDRcdTk3MDZcdTk3MDdcdTk3MDlcdTk3NjBcdTk3OGRcdTk3OGJcdTk3OGZcdTk4MjFcdTk4MmJcdTk4''@;'; + put 'put ''MWNcdTk4YjNcdTk5MGFcdTk5MTNcdTk5MTJcdTk5MThcdTk5ZGRcdTk5ZDBcdTk5ZGZcdTk5ZGJcdTk5ZDFcdTk5ZDVcdTk5ZDJcdTk5ZDlcdTlhYjdcdTlhZWVcdTlhZWZcdTliMjdcdTliNDVcdTliNDRcdTliNzdcdTliNmZcdTlkMDZcdTlkMDkiXSxbImJlYTEiLCJcdTlkMDNcdTllYTlc''@;'; + put 'put ''dTllYmVcdTllY2VcdTU4YThcdTlmNTJcdTUxMTJcdTUxMThcdTUxMTRcdTUxMTBcdTUxMTVcdTUxODBcdTUxYWFcdTUxZGRcdTUyOTFcdTUyOTNcdTUyZjNcdTU2NTlcdTU2NmJcdTU2NzlcdTU2NjlcdTU2NjRcdTU2NzhcdTU2NmFcdTU2NjhcdTU2NjVcdTU2NzFcdTU2NmZcdTU2NmNcdTU2''@;'; + put 'put ''NjJcdTU2NzZcdTU4YzFcdTU4YmVcdTU4YzdcdTU4YzVcdTU5NmVcdTViMWRcdTViMzRcdTViNzhcdTViZjBcdTVjMGVcdTVmNGFcdTYxYjJcdTYxOTFcdTYxYTlcdTYxOGFcdTYxY2RcdTYxYjZcdTYxYmVcdTYxY2FcdTYxYzhcdTYyMzBcdTY0YzVcdTY0YzFcdTY0Y2JcdTY0YmJcdTY0YmNc''@;'; + put 'put ''dTY0ZGFcdTY0YzRcdTY0YzdcdTY0YzJcdTY0Y2RcdTY0YmZcdTY0ZDJcdTY0ZDRcdTY0YmVcdTY1NzRcdTY2YzZcdTY2YzlcdTY2YjlcdTY2YzRcdTY2YzdcdTY2YjhcdTZhM2RcdTZhMzhcdTZhM2FcdTZhNTlcdTZhNmJcdTZhNThcdTZhMzlcdTZhNDRcdTZhNjJcdTZhNjFcdTZhNGJcdTZh''@;'; + put 'put ''NDdcdTZhMzVcdTZhNWZcdTZhNDhcdTZiNTlcdTZiNzdcdTZjMDVcdTZmYzJcdTZmYjFcdTZmYTEiXSxbImJmNDAiLCJcdTZmYzNcdTZmYTRcdTZmYzFcdTZmYTdcdTZmYjNcdTZmYzBcdTZmYjlcdTZmYjZcdTZmYTZcdTZmYTBcdTZmYjRcdTcxYmVcdTcxYzlcdTcxZDBcdTcxZDJcdTcxYzhc''@;'; + put 'put ''dTcxZDVcdTcxYjlcdTcxY2VcdTcxZDlcdTcxZGNcdTcxYzNcdTcxYzRcdTczNjhcdTc0OWNcdTc0YTNcdTc0OThcdTc0OWZcdTc0OWVcdTc0ZTJcdTc1MGNcdTc1MGRcdTc2MzRcdTc2MzhcdTc2M2FcdTc2ZTdcdTc2ZTVcdTc3YTBcdTc3OWVcdTc3OWZcdTc3YTVcdTc4ZThcdTc4ZGFcdTc4''@;'; + put 'put ''ZWNcdTc4ZTdcdTc5YTZcdTdhNGRcdTdhNGVcdTdhNDZcdTdhNGNcdTdhNGJcdTdhYmFcdTdiZDlcdTdjMTFcdTdiYzlcdTdiZTRcdTdiZGJcdTdiZTFcdTdiZTlcdTdiZTZcdTdjZDVcdTdjZDZcdTdlMGEiXSxbImJmYTEiLCJcdTdlMTFcdTdlMDhcdTdlMWJcdTdlMjNcdTdlMWVcdTdlMWRc''@;'; + put 'put ''dTdlMDlcdTdlMTBcdTdmNzlcdTdmYjJcdTdmZjBcdTdmZjFcdTdmZWVcdTgwMjhcdTgxYjNcdTgxYTlcdTgxYThcdTgxZmJcdTgyMDhcdTgyNThcdTgyNTlcdTg1NGFcdTg1NTlcdTg1NDhcdTg1NjhcdTg1NjlcdTg1NDNcdTg1NDlcdTg1NmRcdTg1NmFcdTg1NWVcdTg3ODNcdTg3OWZcdTg3''@;'; + put 'put ''OWVcdTg3YTJcdTg3OGRcdTg4NjFcdTg5MmFcdTg5MzJcdTg5MjVcdTg5MmJcdTg5MjFcdTg5YWFcdTg5YTZcdThhZTZcdThhZmFcdThhZWJcdThhZjFcdThiMDBcdThhZGNcdThhZTdcdThhZWVcdThhZmVcdThiMDFcdThiMDJcdThhZjdcdThhZWRcdThhZjNcdThhZjZcdThhZmNcdThjNmJc''@;'; + put 'put ''dThjNmRcdThjOTNcdThjZjRcdThlNDRcdThlMzFcdThlMzRcdThlNDJcdThlMzlcdThlMzVcdThmM2JcdThmMmZcdThmMzhcdThmMzNcdThmYThcdThmYTZcdTkwNzVcdTkwNzRcdTkwNzhcdTkwNzJcdTkwN2NcdTkwN2FcdTkxMzRcdTkxOTJcdTkzMjBcdTkzMzZcdTkyZjhcdTkzMzNcdTkz''@;'; + put 'put ''MmZcdTkzMjJcdTkyZmNcdTkzMmJcdTkzMDRcdTkzMWEiXSxbImMwNDAiLCJcdTkzMTBcdTkzMjZcdTkzMjFcdTkzMTVcdTkzMmVcdTkzMTlcdTk1YmJcdTk2YTdcdTk2YThcdTk2YWFcdTk2ZDVcdTk3MGVcdTk3MTFcdTk3MTZcdTk3MGRcdTk3MTNcdTk3MGZcdTk3NWJcdTk3NWNcdTk3NjZc''@;'; + put 'put ''dTk3OThcdTk4MzBcdTk4MzhcdTk4M2JcdTk4MzdcdTk4MmRcdTk4MzlcdTk4MjRcdTk5MTBcdTk5MjhcdTk5MWVcdTk5MWJcdTk5MjFcdTk5MWFcdTk5ZWRcdTk5ZTJcdTk5ZjFcdTlhYjhcdTlhYmNcdTlhZmJcdTlhZWRcdTliMjhcdTliOTFcdTlkMTVcdTlkMjNcdTlkMjZcdTlkMjhcdTlk''@;'; + put 'put ''MTJcdTlkMWJcdTllZDhcdTllZDRcdTlmOGRcdTlmOWNcdTUxMmFcdTUxMWZcdTUxMjFcdTUxMzJcdTUyZjVcdTU2OGVcdTU2ODBcdTU2OTBcdTU2ODVcdTU2ODciXSxbImMwYTEiLCJcdTU2OGZcdTU4ZDVcdTU4ZDNcdTU4ZDFcdTU4Y2VcdTViMzBcdTViMmFcdTViMjRcdTViN2FcdTVjMzdc''@;'; + put 'put ''dTVjNjhcdTVkYmNcdTVkYmFcdTVkYmRcdTVkYjhcdTVlNmJcdTVmNGNcdTVmYmRcdTYxYzlcdTYxYzJcdTYxYzdcdTYxZTZcdTYxY2JcdTYyMzJcdTYyMzRcdTY0Y2VcdTY0Y2FcdTY0ZDhcdTY0ZTBcdTY0ZjBcdTY0ZTZcdTY0ZWNcdTY0ZjFcdTY0ZTJcdTY0ZWRcdTY1ODJcdTY1ODNcdTY2''@;'; + put 'put ''ZDlcdTY2ZDZcdTZhODBcdTZhOTRcdTZhODRcdTZhYTJcdTZhOWNcdTZhZGJcdTZhYTNcdTZhN2VcdTZhOTdcdTZhOTBcdTZhYTBcdTZiNWNcdTZiYWVcdTZiZGFcdTZjMDhcdTZmZDhcdTZmZjFcdTZmZGZcdTZmZTBcdTZmZGJcdTZmZTRcdTZmZWJcdTZmZWZcdTZmODBcdTZmZWNcdTZmZTFc''@;'; + put 'put ''dTZmZTlcdTZmZDVcdTZmZWVcdTZmZjBcdTcxZTdcdTcxZGZcdTcxZWVcdTcxZTZcdTcxZTVcdTcxZWRcdTcxZWNcdTcxZjRcdTcxZTBcdTcyMzVcdTcyNDZcdTczNzBcdTczNzJcdTc0YTlcdTc0YjBcdTc0YTZcdTc0YThcdTc2NDZcdTc2NDJcdTc2NGNcdTc2ZWFcdTc3YjNcdTc3YWFcdTc3''@;'; + put 'put ''YjBcdTc3YWMiXSxbImMxNDAiLCJcdTc3YTdcdTc3YWRcdTc3ZWZcdTc4ZjdcdTc4ZmFcdTc4ZjRcdTc4ZWZcdTc5MDFcdTc5YTdcdTc5YWFcdTdhNTdcdTdhYmZcdTdjMDdcdTdjMGRcdTdiZmVcdTdiZjdcdTdjMGNcdTdiZTBcdTdjZTBcdTdjZGNcdTdjZGVcdTdjZTJcdTdjZGZcdTdjZDlc''@;'; + put 'put ''dTdjZGRcdTdlMmVcdTdlM2VcdTdlNDZcdTdlMzdcdTdlMzJcdTdlNDNcdTdlMmJcdTdlM2RcdTdlMzFcdTdlNDVcdTdlNDFcdTdlMzRcdTdlMzlcdTdlNDhcdTdlMzVcdTdlM2ZcdTdlMmZcdTdmNDRcdTdmZjNcdTdmZmNcdTgwNzFcdTgwNzJcdTgwNzBcdTgwNmZcdTgwNzNcdTgxYzZcdTgx''@;'; + put 'put ''YzNcdTgxYmFcdTgxYzJcdTgxYzBcdTgxYmZcdTgxYmRcdTgxYzlcdTgxYmVcdTgxZThcdTgyMDlcdTgyNzFcdTg1YWEiXSxbImMxYTEiLCJcdTg1ODRcdTg1N2VcdTg1OWNcdTg1OTFcdTg1OTRcdTg1YWZcdTg1OWJcdTg1ODdcdTg1YThcdTg1OGFcdTg2NjdcdTg3YzBcdTg3ZDFcdTg3YjNc''@;'; + put 'put ''dTg3ZDJcdTg3YzZcdTg3YWJcdTg3YmJcdTg3YmFcdTg3YzhcdTg3Y2JcdTg5M2JcdTg5MzZcdTg5NDRcdTg5MzhcdTg5M2RcdTg5YWNcdThiMGVcdThiMTdcdThiMTlcdThiMWJcdThiMGFcdThiMjBcdThiMWRcdThiMDRcdThiMTBcdThjNDFcdThjM2ZcdThjNzNcdThjZmFcdThjZmRcdThj''@;'; + put 'put ''ZmNcdThjZjhcdThjZmJcdThkYThcdThlNDlcdThlNGJcdThlNDhcdThlNGFcdThmNDRcdThmM2VcdThmNDJcdThmNDVcdThmM2ZcdTkwN2ZcdTkwN2RcdTkwODRcdTkwODFcdTkwODJcdTkwODBcdTkxMzlcdTkxYTNcdTkxOWVcdTkxOWNcdTkzNGRcdTkzODJcdTkzMjhcdTkzNzVcdTkzNGFc''@;'; + put 'put ''dTkzNjVcdTkzNGJcdTkzMThcdTkzN2VcdTkzNmNcdTkzNWJcdTkzNzBcdTkzNWFcdTkzNTRcdTk1Y2FcdTk1Y2JcdTk1Y2NcdTk1YzhcdTk1YzZcdTk2YjFcdTk2YjhcdTk2ZDZcdTk3MWNcdTk3MWVcdTk3YTBcdTk3ZDNcdTk4NDZcdTk4YjZcdTk5MzVcdTlhMDEiXSxbImMyNDAiLCJcdTk5''@;'; + put 'put ''ZmZcdTliYWVcdTliYWJcdTliYWFcdTliYWRcdTlkM2JcdTlkM2ZcdTllOGJcdTllY2ZcdTllZGVcdTllZGNcdTllZGRcdTllZGJcdTlmM2VcdTlmNGJcdTUzZTJcdTU2OTVcdTU2YWVcdTU4ZDlcdTU4ZDhcdTViMzhcdTVmNWRcdTYxZTNcdTYyMzNcdTY0ZjRcdTY0ZjJcdTY0ZmVcdTY1MDZc''@;'; + put 'put ''dTY0ZmFcdTY0ZmJcdTY0ZjdcdTY1YjdcdTY2ZGNcdTY3MjZcdTZhYjNcdTZhYWNcdTZhYzNcdTZhYmJcdTZhYjhcdTZhYzJcdTZhYWVcdTZhYWZcdTZiNWZcdTZiNzhcdTZiYWZcdTcwMDlcdTcwMGJcdTZmZmVcdTcwMDZcdTZmZmFcdTcwMTFcdTcwMGZcdTcxZmJcdTcxZmNcdTcxZmVcdTcx''@;'; + put 'put ''ZjhcdTczNzdcdTczNzVcdTc0YTdcdTc0YmZcdTc1MTVcdTc2NTZcdTc2NTgiXSxbImMyYTEiLCJcdTc2NTJcdTc3YmRcdTc3YmZcdTc3YmJcdTc3YmNcdTc5MGVcdTc5YWVcdTdhNjFcdTdhNjJcdTdhNjBcdTdhYzRcdTdhYzVcdTdjMmJcdTdjMjdcdTdjMmFcdTdjMWVcdTdjMjNcdTdjMjFc''@;'; + put 'put ''dTdjZTdcdTdlNTRcdTdlNTVcdTdlNWVcdTdlNWFcdTdlNjFcdTdlNTJcdTdlNTlcdTdmNDhcdTdmZjlcdTdmZmJcdTgwNzdcdTgwNzZcdTgxY2RcdTgxY2ZcdTgyMGFcdTg1Y2ZcdTg1YTlcdTg1Y2RcdTg1ZDBcdTg1YzlcdTg1YjBcdTg1YmFcdTg1YjlcdTg1YTZcdTg3ZWZcdTg3ZWNcdTg3''@;'; + put 'put ''ZjJcdTg3ZTBcdTg5ODZcdTg5YjJcdTg5ZjRcdThiMjhcdThiMzlcdThiMmNcdThiMmJcdThjNTBcdThkMDVcdThlNTlcdThlNjNcdThlNjZcdThlNjRcdThlNWZcdThlNTVcdThlYzBcdThmNDlcdThmNGRcdTkwODdcdTkwODNcdTkwODhcdTkxYWJcdTkxYWNcdTkxZDBcdTkzOTRcdTkzOGFc''@;'; + put 'put ''dTkzOTZcdTkzYTJcdTkzYjNcdTkzYWVcdTkzYWNcdTkzYjBcdTkzOThcdTkzOWFcdTkzOTdcdTk1ZDRcdTk1ZDZcdTk1ZDBcdTk1ZDVcdTk2ZTJcdTk2ZGNcdTk2ZDlcdTk2ZGJcdTk2ZGVcdTk3MjRcdTk3YTNcdTk3YTYiXSxbImMzNDAiLCJcdTk3YWRcdTk3ZjlcdTk4NGRcdTk4NGZcdTk4''@;'; + put 'put ''NGNcdTk4NGVcdTk4NTNcdTk4YmFcdTk5M2VcdTk5M2ZcdTk5M2RcdTk5MmVcdTk5YTVcdTlhMGVcdTlhYzFcdTliMDNcdTliMDZcdTliNGZcdTliNGVcdTliNGRcdTliY2FcdTliYzlcdTliZmRcdTliYzhcdTliYzBcdTlkNTFcdTlkNWRcdTlkNjBcdTllZTBcdTlmMTVcdTlmMmNcdTUxMzNc''@;'; + put 'put ''dTU2YTVcdTU4ZGVcdTU4ZGZcdTU4ZTJcdTViZjVcdTlmOTBcdTVlZWNcdTYxZjJcdTYxZjdcdTYxZjZcdTYxZjVcdTY1MDBcdTY1MGZcdTY2ZTBcdTY2ZGRcdTZhZTVcdTZhZGRcdTZhZGFcdTZhZDNcdTcwMWJcdTcwMWZcdTcwMjhcdTcwMWFcdTcwMWRcdTcwMTVcdTcwMThcdTcyMDZcdTcy''@;'; + put 'put ''MGRcdTcyNThcdTcyYTJcdTczNzgiXSxbImMzYTEiLCJcdTczN2FcdTc0YmRcdTc0Y2FcdTc0ZTNcdTc1ODdcdTc1ODZcdTc2NWZcdTc2NjFcdTc3YzdcdTc5MTlcdTc5YjFcdTdhNmJcdTdhNjlcdTdjM2VcdTdjM2ZcdTdjMzhcdTdjM2RcdTdjMzdcdTdjNDBcdTdlNmJcdTdlNmRcdTdlNzlc''@;'; + put 'put ''dTdlNjlcdTdlNmFcdTdmODVcdTdlNzNcdTdmYjZcdTdmYjlcdTdmYjhcdTgxZDhcdTg1ZTlcdTg1ZGRcdTg1ZWFcdTg1ZDVcdTg1ZTRcdTg1ZTVcdTg1ZjdcdTg3ZmJcdTg4MDVcdTg4MGRcdTg3ZjlcdTg3ZmVcdTg5NjBcdTg5NWZcdTg5NTZcdTg5NWVcdThiNDFcdThiNWNcdThiNThcdThi''@;'; + put 'put ''NDlcdThiNWFcdThiNGVcdThiNGZcdThiNDZcdThiNTlcdThkMDhcdThkMGFcdThlN2NcdThlNzJcdThlODdcdThlNzZcdThlNmNcdThlN2FcdThlNzRcdThmNTRcdThmNGVcdThmYWRcdTkwOGFcdTkwOGJcdTkxYjFcdTkxYWVcdTkzZTFcdTkzZDFcdTkzZGZcdTkzYzNcdTkzYzhcdTkzZGNc''@;'; + put 'put ''dTkzZGRcdTkzZDZcdTkzZTJcdTkzY2RcdTkzZDhcdTkzZTRcdTkzZDdcdTkzZThcdTk1ZGNcdTk2YjRcdTk2ZTNcdTk3MmFcdTk3MjdcdTk3NjFcdTk3ZGNcdTk3ZmJcdTk4NWUiXSxbImM0NDAiLCJcdTk4NThcdTk4NWJcdTk4YmNcdTk5NDVcdTk5NDlcdTlhMTZcdTlhMTlcdTliMGRcdTli''@;'; + put 'put ''ZThcdTliZTdcdTliZDZcdTliZGJcdTlkODlcdTlkNjFcdTlkNzJcdTlkNmFcdTlkNmNcdTllOTJcdTllOTdcdTllOTNcdTllYjRcdTUyZjhcdTU2YThcdTU2YjdcdTU2YjZcdTU2YjRcdTU2YmNcdTU4ZTRcdTViNDBcdTViNDNcdTViN2RcdTViZjZcdTVkYzlcdTYxZjhcdTYxZmFcdTY1MThc''@;'; + put 'put ''dTY1MTRcdTY1MTlcdTY2ZTZcdTY3MjdcdTZhZWNcdTcwM2VcdTcwMzBcdTcwMzJcdTcyMTBcdTczN2JcdTc0Y2ZcdTc2NjJcdTc2NjVcdTc5MjZcdTc5MmFcdTc5MmNcdTc5MmJcdTdhYzdcdTdhZjZcdTdjNGNcdTdjNDNcdTdjNGRcdTdjZWZcdTdjZjBcdThmYWVcdTdlN2RcdTdlN2MiXSxb''@;'; + put 'put ''ImM0YTEiLCJcdTdlODJcdTdmNGNcdTgwMDBcdTgxZGFcdTgyNjZcdTg1ZmJcdTg1ZjlcdTg2MTFcdTg1ZmFcdTg2MDZcdTg2MGJcdTg2MDdcdTg2MGFcdTg4MTRcdTg4MTVcdTg5NjRcdTg5YmFcdTg5ZjhcdThiNzBcdThiNmNcdThiNjZcdThiNmZcdThiNWZcdThiNmJcdThkMGZcdThkMGRc''@;'; + put 'put ''dThlODlcdThlODFcdThlODVcdThlODJcdTkxYjRcdTkxY2JcdTk0MThcdTk0MDNcdTkzZmRcdTk1ZTFcdTk3MzBcdTk4YzRcdTk5NTJcdTk5NTFcdTk5YThcdTlhMmJcdTlhMzBcdTlhMzdcdTlhMzVcdTljMTNcdTljMGRcdTllNzlcdTllYjVcdTllZThcdTlmMmZcdTlmNWZcdTlmNjNcdTlm''@;'; + put 'put ''NjFcdTUxMzdcdTUxMzhcdTU2YzFcdTU2YzBcdTU2YzJcdTU5MTRcdTVjNmNcdTVkY2RcdTYxZmNcdTYxZmVcdTY1MWRcdTY1MWNcdTY1OTVcdTY2ZTlcdTZhZmJcdTZiMDRcdTZhZmFcdTZiYjJcdTcwNGNcdTcyMWJcdTcyYTdcdTc0ZDZcdTc0ZDRcdTc2NjlcdTc3ZDNcdTdjNTBcdTdlOGZc''@;'; + put 'put ''dTdlOGNcdTdmYmNcdTg2MTdcdTg2MmRcdTg2MWFcdTg4MjNcdTg4MjJcdTg4MjFcdTg4MWZcdTg5NmFcdTg5NmNcdTg5YmRcdThiNzQiXSxbImM1NDAiLCJcdThiNzdcdThiN2RcdThkMTNcdThlOGFcdThlOGRcdThlOGJcdThmNWZcdThmYWZcdTkxYmFcdTk0MmVcdTk0MzNcdTk0MzVcdTk0''@;'; + put 'put ''M2FcdTk0MzhcdTk0MzJcdTk0MmJcdTk1ZTJcdTk3MzhcdTk3MzlcdTk3MzJcdTk3ZmZcdTk4NjdcdTk4NjVcdTk5NTdcdTlhNDVcdTlhNDNcdTlhNDBcdTlhM2VcdTlhY2ZcdTliNTRcdTliNTFcdTljMmRcdTljMjVcdTlkYWZcdTlkYjRcdTlkYzJcdTlkYjhcdTllOWRcdTllZWZcdTlmMTlc''@;'; + put 'put ''dTlmNWNcdTlmNjZcdTlmNjdcdTUxM2NcdTUxM2JcdTU2YzhcdTU2Y2FcdTU2YzlcdTViN2ZcdTVkZDRcdTVkZDJcdTVmNGVcdTYxZmZcdTY1MjRcdTZiMGFcdTZiNjFcdTcwNTFcdTcwNThcdTczODBcdTc0ZTRcdTc1OGFcdTc2NmVcdTc2NmMiXSxbImM1YTEiLCJcdTc5YjNcdTdjNjBcdTdj''@;'; + put 'put ''NWZcdTgwN2VcdTgwN2RcdTgxZGZcdTg5NzJcdTg5NmZcdTg5ZmNcdThiODBcdThkMTZcdThkMTdcdThlOTFcdThlOTNcdThmNjFcdTkxNDhcdTk0NDRcdTk0NTFcdTk0NTJcdTk3M2RcdTk3M2VcdTk3YzNcdTk3YzFcdTk4NmJcdTk5NTVcdTlhNTVcdTlhNGRcdTlhZDJcdTliMWFcdTljNDlc''@;'; + put 'put ''dTljMzFcdTljM2VcdTljM2JcdTlkZDNcdTlkZDdcdTlmMzRcdTlmNmNcdTlmNmFcdTlmOTRcdTU2Y2NcdTVkZDZcdTYyMDBcdTY1MjNcdTY1MmJcdTY1MmFcdTY2ZWNcdTZiMTBcdTc0ZGFcdTdhY2FcdTdjNjRcdTdjNjNcdTdjNjVcdTdlOTNcdTdlOTZcdTdlOTRcdTgxZTJcdTg2MzhcdTg2''@;'; + put 'put ''M2ZcdTg4MzFcdThiOGFcdTkwOTBcdTkwOGZcdTk0NjNcdTk0NjBcdTk0NjRcdTk3NjhcdTk4NmZcdTk5NWNcdTlhNWFcdTlhNWJcdTlhNTdcdTlhZDNcdTlhZDRcdTlhZDFcdTljNTRcdTljNTdcdTljNTZcdTlkZTVcdTllOWZcdTllZjRcdTU2ZDFcdTU4ZTlcdTY1MmNcdTcwNWVcdTc2NzFc''@;'; + put 'put ''dTc2NzJcdTc3ZDdcdTdmNTBcdTdmODhcdTg4MzZcdTg4MzlcdTg4NjJcdThiOTNcdThiOTIiXSxbImM2NDAiLCJcdThiOTZcdTgyNzdcdThkMWJcdTkxYzBcdTk0NmFcdTk3NDJcdTk3NDhcdTk3NDRcdTk3YzZcdTk4NzBcdTlhNWZcdTliMjJcdTliNThcdTljNWZcdTlkZjlcdTlkZmFcdTll''@;'; + put 'put ''N2NcdTllN2RcdTlmMDdcdTlmNzdcdTlmNzJcdTVlZjNcdTZiMTZcdTcwNjNcdTdjNmNcdTdjNmVcdTg4M2JcdTg5YzBcdThlYTFcdTkxYzFcdTk0NzJcdTk0NzBcdTk4NzFcdTk5NWVcdTlhZDZcdTliMjNcdTllY2NcdTcwNjRcdTc3ZGFcdThiOWFcdTk0NzdcdTk3YzlcdTlhNjJcdTlhNjVc''@;'; + put 'put ''dTdlOWNcdThiOWNcdThlYWFcdTkxYzVcdTk0N2RcdTk0N2VcdTk0N2NcdTljNzdcdTljNzhcdTllZjdcdThjNTRcdTk0N2ZcdTllMWFcdTcyMjhcdTlhNmFcdTliMzFcdTllMWJcdTllMWVcdTdjNzIiXSxbImM5NDAiLCJcdTRlNDJcdTRlNWNcdTUxZjVcdTUzMWFcdTUzODJcdTRlMDdcdTRl''@;'; + put 'put ''MGNcdTRlNDdcdTRlOGRcdTU2ZDdcdWZhMGNcdTVjNmVcdTVmNzNcdTRlMGZcdTUxODdcdTRlMGVcdTRlMmVcdTRlOTNcdTRlYzJcdTRlYzlcdTRlYzhcdTUxOThcdTUyZmNcdTUzNmNcdTUzYjlcdTU3MjBcdTU5MDNcdTU5MmNcdTVjMTBcdTVkZmZcdTY1ZTFcdTZiYjNcdTZiY2NcdTZjMTRc''@;'; + put 'put ''dTcyM2ZcdTRlMzFcdTRlM2NcdTRlZThcdTRlZGNcdTRlZTlcdTRlZTFcdTRlZGRcdTRlZGFcdTUyMGNcdTUzMWNcdTUzNGNcdTU3MjJcdTU3MjNcdTU5MTdcdTU5MmZcdTViODFcdTViODRcdTVjMTJcdTVjM2JcdTVjNzRcdTVjNzNcdTVlMDRcdTVlODBcdTVlODJcdTVmYzlcdTYyMDlcdTYy''@;'; + put 'put ''NTBcdTZjMTUiXSxbImM5YTEiLCJcdTZjMzZcdTZjNDNcdTZjM2ZcdTZjM2JcdTcyYWVcdTcyYjBcdTczOGFcdTc5YjhcdTgwOGFcdTk2MWVcdTRmMGVcdTRmMThcdTRmMmNcdTRlZjVcdTRmMTRcdTRlZjFcdTRmMDBcdTRlZjdcdTRmMDhcdTRmMWRcdTRmMDJcdTRmMDVcdTRmMjJcdTRmMTNc''@;'; + put 'put ''dTRmMDRcdTRlZjRcdTRmMTJcdTUxYjFcdTUyMTNcdTUyMDlcdTUyMTBcdTUyYTZcdTUzMjJcdTUzMWZcdTUzNGRcdTUzOGFcdTU0MDdcdTU2ZTFcdTU2ZGZcdTU3MmVcdTU3MmFcdTU3MzRcdTU5M2NcdTU5ODBcdTU5N2NcdTU5ODVcdTU5N2JcdTU5N2VcdTU5NzdcdTU5N2ZcdTViNTZcdTVj''@;'; + put 'put ''MTVcdTVjMjVcdTVjN2NcdTVjN2FcdTVjN2JcdTVjN2VcdTVkZGZcdTVlNzVcdTVlODRcdTVmMDJcdTVmMWFcdTVmNzRcdTVmZDVcdTVmZDRcdTVmY2ZcdTYyNWNcdTYyNWVcdTYyNjRcdTYyNjFcdTYyNjZcdTYyNjJcdTYyNTlcdTYyNjBcdTYyNWFcdTYyNjVcdTY1ZWZcdTY1ZWVcdTY3M2Vc''@;'; + put 'put ''dTY3MzlcdTY3MzhcdTY3M2JcdTY3M2FcdTY3M2ZcdTY3M2NcdTY3MzNcdTZjMThcdTZjNDZcdTZjNTJcdTZjNWNcdTZjNGZcdTZjNGFcdTZjNTRcdTZjNGIiXSxbImNhNDAiLCJcdTZjNGNcdTcwNzFcdTcyNWVcdTcyYjRcdTcyYjVcdTczOGVcdTc1MmFcdTc2N2ZcdTdhNzVcdTdmNTFcdTgy''@;'; + put 'put ''NzhcdTgyN2NcdTgyODBcdTgyN2RcdTgyN2ZcdTg2NGRcdTg5N2VcdTkwOTlcdTkwOTdcdTkwOThcdTkwOWJcdTkwOTRcdTk2MjJcdTk2MjRcdTk2MjBcdTk2MjNcdTRmNTZcdTRmM2JcdTRmNjJcdTRmNDlcdTRmNTNcdTRmNjRcdTRmM2VcdTRmNjdcdTRmNTJcdTRmNWZcdTRmNDFcdTRmNThc''@;'; + put 'put ''dTRmMmRcdTRmMzNcdTRmM2ZcdTRmNjFcdTUxOGZcdTUxYjlcdTUyMWNcdTUyMWVcdTUyMjFcdTUyYWRcdTUyYWVcdTUzMDlcdTUzNjNcdTUzNzJcdTUzOGVcdTUzOGZcdTU0MzBcdTU0MzdcdTU0MmFcdTU0NTRcdTU0NDVcdTU0MTlcdTU0MWNcdTU0MjVcdTU0MTgiXSxbImNhYTEiLCJcdTU0''@;'; + put 'put ''M2RcdTU0NGZcdTU0NDFcdTU0MjhcdTU0MjRcdTU0NDdcdTU2ZWVcdTU2ZTdcdTU2ZTVcdTU3NDFcdTU3NDVcdTU3NGNcdTU3NDlcdTU3NGJcdTU3NTJcdTU5MDZcdTU5NDBcdTU5YTZcdTU5OThcdTU5YTBcdTU5OTdcdTU5OGVcdTU5YTJcdTU5OTBcdTU5OGZcdTU5YTdcdTU5YTFcdTViOGVc''@;'; + put 'put ''dTViOTJcdTVjMjhcdTVjMmFcdTVjOGRcdTVjOGZcdTVjODhcdTVjOGJcdTVjODlcdTVjOTJcdTVjOGFcdTVjODZcdTVjOTNcdTVjOTVcdTVkZTBcdTVlMGFcdTVlMGVcdTVlOGJcdTVlODlcdTVlOGNcdTVlODhcdTVlOGRcdTVmMDVcdTVmMWRcdTVmNzhcdTVmNzZcdTVmZDJcdTVmZDFcdTVm''@;'; + put 'put ''ZDBcdTVmZWRcdTVmZThcdTVmZWVcdTVmZjNcdTVmZTFcdTVmZTRcdTVmZTNcdTVmZmFcdTVmZWZcdTVmZjdcdTVmZmJcdTYwMDBcdTVmZjRcdTYyM2FcdTYyODNcdTYyOGNcdTYyOGVcdTYyOGZcdTYyOTRcdTYyODdcdTYyNzFcdTYyN2JcdTYyN2FcdTYyNzBcdTYyODFcdTYyODhcdTYyNzdc''@;'; + put 'put ''dTYyN2RcdTYyNzJcdTYyNzRcdTY1MzdcdTY1ZjBcdTY1ZjRcdTY1ZjNcdTY1ZjJcdTY1ZjVcdTY3NDVcdTY3NDciXSxbImNiNDAiLCJcdTY3NTlcdTY3NTVcdTY3NGNcdTY3NDhcdTY3NWRcdTY3NGRcdTY3NWFcdTY3NGJcdTZiZDBcdTZjMTlcdTZjMWFcdTZjNzhcdTZjNjdcdTZjNmJcdTZj''@;'; + put 'put ''ODRcdTZjOGJcdTZjOGZcdTZjNzFcdTZjNmZcdTZjNjlcdTZjOWFcdTZjNmRcdTZjODdcdTZjOTVcdTZjOWNcdTZjNjZcdTZjNzNcdTZjNjVcdTZjN2JcdTZjOGVcdTcwNzRcdTcwN2FcdTcyNjNcdTcyYmZcdTcyYmRcdTcyYzNcdTcyYzZcdTcyYzFcdTcyYmFcdTcyYzVcdTczOTVcdTczOTdc''@;'; + put 'put ''dTczOTNcdTczOTRcdTczOTJcdTc1M2FcdTc1MzlcdTc1OTRcdTc1OTVcdTc2ODFcdTc5M2RcdTgwMzRcdTgwOTVcdTgwOTlcdTgwOTBcdTgwOTJcdTgwOWNcdTgyOTBcdTgyOGZcdTgyODVcdTgyOGVcdTgyOTFcdTgyOTMiXSxbImNiYTEiLCJcdTgyOGFcdTgyODNcdTgyODRcdThjNzhcdThm''@;'; + put 'put ''YzlcdThmYmZcdTkwOWZcdTkwYTFcdTkwYTVcdTkwOWVcdTkwYTdcdTkwYTBcdTk2MzBcdTk2MjhcdTk2MmZcdTk2MmRcdTRlMzNcdTRmOThcdTRmN2NcdTRmODVcdTRmN2RcdTRmODBcdTRmODdcdTRmNzZcdTRmNzRcdTRmODlcdTRmODRcdTRmNzdcdTRmNGNcdTRmOTdcdTRmNmFcdTRmOWFc''@;'; + put 'put ''dTRmNzlcdTRmODFcdTRmNzhcdTRmOTBcdTRmOWNcdTRmOTRcdTRmOWVcdTRmOTJcdTRmODJcdTRmOTVcdTRmNmJcdTRmNmVcdTUxOWVcdTUxYmNcdTUxYmVcdTUyMzVcdTUyMzJcdTUyMzNcdTUyNDZcdTUyMzFcdTUyYmNcdTUzMGFcdTUzMGJcdTUzM2NcdTUzOTJcdTUzOTRcdTU0ODdcdTU0''@;'; + put 'put ''N2ZcdTU0ODFcdTU0OTFcdTU0ODJcdTU0ODhcdTU0NmJcdTU0N2FcdTU0N2VcdTU0NjVcdTU0NmNcdTU0NzRcdTU0NjZcdTU0OGRcdTU0NmZcdTU0NjFcdTU0NjBcdTU0OThcdTU0NjNcdTU0NjdcdTU0NjRcdTU2ZjdcdTU2ZjlcdTU3NmZcdTU3NzJcdTU3NmRcdTU3NmJcdTU3NzFcdTU3NzBc''@;'; + put 'put ''dTU3NzZcdTU3ODBcdTU3NzVcdTU3N2JcdTU3NzNcdTU3NzRcdTU3NjIiXSxbImNjNDAiLCJcdTU3NjhcdTU3N2RcdTU5MGNcdTU5NDVcdTU5YjVcdTU5YmFcdTU5Y2ZcdTU5Y2VcdTU5YjJcdTU5Y2NcdTU5YzFcdTU5YjZcdTU5YmNcdTU5YzNcdTU5ZDZcdTU5YjFcdTU5YmRcdTU5YzBcdTU5''@;'; + put 'put ''YzhcdTU5YjRcdTU5YzdcdTViNjJcdTViNjVcdTViOTNcdTViOTVcdTVjNDRcdTVjNDdcdTVjYWVcdTVjYTRcdTVjYTBcdTVjYjVcdTVjYWZcdTVjYThcdTVjYWNcdTVjOWZcdTVjYTNcdTVjYWRcdTVjYTJcdTVjYWFcdTVjYTdcdTVjOWRcdTVjYTVcdTVjYjZcdTVjYjBcdTVjYTZcdTVlMTdc''@;'; + put 'put ''dTVlMTRcdTVlMTlcdTVmMjhcdTVmMjJcdTVmMjNcdTVmMjRcdTVmNTRcdTVmODJcdTVmN2VcdTVmN2RcdTVmZGVcdTVmZTVcdTYwMmRcdTYwMjZcdTYwMTlcdTYwMzJcdTYwMGIiXSxbImNjYTEiLCJcdTYwMzRcdTYwMGFcdTYwMTdcdTYwMzNcdTYwMWFcdTYwMWVcdTYwMmNcdTYwMjJcdTYw''@;'; + put 'put ''MGRcdTYwMTBcdTYwMmVcdTYwMTNcdTYwMTFcdTYwMGNcdTYwMDlcdTYwMWNcdTYyMTRcdTYyM2RcdTYyYWRcdTYyYjRcdTYyZDFcdTYyYmVcdTYyYWFcdTYyYjZcdTYyY2FcdTYyYWVcdTYyYjNcdTYyYWZcdTYyYmJcdTYyYTlcdTYyYjBcdTYyYjhcdTY1M2RcdTY1YThcdTY1YmJcdTY2MDlc''@;'; + put 'put ''dTY1ZmNcdTY2MDRcdTY2MTJcdTY2MDhcdTY1ZmJcdTY2MDNcdTY2MGJcdTY2MGRcdTY2MDVcdTY1ZmRcdTY2MTFcdTY2MTBcdTY2ZjZcdTY3MGFcdTY3ODVcdTY3NmNcdTY3OGVcdTY3OTJcdTY3NzZcdTY3N2JcdTY3OThcdTY3ODZcdTY3ODRcdTY3NzRcdTY3OGRcdTY3OGNcdTY3N2FcdTY3''@;'; + put 'put ''OWZcdTY3OTFcdTY3OTlcdTY3ODNcdTY3N2RcdTY3ODFcdTY3NzhcdTY3NzlcdTY3OTRcdTZiMjVcdTZiODBcdTZiN2VcdTZiZGVcdTZjMWRcdTZjOTNcdTZjZWNcdTZjZWJcdTZjZWVcdTZjZDlcdTZjYjZcdTZjZDRcdTZjYWRcdTZjZTdcdTZjYjdcdTZjZDBcdTZjYzJcdTZjYmFcdTZjYzNc''@;'; + put 'put ''dTZjYzZcdTZjZWRcdTZjZjIiXSxbImNkNDAiLCJcdTZjZDJcdTZjZGRcdTZjYjRcdTZjOGFcdTZjOWRcdTZjODBcdTZjZGVcdTZjYzBcdTZkMzBcdTZjY2RcdTZjYzdcdTZjYjBcdTZjZjlcdTZjY2ZcdTZjZTlcdTZjZDFcdTcwOTRcdTcwOThcdTcwODVcdTcwOTNcdTcwODZcdTcwODRcdTcw''@;'; + put 'put ''OTFcdTcwOTZcdTcwODJcdTcwOWFcdTcwODNcdTcyNmFcdTcyZDZcdTcyY2JcdTcyZDhcdTcyYzlcdTcyZGNcdTcyZDJcdTcyZDRcdTcyZGFcdTcyY2NcdTcyZDFcdTczYTRcdTczYTFcdTczYWRcdTczYTZcdTczYTJcdTczYTBcdTczYWNcdTczOWRcdTc0ZGRcdTc0ZThcdTc1M2ZcdTc1NDBc''@;'; + put 'put ''dTc1M2VcdTc1OGNcdTc1OThcdTc2YWZcdTc2ZjNcdTc2ZjFcdTc2ZjBcdTc2ZjVcdTc3ZjhcdTc3ZmNcdTc3ZjlcdTc3ZmJcdTc3ZmEiXSxbImNkYTEiLCJcdTc3ZjdcdTc5NDJcdTc5M2ZcdTc5YzVcdTdhNzhcdTdhN2JcdTdhZmJcdTdjNzVcdTdjZmRcdTgwMzVcdTgwOGZcdTgwYWVcdTgw''@;'; + put 'put ''YTNcdTgwYjhcdTgwYjVcdTgwYWRcdTgyMjBcdTgyYTBcdTgyYzBcdTgyYWJcdTgyOWFcdTgyOThcdTgyOWJcdTgyYjVcdTgyYTdcdTgyYWVcdTgyYmNcdTgyOWVcdTgyYmFcdTgyYjRcdTgyYThcdTgyYTFcdTgyYTlcdTgyYzJcdTgyYTRcdTgyYzNcdTgyYjZcdTgyYTJcdTg2NzBcdTg2NmZc''@;'; + put 'put ''dTg2NmRcdTg2NmVcdThjNTZcdThmZDJcdThmY2JcdThmZDNcdThmY2RcdThmZDZcdThmZDVcdThmZDdcdTkwYjJcdTkwYjRcdTkwYWZcdTkwYjNcdTkwYjBcdTk2MzlcdTk2M2RcdTk2M2NcdTk2M2FcdTk2NDNcdTRmY2RcdTRmYzVcdTRmZDNcdTRmYjJcdTRmYzlcdTRmY2JcdTRmYzFcdTRm''@;'; + put 'put ''ZDRcdTRmZGNcdTRmZDlcdTRmYmJcdTRmYjNcdTRmZGJcdTRmYzdcdTRmZDZcdTRmYmFcdTRmYzBcdTRmYjlcdTRmZWNcdTUyNDRcdTUyNDlcdTUyYzBcdTUyYzJcdTUzM2RcdTUzN2NcdTUzOTdcdTUzOTZcdTUzOTlcdTUzOThcdTU0YmFcdTU0YTFcdTU0YWRcdTU0YTVcdTU0Y2YiXSxbImNl''@;'; + put 'put ''NDAiLCJcdTU0YzNcdTgzMGRcdTU0YjdcdTU0YWVcdTU0ZDZcdTU0YjZcdTU0YzVcdTU0YzZcdTU0YTBcdTU0NzBcdTU0YmNcdTU0YTJcdTU0YmVcdTU0NzJcdTU0ZGVcdTU0YjBcdTU3YjVcdTU3OWVcdTU3OWZcdTU3YTRcdTU3OGNcdTU3OTdcdTU3OWRcdTU3OWJcdTU3OTRcdTU3OThcdTU3''@;'; + put 'put ''OGZcdTU3OTlcdTU3YTVcdTU3OWFcdTU3OTVcdTU4ZjRcdTU5MGRcdTU5NTNcdTU5ZTFcdTU5ZGVcdTU5ZWVcdTVhMDBcdTU5ZjFcdTU5ZGRcdTU5ZmFcdTU5ZmRcdTU5ZmNcdTU5ZjZcdTU5ZTRcdTU5ZjJcdTU5ZjdcdTU5ZGJcdTU5ZTlcdTU5ZjNcdTU5ZjVcdTU5ZTBcdTU5ZmVcdTU5ZjRc''@;'; + put 'put ''dTU5ZWRcdTViYThcdTVjNGNcdTVjZDBcdTVjZDhcdTVjY2NcdTVjZDdcdTVjY2JcdTVjZGIiXSxbImNlYTEiLCJcdTVjZGVcdTVjZGFcdTVjYzlcdTVjYzdcdTVjY2FcdTVjZDZcdTVjZDNcdTVjZDRcdTVjY2ZcdTVjYzhcdTVjYzZcdTVjY2VcdTVjZGZcdTVjZjhcdTVkZjlcdTVlMjFcdTVl''@;'; + put 'put ''MjJcdTVlMjNcdTVlMjBcdTVlMjRcdTVlYjBcdTVlYTRcdTVlYTJcdTVlOWJcdTVlYTNcdTVlYTVcdTVmMDdcdTVmMmVcdTVmNTZcdTVmODZcdTYwMzdcdTYwMzlcdTYwNTRcdTYwNzJcdTYwNWVcdTYwNDVcdTYwNTNcdTYwNDdcdTYwNDlcdTYwNWJcdTYwNGNcdTYwNDBcdTYwNDJcdTYwNWZc''@;'; + put 'put ''dTYwMjRcdTYwNDRcdTYwNThcdTYwNjZcdTYwNmVcdTYyNDJcdTYyNDNcdTYyY2ZcdTYzMGRcdTYzMGJcdTYyZjVcdTYzMGVcdTYzMDNcdTYyZWJcdTYyZjlcdTYzMGZcdTYzMGNcdTYyZjhcdTYyZjZcdTYzMDBcdTYzMTNcdTYzMTRcdTYyZmFcdTYzMTVcdTYyZmJcdTYyZjBcdTY1NDFcdTY1''@;'; + put 'put ''NDNcdTY1YWFcdTY1YmZcdTY2MzZcdTY2MjFcdTY2MzJcdTY2MzVcdTY2MWNcdTY2MjZcdTY2MjJcdTY2MzNcdTY2MmJcdTY2M2FcdTY2MWRcdTY2MzRcdTY2MzlcdTY2MmVcdTY3MGZcdTY3MTBcdTY3YzFcdTY3ZjJcdTY3YzhcdTY3YmEiXSxbImNmNDAiLCJcdTY3ZGNcdTY3YmJcdTY3Zjhc''@;'; + put 'put ''dTY3ZDhcdTY3YzBcdTY3YjdcdTY3YzVcdTY3ZWJcdTY3ZTRcdTY3ZGZcdTY3YjVcdTY3Y2RcdTY3YjNcdTY3ZjdcdTY3ZjZcdTY3ZWVcdTY3ZTNcdTY3YzJcdTY3YjlcdTY3Y2VcdTY3ZTdcdTY3ZjBcdTY3YjJcdTY3ZmNcdTY3YzZcdTY3ZWRcdTY3Y2NcdTY3YWVcdTY3ZTZcdTY3ZGJcdTY3''@;'; + put 'put ''ZmFcdTY3YzlcdTY3Y2FcdTY3YzNcdTY3ZWFcdTY3Y2JcdTZiMjhcdTZiODJcdTZiODRcdTZiYjZcdTZiZDZcdTZiZDhcdTZiZTBcdTZjMjBcdTZjMjFcdTZkMjhcdTZkMzRcdTZkMmRcdTZkMWZcdTZkM2NcdTZkM2ZcdTZkMTJcdTZkMGFcdTZjZGFcdTZkMzNcdTZkMDRcdTZkMTlcdTZkM2Fc''@;'; + put 'put ''dTZkMWFcdTZkMTFcdTZkMDBcdTZkMWRcdTZkNDIiXSxbImNmYTEiLCJcdTZkMDFcdTZkMThcdTZkMzdcdTZkMDNcdTZkMGZcdTZkNDBcdTZkMDdcdTZkMjBcdTZkMmNcdTZkMDhcdTZkMjJcdTZkMDlcdTZkMTBcdTcwYjdcdTcwOWZcdTcwYmVcdTcwYjFcdTcwYjBcdTcwYTFcdTcwYjRcdTcw''@;'; + put 'put ''YjVcdTcwYTlcdTcyNDFcdTcyNDlcdTcyNGFcdTcyNmNcdTcyNzBcdTcyNzNcdTcyNmVcdTcyY2FcdTcyZTRcdTcyZThcdTcyZWJcdTcyZGZcdTcyZWFcdTcyZTZcdTcyZTNcdTczODVcdTczY2NcdTczYzJcdTczYzhcdTczYzVcdTczYjlcdTczYjZcdTczYjVcdTczYjRcdTczZWJcdTczYmZc''@;'; + put 'put ''dTczYzdcdTczYmVcdTczYzNcdTczYzZcdTczYjhcdTczY2JcdTc0ZWNcdTc0ZWVcdTc1MmVcdTc1NDdcdTc1NDhcdTc1YTdcdTc1YWFcdTc2NzlcdTc2YzRcdTc3MDhcdTc3MDNcdTc3MDRcdTc3MDVcdTc3MGFcdTc2ZjdcdTc2ZmJcdTc2ZmFcdTc3ZTdcdTc3ZThcdTc4MDZcdTc4MTFcdTc4''@;'; + put 'put ''MTJcdTc4MDVcdTc4MTBcdTc4MGZcdTc4MGVcdTc4MDlcdTc4MDNcdTc4MTNcdTc5NGFcdTc5NGNcdTc5NGJcdTc5NDVcdTc5NDRcdTc5ZDVcdTc5Y2RcdTc5Y2ZcdTc5ZDZcdTc5Y2VcdTdhODAiXSxbImQwNDAiLCJcdTdhN2VcdTdhZDFcdTdiMDBcdTdiMDFcdTdjN2FcdTdjNzhcdTdjNzlc''@;'; + put 'put ''dTdjN2ZcdTdjODBcdTdjODFcdTdkMDNcdTdkMDhcdTdkMDFcdTdmNThcdTdmOTFcdTdmOGRcdTdmYmVcdTgwMDdcdTgwMGVcdTgwMGZcdTgwMTRcdTgwMzdcdTgwZDhcdTgwYzdcdTgwZTBcdTgwZDFcdTgwYzhcdTgwYzJcdTgwZDBcdTgwYzVcdTgwZTNcdTgwZDlcdTgwZGNcdTgwY2FcdTgw''@;'; + put 'put ''ZDVcdTgwYzlcdTgwY2ZcdTgwZDdcdTgwZTZcdTgwY2RcdTgxZmZcdTgyMjFcdTgyOTRcdTgyZDlcdTgyZmVcdTgyZjlcdTgzMDdcdTgyZThcdTgzMDBcdTgyZDVcdTgzM2FcdTgyZWJcdTgyZDZcdTgyZjRcdTgyZWNcdTgyZTFcdTgyZjJcdTgyZjVcdTgzMGNcdTgyZmJcdTgyZjZcdTgyZjBc''@;'; + put 'put ''dTgyZWEiXSxbImQwYTEiLCJcdTgyZTRcdTgyZTBcdTgyZmFcdTgyZjNcdTgyZWRcdTg2NzdcdTg2NzRcdTg2N2NcdTg2NzNcdTg4NDFcdTg4NGVcdTg4NjdcdTg4NmFcdTg4NjlcdTg5ZDNcdThhMDRcdThhMDdcdThkNzJcdThmZTNcdThmZTFcdThmZWVcdThmZTBcdTkwZjFcdTkwYmRcdTkw''@;'; + put 'put ''YmZcdTkwZDVcdTkwYzVcdTkwYmVcdTkwYzdcdTkwY2JcdTkwYzhcdTkxZDRcdTkxZDNcdTk2NTRcdTk2NGZcdTk2NTFcdTk2NTNcdTk2NGFcdTk2NGVcdTUwMWVcdTUwMDVcdTUwMDdcdTUwMTNcdTUwMjJcdTUwMzBcdTUwMWJcdTRmZjVcdTRmZjRcdTUwMzNcdTUwMzdcdTUwMmNcdTRmZjZc''@;'; + put 'put ''dTRmZjdcdTUwMTdcdTUwMWNcdTUwMjBcdTUwMjdcdTUwMzVcdTUwMmZcdTUwMzFcdTUwMGVcdTUxNWFcdTUxOTRcdTUxOTNcdTUxY2FcdTUxYzRcdTUxYzVcdTUxYzhcdTUxY2VcdTUyNjFcdTUyNWFcdTUyNTJcdTUyNWVcdTUyNWZcdTUyNTVcdTUyNjJcdTUyY2RcdTUzMGVcdTUzOWVcdTU1''@;'; + put 'put ''MjZcdTU0ZTJcdTU1MTdcdTU1MTJcdTU0ZTdcdTU0ZjNcdTU0ZTRcdTU1MWFcdTU0ZmZcdTU1MDRcdTU1MDhcdTU0ZWJcdTU1MTFcdTU1MDVcdTU0ZjEiXSxbImQxNDAiLCJcdTU1MGFcdTU0ZmJcdTU0ZjdcdTU0ZjhcdTU0ZTBcdTU1MGVcdTU1MDNcdTU1MGJcdTU3MDFcdTU3MDJcdTU3Y2Nc''@;'; + put 'put ''dTU4MzJcdTU3ZDVcdTU3ZDJcdTU3YmFcdTU3YzZcdTU3YmRcdTU3YmNcdTU3YjhcdTU3YjZcdTU3YmZcdTU3YzdcdTU3ZDBcdTU3YjlcdTU3YzFcdTU5MGVcdTU5NGFcdTVhMTlcdTVhMTZcdTVhMmRcdTVhMmVcdTVhMTVcdTVhMGZcdTVhMTdcdTVhMGFcdTVhMWVcdTVhMzNcdTViNmNcdTVi''@;'; + put 'put ''YTdcdTViYWRcdTViYWNcdTVjMDNcdTVjNTZcdTVjNTRcdTVjZWNcdTVjZmZcdTVjZWVcdTVjZjFcdTVjZjdcdTVkMDBcdTVjZjlcdTVlMjlcdTVlMjhcdTVlYThcdTVlYWVcdTVlYWFcdTVlYWNcdTVmMzNcdTVmMzBcdTVmNjdcdTYwNWRcdTYwNWFcdTYwNjciXSxbImQxYTEiLCJcdTYwNDFc''@;'; + put 'put ''dTYwYTJcdTYwODhcdTYwODBcdTYwOTJcdTYwODFcdTYwOWRcdTYwODNcdTYwOTVcdTYwOWJcdTYwOTdcdTYwODdcdTYwOWNcdTYwOGVcdTYyMTlcdTYyNDZcdTYyZjJcdTYzMTBcdTYzNTZcdTYzMmNcdTYzNDRcdTYzNDVcdTYzMzZcdTYzNDNcdTYzZTRcdTYzMzlcdTYzNGJcdTYzNGFcdTYz''@;'; + put 'put ''M2NcdTYzMjlcdTYzNDFcdTYzMzRcdTYzNThcdTYzNTRcdTYzNTlcdTYzMmRcdTYzNDdcdTYzMzNcdTYzNWFcdTYzNTFcdTYzMzhcdTYzNTdcdTYzNDBcdTYzNDhcdTY1NGFcdTY1NDZcdTY1YzZcdTY1YzNcdTY1YzRcdTY1YzJcdTY2NGFcdTY2NWZcdTY2NDdcdTY2NTFcdTY3MTJcdTY3MTNc''@;'; + put 'put ''dTY4MWZcdTY4MWFcdTY4NDlcdTY4MzJcdTY4MzNcdTY4M2JcdTY4NGJcdTY4NGZcdTY4MTZcdTY4MzFcdTY4MWNcdTY4MzVcdTY4MmJcdTY4MmRcdTY4MmZcdTY4NGVcdTY4NDRcdTY4MzRcdTY4MWRcdTY4MTJcdTY4MTRcdTY4MjZcdTY4MjhcdTY4MmVcdTY4NGRcdTY4M2FcdTY4MjVcdTY4''@;'; + put 'put ''MjBcdTZiMmNcdTZiMmZcdTZiMmRcdTZiMzFcdTZiMzRcdTZiNmRcdTgwODJcdTZiODhcdTZiZTZcdTZiZTQiXSxbImQyNDAiLCJcdTZiZThcdTZiZTNcdTZiZTJcdTZiZTdcdTZjMjVcdTZkN2FcdTZkNjNcdTZkNjRcdTZkNzZcdTZkMGRcdTZkNjFcdTZkOTJcdTZkNThcdTZkNjJcdTZkNmRc''@;'; + put 'put ''dTZkNmZcdTZkOTFcdTZkOGRcdTZkZWZcdTZkN2ZcdTZkODZcdTZkNWVcdTZkNjdcdTZkNjBcdTZkOTdcdTZkNzBcdTZkN2NcdTZkNWZcdTZkODJcdTZkOThcdTZkMmZcdTZkNjhcdTZkOGJcdTZkN2VcdTZkODBcdTZkODRcdTZkMTZcdTZkODNcdTZkN2JcdTZkN2RcdTZkNzVcdTZkOTBcdTcw''@;'; + put 'put ''ZGNcdTcwZDNcdTcwZDFcdTcwZGRcdTcwY2JcdTdmMzlcdTcwZTJcdTcwZDdcdTcwZDJcdTcwZGVcdTcwZTBcdTcwZDRcdTcwY2RcdTcwYzVcdTcwYzZcdTcwYzdcdTcwZGFcdTcwY2VcdTcwZTFcdTcyNDJcdTcyNzgiXSxbImQyYTEiLCJcdTcyNzdcdTcyNzZcdTczMDBcdTcyZmFcdTcyZjRc''@;'; + put 'put ''dTcyZmVcdTcyZjZcdTcyZjNcdTcyZmJcdTczMDFcdTczZDNcdTczZDlcdTczZTVcdTczZDZcdTczYmNcdTczZTdcdTczZTNcdTczZTlcdTczZGNcdTczZDJcdTczZGJcdTczZDRcdTczZGRcdTczZGFcdTczZDdcdTczZDhcdTczZThcdTc0ZGVcdTc0ZGZcdTc0ZjRcdTc0ZjVcdTc1MjFcdTc1''@;'; + put 'put ''NWJcdTc1NWZcdTc1YjBcdTc1YzFcdTc1YmJcdTc1YzRcdTc1YzBcdTc1YmZcdTc1YjZcdTc1YmFcdTc2OGFcdTc2YzlcdTc3MWRcdTc3MWJcdTc3MTBcdTc3MTNcdTc3MTJcdTc3MjNcdTc3MTFcdTc3MTVcdTc3MTlcdTc3MWFcdTc3MjJcdTc3MjdcdTc4MjNcdTc4MmNcdTc4MjJcdTc4MzVc''@;'; + put 'put ''dTc4MmZcdTc4MjhcdTc4MmVcdTc4MmJcdTc4MjFcdTc4MjlcdTc4MzNcdTc4MmFcdTc4MzFcdTc5NTRcdTc5NWJcdTc5NGZcdTc5NWNcdTc5NTNcdTc5NTJcdTc5NTFcdTc5ZWJcdTc5ZWNcdTc5ZTBcdTc5ZWVcdTc5ZWRcdTc5ZWFcdTc5ZGNcdTc5ZGVcdTc5ZGRcdTdhODZcdTdhODlcdTdh''@;'; + put 'put ''ODVcdTdhOGJcdTdhOGNcdTdhOGFcdTdhODdcdTdhZDhcdTdiMTAiXSxbImQzNDAiLCJcdTdiMDRcdTdiMTNcdTdiMDVcdTdiMGZcdTdiMDhcdTdiMGFcdTdiMGVcdTdiMDlcdTdiMTJcdTdjODRcdTdjOTFcdTdjOGFcdTdjOGNcdTdjODhcdTdjOGRcdTdjODVcdTdkMWVcdTdkMWRcdTdkMTFc''@;'; + put 'put ''dTdkMGVcdTdkMThcdTdkMTZcdTdkMTNcdTdkMWZcdTdkMTJcdTdkMGZcdTdkMGNcdTdmNWNcdTdmNjFcdTdmNWVcdTdmNjBcdTdmNWRcdTdmNWJcdTdmOTZcdTdmOTJcdTdmYzNcdTdmYzJcdTdmYzBcdTgwMTZcdTgwM2VcdTgwMzlcdTgwZmFcdTgwZjJcdTgwZjlcdTgwZjVcdTgxMDFcdTgw''@;'; + put 'put ''ZmJcdTgxMDBcdTgyMDFcdTgyMmZcdTgyMjVcdTgzMzNcdTgzMmRcdTgzNDRcdTgzMTlcdTgzNTFcdTgzMjVcdTgzNTZcdTgzM2ZcdTgzNDFcdTgzMjZcdTgzMWNcdTgzMjIiXSxbImQzYTEiLCJcdTgzNDJcdTgzNGVcdTgzMWJcdTgzMmFcdTgzMDhcdTgzM2NcdTgzNGRcdTgzMTZcdTgzMjRc''@;'; + put 'put ''dTgzMjBcdTgzMzdcdTgzMmZcdTgzMjlcdTgzNDdcdTgzNDVcdTgzNGNcdTgzNTNcdTgzMWVcdTgzMmNcdTgzNGJcdTgzMjdcdTgzNDhcdTg2NTNcdTg2NTJcdTg2YTJcdTg2YThcdTg2OTZcdTg2OGRcdTg2OTFcdTg2OWVcdTg2ODdcdTg2OTdcdTg2ODZcdTg2OGJcdTg2OWFcdTg2ODVcdTg2''@;'; + put 'put ''YTVcdTg2OTlcdTg2YTFcdTg2YTdcdTg2OTVcdTg2OThcdTg2OGVcdTg2OWRcdTg2OTBcdTg2OTRcdTg4NDNcdTg4NDRcdTg4NmRcdTg4NzVcdTg4NzZcdTg4NzJcdTg4ODBcdTg4NzFcdTg4N2ZcdTg4NmZcdTg4ODNcdTg4N2VcdTg4NzRcdTg4N2NcdThhMTJcdThjNDdcdThjNTdcdThjN2Jc''@;'; + put 'put ''dThjYTRcdThjYTNcdThkNzZcdThkNzhcdThkYjVcdThkYjdcdThkYjZcdThlZDFcdThlZDNcdThmZmVcdThmZjVcdTkwMDJcdThmZmZcdThmZmJcdTkwMDRcdThmZmNcdThmZjZcdTkwZDZcdTkwZTBcdTkwZDlcdTkwZGFcdTkwZTNcdTkwZGZcdTkwZTVcdTkwZDhcdTkwZGJcdTkwZDdcdTkw''@;'; + put 'put ''ZGNcdTkwZTRcdTkxNTAiXSxbImQ0NDAiLCJcdTkxNGVcdTkxNGZcdTkxZDVcdTkxZTJcdTkxZGFcdTk2NWNcdTk2NWZcdTk2YmNcdTk4ZTNcdTlhZGZcdTliMmZcdTRlN2ZcdTUwNzBcdTUwNmFcdTUwNjFcdTUwNWVcdTUwNjBcdTUwNTNcdTUwNGJcdTUwNWRcdTUwNzJcdTUwNDhcdTUwNGRc''@;'; + put 'put ''dTUwNDFcdTUwNWJcdTUwNGFcdTUwNjJcdTUwMTVcdTUwNDVcdTUwNWZcdTUwNjlcdTUwNmJcdTUwNjNcdTUwNjRcdTUwNDZcdTUwNDBcdTUwNmVcdTUwNzNcdTUwNTdcdTUwNTFcdTUxZDBcdTUyNmJcdTUyNmRcdTUyNmNcdTUyNmVcdTUyZDZcdTUyZDNcdTUzMmRcdTUzOWNcdTU1NzVcdTU1''@;'; + put 'put ''NzZcdTU1M2NcdTU1NGRcdTU1NTBcdTU1MzRcdTU1MmFcdTU1NTFcdTU1NjJcdTU1MzZcdTU1MzVcdTU1MzBcdTU1NTJcdTU1NDUiXSxbImQ0YTEiLCJcdTU1MGNcdTU1MzJcdTU1NjVcdTU1NGVcdTU1MzlcdTU1NDhcdTU1MmRcdTU1M2JcdTU1NDBcdTU1NGJcdTU3MGFcdTU3MDdcdTU3ZmJc''@;'; + put 'put ''dTU4MTRcdTU3ZTJcdTU3ZjZcdTU3ZGNcdTU3ZjRcdTU4MDBcdTU3ZWRcdTU3ZmRcdTU4MDhcdTU3ZjhcdTU4MGJcdTU3ZjNcdTU3Y2ZcdTU4MDdcdTU3ZWVcdTU3ZTNcdTU3ZjJcdTU3ZTVcdTU3ZWNcdTU3ZTFcdTU4MGVcdTU3ZmNcdTU4MTBcdTU3ZTdcdTU4MDFcdTU4MGNcdTU3ZjFcdTU3''@;'; + put 'put ''ZTlcdTU3ZjBcdTU4MGRcdTU4MDRcdTU5NWNcdTVhNjBcdTVhNThcdTVhNTVcdTVhNjdcdTVhNWVcdTVhMzhcdTVhMzVcdTVhNmRcdTVhNTBcdTVhNWZcdTVhNjVcdTVhNmNcdTVhNTNcdTVhNjRcdTVhNTdcdTVhNDNcdTVhNWRcdTVhNTJcdTVhNDRcdTVhNWJcdTVhNDhcdTVhOGVcdTVhM2Vc''@;'; + put 'put ''dTVhNGRcdTVhMzlcdTVhNGNcdTVhNzBcdTVhNjlcdTVhNDdcdTVhNTFcdTVhNTZcdTVhNDJcdTVhNWNcdTViNzJcdTViNmVcdTViYzFcdTViYzBcdTVjNTlcdTVkMWVcdTVkMGJcdTVkMWRcdTVkMWFcdTVkMjBcdTVkMGNcdTVkMjhcdTVkMGRcdTVkMjZcdTVkMjVcdTVkMGYiXSxbImQ1NDAi''@;'; + put 'put ''LCJcdTVkMzBcdTVkMTJcdTVkMjNcdTVkMWZcdTVkMmVcdTVlM2VcdTVlMzRcdTVlYjFcdTVlYjRcdTVlYjlcdTVlYjJcdTVlYjNcdTVmMzZcdTVmMzhcdTVmOWJcdTVmOTZcdTVmOWZcdTYwOGFcdTYwOTBcdTYwODZcdTYwYmVcdTYwYjBcdTYwYmFcdTYwZDNcdTYwZDRcdTYwY2ZcdTYwZTRc''@;'; + put 'put ''dTYwZDlcdTYwZGRcdTYwYzhcdTYwYjFcdTYwZGJcdTYwYjdcdTYwY2FcdTYwYmZcdTYwYzNcdTYwY2RcdTYwYzBcdTYzMzJcdTYzNjVcdTYzOGFcdTYzODJcdTYzN2RcdTYzYmRcdTYzOWVcdTYzYWRcdTYzOWRcdTYzOTdcdTYzYWJcdTYzOGVcdTYzNmZcdTYzODdcdTYzOTBcdTYzNmVcdTYz''@;'; + put 'put ''YWZcdTYzNzVcdTYzOWNcdTYzNmRcdTYzYWVcdTYzN2NcdTYzYTRcdTYzM2JcdTYzOWYiXSxbImQ1YTEiLCJcdTYzNzhcdTYzODVcdTYzODFcdTYzOTFcdTYzOGRcdTYzNzBcdTY1NTNcdTY1Y2RcdTY2NjVcdTY2NjFcdTY2NWJcdTY2NTlcdTY2NWNcdTY2NjJcdTY3MThcdTY4NzlcdTY4ODdc''@;'; + put 'put ''dTY4OTBcdTY4OWNcdTY4NmRcdTY4NmVcdTY4YWVcdTY4YWJcdTY5NTZcdTY4NmZcdTY4YTNcdTY4YWNcdTY4YTlcdTY4NzVcdTY4NzRcdTY4YjJcdTY4OGZcdTY4NzdcdTY4OTJcdTY4N2NcdTY4NmJcdTY4NzJcdTY4YWFcdTY4ODBcdTY4NzFcdTY4N2VcdTY4OWJcdTY4OTZcdTY4OGJcdTY4''@;'; + put 'put ''YTBcdTY4ODlcdTY4YTRcdTY4NzhcdTY4N2JcdTY4OTFcdTY4OGNcdTY4OGFcdTY4N2RcdTZiMzZcdTZiMzNcdTZiMzdcdTZiMzhcdTZiOTFcdTZiOGZcdTZiOGRcdTZiOGVcdTZiOGNcdTZjMmFcdTZkYzBcdTZkYWJcdTZkYjRcdTZkYjNcdTZlNzRcdTZkYWNcdTZkZTlcdTZkZTJcdTZkYjdc''@;'; + put 'put ''dTZkZjZcdTZkZDRcdTZlMDBcdTZkYzhcdTZkZTBcdTZkZGZcdTZkZDZcdTZkYmVcdTZkZTVcdTZkZGNcdTZkZGRcdTZkZGJcdTZkZjRcdTZkY2FcdTZkYmRcdTZkZWRcdTZkZjBcdTZkYmFcdTZkZDVcdTZkYzJcdTZkY2ZcdTZkYzkiXSxbImQ2NDAiLCJcdTZkZDBcdTZkZjJcdTZkZDNcdTZk''@;'; + put 'put ''ZmRcdTZkZDdcdTZkY2RcdTZkZTNcdTZkYmJcdTcwZmFcdTcxMGRcdTcwZjdcdTcxMTdcdTcwZjRcdTcxMGNcdTcwZjBcdTcxMDRcdTcwZjNcdTcxMTBcdTcwZmNcdTcwZmZcdTcxMDZcdTcxMTNcdTcxMDBcdTcwZjhcdTcwZjZcdTcxMGJcdTcxMDJcdTcxMGVcdTcyN2VcdTcyN2JcdTcyN2Nc''@;'; + put 'put ''dTcyN2ZcdTczMWRcdTczMTdcdTczMDdcdTczMTFcdTczMThcdTczMGFcdTczMDhcdTcyZmZcdTczMGZcdTczMWVcdTczODhcdTczZjZcdTczZjhcdTczZjVcdTc0MDRcdTc0MDFcdTczZmRcdTc0MDdcdTc0MDBcdTczZmFcdTczZmNcdTczZmZcdTc0MGNcdTc0MGJcdTczZjRcdTc0MDhcdTc1''@;'; + put 'put ''NjRcdTc1NjNcdTc1Y2VcdTc1ZDJcdTc1Y2YiXSxbImQ2YTEiLCJcdTc1Y2JcdTc1Y2NcdTc1ZDFcdTc1ZDBcdTc2OGZcdTc2ODlcdTc2ZDNcdTc3MzlcdTc3MmZcdTc3MmRcdTc3MzFcdTc3MzJcdTc3MzRcdTc3MzNcdTc3M2RcdTc3MjVcdTc3M2JcdTc3MzVcdTc4NDhcdTc4NTJcdTc4NDlc''@;'; + put 'put ''dTc4NGRcdTc4NGFcdTc4NGNcdTc4MjZcdTc4NDVcdTc4NTBcdTc5NjRcdTc5NjdcdTc5NjlcdTc5NmFcdTc5NjNcdTc5NmJcdTc5NjFcdTc5YmJcdTc5ZmFcdTc5ZjhcdTc5ZjZcdTc5ZjdcdTdhOGZcdTdhOTRcdTdhOTBcdTdiMzVcdTdiNDdcdTdiMzRcdTdiMjVcdTdiMzBcdTdiMjJcdTdi''@;'; + put 'put ''MjRcdTdiMzNcdTdiMThcdTdiMmFcdTdiMWRcdTdiMzFcdTdiMmJcdTdiMmRcdTdiMmZcdTdiMzJcdTdiMzhcdTdiMWFcdTdiMjNcdTdjOTRcdTdjOThcdTdjOTZcdTdjYTNcdTdkMzVcdTdkM2RcdTdkMzhcdTdkMzZcdTdkM2FcdTdkNDVcdTdkMmNcdTdkMjlcdTdkNDFcdTdkNDdcdTdkM2Vc''@;'; + put 'put ''dTdkM2ZcdTdkNGFcdTdkM2JcdTdkMjhcdTdmNjNcdTdmOTVcdTdmOWNcdTdmOWRcdTdmOWJcdTdmY2FcdTdmY2JcdTdmY2RcdTdmZDBcdTdmZDFcdTdmYzdcdTdmY2ZcdTdmYzlcdTgwMWYiXSxbImQ3NDAiLCJcdTgwMWVcdTgwMWJcdTgwNDdcdTgwNDNcdTgwNDhcdTgxMThcdTgxMjVcdTgx''@;'; + put 'put ''MTlcdTgxMWJcdTgxMmRcdTgxMWZcdTgxMmNcdTgxMWVcdTgxMjFcdTgxMTVcdTgxMjdcdTgxMWRcdTgxMjJcdTgyMTFcdTgyMzhcdTgyMzNcdTgyM2FcdTgyMzRcdTgyMzJcdTgyNzRcdTgzOTBcdTgzYTNcdTgzYThcdTgzOGRcdTgzN2FcdTgzNzNcdTgzYTRcdTgzNzRcdTgzOGZcdTgzODFc''@;'; + put 'put ''dTgzOTVcdTgzOTlcdTgzNzVcdTgzOTRcdTgzYTlcdTgzN2RcdTgzODNcdTgzOGNcdTgzOWRcdTgzOWJcdTgzYWFcdTgzOGJcdTgzN2VcdTgzYTVcdTgzYWZcdTgzODhcdTgzOTdcdTgzYjBcdTgzN2ZcdTgzYTZcdTgzODdcdTgzYWVcdTgzNzZcdTgzOWFcdTg2NTlcdTg2NTZcdTg2YmZcdTg2''@;'; + put 'put ''YjciXSxbImQ3YTEiLCJcdTg2YzJcdTg2YzFcdTg2YzVcdTg2YmFcdTg2YjBcdTg2YzhcdTg2YjlcdTg2YjNcdTg2YjhcdTg2Y2NcdTg2YjRcdTg2YmJcdTg2YmNcdTg2YzNcdTg2YmRcdTg2YmVcdTg4NTJcdTg4ODlcdTg4OTVcdTg4YThcdTg4YTJcdTg4YWFcdTg4OWFcdTg4OTFcdTg4YTFc''@;'; + put 'put ''dTg4OWZcdTg4OThcdTg4YTdcdTg4OTlcdTg4OWJcdTg4OTdcdTg4YTRcdTg4YWNcdTg4OGNcdTg4OTNcdTg4OGVcdTg5ODJcdTg5ZDZcdTg5ZDlcdTg5ZDVcdThhMzBcdThhMjdcdThhMmNcdThhMWVcdThjMzlcdThjM2JcdThjNWNcdThjNWRcdThjN2RcdThjYTVcdThkN2RcdThkN2JcdThk''@;'; + put 'put ''NzlcdThkYmNcdThkYzJcdThkYjlcdThkYmZcdThkYzFcdThlZDhcdThlZGVcdThlZGRcdThlZGNcdThlZDdcdThlZTBcdThlZTFcdTkwMjRcdTkwMGJcdTkwMTFcdTkwMWNcdTkwMGNcdTkwMjFcdTkwZWZcdTkwZWFcdTkwZjBcdTkwZjRcdTkwZjJcdTkwZjNcdTkwZDRcdTkwZWJcdTkwZWNc''@;'; + put 'put ''dTkwZTlcdTkxNTZcdTkxNThcdTkxNWFcdTkxNTNcdTkxNTVcdTkxZWNcdTkxZjRcdTkxZjFcdTkxZjNcdTkxZjhcdTkxZTRcdTkxZjlcdTkxZWEiXSxbImQ4NDAiLCJcdTkxZWJcdTkxZjdcdTkxZThcdTkxZWVcdTk1N2FcdTk1ODZcdTk1ODhcdTk2N2NcdTk2NmRcdTk2NmJcdTk2NzFcdTk2''@;'; + put 'put ''NmZcdTk2YmZcdTk3NmFcdTk4MDRcdTk4ZTVcdTk5OTdcdTUwOWJcdTUwOTVcdTUwOTRcdTUwOWVcdTUwOGJcdTUwYTNcdTUwODNcdTUwOGNcdTUwOGVcdTUwOWRcdTUwNjhcdTUwOWNcdTUwOTJcdTUwODJcdTUwODdcdTUxNWZcdTUxZDRcdTUzMTJcdTUzMTFcdTUzYTRcdTUzYTdcdTU1OTFc''@;'; + put 'put ''dTU1YThcdTU1YTVcdTU1YWRcdTU1NzdcdTU2NDVcdTU1YTJcdTU1OTNcdTU1ODhcdTU1OGZcdTU1YjVcdTU1ODFcdTU1YTNcdTU1OTJcdTU1YTRcdTU1N2RcdTU1OGNcdTU1YTZcdTU1N2ZcdTU1OTVcdTU1YTFcdTU1OGVcdTU3MGNcdTU4MjlcdTU4MzciXSxbImQ4YTEiLCJcdTU4MTlcdTU4''@;'; + put 'put ''MWVcdTU4MjdcdTU4MjNcdTU4MjhcdTU3ZjVcdTU4NDhcdTU4MjVcdTU4MWNcdTU4MWJcdTU4MzNcdTU4M2ZcdTU4MzZcdTU4MmVcdTU4MzlcdTU4MzhcdTU4MmRcdTU4MmNcdTU4M2JcdTU5NjFcdTVhYWZcdTVhOTRcdTVhOWZcdTVhN2FcdTVhYTJcdTVhOWVcdTVhNzhcdTVhYTZcdTVhN2Nc''@;'; + put 'put ''dTVhYTVcdTVhYWNcdTVhOTVcdTVhYWVcdTVhMzdcdTVhODRcdTVhOGFcdTVhOTdcdTVhODNcdTVhOGJcdTVhYTlcdTVhN2JcdTVhN2RcdTVhOGNcdTVhOWNcdTVhOGZcdTVhOTNcdTVhOWRcdTViZWFcdTViY2RcdTViY2JcdTViZDRcdTViZDFcdTViY2FcdTViY2VcdTVjMGNcdTVjMzBcdTVk''@;'; + put 'put ''MzdcdTVkNDNcdTVkNmJcdTVkNDFcdTVkNGJcdTVkM2ZcdTVkMzVcdTVkNTFcdTVkNGVcdTVkNTVcdTVkMzNcdTVkM2FcdTVkNTJcdTVkM2RcdTVkMzFcdTVkNTlcdTVkNDJcdTVkMzlcdTVkNDlcdTVkMzhcdTVkM2NcdTVkMzJcdTVkMzZcdTVkNDBcdTVkNDVcdTVlNDRcdTVlNDFcdTVmNThc''@;'; + put 'put ''dTVmYTZcdTVmYTVcdTVmYWJcdTYwYzlcdTYwYjlcdTYwY2NcdTYwZTJcdTYwY2VcdTYwYzRcdTYxMTQiXSxbImQ5NDAiLCJcdTYwZjJcdTYxMGFcdTYxMTZcdTYxMDVcdTYwZjVcdTYxMTNcdTYwZjhcdTYwZmNcdTYwZmVcdTYwYzFcdTYxMDNcdTYxMThcdTYxMWRcdTYxMTBcdTYwZmZcdTYx''@;'; + put 'put ''MDRcdTYxMGJcdTYyNGFcdTYzOTRcdTYzYjFcdTYzYjBcdTYzY2VcdTYzZTVcdTYzZThcdTYzZWZcdTYzYzNcdTY0OWRcdTYzZjNcdTYzY2FcdTYzZTBcdTYzZjZcdTYzZDVcdTYzZjJcdTYzZjVcdTY0NjFcdTYzZGZcdTYzYmVcdTYzZGRcdTYzZGNcdTYzYzRcdTYzZDhcdTYzZDNcdTYzYzJc''@;'; + put 'put ''dTYzYzdcdTYzY2NcdTYzY2JcdTYzYzhcdTYzZjBcdTYzZDdcdTYzZDlcdTY1MzJcdTY1NjdcdTY1NmFcdTY1NjRcdTY1NWNcdTY1NjhcdTY1NjVcdTY1OGNcdTY1OWRcdTY1OWVcdTY1YWVcdTY1ZDBcdTY1ZDIiXSxbImQ5YTEiLCJcdTY2N2NcdTY2NmNcdTY2N2JcdTY2ODBcdTY2NzFcdTY2''@;'; + put 'put ''NzlcdTY2NmFcdTY2NzJcdTY3MDFcdTY5MGNcdTY4ZDNcdTY5MDRcdTY4ZGNcdTY5MmFcdTY4ZWNcdTY4ZWFcdTY4ZjFcdTY5MGZcdTY4ZDZcdTY4ZjdcdTY4ZWJcdTY4ZTRcdTY4ZjZcdTY5MTNcdTY5MTBcdTY4ZjNcdTY4ZTFcdTY5MDdcdTY4Y2NcdTY5MDhcdTY5NzBcdTY4YjRcdTY5MTFc''@;'; + put 'put ''dTY4ZWZcdTY4YzZcdTY5MTRcdTY4ZjhcdTY4ZDBcdTY4ZmRcdTY4ZmNcdTY4ZThcdTY5MGJcdTY5MGFcdTY5MTdcdTY4Y2VcdTY4YzhcdTY4ZGRcdTY4ZGVcdTY4ZTZcdTY4ZjRcdTY4ZDFcdTY5MDZcdTY4ZDRcdTY4ZTlcdTY5MTVcdTY5MjVcdTY4YzdcdTZiMzlcdTZiM2JcdTZiM2ZcdTZi''@;'; + put 'put ''M2NcdTZiOTRcdTZiOTdcdTZiOTlcdTZiOTVcdTZiYmRcdTZiZjBcdTZiZjJcdTZiZjNcdTZjMzBcdTZkZmNcdTZlNDZcdTZlNDdcdTZlMWZcdTZlNDlcdTZlODhcdTZlM2NcdTZlM2RcdTZlNDVcdTZlNjJcdTZlMmJcdTZlM2ZcdTZlNDFcdTZlNWRcdTZlNzNcdTZlMWNcdTZlMzNcdTZlNGJc''@;'; + put 'put ''dTZlNDBcdTZlNTFcdTZlM2JcdTZlMDNcdTZlMmVcdTZlNWUiXSxbImRhNDAiLCJcdTZlNjhcdTZlNWNcdTZlNjFcdTZlMzFcdTZlMjhcdTZlNjBcdTZlNzFcdTZlNmJcdTZlMzlcdTZlMjJcdTZlMzBcdTZlNTNcdTZlNjVcdTZlMjdcdTZlNzhcdTZlNjRcdTZlNzdcdTZlNTVcdTZlNzlcdTZl''@;'; + put 'put ''NTJcdTZlNjZcdTZlMzVcdTZlMzZcdTZlNWFcdTcxMjBcdTcxMWVcdTcxMmZcdTcwZmJcdTcxMmVcdTcxMzFcdTcxMjNcdTcxMjVcdTcxMjJcdTcxMzJcdTcxMWZcdTcxMjhcdTcxM2FcdTcxMWJcdTcyNGJcdTcyNWFcdTcyODhcdTcyODlcdTcyODZcdTcyODVcdTcyOGJcdTczMTJcdTczMGJc''@;'; + put 'put ''dTczMzBcdTczMjJcdTczMzFcdTczMzNcdTczMjdcdTczMzJcdTczMmRcdTczMjZcdTczMjNcdTczMzVcdTczMGNcdTc0MmVcdTc0MmNcdTc0MzBcdTc0MmJcdTc0MTYiXSxbImRhYTEiLCJcdTc0MWFcdTc0MjFcdTc0MmRcdTc0MzFcdTc0MjRcdTc0MjNcdTc0MWRcdTc0MjlcdTc0MjBcdTc0''@;'; + put 'put ''MzJcdTc0ZmJcdTc1MmZcdTc1NmZcdTc1NmNcdTc1ZTdcdTc1ZGFcdTc1ZTFcdTc1ZTZcdTc1ZGRcdTc1ZGZcdTc1ZTRcdTc1ZDdcdTc2OTVcdTc2OTJcdTc2ZGFcdTc3NDZcdTc3NDdcdTc3NDRcdTc3NGRcdTc3NDVcdTc3NGFcdTc3NGVcdTc3NGJcdTc3NGNcdTc3ZGVcdTc3ZWNcdTc4NjBc''@;'; + put 'put ''dTc4NjRcdTc4NjVcdTc4NWNcdTc4NmRcdTc4NzFcdTc4NmFcdTc4NmVcdTc4NzBcdTc4NjlcdTc4NjhcdTc4NWVcdTc4NjJcdTc5NzRcdTc5NzNcdTc5NzJcdTc5NzBcdTdhMDJcdTdhMGFcdTdhMDNcdTdhMGNcdTdhMDRcdTdhOTlcdTdhZTZcdTdhZTRcdTdiNGFcdTdiM2JcdTdiNDRcdTdi''@;'; + put 'put ''NDhcdTdiNGNcdTdiNGVcdTdiNDBcdTdiNThcdTdiNDVcdTdjYTJcdTdjOWVcdTdjYThcdTdjYTFcdTdkNThcdTdkNmZcdTdkNjNcdTdkNTNcdTdkNTZcdTdkNjdcdTdkNmFcdTdkNGZcdTdkNmRcdTdkNWNcdTdkNmJcdTdkNTJcdTdkNTRcdTdkNjlcdTdkNTFcdTdkNWZcdTdkNGVcdTdmM2Vc''@;'; + put 'put ''dTdmM2ZcdTdmNjUiXSxbImRiNDAiLCJcdTdmNjZcdTdmYTJcdTdmYTBcdTdmYTFcdTdmZDdcdTgwNTFcdTgwNGZcdTgwNTBcdTgwZmVcdTgwZDRcdTgxNDNcdTgxNGFcdTgxNTJcdTgxNGZcdTgxNDdcdTgxM2RcdTgxNGRcdTgxM2FcdTgxZTZcdTgxZWVcdTgxZjdcdTgxZjhcdTgxZjlcdTgy''@;'; + put 'put ''MDRcdTgyM2NcdTgyM2RcdTgyM2ZcdTgyNzVcdTgzM2JcdTgzY2ZcdTgzZjlcdTg0MjNcdTgzYzBcdTgzZThcdTg0MTJcdTgzZTdcdTgzZTRcdTgzZmNcdTgzZjZcdTg0MTBcdTgzYzZcdTgzYzhcdTgzZWJcdTgzZTNcdTgzYmZcdTg0MDFcdTgzZGRcdTgzZTVcdTgzZDhcdTgzZmZcdTgzZTFc''@;'; + put 'put ''dTgzY2JcdTgzY2VcdTgzZDZcdTgzZjVcdTgzYzlcdTg0MDlcdTg0MGZcdTgzZGVcdTg0MTFcdTg0MDZcdTgzYzJcdTgzZjMiXSxbImRiYTEiLCJcdTgzZDVcdTgzZmFcdTgzYzdcdTgzZDFcdTgzZWFcdTg0MTNcdTgzYzNcdTgzZWNcdTgzZWVcdTgzYzRcdTgzZmJcdTgzZDdcdTgzZTJcdTg0''@;'; + put 'put ''MWJcdTgzZGJcdTgzZmVcdTg2ZDhcdTg2ZTJcdTg2ZTZcdTg2ZDNcdTg2ZTNcdTg2ZGFcdTg2ZWFcdTg2ZGRcdTg2ZWJcdTg2ZGNcdTg2ZWNcdTg2ZTlcdTg2ZDdcdTg2ZThcdTg2ZDFcdTg4NDhcdTg4NTZcdTg4NTVcdTg4YmFcdTg4ZDdcdTg4YjlcdTg4YjhcdTg4YzBcdTg4YmVcdTg4YjZc''@;'; + put 'put ''dTg4YmNcdTg4YjdcdTg4YmRcdTg4YjJcdTg5MDFcdTg4YzlcdTg5OTVcdTg5OThcdTg5OTdcdTg5ZGRcdTg5ZGFcdTg5ZGJcdThhNGVcdThhNGRcdThhMzlcdThhNTlcdThhNDBcdThhNTdcdThhNThcdThhNDRcdThhNDVcdThhNTJcdThhNDhcdThhNTFcdThhNGFcdThhNGNcdThhNGZcdThj''@;'; + put 'put ''NWZcdThjODFcdThjODBcdThjYmFcdThjYmVcdThjYjBcdThjYjlcdThjYjVcdThkODRcdThkODBcdThkODlcdThkZDhcdThkZDNcdThkY2RcdThkYzdcdThkZDZcdThkZGNcdThkY2ZcdThkZDVcdThkZDlcdThkYzhcdThkZDdcdThkYzVcdThlZWZcdThlZjdcdThlZmEiXSxbImRjNDAiLCJc''@;'; + put 'put ''dThlZjlcdThlZTZcdThlZWVcdThlZTVcdThlZjVcdThlZTdcdThlZThcdThlZjZcdThlZWJcdThlZjFcdThlZWNcdThlZjRcdThlZTlcdTkwMmRcdTkwMzRcdTkwMmZcdTkxMDZcdTkxMmNcdTkxMDRcdTkwZmZcdTkwZmNcdTkxMDhcdTkwZjlcdTkwZmJcdTkxMDFcdTkxMDBcdTkxMDdcdTkx''@;'; + put 'put ''MDVcdTkxMDNcdTkxNjFcdTkxNjRcdTkxNWZcdTkxNjJcdTkxNjBcdTkyMDFcdTkyMGFcdTkyMjVcdTkyMDNcdTkyMWFcdTkyMjZcdTkyMGZcdTkyMGNcdTkyMDBcdTkyMTJcdTkxZmZcdTkxZmRcdTkyMDZcdTkyMDRcdTkyMjdcdTkyMDJcdTkyMWNcdTkyMjRcdTkyMTlcdTkyMTdcdTkyMDVc''@;'; + put 'put ''dTkyMTZcdTk1N2JcdTk1OGRcdTk1OGNcdTk1OTBcdTk2ODdcdTk2N2VcdTk2ODgiXSxbImRjYTEiLCJcdTk2ODlcdTk2ODNcdTk2ODBcdTk2YzJcdTk2YzhcdTk2YzNcdTk2ZjFcdTk2ZjBcdTk3NmNcdTk3NzBcdTk3NmVcdTk4MDdcdTk4YTlcdTk4ZWJcdTljZTZcdTllZjlcdTRlODNcdTRl''@;'; + put 'put ''ODRcdTRlYjZcdTUwYmRcdTUwYmZcdTUwYzZcdTUwYWVcdTUwYzRcdTUwY2FcdTUwYjRcdTUwYzhcdTUwYzJcdTUwYjBcdTUwYzFcdTUwYmFcdTUwYjFcdTUwY2JcdTUwYzlcdTUwYjZcdTUwYjhcdTUxZDdcdTUyN2FcdTUyNzhcdTUyN2JcdTUyN2NcdTU1YzNcdTU1ZGJcdTU1Y2NcdTU1ZDBc''@;'; + put 'put ''dTU1Y2JcdTU1Y2FcdTU1ZGRcdTU1YzBcdTU1ZDRcdTU1YzRcdTU1ZTlcdTU1YmZcdTU1ZDJcdTU1OGRcdTU1Y2ZcdTU1ZDVcdTU1ZTJcdTU1ZDZcdTU1YzhcdTU1ZjJcdTU1Y2RcdTU1ZDlcdTU1YzJcdTU3MTRcdTU4NTNcdTU4NjhcdTU4NjRcdTU4NGZcdTU4NGRcdTU4NDlcdTU4NmZcdTU4''@;'; + put 'put ''NTVcdTU4NGVcdTU4NWRcdTU4NTlcdTU4NjVcdTU4NWJcdTU4M2RcdTU4NjNcdTU4NzFcdTU4ZmNcdTVhYzdcdTVhYzRcdTVhY2JcdTVhYmFcdTVhYjhcdTVhYjFcdTVhYjVcdTVhYjBcdTVhYmZcdTVhYzhcdTVhYmJcdTVhYzYiXSxbImRkNDAiLCJcdTVhYjdcdTVhYzBcdTVhY2FcdTVhYjRc''@;'; + put 'put ''dTVhYjZcdTVhY2RcdTVhYjlcdTVhOTBcdTViZDZcdTViZDhcdTViZDlcdTVjMWZcdTVjMzNcdTVkNzFcdTVkNjNcdTVkNGFcdTVkNjVcdTVkNzJcdTVkNmNcdTVkNWVcdTVkNjhcdTVkNjdcdTVkNjJcdTVkZjBcdTVlNGZcdTVlNGVcdTVlNGFcdTVlNGRcdTVlNGJcdTVlYzVcdTVlY2NcdTVl''@;'; + put 'put ''YzZcdTVlY2JcdTVlYzdcdTVmNDBcdTVmYWZcdTVmYWRcdTYwZjdcdTYxNDlcdTYxNGFcdTYxMmJcdTYxNDVcdTYxMzZcdTYxMzJcdTYxMmVcdTYxNDZcdTYxMmZcdTYxNGZcdTYxMjlcdTYxNDBcdTYyMjBcdTkxNjhcdTYyMjNcdTYyMjVcdTYyMjRcdTYzYzVcdTYzZjFcdTYzZWJcdTY0MTBc''@;'; + put 'put ''dTY0MTJcdTY0MDlcdTY0MjBcdTY0MjQiXSxbImRkYTEiLCJcdTY0MzNcdTY0NDNcdTY0MWZcdTY0MTVcdTY0MThcdTY0MzlcdTY0MzdcdTY0MjJcdTY0MjNcdTY0MGNcdTY0MjZcdTY0MzBcdTY0MjhcdTY0NDFcdTY0MzVcdTY0MmZcdTY0MGFcdTY0MWFcdTY0NDBcdTY0MjVcdTY0MjdcdTY0''@;'; + put 'put ''MGJcdTYzZTdcdTY0MWJcdTY0MmVcdTY0MjFcdTY0MGVcdTY1NmZcdTY1OTJcdTY1ZDNcdTY2ODZcdTY2OGNcdTY2OTVcdTY2OTBcdTY2OGJcdTY2OGFcdTY2OTlcdTY2OTRcdTY2NzhcdTY3MjBcdTY5NjZcdTY5NWZcdTY5MzhcdTY5NGVcdTY5NjJcdTY5NzFcdTY5M2ZcdTY5NDVcdTY5NmFc''@;'; + put 'put ''dTY5MzlcdTY5NDJcdTY5NTdcdTY5NTlcdTY5N2FcdTY5NDhcdTY5NDlcdTY5MzVcdTY5NmNcdTY5MzNcdTY5M2RcdTY5NjVcdTY4ZjBcdTY5NzhcdTY5MzRcdTY5NjlcdTY5NDBcdTY5NmZcdTY5NDRcdTY5NzZcdTY5NThcdTY5NDFcdTY5NzRcdTY5NGNcdTY5M2JcdTY5NGJcdTY5MzdcdTY5''@;'; + put 'put ''NWNcdTY5NGZcdTY5NTFcdTY5MzJcdTY5NTJcdTY5MmZcdTY5N2JcdTY5M2NcdTZiNDZcdTZiNDVcdTZiNDNcdTZiNDJcdTZiNDhcdTZiNDFcdTZiOWJcdWZhMGRcdTZiZmJcdTZiZmMiXSxbImRlNDAiLCJcdTZiZjlcdTZiZjdcdTZiZjhcdTZlOWJcdTZlZDZcdTZlYzhcdTZlOGZcdTZlYzBc''@;'; + put 'put ''dTZlOWZcdTZlOTNcdTZlOTRcdTZlYTBcdTZlYjFcdTZlYjlcdTZlYzZcdTZlZDJcdTZlYmRcdTZlYzFcdTZlOWVcdTZlYzlcdTZlYjdcdTZlYjBcdTZlY2RcdTZlYTZcdTZlY2ZcdTZlYjJcdTZlYmVcdTZlYzNcdTZlZGNcdTZlZDhcdTZlOTlcdTZlOTJcdTZlOGVcdTZlOGRcdTZlYTRcdTZl''@;'; + put 'put ''YTFcdTZlYmZcdTZlYjNcdTZlZDBcdTZlY2FcdTZlOTdcdTZlYWVcdTZlYTNcdTcxNDdcdTcxNTRcdTcxNTJcdTcxNjNcdTcxNjBcdTcxNDFcdTcxNWRcdTcxNjJcdTcxNzJcdTcxNzhcdTcxNmFcdTcxNjFcdTcxNDJcdTcxNThcdTcxNDNcdTcxNGJcdTcxNzBcdTcxNWZcdTcxNTBcdTcxNTMi''@;'; + put 'put ''XSxbImRlYTEiLCJcdTcxNDRcdTcxNGRcdTcxNWFcdTcyNGZcdTcyOGRcdTcyOGNcdTcyOTFcdTcyOTBcdTcyOGVcdTczM2NcdTczNDJcdTczM2JcdTczM2FcdTczNDBcdTczNGFcdTczNDlcdTc0NDRcdTc0NGFcdTc0NGJcdTc0NTJcdTc0NTFcdTc0NTdcdTc0NDBcdTc0NGZcdTc0NTBcdTc0''@;'; + put 'put ''NGVcdTc0NDJcdTc0NDZcdTc0NGRcdTc0NTRcdTc0ZTFcdTc0ZmZcdTc0ZmVcdTc0ZmRcdTc1MWRcdTc1NzlcdTc1NzdcdTY5ODNcdTc1ZWZcdTc2MGZcdTc2MDNcdTc1ZjdcdTc1ZmVcdTc1ZmNcdTc1ZjlcdTc1ZjhcdTc2MTBcdTc1ZmJcdTc1ZjZcdTc1ZWRcdTc1ZjVcdTc1ZmRcdTc2OTlc''@;'; + put 'put ''dTc2YjVcdTc2ZGRcdTc3NTVcdTc3NWZcdTc3NjBcdTc3NTJcdTc3NTZcdTc3NWFcdTc3NjlcdTc3NjdcdTc3NTRcdTc3NTlcdTc3NmRcdTc3ZTBcdTc4ODdcdTc4OWFcdTc4OTRcdTc4OGZcdTc4ODRcdTc4OTVcdTc4ODVcdTc4ODZcdTc4YTFcdTc4ODNcdTc4NzlcdTc4OTlcdTc4ODBcdTc4''@;'; + put 'put ''OTZcdTc4N2JcdTc5N2NcdTc5ODJcdTc5N2RcdTc5NzlcdTdhMTFcdTdhMThcdTdhMTlcdTdhMTJcdTdhMTdcdTdhMTVcdTdhMjJcdTdhMTMiXSxbImRmNDAiLCJcdTdhMWJcdTdhMTBcdTdhYTNcdTdhYTJcdTdhOWVcdTdhZWJcdTdiNjZcdTdiNjRcdTdiNmRcdTdiNzRcdTdiNjlcdTdiNzJc''@;'; + put 'put ''dTdiNjVcdTdiNzNcdTdiNzFcdTdiNzBcdTdiNjFcdTdiNzhcdTdiNzZcdTdiNjNcdTdjYjJcdTdjYjRcdTdjYWZcdTdkODhcdTdkODZcdTdkODBcdTdkOGRcdTdkN2ZcdTdkODVcdTdkN2FcdTdkOGVcdTdkN2JcdTdkODNcdTdkN2NcdTdkOGNcdTdkOTRcdTdkODRcdTdkN2RcdTdkOTJcdTdm''@;'; + put 'put ''NmRcdTdmNmJcdTdmNjdcdTdmNjhcdTdmNmNcdTdmYTZcdTdmYTVcdTdmYTdcdTdmZGJcdTdmZGNcdTgwMjFcdTgxNjRcdTgxNjBcdTgxNzdcdTgxNWNcdTgxNjlcdTgxNWJcdTgxNjJcdTgxNzJcdTY3MjFcdTgxNWVcdTgxNzZcdTgxNjdcdTgxNmYiXSxbImRmYTEiLCJcdTgxNDRcdTgxNjFc''@;'; + put 'put ''dTgyMWRcdTgyNDlcdTgyNDRcdTgyNDBcdTgyNDJcdTgyNDVcdTg0ZjFcdTg0M2ZcdTg0NTZcdTg0NzZcdTg0NzlcdTg0OGZcdTg0OGRcdTg0NjVcdTg0NTFcdTg0NDBcdTg0ODZcdTg0NjdcdTg0MzBcdTg0NGRcdTg0N2RcdTg0NWFcdTg0NTlcdTg0NzRcdTg0NzNcdTg0NWRcdTg1MDdcdTg0''@;'; + put 'put ''NWVcdTg0MzdcdTg0M2FcdTg0MzRcdTg0N2FcdTg0NDNcdTg0NzhcdTg0MzJcdTg0NDVcdTg0MjlcdTgzZDlcdTg0NGJcdTg0MmZcdTg0NDJcdTg0MmRcdTg0NWZcdTg0NzBcdTg0MzlcdTg0NGVcdTg0NGNcdTg0NTJcdTg0NmZcdTg0YzVcdTg0OGVcdTg0M2JcdTg0NDdcdTg0MzZcdTg0MzNc''@;'; + put 'put ''dTg0NjhcdTg0N2VcdTg0NDRcdTg0MmJcdTg0NjBcdTg0NTRcdTg0NmVcdTg0NTBcdTg3MGJcdTg3MDRcdTg2ZjdcdTg3MGNcdTg2ZmFcdTg2ZDZcdTg2ZjVcdTg3NGRcdTg2ZjhcdTg3MGVcdTg3MDlcdTg3MDFcdTg2ZjZcdTg3MGRcdTg3MDVcdTg4ZDZcdTg4Y2JcdTg4Y2RcdTg4Y2VcdTg4''@;'; + put 'put ''ZGVcdTg4ZGJcdTg4ZGFcdTg4Y2NcdTg4ZDBcdTg5ODVcdTg5OWJcdTg5ZGZcdTg5ZTVcdTg5ZTQiXSxbImUwNDAiLCJcdTg5ZTFcdTg5ZTBcdTg5ZTJcdTg5ZGNcdTg5ZTZcdThhNzZcdThhODZcdThhN2ZcdThhNjFcdThhM2ZcdThhNzdcdThhODJcdThhODRcdThhNzVcdThhODNcdThhODFc''@;'; + put 'put ''dThhNzRcdThhN2FcdThjM2NcdThjNGJcdThjNGFcdThjNjVcdThjNjRcdThjNjZcdThjODZcdThjODRcdThjODVcdThjY2NcdThkNjhcdThkNjlcdThkOTFcdThkOGNcdThkOGVcdThkOGZcdThkOGRcdThkOTNcdThkOTRcdThkOTBcdThkOTJcdThkZjBcdThkZTBcdThkZWNcdThkZjFcdThk''@;'; + put 'put ''ZWVcdThkZDBcdThkZTlcdThkZTNcdThkZTJcdThkZTdcdThkZjJcdThkZWJcdThkZjRcdThmMDZcdThlZmZcdThmMDFcdThmMDBcdThmMDVcdThmMDdcdThmMDhcdThmMDJcdThmMGJcdTkwNTJcdTkwM2YiXSxbImUwYTEiLCJcdTkwNDRcdTkwNDlcdTkwM2RcdTkxMTBcdTkxMGRcdTkxMGZc''@;'; + put 'put ''dTkxMTFcdTkxMTZcdTkxMTRcdTkxMGJcdTkxMGVcdTkxNmVcdTkxNmZcdTkyNDhcdTkyNTJcdTkyMzBcdTkyM2FcdTkyNjZcdTkyMzNcdTkyNjVcdTkyNWVcdTkyODNcdTkyMmVcdTkyNGFcdTkyNDZcdTkyNmRcdTkyNmNcdTkyNGZcdTkyNjBcdTkyNjdcdTkyNmZcdTkyMzZcdTkyNjFcdTky''@;'; + put 'put ''NzBcdTkyMzFcdTkyNTRcdTkyNjNcdTkyNTBcdTkyNzJcdTkyNGVcdTkyNTNcdTkyNGNcdTkyNTZcdTkyMzJcdTk1OWZcdTk1OWNcdTk1OWVcdTk1OWJcdTk2OTJcdTk2OTNcdTk2OTFcdTk2OTdcdTk2Y2VcdTk2ZmFcdTk2ZmRcdTk2ZjhcdTk2ZjVcdTk3NzNcdTk3NzdcdTk3NzhcdTk3NzJc''@;'; + put 'put ''dTk4MGZcdTk4MGRcdTk4MGVcdTk4YWNcdTk4ZjZcdTk4ZjlcdTk5YWZcdTk5YjJcdTk5YjBcdTk5YjVcdTlhYWRcdTlhYWJcdTliNWJcdTljZWFcdTljZWRcdTljZTdcdTllODBcdTllZmRcdTUwZTZcdTUwZDRcdTUwZDdcdTUwZThcdTUwZjNcdTUwZGJcdTUwZWFcdTUwZGRcdTUwZTRcdTUw''@;'; + put 'put ''ZDNcdTUwZWNcdTUwZjBcdTUwZWZcdTUwZTNcdTUwZTAiXSxbImUxNDAiLCJcdTUxZDhcdTUyODBcdTUyODFcdTUyZTlcdTUyZWJcdTUzMzBcdTUzYWNcdTU2MjdcdTU2MTVcdTU2MGNcdTU2MTJcdTU1ZmNcdTU2MGZcdTU2MWNcdTU2MDFcdTU2MTNcdTU2MDJcdTU1ZmFcdTU2MWRcdTU2MDRc''@;'; + put 'put ''dTU1ZmZcdTU1ZjlcdTU4ODlcdTU4N2NcdTU4OTBcdTU4OThcdTU4ODZcdTU4ODFcdTU4N2ZcdTU4NzRcdTU4OGJcdTU4N2FcdTU4ODdcdTU4OTFcdTU4OGVcdTU4NzZcdTU4ODJcdTU4ODhcdTU4N2JcdTU4OTRcdTU4OGZcdTU4ZmVcdTU5NmJcdTVhZGNcdTVhZWVcdTVhZTVcdTVhZDVcdTVh''@;'; + put 'put ''ZWFcdTVhZGFcdTVhZWRcdTVhZWJcdTVhZjNcdTVhZTJcdTVhZTBcdTVhZGJcdTVhZWNcdTVhZGVcdTVhZGRcdTVhZDlcdTVhZThcdTVhZGZcdTViNzdcdTViZTAiXSxbImUxYTEiLCJcdTViZTNcdTVjNjNcdTVkODJcdTVkODBcdTVkN2RcdTVkODZcdTVkN2FcdTVkODFcdTVkNzdcdTVkOGFc''@;'; + put 'put ''dTVkODlcdTVkODhcdTVkN2VcdTVkN2NcdTVkOGRcdTVkNzlcdTVkN2ZcdTVlNThcdTVlNTlcdTVlNTNcdTVlZDhcdTVlZDFcdTVlZDdcdTVlY2VcdTVlZGNcdTVlZDVcdTVlZDlcdTVlZDJcdTVlZDRcdTVmNDRcdTVmNDNcdTVmNmZcdTVmYjZcdTYxMmNcdTYxMjhcdTYxNDFcdTYxNWVcdTYx''@;'; + put 'put ''NzFcdTYxNzNcdTYxNTJcdTYxNTNcdTYxNzJcdTYxNmNcdTYxODBcdTYxNzRcdTYxNTRcdTYxN2FcdTYxNWJcdTYxNjVcdTYxM2JcdTYxNmFcdTYxNjFcdTYxNTZcdTYyMjlcdTYyMjdcdTYyMmJcdTY0MmJcdTY0NGRcdTY0NWJcdTY0NWRcdTY0NzRcdTY0NzZcdTY0NzJcdTY0NzNcdTY0N2Rc''@;'; + put 'put ''dTY0NzVcdTY0NjZcdTY0YTZcdTY0NGVcdTY0ODJcdTY0NWVcdTY0NWNcdTY0NGJcdTY0NTNcdTY0NjBcdTY0NTBcdTY0N2ZcdTY0M2ZcdTY0NmNcdTY0NmJcdTY0NTlcdTY0NjVcdTY0NzdcdTY1NzNcdTY1YTBcdTY2YTFcdTY2YTBcdTY2OWZcdTY3MDVcdTY3MDRcdTY3MjJcdTY5YjFcdTY5''@;'; + put 'put ''YjZcdTY5YzkiXSxbImUyNDAiLCJcdTY5YTBcdTY5Y2VcdTY5OTZcdTY5YjBcdTY5YWNcdTY5YmNcdTY5OTFcdTY5OTlcdTY5OGVcdTY5YTdcdTY5OGRcdTY5YTlcdTY5YmVcdTY5YWZcdTY5YmZcdTY5YzRcdTY5YmRcdTY5YTRcdTY5ZDRcdTY5YjlcdTY5Y2FcdTY5OWFcdTY5Y2ZcdTY5YjNc''@;'; + put 'put ''dTY5OTNcdTY5YWFcdTY5YTFcdTY5OWVcdTY5ZDlcdTY5OTdcdTY5OTBcdTY5YzJcdTY5YjVcdTY5YTVcdTY5YzZcdTZiNGFcdTZiNGRcdTZiNGJcdTZiOWVcdTZiOWZcdTZiYTBcdTZiYzNcdTZiYzRcdTZiZmVcdTZlY2VcdTZlZjVcdTZlZjFcdTZmMDNcdTZmMjVcdTZlZjhcdTZmMzdcdTZl''@;'; + put 'put ''ZmJcdTZmMmVcdTZmMDlcdTZmNGVcdTZmMTlcdTZmMWFcdTZmMjdcdTZmMThcdTZmM2JcdTZmMTJcdTZlZWRcdTZmMGEiXSxbImUyYTEiLCJcdTZmMzZcdTZmNzNcdTZlZjlcdTZlZWVcdTZmMmRcdTZmNDBcdTZmMzBcdTZmM2NcdTZmMzVcdTZlZWJcdTZmMDdcdTZmMGVcdTZmNDNcdTZmMDVc''@;'; + put 'put ''dTZlZmRcdTZlZjZcdTZmMzlcdTZmMWNcdTZlZmNcdTZmM2FcdTZmMWZcdTZmMGRcdTZmMWVcdTZmMDhcdTZmMjFcdTcxODdcdTcxOTBcdTcxODlcdTcxODBcdTcxODVcdTcxODJcdTcxOGZcdTcxN2JcdTcxODZcdTcxODFcdTcxOTdcdTcyNDRcdTcyNTNcdTcyOTdcdTcyOTVcdTcyOTNcdTcz''@;'; + put 'put ''NDNcdTczNGRcdTczNTFcdTczNGNcdTc0NjJcdTc0NzNcdTc0NzFcdTc0NzVcdTc0NzJcdTc0NjdcdTc0NmVcdTc1MDBcdTc1MDJcdTc1MDNcdTc1N2RcdTc1OTBcdTc2MTZcdTc2MDhcdTc2MGNcdTc2MTVcdTc2MTFcdTc2MGFcdTc2MTRcdTc2YjhcdTc3ODFcdTc3N2NcdTc3ODVcdTc3ODJc''@;'; + put 'put ''dTc3NmVcdTc3ODBcdTc3NmZcdTc3N2VcdTc3ODNcdTc4YjJcdTc4YWFcdTc4YjRcdTc4YWRcdTc4YThcdTc4N2VcdTc4YWJcdTc4OWVcdTc4YTVcdTc4YTBcdTc4YWNcdTc4YTJcdTc4YTRcdTc5OThcdTc5OGFcdTc5OGJcdTc5OTZcdTc5OTVcdTc5OTRcdTc5OTMiXSxbImUzNDAiLCJcdTc5''@;'; + put 'put ''OTdcdTc5ODhcdTc5OTJcdTc5OTBcdTdhMmJcdTdhNGFcdTdhMzBcdTdhMmZcdTdhMjhcdTdhMjZcdTdhYThcdTdhYWJcdTdhYWNcdTdhZWVcdTdiODhcdTdiOWNcdTdiOGFcdTdiOTFcdTdiOTBcdTdiOTZcdTdiOGRcdTdiOGNcdTdiOWJcdTdiOGVcdTdiODVcdTdiOThcdTUyODRcdTdiOTlc''@;'; + put 'put ''dTdiYTRcdTdiODJcdTdjYmJcdTdjYmZcdTdjYmNcdTdjYmFcdTdkYTdcdTdkYjdcdTdkYzJcdTdkYTNcdTdkYWFcdTdkYzFcdTdkYzBcdTdkYzVcdTdkOWRcdTdkY2VcdTdkYzRcdTdkYzZcdTdkY2JcdTdkY2NcdTdkYWZcdTdkYjlcdTdkOTZcdTdkYmNcdTdkOWZcdTdkYTZcdTdkYWVcdTdk''@;'; + put 'put ''YTlcdTdkYTFcdTdkYzlcdTdmNzNcdTdmZTJcdTdmZTNcdTdmZTVcdTdmZGUiXSxbImUzYTEiLCJcdTgwMjRcdTgwNWRcdTgwNWNcdTgxODlcdTgxODZcdTgxODNcdTgxODdcdTgxOGRcdTgxOGNcdTgxOGJcdTgyMTVcdTg0OTdcdTg0YTRcdTg0YTFcdTg0OWZcdTg0YmFcdTg0Y2VcdTg0YzJc''@;'; + put 'put ''dTg0YWNcdTg0YWVcdTg0YWJcdTg0YjlcdTg0YjRcdTg0YzFcdTg0Y2RcdTg0YWFcdTg0OWFcdTg0YjFcdTg0ZDBcdTg0OWRcdTg0YTdcdTg0YmJcdTg0YTJcdTg0OTRcdTg0YzdcdTg0Y2NcdTg0OWJcdTg0YTlcdTg0YWZcdTg0YThcdTg0ZDZcdTg0OThcdTg0YjZcdTg0Y2ZcdTg0YTBcdTg0''@;'; + put 'put ''ZDdcdTg0ZDRcdTg0ZDJcdTg0ZGJcdTg0YjBcdTg0OTFcdTg2NjFcdTg3MzNcdTg3MjNcdTg3MjhcdTg3NmJcdTg3NDBcdTg3MmVcdTg3MWVcdTg3MjFcdTg3MTlcdTg3MWJcdTg3NDNcdTg3MmNcdTg3NDFcdTg3M2VcdTg3NDZcdTg3MjBcdTg3MzJcdTg3MmFcdTg3MmRcdTg3M2NcdTg3MTJc''@;'; + put 'put ''dTg3M2FcdTg3MzFcdTg3MzVcdTg3NDJcdTg3MjZcdTg3MjdcdTg3MzhcdTg3MjRcdTg3MWFcdTg3MzBcdTg3MTFcdTg4ZjdcdTg4ZTdcdTg4ZjFcdTg4ZjJcdTg4ZmFcdTg4ZmVcdTg4ZWVcdTg4ZmNcdTg4ZjZcdTg4ZmIiXSxbImU0NDAiLCJcdTg4ZjBcdTg4ZWNcdTg4ZWJcdTg5OWRcdTg5''@;'; + put 'put ''YTFcdTg5OWZcdTg5OWVcdTg5ZTlcdTg5ZWJcdTg5ZThcdThhYWJcdThhOTlcdThhOGJcdThhOTJcdThhOGZcdThhOTZcdThjM2RcdThjNjhcdThjNjlcdThjZDVcdThjY2ZcdThjZDdcdThkOTZcdThlMDlcdThlMDJcdThkZmZcdThlMGRcdThkZmRcdThlMGFcdThlMDNcdThlMDdcdThlMDZc''@;'; + put 'put ''dThlMDVcdThkZmVcdThlMDBcdThlMDRcdThmMTBcdThmMTFcdThmMGVcdThmMGRcdTkxMjNcdTkxMWNcdTkxMjBcdTkxMjJcdTkxMWZcdTkxMWRcdTkxMWFcdTkxMjRcdTkxMjFcdTkxMWJcdTkxN2FcdTkxNzJcdTkxNzlcdTkxNzNcdTkyYTVcdTkyYTRcdTkyNzZcdTkyOWJcdTkyN2FcdTky''@;'; + put 'put ''YTBcdTkyOTRcdTkyYWFcdTkyOGQiXSxbImU0YTEiLCJcdTkyYTZcdTkyOWFcdTkyYWJcdTkyNzlcdTkyOTdcdTkyN2ZcdTkyYTNcdTkyZWVcdTkyOGVcdTkyODJcdTkyOTVcdTkyYTJcdTkyN2RcdTkyODhcdTkyYTFcdTkyOGFcdTkyODZcdTkyOGNcdTkyOTlcdTkyYTdcdTkyN2VcdTkyODdc''@;'; + put 'put ''dTkyYTlcdTkyOWRcdTkyOGJcdTkyMmRcdTk2OWVcdTk2YTFcdTk2ZmZcdTk3NThcdTk3N2RcdTk3N2FcdTk3N2VcdTk3ODNcdTk3ODBcdTk3ODJcdTk3N2JcdTk3ODRcdTk3ODFcdTk3N2ZcdTk3Y2VcdTk3Y2RcdTk4MTZcdTk4YWRcdTk4YWVcdTk5MDJcdTk5MDBcdTk5MDdcdTk5OWRcdTk5''@;'; + put 'put ''OWNcdTk5YzNcdTk5YjlcdTk5YmJcdTk5YmFcdTk5YzJcdTk5YmRcdTk5YzdcdTlhYjFcdTlhZTNcdTlhZTdcdTliM2VcdTliM2ZcdTliNjBcdTliNjFcdTliNWZcdTljZjFcdTljZjJcdTljZjVcdTllYTdcdTUwZmZcdTUxMDNcdTUxMzBcdTUwZjhcdTUxMDZcdTUxMDdcdTUwZjZcdTUwZmVc''@;'; + put 'put ''dTUxMGJcdTUxMGNcdTUwZmRcdTUxMGFcdTUyOGJcdTUyOGNcdTUyZjFcdTUyZWZcdTU2NDhcdTU2NDJcdTU2NGNcdTU2MzVcdTU2NDFcdTU2NGFcdTU2NDlcdTU2NDZcdTU2NTgiXSxbImU1NDAiLCJcdTU2NWFcdTU2NDBcdTU2MzNcdTU2M2RcdTU2MmNcdTU2M2VcdTU2MzhcdTU2MmFcdTU2''@;'; + put 'put ''M2FcdTU3MWFcdTU4YWJcdTU4OWRcdTU4YjFcdTU4YTBcdTU4YTNcdTU4YWZcdTU4YWNcdTU4YTVcdTU4YTFcdTU4ZmZcdTVhZmZcdTVhZjRcdTVhZmRcdTVhZjdcdTVhZjZcdTViMDNcdTVhZjhcdTViMDJcdTVhZjlcdTViMDFcdTViMDdcdTViMDVcdTViMGZcdTVjNjdcdTVkOTlcdTVkOTdc''@;'; + put 'put ''dTVkOWZcdTVkOTJcdTVkYTJcdTVkOTNcdTVkOTVcdTVkYTBcdTVkOWNcdTVkYTFcdTVkOWFcdTVkOWVcdTVlNjlcdTVlNWRcdTVlNjBcdTVlNWNcdTdkZjNcdTVlZGJcdTVlZGVcdTVlZTFcdTVmNDlcdTVmYjJcdTYxOGJcdTYxODNcdTYxNzlcdTYxYjFcdTYxYjBcdTYxYTJcdTYxODkiXSxb''@;'; + put 'put ''ImU1YTEiLCJcdTYxOWJcdTYxOTNcdTYxYWZcdTYxYWRcdTYxOWZcdTYxOTJcdTYxYWFcdTYxYTFcdTYxOGRcdTYxNjZcdTYxYjNcdTYyMmRcdTY0NmVcdTY0NzBcdTY0OTZcdTY0YTBcdTY0ODVcdTY0OTdcdTY0OWNcdTY0OGZcdTY0OGJcdTY0OGFcdTY0OGNcdTY0YTNcdTY0OWZcdTY0Njhc''@;'; + put 'put ''dTY0YjFcdTY0OThcdTY1NzZcdTY1N2FcdTY1NzlcdTY1N2JcdTY1YjJcdTY1YjNcdTY2YjVcdTY2YjBcdTY2YTlcdTY2YjJcdTY2YjdcdTY2YWFcdTY2YWZcdTZhMDBcdTZhMDZcdTZhMTdcdTY5ZTVcdTY5ZjhcdTZhMTVcdTY5ZjFcdTY5ZTRcdTZhMjBcdTY5ZmZcdTY5ZWNcdTY5ZTJcdTZh''@;'; + put 'put ''MWJcdTZhMWRcdTY5ZmVcdTZhMjdcdTY5ZjJcdTY5ZWVcdTZhMTRcdTY5ZjdcdTY5ZTdcdTZhNDBcdTZhMDhcdTY5ZTZcdTY5ZmJcdTZhMGRcdTY5ZmNcdTY5ZWJcdTZhMDlcdTZhMDRcdTZhMThcdTZhMjVcdTZhMGZcdTY5ZjZcdTZhMjZcdTZhMDdcdTY5ZjRcdTZhMTZcdTZiNTFcdTZiYTVc''@;'; + put 'put ''dTZiYTNcdTZiYTJcdTZiYTZcdTZjMDFcdTZjMDBcdTZiZmZcdTZjMDJcdTZmNDFcdTZmMjZcdTZmN2VcdTZmODdcdTZmYzZcdTZmOTIiXSxbImU2NDAiLCJcdTZmOGRcdTZmODlcdTZmOGNcdTZmNjJcdTZmNGZcdTZmODVcdTZmNWFcdTZmOTZcdTZmNzZcdTZmNmNcdTZmODJcdTZmNTVcdTZm''@;'; + put 'put ''NzJcdTZmNTJcdTZmNTBcdTZmNTdcdTZmOTRcdTZmOTNcdTZmNWRcdTZmMDBcdTZmNjFcdTZmNmJcdTZmN2RcdTZmNjdcdTZmOTBcdTZmNTNcdTZmOGJcdTZmNjlcdTZmN2ZcdTZmOTVcdTZmNjNcdTZmNzdcdTZmNmFcdTZmN2JcdTcxYjJcdTcxYWZcdTcxOWJcdTcxYjBcdTcxYTBcdTcxOWFc''@;'; + put 'put ''dTcxYTlcdTcxYjVcdTcxOWRcdTcxYTVcdTcxOWVcdTcxYTRcdTcxYTFcdTcxYWFcdTcxOWNcdTcxYTdcdTcxYjNcdTcyOThcdTcyOWFcdTczNThcdTczNTJcdTczNWVcdTczNWZcdTczNjBcdTczNWRcdTczNWJcdTczNjFcdTczNWFcdTczNTkiXSxbImU2YTEiLCJcdTczNjJcdTc0ODdcdTc0''@;'; + put 'put ''ODlcdTc0OGFcdTc0ODZcdTc0ODFcdTc0N2RcdTc0ODVcdTc0ODhcdTc0N2NcdTc0NzlcdTc1MDhcdTc1MDdcdTc1N2VcdTc2MjVcdTc2MWVcdTc2MTlcdTc2MWRcdTc2MWNcdTc2MjNcdTc2MWFcdTc2MjhcdTc2MWJcdTc2OWNcdTc2OWRcdTc2OWVcdTc2OWJcdTc3OGRcdTc3OGZcdTc3ODlc''@;'; + put 'put ''dTc3ODhcdTc4Y2RcdTc4YmJcdTc4Y2ZcdTc4Y2NcdTc4ZDFcdTc4Y2VcdTc4ZDRcdTc4YzhcdTc4YzNcdTc4YzRcdTc4YzlcdTc5OWFcdTc5YTFcdTc5YTBcdTc5OWNcdTc5YTJcdTc5OWJcdTZiNzZcdTdhMzlcdTdhYjJcdTdhYjRcdTdhYjNcdTdiYjdcdTdiY2JcdTdiYmVcdTdiYWNcdTdi''@;'; + put 'put ''Y2VcdTdiYWZcdTdiYjlcdTdiY2FcdTdiYjVcdTdjYzVcdTdjYzhcdTdjY2NcdTdjY2JcdTdkZjdcdTdkZGJcdTdkZWFcdTdkZTdcdTdkZDdcdTdkZTFcdTdlMDNcdTdkZmFcdTdkZTZcdTdkZjZcdTdkZjFcdTdkZjBcdTdkZWVcdTdkZGZcdTdmNzZcdTdmYWNcdTdmYjBcdTdmYWRcdTdmZWRc''@;'; + put 'put ''dTdmZWJcdTdmZWFcdTdmZWNcdTdmZTZcdTdmZThcdTgwNjRcdTgwNjdcdTgxYTNcdTgxOWYiXSxbImU3NDAiLCJcdTgxOWVcdTgxOTVcdTgxYTJcdTgxOTlcdTgxOTdcdTgyMTZcdTgyNGZcdTgyNTNcdTgyNTJcdTgyNTBcdTgyNGVcdTgyNTFcdTg1MjRcdTg1M2JcdTg1MGZcdTg1MDBcdTg1''@;'; + put 'put ''MjlcdTg1MGVcdTg1MDlcdTg1MGRcdTg1MWZcdTg1MGFcdTg1MjdcdTg1MWNcdTg0ZmJcdTg1MmJcdTg0ZmFcdTg1MDhcdTg1MGNcdTg0ZjRcdTg1MmFcdTg0ZjJcdTg1MTVcdTg0ZjdcdTg0ZWJcdTg0ZjNcdTg0ZmNcdTg1MTJcdTg0ZWFcdTg0ZTlcdTg1MTZcdTg0ZmVcdTg1MjhcdTg1MWRc''@;'; + put 'put ''dTg1MmVcdTg1MDJcdTg0ZmRcdTg1MWVcdTg0ZjZcdTg1MzFcdTg1MjZcdTg0ZTdcdTg0ZThcdTg0ZjBcdTg0ZWZcdTg0ZjlcdTg1MThcdTg1MjBcdTg1MzBcdTg1MGJcdTg1MTlcdTg1MmZcdTg2NjIiXSxbImU3YTEiLCJcdTg3NTZcdTg3NjNcdTg3NjRcdTg3NzdcdTg3ZTFcdTg3NzNcdTg3''@;'; + put 'put ''NThcdTg3NTRcdTg3NWJcdTg3NTJcdTg3NjFcdTg3NWFcdTg3NTFcdTg3NWVcdTg3NmRcdTg3NmFcdTg3NTBcdTg3NGVcdTg3NWZcdTg3NWRcdTg3NmZcdTg3NmNcdTg3N2FcdTg3NmVcdTg3NWNcdTg3NjVcdTg3NGZcdTg3N2JcdTg3NzVcdTg3NjJcdTg3NjdcdTg3NjlcdTg4NWFcdTg5MDVc''@;'; + put 'put ''dTg5MGNcdTg5MTRcdTg5MGJcdTg5MTdcdTg5MThcdTg5MTlcdTg5MDZcdTg5MTZcdTg5MTFcdTg5MGVcdTg5MDlcdTg5YTJcdTg5YTRcdTg5YTNcdTg5ZWRcdTg5ZjBcdTg5ZWNcdThhY2ZcdThhYzZcdThhYjhcdThhZDNcdThhZDFcdThhZDRcdThhZDVcdThhYmJcdThhZDdcdThhYmVcdThh''@;'; + put 'put ''YzBcdThhYzVcdThhZDhcdThhYzNcdThhYmFcdThhYmRcdThhZDlcdThjM2VcdThjNGRcdThjOGZcdThjZTVcdThjZGZcdThjZDlcdThjZThcdThjZGFcdThjZGRcdThjZTdcdThkYTBcdThkOWNcdThkYTFcdThkOWJcdThlMjBcdThlMjNcdThlMjVcdThlMjRcdThlMmVcdThlMTVcdThlMWJc''@;'; + put 'put ''dThlMTZcdThlMTFcdThlMTlcdThlMjZcdThlMjciXSxbImU4NDAiLCJcdThlMTRcdThlMTJcdThlMThcdThlMTNcdThlMWNcdThlMTdcdThlMWFcdThmMmNcdThmMjRcdThmMThcdThmMWFcdThmMjBcdThmMjNcdThmMTZcdThmMTdcdTkwNzNcdTkwNzBcdTkwNmZcdTkwNjdcdTkwNmJcdTkx''@;'; + put 'put ''MmZcdTkxMmJcdTkxMjlcdTkxMmFcdTkxMzJcdTkxMjZcdTkxMmVcdTkxODVcdTkxODZcdTkxOGFcdTkxODFcdTkxODJcdTkxODRcdTkxODBcdTkyZDBcdTkyYzNcdTkyYzRcdTkyYzBcdTkyZDlcdTkyYjZcdTkyY2ZcdTkyZjFcdTkyZGZcdTkyZDhcdTkyZTlcdTkyZDdcdTkyZGRcdTkyY2Nc''@;'; + put 'put ''dTkyZWZcdTkyYzJcdTkyZThcdTkyY2FcdTkyYzhcdTkyY2VcdTkyZTZcdTkyY2RcdTkyZDVcdTkyYzlcdTkyZTBcdTkyZGVcdTkyZTdcdTkyZDFcdTkyZDMiXSxbImU4YTEiLCJcdTkyYjVcdTkyZTFcdTkyYzZcdTkyYjRcdTk1N2NcdTk1YWNcdTk1YWJcdTk1YWVcdTk1YjBcdTk2YTRcdTk2''@;'; + put 'put ''YTJcdTk2ZDNcdTk3MDVcdTk3MDhcdTk3MDJcdTk3NWFcdTk3OGFcdTk3OGVcdTk3ODhcdTk3ZDBcdTk3Y2ZcdTk4MWVcdTk4MWRcdTk4MjZcdTk4MjlcdTk4MjhcdTk4MjBcdTk4MWJcdTk4MjdcdTk4YjJcdTk5MDhcdTk4ZmFcdTk5MTFcdTk5MTRcdTk5MTZcdTk5MTdcdTk5MTVcdTk5ZGNc''@;'; + put 'put ''dTk5Y2RcdTk5Y2ZcdTk5ZDNcdTk5ZDRcdTk5Y2VcdTk5YzlcdTk5ZDZcdTk5ZDhcdTk5Y2JcdTk5ZDdcdTk5Y2NcdTlhYjNcdTlhZWNcdTlhZWJcdTlhZjNcdTlhZjJcdTlhZjFcdTliNDZcdTliNDNcdTliNjdcdTliNzRcdTliNzFcdTliNjZcdTliNzZcdTliNzVcdTliNzBcdTliNjhcdTli''@;'; + put 'put ''NjRcdTliNmNcdTljZmNcdTljZmFcdTljZmRcdTljZmZcdTljZjdcdTlkMDdcdTlkMDBcdTljZjlcdTljZmJcdTlkMDhcdTlkMDVcdTlkMDRcdTllODNcdTllZDNcdTlmMGZcdTlmMTBcdTUxMWNcdTUxMTNcdTUxMTdcdTUxMWFcdTUxMTFcdTUxZGVcdTUzMzRcdTUzZTFcdTU2NzBcdTU2NjBc''@;'; + put 'put ''dTU2NmUiXSxbImU5NDAiLCJcdTU2NzNcdTU2NjZcdTU2NjNcdTU2NmRcdTU2NzJcdTU2NWVcdTU2NzdcdTU3MWNcdTU3MWJcdTU4YzhcdTU4YmRcdTU4YzlcdTU4YmZcdTU4YmFcdTU4YzJcdTU4YmNcdTU4YzZcdTViMTdcdTViMTlcdTViMWJcdTViMjFcdTViMTRcdTViMTNcdTViMTBcdTVi''@;'; + put 'put ''MTZcdTViMjhcdTViMWFcdTViMjBcdTViMWVcdTViZWZcdTVkYWNcdTVkYjFcdTVkYTlcdTVkYTdcdTVkYjVcdTVkYjBcdTVkYWVcdTVkYWFcdTVkYThcdTVkYjJcdTVkYWRcdTVkYWZcdTVkYjRcdTVlNjdcdTVlNjhcdTVlNjZcdTVlNmZcdTVlZTlcdTVlZTdcdTVlZTZcdTVlZThcdTVlZTVc''@;'; + put 'put ''dTVmNGJcdTVmYmNcdTYxOWRcdTYxYThcdTYxOTZcdTYxYzVcdTYxYjRcdTYxYzZcdTYxYzFcdTYxY2NcdTYxYmEiXSxbImU5YTEiLCJcdTYxYmZcdTYxYjhcdTYxOGNcdTY0ZDdcdTY0ZDZcdTY0ZDBcdTY0Y2ZcdTY0YzlcdTY0YmRcdTY0ODlcdTY0YzNcdTY0ZGJcdTY0ZjNcdTY0ZDlcdTY1''@;'; + put 'put ''MzNcdTY1N2ZcdTY1N2NcdTY1YTJcdTY2YzhcdTY2YmVcdTY2YzBcdTY2Y2FcdTY2Y2JcdTY2Y2ZcdTY2YmRcdTY2YmJcdTY2YmFcdTY2Y2NcdTY3MjNcdTZhMzRcdTZhNjZcdTZhNDlcdTZhNjdcdTZhMzJcdTZhNjhcdTZhM2VcdTZhNWRcdTZhNmRcdTZhNzZcdTZhNWJcdTZhNTFcdTZhMjhc''@;'; + put 'put ''dTZhNWFcdTZhM2JcdTZhM2ZcdTZhNDFcdTZhNmFcdTZhNjRcdTZhNTBcdTZhNGZcdTZhNTRcdTZhNmZcdTZhNjlcdTZhNjBcdTZhM2NcdTZhNWVcdTZhNTZcdTZhNTVcdTZhNGRcdTZhNGVcdTZhNDZcdTZiNTVcdTZiNTRcdTZiNTZcdTZiYTdcdTZiYWFcdTZiYWJcdTZiYzhcdTZiYzdcdTZj''@;'; + put 'put ''MDRcdTZjMDNcdTZjMDZcdTZmYWRcdTZmY2JcdTZmYTNcdTZmYzdcdTZmYmNcdTZmY2VcdTZmYzhcdTZmNWVcdTZmYzRcdTZmYmRcdTZmOWVcdTZmY2FcdTZmYThcdTcwMDRcdTZmYTVcdTZmYWVcdTZmYmFcdTZmYWNcdTZmYWFcdTZmY2ZcdTZmYmZcdTZmYjgiXSxbImVhNDAiLCJcdTZmYTJc''@;'; + put 'put ''dTZmYzlcdTZmYWJcdTZmY2RcdTZmYWZcdTZmYjJcdTZmYjBcdTcxYzVcdTcxYzJcdTcxYmZcdTcxYjhcdTcxZDZcdTcxYzBcdTcxYzFcdTcxY2JcdTcxZDRcdTcxY2FcdTcxYzdcdTcxY2ZcdTcxYmRcdTcxZDhcdTcxYmNcdTcxYzZcdTcxZGFcdTcxZGJcdTcyOWRcdTcyOWVcdTczNjlcdTcz''@;'; + put 'put ''NjZcdTczNjdcdTczNmNcdTczNjVcdTczNmJcdTczNmFcdTc0N2ZcdTc0OWFcdTc0YTBcdTc0OTRcdTc0OTJcdTc0OTVcdTc0YTFcdTc1MGJcdTc1ODBcdTc2MmZcdTc2MmRcdTc2MzFcdTc2M2RcdTc2MzNcdTc2M2NcdTc2MzVcdTc2MzJcdTc2MzBcdTc2YmJcdTc2ZTZcdTc3OWFcdTc3OWRc''@;'; + put 'put ''dTc3YTFcdTc3OWNcdTc3OWJcdTc3YTJcdTc3YTNcdTc3OTVcdTc3OTkiXSxbImVhYTEiLCJcdTc3OTdcdTc4ZGRcdTc4ZTlcdTc4ZTVcdTc4ZWFcdTc4ZGVcdTc4ZTNcdTc4ZGJcdTc4ZTFcdTc4ZTJcdTc4ZWRcdTc4ZGZcdTc4ZTBcdTc5YTRcdTdhNDRcdTdhNDhcdTdhNDdcdTdhYjZcdTdh''@;'; + put 'put ''YjhcdTdhYjVcdTdhYjFcdTdhYjdcdTdiZGVcdTdiZTNcdTdiZTdcdTdiZGRcdTdiZDVcdTdiZTVcdTdiZGFcdTdiZThcdTdiZjlcdTdiZDRcdTdiZWFcdTdiZTJcdTdiZGNcdTdiZWJcdTdiZDhcdTdiZGZcdTdjZDJcdTdjZDRcdTdjZDdcdTdjZDBcdTdjZDFcdTdlMTJcdTdlMjFcdTdlMTdc''@;'; + put 'put ''dTdlMGNcdTdlMWZcdTdlMjBcdTdlMTNcdTdlMGVcdTdlMWNcdTdlMTVcdTdlMWFcdTdlMjJcdTdlMGJcdTdlMGZcdTdlMTZcdTdlMGRcdTdlMTRcdTdlMjVcdTdlMjRcdTdmNDNcdTdmN2JcdTdmN2NcdTdmN2FcdTdmYjFcdTdmZWZcdTgwMmFcdTgwMjlcdTgwNmNcdTgxYjFcdTgxYTZcdTgx''@;'; + put 'put ''YWVcdTgxYjlcdTgxYjVcdTgxYWJcdTgxYjBcdTgxYWNcdTgxYjRcdTgxYjJcdTgxYjdcdTgxYTdcdTgxZjJcdTgyNTVcdTgyNTZcdTgyNTdcdTg1NTZcdTg1NDVcdTg1NmJcdTg1NGRcdTg1NTNcdTg1NjFcdTg1NTgiXSxbImViNDAiLCJcdTg1NDBcdTg1NDZcdTg1NjRcdTg1NDFcdTg1NjJc''@;'; + put 'put ''dTg1NDRcdTg1NTFcdTg1NDdcdTg1NjNcdTg1M2VcdTg1NWJcdTg1NzFcdTg1NGVcdTg1NmVcdTg1NzVcdTg1NTVcdTg1NjdcdTg1NjBcdTg1OGNcdTg1NjZcdTg1NWRcdTg1NTRcdTg1NjVcdTg1NmNcdTg2NjNcdTg2NjVcdTg2NjRcdTg3OWJcdTg3OGZcdTg3OTdcdTg3OTNcdTg3OTJcdTg3''@;'; + put 'put ''ODhcdTg3ODFcdTg3OTZcdTg3OThcdTg3NzlcdTg3ODdcdTg3YTNcdTg3ODVcdTg3OTBcdTg3OTFcdTg3OWRcdTg3ODRcdTg3OTRcdTg3OWNcdTg3OWFcdTg3ODlcdTg5MWVcdTg5MjZcdTg5MzBcdTg5MmRcdTg5MmVcdTg5MjdcdTg5MzFcdTg5MjJcdTg5MjlcdTg5MjNcdTg5MmZcdTg5MmNc''@;'; + put 'put ''dTg5MWZcdTg5ZjFcdThhZTAiXSxbImViYTEiLCJcdThhZTJcdThhZjJcdThhZjRcdThhZjVcdThhZGRcdThiMTRcdThhZTRcdThhZGZcdThhZjBcdThhYzhcdThhZGVcdThhZTFcdThhZThcdThhZmZcdThhZWZcdThhZmJcdThjOTFcdThjOTJcdThjOTBcdThjZjVcdThjZWVcdThjZjFcdThj''@;'; + put 'put ''ZjBcdThjZjNcdThkNmNcdThkNmVcdThkYTVcdThkYTdcdThlMzNcdThlM2VcdThlMzhcdThlNDBcdThlNDVcdThlMzZcdThlM2NcdThlM2RcdThlNDFcdThlMzBcdThlM2ZcdThlYmRcdThmMzZcdThmMmVcdThmMzVcdThmMzJcdThmMzlcdThmMzdcdThmMzRcdTkwNzZcdTkwNzlcdTkwN2Jc''@;'; + put 'put ''dTkwODZcdTkwZmFcdTkxMzNcdTkxMzVcdTkxMzZcdTkxOTNcdTkxOTBcdTkxOTFcdTkxOGRcdTkxOGZcdTkzMjdcdTkzMWVcdTkzMDhcdTkzMWZcdTkzMDZcdTkzMGZcdTkzN2FcdTkzMzhcdTkzM2NcdTkzMWJcdTkzMjNcdTkzMTJcdTkzMDFcdTkzNDZcdTkzMmRcdTkzMGVcdTkzMGRcdTky''@;'; + put 'put ''Y2JcdTkzMWRcdTkyZmFcdTkzMjVcdTkzMTNcdTkyZjlcdTkyZjdcdTkzMzRcdTkzMDJcdTkzMjRcdTkyZmZcdTkzMjlcdTkzMzlcdTkzMzVcdTkzMmFcdTkzMTRcdTkzMGMiXSxbImVjNDAiLCJcdTkzMGJcdTkyZmVcdTkzMDlcdTkzMDBcdTkyZmJcdTkzMTZcdTk1YmNcdTk1Y2RcdTk1YmVc''@;'; + put 'put ''dTk1YjlcdTk1YmFcdTk1YjZcdTk1YmZcdTk1YjVcdTk1YmRcdTk2YTlcdTk2ZDRcdTk3MGJcdTk3MTJcdTk3MTBcdTk3OTlcdTk3OTdcdTk3OTRcdTk3ZjBcdTk3ZjhcdTk4MzVcdTk4MmZcdTk4MzJcdTk5MjRcdTk5MWZcdTk5MjdcdTk5MjlcdTk5OWVcdTk5ZWVcdTk5ZWNcdTk5ZTVcdTk5''@;'; + put 'put ''ZTRcdTk5ZjBcdTk5ZTNcdTk5ZWFcdTk5ZTlcdTk5ZTdcdTlhYjlcdTlhYmZcdTlhYjRcdTlhYmJcdTlhZjZcdTlhZmFcdTlhZjlcdTlhZjdcdTliMzNcdTliODBcdTliODVcdTliODdcdTliN2NcdTliN2VcdTliN2JcdTliODJcdTliOTNcdTliOTJcdTliOTBcdTliN2FcdTliOTUiXSxbImVj''@;'; + put 'put ''YTEiLCJcdTliN2RcdTliODhcdTlkMjVcdTlkMTdcdTlkMjBcdTlkMWVcdTlkMTRcdTlkMjlcdTlkMWRcdTlkMThcdTlkMjJcdTlkMTBcdTlkMTlcdTlkMWZcdTllODhcdTllODZcdTllODdcdTllYWVcdTllYWRcdTllZDVcdTllZDZcdTllZmFcdTlmMTJcdTlmM2RcdTUxMjZcdTUxMjVcdTUx''@;'; + put 'put ''MjJcdTUxMjRcdTUxMjBcdTUxMjlcdTUyZjRcdTU2OTNcdTU2OGNcdTU2OGRcdTU2ODZcdTU2ODRcdTU2ODNcdTU2N2VcdTU2ODJcdTU2N2ZcdTU2ODFcdTU4ZDZcdTU4ZDRcdTU4Y2ZcdTU4ZDJcdTViMmRcdTViMjVcdTViMzJcdTViMjNcdTViMmNcdTViMjdcdTViMjZcdTViMmZcdTViMmVc''@;'; + put 'put ''dTViN2JcdTViZjFcdTViZjJcdTVkYjdcdTVlNmNcdTVlNmFcdTVmYmVcdTVmYmJcdTYxYzNcdTYxYjVcdTYxYmNcdTYxZTdcdTYxZTBcdTYxZTVcdTYxZTRcdTYxZThcdTYxZGVcdTY0ZWZcdTY0ZTlcdTY0ZTNcdTY0ZWJcdTY0ZTRcdTY0ZThcdTY1ODFcdTY1ODBcdTY1YjZcdTY1ZGFcdTY2''@;'; + put 'put ''ZDJcdTZhOGRcdTZhOTZcdTZhODFcdTZhYTVcdTZhODlcdTZhOWZcdTZhOWJcdTZhYTFcdTZhOWVcdTZhODdcdTZhOTNcdTZhOGUiXSxbImVkNDAiLCJcdTZhOTVcdTZhODNcdTZhYThcdTZhYTRcdTZhOTFcdTZhN2ZcdTZhYTZcdTZhOWFcdTZhODVcdTZhOGNcdTZhOTJcdTZiNWJcdTZiYWRc''@;'; + put 'put ''dTZjMDlcdTZmY2NcdTZmYTlcdTZmZjRcdTZmZDRcdTZmZTNcdTZmZGNcdTZmZWRcdTZmZTdcdTZmZTZcdTZmZGVcdTZmZjJcdTZmZGRcdTZmZTJcdTZmZThcdTcxZTFcdTcxZjFcdTcxZThcdTcxZjJcdTcxZTRcdTcxZjBcdTcxZTJcdTczNzNcdTczNmVcdTczNmZcdTc0OTdcdTc0YjJcdTc0''@;'; + put 'put ''YWJcdTc0OTBcdTc0YWFcdTc0YWRcdTc0YjFcdTc0YTVcdTc0YWZcdTc1MTBcdTc1MTFcdTc1MTJcdTc1MGZcdTc1ODRcdTc2NDNcdTc2NDhcdTc2NDlcdTc2NDdcdTc2YTRcdTc2ZTlcdTc3YjVcdTc3YWJcdTc3YjJcdTc3YjdcdTc3YjYiXSxbImVkYTEiLCJcdTc3YjRcdTc3YjFcdTc3YThc''@;'; + put 'put ''dTc3ZjBcdTc4ZjNcdTc4ZmRcdTc5MDJcdTc4ZmJcdTc4ZmNcdTc4ZjJcdTc5MDVcdTc4ZjlcdTc4ZmVcdTc5MDRcdTc5YWJcdTc5YThcdTdhNWNcdTdhNWJcdTdhNTZcdTdhNThcdTdhNTRcdTdhNWFcdTdhYmVcdTdhYzBcdTdhYzFcdTdjMDVcdTdjMGZcdTdiZjJcdTdjMDBcdTdiZmZcdTdi''@;'; + put 'put ''ZmJcdTdjMGVcdTdiZjRcdTdjMGJcdTdiZjNcdTdjMDJcdTdjMDlcdTdjMDNcdTdjMDFcdTdiZjhcdTdiZmRcdTdjMDZcdTdiZjBcdTdiZjFcdTdjMTBcdTdjMGFcdTdjZThcdTdlMmRcdTdlM2NcdTdlNDJcdTdlMzNcdTk4NDhcdTdlMzhcdTdlMmFcdTdlNDlcdTdlNDBcdTdlNDdcdTdlMjlc''@;'; + put 'put ''dTdlNGNcdTdlMzBcdTdlM2JcdTdlMzZcdTdlNDRcdTdlM2FcdTdmNDVcdTdmN2ZcdTdmN2VcdTdmN2RcdTdmZjRcdTdmZjJcdTgwMmNcdTgxYmJcdTgxYzRcdTgxY2NcdTgxY2FcdTgxYzVcdTgxYzdcdTgxYmNcdTgxZTlcdTgyNWJcdTgyNWFcdTgyNWNcdTg1ODNcdTg1ODBcdTg1OGZcdTg1''@;'; + put 'put ''YTdcdTg1OTVcdTg1YTBcdTg1OGJcdTg1YTNcdTg1N2JcdTg1YTRcdTg1OWFcdTg1OWUiXSxbImVlNDAiLCJcdTg1NzdcdTg1N2NcdTg1ODlcdTg1YTFcdTg1N2FcdTg1NzhcdTg1NTdcdTg1OGVcdTg1OTZcdTg1ODZcdTg1OGRcdTg1OTlcdTg1OWRcdTg1ODFcdTg1YTJcdTg1ODJcdTg1ODhc''@;'; + put 'put ''dTg1ODVcdTg1NzlcdTg1NzZcdTg1OThcdTg1OTBcdTg1OWZcdTg2NjhcdTg3YmVcdTg3YWFcdTg3YWRcdTg3YzVcdTg3YjBcdTg3YWNcdTg3YjlcdTg3YjVcdTg3YmNcdTg3YWVcdTg3YzlcdTg3YzNcdTg3YzJcdTg3Y2NcdTg3YjdcdTg3YWZcdTg3YzRcdTg3Y2FcdTg3YjRcdTg3YjZcdTg3''@;'; + put 'put ''YmZcdTg3YjhcdTg3YmRcdTg3ZGVcdTg3YjJcdTg5MzVcdTg5MzNcdTg5M2NcdTg5M2VcdTg5NDFcdTg5NTJcdTg5MzdcdTg5NDJcdTg5YWRcdTg5YWZcdTg5YWVcdTg5ZjJcdTg5ZjNcdThiMWUiXSxbImVlYTEiLCJcdThiMThcdThiMTZcdThiMTFcdThiMDVcdThiMGJcdThiMjJcdThiMGZc''@;'; + put 'put ''dThiMTJcdThiMTVcdThiMDdcdThiMGRcdThiMDhcdThiMDZcdThiMWNcdThiMTNcdThiMWFcdThjNGZcdThjNzBcdThjNzJcdThjNzFcdThjNmZcdThjOTVcdThjOTRcdThjZjlcdThkNmZcdThlNGVcdThlNGRcdThlNTNcdThlNTBcdThlNGNcdThlNDdcdThmNDNcdThmNDBcdTkwODVcdTkw''@;'; + put 'put ''N2VcdTkxMzhcdTkxOWFcdTkxYTJcdTkxOWJcdTkxOTlcdTkxOWZcdTkxYTFcdTkxOWRcdTkxYTBcdTkzYTFcdTkzODNcdTkzYWZcdTkzNjRcdTkzNTZcdTkzNDdcdTkzN2NcdTkzNThcdTkzNWNcdTkzNzZcdTkzNDlcdTkzNTBcdTkzNTFcdTkzNjBcdTkzNmRcdTkzOGZcdTkzNGNcdTkzNmFc''@;'; + put 'put ''dTkzNzlcdTkzNTdcdTkzNTVcdTkzNTJcdTkzNGZcdTkzNzFcdTkzNzdcdTkzN2JcdTkzNjFcdTkzNWVcdTkzNjNcdTkzNjdcdTkzODBcdTkzNGVcdTkzNTlcdTk1YzdcdTk1YzBcdTk1YzlcdTk1YzNcdTk1YzVcdTk1YjdcdTk2YWVcdTk2YjBcdTk2YWNcdTk3MjBcdTk3MWZcdTk3MThcdTk3''@;'; + put 'put ''MWRcdTk3MTlcdTk3OWFcdTk3YTFcdTk3OWMiXSxbImVmNDAiLCJcdTk3OWVcdTk3OWRcdTk3ZDVcdTk3ZDRcdTk3ZjFcdTk4NDFcdTk4NDRcdTk4NGFcdTk4NDlcdTk4NDVcdTk4NDNcdTk5MjVcdTk5MmJcdTk5MmNcdTk5MmFcdTk5MzNcdTk5MzJcdTk5MmZcdTk5MmRcdTk5MzFcdTk5MzBc''@;'; + put 'put ''dTk5OThcdTk5YTNcdTk5YTFcdTlhMDJcdTk5ZmFcdTk5ZjRcdTk5ZjdcdTk5ZjlcdTk5ZjhcdTk5ZjZcdTk5ZmJcdTk5ZmRcdTk5ZmVcdTk5ZmNcdTlhMDNcdTlhYmVcdTlhZmVcdTlhZmRcdTliMDFcdTlhZmNcdTliNDhcdTliOWFcdTliYThcdTliOWVcdTliOWJcdTliYTZcdTliYTFcdTli''@;'; + put 'put ''YTVcdTliYTRcdTliODZcdTliYTJcdTliYTBcdTliYWZcdTlkMzNcdTlkNDFcdTlkNjdcdTlkMzZcdTlkMmVcdTlkMmZcdTlkMzFcdTlkMzhcdTlkMzAiXSxbImVmYTEiLCJcdTlkNDVcdTlkNDJcdTlkNDNcdTlkM2VcdTlkMzdcdTlkNDBcdTlkM2RcdTdmZjVcdTlkMmRcdTllOGFcdTllODlc''@;'; + put 'put ''dTllOGRcdTllYjBcdTllYzhcdTllZGFcdTllZmJcdTllZmZcdTlmMjRcdTlmMjNcdTlmMjJcdTlmNTRcdTlmYTBcdTUxMzFcdTUxMmRcdTUxMmVcdTU2OThcdTU2OWNcdTU2OTdcdTU2OWFcdTU2OWRcdTU2OTlcdTU5NzBcdTViM2NcdTVjNjlcdTVjNmFcdTVkYzBcdTVlNmRcdTVlNmVcdTYx''@;'; + put 'put ''ZDhcdTYxZGZcdTYxZWRcdTYxZWVcdTYxZjFcdTYxZWFcdTYxZjBcdTYxZWJcdTYxZDZcdTYxZTlcdTY0ZmZcdTY1MDRcdTY0ZmRcdTY0ZjhcdTY1MDFcdTY1MDNcdTY0ZmNcdTY1OTRcdTY1ZGJcdTY2ZGFcdTY2ZGJcdTY2ZDhcdTZhYzVcdTZhYjlcdTZhYmRcdTZhZTFcdTZhYzZcdTZhYmFc''@;'; + put 'put ''dTZhYjZcdTZhYjdcdTZhYzdcdTZhYjRcdTZhYWRcdTZiNWVcdTZiYzlcdTZjMGJcdTcwMDdcdTcwMGNcdTcwMGRcdTcwMDFcdTcwMDVcdTcwMTRcdTcwMGVcdTZmZmZcdTcwMDBcdTZmZmJcdTcwMjZcdTZmZmNcdTZmZjdcdTcwMGFcdTcyMDFcdTcxZmZcdTcxZjlcdTcyMDNcdTcxZmRcdTcz''@;'; + put 'put ''NzYiXSxbImYwNDAiLCJcdTc0YjhcdTc0YzBcdTc0YjVcdTc0YzFcdTc0YmVcdTc0YjZcdTc0YmJcdTc0YzJcdTc1MTRcdTc1MTNcdTc2NWNcdTc2NjRcdTc2NTlcdTc2NTBcdTc2NTNcdTc2NTdcdTc2NWFcdTc2YTZcdTc2YmRcdTc2ZWNcdTc3YzJcdTc3YmFcdTc4ZmZcdTc5MGNcdTc5MTNc''@;'; + put 'put ''dTc5MTRcdTc5MDlcdTc5MTBcdTc5MTJcdTc5MTFcdTc5YWRcdTc5YWNcdTdhNWZcdTdjMWNcdTdjMjlcdTdjMTlcdTdjMjBcdTdjMWZcdTdjMmRcdTdjMWRcdTdjMjZcdTdjMjhcdTdjMjJcdTdjMjVcdTdjMzBcdTdlNWNcdTdlNTBcdTdlNTZcdTdlNjNcdTdlNThcdTdlNjJcdTdlNWZcdTdl''@;'; + put 'put ''NTFcdTdlNjBcdTdlNTdcdTdlNTNcdTdmYjVcdTdmYjNcdTdmZjdcdTdmZjhcdTgwNzVcdTgxZDFcdTgxZDIiXSxbImYwYTEiLCJcdTgxZDBcdTgyNWZcdTgyNWVcdTg1YjRcdTg1YzZcdTg1YzBcdTg1YzNcdTg1YzJcdTg1YjNcdTg1YjVcdTg1YmRcdTg1YzdcdTg1YzRcdTg1YmZcdTg1Y2Jc''@;'; + put 'put ''dTg1Y2VcdTg1YzhcdTg1YzVcdTg1YjFcdTg1YjZcdTg1ZDJcdTg2MjRcdTg1YjhcdTg1YjdcdTg1YmVcdTg2NjlcdTg3ZTdcdTg3ZTZcdTg3ZTJcdTg3ZGJcdTg3ZWJcdTg3ZWFcdTg3ZTVcdTg3ZGZcdTg3ZjNcdTg3ZTRcdTg3ZDRcdTg3ZGNcdTg3ZDNcdTg3ZWRcdTg3ZDhcdTg3ZTNcdTg3''@;'; + put 'put ''YTRcdTg3ZDdcdTg3ZDlcdTg4MDFcdTg3ZjRcdTg3ZThcdTg3ZGRcdTg5NTNcdTg5NGJcdTg5NGZcdTg5NGNcdTg5NDZcdTg5NTBcdTg5NTFcdTg5NDlcdThiMmFcdThiMjdcdThiMjNcdThiMzNcdThiMzBcdThiMzVcdThiNDdcdThiMmZcdThiM2NcdThiM2VcdThiMzFcdThiMjVcdThiMzdc''@;'; + put 'put ''dThiMjZcdThiMzZcdThiMmVcdThiMjRcdThiM2JcdThiM2RcdThiM2FcdThjNDJcdThjNzVcdThjOTlcdThjOThcdThjOTdcdThjZmVcdThkMDRcdThkMDJcdThkMDBcdThlNWNcdThlNjJcdThlNjBcdThlNTdcdThlNTZcdThlNWVcdThlNjVcdThlNjciXSxbImYxNDAiLCJcdThlNWJcdThl''@;'; + put 'put ''NWFcdThlNjFcdThlNWRcdThlNjlcdThlNTRcdThmNDZcdThmNDdcdThmNDhcdThmNGJcdTkxMjhcdTkxM2FcdTkxM2JcdTkxM2VcdTkxYThcdTkxYTVcdTkxYTdcdTkxYWZcdTkxYWFcdTkzYjVcdTkzOGNcdTkzOTJcdTkzYjdcdTkzOWJcdTkzOWRcdTkzODlcdTkzYTdcdTkzOGVcdTkzYWFc''@;'; + put 'put ''dTkzOWVcdTkzYTZcdTkzOTVcdTkzODhcdTkzOTlcdTkzOWZcdTkzOGRcdTkzYjFcdTkzOTFcdTkzYjJcdTkzYTRcdTkzYThcdTkzYjRcdTkzYTNcdTkzYTVcdTk1ZDJcdTk1ZDNcdTk1ZDFcdTk2YjNcdTk2ZDdcdTk2ZGFcdTVkYzJcdTk2ZGZcdTk2ZDhcdTk2ZGRcdTk3MjNcdTk3MjJcdTk3''@;'; + put 'put ''MjVcdTk3YWNcdTk3YWVcdTk3YThcdTk3YWJcdTk3YTRcdTk3YWEiXSxbImYxYTEiLCJcdTk3YTJcdTk3YTVcdTk3ZDdcdTk3ZDlcdTk3ZDZcdTk3ZDhcdTk3ZmFcdTk4NTBcdTk4NTFcdTk4NTJcdTk4YjhcdTk5NDFcdTk5M2NcdTk5M2FcdTlhMGZcdTlhMGJcdTlhMDlcdTlhMGRcdTlhMDRc''@;'; + put 'put ''dTlhMTFcdTlhMGFcdTlhMDVcdTlhMDdcdTlhMDZcdTlhYzBcdTlhZGNcdTliMDhcdTliMDRcdTliMDVcdTliMjlcdTliMzVcdTliNGFcdTliNGNcdTliNGJcdTliYzdcdTliYzZcdTliYzNcdTliYmZcdTliYzFcdTliYjVcdTliYjhcdTliZDNcdTliYjZcdTliYzRcdTliYjlcdTliYmRcdTlk''@;'; + put 'put ''NWNcdTlkNTNcdTlkNGZcdTlkNGFcdTlkNWJcdTlkNGJcdTlkNTlcdTlkNTZcdTlkNGNcdTlkNTdcdTlkNTJcdTlkNTRcdTlkNWZcdTlkNThcdTlkNWFcdTllOGVcdTllOGNcdTllZGZcdTlmMDFcdTlmMDBcdTlmMTZcdTlmMjVcdTlmMmJcdTlmMmFcdTlmMjlcdTlmMjhcdTlmNGNcdTlmNTVc''@;'; + put 'put ''dTUxMzRcdTUxMzVcdTUyOTZcdTUyZjdcdTUzYjRcdTU2YWJcdTU2YWRcdTU2YTZcdTU2YTdcdTU2YWFcdTU2YWNcdTU4ZGFcdTU4ZGRcdTU4ZGJcdTU5MTJcdTViM2RcdTViM2VcdTViM2ZcdTVkYzNcdTVlNzAiXSxbImYyNDAiLCJcdTVmYmZcdTYxZmJcdTY1MDdcdTY1MTBcdTY1MGRcdTY1''@;'; + put 'put ''MDlcdTY1MGNcdTY1MGVcdTY1ODRcdTY1ZGVcdTY1ZGRcdTY2ZGVcdTZhZTdcdTZhZTBcdTZhY2NcdTZhZDFcdTZhZDlcdTZhY2JcdTZhZGZcdTZhZGNcdTZhZDBcdTZhZWJcdTZhY2ZcdTZhY2RcdTZhZGVcdTZiNjBcdTZiYjBcdTZjMGNcdTcwMTlcdTcwMjdcdTcwMjBcdTcwMTZcdTcwMmJc''@;'; + put 'put ''dTcwMjFcdTcwMjJcdTcwMjNcdTcwMjlcdTcwMTdcdTcwMjRcdTcwMWNcdTcwMmFcdTcyMGNcdTcyMGFcdTcyMDdcdTcyMDJcdTcyMDVcdTcyYTVcdTcyYTZcdTcyYTRcdTcyYTNcdTcyYTFcdTc0Y2JcdTc0YzVcdTc0YjdcdTc0YzNcdTc1MTZcdTc2NjBcdTc3YzlcdTc3Y2FcdTc3YzRcdTc3''@;'; + put 'put ''ZjFcdTc5MWRcdTc5MWIiXSxbImYyYTEiLCJcdTc5MjFcdTc5MWNcdTc5MTdcdTc5MWVcdTc5YjBcdTdhNjdcdTdhNjhcdTdjMzNcdTdjM2NcdTdjMzlcdTdjMmNcdTdjM2JcdTdjZWNcdTdjZWFcdTdlNzZcdTdlNzVcdTdlNzhcdTdlNzBcdTdlNzdcdTdlNmZcdTdlN2FcdTdlNzJcdTdlNzRc''@;'; + put 'put ''dTdlNjhcdTdmNGJcdTdmNGFcdTdmODNcdTdmODZcdTdmYjdcdTdmZmRcdTdmZmVcdTgwNzhcdTgxZDdcdTgxZDVcdTgyNjRcdTgyNjFcdTgyNjNcdTg1ZWJcdTg1ZjFcdTg1ZWRcdTg1ZDlcdTg1ZTFcdTg1ZThcdTg1ZGFcdTg1ZDdcdTg1ZWNcdTg1ZjJcdTg1ZjhcdTg1ZDhcdTg1ZGZcdTg1''@;'; + put 'put ''ZTNcdTg1ZGNcdTg1ZDFcdTg1ZjBcdTg1ZTZcdTg1ZWZcdTg1ZGVcdTg1ZTJcdTg4MDBcdTg3ZmFcdTg4MDNcdTg3ZjZcdTg3ZjdcdTg4MDlcdTg4MGNcdTg4MGJcdTg4MDZcdTg3ZmNcdTg4MDhcdTg3ZmZcdTg4MGFcdTg4MDJcdTg5NjJcdTg5NWFcdTg5NWJcdTg5NTdcdTg5NjFcdTg5NWNc''@;'; + put 'put ''dTg5NThcdTg5NWRcdTg5NTlcdTg5ODhcdTg5YjdcdTg5YjZcdTg5ZjZcdThiNTBcdThiNDhcdThiNGFcdThiNDBcdThiNTNcdThiNTZcdThiNTRcdThiNGJcdThiNTUiXSxbImYzNDAiLCJcdThiNTFcdThiNDJcdThiNTJcdThiNTdcdThjNDNcdThjNzdcdThjNzZcdThjOWFcdThkMDZcdThk''@;'; + put 'put ''MDdcdThkMDlcdThkYWNcdThkYWFcdThkYWRcdThkYWJcdThlNmRcdThlNzhcdThlNzNcdThlNmFcdThlNmZcdThlN2JcdThlYzJcdThmNTJcdThmNTFcdThmNGZcdThmNTBcdThmNTNcdThmYjRcdTkxNDBcdTkxM2ZcdTkxYjBcdTkxYWRcdTkzZGVcdTkzYzdcdTkzY2ZcdTkzYzJcdTkzZGFc''@;'; + put 'put ''dTkzZDBcdTkzZjlcdTkzZWNcdTkzY2NcdTkzZDlcdTkzYTlcdTkzZTZcdTkzY2FcdTkzZDRcdTkzZWVcdTkzZTNcdTkzZDVcdTkzYzRcdTkzY2VcdTkzYzBcdTkzZDJcdTkzZTdcdTk1N2RcdTk1ZGFcdTk1ZGJcdTk2ZTFcdTk3MjlcdTk3MmJcdTk3MmNcdTk3MjhcdTk3MjYiXSxbImYzYTEi''@;'; + put 'put ''LCJcdTk3YjNcdTk3YjdcdTk3YjZcdTk3ZGRcdTk3ZGVcdTk3ZGZcdTk4NWNcdTk4NTlcdTk4NWRcdTk4NTdcdTk4YmZcdTk4YmRcdTk4YmJcdTk4YmVcdTk5NDhcdTk5NDdcdTk5NDNcdTk5YTZcdTk5YTdcdTlhMWFcdTlhMTVcdTlhMjVcdTlhMWRcdTlhMjRcdTlhMWJcdTlhMjJcdTlhMjBc''@;'; + put 'put ''dTlhMjdcdTlhMjNcdTlhMWVcdTlhMWNcdTlhMTRcdTlhYzJcdTliMGJcdTliMGFcdTliMGVcdTliMGNcdTliMzdcdTliZWFcdTliZWJcdTliZTBcdTliZGVcdTliZTRcdTliZTZcdTliZTJcdTliZjBcdTliZDRcdTliZDdcdTliZWNcdTliZGNcdTliZDlcdTliZTVcdTliZDVcdTliZTFcdTli''@;'; + put 'put ''ZGFcdTlkNzdcdTlkODFcdTlkOGFcdTlkODRcdTlkODhcdTlkNzFcdTlkODBcdTlkNzhcdTlkODZcdTlkOGJcdTlkOGNcdTlkN2RcdTlkNmJcdTlkNzRcdTlkNzVcdTlkNzBcdTlkNjlcdTlkODVcdTlkNzNcdTlkN2JcdTlkODJcdTlkNmZcdTlkNzlcdTlkN2ZcdTlkODdcdTlkNjhcdTllOTRc''@;'; + put 'put ''dTllOTFcdTllYzBcdTllZmNcdTlmMmRcdTlmNDBcdTlmNDFcdTlmNGRcdTlmNTZcdTlmNTdcdTlmNThcdTUzMzdcdTU2YjIiXSxbImY0NDAiLCJcdTU2YjVcdTU2YjNcdTU4ZTNcdTViNDVcdTVkYzZcdTVkYzdcdTVlZWVcdTVlZWZcdTVmYzBcdTVmYzFcdTYxZjlcdTY1MTdcdTY1MTZcdTY1''@;'; + put 'put ''MTVcdTY1MTNcdTY1ZGZcdTY2ZThcdTY2ZTNcdTY2ZTRcdTZhZjNcdTZhZjBcdTZhZWFcdTZhZThcdTZhZjlcdTZhZjFcdTZhZWVcdTZhZWZcdTcwM2NcdTcwMzVcdTcwMmZcdTcwMzdcdTcwMzRcdTcwMzFcdTcwNDJcdTcwMzhcdTcwM2ZcdTcwM2FcdTcwMzlcdTcwNDBcdTcwM2JcdTcwMzNc''@;'; + put 'put ''dTcwNDFcdTcyMTNcdTcyMTRcdTcyYThcdTczN2RcdTczN2NcdTc0YmFcdTc2YWJcdTc2YWFcdTc2YmVcdTc2ZWRcdTc3Y2NcdTc3Y2VcdTc3Y2ZcdTc3Y2RcdTc3ZjJcdTc5MjVcdTc5MjNcdTc5MjdcdTc5MjhcdTc5MjRcdTc5MjkiXSxbImY0YTEiLCJcdTc5YjJcdTdhNmVcdTdhNmNcdTdh''@;'; + put 'put ''NmRcdTdhZjdcdTdjNDlcdTdjNDhcdTdjNGFcdTdjNDdcdTdjNDVcdTdjZWVcdTdlN2JcdTdlN2VcdTdlODFcdTdlODBcdTdmYmFcdTdmZmZcdTgwNzlcdTgxZGJcdTgxZDlcdTgyMGJcdTgyNjhcdTgyNjlcdTg2MjJcdTg1ZmZcdTg2MDFcdTg1ZmVcdTg2MWJcdTg2MDBcdTg1ZjZcdTg2MDRc''@;'; + put 'put ''dTg2MDlcdTg2MDVcdTg2MGNcdTg1ZmRcdTg4MTlcdTg4MTBcdTg4MTFcdTg4MTdcdTg4MTNcdTg4MTZcdTg5NjNcdTg5NjZcdTg5YjlcdTg5ZjdcdThiNjBcdThiNmFcdThiNWRcdThiNjhcdThiNjNcdThiNjVcdThiNjdcdThiNmRcdThkYWVcdThlODZcdThlODhcdThlODRcdThmNTlcdThm''@;'; + put 'put ''NTZcdThmNTdcdThmNTVcdThmNThcdThmNWFcdTkwOGRcdTkxNDNcdTkxNDFcdTkxYjdcdTkxYjVcdTkxYjJcdTkxYjNcdTk0MGJcdTk0MTNcdTkzZmJcdTk0MjBcdTk0MGZcdTk0MTRcdTkzZmVcdTk0MTVcdTk0MTBcdTk0MjhcdTk0MTlcdTk0MGRcdTkzZjVcdTk0MDBcdTkzZjdcdTk0MDdc''@;'; + put 'put ''dTk0MGVcdTk0MTZcdTk0MTJcdTkzZmFcdTk0MDlcdTkzZjhcdTk0MGFcdTkzZmYiXSxbImY1NDAiLCJcdTkzZmNcdTk0MGNcdTkzZjZcdTk0MTFcdTk0MDZcdTk1ZGVcdTk1ZTBcdTk1ZGZcdTk3MmVcdTk3MmZcdTk3YjlcdTk3YmJcdTk3ZmRcdTk3ZmVcdTk4NjBcdTk4NjJcdTk4NjNcdTk4''@;'; + put 'put ''NWZcdTk4YzFcdTk4YzJcdTk5NTBcdTk5NGVcdTk5NTlcdTk5NGNcdTk5NGJcdTk5NTNcdTlhMzJcdTlhMzRcdTlhMzFcdTlhMmNcdTlhMmFcdTlhMzZcdTlhMjlcdTlhMmVcdTlhMzhcdTlhMmRcdTlhYzdcdTlhY2FcdTlhYzZcdTliMTBcdTliMTJcdTliMTFcdTljMGJcdTljMDhcdTliZjdc''@;'; + put 'put ''dTljMDVcdTljMTJcdTliZjhcdTljNDBcdTljMDdcdTljMGVcdTljMDZcdTljMTdcdTljMTRcdTljMDlcdTlkOWZcdTlkOTlcdTlkYTRcdTlkOWRcdTlkOTJcdTlkOThcdTlkOTBcdTlkOWIiXSxbImY1YTEiLCJcdTlkYTBcdTlkOTRcdTlkOWNcdTlkYWFcdTlkOTdcdTlkYTFcdTlkOWFcdTlk''@;'; + put 'put ''YTJcdTlkYThcdTlkOWVcdTlkYTNcdTlkYmZcdTlkYTlcdTlkOTZcdTlkYTZcdTlkYTdcdTllOTlcdTllOWJcdTllOWFcdTllZTVcdTllZTRcdTllZTdcdTllZTZcdTlmMzBcdTlmMmVcdTlmNWJcdTlmNjBcdTlmNWVcdTlmNWRcdTlmNTlcdTlmOTFcdTUxM2FcdTUxMzlcdTUyOThcdTUyOTdc''@;'; + put 'put ''dTU2YzNcdTU2YmRcdTU2YmVcdTViNDhcdTViNDdcdTVkY2JcdTVkY2ZcdTVlZjFcdTYxZmRcdTY1MWJcdTZiMDJcdTZhZmNcdTZiMDNcdTZhZjhcdTZiMDBcdTcwNDNcdTcwNDRcdTcwNGFcdTcwNDhcdTcwNDlcdTcwNDVcdTcwNDZcdTcyMWRcdTcyMWFcdTcyMTlcdTczN2VcdTc1MTdcdTc2''@;'; + put 'put ''NmFcdTc3ZDBcdTc5MmRcdTc5MzFcdTc5MmZcdTdjNTRcdTdjNTNcdTdjZjJcdTdlOGFcdTdlODdcdTdlODhcdTdlOGJcdTdlODZcdTdlOGRcdTdmNGRcdTdmYmJcdTgwMzBcdTgxZGRcdTg2MThcdTg2MmFcdTg2MjZcdTg2MWZcdTg2MjNcdTg2MWNcdTg2MTlcdTg2MjdcdTg2MmVcdTg2MjFc''@;'; + put 'put ''dTg2MjBcdTg2MjlcdTg2MWVcdTg2MjUiXSxbImY2NDAiLCJcdTg4MjlcdTg4MWRcdTg4MWJcdTg4MjBcdTg4MjRcdTg4MWNcdTg4MmJcdTg4NGFcdTg5NmRcdTg5NjlcdTg5NmVcdTg5NmJcdTg5ZmFcdThiNzlcdThiNzhcdThiNDVcdThiN2FcdThiN2JcdThkMTBcdThkMTRcdThkYWZcdThl''@;'; + put 'put ''OGVcdThlOGNcdThmNWVcdThmNWJcdThmNWRcdTkxNDZcdTkxNDRcdTkxNDVcdTkxYjlcdTk0M2ZcdTk0M2JcdTk0MzZcdTk0MjlcdTk0M2RcdTk0M2NcdTk0MzBcdTk0MzlcdTk0MmFcdTk0MzdcdTk0MmNcdTk0NDBcdTk0MzFcdTk1ZTVcdTk1ZTRcdTk1ZTNcdTk3MzVcdTk3M2FcdTk3YmZc''@;'; + put 'put ''dTk3ZTFcdTk4NjRcdTk4YzlcdTk4YzZcdTk4YzBcdTk5NThcdTk5NTZcdTlhMzlcdTlhM2RcdTlhNDZcdTlhNDRcdTlhNDJcdTlhNDFcdTlhM2EiXSxbImY2YTEiLCJcdTlhM2ZcdTlhY2RcdTliMTVcdTliMTdcdTliMThcdTliMTZcdTliM2FcdTliNTJcdTljMmJcdTljMWRcdTljMWNcdTlj''@;'; + put 'put ''MmNcdTljMjNcdTljMjhcdTljMjlcdTljMjRcdTljMjFcdTlkYjdcdTlkYjZcdTlkYmNcdTlkYzFcdTlkYzdcdTlkY2FcdTlkY2ZcdTlkYmVcdTlkYzVcdTlkYzNcdTlkYmJcdTlkYjVcdTlkY2VcdTlkYjlcdTlkYmFcdTlkYWNcdTlkYzhcdTlkYjFcdTlkYWRcdTlkY2NcdTlkYjNcdTlkY2Rc''@;'; + put 'put ''dTlkYjJcdTllN2FcdTllOWNcdTllZWJcdTllZWVcdTllZWRcdTlmMWJcdTlmMThcdTlmMWFcdTlmMzFcdTlmNGVcdTlmNjVcdTlmNjRcdTlmOTJcdTRlYjlcdTU2YzZcdTU2YzVcdTU2Y2JcdTU5NzFcdTViNGJcdTViNGNcdTVkZDVcdTVkZDFcdTVlZjJcdTY1MjFcdTY1MjBcdTY1MjZcdTY1''@;'; + put 'put ''MjJcdTZiMGJcdTZiMDhcdTZiMDlcdTZjMGRcdTcwNTVcdTcwNTZcdTcwNTdcdTcwNTJcdTcyMWVcdTcyMWZcdTcyYTlcdTczN2ZcdTc0ZDhcdTc0ZDVcdTc0ZDlcdTc0ZDdcdTc2NmRcdTc2YWRcdTc5MzVcdTc5YjRcdTdhNzBcdTdhNzFcdTdjNTdcdTdjNWNcdTdjNTlcdTdjNWJcdTdjNWEi''@;'; + put 'put ''XSxbImY3NDAiLCJcdTdjZjRcdTdjZjFcdTdlOTFcdTdmNGZcdTdmODdcdTgxZGVcdTgyNmJcdTg2MzRcdTg2MzVcdTg2MzNcdTg2MmNcdTg2MzJcdTg2MzZcdTg4MmNcdTg4MjhcdTg4MjZcdTg4MmFcdTg4MjVcdTg5NzFcdTg5YmZcdTg5YmVcdTg5ZmJcdThiN2VcdThiODRcdThiODJcdThi''@;'; + put 'put ''ODZcdThiODVcdThiN2ZcdThkMTVcdThlOTVcdThlOTRcdThlOWFcdThlOTJcdThlOTBcdThlOTZcdThlOTdcdThmNjBcdThmNjJcdTkxNDdcdTk0NGNcdTk0NTBcdTk0NGFcdTk0NGJcdTk0NGZcdTk0NDdcdTk0NDVcdTk0NDhcdTk0NDlcdTk0NDZcdTk3M2ZcdTk3ZTNcdTk4NmFcdTk4Njlc''@;'; + put 'put ''dTk4Y2JcdTk5NTRcdTk5NWJcdTlhNGVcdTlhNTNcdTlhNTRcdTlhNGNcdTlhNGZcdTlhNDhcdTlhNGEiXSxbImY3YTEiLCJcdTlhNDlcdTlhNTJcdTlhNTBcdTlhZDBcdTliMTlcdTliMmJcdTliM2JcdTliNTZcdTliNTVcdTljNDZcdTljNDhcdTljM2ZcdTljNDRcdTljMzlcdTljMzNcdTlj''@;'; + put 'put ''NDFcdTljM2NcdTljMzdcdTljMzRcdTljMzJcdTljM2RcdTljMzZcdTlkZGJcdTlkZDJcdTlkZGVcdTlkZGFcdTlkY2JcdTlkZDBcdTlkZGNcdTlkZDFcdTlkZGZcdTlkZTlcdTlkZDlcdTlkZDhcdTlkZDZcdTlkZjVcdTlkZDVcdTlkZGRcdTllYjZcdTllZjBcdTlmMzVcdTlmMzNcdTlmMzJc''@;'; + put 'put ''dTlmNDJcdTlmNmJcdTlmOTVcdTlmYTJcdTUxM2RcdTUyOTlcdTU4ZThcdTU4ZTdcdTU5NzJcdTViNGRcdTVkZDhcdTg4MmZcdTVmNGZcdTYyMDFcdTYyMDNcdTYyMDRcdTY1MjlcdTY1MjVcdTY1OTZcdTY2ZWJcdTZiMTFcdTZiMTJcdTZiMGZcdTZiY2FcdTcwNWJcdTcwNWFcdTcyMjJcdTcz''@;'; + put 'put ''ODJcdTczODFcdTczODNcdTc2NzBcdTc3ZDRcdTdjNjdcdTdjNjZcdTdlOTVcdTgyNmNcdTg2M2FcdTg2NDBcdTg2MzlcdTg2M2NcdTg2MzFcdTg2M2JcdTg2M2VcdTg4MzBcdTg4MzJcdTg4MmVcdTg4MzNcdTg5NzZcdTg5NzRcdTg5NzNcdTg5ZmUiXSxbImY4NDAiLCJcdThiOGNcdThiOGVc''@;'; + put 'put ''dThiOGJcdThiODhcdThjNDVcdThkMTlcdThlOThcdThmNjRcdThmNjNcdTkxYmNcdTk0NjJcdTk0NTVcdTk0NWRcdTk0NTdcdTk0NWVcdTk3YzRcdTk3YzVcdTk4MDBcdTlhNTZcdTlhNTlcdTliMWVcdTliMWZcdTliMjBcdTljNTJcdTljNThcdTljNTBcdTljNGFcdTljNGRcdTljNGJcdTlj''@;'; + put 'put ''NTVcdTljNTlcdTljNGNcdTljNGVcdTlkZmJcdTlkZjdcdTlkZWZcdTlkZTNcdTlkZWJcdTlkZjhcdTlkZTRcdTlkZjZcdTlkZTFcdTlkZWVcdTlkZTZcdTlkZjJcdTlkZjBcdTlkZTJcdTlkZWNcdTlkZjRcdTlkZjNcdTlkZThcdTlkZWRcdTllYzJcdTllZDBcdTllZjJcdTllZjNcdTlmMDZc''@;'; + put 'put ''dTlmMWNcdTlmMzhcdTlmMzdcdTlmMzZcdTlmNDNcdTlmNGYiXSxbImY4YTEiLCJcdTlmNzFcdTlmNzBcdTlmNmVcdTlmNmZcdTU2ZDNcdTU2Y2RcdTViNGVcdTVjNmRcdTY1MmRcdTY2ZWRcdTY2ZWVcdTZiMTNcdTcwNWZcdTcwNjFcdTcwNWRcdTcwNjBcdTcyMjNcdTc0ZGJcdTc0ZTVcdTc3''@;'; + put 'put ''ZDVcdTc5MzhcdTc5YjdcdTc5YjZcdTdjNmFcdTdlOTdcdTdmODlcdTgyNmRcdTg2NDNcdTg4MzhcdTg4MzdcdTg4MzVcdTg4NGJcdThiOTRcdThiOTVcdThlOWVcdThlOWZcdThlYTBcdThlOWRcdTkxYmVcdTkxYmRcdTkxYzJcdTk0NmJcdTk0NjhcdTk0NjlcdTk2ZTVcdTk3NDZcdTk3NDNc''@;'; + put 'put ''dTk3NDdcdTk3YzdcdTk3ZTVcdTlhNWVcdTlhZDVcdTliNTlcdTljNjNcdTljNjdcdTljNjZcdTljNjJcdTljNWVcdTljNjBcdTllMDJcdTlkZmVcdTllMDdcdTllMDNcdTllMDZcdTllMDVcdTllMDBcdTllMDFcdTllMDlcdTlkZmZcdTlkZmRcdTllMDRcdTllYTBcdTlmMWVcdTlmNDZcdTlm''@;'; + put 'put ''NzRcdTlmNzVcdTlmNzZcdTU2ZDRcdTY1MmVcdTY1YjhcdTZiMThcdTZiMTlcdTZiMTdcdTZiMWFcdTcwNjJcdTcyMjZcdTcyYWFcdTc3ZDhcdTc3ZDlcdTc5MzlcdTdjNjlcdTdjNmJcdTdjZjZcdTdlOWEiXSxbImY5NDAiLCJcdTdlOThcdTdlOWJcdTdlOTlcdTgxZTBcdTgxZTFcdTg2NDZc''@;'; + put 'put ''dTg2NDdcdTg2NDhcdTg5NzlcdTg5N2FcdTg5N2NcdTg5N2JcdTg5ZmZcdThiOThcdThiOTlcdThlYTVcdThlYTRcdThlYTNcdTk0NmVcdTk0NmRcdTk0NmZcdTk0NzFcdTk0NzNcdTk3NDlcdTk4NzJcdTk5NWZcdTljNjhcdTljNmVcdTljNmRcdTllMGJcdTllMGRcdTllMTBcdTllMGZcdTll''@;'; + put 'put ''MTJcdTllMTFcdTllYTFcdTllZjVcdTlmMDlcdTlmNDdcdTlmNzhcdTlmN2JcdTlmN2FcdTlmNzlcdTU3MWVcdTcwNjZcdTdjNmZcdTg4M2NcdThkYjJcdThlYTZcdTkxYzNcdTk0NzRcdTk0NzhcdTk0NzZcdTk0NzVcdTlhNjBcdTljNzRcdTljNzNcdTljNzFcdTljNzVcdTllMTRcdTllMTNc''@;'; + put 'put ''dTllZjZcdTlmMGEiXSxbImY5YTEiLCJcdTlmYTRcdTcwNjhcdTcwNjVcdTdjZjdcdTg2NmFcdTg4M2VcdTg4M2RcdTg4M2ZcdThiOWVcdThjOWNcdThlYTlcdThlYzlcdTk3NGJcdTk4NzNcdTk4NzRcdTk4Y2NcdTk5NjFcdTk5YWJcdTlhNjRcdTlhNjZcdTlhNjdcdTliMjRcdTllMTVcdTll''@;'; + put 'put ''MTdcdTlmNDhcdTYyMDdcdTZiMWVcdTcyMjdcdTg2NGNcdThlYThcdTk0ODJcdTk0ODBcdTk0ODFcdTlhNjlcdTlhNjhcdTliMmVcdTllMTlcdTcyMjlcdTg2NGJcdThiOWZcdTk0ODNcdTljNzlcdTllYjdcdTc2NzVcdTlhNmJcdTljN2FcdTllMWRcdTcwNjlcdTcwNmFcdTllYTRcdTlmN2Vc''@;'; + put 'put ''dTlmNDlcdTlmOThcdTc4ODFcdTkyYjlcdTg4Y2ZcdTU4YmJcdTYwNTJcdTdjYTdcdTVhZmFcdTI1NTRcdTI1NjZcdTI1NTdcdTI1NjBcdTI1NmNcdTI1NjNcdTI1NWFcdTI1NjlcdTI1NWRcdTI1NTJcdTI1NjRcdTI1NTVcdTI1NWVcdTI1NmFcdTI1NjFcdTI1NThcdTI1NjdcdTI1NWJcdTI1''@;'; + put 'put ''NTNcdTI1NjVcdTI1NTZcdTI1NWZcdTI1NmJcdTI1NjJcdTI1NTlcdTI1NjhcdTI1NWNcdTI1NTFcdTI1NTBcdTI1NmRcdTI1NmVcdTI1NzBcdTI1NmZcdTI1OTMiXV0nKX0sMzE1MzI6WGU9PnsidXNlIHN0cmljdCI7WGUuZXhwb3J0cz1KU09OLnBhcnNlKCdbWyIwIiwiXFx1MDAwMCIsMTI3''@;'; + put 'put ''XSxbIjhlYTEiLCJcdWZmNjEiLDYyXSxbImExYTEiLCJcdTMwMDBcdTMwMDFcdTMwMDJcdWZmMGNcdWZmMGVcdTMwZmJcdWZmMWFcdWZmMWJcdWZmMWZcdWZmMDFcdTMwOWJcdTMwOWNceGI0XHVmZjQwXHhhOFx1ZmYzZVx1ZmZlM1x1ZmYzZlx1MzBmZFx1MzBmZVx1MzA5ZFx1MzA5ZVx1MzAw''@;'; + put 'put ''M1x1NGVkZFx1MzAwNVx1MzAwNlx1MzAwN1x1MzBmY1x1MjAxNVx1MjAxMFx1ZmYwZlx1ZmYzY1x1ZmY1ZVx1MjIyNVx1ZmY1Y1x1MjAyNlx1MjAyNVx1MjAxOFx1MjAxOVx1MjAxY1x1MjAxZFx1ZmYwOFx1ZmYwOVx1MzAxNFx1MzAxNVx1ZmYzYlx1ZmYzZFx1ZmY1Ylx1ZmY1ZFx1MzAwOCIs''@;'; + put 'put ''OSwiXHVmZjBiXHVmZjBkXHhiMVx4ZDdceGY3XHVmZjFkXHUyMjYwXHVmZjFjXHVmZjFlXHUyMjY2XHUyMjY3XHUyMjFlXHUyMjM0XHUyNjQyXHUyNjQwXHhiMFx1MjAzMlx1MjAzM1x1MjEwM1x1ZmZlNVx1ZmYwNFx1ZmZlMFx1ZmZlMVx1ZmYwNVx1ZmYwM1x1ZmYwNlx1ZmYwYVx1ZmYyMFx4''@;'; + put 'put ''YTdcdTI2MDZcdTI2MDVcdTI1Y2JcdTI1Y2ZcdTI1Y2VcdTI1YzciXSxbImEyYTEiLCJcdTI1YzZcdTI1YTFcdTI1YTBcdTI1YjNcdTI1YjJcdTI1YmRcdTI1YmNcdTIwM2JcdTMwMTJcdTIxOTJcdTIxOTBcdTIxOTFcdTIxOTNcdTMwMTMiXSxbImEyYmEiLCJcdTIyMDhcdTIyMGJcdTIyODZc''@;'; + put 'put ''dTIyODdcdTIyODJcdTIyODNcdTIyMmFcdTIyMjkiXSxbImEyY2EiLCJcdTIyMjdcdTIyMjhcdWZmZTJcdTIxZDJcdTIxZDRcdTIyMDBcdTIyMDMiXSxbImEyZGMiLCJcdTIyMjBcdTIyYTVcdTIzMTJcdTIyMDJcdTIyMDdcdTIyNjFcdTIyNTJcdTIyNmFcdTIyNmJcdTIyMWFcdTIyM2RcdTIy''@;'; + put 'put ''MWRcdTIyMzVcdTIyMmJcdTIyMmMiXSxbImEyZjIiLCJcdTIxMmJcdTIwMzBcdTI2NmZcdTI2NmRcdTI2NmFcdTIwMjBcdTIwMjFceGI2Il0sWyJhMmZlIiwiXHUyNWVmIl0sWyJhM2IwIiwiXHVmZjEwIiw5XSxbImEzYzEiLCJcdWZmMjEiLDI1XSxbImEzZTEiLCJcdWZmNDEiLDI1XSxbImE0''@;'; + put 'put ''YTEiLCJcdTMwNDEiLDgyXSxbImE1YTEiLCJcdTMwYTEiLDg1XSxbImE2YTEiLCJcdTAzOTEiLDE2LCJcdTAzYTMiLDZdLFsiYTZjMSIsIlx1MDNiMSIsMTYsIlx1MDNjMyIsNl0sWyJhN2ExIiwiXHUwNDEwIiw1LCJcdTA0MDFcdTA0MTYiLDI1XSxbImE3ZDEiLCJcdTA0MzAiLDUsIlx1MDQ1''@;'; + put 'put ''MVx1MDQzNiIsMjVdLFsiYThhMSIsIlx1MjUwMFx1MjUwMlx1MjUwY1x1MjUxMFx1MjUxOFx1MjUxNFx1MjUxY1x1MjUyY1x1MjUyNFx1MjUzNFx1MjUzY1x1MjUwMVx1MjUwM1x1MjUwZlx1MjUxM1x1MjUxYlx1MjUxN1x1MjUyM1x1MjUzM1x1MjUyYlx1MjUzYlx1MjU0Ylx1MjUyMFx1MjUy''@;'; + put 'put ''Zlx1MjUyOFx1MjUzN1x1MjUzZlx1MjUxZFx1MjUzMFx1MjUyNVx1MjUzOFx1MjU0MiJdLFsiYWRhMSIsIlx1MjQ2MCIsMTksIlx1MjE2MCIsOV0sWyJhZGMwIiwiXHUzMzQ5XHUzMzE0XHUzMzIyXHUzMzRkXHUzMzE4XHUzMzI3XHUzMzAzXHUzMzM2XHUzMzUxXHUzMzU3XHUzMzBkXHUzMzI2''@;'; + put 'put ''XHUzMzIzXHUzMzJiXHUzMzRhXHUzMzNiXHUzMzljXHUzMzlkXHUzMzllXHUzMzhlXHUzMzhmXHUzM2M0XHUzM2ExIl0sWyJhZGRmIiwiXHUzMzdiXHUzMDFkXHUzMDFmXHUyMTE2XHUzM2NkXHUyMTIxXHUzMmE0Iiw0LCJcdTMyMzFcdTMyMzJcdTMyMzlcdTMzN2VcdTMzN2RcdTMzN2NcdTIy''@;'; + put 'put ''NTJcdTIyNjFcdTIyMmJcdTIyMmVcdTIyMTFcdTIyMWFcdTIyYTVcdTIyMjBcdTIyMWZcdTIyYmZcdTIyMzVcdTIyMjlcdTIyMmEiXSxbImIwYTEiLCJcdTRlOWNcdTU1MTZcdTVhMDNcdTk2M2ZcdTU0YzBcdTYxMWJcdTYzMjhcdTU5ZjZcdTkwMjJcdTg0NzVcdTgzMWNcdTdhNTBcdTYwYWFc''@;'; + put 'put ''dTYzZTFcdTZlMjVcdTY1ZWRcdTg0NjZcdTgyYTZcdTliZjVcdTY4OTNcdTU3MjdcdTY1YTFcdTYyNzFcdTViOWJcdTU5ZDBcdTg2N2JcdTk4ZjRcdTdkNjJcdTdkYmVcdTliOGVcdTYyMTZcdTdjOWZcdTg4YjdcdTViODlcdTVlYjVcdTYzMDlcdTY2OTdcdTY4NDhcdTk1YzdcdTk3OGRcdTY3''@;'; + put 'put ''NGZcdTRlZTVcdTRmMGFcdTRmNGRcdTRmOWRcdTUwNDlcdTU2ZjJcdTU5MzdcdTU5ZDRcdTVhMDFcdTVjMDlcdTYwZGZcdTYxMGZcdTYxNzBcdTY2MTNcdTY5MDVcdTcwYmFcdTc1NGZcdTc1NzBcdTc5ZmJcdTdkYWRcdTdkZWZcdTgwYzNcdTg0MGVcdTg4NjNcdThiMDJcdTkwNTVcdTkwN2Fc''@;'; + put 'put ''dTUzM2JcdTRlOTVcdTRlYTVcdTU3ZGZcdTgwYjJcdTkwYzFcdTc4ZWZcdTRlMDBcdTU4ZjFcdTZlYTJcdTkwMzhcdTdhMzJcdTgzMjhcdTgyOGJcdTljMmZcdTUxNDFcdTUzNzBcdTU0YmRcdTU0ZTFcdTU2ZTBcdTU5ZmJcdTVmMTVcdTk4ZjJcdTZkZWJcdTgwZTRcdTg1MmQiXSxbImIxYTEi''@;'; + put 'put ''LCJcdTk2NjJcdTk2NzBcdTk2YTBcdTk3ZmJcdTU0MGJcdTUzZjNcdTViODdcdTcwY2ZcdTdmYmRcdThmYzJcdTk2ZThcdTUzNmZcdTlkNWNcdTdhYmFcdTRlMTFcdTc4OTNcdTgxZmNcdTZlMjZcdTU2MThcdTU1MDRcdTZiMWRcdTg1MWFcdTljM2JcdTU5ZTVcdTUzYTlcdTZkNjZcdTc0ZGNc''@;'; + put 'put ''dTk1OGZcdTU2NDJcdTRlOTFcdTkwNGJcdTk2ZjJcdTgzNGZcdTk5MGNcdTUzZTFcdTU1YjZcdTViMzBcdTVmNzFcdTY2MjBcdTY2ZjNcdTY4MDRcdTZjMzhcdTZjZjNcdTZkMjlcdTc0NWJcdTc2YzhcdTdhNGVcdTk4MzRcdTgyZjFcdTg4NWJcdThhNjBcdTkyZWRcdTZkYjJcdTc1YWJcdTc2''@;'; + put 'put ''Y2FcdTk5YzVcdTYwYTZcdThiMDFcdThkOGFcdTk1YjJcdTY5OGVcdTUzYWRcdTUxODZcdTU3MTJcdTU4MzBcdTU5NDRcdTViYjRcdTVlZjZcdTYwMjhcdTYzYTlcdTYzZjRcdTZjYmZcdTZmMTRcdTcwOGVcdTcxMTRcdTcxNTlcdTcxZDVcdTczM2ZcdTdlMDFcdTgyNzZcdTgyZDFcdTg1OTdc''@;'; + put 'put ''dTkwNjBcdTkyNWJcdTlkMWJcdTU4NjlcdTY1YmNcdTZjNWFcdTc1MjVcdTUxZjlcdTU5MmVcdTU5NjVcdTVmODBcdTVmZGMiXSxbImIyYTEiLCJcdTYyYmNcdTY1ZmFcdTZhMmFcdTZiMjdcdTZiYjRcdTczOGJcdTdmYzFcdTg5NTZcdTlkMmNcdTlkMGVcdTllYzRcdTVjYTFcdTZjOTZcdTgz''@;'; + put 'put ''N2JcdTUxMDRcdTVjNGJcdTYxYjZcdTgxYzZcdTY4NzZcdTcyNjFcdTRlNTlcdTRmZmFcdTUzNzhcdTYwNjlcdTZlMjlcdTdhNGZcdTk3ZjNcdTRlMGJcdTUzMTZcdTRlZWVcdTRmNTVcdTRmM2RcdTRmYTFcdTRmNzNcdTUyYTBcdTUzZWZcdTU2MDlcdTU5MGZcdTVhYzFcdTViYjZcdTViZTFc''@;'; + put 'put ''dTc5ZDFcdTY2ODdcdTY3OWNcdTY3YjZcdTZiNGNcdTZjYjNcdTcwNmJcdTczYzJcdTc5OGRcdTc5YmVcdTdhM2NcdTdiODdcdTgyYjFcdTgyZGJcdTgzMDRcdTgzNzdcdTgzZWZcdTgzZDNcdTg3NjZcdThhYjJcdTU2MjlcdThjYThcdThmZTZcdTkwNGVcdTk3MWVcdTg2OGFcdTRmYzRcdTVj''@;'; + put 'put ''ZThcdTYyMTFcdTcyNTlcdTc1M2JcdTgxZTVcdTgyYmRcdTg2ZmVcdThjYzBcdTk2YzVcdTk5MTNcdTk5ZDVcdTRlY2JcdTRmMWFcdTg5ZTNcdTU2ZGVcdTU4NGFcdTU4Y2FcdTVlZmJcdTVmZWJcdTYwMmFcdTYwOTRcdTYwNjJcdTYxZDBcdTYyMTJcdTYyZDBcdTY1MzkiXSxbImIzYTEiLCJc''@;'; + put 'put ''dTliNDFcdTY2NjZcdTY4YjBcdTZkNzdcdTcwNzBcdTc1NGNcdTc2ODZcdTdkNzVcdTgyYTVcdTg3ZjlcdTk1OGJcdTk2OGVcdThjOWRcdTUxZjFcdTUyYmVcdTU5MTZcdTU0YjNcdTViYjNcdTVkMTZcdTYxNjhcdTY5ODJcdTZkYWZcdTc4OGRcdTg0Y2JcdTg4NTdcdThhNzJcdTkzYTdcdTlh''@;'; + put 'put ''YjhcdTZkNmNcdTk5YThcdTg2ZDlcdTU3YTNcdTY3ZmZcdTg2Y2VcdTkyMGVcdTUyODNcdTU2ODdcdTU0MDRcdTVlZDNcdTYyZTFcdTY0YjlcdTY4M2NcdTY4MzhcdTZiYmJcdTczNzJcdTc4YmFcdTdhNmJcdTg5OWFcdTg5ZDJcdThkNmJcdThmMDNcdTkwZWRcdTk1YTNcdTk2OTRcdTk3Njlc''@;'; + put 'put ''dTViNjZcdTVjYjNcdTY5N2RcdTk4NGRcdTk4NGVcdTYzOWJcdTdiMjBcdTZhMmJcdTZhN2ZcdTY4YjZcdTljMGRcdTZmNWZcdTUyNzJcdTU1OWRcdTYwNzBcdTYyZWNcdTZkM2JcdTZlMDdcdTZlZDFcdTg0NWJcdTg5MTBcdThmNDRcdTRlMTRcdTljMzlcdTUzZjZcdTY5MWJcdTZhM2FcdTk3''@;'; + put 'put ''ODRcdTY4MmFcdTUxNWNcdTdhYzNcdTg0YjJcdTkxZGNcdTkzOGNcdTU2NWJcdTlkMjhcdTY4MjJcdTgzMDVcdTg0MzEiXSxbImI0YTEiLCJcdTdjYTVcdTUyMDhcdTgyYzVcdTc0ZTZcdTRlN2VcdTRmODNcdTUxYTBcdTViZDJcdTUyMGFcdTUyZDhcdTUyZTdcdTVkZmJcdTU1OWFcdTU4MmFc''@;'; + put 'put ''dTU5ZTZcdTViOGNcdTViOThcdTViZGJcdTVlNzJcdTVlNzlcdTYwYTNcdTYxMWZcdTYxNjNcdTYxYmVcdTYzZGJcdTY1NjJcdTY3ZDFcdTY4NTNcdTY4ZmFcdTZiM2VcdTZiNTNcdTZjNTdcdTZmMjJcdTZmOTdcdTZmNDVcdTc0YjBcdTc1MThcdTc2ZTNcdTc3MGJcdTdhZmZcdTdiYTFcdTdj''@;'; + put 'put ''MjFcdTdkZTlcdTdmMzZcdTdmZjBcdTgwOWRcdTgyNjZcdTgzOWVcdTg5YjNcdThhY2NcdThjYWJcdTkwODRcdTk0NTFcdTk1OTNcdTk1OTFcdTk1YTJcdTk2NjVcdTk3ZDNcdTk5MjhcdTgyMThcdTRlMzhcdTU0MmJcdTVjYjhcdTVkY2NcdTczYTlcdTc2NGNcdTc3M2NcdTVjYTlcdTdmZWJc''@;'; + put 'put ''dThkMGJcdTk2YzFcdTk4MTFcdTk4NTRcdTk4NThcdTRmMDFcdTRmMGVcdTUzNzFcdTU1OWNcdTU2NjhcdTU3ZmFcdTU5NDdcdTViMDlcdTViYzRcdTVjOTBcdTVlMGNcdTVlN2VcdTVmY2NcdTYzZWVcdTY3M2FcdTY1ZDdcdTY1ZTJcdTY3MWZcdTY4Y2JcdTY4YzQiXSxbImI1YTEiLCJcdTZh''@;'; + put 'put ''NWZcdTVlMzBcdTZiYzVcdTZjMTdcdTZjN2RcdTc1N2ZcdTc5NDhcdTViNjNcdTdhMDBcdTdkMDBcdTVmYmRcdTg5OGZcdThhMThcdThjYjRcdThkNzdcdThlY2NcdThmMWRcdTk4ZTJcdTlhMGVcdTliM2NcdTRlODBcdTUwN2RcdTUxMDBcdTU5OTNcdTViOWNcdTYyMmZcdTYyODBcdTY0ZWNc''@;'; + put 'put ''dTZiM2FcdTcyYTBcdTc1OTFcdTc5NDdcdTdmYTlcdTg3ZmJcdThhYmNcdThiNzBcdTYzYWNcdTgzY2FcdTk3YTBcdTU0MDlcdTU0MDNcdTU1YWJcdTY4NTRcdTZhNThcdThhNzBcdTc4MjdcdTY3NzVcdTllY2RcdTUzNzRcdTViYTJcdTgxMWFcdTg2NTBcdTkwMDZcdTRlMThcdTRlNDVcdTRl''@;'; + put 'put ''YzdcdTRmMTFcdTUzY2FcdTU0MzhcdTViYWVcdTVmMTNcdTYwMjVcdTY1NTFcdTY3M2RcdTZjNDJcdTZjNzJcdTZjZTNcdTcwNzhcdTc0MDNcdTdhNzZcdTdhYWVcdTdiMDhcdTdkMWFcdTdjZmVcdTdkNjZcdTY1ZTdcdTcyNWJcdTUzYmJcdTVjNDVcdTVkZThcdTYyZDJcdTYyZTBcdTYzMTlc''@;'; + put 'put ''dTZlMjBcdTg2NWFcdThhMzFcdThkZGRcdTkyZjhcdTZmMDFcdTc5YTZcdTliNWFcdTRlYThcdTRlYWJcdTRlYWMiXSxbImI2YTEiLCJcdTRmOWJcdTRmYTBcdTUwZDFcdTUxNDdcdTdhZjZcdTUxNzFcdTUxZjZcdTUzNTRcdTUzMjFcdTUzN2ZcdTUzZWJcdTU1YWNcdTU4ODNcdTVjZTFcdTVm''@;'; + put 'put ''MzdcdTVmNGFcdTYwMmZcdTYwNTBcdTYwNmRcdTYzMWZcdTY1NTlcdTZhNGJcdTZjYzFcdTcyYzJcdTcyZWRcdTc3ZWZcdTgwZjhcdTgxMDVcdTgyMDhcdTg1NGVcdTkwZjdcdTkzZTFcdTk3ZmZcdTk5NTdcdTlhNWFcdTRlZjBcdTUxZGRcdTVjMmRcdTY2ODFcdTY5NmRcdTVjNDBcdTY2ZjJc''@;'; + put 'put ''dTY5NzVcdTczODlcdTY4NTBcdTdjODFcdTUwYzVcdTUyZTRcdTU3NDdcdTVkZmVcdTkzMjZcdTY1YTRcdTZiMjNcdTZiM2RcdTc0MzRcdTc5ODFcdTc5YmRcdTdiNGJcdTdkY2FcdTgyYjlcdTgzY2NcdTg4N2ZcdTg5NWZcdThiMzlcdThmZDFcdTkxZDFcdTU0MWZcdTkyODBcdTRlNWRcdTUw''@;'; + put 'put ''MzZcdTUzZTVcdTUzM2FcdTcyZDdcdTczOTZcdTc3ZTlcdTgyZTZcdThlYWZcdTk5YzZcdTk5YzhcdTk5ZDJcdTUxNzdcdTYxMWFcdTg2NWVcdTU1YjBcdTdhN2FcdTUwNzZcdTViZDNcdTkwNDdcdTk2ODVcdTRlMzJcdTZhZGJcdTkxZTdcdTVjNTFcdTVjNDgiXSxbImI3YTEiLCJcdTYzOThc''@;'; + put 'put ''dTdhOWZcdTZjOTNcdTk3NzRcdThmNjFcdTdhYWFcdTcxOGFcdTk2ODhcdTdjODJcdTY4MTdcdTdlNzBcdTY4NTFcdTkzNmNcdTUyZjJcdTU0MWJcdTg1YWJcdThhMTNcdTdmYTRcdThlY2RcdTkwZTFcdTUzNjZcdTg4ODhcdTc5NDFcdTRmYzJcdTUwYmVcdTUyMTFcdTUxNDRcdTU1NTNcdTU3''@;'; + put 'put ''MmRcdTczZWFcdTU3OGJcdTU5NTFcdTVmNjJcdTVmODRcdTYwNzVcdTYxNzZcdTYxNjdcdTYxYTlcdTYzYjJcdTY0M2FcdTY1NmNcdTY2NmZcdTY4NDJcdTZlMTNcdTc1NjZcdTdhM2RcdTdjZmJcdTdkNGNcdTdkOTlcdTdlNGJcdTdmNmJcdTgzMGVcdTgzNGFcdTg2Y2RcdThhMDhcdThhNjNc''@;'; + put 'put ''dThiNjZcdThlZmRcdTk4MWFcdTlkOGZcdTgyYjhcdThmY2VcdTliZThcdTUyODdcdTYyMWZcdTY0ODNcdTZmYzBcdTk2OTlcdTY4NDFcdTUwOTFcdTZiMjBcdTZjN2FcdTZmNTRcdTdhNzRcdTdkNTBcdTg4NDBcdThhMjNcdTY3MDhcdTRlZjZcdTUwMzlcdTUwMjZcdTUwNjVcdTUxN2NcdTUy''@;'; + put 'put ''MzhcdTUyNjNcdTU1YTdcdTU3MGZcdTU4MDVcdTVhY2NcdTVlZmFcdTYxYjJcdTYxZjhcdTYyZjNcdTYzNzIiXSxbImI4YTEiLCJcdTY5MWNcdTZhMjlcdTcyN2RcdTcyYWNcdTczMmVcdTc4MTRcdTc4NmZcdTdkNzlcdTc3MGNcdTgwYTlcdTg5OGJcdThiMTlcdThjZTJcdThlZDJcdTkwNjNc''@;'; + put 'put ''dTkzNzVcdTk2N2FcdTk4NTVcdTlhMTNcdTllNzhcdTUxNDNcdTUzOWZcdTUzYjNcdTVlN2JcdTVmMjZcdTZlMWJcdTZlOTBcdTczODRcdTczZmVcdTdkNDNcdTgyMzdcdThhMDBcdThhZmFcdTk2NTBcdTRlNGVcdTUwMGJcdTUzZTRcdTU0N2NcdTU2ZmFcdTU5ZDFcdTViNjRcdTVkZjFcdTVl''@;'; + put 'put ''YWJcdTVmMjdcdTYyMzhcdTY1NDVcdTY3YWZcdTZlNTZcdTcyZDBcdTdjY2FcdTg4YjRcdTgwYTFcdTgwZTFcdTgzZjBcdTg2NGVcdThhODdcdThkZThcdTkyMzdcdTk2YzdcdTk4NjdcdTlmMTNcdTRlOTRcdTRlOTJcdTRmMGRcdTUzNDhcdTU0NDlcdTU0M2VcdTVhMmZcdTVmOGNcdTVmYTFc''@;'; + put 'put ''dTYwOWZcdTY4YTdcdTZhOGVcdTc0NWFcdTc4ODFcdThhOWVcdThhYTRcdThiNzdcdTkxOTBcdTRlNWVcdTliYzlcdTRlYTRcdTRmN2NcdTRmYWZcdTUwMTlcdTUwMTZcdTUxNDlcdTUxNmNcdTUyOWZcdTUyYjlcdTUyZmVcdTUzOWFcdTUzZTNcdTU0MTEiXSxbImI5YTEiLCJcdTU0MGVcdTU1''@;'; + put 'put ''ODlcdTU3NTFcdTU3YTJcdTU5N2RcdTViNTRcdTViNWRcdTViOGZcdTVkZTVcdTVkZTdcdTVkZjdcdTVlNzhcdTVlODNcdTVlOWFcdTVlYjdcdTVmMThcdTYwNTJcdTYxNGNcdTYyOTdcdTYyZDhcdTYzYTdcdTY1M2JcdTY2MDJcdTY2NDNcdTY2ZjRcdTY3NmRcdTY4MjFcdTY4OTdcdTY5Y2Jc''@;'; + put 'put ''dTZjNWZcdTZkMmFcdTZkNjlcdTZlMmZcdTZlOWRcdTc1MzJcdTc2ODdcdTc4NmNcdTdhM2ZcdTdjZTBcdTdkMDVcdTdkMThcdTdkNWVcdTdkYjFcdTgwMTVcdTgwMDNcdTgwYWZcdTgwYjFcdTgxNTRcdTgxOGZcdTgyMmFcdTgzNTJcdTg4NGNcdTg4NjFcdThiMWJcdThjYTJcdThjZmNcdTkw''@;'; + put 'put ''Y2FcdTkxNzVcdTkyNzFcdTc4M2ZcdTkyZmNcdTk1YTRcdTk2NGRcdTk4MDVcdTk5OTlcdTlhZDhcdTlkM2JcdTUyNWJcdTUyYWJcdTUzZjdcdTU0MDhcdTU4ZDVcdTYyZjdcdTZmZTBcdThjNmFcdThmNWZcdTllYjlcdTUxNGJcdTUyM2JcdTU0NGFcdTU2ZmRcdTdhNDBcdTkxNzdcdTlkNjBc''@;'; + put 'put ''dTllZDJcdTczNDRcdTZmMDlcdTgxNzBcdTc1MTFcdTVmZmRcdTYwZGFcdTlhYThcdTcyZGJcdThmYmMiXSxbImJhYTEiLCJcdTZiNjRcdTk4MDNcdTRlY2FcdTU2ZjBcdTU3NjRcdTU4YmVcdTVhNWFcdTYwNjhcdTYxYzdcdTY2MGZcdTY2MDZcdTY4MzlcdTY4YjFcdTZkZjdcdTc1ZDVcdTdk''@;'; + put 'put ''M2FcdTgyNmVcdTliNDJcdTRlOWJcdTRmNTBcdTUzYzlcdTU1MDZcdTVkNmZcdTVkZTZcdTVkZWVcdTY3ZmJcdTZjOTlcdTc0NzNcdTc4MDJcdThhNTBcdTkzOTZcdTg4ZGZcdTU3NTBcdTVlYTdcdTYzMmJcdTUwYjVcdTUwYWNcdTUxOGRcdTY3MDBcdTU0YzlcdTU4NWVcdTU5YmJcdTViYjBc''@;'; + put 'put ''dTVmNjlcdTYyNGRcdTYzYTFcdTY4M2RcdTZiNzNcdTZlMDhcdTcwN2RcdTkxYzdcdTcyODBcdTc4MTVcdTc4MjZcdTc5NmRcdTY1OGVcdTdkMzBcdTgzZGNcdTg4YzFcdThmMDlcdTk2OWJcdTUyNjRcdTU3MjhcdTY3NTBcdTdmNmFcdThjYTFcdTUxYjRcdTU3NDJcdTk2MmFcdTU4M2FcdTY5''@;'; + put 'put ''OGFcdTgwYjRcdTU0YjJcdTVkMGVcdTU3ZmNcdTc4OTVcdTlkZmFcdTRmNWNcdTUyNGFcdTU0OGJcdTY0M2VcdTY2MjhcdTY3MTRcdTY3ZjVcdTdhODRcdTdiNTZcdTdkMjJcdTkzMmZcdTY4NWNcdTliYWRcdTdiMzlcdTUzMTlcdTUxOGFcdTUyMzciXSxbImJiYTEiLCJcdTViZGZcdTYyZjZc''@;'; + put 'put ''dTY0YWVcdTY0ZTZcdTY3MmRcdTZiYmFcdTg1YTlcdTk2ZDFcdTc2OTBcdTliZDZcdTYzNGNcdTkzMDZcdTliYWJcdTc2YmZcdTY2NTJcdTRlMDlcdTUwOThcdTUzYzJcdTVjNzFcdTYwZThcdTY0OTJcdTY1NjNcdTY4NWZcdTcxZTZcdTczY2FcdTc1MjNcdTdiOTdcdTdlODJcdTg2OTVcdThi''@;'; + put 'put ''ODNcdThjZGJcdTkxNzhcdTk5MTBcdTY1YWNcdTY2YWJcdTZiOGJcdTRlZDVcdTRlZDRcdTRmM2FcdTRmN2ZcdTUyM2FcdTUzZjhcdTUzZjJcdTU1ZTNcdTU2ZGJcdTU4ZWJcdTU5Y2JcdTU5YzlcdTU5ZmZcdTViNTBcdTVjNGRcdTVlMDJcdTVlMmJcdTVmZDdcdTYwMWRcdTYzMDdcdTY1MmZc''@;'; + put 'put ''dTViNWNcdTY1YWZcdTY1YmRcdTY1ZThcdTY3OWRcdTZiNjJcdTZiN2JcdTZjMGZcdTczNDVcdTc5NDlcdTc5YzFcdTdjZjhcdTdkMTlcdTdkMmJcdTgwYTJcdTgxMDJcdTgxZjNcdTg5OTZcdThhNWVcdThhNjlcdThhNjZcdThhOGNcdThhZWVcdThjYzdcdThjZGNcdTk2Y2NcdTk4ZmNcdTZi''@;'; + put 'put ''NmZcdTRlOGJcdTRmM2NcdTRmOGRcdTUxNTBcdTViNTdcdTViZmFcdTYxNDhcdTYzMDFcdTY2NDIiXSxbImJjYTEiLCJcdTZiMjFcdTZlY2JcdTZjYmJcdTcyM2VcdTc0YmRcdTc1ZDRcdTc4YzFcdTc5M2FcdTgwMGNcdTgwMzNcdTgxZWFcdTg0OTRcdThmOWVcdTZjNTBcdTllN2ZcdTVmMGZc''@;'; + put 'put ''dThiNThcdTlkMmJcdTdhZmFcdThlZjhcdTViOGRcdTk2ZWJcdTRlMDNcdTUzZjFcdTU3ZjdcdTU5MzFcdTVhYzlcdTViYTRcdTYwODlcdTZlN2ZcdTZmMDZcdTc1YmVcdThjZWFcdTViOWZcdTg1MDBcdTdiZTBcdTUwNzJcdTY3ZjRcdTgyOWRcdTVjNjFcdTg1NGFcdTdlMWVcdTgyMGVcdTUx''@;'; + put 'put ''OTlcdTVjMDRcdTYzNjhcdThkNjZcdTY1OWNcdTcxNmVcdTc5M2VcdTdkMTdcdTgwMDVcdThiMWRcdThlY2FcdTkwNmVcdTg2YzdcdTkwYWFcdTUwMWZcdTUyZmFcdTVjM2FcdTY3NTNcdTcwN2NcdTcyMzVcdTkxNGNcdTkxYzhcdTkzMmJcdTgyZTVcdTViYzJcdTVmMzFcdTYwZjlcdTRlM2Jc''@;'; + put 'put ''dTUzZDZcdTViODhcdTYyNGJcdTY3MzFcdTZiOGFcdTcyZTlcdTczZTBcdTdhMmVcdTgxNmJcdThkYTNcdTkxNTJcdTk5OTZcdTUxMTJcdTUzZDdcdTU0NmFcdTViZmZcdTYzODhcdTZhMzlcdTdkYWNcdTk3MDBcdTU2ZGFcdTUzY2VcdTU0NjgiXSxbImJkYTEiLCJcdTViOTdcdTVjMzFcdTVk''@;'; + put 'put ''ZGVcdTRmZWVcdTYxMDFcdTYyZmVcdTZkMzJcdTc5YzBcdTc5Y2JcdTdkNDJcdTdlNGRcdTdmZDJcdTgxZWRcdTgyMWZcdTg0OTBcdTg4NDZcdTg5NzJcdThiOTBcdThlNzRcdThmMmZcdTkwMzFcdTkxNGJcdTkxNmNcdTk2YzZcdTkxOWNcdTRlYzBcdTRmNGZcdTUxNDVcdTUzNDFcdTVmOTNc''@;'; + put 'put ''dTYyMGVcdTY3ZDRcdTZjNDFcdTZlMGJcdTczNjNcdTdlMjZcdTkxY2RcdTkyODNcdTUzZDRcdTU5MTlcdTViYmZcdTZkZDFcdTc5NWRcdTdlMmVcdTdjOWJcdTU4N2VcdTcxOWZcdTUxZmFcdTg4NTNcdThmZjBcdTRmY2FcdTVjZmJcdTY2MjVcdTc3YWNcdTdhZTNcdTgyMWNcdTk5ZmZcdTUx''@;'; + put 'put ''YzZcdTVmYWFcdTY1ZWNcdTY5NmZcdTZiODlcdTZkZjNcdTZlOTZcdTZmNjRcdTc2ZmVcdTdkMTRcdTVkZTFcdTkwNzVcdTkxODdcdTk4MDZcdTUxZTZcdTUyMWRcdTYyNDBcdTY2OTFcdTY2ZDlcdTZlMWFcdTVlYjZcdTdkZDJcdTdmNzJcdTY2ZjhcdTg1YWZcdTg1ZjdcdThhZjhcdTUyYTlc''@;'; + put 'put ''dTUzZDlcdTU5NzNcdTVlOGZcdTVmOTBcdTYwNTVcdTkyZTRcdTk2NjRcdTUwYjdcdTUxMWYiXSxbImJlYTEiLCJcdTUyZGRcdTUzMjBcdTUzNDdcdTUzZWNcdTU0ZThcdTU1NDZcdTU1MzFcdTU2MTdcdTU5NjhcdTU5YmVcdTVhM2NcdTViYjVcdTVjMDZcdTVjMGZcdTVjMTFcdTVjMWFcdTVl''@;'; + put 'put ''ODRcdTVlOGFcdTVlZTBcdTVmNzBcdTYyN2ZcdTYyODRcdTYyZGJcdTYzOGNcdTYzNzdcdTY2MDdcdTY2MGNcdTY2MmRcdTY2NzZcdTY3N2VcdTY4YTJcdTZhMWZcdTZhMzVcdTZjYmNcdTZkODhcdTZlMDlcdTZlNThcdTcxM2NcdTcxMjZcdTcxNjdcdTc1YzdcdTc3MDFcdTc4NWRcdTc5MDFc''@;'; + put 'put ''dTc5NjVcdTc5ZjBcdTdhZTBcdTdiMTFcdTdjYTdcdTdkMzlcdTgwOTZcdTgzZDZcdTg0OGJcdTg1NDlcdTg4NWRcdTg4ZjNcdThhMWZcdThhM2NcdThhNTRcdThhNzNcdThjNjFcdThjZGVcdTkxYTRcdTkyNjZcdTkzN2VcdTk0MThcdTk2OWNcdTk3OThcdTRlMGFcdTRlMDhcdTRlMWVcdTRl''@;'; + put 'put ''NTdcdTUxOTdcdTUyNzBcdTU3Y2VcdTU4MzRcdTU4Y2NcdTViMjJcdTVlMzhcdTYwYzVcdTY0ZmVcdTY3NjFcdTY3NTZcdTZkNDRcdTcyYjZcdTc1NzNcdTdhNjNcdTg0YjhcdThiNzJcdTkxYjhcdTkzMjBcdTU2MzFcdTU3ZjRcdTk4ZmUiXSxbImJmYTEiLCJcdTYyZWRcdTY5MGRcdTZiOTZc''@;'; + put 'put ''dTcxZWRcdTdlNTRcdTgwNzdcdTgyNzJcdTg5ZTZcdTk4ZGZcdTg3NTVcdThmYjFcdTVjM2JcdTRmMzhcdTRmZTFcdTRmYjVcdTU1MDdcdTVhMjBcdTViZGRcdTViZTlcdTVmYzNcdTYxNGVcdTYzMmZcdTY1YjBcdTY2NGJcdTY4ZWVcdTY5OWJcdTZkNzhcdTZkZjFcdTc1MzNcdTc1YjlcdTc3''@;'; + put 'put ''MWZcdTc5NWVcdTc5ZTZcdTdkMzNcdTgxZTNcdTgyYWZcdTg1YWFcdTg5YWFcdThhM2FcdThlYWJcdThmOWJcdTkwMzJcdTkxZGRcdTk3MDdcdTRlYmFcdTRlYzFcdTUyMDNcdTU4NzVcdTU4ZWNcdTVjMGJcdTc1MWFcdTVjM2RcdTgxNGVcdThhMGFcdThmYzVcdTk2NjNcdTk3NmRcdTdiMjVc''@;'; + put 'put ''dThhY2ZcdTk4MDhcdTkxNjJcdTU2ZjNcdTUzYThcdTkwMTdcdTU0MzlcdTU3ODJcdTVlMjVcdTYzYThcdTZjMzRcdTcwOGFcdTc3NjFcdTdjOGJcdTdmZTBcdTg4NzBcdTkwNDJcdTkxNTRcdTkzMTBcdTkzMThcdTk2OGZcdTc0NWVcdTlhYzRcdTVkMDdcdTVkNjlcdTY1NzBcdTY3YTJcdThk''@;'; + put 'put ''YThcdTk2ZGJcdTYzNmVcdTY3NDlcdTY5MTlcdTgzYzVcdTk4MTdcdTk2YzBcdTg4ZmUiXSxbImMwYTEiLCJcdTZmODRcdTY0N2FcdTViZjhcdTRlMTZcdTcwMmNcdTc1NWRcdTY2MmZcdTUxYzRcdTUyMzZcdTUyZTJcdTU5ZDNcdTVmODFcdTYwMjdcdTYyMTBcdTY1M2ZcdTY1NzRcdTY2MWZc''@;'; + put 'put ''dTY2NzRcdTY4ZjJcdTY4MTZcdTZiNjNcdTZlMDVcdTcyNzJcdTc1MWZcdTc2ZGJcdTdjYmVcdTgwNTZcdTU4ZjBcdTg4ZmRcdTg5N2ZcdThhYTBcdThhOTNcdThhY2JcdTkwMWRcdTkxOTJcdTk3NTJcdTk3NTlcdTY1ODlcdTdhMGVcdTgxMDZcdTk2YmJcdTVlMmRcdTYwZGNcdTYyMWFcdTY1''@;'; + put 'put ''YTVcdTY2MTRcdTY3OTBcdTc3ZjNcdTdhNGRcdTdjNGRcdTdlM2VcdTgxMGFcdThjYWNcdThkNjRcdThkZTFcdThlNWZcdTc4YTlcdTUyMDdcdTYyZDlcdTYzYTVcdTY0NDJcdTYyOThcdThhMmRcdTdhODNcdTdiYzBcdThhYWNcdTk2ZWFcdTdkNzZcdTgyMGNcdTg3NDlcdTRlZDlcdTUxNDhc''@;'; + put 'put ''dTUzNDNcdTUzNjBcdTViYTNcdTVjMDJcdTVjMTZcdTVkZGRcdTYyMjZcdTYyNDdcdTY0YjBcdTY4MTNcdTY4MzRcdTZjYzlcdTZkNDVcdTZkMTdcdTY3ZDNcdTZmNWNcdTcxNGVcdTcxN2RcdTY1Y2JcdTdhN2ZcdTdiYWRcdTdkZGEiXSxbImMxYTEiLCJcdTdlNGFcdTdmYThcdTgxN2FcdTgy''@;'; + put 'put ''MWJcdTgyMzlcdTg1YTZcdThhNmVcdThjY2VcdThkZjVcdTkwNzhcdTkwNzdcdTkyYWRcdTkyOTFcdTk1ODNcdTliYWVcdTUyNGRcdTU1ODRcdTZmMzhcdTcxMzZcdTUxNjhcdTc5ODVcdTdlNTVcdTgxYjNcdTdjY2VcdTU2NGNcdTU4NTFcdTVjYThcdTYzYWFcdTY2ZmVcdTY2ZmRcdTY5NWFc''@;'; + put 'put ''dTcyZDlcdTc1OGZcdTc1OGVcdTc5MGVcdTc5NTZcdTc5ZGZcdTdjOTdcdTdkMjBcdTdkNDRcdTg2MDdcdThhMzRcdTk2M2JcdTkwNjFcdTlmMjBcdTUwZTdcdTUyNzVcdTUzY2NcdTUzZTJcdTUwMDlcdTU1YWFcdTU4ZWVcdTU5NGZcdTcyM2RcdTViOGJcdTVjNjRcdTUzMWRcdTYwZTNcdTYw''@;'; + put 'put ''ZjNcdTYzNWNcdTYzODNcdTYzM2ZcdTYzYmJcdTY0Y2RcdTY1ZTlcdTY2ZjlcdTVkZTNcdTY5Y2RcdTY5ZmRcdTZmMTVcdTcxZTVcdTRlODlcdTc1ZTlcdTc2ZjhcdTdhOTNcdTdjZGZcdTdkY2ZcdTdkOWNcdTgwNjFcdTgzNDlcdTgzNThcdTg0NmNcdTg0YmNcdTg1ZmJcdTg4YzVcdThkNzBc''@;'; + put 'put ''dTkwMDFcdTkwNmRcdTkzOTdcdTk3MWNcdTlhMTJcdTUwY2ZcdTU4OTdcdTYxOGUiXSxbImMyYTEiLCJcdTgxZDNcdTg1MzVcdThkMDhcdTkwMjBcdTRmYzNcdTUwNzRcdTUyNDdcdTUzNzNcdTYwNmZcdTYzNDlcdTY3NWZcdTZlMmNcdThkYjNcdTkwMWZcdTRmZDdcdTVjNWVcdThjY2FcdTY1''@;'; + put 'put ''Y2ZcdTdkOWFcdTUzNTJcdTg4OTZcdTUxNzZcdTYzYzNcdTViNThcdTViNmJcdTVjMGFcdTY0MGRcdTY3NTFcdTkwNWNcdTRlZDZcdTU5MWFcdTU5MmFcdTZjNzBcdThhNTFcdTU1M2VcdTU4MTVcdTU5YTVcdTYwZjBcdTYyNTNcdTY3YzFcdTgyMzVcdTY5NTVcdTk2NDBcdTk5YzRcdTlhMjhc''@;'; + put 'put ''dTRmNTNcdTU4MDZcdTViZmVcdTgwMTBcdTVjYjFcdTVlMmZcdTVmODVcdTYwMjBcdTYxNGJcdTYyMzRcdTY2ZmZcdTZjZjBcdTZlZGVcdTgwY2VcdTgxN2ZcdTgyZDRcdTg4OGJcdThjYjhcdTkwMDBcdTkwMmVcdTk2OGFcdTllZGJcdTliZGJcdTRlZTNcdTUzZjBcdTU5MjdcdTdiMmNcdTkx''@;'; + put 'put ''OGRcdTk4NGNcdTlkZjlcdTZlZGRcdTcwMjdcdTUzNTNcdTU1NDRcdTViODVcdTYyNThcdTYyOWVcdTYyZDNcdTZjYTJcdTZmZWZcdTc0MjJcdThhMTdcdTk0MzhcdTZmYzFcdThhZmVcdTgzMzhcdTUxZTdcdTg2ZjhcdTUzZWEiXSxbImMzYTEiLCJcdTUzZTlcdTRmNDZcdTkwNTRcdThmYjBc''@;'; + put 'put ''dTU5NmFcdTgxMzFcdTVkZmRcdTdhZWFcdThmYmZcdTY4ZGFcdThjMzdcdTcyZjhcdTljNDhcdTZhM2RcdThhYjBcdTRlMzlcdTUzNThcdTU2MDZcdTU3NjZcdTYyYzVcdTYzYTJcdTY1ZTZcdTZiNGVcdTZkZTFcdTZlNWJcdTcwYWRcdTc3ZWRcdTdhZWZcdTdiYWFcdTdkYmJcdTgwM2RcdTgw''@;'; + put 'put ''YzZcdTg2Y2JcdThhOTVcdTkzNWJcdTU2ZTNcdTU4YzdcdTVmM2VcdTY1YWRcdTY2OTZcdTZhODBcdTZiYjVcdTc1MzdcdThhYzdcdTUwMjRcdTc3ZTVcdTU3MzBcdTVmMWJcdTYwNjVcdTY2N2FcdTZjNjBcdTc1ZjRcdTdhMWFcdTdmNmVcdTgxZjRcdTg3MThcdTkwNDVcdTk5YjNcdTdiYzlc''@;'; + put 'put ''dTc1NWNcdTdhZjlcdTdiNTFcdTg0YzRcdTkwMTBcdTc5ZTlcdTdhOTJcdTgzMzZcdTVhZTFcdTc3NDBcdTRlMmRcdTRlZjJcdTViOTlcdTVmZTBcdTYyYmRcdTY2M2NcdTY3ZjFcdTZjZThcdTg2NmJcdTg4NzdcdThhM2JcdTkxNGVcdTkyZjNcdTk5ZDBcdTZhMTdcdTcwMjZcdTczMmFcdTgy''@;'; + put 'put ''ZTdcdTg0NTdcdThjYWZcdTRlMDFcdTUxNDZcdTUxY2JcdTU1OGJcdTViZjUiXSxbImM0YTEiLCJcdTVlMTZcdTVlMzNcdTVlODFcdTVmMTRcdTVmMzVcdTVmNmJcdTVmYjRcdTYxZjJcdTYzMTFcdTY2YTJcdTY3MWRcdTZmNmVcdTcyNTJcdTc1M2FcdTc3M2FcdTgwNzRcdTgxMzlcdTgxNzhc''@;'; + put 'put ''dTg3NzZcdThhYmZcdThhZGNcdThkODVcdThkZjNcdTkyOWFcdTk1NzdcdTk4MDJcdTljZTVcdTUyYzVcdTYzNTdcdTc2ZjRcdTY3MTVcdTZjODhcdTczY2RcdThjYzNcdTkzYWVcdTk2NzNcdTZkMjVcdTU4OWNcdTY5MGVcdTY5Y2NcdThmZmRcdTkzOWFcdTc1ZGJcdTkwMWFcdTU4NWFcdTY4''@;'; + put 'put ''MDJcdTYzYjRcdTY5ZmJcdTRmNDNcdTZmMmNcdTY3ZDhcdThmYmJcdTg1MjZcdTdkYjRcdTkzNTRcdTY5M2ZcdTZmNzBcdTU3NmFcdTU4ZjdcdTViMmNcdTdkMmNcdTcyMmFcdTU0MGFcdTkxZTNcdTlkYjRcdTRlYWRcdTRmNGVcdTUwNWNcdTUwNzVcdTUyNDNcdThjOWVcdTU0NDhcdTU4MjRc''@;'; + put 'put ''dTViOWFcdTVlMWRcdTVlOTVcdTVlYWRcdTVlZjdcdTVmMWZcdTYwOGNcdTYyYjVcdTYzM2FcdTYzZDBcdTY4YWZcdTZjNDBcdTc4ODdcdTc5OGVcdTdhMGJcdTdkZTBcdTgyNDdcdThhMDJcdThhZTZcdThlNDRcdTkwMTMiXSxbImM1YTEiLCJcdTkwYjhcdTkxMmRcdTkxZDhcdTlmMGVcdTZj''@;'; + put 'put ''ZTVcdTY0NThcdTY0ZTJcdTY1NzVcdTZlZjRcdTc2ODRcdTdiMWJcdTkwNjlcdTkzZDFcdTZlYmFcdTU0ZjJcdTVmYjlcdTY0YTRcdThmNGRcdThmZWRcdTkyNDRcdTUxNzhcdTU4NmJcdTU5MjlcdTVjNTVcdTVlOTdcdTZkZmJcdTdlOGZcdTc1MWNcdThjYmNcdThlZTJcdTk4NWJcdTcwYjlc''@;'; + put 'put ''dTRmMWRcdTZiYmZcdTZmYjFcdTc1MzBcdTk2ZmJcdTUxNGVcdTU0MTBcdTU4MzVcdTU4NTdcdTU5YWNcdTVjNjBcdTVmOTJcdTY1OTdcdTY3NWNcdTZlMjFcdTc2N2JcdTgzZGZcdThjZWRcdTkwMTRcdTkwZmRcdTkzNGRcdTc4MjVcdTc4M2FcdTUyYWFcdTVlYTZcdTU3MWZcdTU5NzRcdTYw''@;'; + put 'put ''MTJcdTUwMTJcdTUxNWFcdTUxYWNcdTUxY2RcdTUyMDBcdTU1MTBcdTU4NTRcdTU4NThcdTU5NTdcdTViOTVcdTVjZjZcdTVkOGJcdTYwYmNcdTYyOTVcdTY0MmRcdTY3NzFcdTY4NDNcdTY4YmNcdTY4ZGZcdTc2ZDdcdTZkZDhcdTZlNmZcdTZkOWJcdTcwNmZcdTcxYzhcdTVmNTNcdTc1ZDhc''@;'; + put 'put ''dTc5NzdcdTdiNDlcdTdiNTRcdTdiNTJcdTdjZDZcdTdkNzFcdTUyMzAiXSxbImM2YTEiLCJcdTg0NjNcdTg1NjlcdTg1ZTRcdThhMGVcdThiMDRcdThjNDZcdThlMGZcdTkwMDNcdTkwMGZcdTk0MTlcdTk2NzZcdTk4MmRcdTlhMzBcdTk1ZDhcdTUwY2RcdTUyZDVcdTU0MGNcdTU4MDJcdTVj''@;'; + put 'put ''MGVcdTYxYTdcdTY0OWVcdTZkMWVcdTc3YjNcdTdhZTVcdTgwZjRcdTg0MDRcdTkwNTNcdTkyODVcdTVjZTBcdTlkMDdcdTUzM2ZcdTVmOTdcdTVmYjNcdTZkOWNcdTcyNzlcdTc3NjNcdTc5YmZcdTdiZTRcdTZiZDJcdTcyZWNcdThhYWRcdTY4MDNcdTZhNjFcdTUxZjhcdTdhODFcdTY5MzRc''@;'; + put 'put ''dTVjNGFcdTljZjZcdTgyZWJcdTViYzVcdTkxNDlcdTcwMWVcdTU2NzhcdTVjNmZcdTYwYzdcdTY1NjZcdTZjOGNcdThjNWFcdTkwNDFcdTk4MTNcdTU0NTFcdTY2YzdcdTkyMGRcdTU5NDhcdTkwYTNcdTUxODVcdTRlNGRcdTUxZWFcdTg1OTlcdThiMGVcdTcwNThcdTYzN2FcdTkzNGJcdTY5''@;'; + put 'put ''NjJcdTk5YjRcdTdlMDRcdTc1NzdcdTUzNTdcdTY5NjBcdThlZGZcdTk2ZTNcdTZjNWRcdTRlOGNcdTVjM2NcdTVmMTBcdThmZTlcdTUzMDJcdThjZDFcdTgwODlcdTg2NzlcdTVlZmZcdTY1ZTVcdTRlNzNcdTUxNjUiXSxbImM3YTEiLCJcdTU5ODJcdTVjM2ZcdTk3ZWVcdTRlZmJcdTU5OGFc''@;'; + put 'put ''dTVmY2RcdThhOGRcdTZmZTFcdTc5YjBcdTc5NjJcdTViZTdcdTg0NzFcdTczMmJcdTcxYjFcdTVlNzRcdTVmZjVcdTYzN2JcdTY0OWFcdTcxYzNcdTdjOThcdTRlNDNcdTVlZmNcdTRlNGJcdTU3ZGNcdTU2YTJcdTYwYTlcdTZmYzNcdTdkMGRcdTgwZmRcdTgxMzNcdTgxYmZcdThmYjJcdTg5''@;'; + put 'put ''OTdcdTg2YTRcdTVkZjRcdTYyOGFcdTY0YWRcdTg5ODdcdTY3NzdcdTZjZTJcdTZkM2VcdTc0MzZcdTc4MzRcdTVhNDZcdTdmNzVcdTgyYWRcdTk5YWNcdTRmZjNcdTVlYzNcdTYyZGRcdTYzOTJcdTY1NTdcdTY3NmZcdTc2YzNcdTcyNGNcdTgwY2NcdTgwYmFcdThmMjlcdTkxNGRcdTUwMGRc''@;'; + put 'put ''dTU3ZjlcdTVhOTJcdTY4ODVcdTY5NzNcdTcxNjRcdTcyZmRcdThjYjdcdTU4ZjJcdThjZTBcdTk2NmFcdTkwMTlcdTg3N2ZcdTc5ZTRcdTc3ZTdcdTg0MjlcdTRmMmZcdTUyNjVcdTUzNWFcdTYyY2RcdTY3Y2ZcdTZjY2FcdTc2N2RcdTdiOTRcdTdjOTVcdTgyMzZcdTg1ODRcdThmZWJcdTY2''@;'; + put 'put ''ZGRcdTZmMjBcdTcyMDZcdTdlMWJcdTgzYWJcdTk5YzFcdTllYTYiXSxbImM4YTEiLCJcdTUxZmRcdTdiYjFcdTc4NzJcdTdiYjhcdTgwODdcdTdiNDhcdTZhZThcdTVlNjFcdTgwOGNcdTc1NTFcdTc1NjBcdTUxNmJcdTkyNjJcdTZlOGNcdTc2N2FcdTkxOTdcdTlhZWFcdTRmMTBcdTdmNzBc''@;'; + put 'put ''dTYyOWNcdTdiNGZcdTk1YTVcdTljZTlcdTU2N2FcdTU4NTlcdTg2ZTRcdTk2YmNcdTRmMzRcdTUyMjRcdTUzNGFcdTUzY2RcdTUzZGJcdTVlMDZcdTY0MmNcdTY1OTFcdTY3N2ZcdTZjM2VcdTZjNGVcdTcyNDhcdTcyYWZcdTczZWRcdTc1NTRcdTdlNDFcdTgyMmNcdTg1ZTlcdThjYTlcdTdi''@;'; + put 'put ''YzRcdTkxYzZcdTcxNjlcdTk4MTJcdTk4ZWZcdTYzM2RcdTY2NjlcdTc1NmFcdTc2ZTRcdTc4ZDBcdTg1NDNcdTg2ZWVcdTUzMmFcdTUzNTFcdTU0MjZcdTU5ODNcdTVlODdcdTVmN2NcdTYwYjJcdTYyNDlcdTYyNzlcdTYyYWJcdTY1OTBcdTZiZDRcdTZjY2NcdTc1YjJcdTc2YWVcdTc4OTFc''@;'; + put 'put ''dTc5ZDhcdTdkY2JcdTdmNzdcdTgwYTVcdTg4YWJcdThhYjlcdThjYmJcdTkwN2ZcdTk3NWVcdTk4ZGJcdTZhMGJcdTdjMzhcdTUwOTlcdTVjM2VcdTVmYWVcdTY3ODdcdTZiZDhcdTc0MzVcdTc3MDlcdTdmOGUiXSxbImM5YTEiLCJcdTlmM2JcdTY3Y2FcdTdhMTdcdTUzMzlcdTc1OGJcdTlh''@;'; + put 'put ''ZWRcdTVmNjZcdTgxOWRcdTgzZjFcdTgwOThcdTVmM2NcdTVmYzVcdTc1NjJcdTdiNDZcdTkwM2NcdTY4NjdcdTU5ZWJcdTVhOWJcdTdkMTBcdTc2N2VcdThiMmNcdTRmZjVcdTVmNmFcdTZhMTlcdTZjMzdcdTZmMDJcdTc0ZTJcdTc5NjhcdTg4NjhcdThhNTVcdThjNzlcdTVlZGZcdTYzY2Zc''@;'; + put 'put ''dTc1YzVcdTc5ZDJcdTgyZDdcdTkzMjhcdTkyZjJcdTg0OWNcdTg2ZWRcdTljMmRcdTU0YzFcdTVmNmNcdTY1OGNcdTZkNWNcdTcwMTVcdThjYTdcdThjZDNcdTk4M2JcdTY1NGZcdTc0ZjZcdTRlMGRcdTRlZDhcdTU3ZTBcdTU5MmJcdTVhNjZcdTViY2NcdTUxYThcdTVlMDNcdTVlOWNcdTYw''@;'; + put 'put ''MTZcdTYyNzZcdTY1NzdcdTY1YTdcdTY2NmVcdTZkNmVcdTcyMzZcdTdiMjZcdTgxNTBcdTgxOWFcdTgyOTlcdThiNWNcdThjYTBcdThjZTZcdThkNzRcdTk2MWNcdTk2NDRcdTRmYWVcdTY0YWJcdTZiNjZcdTgyMWVcdTg0NjFcdTg1NmFcdTkwZThcdTVjMDFcdTY5NTNcdTk4YThcdTg0N2Fc''@;'; + put 'put ''dTg1NTdcdTRmMGZcdTUyNmZcdTVmYTlcdTVlNDVcdTY3MGQiXSxbImNhYTEiLCJcdTc5OGZcdTgxNzlcdTg5MDdcdTg5ODZcdTZkZjVcdTVmMTdcdTYyNTVcdTZjYjhcdTRlY2ZcdTcyNjlcdTliOTJcdTUyMDZcdTU0M2JcdTU2NzRcdTU4YjNcdTYxYTRcdTYyNmVcdTcxMWFcdTU5NmVcdTdj''@;'; + put 'put ''ODlcdTdjZGVcdTdkMWJcdTk2ZjBcdTY1ODdcdTgwNWVcdTRlMTlcdTRmNzVcdTUxNzVcdTU4NDBcdTVlNjNcdTVlNzNcdTVmMGFcdTY3YzRcdTRlMjZcdTg1M2RcdTk1ODlcdTk2NWJcdTdjNzNcdTk4MDFcdTUwZmJcdTU4YzFcdTc2NTZcdTc4YTdcdTUyMjVcdTc3YTVcdTg1MTFcdTdiODZc''@;'; + put 'put ''dTUwNGZcdTU5MDlcdTcyNDdcdTdiYzdcdTdkZThcdThmYmFcdThmZDRcdTkwNGRcdTRmYmZcdTUyYzlcdTVhMjlcdTVmMDFcdTk3YWRcdTRmZGRcdTgyMTdcdTkyZWFcdTU3MDNcdTYzNTVcdTZiNjlcdTc1MmJcdTg4ZGNcdThmMTRcdTdhNDJcdTUyZGZcdTU4OTNcdTYxNTVcdTYyMGFcdTY2''@;'; + put 'put ''YWVcdTZiY2RcdTdjM2ZcdTgzZTlcdTUwMjNcdTRmZjhcdTUzMDVcdTU0NDZcdTU4MzFcdTU5NDlcdTViOWRcdTVjZjBcdTVjZWZcdTVkMjlcdTVlOTZcdTYyYjFcdTYzNjdcdTY1M2VcdTY1YjlcdTY3MGIiXSxbImNiYTEiLCJcdTZjZDVcdTZjZTFcdTcwZjlcdTc4MzJcdTdlMmJcdTgwZGVc''@;'; + put 'put ''dTgyYjNcdTg0MGNcdTg0ZWNcdTg3MDJcdTg5MTJcdThhMmFcdThjNGFcdTkwYTZcdTkyZDJcdTk4ZmRcdTljZjNcdTlkNmNcdTRlNGZcdTRlYTFcdTUwOGRcdTUyNTZcdTU3NGFcdTU5YThcdTVlM2RcdTVmZDhcdTVmZDlcdTYyM2ZcdTY2YjRcdTY3MWJcdTY3ZDBcdTY4ZDJcdTUxOTJcdTdk''@;'; + put 'put ''MjFcdTgwYWFcdTgxYThcdThiMDBcdThjOGNcdThjYmZcdTkyN2VcdTk2MzJcdTU0MjBcdTk4MmNcdTUzMTdcdTUwZDVcdTUzNWNcdTU4YThcdTY0YjJcdTY3MzRcdTcyNjdcdTc3NjZcdTdhNDZcdTkxZTZcdTUyYzNcdTZjYTFcdTZiODZcdTU4MDBcdTVlNGNcdTU5NTRcdTY3MmNcdTdmZmJc''@;'; + put 'put ''dTUxZTFcdTc2YzZcdTY0NjlcdTc4ZThcdTliNTRcdTllYmJcdTU3Y2JcdTU5YjlcdTY2MjdcdTY3OWFcdTZiY2VcdTU0ZTlcdTY5ZDlcdTVlNTVcdTgxOWNcdTY3OTVcdTliYWFcdTY3ZmVcdTljNTJcdTY4NWRcdTRlYTZcdTRmZTNcdTUzYzhcdTYyYjlcdTY3MmJcdTZjYWJcdThmYzRcdTRm''@;'; + put 'put ''YWRcdTdlNmRcdTllYmZcdTRlMDdcdTYxNjJcdTZlODAiXSxbImNjYTEiLCJcdTZmMmJcdTg1MTNcdTU0NzNcdTY3MmFcdTliNDVcdTVkZjNcdTdiOTVcdTVjYWNcdTViYzZcdTg3MWNcdTZlNGFcdTg0ZDFcdTdhMTRcdTgxMDhcdTU5OTlcdTdjOGRcdTZjMTFcdTc3MjBcdTUyZDlcdTU5MjJc''@;'; + put 'put ''dTcxMjFcdTcyNWZcdTc3ZGJcdTk3MjdcdTlkNjFcdTY5MGJcdTVhN2ZcdTVhMThcdTUxYTVcdTU0MGRcdTU0N2RcdTY2MGVcdTc2ZGZcdThmZjdcdTkyOThcdTljZjRcdTU5ZWFcdTcyNWRcdTZlYzVcdTUxNGRcdTY4YzlcdTdkYmZcdTdkZWNcdTk3NjJcdTllYmFcdTY0NzhcdTZhMjFcdTgz''@;'; + put 'put ''MDJcdTU5ODRcdTViNWZcdTZiZGJcdTczMWJcdTc2ZjJcdTdkYjJcdTgwMTdcdTg0OTlcdTUxMzJcdTY3MjhcdTllZDlcdTc2ZWVcdTY3NjJcdTUyZmZcdTk5MDVcdTVjMjRcdTYyM2JcdTdjN2VcdThjYjBcdTU1NGZcdTYwYjZcdTdkMGJcdTk1ODBcdTUzMDFcdTRlNWZcdTUxYjZcdTU5MWNc''@;'; + put 'put ''dTcyM2FcdTgwMzZcdTkxY2VcdTVmMjVcdTc3ZTJcdTUzODRcdTVmNzlcdTdkMDRcdTg1YWNcdThhMzNcdThlOGRcdTk3NTZcdTY3ZjNcdTg1YWVcdTk0NTNcdTYxMDlcdTYxMDhcdTZjYjlcdTc2NTIiXSxbImNkYTEiLCJcdThhZWRcdThmMzhcdTU1MmZcdTRmNTFcdTUxMmFcdTUyYzdcdTUz''@;'; + put 'put ''Y2JcdTViYTVcdTVlN2RcdTYwYTBcdTYxODJcdTYzZDZcdTY3MDlcdTY3ZGFcdTZlNjdcdTZkOGNcdTczMzZcdTczMzdcdTc1MzFcdTc5NTBcdTg4ZDVcdThhOThcdTkwNGFcdTkwOTFcdTkwZjVcdTk2YzRcdTg3OGRcdTU5MTVcdTRlODhcdTRmNTlcdTRlMGVcdThhODlcdThmM2ZcdTk4MTBc''@;'; + put 'put ''dTUwYWRcdTVlN2NcdTU5OTZcdTViYjlcdTVlYjhcdTYzZGFcdTYzZmFcdTY0YzFcdTY2ZGNcdTY5NGFcdTY5ZDhcdTZkMGJcdTZlYjZcdTcxOTRcdTc1MjhcdTdhYWZcdTdmOGFcdTgwMDBcdTg0NDlcdTg0YzlcdTg5ODFcdThiMjFcdThlMGFcdTkwNjVcdTk2N2RcdTk5MGFcdTYxN2VcdTYy''@;'; + put 'put ''OTFcdTZiMzJcdTZjODNcdTZkNzRcdTdmY2NcdTdmZmNcdTZkYzBcdTdmODVcdTg3YmFcdTg4ZjhcdTY3NjVcdTgzYjFcdTk4M2NcdTk2ZjdcdTZkMWJcdTdkNjFcdTg0M2RcdTkxNmFcdTRlNzFcdTUzNzVcdTVkNTBcdTZiMDRcdTZmZWJcdTg1Y2RcdTg2MmRcdTg5YTdcdTUyMjlcdTU0MGZc''@;'; + put 'put ''dTVjNjVcdTY3NGVcdTY4YThcdTc0MDZcdTc0ODMiXSxbImNlYTEiLCJcdTc1ZTJcdTg4Y2ZcdTg4ZTFcdTkxY2NcdTk2ZTJcdTk2NzhcdTVmOGJcdTczODdcdTdhY2JcdTg0NGVcdTYzYTBcdTc1NjVcdTUyODlcdTZkNDFcdTZlOWNcdTc0MDlcdTc1NTlcdTc4NmJcdTdjOTJcdTk2ODZcdTdh''@;'; + put 'put ''ZGNcdTlmOGRcdTRmYjZcdTYxNmVcdTY1YzVcdTg2NWNcdTRlODZcdTRlYWVcdTUwZGFcdTRlMjFcdTUxY2NcdTViZWVcdTY1OTlcdTY4ODFcdTZkYmNcdTczMWZcdTc2NDJcdTc3YWRcdTdhMWNcdTdjZTdcdTgyNmZcdThhZDJcdTkwN2NcdTkxY2ZcdTk2NzVcdTk4MThcdTUyOWJcdTdkZDFc''@;'; + put 'put ''dTUwMmJcdTUzOThcdTY3OTdcdTZkY2JcdTcxZDBcdTc0MzNcdTgxZThcdThmMmFcdTk2YTNcdTljNTdcdTllOWZcdTc0NjBcdTU4NDFcdTZkOTlcdTdkMmZcdTk4NWVcdTRlZTRcdTRmMzZcdTRmOGJcdTUxYjdcdTUyYjFcdTVkYmFcdTYwMWNcdTczYjJcdTc5M2NcdTgyZDNcdTkyMzRcdTk2''@;'; + put 'put ''YjdcdTk2ZjZcdTk3MGFcdTllOTdcdTlmNjJcdTY2YTZcdTZiNzRcdTUyMTdcdTUyYTNcdTcwYzhcdTg4YzJcdTVlYzlcdTYwNGJcdTYxOTBcdTZmMjNcdTcxNDlcdTdjM2VcdTdkZjRcdTgwNmYiXSxbImNmYTEiLCJcdTg0ZWVcdTkwMjNcdTkzMmNcdTU0NDJcdTliNmZcdTZhZDNcdTcwODlc''@;'; + put 'put ''dThjYzJcdThkZWZcdTk3MzJcdTUyYjRcdTVhNDFcdTVlY2FcdTVmMDRcdTY3MTdcdTY5N2NcdTY5OTRcdTZkNmFcdTZmMGZcdTcyNjJcdTcyZmNcdTdiZWRcdTgwMDFcdTgwN2VcdTg3NGJcdTkwY2VcdTUxNmRcdTllOTNcdTc5ODRcdTgwOGJcdTkzMzJcdThhZDZcdTUwMmRcdTU0OGNcdThh''@;'; + put 'put ''NzFcdTZiNmFcdThjYzRcdTgxMDdcdTYwZDFcdTY3YTBcdTlkZjJcdTRlOTlcdTRlOThcdTljMTBcdThhNmJcdTg1YzFcdTg1NjhcdTY5MDBcdTZlN2VcdTc4OTdcdTgxNTUiXSxbImQwYTEiLCJcdTVmMGNcdTRlMTBcdTRlMTVcdTRlMmFcdTRlMzFcdTRlMzZcdTRlM2NcdTRlM2ZcdTRlNDJc''@;'; + put 'put ''dTRlNTZcdTRlNThcdTRlODJcdTRlODVcdThjNmJcdTRlOGFcdTgyMTJcdTVmMGRcdTRlOGVcdTRlOWVcdTRlOWZcdTRlYTBcdTRlYTJcdTRlYjBcdTRlYjNcdTRlYjZcdTRlY2VcdTRlY2RcdTRlYzRcdTRlYzZcdTRlYzJcdTRlZDdcdTRlZGVcdTRlZWRcdTRlZGZcdTRlZjdcdTRmMDlcdTRm''@;'; + put 'put ''NWFcdTRmMzBcdTRmNWJcdTRmNWRcdTRmNTdcdTRmNDdcdTRmNzZcdTRmODhcdTRmOGZcdTRmOThcdTRmN2JcdTRmNjlcdTRmNzBcdTRmOTFcdTRmNmZcdTRmODZcdTRmOTZcdTUxMThcdTRmZDRcdTRmZGZcdTRmY2VcdTRmZDhcdTRmZGJcdTRmZDFcdTRmZGFcdTRmZDBcdTRmZTRcdTRmZTVc''@;'; + put 'put ''dTUwMWFcdTUwMjhcdTUwMTRcdTUwMmFcdTUwMjVcdTUwMDVcdTRmMWNcdTRmZjZcdTUwMjFcdTUwMjlcdTUwMmNcdTRmZmVcdTRmZWZcdTUwMTFcdTUwMDZcdTUwNDNcdTUwNDdcdTY3MDNcdTUwNTVcdTUwNTBcdTUwNDhcdTUwNWFcdTUwNTZcdTUwNmNcdTUwNzhcdTUwODBcdTUwOWFcdTUw''@;'; + put 'put ''ODVcdTUwYjRcdTUwYjIiXSxbImQxYTEiLCJcdTUwYzlcdTUwY2FcdTUwYjNcdTUwYzJcdTUwZDZcdTUwZGVcdTUwZTVcdTUwZWRcdTUwZTNcdTUwZWVcdTUwZjlcdTUwZjVcdTUxMDlcdTUxMDFcdTUxMDJcdTUxMTZcdTUxMTVcdTUxMTRcdTUxMWFcdTUxMjFcdTUxM2FcdTUxMzdcdTUxM2Nc''@;'; + put 'put ''dTUxM2JcdTUxM2ZcdTUxNDBcdTUxNTJcdTUxNGNcdTUxNTRcdTUxNjJcdTdhZjhcdTUxNjlcdTUxNmFcdTUxNmVcdTUxODBcdTUxODJcdTU2ZDhcdTUxOGNcdTUxODlcdTUxOGZcdTUxOTFcdTUxOTNcdTUxOTVcdTUxOTZcdTUxYTRcdTUxYTZcdTUxYTJcdTUxYTlcdTUxYWFcdTUxYWJcdTUx''@;'; + put 'put ''YjNcdTUxYjFcdTUxYjJcdTUxYjBcdTUxYjVcdTUxYmRcdTUxYzVcdTUxYzlcdTUxZGJcdTUxZTBcdTg2NTVcdTUxZTlcdTUxZWRcdTUxZjBcdTUxZjVcdTUxZmVcdTUyMDRcdTUyMGJcdTUyMTRcdTUyMGVcdTUyMjdcdTUyMmFcdTUyMmVcdTUyMzNcdTUyMzlcdTUyNGZcdTUyNDRcdTUyNGJc''@;'; + put 'put ''dTUyNGNcdTUyNWVcdTUyNTRcdTUyNmFcdTUyNzRcdTUyNjlcdTUyNzNcdTUyN2ZcdTUyN2RcdTUyOGRcdTUyOTRcdTUyOTJcdTUyNzFcdTUyODhcdTUyOTFcdThmYTgiXSxbImQyYTEiLCJcdThmYTdcdTUyYWNcdTUyYWRcdTUyYmNcdTUyYjVcdTUyYzFcdTUyY2RcdTUyZDdcdTUyZGVcdTUy''@;'; + put 'put ''ZTNcdTUyZTZcdTk4ZWRcdTUyZTBcdTUyZjNcdTUyZjVcdTUyZjhcdTUyZjlcdTUzMDZcdTUzMDhcdTc1MzhcdTUzMGRcdTUzMTBcdTUzMGZcdTUzMTVcdTUzMWFcdTUzMjNcdTUzMmZcdTUzMzFcdTUzMzNcdTUzMzhcdTUzNDBcdTUzNDZcdTUzNDVcdTRlMTdcdTUzNDlcdTUzNGRcdTUxZDZc''@;'; + put 'put ''dTUzNWVcdTUzNjlcdTUzNmVcdTU5MThcdTUzN2JcdTUzNzdcdTUzODJcdTUzOTZcdTUzYTBcdTUzYTZcdTUzYTVcdTUzYWVcdTUzYjBcdTUzYjZcdTUzYzNcdTdjMTJcdTk2ZDlcdTUzZGZcdTY2ZmNcdTcxZWVcdTUzZWVcdTUzZThcdTUzZWRcdTUzZmFcdTU0MDFcdTU0M2RcdTU0NDBcdTU0''@;'; + put 'put ''MmNcdTU0MmRcdTU0M2NcdTU0MmVcdTU0MzZcdTU0MjlcdTU0MWRcdTU0NGVcdTU0OGZcdTU0NzVcdTU0OGVcdTU0NWZcdTU0NzFcdTU0NzdcdTU0NzBcdTU0OTJcdTU0N2JcdTU0ODBcdTU0NzZcdTU0ODRcdTU0OTBcdTU0ODZcdTU0YzdcdTU0YTJcdTU0YjhcdTU0YTVcdTU0YWNcdTU0YzRc''@;'; + put 'put ''dTU0YzhcdTU0YTgiXSxbImQzYTEiLCJcdTU0YWJcdTU0YzJcdTU0YTRcdTU0YmVcdTU0YmNcdTU0ZDhcdTU0ZTVcdTU0ZTZcdTU1MGZcdTU1MTRcdTU0ZmRcdTU0ZWVcdTU0ZWRcdTU0ZmFcdTU0ZTJcdTU1MzlcdTU1NDBcdTU1NjNcdTU1NGNcdTU1MmVcdTU1NWNcdTU1NDVcdTU1NTZcdTU1''@;'; + put 'put ''NTdcdTU1MzhcdTU1MzNcdTU1NWRcdTU1OTlcdTU1ODBcdTU0YWZcdTU1OGFcdTU1OWZcdTU1N2JcdTU1N2VcdTU1OThcdTU1OWVcdTU1YWVcdTU1N2NcdTU1ODNcdTU1YTlcdTU1ODdcdTU1YThcdTU1ZGFcdTU1YzVcdTU1ZGZcdTU1YzRcdTU1ZGNcdTU1ZTRcdTU1ZDRcdTU2MTRcdTU1Zjdc''@;'; + put 'put ''dTU2MTZcdTU1ZmVcdTU1ZmRcdTU2MWJcdTU1ZjlcdTU2NGVcdTU2NTBcdTcxZGZcdTU2MzRcdTU2MzZcdTU2MzJcdTU2MzhcdTU2NmJcdTU2NjRcdTU2MmZcdTU2NmNcdTU2NmFcdTU2ODZcdTU2ODBcdTU2OGFcdTU2YTBcdTU2OTRcdTU2OGZcdTU2YTVcdTU2YWVcdTU2YjZcdTU2YjRcdTU2''@;'; + put 'put ''YzJcdTU2YmNcdTU2YzFcdTU2YzNcdTU2YzBcdTU2YzhcdTU2Y2VcdTU2ZDFcdTU2ZDNcdTU2ZDdcdTU2ZWVcdTU2ZjlcdTU3MDBcdTU2ZmZcdTU3MDRcdTU3MDkiXSxbImQ0YTEiLCJcdTU3MDhcdTU3MGJcdTU3MGRcdTU3MTNcdTU3MThcdTU3MTZcdTU1YzdcdTU3MWNcdTU3MjZcdTU3Mzdc''@;'; + put 'put ''dTU3MzhcdTU3NGVcdTU3M2JcdTU3NDBcdTU3NGZcdTU3NjlcdTU3YzBcdTU3ODhcdTU3NjFcdTU3N2ZcdTU3ODlcdTU3OTNcdTU3YTBcdTU3YjNcdTU3YTRcdTU3YWFcdTU3YjBcdTU3YzNcdTU3YzZcdTU3ZDRcdTU3ZDJcdTU3ZDNcdTU4MGFcdTU3ZDZcdTU3ZTNcdTU4MGJcdTU4MTlcdTU4''@;'; + put 'put ''MWRcdTU4NzJcdTU4MjFcdTU4NjJcdTU4NGJcdTU4NzBcdTZiYzBcdTU4NTJcdTU4M2RcdTU4NzlcdTU4ODVcdTU4YjlcdTU4OWZcdTU4YWJcdTU4YmFcdTU4ZGVcdTU4YmJcdTU4YjhcdTU4YWVcdTU4YzVcdTU4ZDNcdTU4ZDFcdTU4ZDdcdTU4ZDlcdTU4ZDhcdTU4ZTVcdTU4ZGNcdTU4ZTRc''@;'; + put 'put ''dTU4ZGZcdTU4ZWZcdTU4ZmFcdTU4ZjlcdTU4ZmJcdTU4ZmNcdTU4ZmRcdTU5MDJcdTU5MGFcdTU5MTBcdTU5MWJcdTY4YTZcdTU5MjVcdTU5MmNcdTU5MmRcdTU5MzJcdTU5MzhcdTU5M2VcdTdhZDJcdTU5NTVcdTU5NTBcdTU5NGVcdTU5NWFcdTU5NThcdTU5NjJcdTU5NjBcdTU5NjdcdTU5''@;'; + put 'put ''NmNcdTU5NjkiXSxbImQ1YTEiLCJcdTU5NzhcdTU5ODFcdTU5OWRcdTRmNWVcdTRmYWJcdTU5YTNcdTU5YjJcdTU5YzZcdTU5ZThcdTU5ZGNcdTU5OGRcdTU5ZDlcdTU5ZGFcdTVhMjVcdTVhMWZcdTVhMTFcdTVhMWNcdTVhMDlcdTVhMWFcdTVhNDBcdTVhNmNcdTVhNDlcdTVhMzVcdTVhMzZc''@;'; + put 'put ''dTVhNjJcdTVhNmFcdTVhOWFcdTVhYmNcdTVhYmVcdTVhY2JcdTVhYzJcdTVhYmRcdTVhZTNcdTVhZDdcdTVhZTZcdTVhZTlcdTVhZDZcdTVhZmFcdTVhZmJcdTViMGNcdTViMGJcdTViMTZcdTViMzJcdTVhZDBcdTViMmFcdTViMzZcdTViM2VcdTViNDNcdTViNDVcdTViNDBcdTViNTFcdTVi''@;'; + put 'put ''NTVcdTViNWFcdTViNWJcdTViNjVcdTViNjlcdTViNzBcdTViNzNcdTViNzVcdTViNzhcdTY1ODhcdTViN2FcdTViODBcdTViODNcdTViYTZcdTViYjhcdTViYzNcdTViYzdcdTViYzlcdTViZDRcdTViZDBcdTViZTRcdTViZTZcdTViZTJcdTViZGVcdTViZTVcdTViZWJcdTViZjBcdTViZjZc''@;'; + put 'put ''dTViZjNcdTVjMDVcdTVjMDdcdTVjMDhcdTVjMGRcdTVjMTNcdTVjMjBcdTVjMjJcdTVjMjhcdTVjMzhcdTVjMzlcdTVjNDFcdTVjNDZcdTVjNGVcdTVjNTMiXSxbImQ2YTEiLCJcdTVjNTBcdTVjNGZcdTViNzFcdTVjNmNcdTVjNmVcdTRlNjJcdTVjNzZcdTVjNzlcdTVjOGNcdTVjOTFcdTVj''@;'; + put 'put ''OTRcdTU5OWJcdTVjYWJcdTVjYmJcdTVjYjZcdTVjYmNcdTVjYjdcdTVjYzVcdTVjYmVcdTVjYzdcdTVjZDlcdTVjZTlcdTVjZmRcdTVjZmFcdTVjZWRcdTVkOGNcdTVjZWFcdTVkMGJcdTVkMTVcdTVkMTdcdTVkNWNcdTVkMWZcdTVkMWJcdTVkMTFcdTVkMTRcdTVkMjJcdTVkMWFcdTVkMTlc''@;'; + put 'put ''dTVkMThcdTVkNGNcdTVkNTJcdTVkNGVcdTVkNGJcdTVkNmNcdTVkNzNcdTVkNzZcdTVkODdcdTVkODRcdTVkODJcdTVkYTJcdTVkOWRcdTVkYWNcdTVkYWVcdTVkYmRcdTVkOTBcdTVkYjdcdTVkYmNcdTVkYzlcdTVkY2RcdTVkZDNcdTVkZDJcdTVkZDZcdTVkZGJcdTVkZWJcdTVkZjJcdTVk''@;'; + put 'put ''ZjVcdTVlMGJcdTVlMWFcdTVlMTlcdTVlMTFcdTVlMWJcdTVlMzZcdTVlMzdcdTVlNDRcdTVlNDNcdTVlNDBcdTVlNGVcdTVlNTdcdTVlNTRcdTVlNWZcdTVlNjJcdTVlNjRcdTVlNDdcdTVlNzVcdTVlNzZcdTVlN2FcdTllYmNcdTVlN2ZcdTVlYTBcdTVlYzFcdTVlYzJcdTVlYzhcdTVlZDBc''@;'; + put 'put ''dTVlY2YiXSxbImQ3YTEiLCJcdTVlZDZcdTVlZTNcdTVlZGRcdTVlZGFcdTVlZGJcdTVlZTJcdTVlZTFcdTVlZThcdTVlZTlcdTVlZWNcdTVlZjFcdTVlZjNcdTVlZjBcdTVlZjRcdTVlZjhcdTVlZmVcdTVmMDNcdTVmMDlcdTVmNWRcdTVmNWNcdTVmMGJcdTVmMTFcdTVmMTZcdTVmMjlcdTVm''@;'; + put 'put ''MmRcdTVmMzhcdTVmNDFcdTVmNDhcdTVmNGNcdTVmNGVcdTVmMmZcdTVmNTFcdTVmNTZcdTVmNTdcdTVmNTlcdTVmNjFcdTVmNmRcdTVmNzNcdTVmNzdcdTVmODNcdTVmODJcdTVmN2ZcdTVmOGFcdTVmODhcdTVmOTFcdTVmODdcdTVmOWVcdTVmOTlcdTVmOThcdTVmYTBcdTVmYThcdTVmYWRc''@;'; + put 'put ''dTVmYmNcdTVmZDZcdTVmZmJcdTVmZTRcdTVmZjhcdTVmZjFcdTVmZGRcdTYwYjNcdTVmZmZcdTYwMjFcdTYwNjBcdTYwMTlcdTYwMTBcdTYwMjlcdTYwMGVcdTYwMzFcdTYwMWJcdTYwMTVcdTYwMmJcdTYwMjZcdTYwMGZcdTYwM2FcdTYwNWFcdTYwNDFcdTYwNmFcdTYwNzdcdTYwNWZcdTYw''@;'; + put 'put ''NGFcdTYwNDZcdTYwNGRcdTYwNjNcdTYwNDNcdTYwNjRcdTYwNDJcdTYwNmNcdTYwNmJcdTYwNTlcdTYwODFcdTYwOGRcdTYwZTdcdTYwODNcdTYwOWEiXSxbImQ4YTEiLCJcdTYwODRcdTYwOWJcdTYwOTZcdTYwOTdcdTYwOTJcdTYwYTdcdTYwOGJcdTYwZTFcdTYwYjhcdTYwZTBcdTYwZDNc''@;'; + put 'put ''dTYwYjRcdTVmZjBcdTYwYmRcdTYwYzZcdTYwYjVcdTYwZDhcdTYxNGRcdTYxMTVcdTYxMDZcdTYwZjZcdTYwZjdcdTYxMDBcdTYwZjRcdTYwZmFcdTYxMDNcdTYxMjFcdTYwZmJcdTYwZjFcdTYxMGRcdTYxMGVcdTYxNDdcdTYxM2VcdTYxMjhcdTYxMjdcdTYxNGFcdTYxM2ZcdTYxM2NcdTYx''@;'; + put 'put ''MmNcdTYxMzRcdTYxM2RcdTYxNDJcdTYxNDRcdTYxNzNcdTYxNzdcdTYxNThcdTYxNTlcdTYxNWFcdTYxNmJcdTYxNzRcdTYxNmZcdTYxNjVcdTYxNzFcdTYxNWZcdTYxNWRcdTYxNTNcdTYxNzVcdTYxOTlcdTYxOTZcdTYxODdcdTYxYWNcdTYxOTRcdTYxOWFcdTYxOGFcdTYxOTFcdTYxYWJc''@;'; + put 'put ''dTYxYWVcdTYxY2NcdTYxY2FcdTYxYzlcdTYxZjdcdTYxYzhcdTYxYzNcdTYxYzZcdTYxYmFcdTYxY2JcdTdmNzlcdTYxY2RcdTYxZTZcdTYxZTNcdTYxZjZcdTYxZmFcdTYxZjRcdTYxZmZcdTYxZmRcdTYxZmNcdTYxZmVcdTYyMDBcdTYyMDhcdTYyMDlcdTYyMGRcdTYyMGNcdTYyMTRcdTYy''@;'; + put 'put ''MWIiXSxbImQ5YTEiLCJcdTYyMWVcdTYyMjFcdTYyMmFcdTYyMmVcdTYyMzBcdTYyMzJcdTYyMzNcdTYyNDFcdTYyNGVcdTYyNWVcdTYyNjNcdTYyNWJcdTYyNjBcdTYyNjhcdTYyN2NcdTYyODJcdTYyODlcdTYyN2VcdTYyOTJcdTYyOTNcdTYyOTZcdTYyZDRcdTYyODNcdTYyOTRcdTYyZDdc''@;'; + put 'put ''dTYyZDFcdTYyYmJcdTYyY2ZcdTYyZmZcdTYyYzZcdTY0ZDRcdTYyYzhcdTYyZGNcdTYyY2NcdTYyY2FcdTYyYzJcdTYyYzdcdTYyOWJcdTYyYzlcdTYzMGNcdTYyZWVcdTYyZjFcdTYzMjdcdTYzMDJcdTYzMDhcdTYyZWZcdTYyZjVcdTYzNTBcdTYzM2VcdTYzNGRcdTY0MWNcdTYzNGZcdTYz''@;'; + put 'put ''OTZcdTYzOGVcdTYzODBcdTYzYWJcdTYzNzZcdTYzYTNcdTYzOGZcdTYzODlcdTYzOWZcdTYzYjVcdTYzNmJcdTYzNjlcdTYzYmVcdTYzZTlcdTYzYzBcdTYzYzZcdTYzZTNcdTYzYzlcdTYzZDJcdTYzZjZcdTYzYzRcdTY0MTZcdTY0MzRcdTY0MDZcdTY0MTNcdTY0MjZcdTY0MzZcdTY1MWRc''@;'; + put 'put ''dTY0MTdcdTY0MjhcdTY0MGZcdTY0NjdcdTY0NmZcdTY0NzZcdTY0NGVcdTY1MmFcdTY0OTVcdTY0OTNcdTY0YTVcdTY0YTlcdTY0ODhcdTY0YmMiXSxbImRhYTEiLCJcdTY0ZGFcdTY0ZDJcdTY0YzVcdTY0YzdcdTY0YmJcdTY0ZDhcdTY0YzJcdTY0ZjFcdTY0ZTdcdTgyMDlcdTY0ZTBcdTY0''@;'; + put 'put ''ZTFcdTYyYWNcdTY0ZTNcdTY0ZWZcdTY1MmNcdTY0ZjZcdTY0ZjRcdTY0ZjJcdTY0ZmFcdTY1MDBcdTY0ZmRcdTY1MThcdTY1MWNcdTY1MDVcdTY1MjRcdTY1MjNcdTY1MmJcdTY1MzRcdTY1MzVcdTY1MzdcdTY1MzZcdTY1MzhcdTc1NGJcdTY1NDhcdTY1NTZcdTY1NTVcdTY1NGRcdTY1NThc''@;'; + put 'put ''dTY1NWVcdTY1NWRcdTY1NzJcdTY1NzhcdTY1ODJcdTY1ODNcdThiOGFcdTY1OWJcdTY1OWZcdTY1YWJcdTY1YjdcdTY1YzNcdTY1YzZcdTY1YzFcdTY1YzRcdTY1Y2NcdTY1ZDJcdTY1ZGJcdTY1ZDlcdTY1ZTBcdTY1ZTFcdTY1ZjFcdTY3NzJcdTY2MGFcdTY2MDNcdTY1ZmJcdTY3NzNcdTY2''@;'; + put 'put ''MzVcdTY2MzZcdTY2MzRcdTY2MWNcdTY2NGZcdTY2NDRcdTY2NDlcdTY2NDFcdTY2NWVcdTY2NWRcdTY2NjRcdTY2NjdcdTY2NjhcdTY2NWZcdTY2NjJcdTY2NzBcdTY2ODNcdTY2ODhcdTY2OGVcdTY2ODlcdTY2ODRcdTY2OThcdTY2OWRcdTY2YzFcdTY2YjlcdTY2YzlcdTY2YmVcdTY2YmMi''@;'; + put 'put ''XSxbImRiYTEiLCJcdTY2YzRcdTY2YjhcdTY2ZDZcdTY2ZGFcdTY2ZTBcdTY2M2ZcdTY2ZTZcdTY2ZTlcdTY2ZjBcdTY2ZjVcdTY2ZjdcdTY3MGZcdTY3MTZcdTY3MWVcdTY3MjZcdTY3MjdcdTk3MzhcdTY3MmVcdTY3M2ZcdTY3MzZcdTY3NDFcdTY3MzhcdTY3MzdcdTY3NDZcdTY3NWVcdTY3''@;'; + put 'put ''NjBcdTY3NTlcdTY3NjNcdTY3NjRcdTY3ODlcdTY3NzBcdTY3YTlcdTY3N2NcdTY3NmFcdTY3OGNcdTY3OGJcdTY3YTZcdTY3YTFcdTY3ODVcdTY3YjdcdTY3ZWZcdTY3YjRcdTY3ZWNcdTY3YjNcdTY3ZTlcdTY3YjhcdTY3ZTRcdTY3ZGVcdTY3ZGRcdTY3ZTJcdTY3ZWVcdTY3YjlcdTY3Y2Vc''@;'; + put 'put ''dTY3YzZcdTY3ZTdcdTZhOWNcdTY4MWVcdTY4NDZcdTY4MjlcdTY4NDBcdTY4NGRcdTY4MzJcdTY4NGVcdTY4YjNcdTY4MmJcdTY4NTlcdTY4NjNcdTY4NzdcdTY4N2ZcdTY4OWZcdTY4OGZcdTY4YWRcdTY4OTRcdTY4OWRcdTY4OWJcdTY4ODNcdTZhYWVcdTY4YjlcdTY4NzRcdTY4YjVcdTY4''@;'; + put 'put ''YTBcdTY4YmFcdTY5MGZcdTY4OGRcdTY4N2VcdTY5MDFcdTY4Y2FcdTY5MDhcdTY4ZDhcdTY5MjJcdTY5MjZcdTY4ZTFcdTY5MGNcdTY4Y2QiXSxbImRjYTEiLCJcdTY4ZDRcdTY4ZTdcdTY4ZDVcdTY5MzZcdTY5MTJcdTY5MDRcdTY4ZDdcdTY4ZTNcdTY5MjVcdTY4ZjlcdTY4ZTBcdTY4ZWZc''@;'; + put 'put ''dTY5MjhcdTY5MmFcdTY5MWFcdTY5MjNcdTY5MjFcdTY4YzZcdTY5NzlcdTY5NzdcdTY5NWNcdTY5NzhcdTY5NmJcdTY5NTRcdTY5N2VcdTY5NmVcdTY5MzlcdTY5NzRcdTY5M2RcdTY5NTlcdTY5MzBcdTY5NjFcdTY5NWVcdTY5NWRcdTY5ODFcdTY5NmFcdTY5YjJcdTY5YWVcdTY5ZDBcdTY5''@;'; + put 'put ''YmZcdTY5YzFcdTY5ZDNcdTY5YmVcdTY5Y2VcdTViZThcdTY5Y2FcdTY5ZGRcdTY5YmJcdTY5YzNcdTY5YTdcdTZhMmVcdTY5OTFcdTY5YTBcdTY5OWNcdTY5OTVcdTY5YjRcdTY5ZGVcdTY5ZThcdTZhMDJcdTZhMWJcdTY5ZmZcdTZiMGFcdTY5ZjlcdTY5ZjJcdTY5ZTdcdTZhMDVcdTY5YjFc''@;'; + put 'put ''dTZhMWVcdTY5ZWRcdTZhMTRcdTY5ZWJcdTZhMGFcdTZhMTJcdTZhYzFcdTZhMjNcdTZhMTNcdTZhNDRcdTZhMGNcdTZhNzJcdTZhMzZcdTZhNzhcdTZhNDdcdTZhNjJcdTZhNTlcdTZhNjZcdTZhNDhcdTZhMzhcdTZhMjJcdTZhOTBcdTZhOGRcdTZhYTBcdTZhODRcdTZhYTJcdTZhYTMiXSxb''@;'; + put 'put ''ImRkYTEiLCJcdTZhOTdcdTg2MTdcdTZhYmJcdTZhYzNcdTZhYzJcdTZhYjhcdTZhYjNcdTZhYWNcdTZhZGVcdTZhZDFcdTZhZGZcdTZhYWFcdTZhZGFcdTZhZWFcdTZhZmJcdTZiMDVcdTg2MTZcdTZhZmFcdTZiMTJcdTZiMTZcdTliMzFcdTZiMWZcdTZiMzhcdTZiMzdcdTc2ZGNcdTZiMzlc''@;'; + put 'put ''dTk4ZWVcdTZiNDdcdTZiNDNcdTZiNDlcdTZiNTBcdTZiNTlcdTZiNTRcdTZiNWJcdTZiNWZcdTZiNjFcdTZiNzhcdTZiNzlcdTZiN2ZcdTZiODBcdTZiODRcdTZiODNcdTZiOGRcdTZiOThcdTZiOTVcdTZiOWVcdTZiYTRcdTZiYWFcdTZiYWJcdTZiYWZcdTZiYjJcdTZiYjFcdTZiYjNcdTZi''@;'; + put 'put ''YjdcdTZiYmNcdTZiYzZcdTZiY2JcdTZiZDNcdTZiZGZcdTZiZWNcdTZiZWJcdTZiZjNcdTZiZWZcdTllYmVcdTZjMDhcdTZjMTNcdTZjMTRcdTZjMWJcdTZjMjRcdTZjMjNcdTZjNWVcdTZjNTVcdTZjNjJcdTZjNmFcdTZjODJcdTZjOGRcdTZjOWFcdTZjODFcdTZjOWJcdTZjN2VcdTZjNjhc''@;'; + put 'put ''dTZjNzNcdTZjOTJcdTZjOTBcdTZjYzRcdTZjZjFcdTZjZDNcdTZjYmRcdTZjZDdcdTZjYzVcdTZjZGRcdTZjYWVcdTZjYjFcdTZjYmUiXSxbImRlYTEiLCJcdTZjYmFcdTZjZGJcdTZjZWZcdTZjZDlcdTZjZWFcdTZkMWZcdTg4NGRcdTZkMzZcdTZkMmJcdTZkM2RcdTZkMzhcdTZkMTlcdTZk''@;'; + put 'put ''MzVcdTZkMzNcdTZkMTJcdTZkMGNcdTZkNjNcdTZkOTNcdTZkNjRcdTZkNWFcdTZkNzlcdTZkNTlcdTZkOGVcdTZkOTVcdTZmZTRcdTZkODVcdTZkZjlcdTZlMTVcdTZlMGFcdTZkYjVcdTZkYzdcdTZkZTZcdTZkYjhcdTZkYzZcdTZkZWNcdTZkZGVcdTZkY2NcdTZkZThcdTZkZDJcdTZkYzVc''@;'; + put 'put ''dTZkZmFcdTZkZDlcdTZkZTRcdTZkZDVcdTZkZWFcdTZkZWVcdTZlMmRcdTZlNmVcdTZlMmVcdTZlMTlcdTZlNzJcdTZlNWZcdTZlM2VcdTZlMjNcdTZlNmJcdTZlMmJcdTZlNzZcdTZlNGRcdTZlMWZcdTZlNDNcdTZlM2FcdTZlNGVcdTZlMjRcdTZlZmZcdTZlMWRcdTZlMzhcdTZlODJcdTZl''@;'; + put 'put ''YWFcdTZlOThcdTZlYzlcdTZlYjdcdTZlZDNcdTZlYmRcdTZlYWZcdTZlYzRcdTZlYjJcdTZlZDRcdTZlZDVcdTZlOGZcdTZlYTVcdTZlYzJcdTZlOWZcdTZmNDFcdTZmMTFcdTcwNGNcdTZlZWNcdTZlZjhcdTZlZmVcdTZmM2ZcdTZlZjJcdTZmMzFcdTZlZWZcdTZmMzJcdTZlY2MiXSxbImRm''@;'; + put 'put ''YTEiLCJcdTZmM2VcdTZmMTNcdTZlZjdcdTZmODZcdTZmN2FcdTZmNzhcdTZmODFcdTZmODBcdTZmNmZcdTZmNWJcdTZmZjNcdTZmNmRcdTZmODJcdTZmN2NcdTZmNThcdTZmOGVcdTZmOTFcdTZmYzJcdTZmNjZcdTZmYjNcdTZmYTNcdTZmYTFcdTZmYTRcdTZmYjlcdTZmYzZcdTZmYWFcdTZm''@;'; + put 'put ''ZGZcdTZmZDVcdTZmZWNcdTZmZDRcdTZmZDhcdTZmZjFcdTZmZWVcdTZmZGJcdTcwMDlcdTcwMGJcdTZmZmFcdTcwMTFcdTcwMDFcdTcwMGZcdTZmZmVcdTcwMWJcdTcwMWFcdTZmNzRcdTcwMWRcdTcwMThcdTcwMWZcdTcwMzBcdTcwM2VcdTcwMzJcdTcwNTFcdTcwNjNcdTcwOTlcdTcwOTJc''@;'; + put 'put ''dTcwYWZcdTcwZjFcdTcwYWNcdTcwYjhcdTcwYjNcdTcwYWVcdTcwZGZcdTcwY2JcdTcwZGRcdTcwZDlcdTcxMDlcdTcwZmRcdTcxMWNcdTcxMTlcdTcxNjVcdTcxNTVcdTcxODhcdTcxNjZcdTcxNjJcdTcxNGNcdTcxNTZcdTcxNmNcdTcxOGZcdTcxZmJcdTcxODRcdTcxOTVcdTcxYThcdTcx''@;'; + put 'put ''YWNcdTcxZDdcdTcxYjlcdTcxYmVcdTcxZDJcdTcxYzlcdTcxZDRcdTcxY2VcdTcxZTBcdTcxZWNcdTcxZTdcdTcxZjVcdTcxZmMiXSxbImUwYTEiLCJcdTcxZjlcdTcxZmZcdTcyMGRcdTcyMTBcdTcyMWJcdTcyMjhcdTcyMmRcdTcyMmNcdTcyMzBcdTcyMzJcdTcyM2JcdTcyM2NcdTcyM2Zc''@;'; + put 'put ''dTcyNDBcdTcyNDZcdTcyNGJcdTcyNThcdTcyNzRcdTcyN2VcdTcyODJcdTcyODFcdTcyODdcdTcyOTJcdTcyOTZcdTcyYTJcdTcyYTdcdTcyYjlcdTcyYjJcdTcyYzNcdTcyYzZcdTcyYzRcdTcyY2VcdTcyZDJcdTcyZTJcdTcyZTBcdTcyZTFcdTcyZjlcdTcyZjdcdTUwMGZcdTczMTdcdTcz''@;'; + put 'put ''MGFcdTczMWNcdTczMTZcdTczMWRcdTczMzRcdTczMmZcdTczMjlcdTczMjVcdTczM2VcdTczNGVcdTczNGZcdTllZDhcdTczNTdcdTczNmFcdTczNjhcdTczNzBcdTczNzhcdTczNzVcdTczN2JcdTczN2FcdTczYzhcdTczYjNcdTczY2VcdTczYmJcdTczYzBcdTczZTVcdTczZWVcdTczZGVc''@;'; + put 'put ''dTc0YTJcdTc0MDVcdTc0NmZcdTc0MjVcdTczZjhcdTc0MzJcdTc0M2FcdTc0NTVcdTc0M2ZcdTc0NWZcdTc0NTlcdTc0NDFcdTc0NWNcdTc0NjlcdTc0NzBcdTc0NjNcdTc0NmFcdTc0NzZcdTc0N2VcdTc0OGJcdTc0OWVcdTc0YTdcdTc0Y2FcdTc0Y2ZcdTc0ZDRcdTczZjEiXSxbImUxYTEi''@;'; + put 'put ''LCJcdTc0ZTBcdTc0ZTNcdTc0ZTdcdTc0ZTlcdTc0ZWVcdTc0ZjJcdTc0ZjBcdTc0ZjFcdTc0ZjhcdTc0ZjdcdTc1MDRcdTc1MDNcdTc1MDVcdTc1MGNcdTc1MGVcdTc1MGRcdTc1MTVcdTc1MTNcdTc1MWVcdTc1MjZcdTc1MmNcdTc1M2NcdTc1NDRcdTc1NGRcdTc1NGFcdTc1NDlcdTc1NWJc''@;'; + put 'put ''dTc1NDZcdTc1NWFcdTc1NjlcdTc1NjRcdTc1NjdcdTc1NmJcdTc1NmRcdTc1NzhcdTc1NzZcdTc1ODZcdTc1ODdcdTc1NzRcdTc1OGFcdTc1ODlcdTc1ODJcdTc1OTRcdTc1OWFcdTc1OWRcdTc1YTVcdTc1YTNcdTc1YzJcdTc1YjNcdTc1YzNcdTc1YjVcdTc1YmRcdTc1YjhcdTc1YmNcdTc1''@;'; + put 'put ''YjFcdTc1Y2RcdTc1Y2FcdTc1ZDJcdTc1ZDlcdTc1ZTNcdTc1ZGVcdTc1ZmVcdTc1ZmZcdTc1ZmNcdTc2MDFcdTc1ZjBcdTc1ZmFcdTc1ZjJcdTc1ZjNcdTc2MGJcdTc2MGRcdTc2MDlcdTc2MWZcdTc2MjdcdTc2MjBcdTc2MjFcdTc2MjJcdTc2MjRcdTc2MzRcdTc2MzBcdTc2M2JcdTc2NDdc''@;'; + put 'put ''dTc2NDhcdTc2NDZcdTc2NWNcdTc2NThcdTc2NjFcdTc2NjJcdTc2NjhcdTc2NjlcdTc2NmFcdTc2NjdcdTc2NmNcdTc2NzAiXSxbImUyYTEiLCJcdTc2NzJcdTc2NzZcdTc2NzhcdTc2N2NcdTc2ODBcdTc2ODNcdTc2ODhcdTc2OGJcdTc2OGVcdTc2OTZcdTc2OTNcdTc2OTlcdTc2OWFcdTc2''@;'; + put 'put ''YjBcdTc2YjRcdTc2YjhcdTc2YjlcdTc2YmFcdTc2YzJcdTc2Y2RcdTc2ZDZcdTc2ZDJcdTc2ZGVcdTc2ZTFcdTc2ZTVcdTc2ZTdcdTc2ZWFcdTg2MmZcdTc2ZmJcdTc3MDhcdTc3MDdcdTc3MDRcdTc3MjlcdTc3MjRcdTc3MWVcdTc3MjVcdTc3MjZcdTc3MWJcdTc3MzdcdTc3MzhcdTc3NDdc''@;'; + put 'put ''dTc3NWFcdTc3NjhcdTc3NmJcdTc3NWJcdTc3NjVcdTc3N2ZcdTc3N2VcdTc3NzlcdTc3OGVcdTc3OGJcdTc3OTFcdTc3YTBcdTc3OWVcdTc3YjBcdTc3YjZcdTc3YjlcdTc3YmZcdTc3YmNcdTc3YmRcdTc3YmJcdTc3YzdcdTc3Y2RcdTc3ZDdcdTc3ZGFcdTc3ZGNcdTc3ZTNcdTc3ZWVcdTc3''@;'; + put 'put ''ZmNcdTc4MGNcdTc4MTJcdTc5MjZcdTc4MjBcdTc5MmFcdTc4NDVcdTc4OGVcdTc4NzRcdTc4ODZcdTc4N2NcdTc4OWFcdTc4OGNcdTc4YTNcdTc4YjVcdTc4YWFcdTc4YWZcdTc4ZDFcdTc4YzZcdTc4Y2JcdTc4ZDRcdTc4YmVcdTc4YmNcdTc4YzVcdTc4Y2FcdTc4ZWMiXSxbImUzYTEiLCJc''@;'; + put 'put ''dTc4ZTdcdTc4ZGFcdTc4ZmRcdTc4ZjRcdTc5MDdcdTc5MTJcdTc5MTFcdTc5MTlcdTc5MmNcdTc5MmJcdTc5NDBcdTc5NjBcdTc5NTdcdTc5NWZcdTc5NWFcdTc5NTVcdTc5NTNcdTc5N2FcdTc5N2ZcdTc5OGFcdTc5OWRcdTc5YTdcdTlmNGJcdTc5YWFcdTc5YWVcdTc5YjNcdTc5YjlcdTc5''@;'; + put 'put ''YmFcdTc5YzlcdTc5ZDVcdTc5ZTdcdTc5ZWNcdTc5ZTFcdTc5ZTNcdTdhMDhcdTdhMGRcdTdhMThcdTdhMTlcdTdhMjBcdTdhMWZcdTc5ODBcdTdhMzFcdTdhM2JcdTdhM2VcdTdhMzdcdTdhNDNcdTdhNTdcdTdhNDlcdTdhNjFcdTdhNjJcdTdhNjlcdTlmOWRcdTdhNzBcdTdhNzlcdTdhN2Rc''@;'; + put 'put ''dTdhODhcdTdhOTdcdTdhOTVcdTdhOThcdTdhOTZcdTdhYTlcdTdhYzhcdTdhYjBcdTdhYjZcdTdhYzVcdTdhYzRcdTdhYmZcdTkwODNcdTdhYzdcdTdhY2FcdTdhY2RcdTdhY2ZcdTdhZDVcdTdhZDNcdTdhZDlcdTdhZGFcdTdhZGRcdTdhZTFcdTdhZTJcdTdhZTZcdTdhZWRcdTdhZjBcdTdi''@;'; + put 'put ''MDJcdTdiMGZcdTdiMGFcdTdiMDZcdTdiMzNcdTdiMThcdTdiMTlcdTdiMWVcdTdiMzVcdTdiMjhcdTdiMzZcdTdiNTAiXSxbImU0YTEiLCJcdTdiN2FcdTdiMDRcdTdiNGRcdTdiMGJcdTdiNGNcdTdiNDVcdTdiNzVcdTdiNjVcdTdiNzRcdTdiNjdcdTdiNzBcdTdiNzFcdTdiNmNcdTdiNmVc''@;'; + put 'put ''dTdiOWRcdTdiOThcdTdiOWZcdTdiOGRcdTdiOWNcdTdiOWFcdTdiOGJcdTdiOTJcdTdiOGZcdTdiNWRcdTdiOTlcdTdiY2JcdTdiYzFcdTdiY2NcdTdiY2ZcdTdiYjRcdTdiYzZcdTdiZGRcdTdiZTlcdTdjMTFcdTdjMTRcdTdiZTZcdTdiZTVcdTdjNjBcdTdjMDBcdTdjMDdcdTdjMTNcdTdi''@;'; + put 'put ''ZjNcdTdiZjdcdTdjMTdcdTdjMGRcdTdiZjZcdTdjMjNcdTdjMjdcdTdjMmFcdTdjMWZcdTdjMzdcdTdjMmJcdTdjM2RcdTdjNGNcdTdjNDNcdTdjNTRcdTdjNGZcdTdjNDBcdTdjNTBcdTdjNThcdTdjNWZcdTdjNjRcdTdjNTZcdTdjNjVcdTdjNmNcdTdjNzVcdTdjODNcdTdjOTBcdTdjYTRc''@;'; + put 'put ''dTdjYWRcdTdjYTJcdTdjYWJcdTdjYTFcdTdjYThcdTdjYjNcdTdjYjJcdTdjYjFcdTdjYWVcdTdjYjlcdTdjYmRcdTdjYzBcdTdjYzVcdTdjYzJcdTdjZDhcdTdjZDJcdTdjZGNcdTdjZTJcdTliM2JcdTdjZWZcdTdjZjJcdTdjZjRcdTdjZjZcdTdjZmFcdTdkMDYiXSxbImU1YTEiLCJcdTdk''@;'; + put 'put ''MDJcdTdkMWNcdTdkMTVcdTdkMGFcdTdkNDVcdTdkNGJcdTdkMmVcdTdkMzJcdTdkM2ZcdTdkMzVcdTdkNDZcdTdkNzNcdTdkNTZcdTdkNGVcdTdkNzJcdTdkNjhcdTdkNmVcdTdkNGZcdTdkNjNcdTdkOTNcdTdkODlcdTdkNWJcdTdkOGZcdTdkN2RcdTdkOWJcdTdkYmFcdTdkYWVcdTdkYTNc''@;'; + put 'put ''dTdkYjVcdTdkYzdcdTdkYmRcdTdkYWJcdTdlM2RcdTdkYTJcdTdkYWZcdTdkZGNcdTdkYjhcdTdkOWZcdTdkYjBcdTdkZDhcdTdkZGRcdTdkZTRcdTdkZGVcdTdkZmJcdTdkZjJcdTdkZTFcdTdlMDVcdTdlMGFcdTdlMjNcdTdlMjFcdTdlMTJcdTdlMzFcdTdlMWZcdTdlMDlcdTdlMGJcdTdl''@;'; + put 'put ''MjJcdTdlNDZcdTdlNjZcdTdlM2JcdTdlMzVcdTdlMzlcdTdlNDNcdTdlMzdcdTdlMzJcdTdlM2FcdTdlNjdcdTdlNWRcdTdlNTZcdTdlNWVcdTdlNTlcdTdlNWFcdTdlNzlcdTdlNmFcdTdlNjlcdTdlN2NcdTdlN2JcdTdlODNcdTdkZDVcdTdlN2RcdThmYWVcdTdlN2ZcdTdlODhcdTdlODlc''@;'; + put 'put ''dTdlOGNcdTdlOTJcdTdlOTBcdTdlOTNcdTdlOTRcdTdlOTZcdTdlOGVcdTdlOWJcdTdlOWNcdTdmMzhcdTdmM2EiXSxbImU2YTEiLCJcdTdmNDVcdTdmNGNcdTdmNGRcdTdmNGVcdTdmNTBcdTdmNTFcdTdmNTVcdTdmNTRcdTdmNThcdTdmNWZcdTdmNjBcdTdmNjhcdTdmNjlcdTdmNjdcdTdm''@;'; + put 'put ''NzhcdTdmODJcdTdmODZcdTdmODNcdTdmODhcdTdmODdcdTdmOGNcdTdmOTRcdTdmOWVcdTdmOWRcdTdmOWFcdTdmYTNcdTdmYWZcdTdmYjJcdTdmYjlcdTdmYWVcdTdmYjZcdTdmYjhcdThiNzFcdTdmYzVcdTdmYzZcdTdmY2FcdTdmZDVcdTdmZDRcdTdmZTFcdTdmZTZcdTdmZTlcdTdmZjNc''@;'; + put 'put ''dTdmZjlcdTk4ZGNcdTgwMDZcdTgwMDRcdTgwMGJcdTgwMTJcdTgwMThcdTgwMTlcdTgwMWNcdTgwMjFcdTgwMjhcdTgwM2ZcdTgwM2JcdTgwNGFcdTgwNDZcdTgwNTJcdTgwNThcdTgwNWFcdTgwNWZcdTgwNjJcdTgwNjhcdTgwNzNcdTgwNzJcdTgwNzBcdTgwNzZcdTgwNzlcdTgwN2RcdTgw''@;'; + put 'put ''N2ZcdTgwODRcdTgwODZcdTgwODVcdTgwOWJcdTgwOTNcdTgwOWFcdTgwYWRcdTUxOTBcdTgwYWNcdTgwZGJcdTgwZTVcdTgwZDlcdTgwZGRcdTgwYzRcdTgwZGFcdTgwZDZcdTgxMDlcdTgwZWZcdTgwZjFcdTgxMWJcdTgxMjlcdTgxMjNcdTgxMmZcdTgxNGIiXSxbImU3YTEiLCJcdTk2OGJc''@;'; + put 'put ''dTgxNDZcdTgxM2VcdTgxNTNcdTgxNTFcdTgwZmNcdTgxNzFcdTgxNmVcdTgxNjVcdTgxNjZcdTgxNzRcdTgxODNcdTgxODhcdTgxOGFcdTgxODBcdTgxODJcdTgxYTBcdTgxOTVcdTgxYTRcdTgxYTNcdTgxNWZcdTgxOTNcdTgxYTlcdTgxYjBcdTgxYjVcdTgxYmVcdTgxYjhcdTgxYmRcdTgx''@;'; + put 'put ''YzBcdTgxYzJcdTgxYmFcdTgxYzlcdTgxY2RcdTgxZDFcdTgxZDlcdTgxZDhcdTgxYzhcdTgxZGFcdTgxZGZcdTgxZTBcdTgxZTdcdTgxZmFcdTgxZmJcdTgxZmVcdTgyMDFcdTgyMDJcdTgyMDVcdTgyMDdcdTgyMGFcdTgyMGRcdTgyMTBcdTgyMTZcdTgyMjlcdTgyMmJcdTgyMzhcdTgyMzNc''@;'; + put 'put ''dTgyNDBcdTgyNTlcdTgyNThcdTgyNWRcdTgyNWFcdTgyNWZcdTgyNjRcdTgyNjJcdTgyNjhcdTgyNmFcdTgyNmJcdTgyMmVcdTgyNzFcdTgyNzdcdTgyNzhcdTgyN2VcdTgyOGRcdTgyOTJcdTgyYWJcdTgyOWZcdTgyYmJcdTgyYWNcdTgyZTFcdTgyZTNcdTgyZGZcdTgyZDJcdTgyZjRcdTgy''@;'; + put 'put ''ZjNcdTgyZmFcdTgzOTNcdTgzMDNcdTgyZmJcdTgyZjlcdTgyZGVcdTgzMDZcdTgyZGNcdTgzMDlcdTgyZDkiXSxbImU4YTEiLCJcdTgzMzVcdTgzMzRcdTgzMTZcdTgzMzJcdTgzMzFcdTgzNDBcdTgzMzlcdTgzNTBcdTgzNDVcdTgzMmZcdTgzMmJcdTgzMTdcdTgzMThcdTgzODVcdTgzOWFc''@;'; + put 'put ''dTgzYWFcdTgzOWZcdTgzYTJcdTgzOTZcdTgzMjNcdTgzOGVcdTgzODdcdTgzOGFcdTgzN2NcdTgzYjVcdTgzNzNcdTgzNzVcdTgzYTBcdTgzODlcdTgzYThcdTgzZjRcdTg0MTNcdTgzZWJcdTgzY2VcdTgzZmRcdTg0MDNcdTgzZDhcdTg0MGJcdTgzYzFcdTgzZjdcdTg0MDdcdTgzZTBcdTgz''@;'; + put 'put ''ZjJcdTg0MGRcdTg0MjJcdTg0MjBcdTgzYmRcdTg0MzhcdTg1MDZcdTgzZmJcdTg0NmRcdTg0MmFcdTg0M2NcdTg1NWFcdTg0ODRcdTg0NzdcdTg0NmJcdTg0YWRcdTg0NmVcdTg0ODJcdTg0NjlcdTg0NDZcdTg0MmNcdTg0NmZcdTg0NzlcdTg0MzVcdTg0Y2FcdTg0NjJcdTg0YjlcdTg0YmZc''@;'; + put 'put ''dTg0OWZcdTg0ZDlcdTg0Y2RcdTg0YmJcdTg0ZGFcdTg0ZDBcdTg0YzFcdTg0YzZcdTg0ZDZcdTg0YTFcdTg1MjFcdTg0ZmZcdTg0ZjRcdTg1MTdcdTg1MThcdTg1MmNcdTg1MWZcdTg1MTVcdTg1MTRcdTg0ZmNcdTg1NDBcdTg1NjNcdTg1NThcdTg1NDgiXSxbImU5YTEiLCJcdTg1NDFcdTg2''@;'; + put 'put ''MDJcdTg1NGJcdTg1NTVcdTg1ODBcdTg1YTRcdTg1ODhcdTg1OTFcdTg1OGFcdTg1YThcdTg1NmRcdTg1OTRcdTg1OWJcdTg1ZWFcdTg1ODdcdTg1OWNcdTg1NzdcdTg1N2VcdTg1OTBcdTg1YzlcdTg1YmFcdTg1Y2ZcdTg1YjlcdTg1ZDBcdTg1ZDVcdTg1ZGRcdTg1ZTVcdTg1ZGNcdTg1Zjlc''@;'; + put 'put ''dTg2MGFcdTg2MTNcdTg2MGJcdTg1ZmVcdTg1ZmFcdTg2MDZcdTg2MjJcdTg2MWFcdTg2MzBcdTg2M2ZcdTg2NGRcdTRlNTVcdTg2NTRcdTg2NWZcdTg2NjdcdTg2NzFcdTg2OTNcdTg2YTNcdTg2YTlcdTg2YWFcdTg2OGJcdTg2OGNcdTg2YjZcdTg2YWZcdTg2YzRcdTg2YzZcdTg2YjBcdTg2''@;'; + put 'put ''YzlcdTg4MjNcdTg2YWJcdTg2ZDRcdTg2ZGVcdTg2ZTlcdTg2ZWNcdTg2ZGZcdTg2ZGJcdTg2ZWZcdTg3MTJcdTg3MDZcdTg3MDhcdTg3MDBcdTg3MDNcdTg2ZmJcdTg3MTFcdTg3MDlcdTg3MGRcdTg2ZjlcdTg3MGFcdTg3MzRcdTg3M2ZcdTg3MzdcdTg3M2JcdTg3MjVcdTg3MjlcdTg3MWFc''@;'; + put 'put ''dTg3NjBcdTg3NWZcdTg3NzhcdTg3NGNcdTg3NGVcdTg3NzRcdTg3NTdcdTg3NjhcdTg3NmVcdTg3NTkiXSxbImVhYTEiLCJcdTg3NTNcdTg3NjNcdTg3NmFcdTg4MDVcdTg3YTJcdTg3OWZcdTg3ODJcdTg3YWZcdTg3Y2JcdTg3YmRcdTg3YzBcdTg3ZDBcdTk2ZDZcdTg3YWJcdTg3YzRcdTg3''@;'; + put 'put ''YjNcdTg3YzdcdTg3YzZcdTg3YmJcdTg3ZWZcdTg3ZjJcdTg3ZTBcdTg4MGZcdTg4MGRcdTg3ZmVcdTg3ZjZcdTg3ZjdcdTg4MGVcdTg3ZDJcdTg4MTFcdTg4MTZcdTg4MTVcdTg4MjJcdTg4MjFcdTg4MzFcdTg4MzZcdTg4MzlcdTg4MjdcdTg4M2JcdTg4NDRcdTg4NDJcdTg4NTJcdTg4NTlc''@;'; + put 'put ''dTg4NWVcdTg4NjJcdTg4NmJcdTg4ODFcdTg4N2VcdTg4OWVcdTg4NzVcdTg4N2RcdTg4YjVcdTg4NzJcdTg4ODJcdTg4OTdcdTg4OTJcdTg4YWVcdTg4OTlcdTg4YTJcdTg4OGRcdTg4YTRcdTg4YjBcdTg4YmZcdTg4YjFcdTg4YzNcdTg4YzRcdTg4ZDRcdTg4ZDhcdTg4ZDlcdTg4ZGRcdTg4''@;'; + put 'put ''ZjlcdTg5MDJcdTg4ZmNcdTg4ZjRcdTg4ZThcdTg4ZjJcdTg5MDRcdTg5MGNcdTg5MGFcdTg5MTNcdTg5NDNcdTg5MWVcdTg5MjVcdTg5MmFcdTg5MmJcdTg5NDFcdTg5NDRcdTg5M2JcdTg5MzZcdTg5MzhcdTg5NGNcdTg5MWRcdTg5NjBcdTg5NWUiXSxbImViYTEiLCJcdTg5NjZcdTg5NjRc''@;'; + put 'put ''dTg5NmRcdTg5NmFcdTg5NmZcdTg5NzRcdTg5NzdcdTg5N2VcdTg5ODNcdTg5ODhcdTg5OGFcdTg5OTNcdTg5OThcdTg5YTFcdTg5YTlcdTg5YTZcdTg5YWNcdTg5YWZcdTg5YjJcdTg5YmFcdTg5YmRcdTg5YmZcdTg5YzBcdTg5ZGFcdTg5ZGNcdTg5ZGRcdTg5ZTdcdTg5ZjRcdTg5ZjhcdThh''@;'; + put 'put ''MDNcdThhMTZcdThhMTBcdThhMGNcdThhMWJcdThhMWRcdThhMjVcdThhMzZcdThhNDFcdThhNWJcdThhNTJcdThhNDZcdThhNDhcdThhN2NcdThhNmRcdThhNmNcdThhNjJcdThhODVcdThhODJcdThhODRcdThhYThcdThhYTFcdThhOTFcdThhYTVcdThhYTZcdThhOWFcdThhYTNcdThhYzRc''@;'; + put 'put ''dThhY2RcdThhYzJcdThhZGFcdThhZWJcdThhZjNcdThhZTdcdThhZTRcdThhZjFcdThiMTRcdThhZTBcdThhZTJcdThhZjdcdThhZGVcdThhZGJcdThiMGNcdThiMDdcdThiMWFcdThhZTFcdThiMTZcdThiMTBcdThiMTdcdThiMjBcdThiMzNcdTk3YWJcdThiMjZcdThiMmJcdThiM2VcdThi''@;'; + put 'put ''MjhcdThiNDFcdThiNGNcdThiNGZcdThiNGVcdThiNDlcdThiNTZcdThiNWJcdThiNWFcdThiNmIiXSxbImVjYTEiLCJcdThiNWZcdThiNmNcdThiNmZcdThiNzRcdThiN2RcdThiODBcdThiOGNcdThiOGVcdThiOTJcdThiOTNcdThiOTZcdThiOTlcdThiOWFcdThjM2FcdThjNDFcdThjM2Zc''@;'; + put 'put ''dThjNDhcdThjNGNcdThjNGVcdThjNTBcdThjNTVcdThjNjJcdThjNmNcdThjNzhcdThjN2FcdThjODJcdThjODlcdThjODVcdThjOGFcdThjOGRcdThjOGVcdThjOTRcdThjN2NcdThjOThcdTYyMWRcdThjYWRcdThjYWFcdThjYmRcdThjYjJcdThjYjNcdThjYWVcdThjYjZcdThjYzhcdThj''@;'; + put 'put ''YzFcdThjZTRcdThjZTNcdThjZGFcdThjZmRcdThjZmFcdThjZmJcdThkMDRcdThkMDVcdThkMGFcdThkMDdcdThkMGZcdThkMGRcdThkMTBcdTlmNGVcdThkMTNcdThjY2RcdThkMTRcdThkMTZcdThkNjdcdThkNmRcdThkNzFcdThkNzNcdThkODFcdThkOTlcdThkYzJcdThkYmVcdThkYmFc''@;'; + put 'put ''dThkY2ZcdThkZGFcdThkZDZcdThkY2NcdThkZGJcdThkY2JcdThkZWFcdThkZWJcdThkZGZcdThkZTNcdThkZmNcdThlMDhcdThlMDlcdThkZmZcdThlMWRcdThlMWVcdThlMTBcdThlMWZcdThlNDJcdThlMzVcdThlMzBcdThlMzRcdThlNGEiXSxbImVkYTEiLCJcdThlNDdcdThlNDlcdThl''@;'; + put 'put ''NGNcdThlNTBcdThlNDhcdThlNTlcdThlNjRcdThlNjBcdThlMmFcdThlNjNcdThlNTVcdThlNzZcdThlNzJcdThlN2NcdThlODFcdThlODdcdThlODVcdThlODRcdThlOGJcdThlOGFcdThlOTNcdThlOTFcdThlOTRcdThlOTlcdThlYWFcdThlYTFcdThlYWNcdThlYjBcdThlYzZcdThlYjFc''@;'; + put 'put ''dThlYmVcdThlYzVcdThlYzhcdThlY2JcdThlZGJcdThlZTNcdThlZmNcdThlZmJcdThlZWJcdThlZmVcdThmMGFcdThmMDVcdThmMTVcdThmMTJcdThmMTlcdThmMTNcdThmMWNcdThmMWZcdThmMWJcdThmMGNcdThmMjZcdThmMzNcdThmM2JcdThmMzlcdThmNDVcdThmNDJcdThmM2VcdThm''@;'; + put 'put ''NGNcdThmNDlcdThmNDZcdThmNGVcdThmNTdcdThmNWNcdThmNjJcdThmNjNcdThmNjRcdThmOWNcdThmOWZcdThmYTNcdThmYWRcdThmYWZcdThmYjdcdThmZGFcdThmZTVcdThmZTJcdThmZWFcdThmZWZcdTkwODdcdThmZjRcdTkwMDVcdThmZjlcdThmZmFcdTkwMTFcdTkwMTVcdTkwMjFc''@;'; + put 'put ''dTkwMGRcdTkwMWVcdTkwMTZcdTkwMGJcdTkwMjdcdTkwMzZcdTkwMzVcdTkwMzlcdThmZjgiXSxbImVlYTEiLCJcdTkwNGZcdTkwNTBcdTkwNTFcdTkwNTJcdTkwMGVcdTkwNDlcdTkwM2VcdTkwNTZcdTkwNThcdTkwNWVcdTkwNjhcdTkwNmZcdTkwNzZcdTk2YThcdTkwNzJcdTkwODJcdTkw''@;'; + put 'put ''N2RcdTkwODFcdTkwODBcdTkwOGFcdTkwODlcdTkwOGZcdTkwYThcdTkwYWZcdTkwYjFcdTkwYjVcdTkwZTJcdTkwZTRcdTYyNDhcdTkwZGJcdTkxMDJcdTkxMTJcdTkxMTlcdTkxMzJcdTkxMzBcdTkxNGFcdTkxNTZcdTkxNThcdTkxNjNcdTkxNjVcdTkxNjlcdTkxNzNcdTkxNzJcdTkxOGJc''@;'; + put 'put ''dTkxODlcdTkxODJcdTkxYTJcdTkxYWJcdTkxYWZcdTkxYWFcdTkxYjVcdTkxYjRcdTkxYmFcdTkxYzBcdTkxYzFcdTkxYzlcdTkxY2JcdTkxZDBcdTkxZDZcdTkxZGZcdTkxZTFcdTkxZGJcdTkxZmNcdTkxZjVcdTkxZjZcdTkyMWVcdTkxZmZcdTkyMTRcdTkyMmNcdTkyMTVcdTkyMTFcdTky''@;'; + put 'put ''NWVcdTkyNTdcdTkyNDVcdTkyNDlcdTkyNjRcdTkyNDhcdTkyOTVcdTkyM2ZcdTkyNGJcdTkyNTBcdTkyOWNcdTkyOTZcdTkyOTNcdTkyOWJcdTkyNWFcdTkyY2ZcdTkyYjlcdTkyYjdcdTkyZTlcdTkzMGZcdTkyZmFcdTkzNDRcdTkzMmUiXSxbImVmYTEiLCJcdTkzMTlcdTkzMjJcdTkzMWFc''@;'; + put 'put ''dTkzMjNcdTkzM2FcdTkzMzVcdTkzM2JcdTkzNWNcdTkzNjBcdTkzN2NcdTkzNmVcdTkzNTZcdTkzYjBcdTkzYWNcdTkzYWRcdTkzOTRcdTkzYjlcdTkzZDZcdTkzZDdcdTkzZThcdTkzZTVcdTkzZDhcdTkzYzNcdTkzZGRcdTkzZDBcdTkzYzhcdTkzZTRcdTk0MWFcdTk0MTRcdTk0MTNcdTk0''@;'; + put 'put ''MDNcdTk0MDdcdTk0MTBcdTk0MzZcdTk0MmJcdTk0MzVcdTk0MjFcdTk0M2FcdTk0NDFcdTk0NTJcdTk0NDRcdTk0NWJcdTk0NjBcdTk0NjJcdTk0NWVcdTk0NmFcdTkyMjlcdTk0NzBcdTk0NzVcdTk0NzdcdTk0N2RcdTk0NWFcdTk0N2NcdTk0N2VcdTk0ODFcdTk0N2ZcdTk1ODJcdTk1ODdc''@;'; + put 'put ''dTk1OGFcdTk1OTRcdTk1OTZcdTk1OThcdTk1OTlcdTk1YTBcdTk1YThcdTk1YTdcdTk1YWRcdTk1YmNcdTk1YmJcdTk1YjlcdTk1YmVcdTk1Y2FcdTZmZjZcdTk1YzNcdTk1Y2RcdTk1Y2NcdTk1ZDVcdTk1ZDRcdTk1ZDZcdTk1ZGNcdTk1ZTFcdTk1ZTVcdTk1ZTJcdTk2MjFcdTk2MjhcdTk2''@;'; + put 'put ''MmVcdTk2MmZcdTk2NDJcdTk2NGNcdTk2NGZcdTk2NGJcdTk2NzdcdTk2NWNcdTk2NWUiXSxbImYwYTEiLCJcdTk2NWRcdTk2NWZcdTk2NjZcdTk2NzJcdTk2NmNcdTk2OGRcdTk2OThcdTk2OTVcdTk2OTdcdTk2YWFcdTk2YTdcdTk2YjFcdTk2YjJcdTk2YjBcdTk2YjRcdTk2YjZcdTk2Yjhc''@;'; + put 'put ''dTk2YjlcdTk2Y2VcdTk2Y2JcdTk2YzlcdTk2Y2RcdTg5NGRcdTk2ZGNcdTk3MGRcdTk2ZDVcdTk2ZjlcdTk3MDRcdTk3MDZcdTk3MDhcdTk3MTNcdTk3MGVcdTk3MTFcdTk3MGZcdTk3MTZcdTk3MTlcdTk3MjRcdTk3MmFcdTk3MzBcdTk3MzlcdTk3M2RcdTk3M2VcdTk3NDRcdTk3NDZcdTk3''@;'; + put 'put ''NDhcdTk3NDJcdTk3NDlcdTk3NWNcdTk3NjBcdTk3NjRcdTk3NjZcdTk3NjhcdTUyZDJcdTk3NmJcdTk3NzFcdTk3NzlcdTk3ODVcdTk3N2NcdTk3ODFcdTk3N2FcdTk3ODZcdTk3OGJcdTk3OGZcdTk3OTBcdTk3OWNcdTk3YThcdTk3YTZcdTk3YTNcdTk3YjNcdTk3YjRcdTk3YzNcdTk3YzZc''@;'; + put 'put ''dTk3YzhcdTk3Y2JcdTk3ZGNcdTk3ZWRcdTlmNGZcdTk3ZjJcdTdhZGZcdTk3ZjZcdTk3ZjVcdTk4MGZcdTk4MGNcdTk4MzhcdTk4MjRcdTk4MjFcdTk4MzdcdTk4M2RcdTk4NDZcdTk4NGZcdTk4NGJcdTk4NmJcdTk4NmZcdTk4NzAiXSxbImYxYTEiLCJcdTk4NzFcdTk4NzRcdTk4NzNcdTk4''@;'; + put 'put ''YWFcdTk4YWZcdTk4YjFcdTk4YjZcdTk4YzRcdTk4YzNcdTk4YzZcdTk4ZTlcdTk4ZWJcdTk5MDNcdTk5MDlcdTk5MTJcdTk5MTRcdTk5MThcdTk5MjFcdTk5MWRcdTk5MWVcdTk5MjRcdTk5MjBcdTk5MmNcdTk5MmVcdTk5M2RcdTk5M2VcdTk5NDJcdTk5NDlcdTk5NDVcdTk5NTBcdTk5NGJc''@;'; + put 'put ''dTk5NTFcdTk5NTJcdTk5NGNcdTk5NTVcdTk5OTdcdTk5OThcdTk5YTVcdTk5YWRcdTk5YWVcdTk5YmNcdTk5ZGZcdTk5ZGJcdTk5ZGRcdTk5ZDhcdTk5ZDFcdTk5ZWRcdTk5ZWVcdTk5ZjFcdTk5ZjJcdTk5ZmJcdTk5ZjhcdTlhMDFcdTlhMGZcdTlhMDVcdTk5ZTJcdTlhMTlcdTlhMmJcdTlh''@;'; + put 'put ''MzdcdTlhNDVcdTlhNDJcdTlhNDBcdTlhNDNcdTlhM2VcdTlhNTVcdTlhNGRcdTlhNWJcdTlhNTdcdTlhNWZcdTlhNjJcdTlhNjVcdTlhNjRcdTlhNjlcdTlhNmJcdTlhNmFcdTlhYWRcdTlhYjBcdTlhYmNcdTlhYzBcdTlhY2ZcdTlhZDFcdTlhZDNcdTlhZDRcdTlhZGVcdTlhZGZcdTlhZTJc''@;'; + put 'put ''dTlhZTNcdTlhZTZcdTlhZWZcdTlhZWJcdTlhZWVcdTlhZjRcdTlhZjFcdTlhZjciXSxbImYyYTEiLCJcdTlhZmJcdTliMDZcdTliMThcdTliMWFcdTliMWZcdTliMjJcdTliMjNcdTliMjVcdTliMjdcdTliMjhcdTliMjlcdTliMmFcdTliMmVcdTliMmZcdTliMzJcdTliNDRcdTliNDNcdTli''@;'; + put 'put ''NGZcdTliNGRcdTliNGVcdTliNTFcdTliNThcdTliNzRcdTliOTNcdTliODNcdTliOTFcdTliOTZcdTliOTdcdTliOWZcdTliYTBcdTliYThcdTliYjRcdTliYzBcdTliY2FcdTliYjlcdTliYzZcdTliY2ZcdTliZDFcdTliZDJcdTliZTNcdTliZTJcdTliZTRcdTliZDRcdTliZTFcdTljM2Fc''@;'; + put 'put ''dTliZjJcdTliZjFcdTliZjBcdTljMTVcdTljMTRcdTljMDlcdTljMTNcdTljMGNcdTljMDZcdTljMDhcdTljMTJcdTljMGFcdTljMDRcdTljMmVcdTljMWJcdTljMjVcdTljMjRcdTljMjFcdTljMzBcdTljNDdcdTljMzJcdTljNDZcdTljM2VcdTljNWFcdTljNjBcdTljNjdcdTljNzZcdTlj''@;'; + put 'put ''NzhcdTljZTdcdTljZWNcdTljZjBcdTlkMDlcdTlkMDhcdTljZWJcdTlkMDNcdTlkMDZcdTlkMmFcdTlkMjZcdTlkYWZcdTlkMjNcdTlkMWZcdTlkNDRcdTlkMTVcdTlkMTJcdTlkNDFcdTlkM2ZcdTlkM2VcdTlkNDZcdTlkNDgiXSxbImYzYTEiLCJcdTlkNWRcdTlkNWVcdTlkNjRcdTlkNTFc''@;'; + put 'put ''dTlkNTBcdTlkNTlcdTlkNzJcdTlkODlcdTlkODdcdTlkYWJcdTlkNmZcdTlkN2FcdTlkOWFcdTlkYTRcdTlkYTlcdTlkYjJcdTlkYzRcdTlkYzFcdTlkYmJcdTlkYjhcdTlkYmFcdTlkYzZcdTlkY2ZcdTlkYzJcdTlkZDlcdTlkZDNcdTlkZjhcdTlkZTZcdTlkZWRcdTlkZWZcdTlkZmRcdTll''@;'; + put 'put ''MWFcdTllMWJcdTllMWVcdTllNzVcdTllNzlcdTllN2RcdTllODFcdTllODhcdTllOGJcdTllOGNcdTllOTJcdTllOTVcdTllOTFcdTllOWRcdTllYTVcdTllYTlcdTllYjhcdTllYWFcdTllYWRcdTk3NjFcdTllY2NcdTllY2VcdTllY2ZcdTllZDBcdTllZDRcdTllZGNcdTllZGVcdTllZGRc''@;'; + put 'put ''dTllZTBcdTllZTVcdTllZThcdTllZWZcdTllZjRcdTllZjZcdTllZjdcdTllZjlcdTllZmJcdTllZmNcdTllZmRcdTlmMDdcdTlmMDhcdTc2YjdcdTlmMTVcdTlmMjFcdTlmMmNcdTlmM2VcdTlmNGFcdTlmNTJcdTlmNTRcdTlmNjNcdTlmNWZcdTlmNjBcdTlmNjFcdTlmNjZcdTlmNjdcdTlm''@;'; + put 'put ''NmNcdTlmNmFcdTlmNzdcdTlmNzJcdTlmNzZcdTlmOTVcdTlmOWNcdTlmYTAiXSxbImY0YTEiLCJcdTU4MmZcdTY5YzdcdTkwNTlcdTc0NjRcdTUxZGNcdTcxOTkiXSxbImY5YTEiLCJcdTdlOGFcdTg5MWNcdTkzNDhcdTkyODhcdTg0ZGNcdTRmYzlcdTcwYmJcdTY2MzFcdTY4YzhcdTkyZjlc''@;'; + put 'put ''dTY2ZmJcdTVmNDVcdTRlMjhcdTRlZTFcdTRlZmNcdTRmMDBcdTRmMDNcdTRmMzlcdTRmNTZcdTRmOTJcdTRmOGFcdTRmOWFcdTRmOTRcdTRmY2RcdTUwNDBcdTUwMjJcdTRmZmZcdTUwMWVcdTUwNDZcdTUwNzBcdTUwNDJcdTUwOTRcdTUwZjRcdTUwZDhcdTUxNGFcdTUxNjRcdTUxOWRcdTUx''@;'; + put 'put ''YmVcdTUxZWNcdTUyMTVcdTUyOWNcdTUyYTZcdTUyYzBcdTUyZGJcdTUzMDBcdTUzMDdcdTUzMjRcdTUzNzJcdTUzOTNcdTUzYjJcdTUzZGRcdWZhMGVcdTU0OWNcdTU0OGFcdTU0YTlcdTU0ZmZcdTU1ODZcdTU3NTlcdTU3NjVcdTU3YWNcdTU3YzhcdTU3YzdcdWZhMGZcdWZhMTBcdTU4OWVc''@;'; + put 'put ''dTU4YjJcdTU5MGJcdTU5NTNcdTU5NWJcdTU5NWRcdTU5NjNcdTU5YTRcdTU5YmFcdTViNTZcdTViYzBcdTc1MmZcdTViZDhcdTViZWNcdTVjMWVcdTVjYTZcdTVjYmFcdTVjZjVcdTVkMjdcdTVkNTNcdWZhMTFcdTVkNDJcdTVkNmRcdTVkYjhcdTVkYjlcdTVkZDBcdTVmMjFcdTVmMzRcdTVm''@;'; + put 'put ''NjdcdTVmYjciXSxbImZhYTEiLCJcdTVmZGVcdTYwNWRcdTYwODVcdTYwOGFcdTYwZGVcdTYwZDVcdTYxMjBcdTYwZjJcdTYxMTFcdTYxMzdcdTYxMzBcdTYxOThcdTYyMTNcdTYyYTZcdTYzZjVcdTY0NjBcdTY0OWRcdTY0Y2VcdTY1NGVcdTY2MDBcdTY2MTVcdTY2M2JcdTY2MDlcdTY2MmVc''@;'; + put 'put ''dTY2MWVcdTY2MjRcdTY2NjVcdTY2NTdcdTY2NTlcdWZhMTJcdTY2NzNcdTY2OTlcdTY2YTBcdTY2YjJcdTY2YmZcdTY2ZmFcdTY3MGVcdWY5MjlcdTY3NjZcdTY3YmJcdTY4NTJcdTY3YzBcdTY4MDFcdTY4NDRcdTY4Y2ZcdWZhMTNcdTY5NjhcdWZhMTRcdTY5OThcdTY5ZTJcdTZhMzBcdTZh''@;'; + put 'put ''NmJcdTZhNDZcdTZhNzNcdTZhN2VcdTZhZTJcdTZhZTRcdTZiZDZcdTZjM2ZcdTZjNWNcdTZjODZcdTZjNmZcdTZjZGFcdTZkMDRcdTZkODdcdTZkNmZcdTZkOTZcdTZkYWNcdTZkY2ZcdTZkZjhcdTZkZjJcdTZkZmNcdTZlMzlcdTZlNWNcdTZlMjdcdTZlM2NcdTZlYmZcdTZmODhcdTZmYjVc''@;'; + put 'put ''dTZmZjVcdTcwMDVcdTcwMDdcdTcwMjhcdTcwODVcdTcwYWJcdTcxMGZcdTcxMDRcdTcxNWNcdTcxNDZcdTcxNDdcdWZhMTVcdTcxYzFcdTcxZmVcdTcyYjEiXSxbImZiYTEiLCJcdTcyYmVcdTczMjRcdWZhMTZcdTczNzdcdTczYmRcdTczYzlcdTczZDZcdTczZTNcdTczZDJcdTc0MDdcdTcz''@;'; + put 'put ''ZjVcdTc0MjZcdTc0MmFcdTc0MjlcdTc0MmVcdTc0NjJcdTc0ODlcdTc0OWZcdTc1MDFcdTc1NmZcdTc2ODJcdTc2OWNcdTc2OWVcdTc2OWJcdTc2YTZcdWZhMTdcdTc3NDZcdTUyYWZcdTc4MjFcdTc4NGVcdTc4NjRcdTc4N2FcdTc5MzBcdWZhMThcdWZhMTlcdWZhMWFcdTc5OTRcdWZhMWJc''@;'; + put 'put ''dTc5OWJcdTdhZDFcdTdhZTdcdWZhMWNcdTdhZWJcdTdiOWVcdWZhMWRcdTdkNDhcdTdkNWNcdTdkYjdcdTdkYTBcdTdkZDZcdTdlNTJcdTdmNDdcdTdmYTFcdWZhMWVcdTgzMDFcdTgzNjJcdTgzN2ZcdTgzYzdcdTgzZjZcdTg0NDhcdTg0YjRcdTg1NTNcdTg1NTlcdTg1NmJcdWZhMWZcdTg1''@;'; + put 'put ''YjBcdWZhMjBcdWZhMjFcdTg4MDdcdTg4ZjVcdThhMTJcdThhMzdcdThhNzlcdThhYTdcdThhYmVcdThhZGZcdWZhMjJcdThhZjZcdThiNTNcdThiN2ZcdThjZjBcdThjZjRcdThkMTJcdThkNzZcdWZhMjNcdThlY2ZcdWZhMjRcdWZhMjVcdTkwNjdcdTkwZGVcdWZhMjZcdTkxMTVcdTkxMjdc''@;'; + put 'put ''dTkxZGEiXSxbImZjYTEiLCJcdTkxZDdcdTkxZGVcdTkxZWRcdTkxZWVcdTkxZTRcdTkxZTVcdTkyMDZcdTkyMTBcdTkyMGFcdTkyM2FcdTkyNDBcdTkyM2NcdTkyNGVcdTkyNTlcdTkyNTFcdTkyMzlcdTkyNjdcdTkyYTdcdTkyNzdcdTkyNzhcdTkyZTdcdTkyZDdcdTkyZDlcdTkyZDBcdWZh''@;'; + put 'put ''MjdcdTkyZDVcdTkyZTBcdTkyZDNcdTkzMjVcdTkzMjFcdTkyZmJcdWZhMjhcdTkzMWVcdTkyZmZcdTkzMWRcdTkzMDJcdTkzNzBcdTkzNTdcdTkzYTRcdTkzYzZcdTkzZGVcdTkzZjhcdTk0MzFcdTk0NDVcdTk0NDhcdTk1OTJcdWY5ZGNcdWZhMjlcdTk2OWRcdTk2YWZcdTk3MzNcdTk3M2Jc''@;'; + put 'put ''dTk3NDNcdTk3NGRcdTk3NGZcdTk3NTFcdTk3NTVcdTk4NTdcdTk4NjVcdWZhMmFcdWZhMmJcdTk5MjdcdWZhMmNcdTk5OWVcdTlhNGVcdTlhZDlcdTlhZGNcdTliNzVcdTliNzJcdTliOGZcdTliYjFcdTliYmJcdTljMDBcdTlkNzBcdTlkNmJcdWZhMmRcdTllMTlcdTllZDEiXSxbImZjZjEi''@;'; + put 'put ''LCJcdTIxNzAiLDksIlx1ZmZlMlx1ZmZlNFx1ZmYwN1x1ZmYwMiJdLFsiOGZhMmFmIiwiXHUwMmQ4XHUwMmM3XHhiOFx1MDJkOVx1MDJkZFx4YWZcdTAyZGJcdTAyZGFcdWZmNWVcdTAzODRcdTAzODUiXSxbIjhmYTJjMiIsIlx4YTFceGE2XHhiZiJdLFsiOGZhMmViIiwiXHhiYVx4YWFceGE5''@;'; + put 'put ''XHhhZVx1MjEyMlx4YTRcdTIxMTYiXSxbIjhmYTZlMSIsIlx1MDM4Nlx1MDM4OFx1MDM4OVx1MDM4YVx1MDNhYSJdLFsiOGZhNmU3IiwiXHUwMzhjIl0sWyI4ZmE2ZTkiLCJcdTAzOGVcdTAzYWIiXSxbIjhmYTZlYyIsIlx1MDM4ZiJdLFsiOGZhNmYxIiwiXHUwM2FjXHUwM2FkXHUwM2FlXHUw''@;'; + put 'put ''M2FmXHUwM2NhXHUwMzkwXHUwM2NjXHUwM2MyXHUwM2NkXHUwM2NiXHUwM2IwXHUwM2NlIl0sWyI4ZmE3YzIiLCJcdTA0MDIiLDEwLCJcdTA0MGVcdTA0MGYiXSxbIjhmYTdmMiIsIlx1MDQ1MiIsMTAsIlx1MDQ1ZVx1MDQ1ZiJdLFsiOGZhOWExIiwiXHhjNlx1MDExMCJdLFsiOGZhOWE0Iiwi''@;'; + put 'put ''XHUwMTI2Il0sWyI4ZmE5YTYiLCJcdTAxMzIiXSxbIjhmYTlhOCIsIlx1MDE0MVx1MDEzZiJdLFsiOGZhOWFiIiwiXHUwMTRhXHhkOFx1MDE1MiJdLFsiOGZhOWFmIiwiXHUwMTY2XHhkZSJdLFsiOGZhOWMxIiwiXHhlNlx1MDExMVx4ZjBcdTAxMjdcdTAxMzFcdTAxMzNcdTAxMzhcdTAxNDJc''@;'; + put 'put ''dTAxNDBcdTAxNDlcdTAxNGJceGY4XHUwMTUzXHhkZlx1MDE2N1x4ZmUiXSxbIjhmYWFhMSIsIlx4YzFceGMwXHhjNFx4YzJcdTAxMDJcdTAxY2RcdTAxMDBcdTAxMDRceGM1XHhjM1x1MDEwNlx1MDEwOFx1MDEwY1x4YzdcdTAxMGFcdTAxMGVceGM5XHhjOFx4Y2JceGNhXHUwMTFhXHUwMTE2''@;'; + put 'put ''XHUwMTEyXHUwMTE4Il0sWyI4ZmFhYmEiLCJcdTAxMWNcdTAxMWVcdTAxMjJcdTAxMjBcdTAxMjRceGNkXHhjY1x4Y2ZceGNlXHUwMWNmXHUwMTMwXHUwMTJhXHUwMTJlXHUwMTI4XHUwMTM0XHUwMTM2XHUwMTM5XHUwMTNkXHUwMTNiXHUwMTQzXHUwMTQ3XHUwMTQ1XHhkMVx4ZDNceGQyXHhk''@;'; + put 'put ''Nlx4ZDRcdTAxZDFcdTAxNTBcdTAxNGNceGQ1XHUwMTU0XHUwMTU4XHUwMTU2XHUwMTVhXHUwMTVjXHUwMTYwXHUwMTVlXHUwMTY0XHUwMTYyXHhkYVx4ZDlceGRjXHhkYlx1MDE2Y1x1MDFkM1x1MDE3MFx1MDE2YVx1MDE3Mlx1MDE2ZVx1MDE2OFx1MDFkN1x1MDFkYlx1MDFkOVx1MDFkNVx1''@;'; + put 'put ''MDE3NFx4ZGRcdTAxNzhcdTAxNzZcdTAxNzlcdTAxN2RcdTAxN2IiXSxbIjhmYWJhMSIsIlx4ZTFceGUwXHhlNFx4ZTJcdTAxMDNcdTAxY2VcdTAxMDFcdTAxMDVceGU1XHhlM1x1MDEwN1x1MDEwOVx1MDEwZFx4ZTdcdTAxMGJcdTAxMGZceGU5XHhlOFx4ZWJceGVhXHUwMTFiXHUwMTE3XHUw''@;'; + put 'put ''MTEzXHUwMTE5XHUwMWY1XHUwMTFkXHUwMTFmIl0sWyI4ZmFiYmQiLCJcdTAxMjFcdTAxMjVceGVkXHhlY1x4ZWZceGVlXHUwMWQwIl0sWyI4ZmFiYzUiLCJcdTAxMmJcdTAxMmZcdTAxMjlcdTAxMzVcdTAxMzdcdTAxM2FcdTAxM2VcdTAxM2NcdTAxNDRcdTAxNDhcdTAxNDZceGYxXHhmM1x4''@;'; + put 'put ''ZjJceGY2XHhmNFx1MDFkMlx1MDE1MVx1MDE0ZFx4ZjVcdTAxNTVcdTAxNTlcdTAxNTdcdTAxNWJcdTAxNWRcdTAxNjFcdTAxNWZcdTAxNjVcdTAxNjNceGZhXHhmOVx4ZmNceGZiXHUwMTZkXHUwMWQ0XHUwMTcxXHUwMTZiXHUwMTczXHUwMTZmXHUwMTY5XHUwMWQ4XHUwMWRjXHUwMWRhXHUw''@;'; + put 'put ''MWQ2XHUwMTc1XHhmZFx4ZmZcdTAxNzdcdTAxN2FcdTAxN2VcdTAxN2MiXSxbIjhmYjBhMSIsIlx1NGUwMlx1NGUwNFx1NGUwNVx1NGUwY1x1NGUxMlx1NGUxZlx1NGUyM1x1NGUyNFx1NGUyOFx1NGUyYlx1NGUyZVx1NGUyZlx1NGUzMFx1NGUzNVx1NGU0MFx1NGU0MVx1NGU0NFx1NGU0N1x1''@;'; + put 'put ''NGU1MVx1NGU1YVx1NGU1Y1x1NGU2M1x1NGU2OFx1NGU2OVx1NGU3NFx1NGU3NVx1NGU3OVx1NGU3Zlx1NGU4ZFx1NGU5Nlx1NGU5N1x1NGU5ZFx1NGVhZlx1NGViOVx1NGVjM1x1NGVkMFx1NGVkYVx1NGVkYlx1NGVlMFx1NGVlMVx1NGVlMlx1NGVlOFx1NGVlZlx1NGVmMVx1NGVmM1x1NGVm''@;'; + put 'put ''NVx1NGVmZFx1NGVmZVx1NGVmZlx1NGYwMFx1NGYwMlx1NGYwM1x1NGYwOFx1NGYwYlx1NGYwY1x1NGYxMlx1NGYxNVx1NGYxNlx1NGYxN1x1NGYxOVx1NGYyZVx1NGYzMVx1NGY2MFx1NGYzM1x1NGYzNVx1NGYzN1x1NGYzOVx1NGYzYlx1NGYzZVx1NGY0MFx1NGY0Mlx1NGY0OFx1NGY0OVx1''@;'; + put 'put ''NGY0Ylx1NGY0Y1x1NGY1Mlx1NGY1NFx1NGY1Nlx1NGY1OFx1NGY1Zlx1NGY2M1x1NGY2YVx1NGY2Y1x1NGY2ZVx1NGY3MVx1NGY3N1x1NGY3OFx1NGY3OVx1NGY3YVx1NGY3ZFx1NGY3ZVx1NGY4MVx1NGY4Mlx1NGY4NCJdLFsiOGZiMWExIiwiXHU0Zjg1XHU0Zjg5XHU0ZjhhXHU0ZjhjXHU0''@;'; + put 'put ''ZjhlXHU0ZjkwXHU0ZjkyXHU0ZjkzXHU0Zjk0XHU0Zjk3XHU0Zjk5XHU0ZjlhXHU0ZjllXHU0ZjlmXHU0ZmIyXHU0ZmI3XHU0ZmI5XHU0ZmJiXHU0ZmJjXHU0ZmJkXHU0ZmJlXHU0ZmMwXHU0ZmMxXHU0ZmM1XHU0ZmM2XHU0ZmM4XHU0ZmM5XHU0ZmNiXHU0ZmNjXHU0ZmNkXHU0ZmNmXHU0ZmQy''@;'; + put 'put ''XHU0ZmRjXHU0ZmUwXHU0ZmUyXHU0ZmYwXHU0ZmYyXHU0ZmZjXHU0ZmZkXHU0ZmZmXHU1MDAwXHU1MDAxXHU1MDA0XHU1MDA3XHU1MDBhXHU1MDBjXHU1MDBlXHU1MDEwXHU1MDEzXHU1MDE3XHU1MDE4XHU1MDFiXHU1MDFjXHU1MDFkXHU1MDFlXHU1MDIyXHU1MDI3XHU1MDJlXHU1MDMwXHU1''@;'; + put 'put ''MDMyXHU1MDMzXHU1MDM1XHU1MDQwXHU1MDQxXHU1MDQyXHU1MDQ1XHU1MDQ2XHU1MDRhXHU1MDRjXHU1MDRlXHU1MDUxXHU1MDUyXHU1MDUzXHU1MDU3XHU1MDU5XHU1MDVmXHU1MDYwXHU1MDYyXHU1MDYzXHU1MDY2XHU1MDY3XHU1MDZhXHU1MDZkXHU1MDcwXHU1MDcxXHU1MDNiXHU1MDgx''@;'; + put 'put ''XHU1MDgzXHU1MDg0XHU1MDg2XHU1MDhhXHU1MDhlXHU1MDhmXHU1MDkwIl0sWyI4ZmIyYTEiLCJcdTUwOTJcdTUwOTNcdTUwOTRcdTUwOTZcdTUwOWJcdTUwOWNcdTUwOWUiLDQsIlx1NTBhYVx1NTBhZlx1NTBiMFx1NTBiOVx1NTBiYVx1NTBiZFx1NTBjMFx1NTBjM1x1NTBjNFx1NTBjN1x1''@;'; + put 'put ''NTBjY1x1NTBjZVx1NTBkMFx1NTBkM1x1NTBkNFx1NTBkOFx1NTBkY1x1NTBkZFx1NTBkZlx1NTBlMlx1NTBlNFx1NTBlNlx1NTBlOFx1NTBlOVx1NTBlZlx1NTBmMVx1NTBmNlx1NTBmYVx1NTBmZVx1NTEwM1x1NTEwNlx1NTEwN1x1NTEwOFx1NTEwYlx1NTEwY1x1NTEwZFx1NTEwZVx1NTBm''@;'; + put 'put ''Mlx1NTExMFx1NTExN1x1NTExOVx1NTExYlx1NTExY1x1NTExZFx1NTExZVx1NTEyM1x1NTEyN1x1NTEyOFx1NTEyY1x1NTEyZFx1NTEyZlx1NTEzMVx1NTEzM1x1NTEzNFx1NTEzNVx1NTEzOFx1NTEzOVx1NTE0Mlx1NTE0YVx1NTE0Zlx1NTE1M1x1NTE1NVx1NTE1N1x1NTE1OFx1NTE1Zlx1''@;'; + put 'put ''NTE2NFx1NTE2Nlx1NTE3ZVx1NTE4M1x1NTE4NFx1NTE4Ylx1NTE4ZVx1NTE5OFx1NTE5ZFx1NTFhMVx1NTFhM1x1NTFhZFx1NTFiOFx1NTFiYVx1NTFiY1x1NTFiZVx1NTFiZlx1NTFjMiJdLFsiOGZiM2ExIiwiXHU1MWM4XHU1MWNmXHU1MWQxXHU1MWQyXHU1MWQzXHU1MWQ1XHU1MWQ4XHU1''@;'; + put 'put ''MWRlXHU1MWUyXHU1MWU1XHU1MWVlXHU1MWYyXHU1MWYzXHU1MWY0XHU1MWY3XHU1MjAxXHU1MjAyXHU1MjA1XHU1MjEyXHU1MjEzXHU1MjE1XHU1MjE2XHU1MjE4XHU1MjIyXHU1MjI4XHU1MjMxXHU1MjMyXHU1MjM1XHU1MjNjXHU1MjQ1XHU1MjQ5XHU1MjU1XHU1MjU3XHU1MjU4XHU1MjVh''@;'; + put 'put ''XHU1MjVjXHU1MjVmXHU1MjYwXHU1MjYxXHU1MjY2XHU1MjZlXHU1Mjc3XHU1Mjc4XHU1Mjc5XHU1MjgwXHU1MjgyXHU1Mjg1XHU1MjhhXHU1MjhjXHU1MjkzXHU1Mjk1XHU1Mjk2XHU1Mjk3XHU1Mjk4XHU1MjlhXHU1MjljXHU1MmE0XHU1MmE1XHU1MmE2XHU1MmE3XHU1MmFmXHU1MmIwXHU1''@;'; + put 'put ''MmI2XHU1MmI3XHU1MmI4XHU1MmJhXHU1MmJiXHU1MmJkXHU1MmMwXHU1MmM0XHU1MmM2XHU1MmM4XHU1MmNjXHU1MmNmXHU1MmQxXHU1MmQ0XHU1MmQ2XHU1MmRiXHU1MmRjXHU1MmUxXHU1MmU1XHU1MmU4XHU1MmU5XHU1MmVhXHU1MmVjXHU1MmYwXHU1MmYxXHU1MmY0XHU1MmY2XHU1MmY3''@;'; + put 'put ''XHU1MzAwXHU1MzAzXHU1MzBhXHU1MzBiIl0sWyI4ZmI0YTEiLCJcdTUzMGNcdTUzMTFcdTUzMTNcdTUzMThcdTUzMWJcdTUzMWNcdTUzMWVcdTUzMWZcdTUzMjVcdTUzMjdcdTUzMjhcdTUzMjlcdTUzMmJcdTUzMmNcdTUzMmRcdTUzMzBcdTUzMzJcdTUzMzVcdTUzM2NcdTUzM2RcdTUzM2Vc''@;'; + put 'put ''dTUzNDJcdTUzNGNcdTUzNGJcdTUzNTlcdTUzNWJcdTUzNjFcdTUzNjNcdTUzNjVcdTUzNmNcdTUzNmRcdTUzNzJcdTUzNzlcdTUzN2VcdTUzODNcdTUzODdcdTUzODhcdTUzOGVcdTUzOTNcdTUzOTRcdTUzOTlcdTUzOWRcdTUzYTFcdTUzYTRcdTUzYWFcdTUzYWJcdTUzYWZcdTUzYjJcdTUz''@;'; + put 'put ''YjRcdTUzYjVcdTUzYjdcdTUzYjhcdTUzYmFcdTUzYmRcdTUzYzBcdTUzYzVcdTUzY2ZcdTUzZDJcdTUzZDNcdTUzZDVcdTUzZGFcdTUzZGRcdTUzZGVcdTUzZTBcdTUzZTZcdTUzZTdcdTUzZjVcdTU0MDJcdTU0MTNcdTU0MWFcdTU0MjFcdTU0MjdcdTU0MjhcdTU0MmFcdTU0MmZcdTU0MzFc''@;'; + put 'put ''dTU0MzRcdTU0MzVcdTU0NDNcdTU0NDRcdTU0NDdcdTU0NGRcdTU0NGZcdTU0NWVcdTU0NjJcdTU0NjRcdTU0NjZcdTU0NjdcdTU0NjlcdTU0NmJcdTU0NmRcdTU0NmVcdTU0NzRcdTU0N2YiXSxbIjhmYjVhMSIsIlx1NTQ4MVx1NTQ4M1x1NTQ4NVx1NTQ4OFx1NTQ4OVx1NTQ4ZFx1NTQ5MVx1''@;'; + put 'put ''NTQ5NVx1NTQ5Nlx1NTQ5Y1x1NTQ5Zlx1NTRhMVx1NTRhNlx1NTRhN1x1NTRhOVx1NTRhYVx1NTRhZFx1NTRhZVx1NTRiMVx1NTRiN1x1NTRiOVx1NTRiYVx1NTRiYlx1NTRiZlx1NTRjNlx1NTRjYVx1NTRjZFx1NTRjZVx1NTRlMFx1NTRlYVx1NTRlY1x1NTRlZlx1NTRmNlx1NTRmY1x1NTRm''@;'; + put 'put ''ZVx1NTRmZlx1NTUwMFx1NTUwMVx1NTUwNVx1NTUwOFx1NTUwOVx1NTUwY1x1NTUwZFx1NTUwZVx1NTUxNVx1NTUyYVx1NTUyYlx1NTUzMlx1NTUzNVx1NTUzNlx1NTUzYlx1NTUzY1x1NTUzZFx1NTU0MVx1NTU0N1x1NTU0OVx1NTU0YVx1NTU0ZFx1NTU1MFx1NTU1MVx1NTU1OFx1NTU1YVx1''@;'; + put 'put ''NTU1Ylx1NTU1ZVx1NTU2MFx1NTU2MVx1NTU2NFx1NTU2Nlx1NTU3Zlx1NTU4MVx1NTU4Mlx1NTU4Nlx1NTU4OFx1NTU4ZVx1NTU4Zlx1NTU5MVx1NTU5Mlx1NTU5M1x1NTU5NFx1NTU5N1x1NTVhM1x1NTVhNFx1NTVhZFx1NTViMlx1NTViZlx1NTVjMVx1NTVjM1x1NTVjNlx1NTVjOVx1NTVj''@;'; + put 'put ''Ylx1NTVjY1x1NTVjZVx1NTVkMVx1NTVkMiJdLFsiOGZiNmExIiwiXHU1NWQzXHU1NWQ3XHU1NWQ4XHU1NWRiXHU1NWRlXHU1NWUyXHU1NWU5XHU1NWY2XHU1NWZmXHU1NjA1XHU1NjA4XHU1NjBhXHU1NjBkIiw1LCJcdTU2MTlcdTU2MmNcdTU2MzBcdTU2MzNcdTU2MzVcdTU2MzdcdTU2Mzlc''@;'; + put 'put ''dTU2M2JcdTU2M2NcdTU2M2RcdTU2M2ZcdTU2NDBcdTU2NDFcdTU2NDNcdTU2NDRcdTU2NDZcdTU2NDlcdTU2NGJcdTU2NGRcdTU2NGZcdTU2NTRcdTU2NWVcdTU2NjBcdTU2NjFcdTU2NjJcdTU2NjNcdTU2NjZcdTU2NjlcdTU2NmRcdTU2NmZcdTU2NzFcdTU2NzJcdTU2NzVcdTU2ODRcdTU2''@;'; + put 'put ''ODVcdTU2ODhcdTU2OGJcdTU2OGNcdTU2OTVcdTU2OTlcdTU2OWFcdTU2OWRcdTU2OWVcdTU2OWZcdTU2YTZcdTU2YTdcdTU2YThcdTU2YTlcdTU2YWJcdTU2YWNcdTU2YWRcdTU2YjFcdTU2YjNcdTU2YjdcdTU2YmVcdTU2YzVcdTU2YzlcdTU2Y2FcdTU2Y2JcdTU2Y2ZcdTU2ZDBcdTU2Y2Nc''@;'; + put 'put ''dTU2Y2RcdTU2ZDlcdTU2ZGNcdTU2ZGRcdTU2ZGZcdTU2ZTFcdTU2ZTQiLDQsIlx1NTZmMVx1NTZlYlx1NTZlZCJdLFsiOGZiN2ExIiwiXHU1NmY2XHU1NmY3XHU1NzAxXHU1NzAyXHU1NzA3XHU1NzBhXHU1NzBjXHU1NzExXHU1NzE1XHU1NzFhXHU1NzFiXHU1NzFkXHU1NzIwXHU1NzIyXHU1''@;'; + put 'put ''NzIzXHU1NzI0XHU1NzI1XHU1NzI5XHU1NzJhXHU1NzJjXHU1NzJlXHU1NzJmXHU1NzMzXHU1NzM0XHU1NzNkXHU1NzNlXHU1NzNmXHU1NzQ1XHU1NzQ2XHU1NzRjXHU1NzRkXHU1NzUyXHU1NzYyXHU1NzY1XHU1NzY3XHU1NzY4XHU1NzZiXHU1NzZkIiw0LCJcdTU3NzNcdTU3NzRcdTU3NzVc''@;'; + put 'put ''dTU3NzdcdTU3NzlcdTU3N2FcdTU3N2JcdTU3N2NcdTU3N2VcdTU3ODFcdTU3ODNcdTU3OGNcdTU3OTRcdTU3OTdcdTU3OTlcdTU3OWFcdTU3OWNcdTU3OWRcdTU3OWVcdTU3OWZcdTU3YTFcdTU3OTVcdTU3YTdcdTU3YThcdTU3YTlcdTU3YWNcdTU3YjhcdTU3YmRcdTU3YzdcdTU3YzhcdTU3''@;'; + put 'put ''Y2NcdTU3Y2ZcdTU3ZDVcdTU3ZGRcdTU3ZGVcdTU3ZTRcdTU3ZTZcdTU3ZTdcdTU3ZTlcdTU3ZWRcdTU3ZjBcdTU3ZjVcdTU3ZjZcdTU3ZjhcdTU3ZmRcdTU3ZmVcdTU3ZmZcdTU4MDNcdTU4MDRcdTU4MDhcdTU4MDlcdTU3ZTEiXSxbIjhmYjhhMSIsIlx1NTgwY1x1NTgwZFx1NTgxYlx1NTgx''@;'; + put 'put ''ZVx1NTgxZlx1NTgyMFx1NTgyNlx1NTgyN1x1NTgyZFx1NTgzMlx1NTgzOVx1NTgzZlx1NTg0OVx1NTg0Y1x1NTg0ZFx1NTg0Zlx1NTg1MFx1NTg1NVx1NTg1Zlx1NTg2MVx1NTg2NFx1NTg2N1x1NTg2OFx1NTg3OFx1NTg3Y1x1NTg3Zlx1NTg4MFx1NTg4MVx1NTg4N1x1NTg4OFx1NTg4OVx1''@;'; + put 'put ''NTg4YVx1NTg4Y1x1NTg4ZFx1NTg4Zlx1NTg5MFx1NTg5NFx1NTg5Nlx1NTg5ZFx1NThhMFx1NThhMVx1NThhMlx1NThhNlx1NThhOVx1NThiMVx1NThiMlx1NThjNFx1NThiY1x1NThjMlx1NThjOFx1NThjZFx1NThjZVx1NThkMFx1NThkMlx1NThkNFx1NThkNlx1NThkYVx1NThkZFx1NThl''@;'; + put 'put ''MVx1NThlMlx1NThlOVx1NThmM1x1NTkwNVx1NTkwNlx1NTkwYlx1NTkwY1x1NTkxMlx1NTkxM1x1NTkxNFx1ODY0MVx1NTkxZFx1NTkyMVx1NTkyM1x1NTkyNFx1NTkyOFx1NTkyZlx1NTkzMFx1NTkzM1x1NTkzNVx1NTkzNlx1NTkzZlx1NTk0M1x1NTk0Nlx1NTk1Mlx1NTk1M1x1NTk1OVx1''@;'; + put 'put ''NTk1Ylx1NTk1ZFx1NTk1ZVx1NTk1Zlx1NTk2MVx1NTk2M1x1NTk2Ylx1NTk2ZCJdLFsiOGZiOWExIiwiXHU1OTZmXHU1OTcyXHU1OTc1XHU1OTc2XHU1OTc5XHU1OTdiXHU1OTdjXHU1OThiXHU1OThjXHU1OThlXHU1OTkyXHU1OTk1XHU1OTk3XHU1OTlmXHU1OWE0XHU1OWE3XHU1OWFkXHU1''@;'; + put 'put ''OWFlXHU1OWFmXHU1OWIwXHU1OWIzXHU1OWI3XHU1OWJhXHU1OWJjXHU1OWMxXHU1OWMzXHU1OWM0XHU1OWM4XHU1OWNhXHU1OWNkXHU1OWQyXHU1OWRkXHU1OWRlXHU1OWRmXHU1OWUzXHU1OWU0XHU1OWU3XHU1OWVlXHU1OWVmXHU1OWYxXHU1OWYyXHU1OWY0XHU1OWY3XHU1YTAwXHU1YTA0''@;'; + put 'put ''XHU1YTBjXHU1YTBkXHU1YTBlXHU1YTEyXHU1YTEzXHU1YTFlXHU1YTIzXHU1YTI0XHU1YTI3XHU1YTI4XHU1YTJhXHU1YTJkXHU1YTMwXHU1YTQ0XHU1YTQ1XHU1YTQ3XHU1YTQ4XHU1YTRjXHU1YTUwXHU1YTU1XHU1YTVlXHU1YTYzXHU1YTY1XHU1YTY3XHU1YTZkXHU1YTc3XHU1YTdhXHU1''@;'; + put 'put ''YTdiXHU1YTdlXHU1YThiXHU1YTkwXHU1YTkzXHU1YTk2XHU1YTk5XHU1YTljXHU1YTllXHU1YTlmXHU1YWEwXHU1YWEyXHU1YWE3XHU1YWFjXHU1YWIxXHU1YWIyXHU1YWIzXHU1YWI1XHU1YWI4XHU1YWJhXHU1YWJiXHU1YWJmIl0sWyI4ZmJhYTEiLCJcdTVhYzRcdTVhYzZcdTVhYzhcdTVh''@;'; + put 'put ''Y2ZcdTVhZGFcdTVhZGNcdTVhZTBcdTVhZTVcdTVhZWFcdTVhZWVcdTVhZjVcdTVhZjZcdTVhZmRcdTViMDBcdTViMDFcdTViMDhcdTViMTdcdTViMzRcdTViMTlcdTViMWJcdTViMWRcdTViMjFcdTViMjVcdTViMmRcdTViMzhcdTViNDFcdTViNGJcdTViNGNcdTViNTJcdTViNTZcdTViNWVc''@;'; + put 'put ''dTViNjhcdTViNmVcdTViNmZcdTViN2NcdTViN2RcdTViN2VcdTViN2ZcdTViODFcdTViODRcdTViODZcdTViOGFcdTViOGVcdTViOTBcdTViOTFcdTViOTNcdTViOTRcdTViOTZcdTViYThcdTViYTlcdTViYWNcdTViYWRcdTViYWZcdTViYjFcdTViYjJcdTViYjdcdTViYmFcdTViYmNcdTVi''@;'; + put 'put ''YzBcdTViYzFcdTViY2RcdTViY2ZcdTViZDYiLDQsIlx1NWJlMFx1NWJlZlx1NWJmMVx1NWJmNFx1NWJmZFx1NWMwY1x1NWMxN1x1NWMxZVx1NWMxZlx1NWMyM1x1NWMyNlx1NWMyOVx1NWMyYlx1NWMyY1x1NWMyZVx1NWMzMFx1NWMzMlx1NWMzNVx1NWMzNlx1NWM1OVx1NWM1YVx1NWM1Y1x1''@;'; + put 'put ''NWM2Mlx1NWM2M1x1NWM2N1x1NWM2OFx1NWM2OSJdLFsiOGZiYmExIiwiXHU1YzZkXHU1YzcwXHU1Yzc0XHU1Yzc1XHU1YzdhXHU1YzdiXHU1YzdjXHU1YzdkXHU1Yzg3XHU1Yzg4XHU1YzhhXHU1YzhmXHU1YzkyXHU1YzlkXHU1YzlmXHU1Y2EwXHU1Y2EyXHU1Y2EzXHU1Y2E2XHU1Y2FhXHU1''@;'; + put 'put ''Y2IyXHU1Y2I0XHU1Y2I1XHU1Y2JhXHU1Y2M5XHU1Y2NiXHU1Y2QyXHU1Y2RkXHU1Y2Q3XHU1Y2VlXHU1Y2YxXHU1Y2YyXHU1Y2Y0XHU1ZDAxXHU1ZDA2XHU1ZDBkXHU1ZDEyXHU1ZDJiXHU1ZDIzXHU1ZDI0XHU1ZDI2XHU1ZDI3XHU1ZDMxXHU1ZDM0XHU1ZDM5XHU1ZDNkXHU1ZDNmXHU1ZDQy''@;'; + put 'put ''XHU1ZDQzXHU1ZDQ2XHU1ZDQ4XHU1ZDU1XHU1ZDUxXHU1ZDU5XHU1ZDRhXHU1ZDVmXHU1ZDYwXHU1ZDYxXHU1ZDYyXHU1ZDY0XHU1ZDZhXHU1ZDZkXHU1ZDcwXHU1ZDc5XHU1ZDdhXHU1ZDdlXHU1ZDdmXHU1ZDgxXHU1ZDgzXHU1ZDg4XHU1ZDhhXHU1ZDkyXHU1ZDkzXHU1ZDk0XHU1ZDk1XHU1''@;'; + put 'put ''ZDk5XHU1ZDliXHU1ZDlmXHU1ZGEwXHU1ZGE3XHU1ZGFiXHU1ZGIwXHU1ZGI0XHU1ZGI4XHU1ZGI5XHU1ZGMzXHU1ZGM3XHU1ZGNiXHU1ZGQwXHU1ZGNlXHU1ZGQ4XHU1ZGQ5XHU1ZGUwXHU1ZGU0Il0sWyI4ZmJjYTEiLCJcdTVkZTlcdTVkZjhcdTVkZjlcdTVlMDBcdTVlMDdcdTVlMGRcdTVl''@;'; + put 'put ''MTJcdTVlMTRcdTVlMTVcdTVlMThcdTVlMWZcdTVlMjBcdTVlMmVcdTVlMjhcdTVlMzJcdTVlMzVcdTVlM2VcdTVlNGJcdTVlNTBcdTVlNDlcdTVlNTFcdTVlNTZcdTVlNThcdTVlNWJcdTVlNWNcdTVlNWVcdTVlNjhcdTVlNmEiLDQsIlx1NWU3MFx1NWU4MFx1NWU4Ylx1NWU4ZVx1NWVhMlx1''@;'; + put 'put ''NWVhNFx1NWVhNVx1NWVhOFx1NWVhYVx1NWVhY1x1NWViMVx1NWViM1x1NWViZFx1NWViZVx1NWViZlx1NWVjNlx1NWVjY1x1NWVjYlx1NWVjZVx1NWVkMVx1NWVkMlx1NWVkNFx1NWVkNVx1NWVkY1x1NWVkZVx1NWVlNVx1NWVlYlx1NWYwMlx1NWYwNlx1NWYwN1x1NWYwOFx1NWYwZVx1NWYx''@;'; + put 'put ''OVx1NWYxY1x1NWYxZFx1NWYyMVx1NWYyMlx1NWYyM1x1NWYyNFx1NWYyOFx1NWYyYlx1NWYyY1x1NWYyZVx1NWYzMFx1NWYzNFx1NWYzNlx1NWYzYlx1NWYzZFx1NWYzZlx1NWY0MFx1NWY0NFx1NWY0NVx1NWY0N1x1NWY0ZFx1NWY1MFx1NWY1NFx1NWY1OFx1NWY1Ylx1NWY2MFx1NWY2M1x1''@;'; + put 'put ''NWY2NFx1NWY2NyJdLFsiOGZiZGExIiwiXHU1ZjZmXHU1ZjcyXHU1Zjc0XHU1Zjc1XHU1Zjc4XHU1ZjdhXHU1ZjdkXHU1ZjdlXHU1Zjg5XHU1ZjhkXHU1ZjhmXHU1Zjk2XHU1ZjljXHU1ZjlkXHU1ZmEyXHU1ZmE3XHU1ZmFiXHU1ZmE0XHU1ZmFjXHU1ZmFmXHU1ZmIwXHU1ZmIxXHU1ZmI4XHU1''@;'; + put 'put ''ZmM0XHU1ZmM3XHU1ZmM4XHU1ZmM5XHU1ZmNiXHU1ZmQwIiw0LCJcdTVmZGVcdTVmZTFcdTVmZTJcdTVmZThcdTVmZTlcdTVmZWFcdTVmZWNcdTVmZWRcdTVmZWVcdTVmZWZcdTVmZjJcdTVmZjNcdTVmZjZcdTVmZmFcdTVmZmNcdTYwMDdcdTYwMGFcdTYwMGRcdTYwMTNcdTYwMTRcdTYwMTdc''@;'; + put 'put ''dTYwMThcdTYwMWFcdTYwMWZcdTYwMjRcdTYwMmRcdTYwMzNcdTYwMzVcdTYwNDBcdTYwNDdcdTYwNDhcdTYwNDlcdTYwNGNcdTYwNTFcdTYwNTRcdTYwNTZcdTYwNTdcdTYwNWRcdTYwNjFcdTYwNjdcdTYwNzFcdTYwN2VcdTYwN2ZcdTYwODJcdTYwODZcdTYwODhcdTYwOGFcdTYwOGVcdTYw''@;'; + put 'put ''OTFcdTYwOTNcdTYwOTVcdTYwOThcdTYwOWRcdTYwOWVcdTYwYTJcdTYwYTRcdTYwYTVcdTYwYThcdTYwYjBcdTYwYjFcdTYwYjciXSxbIjhmYmVhMSIsIlx1NjBiYlx1NjBiZVx1NjBjMlx1NjBjNFx1NjBjOFx1NjBjOVx1NjBjYVx1NjBjYlx1NjBjZVx1NjBjZlx1NjBkNFx1NjBkNVx1NjBk''@;'; + put 'put ''OVx1NjBkYlx1NjBkZFx1NjBkZVx1NjBlMlx1NjBlNVx1NjBmMlx1NjBmNVx1NjBmOFx1NjBmY1x1NjBmZFx1NjEwMlx1NjEwN1x1NjEwYVx1NjEwY1x1NjExMCIsNCwiXHU2MTE2XHU2MTE3XHU2MTE5XHU2MTFjXHU2MTFlXHU2MTIyXHU2MTJhXHU2MTJiXHU2MTMwXHU2MTMxXHU2MTM1XHU2''@;'; + put 'put ''MTM2XHU2MTM3XHU2MTM5XHU2MTQxXHU2MTQ1XHU2MTQ2XHU2MTQ5XHU2MTVlXHU2MTYwXHU2MTZjXHU2MTcyXHU2MTc4XHU2MTdiXHU2MTdjXHU2MTdmXHU2MTgwXHU2MTgxXHU2MTgzXHU2MTg0XHU2MThiXHU2MThkXHU2MTkyXHU2MTkzXHU2MTk3XHU2MTk4XHU2MTljXHU2MTlkXHU2MTlm''@;'; + put 'put ''XHU2MWEwXHU2MWE1XHU2MWE4XHU2MWFhXHU2MWFkXHU2MWI4XHU2MWI5XHU2MWJjXHU2MWMwXHU2MWMxXHU2MWMyXHU2MWNlXHU2MWNmXHU2MWQ1XHU2MWRjXHU2MWRkXHU2MWRlXHU2MWRmXHU2MWUxXHU2MWUyXHU2MWU3XHU2MWU5XHU2MWU1Il0sWyI4ZmJmYTEiLCJcdTYxZWNcdTYxZWRc''@;'; + put 'put ''dTYxZWZcdTYyMDFcdTYyMDNcdTYyMDRcdTYyMDdcdTYyMTNcdTYyMTVcdTYyMWNcdTYyMjBcdTYyMjJcdTYyMjNcdTYyMjdcdTYyMjlcdTYyMmJcdTYyMzlcdTYyM2RcdTYyNDJcdTYyNDNcdTYyNDRcdTYyNDZcdTYyNGNcdTYyNTBcdTYyNTFcdTYyNTJcdTYyNTRcdTYyNTZcdTYyNWFcdTYy''@;'; + put 'put ''NWNcdTYyNjRcdTYyNmRcdTYyNmZcdTYyNzNcdTYyN2FcdTYyN2RcdTYyOGRcdTYyOGVcdTYyOGZcdTYyOTBcdTYyYTZcdTYyYThcdTYyYjNcdTYyYjZcdTYyYjdcdTYyYmFcdTYyYmVcdTYyYmZcdTYyYzRcdTYyY2VcdTYyZDVcdTYyZDZcdTYyZGFcdTYyZWFcdTYyZjJcdTYyZjRcdTYyZmNc''@;'; + put 'put ''dTYyZmRcdTYzMDNcdTYzMDRcdTYzMGFcdTYzMGJcdTYzMGRcdTYzMTBcdTYzMTNcdTYzMTZcdTYzMThcdTYzMjlcdTYzMmFcdTYzMmRcdTYzMzVcdTYzMzZcdTYzMzlcdTYzM2NcdTYzNDFcdTYzNDJcdTYzNDNcdTYzNDRcdTYzNDZcdTYzNGFcdTYzNGJcdTYzNGVcdTYzNTJcdTYzNTNcdTYz''@;'; + put 'put ''NTRcdTYzNThcdTYzNWJcdTYzNjVcdTYzNjZcdTYzNmNcdTYzNmRcdTYzNzFcdTYzNzRcdTYzNzUiXSxbIjhmYzBhMSIsIlx1NjM3OFx1NjM3Y1x1NjM3ZFx1NjM3Zlx1NjM4Mlx1NjM4NFx1NjM4N1x1NjM4YVx1NjM5MFx1NjM5NFx1NjM5NVx1NjM5OVx1NjM5YVx1NjM5ZVx1NjNhNFx1NjNh''@;'; + put 'put ''Nlx1NjNhZFx1NjNhZVx1NjNhZlx1NjNiZFx1NjNjMVx1NjNjNVx1NjNjOFx1NjNjZVx1NjNkMVx1NjNkM1x1NjNkNFx1NjNkNVx1NjNkY1x1NjNlMFx1NjNlNVx1NjNlYVx1NjNlY1x1NjNmMlx1NjNmM1x1NjNmNVx1NjNmOFx1NjNmOVx1NjQwOVx1NjQwYVx1NjQxMFx1NjQxMlx1NjQxNFx1''@;'; + put 'put ''NjQxOFx1NjQxZVx1NjQyMFx1NjQyMlx1NjQyNFx1NjQyNVx1NjQyOVx1NjQyYVx1NjQyZlx1NjQzMFx1NjQzNVx1NjQzZFx1NjQzZlx1NjQ0Ylx1NjQ0Zlx1NjQ1MVx1NjQ1Mlx1NjQ1M1x1NjQ1NFx1NjQ1YVx1NjQ1Ylx1NjQ1Y1x1NjQ1ZFx1NjQ1Zlx1NjQ2MFx1NjQ2MVx1NjQ2M1x1NjQ2''@;'; + put 'put ''ZFx1NjQ3M1x1NjQ3NFx1NjQ3Ylx1NjQ3ZFx1NjQ4NVx1NjQ4N1x1NjQ4Zlx1NjQ5MFx1NjQ5MVx1NjQ5OFx1NjQ5OVx1NjQ5Ylx1NjQ5ZFx1NjQ5Zlx1NjRhMVx1NjRhM1x1NjRhNlx1NjRhOFx1NjRhY1x1NjRiM1x1NjRiZFx1NjRiZVx1NjRiZiJdLFsiOGZjMWExIiwiXHU2NGM0XHU2NGM5''@;'; + put 'put ''XHU2NGNhXHU2NGNiXHU2NGNjXHU2NGNlXHU2NGQwXHU2NGQxXHU2NGQ1XHU2NGQ3XHU2NGU0XHU2NGU1XHU2NGU5XHU2NGVhXHU2NGVkXHU2NGYwXHU2NGY1XHU2NGY3XHU2NGZiXHU2NGZmXHU2NTAxXHU2NTA0XHU2NTA4XHU2NTA5XHU2NTBhXHU2NTBmXHU2NTEzXHU2NTE0XHU2NTE2XHU2''@;'; + put 'put ''NTE5XHU2NTFiXHU2NTFlXHU2NTFmXHU2NTIyXHU2NTI2XHU2NTI5XHU2NTJlXHU2NTMxXHU2NTNhXHU2NTNjXHU2NTNkXHU2NTQzXHU2NTQ3XHU2NTQ5XHU2NTUwXHU2NTUyXHU2NTU0XHU2NTVmXHU2NTYwXHU2NTY3XHU2NTZiXHU2NTdhXHU2NTdkXHU2NTgxXHU2NTg1XHU2NThhXHU2NTky''@;'; + put 'put ''XHU2NTk1XHU2NTk4XHU2NTlkXHU2NWEwXHU2NWEzXHU2NWE2XHU2NWFlXHU2NWIyXHU2NWIzXHU2NWI0XHU2NWJmXHU2NWMyXHU2NWM4XHU2NWM5XHU2NWNlXHU2NWQwXHU2NWQ0XHU2NWQ2XHU2NWQ4XHU2NWRmXHU2NWYwXHU2NWYyXHU2NWY0XHU2NWY1XHU2NWY5XHU2NWZlXHU2NWZmXHU2''@;'; + put 'put ''NjAwXHU2NjA0XHU2NjA4XHU2NjA5XHU2NjBkXHU2NjExXHU2NjEyXHU2NjE1XHU2NjE2XHU2NjFkIl0sWyI4ZmMyYTEiLCJcdTY2MWVcdTY2MjFcdTY2MjJcdTY2MjNcdTY2MjRcdTY2MjZcdTY2MjlcdTY2MmFcdTY2MmJcdTY2MmNcdTY2MmVcdTY2MzBcdTY2MzFcdTY2MzNcdTY2MzlcdTY2''@;'; + put 'put ''MzdcdTY2NDBcdTY2NDVcdTY2NDZcdTY2NGFcdTY2NGNcdTY2NTFcdTY2NGVcdTY2NTdcdTY2NThcdTY2NTlcdTY2NWJcdTY2NWNcdTY2NjBcdTY2NjFcdTY2ZmJcdTY2NmFcdTY2NmJcdTY2NmNcdTY2N2VcdTY2NzNcdTY2NzVcdTY2N2ZcdTY2NzdcdTY2NzhcdTY2NzlcdTY2N2JcdTY2ODBc''@;'; + put 'put ''dTY2N2NcdTY2OGJcdTY2OGNcdTY2OGRcdTY2OTBcdTY2OTJcdTY2OTlcdTY2OWFcdTY2OWJcdTY2OWNcdTY2OWZcdTY2YTBcdTY2YTRcdTY2YWRcdTY2YjFcdTY2YjJcdTY2YjVcdTY2YmJcdTY2YmZcdTY2YzBcdTY2YzJcdTY2YzNcdTY2YzhcdTY2Y2NcdTY2Y2VcdTY2Y2ZcdTY2ZDRcdTY2''@;'; + put 'put ''ZGJcdTY2ZGZcdTY2ZThcdTY2ZWJcdTY2ZWNcdTY2ZWVcdTY2ZmFcdTY3MDVcdTY3MDdcdTY3MGVcdTY3MTNcdTY3MTlcdTY3MWNcdTY3MjBcdTY3MjJcdTY3MzNcdTY3M2VcdTY3NDVcdTY3NDdcdTY3NDhcdTY3NGNcdTY3NTRcdTY3NTVcdTY3NWQiXSxbIjhmYzNhMSIsIlx1Njc2Nlx1Njc2''@;'; + put 'put ''Y1x1Njc2ZVx1Njc3NFx1Njc3Nlx1Njc3Ylx1Njc4MVx1Njc4NFx1Njc4ZVx1Njc4Zlx1Njc5MVx1Njc5M1x1Njc5Nlx1Njc5OFx1Njc5OVx1Njc5Ylx1NjdiMFx1NjdiMVx1NjdiMlx1NjdiNVx1NjdiYlx1NjdiY1x1NjdiZFx1NjdmOVx1NjdjMFx1NjdjMlx1NjdjM1x1NjdjNVx1NjdjOFx1''@;'; + put 'put ''NjdjOVx1NjdkMlx1NjdkN1x1NjdkOVx1NjdkY1x1NjdlMVx1NjdlNlx1NjdmMFx1NjdmMlx1NjdmNlx1NjdmN1x1Njg1Mlx1NjgxNFx1NjgxOVx1NjgxZFx1NjgxZlx1NjgyOFx1NjgyN1x1NjgyY1x1NjgyZFx1NjgyZlx1NjgzMFx1NjgzMVx1NjgzM1x1NjgzYlx1NjgzZlx1Njg0NFx1Njg0''@;'; + put 'put ''NVx1Njg0YVx1Njg0Y1x1Njg1NVx1Njg1N1x1Njg1OFx1Njg1Ylx1Njg2Ylx1Njg2ZSIsNCwiXHU2ODc1XHU2ODc5XHU2ODdhXHU2ODdiXHU2ODdjXHU2ODgyXHU2ODg0XHU2ODg2XHU2ODg4XHU2ODk2XHU2ODk4XHU2ODlhXHU2ODljXHU2OGExXHU2OGEzXHU2OGE1XHU2OGE5XHU2OGFhXHU2''@;'; + put 'put ''OGFlXHU2OGIyXHU2OGJiXHU2OGM1XHU2OGM4XHU2OGNjXHU2OGNmIl0sWyI4ZmM0YTEiLCJcdTY4ZDBcdTY4ZDFcdTY4ZDNcdTY4ZDZcdTY4ZDlcdTY4ZGNcdTY4ZGRcdTY4ZTVcdTY4ZThcdTY4ZWFcdTY4ZWJcdTY4ZWNcdTY4ZWRcdTY4ZjBcdTY4ZjFcdTY4ZjVcdTY4ZjZcdTY4ZmJcdTY4''@;'; + put 'put ''ZmNcdTY4ZmRcdTY5MDZcdTY5MDlcdTY5MGFcdTY5MTBcdTY5MTFcdTY5MTNcdTY5MTZcdTY5MTdcdTY5MzFcdTY5MzNcdTY5MzVcdTY5MzhcdTY5M2JcdTY5NDJcdTY5NDVcdTY5NDlcdTY5NGVcdTY5NTdcdTY5NWJcdTY5NjNcdTY5NjRcdTY5NjVcdTY5NjZcdTY5NjhcdTY5NjlcdTY5NmNc''@;'; + put 'put ''dTY5NzBcdTY5NzFcdTY5NzJcdTY5N2FcdTY5N2JcdTY5N2ZcdTY5ODBcdTY5OGRcdTY5OTJcdTY5OTZcdTY5OThcdTY5YTFcdTY5YTVcdTY5YTZcdTY5YThcdTY5YWJcdTY5YWRcdTY5YWZcdTY5YjdcdTY5YjhcdTY5YmFcdTY5YmNcdTY5YzVcdTY5YzhcdTY5ZDFcdTY5ZDZcdTY5ZDdcdTY5''@;'; + put 'put ''ZTJcdTY5ZTVcdTY5ZWVcdTY5ZWZcdTY5ZjFcdTY5ZjNcdTY5ZjVcdTY5ZmVcdTZhMDBcdTZhMDFcdTZhMDNcdTZhMGZcdTZhMTFcdTZhMTVcdTZhMWFcdTZhMWRcdTZhMjBcdTZhMjRcdTZhMjhcdTZhMzBcdTZhMzIiXSxbIjhmYzVhMSIsIlx1NmEzNFx1NmEzN1x1NmEzYlx1NmEzZVx1NmEz''@;'; + put 'put ''Zlx1NmE0NVx1NmE0Nlx1NmE0OVx1NmE0YVx1NmE0ZVx1NmE1MFx1NmE1MVx1NmE1Mlx1NmE1NVx1NmE1Nlx1NmE1Ylx1NmE2NFx1NmE2N1x1NmE2YVx1NmE3MVx1NmE3M1x1NmE3ZVx1NmE4MVx1NmE4M1x1NmE4Nlx1NmE4N1x1NmE4OVx1NmE4Ylx1NmE5MVx1NmE5Ylx1NmE5ZFx1NmE5ZVx1''@;'; + put 'put ''NmE5Zlx1NmFhNVx1NmFhYlx1NmFhZlx1NmFiMFx1NmFiMVx1NmFiNFx1NmFiZFx1NmFiZVx1NmFiZlx1NmFjNlx1NmFjOVx1NmFjOFx1NmFjY1x1NmFkMFx1NmFkNFx1NmFkNVx1NmFkNlx1NmFkY1x1NmFkZFx1NmFlNFx1NmFlN1x1NmFlY1x1NmFmMFx1NmFmMVx1NmFmMlx1NmFmY1x1NmFm''@;'; + put 'put ''ZFx1NmIwMlx1NmIwM1x1NmIwNlx1NmIwN1x1NmIwOVx1NmIwZlx1NmIxMFx1NmIxMVx1NmIxN1x1NmIxYlx1NmIxZVx1NmIyNFx1NmIyOFx1NmIyYlx1NmIyY1x1NmIyZlx1NmIzNVx1NmIzNlx1NmIzYlx1NmIzZlx1NmI0Nlx1NmI0YVx1NmI0ZFx1NmI1Mlx1NmI1Nlx1NmI1OFx1NmI1ZFx1''@;'; + put 'put ''NmI2MFx1NmI2N1x1NmI2Ylx1NmI2ZVx1NmI3MFx1NmI3NVx1NmI3ZCJdLFsiOGZjNmExIiwiXHU2YjdlXHU2YjgyXHU2Yjg1XHU2Yjk3XHU2YjliXHU2YjlmXHU2YmEwXHU2YmEyXHU2YmEzXHU2YmE4XHU2YmE5XHU2YmFjXHU2YmFkXHU2YmFlXHU2YmIwXHU2YmI4XHU2YmI5XHU2YmJkXHU2''@;'; + put 'put ''YmJlXHU2YmMzXHU2YmM0XHU2YmM5XHU2YmNjXHU2YmQ2XHU2YmRhXHU2YmUxXHU2YmUzXHU2YmU2XHU2YmU3XHU2YmVlXHU2YmYxXHU2YmY3XHU2YmY5XHU2YmZmXHU2YzAyXHU2YzA0XHU2YzA1XHU2YzA5XHU2YzBkXHU2YzBlXHU2YzEwXHU2YzEyXHU2YzE5XHU2YzFmXHU2YzI2XHU2YzI3''@;'; + put 'put ''XHU2YzI4XHU2YzJjXHU2YzJlXHU2YzMzXHU2YzM1XHU2YzM2XHU2YzNhXHU2YzNiXHU2YzNmXHU2YzRhXHU2YzRiXHU2YzRkXHU2YzRmXHU2YzUyXHU2YzU0XHU2YzU5XHU2YzViXHU2YzVjXHU2YzZiXHU2YzZkXHU2YzZmXHU2Yzc0XHU2Yzc2XHU2Yzc4XHU2Yzc5XHU2YzdiXHU2Yzg1XHU2''@;'; + put 'put ''Yzg2XHU2Yzg3XHU2Yzg5XHU2Yzk0XHU2Yzk1XHU2Yzk3XHU2Yzk4XHU2YzljXHU2YzlmXHU2Y2IwXHU2Y2IyXHU2Y2I0XHU2Y2MyXHU2Y2M2XHU2Y2NkXHU2Y2NmXHU2Y2QwXHU2Y2QxXHU2Y2QyXHU2Y2Q0XHU2Y2Q2Il0sWyI4ZmM3YTEiLCJcdTZjZGFcdTZjZGNcdTZjZTBcdTZjZTdcdTZj''@;'; + put 'put ''ZTlcdTZjZWJcdTZjZWNcdTZjZWVcdTZjZjJcdTZjZjRcdTZkMDRcdTZkMDdcdTZkMGFcdTZkMGVcdTZkMGZcdTZkMTFcdTZkMTNcdTZkMWFcdTZkMjZcdTZkMjdcdTZkMjhcdTZjNjdcdTZkMmVcdTZkMmZcdTZkMzFcdTZkMzlcdTZkM2NcdTZkM2ZcdTZkNTdcdTZkNWVcdTZkNWZcdTZkNjFc''@;'; + put 'put ''dTZkNjVcdTZkNjdcdTZkNmZcdTZkNzBcdTZkN2NcdTZkODJcdTZkODdcdTZkOTFcdTZkOTJcdTZkOTRcdTZkOTZcdTZkOTdcdTZkOThcdTZkYWFcdTZkYWNcdTZkYjRcdTZkYjdcdTZkYjlcdTZkYmRcdTZkYmZcdTZkYzRcdTZkYzhcdTZkY2FcdTZkY2VcdTZkY2ZcdTZkZDZcdTZkZGJcdTZk''@;'; + put 'put ''ZGRcdTZkZGZcdTZkZTBcdTZkZTJcdTZkZTVcdTZkZTlcdTZkZWZcdTZkZjBcdTZkZjRcdTZkZjZcdTZkZmNcdTZlMDBcdTZlMDRcdTZlMWVcdTZlMjJcdTZlMjdcdTZlMzJcdTZlMzZcdTZlMzlcdTZlM2JcdTZlM2NcdTZlNDRcdTZlNDVcdTZlNDhcdTZlNDlcdTZlNGJcdTZlNGZcdTZlNTFc''@;'; + put 'put ''dTZlNTJcdTZlNTNcdTZlNTRcdTZlNTdcdTZlNWNcdTZlNWRcdTZlNWUiXSxbIjhmYzhhMSIsIlx1NmU2Mlx1NmU2M1x1NmU2OFx1NmU3M1x1NmU3Ylx1NmU3ZFx1NmU4ZFx1NmU5M1x1NmU5OVx1NmVhMFx1NmVhN1x1NmVhZFx1NmVhZVx1NmViMVx1NmViM1x1NmViYlx1NmViZlx1NmVjMFx1''@;'; + put 'put ''NmVjMVx1NmVjM1x1NmVjN1x1NmVjOFx1NmVjYVx1NmVjZFx1NmVjZVx1NmVjZlx1NmVlYlx1NmVlZFx1NmVlZVx1NmVmOVx1NmVmYlx1NmVmZFx1NmYwNFx1NmYwOFx1NmYwYVx1NmYwY1x1NmYwZFx1NmYxNlx1NmYxOFx1NmYxYVx1NmYxYlx1NmYyNlx1NmYyOVx1NmYyYVx1NmYyZlx1NmYz''@;'; + put 'put ''MFx1NmYzM1x1NmYzNlx1NmYzYlx1NmYzY1x1NmYyZFx1NmY0Zlx1NmY1MVx1NmY1Mlx1NmY1M1x1NmY1N1x1NmY1OVx1NmY1YVx1NmY1ZFx1NmY1ZVx1NmY2MVx1NmY2Mlx1NmY2OFx1NmY2Y1x1NmY3ZFx1NmY3ZVx1NmY4M1x1NmY4N1x1NmY4OFx1NmY4Ylx1NmY4Y1x1NmY4ZFx1NmY5MFx1''@;'; + put 'put ''NmY5Mlx1NmY5M1x1NmY5NFx1NmY5Nlx1NmY5YVx1NmY5Zlx1NmZhMFx1NmZhNVx1NmZhNlx1NmZhN1x1NmZhOFx1NmZhZVx1NmZhZlx1NmZiMFx1NmZiNVx1NmZiNlx1NmZiY1x1NmZjNVx1NmZjN1x1NmZjOFx1NmZjYSJdLFsiOGZjOWExIiwiXHU2ZmRhXHU2ZmRlXHU2ZmU4XHU2ZmU5XHU2''@;'; + put 'put ''ZmYwXHU2ZmY1XHU2ZmY5XHU2ZmZjXHU2ZmZkXHU3MDAwXHU3MDA1XHU3MDA2XHU3MDA3XHU3MDBkXHU3MDE3XHU3MDIwXHU3MDIzXHU3MDJmXHU3MDM0XHU3MDM3XHU3MDM5XHU3MDNjXHU3MDQzXHU3MDQ0XHU3MDQ4XHU3MDQ5XHU3MDRhXHU3MDRiXHU3MDU0XHU3MDU1XHU3MDVkXHU3MDVl''@;'; + put 'put ''XHU3MDRlXHU3MDY0XHU3MDY1XHU3MDZjXHU3MDZlXHU3MDc1XHU3MDc2XHU3MDdlXHU3MDgxXHU3MDg1XHU3MDg2XHU3MDk0Iiw0LCJcdTcwOWJcdTcwYTRcdTcwYWJcdTcwYjBcdTcwYjFcdTcwYjRcdTcwYjdcdTcwY2FcdTcwZDFcdTcwZDNcdTcwZDRcdTcwZDVcdTcwZDZcdTcwZDhcdTcw''@;'; + put 'put ''ZGNcdTcwZTRcdTcwZmFcdTcxMDMiLDQsIlx1NzEwYlx1NzEwY1x1NzEwZlx1NzExZVx1NzEyMFx1NzEyYlx1NzEyZFx1NzEyZlx1NzEzMFx1NzEzMVx1NzEzOFx1NzE0MVx1NzE0NVx1NzE0Nlx1NzE0N1x1NzE0YVx1NzE0Ylx1NzE1MFx1NzE1Mlx1NzE1N1x1NzE1YVx1NzE1Y1x1NzE1ZVx1''@;'; + put 'put ''NzE2MCJdLFsiOGZjYWExIiwiXHU3MTY4XHU3MTc5XHU3MTgwXHU3MTg1XHU3MTg3XHU3MThjXHU3MTkyXHU3MTlhXHU3MTliXHU3MWEwXHU3MWEyXHU3MWFmXHU3MWIwXHU3MWIyXHU3MWIzXHU3MWJhXHU3MWJmXHU3MWMwXHU3MWMxXHU3MWM0XHU3MWNiXHU3MWNjXHU3MWQzXHU3MWQ2XHU3''@;'; + put 'put ''MWQ5XHU3MWRhXHU3MWRjXHU3MWY4XHU3MWZlXHU3MjAwXHU3MjA3XHU3MjA4XHU3MjA5XHU3MjEzXHU3MjE3XHU3MjFhXHU3MjFkXHU3MjFmXHU3MjI0XHU3MjJiXHU3MjJmXHU3MjM0XHU3MjM4XHU3MjM5XHU3MjQxXHU3MjQyXHU3MjQzXHU3MjQ1XHU3MjRlXHU3MjRmXHU3MjUwXHU3MjUz''@;'; + put 'put ''XHU3MjU1XHU3MjU2XHU3MjVhXHU3MjVjXHU3MjVlXHU3MjYwXHU3MjYzXHU3MjY4XHU3MjZiXHU3MjZlXHU3MjZmXHU3MjcxXHU3Mjc3XHU3Mjc4XHU3MjdiXHU3MjdjXHU3MjdmXHU3Mjg0XHU3Mjg5XHU3MjhkXHU3MjhlXHU3MjkzXHU3MjliXHU3MmE4XHU3MmFkXHU3MmFlXHU3MmIxXHU3''@;'; + put 'put ''MmI0XHU3MmJlXHU3MmMxXHU3MmM3XHU3MmM5XHU3MmNjXHU3MmQ1XHU3MmQ2XHU3MmQ4XHU3MmRmXHU3MmU1XHU3MmYzXHU3MmY0XHU3MmZhXHU3MmZiIl0sWyI4ZmNiYTEiLCJcdTcyZmVcdTczMDJcdTczMDRcdTczMDVcdTczMDdcdTczMGJcdTczMGRcdTczMTJcdTczMTNcdTczMThcdTcz''@;'; + put 'put ''MTlcdTczMWVcdTczMjJcdTczMjRcdTczMjdcdTczMjhcdTczMmNcdTczMzFcdTczMzJcdTczMzVcdTczM2FcdTczM2JcdTczM2RcdTczNDNcdTczNGRcdTczNTBcdTczNTJcdTczNTZcdTczNThcdTczNWRcdTczNWVcdTczNWZcdTczNjBcdTczNjZcdTczNjdcdTczNjlcdTczNmJcdTczNmNc''@;'; + put 'put ''dTczNmVcdTczNmZcdTczNzFcdTczNzdcdTczNzlcdTczN2NcdTczODBcdTczODFcdTczODNcdTczODVcdTczODZcdTczOGVcdTczOTBcdTczOTNcdTczOTVcdTczOTdcdTczOThcdTczOWNcdTczOWVcdTczOWZcdTczYTBcdTczYTJcdTczYTVcdTczYTZcdTczYWFcdTczYWJcdTczYWRcdTcz''@;'; + put 'put ''YjVcdTczYjdcdTczYjlcdTczYmNcdTczYmRcdTczYmZcdTczYzVcdTczYzZcdTczYzlcdTczY2JcdTczY2NcdTczY2ZcdTczZDJcdTczZDNcdTczZDZcdTczZDlcdTczZGRcdTczZTFcdTczZTNcdTczZTZcdTczZTdcdTczZTlcdTczZjRcdTczZjVcdTczZjdcdTczZjlcdTczZmFcdTczZmJc''@;'; + put 'put ''dTczZmQiXSxbIjhmY2NhMSIsIlx1NzNmZlx1NzQwMFx1NzQwMVx1NzQwNFx1NzQwN1x1NzQwYVx1NzQxMVx1NzQxYVx1NzQxYlx1NzQyNFx1NzQyNlx1NzQyOCIsOSwiXHU3NDM5XHU3NDQwXHU3NDQzXHU3NDQ0XHU3NDQ2XHU3NDQ3XHU3NDRiXHU3NDRkXHU3NDUxXHU3NDUyXHU3NDU3XHU3''@;'; + put 'put ''NDVkXHU3NDYyXHU3NDY2XHU3NDY3XHU3NDY4XHU3NDZiXHU3NDZkXHU3NDZlXHU3NDcxXHU3NDcyXHU3NDgwXHU3NDgxXHU3NDg1XHU3NDg2XHU3NDg3XHU3NDg5XHU3NDhmXHU3NDkwXHU3NDkxXHU3NDkyXHU3NDk4XHU3NDk5XHU3NDlhXHU3NDljXHU3NDlmXHU3NGEwXHU3NGExXHU3NGEz''@;'; + put 'put ''XHU3NGE2XHU3NGE4XHU3NGE5XHU3NGFhXHU3NGFiXHU3NGFlXHU3NGFmXHU3NGIxXHU3NGIyXHU3NGI1XHU3NGI5XHU3NGJiXHU3NGJmXHU3NGM4XHU3NGM5XHU3NGNjXHU3NGQwXHU3NGQzXHU3NGQ4XHU3NGRhXHU3NGRiXHU3NGRlXHU3NGRmXHU3NGU0XHU3NGU4XHU3NGVhXHU3NGViXHU3''@;'; + put 'put ''NGVmXHU3NGY0XHU3NGZhXHU3NGZiXHU3NGZjXHU3NGZmXHU3NTA2Il0sWyI4ZmNkYTEiLCJcdTc1MTJcdTc1MTZcdTc1MTdcdTc1MjBcdTc1MjFcdTc1MjRcdTc1MjdcdTc1MjlcdTc1MmFcdTc1MmZcdTc1MzZcdTc1MzlcdTc1M2RcdTc1M2VcdTc1M2ZcdTc1NDBcdTc1NDNcdTc1NDdcdTc1''@;'; + put 'put ''NDhcdTc1NGVcdTc1NTBcdTc1NTJcdTc1NTdcdTc1NWVcdTc1NWZcdTc1NjFcdTc1NmZcdTc1NzFcdTc1NzkiLDUsIlx1NzU4MVx1NzU4NVx1NzU5MFx1NzU5Mlx1NzU5M1x1NzU5NVx1NzU5OVx1NzU5Y1x1NzVhMlx1NzVhNFx1NzViNFx1NzViYVx1NzViZlx1NzVjMFx1NzVjMVx1NzVjNFx1''@;'; + put 'put ''NzVjNlx1NzVjY1x1NzVjZVx1NzVjZlx1NzVkN1x1NzVkY1x1NzVkZlx1NzVlMFx1NzVlMVx1NzVlNFx1NzVlN1x1NzVlY1x1NzVlZVx1NzVlZlx1NzVmMVx1NzVmOVx1NzYwMFx1NzYwMlx1NzYwM1x1NzYwNFx1NzYwN1x1NzYwOFx1NzYwYVx1NzYwY1x1NzYwZlx1NzYxMlx1NzYxM1x1NzYx''@;'; + put 'put ''NVx1NzYxNlx1NzYxOVx1NzYxYlx1NzYxY1x1NzYxZFx1NzYxZVx1NzYyM1x1NzYyNVx1NzYyNlx1NzYyOVx1NzYyZFx1NzYzMlx1NzYzM1x1NzYzNVx1NzYzOFx1NzYzOSJdLFsiOGZjZWExIiwiXHU3NjNhXHU3NjNjXHU3NjRhXHU3NjQwXHU3NjQxXHU3NjQzXHU3NjQ0XHU3NjQ1XHU3NjQ5''@;'; + put 'put ''XHU3NjRiXHU3NjU1XHU3NjU5XHU3NjVmXHU3NjY0XHU3NjY1XHU3NjZkXHU3NjZlXHU3NjZmXHU3NjcxXHU3Njc0XHU3NjgxXHU3Njg1XHU3NjhjXHU3NjhkXHU3Njk1XHU3NjliXHU3NjljXHU3NjlkXHU3NjlmXHU3NmEwXHU3NmEyIiw2LCJcdTc2YWFcdTc2YWRcdTc2YmRcdTc2YzFcdTc2''@;'; + put 'put ''YzVcdTc2YzlcdTc2Y2JcdTc2Y2NcdTc2Y2VcdTc2ZDRcdTc2ZDlcdTc2ZTBcdTc2ZTZcdTc2ZThcdTc2ZWNcdTc2ZjBcdTc2ZjFcdTc2ZjZcdTc2ZjlcdTc2ZmNcdTc3MDBcdTc3MDZcdTc3MGFcdTc3MGVcdTc3MTJcdTc3MTRcdTc3MTVcdTc3MTdcdTc3MTlcdTc3MWFcdTc3MWNcdTc3MjJc''@;'; + put 'put ''dTc3MjhcdTc3MmRcdTc3MmVcdTc3MmZcdTc3MzRcdTc3MzVcdTc3MzZcdTc3MzlcdTc3M2RcdTc3M2VcdTc3NDJcdTc3NDVcdTc3NDZcdTc3NGFcdTc3NGRcdTc3NGVcdTc3NGZcdTc3NTJcdTc3NTZcdTc3NTdcdTc3NWNcdTc3NWVcdTc3NWZcdTc3NjBcdTc3NjIiXSxbIjhmY2ZhMSIsIlx1''@;'; + put 'put ''Nzc2NFx1Nzc2N1x1Nzc2YVx1Nzc2Y1x1Nzc3MFx1Nzc3Mlx1Nzc3M1x1Nzc3NFx1Nzc3YVx1Nzc3ZFx1Nzc4MFx1Nzc4NFx1Nzc4Y1x1Nzc4ZFx1Nzc5NFx1Nzc5NVx1Nzc5Nlx1Nzc5YVx1Nzc5Zlx1NzdhMlx1NzdhN1x1NzdhYVx1NzdhZVx1NzdhZlx1NzdiMVx1NzdiNVx1NzdiZVx1Nzdj''@;'; + put 'put ''M1x1NzdjOVx1NzdkMVx1NzdkMlx1NzdkNVx1NzdkOVx1NzdkZVx1NzdkZlx1NzdlMFx1NzdlNFx1NzdlNlx1NzdlYVx1NzdlY1x1NzdmMFx1NzdmMVx1NzdmNFx1NzdmOFx1NzdmYlx1NzgwNVx1NzgwNlx1NzgwOVx1NzgwZFx1NzgwZVx1NzgxMVx1NzgxZFx1NzgyMVx1NzgyMlx1NzgyM1x1''@;'; + put 'put ''NzgyZFx1NzgyZVx1NzgzMFx1NzgzNVx1NzgzN1x1Nzg0M1x1Nzg0NFx1Nzg0N1x1Nzg0OFx1Nzg0Y1x1Nzg0ZVx1Nzg1Mlx1Nzg1Y1x1Nzg1ZVx1Nzg2MFx1Nzg2MVx1Nzg2M1x1Nzg2NFx1Nzg2OFx1Nzg2YVx1Nzg2ZVx1Nzg3YVx1Nzg3ZVx1Nzg4YVx1Nzg4Zlx1Nzg5NFx1Nzg5OFx1Nzhh''@;'; + put 'put ''MVx1Nzg5ZFx1Nzg5ZVx1Nzg5Zlx1NzhhNFx1NzhhOFx1NzhhY1x1NzhhZFx1NzhiMFx1NzhiMVx1NzhiMlx1NzhiMyJdLFsiOGZkMGExIiwiXHU3OGJiXHU3OGJkXHU3OGJmXHU3OGM3XHU3OGM4XHU3OGM5XHU3OGNjXHU3OGNlXHU3OGQyXHU3OGQzXHU3OGQ1XHU3OGQ2XHU3OGU0XHU3OGRi''@;'; + put 'put ''XHU3OGRmXHU3OGUwXHU3OGUxXHU3OGU2XHU3OGVhXHU3OGYyXHU3OGYzXHU3OTAwXHU3OGY2XHU3OGY3XHU3OGZhXHU3OGZiXHU3OGZmXHU3OTA2XHU3OTBjXHU3OTEwXHU3OTFhXHU3OTFjXHU3OTFlXHU3OTFmXHU3OTIwXHU3OTI1XHU3OTI3XHU3OTI5XHU3OTJkXHU3OTMxXHU3OTM0XHU3''@;'; + put 'put ''OTM1XHU3OTNiXHU3OTNkXHU3OTNmXHU3OTQ0XHU3OTQ1XHU3OTQ2XHU3OTRhXHU3OTRiXHU3OTRmXHU3OTUxXHU3OTU0XHU3OTU4XHU3OTViXHU3OTVjXHU3OTY3XHU3OTY5XHU3OTZiXHU3OTcyXHU3OTc5XHU3OTdiXHU3OTdjXHU3OTdlXHU3OThiXHU3OThjXHU3OTkxXHU3OTkzXHU3OTk0''@;'; + put 'put ''XHU3OTk1XHU3OTk2XHU3OTk4XHU3OTliXHU3OTljXHU3OWExXHU3OWE4XHU3OWE5XHU3OWFiXHU3OWFmXHU3OWIxXHU3OWI0XHU3OWI4XHU3OWJiXHU3OWMyXHU3OWM0XHU3OWM3XHU3OWM4XHU3OWNhXHU3OWNmXHU3OWQ0XHU3OWQ2XHU3OWRhXHU3OWRkXHU3OWRlIl0sWyI4ZmQxYTEiLCJc''@;'; + put 'put ''dTc5ZTBcdTc5ZTJcdTc5ZTVcdTc5ZWFcdTc5ZWJcdTc5ZWRcdTc5ZjFcdTc5ZjhcdTc5ZmNcdTdhMDJcdTdhMDNcdTdhMDdcdTdhMDlcdTdhMGFcdTdhMGNcdTdhMTFcdTdhMTVcdTdhMWJcdTdhMWVcdTdhMjFcdTdhMjdcdTdhMmJcdTdhMmRcdTdhMmZcdTdhMzBcdTdhMzRcdTdhMzVcdTdh''@;'; + put 'put ''MzhcdTdhMzlcdTdhM2FcdTdhNDRcdTdhNDVcdTdhNDdcdTdhNDhcdTdhNGNcdTdhNTVcdTdhNTZcdTdhNTlcdTdhNWNcdTdhNWRcdTdhNWZcdTdhNjBcdTdhNjVcdTdhNjdcdTdhNmFcdTdhNmRcdTdhNzVcdTdhNzhcdTdhN2VcdTdhODBcdTdhODJcdTdhODVcdTdhODZcdTdhOGFcdTdhOGJc''@;'; + put 'put ''dTdhOTBcdTdhOTFcdTdhOTRcdTdhOWVcdTdhYTBcdTdhYTNcdTdhYWNcdTdhYjNcdTdhYjVcdTdhYjlcdTdhYmJcdTdhYmNcdTdhYzZcdTdhYzlcdTdhY2NcdTdhY2VcdTdhZDFcdTdhZGJcdTdhZThcdTdhZTlcdTdhZWJcdTdhZWNcdTdhZjFcdTdhZjRcdTdhZmJcdTdhZmRcdTdhZmVcdTdi''@;'; + put 'put ''MDdcdTdiMTRcdTdiMWZcdTdiMjNcdTdiMjdcdTdiMjlcdTdiMmFcdTdiMmJcdTdiMmRcdTdiMmVcdTdiMmZcdTdiMzAiXSxbIjhmZDJhMSIsIlx1N2IzMVx1N2IzNFx1N2IzZFx1N2IzZlx1N2I0MFx1N2I0MVx1N2I0N1x1N2I0ZVx1N2I1NVx1N2I2MFx1N2I2NFx1N2I2Nlx1N2I2OVx1N2I2''@;'; + put 'put ''YVx1N2I2ZFx1N2I2Zlx1N2I3Mlx1N2I3M1x1N2I3N1x1N2I4NFx1N2I4OVx1N2I4ZVx1N2I5MFx1N2I5MVx1N2I5Nlx1N2I5Ylx1N2I5ZVx1N2JhMFx1N2JhNVx1N2JhY1x1N2JhZlx1N2JiMFx1N2JiMlx1N2JiNVx1N2JiNlx1N2JiYVx1N2JiYlx1N2JiY1x1N2JiZFx1N2JjMlx1N2JjNVx1''@;'; + put 'put ''N2JjOFx1N2JjYVx1N2JkNFx1N2JkNlx1N2JkN1x1N2JkOVx1N2JkYVx1N2JkYlx1N2JlOFx1N2JlYVx1N2JmMlx1N2JmNFx1N2JmNVx1N2JmOFx1N2JmOVx1N2JmYVx1N2JmY1x1N2JmZVx1N2MwMVx1N2MwMlx1N2MwM1x1N2MwNFx1N2MwNlx1N2MwOVx1N2MwYlx1N2MwY1x1N2MwZVx1N2Mw''@;'; + put 'put ''Zlx1N2MxOVx1N2MxYlx1N2MyMFx1N2MyNVx1N2MyNlx1N2MyOFx1N2MyY1x1N2MzMVx1N2MzM1x1N2MzNFx1N2MzNlx1N2MzOVx1N2MzYVx1N2M0Nlx1N2M0YVx1N2M1NVx1N2M1MVx1N2M1Mlx1N2M1M1x1N2M1OSIsNV0sWyI4ZmQzYTEiLCJcdTdjNjFcdTdjNjNcdTdjNjdcdTdjNjlcdTdj''@;'; + put 'put ''NmRcdTdjNmVcdTdjNzBcdTdjNzJcdTdjNzlcdTdjN2NcdTdjN2RcdTdjODZcdTdjODdcdTdjOGZcdTdjOTRcdTdjOWVcdTdjYTBcdTdjYTZcdTdjYjBcdTdjYjZcdTdjYjdcdTdjYmFcdTdjYmJcdTdjYmNcdTdjYmZcdTdjYzRcdTdjYzdcdTdjYzhcdTdjYzlcdTdjY2RcdTdjY2ZcdTdjZDNc''@;'; + put 'put ''dTdjZDRcdTdjZDVcdTdjZDdcdTdjZDlcdTdjZGFcdTdjZGRcdTdjZTZcdTdjZTlcdTdjZWJcdTdjZjVcdTdkMDNcdTdkMDdcdTdkMDhcdTdkMDlcdTdkMGZcdTdkMTFcdTdkMTJcdTdkMTNcdTdkMTZcdTdkMWRcdTdkMWVcdTdkMjNcdTdkMjZcdTdkMmFcdTdkMmRcdTdkMzFcdTdkM2NcdTdk''@;'; + put 'put ''M2RcdTdkM2VcdTdkNDBcdTdkNDFcdTdkNDdcdTdkNDhcdTdkNGRcdTdkNTFcdTdkNTNcdTdkNTdcdTdkNTlcdTdkNWFcdTdkNWNcdTdkNWRcdTdkNjVcdTdkNjdcdTdkNmFcdTdkNzBcdTdkNzhcdTdkN2FcdTdkN2JcdTdkN2ZcdTdkODFcdTdkODJcdTdkODNcdTdkODVcdTdkODZcdTdkODhc''@;'; + put 'put ''dTdkOGJcdTdkOGNcdTdkOGRcdTdkOTFcdTdkOTZcdTdkOTdcdTdkOWQiXSxbIjhmZDRhMSIsIlx1N2Q5ZVx1N2RhNlx1N2RhN1x1N2RhYVx1N2RiM1x1N2RiNlx1N2RiN1x1N2RiOVx1N2RjMiIsNCwiXHU3ZGNjXHU3ZGNkXHU3ZGNlXHU3ZGQ3XHU3ZGQ5XHU3ZTAwXHU3ZGUyXHU3ZGU1XHU3''@;'; + put 'put ''ZGU2XHU3ZGVhXHU3ZGViXHU3ZGVkXHU3ZGYxXHU3ZGY1XHU3ZGY2XHU3ZGY5XHU3ZGZhXHU3ZTA4XHU3ZTEwXHU3ZTExXHU3ZTE1XHU3ZTE3XHU3ZTFjXHU3ZTFkXHU3ZTIwXHU3ZTI3XHU3ZTI4XHU3ZTJjXHU3ZTJkXHU3ZTJmXHU3ZTMzXHU3ZTM2XHU3ZTNmXHU3ZTQ0XHU3ZTQ1XHU3ZTQ3''@;'; + put 'put ''XHU3ZTRlXHU3ZTUwXHU3ZTUyXHU3ZTU4XHU3ZTVmXHU3ZTYxXHU3ZTYyXHU3ZTY1XHU3ZTZiXHU3ZTZlXHU3ZTZmXHU3ZTczXHU3ZTc4XHU3ZTdlXHU3ZTgxXHU3ZTg2XHU3ZTg3XHU3ZThhXHU3ZThkXHU3ZTkxXHU3ZTk1XHU3ZTk4XHU3ZTlhXHU3ZTlkXHU3ZTllXHU3ZjNjXHU3ZjNiXHU3''@;'; + put 'put ''ZjNkXHU3ZjNlXHU3ZjNmXHU3ZjQzXHU3ZjQ0XHU3ZjQ3XHU3ZjRmXHU3ZjUyXHU3ZjUzXHU3ZjViXHU3ZjVjXHU3ZjVkXHU3ZjYxXHU3ZjYzXHU3ZjY0XHU3ZjY1XHU3ZjY2XHU3ZjZkIl0sWyI4ZmQ1YTEiLCJcdTdmNzFcdTdmN2RcdTdmN2VcdTdmN2ZcdTdmODBcdTdmOGJcdTdmOGRcdTdm''@;'; + put 'put ''OGZcdTdmOTBcdTdmOTFcdTdmOTZcdTdmOTdcdTdmOWNcdTdmYTFcdTdmYTJcdTdmYTZcdTdmYWFcdTdmYWRcdTdmYjRcdTdmYmNcdTdmYmZcdTdmYzBcdTdmYzNcdTdmYzhcdTdmY2VcdTdmY2ZcdTdmZGJcdTdmZGZcdTdmZTNcdTdmZTVcdTdmZThcdTdmZWNcdTdmZWVcdTdmZWZcdTdmZjJc''@;'; + put 'put ''dTdmZmFcdTdmZmRcdTdmZmVcdTdmZmZcdTgwMDdcdTgwMDhcdTgwMGFcdTgwMGRcdTgwMGVcdTgwMGZcdTgwMTFcdTgwMTNcdTgwMTRcdTgwMTZcdTgwMWRcdTgwMWVcdTgwMWZcdTgwMjBcdTgwMjRcdTgwMjZcdTgwMmNcdTgwMmVcdTgwMzBcdTgwMzRcdTgwMzVcdTgwMzdcdTgwMzlcdTgw''@;'; + put 'put ''M2FcdTgwM2NcdTgwM2VcdTgwNDBcdTgwNDRcdTgwNjBcdTgwNjRcdTgwNjZcdTgwNmRcdTgwNzFcdTgwNzVcdTgwODFcdTgwODhcdTgwOGVcdTgwOWNcdTgwOWVcdTgwYTZcdTgwYTdcdTgwYWJcdTgwYjhcdTgwYjlcdTgwYzhcdTgwY2RcdTgwY2ZcdTgwZDJcdTgwZDRcdTgwZDVcdTgwZDdc''@;'; + put 'put ''dTgwZDhcdTgwZTBcdTgwZWRcdTgwZWUiXSxbIjhmZDZhMSIsIlx1ODBmMFx1ODBmMlx1ODBmM1x1ODBmNlx1ODBmOVx1ODBmYVx1ODBmZVx1ODEwM1x1ODEwYlx1ODExNlx1ODExN1x1ODExOFx1ODExY1x1ODExZVx1ODEyMFx1ODEyNFx1ODEyN1x1ODEyY1x1ODEzMFx1ODEzNVx1ODEzYVx1''@;'; + put 'put ''ODEzY1x1ODE0NVx1ODE0N1x1ODE0YVx1ODE0Y1x1ODE1Mlx1ODE1N1x1ODE2MFx1ODE2MVx1ODE2N1x1ODE2OFx1ODE2OVx1ODE2ZFx1ODE2Zlx1ODE3N1x1ODE4MVx1ODE5MFx1ODE4NFx1ODE4NVx1ODE4Nlx1ODE4Ylx1ODE4ZVx1ODE5Nlx1ODE5OFx1ODE5Ylx1ODE5ZVx1ODFhMlx1ODFh''@;'; + put 'put ''ZVx1ODFiMlx1ODFiNFx1ODFiYlx1ODFjYlx1ODFjM1x1ODFjNVx1ODFjYVx1ODFjZVx1ODFjZlx1ODFkNVx1ODFkN1x1ODFkYlx1ODFkZFx1ODFkZVx1ODFlMVx1ODFlNFx1ODFlYlx1ODFlY1x1ODFmMFx1ODFmMVx1ODFmMlx1ODFmNVx1ODFmNlx1ODFmOFx1ODFmOVx1ODFmZFx1ODFmZlx1''@;'; + put 'put ''ODIwMFx1ODIwM1x1ODIwZlx1ODIxM1x1ODIxNFx1ODIxOVx1ODIxYVx1ODIxZFx1ODIyMVx1ODIyMlx1ODIyOFx1ODIzMlx1ODIzNFx1ODIzYVx1ODI0M1x1ODI0NFx1ODI0NVx1ODI0NiJdLFsiOGZkN2ExIiwiXHU4MjRiXHU4MjRlXHU4MjRmXHU4MjUxXHU4MjU2XHU4MjVjXHU4MjYwXHU4''@;'; + put 'put ''MjYzXHU4MjY3XHU4MjZkXHU4Mjc0XHU4MjdiXHU4MjdkXHU4MjdmXHU4MjgwXHU4MjgxXHU4MjgzXHU4Mjg0XHU4Mjg3XHU4Mjg5XHU4MjhhXHU4MjhlXHU4MjkxXHU4Mjk0XHU4Mjk2XHU4Mjk4XHU4MjlhXHU4MjliXHU4MmEwXHU4MmExXHU4MmEzXHU4MmE0XHU4MmE3XHU4MmE4XHU4MmE5''@;'; + put 'put ''XHU4MmFhXHU4MmFlXHU4MmIwXHU4MmIyXHU4MmI0XHU4MmI3XHU4MmJhXHU4MmJjXHU4MmJlXHU4MmJmXHU4MmM2XHU4MmQwXHU4MmQ1XHU4MmRhXHU4MmUwXHU4MmUyXHU4MmU0XHU4MmU4XHU4MmVhXHU4MmVkXHU4MmVmXHU4MmY2XHU4MmY3XHU4MmZkXHU4MmZlXHU4MzAwXHU4MzAxXHU4''@;'; + put 'put ''MzA3XHU4MzA4XHU4MzBhXHU4MzBiXHU4MzU0XHU4MzFiXHU4MzFkXHU4MzFlXHU4MzFmXHU4MzIxXHU4MzIyXHU4MzJjXHU4MzJkXHU4MzJlXHU4MzMwXHU4MzMzXHU4MzM3XHU4MzNhXHU4MzNjXHU4MzNkXHU4MzQyXHU4MzQzXHU4MzQ0XHU4MzQ3XHU4MzRkXHU4MzRlXHU4MzUxXHU4MzU1''@;'; + put 'put ''XHU4MzU2XHU4MzU3XHU4MzcwXHU4Mzc4Il0sWyI4ZmQ4YTEiLCJcdTgzN2RcdTgzN2ZcdTgzODBcdTgzODJcdTgzODRcdTgzODZcdTgzOGRcdTgzOTJcdTgzOTRcdTgzOTVcdTgzOThcdTgzOTlcdTgzOWJcdTgzOWNcdTgzOWRcdTgzYTZcdTgzYTdcdTgzYTlcdTgzYWNcdTgzYmVcdTgzYmZc''@;'; + put 'put ''dTgzYzBcdTgzYzdcdTgzYzlcdTgzY2ZcdTgzZDBcdTgzZDFcdTgzZDRcdTgzZGRcdTgzNTNcdTgzZThcdTgzZWFcdTgzZjZcdTgzZjhcdTgzZjlcdTgzZmNcdTg0MDFcdTg0MDZcdTg0MGFcdTg0MGZcdTg0MTFcdTg0MTVcdTg0MTlcdTgzYWRcdTg0MmZcdTg0MzlcdTg0NDVcdTg0NDdcdTg0''@;'; + put 'put ''NDhcdTg0NGFcdTg0NGRcdTg0NGZcdTg0NTFcdTg0NTJcdTg0NTZcdTg0NThcdTg0NTlcdTg0NWFcdTg0NWNcdTg0NjBcdTg0NjRcdTg0NjVcdTg0NjdcdTg0NmFcdTg0NzBcdTg0NzNcdTg0NzRcdTg0NzZcdTg0NzhcdTg0N2NcdTg0N2RcdTg0ODFcdTg0ODVcdTg0OTJcdTg0OTNcdTg0OTVc''@;'; + put 'put ''dTg0OWVcdTg0YTZcdTg0YThcdTg0YTlcdTg0YWFcdTg0YWZcdTg0YjFcdTg0YjRcdTg0YmFcdTg0YmRcdTg0YmVcdTg0YzBcdTg0YzJcdTg0YzdcdTg0YzhcdTg0Y2NcdTg0Y2ZcdTg0ZDMiXSxbIjhmZDlhMSIsIlx1ODRkY1x1ODRlN1x1ODRlYVx1ODRlZlx1ODRmMFx1ODRmMVx1ODRmMlx1''@;'; + put 'put ''ODRmN1x1ODUzMlx1ODRmYVx1ODRmYlx1ODRmZFx1ODUwMlx1ODUwM1x1ODUwN1x1ODUwY1x1ODUwZVx1ODUxMFx1ODUxY1x1ODUxZVx1ODUyMlx1ODUyM1x1ODUyNFx1ODUyNVx1ODUyN1x1ODUyYVx1ODUyYlx1ODUyZlx1ODUzM1x1ODUzNFx1ODUzNlx1ODUzZlx1ODU0Nlx1ODU0ZiIsNCwi''@;'; + put 'put ''XHU4NTU2XHU4NTU5XHU4NTVjIiw2LCJcdTg1NjRcdTg1NmJcdTg1NmZcdTg1NzlcdTg1N2FcdTg1N2JcdTg1N2RcdTg1N2ZcdTg1ODFcdTg1ODVcdTg1ODZcdTg1ODlcdTg1OGJcdTg1OGNcdTg1OGZcdTg1OTNcdTg1OThcdTg1OWRcdTg1OWZcdTg1YTBcdTg1YTJcdTg1YTVcdTg1YTdcdTg1''@;'; + put 'put ''YjRcdTg1YjZcdTg1YjdcdTg1YjhcdTg1YmNcdTg1YmRcdTg1YmVcdTg1YmZcdTg1YzJcdTg1YzdcdTg1Y2FcdTg1Y2JcdTg1Y2VcdTg1YWRcdTg1ZDhcdTg1ZGFcdTg1ZGZcdTg1ZTBcdTg1ZTZcdTg1ZThcdTg1ZWRcdTg1ZjNcdTg1ZjZcdTg1ZmMiXSxbIjhmZGFhMSIsIlx1ODVmZlx1ODYw''@;'; + put 'put ''MFx1ODYwNFx1ODYwNVx1ODYwZFx1ODYwZVx1ODYxMFx1ODYxMVx1ODYxMlx1ODYxOFx1ODYxOVx1ODYxYlx1ODYxZVx1ODYyMVx1ODYyN1x1ODYyOVx1ODYzNlx1ODYzOFx1ODYzYVx1ODYzY1x1ODYzZFx1ODY0MFx1ODY0Mlx1ODY0Nlx1ODY1Mlx1ODY1M1x1ODY1Nlx1ODY1N1x1ODY1OFx1''@;'; + put 'put ''ODY1OVx1ODY1ZFx1ODY2MCIsNCwiXHU4NjY5XHU4NjZjXHU4NjZmXHU4Njc1XHU4Njc2XHU4Njc3XHU4NjdhXHU4NjhkXHU4NjkxXHU4Njk2XHU4Njk4XHU4NjlhXHU4NjljXHU4NmExXHU4NmE2XHU4NmE3XHU4NmE4XHU4NmFkXHU4NmIxXHU4NmIzXHU4NmI0XHU4NmI1XHU4NmI3XHU4NmI4''@;'; + put 'put ''XHU4NmI5XHU4NmJmXHU4NmMwXHU4NmMxXHU4NmMzXHU4NmM1XHU4NmQxXHU4NmQyXHU4NmQ1XHU4NmQ3XHU4NmRhXHU4NmRjXHU4NmUwXHU4NmUzXHU4NmU1XHU4NmU3XHU4Njg4XHU4NmZhXHU4NmZjXHU4NmZkXHU4NzA0XHU4NzA1XHU4NzA3XHU4NzBiXHU4NzBlXHU4NzBmXHU4NzEwXHU4''@;'; + put 'put ''NzEzXHU4NzE0XHU4NzE5XHU4NzFlXHU4NzFmXHU4NzIxXHU4NzIzIl0sWyI4ZmRiYTEiLCJcdTg3MjhcdTg3MmVcdTg3MmZcdTg3MzFcdTg3MzJcdTg3MzlcdTg3M2FcdTg3M2NcdTg3M2RcdTg3M2VcdTg3NDBcdTg3NDNcdTg3NDVcdTg3NGRcdTg3NThcdTg3NWRcdTg3NjFcdTg3NjRcdTg3''@;'; + put 'put ''NjVcdTg3NmZcdTg3NzFcdTg3NzJcdTg3N2JcdTg3ODMiLDYsIlx1ODc4Ylx1ODc4Y1x1ODc5MFx1ODc5M1x1ODc5NVx1ODc5N1x1ODc5OFx1ODc5OVx1ODc5ZVx1ODdhMFx1ODdhM1x1ODdhN1x1ODdhY1x1ODdhZFx1ODdhZVx1ODdiMVx1ODdiNVx1ODdiZVx1ODdiZlx1ODdjMVx1ODdjOFx1''@;'; + put 'put ''ODdjOVx1ODdjYVx1ODdjZVx1ODdkNVx1ODdkNlx1ODdkOVx1ODdkYVx1ODdkY1x1ODdkZlx1ODdlMlx1ODdlM1x1ODdlNFx1ODdlYVx1ODdlYlx1ODdlZFx1ODdmMVx1ODdmM1x1ODdmOFx1ODdmYVx1ODdmZlx1ODgwMVx1ODgwM1x1ODgwNlx1ODgwOVx1ODgwYVx1ODgwYlx1ODgxMFx1ODgx''@;'; + put 'put ''OVx1ODgxMlx1ODgxM1x1ODgxNFx1ODgxOFx1ODgxYVx1ODgxYlx1ODgxY1x1ODgxZVx1ODgxZlx1ODgyOFx1ODgyZFx1ODgyZVx1ODgzMFx1ODgzMlx1ODgzNSJdLFsiOGZkY2ExIiwiXHU4ODNhXHU4ODNjXHU4ODQxXHU4ODQzXHU4ODQ1XHU4ODQ4XHU4ODQ5XHU4ODRhXHU4ODRiXHU4ODRl''@;'; + put 'put ''XHU4ODUxXHU4ODU1XHU4ODU2XHU4ODU4XHU4ODVhXHU4ODVjXHU4ODVmXHU4ODYwXHU4ODY0XHU4ODY5XHU4ODcxXHU4ODc5XHU4ODdiXHU4ODgwXHU4ODk4XHU4ODlhXHU4ODliXHU4ODljXHU4ODlmXHU4OGEwXHU4OGE4XHU4OGFhXHU4OGJhXHU4OGJkXHU4OGJlXHU4OGMwXHU4OGNhIiw0''@;'; + put 'put ''LCJcdTg4ZDFcdTg4ZDJcdTg4ZDNcdTg4ZGJcdTg4ZGVcdTg4ZTdcdTg4ZWZcdTg4ZjBcdTg4ZjFcdTg4ZjVcdTg4ZjdcdTg5MDFcdTg5MDZcdTg5MGRcdTg5MGVcdTg5MGZcdTg5MTVcdTg5MTZcdTg5MThcdTg5MTlcdTg5MWFcdTg5MWNcdTg5MjBcdTg5MjZcdTg5MjdcdTg5MjhcdTg5MzBc''@;'; + put 'put ''dTg5MzFcdTg5MzJcdTg5MzVcdTg5MzlcdTg5M2FcdTg5M2VcdTg5NDBcdTg5NDJcdTg5NDVcdTg5NDZcdTg5NDlcdTg5NGZcdTg5NTJcdTg5NTdcdTg5NWFcdTg5NWJcdTg5NWNcdTg5NjFcdTg5NjJcdTg5NjNcdTg5NmJcdTg5NmVcdTg5NzBcdTg5NzNcdTg5NzVcdTg5N2EiXSxbIjhmZGRh''@;'; + put 'put ''MSIsIlx1ODk3Ylx1ODk3Y1x1ODk3ZFx1ODk4OVx1ODk4ZFx1ODk5MFx1ODk5NFx1ODk5NVx1ODk5Ylx1ODk5Y1x1ODk5Zlx1ODlhMFx1ODlhNVx1ODliMFx1ODliNFx1ODliNVx1ODliNlx1ODliN1x1ODliY1x1ODlkNCIsNCwiXHU4OWU1XHU4OWU5XHU4OWViXHU4OWVkXHU4OWYxXHU4OWYz''@;'; + put 'put ''XHU4OWY2XHU4OWY5XHU4OWZkXHU4OWZmXHU4YTA0XHU4YTA1XHU4YTA3XHU4YTBmXHU4YTExXHU4YTEyXHU4YTE0XHU4YTE1XHU4YTFlXHU4YTIwXHU4YTIyXHU4YTI0XHU4YTI2XHU4YTJiXHU4YTJjXHU4YTJmXHU4YTM1XHU4YTM3XHU4YTNkXHU4YTNlXHU4YTQwXHU4YTQzXHU4YTQ1XHU4''@;'; + put 'put ''YTQ3XHU4YTQ5XHU4YTRkXHU4YTRlXHU4YTUzXHU4YTU2XHU4YTU3XHU4YTU4XHU4YTVjXHU4YTVkXHU4YTYxXHU4YTY1XHU4YTY3XHU4YTc1XHU4YTc2XHU4YTc3XHU4YTc5XHU4YTdhXHU4YTdiXHU4YTdlXHU4YTdmXHU4YTgwXHU4YTgzXHU4YTg2XHU4YThiXHU4YThmXHU4YTkwXHU4YTky''@;'; + put 'put ''XHU4YTk2XHU4YTk3XHU4YTk5XHU4YTlmXHU4YWE3XHU4YWE5XHU4YWFlXHU4YWFmXHU4YWIzIl0sWyI4ZmRlYTEiLCJcdThhYjZcdThhYjdcdThhYmJcdThhYmVcdThhYzNcdThhYzZcdThhYzhcdThhYzlcdThhY2FcdThhZDFcdThhZDNcdThhZDRcdThhZDVcdThhZDdcdThhZGRcdThhZGZc''@;'; + put 'put ''dThhZWNcdThhZjBcdThhZjRcdThhZjVcdThhZjZcdThhZmNcdThhZmZcdThiMDVcdThiMDZcdThiMGJcdThiMTFcdThiMWNcdThiMWVcdThiMWZcdThiMGFcdThiMmRcdThiMzBcdThiMzdcdThiM2NcdThiNDIiLDQsIlx1OGI0OFx1OGI1Mlx1OGI1M1x1OGI1NFx1OGI1OVx1OGI0ZFx1OGI1''@;'; + put 'put ''ZVx1OGI2M1x1OGI2ZFx1OGI3Nlx1OGI3OFx1OGI3OVx1OGI3Y1x1OGI3ZVx1OGI4MVx1OGI4NFx1OGI4NVx1OGI4Ylx1OGI4ZFx1OGI4Zlx1OGI5NFx1OGI5NVx1OGI5Y1x1OGI5ZVx1OGI5Zlx1OGMzOFx1OGMzOVx1OGMzZFx1OGMzZVx1OGM0NVx1OGM0N1x1OGM0OVx1OGM0Ylx1OGM0Zlx1''@;'; + put 'put ''OGM1MVx1OGM1M1x1OGM1NFx1OGM1N1x1OGM1OFx1OGM1Ylx1OGM1ZFx1OGM1OVx1OGM2M1x1OGM2NFx1OGM2Nlx1OGM2OFx1OGM2OVx1OGM2ZFx1OGM3M1x1OGM3NVx1OGM3Nlx1OGM3Ylx1OGM3ZVx1OGM4NiJdLFsiOGZkZmExIiwiXHU4Yzg3XHU4YzhiXHU4YzkwXHU4YzkyXHU4YzkzXHU4''@;'; + put 'put ''Yzk5XHU4YzliXHU4YzljXHU4Y2E0XHU4Y2I5XHU4Y2JhXHU4Y2M1XHU4Y2M2XHU4Y2M5XHU4Y2NiXHU4Y2NmXHU4Y2Q2XHU4Y2Q1XHU4Y2Q5XHU4Y2RkXHU4Y2UxXHU4Y2U4XHU4Y2VjXHU4Y2VmXHU4Y2YwXHU4Y2YyXHU4Y2Y1XHU4Y2Y3XHU4Y2Y4XHU4Y2ZlXHU4Y2ZmXHU4ZDAxXHU4ZDAz''@;'; + put 'put ''XHU4ZDA5XHU4ZDEyXHU4ZDE3XHU4ZDFiXHU4ZDY1XHU4ZDY5XHU4ZDZjXHU4ZDZlXHU4ZDdmXHU4ZDgyXHU4ZDg0XHU4ZDg4XHU4ZDhkXHU4ZDkwXHU4ZDkxXHU4ZDk1XHU4ZDllXHU4ZDlmXHU4ZGEwXHU4ZGE2XHU4ZGFiXHU4ZGFjXHU4ZGFmXHU4ZGIyXHU4ZGI1XHU4ZGI3XHU4ZGI5XHU4''@;'; + put 'put ''ZGJiXHU4ZGMwXHU4ZGM1XHU4ZGM2XHU4ZGM3XHU4ZGM4XHU4ZGNhXHU4ZGNlXHU4ZGQxXHU4ZGQ0XHU4ZGQ1XHU4ZGQ3XHU4ZGQ5XHU4ZGU0XHU4ZGU1XHU4ZGU3XHU4ZGVjXHU4ZGYwXHU4ZGJjXHU4ZGYxXHU4ZGYyXHU4ZGY0XHU4ZGZkXHU4ZTAxXHU4ZTA0XHU4ZTA1XHU4ZTA2XHU4ZTBi''@;'; + put 'put ''XHU4ZTExXHU4ZTE0XHU4ZTE2XHU4ZTIwXHU4ZTIxXHU4ZTIyIl0sWyI4ZmUwYTEiLCJcdThlMjNcdThlMjZcdThlMjdcdThlMzFcdThlMzNcdThlMzZcdThlMzdcdThlMzhcdThlMzlcdThlM2RcdThlNDBcdThlNDFcdThlNGJcdThlNGRcdThlNGVcdThlNGZcdThlNTRcdThlNWJcdThlNWNc''@;'; + put 'put ''dThlNWRcdThlNWVcdThlNjFcdThlNjJcdThlNjlcdThlNmNcdThlNmRcdThlNmZcdThlNzBcdThlNzFcdThlNzlcdThlN2FcdThlN2JcdThlODJcdThlODNcdThlODlcdThlOTBcdThlOTJcdThlOTVcdThlOWFcdThlOWJcdThlOWRcdThlOWVcdThlYTJcdThlYTdcdThlYTlcdThlYWRcdThl''@;'; + put 'put ''YWVcdThlYjNcdThlYjVcdThlYmFcdThlYmJcdThlYzBcdThlYzFcdThlYzNcdThlYzRcdThlYzdcdThlY2ZcdThlZDFcdThlZDRcdThlZGNcdThlZThcdThlZWVcdThlZjBcdThlZjFcdThlZjdcdThlZjlcdThlZmFcdThlZWRcdThmMDBcdThmMDJcdThmMDdcdThmMDhcdThmMGZcdThmMTBc''@;'; + put 'put ''dThmMTZcdThmMTdcdThmMThcdThmMWVcdThmMjBcdThmMjFcdThmMjNcdThmMjVcdThmMjdcdThmMjhcdThmMmNcdThmMmRcdThmMmVcdThmMzRcdThmMzVcdThmMzZcdThmMzdcdThmM2FcdThmNDBcdThmNDEiXSxbIjhmZTFhMSIsIlx1OGY0M1x1OGY0N1x1OGY0Zlx1OGY1MSIsNCwiXHU4''@;'; + put 'put ''ZjU4XHU4ZjVkXHU4ZjVlXHU4ZjY1XHU4ZjlkXHU4ZmEwXHU4ZmExXHU4ZmE0XHU4ZmE1XHU4ZmE2XHU4ZmI1XHU4ZmI2XHU4ZmI4XHU4ZmJlXHU4ZmMwXHU4ZmMxXHU4ZmM2XHU4ZmNhXHU4ZmNiXHU4ZmNkXHU4ZmQwXHU4ZmQyXHU4ZmQzXHU4ZmQ1XHU4ZmUwXHU4ZmUzXHU4ZmU0XHU4ZmU4''@;'; + put 'put ''XHU4ZmVlXHU4ZmYxXHU4ZmY1XHU4ZmY2XHU4ZmZiXHU4ZmZlXHU5MDAyXHU5MDA0XHU5MDA4XHU5MDBjXHU5MDE4XHU5MDFiXHU5MDI4XHU5MDI5XHU5MDJmXHU5MDJhXHU5MDJjXHU5MDJkXHU5MDMzXHU5MDM0XHU5MDM3XHU5MDNmXHU5MDQzXHU5MDQ0XHU5MDRjXHU5MDViXHU5MDVkXHU5''@;'; + put 'put ''MDYyXHU5MDY2XHU5MDY3XHU5MDZjXHU5MDcwXHU5MDc0XHU5MDc5XHU5MDg1XHU5MDg4XHU5MDhiXHU5MDhjXHU5MDhlXHU5MDkwXHU5MDk1XHU5MDk3XHU5MDk4XHU5MDk5XHU5MDliXHU5MGEwXHU5MGExXHU5MGEyXHU5MGE1XHU5MGIwXHU5MGIyXHU5MGIzXHU5MGI0XHU5MGI2XHU5MGJk''@;'; + put 'put ''XHU5MGNjXHU5MGJlXHU5MGMzIl0sWyI4ZmUyYTEiLCJcdTkwYzRcdTkwYzVcdTkwYzdcdTkwYzhcdTkwZDVcdTkwZDdcdTkwZDhcdTkwZDlcdTkwZGNcdTkwZGRcdTkwZGZcdTkwZTVcdTkwZDJcdTkwZjZcdTkwZWJcdTkwZWZcdTkwZjBcdTkwZjRcdTkwZmVcdTkwZmZcdTkxMDBcdTkxMDRc''@;'; + put 'put ''dTkxMDVcdTkxMDZcdTkxMDhcdTkxMGRcdTkxMTBcdTkxMTRcdTkxMTZcdTkxMTdcdTkxMThcdTkxMWFcdTkxMWNcdTkxMWVcdTkxMjBcdTkxMjVcdTkxMjJcdTkxMjNcdTkxMjdcdTkxMjlcdTkxMmVcdTkxMmZcdTkxMzFcdTkxMzRcdTkxMzZcdTkxMzdcdTkxMzlcdTkxM2FcdTkxM2NcdTkx''@;'; + put 'put ''M2RcdTkxNDNcdTkxNDdcdTkxNDhcdTkxNGZcdTkxNTNcdTkxNTdcdTkxNTlcdTkxNWFcdTkxNWJcdTkxNjFcdTkxNjRcdTkxNjdcdTkxNmRcdTkxNzRcdTkxNzlcdTkxN2FcdTkxN2JcdTkxODFcdTkxODNcdTkxODVcdTkxODZcdTkxOGFcdTkxOGVcdTkxOTFcdTkxOTNcdTkxOTRcdTkxOTVc''@;'; + put 'put ''dTkxOThcdTkxOWVcdTkxYTFcdTkxYTZcdTkxYThcdTkxYWNcdTkxYWRcdTkxYWVcdTkxYjBcdTkxYjFcdTkxYjJcdTkxYjNcdTkxYjZcdTkxYmJcdTkxYmNcdTkxYmRcdTkxYmYiXSxbIjhmZTNhMSIsIlx1OTFjMlx1OTFjM1x1OTFjNVx1OTFkM1x1OTFkNFx1OTFkN1x1OTFkOVx1OTFkYVx1''@;'; + put 'put ''OTFkZVx1OTFlNFx1OTFlNVx1OTFlOVx1OTFlYVx1OTFlYyIsNSwiXHU5MWY3XHU5MWY5XHU5MWZiXHU5MWZkXHU5MjAwXHU5MjAxXHU5MjA0XHU5MjA1XHU5MjA2XHU5MjA3XHU5MjA5XHU5MjBhXHU5MjBjXHU5MjEwXHU5MjEyXHU5MjEzXHU5MjE2XHU5MjE4XHU5MjFjXHU5MjFkXHU5MjIz''@;'; + put 'put ''XHU5MjI0XHU5MjI1XHU5MjI2XHU5MjI4XHU5MjJlXHU5MjJmXHU5MjMwXHU5MjMzXHU5MjM1XHU5MjM2XHU5MjM4XHU5MjM5XHU5MjNhXHU5MjNjXHU5MjNlXHU5MjQwXHU5MjQyXHU5MjQzXHU5MjQ2XHU5MjQ3XHU5MjRhXHU5MjRkXHU5MjRlXHU5MjRmXHU5MjUxXHU5MjU4XHU5MjU5XHU5''@;'; + put 'put ''MjVjXHU5MjVkXHU5MjYwXHU5MjYxXHU5MjY1XHU5MjY3XHU5MjY4XHU5MjY5XHU5MjZlXHU5MjZmXHU5MjcwXHU5Mjc1Iiw0LCJcdTkyN2JcdTkyN2NcdTkyN2RcdTkyN2ZcdTkyODhcdTkyODlcdTkyOGFcdTkyOGRcdTkyOGVcdTkyOTJcdTkyOTciXSxbIjhmZTRhMSIsIlx1OTI5OVx1OTI5''@;'; + put 'put ''Zlx1OTJhMFx1OTJhNFx1OTJhNVx1OTJhN1x1OTJhOFx1OTJhYlx1OTJhZlx1OTJiMlx1OTJiNlx1OTJiOFx1OTJiYVx1OTJiYlx1OTJiY1x1OTJiZFx1OTJiZiIsNCwiXHU5MmM1XHU5MmM2XHU5MmM3XHU5MmM4XHU5MmNiXHU5MmNjXHU5MmNkXHU5MmNlXHU5MmQwXHU5MmQzXHU5MmQ1XHU5''@;'; + put 'put ''MmQ3XHU5MmQ4XHU5MmQ5XHU5MmRjXHU5MmRkXHU5MmRmXHU5MmUwXHU5MmUxXHU5MmUzXHU5MmU1XHU5MmU3XHU5MmU4XHU5MmVjXHU5MmVlXHU5MmYwXHU5MmY5XHU5MmZiXHU5MmZmXHU5MzAwXHU5MzAyXHU5MzA4XHU5MzBkXHU5MzExXHU5MzE0XHU5MzE1XHU5MzFjXHU5MzFkXHU5MzFl''@;'; + put 'put ''XHU5MzFmXHU5MzIxXHU5MzI0XHU5MzI1XHU5MzI3XHU5MzI5XHU5MzJhXHU5MzMzXHU5MzM0XHU5MzM2XHU5MzM3XHU5MzQ3XHU5MzQ4XHU5MzQ5XHU5MzUwXHU5MzUxXHU5MzUyXHU5MzU1XHU5MzU3XHU5MzU4XHU5MzVhXHU5MzVlXHU5MzY0XHU5MzY1XHU5MzY3XHU5MzY5XHU5MzZhXHU5''@;'; + put 'put ''MzZkXHU5MzZmXHU5MzcwXHU5MzcxXHU5MzczXHU5Mzc0XHU5Mzc2Il0sWyI4ZmU1YTEiLCJcdTkzN2FcdTkzN2RcdTkzN2ZcdTkzODBcdTkzODFcdTkzODJcdTkzODhcdTkzOGFcdTkzOGJcdTkzOGRcdTkzOGZcdTkzOTJcdTkzOTVcdTkzOThcdTkzOWJcdTkzOWVcdTkzYTFcdTkzYTNcdTkz''@;'; + put 'put ''YTRcdTkzYTZcdTkzYThcdTkzYWJcdTkzYjRcdTkzYjVcdTkzYjZcdTkzYmFcdTkzYTlcdTkzYzFcdTkzYzRcdTkzYzVcdTkzYzZcdTkzYzdcdTkzYzkiLDQsIlx1OTNkM1x1OTNkOVx1OTNkY1x1OTNkZVx1OTNkZlx1OTNlMlx1OTNlNlx1OTNlN1x1OTNmOVx1OTNmN1x1OTNmOFx1OTNmYVx1''@;'; + put 'put ''OTNmYlx1OTNmZFx1OTQwMVx1OTQwMlx1OTQwNFx1OTQwOFx1OTQwOVx1OTQwZFx1OTQwZVx1OTQwZlx1OTQxNVx1OTQxNlx1OTQxN1x1OTQxZlx1OTQyZVx1OTQyZlx1OTQzMVx1OTQzMlx1OTQzM1x1OTQzNFx1OTQzYlx1OTQzZlx1OTQzZFx1OTQ0M1x1OTQ0NVx1OTQ0OFx1OTQ0YVx1OTQ0''@;'; + put 'put ''Y1x1OTQ1NVx1OTQ1OVx1OTQ1Y1x1OTQ1Zlx1OTQ2MVx1OTQ2M1x1OTQ2OFx1OTQ2Ylx1OTQ2ZFx1OTQ2ZVx1OTQ2Zlx1OTQ3MVx1OTQ3Mlx1OTQ4NFx1OTQ4M1x1OTU3OFx1OTU3OSJdLFsiOGZlNmExIiwiXHU5NTdlXHU5NTg0XHU5NTg4XHU5NThjXHU5NThkXHU5NThlXHU5NTlkXHU5NTll''@;'; + put 'put ''XHU5NTlmXHU5NWExXHU5NWE2XHU5NWE5XHU5NWFiXHU5NWFjXHU5NWI0XHU5NWI2XHU5NWJhXHU5NWJkXHU5NWJmXHU5NWM2XHU5NWM4XHU5NWM5XHU5NWNiXHU5NWQwXHU5NWQxXHU5NWQyXHU5NWQzXHU5NWQ5XHU5NWRhXHU5NWRkXHU5NWRlXHU5NWRmXHU5NWUwXHU5NWU0XHU5NWU2XHU5''@;'; + put 'put ''NjFkXHU5NjFlXHU5NjIyXHU5NjI0XHU5NjI1XHU5NjI2XHU5NjJjXHU5NjMxXHU5NjMzXHU5NjM3XHU5NjM4XHU5NjM5XHU5NjNhXHU5NjNjXHU5NjNkXHU5NjQxXHU5NjUyXHU5NjU0XHU5NjU2XHU5NjU3XHU5NjU4XHU5NjYxXHU5NjZlXHU5Njc0XHU5NjdiXHU5NjdjXHU5NjdlXHU5Njdm''@;'; + put 'put ''XHU5NjgxXHU5NjgyXHU5NjgzXHU5Njg0XHU5Njg5XHU5NjkxXHU5Njk2XHU5NjlhXHU5NjlkXHU5NjlmXHU5NmE0XHU5NmE1XHU5NmE2XHU5NmE5XHU5NmFlXHU5NmFmXHU5NmIzXHU5NmJhXHU5NmNhXHU5NmQyXHU1ZGIyXHU5NmQ4XHU5NmRhXHU5NmRkXHU5NmRlXHU5NmRmXHU5NmU5XHU5''@;'; + put 'put ''NmVmXHU5NmYxXHU5NmZhXHU5NzAyIl0sWyI4ZmU3YTEiLCJcdTk3MDNcdTk3MDVcdTk3MDlcdTk3MWFcdTk3MWJcdTk3MWRcdTk3MjFcdTk3MjJcdTk3MjNcdTk3MjhcdTk3MzFcdTk3MzNcdTk3NDFcdTk3NDNcdTk3NGFcdTk3NGVcdTk3NGZcdTk3NTVcdTk3NTdcdTk3NThcdTk3NWFcdTk3''@;'; + put 'put ''NWJcdTk3NjNcdTk3NjdcdTk3NmFcdTk3NmVcdTk3NzNcdTk3NzZcdTk3NzdcdTk3NzhcdTk3N2JcdTk3N2RcdTk3N2ZcdTk3ODBcdTk3ODlcdTk3OTVcdTk3OTZcdTk3OTdcdTk3OTlcdTk3OWFcdTk3OWVcdTk3OWZcdTk3YTJcdTk3YWNcdTk3YWVcdTk3YjFcdTk3YjJcdTk3YjVcdTk3YjZc''@;'; + put 'put ''dTk3YjhcdTk3YjlcdTk3YmFcdTk3YmNcdTk3YmVcdTk3YmZcdTk3YzFcdTk3YzRcdTk3YzVcdTk3YzdcdTk3YzlcdTk3Y2FcdTk3Y2NcdTk3Y2RcdTk3Y2VcdTk3ZDBcdTk3ZDFcdTk3ZDRcdTk3ZDdcdTk3ZDhcdTk3ZDlcdTk3ZGRcdTk3ZGVcdTk3ZTBcdTk3ZGJcdTk3ZTFcdTk3ZTRcdTk3''@;'; + put 'put ''ZWZcdTk3ZjFcdTk3ZjRcdTk3ZjdcdTk3ZjhcdTk3ZmFcdTk4MDdcdTk4MGFcdTk4MTlcdTk4MGRcdTk4MGVcdTk4MTRcdTk4MTZcdTk4MWNcdTk4MWVcdTk4MjBcdTk4MjNcdTk4MjYiXSxbIjhmZThhMSIsIlx1OTgyYlx1OTgyZVx1OTgyZlx1OTgzMFx1OTgzMlx1OTgzM1x1OTgzNVx1OTgy''@;'; + put 'put ''NVx1OTgzZVx1OTg0NFx1OTg0N1x1OTg0YVx1OTg1MVx1OTg1Mlx1OTg1M1x1OTg1Nlx1OTg1N1x1OTg1OVx1OTg1YVx1OTg2Mlx1OTg2M1x1OTg2NVx1OTg2Nlx1OTg2YVx1OTg2Y1x1OThhYlx1OThhZFx1OThhZVx1OThiMFx1OThiNFx1OThiN1x1OThiOFx1OThiYVx1OThiYlx1OThiZlx1''@;'; + put 'put ''OThjMlx1OThjNVx1OThjOFx1OThjY1x1OThlMVx1OThlM1x1OThlNVx1OThlNlx1OThlN1x1OThlYVx1OThmM1x1OThmNlx1OTkwMlx1OTkwN1x1OTkwOFx1OTkxMVx1OTkxNVx1OTkxNlx1OTkxN1x1OTkxYVx1OTkxYlx1OTkxY1x1OTkxZlx1OTkyMlx1OTkyNlx1OTkyN1x1OTkyYlx1OTkz''@;'; + put 'put ''MSIsNCwiXHU5OTM5XHU5OTNhXHU5OTNiXHU5OTNjXHU5OTQwXHU5OTQxXHU5OTQ2XHU5OTQ3XHU5OTQ4XHU5OTRkXHU5OTRlXHU5OTU0XHU5OTU4XHU5OTU5XHU5OTViXHU5OTVjXHU5OTVlXHU5OTVmXHU5OTYwXHU5OTliXHU5OTlkXHU5OTlmXHU5OWE2XHU5OWIwXHU5OWIxXHU5OWIyXHU5''@;'; + put 'put ''OWI1Il0sWyI4ZmU5YTEiLCJcdTk5YjlcdTk5YmFcdTk5YmRcdTk5YmZcdTk5YzNcdTk5YzlcdTk5ZDNcdTk5ZDRcdTk5ZDlcdTk5ZGFcdTk5ZGNcdTk5ZGVcdTk5ZTdcdTk5ZWFcdTk5ZWJcdTk5ZWNcdTk5ZjBcdTk5ZjRcdTk5ZjVcdTk5ZjlcdTk5ZmRcdTk5ZmVcdTlhMDJcdTlhMDNcdTlh''@;'; + put 'put ''MDRcdTlhMGJcdTlhMGNcdTlhMTBcdTlhMTFcdTlhMTZcdTlhMWVcdTlhMjBcdTlhMjJcdTlhMjNcdTlhMjRcdTlhMjdcdTlhMmRcdTlhMmVcdTlhMzNcdTlhMzVcdTlhMzZcdTlhMzhcdTlhNDdcdTlhNDFcdTlhNDRcdTlhNGFcdTlhNGJcdTlhNGNcdTlhNGVcdTlhNTFcdTlhNTRcdTlhNTZc''@;'; + put 'put ''dTlhNWRcdTlhYWFcdTlhYWNcdTlhYWVcdTlhYWZcdTlhYjJcdTlhYjRcdTlhYjVcdTlhYjZcdTlhYjlcdTlhYmJcdTlhYmVcdTlhYmZcdTlhYzFcdTlhYzNcdTlhYzZcdTlhYzhcdTlhY2VcdTlhZDBcdTlhZDJcdTlhZDVcdTlhZDZcdTlhZDdcdTlhZGJcdTlhZGNcdTlhZTBcdTlhZTRcdTlh''@;'; + put 'put ''ZTVcdTlhZTdcdTlhZTlcdTlhZWNcdTlhZjJcdTlhZjNcdTlhZjVcdTlhZjlcdTlhZmFcdTlhZmRcdTlhZmYiLDRdLFsiOGZlYWExIiwiXHU5YjA0XHU5YjA1XHU5YjA4XHU5YjA5XHU5YjBiXHU5YjBjXHU5YjBkXHU5YjBlXHU5YjEwXHU5YjEyXHU5YjE2XHU5YjE5XHU5YjFiXHU5YjFjXHU5''@;'; + put 'put ''YjIwXHU5YjI2XHU5YjJiXHU5YjJkXHU5YjMzXHU5YjM0XHU5YjM1XHU5YjM3XHU5YjM5XHU5YjNhXHU5YjNkXHU5YjQ4XHU5YjRiXHU5YjRjXHU5YjU1XHU5YjU2XHU5YjU3XHU5YjViXHU5YjVlXHU5YjYxXHU5YjYzXHU5YjY1XHU5YjY2XHU5YjY4XHU5YjZhIiw0LCJcdTliNzNcdTliNzVc''@;'; + put 'put ''dTliNzdcdTliNzhcdTliNzlcdTliN2ZcdTliODBcdTliODRcdTliODVcdTliODZcdTliODdcdTliODlcdTliOGFcdTliOGJcdTliOGRcdTliOGZcdTliOTBcdTliOTRcdTliOWFcdTliOWRcdTliOWVcdTliYTZcdTliYTdcdTliYTlcdTliYWNcdTliYjBcdTliYjFcdTliYjJcdTliYjdcdTli''@;'; + put 'put ''YjhcdTliYmJcdTliYmNcdTliYmVcdTliYmZcdTliYzFcdTliYzdcdTliYzhcdTliY2VcdTliZDBcdTliZDdcdTliZDhcdTliZGRcdTliZGZcdTliZTVcdTliZTdcdTliZWFcdTliZWJcdTliZWZcdTliZjNcdTliZjdcdTliZjgiXSxbIjhmZWJhMSIsIlx1OWJmOVx1OWJmYVx1OWJmZFx1OWJm''@;'; + put 'put ''Zlx1OWMwMFx1OWMwMlx1OWMwYlx1OWMwZlx1OWMxMVx1OWMxNlx1OWMxOFx1OWMxOVx1OWMxYVx1OWMxY1x1OWMxZVx1OWMyMlx1OWMyM1x1OWMyNiIsNCwiXHU5YzMxXHU5YzM1XHU5YzM2XHU5YzM3XHU5YzNkXHU5YzQxXHU5YzQzXHU5YzQ0XHU5YzQ1XHU5YzQ5XHU5YzRhXHU5YzRlXHU5''@;'; + put 'put ''YzRmXHU5YzUwXHU5YzUzXHU5YzU0XHU5YzU2XHU5YzU4XHU5YzViXHU5YzVkXHU5YzVlXHU5YzVmXHU5YzYzXHU5YzY5XHU5YzZhXHU5YzVjXHU5YzZiXHU5YzY4XHU5YzZlXHU5YzcwXHU5YzcyXHU5Yzc1XHU5Yzc3XHU5YzdiXHU5Y2U2XHU5Y2YyXHU5Y2Y3XHU5Y2Y5XHU5ZDBiXHU5ZDAy''@;'; + put 'put ''XHU5ZDExXHU5ZDE3XHU5ZDE4XHU5ZDFjXHU5ZDFkXHU5ZDFlXHU5ZDJmXHU5ZDMwXHU5ZDMyXHU5ZDMzXHU5ZDM0XHU5ZDNhXHU5ZDNjXHU5ZDQ1XHU5ZDNkXHU5ZDQyXHU5ZDQzXHU5ZDQ3XHU5ZDRhXHU5ZDUzXHU5ZDU0XHU5ZDVmXHU5ZDYzXHU5ZDYyXHU5ZDY1XHU5ZDY5XHU5ZDZhXHU5''@;'; + put 'put ''ZDZiXHU5ZDcwXHU5ZDc2XHU5ZDc3XHU5ZDdiIl0sWyI4ZmVjYTEiLCJcdTlkN2NcdTlkN2VcdTlkODNcdTlkODRcdTlkODZcdTlkOGFcdTlkOGRcdTlkOGVcdTlkOTJcdTlkOTNcdTlkOTVcdTlkOTZcdTlkOTdcdTlkOThcdTlkYTFcdTlkYWFcdTlkYWNcdTlkYWVcdTlkYjFcdTlkYjVcdTlk''@;'; + put 'put ''YjlcdTlkYmNcdTlkYmZcdTlkYzNcdTlkYzdcdTlkYzlcdTlkY2FcdTlkZDRcdTlkZDVcdTlkZDZcdTlkZDdcdTlkZGFcdTlkZGVcdTlkZGZcdTlkZTBcdTlkZTVcdTlkZTdcdTlkZTlcdTlkZWJcdTlkZWVcdTlkZjBcdTlkZjNcdTlkZjRcdTlkZmVcdTllMGFcdTllMDJcdTllMDdcdTllMGVc''@;'; + put 'put ''dTllMTBcdTllMTFcdTllMTJcdTllMTVcdTllMTZcdTllMTlcdTllMWNcdTllMWRcdTllN2FcdTllN2JcdTllN2NcdTllODBcdTllODJcdTllODNcdTllODRcdTllODVcdTllODdcdTllOGVcdTllOGZcdTllOTZcdTllOThcdTllOWJcdTllOWVcdTllYTRcdTllYThcdTllYWNcdTllYWVcdTll''@;'; + put 'put ''YWZcdTllYjBcdTllYjNcdTllYjRcdTllYjVcdTllYzZcdTllYzhcdTllY2JcdTllZDVcdTllZGZcdTllZTRcdTllZTdcdTllZWNcdTllZWRcdTllZWVcdTllZjBcdTllZjFcdTllZjJcdTllZjUiXSxbIjhmZWRhMSIsIlx1OWVmOFx1OWVmZlx1OWYwMlx1OWYwM1x1OWYwOVx1OWYwZlx1OWYx''@;'; + put 'put ''MFx1OWYxMVx1OWYxMlx1OWYxNFx1OWYxNlx1OWYxN1x1OWYxOVx1OWYxYVx1OWYxYlx1OWYxZlx1OWYyMlx1OWYyNlx1OWYyYVx1OWYyYlx1OWYyZlx1OWYzMVx1OWYzMlx1OWYzNFx1OWYzN1x1OWYzOVx1OWYzYVx1OWYzY1x1OWYzZFx1OWYzZlx1OWY0MVx1OWY0MyIsNCwiXHU5ZjUzXHU5''@;'; + put 'put ''ZjU1XHU5ZjU2XHU5ZjU3XHU5ZjU4XHU5ZjVhXHU5ZjVkXHU5ZjVlXHU5ZjY4XHU5ZjY5XHU5ZjZkIiw0LCJcdTlmNzNcdTlmNzVcdTlmN2FcdTlmN2RcdTlmOGZcdTlmOTBcdTlmOTFcdTlmOTJcdTlmOTRcdTlmOTZcdTlmOTdcdTlmOWVcdTlmYTFcdTlmYTJcdTlmYTNcdTlmYTUiXV0nKX0s''@;'; + put 'put ''MzYyNTg6WGU9PnsidXNlIHN0cmljdCI7WGUuZXhwb3J0cz1KU09OLnBhcnNlKCd7InVDaGFycyI6WzEyOCwxNjUsMTY5LDE3OCwxODQsMjE2LDIyNiwyMzUsMjM4LDI0NCwyNDgsMjUxLDI1MywyNTgsMjc2LDI4NCwzMDAsMzI1LDMyOSwzMzQsMzY0LDQ2Myw0NjUsNDY3LDQ2OSw0NzEsNDcz''@;'; + put 'put ''LDQ3NSw0NzcsNTA2LDU5NCw2MTAsNzEyLDcxNiw3MzAsOTMwLDkzOCw5NjIsOTcwLDEwMjYsMTEwNCwxMTA2LDgyMDksODIxNSw4MjE4LDgyMjIsODIzMSw4MjQxLDgyNDQsODI0Niw4MjUyLDgzNjUsODQ1Miw4NDU0LDg0NTgsODQ3MSw4NDgyLDg1NTYsODU3MCw4NTk2LDg2MDIsODcxMyw4''@;'; + put 'put ''NzIwLDg3MjIsODcyNiw4NzMxLDg3MzcsODc0MCw4NzQyLDg3NDgsODc1MSw4NzYwLDg3NjYsODc3Nyw4NzgxLDg3ODcsODgwMiw4ODA4LDg4MTYsODg1NCw4ODU4LDg4NzAsODg5Niw4OTc5LDkzMjIsOTM3Miw5NTQ4LDk1ODgsOTYxNiw5NjIyLDk2MzQsOTY1Miw5NjYyLDk2NzIsOTY3Niw5''@;'; + put 'put ''NjgwLDk3MDIsOTczNSw5NzM4LDk3OTMsOTc5NSwxMTkwNiwxMTkwOSwxMTkxMywxMTkxNywxMTkyOCwxMTk0NCwxMTk0NywxMTk1MSwxMTk1NiwxMTk2MCwxMTk2NCwxMTk3OSwxMjI4NCwxMjI5MiwxMjMxMiwxMjMxOSwxMjMzMCwxMjM1MSwxMjQzNiwxMjQ0NywxMjUzNSwxMjU0MywxMjU4''@;'; + put 'put ''NiwxMjg0MiwxMjg1MCwxMjk2NCwxMzIwMCwxMzIxNSwxMzIxOCwxMzI1MywxMzI2MywxMzI2NywxMzI3MCwxMzM4NCwxMzQyOCwxMzcyNywxMzgzOSwxMzg1MSwxNDYxNywxNDcwMywxNDgwMSwxNDgxNiwxNDk2NCwxNTE4MywxNTQ3MSwxNTU4NSwxNjQ3MSwxNjczNiwxNzIwOCwxNzMyNSwx''@;'; + put 'put ''NzMzMCwxNzM3NCwxNzYyMywxNzk5NywxODAxOCwxODIxMiwxODIxOCwxODMwMSwxODMxOCwxODc2MCwxODgxMSwxODgxNCwxODgyMCwxODgyMywxODg0NCwxODg0OCwxODg3MiwxOTU3NiwxOTYyMCwxOTczOCwxOTg4Nyw0MDg3MCw1OTI0NCw1OTMzNiw1OTM2Nyw1OTQxMyw1OTQxNyw1OTQy''@;'; + put 'put ''Myw1OTQzMSw1OTQzNyw1OTQ0Myw1OTQ1Miw1OTQ2MCw1OTQ3OCw1OTQ5Myw2Mzc4OSw2Mzg2Niw2Mzg5NCw2Mzk3Niw2Mzk4Niw2NDAxNiw2NDAxOCw2NDAyMSw2NDAyNSw2NDAzNCw2NDAzNyw2NDA0Miw2NTA3NCw2NTA5Myw2NTEwNyw2NTExMiw2NTEyNyw2NTEzMiw2NTM3NSw2NTUxMCw2''@;'; + put 'put ''NTUzNl0sImdiQ2hhcnMiOlswLDM2LDM4LDQ1LDUwLDgxLDg5LDk1LDk2LDEwMCwxMDMsMTA0LDEwNSwxMDksMTI2LDEzMywxNDgsMTcyLDE3NSwxNzksMjA4LDMwNiwzMDcsMzA4LDMwOSwzMTAsMzExLDMxMiwzMTMsMzQxLDQyOCw0NDMsNTQ0LDU0NSw1NTgsNzQxLDc0Miw3NDksNzUwLDgw''@;'; + put 'put ''NSw4MTksODIwLDc5MjIsNzkyNCw3OTI1LDc5MjcsNzkzNCw3OTQzLDc5NDQsNzk0NSw3OTUwLDgwNjIsODE0OCw4MTQ5LDgxNTIsODE2NCw4MTc0LDgyMzYsODI0MCw4MjYyLDgyNjQsODM3NCw4MzgwLDgzODEsODM4NCw4Mzg4LDgzOTAsODM5Miw4MzkzLDgzOTQsODM5Niw4NDAxLDg0MDYs''@;'; + put 'put ''ODQxNiw4NDE5LDg0MjQsODQzNyw4NDM5LDg0NDUsODQ4Miw4NDg1LDg0OTYsODUyMSw4NjAzLDg5MzYsODk0Niw5MDQ2LDkwNTAsOTA2Myw5MDY2LDkwNzYsOTA5Miw5MTAwLDkxMDgsOTExMSw5MTEzLDkxMzEsOTE2Miw5MTY0LDkyMTgsOTIxOSwxMTMyOSwxMTMzMSwxMTMzNCwxMTMzNiwx''@;'; + put 'put ''MTM0NiwxMTM2MSwxMTM2MywxMTM2NiwxMTM3MCwxMTM3MiwxMTM3NSwxMTM4OSwxMTY4MiwxMTY4NiwxMTY4NywxMTY5MiwxMTY5NCwxMTcxNCwxMTcxNiwxMTcyMywxMTcyNSwxMTczMCwxMTczNiwxMTk4MiwxMTk4OSwxMjEwMiwxMjMzNiwxMjM0OCwxMjM1MCwxMjM4NCwxMjM5MywxMjM5''@;'; + put 'put ''NSwxMjM5NywxMjUxMCwxMjU1MywxMjg1MSwxMjk2MiwxMjk3MywxMzczOCwxMzgyMywxMzkxOSwxMzkzMywxNDA4MCwxNDI5OCwxNDU4NSwxNDY5OCwxNTU4MywxNTg0NywxNjMxOCwxNjQzNCwxNjQzOCwxNjQ4MSwxNjcyOSwxNzEwMiwxNzEyMiwxNzMxNSwxNzMyMCwxNzQwMiwxNzQxOCwx''@;'; + put 'put ''Nzg1OSwxNzkwOSwxNzkxMSwxNzkxNSwxNzkxNiwxNzkzNiwxNzkzOSwxNzk2MSwxODY2NCwxODcwMywxODgxNCwxODk2MiwxOTA0MywzMzQ2OSwzMzQ3MCwzMzQ3MSwzMzQ4NCwzMzQ4NSwzMzQ5MCwzMzQ5NywzMzUwMSwzMzUwNSwzMzUxMywzMzUyMCwzMzUzNiwzMzU1MCwzNzg0NSwzNzky''@;'; + put 'put ''MSwzNzk0OCwzODAyOSwzODAzOCwzODA2NCwzODA2NSwzODA2NiwzODA2OSwzODA3NSwzODA3NiwzODA3OCwzOTEwOCwzOTEwOSwzOTExMywzOTExNCwzOTExNSwzOTExNiwzOTI2NSwzOTM5NCwxODkwMDBdfScpfSw0NDM0NjpYZT0+eyJ1c2Ugc3RyaWN0IjtYZS5leHBvcnRzPUpTT04ucGFy''@;'; + put 'put ''c2UoJ1tbImExNDAiLCJcdWU0YzYiLDYyXSxbImExODAiLCJcdWU1MDUiLDMyXSxbImEyNDAiLCJcdWU1MjYiLDYyXSxbImEyODAiLCJcdWU1NjUiLDMyXSxbImEyYWIiLCJcdWU3NjYiLDVdLFsiYTJlMyIsIlx1MjBhY1x1ZTc2ZCJdLFsiYTJlZiIsIlx1ZTc2ZVx1ZTc2ZiJdLFsiYTJmZCIs''@;'; + put 'put ''Ilx1ZTc3MFx1ZTc3MSJdLFsiYTM0MCIsIlx1ZTU4NiIsNjJdLFsiYTM4MCIsIlx1ZTVjNSIsMzEsIlx1MzAwMCJdLFsiYTQ0MCIsIlx1ZTVlNiIsNjJdLFsiYTQ4MCIsIlx1ZTYyNSIsMzJdLFsiYTRmNCIsIlx1ZTc3MiIsMTBdLFsiYTU0MCIsIlx1ZTY0NiIsNjJdLFsiYTU4MCIsIlx1ZTY4''@;'; + put 'put ''NSIsMzJdLFsiYTVmNyIsIlx1ZTc3ZCIsN10sWyJhNjQwIiwiXHVlNmE2Iiw2Ml0sWyJhNjgwIiwiXHVlNmU1IiwzMl0sWyJhNmI5IiwiXHVlNzg1Iiw3XSxbImE2ZDkiLCJcdWU3OGQiLDZdLFsiYTZlYyIsIlx1ZTc5NFx1ZTc5NSJdLFsiYTZmMyIsIlx1ZTc5NiJdLFsiYTZmNiIsIlx1ZTc5''@;'; + put 'put ''NyIsOF0sWyJhNzQwIiwiXHVlNzA2Iiw2Ml0sWyJhNzgwIiwiXHVlNzQ1IiwzMl0sWyJhN2MyIiwiXHVlN2EwIiwxNF0sWyJhN2YyIiwiXHVlN2FmIiwxMl0sWyJhODk2IiwiXHVlN2JjIiwxMF0sWyJhOGJjIiwiXHVlN2M3Il0sWyJhOGJmIiwiXHUwMWY5Il0sWyJhOGMxIiwiXHVlN2M5XHVl''@;'; + put 'put ''N2NhXHVlN2NiXHVlN2NjIl0sWyJhOGVhIiwiXHVlN2NkIiwyMF0sWyJhOTU4IiwiXHVlN2UyIl0sWyJhOTViIiwiXHVlN2UzIl0sWyJhOTVkIiwiXHVlN2U0XHVlN2U1XHVlN2U2Il0sWyJhOTg5IiwiXHUzMDNlXHUyZmYwIiwxMV0sWyJhOTk3IiwiXHVlN2Y0IiwxMl0sWyJhOWYwIiwiXHVl''@;'; + put 'put ''ODAxIiwxNF0sWyJhYWExIiwiXHVlMDAwIiw5M10sWyJhYmExIiwiXHVlMDVlIiw5M10sWyJhY2ExIiwiXHVlMGJjIiw5M10sWyJhZGExIiwiXHVlMTFhIiw5M10sWyJhZWExIiwiXHVlMTc4Iiw5M10sWyJhZmExIiwiXHVlMWQ2Iiw5M10sWyJkN2ZhIiwiXHVlODEwIiw0XSxbImY4YTEiLCJc''@;'; + put 'put ''dWUyMzQiLDkzXSxbImY5YTEiLCJcdWUyOTIiLDkzXSxbImZhYTEiLCJcdWUyZjAiLDkzXSxbImZiYTEiLCJcdWUzNGUiLDkzXSxbImZjYTEiLCJcdWUzYWMiLDkzXSxbImZkYTEiLCJcdWU0MGEiLDkzXSxbImZlNTAiLCJcdTJlODFcdWU4MTZcdWU4MTdcdWU4MThcdTJlODRcdTM0NzNcdTM0''@;'; + put 'put ''NDdcdTJlODhcdTJlOGJcdWU4MWVcdTM1OWVcdTM2MWFcdTM2MGVcdTJlOGNcdTJlOTdcdTM5NmVcdTM5MThcdWU4MjZcdTM5Y2ZcdTM5ZGZcdTNhNzNcdTM5ZDBcdWU4MmJcdWU4MmNcdTNiNGVcdTNjNmVcdTNjZTBcdTJlYTdcdWU4MzFcdWU4MzJcdTJlYWFcdTQwNTZcdTQxNWZcdTJlYWVc''@;'; + put 'put ''dTQzMzdcdTJlYjNcdTJlYjZcdTJlYjdcdWU4M2JcdTQzYjFcdTQzYWNcdTJlYmJcdTQzZGRcdTQ0ZDZcdTQ2NjFcdTQ2NGNcdWU4NDMiXSxbImZlODAiLCJcdTQ3MjNcdTQ3MjlcdTQ3N2NcdTQ3OGRcdTJlY2FcdTQ5NDdcdTQ5N2FcdTQ5N2RcdTQ5ODJcdTQ5ODNcdTQ5ODVcdTQ5ODZcdTQ5''@;'; + put 'put ''OWZcdTQ5OWJcdTQ5YjdcdTQ5YjZcdWU4NTRcdWU4NTVcdTRjYTNcdTRjOWZcdTRjYTBcdTRjYTFcdTRjNzdcdTRjYTJcdTRkMTMiLDYsIlx1NGRhZVx1ZTg2NFx1ZTQ2OCIsOTNdXScpfSwyNzAxNDpYZT0+eyJ1c2Ugc3RyaWN0IjtYZS5leHBvcnRzPUpTT04ucGFyc2UoJ1tbIjAiLCJcXHUw''@;'; + put 'put ''MDAwIiwxMjhdLFsiYTEiLCJcdWZmNjEiLDYyXSxbIjgxNDAiLCJcdTMwMDBcdTMwMDFcdTMwMDJcdWZmMGNcdWZmMGVcdTMwZmJcdWZmMWFcdWZmMWJcdWZmMWZcdWZmMDFcdTMwOWJcdTMwOWNceGI0XHVmZjQwXHhhOFx1ZmYzZVx1ZmZlM1x1ZmYzZlx1MzBmZFx1MzBmZVx1MzA5ZFx1MzA5''@;'; + put 'put ''ZVx1MzAwM1x1NGVkZFx1MzAwNVx1MzAwNlx1MzAwN1x1MzBmY1x1MjAxNVx1MjAxMFx1ZmYwZlx1ZmYzY1x1ZmY1ZVx1MjIyNVx1ZmY1Y1x1MjAyNlx1MjAyNVx1MjAxOFx1MjAxOVx1MjAxY1x1MjAxZFx1ZmYwOFx1ZmYwOVx1MzAxNFx1MzAxNVx1ZmYzYlx1ZmYzZFx1ZmY1Ylx1ZmY1ZFx1''@;'; + put 'put ''MzAwOCIsOSwiXHVmZjBiXHVmZjBkXHhiMVx4ZDciXSxbIjgxODAiLCJceGY3XHVmZjFkXHUyMjYwXHVmZjFjXHVmZjFlXHUyMjY2XHUyMjY3XHUyMjFlXHUyMjM0XHUyNjQyXHUyNjQwXHhiMFx1MjAzMlx1MjAzM1x1MjEwM1x1ZmZlNVx1ZmYwNFx1ZmZlMFx1ZmZlMVx1ZmYwNVx1ZmYwM1x1''@;'; + put 'put ''ZmYwNlx1ZmYwYVx1ZmYyMFx4YTdcdTI2MDZcdTI2MDVcdTI1Y2JcdTI1Y2ZcdTI1Y2VcdTI1YzdcdTI1YzZcdTI1YTFcdTI1YTBcdTI1YjNcdTI1YjJcdTI1YmRcdTI1YmNcdTIwM2JcdTMwMTJcdTIxOTJcdTIxOTBcdTIxOTFcdTIxOTNcdTMwMTMiXSxbIjgxYjgiLCJcdTIyMDhcdTIyMGJc''@;'; + put 'put ''dTIyODZcdTIyODdcdTIyODJcdTIyODNcdTIyMmFcdTIyMjkiXSxbIjgxYzgiLCJcdTIyMjdcdTIyMjhcdWZmZTJcdTIxZDJcdTIxZDRcdTIyMDBcdTIyMDMiXSxbIjgxZGEiLCJcdTIyMjBcdTIyYTVcdTIzMTJcdTIyMDJcdTIyMDdcdTIyNjFcdTIyNTJcdTIyNmFcdTIyNmJcdTIyMWFcdTIy''@;'; + put 'put ''M2RcdTIyMWRcdTIyMzVcdTIyMmJcdTIyMmMiXSxbIjgxZjAiLCJcdTIxMmJcdTIwMzBcdTI2NmZcdTI2NmRcdTI2NmFcdTIwMjBcdTIwMjFceGI2Il0sWyI4MWZjIiwiXHUyNWVmIl0sWyI4MjRmIiwiXHVmZjEwIiw5XSxbIjgyNjAiLCJcdWZmMjEiLDI1XSxbIjgyODEiLCJcdWZmNDEiLDI1''@;'; + put 'put ''XSxbIjgyOWYiLCJcdTMwNDEiLDgyXSxbIjgzNDAiLCJcdTMwYTEiLDYyXSxbIjgzODAiLCJcdTMwZTAiLDIyXSxbIjgzOWYiLCJcdTAzOTEiLDE2LCJcdTAzYTMiLDZdLFsiODNiZiIsIlx1MDNiMSIsMTYsIlx1MDNjMyIsNl0sWyI4NDQwIiwiXHUwNDEwIiw1LCJcdTA0MDFcdTA0MTYiLDI1''@;'; + put 'put ''XSxbIjg0NzAiLCJcdTA0MzAiLDUsIlx1MDQ1MVx1MDQzNiIsN10sWyI4NDgwIiwiXHUwNDNlIiwxN10sWyI4NDlmIiwiXHUyNTAwXHUyNTAyXHUyNTBjXHUyNTEwXHUyNTE4XHUyNTE0XHUyNTFjXHUyNTJjXHUyNTI0XHUyNTM0XHUyNTNjXHUyNTAxXHUyNTAzXHUyNTBmXHUyNTEzXHUyNTFi''@;'; + put 'put ''XHUyNTE3XHUyNTIzXHUyNTMzXHUyNTJiXHUyNTNiXHUyNTRiXHUyNTIwXHUyNTJmXHUyNTI4XHUyNTM3XHUyNTNmXHUyNTFkXHUyNTMwXHUyNTI1XHUyNTM4XHUyNTQyIl0sWyI4NzQwIiwiXHUyNDYwIiwxOSwiXHUyMTYwIiw5XSxbIjg3NWYiLCJcdTMzNDlcdTMzMTRcdTMzMjJcdTMzNGRc''@;'; + put 'put ''dTMzMThcdTMzMjdcdTMzMDNcdTMzMzZcdTMzNTFcdTMzNTdcdTMzMGRcdTMzMjZcdTMzMjNcdTMzMmJcdTMzNGFcdTMzM2JcdTMzOWNcdTMzOWRcdTMzOWVcdTMzOGVcdTMzOGZcdTMzYzRcdTMzYTEiXSxbIjg3N2UiLCJcdTMzN2IiXSxbIjg3ODAiLCJcdTMwMWRcdTMwMWZcdTIxMTZcdTMz''@;'; + put 'put ''Y2RcdTIxMjFcdTMyYTQiLDQsIlx1MzIzMVx1MzIzMlx1MzIzOVx1MzM3ZVx1MzM3ZFx1MzM3Y1x1MjI1Mlx1MjI2MVx1MjIyYlx1MjIyZVx1MjIxMVx1MjIxYVx1MjJhNVx1MjIyMFx1MjIxZlx1MjJiZlx1MjIzNVx1MjIyOVx1MjIyYSJdLFsiODg5ZiIsIlx1NGU5Y1x1NTUxNlx1NWEwM1x1''@;'; + put 'put ''OTYzZlx1NTRjMFx1NjExYlx1NjMyOFx1NTlmNlx1OTAyMlx1ODQ3NVx1ODMxY1x1N2E1MFx1NjBhYVx1NjNlMVx1NmUyNVx1NjVlZFx1ODQ2Nlx1ODJhNlx1OWJmNVx1Njg5M1x1NTcyN1x1NjVhMVx1NjI3MVx1NWI5Ylx1NTlkMFx1ODY3Ylx1OThmNFx1N2Q2Mlx1N2RiZVx1OWI4ZVx1NjIx''@;'; + put 'put ''Nlx1N2M5Zlx1ODhiN1x1NWI4OVx1NWViNVx1NjMwOVx1NjY5N1x1Njg0OFx1OTVjN1x1OTc4ZFx1Njc0Zlx1NGVlNVx1NGYwYVx1NGY0ZFx1NGY5ZFx1NTA0OVx1NTZmMlx1NTkzN1x1NTlkNFx1NWEwMVx1NWMwOVx1NjBkZlx1NjEwZlx1NjE3MFx1NjYxM1x1NjkwNVx1NzBiYVx1NzU0Zlx1''@;'; + put 'put ''NzU3MFx1NzlmYlx1N2RhZFx1N2RlZlx1ODBjM1x1ODQwZVx1ODg2M1x1OGIwMlx1OTA1NVx1OTA3YVx1NTMzYlx1NGU5NVx1NGVhNVx1NTdkZlx1ODBiMlx1OTBjMVx1NzhlZlx1NGUwMFx1NThmMVx1NmVhMlx1OTAzOFx1N2EzMlx1ODMyOFx1ODI4Ylx1OWMyZlx1NTE0MVx1NTM3MFx1NTRi''@;'; + put 'put ''ZFx1NTRlMVx1NTZlMFx1NTlmYlx1NWYxNVx1OThmMlx1NmRlYlx1ODBlNFx1ODUyZCJdLFsiODk0MCIsIlx1OTY2Mlx1OTY3MFx1OTZhMFx1OTdmYlx1NTQwYlx1NTNmM1x1NWI4N1x1NzBjZlx1N2ZiZFx1OGZjMlx1OTZlOFx1NTM2Zlx1OWQ1Y1x1N2FiYVx1NGUxMVx1Nzg5M1x1ODFmY1x1''@;'; + put 'put ''NmUyNlx1NTYxOFx1NTUwNFx1NmIxZFx1ODUxYVx1OWMzYlx1NTllNVx1NTNhOVx1NmQ2Nlx1NzRkY1x1OTU4Zlx1NTY0Mlx1NGU5MVx1OTA0Ylx1OTZmMlx1ODM0Zlx1OTkwY1x1NTNlMVx1NTViNlx1NWIzMFx1NWY3MVx1NjYyMFx1NjZmM1x1NjgwNFx1NmMzOFx1NmNmM1x1NmQyOVx1NzQ1''@;'; + put 'put ''Ylx1NzZjOFx1N2E0ZVx1OTgzNFx1ODJmMVx1ODg1Ylx1OGE2MFx1OTJlZFx1NmRiMlx1NzVhYlx1NzZjYVx1OTljNVx1NjBhNlx1OGIwMVx1OGQ4YVx1OTViMlx1Njk4ZVx1NTNhZFx1NTE4NiJdLFsiODk4MCIsIlx1NTcxMlx1NTgzMFx1NTk0NFx1NWJiNFx1NWVmNlx1NjAyOFx1NjNhOVx1''@;'; + put 'put ''NjNmNFx1NmNiZlx1NmYxNFx1NzA4ZVx1NzExNFx1NzE1OVx1NzFkNVx1NzMzZlx1N2UwMVx1ODI3Nlx1ODJkMVx1ODU5N1x1OTA2MFx1OTI1Ylx1OWQxYlx1NTg2OVx1NjViY1x1NmM1YVx1NzUyNVx1NTFmOVx1NTkyZVx1NTk2NVx1NWY4MFx1NWZkY1x1NjJiY1x1NjVmYVx1NmEyYVx1NmIy''@;'; + put 'put ''N1x1NmJiNFx1NzM4Ylx1N2ZjMVx1ODk1Nlx1OWQyY1x1OWQwZVx1OWVjNFx1NWNhMVx1NmM5Nlx1ODM3Ylx1NTEwNFx1NWM0Ylx1NjFiNlx1ODFjNlx1Njg3Nlx1NzI2MVx1NGU1OVx1NGZmYVx1NTM3OFx1NjA2OVx1NmUyOVx1N2E0Zlx1OTdmM1x1NGUwYlx1NTMxNlx1NGVlZVx1NGY1NVx1''@;'; + put 'put ''NGYzZFx1NGZhMVx1NGY3M1x1NTJhMFx1NTNlZlx1NTYwOVx1NTkwZlx1NWFjMVx1NWJiNlx1NWJlMVx1NzlkMVx1NjY4N1x1Njc5Y1x1NjdiNlx1NmI0Y1x1NmNiM1x1NzA2Ylx1NzNjMlx1Nzk4ZFx1NzliZVx1N2EzY1x1N2I4N1x1ODJiMVx1ODJkYlx1ODMwNFx1ODM3N1x1ODNlZlx1ODNk''@;'; + put 'put ''M1x1ODc2Nlx1OGFiMlx1NTYyOVx1OGNhOFx1OGZlNlx1OTA0ZVx1OTcxZVx1ODY4YVx1NGZjNFx1NWNlOFx1NjIxMVx1NzI1OVx1NzUzYlx1ODFlNVx1ODJiZFx1ODZmZVx1OGNjMFx1OTZjNVx1OTkxM1x1OTlkNVx1NGVjYlx1NGYxYVx1ODllM1x1NTZkZVx1NTg0YVx1NThjYVx1NWVmYlx1''@;'; + put 'put ''NWZlYlx1NjAyYVx1NjA5NFx1NjA2Mlx1NjFkMFx1NjIxMlx1NjJkMFx1NjUzOSJdLFsiOGE0MCIsIlx1OWI0MVx1NjY2Nlx1NjhiMFx1NmQ3N1x1NzA3MFx1NzU0Y1x1NzY4Nlx1N2Q3NVx1ODJhNVx1ODdmOVx1OTU4Ylx1OTY4ZVx1OGM5ZFx1NTFmMVx1NTJiZVx1NTkxNlx1NTRiM1x1NWJi''@;'; + put 'put ''M1x1NWQxNlx1NjE2OFx1Njk4Mlx1NmRhZlx1Nzg4ZFx1ODRjYlx1ODg1N1x1OGE3Mlx1OTNhN1x1OWFiOFx1NmQ2Y1x1OTlhOFx1ODZkOVx1NTdhM1x1NjdmZlx1ODZjZVx1OTIwZVx1NTI4M1x1NTY4N1x1NTQwNFx1NWVkM1x1NjJlMVx1NjRiOVx1NjgzY1x1NjgzOFx1NmJiYlx1NzM3Mlx1''@;'; + put 'put ''NzhiYVx1N2E2Ylx1ODk5YVx1ODlkMlx1OGQ2Ylx1OGYwM1x1OTBlZFx1OTVhM1x1OTY5NFx1OTc2OVx1NWI2Nlx1NWNiM1x1Njk3ZFx1OTg0ZFx1OTg0ZVx1NjM5Ylx1N2IyMFx1NmEyYiJdLFsiOGE4MCIsIlx1NmE3Zlx1NjhiNlx1OWMwZFx1NmY1Zlx1NTI3Mlx1NTU5ZFx1NjA3MFx1NjJl''@;'; + put 'put ''Y1x1NmQzYlx1NmUwN1x1NmVkMVx1ODQ1Ylx1ODkxMFx1OGY0NFx1NGUxNFx1OWMzOVx1NTNmNlx1NjkxYlx1NmEzYVx1OTc4NFx1NjgyYVx1NTE1Y1x1N2FjM1x1ODRiMlx1OTFkY1x1OTM4Y1x1NTY1Ylx1OWQyOFx1NjgyMlx1ODMwNVx1ODQzMVx1N2NhNVx1NTIwOFx1ODJjNVx1NzRlNlx1''@;'; + put 'put ''NGU3ZVx1NGY4M1x1NTFhMFx1NWJkMlx1NTIwYVx1NTJkOFx1NTJlN1x1NWRmYlx1NTU5YVx1NTgyYVx1NTllNlx1NWI4Y1x1NWI5OFx1NWJkYlx1NWU3Mlx1NWU3OVx1NjBhM1x1NjExZlx1NjE2M1x1NjFiZVx1NjNkYlx1NjU2Mlx1NjdkMVx1Njg1M1x1NjhmYVx1NmIzZVx1NmI1M1x1NmM1''@;'; + put 'put ''N1x1NmYyMlx1NmY5N1x1NmY0NVx1NzRiMFx1NzUxOFx1NzZlM1x1NzcwYlx1N2FmZlx1N2JhMVx1N2MyMVx1N2RlOVx1N2YzNlx1N2ZmMFx1ODA5ZFx1ODI2Nlx1ODM5ZVx1ODliM1x1OGFjY1x1OGNhYlx1OTA4NFx1OTQ1MVx1OTU5M1x1OTU5MVx1OTVhMlx1OTY2NVx1OTdkM1x1OTkyOFx1''@;'; + put 'put ''ODIxOFx1NGUzOFx1NTQyYlx1NWNiOFx1NWRjY1x1NzNhOVx1NzY0Y1x1NzczY1x1NWNhOVx1N2ZlYlx1OGQwYlx1OTZjMVx1OTgxMVx1OTg1NFx1OTg1OFx1NGYwMVx1NGYwZVx1NTM3MVx1NTU5Y1x1NTY2OFx1NTdmYVx1NTk0N1x1NWIwOVx1NWJjNFx1NWM5MFx1NWUwY1x1NWU3ZVx1NWZj''@;'; + put 'put ''Y1x1NjNlZVx1NjczYVx1NjVkN1x1NjVlMlx1NjcxZlx1NjhjYlx1NjhjNCJdLFsiOGI0MCIsIlx1NmE1Zlx1NWUzMFx1NmJjNVx1NmMxN1x1NmM3ZFx1NzU3Zlx1Nzk0OFx1NWI2M1x1N2EwMFx1N2QwMFx1NWZiZFx1ODk4Zlx1OGExOFx1OGNiNFx1OGQ3N1x1OGVjY1x1OGYxZFx1OThlMlx1''@;'; + put 'put ''OWEwZVx1OWIzY1x1NGU4MFx1NTA3ZFx1NTEwMFx1NTk5M1x1NWI5Y1x1NjIyZlx1NjI4MFx1NjRlY1x1NmIzYVx1NzJhMFx1NzU5MVx1Nzk0N1x1N2ZhOVx1ODdmYlx1OGFiY1x1OGI3MFx1NjNhY1x1ODNjYVx1OTdhMFx1NTQwOVx1NTQwM1x1NTVhYlx1Njg1NFx1NmE1OFx1OGE3MFx1Nzgy''@;'; + put 'put ''N1x1Njc3NVx1OWVjZFx1NTM3NFx1NWJhMlx1ODExYVx1ODY1MFx1OTAwNlx1NGUxOFx1NGU0NVx1NGVjN1x1NGYxMVx1NTNjYVx1NTQzOFx1NWJhZVx1NWYxM1x1NjAyNVx1NjU1MSJdLFsiOGI4MCIsIlx1NjczZFx1NmM0Mlx1NmM3Mlx1NmNlM1x1NzA3OFx1NzQwM1x1N2E3Nlx1N2FhZVx1''@;'; + put 'put ''N2IwOFx1N2QxYVx1N2NmZVx1N2Q2Nlx1NjVlN1x1NzI1Ylx1NTNiYlx1NWM0NVx1NWRlOFx1NjJkMlx1NjJlMFx1NjMxOVx1NmUyMFx1ODY1YVx1OGEzMVx1OGRkZFx1OTJmOFx1NmYwMVx1NzlhNlx1OWI1YVx1NGVhOFx1NGVhYlx1NGVhY1x1NGY5Ylx1NGZhMFx1NTBkMVx1NTE0N1x1N2Fm''@;'; + put 'put ''Nlx1NTE3MVx1NTFmNlx1NTM1NFx1NTMyMVx1NTM3Zlx1NTNlYlx1NTVhY1x1NTg4M1x1NWNlMVx1NWYzN1x1NWY0YVx1NjAyZlx1NjA1MFx1NjA2ZFx1NjMxZlx1NjU1OVx1NmE0Ylx1NmNjMVx1NzJjMlx1NzJlZFx1NzdlZlx1ODBmOFx1ODEwNVx1ODIwOFx1ODU0ZVx1OTBmN1x1OTNlMVx1''@;'; + put 'put ''OTdmZlx1OTk1N1x1OWE1YVx1NGVmMFx1NTFkZFx1NWMyZFx1NjY4MVx1Njk2ZFx1NWM0MFx1NjZmMlx1Njk3NVx1NzM4OVx1Njg1MFx1N2M4MVx1NTBjNVx1NTJlNFx1NTc0N1x1NWRmZVx1OTMyNlx1NjVhNFx1NmIyM1x1NmIzZFx1NzQzNFx1Nzk4MVx1NzliZFx1N2I0Ylx1N2RjYVx1ODJi''@;'; + put 'put ''OVx1ODNjY1x1ODg3Zlx1ODk1Zlx1OGIzOVx1OGZkMVx1OTFkMVx1NTQxZlx1OTI4MFx1NGU1ZFx1NTAzNlx1NTNlNVx1NTMzYVx1NzJkN1x1NzM5Nlx1NzdlOVx1ODJlNlx1OGVhZlx1OTljNlx1OTljOFx1OTlkMlx1NTE3N1x1NjExYVx1ODY1ZVx1NTViMFx1N2E3YVx1NTA3Nlx1NWJkM1x1''@;'; + put 'put ''OTA0N1x1OTY4NVx1NGUzMlx1NmFkYlx1OTFlN1x1NWM1MVx1NWM0OCJdLFsiOGM0MCIsIlx1NjM5OFx1N2E5Zlx1NmM5M1x1OTc3NFx1OGY2MVx1N2FhYVx1NzE4YVx1OTY4OFx1N2M4Mlx1NjgxN1x1N2U3MFx1Njg1MVx1OTM2Y1x1NTJmMlx1NTQxYlx1ODVhYlx1OGExM1x1N2ZhNFx1OGVj''@;'; + put 'put ''ZFx1OTBlMVx1NTM2Nlx1ODg4OFx1Nzk0MVx1NGZjMlx1NTBiZVx1NTIxMVx1NTE0NFx1NTU1M1x1NTcyZFx1NzNlYVx1NTc4Ylx1NTk1MVx1NWY2Mlx1NWY4NFx1NjA3NVx1NjE3Nlx1NjE2N1x1NjFhOVx1NjNiMlx1NjQzYVx1NjU2Y1x1NjY2Zlx1Njg0Mlx1NmUxM1x1NzU2Nlx1N2EzZFx1''@;'; + put 'put ''N2NmYlx1N2Q0Y1x1N2Q5OVx1N2U0Ylx1N2Y2Ylx1ODMwZVx1ODM0YVx1ODZjZFx1OGEwOFx1OGE2M1x1OGI2Nlx1OGVmZFx1OTgxYVx1OWQ4Zlx1ODJiOFx1OGZjZVx1OWJlOCJdLFsiOGM4MCIsIlx1NTI4N1x1NjIxZlx1NjQ4M1x1NmZjMFx1OTY5OVx1Njg0MVx1NTA5MVx1NmIyMFx1NmM3''@;'; + put 'put ''YVx1NmY1NFx1N2E3NFx1N2Q1MFx1ODg0MFx1OGEyM1x1NjcwOFx1NGVmNlx1NTAzOVx1NTAyNlx1NTA2NVx1NTE3Y1x1NTIzOFx1NTI2M1x1NTVhN1x1NTcwZlx1NTgwNVx1NWFjY1x1NWVmYVx1NjFiMlx1NjFmOFx1NjJmM1x1NjM3Mlx1NjkxY1x1NmEyOVx1NzI3ZFx1NzJhY1x1NzMyZVx1''@;'; + put 'put ''NzgxNFx1Nzg2Zlx1N2Q3OVx1NzcwY1x1ODBhOVx1ODk4Ylx1OGIxOVx1OGNlMlx1OGVkMlx1OTA2M1x1OTM3NVx1OTY3YVx1OTg1NVx1OWExM1x1OWU3OFx1NTE0M1x1NTM5Zlx1NTNiM1x1NWU3Ylx1NWYyNlx1NmUxYlx1NmU5MFx1NzM4NFx1NzNmZVx1N2Q0M1x1ODIzN1x1OGEwMFx1OGFm''@;'; + put 'put ''YVx1OTY1MFx1NGU0ZVx1NTAwYlx1NTNlNFx1NTQ3Y1x1NTZmYVx1NTlkMVx1NWI2NFx1NWRmMVx1NWVhYlx1NWYyN1x1NjIzOFx1NjU0NVx1NjdhZlx1NmU1Nlx1NzJkMFx1N2NjYVx1ODhiNFx1ODBhMVx1ODBlMVx1ODNmMFx1ODY0ZVx1OGE4N1x1OGRlOFx1OTIzN1x1OTZjN1x1OTg2N1x1''@;'; + put 'put ''OWYxM1x1NGU5NFx1NGU5Mlx1NGYwZFx1NTM0OFx1NTQ0OVx1NTQzZVx1NWEyZlx1NWY4Y1x1NWZhMVx1NjA5Zlx1NjhhN1x1NmE4ZVx1NzQ1YVx1Nzg4MVx1OGE5ZVx1OGFhNFx1OGI3N1x1OTE5MFx1NGU1ZVx1OWJjOVx1NGVhNFx1NGY3Y1x1NGZhZlx1NTAxOVx1NTAxNlx1NTE0OVx1NTE2''@;'; + put 'put ''Y1x1NTI5Zlx1NTJiOVx1NTJmZVx1NTM5YVx1NTNlM1x1NTQxMSJdLFsiOGQ0MCIsIlx1NTQwZVx1NTU4OVx1NTc1MVx1NTdhMlx1NTk3ZFx1NWI1NFx1NWI1ZFx1NWI4Zlx1NWRlNVx1NWRlN1x1NWRmN1x1NWU3OFx1NWU4M1x1NWU5YVx1NWViN1x1NWYxOFx1NjA1Mlx1NjE0Y1x1NjI5N1x1''@;'; + put 'put ''NjJkOFx1NjNhN1x1NjUzYlx1NjYwMlx1NjY0M1x1NjZmNFx1Njc2ZFx1NjgyMVx1Njg5N1x1NjljYlx1NmM1Zlx1NmQyYVx1NmQ2OVx1NmUyZlx1NmU5ZFx1NzUzMlx1NzY4N1x1Nzg2Y1x1N2EzZlx1N2NlMFx1N2QwNVx1N2QxOFx1N2Q1ZVx1N2RiMVx1ODAxNVx1ODAwM1x1ODBhZlx1ODBi''@;'; + put 'put ''MVx1ODE1NFx1ODE4Zlx1ODIyYVx1ODM1Mlx1ODg0Y1x1ODg2MVx1OGIxYlx1OGNhMlx1OGNmY1x1OTBjYVx1OTE3NVx1OTI3MVx1NzgzZlx1OTJmY1x1OTVhNFx1OTY0ZCJdLFsiOGQ4MCIsIlx1OTgwNVx1OTk5OVx1OWFkOFx1OWQzYlx1NTI1Ylx1NTJhYlx1NTNmN1x1NTQwOFx1NThkNVx1''@;'; + put 'put ''NjJmN1x1NmZlMFx1OGM2YVx1OGY1Zlx1OWViOVx1NTE0Ylx1NTIzYlx1NTQ0YVx1NTZmZFx1N2E0MFx1OTE3N1x1OWQ2MFx1OWVkMlx1NzM0NFx1NmYwOVx1ODE3MFx1NzUxMVx1NWZmZFx1NjBkYVx1OWFhOFx1NzJkYlx1OGZiY1x1NmI2NFx1OTgwM1x1NGVjYVx1NTZmMFx1NTc2NFx1NThi''@;'; + put 'put ''ZVx1NWE1YVx1NjA2OFx1NjFjN1x1NjYwZlx1NjYwNlx1NjgzOVx1NjhiMVx1NmRmN1x1NzVkNVx1N2QzYVx1ODI2ZVx1OWI0Mlx1NGU5Ylx1NGY1MFx1NTNjOVx1NTUwNlx1NWQ2Zlx1NWRlNlx1NWRlZVx1NjdmYlx1NmM5OVx1NzQ3M1x1NzgwMlx1OGE1MFx1OTM5Nlx1ODhkZlx1NTc1MFx1''@;'; + put 'put ''NWVhN1x1NjMyYlx1NTBiNVx1NTBhY1x1NTE4ZFx1NjcwMFx1NTRjOVx1NTg1ZVx1NTliYlx1NWJiMFx1NWY2OVx1NjI0ZFx1NjNhMVx1NjgzZFx1NmI3M1x1NmUwOFx1NzA3ZFx1OTFjN1x1NzI4MFx1NzgxNVx1NzgyNlx1Nzk2ZFx1NjU4ZVx1N2QzMFx1ODNkY1x1ODhjMVx1OGYwOVx1OTY5''@;'; + put 'put ''Ylx1NTI2NFx1NTcyOFx1Njc1MFx1N2Y2YVx1OGNhMVx1NTFiNFx1NTc0Mlx1OTYyYVx1NTgzYVx1Njk4YVx1ODBiNFx1NTRiMlx1NWQwZVx1NTdmY1x1Nzg5NVx1OWRmYVx1NGY1Y1x1NTI0YVx1NTQ4Ylx1NjQzZVx1NjYyOFx1NjcxNFx1NjdmNVx1N2E4NFx1N2I1Nlx1N2QyMlx1OTMyZlx1''@;'; + put 'put ''Njg1Y1x1OWJhZFx1N2IzOVx1NTMxOVx1NTE4YVx1NTIzNyJdLFsiOGU0MCIsIlx1NWJkZlx1NjJmNlx1NjRhZVx1NjRlNlx1NjcyZFx1NmJiYVx1ODVhOVx1OTZkMVx1NzY5MFx1OWJkNlx1NjM0Y1x1OTMwNlx1OWJhYlx1NzZiZlx1NjY1Mlx1NGUwOVx1NTA5OFx1NTNjMlx1NWM3MVx1NjBl''@;'; + put 'put ''OFx1NjQ5Mlx1NjU2M1x1Njg1Zlx1NzFlNlx1NzNjYVx1NzUyM1x1N2I5N1x1N2U4Mlx1ODY5NVx1OGI4M1x1OGNkYlx1OTE3OFx1OTkxMFx1NjVhY1x1NjZhYlx1NmI4Ylx1NGVkNVx1NGVkNFx1NGYzYVx1NGY3Zlx1NTIzYVx1NTNmOFx1NTNmMlx1NTVlM1x1NTZkYlx1NThlYlx1NTljYlx1''@;'; + put 'put ''NTljOVx1NTlmZlx1NWI1MFx1NWM0ZFx1NWUwMlx1NWUyYlx1NWZkN1x1NjAxZFx1NjMwN1x1NjUyZlx1NWI1Y1x1NjVhZlx1NjViZFx1NjVlOFx1Njc5ZFx1NmI2MiJdLFsiOGU4MCIsIlx1NmI3Ylx1NmMwZlx1NzM0NVx1Nzk0OVx1NzljMVx1N2NmOFx1N2QxOVx1N2QyYlx1ODBhMlx1ODEw''@;'; + put 'put ''Mlx1ODFmM1x1ODk5Nlx1OGE1ZVx1OGE2OVx1OGE2Nlx1OGE4Y1x1OGFlZVx1OGNjN1x1OGNkY1x1OTZjY1x1OThmY1x1NmI2Zlx1NGU4Ylx1NGYzY1x1NGY4ZFx1NTE1MFx1NWI1N1x1NWJmYVx1NjE0OFx1NjMwMVx1NjY0Mlx1NmIyMVx1NmVjYlx1NmNiYlx1NzIzZVx1NzRiZFx1NzVkNFx1''@;'; + put 'put ''NzhjMVx1NzkzYVx1ODAwY1x1ODAzM1x1ODFlYVx1ODQ5NFx1OGY5ZVx1NmM1MFx1OWU3Zlx1NWYwZlx1OGI1OFx1OWQyYlx1N2FmYVx1OGVmOFx1NWI4ZFx1OTZlYlx1NGUwM1x1NTNmMVx1NTdmN1x1NTkzMVx1NWFjOVx1NWJhNFx1NjA4OVx1NmU3Zlx1NmYwNlx1NzViZVx1OGNlYVx1NWI5''@;'; + put 'put ''Zlx1ODUwMFx1N2JlMFx1NTA3Mlx1NjdmNFx1ODI5ZFx1NWM2MVx1ODU0YVx1N2UxZVx1ODIwZVx1NTE5OVx1NWMwNFx1NjM2OFx1OGQ2Nlx1NjU5Y1x1NzE2ZVx1NzkzZVx1N2QxN1x1ODAwNVx1OGIxZFx1OGVjYVx1OTA2ZVx1ODZjN1x1OTBhYVx1NTAxZlx1NTJmYVx1NWMzYVx1Njc1M1x1''@;'; + put 'put ''NzA3Y1x1NzIzNVx1OTE0Y1x1OTFjOFx1OTMyYlx1ODJlNVx1NWJjMlx1NWYzMVx1NjBmOVx1NGUzYlx1NTNkNlx1NWI4OFx1NjI0Ylx1NjczMVx1NmI4YVx1NzJlOVx1NzNlMFx1N2EyZVx1ODE2Ylx1OGRhM1x1OTE1Mlx1OTk5Nlx1NTExMlx1NTNkN1x1NTQ2YVx1NWJmZlx1NjM4OFx1NmEz''@;'; + put 'put ''OVx1N2RhY1x1OTcwMFx1NTZkYVx1NTNjZVx1NTQ2OCJdLFsiOGY0MCIsIlx1NWI5N1x1NWMzMVx1NWRkZVx1NGZlZVx1NjEwMVx1NjJmZVx1NmQzMlx1NzljMFx1NzljYlx1N2Q0Mlx1N2U0ZFx1N2ZkMlx1ODFlZFx1ODIxZlx1ODQ5MFx1ODg0Nlx1ODk3Mlx1OGI5MFx1OGU3NFx1OGYyZlx1''@;'; + put 'put ''OTAzMVx1OTE0Ylx1OTE2Y1x1OTZjNlx1OTE5Y1x1NGVjMFx1NGY0Zlx1NTE0NVx1NTM0MVx1NWY5M1x1NjIwZVx1NjdkNFx1NmM0MVx1NmUwYlx1NzM2M1x1N2UyNlx1OTFjZFx1OTI4M1x1NTNkNFx1NTkxOVx1NWJiZlx1NmRkMVx1Nzk1ZFx1N2UyZVx1N2M5Ylx1NTg3ZVx1NzE5Zlx1NTFm''@;'; + put 'put ''YVx1ODg1M1x1OGZmMFx1NGZjYVx1NWNmYlx1NjYyNVx1NzdhY1x1N2FlM1x1ODIxY1x1OTlmZlx1NTFjNlx1NWZhYVx1NjVlY1x1Njk2Zlx1NmI4OVx1NmRmMyJdLFsiOGY4MCIsIlx1NmU5Nlx1NmY2NFx1NzZmZVx1N2QxNFx1NWRlMVx1OTA3NVx1OTE4N1x1OTgwNlx1NTFlNlx1NTIxZFx1''@;'; + put 'put ''NjI0MFx1NjY5MVx1NjZkOVx1NmUxYVx1NWViNlx1N2RkMlx1N2Y3Mlx1NjZmOFx1ODVhZlx1ODVmN1x1OGFmOFx1NTJhOVx1NTNkOVx1NTk3M1x1NWU4Zlx1NWY5MFx1NjA1NVx1OTJlNFx1OTY2NFx1NTBiN1x1NTExZlx1NTJkZFx1NTMyMFx1NTM0N1x1NTNlY1x1NTRlOFx1NTU0Nlx1NTUz''@;'; + put 'put ''MVx1NTYxN1x1NTk2OFx1NTliZVx1NWEzY1x1NWJiNVx1NWMwNlx1NWMwZlx1NWMxMVx1NWMxYVx1NWU4NFx1NWU4YVx1NWVlMFx1NWY3MFx1NjI3Zlx1NjI4NFx1NjJkYlx1NjM4Y1x1NjM3N1x1NjYwN1x1NjYwY1x1NjYyZFx1NjY3Nlx1Njc3ZVx1NjhhMlx1NmExZlx1NmEzNVx1NmNiY1x1''@;'; + put 'put ''NmQ4OFx1NmUwOVx1NmU1OFx1NzEzY1x1NzEyNlx1NzE2N1x1NzVjN1x1NzcwMVx1Nzg1ZFx1NzkwMVx1Nzk2NVx1NzlmMFx1N2FlMFx1N2IxMVx1N2NhN1x1N2QzOVx1ODA5Nlx1ODNkNlx1ODQ4Ylx1ODU0OVx1ODg1ZFx1ODhmM1x1OGExZlx1OGEzY1x1OGE1NFx1OGE3M1x1OGM2MVx1OGNk''@;'; + put 'put ''ZVx1OTFhNFx1OTI2Nlx1OTM3ZVx1OTQxOFx1OTY5Y1x1OTc5OFx1NGUwYVx1NGUwOFx1NGUxZVx1NGU1N1x1NTE5N1x1NTI3MFx1NTdjZVx1NTgzNFx1NThjY1x1NWIyMlx1NWUzOFx1NjBjNVx1NjRmZVx1Njc2MVx1Njc1Nlx1NmQ0NFx1NzJiNlx1NzU3M1x1N2E2M1x1ODRiOFx1OGI3Mlx1''@;'; + put 'put ''OTFiOFx1OTMyMFx1NTYzMVx1NTdmNFx1OThmZSJdLFsiOTA0MCIsIlx1NjJlZFx1NjkwZFx1NmI5Nlx1NzFlZFx1N2U1NFx1ODA3N1x1ODI3Mlx1ODllNlx1OThkZlx1ODc1NVx1OGZiMVx1NWMzYlx1NGYzOFx1NGZlMVx1NGZiNVx1NTUwN1x1NWEyMFx1NWJkZFx1NWJlOVx1NWZjM1x1NjE0''@;'; + put 'put ''ZVx1NjMyZlx1NjViMFx1NjY0Ylx1NjhlZVx1Njk5Ylx1NmQ3OFx1NmRmMVx1NzUzM1x1NzViOVx1NzcxZlx1Nzk1ZVx1NzllNlx1N2QzM1x1ODFlM1x1ODJhZlx1ODVhYVx1ODlhYVx1OGEzYVx1OGVhYlx1OGY5Ylx1OTAzMlx1OTFkZFx1OTcwN1x1NGViYVx1NGVjMVx1NTIwM1x1NTg3NVx1''@;'; + put 'put ''NThlY1x1NWMwYlx1NzUxYVx1NWMzZFx1ODE0ZVx1OGEwYVx1OGZjNVx1OTY2M1x1OTc2ZFx1N2IyNVx1OGFjZlx1OTgwOFx1OTE2Mlx1NTZmM1x1NTNhOCJdLFsiOTA4MCIsIlx1OTAxN1x1NTQzOVx1NTc4Mlx1NWUyNVx1NjNhOFx1NmMzNFx1NzA4YVx1Nzc2MVx1N2M4Ylx1N2ZlMFx1ODg3''@;'; + put 'put ''MFx1OTA0Mlx1OTE1NFx1OTMxMFx1OTMxOFx1OTY4Zlx1NzQ1ZVx1OWFjNFx1NWQwN1x1NWQ2OVx1NjU3MFx1NjdhMlx1OGRhOFx1OTZkYlx1NjM2ZVx1Njc0OVx1NjkxOVx1ODNjNVx1OTgxN1x1OTZjMFx1ODhmZVx1NmY4NFx1NjQ3YVx1NWJmOFx1NGUxNlx1NzAyY1x1NzU1ZFx1NjYyZlx1''@;'; + put 'put ''NTFjNFx1NTIzNlx1NTJlMlx1NTlkM1x1NWY4MVx1NjAyN1x1NjIxMFx1NjUzZlx1NjU3NFx1NjYxZlx1NjY3NFx1NjhmMlx1NjgxNlx1NmI2M1x1NmUwNVx1NzI3Mlx1NzUxZlx1NzZkYlx1N2NiZVx1ODA1Nlx1NThmMFx1ODhmZFx1ODk3Zlx1OGFhMFx1OGE5M1x1OGFjYlx1OTAxZFx1OTE5''@;'; + put 'put ''Mlx1OTc1Mlx1OTc1OVx1NjU4OVx1N2EwZVx1ODEwNlx1OTZiYlx1NWUyZFx1NjBkY1x1NjIxYVx1NjVhNVx1NjYxNFx1Njc5MFx1NzdmM1x1N2E0ZFx1N2M0ZFx1N2UzZVx1ODEwYVx1OGNhY1x1OGQ2NFx1OGRlMVx1OGU1Zlx1NzhhOVx1NTIwN1x1NjJkOVx1NjNhNVx1NjQ0Mlx1NjI5OFx1''@;'; + put 'put ''OGEyZFx1N2E4M1x1N2JjMFx1OGFhY1x1OTZlYVx1N2Q3Nlx1ODIwY1x1ODc0OVx1NGVkOVx1NTE0OFx1NTM0M1x1NTM2MFx1NWJhM1x1NWMwMlx1NWMxNlx1NWRkZFx1NjIyNlx1NjI0N1x1NjRiMFx1NjgxM1x1NjgzNFx1NmNjOVx1NmQ0NVx1NmQxN1x1NjdkM1x1NmY1Y1x1NzE0ZVx1NzE3''@;'; + put 'put ''ZFx1NjVjYlx1N2E3Zlx1N2JhZFx1N2RkYSJdLFsiOTE0MCIsIlx1N2U0YVx1N2ZhOFx1ODE3YVx1ODIxYlx1ODIzOVx1ODVhNlx1OGE2ZVx1OGNjZVx1OGRmNVx1OTA3OFx1OTA3N1x1OTJhZFx1OTI5MVx1OTU4M1x1OWJhZVx1NTI0ZFx1NTU4NFx1NmYzOFx1NzEzNlx1NTE2OFx1Nzk4NVx1''@;'; + put 'put ''N2U1NVx1ODFiM1x1N2NjZVx1NTY0Y1x1NTg1MVx1NWNhOFx1NjNhYVx1NjZmZVx1NjZmZFx1Njk1YVx1NzJkOVx1NzU4Zlx1NzU4ZVx1NzkwZVx1Nzk1Nlx1NzlkZlx1N2M5N1x1N2QyMFx1N2Q0NFx1ODYwN1x1OGEzNFx1OTYzYlx1OTA2MVx1OWYyMFx1NTBlN1x1NTI3NVx1NTNjY1x1NTNl''@;'; + put 'put ''Mlx1NTAwOVx1NTVhYVx1NThlZVx1NTk0Zlx1NzIzZFx1NWI4Ylx1NWM2NFx1NTMxZFx1NjBlM1x1NjBmM1x1NjM1Y1x1NjM4M1x1NjMzZlx1NjNiYiJdLFsiOTE4MCIsIlx1NjRjZFx1NjVlOVx1NjZmOVx1NWRlM1x1NjljZFx1NjlmZFx1NmYxNVx1NzFlNVx1NGU4OVx1NzVlOVx1NzZmOFx1''@;'; + put 'put ''N2E5M1x1N2NkZlx1N2RjZlx1N2Q5Y1x1ODA2MVx1ODM0OVx1ODM1OFx1ODQ2Y1x1ODRiY1x1ODVmYlx1ODhjNVx1OGQ3MFx1OTAwMVx1OTA2ZFx1OTM5N1x1OTcxY1x1OWExMlx1NTBjZlx1NTg5N1x1NjE4ZVx1ODFkM1x1ODUzNVx1OGQwOFx1OTAyMFx1NGZjM1x1NTA3NFx1NTI0N1x1NTM3''@;'; + put 'put ''M1x1NjA2Zlx1NjM0OVx1Njc1Zlx1NmUyY1x1OGRiM1x1OTAxZlx1NGZkN1x1NWM1ZVx1OGNjYVx1NjVjZlx1N2Q5YVx1NTM1Mlx1ODg5Nlx1NTE3Nlx1NjNjM1x1NWI1OFx1NWI2Ylx1NWMwYVx1NjQwZFx1Njc1MVx1OTA1Y1x1NGVkNlx1NTkxYVx1NTkyYVx1NmM3MFx1OGE1MVx1NTUzZVx1''@;'; + put 'put ''NTgxNVx1NTlhNVx1NjBmMFx1NjI1M1x1NjdjMVx1ODIzNVx1Njk1NVx1OTY0MFx1OTljNFx1OWEyOFx1NGY1M1x1NTgwNlx1NWJmZVx1ODAxMFx1NWNiMVx1NWUyZlx1NWY4NVx1NjAyMFx1NjE0Ylx1NjIzNFx1NjZmZlx1NmNmMFx1NmVkZVx1ODBjZVx1ODE3Zlx1ODJkNFx1ODg4Ylx1OGNi''@;'; + put 'put ''OFx1OTAwMFx1OTAyZVx1OTY4YVx1OWVkYlx1OWJkYlx1NGVlM1x1NTNmMFx1NTkyN1x1N2IyY1x1OTE4ZFx1OTg0Y1x1OWRmOVx1NmVkZFx1NzAyN1x1NTM1M1x1NTU0NFx1NWI4NVx1NjI1OFx1NjI5ZVx1NjJkM1x1NmNhMlx1NmZlZlx1NzQyMlx1OGExN1x1OTQzOFx1NmZjMVx1OGFmZVx1''@;'; + put 'put ''ODMzOFx1NTFlN1x1ODZmOFx1NTNlYSJdLFsiOTI0MCIsIlx1NTNlOVx1NGY0Nlx1OTA1NFx1OGZiMFx1NTk2YVx1ODEzMVx1NWRmZFx1N2FlYVx1OGZiZlx1NjhkYVx1OGMzN1x1NzJmOFx1OWM0OFx1NmEzZFx1OGFiMFx1NGUzOVx1NTM1OFx1NTYwNlx1NTc2Nlx1NjJjNVx1NjNhMlx1NjVl''@;'; + put 'put ''Nlx1NmI0ZVx1NmRlMVx1NmU1Ylx1NzBhZFx1NzdlZFx1N2FlZlx1N2JhYVx1N2RiYlx1ODAzZFx1ODBjNlx1ODZjYlx1OGE5NVx1OTM1Ylx1NTZlM1x1NThjN1x1NWYzZVx1NjVhZFx1NjY5Nlx1NmE4MFx1NmJiNVx1NzUzN1x1OGFjN1x1NTAyNFx1NzdlNVx1NTczMFx1NWYxYlx1NjA2NVx1''@;'; + put 'put ''NjY3YVx1NmM2MFx1NzVmNFx1N2ExYVx1N2Y2ZVx1ODFmNFx1ODcxOFx1OTA0NVx1OTliM1x1N2JjOVx1NzU1Y1x1N2FmOVx1N2I1MVx1ODRjNCJdLFsiOTI4MCIsIlx1OTAxMFx1NzllOVx1N2E5Mlx1ODMzNlx1NWFlMVx1Nzc0MFx1NGUyZFx1NGVmMlx1NWI5OVx1NWZlMFx1NjJiZFx1NjYz''@;'; + put 'put ''Y1x1NjdmMVx1NmNlOFx1ODY2Ylx1ODg3N1x1OGEzYlx1OTE0ZVx1OTJmM1x1OTlkMFx1NmExN1x1NzAyNlx1NzMyYVx1ODJlN1x1ODQ1N1x1OGNhZlx1NGUwMVx1NTE0Nlx1NTFjYlx1NTU4Ylx1NWJmNVx1NWUxNlx1NWUzM1x1NWU4MVx1NWYxNFx1NWYzNVx1NWY2Ylx1NWZiNFx1NjFmMlx1''@;'; + put 'put ''NjMxMVx1NjZhMlx1NjcxZFx1NmY2ZVx1NzI1Mlx1NzUzYVx1NzczYVx1ODA3NFx1ODEzOVx1ODE3OFx1ODc3Nlx1OGFiZlx1OGFkY1x1OGQ4NVx1OGRmM1x1OTI5YVx1OTU3N1x1OTgwMlx1OWNlNVx1NTJjNVx1NjM1N1x1NzZmNFx1NjcxNVx1NmM4OFx1NzNjZFx1OGNjM1x1OTNhZVx1OTY3''@;'; + put 'put ''M1x1NmQyNVx1NTg5Y1x1NjkwZVx1NjljY1x1OGZmZFx1OTM5YVx1NzVkYlx1OTAxYVx1NTg1YVx1NjgwMlx1NjNiNFx1NjlmYlx1NGY0M1x1NmYyY1x1NjdkOFx1OGZiYlx1ODUyNlx1N2RiNFx1OTM1NFx1NjkzZlx1NmY3MFx1NTc2YVx1NThmN1x1NWIyY1x1N2QyY1x1NzIyYVx1NTQwYVx1''@;'; + put 'put ''OTFlM1x1OWRiNFx1NGVhZFx1NGY0ZVx1NTA1Y1x1NTA3NVx1NTI0M1x1OGM5ZVx1NTQ0OFx1NTgyNFx1NWI5YVx1NWUxZFx1NWU5NVx1NWVhZFx1NWVmN1x1NWYxZlx1NjA4Y1x1NjJiNVx1NjMzYVx1NjNkMFx1NjhhZlx1NmM0MFx1Nzg4N1x1Nzk4ZVx1N2EwYlx1N2RlMFx1ODI0N1x1OGEw''@;'; + put 'put ''Mlx1OGFlNlx1OGU0NFx1OTAxMyJdLFsiOTM0MCIsIlx1OTBiOFx1OTEyZFx1OTFkOFx1OWYwZVx1NmNlNVx1NjQ1OFx1NjRlMlx1NjU3NVx1NmVmNFx1NzY4NFx1N2IxYlx1OTA2OVx1OTNkMVx1NmViYVx1NTRmMlx1NWZiOVx1NjRhNFx1OGY0ZFx1OGZlZFx1OTI0NFx1NTE3OFx1NTg2Ylx1''@;'; + put 'put ''NTkyOVx1NWM1NVx1NWU5N1x1NmRmYlx1N2U4Zlx1NzUxY1x1OGNiY1x1OGVlMlx1OTg1Ylx1NzBiOVx1NGYxZFx1NmJiZlx1NmZiMVx1NzUzMFx1OTZmYlx1NTE0ZVx1NTQxMFx1NTgzNVx1NTg1N1x1NTlhY1x1NWM2MFx1NWY5Mlx1NjU5N1x1Njc1Y1x1NmUyMVx1NzY3Ylx1ODNkZlx1OGNl''@;'; + put 'put ''ZFx1OTAxNFx1OTBmZFx1OTM0ZFx1NzgyNVx1NzgzYVx1NTJhYVx1NWVhNlx1NTcxZlx1NTk3NFx1NjAxMlx1NTAxMlx1NTE1YVx1NTFhYyJdLFsiOTM4MCIsIlx1NTFjZFx1NTIwMFx1NTUxMFx1NTg1NFx1NTg1OFx1NTk1N1x1NWI5NVx1NWNmNlx1NWQ4Ylx1NjBiY1x1NjI5NVx1NjQyZFx1''@;'; + put 'put ''Njc3MVx1Njg0M1x1NjhiY1x1NjhkZlx1NzZkN1x1NmRkOFx1NmU2Zlx1NmQ5Ylx1NzA2Zlx1NzFjOFx1NWY1M1x1NzVkOFx1Nzk3N1x1N2I0OVx1N2I1NFx1N2I1Mlx1N2NkNlx1N2Q3MVx1NTIzMFx1ODQ2M1x1ODU2OVx1ODVlNFx1OGEwZVx1OGIwNFx1OGM0Nlx1OGUwZlx1OTAwM1x1OTAw''@;'; + put 'put ''Zlx1OTQxOVx1OTY3Nlx1OTgyZFx1OWEzMFx1OTVkOFx1NTBjZFx1NTJkNVx1NTQwY1x1NTgwMlx1NWMwZVx1NjFhN1x1NjQ5ZVx1NmQxZVx1NzdiM1x1N2FlNVx1ODBmNFx1ODQwNFx1OTA1M1x1OTI4NVx1NWNlMFx1OWQwN1x1NTMzZlx1NWY5N1x1NWZiM1x1NmQ5Y1x1NzI3OVx1Nzc2M1x1''@;'; + put 'put ''NzliZlx1N2JlNFx1NmJkMlx1NzJlY1x1OGFhZFx1NjgwM1x1NmE2MVx1NTFmOFx1N2E4MVx1NjkzNFx1NWM0YVx1OWNmNlx1ODJlYlx1NWJjNVx1OTE0OVx1NzAxZVx1NTY3OFx1NWM2Zlx1NjBjN1x1NjU2Nlx1NmM4Y1x1OGM1YVx1OTA0MVx1OTgxM1x1NTQ1MVx1NjZjN1x1OTIwZFx1NTk0''@;'; + put 'put ''OFx1OTBhM1x1NTE4NVx1NGU0ZFx1NTFlYVx1ODU5OVx1OGIwZVx1NzA1OFx1NjM3YVx1OTM0Ylx1Njk2Mlx1OTliNFx1N2UwNFx1NzU3N1x1NTM1N1x1Njk2MFx1OGVkZlx1OTZlM1x1NmM1ZFx1NGU4Y1x1NWMzY1x1NWYxMFx1OGZlOVx1NTMwMlx1OGNkMVx1ODA4OVx1ODY3OVx1NWVmZlx1''@;'; + put 'put ''NjVlNVx1NGU3M1x1NTE2NSJdLFsiOTQ0MCIsIlx1NTk4Mlx1NWMzZlx1OTdlZVx1NGVmYlx1NTk4YVx1NWZjZFx1OGE4ZFx1NmZlMVx1NzliMFx1Nzk2Mlx1NWJlN1x1ODQ3MVx1NzMyYlx1NzFiMVx1NWU3NFx1NWZmNVx1NjM3Ylx1NjQ5YVx1NzFjM1x1N2M5OFx1NGU0M1x1NWVmY1x1NGU0''@;'; + put 'put ''Ylx1NTdkY1x1NTZhMlx1NjBhOVx1NmZjM1x1N2QwZFx1ODBmZFx1ODEzM1x1ODFiZlx1OGZiMlx1ODk5N1x1ODZhNFx1NWRmNFx1NjI4YVx1NjRhZFx1ODk4N1x1Njc3N1x1NmNlMlx1NmQzZVx1NzQzNlx1NzgzNFx1NWE0Nlx1N2Y3NVx1ODJhZFx1OTlhY1x1NGZmM1x1NWVjM1x1NjJkZFx1''@;'; + put 'put ''NjM5Mlx1NjU1N1x1Njc2Zlx1NzZjM1x1NzI0Y1x1ODBjY1x1ODBiYVx1OGYyOVx1OTE0ZFx1NTAwZFx1NTdmOVx1NWE5Mlx1Njg4NSJdLFsiOTQ4MCIsIlx1Njk3M1x1NzE2NFx1NzJmZFx1OGNiN1x1NThmMlx1OGNlMFx1OTY2YVx1OTAxOVx1ODc3Zlx1NzllNFx1NzdlN1x1ODQyOVx1NGYy''@;'; + put 'put ''Zlx1NTI2NVx1NTM1YVx1NjJjZFx1NjdjZlx1NmNjYVx1NzY3ZFx1N2I5NFx1N2M5NVx1ODIzNlx1ODU4NFx1OGZlYlx1NjZkZFx1NmYyMFx1NzIwNlx1N2UxYlx1ODNhYlx1OTljMVx1OWVhNlx1NTFmZFx1N2JiMVx1Nzg3Mlx1N2JiOFx1ODA4N1x1N2I0OFx1NmFlOFx1NWU2MVx1ODA4Y1x1''@;'; + put 'put ''NzU1MVx1NzU2MFx1NTE2Ylx1OTI2Mlx1NmU4Y1x1NzY3YVx1OTE5N1x1OWFlYVx1NGYxMFx1N2Y3MFx1NjI5Y1x1N2I0Zlx1OTVhNVx1OWNlOVx1NTY3YVx1NTg1OVx1ODZlNFx1OTZiY1x1NGYzNFx1NTIyNFx1NTM0YVx1NTNjZFx1NTNkYlx1NWUwNlx1NjQyY1x1NjU5MVx1Njc3Zlx1NmMz''@;'; + put 'put ''ZVx1NmM0ZVx1NzI0OFx1NzJhZlx1NzNlZFx1NzU1NFx1N2U0MVx1ODIyY1x1ODVlOVx1OGNhOVx1N2JjNFx1OTFjNlx1NzE2OVx1OTgxMlx1OThlZlx1NjMzZFx1NjY2OVx1NzU2YVx1NzZlNFx1NzhkMFx1ODU0M1x1ODZlZVx1NTMyYVx1NTM1MVx1NTQyNlx1NTk4M1x1NWU4N1x1NWY3Y1x1''@;'; + put 'put ''NjBiMlx1NjI0OVx1NjI3OVx1NjJhYlx1NjU5MFx1NmJkNFx1NmNjY1x1NzViMlx1NzZhZVx1Nzg5MVx1NzlkOFx1N2RjYlx1N2Y3N1x1ODBhNVx1ODhhYlx1OGFiOVx1OGNiYlx1OTA3Zlx1OTc1ZVx1OThkYlx1NmEwYlx1N2MzOFx1NTA5OVx1NWMzZVx1NWZhZVx1Njc4N1x1NmJkOFx1NzQz''@;'; + put 'put ''NVx1NzcwOVx1N2Y4ZSJdLFsiOTU0MCIsIlx1OWYzYlx1NjdjYVx1N2ExN1x1NTMzOVx1NzU4Ylx1OWFlZFx1NWY2Nlx1ODE5ZFx1ODNmMVx1ODA5OFx1NWYzY1x1NWZjNVx1NzU2Mlx1N2I0Nlx1OTAzY1x1Njg2N1x1NTllYlx1NWE5Ylx1N2QxMFx1NzY3ZVx1OGIyY1x1NGZmNVx1NWY2YVx1''@;'; + put 'put ''NmExOVx1NmMzN1x1NmYwMlx1NzRlMlx1Nzk2OFx1ODg2OFx1OGE1NVx1OGM3OVx1NWVkZlx1NjNjZlx1NzVjNVx1NzlkMlx1ODJkN1x1OTMyOFx1OTJmMlx1ODQ5Y1x1ODZlZFx1OWMyZFx1NTRjMVx1NWY2Y1x1NjU4Y1x1NmQ1Y1x1NzAxNVx1OGNhN1x1OGNkM1x1OTgzYlx1NjU0Zlx1NzRm''@;'; + put 'put ''Nlx1NGUwZFx1NGVkOFx1NTdlMFx1NTkyYlx1NWE2Nlx1NWJjY1x1NTFhOFx1NWUwM1x1NWU5Y1x1NjAxNlx1NjI3Nlx1NjU3NyJdLFsiOTU4MCIsIlx1NjVhN1x1NjY2ZVx1NmQ2ZVx1NzIzNlx1N2IyNlx1ODE1MFx1ODE5YVx1ODI5OVx1OGI1Y1x1OGNhMFx1OGNlNlx1OGQ3NFx1OTYxY1x1''@;'; + put 'put ''OTY0NFx1NGZhZVx1NjRhYlx1NmI2Nlx1ODIxZVx1ODQ2MVx1ODU2YVx1OTBlOFx1NWMwMVx1Njk1M1x1OThhOFx1ODQ3YVx1ODU1N1x1NGYwZlx1NTI2Zlx1NWZhOVx1NWU0NVx1NjcwZFx1Nzk4Zlx1ODE3OVx1ODkwN1x1ODk4Nlx1NmRmNVx1NWYxN1x1NjI1NVx1NmNiOFx1NGVjZlx1NzI2''@;'; + put 'put ''OVx1OWI5Mlx1NTIwNlx1NTQzYlx1NTY3NFx1NThiM1x1NjFhNFx1NjI2ZVx1NzExYVx1NTk2ZVx1N2M4OVx1N2NkZVx1N2QxYlx1OTZmMFx1NjU4N1x1ODA1ZVx1NGUxOVx1NGY3NVx1NTE3NVx1NTg0MFx1NWU2M1x1NWU3M1x1NWYwYVx1NjdjNFx1NGUyNlx1ODUzZFx1OTU4OVx1OTY1Ylx1''@;'; + put 'put ''N2M3M1x1OTgwMVx1NTBmYlx1NThjMVx1NzY1Nlx1NzhhN1x1NTIyNVx1NzdhNVx1ODUxMVx1N2I4Nlx1NTA0Zlx1NTkwOVx1NzI0N1x1N2JjN1x1N2RlOFx1OGZiYVx1OGZkNFx1OTA0ZFx1NGZiZlx1NTJjOVx1NWEyOVx1NWYwMVx1OTdhZFx1NGZkZFx1ODIxN1x1OTJlYVx1NTcwM1x1NjM1''@;'; + put 'put ''NVx1NmI2OVx1NzUyYlx1ODhkY1x1OGYxNFx1N2E0Mlx1NTJkZlx1NTg5M1x1NjE1NVx1NjIwYVx1NjZhZVx1NmJjZFx1N2MzZlx1ODNlOVx1NTAyM1x1NGZmOFx1NTMwNVx1NTQ0Nlx1NTgzMVx1NTk0OVx1NWI5ZFx1NWNmMFx1NWNlZlx1NWQyOVx1NWU5Nlx1NjJiMVx1NjM2N1x1NjUzZVx1''@;'; + put 'put ''NjViOVx1NjcwYiJdLFsiOTY0MCIsIlx1NmNkNVx1NmNlMVx1NzBmOVx1NzgzMlx1N2UyYlx1ODBkZVx1ODJiM1x1ODQwY1x1ODRlY1x1ODcwMlx1ODkxMlx1OGEyYVx1OGM0YVx1OTBhNlx1OTJkMlx1OThmZFx1OWNmM1x1OWQ2Y1x1NGU0Zlx1NGVhMVx1NTA4ZFx1NTI1Nlx1NTc0YVx1NTlh''@;'; + put 'put ''OFx1NWUzZFx1NWZkOFx1NWZkOVx1NjIzZlx1NjZiNFx1NjcxYlx1NjdkMFx1NjhkMlx1NTE5Mlx1N2QyMVx1ODBhYVx1ODFhOFx1OGIwMFx1OGM4Y1x1OGNiZlx1OTI3ZVx1OTYzMlx1NTQyMFx1OTgyY1x1NTMxN1x1NTBkNVx1NTM1Y1x1NThhOFx1NjRiMlx1NjczNFx1NzI2N1x1Nzc2Nlx1''@;'; + put 'put ''N2E0Nlx1OTFlNlx1NTJjM1x1NmNhMVx1NmI4Nlx1NTgwMFx1NWU0Y1x1NTk1NFx1NjcyY1x1N2ZmYlx1NTFlMVx1NzZjNiJdLFsiOTY4MCIsIlx1NjQ2OVx1NzhlOFx1OWI1NFx1OWViYlx1NTdjYlx1NTliOVx1NjYyN1x1Njc5YVx1NmJjZVx1NTRlOVx1NjlkOVx1NWU1NVx1ODE5Y1x1Njc5''@;'; + put 'put ''NVx1OWJhYVx1NjdmZVx1OWM1Mlx1Njg1ZFx1NGVhNlx1NGZlM1x1NTNjOFx1NjJiOVx1NjcyYlx1NmNhYlx1OGZjNFx1NGZhZFx1N2U2ZFx1OWViZlx1NGUwN1x1NjE2Mlx1NmU4MFx1NmYyYlx1ODUxM1x1NTQ3M1x1NjcyYVx1OWI0NVx1NWRmM1x1N2I5NVx1NWNhY1x1NWJjNlx1ODcxY1x1''@;'; + put 'put ''NmU0YVx1ODRkMVx1N2ExNFx1ODEwOFx1NTk5OVx1N2M4ZFx1NmMxMVx1NzcyMFx1NTJkOVx1NTkyMlx1NzEyMVx1NzI1Zlx1NzdkYlx1OTcyN1x1OWQ2MVx1NjkwYlx1NWE3Zlx1NWExOFx1NTFhNVx1NTQwZFx1NTQ3ZFx1NjYwZVx1NzZkZlx1OGZmN1x1OTI5OFx1OWNmNFx1NTllYVx1NzI1''@;'; + put 'put ''ZFx1NmVjNVx1NTE0ZFx1NjhjOVx1N2RiZlx1N2RlY1x1OTc2Mlx1OWViYVx1NjQ3OFx1NmEyMVx1ODMwMlx1NTk4NFx1NWI1Zlx1NmJkYlx1NzMxYlx1NzZmMlx1N2RiMlx1ODAxN1x1ODQ5OVx1NTEzMlx1NjcyOFx1OWVkOVx1NzZlZVx1Njc2Mlx1NTJmZlx1OTkwNVx1NWMyNFx1NjIzYlx1''@;'; + put 'put ''N2M3ZVx1OGNiMFx1NTU0Zlx1NjBiNlx1N2QwYlx1OTU4MFx1NTMwMVx1NGU1Zlx1NTFiNlx1NTkxY1x1NzIzYVx1ODAzNlx1OTFjZVx1NWYyNVx1NzdlMlx1NTM4NFx1NWY3OVx1N2QwNFx1ODVhY1x1OGEzM1x1OGU4ZFx1OTc1Nlx1NjdmM1x1ODVhZVx1OTQ1M1x1NjEwOVx1NjEwOFx1NmNi''@;'; + put 'put ''OVx1NzY1MiJdLFsiOTc0MCIsIlx1OGFlZFx1OGYzOFx1NTUyZlx1NGY1MVx1NTEyYVx1NTJjN1x1NTNjYlx1NWJhNVx1NWU3ZFx1NjBhMFx1NjE4Mlx1NjNkNlx1NjcwOVx1NjdkYVx1NmU2N1x1NmQ4Y1x1NzMzNlx1NzMzN1x1NzUzMVx1Nzk1MFx1ODhkNVx1OGE5OFx1OTA0YVx1OTA5MVx1''@;'; + put 'put ''OTBmNVx1OTZjNFx1ODc4ZFx1NTkxNVx1NGU4OFx1NGY1OVx1NGUwZVx1OGE4OVx1OGYzZlx1OTgxMFx1NTBhZFx1NWU3Y1x1NTk5Nlx1NWJiOVx1NWViOFx1NjNkYVx1NjNmYVx1NjRjMVx1NjZkY1x1Njk0YVx1NjlkOFx1NmQwYlx1NmViNlx1NzE5NFx1NzUyOFx1N2FhZlx1N2Y4YVx1ODAw''@;'; + put 'put ''MFx1ODQ0OVx1ODRjOVx1ODk4MVx1OGIyMVx1OGUwYVx1OTA2NVx1OTY3ZFx1OTkwYVx1NjE3ZVx1NjI5MVx1NmIzMiJdLFsiOTc4MCIsIlx1NmM4M1x1NmQ3NFx1N2ZjY1x1N2ZmY1x1NmRjMFx1N2Y4NVx1ODdiYVx1ODhmOFx1Njc2NVx1ODNiMVx1OTgzY1x1OTZmN1x1NmQxYlx1N2Q2MVx1''@;'; + put 'put ''ODQzZFx1OTE2YVx1NGU3MVx1NTM3NVx1NWQ1MFx1NmIwNFx1NmZlYlx1ODVjZFx1ODYyZFx1ODlhN1x1NTIyOVx1NTQwZlx1NWM2NVx1Njc0ZVx1NjhhOFx1NzQwNlx1NzQ4M1x1NzVlMlx1ODhjZlx1ODhlMVx1OTFjY1x1OTZlMlx1OTY3OFx1NWY4Ylx1NzM4N1x1N2FjYlx1ODQ0ZVx1NjNh''@;'; + put 'put ''MFx1NzU2NVx1NTI4OVx1NmQ0MVx1NmU5Y1x1NzQwOVx1NzU1OVx1Nzg2Ylx1N2M5Mlx1OTY4Nlx1N2FkY1x1OWY4ZFx1NGZiNlx1NjE2ZVx1NjVjNVx1ODY1Y1x1NGU4Nlx1NGVhZVx1NTBkYVx1NGUyMVx1NTFjY1x1NWJlZVx1NjU5OVx1Njg4MVx1NmRiY1x1NzMxZlx1NzY0Mlx1NzdhZFx1''@;'; + put 'put ''N2ExY1x1N2NlN1x1ODI2Zlx1OGFkMlx1OTA3Y1x1OTFjZlx1OTY3NVx1OTgxOFx1NTI5Ylx1N2RkMVx1NTAyYlx1NTM5OFx1Njc5N1x1NmRjYlx1NzFkMFx1NzQzM1x1ODFlOFx1OGYyYVx1OTZhM1x1OWM1N1x1OWU5Zlx1NzQ2MFx1NTg0MVx1NmQ5OVx1N2QyZlx1OTg1ZVx1NGVlNFx1NGYz''@;'; + put 'put ''Nlx1NGY4Ylx1NTFiN1x1NTJiMVx1NWRiYVx1NjAxY1x1NzNiMlx1NzkzY1x1ODJkM1x1OTIzNFx1OTZiN1x1OTZmNlx1OTcwYVx1OWU5N1x1OWY2Mlx1NjZhNlx1NmI3NFx1NTIxN1x1NTJhM1x1NzBjOFx1ODhjMlx1NWVjOVx1NjA0Ylx1NjE5MFx1NmYyM1x1NzE0OVx1N2MzZVx1N2RmNFx1''@;'; + put 'put ''ODA2ZiJdLFsiOTg0MCIsIlx1ODRlZVx1OTAyM1x1OTMyY1x1NTQ0Mlx1OWI2Zlx1NmFkM1x1NzA4OVx1OGNjMlx1OGRlZlx1OTczMlx1NTJiNFx1NWE0MVx1NWVjYVx1NWYwNFx1NjcxN1x1Njk3Y1x1Njk5NFx1NmQ2YVx1NmYwZlx1NzI2Mlx1NzJmY1x1N2JlZFx1ODAwMVx1ODA3ZVx1ODc0''@;'; + put 'put ''Ylx1OTBjZVx1NTE2ZFx1OWU5M1x1Nzk4NFx1ODA4Ylx1OTMzMlx1OGFkNlx1NTAyZFx1NTQ4Y1x1OGE3MVx1NmI2YVx1OGNjNFx1ODEwN1x1NjBkMVx1NjdhMFx1OWRmMlx1NGU5OVx1NGU5OFx1OWMxMFx1OGE2Ylx1ODVjMVx1ODU2OFx1NjkwMFx1NmU3ZVx1Nzg5N1x1ODE1NSJdLFsiOTg5''@;'; + put 'put ''ZiIsIlx1NWYwY1x1NGUxMFx1NGUxNVx1NGUyYVx1NGUzMVx1NGUzNlx1NGUzY1x1NGUzZlx1NGU0Mlx1NGU1Nlx1NGU1OFx1NGU4Mlx1NGU4NVx1OGM2Ylx1NGU4YVx1ODIxMlx1NWYwZFx1NGU4ZVx1NGU5ZVx1NGU5Zlx1NGVhMFx1NGVhMlx1NGViMFx1NGViM1x1NGViNlx1NGVjZVx1NGVj''@;'; + put 'put ''ZFx1NGVjNFx1NGVjNlx1NGVjMlx1NGVkN1x1NGVkZVx1NGVlZFx1NGVkZlx1NGVmN1x1NGYwOVx1NGY1YVx1NGYzMFx1NGY1Ylx1NGY1ZFx1NGY1N1x1NGY0N1x1NGY3Nlx1NGY4OFx1NGY4Zlx1NGY5OFx1NGY3Ylx1NGY2OVx1NGY3MFx1NGY5MVx1NGY2Zlx1NGY4Nlx1NGY5Nlx1NTExOFx1''@;'; + put 'put ''NGZkNFx1NGZkZlx1NGZjZVx1NGZkOFx1NGZkYlx1NGZkMVx1NGZkYVx1NGZkMFx1NGZlNFx1NGZlNVx1NTAxYVx1NTAyOFx1NTAxNFx1NTAyYVx1NTAyNVx1NTAwNVx1NGYxY1x1NGZmNlx1NTAyMVx1NTAyOVx1NTAyY1x1NGZmZVx1NGZlZlx1NTAxMVx1NTAwNlx1NTA0M1x1NTA0N1x1Njcw''@;'; + put 'put ''M1x1NTA1NVx1NTA1MFx1NTA0OFx1NTA1YVx1NTA1Nlx1NTA2Y1x1NTA3OFx1NTA4MFx1NTA5YVx1NTA4NVx1NTBiNFx1NTBiMiJdLFsiOTk0MCIsIlx1NTBjOVx1NTBjYVx1NTBiM1x1NTBjMlx1NTBkNlx1NTBkZVx1NTBlNVx1NTBlZFx1NTBlM1x1NTBlZVx1NTBmOVx1NTBmNVx1NTEwOVx1''@;'; + put 'put ''NTEwMVx1NTEwMlx1NTExNlx1NTExNVx1NTExNFx1NTExYVx1NTEyMVx1NTEzYVx1NTEzN1x1NTEzY1x1NTEzYlx1NTEzZlx1NTE0MFx1NTE1Mlx1NTE0Y1x1NTE1NFx1NTE2Mlx1N2FmOFx1NTE2OVx1NTE2YVx1NTE2ZVx1NTE4MFx1NTE4Mlx1NTZkOFx1NTE4Y1x1NTE4OVx1NTE4Zlx1NTE5''@;'; + put 'put ''MVx1NTE5M1x1NTE5NVx1NTE5Nlx1NTFhNFx1NTFhNlx1NTFhMlx1NTFhOVx1NTFhYVx1NTFhYlx1NTFiM1x1NTFiMVx1NTFiMlx1NTFiMFx1NTFiNVx1NTFiZFx1NTFjNVx1NTFjOVx1NTFkYlx1NTFlMFx1ODY1NVx1NTFlOVx1NTFlZCJdLFsiOTk4MCIsIlx1NTFmMFx1NTFmNVx1NTFmZVx1''@;'; + put 'put ''NTIwNFx1NTIwYlx1NTIxNFx1NTIwZVx1NTIyN1x1NTIyYVx1NTIyZVx1NTIzM1x1NTIzOVx1NTI0Zlx1NTI0NFx1NTI0Ylx1NTI0Y1x1NTI1ZVx1NTI1NFx1NTI2YVx1NTI3NFx1NTI2OVx1NTI3M1x1NTI3Zlx1NTI3ZFx1NTI4ZFx1NTI5NFx1NTI5Mlx1NTI3MVx1NTI4OFx1NTI5MVx1OGZh''@;'; + put 'put ''OFx1OGZhN1x1NTJhY1x1NTJhZFx1NTJiY1x1NTJiNVx1NTJjMVx1NTJjZFx1NTJkN1x1NTJkZVx1NTJlM1x1NTJlNlx1OThlZFx1NTJlMFx1NTJmM1x1NTJmNVx1NTJmOFx1NTJmOVx1NTMwNlx1NTMwOFx1NzUzOFx1NTMwZFx1NTMxMFx1NTMwZlx1NTMxNVx1NTMxYVx1NTMyM1x1NTMyZlx1''@;'; + put 'put ''NTMzMVx1NTMzM1x1NTMzOFx1NTM0MFx1NTM0Nlx1NTM0NVx1NGUxN1x1NTM0OVx1NTM0ZFx1NTFkNlx1NTM1ZVx1NTM2OVx1NTM2ZVx1NTkxOFx1NTM3Ylx1NTM3N1x1NTM4Mlx1NTM5Nlx1NTNhMFx1NTNhNlx1NTNhNVx1NTNhZVx1NTNiMFx1NTNiNlx1NTNjM1x1N2MxMlx1OTZkOVx1NTNk''@;'; + put 'put ''Zlx1NjZmY1x1NzFlZVx1NTNlZVx1NTNlOFx1NTNlZFx1NTNmYVx1NTQwMVx1NTQzZFx1NTQ0MFx1NTQyY1x1NTQyZFx1NTQzY1x1NTQyZVx1NTQzNlx1NTQyOVx1NTQxZFx1NTQ0ZVx1NTQ4Zlx1NTQ3NVx1NTQ4ZVx1NTQ1Zlx1NTQ3MVx1NTQ3N1x1NTQ3MFx1NTQ5Mlx1NTQ3Ylx1NTQ4MFx1''@;'; + put 'put ''NTQ3Nlx1NTQ4NFx1NTQ5MFx1NTQ4Nlx1NTRjN1x1NTRhMlx1NTRiOFx1NTRhNVx1NTRhY1x1NTRjNFx1NTRjOFx1NTRhOCJdLFsiOWE0MCIsIlx1NTRhYlx1NTRjMlx1NTRhNFx1NTRiZVx1NTRiY1x1NTRkOFx1NTRlNVx1NTRlNlx1NTUwZlx1NTUxNFx1NTRmZFx1NTRlZVx1NTRlZFx1NTRm''@;'; + put 'put ''YVx1NTRlMlx1NTUzOVx1NTU0MFx1NTU2M1x1NTU0Y1x1NTUyZVx1NTU1Y1x1NTU0NVx1NTU1Nlx1NTU1N1x1NTUzOFx1NTUzM1x1NTU1ZFx1NTU5OVx1NTU4MFx1NTRhZlx1NTU4YVx1NTU5Zlx1NTU3Ylx1NTU3ZVx1NTU5OFx1NTU5ZVx1NTVhZVx1NTU3Y1x1NTU4M1x1NTVhOVx1NTU4N1x1''@;'; + put 'put ''NTVhOFx1NTVkYVx1NTVjNVx1NTVkZlx1NTVjNFx1NTVkY1x1NTVlNFx1NTVkNFx1NTYxNFx1NTVmN1x1NTYxNlx1NTVmZVx1NTVmZFx1NTYxYlx1NTVmOVx1NTY0ZVx1NTY1MFx1NzFkZlx1NTYzNFx1NTYzNlx1NTYzMlx1NTYzOCJdLFsiOWE4MCIsIlx1NTY2Ylx1NTY2NFx1NTYyZlx1NTY2''@;'; + put 'put ''Y1x1NTY2YVx1NTY4Nlx1NTY4MFx1NTY4YVx1NTZhMFx1NTY5NFx1NTY4Zlx1NTZhNVx1NTZhZVx1NTZiNlx1NTZiNFx1NTZjMlx1NTZiY1x1NTZjMVx1NTZjM1x1NTZjMFx1NTZjOFx1NTZjZVx1NTZkMVx1NTZkM1x1NTZkN1x1NTZlZVx1NTZmOVx1NTcwMFx1NTZmZlx1NTcwNFx1NTcwOVx1''@;'; + put 'put ''NTcwOFx1NTcwYlx1NTcwZFx1NTcxM1x1NTcxOFx1NTcxNlx1NTVjN1x1NTcxY1x1NTcyNlx1NTczN1x1NTczOFx1NTc0ZVx1NTczYlx1NTc0MFx1NTc0Zlx1NTc2OVx1NTdjMFx1NTc4OFx1NTc2MVx1NTc3Zlx1NTc4OVx1NTc5M1x1NTdhMFx1NTdiM1x1NTdhNFx1NTdhYVx1NTdiMFx1NTdj''@;'; + put 'put ''M1x1NTdjNlx1NTdkNFx1NTdkMlx1NTdkM1x1NTgwYVx1NTdkNlx1NTdlM1x1NTgwYlx1NTgxOVx1NTgxZFx1NTg3Mlx1NTgyMVx1NTg2Mlx1NTg0Ylx1NTg3MFx1NmJjMFx1NTg1Mlx1NTgzZFx1NTg3OVx1NTg4NVx1NThiOVx1NTg5Zlx1NThhYlx1NThiYVx1NThkZVx1NThiYlx1NThiOFx1''@;'; + put 'put ''NThhZVx1NThjNVx1NThkM1x1NThkMVx1NThkN1x1NThkOVx1NThkOFx1NThlNVx1NThkY1x1NThlNFx1NThkZlx1NThlZlx1NThmYVx1NThmOVx1NThmYlx1NThmY1x1NThmZFx1NTkwMlx1NTkwYVx1NTkxMFx1NTkxYlx1NjhhNlx1NTkyNVx1NTkyY1x1NTkyZFx1NTkzMlx1NTkzOFx1NTkz''@;'; + put 'put ''ZVx1N2FkMlx1NTk1NVx1NTk1MFx1NTk0ZVx1NTk1YVx1NTk1OFx1NTk2Mlx1NTk2MFx1NTk2N1x1NTk2Y1x1NTk2OSJdLFsiOWI0MCIsIlx1NTk3OFx1NTk4MVx1NTk5ZFx1NGY1ZVx1NGZhYlx1NTlhM1x1NTliMlx1NTljNlx1NTllOFx1NTlkY1x1NTk4ZFx1NTlkOVx1NTlkYVx1NWEyNVx1''@;'; + put 'put ''NWExZlx1NWExMVx1NWExY1x1NWEwOVx1NWExYVx1NWE0MFx1NWE2Y1x1NWE0OVx1NWEzNVx1NWEzNlx1NWE2Mlx1NWE2YVx1NWE5YVx1NWFiY1x1NWFiZVx1NWFjYlx1NWFjMlx1NWFiZFx1NWFlM1x1NWFkN1x1NWFlNlx1NWFlOVx1NWFkNlx1NWFmYVx1NWFmYlx1NWIwY1x1NWIwYlx1NWIx''@;'; + put 'put ''Nlx1NWIzMlx1NWFkMFx1NWIyYVx1NWIzNlx1NWIzZVx1NWI0M1x1NWI0NVx1NWI0MFx1NWI1MVx1NWI1NVx1NWI1YVx1NWI1Ylx1NWI2NVx1NWI2OVx1NWI3MFx1NWI3M1x1NWI3NVx1NWI3OFx1NjU4OFx1NWI3YVx1NWI4MCJdLFsiOWI4MCIsIlx1NWI4M1x1NWJhNlx1NWJiOFx1NWJjM1x1''@;'; + put 'put ''NWJjN1x1NWJjOVx1NWJkNFx1NWJkMFx1NWJlNFx1NWJlNlx1NWJlMlx1NWJkZVx1NWJlNVx1NWJlYlx1NWJmMFx1NWJmNlx1NWJmM1x1NWMwNVx1NWMwN1x1NWMwOFx1NWMwZFx1NWMxM1x1NWMyMFx1NWMyMlx1NWMyOFx1NWMzOFx1NWMzOVx1NWM0MVx1NWM0Nlx1NWM0ZVx1NWM1M1x1NWM1''@;'; + put 'put ''MFx1NWM0Zlx1NWI3MVx1NWM2Y1x1NWM2ZVx1NGU2Mlx1NWM3Nlx1NWM3OVx1NWM4Y1x1NWM5MVx1NWM5NFx1NTk5Ylx1NWNhYlx1NWNiYlx1NWNiNlx1NWNiY1x1NWNiN1x1NWNjNVx1NWNiZVx1NWNjN1x1NWNkOVx1NWNlOVx1NWNmZFx1NWNmYVx1NWNlZFx1NWQ4Y1x1NWNlYVx1NWQwYlx1''@;'; + put 'put ''NWQxNVx1NWQxN1x1NWQ1Y1x1NWQxZlx1NWQxYlx1NWQxMVx1NWQxNFx1NWQyMlx1NWQxYVx1NWQxOVx1NWQxOFx1NWQ0Y1x1NWQ1Mlx1NWQ0ZVx1NWQ0Ylx1NWQ2Y1x1NWQ3M1x1NWQ3Nlx1NWQ4N1x1NWQ4NFx1NWQ4Mlx1NWRhMlx1NWQ5ZFx1NWRhY1x1NWRhZVx1NWRiZFx1NWQ5MFx1NWRi''@;'; + put 'put ''N1x1NWRiY1x1NWRjOVx1NWRjZFx1NWRkM1x1NWRkMlx1NWRkNlx1NWRkYlx1NWRlYlx1NWRmMlx1NWRmNVx1NWUwYlx1NWUxYVx1NWUxOVx1NWUxMVx1NWUxYlx1NWUzNlx1NWUzN1x1NWU0NFx1NWU0M1x1NWU0MFx1NWU0ZVx1NWU1N1x1NWU1NFx1NWU1Zlx1NWU2Mlx1NWU2NFx1NWU0N1x1''@;'; + put 'put ''NWU3NVx1NWU3Nlx1NWU3YVx1OWViY1x1NWU3Zlx1NWVhMFx1NWVjMVx1NWVjMlx1NWVjOFx1NWVkMFx1NWVjZiJdLFsiOWM0MCIsIlx1NWVkNlx1NWVlM1x1NWVkZFx1NWVkYVx1NWVkYlx1NWVlMlx1NWVlMVx1NWVlOFx1NWVlOVx1NWVlY1x1NWVmMVx1NWVmM1x1NWVmMFx1NWVmNFx1NWVm''@;'; + put 'put ''OFx1NWVmZVx1NWYwM1x1NWYwOVx1NWY1ZFx1NWY1Y1x1NWYwYlx1NWYxMVx1NWYxNlx1NWYyOVx1NWYyZFx1NWYzOFx1NWY0MVx1NWY0OFx1NWY0Y1x1NWY0ZVx1NWYyZlx1NWY1MVx1NWY1Nlx1NWY1N1x1NWY1OVx1NWY2MVx1NWY2ZFx1NWY3M1x1NWY3N1x1NWY4M1x1NWY4Mlx1NWY3Zlx1''@;'; + put 'put ''NWY4YVx1NWY4OFx1NWY5MVx1NWY4N1x1NWY5ZVx1NWY5OVx1NWY5OFx1NWZhMFx1NWZhOFx1NWZhZFx1NWZiY1x1NWZkNlx1NWZmYlx1NWZlNFx1NWZmOFx1NWZmMVx1NWZkZFx1NjBiM1x1NWZmZlx1NjAyMVx1NjA2MCJdLFsiOWM4MCIsIlx1NjAxOVx1NjAxMFx1NjAyOVx1NjAwZVx1NjAz''@;'; + put 'put ''MVx1NjAxYlx1NjAxNVx1NjAyYlx1NjAyNlx1NjAwZlx1NjAzYVx1NjA1YVx1NjA0MVx1NjA2YVx1NjA3N1x1NjA1Zlx1NjA0YVx1NjA0Nlx1NjA0ZFx1NjA2M1x1NjA0M1x1NjA2NFx1NjA0Mlx1NjA2Y1x1NjA2Ylx1NjA1OVx1NjA4MVx1NjA4ZFx1NjBlN1x1NjA4M1x1NjA5YVx1NjA4NFx1''@;'; + put 'put ''NjA5Ylx1NjA5Nlx1NjA5N1x1NjA5Mlx1NjBhN1x1NjA4Ylx1NjBlMVx1NjBiOFx1NjBlMFx1NjBkM1x1NjBiNFx1NWZmMFx1NjBiZFx1NjBjNlx1NjBiNVx1NjBkOFx1NjE0ZFx1NjExNVx1NjEwNlx1NjBmNlx1NjBmN1x1NjEwMFx1NjBmNFx1NjBmYVx1NjEwM1x1NjEyMVx1NjBmYlx1NjBm''@;'; + put 'put ''MVx1NjEwZFx1NjEwZVx1NjE0N1x1NjEzZVx1NjEyOFx1NjEyN1x1NjE0YVx1NjEzZlx1NjEzY1x1NjEyY1x1NjEzNFx1NjEzZFx1NjE0Mlx1NjE0NFx1NjE3M1x1NjE3N1x1NjE1OFx1NjE1OVx1NjE1YVx1NjE2Ylx1NjE3NFx1NjE2Zlx1NjE2NVx1NjE3MVx1NjE1Zlx1NjE1ZFx1NjE1M1x1''@;'; + put 'put ''NjE3NVx1NjE5OVx1NjE5Nlx1NjE4N1x1NjFhY1x1NjE5NFx1NjE5YVx1NjE4YVx1NjE5MVx1NjFhYlx1NjFhZVx1NjFjY1x1NjFjYVx1NjFjOVx1NjFmN1x1NjFjOFx1NjFjM1x1NjFjNlx1NjFiYVx1NjFjYlx1N2Y3OVx1NjFjZFx1NjFlNlx1NjFlM1x1NjFmNlx1NjFmYVx1NjFmNFx1NjFm''@;'; + put 'put ''Zlx1NjFmZFx1NjFmY1x1NjFmZVx1NjIwMFx1NjIwOFx1NjIwOVx1NjIwZFx1NjIwY1x1NjIxNFx1NjIxYiJdLFsiOWQ0MCIsIlx1NjIxZVx1NjIyMVx1NjIyYVx1NjIyZVx1NjIzMFx1NjIzMlx1NjIzM1x1NjI0MVx1NjI0ZVx1NjI1ZVx1NjI2M1x1NjI1Ylx1NjI2MFx1NjI2OFx1NjI3Y1x1''@;'; + put 'put ''NjI4Mlx1NjI4OVx1NjI3ZVx1NjI5Mlx1NjI5M1x1NjI5Nlx1NjJkNFx1NjI4M1x1NjI5NFx1NjJkN1x1NjJkMVx1NjJiYlx1NjJjZlx1NjJmZlx1NjJjNlx1NjRkNFx1NjJjOFx1NjJkY1x1NjJjY1x1NjJjYVx1NjJjMlx1NjJjN1x1NjI5Ylx1NjJjOVx1NjMwY1x1NjJlZVx1NjJmMVx1NjMy''@;'; + put 'put ''N1x1NjMwMlx1NjMwOFx1NjJlZlx1NjJmNVx1NjM1MFx1NjMzZVx1NjM0ZFx1NjQxY1x1NjM0Zlx1NjM5Nlx1NjM4ZVx1NjM4MFx1NjNhYlx1NjM3Nlx1NjNhM1x1NjM4Zlx1NjM4OVx1NjM5Zlx1NjNiNVx1NjM2YiJdLFsiOWQ4MCIsIlx1NjM2OVx1NjNiZVx1NjNlOVx1NjNjMFx1NjNjNlx1''@;'; + put 'put ''NjNlM1x1NjNjOVx1NjNkMlx1NjNmNlx1NjNjNFx1NjQxNlx1NjQzNFx1NjQwNlx1NjQxM1x1NjQyNlx1NjQzNlx1NjUxZFx1NjQxN1x1NjQyOFx1NjQwZlx1NjQ2N1x1NjQ2Zlx1NjQ3Nlx1NjQ0ZVx1NjUyYVx1NjQ5NVx1NjQ5M1x1NjRhNVx1NjRhOVx1NjQ4OFx1NjRiY1x1NjRkYVx1NjRk''@;'; + put 'put ''Mlx1NjRjNVx1NjRjN1x1NjRiYlx1NjRkOFx1NjRjMlx1NjRmMVx1NjRlN1x1ODIwOVx1NjRlMFx1NjRlMVx1NjJhY1x1NjRlM1x1NjRlZlx1NjUyY1x1NjRmNlx1NjRmNFx1NjRmMlx1NjRmYVx1NjUwMFx1NjRmZFx1NjUxOFx1NjUxY1x1NjUwNVx1NjUyNFx1NjUyM1x1NjUyYlx1NjUzNFx1''@;'; + put 'put ''NjUzNVx1NjUzN1x1NjUzNlx1NjUzOFx1NzU0Ylx1NjU0OFx1NjU1Nlx1NjU1NVx1NjU0ZFx1NjU1OFx1NjU1ZVx1NjU1ZFx1NjU3Mlx1NjU3OFx1NjU4Mlx1NjU4M1x1OGI4YVx1NjU5Ylx1NjU5Zlx1NjVhYlx1NjViN1x1NjVjM1x1NjVjNlx1NjVjMVx1NjVjNFx1NjVjY1x1NjVkMlx1NjVk''@;'; + put 'put ''Ylx1NjVkOVx1NjVlMFx1NjVlMVx1NjVmMVx1Njc3Mlx1NjYwYVx1NjYwM1x1NjVmYlx1Njc3M1x1NjYzNVx1NjYzNlx1NjYzNFx1NjYxY1x1NjY0Zlx1NjY0NFx1NjY0OVx1NjY0MVx1NjY1ZVx1NjY1ZFx1NjY2NFx1NjY2N1x1NjY2OFx1NjY1Zlx1NjY2Mlx1NjY3MFx1NjY4M1x1NjY4OFx1''@;'; + put 'put ''NjY4ZVx1NjY4OVx1NjY4NFx1NjY5OFx1NjY5ZFx1NjZjMVx1NjZiOVx1NjZjOVx1NjZiZVx1NjZiYyJdLFsiOWU0MCIsIlx1NjZjNFx1NjZiOFx1NjZkNlx1NjZkYVx1NjZlMFx1NjYzZlx1NjZlNlx1NjZlOVx1NjZmMFx1NjZmNVx1NjZmN1x1NjcwZlx1NjcxNlx1NjcxZVx1NjcyNlx1Njcy''@;'; + put 'put ''N1x1OTczOFx1NjcyZVx1NjczZlx1NjczNlx1Njc0MVx1NjczOFx1NjczN1x1Njc0Nlx1Njc1ZVx1Njc2MFx1Njc1OVx1Njc2M1x1Njc2NFx1Njc4OVx1Njc3MFx1NjdhOVx1Njc3Y1x1Njc2YVx1Njc4Y1x1Njc4Ylx1NjdhNlx1NjdhMVx1Njc4NVx1NjdiN1x1NjdlZlx1NjdiNFx1NjdlY1x1''@;'; + put 'put ''NjdiM1x1NjdlOVx1NjdiOFx1NjdlNFx1NjdkZVx1NjdkZFx1NjdlMlx1NjdlZVx1NjdiOVx1NjdjZVx1NjdjNlx1NjdlN1x1NmE5Y1x1NjgxZVx1Njg0Nlx1NjgyOVx1Njg0MFx1Njg0ZFx1NjgzMlx1Njg0ZSJdLFsiOWU4MCIsIlx1NjhiM1x1NjgyYlx1Njg1OVx1Njg2M1x1Njg3N1x1Njg3''@;'; + put 'put ''Zlx1Njg5Zlx1Njg4Zlx1NjhhZFx1Njg5NFx1Njg5ZFx1Njg5Ylx1Njg4M1x1NmFhZVx1NjhiOVx1Njg3NFx1NjhiNVx1NjhhMFx1NjhiYVx1NjkwZlx1Njg4ZFx1Njg3ZVx1NjkwMVx1NjhjYVx1NjkwOFx1NjhkOFx1NjkyMlx1NjkyNlx1NjhlMVx1NjkwY1x1NjhjZFx1NjhkNFx1NjhlN1x1''@;'; + put 'put ''NjhkNVx1NjkzNlx1NjkxMlx1NjkwNFx1NjhkN1x1NjhlM1x1NjkyNVx1NjhmOVx1NjhlMFx1NjhlZlx1NjkyOFx1NjkyYVx1NjkxYVx1NjkyM1x1NjkyMVx1NjhjNlx1Njk3OVx1Njk3N1x1Njk1Y1x1Njk3OFx1Njk2Ylx1Njk1NFx1Njk3ZVx1Njk2ZVx1NjkzOVx1Njk3NFx1NjkzZFx1Njk1''@;'; + put 'put ''OVx1NjkzMFx1Njk2MVx1Njk1ZVx1Njk1ZFx1Njk4MVx1Njk2YVx1NjliMlx1NjlhZVx1NjlkMFx1NjliZlx1NjljMVx1NjlkM1x1NjliZVx1NjljZVx1NWJlOFx1NjljYVx1NjlkZFx1NjliYlx1NjljM1x1NjlhN1x1NmEyZVx1Njk5MVx1NjlhMFx1Njk5Y1x1Njk5NVx1NjliNFx1NjlkZVx1''@;'; + put 'put ''NjllOFx1NmEwMlx1NmExYlx1NjlmZlx1NmIwYVx1NjlmOVx1NjlmMlx1NjllN1x1NmEwNVx1NjliMVx1NmExZVx1NjllZFx1NmExNFx1NjllYlx1NmEwYVx1NmExMlx1NmFjMVx1NmEyM1x1NmExM1x1NmE0NFx1NmEwY1x1NmE3Mlx1NmEzNlx1NmE3OFx1NmE0N1x1NmE2Mlx1NmE1OVx1NmE2''@;'; + put 'put ''Nlx1NmE0OFx1NmEzOFx1NmEyMlx1NmE5MFx1NmE4ZFx1NmFhMFx1NmE4NFx1NmFhMlx1NmFhMyJdLFsiOWY0MCIsIlx1NmE5N1x1ODYxN1x1NmFiYlx1NmFjM1x1NmFjMlx1NmFiOFx1NmFiM1x1NmFhY1x1NmFkZVx1NmFkMVx1NmFkZlx1NmFhYVx1NmFkYVx1NmFlYVx1NmFmYlx1NmIwNVx1''@;'; + put 'put ''ODYxNlx1NmFmYVx1NmIxMlx1NmIxNlx1OWIzMVx1NmIxZlx1NmIzOFx1NmIzN1x1NzZkY1x1NmIzOVx1OThlZVx1NmI0N1x1NmI0M1x1NmI0OVx1NmI1MFx1NmI1OVx1NmI1NFx1NmI1Ylx1NmI1Zlx1NmI2MVx1NmI3OFx1NmI3OVx1NmI3Zlx1NmI4MFx1NmI4NFx1NmI4M1x1NmI4ZFx1NmI5''@;'; + put 'put ''OFx1NmI5NVx1NmI5ZVx1NmJhNFx1NmJhYVx1NmJhYlx1NmJhZlx1NmJiMlx1NmJiMVx1NmJiM1x1NmJiN1x1NmJiY1x1NmJjNlx1NmJjYlx1NmJkM1x1NmJkZlx1NmJlY1x1NmJlYlx1NmJmM1x1NmJlZiJdLFsiOWY4MCIsIlx1OWViZVx1NmMwOFx1NmMxM1x1NmMxNFx1NmMxYlx1NmMyNFx1''@;'; + put 'put ''NmMyM1x1NmM1ZVx1NmM1NVx1NmM2Mlx1NmM2YVx1NmM4Mlx1NmM4ZFx1NmM5YVx1NmM4MVx1NmM5Ylx1NmM3ZVx1NmM2OFx1NmM3M1x1NmM5Mlx1NmM5MFx1NmNjNFx1NmNmMVx1NmNkM1x1NmNiZFx1NmNkN1x1NmNjNVx1NmNkZFx1NmNhZVx1NmNiMVx1NmNiZVx1NmNiYVx1NmNkYlx1NmNl''@;'; + put 'put ''Zlx1NmNkOVx1NmNlYVx1NmQxZlx1ODg0ZFx1NmQzNlx1NmQyYlx1NmQzZFx1NmQzOFx1NmQxOVx1NmQzNVx1NmQzM1x1NmQxMlx1NmQwY1x1NmQ2M1x1NmQ5M1x1NmQ2NFx1NmQ1YVx1NmQ3OVx1NmQ1OVx1NmQ4ZVx1NmQ5NVx1NmZlNFx1NmQ4NVx1NmRmOVx1NmUxNVx1NmUwYVx1NmRiNVx1''@;'; + put 'put ''NmRjN1x1NmRlNlx1NmRiOFx1NmRjNlx1NmRlY1x1NmRkZVx1NmRjY1x1NmRlOFx1NmRkMlx1NmRjNVx1NmRmYVx1NmRkOVx1NmRlNFx1NmRkNVx1NmRlYVx1NmRlZVx1NmUyZFx1NmU2ZVx1NmUyZVx1NmUxOVx1NmU3Mlx1NmU1Zlx1NmUzZVx1NmUyM1x1NmU2Ylx1NmUyYlx1NmU3Nlx1NmU0''@;'; + put 'put ''ZFx1NmUxZlx1NmU0M1x1NmUzYVx1NmU0ZVx1NmUyNFx1NmVmZlx1NmUxZFx1NmUzOFx1NmU4Mlx1NmVhYVx1NmU5OFx1NmVjOVx1NmViN1x1NmVkM1x1NmViZFx1NmVhZlx1NmVjNFx1NmViMlx1NmVkNFx1NmVkNVx1NmU4Zlx1NmVhNVx1NmVjMlx1NmU5Zlx1NmY0MVx1NmYxMVx1NzA0Y1x1''@;'; + put 'put ''NmVlY1x1NmVmOFx1NmVmZVx1NmYzZlx1NmVmMlx1NmYzMVx1NmVlZlx1NmYzMlx1NmVjYyJdLFsiZTA0MCIsIlx1NmYzZVx1NmYxM1x1NmVmN1x1NmY4Nlx1NmY3YVx1NmY3OFx1NmY4MVx1NmY4MFx1NmY2Zlx1NmY1Ylx1NmZmM1x1NmY2ZFx1NmY4Mlx1NmY3Y1x1NmY1OFx1NmY4ZVx1NmY5''@;'; + put 'put ''MVx1NmZjMlx1NmY2Nlx1NmZiM1x1NmZhM1x1NmZhMVx1NmZhNFx1NmZiOVx1NmZjNlx1NmZhYVx1NmZkZlx1NmZkNVx1NmZlY1x1NmZkNFx1NmZkOFx1NmZmMVx1NmZlZVx1NmZkYlx1NzAwOVx1NzAwYlx1NmZmYVx1NzAxMVx1NzAwMVx1NzAwZlx1NmZmZVx1NzAxYlx1NzAxYVx1NmY3NFx1''@;'; + put 'put ''NzAxZFx1NzAxOFx1NzAxZlx1NzAzMFx1NzAzZVx1NzAzMlx1NzA1MVx1NzA2M1x1NzA5OVx1NzA5Mlx1NzBhZlx1NzBmMVx1NzBhY1x1NzBiOFx1NzBiM1x1NzBhZVx1NzBkZlx1NzBjYlx1NzBkZCJdLFsiZTA4MCIsIlx1NzBkOVx1NzEwOVx1NzBmZFx1NzExY1x1NzExOVx1NzE2NVx1NzE1''@;'; + put 'put ''NVx1NzE4OFx1NzE2Nlx1NzE2Mlx1NzE0Y1x1NzE1Nlx1NzE2Y1x1NzE4Zlx1NzFmYlx1NzE4NFx1NzE5NVx1NzFhOFx1NzFhY1x1NzFkN1x1NzFiOVx1NzFiZVx1NzFkMlx1NzFjOVx1NzFkNFx1NzFjZVx1NzFlMFx1NzFlY1x1NzFlN1x1NzFmNVx1NzFmY1x1NzFmOVx1NzFmZlx1NzIwZFx1''@;'; + put 'put ''NzIxMFx1NzIxYlx1NzIyOFx1NzIyZFx1NzIyY1x1NzIzMFx1NzIzMlx1NzIzYlx1NzIzY1x1NzIzZlx1NzI0MFx1NzI0Nlx1NzI0Ylx1NzI1OFx1NzI3NFx1NzI3ZVx1NzI4Mlx1NzI4MVx1NzI4N1x1NzI5Mlx1NzI5Nlx1NzJhMlx1NzJhN1x1NzJiOVx1NzJiMlx1NzJjM1x1NzJjNlx1NzJj''@;'; + put 'put ''NFx1NzJjZVx1NzJkMlx1NzJlMlx1NzJlMFx1NzJlMVx1NzJmOVx1NzJmN1x1NTAwZlx1NzMxN1x1NzMwYVx1NzMxY1x1NzMxNlx1NzMxZFx1NzMzNFx1NzMyZlx1NzMyOVx1NzMyNVx1NzMzZVx1NzM0ZVx1NzM0Zlx1OWVkOFx1NzM1N1x1NzM2YVx1NzM2OFx1NzM3MFx1NzM3OFx1NzM3NVx1''@;'; + put 'put ''NzM3Ylx1NzM3YVx1NzNjOFx1NzNiM1x1NzNjZVx1NzNiYlx1NzNjMFx1NzNlNVx1NzNlZVx1NzNkZVx1NzRhMlx1NzQwNVx1NzQ2Zlx1NzQyNVx1NzNmOFx1NzQzMlx1NzQzYVx1NzQ1NVx1NzQzZlx1NzQ1Zlx1NzQ1OVx1NzQ0MVx1NzQ1Y1x1NzQ2OVx1NzQ3MFx1NzQ2M1x1NzQ2YVx1NzQ3''@;'; + put 'put ''Nlx1NzQ3ZVx1NzQ4Ylx1NzQ5ZVx1NzRhN1x1NzRjYVx1NzRjZlx1NzRkNFx1NzNmMSJdLFsiZTE0MCIsIlx1NzRlMFx1NzRlM1x1NzRlN1x1NzRlOVx1NzRlZVx1NzRmMlx1NzRmMFx1NzRmMVx1NzRmOFx1NzRmN1x1NzUwNFx1NzUwM1x1NzUwNVx1NzUwY1x1NzUwZVx1NzUwZFx1NzUxNVx1''@;'; + put 'put ''NzUxM1x1NzUxZVx1NzUyNlx1NzUyY1x1NzUzY1x1NzU0NFx1NzU0ZFx1NzU0YVx1NzU0OVx1NzU1Ylx1NzU0Nlx1NzU1YVx1NzU2OVx1NzU2NFx1NzU2N1x1NzU2Ylx1NzU2ZFx1NzU3OFx1NzU3Nlx1NzU4Nlx1NzU4N1x1NzU3NFx1NzU4YVx1NzU4OVx1NzU4Mlx1NzU5NFx1NzU5YVx1NzU5''@;'; + put 'put ''ZFx1NzVhNVx1NzVhM1x1NzVjMlx1NzViM1x1NzVjM1x1NzViNVx1NzViZFx1NzViOFx1NzViY1x1NzViMVx1NzVjZFx1NzVjYVx1NzVkMlx1NzVkOVx1NzVlM1x1NzVkZVx1NzVmZVx1NzVmZiJdLFsiZTE4MCIsIlx1NzVmY1x1NzYwMVx1NzVmMFx1NzVmYVx1NzVmMlx1NzVmM1x1NzYwYlx1''@;'; + put 'put ''NzYwZFx1NzYwOVx1NzYxZlx1NzYyN1x1NzYyMFx1NzYyMVx1NzYyMlx1NzYyNFx1NzYzNFx1NzYzMFx1NzYzYlx1NzY0N1x1NzY0OFx1NzY0Nlx1NzY1Y1x1NzY1OFx1NzY2MVx1NzY2Mlx1NzY2OFx1NzY2OVx1NzY2YVx1NzY2N1x1NzY2Y1x1NzY3MFx1NzY3Mlx1NzY3Nlx1NzY3OFx1NzY3''@;'; + put 'put ''Y1x1NzY4MFx1NzY4M1x1NzY4OFx1NzY4Ylx1NzY4ZVx1NzY5Nlx1NzY5M1x1NzY5OVx1NzY5YVx1NzZiMFx1NzZiNFx1NzZiOFx1NzZiOVx1NzZiYVx1NzZjMlx1NzZjZFx1NzZkNlx1NzZkMlx1NzZkZVx1NzZlMVx1NzZlNVx1NzZlN1x1NzZlYVx1ODYyZlx1NzZmYlx1NzcwOFx1NzcwN1x1''@;'; + put 'put ''NzcwNFx1NzcyOVx1NzcyNFx1NzcxZVx1NzcyNVx1NzcyNlx1NzcxYlx1NzczN1x1NzczOFx1Nzc0N1x1Nzc1YVx1Nzc2OFx1Nzc2Ylx1Nzc1Ylx1Nzc2NVx1Nzc3Zlx1Nzc3ZVx1Nzc3OVx1Nzc4ZVx1Nzc4Ylx1Nzc5MVx1NzdhMFx1Nzc5ZVx1NzdiMFx1NzdiNlx1NzdiOVx1NzdiZlx1Nzdi''@;'; + put 'put ''Y1x1NzdiZFx1NzdiYlx1NzdjN1x1NzdjZFx1NzdkN1x1NzdkYVx1NzdkY1x1NzdlM1x1NzdlZVx1NzdmY1x1NzgwY1x1NzgxMlx1NzkyNlx1NzgyMFx1NzkyYVx1Nzg0NVx1Nzg4ZVx1Nzg3NFx1Nzg4Nlx1Nzg3Y1x1Nzg5YVx1Nzg4Y1x1NzhhM1x1NzhiNVx1NzhhYVx1NzhhZlx1NzhkMVx1''@;'; + put 'put ''NzhjNlx1NzhjYlx1NzhkNFx1NzhiZVx1NzhiY1x1NzhjNVx1NzhjYVx1NzhlYyJdLFsiZTI0MCIsIlx1NzhlN1x1NzhkYVx1NzhmZFx1NzhmNFx1NzkwN1x1NzkxMlx1NzkxMVx1NzkxOVx1NzkyY1x1NzkyYlx1Nzk0MFx1Nzk2MFx1Nzk1N1x1Nzk1Zlx1Nzk1YVx1Nzk1NVx1Nzk1M1x1Nzk3''@;'; + put 'put ''YVx1Nzk3Zlx1Nzk4YVx1Nzk5ZFx1NzlhN1x1OWY0Ylx1NzlhYVx1NzlhZVx1NzliM1x1NzliOVx1NzliYVx1NzljOVx1NzlkNVx1NzllN1x1NzllY1x1NzllMVx1NzllM1x1N2EwOFx1N2EwZFx1N2ExOFx1N2ExOVx1N2EyMFx1N2ExZlx1Nzk4MFx1N2EzMVx1N2EzYlx1N2EzZVx1N2EzN1x1''@;'; + put 'put ''N2E0M1x1N2E1N1x1N2E0OVx1N2E2MVx1N2E2Mlx1N2E2OVx1OWY5ZFx1N2E3MFx1N2E3OVx1N2E3ZFx1N2E4OFx1N2E5N1x1N2E5NVx1N2E5OFx1N2E5Nlx1N2FhOVx1N2FjOFx1N2FiMCJdLFsiZTI4MCIsIlx1N2FiNlx1N2FjNVx1N2FjNFx1N2FiZlx1OTA4M1x1N2FjN1x1N2FjYVx1N2Fj''@;'; + put 'put ''ZFx1N2FjZlx1N2FkNVx1N2FkM1x1N2FkOVx1N2FkYVx1N2FkZFx1N2FlMVx1N2FlMlx1N2FlNlx1N2FlZFx1N2FmMFx1N2IwMlx1N2IwZlx1N2IwYVx1N2IwNlx1N2IzM1x1N2IxOFx1N2IxOVx1N2IxZVx1N2IzNVx1N2IyOFx1N2IzNlx1N2I1MFx1N2I3YVx1N2IwNFx1N2I0ZFx1N2IwYlx1''@;'; + put 'put ''N2I0Y1x1N2I0NVx1N2I3NVx1N2I2NVx1N2I3NFx1N2I2N1x1N2I3MFx1N2I3MVx1N2I2Y1x1N2I2ZVx1N2I5ZFx1N2I5OFx1N2I5Zlx1N2I4ZFx1N2I5Y1x1N2I5YVx1N2I4Ylx1N2I5Mlx1N2I4Zlx1N2I1ZFx1N2I5OVx1N2JjYlx1N2JjMVx1N2JjY1x1N2JjZlx1N2JiNFx1N2JjNlx1N2Jk''@;'; + put 'put ''ZFx1N2JlOVx1N2MxMVx1N2MxNFx1N2JlNlx1N2JlNVx1N2M2MFx1N2MwMFx1N2MwN1x1N2MxM1x1N2JmM1x1N2JmN1x1N2MxN1x1N2MwZFx1N2JmNlx1N2MyM1x1N2MyN1x1N2MyYVx1N2MxZlx1N2MzN1x1N2MyYlx1N2MzZFx1N2M0Y1x1N2M0M1x1N2M1NFx1N2M0Zlx1N2M0MFx1N2M1MFx1''@;'; + put 'put ''N2M1OFx1N2M1Zlx1N2M2NFx1N2M1Nlx1N2M2NVx1N2M2Y1x1N2M3NVx1N2M4M1x1N2M5MFx1N2NhNFx1N2NhZFx1N2NhMlx1N2NhYlx1N2NhMVx1N2NhOFx1N2NiM1x1N2NiMlx1N2NiMVx1N2NhZVx1N2NiOVx1N2NiZFx1N2NjMFx1N2NjNVx1N2NjMlx1N2NkOFx1N2NkMlx1N2NkY1x1N2Nl''@;'; + put 'put ''Mlx1OWIzYlx1N2NlZlx1N2NmMlx1N2NmNFx1N2NmNlx1N2NmYVx1N2QwNiJdLFsiZTM0MCIsIlx1N2QwMlx1N2QxY1x1N2QxNVx1N2QwYVx1N2Q0NVx1N2Q0Ylx1N2QyZVx1N2QzMlx1N2QzZlx1N2QzNVx1N2Q0Nlx1N2Q3M1x1N2Q1Nlx1N2Q0ZVx1N2Q3Mlx1N2Q2OFx1N2Q2ZVx1N2Q0Zlx1''@;'; + put 'put ''N2Q2M1x1N2Q5M1x1N2Q4OVx1N2Q1Ylx1N2Q4Zlx1N2Q3ZFx1N2Q5Ylx1N2RiYVx1N2RhZVx1N2RhM1x1N2RiNVx1N2RjN1x1N2RiZFx1N2RhYlx1N2UzZFx1N2RhMlx1N2RhZlx1N2RkY1x1N2RiOFx1N2Q5Zlx1N2RiMFx1N2RkOFx1N2RkZFx1N2RlNFx1N2RkZVx1N2RmYlx1N2RmMlx1N2Rl''@;'; + put 'put ''MVx1N2UwNVx1N2UwYVx1N2UyM1x1N2UyMVx1N2UxMlx1N2UzMVx1N2UxZlx1N2UwOVx1N2UwYlx1N2UyMlx1N2U0Nlx1N2U2Nlx1N2UzYlx1N2UzNVx1N2UzOVx1N2U0M1x1N2UzNyJdLFsiZTM4MCIsIlx1N2UzMlx1N2UzYVx1N2U2N1x1N2U1ZFx1N2U1Nlx1N2U1ZVx1N2U1OVx1N2U1YVx1''@;'; + put 'put ''N2U3OVx1N2U2YVx1N2U2OVx1N2U3Y1x1N2U3Ylx1N2U4M1x1N2RkNVx1N2U3ZFx1OGZhZVx1N2U3Zlx1N2U4OFx1N2U4OVx1N2U4Y1x1N2U5Mlx1N2U5MFx1N2U5M1x1N2U5NFx1N2U5Nlx1N2U4ZVx1N2U5Ylx1N2U5Y1x1N2YzOFx1N2YzYVx1N2Y0NVx1N2Y0Y1x1N2Y0ZFx1N2Y0ZVx1N2Y1''@;'; + put 'put ''MFx1N2Y1MVx1N2Y1NVx1N2Y1NFx1N2Y1OFx1N2Y1Zlx1N2Y2MFx1N2Y2OFx1N2Y2OVx1N2Y2N1x1N2Y3OFx1N2Y4Mlx1N2Y4Nlx1N2Y4M1x1N2Y4OFx1N2Y4N1x1N2Y4Y1x1N2Y5NFx1N2Y5ZVx1N2Y5ZFx1N2Y5YVx1N2ZhM1x1N2ZhZlx1N2ZiMlx1N2ZiOVx1N2ZhZVx1N2ZiNlx1N2ZiOFx1''@;'; + put 'put ''OGI3MVx1N2ZjNVx1N2ZjNlx1N2ZjYVx1N2ZkNVx1N2ZkNFx1N2ZlMVx1N2ZlNlx1N2ZlOVx1N2ZmM1x1N2ZmOVx1OThkY1x1ODAwNlx1ODAwNFx1ODAwYlx1ODAxMlx1ODAxOFx1ODAxOVx1ODAxY1x1ODAyMVx1ODAyOFx1ODAzZlx1ODAzYlx1ODA0YVx1ODA0Nlx1ODA1Mlx1ODA1OFx1ODA1''@;'; + put 'put ''YVx1ODA1Zlx1ODA2Mlx1ODA2OFx1ODA3M1x1ODA3Mlx1ODA3MFx1ODA3Nlx1ODA3OVx1ODA3ZFx1ODA3Zlx1ODA4NFx1ODA4Nlx1ODA4NVx1ODA5Ylx1ODA5M1x1ODA5YVx1ODBhZFx1NTE5MFx1ODBhY1x1ODBkYlx1ODBlNVx1ODBkOVx1ODBkZFx1ODBjNFx1ODBkYVx1ODBkNlx1ODEwOVx1''@;'; + put 'put ''ODBlZlx1ODBmMVx1ODExYlx1ODEyOVx1ODEyM1x1ODEyZlx1ODE0YiJdLFsiZTQ0MCIsIlx1OTY4Ylx1ODE0Nlx1ODEzZVx1ODE1M1x1ODE1MVx1ODBmY1x1ODE3MVx1ODE2ZVx1ODE2NVx1ODE2Nlx1ODE3NFx1ODE4M1x1ODE4OFx1ODE4YVx1ODE4MFx1ODE4Mlx1ODFhMFx1ODE5NVx1ODFh''@;'; + put 'put ''NFx1ODFhM1x1ODE1Zlx1ODE5M1x1ODFhOVx1ODFiMFx1ODFiNVx1ODFiZVx1ODFiOFx1ODFiZFx1ODFjMFx1ODFjMlx1ODFiYVx1ODFjOVx1ODFjZFx1ODFkMVx1ODFkOVx1ODFkOFx1ODFjOFx1ODFkYVx1ODFkZlx1ODFlMFx1ODFlN1x1ODFmYVx1ODFmYlx1ODFmZVx1ODIwMVx1ODIwMlx1''@;'; + put 'put ''ODIwNVx1ODIwN1x1ODIwYVx1ODIwZFx1ODIxMFx1ODIxNlx1ODIyOVx1ODIyYlx1ODIzOFx1ODIzM1x1ODI0MFx1ODI1OVx1ODI1OFx1ODI1ZFx1ODI1YVx1ODI1Zlx1ODI2NCJdLFsiZTQ4MCIsIlx1ODI2Mlx1ODI2OFx1ODI2YVx1ODI2Ylx1ODIyZVx1ODI3MVx1ODI3N1x1ODI3OFx1ODI3''@;'; + put 'put ''ZVx1ODI4ZFx1ODI5Mlx1ODJhYlx1ODI5Zlx1ODJiYlx1ODJhY1x1ODJlMVx1ODJlM1x1ODJkZlx1ODJkMlx1ODJmNFx1ODJmM1x1ODJmYVx1ODM5M1x1ODMwM1x1ODJmYlx1ODJmOVx1ODJkZVx1ODMwNlx1ODJkY1x1ODMwOVx1ODJkOVx1ODMzNVx1ODMzNFx1ODMxNlx1ODMzMlx1ODMzMVx1''@;'; + put 'put ''ODM0MFx1ODMzOVx1ODM1MFx1ODM0NVx1ODMyZlx1ODMyYlx1ODMxN1x1ODMxOFx1ODM4NVx1ODM5YVx1ODNhYVx1ODM5Zlx1ODNhMlx1ODM5Nlx1ODMyM1x1ODM4ZVx1ODM4N1x1ODM4YVx1ODM3Y1x1ODNiNVx1ODM3M1x1ODM3NVx1ODNhMFx1ODM4OVx1ODNhOFx1ODNmNFx1ODQxM1x1ODNl''@;'; + put 'put ''Ylx1ODNjZVx1ODNmZFx1ODQwM1x1ODNkOFx1ODQwYlx1ODNjMVx1ODNmN1x1ODQwN1x1ODNlMFx1ODNmMlx1ODQwZFx1ODQyMlx1ODQyMFx1ODNiZFx1ODQzOFx1ODUwNlx1ODNmYlx1ODQ2ZFx1ODQyYVx1ODQzY1x1ODU1YVx1ODQ4NFx1ODQ3N1x1ODQ2Ylx1ODRhZFx1ODQ2ZVx1ODQ4Mlx1''@;'; + put 'put ''ODQ2OVx1ODQ0Nlx1ODQyY1x1ODQ2Zlx1ODQ3OVx1ODQzNVx1ODRjYVx1ODQ2Mlx1ODRiOVx1ODRiZlx1ODQ5Zlx1ODRkOVx1ODRjZFx1ODRiYlx1ODRkYVx1ODRkMFx1ODRjMVx1ODRjNlx1ODRkNlx1ODRhMVx1ODUyMVx1ODRmZlx1ODRmNFx1ODUxN1x1ODUxOFx1ODUyY1x1ODUxZlx1ODUx''@;'; + put 'put ''NVx1ODUxNFx1ODRmY1x1ODU0MFx1ODU2M1x1ODU1OFx1ODU0OCJdLFsiZTU0MCIsIlx1ODU0MVx1ODYwMlx1ODU0Ylx1ODU1NVx1ODU4MFx1ODVhNFx1ODU4OFx1ODU5MVx1ODU4YVx1ODVhOFx1ODU2ZFx1ODU5NFx1ODU5Ylx1ODVlYVx1ODU4N1x1ODU5Y1x1ODU3N1x1ODU3ZVx1ODU5MFx1''@;'; + put 'put ''ODVjOVx1ODViYVx1ODVjZlx1ODViOVx1ODVkMFx1ODVkNVx1ODVkZFx1ODVlNVx1ODVkY1x1ODVmOVx1ODYwYVx1ODYxM1x1ODYwYlx1ODVmZVx1ODVmYVx1ODYwNlx1ODYyMlx1ODYxYVx1ODYzMFx1ODYzZlx1ODY0ZFx1NGU1NVx1ODY1NFx1ODY1Zlx1ODY2N1x1ODY3MVx1ODY5M1x1ODZh''@;'; + put 'put ''M1x1ODZhOVx1ODZhYVx1ODY4Ylx1ODY4Y1x1ODZiNlx1ODZhZlx1ODZjNFx1ODZjNlx1ODZiMFx1ODZjOVx1ODgyM1x1ODZhYlx1ODZkNFx1ODZkZVx1ODZlOVx1ODZlYyJdLFsiZTU4MCIsIlx1ODZkZlx1ODZkYlx1ODZlZlx1ODcxMlx1ODcwNlx1ODcwOFx1ODcwMFx1ODcwM1x1ODZmYlx1''@;'; + put 'put ''ODcxMVx1ODcwOVx1ODcwZFx1ODZmOVx1ODcwYVx1ODczNFx1ODczZlx1ODczN1x1ODczYlx1ODcyNVx1ODcyOVx1ODcxYVx1ODc2MFx1ODc1Zlx1ODc3OFx1ODc0Y1x1ODc0ZVx1ODc3NFx1ODc1N1x1ODc2OFx1ODc2ZVx1ODc1OVx1ODc1M1x1ODc2M1x1ODc2YVx1ODgwNVx1ODdhMlx1ODc5''@;'; + put 'put ''Zlx1ODc4Mlx1ODdhZlx1ODdjYlx1ODdiZFx1ODdjMFx1ODdkMFx1OTZkNlx1ODdhYlx1ODdjNFx1ODdiM1x1ODdjN1x1ODdjNlx1ODdiYlx1ODdlZlx1ODdmMlx1ODdlMFx1ODgwZlx1ODgwZFx1ODdmZVx1ODdmNlx1ODdmN1x1ODgwZVx1ODdkMlx1ODgxMVx1ODgxNlx1ODgxNVx1ODgyMlx1''@;'; + put 'put ''ODgyMVx1ODgzMVx1ODgzNlx1ODgzOVx1ODgyN1x1ODgzYlx1ODg0NFx1ODg0Mlx1ODg1Mlx1ODg1OVx1ODg1ZVx1ODg2Mlx1ODg2Ylx1ODg4MVx1ODg3ZVx1ODg5ZVx1ODg3NVx1ODg3ZFx1ODhiNVx1ODg3Mlx1ODg4Mlx1ODg5N1x1ODg5Mlx1ODhhZVx1ODg5OVx1ODhhMlx1ODg4ZFx1ODhh''@;'; + put 'put ''NFx1ODhiMFx1ODhiZlx1ODhiMVx1ODhjM1x1ODhjNFx1ODhkNFx1ODhkOFx1ODhkOVx1ODhkZFx1ODhmOVx1ODkwMlx1ODhmY1x1ODhmNFx1ODhlOFx1ODhmMlx1ODkwNFx1ODkwY1x1ODkwYVx1ODkxM1x1ODk0M1x1ODkxZVx1ODkyNVx1ODkyYVx1ODkyYlx1ODk0MVx1ODk0NFx1ODkzYlx1''@;'; + put 'put ''ODkzNlx1ODkzOFx1ODk0Y1x1ODkxZFx1ODk2MFx1ODk1ZSJdLFsiZTY0MCIsIlx1ODk2Nlx1ODk2NFx1ODk2ZFx1ODk2YVx1ODk2Zlx1ODk3NFx1ODk3N1x1ODk3ZVx1ODk4M1x1ODk4OFx1ODk4YVx1ODk5M1x1ODk5OFx1ODlhMVx1ODlhOVx1ODlhNlx1ODlhY1x1ODlhZlx1ODliMlx1ODli''@;'; + put 'put ''YVx1ODliZFx1ODliZlx1ODljMFx1ODlkYVx1ODlkY1x1ODlkZFx1ODllN1x1ODlmNFx1ODlmOFx1OGEwM1x1OGExNlx1OGExMFx1OGEwY1x1OGExYlx1OGExZFx1OGEyNVx1OGEzNlx1OGE0MVx1OGE1Ylx1OGE1Mlx1OGE0Nlx1OGE0OFx1OGE3Y1x1OGE2ZFx1OGE2Y1x1OGE2Mlx1OGE4NVx1''@;'; + put 'put ''OGE4Mlx1OGE4NFx1OGFhOFx1OGFhMVx1OGE5MVx1OGFhNVx1OGFhNlx1OGE5YVx1OGFhM1x1OGFjNFx1OGFjZFx1OGFjMlx1OGFkYVx1OGFlYlx1OGFmM1x1OGFlNyJdLFsiZTY4MCIsIlx1OGFlNFx1OGFmMVx1OGIxNFx1OGFlMFx1OGFlMlx1OGFmN1x1OGFkZVx1OGFkYlx1OGIwY1x1OGIw''@;'; + put 'put ''N1x1OGIxYVx1OGFlMVx1OGIxNlx1OGIxMFx1OGIxN1x1OGIyMFx1OGIzM1x1OTdhYlx1OGIyNlx1OGIyYlx1OGIzZVx1OGIyOFx1OGI0MVx1OGI0Y1x1OGI0Zlx1OGI0ZVx1OGI0OVx1OGI1Nlx1OGI1Ylx1OGI1YVx1OGI2Ylx1OGI1Zlx1OGI2Y1x1OGI2Zlx1OGI3NFx1OGI3ZFx1OGI4MFx1''@;'; + put 'put ''OGI4Y1x1OGI4ZVx1OGI5Mlx1OGI5M1x1OGI5Nlx1OGI5OVx1OGI5YVx1OGMzYVx1OGM0MVx1OGMzZlx1OGM0OFx1OGM0Y1x1OGM0ZVx1OGM1MFx1OGM1NVx1OGM2Mlx1OGM2Y1x1OGM3OFx1OGM3YVx1OGM4Mlx1OGM4OVx1OGM4NVx1OGM4YVx1OGM4ZFx1OGM4ZVx1OGM5NFx1OGM3Y1x1OGM5''@;'; + put 'put ''OFx1NjIxZFx1OGNhZFx1OGNhYVx1OGNiZFx1OGNiMlx1OGNiM1x1OGNhZVx1OGNiNlx1OGNjOFx1OGNjMVx1OGNlNFx1OGNlM1x1OGNkYVx1OGNmZFx1OGNmYVx1OGNmYlx1OGQwNFx1OGQwNVx1OGQwYVx1OGQwN1x1OGQwZlx1OGQwZFx1OGQxMFx1OWY0ZVx1OGQxM1x1OGNjZFx1OGQxNFx1''@;'; + put 'put ''OGQxNlx1OGQ2N1x1OGQ2ZFx1OGQ3MVx1OGQ3M1x1OGQ4MVx1OGQ5OVx1OGRjMlx1OGRiZVx1OGRiYVx1OGRjZlx1OGRkYVx1OGRkNlx1OGRjY1x1OGRkYlx1OGRjYlx1OGRlYVx1OGRlYlx1OGRkZlx1OGRlM1x1OGRmY1x1OGUwOFx1OGUwOVx1OGRmZlx1OGUxZFx1OGUxZVx1OGUxMFx1OGUx''@;'; + put 'put ''Zlx1OGU0Mlx1OGUzNVx1OGUzMFx1OGUzNFx1OGU0YSJdLFsiZTc0MCIsIlx1OGU0N1x1OGU0OVx1OGU0Y1x1OGU1MFx1OGU0OFx1OGU1OVx1OGU2NFx1OGU2MFx1OGUyYVx1OGU2M1x1OGU1NVx1OGU3Nlx1OGU3Mlx1OGU3Y1x1OGU4MVx1OGU4N1x1OGU4NVx1OGU4NFx1OGU4Ylx1OGU4YVx1''@;'; + put 'put ''OGU5M1x1OGU5MVx1OGU5NFx1OGU5OVx1OGVhYVx1OGVhMVx1OGVhY1x1OGViMFx1OGVjNlx1OGViMVx1OGViZVx1OGVjNVx1OGVjOFx1OGVjYlx1OGVkYlx1OGVlM1x1OGVmY1x1OGVmYlx1OGVlYlx1OGVmZVx1OGYwYVx1OGYwNVx1OGYxNVx1OGYxMlx1OGYxOVx1OGYxM1x1OGYxY1x1OGYx''@;'; + put 'put ''Zlx1OGYxYlx1OGYwY1x1OGYyNlx1OGYzM1x1OGYzYlx1OGYzOVx1OGY0NVx1OGY0Mlx1OGYzZVx1OGY0Y1x1OGY0OVx1OGY0Nlx1OGY0ZVx1OGY1N1x1OGY1YyJdLFsiZTc4MCIsIlx1OGY2Mlx1OGY2M1x1OGY2NFx1OGY5Y1x1OGY5Zlx1OGZhM1x1OGZhZFx1OGZhZlx1OGZiN1x1OGZkYVx1''@;'; + put 'put ''OGZlNVx1OGZlMlx1OGZlYVx1OGZlZlx1OTA4N1x1OGZmNFx1OTAwNVx1OGZmOVx1OGZmYVx1OTAxMVx1OTAxNVx1OTAyMVx1OTAwZFx1OTAxZVx1OTAxNlx1OTAwYlx1OTAyN1x1OTAzNlx1OTAzNVx1OTAzOVx1OGZmOFx1OTA0Zlx1OTA1MFx1OTA1MVx1OTA1Mlx1OTAwZVx1OTA0OVx1OTAz''@;'; + put 'put ''ZVx1OTA1Nlx1OTA1OFx1OTA1ZVx1OTA2OFx1OTA2Zlx1OTA3Nlx1OTZhOFx1OTA3Mlx1OTA4Mlx1OTA3ZFx1OTA4MVx1OTA4MFx1OTA4YVx1OTA4OVx1OTA4Zlx1OTBhOFx1OTBhZlx1OTBiMVx1OTBiNVx1OTBlMlx1OTBlNFx1NjI0OFx1OTBkYlx1OTEwMlx1OTExMlx1OTExOVx1OTEzMlx1''@;'; + put 'put ''OTEzMFx1OTE0YVx1OTE1Nlx1OTE1OFx1OTE2M1x1OTE2NVx1OTE2OVx1OTE3M1x1OTE3Mlx1OTE4Ylx1OTE4OVx1OTE4Mlx1OTFhMlx1OTFhYlx1OTFhZlx1OTFhYVx1OTFiNVx1OTFiNFx1OTFiYVx1OTFjMFx1OTFjMVx1OTFjOVx1OTFjYlx1OTFkMFx1OTFkNlx1OTFkZlx1OTFlMVx1OTFk''@;'; + put 'put ''Ylx1OTFmY1x1OTFmNVx1OTFmNlx1OTIxZVx1OTFmZlx1OTIxNFx1OTIyY1x1OTIxNVx1OTIxMVx1OTI1ZVx1OTI1N1x1OTI0NVx1OTI0OVx1OTI2NFx1OTI0OFx1OTI5NVx1OTIzZlx1OTI0Ylx1OTI1MFx1OTI5Y1x1OTI5Nlx1OTI5M1x1OTI5Ylx1OTI1YVx1OTJjZlx1OTJiOVx1OTJiN1x1''@;'; + put 'put ''OTJlOVx1OTMwZlx1OTJmYVx1OTM0NFx1OTMyZSJdLFsiZTg0MCIsIlx1OTMxOVx1OTMyMlx1OTMxYVx1OTMyM1x1OTMzYVx1OTMzNVx1OTMzYlx1OTM1Y1x1OTM2MFx1OTM3Y1x1OTM2ZVx1OTM1Nlx1OTNiMFx1OTNhY1x1OTNhZFx1OTM5NFx1OTNiOVx1OTNkNlx1OTNkN1x1OTNlOFx1OTNl''@;'; + put 'put ''NVx1OTNkOFx1OTNjM1x1OTNkZFx1OTNkMFx1OTNjOFx1OTNlNFx1OTQxYVx1OTQxNFx1OTQxM1x1OTQwM1x1OTQwN1x1OTQxMFx1OTQzNlx1OTQyYlx1OTQzNVx1OTQyMVx1OTQzYVx1OTQ0MVx1OTQ1Mlx1OTQ0NFx1OTQ1Ylx1OTQ2MFx1OTQ2Mlx1OTQ1ZVx1OTQ2YVx1OTIyOVx1OTQ3MFx1''@;'; + put 'put ''OTQ3NVx1OTQ3N1x1OTQ3ZFx1OTQ1YVx1OTQ3Y1x1OTQ3ZVx1OTQ4MVx1OTQ3Zlx1OTU4Mlx1OTU4N1x1OTU4YVx1OTU5NFx1OTU5Nlx1OTU5OFx1OTU5OSJdLFsiZTg4MCIsIlx1OTVhMFx1OTVhOFx1OTVhN1x1OTVhZFx1OTViY1x1OTViYlx1OTViOVx1OTViZVx1OTVjYVx1NmZmNlx1OTVj''@;'; + put 'put ''M1x1OTVjZFx1OTVjY1x1OTVkNVx1OTVkNFx1OTVkNlx1OTVkY1x1OTVlMVx1OTVlNVx1OTVlMlx1OTYyMVx1OTYyOFx1OTYyZVx1OTYyZlx1OTY0Mlx1OTY0Y1x1OTY0Zlx1OTY0Ylx1OTY3N1x1OTY1Y1x1OTY1ZVx1OTY1ZFx1OTY1Zlx1OTY2Nlx1OTY3Mlx1OTY2Y1x1OTY4ZFx1OTY5OFx1''@;'; + put 'put ''OTY5NVx1OTY5N1x1OTZhYVx1OTZhN1x1OTZiMVx1OTZiMlx1OTZiMFx1OTZiNFx1OTZiNlx1OTZiOFx1OTZiOVx1OTZjZVx1OTZjYlx1OTZjOVx1OTZjZFx1ODk0ZFx1OTZkY1x1OTcwZFx1OTZkNVx1OTZmOVx1OTcwNFx1OTcwNlx1OTcwOFx1OTcxM1x1OTcwZVx1OTcxMVx1OTcwZlx1OTcx''@;'; + put 'put ''Nlx1OTcxOVx1OTcyNFx1OTcyYVx1OTczMFx1OTczOVx1OTczZFx1OTczZVx1OTc0NFx1OTc0Nlx1OTc0OFx1OTc0Mlx1OTc0OVx1OTc1Y1x1OTc2MFx1OTc2NFx1OTc2Nlx1OTc2OFx1NTJkMlx1OTc2Ylx1OTc3MVx1OTc3OVx1OTc4NVx1OTc3Y1x1OTc4MVx1OTc3YVx1OTc4Nlx1OTc4Ylx1''@;'; + put 'put ''OTc4Zlx1OTc5MFx1OTc5Y1x1OTdhOFx1OTdhNlx1OTdhM1x1OTdiM1x1OTdiNFx1OTdjM1x1OTdjNlx1OTdjOFx1OTdjYlx1OTdkY1x1OTdlZFx1OWY0Zlx1OTdmMlx1N2FkZlx1OTdmNlx1OTdmNVx1OTgwZlx1OTgwY1x1OTgzOFx1OTgyNFx1OTgyMVx1OTgzN1x1OTgzZFx1OTg0Nlx1OTg0''@;'; + put 'put ''Zlx1OTg0Ylx1OTg2Ylx1OTg2Zlx1OTg3MCJdLFsiZTk0MCIsIlx1OTg3MVx1OTg3NFx1OTg3M1x1OThhYVx1OThhZlx1OThiMVx1OThiNlx1OThjNFx1OThjM1x1OThjNlx1OThlOVx1OThlYlx1OTkwM1x1OTkwOVx1OTkxMlx1OTkxNFx1OTkxOFx1OTkyMVx1OTkxZFx1OTkxZVx1OTkyNFx1''@;'; + put 'put ''OTkyMFx1OTkyY1x1OTkyZVx1OTkzZFx1OTkzZVx1OTk0Mlx1OTk0OVx1OTk0NVx1OTk1MFx1OTk0Ylx1OTk1MVx1OTk1Mlx1OTk0Y1x1OTk1NVx1OTk5N1x1OTk5OFx1OTlhNVx1OTlhZFx1OTlhZVx1OTliY1x1OTlkZlx1OTlkYlx1OTlkZFx1OTlkOFx1OTlkMVx1OTllZFx1OTllZVx1OTlm''@;'; + put 'put ''MVx1OTlmMlx1OTlmYlx1OTlmOFx1OWEwMVx1OWEwZlx1OWEwNVx1OTllMlx1OWExOVx1OWEyYlx1OWEzN1x1OWE0NVx1OWE0Mlx1OWE0MFx1OWE0MyJdLFsiZTk4MCIsIlx1OWEzZVx1OWE1NVx1OWE0ZFx1OWE1Ylx1OWE1N1x1OWE1Zlx1OWE2Mlx1OWE2NVx1OWE2NFx1OWE2OVx1OWE2Ylx1''@;'; + put 'put ''OWE2YVx1OWFhZFx1OWFiMFx1OWFiY1x1OWFjMFx1OWFjZlx1OWFkMVx1OWFkM1x1OWFkNFx1OWFkZVx1OWFkZlx1OWFlMlx1OWFlM1x1OWFlNlx1OWFlZlx1OWFlYlx1OWFlZVx1OWFmNFx1OWFmMVx1OWFmN1x1OWFmYlx1OWIwNlx1OWIxOFx1OWIxYVx1OWIxZlx1OWIyMlx1OWIyM1x1OWIy''@;'; + put 'put ''NVx1OWIyN1x1OWIyOFx1OWIyOVx1OWIyYVx1OWIyZVx1OWIyZlx1OWIzMlx1OWI0NFx1OWI0M1x1OWI0Zlx1OWI0ZFx1OWI0ZVx1OWI1MVx1OWI1OFx1OWI3NFx1OWI5M1x1OWI4M1x1OWI5MVx1OWI5Nlx1OWI5N1x1OWI5Zlx1OWJhMFx1OWJhOFx1OWJiNFx1OWJjMFx1OWJjYVx1OWJiOVx1''@;'; + put 'put ''OWJjNlx1OWJjZlx1OWJkMVx1OWJkMlx1OWJlM1x1OWJlMlx1OWJlNFx1OWJkNFx1OWJlMVx1OWMzYVx1OWJmMlx1OWJmMVx1OWJmMFx1OWMxNVx1OWMxNFx1OWMwOVx1OWMxM1x1OWMwY1x1OWMwNlx1OWMwOFx1OWMxMlx1OWMwYVx1OWMwNFx1OWMyZVx1OWMxYlx1OWMyNVx1OWMyNFx1OWMy''@;'; + put 'put ''MVx1OWMzMFx1OWM0N1x1OWMzMlx1OWM0Nlx1OWMzZVx1OWM1YVx1OWM2MFx1OWM2N1x1OWM3Nlx1OWM3OFx1OWNlN1x1OWNlY1x1OWNmMFx1OWQwOVx1OWQwOFx1OWNlYlx1OWQwM1x1OWQwNlx1OWQyYVx1OWQyNlx1OWRhZlx1OWQyM1x1OWQxZlx1OWQ0NFx1OWQxNVx1OWQxMlx1OWQ0MVx1''@;'; + put 'put ''OWQzZlx1OWQzZVx1OWQ0Nlx1OWQ0OCJdLFsiZWE0MCIsIlx1OWQ1ZFx1OWQ1ZVx1OWQ2NFx1OWQ1MVx1OWQ1MFx1OWQ1OVx1OWQ3Mlx1OWQ4OVx1OWQ4N1x1OWRhYlx1OWQ2Zlx1OWQ3YVx1OWQ5YVx1OWRhNFx1OWRhOVx1OWRiMlx1OWRjNFx1OWRjMVx1OWRiYlx1OWRiOFx1OWRiYVx1OWRj''@;'; + put 'put ''Nlx1OWRjZlx1OWRjMlx1OWRkOVx1OWRkM1x1OWRmOFx1OWRlNlx1OWRlZFx1OWRlZlx1OWRmZFx1OWUxYVx1OWUxYlx1OWUxZVx1OWU3NVx1OWU3OVx1OWU3ZFx1OWU4MVx1OWU4OFx1OWU4Ylx1OWU4Y1x1OWU5Mlx1OWU5NVx1OWU5MVx1OWU5ZFx1OWVhNVx1OWVhOVx1OWViOFx1OWVhYVx1''@;'; + put 'put ''OWVhZFx1OTc2MVx1OWVjY1x1OWVjZVx1OWVjZlx1OWVkMFx1OWVkNFx1OWVkY1x1OWVkZVx1OWVkZFx1OWVlMFx1OWVlNVx1OWVlOFx1OWVlZiJdLFsiZWE4MCIsIlx1OWVmNFx1OWVmNlx1OWVmN1x1OWVmOVx1OWVmYlx1OWVmY1x1OWVmZFx1OWYwN1x1OWYwOFx1NzZiN1x1OWYxNVx1OWYy''@;'; + put 'put ''MVx1OWYyY1x1OWYzZVx1OWY0YVx1OWY1Mlx1OWY1NFx1OWY2M1x1OWY1Zlx1OWY2MFx1OWY2MVx1OWY2Nlx1OWY2N1x1OWY2Y1x1OWY2YVx1OWY3N1x1OWY3Mlx1OWY3Nlx1OWY5NVx1OWY5Y1x1OWZhMFx1NTgyZlx1NjljN1x1OTA1OVx1NzQ2NFx1NTFkY1x1NzE5OSJdLFsiZWQ0MCIsIlx1''@;'; + put 'put ''N2U4YVx1ODkxY1x1OTM0OFx1OTI4OFx1ODRkY1x1NGZjOVx1NzBiYlx1NjYzMVx1NjhjOFx1OTJmOVx1NjZmYlx1NWY0NVx1NGUyOFx1NGVlMVx1NGVmY1x1NGYwMFx1NGYwM1x1NGYzOVx1NGY1Nlx1NGY5Mlx1NGY4YVx1NGY5YVx1NGY5NFx1NGZjZFx1NTA0MFx1NTAyMlx1NGZmZlx1NTAx''@;'; + put 'put ''ZVx1NTA0Nlx1NTA3MFx1NTA0Mlx1NTA5NFx1NTBmNFx1NTBkOFx1NTE0YVx1NTE2NFx1NTE5ZFx1NTFiZVx1NTFlY1x1NTIxNVx1NTI5Y1x1NTJhNlx1NTJjMFx1NTJkYlx1NTMwMFx1NTMwN1x1NTMyNFx1NTM3Mlx1NTM5M1x1NTNiMlx1NTNkZFx1ZmEwZVx1NTQ5Y1x1NTQ4YVx1NTRhOVx1''@;'; + put 'put ''NTRmZlx1NTU4Nlx1NTc1OVx1NTc2NVx1NTdhY1x1NTdjOFx1NTdjN1x1ZmEwZiJdLFsiZWQ4MCIsIlx1ZmExMFx1NTg5ZVx1NThiMlx1NTkwYlx1NTk1M1x1NTk1Ylx1NTk1ZFx1NTk2M1x1NTlhNFx1NTliYVx1NWI1Nlx1NWJjMFx1NzUyZlx1NWJkOFx1NWJlY1x1NWMxZVx1NWNhNlx1NWNi''@;'; + put 'put ''YVx1NWNmNVx1NWQyN1x1NWQ1M1x1ZmExMVx1NWQ0Mlx1NWQ2ZFx1NWRiOFx1NWRiOVx1NWRkMFx1NWYyMVx1NWYzNFx1NWY2N1x1NWZiN1x1NWZkZVx1NjA1ZFx1NjA4NVx1NjA4YVx1NjBkZVx1NjBkNVx1NjEyMFx1NjBmMlx1NjExMVx1NjEzN1x1NjEzMFx1NjE5OFx1NjIxM1x1NjJhNlx1''@;'; + put 'put ''NjNmNVx1NjQ2MFx1NjQ5ZFx1NjRjZVx1NjU0ZVx1NjYwMFx1NjYxNVx1NjYzYlx1NjYwOVx1NjYyZVx1NjYxZVx1NjYyNFx1NjY2NVx1NjY1N1x1NjY1OVx1ZmExMlx1NjY3M1x1NjY5OVx1NjZhMFx1NjZiMlx1NjZiZlx1NjZmYVx1NjcwZVx1ZjkyOVx1Njc2Nlx1NjdiYlx1Njg1Mlx1Njdj''@;'; + put 'put ''MFx1NjgwMVx1Njg0NFx1NjhjZlx1ZmExM1x1Njk2OFx1ZmExNFx1Njk5OFx1NjllMlx1NmEzMFx1NmE2Ylx1NmE0Nlx1NmE3M1x1NmE3ZVx1NmFlMlx1NmFlNFx1NmJkNlx1NmMzZlx1NmM1Y1x1NmM4Nlx1NmM2Zlx1NmNkYVx1NmQwNFx1NmQ4N1x1NmQ2Zlx1NmQ5Nlx1NmRhY1x1NmRjZlx1''@;'; + put 'put ''NmRmOFx1NmRmMlx1NmRmY1x1NmUzOVx1NmU1Y1x1NmUyN1x1NmUzY1x1NmViZlx1NmY4OFx1NmZiNVx1NmZmNVx1NzAwNVx1NzAwN1x1NzAyOFx1NzA4NVx1NzBhYlx1NzEwZlx1NzEwNFx1NzE1Y1x1NzE0Nlx1NzE0N1x1ZmExNVx1NzFjMVx1NzFmZVx1NzJiMSJdLFsiZWU0MCIsIlx1NzJi''@;'; + put 'put ''ZVx1NzMyNFx1ZmExNlx1NzM3N1x1NzNiZFx1NzNjOVx1NzNkNlx1NzNlM1x1NzNkMlx1NzQwN1x1NzNmNVx1NzQyNlx1NzQyYVx1NzQyOVx1NzQyZVx1NzQ2Mlx1NzQ4OVx1NzQ5Zlx1NzUwMVx1NzU2Zlx1NzY4Mlx1NzY5Y1x1NzY5ZVx1NzY5Ylx1NzZhNlx1ZmExN1x1Nzc0Nlx1NTJhZlx1''@;'; + put 'put ''NzgyMVx1Nzg0ZVx1Nzg2NFx1Nzg3YVx1NzkzMFx1ZmExOFx1ZmExOVx1ZmExYVx1Nzk5NFx1ZmExYlx1Nzk5Ylx1N2FkMVx1N2FlN1x1ZmExY1x1N2FlYlx1N2I5ZVx1ZmExZFx1N2Q0OFx1N2Q1Y1x1N2RiN1x1N2RhMFx1N2RkNlx1N2U1Mlx1N2Y0N1x1N2ZhMVx1ZmExZVx1ODMwMVx1ODM2''@;'; + put 'put ''Mlx1ODM3Zlx1ODNjN1x1ODNmNlx1ODQ0OFx1ODRiNFx1ODU1M1x1ODU1OSJdLFsiZWU4MCIsIlx1ODU2Ylx1ZmExZlx1ODViMFx1ZmEyMFx1ZmEyMVx1ODgwN1x1ODhmNVx1OGExMlx1OGEzN1x1OGE3OVx1OGFhN1x1OGFiZVx1OGFkZlx1ZmEyMlx1OGFmNlx1OGI1M1x1OGI3Zlx1OGNmMFx1''@;'; + put 'put ''OGNmNFx1OGQxMlx1OGQ3Nlx1ZmEyM1x1OGVjZlx1ZmEyNFx1ZmEyNVx1OTA2N1x1OTBkZVx1ZmEyNlx1OTExNVx1OTEyN1x1OTFkYVx1OTFkN1x1OTFkZVx1OTFlZFx1OTFlZVx1OTFlNFx1OTFlNVx1OTIwNlx1OTIxMFx1OTIwYVx1OTIzYVx1OTI0MFx1OTIzY1x1OTI0ZVx1OTI1OVx1OTI1''@;'; + put 'put ''MVx1OTIzOVx1OTI2N1x1OTJhN1x1OTI3N1x1OTI3OFx1OTJlN1x1OTJkN1x1OTJkOVx1OTJkMFx1ZmEyN1x1OTJkNVx1OTJlMFx1OTJkM1x1OTMyNVx1OTMyMVx1OTJmYlx1ZmEyOFx1OTMxZVx1OTJmZlx1OTMxZFx1OTMwMlx1OTM3MFx1OTM1N1x1OTNhNFx1OTNjNlx1OTNkZVx1OTNmOFx1''@;'; + put 'put ''OTQzMVx1OTQ0NVx1OTQ0OFx1OTU5Mlx1ZjlkY1x1ZmEyOVx1OTY5ZFx1OTZhZlx1OTczM1x1OTczYlx1OTc0M1x1OTc0ZFx1OTc0Zlx1OTc1MVx1OTc1NVx1OTg1N1x1OTg2NVx1ZmEyYVx1ZmEyYlx1OTkyN1x1ZmEyY1x1OTk5ZVx1OWE0ZVx1OWFkOVx1OWFkY1x1OWI3NVx1OWI3Mlx1OWI4''@;'; + put 'put ''Zlx1OWJiMVx1OWJiYlx1OWMwMFx1OWQ3MFx1OWQ2Ylx1ZmEyZFx1OWUxOVx1OWVkMSJdLFsiZWVlZiIsIlx1MjE3MCIsOSwiXHVmZmUyXHVmZmU0XHVmZjA3XHVmZjAyIl0sWyJmMDQwIiwiXHVlMDAwIiw2Ml0sWyJmMDgwIiwiXHVlMDNmIiwxMjRdLFsiZjE0MCIsIlx1ZTBiYyIsNjJdLFsi''@;'; + put 'put ''ZjE4MCIsIlx1ZTBmYiIsMTI0XSxbImYyNDAiLCJcdWUxNzgiLDYyXSxbImYyODAiLCJcdWUxYjciLDEyNF0sWyJmMzQwIiwiXHVlMjM0Iiw2Ml0sWyJmMzgwIiwiXHVlMjczIiwxMjRdLFsiZjQ0MCIsIlx1ZTJmMCIsNjJdLFsiZjQ4MCIsIlx1ZTMyZiIsMTI0XSxbImY1NDAiLCJcdWUzYWMi''@;'; + put 'put ''LDYyXSxbImY1ODAiLCJcdWUzZWIiLDEyNF0sWyJmNjQwIiwiXHVlNDY4Iiw2Ml0sWyJmNjgwIiwiXHVlNGE3IiwxMjRdLFsiZjc0MCIsIlx1ZTUyNCIsNjJdLFsiZjc4MCIsIlx1ZTU2MyIsMTI0XSxbImY4NDAiLCJcdWU1ZTAiLDYyXSxbImY4ODAiLCJcdWU2MWYiLDEyNF0sWyJmOTQwIiwi''@;'; + put 'put ''XHVlNjljIl0sWyJmYTQwIiwiXHUyMTcwIiw5LCJcdTIxNjAiLDksIlx1ZmZlMlx1ZmZlNFx1ZmYwN1x1ZmYwMlx1MzIzMVx1MjExNlx1MjEyMVx1MjIzNVx1N2U4YVx1ODkxY1x1OTM0OFx1OTI4OFx1ODRkY1x1NGZjOVx1NzBiYlx1NjYzMVx1NjhjOFx1OTJmOVx1NjZmYlx1NWY0NVx1NGUy''@;'; + put 'put ''OFx1NGVlMVx1NGVmY1x1NGYwMFx1NGYwM1x1NGYzOVx1NGY1Nlx1NGY5Mlx1NGY4YVx1NGY5YVx1NGY5NFx1NGZjZFx1NTA0MFx1NTAyMlx1NGZmZlx1NTAxZVx1NTA0Nlx1NTA3MFx1NTA0Mlx1NTA5NFx1NTBmNFx1NTBkOFx1NTE0YSJdLFsiZmE4MCIsIlx1NTE2NFx1NTE5ZFx1NTFiZVx1''@;'; + put 'put ''NTFlY1x1NTIxNVx1NTI5Y1x1NTJhNlx1NTJjMFx1NTJkYlx1NTMwMFx1NTMwN1x1NTMyNFx1NTM3Mlx1NTM5M1x1NTNiMlx1NTNkZFx1ZmEwZVx1NTQ5Y1x1NTQ4YVx1NTRhOVx1NTRmZlx1NTU4Nlx1NTc1OVx1NTc2NVx1NTdhY1x1NTdjOFx1NTdjN1x1ZmEwZlx1ZmExMFx1NTg5ZVx1NThi''@;'; + put 'put ''Mlx1NTkwYlx1NTk1M1x1NTk1Ylx1NTk1ZFx1NTk2M1x1NTlhNFx1NTliYVx1NWI1Nlx1NWJjMFx1NzUyZlx1NWJkOFx1NWJlY1x1NWMxZVx1NWNhNlx1NWNiYVx1NWNmNVx1NWQyN1x1NWQ1M1x1ZmExMVx1NWQ0Mlx1NWQ2ZFx1NWRiOFx1NWRiOVx1NWRkMFx1NWYyMVx1NWYzNFx1NWY2N1x1''@;'; + put 'put ''NWZiN1x1NWZkZVx1NjA1ZFx1NjA4NVx1NjA4YVx1NjBkZVx1NjBkNVx1NjEyMFx1NjBmMlx1NjExMVx1NjEzN1x1NjEzMFx1NjE5OFx1NjIxM1x1NjJhNlx1NjNmNVx1NjQ2MFx1NjQ5ZFx1NjRjZVx1NjU0ZVx1NjYwMFx1NjYxNVx1NjYzYlx1NjYwOVx1NjYyZVx1NjYxZVx1NjYyNFx1NjY2''@;'; + put 'put ''NVx1NjY1N1x1NjY1OVx1ZmExMlx1NjY3M1x1NjY5OVx1NjZhMFx1NjZiMlx1NjZiZlx1NjZmYVx1NjcwZVx1ZjkyOVx1Njc2Nlx1NjdiYlx1Njg1Mlx1NjdjMFx1NjgwMVx1Njg0NFx1NjhjZlx1ZmExM1x1Njk2OFx1ZmExNFx1Njk5OFx1NjllMlx1NmEzMFx1NmE2Ylx1NmE0Nlx1NmE3M1x1''@;'; + put 'put ''NmE3ZVx1NmFlMlx1NmFlNFx1NmJkNlx1NmMzZlx1NmM1Y1x1NmM4Nlx1NmM2Zlx1NmNkYVx1NmQwNFx1NmQ4N1x1NmQ2ZiJdLFsiZmI0MCIsIlx1NmQ5Nlx1NmRhY1x1NmRjZlx1NmRmOFx1NmRmMlx1NmRmY1x1NmUzOVx1NmU1Y1x1NmUyN1x1NmUzY1x1NmViZlx1NmY4OFx1NmZiNVx1NmZm''@;'; + put 'put ''NVx1NzAwNVx1NzAwN1x1NzAyOFx1NzA4NVx1NzBhYlx1NzEwZlx1NzEwNFx1NzE1Y1x1NzE0Nlx1NzE0N1x1ZmExNVx1NzFjMVx1NzFmZVx1NzJiMVx1NzJiZVx1NzMyNFx1ZmExNlx1NzM3N1x1NzNiZFx1NzNjOVx1NzNkNlx1NzNlM1x1NzNkMlx1NzQwN1x1NzNmNVx1NzQyNlx1NzQyYVx1''@;'; + put 'put ''NzQyOVx1NzQyZVx1NzQ2Mlx1NzQ4OVx1NzQ5Zlx1NzUwMVx1NzU2Zlx1NzY4Mlx1NzY5Y1x1NzY5ZVx1NzY5Ylx1NzZhNlx1ZmExN1x1Nzc0Nlx1NTJhZlx1NzgyMVx1Nzg0ZVx1Nzg2NFx1Nzg3YVx1NzkzMFx1ZmExOFx1ZmExOSJdLFsiZmI4MCIsIlx1ZmExYVx1Nzk5NFx1ZmExYlx1Nzk5''@;'; + put 'put ''Ylx1N2FkMVx1N2FlN1x1ZmExY1x1N2FlYlx1N2I5ZVx1ZmExZFx1N2Q0OFx1N2Q1Y1x1N2RiN1x1N2RhMFx1N2RkNlx1N2U1Mlx1N2Y0N1x1N2ZhMVx1ZmExZVx1ODMwMVx1ODM2Mlx1ODM3Zlx1ODNjN1x1ODNmNlx1ODQ0OFx1ODRiNFx1ODU1M1x1ODU1OVx1ODU2Ylx1ZmExZlx1ODViMFx1''@;'; + put 'put ''ZmEyMFx1ZmEyMVx1ODgwN1x1ODhmNVx1OGExMlx1OGEzN1x1OGE3OVx1OGFhN1x1OGFiZVx1OGFkZlx1ZmEyMlx1OGFmNlx1OGI1M1x1OGI3Zlx1OGNmMFx1OGNmNFx1OGQxMlx1OGQ3Nlx1ZmEyM1x1OGVjZlx1ZmEyNFx1ZmEyNVx1OTA2N1x1OTBkZVx1ZmEyNlx1OTExNVx1OTEyN1x1OTFk''@;'; + put 'put ''YVx1OTFkN1x1OTFkZVx1OTFlZFx1OTFlZVx1OTFlNFx1OTFlNVx1OTIwNlx1OTIxMFx1OTIwYVx1OTIzYVx1OTI0MFx1OTIzY1x1OTI0ZVx1OTI1OVx1OTI1MVx1OTIzOVx1OTI2N1x1OTJhN1x1OTI3N1x1OTI3OFx1OTJlN1x1OTJkN1x1OTJkOVx1OTJkMFx1ZmEyN1x1OTJkNVx1OTJlMFx1''@;'; + put 'put ''OTJkM1x1OTMyNVx1OTMyMVx1OTJmYlx1ZmEyOFx1OTMxZVx1OTJmZlx1OTMxZFx1OTMwMlx1OTM3MFx1OTM1N1x1OTNhNFx1OTNjNlx1OTNkZVx1OTNmOFx1OTQzMVx1OTQ0NVx1OTQ0OFx1OTU5Mlx1ZjlkY1x1ZmEyOVx1OTY5ZFx1OTZhZlx1OTczM1x1OTczYlx1OTc0M1x1OTc0ZFx1OTc0''@;'; + put 'put ''Zlx1OTc1MVx1OTc1NVx1OTg1N1x1OTg2NVx1ZmEyYVx1ZmEyYlx1OTkyN1x1ZmEyY1x1OTk5ZVx1OWE0ZVx1OWFkOSJdLFsiZmM0MCIsIlx1OWFkY1x1OWI3NVx1OWI3Mlx1OWI4Zlx1OWJiMVx1OWJiYlx1OWMwMFx1OWQ3MFx1OWQ2Ylx1ZmEyZFx1OWUxOVx1OWVkMSJdXScpfSwyMjU2MjpY''@;'; + put 'put ''ZT0+eyJ1c2Ugc3RyaWN0IjtYZS5leHBvcnRzPUpTT04ucGFyc2UoJ3siMi4xNi44NDAuMS4xMDEuMy40LjEuMSI6ImFlcy0xMjgtZWNiIiwiMi4xNi44NDAuMS4xMDEuMy40LjEuMiI6ImFlcy0xMjgtY2JjIiwiMi4xNi44NDAuMS4xMDEuMy40LjEuMyI6ImFlcy0xMjgtb2ZiIiwiMi4xNi44''@;'; + put 'put ''NDAuMS4xMDEuMy40LjEuNCI6ImFlcy0xMjgtY2ZiIiwiMi4xNi44NDAuMS4xMDEuMy40LjEuMjEiOiJhZXMtMTkyLWVjYiIsIjIuMTYuODQwLjEuMTAxLjMuNC4xLjIyIjoiYWVzLTE5Mi1jYmMiLCIyLjE2Ljg0MC4xLjEwMS4zLjQuMS4yMyI6ImFlcy0xOTItb2ZiIiwiMi4xNi44NDAuMS4x''@;'; + put 'put ''MDEuMy40LjEuMjQiOiJhZXMtMTkyLWNmYiIsIjIuMTYuODQwLjEuMTAxLjMuNC4xLjQxIjoiYWVzLTI1Ni1lY2IiLCIyLjE2Ljg0MC4xLjEwMS4zLjQuMS40MiI6ImFlcy0yNTYtY2JjIiwiMi4xNi44NDAuMS4xMDEuMy40LjEuNDMiOiJhZXMtMjU2LW9mYiIsIjIuMTYuODQwLjEuMTAxLjMu''@;'; + put 'put ''NC4xLjQ0IjoiYWVzLTI1Ni1jZmIifScpfSwxMjAzMDpYZT0+eyJ1c2Ugc3RyaWN0IjtYZS5leHBvcnRzPUpTT04ucGFyc2UoJ3sibG9jYWxlIjoiZW4iLCJkYXRlIjp7ImNhIjpbImdyZWdvcnkiLCJidWRkaGlzdCIsImNoaW5lc2UiLCJjb3B0aWMiLCJkYW5naSIsImV0aGlvYWEiLCJldGhp''@;'; + put 'put ''b3BpYyIsImdlbmVyaWMiLCJoZWJyZXciLCJpbmRpYW4iLCJpc2xhbWljIiwiaXNsYW1pY2MiLCJqYXBhbmVzZSIsInBlcnNpYW4iLCJyb2MiXSwiaG91ck5vMCI6dHJ1ZSwiaG91cjEyIjp0cnVlLCJmb3JtYXRzIjp7InNob3J0IjoiezF9LCB7MH0iLCJtZWRpdW0iOiJ7MX0sIHswfSIsImZ1''@;'; + put 'put ''bGwiOiJ7MX0gXCdhdFwnIHswfSIsImxvbmciOiJ7MX0gXCdhdFwnIHswfSIsImF2YWlsYWJsZUZvcm1hdHMiOnsiZCI6ImQiLCJFIjoiY2NjIiwiRWQiOiJkIEUiLCJFaG0iOiJFIGg6bW0gYSIsIkVIbSI6IkUgSEg6bW0iLCJFaG1zIjoiRSBoOm1tOnNzIGEiLCJFSG1zIjoiRSBISDptbTpz''@;'; + put 'put ''cyIsIkd5IjoieSBHIiwiR3lNTU0iOiJNTU0geSBHIiwiR3lNTU1kIjoiTU1NIGQsIHkgRyIsIkd5TU1NRWQiOiJFLCBNTU0gZCwgeSBHIiwiaCI6ImggYSIsIkgiOiJISCIsImhtIjoiaDptbSBhIiwiSG0iOiJISDptbSIsImhtcyI6Img6bW06c3MgYSIsIkhtcyI6IkhIOm1tOnNzIiwiaG1z''@;'; + put 'put ''diI6Img6bW06c3MgYSB2IiwiSG1zdiI6IkhIOm1tOnNzIHYiLCJobXYiOiJoOm1tIGEgdiIsIkhtdiI6IkhIOm1tIHYiLCJNIjoiTCIsIk1kIjoiTS9kIiwiTUVkIjoiRSwgTS9kIiwiTU1NIjoiTExMIiwiTU1NZCI6Ik1NTSBkIiwiTU1NRWQiOiJFLCBNTU0gZCIsIk1NTU1kIjoiTU1NTSBk''@;'; + put 'put ''IiwibXMiOiJtbTpzcyIsInkiOiJ5IiwieU0iOiJNL3kiLCJ5TWQiOiJNL2QveSIsInlNRWQiOiJFLCBNL2QveSIsInlNTU0iOiJNTU0geSIsInlNTU1kIjoiTU1NIGQsIHkiLCJ5TU1NRWQiOiJFLCBNTU0gZCwgeSIsInlNTU1NIjoiTU1NTSB5IiwieVFRUSI6IlFRUSB5IiwieVFRUVEiOiJR''@;'; + put 'put ''UVFRIHkifSwiZGF0ZUZvcm1hdHMiOnsieU1NTU1FRUVFZCI6IkVFRUUsIE1NTU0gZCwgeSIsInlNTU1NZCI6Ik1NTU0gZCwgeSIsInlNTU1kIjoiTU1NIGQsIHkiLCJ5TWQiOiJNL2QveXkifSwidGltZUZvcm1hdHMiOnsiaG1tc3N6enp6IjoiaDptbTpzcyBhIHp6enoiLCJobXN6IjoiaDpt''@;'; + put 'put ''bTpzcyBhIHoiLCJobXMiOiJoOm1tOnNzIGEiLCJobSI6Img6bW0gYSJ9fSwiY2FsZW5kYXJzIjp7ImJ1ZGRoaXN0Ijp7Im1vbnRocyI6eyJuYXJyb3ciOlsiSiIsIkYiLCJNIiwiQSIsIk0iLCJKIiwiSiIsIkEiLCJTIiwiTyIsIk4iLCJEIl0sInNob3J0IjpbIkphbiIsIkZlYiIsIk1hciIs''@;'; + put 'put ''IkFwciIsIk1heSIsIkp1biIsIkp1bCIsIkF1ZyIsIlNlcCIsIk9jdCIsIk5vdiIsIkRlYyJdLCJsb25nIjpbIkphbnVhcnkiLCJGZWJydWFyeSIsIk1hcmNoIiwiQXByaWwiLCJNYXkiLCJKdW5lIiwiSnVseSIsIkF1Z3VzdCIsIlNlcHRlbWJlciIsIk9jdG9iZXIiLCJOb3ZlbWJlciIsIkRl''@;'; + put 'put ''Y2VtYmVyIl19LCJkYXlzIjp7Im5hcnJvdyI6WyJTIiwiTSIsIlQiLCJXIiwiVCIsIkYiLCJTIl0sInNob3J0IjpbIlN1biIsIk1vbiIsIlR1ZSIsIldlZCIsIlRodSIsIkZyaSIsIlNhdCJdLCJsb25nIjpbIlN1bmRheSIsIk1vbmRheSIsIlR1ZXNkYXkiLCJXZWRuZXNkYXkiLCJUaHVyc2Rh''@;'; + put 'put ''eSIsIkZyaWRheSIsIlNhdHVyZGF5Il19LCJlcmFzIjp7Im5hcnJvdyI6WyJCRSJdLCJzaG9ydCI6WyJCRSJdLCJsb25nIjpbIkJFIl19LCJkYXlQZXJpb2RzIjp7ImFtIjoiQU0iLCJwbSI6IlBNIn19LCJjaGluZXNlIjp7Im1vbnRocyI6eyJuYXJyb3ciOlsiMSIsIjIiLCIzIiwiNCIsIjUi''@;'; + put 'put ''LCI2IiwiNyIsIjgiLCI5IiwiMTAiLCIxMSIsIjEyIl0sInNob3J0IjpbIk1vMSIsIk1vMiIsIk1vMyIsIk1vNCIsIk1vNSIsIk1vNiIsIk1vNyIsIk1vOCIsIk1vOSIsIk1vMTAiLCJNbzExIiwiTW8xMiJdLCJsb25nIjpbIk1vbnRoMSIsIk1vbnRoMiIsIk1vbnRoMyIsIk1vbnRoNCIsIk1v''@;'; + put 'put ''bnRoNSIsIk1vbnRoNiIsIk1vbnRoNyIsIk1vbnRoOCIsIk1vbnRoOSIsIk1vbnRoMTAiLCJNb250aDExIiwiTW9udGgxMiJdfSwiZGF5cyI6eyJuYXJyb3ciOlsiUyIsIk0iLCJUIiwiVyIsIlQiLCJGIiwiUyJdLCJzaG9ydCI6WyJTdW4iLCJNb24iLCJUdWUiLCJXZWQiLCJUaHUiLCJGcmki''@;'; + put 'put ''LCJTYXQiXSwibG9uZyI6WyJTdW5kYXkiLCJNb25kYXkiLCJUdWVzZGF5IiwiV2VkbmVzZGF5IiwiVGh1cnNkYXkiLCJGcmlkYXkiLCJTYXR1cmRheSJdfSwiZGF5UGVyaW9kcyI6eyJhbSI6IkFNIiwicG0iOiJQTSJ9fSwiY29wdGljIjp7Im1vbnRocyI6eyJuYXJyb3ciOlsiMSIsIjIiLCIz''@;'; + put 'put ''IiwiNCIsIjUiLCI2IiwiNyIsIjgiLCI5IiwiMTAiLCIxMSIsIjEyIiwiMTMiXSwic2hvcnQiOlsiVG91dCIsIkJhYmEiLCJIYXRvciIsIktpYWhrIiwiVG9iYSIsIkFtc2hpciIsIkJhcmFtaGF0IiwiQmFyYW1vdWRhIiwiQmFzaGFucyIsIlBhb25hIiwiRXBlcCIsIk1lc3JhIiwiTmFzaWUi''@;'; + put 'put ''XSwibG9uZyI6WyJUb3V0IiwiQmFiYSIsIkhhdG9yIiwiS2lhaGsiLCJUb2JhIiwiQW1zaGlyIiwiQmFyYW1oYXQiLCJCYXJhbW91ZGEiLCJCYXNoYW5zIiwiUGFvbmEiLCJFcGVwIiwiTWVzcmEiLCJOYXNpZSJdfSwiZGF5cyI6eyJuYXJyb3ciOlsiUyIsIk0iLCJUIiwiVyIsIlQiLCJGIiwi''@;'; + put 'put ''UyJdLCJzaG9ydCI6WyJTdW4iLCJNb24iLCJUdWUiLCJXZWQiLCJUaHUiLCJGcmkiLCJTYXQiXSwibG9uZyI6WyJTdW5kYXkiLCJNb25kYXkiLCJUdWVzZGF5IiwiV2VkbmVzZGF5IiwiVGh1cnNkYXkiLCJGcmlkYXkiLCJTYXR1cmRheSJdfSwiZXJhcyI6eyJuYXJyb3ciOlsiRVJBMCIsIkVS''@;'; + put 'put ''QTEiXSwic2hvcnQiOlsiRVJBMCIsIkVSQTEiXSwibG9uZyI6WyJFUkEwIiwiRVJBMSJdfSwiZGF5UGVyaW9kcyI6eyJhbSI6IkFNIiwicG0iOiJQTSJ9fSwiZGFuZ2kiOnsibW9udGhzIjp7Im5hcnJvdyI6WyIxIiwiMiIsIjMiLCI0IiwiNSIsIjYiLCI3IiwiOCIsIjkiLCIxMCIsIjExIiwi''@;'; + put 'put ''MTIiXSwic2hvcnQiOlsiTW8xIiwiTW8yIiwiTW8zIiwiTW80IiwiTW81IiwiTW82IiwiTW83IiwiTW84IiwiTW85IiwiTW8xMCIsIk1vMTEiLCJNbzEyIl0sImxvbmciOlsiTW9udGgxIiwiTW9udGgyIiwiTW9udGgzIiwiTW9udGg0IiwiTW9udGg1IiwiTW9udGg2IiwiTW9udGg3IiwiTW9u''@;'; + put 'put ''dGg4IiwiTW9udGg5IiwiTW9udGgxMCIsIk1vbnRoMTEiLCJNb250aDEyIl19LCJkYXlzIjp7Im5hcnJvdyI6WyJTIiwiTSIsIlQiLCJXIiwiVCIsIkYiLCJTIl0sInNob3J0IjpbIlN1biIsIk1vbiIsIlR1ZSIsIldlZCIsIlRodSIsIkZyaSIsIlNhdCJdLCJsb25nIjpbIlN1bmRheSIsIk1v''@;'; + put 'put ''bmRheSIsIlR1ZXNkYXkiLCJXZWRuZXNkYXkiLCJUaHVyc2RheSIsIkZyaWRheSIsIlNhdHVyZGF5Il19LCJkYXlQZXJpb2RzIjp7ImFtIjoiQU0iLCJwbSI6IlBNIn19LCJldGhpb3BpYyI6eyJtb250aHMiOnsibmFycm93IjpbIjEiLCIyIiwiMyIsIjQiLCI1IiwiNiIsIjciLCI4IiwiOSIs''@;'; + put 'put ''IjEwIiwiMTEiLCIxMiIsIjEzIl0sInNob3J0IjpbIk1lc2tlcmVtIiwiVGVrZW10IiwiSGVkYXIiLCJUYWhzYXMiLCJUZXIiLCJZZWthdGl0IiwiTWVnYWJpdCIsIk1pYXppYSIsIkdlbmJvdCIsIlNlbmUiLCJIYW1sZSIsIk5laGFzc2UiLCJQYWd1bWVuIl0sImxvbmciOlsiTWVza2VyZW0i''@;'; + put 'put ''LCJUZWtlbXQiLCJIZWRhciIsIlRhaHNhcyIsIlRlciIsIllla2F0aXQiLCJNZWdhYml0IiwiTWlhemlhIiwiR2VuYm90IiwiU2VuZSIsIkhhbWxlIiwiTmVoYXNzZSIsIlBhZ3VtZW4iXX0sImRheXMiOnsibmFycm93IjpbIlMiLCJNIiwiVCIsIlciLCJUIiwiRiIsIlMiXSwic2hvcnQiOlsi''@;'; + put 'put ''U3VuIiwiTW9uIiwiVHVlIiwiV2VkIiwiVGh1IiwiRnJpIiwiU2F0Il0sImxvbmciOlsiU3VuZGF5IiwiTW9uZGF5IiwiVHVlc2RheSIsIldlZG5lc2RheSIsIlRodXJzZGF5IiwiRnJpZGF5IiwiU2F0dXJkYXkiXX0sImVyYXMiOnsibmFycm93IjpbIkVSQTAiLCJFUkExIl0sInNob3J0Ijpb''@;'; + put 'put ''IkVSQTAiLCJFUkExIl0sImxvbmciOlsiRVJBMCIsIkVSQTEiXX0sImRheVBlcmlvZHMiOnsiYW0iOiJBTSIsInBtIjoiUE0ifX0sImV0aGlvYWEiOnsibW9udGhzIjp7Im5hcnJvdyI6WyIxIiwiMiIsIjMiLCI0IiwiNSIsIjYiLCI3IiwiOCIsIjkiLCIxMCIsIjExIiwiMTIiLCIxMyJdLCJz''@;'; + put 'put ''aG9ydCI6WyJNZXNrZXJlbSIsIlRla2VtdCIsIkhlZGFyIiwiVGFoc2FzIiwiVGVyIiwiWWVrYXRpdCIsIk1lZ2FiaXQiLCJNaWF6aWEiLCJHZW5ib3QiLCJTZW5lIiwiSGFtbGUiLCJOZWhhc3NlIiwiUGFndW1lbiJdLCJsb25nIjpbIk1lc2tlcmVtIiwiVGVrZW10IiwiSGVkYXIiLCJUYWhz''@;'; + put 'put ''YXMiLCJUZXIiLCJZZWthdGl0IiwiTWVnYWJpdCIsIk1pYXppYSIsIkdlbmJvdCIsIlNlbmUiLCJIYW1sZSIsIk5laGFzc2UiLCJQYWd1bWVuIl19LCJkYXlzIjp7Im5hcnJvdyI6WyJTIiwiTSIsIlQiLCJXIiwiVCIsIkYiLCJTIl0sInNob3J0IjpbIlN1biIsIk1vbiIsIlR1ZSIsIldlZCIs''@;'; + put 'put ''IlRodSIsIkZyaSIsIlNhdCJdLCJsb25nIjpbIlN1bmRheSIsIk1vbmRheSIsIlR1ZXNkYXkiLCJXZWRuZXNkYXkiLCJUaHVyc2RheSIsIkZyaWRheSIsIlNhdHVyZGF5Il19LCJlcmFzIjp7Im5hcnJvdyI6WyJFUkEwIl0sInNob3J0IjpbIkVSQTAiXSwibG9uZyI6WyJFUkEwIl19LCJkYXlQ''@;'; + put 'put ''ZXJpb2RzIjp7ImFtIjoiQU0iLCJwbSI6IlBNIn19LCJnZW5lcmljIjp7Im1vbnRocyI6eyJuYXJyb3ciOlsiMSIsIjIiLCIzIiwiNCIsIjUiLCI2IiwiNyIsIjgiLCI5IiwiMTAiLCIxMSIsIjEyIl0sInNob3J0IjpbIk0wMSIsIk0wMiIsIk0wMyIsIk0wNCIsIk0wNSIsIk0wNiIsIk0wNyIs''@;'; + put 'put ''Ik0wOCIsIk0wOSIsIk0xMCIsIk0xMSIsIk0xMiJdLCJsb25nIjpbIk0wMSIsIk0wMiIsIk0wMyIsIk0wNCIsIk0wNSIsIk0wNiIsIk0wNyIsIk0wOCIsIk0wOSIsIk0xMCIsIk0xMSIsIk0xMiJdfSwiZGF5cyI6eyJuYXJyb3ciOlsiUyIsIk0iLCJUIiwiVyIsIlQiLCJGIiwiUyJdLCJzaG9y''@;'; + put 'put ''dCI6WyJTdW4iLCJNb24iLCJUdWUiLCJXZWQiLCJUaHUiLCJGcmkiLCJTYXQiXSwibG9uZyI6WyJTdW5kYXkiLCJNb25kYXkiLCJUdWVzZGF5IiwiV2VkbmVzZGF5IiwiVGh1cnNkYXkiLCJGcmlkYXkiLCJTYXR1cmRheSJdfSwiZXJhcyI6eyJuYXJyb3ciOlsiRVJBMCIsIkVSQTEiXSwic2hv''@;'; + put 'put ''cnQiOlsiRVJBMCIsIkVSQTEiXSwibG9uZyI6WyJFUkEwIiwiRVJBMSJdfSwiZGF5UGVyaW9kcyI6eyJhbSI6IkFNIiwicG0iOiJQTSJ9fSwiZ3JlZ29yeSI6eyJtb250aHMiOnsibmFycm93IjpbIkoiLCJGIiwiTSIsIkEiLCJNIiwiSiIsIkoiLCJBIiwiUyIsIk8iLCJOIiwiRCJdLCJzaG9y''@;'; + put 'put ''dCI6WyJKYW4iLCJGZWIiLCJNYXIiLCJBcHIiLCJNYXkiLCJKdW4iLCJKdWwiLCJBdWciLCJTZXAiLCJPY3QiLCJOb3YiLCJEZWMiXSwibG9uZyI6WyJKYW51YXJ5IiwiRmVicnVhcnkiLCJNYXJjaCIsIkFwcmlsIiwiTWF5IiwiSnVuZSIsIkp1bHkiLCJBdWd1c3QiLCJTZXB0ZW1iZXIiLCJP''@;'; + put 'put ''Y3RvYmVyIiwiTm92ZW1iZXIiLCJEZWNlbWJlciJdfSwiZGF5cyI6eyJuYXJyb3ciOlsiUyIsIk0iLCJUIiwiVyIsIlQiLCJGIiwiUyJdLCJzaG9ydCI6WyJTdW4iLCJNb24iLCJUdWUiLCJXZWQiLCJUaHUiLCJGcmkiLCJTYXQiXSwibG9uZyI6WyJTdW5kYXkiLCJNb25kYXkiLCJUdWVzZGF5''@;'; + put 'put ''IiwiV2VkbmVzZGF5IiwiVGh1cnNkYXkiLCJGcmlkYXkiLCJTYXR1cmRheSJdfSwiZXJhcyI6eyJuYXJyb3ciOlsiQiIsIkEiLCJCQ0UiLCJDRSJdLCJzaG9ydCI6WyJCQyIsIkFEIiwiQkNFIiwiQ0UiXSwibG9uZyI6WyJCZWZvcmUgQ2hyaXN0IiwiQW5ubyBEb21pbmkiLCJCZWZvcmUgQ29t''@;'; + put 'put ''bW9uIEVyYSIsIkNvbW1vbiBFcmEiXX0sImRheVBlcmlvZHMiOnsiYW0iOiJBTSIsInBtIjoiUE0ifX0sImhlYnJldyI6eyJtb250aHMiOnsibmFycm93IjpbIjEiLCIyIiwiMyIsIjQiLCI1IiwiNiIsIjciLCI4IiwiOSIsIjEwIiwiMTEiLCIxMiIsIjEzIiwiNyJdLCJzaG9ydCI6WyJUaXNo''@;'; + put 'put ''cmkiLCJIZXNodmFuIiwiS2lzbGV2IiwiVGV2ZXQiLCJTaGV2YXQiLCJBZGFyIEkiLCJBZGFyIiwiTmlzYW4iLCJJeWFyIiwiU2l2YW4iLCJUYW11eiIsIkF2IiwiRWx1bCIsIkFkYXIgSUkiXSwibG9uZyI6WyJUaXNocmkiLCJIZXNodmFuIiwiS2lzbGV2IiwiVGV2ZXQiLCJTaGV2YXQiLCJB''@;'; + put 'put ''ZGFyIEkiLCJBZGFyIiwiTmlzYW4iLCJJeWFyIiwiU2l2YW4iLCJUYW11eiIsIkF2IiwiRWx1bCIsIkFkYXIgSUkiXX0sImRheXMiOnsibmFycm93IjpbIlMiLCJNIiwiVCIsIlciLCJUIiwiRiIsIlMiXSwic2hvcnQiOlsiU3VuIiwiTW9uIiwiVHVlIiwiV2VkIiwiVGh1IiwiRnJpIiwiU2F0''@;'; + put 'put ''Il0sImxvbmciOlsiU3VuZGF5IiwiTW9uZGF5IiwiVHVlc2RheSIsIldlZG5lc2RheSIsIlRodXJzZGF5IiwiRnJpZGF5IiwiU2F0dXJkYXkiXX0sImVyYXMiOnsibmFycm93IjpbIkFNIl0sInNob3J0IjpbIkFNIl0sImxvbmciOlsiQU0iXX0sImRheVBlcmlvZHMiOnsiYW0iOiJBTSIsInBt''@;'; + put 'put ''IjoiUE0ifX0sImluZGlhbiI6eyJtb250aHMiOnsibmFycm93IjpbIjEiLCIyIiwiMyIsIjQiLCI1IiwiNiIsIjciLCI4IiwiOSIsIjEwIiwiMTEiLCIxMiJdLCJzaG9ydCI6WyJDaGFpdHJhIiwiVmFpc2FraGEiLCJKeWFpc3RoYSIsIkFzYWRoYSIsIlNyYXZhbmEiLCJCaGFkcmEiLCJBc3Zp''@;'; + put 'put ''bmEiLCJLYXJ0aWthIiwiQWdyYWhheWFuYSIsIlBhdXNhIiwiTWFnaGEiLCJQaGFsZ3VuYSJdLCJsb25nIjpbIkNoYWl0cmEiLCJWYWlzYWtoYSIsIkp5YWlzdGhhIiwiQXNhZGhhIiwiU3JhdmFuYSIsIkJoYWRyYSIsIkFzdmluYSIsIkthcnRpa2EiLCJBZ3JhaGF5YW5hIiwiUGF1c2EiLCJN''@;'; + put 'put ''YWdoYSIsIlBoYWxndW5hIl19LCJkYXlzIjp7Im5hcnJvdyI6WyJTIiwiTSIsIlQiLCJXIiwiVCIsIkYiLCJTIl0sInNob3J0IjpbIlN1biIsIk1vbiIsIlR1ZSIsIldlZCIsIlRodSIsIkZyaSIsIlNhdCJdLCJsb25nIjpbIlN1bmRheSIsIk1vbmRheSIsIlR1ZXNkYXkiLCJXZWRuZXNkYXki''@;'; + put 'put ''LCJUaHVyc2RheSIsIkZyaWRheSIsIlNhdHVyZGF5Il19LCJlcmFzIjp7Im5hcnJvdyI6WyJTYWthIl0sInNob3J0IjpbIlNha2EiXSwibG9uZyI6WyJTYWthIl19LCJkYXlQZXJpb2RzIjp7ImFtIjoiQU0iLCJwbSI6IlBNIn19LCJpc2xhbWljIjp7Im1vbnRocyI6eyJuYXJyb3ciOlsiMSIs''@;'; + put 'put ''IjIiLCIzIiwiNCIsIjUiLCI2IiwiNyIsIjgiLCI5IiwiMTAiLCIxMSIsIjEyIl0sInNob3J0IjpbIk11aC4iLCJTYWYuIiwiUmFiLiBJIiwiUmFiLiBJSSIsIkp1bS4gSSIsIkp1bS4gSUkiLCJSYWouIiwiU2hhLiIsIlJhbS4iLCJTaGF3LiIsIkRodVx1MDJiYmwtUS4iLCJEaHVcdTAyYmJs''@;'; + put 'put ''LUguIl0sImxvbmciOlsiTXVoYXJyYW0iLCJTYWZhciIsIlJhYmlcdTAyYmIgSSIsIlJhYmlcdTAyYmIgSUkiLCJKdW1hZGEgSSIsIkp1bWFkYSBJSSIsIlJhamFiIiwiU2hhXHUwMmJiYmFuIiwiUmFtYWRhbiIsIlNoYXd3YWwiLCJEaHVcdTAyYmJsLVFpXHUwMmJiZGFoIiwiRGh1XHUwMmJi''@;'; + put 'put ''bC1IaWpqYWgiXX0sImRheXMiOnsibmFycm93IjpbIlMiLCJNIiwiVCIsIlciLCJUIiwiRiIsIlMiXSwic2hvcnQiOlsiU3VuIiwiTW9uIiwiVHVlIiwiV2VkIiwiVGh1IiwiRnJpIiwiU2F0Il0sImxvbmciOlsiU3VuZGF5IiwiTW9uZGF5IiwiVHVlc2RheSIsIldlZG5lc2RheSIsIlRodXJz''@;'; + put 'put ''ZGF5IiwiRnJpZGF5IiwiU2F0dXJkYXkiXX0sImVyYXMiOnsibmFycm93IjpbIkFIIl0sInNob3J0IjpbIkFIIl0sImxvbmciOlsiQUgiXX0sImRheVBlcmlvZHMiOnsiYW0iOiJBTSIsInBtIjoiUE0ifX0sImlzbGFtaWNjIjp7Im1vbnRocyI6eyJuYXJyb3ciOlsiMSIsIjIiLCIzIiwiNCIs''@;'; + put 'put ''IjUiLCI2IiwiNyIsIjgiLCI5IiwiMTAiLCIxMSIsIjEyIl0sInNob3J0IjpbIk11aC4iLCJTYWYuIiwiUmFiLiBJIiwiUmFiLiBJSSIsIkp1bS4gSSIsIkp1bS4gSUkiLCJSYWouIiwiU2hhLiIsIlJhbS4iLCJTaGF3LiIsIkRodVx1MDJiYmwtUS4iLCJEaHVcdTAyYmJsLUguIl0sImxvbmci''@;'; + put 'put ''OlsiTXVoYXJyYW0iLCJTYWZhciIsIlJhYmlcdTAyYmIgSSIsIlJhYmlcdTAyYmIgSUkiLCJKdW1hZGEgSSIsIkp1bWFkYSBJSSIsIlJhamFiIiwiU2hhXHUwMmJiYmFuIiwiUmFtYWRhbiIsIlNoYXd3YWwiLCJEaHVcdTAyYmJsLVFpXHUwMmJiZGFoIiwiRGh1XHUwMmJibC1IaWpqYWgiXX0s''@;'; + put 'put ''ImRheXMiOnsibmFycm93IjpbIlMiLCJNIiwiVCIsIlciLCJUIiwiRiIsIlMiXSwic2hvcnQiOlsiU3VuIiwiTW9uIiwiVHVlIiwiV2VkIiwiVGh1IiwiRnJpIiwiU2F0Il0sImxvbmciOlsiU3VuZGF5IiwiTW9uZGF5IiwiVHVlc2RheSIsIldlZG5lc2RheSIsIlRodXJzZGF5IiwiRnJpZGF5''@;'; + put 'put ''IiwiU2F0dXJkYXkiXX0sImVyYXMiOnsibmFycm93IjpbIkFIIl0sInNob3J0IjpbIkFIIl0sImxvbmciOlsiQUgiXX0sImRheVBlcmlvZHMiOnsiYW0iOiJBTSIsInBtIjoiUE0ifX0sImphcGFuZXNlIjp7Im1vbnRocyI6eyJuYXJyb3ciOlsiSiIsIkYiLCJNIiwiQSIsIk0iLCJKIiwiSiIs''@;'; + put 'put ''IkEiLCJTIiwiTyIsIk4iLCJEIl0sInNob3J0IjpbIkphbiIsIkZlYiIsIk1hciIsIkFwciIsIk1heSIsIkp1biIsIkp1bCIsIkF1ZyIsIlNlcCIsIk9jdCIsIk5vdiIsIkRlYyJdLCJsb25nIjpbIkphbnVhcnkiLCJGZWJydWFyeSIsIk1hcmNoIiwiQXByaWwiLCJNYXkiLCJKdW5lIiwiSnVs''@;'; + put 'put ''eSIsIkF1Z3VzdCIsIlNlcHRlbWJlciIsIk9jdG9iZXIiLCJOb3ZlbWJlciIsIkRlY2VtYmVyIl19LCJkYXlzIjp7Im5hcnJvdyI6WyJTIiwiTSIsIlQiLCJXIiwiVCIsIkYiLCJTIl0sInNob3J0IjpbIlN1biIsIk1vbiIsIlR1ZSIsIldlZCIsIlRodSIsIkZyaSIsIlNhdCJdLCJsb25nIjpb''@;'; + put 'put ''IlN1bmRheSIsIk1vbmRheSIsIlR1ZXNkYXkiLCJXZWRuZXNkYXkiLCJUaHVyc2RheSIsIkZyaWRheSIsIlNhdHVyZGF5Il19LCJlcmFzIjp7Im5hcnJvdyI6WyJUYWlrYSAoNjQ1XHUyMDEzNjUwKSIsIkhha3VjaGkgKDY1MFx1MjAxMzY3MSkiLCJIYWt1aFx1MDE0ZCAoNjcyXHUyMDEzNjg2''@;'; + put 'put ''KSIsIlNodWNoXHUwMTRkICg2ODZcdTIwMTM3MDEpIiwiVGFpaFx1MDE0ZCAoNzAxXHUyMDEzNzA0KSIsIktlaXVuICg3MDRcdTIwMTM3MDgpIiwiV2FkXHUwMTRkICg3MDhcdTIwMTM3MTUpIiwiUmVpa2kgKDcxNVx1MjAxMzcxNykiLCJZXHUwMTRkclx1MDE0ZCAoNzE3XHUyMDEzNzI0KSIs''@;'; + put 'put ''IkppbmtpICg3MjRcdTIwMTM3MjkpIiwiVGVucHlcdTAxNGQgKDcyOVx1MjAxMzc0OSkiLCJUZW5weVx1MDE0ZC1rYW1wXHUwMTRkICg3NDktNzQ5KSIsIlRlbnB5XHUwMTRkLXNoXHUwMTRkaFx1MDE0ZCAoNzQ5LTc1NykiLCJUZW5weVx1MDE0ZC1oXHUwMTRkamkgKDc1Ny03NjUpIiwiVGVu''@;'; + put 'put ''cHlcdTAxNGQtamluZ28gKDc2NS03NjcpIiwiSmluZ28ta2VpdW4gKDc2Ny03NzApIiwiSFx1MDE0ZGtpICg3NzBcdTIwMTM3ODApIiwiVGVuLVx1MDE0ZCAoNzgxLTc4MikiLCJFbnJ5YWt1ICg3ODJcdTIwMTM4MDYpIiwiRGFpZFx1MDE0ZCAoODA2XHUyMDEzODEwKSIsIktcdTAxNGRuaW4g''@;'; + put 'put ''KDgxMFx1MjAxMzgyNCkiLCJUZW5jaFx1MDE0ZCAoODI0XHUyMDEzODM0KSIsIkpcdTAxNGR3YSAoODM0XHUyMDEzODQ4KSIsIkthalx1MDE0ZCAoODQ4XHUyMDEzODUxKSIsIk5pbmp1ICg4NTFcdTIwMTM4NTQpIiwiU2Fpa1x1MDE0ZCAoODU0XHUyMDEzODU3KSIsIlRlbi1hbiAoODU3LTg1''@;'; + put 'put ''OSkiLCJKXHUwMTRkZ2FuICg4NTlcdTIwMTM4NzcpIiwiR2FuZ3lcdTAxNGQgKDg3N1x1MjAxMzg4NSkiLCJOaW5uYSAoODg1XHUyMDEzODg5KSIsIkthbnB5XHUwMTRkICg4ODlcdTIwMTM4OTgpIiwiU2hcdTAxNGR0YWkgKDg5OFx1MjAxMzkwMSkiLCJFbmdpICg5MDFcdTIwMTM5MjMpIiwi''@;'; + put 'put ''RW5jaFx1MDE0ZCAoOTIzXHUyMDEzOTMxKSIsIkpcdTAxNGRoZWkgKDkzMVx1MjAxMzkzOCkiLCJUZW5neVx1MDE0ZCAoOTM4XHUyMDEzOTQ3KSIsIlRlbnJ5YWt1ICg5NDdcdTIwMTM5NTcpIiwiVGVudG9rdSAoOTU3XHUyMDEzOTYxKSIsIlx1MDE0Y3dhICg5NjFcdTIwMTM5NjQpIiwiS1x1''@;'; + put 'put ''MDE0ZGhcdTAxNGQgKDk2NFx1MjAxMzk2OCkiLCJBbm5hICg5NjhcdTIwMTM5NzApIiwiVGVucm9rdSAoOTcwXHUyMDEzOTczKSIsIlRlblx1MjAxOWVuICg5NzNcdTIwMTM5NzYpIiwiSlx1MDE0ZGdlbiAoOTc2XHUyMDEzOTc4KSIsIlRlbmdlbiAoOTc4XHUyMDEzOTgzKSIsIkVpa2FuICg5''@;'; + put 'put ''ODNcdTIwMTM5ODUpIiwiS2FubmEgKDk4NVx1MjAxMzk4NykiLCJFaWVuICg5ODdcdTIwMTM5ODkpIiwiRWlzbyAoOTg5XHUyMDEzOTkwKSIsIlNoXHUwMTRkcnlha3UgKDk5MFx1MjAxMzk5NSkiLCJDaFx1MDE0ZHRva3UgKDk5NVx1MjAxMzk5OSkiLCJDaFx1MDE0ZGhcdTAxNGQgKDk5OVx1''@;'; + put 'put ''MjAxMzEwMDQpIiwiS2Fua1x1MDE0ZCAoMTAwNFx1MjAxMzEwMTIpIiwiQ2hcdTAxNGR3YSAoMTAxMlx1MjAxMzEwMTcpIiwiS2FubmluICgxMDE3XHUyMDEzMTAyMSkiLCJKaWFuICgxMDIxXHUyMDEzMTAyNCkiLCJNYW5qdSAoMTAyNFx1MjAxMzEwMjgpIiwiQ2hcdTAxNGRnZW4gKDEwMjhc''@;'; + put 'put ''dTIwMTMxMDM3KSIsIkNoXHUwMTRkcnlha3UgKDEwMzdcdTIwMTMxMDQwKSIsIkNoXHUwMTRka3lcdTAxNmIgKDEwNDBcdTIwMTMxMDQ0KSIsIkthbnRva3UgKDEwNDRcdTIwMTMxMDQ2KSIsIkVpc2hcdTAxNGQgKDEwNDZcdTIwMTMxMDUzKSIsIlRlbmdpICgxMDUzXHUyMDEzMTA1OCkiLCJL''@;'; + put 'put ''XHUwMTRkaGVpICgxMDU4XHUyMDEzMTA2NSkiLCJKaXJ5YWt1ICgxMDY1XHUyMDEzMTA2OSkiLCJFbmt5XHUwMTZiICgxMDY5XHUyMDEzMTA3NCkiLCJTaFx1MDE0ZGhvICgxMDc0XHUyMDEzMTA3NykiLCJTaFx1MDE0ZHJ5YWt1ICgxMDc3XHUyMDEzMTA4MSkiLCJFaWhcdTAxNGQgKDEwODFc''@;'; + put 'put ''dTIwMTMxMDg0KSIsIlx1MDE0Y3Rva3UgKDEwODRcdTIwMTMxMDg3KSIsIkthbmppICgxMDg3XHUyMDEzMTA5NCkiLCJLYWhcdTAxNGQgKDEwOTRcdTIwMTMxMDk2KSIsIkVpY2hcdTAxNGQgKDEwOTZcdTIwMTMxMDk3KSIsIkpcdTAxNGR0b2t1ICgxMDk3XHUyMDEzMTA5OSkiLCJLXHUwMTRk''@;'; + put 'put ''d2EgKDEwOTlcdTIwMTMxMTA0KSIsIkNoXHUwMTRkamkgKDExMDRcdTIwMTMxMTA2KSIsIkthc2hcdTAxNGQgKDExMDZcdTIwMTMxMTA4KSIsIlRlbm5pbiAoMTEwOFx1MjAxMzExMTApIiwiVGVuLWVpICgxMTEwLTExMTMpIiwiRWlreVx1MDE2YiAoMTExM1x1MjAxMzExMTgpIiwiR2VuXHUy''@;'; + put 'put ''MDE5ZWkgKDExMThcdTIwMTMxMTIwKSIsIkhcdTAxNGRhbiAoMTEyMFx1MjAxMzExMjQpIiwiVGVuamkgKDExMjRcdTIwMTMxMTI2KSIsIkRhaWppICgxMTI2XHUyMDEzMTEzMSkiLCJUZW5zaFx1MDE0ZCAoMTEzMVx1MjAxMzExMzIpIiwiQ2hcdTAxNGRzaFx1MDE0ZCAoMTEzMlx1MjAxMzEx''@;'; + put 'put ''MzUpIiwiSFx1MDE0ZGVuICgxMTM1XHUyMDEzMTE0MSkiLCJFaWppICgxMTQxXHUyMDEzMTE0MikiLCJLXHUwMTRkamkgKDExNDJcdTIwMTMxMTQ0KSIsIlRlblx1MjAxOXlcdTAxNGQgKDExNDRcdTIwMTMxMTQ1KSIsIkt5XHUwMTZiYW4gKDExNDVcdTIwMTMxMTUxKSIsIk5pbnBlaSAoMTE1''@;'; + put 'put ''MVx1MjAxMzExNTQpIiwiS3lcdTAxNmJqdSAoMTE1NFx1MjAxMzExNTYpIiwiSFx1MDE0ZGdlbiAoMTE1Nlx1MjAxMzExNTkpIiwiSGVpamkgKDExNTlcdTIwMTMxMTYwKSIsIkVpcnlha3UgKDExNjBcdTIwMTMxMTYxKSIsIlx1MDE0Y2hvICgxMTYxXHUyMDEzMTE2MykiLCJDaFx1MDE0ZGth''@;'; + put 'put ''biAoMTE2M1x1MjAxMzExNjUpIiwiRWltYW4gKDExNjVcdTIwMTMxMTY2KSIsIk5pblx1MjAxOWFuICgxMTY2XHUyMDEzMTE2OSkiLCJLYVx1MDE0ZCAoMTE2OVx1MjAxMzExNzEpIiwiU2hcdTAxNGRhbiAoMTE3MVx1MjAxMzExNzUpIiwiQW5nZW4gKDExNzVcdTIwMTMxMTc3KSIsIkppc2hc''@;'; + put 'put ''dTAxNGQgKDExNzdcdTIwMTMxMTgxKSIsIllcdTAxNGR3YSAoMTE4MVx1MjAxMzExODIpIiwiSnVlaSAoMTE4Mlx1MjAxMzExODQpIiwiR2Vucnlha3UgKDExODRcdTIwMTMxMTg1KSIsIkJ1bmppICgxMTg1XHUyMDEzMTE5MCkiLCJLZW5reVx1MDE2YiAoMTE5MFx1MjAxMzExOTkpIiwiU2hc''@;'; + put 'put ''dTAxNGRqaSAoMTE5OVx1MjAxMzEyMDEpIiwiS2VubmluICgxMjAxXHUyMDEzMTIwNCkiLCJHZW5reVx1MDE2YiAoMTIwNFx1MjAxMzEyMDYpIiwiS2VuXHUyMDE5ZWkgKDEyMDZcdTIwMTMxMjA3KSIsIkpcdTAxNGRnZW4gKDEyMDdcdTIwMTMxMjExKSIsIktlbnJ5YWt1ICgxMjExXHUyMDEz''@;'; + put 'put ''MTIxMykiLCJLZW5wXHUwMTRkICgxMjEzXHUyMDEzMTIxOSkiLCJKXHUwMTRka3lcdTAxNmIgKDEyMTlcdTIwMTMxMjIyKSIsIkpcdTAxNGRcdTAxNGQgKDEyMjJcdTIwMTMxMjI0KSIsIkdlbm5pbiAoMTIyNFx1MjAxMzEyMjUpIiwiS2Fyb2t1ICgxMjI1XHUyMDEzMTIyNykiLCJBbnRlaSAo''@;'; + put 'put ''MTIyN1x1MjAxMzEyMjkpIiwiS2Fua2kgKDEyMjlcdTIwMTMxMjMyKSIsIkpcdTAxNGRlaSAoMTIzMlx1MjAxMzEyMzMpIiwiVGVucHVrdSAoMTIzM1x1MjAxMzEyMzQpIiwiQnVucnlha3UgKDEyMzRcdTIwMTMxMjM1KSIsIkthdGVpICgxMjM1XHUyMDEzMTIzOCkiLCJSeWFrdW5pbiAoMTIz''@;'; + put 'put ''OFx1MjAxMzEyMzkpIiwiRW5cdTIwMTlcdTAxNGQgKDEyMzlcdTIwMTMxMjQwKSIsIk5pbmppICgxMjQwXHUyMDEzMTI0MykiLCJLYW5nZW4gKDEyNDNcdTIwMTMxMjQ3KSIsIkhcdTAxNGRqaSAoMTI0N1x1MjAxMzEyNDkpIiwiS2VuY2hcdTAxNGQgKDEyNDlcdTIwMTMxMjU2KSIsIktcdTAx''@;'; + put 'put ''NGRnZW4gKDEyNTZcdTIwMTMxMjU3KSIsIlNoXHUwMTRka2EgKDEyNTdcdTIwMTMxMjU5KSIsIlNoXHUwMTRkZ2VuICgxMjU5XHUyMDEzMTI2MCkiLCJCdW5cdTIwMTlcdTAxNGQgKDEyNjBcdTIwMTMxMjYxKSIsIktcdTAxNGRjaFx1MDE0ZCAoMTI2MVx1MjAxMzEyNjQpIiwiQnVuXHUyMDE5''@;'; + put 'put ''ZWkgKDEyNjRcdTIwMTMxMjc1KSIsIktlbmppICgxMjc1XHUyMDEzMTI3OCkiLCJLXHUwMTRkYW4gKDEyNzhcdTIwMTMxMjg4KSIsIlNoXHUwMTRkXHUwMTRkICgxMjg4XHUyMDEzMTI5MykiLCJFaW5pbiAoMTI5M1x1MjAxMzEyOTkpIiwiU2hcdTAxNGRhbiAoMTI5OVx1MjAxMzEzMDIpIiwi''@;'; + put 'put ''S2VuZ2VuICgxMzAyXHUyMDEzMTMwMykiLCJLYWdlbiAoMTMwM1x1MjAxMzEzMDYpIiwiVG9rdWppICgxMzA2XHUyMDEzMTMwOCkiLCJFbmt5XHUwMTRkICgxMzA4XHUyMDEzMTMxMSkiLCJcdTAxNGNjaFx1MDE0ZCAoMTMxMVx1MjAxMzEzMTIpIiwiU2hcdTAxNGR3YSAoMTMxMlx1MjAxMzEz''@;'; + put 'put ''MTcpIiwiQnVucFx1MDE0ZCAoMTMxN1x1MjAxMzEzMTkpIiwiR2VuXHUwMTRkICgxMzE5XHUyMDEzMTMyMSkiLCJHZW5rXHUwMTRkICgxMzIxXHUyMDEzMTMyNCkiLCJTaFx1MDE0ZGNoXHUwMTZiICgxMzI0XHUyMDEzMTMyNikiLCJLYXJ5YWt1ICgxMzI2XHUyMDEzMTMyOSkiLCJHZW50b2t1''@;'; + put 'put ''ICgxMzI5XHUyMDEzMTMzMSkiLCJHZW5rXHUwMTRkICgxMzMxXHUyMDEzMTMzNCkiLCJLZW5tdSAoMTMzNFx1MjAxMzEzMzYpIiwiRW5nZW4gKDEzMzZcdTIwMTMxMzQwKSIsIktcdTAxNGRrb2t1ICgxMzQwXHUyMDEzMTM0NikiLCJTaFx1MDE0ZGhlaSAoMTM0Nlx1MjAxMzEzNzApIiwiS2Vu''@;'; + put 'put ''dG9rdSAoMTM3MFx1MjAxMzEzNzIpIiwiQnVuY2hcdTAxNmIgKDEzNzJcdTIwMTMxMzc1KSIsIlRlbmp1ICgxMzc1XHUyMDEzMTM3OSkiLCJLXHUwMTRkcnlha3UgKDEzNzlcdTIwMTMxMzgxKSIsIktcdTAxNGR3YSAoMTM4MVx1MjAxMzEzODQpIiwiR2VuY2hcdTAxNmIgKDEzODRcdTIwMTMx''@;'; + put 'put ''MzkyKSIsIk1laXRva3UgKDEzODRcdTIwMTMxMzg3KSIsIktha2VpICgxMzg3XHUyMDEzMTM4OSkiLCJLXHUwMTRkXHUwMTRkICgxMzg5XHUyMDEzMTM5MCkiLCJNZWl0b2t1ICgxMzkwXHUyMDEzMTM5NCkiLCJcdTAxNGNlaSAoMTM5NFx1MjAxMzE0MjgpIiwiU2hcdTAxNGRjaFx1MDE0ZCAo''@;'; + put 'put ''MTQyOFx1MjAxMzE0MjkpIiwiRWlreVx1MDE0ZCAoMTQyOVx1MjAxMzE0NDEpIiwiS2FraXRzdSAoMTQ0MVx1MjAxMzE0NDQpIiwiQnVuXHUyMDE5YW4gKDE0NDRcdTIwMTMxNDQ5KSIsIkhcdTAxNGR0b2t1ICgxNDQ5XHUyMDEzMTQ1MikiLCJLeVx1MDE0ZHRva3UgKDE0NTJcdTIwMTMxNDU1''@;'; + put 'put ''KSIsIktcdTAxNGRzaFx1MDE0ZCAoMTQ1NVx1MjAxMzE0NTcpIiwiQ2hcdTAxNGRyb2t1ICgxNDU3XHUyMDEzMTQ2MCkiLCJLYW5zaFx1MDE0ZCAoMTQ2MFx1MjAxMzE0NjYpIiwiQnVuc2hcdTAxNGQgKDE0NjZcdTIwMTMxNDY3KSIsIlx1MDE0Y25pbiAoMTQ2N1x1MjAxMzE0NjkpIiwiQnVu''@;'; + put 'put ''bWVpICgxNDY5XHUyMDEzMTQ4NykiLCJDaFx1MDE0ZGt5XHUwMTRkICgxNDg3XHUyMDEzMTQ4OSkiLCJFbnRva3UgKDE0ODlcdTIwMTMxNDkyKSIsIk1laVx1MDE0ZCAoMTQ5Mlx1MjAxMzE1MDEpIiwiQnVua2kgKDE1MDFcdTIwMTMxNTA0KSIsIkVpc2hcdTAxNGQgKDE1MDRcdTIwMTMxNTIx''@;'; + put 'put ''KSIsIlRhaWVpICgxNTIxXHUyMDEzMTUyOCkiLCJLeVx1MDE0ZHJva3UgKDE1MjhcdTIwMTMxNTMyKSIsIlRlbmJ1biAoMTUzMlx1MjAxMzE1NTUpIiwiS1x1MDE0ZGppICgxNTU1XHUyMDEzMTU1OCkiLCJFaXJva3UgKDE1NThcdTIwMTMxNTcwKSIsIkdlbmtpICgxNTcwXHUyMDEzMTU3Myki''@;'; + put 'put ''LCJUZW5zaFx1MDE0ZCAoMTU3M1x1MjAxMzE1OTIpIiwiQnVucm9rdSAoMTU5Mlx1MjAxMzE1OTYpIiwiS2VpY2hcdTAxNGQgKDE1OTZcdTIwMTMxNjE1KSIsIkdlbm5hICgxNjE1XHUyMDEzMTYyNCkiLCJLYW5cdTIwMTllaSAoMTYyNFx1MjAxMzE2NDQpIiwiU2hcdTAxNGRobyAoMTY0NFx1''@;'; + put 'put ''MjAxMzE2NDgpIiwiS2VpYW4gKDE2NDhcdTIwMTMxNjUyKSIsIkpcdTAxNGRcdTAxNGQgKDE2NTJcdTIwMTMxNjU1KSIsIk1laXJla2kgKDE2NTVcdTIwMTMxNjU4KSIsIk1hbmppICgxNjU4XHUyMDEzMTY2MSkiLCJLYW5idW4gKDE2NjFcdTIwMTMxNjczKSIsIkVucFx1MDE0ZCAoMTY3M1x1''@;'; + put 'put ''MjAxMzE2ODEpIiwiVGVubmEgKDE2ODFcdTIwMTMxNjg0KSIsIkpcdTAxNGRreVx1MDE0ZCAoMTY4NFx1MjAxMzE2ODgpIiwiR2Vucm9rdSAoMTY4OFx1MjAxMzE3MDQpIiwiSFx1MDE0ZGVpICgxNzA0XHUyMDEzMTcxMSkiLCJTaFx1MDE0ZHRva3UgKDE3MTFcdTIwMTMxNzE2KSIsIkt5XHUw''@;'; + put 'put ''MTRkaFx1MDE0ZCAoMTcxNlx1MjAxMzE3MzYpIiwiR2VuYnVuICgxNzM2XHUyMDEzMTc0MSkiLCJLYW5wXHUwMTRkICgxNzQxXHUyMDEzMTc0NCkiLCJFbmt5XHUwMTRkICgxNzQ0XHUyMDEzMTc0OCkiLCJLYW5cdTIwMTllbiAoMTc0OFx1MjAxMzE3NTEpIiwiSFx1MDE0ZHJla2kgKDE3NTFc''@;'; + put 'put ''dTIwMTMxNzY0KSIsIk1laXdhICgxNzY0XHUyMDEzMTc3MikiLCJBblx1MjAxOWVpICgxNzcyXHUyMDEzMTc4MSkiLCJUZW5tZWkgKDE3ODFcdTIwMTMxNzg5KSIsIkthbnNlaSAoMTc4OVx1MjAxMzE4MDEpIiwiS3lcdTAxNGR3YSAoMTgwMVx1MjAxMzE4MDQpIiwiQnVua2EgKDE4MDRcdTIw''@;'; + put 'put ''MTMxODE4KSIsIkJ1bnNlaSAoMTgxOFx1MjAxMzE4MzApIiwiVGVucFx1MDE0ZCAoMTgzMFx1MjAxMzE4NDQpIiwiS1x1MDE0ZGthICgxODQ0XHUyMDEzMTg0OCkiLCJLYWVpICgxODQ4XHUyMDEzMTg1NCkiLCJBbnNlaSAoMTg1NFx1MjAxMzE4NjApIiwiTWFuXHUyMDE5ZW4gKDE4NjBcdTIw''@;'; + put 'put ''MTMxODYxKSIsIkJ1bmt5XHUwMTZiICgxODYxXHUyMDEzMTg2NCkiLCJHZW5qaSAoMTg2NFx1MjAxMzE4NjUpIiwiS2VpXHUwMTRkICgxODY1XHUyMDEzMTg2OCkiLCJNIiwiVCIsIlMiLCJIIl0sInNob3J0IjpbIlRhaWthICg2NDVcdTIwMTM2NTApIiwiSGFrdWNoaSAoNjUwXHUyMDEzNjcx''@;'; + put 'put ''KSIsIkhha3VoXHUwMTRkICg2NzJcdTIwMTM2ODYpIiwiU2h1Y2hcdTAxNGQgKDY4Nlx1MjAxMzcwMSkiLCJUYWloXHUwMTRkICg3MDFcdTIwMTM3MDQpIiwiS2VpdW4gKDcwNFx1MjAxMzcwOCkiLCJXYWRcdTAxNGQgKDcwOFx1MjAxMzcxNSkiLCJSZWlraSAoNzE1XHUyMDEzNzE3KSIsIllc''@;'; + put 'put ''dTAxNGRyXHUwMTRkICg3MTdcdTIwMTM3MjQpIiwiSmlua2kgKDcyNFx1MjAxMzcyOSkiLCJUZW5weVx1MDE0ZCAoNzI5XHUyMDEzNzQ5KSIsIlRlbnB5XHUwMTRkLWthbXBcdTAxNGQgKDc0OS03NDkpIiwiVGVucHlcdTAxNGQtc2hcdTAxNGRoXHUwMTRkICg3NDktNzU3KSIsIlRlbnB5XHUw''@;'; + put 'put ''MTRkLWhcdTAxNGRqaSAoNzU3LTc2NSkiLCJUZW5weVx1MDE0ZC1qaW5nbyAoNzY1LTc2NykiLCJKaW5nby1rZWl1biAoNzY3LTc3MCkiLCJIXHUwMTRka2kgKDc3MFx1MjAxMzc4MCkiLCJUZW4tXHUwMTRkICg3ODEtNzgyKSIsIkVucnlha3UgKDc4Mlx1MjAxMzgwNikiLCJEYWlkXHUwMTRk''@;'; + put 'put ''ICg4MDZcdTIwMTM4MTApIiwiS1x1MDE0ZG5pbiAoODEwXHUyMDEzODI0KSIsIlRlbmNoXHUwMTRkICg4MjRcdTIwMTM4MzQpIiwiSlx1MDE0ZHdhICg4MzRcdTIwMTM4NDgpIiwiS2FqXHUwMTRkICg4NDhcdTIwMTM4NTEpIiwiTmluanUgKDg1MVx1MjAxMzg1NCkiLCJTYWlrXHUwMTRkICg4''@;'; + put 'put ''NTRcdTIwMTM4NTcpIiwiVGVuLWFuICg4NTctODU5KSIsIkpcdTAxNGRnYW4gKDg1OVx1MjAxMzg3NykiLCJHYW5neVx1MDE0ZCAoODc3XHUyMDEzODg1KSIsIk5pbm5hICg4ODVcdTIwMTM4ODkpIiwiS2FucHlcdTAxNGQgKDg4OVx1MjAxMzg5OCkiLCJTaFx1MDE0ZHRhaSAoODk4XHUyMDEz''@;'; + put 'put ''OTAxKSIsIkVuZ2kgKDkwMVx1MjAxMzkyMykiLCJFbmNoXHUwMTRkICg5MjNcdTIwMTM5MzEpIiwiSlx1MDE0ZGhlaSAoOTMxXHUyMDEzOTM4KSIsIlRlbmd5XHUwMTRkICg5MzhcdTIwMTM5NDcpIiwiVGVucnlha3UgKDk0N1x1MjAxMzk1NykiLCJUZW50b2t1ICg5NTdcdTIwMTM5NjEpIiwi''@;'; + put 'put ''XHUwMTRjd2EgKDk2MVx1MjAxMzk2NCkiLCJLXHUwMTRkaFx1MDE0ZCAoOTY0XHUyMDEzOTY4KSIsIkFubmEgKDk2OFx1MjAxMzk3MCkiLCJUZW5yb2t1ICg5NzBcdTIwMTM5NzMpIiwiVGVuXHUyMDE5ZW4gKDk3M1x1MjAxMzk3NikiLCJKXHUwMTRkZ2VuICg5NzZcdTIwMTM5NzgpIiwiVGVu''@;'; + put 'put ''Z2VuICg5NzhcdTIwMTM5ODMpIiwiRWlrYW4gKDk4M1x1MjAxMzk4NSkiLCJLYW5uYSAoOTg1XHUyMDEzOTg3KSIsIkVpZW4gKDk4N1x1MjAxMzk4OSkiLCJFaXNvICg5ODlcdTIwMTM5OTApIiwiU2hcdTAxNGRyeWFrdSAoOTkwXHUyMDEzOTk1KSIsIkNoXHUwMTRkdG9rdSAoOTk1XHUyMDEz''@;'; + put 'put ''OTk5KSIsIkNoXHUwMTRkaFx1MDE0ZCAoOTk5XHUyMDEzMTAwNCkiLCJLYW5rXHUwMTRkICgxMDA0XHUyMDEzMTAxMikiLCJDaFx1MDE0ZHdhICgxMDEyXHUyMDEzMTAxNykiLCJLYW5uaW4gKDEwMTdcdTIwMTMxMDIxKSIsIkppYW4gKDEwMjFcdTIwMTMxMDI0KSIsIk1hbmp1ICgxMDI0XHUy''@;'; + put 'put ''MDEzMTAyOCkiLCJDaFx1MDE0ZGdlbiAoMTAyOFx1MjAxMzEwMzcpIiwiQ2hcdTAxNGRyeWFrdSAoMTAzN1x1MjAxMzEwNDApIiwiQ2hcdTAxNGRreVx1MDE2YiAoMTA0MFx1MjAxMzEwNDQpIiwiS2FudG9rdSAoMTA0NFx1MjAxMzEwNDYpIiwiRWlzaFx1MDE0ZCAoMTA0Nlx1MjAxMzEwNTMp''@;'; + put 'put ''IiwiVGVuZ2kgKDEwNTNcdTIwMTMxMDU4KSIsIktcdTAxNGRoZWkgKDEwNThcdTIwMTMxMDY1KSIsIkppcnlha3UgKDEwNjVcdTIwMTMxMDY5KSIsIkVua3lcdTAxNmIgKDEwNjlcdTIwMTMxMDc0KSIsIlNoXHUwMTRkaG8gKDEwNzRcdTIwMTMxMDc3KSIsIlNoXHUwMTRkcnlha3UgKDEwNzdc''@;'; + put 'put ''dTIwMTMxMDgxKSIsIkVpaFx1MDE0ZCAoMTA4MVx1MjAxMzEwODQpIiwiXHUwMTRjdG9rdSAoMTA4NFx1MjAxMzEwODcpIiwiS2FuamkgKDEwODdcdTIwMTMxMDk0KSIsIkthaFx1MDE0ZCAoMTA5NFx1MjAxMzEwOTYpIiwiRWljaFx1MDE0ZCAoMTA5Nlx1MjAxMzEwOTcpIiwiSlx1MDE0ZHRv''@;'; + put 'put ''a3UgKDEwOTdcdTIwMTMxMDk5KSIsIktcdTAxNGR3YSAoMTA5OVx1MjAxMzExMDQpIiwiQ2hcdTAxNGRqaSAoMTEwNFx1MjAxMzExMDYpIiwiS2FzaFx1MDE0ZCAoMTEwNlx1MjAxMzExMDgpIiwiVGVubmluICgxMTA4XHUyMDEzMTExMCkiLCJUZW4tZWkgKDExMTAtMTExMykiLCJFaWt5XHUw''@;'; + put 'put ''MTZiICgxMTEzXHUyMDEzMTExOCkiLCJHZW5cdTIwMTllaSAoMTExOFx1MjAxMzExMjApIiwiSFx1MDE0ZGFuICgxMTIwXHUyMDEzMTEyNCkiLCJUZW5qaSAoMTEyNFx1MjAxMzExMjYpIiwiRGFpamkgKDExMjZcdTIwMTMxMTMxKSIsIlRlbnNoXHUwMTRkICgxMTMxXHUyMDEzMTEzMikiLCJD''@;'; + put 'put ''aFx1MDE0ZHNoXHUwMTRkICgxMTMyXHUyMDEzMTEzNSkiLCJIXHUwMTRkZW4gKDExMzVcdTIwMTMxMTQxKSIsIkVpamkgKDExNDFcdTIwMTMxMTQyKSIsIktcdTAxNGRqaSAoMTE0Mlx1MjAxMzExNDQpIiwiVGVuXHUyMDE5eVx1MDE0ZCAoMTE0NFx1MjAxMzExNDUpIiwiS3lcdTAxNmJhbiAo''@;'; + put 'put ''MTE0NVx1MjAxMzExNTEpIiwiTmlucGVpICgxMTUxXHUyMDEzMTE1NCkiLCJLeVx1MDE2Ymp1ICgxMTU0XHUyMDEzMTE1NikiLCJIXHUwMTRkZ2VuICgxMTU2XHUyMDEzMTE1OSkiLCJIZWlqaSAoMTE1OVx1MjAxMzExNjApIiwiRWlyeWFrdSAoMTE2MFx1MjAxMzExNjEpIiwiXHUwMTRjaG8g''@;'; + put 'put ''KDExNjFcdTIwMTMxMTYzKSIsIkNoXHUwMTRka2FuICgxMTYzXHUyMDEzMTE2NSkiLCJFaW1hbiAoMTE2NVx1MjAxMzExNjYpIiwiTmluXHUyMDE5YW4gKDExNjZcdTIwMTMxMTY5KSIsIkthXHUwMTRkICgxMTY5XHUyMDEzMTE3MSkiLCJTaFx1MDE0ZGFuICgxMTcxXHUyMDEzMTE3NSkiLCJB''@;'; + put 'put ''bmdlbiAoMTE3NVx1MjAxMzExNzcpIiwiSmlzaFx1MDE0ZCAoMTE3N1x1MjAxMzExODEpIiwiWVx1MDE0ZHdhICgxMTgxXHUyMDEzMTE4MikiLCJKdWVpICgxMTgyXHUyMDEzMTE4NCkiLCJHZW5yeWFrdSAoMTE4NFx1MjAxMzExODUpIiwiQnVuamkgKDExODVcdTIwMTMxMTkwKSIsIktlbmt5''@;'; + put 'put ''XHUwMTZiICgxMTkwXHUyMDEzMTE5OSkiLCJTaFx1MDE0ZGppICgxMTk5XHUyMDEzMTIwMSkiLCJLZW5uaW4gKDEyMDFcdTIwMTMxMjA0KSIsIkdlbmt5XHUwMTZiICgxMjA0XHUyMDEzMTIwNikiLCJLZW5cdTIwMTllaSAoMTIwNlx1MjAxMzEyMDcpIiwiSlx1MDE0ZGdlbiAoMTIwN1x1MjAx''@;'; + put 'put ''MzEyMTEpIiwiS2Vucnlha3UgKDEyMTFcdTIwMTMxMjEzKSIsIktlbnBcdTAxNGQgKDEyMTNcdTIwMTMxMjE5KSIsIkpcdTAxNGRreVx1MDE2YiAoMTIxOVx1MjAxMzEyMjIpIiwiSlx1MDE0ZFx1MDE0ZCAoMTIyMlx1MjAxMzEyMjQpIiwiR2VubmluICgxMjI0XHUyMDEzMTIyNSkiLCJLYXJv''@;'; + put 'put ''a3UgKDEyMjVcdTIwMTMxMjI3KSIsIkFudGVpICgxMjI3XHUyMDEzMTIyOSkiLCJLYW5raSAoMTIyOVx1MjAxMzEyMzIpIiwiSlx1MDE0ZGVpICgxMjMyXHUyMDEzMTIzMykiLCJUZW5wdWt1ICgxMjMzXHUyMDEzMTIzNCkiLCJCdW5yeWFrdSAoMTIzNFx1MjAxMzEyMzUpIiwiS2F0ZWkgKDEy''@;'; + put 'put ''MzVcdTIwMTMxMjM4KSIsIlJ5YWt1bmluICgxMjM4XHUyMDEzMTIzOSkiLCJFblx1MjAxOVx1MDE0ZCAoMTIzOVx1MjAxMzEyNDApIiwiTmluamkgKDEyNDBcdTIwMTMxMjQzKSIsIkthbmdlbiAoMTI0M1x1MjAxMzEyNDcpIiwiSFx1MDE0ZGppICgxMjQ3XHUyMDEzMTI0OSkiLCJLZW5jaFx1''@;'; + put 'put ''MDE0ZCAoMTI0OVx1MjAxMzEyNTYpIiwiS1x1MDE0ZGdlbiAoMTI1Nlx1MjAxMzEyNTcpIiwiU2hcdTAxNGRrYSAoMTI1N1x1MjAxMzEyNTkpIiwiU2hcdTAxNGRnZW4gKDEyNTlcdTIwMTMxMjYwKSIsIkJ1blx1MjAxOVx1MDE0ZCAoMTI2MFx1MjAxMzEyNjEpIiwiS1x1MDE0ZGNoXHUwMTRk''@;'; + put 'put ''ICgxMjYxXHUyMDEzMTI2NCkiLCJCdW5cdTIwMTllaSAoMTI2NFx1MjAxMzEyNzUpIiwiS2VuamkgKDEyNzVcdTIwMTMxMjc4KSIsIktcdTAxNGRhbiAoMTI3OFx1MjAxMzEyODgpIiwiU2hcdTAxNGRcdTAxNGQgKDEyODhcdTIwMTMxMjkzKSIsIkVpbmluICgxMjkzXHUyMDEzMTI5OSkiLCJT''@;'; + put 'put ''aFx1MDE0ZGFuICgxMjk5XHUyMDEzMTMwMikiLCJLZW5nZW4gKDEzMDJcdTIwMTMxMzAzKSIsIkthZ2VuICgxMzAzXHUyMDEzMTMwNikiLCJUb2t1amkgKDEzMDZcdTIwMTMxMzA4KSIsIkVua3lcdTAxNGQgKDEzMDhcdTIwMTMxMzExKSIsIlx1MDE0Y2NoXHUwMTRkICgxMzExXHUyMDEzMTMx''@;'; + put 'put ''MikiLCJTaFx1MDE0ZHdhICgxMzEyXHUyMDEzMTMxNykiLCJCdW5wXHUwMTRkICgxMzE3XHUyMDEzMTMxOSkiLCJHZW5cdTAxNGQgKDEzMTlcdTIwMTMxMzIxKSIsIkdlbmtcdTAxNGQgKDEzMjFcdTIwMTMxMzI0KSIsIlNoXHUwMTRkY2hcdTAxNmIgKDEzMjRcdTIwMTMxMzI2KSIsIkthcnlh''@;'; + put 'put ''a3UgKDEzMjZcdTIwMTMxMzI5KSIsIkdlbnRva3UgKDEzMjlcdTIwMTMxMzMxKSIsIkdlbmtcdTAxNGQgKDEzMzFcdTIwMTMxMzM0KSIsIktlbm11ICgxMzM0XHUyMDEzMTMzNikiLCJFbmdlbiAoMTMzNlx1MjAxMzEzNDApIiwiS1x1MDE0ZGtva3UgKDEzNDBcdTIwMTMxMzQ2KSIsIlNoXHUw''@;'; + put 'put ''MTRkaGVpICgxMzQ2XHUyMDEzMTM3MCkiLCJLZW50b2t1ICgxMzcwXHUyMDEzMTM3MikiLCJCdW5jaFx1MDE2YiAoMTM3Mlx1MjAxMzEzNzUpIiwiVGVuanUgKDEzNzVcdTIwMTMxMzc5KSIsIktcdTAxNGRyeWFrdSAoMTM3OVx1MjAxMzEzODEpIiwiS1x1MDE0ZHdhICgxMzgxXHUyMDEzMTM4''@;'; + put 'put ''NCkiLCJHZW5jaFx1MDE2YiAoMTM4NFx1MjAxMzEzOTIpIiwiTWVpdG9rdSAoMTM4NFx1MjAxMzEzODcpIiwiS2FrZWkgKDEzODdcdTIwMTMxMzg5KSIsIktcdTAxNGRcdTAxNGQgKDEzODlcdTIwMTMxMzkwKSIsIk1laXRva3UgKDEzOTBcdTIwMTMxMzk0KSIsIlx1MDE0Y2VpICgxMzk0XHUy''@;'; + put 'put ''MDEzMTQyOCkiLCJTaFx1MDE0ZGNoXHUwMTRkICgxNDI4XHUyMDEzMTQyOSkiLCJFaWt5XHUwMTRkICgxNDI5XHUyMDEzMTQ0MSkiLCJLYWtpdHN1ICgxNDQxXHUyMDEzMTQ0NCkiLCJCdW5cdTIwMTlhbiAoMTQ0NFx1MjAxMzE0NDkpIiwiSFx1MDE0ZHRva3UgKDE0NDlcdTIwMTMxNDUyKSIs''@;'; + put 'put ''Ikt5XHUwMTRkdG9rdSAoMTQ1Mlx1MjAxMzE0NTUpIiwiS1x1MDE0ZHNoXHUwMTRkICgxNDU1XHUyMDEzMTQ1NykiLCJDaFx1MDE0ZHJva3UgKDE0NTdcdTIwMTMxNDYwKSIsIkthbnNoXHUwMTRkICgxNDYwXHUyMDEzMTQ2NikiLCJCdW5zaFx1MDE0ZCAoMTQ2Nlx1MjAxMzE0NjcpIiwiXHUw''@;'; + put 'put ''MTRjbmluICgxNDY3XHUyMDEzMTQ2OSkiLCJCdW5tZWkgKDE0NjlcdTIwMTMxNDg3KSIsIkNoXHUwMTRka3lcdTAxNGQgKDE0ODdcdTIwMTMxNDg5KSIsIkVudG9rdSAoMTQ4OVx1MjAxMzE0OTIpIiwiTWVpXHUwMTRkICgxNDkyXHUyMDEzMTUwMSkiLCJCdW5raSAoMTUwMVx1MjAxMzE1MDQp''@;'; + put 'put ''IiwiRWlzaFx1MDE0ZCAoMTUwNFx1MjAxMzE1MjEpIiwiVGFpZWkgKDE1MjFcdTIwMTMxNTI4KSIsIkt5XHUwMTRkcm9rdSAoMTUyOFx1MjAxMzE1MzIpIiwiVGVuYnVuICgxNTMyXHUyMDEzMTU1NSkiLCJLXHUwMTRkamkgKDE1NTVcdTIwMTMxNTU4KSIsIkVpcm9rdSAoMTU1OFx1MjAxMzE1''@;'; + put 'put ''NzApIiwiR2Vua2kgKDE1NzBcdTIwMTMxNTczKSIsIlRlbnNoXHUwMTRkICgxNTczXHUyMDEzMTU5MikiLCJCdW5yb2t1ICgxNTkyXHUyMDEzMTU5NikiLCJLZWljaFx1MDE0ZCAoMTU5Nlx1MjAxMzE2MTUpIiwiR2VubmEgKDE2MTVcdTIwMTMxNjI0KSIsIkthblx1MjAxOWVpICgxNjI0XHUy''@;'; + put 'put ''MDEzMTY0NCkiLCJTaFx1MDE0ZGhvICgxNjQ0XHUyMDEzMTY0OCkiLCJLZWlhbiAoMTY0OFx1MjAxMzE2NTIpIiwiSlx1MDE0ZFx1MDE0ZCAoMTY1Mlx1MjAxMzE2NTUpIiwiTWVpcmVraSAoMTY1NVx1MjAxMzE2NTgpIiwiTWFuamkgKDE2NThcdTIwMTMxNjYxKSIsIkthbmJ1biAoMTY2MVx1''@;'; + put 'put ''MjAxMzE2NzMpIiwiRW5wXHUwMTRkICgxNjczXHUyMDEzMTY4MSkiLCJUZW5uYSAoMTY4MVx1MjAxMzE2ODQpIiwiSlx1MDE0ZGt5XHUwMTRkICgxNjg0XHUyMDEzMTY4OCkiLCJHZW5yb2t1ICgxNjg4XHUyMDEzMTcwNCkiLCJIXHUwMTRkZWkgKDE3MDRcdTIwMTMxNzExKSIsIlNoXHUwMTRk''@;'; + put 'put ''dG9rdSAoMTcxMVx1MjAxMzE3MTYpIiwiS3lcdTAxNGRoXHUwMTRkICgxNzE2XHUyMDEzMTczNikiLCJHZW5idW4gKDE3MzZcdTIwMTMxNzQxKSIsIkthbnBcdTAxNGQgKDE3NDFcdTIwMTMxNzQ0KSIsIkVua3lcdTAxNGQgKDE3NDRcdTIwMTMxNzQ4KSIsIkthblx1MjAxOWVuICgxNzQ4XHUy''@;'; + put 'put ''MDEzMTc1MSkiLCJIXHUwMTRkcmVraSAoMTc1MVx1MjAxMzE3NjQpIiwiTWVpd2EgKDE3NjRcdTIwMTMxNzcyKSIsIkFuXHUyMDE5ZWkgKDE3NzJcdTIwMTMxNzgxKSIsIlRlbm1laSAoMTc4MVx1MjAxMzE3ODkpIiwiS2Fuc2VpICgxNzg5XHUyMDEzMTgwMSkiLCJLeVx1MDE0ZHdhICgxODAx''@;'; + put 'put ''XHUyMDEzMTgwNCkiLCJCdW5rYSAoMTgwNFx1MjAxMzE4MTgpIiwiQnVuc2VpICgxODE4XHUyMDEzMTgzMCkiLCJUZW5wXHUwMTRkICgxODMwXHUyMDEzMTg0NCkiLCJLXHUwMTRka2EgKDE4NDRcdTIwMTMxODQ4KSIsIkthZWkgKDE4NDhcdTIwMTMxODU0KSIsIkFuc2VpICgxODU0XHUyMDEz''@;'; + put 'put ''MTg2MCkiLCJNYW5cdTIwMTllbiAoMTg2MFx1MjAxMzE4NjEpIiwiQnVua3lcdTAxNmIgKDE4NjFcdTIwMTMxODY0KSIsIkdlbmppICgxODY0XHUyMDEzMTg2NSkiLCJLZWlcdTAxNGQgKDE4NjVcdTIwMTMxODY4KSIsIk1laWppIiwiVGFpc2hcdTAxNGQiLCJTaFx1MDE0ZHdhIiwiSGVpc2Vp''@;'; + put 'put ''Il0sImxvbmciOlsiVGFpa2EgKDY0NVx1MjAxMzY1MCkiLCJIYWt1Y2hpICg2NTBcdTIwMTM2NzEpIiwiSGFrdWhcdTAxNGQgKDY3Mlx1MjAxMzY4NikiLCJTaHVjaFx1MDE0ZCAoNjg2XHUyMDEzNzAxKSIsIlRhaWhcdTAxNGQgKDcwMVx1MjAxMzcwNCkiLCJLZWl1biAoNzA0XHUyMDEzNzA4''@;'; + put 'put ''KSIsIldhZFx1MDE0ZCAoNzA4XHUyMDEzNzE1KSIsIlJlaWtpICg3MTVcdTIwMTM3MTcpIiwiWVx1MDE0ZHJcdTAxNGQgKDcxN1x1MjAxMzcyNCkiLCJKaW5raSAoNzI0XHUyMDEzNzI5KSIsIlRlbnB5XHUwMTRkICg3MjlcdTIwMTM3NDkpIiwiVGVucHlcdTAxNGQta2FtcFx1MDE0ZCAoNzQ5''@;'; + put 'put ''LTc0OSkiLCJUZW5weVx1MDE0ZC1zaFx1MDE0ZGhcdTAxNGQgKDc0OS03NTcpIiwiVGVucHlcdTAxNGQtaFx1MDE0ZGppICg3NTctNzY1KSIsIlRlbnB5XHUwMTRkLWppbmdvICg3NjUtNzY3KSIsIkppbmdvLWtlaXVuICg3NjctNzcwKSIsIkhcdTAxNGRraSAoNzcwXHUyMDEzNzgwKSIsIlRl''@;'; + put 'put ''bi1cdTAxNGQgKDc4MS03ODIpIiwiRW5yeWFrdSAoNzgyXHUyMDEzODA2KSIsIkRhaWRcdTAxNGQgKDgwNlx1MjAxMzgxMCkiLCJLXHUwMTRkbmluICg4MTBcdTIwMTM4MjQpIiwiVGVuY2hcdTAxNGQgKDgyNFx1MjAxMzgzNCkiLCJKXHUwMTRkd2EgKDgzNFx1MjAxMzg0OCkiLCJLYWpcdTAx''@;'; + put 'put ''NGQgKDg0OFx1MjAxMzg1MSkiLCJOaW5qdSAoODUxXHUyMDEzODU0KSIsIlNhaWtcdTAxNGQgKDg1NFx1MjAxMzg1NykiLCJUZW4tYW4gKDg1Ny04NTkpIiwiSlx1MDE0ZGdhbiAoODU5XHUyMDEzODc3KSIsIkdhbmd5XHUwMTRkICg4NzdcdTIwMTM4ODUpIiwiTmlubmEgKDg4NVx1MjAxMzg4''@;'; + put 'put ''OSkiLCJLYW5weVx1MDE0ZCAoODg5XHUyMDEzODk4KSIsIlNoXHUwMTRkdGFpICg4OThcdTIwMTM5MDEpIiwiRW5naSAoOTAxXHUyMDEzOTIzKSIsIkVuY2hcdTAxNGQgKDkyM1x1MjAxMzkzMSkiLCJKXHUwMTRkaGVpICg5MzFcdTIwMTM5MzgpIiwiVGVuZ3lcdTAxNGQgKDkzOFx1MjAxMzk0''@;'; + put 'put ''NykiLCJUZW5yeWFrdSAoOTQ3XHUyMDEzOTU3KSIsIlRlbnRva3UgKDk1N1x1MjAxMzk2MSkiLCJcdTAxNGN3YSAoOTYxXHUyMDEzOTY0KSIsIktcdTAxNGRoXHUwMTRkICg5NjRcdTIwMTM5NjgpIiwiQW5uYSAoOTY4XHUyMDEzOTcwKSIsIlRlbnJva3UgKDk3MFx1MjAxMzk3MykiLCJUZW5c''@;'; + put 'put ''dTIwMTllbiAoOTczXHUyMDEzOTc2KSIsIkpcdTAxNGRnZW4gKDk3Nlx1MjAxMzk3OCkiLCJUZW5nZW4gKDk3OFx1MjAxMzk4MykiLCJFaWthbiAoOTgzXHUyMDEzOTg1KSIsIkthbm5hICg5ODVcdTIwMTM5ODcpIiwiRWllbiAoOTg3XHUyMDEzOTg5KSIsIkVpc28gKDk4OVx1MjAxMzk5MCki''@;'; + put 'put ''LCJTaFx1MDE0ZHJ5YWt1ICg5OTBcdTIwMTM5OTUpIiwiQ2hcdTAxNGR0b2t1ICg5OTVcdTIwMTM5OTkpIiwiQ2hcdTAxNGRoXHUwMTRkICg5OTlcdTIwMTMxMDA0KSIsIkthbmtcdTAxNGQgKDEwMDRcdTIwMTMxMDEyKSIsIkNoXHUwMTRkd2EgKDEwMTJcdTIwMTMxMDE3KSIsIkthbm5pbiAo''@;'; + put 'put ''MTAxN1x1MjAxMzEwMjEpIiwiSmlhbiAoMTAyMVx1MjAxMzEwMjQpIiwiTWFuanUgKDEwMjRcdTIwMTMxMDI4KSIsIkNoXHUwMTRkZ2VuICgxMDI4XHUyMDEzMTAzNykiLCJDaFx1MDE0ZHJ5YWt1ICgxMDM3XHUyMDEzMTA0MCkiLCJDaFx1MDE0ZGt5XHUwMTZiICgxMDQwXHUyMDEzMTA0NCki''@;'; + put 'put ''LCJLYW50b2t1ICgxMDQ0XHUyMDEzMTA0NikiLCJFaXNoXHUwMTRkICgxMDQ2XHUyMDEzMTA1MykiLCJUZW5naSAoMTA1M1x1MjAxMzEwNTgpIiwiS1x1MDE0ZGhlaSAoMTA1OFx1MjAxMzEwNjUpIiwiSmlyeWFrdSAoMTA2NVx1MjAxMzEwNjkpIiwiRW5reVx1MDE2YiAoMTA2OVx1MjAxMzEw''@;'; + put 'put ''NzQpIiwiU2hcdTAxNGRobyAoMTA3NFx1MjAxMzEwNzcpIiwiU2hcdTAxNGRyeWFrdSAoMTA3N1x1MjAxMzEwODEpIiwiRWloXHUwMTRkICgxMDgxXHUyMDEzMTA4NCkiLCJcdTAxNGN0b2t1ICgxMDg0XHUyMDEzMTA4NykiLCJLYW5qaSAoMTA4N1x1MjAxMzEwOTQpIiwiS2FoXHUwMTRkICgx''@;'; + put 'put ''MDk0XHUyMDEzMTA5NikiLCJFaWNoXHUwMTRkICgxMDk2XHUyMDEzMTA5NykiLCJKXHUwMTRkdG9rdSAoMTA5N1x1MjAxMzEwOTkpIiwiS1x1MDE0ZHdhICgxMDk5XHUyMDEzMTEwNCkiLCJDaFx1MDE0ZGppICgxMTA0XHUyMDEzMTEwNikiLCJLYXNoXHUwMTRkICgxMTA2XHUyMDEzMTEwOCki''@;'; + put 'put ''LCJUZW5uaW4gKDExMDhcdTIwMTMxMTEwKSIsIlRlbi1laSAoMTExMC0xMTEzKSIsIkVpa3lcdTAxNmIgKDExMTNcdTIwMTMxMTE4KSIsIkdlblx1MjAxOWVpICgxMTE4XHUyMDEzMTEyMCkiLCJIXHUwMTRkYW4gKDExMjBcdTIwMTMxMTI0KSIsIlRlbmppICgxMTI0XHUyMDEzMTEyNikiLCJE''@;'; + put 'put ''YWlqaSAoMTEyNlx1MjAxMzExMzEpIiwiVGVuc2hcdTAxNGQgKDExMzFcdTIwMTMxMTMyKSIsIkNoXHUwMTRkc2hcdTAxNGQgKDExMzJcdTIwMTMxMTM1KSIsIkhcdTAxNGRlbiAoMTEzNVx1MjAxMzExNDEpIiwiRWlqaSAoMTE0MVx1MjAxMzExNDIpIiwiS1x1MDE0ZGppICgxMTQyXHUyMDEz''@;'; + put 'put ''MTE0NCkiLCJUZW5cdTIwMTl5XHUwMTRkICgxMTQ0XHUyMDEzMTE0NSkiLCJLeVx1MDE2YmFuICgxMTQ1XHUyMDEzMTE1MSkiLCJOaW5wZWkgKDExNTFcdTIwMTMxMTU0KSIsIkt5XHUwMTZianUgKDExNTRcdTIwMTMxMTU2KSIsIkhcdTAxNGRnZW4gKDExNTZcdTIwMTMxMTU5KSIsIkhlaWpp''@;'; + put 'put ''ICgxMTU5XHUyMDEzMTE2MCkiLCJFaXJ5YWt1ICgxMTYwXHUyMDEzMTE2MSkiLCJcdTAxNGNobyAoMTE2MVx1MjAxMzExNjMpIiwiQ2hcdTAxNGRrYW4gKDExNjNcdTIwMTMxMTY1KSIsIkVpbWFuICgxMTY1XHUyMDEzMTE2NikiLCJOaW5cdTIwMTlhbiAoMTE2Nlx1MjAxMzExNjkpIiwiS2Fc''@;'; + put 'put ''dTAxNGQgKDExNjlcdTIwMTMxMTcxKSIsIlNoXHUwMTRkYW4gKDExNzFcdTIwMTMxMTc1KSIsIkFuZ2VuICgxMTc1XHUyMDEzMTE3NykiLCJKaXNoXHUwMTRkICgxMTc3XHUyMDEzMTE4MSkiLCJZXHUwMTRkd2EgKDExODFcdTIwMTMxMTgyKSIsIkp1ZWkgKDExODJcdTIwMTMxMTg0KSIsIkdl''@;'; + put 'put ''bnJ5YWt1ICgxMTg0XHUyMDEzMTE4NSkiLCJCdW5qaSAoMTE4NVx1MjAxMzExOTApIiwiS2Vua3lcdTAxNmIgKDExOTBcdTIwMTMxMTk5KSIsIlNoXHUwMTRkamkgKDExOTlcdTIwMTMxMjAxKSIsIktlbm5pbiAoMTIwMVx1MjAxMzEyMDQpIiwiR2Vua3lcdTAxNmIgKDEyMDRcdTIwMTMxMjA2''@;'; + put 'put ''KSIsIktlblx1MjAxOWVpICgxMjA2XHUyMDEzMTIwNykiLCJKXHUwMTRkZ2VuICgxMjA3XHUyMDEzMTIxMSkiLCJLZW5yeWFrdSAoMTIxMVx1MjAxMzEyMTMpIiwiS2VucFx1MDE0ZCAoMTIxM1x1MjAxMzEyMTkpIiwiSlx1MDE0ZGt5XHUwMTZiICgxMjE5XHUyMDEzMTIyMikiLCJKXHUwMTRk''@;'; + put 'put ''XHUwMTRkICgxMjIyXHUyMDEzMTIyNCkiLCJHZW5uaW4gKDEyMjRcdTIwMTMxMjI1KSIsIkthcm9rdSAoMTIyNVx1MjAxMzEyMjcpIiwiQW50ZWkgKDEyMjdcdTIwMTMxMjI5KSIsIkthbmtpICgxMjI5XHUyMDEzMTIzMikiLCJKXHUwMTRkZWkgKDEyMzJcdTIwMTMxMjMzKSIsIlRlbnB1a3Ug''@;'; + put 'put ''KDEyMzNcdTIwMTMxMjM0KSIsIkJ1bnJ5YWt1ICgxMjM0XHUyMDEzMTIzNSkiLCJLYXRlaSAoMTIzNVx1MjAxMzEyMzgpIiwiUnlha3VuaW4gKDEyMzhcdTIwMTMxMjM5KSIsIkVuXHUyMDE5XHUwMTRkICgxMjM5XHUyMDEzMTI0MCkiLCJOaW5qaSAoMTI0MFx1MjAxMzEyNDMpIiwiS2FuZ2Vu''@;'; + put 'put ''ICgxMjQzXHUyMDEzMTI0NykiLCJIXHUwMTRkamkgKDEyNDdcdTIwMTMxMjQ5KSIsIktlbmNoXHUwMTRkICgxMjQ5XHUyMDEzMTI1NikiLCJLXHUwMTRkZ2VuICgxMjU2XHUyMDEzMTI1NykiLCJTaFx1MDE0ZGthICgxMjU3XHUyMDEzMTI1OSkiLCJTaFx1MDE0ZGdlbiAoMTI1OVx1MjAxMzEy''@;'; + put 'put ''NjApIiwiQnVuXHUyMDE5XHUwMTRkICgxMjYwXHUyMDEzMTI2MSkiLCJLXHUwMTRkY2hcdTAxNGQgKDEyNjFcdTIwMTMxMjY0KSIsIkJ1blx1MjAxOWVpICgxMjY0XHUyMDEzMTI3NSkiLCJLZW5qaSAoMTI3NVx1MjAxMzEyNzgpIiwiS1x1MDE0ZGFuICgxMjc4XHUyMDEzMTI4OCkiLCJTaFx1''@;'; + put 'put ''MDE0ZFx1MDE0ZCAoMTI4OFx1MjAxMzEyOTMpIiwiRWluaW4gKDEyOTNcdTIwMTMxMjk5KSIsIlNoXHUwMTRkYW4gKDEyOTlcdTIwMTMxMzAyKSIsIktlbmdlbiAoMTMwMlx1MjAxMzEzMDMpIiwiS2FnZW4gKDEzMDNcdTIwMTMxMzA2KSIsIlRva3VqaSAoMTMwNlx1MjAxMzEzMDgpIiwiRW5r''@;'; + put 'put ''eVx1MDE0ZCAoMTMwOFx1MjAxMzEzMTEpIiwiXHUwMTRjY2hcdTAxNGQgKDEzMTFcdTIwMTMxMzEyKSIsIlNoXHUwMTRkd2EgKDEzMTJcdTIwMTMxMzE3KSIsIkJ1bnBcdTAxNGQgKDEzMTdcdTIwMTMxMzE5KSIsIkdlblx1MDE0ZCAoMTMxOVx1MjAxMzEzMjEpIiwiR2Vua1x1MDE0ZCAoMTMy''@;'; + put 'put ''MVx1MjAxMzEzMjQpIiwiU2hcdTAxNGRjaFx1MDE2YiAoMTMyNFx1MjAxMzEzMjYpIiwiS2FyeWFrdSAoMTMyNlx1MjAxMzEzMjkpIiwiR2VudG9rdSAoMTMyOVx1MjAxMzEzMzEpIiwiR2Vua1x1MDE0ZCAoMTMzMVx1MjAxMzEzMzQpIiwiS2VubXUgKDEzMzRcdTIwMTMxMzM2KSIsIkVuZ2Vu''@;'; + put 'put ''ICgxMzM2XHUyMDEzMTM0MCkiLCJLXHUwMTRka29rdSAoMTM0MFx1MjAxMzEzNDYpIiwiU2hcdTAxNGRoZWkgKDEzNDZcdTIwMTMxMzcwKSIsIktlbnRva3UgKDEzNzBcdTIwMTMxMzcyKSIsIkJ1bmNoXHUwMTZiICgxMzcyXHUyMDEzMTM3NSkiLCJUZW5qdSAoMTM3NVx1MjAxMzEzNzkpIiwi''@;'; + put 'put ''S1x1MDE0ZHJ5YWt1ICgxMzc5XHUyMDEzMTM4MSkiLCJLXHUwMTRkd2EgKDEzODFcdTIwMTMxMzg0KSIsIkdlbmNoXHUwMTZiICgxMzg0XHUyMDEzMTM5MikiLCJNZWl0b2t1ICgxMzg0XHUyMDEzMTM4NykiLCJLYWtlaSAoMTM4N1x1MjAxMzEzODkpIiwiS1x1MDE0ZFx1MDE0ZCAoMTM4OVx1''@;'; + put 'put ''MjAxMzEzOTApIiwiTWVpdG9rdSAoMTM5MFx1MjAxMzEzOTQpIiwiXHUwMTRjZWkgKDEzOTRcdTIwMTMxNDI4KSIsIlNoXHUwMTRkY2hcdTAxNGQgKDE0MjhcdTIwMTMxNDI5KSIsIkVpa3lcdTAxNGQgKDE0MjlcdTIwMTMxNDQxKSIsIktha2l0c3UgKDE0NDFcdTIwMTMxNDQ0KSIsIkJ1blx1''@;'; + put 'put ''MjAxOWFuICgxNDQ0XHUyMDEzMTQ0OSkiLCJIXHUwMTRkdG9rdSAoMTQ0OVx1MjAxMzE0NTIpIiwiS3lcdTAxNGR0b2t1ICgxNDUyXHUyMDEzMTQ1NSkiLCJLXHUwMTRkc2hcdTAxNGQgKDE0NTVcdTIwMTMxNDU3KSIsIkNoXHUwMTRkcm9rdSAoMTQ1N1x1MjAxMzE0NjApIiwiS2Fuc2hcdTAx''@;'; + put 'put ''NGQgKDE0NjBcdTIwMTMxNDY2KSIsIkJ1bnNoXHUwMTRkICgxNDY2XHUyMDEzMTQ2NykiLCJcdTAxNGNuaW4gKDE0NjdcdTIwMTMxNDY5KSIsIkJ1bm1laSAoMTQ2OVx1MjAxMzE0ODcpIiwiQ2hcdTAxNGRreVx1MDE0ZCAoMTQ4N1x1MjAxMzE0ODkpIiwiRW50b2t1ICgxNDg5XHUyMDEzMTQ5''@;'; + put 'put ''MikiLCJNZWlcdTAxNGQgKDE0OTJcdTIwMTMxNTAxKSIsIkJ1bmtpICgxNTAxXHUyMDEzMTUwNCkiLCJFaXNoXHUwMTRkICgxNTA0XHUyMDEzMTUyMSkiLCJUYWllaSAoMTUyMVx1MjAxMzE1MjgpIiwiS3lcdTAxNGRyb2t1ICgxNTI4XHUyMDEzMTUzMikiLCJUZW5idW4gKDE1MzJcdTIwMTMx''@;'; + put 'put ''NTU1KSIsIktcdTAxNGRqaSAoMTU1NVx1MjAxMzE1NTgpIiwiRWlyb2t1ICgxNTU4XHUyMDEzMTU3MCkiLCJHZW5raSAoMTU3MFx1MjAxMzE1NzMpIiwiVGVuc2hcdTAxNGQgKDE1NzNcdTIwMTMxNTkyKSIsIkJ1bnJva3UgKDE1OTJcdTIwMTMxNTk2KSIsIktlaWNoXHUwMTRkICgxNTk2XHUy''@;'; + put 'put ''MDEzMTYxNSkiLCJHZW5uYSAoMTYxNVx1MjAxMzE2MjQpIiwiS2FuXHUyMDE5ZWkgKDE2MjRcdTIwMTMxNjQ0KSIsIlNoXHUwMTRkaG8gKDE2NDRcdTIwMTMxNjQ4KSIsIktlaWFuICgxNjQ4XHUyMDEzMTY1MikiLCJKXHUwMTRkXHUwMTRkICgxNjUyXHUyMDEzMTY1NSkiLCJNZWlyZWtpICgx''@;'; + put 'put ''NjU1XHUyMDEzMTY1OCkiLCJNYW5qaSAoMTY1OFx1MjAxMzE2NjEpIiwiS2FuYnVuICgxNjYxXHUyMDEzMTY3MykiLCJFbnBcdTAxNGQgKDE2NzNcdTIwMTMxNjgxKSIsIlRlbm5hICgxNjgxXHUyMDEzMTY4NCkiLCJKXHUwMTRka3lcdTAxNGQgKDE2ODRcdTIwMTMxNjg4KSIsIkdlbnJva3Ug''@;'; + put 'put ''KDE2ODhcdTIwMTMxNzA0KSIsIkhcdTAxNGRlaSAoMTcwNFx1MjAxMzE3MTEpIiwiU2hcdTAxNGR0b2t1ICgxNzExXHUyMDEzMTcxNikiLCJLeVx1MDE0ZGhcdTAxNGQgKDE3MTZcdTIwMTMxNzM2KSIsIkdlbmJ1biAoMTczNlx1MjAxMzE3NDEpIiwiS2FucFx1MDE0ZCAoMTc0MVx1MjAxMzE3''@;'; + put 'put ''NDQpIiwiRW5reVx1MDE0ZCAoMTc0NFx1MjAxMzE3NDgpIiwiS2FuXHUyMDE5ZW4gKDE3NDhcdTIwMTMxNzUxKSIsIkhcdTAxNGRyZWtpICgxNzUxXHUyMDEzMTc2NCkiLCJNZWl3YSAoMTc2NFx1MjAxMzE3NzIpIiwiQW5cdTIwMTllaSAoMTc3Mlx1MjAxMzE3ODEpIiwiVGVubWVpICgxNzgx''@;'; + put 'put ''XHUyMDEzMTc4OSkiLCJLYW5zZWkgKDE3ODlcdTIwMTMxODAxKSIsIkt5XHUwMTRkd2EgKDE4MDFcdTIwMTMxODA0KSIsIkJ1bmthICgxODA0XHUyMDEzMTgxOCkiLCJCdW5zZWkgKDE4MThcdTIwMTMxODMwKSIsIlRlbnBcdTAxNGQgKDE4MzBcdTIwMTMxODQ0KSIsIktcdTAxNGRrYSAoMTg0''@;'; + put 'put ''NFx1MjAxMzE4NDgpIiwiS2FlaSAoMTg0OFx1MjAxMzE4NTQpIiwiQW5zZWkgKDE4NTRcdTIwMTMxODYwKSIsIk1hblx1MjAxOWVuICgxODYwXHUyMDEzMTg2MSkiLCJCdW5reVx1MDE2YiAoMTg2MVx1MjAxMzE4NjQpIiwiR2VuamkgKDE4NjRcdTIwMTMxODY1KSIsIktlaVx1MDE0ZCAoMTg2''@;'; + put 'put ''NVx1MjAxMzE4NjgpIiwiTWVpamkiLCJUYWlzaFx1MDE0ZCIsIlNoXHUwMTRkd2EiLCJIZWlzZWkiXX0sImRheVBlcmlvZHMiOnsiYW0iOiJBTSIsInBtIjoiUE0ifX0sInBlcnNpYW4iOnsibW9udGhzIjp7Im5hcnJvdyI6WyIxIiwiMiIsIjMiLCI0IiwiNSIsIjYiLCI3IiwiOCIsIjkiLCIx''@;'; + put 'put ''MCIsIjExIiwiMTIiXSwic2hvcnQiOlsiRmFydmFyZGluIiwiT3JkaWJlaGVzaHQiLCJLaG9yZGFkIiwiVGlyIiwiTW9yZGFkIiwiU2hhaHJpdmFyIiwiTWVociIsIkFiYW4iLCJBemFyIiwiRGV5IiwiQmFobWFuIiwiRXNmYW5kIl0sImxvbmciOlsiRmFydmFyZGluIiwiT3JkaWJlaGVzaHQi''@;'; + put 'put ''LCJLaG9yZGFkIiwiVGlyIiwiTW9yZGFkIiwiU2hhaHJpdmFyIiwiTWVociIsIkFiYW4iLCJBemFyIiwiRGV5IiwiQmFobWFuIiwiRXNmYW5kIl19LCJkYXlzIjp7Im5hcnJvdyI6WyJTIiwiTSIsIlQiLCJXIiwiVCIsIkYiLCJTIl0sInNob3J0IjpbIlN1biIsIk1vbiIsIlR1ZSIsIldlZCIs''@;'; + put 'put ''IlRodSIsIkZyaSIsIlNhdCJdLCJsb25nIjpbIlN1bmRheSIsIk1vbmRheSIsIlR1ZXNkYXkiLCJXZWRuZXNkYXkiLCJUaHVyc2RheSIsIkZyaWRheSIsIlNhdHVyZGF5Il19LCJlcmFzIjp7Im5hcnJvdyI6WyJBUCJdLCJzaG9ydCI6WyJBUCJdLCJsb25nIjpbIkFQIl19LCJkYXlQZXJpb2Rz''@;'; + put 'put ''Ijp7ImFtIjoiQU0iLCJwbSI6IlBNIn19LCJyb2MiOnsibW9udGhzIjp7Im5hcnJvdyI6WyJKIiwiRiIsIk0iLCJBIiwiTSIsIkoiLCJKIiwiQSIsIlMiLCJPIiwiTiIsIkQiXSwic2hvcnQiOlsiSmFuIiwiRmViIiwiTWFyIiwiQXByIiwiTWF5IiwiSnVuIiwiSnVsIiwiQXVnIiwiU2VwIiwi''@;'; + put 'put ''T2N0IiwiTm92IiwiRGVjIl0sImxvbmciOlsiSmFudWFyeSIsIkZlYnJ1YXJ5IiwiTWFyY2giLCJBcHJpbCIsIk1heSIsIkp1bmUiLCJKdWx5IiwiQXVndXN0IiwiU2VwdGVtYmVyIiwiT2N0b2JlciIsIk5vdmVtYmVyIiwiRGVjZW1iZXIiXX0sImRheXMiOnsibmFycm93IjpbIlMiLCJNIiwi''@;'; + put 'put ''VCIsIlciLCJUIiwiRiIsIlMiXSwic2hvcnQiOlsiU3VuIiwiTW9uIiwiVHVlIiwiV2VkIiwiVGh1IiwiRnJpIiwiU2F0Il0sImxvbmciOlsiU3VuZGF5IiwiTW9uZGF5IiwiVHVlc2RheSIsIldlZG5lc2RheSIsIlRodXJzZGF5IiwiRnJpZGF5IiwiU2F0dXJkYXkiXX0sImVyYXMiOnsibmFy''@;'; + put 'put ''cm93IjpbIkJlZm9yZSBSLk8uQy4iLCJNaW5ndW8iXSwic2hvcnQiOlsiQmVmb3JlIFIuTy5DLiIsIk1pbmd1byJdLCJsb25nIjpbIkJlZm9yZSBSLk8uQy4iLCJNaW5ndW8iXX0sImRheVBlcmlvZHMiOnsiYW0iOiJBTSIsInBtIjoiUE0ifX19fSwibnVtYmVyIjp7Im51IjpbImxhdG4iXSwi''@;'; + put 'put ''cGF0dGVybnMiOnsiZGVjaW1hbCI6eyJwb3NpdGl2ZVBhdHRlcm4iOiJ7bnVtYmVyfSIsIm5lZ2F0aXZlUGF0dGVybiI6InttaW51c1NpZ259e251bWJlcn0ifSwiY3VycmVuY3kiOnsicG9zaXRpdmVQYXR0ZXJuIjoie2N1cnJlbmN5fXtudW1iZXJ9IiwibmVnYXRpdmVQYXR0ZXJuIjoie21p''@;'; + put 'put ''bnVzU2lnbn17Y3VycmVuY3l9e251bWJlcn0ifSwicGVyY2VudCI6eyJwb3NpdGl2ZVBhdHRlcm4iOiJ7bnVtYmVyfXtwZXJjZW50U2lnbn0iLCJuZWdhdGl2ZVBhdHRlcm4iOiJ7bWludXNTaWdufXtudW1iZXJ9e3BlcmNlbnRTaWdufSJ9fSwic3ltYm9scyI6eyJsYXRuIjp7ImRlY2ltYWwi''@;'; + put 'put ''OiIuIiwiZ3JvdXAiOiIsIiwibmFuIjoiTmFOIiwicGx1c1NpZ24iOiIrIiwibWludXNTaWduIjoiLSIsInBlcmNlbnRTaWduIjoiJSIsImluZmluaXR5IjoiXHUyMjFlIn19LCJjdXJyZW5jaWVzIjp7IkFVRCI6IkEkIiwiQlJMIjoiUiQiLCJDQUQiOiJDQSQiLCJDTlkiOiJDTlx4YTUiLCJF''@;'; + put 'put ''VVIiOiJcdTIwYWMiLCJHQlAiOiJceGEzIiwiSEtEIjoiSEskIiwiSUxTIjoiXHUyMGFhIiwiSU5SIjoiXHUyMGI5IiwiSlBZIjoiXHhhNSIsIktSVyI6Ilx1MjBhOSIsIk1YTiI6Ik1YJCIsIk5aRCI6Ik5aJCIsIlRXRCI6Ik5UJCIsIlVTRCI6IiQiLCJWTkQiOiJcdTIwYWIiLCJYQUYiOiJG''@;'; + put 'put ''Q0ZBIiwiWENEIjoiRUMkIiwiWE9GIjoiQ0ZBIiwiWFBGIjoiQ0ZQRiJ9fX0nKX19LFhlPT57WGUoWGUucz02MDkzMil9XSk7'';'; + put 'run;'; + put '%sasjsout(JS64)'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=runtime.61e771b472ecb588-js; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put 'options mprint;'; + put '%macro mp_replace(infile,'; + put 'findvar=,'; + put 'replacevar=,'; + put 'outfile=0'; + put ')/*/STORE SOURCE*/;'; + put '%local inref outref dttm ds1 rc;'; + put '/* create filerefs */'; + put '%let rc=%sysfunc(filename(inref,,temp,lrecl=200));'; + put '%let rc=%sysfunc(filename(outref,,temp,lrecl=200));'; + put '%if &outfile=0 %then %let outfile=&infile;'; + put '/* uniquely named 32 char datasets */'; + put '%let ds1=all%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,29);'; + put '%let ds2=start%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,27);'; + put '/* START */'; + put '%let dttm=%sysfunc(datetime());'; + put 'filename &inref &infile lrecl=1 recfm=n;'; + put 'data &ds1;'; + put 'infile &inref;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'run;'; + put 'data &ds2;'; + put '/* set find string to length in bytes to cover trailing spaces */'; + put 'length string $ %length(%superq(&findvar));'; + put 'string =symget("&findvar");'; + put 'drop string;'; + put 'firstchar=char(string,1);'; + put 'findlen=lengthm(string); /* <- for trailing bytes */'; + put 'do _N_=1 to nobs;'; + put 'set &ds1 nobs=nobs point=_N_;'; + put 'if sourcechar=firstchar then do;'; + put 'pos=1;'; + put 's=0;'; + put 'do point=_N_ to min(_N_ + findlen -1,nobs);'; + put 'set &ds1 point=point;'; + put 'if sourcechar=char(string, pos) then s + 1;'; + put 'else goto _leave_;'; + put 'pos+1;'; + put 'end;'; + put '_leave_:'; + put 'if s=findlen then do;'; + put 'START =_N_;'; + put '_N_ =_N_+ s - 1;'; + put 'STOP =_N_;'; + put 'output;'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'stop;'; + put 'keep START STOP;'; + put 'run;'; + put 'data &ds1;'; + put 'declare hash HS(dataset:"&ds2(keep=start)");'; + put 'HS.defineKey("start");'; + put 'HS.defineDone();'; + put 'declare hash HE(dataset:"&ds2(keep=stop)");'; + put 'HE.defineKey("stop");'; + put 'HE.defineDone();'; + put 'do until(eof);'; + put 'set &ds1 end=eof curobs =n;'; + put 'start = ^HS.check(key:n);'; + put 'stop = ^HE.check(key:n);'; + put 'length strt $ 1;'; + put 'strt =put(start,best. -L);'; + put 'retain out 1;'; + put 'if out then output;'; + put 'if start then out=0;'; + put 'if stop then out=1;'; + put 'end;'; + put 'stop;'; + put 'keep sourcechar strt;'; + put 'run;'; + put 'filename &outref &outfile recfm=n;'; + put 'data _null_;'; + put 'length replace $ %length(%superq(&replacevar));'; + put 'replace=symget("&replacevar");'; + put 'file &outref;'; + put 'do until(eof);'; + put 'set &ds1 end=eof;'; + put 'if strt ="1" then put replace char.;'; + put 'else put sourcechar char1.;'; + put 'end;'; + put 'stop;'; + put 'run;'; + put '/* END */'; + put '%put &sysmacroname took %sysevalf(%sysfunc(datetime())-&dttm) seconds to run;'; + put '%mend mp_replace;'; + put '%macro sasjsout(type,fref=sasjs);'; + put '%global sysprocessmode SYS_JES_JOB_URI;'; + put '%if &type=JS or &type=JS64 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header('; + put 'Content-type,application/javascript%str(;)charset=UTF-8'; + put '));'; + put '%end;'; + put '%else %if &type=CSS or &type=CSS64 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,text/css));'; + put '%end;'; + put '%else %if &type=PNG or &type=GIF or &type=JPEG or &type=JPG %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,image/%lowcase(&type)));'; + put '%end;'; + put '%else %if &type=SVG or &type=SVG64 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,image/svg+xml));'; + put '%end;'; + put '%else %if &type=ICO %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,image/vnd.microsoft.icon));'; + put '%end;'; + put '%else %if &type=JSON %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,application/json));'; + put '%end;'; + put '%else %if &type=MP3 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/mpeg));'; + put '%end;'; + put '%else %if &type=WAV %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/x-wav));'; + put '%end;'; + put '%else %if &type=OGG %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/ogg));'; + put '%end;'; + put '%else %if &type=WOFF or &type=WOFF2 or &type=TTF %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,font/%lowcase(&type)));'; + put '%end;'; + put '%else %if &type=MP4 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,video/mp4));'; + put '%end;'; + put '%if &type=HTML %then %do;'; + put '/*'; + put 'We need to perform some substitutions -eg to get the APPLOC and SERVERTYPE.'; + put 'Therefore the developer should avoid writing lines that exceed 32k'; + put 'characters (eg base64 encoded images) as they will get truncated when passing'; + put 'through the datastep. This could of course be re-written using LUA, removing'; + put 'the length restriction. Pull requests are welcome!'; + put '*/'; + put 'filename _sjsout temp;'; + put 'data _null_;'; + put 'file _sjsout lrecl=32767 encoding=''utf-8'';'; + put 'infile &fref lrecl=32767;'; + put 'input;'; + put 'length appLoc expanded_path $1048;'; + put 'if _n_=1 then do;'; + put 'retain pgm "&_program" appLoc expanded_path;'; + put '/* index is deployed in the /services/ folder under the appLoc */'; + put 'appLoc=substr(pgm,1,find(pgm,''/services/'')-1);'; + put 'expanded_path=cats(''?_PROGRAM='',appLoc,''/services/'');'; + put 'end;'; + put 'if find(_infile_,'' appLoc: '') then put '' appLoc: '' apploc:$quote1048. '','';'; + put 'else if find(_infile_,'' serverType: '') then do;'; + put 'put '' serverType: "SAS9" ,'';'; + put 'end;'; + put 'else if find(_infile_,'' serverUrl: '') then do;'; + put '/* nothing - we are streaming, so remove to default as hostname */'; + put 'end;'; + put 'else do;'; + put '/* More recently, SASjs apps avoid inline JS to allow strict CSP */'; + put 'length infile in1 in2 $32767;'; + put 'infile=cats(_infile_);'; + put 'spos1=index(upcase(infile),''APPLOC="'');'; + put 'if spos1>0 then do;'; + put 'in1=substr(infile,1,spos1+7);'; + put 'in2=subpad(infile,spos1+8);'; + put 'in2=substr(in2,index(in2,''"''));'; + put 'infile=cats(in1,appLoc,in2);'; + put 'putlog "new apploc: " infile=;'; + put 'end;'; + put '/* find & replace serverType in HTML attributes */'; + put 'spos2=index(upcase(infile),''SERVERTYPE="'');'; + put 'if spos2>0 then do;'; + put 'in1=substr(infile,1,spos2+11);'; + put 'in2=subpad(infile,spos2+12);'; + put 'in2=substr(in2,index(in2,''"''));'; + put 'infile=cats(in1,"SAS9",in2);'; + put 'putlog "new servertype: " infile=;'; + put 'end;'; + put '/* find & replace serverUrl in HTML attributes */'; + put 'spos3=index(upcase(infile),''SERVERURL="'');'; + put 'if spos3>0 then do;'; + put 'in1=substr(infile,1,spos3+10);'; + put 'in2=subpad(infile,spos3+11);'; + put 'in2=substr(in2,index(in2,''"''));'; + put 'infile=cats(in1,in2);'; + put 'putlog "new serverUrl: " infile=;'; + put 'end;'; + put 'if sum(spos1,spos2,spos3)>0 then put infile;'; + put 'else do;'; + put '/* during SAS9 sasjs compile, dependencies get static GUID */'; + put 'infile=tranwrd(_infile_,''?_PROGRAM=pZKd6F95jECvRQlN0LCfdA=='',cats(expanded_path));'; + put 'put infile;'; + put 'end;'; + put 'end;'; + put 'run;'; + put '%let fref=_sjsout;'; + put '%end;'; + put '%else %if &type=JS64 or &type=CSS64 %then %do;'; + put 'options nobomfile;'; + put '%let fvar=pZKd6F95jECvRQlN0LCfdA==;'; + put '%let stgfile="%sysfunc(pathname(work))/stgfile.txt";'; + put '%let newfile="%sysfunc(pathname(work))/newfile.txt";'; + put '/* convert from base64 */'; + put 'filename _out64 &stgfile encoding=''utf-8'';'; + put 'data _null_;'; + put 'length filein 8 fileout 8;'; + put 'filein = fopen("&fref",''I'',4,''B'');'; + put 'fileout = fopen("_out64",''A'',1,''B'');'; + put 'char= ''20''x;'; + put 'do while(fread(filein)=0);'; + put 'length raw $4 ;'; + put 'do i=1 to 4;'; + put 'rc=fget(filein,char,1);'; + put 'substr(raw,i,1)=char;'; + put 'end;'; + put 'rc = fput(fileout, input(raw,$base64X4.));'; + put 'rc =fwrite(fileout);'; + put 'end;'; + put 'rc = fclose(filein);'; + put 'rc = fclose(fileout);'; + put 'run;'; + put '/* get appLoc from _program */'; + put 'data _null_;'; + put 'pgm="&_program";'; + put 'appLoc=substr(pgm,1,find(pgm,''/services/'')-1);'; + put 'call symputx(''apploc'',cats(appLoc,''/services/''));'; + put 'run;'; + put '%put &=fvar;'; + put '%put &=apploc;'; + put '/* replace the GUID with appLoc */'; + put '%mp_replace(&stgfile,'; + put 'findvar=fvar,'; + put 'replacevar=apploc,'; + put 'outfile=&newfile'; + put ')'; + put 'filename &fref &newfile encoding=''utf-8'';'; + put '%end;'; + put '/**'; + put '* In SAS9, JS & CSS files are base64 encoded to avoid UTF8 issues in WLATIN1'; + put '* metadata - so in this case, decode and stream byte by byte.'; + put '* */'; + put '%if &type=GIF or &type=PNG or &type=JPG or &type=JPEG or &type=ICO or &type=MP3'; + put 'or &type=WAV or &type=OGG or &type=WOFF or &type=WOFF2 or &type=TTF or &type=MP4'; + put 'or &type=SVG64'; + put '%then %do;'; + put 'data _null_;'; + put 'length filein 8 fileout 8;'; + put 'filein = fopen("&fref",''I'',4,''B'');'; + put 'fileout = fopen("_webout",''A'',1,''B'');'; + put 'char = ''20''x;'; + put 'do while(fread(filein)=0);'; + put 'length raw $4 ;'; + put 'do i=1 to 4;'; + put 'rc=fget(filein,char,1);'; + put 'substr(raw,i,1)=char;'; + put 'end;'; + put 'rc = fput(fileout, input(raw,$base64X4.));'; + put 'rc = fwrite(fileout);'; + put 'end;'; + put 'rc = fclose(filein);'; + put 'rc = fclose(fileout);'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%put streaming to _webout;'; + put 'data _null_;'; + put 'infile &fref lrecl=1 recfm=n;'; + put 'file _webout mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put '%end;'; + put '%mend sasjsout;'; + put 'filename sasjs temp lrecl=99999999;'; + put 'data _null_;'; + put 'file sasjs;'; + put 'put ''KCgpPT57InVzZSBzdHJpY3QiO3ZhciBlLHM9e30sdj17fTtmdW5jdGlvbiBhKGUpe3ZhciBuPXZbZV07aWYodm9pZCAwIT09bilyZXR1cm4gbi5leHBvcnRzO3ZhciByPXZbZV09e2lkOmUsbG9hZGVkOiExLGV4cG9ydHM6e319O3JldHVybiBzW2VdLmNhbGwoci5leHBvcnRzLHIsci5leHBv''@;'; + put 'put ''cnRzLGEpLHIubG9hZGVkPSEwLHIuZXhwb3J0c31hLm09cyxlPVtdLGEuTz0obixyLG8sbCk9PntpZighcil7dmFyIHU9MS8wO2Zvcih0PTA7dDxlLmxlbmd0aDt0Kyspe2Zvcih2YXJbcixvLGxdPWVbdF0sZD0hMCxmPTA7ZjxyLmxlbmd0aDtmKyspKCExJmx8fHU+PWwpJiZPYmplY3Qua2V5''@;'; + put 'put ''cyhhLk8pLmV2ZXJ5KHA9PmEuT1twXShyW2ZdKSk/ci5zcGxpY2UoZi0tLDEpOihkPSExLGw8dSYmKHU9bCkpO2lmKGQpe2Uuc3BsaWNlKHQtLSwxKTt2YXIgYz1vKCk7dm9pZCAwIT09YyYmKG49Yyl9fXJldHVybiBufWw9bHx8MDtmb3IodmFyIHQ9ZS5sZW5ndGg7dD4wJiZlW3QtMV1bMl0+''@;'; + put 'put ''bDt0LS0pZVt0XT1lW3QtMV07ZVt0XT1bcixvLGxdfSxhLm49ZT0+e3ZhciBuPWUmJmUuX19lc01vZHVsZT8oKT0+ZS5kZWZhdWx0OigpPT5lO3JldHVybiBhLmQobix7YTpufSksbn0sYS5kPShlLG4pPT57Zm9yKHZhciByIGluIG4pYS5vKG4scikmJiFhLm8oZSxyKSYmT2JqZWN0LmRlZmlu''@;'; + put 'put ''ZVByb3BlcnR5KGUscix7ZW51bWVyYWJsZTohMCxnZXQ6bltyXX0pfSxhLm89KGUsbik9Pk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLG4pLGEucj1lPT57InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJlN5bWJvbC50b1N0cmluZ1RhZyYmT2JqZWN0LmRlZmluZVBy''@;'; + put 'put ''b3BlcnR5KGUsU3ltYm9sLnRvU3RyaW5nVGFnLHt2YWx1ZToiTW9kdWxlIn0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KX0sYS5ubWQ9ZT0+KGUucGF0aHM9W10sZS5jaGlsZHJlbnx8KGUuY2hpbGRyZW49W10pLGUpLCgoKT0+e3ZhciBlPXs2NjY6''@;'; + put 'put ''MH07YS5PLmo9bz0+MD09PWVbb107dmFyIG49KG8sbCk9Pnt2YXIgZixjLFt0LHUsZF09bCxpPTA7aWYodC5zb21lKF89PjAhPT1lW19dKSl7Zm9yKGYgaW4gdSlhLm8odSxmKSYmKGEubVtmXT11W2ZdKTtpZihkKXZhciBiPWQoYSl9Zm9yKG8mJm8obCk7aTx0Lmxlbmd0aDtpKyspYS5vKGUs''@;'; + put 'put ''Yz10W2ldKSYmZVtjXSYmZVtjXVswXSgpLGVbY109MDtyZXR1cm4gYS5PKGIpfSxyPXNlbGYud2VicGFja0NodW5rZGF0YWNvbnRyb2xsZXI9c2VsZi53ZWJwYWNrQ2h1bmtkYXRhY29udHJvbGxlcnx8W107ci5mb3JFYWNoKG4uYmluZChudWxsLDApKSxyLnB1c2g9bi5iaW5kKG51bGwsci5w''@;'; + put 'put ''dXNoLmJpbmQocikpfSkoKX0pKCk7'';'; + put 'run;'; + put '%sasjsout(JS64)'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=scripts.7cb1e94e2ffad0cd-js; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put 'options mprint;'; + put '%macro mp_replace(infile,'; + put 'findvar=,'; + put 'replacevar=,'; + put 'outfile=0'; + put ')/*/STORE SOURCE*/;'; + put '%local inref outref dttm ds1 rc;'; + put '/* create filerefs */'; + put '%let rc=%sysfunc(filename(inref,,temp,lrecl=200));'; + put '%let rc=%sysfunc(filename(outref,,temp,lrecl=200));'; + put '%if &outfile=0 %then %let outfile=&infile;'; + put '/* uniquely named 32 char datasets */'; + put '%let ds1=all%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,29);'; + put '%let ds2=start%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,27);'; + put '/* START */'; + put '%let dttm=%sysfunc(datetime());'; + put 'filename &inref &infile lrecl=1 recfm=n;'; + put 'data &ds1;'; + put 'infile &inref;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'run;'; + put 'data &ds2;'; + put '/* set find string to length in bytes to cover trailing spaces */'; + put 'length string $ %length(%superq(&findvar));'; + put 'string =symget("&findvar");'; + put 'drop string;'; + put 'firstchar=char(string,1);'; + put 'findlen=lengthm(string); /* <- for trailing bytes */'; + put 'do _N_=1 to nobs;'; + put 'set &ds1 nobs=nobs point=_N_;'; + put 'if sourcechar=firstchar then do;'; + put 'pos=1;'; + put 's=0;'; + put 'do point=_N_ to min(_N_ + findlen -1,nobs);'; + put 'set &ds1 point=point;'; + put 'if sourcechar=char(string, pos) then s + 1;'; + put 'else goto _leave_;'; + put 'pos+1;'; + put 'end;'; + put '_leave_:'; + put 'if s=findlen then do;'; + put 'START =_N_;'; + put '_N_ =_N_+ s - 1;'; + put 'STOP =_N_;'; + put 'output;'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'stop;'; + put 'keep START STOP;'; + put 'run;'; + put 'data &ds1;'; + put 'declare hash HS(dataset:"&ds2(keep=start)");'; + put 'HS.defineKey("start");'; + put 'HS.defineDone();'; + put 'declare hash HE(dataset:"&ds2(keep=stop)");'; + put 'HE.defineKey("stop");'; + put 'HE.defineDone();'; + put 'do until(eof);'; + put 'set &ds1 end=eof curobs =n;'; + put 'start = ^HS.check(key:n);'; + put 'stop = ^HE.check(key:n);'; + put 'length strt $ 1;'; + put 'strt =put(start,best. -L);'; + put 'retain out 1;'; + put 'if out then output;'; + put 'if start then out=0;'; + put 'if stop then out=1;'; + put 'end;'; + put 'stop;'; + put 'keep sourcechar strt;'; + put 'run;'; + put 'filename &outref &outfile recfm=n;'; + put 'data _null_;'; + put 'length replace $ %length(%superq(&replacevar));'; + put 'replace=symget("&replacevar");'; + put 'file &outref;'; + put 'do until(eof);'; + put 'set &ds1 end=eof;'; + put 'if strt ="1" then put replace char.;'; + put 'else put sourcechar char1.;'; + put 'end;'; + put 'stop;'; + put 'run;'; + put '/* END */'; + put '%put &sysmacroname took %sysevalf(%sysfunc(datetime())-&dttm) seconds to run;'; + put '%mend mp_replace;'; + put '%macro sasjsout(type,fref=sasjs);'; + put '%global sysprocessmode SYS_JES_JOB_URI;'; + put '%if &type=JS or &type=JS64 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header('; + put 'Content-type,application/javascript%str(;)charset=UTF-8'; + put '));'; + put '%end;'; + put '%else %if &type=CSS or &type=CSS64 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,text/css));'; + put '%end;'; + put '%else %if &type=PNG or &type=GIF or &type=JPEG or &type=JPG %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,image/%lowcase(&type)));'; + put '%end;'; + put '%else %if &type=SVG or &type=SVG64 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,image/svg+xml));'; + put '%end;'; + put '%else %if &type=ICO %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,image/vnd.microsoft.icon));'; + put '%end;'; + put '%else %if &type=JSON %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,application/json));'; + put '%end;'; + put '%else %if &type=MP3 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/mpeg));'; + put '%end;'; + put '%else %if &type=WAV %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/x-wav));'; + put '%end;'; + put '%else %if &type=OGG %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/ogg));'; + put '%end;'; + put '%else %if &type=WOFF or &type=WOFF2 or &type=TTF %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,font/%lowcase(&type)));'; + put '%end;'; + put '%else %if &type=MP4 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,video/mp4));'; + put '%end;'; + put '%if &type=HTML %then %do;'; + put '/*'; + put 'We need to perform some substitutions -eg to get the APPLOC and SERVERTYPE.'; + put 'Therefore the developer should avoid writing lines that exceed 32k'; + put 'characters (eg base64 encoded images) as they will get truncated when passing'; + put 'through the datastep. This could of course be re-written using LUA, removing'; + put 'the length restriction. Pull requests are welcome!'; + put '*/'; + put 'filename _sjsout temp;'; + put 'data _null_;'; + put 'file _sjsout lrecl=32767 encoding=''utf-8'';'; + put 'infile &fref lrecl=32767;'; + put 'input;'; + put 'length appLoc expanded_path $1048;'; + put 'if _n_=1 then do;'; + put 'retain pgm "&_program" appLoc expanded_path;'; + put '/* index is deployed in the /services/ folder under the appLoc */'; + put 'appLoc=substr(pgm,1,find(pgm,''/services/'')-1);'; + put 'expanded_path=cats(''?_PROGRAM='',appLoc,''/services/'');'; + put 'end;'; + put 'if find(_infile_,'' appLoc: '') then put '' appLoc: '' apploc:$quote1048. '','';'; + put 'else if find(_infile_,'' serverType: '') then do;'; + put 'put '' serverType: "SAS9" ,'';'; + put 'end;'; + put 'else if find(_infile_,'' serverUrl: '') then do;'; + put '/* nothing - we are streaming, so remove to default as hostname */'; + put 'end;'; + put 'else do;'; + put '/* More recently, SASjs apps avoid inline JS to allow strict CSP */'; + put 'length infile in1 in2 $32767;'; + put 'infile=cats(_infile_);'; + put 'spos1=index(upcase(infile),''APPLOC="'');'; + put 'if spos1>0 then do;'; + put 'in1=substr(infile,1,spos1+7);'; + put 'in2=subpad(infile,spos1+8);'; + put 'in2=substr(in2,index(in2,''"''));'; + put 'infile=cats(in1,appLoc,in2);'; + put 'putlog "new apploc: " infile=;'; + put 'end;'; + put '/* find & replace serverType in HTML attributes */'; + put 'spos2=index(upcase(infile),''SERVERTYPE="'');'; + put 'if spos2>0 then do;'; + put 'in1=substr(infile,1,spos2+11);'; + put 'in2=subpad(infile,spos2+12);'; + put 'in2=substr(in2,index(in2,''"''));'; + put 'infile=cats(in1,"SAS9",in2);'; + put 'putlog "new servertype: " infile=;'; + put 'end;'; + put '/* find & replace serverUrl in HTML attributes */'; + put 'spos3=index(upcase(infile),''SERVERURL="'');'; + put 'if spos3>0 then do;'; + put 'in1=substr(infile,1,spos3+10);'; + put 'in2=subpad(infile,spos3+11);'; + put 'in2=substr(in2,index(in2,''"''));'; + put 'infile=cats(in1,in2);'; + put 'putlog "new serverUrl: " infile=;'; + put 'end;'; + put 'if sum(spos1,spos2,spos3)>0 then put infile;'; + put 'else do;'; + put '/* during SAS9 sasjs compile, dependencies get static GUID */'; + put 'infile=tranwrd(_infile_,''?_PROGRAM=pZKd6F95jECvRQlN0LCfdA=='',cats(expanded_path));'; + put 'put infile;'; + put 'end;'; + put 'end;'; + put 'run;'; + put '%let fref=_sjsout;'; + put '%end;'; + put '%else %if &type=JS64 or &type=CSS64 %then %do;'; + put 'options nobomfile;'; + put '%let fvar=pZKd6F95jECvRQlN0LCfdA==;'; + put '%let stgfile="%sysfunc(pathname(work))/stgfile.txt";'; + put '%let newfile="%sysfunc(pathname(work))/newfile.txt";'; + put '/* convert from base64 */'; + put 'filename _out64 &stgfile encoding=''utf-8'';'; + put 'data _null_;'; + put 'length filein 8 fileout 8;'; + put 'filein = fopen("&fref",''I'',4,''B'');'; + put 'fileout = fopen("_out64",''A'',1,''B'');'; + put 'char= ''20''x;'; + put 'do while(fread(filein)=0);'; + put 'length raw $4 ;'; + put 'do i=1 to 4;'; + put 'rc=fget(filein,char,1);'; + put 'substr(raw,i,1)=char;'; + put 'end;'; + put 'rc = fput(fileout, input(raw,$base64X4.));'; + put 'rc =fwrite(fileout);'; + put 'end;'; + put 'rc = fclose(filein);'; + put 'rc = fclose(fileout);'; + put 'run;'; + put '/* get appLoc from _program */'; + put 'data _null_;'; + put 'pgm="&_program";'; + put 'appLoc=substr(pgm,1,find(pgm,''/services/'')-1);'; + put 'call symputx(''apploc'',cats(appLoc,''/services/''));'; + put 'run;'; + put '%put &=fvar;'; + put '%put &=apploc;'; + put '/* replace the GUID with appLoc */'; + put '%mp_replace(&stgfile,'; + put 'findvar=fvar,'; + put 'replacevar=apploc,'; + put 'outfile=&newfile'; + put ')'; + put 'filename &fref &newfile encoding=''utf-8'';'; + put '%end;'; + put '/**'; + put '* In SAS9, JS & CSS files are base64 encoded to avoid UTF8 issues in WLATIN1'; + put '* metadata - so in this case, decode and stream byte by byte.'; + put '* */'; + put '%if &type=GIF or &type=PNG or &type=JPG or &type=JPEG or &type=ICO or &type=MP3'; + put 'or &type=WAV or &type=OGG or &type=WOFF or &type=WOFF2 or &type=TTF or &type=MP4'; + put 'or &type=SVG64'; + put '%then %do;'; + put 'data _null_;'; + put 'length filein 8 fileout 8;'; + put 'filein = fopen("&fref",''I'',4,''B'');'; + put 'fileout = fopen("_webout",''A'',1,''B'');'; + put 'char = ''20''x;'; + put 'do while(fread(filein)=0);'; + put 'length raw $4 ;'; + put 'do i=1 to 4;'; + put 'rc=fget(filein,char,1);'; + put 'substr(raw,i,1)=char;'; + put 'end;'; + put 'rc = fput(fileout, input(raw,$base64X4.));'; + put 'rc = fwrite(fileout);'; + put 'end;'; + put 'rc = fclose(filein);'; + put 'rc = fclose(fileout);'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%put streaming to _webout;'; + put 'data _null_;'; + put 'infile &fref lrecl=1 recfm=n;'; + put 'file _webout mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put '%end;'; + put '%mend sasjsout;'; + put 'filename sasjs temp lrecl=99999999;'; + put 'data _null_;'; + put 'file sasjs;'; + put 'put ''KGZ1bmN0aW9uKFgsRjEsayl7InVzZSBzdHJpY3QiOyhmdW5jdGlvbihBKXt2YXIgZT17fTtmdW5jdGlvbiBsKHIpe2lmKGVbcl0pcmV0dXJuIGVbcl0uZXhwb3J0czt2YXIgYT1lW3JdPXtpOnIsbDohMSxleHBvcnRzOnt9fTtyZXR1cm4gQVtyXS5jYWxsKGEuZXhwb3J0cyxhLGEuZXhwb3J0''@;'; + put 'put ''cyxsKSxhLmw9ITAsYS5leHBvcnRzfWwubT1BLGwuYz1lLGwuZD1mdW5jdGlvbihyLGEsYyl7bC5vKHIsYSl8fE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLGEse2NvbmZpZ3VyYWJsZTohMSxlbnVtZXJhYmxlOiEwLGdldDpjfSl9LGwubj1mdW5jdGlvbihyKXt2YXIgYT1yJiZyLl9fZXNNb2R1''@;'; + put 'put ''bGU/ZnVuY3Rpb24oKXtyZXR1cm4gci5kZWZhdWx0fTpmdW5jdGlvbigpe3JldHVybiByfTtyZXR1cm4gbC5kKGEsImEiLGEpLGF9LGwubz1mdW5jdGlvbihyLGEpe3JldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocixhKX0sbC5wPSIiLGwobC5zPTEyOSl9KShb''@;'; + put 'put ''ZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMiksYT1sKDI2KSxjPWwoMTEpLG89bCgxMiksaD1sKDE4KSxmPSJwcm90b3R5cGUiLGc9ZnVuY3Rpb24odSxwLHYpe3ZhciBILEMsVixTLF89dSZnLkYsYj11JmcuRyxNPXUmZy5QLHg9dSZnLkIsRT1iP3I6dSZnLlM/cltwXXx8KHJbcF09e30pOihy''@;'; + put 'put ''W3BdfHx7fSlbZl0sdz1iP2E6YVtwXXx8KGFbcF09e30pLE49d1tmXXx8KHdbZl09e30pO2ZvcihIIGluIGImJih2PXApLHYpVj0oKEM9IV8mJkUmJkVbSF0hPT1rKT9FOnYpW0hdLFM9eCYmQz9oKFYscik6TSYmImZ1bmN0aW9uIj09dHlwZW9mIFY/aChGdW5jdGlvbi5jYWxsLFYpOlYsRSYm''@;'; + put 'put ''byhFLEgsVix1JmcuVSksd1tIXSE9ViYmYyh3LEgsUyksTSYmTltIXSE9ViYmKE5bSF09Vil9O3IuY29yZT1hLGcuRj0xLGcuRz0yLGcuUz00LGcuUD04LGcuQj0xNixnLlc9MzIsZy5VPTY0LGcuUj0xMjgsQS5leHBvcnRzPWd9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDQpO0EuZXhwb3J0''@;'; + put 'put ''cz1mdW5jdGlvbihhKXtpZighcihhKSl0aHJvdyBUeXBlRXJyb3IoYSsiIGlzIG5vdCBhbiBvYmplY3QhIik7cmV0dXJuIGF9fSxmdW5jdGlvbihBLGUpe3ZhciBsPUEuZXhwb3J0cz0idW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyYmd2luZG93Lk1hdGg9PU1hdGg/d2luZG93OiJ1bmRlZmlu''@;'; + put 'put ''ZWQiIT10eXBlb2Ygc2VsZiYmc2VsZi5NYXRoPT1NYXRoP3NlbGY6RnVuY3Rpb24oInJldHVybiB0aGlzIikoKTsibnVtYmVyIj09dHlwZW9mIEYxJiYoRjE9bCl9LGZ1bmN0aW9uKEEsZSl7QS5leHBvcnRzPWZ1bmN0aW9uKGwpe3RyeXtyZXR1cm4hIWwoKX1jYXRjaChyKXtyZXR1cm4hMH19''@;'; + put 'put ''fSxmdW5jdGlvbihBLGUpe0EuZXhwb3J0cz1mdW5jdGlvbihsKXtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIGw/bnVsbCE9PWw6ImZ1bmN0aW9uIj09dHlwZW9mIGx9fSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCg0NykoIndrcyIpLGE9bCgzMyksYz1sKDIpLlN5bWJvbCxvPSJmdW5jdGlvbiI9''@;'; + put 'put ''PXR5cGVvZiBjOyhBLmV4cG9ydHM9ZnVuY3Rpb24oaCl7cmV0dXJuIHJbaF18fChyW2hdPW8mJmNbaF18fChvP2M6YSkoIlN5bWJvbC4iK2gpKX0pLnN0b3JlPXJ9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDIwKSxhPU1hdGgubWluO0EuZXhwb3J0cz1mdW5jdGlvbihjKXtyZXR1cm4gMDxj''@;'; + put 'put ''P2EocihjKSw5MDA3MTk5MjU0NzQwOTkxKTowfX0sZnVuY3Rpb24oQSxlLGwpe0EuZXhwb3J0cz0hbCgzKShmdW5jdGlvbigpe3JldHVybiA3IT1PYmplY3QuZGVmaW5lUHJvcGVydHkoe30sImEiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gN319KS5hfSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIg''@;'; + put 'put ''cj1sKDEpLGE9bCg5MyksYz1sKDIyKSxvPU9iamVjdC5kZWZpbmVQcm9wZXJ0eTtlLmY9bCg3KT9PYmplY3QuZGVmaW5lUHJvcGVydHk6ZnVuY3Rpb24oZixnLHUpe2lmKHIoZiksZz1jKGcsITApLHIodSksYSl0cnl7cmV0dXJuIG8oZixnLHUpfWNhdGNoKHApe31pZigiZ2V0ImluIHV8fCJz''@;'; + put 'put ''ZXQiaW4gdSl0aHJvdyBUeXBlRXJyb3IoIkFjY2Vzc29ycyBub3Qgc3VwcG9ydGVkISIpO3JldHVybiJ2YWx1ZSJpbiB1JiYoZltnXT11LnZhbHVlKSxmfX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMjMpO0EuZXhwb3J0cz1mdW5jdGlvbihhKXtyZXR1cm4gT2JqZWN0KHIoYSkpfX0sZnVu''@;'; + put 'put ''Y3Rpb24oQSxlKXtBLmV4cG9ydHM9ZnVuY3Rpb24obCl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGwpdGhyb3cgVHlwZUVycm9yKGwrIiBpcyBub3QgYSBmdW5jdGlvbiEiKTtyZXR1cm4gbH19LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDgpLGE9bCgzMik7QS5leHBvcnRzPWwoNyk/ZnVuY3Rp''@;'; + put 'put ''b24oYyxvLGgpe3JldHVybiByLmYoYyxvLGEoMSxoKSl9OmZ1bmN0aW9uKGMsbyxoKXtyZXR1cm4gY1tvXT1oLGN9fSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgyKSxhPWwoMTEpLGM9bCgxNCksbz1sKDMzKSgic3JjIiksaD1sKDEzMSksZj0idG9TdHJpbmciLGc9KCIiK2gpLnNwbGl0KGYp''@;'; + put 'put ''O2woMjYpLmluc3BlY3RTb3VyY2U9ZnVuY3Rpb24odSl7cmV0dXJuIGguY2FsbCh1KX0sKEEuZXhwb3J0cz1mdW5jdGlvbih1LHAsdixIKXt2YXIgQz0iZnVuY3Rpb24iPT10eXBlb2YgdjtDJiYoYyh2LCJuYW1lIil8fGEodiwibmFtZSIscCkpLHVbcF0hPT12JiYoQyYmKGModixvKXx8YSh2''@;'; + put 'put ''LG8sdVtwXT8iIit1W3BdOmcuam9pbihTdHJpbmcocCkpKSksdT09PXI/dVtwXT12Okg/dVtwXT91W3BdPXY6YSh1LHAsdik6KGRlbGV0ZSB1W3BdLGEodSxwLHYpKSl9KShGdW5jdGlvbi5wcm90b3R5cGUsZixmdW5jdGlvbigpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzJiZ0aGlz''@;'; + put 'put ''W29dfHxoLmNhbGwodGhpcyl9KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCksYT1sKDMpLGM9bCgyMyksbz0vIi9nLGg9ZnVuY3Rpb24oZixnLHUscCl7dmFyIHY9U3RyaW5nKGMoZikpLEg9IjwiK2c7cmV0dXJuIiIhPT11JiYoSCs9IiAiK3UrJz0iJytTdHJpbmcocCkucmVwbGFjZShv''@;'; + put 'put ''LCImcXVvdDsiKSsnIicpLEgrIj4iK3YrIjwvIitnKyI+In07QS5leHBvcnRzPWZ1bmN0aW9uKGYsZyl7dmFyIHU9e307dVtmXT1nKGgpLHIoci5QK3IuRiphKGZ1bmN0aW9uKCl7dmFyIHA9IiJbZl0oJyInKTtyZXR1cm4gcCE9PXAudG9Mb3dlckNhc2UoKXx8MzxwLnNwbGl0KCciJykubGVu''@;'; + put 'put ''Z3RofSksIlN0cmluZyIsdSl9fSxmdW5jdGlvbihBLGUpe3ZhciBsPXt9Lmhhc093blByb3BlcnR5O0EuZXhwb3J0cz1mdW5jdGlvbihyLGEpe3JldHVybiBsLmNhbGwocixhKX19LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDQ4KSxhPWwoMjMpO0EuZXhwb3J0cz1mdW5jdGlvbihjKXtyZXR1''@;'; + put 'put ''cm4gcihhKGMpKX19LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDQ5KSxhPWwoMzIpLGM9bCgxNSksbz1sKDIyKSxoPWwoMTQpLGY9bCg5MyksZz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yO2UuZj1sKDcpP2c6ZnVuY3Rpb24ocCx2KXtpZihwPWMocCksdj1vKHYsITApLGYpdHJ5''@;'; + put 'put ''e3JldHVybiBnKHAsdil9Y2F0Y2goSCl7fWlmKGgocCx2KSlyZXR1cm4gYSghci5mLmNhbGwocCx2KSxwW3ZdKX19LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDE0KSxhPWwoOSksYz1sKDY4KSgiSUVfUFJPVE8iKSxvPU9iamVjdC5wcm90b3R5cGU7QS5leHBvcnRzPU9iamVjdC5nZXRQcm90''@;'; + put 'put ''b3R5cGVPZnx8ZnVuY3Rpb24oaCl7cmV0dXJuIGg9YShoKSxyKGgsYyk/aFtjXToiZnVuY3Rpb24iPT10eXBlb2YgaC5jb25zdHJ1Y3RvciYmaCBpbnN0YW5jZW9mIGguY29uc3RydWN0b3I/aC5jb25zdHJ1Y3Rvci5wcm90b3R5cGU6aCBpbnN0YW5jZW9mIE9iamVjdD9vOm51bGx9fSxmdW5j''@;'; + put 'put ''dGlvbihBLGUsbCl7dmFyIHI9bCgxMCk7QS5leHBvcnRzPWZ1bmN0aW9uKGEsYyxvKXtpZihyKGEpLGM9PT1rKXJldHVybiBhO3N3aXRjaChvKXtjYXNlIDE6cmV0dXJuIGZ1bmN0aW9uKGgpe3JldHVybiBhLmNhbGwoYyxoKX07Y2FzZSAyOnJldHVybiBmdW5jdGlvbihoLGYpe3JldHVybiBh''@;'; + put 'put ''LmNhbGwoYyxoLGYpfTtjYXNlIDM6cmV0dXJuIGZ1bmN0aW9uKGgsZixnKXtyZXR1cm4gYS5jYWxsKGMsaCxmLGcpfX1yZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gYS5hcHBseShjLGFyZ3VtZW50cyl9fX0sZnVuY3Rpb24oQSxlKXt2YXIgbD17fS50b1N0cmluZztBLmV4cG9ydHM9ZnVuY3Rp''@;'; + put 'put ''b24ocil7cmV0dXJuIGwuY2FsbChyKS5zbGljZSg4LC0xKX19LGZ1bmN0aW9uKEEsZSl7dmFyIGw9TWF0aC5jZWlsLHI9TWF0aC5mbG9vcjtBLmV4cG9ydHM9ZnVuY3Rpb24oYSl7cmV0dXJuIGlzTmFOKGE9K2EpPzA6KDA8YT9yOmwpKGEpfX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMyk7''@;'; + put 'put ''QS5leHBvcnRzPWZ1bmN0aW9uKGEsYyl7cmV0dXJuISFhJiZyKGZ1bmN0aW9uKCl7Yz9hLmNhbGwobnVsbCxmdW5jdGlvbigpe30sMSk6YS5jYWxsKG51bGwpfSl9fSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCg0KTtBLmV4cG9ydHM9ZnVuY3Rpb24oYSxjKXtpZighcihhKSlyZXR1cm4gYTt2''@;'; + put 'put ''YXIgbyxoO2lmKGMmJiJmdW5jdGlvbiI9PXR5cGVvZihvPWEudG9TdHJpbmcpJiYhcihoPW8uY2FsbChhKSl8fCJmdW5jdGlvbiI9PXR5cGVvZihvPWEudmFsdWVPZikmJiFyKGg9by5jYWxsKGEpKXx8IWMmJiJmdW5jdGlvbiI9PXR5cGVvZihvPWEudG9TdHJpbmcpJiYhcihoPW8uY2FsbChh''@;'; + put 'put ''KSkpcmV0dXJuIGg7dGhyb3cgVHlwZUVycm9yKCJDYW4ndCBjb252ZXJ0IG9iamVjdCB0byBwcmltaXRpdmUgdmFsdWUiKX19LGZ1bmN0aW9uKEEsZSl7QS5leHBvcnRzPWZ1bmN0aW9uKGwpe2lmKGw9PWspdGhyb3cgVHlwZUVycm9yKCJDYW4ndCBjYWxsIG1ldGhvZCBvbiAgIitsKTtyZXR1''@;'; + put 'put ''cm4gbH19LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDApLGE9bCgyNiksYz1sKDMpO0EuZXhwb3J0cz1mdW5jdGlvbihvLGgpe3ZhciBmPShhLk9iamVjdHx8e30pW29dfHxPYmplY3Rbb10sZz17fTtnW29dPWgoZikscihyLlMrci5GKmMoZnVuY3Rpb24oKXtmKDEpfSksIk9iamVjdCIsZyl9''@;'; + put 'put ''fSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgxOCksYT1sKDQ4KSxjPWwoOSksbz1sKDYpLGg9bCg4NCk7QS5leHBvcnRzPWZ1bmN0aW9uKGYsZyl7dmFyIHU9MT09ZixwPTI9PWYsdj0zPT1mLEg9ND09ZixDPTY9PWYsVj01PT1mfHxDLFM9Z3x8aDtyZXR1cm4gZnVuY3Rpb24oXyxiLE0pe2Zv''@;'; + put 'put ''cih2YXIgeCxFLHc9YyhfKSxOPWEodyksST1yKGIsTSwzKSxXPW8oTi5sZW5ndGgpLE89MCxCPXU/UyhfLFcpOnA/UyhfLDApOms7TzxXO08rKylpZigoVnx8TyBpbiBOKSYmKEU9SSh4PU5bT10sTyx3KSxmKSlpZih1KUJbT109RTtlbHNlIGlmKEUpc3dpdGNoKGYpe2Nhc2UgMzpyZXR1cm4h''@;'; + put 'put ''MDtjYXNlIDU6cmV0dXJuIHg7Y2FzZSA2OnJldHVybiBPO2Nhc2UgMjpCLnB1c2goeCl9ZWxzZSBpZihIKXJldHVybiExO3JldHVybiBDPy0xOnZ8fEg/SDpCfX19LGZ1bmN0aW9uKEEsZSl7dmFyIGw9QS5leHBvcnRzPXt2ZXJzaW9uOiIyLjYuMTEifTsibnVtYmVyIj09dHlwZW9mIFgmJihY''@;'; + put 'put ''PWwpfSxmdW5jdGlvbihBLGUsbCl7aWYobCg3KSl7dmFyIHI9bCgyOSksYT1sKDIpLGM9bCgzKSxvPWwoMCksaD1sKDYyKSxmPWwoOTIpLGc9bCgxOCksdT1sKDM5KSxwPWwoMzIpLHY9bCgxMSksSD1sKDQxKSxDPWwoMjApLFY9bCg2KSxTPWwoMTIyKSxfPWwoMzUpLGI9bCgyMiksTT1sKDE0''@;'; + put 'put ''KSx4PWwoNDQpLEU9bCg0KSx3PWwoOSksTj1sKDgxKSxJPWwoMzYpLFc9bCgxNyksTz1sKDM3KS5mLEI9bCg4MyksUj1sKDMzKSxsMT1sKDUpLGExPWwoMjUpLGgxPWwoNTIpLHUxPWwoNTEpLHAxPWwoODYpLHYxPWwoNDYpLEUxPWwoNTcpLGo9bCgzOCksYzE9bCg4NSksVjE9bCgxMTApLF8x''@;'; + put 'put ''PWwoOCksUT1sKDE2KSxzMT1fMS5mLG0xPVEuZixiMT1hLlJhbmdlRXJyb3IsQjE9YS5UeXBlRXJyb3IsJD1hLlVpbnQ4QXJyYXksej0iQXJyYXlCdWZmZXIiLHk9IlNoYXJlZCIreixEPSJCWVRFU19QRVJfRUxFTUVOVCIsWj0icHJvdG90eXBlIixUPUFycmF5W1pdLFA9Zi5BcnJheUJ1ZmZl''@;'; + put 'put ''cixlMT1mLkRhdGFWaWV3LHIxPWExKDApLFoxPWExKDIpLFk9YTEoMykscT1hMSg0KSxKPWExKDUpLEExPWExKDYpLE4xPWgxKCEwKSxTMT1oMSghMSksbjE9cDEudmFsdWVzLGkxPXAxLmtleXMsZjE9cDEuZW50cmllcyx4MT1ULmxhc3RJbmRleE9mLEkxPVQucmVkdWNlLEoxPVQucmVkdWNl''@;'; + put 'put ''UmlnaHQsdDA9VC5qb2luLGYwPVQuc29ydCxNMD1ULnNsaWNlLF8wPVQudG9TdHJpbmcsaTI9VC50b0xvY2FsZVN0cmluZyx6MD1sMSgiaXRlcmF0b3IiKSxVMD1sMSgidG9TdHJpbmdUYWciKSxLMD1SKCJ0eXBlZF9jb25zdHJ1Y3RvciIpLGswPVIoImRlZl9jb25zdHJ1Y3RvciIpLHUyPWgu''@;'; + put 'put ''Q09OU1RSLFgwPWguVFlQRUQsa3Q9aC5WSUVXLGEyPSJXcm9uZyBsZW5ndGghIixEMj1hMSgxLGZ1bmN0aW9uKHcxLGQxKXtyZXR1cm4gUTAodTEodzEsdzFbazBdKSxkMSl9KSxwMj1jKGZ1bmN0aW9uKCl7cmV0dXJuIDE9PT1uZXcgJChuZXcgVWludDE2QXJyYXkoWzFdKS5idWZmZXIpWzBd''@;'; + put 'put ''fSksT3Q9ISEkJiYhISRbWl0uc2V0JiZjKGZ1bmN0aW9uKCl7bmV3ICQoMSkuc2V0KHt9KX0pLGYyPWZ1bmN0aW9uKHcxLGQxKXt2YXIgRDE9Qyh3MSk7aWYoRDE8MHx8RDElZDEpdGhyb3cgYjEoIldyb25nIG9mZnNldCEiKTtyZXR1cm4gRDF9LFkxPWZ1bmN0aW9uKHcxKXtpZihFKHcxKSYm''@;'; + put 'put ''WDAgaW4gdzEpcmV0dXJuIHcxO3Rocm93IEIxKHcxKyIgaXMgbm90IGEgdHlwZWQgYXJyYXkhIil9LFEwPWZ1bmN0aW9uKHcxLGQxKXtpZighRSh3MSl8fCEoSzAgaW4gdzEpKXRocm93IEIxKCJJdCBpcyBub3QgYSB0eXBlZCBhcnJheSBjb25zdHJ1Y3RvciEiKTtyZXR1cm4gbmV3IHcxKGQx''@;'; + put 'put ''KX0sZzI9ZnVuY3Rpb24odzEsZDEpe3JldHVybiBFMih1MSh3MSx3MVtrMF0pLGQxKX0sRTI9ZnVuY3Rpb24odzEsZDEpe2Zvcih2YXIgRDE9MCxQMT1kMS5sZW5ndGgsUjE9UTAodzEsUDEpO0QxPFAxOylSMVtEMV09ZDFbRDErK107cmV0dXJuIFIxfSxBMj1mdW5jdGlvbih3MSxkMSxEMSl7''@;'; + put 'put ''czEodzEsZDEse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9kW0QxXX19KX0sVDI9ZnVuY3Rpb24oZDEpe3ZhciBEMSxQMSxSMSxkMCxxMSxnMSx5MT13KGQxKSxXMD1hcmd1bWVudHMubGVuZ3RoLE8wPTE8VzA/YXJndW1lbnRzWzFdOmssSzE9TzAhPT1rLGUwPUIoeTEpO2lmKGUwIT1r''@;'; + put 'put ''JiYhTihlMCkpe2ZvcihnMT1lMC5jYWxsKHkxKSxSMT1bXSxEMT0wOyEocTE9ZzEubmV4dCgpKS5kb25lO0QxKyspUjEucHVzaChxMS52YWx1ZSk7eTE9UjF9Zm9yKEsxJiYyPFcwJiYoTzA9ZyhPMCxhcmd1bWVudHNbMl0sMikpLEQxPTAsUDE9Vih5MS5sZW5ndGgpLGQwPVEwKHRoaXMsUDEp''@;'; + put 'put ''O0QxPFAxO0QxKyspZDBbRDFdPUsxP08wKHkxW0QxXSxEMSk6eTFbRDFdO3JldHVybiBkMH0sWDI9ZnVuY3Rpb24oKXtmb3IodmFyIGQxPTAsRDE9YXJndW1lbnRzLmxlbmd0aCxQMT1RMCh0aGlzLEQxKTtkMTxEMTspUDFbZDFdPWFyZ3VtZW50c1tkMSsrXTtyZXR1cm4gUDF9LFEyPSEhJCYm''@;'; + put 'put ''YyhmdW5jdGlvbigpe2kyLmNhbGwobmV3ICQoMSkpfSksTjI9ZnVuY3Rpb24oKXtyZXR1cm4gaTIuYXBwbHkoUTI/TTAuY2FsbChZMSh0aGlzKSk6WTEodGhpcyksYXJndW1lbnRzKX0sSjI9e2NvcHlXaXRoaW46ZnVuY3Rpb24oZDEsRDEpe3JldHVybiBWMS5jYWxsKFkxKHRoaXMpLGQxLEQx''@;'; + put 'put ''LDI8YXJndW1lbnRzLmxlbmd0aD9hcmd1bWVudHNbMl06ayl9LGV2ZXJ5OmZ1bmN0aW9uKGQxKXtyZXR1cm4gcShZMSh0aGlzKSxkMSwxPGFyZ3VtZW50cy5sZW5ndGg/YXJndW1lbnRzWzFdOmspfSxmaWxsOmZ1bmN0aW9uKGQxKXtyZXR1cm4gYzEuYXBwbHkoWTEodGhpcyksYXJndW1lbnRz''@;'; + put 'put ''KX0sZmlsdGVyOmZ1bmN0aW9uKGQxKXtyZXR1cm4gZzIodGhpcyxaMShZMSh0aGlzKSxkMSwxPGFyZ3VtZW50cy5sZW5ndGg/YXJndW1lbnRzWzFdOmspKX0sZmluZDpmdW5jdGlvbihkMSl7cmV0dXJuIEooWTEodGhpcyksZDEsMTxhcmd1bWVudHMubGVuZ3RoP2FyZ3VtZW50c1sxXTprKX0s''@;'; + put 'put ''ZmluZEluZGV4OmZ1bmN0aW9uKGQxKXtyZXR1cm4gQTEoWTEodGhpcyksZDEsMTxhcmd1bWVudHMubGVuZ3RoP2FyZ3VtZW50c1sxXTprKX0sZm9yRWFjaDpmdW5jdGlvbihkMSl7cjEoWTEodGhpcyksZDEsMTxhcmd1bWVudHMubGVuZ3RoP2FyZ3VtZW50c1sxXTprKX0saW5kZXhPZjpmdW5j''@;'; + put 'put ''dGlvbihkMSl7cmV0dXJuIFMxKFkxKHRoaXMpLGQxLDE8YXJndW1lbnRzLmxlbmd0aD9hcmd1bWVudHNbMV06ayl9LGluY2x1ZGVzOmZ1bmN0aW9uKGQxKXtyZXR1cm4gTjEoWTEodGhpcyksZDEsMTxhcmd1bWVudHMubGVuZ3RoP2FyZ3VtZW50c1sxXTprKX0sam9pbjpmdW5jdGlvbihkMSl7''@;'; + put 'put ''cmV0dXJuIHQwLmFwcGx5KFkxKHRoaXMpLGFyZ3VtZW50cyl9LGxhc3RJbmRleE9mOmZ1bmN0aW9uKGQxKXtyZXR1cm4geDEuYXBwbHkoWTEodGhpcyksYXJndW1lbnRzKX0sbWFwOmZ1bmN0aW9uKGQxKXtyZXR1cm4gRDIoWTEodGhpcyksZDEsMTxhcmd1bWVudHMubGVuZ3RoP2FyZ3VtZW50''@;'; + put 'put ''c1sxXTprKX0scmVkdWNlOmZ1bmN0aW9uKGQxKXtyZXR1cm4gSTEuYXBwbHkoWTEodGhpcyksYXJndW1lbnRzKX0scmVkdWNlUmlnaHQ6ZnVuY3Rpb24oZDEpe3JldHVybiBKMS5hcHBseShZMSh0aGlzKSxhcmd1bWVudHMpfSxyZXZlcnNlOmZ1bmN0aW9uKCl7Zm9yKHZhciBkMSxEMT10aGlz''@;'; + put 'put ''LFAxPVkxKEQxKS5sZW5ndGgsUjE9TWF0aC5mbG9vcihQMS8yKSxkMD0wO2QwPFIxOylkMT1EMVtkMF0sRDFbZDArK109RDFbLS1QMV0sRDFbUDFdPWQxO3JldHVybiBEMX0sc29tZTpmdW5jdGlvbihkMSl7cmV0dXJuIFkoWTEodGhpcyksZDEsMTxhcmd1bWVudHMubGVuZ3RoP2FyZ3VtZW50''@;'; + put 'put ''c1sxXTprKX0sc29ydDpmdW5jdGlvbihkMSl7cmV0dXJuIGYwLmNhbGwoWTEodGhpcyksZDEpfSxzdWJhcnJheTpmdW5jdGlvbihkMSxEMSl7dmFyIFAxPVkxKHRoaXMpLFIxPVAxLmxlbmd0aCxkMD1fKGQxLFIxKTtyZXR1cm4gbmV3KHUxKFAxLFAxW2swXSkpKFAxLmJ1ZmZlcixQMS5ieXRl''@;'; + put 'put ''T2Zmc2V0K2QwKlAxLkJZVEVTX1BFUl9FTEVNRU5ULFYoKEQxPT09az9SMTpfKEQxLFIxKSktZDApKX19LEYyPWZ1bmN0aW9uKGQxLEQxKXtyZXR1cm4gZzIodGhpcyxNMC5jYWxsKFkxKHRoaXMpLGQxLEQxKSl9LEkyPWZ1bmN0aW9uKGQxKXtZMSh0aGlzKTt2YXIgRDE9ZjIoYXJndW1lbnRz''@;'; + put 'put ''WzFdLDEpLFAxPXRoaXMubGVuZ3RoLFIxPXcoZDEpLGQwPVYoUjEubGVuZ3RoKSxxMT0wO2lmKFAxPGQwK0QxKXRocm93IGIxKGEyKTtmb3IoO3ExPGQwOyl0aGlzW0QxK3ExXT1SMVtxMSsrXX0sWjA9e2VudHJpZXM6ZnVuY3Rpb24oKXtyZXR1cm4gZjEuY2FsbChZMSh0aGlzKSl9LGtleXM6''@;'; + put 'put ''ZnVuY3Rpb24oKXtyZXR1cm4gaTEuY2FsbChZMSh0aGlzKSl9LHZhbHVlczpmdW5jdGlvbigpe3JldHVybiBuMS5jYWxsKFkxKHRoaXMpKX19LGsyPWZ1bmN0aW9uKHcxLGQxKXtyZXR1cm4gRSh3MSkmJncxW1gwXSYmInN5bWJvbCIhPXR5cGVvZiBkMSYmZDEgaW4gdzEmJlN0cmluZygrZDEp''@;'; + put 'put ''PT1TdHJpbmcoZDEpfSx0dD1mdW5jdGlvbihkMSxEMSl7cmV0dXJuIGsyKGQxLEQxPWIoRDEsITApKT9wKDIsZDFbRDFdKTptMShkMSxEMSl9LEEwPWZ1bmN0aW9uKGQxLEQxLFAxKXtyZXR1cm4hKGsyKGQxLEQxPWIoRDEsITApKSYmRShQMSkmJk0oUDEsInZhbHVlIikpfHxNKFAxLCJnZXQi''@;'; + put 'put ''KXx8TShQMSwic2V0Iil8fFAxLmNvbmZpZ3VyYWJsZXx8TShQMSwid3JpdGFibGUiKSYmIVAxLndyaXRhYmxlfHxNKFAxLCJlbnVtZXJhYmxlIikmJiFQMS5lbnVtZXJhYmxlP3MxKGQxLEQxLFAxKTooZDFbRDFdPVAxLnZhbHVlLGQxKX07dTJ8fChRLmY9dHQsXzEuZj1BMCksbyhvLlMrby5G''@;'; + put 'put ''KiF1MiwiT2JqZWN0Iix7Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yOnR0LGRlZmluZVByb3BlcnR5OkEwfSksYyhmdW5jdGlvbigpe18wLmNhbGwoe30pfSkmJihfMD1pMj1mdW5jdGlvbigpe3JldHVybiB0MC5jYWxsKHRoaXMpfSk7dmFyIHcwPUgoe30sSjIpO0godzAsWjApLHYodzAsejAs''@;'; + put 'put ''WjAudmFsdWVzKSxIKHcwLHtzbGljZTpGMixzZXQ6STIsY29uc3RydWN0b3I6ZnVuY3Rpb24oKXt9LHRvU3RyaW5nOl8wLHRvTG9jYWxlU3RyaW5nOk4yfSksQTIodzAsImJ1ZmZlciIsImIiKSxBMih3MCwiYnl0ZU9mZnNldCIsIm8iKSxBMih3MCwiYnl0ZUxlbmd0aCIsImwiKSxBMih3MCwi''@;'; + put 'put ''bGVuZ3RoIiwiZSIpLHMxKHcwLFUwLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc1tYMF19fSksQS5leHBvcnRzPWZ1bmN0aW9uKHcxLGQxLEQxLFAxKXt2YXIgUjE9dzErKChQMT0hIVAxKT8iQ2xhbXBlZCI6IiIpKyJBcnJheSIsZDA9ImdldCIrdzEscTE9InNldCIrdzEsZzE9YVtSMV0s''@;'; + put 'put ''eTE9ZzF8fHt9LFcwPWcxJiZXKGcxKSxPMD17fSxLMT1nMSYmZzFbWl0sZTA9ZnVuY3Rpb24oZzAsWDEpe3MxKGcwLFgxLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4oSDA9dGhpcy5fZCkudltkMF0oWDEqZDErSDAubyxwMik7dmFyIEgwfSxzZXQ6ZnVuY3Rpb24oSDApe3JldHVybiBEMD1YMSx1''@;'; + put 'put ''MD1IMCx4MD10aGlzLl9kLFAxJiYodTA9KHUwPU1hdGgucm91bmQodTApKTwwPzA6MjU1PHUwPzI1NToyNTUmdTApLHZvaWQgeDAudltxMV0oRDAqZDEreDAubyx1MCxwMik7dmFyIEQwLHUwLHgwfSxlbnVtZXJhYmxlOiEwfSl9O2cxJiZoLkFCVj9jKGZ1bmN0aW9uKCl7ZzEoMSl9KSYmYyhm''@;'; + put 'put ''dW5jdGlvbigpe25ldyBnMSgtMSl9KSYmRTEoZnVuY3Rpb24oZzApe25ldyBnMSxuZXcgZzEobnVsbCksbmV3IGcxKDEuNSksbmV3IGcxKGcwKX0sITApfHwoZzE9RDEoZnVuY3Rpb24oZzAsWDEsSDAsRDApe3ZhciB1MDtyZXR1cm4gdShnMCxnMSxSMSksRShYMSk/WDEgaW5zdGFuY2VvZiBQ''@;'; + put 'put ''fHwodTA9eChYMSkpPT16fHx1MD09eT9EMCE9PWs/bmV3IHkxKFgxLGYyKEgwLGQxKSxEMCk6SDAhPT1rP25ldyB5MShYMSxmMihIMCxkMSkpOm5ldyB5MShYMSk6WDAgaW4gWDE/RTIoZzEsWDEpOlQyLmNhbGwoZzEsWDEpOm5ldyB5MShTKFgxKSl9KSxyMShXMCE9PUZ1bmN0aW9uLnByb3Rv''@;'; + put 'put ''dHlwZT9PKHkxKS5jb25jYXQoTyhXMCkpOk8oeTEpLGZ1bmN0aW9uKGcwKXtnMCBpbiBnMXx8dihnMSxnMCx5MVtnMF0pfSksZzFbWl09SzEscnx8KEsxLmNvbnN0cnVjdG9yPWcxKSk6KGcxPUQxKGZ1bmN0aW9uKGcwLFgxLEgwLEQwKXt1KGcwLGcxLFIxLCJfZCIpO3ZhciB1MCx4MCxCMCxQ''@;'; + put 'put ''Mix2Mj0wLHIyPTA7aWYoRShYMSkpe2lmKCEoWDEgaW5zdGFuY2VvZiBQfHwoUDI9eChYMSkpPT16fHxQMj09eSkpcmV0dXJuIFgwIGluIFgxP0UyKGcxLFgxKTpUMi5jYWxsKGcxLFgxKTt1MD1YMSxyMj1mMihIMCxkMSk7dmFyIHMwPVgxLmJ5dGVMZW5ndGg7aWYoRDA9PT1rKXtpZihzMCVk''@;'; + put 'put ''MXx8KHgwPXMwLXIyKTwwKXRocm93IGIxKGEyKX1lbHNlIGlmKHMwPCh4MD1WKEQwKSpkMSkrcjIpdGhyb3cgYjEoYTIpO0IwPXgwL2QxfWVsc2UgQjA9UyhYMSksdTA9bmV3IFAoeDA9QjAqZDEpO2Zvcih2KGcwLCJfZCIse2I6dTAsbzpyMixsOngwLGU6QjAsdjpuZXcgZTEodTApfSk7djI8''@;'; + put 'put ''QjA7KWUwKGcwLHYyKyspfSksSzE9ZzFbWl09SSh3MCksdihLMSwiY29uc3RydWN0b3IiLGcxKSk7dmFyIEowPUsxW3owXSxQMD0hIUowJiYoInZhbHVlcyI9PUowLm5hbWV8fEowLm5hbWU9PWspLE8yPVowLnZhbHVlczt2KGcxLEswLCEwKSx2KEsxLFgwLFIxKSx2KEsxLGt0LCEwKSx2KEsx''@;'; + put 'put ''LGswLGcxKSwoUDE/bmV3IGcxKDEpW1UwXT09UjE6VTAgaW4gSzEpfHxzMShLMSxVMCx7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFIxfX0pLG8oby5HK28uVytvLkYqKChPMFtSMV09ZzEpIT15MSksTzApLG8oby5TLFIxLHtCWVRFU19QRVJfRUxFTUVOVDpkMX0pLG8oby5TK28uRipjKGZ1bmN0''@;'; + put 'put ''aW9uKCl7eTEub2YuY2FsbChnMSwxKX0pLFIxLHtmcm9tOlQyLG9mOlgyfSksRCBpbiBLMXx8dihLMSxELGQxKSxvKG8uUCxSMSxKMiksaihSMSksbyhvLlArby5GKk90LFIxLHtzZXQ6STJ9KSxvKG8uUCtvLkYqIVAwLFIxLFowKSxyfHxLMS50b1N0cmluZz09XzB8fChLMS50b1N0cmluZz1f''@;'; + put 'put ''MCksbyhvLlArby5GKmMoZnVuY3Rpb24oKXtuZXcgZzEoMSkuc2xpY2UoKX0pLFIxLHtzbGljZTpGMn0pLG8oby5QK28uRiooYyhmdW5jdGlvbigpe3JldHVyblsxLDJdLnRvTG9jYWxlU3RyaW5nKCkhPW5ldyBnMShbMSwyXSkudG9Mb2NhbGVTdHJpbmcoKX0pfHwhYyhmdW5jdGlvbigpe0sx''@;'; + put 'put ''LnRvTG9jYWxlU3RyaW5nLmNhbGwoWzEsMl0pfSkpLFIxLHt0b0xvY2FsZVN0cmluZzpOMn0pLHYxW1IxXT1QMD9KMDpPMixyfHxQMHx8dihLMSx6MCxPMil9fWVsc2UgQS5leHBvcnRzPWZ1bmN0aW9uKCl7fX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMTE2KSxhPWwoMCksYz1sKDQ3KSgi''@;'; + put 'put ''bWV0YWRhdGEiKSxvPWMuc3RvcmV8fChjLnN0b3JlPW5ldyhsKDExOSkpKSxoPWZ1bmN0aW9uKGYsZyx1KXt2YXIgcD1vLmdldChmKTtpZighcCl7aWYoIXUpcmV0dXJuIGs7by5zZXQoZixwPW5ldyByKX12YXIgdj1wLmdldChnKTtpZighdil7aWYoIXUpcmV0dXJuIGs7cC5zZXQoZyx2PW5l''@;'; + put 'put ''dyByKX1yZXR1cm4gdn07QS5leHBvcnRzPXtzdG9yZTpvLG1hcDpoLGhhczpmdW5jdGlvbihmLGcsdSl7dmFyIHA9aChnLHUsITEpO3JldHVybiBwIT09ayYmcC5oYXMoZil9LGdldDpmdW5jdGlvbihmLGcsdSl7dmFyIHA9aChnLHUsITEpO3JldHVybiBwPT09az9rOnAuZ2V0KGYpfSxzZXQ6''@;'; + put 'put ''ZnVuY3Rpb24oZixnLHUscCl7aCh1LHAsITApLnNldChmLGcpfSxrZXlzOmZ1bmN0aW9uKGYsZyl7dmFyIHU9aChmLGcsITEpLHA9W107cmV0dXJuIHUmJnUuZm9yRWFjaChmdW5jdGlvbih2LEgpe3AucHVzaChIKX0pLHB9LGtleTpmdW5jdGlvbihmKXtyZXR1cm4gZj09PWt8fCJzeW1ib2wi''@;'; + put 'put ''PT10eXBlb2YgZj9mOlN0cmluZyhmKX0sZXhwOmZ1bmN0aW9uKGYpe2EoYS5TLCJSZWZsZWN0IixmKX19fSxmdW5jdGlvbihBLGUpe0EuZXhwb3J0cz0hMX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMzMpKCJtZXRhIiksYT1sKDQpLGM9bCgxNCksbz1sKDgpLmYsaD0wLGY9T2JqZWN0Lmlz''@;'; + put 'put ''RXh0ZW5zaWJsZXx8ZnVuY3Rpb24oKXtyZXR1cm4hMH0sZz0hbCgzKShmdW5jdGlvbigpe3JldHVybiBmKE9iamVjdC5wcmV2ZW50RXh0ZW5zaW9ucyh7fSkpfSksdT1mdW5jdGlvbih2KXtvKHYscix7dmFsdWU6e2k6Ik8iKyArK2gsdzp7fX19KX0scD1BLmV4cG9ydHM9e0tFWTpyLE5FRUQ6''@;'; + put 'put ''ITEsZmFzdEtleTpmdW5jdGlvbih2LEgpe2lmKCFhKHYpKXJldHVybiJzeW1ib2wiPT10eXBlb2Ygdj92Oigic3RyaW5nIj09dHlwZW9mIHY/IlMiOiJQIikrdjtpZighYyh2LHIpKXtpZighZih2KSlyZXR1cm4iRiI7aWYoIUgpcmV0dXJuIkUiO3Uodil9cmV0dXJuIHZbcl0uaX0sZ2V0V2Vh''@;'; + put 'put ''azpmdW5jdGlvbih2LEgpe2lmKCFjKHYscikpe2lmKCFmKHYpKXJldHVybiEwO2lmKCFIKXJldHVybiExO3Uodil9cmV0dXJuIHZbcl0ud30sb25GcmVlemU6ZnVuY3Rpb24odil7cmV0dXJuIGcmJnAuTkVFRCYmZih2KSYmIWModixyKSYmdSh2KSx2fX19LGZ1bmN0aW9uKEEsZSxsKXt2YXIg''@;'; + put 'put ''cj1sKDUpKCJ1bnNjb3BhYmxlcyIpLGE9QXJyYXkucHJvdG90eXBlO2Fbcl09PWsmJmwoMTEpKGEscix7fSksQS5leHBvcnRzPWZ1bmN0aW9uKGMpe2Fbcl1bY109ITB9fSxmdW5jdGlvbihBLGUpe0EuZXhwb3J0cz1mdW5jdGlvbihsLHIpe3JldHVybntlbnVtZXJhYmxlOiEoMSZsKSxjb25m''@;'; + put 'put ''aWd1cmFibGU6ISgyJmwpLHdyaXRhYmxlOiEoNCZsKSx2YWx1ZTpyfX19LGZ1bmN0aW9uKEEsZSl7dmFyIGw9MCxyPU1hdGgucmFuZG9tKCk7QS5leHBvcnRzPWZ1bmN0aW9uKGEpe3JldHVybiJTeW1ib2woIi5jb25jYXQoYT09PWs/IiI6YSwiKV8iLCgrK2wrcikudG9TdHJpbmcoMzYpKX19''@;'; + put 'put ''LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDk1KSxhPWwoNjkpO0EuZXhwb3J0cz1PYmplY3Qua2V5c3x8ZnVuY3Rpb24obyl7cmV0dXJuIHIobyxhKX19LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDIwKSxhPU1hdGgubWF4LGM9TWF0aC5taW47QS5leHBvcnRzPWZ1bmN0aW9uKG8saCl7cmV0''@;'; + put 'put ''dXJuKG89cihvKSk8MD9hKG8raCwwKTpjKG8saCl9fSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgxKSxhPWwoOTYpLGM9bCg2OSksbz1sKDY4KSgiSUVfUFJPVE8iKSxoPWZ1bmN0aW9uKCl7fSxmPSJwcm90b3R5cGUiLGc9ZnVuY3Rpb24oKXt2YXIgdSxwPWwoNjYpKCJpZnJhbWUiKSx2PWMu''@;'; + put 'put ''bGVuZ3RoO2ZvcihwLnN0eWxlLmRpc3BsYXk9Im5vbmUiLGwoNzApLmFwcGVuZENoaWxkKHApLHAuc3JjPSJqYXZhc2NyaXB0OiIsKHU9cC5jb250ZW50V2luZG93LmRvY3VtZW50KS5vcGVuKCksdS53cml0ZSgiPHNjcmlwdD5kb2N1bWVudC5GPU9iamVjdDxcL3NjcmlwdD4iKSx1LmNsb3Nl''@;'; + put 'put ''KCksZz11LkY7di0tOylkZWxldGUgZ1tmXVtjW3ZdXTtyZXR1cm4gZygpfTtBLmV4cG9ydHM9T2JqZWN0LmNyZWF0ZXx8ZnVuY3Rpb24ocCx2KXt2YXIgSDtyZXR1cm4gbnVsbCE9PXA/KGhbZl09cihwKSxIPW5ldyBoLGhbZl09bnVsbCxIW29dPXApOkg9ZygpLHY9PT1rP0g6YShILHYpfX0s''@;'; + put 'put ''ZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoOTUpLGE9bCg2OSkuY29uY2F0KCJsZW5ndGgiLCJwcm90b3R5cGUiKTtlLmY9T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXN8fGZ1bmN0aW9uKG8pe3JldHVybiByKG8sYSl9fSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgyKSxhPWwoOCksYz1sKDcp''@;'; + put 'put ''LG89bCg1KSgic3BlY2llcyIpO0EuZXhwb3J0cz1mdW5jdGlvbihoKXt2YXIgZj1yW2hdO2MmJmYmJiFmW29dJiZhLmYoZixvLHtjb25maWd1cmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9fSl9fSxmdW5jdGlvbihBLGUpe0EuZXhwb3J0cz1mdW5jdGlvbihsLHIsYSxjKXtp''@;'; + put 'put ''ZighKGwgaW5zdGFuY2VvZiByKXx8YyE9PWsmJmMgaW4gbCl0aHJvdyBUeXBlRXJyb3IoYSsiOiBpbmNvcnJlY3QgaW52b2NhdGlvbiEiKTtyZXR1cm4gbH19LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDE4KSxhPWwoMTA4KSxjPWwoODEpLG89bCgxKSxoPWwoNiksZj1sKDgzKSxnPXt9LHU9''@;'; + put 'put ''e307KGU9QS5leHBvcnRzPWZ1bmN0aW9uKHAsdixILEMsVil7dmFyIFMsXyxiLE0seD1WP2Z1bmN0aW9uKCl7cmV0dXJuIHB9OmYocCksRT1yKEgsQyx2PzI6MSksdz0wO2lmKCJmdW5jdGlvbiIhPXR5cGVvZiB4KXRocm93IFR5cGVFcnJvcihwKyIgaXMgbm90IGl0ZXJhYmxlISIpO2lmKGMo''@;'; + put 'put ''eCkpe2ZvcihTPWgocC5sZW5ndGgpO3c8Uzt3KyspaWYoKE09dj9FKG8oXz1wW3ddKVswXSxfWzFdKTpFKHBbd10pKT09PWd8fE09PT11KXJldHVybiBNfWVsc2UgZm9yKGI9eC5jYWxsKHApOyEoXz1iLm5leHQoKSkuZG9uZTspaWYoKE09YShiLEUsXy52YWx1ZSx2KSk9PT1nfHxNPT09dSly''@;'; + put 'put ''ZXR1cm4gTX0pLkJSRUFLPWcsZS5SRVRVUk49dX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMTIpO0EuZXhwb3J0cz1mdW5jdGlvbihhLGMsbyl7Zm9yKHZhciBoIGluIGMpcihhLGgsY1toXSxvKTtyZXR1cm4gYX19LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDQpO0EuZXhwb3J0cz1mdW5j''@;'; + put 'put ''dGlvbihhLGMpe2lmKCFyKGEpfHxhLl90IT09Yyl0aHJvdyBUeXBlRXJyb3IoIkluY29tcGF0aWJsZSByZWNlaXZlciwgIitjKyIgcmVxdWlyZWQhIik7cmV0dXJuIGF9fSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCg4KS5mLGE9bCgxNCksYz1sKDUpKCJ0b1N0cmluZ1RhZyIpO0EuZXhwb3J0''@;'; + put 'put ''cz1mdW5jdGlvbihvLGgsZil7byYmIWEobz1mP286by5wcm90b3R5cGUsYykmJnIobyxjLHtjb25maWd1cmFibGU6ITAsdmFsdWU6aH0pfX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMTkpLGE9bCg1KSgidG9TdHJpbmdUYWciKSxjPSJBcmd1bWVudHMiPT1yKGZ1bmN0aW9uKCl7cmV0dXJu''@;'; + put 'put ''IGFyZ3VtZW50c30oKSk7QS5leHBvcnRzPWZ1bmN0aW9uKG8pe3ZhciBoLGYsZztyZXR1cm4gbz09PWs/IlVuZGVmaW5lZCI6bnVsbD09PW8/Ik51bGwiOiJzdHJpbmciPT10eXBlb2YoZj1mdW5jdGlvbih1LHApe3RyeXtyZXR1cm4gdVtwXX1jYXRjaCh2KXt9fShoPU9iamVjdChvKSxhKSk/''@;'; + put 'put ''ZjpjP3IoaCk6Ik9iamVjdCI9PShnPXIoaCkpJiYiZnVuY3Rpb24iPT10eXBlb2YgaC5jYWxsZWU/IkFyZ3VtZW50cyI6Z319LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDApLGE9bCgyMyksYz1sKDMpLG89bCg3MyksaD0iWyIrbysiXSIsZj1SZWdFeHAoIl4iK2graCsiKiIpLGc9UmVnRXhw''@;'; + put 'put ''KGgraCsiKiQiKSx1PWZ1bmN0aW9uKHYsSCxDKXt2YXIgVj17fSxTPWMoZnVuY3Rpb24oKXtyZXR1cm4hIW9bdl0oKXx8Ilx1MjAwYlx4ODUiIT0iXHUyMDBiXHg4NSJbdl0oKX0pLF89Vlt2XT1TP0gocCk6b1t2XTtDJiYoVltDXT1fKSxyKHIuUCtyLkYqUywiU3RyaW5nIixWKX0scD11LnRy''@;'; + put 'put ''aW09ZnVuY3Rpb24odixIKXtyZXR1cm4gdj1TdHJpbmcoYSh2KSksMSZIJiYodj12LnJlcGxhY2UoZiwiIikpLDImSCYmKHY9di5yZXBsYWNlKGcsIiIpKSx2fTtBLmV4cG9ydHM9dX0sZnVuY3Rpb24oQSxlKXtBLmV4cG9ydHM9e319LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDI2KSxhPWwo''@;'; + put 'put ''MiksYz0iX19jb3JlLWpzX3NoYXJlZF9fIixvPWFbY118fChhW2NdPXt9KTsoQS5leHBvcnRzPWZ1bmN0aW9uKGgsZil7cmV0dXJuIG9baF18fChvW2hdPWYhPT1rP2Y6e30pfSkoInZlcnNpb25zIixbXSkucHVzaCh7dmVyc2lvbjpyLnZlcnNpb24sbW9kZTpsKDI5KT8icHVyZSI6Imdsb2Jh''@;'; + put 'put ''bCIsY29weXJpZ2h0OiJceGE5IDIwMTkgRGVuaXMgUHVzaGthcmV2ICh6bG9pcm9jay5ydSkifSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDE5KTtBLmV4cG9ydHM9T2JqZWN0KCJ6IikucHJvcGVydHlJc0VudW1lcmFibGUoMCk/T2JqZWN0OmZ1bmN0aW9uKGEpe3JldHVybiJTdHJpbmci''@;'; + put 'put ''PT1yKGEpP2Euc3BsaXQoIiIpOk9iamVjdChhKX19LGZ1bmN0aW9uKEEsZSl7ZS5mPXt9LnByb3BlcnR5SXNFbnVtZXJhYmxlfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgxKTtBLmV4cG9ydHM9ZnVuY3Rpb24oKXt2YXIgYT1yKHRoaXMpLGM9IiI7cmV0dXJuIGEuZ2xvYmFsJiYoYys9Imci''@;'; + put 'put ''KSxhLmlnbm9yZUNhc2UmJihjKz0iaSIpLGEubXVsdGlsaW5lJiYoYys9Im0iKSxhLnVuaWNvZGUmJihjKz0idSIpLGEuc3RpY2t5JiYoYys9InkiKSxjfX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMSksYT1sKDEwKSxjPWwoNSkoInNwZWNpZXMiKTtBLmV4cG9ydHM9ZnVuY3Rpb24obyxo''@;'; + put 'put ''KXt2YXIgZixnPXIobykuY29uc3RydWN0b3I7cmV0dXJuIGc9PT1rfHwoZj1yKGcpW2NdKT09az9oOmEoZil9fSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgxNSksYT1sKDYpLGM9bCgzNSk7QS5leHBvcnRzPWZ1bmN0aW9uKG8pe3JldHVybiBmdW5jdGlvbihoLGYsZyl7dmFyIHUscD1yKGgp''@;'; + put 'put ''LHY9YShwLmxlbmd0aCksSD1jKGcsdik7aWYobyYmZiE9Zil7Zm9yKDtIPHY7KWlmKCh1PXBbSCsrXSkhPXUpcmV0dXJuITB9ZWxzZSBmb3IoO0g8djtIKyspaWYoKG98fEggaW4gcCkmJnBbSF09PT1mKXJldHVybiBvfHxIfHwwO3JldHVybiFvJiYtMX19fSxmdW5jdGlvbihBLGUpe2UuZj1P''@;'; + put 'put ''YmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgxOSk7QS5leHBvcnRzPUFycmF5LmlzQXJyYXl8fGZ1bmN0aW9uKGMpe3JldHVybiJBcnJheSI9PXIoYyl9fSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgyMCksYT1sKDIzKTtBLmV4cG9ydHM9ZnVu''@;'; + put 'put ''Y3Rpb24oYyl7cmV0dXJuIGZ1bmN0aW9uKG8saCl7dmFyIGYsZyx1PVN0cmluZyhhKG8pKSxwPXIoaCksdj11Lmxlbmd0aDtyZXR1cm4gcDwwfHx2PD1wP2M/IiI6azooZj11LmNoYXJDb2RlQXQocCkpPDU1Mjk2fHw1NjMxOTxmfHxwKzE9PT12fHwoZz11LmNoYXJDb2RlQXQocCsxKSk8NTYz''@;'; + put 'put ''MjB8fDU3MzQzPGc/Yz91LmNoYXJBdChwKTpmOmM/dS5zbGljZShwLHArMik6Zy01NjMyMCsoZi01NTI5Njw8MTApKzY1NTM2fX19LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDQpLGE9bCgxOSksYz1sKDUpKCJtYXRjaCIpO0EuZXhwb3J0cz1mdW5jdGlvbihvKXt2YXIgaDtyZXR1cm4gcihv''@;'; + put 'put ''KSYmKChoPW9bY10pIT09az8hIWg6IlJlZ0V4cCI9PWEobykpfX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoNSkoIml0ZXJhdG9yIiksYT0hMTt0cnl7dmFyIGM9WzddW3JdKCk7Yy5yZXR1cm49ZnVuY3Rpb24oKXthPSEwfSxBcnJheS5mcm9tKGMsZnVuY3Rpb24oKXt0aHJvdyAyfSl9Y2F0''@;'; + put 'put ''Y2gobyl7fUEuZXhwb3J0cz1mdW5jdGlvbihvLGgpe2lmKCFoJiYhYSlyZXR1cm4hMTt2YXIgZj0hMTt0cnl7dmFyIGc9WzddLHU9Z1tyXSgpO3UubmV4dD1mdW5jdGlvbigpe3JldHVybntkb25lOmY9ITB9fSxnW3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHV9LG8oZyl9Y2F0Y2gocCl7fXJldHVy''@;'; + put 'put ''biBmfX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoNDQpLGE9UmVnRXhwLnByb3RvdHlwZS5leGVjO0EuZXhwb3J0cz1mdW5jdGlvbihjLG8pe3ZhciBoPWMuZXhlYztpZigiZnVuY3Rpb24iPT10eXBlb2YgaCl7dmFyIGY9aC5jYWxsKGMsbyk7aWYoIm9iamVjdCIhPXR5cGVvZiBmKXRocm93''@;'; + put 'put ''IG5ldyBUeXBlRXJyb3IoIlJlZ0V4cCBleGVjIG1ldGhvZCByZXR1cm5lZCBzb21ldGhpbmcgb3RoZXIgdGhhbiBhbiBPYmplY3Qgb3IgbnVsbCIpO3JldHVybiBmfWlmKCJSZWdFeHAiIT09cihjKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJSZWdFeHAjZXhlYyBjYWxsZWQgb24gaW5jb21wYXRp''@;'; + put 'put ''YmxlIHJlY2VpdmVyIik7cmV0dXJuIGEuY2FsbChjLG8pfX0sZnVuY3Rpb24oQSxlLGwpe2woMTEyKTt2YXIgcj1sKDEyKSxhPWwoMTEpLGM9bCgzKSxvPWwoMjMpLGg9bCg1KSxmPWwoODcpLGc9aCgic3BlY2llcyIpLHU9IWMoZnVuY3Rpb24oKXt2YXIgdj0vLi87cmV0dXJuIHYuZXhlYz1m''@;'; + put 'put ''dW5jdGlvbigpe3ZhciBIPVtdO3JldHVybiBILmdyb3Vwcz17YToiNyJ9LEh9LCI3IiE9PSIiLnJlcGxhY2UodiwiJDxhPiIpfSkscD1mdW5jdGlvbigpe3ZhciB2PS8oPzopLyxIPXYuZXhlYzt2LmV4ZWM9ZnVuY3Rpb24oKXtyZXR1cm4gSC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9O3ZhciBD''@;'; + put 'put ''PSJhYiIuc3BsaXQodik7cmV0dXJuIDI9PT1DLmxlbmd0aCYmImEiPT09Q1swXSYmImIiPT09Q1sxXX0oKTtBLmV4cG9ydHM9ZnVuY3Rpb24odixILEMpe3ZhciBWPWgodiksUz0hYyhmdW5jdGlvbigpe3ZhciBFPXt9O3JldHVybiBFW1ZdPWZ1bmN0aW9uKCl7cmV0dXJuIDd9LDchPSIiW3Zd''@;'; + put 'put ''KEUpfSksXz1TPyFjKGZ1bmN0aW9uKCl7dmFyIEU9ITEsdz0vYS87cmV0dXJuIHcuZXhlYz1mdW5jdGlvbigpe3JldHVybiBFPSEwLG51bGx9LCJzcGxpdCI9PT12JiYody5jb25zdHJ1Y3Rvcj17fSx3LmNvbnN0cnVjdG9yW2ddPWZ1bmN0aW9uKCl7cmV0dXJuIHd9KSx3W1ZdKCIiKSwhRX0p''@;'; + put 'put ''Oms7aWYoIVN8fCFffHwicmVwbGFjZSI9PT12JiYhdXx8InNwbGl0Ij09PXYmJiFwKXt2YXIgYj0vLi9bVl0sTT1DKG8sViwiIlt2XSxmdW5jdGlvbih3LE4sSSxXLE8pe3JldHVybiBOLmV4ZWM9PT1mP1MmJiFPP3tkb25lOiEwLHZhbHVlOmIuY2FsbChOLEksVyl9Ontkb25lOiEwLHZhbHVl''@;'; + put 'put ''OncuY2FsbChJLE4sVyl9Ontkb25lOiExfX0pLHg9TVsxXTtyKFN0cmluZy5wcm90b3R5cGUsdixNWzBdKSxhKFJlZ0V4cC5wcm90b3R5cGUsViwyPT1IP2Z1bmN0aW9uKEUsdyl7cmV0dXJuIHguY2FsbChFLHRoaXMsdyl9OmZ1bmN0aW9uKEUpe3JldHVybiB4LmNhbGwoRSx0aGlzKX0pfX19''@;'; + put 'put ''LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDIpLm5hdmlnYXRvcjtBLmV4cG9ydHM9ciYmci51c2VyQWdlbnR8fCIifSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgyKSxhPWwoMCksYz1sKDEyKSxvPWwoNDEpLGg9bCgzMCksZj1sKDQwKSxnPWwoMzkpLHU9bCg0KSxwPWwoMyksdj1sKDU3KSxI''@;'; + put 'put ''PWwoNDMpLEM9bCg3Mik7QS5leHBvcnRzPWZ1bmN0aW9uKFYsUyxfLGIsTSx4KXt2YXIgRT1yW1ZdLHc9RSxOPU0/InNldCI6ImFkZCIsST13JiZ3LnByb3RvdHlwZSxXPXt9LE89ZnVuY3Rpb24odTEpe3ZhciBwMT1JW3UxXTtjKEksdTEsImRlbGV0ZSI9PXUxP2Z1bmN0aW9uKHYxKXtyZXR1''@;'; + put 'put ''cm4hKHgmJiF1KHYxKSkmJnAxLmNhbGwodGhpcywwPT09djE/MDp2MSl9OiJoYXMiPT11MT9mdW5jdGlvbihFMSl7cmV0dXJuISh4JiYhdShFMSkpJiZwMS5jYWxsKHRoaXMsMD09PUUxPzA6RTEpfToiZ2V0Ij09dTE/ZnVuY3Rpb24oRTEpe3JldHVybiB4JiYhdShFMSk/azpwMS5jYWxsKHRo''@;'; + put 'put ''aXMsMD09PUUxPzA6RTEpfToiYWRkIj09dTE/ZnVuY3Rpb24oRTEpe3JldHVybiBwMS5jYWxsKHRoaXMsMD09PUUxPzA6RTEpLHRoaXN9OmZ1bmN0aW9uKEUxLGope3JldHVybiBwMS5jYWxsKHRoaXMsMD09PUUxPzA6RTEsaiksdGhpc30pfTtpZigiZnVuY3Rpb24iPT10eXBlb2YgdyYmKHh8''@;'; + put 'put ''fEkuZm9yRWFjaCYmIXAoZnVuY3Rpb24oKXsobmV3IHcpLmVudHJpZXMoKS5uZXh0KCl9KSkpe3ZhciBCPW5ldyB3LFI9QltOXSh4P3t9Oi0wLDEpIT1CLGwxPXAoZnVuY3Rpb24oKXtCLmhhcygxKX0pLGExPXYoZnVuY3Rpb24odTEpe25ldyB3KHUxKX0pLGgxPSF4JiZwKGZ1bmN0aW9uKCl7''@;'; + put 'put ''Zm9yKHZhciB1MT1uZXcgdyxwMT01O3AxLS07KXUxW05dKHAxLHAxKTtyZXR1cm4hdTEuaGFzKC0wKX0pO2ExfHwoKCh3PVMoZnVuY3Rpb24odTEscDEpe2codTEsdyxWKTt2YXIgdjE9QyhuZXcgRSx1MSx3KTtyZXR1cm4gcDEhPWsmJmYocDEsTSx2MVtOXSx2MSksdjF9KSkucHJvdG90eXBl''@;'; + put 'put ''PUkpLmNvbnN0cnVjdG9yPXcpLChsMXx8aDEpJiYoTygiZGVsZXRlIiksTygiaGFzIiksTSYmTygiZ2V0IikpLChoMXx8UikmJk8oTikseCYmSS5jbGVhciYmZGVsZXRlIEkuY2xlYXJ9ZWxzZSB3PWIuZ2V0Q29uc3RydWN0b3IoUyxWLE0sTiksbyh3LnByb3RvdHlwZSxfKSxoLk5FRUQ9ITA7''@;'; + put 'put ''cmV0dXJuIEgodyxWKSxhKGEuRythLlcrYS5GKigoV1tWXT13KSE9RSksVykseHx8Yi5zZXRTdHJvbmcodyxWLE0pLHd9fSxmdW5jdGlvbihBLGUsbCl7Zm9yKHZhciByLGE9bCgyKSxjPWwoMTEpLG89bCgzMyksaD1vKCJ0eXBlZF9hcnJheSIpLGY9bygidmlldyIpLGc9ISghYS5BcnJheUJ1''@;'; + put 'put ''ZmZlcnx8IWEuRGF0YVZpZXcpLHU9ZyxwPTAsdj0iSW50OEFycmF5LFVpbnQ4QXJyYXksVWludDhDbGFtcGVkQXJyYXksSW50MTZBcnJheSxVaW50MTZBcnJheSxJbnQzMkFycmF5LFVpbnQzMkFycmF5LEZsb2F0MzJBcnJheSxGbG9hdDY0QXJyYXkiLnNwbGl0KCIsIik7cDw5Oykocj1hW3Zb''@;'; + put 'put ''cCsrXV0pPyhjKHIucHJvdG90eXBlLGgsITApLGMoci5wcm90b3R5cGUsZiwhMCkpOnU9ITE7QS5leHBvcnRzPXtBQlY6ZyxDT05TVFI6dSxUWVBFRDpoLFZJRVc6Zn19LGZ1bmN0aW9uKEEsZSxsKXtBLmV4cG9ydHM9bCgyOSl8fCFsKDMpKGZ1bmN0aW9uKCl7dmFyIHI9TWF0aC5yYW5kb20o''@;'; + put 'put ''KTtfX2RlZmluZVNldHRlcl9fLmNhbGwobnVsbCxyLGZ1bmN0aW9uKCl7fSksZGVsZXRlIGwoMilbcl19KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCk7QS5leHBvcnRzPWZ1bmN0aW9uKGEpe3Ioci5TLGEse29mOmZ1bmN0aW9uKCl7Zm9yKHZhciBvPWFyZ3VtZW50cy5sZW5ndGgsaD1u''@;'; + put 'put ''ZXcgQXJyYXkobyk7by0tOyloW29dPWFyZ3VtZW50c1tvXTtyZXR1cm4gbmV3IHRoaXMoaCl9fSl9fSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgwKSxhPWwoMTApLGM9bCgxOCksbz1sKDQwKTtBLmV4cG9ydHM9ZnVuY3Rpb24oaCl7cihyLlMsaCx7ZnJvbTpmdW5jdGlvbihnKXt2YXIgdSxw''@;'; + put 'put ''LHYsSCxDPWFyZ3VtZW50c1sxXTtyZXR1cm4gYSh0aGlzKSwodT1DIT09aykmJmEoQyksZz09az9uZXcgdGhpczoocD1bXSx1Pyh2PTAsSD1jKEMsYXJndW1lbnRzWzJdLDIpLG8oZywhMSxmdW5jdGlvbihWKXtwLnB1c2goSChWLHYrKykpfSkpOm8oZywhMSxwLnB1c2gscCksbmV3IHRoaXMo''@;'; + put 'put ''cCkpfX0pfX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoNCksYT1sKDIpLmRvY3VtZW50LGM9cihhKSYmcihhLmNyZWF0ZUVsZW1lbnQpO0EuZXhwb3J0cz1mdW5jdGlvbihvKXtyZXR1cm4gYz9hLmNyZWF0ZUVsZW1lbnQobyk6e319fSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgyKSxhPWwo''@;'; + put 'put ''MjYpLGM9bCgyOSksbz1sKDk0KSxoPWwoOCkuZjtBLmV4cG9ydHM9ZnVuY3Rpb24oZil7dmFyIGc9YS5TeW1ib2x8fChhLlN5bWJvbD1jP3t9OnIuU3ltYm9sfHx7fSk7Il8iPT1mLmNoYXJBdCgwKXx8ZiBpbiBnfHxoKGcsZix7dmFsdWU6by5mKGYpfSl9fSxmdW5jdGlvbihBLGUsbCl7dmFy''@;'; + put 'put ''IHI9bCg0NykoImtleXMiKSxhPWwoMzMpO0EuZXhwb3J0cz1mdW5jdGlvbihjKXtyZXR1cm4gcltjXXx8KHJbY109YShjKSl9fSxmdW5jdGlvbihBLGUpe0EuZXhwb3J0cz0iY29uc3RydWN0b3IsaGFzT3duUHJvcGVydHksaXNQcm90b3R5cGVPZixwcm9wZXJ0eUlzRW51bWVyYWJsZSx0b0xv''@;'; + put 'put ''Y2FsZVN0cmluZyx0b1N0cmluZyx2YWx1ZU9mIi5zcGxpdCgiLCIpfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgyKS5kb2N1bWVudDtBLmV4cG9ydHM9ciYmci5kb2N1bWVudEVsZW1lbnR9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDQpLGE9bCgxKSxjPWZ1bmN0aW9uKG8saCl7aWYoYShv''@;'; + put 'put ''KSwhcihoKSYmbnVsbCE9PWgpdGhyb3cgVHlwZUVycm9yKGgrIjogY2FuJ3Qgc2V0IGFzIHByb3RvdHlwZSEiKX07QS5leHBvcnRzPXtzZXQ6T2JqZWN0LnNldFByb3RvdHlwZU9mfHwoIl9fcHJvdG9fXyJpbnt9P2Z1bmN0aW9uKG8saCxmKXt0cnl7KGY9bCgxOCkoRnVuY3Rpb24uY2FsbCxs''@;'; + put 'put ''KDE2KS5mKE9iamVjdC5wcm90b3R5cGUsIl9fcHJvdG9fXyIpLnNldCwyKSkobyxbXSksaD0hKG8gaW5zdGFuY2VvZiBBcnJheSl9Y2F0Y2goZyl7aD0hMH1yZXR1cm4gZnVuY3Rpb24odSxwKXtyZXR1cm4gYyh1LHApLGg/dS5fX3Byb3RvX189cDpmKHUscCksdX19KHt9LCExKTprKSxjaGVj''@;'; + put 'put ''azpjfX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoNCksYT1sKDcxKS5zZXQ7QS5leHBvcnRzPWZ1bmN0aW9uKGMsbyxoKXt2YXIgZixnPW8uY29uc3RydWN0b3I7cmV0dXJuIGchPT1oJiYiZnVuY3Rpb24iPT10eXBlb2YgZyYmKGY9Zy5wcm90b3R5cGUpIT09aC5wcm90b3R5cGUmJnIoZikm''@;'; + put 'put ''JmEmJmEoYyxmKSxjfX0sZnVuY3Rpb24oQSxlKXtBLmV4cG9ydHM9Ilx0XG5cdlxmXHIgXHhhMFx1MTY4MFx1MTgwZVx1MjAwMFx1MjAwMVx1MjAwMlx1MjAwM1x1MjAwNFx1MjAwNVx1MjAwNlx1MjAwN1x1MjAwOFx1MjAwOVx1MjAwYVx1MjAyZlx1MjA1Zlx1MzAwMFx1MjAyOFx1MjAyOVx1''@;'; + put 'put ''ZmVmZiJ9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDIwKSxhPWwoMjMpO0EuZXhwb3J0cz1mdW5jdGlvbihvKXt2YXIgaD1TdHJpbmcoYSh0aGlzKSksZj0iIixnPXIobyk7aWYoZzwwfHxnPT0xLzApdGhyb3cgUmFuZ2VFcnJvcigiQ291bnQgY2FuJ3QgYmUgbmVnYXRpdmUiKTtmb3IoOzA8''@;'; + put 'put ''ZzsoZz4+Pj0xKSYmKGgrPWgpKTEmZyYmKGYrPWgpO3JldHVybiBmfX0sZnVuY3Rpb24oQSxlKXtBLmV4cG9ydHM9TWF0aC5zaWdufHxmdW5jdGlvbihyKXtyZXR1cm4gMD09KHI9K3IpfHxyIT1yP3I6cjwwPy0xOjF9fSxmdW5jdGlvbihBLGUpe3ZhciBsPU1hdGguZXhwbTE7QS5leHBvcnRz''@;'; + put 'put ''PSFsfHwyMjAyNS40NjU3OTQ4MDY3MTg8bCgxMCl8fGwoMTApPDIyMDI1LjQ2NTc5NDgwNjcxOHx8LTJlLTE3IT1sKC0yZS0xNyk/ZnVuY3Rpb24oYSl7cmV0dXJuIDA9PShhPSthKT9hOi0xZS02PGEmJmE8MWUtNj9hK2EqYS8yOk1hdGguZXhwKGEpLTF9Omx9LGZ1bmN0aW9uKEEsZSxsKXt2''@;'; + put 'put ''YXIgcj1sKDU2KSxhPWwoMjMpO0EuZXhwb3J0cz1mdW5jdGlvbihjLG8saCl7aWYocihvKSl0aHJvdyBUeXBlRXJyb3IoIlN0cmluZyMiK2grIiBkb2Vzbid0IGFjY2VwdCByZWdleCEiKTtyZXR1cm4gU3RyaW5nKGEoYykpfX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoNSkoIm1hdGNoIik7''@;'; + put 'put ''QS5leHBvcnRzPWZ1bmN0aW9uKGEpe3ZhciBjPS8uLzt0cnl7Ii8uLyJbYV0oYyl9Y2F0Y2gobyl7dHJ5e3JldHVybiBjW3JdPSExLCEiLy4vIlthXShjKX1jYXRjaChoKXt9fXJldHVybiEwfX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMjkpLGE9bCgwKSxjPWwoMTIpLG89bCgxMSksaD1s''@;'; + put 'put ''KDQ2KSxmPWwoODApLGc9bCg0MyksdT1sKDE3KSxwPWwoNSkoIml0ZXJhdG9yIiksdj0hKFtdLmtleXMmJiJuZXh0ImluW10ua2V5cygpKSxIPSJ2YWx1ZXMiLEM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc307QS5leHBvcnRzPWZ1bmN0aW9uKFYsUyxfLGIsTSx4LEUpe2YoXyxTLGIpO3ZhciB3''@;'; + put 'put ''LE4sSSxXPWZ1bmN0aW9uKHYxKXtpZighdiYmdjEgaW4gbDEpcmV0dXJuIGwxW3YxXTtzd2l0Y2godjEpe2Nhc2Uia2V5cyI6Y2FzZSBIOnJldHVybiBmdW5jdGlvbigpe3JldHVybiBuZXcgXyh0aGlzLHYxKX19cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBfKHRoaXMsdjEpfX0sTz1T''@;'; + put 'put ''KyIgSXRlcmF0b3IiLEI9TT09SCxSPSExLGwxPVYucHJvdG90eXBlLGExPWwxW3BdfHxsMVsiQEBpdGVyYXRvciJdfHxNJiZsMVtNXSxoMT1hMXx8VyhNKSx1MT1NP0I/VygiZW50cmllcyIpOmgxOmsscDE9IkFycmF5Ij09UyYmbDEuZW50cmllc3x8YTE7aWYocDEmJihJPXUocDEuY2FsbChu''@;'; + put 'put ''ZXcgVikpKSE9PU9iamVjdC5wcm90b3R5cGUmJkkubmV4dCYmKGcoSSxPLCEwKSxyfHwiZnVuY3Rpb24iPT10eXBlb2YgSVtwXXx8byhJLHAsQykpLEImJmExJiZhMS5uYW1lIT09SCYmKFI9ITAsaDE9ZnVuY3Rpb24oKXtyZXR1cm4gYTEuY2FsbCh0aGlzKX0pLHImJiFFfHwhdiYmIVImJmwx''@;'; + put 'put ''W3BdfHxvKGwxLHAsaDEpLGhbU109aDEsaFtPXT1DLE0paWYodz17dmFsdWVzOkI/aDE6VyhIKSxrZXlzOng/aDE6Vygia2V5cyIpLGVudHJpZXM6dTF9LEUpZm9yKE4gaW4gdylOIGluIGwxfHxjKGwxLE4sd1tOXSk7ZWxzZSBhKGEuUCthLkYqKHZ8fFIpLFMsdyk7cmV0dXJuIHd9fSxmdW5j''@;'; + put 'put ''dGlvbihBLGUsbCl7dmFyIHI9bCgzNiksYT1sKDMyKSxjPWwoNDMpLG89e307bCgxMSkobyxsKDUpKCJpdGVyYXRvciIpLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSxBLmV4cG9ydHM9ZnVuY3Rpb24oaCxmLGcpe2gucHJvdG90eXBlPXIobyx7bmV4dDphKDEsZyl9KSxjKGgsZisiIEl0ZXJh''@;'; + put 'put ''dG9yIil9fSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCg0NiksYT1sKDUpKCJpdGVyYXRvciIpLGM9QXJyYXkucHJvdG90eXBlO0EuZXhwb3J0cz1mdW5jdGlvbihvKXtyZXR1cm4gbyE9PWsmJihyLkFycmF5PT09b3x8Y1thXT09PW8pfX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoOCksYT1s''@;'; + put 'put ''KDMyKTtBLmV4cG9ydHM9ZnVuY3Rpb24oYyxvLGgpe28gaW4gYz9yLmYoYyxvLGEoMCxoKSk6Y1tvXT1ofX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoNDQpLGE9bCg1KSgiaXRlcmF0b3IiKSxjPWwoNDYpO0EuZXhwb3J0cz1sKDI2KS5nZXRJdGVyYXRvck1ldGhvZD1mdW5jdGlvbihvKXtp''@;'; + put 'put ''ZihvIT1rKXJldHVybiBvW2FdfHxvWyJAQGl0ZXJhdG9yIl18fGNbcihvKV19fSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgyMTMpO0EuZXhwb3J0cz1mdW5jdGlvbihhLGMpe3JldHVybiBuZXcocihhKSkoYyl9fSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCg5KSxhPWwoMzUpLGM9bCg2KTtB''@;'; + put 'put ''LmV4cG9ydHM9ZnVuY3Rpb24oaCl7Zm9yKHZhciBmPXIodGhpcyksZz1jKGYubGVuZ3RoKSx1PWFyZ3VtZW50cy5sZW5ndGgscD1hKDE8dT9hcmd1bWVudHNbMV06ayxnKSx2PTI8dT9hcmd1bWVudHNbMl06ayxIPXY9PT1rP2c6YSh2LGcpO3A8SDspZltwKytdPWg7cmV0dXJuIGZ9fSxmdW5j''@;'; + put 'put ''dGlvbihBLGUsbCl7dmFyIHI9bCgzMSksYT1sKDExMSksYz1sKDQ2KSxvPWwoMTUpO0EuZXhwb3J0cz1sKDc5KShBcnJheSwiQXJyYXkiLGZ1bmN0aW9uKGgsZil7dGhpcy5fdD1vKGgpLHRoaXMuX2k9MCx0aGlzLl9rPWZ9LGZ1bmN0aW9uKCl7dmFyIGg9dGhpcy5fdCxmPXRoaXMuX2ssZz10''@;'; + put 'put ''aGlzLl9pKys7cmV0dXJuIWh8fGgubGVuZ3RoPD1nPyh0aGlzLl90PWssYSgxKSk6YSgwLCJrZXlzIj09Zj9nOiJ2YWx1ZXMiPT1mP2hbZ106W2csaFtnXV0pfSwidmFsdWVzIiksYy5Bcmd1bWVudHM9Yy5BcnJheSxyKCJrZXlzIikscigidmFsdWVzIikscigiZW50cmllcyIpfSxmdW5jdGlv''@;'; + put 'put ''bihBLGUsbCl7dmFyIHIsYSxjPWwoNTApLG89UmVnRXhwLnByb3RvdHlwZS5leGVjLGg9U3RyaW5nLnByb3RvdHlwZS5yZXBsYWNlLGY9byxnPSJsYXN0SW5kZXgiLHU9KGE9L2IqL2csby5jYWxsKHI9L2EvLCJhIiksby5jYWxsKGEsImEiKSwwIT09cltnXXx8MCE9PWFbZ10pLHA9LygpPz8v''@;'; + put 'put ''LmV4ZWMoIiIpWzFdIT09azsodXx8cCkmJihmPWZ1bmN0aW9uKEgpe3ZhciBDLFYsUyxfLGI9dGhpcztyZXR1cm4gcCYmKFY9bmV3IFJlZ0V4cCgiXiIrYi5zb3VyY2UrIiQoPyFcXHMpIixjLmNhbGwoYikpKSx1JiYoQz1iW2ddKSxTPW8uY2FsbChiLEgpLHUmJlMmJihiW2ddPWIuZ2xvYmFs''@;'; + put 'put ''P1MuaW5kZXgrU1swXS5sZW5ndGg6QykscCYmUyYmMTxTLmxlbmd0aCYmaC5jYWxsKFNbMF0sVixmdW5jdGlvbigpe2ZvcihfPTE7Xzxhcmd1bWVudHMubGVuZ3RoLTI7XysrKWFyZ3VtZW50c1tfXT09PWsmJihTW19dPWspfSksU30pLEEuZXhwb3J0cz1mfSxmdW5jdGlvbihBLGUsbCl7dmFy''@;'; + put 'put ''IHI9bCg1NSkoITApO0EuZXhwb3J0cz1mdW5jdGlvbihhLGMsbyl7cmV0dXJuIGMrKG8/cihhLGMpLmxlbmd0aDoxKX19LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcixhLGMsbz1sKDE4KSxoPWwoMTAxKSxmPWwoNzApLGc9bCg2NiksdT1sKDIpLHA9dS5wcm9jZXNzLHY9dS5zZXRJbW1lZGlhdGUs''@;'; + put 'put ''SD11LmNsZWFySW1tZWRpYXRlLEM9dS5NZXNzYWdlQ2hhbm5lbCxWPXUuRGlzcGF0Y2gsUz0wLF89e30sYj0ib25yZWFkeXN0YXRlY2hhbmdlIixNPWZ1bmN0aW9uKCl7dmFyIEU9K3RoaXM7aWYoXy5oYXNPd25Qcm9wZXJ0eShFKSl7dmFyIHc9X1tFXTtkZWxldGUgX1tFXSx3KCl9fSx4PWZ1''@;'; + put 'put ''bmN0aW9uKEUpe00uY2FsbChFLmRhdGEpfTt2JiZIfHwodj1mdW5jdGlvbih3KXtmb3IodmFyIE49W10sST0xO0k8YXJndW1lbnRzLmxlbmd0aDspTi5wdXNoKGFyZ3VtZW50c1tJKytdKTtyZXR1cm4gX1srK1NdPWZ1bmN0aW9uKCl7aCgiZnVuY3Rpb24iPT10eXBlb2Ygdz93OkZ1bmN0aW9u''@;'; + put 'put ''KHcpLE4pfSxyKFMpLFN9LEg9ZnVuY3Rpb24odyl7ZGVsZXRlIF9bd119LCJwcm9jZXNzIj09bCgxOSkocCk/cj1mdW5jdGlvbihFKXtwLm5leHRUaWNrKG8oTSxFLDEpKX06ViYmVi5ub3c/cj1mdW5jdGlvbihFKXtWLm5vdyhvKE0sRSwxKSl9OkM/KGM9KGE9bmV3IEMpLnBvcnQyLGEucG9y''@;'; + put 'put ''dDEub25tZXNzYWdlPXgscj1vKGMucG9zdE1lc3NhZ2UsYywxKSk6dS5hZGRFdmVudExpc3RlbmVyJiYiZnVuY3Rpb24iPT10eXBlb2YgcG9zdE1lc3NhZ2UmJiF1LmltcG9ydFNjcmlwdHM/KHI9ZnVuY3Rpb24oRSl7dS5wb3N0TWVzc2FnZShFKyIiLCIqIil9LHUuYWRkRXZlbnRMaXN0ZW5l''@;'; + put 'put ''cigibWVzc2FnZSIseCwhMSkpOnI9YiBpbiBnKCJzY3JpcHQiKT9mdW5jdGlvbihFKXtmLmFwcGVuZENoaWxkKGcoInNjcmlwdCIpKVtiXT1mdW5jdGlvbigpe2YucmVtb3ZlQ2hpbGQodGhpcyksTS5jYWxsKEUpfX06ZnVuY3Rpb24oRSl7c2V0VGltZW91dChvKE0sRSwxKSwwKX0pLEEuZXhw''@;'; + put 'put ''b3J0cz17c2V0OnYsY2xlYXI6SH19LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDIpLGE9bCg4OSkuc2V0LGM9ci5NdXRhdGlvbk9ic2VydmVyfHxyLldlYktpdE11dGF0aW9uT2JzZXJ2ZXIsbz1yLnByb2Nlc3MsaD1yLlByb21pc2UsZj0icHJvY2VzcyI9PWwoMTkpKG8pO0EuZXhwb3J0cz1m''@;'; + put 'put ''dW5jdGlvbigpe3ZhciBnLHUscCx2PWZ1bmN0aW9uKCl7dmFyIFMsXztmb3IoZiYmKFM9by5kb21haW4pJiZTLmV4aXQoKTtnOyl7Xz1nLmZuLGc9Zy5uZXh0O3RyeXtfKCl9Y2F0Y2goYil7dGhyb3cgZz9wKCk6dT1rLGJ9fXU9ayxTJiZTLmVudGVyKCl9O2lmKGYpcD1mdW5jdGlvbigpe28u''@;'; + put 'put ''bmV4dFRpY2sodil9O2Vsc2UgaWYoIWN8fHIubmF2aWdhdG9yJiZyLm5hdmlnYXRvci5zdGFuZGFsb25lKWlmKGgmJmgucmVzb2x2ZSl7dmFyIEg9aC5yZXNvbHZlKGspO3A9ZnVuY3Rpb24oKXtILnRoZW4odil9fWVsc2UgcD1mdW5jdGlvbigpe2EuY2FsbChyLHYpfTtlbHNle3ZhciBDPSEw''@;'; + put 'put ''LFY9ZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIiIpO25ldyBjKHYpLm9ic2VydmUoVix7Y2hhcmFjdGVyRGF0YTohMH0pLHA9ZnVuY3Rpb24oKXtWLmRhdGE9Qz0hQ319cmV0dXJuIGZ1bmN0aW9uKFMpe3ZhciBfPXtmbjpTLG5leHQ6a307dSYmKHUubmV4dD1fKSxnfHwoZz1fLHAoKSksdT1f''@;'; + put 'put ''fX19LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDEwKTtmdW5jdGlvbiBhKGMpe3ZhciBvLGg7dGhpcy5wcm9taXNlPW5ldyBjKGZ1bmN0aW9uKGYsZyl7aWYobyE9PWt8fGghPT1rKXRocm93IFR5cGVFcnJvcigiQmFkIFByb21pc2UgY29uc3RydWN0b3IiKTtvPWYsaD1nfSksdGhpcy5yZXNv''@;'; + put 'put ''bHZlPXIobyksdGhpcy5yZWplY3Q9cihoKX1BLmV4cG9ydHMuZj1mdW5jdGlvbihjKXtyZXR1cm4gbmV3IGEoYyl9fSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgyKSxhPWwoNyksYz1sKDI5KSxvPWwoNjIpLGg9bCgxMSksZj1sKDQxKSxnPWwoMyksdT1sKDM5KSxwPWwoMjApLHY9bCg2KSxI''@;'; + put 'put ''PWwoMTIyKSxDPWwoMzcpLmYsVj1sKDgpLmYsUz1sKDg1KSxfPWwoNDMpLGI9IkFycmF5QnVmZmVyIixNPSJEYXRhVmlldyIseD0icHJvdG90eXBlIixFPSJXcm9uZyBpbmRleCEiLHc9cltiXSxOPXJbTV0sST1yLk1hdGgsVz1yLlJhbmdlRXJyb3IsTz1yLkluZmluaXR5LEI9dyxSPUkuYWJz''@;'; + put 'put ''LGwxPUkucG93LGExPUkuZmxvb3IsaDE9SS5sb2csdTE9SS5MTjIscDE9ImJ5dGVMZW5ndGgiLHYxPSJieXRlT2Zmc2V0IixFMT1hPyJfYiI6ImJ1ZmZlciIsaj1hPyJfbCI6cDEsYzE9YT8iX28iOnYxO2Z1bmN0aW9uIFYxKFkscSxKKXt2YXIgQTEsTjEsUzEsbjE9bmV3IEFycmF5KEopLGkx''@;'; + put 'put ''PTgqSi1xLTEsZjE9KDE8PGkxKS0xLHgxPWYxPj4xLEkxPTIzPT09cT9sMSgyLC0yNCktbDEoMiwtNzcpOjAsSjE9MCx0MD1ZPDB8fDA9PT1ZJiYxL1k8MD8xOjA7Zm9yKChZPVIoWSkpIT1ZfHxZPT09Tz8oTjE9WSE9WT8xOjAsQTE9ZjEpOihBMT1hMShoMShZKS91MSksWSooUzE9bDEoMiwt''@;'; + put 'put ''QTEpKTwxJiYoQTEtLSxTMSo9MiksMjw9KFkrPTE8PUExK3gxP0kxL1MxOkkxKmwxKDIsMS14MSkpKlMxJiYoQTErKyxTMS89MiksZjE8PUExK3gxPyhOMT0wLEExPWYxKToxPD1BMSt4MT8oTjE9KFkqUzEtMSkqbDEoMixxKSxBMSs9eDEpOihOMT1ZKmwxKDIseDEtMSkqbDEoMixxKSxBMT0w''@;'; + put 'put ''KSk7ODw9cTtuMVtKMSsrXT0yNTUmTjEsTjEvPTI1NixxLT04KTtmb3IoQTE9QTE8PHF8TjEsaTErPXE7MDxpMTtuMVtKMSsrXT0yNTUmQTEsQTEvPTI1NixpMS09OCk7cmV0dXJuIG4xWy0tSjFdfD0xMjgqdDAsbjF9ZnVuY3Rpb24gXzEoWSxxLEope3ZhciBBMSxOMT04KkotcS0xLFMxPSgx''@;'; + put 'put ''PDxOMSktMSxuMT1TMT4+MSxpMT1OMS03LGYxPUotMSx4MT1ZW2YxLS1dLEkxPTEyNyZ4MTtmb3IoeDE+Pj03OzA8aTE7STE9MjU2KkkxK1lbZjFdLGYxLS0saTEtPTgpO2ZvcihBMT1JMSYoMTw8LWkxKS0xLEkxPj49LWkxLGkxKz1xOzA8aTE7QTE9MjU2KkExK1lbZjFdLGYxLS0saTEtPTgp''@;'; + put 'put ''O2lmKDA9PT1JMSlJMT0xLW4xO2Vsc2V7aWYoSTE9PT1TMSlyZXR1cm4gQTE/TmFOOngxPy1POk87QTErPWwxKDIscSksSTEtPW4xfXJldHVybih4MT8tMToxKSpBMSpsMSgyLEkxLXEpfWZ1bmN0aW9uIFEoWSl7cmV0dXJuIFlbM108PDI0fFlbMl08PDE2fFlbMV08PDh8WVswXX1mdW5jdGlv''@;'; + put 'put ''biBzMShZKXtyZXR1cm5bMjU1JlldfWZ1bmN0aW9uIG0xKFkpe3JldHVyblsyNTUmWSxZPj44JjI1NV19ZnVuY3Rpb24gYjEoWSl7cmV0dXJuWzI1NSZZLFk+PjgmMjU1LFk+PjE2JjI1NSxZPj4yNCYyNTVdfWZ1bmN0aW9uIEIxKFkpe3JldHVybiBWMShZLDUyLDgpfWZ1bmN0aW9uICQoWSl7''@;'; + put 'put ''cmV0dXJuIFYxKFksMjMsNCl9ZnVuY3Rpb24geihZLHEsSil7VihZW3hdLHEse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzW0pdfX0pfWZ1bmN0aW9uIHkoWSxxLEosQTEpe3ZhciBOMT1IKCtKKTtpZihZW2pdPE4xK3EpdGhyb3cgVyhFKTt2YXIgUzE9TjErWVtjMV0sbjE9WVtFMV0uX2Iu''@;'; + put 'put ''c2xpY2UoUzEsUzErcSk7cmV0dXJuIEExP24xOm4xLnJldmVyc2UoKX1mdW5jdGlvbiBEKFkscSxKLEExLE4xLFMxKXt2YXIgbjE9SCgrSik7aWYoWVtqXTxuMStxKXRocm93IFcoRSk7Zm9yKHZhciBpMT1ZW0UxXS5fYixmMT1uMStZW2MxXSx4MT1BMSgrTjEpLEkxPTA7STE8cTtJMSsrKWkx''@;'; + put 'put ''W2YxK0kxXT14MVtTMT9JMTpxLUkxLTFdfWlmKG8uQUJWKXtpZighZyhmdW5jdGlvbigpe3coMSl9KXx8IWcoZnVuY3Rpb24oKXtuZXcgdygtMSl9KXx8ZyhmdW5jdGlvbigpe3JldHVybiBuZXcgdyxuZXcgdygxLjUpLG5ldyB3KE5hTiksdy5uYW1lIT1ifSkpe2Zvcih2YXIgWixUPSh3PWZ1''@;'; + put 'put ''bmN0aW9uKHEpe3JldHVybiB1KHRoaXMsdyksbmV3IEIoSChxKSl9KVt4XT1CW3hdLFA9QyhCKSxlMT0wO2UxPFAubGVuZ3RoOykoWj1QW2UxKytdKWluIHd8fGgodyxaLEJbWl0pO2N8fChULmNvbnN0cnVjdG9yPXcpfXZhciByMT1uZXcgTihuZXcgdygyKSksWjE9Tlt4XS5zZXRJbnQ4O3Ix''@;'; + put 'put ''LnNldEludDgoMCwyMTQ3NDgzNjQ4KSxyMS5zZXRJbnQ4KDEsMjE0NzQ4MzY0OSksIXIxLmdldEludDgoMCkmJnIxLmdldEludDgoMSl8fGYoTlt4XSx7c2V0SW50ODpmdW5jdGlvbihxLEope1oxLmNhbGwodGhpcyxxLEo8PDI0Pj4yNCl9LHNldFVpbnQ4OmZ1bmN0aW9uKHEsSil7WjEuY2Fs''@;'; + put 'put ''bCh0aGlzLHEsSjw8MjQ+PjI0KX19LCEwKX1lbHNlIHc9ZnVuY3Rpb24ocSl7dSh0aGlzLHcsYik7dmFyIEo9SChxKTt0aGlzLl9iPVMuY2FsbChuZXcgQXJyYXkoSiksMCksdGhpc1tqXT1KfSxOPWZ1bmN0aW9uKHEsSixBMSl7dSh0aGlzLE4sTSksdShxLHcsTSk7dmFyIE4xPXFbal0sUzE9''@;'; + put 'put ''cChKKTtpZihTMTwwfHxOMTxTMSl0aHJvdyBXKCJXcm9uZyBvZmZzZXQhIik7aWYoTjE8UzErKEExPUExPT09az9OMS1TMTp2KEExKSkpdGhyb3cgVygiV3JvbmcgbGVuZ3RoISIpO3RoaXNbRTFdPXEsdGhpc1tjMV09UzEsdGhpc1tqXT1BMX0sYSYmKHoodyxwMSwiX2wiKSx6KE4sImJ1ZmZl''@;'; + put 'put ''ciIsIl9iIikseihOLHAxLCJfbCIpLHooTix2MSwiX28iKSksZihOW3hdLHtnZXRJbnQ4OmZ1bmN0aW9uKHEpe3JldHVybiB5KHRoaXMsMSxxKVswXTw8MjQ+PjI0fSxnZXRVaW50ODpmdW5jdGlvbihxKXtyZXR1cm4geSh0aGlzLDEscSlbMF19LGdldEludDE2OmZ1bmN0aW9uKHEpe3ZhciBK''@;'; + put 'put ''PXkodGhpcywyLHEsYXJndW1lbnRzWzFdKTtyZXR1cm4oSlsxXTw8OHxKWzBdKTw8MTY+PjE2fSxnZXRVaW50MTY6ZnVuY3Rpb24ocSl7dmFyIEo9eSh0aGlzLDIscSxhcmd1bWVudHNbMV0pO3JldHVybiBKWzFdPDw4fEpbMF19LGdldEludDMyOmZ1bmN0aW9uKHEpe3JldHVybiBRKHkodGhp''@;'; + put 'put ''cyw0LHEsYXJndW1lbnRzWzFdKSl9LGdldFVpbnQzMjpmdW5jdGlvbihxKXtyZXR1cm4gUSh5KHRoaXMsNCxxLGFyZ3VtZW50c1sxXSkpPj4+MH0sZ2V0RmxvYXQzMjpmdW5jdGlvbihxKXtyZXR1cm4gXzEoeSh0aGlzLDQscSxhcmd1bWVudHNbMV0pLDIzLDQpfSxnZXRGbG9hdDY0OmZ1bmN0''@;'; + put 'put ''aW9uKHEpe3JldHVybiBfMSh5KHRoaXMsOCxxLGFyZ3VtZW50c1sxXSksNTIsOCl9LHNldEludDg6ZnVuY3Rpb24ocSxKKXtEKHRoaXMsMSxxLHMxLEopfSxzZXRVaW50ODpmdW5jdGlvbihxLEope0QodGhpcywxLHEsczEsSil9LHNldEludDE2OmZ1bmN0aW9uKHEsSil7RCh0aGlzLDIscSxt''@;'; + put 'put ''MSxKLGFyZ3VtZW50c1syXSl9LHNldFVpbnQxNjpmdW5jdGlvbihxLEope0QodGhpcywyLHEsbTEsSixhcmd1bWVudHNbMl0pfSxzZXRJbnQzMjpmdW5jdGlvbihxLEope0QodGhpcyw0LHEsYjEsSixhcmd1bWVudHNbMl0pfSxzZXRVaW50MzI6ZnVuY3Rpb24ocSxKKXtEKHRoaXMsNCxxLGIx''@;'; + put 'put ''LEosYXJndW1lbnRzWzJdKX0sc2V0RmxvYXQzMjpmdW5jdGlvbihxLEope0QodGhpcyw0LHEsJCxKLGFyZ3VtZW50c1syXSl9LHNldEZsb2F0NjQ6ZnVuY3Rpb24ocSxKKXtEKHRoaXMsOCxxLEIxLEosYXJndW1lbnRzWzJdKX19KTtfKHcsYiksXyhOLE0pLGgoTlt4XSxvLlZJRVcsITApLGVb''@;'; + put 'put ''Yl09dyxlW01dPU59LGZ1bmN0aW9uKEEsZSxsKXtBLmV4cG9ydHM9IWwoNykmJiFsKDMpKGZ1bmN0aW9uKCl7cmV0dXJuIDchPU9iamVjdC5kZWZpbmVQcm9wZXJ0eShsKDY2KSgiZGl2IiksImEiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gN319KS5hfSl9LGZ1bmN0aW9uKEEsZSxsKXtlLmY9''@;'; + put 'put ''bCg1KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMTQpLGE9bCgxNSksYz1sKDUyKSghMSksbz1sKDY4KSgiSUVfUFJPVE8iKTtBLmV4cG9ydHM9ZnVuY3Rpb24oaCxmKXt2YXIgZyx1PWEoaCkscD0wLHY9W107Zm9yKGcgaW4gdSlnIT1vJiZyKHUsZykmJnYucHVzaChnKTtmb3IoO3A8Zi5s''@;'; + put 'put ''ZW5ndGg7KXIodSxnPWZbcCsrXSkmJih+Yyh2LGcpfHx2LnB1c2goZykpO3JldHVybiB2fX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoOCksYT1sKDEpLGM9bCgzNCk7QS5leHBvcnRzPWwoNyk/T2JqZWN0LmRlZmluZVByb3BlcnRpZXM6ZnVuY3Rpb24oaCxmKXthKGgpO2Zvcih2YXIgZyx1''@;'; + put 'put ''PWMoZikscD11Lmxlbmd0aCx2PTA7djxwOylyLmYoaCxnPXVbdisrXSxmW2ddKTtyZXR1cm4gaH19LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDE1KSxhPWwoMzcpLmYsYz17fS50b1N0cmluZyxvPSJvYmplY3QiPT10eXBlb2Ygd2luZG93JiZ3aW5kb3cmJk9iamVjdC5nZXRPd25Qcm9wZXJ0''@;'; + put 'put ''eU5hbWVzP09iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHdpbmRvdyk6W107QS5leHBvcnRzLmY9ZnVuY3Rpb24oZil7cmV0dXJuIG8mJiJbb2JqZWN0IFdpbmRvd10iPT1jLmNhbGwoZik/ZnVuY3Rpb24oZyl7dHJ5e3JldHVybiBhKGcpfWNhdGNoKHUpe3JldHVybiBvLnNsaWNlKCl9fShm''@;'; + put 'put ''KTphKHIoZikpfX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoNyksYT1sKDM0KSxjPWwoNTMpLG89bCg0OSksaD1sKDkpLGY9bCg0OCksZz1PYmplY3QuYXNzaWduO0EuZXhwb3J0cz0hZ3x8bCgzKShmdW5jdGlvbigpe3ZhciB1PXt9LHA9e30sdj1TeW1ib2woKSxIPSJhYmNkZWZnaGlqa2xt''@;'; + put 'put ''bm9wcXJzdCI7cmV0dXJuIHVbdl09NyxILnNwbGl0KCIiKS5mb3JFYWNoKGZ1bmN0aW9uKEMpe3BbQ109Q30pLDchPWcoe30sdSlbdl18fE9iamVjdC5rZXlzKGcoe30scCkpLmpvaW4oIiIpIT1IfSk/ZnVuY3Rpb24ocCx2KXtmb3IodmFyIEg9aChwKSxDPWFyZ3VtZW50cy5sZW5ndGgsVj0x''@;'; + put 'put ''LFM9Yy5mLF89by5mO1Y8QzspZm9yKHZhciBiLE09Zihhcmd1bWVudHNbVisrXSkseD1TP2EoTSkuY29uY2F0KFMoTSkpOmEoTSksRT14Lmxlbmd0aCx3PTA7dzxFOyliPXhbdysrXSxyJiYhXy5jYWxsKE0sYil8fChIW2JdPU1bYl0pO3JldHVybiBIfTpnfSxmdW5jdGlvbihBLGUpe0EuZXhw''@;'; + put 'put ''b3J0cz1PYmplY3QuaXN8fGZ1bmN0aW9uKHIsYSl7cmV0dXJuIHI9PT1hPzAhPT1yfHwxL3I9PTEvYTpyIT1yJiZhIT1hfX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMTApLGE9bCg0KSxjPWwoMTAxKSxvPVtdLnNsaWNlLGg9e307QS5leHBvcnRzPUZ1bmN0aW9uLmJpbmR8fGZ1bmN0aW9u''@;'; + put 'put ''KGcpe3ZhciB1PXIodGhpcykscD1vLmNhbGwoYXJndW1lbnRzLDEpLHY9ZnVuY3Rpb24oKXt2YXIgSD1wLmNvbmNhdChvLmNhbGwoYXJndW1lbnRzKSk7cmV0dXJuIHRoaXMgaW5zdGFuY2VvZiB2P2Z1bmN0aW9uKEMsVixTKXtpZighKFYgaW4gaCkpe2Zvcih2YXIgXz1bXSxiPTA7YjxWO2Ir''@;'; + put 'put ''KylfW2JdPSJhWyIrYisiXSI7aFtWXT1GdW5jdGlvbigiRixhIiwicmV0dXJuIG5ldyBGKCIrXy5qb2luKCIsIikrIikiKX1yZXR1cm4gaFtWXShDLFMpfSh1LEgubGVuZ3RoLEgpOmModSxILGcpfTtyZXR1cm4gYSh1LnByb3RvdHlwZSkmJih2LnByb3RvdHlwZT11LnByb3RvdHlwZSksdn19''@;'; + put 'put ''LGZ1bmN0aW9uKEEsZSl7QS5leHBvcnRzPWZ1bmN0aW9uKGwscixhKXt2YXIgYz1hPT09aztzd2l0Y2goci5sZW5ndGgpe2Nhc2UgMDpyZXR1cm4gYz9sKCk6bC5jYWxsKGEpO2Nhc2UgMTpyZXR1cm4gYz9sKHJbMF0pOmwuY2FsbChhLHJbMF0pO2Nhc2UgMjpyZXR1cm4gYz9sKHJbMF0sclsx''@;'; + put 'put ''XSk6bC5jYWxsKGEsclswXSxyWzFdKTtjYXNlIDM6cmV0dXJuIGM/bChyWzBdLHJbMV0sclsyXSk6bC5jYWxsKGEsclswXSxyWzFdLHJbMl0pO2Nhc2UgNDpyZXR1cm4gYz9sKHJbMF0sclsxXSxyWzJdLHJbM10pOmwuY2FsbChhLHJbMF0sclsxXSxyWzJdLHJbM10pfXJldHVybiBsLmFwcGx5''@;'; + put 'put ''KGEscil9fSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgxOSk7QS5leHBvcnRzPWZ1bmN0aW9uKGEsYyl7aWYoIm51bWJlciIhPXR5cGVvZiBhJiYiTnVtYmVyIiE9cihhKSl0aHJvdyBUeXBlRXJyb3IoYyk7cmV0dXJuK2F9fSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCg0KSxhPU1hdGguZmxv''@;'; + put 'put ''b3I7QS5leHBvcnRzPWZ1bmN0aW9uKG8pe3JldHVybiFyKG8pJiZpc0Zpbml0ZShvKSYmYShvKT09PW99fSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgyKS5wYXJzZUZsb2F0LGE9bCg0NSkudHJpbTtBLmV4cG9ydHM9MS9yKGwoNzMpKyItMCIpIT0tMS8wP2Z1bmN0aW9uKG8pe3ZhciBoPWEo''@;'; + put 'put ''U3RyaW5nKG8pLDMpLGY9cihoKTtyZXR1cm4gMD09PWYmJiItIj09aC5jaGFyQXQoMCk/LTA6Zn06cn0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMikucGFyc2VJbnQsYT1sKDQ1KS50cmltLGM9bCg3Myksbz0vXlstK10/MFt4WF0vO0EuZXhwb3J0cz04IT09cihjKyIwOCIpfHwyMiE9PXIo''@;'; + put 'put ''YysiMHgxNiIpP2Z1bmN0aW9uKGYsZyl7dmFyIHU9YShTdHJpbmcoZiksMyk7cmV0dXJuIHIodSxnPj4+MHx8KG8udGVzdCh1KT8xNjoxMCkpfTpyfSxmdW5jdGlvbihBLGUpe0EuZXhwb3J0cz1NYXRoLmxvZzFwfHxmdW5jdGlvbihyKXtyZXR1cm4tMWUtODwocj0rcikmJnI8MWUtOD9yLXIq''@;'; + put 'put ''ci8yOk1hdGgubG9nKDErcil9fSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCg3NSksYT1NYXRoLnBvdyxjPWEoMiwtNTIpLG89YSgyLC0yMyksaD1hKDIsMTI3KSooMi1vKSxmPWEoMiwtMTI2KTtBLmV4cG9ydHM9TWF0aC5mcm91bmR8fGZ1bmN0aW9uKHUpe3ZhciBwLHYsSD1NYXRoLmFicyh1''@;'; + put 'put ''KSxDPXIodSk7cmV0dXJuIEg8Zj9DKihIL2YvbysxL2MtMS9jKSpmKm86aDwodj0ocD0oMStvL2MpKkgpLShwLUgpKXx8diE9dj9DKigxLzApOkMqdn19LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDEpO0EuZXhwb3J0cz1mdW5jdGlvbihhLGMsbyxoKXt0cnl7cmV0dXJuIGg/YyhyKG8pWzBd''@;'; + put 'put ''LG9bMV0pOmMobyl9Y2F0Y2goZyl7dmFyIGY9YS5yZXR1cm47dGhyb3cgZiE9PWsmJnIoZi5jYWxsKGEpKSxnfX19LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDEwKSxhPWwoOSksYz1sKDQ4KSxvPWwoNik7QS5leHBvcnRzPWZ1bmN0aW9uKGgsZixnLHUscCl7cihmKTt2YXIgdj1hKGgpLEg9''@;'; + put 'put ''Yyh2KSxDPW8odi5sZW5ndGgpLFY9cD9DLTE6MCxTPXA/LTE6MTtpZihnPDIpZm9yKDs7KXtpZihWIGluIEgpe3U9SFtWXSxWKz1TO2JyZWFrfWlmKFYrPVMscD9WPDA6Qzw9Vil0aHJvdyBUeXBlRXJyb3IoIlJlZHVjZSBvZiBlbXB0eSBhcnJheSB3aXRoIG5vIGluaXRpYWwgdmFsdWUiKX1m''@;'; + put 'put ''b3IoO3A/MDw9VjpWPEM7Vis9UylWIGluIEgmJih1PWYodSxIW1ZdLFYsdikpO3JldHVybiB1fX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoOSksYT1sKDM1KSxjPWwoNik7QS5leHBvcnRzPVtdLmNvcHlXaXRoaW58fGZ1bmN0aW9uKGgsZil7dmFyIGc9cih0aGlzKSx1PWMoZy5sZW5ndGgp''@;'; + put 'put ''LHA9YShoLHUpLHY9YShmLHUpLEg9Mjxhcmd1bWVudHMubGVuZ3RoP2FyZ3VtZW50c1syXTprLEM9TWF0aC5taW4oKEg9PT1rP3U6YShILHUpKS12LHUtcCksVj0xO2Zvcih2PHAmJnA8ditDJiYoVj0tMSx2Kz1DLTEscCs9Qy0xKTswPEMtLTspdiBpbiBnP2dbcF09Z1t2XTpkZWxldGUgZ1tw''@;'; + put 'put ''XSxwKz1WLHYrPVY7cmV0dXJuIGd9fSxmdW5jdGlvbihBLGUpe0EuZXhwb3J0cz1mdW5jdGlvbihsLHIpe3JldHVybnt2YWx1ZTpyLGRvbmU6ISFsfX19LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDg3KTtsKDApKHt0YXJnZXQ6IlJlZ0V4cCIscHJvdG86ITAsZm9yY2VkOnIhPT0vLi8uZXhl''@;'; + put 'put ''Y30se2V4ZWM6cn0pfSxmdW5jdGlvbihBLGUsbCl7bCg3KSYmImciIT0vLi9nLmZsYWdzJiZsKDgpLmYoUmVnRXhwLnByb3RvdHlwZSwiZmxhZ3MiLHtjb25maWd1cmFibGU6ITAsZ2V0OmwoNTApfSl9LGZ1bmN0aW9uKEEsZSl7QS5leHBvcnRzPWZ1bmN0aW9uKGwpe3RyeXtyZXR1cm57ZToh''@;'; + put 'put ''MSx2OmwoKX19Y2F0Y2gocil7cmV0dXJue2U6ITAsdjpyfX19fSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgxKSxhPWwoNCksYz1sKDkxKTtBLmV4cG9ydHM9ZnVuY3Rpb24obyxoKXtpZihyKG8pLGEoaCkmJmguY29uc3RydWN0b3I9PT1vKXJldHVybiBoO3ZhciBmPWMuZihvKTtyZXR1cm4o''@;'; + put 'put ''MCxmLnJlc29sdmUpKGgpLGYucHJvbWlzZX19LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDExNyksYT1sKDQyKTtBLmV4cG9ydHM9bCg2MSkoIk1hcCIsZnVuY3Rpb24oYyl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGModGhpcywwPGFyZ3VtZW50cy5sZW5ndGg/YXJndW1lbnRzWzBdOmsp''@;'; + put 'put ''fX0se2dldDpmdW5jdGlvbihvKXt2YXIgaD1yLmdldEVudHJ5KGEodGhpcywiTWFwIiksbyk7cmV0dXJuIGgmJmgudn0sc2V0OmZ1bmN0aW9uKG8saCl7cmV0dXJuIHIuZGVmKGEodGhpcywiTWFwIiksMD09PW8/MDpvLGgpfX0sciwhMCl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDgpLmYs''@;'; + put 'put ''YT1sKDM2KSxjPWwoNDEpLG89bCgxOCksaD1sKDM5KSxmPWwoNDApLGc9bCg3OSksdT1sKDExMSkscD1sKDM4KSx2PWwoNyksSD1sKDMwKS5mYXN0S2V5LEM9bCg0MiksVj12PyJfcyI6InNpemUiLFM9ZnVuY3Rpb24oXyxiKXt2YXIgTSx4PUgoYik7aWYoIkYiIT09eClyZXR1cm4gXy5faVt4''@;'; + put 'put ''XTtmb3IoTT1fLl9mO007TT1NLm4paWYoTS5rPT1iKXJldHVybiBNfTtBLmV4cG9ydHM9e2dldENvbnN0cnVjdG9yOmZ1bmN0aW9uKF8sYixNLHgpe3ZhciBFPV8oZnVuY3Rpb24odyxOKXtoKHcsRSxiLCJfaSIpLHcuX3Q9Yix3Ll9pPWEobnVsbCksdy5fZj1rLHcuX2w9ayx3W1ZdPTAsTiE9''@;'; + put 'put ''ayYmZihOLE0sd1t4XSx3KX0pO3JldHVybiBjKEUucHJvdG90eXBlLHtjbGVhcjpmdW5jdGlvbigpe2Zvcih2YXIgTj1DKHRoaXMsYiksST1OLl9pLFc9Ti5fZjtXO1c9Vy5uKVcucj0hMCxXLnAmJihXLnA9Vy5wLm49ayksZGVsZXRlIElbVy5pXTtOLl9mPU4uX2w9ayxOW1ZdPTB9LGRlbGV0''@;'; + put 'put ''ZTpmdW5jdGlvbih3KXt2YXIgTj1DKHRoaXMsYiksST1TKE4sdyk7aWYoSSl7dmFyIFc9SS5uLE89SS5wO2RlbGV0ZSBOLl9pW0kuaV0sSS5yPSEwLE8mJihPLm49VyksVyYmKFcucD1PKSxOLl9mPT1JJiYoTi5fZj1XKSxOLl9sPT1JJiYoTi5fbD1PKSxOW1ZdLS19cmV0dXJuISFJfSxmb3JF''@;'; + put 'put ''YWNoOmZ1bmN0aW9uKE4pe0ModGhpcyxiKTtmb3IodmFyIEksVz1vKE4sMTxhcmd1bWVudHMubGVuZ3RoP2FyZ3VtZW50c1sxXTprLDMpO0k9ST9JLm46dGhpcy5fZjspZm9yKFcoSS52LEkuayx0aGlzKTtJJiZJLnI7KUk9SS5wfSxoYXM6ZnVuY3Rpb24oTil7cmV0dXJuISFTKEModGhpcyxi''@;'; + put 'put ''KSxOKX19KSx2JiZyKEUucHJvdG90eXBlLCJzaXplIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEModGhpcyxiKVtWXX19KSxFfSxkZWY6ZnVuY3Rpb24oXyxiLE0pe3ZhciB4LEUsdz1TKF8sYik7cmV0dXJuIHc/dy52PU06KF8uX2w9dz17aTpFPUgoYiwhMCksazpiLHY6TSxwOng9Xy5fbCxu''@;'; + put 'put ''OmsscjohMX0sXy5fZnx8KF8uX2Y9dykseCYmKHgubj13KSxfW1ZdKyssIkYiIT09RSYmKF8uX2lbRV09dykpLF99LGdldEVudHJ5OlMsc2V0U3Ryb25nOmZ1bmN0aW9uKF8sYixNKXtnKF8sYixmdW5jdGlvbih4LEUpe3RoaXMuX3Q9Qyh4LGIpLHRoaXMuX2s9RSx0aGlzLl9sPWt9LGZ1bmN0''@;'; + put 'put ''aW9uKCl7Zm9yKHZhciB4PXRoaXMsRT14Ll9rLHc9eC5fbDt3JiZ3LnI7KXc9dy5wO3JldHVybiB4Ll90JiYoeC5fbD13PXc/dy5uOnguX3QuX2YpP3UoMCwia2V5cyI9PUU/dy5rOiJ2YWx1ZXMiPT1FP3cudjpbdy5rLHcudl0pOih4Ll90PWssdSgxKSl9LE0/ImVudHJpZXMiOiJ2YWx1ZXMi''@;'; + put 'put ''LCFNLCEwKSxwKGIpfX19LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDExNyksYT1sKDQyKTtBLmV4cG9ydHM9bCg2MSkoIlNldCIsZnVuY3Rpb24oYyl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGModGhpcywwPGFyZ3VtZW50cy5sZW5ndGg/YXJndW1lbnRzWzBdOmspfX0se2FkZDpmdW5j''@;'; + put 'put ''dGlvbihvKXtyZXR1cm4gci5kZWYoYSh0aGlzLCJTZXQiKSxvPTA9PT1vPzA6byxvKX19LHIpfSxmdW5jdGlvbihBLGUsbCl7dmFyIHIsYT1sKDIpLGM9bCgyNSkoMCksbz1sKDEyKSxoPWwoMzApLGY9bCg5OCksZz1sKDEyMCksdT1sKDQpLHA9bCg0Miksdj1sKDQyKSxIPSFhLkFjdGl2ZVhP''@;'; + put 'put ''YmplY3QmJiJBY3RpdmVYT2JqZWN0ImluIGEsQz0iV2Vha01hcCIsVj1oLmdldFdlYWssUz1PYmplY3QuaXNFeHRlbnNpYmxlLF89Zy51ZnN0b3JlLGI9ZnVuY3Rpb24oRSl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIEUodGhpcywwPGFyZ3VtZW50cy5sZW5ndGg/YXJndW1lbnRzWzBdOmsp''@;'; + put 'put ''fX0sTT17Z2V0OmZ1bmN0aW9uKHcpe2lmKHUodykpe3ZhciBOPVYodyk7cmV0dXJuITA9PT1OP18ocCh0aGlzLEMpKS5nZXQodyk6Tj9OW3RoaXMuX2ldOmt9fSxzZXQ6ZnVuY3Rpb24odyxOKXtyZXR1cm4gZy5kZWYocCh0aGlzLEMpLHcsTil9fSx4PUEuZXhwb3J0cz1sKDYxKShDLGIsTSxn''@;'; + put 'put ''LCEwLCEwKTt2JiZIJiYoZigocj1nLmdldENvbnN0cnVjdG9yKGIsQykpLnByb3RvdHlwZSxNKSxoLk5FRUQ9ITAsYyhbImRlbGV0ZSIsImhhcyIsImdldCIsInNldCJdLGZ1bmN0aW9uKEUpe3ZhciB3PXgucHJvdG90eXBlLE49d1tFXTtvKHcsRSxmdW5jdGlvbihJLFcpe2lmKHUoSSkmJiFT''@;'; + put 'put ''KEkpKXt0aGlzLl9mfHwodGhpcy5fZj1uZXcgcik7dmFyIE89dGhpcy5fZltFXShJLFcpO3JldHVybiJzZXQiPT1FP3RoaXM6T31yZXR1cm4gTi5jYWxsKHRoaXMsSSxXKX0pfSkpfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCg0MSksYT1sKDMwKS5nZXRXZWFrLGM9bCgxKSxvPWwoNCksaD1s''@;'; + put 'put ''KDM5KSxmPWwoNDApLGc9bCgyNSksdT1sKDE0KSxwPWwoNDIpLHY9Zyg1KSxIPWcoNiksQz0wLFY9ZnVuY3Rpb24oYil7cmV0dXJuIGIuX2x8fChiLl9sPW5ldyBTKX0sUz1mdW5jdGlvbigpe3RoaXMuYT1bXX0sXz1mdW5jdGlvbihiLE0pe3JldHVybiB2KGIuYSxmdW5jdGlvbih4KXtyZXR1''@;'; + put 'put ''cm4geFswXT09PU19KX07Uy5wcm90b3R5cGU9e2dldDpmdW5jdGlvbihiKXt2YXIgTT1fKHRoaXMsYik7aWYoTSlyZXR1cm4gTVsxXX0saGFzOmZ1bmN0aW9uKGIpe3JldHVybiEhXyh0aGlzLGIpfSxzZXQ6ZnVuY3Rpb24oYixNKXt2YXIgeD1fKHRoaXMsYik7eD94WzFdPU06dGhpcy5hLnB1''@;'; + put 'put ''c2goW2IsTV0pfSxkZWxldGU6ZnVuY3Rpb24oYil7dmFyIE09SCh0aGlzLmEsZnVuY3Rpb24oeCl7cmV0dXJuIHhbMF09PT1ifSk7cmV0dXJufk0mJnRoaXMuYS5zcGxpY2UoTSwxKSwhIX5NfX0sQS5leHBvcnRzPXtnZXRDb25zdHJ1Y3RvcjpmdW5jdGlvbihiLE0seCxFKXt2YXIgdz1iKGZ1''@;'; + put 'put ''bmN0aW9uKE4sSSl7aChOLHcsTSwiX2kiKSxOLl90PU0sTi5faT1DKyssSSE9KE4uX2w9aykmJmYoSSx4LE5bRV0sTil9KTtyZXR1cm4gcih3LnByb3RvdHlwZSx7ZGVsZXRlOmZ1bmN0aW9uKE4pe2lmKCFvKE4pKXJldHVybiExO3ZhciBJPWEoTik7cmV0dXJuITA9PT1JP1YocCh0aGlzLE0p''@;'; + put 'put ''KS5kZWxldGUoTik6SSYmdShJLHRoaXMuX2kpJiZkZWxldGUgSVt0aGlzLl9pXX0saGFzOmZ1bmN0aW9uKEkpe2lmKCFvKEkpKXJldHVybiExO3ZhciBXPWEoSSk7cmV0dXJuITA9PT1XP1YocCh0aGlzLE0pKS5oYXMoSSk6VyYmdShXLHRoaXMuX2kpfX0pLHd9LGRlZjpmdW5jdGlvbihiLE0s''@;'; + put 'put ''eCl7dmFyIEU9YShjKE0pLCEwKTtyZXR1cm4hMD09PUU/VihiKS5zZXQoTSx4KTpFW2IuX2ldPXgsYn0sdWZzdG9yZTpWfX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMzcpLGE9bCg1MyksYz1sKDEpLG89bCgyKS5SZWZsZWN0O0EuZXhwb3J0cz1vJiZvLm93bktleXN8fGZ1bmN0aW9uKGYp''@;'; + put 'put ''e3ZhciBnPXIuZihjKGYpKSx1PWEuZjtyZXR1cm4gdT9nLmNvbmNhdCh1KGYpKTpnfX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMjApLGE9bCg2KTtBLmV4cG9ydHM9ZnVuY3Rpb24oYyl7aWYoYz09PWspcmV0dXJuIDA7dmFyIG89cihjKSxoPWEobyk7aWYobyE9PWgpdGhyb3cgUmFuZ2VF''@;'; + put 'put ''cnJvcigiV3JvbmcgbGVuZ3RoISIpO3JldHVybiBofX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoNTQpLGE9bCg0KSxjPWwoNiksbz1sKDE4KSxoPWwoNSkoImlzQ29uY2F0U3ByZWFkYWJsZSIpO0EuZXhwb3J0cz1mdW5jdGlvbiBmKGcsdSxwLHYsSCxDLFYsUyl7Zm9yKHZhciBfLGIsTT1I''@;'; + put 'put ''LHg9MCxFPSEhViYmbyhWLFMsMyk7eDx2Oyl7aWYoeCBpbiBwKXtpZihfPUU/RShwW3hdLHgsdSk6cFt4XSxiPSExLGEoXykmJihiPShiPV9baF0pIT09az8hIWI6cihfKSksYiYmMDxDKU09ZihnLHUsXyxjKF8ubGVuZ3RoKSxNLEMtMSktMTtlbHNle2lmKDkwMDcxOTkyNTQ3NDA5OTE8PU0p''@;'; + put 'put ''dGhyb3cgVHlwZUVycm9yKCk7Z1tNXT1ffU0rK314Kyt9cmV0dXJuIE19fSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCg2KSxhPWwoNzQpLGM9bCgyMyk7QS5leHBvcnRzPWZ1bmN0aW9uKG8saCxmLGcpe3ZhciB1PVN0cmluZyhjKG8pKSxwPXUubGVuZ3RoLHY9Zj09PWs/IiAiOlN0cmluZyhm''@;'; + put 'put ''KSxIPXIoaCk7aWYoSDw9cHx8IiI9PXYpcmV0dXJuIHU7dmFyIEM9SC1wLFY9YS5jYWxsKHYsTWF0aC5jZWlsKEMvdi5sZW5ndGgpKTtyZXR1cm4gQzxWLmxlbmd0aCYmKFY9Vi5zbGljZSgwLEMpKSxnP1YrdTp1K1Z9fSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCg3KSxhPWwoMzQpLGM9bCgx''@;'; + put 'put ''NSksbz1sKDQ5KS5mO0EuZXhwb3J0cz1mdW5jdGlvbihoKXtyZXR1cm4gZnVuY3Rpb24oZil7Zm9yKHZhciBnLHU9YyhmKSxwPWEodSksdj1wLmxlbmd0aCxIPTAsQz1bXTtIPHY7KWc9cFtIKytdLHImJiFvLmNhbGwodSxnKXx8Qy5wdXNoKGg/W2csdVtnXV06dVtnXSk7cmV0dXJuIEN9fX0s''@;'; + put 'put ''ZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoNDQpLGE9bCgxMjcpO0EuZXhwb3J0cz1mdW5jdGlvbihjKXtyZXR1cm4gZnVuY3Rpb24oKXtpZihyKHRoaXMpIT1jKXRocm93IFR5cGVFcnJvcihjKyIjdG9KU09OIGlzbid0IGdlbmVyaWMiKTtyZXR1cm4gYSh0aGlzKX19fSxmdW5jdGlvbihBLGUs''@;'; + put 'put ''bCl7dmFyIHI9bCg0MCk7QS5leHBvcnRzPWZ1bmN0aW9uKGEsYyl7dmFyIG89W107cmV0dXJuIHIoYSwhMSxvLnB1c2gsbyxjKSxvfX0sZnVuY3Rpb24oQSxlKXtBLmV4cG9ydHM9TWF0aC5zY2FsZXx8ZnVuY3Rpb24ocixhLGMsbyxoKXtyZXR1cm4gMD09PWFyZ3VtZW50cy5sZW5ndGh8fHIh''@;'; + put 'put ''PXJ8fGEhPWF8fGMhPWN8fG8hPW98fGghPWg/TmFOOnI9PT0xLzB8fHI9PT0tMS8wP3I6KHItYSkqKGgtbykvKGMtYSkrb319LGZ1bmN0aW9uKEEsZSxsKXtsKDEzMCksbCgxMzMpLGwoMTM0KSxsKDEzNSksbCgxMzYpLGwoMTM3KSxsKDEzOCksbCgxMzkpLGwoMTQwKSxsKDE0MSksbCgxNDIp''@;'; + put 'put ''LGwoMTQzKSxsKDE0NCksbCgxNDUpLGwoMTQ2KSxsKDE0NyksbCgxNDgpLGwoMTQ5KSxsKDE1MCksbCgxNTEpLGwoMTUyKSxsKDE1MyksbCgxNTQpLGwoMTU1KSxsKDE1NiksbCgxNTcpLGwoMTU4KSxsKDE1OSksbCgxNjApLGwoMTYxKSxsKDE2MiksbCgxNjMpLGwoMTY0KSxsKDE2NSksbCgx''@;'; + put 'put ''NjYpLGwoMTY3KSxsKDE2OCksbCgxNjkpLGwoMTcwKSxsKDE3MSksbCgxNzIpLGwoMTczKSxsKDE3NCksbCgxNzUpLGwoMTc2KSxsKDE3NyksbCgxNzgpLGwoMTc5KSxsKDE4MCksbCgxODEpLGwoMTgyKSxsKDE4MyksbCgxODQpLGwoMTg1KSxsKDE4NiksbCgxODcpLGwoMTg4KSxsKDE4OSks''@;'; + put 'put ''bCgxOTApLGwoMTkxKSxsKDE5MiksbCgxOTMpLGwoMTk0KSxsKDE5NSksbCgxOTYpLGwoMTk3KSxsKDE5OCksbCgxOTkpLGwoMjAwKSxsKDIwMSksbCgyMDIpLGwoMjAzKSxsKDIwNCksbCgyMDUpLGwoMjA2KSxsKDIwNyksbCgyMDgpLGwoMjA5KSxsKDIxMCksbCgyMTEpLGwoMjEyKSxsKDIx''@;'; + put 'put ''NCksbCgyMTUpLGwoMjE2KSxsKDIxNyksbCgyMTgpLGwoMjE5KSxsKDIyMCksbCgyMjEpLGwoMjIyKSxsKDIyMyksbCgyMjQpLGwoMjI1KSxsKDg2KSxsKDIyNiksbCgyMjcpLGwoMTEyKSxsKDIyOCksbCgxMTMpLGwoMjI5KSxsKDIzMCksbCgyMzEpLGwoMjMyKSxsKDIzMyksbCgxMTYpLGwo''@;'; + put 'put ''MTE4KSxsKDExOSksbCgyMzQpLGwoMjM1KSxsKDIzNiksbCgyMzcpLGwoMjM4KSxsKDIzOSksbCgyNDApLGwoMjQxKSxsKDI0MiksbCgyNDMpLGwoMjQ0KSxsKDI0NSksbCgyNDYpLGwoMjQ3KSxsKDI0OCksbCgyNDkpLGwoMjUwKSxsKDI1MSksbCgyNTMpLGwoMjU0KSxsKDI1NiksbCgyNTcp''@;'; + put 'put ''LGwoMjU4KSxsKDI1OSksbCgyNjApLGwoMjYxKSxsKDI2MiksbCgyNjMpLGwoMjY0KSxsKDI2NSksbCgyNjYpLGwoMjY3KSxsKDI2OCksbCgyNjkpLGwoMjcwKSxsKDI3MSksbCgyNzIpLGwoMjczKSxsKDI3NCksbCgyNzUpLGwoMjc2KSxsKDI3NyksbCgyNzgpLGwoMjc5KSxsKDI4MCksbCgy''@;'; + put 'put ''ODEpLGwoMjgyKSxsKDI4MyksbCgyODQpLGwoMjg1KSxsKDI4NiksbCgyODcpLGwoMjg4KSxsKDI4OSksbCgyOTApLGwoMjkxKSxsKDI5MiksbCgyOTMpLGwoMjk0KSxsKDI5NSksbCgyOTYpLGwoMjk3KSxsKDI5OCksbCgyOTkpLGwoMzAwKSxsKDMwMSksbCgzMDIpLGwoMzAzKSxsKDMwNCks''@;'; + put 'put ''bCgzMDUpLGwoMzA2KSxsKDMwNyksbCgzMDgpLGwoMzA5KSxsKDMxMCksbCgzMTEpLGwoMzEyKSxsKDMxMyksbCgzMTQpLGwoMzE1KSxsKDMxNiksbCgzMTcpLGwoMzE4KSxsKDMxOSksbCgzMjApLGwoMzIxKSxsKDMyMiksbCgzMjMpLGwoMzI0KSxBLmV4cG9ydHM9bCgzMjUpfSxmdW5jdGlv''@;'; + put 'put ''bihBLGUsbCl7dmFyIHI9bCgyKSxhPWwoMTQpLGM9bCg3KSxvPWwoMCksaD1sKDEyKSxmPWwoMzApLktFWSxnPWwoMyksdT1sKDQ3KSxwPWwoNDMpLHY9bCgzMyksSD1sKDUpLEM9bCg5NCksVj1sKDY3KSxTPWwoMTMyKSxfPWwoNTQpLGI9bCgxKSxNPWwoNCkseD1sKDkpLEU9bCgxNSksdz1s''@;'; + put 'put ''KDIyKSxOPWwoMzIpLEk9bCgzNiksVz1sKDk3KSxPPWwoMTYpLEI9bCg1MyksUj1sKDgpLGwxPWwoMzQpLGExPU8uZixoMT1SLmYsdTE9Vy5mLHAxPXIuU3ltYm9sLHYxPXIuSlNPTixFMT12MSYmdjEuc3RyaW5naWZ5LGo9InByb3RvdHlwZSIsYzE9SCgiX2hpZGRlbiIpLFYxPUgoInRvUHJp''@;'; + put 'put ''bWl0aXZlIiksXzE9e30ucHJvcGVydHlJc0VudW1lcmFibGUsUT11KCJzeW1ib2wtcmVnaXN0cnkiKSxzMT11KCJzeW1ib2xzIiksbTE9dSgib3Atc3ltYm9scyIpLGIxPU9iamVjdFtqXSxCMT0iZnVuY3Rpb24iPT10eXBlb2YgcDEmJiEhQi5mLCQ9ci5RT2JqZWN0LHo9ISR8fCEkW2pdfHwh''@;'; + put 'put ''JFtqXS5maW5kQ2hpbGQseT1jJiZnKGZ1bmN0aW9uKCl7cmV0dXJuIDchPUkoaDEoe30sImEiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gaDEodGhpcywiYSIse3ZhbHVlOjd9KS5hfX0pKS5hfSk/ZnVuY3Rpb24objEsaTEsZjEpe3ZhciB4MT1hMShiMSxpMSk7eDEmJmRlbGV0ZSBiMVtpMV0s''@;'; + put 'put ''aDEobjEsaTEsZjEpLHgxJiZuMSE9PWIxJiZoMShiMSxpMSx4MSl9OmgxLEQ9ZnVuY3Rpb24objEpe3ZhciBpMT1zMVtuMV09SShwMVtqXSk7cmV0dXJuIGkxLl9rPW4xLGkxfSxaPUIxJiYic3ltYm9sIj09dHlwZW9mIHAxLml0ZXJhdG9yP2Z1bmN0aW9uKG4xKXtyZXR1cm4ic3ltYm9sIj09''@;'; + put 'put ''dHlwZW9mIG4xfTpmdW5jdGlvbihuMSl7cmV0dXJuIG4xIGluc3RhbmNlb2YgcDF9LFQ9ZnVuY3Rpb24oaTEsZjEseDEpe3JldHVybiBpMT09PWIxJiZUKG0xLGYxLHgxKSxiKGkxKSxmMT13KGYxLCEwKSxiKHgxKSxhKHMxLGYxKT8oeDEuZW51bWVyYWJsZT8oYShpMSxjMSkmJmkxW2MxXVtm''@;'; + put 'put ''MV0mJihpMVtjMV1bZjFdPSExKSx4MT1JKHgxLHtlbnVtZXJhYmxlOk4oMCwhMSl9KSk6KGEoaTEsYzEpfHxoMShpMSxjMSxOKDEse30pKSxpMVtjMV1bZjFdPSEwKSx5KGkxLGYxLHgxKSk6aDEoaTEsZjEseDEpfSxQPWZ1bmN0aW9uKGkxLGYxKXtiKGkxKTtmb3IodmFyIHgxLEkxPVMoZjE9''@;'; + put 'put ''RShmMSkpLEoxPTAsdDA9STEubGVuZ3RoO0oxPHQwOylUKGkxLHgxPUkxW0oxKytdLGYxW3gxXSk7cmV0dXJuIGkxfSxlMT1mdW5jdGlvbihpMSl7dmFyIGYxPV8xLmNhbGwodGhpcyxpMT13KGkxLCEwKSk7cmV0dXJuISh0aGlzPT09YjEmJmEoczEsaTEpJiYhYShtMSxpMSkpJiYoIShmMXx8''@;'; + put 'put ''IWEodGhpcyxpMSl8fCFhKHMxLGkxKXx8YSh0aGlzLGMxKSYmdGhpc1tjMV1baTFdKXx8ZjEpfSxyMT1mdW5jdGlvbihpMSxmMSl7aWYoaTE9RShpMSksZjE9dyhmMSwhMCksaTEhPT1iMXx8IWEoczEsZjEpfHxhKG0xLGYxKSl7dmFyIHgxPWExKGkxLGYxKTtyZXR1cm4heDF8fCFhKHMxLGYx''@;'; + put 'put ''KXx8YShpMSxjMSkmJmkxW2MxXVtmMV18fCh4MS5lbnVtZXJhYmxlPSEwKSx4MX19LFoxPWZ1bmN0aW9uKGkxKXtmb3IodmFyIGYxLHgxPXUxKEUoaTEpKSxJMT1bXSxKMT0wO0oxPHgxLmxlbmd0aDspYShzMSxmMT14MVtKMSsrXSl8fGYxPT1jMXx8ZjE9PWZ8fEkxLnB1c2goZjEpO3JldHVy''@;'; + put 'put ''biBJMX0sWT1mdW5jdGlvbihpMSl7Zm9yKHZhciBmMSx4MT1pMT09PWIxLEkxPXUxKHgxP20xOkUoaTEpKSxKMT1bXSx0MD0wO3QwPEkxLmxlbmd0aDspIWEoczEsZjE9STFbdDArK10pfHx4MSYmIWEoYjEsZjEpfHxKMS5wdXNoKHMxW2YxXSk7cmV0dXJuIEoxfTtCMXx8KGgoKHAxPWZ1bmN0''@;'; + put 'put ''aW9uKCl7aWYodGhpcyBpbnN0YW5jZW9mIHAxKXRocm93IFR5cGVFcnJvcigiU3ltYm9sIGlzIG5vdCBhIGNvbnN0cnVjdG9yISIpO3ZhciBpMT12KDA8YXJndW1lbnRzLmxlbmd0aD9hcmd1bWVudHNbMF06ayksZjE9ZnVuY3Rpb24oeDEpe3RoaXM9PT1iMSYmZjEuY2FsbChtMSx4MSksYSh0''@;'; + put 'put ''aGlzLGMxKSYmYSh0aGlzW2MxXSxpMSkmJih0aGlzW2MxXVtpMV09ITEpLHkodGhpcyxpMSxOKDEseDEpKX07cmV0dXJuIGMmJnomJnkoYjEsaTEse2NvbmZpZ3VyYWJsZTohMCxzZXQ6ZjF9KSxEKGkxKX0pW2pdLCJ0b1N0cmluZyIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fa30pLE8uZj1y''@;'; + put 'put ''MSxSLmY9VCxsKDM3KS5mPVcuZj1aMSxsKDQ5KS5mPWUxLEIuZj1ZLGMmJiFsKDI5KSYmaChiMSwicHJvcGVydHlJc0VudW1lcmFibGUiLGUxLCEwKSxDLmY9ZnVuY3Rpb24objEpe3JldHVybiBEKEgobjEpKX0pLG8oby5HK28uVytvLkYqIUIxLHtTeW1ib2w6cDF9KTtmb3IodmFyIHE9Imhh''@;'; + put 'put ''c0luc3RhbmNlLGlzQ29uY2F0U3ByZWFkYWJsZSxpdGVyYXRvcixtYXRjaCxyZXBsYWNlLHNlYXJjaCxzcGVjaWVzLHNwbGl0LHRvUHJpbWl0aXZlLHRvU3RyaW5nVGFnLHVuc2NvcGFibGVzIi5zcGxpdCgiLCIpLEo9MDtKPHEubGVuZ3RoOylIKHFbSisrXSk7Zm9yKHZhciBBMT1sMShILnN0''@;'; + put 'put ''b3JlKSxOMT0wO04xPEExLmxlbmd0aDspVihBMVtOMSsrXSk7byhvLlMrby5GKiFCMSwiU3ltYm9sIix7Zm9yOmZ1bmN0aW9uKG4xKXtyZXR1cm4gYShRLG4xKz0iIik/UVtuMV06UVtuMV09cDEobjEpfSxrZXlGb3I6ZnVuY3Rpb24oaTEpe2lmKCFaKGkxKSl0aHJvdyBUeXBlRXJyb3IoaTEr''@;'; + put 'put ''IiBpcyBub3QgYSBzeW1ib2whIik7Zm9yKHZhciBmMSBpbiBRKWlmKFFbZjFdPT09aTEpcmV0dXJuIGYxfSx1c2VTZXR0ZXI6ZnVuY3Rpb24oKXt6PSEwfSx1c2VTaW1wbGU6ZnVuY3Rpb24oKXt6PSExfX0pLG8oby5TK28uRiohQjEsIk9iamVjdCIse2NyZWF0ZTpmdW5jdGlvbihpMSxmMSl7''@;'; + put 'put ''cmV0dXJuIGYxPT09az9JKGkxKTpQKEkoaTEpLGYxKX0sZGVmaW5lUHJvcGVydHk6VCxkZWZpbmVQcm9wZXJ0aWVzOlAsZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yOnIxLGdldE93blByb3BlcnR5TmFtZXM6WjEsZ2V0T3duUHJvcGVydHlTeW1ib2xzOll9KTt2YXIgUzE9ZyhmdW5jdGlvbigp''@;'; + put 'put ''e0IuZigxKX0pO28oby5TK28uRipTMSwiT2JqZWN0Iix7Z2V0T3duUHJvcGVydHlTeW1ib2xzOmZ1bmN0aW9uKGkxKXtyZXR1cm4gQi5mKHgoaTEpKX19KSx2MSYmbyhvLlMrby5GKighQjF8fGcoZnVuY3Rpb24oKXt2YXIgbjE9cDEoKTtyZXR1cm4iW251bGxdIiE9RTEoW24xXSl8fCJ7fSIh''@;'; + put 'put ''PUUxKHthOm4xfSl8fCJ7fSIhPUUxKE9iamVjdChuMSkpfSkpLCJKU09OIix7c3RyaW5naWZ5OmZ1bmN0aW9uKGkxKXtmb3IodmFyIGYxLHgxLEkxPVtpMV0sSjE9MTtKMTxhcmd1bWVudHMubGVuZ3RoOylJMS5wdXNoKGFyZ3VtZW50c1tKMSsrXSk7aWYoeDE9ZjE9STFbMV0sKE0oZjEpfHxp''@;'; + put 'put ''MSE9PWspJiYhWihpMSkpcmV0dXJuIF8oZjEpfHwoZjE9ZnVuY3Rpb24odDAsZjApe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiB4MSYmKGYwPXgxLmNhbGwodGhpcyx0MCxmMCkpLCFaKGYwKSlyZXR1cm4gZjB9KSxJMVsxXT1mMSxFMS5hcHBseSh2MSxJMSl9fSkscDFbal1bVjFdfHxsKDExKShw''@;'; + put 'put ''MVtqXSxWMSxwMVtqXS52YWx1ZU9mKSxwKHAxLCJTeW1ib2wiKSxwKE1hdGgsIk1hdGgiLCEwKSxwKHIuSlNPTiwiSlNPTiIsITApfSxmdW5jdGlvbihBLGUsbCl7QS5leHBvcnRzPWwoNDcpKCJuYXRpdmUtZnVuY3Rpb24tdG8tc3RyaW5nIixGdW5jdGlvbi50b1N0cmluZyl9LGZ1bmN0aW9u''@;'; + put 'put ''KEEsZSxsKXt2YXIgcj1sKDM0KSxhPWwoNTMpLGM9bCg0OSk7QS5leHBvcnRzPWZ1bmN0aW9uKG8pe3ZhciBoPXIobyksZj1hLmY7aWYoZilmb3IodmFyIGcsdT1mKG8pLHA9Yy5mLHY9MDt2PHUubGVuZ3RoOylwLmNhbGwobyxnPXVbdisrXSkmJmgucHVzaChnKTtyZXR1cm4gaH19LGZ1bmN0''@;'; + put 'put ''aW9uKEEsZSxsKXt2YXIgcj1sKDApO3Ioci5TK3IuRiohbCg3KSwiT2JqZWN0Iix7ZGVmaW5lUHJvcGVydHk6bCg4KS5mfSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDApO3Ioci5TK3IuRiohbCg3KSwiT2JqZWN0Iix7ZGVmaW5lUHJvcGVydGllczpsKDk2KX0pfSxmdW5jdGlvbihBLGUs''@;'; + put 'put ''bCl7dmFyIHI9bCgxNSksYT1sKDE2KS5mO2woMjQpKCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLGZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKG8saCl7cmV0dXJuIGEocihvKSxoKX19KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCk7cihyLlMsIk9iamVjdCIse2NyZWF0ZTpsKDM2''@;'; + put 'put ''KX0pfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCg5KSxhPWwoMTcpO2woMjQpKCJnZXRQcm90b3R5cGVPZiIsZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24obyl7cmV0dXJuIGEocihvKSl9fSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDkpLGE9bCgzNCk7bCgyNCkoImtleXMiLGZ1bmN0''@;'; + put 'put ''aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKG8pe3JldHVybiBhKHIobykpfX0pfSxmdW5jdGlvbihBLGUsbCl7bCgyNCkoImdldE93blByb3BlcnR5TmFtZXMiLGZ1bmN0aW9uKCl7cmV0dXJuIGwoOTcpLmZ9KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoNCksYT1sKDMwKS5vbkZyZWV6ZTtsKDI0''@;'; + put 'put ''KSgiZnJlZXplIixmdW5jdGlvbihjKXtyZXR1cm4gZnVuY3Rpb24oaCl7cmV0dXJuIGMmJnIoaCk/YyhhKGgpKTpofX0pfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCg0KSxhPWwoMzApLm9uRnJlZXplO2woMjQpKCJzZWFsIixmdW5jdGlvbihjKXtyZXR1cm4gZnVuY3Rpb24oaCl7cmV0dXJu''@;'; + put 'put ''IGMmJnIoaCk/YyhhKGgpKTpofX0pfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCg0KSxhPWwoMzApLm9uRnJlZXplO2woMjQpKCJwcmV2ZW50RXh0ZW5zaW9ucyIsZnVuY3Rpb24oYyl7cmV0dXJuIGZ1bmN0aW9uKGgpe3JldHVybiBjJiZyKGgpP2MoYShoKSk6aH19KX0sZnVuY3Rpb24oQSxl''@;'; + put 'put ''LGwpe3ZhciByPWwoNCk7bCgyNCkoImlzRnJvemVuIixmdW5jdGlvbihhKXtyZXR1cm4gZnVuY3Rpb24obyl7cmV0dXJuIXIobyl8fCEhYSYmYShvKX19KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoNCk7bCgyNCkoImlzU2VhbGVkIixmdW5jdGlvbihhKXtyZXR1cm4gZnVuY3Rpb24obyl7''@;'; + put 'put ''cmV0dXJuIXIobyl8fCEhYSYmYShvKX19KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoNCk7bCgyNCkoImlzRXh0ZW5zaWJsZSIsZnVuY3Rpb24oYSl7cmV0dXJuIGZ1bmN0aW9uKG8pe3JldHVybiEhcihvKSYmKCFhfHxhKG8pKX19KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCk7cihy''@;'; + put 'put ''LlMrci5GLCJPYmplY3QiLHthc3NpZ246bCg5OCl9KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCk7cihyLlMsIk9iamVjdCIse2lzOmwoOTkpfSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDApO3Ioci5TLCJPYmplY3QiLHtzZXRQcm90b3R5cGVPZjpsKDcxKS5zZXR9KX0sZnVuY3Rp''@;'; + put 'put ''b24oQSxlLGwpe3ZhciByPWwoNDQpLGE9e307YVtsKDUpKCJ0b1N0cmluZ1RhZyIpXT0ieiIsYSsiIiE9IltvYmplY3Qgel0iJiZsKDEyKShPYmplY3QucHJvdG90eXBlLCJ0b1N0cmluZyIsZnVuY3Rpb24oKXtyZXR1cm4iW29iamVjdCAiK3IodGhpcykrIl0ifSwhMCl9LGZ1bmN0aW9uKEEs''@;'; + put 'put ''ZSxsKXt2YXIgcj1sKDApO3Ioci5QLCJGdW5jdGlvbiIse2JpbmQ6bCgxMDApfSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDgpLmYsYT1GdW5jdGlvbi5wcm90b3R5cGUsYz0vXlxzKmZ1bmN0aW9uIChbXiAoXSopLzsibmFtZSJpbiBhfHxsKDcpJiZyKGEsIm5hbWUiLHtjb25maWd1cmFi''@;'; + put 'put ''bGU6ITAsZ2V0OmZ1bmN0aW9uKCl7dHJ5e3JldHVybigiIit0aGlzKS5tYXRjaChjKVsxXX1jYXRjaChvKXtyZXR1cm4iIn19fSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDQpLGE9bCgxNyksYz1sKDUpKCJoYXNJbnN0YW5jZSIpLG89RnVuY3Rpb24ucHJvdG90eXBlO2MgaW4gb3x8bCg4''@;'; + put 'put ''KS5mKG8sYyx7dmFsdWU6ZnVuY3Rpb24oaCl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIHRoaXN8fCFyKGgpKXJldHVybiExO2lmKCFyKHRoaXMucHJvdG90eXBlKSlyZXR1cm4gaCBpbnN0YW5jZW9mIHRoaXM7Zm9yKDtoPWEoaCk7KWlmKHRoaXMucHJvdG90eXBlPT09aClyZXR1cm4hMDtyZXR1''@;'; + put 'put ''cm4hMX19KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMiksYT1sKDE0KSxjPWwoMTkpLG89bCg3MiksaD1sKDIyKSxmPWwoMyksZz1sKDM3KS5mLHU9bCgxNikuZixwPWwoOCkuZix2PWwoNDUpLnRyaW0sSD0iTnVtYmVyIixDPXJbSF0sVj1DLFM9Qy5wcm90b3R5cGUsXz1jKGwoMzYpKFMp''@;'; + put 'put ''KT09SCxiPSJ0cmltImluIFN0cmluZy5wcm90b3R5cGUsTT1mdW5jdGlvbihOKXt2YXIgST1oKE4sITEpO2lmKCJzdHJpbmciPT10eXBlb2YgSSYmMjxJLmxlbmd0aCl7dmFyIFcsTyxCLFI9KEk9Yj9JLnRyaW0oKTp2KEksMykpLmNoYXJDb2RlQXQoMCk7aWYoNDM9PT1SfHw0NT09PVIpe2lm''@;'; + put 'put ''KDg4PT09KFc9SS5jaGFyQ29kZUF0KDIpKXx8MTIwPT09VylyZXR1cm4gTmFOfWVsc2UgaWYoNDg9PT1SKXtzd2l0Y2goSS5jaGFyQ29kZUF0KDEpKXtjYXNlIDY2OmNhc2UgOTg6Tz0yLEI9NDk7YnJlYWs7Y2FzZSA3OTpjYXNlIDExMTpPPTgsQj01NTticmVhaztkZWZhdWx0OnJldHVybitJ''@;'; + put 'put ''fWZvcih2YXIgbDEsYTE9SS5zbGljZSgyKSxoMT0wLHUxPWExLmxlbmd0aDtoMTx1MTtoMSsrKWlmKChsMT1hMS5jaGFyQ29kZUF0KGgxKSk8NDh8fEI8bDEpcmV0dXJuIE5hTjtyZXR1cm4gcGFyc2VJbnQoYTEsTyl9fXJldHVybitJfTtpZighQygiIDBvMSIpfHwhQygiMGIxIil8fEMoIisw''@;'; + put 'put ''eDEiKSl7Qz1mdW5jdGlvbihJKXt2YXIgVz1hcmd1bWVudHMubGVuZ3RoPDE/MDpJLE89dGhpcztyZXR1cm4gTyBpbnN0YW5jZW9mIEMmJihfP2YoZnVuY3Rpb24oKXtTLnZhbHVlT2YuY2FsbChPKX0pOmMoTykhPUgpP28obmV3IFYoTShXKSksTyxDKTpNKFcpfTtmb3IodmFyIHgsRT1sKDcp''@;'; + put 'put ''P2coVik6Ik1BWF9WQUxVRSxNSU5fVkFMVUUsTmFOLE5FR0FUSVZFX0lORklOSVRZLFBPU0lUSVZFX0lORklOSVRZLEVQU0lMT04saXNGaW5pdGUsaXNJbnRlZ2VyLGlzTmFOLGlzU2FmZUludGVnZXIsTUFYX1NBRkVfSU5URUdFUixNSU5fU0FGRV9JTlRFR0VSLHBhcnNlRmxvYXQscGFyc2VJ''@;'; + put 'put ''bnQsaXNJbnRlZ2VyIi5zcGxpdCgiLCIpLHc9MDt3PEUubGVuZ3RoO3crKylhKFYseD1FW3ddKSYmIWEoQyx4KSYmcChDLHgsdShWLHgpKTsoQy5wcm90b3R5cGU9UykuY29uc3RydWN0b3I9QyxsKDEyKShyLEgsQyl9fSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgwKSxhPWwoMjApLGM9bCgx''@;'; + put 'put ''MDIpLG89bCg3NCksaD0xLi50b0ZpeGVkLGY9TWF0aC5mbG9vcixnPVswLDAsMCwwLDAsMF0sdT0iTnVtYmVyLnRvRml4ZWQ6IGluY29ycmVjdCBpbnZvY2F0aW9uISIscD1mdW5jdGlvbihWLFMpe2Zvcih2YXIgXz0tMSxiPVM7KytfPDY7KWdbX109KGIrPVYqZ1tfXSklMWU3LGI9ZihiLzFl''@;'; + put 'put ''Nyl9LHY9ZnVuY3Rpb24oVil7Zm9yKHZhciBTPTYsXz0wOzA8PS0tUzspZ1tTXT1mKChfKz1nW1NdKS9WKSxfPV8lVioxZTd9LEg9ZnVuY3Rpb24oKXtmb3IodmFyIFY9NixTPSIiOzA8PS0tVjspaWYoIiIhPT1TfHwwPT09Vnx8MCE9PWdbVl0pe3ZhciBfPVN0cmluZyhnW1ZdKTtTPSIiPT09''@;'; + put 'put ''Uz9fOlMrby5jYWxsKCIwIiw3LV8ubGVuZ3RoKStffXJldHVybiBTfSxDPWZ1bmN0aW9uKFYsUyxfKXtyZXR1cm4gMD09PVM/XzpTJTI9PTE/QyhWLFMtMSxfKlYpOkMoVipWLFMvMixfKX07cihyLlArci5GKighIWgmJigiMC4wMDAiIT09OGUtNS50b0ZpeGVkKDMpfHwiMSIhPT0uOS50b0Zp''@;'; + put 'put ''eGVkKDApfHwiMS4yNSIhPT0xLjI1NS50b0ZpeGVkKDIpfHwiMTAwMDAwMDAwMDAwMDAwMDEyOCIhPT0oMHhkZTBiNmIzYTc2NDAwODApLnRvRml4ZWQoMCkpfHwhbCgzKShmdW5jdGlvbigpe2guY2FsbCh7fSl9KSksIk51bWJlciIse3RvRml4ZWQ6ZnVuY3Rpb24oUyl7dmFyIF8sYixNLHgs''@;'; + put 'put ''RT1jKHRoaXMsdSksdz1hKFMpLE49IiIsST0iMCI7aWYodzwwfHwyMDx3KXRocm93IFJhbmdlRXJyb3IodSk7aWYoRSE9RSlyZXR1cm4iTmFOIjtpZihFPD0tMWUyMXx8MWUyMTw9RSlyZXR1cm4gU3RyaW5nKEUpO2lmKEU8MCYmKE49Ii0iLEU9LUUpLDFlLTIxPEUpaWYoYj0oXz1mdW5jdGlv''@;'; + put 'put ''bihXKXtmb3IodmFyIE89MCxCPVc7NDA5Njw9QjspTys9MTIsQi89NDA5Njtmb3IoOzI8PUI7KU8rPTEsQi89MjtyZXR1cm4gT30oRSpDKDIsNjksMSkpLTY5KTwwP0UqQygyLC1fLDEpOkUvQygyLF8sMSksYio9NDUwMzU5OTYyNzM3MDQ5NiwwPChfPTUyLV8pKXtmb3IocCgwLGIpLE09dzs3''@;'; + put 'put ''PD1NOylwKDFlNywwKSxNLT03O2ZvcihwKEMoMTAsTSwxKSwwKSxNPV8tMTsyMzw9TTspdigxPDwyMyksTS09MjM7digxPDxNKSxwKDEsMSksdigyKSxJPUgoKX1lbHNlIHAoMCxiKSxwKDE8PC1fLDApLEk9SCgpK28uY2FsbCgiMCIsdyk7cmV0dXJuIDA8dz9OKygoeD1JLmxlbmd0aCk8PXc/''@;'; + put 'put ''IjAuIitvLmNhbGwoIjAiLHcteCkrSTpJLnNsaWNlKDAseC13KSsiLiIrSS5zbGljZSh4LXcpKTpOK0l9fSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDApLGE9bCgzKSxjPWwoMTAyKSxvPTEuLnRvUHJlY2lzaW9uO3Ioci5QK3IuRiooYShmdW5jdGlvbigpe3JldHVybiIxIiE9PW8uY2Fs''@;'; + put 'put ''bCgxLGspfSl8fCFhKGZ1bmN0aW9uKCl7by5jYWxsKHt9KX0pKSwiTnVtYmVyIix7dG9QcmVjaXNpb246ZnVuY3Rpb24oZil7dmFyIGc9Yyh0aGlzLCJOdW1iZXIjdG9QcmVjaXNpb246IGluY29ycmVjdCBpbnZvY2F0aW9uISIpO3JldHVybiBmPT09az9vLmNhbGwoZyk6by5jYWxsKGcsZil9''@;'; + put 'put ''fSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDApO3Ioci5TLCJOdW1iZXIiLHtFUFNJTE9OOk1hdGgucG93KDIsLTUyKX0pfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgwKSxhPWwoMikuaXNGaW5pdGU7cihyLlMsIk51bWJlciIse2lzRmluaXRlOmZ1bmN0aW9uKG8pe3JldHVybiJudW1i''@;'; + put 'put ''ZXIiPT10eXBlb2YgbyYmYShvKX19KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCk7cihyLlMsIk51bWJlciIse2lzSW50ZWdlcjpsKDEwMyl9KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCk7cihyLlMsIk51bWJlciIse2lzTmFOOmZ1bmN0aW9uKGMpe3JldHVybiBjIT1jfX0pfSxm''@;'; + put 'put ''dW5jdGlvbihBLGUsbCl7dmFyIHI9bCgwKSxhPWwoMTAzKSxjPU1hdGguYWJzO3Ioci5TLCJOdW1iZXIiLHtpc1NhZmVJbnRlZ2VyOmZ1bmN0aW9uKGgpe3JldHVybiBhKGgpJiZjKGgpPD05MDA3MTk5MjU0NzQwOTkxfX0pfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgwKTtyKHIuUywiTnVt''@;'; + put 'put ''YmVyIix7TUFYX1NBRkVfSU5URUdFUjo5MDA3MTk5MjU0NzQwOTkxfSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDApO3Ioci5TLCJOdW1iZXIiLHtNSU5fU0FGRV9JTlRFR0VSOi05MDA3MTk5MjU0NzQwOTkxfSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDApLGE9bCgxMDQpO3Ioci5T''@;'; + put 'put ''K3IuRiooTnVtYmVyLnBhcnNlRmxvYXQhPWEpLCJOdW1iZXIiLHtwYXJzZUZsb2F0OmF9KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCksYT1sKDEwNSk7cihyLlMrci5GKihOdW1iZXIucGFyc2VJbnQhPWEpLCJOdW1iZXIiLHtwYXJzZUludDphfSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIg''@;'; + put 'put ''cj1sKDApLGE9bCgxMDUpO3Ioci5HK3IuRioocGFyc2VJbnQhPWEpLHtwYXJzZUludDphfSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDApLGE9bCgxMDQpO3Ioci5HK3IuRioocGFyc2VGbG9hdCE9YSkse3BhcnNlRmxvYXQ6YX0pfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgwKSxhPWwo''@;'; + put 'put ''MTA2KSxjPU1hdGguc3FydCxvPU1hdGguYWNvc2g7cihyLlMrci5GKiEobyYmNzEwPT1NYXRoLmZsb29yKG8oTnVtYmVyLk1BWF9WQUxVRSkpJiZvKDEvMCk9PTEvMCksIk1hdGgiLHthY29zaDpmdW5jdGlvbihmKXtyZXR1cm4oZj0rZik8MT9OYU46OTQ5MDYyNjUuNjI0MjUxNTY8Zj9NYXRo''@;'; + put 'put ''LmxvZyhmKStNYXRoLkxOMjphKGYtMStjKGYtMSkqYyhmKzEpKX19KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCksYT1NYXRoLmFzaW5oO3Ioci5TK3IuRiohKGEmJjA8MS9hKDApKSwiTWF0aCIse2FzaW5oOmZ1bmN0aW9uIGMobyl7cmV0dXJuIGlzRmluaXRlKG89K28pJiYwIT1vP288''@;'; + put 'put ''MD8tYygtbyk6TWF0aC5sb2cobytNYXRoLnNxcnQobypvKzEpKTpvfX0pfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgwKSxhPU1hdGguYXRhbmg7cihyLlMrci5GKiEoYSYmMS9hKC0wKTwwKSwiTWF0aCIse2F0YW5oOmZ1bmN0aW9uKG8pe3JldHVybiAwPT0obz0rbyk/bzpNYXRoLmxvZygo''@;'; + put 'put ''MStvKS8oMS1vKSkvMn19KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCksYT1sKDc1KTtyKHIuUywiTWF0aCIse2NicnQ6ZnVuY3Rpb24obyl7cmV0dXJuIGEobz0rbykqTWF0aC5wb3coTWF0aC5hYnMobyksMS8zKX19KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCk7cihyLlMsIk1h''@;'; + put 'put ''dGgiLHtjbHozMjpmdW5jdGlvbihjKXtyZXR1cm4oYz4+Pj0wKT8zMS1NYXRoLmZsb29yKE1hdGgubG9nKGMrLjUpKk1hdGguTE9HMkUpOjMyfX0pfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgwKSxhPU1hdGguZXhwO3Ioci5TLCJNYXRoIix7Y29zaDpmdW5jdGlvbihvKXtyZXR1cm4oYShv''@;'; + put 'put ''PStvKSthKC1vKSkvMn19KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCksYT1sKDc2KTtyKHIuUytyLkYqKGEhPU1hdGguZXhwbTEpLCJNYXRoIix7ZXhwbTE6YX0pfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgwKTtyKHIuUywiTWF0aCIse2Zyb3VuZDpsKDEwNyl9KX0sZnVuY3Rpb24o''@;'; + put 'put ''QSxlLGwpe3ZhciByPWwoMCksYT1NYXRoLmFicztyKHIuUywiTWF0aCIse2h5cG90OmZ1bmN0aW9uKG8saCl7Zm9yKHZhciBmLGcsdT0wLHA9MCx2PWFyZ3VtZW50cy5sZW5ndGgsSD0wO3A8djspSDwoZj1hKGFyZ3VtZW50c1twKytdKSk/KHU9dSooZz1IL2YpKmcrMSxIPWYpOnUrPTA8Zj8o''@;'; + put 'put ''Zz1mL0gpKmc6ZjtyZXR1cm4gSD09PTEvMD8xLzA6SCpNYXRoLnNxcnQodSl9fSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDApLGE9TWF0aC5pbXVsO3Ioci5TK3IuRipsKDMpKGZ1bmN0aW9uKCl7cmV0dXJuLTUhPWEoNDI5NDk2NzI5NSw1KXx8MiE9YS5sZW5ndGh9KSwiTWF0aCIse2lt''@;'; + put 'put ''dWw6ZnVuY3Rpb24obyxoKXt2YXIgZj02NTUzNSxnPStvLHU9K2gscD1mJmcsdj1mJnU7cmV0dXJuIDB8cCp2KygoZiZnPj4+MTYpKnYrcCooZiZ1Pj4+MTYpPDwxNj4+PjApfX0pfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgwKTtyKHIuUywiTWF0aCIse2xvZzEwOmZ1bmN0aW9uKGMpe3Jl''@;'; + put 'put ''dHVybiBNYXRoLmxvZyhjKSpNYXRoLkxPRzEwRX19KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCk7cihyLlMsIk1hdGgiLHtsb2cxcDpsKDEwNil9KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCk7cihyLlMsIk1hdGgiLHtsb2cyOmZ1bmN0aW9uKGMpe3JldHVybiBNYXRoLmxvZyhj''@;'; + put 'put ''KS9NYXRoLkxOMn19KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCk7cihyLlMsIk1hdGgiLHtzaWduOmwoNzUpfSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDApLGE9bCg3NiksYz1NYXRoLmV4cDtyKHIuUytyLkYqbCgzKShmdW5jdGlvbigpe3JldHVybi0yZS0xNyE9IU1hdGguc2lu''@;'; + put 'put ''aCgtMmUtMTcpfSksIk1hdGgiLHtzaW5oOmZ1bmN0aW9uKGgpe3JldHVybiBNYXRoLmFicyhoPStoKTwxPyhhKGgpLWEoLWgpKS8yOihjKGgtMSktYygtaC0xKSkqKE1hdGguRS8yKX19KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCksYT1sKDc2KSxjPU1hdGguZXhwO3Ioci5TLCJNYXRo''@;'; + put 'put ''Iix7dGFuaDpmdW5jdGlvbihoKXt2YXIgZj1hKGg9K2gpLGc9YSgtaCk7cmV0dXJuIGY9PTEvMD8xOmc9PTEvMD8tMTooZi1nKS8oYyhoKStjKC1oKSl9fSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDApO3Ioci5TLCJNYXRoIix7dHJ1bmM6ZnVuY3Rpb24oYyl7cmV0dXJuKDA8Yz9NYXRo''@;'; + put 'put ''LmZsb29yOk1hdGguY2VpbCkoYyl9fSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDApLGE9bCgzNSksYz1TdHJpbmcuZnJvbUNoYXJDb2RlLG89U3RyaW5nLmZyb21Db2RlUG9pbnQ7cihyLlMrci5GKighIW8mJjEhPW8ubGVuZ3RoKSwiU3RyaW5nIix7ZnJvbUNvZGVQb2ludDpmdW5jdGlv''@;'; + put 'put ''bihmKXtmb3IodmFyIGcsdT1bXSxwPWFyZ3VtZW50cy5sZW5ndGgsdj0wO3Y8cDspe2lmKGc9K2FyZ3VtZW50c1t2KytdLGEoZywxMTE0MTExKSE9PWcpdGhyb3cgUmFuZ2VFcnJvcihnKyIgaXMgbm90IGEgdmFsaWQgY29kZSBwb2ludCIpO3UucHVzaChnPDY1NTM2P2MoZyk6Yyg1NTI5Niso''@;'; + put 'put ''KGctPTY1NTM2KT4+MTApLGclMTAyNCs1NjMyMCkpfXJldHVybiB1LmpvaW4oIiIpfX0pfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgwKSxhPWwoMTUpLGM9bCg2KTtyKHIuUywiU3RyaW5nIix7cmF3OmZ1bmN0aW9uKGgpe2Zvcih2YXIgZj1hKGgucmF3KSxnPWMoZi5sZW5ndGgpLHU9YXJn''@;'; + put 'put ''dW1lbnRzLmxlbmd0aCxwPVtdLHY9MDt2PGc7KXAucHVzaChTdHJpbmcoZlt2KytdKSksdjx1JiZwLnB1c2goU3RyaW5nKGFyZ3VtZW50c1t2XSkpO3JldHVybiBwLmpvaW4oIiIpfX0pfSxmdW5jdGlvbihBLGUsbCl7bCg0NSkoInRyaW0iLGZ1bmN0aW9uKHIpe3JldHVybiBmdW5jdGlvbigp''@;'; + put 'put ''e3JldHVybiByKHRoaXMsMyl9fSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDApLGE9bCg1NSkoITEpO3Ioci5QLCJTdHJpbmciLHtjb2RlUG9pbnRBdDpmdW5jdGlvbihvKXtyZXR1cm4gYSh0aGlzLG8pfX0pfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgwKSxhPWwoNiksYz1sKDc3KSxv''@;'; + put 'put ''PSJlbmRzV2l0aCIsaD0iIltvXTtyKHIuUCtyLkYqbCg3OCkobyksIlN0cmluZyIse2VuZHNXaXRoOmZ1bmN0aW9uKGcpe3ZhciB1PWModGhpcyxnLG8pLHA9MTxhcmd1bWVudHMubGVuZ3RoP2FyZ3VtZW50c1sxXTprLHY9YSh1Lmxlbmd0aCksSD1wPT09az92Ok1hdGgubWluKGEocCksdiks''@;'; + put 'put ''Qz1TdHJpbmcoZyk7cmV0dXJuIGg/aC5jYWxsKHUsQyxIKTp1LnNsaWNlKEgtQy5sZW5ndGgsSCk9PT1DfX0pfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgwKSxhPWwoNzcpLGM9ImluY2x1ZGVzIjtyKHIuUCtyLkYqbCg3OCkoYyksIlN0cmluZyIse2luY2x1ZGVzOmZ1bmN0aW9uKGgpe3Jl''@;'; + put 'put ''dHVybiEhfmEodGhpcyxoLGMpLmluZGV4T2YoaCwxPGFyZ3VtZW50cy5sZW5ndGg/YXJndW1lbnRzWzFdOmspfX0pfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgwKTtyKHIuUCwiU3RyaW5nIix7cmVwZWF0OmwoNzQpfSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDApLGE9bCg2KSxjPWwo''@;'; + put 'put ''NzcpLG89InN0YXJ0c1dpdGgiLGg9IiJbb107cihyLlArci5GKmwoNzgpKG8pLCJTdHJpbmciLHtzdGFydHNXaXRoOmZ1bmN0aW9uKGcpe3ZhciB1PWModGhpcyxnLG8pLHA9YShNYXRoLm1pbigxPGFyZ3VtZW50cy5sZW5ndGg/YXJndW1lbnRzWzFdOmssdS5sZW5ndGgpKSx2PVN0cmluZyhn''@;'; + put 'put ''KTtyZXR1cm4gaD9oLmNhbGwodSx2LHApOnUuc2xpY2UocCxwK3YubGVuZ3RoKT09PXZ9fSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDU1KSghMCk7bCg3OSkoU3RyaW5nLCJTdHJpbmciLGZ1bmN0aW9uKGEpe3RoaXMuX3Q9U3RyaW5nKGEpLHRoaXMuX2k9MH0sZnVuY3Rpb24oKXt2YXIg''@;'; + put 'put ''YSxjPXRoaXMuX3Qsbz10aGlzLl9pO3JldHVybiBjLmxlbmd0aDw9bz97dmFsdWU6ayxkb25lOiEwfTooYT1yKGMsbyksdGhpcy5faSs9YS5sZW5ndGgse3ZhbHVlOmEsZG9uZTohMX0pfSl9LGZ1bmN0aW9uKEEsZSxsKXtsKDEzKSgiYW5jaG9yIixmdW5jdGlvbihyKXtyZXR1cm4gZnVuY3Rp''@;'; + put 'put ''b24oYyl7cmV0dXJuIHIodGhpcywiYSIsIm5hbWUiLGMpfX0pfSxmdW5jdGlvbihBLGUsbCl7bCgxMykoImJpZyIsZnVuY3Rpb24ocil7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHIodGhpcywiYmlnIiwiIiwiIil9fSl9LGZ1bmN0aW9uKEEsZSxsKXtsKDEzKSgiYmxpbmsiLGZ1bmN0aW9u''@;'; + put 'put ''KHIpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiByKHRoaXMsImJsaW5rIiwiIiwiIil9fSl9LGZ1bmN0aW9uKEEsZSxsKXtsKDEzKSgiYm9sZCIsZnVuY3Rpb24ocil7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHIodGhpcywiYiIsIiIsIiIpfX0pfSxmdW5jdGlvbihBLGUsbCl7bCgxMyko''@;'; + put 'put ''ImZpeGVkIixmdW5jdGlvbihyKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gcih0aGlzLCJ0dCIsIiIsIiIpfX0pfSxmdW5jdGlvbihBLGUsbCl7bCgxMykoImZvbnRjb2xvciIsZnVuY3Rpb24ocil7cmV0dXJuIGZ1bmN0aW9uKGMpe3JldHVybiByKHRoaXMsImZvbnQiLCJjb2xvciIsYyl9''@;'; + put 'put ''fSl9LGZ1bmN0aW9uKEEsZSxsKXtsKDEzKSgiZm9udHNpemUiLGZ1bmN0aW9uKHIpe3JldHVybiBmdW5jdGlvbihjKXtyZXR1cm4gcih0aGlzLCJmb250Iiwic2l6ZSIsYyl9fSl9LGZ1bmN0aW9uKEEsZSxsKXtsKDEzKSgiaXRhbGljcyIsZnVuY3Rpb24ocil7cmV0dXJuIGZ1bmN0aW9uKCl7''@;'; + put 'put ''cmV0dXJuIHIodGhpcywiaSIsIiIsIiIpfX0pfSxmdW5jdGlvbihBLGUsbCl7bCgxMykoImxpbmsiLGZ1bmN0aW9uKHIpe3JldHVybiBmdW5jdGlvbihjKXtyZXR1cm4gcih0aGlzLCJhIiwiaHJlZiIsYyl9fSl9LGZ1bmN0aW9uKEEsZSxsKXtsKDEzKSgic21hbGwiLGZ1bmN0aW9uKHIpe3Jl''@;'; + put 'put ''dHVybiBmdW5jdGlvbigpe3JldHVybiByKHRoaXMsInNtYWxsIiwiIiwiIil9fSl9LGZ1bmN0aW9uKEEsZSxsKXtsKDEzKSgic3RyaWtlIixmdW5jdGlvbihyKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gcih0aGlzLCJzdHJpa2UiLCIiLCIiKX19KX0sZnVuY3Rpb24oQSxlLGwpe2woMTMp''@;'; + put 'put ''KCJzdWIiLGZ1bmN0aW9uKHIpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiByKHRoaXMsInN1YiIsIiIsIiIpfX0pfSxmdW5jdGlvbihBLGUsbCl7bCgxMykoInN1cCIsZnVuY3Rpb24ocil7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHIodGhpcywic3VwIiwiIiwiIil9fSl9LGZ1bmN0aW9u''@;'; + put 'put ''KEEsZSxsKXt2YXIgcj1sKDApO3Ioci5TLCJBcnJheSIse2lzQXJyYXk6bCg1NCl9KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMTgpLGE9bCgwKSxjPWwoOSksbz1sKDEwOCksaD1sKDgxKSxmPWwoNiksZz1sKDgyKSx1PWwoODMpO2EoYS5TK2EuRiohbCg1NykoZnVuY3Rpb24ocCl7QXJy''@;'; + put 'put ''YXkuZnJvbShwKX0pLCJBcnJheSIse2Zyb206ZnVuY3Rpb24odil7dmFyIEgsQyxWLFMsXz1jKHYpLGI9ImZ1bmN0aW9uIj09dHlwZW9mIHRoaXM/dGhpczpBcnJheSxNPWFyZ3VtZW50cy5sZW5ndGgseD0xPE0/YXJndW1lbnRzWzFdOmssRT14IT09ayx3PTAsTj11KF8pO2lmKEUmJih4PXIo''@;'; + put 'put ''eCwyPE0/YXJndW1lbnRzWzJdOmssMikpLE49PWt8fGI9PUFycmF5JiZoKE4pKWZvcihDPW5ldyBiKEg9ZihfLmxlbmd0aCkpO3c8SDt3KyspZyhDLHcsRT94KF9bd10sdyk6X1t3XSk7ZWxzZSBmb3IoUz1OLmNhbGwoXyksQz1uZXcgYjshKFY9Uy5uZXh0KCkpLmRvbmU7dysrKWcoQyx3LEU/''@;'; + put 'put ''byhTLHgsW1YudmFsdWUsd10sITApOlYudmFsdWUpO3JldHVybiBDLmxlbmd0aD13LEN9fSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDApLGE9bCg4Mik7cihyLlMrci5GKmwoMykoZnVuY3Rpb24oKXtmdW5jdGlvbiBjKCl7fXJldHVybiEoQXJyYXkub2YuY2FsbChjKWluc3RhbmNlb2Yg''@;'; + put 'put ''Yyl9KSwiQXJyYXkiLHtvZjpmdW5jdGlvbigpe2Zvcih2YXIgbz0wLGg9YXJndW1lbnRzLmxlbmd0aCxmPW5ldygiZnVuY3Rpb24iPT10eXBlb2YgdGhpcz90aGlzOkFycmF5KShoKTtvPGg7KWEoZixvLGFyZ3VtZW50c1tvKytdKTtyZXR1cm4gZi5sZW5ndGg9aCxmfX0pfSxmdW5jdGlvbihB''@;'; + put 'put ''LGUsbCl7dmFyIHI9bCgwKSxhPWwoMTUpLGM9W10uam9pbjtyKHIuUCtyLkYqKGwoNDgpIT1PYmplY3R8fCFsKDIxKShjKSksIkFycmF5Iix7am9pbjpmdW5jdGlvbihoKXtyZXR1cm4gYy5jYWxsKGEodGhpcyksaD09PWs/IiwiOmgpfX0pfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgwKSxh''@;'; + put 'put ''PWwoNzApLGM9bCgxOSksbz1sKDM1KSxoPWwoNiksZj1bXS5zbGljZTtyKHIuUCtyLkYqbCgzKShmdW5jdGlvbigpe2EmJmYuY2FsbChhKX0pLCJBcnJheSIse3NsaWNlOmZ1bmN0aW9uKHUscCl7dmFyIHY9aCh0aGlzLmxlbmd0aCksSD1jKHRoaXMpO2lmKHA9cD09PWs/djpwLCJBcnJheSI9''@;'; + put 'put ''PUgpcmV0dXJuIGYuY2FsbCh0aGlzLHUscCk7Zm9yKHZhciBDPW8odSx2KSxWPW8ocCx2KSxTPWgoVi1DKSxfPW5ldyBBcnJheShTKSxiPTA7YjxTO2IrKylfW2JdPSJTdHJpbmciPT1IP3RoaXMuY2hhckF0KEMrYik6dGhpc1tDK2JdO3JldHVybiBffX0pfSxmdW5jdGlvbihBLGUsbCl7dmFy''@;'; + put 'put ''IHI9bCgwKSxhPWwoMTApLGM9bCg5KSxvPWwoMyksaD1bXS5zb3J0LGY9WzEsMiwzXTtyKHIuUCtyLkYqKG8oZnVuY3Rpb24oKXtmLnNvcnQoayl9KXx8IW8oZnVuY3Rpb24oKXtmLnNvcnQobnVsbCl9KXx8IWwoMjEpKGgpKSwiQXJyYXkiLHtzb3J0OmZ1bmN0aW9uKHUpe3JldHVybiB1PT09''@;'; + put 'put ''az9oLmNhbGwoYyh0aGlzKSk6aC5jYWxsKGModGhpcyksYSh1KSl9fSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDApLGE9bCgyNSkoMCksYz1sKDIxKShbXS5mb3JFYWNoLCEwKTtyKHIuUCtyLkYqIWMsIkFycmF5Iix7Zm9yRWFjaDpmdW5jdGlvbihoKXtyZXR1cm4gYSh0aGlzLGgsYXJn''@;'; + put 'put ''dW1lbnRzWzFdKX19KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoNCksYT1sKDU0KSxjPWwoNSkoInNwZWNpZXMiKTtBLmV4cG9ydHM9ZnVuY3Rpb24obyl7dmFyIGg7cmV0dXJuIGEobykmJigiZnVuY3Rpb24iIT10eXBlb2YoaD1vLmNvbnN0cnVjdG9yKXx8aCE9PUFycmF5JiYhYShoLnBy''@;'; + put 'put ''b3RvdHlwZSl8fChoPWspLHIoaCkmJm51bGw9PT0oaD1oW2NdKSYmKGg9aykpLGg9PT1rP0FycmF5Omh9fSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgwKSxhPWwoMjUpKDEpO3Ioci5QK3IuRiohbCgyMSkoW10ubWFwLCEwKSwiQXJyYXkiLHttYXA6ZnVuY3Rpb24obyl7cmV0dXJuIGEodGhp''@;'; + put 'put ''cyxvLGFyZ3VtZW50c1sxXSl9fSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDApLGE9bCgyNSkoMik7cihyLlArci5GKiFsKDIxKShbXS5maWx0ZXIsITApLCJBcnJheSIse2ZpbHRlcjpmdW5jdGlvbihvKXtyZXR1cm4gYSh0aGlzLG8sYXJndW1lbnRzWzFdKX19KX0sZnVuY3Rpb24oQSxl''@;'; + put 'put ''LGwpe3ZhciByPWwoMCksYT1sKDI1KSgzKTtyKHIuUCtyLkYqIWwoMjEpKFtdLnNvbWUsITApLCJBcnJheSIse3NvbWU6ZnVuY3Rpb24obyl7cmV0dXJuIGEodGhpcyxvLGFyZ3VtZW50c1sxXSl9fSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDApLGE9bCgyNSkoNCk7cihyLlArci5GKiFs''@;'; + put 'put ''KDIxKShbXS5ldmVyeSwhMCksIkFycmF5Iix7ZXZlcnk6ZnVuY3Rpb24obyl7cmV0dXJuIGEodGhpcyxvLGFyZ3VtZW50c1sxXSl9fSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDApLGE9bCgxMDkpO3Ioci5QK3IuRiohbCgyMSkoW10ucmVkdWNlLCEwKSwiQXJyYXkiLHtyZWR1Y2U6ZnVu''@;'; + put 'put ''Y3Rpb24obyl7cmV0dXJuIGEodGhpcyxvLGFyZ3VtZW50cy5sZW5ndGgsYXJndW1lbnRzWzFdLCExKX19KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCksYT1sKDEwOSk7cihyLlArci5GKiFsKDIxKShbXS5yZWR1Y2VSaWdodCwhMCksIkFycmF5Iix7cmVkdWNlUmlnaHQ6ZnVuY3Rpb24o''@;'; + put 'put ''byl7cmV0dXJuIGEodGhpcyxvLGFyZ3VtZW50cy5sZW5ndGgsYXJndW1lbnRzWzFdLCEwKX19KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCksYT1sKDUyKSghMSksYz1bXS5pbmRleE9mLG89ISFjJiYxL1sxXS5pbmRleE9mKDEsLTApPDA7cihyLlArci5GKihvfHwhbCgyMSkoYykpLCJB''@;'; + put 'put ''cnJheSIse2luZGV4T2Y6ZnVuY3Rpb24oZil7cmV0dXJuIG8/Yy5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fDA6YSh0aGlzLGYsYXJndW1lbnRzWzFdKX19KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCksYT1sKDE1KSxjPWwoMjApLG89bCg2KSxoPVtdLmxhc3RJbmRleE9mLGY9ISFoJiYx''@;'; + put 'put ''L1sxXS5sYXN0SW5kZXhPZigxLC0wKTwwO3Ioci5QK3IuRiooZnx8IWwoMjEpKGgpKSwiQXJyYXkiLHtsYXN0SW5kZXhPZjpmdW5jdGlvbih1KXtpZihmKXJldHVybiBoLmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8MDt2YXIgcD1hKHRoaXMpLHY9byhwLmxlbmd0aCksSD12LTE7Zm9yKDE8YXJn''@;'; + put 'put ''dW1lbnRzLmxlbmd0aCYmKEg9TWF0aC5taW4oSCxjKGFyZ3VtZW50c1sxXSkpKSxIPDAmJihIPXYrSCk7MDw9SDtILS0paWYoSCBpbiBwJiZwW0hdPT09dSlyZXR1cm4gSHx8MDtyZXR1cm4tMX19KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCk7cihyLlAsIkFycmF5Iix7Y29weVdpdGhp''@;'; + put 'put ''bjpsKDExMCl9KSxsKDMxKSgiY29weVdpdGhpbiIpfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgwKTtyKHIuUCwiQXJyYXkiLHtmaWxsOmwoODUpfSksbCgzMSkoImZpbGwiKX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCksYT1sKDI1KSg1KSxjPSJmaW5kIixvPSEwO2MgaW5bXSYmQXJy''@;'; + put 'put ''YXkoMSlbY10oZnVuY3Rpb24oKXtvPSExfSkscihyLlArci5GKm8sIkFycmF5Iix7ZmluZDpmdW5jdGlvbihmKXtyZXR1cm4gYSh0aGlzLGYsMTxhcmd1bWVudHMubGVuZ3RoP2FyZ3VtZW50c1sxXTprKX19KSxsKDMxKShjKX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCksYT1sKDI1KSg2''@;'; + put 'put ''KSxjPSJmaW5kSW5kZXgiLG89ITA7YyBpbltdJiZBcnJheSgxKVtjXShmdW5jdGlvbigpe289ITF9KSxyKHIuUCtyLkYqbywiQXJyYXkiLHtmaW5kSW5kZXg6ZnVuY3Rpb24oZil7cmV0dXJuIGEodGhpcyxmLDE8YXJndW1lbnRzLmxlbmd0aD9hcmd1bWVudHNbMV06ayl9fSksbCgzMSkoYyl9''@;'; + put 'put ''LGZ1bmN0aW9uKEEsZSxsKXtsKDM4KSgiQXJyYXkiKX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMiksYT1sKDcyKSxjPWwoOCkuZixvPWwoMzcpLmYsaD1sKDU2KSxmPWwoNTApLGc9ci5SZWdFeHAsdT1nLHA9Zy5wcm90b3R5cGUsdj0vYS9nLEg9L2EvZyxDPW5ldyBnKHYpIT09djtpZihs''@;'; + put 'put ''KDcpJiYoIUN8fGwoMykoZnVuY3Rpb24oKXtyZXR1cm4gSFtsKDUpKCJtYXRjaCIpXT0hMSxnKHYpIT12fHxnKEgpPT1IfHwiL2EvaSIhPWcodiwiaSIpfSkpKXtnPWZ1bmN0aW9uKE0seCl7dmFyIEU9dGhpcyBpbnN0YW5jZW9mIGcsdz1oKE0pLE49eD09PWs7cmV0dXJuIUUmJncmJk0uY29u''@;'; + put 'put ''c3RydWN0b3I9PT1nJiZOP006YShDP25ldyB1KHcmJiFOP00uc291cmNlOk0seCk6dSgodz1NIGluc3RhbmNlb2YgZyk/TS5zb3VyY2U6TSx3JiZOP2YuY2FsbChNKTp4KSxFP3RoaXM6cCxnKX07Zm9yKHZhciBWPWZ1bmN0aW9uKGIpe2IgaW4gZ3x8YyhnLGIse2NvbmZpZ3VyYWJsZTohMCxn''@;'; + put 'put ''ZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdVtiXX0sc2V0OmZ1bmN0aW9uKE0pe3VbYl09TX19KX0sUz1vKHUpLF89MDtfPFMubGVuZ3RoOylWKFNbXysrXSk7KHAuY29uc3RydWN0b3I9ZykucHJvdG90eXBlPXAsbCgxMikociwiUmVnRXhwIixnKX1sKDM4KSgiUmVnRXhwIil9LGZ1bmN0aW9uKEEs''@;'; + put 'put ''ZSxsKXtsKDExMyk7dmFyIHI9bCgxKSxhPWwoNTApLGM9bCg3KSxvPSJ0b1N0cmluZyIsaD0vLi9bb10sZj1mdW5jdGlvbihnKXtsKDEyKShSZWdFeHAucHJvdG90eXBlLG8sZywhMCl9O2woMykoZnVuY3Rpb24oKXtyZXR1cm4iL2EvYiIhPWguY2FsbCh7c291cmNlOiJhIixmbGFnczoiYiJ9''@;'; + put 'put ''KX0pP2YoZnVuY3Rpb24oKXt2YXIgdT1yKHRoaXMpO3JldHVybiIvIi5jb25jYXQodS5zb3VyY2UsIi8iLCJmbGFncyJpbiB1P3UuZmxhZ3M6IWMmJnUgaW5zdGFuY2VvZiBSZWdFeHA/YS5jYWxsKHUpOmspfSk6aC5uYW1lIT1vJiZmKGZ1bmN0aW9uKCl7cmV0dXJuIGguY2FsbCh0aGlzKX0p''@;'; + put 'put ''fSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgxKSxhPWwoNiksYz1sKDg4KSxvPWwoNTgpO2woNTkpKCJtYXRjaCIsMSxmdW5jdGlvbihoLGYsZyx1KXtyZXR1cm5bZnVuY3Rpb24odil7dmFyIEg9aCh0aGlzKSxDPXY9PWs/azp2W2ZdO3JldHVybiBDIT09az9DLmNhbGwodixIKTpuZXcgUmVn''@;'; + put 'put ''RXhwKHYpW2ZdKFN0cmluZyhIKSl9LGZ1bmN0aW9uKHApe3ZhciB2PXUoZyxwLHRoaXMpO2lmKHYuZG9uZSlyZXR1cm4gdi52YWx1ZTt2YXIgSD1yKHApLEM9U3RyaW5nKHRoaXMpO2lmKCFILmdsb2JhbClyZXR1cm4gbyhILEMpO2Zvcih2YXIgVixTPUgudW5pY29kZSxfPVtdLGI9SC5sYXN0''@;'; + put 'put ''SW5kZXg9MDtudWxsIT09KFY9byhILEMpKTspe3ZhciBNPVN0cmluZyhWWzBdKTsiIj09PShfW2JdPU0pJiYoSC5sYXN0SW5kZXg9YyhDLGEoSC5sYXN0SW5kZXgpLFMpKSxiKyt9cmV0dXJuIDA9PT1iP251bGw6X31dfSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDEpLGE9bCg5KSxjPWwo''@;'; + put 'put ''Niksbz1sKDIwKSxoPWwoODgpLGY9bCg1OCksZz1NYXRoLm1heCx1PU1hdGgubWluLHA9TWF0aC5mbG9vcix2PS9cJChbJCZgJ118XGRcZD98PFtePl0qPikvZyxIPS9cJChbJCZgJ118XGRcZD8pL2c7bCg1OSkoInJlcGxhY2UiLDIsZnVuY3Rpb24oQyxWLFMsXyl7cmV0dXJuW2Z1bmN0aW9u''@;'; + put 'put ''KHgsRSl7dmFyIHc9Qyh0aGlzKSxOPXg9PWs/azp4W1ZdO3JldHVybiBOIT09az9OLmNhbGwoeCx3LEUpOlMuY2FsbChTdHJpbmcodykseCxFKX0sZnVuY3Rpb24oTSx4KXt2YXIgRT1fKFMsTSx0aGlzLHgpO2lmKEUuZG9uZSlyZXR1cm4gRS52YWx1ZTt2YXIgdz1yKE0pLE49U3RyaW5nKHRo''@;'; + put 'put ''aXMpLEk9ImZ1bmN0aW9uIj09dHlwZW9mIHg7SXx8KHg9U3RyaW5nKHgpKTt2YXIgVz13Lmdsb2JhbDtpZihXKXt2YXIgTz13LnVuaWNvZGU7dy5sYXN0SW5kZXg9MH1mb3IodmFyIEI9W107Oyl7dmFyIFI9Zih3LE4pO2lmKG51bGw9PT1SfHwoQi5wdXNoKFIpLCFXKSlicmVhazsiIj09PVN0''@;'; + put 'put ''cmluZyhSWzBdKSYmKHcubGFzdEluZGV4PWgoTixjKHcubGFzdEluZGV4KSxPKSl9Zm9yKHZhciBsMSxhMT0iIixoMT0wLHUxPTA7dTE8Qi5sZW5ndGg7dTErKyl7Uj1CW3UxXTtmb3IodmFyIHAxPVN0cmluZyhSWzBdKSx2MT1nKHUobyhSLmluZGV4KSxOLmxlbmd0aCksMCksRTE9W10saj0x''@;'; + put 'put ''O2o8Ui5sZW5ndGg7aisrKUUxLnB1c2goKGwxPVJbal0pPT09az9sMTpTdHJpbmcobDEpKTt2YXIgYzE9Ui5ncm91cHM7aWYoSSl7dmFyIFYxPVtwMV0uY29uY2F0KEUxLHYxLE4pO2MxIT09ayYmVjEucHVzaChjMSk7dmFyIF8xPVN0cmluZyh4LmFwcGx5KGssVjEpKX1lbHNlIF8xPWIocDEs''@;'; + put 'put ''Tix2MSxFMSxjMSx4KTtoMTw9djEmJihhMSs9Ti5zbGljZShoMSx2MSkrXzEsaDE9djErcDEubGVuZ3RoKX1yZXR1cm4gYTErTi5zbGljZShoMSl9XTtmdW5jdGlvbiBiKE0seCxFLHcsTixJKXt2YXIgVz1FK00ubGVuZ3RoLE89dy5sZW5ndGgsQj1IO3JldHVybiBOIT09ayYmKE49YShOKSxC''@;'; + put 'put ''PXYpLFMuY2FsbChJLEIsZnVuY3Rpb24oUixsMSl7dmFyIGExO3N3aXRjaChsMS5jaGFyQXQoMCkpe2Nhc2UiJCI6cmV0dXJuIiQiO2Nhc2UiJiI6cmV0dXJuIE07Y2FzZSJgIjpyZXR1cm4geC5zbGljZSgwLEUpO2Nhc2UiJyI6cmV0dXJuIHguc2xpY2UoVyk7Y2FzZSI8IjphMT1OW2wxLnNs''@;'; + put 'put ''aWNlKDEsLTEpXTticmVhaztkZWZhdWx0OnZhciBoMT0rbDE7aWYoMD09PWgxKXJldHVybiBSO2lmKE88aDEpe3ZhciB1MT1wKGgxLzEwKTtyZXR1cm4gMD09PXUxP1I6dTE8PU8/d1t1MS0xXT09PWs/bDEuY2hhckF0KDEpOndbdTEtMV0rbDEuY2hhckF0KDEpOlJ9YTE9d1toMS0xXX1yZXR1''@;'; + put 'put ''cm4gYTE9PT1rPyIiOmExfSl9fSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDEpLGE9bCg5OSksYz1sKDU4KTtsKDU5KSgic2VhcmNoIiwxLGZ1bmN0aW9uKG8saCxmLGcpe3JldHVybltmdW5jdGlvbihwKXt2YXIgdj1vKHRoaXMpLEg9cD09az9rOnBbaF07cmV0dXJuIEghPT1rP0guY2Fs''@;'; + put 'put ''bChwLHYpOm5ldyBSZWdFeHAocClbaF0oU3RyaW5nKHYpKX0sZnVuY3Rpb24odSl7dmFyIHA9ZyhmLHUsdGhpcyk7aWYocC5kb25lKXJldHVybiBwLnZhbHVlO3ZhciB2PXIodSksSD1TdHJpbmcodGhpcyksQz12Lmxhc3RJbmRleDthKEMsMCl8fCh2Lmxhc3RJbmRleD0wKTt2YXIgVj1jKHYs''@;'; + put 'put ''SCk7cmV0dXJuIGEodi5sYXN0SW5kZXgsQyl8fCh2Lmxhc3RJbmRleD1DKSxudWxsPT09Vj8tMTpWLmluZGV4fV19KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoNTYpLGE9bCgxKSxjPWwoNTEpLG89bCg4OCksaD1sKDYpLGY9bCg1OCksZz1sKDg3KSx1PWwoMykscD1NYXRoLm1pbix2PVtd''@;'; + put 'put ''LnB1c2gsSD0ic3BsaXQiLEM9Imxlbmd0aCIsVj0ibGFzdEluZGV4IixTPTQyOTQ5NjcyOTUsXz0hdShmdW5jdGlvbigpe1JlZ0V4cChTLCJ5Iil9KTtsKDU5KSgic3BsaXQiLDIsZnVuY3Rpb24oYixNLHgsRSl7dmFyIHc7cmV0dXJuIHc9ImMiPT0iYWJiYyJbSF0oLyhiKSovKVsxXXx8NCE9''@;'; + put 'put ''InRlc3QiW0hdKC8oPzopLywtMSlbQ118fDIhPSJhYiJbSF0oLyg/OmFiKSovKVtDXXx8NCE9Ii4iW0hdKC8oLj8pKC4/KS8pW0NdfHwxPCIuIltIXSgvKCkoKS8pW0NdfHwiIltIXSgvLj8vKVtDXT9mdW5jdGlvbihOLEkpe3ZhciBXPVN0cmluZyh0aGlzKTtpZihOPT09ayYmMD09PUkpcmV0''@;'; + put 'put ''dXJuW107aWYoIXIoTikpcmV0dXJuIHguY2FsbChXLE4sSSk7Zm9yKHZhciBPLEIsUixsMT1bXSxhMT0wLGgxPUk9PT1rP1M6ST4+PjAsdTE9bmV3IFJlZ0V4cChOLnNvdXJjZSwoTi5pZ25vcmVDYXNlPyJpIjoiIikrKE4ubXVsdGlsaW5lPyJtIjoiIikrKE4udW5pY29kZT8idSI6IiIpKyhO''@;'; + put 'put ''LnN0aWNreT8ieSI6IiIpKyJnIik7KE89Zy5jYWxsKHUxLFcpKSYmIShhMTwoQj11MVtWXSkmJihsMS5wdXNoKFcuc2xpY2UoYTEsTy5pbmRleCkpLDE8T1tDXSYmTy5pbmRleDxXW0NdJiZ2LmFwcGx5KGwxLE8uc2xpY2UoMSkpLFI9T1swXVtDXSxhMT1CLGgxPD1sMVtDXSkpOyl1MVtWXT09''@;'; + put 'put ''PU8uaW5kZXgmJnUxW1ZdKys7cmV0dXJuIGExPT09V1tDXT8hUiYmdTEudGVzdCgiIil8fGwxLnB1c2goIiIpOmwxLnB1c2goVy5zbGljZShhMSkpLGgxPGwxW0NdP2wxLnNsaWNlKDAsaDEpOmwxfToiMCJbSF0oaywwKVtDXT9mdW5jdGlvbihOLEkpe3JldHVybiBOPT09ayYmMD09PUk/W106''@;'; + put 'put ''eC5jYWxsKHRoaXMsTixJKX06eCxbZnVuY3Rpb24oSSxXKXt2YXIgTz1iKHRoaXMpLEI9ST09az9rOklbTV07cmV0dXJuIEIhPT1rP0IuY2FsbChJLE8sVyk6dy5jYWxsKFN0cmluZyhPKSxJLFcpfSxmdW5jdGlvbihOLEkpe3ZhciBXPUUodyxOLHRoaXMsSSx3IT09eCk7aWYoVy5kb25lKXJl''@;'; + put 'put ''dHVybiBXLnZhbHVlO3ZhciBPPWEoTiksQj1TdHJpbmcodGhpcyksUj1jKE8sUmVnRXhwKSxsMT1PLnVuaWNvZGUsYTE9bmV3IFIoXz9POiJeKD86IitPLnNvdXJjZSsiKSIsKE8uaWdub3JlQ2FzZT8iaSI6IiIpKyhPLm11bHRpbGluZT8ibSI6IiIpKyhPLnVuaWNvZGU/InUiOiIiKSsoXz8i''@;'; + put 'put ''eSI6ImciKSksaDE9ST09PWs/UzpJPj4+MDtpZigwPT09aDEpcmV0dXJuW107aWYoMD09PUIubGVuZ3RoKXJldHVybiBudWxsPT09ZihhMSxCKT9bQl06W107Zm9yKHZhciB1MT0wLHAxPTAsdjE9W107cDE8Qi5sZW5ndGg7KXthMS5sYXN0SW5kZXg9Xz9wMTowO3ZhciBFMSxqPWYoYTEsXz9C''@;'; + put 'put ''OkIuc2xpY2UocDEpKTtpZihudWxsPT09anx8KEUxPXAoaChhMS5sYXN0SW5kZXgrKF8/MDpwMSkpLEIubGVuZ3RoKSk9PT11MSlwMT1vKEIscDEsbDEpO2Vsc2V7aWYodjEucHVzaChCLnNsaWNlKHUxLHAxKSksdjEubGVuZ3RoPT09aDEpcmV0dXJuIHYxO2Zvcih2YXIgYzE9MTtjMTw9ai5s''@;'; + put 'put ''ZW5ndGgtMTtjMSsrKWlmKHYxLnB1c2goaltjMV0pLHYxLmxlbmd0aD09PWgxKXJldHVybiB2MTtwMT11MT1FMX19cmV0dXJuIHYxLnB1c2goQi5zbGljZSh1MSkpLHYxfV19KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByLGEsYyxvLGg9bCgyOSksZj1sKDIpLGc9bCgxOCksdT1sKDQ0KSxwPWwo''@;'; + put 'put ''MCksdj1sKDQpLEg9bCgxMCksQz1sKDM5KSxWPWwoNDApLFM9bCg1MSksXz1sKDg5KS5zZXQsYj1sKDkwKSgpLE09bCg5MSkseD1sKDExNCksRT1sKDYwKSx3PWwoMTE1KSxOPSJQcm9taXNlIixJPWYuVHlwZUVycm9yLFc9Zi5wcm9jZXNzLE89VyYmVy52ZXJzaW9ucyxCPU8mJk8udjh8fCIi''@;'; + put 'put ''LFI9ZltOXSxsMT0icHJvY2VzcyI9PXUoVyksYTE9ZnVuY3Rpb24oKXt9LGgxPWE9TS5mLHUxPSEhZnVuY3Rpb24oKXt0cnl7dmFyIFE9Ui5yZXNvbHZlKDEpLHMxPShRLmNvbnN0cnVjdG9yPXt9KVtsKDUpKCJzcGVjaWVzIildPWZ1bmN0aW9uKG0xKXttMShhMSxhMSl9O3JldHVybihsMXx8''@;'; + put 'put ''ImZ1bmN0aW9uIj09dHlwZW9mIFByb21pc2VSZWplY3Rpb25FdmVudCkmJlEudGhlbihhMSlpbnN0YW5jZW9mIHMxJiYwIT09Qi5pbmRleE9mKCI2LjYiKSYmLTE9PT1FLmluZGV4T2YoIkNocm9tZS82NiIpfWNhdGNoKG0xKXt9fSgpLHAxPWZ1bmN0aW9uKFEpe3ZhciBzMTtyZXR1cm4hKCF2''@;'; + put 'put ''KFEpfHwiZnVuY3Rpb24iIT10eXBlb2YoczE9US50aGVuKSkmJnMxfSx2MT1mdW5jdGlvbihRLHMxKXtpZighUS5fbil7US5fbj0hMDt2YXIgbTE9US5fYztiKGZ1bmN0aW9uKCl7Zm9yKHZhciBiMT1RLl92LEIxPTE9PVEuX3MsJD0wLHo9ZnVuY3Rpb24oeSl7dmFyIEQsWixULFA9QjE/eS5v''@;'; + put 'put ''azp5LmZhaWwsZTE9eS5yZXNvbHZlLHIxPXkucmVqZWN0LFoxPXkuZG9tYWluO3RyeXtQPyhCMXx8KDI9PVEuX2gmJmMxKFEpLFEuX2g9MSksITA9PT1QP0Q9YjE6KFoxJiZaMS5lbnRlcigpLEQ9UChiMSksWjEmJihaMS5leGl0KCksVD0hMCkpLEQ9PT15LnByb21pc2U/cjEoSSgiUHJvbWlz''@;'; + put 'put ''ZS1jaGFpbiBjeWNsZSIpKTooWj1wMShEKSk/Wi5jYWxsKEQsZTEscjEpOmUxKEQpKTpyMShiMSl9Y2F0Y2goWSl7WjEmJiFUJiZaMS5leGl0KCkscjEoWSl9fTskPG0xLmxlbmd0aDspeihtMVskKytdKTtRLl9jPVtdLFEuX249ITEsczEmJiFRLl9oJiZFMShRKX0pfX0sRTE9ZnVuY3Rpb24o''@;'; + put 'put ''USl7Xy5jYWxsKGYsZnVuY3Rpb24oKXt2YXIgczEsbTEsYjEsQjE9US5fdiwkPWooUSk7aWYoJCYmKHMxPXgoZnVuY3Rpb24oKXtsMT9XLmVtaXQoInVuaGFuZGxlZFJlamVjdGlvbiIsQjEsUSk6KG0xPWYub251bmhhbmRsZWRyZWplY3Rpb24pP20xKHtwcm9taXNlOlEscmVhc29uOkIxfSk6''@;'; + put 'put ''KGIxPWYuY29uc29sZSkmJmIxLmVycm9yJiZiMS5lcnJvcigiVW5oYW5kbGVkIHByb21pc2UgcmVqZWN0aW9uIixCMSl9KSxRLl9oPWwxfHxqKFEpPzI6MSksUS5fYT1rLCQmJnMxLmUpdGhyb3cgczEudn0pfSxqPWZ1bmN0aW9uKFEpe3JldHVybiAxIT09US5faCYmMD09PShRLl9hfHxRLl9j''@;'; + put 'put ''KS5sZW5ndGh9LGMxPWZ1bmN0aW9uKFEpe18uY2FsbChmLGZ1bmN0aW9uKCl7dmFyIHMxO2wxP1cuZW1pdCgicmVqZWN0aW9uSGFuZGxlZCIsUSk6KHMxPWYub25yZWplY3Rpb25oYW5kbGVkKSYmczEoe3Byb21pc2U6USxyZWFzb246US5fdn0pfSl9LFYxPWZ1bmN0aW9uKFEpe3ZhciBzMT10''@;'; + put 'put ''aGlzO3MxLl9kfHwoczEuX2Q9ITAsKHMxPXMxLl93fHxzMSkuX3Y9USxzMS5fcz0yLHMxLl9hfHwoczEuX2E9czEuX2Muc2xpY2UoKSksdjEoczEsITApKX0sXzE9ZnVuY3Rpb24oUSl7dmFyIHMxLG0xPXRoaXM7aWYoIW0xLl9kKXttMS5fZD0hMCxtMT1tMS5fd3x8bTE7dHJ5e2lmKG0xPT09''@;'; + put 'put ''USl0aHJvdyBJKCJQcm9taXNlIGNhbid0IGJlIHJlc29sdmVkIGl0c2VsZiIpOyhzMT1wMShRKSk/YihmdW5jdGlvbigpe3ZhciBiMT17X3c6bTEsX2Q6ITF9O3RyeXtzMS5jYWxsKFEsZyhfMSxiMSwxKSxnKFYxLGIxLDEpKX1jYXRjaChCMSl7VjEuY2FsbChiMSxCMSl9fSk6KG0xLl92PVEs''@;'; + put 'put ''bTEuX3M9MSx2MShtMSwhMSkpfWNhdGNoKGIxKXtWMS5jYWxsKHtfdzptMSxfZDohMX0sYjEpfX19O3UxfHwoUj1mdW5jdGlvbihzMSl7Qyh0aGlzLFIsTiwiX2giKSxIKHMxKSxyLmNhbGwodGhpcyk7dHJ5e3MxKGcoXzEsdGhpcywxKSxnKFYxLHRoaXMsMSkpfWNhdGNoKG0xKXtWMS5jYWxs''@;'; + put 'put ''KHRoaXMsbTEpfX0sKHI9ZnVuY3Rpb24oczEpe3RoaXMuX2M9W10sdGhpcy5fYT1rLHRoaXMuX3M9MCx0aGlzLl9kPSExLHRoaXMuX3Y9ayx0aGlzLl9oPTAsdGhpcy5fbj0hMX0pLnByb3RvdHlwZT1sKDQxKShSLnByb3RvdHlwZSx7dGhlbjpmdW5jdGlvbihzMSxtMSl7dmFyIGIxPWgxKFMo''@;'; + put 'put ''dGhpcyxSKSk7cmV0dXJuIGIxLm9rPSJmdW5jdGlvbiIhPXR5cGVvZiBzMXx8czEsYjEuZmFpbD0iZnVuY3Rpb24iPT10eXBlb2YgbTEmJm0xLGIxLmRvbWFpbj1sMT9XLmRvbWFpbjprLHRoaXMuX2MucHVzaChiMSksdGhpcy5fYSYmdGhpcy5fYS5wdXNoKGIxKSx0aGlzLl9zJiZ2MSh0aGlz''@;'; + put 'put ''LCExKSxiMS5wcm9taXNlfSxjYXRjaDpmdW5jdGlvbihRKXtyZXR1cm4gdGhpcy50aGVuKGssUSl9fSksYz1mdW5jdGlvbigpe3ZhciBRPW5ldyByO3RoaXMucHJvbWlzZT1RLHRoaXMucmVzb2x2ZT1nKF8xLFEsMSksdGhpcy5yZWplY3Q9ZyhWMSxRLDEpfSxNLmY9aDE9ZnVuY3Rpb24oUSl7''@;'; + put 'put ''cmV0dXJuIFE9PT1SfHxRPT09bz9uZXcgYyhRKTphKFEpfSkscChwLkcrcC5XK3AuRiohdTEse1Byb21pc2U6Un0pLGwoNDMpKFIsTiksbCgzOCkoTiksbz1sKDI2KVtOXSxwKHAuUytwLkYqIXUxLE4se3JlamVjdDpmdW5jdGlvbihzMSl7dmFyIG0xPWgxKHRoaXMpO3JldHVybigwLG0xLnJl''@;'; + put 'put ''amVjdCkoczEpLG0xLnByb21pc2V9fSkscChwLlMrcC5GKihofHwhdTEpLE4se3Jlc29sdmU6ZnVuY3Rpb24oczEpe3JldHVybiB3KGgmJnRoaXM9PT1vP1I6dGhpcyxzMSl9fSkscChwLlMrcC5GKiEodTEmJmwoNTcpKGZ1bmN0aW9uKFEpe1IuYWxsKFEpLmNhdGNoKGExKX0pKSxOLHthbGw6''@;'; + put 'put ''ZnVuY3Rpb24oczEpe3ZhciBtMT10aGlzLGIxPWgxKG0xKSxCMT1iMS5yZXNvbHZlLCQ9YjEucmVqZWN0LHo9eChmdW5jdGlvbigpe3ZhciB5PVtdLEQ9MCxaPTE7VihzMSwhMSxmdW5jdGlvbihUKXt2YXIgUD1EKyssZTE9ITE7eS5wdXNoKGspLForKyxtMS5yZXNvbHZlKFQpLnRoZW4oZnVu''@;'; + put 'put ''Y3Rpb24ocjEpe2UxfHwoZTE9ITAseVtQXT1yMSwtLVp8fEIxKHkpKX0sJCl9KSwtLVp8fEIxKHkpfSk7cmV0dXJuIHouZSYmJCh6LnYpLGIxLnByb21pc2V9LHJhY2U6ZnVuY3Rpb24oczEpe3ZhciBtMT10aGlzLGIxPWgxKG0xKSxCMT1iMS5yZWplY3QsJD14KGZ1bmN0aW9uKCl7VihzMSwh''@;'; + put 'put ''MSxmdW5jdGlvbih6KXttMS5yZXNvbHZlKHopLnRoZW4oYjEucmVzb2x2ZSxCMSl9KX0pO3JldHVybiAkLmUmJkIxKCQudiksYjEucHJvbWlzZX19KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMTIwKSxhPWwoNDIpLGM9IldlYWtTZXQiO2woNjEpKGMsZnVuY3Rpb24obyl7cmV0dXJuIGZ1''@;'; + put 'put ''bmN0aW9uKCl7cmV0dXJuIG8odGhpcywwPGFyZ3VtZW50cy5sZW5ndGg/YXJndW1lbnRzWzBdOmspfX0se2FkZDpmdW5jdGlvbihoKXtyZXR1cm4gci5kZWYoYSh0aGlzLGMpLGgsITApfX0sciwhMSwhMCl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDApLGE9bCgxMCksYz1sKDEpLG89KGwo''@;'; + put 'put ''MikuUmVmbGVjdHx8e30pLmFwcGx5LGg9RnVuY3Rpb24uYXBwbHk7cihyLlMrci5GKiFsKDMpKGZ1bmN0aW9uKCl7byhmdW5jdGlvbigpe30pfSksIlJlZmxlY3QiLHthcHBseTpmdW5jdGlvbihnLHUscCl7dmFyIHY9YShnKSxIPWMocCk7cmV0dXJuIG8/byh2LHUsSCk6aC5jYWxsKHYsdSxI''@;'; + put 'put ''KX19KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCksYT1sKDM2KSxjPWwoMTApLG89bCgxKSxoPWwoNCksZj1sKDMpLGc9bCgxMDApLHU9KGwoMikuUmVmbGVjdHx8e30pLmNvbnN0cnVjdCxwPWYoZnVuY3Rpb24oKXtmdW5jdGlvbiBIKCl7fXJldHVybiEodShmdW5jdGlvbigpe30sW10s''@;'; + put 'put ''SClpbnN0YW5jZW9mIEgpfSksdj0hZihmdW5jdGlvbigpe3UoZnVuY3Rpb24oKXt9KX0pO3Ioci5TK3IuRioocHx8diksIlJlZmxlY3QiLHtjb25zdHJ1Y3Q6ZnVuY3Rpb24oQyxWKXtjKEMpLG8oVik7dmFyIFM9YXJndW1lbnRzLmxlbmd0aDwzP0M6Yyhhcmd1bWVudHNbMl0pO2lmKHYmJiFw''@;'; + put 'put ''KXJldHVybiB1KEMsVixTKTtpZihDPT1TKXtzd2l0Y2goVi5sZW5ndGgpe2Nhc2UgMDpyZXR1cm4gbmV3IEM7Y2FzZSAxOnJldHVybiBuZXcgQyhWWzBdKTtjYXNlIDI6cmV0dXJuIG5ldyBDKFZbMF0sVlsxXSk7Y2FzZSAzOnJldHVybiBuZXcgQyhWWzBdLFZbMV0sVlsyXSk7Y2FzZSA0OnJl''@;'; + put 'put ''dHVybiBuZXcgQyhWWzBdLFZbMV0sVlsyXSxWWzNdKX12YXIgXz1bbnVsbF07cmV0dXJuIF8ucHVzaC5hcHBseShfLFYpLG5ldyhnLmFwcGx5KEMsXykpfXZhciBiPVMucHJvdG90eXBlLE09YShoKGIpP2I6T2JqZWN0LnByb3RvdHlwZSkseD1GdW5jdGlvbi5hcHBseS5jYWxsKEMsTSxWKTty''@;'; + put 'put ''ZXR1cm4gaCh4KT94Ok19fSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDgpLGE9bCgwKSxjPWwoMSksbz1sKDIyKTthKGEuUythLkYqbCgzKShmdW5jdGlvbigpe1JlZmxlY3QuZGVmaW5lUHJvcGVydHkoci5mKHt9LDEse3ZhbHVlOjF9KSwxLHt2YWx1ZToyfSl9KSwiUmVmbGVjdCIse2Rl''@;'; + put 'put ''ZmluZVByb3BlcnR5OmZ1bmN0aW9uKGYsZyx1KXtjKGYpLGc9byhnLCEwKSxjKHUpO3RyeXtyZXR1cm4gci5mKGYsZyx1KSwhMH1jYXRjaChwKXtyZXR1cm4hMX19fSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDApLGE9bCgxNikuZixjPWwoMSk7cihyLlMsIlJlZmxlY3QiLHtkZWxldGVQ''@;'; + put 'put ''cm9wZXJ0eTpmdW5jdGlvbihoLGYpe3ZhciBnPWEoYyhoKSxmKTtyZXR1cm4hKGcmJiFnLmNvbmZpZ3VyYWJsZSkmJmRlbGV0ZSBoW2ZdfX0pfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgwKSxhPWwoMSksYz1mdW5jdGlvbihvKXt0aGlzLl90PWEobyksdGhpcy5faT0wO3ZhciBoLGY9dGhp''@;'; + put 'put ''cy5faz1bXTtmb3IoaCBpbiBvKWYucHVzaChoKX07bCg4MCkoYywiT2JqZWN0IixmdW5jdGlvbigpe3ZhciBvLGg9dGhpcy5faztkb3tpZihoLmxlbmd0aDw9dGhpcy5faSlyZXR1cm57dmFsdWU6ayxkb25lOiEwfX13aGlsZSghKChvPWhbdGhpcy5faSsrXSlpbiB0aGlzLl90KSk7cmV0dXJu''@;'; + put 'put ''e3ZhbHVlOm8sZG9uZTohMX19KSxyKHIuUywiUmVmbGVjdCIse2VudW1lcmF0ZTpmdW5jdGlvbihoKXtyZXR1cm4gbmV3IGMoaCl9fSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDE2KSxhPWwoMTcpLGM9bCgxNCksbz1sKDApLGg9bCg0KSxmPWwoMSk7byhvLlMsIlJlZmxlY3QiLHtnZXQ6''@;'; + put 'put ''ZnVuY3Rpb24gZyh1LHApe3ZhciB2LEgsQz1hcmd1bWVudHMubGVuZ3RoPDM/dTphcmd1bWVudHNbMl07cmV0dXJuIGYodSk9PT1DP3VbcF06KHY9ci5mKHUscCkpP2ModiwidmFsdWUiKT92LnZhbHVlOnYuZ2V0IT09az92LmdldC5jYWxsKEMpOms6aChIPWEodSkpP2coSCxwLEMpOnZvaWQg''@;'; + put 'put ''MH19KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMTYpLGE9bCgwKSxjPWwoMSk7YShhLlMsIlJlZmxlY3QiLHtnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I6ZnVuY3Rpb24oaCxmKXtyZXR1cm4gci5mKGMoaCksZil9fSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDApLGE9bCgxNyksYz1s''@;'; + put 'put ''KDEpO3Ioci5TLCJSZWZsZWN0Iix7Z2V0UHJvdG90eXBlT2Y6ZnVuY3Rpb24oaCl7cmV0dXJuIGEoYyhoKSl9fSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDApO3Ioci5TLCJSZWZsZWN0Iix7aGFzOmZ1bmN0aW9uKGMsbyl7cmV0dXJuIG8gaW4gY319KX0sZnVuY3Rpb24oQSxlLGwpe3Zh''@;'; + put 'put ''ciByPWwoMCksYT1sKDEpLGM9T2JqZWN0LmlzRXh0ZW5zaWJsZTtyKHIuUywiUmVmbGVjdCIse2lzRXh0ZW5zaWJsZTpmdW5jdGlvbihoKXtyZXR1cm4gYShoKSwhY3x8YyhoKX19KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCk7cihyLlMsIlJlZmxlY3QiLHtvd25LZXlzOmwoMTIxKX0p''@;'; + put 'put ''fSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgwKSxhPWwoMSksYz1PYmplY3QucHJldmVudEV4dGVuc2lvbnM7cihyLlMsIlJlZmxlY3QiLHtwcmV2ZW50RXh0ZW5zaW9uczpmdW5jdGlvbihoKXthKGgpO3RyeXtyZXR1cm4gYyYmYyhoKSwhMH1jYXRjaChmKXtyZXR1cm4hMX19fSl9LGZ1bmN0''@;'; + put 'put ''aW9uKEEsZSxsKXt2YXIgcj1sKDgpLGE9bCgxNiksYz1sKDE3KSxvPWwoMTQpLGg9bCgwKSxmPWwoMzIpLGc9bCgxKSx1PWwoNCk7aChoLlMsIlJlZmxlY3QiLHtzZXQ6ZnVuY3Rpb24gcCh2LEgsQyl7dmFyIFYsUyxfPWFyZ3VtZW50cy5sZW5ndGg8ND92OmFyZ3VtZW50c1szXSxiPWEuZihn''@;'; + put 'put ''KHYpLEgpO2lmKCFiKXtpZih1KFM9Yyh2KSkpcmV0dXJuIHAoUyxILEMsXyk7Yj1mKDApfWlmKG8oYiwidmFsdWUiKSl7aWYoITE9PT1iLndyaXRhYmxlfHwhdShfKSlyZXR1cm4hMTtpZihWPWEuZihfLEgpKXtpZihWLmdldHx8Vi5zZXR8fCExPT09Vi53cml0YWJsZSlyZXR1cm4hMTtWLnZh''@;'; + put 'put ''bHVlPUMsci5mKF8sSCxWKX1lbHNlIHIuZihfLEgsZigwLEMpKTtyZXR1cm4hMH1yZXR1cm4gYi5zZXQhPT1rJiYoYi5zZXQuY2FsbChfLEMpLCEwKX19KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCksYT1sKDcxKTthJiZyKHIuUywiUmVmbGVjdCIse3NldFByb3RvdHlwZU9mOmZ1bmN0''@;'; + put 'put ''aW9uKG8saCl7YS5jaGVjayhvLGgpO3RyeXtyZXR1cm4gYS5zZXQobyxoKSwhMH1jYXRjaChmKXtyZXR1cm4hMX19fSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDApO3Ioci5TLCJEYXRlIix7bm93OmZ1bmN0aW9uKCl7cmV0dXJuKG5ldyBEYXRlKS5nZXRUaW1lKCl9fSl9LGZ1bmN0aW9u''@;'; + put 'put ''KEEsZSxsKXt2YXIgcj1sKDApLGE9bCg5KSxjPWwoMjIpO3Ioci5QK3IuRipsKDMpKGZ1bmN0aW9uKCl7cmV0dXJuIG51bGwhPT1uZXcgRGF0ZShOYU4pLnRvSlNPTigpfHwxIT09RGF0ZS5wcm90b3R5cGUudG9KU09OLmNhbGwoe3RvSVNPU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIDF9fSl9''@;'; + put 'put ''KSwiRGF0ZSIse3RvSlNPTjpmdW5jdGlvbihoKXt2YXIgZj1hKHRoaXMpLGc9YyhmKTtyZXR1cm4ibnVtYmVyIiE9dHlwZW9mIGd8fGlzRmluaXRlKGcpP2YudG9JU09TdHJpbmcoKTpudWxsfX0pfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgwKSxhPWwoMjUyKTtyKHIuUCtyLkYqKERhdGUu''@;'; + put 'put ''cHJvdG90eXBlLnRvSVNPU3RyaW5nIT09YSksIkRhdGUiLHt0b0lTT1N0cmluZzphfSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDMpLGE9RGF0ZS5wcm90b3R5cGUuZ2V0VGltZSxjPURhdGUucHJvdG90eXBlLnRvSVNPU3RyaW5nLG89ZnVuY3Rpb24oaCl7cmV0dXJuIDk8aD9oOiIwIito''@;'; + put 'put ''fTtBLmV4cG9ydHM9cihmdW5jdGlvbigpe3JldHVybiIwMzg1LTA3LTI1VDA3OjA2OjM5Ljk5OVoiIT1jLmNhbGwobmV3IERhdGUoLTUwMDAwMDAwMDAwMDAxKSl9KXx8IXIoZnVuY3Rpb24oKXtjLmNhbGwobmV3IERhdGUoTmFOKSl9KT9mdW5jdGlvbigpe2lmKCFpc0Zpbml0ZShhLmNhbGwo''@;'; + put 'put ''dGhpcykpKXRocm93IFJhbmdlRXJyb3IoIkludmFsaWQgdGltZSB2YWx1ZSIpO3ZhciBmPXRoaXMsZz1mLmdldFVUQ0Z1bGxZZWFyKCksdT1mLmdldFVUQ01pbGxpc2Vjb25kcygpLHA9ZzwwPyItIjo5OTk5PGc/IisiOiIiO3JldHVybiBwKygiMDAwMDAiK01hdGguYWJzKGcpKS5zbGljZShw''@;'; + put 'put ''Py02Oi00KSsiLSIrbyhmLmdldFVUQ01vbnRoKCkrMSkrIi0iK28oZi5nZXRVVENEYXRlKCkpKyJUIitvKGYuZ2V0VVRDSG91cnMoKSkrIjoiK28oZi5nZXRVVENNaW51dGVzKCkpKyI6IitvKGYuZ2V0VVRDU2Vjb25kcygpKSsiLiIrKDk5PHU/dToiMCIrbyh1KSkrIloifTpjfSxmdW5jdGlv''@;'; + put 'put ''bihBLGUsbCl7dmFyIHI9RGF0ZS5wcm90b3R5cGUsYT0iSW52YWxpZCBEYXRlIixjPSJ0b1N0cmluZyIsbz1yW2NdLGg9ci5nZXRUaW1lO25ldyBEYXRlKE5hTikrIiIhPWEmJmwoMTIpKHIsYyxmdW5jdGlvbigpe3ZhciBnPWguY2FsbCh0aGlzKTtyZXR1cm4gZz09Zz9vLmNhbGwodGhpcyk6''@;'; + put 'put ''YX0pfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCg1KSgidG9QcmltaXRpdmUiKSxhPURhdGUucHJvdG90eXBlO3IgaW4gYXx8bCgxMSkoYSxyLGwoMjU1KSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDEpLGE9bCgyMik7QS5leHBvcnRzPWZ1bmN0aW9uKGMpe2lmKCJzdHJpbmciIT09YyYm''@;'; + put 'put ''Im51bWJlciIhPT1jJiYiZGVmYXVsdCIhPT1jKXRocm93IFR5cGVFcnJvcigiSW5jb3JyZWN0IGhpbnQiKTtyZXR1cm4gYShyKHRoaXMpLCJudW1iZXIiIT1jKX19LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDApLGE9bCg2MiksYz1sKDkyKSxvPWwoMSksaD1sKDM1KSxmPWwoNiksZz1sKDQp''@;'; + put 'put ''LHU9bCgyKS5BcnJheUJ1ZmZlcixwPWwoNTEpLHY9Yy5BcnJheUJ1ZmZlcixIPWMuRGF0YVZpZXcsQz1hLkFCViYmdS5pc1ZpZXcsVj12LnByb3RvdHlwZS5zbGljZSxTPWEuVklFVyxfPSJBcnJheUJ1ZmZlciI7cihyLkcrci5XK3IuRioodSE9PXYpLHtBcnJheUJ1ZmZlcjp2fSkscihyLlMr''@;'; + put 'put ''ci5GKiFhLkNPTlNUUixfLHtpc1ZpZXc6ZnVuY3Rpb24oTSl7cmV0dXJuIEMmJkMoTSl8fGcoTSkmJlMgaW4gTX19KSxyKHIuUCtyLlUrci5GKmwoMykoZnVuY3Rpb24oKXtyZXR1cm4hbmV3IHYoMikuc2xpY2UoMSxrKS5ieXRlTGVuZ3RofSksXyx7c2xpY2U6ZnVuY3Rpb24oTSx4KXtpZihW''@;'; + put 'put ''IT09ayYmeD09PWspcmV0dXJuIFYuY2FsbChvKHRoaXMpLE0pO2Zvcih2YXIgRT1vKHRoaXMpLmJ5dGVMZW5ndGgsdz1oKE0sRSksTj1oKHg9PT1rP0U6eCxFKSxJPW5ldyhwKHRoaXMsdikpKGYoTi13KSksVz1uZXcgSCh0aGlzKSxPPW5ldyBIKEkpLEI9MDt3PE47KU8uc2V0VWludDgoQisr''@;'; + put 'put ''LFcuZ2V0VWludDgodysrKSk7cmV0dXJuIEl9fSksbCgzOCkoXyl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDApO3Ioci5HK3IuVytyLkYqIWwoNjIpLkFCVix7RGF0YVZpZXc6bCg5MikuRGF0YVZpZXd9KX0sZnVuY3Rpb24oQSxlLGwpe2woMjcpKCJJbnQ4IiwxLGZ1bmN0aW9uKHIpe3Jl''@;'; + put 'put ''dHVybiBmdW5jdGlvbihjLG8saCl7cmV0dXJuIHIodGhpcyxjLG8saCl9fSl9LGZ1bmN0aW9uKEEsZSxsKXtsKDI3KSgiVWludDgiLDEsZnVuY3Rpb24ocil7cmV0dXJuIGZ1bmN0aW9uKGMsbyxoKXtyZXR1cm4gcih0aGlzLGMsbyxoKX19KX0sZnVuY3Rpb24oQSxlLGwpe2woMjcpKCJVaW50''@;'; + put 'put ''OCIsMSxmdW5jdGlvbihyKXtyZXR1cm4gZnVuY3Rpb24oYyxvLGgpe3JldHVybiByKHRoaXMsYyxvLGgpfX0sITApfSxmdW5jdGlvbihBLGUsbCl7bCgyNykoIkludDE2IiwyLGZ1bmN0aW9uKHIpe3JldHVybiBmdW5jdGlvbihjLG8saCl7cmV0dXJuIHIodGhpcyxjLG8saCl9fSl9LGZ1bmN0''@;'; + put 'put ''aW9uKEEsZSxsKXtsKDI3KSgiVWludDE2IiwyLGZ1bmN0aW9uKHIpe3JldHVybiBmdW5jdGlvbihjLG8saCl7cmV0dXJuIHIodGhpcyxjLG8saCl9fSl9LGZ1bmN0aW9uKEEsZSxsKXtsKDI3KSgiSW50MzIiLDQsZnVuY3Rpb24ocil7cmV0dXJuIGZ1bmN0aW9uKGMsbyxoKXtyZXR1cm4gcih0''@;'; + put 'put ''aGlzLGMsbyxoKX19KX0sZnVuY3Rpb24oQSxlLGwpe2woMjcpKCJVaW50MzIiLDQsZnVuY3Rpb24ocil7cmV0dXJuIGZ1bmN0aW9uKGMsbyxoKXtyZXR1cm4gcih0aGlzLGMsbyxoKX19KX0sZnVuY3Rpb24oQSxlLGwpe2woMjcpKCJGbG9hdDMyIiw0LGZ1bmN0aW9uKHIpe3JldHVybiBmdW5j''@;'; + put 'put ''dGlvbihjLG8saCl7cmV0dXJuIHIodGhpcyxjLG8saCl9fSl9LGZ1bmN0aW9uKEEsZSxsKXtsKDI3KSgiRmxvYXQ2NCIsOCxmdW5jdGlvbihyKXtyZXR1cm4gZnVuY3Rpb24oYyxvLGgpe3JldHVybiByKHRoaXMsYyxvLGgpfX0pfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgwKSxhPWwoNTIp''@;'; + put 'put ''KCEwKTtyKHIuUCwiQXJyYXkiLHtpbmNsdWRlczpmdW5jdGlvbihvKXtyZXR1cm4gYSh0aGlzLG8sMTxhcmd1bWVudHMubGVuZ3RoP2FyZ3VtZW50c1sxXTprKX19KSxsKDMxKSgiaW5jbHVkZXMiKX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCksYT1sKDEyMyksYz1sKDkpLG89bCg2KSxo''@;'; + put 'put ''PWwoMTApLGY9bCg4NCk7cihyLlAsIkFycmF5Iix7ZmxhdE1hcDpmdW5jdGlvbih1KXt2YXIgcCx2LEg9Yyh0aGlzKTtyZXR1cm4gaCh1KSxwPW8oSC5sZW5ndGgpLHY9ZihILDApLGEodixILEgscCwwLDEsdSxhcmd1bWVudHNbMV0pLHZ9fSksbCgzMSkoImZsYXRNYXAiKX0sZnVuY3Rpb24o''@;'; + put 'put ''QSxlLGwpe3ZhciByPWwoMCksYT1sKDEyMyksYz1sKDkpLG89bCg2KSxoPWwoMjApLGY9bCg4NCk7cihyLlAsIkFycmF5Iix7ZmxhdHRlbjpmdW5jdGlvbigpe3ZhciB1PWFyZ3VtZW50c1swXSxwPWModGhpcyksdj1vKHAubGVuZ3RoKSxIPWYocCwwKTtyZXR1cm4gYShILHAscCx2LDAsdT09''@;'; + put 'put ''PWs/MTpoKHUpKSxIfX0pLGwoMzEpKCJmbGF0dGVuIil9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDApLGE9bCg1NSkoITApO3Ioci5QLCJTdHJpbmciLHthdDpmdW5jdGlvbihvKXtyZXR1cm4gYSh0aGlzLG8pfX0pfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgwKSxhPWwoMTI0KSxjPWwo''@;'; + put 'put ''NjApLG89L1ZlcnNpb25cLzEwXC5cZCsoXC5cZCspPyggTW9iaWxlXC9cdyspPyBTYWZhcmlcLy8udGVzdChjKTtyKHIuUCtyLkYqbywiU3RyaW5nIix7cGFkU3RhcnQ6ZnVuY3Rpb24oZil7cmV0dXJuIGEodGhpcyxmLDE8YXJndW1lbnRzLmxlbmd0aD9hcmd1bWVudHNbMV06aywhMCl9fSl9''@;'; + put 'put ''LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDApLGE9bCgxMjQpLGM9bCg2MCksbz0vVmVyc2lvblwvMTBcLlxkKyhcLlxkKyk/KCBNb2JpbGVcL1x3Kyk/IFNhZmFyaVwvLy50ZXN0KGMpO3Ioci5QK3IuRipvLCJTdHJpbmciLHtwYWRFbmQ6ZnVuY3Rpb24oZil7cmV0dXJuIGEodGhpcyxmLDE8''@;'; + put 'put ''YXJndW1lbnRzLmxlbmd0aD9hcmd1bWVudHNbMV06aywhMSl9fSl9LGZ1bmN0aW9uKEEsZSxsKXtsKDQ1KSgidHJpbUxlZnQiLGZ1bmN0aW9uKHIpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiByKHRoaXMsMSl9fSwidHJpbVN0YXJ0Iil9LGZ1bmN0aW9uKEEsZSxsKXtsKDQ1KSgidHJpbVJp''@;'; + put 'put ''Z2h0IixmdW5jdGlvbihyKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gcih0aGlzLDIpfX0sInRyaW1FbmQiKX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCksYT1sKDIzKSxjPWwoNiksbz1sKDU2KSxoPWwoNTApLGY9UmVnRXhwLnByb3RvdHlwZSxnPWZ1bmN0aW9uKHUscCl7dGhpcy5f''@;'; + put 'put ''cj11LHRoaXMuX3M9cH07bCg4MCkoZywiUmVnRXhwIFN0cmluZyIsZnVuY3Rpb24oKXt2YXIgcD10aGlzLl9yLmV4ZWModGhpcy5fcyk7cmV0dXJue3ZhbHVlOnAsZG9uZTpudWxsPT09cH19KSxyKHIuUCwiU3RyaW5nIix7bWF0Y2hBbGw6ZnVuY3Rpb24ocCl7aWYoYSh0aGlzKSwhbyhwKSl0''@;'; + put 'put ''aHJvdyBUeXBlRXJyb3IocCsiIGlzIG5vdCBhIHJlZ2V4cCEiKTt2YXIgdj1TdHJpbmcodGhpcyksSD0iZmxhZ3MiaW4gZj9TdHJpbmcocC5mbGFncyk6aC5jYWxsKHApLEM9bmV3IFJlZ0V4cChwLnNvdXJjZSx+SC5pbmRleE9mKCJnIik/SDoiZyIrSCk7cmV0dXJuIEMubGFzdEluZGV4PWMo''@;'; + put 'put ''cC5sYXN0SW5kZXgpLG5ldyBnKEMsdil9fSl9LGZ1bmN0aW9uKEEsZSxsKXtsKDY3KSgiYXN5bmNJdGVyYXRvciIpfSxmdW5jdGlvbihBLGUsbCl7bCg2NykoIm9ic2VydmFibGUiKX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCksYT1sKDEyMSksYz1sKDE1KSxvPWwoMTYpLGg9bCg4Mik7''@;'; + put 'put ''cihyLlMsIk9iamVjdCIse2dldE93blByb3BlcnR5RGVzY3JpcHRvcnM6ZnVuY3Rpb24oZyl7Zm9yKHZhciB1LHAsdj1jKGcpLEg9by5mLEM9YSh2KSxWPXt9LFM9MDtTPEMubGVuZ3RoOykocD1IKHYsdT1DW1MrK10pKSE9PWsmJmgoVix1LHApO3JldHVybiBWfX0pfSxmdW5jdGlvbihBLGUs''@;'; + put 'put ''bCl7dmFyIHI9bCgwKSxhPWwoMTI1KSghMSk7cihyLlMsIk9iamVjdCIse3ZhbHVlczpmdW5jdGlvbihvKXtyZXR1cm4gYShvKX19KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCksYT1sKDEyNSkoITApO3Ioci5TLCJPYmplY3QiLHtlbnRyaWVzOmZ1bmN0aW9uKG8pe3JldHVybiBhKG8p''@;'; + put 'put ''fX0pfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgwKSxhPWwoOSksYz1sKDEwKSxvPWwoOCk7bCg3KSYmcihyLlArbCg2MyksIk9iamVjdCIse19fZGVmaW5lR2V0dGVyX186ZnVuY3Rpb24oZixnKXtvLmYoYSh0aGlzKSxmLHtnZXQ6YyhnKSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZToh''@;'; + put 'put ''MH0pfX0pfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgwKSxhPWwoOSksYz1sKDEwKSxvPWwoOCk7bCg3KSYmcihyLlArbCg2MyksIk9iamVjdCIse19fZGVmaW5lU2V0dGVyX186ZnVuY3Rpb24oZixnKXtvLmYoYSh0aGlzKSxmLHtzZXQ6YyhnKSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJs''@;'; + put 'put ''ZTohMH0pfX0pfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgwKSxhPWwoOSksYz1sKDIyKSxvPWwoMTcpLGg9bCgxNikuZjtsKDcpJiZyKHIuUCtsKDYzKSwiT2JqZWN0Iix7X19sb29rdXBHZXR0ZXJfXzpmdW5jdGlvbihnKXt2YXIgdSxwPWEodGhpcyksdj1jKGcsITApO2Rve2lmKHU9aChw''@;'; + put 'put ''LHYpKXJldHVybiB1LmdldH13aGlsZShwPW8ocCkpfX0pfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgwKSxhPWwoOSksYz1sKDIyKSxvPWwoMTcpLGg9bCgxNikuZjtsKDcpJiZyKHIuUCtsKDYzKSwiT2JqZWN0Iix7X19sb29rdXBTZXR0ZXJfXzpmdW5jdGlvbihnKXt2YXIgdSxwPWEodGhp''@;'; + put 'put ''cyksdj1jKGcsITApO2Rve2lmKHU9aChwLHYpKXJldHVybiB1LnNldH13aGlsZShwPW8ocCkpfX0pfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgwKTtyKHIuUCtyLlIsIk1hcCIse3RvSlNPTjpsKDEyNikoIk1hcCIpfSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDApO3Ioci5QK3IuUiwi''@;'; + put 'put ''U2V0Iix7dG9KU09OOmwoMTI2KSgiU2V0Iil9KX0sZnVuY3Rpb24oQSxlLGwpe2woNjQpKCJNYXAiKX0sZnVuY3Rpb24oQSxlLGwpe2woNjQpKCJTZXQiKX0sZnVuY3Rpb24oQSxlLGwpe2woNjQpKCJXZWFrTWFwIil9LGZ1bmN0aW9uKEEsZSxsKXtsKDY0KSgiV2Vha1NldCIpfSxmdW5jdGlv''@;'; + put 'put ''bihBLGUsbCl7bCg2NSkoIk1hcCIpfSxmdW5jdGlvbihBLGUsbCl7bCg2NSkoIlNldCIpfSxmdW5jdGlvbihBLGUsbCl7bCg2NSkoIldlYWtNYXAiKX0sZnVuY3Rpb24oQSxlLGwpe2woNjUpKCJXZWFrU2V0Iil9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDApO3Ioci5HLHtnbG9iYWw6bCgy''@;'; + put 'put ''KX0pfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgwKTtyKHIuUywiU3lzdGVtIix7Z2xvYmFsOmwoMil9KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCksYT1sKDE5KTtyKHIuUywiRXJyb3IiLHtpc0Vycm9yOmZ1bmN0aW9uKG8pe3JldHVybiJFcnJvciI9PT1hKG8pfX0pfSxmdW5jdGlv''@;'; + put 'put ''bihBLGUsbCl7dmFyIHI9bCgwKTtyKHIuUywiTWF0aCIse2NsYW1wOmZ1bmN0aW9uKGMsbyxoKXtyZXR1cm4gTWF0aC5taW4oaCxNYXRoLm1heChvLGMpKX19KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCk7cihyLlMsIk1hdGgiLHtERUdfUEVSX1JBRDpNYXRoLlBJLzE4MH0pfSxmdW5j''@;'; + put 'put ''dGlvbihBLGUsbCl7dmFyIHI9bCgwKSxhPTE4MC9NYXRoLlBJO3Ioci5TLCJNYXRoIix7ZGVncmVlczpmdW5jdGlvbihvKXtyZXR1cm4gbyphfX0pfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgwKSxhPWwoMTI4KSxjPWwoMTA3KTtyKHIuUywiTWF0aCIse2ZzY2FsZTpmdW5jdGlvbihoLGYs''@;'; + put 'put ''Zyx1LHApe3JldHVybiBjKGEoaCxmLGcsdSxwKSl9fSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDApO3Ioci5TLCJNYXRoIix7aWFkZGg6ZnVuY3Rpb24oYyxvLGgsZil7dmFyIGc9Yz4+PjAsdT1oPj4+MDtyZXR1cm4obz4+PjApKyhmPj4+MCkrKChnJnV8KGd8dSkmfihnK3U+Pj4wKSk+''@;'; + put 'put ''Pj4zMSl8MH19KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCk7cihyLlMsIk1hdGgiLHtpc3ViaDpmdW5jdGlvbihjLG8saCxmKXt2YXIgZz1jPj4+MCx1PWg+Pj4wO3JldHVybihvPj4+MCktKGY+Pj4wKS0oKH5nJnV8fihnXnUpJmctdT4+PjApPj4+MzEpfDB9fSl9LGZ1bmN0aW9uKEEs''@;'; + put 'put ''ZSxsKXt2YXIgcj1sKDApO3Ioci5TLCJNYXRoIix7aW11bGg6ZnVuY3Rpb24oYyxvKXt2YXIgaD0rYyxmPStvLGc9NjU1MzUmaCx1PTY1NTM1JmYscD1oPj4xNix2PWY+PjE2LEg9KHAqdT4+PjApKyhnKnU+Pj4xNik7cmV0dXJuIHAqdisoSD4+MTYpKygoZyp2Pj4+MCkrKDY1NTM1JkgpPj4x''@;'; + put 'put ''Nil9fSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDApO3Ioci5TLCJNYXRoIix7UkFEX1BFUl9ERUc6MTgwL01hdGguUEl9KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCksYT1NYXRoLlBJLzE4MDtyKHIuUywiTWF0aCIse3JhZGlhbnM6ZnVuY3Rpb24obyl7cmV0dXJuIG8qYX19KX0s''@;'; + put 'put ''ZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCk7cihyLlMsIk1hdGgiLHtzY2FsZTpsKDEyOCl9KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCk7cihyLlMsIk1hdGgiLHt1bXVsaDpmdW5jdGlvbihjLG8pe3ZhciBoPStjLGY9K28sZz02NTUzNSZoLHU9NjU1MzUmZixwPWg+Pj4xNix2PWY+''@;'; + put 'put ''Pj4xNixIPShwKnU+Pj4wKSsoZyp1Pj4+MTYpO3JldHVybiBwKnYrKEg+Pj4xNikrKChnKnY+Pj4wKSsoNjU1MzUmSCk+Pj4xNil9fSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDApO3Ioci5TLCJNYXRoIix7c2lnbmJpdDpmdW5jdGlvbihjKXtyZXR1cm4oYz0rYykhPWM/YzowPT1jPzEv''@;'; + put 'put ''Yz09MS8wOjA8Y319KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCksYT1sKDI2KSxjPWwoMiksbz1sKDUxKSxoPWwoMTE1KTtyKHIuUCtyLlIsIlByb21pc2UiLHtmaW5hbGx5OmZ1bmN0aW9uKGYpe3ZhciBnPW8odGhpcyxhLlByb21pc2V8fGMuUHJvbWlzZSksdT0iZnVuY3Rpb24iPT10''@;'; + put 'put ''eXBlb2YgZjtyZXR1cm4gdGhpcy50aGVuKHU/ZnVuY3Rpb24ocCl7cmV0dXJuIGgoZyxmKCkpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gcH0pfTpmLHU/ZnVuY3Rpb24ocCl7cmV0dXJuIGgoZyxmKCkpLnRoZW4oZnVuY3Rpb24oKXt0aHJvdyBwfSl9OmYpfX0pfSxmdW5jdGlvbihBLGUsbCl7''@;'; + put 'put ''dmFyIHI9bCgwKSxhPWwoOTEpLGM9bCgxMTQpO3Ioci5TLCJQcm9taXNlIix7dHJ5OmZ1bmN0aW9uKG8pe3ZhciBoPWEuZih0aGlzKSxmPWMobyk7cmV0dXJuKGYuZT9oLnJlamVjdDpoLnJlc29sdmUpKGYudiksaC5wcm9taXNlfX0pfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgyOCksYT1s''@;'; + put 'put ''KDEpLGM9ci5rZXksbz1yLnNldDtyLmV4cCh7ZGVmaW5lTWV0YWRhdGE6ZnVuY3Rpb24oZixnLHUscCl7byhmLGcsYSh1KSxjKHApKX19KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMjgpLGE9bCgxKSxjPXIua2V5LG89ci5tYXAsaD1yLnN0b3JlO3IuZXhwKHtkZWxldGVNZXRhZGF0YTpm''@;'; + put 'put ''dW5jdGlvbihnLHUpe3ZhciBwPWFyZ3VtZW50cy5sZW5ndGg8Mz9rOmMoYXJndW1lbnRzWzJdKSx2PW8oYSh1KSxwLCExKTtpZih2PT09a3x8IXYuZGVsZXRlKGcpKXJldHVybiExO2lmKHYuc2l6ZSlyZXR1cm4hMDt2YXIgSD1oLmdldCh1KTtyZXR1cm4gSC5kZWxldGUocCksISFILnNpemV8''@;'; + put 'put ''fGguZGVsZXRlKHUpfX0pfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgyOCksYT1sKDEpLGM9bCgxNyksbz1yLmhhcyxoPXIuZ2V0LGY9ci5rZXksZz1mdW5jdGlvbih1LHAsdil7aWYobyh1LHAsdikpcmV0dXJuIGgodSxwLHYpO3ZhciBIPWMocCk7cmV0dXJuIG51bGwhPT1IP2codSxILHYp''@;'; + put 'put ''Omt9O3IuZXhwKHtnZXRNZXRhZGF0YTpmdW5jdGlvbihwLHYpe3JldHVybiBnKHAsYSh2KSxhcmd1bWVudHMubGVuZ3RoPDM/azpmKGFyZ3VtZW50c1syXSkpfX0pfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgxMTgpLGE9bCgxMjcpLGM9bCgyOCksbz1sKDEpLGg9bCgxNyksZj1jLmtleXMs''@;'; + put 'put ''Zz1jLmtleSx1PWZ1bmN0aW9uKHAsdil7dmFyIEg9ZihwLHYpLEM9aChwKTtpZihudWxsPT09QylyZXR1cm4gSDt2YXIgVj11KEMsdik7cmV0dXJuIFYubGVuZ3RoP0gubGVuZ3RoP2EobmV3IHIoSC5jb25jYXQoVikpKTpWOkh9O2MuZXhwKHtnZXRNZXRhZGF0YUtleXM6ZnVuY3Rpb24odil7''@;'; + put 'put ''cmV0dXJuIHUobyh2KSxhcmd1bWVudHMubGVuZ3RoPDI/azpnKGFyZ3VtZW50c1sxXSkpfX0pfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgyOCksYT1sKDEpLGM9ci5nZXQsbz1yLmtleTtyLmV4cCh7Z2V0T3duTWV0YWRhdGE6ZnVuY3Rpb24oZixnKXtyZXR1cm4gYyhmLGEoZyksYXJndW1l''@;'; + put 'put ''bnRzLmxlbmd0aDwzP2s6byhhcmd1bWVudHNbMl0pKX19KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMjgpLGE9bCgxKSxjPXIua2V5cyxvPXIua2V5O3IuZXhwKHtnZXRPd25NZXRhZGF0YUtleXM6ZnVuY3Rpb24oZil7cmV0dXJuIGMoYShmKSxhcmd1bWVudHMubGVuZ3RoPDI/azpvKGFy''@;'; + put 'put ''Z3VtZW50c1sxXSkpfX0pfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgyOCksYT1sKDEpLGM9bCgxNyksbz1yLmhhcyxoPXIua2V5LGY9ZnVuY3Rpb24oZyx1LHApe2lmKG8oZyx1LHApKXJldHVybiEwO3ZhciB2PWModSk7cmV0dXJuIG51bGwhPT12JiZmKGcsdixwKX07ci5leHAoe2hhc01l''@;'; + put 'put ''dGFkYXRhOmZ1bmN0aW9uKHUscCl7cmV0dXJuIGYodSxhKHApLGFyZ3VtZW50cy5sZW5ndGg8Mz9rOmgoYXJndW1lbnRzWzJdKSl9fSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDI4KSxhPWwoMSksYz1yLmhhcyxvPXIua2V5O3IuZXhwKHtoYXNPd25NZXRhZGF0YTpmdW5jdGlvbihmLGcp''@;'; + put 'put ''e3JldHVybiBjKGYsYShnKSxhcmd1bWVudHMubGVuZ3RoPDM/azpvKGFyZ3VtZW50c1syXSkpfX0pfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgyOCksYT1sKDEpLGM9bCgxMCksbz1yLmtleSxoPXIuc2V0O3IuZXhwKHttZXRhZGF0YTpmdW5jdGlvbihnLHUpe3JldHVybiBmdW5jdGlvbih2''@;'; + put 'put ''LEgpe2goZyx1LChIIT09az9hOmMpKHYpLG8oSCkpfX19KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCksYT1sKDkwKSgpLGM9bCgyKS5wcm9jZXNzLG89InByb2Nlc3MiPT1sKDE5KShjKTtyKHIuRyx7YXNhcDpmdW5jdGlvbihmKXt2YXIgZz1vJiZjLmRvbWFpbjthKGc/Zy5iaW5kKGYp''@;'; + put 'put ''OmYpfX0pfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgwKSxhPWwoMiksYz1sKDI2KSxvPWwoOTApKCksaD1sKDUpKCJvYnNlcnZhYmxlIiksZj1sKDEwKSxnPWwoMSksdT1sKDM5KSxwPWwoNDEpLHY9bCgxMSksSD1sKDQwKSxDPUguUkVUVVJOLFY9ZnVuY3Rpb24odyl7cmV0dXJuIG51bGw9''@;'; + put 'put ''PXc/azpmKHcpfSxTPWZ1bmN0aW9uKHcpe3ZhciBOPXcuX2M7TiYmKHcuX2M9ayxOKCkpfSxfPWZ1bmN0aW9uKHcpe3JldHVybiB3Ll9vPT09a30sYj1mdW5jdGlvbih3KXtfKHcpfHwody5fbz1rLFModykpfSxNPWZ1bmN0aW9uKHcsTil7Zyh3KSx0aGlzLl9jPWssdGhpcy5fbz13LHc9bmV3''@;'; + put 'put ''IHgodGhpcyk7dHJ5e3ZhciBJPU4odyksVz1JO251bGwhPUkmJigiZnVuY3Rpb24iPT10eXBlb2YgSS51bnN1YnNjcmliZT9JPWZ1bmN0aW9uKCl7Vy51bnN1YnNjcmliZSgpfTpmKEkpLHRoaXMuX2M9SSl9Y2F0Y2goTyl7cmV0dXJuIHZvaWQgdy5lcnJvcihPKX1fKHRoaXMpJiZTKHRoaXMp''@;'; + put 'put ''fTtNLnByb3RvdHlwZT1wKHt9LHt1bnN1YnNjcmliZTpmdW5jdGlvbigpe2IodGhpcyl9fSk7dmFyIHg9ZnVuY3Rpb24odyl7dGhpcy5fcz13fTt4LnByb3RvdHlwZT1wKHt9LHtuZXh0OmZ1bmN0aW9uKE4pe3ZhciBJPXRoaXMuX3M7aWYoIV8oSSkpe3ZhciBXPUkuX287dHJ5e3ZhciBPPVYo''@;'; + put 'put ''Vy5uZXh0KTtpZihPKXJldHVybiBPLmNhbGwoVyxOKX1jYXRjaChCKXt0cnl7YihJKX1maW5hbGx5e3Rocm93IEJ9fX19LGVycm9yOmZ1bmN0aW9uKE4pe3ZhciBJPXRoaXMuX3M7aWYoXyhJKSl0aHJvdyBOO3ZhciBXPUkuX287SS5fbz1rO3RyeXt2YXIgTz1WKFcuZXJyb3IpO2lmKCFPKXRo''@;'; + put 'put ''cm93IE47Tj1PLmNhbGwoVyxOKX1jYXRjaChCKXt0cnl7UyhJKX1maW5hbGx5e3Rocm93IEJ9fXJldHVybiBTKEkpLE59LGNvbXBsZXRlOmZ1bmN0aW9uKE4pe3ZhciBJPXRoaXMuX3M7aWYoIV8oSSkpe3ZhciBXPUkuX287SS5fbz1rO3RyeXt2YXIgTz1WKFcuY29tcGxldGUpO049Tz9PLmNh''@;'; + put 'put ''bGwoVyxOKTprfWNhdGNoKEIpe3RyeXtTKEkpfWZpbmFsbHl7dGhyb3cgQn19cmV0dXJuIFMoSSksTn19fSk7dmFyIEU9ZnVuY3Rpb24oTil7dSh0aGlzLEUsIk9ic2VydmFibGUiLCJfZiIpLl9mPWYoTil9O3AoRS5wcm90b3R5cGUse3N1YnNjcmliZTpmdW5jdGlvbihOKXtyZXR1cm4gbmV3''@;'; + put 'put ''IE0oTix0aGlzLl9mKX0sZm9yRWFjaDpmdW5jdGlvbihOKXt2YXIgST10aGlzO3JldHVybiBuZXcoYy5Qcm9taXNlfHxhLlByb21pc2UpKGZ1bmN0aW9uKFcsTyl7ZihOKTt2YXIgQj1JLnN1YnNjcmliZSh7bmV4dDpmdW5jdGlvbihSKXt0cnl7cmV0dXJuIE4oUil9Y2F0Y2gobDEpe08obDEp''@;'; + put 'put ''LEIudW5zdWJzY3JpYmUoKX19LGVycm9yOk8sY29tcGxldGU6V30pfSl9fSkscChFLHtmcm9tOmZ1bmN0aW9uKE4pe3ZhciBJPSJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzP3RoaXM6RSxXPVYoZyhOKVtoXSk7aWYoVyl7dmFyIE89ZyhXLmNhbGwoTikpO3JldHVybiBPLmNvbnN0cnVjdG9yPT09''@;'; + put 'put ''ST9POm5ldyBJKGZ1bmN0aW9uKEIpe3JldHVybiBPLnN1YnNjcmliZShCKX0pfXJldHVybiBuZXcgSShmdW5jdGlvbihCKXt2YXIgUj0hMTtyZXR1cm4gbyhmdW5jdGlvbigpe2lmKCFSKXt0cnl7aWYoSChOLCExLGZ1bmN0aW9uKGwxKXtpZihCLm5leHQobDEpLFIpcmV0dXJuIEN9KT09PUMp''@;'; + put 'put ''cmV0dXJufWNhdGNoKGwxKXtpZihSKXRocm93IGwxO3JldHVybiB2b2lkIEIuZXJyb3IobDEpfUIuY29tcGxldGUoKX19KSxmdW5jdGlvbigpe1I9ITB9fSl9LG9mOmZ1bmN0aW9uKCl7Zm9yKHZhciBOPTAsST1hcmd1bWVudHMubGVuZ3RoLFc9bmV3IEFycmF5KEkpO048STspV1tOXT1hcmd1''@;'; + put 'put ''bWVudHNbTisrXTtyZXR1cm4gbmV3KCJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzP3RoaXM6RSkoZnVuY3Rpb24oTyl7dmFyIEI9ITE7cmV0dXJuIG8oZnVuY3Rpb24oKXtpZighQil7Zm9yKHZhciBSPTA7UjxXLmxlbmd0aDsrK1IpaWYoTy5uZXh0KFdbUl0pLEIpcmV0dXJuO08uY29tcGxldGUo''@;'; + put 'put ''KX19KSxmdW5jdGlvbigpe0I9ITB9fSl9fSksdihFLnByb3RvdHlwZSxoLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSxyKHIuRyx7T2JzZXJ2YWJsZTpFfSksbCgzOCkoIk9ic2VydmFibGUiKX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCksYT1sKDg5KTtyKHIuRytyLkIse3NldEltbWVk''@;'; + put 'put ''aWF0ZTphLnNldCxjbGVhckltbWVkaWF0ZTphLmNsZWFyfSl9LGZ1bmN0aW9uKEEsZSxsKXtmb3IodmFyIHI9bCg4NiksYT1sKDM0KSxjPWwoMTIpLG89bCgyKSxoPWwoMTEpLGY9bCg0NiksZz1sKDUpLHU9ZygiaXRlcmF0b3IiKSxwPWcoInRvU3RyaW5nVGFnIiksdj1mLkFycmF5LEg9e0NT''@;'; + put 'put ''U1J1bGVMaXN0OiEwLENTU1N0eWxlRGVjbGFyYXRpb246ITEsQ1NTVmFsdWVMaXN0OiExLENsaWVudFJlY3RMaXN0OiExLERPTVJlY3RMaXN0OiExLERPTVN0cmluZ0xpc3Q6ITEsRE9NVG9rZW5MaXN0OiEwLERhdGFUcmFuc2Zlckl0ZW1MaXN0OiExLEZpbGVMaXN0OiExLEhUTUxBbGxDb2xs''@;'; + put 'put ''ZWN0aW9uOiExLEhUTUxDb2xsZWN0aW9uOiExLEhUTUxGb3JtRWxlbWVudDohMSxIVE1MU2VsZWN0RWxlbWVudDohMSxNZWRpYUxpc3Q6ITAsTWltZVR5cGVBcnJheTohMSxOYW1lZE5vZGVNYXA6ITEsTm9kZUxpc3Q6ITAsUGFpbnRSZXF1ZXN0TGlzdDohMSxQbHVnaW46ITEsUGx1Z2luQXJy''@;'; + put 'put ''YXk6ITEsU1ZHTGVuZ3RoTGlzdDohMSxTVkdOdW1iZXJMaXN0OiExLFNWR1BhdGhTZWdMaXN0OiExLFNWR1BvaW50TGlzdDohMSxTVkdTdHJpbmdMaXN0OiExLFNWR1RyYW5zZm9ybUxpc3Q6ITEsU291cmNlQnVmZmVyTGlzdDohMSxTdHlsZVNoZWV0TGlzdDohMCxUZXh0VHJhY2tDdWVMaXN0''@;'; + put 'put ''OiExLFRleHRUcmFja0xpc3Q6ITEsVG91Y2hMaXN0OiExfSxDPWEoSCksVj0wO1Y8Qy5sZW5ndGg7VisrKXt2YXIgUyxfPUNbVl0sYj1IW19dLE09b1tfXSx4PU0mJk0ucHJvdG90eXBlO2lmKHgmJih4W3VdfHxoKHgsdSx2KSx4W3BdfHxoKHgscCxfKSxmW19dPXYsYikpZm9yKFMgaW4gcil4''@;'; + put 'put ''W1NdfHxjKHgsUyxyW1NdLCEwKX19LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDIpLGE9bCgwKSxjPWwoNjApLG89W10uc2xpY2UsaD0vTVNJRSAuXC4vLnRlc3QoYyksZj1mdW5jdGlvbihnKXtyZXR1cm4gZnVuY3Rpb24odSxwKXt2YXIgdj0yPGFyZ3VtZW50cy5sZW5ndGgsSD0hIXYmJm8u''@;'; + put 'put ''Y2FsbChhcmd1bWVudHMsMik7cmV0dXJuIGcodj9mdW5jdGlvbigpeygiZnVuY3Rpb24iPT10eXBlb2YgdT91OkZ1bmN0aW9uKHUpKS5hcHBseSh0aGlzLEgpfTp1LHApfX07YShhLkcrYS5CK2EuRipoLHtzZXRUaW1lb3V0OmYoci5zZXRUaW1lb3V0KSxzZXRJbnRlcnZhbDpmKHIuc2V0SW50''@;'; + put 'put ''ZXJ2YWwpfSl9XSksInVuZGVmaW5lZCIhPXR5cGVvZiBtb2R1bGUmJm1vZHVsZS5leHBvcnRzP21vZHVsZS5leHBvcnRzPVg6ImZ1bmN0aW9uIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9kZWZpbmUoZnVuY3Rpb24oKXtyZXR1cm4gWH0pOkYxLmNvcmU9WH0pKDEsMSksd2luZG93Lk11''@;'; + put 'put ''dGF0aW9uT2JzZXJ2ZXJ8fCh3aW5kb3cuTXV0YXRpb25PYnNlcnZlcj1mdW5jdGlvbihYKXtmdW5jdGlvbiBGMShDKXt0aGlzLmk9W10sdGhpcy5tPUN9ZnVuY3Rpb24gQShDKXt2YXIgUyxWPXt0eXBlOm51bGwsdGFyZ2V0Om51bGwsYWRkZWROb2RlczpbXSxyZW1vdmVkTm9kZXM6W10scHJl''@;'; + put 'put ''dmlvdXNTaWJsaW5nOm51bGwsbmV4dFNpYmxpbmc6bnVsbCxhdHRyaWJ1dGVOYW1lOm51bGwsYXR0cmlidXRlTmFtZXNwYWNlOm51bGwsb2xkVmFsdWU6bnVsbH07Zm9yKFMgaW4gQylWW1NdIT09WCYmQ1tTXSE9PVgmJihWW1NdPUNbU10pO3JldHVybiBWfWZ1bmN0aW9uIGUoQyxWKXt2YXIg''@;'; + put 'put ''Uz1vKEMsVik7cmV0dXJuIGZ1bmN0aW9uKF8pe3ZhciBiPV8ubGVuZ3RoO2lmKFYuYSYmMz09PUMubm9kZVR5cGUmJkMubm9kZVZhbHVlIT09Uy5hJiZfLnB1c2gobmV3IEEoe3R5cGU6ImNoYXJhY3RlckRhdGEiLHRhcmdldDpDLG9sZFZhbHVlOlMuYX0pKSxWLmImJlMuYiYmYShfLEMsUy5i''@;'; + put 'put ''LFYuZiksVi5jfHxWLmcpdmFyIE09ZnVuY3Rpb24gYyhDLFYsUyxfKXtmdW5jdGlvbiBiKEUsdyxOLEksVyl7dmFyIEIsUixsMSxPPUUubGVuZ3RoLTE7Zm9yKFc9LX4oKE8tVykvMik7bDE9RS5wb3AoKTspQj1OW2wxLmpdLFI9SVtsMS5sXSxfLmMmJlcmJk1hdGguYWJzKGwxLmotbDEubCk+''@;'; + put 'put ''PU8mJihDLnB1c2goQSh7dHlwZToiY2hpbGRMaXN0Iix0YXJnZXQ6dyxhZGRlZE5vZGVzOltCXSxyZW1vdmVkTm9kZXM6W0JdLG5leHRTaWJsaW5nOkIubmV4dFNpYmxpbmcscHJldmlvdXNTaWJsaW5nOkIucHJldmlvdXNTaWJsaW5nfSkpLFctLSksXy5iJiZSLmImJmEoQyxCLFIuYixfLmYp''@;'; + put 'put ''LF8uYSYmMz09PUIubm9kZVR5cGUmJkIubm9kZVZhbHVlIT09Ui5hJiZDLnB1c2goQSh7dHlwZToiY2hhcmFjdGVyRGF0YSIsdGFyZ2V0OkIsb2xkVmFsdWU6Ui5hfSkpLF8uZyYmTShCLFIpfWZ1bmN0aW9uIE0oRSx3KXtmb3IodmFyIEIsUixsMSxhMSxoMSxOPUUuY2hpbGROb2RlcyxJPXcu''@;'; + put 'put ''YyxXPU4ubGVuZ3RoLE89ST9JLmxlbmd0aDowLHUxPTAscDE9MCx2MT0wO3AxPFd8fHYxPE87KShhMT1OW3AxXSk9PT0oaDE9KGwxPUlbdjFdKSYmbDEubm9kZSk/KF8uYiYmbDEuYiYmYShDLGExLGwxLmIsXy5mKSxfLmEmJmwxLmEhPT1YJiZhMS5ub2RlVmFsdWUhPT1sMS5hJiZDLnB1c2go''@;'; + put 'put ''QSh7dHlwZToiY2hhcmFjdGVyRGF0YSIsdGFyZ2V0OmExLG9sZFZhbHVlOmwxLmF9KSksUiYmYihSLEUsTixJLHUxKSxfLmcmJihhMS5jaGlsZE5vZGVzLmxlbmd0aHx8bDEuYyYmbDEuYy5sZW5ndGgpJiZNKGExLGwxKSxwMSsrLHYxKyspOih4PSEwLEJ8fChCPXt9LFI9W10pLGExJiYoQlts''@;'; + put 'put ''MT1oKGExKV18fChCW2wxXT0hMCwtMT09PShsMT11KEksYTEsdjEsIm5vZGUiKSk/Xy5jJiYoQy5wdXNoKEEoe3R5cGU6ImNoaWxkTGlzdCIsdGFyZ2V0OkUsYWRkZWROb2RlczpbYTFdLG5leHRTaWJsaW5nOmExLm5leHRTaWJsaW5nLHByZXZpb3VzU2libGluZzphMS5wcmV2aW91c1NpYmxp''@;'; + put 'put ''bmd9KSksdTErKyk6Ui5wdXNoKHtqOnAxLGw6bDF9KSkscDErKyksaDEmJmgxIT09TltwMV0mJihCW2wxPWgoaDEpXXx8KEJbbDFdPSEwLC0xPT09KGwxPXUoTixoMSxwMSkpP18uYyYmKEMucHVzaChBKHt0eXBlOiJjaGlsZExpc3QiLHRhcmdldDp3Lm5vZGUscmVtb3ZlZE5vZGVzOltoMV0s''@;'; + put 'put ''bmV4dFNpYmxpbmc6SVt2MSsxXSxwcmV2aW91c1NpYmxpbmc6SVt2MS0xXX0pKSx1MS0tKTpSLnB1c2goe2o6bDEsbDp2MX0pKSx2MSsrKSk7UiYmYihSLEUsTixJLHUxKX12YXIgeDtyZXR1cm4gTShWLFMpLHh9KF8sQyxTLFYpOyhNfHxfLmxlbmd0aCE9PWIpJiYoUz1vKEMsVikpfX1mdW5j''@;'; + put 'put ''dGlvbiBhKEMsVixTLF8pe2Zvcih2YXIgeCxFLGI9e30sTT1WLmF0dHJpYnV0ZXMsdz1NLmxlbmd0aDt3LS07KUU9KHg9TVt3XSkubmFtZSxfJiZfW0VdPT09WHx8KHYoVix4KSE9PVNbRV0mJkMucHVzaChBKHt0eXBlOiJhdHRyaWJ1dGVzIix0YXJnZXQ6VixhdHRyaWJ1dGVOYW1lOkUsb2xk''@;'; + put 'put ''VmFsdWU6U1tFXSxhdHRyaWJ1dGVOYW1lc3BhY2U6eC5uYW1lc3BhY2VVUkl9KSksYltFXT0hMCk7Zm9yKEUgaW4gUyliW0VdfHxDLnB1c2goQSh7dGFyZ2V0OlYsdHlwZToiYXR0cmlidXRlcyIsYXR0cmlidXRlTmFtZTpFLG9sZFZhbHVlOlNbRV19KSl9ZnVuY3Rpb24gbyhDLFYpe3ZhciBT''@;'; + put 'put ''PSEwO3JldHVybiBmdW5jdGlvbiBfKGIpe3ZhciBNPXtub2RlOmJ9O3JldHVybiFWLmF8fDMhPT1iLm5vZGVUeXBlJiY4IT09Yi5ub2RlVHlwZT8oVi5iJiZTJiYxPT09Yi5ub2RlVHlwZSYmKE0uYj1nKGIuYXR0cmlidXRlcyxmdW5jdGlvbih4LEUpe3JldHVybighVi5mfHxWLmZbRS5uYW1l''@;'; + put 'put ''XSkmJih4W0UubmFtZV09dihiLEUpKSx4fSx7fSkpLFMmJihWLmN8fFYuYXx8Vi5iJiZWLmcpJiYoTS5jPWZ1bmN0aW9uIGYoQyxWKXtmb3IodmFyIFM9W10sXz0wO188Qy5sZW5ndGg7XysrKVNbX109VihDW19dLF8sQyk7cmV0dXJuIFN9KGIuY2hpbGROb2RlcyxfKSksUz1WLmcpOk0uYT1i''@;'; + put 'put ''Lm5vZGVWYWx1ZSxNfShDKX1mdW5jdGlvbiBoKEMpe3RyeXtyZXR1cm4gQy5pZHx8KEMubW9faWQ9Qy5tb19pZHx8SCsrKX1jYXRjaChWKXt0cnl7cmV0dXJuIEMubm9kZVZhbHVlfWNhdGNoKFMpe3JldHVybiBIKyt9fX1mdW5jdGlvbiBnKEMsVixTKXtmb3IodmFyIF89MDtfPEMubGVuZ3Ro''@;'; + put 'put ''O18rKylTPVYoUyxDW19dLF8sQyk7cmV0dXJuIFN9ZnVuY3Rpb24gdShDLFYsUyxfKXtmb3IoO1M8Qy5sZW5ndGg7UysrKWlmKChfP0NbU11bX106Q1tTXSk9PT1WKXJldHVybiBTO3JldHVybi0xfUYxLl9wZXJpb2Q9MzAsRjEucHJvdG90eXBlPXtvYnNlcnZlOmZ1bmN0aW9uKEMsVil7Zm9y''@;'; + put 'put ''KHZhciBTPXtiOiEhKFYuYXR0cmlidXRlc3x8Vi5hdHRyaWJ1dGVGaWx0ZXJ8fFYuYXR0cmlidXRlT2xkVmFsdWUpLGM6ISFWLmNoaWxkTGlzdCxnOiEhVi5zdWJ0cmVlLGE6ISghVi5jaGFyYWN0ZXJEYXRhJiYhVi5jaGFyYWN0ZXJEYXRhT2xkVmFsdWUpfSxfPXRoaXMuaSxiPTA7YjxfLmxl''@;'; + put 'put ''bmd0aDtiKyspX1tiXS5zPT09QyYmXy5zcGxpY2UoYiwxKTtWLmF0dHJpYnV0ZUZpbHRlciYmKFMuZj1nKFYuYXR0cmlidXRlRmlsdGVyLGZ1bmN0aW9uKE0seCl7cmV0dXJuIE1beF09ITAsTX0se30pKSxfLnB1c2goe3M6QyxvOmUoQyxTKX0pLHRoaXMuaHx8ZnVuY3Rpb24gayhDKXshZnVu''@;'; + put 'put ''Y3Rpb24gVigpe3ZhciBTPUMudGFrZVJlY29yZHMoKTtTLmxlbmd0aCYmQy5tKFMsQyksQy5oPXNldFRpbWVvdXQoVixGMS5fcGVyaW9kKX0oKX0odGhpcyl9LHRha2VSZWNvcmRzOmZ1bmN0aW9uKCl7Zm9yKHZhciBDPVtdLFY9dGhpcy5pLFM9MDtTPFYubGVuZ3RoO1MrKylWW1NdLm8oQyk7''@;'; + put 'put ''cmV0dXJuIEN9LGRpc2Nvbm5lY3Q6ZnVuY3Rpb24oKXt0aGlzLmk9W10sY2xlYXJUaW1lb3V0KHRoaXMuaCksdGhpcy5oPW51bGx9fTt2YXIgcD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpIik7cC5zdHlsZS50b3A9MDt2YXIgdj0ocD0ibnVsbCIhPXAuYXR0cmlidXRlcy5zdHlsZS52YWx1''@;'; + put 'put ''ZSk/ZnVuY3Rpb24gbChDLFYpe3JldHVybiBWLnZhbHVlfTpmdW5jdGlvbiByKEMsVil7cmV0dXJuInN0eWxlIiE9PVYubmFtZT9WLnZhbHVlOkMuc3R5bGUuY3NzVGV4dH0sSD0xO3JldHVybiBGMX0odm9pZCAwKSksZnVuY3Rpb24oKXt2YXIgayxBLFg9e30sRjE9e307KGZ1bmN0aW9uKGss''@;'; + put 'put ''QSl7ZnVuY3Rpb24gbCgpe3RoaXMuX2RlbGF5PTAsdGhpcy5fZW5kRGVsYXk9MCx0aGlzLl9maWxsPSJub25lIix0aGlzLl9pdGVyYXRpb25TdGFydD0wLHRoaXMuX2l0ZXJhdGlvbnM9MSx0aGlzLl9kdXJhdGlvbj0wLHRoaXMuX3BsYXliYWNrUmF0ZT0xLHRoaXMuX2RpcmVjdGlvbj0ibm9y''@;'; + put 'put ''bWFsIix0aGlzLl9lYXNpbmc9ImxpbmVhciIsdGhpcy5fZWFzaW5nRnVuY3Rpb249d31mdW5jdGlvbiByKCl7cmV0dXJuIGsuaXNEZXByZWNhdGVkKCJJbnZhbGlkIHRpbWluZyBpbnB1dHMiLCIyMDE2LTAzLTAyIiwiVHlwZUVycm9yIGV4Y2VwdGlvbnMgd2lsbCBiZSB0aHJvd24gaW5zdGVh''@;'; + put 'put ''ZC4iLCEwKX1mdW5jdGlvbiBhKGosYzEsVjEpe3ZhciBfMT1uZXcgbDtyZXR1cm4gYzEmJihfMS5maWxsPSJib3RoIixfMS5kdXJhdGlvbj0iYXV0byIpLCJudW1iZXIiIT10eXBlb2Yganx8aXNOYU4oaik/dm9pZCAwIT09aiYmT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoaikuZm9yRWFj''@;'; + put 'put ''aChmdW5jdGlvbihRKXtpZigiYXV0byIhPWpbUV0pe2lmKCgibnVtYmVyIj09dHlwZW9mIF8xW1FdfHwiZHVyYXRpb24iPT1RKSYmKCJudW1iZXIiIT10eXBlb2YgaltRXXx8aXNOYU4oaltRXSkpfHwiZmlsbCI9PVEmJi0xPT14LmluZGV4T2YoaltRXSl8fCJkaXJlY3Rpb24iPT1RJiYtMT09''@;'; + put 'put ''RS5pbmRleE9mKGpbUV0pfHwicGxheWJhY2tSYXRlIj09USYmMSE9PWpbUV0mJmsuaXNEZXByZWNhdGVkKCJBbmltYXRpb25FZmZlY3RUaW1pbmcucGxheWJhY2tSYXRlIiwiMjAxNC0xMS0yOCIsIlVzZSBBbmltYXRpb24ucGxheWJhY2tSYXRlIGluc3RlYWQuIikpcmV0dXJuO18xW1FdPWpb''@;'; + put 'put ''UV19fSk6XzEuZHVyYXRpb249aixfMX1mdW5jdGlvbiBoKGosYzEsVjEsXzEpe3JldHVybiBqPDB8fGo+MXx8VjE8MHx8VjE+MT93OmZ1bmN0aW9uKFEpe2Z1bmN0aW9uIHMxKEQsWixUKXtyZXR1cm4gMypEKigxLVQpKigxLVQpKlQrMypaKigxLVQpKlQqVCtUKlQqVH1pZihRPD0wKXt2YXIg''@;'; + put 'put ''bTE9MDtyZXR1cm4gaj4wP20xPWMxL2o6IWMxJiZWMT4wJiYobTE9XzEvVjEpLG0xKlF9aWYoUT49MSl7dmFyIGIxPTA7cmV0dXJuIFYxPDE/YjE9KF8xLTEpLyhWMS0xKToxPT1WMSYmajwxJiYoYjE9KGMxLTEpLyhqLTEpKSwxK2IxKihRLTEpfWZvcih2YXIgQjE9MCwkPTE7QjE8JDspe3Zh''@;'; + put 'put ''ciB6PShCMSskKS8yLHk9czEoaixWMSx6KTtpZihNYXRoLmFicyhRLXkpPDFlLTUpcmV0dXJuIHMxKGMxLF8xLHopO3k8UT9CMT16OiQ9en1yZXR1cm4gczEoYzEsXzEseil9fWZ1bmN0aW9uIGYoaixjMSl7cmV0dXJuIGZ1bmN0aW9uKFYxKXtpZihWMT49MSlyZXR1cm4gMTt2YXIgXzE9MS9q''@;'; + put 'put ''O3JldHVybihWMSs9YzEqXzEpLVYxJV8xfX1mdW5jdGlvbiBnKGope0J8fChCPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLnN0eWxlKSxCLmFuaW1hdGlvblRpbWluZ0Z1bmN0aW9uPSIiLEIuYW5pbWF0aW9uVGltaW5nRnVuY3Rpb249ajt2YXIgYzE9Qi5hbmltYXRpb25UaW1pbmdG''@;'; + put 'put ''dW5jdGlvbjtpZigiIj09YzEmJnIoKSl0aHJvdyBuZXcgVHlwZUVycm9yKGorIiBpcyBub3QgYSB2YWxpZCB2YWx1ZSBmb3IgZWFzaW5nIik7cmV0dXJuIGMxfWZ1bmN0aW9uIHUoail7aWYoImxpbmVhciI9PWopcmV0dXJuIHc7dmFyIGMxPWwxLmV4ZWMoaik7aWYoYzEpcmV0dXJuIGguYXBw''@;'; + put 'put ''bHkodGhpcyxjMS5zbGljZSgxKS5tYXAoTnVtYmVyKSk7dmFyIFYxPWExLmV4ZWMoaik7aWYoVjEpcmV0dXJuIGYoTnVtYmVyKFYxWzFdKSxXKTt2YXIgXzE9aDEuZXhlYyhqKTtyZXR1cm4gXzE/ZihOdW1iZXIoXzFbMV0pLHtzdGFydDpOLG1pZGRsZTpJLGVuZDpXfVtfMVsyXV0pOk9bal18''@;'; + put 'put ''fHd9ZnVuY3Rpb24gSChqLGMxLFYxKXtpZihudWxsPT1jMSlyZXR1cm4gdTE7dmFyIF8xPVYxLmRlbGF5K2orVjEuZW5kRGVsYXk7cmV0dXJuIGMxPE1hdGgubWluKFYxLmRlbGF5LF8xKT9wMTpjMT49TWF0aC5taW4oVjEuZGVsYXkraixfMSk/djE6RTF9dmFyIHg9ImJhY2t3YXJkc3xmb3J3''@;'; + put 'put ''YXJkc3xib3RofG5vbmUiLnNwbGl0KCJ8IiksRT0icmV2ZXJzZXxhbHRlcm5hdGV8YWx0ZXJuYXRlLXJldmVyc2UiLnNwbGl0KCJ8Iiksdz1mdW5jdGlvbihqKXtyZXR1cm4gan07bC5wcm90b3R5cGU9e19zZXRNZW1iZXI6ZnVuY3Rpb24oaixjMSl7dGhpc1siXyIral09YzEsdGhpcy5fZWZm''@;'; + put 'put ''ZWN0JiYodGhpcy5fZWZmZWN0Ll90aW1pbmdJbnB1dFtqXT1jMSx0aGlzLl9lZmZlY3QuX3RpbWluZz1rLm5vcm1hbGl6ZVRpbWluZ0lucHV0KHRoaXMuX2VmZmVjdC5fdGltaW5nSW5wdXQpLHRoaXMuX2VmZmVjdC5hY3RpdmVEdXJhdGlvbj1rLmNhbGN1bGF0ZUFjdGl2ZUR1cmF0aW9uKHRo''@;'; + put 'put ''aXMuX2VmZmVjdC5fdGltaW5nKSx0aGlzLl9lZmZlY3QuX2FuaW1hdGlvbiYmdGhpcy5fZWZmZWN0Ll9hbmltYXRpb24uX3JlYnVpbGRVbmRlcmx5aW5nQW5pbWF0aW9uKCkpfSxnZXQgcGxheWJhY2tSYXRlKCl7cmV0dXJuIHRoaXMuX3BsYXliYWNrUmF0ZX0sc2V0IGRlbGF5KGope3RoaXMu''@;'; + put 'put ''X3NldE1lbWJlcigiZGVsYXkiLGopfSxnZXQgZGVsYXkoKXtyZXR1cm4gdGhpcy5fZGVsYXl9LHNldCBlbmREZWxheShqKXt0aGlzLl9zZXRNZW1iZXIoImVuZERlbGF5IixqKX0sZ2V0IGVuZERlbGF5KCl7cmV0dXJuIHRoaXMuX2VuZERlbGF5fSxzZXQgZmlsbChqKXt0aGlzLl9zZXRNZW1i''@;'; + put 'put ''ZXIoImZpbGwiLGopfSxnZXQgZmlsbCgpe3JldHVybiB0aGlzLl9maWxsfSxzZXQgaXRlcmF0aW9uU3RhcnQoail7aWYoKGlzTmFOKGopfHxqPDApJiZyKCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiaXRlcmF0aW9uU3RhcnQgbXVzdCBiZSBhIG5vbi1uZWdhdGl2ZSBudW1iZXIsIHJlY2VpdmVk''@;'; + put 'put ''OiAiK2opO3RoaXMuX3NldE1lbWJlcigiaXRlcmF0aW9uU3RhcnQiLGopfSxnZXQgaXRlcmF0aW9uU3RhcnQoKXtyZXR1cm4gdGhpcy5faXRlcmF0aW9uU3RhcnR9LHNldCBkdXJhdGlvbihqKXtpZigiYXV0byIhPWomJihpc05hTihqKXx8ajwwKSYmcigpKXRocm93IG5ldyBUeXBlRXJyb3Io''@;'; + put 'put ''ImR1cmF0aW9uIG11c3QgYmUgbm9uLW5lZ2F0aXZlIG9yIGF1dG8sIHJlY2VpdmVkOiAiK2opO3RoaXMuX3NldE1lbWJlcigiZHVyYXRpb24iLGopfSxnZXQgZHVyYXRpb24oKXtyZXR1cm4gdGhpcy5fZHVyYXRpb259LHNldCBkaXJlY3Rpb24oail7dGhpcy5fc2V0TWVtYmVyKCJkaXJlY3Rp''@;'; + put 'put ''b24iLGopfSxnZXQgZGlyZWN0aW9uKCl7cmV0dXJuIHRoaXMuX2RpcmVjdGlvbn0sc2V0IGVhc2luZyhqKXt0aGlzLl9lYXNpbmdGdW5jdGlvbj11KGcoaikpLHRoaXMuX3NldE1lbWJlcigiZWFzaW5nIixqKX0sZ2V0IGVhc2luZygpe3JldHVybiB0aGlzLl9lYXNpbmd9LHNldCBpdGVyYXRp''@;'; + put 'put ''b25zKGope2lmKChpc05hTihqKXx8ajwwKSYmcigpKXRocm93IG5ldyBUeXBlRXJyb3IoIml0ZXJhdGlvbnMgbXVzdCBiZSBub24tbmVnYXRpdmUsIHJlY2VpdmVkOiAiK2opO3RoaXMuX3NldE1lbWJlcigiaXRlcmF0aW9ucyIsail9LGdldCBpdGVyYXRpb25zKCl7cmV0dXJuIHRoaXMuX2l0''@;'; + put 'put ''ZXJhdGlvbnN9fTt2YXIgTj0xLEk9LjUsVz0wLE89e2Vhc2U6aCguMjUsLjEsLjI1LDEpLCJlYXNlLWluIjpoKC40MiwwLDEsMSksImVhc2Utb3V0IjpoKDAsMCwuNTgsMSksImVhc2UtaW4tb3V0IjpoKC40MiwwLC41OCwxKSwic3RlcC1zdGFydCI6ZigxLE4pLCJzdGVwLW1pZGRsZSI6Zigx''@;'; + put 'put ''LEkpLCJzdGVwLWVuZCI6ZigxLFcpfSxCPW51bGwsUj0iXFxzKigtP1xcZCtcXC4/XFxkKnwtP1xcLlxcZCspXFxzKiIsbDE9bmV3IFJlZ0V4cCgiY3ViaWMtYmV6aWVyXFwoIitSKyIsIitSKyIsIitSKyIsIitSKyJcXCkiKSxhMT0vc3RlcHNcKFxzKihcZCspXHMqXCkvLGgxPS9zdGVwc1wo''@;'; + put 'put ''XHMqKFxkKylccyosXHMqKHN0YXJ0fG1pZGRsZXxlbmQpXHMqXCkvLHUxPTAscDE9MSx2MT0yLEUxPTM7ay5jbG9uZVRpbWluZ0lucHV0PWZ1bmN0aW9uIGUoail7aWYoIm51bWJlciI9PXR5cGVvZiBqKXJldHVybiBqO3ZhciBjMT17fTtmb3IodmFyIFYxIGluIGopYzFbVjFdPWpbVjFdO3Jl''@;'; + put 'put ''dHVybiBjMX0say5tYWtlVGltaW5nPWEsay5udW1lcmljVGltaW5nVG9PYmplY3Q9ZnVuY3Rpb24gYyhqKXtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIGomJihqPWlzTmFOKGopP3tkdXJhdGlvbjowfTp7ZHVyYXRpb246an0pLGp9LGsubm9ybWFsaXplVGltaW5nSW5wdXQ9ZnVuY3Rpb24gbyhq''@;'; + put 'put ''LGMxKXtyZXR1cm4gYShqPWsubnVtZXJpY1RpbWluZ1RvT2JqZWN0KGopLGMxKX0say5jYWxjdWxhdGVBY3RpdmVEdXJhdGlvbj1mdW5jdGlvbiBwKGope3JldHVybiBNYXRoLmFicyhmdW5jdGlvbiB2KGope3JldHVybiAwPT09ai5kdXJhdGlvbnx8MD09PWouaXRlcmF0aW9ucz8wOmouZHVy''@;'; + put 'put ''YXRpb24qai5pdGVyYXRpb25zfShqKS9qLnBsYXliYWNrUmF0ZSl9LGsuY2FsY3VsYXRlSXRlcmF0aW9uUHJvZ3Jlc3M9ZnVuY3Rpb24gTShqLGMxLFYxKXt2YXIgXzE9SChqLGMxLFYxKSxRPWZ1bmN0aW9uIEMoaixjMSxWMSxfMSxRKXtzd2l0Y2goXzEpe2Nhc2UgcDE6cmV0dXJuImJhY2t3''@;'; + put 'put ''YXJkcyI9PWMxfHwiYm90aCI9PWMxPzA6bnVsbDtjYXNlIEUxOnJldHVybiBWMS1RO2Nhc2UgdjE6cmV0dXJuImZvcndhcmRzIj09YzF8fCJib3RoIj09YzE/ajpudWxsO2Nhc2UgdTE6cmV0dXJuIG51bGx9fShqLFYxLmZpbGwsYzEsXzEsVjEuZGVsYXkpO2lmKG51bGw9PT1RKXJldHVybiBu''@;'; + put 'put ''dWxsO3ZhciBzMT1mdW5jdGlvbiBWKGosYzEsVjEsXzEsUSl7dmFyIHMxPVE7cmV0dXJuIDA9PT1qP2MxIT09cDEmJihzMSs9VjEpOnMxKz1fMS9qLHMxfShWMS5kdXJhdGlvbixfMSxWMS5pdGVyYXRpb25zLFEsVjEuaXRlcmF0aW9uU3RhcnQpLG0xPWZ1bmN0aW9uIFMoaixjMSxWMSxfMSxR''@;'; + put 'put ''LHMxKXt2YXIgbTE9aj09PTEvMD9jMSUxOmolMTtyZXR1cm4gMCE9PW0xfHxWMSE9PXYxfHwwPT09XzF8fDA9PT1RJiYwIT09czF8fChtMT0xKSxtMX0oczEsVjEuaXRlcmF0aW9uU3RhcnQsXzEsVjEuaXRlcmF0aW9ucyxRLFYxLmR1cmF0aW9uKSxiMT1mdW5jdGlvbiBfKGosYzEsVjEsXzEp''@;'; + put 'put ''e3JldHVybiBqPT09djEmJmMxPT09MS8wPzEvMDoxPT09VjE/TWF0aC5mbG9vcihfMSktMTpNYXRoLmZsb29yKF8xKX0oXzEsVjEuaXRlcmF0aW9ucyxtMSxzMSksQjE9ZnVuY3Rpb24gYihqLGMxLFYxKXt2YXIgXzE9ajtpZigibm9ybWFsIiE9PWomJiJyZXZlcnNlIiE9PWope3ZhciBRPWMx''@;'; + put 'put ''OyJhbHRlcm5hdGUtcmV2ZXJzZSI9PT1qJiYoUSs9MSksXzE9Im5vcm1hbCIsUSE9PTEvMCYmUSUyIT0wJiYoXzE9InJldmVyc2UiKX1yZXR1cm4ibm9ybWFsIj09PV8xP1YxOjEtVjF9KFYxLmRpcmVjdGlvbixiMSxtMSk7cmV0dXJuIFYxLl9lYXNpbmdGdW5jdGlvbihCMSl9LGsuY2FsY3Vs''@;'; + put 'put ''YXRlUGhhc2U9SCxrLm5vcm1hbGl6ZUVhc2luZz1nLGsucGFyc2VFYXNpbmdGdW5jdGlvbj11fSkoWCksZnVuY3Rpb24oayxBKXtmdW5jdGlvbiBlKHUscCl7cmV0dXJuIHUgaW4gZyYmZ1t1XVtwXXx8cH1mdW5jdGlvbiByKHUscCx2KXtpZighZnVuY3Rpb24gbCh1KXtyZXR1cm4iZGlzcGxh''@;'; + put 'put ''eSI9PT11fHwwPT09dS5sYXN0SW5kZXhPZigiYW5pbWF0aW9uIiwwKXx8MD09PXUubGFzdEluZGV4T2YoInRyYW5zaXRpb24iLDApfSh1KSl7dmFyIEg9b1t1XTtpZihIKWZvcih2YXIgQyBpbiBoLnN0eWxlW3VdPXAsSCl7dmFyIFY9SFtDXTt2W1ZdPWUoVixoLnN0eWxlW1ZdKX1lbHNlIHZb''@;'; + put 'put ''dV09ZSh1LHApfX1mdW5jdGlvbiBhKHUpe3ZhciBwPVtdO2Zvcih2YXIgdiBpbiB1KWlmKCEodiBpblsiZWFzaW5nIiwib2Zmc2V0IiwiY29tcG9zaXRlIl0pKXt2YXIgSD11W3ZdO0FycmF5LmlzQXJyYXkoSCl8fChIPVtIXSk7Zm9yKHZhciBDLFY9SC5sZW5ndGgsUz0wO1M8VjtTKyspKEM9''@;'; + put 'put ''e30pLm9mZnNldD0ib2Zmc2V0ImluIHU/dS5vZmZzZXQ6MT09Vj8xOlMvKFYtMSksImVhc2luZyJpbiB1JiYoQy5lYXNpbmc9dS5lYXNpbmcpLCJjb21wb3NpdGUiaW4gdSYmKEMuY29tcG9zaXRlPXUuY29tcG9zaXRlKSxDW3ZdPUhbU10scC5wdXNoKEMpfXJldHVybiBwLnNvcnQoZnVuY3Rp''@;'; + put 'put ''b24oXyxiKXtyZXR1cm4gXy5vZmZzZXQtYi5vZmZzZXR9KSxwfXZhciBvPXtiYWNrZ3JvdW5kOlsiYmFja2dyb3VuZEltYWdlIiwiYmFja2dyb3VuZFBvc2l0aW9uIiwiYmFja2dyb3VuZFNpemUiLCJiYWNrZ3JvdW5kUmVwZWF0IiwiYmFja2dyb3VuZEF0dGFjaG1lbnQiLCJiYWNrZ3JvdW5k''@;'; + put 'put ''T3JpZ2luIiwiYmFja2dyb3VuZENsaXAiLCJiYWNrZ3JvdW5kQ29sb3IiXSxib3JkZXI6WyJib3JkZXJUb3BDb2xvciIsImJvcmRlclRvcFN0eWxlIiwiYm9yZGVyVG9wV2lkdGgiLCJib3JkZXJSaWdodENvbG9yIiwiYm9yZGVyUmlnaHRTdHlsZSIsImJvcmRlclJpZ2h0V2lkdGgiLCJib3Jk''@;'; + put 'put ''ZXJCb3R0b21Db2xvciIsImJvcmRlckJvdHRvbVN0eWxlIiwiYm9yZGVyQm90dG9tV2lkdGgiLCJib3JkZXJMZWZ0Q29sb3IiLCJib3JkZXJMZWZ0U3R5bGUiLCJib3JkZXJMZWZ0V2lkdGgiXSxib3JkZXJCb3R0b206WyJib3JkZXJCb3R0b21XaWR0aCIsImJvcmRlckJvdHRvbVN0eWxlIiwi''@;'; + put 'put ''Ym9yZGVyQm90dG9tQ29sb3IiXSxib3JkZXJDb2xvcjpbImJvcmRlclRvcENvbG9yIiwiYm9yZGVyUmlnaHRDb2xvciIsImJvcmRlckJvdHRvbUNvbG9yIiwiYm9yZGVyTGVmdENvbG9yIl0sYm9yZGVyTGVmdDpbImJvcmRlckxlZnRXaWR0aCIsImJvcmRlckxlZnRTdHlsZSIsImJvcmRlckxl''@;'; + put 'put ''ZnRDb2xvciJdLGJvcmRlclJhZGl1czpbImJvcmRlclRvcExlZnRSYWRpdXMiLCJib3JkZXJUb3BSaWdodFJhZGl1cyIsImJvcmRlckJvdHRvbVJpZ2h0UmFkaXVzIiwiYm9yZGVyQm90dG9tTGVmdFJhZGl1cyJdLGJvcmRlclJpZ2h0OlsiYm9yZGVyUmlnaHRXaWR0aCIsImJvcmRlclJpZ2h0''@;'; + put 'put ''U3R5bGUiLCJib3JkZXJSaWdodENvbG9yIl0sYm9yZGVyVG9wOlsiYm9yZGVyVG9wV2lkdGgiLCJib3JkZXJUb3BTdHlsZSIsImJvcmRlclRvcENvbG9yIl0sYm9yZGVyV2lkdGg6WyJib3JkZXJUb3BXaWR0aCIsImJvcmRlclJpZ2h0V2lkdGgiLCJib3JkZXJCb3R0b21XaWR0aCIsImJvcmRl''@;'; + put 'put ''ckxlZnRXaWR0aCJdLGZsZXg6WyJmbGV4R3JvdyIsImZsZXhTaHJpbmsiLCJmbGV4QmFzaXMiXSxmb250OlsiZm9udEZhbWlseSIsImZvbnRTaXplIiwiZm9udFN0eWxlIiwiZm9udFZhcmlhbnQiLCJmb250V2VpZ2h0IiwibGluZUhlaWdodCJdLG1hcmdpbjpbIm1hcmdpblRvcCIsIm1hcmdp''@;'; + put 'put ''blJpZ2h0IiwibWFyZ2luQm90dG9tIiwibWFyZ2luTGVmdCJdLG91dGxpbmU6WyJvdXRsaW5lQ29sb3IiLCJvdXRsaW5lU3R5bGUiLCJvdXRsaW5lV2lkdGgiXSxwYWRkaW5nOlsicGFkZGluZ1RvcCIsInBhZGRpbmdSaWdodCIsInBhZGRpbmdCb3R0b20iLCJwYWRkaW5nTGVmdCJdfSxoPWRv''@;'; + put 'put ''Y3VtZW50LmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIsImRpdiIpLGY9e3RoaW46IjFweCIsbWVkaXVtOiIzcHgiLHRoaWNrOiI1cHgifSxnPXtib3JkZXJCb3R0b21XaWR0aDpmLGJvcmRlckxlZnRXaWR0aDpmLGJvcmRlclJpZ2h0V2lkdGg6Zixib3Jk''@;'; + put 'put ''ZXJUb3BXaWR0aDpmLGZvbnRTaXplOnsieHgtc21hbGwiOiI2MCUiLCJ4LXNtYWxsIjoiNzUlIixzbWFsbDoiODklIixtZWRpdW06IjEwMCUiLGxhcmdlOiIxMjAlIiwieC1sYXJnZSI6IjE1MCUiLCJ4eC1sYXJnZSI6IjIwMCUifSxmb250V2VpZ2h0Ontub3JtYWw6IjQwMCIsYm9sZDoiNzAw''@;'; + put 'put ''In0sb3V0bGluZVdpZHRoOmYsdGV4dFNoYWRvdzp7bm9uZToiMHB4IDBweCAwcHggdHJhbnNwYXJlbnQifSxib3hTaGFkb3c6e25vbmU6IjBweCAwcHggMHB4IDBweCB0cmFuc3BhcmVudCJ9fTtrLmNvbnZlcnRUb0FycmF5Rm9ybT1hLGsubm9ybWFsaXplS2V5ZnJhbWVzPWZ1bmN0aW9uIGMo''@;'; + put 'put ''dSl7aWYobnVsbD09dSlyZXR1cm5bXTt3aW5kb3cuU3ltYm9sJiZTeW1ib2wuaXRlcmF0b3ImJkFycmF5LnByb3RvdHlwZS5mcm9tJiZ1W1N5bWJvbC5pdGVyYXRvcl0mJih1PUFycmF5LmZyb20odSkpLEFycmF5LmlzQXJyYXkodSl8fCh1PWEodSkpO2Zvcih2YXIgdj11Lm1hcChmdW5jdGlv''@;'; + put 'put ''bihfKXt2YXIgYj17fTtmb3IodmFyIE0gaW4gXyl7dmFyIHg9X1tNXTtpZigib2Zmc2V0Ij09TSl7aWYobnVsbCE9eCl7aWYoeD1OdW1iZXIoeCksIWlzRmluaXRlKHgpKXRocm93IG5ldyBUeXBlRXJyb3IoIktleWZyYW1lIG9mZnNldHMgbXVzdCBiZSBudW1iZXJzLiIpO2lmKHg8MHx8eD4x''@;'; + put 'put ''KXRocm93IG5ldyBUeXBlRXJyb3IoIktleWZyYW1lIG9mZnNldHMgbXVzdCBiZSBiZXR3ZWVuIDAgYW5kIDEuIil9fWVsc2UgaWYoImNvbXBvc2l0ZSI9PU0pe2lmKCJhZGQiPT14fHwiYWNjdW11bGF0ZSI9PXgpdGhyb3d7dHlwZTpET01FeGNlcHRpb24uTk9UX1NVUFBPUlRFRF9FUlIsbmFt''@;'; + put 'put ''ZToiTm90U3VwcG9ydGVkRXJyb3IiLG1lc3NhZ2U6ImFkZCBjb21wb3NpdGluZyBpcyBub3Qgc3VwcG9ydGVkIn07aWYoInJlcGxhY2UiIT14KXRocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgY29tcG9zaXRlIG1vZGUgIit4KyIuIil9ZWxzZSB4PSJlYXNpbmciPT1NP2subm9ybWFsaXpl''@;'; + put 'put ''RWFzaW5nKHgpOiIiK3g7cihNLHgsYil9cmV0dXJuIG51bGw9PWIub2Zmc2V0JiYoYi5vZmZzZXQ9bnVsbCksbnVsbD09Yi5lYXNpbmcmJihiLmVhc2luZz0ibGluZWFyIiksYn0pLEg9ITAsQz0tMS8wLFY9MDtWPHYubGVuZ3RoO1YrKyl7dmFyIFM9dltWXS5vZmZzZXQ7aWYobnVsbCE9Uyl7''@;'; + put 'put ''aWYoUzxDKXRocm93IG5ldyBUeXBlRXJyb3IoIktleWZyYW1lcyBhcmUgbm90IGxvb3NlbHkgc29ydGVkIGJ5IG9mZnNldC4gU29ydCBvciBzcGVjaWZ5IG9mZnNldHMuIik7Qz1TfWVsc2UgSD0hMX1yZXR1cm4gdj12LmZpbHRlcihmdW5jdGlvbihfKXtyZXR1cm4gXy5vZmZzZXQ+PTAmJl8u''@;'; + put 'put ''b2Zmc2V0PD0xfSksSHx8ZnVuY3Rpb24gcCgpe3ZhciBfPXYubGVuZ3RoO251bGw9PXZbXy0xXS5vZmZzZXQmJih2W18tMV0ub2Zmc2V0PTEpLF8+MSYmbnVsbD09dlswXS5vZmZzZXQmJih2WzBdLm9mZnNldD0wKTtmb3IodmFyIGI9MCxNPXZbMF0ub2Zmc2V0LHg9MTt4PF87eCsrKXt2YXIg''@;'; + put 'put ''RT12W3hdLm9mZnNldDtpZihudWxsIT1FKXtmb3IodmFyIHc9MTt3PHgtYjt3KyspdltiK3ddLm9mZnNldD1NKyhFLU0pKncvKHgtYik7Yj14LE09RX19fSgpLHZ9fShYKSxBPXt9LChrPVgpLmlzRGVwcmVjYXRlZD1mdW5jdGlvbihlLGwscixhKXt2YXIgYz1hPyJhcmUiOiJpcyIsbz1uZXcg''@;'; + put 'put ''RGF0ZSxoPW5ldyBEYXRlKGwpO3JldHVybiBoLnNldE1vbnRoKGguZ2V0TW9udGgoKSszKSwhKG88aCYmKGUgaW4gQXx8Y29uc29sZS53YXJuKCJXZWIgQW5pbWF0aW9uczogIitlKyIgIitjKyIgZGVwcmVjYXRlZCBhbmQgd2lsbCBzdG9wIHdvcmtpbmcgb24gIitoLnRvRGF0ZVN0cmluZygp''@;'; + put 'put ''KyIuICIrciksQVtlXT0hMCwxKSl9LGsuZGVwcmVjYXRlZD1mdW5jdGlvbihlLGwscixhKXt2YXIgYz1hPyJhcmUiOiJpcyI7aWYoay5pc0RlcHJlY2F0ZWQoZSxsLHIsYSkpdGhyb3cgbmV3IEVycm9yKGUrIiAiK2MrIiBubyBsb25nZXIgc3VwcG9ydGVkLiAiK3IpfSxmdW5jdGlvbigpe2lm''@;'; + put 'put ''KGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5hbmltYXRlKXt2YXIgaz1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuYW5pbWF0ZShbXSwwKSxBPSEwO2lmKGsmJihBPSExLCJwbGF5fGN1cnJlbnRUaW1lfHBhdXNlfHJldmVyc2V8cGxheWJhY2tSYXRlfGNhbmNlbHxmaW5pc2h8c3RhcnRUaW1l''@;'; + put 'put ''fHBsYXlTdGF0ZSIuc3BsaXQoInwiKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3ZvaWQgMD09PWtbZV0mJihBPSEwKX0pKSwhQSlyZXR1cm59dmFyIGUsbDtlPVgsKGw9RjEpLmNvbnZlcnRFZmZlY3RJbnB1dD1mdW5jdGlvbihvKXt2YXIgZj1mdW5jdGlvbiBhKG8pe2Zvcih2YXIgaD17fSxmPTA7''@;'; + put 'put ''ZjxvLmxlbmd0aDtmKyspZm9yKHZhciBnIGluIG9bZl0paWYoIm9mZnNldCIhPWcmJiJlYXNpbmciIT1nJiYiY29tcG9zaXRlIiE9Zyl7dmFyIHU9e29mZnNldDpvW2ZdLm9mZnNldCxlYXNpbmc6b1tmXS5lYXNpbmcsdmFsdWU6b1tmXVtnXX07aFtnXT1oW2ddfHxbXSxoW2ddLnB1c2godSl9''@;'; + put 'put ''Zm9yKHZhciBwIGluIGgpe3ZhciB2PWhbcF07aWYoMCE9dlswXS5vZmZzZXR8fDEhPXZbdi5sZW5ndGgtMV0ub2Zmc2V0KXRocm93e3R5cGU6RE9NRXhjZXB0aW9uLk5PVF9TVVBQT1JURURfRVJSLG5hbWU6Ik5vdFN1cHBvcnRlZEVycm9yIixtZXNzYWdlOiJQYXJ0aWFsIGtleWZyYW1lcyBh''@;'; + put 'put ''cmUgbm90IHN1cHBvcnRlZCJ9fXJldHVybiBofShlLm5vcm1hbGl6ZUtleWZyYW1lcyhvKSksZz1mdW5jdGlvbiBjKG8pe3ZhciBoPVtdO2Zvcih2YXIgZiBpbiBvKWZvcih2YXIgZz1vW2ZdLHU9MDt1PGcubGVuZ3RoLTE7dSsrKXt2YXIgcD11LHY9dSsxLEg9Z1twXS5vZmZzZXQsQz1nW3Zd''@;'; + put 'put ''Lm9mZnNldCxWPUgsUz1DOzA9PXUmJihWPS0xLzAsMD09QyYmKHY9cCkpLHU9PWcubGVuZ3RoLTImJihTPTEvMCwxPT1IJiYocD12KSksaC5wdXNoKHthcHBseUZyb206VixhcHBseVRvOlMsc3RhcnRPZmZzZXQ6Z1twXS5vZmZzZXQsZW5kT2Zmc2V0Omdbdl0ub2Zmc2V0LGVhc2luZ0Z1bmN0''@;'; + put 'put ''aW9uOmUucGFyc2VFYXNpbmdGdW5jdGlvbihnW3BdLmVhc2luZykscHJvcGVydHk6ZixpbnRlcnBvbGF0aW9uOmwucHJvcGVydHlJbnRlcnBvbGF0aW9uKGYsZ1twXS52YWx1ZSxnW3ZdLnZhbHVlKX0pfXJldHVybiBoLnNvcnQoZnVuY3Rpb24oXyxiKXtyZXR1cm4gXy5zdGFydE9mZnNldC1i''@;'; + put 'put ''LnN0YXJ0T2Zmc2V0fSksaH0oZik7cmV0dXJuIGZ1bmN0aW9uKHUscCl7aWYobnVsbCE9cClnLmZpbHRlcihmdW5jdGlvbihIKXtyZXR1cm4gcD49SC5hcHBseUZyb20mJnA8SC5hcHBseVRvfSkuZm9yRWFjaChmdW5jdGlvbihIKXt2YXIgVj1ILmVuZE9mZnNldC1ILnN0YXJ0T2Zmc2V0LFM9''@;'; + put 'put ''MD09Vj8wOkguZWFzaW5nRnVuY3Rpb24oKHAtSC5zdGFydE9mZnNldCkvVik7bC5hcHBseSh1LEgucHJvcGVydHksSC5pbnRlcnBvbGF0aW9uKFMpKX0pO2Vsc2UgZm9yKHZhciB2IGluIGYpIm9mZnNldCIhPXYmJiJlYXNpbmciIT12JiYiY29tcG9zaXRlIiE9diYmbC5jbGVhcih1LHYpfX0s''@;'; + put 'put ''ZnVuY3Rpb24oZSxsLHIpe2Z1bmN0aW9uIGEodSl7cmV0dXJuIHUucmVwbGFjZSgvLSguKS9nLGZ1bmN0aW9uKHAsdil7cmV0dXJuIHYudG9VcHBlckNhc2UoKX0pfWZ1bmN0aW9uIGModSxwLHYpe2Zbdl09Zlt2XXx8W10sZlt2XS5wdXNoKFt1LHBdKX12YXIgZj17fTtsLmFkZFByb3BlcnRp''@;'; + put 'put ''ZXNIYW5kbGVyPWZ1bmN0aW9uIG8odSxwLHYpe2Zvcih2YXIgSD0wO0g8di5sZW5ndGg7SCsrKWModSxwLGEodltIXSkpfTt2YXIgZz17YmFja2dyb3VuZENvbG9yOiJ0cmFuc3BhcmVudCIsYmFja2dyb3VuZFBvc2l0aW9uOiIwJSAwJSIsYm9yZGVyQm90dG9tQ29sb3I6ImN1cnJlbnRDb2xv''@;'; + put 'put ''ciIsYm9yZGVyQm90dG9tTGVmdFJhZGl1czoiMHB4Iixib3JkZXJCb3R0b21SaWdodFJhZGl1czoiMHB4Iixib3JkZXJCb3R0b21XaWR0aDoiM3B4Iixib3JkZXJMZWZ0Q29sb3I6ImN1cnJlbnRDb2xvciIsYm9yZGVyTGVmdFdpZHRoOiIzcHgiLGJvcmRlclJpZ2h0Q29sb3I6ImN1cnJlbnRD''@;'; + put 'put ''b2xvciIsYm9yZGVyUmlnaHRXaWR0aDoiM3B4Iixib3JkZXJTcGFjaW5nOiIycHgiLGJvcmRlclRvcENvbG9yOiJjdXJyZW50Q29sb3IiLGJvcmRlclRvcExlZnRSYWRpdXM6IjBweCIsYm9yZGVyVG9wUmlnaHRSYWRpdXM6IjBweCIsYm9yZGVyVG9wV2lkdGg6IjNweCIsYm90dG9tOiJhdXRv''@;'; + put 'put ''IixjbGlwOiJyZWN0KDBweCwgMHB4LCAwcHgsIDBweCkiLGNvbG9yOiJibGFjayIsZm9udFNpemU6IjEwMCUiLGZvbnRXZWlnaHQ6IjQwMCIsaGVpZ2h0OiJhdXRvIixsZWZ0OiJhdXRvIixsZXR0ZXJTcGFjaW5nOiJub3JtYWwiLGxpbmVIZWlnaHQ6IjEyMCUiLG1hcmdpbkJvdHRvbToiMHB4''@;'; + put 'put ''IixtYXJnaW5MZWZ0OiIwcHgiLG1hcmdpblJpZ2h0OiIwcHgiLG1hcmdpblRvcDoiMHB4IixtYXhIZWlnaHQ6Im5vbmUiLG1heFdpZHRoOiJub25lIixtaW5IZWlnaHQ6IjBweCIsbWluV2lkdGg6IjBweCIsb3BhY2l0eToiMS4wIixvdXRsaW5lQ29sb3I6ImludmVydCIsb3V0bGluZU9mZnNl''@;'; + put 'put ''dDoiMHB4IixvdXRsaW5lV2lkdGg6IjNweCIscGFkZGluZ0JvdHRvbToiMHB4IixwYWRkaW5nTGVmdDoiMHB4IixwYWRkaW5nUmlnaHQ6IjBweCIscGFkZGluZ1RvcDoiMHB4IixyaWdodDoiYXV0byIsc3Ryb2tlRGFzaGFycmF5OiJub25lIixzdHJva2VEYXNob2Zmc2V0OiIwcHgiLHRleHRJ''@;'; + put 'put ''bmRlbnQ6IjBweCIsdGV4dFNoYWRvdzoiMHB4IDBweCAwcHggdHJhbnNwYXJlbnQiLHRvcDoiYXV0byIsdHJhbnNmb3JtOiIiLHZlcnRpY2FsQWxpZ246IjBweCIsdmlzaWJpbGl0eToidmlzaWJsZSIsd2lkdGg6ImF1dG8iLHdvcmRTcGFjaW5nOiJub3JtYWwiLHpJbmRleDoiYXV0byJ9O2wu''@;'; + put 'put ''cHJvcGVydHlJbnRlcnBvbGF0aW9uPWZ1bmN0aW9uIGgodSxwLHYpe3ZhciBIPXU7Ly0vLnRlc3QodSkmJiFlLmlzRGVwcmVjYXRlZCgiSHlwaGVuYXRlZCBwcm9wZXJ0eSBuYW1lcyIsIjIwMTYtMDMtMjIiLCJVc2UgY2FtZWxDYXNlIGluc3RlYWQuIiwhMCkmJihIPWEodSkpLCJpbml0aWFs''@;'; + put 'put ''IiE9cCYmImluaXRpYWwiIT12fHwoImluaXRpYWwiPT1wJiYocD1nW0hdKSwiaW5pdGlhbCI9PXYmJih2PWdbSF0pKTtmb3IodmFyIEM9cD09dj9bXTpmW0hdLFY9MDtDJiZWPEMubGVuZ3RoO1YrKyl7dmFyIFM9Q1tWXVswXShwKSxfPUNbVl1bMF0odik7aWYodm9pZCAwIT09UyYmdm9pZCAw''@;'; + put 'put ''IT09Xyl7dmFyIGI9Q1tWXVsxXShTLF8pO2lmKGIpe3ZhciBNPWwuSW50ZXJwb2xhdGlvbi5hcHBseShudWxsLGIpO3JldHVybiBmdW5jdGlvbih4KXtyZXR1cm4gMD09eD9wOjE9PXg/djpNKHgpfX19fXJldHVybiBsLkludGVycG9sYXRpb24oITEsITAsZnVuY3Rpb24oeCl7cmV0dXJuIHg/''@;'; + put 'put ''djpwfSl9fShYLEYxKSxmdW5jdGlvbihlLGwscil7bC5LZXlmcmFtZUVmZmVjdD1mdW5jdGlvbihjLG8saCxmKXt2YXIgZyx1PWZ1bmN0aW9uIGEoYyl7dmFyIG89ZS5jYWxjdWxhdGVBY3RpdmVEdXJhdGlvbihjKSxoPWZ1bmN0aW9uKGYpe3JldHVybiBlLmNhbGN1bGF0ZUl0ZXJhdGlvblBy''@;'; + put 'put ''b2dyZXNzKG8sZixjKX07cmV0dXJuIGguX3RvdGFsRHVyYXRpb249Yy5kZWxheStvK2MuZW5kRGVsYXksaH0oZS5ub3JtYWxpemVUaW1pbmdJbnB1dChoKSkscD1sLmNvbnZlcnRFZmZlY3RJbnB1dChvKSx2PWZ1bmN0aW9uKCl7cChjLGcpfTtyZXR1cm4gdi5fdXBkYXRlPWZ1bmN0aW9uKEgp''@;'; + put 'put ''e3JldHVybiBudWxsIT09KGc9dShIKSl9LHYuX2NsZWFyPWZ1bmN0aW9uKCl7cChjLG51bGwpfSx2Ll9oYXNTYW1lVGFyZ2V0PWZ1bmN0aW9uKEgpe3JldHVybiBjPT09SH0sdi5fdGFyZ2V0PWMsdi5fdG90YWxEdXJhdGlvbj11Ll90b3RhbER1cmF0aW9uLHYuX2lkPWYsdn19KFgsRjEpLGZ1''@;'; + put 'put ''bmN0aW9uKGUsbCl7ZnVuY3Rpb24gYShILEMsVil7Vi5lbnVtZXJhYmxlPSEwLFYuY29uZmlndXJhYmxlPSEwLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShILEMsVil9ZnVuY3Rpb24gYyhIKXt0aGlzLl9lbGVtZW50PUgsdGhpcy5fc3Vycm9nYXRlU3R5bGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVu''@;'; + put 'put ''dE5TKCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiwiZGl2Iikuc3R5bGUsdGhpcy5fc3R5bGU9SC5zdHlsZSx0aGlzLl9sZW5ndGg9MCx0aGlzLl9pc0FuaW1hdGVkUHJvcGVydHk9e30sdGhpcy5fdXBkYXRlU3ZnVHJhbnNmb3JtQXR0cj1mdW5jdGlvbiByKEgsQyl7cmV0dXJuISgh''@;'; + put 'put ''Qy5uYW1lc3BhY2VVUkl8fC0xPT1DLm5hbWVzcGFjZVVSSS5pbmRleE9mKCIvc3ZnIikpJiYoaCBpbiBIfHwoSFtoXT0vVHJpZGVudHxNU0lFfElFTW9iaWxlfEVkZ2V8QW5kcm9pZCA0L2kudGVzdChILm5hdmlnYXRvci51c2VyQWdlbnQpKSxIW2hdKX0od2luZG93LEgpLHRoaXMuX3NhdmVk''@;'; + put 'put ''VHJhbnNmb3JtQXR0cj1udWxsO2Zvcih2YXIgQz0wO0M8dGhpcy5fc3R5bGUubGVuZ3RoO0MrKyl7dmFyIFY9dGhpcy5fc3R5bGVbQ107dGhpcy5fc3Vycm9nYXRlU3R5bGVbVl09dGhpcy5fc3R5bGVbVl19dGhpcy5fdXBkYXRlSW5kaWNlcygpfXZhciBoPSJfd2ViQW5pbWF0aW9uc1VwZGF0''@;'; + put 'put ''ZVN2Z1RyYW5zZm9ybUF0dHIiLGY9e2Nzc1RleHQ6MSxsZW5ndGg6MSxwYXJlbnRSdWxlOjF9LGc9e2dldFByb3BlcnR5Q1NTVmFsdWU6MSxnZXRQcm9wZXJ0eVByaW9yaXR5OjEsZ2V0UHJvcGVydHlWYWx1ZToxLGl0ZW06MSxyZW1vdmVQcm9wZXJ0eToxLHNldFByb3BlcnR5OjF9LHU9e3Jl''@;'; + put 'put ''bW92ZVByb3BlcnR5OjEsc2V0UHJvcGVydHk6MX07Zm9yKHZhciBwIGluIGMucHJvdG90eXBlPXtnZXQgY3NzVGV4dCgpe3JldHVybiB0aGlzLl9zdXJyb2dhdGVTdHlsZS5jc3NUZXh0fSxzZXQgY3NzVGV4dChIKXtmb3IodmFyIEM9e30sVj0wO1Y8dGhpcy5fc3Vycm9nYXRlU3R5bGUubGVu''@;'; + put 'put ''Z3RoO1YrKylDW3RoaXMuX3N1cnJvZ2F0ZVN0eWxlW1ZdXT0hMDtmb3IodGhpcy5fc3Vycm9nYXRlU3R5bGUuY3NzVGV4dD1ILHRoaXMuX3VwZGF0ZUluZGljZXMoKSxWPTA7Vjx0aGlzLl9zdXJyb2dhdGVTdHlsZS5sZW5ndGg7VisrKUNbdGhpcy5fc3Vycm9nYXRlU3R5bGVbVl1dPSEwO2Zv''@;'; + put 'put ''cih2YXIgUyBpbiBDKXRoaXMuX2lzQW5pbWF0ZWRQcm9wZXJ0eVtTXXx8dGhpcy5fc3R5bGUuc2V0UHJvcGVydHkoUyx0aGlzLl9zdXJyb2dhdGVTdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKFMpKX0sZ2V0IGxlbmd0aCgpe3JldHVybiB0aGlzLl9zdXJyb2dhdGVTdHlsZS5sZW5ndGh9LGdldCBw''@;'; + put 'put ''YXJlbnRSdWxlKCl7cmV0dXJuIHRoaXMuX3N0eWxlLnBhcmVudFJ1bGV9LF91cGRhdGVJbmRpY2VzOmZ1bmN0aW9uKCl7Zm9yKDt0aGlzLl9sZW5ndGg8dGhpcy5fc3Vycm9nYXRlU3R5bGUubGVuZ3RoOylPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyx0aGlzLl9sZW5ndGgse2NvbmZpZ3Vy''@;'; + put 'put ''YWJsZTohMCxlbnVtZXJhYmxlOiExLGdldDpmdW5jdGlvbihIKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc3Vycm9nYXRlU3R5bGVbSF19fSh0aGlzLl9sZW5ndGgpfSksdGhpcy5fbGVuZ3RoKys7Zm9yKDt0aGlzLl9sZW5ndGg+dGhpcy5fc3Vycm9nYXRlU3R5bGUubGVuZ3Ro''@;'; + put 'put ''Oyl0aGlzLl9sZW5ndGgtLSxPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyx0aGlzLl9sZW5ndGgse2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiExLHZhbHVlOnZvaWQgMH0pfSxfc2V0OmZ1bmN0aW9uKEgsQyl7dGhpcy5fc3R5bGVbSF09Qyx0aGlzLl9pc0FuaW1hdGVkUHJvcGVydHlb''@;'; + put 'put ''SF09ITAsdGhpcy5fdXBkYXRlU3ZnVHJhbnNmb3JtQXR0ciYmInRyYW5zZm9ybSI9PWUudW5wcmVmaXhlZFByb3BlcnR5TmFtZShIKSYmKG51bGw9PXRoaXMuX3NhdmVkVHJhbnNmb3JtQXR0ciYmKHRoaXMuX3NhdmVkVHJhbnNmb3JtQXR0cj10aGlzLl9lbGVtZW50LmdldEF0dHJpYnV0ZSgi''@;'; + put 'put ''dHJhbnNmb3JtIikpLHRoaXMuX2VsZW1lbnQuc2V0QXR0cmlidXRlKCJ0cmFuc2Zvcm0iLGUudHJhbnNmb3JtVG9TdmdNYXRyaXgoQykpKX0sX2NsZWFyOmZ1bmN0aW9uKEgpe3RoaXMuX3N0eWxlW0hdPXRoaXMuX3N1cnJvZ2F0ZVN0eWxlW0hdLHRoaXMuX3VwZGF0ZVN2Z1RyYW5zZm9ybUF0''@;'; + put 'put ''dHImJiJ0cmFuc2Zvcm0iPT1lLnVucHJlZml4ZWRQcm9wZXJ0eU5hbWUoSCkmJih0aGlzLl9zYXZlZFRyYW5zZm9ybUF0dHI/dGhpcy5fZWxlbWVudC5zZXRBdHRyaWJ1dGUoInRyYW5zZm9ybSIsdGhpcy5fc2F2ZWRUcmFuc2Zvcm1BdHRyKTp0aGlzLl9lbGVtZW50LnJlbW92ZUF0dHJpYnV0''@;'; + put 'put ''ZSgidHJhbnNmb3JtIiksdGhpcy5fc2F2ZWRUcmFuc2Zvcm1BdHRyPW51bGwpLGRlbGV0ZSB0aGlzLl9pc0FuaW1hdGVkUHJvcGVydHlbSF19fSxnKWMucHJvdG90eXBlW3BdPWZ1bmN0aW9uKEgsQyl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIFY9dGhpcy5fc3Vycm9nYXRlU3R5bGVbSF0uYXBw''@;'; + put 'put ''bHkodGhpcy5fc3Vycm9nYXRlU3R5bGUsYXJndW1lbnRzKTtyZXR1cm4gQyYmKHRoaXMuX2lzQW5pbWF0ZWRQcm9wZXJ0eVthcmd1bWVudHNbMF1dfHx0aGlzLl9zdHlsZVtIXS5hcHBseSh0aGlzLl9zdHlsZSxhcmd1bWVudHMpLHRoaXMuX3VwZGF0ZUluZGljZXMoKSksVn19KHAscCBpbiB1''@;'; + put 'put ''KTtmb3IodmFyIHYgaW4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlKXYgaW4gZnx8diBpbiBnfHxmdW5jdGlvbihIKXthKGMucHJvdG90eXBlLEgse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9zdXJyb2dhdGVTdHlsZVtIXX0sc2V0OmZ1bmN0aW9uKEMpe3RoaXMuX3N1cnJv''@;'; + put 'put ''Z2F0ZVN0eWxlW0hdPUMsdGhpcy5fdXBkYXRlSW5kaWNlcygpLHRoaXMuX2lzQW5pbWF0ZWRQcm9wZXJ0eVtIXXx8KHRoaXMuX3N0eWxlW0hdPUMpfX0pfSh2KTtlLmFwcGx5PWZ1bmN0aW9uKEgsQyxWKXsoZnVuY3Rpb24gbyhIKXtpZighSC5fd2ViQW5pbWF0aW9uc1BhdGNoZWRTdHlsZSl7''@;'; + put 'put ''dmFyIEM9bmV3IGMoSCk7dHJ5e2EoSCwic3R5bGUiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gQ319KX1jYXRjaChWKXtILnN0eWxlLl9zZXQ9ZnVuY3Rpb24oUyxfKXtILnN0eWxlW1NdPV99LEguc3R5bGUuX2NsZWFyPWZ1bmN0aW9uKFMpe0guc3R5bGVbU109IiJ9fUguX3dlYkFuaW1hdGlv''@;'; + put 'put ''bnNQYXRjaGVkU3R5bGU9SC5zdHlsZX19KShIKSxILnN0eWxlLl9zZXQoZS5wcm9wZXJ0eU5hbWUoQyksVil9LGUuY2xlYXI9ZnVuY3Rpb24oSCxDKXtILl93ZWJBbmltYXRpb25zUGF0Y2hlZFN0eWxlJiZILnN0eWxlLl9jbGVhcihlLnByb3BlcnR5TmFtZShDKSl9fShGMSksZnVuY3Rpb24o''@;'; + put 'put ''ZSl7d2luZG93LkVsZW1lbnQucHJvdG90eXBlLmFuaW1hdGU9ZnVuY3Rpb24obCxyKXt2YXIgYT0iIjtyZXR1cm4gciYmci5pZCYmKGE9ci5pZCksZS50aW1lbGluZS5fcGxheShlLktleWZyYW1lRWZmZWN0KHRoaXMsbCxyLGEpKX19KEYxKSxmdW5jdGlvbihlLGwpe2Z1bmN0aW9uIHIoYSxj''@;'; + put 'put ''LG8pe2lmKCJudW1iZXIiPT10eXBlb2YgYSYmIm51bWJlciI9PXR5cGVvZiBjKXJldHVybiBhKigxLW8pK2MqbztpZigiYm9vbGVhbiI9PXR5cGVvZiBhJiYiYm9vbGVhbiI9PXR5cGVvZiBjKXJldHVybiBvPC41P2E6YztpZihhLmxlbmd0aD09Yy5sZW5ndGgpe2Zvcih2YXIgaD1bXSxmPTA7''@;'; + put 'put ''ZjxhLmxlbmd0aDtmKyspaC5wdXNoKHIoYVtmXSxjW2ZdLG8pKTtyZXR1cm4gaH10aHJvdyJNaXNtYXRjaGVkIGludGVycG9sYXRpb24gYXJndW1lbnRzICIrYSsiOiIrY31lLkludGVycG9sYXRpb249ZnVuY3Rpb24oYSxjLG8pe3JldHVybiBmdW5jdGlvbihoKXtyZXR1cm4gbyhyKGEsYyxo''@;'; + put 'put ''KSl9fX0oRjEpLGZ1bmN0aW9uKGUsbCl7dmFyIGM9ZnVuY3Rpb24oKXtmdW5jdGlvbiBvKGcsdSl7Zm9yKHZhciBwPVtbMCwwLDAsMF0sWzAsMCwwLDBdLFswLDAsMCwwXSxbMCwwLDAsMF1dLHY9MDt2PDQ7disrKWZvcih2YXIgSD0wO0g8NDtIKyspZm9yKHZhciBDPTA7Qzw0O0MrKylwW3Zd''@;'; + put 'put ''W0hdKz11W3ZdW0NdKmdbQ11bSF07cmV0dXJuIHB9cmV0dXJuIGZ1bmN0aW9uIGYoZyx1LHAsdixIKXtmb3IodmFyIEM9W1sxLDAsMCwwXSxbMCwxLDAsMF0sWzAsMCwxLDBdLFswLDAsMCwxXV0sVj0wO1Y8NDtWKyspQ1tWXVszXT1IW1ZdO2ZvcihWPTA7VjwzO1YrKylmb3IodmFyIFM9MDtT''@;'; + put 'put ''PDM7UysrKUNbM11bVl0rPWdbU10qQ1tTXVtWXTt2YXIgXz12WzBdLGI9dlsxXSxNPXZbMl0seD12WzNdLEU9W1sxLDAsMCwwXSxbMCwxLDAsMF0sWzAsMCwxLDBdLFswLDAsMCwxXV07RVswXVswXT0xLTIqKGIqYitNKk0pLEVbMF1bMV09MiooXypiLU0qeCksRVswXVsyXT0yKihfKk0rYip4''@;'; + put 'put ''KSxFWzFdWzBdPTIqKF8qYitNKngpLEVbMV1bMV09MS0yKihfKl8rTSpNKSxFWzFdWzJdPTIqKGIqTS1fKngpLEVbMl1bMF09MiooXypNLWIqeCksRVsyXVsxXT0yKihiKk0rXyp4KSxFWzJdWzJdPTEtMiooXypfK2IqYiksQz1vKEMsRSk7dmFyIHc9W1sxLDAsMCwwXSxbMCwxLDAsMF0sWzAs''@;'; + put 'put ''MCwxLDBdLFswLDAsMCwxXV07Zm9yKHBbMl0mJih3WzJdWzFdPXBbMl0sQz1vKEMsdykpLHBbMV0mJih3WzJdWzFdPTAsd1syXVswXT1wWzBdLEM9byhDLHcpKSxwWzBdJiYod1syXVswXT0wLHdbMV1bMF09cFswXSxDPW8oQyx3KSksVj0wO1Y8MztWKyspZm9yKFM9MDtTPDM7UysrKUNbVl1b''@;'; + put 'put ''U10qPXVbVl07cmV0dXJuIGZ1bmN0aW9uIGgoZyl7cmV0dXJuIDA9PWdbMF1bMl0mJjA9PWdbMF1bM10mJjA9PWdbMV1bMl0mJjA9PWdbMV1bM10mJjA9PWdbMl1bMF0mJjA9PWdbMl1bMV0mJjE9PWdbMl1bMl0mJjA9PWdbMl1bM10mJjA9PWdbM11bMl0mJjE9PWdbM11bM119KEMpP1tDWzBd''@;'; + put 'put ''WzBdLENbMF1bMV0sQ1sxXVswXSxDWzFdWzFdLENbM11bMF0sQ1szXVsxXV06Q1swXS5jb25jYXQoQ1sxXSxDWzJdLENbM10pfX0oKTtlLmNvbXBvc2VNYXRyaXg9YyxlLnF1YXQ9ZnVuY3Rpb24gYShvLGgsZil7dmFyIGc9ZS5kb3QobyxoKTtnPWZ1bmN0aW9uIHIobyxoLGYpe3JldHVybiBN''@;'; + put 'put ''YXRoLm1heChNYXRoLm1pbihvLGYpLGgpfShnLC0xLDEpO3ZhciB1PVtdO2lmKDE9PT1nKXU9bztlbHNlIGZvcih2YXIgcD1NYXRoLmFjb3MoZyksdj0xKk1hdGguc2luKGYqcCkvTWF0aC5zcXJ0KDEtZypnKSxIPTA7SDw0O0grKyl1LnB1c2gob1tIXSooTWF0aC5jb3MoZipwKS1nKnYpK2hb''@;'; + put 'put ''SF0qdik7cmV0dXJuIHV9fShGMSksZnVuY3Rpb24oZSxsLHIpe2Uuc2VxdWVuY2VOdW1iZXI9MDt2YXIgYT1mdW5jdGlvbihjLG8saCl7dGhpcy50YXJnZXQ9Yyx0aGlzLmN1cnJlbnRUaW1lPW8sdGhpcy50aW1lbGluZVRpbWU9aCx0aGlzLnR5cGU9ImZpbmlzaCIsdGhpcy5idWJibGVzPSEx''@;'; + put 'put ''LHRoaXMuY2FuY2VsYWJsZT0hMSx0aGlzLmN1cnJlbnRUYXJnZXQ9Yyx0aGlzLmRlZmF1bHRQcmV2ZW50ZWQ9ITEsdGhpcy5ldmVudFBoYXNlPUV2ZW50LkFUX1RBUkdFVCx0aGlzLnRpbWVTdGFtcD1EYXRlLm5vdygpfTtsLkFuaW1hdGlvbj1mdW5jdGlvbihjKXt0aGlzLmlkPSIiLGMmJmMu''@;'; + put 'put ''X2lkJiYodGhpcy5pZD1jLl9pZCksdGhpcy5fc2VxdWVuY2VOdW1iZXI9ZS5zZXF1ZW5jZU51bWJlcisrLHRoaXMuX2N1cnJlbnRUaW1lPTAsdGhpcy5fc3RhcnRUaW1lPW51bGwsdGhpcy5fcGF1c2VkPSExLHRoaXMuX3BsYXliYWNrUmF0ZT0xLHRoaXMuX2luVGltZWxpbmU9ITAsdGhpcy5f''@;'; + put 'put ''ZmluaXNoZWRGbGFnPSEwLHRoaXMub25maW5pc2g9bnVsbCx0aGlzLl9maW5pc2hIYW5kbGVycz1bXSx0aGlzLl9lZmZlY3Q9Yyx0aGlzLl9pbkVmZmVjdD10aGlzLl9lZmZlY3QuX3VwZGF0ZSgwKSx0aGlzLl9pZGxlPSEwLHRoaXMuX2N1cnJlbnRUaW1lUGVuZGluZz0hMX0sbC5BbmltYXRp''@;'; + put 'put ''b24ucHJvdG90eXBlPXtfZW5zdXJlQWxpdmU6ZnVuY3Rpb24oKXt0aGlzLl9pbkVmZmVjdD10aGlzLl9lZmZlY3QuX3VwZGF0ZSh0aGlzLnBsYXliYWNrUmF0ZTwwJiYwPT09dGhpcy5jdXJyZW50VGltZT8tMTp0aGlzLmN1cnJlbnRUaW1lKSx0aGlzLl9pblRpbWVsaW5lfHwhdGhpcy5faW5F''@;'; + put 'put ''ZmZlY3QmJnRoaXMuX2ZpbmlzaGVkRmxhZ3x8KHRoaXMuX2luVGltZWxpbmU9ITAsbC50aW1lbGluZS5fYW5pbWF0aW9ucy5wdXNoKHRoaXMpKX0sX3RpY2tDdXJyZW50VGltZTpmdW5jdGlvbihjLG8pe2MhPXRoaXMuX2N1cnJlbnRUaW1lJiYodGhpcy5fY3VycmVudFRpbWU9Yyx0aGlzLl9p''@;'; + put 'put ''c0ZpbmlzaGVkJiYhbyYmKHRoaXMuX2N1cnJlbnRUaW1lPXRoaXMuX3BsYXliYWNrUmF0ZT4wP3RoaXMuX3RvdGFsRHVyYXRpb246MCksdGhpcy5fZW5zdXJlQWxpdmUoKSl9LGdldCBjdXJyZW50VGltZSgpe3JldHVybiB0aGlzLl9pZGxlfHx0aGlzLl9jdXJyZW50VGltZVBlbmRpbmc/bnVs''@;'; + put 'put ''bDp0aGlzLl9jdXJyZW50VGltZX0sc2V0IGN1cnJlbnRUaW1lKGMpe2M9K2MsaXNOYU4oYyl8fChsLnJlc3RhcnQoKSx0aGlzLl9wYXVzZWR8fG51bGw9PXRoaXMuX3N0YXJ0VGltZXx8KHRoaXMuX3N0YXJ0VGltZT10aGlzLl90aW1lbGluZS5jdXJyZW50VGltZS1jL3RoaXMuX3BsYXliYWNr''@;'; + put 'put ''UmF0ZSksdGhpcy5fY3VycmVudFRpbWVQZW5kaW5nPSExLHRoaXMuX2N1cnJlbnRUaW1lIT1jJiYodGhpcy5faWRsZSYmKHRoaXMuX2lkbGU9ITEsdGhpcy5fcGF1c2VkPSEwKSx0aGlzLl90aWNrQ3VycmVudFRpbWUoYywhMCksbC5hcHBseURpcnRpZWRBbmltYXRpb24odGhpcykpKX0sZ2V0''@;'; + put 'put ''IHN0YXJ0VGltZSgpe3JldHVybiB0aGlzLl9zdGFydFRpbWV9LHNldCBzdGFydFRpbWUoYyl7Yz0rYyxpc05hTihjKXx8dGhpcy5fcGF1c2VkfHx0aGlzLl9pZGxlfHwodGhpcy5fc3RhcnRUaW1lPWMsdGhpcy5fdGlja0N1cnJlbnRUaW1lKCh0aGlzLl90aW1lbGluZS5jdXJyZW50VGltZS10''@;'; + put 'put ''aGlzLl9zdGFydFRpbWUpKnRoaXMucGxheWJhY2tSYXRlKSxsLmFwcGx5RGlydGllZEFuaW1hdGlvbih0aGlzKSl9LGdldCBwbGF5YmFja1JhdGUoKXtyZXR1cm4gdGhpcy5fcGxheWJhY2tSYXRlfSxzZXQgcGxheWJhY2tSYXRlKGMpe2lmKGMhPXRoaXMuX3BsYXliYWNrUmF0ZSl7dmFyIG89''@;'; + put 'put ''dGhpcy5jdXJyZW50VGltZTt0aGlzLl9wbGF5YmFja1JhdGU9Yyx0aGlzLl9zdGFydFRpbWU9bnVsbCwicGF1c2VkIiE9dGhpcy5wbGF5U3RhdGUmJiJpZGxlIiE9dGhpcy5wbGF5U3RhdGUmJih0aGlzLl9maW5pc2hlZEZsYWc9ITEsdGhpcy5faWRsZT0hMSx0aGlzLl9lbnN1cmVBbGl2ZSgp''@;'; + put 'put ''LGwuYXBwbHlEaXJ0aWVkQW5pbWF0aW9uKHRoaXMpKSxudWxsIT1vJiYodGhpcy5jdXJyZW50VGltZT1vKX19LGdldCBfaXNGaW5pc2hlZCgpe3JldHVybiF0aGlzLl9pZGxlJiYodGhpcy5fcGxheWJhY2tSYXRlPjAmJnRoaXMuX2N1cnJlbnRUaW1lPj10aGlzLl90b3RhbER1cmF0aW9ufHx0''@;'; + put 'put ''aGlzLl9wbGF5YmFja1JhdGU8MCYmdGhpcy5fY3VycmVudFRpbWU8PTApfSxnZXQgX3RvdGFsRHVyYXRpb24oKXtyZXR1cm4gdGhpcy5fZWZmZWN0Ll90b3RhbER1cmF0aW9ufSxnZXQgcGxheVN0YXRlKCl7cmV0dXJuIHRoaXMuX2lkbGU/ImlkbGUiOm51bGw9PXRoaXMuX3N0YXJ0VGltZSYm''@;'; + put 'put ''IXRoaXMuX3BhdXNlZCYmMCE9dGhpcy5wbGF5YmFja1JhdGV8fHRoaXMuX2N1cnJlbnRUaW1lUGVuZGluZz8icGVuZGluZyI6dGhpcy5fcGF1c2VkPyJwYXVzZWQiOnRoaXMuX2lzRmluaXNoZWQ/ImZpbmlzaGVkIjoicnVubmluZyJ9LF9yZXdpbmQ6ZnVuY3Rpb24oKXtpZih0aGlzLl9wbGF5''@;'; + put 'put ''YmFja1JhdGU+PTApdGhpcy5fY3VycmVudFRpbWU9MDtlbHNle2lmKCEodGhpcy5fdG90YWxEdXJhdGlvbjwxLzApKXRocm93IG5ldyBET01FeGNlcHRpb24oIlVuYWJsZSB0byByZXdpbmQgbmVnYXRpdmUgcGxheWJhY2sgcmF0ZSBhbmltYXRpb24gd2l0aCBpbmZpbml0ZSBkdXJhdGlvbiIs''@;'; + put 'put ''IkludmFsaWRTdGF0ZUVycm9yIik7dGhpcy5fY3VycmVudFRpbWU9dGhpcy5fdG90YWxEdXJhdGlvbn19LHBsYXk6ZnVuY3Rpb24oKXt0aGlzLl9wYXVzZWQ9ITEsKHRoaXMuX2lzRmluaXNoZWR8fHRoaXMuX2lkbGUpJiYodGhpcy5fcmV3aW5kKCksdGhpcy5fc3RhcnRUaW1lPW51bGwpLHRo''@;'; + put 'put ''aXMuX2ZpbmlzaGVkRmxhZz0hMSx0aGlzLl9pZGxlPSExLHRoaXMuX2Vuc3VyZUFsaXZlKCksbC5hcHBseURpcnRpZWRBbmltYXRpb24odGhpcyl9LHBhdXNlOmZ1bmN0aW9uKCl7dGhpcy5faXNGaW5pc2hlZHx8dGhpcy5fcGF1c2VkfHx0aGlzLl9pZGxlP3RoaXMuX2lkbGUmJih0aGlzLl9y''@;'; + put 'put ''ZXdpbmQoKSx0aGlzLl9pZGxlPSExKTp0aGlzLl9jdXJyZW50VGltZVBlbmRpbmc9ITAsdGhpcy5fc3RhcnRUaW1lPW51bGwsdGhpcy5fcGF1c2VkPSEwfSxmaW5pc2g6ZnVuY3Rpb24oKXt0aGlzLl9pZGxlfHwodGhpcy5jdXJyZW50VGltZT10aGlzLl9wbGF5YmFja1JhdGU+MD90aGlzLl90''@;'; + put 'put ''b3RhbER1cmF0aW9uOjAsdGhpcy5fc3RhcnRUaW1lPXRoaXMuX3RvdGFsRHVyYXRpb24tdGhpcy5jdXJyZW50VGltZSx0aGlzLl9jdXJyZW50VGltZVBlbmRpbmc9ITEsbC5hcHBseURpcnRpZWRBbmltYXRpb24odGhpcykpfSxjYW5jZWw6ZnVuY3Rpb24oKXt0aGlzLl9pbkVmZmVjdCYmKHRo''@;'; + put 'put ''aXMuX2luRWZmZWN0PSExLHRoaXMuX2lkbGU9ITAsdGhpcy5fcGF1c2VkPSExLHRoaXMuX2ZpbmlzaGVkRmxhZz0hMCx0aGlzLl9jdXJyZW50VGltZT0wLHRoaXMuX3N0YXJ0VGltZT1udWxsLHRoaXMuX2VmZmVjdC5fdXBkYXRlKG51bGwpLGwuYXBwbHlEaXJ0aWVkQW5pbWF0aW9uKHRoaXMp''@;'; + put 'put ''KX0scmV2ZXJzZTpmdW5jdGlvbigpe3RoaXMucGxheWJhY2tSYXRlKj0tMSx0aGlzLnBsYXkoKX0sYWRkRXZlbnRMaXN0ZW5lcjpmdW5jdGlvbihjLG8peyJmdW5jdGlvbiI9PXR5cGVvZiBvJiYiZmluaXNoIj09YyYmdGhpcy5fZmluaXNoSGFuZGxlcnMucHVzaChvKX0scmVtb3ZlRXZlbnRM''@;'; + put 'put ''aXN0ZW5lcjpmdW5jdGlvbihjLG8pe2lmKCJmaW5pc2giPT1jKXt2YXIgaD10aGlzLl9maW5pc2hIYW5kbGVycy5pbmRleE9mKG8pO2g+PTAmJnRoaXMuX2ZpbmlzaEhhbmRsZXJzLnNwbGljZShoLDEpfX0sX2ZpcmVFdmVudHM6ZnVuY3Rpb24oYyl7aWYodGhpcy5faXNGaW5pc2hlZCl7aWYo''@;'; + put 'put ''IXRoaXMuX2ZpbmlzaGVkRmxhZyl7dmFyIG89bmV3IGEodGhpcyx0aGlzLl9jdXJyZW50VGltZSxjKSxoPXRoaXMuX2ZpbmlzaEhhbmRsZXJzLmNvbmNhdCh0aGlzLm9uZmluaXNoP1t0aGlzLm9uZmluaXNoXTpbXSk7c2V0VGltZW91dChmdW5jdGlvbigpe2guZm9yRWFjaChmdW5jdGlvbihm''@;'; + put 'put ''KXtmLmNhbGwoby50YXJnZXQsbyl9KX0sMCksdGhpcy5fZmluaXNoZWRGbGFnPSEwfX1lbHNlIHRoaXMuX2ZpbmlzaGVkRmxhZz0hMX0sX3RpY2s6ZnVuY3Rpb24oYyxvKXt0aGlzLl9pZGxlfHx0aGlzLl9wYXVzZWR8fChudWxsPT10aGlzLl9zdGFydFRpbWU/byYmKHRoaXMuc3RhcnRUaW1l''@;'; + put 'put ''PWMtdGhpcy5fY3VycmVudFRpbWUvdGhpcy5wbGF5YmFja1JhdGUpOnRoaXMuX2lzRmluaXNoZWR8fHRoaXMuX3RpY2tDdXJyZW50VGltZSgoYy10aGlzLl9zdGFydFRpbWUpKnRoaXMucGxheWJhY2tSYXRlKSksbyYmKHRoaXMuX2N1cnJlbnRUaW1lUGVuZGluZz0hMSx0aGlzLl9maXJlRXZl''@;'; + put 'put ''bnRzKGMpKX0sZ2V0IF9uZWVkc1RpY2soKXtyZXR1cm4gdGhpcy5wbGF5U3RhdGUgaW57cGVuZGluZzoxLHJ1bm5pbmc6MX18fCF0aGlzLl9maW5pc2hlZEZsYWd9LF90YXJnZXRBbmltYXRpb25zOmZ1bmN0aW9uKCl7dmFyIGM9dGhpcy5fZWZmZWN0Ll90YXJnZXQ7cmV0dXJuIGMuX2FjdGl2''@;'; + put 'put ''ZUFuaW1hdGlvbnN8fChjLl9hY3RpdmVBbmltYXRpb25zPVtdKSxjLl9hY3RpdmVBbmltYXRpb25zfSxfbWFya1RhcmdldDpmdW5jdGlvbigpe3ZhciBjPXRoaXMuX3RhcmdldEFuaW1hdGlvbnMoKTstMT09PWMuaW5kZXhPZih0aGlzKSYmYy5wdXNoKHRoaXMpfSxfdW5tYXJrVGFyZ2V0OmZ1''@;'; + put 'put ''bmN0aW9uKCl7dmFyIGM9dGhpcy5fdGFyZ2V0QW5pbWF0aW9ucygpLG89Yy5pbmRleE9mKHRoaXMpOy0xIT09byYmYy5zcGxpY2UobywxKX19fShYLEYxKSxmdW5jdGlvbihlLGwscil7ZnVuY3Rpb24gYShiKXt2YXIgTT11O3U9W10sYjxfLmN1cnJlbnRUaW1lJiYoYj1fLmN1cnJlbnRUaW1l''@;'; + put 'put ''KSxfLl9hbmltYXRpb25zLnNvcnQoYyksXy5fYW5pbWF0aW9ucz1mKGIsITAsXy5fYW5pbWF0aW9ucylbMF0sTS5mb3JFYWNoKGZ1bmN0aW9uKHgpe3hbMV0oYil9KSxoKCl9ZnVuY3Rpb24gYyhiLE0pe3JldHVybiBiLl9zZXF1ZW5jZU51bWJlci1NLl9zZXF1ZW5jZU51bWJlcn1mdW5jdGlv''@;'; + put 'put ''biBvKCl7dGhpcy5fYW5pbWF0aW9ucz1bXSx0aGlzLmN1cnJlbnRUaW1lPXdpbmRvdy5wZXJmb3JtYW5jZSYmcGVyZm9ybWFuY2Uubm93P3BlcmZvcm1hbmNlLm5vdygpOjB9ZnVuY3Rpb24gaCgpe1YuZm9yRWFjaChmdW5jdGlvbihiKXtiKCl9KSxWLmxlbmd0aD0wfWZ1bmN0aW9uIGYoYixN''@;'; + put 'put ''LHgpe1M9ITAsQz0hMSxsLnRpbWVsaW5lLmN1cnJlbnRUaW1lPWIsSD0hMTt2YXIgRT1bXSx3PVtdLE49W10sST1bXTtyZXR1cm4geC5mb3JFYWNoKGZ1bmN0aW9uKFcpe1cuX3RpY2soYixNKSxXLl9pbkVmZmVjdD8ody5wdXNoKFcuX2VmZmVjdCksVy5fbWFya1RhcmdldCgpKTooRS5wdXNo''@;'; + put 'put ''KFcuX2VmZmVjdCksVy5fdW5tYXJrVGFyZ2V0KCkpLFcuX25lZWRzVGljayYmKEg9ITApO3ZhciBPPVcuX2luRWZmZWN0fHxXLl9uZWVkc1RpY2s7Vy5faW5UaW1lbGluZT1PLE8/Ti5wdXNoKFcpOkkucHVzaChXKX0pLFYucHVzaC5hcHBseShWLEUpLFYucHVzaC5hcHBseShWLHcpLEgmJnJl''@;'; + put 'put ''cXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpe30pLFM9ITEsW04sSV19dmFyIGc9d2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSx1PVtdLHA9MDt3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lPWZ1bmN0aW9uKGIpe3ZhciBNPXArKztyZXR1cm4gMD09dS5sZW5ndGgmJmcoYSks''@;'; + put 'put ''dS5wdXNoKFtNLGJdKSxNfSx3aW5kb3cuY2FuY2VsQW5pbWF0aW9uRnJhbWU9ZnVuY3Rpb24oYil7dS5mb3JFYWNoKGZ1bmN0aW9uKE0pe01bMF09PWImJihNWzFdPWZ1bmN0aW9uKCl7fSl9KX0sby5wcm90b3R5cGU9e19wbGF5OmZ1bmN0aW9uKGIpe2IuX3RpbWluZz1lLm5vcm1hbGl6ZVRp''@;'; + put 'put ''bWluZ0lucHV0KGIudGltaW5nKTt2YXIgTT1uZXcgbC5BbmltYXRpb24oYik7cmV0dXJuIE0uX2lkbGU9ITEsTS5fdGltZWxpbmU9dGhpcyx0aGlzLl9hbmltYXRpb25zLnB1c2goTSksbC5yZXN0YXJ0KCksbC5hcHBseURpcnRpZWRBbmltYXRpb24oTSksTX19O3ZhciBIPSExLEM9ITE7bC5y''@;'; + put 'put ''ZXN0YXJ0PWZ1bmN0aW9uKCl7cmV0dXJuIEh8fChIPSEwLHJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpe30pLEM9ITApLEN9LGwuYXBwbHlEaXJ0aWVkQW5pbWF0aW9uPWZ1bmN0aW9uKGIpe2lmKCFTKXtiLl9tYXJrVGFyZ2V0KCk7dmFyIE09Yi5fdGFyZ2V0QW5pbWF0aW9ucygp''@;'; + put 'put ''O00uc29ydChjKSxmKGwudGltZWxpbmUuY3VycmVudFRpbWUsITEsTS5zbGljZSgpKVsxXS5mb3JFYWNoKGZ1bmN0aW9uKHgpe3ZhciBFPV8uX2FuaW1hdGlvbnMuaW5kZXhPZih4KTstMSE9PUUmJl8uX2FuaW1hdGlvbnMuc3BsaWNlKEUsMSl9KSxoKCl9fTt2YXIgVj1bXSxTPSExLF89bmV3''@;'; + put 'put ''IG87bC50aW1lbGluZT1ffShYLEYxKSxmdW5jdGlvbihlLGwpe2Z1bmN0aW9uIHIodSxwKXtmb3IodmFyIHY9MCxIPTA7SDx1Lmxlbmd0aDtIKyspdis9dVtIXSpwW0hdO3JldHVybiB2fWZ1bmN0aW9uIGEodSxwKXtyZXR1cm5bdVswXSpwWzBdK3VbNF0qcFsxXSt1WzhdKnBbMl0rdVsxMl0q''@;'; + put 'put ''cFszXSx1WzFdKnBbMF0rdVs1XSpwWzFdK3VbOV0qcFsyXSt1WzEzXSpwWzNdLHVbMl0qcFswXSt1WzZdKnBbMV0rdVsxMF0qcFsyXSt1WzE0XSpwWzNdLHVbM10qcFswXSt1WzddKnBbMV0rdVsxMV0qcFsyXSt1WzE1XSpwWzNdLHVbMF0qcFs0XSt1WzRdKnBbNV0rdVs4XSpwWzZdK3VbMTJd''@;'; + put 'put ''KnBbN10sdVsxXSpwWzRdK3VbNV0qcFs1XSt1WzldKnBbNl0rdVsxM10qcFs3XSx1WzJdKnBbNF0rdVs2XSpwWzVdK3VbMTBdKnBbNl0rdVsxNF0qcFs3XSx1WzNdKnBbNF0rdVs3XSpwWzVdK3VbMTFdKnBbNl0rdVsxNV0qcFs3XSx1WzBdKnBbOF0rdVs0XSpwWzldK3VbOF0qcFsxMF0rdVsx''@;'; + put 'put ''Ml0qcFsxMV0sdVsxXSpwWzhdK3VbNV0qcFs5XSt1WzldKnBbMTBdK3VbMTNdKnBbMTFdLHVbMl0qcFs4XSt1WzZdKnBbOV0rdVsxMF0qcFsxMF0rdVsxNF0qcFsxMV0sdVszXSpwWzhdK3VbN10qcFs5XSt1WzExXSpwWzEwXSt1WzE1XSpwWzExXSx1WzBdKnBbMTJdK3VbNF0qcFsxM10rdVs4''@;'; + put 'put ''XSpwWzE0XSt1WzEyXSpwWzE1XSx1WzFdKnBbMTJdK3VbNV0qcFsxM10rdVs5XSpwWzE0XSt1WzEzXSpwWzE1XSx1WzJdKnBbMTJdK3VbNl0qcFsxM10rdVsxMF0qcFsxNF0rdVsxNF0qcFsxNV0sdVszXSpwWzEyXSt1WzddKnBbMTNdK3VbMTFdKnBbMTRdK3VbMTVdKnBbMTVdXX1mdW5jdGlv''@;'; + put 'put ''biBjKHUpe3JldHVybigodS5kZWd8fDApLzM2MCsodS5ncmFkfHwwKS80MDArKHUudHVybnx8MCkpKigyKk1hdGguUEkpKyh1LnJhZHx8MCl9ZnVuY3Rpb24gbyh1KXtzd2l0Y2godS50KXtjYXNlInJvdGF0ZXgiOnZhciBiPWModS5kWzBdKTtyZXR1cm5bMSwwLDAsMCwwLE1hdGguY29zKGIp''@;'; + put 'put ''LE1hdGguc2luKGIpLDAsMCwtTWF0aC5zaW4oYiksTWF0aC5jb3MoYiksMCwwLDAsMCwxXTtjYXNlInJvdGF0ZXkiOnJldHVybiBiPWModS5kWzBdKSxbTWF0aC5jb3MoYiksMCwtTWF0aC5zaW4oYiksMCwwLDEsMCwwLE1hdGguc2luKGIpLDAsTWF0aC5jb3MoYiksMCwwLDAsMCwxXTtjYXNl''@;'; + put 'put ''InJvdGF0ZSI6Y2FzZSJyb3RhdGV6IjpyZXR1cm4gYj1jKHUuZFswXSksW01hdGguY29zKGIpLE1hdGguc2luKGIpLDAsMCwtTWF0aC5zaW4oYiksTWF0aC5jb3MoYiksMCwwLDAsMCwxLDAsMCwwLDAsMV07Y2FzZSJyb3RhdGUzZCI6dmFyIE09dS5kWzBdLHg9dS5kWzFdLEU9dS5kWzJdLHA9''@;'; + put 'put ''KGI9Yyh1LmRbM10pLE0qTSt4KngrRSpFKTtpZigwPT09cClNPTEseD0wLEU9MDtlbHNlIGlmKDEhPT1wKXt2YXIgdj1NYXRoLnNxcnQocCk7TS89dix4Lz12LEUvPXZ9dmFyIEg9TWF0aC5zaW4oYi8yKSxDPUgqTWF0aC5jb3MoYi8yKSxWPUgqSDtyZXR1cm5bMS0yKih4KngrRSpFKSpWLDIq''@;'; + put 'put ''KE0qeCpWK0UqQyksMiooTSpFKlYteCpDKSwwLDIqKE0qeCpWLUUqQyksMS0yKihNKk0rRSpFKSpWLDIqKHgqRSpWK00qQyksMCwyKihNKkUqVit4KkMpLDIqKHgqRSpWLU0qQyksMS0yKihNKk0reCp4KSpWLDAsMCwwLDAsMV07Y2FzZSJzY2FsZSI6cmV0dXJuW3UuZFswXSwwLDAsMCwwLHUu''@;'; + put 'put ''ZFsxXSwwLDAsMCwwLDEsMCwwLDAsMCwxXTtjYXNlInNjYWxleCI6cmV0dXJuW3UuZFswXSwwLDAsMCwwLDEsMCwwLDAsMCwxLDAsMCwwLDAsMV07Y2FzZSJzY2FsZXkiOnJldHVyblsxLDAsMCwwLDAsdS5kWzBdLDAsMCwwLDAsMSwwLDAsMCwwLDFdO2Nhc2Uic2NhbGV6IjpyZXR1cm5bMSww''@;'; + put 'put ''LDAsMCwwLDEsMCwwLDAsMCx1LmRbMF0sMCwwLDAsMCwxXTtjYXNlInNjYWxlM2QiOnJldHVyblt1LmRbMF0sMCwwLDAsMCx1LmRbMV0sMCwwLDAsMCx1LmRbMl0sMCwwLDAsMCwxXTtjYXNlInNrZXciOnZhciBTPWModS5kWzBdKSxfPWModS5kWzFdKTtyZXR1cm5bMSxNYXRoLnRhbihfKSww''@;'; + put 'put ''LDAsTWF0aC50YW4oUyksMSwwLDAsMCwwLDEsMCwwLDAsMCwxXTtjYXNlInNrZXd4IjpyZXR1cm4gYj1jKHUuZFswXSksWzEsMCwwLDAsTWF0aC50YW4oYiksMSwwLDAsMCwwLDEsMCwwLDAsMCwxXTtjYXNlInNrZXd5IjpyZXR1cm4gYj1jKHUuZFswXSksWzEsTWF0aC50YW4oYiksMCwwLDAs''@;'; + put 'put ''MSwwLDAsMCwwLDEsMCwwLDAsMCwxXTtjYXNlInRyYW5zbGF0ZSI6cmV0dXJuWzEsMCwwLDAsMCwxLDAsMCwwLDAsMSwwLE09dS5kWzBdLnB4fHwwLHg9dS5kWzFdLnB4fHwwLDAsMV07Y2FzZSJ0cmFuc2xhdGV4IjpyZXR1cm5bMSwwLDAsMCwwLDEsMCwwLDAsMCwxLDAsTT11LmRbMF0ucHh8''@;'; + put 'put ''fDAsMCwwLDFdO2Nhc2UidHJhbnNsYXRleSI6cmV0dXJuWzEsMCwwLDAsMCwxLDAsMCwwLDAsMSwwLDAseD11LmRbMF0ucHh8fDAsMCwxXTtjYXNlInRyYW5zbGF0ZXoiOnJldHVyblsxLDAsMCwwLDAsMSwwLDAsMCwwLDEsMCwwLDAsRT11LmRbMF0ucHh8fDAsMV07Y2FzZSJ0cmFuc2xhdGUz''@;'; + put 'put ''ZCI6cmV0dXJuWzEsMCwwLDAsMCwxLDAsMCwwLDAsMSwwLE09dS5kWzBdLnB4fHwwLHg9dS5kWzFdLnB4fHwwLEU9dS5kWzJdLnB4fHwwLDFdO2Nhc2UicGVyc3BlY3RpdmUiOnJldHVyblsxLDAsMCwwLDAsMSwwLDAsMCwwLDEsdS5kWzBdLnB4Py0xL3UuZFswXS5weDowLDAsMCwwLDFdO2Nh''@;'; + put 'put ''c2UibWF0cml4IjpyZXR1cm5bdS5kWzBdLHUuZFsxXSwwLDAsdS5kWzJdLHUuZFszXSwwLDAsMCwwLDEsMCx1LmRbNF0sdS5kWzVdLDAsMV07Y2FzZSJtYXRyaXgzZCI6cmV0dXJuIHUuZH19ZnVuY3Rpb24gaCh1KXtyZXR1cm4gMD09PXUubGVuZ3RoP1sxLDAsMCwwLDAsMSwwLDAsMCwwLDEs''@;'; + put 'put ''MCwwLDAsMCwxXTp1Lm1hcChvKS5yZWR1Y2UoYSl9dmFyIGc9ZnVuY3Rpb24oKXtmdW5jdGlvbiB1KE0pe3JldHVybiBNWzBdWzBdKk1bMV1bMV0qTVsyXVsyXStNWzFdWzBdKk1bMl1bMV0qTVswXVsyXStNWzJdWzBdKk1bMF1bMV0qTVsxXVsyXS1NWzBdWzJdKk1bMV1bMV0qTVsyXVswXS1N''@;'; + put 'put ''WzFdWzJdKk1bMl1bMV0qTVswXVswXS1NWzJdWzJdKk1bMF1bMV0qTVsxXVswXX1mdW5jdGlvbiBDKE0pe3ZhciB4PVYoTSk7cmV0dXJuW01bMF0veCxNWzFdL3gsTVsyXS94XX1mdW5jdGlvbiBWKE0pe3JldHVybiBNYXRoLnNxcnQoTVswXSpNWzBdK01bMV0qTVsxXStNWzJdKk1bMl0pfWZ1''@;'; + put 'put ''bmN0aW9uIFMoTSx4LEUsdyl7cmV0dXJuW0UqTVswXSt3KnhbMF0sRSpNWzFdK3cqeFsxXSxFKk1bMl0rdyp4WzJdXX1yZXR1cm4gZnVuY3Rpb24gYihNKXt2YXIgeD1bTS5zbGljZSgwLDQpLE0uc2xpY2UoNCw4KSxNLnNsaWNlKDgsMTIpLE0uc2xpY2UoMTIsMTYpXTtpZigxIT09eFszXVsz''@;'; + put 'put ''XSlyZXR1cm4gbnVsbDtmb3IodmFyIEU9W10sdz0wO3c8NDt3KyspRS5wdXNoKHhbd10uc2xpY2UoKSk7Zm9yKHc9MDt3PDM7dysrKUVbd11bM109MDtpZigwPT09dShFKSlyZXR1cm4gbnVsbDt2YXIgTixJPVtdO3hbMF1bM118fHhbMV1bM118fHhbMl1bM10/KEkucHVzaCh4WzBdWzNdKSxJ''@;'; + put 'put ''LnB1c2goeFsxXVszXSksSS5wdXNoKHhbMl1bM10pLEkucHVzaCh4WzNdWzNdKSxOPWZ1bmN0aW9uIEgoTSx4KXtmb3IodmFyIEU9W10sdz0wO3c8NDt3Kyspe2Zvcih2YXIgTj0wLEk9MDtJPDQ7SSsrKU4rPU1bSV0qeFtJXVt3XTtFLnB1c2goTil9cmV0dXJuIEV9KEksZnVuY3Rpb24gdihN''@;'; + put 'put ''KXtyZXR1cm5bW01bMF1bMF0sTVsxXVswXSxNWzJdWzBdLE1bM11bMF1dLFtNWzBdWzFdLE1bMV1bMV0sTVsyXVsxXSxNWzNdWzFdXSxbTVswXVsyXSxNWzFdWzJdLE1bMl1bMl0sTVszXVsyXV0sW01bMF1bM10sTVsxXVszXSxNWzJdWzNdLE1bM11bM11dXX0oZnVuY3Rpb24gcChNKXtmb3Io''@;'; + put 'put ''dmFyIHg9MS91KE0pLEU9TVswXVswXSx3PU1bMF1bMV0sTj1NWzBdWzJdLEk9TVsxXVswXSxXPU1bMV1bMV0sTz1NWzFdWzJdLEI9TVsyXVswXSxSPU1bMl1bMV0sbDE9TVsyXVsyXSxhMT1bWyhXKmwxLU8qUikqeCwoTipSLXcqbDEpKngsKHcqTy1OKlcpKngsMF0sWyhPKkItSSpsMSkqeCwo''@;'; + put 'put ''RSpsMS1OKkIpKngsKE4qSS1FKk8pKngsMF0sWyhJKlItVypCKSp4LChCKnctRSpSKSp4LChFKlctdypJKSp4LDBdXSxoMT1bXSx1MT0wO3UxPDM7dTErKyl7Zm9yKHZhciBwMT0wLHYxPTA7djE8Mzt2MSsrKXAxKz1NWzNdW3YxXSphMVt2MV1bdTFdO2gxLnB1c2gocDEpfXJldHVybiBoMS5w''@;'; + put 'put ''dXNoKDEpLGExLnB1c2goaDEpLGExfShFKSkpKTpOPVswLDAsMCwxXTt2YXIgVz14WzNdLnNsaWNlKDAsMyksTz1bXTtPLnB1c2goeFswXS5zbGljZSgwLDMpKTt2YXIgQj1bXTtCLnB1c2goVihPWzBdKSksT1swXT1DKE9bMF0pO3ZhciBSPVtdO08ucHVzaCh4WzFdLnNsaWNlKDAsMykpLFIu''@;'; + put 'put ''cHVzaChyKE9bMF0sT1sxXSkpLE9bMV09UyhPWzFdLE9bMF0sMSwtUlswXSksQi5wdXNoKFYoT1sxXSkpLE9bMV09QyhPWzFdKSxSWzBdLz1CWzFdLE8ucHVzaCh4WzJdLnNsaWNlKDAsMykpLFIucHVzaChyKE9bMF0sT1syXSkpLE9bMl09UyhPWzJdLE9bMF0sMSwtUlsxXSksUi5wdXNoKHIo''@;'; + put 'put ''T1sxXSxPWzJdKSksT1syXT1TKE9bMl0sT1sxXSwxLC1SWzJdKSxCLnB1c2goVihPWzJdKSksT1syXT1DKE9bMl0pLFJbMV0vPUJbMl0sUlsyXS89QlsyXTt2YXIgbDE9ZnVuY3Rpb24gXyhNLHgpe3JldHVybltNWzFdKnhbMl0tTVsyXSp4WzFdLE1bMl0qeFswXS1NWzBdKnhbMl0sTVswXSp4''@;'; + put 'put ''WzFdLU1bMV0qeFswXV19KE9bMV0sT1syXSk7aWYocihPWzBdLGwxKTwwKWZvcih3PTA7dzwzO3crKylCW3ddKj0tMSxPW3ddWzBdKj0tMSxPW3ddWzFdKj0tMSxPW3ddWzJdKj0tMTt2YXIgYTEsaDEsdTE9T1swXVswXStPWzFdWzFdK09bMl1bMl0rMTtyZXR1cm4gdTE+MWUtND8oYTE9LjUv''@;'; + put 'put ''TWF0aC5zcXJ0KHUxKSxoMT1bKE9bMl1bMV0tT1sxXVsyXSkqYTEsKE9bMF1bMl0tT1syXVswXSkqYTEsKE9bMV1bMF0tT1swXVsxXSkqYTEsLjI1L2ExXSk6T1swXVswXT5PWzFdWzFdJiZPWzBdWzBdPk9bMl1bMl0/aDE9Wy4yNSooYTE9MipNYXRoLnNxcnQoMStPWzBdWzBdLU9bMV1bMV0t''@;'; + put 'put ''T1syXVsyXSkpLChPWzBdWzFdK09bMV1bMF0pL2ExLChPWzBdWzJdK09bMl1bMF0pL2ExLChPWzJdWzFdLU9bMV1bMl0pL2ExXTpPWzFdWzFdPk9bMl1bMl0/KGExPTIqTWF0aC5zcXJ0KDErT1sxXVsxXS1PWzBdWzBdLU9bMl1bMl0pLGgxPVsoT1swXVsxXStPWzFdWzBdKS9hMSwuMjUqYTEs''@;'; + put 'put ''KE9bMV1bMl0rT1syXVsxXSkvYTEsKE9bMF1bMl0tT1syXVswXSkvYTFdKTooYTE9MipNYXRoLnNxcnQoMStPWzJdWzJdLU9bMF1bMF0tT1sxXVsxXSksaDE9WyhPWzBdWzJdK09bMl1bMF0pL2ExLChPWzFdWzJdK09bMl1bMV0pL2ExLC4yNSphMSwoT1sxXVswXS1PWzBdWzFdKS9hMV0pLFtX''@;'; + put 'put ''LEIsUixoMSxOXX19KCk7ZS5kb3Q9cixlLm1ha2VNYXRyaXhEZWNvbXBvc2l0aW9uPWZ1bmN0aW9uIGYodSl7cmV0dXJuW2coaCh1KSldfSxlLnRyYW5zZm9ybUxpc3RUb01hdHJpeD1ofShGMSksZnVuY3Rpb24oZSl7ZnVuY3Rpb24gbCh2LEgpe3ZhciBDPXYuZXhlYyhIKTtpZihDKXJldHVy''@;'; + put 'put ''bltDPXYuaWdub3JlQ2FzZT9DWzBdLnRvTG93ZXJDYXNlKCk6Q1swXSxILnN1YnN0cihDLmxlbmd0aCldfWZ1bmN0aW9uIHIodixIKXt2YXIgQz12KEg9SC5yZXBsYWNlKC9eXHMqLywiIikpO2lmKEMpcmV0dXJuW0NbMF0sQ1sxXS5yZXBsYWNlKC9eXHMqLywiIildfWZ1bmN0aW9uIHUodixI''@;'; + put 'put ''LEMsVixTKXtmb3IodmFyIF89W10sYj1bXSxNPVtdLHg9ZnVuY3Rpb24gbyh2LEgpe2Zvcih2YXIgQz12LFY9SDtDJiZWOylDPlY/QyU9VjpWJT1DO3JldHVybiB2KkgvKEMrVil9KFYubGVuZ3RoLFMubGVuZ3RoKSxFPTA7RTx4O0UrKyl7dmFyIHc9SChWW0UlVi5sZW5ndGhdLFNbRSVTLmxl''@;'; + put 'put ''bmd0aF0pO2lmKCF3KXJldHVybjtfLnB1c2god1swXSksYi5wdXNoKHdbMV0pLE0ucHVzaCh3WzJdKX1yZXR1cm5bXyxiLGZ1bmN0aW9uKE4pe3ZhciBJPU4ubWFwKGZ1bmN0aW9uKFcsTyl7cmV0dXJuIE1bT10oVyl9KS5qb2luKEMpO3JldHVybiB2P3YoSSk6SX1dfWUuY29uc3VtZVRva2Vu''@;'; + put 'put ''PWwsZS5jb25zdW1lVHJpbW1lZD1yLGUuY29uc3VtZVJlcGVhdGVkPWZ1bmN0aW9uIGEodixILEMpe3Y9ci5iaW5kKG51bGwsdik7Zm9yKHZhciBWPVtdOzspe3ZhciBTPXYoQyk7aWYoIVMpcmV0dXJuW1YsQ107aWYoVi5wdXNoKFNbMF0pLCEoUz1sKEgsQz1TWzFdKSl8fCIiPT1TWzFdKXJl''@;'; + put 'put ''dHVybltWLENdO0M9U1sxXX19LGUuY29uc3VtZVBhcmVudGhlc2lzZWQ9ZnVuY3Rpb24gYyh2LEgpe2Zvcih2YXIgQz0wLFY9MDtWPEgubGVuZ3RoJiYoIS9cc3wsLy50ZXN0KEhbVl0pfHwwIT1DKTtWKyspaWYoIigiPT1IW1ZdKUMrKztlbHNlIGlmKCIpIj09SFtWXSYmKDA9PS0tQyYmVisr''@;'; + put 'put ''LEM8PTApKWJyZWFrO3ZhciBTPXYoSC5zdWJzdHIoMCxWKSk7cmV0dXJuIG51bGw9PVM/dm9pZCAwOltTLEguc3Vic3RyKFYpXX0sZS5pZ25vcmU9ZnVuY3Rpb24gaCh2KXtyZXR1cm4gZnVuY3Rpb24oSCl7dmFyIEM9dihIKTtyZXR1cm4gQyYmKENbMF09dm9pZCAwKSxDfX0sZS5vcHRpb25h''@;'; + put 'put ''bD1mdW5jdGlvbiBmKHYsSCl7cmV0dXJuIGZ1bmN0aW9uKEMpe3JldHVybiB2KEMpfHxbSCxDXX19LGUuY29uc3VtZUxpc3Q9ZnVuY3Rpb24gZyh2LEgpe2Zvcih2YXIgQz1bXSxWPTA7Vjx2Lmxlbmd0aDtWKyspe3ZhciBTPWUuY29uc3VtZVRyaW1tZWQodltWXSxIKTtpZighU3x8IiI9PVNb''@;'; + put 'put ''MF0pcmV0dXJuO3ZvaWQgMCE9PVNbMF0mJkMucHVzaChTWzBdKSxIPVNbMV19aWYoIiI9PUgpcmV0dXJuIEN9LGUubWVyZ2VOZXN0ZWRSZXBlYXRlZD11LmJpbmQobnVsbCxudWxsKSxlLm1lcmdlV3JhcHBlZE5lc3RlZFJlcGVhdGVkPXUsZS5tZXJnZUxpc3Q9ZnVuY3Rpb24gcCh2LEgsQyl7''@;'; + put 'put ''Zm9yKHZhciBWPVtdLFM9W10sXz1bXSxiPTAsTT0wO008Qy5sZW5ndGg7TSsrKWlmKCJmdW5jdGlvbiI9PXR5cGVvZiBDW01dKXt2YXIgeD1DW01dKHZbYl0sSFtiKytdKTtWLnB1c2goeFswXSksUy5wdXNoKHhbMV0pLF8ucHVzaCh4WzJdKX1lbHNlIWZ1bmN0aW9uKEUpe1YucHVzaCghMSks''@;'; + put 'put ''Uy5wdXNoKCExKSxfLnB1c2goZnVuY3Rpb24oKXtyZXR1cm4gQ1tFXX0pfShNKTtyZXR1cm5bVixTLGZ1bmN0aW9uKEUpe2Zvcih2YXIgdz0iIixOPTA7TjxFLmxlbmd0aDtOKyspdys9X1tOXShFW05dKTtyZXR1cm4gd31dfX0oRjEpLGZ1bmN0aW9uKGUpe2Z1bmN0aW9uIGwoaCl7dmFyIGc9''@;'; + put 'put ''e2luc2V0OiExLGxlbmd0aHM6W10sY29sb3I6bnVsbH0sdT1lLmNvbnN1bWVSZXBlYXRlZChmdW5jdGlvbiBmKHApe3ZhciB2PWUuY29uc3VtZVRva2VuKC9eaW5zZXQvaSxwKTtyZXR1cm4gdj8oZy5pbnNldD0hMCx2KToodj1lLmNvbnN1bWVMZW5ndGhPclBlcmNlbnQocCkpPyhnLmxlbmd0''@;'; + put 'put ''aHMucHVzaCh2WzBdKSx2KToodj1lLmNvbnN1bWVDb2xvcihwKSk/KGcuY29sb3I9dlswXSx2KTp2b2lkIDB9LC9eLyxoKTtpZih1JiZ1WzBdLmxlbmd0aClyZXR1cm5bZyx1WzFdXX12YXIgbz1mdW5jdGlvbiBjKGgsZixnLHUpe2Z1bmN0aW9uIHAoXyl7cmV0dXJue2luc2V0Ol8sY29sb3I6''@;'; + put 'put ''WzAsMCwwLDBdLGxlbmd0aHM6W3tweDowfSx7cHg6MH0se3B4OjB9LHtweDowfV19fWZvcih2YXIgdj1bXSxIPVtdLEM9MDtDPGcubGVuZ3RofHxDPHUubGVuZ3RoO0MrKyl7dmFyIFY9Z1tDXXx8cCh1W0NdLmluc2V0KSxTPXVbQ118fHAoZ1tDXS5pbnNldCk7di5wdXNoKFYpLEgucHVzaChT''@;'; + put 'put ''KX1yZXR1cm4gZS5tZXJnZU5lc3RlZFJlcGVhdGVkKGgsZix2LEgpfS5iaW5kKG51bGwsZnVuY3Rpb24gYShoLGYpe2Zvcig7aC5sZW5ndGhzLmxlbmd0aDxNYXRoLm1heChoLmxlbmd0aHMubGVuZ3RoLGYubGVuZ3Rocy5sZW5ndGgpOyloLmxlbmd0aHMucHVzaCh7cHg6MH0pO2Zvcig7Zi5s''@;'; + put 'put ''ZW5ndGhzLmxlbmd0aDxNYXRoLm1heChoLmxlbmd0aHMubGVuZ3RoLGYubGVuZ3Rocy5sZW5ndGgpOylmLmxlbmd0aHMucHVzaCh7cHg6MH0pO2lmKGguaW5zZXQ9PWYuaW5zZXQmJiEhaC5jb2xvcj09ISFmLmNvbG9yKXtmb3IodmFyIGcsdT1bXSxwPVtbXSwwXSx2PVtbXSwwXSxIPTA7SDxo''@;'; + put 'put ''Lmxlbmd0aHMubGVuZ3RoO0grKyl7dmFyIEM9ZS5tZXJnZURpbWVuc2lvbnMoaC5sZW5ndGhzW0hdLGYubGVuZ3Roc1tIXSwyPT1IKTtwWzBdLnB1c2goQ1swXSksdlswXS5wdXNoKENbMV0pLHUucHVzaChDWzJdKX1pZihoLmNvbG9yJiZmLmNvbG9yKXt2YXIgVj1lLm1lcmdlQ29sb3JzKGgu''@;'; + put 'put ''Y29sb3IsZi5jb2xvcik7cFsxXT1WWzBdLHZbMV09VlsxXSxnPVZbMl19cmV0dXJuW3AsdixmdW5jdGlvbihTKXtmb3IodmFyIF89aC5pbnNldD8iaW5zZXQgIjoiICIsYj0wO2I8dS5sZW5ndGg7YisrKV8rPXVbYl0oU1swXVtiXSkrIiAiO3JldHVybiBnJiYoXys9ZyhTWzFdKSksX31dfX0s''@;'; + put 'put ''IiwgIik7ZS5hZGRQcm9wZXJ0aWVzSGFuZGxlcihmdW5jdGlvbiByKGgpe3ZhciBmPWUuY29uc3VtZVJlcGVhdGVkKGwsL14sLyxoKTtpZihmJiYiIj09ZlsxXSlyZXR1cm4gZlswXX0sbyxbImJveC1zaGFkb3ciLCJ0ZXh0LXNoYWRvdyJdKX0oRjEpLGZ1bmN0aW9uKGUsbCl7ZnVuY3Rpb24g''@;'; + put 'put ''cihIKXtyZXR1cm4gSC50b0ZpeGVkKDMpLnJlcGxhY2UoLzArJC8sIiIpLnJlcGxhY2UoL1wuJC8sIiIpfWZ1bmN0aW9uIGEoSCxDLFYpe3JldHVybiBNYXRoLm1pbihDLE1hdGgubWF4KEgsVikpfWZ1bmN0aW9uIGMoSCl7aWYoL15ccypbLStdPyhcZCpcLik/XGQrXHMqJC8udGVzdChIKSly''@;'; + put 'put ''ZXR1cm4gTnVtYmVyKEgpfWZ1bmN0aW9uIGcoSCxDKXtyZXR1cm4gZnVuY3Rpb24oVixTKXtyZXR1cm5bVixTLGZ1bmN0aW9uKF8pe3JldHVybiByKGEoSCxDLF8pKX1dfX1mdW5jdGlvbiB1KEgpe3ZhciBDPUgudHJpbSgpLnNwbGl0KC9ccypbXHMsXVxzKi8pO2lmKDAhPT1DLmxlbmd0aCl7''@;'; + put 'put ''Zm9yKHZhciBWPVtdLFM9MDtTPEMubGVuZ3RoO1MrKyl7dmFyIF89YyhDW1NdKTtpZih2b2lkIDA9PT1fKXJldHVybjtWLnB1c2goXyl9cmV0dXJuIFZ9fWUuY2xhbXA9YSxlLmFkZFByb3BlcnRpZXNIYW5kbGVyKHUsZnVuY3Rpb24gcChILEMpe2lmKEgubGVuZ3RoPT1DLmxlbmd0aClyZXR1''@;'; + put 'put ''cm5bSCxDLGZ1bmN0aW9uKFYpe3JldHVybiBWLm1hcChyKS5qb2luKCIgIil9XX0sWyJzdHJva2UtZGFzaGFycmF5Il0pLGUuYWRkUHJvcGVydGllc0hhbmRsZXIoYyxnKDAsMS8wKSxbImJvcmRlci1pbWFnZS13aWR0aCIsImxpbmUtaGVpZ2h0Il0pLGUuYWRkUHJvcGVydGllc0hhbmRsZXIo''@;'; + put 'put ''YyxnKDAsMSksWyJvcGFjaXR5Iiwic2hhcGUtaW1hZ2UtdGhyZXNob2xkIl0pLGUuYWRkUHJvcGVydGllc0hhbmRsZXIoYyxmdW5jdGlvbiBoKEgsQyl7aWYoMCE9SClyZXR1cm4gZygwLDEvMCkoSCxDKX0sWyJmbGV4LWdyb3ciLCJmbGV4LXNocmluayJdKSxlLmFkZFByb3BlcnRpZXNIYW5k''@;'; + put 'put ''bGVyKGMsZnVuY3Rpb24gZihILEMpe3JldHVybltILEMsZnVuY3Rpb24oVil7cmV0dXJuIE1hdGgucm91bmQoYSgxLDEvMCxWKSl9XX0sWyJvcnBoYW5zIiwid2lkb3dzIl0pLGUuYWRkUHJvcGVydGllc0hhbmRsZXIoYyxmdW5jdGlvbiB2KEgsQyl7cmV0dXJuW0gsQyxNYXRoLnJvdW5kXX0s''@;'; + put 'put ''WyJ6LWluZGV4Il0pLGUucGFyc2VOdW1iZXI9YyxlLnBhcnNlTnVtYmVyTGlzdD11LGUubWVyZ2VOdW1iZXJzPWZ1bmN0aW9uIG8oSCxDKXtyZXR1cm5bSCxDLHJdfSxlLm51bWJlclRvU3RyaW5nPXJ9KEYxKSxmdW5jdGlvbihlLGwpe2UuYWRkUHJvcGVydGllc0hhbmRsZXIoU3RyaW5nLGZ1''@;'; + put 'put ''bmN0aW9uIHIoYSxjKXtpZigidmlzaWJsZSI9PWF8fCJ2aXNpYmxlIj09YylyZXR1cm5bMCwxLGZ1bmN0aW9uKG8pe3JldHVybiBvPD0wP2E6bz49MT9jOiJ2aXNpYmxlIn1dfSxbInZpc2liaWxpdHkiXSl9KEYxKSxmdW5jdGlvbihlLGwpe2Z1bmN0aW9uIHIoaCl7aD1oLnRyaW0oKSxvLmZp''@;'; + put 'put ''bGxTdHlsZT0iIzAwMCIsby5maWxsU3R5bGU9aDt2YXIgZj1vLmZpbGxTdHlsZTtpZihvLmZpbGxTdHlsZT0iI2ZmZiIsby5maWxsU3R5bGU9aCxmPT1vLmZpbGxTdHlsZSl7by5maWxsUmVjdCgwLDAsMSwxKTt2YXIgZz1vLmdldEltYWdlRGF0YSgwLDAsMSwxKS5kYXRhO28uY2xlYXJSZWN0''@;'; + put 'put ''KDAsMCwxLDEpO3ZhciB1PWdbM10vMjU1O3JldHVybltnWzBdKnUsZ1sxXSp1LGdbMl0qdSx1XX19ZnVuY3Rpb24gYShoLGYpe3JldHVybltoLGYsZnVuY3Rpb24oZyl7aWYoZ1szXSlmb3IodmFyIHA9MDtwPDM7cCsrKWdbcF09TWF0aC5yb3VuZChNYXRoLm1heCgwLE1hdGgubWluKDI1NSxn''@;'; + put 'put ''W3BdL2dbM10pKSk7cmV0dXJuIGdbM109ZS5udW1iZXJUb1N0cmluZyhlLmNsYW1wKDAsMSxnWzNdKSksInJnYmEoIitnLmpvaW4oIiwiKSsiKSJ9XX12YXIgYz1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiLCJjYW52YXMiKTtjLndpZHRo''@;'; + put 'put ''PWMuaGVpZ2h0PTE7dmFyIG89Yy5nZXRDb250ZXh0KCIyZCIpO2UuYWRkUHJvcGVydGllc0hhbmRsZXIocixhLFsiYmFja2dyb3VuZC1jb2xvciIsImJvcmRlci1ib3R0b20tY29sb3IiLCJib3JkZXItbGVmdC1jb2xvciIsImJvcmRlci1yaWdodC1jb2xvciIsImJvcmRlci10b3AtY29sb3Ii''@;'; + put 'put ''LCJjb2xvciIsImZpbGwiLCJmbG9vZC1jb2xvciIsImxpZ2h0aW5nLWNvbG9yIiwib3V0bGluZS1jb2xvciIsInN0b3AtY29sb3IiLCJzdHJva2UiLCJ0ZXh0LWRlY29yYXRpb24tY29sb3IiXSksZS5jb25zdW1lQ29sb3I9ZS5jb25zdW1lUGFyZW50aGVzaXNlZC5iaW5kKG51bGwsciksZS5t''@;'; + put 'put ''ZXJnZUNvbG9ycz1hfShGMSksZnVuY3Rpb24oZSxsKXtmdW5jdGlvbiByKF8pe2Z1bmN0aW9uIGIoKXt2YXIgVz1JLmV4ZWMoXyk7Tj1XP1dbMF06dm9pZCAwfWZ1bmN0aW9uIHgoKXtpZigiKCIhPT1OKXJldHVybiBmdW5jdGlvbiBNKCl7dmFyIFc9TnVtYmVyKE4pO3JldHVybiBiKCksV30o''@;'; + put 'put ''KTtiKCk7dmFyIFc9dygpO3JldHVybiIpIiE9PU4/TmFOOihiKCksVyl9ZnVuY3Rpb24gRSgpe2Zvcih2YXIgVz14KCk7IioiPT09Tnx8Ii8iPT09Tjspe3ZhciBPPU47YigpO3ZhciBCPXgoKTsiKiI9PT1PP1cqPUI6Vy89Qn1yZXR1cm4gV31mdW5jdGlvbiB3KCl7Zm9yKHZhciBXPUUoKTsi''@;'; + put 'put ''KyI9PT1OfHwiLSI9PT1OOyl7dmFyIE89TjtiKCk7dmFyIEI9RSgpOyIrIj09PU8/Vys9QjpXLT1CfXJldHVybiBXfXZhciBOLEk9LyhbXCtcLVx3XC5dK3xbXChcKVwqXC9dKS9nO3JldHVybiBiKCksdygpfWZ1bmN0aW9uIGEoXyxiKXtpZigiMCI9PShiPWIudHJpbSgpLnRvTG93ZXJDYXNl''@;'; + put 'put ''KCkpJiYicHgiLnNlYXJjaChfKT49MClyZXR1cm57cHg6MH07aWYoL15bXihdKiR8XmNhbGMvLnRlc3QoYikpe2I9Yi5yZXBsYWNlKC9jYWxjXCgvZywiKCIpO3ZhciBNPXt9O2I9Yi5yZXBsYWNlKF8sZnVuY3Rpb24oTyl7cmV0dXJuIE1bT109bnVsbCwiVSIrT30pO2Zvcih2YXIgeD0iVSgi''@;'; + put 'put ''K18uc291cmNlKyIpIixFPWIucmVwbGFjZSgvWy0rXT8oXGQqXC4pP1xkKyhbRWVdWy0rXT9cZCspPy9nLCJOIikucmVwbGFjZShuZXcgUmVnRXhwKCJOIit4LCJnIiksIkQiKS5yZXBsYWNlKC9cc1srLV1ccy9nLCJPIikucmVwbGFjZSgvXHMvZywiIiksdz1bL05cKihEKS9nLC8oTnxEKVsq''@;'; + put 'put ''XC9dTi9nLC8oTnxEKU9cMS9nLC9cKChOfEQpXCkvZ10sTj0wO048dy5sZW5ndGg7KXdbTl0udGVzdChFKT8oRT1FLnJlcGxhY2Uod1tOXSwiJDEiKSxOPTApOk4rKztpZigiRCI9PUUpe2Zvcih2YXIgSSBpbiBNKXt2YXIgVz1yKGIucmVwbGFjZShuZXcgUmVnRXhwKCJVIitJLCJnIiksIiIp''@;'; + put 'put ''LnJlcGxhY2UobmV3IFJlZ0V4cCh4LCJnIiksIiowIikpO2lmKCFpc0Zpbml0ZShXKSlyZXR1cm47TVtJXT1XfXJldHVybiBNfX19ZnVuY3Rpb24gYyhfLGIpe3JldHVybiBvKF8sYiwhMCl9ZnVuY3Rpb24gbyhfLGIsTSl7dmFyIHgsRT1bXTtmb3IoeCBpbiBfKUUucHVzaCh4KTtmb3IoeCBp''@;'; + put 'put ''biBiKUUuaW5kZXhPZih4KTwwJiZFLnB1c2goeCk7cmV0dXJuIF89RS5tYXAoZnVuY3Rpb24odyl7cmV0dXJuIF9bd118fDB9KSxiPUUubWFwKGZ1bmN0aW9uKHcpe3JldHVybiBiW3ddfHwwfSksW18sYixmdW5jdGlvbih3KXt2YXIgTj13Lm1hcChmdW5jdGlvbihJLFcpe3JldHVybiAxPT13''@;'; + put 'put ''Lmxlbmd0aCYmTSYmKEk9TWF0aC5tYXgoSSwwKSksZS5udW1iZXJUb1N0cmluZyhJKStFW1ddfSkuam9pbigiICsgIik7cmV0dXJuIHcubGVuZ3RoPjE/ImNhbGMoIitOKyIpIjpOfV19dmFyIGg9InB4fGVtfGV4fGNofHJlbXx2d3x2aHx2bWlufHZtYXh8Y218bW18aW58cHR8cGMiLGY9YS5i''@;'; + put 'put ''aW5kKG51bGwsbmV3IFJlZ0V4cChoLCJnIikpLGc9YS5iaW5kKG51bGwsbmV3IFJlZ0V4cChoKyJ8JSIsImciKSksdT1hLmJpbmQobnVsbCwvZGVnfHJhZHxncmFkfHR1cm4vZyk7ZS5wYXJzZUxlbmd0aD1mLGUucGFyc2VMZW5ndGhPclBlcmNlbnQ9ZyxlLmNvbnN1bWVMZW5ndGhPclBlcmNl''@;'; + put 'put ''bnQ9ZS5jb25zdW1lUGFyZW50aGVzaXNlZC5iaW5kKG51bGwsZyksZS5wYXJzZUFuZ2xlPXUsZS5tZXJnZURpbWVuc2lvbnM9bzt2YXIgcD1lLmNvbnN1bWVQYXJlbnRoZXNpc2VkLmJpbmQobnVsbCxmKSx2PWUuY29uc3VtZVJlcGVhdGVkLmJpbmQodm9pZCAwLHAsL14vKSxIPWUuY29uc3Vt''@;'; + put 'put ''ZVJlcGVhdGVkLmJpbmQodm9pZCAwLHYsL14sLyk7ZS5jb25zdW1lU2l6ZVBhaXJMaXN0PUg7dmFyIFY9ZS5tZXJnZU5lc3RlZFJlcGVhdGVkLmJpbmQodm9pZCAwLGMsIiAiKSxTPWUubWVyZ2VOZXN0ZWRSZXBlYXRlZC5iaW5kKHZvaWQgMCxWLCIsIik7ZS5tZXJnZU5vbk5lZ2F0aXZlU2l6''@;'; + put 'put ''ZVBhaXI9VixlLmFkZFByb3BlcnRpZXNIYW5kbGVyKGZ1bmN0aW9uKF8pe3ZhciBiPUgoXyk7aWYoYiYmIiI9PWJbMV0pcmV0dXJuIGJbMF19LFMsWyJiYWNrZ3JvdW5kLXNpemUiXSksZS5hZGRQcm9wZXJ0aWVzSGFuZGxlcihnLGMsWyJib3JkZXItYm90dG9tLXdpZHRoIiwiYm9yZGVyLWlt''@;'; + put 'put ''YWdlLXdpZHRoIiwiYm9yZGVyLWxlZnQtd2lkdGgiLCJib3JkZXItcmlnaHQtd2lkdGgiLCJib3JkZXItdG9wLXdpZHRoIiwiZmxleC1iYXNpcyIsImZvbnQtc2l6ZSIsImhlaWdodCIsImxpbmUtaGVpZ2h0IiwibWF4LWhlaWdodCIsIm1heC13aWR0aCIsIm91dGxpbmUtd2lkdGgiLCJ3aWR0''@;'; + put 'put ''aCJdKSxlLmFkZFByb3BlcnRpZXNIYW5kbGVyKGcsbyxbImJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXMiLCJib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1cyIsImJvcmRlci10b3AtbGVmdC1yYWRpdXMiLCJib3JkZXItdG9wLXJpZ2h0LXJhZGl1cyIsImJvdHRvbSIsImxlZnQiLCJsZXR0ZXIt''@;'; + put 'put ''c3BhY2luZyIsIm1hcmdpbi1ib3R0b20iLCJtYXJnaW4tbGVmdCIsIm1hcmdpbi1yaWdodCIsIm1hcmdpbi10b3AiLCJtaW4taGVpZ2h0IiwibWluLXdpZHRoIiwib3V0bGluZS1vZmZzZXQiLCJwYWRkaW5nLWJvdHRvbSIsInBhZGRpbmctbGVmdCIsInBhZGRpbmctcmlnaHQiLCJwYWRkaW5n''@;'; + put 'put ''LXRvcCIsInBlcnNwZWN0aXZlIiwicmlnaHQiLCJzaGFwZS1tYXJnaW4iLCJzdHJva2UtZGFzaG9mZnNldCIsInRleHQtaW5kZW50IiwidG9wIiwidmVydGljYWwtYWxpZ24iLCJ3b3JkLXNwYWNpbmciXSl9KEYxKSxmdW5jdGlvbihlLGwpe2Z1bmN0aW9uIHIoZil7cmV0dXJuIGUuY29uc3Vt''@;'; + put 'put ''ZUxlbmd0aE9yUGVyY2VudChmKXx8ZS5jb25zdW1lVG9rZW4oL15hdXRvLyxmKX1mdW5jdGlvbiBhKGYpe3ZhciBnPWUuY29uc3VtZUxpc3QoW2UuaWdub3JlKGUuY29uc3VtZVRva2VuLmJpbmQobnVsbCwvXnJlY3QvKSksZS5pZ25vcmUoZS5jb25zdW1lVG9rZW4uYmluZChudWxsLC9eXCgv''@;'; + put 'put ''KSksZS5jb25zdW1lUmVwZWF0ZWQuYmluZChudWxsLHIsL14sLyksZS5pZ25vcmUoZS5jb25zdW1lVG9rZW4uYmluZChudWxsLC9eXCkvKSldLGYpO2lmKGcmJjQ9PWdbMF0ubGVuZ3RoKXJldHVybiBnWzBdfXZhciBoPWUubWVyZ2VXcmFwcGVkTmVzdGVkUmVwZWF0ZWQuYmluZChudWxsLGZ1''@;'; + put 'put ''bmN0aW9uIG8oZil7cmV0dXJuInJlY3QoIitmKyIpIn0sZnVuY3Rpb24gYyhmLGcpe3JldHVybiJhdXRvIj09Znx8ImF1dG8iPT1nP1shMCwhMSxmdW5jdGlvbih1KXt2YXIgcD11P2Y6ZztpZigiYXV0byI9PXApcmV0dXJuImF1dG8iO3ZhciB2PWUubWVyZ2VEaW1lbnNpb25zKHAscCk7cmV0''@;'; + put 'put ''dXJuIHZbMl0odlswXSl9XTplLm1lcmdlRGltZW5zaW9ucyhmLGcpfSwiLCAiKTtlLnBhcnNlQm94PWEsZS5tZXJnZUJveGVzPWgsZS5hZGRQcm9wZXJ0aWVzSGFuZGxlcihhLGgsWyJjbGlwIl0pfShGMSksZnVuY3Rpb24oZSxsKXtmdW5jdGlvbiByKFYpe3JldHVybiBmdW5jdGlvbihTKXt2''@;'; + put 'put ''YXIgXz0wO3JldHVybiBWLm1hcChmdW5jdGlvbihiKXtyZXR1cm4gYj09PXA/U1tfKytdOmJ9KX19ZnVuY3Rpb24gYShWKXtyZXR1cm4gVn1mdW5jdGlvbiBjKFYpe2lmKCJub25lIj09KFY9Vi50b0xvd2VyQ2FzZSgpLnRyaW0oKSkpcmV0dXJuW107Zm9yKHZhciBTLF89L1xzKihcdyspXCgo''@;'; + put 'put ''W14pXSopXCkvZyxiPVtdLE09MDtTPV8uZXhlYyhWKTspe2lmKFMuaW5kZXghPU0pcmV0dXJuO009Uy5pbmRleCtTWzBdLmxlbmd0aDt2YXIgeD1TWzFdLEU9Q1t4XTtpZighRSlyZXR1cm47dmFyIHc9U1syXS5zcGxpdCgiLCIpLE49RVswXTtpZihOLmxlbmd0aDx3Lmxlbmd0aClyZXR1cm47''@;'; + put 'put ''Zm9yKHZhciBJPVtdLFc9MDtXPE4ubGVuZ3RoO1crKyl7dmFyIE8sQj13W1ddLFI9TltXXTtpZih2b2lkIDA9PT0oTz1CP3tBOmZ1bmN0aW9uKGwxKXtyZXR1cm4iMCI9PWwxLnRyaW0oKT9IOmUucGFyc2VBbmdsZShsMSl9LE46ZS5wYXJzZU51bWJlcixUOmUucGFyc2VMZW5ndGhPclBlcmNl''@;'; + put 'put ''bnQsTDplLnBhcnNlTGVuZ3RofVtSLnRvVXBwZXJDYXNlKCldKEIpOnthOkgsbjpJWzBdLHQ6dn1bUl0pKXJldHVybjtJLnB1c2goTyl9aWYoYi5wdXNoKHt0OngsZDpJfSksXy5sYXN0SW5kZXg9PVYubGVuZ3RoKXJldHVybiBifX1mdW5jdGlvbiBvKFYpe3JldHVybiBWLnRvRml4ZWQoNiku''@;'; + put 'put ''cmVwbGFjZSgiLjAwMDAwMCIsIiIpfWZ1bmN0aW9uIGgoVixTKXtpZihWLmRlY29tcG9zaXRpb25QYWlyIT09Uyl7Vi5kZWNvbXBvc2l0aW9uUGFpcj1TO3ZhciBfPWUubWFrZU1hdHJpeERlY29tcG9zaXRpb24oVil9aWYoUy5kZWNvbXBvc2l0aW9uUGFpciE9PVYpe1MuZGVjb21wb3NpdGlv''@;'; + put 'put ''blBhaXI9Vjt2YXIgYj1lLm1ha2VNYXRyaXhEZWNvbXBvc2l0aW9uKFMpfXJldHVybiBudWxsPT1fWzBdfHxudWxsPT1iWzBdP1tbITFdLFshMF0sZnVuY3Rpb24oTSl7cmV0dXJuIE0/U1swXS5kOlZbMF0uZH1dOihfWzBdLnB1c2goMCksYlswXS5wdXNoKDEpLFtfLGIsZnVuY3Rpb24oTSl7''@;'; + put 'put ''dmFyIHg9ZS5xdWF0KF9bMF1bM10sYlswXVszXSxNWzVdKTtyZXR1cm4gZS5jb21wb3NlTWF0cml4KE1bMF0sTVsxXSxNWzJdLHgsTVs0XSkubWFwKG8pLmpvaW4oIiwiKX1dKX1mdW5jdGlvbiBmKFYpe3JldHVybiBWLnJlcGxhY2UoL1t4eV0vLCIiKX1mdW5jdGlvbiBnKFYpe3JldHVybiBW''@;'; + put 'put ''LnJlcGxhY2UoLyh4fHl8enwzZCk/JC8sIjNkIil9dmFyIHA9bnVsbCx2PXtweDowfSxIPXtkZWc6MH0sQz17bWF0cml4OlsiTk5OTk5OIixbcCxwLDAsMCxwLHAsMCwwLDAsMCwxLDAscCxwLDAsMV0sYV0sbWF0cml4M2Q6WyJOTk5OTk5OTk5OTk5OTk5OIixhXSxyb3RhdGU6WyJBIl0scm90''@;'; + put 'put ''YXRleDpbIkEiXSxyb3RhdGV5OlsiQSJdLHJvdGF0ZXo6WyJBIl0scm90YXRlM2Q6WyJOTk5BIl0scGVyc3BlY3RpdmU6WyJMIl0sc2NhbGU6WyJObiIscihbcCxwLDFdKSxhXSxzY2FsZXg6WyJOIixyKFtwLDEsMV0pLHIoW3AsMV0pXSxzY2FsZXk6WyJOIixyKFsxLHAsMV0pLHIoWzEscF0p''@;'; + put 'put ''XSxzY2FsZXo6WyJOIixyKFsxLDEscF0pXSxzY2FsZTNkOlsiTk5OIixhXSxza2V3OlsiQWEiLG51bGwsYV0sc2tld3g6WyJBIixudWxsLHIoW3AsSF0pXSxza2V3eTpbIkEiLG51bGwscihbSCxwXSldLHRyYW5zbGF0ZTpbIlR0IixyKFtwLHAsdl0pLGFdLHRyYW5zbGF0ZXg6WyJUIixyKFtw''@;'; + put 'put ''LHYsdl0pLHIoW3Asdl0pXSx0cmFuc2xhdGV5OlsiVCIscihbdixwLHZdKSxyKFt2LHBdKV0sdHJhbnNsYXRlejpbIkwiLHIoW3YsdixwXSldLHRyYW5zbGF0ZTNkOlsiVFRMIixhXX07ZS5hZGRQcm9wZXJ0aWVzSGFuZGxlcihjLGZ1bmN0aW9uIHUoVixTKXt2YXIgXz1lLm1ha2VNYXRyaXhE''@;'; + put 'put ''ZWNvbXBvc2l0aW9uJiYhMCxiPSExO2lmKCFWLmxlbmd0aHx8IVMubGVuZ3RoKXtWLmxlbmd0aHx8KGI9ITAsVj1TLFM9W10pO2Zvcih2YXIgTT0wO008Vi5sZW5ndGg7TSsrKXt2YXIgRT1WW01dLmQsdz0ic2NhbGUiPT0oeD1WW01dLnQpLnN1YnN0cigwLDUpPzE6MDtTLnB1c2goe3Q6eCxk''@;'; + put 'put ''OkUubWFwKGZ1bmN0aW9uKFEpe2lmKCJudW1iZXIiPT10eXBlb2YgUSlyZXR1cm4gdzt2YXIgczE9e307Zm9yKHZhciBtMSBpbiBRKXMxW20xXT13O3JldHVybiBzMX0pfSl9fXZhciBRLHMxLEk9W10sVz1bXSxPPVtdO2lmKFYubGVuZ3RoIT1TLmxlbmd0aCl7aWYoIV8pcmV0dXJuO0k9WyhC''@;'; + put 'put ''PWgoVixTKSlbMF1dLFc9W0JbMV1dLE89W1sibWF0cml4IixbQlsyXV1dXX1lbHNlIGZvcihNPTA7TTxWLmxlbmd0aDtNKyspe3ZhciB4LFI9VltNXS50LGwxPVNbTV0udCxhMT1WW01dLmQsaDE9U1tNXS5kLHUxPUNbUl0scDE9Q1tsMV07aWYoczE9bDEsInBlcnNwZWN0aXZlIj09KFE9Uikm''@;'; + put 'put ''JiJwZXJzcGVjdGl2ZSI9PXMxfHwoIm1hdHJpeCI9PVF8fCJtYXRyaXgzZCI9PVEpJiYoIm1hdHJpeCI9PXMxfHwibWF0cml4M2QiPT1zMSkpe2lmKCFfKXJldHVybjt2YXIgQj1oKFtWW01dXSxbU1tNXV0pO0kucHVzaChCWzBdKSxXLnB1c2goQlsxXSksTy5wdXNoKFsibWF0cml4IixbQlsy''@;'; + put 'put ''XV1dKX1lbHNle2lmKFI9PWwxKXg9UjtlbHNlIGlmKHUxWzJdJiZwMVsyXSYmZihSKT09ZihsMSkpeD1mKFIpLGExPXUxWzJdKGExKSxoMT1wMVsyXShoMSk7ZWxzZXtpZighdTFbMV18fCFwMVsxXXx8ZyhSKSE9ZyhsMSkpe2lmKCFfKXJldHVybjtJPVsoQj1oKFYsUykpWzBdXSxXPVtCWzFd''@;'; + put 'put ''XSxPPVtbIm1hdHJpeCIsW0JbMl1dXV07YnJlYWt9eD1nKFIpLGExPXUxWzFdKGExKSxoMT1wMVsxXShoMSl9Zm9yKHZhciB2MT1bXSxFMT1bXSxqPVtdLGMxPTA7YzE8YTEubGVuZ3RoO2MxKyspQj0oIm51bWJlciI9PXR5cGVvZiBhMVtjMV0/ZS5tZXJnZU51bWJlcnM6ZS5tZXJnZURpbWVu''@;'; + put 'put ''c2lvbnMpKGExW2MxXSxoMVtjMV0pLHYxW2MxXT1CWzBdLEUxW2MxXT1CWzFdLGoucHVzaChCWzJdKTtJLnB1c2godjEpLFcucHVzaChFMSksTy5wdXNoKFt4LGpdKX19aWYoYil7dmFyIF8xPUk7ST1XLFc9XzF9cmV0dXJuW0ksVyxmdW5jdGlvbihRKXtyZXR1cm4gUS5tYXAoZnVuY3Rpb24o''@;'; + put 'put ''czEsbTEpe3ZhciBiMT1zMS5tYXAoZnVuY3Rpb24oQjEsJCl7cmV0dXJuIE9bbTFdWzFdWyRdKEIxKX0pLmpvaW4oIiwiKTtyZXR1cm4ibWF0cml4Ij09T1ttMV1bMF0mJjE2PT1iMS5zcGxpdCgiLCIpLmxlbmd0aCYmKE9bbTFdWzBdPSJtYXRyaXgzZCIpLE9bbTFdWzBdKyIoIitiMSsiKSJ9''@;'; + put 'put ''KS5qb2luKCIgIil9XX0sWyJ0cmFuc2Zvcm0iXSksZS50cmFuc2Zvcm1Ub1N2Z01hdHJpeD1mdW5jdGlvbihWKXt2YXIgUz1lLnRyYW5zZm9ybUxpc3RUb01hdHJpeChjKFYpKTtyZXR1cm4ibWF0cml4KCIrbyhTWzBdKSsiICIrbyhTWzFdKSsiICIrbyhTWzRdKSsiICIrbyhTWzVdKSsiICIr''@;'; + put 'put ''byhTWzEyXSkrIiAiK28oU1sxM10pKyIpIn19KEYxKSxmdW5jdGlvbihlKXtmdW5jdGlvbiByKGMpe3JldHVybiBjPTEwMCpNYXRoLnJvdW5kKGMvMTAwKSw0MDA9PT0oYz1lLmNsYW1wKDEwMCw5MDAsYykpPyJub3JtYWwiOjcwMD09PWM/ImJvbGQiOlN0cmluZyhjKX1lLmFkZFByb3BlcnRp''@;'; + put 'put ''ZXNIYW5kbGVyKGZ1bmN0aW9uIGwoYyl7dmFyIG89TnVtYmVyKGMpO2lmKCEoaXNOYU4obyl8fG88MTAwfHxvPjkwMHx8byUxMDAhPTApKXJldHVybiBvfSxmdW5jdGlvbiBhKGMsbyl7cmV0dXJuW2MsbyxyXX0sWyJmb250LXdlaWdodCJdKX0oRjEpLGZ1bmN0aW9uKGUpe2Z1bmN0aW9uIGwo''@;'; + put 'put ''dSl7dmFyIHA9e307Zm9yKHZhciB2IGluIHUpcFt2XT0tdVt2XTtyZXR1cm4gcH1mdW5jdGlvbiByKHUpe3JldHVybiBlLmNvbnN1bWVUb2tlbigvXihsZWZ0fGNlbnRlcnxyaWdodHx0b3B8Ym90dG9tKVxiL2ksdSl8fGUuY29uc3VtZUxlbmd0aE9yUGVyY2VudCh1KX1mdW5jdGlvbiBhKHUs''@;'; + put 'put ''cCl7dmFyIHY9ZS5jb25zdW1lUmVwZWF0ZWQociwvXi8scCk7aWYodiYmIiI9PXZbMV0pe3ZhciBIPXZbMF07aWYoSFswXT1IWzBdfHwiY2VudGVyIixIWzFdPUhbMV18fCJjZW50ZXIiLDM9PXUmJihIWzJdPUhbMl18fHtweDowfSksSC5sZW5ndGg9PXUpe2lmKC90b3B8Ym90dG9tLy50ZXN0''@;'; + put 'put ''KEhbMF0pfHwvbGVmdHxyaWdodC8udGVzdChIWzFdKSl7dmFyIEM9SFswXTtIWzBdPUhbMV0sSFsxXT1DfWlmKC9sZWZ0fHJpZ2h0fGNlbnRlcnxPYmplY3QvLnRlc3QoSFswXSkmJi90b3B8Ym90dG9tfGNlbnRlcnxPYmplY3QvLnRlc3QoSFsxXSkpcmV0dXJuIEgubWFwKGZ1bmN0aW9uKFYp''@;'; + put 'put ''e3JldHVybiJvYmplY3QiPT10eXBlb2YgVj9WOmhbVl19KX19fWZ1bmN0aW9uIGModSl7dmFyIHA9ZS5jb25zdW1lUmVwZWF0ZWQociwvXi8sdSk7aWYocCl7Zm9yKHZhciB2PXBbMF0sSD1beyIlIjo1MH0seyIlIjo1MH1dLEM9MCxWPSExLFM9MDtTPHYubGVuZ3RoO1MrKyl7dmFyIF89dltT''@;'; + put 'put ''XTsic3RyaW5nIj09dHlwZW9mIF8/KFY9L2JvdHRvbXxyaWdodC8udGVzdChfKSxIW0M9e2xlZnQ6MCxyaWdodDowLGNlbnRlcjpDLHRvcDoxLGJvdHRvbToxfVtfXV09aFtfXSwiY2VudGVyIj09XyYmQysrKTooViYmKChfPWwoXykpWyIlIl09KF9bIiUiXXx8MCkrMTAwKSxIW0NdPV8sQysr''@;'; + put 'put ''LFY9ITEpfXJldHVybltILHBbMV1dfX12YXIgaD17bGVmdDp7IiUiOjB9LGNlbnRlcjp7IiUiOjUwfSxyaWdodDp7IiUiOjEwMH0sdG9wOnsiJSI6MH0sYm90dG9tOnsiJSI6MTAwfX0sZj1lLm1lcmdlTmVzdGVkUmVwZWF0ZWQuYmluZChudWxsLGUubWVyZ2VEaW1lbnNpb25zLCIgIik7ZS5h''@;'; + put 'put ''ZGRQcm9wZXJ0aWVzSGFuZGxlcihhLmJpbmQobnVsbCwzKSxmLFsidHJhbnNmb3JtLW9yaWdpbiJdKSxlLmFkZFByb3BlcnRpZXNIYW5kbGVyKGEuYmluZChudWxsLDIpLGYsWyJwZXJzcGVjdGl2ZS1vcmlnaW4iXSksZS5jb25zdW1lUG9zaXRpb249YyxlLm1lcmdlT2Zmc2V0TGlzdD1mO3Zh''@;'; + put 'put ''ciBnPWUubWVyZ2VOZXN0ZWRSZXBlYXRlZC5iaW5kKG51bGwsZiwiLCAiKTtlLmFkZFByb3BlcnRpZXNIYW5kbGVyKGZ1bmN0aW9uIG8odSl7dmFyIHA9ZS5jb25zdW1lUmVwZWF0ZWQoYywvXiwvLHUpO2lmKHAmJiIiPT1wWzFdKXJldHVybiBwWzBdfSxnLFsiYmFja2dyb3VuZC1wb3NpdGlv''@;'; + put 'put ''biIsIm9iamVjdC1wb3NpdGlvbiJdKX0oRjEpLGZ1bmN0aW9uKGUpe3ZhciBhPWUuY29uc3VtZVBhcmVudGhlc2lzZWQuYmluZChudWxsLGUucGFyc2VMZW5ndGhPclBlcmNlbnQpLGM9ZS5jb25zdW1lUmVwZWF0ZWQuYmluZCh2b2lkIDAsYSwvXi8pLG89ZS5tZXJnZU5lc3RlZFJlcGVhdGVk''@;'; + put 'put ''LmJpbmQodm9pZCAwLGUubWVyZ2VEaW1lbnNpb25zLCIgIiksaD1lLm1lcmdlTmVzdGVkUmVwZWF0ZWQuYmluZCh2b2lkIDAsbywiLCIpO2UuYWRkUHJvcGVydGllc0hhbmRsZXIoZnVuY3Rpb24gbChmKXt2YXIgZz1lLmNvbnN1bWVUb2tlbigvXmNpcmNsZS8sZik7aWYoZyYmZ1swXSlyZXR1''@;'; + put 'put ''cm5bImNpcmNsZSJdLmNvbmNhdChlLmNvbnN1bWVMaXN0KFtlLmlnbm9yZShlLmNvbnN1bWVUb2tlbi5iaW5kKHZvaWQgMCwvXlwoLykpLGEsZS5pZ25vcmUoZS5jb25zdW1lVG9rZW4uYmluZCh2b2lkIDAsL15hdC8pKSxlLmNvbnN1bWVQb3NpdGlvbixlLmlnbm9yZShlLmNvbnN1bWVUb2tl''@;'; + put 'put ''bi5iaW5kKHZvaWQgMCwvXlwpLykpXSxnWzFdKSk7dmFyIHU9ZS5jb25zdW1lVG9rZW4oL15lbGxpcHNlLyxmKTtpZih1JiZ1WzBdKXJldHVyblsiZWxsaXBzZSJdLmNvbmNhdChlLmNvbnN1bWVMaXN0KFtlLmlnbm9yZShlLmNvbnN1bWVUb2tlbi5iaW5kKHZvaWQgMCwvXlwoLykpLGMsZS5p''@;'; + put 'put ''Z25vcmUoZS5jb25zdW1lVG9rZW4uYmluZCh2b2lkIDAsL15hdC8pKSxlLmNvbnN1bWVQb3NpdGlvbixlLmlnbm9yZShlLmNvbnN1bWVUb2tlbi5iaW5kKHZvaWQgMCwvXlwpLykpXSx1WzFdKSk7dmFyIHA9ZS5jb25zdW1lVG9rZW4oL15wb2x5Z29uLyxmKTtyZXR1cm4gcCYmcFswXT9bInBv''@;'; + put 'put ''bHlnb24iXS5jb25jYXQoZS5jb25zdW1lTGlzdChbZS5pZ25vcmUoZS5jb25zdW1lVG9rZW4uYmluZCh2b2lkIDAsL15cKC8pKSxlLm9wdGlvbmFsKGUuY29uc3VtZVRva2VuLmJpbmQodm9pZCAwLC9ebm9uemVyb1xzKix8XmV2ZW5vZGRccyosLyksIm5vbnplcm8sIiksZS5jb25zdW1lU2l6''@;'; + put 'put ''ZVBhaXJMaXN0LGUuaWdub3JlKGUuY29uc3VtZVRva2VuLmJpbmQodm9pZCAwLC9eXCkvKSldLHBbMV0pKTp2b2lkIDB9LGZ1bmN0aW9uIHIoZixnKXtpZihmWzBdPT09Z1swXSlyZXR1cm4iY2lyY2xlIj09ZlswXT9lLm1lcmdlTGlzdChmLnNsaWNlKDEpLGcuc2xpY2UoMSksWyJjaXJjbGUo''@;'; + put 'put ''IixlLm1lcmdlRGltZW5zaW9ucywiIGF0ICIsZS5tZXJnZU9mZnNldExpc3QsIikiXSk6ImVsbGlwc2UiPT1mWzBdP2UubWVyZ2VMaXN0KGYuc2xpY2UoMSksZy5zbGljZSgxKSxbImVsbGlwc2UoIixlLm1lcmdlTm9uTmVnYXRpdmVTaXplUGFpciwiIGF0ICIsZS5tZXJnZU9mZnNldExpc3Qs''@;'; + put 'put ''IikiXSk6InBvbHlnb24iPT1mWzBdJiZmWzFdPT1nWzFdP2UubWVyZ2VMaXN0KGYuc2xpY2UoMiksZy5zbGljZSgyKSxbInBvbHlnb24oIixmWzFdLGgsIikiXSk6dm9pZCAwfSxbInNoYXBlLW91dHNpZGUiXSl9KEYxKSxmdW5jdGlvbihlLGwpe2Z1bmN0aW9uIHIobyxoKXtoLmNvbmNhdChb''@;'; + put 'put ''b10pLmZvckVhY2goZnVuY3Rpb24oZil7ZiBpbiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUmJihhW29dPWYpLGNbZl09b30pfXZhciBhPXt9LGM9e307cigidHJhbnNmb3JtIixbIndlYmtpdFRyYW5zZm9ybSIsIm1zVHJhbnNmb3JtIl0pLHIoInRyYW5zZm9ybU9yaWdpbiIsWyJ3''@;'; + put 'put ''ZWJraXRUcmFuc2Zvcm1PcmlnaW4iXSkscigicGVyc3BlY3RpdmUiLFsid2Via2l0UGVyc3BlY3RpdmUiXSkscigicGVyc3BlY3RpdmVPcmlnaW4iLFsid2Via2l0UGVyc3BlY3RpdmVPcmlnaW4iXSksZS5wcm9wZXJ0eU5hbWU9ZnVuY3Rpb24obyl7cmV0dXJuIGFbb118fG99LGUudW5wcmVm''@;'; + put 'put ''aXhlZFByb3BlcnR5TmFtZT1mdW5jdGlvbihvKXtyZXR1cm4gY1tvXXx8b319KEYxKX0oKSxmdW5jdGlvbigpe2lmKHZvaWQgMD09PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLmFuaW1hdGUoW10pLm9uY2FuY2VsKXtpZih3aW5kb3cucGVyZm9ybWFuY2UmJnBlcmZvcm1hbmNlLm5v''@;'; + put 'put ''dyl2YXIgaz1mdW5jdGlvbigpe3JldHVybiBwZXJmb3JtYW5jZS5ub3coKX07ZWxzZSBrPWZ1bmN0aW9uKCl7cmV0dXJuIERhdGUubm93KCl9O3ZhciBBPWZ1bmN0aW9uKGwscixhKXt0aGlzLnRhcmdldD1sLHRoaXMuY3VycmVudFRpbWU9cix0aGlzLnRpbWVsaW5lVGltZT1hLHRoaXMudHlw''@;'; + put 'put ''ZT0iY2FuY2VsIix0aGlzLmJ1YmJsZXM9ITEsdGhpcy5jYW5jZWxhYmxlPSExLHRoaXMuY3VycmVudFRhcmdldD1sLHRoaXMuZGVmYXVsdFByZXZlbnRlZD0hMSx0aGlzLmV2ZW50UGhhc2U9RXZlbnQuQVRfVEFSR0VULHRoaXMudGltZVN0YW1wPURhdGUubm93KCl9LGU9d2luZG93LkVsZW1l''@;'; + put 'put ''bnQucHJvdG90eXBlLmFuaW1hdGU7d2luZG93LkVsZW1lbnQucHJvdG90eXBlLmFuaW1hdGU9ZnVuY3Rpb24obCxyKXt2YXIgYT1lLmNhbGwodGhpcyxsLHIpO2EuX2NhbmNlbEhhbmRsZXJzPVtdLGEub25jYW5jZWw9bnVsbDt2YXIgYz1hLmNhbmNlbDthLmNhbmNlbD1mdW5jdGlvbigpe2Mu''@;'; + put 'put ''Y2FsbCh0aGlzKTt2YXIgZj1uZXcgQSh0aGlzLG51bGwsaygpKSxnPXRoaXMuX2NhbmNlbEhhbmRsZXJzLmNvbmNhdCh0aGlzLm9uY2FuY2VsP1t0aGlzLm9uY2FuY2VsXTpbXSk7c2V0VGltZW91dChmdW5jdGlvbigpe2cuZm9yRWFjaChmdW5jdGlvbih1KXt1LmNhbGwoZi50YXJnZXQsZil9''@;'; + put 'put ''KX0sMCl9O3ZhciBvPWEuYWRkRXZlbnRMaXN0ZW5lcjthLmFkZEV2ZW50TGlzdGVuZXI9ZnVuY3Rpb24oZixnKXsiZnVuY3Rpb24iPT10eXBlb2YgZyYmImNhbmNlbCI9PWY/dGhpcy5fY2FuY2VsSGFuZGxlcnMucHVzaChnKTpvLmNhbGwodGhpcyxmLGcpfTt2YXIgaD1hLnJlbW92ZUV2ZW50''@;'; + put 'put ''TGlzdGVuZXI7cmV0dXJuIGEucmVtb3ZlRXZlbnRMaXN0ZW5lcj1mdW5jdGlvbihmLGcpe2lmKCJjYW5jZWwiPT1mKXt2YXIgdT10aGlzLl9jYW5jZWxIYW5kbGVycy5pbmRleE9mKGcpO3U+PTAmJnRoaXMuX2NhbmNlbEhhbmRsZXJzLnNwbGljZSh1LDEpfWVsc2UgaC5jYWxsKHRoaXMsZixn''@;'; + put 'put ''KX0sYX19fSgpLGZ1bmN0aW9uKGspe3ZhciBBPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxlPW51bGwsbD0hMTt0cnl7dmFyIGE9IjAiPT1nZXRDb21wdXRlZFN0eWxlKEEpLmdldFByb3BlcnR5VmFsdWUoIm9wYWNpdHkiKT8iMSI6IjAiOyhlPUEuYW5pbWF0ZSh7b3BhY2l0eTpbYSxhXX0s''@;'; + put 'put ''e2R1cmF0aW9uOjF9KSkuY3VycmVudFRpbWU9MCxsPWdldENvbXB1dGVkU3R5bGUoQSkuZ2V0UHJvcGVydHlWYWx1ZSgib3BhY2l0eSIpPT1hfWNhdGNoKG8pe31maW5hbGx5e2UmJmUuY2FuY2VsKCl9aWYoIWwpe3ZhciBjPXdpbmRvdy5FbGVtZW50LnByb3RvdHlwZS5hbmltYXRlO3dpbmRv''@;'; + put 'put ''dy5FbGVtZW50LnByb3RvdHlwZS5hbmltYXRlPWZ1bmN0aW9uKG8saCl7cmV0dXJuIHdpbmRvdy5TeW1ib2wmJlN5bWJvbC5pdGVyYXRvciYmQXJyYXkucHJvdG90eXBlLmZyb20mJm9bU3ltYm9sLml0ZXJhdG9yXSYmKG89QXJyYXkuZnJvbShvKSksQXJyYXkuaXNBcnJheShvKXx8bnVsbD09''@;'; + put 'put ''PW98fChvPWsuY29udmVydFRvQXJyYXlGb3JtKG8pKSxjLmNhbGwodGhpcyxvLGgpfX19KFgpfSgpLGZ1bmN0aW9uKFgsRjEpeyJvYmplY3QiPT10eXBlb2YgZXhwb3J0cyYmInVuZGVmaW5lZCIhPXR5cGVvZiBtb2R1bGU/RjEoZXhwb3J0cyk6ImZ1bmN0aW9uIj09dHlwZW9mIGRlZmluZSYm''@;'; + put 'put ''ZGVmaW5lLmFtZD9kZWZpbmUoWyJleHBvcnRzIl0sRjEpOkYxKChYPSJ1bmRlZmluZWQiIT10eXBlb2YgZ2xvYmFsVGhpcz9nbG9iYWxUaGlzOlh8fHNlbGYpLm1hcmtlZD17fSl9KHRoaXMsZnVuY3Rpb24oWCl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIEYxKCQseil7Zm9yKHZhciB5PTA7eTx6''@;'; + put 'put ''Lmxlbmd0aDt5Kyspe3ZhciBEPXpbeV07RC5lbnVtZXJhYmxlPUQuZW51bWVyYWJsZXx8ITEsRC5jb25maWd1cmFibGU9ITAsInZhbHVlImluIEQmJihELndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoJCxELmtleSxEKX19ZnVuY3Rpb24gaygkLHopeyhudWxsPT16fHx6PiQu''@;'; + put 'put ''bGVuZ3RoKSYmKHo9JC5sZW5ndGgpO2Zvcih2YXIgeT0wLEQ9bmV3IEFycmF5KHopO3k8ejt5KyspRFt5XT0kW3ldO3JldHVybiBEfWZ1bmN0aW9uIEEoJCx6KXt2YXIgeSxEPSJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiYkW1N5bWJvbC5pdGVyYXRvcl18fCRbIkBAaXRlcmF0b3IiXTtp''@;'; + put 'put ''ZihEKXJldHVybihEPUQuY2FsbCgkKSkubmV4dC5iaW5kKEQpO2lmKEFycmF5LmlzQXJyYXkoJCl8fChEPWZ1bmN0aW9uKFosVCl7aWYoWil7aWYoInN0cmluZyI9PXR5cGVvZiBaKXJldHVybiBrKFosVCk7dmFyIFA9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKFopLnNsaWNlKDgs''@;'; + put 'put ''LTEpO3JldHVybiJNYXAiPT09KFA9Ik9iamVjdCI9PT1QJiZaLmNvbnN0cnVjdG9yP1ouY29uc3RydWN0b3IubmFtZTpQKXx8IlNldCI9PT1QP0FycmF5LmZyb20oWik6IkFyZ3VtZW50cyI9PT1QfHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChQKT9r''@;'; + put 'put ''KFosVCk6dm9pZCAwfX0oJCkpfHx6JiYkJiYibnVtYmVyIj09dHlwZW9mICQubGVuZ3RoKXJldHVybiBEJiYoJD1EKSx5PTAsZnVuY3Rpb24oKXtyZXR1cm4geT49JC5sZW5ndGg/e2RvbmU6ITB9Ontkb25lOiExLHZhbHVlOiRbeSsrXX19O3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQg''@;'; + put 'put ''YXR0ZW1wdCB0byBpdGVyYXRlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX1mdW5jdGlvbiBlKCl7cmV0dXJue2Jhc2VVcmw6bnVsbCxicmVh''@;'; + put 'put ''a3M6ITEsZXh0ZW5zaW9uczpudWxsLGdmbTohMCxoZWFkZXJJZHM6ITAsaGVhZGVyUHJlZml4OiIiLGhpZ2hsaWdodDpudWxsLGxhbmdQcmVmaXg6Imxhbmd1YWdlLSIsbWFuZ2xlOiEwLHBlZGFudGljOiExLHJlbmRlcmVyOm51bGwsc2FuaXRpemU6ITEsc2FuaXRpemVyOm51bGwsc2lsZW50''@;'; + put 'put ''OiExLHNtYXJ0TGlzdHM6ITEsc21hcnR5cGFudHM6ITEsdG9rZW5pemVyOm51bGwsd2Fsa1Rva2VuczpudWxsLHhodG1sOiExfX1mdW5jdGlvbiBsKCQpe3JldHVybiBoWyRdfVguZGVmYXVsdHM9e2Jhc2VVcmw6bnVsbCxicmVha3M6ITEsZXh0ZW5zaW9uczpudWxsLGdmbTohMCxoZWFkZXJJ''@;'; + put 'put ''ZHM6ITAsaGVhZGVyUHJlZml4OiIiLGhpZ2hsaWdodDpudWxsLGxhbmdQcmVmaXg6Imxhbmd1YWdlLSIsbWFuZ2xlOiEwLHBlZGFudGljOiExLHJlbmRlcmVyOm51bGwsc2FuaXRpemU6ITEsc2FuaXRpemVyOm51bGwsc2lsZW50OiExLHNtYXJ0TGlzdHM6ITEsc21hcnR5cGFudHM6ITEsdG9r''@;'; + put 'put ''ZW5pemVyOm51bGwsd2Fsa1Rva2VuczpudWxsLHhodG1sOiExfTt2YXIgcj0vWyY8PiInXS8sYT0vWyY8PiInXS9nLGM9L1s8PiInXXwmKD8hIz9cdys7KS8sbz0vWzw+IiddfCYoPyEjP1x3KzspL2csaD17IiYiOiImYW1wOyIsIjwiOiImbHQ7IiwiPiI6IiZndDsiLCciJzoiJnF1b3Q7Iiwi''@;'; + put 'put ''JyI6IiYjMzk7In07ZnVuY3Rpb24gZigkLHope2lmKHope2lmKHIudGVzdCgkKSlyZXR1cm4gJC5yZXBsYWNlKGEsbCl9ZWxzZSBpZihjLnRlc3QoJCkpcmV0dXJuICQucmVwbGFjZShvLGwpO3JldHVybiAkfXZhciBnPS8mKCMoPzpcZCspfCg/OiN4WzAtOUEtRmEtZl0rKXwoPzpcdyspKTs/''@;'; + put 'put ''L2dpO2Z1bmN0aW9uIHUoJCl7cmV0dXJuICQucmVwbGFjZShnLGZ1bmN0aW9uKHoseSl7cmV0dXJuImNvbG9uIj09PSh5PXkudG9Mb3dlckNhc2UoKSk/IjoiOiIjIj09PXkuY2hhckF0KDApPyJ4Ij09PXkuY2hhckF0KDEpP1N0cmluZy5mcm9tQ2hhckNvZGUocGFyc2VJbnQoeS5zdWJzdHJp''@;'; + put 'put ''bmcoMiksMTYpKTpTdHJpbmcuZnJvbUNoYXJDb2RlKCt5LnN1YnN0cmluZygxKSk6IiJ9KX12YXIgcD0vKF58W15cW10pXF4vZztmdW5jdGlvbiB2KCQseil7JD0ic3RyaW5nIj09dHlwZW9mICQ/JDokLnNvdXJjZSx6PXp8fCIiO3ZhciB5PXtyZXBsYWNlOmZ1bmN0aW9uKEQsWil7cmV0dXJu''@;'; + put 'put ''IFo9KFo9Wi5zb3VyY2V8fFopLnJlcGxhY2UocCwiJDEiKSwkPSQucmVwbGFjZShELFopLHl9LGdldFJlZ2V4OmZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBSZWdFeHAoJCx6KX19O3JldHVybiB5fXZhciBIPS9bXlx3Ol0vZyxDPS9eJHxeW2Etel1bYS16MC05Ky4tXSo6fF5bPyNdL2k7ZnVuY3Rp''@;'; + put 'put ''b24gVigkLHoseSl7aWYoJCl7dHJ5e0Q9ZGVjb2RlVVJJQ29tcG9uZW50KHUoeSkpLnJlcGxhY2UoSCwiIikudG9Mb3dlckNhc2UoKX1jYXRjaChaKXtyZXR1cm4gbnVsbH1pZigwPT09RC5pbmRleE9mKCJqYXZhc2NyaXB0OiIpfHwwPT09RC5pbmRleE9mKCJ2YnNjcmlwdDoiKXx8MD09PUQu''@;'; + put 'put ''aW5kZXhPZigiZGF0YToiKSlyZXR1cm4gbnVsbH12YXIgRDt6JiYhQy50ZXN0KHkpJiYoJD15LFNbIiAiKyhEPXopXXx8KFNbIiAiK0RdPV8udGVzdChEKT9EKyIvIjp3KEQsIi8iLCEwKSksej0tMT09PShEPVNbIiAiK0RdKS5pbmRleE9mKCI6IikseT0iLy8iPT09JC5zdWJzdHJpbmcoMCwy''@;'; + put 'put ''KT96PyQ6RC5yZXBsYWNlKGIsIiQxIikrJDoiLyI9PT0kLmNoYXJBdCgwKT96PyQ6RC5yZXBsYWNlKE0sIiQxIikrJDpEKyQpO3RyeXt5PWVuY29kZVVSSSh5KS5yZXBsYWNlKC8lMjUvZywiJSIpfWNhdGNoKFope3JldHVybiBudWxsfXJldHVybiB5fXZhciBTPXt9LF89L15bXjpdKzpcLypb''@;'; + put 'put ''Xi9dKiQvLGI9L14oW146XSs6KVtcc1xTXSokLyxNPS9eKFteOl0rOlwvKlteL10qKVtcc1xTXSokLyxjMT17ZXhlYzpmdW5jdGlvbigpe319O2Z1bmN0aW9uIHgoJCl7Zm9yKHZhciB6LHksRD0xO0Q8YXJndW1lbnRzLmxlbmd0aDtEKyspZm9yKHkgaW4gej1hcmd1bWVudHNbRF0pT2JqZWN0''@;'; + put 'put ''LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHoseSkmJigkW3ldPXpbeV0pO3JldHVybiAkfWZ1bmN0aW9uIEUoJCx6KXt2YXIgeT0kLnJlcGxhY2UoL1x8L2csZnVuY3Rpb24oWixULFApe2Zvcih2YXIgZTE9ITEscjE9VDswPD0tLXIxJiYiXFwiPT09UFtyMV07KWUxPSFlMTtyZXR1''@;'; + put 'put ''cm4gZTE/InwiOiIgfCJ9KS5zcGxpdCgvIFx8LyksRD0wO2lmKHlbMF0udHJpbSgpfHx5LnNoaWZ0KCksMDx5Lmxlbmd0aCYmIXlbeS5sZW5ndGgtMV0udHJpbSgpJiZ5LnBvcCgpLHkubGVuZ3RoPnopeS5zcGxpY2Uoeik7ZWxzZSBmb3IoO3kubGVuZ3RoPHo7KXkucHVzaCgiIik7Zm9yKDtE''@;'; + put 'put ''PHkubGVuZ3RoO0QrKyl5W0RdPXlbRF0udHJpbSgpLnJlcGxhY2UoL1xcXHwvZywifCIpO3JldHVybiB5fWZ1bmN0aW9uIHcoJCx6LHkpe3ZhciBEPSQubGVuZ3RoO2lmKDA9PT1EKXJldHVybiIiO2Zvcih2YXIgWj0wO1o8RDspe3ZhciBUPSQuY2hhckF0KEQtWi0xKTtpZihUIT09enx8eSl7''@;'; + put 'put ''aWYoVD09PXp8fCF5KWJyZWFrO1orK31lbHNlIForK31yZXR1cm4gJC5zbGljZSgwLEQtWil9ZnVuY3Rpb24gTigkKXskJiYkLnNhbml0aXplJiYhJC5zaWxlbnQmJmNvbnNvbGUud2FybigibWFya2VkKCk6IHNhbml0aXplIGFuZCBzYW5pdGl6ZXIgcGFyYW1ldGVycyBhcmUgZGVwcmVjYXRl''@;'; + put 'put ''ZCBzaW5jZSB2ZXJzaW9uIDAuNy4wLCBzaG91bGQgbm90IGJlIHVzZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgZnV0dXJlLiBSZWFkIG1vcmUgaGVyZTogaHR0cHM6Ly9tYXJrZWQuanMub3JnLyMvVVNJTkdfQURWQU5DRUQubWQjb3B0aW9ucyIpfWZ1bmN0aW9uIEkoJCx6KXtpZih6''@;'; + put 'put ''PDEpcmV0dXJuIiI7Zm9yKHZhciB5PSIiOzE8ejspMSZ6JiYoeSs9JCksej4+PTEsJCs9JDtyZXR1cm4geSskfWZ1bmN0aW9uIFcoJCxULHksRCl7dmFyIFo9VC5ocmVmLFA9KFQ9VC50aXRsZT9mKFQudGl0bGUpOm51bGwsJFsxXS5yZXBsYWNlKC9cXChbXFtcXV0pL2csIiQxIikpO3JldHVy''@;'; + put 'put ''biIhIiE9PSRbMF0uY2hhckF0KDApPyhELnN0YXRlLmluTGluaz0hMCwkPXt0eXBlOiJsaW5rIixyYXc6eSxocmVmOlosdGl0bGU6VCx0ZXh0OlAsdG9rZW5zOkQuaW5saW5lVG9rZW5zKFAsW10pfSxELnN0YXRlLmluTGluaz0hMSwkKTp7dHlwZToiaW1hZ2UiLHJhdzp5LGhyZWY6Wix0aXRs''@;'; + put 'put ''ZTpULHRleHQ6ZihQKX19dmFyIE89ZnVuY3Rpb24oKXtmdW5jdGlvbiAkKHkpe3RoaXMub3B0aW9ucz15fHxYLmRlZmF1bHRzfXZhciB6PSQucHJvdG90eXBlO3JldHVybiB6LnNwYWNlPWZ1bmN0aW9uKHkpe2lmKCh5PXRoaXMucnVsZXMuYmxvY2submV3bGluZS5leGVjKHkpKSYmMDx5WzBd''@;'; + put 'put ''Lmxlbmd0aClyZXR1cm57dHlwZToic3BhY2UiLHJhdzp5WzBdfX0sei5jb2RlPWZ1bmN0aW9uKFope3ZhciBEO2lmKFo9dGhpcy5ydWxlcy5ibG9jay5jb2RlLmV4ZWMoWikpcmV0dXJuIEQ9WlswXS5yZXBsYWNlKC9eIHsxLDR9L2dtLCIiKSx7dHlwZToiY29kZSIscmF3OlpbMF0sY29kZUJs''@;'; + put 'put ''b2NrU3R5bGU6ImluZGVudGVkIix0ZXh0OnRoaXMub3B0aW9ucy5wZWRhbnRpYz9EOncoRCwiXG4iKX19LHouZmVuY2VzPWZ1bmN0aW9uKFQpe3ZhciBELFo7aWYoVD10aGlzLnJ1bGVzLmJsb2NrLmZlbmNlcy5leGVjKFQpKXJldHVybiBaPWZ1bmN0aW9uKFAsZTEpe2lmKG51bGw9PT0oUD1Q''@;'; + put 'put ''Lm1hdGNoKC9eKFxzKykoPzpgYGApLykpKXJldHVybiBlMTt2YXIgcjE9UFsxXTtyZXR1cm4gZTEuc3BsaXQoIlxuIikubWFwKGZ1bmN0aW9uKFoxKXt2YXIgWT1aMS5tYXRjaCgvXlxzKy8pO3JldHVybiBudWxsIT09WSYmWVswXS5sZW5ndGg+PXIxLmxlbmd0aD9aMS5zbGljZShyMS5sZW5n''@;'; + put 'put ''dGgpOloxfSkuam9pbigiXG4iKX0oRD1UWzBdLFRbM118fCIiKSx7dHlwZToiY29kZSIscmF3OkQsbGFuZzpUWzJdJiZUWzJdLnRyaW0oKSx0ZXh0Olp9fSx6LmhlYWRpbmc9ZnVuY3Rpb24oVCl7dmFyIEQsWjtpZihUPXRoaXMucnVsZXMuYmxvY2suaGVhZGluZy5leGVjKFQpKXJldHVybiBE''@;'; + put 'put ''PVRbMl0udHJpbSgpLC8jJC8udGVzdChEKSYmKFo9dyhELCIjIiksIXRoaXMub3B0aW9ucy5wZWRhbnRpYyYmWiYmIS8gJC8udGVzdChaKXx8KEQ9Wi50cmltKCkpKSx0aGlzLmxleGVyLmlubGluZSgoWj17dHlwZToiaGVhZGluZyIscmF3OlRbMF0sZGVwdGg6VFsxXS5sZW5ndGgsdGV4dDpE''@;'; + put 'put ''LHRva2VuczpbXX0pLnRleHQsWi50b2tlbnMpLFp9LHouaHI9ZnVuY3Rpb24oeSl7aWYoeT10aGlzLnJ1bGVzLmJsb2NrLmhyLmV4ZWMoeSkpcmV0dXJue3R5cGU6ImhyIixyYXc6eVswXX19LHouYmxvY2txdW90ZT1mdW5jdGlvbihaKXt2YXIgRDtpZihaPXRoaXMucnVsZXMuYmxvY2suYmxv''@;'; + put 'put ''Y2txdW90ZS5leGVjKFopKXJldHVybiBEPVpbMF0ucmVwbGFjZSgvXiAqPlsgXHRdPy9nbSwiIikse3R5cGU6ImJsb2NrcXVvdGUiLHJhdzpaWzBdLHRva2Vuczp0aGlzLmxleGVyLmJsb2NrVG9rZW5zKEQsW10pLHRleHQ6RH19LHoubGlzdD1mdW5jdGlvbih5KXt2YXIgRD10aGlzLnJ1bGVz''@;'; + put 'put ''LmJsb2NrLmxpc3QuZXhlYyh5KTtpZihEKXt2YXIgWixULFAsZTEscjEsWjEsWSxxLEosQTEsTjEsUzE9MTwoaTE9RFsxXS50cmltKCkpLmxlbmd0aCxuMT17dHlwZToibGlzdCIscmF3OiIiLG9yZGVyZWQ6UzEsc3RhcnQ6UzE/K2kxLnNsaWNlKDAsLTEpOiIiLGxvb3NlOiExLGl0ZW1zOltd''@;'; + put 'put ''fSxpMT1TMT8iXFxkezEsOX1cXCIraTEuc2xpY2UoLTEpOiJcXCIraTE7dGhpcy5vcHRpb25zLnBlZGFudGljJiYoaTE9UzE/aTE6IlsqKy1dIik7Zm9yKHZhciBmMT1uZXcgUmVnRXhwKCJeKCB7MCwzfSIraTErIikoKD86W1x0IF1bXlxcbl0qKT8oPzpcXG58JCkpIik7eSYmKE4xPSExLEQ9''@;'; + put 'put ''ZjEuZXhlYyh5KSkmJiF0aGlzLnJ1bGVzLmJsb2NrLmhyLnRlc3QoeSk7KXtpZih5PXkuc3Vic3RyaW5nKChaPURbMF0pLmxlbmd0aCksWT1EWzJdLnNwbGl0KCJcbiIsMSlbMF0scT15LnNwbGl0KCJcbiIsMSlbMF0sdGhpcy5vcHRpb25zLnBlZGFudGljPyhlMT0yLEExPVkudHJpbUxlZnQo''@;'; + put 'put ''KSk6KGUxPURbMl0uc2VhcmNoKC9bXiBdLyksQTE9WS5zbGljZShlMT00PGUxPzE6ZTEpLGUxKz1EWzFdLmxlbmd0aCkscjE9ITEsIVkmJi9eICokLy50ZXN0KHEpJiYoWis9cSsiXG4iLHk9eS5zdWJzdHJpbmcocS5sZW5ndGgrMSksTjE9ITApLCFOMSlmb3IodmFyIHgxPW5ldyBSZWdFeHAo''@;'; + put 'put ''Il4gezAsIitNYXRoLm1pbigzLGUxLTEpKyJ9KD86WyorLV18XFxkezEsOX1bLildKSgoPzogW15cXG5dKik/KD86XFxufCQpKSIpLEkxPW5ldyBSZWdFeHAoIl4gezAsIitNYXRoLm1pbigzLGUxLTEpKyJ9KCg/Oi0gKil7Myx9fCg/Ol8gKil7Myx9fCg/OlxcKiAqKXszLH0pKD86XFxuK3wk''@;'; + put 'put ''KSIpLEoxPW5ldyBSZWdFeHAoIl4gezAsIitNYXRoLm1pbigzLGUxLTEpKyJ9KD86YGBgfH5+fikiKSx0MD1uZXcgUmVnRXhwKCJeIHswLCIrTWF0aC5taW4oMyxlMS0xKSsifSMiKTt5JiYoWT1KPXkuc3BsaXQoIlxuIiwxKVswXSx0aGlzLm9wdGlvbnMucGVkYW50aWMmJihZPVkucmVwbGFj''@;'; + put 'put ''ZSgvXiB7MSw0fSg/PSggezR9KSpbXiBdKS9nLCIgICIpKSwhSjEudGVzdChZKSkmJiF0MC50ZXN0KFkpJiYheDEudGVzdChZKSYmIUkxLnRlc3QoeSk7KXtpZihZLnNlYXJjaCgvW14gXS8pPj1lMXx8IVkudHJpbSgpKUExKz0iXG4iK1kuc2xpY2UoZTEpO2Vsc2V7aWYocjEpYnJlYWs7QTEr''@;'; + put 'put ''PSJcbiIrWX1yMXx8WS50cmltKCl8fChyMT0hMCksWis9SisiXG4iLHk9eS5zdWJzdHJpbmcoSi5sZW5ndGgrMSl9bjEubG9vc2V8fChaMT9uMS5sb29zZT0hMDovXG4gKlxuICokLy50ZXN0KFopJiYoWjE9ITApKSx0aGlzLm9wdGlvbnMuZ2ZtJiYoVD0vXlxbWyB4WF1cXSAvLmV4ZWMoQTEp''@;'; + put 'put ''KSYmKFA9IlsgXSAiIT09VFswXSxBMT1BMS5yZXBsYWNlKC9eXFtbIHhYXVxdICsvLCIiKSksbjEuaXRlbXMucHVzaCh7dHlwZToibGlzdF9pdGVtIixyYXc6Wix0YXNrOiEhVCxjaGVja2VkOlAsbG9vc2U6ITEsdGV4dDpBMX0pLG4xLnJhdys9Wn1uMS5pdGVtc1tuMS5pdGVtcy5sZW5ndGgt''@;'; + put 'put ''MV0ucmF3PVoudHJpbVJpZ2h0KCksbjEuaXRlbXNbbjEuaXRlbXMubGVuZ3RoLTFdLnRleHQ9QTEudHJpbVJpZ2h0KCksbjEucmF3PW4xLnJhdy50cmltUmlnaHQoKTtmb3IodmFyIGYwPW4xLml0ZW1zLmxlbmd0aCxNMD0wO00wPGYwO00wKyspe3RoaXMubGV4ZXIuc3RhdGUudG9wPSExLG4x''@;'; + put 'put ''Lml0ZW1zW00wXS50b2tlbnM9dGhpcy5sZXhlci5ibG9ja1Rva2VucyhuMS5pdGVtc1tNMF0udGV4dCxbXSk7dmFyIF8wPW4xLml0ZW1zW00wXS50b2tlbnMuZmlsdGVyKGZ1bmN0aW9uKHowKXtyZXR1cm4ic3BhY2UiPT09ejAudHlwZX0pLGkyPV8wLmV2ZXJ5KGZ1bmN0aW9uKHowKXtmb3Io''@;'; + put 'put ''dmFyIFUwLEswPTAsazA9QSh6MC5yYXcuc3BsaXQoIiIpKTshKFUwPWswKCkpLmRvbmU7KWlmKCJcbiI9PT1VMC52YWx1ZSYmKEswKz0xKSwxPEswKXJldHVybiEwO3JldHVybiExfSk7IW4xLmxvb3NlJiZfMC5sZW5ndGgmJmkyJiYobjEubG9vc2U9ITAsbjEuaXRlbXNbTTBdLmxvb3NlPSEw''@;'; + put 'put ''KX1yZXR1cm4gbjF9fSx6Lmh0bWw9ZnVuY3Rpb24oWil7dmFyIEQ7aWYoWj10aGlzLnJ1bGVzLmJsb2NrLmh0bWwuZXhlYyhaKSlyZXR1cm4gRD17dHlwZToiaHRtbCIscmF3OlpbMF0scHJlOiF0aGlzLm9wdGlvbnMuc2FuaXRpemVyJiYoInByZSI9PT1aWzFdfHwic2NyaXB0Ij09PVpbMV18''@;'; + put 'put ''fCJzdHlsZSI9PT1aWzFdKSx0ZXh0OlpbMF19LHRoaXMub3B0aW9ucy5zYW5pdGl6ZSYmKEQudHlwZT0icGFyYWdyYXBoIixELnRleHQ9dGhpcy5vcHRpb25zLnNhbml0aXplcj90aGlzLm9wdGlvbnMuc2FuaXRpemVyKFpbMF0pOmYoWlswXSksRC50b2tlbnM9W10sdGhpcy5sZXhlci5pbmxp''@;'; + put 'put ''bmUoRC50ZXh0LEQudG9rZW5zKSksRH0sei5kZWY9ZnVuY3Rpb24oeSl7aWYoeT10aGlzLnJ1bGVzLmJsb2NrLmRlZi5leGVjKHkpKXJldHVybiB5WzNdJiYoeVszXT15WzNdLnN1YnN0cmluZygxLHlbM10ubGVuZ3RoLTEpKSx7dHlwZToiZGVmIix0YWc6eVsxXS50b0xvd2VyQ2FzZSgpLnJl''@;'; + put 'put ''cGxhY2UoL1xzKy9nLCIgIikscmF3OnlbMF0saHJlZjp5WzJdLHRpdGxlOnlbM119fSx6LnRhYmxlPWZ1bmN0aW9uKHkpe2lmKHk9dGhpcy5ydWxlcy5ibG9jay50YWJsZS5leGVjKHkpKXt2YXIgRD17dHlwZToidGFibGUiLGhlYWRlcjpFKHlbMV0pLm1hcChmdW5jdGlvbihaMSl7cmV0dXJu''@;'; + put 'put ''e3RleHQ6WjF9fSksYWxpZ246eVsyXS5yZXBsYWNlKC9eICp8XHwgKiQvZywiIikuc3BsaXQoLyAqXHwgKi8pLHJvd3M6eVszXSYmeVszXS50cmltKCk/eVszXS5yZXBsYWNlKC9cblsgXHRdKiQvLCIiKS5zcGxpdCgiXG4iKTpbXX07aWYoRC5oZWFkZXIubGVuZ3RoPT09RC5hbGlnbi5sZW5n''@;'; + put 'put ''dGgpe0QucmF3PXlbMF07Zm9yKHZhciBaLFQsUCxlMT1ELmFsaWduLmxlbmd0aCxyMT0wO3IxPGUxO3IxKyspRC5hbGlnbltyMV09L14gKi0rOiAqJC8udGVzdChELmFsaWduW3IxXSk/InJpZ2h0IjovXiAqOi0rOiAqJC8udGVzdChELmFsaWduW3IxXSk/ImNlbnRlciI6L14gKjotKyAqJC8u''@;'; + put 'put ''dGVzdChELmFsaWduW3IxXSk/ImxlZnQiOm51bGw7Zm9yKGUxPUQucm93cy5sZW5ndGgscjE9MDtyMTxlMTtyMSsrKUQucm93c1tyMV09RShELnJvd3NbcjFdLEQuaGVhZGVyLmxlbmd0aCkubWFwKGZ1bmN0aW9uKFoxKXtyZXR1cm57dGV4dDpaMX19KTtmb3IoZTE9RC5oZWFkZXIubGVuZ3Ro''@;'; + put 'put ''LFo9MDtaPGUxO1orKylELmhlYWRlcltaXS50b2tlbnM9W10sdGhpcy5sZXhlci5pbmxpbmUoRC5oZWFkZXJbWl0udGV4dCxELmhlYWRlcltaXS50b2tlbnMpO2ZvcihlMT1ELnJvd3MubGVuZ3RoLFo9MDtaPGUxO1orKylmb3IoUD1ELnJvd3NbWl0sVD0wO1Q8UC5sZW5ndGg7VCsrKVBbVF0u''@;'; + put 'put ''dG9rZW5zPVtdLHRoaXMubGV4ZXIuaW5saW5lKFBbVF0udGV4dCxQW1RdLnRva2Vucyk7cmV0dXJuIER9fX0sei5saGVhZGluZz1mdW5jdGlvbihEKXtpZihEPXRoaXMucnVsZXMuYmxvY2subGhlYWRpbmcuZXhlYyhEKSlyZXR1cm4gRD17dHlwZToiaGVhZGluZyIscmF3OkRbMF0sZGVwdGg6''@;'; + put 'put ''Ij0iPT09RFsyXS5jaGFyQXQoMCk/MToyLHRleHQ6RFsxXSx0b2tlbnM6W119LHRoaXMubGV4ZXIuaW5saW5lKEQudGV4dCxELnRva2VucyksRH0sei5wYXJhZ3JhcGg9ZnVuY3Rpb24oRCl7aWYoRD10aGlzLnJ1bGVzLmJsb2NrLnBhcmFncmFwaC5leGVjKEQpKXJldHVybiBEPXt0eXBlOiJw''@;'; + put 'put ''YXJhZ3JhcGgiLHJhdzpEWzBdLHRleHQ6IlxuIj09PURbMV0uY2hhckF0KERbMV0ubGVuZ3RoLTEpP0RbMV0uc2xpY2UoMCwtMSk6RFsxXSx0b2tlbnM6W119LHRoaXMubGV4ZXIuaW5saW5lKEQudGV4dCxELnRva2VucyksRH0sei50ZXh0PWZ1bmN0aW9uKEQpe2lmKEQ9dGhpcy5ydWxlcy5i''@;'; + put 'put ''bG9jay50ZXh0LmV4ZWMoRCkpcmV0dXJuIHRoaXMubGV4ZXIuaW5saW5lKChEPXt0eXBlOiJ0ZXh0IixyYXc6RFswXSx0ZXh0OkRbMF0sdG9rZW5zOltdfSkudGV4dCxELnRva2VucyksRH0sei5lc2NhcGU9ZnVuY3Rpb24oeSl7aWYoeT10aGlzLnJ1bGVzLmlubGluZS5lc2NhcGUuZXhlYyh5''@;'; + put 'put ''KSlyZXR1cm57dHlwZToiZXNjYXBlIixyYXc6eVswXSx0ZXh0OmYoeVsxXSl9fSx6LnRhZz1mdW5jdGlvbih5KXtpZih5PXRoaXMucnVsZXMuaW5saW5lLnRhZy5leGVjKHkpKXJldHVybiF0aGlzLmxleGVyLnN0YXRlLmluTGluayYmL148YSAvaS50ZXN0KHlbMF0pP3RoaXMubGV4ZXIuc3Rh''@;'; + put 'put ''dGUuaW5MaW5rPSEwOnRoaXMubGV4ZXIuc3RhdGUuaW5MaW5rJiYvXjxcL2E+L2kudGVzdCh5WzBdKSYmKHRoaXMubGV4ZXIuc3RhdGUuaW5MaW5rPSExKSwhdGhpcy5sZXhlci5zdGF0ZS5pblJhd0Jsb2NrJiYvXjwocHJlfGNvZGV8a2JkfHNjcmlwdCkoXHN8PikvaS50ZXN0KHlbMF0pP3Ro''@;'; + put 'put ''aXMubGV4ZXIuc3RhdGUuaW5SYXdCbG9jaz0hMDp0aGlzLmxleGVyLnN0YXRlLmluUmF3QmxvY2smJi9ePFwvKHByZXxjb2RlfGtiZHxzY3JpcHQpKFxzfD4pL2kudGVzdCh5WzBdKSYmKHRoaXMubGV4ZXIuc3RhdGUuaW5SYXdCbG9jaz0hMSkse3R5cGU6dGhpcy5vcHRpb25zLnNhbml0aXpl''@;'; + put 'put ''PyJ0ZXh0IjoiaHRtbCIscmF3OnlbMF0saW5MaW5rOnRoaXMubGV4ZXIuc3RhdGUuaW5MaW5rLGluUmF3QmxvY2s6dGhpcy5sZXhlci5zdGF0ZS5pblJhd0Jsb2NrLHRleHQ6dGhpcy5vcHRpb25zLnNhbml0aXplP3RoaXMub3B0aW9ucy5zYW5pdGl6ZXI/dGhpcy5vcHRpb25zLnNhbml0aXpl''@;'; + put 'put ''cih5WzBdKTpmKHlbMF0pOnlbMF19fSx6Lmxpbms9ZnVuY3Rpb24oeSl7aWYoeT10aGlzLnJ1bGVzLmlubGluZS5saW5rLmV4ZWMoeSkpe3ZhciBEPXlbMl0udHJpbSgpO2lmKCF0aGlzLm9wdGlvbnMucGVkYW50aWMmJi9ePC8udGVzdChEKSl7aWYoIS8+JC8udGVzdChEKSlyZXR1cm47dmFy''@;'; + put 'put ''IFQ9dyhELnNsaWNlKDAsLTEpLCJcXCIpO2lmKChELmxlbmd0aC1ULmxlbmd0aCklMj09MClyZXR1cm59ZWxzZS0xPChUPWZ1bmN0aW9uKGUxLHIxKXtpZigtMSE9PWUxLmluZGV4T2YoIigpIlsxXSkpZm9yKHZhciBaMT1lMS5sZW5ndGgsWT0wLHE9MDtxPFoxO3ErKylpZigiXFwiPT09ZTFb''@;'; + put 'put ''cV0pcSsrO2Vsc2UgaWYoZTFbcV09PT0iKCkiWzBdKVkrKztlbHNlIGlmKGUxW3FdPT09IigpIlsxXSYmLS1ZPDApcmV0dXJuIHE7cmV0dXJuLTF9KHlbMl0pKSYmKFA9KDA9PT15WzBdLmluZGV4T2YoIiEiKT81OjQpK3lbMV0ubGVuZ3RoK1QseVsyXT15WzJdLnN1YnN0cmluZygwLFQpLHlb''@;'; + put 'put ''MF09eVswXS5zdWJzdHJpbmcoMCxQKS50cmltKCkseVszXT0iIik7VD15WzJdO3ZhciBaLFA9IiI7cmV0dXJuIHRoaXMub3B0aW9ucy5wZWRhbnRpYz8oWj0vXihbXiciXSpbXlxzXSlccysoWyciXSkoLiopXDIvLmV4ZWMoVCkpJiYoVD1aWzFdLFA9WlszXSk6UD15WzNdP3lbM10uc2xpY2Uo''@;'; + put 'put ''MSwtMSk6IiIsVD1ULnRyaW0oKSxXKHkse2hyZWY6KFQ9L148Ly50ZXN0KFQpP3RoaXMub3B0aW9ucy5wZWRhbnRpYyYmIS8+JC8udGVzdChEKT9ULnNsaWNlKDEpOlQuc2xpY2UoMSwtMSk6VCkmJlQucmVwbGFjZSh0aGlzLnJ1bGVzLmlubGluZS5fZXNjYXBlcywiJDEiKSx0aXRsZTpQJiZQ''@;'; + put 'put ''LnJlcGxhY2UodGhpcy5ydWxlcy5pbmxpbmUuX2VzY2FwZXMsIiQxIil9LHlbMF0sdGhpcy5sZXhlcil9fSx6LnJlZmxpbms9ZnVuY3Rpb24oeSxEKXt2YXIgWjtpZigoWj10aGlzLnJ1bGVzLmlubGluZS5yZWZsaW5rLmV4ZWMoeSkpfHwoWj10aGlzLnJ1bGVzLmlubGluZS5ub2xpbmsuZXhl''@;'; + put 'put ''Yyh5KSkpcmV0dXJuKHk9RFsoeT0oWlsyXXx8WlsxXSkucmVwbGFjZSgvXHMrL2csIiAiKSkudG9Mb3dlckNhc2UoKV0pJiZ5LmhyZWY/VyhaLHksWlswXSx0aGlzLmxleGVyKTp7dHlwZToidGV4dCIscmF3OkQ9WlswXS5jaGFyQXQoMCksdGV4dDpEfX0sei5lbVN0cm9uZz1mdW5jdGlvbih5''@;'; + put 'put ''LEQsWil7dm9pZCAwPT09WiYmKFo9IiIpO3ZhciBUPXRoaXMucnVsZXMuaW5saW5lLmVtU3Ryb25nLmxEZWxpbS5leGVjKHkpO2lmKFQmJighVFszXXx8IVoubWF0Y2goLyg/OlswLTlBLVphLXpceEFBXHhCMlx4QjNceEI1XHhCOVx4QkFceEJDLVx4QkVceEMwLVx4RDZceEQ4LVx4RjZceEY4''@;'; + put 'put ''LVx1MDJDMVx1MDJDNi1cdTAyRDFcdTAyRTAtXHUwMkU0XHUwMkVDXHUwMkVFXHUwMzcwLVx1MDM3NFx1MDM3Nlx1MDM3N1x1MDM3QS1cdTAzN0RcdTAzN0ZcdTAzODZcdTAzODgtXHUwMzhBXHUwMzhDXHUwMzhFLVx1MDNBMVx1MDNBMy1cdTAzRjVcdTAzRjctXHUwNDgxXHUwNDhBLVx1MDUy''@;'; + put 'put ''Rlx1MDUzMS1cdTA1NTZcdTA1NTlcdTA1NjAtXHUwNTg4XHUwNUQwLVx1MDVFQVx1MDVFRi1cdTA1RjJcdTA2MjAtXHUwNjRBXHUwNjYwLVx1MDY2OVx1MDY2RVx1MDY2Rlx1MDY3MS1cdTA2RDNcdTA2RDVcdTA2RTVcdTA2RTZcdTA2RUUtXHUwNkZDXHUwNkZGXHUwNzEwXHUwNzEyLVx1MDcy''@;'; + put 'put ''Rlx1MDc0RC1cdTA3QTVcdTA3QjFcdTA3QzAtXHUwN0VBXHUwN0Y0XHUwN0Y1XHUwN0ZBXHUwODAwLVx1MDgxNVx1MDgxQVx1MDgyNFx1MDgyOFx1MDg0MC1cdTA4NThcdTA4NjAtXHUwODZBXHUwODcwLVx1MDg4N1x1MDg4OS1cdTA4OEVcdTA4QTAtXHUwOEM5XHUwOTA0LVx1MDkzOVx1MDkz''@;'; + put 'put ''RFx1MDk1MFx1MDk1OC1cdTA5NjFcdTA5NjYtXHUwOTZGXHUwOTcxLVx1MDk4MFx1MDk4NS1cdTA5OENcdTA5OEZcdTA5OTBcdTA5OTMtXHUwOUE4XHUwOUFBLVx1MDlCMFx1MDlCMlx1MDlCNi1cdTA5QjlcdTA5QkRcdTA5Q0VcdTA5RENcdTA5RERcdTA5REYtXHUwOUUxXHUwOUU2LVx1MDlG''@;'; + put 'put ''MVx1MDlGNC1cdTA5RjlcdTA5RkNcdTBBMDUtXHUwQTBBXHUwQTBGXHUwQTEwXHUwQTEzLVx1MEEyOFx1MEEyQS1cdTBBMzBcdTBBMzJcdTBBMzNcdTBBMzVcdTBBMzZcdTBBMzhcdTBBMzlcdTBBNTktXHUwQTVDXHUwQTVFXHUwQTY2LVx1MEE2Rlx1MEE3Mi1cdTBBNzRcdTBBODUtXHUwQThE''@;'; + put 'put ''XHUwQThGLVx1MEE5MVx1MEE5My1cdTBBQThcdTBBQUEtXHUwQUIwXHUwQUIyXHUwQUIzXHUwQUI1LVx1MEFCOVx1MEFCRFx1MEFEMFx1MEFFMFx1MEFFMVx1MEFFNi1cdTBBRUZcdTBBRjlcdTBCMDUtXHUwQjBDXHUwQjBGXHUwQjEwXHUwQjEzLVx1MEIyOFx1MEIyQS1cdTBCMzBcdTBCMzJc''@;'; + put 'put ''dTBCMzNcdTBCMzUtXHUwQjM5XHUwQjNEXHUwQjVDXHUwQjVEXHUwQjVGLVx1MEI2MVx1MEI2Ni1cdTBCNkZcdTBCNzEtXHUwQjc3XHUwQjgzXHUwQjg1LVx1MEI4QVx1MEI4RS1cdTBCOTBcdTBCOTItXHUwQjk1XHUwQjk5XHUwQjlBXHUwQjlDXHUwQjlFXHUwQjlGXHUwQkEzXHUwQkE0XHUw''@;'; + put 'put ''QkE4LVx1MEJBQVx1MEJBRS1cdTBCQjlcdTBCRDBcdTBCRTYtXHUwQkYyXHUwQzA1LVx1MEMwQ1x1MEMwRS1cdTBDMTBcdTBDMTItXHUwQzI4XHUwQzJBLVx1MEMzOVx1MEMzRFx1MEM1OC1cdTBDNUFcdTBDNURcdTBDNjBcdTBDNjFcdTBDNjYtXHUwQzZGXHUwQzc4LVx1MEM3RVx1MEM4MFx1''@;'; + put 'put ''MEM4NS1cdTBDOENcdTBDOEUtXHUwQzkwXHUwQzkyLVx1MENBOFx1MENBQS1cdTBDQjNcdTBDQjUtXHUwQ0I5XHUwQ0JEXHUwQ0REXHUwQ0RFXHUwQ0UwXHUwQ0UxXHUwQ0U2LVx1MENFRlx1MENGMVx1MENGMlx1MEQwNC1cdTBEMENcdTBEMEUtXHUwRDEwXHUwRDEyLVx1MEQzQVx1MEQzRFx1''@;'; + put 'put ''MEQ0RVx1MEQ1NC1cdTBENTZcdTBENTgtXHUwRDYxXHUwRDY2LVx1MEQ3OFx1MEQ3QS1cdTBEN0ZcdTBEODUtXHUwRDk2XHUwRDlBLVx1MERCMVx1MERCMy1cdTBEQkJcdTBEQkRcdTBEQzAtXHUwREM2XHUwREU2LVx1MERFRlx1MEUwMS1cdTBFMzBcdTBFMzJcdTBFMzNcdTBFNDAtXHUwRTQ2''@;'; + put 'put ''XHUwRTUwLVx1MEU1OVx1MEU4MVx1MEU4Mlx1MEU4NFx1MEU4Ni1cdTBFOEFcdTBFOEMtXHUwRUEzXHUwRUE1XHUwRUE3LVx1MEVCMFx1MEVCMlx1MEVCM1x1MEVCRFx1MEVDMC1cdTBFQzRcdTBFQzZcdTBFRDAtXHUwRUQ5XHUwRURDLVx1MEVERlx1MEYwMFx1MEYyMC1cdTBGMzNcdTBGNDAt''@;'; + put 'put ''XHUwRjQ3XHUwRjQ5LVx1MEY2Q1x1MEY4OC1cdTBGOENcdTEwMDAtXHUxMDJBXHUxMDNGLVx1MTA0OVx1MTA1MC1cdTEwNTVcdTEwNUEtXHUxMDVEXHUxMDYxXHUxMDY1XHUxMDY2XHUxMDZFLVx1MTA3MFx1MTA3NS1cdTEwODFcdTEwOEVcdTEwOTAtXHUxMDk5XHUxMEEwLVx1MTBDNVx1MTBD''@;'; + put 'put ''N1x1MTBDRFx1MTBEMC1cdTEwRkFcdTEwRkMtXHUxMjQ4XHUxMjRBLVx1MTI0RFx1MTI1MC1cdTEyNTZcdTEyNThcdTEyNUEtXHUxMjVEXHUxMjYwLVx1MTI4OFx1MTI4QS1cdTEyOERcdTEyOTAtXHUxMkIwXHUxMkIyLVx1MTJCNVx1MTJCOC1cdTEyQkVcdTEyQzBcdTEyQzItXHUxMkM1XHUx''@;'; + put 'put ''MkM4LVx1MTJENlx1MTJEOC1cdTEzMTBcdTEzMTItXHUxMzE1XHUxMzE4LVx1MTM1QVx1MTM2OS1cdTEzN0NcdTEzODAtXHUxMzhGXHUxM0EwLVx1MTNGNVx1MTNGOC1cdTEzRkRcdTE0MDEtXHUxNjZDXHUxNjZGLVx1MTY3Rlx1MTY4MS1cdTE2OUFcdTE2QTAtXHUxNkVBXHUxNkVFLVx1MTZG''@;'; + put 'put ''OFx1MTcwMC1cdTE3MTFcdTE3MUYtXHUxNzMxXHUxNzQwLVx1MTc1MVx1MTc2MC1cdTE3NkNcdTE3NkUtXHUxNzcwXHUxNzgwLVx1MTdCM1x1MTdEN1x1MTdEQ1x1MTdFMC1cdTE3RTlcdTE3RjAtXHUxN0Y5XHUxODEwLVx1MTgxOVx1MTgyMC1cdTE4NzhcdTE4ODAtXHUxODg0XHUxODg3LVx1''@;'; + put 'put ''MThBOFx1MThBQVx1MThCMC1cdTE4RjVcdTE5MDAtXHUxOTFFXHUxOTQ2LVx1MTk2RFx1MTk3MC1cdTE5NzRcdTE5ODAtXHUxOUFCXHUxOUIwLVx1MTlDOVx1MTlEMC1cdTE5REFcdTFBMDAtXHUxQTE2XHUxQTIwLVx1MUE1NFx1MUE4MC1cdTFBODlcdTFBOTAtXHUxQTk5XHUxQUE3XHUxQjA1''@;'; + put 'put ''LVx1MUIzM1x1MUI0NS1cdTFCNENcdTFCNTAtXHUxQjU5XHUxQjgzLVx1MUJBMFx1MUJBRS1cdTFCRTVcdTFDMDAtXHUxQzIzXHUxQzQwLVx1MUM0OVx1MUM0RC1cdTFDN0RcdTFDODAtXHUxQzg4XHUxQzkwLVx1MUNCQVx1MUNCRC1cdTFDQkZcdTFDRTktXHUxQ0VDXHUxQ0VFLVx1MUNGM1x1''@;'; + put 'put ''MUNGNVx1MUNGNlx1MUNGQVx1MUQwMC1cdTFEQkZcdTFFMDAtXHUxRjE1XHUxRjE4LVx1MUYxRFx1MUYyMC1cdTFGNDVcdTFGNDgtXHUxRjREXHUxRjUwLVx1MUY1N1x1MUY1OVx1MUY1Qlx1MUY1RFx1MUY1Ri1cdTFGN0RcdTFGODAtXHUxRkI0XHUxRkI2LVx1MUZCQ1x1MUZCRVx1MUZDMi1c''@;'; + put 'put ''dTFGQzRcdTFGQzYtXHUxRkNDXHUxRkQwLVx1MUZEM1x1MUZENi1cdTFGREJcdTFGRTAtXHUxRkVDXHUxRkYyLVx1MUZGNFx1MUZGNi1cdTFGRkNcdTIwNzBcdTIwNzFcdTIwNzQtXHUyMDc5XHUyMDdGLVx1MjA4OVx1MjA5MC1cdTIwOUNcdTIxMDJcdTIxMDdcdTIxMEEtXHUyMTEzXHUyMTE1''@;'; + put 'put ''XHUyMTE5LVx1MjExRFx1MjEyNFx1MjEyNlx1MjEyOFx1MjEyQS1cdTIxMkRcdTIxMkYtXHUyMTM5XHUyMTNDLVx1MjEzRlx1MjE0NS1cdTIxNDlcdTIxNEVcdTIxNTAtXHUyMTg5XHUyNDYwLVx1MjQ5Qlx1MjRFQS1cdTI0RkZcdTI3NzYtXHUyNzkzXHUyQzAwLVx1MkNFNFx1MkNFQi1cdTJD''@;'; + put 'put ''RUVcdTJDRjJcdTJDRjNcdTJDRkRcdTJEMDAtXHUyRDI1XHUyRDI3XHUyRDJEXHUyRDMwLVx1MkQ2N1x1MkQ2Rlx1MkQ4MC1cdTJEOTZcdTJEQTAtXHUyREE2XHUyREE4LVx1MkRBRVx1MkRCMC1cdTJEQjZcdTJEQjgtXHUyREJFXHUyREMwLVx1MkRDNlx1MkRDOC1cdTJEQ0VcdTJERDAtXHUy''@;'; + put 'put ''REQ2XHUyREQ4LVx1MkRERVx1MkUyRlx1MzAwNS1cdTMwMDdcdTMwMjEtXHUzMDI5XHUzMDMxLVx1MzAzNVx1MzAzOC1cdTMwM0NcdTMwNDEtXHUzMDk2XHUzMDlELVx1MzA5Rlx1MzBBMS1cdTMwRkFcdTMwRkMtXHUzMEZGXHUzMTA1LVx1MzEyRlx1MzEzMS1cdTMxOEVcdTMxOTItXHUzMTk1''@;'; + put 'put ''XHUzMUEwLVx1MzFCRlx1MzFGMC1cdTMxRkZcdTMyMjAtXHUzMjI5XHUzMjQ4LVx1MzI0Rlx1MzI1MS1cdTMyNUZcdTMyODAtXHUzMjg5XHUzMkIxLVx1MzJCRlx1MzQwMC1cdTREQkZcdTRFMDAtXHVBNDhDXHVBNEQwLVx1QTRGRFx1QTUwMC1cdUE2MENcdUE2MTAtXHVBNjJCXHVBNjQwLVx1''@;'; + put 'put ''QTY2RVx1QTY3Ri1cdUE2OURcdUE2QTAtXHVBNkVGXHVBNzE3LVx1QTcxRlx1QTcyMi1cdUE3ODhcdUE3OEItXHVBN0NBXHVBN0QwXHVBN0QxXHVBN0QzXHVBN0Q1LVx1QTdEOVx1QTdGMi1cdUE4MDFcdUE4MDMtXHVBODA1XHVBODA3LVx1QTgwQVx1QTgwQy1cdUE4MjJcdUE4MzAtXHVBODM1''@;'; + put 'put ''XHVBODQwLVx1QTg3M1x1QTg4Mi1cdUE4QjNcdUE4RDAtXHVBOEQ5XHVBOEYyLVx1QThGN1x1QThGQlx1QThGRFx1QThGRVx1QTkwMC1cdUE5MjVcdUE5MzAtXHVBOTQ2XHVBOTYwLVx1QTk3Q1x1QTk4NC1cdUE5QjJcdUE5Q0YtXHVBOUQ5XHVBOUUwLVx1QTlFNFx1QTlFNi1cdUE5RkVcdUFB''@;'; + put 'put ''MDAtXHVBQTI4XHVBQTQwLVx1QUE0Mlx1QUE0NC1cdUFBNEJcdUFBNTAtXHVBQTU5XHVBQTYwLVx1QUE3Nlx1QUE3QVx1QUE3RS1cdUFBQUZcdUFBQjFcdUFBQjVcdUFBQjZcdUFBQjktXHVBQUJEXHVBQUMwXHVBQUMyXHVBQURCLVx1QUFERFx1QUFFMC1cdUFBRUFcdUFBRjItXHVBQUY0XHVB''@;'; + put 'put ''QjAxLVx1QUIwNlx1QUIwOS1cdUFCMEVcdUFCMTEtXHVBQjE2XHVBQjIwLVx1QUIyNlx1QUIyOC1cdUFCMkVcdUFCMzAtXHVBQjVBXHVBQjVDLVx1QUI2OVx1QUI3MC1cdUFCRTJcdUFCRjAtXHVBQkY5XHVBQzAwLVx1RDdBM1x1RDdCMC1cdUQ3QzZcdUQ3Q0ItXHVEN0ZCXHVGOTAwLVx1RkE2''@;'; + put 'put ''RFx1RkE3MC1cdUZBRDlcdUZCMDAtXHVGQjA2XHVGQjEzLVx1RkIxN1x1RkIxRFx1RkIxRi1cdUZCMjhcdUZCMkEtXHVGQjM2XHVGQjM4LVx1RkIzQ1x1RkIzRVx1RkI0MFx1RkI0MVx1RkI0M1x1RkI0NFx1RkI0Ni1cdUZCQjFcdUZCRDMtXHVGRDNEXHVGRDUwLVx1RkQ4Rlx1RkQ5Mi1cdUZE''@;'; + put 'put ''QzdcdUZERjAtXHVGREZCXHVGRTcwLVx1RkU3NFx1RkU3Ni1cdUZFRkNcdUZGMTAtXHVGRjE5XHVGRjIxLVx1RkYzQVx1RkY0MS1cdUZGNUFcdUZGNjYtXHVGRkJFXHVGRkMyLVx1RkZDN1x1RkZDQS1cdUZGQ0ZcdUZGRDItXHVGRkQ3XHVGRkRBLVx1RkZEQ118XHVEODAwW1x1REMwMC1cdURD''@;'; + put 'put ''MEJcdURDMEQtXHVEQzI2XHVEQzI4LVx1REMzQVx1REMzQ1x1REMzRFx1REMzRi1cdURDNERcdURDNTAtXHVEQzVEXHVEQzgwLVx1RENGQVx1REQwNy1cdUREMzNcdURENDAtXHVERDc4XHVERDhBXHVERDhCXHVERTgwLVx1REU5Q1x1REVBMC1cdURFRDBcdURFRTEtXHVERUZCXHVERjAwLVx1''@;'; + put 'put ''REYyM1x1REYyRC1cdURGNEFcdURGNTAtXHVERjc1XHVERjgwLVx1REY5RFx1REZBMC1cdURGQzNcdURGQzgtXHVERkNGXHVERkQxLVx1REZENV18XHVEODAxW1x1REMwMC1cdURDOURcdURDQTAtXHVEQ0E5XHVEQ0IwLVx1RENEM1x1RENEOC1cdURDRkJcdUREMDAtXHVERDI3XHVERDMwLVx1''@;'; + put 'put ''REQ2M1x1REQ3MC1cdUREN0FcdUREN0MtXHVERDhBXHVERDhDLVx1REQ5Mlx1REQ5NFx1REQ5NVx1REQ5Ny1cdUREQTFcdUREQTMtXHVEREIxXHVEREIzLVx1RERCOVx1RERCQlx1RERCQ1x1REUwMC1cdURGMzZcdURGNDAtXHVERjU1XHVERjYwLVx1REY2N1x1REY4MC1cdURGODVcdURGODct''@;'; + put 'put ''XHVERkIwXHVERkIyLVx1REZCQV18XHVEODAyW1x1REMwMC1cdURDMDVcdURDMDhcdURDMEEtXHVEQzM1XHVEQzM3XHVEQzM4XHVEQzNDXHVEQzNGLVx1REM1NVx1REM1OC1cdURDNzZcdURDNzktXHVEQzlFXHVEQ0E3LVx1RENBRlx1RENFMC1cdURDRjJcdURDRjRcdURDRjVcdURDRkItXHVE''@;'; + put 'put ''RDFCXHVERDIwLVx1REQzOVx1REQ4MC1cdUREQjdcdUREQkMtXHVERENGXHVEREQyLVx1REUwMFx1REUxMC1cdURFMTNcdURFMTUtXHVERTE3XHVERTE5LVx1REUzNVx1REU0MC1cdURFNDhcdURFNjAtXHVERTdFXHVERTgwLVx1REU5Rlx1REVDMC1cdURFQzdcdURFQzktXHVERUU0XHVERUVC''@;'; + put 'put ''LVx1REVFRlx1REYwMC1cdURGMzVcdURGNDAtXHVERjU1XHVERjU4LVx1REY3Mlx1REY3OC1cdURGOTFcdURGQTktXHVERkFGXXxcdUQ4MDNbXHVEQzAwLVx1REM0OFx1REM4MC1cdURDQjJcdURDQzAtXHVEQ0YyXHVEQ0ZBLVx1REQyM1x1REQzMC1cdUREMzlcdURFNjAtXHVERTdFXHVERTgw''@;'; + put 'put ''LVx1REVBOVx1REVCMFx1REVCMVx1REYwMC1cdURGMjdcdURGMzAtXHVERjQ1XHVERjUxLVx1REY1NFx1REY3MC1cdURGODFcdURGQjAtXHVERkNCXHVERkUwLVx1REZGNl18XHVEODA0W1x1REMwMy1cdURDMzdcdURDNTItXHVEQzZGXHVEQzcxXHVEQzcyXHVEQzc1XHVEQzgzLVx1RENBRlx1''@;'; + put 'put ''RENEMC1cdURDRThcdURDRjAtXHVEQ0Y5XHVERDAzLVx1REQyNlx1REQzNi1cdUREM0ZcdURENDRcdURENDdcdURENTAtXHVERDcyXHVERDc2XHVERDgzLVx1RERCMlx1RERDMS1cdUREQzRcdURERDAtXHVERERBXHVERERDXHVEREUxLVx1RERGNFx1REUwMC1cdURFMTFcdURFMTMtXHVERTJC''@;'; + put 'put ''XHVERTgwLVx1REU4Nlx1REU4OFx1REU4QS1cdURFOERcdURFOEYtXHVERTlEXHVERTlGLVx1REVBOFx1REVCMC1cdURFREVcdURFRjAtXHVERUY5XHVERjA1LVx1REYwQ1x1REYwRlx1REYxMFx1REYxMy1cdURGMjhcdURGMkEtXHVERjMwXHVERjMyXHVERjMzXHVERjM1LVx1REYzOVx1REYz''@;'; + put 'put ''RFx1REY1MFx1REY1RC1cdURGNjFdfFx1RDgwNVtcdURDMDAtXHVEQzM0XHVEQzQ3LVx1REM0QVx1REM1MC1cdURDNTlcdURDNUYtXHVEQzYxXHVEQzgwLVx1RENBRlx1RENDNFx1RENDNVx1RENDN1x1RENEMC1cdURDRDlcdUREODAtXHVEREFFXHVEREQ4LVx1REREQlx1REUwMC1cdURFMkZc''@;'; + put 'put ''dURFNDRcdURFNTAtXHVERTU5XHVERTgwLVx1REVBQVx1REVCOFx1REVDMC1cdURFQzlcdURGMDAtXHVERjFBXHVERjMwLVx1REYzQlx1REY0MC1cdURGNDZdfFx1RDgwNltcdURDMDAtXHVEQzJCXHVEQ0EwLVx1RENGMlx1RENGRi1cdUREMDZcdUREMDlcdUREMEMtXHVERDEzXHVERDE1XHVE''@;'; + put 'put ''RDE2XHVERDE4LVx1REQyRlx1REQzRlx1REQ0MVx1REQ1MC1cdURENTlcdUREQTAtXHVEREE3XHVEREFBLVx1REREMFx1RERFMVx1RERFM1x1REUwMFx1REUwQi1cdURFMzJcdURFM0FcdURFNTBcdURFNUMtXHVERTg5XHVERTlEXHVERUIwLVx1REVGOF18XHVEODA3W1x1REMwMC1cdURDMDhc''@;'; + put 'put ''dURDMEEtXHVEQzJFXHVEQzQwXHVEQzUwLVx1REM2Q1x1REM3Mi1cdURDOEZcdUREMDAtXHVERDA2XHVERDA4XHVERDA5XHVERDBCLVx1REQzMFx1REQ0Nlx1REQ1MC1cdURENTlcdURENjAtXHVERDY1XHVERDY3XHVERDY4XHVERDZBLVx1REQ4OVx1REQ5OFx1RERBMC1cdUREQTlcdURFRTAt''@;'; + put 'put ''XHVERUYyXHVERkIwXHVERkMwLVx1REZENF18XHVEODA4W1x1REMwMC1cdURGOTldfFx1RDgwOVtcdURDMDAtXHVEQzZFXHVEQzgwLVx1REQ0M118XHVEODBCW1x1REY5MC1cdURGRjBdfFtcdUQ4MENcdUQ4MUMtXHVEODIwXHVEODIyXHVEODQwLVx1RDg2OFx1RDg2QS1cdUQ4NkNcdUQ4NkYt''@;'; + put 'put ''XHVEODcyXHVEODc0LVx1RDg3OVx1RDg4MC1cdUQ4ODNdW1x1REMwMC1cdURGRkZdfFx1RDgwRFtcdURDMDAtXHVEQzJFXXxcdUQ4MTFbXHVEQzAwLVx1REU0Nl18XHVEODFBW1x1REMwMC1cdURFMzhcdURFNDAtXHVERTVFXHVERTYwLVx1REU2OVx1REU3MC1cdURFQkVcdURFQzAtXHVERUM5''@;'; + put 'put ''XHVERUQwLVx1REVFRFx1REYwMC1cdURGMkZcdURGNDAtXHVERjQzXHVERjUwLVx1REY1OVx1REY1Qi1cdURGNjFcdURGNjMtXHVERjc3XHVERjdELVx1REY4Rl18XHVEODFCW1x1REU0MC1cdURFOTZcdURGMDAtXHVERjRBXHVERjUwXHVERjkzLVx1REY5Rlx1REZFMFx1REZFMVx1REZFM118''@;'; + put 'put ''XHVEODIxW1x1REMwMC1cdURGRjddfFx1RDgyM1tcdURDMDAtXHVEQ0Q1XHVERDAwLVx1REQwOF18XHVEODJCW1x1REZGMC1cdURGRjNcdURGRjUtXHVERkZCXHVERkZEXHVERkZFXXxcdUQ4MkNbXHVEQzAwLVx1REQyMlx1REQ1MC1cdURENTJcdURENjQtXHVERDY3XHVERDcwLVx1REVGQl18''@;'; + put 'put ''XHVEODJGW1x1REMwMC1cdURDNkFcdURDNzAtXHVEQzdDXHVEQzgwLVx1REM4OFx1REM5MC1cdURDOTldfFx1RDgzNFtcdURFRTAtXHVERUYzXHVERjYwLVx1REY3OF18XHVEODM1W1x1REMwMC1cdURDNTRcdURDNTYtXHVEQzlDXHVEQzlFXHVEQzlGXHVEQ0EyXHVEQ0E1XHVEQ0E2XHVEQ0E5''@;'; + put 'put ''LVx1RENBQ1x1RENBRS1cdURDQjlcdURDQkJcdURDQkQtXHVEQ0MzXHVEQ0M1LVx1REQwNVx1REQwNy1cdUREMEFcdUREMEQtXHVERDE0XHVERDE2LVx1REQxQ1x1REQxRS1cdUREMzlcdUREM0ItXHVERDNFXHVERDQwLVx1REQ0NFx1REQ0Nlx1REQ0QS1cdURENTBcdURENTItXHVERUE1XHVE''@;'; + put 'put ''RUE4LVx1REVDMFx1REVDMi1cdURFREFcdURFREMtXHVERUZBXHVERUZDLVx1REYxNFx1REYxNi1cdURGMzRcdURGMzYtXHVERjRFXHVERjUwLVx1REY2RVx1REY3MC1cdURGODhcdURGOEEtXHVERkE4XHVERkFBLVx1REZDMlx1REZDNC1cdURGQ0JcdURGQ0UtXHVERkZGXXxcdUQ4MzdbXHVE''@;'; + put 'put ''RjAwLVx1REYxRV18XHVEODM4W1x1REQwMC1cdUREMkNcdUREMzctXHVERDNEXHVERDQwLVx1REQ0OVx1REQ0RVx1REU5MC1cdURFQURcdURFQzAtXHVERUVCXHVERUYwLVx1REVGOV18XHVEODM5W1x1REZFMC1cdURGRTZcdURGRTgtXHVERkVCXHVERkVEXHVERkVFXHVERkYwLVx1REZGRV18''@;'; + put 'put ''XHVEODNBW1x1REMwMC1cdURDQzRcdURDQzctXHVEQ0NGXHVERDAwLVx1REQ0M1x1REQ0Qlx1REQ1MC1cdURENTldfFx1RDgzQltcdURDNzEtXHVEQ0FCXHVEQ0FELVx1RENBRlx1RENCMS1cdURDQjRcdUREMDEtXHVERDJEXHVERDJGLVx1REQzRFx1REUwMC1cdURFMDNcdURFMDUtXHVERTFG''@;'; + put 'put ''XHVERTIxXHVERTIyXHVERTI0XHVERTI3XHVERTI5LVx1REUzMlx1REUzNC1cdURFMzdcdURFMzlcdURFM0JcdURFNDJcdURFNDdcdURFNDlcdURFNEJcdURFNEQtXHVERTRGXHVERTUxXHVERTUyXHVERTU0XHVERTU3XHVERTU5XHVERTVCXHVERTVEXHVERTVGXHVERTYxXHVERTYyXHVERTY0''@;'; + put 'put ''XHVERTY3LVx1REU2QVx1REU2Qy1cdURFNzJcdURFNzQtXHVERTc3XHVERTc5LVx1REU3Q1x1REU3RVx1REU4MC1cdURFODlcdURFOEItXHVERTlCXHVERUExLVx1REVBM1x1REVBNS1cdURFQTlcdURFQUItXHVERUJCXXxcdUQ4M0NbXHVERDAwLVx1REQwQ118XHVEODNFW1x1REZGMC1cdURG''@;'; + put 'put ''RjldfFx1RDg2OVtcdURDMDAtXHVERURGXHVERjAwLVx1REZGRl18XHVEODZEW1x1REMwMC1cdURGMzhcdURGNDAtXHVERkZGXXxcdUQ4NkVbXHVEQzAwLVx1REMxRFx1REMyMC1cdURGRkZdfFx1RDg3M1tcdURDMDAtXHVERUExXHVERUIwLVx1REZGRl18XHVEODdBW1x1REMwMC1cdURGRTBd''@;'; + put 'put ''fFx1RDg3RVtcdURDMDAtXHVERTFEXXxcdUQ4ODRbXHVEQzAwLVx1REY0QV0pLykpJiYoIVRbMV0mJiFUWzJdfHwiIj09PVp8fHRoaXMucnVsZXMuaW5saW5lLnB1bmN0dWF0aW9uLmV4ZWMoWikpKXt2YXIgZTE9VFswXS5sZW5ndGgtMSxyMT1lMSxaMT0wLFk9IioiPT09VFswXVswXT90aGlz''@;'; + put 'put ''LnJ1bGVzLmlubGluZS5lbVN0cm9uZy5yRGVsaW1Bc3Q6dGhpcy5ydWxlcy5pbmxpbmUuZW1TdHJvbmcuckRlbGltVW5kO2ZvcihZLmxhc3RJbmRleD0wLEQ9RC5zbGljZSgtMSp5Lmxlbmd0aCtlMSk7bnVsbCE9KFQ9WS5leGVjKEQpKTspaWYocT1UWzFdfHxUWzJdfHxUWzNdfHxUWzRdfHxU''@;'; + put 'put ''WzVdfHxUWzZdKWlmKHE9cS5sZW5ndGgsVFszXXx8VFs0XSlyMSs9cTtlbHNlIGlmKChUWzVdfHxUWzZdKSYmZTElMyYmISgoZTErcSklMykpWjErPXE7ZWxzZSBpZighKDA8KHIxLT1xKSkpe3ZhciBxPU1hdGgubWluKHEscStyMStaMSk7aWYoTWF0aC5taW4oZTEscSklMilyZXR1cm4gSj15''@;'; + put 'put ''LnNsaWNlKDEsZTErVC5pbmRleCtxKSx7dHlwZToiZW0iLHJhdzp5LnNsaWNlKDAsZTErVC5pbmRleCtxKzEpLHRleHQ6Six0b2tlbnM6dGhpcy5sZXhlci5pbmxpbmVUb2tlbnMoSixbXSl9O3ZhciBKPXkuc2xpY2UoMixlMStULmluZGV4K3EtMSk7cmV0dXJue3R5cGU6InN0cm9uZyIscmF3''@;'; + put 'put ''Onkuc2xpY2UoMCxlMStULmluZGV4K3ErMSksdGV4dDpKLHRva2Vuczp0aGlzLmxleGVyLmlubGluZVRva2VucyhKLFtdKX19fX0sei5jb2Rlc3Bhbj1mdW5jdGlvbihQKXt2YXIgRCxaLFQ7aWYoUD10aGlzLnJ1bGVzLmlubGluZS5jb2RlLmV4ZWMoUCkpcmV0dXJuIFQ9UFsyXS5yZXBsYWNl''@;'; + put 'put ''KC9cbi9nLCIgIiksRD0vW14gXS8udGVzdChUKSxaPS9eIC8udGVzdChUKSYmLyAkLy50ZXN0KFQpLFQ9ZihUPUQmJlo/VC5zdWJzdHJpbmcoMSxULmxlbmd0aC0xKTpULCEwKSx7dHlwZToiY29kZXNwYW4iLHJhdzpQWzBdLHRleHQ6VH19LHouYnI9ZnVuY3Rpb24oeSl7aWYoeT10aGlzLnJ1''@;'; + put 'put ''bGVzLmlubGluZS5ici5leGVjKHkpKXJldHVybnt0eXBlOiJiciIscmF3OnlbMF19fSx6LmRlbD1mdW5jdGlvbih5KXtpZih5PXRoaXMucnVsZXMuaW5saW5lLmRlbC5leGVjKHkpKXJldHVybnt0eXBlOiJkZWwiLHJhdzp5WzBdLHRleHQ6eVsyXSx0b2tlbnM6dGhpcy5sZXhlci5pbmxpbmVU''@;'; + put 'put ''b2tlbnMoeVsyXSxbXSl9fSx6LmF1dG9saW5rPWZ1bmN0aW9uKFQsRCl7dmFyIFo7aWYoVD10aGlzLnJ1bGVzLmlubGluZS5hdXRvbGluay5leGVjKFQpKXJldHVybiBEPSJAIj09PVRbMl0/Im1haWx0bzoiKyhaPWYodGhpcy5vcHRpb25zLm1hbmdsZT9EKFRbMV0pOlRbMV0pKTpaPWYoVFsx''@;'; + put 'put ''XSkse3R5cGU6ImxpbmsiLHJhdzpUWzBdLHRleHQ6WixocmVmOkQsdG9rZW5zOlt7dHlwZToidGV4dCIscmF3OlosdGV4dDpafV19fSx6LnVybD1mdW5jdGlvbih5LEQpe3ZhciBaLFQsUCxlMTtpZihaPXRoaXMucnVsZXMuaW5saW5lLnVybC5leGVjKHkpKXtpZigiQCI9PT1aWzJdKVA9Im1h''@;'; + put 'put ''aWx0bzoiKyhUPWYodGhpcy5vcHRpb25zLm1hbmdsZT9EKFpbMF0pOlpbMF0pKTtlbHNle2Zvcig7ZTE9WlswXSxaWzBdPXRoaXMucnVsZXMuaW5saW5lLl9iYWNrcGVkYWwuZXhlYyhaWzBdKVswXSxlMSE9PVpbMF07KTtUPWYoWlswXSksUD0id3d3LiI9PT1aWzFdPyJodHRwOi8vIitUOlR9''@;'; + put 'put ''cmV0dXJue3R5cGU6ImxpbmsiLHJhdzpaWzBdLHRleHQ6VCxocmVmOlAsdG9rZW5zOlt7dHlwZToidGV4dCIscmF3OlQsdGV4dDpUfV19fX0sei5pbmxpbmVUZXh0PWZ1bmN0aW9uKHksRCl7aWYoeT10aGlzLnJ1bGVzLmlubGluZS50ZXh0LmV4ZWMoeSkpcmV0dXJuIEQ9dGhpcy5sZXhlci5z''@;'; + put 'put ''dGF0ZS5pblJhd0Jsb2NrP3RoaXMub3B0aW9ucy5zYW5pdGl6ZT90aGlzLm9wdGlvbnMuc2FuaXRpemVyP3RoaXMub3B0aW9ucy5zYW5pdGl6ZXIoeVswXSk6Zih5WzBdKTp5WzBdOmYodGhpcy5vcHRpb25zLnNtYXJ0eXBhbnRzP0QoeVswXSk6eVswXSkse3R5cGU6InRleHQiLHJhdzp5WzBd''@;'; + put 'put ''LHRleHQ6RH19LCR9KCksQj17bmV3bGluZTovXig/OiAqKD86XG58JCkpKy8sY29kZTovXiggezR9W15cbl0rKD86XG4oPzogKig/OlxufCQpKSopPykrLyxmZW5jZXM6L14gezAsM30oYHszLH0oPz1bXmBcbl0qXG4pfH57Myx9KShbXlxuXSopXG4oPzp8KFtcc1xTXSo/KVxuKSg/OiB7MCwz''@;'; + put 'put ''fVwxW35gXSogKig/PVxufCQpfCQpLyxocjovXiB7MCwzfSgoPzotW1x0IF0qKXszLH18KD86X1sgXHRdKil7Myx9fCg/OlwqWyBcdF0qKXszLH0pKD86XG4rfCQpLyxoZWFkaW5nOi9eIHswLDN9KCN7MSw2fSkoPz1cc3wkKSguKikoPzpcbit8JCkvLGJsb2NrcXVvdGU6L14oIHswLDN9PiA/''@;'; + put 'put ''KHBhcmFncmFwaHxbXlxuXSopKD86XG58JCkpKy8sbGlzdDovXiggezAsM31idWxsKShbIFx0XVteXG5dKz8pPyg/OlxufCQpLyxodG1sOiJeIHswLDN9KD86PChzY3JpcHR8cHJlfHN0eWxlfHRleHRhcmVhKVtcXHM+XVtcXHNcXFNdKj8oPzo8L1xcMT5bXlxcbl0qXFxuK3wkKXxjb21tZW50''@;'; + put 'put ''W15cXG5dKihcXG4rfCQpfDxcXD9bXFxzXFxTXSo/KD86XFw/Plxcbip8JCl8PCFbQS1aXVtcXHNcXFNdKj8oPzo+XFxuKnwkKXw8IVxcW0NEQVRBXFxbW1xcc1xcU10qPyg/OlxcXVxcXT5cXG4qfCQpfDwvPyh0YWcpKD86ICt8XFxufC8/PilbXFxzXFxTXSo/KD86KD86XFxuICopK1xcbnwk''@;'; + put 'put ''KXw8KD8hc2NyaXB0fHByZXxzdHlsZXx0ZXh0YXJlYSkoW2Etel1bXFx3LV0qKSg/OmF0dHJpYnV0ZSkqPyAqLz8+KD89WyBcXHRdKig/OlxcbnwkKSlbXFxzXFxTXSo/KD86KD86XFxuICopK1xcbnwkKXw8Lyg/IXNjcmlwdHxwcmV8c3R5bGV8dGV4dGFyZWEpW2Etel1bXFx3LV0qXFxzKj4o''@;'; + put 'put ''Pz1bIFxcdF0qKD86XFxufCQpKVtcXHNcXFNdKj8oPzooPzpcXG4gKikrXFxufCQpKSIsZGVmOi9eIHswLDN9XFsobGFiZWwpXF06ICooPzpcbiAqKT88PyhbXlxzPl0rKT4/KD86KD86ICsoPzpcbiAqKT98ICpcbiAqKSh0aXRsZSkpPyAqKD86XG4rfCQpLyx0YWJsZTpjMSxsaGVhZGluZzov''@;'; + put 'put ''XihbXlxuXSspXG4gezAsM30oPSt8LSspICooPzpcbit8JCkvLF9wYXJhZ3JhcGg6L14oW15cbl0rKD86XG4oPyFocnxoZWFkaW5nfGxoZWFkaW5nfGJsb2NrcXVvdGV8ZmVuY2VzfGxpc3R8aHRtbHx0YWJsZXwgK1xuKVteXG5dKykqKS8sdGV4dDovXlteXG5dKy8sX2xhYmVsOi8oPyFccypc''@;'; + put 'put ''XSkoPzpcXC58W15cW1xdXFxdKSsvLF90aXRsZTovKD86Iig/OlxcIj98W14iXFxdKSoifCdbXidcbl0qKD86XG5bXidcbl0rKSpcbj8nfFwoW14oKV0qXCkpL30sUj0oQi5kZWY9dihCLmRlZikucmVwbGFjZSgibGFiZWwiLEIuX2xhYmVsKS5yZXBsYWNlKCJ0aXRsZSIsQi5fdGl0bGUpLmdl''@;'; + put 'put ''dFJlZ2V4KCksQi5idWxsZXQ9Lyg/OlsqKy1dfFxkezEsOX1bLildKS8sQi5saXN0SXRlbVN0YXJ0PXYoL14oICopKGJ1bGwpICovKS5yZXBsYWNlKCJidWxsIixCLmJ1bGxldCkuZ2V0UmVnZXgoKSxCLmxpc3Q9dihCLmxpc3QpLnJlcGxhY2UoL2J1bGwvZyxCLmJ1bGxldCkucmVwbGFjZSgi''@;'; + put 'put ''aHIiLCJcXG4rKD89XFwxPyg/Oig/Oi0gKil7Myx9fCg/Ol8gKil7Myx9fCg/OlxcKiAqKXszLH0pKD86XFxuK3wkKSkiKS5yZXBsYWNlKCJkZWYiLCJcXG4rKD89IitCLmRlZi5zb3VyY2UrIikiKS5nZXRSZWdleCgpLEIuX3RhZz0iYWRkcmVzc3xhcnRpY2xlfGFzaWRlfGJhc2V8YmFzZWZv''@;'; + put 'put ''bnR8YmxvY2txdW90ZXxib2R5fGNhcHRpb258Y2VudGVyfGNvbHxjb2xncm91cHxkZHxkZXRhaWxzfGRpYWxvZ3xkaXJ8ZGl2fGRsfGR0fGZpZWxkc2V0fGZpZ2NhcHRpb258ZmlndXJlfGZvb3Rlcnxmb3JtfGZyYW1lfGZyYW1lc2V0fGhbMS02XXxoZWFkfGhlYWRlcnxocnxodG1sfGlmcmFt''@;'; + put 'put ''ZXxsZWdlbmR8bGl8bGlua3xtYWlufG1lbnV8bWVudWl0ZW18bWV0YXxuYXZ8bm9mcmFtZXN8b2x8b3B0Z3JvdXB8b3B0aW9ufHB8cGFyYW18c2VjdGlvbnxzb3VyY2V8c3VtbWFyeXx0YWJsZXx0Ym9keXx0ZHx0Zm9vdHx0aHx0aGVhZHx0aXRsZXx0cnx0cmFja3x1bCIsQi5fY29tbWVudD0v''@;'; + put 'put ''PCEtLSg/IS0/PilbXHNcU10qPyg/Oi0tPnwkKS8sQi5odG1sPXYoQi5odG1sLCJpIikucmVwbGFjZSgiY29tbWVudCIsQi5fY29tbWVudCkucmVwbGFjZSgidGFnIixCLl90YWcpLnJlcGxhY2UoImF0dHJpYnV0ZSIsLyArW2EtekEtWjpfXVtcdy46LV0qKD86ICo9ICoiW14iXG5dKiJ8ICo9''@;'; + put 'put ''IConW14nXG5dKid8ICo9ICpbXlxzIic9PD5gXSspPy8pLmdldFJlZ2V4KCksQi5wYXJhZ3JhcGg9dihCLl9wYXJhZ3JhcGgpLnJlcGxhY2UoImhyIixCLmhyKS5yZXBsYWNlKCJoZWFkaW5nIiwiIHswLDN9I3sxLDZ9ICIpLnJlcGxhY2UoInxsaGVhZGluZyIsIiIpLnJlcGxhY2UoInx0YWJs''@;'; + put 'put ''ZSIsIiIpLnJlcGxhY2UoImJsb2NrcXVvdGUiLCIgezAsM30+IikucmVwbGFjZSgiZmVuY2VzIiwiIHswLDN9KD86YHszLH0oPz1bXmBcXG5dKlxcbil8fnszLH0pW15cXG5dKlxcbiIpLnJlcGxhY2UoImxpc3QiLCIgezAsM30oPzpbKistXXwxWy4pXSkgIikucmVwbGFjZSgiaHRtbCIsIjwv''@;'; + put 'put ''Pyg/OnRhZykoPzogK3xcXG58Lz8+KXw8KD86c2NyaXB0fHByZXxzdHlsZXx0ZXh0YXJlYXwhLS0pIikucmVwbGFjZSgidGFnIixCLl90YWcpLmdldFJlZ2V4KCksQi5ibG9ja3F1b3RlPXYoQi5ibG9ja3F1b3RlKS5yZXBsYWNlKCJwYXJhZ3JhcGgiLEIucGFyYWdyYXBoKS5nZXRSZWdleCgp''@;'; + put 'put ''LEIubm9ybWFsPXgoe30sQiksQi5nZm09eCh7fSxCLm5vcm1hbCx7dGFibGU6Il4gKihbXlxcbiBdLipcXHwuKilcXG4gezAsM30oPzpcXHwgKik/KDo/LSs6PyAqKD86XFx8ICo6Py0rOj8gKikqKSg/OlxcfCAqKT8oPzpcXG4oKD86KD8hICpcXG58aHJ8aGVhZGluZ3xibG9ja3F1b3RlfGNv''@;'; + put 'put ''ZGV8ZmVuY2VzfGxpc3R8aHRtbCkuKig/OlxcbnwkKSkqKVxcbip8JCkifSksQi5nZm0udGFibGU9dihCLmdmbS50YWJsZSkucmVwbGFjZSgiaHIiLEIuaHIpLnJlcGxhY2UoImhlYWRpbmciLCIgezAsM30jezEsNn0gIikucmVwbGFjZSgiYmxvY2txdW90ZSIsIiB7MCwzfT4iKS5yZXBsYWNl''@;'; + put 'put ''KCJjb2RlIiwiIHs0fVteXFxuXSIpLnJlcGxhY2UoImZlbmNlcyIsIiB7MCwzfSg/OmB7Myx9KD89W15gXFxuXSpcXG4pfH57Myx9KVteXFxuXSpcXG4iKS5yZXBsYWNlKCJsaXN0IiwiIHswLDN9KD86WyorLV18MVsuKV0pICIpLnJlcGxhY2UoImh0bWwiLCI8Lz8oPzp0YWcpKD86ICt8XFxu''@;'; + put 'put ''fC8/Pil8PCg/OnNjcmlwdHxwcmV8c3R5bGV8dGV4dGFyZWF8IS0tKSIpLnJlcGxhY2UoInRhZyIsQi5fdGFnKS5nZXRSZWdleCgpLEIuZ2ZtLnBhcmFncmFwaD12KEIuX3BhcmFncmFwaCkucmVwbGFjZSgiaHIiLEIuaHIpLnJlcGxhY2UoImhlYWRpbmciLCIgezAsM30jezEsNn0gIikucmVw''@;'; + put 'put ''bGFjZSgifGxoZWFkaW5nIiwiIikucmVwbGFjZSgidGFibGUiLEIuZ2ZtLnRhYmxlKS5yZXBsYWNlKCJibG9ja3F1b3RlIiwiIHswLDN9PiIpLnJlcGxhY2UoImZlbmNlcyIsIiB7MCwzfSg/OmB7Myx9KD89W15gXFxuXSpcXG4pfH57Myx9KVteXFxuXSpcXG4iKS5yZXBsYWNlKCJsaXN0Iiwi''@;'; + put 'put ''IHswLDN9KD86WyorLV18MVsuKV0pICIpLnJlcGxhY2UoImh0bWwiLCI8Lz8oPzp0YWcpKD86ICt8XFxufC8/Pil8PCg/OnNjcmlwdHxwcmV8c3R5bGV8dGV4dGFyZWF8IS0tKSIpLnJlcGxhY2UoInRhZyIsQi5fdGFnKS5nZXRSZWdleCgpLEIucGVkYW50aWM9eCh7fSxCLm5vcm1hbCx7aHRt''@;'; + put 'put ''bDp2KCJeICooPzpjb21tZW50ICooPzpcXG58XFxzKiQpfDwodGFnKVtcXHNcXFNdKz88L1xcMT4gKig/OlxcbnsyLH18XFxzKiQpfDx0YWcoPzpcIlteXCJdKlwifCdbXiddKid8XFxzW14nXCIvPlxcc10qKSo/Lz8+ICooPzpcXG57Mix9fFxccyokKSkiKS5yZXBsYWNlKCJjb21tZW50IixC''@;'; + put 'put ''Ll9jb21tZW50KS5yZXBsYWNlKC90YWcvZywiKD8hKD86YXxlbXxzdHJvbmd8c21hbGx8c3xjaXRlfHF8ZGZufGFiYnJ8ZGF0YXx0aW1lfGNvZGV8dmFyfHNhbXB8a2JkfHN1YnxzdXB8aXxifHV8bWFya3xydWJ5fHJ0fHJwfGJkaXxiZG98c3Bhbnxicnx3YnJ8aW5zfGRlbHxpbWcpXFxiKVxc''@;'; + put 'put ''dysoPyE6fFteXFx3XFxzQF0qQClcXGIiKS5nZXRSZWdleCgpLGRlZjovXiAqXFsoW15cXV0rKVxdOiAqPD8oW15ccz5dKyk+Pyg/OiArKFsiKF1bXlxuXStbIildKSk/ICooPzpcbit8JCkvLGhlYWRpbmc6L14oI3sxLDZ9KSguKikoPzpcbit8JCkvLGZlbmNlczpjMSxwYXJhZ3JhcGg6dihC''@;'; + put 'put ''Lm5vcm1hbC5fcGFyYWdyYXBoKS5yZXBsYWNlKCJociIsQi5ocikucmVwbGFjZSgiaGVhZGluZyIsIiAqI3sxLDZ9ICpbXlxuXSIpLnJlcGxhY2UoImxoZWFkaW5nIixCLmxoZWFkaW5nKS5yZXBsYWNlKCJibG9ja3F1b3RlIiwiIHswLDN9PiIpLnJlcGxhY2UoInxmZW5jZXMiLCIiKS5yZXBs''@;'; + put 'put ''YWNlKCJ8bGlzdCIsIiIpLnJlcGxhY2UoInxodG1sIiwiIikuZ2V0UmVnZXgoKX0pLHtlc2NhcGU6L15cXChbISIjJCUmJygpKissXC0uLzo7PD0+P0BcW1xdXFxeX2B7fH1+XSkvLGF1dG9saW5rOi9ePChzY2hlbWU6W15cc1x4MDAtXHgxZjw+XSp8ZW1haWwpPi8sdXJsOmMxLHRhZzoiXmNv''@;'; + put 'put ''bW1lbnR8XjwvW2EtekEtWl1bXFx3Oi1dKlxccyo+fF48W2EtekEtWl1bXFx3LV0qKD86YXR0cmlidXRlKSo/XFxzKi8/PnxePFxcP1tcXHNcXFNdKj9cXD8+fF48IVthLXpBLVpdK1xcc1tcXHNcXFNdKj8+fF48IVxcW0NEQVRBXFxbW1xcc1xcU10qP1xcXVxcXT4iLGxpbms6L14hP1xbKGxh''@;'; + put 'put ''YmVsKVxdXChccyooaHJlZikoPzpccysodGl0bGUpKT9ccypcKS8scmVmbGluazovXiE/XFsobGFiZWwpXF1cWyhyZWYpXF0vLG5vbGluazovXiE/XFsocmVmKVxdKD86XFtcXSk/LyxyZWZsaW5rU2VhcmNoOiJyZWZsaW5rfG5vbGluayg/IVxcKCkiLGVtU3Ryb25nOntsRGVsaW06L14oPzpc''@;'; + put 'put ''KisoPzooW3B1bmN0X10pfFteXHMqXSkpfF5fKyg/OihbcHVuY3QqXSl8KFteXHNfXSkpLyxyRGVsaW1Bc3Q6L15bXl8qXSo/XF9cX1teXypdKj9cKlteXypdKj8oPz1cX1xfKXxbXipdKyg/PVteKl0pfFtwdW5jdF9dKFwqKykoPz1bXHNdfCQpfFtecHVuY3QqX1xzXShcKispKD89W3B1bmN0''@;'; + put 'put ''X1xzXXwkKXxbcHVuY3RfXHNdKFwqKykoPz1bXnB1bmN0Kl9cc10pfFtcc10oXCorKSg/PVtwdW5jdF9dKXxbcHVuY3RfXShcKispKD89W3B1bmN0X10pfFtecHVuY3QqX1xzXShcKispKD89W15wdW5jdCpfXHNdKS8sckRlbGltVW5kOi9eW15fKl0qP1wqXCpbXl8qXSo/XF9bXl8qXSo/KD89''@;'; + put 'put ''XCpcKil8W15fXSsoPz1bXl9dKXxbcHVuY3QqXShcXyspKD89W1xzXXwkKXxbXnB1bmN0Kl9cc10oXF8rKSg/PVtwdW5jdCpcc118JCl8W3B1bmN0KlxzXShcXyspKD89W15wdW5jdCpfXHNdKXxbXHNdKFxfKykoPz1bcHVuY3QqXSl8W3B1bmN0Kl0oXF8rKSg/PVtwdW5jdCpdKS99LGNvZGU6''@;'; + put 'put ''L14oYCspKFteYF18W15gXVtcc1xTXSo/W15gXSlcMSg/IWApLyxicjovXiggezIsfXxcXClcbig/IVxzKiQpLyxkZWw6YzEsdGV4dDovXihgK3xbXmBdKSg/Oig/PSB7Mix9XG4pfFtcc1xTXSo/KD86KD89W1xcPCFcW2AqX118XGJffCQpfFteIF0oPz0gezIsfVxuKSkpLyxwdW5jdHVhdGlv''@;'; + put 'put ''bjovXihbXHNwdW5jdHVhdGlvbl0pL30pO2Z1bmN0aW9uIGwxKCQpe3JldHVybiAkLnJlcGxhY2UoLy0tLS9nLCJcdTIwMTQiKS5yZXBsYWNlKC8tLS9nLCJcdTIwMTMiKS5yZXBsYWNlKC8oXnxbLVx1MjAxNC8oXFt7IlxzXSknL2csIiQxXHUyMDE4IikucmVwbGFjZSgvJy9nLCJcdTIwMTki''@;'; + put 'put ''KS5yZXBsYWNlKC8oXnxbLVx1MjAxNC8oXFt7XHUyMDE4XHNdKSIvZywiJDFcdTIwMWMiKS5yZXBsYWNlKC8iL2csIlx1MjAxZCIpLnJlcGxhY2UoL1wuezN9L2csIlx1MjAyNiIpfWZ1bmN0aW9uIGExKCQpe2Zvcih2YXIgeix5PSIiLEQ9JC5sZW5ndGgsWj0wO1o8RDtaKyspej0kLmNoYXJD''@;'; + put 'put ''b2RlQXQoWikseSs9IiYjIisoej0uNTxNYXRoLnJhbmRvbSgpPyJ4Iit6LnRvU3RyaW5nKDE2KTp6KSsiOyI7cmV0dXJuIHl9Ui5fcHVuY3R1YXRpb249IiFcIiMkJSYnKCkrXFwtLiwvOjs8PT4/QFxcW1xcXWBee3x9fiIsUi5wdW5jdHVhdGlvbj12KFIucHVuY3R1YXRpb24pLnJlcGxhY2Uo''@;'; + put 'put ''L3B1bmN0dWF0aW9uL2csUi5fcHVuY3R1YXRpb24pLmdldFJlZ2V4KCksUi5ibG9ja1NraXA9L1xbW15cXV0qP1xdXChbXlwpXSo/XCl8YFteYF0qP2B8PFtePl0qPz4vZyxSLmVzY2FwZWRFbVN0PS9cXFwqfFxcXy9nLFIuX2NvbW1lbnQ9dihCLl9jb21tZW50KS5yZXBsYWNlKCIoPzotLVx4''@;'; + put 'put ''M2V8JCkiLCItLVx4M2UiKS5nZXRSZWdleCgpLFIuZW1TdHJvbmcubERlbGltPXYoUi5lbVN0cm9uZy5sRGVsaW0pLnJlcGxhY2UoL3B1bmN0L2csUi5fcHVuY3R1YXRpb24pLmdldFJlZ2V4KCksUi5lbVN0cm9uZy5yRGVsaW1Bc3Q9dihSLmVtU3Ryb25nLnJEZWxpbUFzdCwiZyIpLnJlcGxh''@;'; + put 'put ''Y2UoL3B1bmN0L2csUi5fcHVuY3R1YXRpb24pLmdldFJlZ2V4KCksUi5lbVN0cm9uZy5yRGVsaW1VbmQ9dihSLmVtU3Ryb25nLnJEZWxpbVVuZCwiZyIpLnJlcGxhY2UoL3B1bmN0L2csUi5fcHVuY3R1YXRpb24pLmdldFJlZ2V4KCksUi5fZXNjYXBlcz0vXFwoWyEiIyQlJicoKSorLFwtLi86''@;'; + put 'put ''Ozw9Pj9AXFtcXVxcXl9ge3x9fl0pL2csUi5fc2NoZW1lPS9bYS16QS1aXVthLXpBLVowLTkrLi1dezEsMzF9LyxSLl9lbWFpbD0vW2EtekEtWjAtOS4hIyQlJicqKy89P15fYHt8fX4tXSsoQClbYS16QS1aMC05XSg/OlthLXpBLVowLTktXXswLDYxfVthLXpBLVowLTldKT8oPzpcLlthLXpB''@;'; + put 'put ''LVowLTldKD86W2EtekEtWjAtOS1dezAsNjF9W2EtekEtWjAtOV0pPykrKD8hWy1fXSkvLFIuYXV0b2xpbms9dihSLmF1dG9saW5rKS5yZXBsYWNlKCJzY2hlbWUiLFIuX3NjaGVtZSkucmVwbGFjZSgiZW1haWwiLFIuX2VtYWlsKS5nZXRSZWdleCgpLFIuX2F0dHJpYnV0ZT0vXHMrW2EtekEt''@;'; + put 'put ''WjpfXVtcdy46LV0qKD86XHMqPVxzKiJbXiJdKiJ8XHMqPVxzKidbXiddKid8XHMqPVxzKlteXHMiJz08PmBdKyk/LyxSLnRhZz12KFIudGFnKS5yZXBsYWNlKCJjb21tZW50IixSLl9jb21tZW50KS5yZXBsYWNlKCJhdHRyaWJ1dGUiLFIuX2F0dHJpYnV0ZSkuZ2V0UmVnZXgoKSxSLl9sYWJl''@;'; + put 'put ''bD0vKD86XFsoPzpcXC58W15cW1xdXFxdKSpcXXxcXC58YFteYF0qYHxbXlxbXF1cXGBdKSo/LyxSLl9ocmVmPS88KD86XFwufFteXG48PlxcXSkrPnxbXlxzXHgwMC1ceDFmXSovLFIuX3RpdGxlPS8iKD86XFwiP3xbXiJcXF0pKiJ8Jyg/OlxcJz98W14nXFxdKSonfFwoKD86XFxcKT98W14p''@;'; + put 'put ''XFxdKSpcKS8sUi5saW5rPXYoUi5saW5rKS5yZXBsYWNlKCJsYWJlbCIsUi5fbGFiZWwpLnJlcGxhY2UoImhyZWYiLFIuX2hyZWYpLnJlcGxhY2UoInRpdGxlIixSLl90aXRsZSkuZ2V0UmVnZXgoKSxSLnJlZmxpbms9dihSLnJlZmxpbmspLnJlcGxhY2UoImxhYmVsIixSLl9sYWJlbCkucmVw''@;'; + put 'put ''bGFjZSgicmVmIixCLl9sYWJlbCkuZ2V0UmVnZXgoKSxSLm5vbGluaz12KFIubm9saW5rKS5yZXBsYWNlKCJyZWYiLEIuX2xhYmVsKS5nZXRSZWdleCgpLFIucmVmbGlua1NlYXJjaD12KFIucmVmbGlua1NlYXJjaCwiZyIpLnJlcGxhY2UoInJlZmxpbmsiLFIucmVmbGluaykucmVwbGFjZSgi''@;'; + put 'put ''bm9saW5rIixSLm5vbGluaykuZ2V0UmVnZXgoKSxSLm5vcm1hbD14KHt9LFIpLFIucGVkYW50aWM9eCh7fSxSLm5vcm1hbCx7c3Ryb25nOntzdGFydDovXl9ffFwqXCovLG1pZGRsZTovXl9fKD89XFMpKFtcc1xTXSo/XFMpX18oPyFfKXxeXCpcKig/PVxTKShbXHNcU10qP1xTKVwqXCooPyFc''@;'; + put 'put ''KikvLGVuZEFzdDovXCpcKig/IVwqKS9nLGVuZFVuZDovX18oPyFfKS9nfSxlbTp7c3RhcnQ6L15ffFwqLyxtaWRkbGU6L14oKVwqKD89XFMpKFtcc1xTXSo/XFMpXCooPyFcKil8Xl8oPz1cUykoW1xzXFNdKj9cUylfKD8hXykvLGVuZEFzdDovXCooPyFcKikvZyxlbmRVbmQ6L18oPyFfKS9n''@;'; + put 'put ''fSxsaW5rOnYoL14hP1xbKGxhYmVsKVxdXCgoLio/KVwpLykucmVwbGFjZSgibGFiZWwiLFIuX2xhYmVsKS5nZXRSZWdleCgpLHJlZmxpbms6digvXiE/XFsobGFiZWwpXF1ccypcWyhbXlxdXSopXF0vKS5yZXBsYWNlKCJsYWJlbCIsUi5fbGFiZWwpLmdldFJlZ2V4KCl9KSxSLmdmbT14KHt9''@;'; + put 'put ''LFIubm9ybWFsLHtlc2NhcGU6dihSLmVzY2FwZSkucmVwbGFjZSgiXSkiLCJ+fF0pIikuZ2V0UmVnZXgoKSxfZXh0ZW5kZWRfZW1haWw6L1tBLVphLXowLTkuXystXSsoQClbYS16QS1aMC05LV9dKyg/OlwuW2EtekEtWjAtOS1fXSpbYS16QS1aMC05XSkrKD8hWy1fXSkvLHVybDovXigoPzpm''@;'; + put 'put ''dHB8aHR0cHM/KTpcL1wvfHd3d1wuKSg/OlthLXpBLVowLTlcLV0rXC4/KStbXlxzPF0qfF5lbWFpbC8sX2JhY2twZWRhbDovKD86W14/IS4sOjsqX34oKSZdK3xcKFteKV0qXCl8Jig/IVthLXpBLVowLTldKzskKXxbPyEuLDo7Kl9+KV0rKD8hJCkpKy8sZGVsOi9eKH5+PykoPz1bXlxzfl0p''@;'; + put 'put ''KFtcc1xTXSo/W15cc35dKVwxKD89W15+XXwkKS8sdGV4dDovXihbYH5dK3xbXmB+XSkoPzooPz0gezIsfVxuKXwoPz1bYS16QS1aMC05LiEjJCUmJyorXC89P19ge1x8fX4tXStAKXxbXHNcU10qPyg/Oig/PVtcXDwhXFtgKn5fXXxcYl98aHR0cHM/OlwvXC98ZnRwOlwvXC98d3d3XC58JCl8''@;'; + put 'put ''W14gXSg/PSB7Mix9XG4pfFteYS16QS1aMC05LiEjJCUmJyorXC89P19ge1x8fX4tXSg/PVthLXpBLVowLTkuISMkJSYnKitcLz0/X2B7XHx9fi1dK0ApKSkvfSksUi5nZm0udXJsPXYoUi5nZm0udXJsLCJpIikucmVwbGFjZSgiZW1haWwiLFIuZ2ZtLl9leHRlbmRlZF9lbWFpbCkuZ2V0UmVn''@;'; + put 'put ''ZXgoKSxSLmJyZWFrcz14KHt9LFIuZ2ZtLHticjp2KFIuYnIpLnJlcGxhY2UoInsyLH0iLCIqIikuZ2V0UmVnZXgoKSx0ZXh0OnYoUi5nZm0udGV4dCkucmVwbGFjZSgiXFxiXyIsIlxcYl98IHsyLH1cXG4iKS5yZXBsYWNlKC9cezIsXH0vZywiKiIpLmdldFJlZ2V4KCl9KTt2YXIgaDE9ZnVu''@;'; + put 'put ''Y3Rpb24oKXtmdW5jdGlvbiAkKFope3RoaXMudG9rZW5zPVtdLHRoaXMudG9rZW5zLmxpbmtzPU9iamVjdC5jcmVhdGUobnVsbCksdGhpcy5vcHRpb25zPVp8fFguZGVmYXVsdHMsdGhpcy5vcHRpb25zLnRva2VuaXplcj10aGlzLm9wdGlvbnMudG9rZW5pemVyfHxuZXcgTyx0aGlzLnRva2Vu''@;'; + put 'put ''aXplcj10aGlzLm9wdGlvbnMudG9rZW5pemVyLHRoaXMudG9rZW5pemVyLm9wdGlvbnM9dGhpcy5vcHRpb25zLCh0aGlzLnRva2VuaXplci5sZXhlcj10aGlzKS5pbmxpbmVRdWV1ZT1bXSx0aGlzLnN0YXRlPXtpbkxpbms6ITEsaW5SYXdCbG9jazohMSx0b3A6ITB9LFo9e2Jsb2NrOkIubm9y''@;'; + put 'put ''bWFsLGlubGluZTpSLm5vcm1hbH0sdGhpcy5vcHRpb25zLnBlZGFudGljPyhaLmJsb2NrPUIucGVkYW50aWMsWi5pbmxpbmU9Ui5wZWRhbnRpYyk6dGhpcy5vcHRpb25zLmdmbSYmKFouYmxvY2s9Qi5nZm0sWi5pbmxpbmU9dGhpcy5vcHRpb25zLmJyZWFrcz9SLmJyZWFrczpSLmdmbSksdGhp''@;'; + put 'put ''cy50b2tlbml6ZXIucnVsZXM9Wn0kLmxleD1mdW5jdGlvbihaLFQpe3JldHVybiBuZXcgJChUKS5sZXgoWil9LCQubGV4SW5saW5lPWZ1bmN0aW9uKFosVCl7cmV0dXJuIG5ldyAkKFQpLmlubGluZVRva2VucyhaKX07dmFyIHksRD0kLnByb3RvdHlwZTtyZXR1cm4gRC5sZXg9ZnVuY3Rpb24o''@;'; + put 'put ''Wil7dmFyIFQ7Zm9yKFo9Wi5yZXBsYWNlKC9cclxufFxyL2csIlxuIiksdGhpcy5ibG9ja1Rva2VucyhaLHRoaXMudG9rZW5zKTtUPXRoaXMuaW5saW5lUXVldWUuc2hpZnQoKTspdGhpcy5pbmxpbmVUb2tlbnMoVC5zcmMsVC50b2tlbnMpO3JldHVybiB0aGlzLnRva2Vuc30sRC5ibG9ja1Rv''@;'; + put 'put ''a2Vucz1mdW5jdGlvbihaLFQpe3ZhciBQLGUxLHIxLFoxLFk9dGhpcztmb3Iodm9pZCAwPT09VCYmKFQ9W10pLFo9dGhpcy5vcHRpb25zLnBlZGFudGljP1oucmVwbGFjZSgvXHQvZywiICAgICIpLnJlcGxhY2UoL14gKyQvZ20sIiIpOloucmVwbGFjZSgvXiggKikoXHQrKS9nbSxmdW5jdGlv''@;'; + put 'put ''bihKLEExLE4xKXtyZXR1cm4gQTErIiAgICAiLnJlcGVhdChOMS5sZW5ndGgpfSk7WjspaWYoISh0aGlzLm9wdGlvbnMuZXh0ZW5zaW9ucyYmdGhpcy5vcHRpb25zLmV4dGVuc2lvbnMuYmxvY2smJnRoaXMub3B0aW9ucy5leHRlbnNpb25zLmJsb2NrLnNvbWUoZnVuY3Rpb24oSil7cmV0dXJu''@;'; + put 'put ''ISEoUD1KLmNhbGwoe2xleGVyOll9LFosVCkpJiYoWj1aLnN1YnN0cmluZyhQLnJhdy5sZW5ndGgpLFQucHVzaChQKSwhMCl9KSkpaWYoUD10aGlzLnRva2VuaXplci5zcGFjZShaKSlaPVouc3Vic3RyaW5nKFAucmF3Lmxlbmd0aCksMT09PVAucmF3Lmxlbmd0aCYmMDxULmxlbmd0aD9UW1Qu''@;'; + put 'put ''bGVuZ3RoLTFdLnJhdys9IlxuIjpULnB1c2goUCk7ZWxzZSBpZihQPXRoaXMudG9rZW5pemVyLmNvZGUoWikpWj1aLnN1YnN0cmluZyhQLnJhdy5sZW5ndGgpLCEoZTE9VFtULmxlbmd0aC0xXSl8fCJwYXJhZ3JhcGgiIT09ZTEudHlwZSYmInRleHQiIT09ZTEudHlwZT9ULnB1c2goUCk6KGUx''@;'; + put 'put ''LnJhdys9IlxuIitQLnJhdyxlMS50ZXh0Kz0iXG4iK1AudGV4dCx0aGlzLmlubGluZVF1ZXVlW3RoaXMuaW5saW5lUXVldWUubGVuZ3RoLTFdLnNyYz1lMS50ZXh0KTtlbHNlIGlmKFA9dGhpcy50b2tlbml6ZXIuZmVuY2VzKFopKVo9Wi5zdWJzdHJpbmcoUC5yYXcubGVuZ3RoKSxULnB1c2go''@;'; + put 'put ''UCk7ZWxzZSBpZihQPXRoaXMudG9rZW5pemVyLmhlYWRpbmcoWikpWj1aLnN1YnN0cmluZyhQLnJhdy5sZW5ndGgpLFQucHVzaChQKTtlbHNlIGlmKFA9dGhpcy50b2tlbml6ZXIuaHIoWikpWj1aLnN1YnN0cmluZyhQLnJhdy5sZW5ndGgpLFQucHVzaChQKTtlbHNlIGlmKFA9dGhpcy50b2tl''@;'; + put 'put ''bml6ZXIuYmxvY2txdW90ZShaKSlaPVouc3Vic3RyaW5nKFAucmF3Lmxlbmd0aCksVC5wdXNoKFApO2Vsc2UgaWYoUD10aGlzLnRva2VuaXplci5saXN0KFopKVo9Wi5zdWJzdHJpbmcoUC5yYXcubGVuZ3RoKSxULnB1c2goUCk7ZWxzZSBpZihQPXRoaXMudG9rZW5pemVyLmh0bWwoWikpWj1a''@;'; + put 'put ''LnN1YnN0cmluZyhQLnJhdy5sZW5ndGgpLFQucHVzaChQKTtlbHNlIGlmKFA9dGhpcy50b2tlbml6ZXIuZGVmKFopKVo9Wi5zdWJzdHJpbmcoUC5yYXcubGVuZ3RoKSwhKGUxPVRbVC5sZW5ndGgtMV0pfHwicGFyYWdyYXBoIiE9PWUxLnR5cGUmJiJ0ZXh0IiE9PWUxLnR5cGU/dGhpcy50b2tl''@;'; + put 'put ''bnMubGlua3NbUC50YWddfHwodGhpcy50b2tlbnMubGlua3NbUC50YWddPXtocmVmOlAuaHJlZix0aXRsZTpQLnRpdGxlfSk6KGUxLnJhdys9IlxuIitQLnJhdyxlMS50ZXh0Kz0iXG4iK1AucmF3LHRoaXMuaW5saW5lUXVldWVbdGhpcy5pbmxpbmVRdWV1ZS5sZW5ndGgtMV0uc3JjPWUxLnRl''@;'; + put 'put ''eHQpO2Vsc2UgaWYoUD10aGlzLnRva2VuaXplci50YWJsZShaKSlaPVouc3Vic3RyaW5nKFAucmF3Lmxlbmd0aCksVC5wdXNoKFApO2Vsc2UgaWYoUD10aGlzLnRva2VuaXplci5saGVhZGluZyhaKSlaPVouc3Vic3RyaW5nKFAucmF3Lmxlbmd0aCksVC5wdXNoKFApO2Vsc2UgaWYocjE9Wix0''@;'; + put 'put ''aGlzLm9wdGlvbnMuZXh0ZW5zaW9ucyYmdGhpcy5vcHRpb25zLmV4dGVuc2lvbnMuc3RhcnRCbG9jayYmZnVuY3Rpb24oKXt2YXIgSj0xLzAsQTE9Wi5zbGljZSgxKSxOMT12b2lkIDA7WS5vcHRpb25zLmV4dGVuc2lvbnMuc3RhcnRCbG9jay5mb3JFYWNoKGZ1bmN0aW9uKFMxKXsibnVtYmVy''@;'; + put 'put ''Ij09dHlwZW9mKE4xPVMxLmNhbGwoe2xleGVyOnRoaXN9LEExKSkmJjA8PU4xJiYoSj1NYXRoLm1pbihKLE4xKSl9KSxKPDEvMCYmMDw9SiYmKHIxPVouc3Vic3RyaW5nKDAsSisxKSl9KCksdGhpcy5zdGF0ZS50b3AmJihQPXRoaXMudG9rZW5pemVyLnBhcmFncmFwaChyMSkpKWUxPVRbVC5s''@;'; + put 'put ''ZW5ndGgtMV0sWjEmJiJwYXJhZ3JhcGgiPT09ZTEudHlwZT8oZTEucmF3Kz0iXG4iK1AucmF3LGUxLnRleHQrPSJcbiIrUC50ZXh0LHRoaXMuaW5saW5lUXVldWUucG9wKCksdGhpcy5pbmxpbmVRdWV1ZVt0aGlzLmlubGluZVF1ZXVlLmxlbmd0aC0xXS5zcmM9ZTEudGV4dCk6VC5wdXNoKFAp''@;'; + put 'put ''LFoxPXIxLmxlbmd0aCE9PVoubGVuZ3RoLFo9Wi5zdWJzdHJpbmcoUC5yYXcubGVuZ3RoKTtlbHNlIGlmKFA9dGhpcy50b2tlbml6ZXIudGV4dChaKSlaPVouc3Vic3RyaW5nKFAucmF3Lmxlbmd0aCksKGUxPVRbVC5sZW5ndGgtMV0pJiYidGV4dCI9PT1lMS50eXBlPyhlMS5yYXcrPSJcbiIr''@;'; + put 'put ''UC5yYXcsZTEudGV4dCs9IlxuIitQLnRleHQsdGhpcy5pbmxpbmVRdWV1ZS5wb3AoKSx0aGlzLmlubGluZVF1ZXVlW3RoaXMuaW5saW5lUXVldWUubGVuZ3RoLTFdLnNyYz1lMS50ZXh0KTpULnB1c2goUCk7ZWxzZSBpZihaKXt2YXIgcT0iSW5maW5pdGUgbG9vcCBvbiBieXRlOiAiK1ouY2hh''@;'; + put 'put ''ckNvZGVBdCgwKTtpZih0aGlzLm9wdGlvbnMuc2lsZW50KXtjb25zb2xlLmVycm9yKHEpO2JyZWFrfXRocm93IG5ldyBFcnJvcihxKX1yZXR1cm4gdGhpcy5zdGF0ZS50b3A9ITAsVH0sRC5pbmxpbmU9ZnVuY3Rpb24oWixUKXt0aGlzLmlubGluZVF1ZXVlLnB1c2goe3NyYzpaLHRva2VuczpU''@;'; + put 'put ''fSl9LEQuaW5saW5lVG9rZW5zPWZ1bmN0aW9uKFosVCl7dmFyIFAsZTEscjEsWjEsWSxxLEo9dGhpcyxBMT0odm9pZCAwPT09VCYmKFQ9W10pLFopO2lmKHRoaXMudG9rZW5zLmxpbmtzKXt2YXIgTjE9T2JqZWN0LmtleXModGhpcy50b2tlbnMubGlua3MpO2lmKDA8TjEubGVuZ3RoKWZvcig7''@;'; + put 'put ''bnVsbCE9KFoxPXRoaXMudG9rZW5pemVyLnJ1bGVzLmlubGluZS5yZWZsaW5rU2VhcmNoLmV4ZWMoQTEpKTspTjEuaW5jbHVkZXMoWjFbMF0uc2xpY2UoWjFbMF0ubGFzdEluZGV4T2YoIlsiKSsxLC0xKSkmJihBMT1BMS5zbGljZSgwLFoxLmluZGV4KSsiWyIrSSgiYSIsWjFbMF0ubGVuZ3Ro''@;'; + put 'put ''LTIpKyJdIitBMS5zbGljZSh0aGlzLnRva2VuaXplci5ydWxlcy5pbmxpbmUucmVmbGlua1NlYXJjaC5sYXN0SW5kZXgpKX1mb3IoO251bGwhPShaMT10aGlzLnRva2VuaXplci5ydWxlcy5pbmxpbmUuYmxvY2tTa2lwLmV4ZWMoQTEpKTspQTE9QTEuc2xpY2UoMCxaMS5pbmRleCkrIlsiK0ko''@;'; + put 'put ''ImEiLFoxWzBdLmxlbmd0aC0yKSsiXSIrQTEuc2xpY2UodGhpcy50b2tlbml6ZXIucnVsZXMuaW5saW5lLmJsb2NrU2tpcC5sYXN0SW5kZXgpO2Zvcig7bnVsbCE9KFoxPXRoaXMudG9rZW5pemVyLnJ1bGVzLmlubGluZS5lc2NhcGVkRW1TdC5leGVjKEExKSk7KUExPUExLnNsaWNlKDAsWjEu''@;'; + put 'put ''aW5kZXgpKyIrKyIrQTEuc2xpY2UodGhpcy50b2tlbml6ZXIucnVsZXMuaW5saW5lLmVzY2FwZWRFbVN0Lmxhc3RJbmRleCk7Zm9yKDtaOylpZihZfHwocT0iIiksWT0hMSwhKHRoaXMub3B0aW9ucy5leHRlbnNpb25zJiZ0aGlzLm9wdGlvbnMuZXh0ZW5zaW9ucy5pbmxpbmUmJnRoaXMub3B0''@;'; + put 'put ''aW9ucy5leHRlbnNpb25zLmlubGluZS5zb21lKGZ1bmN0aW9uKG4xKXtyZXR1cm4hIShQPW4xLmNhbGwoe2xleGVyOkp9LFosVCkpJiYoWj1aLnN1YnN0cmluZyhQLnJhdy5sZW5ndGgpLFQucHVzaChQKSwhMCl9KSkpaWYoUD10aGlzLnRva2VuaXplci5lc2NhcGUoWikpWj1aLnN1YnN0cmlu''@;'; + put 'put ''ZyhQLnJhdy5sZW5ndGgpLFQucHVzaChQKTtlbHNlIGlmKFA9dGhpcy50b2tlbml6ZXIudGFnKFopKVo9Wi5zdWJzdHJpbmcoUC5yYXcubGVuZ3RoKSwoZTE9VFtULmxlbmd0aC0xXSkmJiJ0ZXh0Ij09PVAudHlwZSYmInRleHQiPT09ZTEudHlwZT8oZTEucmF3Kz1QLnJhdyxlMS50ZXh0Kz1Q''@;'; + put 'put ''LnRleHQpOlQucHVzaChQKTtlbHNlIGlmKFA9dGhpcy50b2tlbml6ZXIubGluayhaKSlaPVouc3Vic3RyaW5nKFAucmF3Lmxlbmd0aCksVC5wdXNoKFApO2Vsc2UgaWYoUD10aGlzLnRva2VuaXplci5yZWZsaW5rKFosdGhpcy50b2tlbnMubGlua3MpKVo9Wi5zdWJzdHJpbmcoUC5yYXcubGVu''@;'; + put 'put ''Z3RoKSwoZTE9VFtULmxlbmd0aC0xXSkmJiJ0ZXh0Ij09PVAudHlwZSYmInRleHQiPT09ZTEudHlwZT8oZTEucmF3Kz1QLnJhdyxlMS50ZXh0Kz1QLnRleHQpOlQucHVzaChQKTtlbHNlIGlmKFA9dGhpcy50b2tlbml6ZXIuZW1TdHJvbmcoWixBMSxxKSlaPVouc3Vic3RyaW5nKFAucmF3Lmxl''@;'; + put 'put ''bmd0aCksVC5wdXNoKFApO2Vsc2UgaWYoUD10aGlzLnRva2VuaXplci5jb2Rlc3BhbihaKSlaPVouc3Vic3RyaW5nKFAucmF3Lmxlbmd0aCksVC5wdXNoKFApO2Vsc2UgaWYoUD10aGlzLnRva2VuaXplci5icihaKSlaPVouc3Vic3RyaW5nKFAucmF3Lmxlbmd0aCksVC5wdXNoKFApO2Vsc2Ug''@;'; + put 'put ''aWYoUD10aGlzLnRva2VuaXplci5kZWwoWikpWj1aLnN1YnN0cmluZyhQLnJhdy5sZW5ndGgpLFQucHVzaChQKTtlbHNlIGlmKFA9dGhpcy50b2tlbml6ZXIuYXV0b2xpbmsoWixhMSkpWj1aLnN1YnN0cmluZyhQLnJhdy5sZW5ndGgpLFQucHVzaChQKTtlbHNlIGlmKCF0aGlzLnN0YXRlLmlu''@;'; + put 'put ''TGluayYmKFA9dGhpcy50b2tlbml6ZXIudXJsKFosYTEpKSlaPVouc3Vic3RyaW5nKFAucmF3Lmxlbmd0aCksVC5wdXNoKFApO2Vsc2UgaWYocjE9Wix0aGlzLm9wdGlvbnMuZXh0ZW5zaW9ucyYmdGhpcy5vcHRpb25zLmV4dGVuc2lvbnMuc3RhcnRJbmxpbmUmJmZ1bmN0aW9uKCl7dmFyIG4x''@;'; + put 'put ''PTEvMCxpMT1aLnNsaWNlKDEpLGYxPXZvaWQgMDtKLm9wdGlvbnMuZXh0ZW5zaW9ucy5zdGFydElubGluZS5mb3JFYWNoKGZ1bmN0aW9uKHgxKXsibnVtYmVyIj09dHlwZW9mKGYxPXgxLmNhbGwoe2xleGVyOnRoaXN9LGkxKSkmJjA8PWYxJiYobjE9TWF0aC5taW4objEsZjEpKX0pLG4xPDEv''@;'; + put 'put ''MCYmMDw9bjEmJihyMT1aLnN1YnN0cmluZygwLG4xKzEpKX0oKSxQPXRoaXMudG9rZW5pemVyLmlubGluZVRleHQocjEsbDEpKVo9Wi5zdWJzdHJpbmcoUC5yYXcubGVuZ3RoKSwiXyIhPT1QLnJhdy5zbGljZSgtMSkmJihxPVAucmF3LnNsaWNlKC0xKSksWT0hMCwoZTE9VFtULmxlbmd0aC0x''@;'; + put 'put ''XSkmJiJ0ZXh0Ij09PWUxLnR5cGU/KGUxLnJhdys9UC5yYXcsZTEudGV4dCs9UC50ZXh0KTpULnB1c2goUCk7ZWxzZSBpZihaKXt2YXIgUzE9IkluZmluaXRlIGxvb3Agb24gYnl0ZTogIitaLmNoYXJDb2RlQXQoMCk7aWYodGhpcy5vcHRpb25zLnNpbGVudCl7Y29uc29sZS5lcnJvcihTMSk7''@;'; + put 'put ''YnJlYWt9dGhyb3cgbmV3IEVycm9yKFMxKX1yZXR1cm4gVH0sRD0kLCh5PVt7a2V5OiJydWxlcyIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJue2Jsb2NrOkIsaW5saW5lOlJ9fX1dKSYmRjEoRCx5KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoRCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSwkfSgp''@;'; + put 'put ''LHUxPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gJCh5KXt0aGlzLm9wdGlvbnM9eXx8WC5kZWZhdWx0c312YXIgej0kLnByb3RvdHlwZTtyZXR1cm4gei5jb2RlPWZ1bmN0aW9uKHksUCxaKXt2YXIgVDtyZXR1cm4gUD0oUHx8IiIpLm1hdGNoKC9cUyovKVswXSx0aGlzLm9wdGlvbnMuaGlnaGxpZ2h0''@;'; + put 'put ''JiZudWxsIT0oVD10aGlzLm9wdGlvbnMuaGlnaGxpZ2h0KHksUCkpJiZUIT09eSYmKFo9ITAseT1UKSx5PXkucmVwbGFjZSgvXG4kLywiIikrIlxuIixQPyc8cHJlPjxjb2RlIGNsYXNzPSInK3RoaXMub3B0aW9ucy5sYW5nUHJlZml4K2YoUCwhMCkrJyI+JysoWj95OmYoeSwhMCkpKyI8L2Nv''@;'; + put 'put ''ZGU+PC9wcmU+XG4iOiI8cHJlPjxjb2RlPiIrKFo/eTpmKHksITApKSsiPC9jb2RlPjwvcHJlPlxuIn0sei5ibG9ja3F1b3RlPWZ1bmN0aW9uKHkpe3JldHVybiI8YmxvY2txdW90ZT5cbiIreSsiPC9ibG9ja3F1b3RlPlxuIn0sei5odG1sPWZ1bmN0aW9uKHkpe3JldHVybiB5fSx6LmhlYWRp''@;'; + put 'put ''bmc9ZnVuY3Rpb24oeSxELFosVCl7cmV0dXJuIHRoaXMub3B0aW9ucy5oZWFkZXJJZHM/IjxoIitEKycgaWQ9IicrKHRoaXMub3B0aW9ucy5oZWFkZXJQcmVmaXgrVC5zbHVnKFopKSsnIj4nK3krIjwvaCIrRCsiPlxuIjoiPGgiK0QrIj4iK3krIjwvaCIrRCsiPlxuIn0sei5ocj1mdW5jdGlv''@;'; + put 'put ''bigpe3JldHVybiB0aGlzLm9wdGlvbnMueGh0bWw/Ijxoci8+XG4iOiI8aHI+XG4ifSx6Lmxpc3Q9ZnVuY3Rpb24oeSxELFope3ZhciBUPUQ/Im9sIjoidWwiO3JldHVybiI8IitUKyhEJiYxIT09Wj8nIHN0YXJ0PSInK1orJyInOiIiKSsiPlxuIit5KyI8LyIrVCsiPlxuIn0sei5saXN0aXRl''@;'; + put 'put ''bT1mdW5jdGlvbih5KXtyZXR1cm4iPGxpPiIreSsiPC9saT5cbiJ9LHouY2hlY2tib3g9ZnVuY3Rpb24oeSl7cmV0dXJuIjxpbnB1dCAiKyh5PydjaGVja2VkPSIiICc6IiIpKydkaXNhYmxlZD0iIiB0eXBlPSJjaGVja2JveCInKyh0aGlzLm9wdGlvbnMueGh0bWw/IiAvIjoiIikrIj4gIn0s''@;'; + put 'put ''ei5wYXJhZ3JhcGg9ZnVuY3Rpb24oeSl7cmV0dXJuIjxwPiIreSsiPC9wPlxuIn0sei50YWJsZT1mdW5jdGlvbih5LEQpe3JldHVybiI8dGFibGU+XG48dGhlYWQ+XG4iK3krIjwvdGhlYWQ+XG4iKyhEPUQmJiI8dGJvZHk+IitEKyI8L3Rib2R5PiIpKyI8L3RhYmxlPlxuIn0sei50YWJsZXJv''@;'; + put 'put ''dz1mdW5jdGlvbih5KXtyZXR1cm4iPHRyPlxuIit5KyI8L3RyPlxuIn0sei50YWJsZWNlbGw9ZnVuY3Rpb24oeSxEKXt2YXIgWj1ELmhlYWRlcj8idGgiOiJ0ZCI7cmV0dXJuKEQuYWxpZ24/IjwiK1orJyBhbGlnbj0iJytELmFsaWduKyciPic6IjwiK1orIj4iKSt5KyI8LyIrWisiPlxuIn0s''@;'; + put 'put ''ei5zdHJvbmc9ZnVuY3Rpb24oeSl7cmV0dXJuIjxzdHJvbmc+Iit5KyI8L3N0cm9uZz4ifSx6LmVtPWZ1bmN0aW9uKHkpe3JldHVybiI8ZW0+Iit5KyI8L2VtPiJ9LHouY29kZXNwYW49ZnVuY3Rpb24oeSl7cmV0dXJuIjxjb2RlPiIreSsiPC9jb2RlPiJ9LHouYnI9ZnVuY3Rpb24oKXtyZXR1''@;'; + put 'put ''cm4gdGhpcy5vcHRpb25zLnhodG1sPyI8YnIvPiI6Ijxicj4ifSx6LmRlbD1mdW5jdGlvbih5KXtyZXR1cm4iPGRlbD4iK3krIjwvZGVsPiJ9LHoubGluaz1mdW5jdGlvbih5LEQsWil7cmV0dXJuIG51bGw9PT0oeT1WKHRoaXMub3B0aW9ucy5zYW5pdGl6ZSx0aGlzLm9wdGlvbnMuYmFzZVVy''@;'; + put 'put ''bCx5KSk/WjooeT0nPGEgaHJlZj0iJytmKHkpKyciJyxEJiYoeSs9JyB0aXRsZT0iJytEKyciJykseSs9Ij4iK1orIjwvYT4iKX0sei5pbWFnZT1mdW5jdGlvbih5LEQsWil7cmV0dXJuIG51bGw9PT0oeT1WKHRoaXMub3B0aW9ucy5zYW5pdGl6ZSx0aGlzLm9wdGlvbnMuYmFzZVVybCx5KSk/''@;'; + put 'put ''WjooeT0nPGltZyBzcmM9IicreSsnIiBhbHQ9IicrWisnIicsRCYmKHkrPScgdGl0bGU9IicrRCsnIicpLHkrPXRoaXMub3B0aW9ucy54aHRtbD8iLz4iOiI+Iil9LHoudGV4dD1mdW5jdGlvbih5KXtyZXR1cm4geX0sJH0oKSxwMT1mdW5jdGlvbigpe2Z1bmN0aW9uICQoKXt9dmFyIHo9JC5w''@;'; + put 'put ''cm90b3R5cGU7cmV0dXJuIHouc3Ryb25nPWZ1bmN0aW9uKHkpe3JldHVybiB5fSx6LmVtPWZ1bmN0aW9uKHkpe3JldHVybiB5fSx6LmNvZGVzcGFuPWZ1bmN0aW9uKHkpe3JldHVybiB5fSx6LmRlbD1mdW5jdGlvbih5KXtyZXR1cm4geX0sei5odG1sPWZ1bmN0aW9uKHkpe3JldHVybiB5fSx6''@;'; + put 'put ''LnRleHQ9ZnVuY3Rpb24oeSl7cmV0dXJuIHl9LHoubGluaz1mdW5jdGlvbih5LEQsWil7cmV0dXJuIiIrWn0sei5pbWFnZT1mdW5jdGlvbih5LEQsWil7cmV0dXJuIiIrWn0sei5icj1mdW5jdGlvbigpe3JldHVybiIifSwkfSgpLHYxPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gJCgpe3RoaXMuc2Vl''@;'; + put 'put ''bj17fX12YXIgej0kLnByb3RvdHlwZTtyZXR1cm4gei5zZXJpYWxpemU9ZnVuY3Rpb24oeSl7cmV0dXJuIHkudG9Mb3dlckNhc2UoKS50cmltKCkucmVwbGFjZSgvPFshXC9hLXpdLio/Pi9naSwiIikucmVwbGFjZSgvW1x1MjAwMC1cdTIwNkZcdTJFMDAtXHUyRTdGXFwnISIjJCUmKCkqKywu''@;'; + put 'put ''Lzo7PD0+P0BbXF1eYHt8fX5dL2csIiIpLnJlcGxhY2UoL1xzL2csIi0iKX0sei5nZXROZXh0U2FmZVNsdWc9ZnVuY3Rpb24oeSxEKXt2YXIgWj15LFQ9MDtpZih0aGlzLnNlZW4uaGFzT3duUHJvcGVydHkoWikpZm9yKFQ9dGhpcy5zZWVuW3ldO1o9eSsiLSIrICsrVCx0aGlzLnNlZW4uaGFz''@;'; + put 'put ''T3duUHJvcGVydHkoWik7KTtyZXR1cm4gRHx8KHRoaXMuc2Vlblt5XT1ULHRoaXMuc2VlbltaXT0wKSxafSx6LnNsdWc9ZnVuY3Rpb24oeSxEKXtyZXR1cm4gdm9pZCAwPT09RCYmKEQ9e30pLHk9dGhpcy5zZXJpYWxpemUoeSksdGhpcy5nZXROZXh0U2FmZVNsdWcoeSxELmRyeXJ1bil9LCR9''@;'; + put 'put ''KCksRTE9ZnVuY3Rpb24oKXtmdW5jdGlvbiAkKHkpe3RoaXMub3B0aW9ucz15fHxYLmRlZmF1bHRzLHRoaXMub3B0aW9ucy5yZW5kZXJlcj10aGlzLm9wdGlvbnMucmVuZGVyZXJ8fG5ldyB1MSx0aGlzLnJlbmRlcmVyPXRoaXMub3B0aW9ucy5yZW5kZXJlcix0aGlzLnJlbmRlcmVyLm9wdGlv''@;'; + put 'put ''bnM9dGhpcy5vcHRpb25zLHRoaXMudGV4dFJlbmRlcmVyPW5ldyBwMSx0aGlzLnNsdWdnZXI9bmV3IHYxfSQucGFyc2U9ZnVuY3Rpb24oeSxEKXtyZXR1cm4gbmV3ICQoRCkucGFyc2UoeSl9LCQucGFyc2VJbmxpbmU9ZnVuY3Rpb24oeSxEKXtyZXR1cm4gbmV3ICQoRCkucGFyc2VJbmxpbmUo''@;'; + put 'put ''eSl9O3ZhciB6PSQucHJvdG90eXBlO3JldHVybiB6LnBhcnNlPWZ1bmN0aW9uKHksRCl7dm9pZCAwPT09RCYmKEQ9ITApO2Zvcih2YXIgWixULFAsZTEscjEsWjEsWSxxLEosQTEsTjEsUzEsbjEsaTEsZjEseDEsSTE9IiIsSjE9eS5sZW5ndGgsdDA9MDt0MDxKMTt0MCsrKWlmKHE9eVt0MF0s''@;'; + put 'put ''dGhpcy5vcHRpb25zLmV4dGVuc2lvbnMmJnRoaXMub3B0aW9ucy5leHRlbnNpb25zLnJlbmRlcmVycyYmdGhpcy5vcHRpb25zLmV4dGVuc2lvbnMucmVuZGVyZXJzW3EudHlwZV0mJighMSE9PSh4MT10aGlzLm9wdGlvbnMuZXh0ZW5zaW9ucy5yZW5kZXJlcnNbcS50eXBlXS5jYWxsKHtwYXJz''@;'; + put 'put ''ZXI6dGhpc30scSkpfHwhWyJzcGFjZSIsImhyIiwiaGVhZGluZyIsImNvZGUiLCJ0YWJsZSIsImJsb2NrcXVvdGUiLCJsaXN0IiwiaHRtbCIsInBhcmFncmFwaCIsInRleHQiXS5pbmNsdWRlcyhxLnR5cGUpKSlJMSs9eDF8fCIiO2Vsc2Ugc3dpdGNoKHEudHlwZSl7Y2FzZSJzcGFjZSI6Y29u''@;'; + put 'put ''dGludWU7Y2FzZSJociI6STErPXRoaXMucmVuZGVyZXIuaHIoKTtjb250aW51ZTtjYXNlImhlYWRpbmciOkkxKz10aGlzLnJlbmRlcmVyLmhlYWRpbmcodGhpcy5wYXJzZUlubGluZShxLnRva2VucykscS5kZXB0aCx1KHRoaXMucGFyc2VJbmxpbmUocS50b2tlbnMsdGhpcy50ZXh0UmVuZGVy''@;'; + put 'put ''ZXIpKSx0aGlzLnNsdWdnZXIpO2NvbnRpbnVlO2Nhc2UiY29kZSI6STErPXRoaXMucmVuZGVyZXIuY29kZShxLnRleHQscS5sYW5nLHEuZXNjYXBlZCk7Y29udGludWU7Y2FzZSJ0YWJsZSI6Zm9yKFoxPUo9IiIsUD1xLmhlYWRlci5sZW5ndGgsWj0wO1o8UDtaKyspWjErPXRoaXMucmVuZGVy''@;'; + put 'put ''ZXIudGFibGVjZWxsKHRoaXMucGFyc2VJbmxpbmUocS5oZWFkZXJbWl0udG9rZW5zKSx7aGVhZGVyOiEwLGFsaWduOnEuYWxpZ25bWl19KTtmb3IoSis9dGhpcy5yZW5kZXJlci50YWJsZXJvdyhaMSksWT0iIixQPXEucm93cy5sZW5ndGgsWj0wO1o8UDtaKyspe2ZvcihaMT0iIixlMT0ocjE9''@;'; + put 'put ''cS5yb3dzW1pdKS5sZW5ndGgsVD0wO1Q8ZTE7VCsrKVoxKz10aGlzLnJlbmRlcmVyLnRhYmxlY2VsbCh0aGlzLnBhcnNlSW5saW5lKHIxW1RdLnRva2Vucykse2hlYWRlcjohMSxhbGlnbjpxLmFsaWduW1RdfSk7WSs9dGhpcy5yZW5kZXJlci50YWJsZXJvdyhaMSl9STErPXRoaXMucmVuZGVy''@;'; + put 'put ''ZXIudGFibGUoSixZKTtjb250aW51ZTtjYXNlImJsb2NrcXVvdGUiOlk9dGhpcy5wYXJzZShxLnRva2VucyksSTErPXRoaXMucmVuZGVyZXIuYmxvY2txdW90ZShZKTtjb250aW51ZTtjYXNlImxpc3QiOmZvcihKPXEub3JkZXJlZCxmMD1xLnN0YXJ0LEExPXEubG9vc2UsUD1xLml0ZW1zLmxl''@;'; + put 'put ''bmd0aCxZPSIiLFo9MDtaPFA7WisrKW4xPShTMT1xLml0ZW1zW1pdKS5jaGVja2VkLGkxPVMxLnRhc2ssTjE9IiIsUzEudGFzayYmKGYxPXRoaXMucmVuZGVyZXIuY2hlY2tib3gobjEpLEExPzA8UzEudG9rZW5zLmxlbmd0aCYmInBhcmFncmFwaCI9PT1TMS50b2tlbnNbMF0udHlwZT8oUzEu''@;'; + put 'put ''dG9rZW5zWzBdLnRleHQ9ZjErIiAiK1MxLnRva2Vuc1swXS50ZXh0LFMxLnRva2Vuc1swXS50b2tlbnMmJjA8UzEudG9rZW5zWzBdLnRva2Vucy5sZW5ndGgmJiJ0ZXh0Ij09PVMxLnRva2Vuc1swXS50b2tlbnNbMF0udHlwZSYmKFMxLnRva2Vuc1swXS50b2tlbnNbMF0udGV4dD1mMSsiICIr''@;'; + put 'put ''UzEudG9rZW5zWzBdLnRva2Vuc1swXS50ZXh0KSk6UzEudG9rZW5zLnVuc2hpZnQoe3R5cGU6InRleHQiLHRleHQ6ZjF9KTpOMSs9ZjEpLE4xKz10aGlzLnBhcnNlKFMxLnRva2VucyxBMSksWSs9dGhpcy5yZW5kZXJlci5saXN0aXRlbShOMSxpMSxuMSk7STErPXRoaXMucmVuZGVyZXIubGlz''@;'; + put 'put ''dChZLEosZjApO2NvbnRpbnVlO2Nhc2UiaHRtbCI6STErPXRoaXMucmVuZGVyZXIuaHRtbChxLnRleHQpO2NvbnRpbnVlO2Nhc2UicGFyYWdyYXBoIjpJMSs9dGhpcy5yZW5kZXJlci5wYXJhZ3JhcGgodGhpcy5wYXJzZUlubGluZShxLnRva2VucykpO2NvbnRpbnVlO2Nhc2UidGV4dCI6Zm9y''@;'; + put 'put ''KFk9cS50b2tlbnM/dGhpcy5wYXJzZUlubGluZShxLnRva2Vucyk6cS50ZXh0O3QwKzE8SjEmJiJ0ZXh0Ij09PXlbdDArMV0udHlwZTspWSs9IlxuIisoKHE9eVsrK3QwXSkudG9rZW5zP3RoaXMucGFyc2VJbmxpbmUocS50b2tlbnMpOnEudGV4dCk7STErPUQ/dGhpcy5yZW5kZXJlci5wYXJh''@;'; + put 'put ''Z3JhcGgoWSk6WTtjb250aW51ZTtkZWZhdWx0OnZhciBmMD0nVG9rZW4gd2l0aCAiJytxLnR5cGUrJyIgdHlwZSB3YXMgbm90IGZvdW5kLic7aWYodGhpcy5vcHRpb25zLnNpbGVudClyZXR1cm4gdm9pZCBjb25zb2xlLmVycm9yKGYwKTt0aHJvdyBuZXcgRXJyb3IoZjApfXJldHVybiBJMX0s''@;'; + put 'put ''ei5wYXJzZUlubGluZT1mdW5jdGlvbih5LEQpe0Q9RHx8dGhpcy5yZW5kZXJlcjtmb3IodmFyIFosVCxQPSIiLGUxPXkubGVuZ3RoLHIxPTA7cjE8ZTE7cjErKylpZihaPXlbcjFdLHRoaXMub3B0aW9ucy5leHRlbnNpb25zJiZ0aGlzLm9wdGlvbnMuZXh0ZW5zaW9ucy5yZW5kZXJlcnMmJnRo''@;'; + put 'put ''aXMub3B0aW9ucy5leHRlbnNpb25zLnJlbmRlcmVyc1taLnR5cGVdJiYoITEhPT0oVD10aGlzLm9wdGlvbnMuZXh0ZW5zaW9ucy5yZW5kZXJlcnNbWi50eXBlXS5jYWxsKHtwYXJzZXI6dGhpc30sWikpfHwhWyJlc2NhcGUiLCJodG1sIiwibGluayIsImltYWdlIiwic3Ryb25nIiwiZW0iLCJj''@;'; + put 'put ''b2Rlc3BhbiIsImJyIiwiZGVsIiwidGV4dCJdLmluY2x1ZGVzKFoudHlwZSkpKVArPVR8fCIiO2Vsc2Ugc3dpdGNoKFoudHlwZSl7Y2FzZSJlc2NhcGUiOmNhc2UidGV4dCI6UCs9RC50ZXh0KFoudGV4dCk7YnJlYWs7Y2FzZSJodG1sIjpQKz1ELmh0bWwoWi50ZXh0KTticmVhaztjYXNlImxp''@;'; + put 'put ''bmsiOlArPUQubGluayhaLmhyZWYsWi50aXRsZSx0aGlzLnBhcnNlSW5saW5lKFoudG9rZW5zLEQpKTticmVhaztjYXNlImltYWdlIjpQKz1ELmltYWdlKFouaHJlZixaLnRpdGxlLFoudGV4dCk7YnJlYWs7Y2FzZSJzdHJvbmciOlArPUQuc3Ryb25nKHRoaXMucGFyc2VJbmxpbmUoWi50b2tl''@;'; + put 'put ''bnMsRCkpO2JyZWFrO2Nhc2UiZW0iOlArPUQuZW0odGhpcy5wYXJzZUlubGluZShaLnRva2VucyxEKSk7YnJlYWs7Y2FzZSJjb2Rlc3BhbiI6UCs9RC5jb2Rlc3BhbihaLnRleHQpO2JyZWFrO2Nhc2UiYnIiOlArPUQuYnIoKTticmVhaztjYXNlImRlbCI6UCs9RC5kZWwodGhpcy5wYXJzZUlu''@;'; + put 'put ''bGluZShaLnRva2VucyxEKSk7YnJlYWs7ZGVmYXVsdDp2YXIgWjE9J1Rva2VuIHdpdGggIicrWi50eXBlKyciIHR5cGUgd2FzIG5vdCBmb3VuZC4nO2lmKHRoaXMub3B0aW9ucy5zaWxlbnQpcmV0dXJuIHZvaWQgY29uc29sZS5lcnJvcihaMSk7dGhyb3cgbmV3IEVycm9yKFoxKX1yZXR1cm4g''@;'; + put 'put ''UH0sJH0oKTtmdW5jdGlvbiBqKCQseix5KXtpZihudWxsPT0kKXRocm93IG5ldyBFcnJvcigibWFya2VkKCk6IGlucHV0IHBhcmFtZXRlciBpcyB1bmRlZmluZWQgb3IgbnVsbCIpO2lmKCJzdHJpbmciIT10eXBlb2YgJCl0aHJvdyBuZXcgRXJyb3IoIm1hcmtlZCgpOiBpbnB1dCBwYXJhbWV0''@;'; + put 'put ''ZXIgaXMgb2YgdHlwZSAiK09iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCgkKSsiLCBzdHJpbmcgZXhwZWN0ZWQiKTtpZigiZnVuY3Rpb24iPT10eXBlb2YgeiYmKHk9eix6PW51bGwpLE4oej14KHt9LGouZGVmYXVsdHMsenx8e30pKSx5KXt2YXIgRCxaPXouaGlnaGxpZ2h0O3RyeXtE''@;'; + put 'put ''PWgxLmxleCgkLHopfWNhdGNoKHIxKXtyZXR1cm4geShyMSl9dmFyIFQ9ZnVuY3Rpb24ocjEpe3ZhciBaMTtpZighcjEpdHJ5e3oud2Fsa1Rva2VucyYmai53YWxrVG9rZW5zKEQsei53YWxrVG9rZW5zKSxaMT1FMS5wYXJzZShELHopfWNhdGNoKFkpe3IxPVl9cmV0dXJuIHouaGlnaGxpZ2h0''@;'; + put 'put ''PVoscjE/eShyMSk6eShudWxsLFoxKX07aWYoIVp8fFoubGVuZ3RoPDN8fChkZWxldGUgei5oaWdobGlnaHQsIUQubGVuZ3RoKSlyZXR1cm4gVCgpO3ZhciBQPTA7cmV0dXJuIGoud2Fsa1Rva2VucyhELGZ1bmN0aW9uKHIxKXsiY29kZSI9PT1yMS50eXBlJiYoUCsrLHNldFRpbWVvdXQoZnVu''@;'; + put 'put ''Y3Rpb24oKXtaKHIxLnRleHQscjEubGFuZyxmdW5jdGlvbihaMSxZKXtpZihaMSlyZXR1cm4gVChaMSk7bnVsbCE9WSYmWSE9PXIxLnRleHQmJihyMS50ZXh0PVkscjEuZXNjYXBlZD0hMCksMD09LS1QJiZUKCl9KX0sMCkpfSksdm9pZCgwPT09UCYmVCgpKX10cnl7dmFyIGUxPWgxLmxleCgk''@;'; + put 'put ''LHopO3JldHVybiB6LndhbGtUb2tlbnMmJmoud2Fsa1Rva2VucyhlMSx6LndhbGtUb2tlbnMpLEUxLnBhcnNlKGUxLHopfWNhdGNoKHIxKXtpZihyMS5tZXNzYWdlKz0iXG5QbGVhc2UgcmVwb3J0IHRoaXMgdG8gaHR0cHM6Ly9naXRodWIuY29tL21hcmtlZGpzL21hcmtlZC4iLHouc2lsZW50''@;'; + put 'put ''KXJldHVybiI8cD5BbiBlcnJvciBvY2N1cnJlZDo8L3A+PHByZT4iK2YocjEubWVzc2FnZSsiIiwhMCkrIjwvcHJlPiI7dGhyb3cgcjF9fWoub3B0aW9ucz1qLnNldE9wdGlvbnM9ZnVuY3Rpb24oJCl7cmV0dXJuIHgoai5kZWZhdWx0cywkKSxYLmRlZmF1bHRzPSQ9ai5kZWZhdWx0cyxqfSxq''@;'; + put 'put ''LmdldERlZmF1bHRzPWUsai5kZWZhdWx0cz1YLmRlZmF1bHRzLGoudXNlPWZ1bmN0aW9uKCl7Zm9yKHZhciAkPWFyZ3VtZW50cy5sZW5ndGgsej1uZXcgQXJyYXkoJCkseT0wO3k8JDt5Kyspelt5XT1hcmd1bWVudHNbeV07dmFyIEQsWj14LmFwcGx5KHZvaWQgMCxbe31dLmNvbmNhdCh6KSks''@;'; + put 'put ''VD1qLmRlZmF1bHRzLmV4dGVuc2lvbnN8fHtyZW5kZXJlcnM6e30sY2hpbGRUb2tlbnM6e319O3ouZm9yRWFjaChmdW5jdGlvbihQKXtpZihQLmV4dGVuc2lvbnMmJihEPSEwLFAuZXh0ZW5zaW9ucy5mb3JFYWNoKGZ1bmN0aW9uKEope2lmKCFKLm5hbWUpdGhyb3cgbmV3IEVycm9yKCJleHRl''@;'; + put 'put ''bnNpb24gbmFtZSByZXF1aXJlZCIpO3ZhciBBMTtpZihKLnJlbmRlcmVyJiYoVC5yZW5kZXJlcnNbSi5uYW1lXT0oQTE9VC5yZW5kZXJlcnM/VC5yZW5kZXJlcnNbSi5uYW1lXTpudWxsKT9mdW5jdGlvbigpe2Zvcih2YXIgTjE9YXJndW1lbnRzLmxlbmd0aCxTMT1uZXcgQXJyYXkoTjEpLG4x''@;'; + put 'put ''PTA7bjE8TjE7bjErKylTMVtuMV09YXJndW1lbnRzW24xXTt2YXIgaTE9Si5yZW5kZXJlci5hcHBseSh0aGlzLFMxKTtyZXR1cm4hMT09PWkxP0ExLmFwcGx5KHRoaXMsUzEpOmkxfTpKLnJlbmRlcmVyKSxKLnRva2VuaXplcil7aWYoIUoubGV2ZWx8fCJibG9jayIhPT1KLmxldmVsJiYiaW5s''@;'; + put 'put ''aW5lIiE9PUoubGV2ZWwpdGhyb3cgbmV3IEVycm9yKCJleHRlbnNpb24gbGV2ZWwgbXVzdCBiZSAnYmxvY2snIG9yICdpbmxpbmUnIik7VFtKLmxldmVsXT9UW0oubGV2ZWxdLnVuc2hpZnQoSi50b2tlbml6ZXIpOlRbSi5sZXZlbF09W0oudG9rZW5pemVyXSxKLnN0YXJ0JiYoImJsb2NrIj09''@;'; + put 'put ''PUoubGV2ZWw/VC5zdGFydEJsb2NrP1Quc3RhcnRCbG9jay5wdXNoKEouc3RhcnQpOlQuc3RhcnRCbG9jaz1bSi5zdGFydF06ImlubGluZSI9PT1KLmxldmVsJiYoVC5zdGFydElubGluZT9ULnN0YXJ0SW5saW5lLnB1c2goSi5zdGFydCk6VC5zdGFydElubGluZT1bSi5zdGFydF0pKX1KLmNo''@;'; + put 'put ''aWxkVG9rZW5zJiYoVC5jaGlsZFRva2Vuc1tKLm5hbWVdPUouY2hpbGRUb2tlbnMpfSkpLFAucmVuZGVyZXIpe3ZhciBlMSxyMT1qLmRlZmF1bHRzLnJlbmRlcmVyfHxuZXcgdTE7Zm9yKGUxIGluIFAucmVuZGVyZXIpIWZ1bmN0aW9uKEope3ZhciBBMT1yMVtKXTtyMVtKXT1mdW5jdGlvbigp''@;'; + put 'put ''e2Zvcih2YXIgTjE9YXJndW1lbnRzLmxlbmd0aCxTMT1uZXcgQXJyYXkoTjEpLG4xPTA7bjE8TjE7bjErKylTMVtuMV09YXJndW1lbnRzW24xXTt2YXIgaTE9UC5yZW5kZXJlcltKXS5hcHBseShyMSxTMSk7cmV0dXJuITE9PT1pMT9BMS5hcHBseShyMSxTMSk6aTF9fShlMSk7Wi5yZW5kZXJl''@;'; + put 'put ''cj1yMX1pZihQLnRva2VuaXplcil7dmFyIFoxLFk9ai5kZWZhdWx0cy50b2tlbml6ZXJ8fG5ldyBPO2ZvcihaMSBpbiBQLnRva2VuaXplcikhZnVuY3Rpb24oSil7dmFyIEExPVlbSl07WVtKXT1mdW5jdGlvbigpe2Zvcih2YXIgTjE9YXJndW1lbnRzLmxlbmd0aCxTMT1uZXcgQXJyYXkoTjEp''@;'; + put 'put ''LG4xPTA7bjE8TjE7bjErKylTMVtuMV09YXJndW1lbnRzW24xXTt2YXIgaTE9UC50b2tlbml6ZXJbSl0uYXBwbHkoWSxTMSk7cmV0dXJuITE9PT1pMT9BMS5hcHBseShZLFMxKTppMX19KFoxKTtaLnRva2VuaXplcj1ZfXZhciBxO1Aud2Fsa1Rva2VucyYmKHE9ai5kZWZhdWx0cy53YWxrVG9r''@;'; + put 'put ''ZW5zLFoud2Fsa1Rva2Vucz1mdW5jdGlvbihKKXtQLndhbGtUb2tlbnMuY2FsbCh0aGlzLEopLHEmJnEuY2FsbCh0aGlzLEopfSksRCYmKFouZXh0ZW5zaW9ucz1UKSxqLnNldE9wdGlvbnMoWil9KX0sai53YWxrVG9rZW5zPWZ1bmN0aW9uKCQseil7Zm9yKHZhciB5LEQ9QSgkKTshKHk9RCgp''@;'; + put 'put ''KS5kb25lOykhZnVuY3Rpb24oKXt2YXIgWj15LnZhbHVlO3N3aXRjaCh6LmNhbGwoaixaKSxaLnR5cGUpe2Nhc2UidGFibGUiOmZvcih2YXIgVD1BKFouaGVhZGVyKTshKFA9VCgpKS5kb25lOyl7dmFyIFA9UC52YWx1ZTtqLndhbGtUb2tlbnMoUC50b2tlbnMseil9Zm9yKHZhciBlMSxyMT1B''@;'; + put 'put ''KFoucm93cyk7IShlMT1yMSgpKS5kb25lOylmb3IodmFyIFoxPUEoZTEudmFsdWUpOyEoWT1aMSgpKS5kb25lOyl7dmFyIFk9WS52YWx1ZTtqLndhbGtUb2tlbnMoWS50b2tlbnMseil9YnJlYWs7Y2FzZSJsaXN0IjpqLndhbGtUb2tlbnMoWi5pdGVtcyx6KTticmVhaztkZWZhdWx0OmouZGVm''@;'; + put 'put ''YXVsdHMuZXh0ZW5zaW9ucyYmai5kZWZhdWx0cy5leHRlbnNpb25zLmNoaWxkVG9rZW5zJiZqLmRlZmF1bHRzLmV4dGVuc2lvbnMuY2hpbGRUb2tlbnNbWi50eXBlXT9qLmRlZmF1bHRzLmV4dGVuc2lvbnMuY2hpbGRUb2tlbnNbWi50eXBlXS5mb3JFYWNoKGZ1bmN0aW9uKHEpe2oud2Fsa1Rv''@;'; + put 'put ''a2VucyhaW3FdLHopfSk6Wi50b2tlbnMmJmoud2Fsa1Rva2VucyhaLnRva2Vucyx6KX19KCl9LGoucGFyc2VJbmxpbmU9ZnVuY3Rpb24oJCx6KXtpZihudWxsPT0kKXRocm93IG5ldyBFcnJvcigibWFya2VkLnBhcnNlSW5saW5lKCk6IGlucHV0IHBhcmFtZXRlciBpcyB1bmRlZmluZWQgb3Ig''@;'; + put 'put ''bnVsbCIpO2lmKCJzdHJpbmciIT10eXBlb2YgJCl0aHJvdyBuZXcgRXJyb3IoIm1hcmtlZC5wYXJzZUlubGluZSgpOiBpbnB1dCBwYXJhbWV0ZXIgaXMgb2YgdHlwZSAiK09iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCgkKSsiLCBzdHJpbmcgZXhwZWN0ZWQiKTtOKHo9eCh7fSxqLmRl''@;'; + put 'put ''ZmF1bHRzLHp8fHt9KSk7dHJ5e3ZhciB5PWgxLmxleElubGluZSgkLHopO3JldHVybiB6LndhbGtUb2tlbnMmJmoud2Fsa1Rva2Vucyh5LHoud2Fsa1Rva2VucyksRTEucGFyc2VJbmxpbmUoeSx6KX1jYXRjaChEKXtpZihELm1lc3NhZ2UrPSJcblBsZWFzZSByZXBvcnQgdGhpcyB0byBodHRw''@;'; + put 'put ''czovL2dpdGh1Yi5jb20vbWFya2VkanMvbWFya2VkLiIsei5zaWxlbnQpcmV0dXJuIjxwPkFuIGVycm9yIG9jY3VycmVkOjwvcD48cHJlPiIrZihELm1lc3NhZ2UrIiIsITApKyI8L3ByZT4iO3Rocm93IER9fSxqLlBhcnNlcj1FMSxqLnBhcnNlcj1FMS5wYXJzZSxqLlJlbmRlcmVyPXUxLGou''@;'; + put 'put ''VGV4dFJlbmRlcmVyPXAxLGouTGV4ZXI9aDEsai5sZXhlcj1oMS5sZXgsai5Ub2tlbml6ZXI9TyxqLlNsdWdnZXI9djEsYzE9KGoucGFyc2U9aikub3B0aW9uczt2YXIgVjE9ai5zZXRPcHRpb25zLF8xPWoudXNlLFE9ai53YWxrVG9rZW5zLHMxPWoucGFyc2VJbmxpbmUsbTE9aixiMT1FMS5w''@;'; + put 'put ''YXJzZSxCMT1oMS5sZXg7WC5MZXhlcj1oMSxYLlBhcnNlcj1FMSxYLlJlbmRlcmVyPXUxLFguU2x1Z2dlcj12MSxYLlRleHRSZW5kZXJlcj1wMSxYLlRva2VuaXplcj1PLFguZ2V0RGVmYXVsdHM9ZSxYLmxleGVyPUIxLFgubWFya2VkPWosWC5vcHRpb25zPWMxLFgucGFyc2U9bTEsWC5wYXJz''@;'; + put 'put ''ZUlubGluZT1zMSxYLnBhcnNlcj1iMSxYLnNldE9wdGlvbnM9VjEsWC51c2U9XzEsWC53YWxrVG9rZW5zPVEsT2JqZWN0LmRlZmluZVByb3BlcnR5KFgsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pfSksZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7IWZ1bmN0aW9uKCl7aWYodm9pZCAwPT09d2lu''@;'; + put 'put ''ZG93LlJlZmxlY3R8fHZvaWQgMD09PXdpbmRvdy5jdXN0b21FbGVtZW50c3x8d2luZG93LmN1c3RvbUVsZW1lbnRzLnBvbHlmaWxsV3JhcEZsdXNoQ2FsbGJhY2spcmV0dXJuO2NvbnN0IFg9SFRNTEVsZW1lbnQ7d2luZG93LkhUTUxFbGVtZW50PWZ1bmN0aW9uKCl7cmV0dXJuIFJlZmxlY3Qu''@;'; + put 'put ''Y29uc3RydWN0KFgsW10sdGhpcy5jb25zdHJ1Y3Rvcil9LEhUTUxFbGVtZW50LnByb3RvdHlwZT1YLnByb3RvdHlwZSxIVE1MRWxlbWVudC5wcm90b3R5cGUuY29uc3RydWN0b3I9SFRNTEVsZW1lbnQsT2JqZWN0LnNldFByb3RvdHlwZU9mKEhUTUxFbGVtZW50LFgpfSgpfSgpLGZ1bmN0aW9u''@;'; + put 'put ''KCl7InVzZSBzdHJpY3QiO3ZhciBYO2Z1bmN0aW9uIEYxKHQpe3ZhciBpPTA7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGk8dC5sZW5ndGg/e2RvbmU6ITEsdmFsdWU6dFtpKytdfTp7ZG9uZTohMH19fXZhciBvLGs9ImZ1bmN0aW9uIj09dHlwZW9mIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVz''@;'; + put 'put ''P09iamVjdC5kZWZpbmVQcm9wZXJ0eTpmdW5jdGlvbih0LGksbil7cmV0dXJuIHQ9PUFycmF5LnByb3RvdHlwZXx8dD09T2JqZWN0LnByb3RvdHlwZXx8KHRbaV09bi52YWx1ZSksdH0sZT1mdW5jdGlvbiBBKHQpe3Q9WyJvYmplY3QiPT10eXBlb2YgZ2xvYmFsVGhpcyYmZ2xvYmFsVGhpcyx0''@;'; + put 'put ''LCJvYmplY3QiPT10eXBlb2Ygd2luZG93JiZ3aW5kb3csIm9iamVjdCI9PXR5cGVvZiBzZWxmJiZzZWxmLCJvYmplY3QiPT10eXBlb2YgZ2xvYmFsJiZnbG9iYWxdO2Zvcih2YXIgaT0wO2k8dC5sZW5ndGg7KytpKXt2YXIgbj10W2ldO2lmKG4mJm4uTWF0aD09TWF0aClyZXR1cm4gbn10aHJv''@;'; + put 'put ''dyBFcnJvcigiQ2Fubm90IGZpbmQgZ2xvYmFsIG9iamVjdCIpfSh0aGlzKTtmdW5jdGlvbiBsKHQsaSl7aWYoaSl0Ont2YXIgbj1lO3Q9dC5zcGxpdCgiLiIpO2Zvcih2YXIgcz0wO3M8dC5sZW5ndGgtMTtzKyspe3ZhciBkPXRbc107aWYoIShkIGluIG4pKWJyZWFrIHQ7bj1uW2RdfShpPWko''@;'; + put 'put ''cz1uW3Q9dFt0Lmxlbmd0aC0xXV0pKSE9cyYmbnVsbCE9aSYmayhuLHQse2NvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTppfSl9fWZ1bmN0aW9uIHIodCl7cmV0dXJuKHQ9e25leHQ6dH0pW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30sdH1mdW5jdGlv''@;'; + put 'put ''biBhKHQpe3ZhciBpPSJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZTeW1ib2wuaXRlcmF0b3ImJnRbU3ltYm9sLml0ZXJhdG9yXTtyZXR1cm4gaT9pLmNhbGwodCk6e25leHQ6RjEodCl9fWZ1bmN0aW9uIGModCl7aWYoISh0IGluc3RhbmNlb2YgQXJyYXkpKXt0PWEodCk7Zm9yKHZhciBp''@;'; + put 'put ''LG49W107IShpPXQubmV4dCgpKS5kb25lOyluLnB1c2goaS52YWx1ZSk7dD1ufXJldHVybiB0fWlmKGwoIlN5bWJvbCIsZnVuY3Rpb24odCl7ZnVuY3Rpb24gbihkLG0pe3RoaXMuZz1kLGsodGhpcywiZGVzY3JpcHRpb24iLHtjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6bX0p''@;'; + put 'put ''fWlmKHQpcmV0dXJuIHQ7bi5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nfTt2YXIgcz0wO3JldHVybiBmdW5jdGlvbiBpKGQpe2lmKHRoaXMgaW5zdGFuY2VvZiBpKXRocm93IG5ldyBUeXBlRXJyb3IoIlN5bWJvbCBpcyBub3QgYSBjb25zdHJ1Y3RvciIpO3Jl''@;'; + put 'put ''dHVybiBuZXcgbigianNjb21wX3N5bWJvbF8iKyhkfHwiIikrIl8iK3MrKyxkKX19KSxsKCJTeW1ib2wuaXRlcmF0b3IiLGZ1bmN0aW9uKHQpe2lmKHQpcmV0dXJuIHQ7dD1TeW1ib2woIlN5bWJvbC5pdGVyYXRvciIpO2Zvcih2YXIgaT0iQXJyYXkgSW50OEFycmF5IFVpbnQ4QXJyYXkgVWlu''@;'; + put 'put ''dDhDbGFtcGVkQXJyYXkgSW50MTZBcnJheSBVaW50MTZBcnJheSBJbnQzMkFycmF5IFVpbnQzMkFycmF5IEZsb2F0MzJBcnJheSBGbG9hdDY0QXJyYXkiLnNwbGl0KCIgIiksbj0wO248aS5sZW5ndGg7bisrKXt2YXIgcz1lW2lbbl1dOyJmdW5jdGlvbiI9PXR5cGVvZiBzJiYiZnVuY3Rpb24i''@;'; + put 'put ''IT10eXBlb2Ygcy5wcm90b3R5cGVbdF0mJmsocy5wcm90b3R5cGUsdCx7Y29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHIoRjEodGhpcykpfX0pfXJldHVybiB0fSksImZ1bmN0aW9uIj09dHlwZW9mIE9iamVjdC5zZXRQcm90b3R5cGVPZilvPU9i''@;'; + put 'put ''amVjdC5zZXRQcm90b3R5cGVPZjtlbHNle3ZhciBoO3Q6e3ZhciBnPXt9O3RyeXtnLl9fcHJvdG9fXz17YTohMH0saD1nLmE7YnJlYWsgdH1jYXRjaCh0KXt9aD0hMX1vPWg/ZnVuY3Rpb24odCxpKXtpZih0Ll9fcHJvdG9fXz1pLHQuX19wcm90b19fIT09aSl0aHJvdyBuZXcgVHlwZUVycm9y''@;'; + put 'put ''KHQrIiBpcyBub3QgZXh0ZW5zaWJsZSIpO3JldHVybiB0fTpudWxsfXZhciB1PW87ZnVuY3Rpb24gcCgpe3RoaXMudT0hMSx0aGlzLmg9bnVsbCx0aGlzLkthPXZvaWQgMCx0aGlzLmc9MSx0aGlzLmRhPTAsdGhpcy5pPW51bGx9ZnVuY3Rpb24gdih0KXtpZih0LnUpdGhyb3cgbmV3IFR5cGVF''@;'; + put 'put ''cnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgcnVubmluZyIpO3QudT0hMH1mdW5jdGlvbiBIKHQsaSl7dC5pPXtXYTppLCRhOiEwfSx0Lmc9dC5kYX1mdW5jdGlvbiBDKHQsaSl7cmV0dXJuIHQuZz0zLHt2YWx1ZTppfX1mdW5jdGlvbiBWKHQpe3RoaXMuZz1uZXcgcCx0aGlzLmg9dH1mdW5j''@;'; + put 'put ''dGlvbiBfKHQsaSxuLHMpe3RyeXt2YXIgZD1pLmNhbGwodC5nLmgsbik7aWYoIShkIGluc3RhbmNlb2YgT2JqZWN0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJJdGVyYXRvciByZXN1bHQgIitkKyIgaXMgbm90IGFuIG9iamVjdCIpO2lmKCFkLmRvbmUpcmV0dXJuIHQuZy51PSExLGQ7dmFyIG09''@;'; + put 'put ''ZC52YWx1ZX1jYXRjaChMKXtyZXR1cm4gdC5nLmg9bnVsbCxIKHQuZyxMKSxiKHQpfXJldHVybiB0LmcuaD1udWxsLHMuY2FsbCh0LmcsbSksYih0KX1mdW5jdGlvbiBiKHQpe2Zvcig7dC5nLmc7KXRyeXt2YXIgaT10LmgodC5nKTtpZihpKXJldHVybiB0LmcudT0hMSx7dmFsdWU6aS52YWx1''@;'; + put 'put ''ZSxkb25lOiExfX1jYXRjaChuKXt0LmcuS2E9dm9pZCAwLEgodC5nLG4pfWlmKHQuZy51PSExLHQuZy5pKXtpZihpPXQuZy5pLHQuZy5pPW51bGwsaS4kYSl0aHJvdyBpLldhO3JldHVybnt2YWx1ZTppLnJldHVybixkb25lOiEwfX1yZXR1cm57dmFsdWU6dm9pZCAwLGRvbmU6ITB9fWZ1bmN0''@;'; + put 'put ''aW9uIE0odCl7dGhpcy5uZXh0PWZ1bmN0aW9uKGkpe3JldHVybiB2KHQuZyksdC5nLmg/aT1fKHQsdC5nLmgubmV4dCxpLHQuZy5PKToodC5nLk8oaSksaT1iKHQpKSxpfSx0aGlzLnRocm93PWZ1bmN0aW9uKGkpe3JldHVybiB2KHQuZyksdC5nLmg/aT1fKHQsdC5nLmgudGhyb3csaSx0Lmcu''@;'; + put 'put ''Tyk6KEgodC5nLGkpLGk9Yih0KSksaX0sdGhpcy5yZXR1cm49ZnVuY3Rpb24oaSl7cmV0dXJuIGZ1bmN0aW9uIFModCxpKXt2KHQuZyk7dmFyIG49dC5nLmg7cmV0dXJuIG4/Xyh0LCJyZXR1cm4iaW4gbj9uLnJldHVybjpmdW5jdGlvbihzKXtyZXR1cm57dmFsdWU6cyxkb25lOiEwfX0saSx0''@;'; + put 'put ''LmcucmV0dXJuKToodC5nLnJldHVybihpKSxiKHQpKX0odCxpKX0sdGhpc1tTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9fWZ1bmN0aW9uIHgodCxpKXtyZXR1cm4gaT1uZXcgTShuZXcgVihpKSksdSYmdC5wcm90b3R5cGUmJnUoaSx0LnByb3RvdHlwZSksaX1wLnBy''@;'; + put 'put ''b3RvdHlwZS5PPWZ1bmN0aW9uKHQpe3RoaXMuS2E9dH0scC5wcm90b3R5cGUucmV0dXJuPWZ1bmN0aW9uKHQpe3RoaXMuaT17cmV0dXJuOnR9LHRoaXMuZz10aGlzLmRhfSxBcnJheS5mcm9tfHwoQXJyYXkuZnJvbT1mdW5jdGlvbih0KXtyZXR1cm5bXS5zbGljZS5jYWxsKHQpfSksT2JqZWN0''@;'; + put 'put ''LmFzc2lnbnx8KE9iamVjdC5hc3NpZ249ZnVuY3Rpb24odCl7Zm9yKHZhciBzLGk9W10uc2xpY2UuY2FsbChhcmd1bWVudHMsMSksbj0wO248aS5sZW5ndGg7bisrKWlmKHM9aVtuXSlmb3IodmFyIGQ9dCxtPU9iamVjdC5rZXlzKHMpLEw9MDtMPG0ubGVuZ3RoO0wrKyl7dmFyIEY9bVtMXTtk''@;'; + put 'put ''W0ZdPXNbRl19cmV0dXJuIHR9KTt2YXIgRT1zZXRUaW1lb3V0O2Z1bmN0aW9uIHcoKXt9ZnVuY3Rpb24gSSh0KXtpZighKHRoaXMgaW5zdGFuY2VvZiBJKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJQcm9taXNlcyBtdXN0IGJlIGNvbnN0cnVjdGVkIHZpYSBuZXciKTtpZigiZnVuY3Rpb24iIT10''@;'; + put 'put ''eXBlb2YgdCl0aHJvdyBuZXcgVHlwZUVycm9yKCJub3QgYSBmdW5jdGlvbiIpO3RoaXMuTj0wLHRoaXMuRWE9ITEsdGhpcy5JPXZvaWQgMCx0aGlzLmJhPVtdLGExKHQsdGhpcyl9ZnVuY3Rpb24gVyh0LGkpe2Zvcig7Mz09PXQuTjspdD10Lkk7MD09PXQuTj90LmJhLnB1c2goaSk6KHQuRWE9''@;'; + put 'put ''ITAsRTEoZnVuY3Rpb24oKXt2YXIgbj0xPT09dC5OP2kuYmI6aS5jYjtpZihudWxsPT09bikoMT09PXQuTj9POkIpKGkucHJvbWlzZSx0LkkpO2Vsc2V7dHJ5e3ZhciBzPW4odC5JKX1jYXRjaChkKXtyZXR1cm4gdm9pZCBCKGkucHJvbWlzZSxkKX1PKGkucHJvbWlzZSxzKX19KSl9ZnVuY3Rp''@;'; + put 'put ''b24gTyh0LGkpe3RyeXtpZihpPT09dCl0aHJvdyBuZXcgVHlwZUVycm9yKCJBIHByb21pc2UgY2Fubm90IGJlIHJlc29sdmVkIHdpdGggaXRzZWxmLiIpO2lmKGkmJigib2JqZWN0Ij09dHlwZW9mIGl8fCJmdW5jdGlvbiI9PXR5cGVvZiBpKSl7dmFyIG49aS50aGVuO2lmKGkgaW5zdGFuY2Vv''@;'; + put 'put ''ZiBJKXJldHVybiB0Lk49Myx0Lkk9aSx2b2lkIFIodCk7aWYoImZ1bmN0aW9uIj09dHlwZW9mIG4pcmV0dXJuIHZvaWQgYTEoZnVuY3Rpb24gTih0LGkpe3JldHVybiBmdW5jdGlvbigpe3QuYXBwbHkoaSxhcmd1bWVudHMpfX0obixpKSx0KX10Lk49MSx0Lkk9aSxSKHQpfWNhdGNoKHMpe0Io''@;'; + put 'put ''dCxzKX19ZnVuY3Rpb24gQih0LGkpe3QuTj0yLHQuST1pLFIodCl9ZnVuY3Rpb24gUih0KXsyPT09dC5OJiYwPT09dC5iYS5sZW5ndGgmJkUxKGZ1bmN0aW9uKCl7dC5FYXx8InVuZGVmaW5lZCIhPXR5cGVvZiBjb25zb2xlJiZjb25zb2xlJiZjb25zb2xlLndhcm4oIlBvc3NpYmxlIFVuaGFu''@;'; + put 'put ''ZGxlZCBQcm9taXNlIFJlamVjdGlvbjoiLHQuSSl9KTtmb3IodmFyIGk9MCxuPXQuYmEubGVuZ3RoO2k8bjtpKyspVyh0LHQuYmFbaV0pO3QuYmE9bnVsbH1mdW5jdGlvbiBsMSh0LGksbil7dGhpcy5iYj0iZnVuY3Rpb24iPT10eXBlb2YgdD90Om51bGwsdGhpcy5jYj0iZnVuY3Rpb24iPT10''@;'; + put 'put ''eXBlb2YgaT9pOm51bGwsdGhpcy5wcm9taXNlPW59ZnVuY3Rpb24gYTEodCxpKXt2YXIgbj0hMTt0cnl7dChmdW5jdGlvbihzKXtufHwobj0hMCxPKGkscykpfSxmdW5jdGlvbihzKXtufHwobj0hMCxCKGkscykpfSl9Y2F0Y2gocyl7bnx8KG49ITAsQihpLHMpKX19ZnVuY3Rpb24gdTEodCl7''@;'; + put 'put ''cmV0dXJuIHQmJiJvYmplY3QiPT10eXBlb2YgdCYmdC5jb25zdHJ1Y3Rvcj09PUk/dDpuZXcgSShmdW5jdGlvbihpKXtpKHQpfSl9SS5wcm90b3R5cGUuY2F0Y2g9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMudGhlbihudWxsLHQpfSxJLnByb3RvdHlwZS50aGVuPWZ1bmN0aW9uKHQsaSl7dmFy''@;'; + put 'put ''IG49bmV3IHRoaXMuY29uc3RydWN0b3Iodyk7cmV0dXJuIFcodGhpcyxuZXcgbDEodCxpLG4pKSxufSxJLnByb3RvdHlwZS5maW5hbGx5PWZ1bmN0aW9uKHQpe3ZhciBpPXRoaXMuY29uc3RydWN0b3I7cmV0dXJuIHRoaXMudGhlbihmdW5jdGlvbihuKXtyZXR1cm4gaS5yZXNvbHZlKHQoKSku''@;'; + put 'put ''dGhlbihmdW5jdGlvbigpe3JldHVybiBufSl9LGZ1bmN0aW9uKG4pe3JldHVybiBpLnJlc29sdmUodCgpKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIGkucmVqZWN0KG4pfSl9KX07dmFyIHQsaSxtLG4scyxkLEUxPSJmdW5jdGlvbiI9PXR5cGVvZiBzZXRJbW1lZGlhdGUmJmZ1bmN0aW9uKHQp''@;'; + put 'put ''e3NldEltbWVkaWF0ZSh0KX18fGZ1bmN0aW9uKHQpe0UodCwwKX07aWYoIXdpbmRvdy5Qcm9taXNlKXt3aW5kb3cuUHJvbWlzZT1JLEkucHJvdG90eXBlLnRoZW49SS5wcm90b3R5cGUudGhlbixJLmFsbD1mdW5jdGlvbiBoMSh0KXtyZXR1cm4gbmV3IEkoZnVuY3Rpb24oaSxuKXtmdW5jdGlv''@;'; + put 'put ''biBzKEYsRyl7dHJ5e2lmKEcmJigib2JqZWN0Ij09dHlwZW9mIEd8fCJmdW5jdGlvbiI9PXR5cGVvZiBHKSl7dmFyIFU9Ry50aGVuO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBVKXJldHVybiB2b2lkIFUuY2FsbChHLGZ1bmN0aW9uKEspe3MoRixLKX0sbil9ZFtGXT1HLDA9PS0tbSYmaShkKX1j''@;'; + put 'put ''YXRjaChLKXtuKEspfX1pZighdHx8dm9pZCAwPT09dC5sZW5ndGgpcmV0dXJuIG4obmV3IFR5cGVFcnJvcigiUHJvbWlzZS5hbGwgYWNjZXB0cyBhbiBhcnJheSIpKTt2YXIgZD1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbCh0KTtpZigwPT09ZC5sZW5ndGgpcmV0dXJuIGkoW10pO2Zvcih2''@;'; + put 'put ''YXIgbT1kLmxlbmd0aCxMPTA7TDxkLmxlbmd0aDtMKyspcyhMLGRbTF0pfSl9LEkucmFjZT1mdW5jdGlvbiB2MSh0KXtyZXR1cm4gbmV3IEkoZnVuY3Rpb24oaSxuKXtpZighdHx8dm9pZCAwPT09dC5sZW5ndGgpcmV0dXJuIG4obmV3IFR5cGVFcnJvcigiUHJvbWlzZS5yYWNlIGFjY2VwdHMg''@;'; + put 'put ''YW4gYXJyYXkiKSk7Zm9yKHZhciBzPTAsZD10Lmxlbmd0aDtzPGQ7cysrKXUxKHRbc10pLnRoZW4oaSxuKX0pfSxJLnJlc29sdmU9dTEsSS5yZWplY3Q9ZnVuY3Rpb24gcDEodCl7cmV0dXJuIG5ldyBJKGZ1bmN0aW9uKGksbil7bih0KX0pfTt2YXIgaj1kb2N1bWVudC5jcmVhdGVUZXh0Tm9k''@;'; + put 'put ''ZSgiIiksYzE9W107bmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24oKXtmb3IodmFyIHQ9YzEubGVuZ3RoLGk9MDtpPHQ7aSsrKWMxW2ldKCk7YzEuc3BsaWNlKDAsdCl9KS5vYnNlcnZlKGose2NoYXJhY3RlckRhdGE6ITB9KSxFMT1mdW5jdGlvbih0KXtjMS5wdXNoKHQpLGoudGV4dENv''@;'; + put 'put ''bnRlbnQ9MDxqLnRleHRDb250ZW50Lmxlbmd0aD8iIjoiYSJ9fShmdW5jdGlvbih0LGkpe2lmKCEoaSBpbiB0KSl7dmFyIG49dHlwZW9mIGdsb2JhbD09dHlwZW9mIG4/d2luZG93Omdsb2JhbCxzPTAsZD1TdHJpbmcoTWF0aC5yYW5kb20oKSksbT0iX19ceDAxc3ltYm9sQEAiK2QsTD10Lmdl''@;'; + put 'put ''dE93blByb3BlcnR5TmFtZXMsRj10LmdldE93blByb3BlcnR5RGVzY3JpcHRvcixHPXQuY3JlYXRlLFU9dC5rZXlzLEs9dC5mcmVlemV8fHQsSDE9dC5kZWZpbmVQcm9wZXJ0eSxRMT10LmRlZmluZVByb3BlcnRpZXMsajE9Rih0LCJnZXRPd25Qcm9wZXJ0eU5hbWVzIiksTTE9dC5wcm90b3R5''@;'; + put 'put ''cGUsJDE9TTEuaGFzT3duUHJvcGVydHksejE9TTEucHJvcGVydHlJc0VudW1lcmFibGUsbzA9TTEudG9TdHJpbmcsazE9ZnVuY3Rpb24oQzEsVTEsaTApeyQxLmNhbGwoQzEsbSl8fEgxKEMxLG0se2VudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiExLHdyaXRhYmxlOiExLHZhbHVlOnt9fSks''@;'; + put 'put ''QzFbbV1bIkBAIitVMV09aTB9LG0wPWZ1bmN0aW9uKEMxLFUxKXt2YXIgaTA9RyhDMSk7cmV0dXJuIEwoVTEpLmZvckVhY2goZnVuY3Rpb24obzEpe2UyLmNhbGwoVTEsbzEpJiZLMihpMCxvMSxVMVtvMV0pfSksaTB9LFQxPWZ1bmN0aW9uKCl7fSx0Mj1mdW5jdGlvbihDMSl7cmV0dXJuIEMx''@;'; + put 'put ''IT1tJiYhJDEuY2FsbChJMCxDMSl9LEYwPWZ1bmN0aW9uKEMxKXtyZXR1cm4gQzEhPW0mJiQxLmNhbGwoSTAsQzEpfSxlMj1mdW5jdGlvbihDMSl7dmFyIFUxPVN0cmluZyhDMSk7cmV0dXJuIEYwKFUxKT8kMS5jYWxsKHRoaXMsVTEpJiYhIXRoaXNbbV0mJnRoaXNbbV1bIkBAIitVMV06ejEu''@;'; + put 'put ''Y2FsbCh0aGlzLEMxKX0sdDE9ZnVuY3Rpb24oQzEpe3JldHVybiBIMShNMSxDMSx7ZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITAsZ2V0OlQxLHNldDpmdW5jdGlvbihVMSl7ZDIodGhpcyxDMSx7ZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6VTF9''@;'; + put 'put ''KSxrMSh0aGlzLEMxLCEwKX19KSxJMFtDMV09SDEodChDMSksImNvbnN0cnVjdG9yIixVZSksSyhJMFtDMV0pfSxsMD1mdW5jdGlvbiBDMShVMSl7aWYodGhpcyBpbnN0YW5jZW9mIEMxKXRocm93IG5ldyBUeXBlRXJyb3IoIlN5bWJvbCBpcyBub3QgYSBjb25zdHJ1Y3RvciIpO3JldHVybiB0''@;'; + put 'put ''MSgiX19ceDAxc3ltYm9sOiIuY29uY2F0KFUxfHwiIixkLCsrcykpfSxJMD1HKG51bGwpLFVlPXt2YWx1ZTpsMH0sVHQ9ZnVuY3Rpb24oQzEpe3JldHVybiBJMFtDMV19LEsyPWZ1bmN0aW9uKEMxLFUxLGkwKXt2YXIgbzE9U3RyaW5nKFUxKTtpZihGMChvMSkpe2lmKFUxPWQyLGkwLmVudW1l''@;'; + put 'put ''cmFibGUpe3ZhciBMMT1HKGkwKTtMMS5lbnVtZXJhYmxlPSExfWVsc2UgTDE9aTA7VTEoQzEsbzEsTDEpLGsxKEMxLG8xLCEhaTAuZW51bWVyYWJsZSl9ZWxzZSBIMShDMSxVMSxpMCk7cmV0dXJuIEMxfSxOdD1mdW5jdGlvbihDMSl7cmV0dXJuIEwoQzEpLmZpbHRlcihGMCkubWFwKFR0KX07''@;'; + put 'put ''ajEudmFsdWU9SzIsSDEodCwiZGVmaW5lUHJvcGVydHkiLGoxKSxqMS52YWx1ZT1OdCxIMSh0LGksajEpLGoxLnZhbHVlPWZ1bmN0aW9uKEMxKXtyZXR1cm4gTChDMSkuZmlsdGVyKHQyKX0sSDEodCwiZ2V0T3duUHJvcGVydHlOYW1lcyIsajEpLGoxLnZhbHVlPWZ1bmN0aW9uKEMxLFUxKXt2''@;'; + put 'put ''YXIgaTA9TnQoVTEpO3JldHVybiBpMC5sZW5ndGg/VShVMSkuY29uY2F0KGkwKS5mb3JFYWNoKGZ1bmN0aW9uKG8xKXtlMi5jYWxsKFUxLG8xKSYmSzIoQzEsbzEsVTFbbzFdKX0pOlExKEMxLFUxKSxDMX0sSDEodCwiZGVmaW5lUHJvcGVydGllcyIsajEpLGoxLnZhbHVlPWUyLEgxKE0xLCJw''@;'; + put 'put ''cm9wZXJ0eUlzRW51bWVyYWJsZSIsajEpLGoxLnZhbHVlPWwwLEgxKG4sIlN5bWJvbCIsajEpLGoxLnZhbHVlPWZ1bmN0aW9uKEMxKXtyZXR1cm4oQzE9Il9fXHgwMXN5bWJvbDoiLmNvbmNhdCgiX19ceDAxc3ltYm9sOiIsQzEsZCkpaW4gTTE/STBbQzFdOnQxKEMxKX0sSDEobDAsImZvciIs''@;'; + put 'put ''ajEpLGoxLnZhbHVlPWZ1bmN0aW9uKEMxKXtpZih0MihDMSkpdGhyb3cgbmV3IFR5cGVFcnJvcihDMSsiIGlzIG5vdCBhIHN5bWJvbCIpO2lmKCQxLmNhbGwoSTAsQzEpJiYiX19ceDAxc3ltYm9sOiI9PT0oQzE9QzEuc2xpY2UoMTApKS5zbGljZSgwLDEwKSYmKEMxPUMxLnNsaWNlKDEwKSkh''@;'; + put 'put ''PT1kKXJldHVybiAwPChDMT1DMS5zbGljZSgwLEMxLmxlbmd0aC1kLmxlbmd0aCkpLmxlbmd0aD9DMTp2b2lkIDB9LEgxKGwwLCJrZXlGb3IiLGoxKSxqMS52YWx1ZT1mdW5jdGlvbihDMSxVMSl7dmFyIGkwPUYoQzEsVTEpO3JldHVybiBpMCYmRjAoVTEpJiYoaTAuZW51bWVyYWJsZT1lMi5j''@;'; + put 'put ''YWxsKEMxLFUxKSksaTB9LEgxKHQsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsajEpLGoxLnZhbHVlPWZ1bmN0aW9uKEMxLFUxKXtyZXR1cm4gMT09PWFyZ3VtZW50cy5sZW5ndGh8fHZvaWQgMD09PVUxP0coQzEpOm0wKEMxLFUxKX0sSDEodCwiY3JlYXRlIixqMSksajEudmFsdWU9ZnVu''@;'; + put 'put ''Y3Rpb24oKXt2YXIgQzE9bzAuY2FsbCh0aGlzKTtyZXR1cm4iW29iamVjdCBTdHJpbmddIj09PUMxJiZGMCh0aGlzKT8iW29iamVjdCBTeW1ib2xdIjpDMX0sSDEoTTEsInRvU3RyaW5nIixqMSk7dHJ5e2lmKCEwIT09RyhIMSh7fSwiX19ceDAxc3ltYm9sOiIse2dldDpmdW5jdGlvbigpe3Jl''@;'; + put 'put ''dHVybiBIMSh0aGlzLCJfX1x4MDFzeW1ib2w6Iix7dmFsdWU6ITB9KVsiX19ceDAxc3ltYm9sOiJdfX0pKVsiX19ceDAxc3ltYm9sOiJdKXRocm93IklFMTEiO3ZhciBkMj1IMX1jYXRjaChDMSl7ZDI9ZnVuY3Rpb24oVTEsaTAsbzEpe3ZhciBMMT1GKE0xLGkwKTtkZWxldGUgTTFbaTBdLEgx''@;'; + put 'put ''KFUxLGkwLG8xKSxIMShNMSxpMCxMMSl9fX19KShPYmplY3QsImdldE93blByb3BlcnR5U3ltYm9scyIpLHQ9T2JqZWN0LGk9U3ltYm9sLG49dC5kZWZpbmVQcm9wZXJ0eSxkPShzPXQucHJvdG90eXBlKS50b1N0cmluZywiaXRlcmF0b3IgbWF0Y2ggcmVwbGFjZSBzZWFyY2ggc3BsaXQgaGFz''@;'; + put 'put ''SW5zdGFuY2UgaXNDb25jYXRTcHJlYWRhYmxlIHVuc2NvcGFibGVzIHNwZWNpZXMgdG9QcmltaXRpdmUgdG9TdHJpbmdUYWciLnNwbGl0KCIgIikuZm9yRWFjaChmdW5jdGlvbihMKXtMIGluIGl8fChuKGksTCx7dmFsdWU6aShMKX0pLCJ0b1N0cmluZ1RhZyI9PT1MJiYoKG09dC5nZXRPd25Q''@;'; + put 'put ''cm9wZXJ0eURlc2NyaXB0b3IocywidG9TdHJpbmciKSkudmFsdWU9ZnVuY3Rpb24oKXt2YXIgRj1kLmNhbGwodGhpcyksRz1udWxsPT10aGlzP3RoaXM6dGhpc1tpLnRvU3RyaW5nVGFnXTtyZXR1cm4gbnVsbD09Rz9GOiJbb2JqZWN0ICIrRysiXSJ9LG4ocywidG9TdHJpbmciLG0pKSl9KSxm''@;'; + put 'put ''dW5jdGlvbih0LGksbil7ZnVuY3Rpb24gcygpe3JldHVybiB0aGlzfWlbdF18fChpW3RdPWZ1bmN0aW9uKCl7dmFyIGQ9MCxtPXRoaXMsTD17bmV4dDpmdW5jdGlvbigpe3ZhciBGPW0ubGVuZ3RoPD1kO3JldHVybiBGP3tkb25lOkZ9Ontkb25lOkYsdmFsdWU6bVtkKytdfX19O3JldHVybiBM''@;'; + put 'put ''W3RdPXMsTH0pLG5bdF18fChuW3RdPWZ1bmN0aW9uKCl7dmFyIGQ9U3RyaW5nLmZyb21Db2RlUG9pbnQsbT10aGlzLEw9MCxGPW0ubGVuZ3RoLEc9e25leHQ6ZnVuY3Rpb24oKXt2YXIgVT1GPD1MLEs9VT8iIjpkKG0uY29kZVBvaW50QXQoTCkpO3JldHVybiBMKz1LLmxlbmd0aCxVP3tkb25l''@;'; + put 'put ''OlV9Ontkb25lOlUsdmFsdWU6S319fTtyZXR1cm4gR1t0XT1zLEd9KX0oU3ltYm9sLml0ZXJhdG9yLEFycmF5LnByb3RvdHlwZSxTdHJpbmcucHJvdG90eXBlKTt2YXIgVjE9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZztPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0''@;'; + put 'put ''dXJuIHZvaWQgMD09PXRoaXM/IltvYmplY3QgVW5kZWZpbmVkXSI6bnVsbD09PXRoaXM/IltvYmplY3QgTnVsbF0iOlYxLmNhbGwodGhpcyl9LE9iamVjdC5rZXlzPWZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh0KS5maWx0ZXIoZnVuY3Rpb24oaSl7cmV0''@;'; + put 'put ''dXJuKGk9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LGkpKSYmaS5lbnVtZXJhYmxlfSl9LFN0cmluZy5wcm90b3R5cGVbU3ltYm9sLml0ZXJhdG9yXSYmU3RyaW5nLnByb3RvdHlwZS5jb2RlUG9pbnRBdHx8KFN0cmluZy5wcm90b3R5cGVbU3ltYm9sLml0ZXJhdG9yXT1mdW5j''@;'; + put 'put ''dGlvbiB0KCl7dmFyIGksbj10aGlzO3JldHVybiB4KHQsZnVuY3Rpb24ocyl7aWYoMT09cy5nJiYoaT0wKSwzIT1zLmcpcmV0dXJuIGk8bi5sZW5ndGg/cz1DKHMsbltpXSk6KHMuZz0wLHM9dm9pZCAwKSxzO2krKyxzLmc9Mn0pfSksU2V0LnByb3RvdHlwZVtTeW1ib2wuaXRlcmF0b3JdfHwo''@;'; + put 'put ''U2V0LnByb3RvdHlwZVtTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uIHQoKXt2YXIgaSxzLG49dGhpcztyZXR1cm4geCh0LGZ1bmN0aW9uKGQpe2lmKDE9PWQuZyYmKGk9W10sbi5mb3JFYWNoKGZ1bmN0aW9uKG0pe2kucHVzaChtKX0pLHM9MCksMyE9ZC5nKXJldHVybiBzPGkubGVuZ3RoP2Q9''@;'; + put 'put ''QyhkLGlbc10pOihkLmc9MCxkPXZvaWQgMCksZDtzKyssZC5nPTJ9KX0pLE1hcC5wcm90b3R5cGVbU3ltYm9sLml0ZXJhdG9yXXx8KE1hcC5wcm90b3R5cGVbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbiB0KCl7dmFyIGkscyxuPXRoaXM7cmV0dXJuIHgodCxmdW5jdGlvbihkKXtpZigxPT1k''@;'; + put 'put ''LmcmJihpPVtdLG4uZm9yRWFjaChmdW5jdGlvbihtLEwpe2kucHVzaChbTCxtXSl9KSxzPTApLDMhPWQuZylyZXR1cm4gczxpLmxlbmd0aD9kPUMoZCxpW3NdKTooZC5nPTAsZD12b2lkIDApLGQ7cysrLGQuZz0yfSl9KTt2YXIgXzE9ZG9jdW1lbnQuY3JlYXRlRXZlbnQoIkV2ZW50Iik7aWYo''@;'; + put 'put ''XzEuaW5pdEV2ZW50KCJmb28iLCEwLCEwKSxfMS5wcmV2ZW50RGVmYXVsdCgpLCFfMS5kZWZhdWx0UHJldmVudGVkKXt2YXIgUT1FdmVudC5wcm90b3R5cGUucHJldmVudERlZmF1bHQ7RXZlbnQucHJvdG90eXBlLnByZXZlbnREZWZhdWx0PWZ1bmN0aW9uKCl7dGhpcy5jYW5jZWxhYmxlJiYo''@;'; + put 'put ''US5jYWxsKHRoaXMpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCJkZWZhdWx0UHJldmVudGVkIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuITB9LGNvbmZpZ3VyYWJsZTohMH0pKX19dmFyIHMxPS9UcmlkZW50Ly50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpO2lmKCF3aW5kb3cuRXZlbnR8''@;'; + put 'put ''fHMxJiYiZnVuY3Rpb24iIT10eXBlb2Ygd2luZG93LkV2ZW50KXt2YXIgbTE9d2luZG93LkV2ZW50O2lmKHdpbmRvdy5FdmVudD1mdW5jdGlvbih0LGkpe2k9aXx8e307dmFyIG49ZG9jdW1lbnQuY3JlYXRlRXZlbnQoIkV2ZW50Iik7cmV0dXJuIG4uaW5pdEV2ZW50KHQsISFpLmJ1YmJsZXMs''@;'; + put 'put ''ISFpLmNhbmNlbGFibGUpLG59LG0xKXtmb3IodmFyIGIxIGluIG0xKXdpbmRvdy5FdmVudFtiMV09bTFbYjFdO3dpbmRvdy5FdmVudC5wcm90b3R5cGU9bTEucHJvdG90eXBlfX1pZigoIXdpbmRvdy5DdXN0b21FdmVudHx8czEmJiJmdW5jdGlvbiIhPXR5cGVvZiB3aW5kb3cuQ3VzdG9tRXZl''@;'; + put 'put ''bnQpJiYod2luZG93LkN1c3RvbUV2ZW50PWZ1bmN0aW9uKHQsaSl7aT1pfHx7fTt2YXIgbj1kb2N1bWVudC5jcmVhdGVFdmVudCgiQ3VzdG9tRXZlbnQiKTtyZXR1cm4gbi5pbml0Q3VzdG9tRXZlbnQodCwhIWkuYnViYmxlcywhIWkuY2FuY2VsYWJsZSxpLmRldGFpbCksbn0sd2luZG93LkN1''@;'; + put 'put ''c3RvbUV2ZW50LnByb3RvdHlwZT13aW5kb3cuRXZlbnQucHJvdG90eXBlKSwhd2luZG93Lk1vdXNlRXZlbnR8fHMxJiYiZnVuY3Rpb24iIT10eXBlb2Ygd2luZG93Lk1vdXNlRXZlbnQpe3ZhciBCMT13aW5kb3cuTW91c2VFdmVudDtpZih3aW5kb3cuTW91c2VFdmVudD1mdW5jdGlvbih0LGkp''@;'; + put 'put ''e2k9aXx8e307dmFyIG49ZG9jdW1lbnQuY3JlYXRlRXZlbnQoIk1vdXNlRXZlbnQiKTtyZXR1cm4gbi5pbml0TW91c2VFdmVudCh0LCEhaS5idWJibGVzLCEhaS5jYW5jZWxhYmxlLGkudmlld3x8d2luZG93LGkuZGV0YWlsLGkuc2NyZWVuWCxpLnNjcmVlblksaS5jbGllbnRYLGkuY2xpZW50''@;'; + put 'put ''WSxpLmN0cmxLZXksaS5hbHRLZXksaS5zaGlmdEtleSxpLm1ldGFLZXksaS5idXR0b24saS5yZWxhdGVkVGFyZ2V0KSxufSxCMSlmb3IodmFyICQgaW4gQjEpd2luZG93Lk1vdXNlRXZlbnRbJF09QjFbJF07d2luZG93Lk1vdXNlRXZlbnQucHJvdG90eXBlPUIxLnByb3RvdHlwZX1PYmplY3Qu''@;'; + put 'put ''Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKE5vZGUucHJvdG90eXBlLCJiYXNlVVJJIil8fE9iamVjdC5kZWZpbmVQcm9wZXJ0eShOb2RlLnByb3RvdHlwZSwiYmFzZVVSSSIse2dldDpmdW5jdGlvbigpe3ZhciB0PSh0aGlzLm93bmVyRG9jdW1lbnR8fHRoaXMpLnF1ZXJ5U2VsZWN0b3IoImJh''@;'; + put 'put ''c2VbaHJlZl0iKTtyZXR1cm4gdCYmdC5ocmVmfHx3aW5kb3cubG9jYXRpb24uaHJlZn0sY29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITB9KTt2YXIgeix5LEQ9RWxlbWVudC5wcm90b3R5cGUsWj1udWxsIT09KHo9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihELCJhdHRyaWJ1''@;'; + put 'put ''dGVzIikpJiZ2b2lkIDAhPT16P3o6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihOb2RlLnByb3RvdHlwZSwiYXR0cmlidXRlcyIpLFQ9bnVsbCE9PSh5PW51bGw9PVo/dm9pZCAwOlouZ2V0KSYmdm9pZCAwIT09eT95OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYXR0cmlidXRlc30s''@;'; + put 'put ''UD1BcnJheS5wcm90b3R5cGUubWFwO0QuaGFzT3duUHJvcGVydHkoImdldEF0dHJpYnV0ZU5hbWVzIil8fChELmdldEF0dHJpYnV0ZU5hbWVzPWZ1bmN0aW9uKCl7cmV0dXJuIFAuY2FsbChULmNhbGwodGhpcyksZnVuY3Rpb24odCl7cmV0dXJuIHQubmFtZX0pfSk7dmFyIGUxLHIxPUVsZW1l''@;'; + put 'put ''bnQucHJvdG90eXBlO3IxLmhhc093blByb3BlcnR5KCJtYXRjaGVzIil8fChyMS5tYXRjaGVzPW51bGwhPT0oZTE9cjEud2Via2l0TWF0Y2hlc1NlbGVjdG9yKSYmdm9pZCAwIT09ZTE/ZTE6cjEubXNNYXRjaGVzU2VsZWN0b3IpO3ZhciBaMT1Ob2RlLnByb3RvdHlwZS5hcHBlbmRDaGlsZDtm''@;'; + put 'put ''dW5jdGlvbiBZKHQpeyh0PXQucHJvdG90eXBlKS5oYXNPd25Qcm9wZXJ0eSgiYXBwZW5kIil8fE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJhcHBlbmQiLHtjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpmdW5jdGlvbihpKXtmb3IodmFyIG49W10scz0w''@;'; + put 'put ''O3M8YXJndW1lbnRzLmxlbmd0aDsrK3MpbltzXT1hcmd1bWVudHNbc107Zm9yKHM9KG49YShuKSkubmV4dCgpOyFzLmRvbmU7cz1uLm5leHQoKSlaMS5jYWxsKHRoaXMsInN0cmluZyI9PXR5cGVvZihzPXMudmFsdWUpP2RvY3VtZW50LmNyZWF0ZVRleHROb2RlKHMpOnMpfX0pfVkoRG9jdW1l''@;'; + put 'put ''bnQpLFkoRG9jdW1lbnRGcmFnbWVudCksWShFbGVtZW50KTt2YXIgcSxKLEExPU5vZGUucHJvdG90eXBlLmluc2VydEJlZm9yZSxOMT1udWxsIT09KEo9bnVsbD09PShxPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoTm9kZS5wcm90b3R5cGUsImZpcnN0Q2hpbGQiKSl8fHZvaWQg''@;'; + put 'put ''MD09PXE/dm9pZCAwOnEuZ2V0KSYmdm9pZCAwIT09Sj9KOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZmlyc3RDaGlsZH07ZnVuY3Rpb24gUzEodCl7KHQ9dC5wcm90b3R5cGUpLmhhc093blByb3BlcnR5KCJwcmVwZW5kIil8fE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJwcmVwZW5kIix7Y29u''@;'; + put 'put ''ZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6ZnVuY3Rpb24oaSl7Zm9yKHZhciBuPVtdLHM9MDtzPGFyZ3VtZW50cy5sZW5ndGg7KytzKW5bc109YXJndW1lbnRzW3NdO3M9TjEuY2FsbCh0aGlzKTtmb3IodmFyIGQ9KG49YShuKSkubmV4dCgpOyFkLmRvbmU7''@;'; + put 'put ''ZD1uLm5leHQoKSlBMS5jYWxsKHRoaXMsInN0cmluZyI9PXR5cGVvZihkPWQudmFsdWUpP2RvY3VtZW50LmNyZWF0ZVRleHROb2RlKGQpOmQscyl9fSl9UzEoRG9jdW1lbnQpLFMxKERvY3VtZW50RnJhZ21lbnQpLFMxKEVsZW1lbnQpO3ZhciBuMSxpMSxmMT1Ob2RlLnByb3RvdHlwZS5hcHBl''@;'; + put 'put ''bmRDaGlsZCx4MT1Ob2RlLnByb3RvdHlwZS5yZW1vdmVDaGlsZCxJMT1udWxsIT09KGkxPW51bGw9PT0objE9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihOb2RlLnByb3RvdHlwZSwiZmlyc3RDaGlsZCIpKXx8dm9pZCAwPT09bjE/dm9pZCAwOm4xLmdldCkmJnZvaWQgMCE9PWkx''@;'; + put 'put ''P2kxOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZmlyc3RDaGlsZH07ZnVuY3Rpb24gSjEodCl7KHQ9dC5wcm90b3R5cGUpLmhhc093blByb3BlcnR5KCJyZXBsYWNlQ2hpbGRyZW4iKXx8T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsInJlcGxhY2VDaGlsZHJlbiIse2NvbmZpZ3VyYWJsZTohMCxl''@;'; + put 'put ''bnVtZXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmZ1bmN0aW9uKGkpe2Zvcih2YXIgbj1bXSxzPTA7czxhcmd1bWVudHMubGVuZ3RoOysrcyluW3NdPWFyZ3VtZW50c1tzXTtmb3IoO251bGwhPT0ocz1JMS5jYWxsKHRoaXMpKTspeDEuY2FsbCh0aGlzLHMpO2ZvcihzPShuPWEobikpLm5l''@;'; + put 'put ''eHQoKTshcy5kb25lO3M9bi5uZXh0KCkpZjEuY2FsbCh0aGlzLCJzdHJpbmciPT10eXBlb2Yocz1zLnZhbHVlKT9kb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShzKTpzKX19KX1KMShEb2N1bWVudCksSjEoRG9jdW1lbnRGcmFnbWVudCksSjEoRWxlbWVudCk7dmFyIHQwLGYwLE0wLF8wLGkyPU5v''@;'; + put 'put ''ZGUucHJvdG90eXBlLmluc2VydEJlZm9yZSx6MD1udWxsIT09KGYwPW51bGw9PT0odDA9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihOb2RlLnByb3RvdHlwZSwicGFyZW50Tm9kZSIpKXx8dm9pZCAwPT09dDA/dm9pZCAwOnQwLmdldCkmJnZvaWQgMCE9PWYwP2YwOmZ1bmN0aW9u''@;'; + put 'put ''KCl7cmV0dXJuIHRoaXMucGFyZW50Tm9kZX0sVTA9bnVsbCE9PShfMD1udWxsPT09KE0wPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoTm9kZS5wcm90b3R5cGUsIm5leHRTaWJsaW5nIikpfHx2b2lkIDA9PT1NMD92b2lkIDA6TTAuZ2V0KSYmdm9pZCAwIT09XzA/XzA6ZnVuY3Rp''@;'; + put 'put ''b24oKXtyZXR1cm4gdGhpcy5uZXh0U2libGluZ307ZnVuY3Rpb24gSzAodCl7KHQ9dC5wcm90b3R5cGUpLmhhc093blByb3BlcnR5KCJhZnRlciIpfHxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiYWZ0ZXIiLHtjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1''@;'; + put 'put ''ZTpmdW5jdGlvbihpKXtmb3IodmFyIG49W10scz0wO3M8YXJndW1lbnRzLmxlbmd0aDsrK3MpbltzXT1hcmd1bWVudHNbc107aWYobnVsbCE9PShzPXowLmNhbGwodGhpcykpKWZvcih2YXIgZD1VMC5jYWxsKHRoaXMpLG09KG49YShuKSkubmV4dCgpOyFtLmRvbmU7bT1uLm5leHQoKSlpMi5j''@;'; + put 'put ''YWxsKHMsInN0cmluZyI9PXR5cGVvZihtPW0udmFsdWUpP2RvY3VtZW50LmNyZWF0ZVRleHROb2RlKG0pOm0sZCl9fSl9SzAoQ2hhcmFjdGVyRGF0YSksSzAoRWxlbWVudCk7dmFyIGswLHUyLFgwPU5vZGUucHJvdG90eXBlLmluc2VydEJlZm9yZSxrdD1udWxsIT09KHUyPW51bGw9PT0oazA9''@;'; + put 'put ''T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihOb2RlLnByb3RvdHlwZSwicGFyZW50Tm9kZSIpKXx8dm9pZCAwPT09azA/dm9pZCAwOmswLmdldCkmJnZvaWQgMCE9PXUyP3UyOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucGFyZW50Tm9kZX07ZnVuY3Rpb24gYTIodCl7KHQ9dC5wcm90''@;'; + put 'put ''b3R5cGUpLmhhc093blByb3BlcnR5KCJiZWZvcmUiKXx8T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsImJlZm9yZSIse2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmZ1bmN0aW9uKGkpe2Zvcih2YXIgbj1bXSxzPTA7czxhcmd1bWVudHMubGVuZ3RoOysr''@;'; + put 'put ''cyluW3NdPWFyZ3VtZW50c1tzXTtpZihudWxsIT09KHM9a3QuY2FsbCh0aGlzKSkpZm9yKHZhciBkPShuPWEobikpLm5leHQoKTshZC5kb25lO2Q9bi5uZXh0KCkpWDAuY2FsbChzLCJzdHJpbmciPT10eXBlb2YoZD1kLnZhbHVlKT9kb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShkKTpkLHRoaXMp''@;'; + put 'put ''fX0pfWEyKENoYXJhY3RlckRhdGEpLGEyKEVsZW1lbnQpO3ZhciBEMixwMixPdD1Ob2RlLnByb3RvdHlwZS5yZW1vdmVDaGlsZCxmMj1udWxsIT09KHAyPW51bGw9PT0oRDI9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihOb2RlLnByb3RvdHlwZSwicGFyZW50Tm9kZSIpKXx8dm9p''@;'; + put 'put ''ZCAwPT09RDI/dm9pZCAwOkQyLmdldCkmJnZvaWQgMCE9PXAyP3AyOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucGFyZW50Tm9kZX07ZnVuY3Rpb24gWTEodCl7KHQ9dC5wcm90b3R5cGUpLmhhc093blByb3BlcnR5KCJyZW1vdmUiKXx8T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsInJlbW92ZSIs''@;'; + put 'put ''e2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGk9ZjIuY2FsbCh0aGlzKTtpJiZPdC5jYWxsKGksdGhpcyl9fSl9WTEoQ2hhcmFjdGVyRGF0YSksWTEoRWxlbWVudCk7dmFyIFEwLGcyLEUyPU5vZGUucHJvdG90eXBlLmluc2Vy''@;'; + put 'put ''dEJlZm9yZSxBMj1Ob2RlLnByb3RvdHlwZS5yZW1vdmVDaGlsZCxUMj1udWxsIT09KGcyPW51bGw9PT0oUTA9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihOb2RlLnByb3RvdHlwZSwicGFyZW50Tm9kZSIpKXx8dm9pZCAwPT09UTA/dm9pZCAwOlEwLmdldCkmJnZvaWQgMCE9PWcy''@;'; + put 'put ''P2cyOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucGFyZW50Tm9kZX07ZnVuY3Rpb24gWDIodCl7KHQ9dC5wcm90b3R5cGUpLmhhc093blByb3BlcnR5KCJyZXBsYWNlV2l0aCIpfHxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwicmVwbGFjZVdpdGgiLHtjb25maWd1cmFibGU6ITAsZW51bWVyYWJs''@;'; + put 'put ''ZTohMCx3cml0YWJsZTohMCx2YWx1ZTpmdW5jdGlvbihpKXtmb3IodmFyIG49W10scz0wO3M8YXJndW1lbnRzLmxlbmd0aDsrK3MpbltzXT1hcmd1bWVudHNbc107aWYobnVsbCE9PShzPVQyLmNhbGwodGhpcykpKXtmb3IodmFyIGQ9KG49YShuKSkubmV4dCgpOyFkLmRvbmU7ZD1uLm5leHQo''@;'; + put 'put ''KSlFMi5jYWxsKHMsInN0cmluZyI9PXR5cGVvZihkPWQudmFsdWUpP2RvY3VtZW50LmNyZWF0ZVRleHROb2RlKGQpOmQsdGhpcyk7QTIuY2FsbChzLHRoaXMpfX19KX1YMihDaGFyYWN0ZXJEYXRhKSxYMihFbGVtZW50KTt2YXIgUTI9d2luZG93LkVsZW1lbnQucHJvdG90eXBlLE4yPXdpbmRv''@;'; + put 'put ''dy5IVE1MRWxlbWVudC5wcm90b3R5cGUsSjI9d2luZG93LlNWR0VsZW1lbnQucHJvdG90eXBlOyFOMi5oYXNPd25Qcm9wZXJ0eSgiY2xhc3NMaXN0Iil8fFEyLmhhc093blByb3BlcnR5KCJjbGFzc0xpc3QiKXx8SjIuaGFzT3duUHJvcGVydHkoImNsYXNzTGlzdCIpfHxPYmplY3QuZGVmaW5l''@;'; + put 'put ''UHJvcGVydHkoUTIsImNsYXNzTGlzdCIsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihOMiwiY2xhc3NMaXN0IikpO3ZhciBGMj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpO0YyLnRleHRDb250ZW50PSJib2R5IHt0cmFuc2l0aW9uOiBvcGFjaXR5IGVhc2UtaW4gMC4y''@;'; + put 'put ''czsgfSBcbmJvZHlbdW5yZXNvbHZlZF0ge29wYWNpdHk6IDA7IGRpc3BsYXk6IGJsb2NrOyBvdmVyZmxvdzogaGlkZGVuOyBwb3NpdGlvbjogcmVsYXRpdmU7IH0gXG4iO3ZhciBJMj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJoZWFkIik7STIuaW5zZXJ0QmVmb3JlKEYyLEkyLmZpcnN0Q2hp''@;'; + put 'put ''bGQpO3ZhciBaMD13aW5kb3c7WjAuV2ViQ29tcG9uZW50cz1aMC5XZWJDb21wb25lbnRzfHx7ZmxhZ3M6e319O3ZhciBrMj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdzY3JpcHRbc3JjKj0id2ViY29tcG9uZW50cy1idW5kbGUiXScpLHR0PS93Yy0oLispLyxBMD17fTtpZighQTAubm9PcHRz''@;'; + put 'put ''KXtpZihsb2NhdGlvbi5zZWFyY2guc2xpY2UoMSkuc3BsaXQoIiYiKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3ZhciBpOyh0PXQuc3BsaXQoIj0iKSlbMF0mJihpPXRbMF0ubWF0Y2godHQpKSYmKEEwW2lbMV1dPXRbMV18fCEwKX0pLGsyKWZvcih2YXIgdzA9MCx3MT12b2lkIDA7dzE9azIuYXR0''@;'; + put 'put ''cmlidXRlc1t3MF07dzArKykic3JjIiE9PXcxLm5hbWUmJihBMFt3MS5uYW1lXT13MS52YWx1ZXx8ITApO3ZhciBkMT17fTtBMC5sb2cmJkEwLmxvZy5zcGxpdCYmQTAubG9nLnNwbGl0KCIsIikuZm9yRWFjaChmdW5jdGlvbih0KXtkMVt0XT0hMH0pLEEwLmxvZz1kMX1aMC5XZWJDb21wb25l''@;'; + put 'put ''bnRzLmZsYWdzPUEwO3ZhciBEMT1BMC5zaGFkeWRvbTtpZihEMSl7WjAuU2hhZHlET009WjAuU2hhZHlET018fHt9LFowLlNoYWR5RE9NLmZvcmNlPUQxO3ZhciBQMT1BMC5ub1BhdGNoO1owLlNoYWR5RE9NLm5vUGF0Y2g9InRydWUiPT09UDF8fFAxfXZhciBSMT1BMC5yZWdpc3Rlcnx8QTAu''@;'; + put 'put ''Y2U7ZnVuY3Rpb24gZDAoKXt9ZnVuY3Rpb24gcTEodCl7cmV0dXJuIHQuX19zaGFkeXx8KHQuX19zaGFkeT1uZXcgZDApLHQuX19zaGFkeX1mdW5jdGlvbiBnMSh0KXtyZXR1cm4gdCYmdC5fX3NoYWR5fVIxJiZ3aW5kb3cuY3VzdG9tRWxlbWVudHMmJihaMC5jdXN0b21FbGVtZW50cy5mb3Jj''@;'; + put 'put ''ZVBvbHlmaWxsPVIxKSxmdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXt9ZnVuY3Rpb24gaShvMSxMMSl7aWYoIW8xLmNoaWxkTm9kZXMubGVuZ3RoKXJldHVybltdO3N3aXRjaChvMS5ub2RlVHlwZSl7Y2FzZSBOb2RlLkRPQ1VNRU5UX05PREU6cmV0dXJuICQxLmNhbGwobzEsTDEpO2Nhc2UgTm9k''@;'; + put 'put ''ZS5ET0NVTUVOVF9GUkFHTUVOVF9OT0RFOnJldHVybiB6MS5jYWxsKG8xLEwxKTtkZWZhdWx0OnJldHVybiBNMS5jYWxsKG8xLEwxKX19dmFyIG49InVuZGVmaW5lZCI9PXR5cGVvZiBIVE1MVGVtcGxhdGVFbGVtZW50LHM9IShkb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCkuY2xv''@;'; + put 'put ''bmVOb2RlKClpbnN0YW5jZW9mIERvY3VtZW50RnJhZ21lbnQpLGQ9ITE7L1RyaWRlbnQvLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkmJmZ1bmN0aW9uKCl7ZnVuY3Rpb24gbzEoTzEscDApe2lmKE8xIGluc3RhbmNlb2YgRG9jdW1lbnRGcmFnbWVudClmb3IodmFyIEZ0O0Z0PU8xLmZpcnN0''@;'; + put 'put ''Q2hpbGQ7KVcxLmNhbGwodGhpcyxGdCxwMCk7ZWxzZSBXMS5jYWxsKHRoaXMsTzEscDApO3JldHVybiBPMX1kPSEwO3ZhciBMMT1Ob2RlLnByb3RvdHlwZS5jbG9uZU5vZGU7Tm9kZS5wcm90b3R5cGUuY2xvbmVOb2RlPWZ1bmN0aW9uKE8xKXtyZXR1cm4gTzE9TDEuY2FsbCh0aGlzLE8xKSx0''@;'; + put 'put ''aGlzIGluc3RhbmNlb2YgRG9jdW1lbnRGcmFnbWVudCYmKE8xLl9fcHJvdG9fXz1Eb2N1bWVudEZyYWdtZW50LnByb3RvdHlwZSksTzF9LERvY3VtZW50RnJhZ21lbnQucHJvdG90eXBlLnF1ZXJ5U2VsZWN0b3JBbGw9SFRNTEVsZW1lbnQucHJvdG90eXBlLnF1ZXJ5U2VsZWN0b3JBbGwsRG9j''@;'; + put 'put ''dW1lbnRGcmFnbWVudC5wcm90b3R5cGUucXVlcnlTZWxlY3Rvcj1IVE1MRWxlbWVudC5wcm90b3R5cGUucXVlcnlTZWxlY3RvcixPYmplY3QuZGVmaW5lUHJvcGVydGllcyhEb2N1bWVudEZyYWdtZW50LnByb3RvdHlwZSx7bm9kZVR5cGU6e2dldDpmdW5jdGlvbigpe3JldHVybiBOb2RlLkRP''@;'; + put 'put ''Q1VNRU5UX0ZSQUdNRU5UX05PREV9LGNvbmZpZ3VyYWJsZTohMH0sbG9jYWxOYW1lOntnZXQ6ZnVuY3Rpb24oKXt9LGNvbmZpZ3VyYWJsZTohMH0sbm9kZU5hbWU6e2dldDpmdW5jdGlvbigpe3JldHVybiIjZG9jdW1lbnQtZnJhZ21lbnQifSxjb25maWd1cmFibGU6ITB9fSk7dmFyIFcxPU5v''@;'; + put 'put ''ZGUucHJvdG90eXBlLmluc2VydEJlZm9yZTtOb2RlLnByb3RvdHlwZS5pbnNlcnRCZWZvcmU9bzE7dmFyIGEwPU5vZGUucHJvdG90eXBlLmFwcGVuZENoaWxkO05vZGUucHJvdG90eXBlLmFwcGVuZENoaWxkPWZ1bmN0aW9uKE8xKXtyZXR1cm4gTzEgaW5zdGFuY2VvZiBEb2N1bWVudEZyYWdt''@;'; + put 'put ''ZW50P28xLmNhbGwodGhpcyxPMSxudWxsKTphMC5jYWxsKHRoaXMsTzEpLE8xfTt2YXIgYjA9Tm9kZS5wcm90b3R5cGUucmVtb3ZlQ2hpbGQsUjA9Tm9kZS5wcm90b3R5cGUucmVwbGFjZUNoaWxkO05vZGUucHJvdG90eXBlLnJlcGxhY2VDaGlsZD1mdW5jdGlvbihPMSxwMCl7cmV0dXJuIE8x''@;'; + put 'put ''IGluc3RhbmNlb2YgRG9jdW1lbnRGcmFnbWVudD8obzEuY2FsbCh0aGlzLE8xLHAwKSxiMC5jYWxsKHRoaXMscDApKTpSMC5jYWxsKHRoaXMsTzEscDApLHAwfSxEb2N1bWVudC5wcm90b3R5cGUuY3JlYXRlRG9jdW1lbnRGcmFnbWVudD1mdW5jdGlvbigpe3ZhciBPMT10aGlzLmNyZWF0ZUVs''@;'; + put 'put ''ZW1lbnQoImRmIik7cmV0dXJuIE8xLl9fcHJvdG9fXz1Eb2N1bWVudEZyYWdtZW50LnByb3RvdHlwZSxPMX07dmFyIGwyPURvY3VtZW50LnByb3RvdHlwZS5pbXBvcnROb2RlO0RvY3VtZW50LnByb3RvdHlwZS5pbXBvcnROb2RlPWZ1bmN0aW9uKE8xLHAwKXtyZXR1cm4gcDA9bDIuY2FsbCh0''@;'; + put 'put ''aGlzLE8xLHAwfHwhMSksTzEgaW5zdGFuY2VvZiBEb2N1bWVudEZyYWdtZW50JiYocDAuX19wcm90b19fPURvY3VtZW50RnJhZ21lbnQucHJvdG90eXBlKSxwMH19KCk7dmFyIG09Tm9kZS5wcm90b3R5cGUuY2xvbmVOb2RlLEw9RG9jdW1lbnQucHJvdG90eXBlLmNyZWF0ZUVsZW1lbnQsRj1E''@;'; + put 'put ''b2N1bWVudC5wcm90b3R5cGUuaW1wb3J0Tm9kZSxHPU5vZGUucHJvdG90eXBlLnJlbW92ZUNoaWxkLFU9Tm9kZS5wcm90b3R5cGUuYXBwZW5kQ2hpbGQsSz1Ob2RlLnByb3RvdHlwZS5yZXBsYWNlQ2hpbGQsSDE9RE9NUGFyc2VyLnByb3RvdHlwZS5wYXJzZUZyb21TdHJpbmcsUTE9T2JqZWN0''@;'; + put 'put ''LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih3aW5kb3cuSFRNTEVsZW1lbnQucHJvdG90eXBlLCJpbm5lckhUTUwiKXx8e2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmlubmVySFRNTH0sc2V0OmZ1bmN0aW9uKG8xKXt0aGlzLmlubmVySFRNTD1vMX19LGoxPU9iamVjdC5nZXRPd25Qcm9w''@;'; + put 'put ''ZXJ0eURlc2NyaXB0b3Iod2luZG93Lk5vZGUucHJvdG90eXBlLCJjaGlsZE5vZGVzIil8fHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jaGlsZE5vZGVzfX0sTTE9RWxlbWVudC5wcm90b3R5cGUucXVlcnlTZWxlY3RvckFsbCwkMT1Eb2N1bWVudC5wcm90b3R5cGUucXVlcnlTZWxlY3Rv''@;'; + put 'put ''ckFsbCx6MT1Eb2N1bWVudEZyYWdtZW50LnByb3RvdHlwZS5xdWVyeVNlbGVjdG9yQWxsLG8wPWZ1bmN0aW9uKCl7aWYoIW4pe3ZhciBvMT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ZW1wbGF0ZSIpLEwxPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRlbXBsYXRlIik7cmV0dXJuIEwxLmNv''@;'; + put 'put ''bnRlbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikpLG8xLmNvbnRlbnQuYXBwZW5kQ2hpbGQoTDEpLDA9PT0obzE9bzEuY2xvbmVOb2RlKCEwKSkuY29udGVudC5jaGlsZE5vZGVzLmxlbmd0aHx8MD09PW8xLmNvbnRlbnQuZmlyc3RDaGlsZC5jb250ZW50LmNo''@;'; + put 'put ''aWxkTm9kZXMubGVuZ3RofHxzfX0oKTtpZihuKXt2YXIgazE9ZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRlSFRNTERvY3VtZW50KCJ0ZW1wbGF0ZSIpLG0wPSEwLFQxPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInN0eWxlIik7VDEudGV4dENvbnRlbnQ9InRlbXBsYXRle2Rpc3BsYXk6''@;'; + put 'put ''bm9uZTt9Ijt2YXIgdDI9ZG9jdW1lbnQuaGVhZDt0Mi5pbnNlcnRCZWZvcmUoVDEsdDIuZmlyc3RFbGVtZW50Q2hpbGQpLHQucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoSFRNTEVsZW1lbnQucHJvdG90eXBlKTt2YXIgRjA9IWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLmhhc093blBy''@;'; + put 'put ''b3BlcnR5KCJpbm5lckhUTUwiKTt0Llo9ZnVuY3Rpb24obzEpe2lmKCFvMS5jb250ZW50JiZvMS5uYW1lc3BhY2VVUkk9PT1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQubmFtZXNwYWNlVVJJKXtvMS5jb250ZW50PWsxLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTtmb3IodmFyIEwxO0wxPW8x''@;'; + put 'put ''LmZpcnN0Q2hpbGQ7KVUuY2FsbChvMS5jb250ZW50LEwxKTtpZihGMClvMS5fX3Byb3RvX189dC5wcm90b3R5cGU7ZWxzZSBpZihvMS5jbG9uZU5vZGU9ZnVuY3Rpb24oVzEpe3JldHVybiB0LnNhKHRoaXMsVzEpfSxtMCl0cnl7dDEobzEpLGwwKG8xKX1jYXRjaChXMSl7bTA9ITF9dC5ib290''@;'; + put 'put ''c3RyYXAobzEuY29udGVudCl9fTt2YXIgZTI9e29wdGlvbjpbInNlbGVjdCJdLHRoZWFkOlsidGFibGUiXSxjb2w6WyJjb2xncm91cCIsInRhYmxlIl0sdHI6WyJ0Ym9keSIsInRhYmxlIl0sdGg6WyJ0ciIsInRib2R5IiwidGFibGUiXSx0ZDpbInRyIiwidGJvZHkiLCJ0YWJsZSJdfSx0MT1m''@;'; + put 'put ''dW5jdGlvbihvMSl7T2JqZWN0LmRlZmluZVByb3BlcnR5KG8xLCJpbm5lckhUTUwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZDIodGhpcyl9LHNldDpmdW5jdGlvbihMMSl7dmFyIFcxPWUyWygvPChbYS16XVteL1wwPlx4MjBcdFxyXG5cZl0rKS9pLmV4ZWMoTDEpfHxbIiIsIiJdKVsxXS50''@;'; + put 'put ''b0xvd2VyQ2FzZSgpXTtpZihXMSlmb3IodmFyIGEwPTA7YTA8VzEubGVuZ3RoO2EwKyspTDE9IjwiK1cxW2EwXSsiPiIrTDErIjwvIitXMVthMF0rIj4iO2ZvcihrMS5ib2R5LmlubmVySFRNTD1MMSx0LmJvb3RzdHJhcChrMSk7dGhpcy5jb250ZW50LmZpcnN0Q2hpbGQ7KUcuY2FsbCh0aGlz''@;'; + put 'put ''LmNvbnRlbnQsdGhpcy5jb250ZW50LmZpcnN0Q2hpbGQpO2lmKEwxPWsxLmJvZHksVzEpZm9yKGEwPTA7YTA8VzEubGVuZ3RoO2EwKyspTDE9TDEubGFzdENoaWxkO2Zvcig7TDEuZmlyc3RDaGlsZDspVS5jYWxsKHRoaXMuY29udGVudCxMMS5maXJzdENoaWxkKX0sY29uZmlndXJhYmxlOiEw''@;'; + put 'put ''fSl9LGwwPWZ1bmN0aW9uKG8xKXtPYmplY3QuZGVmaW5lUHJvcGVydHkobzEsIm91dGVySFRNTCIse2dldDpmdW5jdGlvbigpe3JldHVybiI8dGVtcGxhdGU+Iit0aGlzLmlubmVySFRNTCsiPC90ZW1wbGF0ZT4ifSxzZXQ6ZnVuY3Rpb24oTDEpe2lmKCF0aGlzLnBhcmVudE5vZGUpdGhyb3cg''@;'; + put 'put ''RXJyb3IoIkZhaWxlZCB0byBzZXQgdGhlICdvdXRlckhUTUwnIHByb3BlcnR5IG9uICdFbGVtZW50JzogVGhpcyBlbGVtZW50IGhhcyBubyBwYXJlbnQgbm9kZS4iKTtmb3IoazEuYm9keS5pbm5lckhUTUw9TDEsTDE9dGhpcy5vd25lckRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQo''@;'; + put 'put ''KTtrMS5ib2R5LmZpcnN0Q2hpbGQ7KVUuY2FsbChMMSxrMS5ib2R5LmZpcnN0Q2hpbGQpO0suY2FsbCh0aGlzLnBhcmVudE5vZGUsTDEsdGhpcyl9LGNvbmZpZ3VyYWJsZTohMH0pfTt0MSh0LnByb3RvdHlwZSksbDAodC5wcm90b3R5cGUpLHQuYm9vdHN0cmFwPWZ1bmN0aW9uKG8xKXtmb3Io''@;'; + put 'put ''dmFyIGEwLEwxPTAsVzE9KG8xPWkobzEsInRlbXBsYXRlIikpLmxlbmd0aDtMMTxXMSYmKGEwPW8xW0wxXSk7TDErKyl0LlooYTApfSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIixmdW5jdGlvbigpe3QuYm9vdHN0cmFwKGRvY3VtZW50KX0pLERvY3VtZW50''@;'; + put 'put ''LnByb3RvdHlwZS5jcmVhdGVFbGVtZW50PWZ1bmN0aW9uKCl7dmFyIG8xPUwuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiJ0ZW1wbGF0ZSI9PT1vMS5sb2NhbE5hbWUmJnQuWihvMSksbzF9LERPTVBhcnNlci5wcm90b3R5cGUucGFyc2VGcm9tU3RyaW5nPWZ1bmN0aW9uKCl7dmFyIG8x''@;'; + put 'put ''PUgxLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gdC5ib290c3RyYXAobzEpLG8xfSxPYmplY3QuZGVmaW5lUHJvcGVydHkoSFRNTEVsZW1lbnQucHJvdG90eXBlLCJpbm5lckhUTUwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZDIodGhpcyl9LHNldDpmdW5jdGlvbihvMSl7UTEuc2V0''@;'; + put 'put ''LmNhbGwodGhpcyxvMSksdC5ib290c3RyYXAodGhpcyl9LGNvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwfSk7dmFyIEkwPS9bJlx1MDBBMCJdL2csVWU9L1smXHUwMEEwPD5dL2csVHQ9ZnVuY3Rpb24obzEpe3N3aXRjaChvMSl7Y2FzZSImIjpyZXR1cm4iJmFtcDsiO2Nhc2UiPCI6cmV0''@;'; + put 'put ''dXJuIiZsdDsiO2Nhc2UiPiI6cmV0dXJuIiZndDsiO2Nhc2UnIic6cmV0dXJuIiZxdW90OyI7Y2FzZSJceGEwIjpyZXR1cm4iJm5ic3A7In19LEsyPShUMT1mdW5jdGlvbihvMSl7Zm9yKHZhciBMMT17fSxXMT0wO1cxPG8xLmxlbmd0aDtXMSsrKUwxW28xW1cxXV09ITA7cmV0dXJuIEwxfSko''@;'; + put 'put ''ImFyZWEgYmFzZSBiciBjb2wgY29tbWFuZCBlbWJlZCBociBpbWcgaW5wdXQga2V5Z2VuIGxpbmsgbWV0YSBwYXJhbSBzb3VyY2UgdHJhY2sgd2JyIi5zcGxpdCgiICIpKSxOdD1UMSgic3R5bGUgc2NyaXB0IHhtcCBpZnJhbWUgbm9lbWJlZCBub2ZyYW1lcyBwbGFpbnRleHQgbm9zY3JpcHQi''@;'; + put 'put ''LnNwbGl0KCIgIikpLGQyPWZ1bmN0aW9uKG8xLEwxKXsidGVtcGxhdGUiPT09bzEubG9jYWxOYW1lJiYobzE9bzEuY29udGVudCk7Zm9yKHZhciBsMixXMT0iIixhMD1MMT9MMShvMSk6ajEuZ2V0LmNhbGwobzEpLGIwPTAsUjA9YTAubGVuZ3RoO2IwPFIwJiYobDI9YTBbYjBdKTtiMCsrKXt0''@;'; + put 'put ''Ont2YXIgTzE9bDIscDA9bzEsRnQ9TDE7c3dpdGNoKE8xLm5vZGVUeXBlKXtjYXNlIE5vZGUuRUxFTUVOVF9OT0RFOmZvcih2YXIgV2U9TzEubG9jYWxOYW1lLEl0PSI8IitXZSxVcj1PMS5hdHRyaWJ1dGVzLG9hPTA7cDA9VXJbb2FdO29hKyspSXQrPSIgIitwMC5uYW1lKyc9IicrcDAudmFs''@;'; + put 'put ''dWUucmVwbGFjZShJMCxUdCkrJyInO0l0Kz0iPiIsTzE9SzJbV2VdP0l0Okl0K2QyKE8xLEZ0KSsiPC8iK1dlKyI+IjticmVhayB0O2Nhc2UgTm9kZS5URVhUX05PREU6TzE9TzEuZGF0YSxPMT1wMCYmTnRbcDAubG9jYWxOYW1lXT9PMTpPMS5yZXBsYWNlKFVlLFR0KTticmVhayB0O2Nhc2Ug''@;'; + put 'put ''Tm9kZS5DT01NRU5UX05PREU6TzE9Ilx4M2MhLS0iK08xLmRhdGErIi0tXHgzZSI7YnJlYWsgdDtkZWZhdWx0OnRocm93IHdpbmRvdy5jb25zb2xlLmVycm9yKE8xKSxFcnJvcigibm90IGltcGxlbWVudGVkIil9fVcxKz1PMX1yZXR1cm4gVzF9fWlmKG58fG8wKXt0LnNhPWZ1bmN0aW9uKG8x''@;'; + put 'put ''LEwxKXt2YXIgVzE9bS5jYWxsKG8xLCExKTtyZXR1cm4gdGhpcy5aJiZ0aGlzLlooVzEpLEwxJiYoVS5jYWxsKFcxLmNvbnRlbnQsbS5jYWxsKG8xLmNvbnRlbnQsITApKSxDMShXMS5jb250ZW50LG8xLmNvbnRlbnQpKSxXMX07dmFyIEMxPWZ1bmN0aW9uKG8xLEwxKXtpZihMMS5xdWVyeVNl''@;'; + put 'put ''bGVjdG9yQWxsJiYwIT09KEwxPWkoTDEsInRlbXBsYXRlIikpLmxlbmd0aClmb3IodmFyIGIwLFIwLFcxPTAsYTA9KG8xPWkobzEsInRlbXBsYXRlIikpLmxlbmd0aDtXMTxhMDtXMSsrKVIwPUwxW1cxXSxiMD1vMVtXMV0sdCYmdC5aJiZ0LlooUjApLEsuY2FsbChiMC5wYXJlbnROb2RlLFUx''@;'; + put 'put ''LmNhbGwoUjAsITApLGIwKX0sVTE9Tm9kZS5wcm90b3R5cGUuY2xvbmVOb2RlPWZ1bmN0aW9uKG8xKXtpZighZCYmcyYmdGhpcyBpbnN0YW5jZW9mIERvY3VtZW50RnJhZ21lbnQpe2lmKCFvMSlyZXR1cm4gdGhpcy5vd25lckRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTt2YXIg''@;'; + put 'put ''TDE9aTAuY2FsbCh0aGlzLm93bmVyRG9jdW1lbnQsdGhpcywhMCl9ZWxzZSBMMT10aGlzLm5vZGVUeXBlPT09Tm9kZS5FTEVNRU5UX05PREUmJiJ0ZW1wbGF0ZSI9PT10aGlzLmxvY2FsTmFtZSYmdGhpcy5uYW1lc3BhY2VVUkk9PWRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5uYW1lc3BhY2VV''@;'; + put 'put ''Ukk/dC5zYSh0aGlzLG8xKTptLmNhbGwodGhpcyxvMSk7cmV0dXJuIG8xJiZDMShMMSx0aGlzKSxMMX0saTA9RG9jdW1lbnQucHJvdG90eXBlLmltcG9ydE5vZGU9ZnVuY3Rpb24obzEsTDEpe2lmKEwxPUwxfHwhMSwidGVtcGxhdGUiPT09bzEubG9jYWxOYW1lKXJldHVybiB0LnNhKG8xLEwx''@;'; + put 'put ''KTt2YXIgVzE9Ri5jYWxsKHRoaXMsbzEsTDEpO2lmKEwxKXtDMShXMSxvMSksbzE9aShXMSwnc2NyaXB0Om5vdChbdHlwZV0pLHNjcmlwdFt0eXBlPSJhcHBsaWNhdGlvbi9qYXZhc2NyaXB0Il0sc2NyaXB0W3R5cGU9InRleHQvamF2YXNjcmlwdCJdJyk7Zm9yKHZhciBhMCxiMD0wO2IwPG8x''@;'; + put 'put ''Lmxlbmd0aDtiMCsrKXthMD1vMVtiMF0sKEwxPUwuY2FsbChkb2N1bWVudCwic2NyaXB0IikpLnRleHRDb250ZW50PWEwLnRleHRDb250ZW50O2Zvcih2YXIgTzEsUjA9YTAuYXR0cmlidXRlcyxsMj0wO2wyPFIwLmxlbmd0aDtsMisrKUwxLnNldEF0dHJpYnV0ZSgoTzE9UjBbbDJdKS5uYW1l''@;'; + put 'put ''LE8xLnZhbHVlKTtLLmNhbGwoYTAucGFyZW50Tm9kZSxMMSxhMCl9fXJldHVybiBXMX19biYmKHdpbmRvdy5IVE1MVGVtcGxhdGVFbGVtZW50PXQpfSgpLGQwLnByb3RvdHlwZS50b0pTT049ZnVuY3Rpb24oKXtyZXR1cm57fX07dmFyIHkxPXdpbmRvdy5TaGFkeURPTXx8e307eTEuWWE9ISgh''@;'; + put 'put ''RWxlbWVudC5wcm90b3R5cGUuYXR0YWNoU2hhZG93fHwhTm9kZS5wcm90b3R5cGUuZ2V0Um9vdE5vZGUpO3ZhciBXMD1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKE5vZGUucHJvdG90eXBlLCJmaXJzdENoaWxkIik7ZnVuY3Rpb24gTzAoKXtyZXR1cm4gRG9jdW1lbnQucHJvdG90''@;'; + put 'put ''eXBlLm1zRWxlbWVudHNGcm9tUG9pbnQ/Im1zRWxlbWVudHNGcm9tUG9pbnQiOiJlbGVtZW50c0Zyb21Qb2ludCJ9ZnVuY3Rpb24gSzEodCl7cmV0dXJuKHQ9ZzEodCkpJiZ2b2lkIDAhPT10LmZpcnN0Q2hpbGR9ZnVuY3Rpb24gZTAodCl7cmV0dXJuIHQgaW5zdGFuY2VvZiBTaGFkb3dSb290''@;'; + put 'put ''fWZ1bmN0aW9uIEowKHQpe3JldHVybih0PSh0PWcxKHQpKSYmdC5yb290KSYmJGwodCl9eTEuSD0hIShXMCYmVzAuY29uZmlndXJhYmxlJiZXMC5nZXQpLHkxLnlhPXkxLmZvcmNlfHwheTEuWWEseTEuSj15MS5ub1BhdGNofHwhMSx5MS5mYT15MS5wcmVmZXJQZXJmb3JtYW5jZSx5MS5BYT0i''@;'; + put 'put ''b24tZGVtYW5kIj09PXkxLkoseTEuTmE9bmF2aWdhdG9yLnVzZXJBZ2VudC5tYXRjaCgiVHJpZGVudCIpO3ZhciBQMD1FbGVtZW50LnByb3RvdHlwZSxPMj1QMC5tYXRjaGVzfHxQMC5tYXRjaGVzU2VsZWN0b3J8fFAwLm1vek1hdGNoZXNTZWxlY3Rvcnx8UDAubXNNYXRjaGVzU2VsZWN0b3J8''@;'; + put 'put ''fFAwLm9NYXRjaGVzU2VsZWN0b3J8fFAwLndlYmtpdE1hdGNoZXNTZWxlY3RvcixnMD1kb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiIiksWDE9MCxIMD1bXTtmdW5jdGlvbiBEMCh0KXtIMC5wdXNoKHQpLGcwLnRleHRDb250ZW50PVgxKyt9bmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24o''@;'; + put 'put ''KXtmb3IoO0gwLmxlbmd0aDspdHJ5e0gwLnNoaWZ0KCkoKX1jYXRjaCh0KXt0aHJvdyBnMC50ZXh0Q29udGVudD1YMSsrLHR9fSkub2JzZXJ2ZShnMCx7Y2hhcmFjdGVyRGF0YTohMH0pO3ZhciB1MD1kb2N1bWVudC5jb250YWlucz9mdW5jdGlvbih0LGkpe3JldHVybiB0Ll9fc2hhZHlfbmF0''@;'; + put 'put ''aXZlX2NvbnRhaW5zKGkpfTpmdW5jdGlvbih0LGkpe3JldHVybiB0PT09aXx8dC5kb2N1bWVudEVsZW1lbnQmJnQuZG9jdW1lbnRFbGVtZW50Ll9fc2hhZHlfbmF0aXZlX2NvbnRhaW5zKGkpfTtmdW5jdGlvbiB4MCh0LGkpe2Zvcig7aTspe2lmKGk9PXQpcmV0dXJuITA7aT1pLl9fc2hhZHlf''@;'; + put 'put ''cGFyZW50Tm9kZX1yZXR1cm4hMX1mdW5jdGlvbiBCMCh0KXtmb3IodmFyIGk9dC5sZW5ndGgtMTswPD1pO2ktLSl7dmFyIG49dFtpXSxzPW4uZ2V0QXR0cmlidXRlKCJpZCIpfHxuLmdldEF0dHJpYnV0ZSgibmFtZSIpO3MmJiJsZW5ndGgiIT09cyYmaXNOYU4ocykmJih0W3NdPW4pfXJldHVy''@;'; + put 'put ''biB0Lml0ZW09ZnVuY3Rpb24oZCl7cmV0dXJuIHRbZF19LHQubmFtZWRJdGVtPWZ1bmN0aW9uKGQpe2lmKCJsZW5ndGgiIT09ZCYmaXNOYU4oZCkmJnRbZF0pcmV0dXJuIHRbZF07Zm9yKHZhciBtPWEodCksTD1tLm5leHQoKTshTC5kb25lO0w9bS5uZXh0KCkpaWYoKChMPUwudmFsdWUpLmdl''@;'; + put 'put ''dEF0dHJpYnV0ZSgiaWQiKXx8TC5nZXRBdHRyaWJ1dGUoIm5hbWUiKSk9PWQpcmV0dXJuIEw7cmV0dXJuIG51bGx9LHR9ZnVuY3Rpb24gUDIodCl7dmFyIGk9W107Zm9yKHQ9dC5fX3NoYWR5X25hdGl2ZV9maXJzdENoaWxkO3Q7dD10Ll9fc2hhZHlfbmF0aXZlX25leHRTaWJsaW5nKWkucHVz''@;'; + put 'put ''aCh0KTtyZXR1cm4gaX1mdW5jdGlvbiB2Mih0KXt2YXIgaT1bXTtmb3IodD10Ll9fc2hhZHlfZmlyc3RDaGlsZDt0O3Q9dC5fX3NoYWR5X25leHRTaWJsaW5nKWkucHVzaCh0KTtyZXR1cm4gaX1mdW5jdGlvbiByMih0LGksbil7aWYobi5jb25maWd1cmFibGU9ITAsbi52YWx1ZSl0W2ldPW4u''@;'; + put 'put ''dmFsdWU7ZWxzZSB0cnl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsaSxuKX1jYXRjaChzKXt9fWZ1bmN0aW9uIHMwKHQsaSxuLHMpe2Zvcih2YXIgZCBpbiBuPXZvaWQgMD09PW4/IiI6bixpKXMmJjA8PXMuaW5kZXhPZihkKXx8cjIodCxuK2QsaVtkXSl9ZnVuY3Rpb24gUHQodCxpKXtmb3Io''@;'; + put 'put ''dmFyIG4gaW4gaSluIGluIHQmJnIyKHQsbixpW25dKX1mdW5jdGlvbiBuMCh0KXt2YXIgaT17fTtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModCkuZm9yRWFjaChmdW5jdGlvbihuKXtpW25dPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxuKX0pLGl9ZnVuY3Rp''@;'; + put 'put ''b24gQnQodCxpKXtmb3IodmFyIGQsbj1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhpKSxzPTA7czxuLmxlbmd0aDtzKyspdFtkPW5bc11dPWlbZF19ZnVuY3Rpb24gJGUodCl7cmV0dXJuIHQgaW5zdGFuY2VvZiBOb2RlP3Q6ZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIiIrdCl9ZnVuY3Rp''@;'; + put 'put ''b24gSDIodCl7Zm9yKHZhciBpPVtdLG49MDtuPGFyZ3VtZW50cy5sZW5ndGg7KytuKWlbbl09YXJndW1lbnRzW25dO2lmKDE9PT1pLmxlbmd0aClyZXR1cm4gJGUoaVswXSk7bj1kb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7Zm9yKHZhciBzPShpPWEoaSkpLm5leHQoKTshcy5k''@;'; + put 'put ''b25lO3M9aS5uZXh0KCkpbi5hcHBlbmRDaGlsZCgkZShzLnZhbHVlKSk7cmV0dXJuIG59dmFyIEd0LEIyPVtdO2Z1bmN0aW9uIHFlKHQpe0d0fHwoR3Q9ITAsRDAoZXQpKSxCMi5wdXNoKHQpfWZ1bmN0aW9uIGV0KCl7R3Q9ITE7Zm9yKHZhciB0PSEhQjIubGVuZ3RoO0IyLmxlbmd0aDspQjIu''@;'; + put 'put ''c2hpZnQoKSgpO3JldHVybiB0fWZ1bmN0aW9uIGp0KCl7dGhpcy5nPSExLHRoaXMuYWRkZWROb2Rlcz1bXSx0aGlzLnJlbW92ZWROb2Rlcz1bXSx0aGlzLm9hPW5ldyBTZXR9ZXQubGlzdD1CMixqdC5wcm90b3R5cGUuZmx1c2g9ZnVuY3Rpb24oKXtpZih0aGlzLmcpe3RoaXMuZz0hMTt2YXIg''@;'; + put 'put ''dD10aGlzLnRha2VSZWNvcmRzKCk7dC5sZW5ndGgmJnRoaXMub2EuZm9yRWFjaChmdW5jdGlvbihpKXtpKHQpfSl9fSxqdC5wcm90b3R5cGUudGFrZVJlY29yZHM9ZnVuY3Rpb24oKXtpZih0aGlzLmFkZGVkTm9kZXMubGVuZ3RofHx0aGlzLnJlbW92ZWROb2Rlcy5sZW5ndGgpe3ZhciB0PVt7''@;'; + put 'put ''YWRkZWROb2Rlczp0aGlzLmFkZGVkTm9kZXMscmVtb3ZlZE5vZGVzOnRoaXMucmVtb3ZlZE5vZGVzfV07cmV0dXJuIHRoaXMuYWRkZWROb2Rlcz1bXSx0aGlzLnJlbW92ZWROb2Rlcz1bXSx0fXJldHVybltdfTt2YXIgcGE9L1smXHUwMEEwIl0vZyxmYT0vWyZcdTAwQTA8Pl0vZztmdW5jdGlv''@;'; + put 'put ''biBZZSh0KXtzd2l0Y2godCl7Y2FzZSImIjpyZXR1cm4iJmFtcDsiO2Nhc2UiPCI6cmV0dXJuIiZsdDsiO2Nhc2UiPiI6cmV0dXJuIiZndDsiO2Nhc2UnIic6cmV0dXJuIiZxdW90OyI7Y2FzZSJceGEwIjpyZXR1cm4iJm5ic3A7In19ZnVuY3Rpb24gS2UodCl7Zm9yKHZhciBpPXt9LG49MDtu''@;'; + put 'put ''PHQubGVuZ3RoO24rKylpW3Rbbl1dPSEwO3JldHVybiBpfXZhciBnYT1LZSgiYXJlYSBiYXNlIGJyIGNvbCBjb21tYW5kIGVtYmVkIGhyIGltZyBpbnB1dCBrZXlnZW4gbGluayBtZXRhIHBhcmFtIHNvdXJjZSB0cmFjayB3YnIiLnNwbGl0KCIgIikpLEFhPUtlKCJzdHlsZSBzY3JpcHQgeG1w''@;'; + put 'put ''IGlmcmFtZSBub2VtYmVkIG5vZnJhbWVzIHBsYWludGV4dCBub3NjcmlwdCIuc3BsaXQoIiAiKSk7ZnVuY3Rpb24gUnQodCxpKXsidGVtcGxhdGUiPT09dC5sb2NhbE5hbWUmJih0PXQuY29udGVudCk7Zm9yKHZhciBuPSIiLHM9aT9pKHQpOnQuY2hpbGROb2RlcyxkPTAsbT1zLmxlbmd0aCxM''@;'; + put 'put ''PXZvaWQgMDtkPG0mJihMPXNbZF0pO2QrKyl7dDp7dmFyIEY9TCxHPXQsVT1pO3N3aXRjaChGLm5vZGVUeXBlKXtjYXNlIE5vZGUuRUxFTUVOVF9OT0RFOmZvcih2YXIgajEsSz0iPCIrKEc9Ri5sb2NhbE5hbWUpLEgxPUYuYXR0cmlidXRlcyxRMT0wO2oxPUgxW1ExXTtRMSsrKUsrPSIgIitq''@;'; + put 'put ''MS5uYW1lKyc9IicrajEudmFsdWUucmVwbGFjZShwYSxZZSkrJyInO0srPSI+IixGPWdhW0ddP0s6SytSdChGLFUpKyI8LyIrRysiPiI7YnJlYWsgdDtjYXNlIE5vZGUuVEVYVF9OT0RFOkY9Ri5kYXRhLEY9RyYmQWFbRy5sb2NhbE5hbWVdP0Y6Ri5yZXBsYWNlKGZhLFllKTticmVhayB0O2Nh''@;'; + put 'put ''c2UgTm9kZS5DT01NRU5UX05PREU6Rj0iXHgzYyEtLSIrRi5kYXRhKyItLVx4M2UiO2JyZWFrIHQ7ZGVmYXVsdDp0aHJvdyB3aW5kb3cuY29uc29sZS5lcnJvcihGKSxFcnJvcigibm90IGltcGxlbWVudGVkIil9fW4rPUZ9cmV0dXJuIG59dmFyIGx0PXkxLkgsenQ9e3F1ZXJ5U2VsZWN0b3I6''@;'; + put 'put ''ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX19zaGFkeV9uYXRpdmVfcXVlcnlTZWxlY3Rvcih0KX0scXVlcnlTZWxlY3RvckFsbDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fX3NoYWR5X25hdGl2ZV9xdWVyeVNlbGVjdG9yQWxsKHQpfX0sWGU9e307ZnVuY3Rpb24gUWUodCl7WGVbdF09ZnVu''@;'; + put 'put ''Y3Rpb24oaSl7cmV0dXJuIGlbIl9fc2hhZHlfbmF0aXZlXyIrdF19fWZ1bmN0aW9uIEcyKHQsaSl7Zm9yKHZhciBuIGluIHMwKHQsaSwiX19zaGFkeV9uYXRpdmVfIiksaSlRZShuKX1mdW5jdGlvbiBjMCh0LGkpe2k9dm9pZCAwPT09aT9bXTppO2Zvcih2YXIgbj0wO248aS5sZW5ndGg7bisr''@;'; + put 'put ''KXt2YXIgcz1pW25dLGQ9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LHMpO2QmJihPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19zaGFkeV9uYXRpdmVfIitzLGQpLGQudmFsdWU/enRbc118fCh6dFtzXT1kLnZhbHVlKTpRZShzKSl9fXZhciB5MD1kb2N1bWVudC5jcmVhdGVU''@;'; + put 'put ''cmVlV2Fsa2VyKGRvY3VtZW50LE5vZGVGaWx0ZXIuU0hPV19BTEwsbnVsbCwhMSksTDA9ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N1bWVudCxOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCxudWxsLCExKSxVdD1kb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnQo''@;'; + put 'put ''ImluZXJ0Iik7ZnVuY3Rpb24gSmUodCl7Zm9yKHZhciBpO2k9dC5fX3NoYWR5X25hdGl2ZV9maXJzdENoaWxkOyl0Ll9fc2hhZHlfbmF0aXZlX3JlbW92ZUNoaWxkKGkpfXZhciBXdD1bImZpcnN0RWxlbWVudENoaWxkIiwibGFzdEVsZW1lbnRDaGlsZCIsImNoaWxkcmVuIiwiY2hpbGRFbGVt''@;'; + put 'put ''ZW50Q291bnQiXSwkdD1bInF1ZXJ5U2VsZWN0b3IiLCJxdWVyeVNlbGVjdG9yQWxsIiwiYXBwZW5kIiwicHJlcGVuZCIsInJlcGxhY2VDaGlsZHJlbiJdLHF0PW4wKHtnZXQgY2hpbGROb2Rlcygpe3JldHVybiB0aGlzLl9fc2hhZHlfY2hpbGROb2Rlc30sZ2V0IGZpcnN0Q2hpbGQoKXtyZXR1''@;'; + put 'put ''cm4gdGhpcy5fX3NoYWR5X2ZpcnN0Q2hpbGR9LGdldCBsYXN0Q2hpbGQoKXtyZXR1cm4gdGhpcy5fX3NoYWR5X2xhc3RDaGlsZH0sZ2V0IGNoaWxkRWxlbWVudENvdW50KCl7cmV0dXJuIHRoaXMuX19zaGFkeV9jaGlsZEVsZW1lbnRDb3VudH0sZ2V0IGNoaWxkcmVuKCl7cmV0dXJuIHRoaXMu''@;'; + put 'put ''X19zaGFkeV9jaGlsZHJlbn0sZ2V0IGZpcnN0RWxlbWVudENoaWxkKCl7cmV0dXJuIHRoaXMuX19zaGFkeV9maXJzdEVsZW1lbnRDaGlsZH0sZ2V0IGxhc3RFbGVtZW50Q2hpbGQoKXtyZXR1cm4gdGhpcy5fX3NoYWR5X2xhc3RFbGVtZW50Q2hpbGR9LGdldCBzaGFkb3dSb290KCl7cmV0dXJu''@;'; + put 'put ''IHRoaXMuX19zaGFkeV9zaGFkb3dSb290fX0pLFl0PW4wKHtnZXQgdGV4dENvbnRlbnQoKXtyZXR1cm4gdGhpcy5fX3NoYWR5X3RleHRDb250ZW50fSxzZXQgdGV4dENvbnRlbnQodCl7dGhpcy5fX3NoYWR5X3RleHRDb250ZW50PXR9LGdldCBpbm5lckhUTUwoKXtyZXR1cm4gdGhpcy5fX3No''@;'; + put 'put ''YWR5X2lubmVySFRNTH0sc2V0IGlubmVySFRNTCh0KXt0aGlzLl9fc2hhZHlfaW5uZXJIVE1MPXR9fSksS3Q9bjAoe2dldCBwYXJlbnRFbGVtZW50KCl7cmV0dXJuIHRoaXMuX19zaGFkeV9wYXJlbnRFbGVtZW50fSxnZXQgcGFyZW50Tm9kZSgpe3JldHVybiB0aGlzLl9fc2hhZHlfcGFyZW50''@;'; + put 'put ''Tm9kZX0sZ2V0IG5leHRTaWJsaW5nKCl7cmV0dXJuIHRoaXMuX19zaGFkeV9uZXh0U2libGluZ30sZ2V0IHByZXZpb3VzU2libGluZygpe3JldHVybiB0aGlzLl9fc2hhZHlfcHJldmlvdXNTaWJsaW5nfSxnZXQgbmV4dEVsZW1lbnRTaWJsaW5nKCl7cmV0dXJuIHRoaXMuX19zaGFkeV9uZXh0''@;'; + put 'put ''RWxlbWVudFNpYmxpbmd9LGdldCBwcmV2aW91c0VsZW1lbnRTaWJsaW5nKCl7cmV0dXJuIHRoaXMuX19zaGFkeV9wcmV2aW91c0VsZW1lbnRTaWJsaW5nfSxnZXQgY2xhc3NOYW1lKCl7cmV0dXJuIHRoaXMuX19zaGFkeV9jbGFzc05hbWV9LHNldCBjbGFzc05hbWUodCl7dGhpcy5fX3NoYWR5''@;'; + put 'put ''X2NsYXNzTmFtZT10fX0pO2Z1bmN0aW9uIFh0KHQpe2Zvcih2YXIgaSBpbiB0KXt2YXIgbj10W2ldO24mJihuLmVudW1lcmFibGU9ITEpfX1YdChxdCksWHQoWXQpLFh0KEt0KTt2YXIgdGw9eTEuSHx8ITA9PT15MS5KLGVsPXRsP2Z1bmN0aW9uKCl7fTpmdW5jdGlvbih0KXt2YXIgaT1xMSh0''@;'; + put 'put ''KTtpLlBhfHwoaS5QYT0hMCxQdCh0LEt0KSl9LGxsPXRsP2Z1bmN0aW9uKCl7fTpmdW5jdGlvbih0KXt2YXIgaT1xMSh0KTtpLk9hfHwoaS5PYT0hMCxQdCh0LHF0KSx3aW5kb3cuY3VzdG9tRWxlbWVudHMmJndpbmRvdy5jdXN0b21FbGVtZW50cy5wb2x5ZmlsbFdyYXBGbHVzaENhbGxiYWNr''@;'; + put 'put ''JiYheTEuSnx8UHQodCxZdCkpfSxqMj0iX19ldmVudFdyYXBwZXJzIitEYXRlLm5vdygpLFF0PWZ1bmN0aW9uKCl7dmFyIHQ9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFdmVudC5wcm90b3R5cGUsImNvbXBvc2VkIik7cmV0dXJuIHQ/ZnVuY3Rpb24oaSl7cmV0dXJuIHQuZ2V0''@;'; + put 'put ''LmNhbGwoaSl9Om51bGx9KCksSGE9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7fXZhciBpPSExLG49e2dldCBjYXB0dXJlKCl7cmV0dXJuIGk9ITAsITF9fTtyZXR1cm4gd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInRlc3QiLHQsbiksd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRlc3Qi''@;'; + put 'put ''LHQsbiksaX0oKTtmdW5jdGlvbiBpbCh0KXtpZih0JiYib2JqZWN0Ij09dHlwZW9mIHQpdmFyIGk9ISF0LmNhcHR1cmUsbj0hIXQub25jZSxzPSEhdC5wYXNzaXZlLGQ9dC5VO2Vsc2UgaT0hIXQscz1uPSExO3JldHVybntMYTpkLGNhcHR1cmU6aSxvbmNlOm4scGFzc2l2ZTpzLEphOkhhP3Q6''@;'; + put 'put ''aX19dmFyIENhPXtibHVyOiEwLGZvY3VzOiEwLGZvY3VzaW46ITAsZm9jdXNvdXQ6ITAsY2xpY2s6ITAsZGJsY2xpY2s6ITAsbW91c2Vkb3duOiEwLG1vdXNlZW50ZXI6ITAsbW91c2VsZWF2ZTohMCxtb3VzZW1vdmU6ITAsbW91c2VvdXQ6ITAsbW91c2VvdmVyOiEwLG1vdXNldXA6ITAsd2hl''@;'; + put 'put ''ZWw6ITAsYmVmb3JlaW5wdXQ6ITAsaW5wdXQ6ITAsa2V5ZG93bjohMCxrZXl1cDohMCxjb21wb3NpdGlvbnN0YXJ0OiEwLGNvbXBvc2l0aW9udXBkYXRlOiEwLGNvbXBvc2l0aW9uZW5kOiEwLHRvdWNoc3RhcnQ6ITAsdG91Y2hlbmQ6ITAsdG91Y2htb3ZlOiEwLHRvdWNoY2FuY2VsOiEwLHBv''@;'; + put 'put ''aW50ZXJvdmVyOiEwLHBvaW50ZXJlbnRlcjohMCxwb2ludGVyZG93bjohMCxwb2ludGVybW92ZTohMCxwb2ludGVydXA6ITAscG9pbnRlcmNhbmNlbDohMCxwb2ludGVyb3V0OiEwLHBvaW50ZXJsZWF2ZTohMCxnb3Rwb2ludGVyY2FwdHVyZTohMCxsb3N0cG9pbnRlcmNhcHR1cmU6ITAsZHJh''@;'; + put 'put ''Z3N0YXJ0OiEwLGRyYWc6ITAsZHJhZ2VudGVyOiEwLGRyYWdsZWF2ZTohMCxkcmFnb3ZlcjohMCxkcm9wOiEwLGRyYWdlbmQ6ITAsRE9NQWN0aXZhdGU6ITAsRE9NRm9jdXNJbjohMCxET01Gb2N1c091dDohMCxrZXlwcmVzczohMH0sYWw9e0RPTUF0dHJNb2RpZmllZDohMCxET01BdHRyaWJ1''@;'; + put 'put ''dGVOYW1lQ2hhbmdlZDohMCxET01DaGFyYWN0ZXJEYXRhTW9kaWZpZWQ6ITAsRE9NRWxlbWVudE5hbWVDaGFuZ2VkOiEwLERPTU5vZGVJbnNlcnRlZDohMCxET01Ob2RlSW5zZXJ0ZWRJbnRvRG9jdW1lbnQ6ITAsRE9NTm9kZVJlbW92ZWQ6ITAsRE9NTm9kZVJlbW92ZWRGcm9tRG9jdW1lbnQ6''@;'; + put 'put ''ITAsRE9NU3VidHJlZU1vZGlmaWVkOiEwfTtmdW5jdGlvbiBybCh0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIE5vZGU/dC5fX3NoYWR5X2dldFJvb3ROb2RlKCk6dH1mdW5jdGlvbiBpdCh0LGkpe3ZhciBuPVtdLHM9dDtmb3IodD1ybCh0KTtzOyluLnB1c2gocykscz1zLl9fc2hhZHlfYXNzaWdu''@;'; + put 'put ''ZWRTbG90P3MuX19zaGFkeV9hc3NpZ25lZFNsb3Q6cy5ub2RlVHlwZT09PU5vZGUuRE9DVU1FTlRfRlJBR01FTlRfTk9ERSYmcy5ob3N0JiYoaXx8cyE9PXQpP3MuaG9zdDpzLl9fc2hhZHlfcGFyZW50Tm9kZTtyZXR1cm4gbltuLmxlbmd0aC0xXT09PWRvY3VtZW50JiZuLnB1c2god2luZG93''@;'; + put 'put ''KSxufWZ1bmN0aW9uIEp0KHQsaSl7aWYoIWUwKXJldHVybiB0O3Q9aXQodCwhMCk7Zm9yKHZhciBzLG0sbj0wLGQ9dm9pZCAwLEw9dm9pZCAwO248aS5sZW5ndGg7bisrKWlmKChtPXJsKHM9aVtuXSkpIT09ZCYmKEw9dC5pbmRleE9mKG0pLGQ9bSksIWUwKG0pfHwtMTxMKXJldHVybiBzfWZ1''@;'; + put 'put ''bmN0aW9uIHRlKHQpe2Z1bmN0aW9uIGkobixzKXtyZXR1cm4obj1uZXcgdChuLHMpKS5fX2NvbXBvc2VkPXMmJiEhcy5jb21wb3NlZCxufXJldHVybiBpLl9fcHJvdG9fXz10LGkucHJvdG90eXBlPXQucHJvdG90eXBlLGl9dmFyIG5sPXtmb2N1czohMCxibHVyOiEwfTtmdW5jdGlvbiBjbCh0''@;'; + put 'put ''KXtyZXR1cm4gdC5fX3RhcmdldCE9PXQudGFyZ2V0fHx0Ll9fcmVsYXRlZFRhcmdldCE9PXQucmVsYXRlZFRhcmdldH1mdW5jdGlvbiBvbCh0LGksbil7aWYobj1pLl9faGFuZGxlcnMmJmkuX19oYW5kbGVyc1t0LnR5cGVdJiZpLl9faGFuZGxlcnNbdC50eXBlXVtuXSlmb3IodmFyIGQscz0w''@;'; + put 'put ''OyhkPW5bc10pJiYoIWNsKHQpfHx0LnRhcmdldCE9PXQucmVsYXRlZFRhcmdldCkmJihkLmNhbGwoaSx0KSwhdC5fX2ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZCk7cysrKTt9ZnVuY3Rpb24gc2wodCl7dmFyIGk9dC5jb21wb3NlZFBhdGgoKSxuPWkubWFwKGZ1bmN0aW9uKEcpe3JldHVy''@;'; + put 'put ''biBKdChHLGkpfSkscz10LmJ1YmJsZXM7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsImN1cnJlbnRUYXJnZXQiLHtjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gTH19KTt2YXIgZD1FdmVudC5DQVBUVVJJTkdfUEhBU0U7T2JqZWN0LmRlZmluZVBy''@;'; + put 'put ''b3BlcnR5KHQsImV2ZW50UGhhc2UiLHtjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZH19KTtmb3IodmFyIG09aS5sZW5ndGgtMTswPD1tO20tLSl7dmFyIEw9aVttXTtpZihkPUw9PT1uW21dP0V2ZW50LkFUX1RBUkdFVDpFdmVudC5DQVBUVVJJ''@;'; + put 'put ''TkdfUEhBU0Usb2wodCxMLCJjYXB0dXJlIiksdC5yYSlyZXR1cm59Zm9yKG09MDttPGkubGVuZ3RoO20rKyl7dmFyIEY9KEw9aVttXSk9PT1uW21dO2lmKChGfHxzKSYmKGQ9Rj9FdmVudC5BVF9UQVJHRVQ6RXZlbnQuQlVCQkxJTkdfUEhBU0Usb2wodCxMLCJidWJibGUiKSx0LnJhKSlyZXR1''@;'; + put 'put ''cm59ZD0wLEw9bnVsbH1mdW5jdGlvbiBobCh0LGksbixzLGQsbSl7Zm9yKHZhciBMPTA7TDx0Lmxlbmd0aDtMKyspe3ZhciBGPXRbTF07aWYoaT09PUYubm9kZSYmbj09PUYudHlwZSYmcz09PUYuY2FwdHVyZSYmZD09PUYub25jZSYmbT09PUYucGFzc2l2ZSlyZXR1cm4gTH1yZXR1cm4tMX1m''@;'; + put 'put ''dW5jdGlvbiBkbCh0KXtyZXR1cm4gZXQoKSwheTEuZmEmJnRoaXMgaW5zdGFuY2VvZiBOb2RlJiYhdTAoZG9jdW1lbnQsdGhpcyk/KHQuX190YXJnZXR8fGllKHQsdGhpcyksc2wodCkpOnRoaXMuX19zaGFkeV9uYXRpdmVfZGlzcGF0Y2hFdmVudCh0KX1mdW5jdGlvbiBlZSh0LGksbil7dmFy''@;'; + put 'put ''IHM9aWwobiksZD1zLmNhcHR1cmUsbT1zLm9uY2UsTD1zLnBhc3NpdmUsRj1zLkxhO2lmKHM9cy5KYSxpKXt2YXIgRz10eXBlb2YgaTtpZigoImZ1bmN0aW9uIj09PUd8fCJvYmplY3QiPT09RykmJigib2JqZWN0IiE9PUd8fGkuaGFuZGxlRXZlbnQmJiJmdW5jdGlvbiI9PXR5cGVvZiBpLmhh''@;'; + put 'put ''bmRsZUV2ZW50KSl7aWYoYWxbdF0pcmV0dXJuIHRoaXMuX19zaGFkeV9uYXRpdmVfYWRkRXZlbnRMaXN0ZW5lcih0LGkscyk7dmFyIFU9Rnx8dGhpcztpZihGPWlbajJdKXtpZigtMTxobChGLFUsdCxkLG0sTCkpcmV0dXJufWVsc2UgaVtqMl09W107Rj1mdW5jdGlvbihLKXtpZihtJiZ0aGlz''@;'; + put 'put ''Ll9fc2hhZHlfcmVtb3ZlRXZlbnRMaXN0ZW5lcih0LGksbiksSy5fX3RhcmdldHx8aWUoSyksVSE9PXRoaXMpe3ZhciBIMT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEssImN1cnJlbnRUYXJnZXQiKTtPYmplY3QuZGVmaW5lUHJvcGVydHkoSywiY3VycmVudFRhcmdldCIse2dl''@;'; + put 'put ''dDpmdW5jdGlvbigpe3JldHVybiBVfSxjb25maWd1cmFibGU6ITB9KTt2YXIgUTE9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihLLCJldmVudFBoYXNlIik7T2JqZWN0LmRlZmluZVByb3BlcnR5KEssImV2ZW50UGhhc2UiLHtjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCxn''@;'; + put 'put ''ZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZD9FdmVudC5DQVBUVVJJTkdfUEhBU0U6RXZlbnQuQlVCQkxJTkdfUEhBU0V9fSl9aWYoSy5fX3ByZXZpb3VzQ3VycmVudFRhcmdldD1LLmN1cnJlbnRUYXJnZXQsKCFlMChVKSYmInNsb3QiIT09VS5sb2NhbE5hbWV8fC0xIT1LLmNvbXBvc2VkUGF0aCgp''@;'; + put 'put ''LmluZGV4T2YoVSkpJiYoSy5jb21wb3NlZHx8LTE8Sy5jb21wb3NlZFBhdGgoKS5pbmRleE9mKFUpKSlpZihjbChLKSYmSy50YXJnZXQ9PT1LLnJlbGF0ZWRUYXJnZXQpSy5ldmVudFBoYXNlPT09RXZlbnQuQlVCQkxJTkdfUEhBU0UmJksuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7ZWxz''@;'; + put 'put ''ZSBpZihLLmV2ZW50UGhhc2U9PT1FdmVudC5DQVBUVVJJTkdfUEhBU0V8fEsuYnViYmxlc3x8Sy50YXJnZXQ9PT1VfHxVIGluc3RhbmNlb2YgV2luZG93KXt2YXIgajE9ImZ1bmN0aW9uIj09PUc/aS5jYWxsKFUsSyk6aS5oYW5kbGVFdmVudCYmaS5oYW5kbGVFdmVudChLKTtyZXR1cm4gVSE9''@;'; + put 'put ''PXRoaXMmJihIMT8oT2JqZWN0LmRlZmluZVByb3BlcnR5KEssImN1cnJlbnRUYXJnZXQiLEgxKSxIMT1udWxsKTpkZWxldGUgSy5jdXJyZW50VGFyZ2V0LFExPyhPYmplY3QuZGVmaW5lUHJvcGVydHkoSywiZXZlbnRQaGFzZSIsUTEpLFExPW51bGwpOmRlbGV0ZSBLLmV2ZW50UGhhc2UpLGox''@;'; + put 'put ''fX0saVtqMl0ucHVzaCh7bm9kZTpVLHR5cGU6dCxjYXB0dXJlOmQsb25jZTptLHBhc3NpdmU6TCxwYjpGfSksdGhpcy5fX2hhbmRsZXJzPXRoaXMuX19oYW5kbGVyc3x8e30sdGhpcy5fX2hhbmRsZXJzW3RdPXRoaXMuX19oYW5kbGVyc1t0XXx8e2NhcHR1cmU6W10sYnViYmxlOltdfSx0aGlz''@;'; + put 'put ''Ll9faGFuZGxlcnNbdF1bZD8iY2FwdHVyZSI6ImJ1YmJsZSJdLnB1c2goRiksbmxbdF18fHRoaXMuX19zaGFkeV9uYXRpdmVfYWRkRXZlbnRMaXN0ZW5lcih0LEYscyl9fX1mdW5jdGlvbiBsZSh0LGksbil7aWYoaSl7dmFyIHM9aWwobik7bj1zLmNhcHR1cmU7dmFyIGQ9cy5vbmNlLG09cy5w''@;'; + put 'put ''YXNzaXZlLEw9cy5MYTtpZihzPXMuSmEsYWxbdF0pcmV0dXJuIHRoaXMuX19zaGFkeV9uYXRpdmVfcmVtb3ZlRXZlbnRMaXN0ZW5lcih0LGkscyk7dmFyIEY9THx8dGhpcztMPXZvaWQgMDt2YXIgRz1udWxsO3RyeXtHPWlbajJdfWNhdGNoKFUpe31HJiYtMTwoZD1obChHLEYsdCxuLGQsbSkp''@;'; + put 'put ''JiYoTD1HLnNwbGljZShkLDEpWzBdLnBiLEcubGVuZ3RofHwoaVtqMl09dm9pZCAwKSksdGhpcy5fX3NoYWR5X25hdGl2ZV9yZW1vdmVFdmVudExpc3RlbmVyKHQsTHx8aSxzKSxMJiZ0aGlzLl9faGFuZGxlcnMmJnRoaXMuX19oYW5kbGVyc1t0XSYmLTE8KGk9KHQ9dGhpcy5fX2hhbmRsZXJz''@;'; + put 'put ''W3RdW24/ImNhcHR1cmUiOiJidWJibGUiXSkuaW5kZXhPZihMKSkmJnQuc3BsaWNlKGksMSl9fXZhciB1bD1uMCh7Z2V0IGNvbXBvc2VkKCl7cmV0dXJuIHZvaWQgMD09PXRoaXMuX19jb21wb3NlZCYmKFF0P3RoaXMuX19jb21wb3NlZD0iZm9jdXNpbiI9PT10aGlzLnR5cGV8fCJmb2N1c291''@;'; + put 'put ''dCI9PT10aGlzLnR5cGV8fFF0KHRoaXMpOiExIT09dGhpcy5pc1RydXN0ZWQmJih0aGlzLl9fY29tcG9zZWQ9Q2FbdGhpcy50eXBlXSkpLHRoaXMuX19jb21wb3NlZHx8ITF9LGNvbXBvc2VkUGF0aDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9fY29tcG9zZWRQYXRofHwodGhpcy5fX2NvbXBv''@;'; + put 'put ''c2VkUGF0aD1pdCh0aGlzLl9fdGFyZ2V0LHRoaXMuY29tcG9zZWQpKSx0aGlzLl9fY29tcG9zZWRQYXRofSxnZXQgdGFyZ2V0KCl7cmV0dXJuIEp0KHRoaXMuY3VycmVudFRhcmdldHx8dGhpcy5fX3ByZXZpb3VzQ3VycmVudFRhcmdldCx0aGlzLmNvbXBvc2VkUGF0aCgpKX0sZ2V0IHJlbGF0''@;'; + put 'put ''ZWRUYXJnZXQoKXtyZXR1cm4gdGhpcy5fX3JlbGF0ZWRUYXJnZXQ/KHRoaXMuX19yZWxhdGVkVGFyZ2V0Q29tcG9zZWRQYXRofHwodGhpcy5fX3JlbGF0ZWRUYXJnZXRDb21wb3NlZFBhdGg9aXQodGhpcy5fX3JlbGF0ZWRUYXJnZXQsITApKSxKdCh0aGlzLmN1cnJlbnRUYXJnZXR8fHRoaXMu''@;'; + put 'put ''X19wcmV2aW91c0N1cnJlbnRUYXJnZXQsdGhpcy5fX3JlbGF0ZWRUYXJnZXRDb21wb3NlZFBhdGgpKTpudWxsfSxzdG9wUHJvcGFnYXRpb246ZnVuY3Rpb24oKXtFdmVudC5wcm90b3R5cGUuc3RvcFByb3BhZ2F0aW9uLmNhbGwodGhpcyksdGhpcy5yYT0hMH0sc3RvcEltbWVkaWF0ZVByb3Bh''@;'; + put 'put ''Z2F0aW9uOmZ1bmN0aW9uKCl7RXZlbnQucHJvdG90eXBlLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbi5jYWxsKHRoaXMpLHRoaXMucmE9dGhpcy5fX2ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZD0hMH19KTtmdW5jdGlvbiBpZSh0LGkpe2lmKHQuX190YXJnZXQ9aT12b2lkIDA9PT1pP3Qu''@;'; + put 'put ''dGFyZ2V0OmksdC5fX3JlbGF0ZWRUYXJnZXQ9dC5yZWxhdGVkVGFyZ2V0LHkxLkgpe2lmKCEoaT1PYmplY3QuZ2V0UHJvdG90eXBlT2YodCkpLmhhc093blByb3BlcnR5KCJfX3NoYWR5X3BhdGNoZWRQcm90byIpKXt2YXIgbj1PYmplY3QuY3JlYXRlKGkpO24uX19zaGFkeV9zb3VyY2VQcm90''@;'; + put 'put ''bz1pLHMwKG4sdWwpLGkuX19zaGFkeV9wYXRjaGVkUHJvdG89bn10Ll9fcHJvdG9fXz1pLl9fc2hhZHlfcGF0Y2hlZFByb3RvfWVsc2UgczAodCx1bCl9dmFyIE1hPXRlKEV2ZW50KSxaYT10ZShDdXN0b21FdmVudCkseWE9dGUoTW91c2VFdmVudCkscGw9T2JqZWN0LmdldE93blByb3BlcnR5''@;'; + put 'put ''TmFtZXMoRWxlbWVudC5wcm90b3R5cGUpLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4ib24iPT09dC5zdWJzdHJpbmcoMCwyKX0pLGZsPU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKEhUTUxFbGVtZW50LnByb3RvdHlwZSkuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiJvbiI9PT10LnN1''@;'; + put 'put ''YnN0cmluZygwLDIpfSk7ZnVuY3Rpb24gZ2wodCl7cmV0dXJue3NldDpmdW5jdGlvbihpKXt2YXIgbj1xMSh0aGlzKSxzPXQuc3Vic3RyaW5nKDIpO24uVHx8KG4uVD17fSksbi5UW3RdJiZ0aGlzLnJlbW92ZUV2ZW50TGlzdGVuZXIocyxuLlRbdF0pLHRoaXMuX19zaGFkeV9hZGRFdmVudExp''@;'; + put 'put ''c3RlbmVyKHMsaSksbi5UW3RdPWl9LGdldDpmdW5jdGlvbigpe3ZhciBpPWcxKHRoaXMpO3JldHVybiBpJiZpLlQmJmkuVFt0XX0sY29uZmlndXJhYmxlOiEwfX1mdW5jdGlvbiBSMih0LGkpe3JldHVybntpbmRleDp0LGdhOltdLG5hOml9fWZ1bmN0aW9uIFNhKHQsaSxuLHMpe3ZhciBkPTAs''@;'; + put 'put ''bT0wLEw9MCxGPTAsRz1NYXRoLm1pbihpLWQscy1tKTtpZigwPT1kJiYwPT1tKXQ6e2ZvcihMPTA7TDxHO0wrKylpZih0W0xdIT09bltMXSlicmVhayB0O0w9R31pZihpPT10Lmxlbmd0aCYmcz09bi5sZW5ndGgpe0Y9dC5sZW5ndGg7Zm9yKHZhciBVPW4ubGVuZ3RoLEs9MDtLPEctTCYmYmEo''@;'; + put 'put ''dFstLUZdLG5bLS1VXSk7KUsrKztGPUt9aWYobSs9TCxzLT1GLChpLT1GKS0oZCs9TCk9PTAmJnMtbT09MClyZXR1cm5bXTtpZihkPT1pKXtmb3IoaT1SMihkLDApO208czspaS5nYS5wdXNoKG5bbSsrXSk7cmV0dXJuW2ldfWlmKG09PXMpcmV0dXJuW1IyKGQsaS1kKV07Zm9yKHM9cy0oTD1t''@;'; + put 'put ''KSsxLEY9aS0oRz1kKSsxLGk9QXJyYXkocyksVT0wO1U8cztVKyspaVtVXT1BcnJheShGKSxpW1VdWzBdPVU7Zm9yKFU9MDtVPEY7VSsrKWlbMF1bVV09VTtmb3IoVT0xO1U8cztVKyspZm9yKEs9MTtLPEY7SysrKWlmKHRbRytLLTFdPT09bltMK1UtMV0paVtVXVtLXT1pW1UtMV1bSy0xXTtl''@;'; + put 'put ''bHNle3ZhciBIMT1pW1UtMV1bS10rMSxRMT1pW1VdW0stMV0rMTtpW1VdW0tdPUgxPFExP0gxOlExfWZvcihzPWlbRz1pLmxlbmd0aC0xXVtMPWlbMF0ubGVuZ3RoLTFdLHQ9W107MDxHfHwwPEw7KTA9PUc/KHQucHVzaCgyKSxMLS0pOjA9PUw/KHQucHVzaCgzKSxHLS0pOihGPWlbRy0xXVtM''@;'; + put 'put ''LTFdLChIMT0oVT1pW0ctMV1bTF0pPChLPWlbR11bTC0xXSk/VTxGP1U6RjpLPEY/SzpGKT09Rj8oRj09cz90LnB1c2goMCk6KHQucHVzaCgxKSxzPUYpLEctLSxMLS0pOkgxPT1VPyh0LnB1c2goMyksRy0tLHM9VSk6KHQucHVzaCgyKSxMLS0scz1LKSk7Zm9yKHQucmV2ZXJzZSgpLGk9dm9p''@;'; + put 'put ''ZCAwLEc9W10sTD0wO0w8dC5sZW5ndGg7TCsrKXN3aXRjaCh0W0xdKXtjYXNlIDA6aSYmKEcucHVzaChpKSxpPXZvaWQgMCksZCsrLG0rKzticmVhaztjYXNlIDE6aXx8KGk9UjIoZCwwKSksaS5uYSsrLGQrKyxpLmdhLnB1c2goblttXSksbSsrO2JyZWFrO2Nhc2UgMjppfHwoaT1SMihkLDAp''@;'; + put 'put ''KSxpLm5hKyssZCsrO2JyZWFrO2Nhc2UgMzppfHwoaT1SMihkLDApKSxpLmdhLnB1c2goblttXSksbSsrfXJldHVybiBpJiZHLnB1c2goaSksR31mdW5jdGlvbiBiYSh0LGkpe3JldHVybiB0PT09aX12YXIgQWw9bjAoe2Rpc3BhdGNoRXZlbnQ6ZGwsYWRkRXZlbnRMaXN0ZW5lcjplZSxyZW1v''@;'; + put 'put ''dmVFdmVudExpc3RlbmVyOmxlfSksYWU9bnVsbDtmdW5jdGlvbiBuMigpe3JldHVybiBhZXx8KGFlPXdpbmRvdy5TaGFkeUNTUyYmd2luZG93LlNoYWR5Q1NTLlNjb3BpbmdTaGltKSxhZXx8bnVsbH1mdW5jdGlvbiB2bCh0LGksbil7dmFyIHM9bjIoKTtyZXR1cm4hKCFzfHwiY2xhc3MiIT09''@;'; + put 'put ''aXx8KHMuc2V0RWxlbWVudENsYXNzKHQsbiksMCkpfWZ1bmN0aW9uIEhsKHQsaSl7dmFyIG49bjIoKTtuJiZuLnVuc2NvcGVOb2RlKHQsaSl9ZnVuY3Rpb24gQ2wodCxpKXt2YXIgbj1uMigpO2lmKCFuKXJldHVybiEwO2lmKHQubm9kZVR5cGU9PT1Ob2RlLkRPQ1VNRU5UX0ZSQUdNRU5UX05P''@;'; + put 'put ''REUpe2ZvcihuPSEwLHQ9dC5fX3NoYWR5X2ZpcnN0Q2hpbGQ7dDt0PXQuX19zaGFkeV9uZXh0U2libGluZyluPW4mJkNsKHQsaSk7cmV0dXJuIG59cmV0dXJuIHQubm9kZVR5cGUhPT1Ob2RlLkVMRU1FTlRfTk9ERXx8bi5jdXJyZW50U2NvcGVGb3JOb2RlKHQpPT09aX1mdW5jdGlvbiBhdCh0''@;'; + put 'put ''KXtpZih0Lm5vZGVUeXBlIT09Tm9kZS5FTEVNRU5UX05PREUpcmV0dXJuIiI7dmFyIGk9bjIoKTtyZXR1cm4gaT9pLmN1cnJlbnRTY29wZUZvck5vZGUodCk6IiJ9ZnVuY3Rpb24gcmUodCxpKXtpZih0KWZvcih0Lm5vZGVUeXBlPT09Tm9kZS5FTEVNRU5UX05PREUmJmkodCksdD10Ll9fc2hh''@;'; + put 'put ''ZHlfZmlyc3RDaGlsZDt0O3Q9dC5fX3NoYWR5X25leHRTaWJsaW5nKXQubm9kZVR5cGU9PT1Ob2RlLkVMRU1FTlRfTk9ERSYmcmUodCxpKX12YXIgbmU9d2luZG93LmRvY3VtZW50LGNlPXkxLmZhLFZsPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoTm9kZS5wcm90b3R5cGUsImlz''@;'; + put 'put ''Q29ubmVjdGVkIiksbWw9VmwmJlZsLmdldDtmdW5jdGlvbiBvZSh0KXtmb3IodmFyIGk7aT10Ll9fc2hhZHlfZmlyc3RDaGlsZDspdC5fX3NoYWR5X3JlbW92ZUNoaWxkKGkpfWZ1bmN0aW9uIE1sKHQpe3ZhciBpPWcxKHQpO2lmKGkmJnZvaWQgMCE9PWkucWEpZm9yKGk9dC5fX3NoYWR5X2Zp''@;'; + put 'put ''cnN0Q2hpbGQ7aTtpPWkuX19zaGFkeV9uZXh0U2libGluZylNbChpKTsodD1nMSh0KSkmJih0LnFhPXZvaWQgMCl9ZnVuY3Rpb24gWmwodCl7dmFyIGk9dDtpZih0JiYic2xvdCI9PT10LmxvY2FsTmFtZSl7dmFyIG49ZzEodCk7KG49biYmbi5hYSkmJihpPW4ubGVuZ3RoP25bMF06WmwodC5f''@;'; + put 'put ''X3NoYWR5X25leHRTaWJsaW5nKSl9cmV0dXJuIGl9ZnVuY3Rpb24geWwodCxpLG4pe2lmKHQ9KHQ9ZzEodCkpJiZ0LmVhKXtpZihpKWlmKGkubm9kZVR5cGU9PT1Ob2RlLkRPQ1VNRU5UX0ZSQUdNRU5UX05PREUpZm9yKHZhciBzPTAsZD1pLmNoaWxkTm9kZXMubGVuZ3RoO3M8ZDtzKyspdC5h''@;'; + put 'put ''ZGRlZE5vZGVzLnB1c2goaS5jaGlsZE5vZGVzW3NdKTtlbHNlIHQuYWRkZWROb2Rlcy5wdXNoKGkpO24mJnQucmVtb3ZlZE5vZGVzLnB1c2gobiksZnVuY3Rpb24gc2EodCl7dC5nfHwodC5nPSEwLEQwKGZ1bmN0aW9uKCl7dC5mbHVzaCgpfSkpfSh0KX19dmFyIHJ0PW4wKHtnZXQgcGFyZW50''@;'; + put 'put ''Tm9kZSgpe3ZhciB0PWcxKHRoaXMpO3JldHVybiB2b2lkIDAhPT0odD10JiZ0LnBhcmVudE5vZGUpP3Q6dGhpcy5fX3NoYWR5X25hdGl2ZV9wYXJlbnROb2RlfSxnZXQgZmlyc3RDaGlsZCgpe3ZhciB0PWcxKHRoaXMpO3JldHVybiB2b2lkIDAhPT0odD10JiZ0LmZpcnN0Q2hpbGQpP3Q6dGhp''@;'; + put 'put ''cy5fX3NoYWR5X25hdGl2ZV9maXJzdENoaWxkfSxnZXQgbGFzdENoaWxkKCl7dmFyIHQ9ZzEodGhpcyk7cmV0dXJuIHZvaWQgMCE9PSh0PXQmJnQubGFzdENoaWxkKT90OnRoaXMuX19zaGFkeV9uYXRpdmVfbGFzdENoaWxkfSxnZXQgbmV4dFNpYmxpbmcoKXt2YXIgdD1nMSh0aGlzKTtyZXR1''@;'; + put 'put ''cm4gdm9pZCAwIT09KHQ9dCYmdC5uZXh0U2libGluZyk/dDp0aGlzLl9fc2hhZHlfbmF0aXZlX25leHRTaWJsaW5nfSxnZXQgcHJldmlvdXNTaWJsaW5nKCl7dmFyIHQ9ZzEodGhpcyk7cmV0dXJuIHZvaWQgMCE9PSh0PXQmJnQucHJldmlvdXNTaWJsaW5nKT90OnRoaXMuX19zaGFkeV9uYXRp''@;'; + put 'put ''dmVfcHJldmlvdXNTaWJsaW5nfSxnZXQgY2hpbGROb2Rlcygpe2lmKEsxKHRoaXMpKXt2YXIgdD1nMSh0aGlzKTtpZighdC5jaGlsZE5vZGVzKXt0LmNoaWxkTm9kZXM9W107Zm9yKHZhciBpPXRoaXMuX19zaGFkeV9maXJzdENoaWxkO2k7aT1pLl9fc2hhZHlfbmV4dFNpYmxpbmcpdC5jaGls''@;'; + put 'put ''ZE5vZGVzLnB1c2goaSl9dmFyIG49dC5jaGlsZE5vZGVzfWVsc2Ugbj10aGlzLl9fc2hhZHlfbmF0aXZlX2NoaWxkTm9kZXM7cmV0dXJuIG4uaXRlbT1mdW5jdGlvbihzKXtyZXR1cm4gbltzXX0sbn0sZ2V0IHBhcmVudEVsZW1lbnQoKXt2YXIgdD1nMSh0aGlzKTtyZXR1cm4odD10JiZ0LnBh''@;'; + put 'put ''cmVudE5vZGUpJiZ0Lm5vZGVUeXBlIT09Tm9kZS5FTEVNRU5UX05PREUmJih0PW51bGwpLHZvaWQgMCE9PXQ/dDp0aGlzLl9fc2hhZHlfbmF0aXZlX3BhcmVudEVsZW1lbnR9LGdldCBpc0Nvbm5lY3RlZCgpe2lmKG1sJiZtbC5jYWxsKHRoaXMpKXJldHVybiEwO2lmKHRoaXMubm9kZVR5cGU9''@;'; + put 'put ''PU5vZGUuRE9DVU1FTlRfRlJBR01FTlRfTk9ERSlyZXR1cm4hMTt2YXIgdD10aGlzLm93bmVyRG9jdW1lbnQ7aWYobnVsbD09PXR8fHUwKHQsdGhpcykpcmV0dXJuITA7Zm9yKHQ9dGhpczt0JiYhKHQgaW5zdGFuY2VvZiBEb2N1bWVudCk7KXQ9dC5fX3NoYWR5X3BhcmVudE5vZGV8fChlMCh0''@;'; + put 'put ''KT90Lmhvc3Q6dm9pZCAwKTtyZXR1cm4hISh0JiZ0IGluc3RhbmNlb2YgRG9jdW1lbnQpfSxnZXQgdGV4dENvbnRlbnQoKXtpZihLMSh0aGlzKSl7Zm9yKHZhciB0PVtdLGk9dGhpcy5fX3NoYWR5X2ZpcnN0Q2hpbGQ7aTtpPWkuX19zaGFkeV9uZXh0U2libGluZylpLm5vZGVUeXBlIT09Tm9k''@;'; + put 'put ''ZS5DT01NRU5UX05PREUmJnQucHVzaChpLl9fc2hhZHlfdGV4dENvbnRlbnQpO3JldHVybiB0LmpvaW4oIiIpfXJldHVybiB0aGlzLl9fc2hhZHlfbmF0aXZlX3RleHRDb250ZW50fSxzZXQgdGV4dENvbnRlbnQodCl7c3dpdGNoKG51bGw9PXQmJih0PSIiKSx0aGlzLm5vZGVUeXBlKXtjYXNl''@;'; + put 'put ''IE5vZGUuRUxFTUVOVF9OT0RFOmNhc2UgTm9kZS5ET0NVTUVOVF9GUkFHTUVOVF9OT0RFOmlmKCFLMSh0aGlzKSYmeTEuSCl7dmFyIGk9dGhpcy5fX3NoYWR5X2ZpcnN0Q2hpbGQ7KGkhPXRoaXMuX19zaGFkeV9sYXN0Q2hpbGR8fGkmJmkubm9kZVR5cGUhPU5vZGUuVEVYVF9OT0RFKSYmb2Uo''@;'; + put 'put ''dGhpcyksdGhpcy5fX3NoYWR5X25hdGl2ZV90ZXh0Q29udGVudD10fWVsc2Ugb2UodGhpcyksKDA8dC5sZW5ndGh8fHRoaXMubm9kZVR5cGU9PT1Ob2RlLkVMRU1FTlRfTk9ERSkmJnRoaXMuX19zaGFkeV9pbnNlcnRCZWZvcmUoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUodCkpO2JyZWFrO2Rl''@;'; + put 'put ''ZmF1bHQ6dGhpcy5ub2RlVmFsdWU9dH19LGluc2VydEJlZm9yZTpmdW5jdGlvbih0LGkpe2lmKHRoaXMub3duZXJEb2N1bWVudCE9PW5lJiZ0Lm93bmVyRG9jdW1lbnQhPT1uZSlyZXR1cm4gdGhpcy5fX3NoYWR5X25hdGl2ZV9pbnNlcnRCZWZvcmUodCxpKSx0O2lmKHQ9PT10aGlzKXRocm93''@;'; + put 'put ''IEVycm9yKCJGYWlsZWQgdG8gZXhlY3V0ZSAnYXBwZW5kQ2hpbGQnIG9uICdOb2RlJzogVGhlIG5ldyBjaGlsZCBlbGVtZW50IGNvbnRhaW5zIHRoZSBwYXJlbnQuIik7aWYoaSl7dmFyIG49ZzEoaSk7aWYodm9pZCAwIT09KG49biYmbi5wYXJlbnROb2RlKSYmbiE9PXRoaXN8fHZvaWQgMD09''@;'; + put 'put ''PW4mJmkuX19zaGFkeV9uYXRpdmVfcGFyZW50Tm9kZSE9PXRoaXMpdGhyb3cgRXJyb3IoIkZhaWxlZCB0byBleGVjdXRlICdpbnNlcnRCZWZvcmUnIG9uICdOb2RlJzogVGhlIG5vZGUgYmVmb3JlIHdoaWNoIHRoZSBuZXcgbm9kZSBpcyB0byBiZSBpbnNlcnRlZCBpcyBub3QgYSBjaGlsZCBv''@;'; + put 'put ''ZiB0aGlzIG5vZGUuIil9aWYoaT09PXQpcmV0dXJuIHQ7eWwodGhpcyx0KTt2YXIgcz1bXSxkPShuPW0yKHRoaXMpKT9uLmhvc3QubG9jYWxOYW1lOmF0KHRoaXMpLG09dC5fX3NoYWR5X3BhcmVudE5vZGU7aWYobSl7dmFyIEw9YXQodCksRj0hIW58fCFtMih0KXx8Y2UmJnZvaWQgMCE9PXRo''@;'; + put 'put ''aXMuX19ub0luc2VydGlvblBvaW50O20uX19zaGFkeV9yZW1vdmVDaGlsZCh0LEYpfW09ITA7dmFyIEc9KCFjZXx8dm9pZCAwPT09dC5fX25vSW5zZXJ0aW9uUG9pbnQmJnZvaWQgMD09PXRoaXMuX19ub0luc2VydGlvblBvaW50KSYmIUNsKHQsZCksVT1uJiYhdC5fX25vSW5zZXJ0aW9uUG9p''@;'; + put 'put ''bnQmJighY2V8fHQubm9kZVR5cGU9PT1Ob2RlLkRPQ1VNRU5UX0ZSQUdNRU5UX05PREUpO3JldHVybihVfHxHKSYmKEcmJihMPUx8fGF0KHQpKSxyZSh0LGZ1bmN0aW9uKEspe2lmKFUmJiJzbG90Ij09PUsubG9jYWxOYW1lJiZzLnB1c2goSyksRyl7dmFyIEgxPUw7bjIoKSYmKEgxJiZIbChL''@;'; + put 'put ''LEgxKSwoSDE9bjIoKSkmJkgxLnNjb3BlTm9kZShLLGQpKX19KSkscy5sZW5ndGgmJih6bChuKSxuLmkucHVzaC5hcHBseShuLmksYyhzKSkscTAobikpLEsxKHRoaXMpJiYoZnVuY3Rpb24ga2EodCxpLG4pe290KGksMik7dmFyIHM9cTEoaSk7aWYodm9pZCAwIT09cy5maXJzdENoaWxkJiYo''@;'; + put 'put ''cy5jaGlsZE5vZGVzPW51bGwpLHQubm9kZVR5cGU9PT1Ob2RlLkRPQ1VNRU5UX0ZSQUdNRU5UX05PREUpZm9yKHQ9dC5fX3NoYWR5X25hdGl2ZV9maXJzdENoaWxkO3Q7dD10Ll9fc2hhZHlfbmF0aXZlX25leHRTaWJsaW5nKUlsKHQsaSxzLG4pO2Vsc2UgSWwodCxpLHMsbil9KHQsdGhpcyxp''@;'; + put 'put ''KSwoRj1nMSh0aGlzKSkucm9vdD8obT0hMSxKMCh0aGlzKSYmcTAoRi5yb290KSk6biYmInNsb3QiPT09dGhpcy5sb2NhbE5hbWUmJihtPSExLHEwKG4pKSksbT8obj1lMCh0aGlzKT90aGlzLmhvc3Q6dGhpcyxpPyhpPVpsKGkpLG4uX19zaGFkeV9uYXRpdmVfaW5zZXJ0QmVmb3JlKHQsaSkp''@;'; + put 'put ''Om4uX19zaGFkeV9uYXRpdmVfYXBwZW5kQ2hpbGQodCkpOnQub3duZXJEb2N1bWVudCE9PXRoaXMub3duZXJEb2N1bWVudCYmdGhpcy5vd25lckRvY3VtZW50LmFkb3B0Tm9kZSh0KSx0fSxhcHBlbmRDaGlsZDpmdW5jdGlvbih0KXtpZih0aGlzIT10fHwhZTAodCkpcmV0dXJuIHRoaXMuX19z''@;'; + put 'put ''aGFkeV9pbnNlcnRCZWZvcmUodCl9LHJlbW92ZUNoaWxkOmZ1bmN0aW9uKHQsaSl7aWYoaT12b2lkIDAhPT1pJiZpLHRoaXMub3duZXJEb2N1bWVudCE9PW5lKXJldHVybiB0aGlzLl9fc2hhZHlfbmF0aXZlX3JlbW92ZUNoaWxkKHQpO2lmKHQuX19zaGFkeV9wYXJlbnROb2RlIT09dGhpcyl0''@;'; + put 'put ''aHJvdyBFcnJvcigiVGhlIG5vZGUgdG8gYmUgcmVtb3ZlZCBpcyBub3QgYSBjaGlsZCBvZiB0aGlzIG5vZGU6ICIrdCk7eWwodGhpcyxudWxsLHQpO3ZhciBuPW0yKHQpLHM9biYmZnVuY3Rpb24gQmEodCxpKXtpZih0Lmcpe3B0KHQpO3ZhciBzLG49dC5oO2ZvcihzIGluIG4pZm9yKHZhciBk''@;'; + put 'put ''PW5bc10sbT0wO208ZC5sZW5ndGg7bSsrKXt2YXIgTD1kW21dO2lmKHgwKGksTCkpe2Quc3BsaWNlKG0sMSk7dmFyIEY9dC5nLmluZGV4T2YoTCk7aWYoMDw9RiYmKHQuZy5zcGxpY2UoRiwxKSwoRj1nMShMLl9fc2hhZHlfcGFyZW50Tm9kZSkpJiZGLmlhJiZGLmlhLS0pLG0tLSxGPShMPWcx''@;'; + put 'put ''KEwpKS5hYSlmb3IodmFyIEc9MDtHPEYubGVuZ3RoO0crKyl7dmFyIFU9RltHXSxLPVUuX19zaGFkeV9uYXRpdmVfcGFyZW50Tm9kZTtLJiZLLl9fc2hhZHlfbmF0aXZlX3JlbW92ZUNoaWxkKFUpfUwuYWE9W10sTC5hc3NpZ25lZE5vZGVzPVtdLEY9ITB9fXJldHVybiBGfX0obix0KSxkPWcx''@;'; + put 'put ''KHRoaXMpO2lmKEsxKHRoaXMpJiYoZnVuY3Rpb24gT2EodCxpKXt2YXIgbj1xMSh0KTt0PT09KGk9cTEoaSkpLmZpcnN0Q2hpbGQmJihpLmZpcnN0Q2hpbGQ9bi5uZXh0U2libGluZyksdD09PWkubGFzdENoaWxkJiYoaS5sYXN0Q2hpbGQ9bi5wcmV2aW91c1NpYmxpbmcpO3ZhciBzPW4ubmV4''@;'; + put 'put ''dFNpYmxpbmc7KHQ9bi5wcmV2aW91c1NpYmxpbmcpJiYocTEodCkubmV4dFNpYmxpbmc9cykscyYmKHExKHMpLnByZXZpb3VzU2libGluZz10KSxuLnBhcmVudE5vZGU9bi5wcmV2aW91c1NpYmxpbmc9bi5uZXh0U2libGluZz12b2lkIDAsdm9pZCAwIT09aS5jaGlsZE5vZGVzJiYoaS5jaGls''@;'; + put 'put ''ZE5vZGVzPW51bGwpfSh0LHRoaXMpLEowKHRoaXMpKSl7cTAoZC5yb290KTt2YXIgbT0hMH1pZihuMigpJiYhaSYmbiYmdC5ub2RlVHlwZSE9PU5vZGUuVEVYVF9OT0RFKXt2YXIgTD1hdCh0KTtyZSh0LGZ1bmN0aW9uKEYpe0hsKEYsTCl9KX1yZXR1cm4gTWwodCksbiYmKChpPSJzbG90Ij09''@;'; + put 'put ''PXRoaXMubG9jYWxOYW1lKSYmKG09ITApLChzfHxpKSYmcTAobikpLG18fChtPWUwKHRoaXMpP3RoaXMuaG9zdDp0aGlzLCghZC5yb290JiYic2xvdCIhPT10LmxvY2FsTmFtZXx8bT09PXQuX19zaGFkeV9uYXRpdmVfcGFyZW50Tm9kZSkmJm0uX19zaGFkeV9uYXRpdmVfcmVtb3ZlQ2hpbGQo''@;'; + put 'put ''dCkpLHR9LHJlcGxhY2VDaGlsZDpmdW5jdGlvbih0LGkpe3JldHVybiB0aGlzLl9fc2hhZHlfaW5zZXJ0QmVmb3JlKHQsaSksdGhpcy5fX3NoYWR5X3JlbW92ZUNoaWxkKGkpLHR9LGNsb25lTm9kZTpmdW5jdGlvbih0KXtpZigidGVtcGxhdGUiPT10aGlzLmxvY2FsTmFtZSlyZXR1cm4gdGhp''@;'; + put 'put ''cy5fX3NoYWR5X25hdGl2ZV9jbG9uZU5vZGUodCk7dmFyIGk9dGhpcy5fX3NoYWR5X25hdGl2ZV9jbG9uZU5vZGUoITEpO2lmKHQmJmkubm9kZVR5cGUhPT1Ob2RlLkFUVFJJQlVURV9OT0RFKXt0PXRoaXMuX19zaGFkeV9maXJzdENoaWxkO2Zvcih2YXIgbjt0O3Q9dC5fX3NoYWR5X25leHRT''@;'; + put 'put ''aWJsaW5nKW49dC5fX3NoYWR5X2Nsb25lTm9kZSghMCksaS5fX3NoYWR5X2FwcGVuZENoaWxkKG4pfXJldHVybiBpfSxnZXRSb290Tm9kZTpmdW5jdGlvbih0KXtpZih0aGlzJiZ0aGlzLm5vZGVUeXBlKXt2YXIgaT1xMSh0aGlzKSxuPWkucWE7cmV0dXJuIHZvaWQgMD09PW4mJihlMCh0aGlz''@;'; + put 'put ''KT9pLnFhPW49dGhpczoobj0obj10aGlzLl9fc2hhZHlfcGFyZW50Tm9kZSk/bi5fX3NoYWR5X2dldFJvb3ROb2RlKHQpOnRoaXMsZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50Ll9fc2hhZHlfbmF0aXZlX2NvbnRhaW5zKHRoaXMpJiYoaS5xYT1uKSkpLG59fSxjb250YWluczpmdW5jdGlvbih0''@;'; + put 'put ''KXtyZXR1cm4geDAodGhpcyx0KX19KSx6Mj1uMCh7Z2V0IGFzc2lnbmVkU2xvdCgpe3ZhciB0PXRoaXMuX19zaGFkeV9wYXJlbnROb2RlO3JldHVybih0PXQmJnQuX19zaGFkeV9zaGFkb3dSb290KSYmdXQodCksKHQ9ZzEodGhpcykpJiZ0LmFzc2lnbmVkU2xvdHx8bnVsbH19KTtmdW5jdGlv''@;'; + put 'put ''biBzZSh0LGksbil7dmFyIHM9W107cmV0dXJuIExsKHQsaSxuLHMpLHN9ZnVuY3Rpb24gTGwodCxpLG4scyl7Zm9yKHQ9dC5fX3NoYWR5X2ZpcnN0Q2hpbGQ7dDt0PXQuX19zaGFkeV9uZXh0U2libGluZyl7dmFyIGQ7aWYoZD10Lm5vZGVUeXBlPT09Tm9kZS5FTEVNRU5UX05PREUpe3ZhciBt''@;'; + put 'put ''PWksTD1uLEY9cyxHPW0oZD10KTtHJiZGLnB1c2goZCksTCYmTChHKT9kPUc6KExsKGQsbSxMLEYpLGQ9dm9pZCAwKX1pZihkKWJyZWFrfX12YXIgbnQ9e2dldCBmaXJzdEVsZW1lbnRDaGlsZCgpe3ZhciB0PWcxKHRoaXMpO2lmKHQmJnZvaWQgMCE9PXQuZmlyc3RDaGlsZCl7Zm9yKHQ9dGhp''@;'; + put 'put ''cy5fX3NoYWR5X2ZpcnN0Q2hpbGQ7dCYmdC5ub2RlVHlwZSE9PU5vZGUuRUxFTUVOVF9OT0RFOyl0PXQuX19zaGFkeV9uZXh0U2libGluZztyZXR1cm4gdH1yZXR1cm4gdGhpcy5fX3NoYWR5X25hdGl2ZV9maXJzdEVsZW1lbnRDaGlsZH0sZ2V0IGxhc3RFbGVtZW50Q2hpbGQoKXt2YXIgdD1n''@;'; + put 'put ''MSh0aGlzKTtpZih0JiZ2b2lkIDAhPT10Lmxhc3RDaGlsZCl7Zm9yKHQ9dGhpcy5fX3NoYWR5X2xhc3RDaGlsZDt0JiZ0Lm5vZGVUeXBlIT09Tm9kZS5FTEVNRU5UX05PREU7KXQ9dC5fX3NoYWR5X3ByZXZpb3VzU2libGluZztyZXR1cm4gdH1yZXR1cm4gdGhpcy5fX3NoYWR5X25hdGl2ZV9s''@;'; + put 'put ''YXN0RWxlbWVudENoaWxkfSxnZXQgY2hpbGRyZW4oKXtyZXR1cm4gSzEodGhpcyk/QjAoQXJyYXkucHJvdG90eXBlLmZpbHRlci5jYWxsKHYyKHRoaXMpLGZ1bmN0aW9uKHQpe3JldHVybiB0Lm5vZGVUeXBlPT09Tm9kZS5FTEVNRU5UX05PREV9KSk6dGhpcy5fX3NoYWR5X25hdGl2ZV9jaGls''@;'; + put 'put ''ZHJlbn0sZ2V0IGNoaWxkRWxlbWVudENvdW50KCl7dmFyIHQ9dGhpcy5fX3NoYWR5X2NoaWxkcmVuO3JldHVybiB0P3QubGVuZ3RoOjB9fSxDMj1uMCgobnQuYXBwZW5kPWZ1bmN0aW9uKHQpe2Zvcih2YXIgaT1bXSxuPTA7bjxhcmd1bWVudHMubGVuZ3RoOysrbilpW25dPWFyZ3VtZW50c1tu''@;'; + put 'put ''XTt0aGlzLl9fc2hhZHlfaW5zZXJ0QmVmb3JlKEgyLmFwcGx5KG51bGwsYyhpKSksbnVsbCl9LG50LnByZXBlbmQ9ZnVuY3Rpb24odCl7Zm9yKHZhciBpPVtdLG49MDtuPGFyZ3VtZW50cy5sZW5ndGg7KytuKWlbbl09YXJndW1lbnRzW25dO3RoaXMuX19zaGFkeV9pbnNlcnRCZWZvcmUoSDIu''@;'; + put 'put ''YXBwbHkobnVsbCxjKGkpKSx0aGlzLl9fc2hhZHlfZmlyc3RDaGlsZCl9LG50LnJlcGxhY2VDaGlsZHJlbj1mdW5jdGlvbih0KXtmb3IodmFyIGk9W10sbj0wO248YXJndW1lbnRzLmxlbmd0aDsrK24paVtuXT1hcmd1bWVudHNbbl07Zm9yKDtudWxsIT09KG49dGhpcy5fX3NoYWR5X2ZpcnN0''@;'; + put 'put ''Q2hpbGQpOyl0aGlzLl9fc2hhZHlfcmVtb3ZlQ2hpbGQobik7dGhpcy5fX3NoYWR5X2luc2VydEJlZm9yZShIMi5hcHBseShudWxsLGMoaSkpLG51bGwpfSxudCkpLF9hPW4wKHtxdWVyeVNlbGVjdG9yOmZ1bmN0aW9uKHQpe3JldHVybiBzZSh0aGlzLGZ1bmN0aW9uKGkpe3JldHVybiBPMi5j''@;'; + put 'put ''YWxsKGksdCl9LGZ1bmN0aW9uKGkpe3JldHVybiEhaX0pWzBdfHxudWxsfSxxdWVyeVNlbGVjdG9yQWxsOmZ1bmN0aW9uKHQsaSl7aWYoaSl7aT1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbCh0aGlzLl9fc2hhZHlfbmF0aXZlX3F1ZXJ5U2VsZWN0b3JBbGwodCkpO3ZhciBuPXRoaXMuX19z''@;'; + put 'put ''aGFkeV9nZXRSb290Tm9kZSgpO3JldHVybiBCMChpLmZpbHRlcihmdW5jdGlvbihzKXtyZXR1cm4gcy5fX3NoYWR5X2dldFJvb3ROb2RlKCk9PW59KSl9cmV0dXJuIEIwKHNlKHRoaXMsZnVuY3Rpb24ocyl7cmV0dXJuIE8yLmNhbGwocyx0KX0pKX19KSxTbD15MS5mYSYmIXkxLko/QnQoe30s''@;'; + put 'put ''QzIpOkMyO0J0KEMyLF9hKTt2YXIgYmw9bjAoe2FmdGVyOmZ1bmN0aW9uKHQpe2Zvcih2YXIgaT1bXSxuPTA7bjxhcmd1bWVudHMubGVuZ3RoOysrbilpW25dPWFyZ3VtZW50c1tuXTtpZihudWxsIT09KG49dGhpcy5fX3NoYWR5X3BhcmVudE5vZGUpKXt2YXIgcz10aGlzLl9fc2hhZHlfbmV4''@;'; + put 'put ''dFNpYmxpbmc7bi5fX3NoYWR5X2luc2VydEJlZm9yZShIMi5hcHBseShudWxsLGMoaSkpLHMpfX0sYmVmb3JlOmZ1bmN0aW9uKHQpe2Zvcih2YXIgaT1bXSxuPTA7bjxhcmd1bWVudHMubGVuZ3RoOysrbilpW25dPWFyZ3VtZW50c1tuXTtudWxsIT09KG49dGhpcy5fX3NoYWR5X3BhcmVudE5v''@;'; + put 'put ''ZGUpJiZuLl9fc2hhZHlfaW5zZXJ0QmVmb3JlKEgyLmFwcGx5KG51bGwsYyhpKSksdGhpcyl9LHJlbW92ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX19zaGFkeV9wYXJlbnROb2RlO251bGwhPT10JiZ0Ll9fc2hhZHlfcmVtb3ZlQ2hpbGQodGhpcyl9LHJlcGxhY2VXaXRoOmZ1bmN0aW9uKHQp''@;'; + put 'put ''e2Zvcih2YXIgaT1bXSxuPTA7bjxhcmd1bWVudHMubGVuZ3RoOysrbilpW25dPWFyZ3VtZW50c1tuXTtpZihudWxsIT09KG49dGhpcy5fX3NoYWR5X3BhcmVudE5vZGUpKXt2YXIgcz10aGlzLl9fc2hhZHlfbmV4dFNpYmxpbmc7bi5fX3NoYWR5X3JlbW92ZUNoaWxkKHRoaXMpLG4uX19zaGFk''@;'; + put 'put ''eV9pbnNlcnRCZWZvcmUoSDIuYXBwbHkobnVsbCxjKGkpKSxzKX19fSksX2w9d2luZG93LmRvY3VtZW50O2Z1bmN0aW9uIHdsKHQsaSl7aWYoInNsb3QiPT09aSlKMCh0PXQuX19zaGFkeV9wYXJlbnROb2RlKSYmcTAoZzEodCkucm9vdCk7ZWxzZSBpZigic2xvdCI9PT10LmxvY2FsTmFtZSYm''@;'; + put 'put ''Im5hbWUiPT09aSYmKGk9bTIodCkpKXtpZihpLmcpe3B0KGkpO3ZhciBuPXQuUWEscz1VbCh0KTtpZihzIT09bil7dmFyIGQ9KG49aS5oW25dKS5pbmRleE9mKHQpOzA8PWQmJm4uc3BsaWNlKGQsMSksKG49aS5oW3NdfHwoaS5oW3NdPVtdKSkucHVzaCh0KSwxPG4ubGVuZ3RoJiYoaS5oW3Nd''@;'; + put 'put ''PVdsKG4pKX19cTAoaSl9fXZhciBjdD1uMCh7Z2V0IHByZXZpb3VzRWxlbWVudFNpYmxpbmcoKXt2YXIgdD1nMSh0aGlzKTtpZih0JiZ2b2lkIDAhPT10LnByZXZpb3VzU2libGluZyl7Zm9yKHQ9dGhpcy5fX3NoYWR5X3ByZXZpb3VzU2libGluZzt0JiZ0Lm5vZGVUeXBlIT09Tm9kZS5FTEVN''@;'; + put 'put ''RU5UX05PREU7KXQ9dC5fX3NoYWR5X3ByZXZpb3VzU2libGluZztyZXR1cm4gdH1yZXR1cm4gdGhpcy5fX3NoYWR5X25hdGl2ZV9wcmV2aW91c0VsZW1lbnRTaWJsaW5nfSxnZXQgbmV4dEVsZW1lbnRTaWJsaW5nKCl7dmFyIHQ9ZzEodGhpcyk7aWYodCYmdm9pZCAwIT09dC5uZXh0U2libGlu''@;'; + put 'put ''Zyl7Zm9yKHQ9dGhpcy5fX3NoYWR5X25leHRTaWJsaW5nO3QmJnQubm9kZVR5cGUhPT1Ob2RlLkVMRU1FTlRfTk9ERTspdD10Ll9fc2hhZHlfbmV4dFNpYmxpbmc7cmV0dXJuIHR9cmV0dXJuIHRoaXMuX19zaGFkeV9uYXRpdmVfbmV4dEVsZW1lbnRTaWJsaW5nfSxnZXQgc2xvdCgpe3JldHVy''@;'; + put 'put ''biB0aGlzLmdldEF0dHJpYnV0ZSgic2xvdCIpfSxzZXQgc2xvdCh0KXt0aGlzLl9fc2hhZHlfc2V0QXR0cmlidXRlKCJzbG90Iix0KX0sZ2V0IGNsYXNzTmFtZSgpe3JldHVybiB0aGlzLmdldEF0dHJpYnV0ZSgiY2xhc3MiKXx8IiJ9LHNldCBjbGFzc05hbWUodCl7dGhpcy5fX3NoYWR5X3Nl''@;'; + put 'put ''dEF0dHJpYnV0ZSgiY2xhc3MiLHQpfSxzZXRBdHRyaWJ1dGU6ZnVuY3Rpb24odCxpKXt0aGlzLm93bmVyRG9jdW1lbnQhPT1fbD90aGlzLl9fc2hhZHlfbmF0aXZlX3NldEF0dHJpYnV0ZSh0LGkpOnZsKHRoaXMsdCxpKXx8KHRoaXMuX19zaGFkeV9uYXRpdmVfc2V0QXR0cmlidXRlKHQsaSks''@;'; + put 'put ''d2wodGhpcyx0KSl9LHJlbW92ZUF0dHJpYnV0ZTpmdW5jdGlvbih0KXt0aGlzLm93bmVyRG9jdW1lbnQhPT1fbD90aGlzLl9fc2hhZHlfbmF0aXZlX3JlbW92ZUF0dHJpYnV0ZSh0KTp2bCh0aGlzLHQsIiIpPyIiPT09dGhpcy5nZXRBdHRyaWJ1dGUodCkmJnRoaXMuX19zaGFkeV9uYXRpdmVf''@;'; + put 'put ''cmVtb3ZlQXR0cmlidXRlKHQpOih0aGlzLl9fc2hhZHlfbmF0aXZlX3JlbW92ZUF0dHJpYnV0ZSh0KSx3bCh0aGlzLHQpKX19KTt5MS5mYXx8cGwuZm9yRWFjaChmdW5jdGlvbih0KXtjdFt0XT1nbCh0KX0pO3ZhciB4bD1uMCh7YXR0YWNoU2hhZG93OmZ1bmN0aW9uKHQpe2lmKCF0aGlzKXRo''@;'; + put 'put ''cm93IEVycm9yKCJNdXN0IHByb3ZpZGUgYSBob3N0LiIpO2lmKCF0KXRocm93IEVycm9yKCJOb3QgZW5vdWdoIGFyZ3VtZW50cy4iKTtpZih0LnNoYWR5VXBncmFkZUZyYWdtZW50JiYheTEuTmEpe3ZhciBpPXQuc2hhZHlVcGdyYWRlRnJhZ21lbnQ7aWYoaS5fX3Byb3RvX189U2hhZG93Um9v''@;'; + put 'put ''dC5wcm90b3R5cGUsQmwoaSx0aGlzLHQpLHN0KGksaSksdD1pLl9fbm9JbnNlcnRpb25Qb2ludD9udWxsOmkucXVlcnlTZWxlY3RvckFsbCgic2xvdCIpLGkuX19ub0luc2VydGlvblBvaW50PXZvaWQgMCx0JiZ0Lmxlbmd0aCl7dmFyIG49aTt6bChuKSxuLmkucHVzaC5hcHBseShuLmksYyh0''@;'; + put 'put ''KSkscTAoaSl9aS5ob3N0Ll9fc2hhZHlfbmF0aXZlX2FwcGVuZENoaWxkKGkpfWVsc2UgaT1uZXcgZHQoT2wsdGhpcyx0KTtyZXR1cm4gdGhpcy5fX0NFX3NoYWRvd1Jvb3Q9aX0sZ2V0IHNoYWRvd1Jvb3QoKXt2YXIgdD1nMSh0aGlzKTtyZXR1cm4gdCYmdC5nYnx8bnVsbH19KTtCdChjdCx4''@;'; + put 'put ''bCk7dmFyIGhlPWRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZUhUTUxEb2N1bWVudCgiaW5lcnQiKSxkZT1uMCh7Z2V0IGlubmVySFRNTCgpe3JldHVybiBLMSh0aGlzKT9SdCgidGVtcGxhdGUiPT09dGhpcy5sb2NhbE5hbWU/dGhpcy5jb250ZW50OnRoaXMsdjIpOnRoaXMuX19zaGFk''@;'; + put 'put ''eV9uYXRpdmVfaW5uZXJIVE1MfSxzZXQgaW5uZXJIVE1MKHQpe2lmKCJ0ZW1wbGF0ZSI9PT10aGlzLmxvY2FsTmFtZSl0aGlzLl9fc2hhZHlfbmF0aXZlX2lubmVySFRNTD10O2Vsc2V7b2UodGhpcyk7dmFyIGk9dGhpcy5sb2NhbE5hbWV8fCJkaXYiO2ZvcihpPXRoaXMubmFtZXNwYWNlVVJJ''@;'; + put 'put ''JiZ0aGlzLm5hbWVzcGFjZVVSSSE9PWhlLm5hbWVzcGFjZVVSST9oZS5jcmVhdGVFbGVtZW50TlModGhpcy5uYW1lc3BhY2VVUkksaSk6aGUuY3JlYXRlRWxlbWVudChpKSx5MS5IP2kuX19zaGFkeV9uYXRpdmVfaW5uZXJIVE1MPXQ6aS5pbm5lckhUTUw9dDt0PWkuX19zaGFkeV9maXJzdENo''@;'; + put 'put ''aWxkOyl0aGlzLl9fc2hhZHlfaW5zZXJ0QmVmb3JlKHQpfX19KSxEbD1uMCh7Ymx1cjpmdW5jdGlvbigpe3ZhciB0PWcxKHRoaXMpOyh0PSh0PXQmJnQucm9vdCkmJnQuYWN0aXZlRWxlbWVudCk/dC5fX3NoYWR5X2JsdXIoKTp0aGlzLl9fc2hhZHlfbmF0aXZlX2JsdXIoKX19KTt5MS5mYXx8''@;'; + put 'put ''ZmwuZm9yRWFjaChmdW5jdGlvbih0KXtEbFt0XT1nbCh0KX0pO3ZhciBFbD1uMCh7YXNzaWduZWROb2RlczpmdW5jdGlvbih0KXtpZigic2xvdCI9PT10aGlzLmxvY2FsTmFtZSl7dmFyIGk9dGhpcy5fX3NoYWR5X2dldFJvb3ROb2RlKCk7cmV0dXJuIGkmJmUwKGkpJiZ1dChpKSwoaT1nMSh0''@;'; + put 'put ''aGlzKSkmJih0JiZ0LmZsYXR0ZW4/aS5hYTppLmFzc2lnbmVkTm9kZXMpfHxbXX19LGFkZEV2ZW50TGlzdGVuZXI6ZnVuY3Rpb24odCxpLG4pe2lmKCJzbG90IiE9PXRoaXMubG9jYWxOYW1lfHwic2xvdGNoYW5nZSI9PT10KWVlLmNhbGwodGhpcyx0LGksbik7ZWxzZXsib2JqZWN0IiE9dHlw''@;'; + put 'put ''ZW9mIG4mJihuPXtjYXB0dXJlOiEhbn0pO3ZhciBzPXRoaXMuX19zaGFkeV9wYXJlbnROb2RlO2lmKCFzKXRocm93IEVycm9yKCJTaGFkeURPTSBjYW5ub3QgYXR0YWNoIGV2ZW50IHRvIHNsb3QgdW5sZXNzIGl0IGhhcyBhIGBwYXJlbnROb2RlYCIpO24uVT10aGlzLHMuX19zaGFkeV9hZGRF''@;'; + put 'put ''dmVudExpc3RlbmVyKHQsaSxuKX19LHJlbW92ZUV2ZW50TGlzdGVuZXI6ZnVuY3Rpb24odCxpLG4pe2lmKCJzbG90IiE9PXRoaXMubG9jYWxOYW1lfHwic2xvdGNoYW5nZSI9PT10KWxlLmNhbGwodGhpcyx0LGksbik7ZWxzZXsib2JqZWN0IiE9dHlwZW9mIG4mJihuPXtjYXB0dXJlOiEhbn0p''@;'; + put 'put ''O3ZhciBzPXRoaXMuX19zaGFkeV9wYXJlbnROb2RlO2lmKCFzKXRocm93IEVycm9yKCJTaGFkeURPTSBjYW5ub3QgYXR0YWNoIGV2ZW50IHRvIHNsb3QgdW5sZXNzIGl0IGhhcyBhIGBwYXJlbnROb2RlYCIpO24uVT10aGlzLHMuX19zaGFkeV9yZW1vdmVFdmVudExpc3RlbmVyKHQsaSxuKX19''@;'; + put 'put ''fSksdWU9bjAoe2dldEVsZW1lbnRCeUlkOmZ1bmN0aW9uKHQpe3JldHVybiIiPT09dD9udWxsOnNlKHRoaXMsZnVuY3Rpb24oaSl7cmV0dXJuIGkuaWQ9PXR9LGZ1bmN0aW9uKGkpe3JldHVybiEhaX0pWzBdfHxudWxsfX0pO2Z1bmN0aW9uIHdhKHQsaSl7Zm9yKHZhciBuO2kmJiF0Lmhhcyhu''@;'; + put 'put ''PWkuX19zaGFkeV9nZXRSb290Tm9kZSgpKTspaT1uLmhvc3Q7cmV0dXJuIGl9dmFyIERhPSJfX3NoYWR5X25hdGl2ZV8iK08wKCkscGU9bjAoe2dldCBhY3RpdmVFbGVtZW50KCl7dmFyIHQ9eTEuSD9kb2N1bWVudC5fX3NoYWR5X25hdGl2ZV9hY3RpdmVFbGVtZW50OmRvY3VtZW50LmFjdGl2''@;'; + put 'put ''ZUVsZW1lbnQ7aWYoIXR8fCF0Lm5vZGVUeXBlKXJldHVybiBudWxsO3ZhciBpPSEhZTAodGhpcyk7aWYoISh0aGlzPT09ZG9jdW1lbnR8fGkmJnRoaXMuaG9zdCE9PXQmJnRoaXMuaG9zdC5fX3NoYWR5X25hdGl2ZV9jb250YWlucyh0KSkpcmV0dXJuIG51bGw7Zm9yKGk9bTIodCk7aSYmaSE9''@;'; + put 'put ''PXRoaXM7KWk9bTIodD1pLmhvc3QpO3JldHVybiB0aGlzPT09ZG9jdW1lbnQ/aT9udWxsOnQ6aT09PXRoaXM/dDpudWxsfSxlbGVtZW50c0Zyb21Qb2ludDpmdW5jdGlvbih0LGkpe3Q9W10uc2xpY2UuY2FsbChkb2N1bWVudFtEYV0odCxpKSksaT1mdW5jdGlvbiB4YSh0KXt2YXIgaT1uZXcg''@;'; + put 'put ''U2V0O2ZvcihpLmFkZCh0KTtlMCh0KSYmdC5ob3N0Oyl0PXQuaG9zdC5fX3NoYWR5X2dldFJvb3ROb2RlKCksaS5hZGQodCk7cmV0dXJuIGl9KHRoaXMpO2Zvcih2YXIgbj1uZXcgU2V0LHM9MDtzPHQubGVuZ3RoO3MrKyluLmFkZCh3YShpLHRbc10pKTt2YXIgZD1bXTtyZXR1cm4gbi5mb3JF''@;'; + put 'put ''YWNoKGZ1bmN0aW9uKG0pe3JldHVybiBkLnB1c2gobSl9KSxkfSxlbGVtZW50RnJvbVBvaW50OmZ1bmN0aW9uKHQsaSl7cmV0dXJuIHRoaXMuX19zaGFkeV9lbGVtZW50c0Zyb21Qb2ludCh0LGkpWzBdfHxudWxsfX0pLEVhPXdpbmRvdy5kb2N1bWVudCxUYT1uMCh7aW1wb3J0Tm9kZTpmdW5j''@;'; + put 'put ''dGlvbih0LGkpe2lmKHQub3duZXJEb2N1bWVudCE9PUVhfHwidGVtcGxhdGUiPT09dC5sb2NhbE5hbWUpcmV0dXJuIHRoaXMuX19zaGFkeV9uYXRpdmVfaW1wb3J0Tm9kZSh0LGkpO3ZhciBuPXRoaXMuX19zaGFkeV9uYXRpdmVfaW1wb3J0Tm9kZSh0LCExKTtpZihpKWZvcih0PXQuX19zaGFk''@;'; + put 'put ''eV9maXJzdENoaWxkO3Q7dD10Ll9fc2hhZHlfbmV4dFNpYmxpbmcpaT10aGlzLl9fc2hhZHlfaW1wb3J0Tm9kZSh0LCEwKSxuLl9fc2hhZHlfYXBwZW5kQ2hpbGQoaSk7cmV0dXJuIG59fSksVGw9bjAoe2Rpc3BhdGNoRXZlbnQ6ZGwsYWRkRXZlbnRMaXN0ZW5lcjplZS5iaW5kKHdpbmRvdyks''@;'; + put 'put ''cmVtb3ZlRXZlbnRMaXN0ZW5lcjpsZS5iaW5kKHdpbmRvdyl9KSxWMj17fTtPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEhUTUxFbGVtZW50LnByb3RvdHlwZSwicGFyZW50RWxlbWVudCIpJiYoVjIucGFyZW50RWxlbWVudD1ydC5wYXJlbnRFbGVtZW50KSxPYmplY3QuZ2V0T3du''@;'; + put 'put ''UHJvcGVydHlEZXNjcmlwdG9yKEhUTUxFbGVtZW50LnByb3RvdHlwZSwiY29udGFpbnMiKSYmKFYyLmNvbnRhaW5zPXJ0LmNvbnRhaW5zKSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEhUTUxFbGVtZW50LnByb3RvdHlwZSwiY2hpbGRyZW4iKSYmKFYyLmNoaWxkcmVuPUMyLmNo''@;'; + put 'put ''aWxkcmVuKSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEhUTUxFbGVtZW50LnByb3RvdHlwZSwiaW5uZXJIVE1MIikmJihWMi5pbm5lckhUTUw9ZGUuaW5uZXJIVE1MKSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEhUTUxFbGVtZW50LnByb3RvdHlwZSwiY2xhc3NO''@;'; + put 'put ''YW1lIikmJihWMi5jbGFzc05hbWU9Y3QuY2xhc3NOYW1lKTt2YXIgRTA9e0V2ZW50VGFyZ2V0OltBbF0sTm9kZTpbcnQsd2luZG93LkV2ZW50VGFyZ2V0P251bGw6QWxdLFRleHQ6W3oyXSxDb21tZW50Olt6Ml0sQ0RBVEFTZWN0aW9uOlt6Ml0sUHJvY2Vzc2luZ0luc3RydWN0aW9uOlt6Ml0s''@;'; + put 'put ''RWxlbWVudDpbY3QsQzIsYmwsejIsIXkxLkh8fCJpbm5lckhUTUwiaW4gRWxlbWVudC5wcm90b3R5cGU/ZGU6bnVsbCx3aW5kb3cuSFRNTFNsb3RFbGVtZW50P251bGw6RWxdLEhUTUxFbGVtZW50OltEbCxWMl0sSFRNTFNsb3RFbGVtZW50OltFbF0sRG9jdW1lbnRGcmFnbWVudDpbU2wsdWVd''@;'; + put 'put ''LERvY3VtZW50OltUYSxTbCx1ZSxwZV0sV2luZG93OltUbF0sQ2hhcmFjdGVyRGF0YTpbYmxdfSxOYT15MS5IP251bGw6WyJpbm5lckhUTUwiLCJ0ZXh0Q29udGVudCJdO2Z1bmN0aW9uICQwKHQsaSxuLHMpe2kuZm9yRWFjaChmdW5jdGlvbihkKXtyZXR1cm4gdCYmZCYmczAodCxkLG4scyl9''@;'; + put 'put ''KX1mdW5jdGlvbiBObCh0KXt2YXIgbixpPXQ/bnVsbDpOYTtmb3IobiBpbiBFMCkkMCh3aW5kb3dbbl0mJndpbmRvd1tuXS5wcm90b3R5cGUsRTBbbl0sdCxpKX1mdW5jdGlvbiBGbCh0KXtyZXR1cm4gdC5fX3NoYWR5X3Byb3RvSXNQYXRjaGVkPSEwLCQwKHQsRTAuRXZlbnRUYXJnZXQpLCQw''@;'; + put 'put ''KHQsRTAuTm9kZSksJDAodCxFMC5FbGVtZW50KSwkMCh0LEUwLkhUTUxFbGVtZW50KSwkMCh0LEUwLkhUTUxTbG90RWxlbWVudCksdH1bIlRleHQiLCJDb21tZW50IiwiQ0RBVEFTZWN0aW9uIiwiUHJvY2Vzc2luZ0luc3RydWN0aW9uIl0uZm9yRWFjaChmdW5jdGlvbih0KXt2YXIgaT13aW5k''@;'; + put 'put ''b3dbdF0sbj1PYmplY3QuY3JlYXRlKGkucHJvdG90eXBlKTtuLl9fc2hhZHlfcHJvdG9Jc1BhdGNoZWQ9ITAsJDAobixFMC5FdmVudFRhcmdldCksJDAobixFMC5Ob2RlKSxFMFt0XSYmJDAobixFMFt0XSksaS5wcm90b3R5cGUuX19zaGFkeV9wYXRjaGVkUHJvdG89bn0pO3ZhciBGYT15MS5B''@;'; + put 'put ''YSxJYT15MS5IO2Z1bmN0aW9uIG90KHQsaSl7aWYoRmEmJiF0Ll9fc2hhZHlfcHJvdG9Jc1BhdGNoZWQmJiFlMCh0KSl7dmFyIG49T2JqZWN0LmdldFByb3RvdHlwZU9mKHQpLHM9bi5oYXNPd25Qcm9wZXJ0eSgiX19zaGFkeV9wYXRjaGVkUHJvdG8iKSYmbi5fX3NoYWR5X3BhdGNoZWRQcm90''@;'; + put 'put ''bztzfHwoRmwocz1PYmplY3QuY3JlYXRlKG4pKSxuLl9fc2hhZHlfcGF0Y2hlZFByb3RvPXMpLE9iamVjdC5zZXRQcm90b3R5cGVPZih0LHMpfUlhfHwoMT09PWk/ZWwodCk6Mj09PWkmJmxsKHQpKX1mdW5jdGlvbiBJbCh0LGksbixzKXtvdCh0LDEpLHM9c3x8bnVsbDt2YXIgZD1xMSh0KSxt''@;'; + put 'put ''PXM/cTEocyk6bnVsbDtkLnByZXZpb3VzU2libGluZz1zP20ucHJldmlvdXNTaWJsaW5nOmkuX19zaGFkeV9sYXN0Q2hpbGQsKG09ZzEoZC5wcmV2aW91c1NpYmxpbmcpKSYmKG0ubmV4dFNpYmxpbmc9dCksKG09ZzEoZC5uZXh0U2libGluZz1zKSkmJihtLnByZXZpb3VzU2libGluZz10KSxk''@;'; + put 'put ''LnBhcmVudE5vZGU9aSxzP3M9PT1uLmZpcnN0Q2hpbGQmJihuLmZpcnN0Q2hpbGQ9dCk6KG4ubGFzdENoaWxkPXQsbi5maXJzdENoaWxkfHwobi5maXJzdENoaWxkPXQpKSxuLmNoaWxkTm9kZXM9bnVsbH1mdW5jdGlvbiBzdCh0LGkpe3ZhciBuPXExKHQpO2lmKGl8fHZvaWQgMD09PW4uZmly''@;'; + put 'put ''c3RDaGlsZCl7bi5jaGlsZE5vZGVzPW51bGw7dmFyIHM9bi5maXJzdENoaWxkPXQuX19zaGFkeV9uYXRpdmVfZmlyc3RDaGlsZDtmb3Iobi5sYXN0Q2hpbGQ9dC5fX3NoYWR5X25hdGl2ZV9sYXN0Q2hpbGQsb3QodCwyKSxuPXMscz12b2lkIDA7bjtuPW4uX19zaGFkeV9uYXRpdmVfbmV4dFNp''@;'; + put 'put ''Ymxpbmcpe3ZhciBkPXExKG4pO2QucGFyZW50Tm9kZT1pfHx0LGQubmV4dFNpYmxpbmc9bi5fX3NoYWR5X25hdGl2ZV9uZXh0U2libGluZyxkLnByZXZpb3VzU2libGluZz1zfHxudWxsLHM9bixvdChuLDEpfX19dmFyIFBhPW4wKHthZGRFdmVudExpc3RlbmVyOmZ1bmN0aW9uKHQsaSxuKXsi''@;'; + put 'put ''b2JqZWN0IiE9dHlwZW9mIG4mJihuPXtjYXB0dXJlOiEhbn0pLG4uVT1uLlV8fHRoaXMsdGhpcy5ob3N0Ll9fc2hhZHlfYWRkRXZlbnRMaXN0ZW5lcih0LGksbil9LHJlbW92ZUV2ZW50TGlzdGVuZXI6ZnVuY3Rpb24odCxpLG4peyJvYmplY3QiIT10eXBlb2YgbiYmKG49e2NhcHR1cmU6ISFu''@;'; + put 'put ''fSksbi5VPW4uVXx8dGhpcyx0aGlzLmhvc3QuX19zaGFkeV9yZW1vdmVFdmVudExpc3RlbmVyKHQsaSxuKX19KTtmdW5jdGlvbiBrbCh0LGkpe3MwKHQsUGEsaSksczAodCxwZSxpKSxzMCh0LGRlLGkpLHMwKHQsQzIsaSkseTEuSiYmIWk/KHMwKHQscnQsaSksczAodCx1ZSxpKSk6eTEuSHx8''@;'; + put 'put ''KHMwKHQsS3QpLHMwKHQscXQpLHMwKHQsWXQpKX12YXIgaHQsT2w9e30sYzI9eTEuZGVmZXJDb25uZWN0aW9uQ2FsbGJhY2tzJiYibG9hZGluZyI9PT1kb2N1bWVudC5yZWFkeVN0YXRlO2Z1bmN0aW9uIFBsKHQpe3ZhciBpPVtdO2Rve2kudW5zaGlmdCh0KX13aGlsZSh0PXQuX19zaGFkeV9w''@;'; + put 'put ''YXJlbnROb2RlKTtyZXR1cm4gaX1mdW5jdGlvbiBkdCh0LGksbil7aWYodCE9PU9sKXRocm93IG5ldyBUeXBlRXJyb3IoIklsbGVnYWwgY29uc3RydWN0b3IiKTt0aGlzLmc9bnVsbCxCbCh0aGlzLGksbil9ZnVuY3Rpb24gQmwodCxpLG4pe2lmKHQuaG9zdD1pLHQubW9kZT1uJiZuLm1vZGUs''@;'; + put 'put ''c3QodC5ob3N0KSwoaT1xMSh0Lmhvc3QpKS5yb290PXQsaS5nYj0iY2xvc2VkIiE9PXQubW9kZT90Om51bGwsKGk9cTEodCkpLmZpcnN0Q2hpbGQ9aS5sYXN0Q2hpbGQ9aS5wYXJlbnROb2RlPWkubmV4dFNpYmxpbmc9aS5wcmV2aW91c1NpYmxpbmc9bnVsbCx5MS5wcmVmZXJQZXJmb3JtYW5j''@;'; + put 'put ''ZSlmb3IoO2k9dC5ob3N0Ll9fc2hhZHlfbmF0aXZlX2ZpcnN0Q2hpbGQ7KXQuaG9zdC5fX3NoYWR5X25hdGl2ZV9yZW1vdmVDaGlsZChpKTtlbHNlIHEwKHQpfWZ1bmN0aW9uIHEwKHQpe3QuWXx8KHQuWT0hMCxxZShmdW5jdGlvbigpe3JldHVybiB1dCh0KX0pKX1mdW5jdGlvbiB1dCh0KXt2''@;'; + put 'put ''YXIgaTtpZihpPXQuWSl7Zm9yKHZhciBuO3Q7KXQuWSYmKG49dCksZTAodD0oaT10KS5ob3N0Ll9fc2hhZHlfZ2V0Um9vdE5vZGUoKSkmJihpPWcxKGkuaG9zdCkpJiYwPGkuaWF8fCh0PXZvaWQgMCk7aT1ufShuPWkpJiZuLl9yZW5kZXJTZWxmKCl9ZnVuY3Rpb24gR2wodCxpLG4pe3ZhciBz''@;'; + put 'put ''PXExKGkpLGQ9cy51YTtzLnVhPW51bGwsbnx8KG49KHQ9dC5oW2kuX19zaGFkeV9zbG90fHwiX19jYXRjaGFsbCJdKSYmdFswXSksbj8ocTEobikuYXNzaWduZWROb2Rlcy5wdXNoKGkpLHMuYXNzaWduZWRTbG90PW4pOnMuYXNzaWduZWRTbG90PXZvaWQgMCxkIT09cy5hc3NpZ25lZFNsb3Qm''@;'; + put 'put ''JnMuYXNzaWduZWRTbG90JiYocTEocy5hc3NpZ25lZFNsb3QpLnhhPSEwKX1mdW5jdGlvbiBqbCh0LGksbil7Zm9yKHZhciBzPTAsZD12b2lkIDA7czxuLmxlbmd0aCYmKGQ9bltzXSk7cysrKWlmKCJzbG90Ij09ZC5sb2NhbE5hbWUpe3ZhciBtPWcxKGQpLmFzc2lnbmVkTm9kZXM7bSYmbS5s''@;'; + put 'put ''ZW5ndGgmJmpsKHQsaSxtKX1lbHNlIGkucHVzaChuW3NdKX1mdW5jdGlvbiBSbCh0LGkpe2kuX19zaGFkeV9uYXRpdmVfZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoInNsb3RjaGFuZ2UiKSksKGk9ZzEoaSkpLmFzc2lnbmVkU2xvdCYmUmwodCxpLmFzc2lnbmVkU2xvdCl9ZnVuY3Rpb24gemwo''@;'; + put 'put ''dCl7dC5pPXQuaXx8W10sdC5nPXQuZ3x8W10sdC5oPXQuaHx8e319ZnVuY3Rpb24gcHQodCl7aWYodC5pJiZ0LmkubGVuZ3RoKXtmb3IodmFyIG4saT10Lmkscz0wO3M8aS5sZW5ndGg7cysrKXt2YXIgZD1pW3NdO3N0KGQpO3ZhciBtPWQuX19zaGFkeV9wYXJlbnROb2RlO3N0KG0pLChtPWcx''@;'; + put 'put ''KG0pKS5pYT0obS5pYXx8MCkrMSxtPVVsKGQpLHQuaFttXT8oKG49bnx8e30pW21dPSEwLHQuaFttXS5wdXNoKGQpKTp0LmhbbV09W2RdLHQuZy5wdXNoKGQpfWlmKG4pZm9yKHZhciBMIGluIG4pdC5oW0xdPVdsKHQuaFtMXSk7dC5pPVtdfX1mdW5jdGlvbiBVbCh0KXt2YXIgaT10Lm5hbWV8''@;'; + put 'put ''fHQuZ2V0QXR0cmlidXRlKCJuYW1lIil8fCJfX2NhdGNoYWxsIjtyZXR1cm4gdC5RYT1pfWZ1bmN0aW9uIFdsKHQpe3JldHVybiB0LnNvcnQoZnVuY3Rpb24oaSxuKXtpPVBsKGkpO2Zvcih2YXIgcz1QbChuKSxkPTA7ZDxpLmxlbmd0aDtkKyspe3ZhciBtPXNbZF07aWYoKG49aVtkXSkhPT1t''@;'; + put 'put ''KXJldHVybihpPXYyKG4uX19zaGFkeV9wYXJlbnROb2RlKSkuaW5kZXhPZihuKS1pLmluZGV4T2YobSl9fSl9ZnVuY3Rpb24gJGwodCl7cmV0dXJuIHB0KHQpLCEoIXQuZ3x8IXQuZy5sZW5ndGgpfWlmKGR0LnByb3RvdHlwZS5fcmVuZGVyU2VsZj1mdW5jdGlvbigpe3ZhciB0PWMyO2lmKGMy''@;'; + put 'put ''PSEwLHRoaXMuWT0hMSx0aGlzLmcpe3B0KHRoaXMpO2Zvcih2YXIgbixpPTA7aTx0aGlzLmcubGVuZ3RoO2krKyl7dmFyIHM9ZzEobj10aGlzLmdbaV0pLGQ9cy5hc3NpZ25lZE5vZGVzO2lmKHMuYXNzaWduZWROb2Rlcz1bXSxzLmFhPVtdLHMuR2E9ZClmb3Iocz0wO3M8ZC5sZW5ndGg7cysr''@;'; + put 'put ''KXt2YXIgbT1nMShkW3NdKTttLnVhPW0uYXNzaWduZWRTbG90LG0uYXNzaWduZWRTbG90PT09biYmKG0uYXNzaWduZWRTbG90PW51bGwpfX1mb3IoaT10aGlzLmhvc3QuX19zaGFkeV9maXJzdENoaWxkO2k7aT1pLl9fc2hhZHlfbmV4dFNpYmxpbmcpR2wodGhpcyxpKTtmb3IoaT0wO2k8dGhp''@;'; + put 'put ''cy5nLmxlbmd0aDtpKyspe2lmKCEoZD1nMShuPXRoaXMuZ1tpXSkpLmFzc2lnbmVkTm9kZXMubGVuZ3RoKWZvcihzPW4uX19zaGFkeV9maXJzdENoaWxkO3M7cz1zLl9fc2hhZHlfbmV4dFNpYmxpbmcpR2wodGhpcyxzLG4pO2lmKChzPShzPWcxKG4uX19zaGFkeV9wYXJlbnROb2RlKSkmJnMu''@;'; + put 'put ''cm9vdCkmJigkbChzKXx8cy5ZKSYmcy5fcmVuZGVyU2VsZigpLGpsKHRoaXMsZC5hYSxkLmFzc2lnbmVkTm9kZXMpLHM9ZC5HYSl7Zm9yKG09MDttPHMubGVuZ3RoO20rKylnMShzW21dKS51YT1udWxsO2QuR2E9bnVsbCxzLmxlbmd0aD5kLmFzc2lnbmVkTm9kZXMubGVuZ3RoJiYoZC54YT0h''@;'; + put 'put ''MCl9ZC54YSYmKGQueGE9ITEsUmwodGhpcyxuKSl9Zm9yKG49dGhpcy5nLGk9W10sZD0wO2Q8bi5sZW5ndGg7ZCsrKShtPWcxKHM9bltkXS5fX3NoYWR5X3BhcmVudE5vZGUpKSYmbS5yb290fHwhKDA+aS5pbmRleE9mKHMpKXx8aS5wdXNoKHMpO2ZvcihuPTA7bjxpLmxlbmd0aDtuKyspe2Zv''@;'; + put 'put ''cihkPShtPWlbbl0pPT09dGhpcz90aGlzLmhvc3Q6bSxzPVtdLG09bS5fX3NoYWR5X2ZpcnN0Q2hpbGQ7bTttPW0uX19zaGFkeV9uZXh0U2libGluZylpZigic2xvdCI9PW0ubG9jYWxOYW1lKWZvcih2YXIgTD1nMShtKS5hYSxGPTA7RjxMLmxlbmd0aDtGKyspcy5wdXNoKExbRl0pO2Vsc2Ug''@;'; + put 'put ''cy5wdXNoKG0pO209UDIoZCksTD1TYShzLHMubGVuZ3RoLG0sbS5sZW5ndGgpO2Zvcih2YXIgRz1GPTAsVT12b2lkIDA7RjxMLmxlbmd0aCYmKFU9TFtGXSk7RisrKXtmb3IodmFyIEs9MCxIMT12b2lkIDA7SzxVLmdhLmxlbmd0aCYmKEgxPVUuZ2FbS10pO0srKylIMS5fX3NoYWR5X25hdGl2''@;'; + put 'put ''ZV9wYXJlbnROb2RlPT09ZCYmZC5fX3NoYWR5X25hdGl2ZV9yZW1vdmVDaGlsZChIMSksbS5zcGxpY2UoVS5pbmRleCtHLDEpO0ctPVUubmF9Zm9yKEc9MCxVPXZvaWQgMDtHPEwubGVuZ3RoJiYoVT1MW0ddKTtHKyspZm9yKEY9bVtVLmluZGV4XSxLPVUuaW5kZXg7SzxVLmluZGV4K1UubmE7''@;'; + put 'put ''SysrKWQuX19zaGFkeV9uYXRpdmVfaW5zZXJ0QmVmb3JlKEgxPXNbS10sRiksbS5zcGxpY2UoSywwLEgxKX19aWYoIXkxLnByZWZlclBlcmZvcm1hbmNlJiYhdGhpcy5GYSlmb3IoaT10aGlzLmhvc3QuX19zaGFkeV9maXJzdENoaWxkO2k7aT1pLl9fc2hhZHlfbmV4dFNpYmxpbmcpbj1nMShp''@;'; + put 'put ''KSxpLl9fc2hhZHlfbmF0aXZlX3BhcmVudE5vZGUhPT10aGlzLmhvc3R8fCJzbG90IiE9PWkubG9jYWxOYW1lJiZuLmFzc2lnbmVkU2xvdHx8dGhpcy5ob3N0Ll9fc2hhZHlfbmF0aXZlX3JlbW92ZUNoaWxkKGkpO3RoaXMuRmE9ITAsYzI9dCxodCYmaHQoKX0sZnVuY3Rpb24odCl7dC5fX3By''@;'; + put 'put ''b3RvX189RG9jdW1lbnRGcmFnbWVudC5wcm90b3R5cGUsa2wodCwiX19zaGFkeV8iKSxrbCh0KSxPYmplY3QuZGVmaW5lUHJvcGVydGllcyh0LHtub2RlVHlwZTp7dmFsdWU6Tm9kZS5ET0NVTUVOVF9GUkFHTUVOVF9OT0RFLGNvbmZpZ3VyYWJsZTohMH0sbm9kZU5hbWU6e3ZhbHVlOiIjZG9j''@;'; + put 'put ''dW1lbnQtZnJhZ21lbnQiLGNvbmZpZ3VyYWJsZTohMH0sbm9kZVZhbHVlOnt2YWx1ZTpudWxsLGNvbmZpZ3VyYWJsZTohMH19KSxbImxvY2FsTmFtZSIsIm5hbWVzcGFjZVVSSSIsInByZWZpeCJdLmZvckVhY2goZnVuY3Rpb24oaSl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsaSx7dmFsdWU6''@;'; + put 'put ''dm9pZCAwLGNvbmZpZ3VyYWJsZTohMH0pfSksWyJvd25lckRvY3VtZW50IiwiYmFzZVVSSSIsImlzQ29ubmVjdGVkIl0uZm9yRWFjaChmdW5jdGlvbihpKXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxpLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ob3N0W2ldfSxjb25maWd1cmFibGU6''@;'; + put 'put ''ITB9KX0pfShkdC5wcm90b3R5cGUpLHdpbmRvdy5jdXN0b21FbGVtZW50cyYmd2luZG93LmN1c3RvbUVsZW1lbnRzLmRlZmluZSYmeTEueWEmJiF5MS5wcmVmZXJQZXJmb3JtYW5jZSl7dmFyIGZ0PW5ldyBNYXA7aHQ9ZnVuY3Rpb24oKXt2YXIgdD1bXTtmdC5mb3JFYWNoKGZ1bmN0aW9uKHMs''@;'; + put 'put ''ZCl7dC5wdXNoKFtkLHNdKX0pLGZ0LmNsZWFyKCk7Zm9yKHZhciBpPTA7aTx0Lmxlbmd0aDtpKyspe3ZhciBuPXRbaV1bMF07dFtpXVsxXT9uLl9fc2hhZHlkb21fY29ubmVjdGVkQ2FsbGJhY2soKTpuLl9fc2hhZHlkb21fZGlzY29ubmVjdGVkQ2FsbGJhY2soKX19LGMyJiZkb2N1bWVudC5h''@;'; + put 'put ''ZGRFdmVudExpc3RlbmVyKCJyZWFkeXN0YXRlY2hhbmdlIixmdW5jdGlvbigpe2MyPSExLGh0KCl9LHtvbmNlOiEwfSk7dmFyIGphPXdpbmRvdy5jdXN0b21FbGVtZW50cy5kZWZpbmUscWw9ZnVuY3Rpb24odCxpKXt2YXIgbj1pLnByb3RvdHlwZS5jb25uZWN0ZWRDYWxsYmFjayxzPWkucHJv''@;'; + put 'put ''dG90eXBlLmRpc2Nvbm5lY3RlZENhbGxiYWNrO2phLmNhbGwod2luZG93LmN1c3RvbUVsZW1lbnRzLHQsZnVuY3Rpb24odCxpLG4pe3ZhciBzPTAsZD0iX19pc0Nvbm5lY3RlZCIrcysrO3JldHVybihpfHxuKSYmKHQucHJvdG90eXBlLmNvbm5lY3RlZENhbGxiYWNrPXQucHJvdG90eXBlLl9f''@;'; + put 'put ''c2hhZHlkb21fY29ubmVjdGVkQ2FsbGJhY2s9ZnVuY3Rpb24oKXtjMj9mdC5zZXQodGhpcywhMCk6dGhpc1tkXXx8KHRoaXNbZF09ITAsaSYmaS5jYWxsKHRoaXMpKX0sdC5wcm90b3R5cGUuZGlzY29ubmVjdGVkQ2FsbGJhY2s9dC5wcm90b3R5cGUuX19zaGFkeWRvbV9kaXNjb25uZWN0ZWRD''@;'; + put 'put ''YWxsYmFjaz1mdW5jdGlvbigpe2MyP3RoaXMuaXNDb25uZWN0ZWR8fGZ0LnNldCh0aGlzLCExKTp0aGlzW2RdJiYodGhpc1tkXT0hMSxuJiZuLmNhbGwodGhpcykpfSksdH0oaSxuLHMpKSxpLnByb3RvdHlwZS5jb25uZWN0ZWRDYWxsYmFjaz1uLGkucHJvdG90eXBlLmRpc2Nvbm5lY3RlZENh''@;'; + put 'put ''bGxiYWNrPXN9O3dpbmRvdy5jdXN0b21FbGVtZW50cy5kZWZpbmU9cWwsT2JqZWN0LmRlZmluZVByb3BlcnR5KHdpbmRvdy5DdXN0b21FbGVtZW50UmVnaXN0cnkucHJvdG90eXBlLCJkZWZpbmUiLHt2YWx1ZTpxbCxjb25maWd1cmFibGU6ITB9KX1mdW5jdGlvbiBtMih0KXtpZihlMCh0PXQu''@;'; + put 'put ''X19zaGFkeV9nZXRSb290Tm9kZSgpKSlyZXR1cm4gdH1mdW5jdGlvbiBNMih0KXt0aGlzLm5vZGU9dH1mdW5jdGlvbiBZbCh0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkoTTIucHJvdG90eXBlLHQse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm5vZGVbIl9fc2hhZHlfIit0XX0sc2V0OmZ1''@;'; + put 'put ''bmN0aW9uKGkpe3RoaXMubm9kZVsiX19zaGFkeV8iK3RdPWl9LGNvbmZpZ3VyYWJsZTohMH0pfShYPU0yLnByb3RvdHlwZSkuYWRkRXZlbnRMaXN0ZW5lcj1mdW5jdGlvbih0LGksbil7cmV0dXJuIHRoaXMubm9kZS5fX3NoYWR5X2FkZEV2ZW50TGlzdGVuZXIodCxpLG4pfSxYLnJlbW92ZUV2''@;'; + put 'put ''ZW50TGlzdGVuZXI9ZnVuY3Rpb24odCxpLG4pe3JldHVybiB0aGlzLm5vZGUuX19zaGFkeV9yZW1vdmVFdmVudExpc3RlbmVyKHQsaSxuKX0sWC5hcHBlbmRDaGlsZD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5ub2RlLl9fc2hhZHlfYXBwZW5kQ2hpbGQodCl9LFguaW5zZXJ0QmVmb3JlPWZ1''@;'; + put 'put ''bmN0aW9uKHQsaSl7cmV0dXJuIHRoaXMubm9kZS5fX3NoYWR5X2luc2VydEJlZm9yZSh0LGkpfSxYLnJlbW92ZUNoaWxkPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLm5vZGUuX19zaGFkeV9yZW1vdmVDaGlsZCh0KX0sWC5yZXBsYWNlQ2hpbGQ9ZnVuY3Rpb24odCxpKXtyZXR1cm4gdGhpcy5u''@;'; + put 'put ''b2RlLl9fc2hhZHlfcmVwbGFjZUNoaWxkKHQsaSl9LFguY2xvbmVOb2RlPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLm5vZGUuX19zaGFkeV9jbG9uZU5vZGUodCl9LFguZ2V0Um9vdE5vZGU9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMubm9kZS5fX3NoYWR5X2dldFJvb3ROb2RlKHQpfSxYLmNv''@;'; + put 'put ''bnRhaW5zPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLm5vZGUuX19zaGFkeV9jb250YWlucyh0KX0sWC5kaXNwYXRjaEV2ZW50PWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLm5vZGUuX19zaGFkeV9kaXNwYXRjaEV2ZW50KHQpfSxYLnNldEF0dHJpYnV0ZT1mdW5jdGlvbih0LGkpe3RoaXMubm9k''@;'; + put 'put ''ZS5fX3NoYWR5X3NldEF0dHJpYnV0ZSh0LGkpfSxYLmdldEF0dHJpYnV0ZT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5ub2RlLl9fc2hhZHlfbmF0aXZlX2dldEF0dHJpYnV0ZSh0KX0sWC5oYXNBdHRyaWJ1dGU9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMubm9kZS5fX3NoYWR5X25hdGl2ZV9o''@;'; + put 'put ''YXNBdHRyaWJ1dGUodCl9LFgucmVtb3ZlQXR0cmlidXRlPWZ1bmN0aW9uKHQpe3RoaXMubm9kZS5fX3NoYWR5X3JlbW92ZUF0dHJpYnV0ZSh0KX0sWC5hdHRhY2hTaGFkb3c9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMubm9kZS5fX3NoYWR5X2F0dGFjaFNoYWRvdyh0KX0sWC5mb2N1cz1mdW5j''@;'; + put 'put ''dGlvbigpe3RoaXMubm9kZS5fX3NoYWR5X25hdGl2ZV9mb2N1cygpfSxYLmJsdXI9ZnVuY3Rpb24oKXt0aGlzLm5vZGUuX19zaGFkeV9ibHVyKCl9LFguaW1wb3J0Tm9kZT1mdW5jdGlvbih0LGkpe2lmKHRoaXMubm9kZS5ub2RlVHlwZT09PU5vZGUuRE9DVU1FTlRfTk9ERSlyZXR1cm4gdGhp''@;'; + put 'put ''cy5ub2RlLl9fc2hhZHlfaW1wb3J0Tm9kZSh0LGkpfSxYLmdldEVsZW1lbnRCeUlkPWZ1bmN0aW9uKHQpe2lmKHRoaXMubm9kZS5ub2RlVHlwZT09PU5vZGUuRE9DVU1FTlRfTk9ERSlyZXR1cm4gdGhpcy5ub2RlLl9fc2hhZHlfZ2V0RWxlbWVudEJ5SWQodCl9LFguZWxlbWVudHNGcm9tUG9p''@;'; + put 'put ''bnQ9ZnVuY3Rpb24odCxpKXtyZXR1cm4gdGhpcy5ub2RlLl9fc2hhZHlfZWxlbWVudHNGcm9tUG9pbnQodCxpKX0sWC5lbGVtZW50RnJvbVBvaW50PWZ1bmN0aW9uKHQsaSl7cmV0dXJuIHRoaXMubm9kZS5fX3NoYWR5X2VsZW1lbnRGcm9tUG9pbnQodCxpKX0sWC5xdWVyeVNlbGVjdG9yPWZ1''@;'; + put 'put ''bmN0aW9uKHQpe3JldHVybiB0aGlzLm5vZGUuX19zaGFkeV9xdWVyeVNlbGVjdG9yKHQpfSxYLnF1ZXJ5U2VsZWN0b3JBbGw9ZnVuY3Rpb24odCxpKXtyZXR1cm4gdGhpcy5ub2RlLl9fc2hhZHlfcXVlcnlTZWxlY3RvckFsbCh0LGkpfSxYLmFzc2lnbmVkTm9kZXM9ZnVuY3Rpb24odCl7aWYo''@;'; + put 'put ''InNsb3QiPT09dGhpcy5ub2RlLmxvY2FsTmFtZSlyZXR1cm4gdGhpcy5ub2RlLl9fc2hhZHlfYXNzaWduZWROb2Rlcyh0KX0sWC5hcHBlbmQ9ZnVuY3Rpb24odCl7Zm9yKHZhciBpPVtdLG49MDtuPGFyZ3VtZW50cy5sZW5ndGg7KytuKWlbbl09YXJndW1lbnRzW25dO3JldHVybiB0aGlzLm5v''@;'; + put 'put ''ZGUuX19zaGFkeV9hcHBlbmQuYXBwbHkodGhpcy5ub2RlLGMoaSkpfSxYLnByZXBlbmQ9ZnVuY3Rpb24odCl7Zm9yKHZhciBpPVtdLG49MDtuPGFyZ3VtZW50cy5sZW5ndGg7KytuKWlbbl09YXJndW1lbnRzW25dO3JldHVybiB0aGlzLm5vZGUuX19zaGFkeV9wcmVwZW5kLmFwcGx5KHRoaXMu''@;'; + put 'put ''bm9kZSxjKGkpKX0sWC5hZnRlcj1mdW5jdGlvbih0KXtmb3IodmFyIGk9W10sbj0wO248YXJndW1lbnRzLmxlbmd0aDsrK24paVtuXT1hcmd1bWVudHNbbl07cmV0dXJuIHRoaXMubm9kZS5fX3NoYWR5X2FmdGVyLmFwcGx5KHRoaXMubm9kZSxjKGkpKX0sWC5iZWZvcmU9ZnVuY3Rpb24odCl7''@;'; + put 'put ''Zm9yKHZhciBpPVtdLG49MDtuPGFyZ3VtZW50cy5sZW5ndGg7KytuKWlbbl09YXJndW1lbnRzW25dO3JldHVybiB0aGlzLm5vZGUuX19zaGFkeV9iZWZvcmUuYXBwbHkodGhpcy5ub2RlLGMoaSkpfSxYLnJlbW92ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLm5vZGUuX19zaGFkeV9yZW1vdmUo''@;'; + put 'put ''KX0sWC5yZXBsYWNlV2l0aD1mdW5jdGlvbih0KXtmb3IodmFyIGk9W10sbj0wO248YXJndW1lbnRzLmxlbmd0aDsrK24paVtuXT1hcmd1bWVudHNbbl07cmV0dXJuIHRoaXMubm9kZS5fX3NoYWR5X3JlcGxhY2VXaXRoLmFwcGx5KHRoaXMubm9kZSxjKGkpKX0sZS5PYmplY3QuZGVmaW5lUHJv''@;'; + put 'put ''cGVydGllcyhNMi5wcm90b3R5cGUse2FjdGl2ZUVsZW1lbnQ6e2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe2lmKGUwKHRoaXMubm9kZSl8fHRoaXMubm9kZS5ub2RlVHlwZT09PU5vZGUuRE9DVU1FTlRfTk9ERSlyZXR1cm4gdGhpcy5ub2RlLl9fc2hhZHlf''@;'; + put 'put ''YWN0aXZlRWxlbWVudH19LF9hY3RpdmVFbGVtZW50Ontjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5hY3RpdmVFbGVtZW50fX0saG9zdDp7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7aWYoZTAodGhp''@;'; + put 'put ''cy5ub2RlKSlyZXR1cm4gdGhpcy5ub2RlLmhvc3R9fSxwYXJlbnROb2RlOntjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ub2RlLl9fc2hhZHlfcGFyZW50Tm9kZX19LGZpcnN0Q2hpbGQ6e2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxl''@;'; + put 'put ''OiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm5vZGUuX19zaGFkeV9maXJzdENoaWxkfX0sbGFzdENoaWxkOntjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ub2RlLl9fc2hhZHlfbGFzdENoaWxkfX0sbmV4dFNpYmxpbmc6e2Nv''@;'; + put 'put ''bmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm5vZGUuX19zaGFkeV9uZXh0U2libGluZ319LHByZXZpb3VzU2libGluZzp7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubm9kZS5fX3No''@;'; + put 'put ''YWR5X3ByZXZpb3VzU2libGluZ319LGNoaWxkTm9kZXM6e2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm5vZGUuX19zaGFkeV9jaGlsZE5vZGVzfX0scGFyZW50RWxlbWVudDp7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsZ2V0''@;'; + put 'put ''OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubm9kZS5fX3NoYWR5X3BhcmVudEVsZW1lbnR9fSxmaXJzdEVsZW1lbnRDaGlsZDp7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubm9kZS5fX3NoYWR5X2ZpcnN0RWxlbWVudENoaWxkfX0sbGFz''@;'; + put 'put ''dEVsZW1lbnRDaGlsZDp7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubm9kZS5fX3NoYWR5X2xhc3RFbGVtZW50Q2hpbGR9fSxuZXh0RWxlbWVudFNpYmxpbmc6e2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlv''@;'; + put 'put ''bigpe3JldHVybiB0aGlzLm5vZGUuX19zaGFkeV9uZXh0RWxlbWVudFNpYmxpbmd9fSxwcmV2aW91c0VsZW1lbnRTaWJsaW5nOntjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ub2RlLl9fc2hhZHlfcHJldmlvdXNFbGVtZW50U2libGlu''@;'; + put 'put ''Z319LGNoaWxkcmVuOntjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ub2RlLl9fc2hhZHlfY2hpbGRyZW59fSxjaGlsZEVsZW1lbnRDb3VudDp7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJu''@;'; + put 'put ''IHRoaXMubm9kZS5fX3NoYWR5X2NoaWxkRWxlbWVudENvdW50fX0sc2hhZG93Um9vdDp7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubm9kZS5fX3NoYWR5X3NoYWRvd1Jvb3R9fSxhc3NpZ25lZFNsb3Q6e2NvbmZpZ3VyYWJsZTohMCxl''@;'; + put 'put ''bnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm5vZGUuX19zaGFkeV9hc3NpZ25lZFNsb3R9fSxpc0Nvbm5lY3RlZDp7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubm9kZS5fX3NoYWR5X2lzQ29ubmVjdGVkfX0s''@;'; + put 'put ''aW5uZXJIVE1MOntjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ub2RlLl9fc2hhZHlfaW5uZXJIVE1MfSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy5ub2RlLl9fc2hhZHlfaW5uZXJIVE1MPXR9fSx0ZXh0Q29udGVudDp7Y29uZmlndXJhYmxl''@;'; + put 'put ''OiEwLGVudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubm9kZS5fX3NoYWR5X3RleHRDb250ZW50fSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy5ub2RlLl9fc2hhZHlfdGV4dENvbnRlbnQ9dH19LHNsb3Q6e2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwLGdldDpmdW5j''@;'; + put 'put ''dGlvbigpe3JldHVybiB0aGlzLm5vZGUuX19zaGFkeV9zbG90fSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy5ub2RlLl9fc2hhZHlfc2xvdD10fX0sY2xhc3NOYW1lOntjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ub2RlLl9fc2hhZHlfY2xh''@;'; + put 'put ''c3NOYW1lfSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy5ub2RlLl9fc2hhZHlfY2xhc3NOYW1lPXR9fX0pLHBsLmZvckVhY2goZnVuY3Rpb24odCl7cmV0dXJuIFlsKHQpfSksZmwuZm9yRWFjaChmdW5jdGlvbih0KXtyZXR1cm4gWWwodCl9KTt2YXIgS2w9bmV3IFdlYWtNYXA7ZnVuY3Rpb24gWGwo''@;'; + put 'put ''dCl7aWYoZTAodCl8fHQgaW5zdGFuY2VvZiBNMilyZXR1cm4gdDt2YXIgaT1LbC5nZXQodCk7cmV0dXJuIGl8fChpPW5ldyBNMih0KSxLbC5zZXQodCxpKSksaX1pZih5MS55YSl7dmFyIFFsPXkxLkg/ZnVuY3Rpb24odCl7cmV0dXJuIHR9OmZ1bmN0aW9uKHQpe3JldHVybiBsbCh0KSxlbCh0''@;'; + put 'put ''KSx0fSxSYT17aW5Vc2U6eTEueWEscGF0Y2g6UWwsaXNTaGFkeVJvb3Q6ZTAsZW5xdWV1ZTpxZSxmbHVzaDpldCxmbHVzaEluaXRpYWw6ZnVuY3Rpb24odCl7IXQuRmEmJnQuWSYmdXQodCl9LHNldHRpbmdzOnkxLGZpbHRlck11dGF0aW9uczpmdW5jdGlvbiB1YSh0LGkpe3ZhciBuPWkuZ2V0''@;'; + put 'put ''Um9vdE5vZGUoKTtyZXR1cm4gdC5tYXAoZnVuY3Rpb24ocyl7dmFyIGQ9bj09PXMudGFyZ2V0LmdldFJvb3ROb2RlKCk7aWYoZCYmcy5hZGRlZE5vZGVzKXtpZihkPVtdLnNsaWNlLmNhbGwocy5hZGRlZE5vZGVzKS5maWx0ZXIoZnVuY3Rpb24obSl7cmV0dXJuIG49PT1tLmdldFJvb3ROb2Rl''@;'; + put 'put ''KCl9KSxkLmxlbmd0aClyZXR1cm4gcz1PYmplY3QuY3JlYXRlKHMpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShzLCJhZGRlZE5vZGVzIix7dmFsdWU6ZCxjb25maWd1cmFibGU6ITB9KSxzfWVsc2UgaWYoZClyZXR1cm4gc30pLmZpbHRlcihmdW5jdGlvbihzKXtyZXR1cm4gc30pfSxvYnNlcnZl''@;'; + put 'put ''Q2hpbGRyZW46ZnVuY3Rpb24gaGEodCxpKXt2YXIgbj1xMSh0KTtuLmVhfHwobi5lYT1uZXcganQpLG4uZWEub2EuYWRkKGkpO3ZhciBzPW4uZWE7cmV0dXJue1JhOmksWDpzLFNhOnQsdGFrZVJlY29yZHM6ZnVuY3Rpb24oKXtyZXR1cm4gcy50YWtlUmVjb3JkcygpfX19LHVub2JzZXJ2ZUNo''@;'; + put 'put ''aWxkcmVuOmZ1bmN0aW9uIGRhKHQpe3ZhciBpPXQmJnQuWDtpJiYoaS5vYS5kZWxldGUodC5SYSksaS5vYS5zaXplfHwocTEodC5TYSkuZWE9bnVsbCkpfSxkZWZlckNvbm5lY3Rpb25DYWxsYmFja3M6eTEuZGVmZXJDb25uZWN0aW9uQ2FsbGJhY2tzLHByZWZlclBlcmZvcm1hbmNlOnkxLnBy''@;'; + put 'put ''ZWZlclBlcmZvcm1hbmNlLGhhbmRsZXNEeW5hbWljU2NvcGluZzohMCx3cmFwOnkxLko/WGw6UWwsd3JhcElmTmVlZGVkOiEwPT09eTEuSj9YbDpmdW5jdGlvbih0KXtyZXR1cm4gdH0sV3JhcHBlcjpNMixjb21wb3NlZFBhdGg6ZnVuY3Rpb24gVmEodCl7cmV0dXJuIHQuX19jb21wb3NlZFBh''@;'; + put 'put ''dGh8fCh0Ll9fY29tcG9zZWRQYXRoPWl0KHQudGFyZ2V0LCEwKSksdC5fX2NvbXBvc2VkUGF0aH0sbm9QYXRjaDp5MS5KLHBhdGNoT25EZW1hbmQ6eTEuQWEsbmF0aXZlTWV0aG9kczp6dCxuYXRpdmVUcmVlOlhlLHBhdGNoRWxlbWVudFByb3RvOkZsfTt3aW5kb3cuU2hhZHlET009UmEsZnVu''@;'; + put 'put ''Y3Rpb24gdmEoKXt2YXIgdD1bImRpc3BhdGNoRXZlbnQiLCJhZGRFdmVudExpc3RlbmVyIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciJdO3dpbmRvdy5FdmVudFRhcmdldD8oYzAod2luZG93LkV2ZW50VGFyZ2V0LnByb3RvdHlwZSx0KSx2b2lkIDA9PT13aW5kb3cuX19zaGFkeV9uYXRpdmVfYWRk''@;'; + put 'put ''RXZlbnRMaXN0ZW5lciYmYzAoV2luZG93LnByb3RvdHlwZSx0KSk6KGMwKE5vZGUucHJvdG90eXBlLHQpLGMwKFdpbmRvdy5wcm90b3R5cGUsdCkpLGx0P2MwKE5vZGUucHJvdG90eXBlLCJwYXJlbnROb2RlIGZpcnN0Q2hpbGQgbGFzdENoaWxkIHByZXZpb3VzU2libGluZyBuZXh0U2libGlu''@;'; + put 'put ''ZyBjaGlsZE5vZGVzIHBhcmVudEVsZW1lbnQgdGV4dENvbnRlbnQiLnNwbGl0KCIgIikpOkcyKE5vZGUucHJvdG90eXBlLHtwYXJlbnROb2RlOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4geTAuY3VycmVudE5vZGU9dGhpcyx5MC5wYXJlbnROb2RlKCl9fSxmaXJzdENoaWxkOntnZXQ6ZnVuY3Rp''@;'; + put 'put ''b24oKXtyZXR1cm4geTAuY3VycmVudE5vZGU9dGhpcyx5MC5maXJzdENoaWxkKCl9fSxsYXN0Q2hpbGQ6e2dldDpmdW5jdGlvbigpe3JldHVybiB5MC5jdXJyZW50Tm9kZT10aGlzLHkwLmxhc3RDaGlsZCgpfX0scHJldmlvdXNTaWJsaW5nOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4geTAuY3Vy''@;'; + put 'put ''cmVudE5vZGU9dGhpcyx5MC5wcmV2aW91c1NpYmxpbmcoKX19LG5leHRTaWJsaW5nOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4geTAuY3VycmVudE5vZGU9dGhpcyx5MC5uZXh0U2libGluZygpfX0sY2hpbGROb2Rlczp7Z2V0OmZ1bmN0aW9uKCl7dmFyIGk9W107eTAuY3VycmVudE5vZGU9dGhp''@;'; + put 'put ''cztmb3IodmFyIG49eTAuZmlyc3RDaGlsZCgpO247KWkucHVzaChuKSxuPXkwLm5leHRTaWJsaW5nKCk7cmV0dXJuIGl9fSxwYXJlbnRFbGVtZW50OntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gTDAuY3VycmVudE5vZGU9dGhpcyxMMC5wYXJlbnROb2RlKCl9fSx0ZXh0Q29udGVudDp7Z2V0OmZ1''@;'; + put 'put ''bmN0aW9uKCl7c3dpdGNoKHRoaXMubm9kZVR5cGUpe2Nhc2UgTm9kZS5FTEVNRU5UX05PREU6Y2FzZSBOb2RlLkRPQ1VNRU5UX0ZSQUdNRU5UX05PREU6Zm9yKHZhciBzLGk9ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih0aGlzLE5vZGVGaWx0ZXIuU0hPV19URVhULG51bGwsITEpLG49IiI7''@;'; + put 'put ''cz1pLm5leHROb2RlKCk7KW4rPXMubm9kZVZhbHVlO3JldHVybiBuO2RlZmF1bHQ6cmV0dXJuIHRoaXMubm9kZVZhbHVlfX0sc2V0OmZ1bmN0aW9uKGkpe3N3aXRjaChudWxsPT1pJiYoaT0iIiksdGhpcy5ub2RlVHlwZSl7Y2FzZSBOb2RlLkVMRU1FTlRfTk9ERTpjYXNlIE5vZGUuRE9DVU1F''@;'; + put 'put ''TlRfRlJBR01FTlRfTk9ERTpKZSh0aGlzKSwoMDxpLmxlbmd0aHx8dGhpcy5ub2RlVHlwZT09PU5vZGUuRUxFTUVOVF9OT0RFKSYmdGhpcy5fX3NoYWR5X25hdGl2ZV9pbnNlcnRCZWZvcmUoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoaSksdm9pZCAwKTticmVhaztkZWZhdWx0OnRoaXMubm9k''@;'; + put 'put ''ZVZhbHVlPWl9fX19KSxjMChOb2RlLnByb3RvdHlwZSwiYXBwZW5kQ2hpbGQgaW5zZXJ0QmVmb3JlIHJlbW92ZUNoaWxkIHJlcGxhY2VDaGlsZCBjbG9uZU5vZGUgY29udGFpbnMiLnNwbGl0KCIgIikpLGMwKEhUTUxFbGVtZW50LnByb3RvdHlwZSxbInBhcmVudEVsZW1lbnQiLCJjb250YWlu''@;'; + put 'put ''cyJdKSx0PXtmaXJzdEVsZW1lbnRDaGlsZDp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEwwLmN1cnJlbnROb2RlPXRoaXMsTDAuZmlyc3RDaGlsZCgpfX0sbGFzdEVsZW1lbnRDaGlsZDp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEwwLmN1cnJlbnROb2RlPXRoaXMsTDAubGFzdENoaWxkKCl9fSxj''@;'; + put 'put ''aGlsZHJlbjp7Z2V0OmZ1bmN0aW9uKCl7dmFyIGk9W107TDAuY3VycmVudE5vZGU9dGhpcztmb3IodmFyIG49TDAuZmlyc3RDaGlsZCgpO247KWkucHVzaChuKSxuPUwwLm5leHRTaWJsaW5nKCk7cmV0dXJuIEIwKGkpfX0sY2hpbGRFbGVtZW50Q291bnQ6e2dldDpmdW5jdGlvbigpe3JldHVy''@;'; + put 'put ''biB0aGlzLmNoaWxkcmVuP3RoaXMuY2hpbGRyZW4ubGVuZ3RoOjB9fX0sbHQ/KGMwKEVsZW1lbnQucHJvdG90eXBlLFd0KSxjMChFbGVtZW50LnByb3RvdHlwZSxbInByZXZpb3VzRWxlbWVudFNpYmxpbmciLCJuZXh0RWxlbWVudFNpYmxpbmciLCJpbm5lckhUTUwiLCJjbGFzc05hbWUiXSks''@;'; + put 'put ''YzAoSFRNTEVsZW1lbnQucHJvdG90eXBlLFsiY2hpbGRyZW4iLCJpbm5lckhUTUwiLCJjbGFzc05hbWUiXSkpOihHMihFbGVtZW50LnByb3RvdHlwZSx0KSxHMihFbGVtZW50LnByb3RvdHlwZSx7cHJldmlvdXNFbGVtZW50U2libGluZzp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEwwLmN1cnJl''@;'; + put 'put ''bnROb2RlPXRoaXMsTDAucHJldmlvdXNTaWJsaW5nKCl9fSxuZXh0RWxlbWVudFNpYmxpbmc6e2dldDpmdW5jdGlvbigpe3JldHVybiBMMC5jdXJyZW50Tm9kZT10aGlzLEwwLm5leHRTaWJsaW5nKCl9fSxpbm5lckhUTUw6e2dldDpmdW5jdGlvbigpe3JldHVybiBSdCh0aGlzLFAyKX0sc2V0''@;'; + put 'put ''OmZ1bmN0aW9uKGkpe3ZhciBuPSJ0ZW1wbGF0ZSI9PT10aGlzLmxvY2FsTmFtZT90aGlzLmNvbnRlbnQ6dGhpcztKZShuKTt2YXIgcz10aGlzLmxvY2FsTmFtZXx8ImRpdiI7Zm9yKChzPXRoaXMubmFtZXNwYWNlVVJJJiZ0aGlzLm5hbWVzcGFjZVVSSSE9PVV0Lm5hbWVzcGFjZVVSST9VdC5j''@;'; + put 'put ''cmVhdGVFbGVtZW50TlModGhpcy5uYW1lc3BhY2VVUkkscyk6VXQuY3JlYXRlRWxlbWVudChzKSkuaW5uZXJIVE1MPWksaT0idGVtcGxhdGUiPT09dGhpcy5sb2NhbE5hbWU/cy5jb250ZW50OnM7cz1pLl9fc2hhZHlfbmF0aXZlX2ZpcnN0Q2hpbGQ7KW4uX19zaGFkeV9uYXRpdmVfaW5zZXJ0''@;'; + put 'put ''QmVmb3JlKHMsdm9pZCAwKX19LGNsYXNzTmFtZTp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0QXR0cmlidXRlKCJjbGFzcyIpfHwiIn0sc2V0OmZ1bmN0aW9uKGkpe3RoaXMuc2V0QXR0cmlidXRlKCJjbGFzcyIsaSl9fX0pKSxjMChFbGVtZW50LnByb3RvdHlwZSwic2V0QXR0cmli''@;'; + put 'put ''dXRlIGdldEF0dHJpYnV0ZSBoYXNBdHRyaWJ1dGUgcmVtb3ZlQXR0cmlidXRlIGZvY3VzIGJsdXIiLnNwbGl0KCIgIikpLGMwKEVsZW1lbnQucHJvdG90eXBlLCR0KSxjMChIVE1MRWxlbWVudC5wcm90b3R5cGUsWyJmb2N1cyIsImJsdXIiXSksd2luZG93LkhUTUxUZW1wbGF0ZUVsZW1lbnQm''@;'; + put 'put ''JmMwKHdpbmRvdy5IVE1MVGVtcGxhdGVFbGVtZW50LnByb3RvdHlwZSxbImlubmVySFRNTCJdKSxsdD9jMChEb2N1bWVudEZyYWdtZW50LnByb3RvdHlwZSxXdCk6RzIoRG9jdW1lbnRGcmFnbWVudC5wcm90b3R5cGUsdCksYzAoRG9jdW1lbnRGcmFnbWVudC5wcm90b3R5cGUsJHQpLGx0Pyhj''@;'; + put 'put ''MChEb2N1bWVudC5wcm90b3R5cGUsV3QpLGMwKERvY3VtZW50LnByb3RvdHlwZSxbImFjdGl2ZUVsZW1lbnQiXSkpOkcyKERvY3VtZW50LnByb3RvdHlwZSx0KSxjMChEb2N1bWVudC5wcm90b3R5cGUsWyJpbXBvcnROb2RlIiwiZ2V0RWxlbWVudEJ5SWQiLCJlbGVtZW50RnJvbVBvaW50IixP''@;'; + put 'put ''MCgpXSksYzAoRG9jdW1lbnQucHJvdG90eXBlLCR0KX0oKSxObCgiX19zaGFkeV8iKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZG9jdW1lbnQsIl9hY3RpdmVFbGVtZW50IixwZS5hY3RpdmVFbGVtZW50KSxzMChXaW5kb3cucHJvdG90eXBlLFRsLCJfX3NoYWR5XyIpLHkxLko/eTEuQWEmJnMw''@;'; + put 'put ''KEVsZW1lbnQucHJvdG90eXBlLHhsKTooTmwoKSxmdW5jdGlvbiBMYSgpe2lmKCFRdCYmT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFdmVudC5wcm90b3R5cGUsImlzVHJ1c3RlZCIpKXt2YXIgdD1mdW5jdGlvbigpe3ZhciBpPW5ldyBNb3VzZUV2ZW50KCJjbGljayIse2J1YmJs''@;'; + put 'put ''ZXM6ITAsY2FuY2VsYWJsZTohMCxjb21wb3NlZDohMH0pO3RoaXMuX19zaGFkeV9kaXNwYXRjaEV2ZW50KGkpfTtFbGVtZW50LnByb3RvdHlwZS5jbGljaz9FbGVtZW50LnByb3RvdHlwZS5jbGljaz10OkhUTUxFbGVtZW50LnByb3RvdHlwZS5jbGljayYmKEhUTUxFbGVtZW50LnByb3RvdHlw''@;'; + put 'put ''ZS5jbGljaz10KX19KCkpLGZ1bmN0aW9uIG1hKCl7Zm9yKHZhciB0IGluIG5sKXdpbmRvdy5fX3NoYWR5X25hdGl2ZV9hZGRFdmVudExpc3RlbmVyKHQsZnVuY3Rpb24oaSl7aS5fX3RhcmdldHx8KGllKGkpLHNsKGkpKX0sITApfSgpLHdpbmRvdy5FdmVudD1NYSx3aW5kb3cuQ3VzdG9tRXZl''@;'; + put 'put ''bnQ9WmEsd2luZG93Lk1vdXNlRXZlbnQ9eWEsd2luZG93LlNoYWRvd1Jvb3Q9ZHR9dmFyIGZlPXdpbmRvdy5Eb2N1bWVudC5wcm90b3R5cGUuY3JlYXRlRWxlbWVudCxnZT13aW5kb3cuRG9jdW1lbnQucHJvdG90eXBlLmNyZWF0ZUVsZW1lbnROUyx6YT13aW5kb3cuRG9jdW1lbnQucHJvdG90''@;'; + put 'put ''eXBlLmltcG9ydE5vZGUsVWE9d2luZG93LkRvY3VtZW50LnByb3RvdHlwZS5wcmVwZW5kLFdhPXdpbmRvdy5Eb2N1bWVudC5wcm90b3R5cGUuYXBwZW5kLCRhPXdpbmRvdy5Eb2N1bWVudEZyYWdtZW50LnByb3RvdHlwZS5wcmVwZW5kLHFhPXdpbmRvdy5Eb2N1bWVudEZyYWdtZW50LnByb3Rv''@;'; + put 'put ''dHlwZS5hcHBlbmQsSmw9d2luZG93Lk5vZGUucHJvdG90eXBlLmNsb25lTm9kZSxndD13aW5kb3cuTm9kZS5wcm90b3R5cGUuYXBwZW5kQ2hpbGQsdGk9d2luZG93Lk5vZGUucHJvdG90eXBlLmluc2VydEJlZm9yZSxBZT13aW5kb3cuTm9kZS5wcm90b3R5cGUucmVtb3ZlQ2hpbGQsZWk9d2lu''@;'; + put 'put ''ZG93Lk5vZGUucHJvdG90eXBlLnJlcGxhY2VDaGlsZCx2ZT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHdpbmRvdy5Ob2RlLnByb3RvdHlwZSwidGV4dENvbnRlbnQiKSxsaT13aW5kb3cuRWxlbWVudC5wcm90b3R5cGUuYXR0YWNoU2hhZG93LEhlPU9iamVjdC5nZXRPd25Qcm9w''@;'; + put 'put ''ZXJ0eURlc2NyaXB0b3Iod2luZG93LkVsZW1lbnQucHJvdG90eXBlLCJpbm5lckhUTUwiKSxDZT13aW5kb3cuRWxlbWVudC5wcm90b3R5cGUuZ2V0QXR0cmlidXRlLGlpPXdpbmRvdy5FbGVtZW50LnByb3RvdHlwZS5zZXRBdHRyaWJ1dGUsYWk9d2luZG93LkVsZW1lbnQucHJvdG90eXBlLnJl''@;'; + put 'put ''bW92ZUF0dHJpYnV0ZSxBdD13aW5kb3cuRWxlbWVudC5wcm90b3R5cGUuZ2V0QXR0cmlidXRlTlMscmk9d2luZG93LkVsZW1lbnQucHJvdG90eXBlLnNldEF0dHJpYnV0ZU5TLG5pPXdpbmRvdy5FbGVtZW50LnByb3RvdHlwZS5yZW1vdmVBdHRyaWJ1dGVOUyxjaT13aW5kb3cuRWxlbWVudC5w''@;'; + put 'put ''cm90b3R5cGUuaW5zZXJ0QWRqYWNlbnRFbGVtZW50LG9pPXdpbmRvdy5FbGVtZW50LnByb3RvdHlwZS5pbnNlcnRBZGphY2VudEhUTUwsWWE9d2luZG93LkVsZW1lbnQucHJvdG90eXBlLnByZXBlbmQsS2E9d2luZG93LkVsZW1lbnQucHJvdG90eXBlLmFwcGVuZCxzaT13aW5kb3cuRWxlbWVu''@;'; + put 'put ''dC5wcm90b3R5cGUuYmVmb3JlLGhpPXdpbmRvdy5FbGVtZW50LnByb3RvdHlwZS5hZnRlcixkaT13aW5kb3cuRWxlbWVudC5wcm90b3R5cGUucmVwbGFjZVdpdGgsdWk9d2luZG93LkVsZW1lbnQucHJvdG90eXBlLnJlbW92ZSxYYT13aW5kb3cuSFRNTEVsZW1lbnQsVmU9T2JqZWN0LmdldE93''@;'; + put 'put ''blByb3BlcnR5RGVzY3JpcHRvcih3aW5kb3cuSFRNTEVsZW1lbnQucHJvdG90eXBlLCJpbm5lckhUTUwiKSxwaT13aW5kb3cuSFRNTEVsZW1lbnQucHJvdG90eXBlLmluc2VydEFkamFjZW50RWxlbWVudCxmaT13aW5kb3cuSFRNTEVsZW1lbnQucHJvdG90eXBlLmluc2VydEFkamFjZW50SFRN''@;'; + put 'put ''TCxnaT1uZXcgU2V0O2Z1bmN0aW9uIEFpKHQpe3ZhciBpPWdpLmhhcyh0KTtyZXR1cm4gdD0vXlthLXpdWy4wLTlfYS16XSotWy0uMC05X2Etel0qJC8udGVzdCh0KSwhaSYmdH0iYW5ub3RhdGlvbi14bWwgY29sb3ItcHJvZmlsZSBmb250LWZhY2UgZm9udC1mYWNlLXNyYyBmb250LWZhY2Ut''@;'; + put 'put ''dXJpIGZvbnQtZmFjZS1mb3JtYXQgZm9udC1mYWNlLW5hbWUgbWlzc2luZy1nbHlwaCIuc3BsaXQoIiAiKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3JldHVybiBnaS5hZGQodCl9KTt2YXIgUWE9ZG9jdW1lbnQuY29udGFpbnM/ZG9jdW1lbnQuY29udGFpbnMuYmluZChkb2N1bWVudCk6ZG9jdW1l''@;'; + put 'put ''bnQuZG9jdW1lbnRFbGVtZW50LmNvbnRhaW5zLmJpbmQoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KTtmdW5jdGlvbiByMCh0KXt2YXIgaT10LmlzQ29ubmVjdGVkO2lmKHZvaWQgMCE9PWkpcmV0dXJuIGk7aWYoUWEodCkpcmV0dXJuITA7Zm9yKDt0JiYhKHQuX19DRV9pc0ltcG9ydERvY3Vt''@;'; + put 'put ''ZW50fHx0IGluc3RhbmNlb2YgRG9jdW1lbnQpOyl0PXQucGFyZW50Tm9kZXx8KHdpbmRvdy5TaGFkb3dSb290JiZ0IGluc3RhbmNlb2YgU2hhZG93Um9vdD90Lmhvc3Q6dm9pZCAwKTtyZXR1cm4hKCF0fHwhKHQuX19DRV9pc0ltcG9ydERvY3VtZW50fHx0IGluc3RhbmNlb2YgRG9jdW1lbnQp''@;'; + put 'put ''KX1mdW5jdGlvbiBtZSh0KXt2YXIgaT10LmNoaWxkcmVuO2lmKGkpcmV0dXJuIEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGkpO2ZvcihpPVtdLHQ9dC5maXJzdENoaWxkO3Q7dD10Lm5leHRTaWJsaW5nKXQubm9kZVR5cGU9PT1Ob2RlLkVMRU1FTlRfTk9ERSYmaS5wdXNoKHQpO3JldHVy''@;'; + put 'put ''biBpfWZ1bmN0aW9uIE1lKHQsaSl7Zm9yKDtpJiZpIT09dCYmIWkubmV4dFNpYmxpbmc7KWk9aS5wYXJlbnROb2RlO3JldHVybiBpJiZpIT09dD9pLm5leHRTaWJsaW5nOm51bGx9ZnVuY3Rpb24gWmUodCxpLG4pe2Zvcih2YXIgcz10O3M7KXtpZihzLm5vZGVUeXBlPT09Tm9kZS5FTEVNRU5U''@;'; + put 'put ''X05PREUpe3ZhciBkPXM7aShkKTt2YXIgbT1kLmxvY2FsTmFtZTtpZigibGluayI9PT1tJiYiaW1wb3J0Ij09PWQuZ2V0QXR0cmlidXRlKCJyZWwiKSl7aWYocz1kLmltcG9ydCx2b2lkIDA9PT1uJiYobj1uZXcgU2V0KSxzIGluc3RhbmNlb2YgTm9kZSYmIW4uaGFzKHMpKWZvcihuLmFkZChz''@;'; + put 'put ''KSxzPXMuZmlyc3RDaGlsZDtzO3M9cy5uZXh0U2libGluZylaZShzLGksbik7cz1NZSh0LGQpO2NvbnRpbnVlfWlmKCJ0ZW1wbGF0ZSI9PT1tKXtzPU1lKHQsZCk7Y29udGludWV9aWYoZD1kLl9fQ0Vfc2hhZG93Um9vdClmb3IoZD1kLmZpcnN0Q2hpbGQ7ZDtkPWQubmV4dFNpYmxpbmcpWmUo''@;'; + put 'put ''ZCxpLG4pfXM9cy5maXJzdENoaWxkP3MuZmlyc3RDaGlsZDpNZSh0LHMpfX1mdW5jdGlvbiB2dCgpe3ZhciB0PSEobnVsbD09ajB8fCFqMC5ub0RvY3VtZW50Q29uc3RydWN0aW9uT2JzZXJ2ZXIpLGk9IShudWxsPT1qMHx8IWowLnNoYWR5RG9tRmFzdFdhbGspO3RoaXMuY2E9W10sdGhpcy5n''@;'; + put 'put ''PVtdLHRoaXMuVz0hMSx0aGlzLnNoYWR5RG9tRmFzdFdhbGs9aSx0aGlzLm5iPSF0fWZ1bmN0aW9uIFUyKHQsaSxuLHMpe3ZhciBkPXdpbmRvdy5TaGFkeURPTTtpZih0LnNoYWR5RG9tRmFzdFdhbGsmJmQmJmQuaW5Vc2Upe2lmKGkubm9kZVR5cGU9PT1Ob2RlLkVMRU1FTlRfTk9ERSYmbihp''@;'; + put 'put ''KSxpLnF1ZXJ5U2VsZWN0b3JBbGwpZm9yKHQ9ZC5uYXRpdmVNZXRob2RzLnF1ZXJ5U2VsZWN0b3JBbGwuY2FsbChpLCIqIiksaT0wO2k8dC5sZW5ndGg7aSsrKW4odFtpXSl9ZWxzZSBaZShpLG4scyl9ZnVuY3Rpb24geWUodCxpKXt0LlcmJlUyKHQsaSxmdW5jdGlvbihuKXtyZXR1cm4gWjIo''@;'; + put 'put ''dCxuKX0pfWZ1bmN0aW9uIFoyKHQsaSl7aWYodC5XJiYhaS5fX0NFX3BhdGNoZWQpe2kuX19DRV9wYXRjaGVkPSEwO2Zvcih2YXIgbj0wO248dC5jYS5sZW5ndGg7bisrKXQuY2Fbbl0oaSk7Zm9yKG49MDtuPHQuZy5sZW5ndGg7bisrKXQuZ1tuXShpKX19ZnVuY3Rpb24gRzAodCxpKXt2YXIg''@;'; + put 'put ''bj1bXTtmb3IoVTIodCxpLGZ1bmN0aW9uKGQpe3JldHVybiBuLnB1c2goZCl9KSxpPTA7aTxuLmxlbmd0aDtpKyspe3ZhciBzPW5baV07MT09PXMuX19DRV9zdGF0ZT90LmNvbm5lY3RlZENhbGxiYWNrKHMpOkh0KHQscyl9fWZ1bmN0aW9uIFMwKHQsaSl7dmFyIG49W107Zm9yKFUyKHQsaSxm''@;'; + put 'put ''dW5jdGlvbihkKXtyZXR1cm4gbi5wdXNoKGQpfSksaT0wO2k8bi5sZW5ndGg7aSsrKXt2YXIgcz1uW2ldOzE9PT1zLl9fQ0Vfc3RhdGUmJnQuZGlzY29ubmVjdGVkQ2FsbGJhY2socyl9fWZ1bmN0aW9uIFkwKHQsaSxuKXt2YXIgcz0obj12b2lkIDA9PT1uP3t9Om4pLm9iLGQ9bi51cGdyYWRl''@;'; + put 'put ''fHxmdW5jdGlvbihMKXtyZXR1cm4gSHQodCxMKX0sbT1bXTtmb3IoVTIodCxpLGZ1bmN0aW9uKEwpe2lmKHQuVyYmWjIodCxMKSwibGluayI9PT1MLmxvY2FsTmFtZSYmImltcG9ydCI9PT1MLmdldEF0dHJpYnV0ZSgicmVsIikpe3ZhciBGPUwuaW1wb3J0O0YgaW5zdGFuY2VvZiBOb2RlJiYo''@;'; + put 'put ''Ri5fX0NFX2lzSW1wb3J0RG9jdW1lbnQ9ITAsRi5fX0NFX3JlZ2lzdHJ5PWRvY3VtZW50Ll9fQ0VfcmVnaXN0cnkpLEYmJiJjb21wbGV0ZSI9PT1GLnJlYWR5U3RhdGU/Ri5fX0NFX2RvY3VtZW50TG9hZEhhbmRsZWQ9ITA6TC5hZGRFdmVudExpc3RlbmVyKCJsb2FkIixmdW5jdGlvbigpe3Zh''@;'; + put 'put ''ciBHPUwuaW1wb3J0O2lmKCFHLl9fQ0VfZG9jdW1lbnRMb2FkSGFuZGxlZCl7Ry5fX0NFX2RvY3VtZW50TG9hZEhhbmRsZWQ9ITA7dmFyIFU9bmV3IFNldDtzJiYocy5mb3JFYWNoKGZ1bmN0aW9uKEspe3JldHVybiBVLmFkZChLKX0pLFUuZGVsZXRlKEcpKSxZMCh0LEcse29iOlUsdXBncmFk''@;'; + put 'put ''ZTpkfSl9fSl9ZWxzZSBtLnB1c2goTCl9LHMpLGk9MDtpPG0ubGVuZ3RoO2krKylkKG1baV0pfWZ1bmN0aW9uIEh0KHQsaSl7dHJ5e3ZhciBuPWkub3duZXJEb2N1bWVudCxzPW4uX19DRV9yZWdpc3RyeSxkPXMmJihuLmRlZmF1bHRWaWV3fHxuLl9fQ0VfaXNJbXBvcnREb2N1bWVudCk/Q3Qo''@;'; + put 'put ''cyxpLmxvY2FsTmFtZSk6dm9pZCAwO2lmKGQmJnZvaWQgMD09PWkuX19DRV9zdGF0ZSl7ZC5jb25zdHJ1Y3Rpb25TdGFjay5wdXNoKGkpO3RyeXt0cnl7aWYobmV3IGQuY29uc3RydWN0b3JGdW5jdGlvbiE9PWkpdGhyb3cgRXJyb3IoIlRoZSBjdXN0b20gZWxlbWVudCBjb25zdHJ1Y3RvciBk''@;'; + put 'put ''aWQgbm90IHByb2R1Y2UgdGhlIGVsZW1lbnQgYmVpbmcgdXBncmFkZWQuIil9ZmluYWxseXtkLmNvbnN0cnVjdGlvblN0YWNrLnBvcCgpfX1jYXRjaChHKXt0aHJvdyBpLl9fQ0Vfc3RhdGU9MixHfWlmKGkuX19DRV9zdGF0ZT0xLGkuX19DRV9kZWZpbml0aW9uPWQsZC5hdHRyaWJ1dGVDaGFu''@;'; + put 'put ''Z2VkQ2FsbGJhY2smJmkuaGFzQXR0cmlidXRlcygpKXt2YXIgbT1kLm9ic2VydmVkQXR0cmlidXRlcztmb3IoZD0wO2Q8bS5sZW5ndGg7ZCsrKXt2YXIgTD1tW2RdLEY9aS5nZXRBdHRyaWJ1dGUoTCk7bnVsbCE9PUYmJnQuYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrKGksTCxudWxsLEYsbnVs''@;'; + put 'put ''bCl9fXIwKGkpJiZ0LmNvbm5lY3RlZENhbGxiYWNrKGkpfX1jYXRjaChHKXt5MihHKX19ZnVuY3Rpb24gdmkodCxpLG4scyl7dmFyIGQ9aS5fX0NFX3JlZ2lzdHJ5O2lmKGQmJihudWxsPT09c3x8Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPT09cykmJihkPUN0KGQsbikpKXRyeXt2''@;'; + put 'put ''YXIgbT1uZXcgZC5jb25zdHJ1Y3RvckZ1bmN0aW9uO2lmKHZvaWQgMD09PW0uX19DRV9zdGF0ZXx8dm9pZCAwPT09bS5fX0NFX2RlZmluaXRpb24pdGhyb3cgRXJyb3IoIkZhaWxlZCB0byBjb25zdHJ1Y3QgJyIrbisiJzogVGhlIHJldHVybmVkIHZhbHVlIHdhcyBub3QgY29uc3RydWN0ZWQg''@;'; + put 'put ''d2l0aCB0aGUgSFRNTEVsZW1lbnQgY29uc3RydWN0b3IuIik7aWYoImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIT09bS5uYW1lc3BhY2VVUkkpdGhyb3cgRXJyb3IoIkZhaWxlZCB0byBjb25zdHJ1Y3QgJyIrbisiJzogVGhlIGNvbnN0cnVjdGVkIGVsZW1lbnQncyBuYW1lc3BhY2Ug''@;'; + put 'put ''bXVzdCBiZSB0aGUgSFRNTCBuYW1lc3BhY2UuIik7aWYobS5oYXNBdHRyaWJ1dGVzKCkpdGhyb3cgRXJyb3IoIkZhaWxlZCB0byBjb25zdHJ1Y3QgJyIrbisiJzogVGhlIGNvbnN0cnVjdGVkIGVsZW1lbnQgbXVzdCBub3QgaGF2ZSBhbnkgYXR0cmlidXRlcy4iKTtpZihudWxsIT09bS5maXJz''@;'; + put 'put ''dENoaWxkKXRocm93IEVycm9yKCJGYWlsZWQgdG8gY29uc3RydWN0ICciK24rIic6IFRoZSBjb25zdHJ1Y3RlZCBlbGVtZW50IG11c3Qgbm90IGhhdmUgYW55IGNoaWxkcmVuLiIpO2lmKG51bGwhPT1tLnBhcmVudE5vZGUpdGhyb3cgRXJyb3IoIkZhaWxlZCB0byBjb25zdHJ1Y3QgJyIrbisi''@;'; + put 'put ''JzogVGhlIGNvbnN0cnVjdGVkIGVsZW1lbnQgbXVzdCBub3QgaGF2ZSBhIHBhcmVudCBub2RlLiIpO2lmKG0ub3duZXJEb2N1bWVudCE9PWkpdGhyb3cgRXJyb3IoIkZhaWxlZCB0byBjb25zdHJ1Y3QgJyIrbisiJzogVGhlIGNvbnN0cnVjdGVkIGVsZW1lbnQncyBvd25lciBkb2N1bWVudCBp''@;'; + put 'put ''cyBpbmNvcnJlY3QuIik7aWYobS5sb2NhbE5hbWUhPT1uKXRocm93IEVycm9yKCJGYWlsZWQgdG8gY29uc3RydWN0ICciK24rIic6IFRoZSBjb25zdHJ1Y3RlZCBlbGVtZW50J3MgbG9jYWwgbmFtZSBpcyBpbmNvcnJlY3QuIik7cmV0dXJuIG19Y2F0Y2goTCl7cmV0dXJuIHkyKEwpLGk9bnVs''@;'; + put 'put ''bD09PXM/ZmUuY2FsbChpLG4pOmdlLmNhbGwoaSxzLG4pLE9iamVjdC5zZXRQcm90b3R5cGVPZihpLEhUTUxVbmtub3duRWxlbWVudC5wcm90b3R5cGUpLGkuX19DRV9zdGF0ZT0yLGkuX19DRV9kZWZpbml0aW9uPXZvaWQgMCxaMih0LGkpLGl9cmV0dXJuIFoyKHQsaT1udWxsPT09cz9mZS5j''@;'; + put 'put ''YWxsKGksbik6Z2UuY2FsbChpLHMsbikpLGl9ZnVuY3Rpb24geTIodCl7dmFyIGk9dC5tZXNzYWdlLG49dC5zb3VyY2VVUkx8fHQuZmlsZU5hbWV8fCIiLHM9dC5saW5lfHx0LmxpbmVOdW1iZXJ8fDAsbT12b2lkIDA7dm9pZCAwPT09RXJyb3JFdmVudC5wcm90b3R5cGUuaW5pdEVycm9yRXZl''@;'; + put 'put ''bnQ/bT1uZXcgRXJyb3JFdmVudCgiZXJyb3IiLHtjYW5jZWxhYmxlOiEwLG1lc3NhZ2U6aSxmaWxlbmFtZTpuLGxpbmVubzpzLGNvbG5vOnQuY29sdW1ufHx0LmNvbHVtbk51bWJlcnx8MCxlcnJvcjp0fSk6KChtPWRvY3VtZW50LmNyZWF0ZUV2ZW50KCJFcnJvckV2ZW50IikpLmluaXRFcnJv''@;'; + put 'put ''ckV2ZW50KCJlcnJvciIsITEsITAsaSxuLHMpLG0ucHJldmVudERlZmF1bHQ9ZnVuY3Rpb24oKXtPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywiZGVmYXVsdFByZXZlbnRlZCIse2NvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4hMH19KX0pLHZvaWQgMD09PW0uZXJyb3Im''@;'; + put 'put ''Jk9iamVjdC5kZWZpbmVQcm9wZXJ0eShtLCJlcnJvciIse2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB0fX0pLHdpbmRvdy5kaXNwYXRjaEV2ZW50KG0pLG0uZGVmYXVsdFByZXZlbnRlZHx8Y29uc29sZS5lcnJvcih0KX1mdW5jdGlvbiBIaSgp''@;'; + put 'put ''e3ZhciB0PXRoaXM7dGhpcy5JPXZvaWQgMCx0aGlzLkhhPW5ldyBQcm9taXNlKGZ1bmN0aW9uKGkpe3QuZz1pfSl9ZnVuY3Rpb24gQ2kodCl7dmFyIGk9ZG9jdW1lbnQ7dGhpcy5YPXZvaWQgMCx0aGlzLlM9dCx0aGlzLmc9aSxZMCh0aGlzLlMsdGhpcy5nKSwibG9hZGluZyI9PT10aGlzLmcu''@;'; + put 'put ''cmVhZHlTdGF0ZSYmKHRoaXMuWD1uZXcgTXV0YXRpb25PYnNlcnZlcih0aGlzLmguYmluZCh0aGlzKSksdGhpcy5YLm9ic2VydmUodGhpcy5nLHtjaGlsZExpc3Q6ITAsc3VidHJlZTohMH0pKX1mdW5jdGlvbiBWaSh0KXt0LlgmJnQuWC5kaXNjb25uZWN0KCl9ZnVuY3Rpb24gdjAodCl7dGhp''@;'; + put 'put ''cy5rYT1uZXcgTWFwLHRoaXMubGE9bmV3IE1hcCx0aGlzLkNhPW5ldyBNYXAsdGhpcy50YT0hMSx0aGlzLndhPW5ldyBNYXAsdGhpcy5qYT1mdW5jdGlvbihpKXtyZXR1cm4gaSgpfSx0aGlzLlY9ITEsdGhpcy5tYT1bXSx0aGlzLlM9dCx0aGlzLkRhPXQubmI/bmV3IENpKHQpOnZvaWQgMH1m''@;'; + put 'put ''dW5jdGlvbiBtaSh0LGkpe2lmKCFBaShpKSl0aHJvdyBuZXcgU3ludGF4RXJyb3IoIlRoZSBlbGVtZW50IG5hbWUgJyIraSsiJyBpcyBub3QgdmFsaWQuIik7aWYoQ3QodCxpKSl0aHJvdyBFcnJvcigiQSBjdXN0b20gZWxlbWVudCB3aXRoIG5hbWUgJyIraSsiJyBoYXMgYWxyZWFkeSBiZWVu''@;'; + put 'put ''IGRlZmluZWQuIik7aWYodC50YSl0aHJvdyBFcnJvcigiQSBjdXN0b20gZWxlbWVudCBpcyBhbHJlYWR5IGJlaW5nIGRlZmluZWQuIil9ZnVuY3Rpb24gTWkodCxpLG4pe3ZhciBzO3QudGE9ITA7dHJ5e3ZhciBkPW4ucHJvdG90eXBlO2lmKCEoZCBpbnN0YW5jZW9mIE9iamVjdCkpdGhyb3cg''@;'; + put 'put ''bmV3IFR5cGVFcnJvcigiVGhlIGN1c3RvbSBlbGVtZW50IGNvbnN0cnVjdG9yJ3MgcHJvdG90eXBlIGlzIG5vdCBhbiBvYmplY3QuIik7dmFyIG09ZnVuY3Rpb24oSyl7dmFyIEgxPWRbS107aWYodm9pZCAwIT09SDEmJiEoSDEgaW5zdGFuY2VvZiBGdW5jdGlvbikpdGhyb3cgRXJyb3IoIlRo''@;'; + put 'put ''ZSAnIitLKyInIGNhbGxiYWNrIG11c3QgYmUgYSBmdW5jdGlvbi4iKTtyZXR1cm4gSDF9LEw9bSgiY29ubmVjdGVkQ2FsbGJhY2siKSxGPW0oImRpc2Nvbm5lY3RlZENhbGxiYWNrIiksRz1tKCJhZG9wdGVkQ2FsbGJhY2siKSxVPShzPW0oImF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayIpKSYm''@;'; + put 'put ''bi5vYnNlcnZlZEF0dHJpYnV0ZXN8fFtdfWNhdGNoKEspe3Rocm93IEt9ZmluYWxseXt0LnRhPSExfXJldHVybiB0LmxhLnNldChpLG49e2xvY2FsTmFtZTppLGNvbnN0cnVjdG9yRnVuY3Rpb246bixjb25uZWN0ZWRDYWxsYmFjazpMLGRpc2Nvbm5lY3RlZENhbGxiYWNrOkYsYWRvcHRlZENh''@;'; + put 'put ''bGxiYWNrOkcsYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrOnMsb2JzZXJ2ZWRBdHRyaWJ1dGVzOlUsY29uc3RydWN0aW9uU3RhY2s6W119KSx0LkNhLnNldChuLmNvbnN0cnVjdG9yRnVuY3Rpb24sbiksbn1mdW5jdGlvbiBaaSh0KXtpZighMSE9PXQuVil7dC5WPSExO2Zvcih2YXIgaT1bXSxu''@;'; + put 'put ''PXQubWEscz1uZXcgTWFwLGQ9MDtkPG4ubGVuZ3RoO2QrKylzLnNldChuW2RdLFtdKTtmb3IoWTAodC5TLGRvY3VtZW50LHt1cGdyYWRlOmZ1bmN0aW9uKEcpe2lmKHZvaWQgMD09PUcuX19DRV9zdGF0ZSl7dmFyIFU9Ry5sb2NhbE5hbWUsSz1zLmdldChVKTtLP0sucHVzaChHKTp0LmxhLmhh''@;'; + put 'put ''cyhVKSYmaS5wdXNoKEcpfX19KSxkPTA7ZDxpLmxlbmd0aDtkKyspSHQodC5TLGlbZF0pO2ZvcihkPTA7ZDxuLmxlbmd0aDtkKyspe2Zvcih2YXIgbT1uW2RdLEw9cy5nZXQobSksRj0wO0Y8TC5sZW5ndGg7RisrKUh0KHQuUyxMW0ZdKTsobT10LndhLmdldChtKSkmJm0ucmVzb2x2ZSh2b2lk''@;'; + put 'put ''IDApfW4ubGVuZ3RoPTB9fWZ1bmN0aW9uIEN0KHQsaSl7dmFyIG49dC5sYS5nZXQoaSk7aWYobilyZXR1cm4gbjtpZihuPXQua2EuZ2V0KGkpKXt0LmthLmRlbGV0ZShpKTt0cnl7cmV0dXJuIE1pKHQsaSxuKCkpfWNhdGNoKHMpe3kyKHMpfX19ZnVuY3Rpb24gTGUodCxpLG4pe2Z1bmN0aW9u''@;'; + put 'put ''IHMoZCl7cmV0dXJuIGZ1bmN0aW9uKG0pe2Zvcih2YXIgTD1bXSxGPTA7Rjxhcmd1bWVudHMubGVuZ3RoOysrRilMW0ZdPWFyZ3VtZW50c1tGXTtGPVtdO2Zvcih2YXIgRz1bXSxVPTA7VTxMLmxlbmd0aDtVKyspe3ZhciBLPUxbVV07aWYoSyBpbnN0YW5jZW9mIEVsZW1lbnQmJnIwKEspJiZH''@;'; + put 'put ''LnB1c2goSyksSyBpbnN0YW5jZW9mIERvY3VtZW50RnJhZ21lbnQpZm9yKEs9Sy5maXJzdENoaWxkO0s7Sz1LLm5leHRTaWJsaW5nKUYucHVzaChLKTtlbHNlIEYucHVzaChLKX1mb3IoZC5hcHBseSh0aGlzLEwpLEw9MDtMPEcubGVuZ3RoO0wrKylTMCh0LEdbTF0pO2lmKHIwKHRoaXMpKWZv''@;'; + put 'put ''cihMPTA7TDxGLmxlbmd0aDtMKyspKEc9RltMXSlpbnN0YW5jZW9mIEVsZW1lbnQmJkcwKHQsRyl9fXZvaWQgMCE9PW4ucHJlcGVuZCYmKGkucHJlcGVuZD1zKG4ucHJlcGVuZCkpLHZvaWQgMCE9PW4uYXBwZW5kJiYoaS5hcHBlbmQ9cyhuLmFwcGVuZCkpfXZ0LnByb3RvdHlwZS5jb25uZWN0''@;'; + put 'put ''ZWRDYWxsYmFjaz1mdW5jdGlvbih0KXt2YXIgaT10Ll9fQ0VfZGVmaW5pdGlvbjtpZihpLmNvbm5lY3RlZENhbGxiYWNrKXRyeXtpLmNvbm5lY3RlZENhbGxiYWNrLmNhbGwodCl9Y2F0Y2gobil7eTIobil9fSx2dC5wcm90b3R5cGUuZGlzY29ubmVjdGVkQ2FsbGJhY2s9ZnVuY3Rpb24odCl7''@;'; + put 'put ''dmFyIGk9dC5fX0NFX2RlZmluaXRpb247aWYoaS5kaXNjb25uZWN0ZWRDYWxsYmFjayl0cnl7aS5kaXNjb25uZWN0ZWRDYWxsYmFjay5jYWxsKHQpfWNhdGNoKG4pe3kyKG4pfX0sdnQucHJvdG90eXBlLmF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjaz1mdW5jdGlvbih0LGksbixzLGQpe3ZhciBt''@;'; + put 'put ''PXQuX19DRV9kZWZpbml0aW9uO2lmKG0uYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrJiYtMTxtLm9ic2VydmVkQXR0cmlidXRlcy5pbmRleE9mKGkpKXRyeXttLmF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjay5jYWxsKHQsaSxuLHMsZCl9Y2F0Y2goTCl7eTIoTCl9fSxIaS5wcm90b3R5cGUucmVz''@;'; + put 'put ''b2x2ZT1mdW5jdGlvbih0KXtpZih0aGlzLkkpdGhyb3cgRXJyb3IoIkFscmVhZHkgcmVzb2x2ZWQuIik7dGhpcy5JPXQsdGhpcy5nKHQpfSxDaS5wcm90b3R5cGUuaD1mdW5jdGlvbih0KXt2YXIgaT10aGlzLmcucmVhZHlTdGF0ZTtmb3IoImludGVyYWN0aXZlIiE9PWkmJiJjb21wbGV0ZSIh''@;'; + put 'put ''PT1pfHxWaSh0aGlzKSxpPTA7aTx0Lmxlbmd0aDtpKyspZm9yKHZhciBuPXRbaV0uYWRkZWROb2RlcyxzPTA7czxuLmxlbmd0aDtzKyspWTAodGhpcy5TLG5bc10pfSwoWD12MC5wcm90b3R5cGUpLmViPWZ1bmN0aW9uKHQsaSl7dmFyIG49dGhpcztpZighKGkgaW5zdGFuY2VvZiBGdW5jdGlv''@;'; + put 'put ''bikpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ3VzdG9tIGVsZW1lbnQgY29uc3RydWN0b3IgZ2V0dGVycyBtdXN0IGJlIGZ1bmN0aW9ucy4iKTttaSh0aGlzLHQpLHRoaXMua2Euc2V0KHQsaSksdGhpcy5tYS5wdXNoKHQpLHRoaXMuVnx8KHRoaXMuVj0hMCx0aGlzLmphKGZ1bmN0aW9uKCl7cmV0''@;'; + put 'put ''dXJuIFppKG4pfSkpfSxYLmRlZmluZT1mdW5jdGlvbih0LGkpe3ZhciBuPXRoaXM7aWYoIShpIGluc3RhbmNlb2YgRnVuY3Rpb24pKXRocm93IG5ldyBUeXBlRXJyb3IoIkN1c3RvbSBlbGVtZW50IGNvbnN0cnVjdG9ycyBtdXN0IGJlIGZ1bmN0aW9ucy4iKTttaSh0aGlzLHQpLE1pKHRoaXMs''@;'; + put 'put ''dCxpKSx0aGlzLm1hLnB1c2godCksdGhpcy5WfHwodGhpcy5WPSEwLHRoaXMuamEoZnVuY3Rpb24oKXtyZXR1cm4gWmkobil9KSl9LFgudXBncmFkZT1mdW5jdGlvbih0KXtZMCh0aGlzLlMsdCl9LFguZ2V0PWZ1bmN0aW9uKHQpe2lmKHQ9Q3QodGhpcyx0KSlyZXR1cm4gdC5jb25zdHJ1Y3Rv''@;'; + put 'put ''ckZ1bmN0aW9ufSxYLndoZW5EZWZpbmVkPWZ1bmN0aW9uKHQpe2lmKCFBaSh0KSlyZXR1cm4gUHJvbWlzZS5yZWplY3QobmV3IFN5bnRheEVycm9yKCInIit0KyInIGlzIG5vdCBhIHZhbGlkIGN1c3RvbSBlbGVtZW50IG5hbWUuIikpO3ZhciBpPXRoaXMud2EuZ2V0KHQpO2lmKGkpcmV0dXJu''@;'; + put 'put ''IGkuSGE7aT1uZXcgSGksdGhpcy53YS5zZXQodCxpKTt2YXIgbj10aGlzLmxhLmhhcyh0KXx8dGhpcy5rYS5oYXModCk7cmV0dXJuIHQ9LTE9PT10aGlzLm1hLmluZGV4T2YodCksbiYmdCYmaS5yZXNvbHZlKHZvaWQgMCksaS5IYX0sWC5wb2x5ZmlsbFdyYXBGbHVzaENhbGxiYWNrPWZ1bmN0''@;'; + put 'put ''aW9uKHQpe3RoaXMuRGEmJlZpKHRoaXMuRGEpO3ZhciBpPXRoaXMuamE7dGhpcy5qYT1mdW5jdGlvbihuKXtyZXR1cm4gdChmdW5jdGlvbigpe3JldHVybiBpKG4pfSl9fSx3aW5kb3cuQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5PXYwLHYwLnByb3RvdHlwZS5kZWZpbmU9djAucHJvdG90eXBlLmRl''@;'; + put 'put ''ZmluZSx2MC5wcm90b3R5cGUudXBncmFkZT12MC5wcm90b3R5cGUudXBncmFkZSx2MC5wcm90b3R5cGUuZ2V0PXYwLnByb3RvdHlwZS5nZXQsdjAucHJvdG90eXBlLndoZW5EZWZpbmVkPXYwLnByb3RvdHlwZS53aGVuRGVmaW5lZCx2MC5wcm90b3R5cGUucG9seWZpbGxEZWZpbmVMYXp5PXYw''@;'; + put 'put ''LnByb3RvdHlwZS5lYix2MC5wcm90b3R5cGUucG9seWZpbGxXcmFwRmx1c2hDYWxsYmFjaz12MC5wcm90b3R5cGUucG9seWZpbGxXcmFwRmx1c2hDYWxsYmFjazt2YXIgeWk9e30sajA9d2luZG93LmN1c3RvbUVsZW1lbnRzO2Z1bmN0aW9uIExpKCl7dmFyIHQ9bmV3IHZ0OyhmdW5jdGlvbiBh''@;'; + put 'put ''cih0KXtmdW5jdGlvbiBpKCl7dmFyIG49dGhpcy5jb25zdHJ1Y3RvcixzPWRvY3VtZW50Ll9fQ0VfcmVnaXN0cnkuQ2EuZ2V0KG4pO2lmKCFzKXRocm93IEVycm9yKCJGYWlsZWQgdG8gY29uc3RydWN0IGEgY3VzdG9tIGVsZW1lbnQ6IFRoZSBjb25zdHJ1Y3RvciB3YXMgbm90IHJlZ2lzdGVy''@;'; + put 'put ''ZWQgd2l0aCBgY3VzdG9tRWxlbWVudHNgLiIpO3ZhciBkPXMuY29uc3RydWN0aW9uU3RhY2s7aWYoMD09PWQubGVuZ3RoKXJldHVybiBkPWZlLmNhbGwoZG9jdW1lbnQscy5sb2NhbE5hbWUpLE9iamVjdC5zZXRQcm90b3R5cGVPZihkLG4ucHJvdG90eXBlKSxkLl9fQ0Vfc3RhdGU9MSxkLl9f''@;'; + put 'put ''Q0VfZGVmaW5pdGlvbj1zLFoyKHQsZCksZDt2YXIgbT1kLmxlbmd0aC0xLEw9ZFttXTtpZihMPT09eWkpdGhyb3cgRXJyb3IoIkZhaWxlZCB0byBjb25zdHJ1Y3QgJyIrcy5sb2NhbE5hbWUrIic6IFRoaXMgZWxlbWVudCB3YXMgYWxyZWFkeSBjb25zdHJ1Y3RlZC4iKTtyZXR1cm4gZFttXT15''@;'; + put 'put ''aSxPYmplY3Quc2V0UHJvdG90eXBlT2YoTCxuLnByb3RvdHlwZSksWjIodCxMKSxMfWkucHJvdG90eXBlPVhhLnByb3RvdHlwZSxPYmplY3QuZGVmaW5lUHJvcGVydHkoSFRNTEVsZW1lbnQucHJvdG90eXBlLCJjb25zdHJ1Y3RvciIse3dyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCxlbnVt''@;'; + put 'put ''ZXJhYmxlOiExLHZhbHVlOml9KSx3aW5kb3cuSFRNTEVsZW1lbnQ9aX0pKHQpLGZ1bmN0aW9uIGVyKHQpe0RvY3VtZW50LnByb3RvdHlwZS5jcmVhdGVFbGVtZW50PWZ1bmN0aW9uKGkpe3JldHVybiB2aSh0LHRoaXMsaSxudWxsKX0sRG9jdW1lbnQucHJvdG90eXBlLmltcG9ydE5vZGU9ZnVu''@;'; + put 'put ''Y3Rpb24oaSxuKXtyZXR1cm4gaT16YS5jYWxsKHRoaXMsaSwhIW4pLHRoaXMuX19DRV9yZWdpc3RyeT9ZMCh0LGkpOnllKHQsaSksaX0sRG9jdW1lbnQucHJvdG90eXBlLmNyZWF0ZUVsZW1lbnROUz1mdW5jdGlvbihpLG4pe3JldHVybiB2aSh0LHRoaXMsbixpKX0sTGUodCxEb2N1bWVudC5w''@;'; + put 'put ''cm90b3R5cGUse3ByZXBlbmQ6VWEsYXBwZW5kOldhfSl9KHQpLExlKHQsRG9jdW1lbnRGcmFnbWVudC5wcm90b3R5cGUse3ByZXBlbmQ6JGEsYXBwZW5kOnFhfSksZnVuY3Rpb24gcnIodCl7ZnVuY3Rpb24gaShuLHMpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCJ0ZXh0Q29udGVudCIse2Vu''@;'; + put 'put ''dW1lcmFibGU6cy5lbnVtZXJhYmxlLGNvbmZpZ3VyYWJsZTohMCxnZXQ6cy5nZXQsc2V0OmZ1bmN0aW9uKGQpe2lmKHRoaXMubm9kZVR5cGU9PT1Ob2RlLlRFWFRfTk9ERSlzLnNldC5jYWxsKHRoaXMsZCk7ZWxzZXt2YXIgbT12b2lkIDA7aWYodGhpcy5maXJzdENoaWxkKXt2YXIgTD10aGlz''@;'; + put 'put ''LmNoaWxkTm9kZXMsRj1MLmxlbmd0aDtpZigwPEYmJnIwKHRoaXMpKXttPUFycmF5KEYpO2Zvcih2YXIgRz0wO0c8RjtHKyspbVtHXT1MW0ddfX1pZihzLnNldC5jYWxsKHRoaXMsZCksbSlmb3IoZD0wO2Q8bS5sZW5ndGg7ZCsrKVMwKHQsbVtkXSl9fX0pfU5vZGUucHJvdG90eXBlLmluc2Vy''@;'; + put 'put ''dEJlZm9yZT1mdW5jdGlvbihuLHMpe2lmKG4gaW5zdGFuY2VvZiBEb2N1bWVudEZyYWdtZW50KXt2YXIgZD1tZShuKTtpZihuPXRpLmNhbGwodGhpcyxuLHMpLHIwKHRoaXMpKWZvcihzPTA7czxkLmxlbmd0aDtzKyspRzAodCxkW3NdKTtyZXR1cm4gbn1yZXR1cm4gZD1uIGluc3RhbmNlb2Yg''@;'; + put 'put ''RWxlbWVudCYmcjAobikscz10aS5jYWxsKHRoaXMsbixzKSxkJiZTMCh0LG4pLHIwKHRoaXMpJiZHMCh0LG4pLHN9LE5vZGUucHJvdG90eXBlLmFwcGVuZENoaWxkPWZ1bmN0aW9uKG4pe2lmKG4gaW5zdGFuY2VvZiBEb2N1bWVudEZyYWdtZW50KXt2YXIgcz1tZShuKTtpZihuPWd0LmNhbGwo''@;'; + put 'put ''dGhpcyxuKSxyMCh0aGlzKSlmb3IodmFyIGQ9MDtkPHMubGVuZ3RoO2QrKylHMCh0LHNbZF0pO3JldHVybiBufXJldHVybiBzPW4gaW5zdGFuY2VvZiBFbGVtZW50JiZyMChuKSxkPWd0LmNhbGwodGhpcyxuKSxzJiZTMCh0LG4pLHIwKHRoaXMpJiZHMCh0LG4pLGR9LE5vZGUucHJvdG90eXBl''@;'; + put 'put ''LmNsb25lTm9kZT1mdW5jdGlvbihuKXtyZXR1cm4gbj1KbC5jYWxsKHRoaXMsISFuKSx0aGlzLm93bmVyRG9jdW1lbnQuX19DRV9yZWdpc3RyeT9ZMCh0LG4pOnllKHQsbiksbn0sTm9kZS5wcm90b3R5cGUucmVtb3ZlQ2hpbGQ9ZnVuY3Rpb24obil7dmFyIHM9biBpbnN0YW5jZW9mIEVsZW1l''@;'; + put 'put ''bnQmJnIwKG4pLGQ9QWUuY2FsbCh0aGlzLG4pO3JldHVybiBzJiZTMCh0LG4pLGR9LE5vZGUucHJvdG90eXBlLnJlcGxhY2VDaGlsZD1mdW5jdGlvbihuLHMpe2lmKG4gaW5zdGFuY2VvZiBEb2N1bWVudEZyYWdtZW50KXt2YXIgZD1tZShuKTtpZihuPWVpLmNhbGwodGhpcyxuLHMpLHIwKHRo''@;'; + put 'put ''aXMpKWZvcihTMCh0LHMpLHM9MDtzPGQubGVuZ3RoO3MrKylHMCh0LGRbc10pO3JldHVybiBufWQ9biBpbnN0YW5jZW9mIEVsZW1lbnQmJnIwKG4pO3ZhciBtPWVpLmNhbGwodGhpcyxuLHMpLEw9cjAodGhpcyk7cmV0dXJuIEwmJlMwKHQscyksZCYmUzAodCxuKSxMJiZHMCh0LG4pLG19LHZl''@;'; + put 'put ''JiZ2ZS5nZXQ/aShOb2RlLnByb3RvdHlwZSx2ZSk6ZnVuY3Rpb24gSmEodCxpKXt0Llc9ITAsdC5jYS5wdXNoKGkpfSh0LGZ1bmN0aW9uKG4pe2kobix7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7Zm9yKHZhciBzPVtdLGQ9dGhpcy5maXJzdENoaWxkO2Q7''@;'; + put 'put ''ZD1kLm5leHRTaWJsaW5nKWQubm9kZVR5cGUhPT1Ob2RlLkNPTU1FTlRfTk9ERSYmcy5wdXNoKGQudGV4dENvbnRlbnQpO3JldHVybiBzLmpvaW4oIiIpfSxzZXQ6ZnVuY3Rpb24ocyl7Zm9yKDt0aGlzLmZpcnN0Q2hpbGQ7KUFlLmNhbGwodGhpcyx0aGlzLmZpcnN0Q2hpbGQpO251bGwhPXMm''@;'; + put 'put ''JiIiIT09cyYmZ3QuY2FsbCh0aGlzLGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHMpKX19KX0pfSh0KSxmdW5jdGlvbiBpcih0KXtmdW5jdGlvbiBpKGQsbSl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGQsImlubmVySFRNTCIse2VudW1lcmFibGU6bS5lbnVtZXJhYmxlLGNvbmZpZ3VyYWJsZToh''@;'; + put 'put ''MCxnZXQ6bS5nZXQsc2V0OmZ1bmN0aW9uKEwpe3ZhciBGPXRoaXMsRz12b2lkIDA7aWYocjAodGhpcykmJihHPVtdLFUyKHQsdGhpcyxmdW5jdGlvbihIMSl7SDEhPT1GJiZHLnB1c2goSDEpfSkpLG0uc2V0LmNhbGwodGhpcyxMKSxHKWZvcih2YXIgVT0wO1U8Ry5sZW5ndGg7VSsrKXt2YXIg''@;'; + put 'put ''Sz1HW1VdOzE9PT1LLl9fQ0Vfc3RhdGUmJnQuZGlzY29ubmVjdGVkQ2FsbGJhY2soSyl9cmV0dXJuIHRoaXMub3duZXJEb2N1bWVudC5fX0NFX3JlZ2lzdHJ5P1kwKHQsdGhpcyk6eWUodCx0aGlzKSxMfX0pfWZ1bmN0aW9uIG4oZCxtKXtkLmluc2VydEFkamFjZW50RWxlbWVudD1mdW5jdGlv''@;'; + put 'put ''bihMLEYpe3ZhciBHPXIwKEYpO3JldHVybiBMPW0uY2FsbCh0aGlzLEwsRiksRyYmUzAodCxGKSxyMChMKSYmRzAodCxGKSxMfX1mdW5jdGlvbiBzKGQsbSl7ZnVuY3Rpb24gTChGLEcpe2Zvcih2YXIgVT1bXTtGIT09RztGPUYubmV4dFNpYmxpbmcpVS5wdXNoKEYpO2ZvcihHPTA7RzxVLmxl''@;'; + put 'put ''bmd0aDtHKyspWTAodCxVW0ddKX1kLmluc2VydEFkamFjZW50SFRNTD1mdW5jdGlvbihGLEcpe2lmKCJiZWZvcmViZWdpbiI9PT0oRj1GLnRvTG93ZXJDYXNlKCkpKXt2YXIgVT10aGlzLnByZXZpb3VzU2libGluZzttLmNhbGwodGhpcyxGLEcpLEwoVXx8dGhpcy5wYXJlbnROb2RlLmZpcnN0''@;'; + put 'put ''Q2hpbGQsdGhpcyl9ZWxzZSBpZigiYWZ0ZXJiZWdpbiI9PT1GKVU9dGhpcy5maXJzdENoaWxkLG0uY2FsbCh0aGlzLEYsRyksTCh0aGlzLmZpcnN0Q2hpbGQsVSk7ZWxzZSBpZigiYmVmb3JlZW5kIj09PUYpVT10aGlzLmxhc3RDaGlsZCxtLmNhbGwodGhpcyxGLEcpLEwoVXx8dGhpcy5maXJz''@;'; + put 'put ''dENoaWxkLG51bGwpO2Vsc2V7aWYoImFmdGVyZW5kIiE9PUYpdGhyb3cgbmV3IFN5bnRheEVycm9yKCJUaGUgdmFsdWUgcHJvdmlkZWQgKCIrU3RyaW5nKEYpKyIpIGlzIG5vdCBvbmUgb2YgJ2JlZm9yZWJlZ2luJywgJ2FmdGVyYmVnaW4nLCAnYmVmb3JlZW5kJywgb3IgJ2FmdGVyZW5kJy4i''@;'; + put 'put ''KTtVPXRoaXMubmV4dFNpYmxpbmcsbS5jYWxsKHRoaXMsRixHKSxMKHRoaXMubmV4dFNpYmxpbmcsVSl9fX1saSYmKEVsZW1lbnQucHJvdG90eXBlLmF0dGFjaFNoYWRvdz1mdW5jdGlvbihkKXtpZihkPWxpLmNhbGwodGhpcyxkKSx0LlcmJiFkLl9fQ0VfcGF0Y2hlZCl7ZC5fX0NFX3BhdGNo''@;'; + put 'put ''ZWQ9ITA7Zm9yKHZhciBtPTA7bTx0LmNhLmxlbmd0aDttKyspdC5jYVttXShkKX1yZXR1cm4gdGhpcy5fX0NFX3NoYWRvd1Jvb3Q9ZH0pLEhlJiZIZS5nZXQ/aShFbGVtZW50LnByb3RvdHlwZSxIZSk6VmUmJlZlLmdldD9pKEhUTUxFbGVtZW50LnByb3RvdHlwZSxWZSk6ZnVuY3Rpb24gdHIo''@;'; + put 'put ''dCxpKXt0Llc9ITAsdC5nLnB1c2goaSl9KHQsZnVuY3Rpb24oZCl7aShkLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gSmwuY2FsbCh0aGlzLCEwKS5pbm5lckhUTUx9LHNldDpmdW5jdGlvbihtKXt2YXIgTD0idGVtcGxhdGUiPT09dGhpcy5s''@;'; + put 'put ''b2NhbE5hbWUsRj1MP3RoaXMuY29udGVudDp0aGlzLEc9Z2UuY2FsbChkb2N1bWVudCx0aGlzLm5hbWVzcGFjZVVSSSx0aGlzLmxvY2FsTmFtZSk7Zm9yKEcuaW5uZXJIVE1MPW07MDxGLmNoaWxkTm9kZXMubGVuZ3RoOylBZS5jYWxsKEYsRi5jaGlsZE5vZGVzWzBdKTtmb3IobT1MP0cuY29u''@;'; + put 'put ''dGVudDpHOzA8bS5jaGlsZE5vZGVzLmxlbmd0aDspZ3QuY2FsbChGLG0uY2hpbGROb2Rlc1swXSl9fSl9KSxFbGVtZW50LnByb3RvdHlwZS5zZXRBdHRyaWJ1dGU9ZnVuY3Rpb24oZCxtKXtpZigxIT09dGhpcy5fX0NFX3N0YXRlKXJldHVybiBpaS5jYWxsKHRoaXMsZCxtKTt2YXIgTD1DZS5j''@;'; + put 'put ''YWxsKHRoaXMsZCk7aWkuY2FsbCh0aGlzLGQsbSksbT1DZS5jYWxsKHRoaXMsZCksdC5hdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2sodGhpcyxkLEwsbSxudWxsKX0sRWxlbWVudC5wcm90b3R5cGUuc2V0QXR0cmlidXRlTlM9ZnVuY3Rpb24oZCxtLEwpe2lmKDEhPT10aGlzLl9fQ0Vfc3RhdGUp''@;'; + put 'put ''cmV0dXJuIHJpLmNhbGwodGhpcyxkLG0sTCk7dmFyIEY9QXQuY2FsbCh0aGlzLGQsbSk7cmkuY2FsbCh0aGlzLGQsbSxMKSxMPUF0LmNhbGwodGhpcyxkLG0pLHQuYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrKHRoaXMsbSxGLEwsZCl9LEVsZW1lbnQucHJvdG90eXBlLnJlbW92ZUF0dHJpYnV0''@;'; + put 'put ''ZT1mdW5jdGlvbihkKXtpZigxIT09dGhpcy5fX0NFX3N0YXRlKXJldHVybiBhaS5jYWxsKHRoaXMsZCk7dmFyIG09Q2UuY2FsbCh0aGlzLGQpO2FpLmNhbGwodGhpcyxkKSxudWxsIT09bSYmdC5hdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2sodGhpcyxkLG0sbnVsbCxudWxsKX0sRWxlbWVudC5w''@;'; + put 'put ''cm90b3R5cGUucmVtb3ZlQXR0cmlidXRlTlM9ZnVuY3Rpb24oZCxtKXtpZigxIT09dGhpcy5fX0NFX3N0YXRlKXJldHVybiBuaS5jYWxsKHRoaXMsZCxtKTt2YXIgTD1BdC5jYWxsKHRoaXMsZCxtKTtuaS5jYWxsKHRoaXMsZCxtKTt2YXIgRj1BdC5jYWxsKHRoaXMsZCxtKTtMIT09RiYmdC5h''@;'; + put 'put ''dHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2sodGhpcyxtLEwsRixkKX0scGk/bihIVE1MRWxlbWVudC5wcm90b3R5cGUscGkpOmNpJiZuKEVsZW1lbnQucHJvdG90eXBlLGNpKSxmaT9zKEhUTUxFbGVtZW50LnByb3RvdHlwZSxmaSk6b2kmJnMoRWxlbWVudC5wcm90b3R5cGUsb2kpLExlKHQsRWxl''@;'; + put 'put ''bWVudC5wcm90b3R5cGUse3ByZXBlbmQ6WWEsYXBwZW5kOkthfSksZnVuY3Rpb24gbHIodCl7ZnVuY3Rpb24gaShzKXtyZXR1cm4gZnVuY3Rpb24oZCl7Zm9yKHZhciBtPVtdLEw9MDtMPGFyZ3VtZW50cy5sZW5ndGg7KytMKW1bTF09YXJndW1lbnRzW0xdO0w9W107Zm9yKHZhciBGPVtdLEc9''@;'; + put 'put ''MDtHPG0ubGVuZ3RoO0crKyl7dmFyIFU9bVtHXTtpZihVIGluc3RhbmNlb2YgRWxlbWVudCYmcjAoVSkmJkYucHVzaChVKSxVIGluc3RhbmNlb2YgRG9jdW1lbnRGcmFnbWVudClmb3IoVT1VLmZpcnN0Q2hpbGQ7VTtVPVUubmV4dFNpYmxpbmcpTC5wdXNoKFUpO2Vsc2UgTC5wdXNoKFUpfWZv''@;'; + put 'put ''cihzLmFwcGx5KHRoaXMsbSksbT0wO208Ri5sZW5ndGg7bSsrKVMwKHQsRlttXSk7aWYocjAodGhpcykpZm9yKG09MDttPEwubGVuZ3RoO20rKykoRj1MW21dKWluc3RhbmNlb2YgRWxlbWVudCYmRzAodCxGKX19dmFyIG49RWxlbWVudC5wcm90b3R5cGU7dm9pZCAwIT09c2kmJihuLmJlZm9y''@;'; + put 'put ''ZT1pKHNpKSksdm9pZCAwIT09aGkmJihuLmFmdGVyPWkoaGkpKSx2b2lkIDAhPT1kaSYmKG4ucmVwbGFjZVdpdGg9ZnVuY3Rpb24ocyl7Zm9yKHZhciBkPVtdLG09MDttPGFyZ3VtZW50cy5sZW5ndGg7KyttKWRbbV09YXJndW1lbnRzW21dO209W107Zm9yKHZhciBMPVtdLEY9MDtGPGQubGVu''@;'; + put 'put ''Z3RoO0YrKyl7dmFyIEc9ZFtGXTtpZihHIGluc3RhbmNlb2YgRWxlbWVudCYmcjAoRykmJkwucHVzaChHKSxHIGluc3RhbmNlb2YgRG9jdW1lbnRGcmFnbWVudClmb3IoRz1HLmZpcnN0Q2hpbGQ7RztHPUcubmV4dFNpYmxpbmcpbS5wdXNoKEcpO2Vsc2UgbS5wdXNoKEcpfWZvcihGPXIwKHRo''@;'; + put 'put ''aXMpLGRpLmFwcGx5KHRoaXMsZCksZD0wO2Q8TC5sZW5ndGg7ZCsrKVMwKHQsTFtkXSk7aWYoRilmb3IoUzAodCx0aGlzKSxkPTA7ZDxtLmxlbmd0aDtkKyspKEw9bVtkXSlpbnN0YW5jZW9mIEVsZW1lbnQmJkcwKHQsTCl9KSx2b2lkIDAhPT11aSYmKG4ucmVtb3ZlPWZ1bmN0aW9uKCl7dmFy''@;'; + put 'put ''IHM9cjAodGhpcyk7dWkuY2FsbCh0aGlzKSxzJiZTMCh0LHRoaXMpfSl9KHQpfSh0KSx0PW5ldyB2MCh0KSxkb2N1bWVudC5fX0NFX3JlZ2lzdHJ5PXQsT2JqZWN0LmRlZmluZVByb3BlcnR5KHdpbmRvdywiY3VzdG9tRWxlbWVudHMiLHtjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCx2''@;'; + put 'put ''YWx1ZTp0fSl9ZnVuY3Rpb24gU2UoKXt0aGlzLmVuZD10aGlzLnN0YXJ0PTAsdGhpcy5ydWxlcz10aGlzLnBhcmVudD10aGlzLnByZXZpb3VzPW51bGwsdGhpcy5jc3NUZXh0PXRoaXMucGFyc2VkQ3NzVGV4dD0iIix0aGlzLmF0UnVsZT0hMSx0aGlzLnR5cGU9MCx0aGlzLnBhcnNlZFNlbGVj''@;'; + put 'put ''dG9yPXRoaXMuc2VsZWN0b3I9dGhpcy5rZXlmcmFtZXNOYW1lPSIifWZ1bmN0aW9uIGJlKHQpe3ZhciBpPXQ9dC5yZXBsYWNlKGNyLCIiKS5yZXBsYWNlKG9yLCIiKSxuPW5ldyBTZTtuLnN0YXJ0PTAsbi5lbmQ9aS5sZW5ndGg7Zm9yKHZhciBzPW4sZD0wLG09aS5sZW5ndGg7ZDxtO2QrKylp''@;'; + put 'put ''ZigieyI9PT1pW2RdKXtzLnJ1bGVzfHwocy5ydWxlcz1bXSk7dmFyIEw9cyxGPUwucnVsZXNbTC5ydWxlcy5sZW5ndGgtMV18fG51bGw7KHM9bmV3IFNlKS5zdGFydD1kKzEscy5wYXJlbnQ9TCxzLnByZXZpb3VzPUYsTC5ydWxlcy5wdXNoKHMpfWVsc2UifSI9PT1pW2RdJiYocy5lbmQ9ZCsx''@;'; + put 'put ''LHM9cy5wYXJlbnR8fG4pO3JldHVybiBTaShuLHQpfWZ1bmN0aW9uIFNpKHQsaSl7dmFyIG49aS5zdWJzdHJpbmcodC5zdGFydCx0LmVuZC0xKTtpZih0LnBhcnNlZENzc1RleHQ9dC5jc3NUZXh0PW4udHJpbSgpLHQucGFyZW50JiYobj1mdW5jdGlvbiBucih0KXtyZXR1cm4gdC5yZXBsYWNl''@;'; + put 'put ''KC9cXChbMC05YS1mXXsxLDZ9KVxzL2dpLGZ1bmN0aW9uKGksbil7Zm9yKG49Ni0oaT1uKS5sZW5ndGg7bi0tOylpPSIwIitpO3JldHVybiJcXCIraX0pfShuPWkuc3Vic3RyaW5nKHQucHJldmlvdXM/dC5wcmV2aW91cy5lbmQ6dC5wYXJlbnQuc3RhcnQsdC5zdGFydC0xKSksbj0obj1uLnJl''@;'; + put 'put ''cGxhY2UoVGksIiAiKSkuc3Vic3RyaW5nKG4ubGFzdEluZGV4T2YoIjsiKSsxKSxuPXQucGFyc2VkU2VsZWN0b3I9dC5zZWxlY3Rvcj1uLnRyaW0oKSx0LmF0UnVsZT0wPT09bi5pbmRleE9mKCJAIiksdC5hdFJ1bGU/MD09PW4uaW5kZXhPZigiQG1lZGlhIik/dC50eXBlPXdpOm4ubWF0Y2go''@;'; + put 'put ''ZHIpJiYodC50eXBlPV9lLHQua2V5ZnJhbWVzTmFtZT10LnNlbGVjdG9yLnNwbGl0KFRpKS5wb3AoKSk6dC50eXBlPTA9PT1uLmluZGV4T2YoIi0tIik/eGk6X2kpLG49dC5ydWxlcylmb3IodmFyIHM9MCxkPW4ubGVuZ3RoLG09dm9pZCAwO3M8ZCYmKG09bltzXSk7cysrKVNpKG0saSk7cmV0''@;'; + put 'put ''dXJuIHR9ZnVuY3Rpb24gYmkodCxpLG4pe249dm9pZCAwPT09bj8iIjpuO3ZhciBzPSIiO2lmKHQuY3NzVGV4dHx8dC5ydWxlcyl7dmFyIG0sZD10LnJ1bGVzO2lmKChtPWQpJiYobT0hKChtPWRbMF0pJiZtLnNlbGVjdG9yJiYwPT09bS5zZWxlY3Rvci5pbmRleE9mKCItLSIpKSksbSl7bT0w''@;'; + put 'put ''O2Zvcih2YXIgTD1kLmxlbmd0aCxGPXZvaWQgMDttPEwmJihGPWRbbV0pO20rKylzPWJpKEYsaSxzKX1lbHNlKHM9KGk9aT90LmNzc1RleHQ6KGk9KGk9dC5jc3NUZXh0KS5yZXBsYWNlKERpLCIiKS5yZXBsYWNlKEVpLCIiKSkucmVwbGFjZShzciwiIikucmVwbGFjZShociwiIikpLnRyaW0o''@;'; + put 'put ''KSkmJihzPSIgICIrcysiXG4iKX1yZXR1cm4gcyYmKHQuc2VsZWN0b3ImJihuKz10LnNlbGVjdG9yKyIge1xuIiksbis9cyx0LnNlbGVjdG9yJiYobis9In1cblxuIikpLG59ajAmJiFqMC5mb3JjZVBvbHlmaWxsJiYiZnVuY3Rpb24iPT10eXBlb2YgajAuZGVmaW5lJiYiZnVuY3Rpb24iPT10''@;'; + put 'put ''eXBlb2YgajAuZ2V0fHxMaSgpLHdpbmRvdy5fX0NFX2luc3RhbGxQb2x5ZmlsbD1MaTt2YXIgd2UsVnQsX2k9MSxfZT03LHdpPTQseGk9MWUzLGNyPS9cL1wqW14qXSpcKisoW14vKl1bXipdKlwqKykqXC8vZ2ltLG9yPS9AaW1wb3J0W147XSo7L2dpbSxEaT0vKD86XlteO1wtXHN9XSspPy0t''@;'; + put 'put ''W147e31dKj86W157fTtdKj8oPzpbO1xuXXwkKS9naW0sRWk9Lyg/Ol5bXjtcLVxzfV0rKT8tLVteO3t9XSo/Oltee307XSo/e1tefV0qP30oPzpbO1xuXXwkKT8vZ2ltLHNyPS9AYXBwbHlccypcKD9bXik7XSpcKT9ccyooPzpbO1xuXXwkKT8vZ2ltLGhyPS9bXjs6XSo/OlteO10qP3Zhclwo''@;'; + put 'put ''W147XSpcKSg/Ols7XG5dfCQpPy9naW0sZHI9L15AW15cc10qa2V5ZnJhbWVzLyxUaT0vXHMrL2csaDA9ISh3aW5kb3cuU2hhZHlET00mJndpbmRvdy5TaGFkeURPTS5pblVzZSk7ZnVuY3Rpb24gTmkodCl7d2U9KCF0fHwhdC5zaGltY3NzcHJvcGVydGllcykmJihoMHx8IShuYXZpZ2F0b3Iu''@;'; + put 'put ''dXNlckFnZW50Lm1hdGNoKC9BcHBsZVdlYktpdFwvNjAxfEVkZ2VcLzE1Lyl8fCF3aW5kb3cuQ1NTfHwhQ1NTLnN1cHBvcnRzfHwhQ1NTLnN1cHBvcnRzKCJib3gtc2hhZG93IiwiMCAwIDAgdmFyKC0tZm9vKSIpKSl9d2luZG93LlNoYWR5Q1NTJiZ2b2lkIDAhPT13aW5kb3cuU2hhZHlDU1Mu''@;'; + put 'put ''Y3NzQnVpbGQmJihWdD13aW5kb3cuU2hhZHlDU1MuY3NzQnVpbGQpO3ZhciBMMj0hKCF3aW5kb3cuU2hhZHlDU1N8fCF3aW5kb3cuU2hhZHlDU1MuZGlzYWJsZVJ1bnRpbWUpO3dpbmRvdy5TaGFkeUNTUyYmdm9pZCAwIT09d2luZG93LlNoYWR5Q1NTLm5hdGl2ZUNzcz93ZT13aW5kb3cuU2hh''@;'; + put 'put ''ZHlDU1MubmF0aXZlQ3NzOndpbmRvdy5TaGFkeUNTUz8oTmkod2luZG93LlNoYWR5Q1NTKSx3aW5kb3cuU2hhZHlDU1M9dm9pZCAwKTpOaSh3aW5kb3cuV2ViQ29tcG9uZW50cyYmd2luZG93LldlYkNvbXBvbmVudHMuZmxhZ3MpO3ZhciBDMD13ZSxtdD0vKD86XnxbO1xze11ccyopKC0tW1x3''@;'; + put 'put ''LV0qPylccyo6XHMqKD86KCg/OicoPzpcXCd8LikqPyd8Iig/OlxcInwuKSo/InxcKFteKV0qP1wpfFtefTt7XSkrKXxceyhbXn1dKilcfSg/Oig/PVs7XHN9XSl8JCkpL2dpLE10PS8oPzpefFxXKylAYXBwbHlccypcKD8oW14pO1xuXSopXCk/L2dpLHVyPS8oLS1bXHctXSspXHMqKFs6LDsp''@;'; + put 'put ''XXwkKS9naSxwcj0vKGFuaW1hdGlvblxzKjopfChhbmltYXRpb24tbmFtZVxzKjopLyxmcj0vQG1lZGlhXHMoLiopLyxncj0vXHtbXn1dKlx9L2csRmk9bmV3IFNldDtmdW5jdGlvbiBTMih0LGkpe3JldHVybiB0Pygic3RyaW5nIj09dHlwZW9mIHQmJih0PWJlKHQpKSxpJiZiMih0LGkpLGJp''@;'; + put 'put ''KHQsQzApKToiIn1mdW5jdGlvbiBXMih0KXtyZXR1cm4hdC5fX2Nzc1J1bGVzJiZ0LnRleHRDb250ZW50JiYodC5fX2Nzc1J1bGVzPWJlKHQudGV4dENvbnRlbnQpKSx0Ll9fY3NzUnVsZXN8fG51bGx9ZnVuY3Rpb24gSWkodCl7cmV0dXJuISF0LnBhcmVudCYmdC5wYXJlbnQudHlwZT09PV9l''@;'; + put 'put ''fWZ1bmN0aW9uIGIyKHQsaSxuLHMpe2lmKHQpe3ZhciBkPSExLG09dC50eXBlO2lmKHMmJm09PT13aSl7dmFyIEw9dC5zZWxlY3Rvci5tYXRjaChmcik7TCYmKHdpbmRvdy5tYXRjaE1lZGlhKExbMV0pLm1hdGNoZXN8fChkPSEwKSl9aWYobT09PV9pP2kodCk6biYmbT09PV9lP24odCk6bT09''@;'; + put 'put ''PXhpJiYoZD0hMCksKHQ9dC5ydWxlcykmJiFkKWZvcihkPTAsbT10Lmxlbmd0aCxMPXZvaWQgMDtkPG0mJihMPXRbZF0pO2QrKyliMihMLGksbixzKX19ZnVuY3Rpb24geGUodCxpLG4scyl7dmFyIGQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKTtyZXR1cm4gaSYmZC5zZXRBdHRy''@;'; + put 'put ''aWJ1dGUoInNjb3BlIixpKSxkLnRleHRDb250ZW50PXQsT2koZCxuLHMpLGR9dmFyIG8yPW51bGw7ZnVuY3Rpb24ga2kodCl7dD1kb2N1bWVudC5jcmVhdGVDb21tZW50KCIgU2hhZHkgRE9NIHN0eWxlcyBmb3IgIit0KyIgIik7dmFyIGk9ZG9jdW1lbnQuaGVhZDtyZXR1cm4gaS5pbnNlcnRC''@;'; + put 'put ''ZWZvcmUodCwobzI/bzIubmV4dFNpYmxpbmc6bnVsbCl8fGkuZmlyc3RDaGlsZCksbzI9dH1mdW5jdGlvbiBPaSh0LGksbil7KGk9aXx8ZG9jdW1lbnQuaGVhZCkuaW5zZXJ0QmVmb3JlKHQsbiYmbi5uZXh0U2libGluZ3x8aS5maXJzdENoaWxkKSxvMj90LmNvbXBhcmVEb2N1bWVudFBvc2l0''@;'; + put 'put ''aW9uKG8yKT09PU5vZGUuRE9DVU1FTlRfUE9TSVRJT05fUFJFQ0VESU5HJiYobzI9dCk6bzI9dH1mdW5jdGlvbiBEZSh0LGkpe2Zvcih2YXIgbj0wLHM9dC5sZW5ndGg7aTxzO2krKylpZigiKCI9PT10W2ldKW4rKztlbHNlIGlmKCIpIj09PXRbaV0mJjA9PS0tbilyZXR1cm4gaTtyZXR1cm4t''@;'; + put 'put ''MX1mdW5jdGlvbiBQaSh0LGkpe3ZhciBuPXQuaW5kZXhPZigidmFyKCIpO2lmKC0xPT09bilyZXR1cm4gaSh0LCIiLCIiLCIiKTt2YXIgcz1EZSh0LG4rMyksZD10LnN1YnN0cmluZyhuKzQscyk7cmV0dXJuIG49dC5zdWJzdHJpbmcoMCxuKSx0PVBpKHQuc3Vic3RyaW5nKHMrMSksaSksLTE9''@;'; + put 'put ''PT0ocz1kLmluZGV4T2YoIiwiKSk/aShuLGQudHJpbSgpLCIiLHQpOmkobixkLnN1YnN0cmluZygwLHMpLnRyaW0oKSxkLnN1YnN0cmluZyhzKzEpLnRyaW0oKSx0KX1mdW5jdGlvbiBadCh0LGkpe2gwP3Quc2V0QXR0cmlidXRlKCJjbGFzcyIsaSk6d2luZG93LlNoYWR5RE9NLm5hdGl2ZU1l''@;'; + put 'put ''dGhvZHMuc2V0QXR0cmlidXRlLmNhbGwodCwiY2xhc3MiLGkpfXZhciAkMj13aW5kb3cuU2hhZHlET00mJndpbmRvdy5TaGFkeURPTS53cmFwfHxmdW5jdGlvbih0KXtyZXR1cm4gdH07ZnVuY3Rpb24gczIodCl7dmFyIGk9dC5sb2NhbE5hbWUsbj0iIjtyZXR1cm4gaT8tMTxpLmluZGV4T2Yo''@;'; + put 'put ''Ii0iKXx8KG49aSxpPXQuZ2V0QXR0cmlidXRlJiZ0LmdldEF0dHJpYnV0ZSgiaXMiKXx8IiIpOihpPXQuaXMsbj10LmV4dGVuZHMpLHtpczppLGhhOm59fWZ1bmN0aW9uIEJpKHQpe2Zvcih2YXIgaT1bXSxuPSIiLHM9MDswPD1zJiZzPHQubGVuZ3RoO3MrKylpZigiKCI9PT10W3NdKXt2YXIg''@;'; + put 'put ''ZD1EZSh0LHMpO24rPXQuc2xpY2UocyxkKzEpLHM9ZH1lbHNlIiwiPT09dFtzXT8oaS5wdXNoKG4pLG49IiIpOm4rPXRbc107cmV0dXJuIG4mJmkucHVzaChuKSxpfWZ1bmN0aW9uIF8yKHQpe2lmKHZvaWQgMCE9PVZ0KXJldHVybiBWdDtpZih2b2lkIDA9PT10Ll9fY3NzQnVpbGQpe3ZhciBp''@;'; + put 'put ''PXQuZ2V0QXR0cmlidXRlKCJjc3MtYnVpbGQiKTtpZihpKXQuX19jc3NCdWlsZD1pO2Vsc2V7aWYoIiIhPT0oaT0oaT0idGVtcGxhdGUiPT09dC5sb2NhbE5hbWU/dC5jb250ZW50LmZpcnN0Q2hpbGQ6dC5maXJzdENoaWxkKWluc3RhbmNlb2YgQ29tbWVudCYmImNzcy1idWlsZCI9PT0oaT1p''@;'; + put 'put ''LnRleHRDb250ZW50LnRyaW0oKS5zcGxpdCgiOiIpKVswXT9pWzFdOiIiKSl7dmFyIG49InRlbXBsYXRlIj09PXQubG9jYWxOYW1lP3QuY29udGVudC5maXJzdENoaWxkOnQuZmlyc3RDaGlsZDtuLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQobil9dC5fX2Nzc0J1aWxkPWl9fXJldHVybiB0Ll9f''@;'; + put 'put ''Y3NzQnVpbGR8fCIifWZ1bmN0aW9uIEVlKHQpe3JldHVybiEoIiI9PT0odD12b2lkIDA9PT10PyIiOnQpfHwhQzApJiYoaDA/InNoYWRvdyI9PT10OiJzaGFkeSI9PT10KX1mdW5jdGlvbiB5dCgpe31mdW5jdGlvbiBMdCh0LGksbil7dmFyIHM7aWYoaS5ub2RlVHlwZT09PU5vZGUuRUxFTUVO''@;'; + put 'put ''VF9OT0RFJiZuKGkpLHM9InRlbXBsYXRlIj09PWkubG9jYWxOYW1lPyhpLmNvbnRlbnR8fGkuX2NvbnRlbnR8fGkpLmNoaWxkTm9kZXM6aS5jaGlsZHJlbnx8aS5jaGlsZE5vZGVzKWZvcihpPTA7aTxzLmxlbmd0aDtpKyspTHQodCxzW2ldLG4pfWZ1bmN0aW9uIGgyKHQsaSxuKXtpZihpKWlm''@;'; + put 'put ''KHQuY2xhc3NMaXN0KW4/KHQuY2xhc3NMaXN0LnJlbW92ZSgic3R5bGUtc2NvcGUiKSx0LmNsYXNzTGlzdC5yZW1vdmUoaSkpOih0LmNsYXNzTGlzdC5hZGQoInN0eWxlLXNjb3BlIiksdC5jbGFzc0xpc3QuYWRkKGkpKTtlbHNlIGlmKHQuZ2V0QXR0cmlidXRlKXt2YXIgcz10LmdldEF0dHJp''@;'; + put 'put ''YnV0ZSgiY2xhc3MiKTtuP3MmJlp0KHQsaT1zLnJlcGxhY2UoInN0eWxlLXNjb3BlIiwiIikucmVwbGFjZShpLCIiKSk6WnQodCwocz9zKyIgIjoiIikrInN0eWxlLXNjb3BlICIraSl9fWZ1bmN0aW9uIHZyKHQsaSxuKXtMdChUMCx0LGZ1bmN0aW9uKHMpe2gyKHMsaSwhMCksaDIocyxuKX0p''@;'; + put 'put ''fWZ1bmN0aW9uIEhyKHQsaSl7THQoVDAsdCxmdW5jdGlvbihuKXtoMihuLGl8fCIiLCEwKX0pfWZ1bmN0aW9uIFN0KHQsaSxuLHMsZCl7dmFyIG09VDA7cmV0dXJuIiI9PT0oZD12b2lkIDA9PT1kPyIiOmQpJiYoZD1oMHx8InNoYWR5Ij09PSh2b2lkIDA9PT1zPyIiOnMpP1MyKGksbik6ZnVu''@;'; + put 'put ''Y3Rpb24gQ3IodCxpLG4scyxkKXt2YXIgbT1UZShuLHMpO3JldHVybiBuPW4/Ii4iK246IiIsUzIoaSxmdW5jdGlvbihMKXtMLml8fChMLnNlbGVjdG9yPUwuRj1OZSh0LEwsdC5oLG4sbSksTC5pPSEwKSxkJiZkKEwsbixtKX0pfShtLGksKHQ9czIodCkpLmlzLHQuaGEsbikrIlxuXG4iKSxk''@;'; + put 'put ''LnRyaW0oKX1mdW5jdGlvbiBUZSh0LGkpe3JldHVybiBpPyJbaXM9Iit0KyJdIjp0fWZ1bmN0aW9uIE5lKHQsaSxuLHMsZCl7dmFyIG09QmkoaS5zZWxlY3Rvcik7aWYoIUlpKGkpKXtpPTA7Zm9yKHZhciBMPW0ubGVuZ3RoLEY9dm9pZCAwO2k8TCYmKEY9bVtpXSk7aSsrKW1baV09bi5jYWxs''@;'; + put 'put ''KHQsRixzLGQpfXJldHVybiBtLmZpbHRlcihmdW5jdGlvbihHKXtyZXR1cm4hIUd9KS5qb2luKCIsIil9ZnVuY3Rpb24gR2kodCl7cmV0dXJuIHQucmVwbGFjZShGZSxmdW5jdGlvbihpLG4scyl7cmV0dXJuLTE8cy5pbmRleE9mKCIrIik/cz1zLnJlcGxhY2UoL1wrL2csIl9fXyIpOi0xPHMu''@;'; + put 'put ''aW5kZXhPZigiX19fIikmJihzPXMucmVwbGFjZSgvX19fL2csIisiKSksIjoiK24rIigiK3MrIikifSl9ZnVuY3Rpb24gamkodCxpKXt0PXQuc3BsaXQoLyhcWy4rP1xdKS8pO2Zvcih2YXIgbj1bXSxzPTA7czx0Lmxlbmd0aDtzKyspaWYocyUyPT0xKW4ucHVzaCh0W3NdKTtlbHNle3ZhciBk''@;'; + put 'put ''PXRbc107KCIiIT09ZHx8cyE9PXQubGVuZ3RoLTEpJiYoKGQ9ZC5zcGxpdCgiOiIpKVswXSs9aSxuLnB1c2goZC5qb2luKCI6IikpKX1yZXR1cm4gbi5qb2luKCIiKX1mdW5jdGlvbiBSaSh0KXsiOnJvb3QiPT09dC5zZWxlY3RvciYmKHQuc2VsZWN0b3I9Imh0bWwiKX15dC5wcm90b3R5cGUu''@;'; + put 'put ''aD1mdW5jdGlvbih0LGksbil7dmFyIHM9ITE7dD10LnRyaW0oKTt2YXIgZD1GZS50ZXN0KHQpO2QmJih0PUdpKHQ9dC5yZXBsYWNlKEZlLGZ1bmN0aW9uKEYsRyxVKXtyZXR1cm4iOiIrRysiKCIrVS5yZXBsYWNlKC9ccy9nLCIiKSsiKSJ9KSkpO3ZhciBtPVdpLnRlc3QodCk7aWYobSl7dmFy''@;'; + put 'put ''IEw9ZnVuY3Rpb24gVnIodCl7Zm9yKHZhciBuLGk9W107bj10Lm1hdGNoKFdpKTspe3ZhciBzPW4uaW5kZXgsZD1EZSh0LHMpO2lmKC0xPT09ZCl0aHJvdyBFcnJvcihuLmlucHV0KyIgc2VsZWN0b3IgbWlzc2luZyAnKSciKTtuPXQuc2xpY2UocyxkKzEpLHQ9dC5yZXBsYWNlKG4sIlx1ZTAw''@;'; + put 'put ''MCIpLGkucHVzaChuKX1yZXR1cm57QmE6dCxtYXRjaGVzOml9fSh0KTt0PUwuQmEsTD1MLm1hdGNoZXN9cmV0dXJuIHQ9KHQ9dC5yZXBsYWNlKExyLCI6aG9zdCAkMSIpKS5yZXBsYWNlKHlyLGZ1bmN0aW9uKEYsRyxVKXtyZXR1cm4gc3x8KEY9ZnVuY3Rpb24gTXIodCxpLG4scyl7dmFyIGQ9''@;'; + put 'put ''dC5pbmRleE9mKCI6OnNsb3R0ZWQiKTtpZigwPD10LmluZGV4T2YoIjpob3N0Iik/dD1mdW5jdGlvbiBacih0LGkpe3ZhciBuPXQubWF0Y2goVWkpO3JldHVybihuPW4mJm5bMl0udHJpbSgpfHwiIik/blswXS5tYXRjaCh6aSk/dC5yZXBsYWNlKFVpLGZ1bmN0aW9uKHMsZCxtKXtyZXR1cm4g''@;'; + put 'put ''aSttfSk6bi5zcGxpdCh6aSlbMF09PT1pP246InNob3VsZF9ub3RfbWF0Y2giOnQucmVwbGFjZSgiOmhvc3QiLGkpfSh0LHMpOjAhPT1kJiYodD1uP2ppKHQsbik6dCksbj0hMSwwPD1kJiYoaT0iIixuPSEwKSxuKXt2YXIgbT0hMDtuJiYodD10LnJlcGxhY2UoU3IsZnVuY3Rpb24oTCxGKXty''@;'; + put 'put ''ZXR1cm4iID4gIitGfSkpfXJldHVybnt2YWx1ZTp0LFVhOmksc3RvcDptfX0oVSxHLGksbikscz1zfHxGLnN0b3AsRz1GLlVhLFU9Ri52YWx1ZSksRytVfSksbSYmKHQ9ZnVuY3Rpb24gbXIodCxpKXt2YXIgbj10LnNwbGl0KCJcdWUwMDAiKTtyZXR1cm4gaS5yZWR1Y2UoZnVuY3Rpb24ocyxk''@;'; + put 'put ''LG0pe3JldHVybiBzK2QrblttKzFdfSxuWzBdKX0odCxMKSksZCYmKHQ9R2kodCkpLHQucmVwbGFjZShicixmdW5jdGlvbihGLEcsVSxLKXtyZXR1cm4nW2Rpcj0iJytVKyciXSAnK0crSysiLCAiK0crJ1tkaXI9IicrVSsnIl0nK0t9KX0seXQucHJvdG90eXBlLmk9ZnVuY3Rpb24odCl7cmV0''@;'; + put 'put ''dXJuIHQubWF0Y2goIjpob3N0Iik/IiI6dC5tYXRjaCgiOjpzbG90dGVkIik/dGhpcy5oKHQsIjpub3QoLnN0eWxlLXNjb3BlKSIpOmppKHQudHJpbSgpLCI6bm90KC5zdHlsZS1zY29wZSkiKX0sZS5PYmplY3QuZGVmaW5lUHJvcGVydGllcyh5dC5wcm90b3R5cGUse2c6e2NvbmZpZ3VyYWJs''@;'; + put 'put ''ZTohMCxlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiJzdHlsZS1zY29wZSJ9fX0pO3ZhciBGZT0vOihudGhbLVx3XSspXCgoW14pXSspXCkvLHlyPS8oXnxbXHM+K35dKykoKD86XFsuKz9cXXxbXlxzPit+PVtdKSspL2csemk9L1tbLjojKl0vLExyPS9eKDo6c2xvdHRlZCkv''@;'; + put 'put ''LFVpPS8oOmhvc3QpKD86XCgoKD86XChbXikoXSpcKXxbXikoXSopKz8pXCkpLyxTcj0vKD86OjpzbG90dGVkKSg/OlwoKCg/OlwoW14pKF0qXCl8W14pKF0qKSs/KVwpKS8sYnI9LyguKik6ZGlyXCgoPzoobHRyfHJ0bCkpXCkoLiopLyxXaT0vOig/Om1hdGNoZXN8YW55fC0oPzp3ZWJraXR8''@;'; + put 'put ''bW96KS1hbnkpLyxUMD1uZXcgeXQ7ZnVuY3Rpb24gdzIodCxpLG4scyxkKXt0aGlzLk09dHx8bnVsbCx0aGlzLmg9aXx8bnVsbCx0aGlzLnphPW58fFtdLHRoaXMuSz1udWxsLHRoaXMuY3NzQnVpbGQ9ZHx8IiIsdGhpcy5oYT1zfHwiIix0aGlzLmc9dGhpcy5MPXRoaXMuUj1udWxsfWZ1bmN0''@;'; + put 'put ''aW9uIE4wKHQpe3JldHVybiB0P3QuX19zdHlsZUluZm86bnVsbH1mdW5jdGlvbiBJZSh0LGkpe3JldHVybiB0Ll9fc3R5bGVJbmZvPWl9ZnVuY3Rpb24gJGkodCl7dmFyIGk9dGhpcy5tYXRjaGVzfHx0aGlzLm1hdGNoZXNTZWxlY3Rvcnx8dGhpcy5tb3pNYXRjaGVzU2VsZWN0b3J8fHRoaXMu''@;'; + put 'put ''bXNNYXRjaGVzU2VsZWN0b3J8fHRoaXMub01hdGNoZXNTZWxlY3Rvcnx8dGhpcy53ZWJraXRNYXRjaGVzU2VsZWN0b3I7cmV0dXJuIGkmJmkuY2FsbCh0aGlzLHQpfXcyLnByb3RvdHlwZS5fZ2V0U3R5bGVSdWxlcz13Mi5wcm90b3R5cGUuaT1mdW5jdGlvbigpe3JldHVybiB0aGlzLk19O3Zh''@;'; + put 'put ''ciBfcj0vOmhvc3Rccyo+XHMqLyx3cj1uYXZpZ2F0b3IudXNlckFnZW50Lm1hdGNoKCJUcmlkZW50Iik7ZnVuY3Rpb24gcWkoKXt9ZnVuY3Rpb24gYnQodCl7aWYoIXQuRCl7dmFyIGk9e30sbj17fTtfdCh0LG4pJiYoaS5QPW4sdC5ydWxlcz1udWxsKSxpLmNzc1RleHQ9dC5wYXJzZWRDc3NU''@;'; + put 'put ''ZXh0LnJlcGxhY2UoZ3IsIiIpLnJlcGxhY2UobXQsIiIpLHQuRD1pfX1mdW5jdGlvbiBfdCh0LGkpe3ZhciBuPXQuRDtpZighbil7bj10LnBhcnNlZENzc1RleHQ7Zm9yKHZhciBzO3Q9bXQuZXhlYyhuKTspKCJpbmhlcml0IiE9PShzPSh0WzJdfHx0WzNdKS50cmltKCkpfHwidW5zZXQiIT09''@;'; + put 'put ''cykmJihpW3RbMV0udHJpbSgpXT1zKSxzPSEwO3JldHVybiBzfWlmKG4uUClyZXR1cm4gT2JqZWN0LmFzc2lnbihpLG4uUCksITB9ZnVuY3Rpb24gcTIodCxpLG4pe3JldHVybiBpJiYoaT0wPD1pLmluZGV4T2YoIjsiKT9rZSh0LGksbik6UGkoaSxmdW5jdGlvbihzLGQsbSxMKXtyZXR1cm4g''@;'; + put 'put ''ZD8oKGQ9cTIodCxuW2RdLG4pKSYmImluaXRpYWwiIT09ZD8iYXBwbHktc2hpbS1pbmhlcml0Ij09PWQmJihkPSJpbmhlcml0Iik6ZD1xMih0LG5bbV18fG0sbil8fG0scysoZHx8IiIpK0wpOnMrTH0pKSxpJiZpLnRyaW0oKXx8IiJ9ZnVuY3Rpb24ga2UodCxpLG4pe2k9aS5zcGxpdCgiOyIp''@;'; + put 'put ''O2Zvcih2YXIgZCxtLHM9MDtzPGkubGVuZ3RoO3MrKylpZihkPWlbc10pe2lmKE10Lmxhc3RJbmRleD0wLG09TXQuZXhlYyhkKSlkPXEyKHQsblttWzFdXSxuKTtlbHNlIGlmKC0xIT09KG09ZC5pbmRleE9mKCI6IikpKXt2YXIgTD1kLnN1YnN0cmluZyhtKTtMPXEyKHQsTD1MLnRyaW0oKSxu''@;'; + put 'put ''KXx8TCxkPWQuc3Vic3RyaW5nKDAsbSkrTH1pW3NdPWQmJmQubGFzdEluZGV4T2YoIjsiKT09PWQubGVuZ3RoLTE/ZC5zbGljZSgwLC0xKTpkfHwiIn1yZXR1cm4gaS5qb2luKCI7Iil9ZnVuY3Rpb24gSXIodCl7cmV0dXJuIGZ1bmN0aW9uKGkpe3JldHVybiBpLnJlcGxhY2UodC51LHQuZyl9''@;'; + put 'put ''fWZ1bmN0aW9uIGtyKHQsaSl7dmFyIG49d3Qscz1XMih0KTt0LnRleHRDb250ZW50PVMyKHMsZnVuY3Rpb24oZCl7dmFyIG09ZC5jc3NUZXh0PWQucGFyc2VkQ3NzVGV4dDtkLkQmJmQuRC5jc3NUZXh0JiYobT1tLnJlcGxhY2UoRGksIiIpLnJlcGxhY2UoRWksIiIpLGQuY3NzVGV4dD1rZShu''@;'; + put 'put ''LG0saSkpfSl9ZS5PYmplY3QuZGVmaW5lUHJvcGVydGllcyhxaS5wcm90b3R5cGUse2c6e2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiJ4LXNjb3BlIn19fSk7dmFyIHd0PW5ldyBxaSx4Mj17fSx4dD13aW5kb3cuY3VzdG9tRWxlbWVudHM7aWYo''@;'; + put 'put ''eHQmJiFoMCYmIUwyKXt2YXIgT3I9eHQuZGVmaW5lO3h0LmRlZmluZT1mdW5jdGlvbih0LGksbil7eDJbdF18fCh4Mlt0XT1raSh0KSksT3IuY2FsbCh4dCx0LGksbil9fWZ1bmN0aW9uIFlpKCl7dGhpcy5jYWNoZT17fX1mdW5jdGlvbiBLaSgpe31ZaS5wcm90b3R5cGUuc3RvcmU9ZnVuY3Rp''@;'; + put 'put ''b24odCxpLG4scyl7dmFyIGQ9dGhpcy5jYWNoZVt0XXx8W107ZC5wdXNoKHtQOmksc3R5bGVFbGVtZW50Om4sTDpzfSksMTAwPGQubGVuZ3RoJiZkLnNoaWZ0KCksdGhpcy5jYWNoZVt0XT1kfTt2YXIgUHI9bmV3IFJlZ0V4cChUMC5nKyJcXHMqKFteXFxzXSopIik7ZnVuY3Rpb24gWGkodCl7''@;'; + put 'put ''cmV0dXJuKHQ9KHQuY2xhc3NMaXN0JiZ0LmNsYXNzTGlzdC52YWx1ZT90LmNsYXNzTGlzdC52YWx1ZTp0LmdldEF0dHJpYnV0ZSgiY2xhc3MiKXx8IiIpLm1hdGNoKFByKSk/dFsxXToiIn1mdW5jdGlvbiBPZSh0KXt2YXIgaT0kMih0KS5nZXRSb290Tm9kZSgpO3JldHVybiBpPT09dHx8aT09''@;'; + put 'put ''PXQub3duZXJEb2N1bWVudD8iIjoodD1pLmhvc3QpP3MyKHQpLmlzOiIifWZ1bmN0aW9uIFFpKHQpe2Zvcih2YXIgaT0wO2k8dC5sZW5ndGg7aSsrKXt2YXIgbj10W2ldO2lmKG4udGFyZ2V0IT09ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50JiZuLnRhcmdldCE9PWRvY3VtZW50LmhlYWQpZm9y''@;'; + put 'put ''KHZhciBzPTA7czxuLmFkZGVkTm9kZXMubGVuZ3RoO3MrKyl7dmFyIGQ9bi5hZGRlZE5vZGVzW3NdO2lmKGQubm9kZVR5cGU9PT1Ob2RlLkVMRU1FTlRfTk9ERSl7dmFyIG09ZC5nZXRSb290Tm9kZSgpLEw9WGkoZCk7aWYoTCYmbT09PWQub3duZXJEb2N1bWVudCYmKCJzdHlsZSIhPT1kLmxv''@;'; + put 'put ''Y2FsTmFtZSYmInRlbXBsYXRlIiE9PWQubG9jYWxOYW1lfHwiIj09PV8yKGQpKSlIcihkLEwpO2Vsc2UgaWYobSBpbnN0YW5jZW9mIFNoYWRvd1Jvb3QpZm9yKChtPU9lKGQpKSE9PUwmJnZyKGQsTCxtKSxkPXdpbmRvdy5TaGFkeURPTS5uYXRpdmVNZXRob2RzLnF1ZXJ5U2VsZWN0b3JBbGwu''@;'; + put 'put ''Y2FsbChkLCI6bm90KC4iK1QwLmcrIikiKSxMPTA7TDxkLmxlbmd0aDtMKyspe3ZhciBGPU9lKG09ZFtMXSk7RiYmaDIobSxGKX19fX19aWYoIShoMHx8d2luZG93LlNoYWR5RE9NJiZ3aW5kb3cuU2hhZHlET00uaGFuZGxlc0R5bmFtaWNTY29waW5nKSl7dmFyIEppPW5ldyBNdXRhdGlvbk9i''@;'; + put 'put ''c2VydmVyKFFpKSx0YT1mdW5jdGlvbih0KXtKaS5vYnNlcnZlKHQse2NoaWxkTGlzdDohMCxzdWJ0cmVlOiEwfSl9O2lmKHdpbmRvdy5jdXN0b21FbGVtZW50cyYmIXdpbmRvdy5jdXN0b21FbGVtZW50cy5wb2x5ZmlsbFdyYXBGbHVzaENhbGxiYWNrKXRhKGRvY3VtZW50KTtlbHNle3ZhciBQ''@;'; + put 'put ''ZT1mdW5jdGlvbigpe3RhKGRvY3VtZW50LmJvZHkpfTt3aW5kb3cuSFRNTEltcG9ydHM/d2luZG93LkhUTUxJbXBvcnRzLndoZW5SZWFkeShQZSk6cmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCl7aWYoImxvYWRpbmciPT09ZG9jdW1lbnQucmVhZHlTdGF0ZSl7dmFyIHQ9ZnVuY3Rp''@;'; + put 'put ''b24oKXtQZSgpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInJlYWR5c3RhdGVjaGFuZ2UiLHQpfTtkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJyZWFkeXN0YXRlY2hhbmdlIix0KX1lbHNlIFBlKCl9KX1LaT1mdW5jdGlvbigpe1FpKEppLnRha2VSZWNvcmRzKCkpfX12YXIgRHQ9''@;'; + put 'put ''e30sQnI9UHJvbWlzZS5yZXNvbHZlKCk7ZnVuY3Rpb24gR3IodCl7KHQ9RHRbdF0pJiYodC5fYXBwbHlTaGltQ3VycmVudFZlcnNpb249dC5fYXBwbHlTaGltQ3VycmVudFZlcnNpb258fDAsdC5fYXBwbHlTaGltVmFsaWRhdGluZ1ZlcnNpb249dC5fYXBwbHlTaGltVmFsaWRhdGluZ1ZlcnNp''@;'; + put 'put ''b258fDAsdC5fYXBwbHlTaGltTmV4dFZlcnNpb249KHQuX2FwcGx5U2hpbU5leHRWZXJzaW9ufHwwKSsxKX1mdW5jdGlvbiBlYSh0KXtyZXR1cm4gdC5fYXBwbHlTaGltQ3VycmVudFZlcnNpb249PT10Ll9hcHBseVNoaW1OZXh0VmVyc2lvbn12YXIgbGE9e30saWE9bmV3IFlpO2Z1bmN0aW9u''@;'; + put 'put ''IEcxKCl7dGhpcy5kYT17fSx0aGlzLmk9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O3ZhciB0PW5ldyBTZTt0LnJ1bGVzPVtdLHRoaXMudT1JZSh0aGlzLmksbmV3IHcyKHQpKSx0aGlzLk89ITEsdGhpcy5nPXRoaXMuaD1udWxsfWZ1bmN0aW9uIGFhKHQpe3ZhciBpPXMyKHQpLG49aS5pcztp''@;'; + put 'put ''PWkuaGE7dmFyIHM9eDJbbl18fG51bGwsZD1EdFtuXTtpZihkKXJldHVybiBJZSh0LGk9bmV3IHcyKG49ZC5fc3R5bGVBc3QscyxkLmcsaSxkPV8yKGQpKSksaX1mdW5jdGlvbiBZMih0KXtpZighdC5oJiZ3aW5kb3cuU2hhZHlDU1MmJndpbmRvdy5TaGFkeUNTUy5BcHBseVNoaW0pe3QuaD13''@;'; + put 'put ''aW5kb3cuU2hhZHlDU1MuQXBwbHlTaGltLHQuaC5pbnZhbGlkQ2FsbGJhY2s9R3I7dmFyIGk9ITB9ZWxzZSBpPSExO3JldHVybiBmdW5jdGlvbiBScih0KXshdC5nJiZ3aW5kb3cuU2hhZHlDU1MmJndpbmRvdy5TaGFkeUNTUy5DdXN0b21TdHlsZUludGVyZmFjZSYmKHQuZz13aW5kb3cuU2hh''@;'; + put 'put ''ZHlDU1MuQ3VzdG9tU3R5bGVJbnRlcmZhY2UsdC5nLnRyYW5zZm9ybUNhbGxiYWNrPWZ1bmN0aW9uKGkpe3QuTWEoaSl9LHQuZy52YWxpZGF0ZUNhbGxiYWNrPWZ1bmN0aW9uKCl7cmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCl7KHQuZy5lbnF1ZXVlZHx8dC5PKSYmdC5mbHVzaEN1''@;'; + put 'put ''c3RvbVN0eWxlcygpfSl9KX0odCksaX1mdW5jdGlvbiByYSh0LGksbil7dmFyIHM9czIoaSkuaXM7aWYobi5LKXt2YXIgbSxkPW4uSztmb3IobSBpbiBkKW51bGw9PT1tP2kuc3R5bGUucmVtb3ZlUHJvcGVydHkobSk6aS5zdHlsZS5zZXRQcm9wZXJ0eShtLGRbbV0pfSEoIShkPUR0W3NdKSYm''@;'; + put 'put ''aSE9PXQuaXx8ZCYmIiIhPT1fMihkKSkmJmQmJmQuX3N0eWxlJiYhZWEoZCkmJigoZWEoZCl8fGQuX2FwcGx5U2hpbVZhbGlkYXRpbmdWZXJzaW9uIT09ZC5fYXBwbHlTaGltTmV4dFZlcnNpb24pJiYoWTIodCksdC5oJiZ0LmgudHJhbnNmb3JtUnVsZXMoZC5fc3R5bGVBc3QscyksZC5fc3R5''@;'; + put 'put ''bGUudGV4dENvbnRlbnQ9U3QoaSxuLk0pLGZ1bmN0aW9uIGpyKHQpe3QuX2FwcGx5U2hpbVZhbGlkYXRpbmdWZXJzaW9uPXQuX2FwcGx5U2hpbU5leHRWZXJzaW9uLHQuX3ZhbGlkYXRpbmd8fCh0Ll92YWxpZGF0aW5nPSEwLEJyLnRoZW4oZnVuY3Rpb24oKXt0Ll9hcHBseVNoaW1DdXJyZW50''@;'; + put 'put ''VmVyc2lvbj10Ll9hcHBseVNoaW1OZXh0VmVyc2lvbix0Ll92YWxpZGF0aW5nPSExfSkpfShkKSksaDAmJih0PWkuc2hhZG93Um9vdCkmJih0PXQucXVlcnlTZWxlY3Rvcigic3R5bGUiKSkmJih0LnRleHRDb250ZW50PVN0KGksbi5NKSksbi5NPWQuX3N0eWxlQXN0KX1mdW5jdGlvbiBCZSh0''@;'; + put 'put ''LGkpe3JldHVybihpPSQyKGkpLmdldFJvb3ROb2RlKCkuaG9zdCk/TjAoaSl8fGFhKGkpP2k6QmUodCxpKTp0Lml9ZnVuY3Rpb24gR2UodCxpLG4pe3ZhciBzPUJlKHQsaSksZD1OMChzKSxtPWQuUjtmb3IodmFyIEwgaW4gcz09PXQuaXx8bXx8KEdlKHQscyxkKSxtPWQuUiksdD1PYmplY3Qu''@;'; + put 'put ''Y3JlYXRlKG18fG51bGwpLHM9ZnVuY3Rpb24gVHIodCxpLG4pe3ZhciBzPXt9LGQ9e307cmV0dXJuIGIyKGksZnVuY3Rpb24obSl7IWZ1bmN0aW9uIEVyKHQsaSxuLHMpe2lmKGkuRHx8YnQoaSksaS5ELlApe3ZhciBkPXMyKHQpO3Q9ZC5pcyxkPWQuaGEsZD10P1RlKHQsZCk6Imh0bWwiO3Zh''@;'; + put 'put ''ciBtPWkucGFyc2VkU2VsZWN0b3IsTD0hIW0ubWF0Y2goX3IpfHwiaHRtbCI9PT1kJiYtMTxtLmluZGV4T2YoImh0bWwiKSxGPTA9PT1tLmluZGV4T2YoIjpob3N0IikmJiFMOyJzaGFkeSI9PT1uJiYoRj0hKEw9bT09PWQrIiA+ICouIitkfHwtMSE9PW0uaW5kZXhPZigiaHRtbCIpKSYmMD09''@;'; + put 'put ''PW0uaW5kZXhPZihkKSksKEx8fEYpJiYobj1kLEYmJihpLkZ8fChpLkY9TmUoVDAsaSxUMC5oLHQ/Ii4iK3Q6IiIsZCkpLG49aS5GfHxkKSxMJiYiaHRtbCI9PT1kJiYobj1pLkZ8fGkuTykscyh7QmE6bixhYjpGLHFiOkx9KSl9fSh0LG0sbixmdW5jdGlvbihMKXskaS5jYWxsKHQuX2VsZW1l''@;'; + put 'put ''bnR8fHQsTC5CYSkmJl90KG0sTC5hYj9zOmQpfSl9LG51bGwsITApLHtoYjpkLFphOnN9fShpLG4uTSxuLmNzc0J1aWxkKSxpPWZ1bmN0aW9uIERyKHQsaSl7dmFyIG49e30scz1bXTtyZXR1cm4gYjIodCxmdW5jdGlvbihkKXtkLkR8fGJ0KGQpO3ZhciBtPWQuRnx8ZC5wYXJzZWRTZWxlY3Rv''@;'; + put 'put ''cjtpJiZkLkQuUCYmbSYmJGkuY2FsbChpLG0pJiYoX3QoZCxuKSxkPWQuaW5kZXgsbT1wYXJzZUludChkLzMyLDEwKSxzW21dPShzW21dfHwwKXwxPDxkJTMyKX0sbnVsbCwhMCkse1A6bixrZXk6c319KGQuTSxpKS5QLE9iamVjdC5hc3NpZ24odCxzLlphLGkscy5oYiksaT1uLkspKChkPWlb''@;'; + put 'put ''TF0pfHwwPT09ZCkmJih0W0xdPWQpO2ZvcihMPXd0LGk9T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModCksZD0wO2Q8aS5sZW5ndGg7ZCsrKXRbcz1pW2RdXT1xMihMLHRbc10sdCk7bi5SPXR9KFg9RzEucHJvdG90eXBlKS5mbHVzaD1mdW5jdGlvbigpe0tpKCl9LFguWGE9ZnVuY3Rpb24o''@;'; + put 'put ''dCl7cmV0dXJuIFcyKHQpfSxYLmxiPWZ1bmN0aW9uKHQpe3JldHVybiBTMih0KX0sWC5wcmVwYXJlVGVtcGxhdGU9ZnVuY3Rpb24odCxpLG4pe3RoaXMucHJlcGFyZVRlbXBsYXRlRG9tKHQsaSksdGhpcy5wcmVwYXJlVGVtcGxhdGVTdHlsZXModCxpLG4pfSxYLnByZXBhcmVUZW1wbGF0ZVN0''@;'; + put 'put ''eWxlcz1mdW5jdGlvbih0LGksbil7aWYoIXQuX3ByZXBhcmVkJiYhTDIpe2gwfHx4MltpXXx8KHgyW2ldPWtpKGkpKSx0Ll9wcmVwYXJlZD0hMCx0Lm5hbWU9aSx0LmV4dGVuZHM9bixEdFtpXT10O3ZhciBzPV8yKHQpLGQ9RWUocyk7bj17aXM6aSxleHRlbmRzOm59O2Zvcih2YXIgbT1bXSxM''@;'; + put 'put ''PXQuY29udGVudC5xdWVyeVNlbGVjdG9yQWxsKCJzdHlsZSIpLEY9MDtGPEwubGVuZ3RoO0YrKyl7dmFyIEc9TFtGXTtpZihHLmhhc0F0dHJpYnV0ZSgic2hhZHktdW5zY29wZWQiKSl7aWYoIWgwKXt2YXIgVT1HLnRleHRDb250ZW50O2lmKCFGaS5oYXMoVSkpe0ZpLmFkZChVKTt2YXIgSz1k''@;'; + put 'put ''b2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpO0suc2V0QXR0cmlidXRlKCJzaGFkeS11bnNjb3BlZCIsIiIpLEsudGV4dENvbnRlbnQ9VSxkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKEspfUcucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChHKX19ZWxzZSBtLnB1c2goRy50ZXh0Q29udGVu''@;'; + put 'put ''dCksRy5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKEcpfW09bS5qb2luKCIiKS50cmltKCkrKGxhW2ldfHwiIiksWTIodGhpcyksZHx8KChMPSFzKSYmKEw9TXQudGVzdChtKXx8bXQudGVzdChtKSxNdC5sYXN0SW5kZXg9MCxtdC5sYXN0SW5kZXg9MCksRj1iZShtKSxMJiZDMCYmdGhpcy5oJiZ0''@;'; + put 'put ''aGlzLmgudHJhbnNmb3JtUnVsZXMoRixpKSx0Ll9zdHlsZUFzdD1GKSxMPVtdLEMwfHwoTD1mdW5jdGlvbiB4cih0KXt2YXIgaT17fSxuPVtdLHM9MDtmb3IodmFyIGQgaW4gYjIodCxmdW5jdGlvbihtKXtidChtKSxtLmluZGV4PXMrKyxtPW0uRC5jc3NUZXh0O2Zvcih2YXIgTDtMPXVyLmV4''@;'; + put 'put ''ZWMobSk7KSI6IiE9PUxbMl0mJihpW0xbMV1dPSEwKX0sZnVuY3Rpb24obSl7bi5wdXNoKG0pfSksdC5oPW4sdD1bXSxpKXQucHVzaChkKTtyZXR1cm4gdH0odC5fc3R5bGVBc3QpKSwoIUwubGVuZ3RofHxDMCkmJihGPWgwP3QuY29udGVudDpudWxsLGk9eDJbaV18fG51bGwscz0ocz1TdChu''@;'; + put 'put ''LHQuX3N0eWxlQXN0LG51bGwscyxkP206IiIpKS5sZW5ndGg/eGUocyxuLmlzLEYsaSk6bnVsbCx0Ll9zdHlsZT1zKSx0Lmc9TH19LFguZmI9ZnVuY3Rpb24odCxpKXtsYVtpXT10LmpvaW4oIiAiKX0sWC5wcmVwYXJlVGVtcGxhdGVEb209ZnVuY3Rpb24odCxpKXtpZighTDIpe3ZhciBuPV8y''@;'; + put 'put ''KHQpO2gwfHwic2hhZHkiPT09bnx8dC5fZG9tUHJlcGFyZWR8fCh0Ll9kb21QcmVwYXJlZD0hMCxmdW5jdGlvbiBBcih0LGkpe0x0KFQwLHQsZnVuY3Rpb24obil7aDIobixpfHwiIil9KX0odC5jb250ZW50LGkpKX19LFguZmx1c2hDdXN0b21TdHlsZXM9ZnVuY3Rpb24oKXtpZighTDIpe3Zh''@;'; + put 'put ''ciB0PVkyKHRoaXMpO2lmKHRoaXMuZyl7dmFyIGk9dGhpcy5nLnByb2Nlc3NTdHlsZXMoKTtpZigodHx8dGhpcy5nLmVucXVldWVkKSYmIUVlKHRoaXMudS5jc3NCdWlsZCkpe2lmKEMwKXtpZighdGhpcy51LmNzc0J1aWxkKWZvcih0PTA7dDxpLmxlbmd0aDt0Kyspe3ZhciBuPXRoaXMuZy5n''@;'; + put 'put ''ZXRTdHlsZUZvckN1c3RvbVN0eWxlKGlbdF0pO2lmKG4mJkMwJiZ0aGlzLmgpe3ZhciBzPVcyKG4pO1kyKHRoaXMpLHRoaXMuaC50cmFuc2Zvcm1SdWxlcyhzKSxuLnRleHRDb250ZW50PVMyKHMpfX19ZWxzZXtmb3IoZnVuY3Rpb24genIodCxpKXtpPWkubWFwKGZ1bmN0aW9uKG4pe3JldHVy''@;'; + put 'put ''biB0LmcuZ2V0U3R5bGVGb3JDdXN0b21TdHlsZShuKX0pLmZpbHRlcihmdW5jdGlvbihuKXtyZXR1cm4hIW59KSxpLnNvcnQoZnVuY3Rpb24obixzKXtyZXR1cm4obj1zLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKG4pKSZOb2RlLkRPQ1VNRU5UX1BPU0lUSU9OX0ZPTExPV0lORz8xOm4mTm9k''@;'; + put 'put ''ZS5ET0NVTUVOVF9QT1NJVElPTl9QUkVDRURJTkc/LTE6MH0pLHQudS5NLnJ1bGVzPWkubWFwKGZ1bmN0aW9uKG4pe3JldHVybiBXMihuKX0pfSh0aGlzLGkpLEdlKHRoaXMsdGhpcy5pLHRoaXMudSksdD0wO3Q8aS5sZW5ndGg7dCsrKShuPXRoaXMuZy5nZXRTdHlsZUZvckN1c3RvbVN0eWxl''@;'; + put 'put ''KGlbdF0pKSYma3Iobix0aGlzLnUuUik7dGhpcy5PJiZ0aGlzLnN0eWxlRG9jdW1lbnQoKX10aGlzLmcuZW5xdWV1ZWQ9ITF9fX19LFguc3R5bGVFbGVtZW50PWZ1bmN0aW9uKHQsaSl7aWYoTDIpe2lmKGkpe04wKHQpfHxJZSh0LG5ldyB3MihudWxsKSk7dmFyIG49TjAodCk7bi5LPW4uS3x8''@;'; + put 'put ''e30sT2JqZWN0LmFzc2lnbihuLkssaSkscmEodGhpcyx0LG4pfX1lbHNlIGlmKG49TjAodCl8fGFhKHQpKWlmKHQhPT10aGlzLmkmJih0aGlzLk89ITApLGkmJihuLks9bi5LfHx7fSxPYmplY3QuYXNzaWduKG4uSyxpKSksQzApcmEodGhpcyx0LG4pO2Vsc2UgaWYodGhpcy5mbHVzaCgpLEdl''@;'; + put 'put ''KHRoaXMsdCxuKSxuLnphJiZuLnphLmxlbmd0aCl7dmFyIHM7aT1zMih0KS5pczt0OntpZihzPWlhLmNhY2hlW2ldKWZvcih2YXIgZD1zLmxlbmd0aC0xOzA8PWQ7ZC0tKXt2YXIgbT1zW2RdO2U6e2Zvcih2YXIgTD1uLnphLEY9MDtGPEwubGVuZ3RoO0YrKyl7dmFyIEc9TFtGXTtpZihtLlBb''@;'; + put 'put ''R10hPT1uLlJbR10pe0w9ITE7YnJlYWsgZX19TD0hMH1pZihMKXtzPW07YnJlYWsgdH19cz12b2lkIDB9TD1zP3Muc3R5bGVFbGVtZW50Om51bGwsZD1uLkwsKG09cyYmcy5MKXx8KG09aSsiLSIrKG09dGhpcy5kYVtpXT0odGhpcy5kYVtpXXx8MCkrMSkpLG4uTD1tLG09bi5MLEY9d3QsRj1M''@;'; + put 'put ''P0wudGV4dENvbnRlbnR8fCIiOmZ1bmN0aW9uIE5yKHQsaSxuLHMpe3ZhciBkPXMyKGkpLG09VGUoZC5pcyxkLmhhKSxMPW5ldyBSZWdFeHAoIig/Ol58W14uI1s6XSkiKyhpLmV4dGVuZHM/IlxcIittLnNsaWNlKDAsLTEpKyJcXF0iOm0pKyIoJHxbLjpbXFxzPit+XSkiKSxGPU4wKGkpO2Q9''@;'; + put 'put ''Ri5NLEY9Ri5jc3NCdWlsZDt2YXIgRz1mdW5jdGlvbiBGcih0LGkpe3Q9dC5oO3ZhciBuPXt9O2lmKCFoMCYmdClmb3IodmFyIHM9MCxkPXRbc107czx0Lmxlbmd0aDtkPXRbKytzXSl7dmFyIG09ZCxMPWk7bS51PW5ldyBSZWdFeHAoIlxcYiIrbS5rZXlmcmFtZXNOYW1lKyIoPyFcXEJ8LSki''@;'; + put 'put ''LCJnIiksbS5nPW0ua2V5ZnJhbWVzTmFtZSsiLSIrTCxtLkY9bS5GfHxtLnNlbGVjdG9yLG0uc2VsZWN0b3I9bS5GLnJlcGxhY2UobS5rZXlmcmFtZXNOYW1lLG0uZyksbltkLmtleWZyYW1lc05hbWVdPUlyKGQpfXJldHVybiBufShkLHMpO3JldHVybiBTdChpLGQsZnVuY3Rpb24oVSl7dmFy''@;'; + put 'put ''IEs9IiI7aWYoVS5EfHxidChVKSxVLkQuY3NzVGV4dCYmKEs9a2UodCxVLkQuY3NzVGV4dCxuKSksVS5jc3NUZXh0PUssIWgwJiYhSWkoVSkmJlUuY3NzVGV4dCl7dmFyIEgxPUs9VS5jc3NUZXh0O2lmKG51bGw9PVUuSWEmJihVLklhPXByLnRlc3QoSykpLFUuSWEpaWYobnVsbD09VS5wYSlm''@;'; + put 'put ''b3IodmFyIFExIGluIFUucGE9W10sRylLIT09KEgxPShIMT1HW1ExXSkoSykpJiYoSz1IMSxVLnBhLnB1c2goUTEpKTtlbHNle2ZvcihRMT0wO1ExPFUucGEubGVuZ3RoOysrUTEpSz0oSDE9R1tVLnBhW1ExXV0pKEspO0gxPUt9VS5jc3NUZXh0PUgxLFUuRj1VLkZ8fFUuc2VsZWN0b3IsSz0i''@;'; + put 'put ''LiIrcyxIMT0wO2Zvcih2YXIgajE9KFExPUJpKFUuRikpLmxlbmd0aCxNMT12b2lkIDA7SDE8ajEmJihNMT1RMVtIMV0pO0gxKyspUTFbSDFdPU0xLm1hdGNoKEwpP00xLnJlcGxhY2UobSxLKTpLKyIgIitNMTtVLnNlbGVjdG9yPVExLmpvaW4oIiwiKX19LEYpfShGLHQsbi5SLG0pO3ZhciBV''@;'; + put 'put ''PShHPU4wKHQpKS5nO1UmJiFoMCYmVSE9PUwmJihVLl91c2VDb3VudC0tLDA+PVUuX3VzZUNvdW50JiZVLnBhcmVudE5vZGUmJlUucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChVKSksaDA/Ry5nPyhHLmcudGV4dENvbnRlbnQ9RixMPUcuZyk6RiYmKEw9eGUoRixtLHQuc2hhZG93Um9vdCxHLmgp''@;'; + put 'put ''KTpMP0wucGFyZW50Tm9kZXx8KHdyJiYtMTxGLmluZGV4T2YoIkBtZWRpYSIpJiYoTC50ZXh0Q29udGVudD1GKSxPaShMLG51bGwsRy5oKSk6RiYmKEw9eGUoRixtLG51bGwsRy5oKSksTCYmKEwuX3VzZUNvdW50PUwuX3VzZUNvdW50fHwwLEcuZyE9TCYmTC5fdXNlQ291bnQrKyxHLmc9TCks''@;'; + put 'put ''bT1MLGgwfHwoTD1uLkwsRz1GPXQuZ2V0QXR0cmlidXRlKCJjbGFzcyIpfHwiIixkJiYoRz1GLnJlcGxhY2UobmV3IFJlZ0V4cCgiXFxzKngtc2NvcGVcXHMqIitkKyJcXHMqIiwiZyIpLCIgIikpLEYhPT0oRys9KEc/IiAiOiIiKSsieC1zY29wZSAiK0wpJiZadCh0LEcpKSxzfHxpYS5zdG9y''@;'; + put 'put ''ZShpLG4uUixtLG4uTCl9fSxYLnN0eWxlRG9jdW1lbnQ9ZnVuY3Rpb24odCl7dGhpcy5zdHlsZVN1YnRyZWUodGhpcy5pLHQpfSxYLnN0eWxlU3VidHJlZT1mdW5jdGlvbih0LGkpe3ZhciBuPSQyKHQpLHM9bi5zaGFkb3dSb290LGQ9dD09PXRoaXMuaTtpZigoc3x8ZCkmJnRoaXMuc3R5bGVF''@;'; + put 'put ''bGVtZW50KHQsaSksdD1kP246cylmb3IodD1BcnJheS5mcm9tKHQucXVlcnlTZWxlY3RvckFsbCgiKiIpKS5maWx0ZXIoZnVuY3Rpb24obSl7cmV0dXJuICQyKG0pLnNoYWRvd1Jvb3R9KSxpPTA7aTx0Lmxlbmd0aDtpKyspdGhpcy5zdHlsZVN1YnRyZWUodFtpXSl9LFguTWE9ZnVuY3Rpb24o''@;'; + put 'put ''dCl7dmFyIGk9dGhpcyxuPV8yKHQpO2lmKG4hPT10aGlzLnUuY3NzQnVpbGQmJih0aGlzLnUuY3NzQnVpbGQ9biksIUVlKG4pKXt2YXIgcz1XMih0KTtiMihzLGZ1bmN0aW9uKGQpe2lmKGgwKVJpKGQpO2Vsc2V7dmFyIG09VDA7ZC5zZWxlY3Rvcj1kLnBhcnNlZFNlbGVjdG9yLFJpKGQpLGQu''@;'; + put 'put ''c2VsZWN0b3I9ZC5GPU5lKG0sZCxtLmksdm9pZCAwLHZvaWQgMCl9QzAmJiIiPT09biYmKFkyKGkpLGkuaCYmaS5oLnRyYW5zZm9ybVJ1bGUoZCkpfSksQzA/dC50ZXh0Q29udGVudD1TMihzKTp0aGlzLnUuTS5ydWxlcy5wdXNoKHMpfX0sWC5nZXRDb21wdXRlZFN0eWxlVmFsdWU9ZnVuY3Rp''@;'; + put 'put ''b24odCxpKXt2YXIgbjtyZXR1cm4gQzB8fChuPShOMCh0KXx8TjAoQmUodGhpcyx0KSkpLlJbaV0pLChuPW58fHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHQpLmdldFByb3BlcnR5VmFsdWUoaSkpP24udHJpbSgpOiIifSxYLmtiPWZ1bmN0aW9uKHQsaSl7dmFyIG49JDIodCkuZ2V0Um9vdE5v''@;'; + put 'put ''ZGUoKTtpZihpPWk/KCJzdHJpbmciPT10eXBlb2YgaT9pOlN0cmluZyhpKSkuc3BsaXQoL1xzLyk6W10sIShuPW4uaG9zdCYmbi5ob3N0LmxvY2FsTmFtZSkpe3ZhciBzPXQuZ2V0QXR0cmlidXRlKCJjbGFzcyIpO2lmKHMpe3M9cy5zcGxpdCgvXHMvKTtmb3IodmFyIGQ9MDtkPHMubGVuZ3Ro''@;'; + put 'put ''O2QrKylpZihzW2RdPT09VDAuZyl7bj1zW2QrMV07YnJlYWt9fX1uJiZpLnB1c2goVDAuZyxuKSxDMHx8KG49TjAodCkpJiZuLkwmJmkucHVzaCh3dC5nLG4uTCksWnQodCxpLmpvaW4oIiAiKSl9LFguVGE9ZnVuY3Rpb24odCl7cmV0dXJuIE4wKHQpfSxYLmpiPWZ1bmN0aW9uKHQsaSl7aDIo''@;'; + put 'put ''dCxpKX0sWC5tYj1mdW5jdGlvbih0LGkpe2gyKHQsaSwhMCl9LFguaWI9ZnVuY3Rpb24odCl7cmV0dXJuIE9lKHQpfSxYLlZhPWZ1bmN0aW9uKHQpe3JldHVybiBYaSh0KX0sRzEucHJvdG90eXBlLmZsdXNoPUcxLnByb3RvdHlwZS5mbHVzaCxHMS5wcm90b3R5cGUucHJlcGFyZVRlbXBsYXRl''@;'; + put 'put ''PUcxLnByb3RvdHlwZS5wcmVwYXJlVGVtcGxhdGUsRzEucHJvdG90eXBlLnN0eWxlRWxlbWVudD1HMS5wcm90b3R5cGUuc3R5bGVFbGVtZW50LEcxLnByb3RvdHlwZS5zdHlsZURvY3VtZW50PUcxLnByb3RvdHlwZS5zdHlsZURvY3VtZW50LEcxLnByb3RvdHlwZS5zdHlsZVN1YnRyZWU9RzEu''@;'; + put 'put ''cHJvdG90eXBlLnN0eWxlU3VidHJlZSxHMS5wcm90b3R5cGUuZ2V0Q29tcHV0ZWRTdHlsZVZhbHVlPUcxLnByb3RvdHlwZS5nZXRDb21wdXRlZFN0eWxlVmFsdWUsRzEucHJvdG90eXBlLnNldEVsZW1lbnRDbGFzcz1HMS5wcm90b3R5cGUua2IsRzEucHJvdG90eXBlLl9zdHlsZUluZm9Gb3JO''@;'; + put 'put ''b2RlPUcxLnByb3RvdHlwZS5UYSxHMS5wcm90b3R5cGUudHJhbnNmb3JtQ3VzdG9tU3R5bGVGb3JEb2N1bWVudD1HMS5wcm90b3R5cGUuTWEsRzEucHJvdG90eXBlLmdldFN0eWxlQXN0PUcxLnByb3RvdHlwZS5YYSxHMS5wcm90b3R5cGUuc3R5bGVBc3RUb1N0cmluZz1HMS5wcm90b3R5cGUu''@;'; + put 'put ''bGIsRzEucHJvdG90eXBlLmZsdXNoQ3VzdG9tU3R5bGVzPUcxLnByb3RvdHlwZS5mbHVzaEN1c3RvbVN0eWxlcyxHMS5wcm90b3R5cGUuc2NvcGVOb2RlPUcxLnByb3RvdHlwZS5qYixHMS5wcm90b3R5cGUudW5zY29wZU5vZGU9RzEucHJvdG90eXBlLm1iLEcxLnByb3RvdHlwZS5zY29wZUZv''@;'; + put 'put ''ck5vZGU9RzEucHJvdG90eXBlLmliLEcxLnByb3RvdHlwZS5jdXJyZW50U2NvcGVGb3JOb2RlPUcxLnByb3RvdHlwZS5WYSxHMS5wcm90b3R5cGUucHJlcGFyZUFkb3B0ZWRDc3NUZXh0PUcxLnByb3RvdHlwZS5mYixPYmplY3QuZGVmaW5lUHJvcGVydGllcyhHMS5wcm90b3R5cGUse25hdGl2''@;'; + put 'put ''ZVNoYWRvdzp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGgwfX0sbmF0aXZlQ3NzOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gQzB9fX0pO3ZhciBqZSxSZSxWMD1uZXcgRzE7d2luZG93LlNoYWR5Q1NTJiYoamU9d2luZG93LlNoYWR5Q1NTLkFwcGx5U2hpbSxSZT13aW5kb3cuU2hhZHlDU1MuQ3Vz''@;'; + put 'put ''dG9tU3R5bGVJbnRlcmZhY2UpLHdpbmRvdy5TaGFkeUNTUz17U2NvcGluZ1NoaW06VjAscHJlcGFyZVRlbXBsYXRlOmZ1bmN0aW9uKHQsaSxuKXtWMC5mbHVzaEN1c3RvbVN0eWxlcygpLFYwLnByZXBhcmVUZW1wbGF0ZSh0LGksbil9LHByZXBhcmVUZW1wbGF0ZURvbTpmdW5jdGlvbih0LGkp''@;'; + put 'put ''e1YwLnByZXBhcmVUZW1wbGF0ZURvbSh0LGkpfSxwcmVwYXJlVGVtcGxhdGVTdHlsZXM6ZnVuY3Rpb24odCxpLG4pe1YwLmZsdXNoQ3VzdG9tU3R5bGVzKCksVjAucHJlcGFyZVRlbXBsYXRlU3R5bGVzKHQsaSxuKX0sc3R5bGVTdWJ0cmVlOmZ1bmN0aW9uKHQsaSl7VjAuZmx1c2hDdXN0b21T''@;'; + put 'put ''dHlsZXMoKSxWMC5zdHlsZVN1YnRyZWUodCxpKX0sc3R5bGVFbGVtZW50OmZ1bmN0aW9uKHQpe1YwLmZsdXNoQ3VzdG9tU3R5bGVzKCksVjAuc3R5bGVFbGVtZW50KHQpfSxzdHlsZURvY3VtZW50OmZ1bmN0aW9uKHQpe1YwLmZsdXNoQ3VzdG9tU3R5bGVzKCksVjAuc3R5bGVEb2N1bWVudCh0''@;'; + put 'put ''KX0sZmx1c2hDdXN0b21TdHlsZXM6ZnVuY3Rpb24oKXtWMC5mbHVzaEN1c3RvbVN0eWxlcygpfSxnZXRDb21wdXRlZFN0eWxlVmFsdWU6ZnVuY3Rpb24odCxpKXtyZXR1cm4gVjAuZ2V0Q29tcHV0ZWRTdHlsZVZhbHVlKHQsaSl9LG5hdGl2ZUNzczpDMCxuYXRpdmVTaGFkb3c6aDAsY3NzQnVp''@;'; + put 'put ''bGQ6VnQsZGlzYWJsZVJ1bnRpbWU6TDJ9LGplJiYod2luZG93LlNoYWR5Q1NTLkFwcGx5U2hpbT1qZSksUmUmJih3aW5kb3cuU2hhZHlDU1MuQ3VzdG9tU3R5bGVJbnRlcmZhY2U9UmUpLGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGkoTTEpe3JldHVybiIiPT1NMSYmKG0uY2FsbCh0aGlzKSx0aGlz''@;'; + put 'put ''Lm09ITApLE0xLnRvTG93ZXJDYXNlKCl9ZnVuY3Rpb24gbihNMSl7dmFyICQxPU0xLmNoYXJDb2RlQXQoMCk7cmV0dXJuIDMyPCQxJiYxMjc+JDEmJi0xPT1bMzQsMzUsNjAsNjIsNjMsOTZdLmluZGV4T2YoJDEpP00xOmVuY29kZVVSSUNvbXBvbmVudChNMSl9ZnVuY3Rpb24gcyhNMSl7dmFy''@;'; + put 'put ''ICQxPU0xLmNoYXJDb2RlQXQoMCk7cmV0dXJuIDMyPCQxJiYxMjc+JDEmJi0xPT1bMzQsMzUsNjAsNjIsOTZdLmluZGV4T2YoJDEpP00xOmVuY29kZVVSSUNvbXBvbmVudChNMSl9ZnVuY3Rpb24gZChNMSwkMSx6MSl7ZnVuY3Rpb24gbzAoSTApe2UyLnB1c2goSTApfXZhciBrMT0kMXx8InNj''@;'; + put 'put ''aGVtZSBzdGFydCIsbTA9MCxUMT0iIix0Mj0hMSxGMD0hMSxlMj1bXTt0OmZvcig7KG51bGwhPU0xW20wLTFdfHwwPT1tMCkmJiF0aGlzLm07KXt2YXIgdDE9TTFbbTBdO3N3aXRjaChrMSl7Y2FzZSJzY2hlbWUgc3RhcnQiOmlmKCF0MXx8IUgxLnRlc3QodDEpKXtpZigkMSl7bzAoIkludmFs''@;'; + put 'put ''aWQgc2NoZW1lLiIpO2JyZWFrIHR9VDE9IiIsazE9Im5vIHNjaGVtZSI7Y29udGludWV9VDErPXQxLnRvTG93ZXJDYXNlKCksazE9InNjaGVtZSI7YnJlYWs7Y2FzZSJzY2hlbWUiOmlmKHQxJiZRMS50ZXN0KHQxKSlUMSs9dDEudG9Mb3dlckNhc2UoKTtlbHNle2lmKCI6IiE9dDEpe2lmKCQx''@;'; + put 'put ''KXtudWxsIT10MSYmbzAoIkNvZGUgcG9pbnQgbm90IGFsbG93ZWQgaW4gc2NoZW1lOiAiK3QxKTticmVhayB0fVQxPSIiLG0wPTAsazE9Im5vIHNjaGVtZSI7Y29udGludWV9aWYodGhpcy5sPVQxLFQxPSIiLCQxKWJyZWFrIHQ7dm9pZCAwIT09VVt0aGlzLmxdJiYodGhpcy5HPSEwKSxrMT0i''@;'; + put 'put ''ZmlsZSI9PXRoaXMubD8icmVsYXRpdmUiOnRoaXMuRyYmejEmJnoxLmw9PXRoaXMubD8icmVsYXRpdmUgb3IgYXV0aG9yaXR5Ijp0aGlzLkc/ImF1dGhvcml0eSBmaXJzdCBzbGFzaCI6InNjaGVtZSBkYXRhIn1icmVhaztjYXNlInNjaGVtZSBkYXRhIjoiPyI9PXQxPyh0aGlzLkE9Ij8iLGsx''@;'; + put 'put ''PSJxdWVyeSIpOiIjIj09dDE/KHRoaXMuQz0iIyIsazE9ImZyYWdtZW50Iik6bnVsbCE9dDEmJiJcdCIhPXQxJiYiXG4iIT10MSYmIlxyIiE9dDEmJih0aGlzLnZhKz1uKHQxKSk7YnJlYWs7Y2FzZSJubyBzY2hlbWUiOmlmKHoxJiZ2b2lkIDAhPT1VW3oxLmxdKXtrMT0icmVsYXRpdmUiO2Nv''@;'; + put 'put ''bnRpbnVlfW8wKCJNaXNzaW5nIHNjaGVtZS4iKSxtLmNhbGwodGhpcyksdGhpcy5tPSEwO2JyZWFrO2Nhc2UicmVsYXRpdmUgb3IgYXV0aG9yaXR5IjppZigiLyIhPXQxfHwiLyIhPU0xW20wKzFdKXtvMCgiRXhwZWN0ZWQgLywgZ290OiAiK3QxKSxrMT0icmVsYXRpdmUiO2NvbnRpbnVlfWsx''@;'; + put 'put ''PSJhdXRob3JpdHkgaWdub3JlIHNsYXNoZXMiO2JyZWFrO2Nhc2UicmVsYXRpdmUiOmlmKHRoaXMuRz0hMCwiZmlsZSIhPXRoaXMubCYmKHRoaXMubD16MS5sKSxudWxsPT10MSl7dGhpcy5vPXoxLm8sdGhpcy52PXoxLnYsdGhpcy5zPXoxLnMuc2xpY2UoKSx0aGlzLkE9ejEuQSx0aGlzLkI9''@;'; + put 'put ''ejEuQix0aGlzLmo9ejEuajticmVhayB0fWlmKCIvIj09dDF8fCJcXCI9PXQxKSJcXCI9PXQxJiZvMCgiXFwgaXMgYW4gaW52YWxpZCBjb2RlIHBvaW50LiIpLGsxPSJyZWxhdGl2ZSBzbGFzaCI7ZWxzZSBpZigiPyI9PXQxKXRoaXMubz16MS5vLHRoaXMudj16MS52LHRoaXMucz16MS5zLnNs''@;'; + put 'put ''aWNlKCksdGhpcy5BPSI/Iix0aGlzLkI9ejEuQix0aGlzLmo9ejEuaixrMT0icXVlcnkiO2Vsc2V7aWYoIiMiIT10MSl7azE9TTFbbTArMV07dmFyIGwwPU0xW20wKzJdOygiZmlsZSIhPXRoaXMubHx8IUgxLnRlc3QodDEpfHwiOiIhPWsxJiYifCIhPWsxfHxudWxsIT1sMCYmIi8iIT1sMCYm''@;'; + put 'put ''IlxcIiE9bDAmJiI/IiE9bDAmJiIjIiE9bDApJiYodGhpcy5vPXoxLm8sdGhpcy52PXoxLnYsdGhpcy5CPXoxLkIsdGhpcy5qPXoxLmosdGhpcy5zPXoxLnMuc2xpY2UoKSx0aGlzLnMucG9wKCkpLGsxPSJyZWxhdGl2ZSBwYXRoIjtjb250aW51ZX10aGlzLm89ejEubyx0aGlzLnY9ejEudix0''@;'; + put 'put ''aGlzLnM9ejEucy5zbGljZSgpLHRoaXMuQT16MS5BLHRoaXMuQz0iIyIsdGhpcy5CPXoxLkIsdGhpcy5qPXoxLmosazE9ImZyYWdtZW50In1icmVhaztjYXNlInJlbGF0aXZlIHNsYXNoIjppZigiLyIhPXQxJiYiXFwiIT10MSl7ImZpbGUiIT10aGlzLmwmJih0aGlzLm89ejEubyx0aGlzLnY9''@;'; + put 'put ''ejEudix0aGlzLkI9ejEuQix0aGlzLmo9ejEuaiksazE9InJlbGF0aXZlIHBhdGgiO2NvbnRpbnVlfSJcXCI9PXQxJiZvMCgiXFwgaXMgYW4gaW52YWxpZCBjb2RlIHBvaW50LiIpLGsxPSJmaWxlIj09dGhpcy5sPyJmaWxlIGhvc3QiOiJhdXRob3JpdHkgaWdub3JlIHNsYXNoZXMiO2JyZWFr''@;'; + put 'put ''O2Nhc2UiYXV0aG9yaXR5IGZpcnN0IHNsYXNoIjppZigiLyIhPXQxKXtvMCgiRXhwZWN0ZWQgJy8nLCBnb3Q6ICIrdDEpLGsxPSJhdXRob3JpdHkgaWdub3JlIHNsYXNoZXMiO2NvbnRpbnVlfWsxPSJhdXRob3JpdHkgc2Vjb25kIHNsYXNoIjticmVhaztjYXNlImF1dGhvcml0eSBzZWNvbmQg''@;'; + put 'put ''c2xhc2giOmlmKGsxPSJhdXRob3JpdHkgaWdub3JlIHNsYXNoZXMiLCIvIiE9dDEpe28wKCJFeHBlY3RlZCAnLycsIGdvdDogIit0MSk7Y29udGludWV9YnJlYWs7Y2FzZSJhdXRob3JpdHkgaWdub3JlIHNsYXNoZXMiOmlmKCIvIiE9dDEmJiJcXCIhPXQxKXtrMT0iYXV0aG9yaXR5Ijtjb250''@;'; + put 'put ''aW51ZX1vMCgiRXhwZWN0ZWQgYXV0aG9yaXR5LCBnb3Q6ICIrdDEpO2JyZWFrO2Nhc2UiYXV0aG9yaXR5IjppZigiQCI9PXQxKXtmb3IodDImJihvMCgiQCBhbHJlYWR5IHNlZW4uIiksVDErPSIlNDAiKSx0Mj0hMCx0MT0wO3QxPFQxLmxlbmd0aDt0MSsrKSJcdCI9PShsMD1UMVt0MV0pfHwi''@;'; + put 'put ''XG4iPT1sMHx8IlxyIj09bDA/bzAoIkludmFsaWQgd2hpdGVzcGFjZSBpbiBhdXRob3JpdHkuIik6IjoiPT1sMCYmbnVsbD09PXRoaXMuaj90aGlzLmo9IiI6KGwwPW4obDApLG51bGwhPT10aGlzLmo/dGhpcy5qKz1sMDp0aGlzLkIrPWwwKTtUMT0iIn1lbHNle2lmKG51bGw9PXQxfHwiLyI9''@;'; + put 'put ''PXQxfHwiXFwiPT10MXx8Ij8iPT10MXx8IiMiPT10MSl7bTAtPVQxLmxlbmd0aCxUMT0iIixrMT0iaG9zdCI7Y29udGludWV9VDErPXQxfWJyZWFrO2Nhc2UiZmlsZSBob3N0IjppZihudWxsPT10MXx8Ii8iPT10MXx8IlxcIj09dDF8fCI/Ij09dDF8fCIjIj09dDEpezIhPVQxLmxlbmd0aHx8''@;'; + put 'put ''IUgxLnRlc3QoVDFbMF0pfHwiOiIhPVQxWzFdJiYifCIhPVQxWzFdPygwIT1UMS5sZW5ndGgmJih0aGlzLm89aS5jYWxsKHRoaXMsVDEpLFQxPSIiKSxrMT0icmVsYXRpdmUgcGF0aCBzdGFydCIpOmsxPSJyZWxhdGl2ZSBwYXRoIjtjb250aW51ZX0iXHQiPT10MXx8IlxuIj09dDF8fCJcciI9''@;'; + put 'put ''PXQxP28wKCJJbnZhbGlkIHdoaXRlc3BhY2UgaW4gZmlsZSBob3N0LiIpOlQxKz10MTticmVhaztjYXNlImhvc3QiOmNhc2UiaG9zdG5hbWUiOmlmKCI6IiE9dDF8fEYwKXtpZihudWxsPT10MXx8Ii8iPT10MXx8IlxcIj09dDF8fCI/Ij09dDF8fCIjIj09dDEpe2lmKHRoaXMubz1pLmNhbGwo''@;'; + put 'put ''dGhpcyxUMSksVDE9IiIsazE9InJlbGF0aXZlIHBhdGggc3RhcnQiLCQxKWJyZWFrIHQ7Y29udGludWV9Ilx0IiE9dDEmJiJcbiIhPXQxJiYiXHIiIT10MT8oIlsiPT10MT9GMD0hMDoiXSI9PXQxJiYoRjA9ITEpLFQxKz10MSk6bzAoIkludmFsaWQgY29kZSBwb2ludCBpbiBob3N0L2hvc3Ru''@;'; + put 'put ''YW1lOiAiK3QxKX1lbHNlIGlmKHRoaXMubz1pLmNhbGwodGhpcyxUMSksVDE9IiIsazE9InBvcnQiLCJob3N0bmFtZSI9PSQxKWJyZWFrIHQ7YnJlYWs7Y2FzZSJwb3J0IjppZigvWzAtOV0vLnRlc3QodDEpKVQxKz10MTtlbHNle2lmKG51bGw9PXQxfHwiLyI9PXQxfHwiXFwiPT10MXx8Ij8i''@;'; + put 'put ''PT10MXx8IiMiPT10MXx8JDEpe2lmKCIiIT1UMSYmKChUMT1wYXJzZUludChUMSwxMCkpIT1VW3RoaXMubF0mJih0aGlzLnY9VDErIiIpLFQxPSIiKSwkMSlicmVhayB0O2sxPSJyZWxhdGl2ZSBwYXRoIHN0YXJ0Ijtjb250aW51ZX0iXHQiPT10MXx8IlxuIj09dDF8fCJcciI9PXQxP28wKCJJ''@;'; + put 'put ''bnZhbGlkIGNvZGUgcG9pbnQgaW4gcG9ydDogIit0MSk6KG0uY2FsbCh0aGlzKSx0aGlzLm09ITApfWJyZWFrO2Nhc2UicmVsYXRpdmUgcGF0aCBzdGFydCI6aWYoIlxcIj09dDEmJm8wKCInXFwnIG5vdCBhbGxvd2VkIGluIHBhdGguIiksazE9InJlbGF0aXZlIHBhdGgiLCIvIiE9dDEmJiJc''@;'; + put 'put ''XCIhPXQxKWNvbnRpbnVlO2JyZWFrO2Nhc2UicmVsYXRpdmUgcGF0aCI6bnVsbCE9dDEmJiIvIiE9dDEmJiJcXCIhPXQxJiYoJDF8fCI/IiE9dDEmJiIjIiE9dDEpPyJcdCIhPXQxJiYiXG4iIT10MSYmIlxyIiE9dDEmJihUMSs9bih0MSkpOigiXFwiPT10MSYmbzAoIlxcIG5vdCBhbGxvd2Vk''@;'; + put 'put ''IGluIHJlbGF0aXZlIHBhdGguIiksKGwwPUtbVDEudG9Mb3dlckNhc2UoKV0pJiYoVDE9bDApLCIuLiI9PVQxPyh0aGlzLnMucG9wKCksIi8iIT10MSYmIlxcIiE9dDEmJnRoaXMucy5wdXNoKCIiKSk6Ii4iPT1UMSYmIi8iIT10MSYmIlxcIiE9dDE/dGhpcy5zLnB1c2goIiIpOiIuIiE9VDEm''@;'; + put 'put ''JigiZmlsZSI9PXRoaXMubCYmMD09dGhpcy5zLmxlbmd0aCYmMj09VDEubGVuZ3RoJiZIMS50ZXN0KFQxWzBdKSYmInwiPT1UMVsxXSYmKFQxPVQxWzBdKyI6IiksdGhpcy5zLnB1c2goVDEpKSxUMT0iIiwiPyI9PXQxPyh0aGlzLkE9Ij8iLGsxPSJxdWVyeSIpOiIjIj09dDEmJih0aGlzLkM9''@;'; + put 'put ''IiMiLGsxPSJmcmFnbWVudCIpKTticmVhaztjYXNlInF1ZXJ5IjokMXx8IiMiIT10MT9udWxsIT10MSYmIlx0IiE9dDEmJiJcbiIhPXQxJiYiXHIiIT10MSYmKHRoaXMuQSs9cyh0MSkpOih0aGlzLkM9IiMiLGsxPSJmcmFnbWVudCIpO2JyZWFrO2Nhc2UiZnJhZ21lbnQiOm51bGwhPXQxJiYi''@;'; + put 'put ''XHQiIT10MSYmIlxuIiE9dDEmJiJcciIhPXQxJiYodGhpcy5DKz10MSl9bTArK319ZnVuY3Rpb24gbSgpe3RoaXMuQj10aGlzLnZhPXRoaXMubD0iIix0aGlzLmo9bnVsbCx0aGlzLnY9dGhpcy5vPSIiLHRoaXMucz1bXSx0aGlzLkM9dGhpcy5BPSIiLHRoaXMuRz10aGlzLm09ITF9ZnVuY3Rp''@;'; + put 'put ''b24gTChNMSwkMSl7dm9pZCAwPT09JDF8fCQxIGluc3RhbmNlb2YgTHx8KCQxPW5ldyBMKFN0cmluZygkMSkpKSx0aGlzLmc9TTEsbS5jYWxsKHRoaXMpLGQuY2FsbCh0aGlzLHRoaXMuZy5yZXBsYWNlKC9eWyBcdFxyXG5cZl0rfFsgXHRcclxuXGZdKyQvZywiIiksbnVsbCwkMSl9dmFyIEY9''@;'; + put 'put ''ITE7dHJ5e3ZhciBHPW5ldyBVUkwoImIiLCJodHRwOi8vYSIpO0cucGF0aG5hbWU9ImMlMjBkIixGPSJodHRwOi8vYS9jJTIwZCI9PT1HLmhyZWZ9Y2F0Y2goTTEpe31pZighRil7dmFyIFU9T2JqZWN0LmNyZWF0ZShudWxsKTtVLmZ0cD0yMSxVLmZpbGU9MCxVLmdvcGhlcj03MCxVLmh0dHA9''@;'; + put 'put ''ODAsVS5odHRwcz00NDMsVS53cz04MCxVLndzcz00NDM7dmFyIEs9T2JqZWN0LmNyZWF0ZShudWxsKTtLWyIlMmUiXT0iLiIsS1siLiUyZSJdPSIuLiIsS1siJTJlLiJdPSIuLiIsS1siJTJlJTJlIl09Ii4uIjt2YXIgSDE9L1thLXpBLVpdLyxRMT0vW2EtekEtWjAtOStcLS5dLztMLnByb3Rv''@;'; + put 'put ''dHlwZT17dG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ocmVmfSxnZXQgaHJlZigpe2lmKHRoaXMubSlyZXR1cm4gdGhpcy5nO3ZhciBNMT0iIjtyZXR1cm4oIiIhPXRoaXMuQnx8bnVsbCE9dGhpcy5qKSYmKE0xPXRoaXMuQisobnVsbCE9dGhpcy5qPyI6Iit0aGlzLmo6IiIpKyJA''@;'; + put 'put ''IiksdGhpcy5wcm90b2NvbCsodGhpcy5HPyIvLyIrTTErdGhpcy5ob3N0OiIiKSt0aGlzLnBhdGhuYW1lK3RoaXMuQSt0aGlzLkN9LHNldCBocmVmKE0xKXttLmNhbGwodGhpcyksZC5jYWxsKHRoaXMsTTEpfSxnZXQgcHJvdG9jb2woKXtyZXR1cm4gdGhpcy5sKyI6In0sc2V0IHByb3RvY29s''@;'; + put 'put ''KE0xKXt0aGlzLm18fGQuY2FsbCh0aGlzLE0xKyI6Iiwic2NoZW1lIHN0YXJ0Iil9LGdldCBob3N0KCl7cmV0dXJuIHRoaXMubT8iIjp0aGlzLnY/dGhpcy5vKyI6Iit0aGlzLnY6dGhpcy5vfSxzZXQgaG9zdChNMSl7IXRoaXMubSYmdGhpcy5HJiZkLmNhbGwodGhpcyxNMSwiaG9zdCIpfSxn''@;'; + put 'put ''ZXQgaG9zdG5hbWUoKXtyZXR1cm4gdGhpcy5vfSxzZXQgaG9zdG5hbWUoTTEpeyF0aGlzLm0mJnRoaXMuRyYmZC5jYWxsKHRoaXMsTTEsImhvc3RuYW1lIil9LGdldCBwb3J0KCl7cmV0dXJuIHRoaXMudn0sc2V0IHBvcnQoTTEpeyF0aGlzLm0mJnRoaXMuRyYmZC5jYWxsKHRoaXMsTTEsInBv''@;'; + put 'put ''cnQiKX0sZ2V0IHBhdGhuYW1lKCl7cmV0dXJuIHRoaXMubT8iIjp0aGlzLkc/Ii8iK3RoaXMucy5qb2luKCIvIik6dGhpcy52YX0sc2V0IHBhdGhuYW1lKE0xKXshdGhpcy5tJiZ0aGlzLkcmJih0aGlzLnM9W10sZC5jYWxsKHRoaXMsTTEsInJlbGF0aXZlIHBhdGggc3RhcnQiKSl9LGdldCBz''@;'; + put 'put ''ZWFyY2goKXtyZXR1cm4gdGhpcy5tfHwhdGhpcy5BfHwiPyI9PXRoaXMuQT8iIjp0aGlzLkF9LHNldCBzZWFyY2goTTEpeyF0aGlzLm0mJnRoaXMuRyYmKHRoaXMuQT0iPyIsIj8iPT1NMVswXSYmKE0xPU0xLnNsaWNlKDEpKSxkLmNhbGwodGhpcyxNMSwicXVlcnkiKSl9LGdldCBoYXNoKCl7''@;'; + put 'put ''cmV0dXJuIHRoaXMubXx8IXRoaXMuQ3x8IiMiPT10aGlzLkM/IiI6dGhpcy5DfSxzZXQgaGFzaChNMSl7dGhpcy5tfHwoTTE/KHRoaXMuQz0iIyIsIiMiPT1NMVswXSYmKE0xPU0xLnNsaWNlKDEpKSxkLmNhbGwodGhpcyxNMSwiZnJhZ21lbnQiKSk6dGhpcy5DPSIiKX0sZ2V0IG9yaWdpbigp''@;'; + put 'put ''e3ZhciBNMTtpZih0aGlzLm18fCF0aGlzLmwpcmV0dXJuIiI7c3dpdGNoKHRoaXMubCl7Y2FzZSJkYXRhIjpjYXNlImZpbGUiOmNhc2UiamF2YXNjcmlwdCI6Y2FzZSJtYWlsdG8iOnJldHVybiJudWxsIn1yZXR1cm4oTTE9dGhpcy5ob3N0KT90aGlzLmwrIjovLyIrTTE6IiJ9fTt2YXIgajE9''@;'; + put 'put ''dC5VUkw7ajEmJihMLmNyZWF0ZU9iamVjdFVSTD1mdW5jdGlvbihNMSl7cmV0dXJuIGoxLmNyZWF0ZU9iamVjdFVSTC5hcHBseShqMSxhcmd1bWVudHMpfSxMLnJldm9rZU9iamVjdFVSTD1mdW5jdGlvbihNMSl7ajEucmV2b2tlT2JqZWN0VVJMKE0xKX0pLHQuVVJMPUx9fSh3aW5kb3cpO3Zh''@;'; + put 'put ''ciBuYT13aW5kb3cuY3VzdG9tRWxlbWVudHMsY2E9ITEsemU9bnVsbDtmdW5jdGlvbiBFdCgpe3dpbmRvdy5IVE1MVGVtcGxhdGVFbGVtZW50LmJvb3RzdHJhcCYmd2luZG93LkhUTUxUZW1wbGF0ZUVsZW1lbnQuYm9vdHN0cmFwKHdpbmRvdy5kb2N1bWVudCksemUmJnplKCksY2E9ITAsd2lu''@;'; + put 'put ''ZG93LldlYkNvbXBvbmVudHMucmVhZHk9ITAsZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoIldlYkNvbXBvbmVudHNSZWFkeSIse2J1YmJsZXM6ITB9KSl9bmEucG9seWZpbGxXcmFwRmx1c2hDYWxsYmFjayYmbmEucG9seWZpbGxXcmFwRmx1c2hDYWxsYmFjayhmdW5j''@;'; + put 'put ''dGlvbih0KXt6ZT10LGNhJiZ0KCl9KSwiY29tcGxldGUiIT09ZG9jdW1lbnQucmVhZHlTdGF0ZT8od2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLEV0KSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsZnVuY3Rpb24oKXt3aW5kb3cucmVtb3ZlRXZlbnRM''@;'; + put 'put ''aXN0ZW5lcigibG9hZCIsRXQpLEV0KCl9KSk6RXQoKX0uY2FsbCh0aGlzKSxmdW5jdGlvbihYLEYxKXtpZigib2JqZWN0Ij09dHlwZW9mIGV4cG9ydHMmJiJvYmplY3QiPT10eXBlb2YgbW9kdWxlKW1vZHVsZS5leHBvcnRzPUYxKCk7ZWxzZSBpZigiZnVuY3Rpb24iPT10eXBlb2YgZGVmaW5l''@;'; + put 'put ''JiZkZWZpbmUuYW1kKWRlZmluZShbXSxGMSk7ZWxzZXt2YXIgayxBPUYxKCk7Zm9yKGsgaW4gQSkoIm9iamVjdCI9PXR5cGVvZiBleHBvcnRzP2V4cG9ydHM6WClba109QVtrXX19KHRoaXMsZnVuY3Rpb24oKXtyZXR1cm4gRjE9eyIuL3Byb2plY3RzL2ljb25zL3NyYy9jbHItaWNvbnMtYXBp''@;'; + put 'put ''LnRzIjpmdW5jdGlvbihBLGUsYyl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLkNsYXJpdHlJY29uc0FwaT12b2lkIDA7dmFyIHI9YygiLi9wcm9qZWN0cy9pY29ucy9zcmMvdXRpbHMvc2hhcGUtdGVtcGxhdGUtb2JzZXJ2''@;'; + put 'put ''ZXIudHMiKSxhPXt9O2Z1bmN0aW9uIG8oKXt9T2JqZWN0LmRlZmluZVByb3BlcnR5KG8sImluc3RhbmNlIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG8uc2luZ2xlSW5zdGFuY2U9by5zaW5nbGVJbnN0YW5jZT9vLnNpbmdsZUluc3RhbmNlOm5ldyBvfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3Vy''@;'; + put 'put ''YWJsZTohMH0pLG8ucHJvdG90eXBlLnZhbGlkYXRlTmFtZT1mdW5jdGlvbihoKXtpZigwPT09aC5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKCJTaGFwZSBuYW1lIG9yIGFsaWFzIG11c3QgYmUgYSBub24tZW1wdHkgc3RyaW5nISIpO2lmKC9ccy8udGVzdChoKSl0aHJvdyBuZXcgRXJyb3IoIlNo''@;'; + put 'put ''YXBlIG5hbWUgb3IgYWxpYXMgbXVzdCBub3QgY29udGFpbiBhbnkgd2hpdGVzcGFjZSBjaGFyYWN0ZXJzISIpO3JldHVybiEwfSxvLnByb3RvdHlwZS5ub3JtYWxpemVTaGFwZU5hbWU9ZnVuY3Rpb24oaCl7cmV0dXJuIGgudG9Mb3dlckNhc2UoKX0sby5wcm90b3R5cGUuc2V0SWNvblRlbXBs''@;'; + put 'put ''YXRlPWZ1bmN0aW9uKGgsZil7Zj1mLnRyaW0oKSx0aGlzLnZhbGlkYXRlTmFtZShoKSYmKGg9dGhpcy5ub3JtYWxpemVTaGFwZU5hbWUoaCksYVtoXSYmZGVsZXRlIGFbaF0sYVtoXT1mLHIuU2hhcGVUZW1wbGF0ZU9ic2VydmVyLmluc3RhbmNlLmVtaXRDaGFuZ2VzKGgsZikpfSxvLnByb3Rv''@;'; + put 'put ''dHlwZS5zZXRJY29uQWxpYXNlcz1mdW5jdGlvbihoLGYsZyl7Zm9yKHZhciB1PTAscD1nO3U8cC5sZW5ndGg7dSsrKXt2YXIgdj1wW3VdO3RoaXMudmFsaWRhdGVOYW1lKHYpJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaCx2LHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gaFtmXX0sZW51bWVyYWJs''@;'; + put 'put ''ZTohMCxjb25maWd1cmFibGU6ITB9KX19LG8ucHJvdG90eXBlLmFkZD1mdW5jdGlvbihoKXtpZigib2JqZWN0IiE9dHlwZW9mIGgpdGhyb3cgbmV3IEVycm9yKCdUaGUgYXJndW1lbnQgbXVzdCBiZSBhbiBvYmplY3QgbGl0ZXJhbCBwYXNzZWQgaW4gdGhlIGZvbGxvd2luZyBwYXR0ZXJuOlxu''@;'; + put 'put ''ICAgICAgICAgICAgICAgIHsgInNoYXBlLW5hbWUiOiAic2hhcGUtdGVtcGxhdGUiIH0nKTtmb3IodmFyIGYgaW4gaCloLmhhc093blByb3BlcnR5KGYpJiZ0aGlzLnNldEljb25UZW1wbGF0ZShmLGhbZl0pfSxvLnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24oaCl7cmV0dXJuISFhW3RoaXMubm9y''@;'; + put 'put ''bWFsaXplU2hhcGVOYW1lKGgpXX0sby5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKGgpe2lmKCFoKXJldHVybiBhO2lmKCJzdHJpbmciIT10eXBlb2YgaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJPbmx5IHN0cmluZyBhcmd1bWVudCBpcyBhbGxvd2VkIGluIHRoaXMgbWV0aG9kLiIpO3JldHVybiBh''@;'; + put 'put ''W3RoaXMubm9ybWFsaXplU2hhcGVOYW1lKGgpXX0sby5wcm90b3R5cGUuYWxpYXM9ZnVuY3Rpb24oaCl7aWYoIm9iamVjdCIhPXR5cGVvZiBoKXRocm93IG5ldyBFcnJvcignVGhlIGFyZ3VtZW50IG11c3QgYmUgYW4gb2JqZWN0IGxpdGVyYWwgcGFzc2VkIGluIHRoZSBmb2xsb3dpbmcgcGF0''@;'; + put 'put ''dGVybjpcbiAgICAgICAgICAgICAgICB7ICJzaGFwZS1uYW1lIjogWyJhbGlhcy1uYW1lIiwgLi4uXSB9Jyk7Zm9yKHZhciBmIGluIGgpaWYoaC5oYXNPd25Qcm9wZXJ0eShmKSl7aWYoIWEuaGFzT3duUHJvcGVydHkoZikpdGhyb3cgbmV3IEVycm9yKCdBbiBpY29uICInK2YrIlwiIHlvdSBh''@;'; + put 'put ''cmUgdHJ5aW5nIHRvIHNldCBhbGlhc2VzIHRvIGRvZXNuJ3QgZXhpc3QgaW4gdGhlIENsYXJpdHkgSWNvbnMgc2V0cyEiKTt0aGlzLnNldEljb25BbGlhc2VzKGEsZixoW2ZdKX19LGUuQ2xhcml0eUljb25zQXBpPWM9b30sIi4vcHJvamVjdHMvaWNvbnMvc3JjL2Nsci1pY29ucy1lbGVtZW50''@;'; + put 'put ''LnRzIjpmdW5jdGlvbihBLGUsbCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLkNsYXJpdHlJY29uRWxlbWVudD12b2lkIDA7dmFyIHI9bCgiLi9wcm9qZWN0cy9pY29ucy9zcmMvY2xyLWljb25zLWFwaS50cyIpLGE9bCgi''@;'; + put 'put ''Li9wcm9qZWN0cy9pY29ucy9zcmMvdXRpbHMvc2hhcGUtdGVtcGxhdGUtb2JzZXJ2ZXIudHMiKSxjPTAsbz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7by5jbGFzc05hbWU9ImlzLW9mZi1zY3JlZW4iO3ZhciBoPWZ1bmN0aW9uKCl7cmV0dXJuIEhUTUxFbGVtZW50LmFwcGx5KHRo''@;'; + put 'put ''aXMsYXJndW1lbnRzKX07ZnVuY3Rpb24gZigpe3ZhciBnPWguYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBnLmNsckljb25VbmlxSWQ9Il9jbHJfaWNvbl8iK2MsYysrLGd9Im9iamVjdCI9PXR5cGVvZiBSZWZsZWN0JiYoaD1mdW5jdGlvbigpe3JldHVybiBSZWZsZWN0LmNvbnN0cnVj''@;'; + put 'put ''dChIVE1MRWxlbWVudCxhcmd1bWVudHMsdGhpcy5jb25zdHJ1Y3Rvcil9KSwoZS5DbGFyaXR5SWNvbkVsZW1lbnQ9Zikub2JzZXJ2ZWRBdHRyaWJ1dGVzPVsic2hhcGUiLCJzaXplIiwidGl0bGUiXSwoKGYucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoSFRNTEVsZW1lbnQucHJvdG90eXBlLHtj''@;'; + put 'put ''b25zdHJ1Y3Rvcjp7Y29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmZ9fSkpLmNvbnN0cnVjdG9yPWYpLnByb3RvdHlwZS5fYXBwZW5kQ3VzdG9tVGl0bGU9ZnVuY3Rpb24oKXt2YXIgZz1vLmNsb25lTm9kZSghMSk7Zy5pZD10aGlzLmNsckljb25VbmlxSWQsZy50ZXh0Q29udGVu''@;'; + put 'put ''dD10aGlzLmN1cnJlbnRUaXRsZUF0dHJWYWwsdGhpcy5hcHBlbmRDaGlsZChnKX0sZi5wcm90b3R5cGUuX3NldEljb25TaXplPWZ1bmN0aW9uKGcpeyFOdW1iZXIoZyl8fE51bWJlcihnKTwwPyh0aGlzLnN0eWxlLndpZHRoPW51bGwsdGhpcy5zdHlsZS5oZWlnaHQ9bnVsbCk6KHRoaXMuc3R5''@;'; + put 'put ''bGUud2lkdGg9ZysicHgiLHRoaXMuc3R5bGUuaGVpZ2h0PWcrInB4Iil9LGYucHJvdG90eXBlLl9ub3JtYWxpemVTaGFwZT1mdW5jdGlvbihnKXtyZXR1cm4gZy5zcGxpdCgvXHMvKVswXS50b0xvd2VyQ2FzZSgpfSxmLnByb3RvdHlwZS5jb25uZWN0ZWRDYWxsYmFjaz1mdW5jdGlvbigpe3Zh''@;'; + put 'put ''ciBnLHU9dGhpcztpZih0aGlzLmdldEF0dHJpYnV0ZSgicm9sZSIpfHx0aGlzLnNldEF0dHJpYnV0ZSgicm9sZSIsIm5vbmUiKSx0aGlzLmhhc0F0dHJpYnV0ZSgic2l6ZSIpJiYoZz10aGlzLmdldEF0dHJpYnV0ZSgic2l6ZSIpLHRoaXMuY3VycmVudFNpemVBdHRyVmFsIT09ZyYmKHRoaXMu''@;'; + put 'put ''Y3VycmVudFNpemVBdHRyVmFsPWcsdGhpcy5fc2V0SWNvblNpemUoZykpKSx0aGlzLmhhc0F0dHJpYnV0ZSgic2hhcGUiKSl7dmFyIHA9dGhpcy5fbm9ybWFsaXplU2hhcGUodGhpcy5nZXRBdHRyaWJ1dGUoInNoYXBlIikpO2lmKHRoaXMuX3NoYXBlVGVtcGxhdGVTdWJzY3JpcHRpb249YS5T''@;'; + put 'put ''aGFwZVRlbXBsYXRlT2JzZXJ2ZXIuaW5zdGFuY2Uuc3Vic2NyaWJlVG8ocCxmdW5jdGlvbih2KXt1Ll9pbmplY3RUZW1wbGF0ZSh2KX0pLHRoaXMuY3VycmVudFNoYXBlQXR0clZhbD1wLCFyLkNsYXJpdHlJY29uc0FwaS5pbnN0YW5jZS5oYXModGhpcy5jdXJyZW50U2hhcGVBdHRyVmFsKSly''@;'; + put 'put ''ZXR1cm4gdm9pZCB0aGlzLl9pbmplY3RFcnJvclRlbXBsYXRlKCk7aWYoKHA9ci5DbGFyaXR5SWNvbnNBcGkuaW5zdGFuY2UuZ2V0KHRoaXMuY3VycmVudFNoYXBlQXR0clZhbCkpPT09dGhpcy5jdXJyZW50U2hhcGVUZW1wbGF0ZSlyZXR1cm47dGhpcy5jdXJyZW50U2hhcGVUZW1wbGF0ZT1w''@;'; + put 'put ''fXRoaXMuaGFzQXR0cmlidXRlKCJ0aXRsZSIpJiYocD10aGlzLmdldEF0dHJpYnV0ZSgidGl0bGUiKSx0aGlzLmN1cnJlbnRUaXRsZUF0dHJWYWwhPT1wJiYodGhpcy5jdXJyZW50VGl0bGVBdHRyVmFsPXApLCF0aGlzLmN1cnJlbnRTaGFwZUF0dHJWYWwpfHx0aGlzLl9pbmplY3RUZW1wbGF0''@;'; + put 'put ''ZSgpfSxmLnByb3RvdHlwZS5hdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2s9ZnVuY3Rpb24oZyx1LHApe3ZhciB2PXRoaXM7aWYoInNpemUiPT09ZyYmdGhpcy5fc2V0SWNvblNpemUocCksInNoYXBlIj09PWcpe2lmKHRoaXMuY3VycmVudFNoYXBlQXR0clZhbD10aGlzLl9ub3JtYWxpemVTaGFw''@;'; + put 'put ''ZShwKSx0aGlzLl9zaGFwZVRlbXBsYXRlU3Vic2NyaXB0aW9uJiYodGhpcy5fc2hhcGVUZW1wbGF0ZVN1YnNjcmlwdGlvbigpLHRoaXMuX3NoYXBlVGVtcGxhdGVTdWJzY3JpcHRpb249YS5TaGFwZVRlbXBsYXRlT2JzZXJ2ZXIuaW5zdGFuY2Uuc3Vic2NyaWJlVG8odGhpcy5jdXJyZW50U2hh''@;'; + put 'put ''cGVBdHRyVmFsLGZ1bmN0aW9uKEgpe3YuX2luamVjdFRlbXBsYXRlKEgpfSkpLCFyLkNsYXJpdHlJY29uc0FwaS5pbnN0YW5jZS5oYXModGhpcy5jdXJyZW50U2hhcGVBdHRyVmFsKSlyZXR1cm4gdm9pZCB0aGlzLl9pbmplY3RFcnJvclRlbXBsYXRlKCk7dGhpcy5jdXJyZW50U2hhcGVUZW1w''@;'; + put 'put ''bGF0ZT1yLkNsYXJpdHlJY29uc0FwaS5pbnN0YW5jZS5nZXQodGhpcy5jdXJyZW50U2hhcGVBdHRyVmFsKX0idGl0bGUiPT09ZyYmKHRoaXMuY3VycmVudFRpdGxlQXR0clZhbD1wLCF0aGlzLmN1cnJlbnRTaGFwZUF0dHJWYWwpfHx0aGlzLl9pbmplY3RUZW1wbGF0ZSgpfSxmLnByb3RvdHlw''@;'; + put 'put ''ZS5kaXNjb25uZWN0ZWRDYWxsYmFjaz1mdW5jdGlvbigpe3RoaXMuX3NoYXBlVGVtcGxhdGVTdWJzY3JpcHRpb24mJnRoaXMuX3NoYXBlVGVtcGxhdGVTdWJzY3JpcHRpb24oKX0sZi5wcm90b3R5cGUuX3NldEFyaWFMYWJlbGxlZEJ5PWZ1bmN0aW9uKCl7dmFyIGc9dGhpcy5nZXRBdHRyaWJ1''@;'; + put 'put ''dGUoImFyaWEtbGFiZWxsZWRieSIpLHU9KHU9dGhpcy5xdWVyeVNlbGVjdG9yKCJzdmciKSl8fHRoaXM7Zz9nJiZnLmluZGV4T2YodGhpcy5jbHJJY29uVW5pcUlkKTwwJiZ1LnNldEF0dHJpYnV0ZSgiYXJpYS1sYWJlbGxlZGJ5IixnKyIgIit0aGlzLmNsckljb25VbmlxSWQpOnUuc2V0QXR0''@;'; + put 'put ''cmlidXRlKCJhcmlhLWxhYmVsbGVkYnkiLHRoaXMuY2xySWNvblVuaXFJZCl9LGYucHJvdG90eXBlLl9pbmplY3RUZW1wbGF0ZT1mdW5jdGlvbihnKXtnJiZnIT09dGhpcy5jdXJyZW50U2hhcGVUZW1wbGF0ZSYmKHRoaXMuY3VycmVudFNoYXBlVGVtcGxhdGU9ZyksdGhpcy5pbm5lckhUTUw9''@;'; + put 'put ''dGhpcy5jdXJyZW50U2hhcGVUZW1wbGF0ZSx0aGlzLmN1cnJlbnRUaXRsZUF0dHJWYWwmJih0aGlzLl9zZXRBcmlhTGFiZWxsZWRCeSgpLHRoaXMuX2FwcGVuZEN1c3RvbVRpdGxlKCkpfSxmLnByb3RvdHlwZS5faW5qZWN0RXJyb3JUZW1wbGF0ZT1mdW5jdGlvbigpe3RoaXMuY3VycmVudFNo''@;'; + put 'put ''YXBlVGVtcGxhdGU9ci5DbGFyaXR5SWNvbnNBcGkuaW5zdGFuY2UuZ2V0KCJlcnJvciIpLHRoaXMuX2luamVjdFRlbXBsYXRlKCl9fSwiLi9wcm9qZWN0cy9pY29ucy9zcmMvY2xyLWljb25zLXNmeC50cyI6ZnVuY3Rpb24oQSxlLGwpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVy''@;'; + put 'put ''dHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5DbGFyaXR5SWNvbnM9dm9pZCAwO3ZhciByPWwoIi4vcHJvamVjdHMvaWNvbnMvc3JjL2luZGV4LnRzIik7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIkNsYXJpdHlJY29ucyIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0''@;'; + put 'put ''dXJuIHIuQ2xhcml0eUljb25zfX0pLGw9bCgiLi9wcm9qZWN0cy9pY29ucy9zcmMvc2hhcGVzL2FsbC1zaGFwZXMudHMiKSxyLkNsYXJpdHlJY29ucy5hZGQobC5BbGxTaGFwZXMpfSwiLi9wcm9qZWN0cy9pY29ucy9zcmMvaW5kZXgudHMiOmZ1bmN0aW9uKEEsZSxhKXsidXNlIHN0cmljdCI7''@;'; + put 'put ''T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuQ2xhcml0eUljb25zPXZvaWQgMDt2YXIgYz1hKCIuL3Byb2plY3RzL2ljb25zL3NyYy9jbHItaWNvbnMtYXBpLnRzIikscj1hKCIuL3Byb2plY3RzL2ljb25zL3NyYy9jbHItaWNvbnMtZWxlbWVudC50''@;'; + put 'put ''cyIpO2E9YSgiLi9wcm9qZWN0cy9pY29ucy9zcmMvc2hhcGVzL2NvcmUtc2hhcGVzLnRzIiksKGUuQ2xhcml0eUljb25zPWM9Yy5DbGFyaXR5SWNvbnNBcGkuaW5zdGFuY2UpLmFkZChhLkNvcmVTaGFwZXMpLCJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiYod2luZG93Lmhhc093blByb3Bl''@;'; + put 'put ''cnR5KCJDbGFyaXR5SWNvbnMiKXx8KHdpbmRvdy5DbGFyaXR5SWNvbnM9YyksY3VzdG9tRWxlbWVudHMuZ2V0KCJjbHItaWNvbiIpfHxjdXN0b21FbGVtZW50cy5kZWZpbmUoImNsci1pY29uIixyLkNsYXJpdHlJY29uRWxlbWVudCkpfSwiLi9wcm9qZWN0cy9pY29ucy9zcmMvc2hhcGVzL2Fs''@;'; + put 'put ''bC1zaGFwZXMudHMiOmZ1bmN0aW9uKEEsZSx1KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuQWxsU2hhcGVzPXZvaWQgMDt2YXIgcj11KCIuL3Byb2plY3RzL2ljb25zL3NyYy9zaGFwZXMvY2hhcnQtc2hhcGVzLnRzIiks''@;'; + put 'put ''YT11KCIuL3Byb2plY3RzL2ljb25zL3NyYy9zaGFwZXMvY29tbWVyY2Utc2hhcGVzLnRzIiksYz11KCIuL3Byb2plY3RzL2ljb25zL3NyYy9zaGFwZXMvY29yZS1zaGFwZXMudHMiKSxvPXUoIi4vcHJvamVjdHMvaWNvbnMvc3JjL3NoYXBlcy9lc3NlbnRpYWwtc2hhcGVzLnRzIiksaD11KCIu''@;'; + put 'put ''L3Byb2plY3RzL2ljb25zL3NyYy9zaGFwZXMvbWVkaWEtc2hhcGVzLnRzIiksZj11KCIuL3Byb2plY3RzL2ljb25zL3NyYy9zaGFwZXMvc29jaWFsLXNoYXBlcy50cyIpLGc9dSgiLi9wcm9qZWN0cy9pY29ucy9zcmMvc2hhcGVzL3RlY2hub2xvZ3ktc2hhcGVzLnRzIikscD11KCIuL3Byb2pl''@;'; + put 'put ''Y3RzL2ljb25zL3NyYy9zaGFwZXMvdGV4dC1lZGl0LXNoYXBlcy50cyIpLHY9KHU9dSgiLi9wcm9qZWN0cy9pY29ucy9zcmMvc2hhcGVzL3RyYXZlbC1zaGFwZXMudHMiKSxwPVtjLkNvcmVTaGFwZXMsYS5Db21tZXJjZVNoYXBlcyxvLkVzc2VudGlhbFNoYXBlcyxoLk1lZGlhU2hhcGVzLGYu''@;'; + put 'put ''U29jaWFsU2hhcGVzLGcuVGVjaG5vbG9neVNoYXBlcyx1LlRyYXZlbFNoYXBlcyxyLkNoYXJ0U2hhcGVzLHAuVGV4dEVkaXRTaGFwZXNdLHt9KTtlLkFsbFNoYXBlcz12O2Zvcih2YXIgSD0wLEM9cDtIPEMubGVuZ3RoO0grKyl7dmFyIFYsUz1DW0hdO2ZvcihWIGluIFMpUy5oYXNPd25Qcm9w''@;'; + put 'put ''ZXJ0eShWKSYmKHZbVl09U1tWXSl9InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cmJndpbmRvdy5oYXNPd25Qcm9wZXJ0eSgiQ2xhcml0eUljb25zIikmJndpbmRvdy5DbGFyaXR5SWNvbnMuYWRkKHYpfSwiLi9wcm9qZWN0cy9pY29ucy9zcmMvc2hhcGVzL2NoYXJ0LXNoYXBlcy50cyI6ZnVu''@;'; + put 'put ''Y3Rpb24oQSxlLGEpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5DaGFydFNoYXBlcz1lLkNsclNoYXBlQmVsbEN1cnZlPWUuQ2xyU2hhcGVUaWNrQ2hhcnQ9ZS5DbHJTaGFwZVNjYXR0ZXJQbG90PWUuQ2xyU2hhcGVQaWVD''@;'; + put 'put ''aGFydD1lLkNsclNoYXBlTGluZUNoYXJ0PWUuQ2xyU2hhcGVIZWF0TWFwPWUuQ2xyU2hhcGVHcmlkQ2hhcnQ9ZS5DbHJTaGFwZUN1cnZlQ2hhcnQ9ZS5DbHJTaGFwZUNsb3VkQ2hhcnQ9ZS5DbHJTaGFwZUJ1YmJsZUNoYXJ0PWUuQ2xyU2hhcGVCb3hQbG90PWUuQ2xyU2hhcGVCYXJDaGFydD1l''@;'; + put 'put ''LkNsclNoYXBlQXhpc0NoYXJ0PXZvaWQgMDt2YXIgcj1hKCIuL3Byb2plY3RzL2ljb25zL3NyYy91dGlscy9kZXNjcmlwdG9yLWNvbmZpZy50cyIpO2E9YSgiLi9wcm9qZWN0cy9pY29ucy9zcmMvdXRpbHMvc3ZnLXRhZy1nZW5lcmF0b3IudHMiKSxlLkNsclNoYXBlQXhpc0NoYXJ0PSgwLGEu''@;'; + put 'put ''Y2xySWNvblNWRykoJ1xuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTSAzMiA1IEwgNCA1IEMgMi44OTUgNSAyIDUuODk1IDIgNyBMIDIgMjkgQyAyIDMwLjEwNSAyLjg5NSAzMSA0IDMxIEwgMzIgMzEgQyAzMy4xMDUgMzEgMzQgMzAuMTA1''@;'; + put 'put ''IDM0IDI5IEwgMzQgNyBDIDM0IDUuODk1IDMzLjEwNSA1IDMyIDUgWiBNIDQgMjkgTCA0IDcgTCAzMiA3IEwgMzIgMjkgWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTSA2LjAwNyAyNi43MzEgTCAyNy43MyAyNi43MyBDIDI4LjQ5''@;'; + put 'put ''IDI2LjY3IDI4LjkxIDI1LjggMjguNDcgMjUuMTcgQyAyOC4zIDI0LjkyIDI4LjAzIDI0Ljc2IDI3LjczIDI0Ljc0IEwgOC4wMDEgMjQuNzM2IEwgOC4wMSAxMS4wMSBDIDguMDEgMTAuMjMgNy4xNyA5Ljc1IDYuNSAxMC4xNCBDIDYuMTkgMTAuMzEgNiAxMC42NSA2IDExLjAxIEwgNi4wMDcg''@;'; + put 'put ''MjYuNzMxIFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTSAzNCA3IEwgMzQgMjkgQyAzNCAzMC4xMDUgMzMuMTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIuODk2IDMxIDIgMzAuMTA1IDIgMjkgTCAyIDcgQyAyIDUuODk2IDIuODk2IDUgNCA1''@;'; + put 'put ''IEwgMzIgNSBDIDMzLjEwNSA1IDM0IDUuODk2IDM0IDcgWiBNIDYuMDA3IDI2LjczMSBMIDI3LjczIDI2LjczIEMgMjguNDkgMjYuNjcgMjguOTEgMjUuOCAyOC40NyAyNS4xNyBDIDI4LjMgMjQuOTIgMjguMDMgMjQuNzYgMjcuNzMgMjQuNzQgTCA4LjAwMSAyNC43MzYgTCA4LjAxIDExLjAx''@;'; + put 'put ''IEMgOC4wMSAxMC4yMyA3LjE3IDkuNzUgNi41IDEwLjE0IEMgNi4xOSAxMC4zMSA2IDEwLjY1IDYgMTEuMDEgWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0gMzIgMTMuMjIgTCAzMiAyOSBMIDQgMjkg''@;'; + put 'put ''TCA0IDcgTCAyMi41NyA3IEMgMjIuNTI0IDYuNjY4IDIyLjUwMSA2LjMzNCAyMi41IDYgQyAyMi41MDEgNS42NjUgMjIuNTI0IDUuMzMxIDIyLjU3IDUgTCA0IDUgQyAyLjg5NSA1IDIgNS44OTUgMiA3IEwgMiAyOSBDIDIgMzAuMTA0IDIuODk1IDMxIDQgMzEgTCAzMiAzMSBDIDMzLjEwNCAz''@;'; + put 'put ''MSAzNCAzMC4xMDQgMzQgMjkgTCAzNCAxMi4zNCBDIDMzLjM4IDEyLjczIDMyLjcwNiAxMy4wMjYgMzIgMTMuMjIgWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiIGQ9Ik0gNi4wMDcgMjYuNzMxIEwgMjcuNzMg''@;'; + put 'put ''MjYuNzMgQyAyOC40OSAyNi42NyAyOC45MSAyNS44IDI4LjQ3IDI1LjE3IEMgMjguMyAyNC45MiAyOC4wMyAyNC43NiAyNy43MyAyNC43NCBMIDguMDAxIDI0LjczNiBMIDguMDEgMTEuMDEgQyA4LjAxIDEwLjIzIDcuMTcgOS43NSA2LjUgMTAuMTQgQyA2LjE5IDEwLjMxIDYgMTAuNjUgNiAx''@;'; + put 'put ''MS4wMSBMIDYuMDA3IDI2LjczMSBaIi8+XG4gIDxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2Vk''@;'; + put 'put ''IGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiBkPSJNIDM0IDEyLjM0IEwgMzQgMjkgQyAzNCAzMC4xMDUgMzMuMTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIuODk2IDMxIDIgMzAuMTA1IDIgMjkgTCAyIDcgQyAyIDUuODk2IDIuODk2IDUgNCA1IEwgMjIuNTcgNSBDIDIxLjk2OSA5LjIzMyAy''@;'; + put 'put ''NS4wNSAxMy4xIDI5LjMxIDEzLjQ2IEwgMzAuMzIgMTMuNDggQyAzMS42MjYgMTMuNDI5IDMyLjg5NSAxMy4wMzYgMzQgMTIuMzQgWiBNIDYuMDA3IDI2LjczMSBMIDI3LjczIDI2LjczIEMgMjguNDkgMjYuNjcgMjguOTEgMjUuOCAyOC40NyAyNS4xNyBDIDI4LjMgMjQuOTIgMjguMDMgMjQu''@;'; + put 'put ''NzYgMjcuNzMgMjQuNzQgTCA4LjAwMSAyNC43MzYgTCA4LjAxIDExLjAxIEMgOC4wMSAxMC4yMyA3LjE3IDkuNzUgNi41IDEwLjE0IEMgNi4xOSAxMC4zMSA2IDEwLjY1IDYgMTEuMDEgWiIvPlxuICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgt''@;'; + put 'put ''Mi0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiBkPSJNIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAy''@;'; + put 'put ''Ljg5NSAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3IEMgMiA1Ljg5NSAyLjg5NSA1IDQgNSBMIDIxLjk1OCA1IEwgMjAuNzg2IDcgTCA0IDcgTCA0IDI5IEwgMzIgMjkgTCAzMiAxNS4zNTcgTCAzNCAxNS4zNTcgWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHIt''@;'; + put 'put ''aS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIgZD0iTSA2LjAwNyAyNi43MzEgTCAyNy43MyAyNi43MyBDIDI4LjQ5IDI2LjY3IDI4LjkxIDI1LjggMjguNDcgMjUuMTcgQyAyOC4zIDI0LjkyIDI4LjAzIDI0Ljc2IDI3LjczIDI0Ljc0IEwgOC4wMDEgMjQuNzM2IEwgOC4wMSAxMS4wMSBDIDgu''@;'; + put 'put ''MDEgMTAuMjMgNy4xNyA5Ljc1IDYuNSAxMC4xNCBDIDYuMTkgMTAuMzEgNiAxMC42NSA2IDExLjAxIEwgNi4wMDcgMjYuNzMxIFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0g''@;'; + put 'put ''MjYuODU0IDEuMTQ0IEwgMjEuMTM0IDExLjAwNCBDIDIwLjU3OSAxMS44MTggMjEuMTE0IDEyLjkyOCAyMi4wOTcgMTMuMDAxIEMgMjIuMTQyIDEzLjAwNSAyMi4xODggMTMuMDA2IDIyLjIzNCAxMy4wMDQgTCAzMy42ODQgMTMuMDA0IEMgMzQuNjY5IDEzLjAzNiAzNS4zMTkgMTEuOTkxIDM0''@;'; + put 'put ''Ljg1NSAxMS4xMjIgQyAzNC44MzQgMTEuMDgxIDM0LjgxIDExLjA0MiAzNC43ODQgMTEuMDA0IEwgMjkuMDY0IDEuMTQ0IEMgMjguNTcgMC4yOTkgMjcuMzQ4IDAuMjk5IDI2Ljg1NCAxLjE0NCBaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1w''@;'; + put 'put ''YXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0gMzQgMjkgQyAzNCAzMC4xMDUgMzMuMTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIuODk2IDMxIDIgMzAuMTA1IDIgMjkgTCAyIDcgQyAyIDUuODk2IDIuODk2IDUgNCA1IEwgMjEuOTU4IDUgTCAxNy42MjUgMTIuMzk1IEMgMTYuNzk1IDEzLjYwMSAxNy41OTQg''@;'; + put 'put ''MTUuMjQ1IDE5LjA2NCAxNS4zNTEgQyAxOS4xMzQgMTUuMzU3IDE5LjIwMSAxNS4zNTkgMTkuMjcgMTUuMzU3IEwgMzQgMTUuMzU3IFogTSA2LjAwNyAyNi43MzEgTCAyNy43MyAyNi43MyBDIDI4LjQ5IDI2LjY3IDI4LjkxIDI1LjggMjguNDcgMjUuMTcgQyAyOC4zIDI0LjkyIDI4LjAzIDI0''@;'; + put 'put ''Ljc2IDI3LjczIDI0Ljc0IEwgOC4wMDEgMjQuNzM2IEwgOC4wMSAxMS4wMSBDIDguMDEgMTAuMjMgNy4xNyA5Ljc1IDYuNSAxMC4xNCBDIDYuMTkgMTAuMzEgNiAxMC42NSA2IDExLjAxIFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgt''@;'; + put 'put ''Mi0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTSAyNi44NTQgMS4xNDQgTCAyMS4xMzQgMTEuMDA0IEMgMjAuNTc5IDExLjgxOCAyMS4xMTQgMTIuOTI4IDIyLjA5NyAxMy4wMDEgQyAyMi4xNDIgMTMuMDA1IDIyLjE4OCAxMy4wMDYgMjIuMjM0IDEzLjAwNCBMIDMzLjY4NCAxMy4wMDQgQyAz''@;'; + put 'put ''NC42NjkgMTMuMDM2IDM1LjMxOSAxMS45OTEgMzQuODU1IDExLjEyMiBDIDM0LjgzNCAxMS4wODEgMzQuODEgMTEuMDQyIDM0Ljc4NCAxMS4wMDQgTCAyOS4wNjQgMS4xNDQgQyAyOC41NyAwLjI5OSAyNy4zNDggMC4yOTkgMjYuODU0IDEuMTQ0IFoiLz4nKSxlLkNsclNoYXBlQmFyQ2hhcnQ9''@;'; + put 'put ''KDAsYS5jbHJJY29uU1ZHKSgnXG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzIsNUg0QTIsMiwwLDAsMCwyLDdWMjlhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjdBMiwyLDAsMCwwLDMyLDVaTTQsMjlWN0gzMlYyOVoiPjwv''@;'; + put 'put ''cGF0aD5cbiAgPHBhdGggZD0iTSA3IDEwIEwgMTMgMTAgTCAxMyAyNiBMIDExLjQgMjYgTCAxMS40IDExLjYgTCA4LjYgMTEuNiBMIDguNiAyNiBMIDcgMjYgWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSAxNSAxOSBM''@;'; + put 'put ''IDIxIDE5IEwgMjEgMjYgTCAxOS40IDI2IEwgMTkuNCAyMC42IEwgMTYuNiAyMC42IEwgMTYuNiAyNiBMIDE1IDI2IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gMjMgMTYgTCAyOSAxNiBMIDI5IDI2IEwgMjcuNCAy''@;'; + put 'put ''NiBMIDI3LjQgMTcuNiBMIDI0LjYgMTcuNiBMIDI0LjYgMjYgTCAyMyAyNiBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCI+PC9wYXRoPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNIDM0IDcgTCAzNCAyOSBD''@;'; + put 'put ''IDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIgMzEgTCA0IDMxIEMgMi44OTUgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBDIDIgNS44OTUgMi44OTUgNSA0IDUgTCAzMiA1IEMgMzMuMTA1IDUgMzQgNS44OTUgMzQgNyBaIE0gNyAyNiBMIDEzIDI2IEwgMTMgMTAgTCA3IDEwIFogTSAxNSAyNiBMIDIx''@;'; + put 'put ''IDI2IEwgMjEgMTkgTCAxNSAxOSBaIE0gMjMgMjYgTCAyOSAyNiBMIDI5IDE2IEwgMjMgMTYgWiI+PC9wYXRoPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0gMzIgMTMuMjIgTCAzMiAyOSBMIDQgMjkgTCA0''@;'; + put 'put ''IDcgTCAyMi41NyA3IEMgMjIuNTI0IDYuNjY4IDIyLjUwMSA2LjMzNCAyMi41IDYgQyAyMi41MDEgNS42NjUgMjIuNTI0IDUuMzMxIDIyLjU3IDUgTCA0IDUgQyAyLjg5NSA1IDIgNS44OTUgMiA3IEwgMiAyOSBDIDIgMzAuMTA0IDIuODk1IDMxIDQgMzEgTCAzMiAzMSBDIDMzLjEwNSAzMSAz''@;'; + put 'put ''NCAzMC4xMDQgMzQgMjkgTCAzNCAxMi4zNCBDIDMzLjM4IDEyLjczIDMyLjcwNiAxMy4wMjYgMzIgMTMuMjIgWiI+PC9wYXRoPlxuICA8cGF0aCBkPSJNIDcgMTAgTCAxMyAxMCBMIDEzIDI2IEwgMTEuNCAyNiBMIDExLjQgMTEuNiBMIDguNiAxMS42IEwgOC42IDI2IEwgNyAyNiBaIiBjbGFz''@;'; + put 'put ''cz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSAxNSAxOSBMIDIxIDE5IEwgMjEgMjYgTCAxOS40IDI2IEwgMTkuNCAyMC42IEwgMTYuNiAyMC42IEwgMTYuNiAyNiBMIDE1IDI2IFoiIGNsYXNzPSJjbHIt''@;'; + put 'put ''aS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCI+PC9wYXRoPlxuICA8cGF0aCBkPSJNIDIzIDE2IEwgMjkgMTYgTCAyOSAyNiBMIDI3LjQgMjYgTCAyNy40IDE3LjYgTCAyNC42IDE3LjYgTCAyNC42IDI2IEwgMjMgMjYgWiIgY2xhc3M9ImNsci1pLW91dGxp''@;'; + put 'put ''bmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIj48L3BhdGg+XG4gIDxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ij48L2NpcmNsZT5cbiAg''@;'; + put 'put ''PHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0gMzQgMTIuMzQgTCAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIgMzEgTCA0IDMxIEMgMi44OTUgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBDIDIgNS44OTUgMi44OTUg''@;'; + put 'put ''NSA0IDUgTCAyMi41NyA1IEMgMjEuOTY5IDkuMjMzIDI1LjA1IDEzLjEgMjkuMzEgMTMuNDYgTCAzMC4zMiAxMy40OCBDIDMxLjYyNSAxMy40MjkgMzIuODk1IDEzLjAzNiAzNCAxMi4zNCBaIE0gNyAyNiBMIDEzIDI2IEwgMTMgMTAgTCA3IDEwIFogTSAxNSAyNiBMIDIxIDI2IEwgMjEgMTkg''@;'; + put 'put ''TCAxNSAxOSBaIE0gMjMgMjYgTCAyOSAyNiBMIDI5IDE2IEwgMjMgMTYgWiI+PC9wYXRoPlxuICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ij48L2NpcmNsZT5cbiAg''@;'; + put 'put ''PHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0gMzQgMjkgQyAzNCAzMC4xMDUgMzMuMTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIuODk1IDMxIDIgMzAuMTA1IDIgMjkgTCAyIDcgQyAyIDUuODk1IDIuODk1IDUgNCA1''@;'; + put 'put ''IEwgMjEuOTU4IDUgTCAyMC43ODYgNyBMIDQgNyBMIDQgMjkgTCAzMiAyOSBMIDMyIDE1LjM1NyBMIDM0IDE1LjM1NyBaIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gNyAxMCBMIDEzIDEwIEwgMTMgMjYgTCAxMS40IDI2IEwgMTEuNCAxMS42IEwgOC42IDExLjYgTCA4LjYgMjYgTCA3IDI2IFoi''@;'; + put 'put ''IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gMTUgMTkgTCAyMSAxOSBMIDIxIDI2IEwgMTkuNCAyNiBMIDE5LjQgMjAuNiBMIDE2LjYgMjAuNiBMIDE2LjYgMjYgTCAxNSAyNiBaIiBjbGFz''@;'; + put 'put ''cz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCI+PC9wYXRoPlxuICA8cGF0aCBkPSJNIDIzIDE2IEwgMjkgMTYgTCAyOSAyNiBMIDI3LjQgMjYgTCAyNy40IDE3LjYgTCAyNC42IDE3LjYgTCAyNC42IDI2IEwgMjMgMjYgWiIgY2xhc3M9ImNs''@;'; + put 'put ''ci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWFsZXJ0ZWQiPjwvcGF0aD5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0gMjYuODU0IDEuMTQ0IEwgMjEu''@;'; + put 'put ''MTM0IDExLjAwNCBDIDIwLjU3OSAxMS44MTggMjEuMTE0IDEyLjkyOCAyMi4wOTcgMTMuMDAxIEMgMjIuMTQyIDEzLjAwNSAyMi4xODggMTMuMDA2IDIyLjIzNCAxMy4wMDQgTCAzMy42ODQgMTMuMDA0IEMgMzQuNjY5IDEzLjAzNiAzNS4zMTkgMTEuOTkxIDM0Ljg1NSAxMS4xMjIgQyAzNC44''@;'; + put 'put ''MzQgMTEuMDgxIDM0LjgxIDExLjA0MiAzNC43ODQgMTEuMDA0IEwgMjkuMDY0IDEuMTQ0IEMgMjguNTcgMC4yOTkgMjcuMzQ4IDAuMjk5IDI2Ljg1NCAxLjE0NCBaIj48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0''@;'; + put 'put ''ZWQiIGQ9Ik0gMzQgMjkgQyAzNCAzMC4xMDUgMzMuMTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIuODk1IDMxIDIgMzAuMTA1IDIgMjkgTCAyIDcgQyAyIDUuODk1IDIuODk1IDUgNCA1IEwgMjEuOTU4IDUgTCAxNy42MjUgMTIuMzk1IEMgMTYuNzk1IDEzLjYwMSAxNy41OTQgMTUuMjQ1IDE5LjA2''@;'; + put 'put ''NCAxNS4zNTEgQyAxOS4xMzQgMTUuMzU3IDE5LjIwMSAxNS4zNTkgMTkuMjcgMTUuMzU3IEwgMzQgMTUuMzU3IFogTSA3IDI2IEwgMTMgMjYgTCAxMyAxMCBMIDcgMTAgWiBNIDE1IDI2IEwgMjEgMjYgTCAyMSAxOSBMIDE1IDE5IFogTSAyMyAyNiBMIDI5IDI2IEwgMjkgMTYgTCAyMyAxNiBa''@;'; + put 'put ''Ij48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0gMjYuODU0IDEuMTQ0IEwgMjEuMTM0IDExLjAwNCBDIDIwLjU3OSAxMS44MTggMjEuMTE0IDEyLjkyOCAyMi4wOTcgMTMuMDAx''@;'; + put 'put ''IEMgMjIuMTQyIDEzLjAwNSAyMi4xODggMTMuMDA2IDIyLjIzNCAxMy4wMDQgTCAzMy42ODQgMTMuMDA0IEMgMzQuNjY5IDEzLjAzNiAzNS4zMTkgMTEuOTkxIDM0Ljg1NSAxMS4xMjIgQyAzNC44MzQgMTEuMDgxIDM0LjgxIDExLjA0MiAzNC43ODQgMTEuMDA0IEwgMjkuMDY0IDEuMTQ0IEMg''@;'; + put 'put ''MjguNTcgMC4yOTkgMjcuMzQ4IDAuMjk5IDI2Ljg1NCAxLjE0NCBaIj48L3BhdGg+JyksZS5DbHJTaGFwZUJveFBsb3Q9KDAsYS5jbHJJY29uU1ZHKSgnXG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzIsNUg0QTIsMiwwLDAsMCwyLDdW''@;'; + put 'put ''MjlhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjdBMiwyLDAsMCwwLDMyLDVaTTQsMjlWN0gzMlYyOVoiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSA3IDEyIEwgMTcgMTIgTCAxNyAyNiBMIDcgMjYgTCA3IDEyIFogTSA4LjYgMjQuNCBMIDE1LjQgMjQuNCBMIDE1LjQgMTguOCBMIDgu''@;'; + put 'put ''NiAxOC44IEwgOC42IDI0LjQgWiBNIDE1LjQgMTMuNiBMIDguNiAxMy42IEwgOC42IDE3LjIgTCAxNS40IDE3LjIgTCAxNS40IDEzLjYgWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSAxOSAyNCBMIDI5IDI0IEwgMjkg''@;'; + put 'put ''MTAgTCAxOSAxMCBMIDE5IDI0IFogTSAyMC42IDExLjYgTCAyNy40IDExLjYgTCAyNy40IDE3LjIgTCAyMC42IDE3LjIgTCAyMC42IDExLjYgWiBNIDI3LjQgMjIuNCBMIDIwLjYgMjIuNCBMIDIwLjYgMTguOCBMIDI3LjQgMTguOCBMIDI3LjQgMjIuNCBaIiBjbGFzcz0iY2xyLWktb3V0bGlu''@;'; + put 'put ''ZSBjbHItaS1vdXRsaW5lLXBhdGgtMyI+PC9wYXRoPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNIDM0IDcgTCAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIgMzEgTCA0IDMxIEMgMi44OTUgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBD''@;'; + put 'put ''IDIgNS44OTUgMi44OTUgNSA0IDUgTCAzMiA1IEMgMzMuMTA1IDUgMzQgNS44OTUgMzQgNyBaIE0gNyAyNiBMIDE3IDI2IEwgMTcgMTIgTCA3IDEyIFogTSA5IDE5IEwgMTUgMTkgTCAxNSAyNCBMIDkgMjQgWiBNIDE1IDE3IEwgOSAxNyBMIDkgMTQgTCAxNSAxNCBaIE0gMTkgMjQgTCAyOSAy''@;'; + put 'put ''NCBMIDI5IDEwIEwgMTkgMTAgWiBNIDIxIDEyIEwgMjcgMTIgTCAyNyAxNyBMIDIxIDE3IFogTSAyNyAyMiBMIDIxIDIyIEwgMjEgMTkgTCAyNyAxOSBaIj48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIg''@;'; + put 'put ''ZD0iTSAzMiAxMy4yMiBMIDMyIDI5IEwgNCAyOSBMIDQgNyBMIDIyLjU3IDcgQyAyMi41MjQgNi42NjggMjIuNTAxIDYuMzM0IDIyLjUgNiBDIDIyLjUwMSA1LjY2NSAyMi41MjQgNS4zMzEgMjIuNTcgNSBMIDQgNSBDIDIuODk1IDUgMiA1Ljg5NSAyIDcgTCAyIDI5IEMgMiAzMC4xMDQgMi44''@;'; + put 'put ''OTUgMzEgNCAzMSBMIDMyIDMxIEMgMzMuMTA1IDMxIDM0IDMwLjEwNCAzNCAyOSBMIDM0IDEyLjM0IEMgMzMuMzggMTIuNzMgMzIuNzA2IDEzLjAyNiAzMiAxMy4yMiBaIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gNyAxMiBMIDE3IDEyIEwgMTcgMjYgTCA3IDI2IEwgNyAxMiBaIE0gOC42IDI0''@;'; + put 'put ''LjQgTCAxNS40IDI0LjQgTCAxNS40IDE4LjggTCA4LjYgMTguOCBMIDguNiAyNC40IFogTSAxNS40IDEzLjYgTCA4LjYgMTMuNiBMIDguNiAxNy4yIEwgMTUuNCAxNy4yIEwgMTUuNCAxMy42IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJh''@;'; + put 'put ''ZGdlZCI+PC9wYXRoPlxuICA8cGF0aCBkPSJNIDE5IDEwIEwgMjMuNzI4IDEwIEMgMjQuMTA1IDEwLjU5NiAyNC41NjQgMTEuMTM1IDI1LjA5IDExLjYgTCAyMC42IDExLjYgTCAyMC42IDE3LjIgTCAyNy40IDE3LjIgTCAyNy40IDEyLjk4NyBDIDI3LjkwOSAxMy4xNzcgMjguNDQ1IDEzLjMx''@;'; + put 'put ''MyAyOSAxMy4zODcgTCAyOSAyNCBMIDE5IDI0IFogTSAyNy40IDE4LjggTCAyMC42IDE4LjggTCAyMC42IDIyLjQgTCAyNy40IDIyLjQgWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIj48L3BhdGg+XG4gIDxjaXJjbGUgY2xhc3M9''@;'; + put 'put ''ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ij48L2NpcmNsZT5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0g''@;'; + put 'put ''MzQgMTIuMzQgTCAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIgMzEgTCA0IDMxIEMgMi44OTUgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBDIDIgNS44OTUgMi44OTUgNSA0IDUgTCAyMi41NyA1IEMgMjIuMzEyIDYuODE3IDIyLjczMiA4LjU2NiAyMy42MzMgMTAgTCAxOSAxMCBMIDE5''@;'; + put 'put ''IDI0IEwgMjkgMjQgTCAyOSAxMy40MjcgQyAyOS4xMDMgMTMuNDQgMjkuMjA2IDEzLjQ1MSAyOS4zMSAxMy40NiBMIDMwLjMyIDEzLjQ4IEMgMzEuNjI1IDEzLjQyOSAzMi44OTUgMTMuMDM2IDM0IDEyLjM0IFogTSA3IDI2IEwgMTcgMjYgTCAxNyAxMiBMIDcgMTIgWiBNIDkgMTkgTCAxNSAx''@;'; + put 'put ''OSBMIDE1IDI0IEwgOSAyNCBaIE0gMTUgMTcgTCA5IDE3IEwgOSAxNCBMIDE1IDE0IFogTSAyMSAxMiBMIDI1LjQ3MiAxMiBDIDI1Ljk0IDEyLjM1MiAyNi40NTIgMTIuNjUgMjcgMTIuODg1IEwgMjcgMTcgTCAyMSAxNyBaIE0gMjcgMjIgTCAyMSAyMiBMIDIxIDE5IEwgMjcgMTkgWiI+PC9w''@;'; + put 'put ''YXRoPlxuICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ij48L2NpcmNsZT5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGlu''@;'; + put 'put ''ZS1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0gMzQgMjkgQyAzNCAzMC4xMDUgMzMuMTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIuODk1IDMxIDIgMzAuMTA1IDIgMjkgTCAyIDcgQyAyIDUuODk1IDIuODk1IDUgNCA1IEwgMjEuOTU4IDUgTCAyMC43ODYgNyBMIDQgNyBMIDQgMjkgTCAzMiAyOSBMIDMy''@;'; + put 'put ''IDE1LjM1NyBMIDM0IDE1LjM1NyBaIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gNyAxMiBMIDE3IDEyIEwgMTcgMjYgTCA3IDI2IEwgNyAxMiBaIE0gOC42IDI0LjQgTCAxNS40IDI0LjQgTCAxNS40IDE4LjggTCA4LjYgMTguOCBMIDguNiAyNC40IFogTSAxNS40IDEzLjYgTCA4LjYgMTMuNiBM''@;'; + put 'put ''IDguNiAxNy4yIEwgMTUuNCAxNy4yIEwgMTUuNCAxMy42IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gMjkgMjQgTCAxOSAyNCBMIDE5IDE1LjM0NSBDIDE5LjAyMSAxNS4zNDggMjAu''@;'; + put 'put ''NiAxNS4zNiAyMC42IDE1LjM2IEwgMjAuNiAxNy4yIEwgMjcuNCAxNy4yIEwgMjcuNCAxNS4zNiBMIDI5IDE1LjM1NyBMIDI5IDI0IFogTSAyNy40IDE4LjggTCAyMC42IDE4LjggTCAyMC42IDIyLjQgTCAyNy40IDIyLjQgTCAyNy40IDE4LjggWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFs''@;'; + put 'put ''ZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiPjwvcGF0aD5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0gMjYuODU0IDEuMTQ0IEwgMjEuMTM0IDExLjAwNCBDIDIw''@;'; + put 'put ''LjU3OSAxMS44MTggMjEuMTE0IDEyLjkyOCAyMi4wOTcgMTMuMDAxIEMgMjIuMTQyIDEzLjAwNSAyMi4xODggMTMuMDA2IDIyLjIzNCAxMy4wMDQgTCAzMy42ODQgMTMuMDA0IEMgMzQuNjY5IDEzLjAzNiAzNS4zMTkgMTEuOTkxIDM0Ljg1NSAxMS4xMjIgQyAzNC44MzQgMTEuMDgxIDM0Ljgx''@;'; + put 'put ''IDExLjA0MiAzNC43ODQgMTEuMDA0IEwgMjkuMDY0IDEuMTQ0IEMgMjguNTcgMC4yOTkgMjcuMzQ4IDAuMjk5IDI2Ljg1NCAxLjE0NCBaIj48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0gMzQgMjkg''@;'; + put 'put ''QyAzNCAzMC4xMDUgMzMuMTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIuODk1IDMxIDIgMzAuMTA1IDIgMjkgTCAyIDcgQyAyIDUuODk1IDIuODk1IDUgNCA1IEwgMjEuOTU4IDUgTCAxOS4wMjggMTAgTCAxOSAxMCBMIDE5IDEwLjA0OCBMIDE3LjYyNSAxMi4zOTUgQyAxNi44MDcgMTMuNTgzIDE3''@;'; + put 'put ''LjU3MSAxNS4xOTcgMTkgMTUuMzQ1IEwgMTkgMjQgTCAyOSAyNCBMIDI5IDE1LjM1NyBMIDM0IDE1LjM1NyBaIE0gNyAyNiBMIDE3IDI2IEwgMTcgMTIgTCA3IDEyIFogTSA5IDE5IEwgMTUgMTkgTCAxNSAyNCBMIDkgMjQgWiBNIDE1IDE3IEwgOSAxNyBMIDkgMTQgTCAxNSAxNCBaIE0gMjcg''@;'; + put 'put ''MTcgTCAyMSAxNyBMIDIxIDE1LjM1NyBMIDI3IDE1LjM1NyBaIE0gMjcgMjIgTCAyMSAyMiBMIDIxIDE5IEwgMjcgMTkgWiI+PC9wYXRoPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNIDI2''@;'; + put 'put ''Ljg1NCAxLjE0NCBMIDIxLjEzNCAxMS4wMDQgQyAyMC41NzkgMTEuODE4IDIxLjExNCAxMi45MjggMjIuMDk3IDEzLjAwMSBDIDIyLjE0MiAxMy4wMDUgMjIuMTg4IDEzLjAwNiAyMi4yMzQgMTMuMDA0IEwgMzMuNjg0IDEzLjAwNCBDIDM0LjY2OSAxMy4wMzYgMzUuMzE5IDExLjk5MSAzNC44''@;'; + put 'put ''NTUgMTEuMTIyIEMgMzQuODM0IDExLjA4MSAzNC44MSAxMS4wNDIgMzQuNzg0IDExLjAwNCBMIDI5LjA2NCAxLjE0NCBDIDI4LjU3IDAuMjk5IDI3LjM0OCAwLjI5OSAyNi44NTQgMS4xNDQgWiI+PC9wYXRoPicpLGUuQ2xyU2hhcGVCdWJibGVDaGFydD0oMCxhLmNsckljb25TVkcpKCdcbiAg''@;'; + put 'put ''PHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0gMzIgNSBMIDQgNSBDIDIuODk1IDUgMiA1Ljg5NSAyIDcgTCAyIDI5IEMgMiAzMC4xMDUgMi44OTUgMzEgNCAzMSBMIDMyIDMxIEMgMzMuMTA1IDMxIDM0IDMwLjEwNSAzNCAyOSBMIDM0IDcgQyAz''@;'; + put 'put ''NCA1Ljg5NSAzMy4xMDUgNSAzMiA1IFogTSA0IDI5IEwgNCA3IEwgMzIgNyBMIDMyIDI5IFoiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSAyOSAxOCBDIDI5IDE5LjY1NyAyNy42NTcgMjEgMjYgMjEgQyAyNC4zNDMgMjEgMjMgMTkuNjU3IDIzIDE4IEMgMjMgMTYuMzQzIDI0LjM0MyAxNSAyNiAx''@;'; + put 'put ''NSBDIDI3LjY1NyAxNSAyOSAxNi4zNDMgMjkgMTggWiBNIDI2IDE2LjYgQyAyNS4yMjcgMTYuNiAyNC42IDE3LjIyNyAyNC42IDE4IEMgMjQuNiAxOC43NzMgMjUuMjI3IDE5LjQgMjYgMTkuNCBDIDI2Ljc3MyAxOS40IDI3LjQgMTguNzczIDI3LjQgMTggQyAyNy40IDE3LjIyNyAyNi43NzMg''@;'; + put 'put ''MTYuNiAyNiAxNi42IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiByeD0iMyI+PC9wYXRoPlxuICA8cGF0aCBkPSJNIDE1IDE0IEMgMTUgMTYuMjA5IDEzLjIwOSAxOCAxMSAxOCBDIDguNzkxIDE4IDcgMTYuMjA5IDcgMTQgQyA3IDExLjc5MSA4Ljc5MSAx''@;'; + put 'put ''MCAxMSAxMCBDIDEzLjIwOSAxMCAxNSAxMS43OTEgMTUgMTQgWiBNIDExIDExLjYgQyA5LjY3NSAxMS42IDguNiAxMi42NzUgOC42IDE0IEMgOC42IDE1LjMyNSA5LjY3NSAxNi40IDExIDE2LjQgQyAxMi4zMjUgMTYuNCAxMy40IDE1LjMyNSAxMy40IDE0IEMgMTMuNCAxMi42NzUgMTIuMzI1''@;'; + put 'put ''IDExLjYgMTEgMTEuNiBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgcng9IjMiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSAyMSAyMyBDIDIxIDI0LjY1NyAxOS42NTcgMjYgMTggMjYgQyAxNi4zNDMgMjYgMTUgMjQuNjU3IDE1IDIzIEMgMTUgMjEuMzQzIDE2''@;'; + put 'put ''LjM0MyAyMCAxOCAyMCBDIDE5LjY1NyAyMCAyMSAyMS4zNDMgMjEgMjMgWiBNIDE4IDIxLjYgQyAxNy4yMjcgMjEuNiAxNi42IDIyLjIyNyAxNi42IDIzIEMgMTYuNiAyMy43NzMgMTcuMjI3IDI0LjQgMTggMjQuNCBDIDE4Ljc3MyAyNC40IDE5LjQgMjMuNzczIDE5LjQgMjMgQyAxOS40IDIy''@;'; + put 'put ''LjIyNyAxOC43NzMgMjEuNiAxOCAyMS42IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiByeD0iMyI+PC9wYXRoPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNIDM0IDcgTCAzNCAyOSBDIDM0IDMwLjEwNSAz''@;'; + put 'put ''My4xMDUgMzEgMzIgMzEgTCA0IDMxIEMgMi44OTYgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBDIDIgNS44OTYgMi44OTYgNSA0IDUgTCAzMiA1IEMgMzMuMTA1IDUgMzQgNS44OTYgMzQgNyBaIE0gMTEgMTAgQyA4Ljc5MSAxMCA3IDExLjc5MSA3IDE0IEMgNyAxNi4yMDkgOC43OTEgMTggMTEg''@;'; + put 'put ''MTggQyAxMy4yMDkgMTggMTUgMTYuMjA5IDE1IDE0IEMgMTUgMTEuNzkxIDEzLjIwOSAxMCAxMSAxMCBaIE0gMjYgMTUgQyAyNC4zNDMgMTUgMjMgMTYuMzQzIDIzIDE4IEMgMjMgMTkuNjU3IDI0LjM0MyAyMSAyNiAyMSBDIDI3LjY1NyAyMSAyOSAxOS42NTcgMjkgMTggQyAyOSAxNi4zNDMg''@;'; + put 'put ''MjcuNjU3IDE1IDI2IDE1IFogTSAxOCAyMCBDIDE2LjM0MyAyMCAxNSAyMS4zNDMgMTUgMjMgQyAxNSAyNC42NTcgMTYuMzQzIDI2IDE4IDI2IEMgMTkuNjU3IDI2IDIxIDI0LjY1NyAyMSAyMyBDIDIxIDIxLjM0MyAxOS42NTcgMjAgMTggMjAgWiI+PC9wYXRoPlxuICA8cGF0aCBjbGFzcz0i''@;'; + put 'put ''Y2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0gMzIgMTMuMjIgTCAzMiAyOSBMIDQgMjkgTCA0IDcgTCAyMi41NyA3IEMgMjIuNTI0IDYuNjY4IDIyLjUwMSA2LjMzNCAyMi41IDYgQyAyMi41MDEgNS42NjUgMjIuNTI0IDUuMzMxIDIyLjU3''@;'; + put 'put ''IDUgTCA0IDUgQyAyLjg5NSA1IDIgNS44OTUgMiA3IEwgMiAyOSBDIDIgMzAuMTA0IDIuODk1IDMxIDQgMzEgTCAzMiAzMSBDIDMzLjEwNCAzMSAzNCAzMC4xMDQgMzQgMjkgTCAzNCAxMi4zNCBDIDMzLjM4IDEyLjczIDMyLjcwNiAxMy4wMjYgMzIgMTMuMjIgWiI+PC9wYXRoPlxuICA8cGF0''@;'; + put 'put ''aCBkPSJNIDI5IDE4IEMgMjkgMTkuNjU3IDI3LjY1NyAyMSAyNiAyMSBDIDI0LjM0MyAyMSAyMyAxOS42NTcgMjMgMTggQyAyMyAxNi4zNDMgMjQuMzQzIDE1IDI2IDE1IEMgMjcuNjU3IDE1IDI5IDE2LjM0MyAyOSAxOCBaIE0gMjYgMTYuNiBDIDI1LjIyNyAxNi42IDI0LjYgMTcuMjI3IDI0''@;'; + put 'put ''LjYgMTggQyAyNC42IDE4Ljc3MyAyNS4yMjcgMTkuNCAyNiAxOS40IEMgMjYuNzczIDE5LjQgMjcuNCAxOC43NzMgMjcuNCAxOCBDIDI3LjQgMTcuMjI3IDI2Ljc3MyAxNi42IDI2IDE2LjYgWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFk''@;'; + put 'put ''Z2VkIiByeD0iMyI+PC9wYXRoPlxuICA8cGF0aCBkPSJNIDE1IDE0IEMgMTUgMTYuMjA5IDEzLjIwOSAxOCAxMSAxOCBDIDguNzkxIDE4IDcgMTYuMjA5IDcgMTQgQyA3IDExLjc5MSA4Ljc5MSAxMCAxMSAxMCBDIDEzLjIwOSAxMCAxNSAxMS43OTEgMTUgMTQgWiBNIDExIDExLjYgQyA5LjY3''@;'; + put 'put ''NSAxMS42IDguNiAxMi42NzUgOC42IDE0IEMgOC42IDE1LjMyNSA5LjY3NSAxNi40IDExIDE2LjQgQyAxMi4zMjUgMTYuNCAxMy40IDE1LjMyNSAxMy40IDE0IEMgMTMuNCAxMi42NzUgMTIuMzI1IDExLjYgMTEgMTEuNiBaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91''@;'; + put 'put ''dGxpbmUtcGF0aC0zLS1iYWRnZWQiIHJ4PSIzIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gMjEgMjMgQyAyMSAyNC42NTcgMTkuNjU3IDI2IDE4IDI2IEMgMTYuMzQzIDI2IDE1IDI0LjY1NyAxNSAyMyBDIDE1IDIxLjM0MyAxNi4zNDMgMjAgMTggMjAgQyAxOS42NTcgMjAgMjEgMjEuMzQzIDIx''@;'; + put 'put ''IDIzIFogTSAxOCAyMS42IEMgMTcuMjI3IDIxLjYgMTYuNiAyMi4yMjcgMTYuNiAyMyBDIDE2LjYgMjMuNzczIDE3LjIyNyAyNC40IDE4IDI0LjQgQyAxOC43NzMgMjQuNCAxOS40IDIzLjc3MyAxOS40IDIzIEMgMTkuNCAyMi4yMjcgMTguNzczIDIxLjYgMTggMjEuNiBaIiBjbGFzcz0iY2xy''@;'; + put 'put ''LWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQiIHJ4PSIzIj48L3BhdGg+XG4gIDxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1''@;'; + put 'put ''Ij48L2NpcmNsZT5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0gMzQgMTIuMzQgTCAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIgMzEgTCA0IDMxIEMgMi44OTYgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBD''@;'; + put 'put ''IDIgNS44OTYgMi44OTYgNSA0IDUgTCAyMi41NyA1IEMgMjEuOTY5IDkuMjMzIDI1LjA1IDEzLjEgMjkuMzEgMTMuNDYgTCAzMC4zMiAxMy40OCBDIDMxLjYyNiAxMy40MjkgMzIuODk1IDEzLjAzNiAzNCAxMi4zNCBaIE0gMTEgMTAgQyA4Ljc5MSAxMCA3IDExLjc5MSA3IDE0IEMgNyAxNi4y''@;'; + put 'put ''MDkgOC43OTEgMTggMTEgMTggQyAxMy4yMDkgMTggMTUgMTYuMjA5IDE1IDE0IEMgMTUgMTEuNzkxIDEzLjIwOSAxMCAxMSAxMCBaIE0gMjYgMTUgQyAyNC4zNDMgMTUgMjMgMTYuMzQzIDIzIDE4IEMgMjMgMTkuNjU3IDI0LjM0MyAyMSAyNiAyMSBDIDI3LjY1NyAyMSAyOSAxOS42NTcgMjkg''@;'; + put 'put ''MTggQyAyOSAxNi4zNDMgMjcuNjU3IDE1IDI2IDE1IFogTSAxOCAyMCBDIDE2LjM0MyAyMCAxNSAyMS4zNDMgMTUgMjMgQyAxNSAyNC42NTcgMTYuMzQzIDI2IDE4IDI2IEMgMTkuNjU3IDI2IDIxIDI0LjY1NyAyMSAyMyBDIDIxIDIxLjM0MyAxOS42NTcgMjAgMTggMjAgWiI+PC9wYXRoPlxu''@;'; + put 'put ''ICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ij48L2NpcmNsZT5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRo''@;'; + put 'put ''LTEtLWFsZXJ0ZWQiIGQ9Ik0gMzQgMjkgQyAzNCAzMC4xMDUgMzMuMTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIuODk1IDMxIDIgMzAuMTA1IDIgMjkgTCAyIDcgQyAyIDUuODk1IDIuODk1IDUgNCA1IEwgMjEuOTU4IDUgTCAyMC43ODYgNyBMIDQgNyBMIDQgMjkgTCAzMiAyOSBMIDMyIDE1LjM1''@;'; + put 'put ''NyBMIDM0IDE1LjM1NyBaIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gMjkgMTggQyAyOSAxOS42NTcgMjcuNjU3IDIxIDI2IDIxIEMgMjQuMzQzIDIxIDIzIDE5LjY1NyAyMyAxOCBDIDIzIDE2LjM0MyAyNC4zNDMgMTUgMjYgMTUgQyAyNy42NTcgMTUgMjkgMTYuMzQzIDI5IDE4IFogTSAyNiAx''@;'; + put 'put ''Ni42IEMgMjUuMjI3IDE2LjYgMjQuNiAxNy4yMjcgMjQuNiAxOCBDIDI0LjYgMTguNzczIDI1LjIyNyAxOS40IDI2IDE5LjQgQyAyNi43NzMgMTkuNCAyNy40IDE4Ljc3MyAyNy40IDE4IEMgMjcuNCAxNy4yMjcgMjYuNzczIDE2LjYgMjYgMTYuNiBaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0t''@;'; + put 'put ''YWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIgcng9IjMiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSAxNSAxNCBDIDE1IDE2LjIwOSAxMy4yMDkgMTggMTEgMTggQyA4Ljc5MSAxOCA3IDE2LjIwOSA3IDE0IEMgNyAxMS43OTEgOC43OTEgMTAgMTEgMTAgQyAxMy4yMDkgMTAg''@;'; + put 'put ''MTUgMTEuNzkxIDE1IDE0IFogTSAxMSAxMS42IEMgOS42NzUgMTEuNiA4LjYgMTIuNjc1IDguNiAxNCBDIDguNiAxNS4zMjUgOS42NzUgMTYuNCAxMSAxNi40IEMgMTIuMzI1IDE2LjQgMTMuNCAxNS4zMjUgMTMuNCAxNCBDIDEzLjQgMTIuNjc1IDEyLjMyNSAxMS42IDExIDExLjYgWiIgY2xh''@;'; + put 'put ''c3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiIHJ4PSIzIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gMjEgMjMgQyAyMSAyNC42NTcgMTkuNjU3IDI2IDE4IDI2IEMgMTYuMzQzIDI2IDE1IDI0LjY1NyAxNSAyMyBDIDE1IDIxLjM0MyAxNi4z''@;'; + put 'put ''NDMgMjAgMTggMjAgQyAxOS42NTcgMjAgMjEgMjEuMzQzIDIxIDIzIFogTSAxOCAyMS42IEMgMTcuMjI3IDIxLjYgMTYuNiAyMi4yMjcgMTYuNiAyMyBDIDE2LjYgMjMuNzczIDE3LjIyNyAyNC40IDE4IDI0LjQgQyAxOC43NzMgMjQuNCAxOS40IDIzLjc3MyAxOS40IDIzIEMgMTkuNCAyMi4y''@;'; + put 'put ''MjcgMTguNzczIDIxLjYgMTggMjEuNiBaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRlZCIgcng9IjMiPjwvcGF0aD5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWFs''@;'; + put 'put ''ZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0gMjYuODU0IDEuMTQ0IEwgMjEuMTM0IDExLjAwNCBDIDIwLjU3OSAxMS44MTggMjEuMTE0IDEyLjkyOCAyMi4wOTcgMTMuMDAxIEMgMjIuMTQyIDEzLjAwNSAyMi4xODggMTMuMDA2IDIyLjIzNCAxMy4wMDQgTCAzMy42ODQgMTMuMDA0IEMgMzQuNjY5''@;'; + put 'put ''IDEzLjAzNiAzNS4zMTkgMTEuOTkxIDM0Ljg1NSAxMS4xMjIgQyAzNC44MzQgMTEuMDgxIDM0LjgxIDExLjA0MiAzNC43ODQgMTEuMDA0IEwgMjkuMDY0IDEuMTQ0IEMgMjguNTcgMC4yOTkgMjcuMzQ4IDAuMjk5IDI2Ljg1NCAxLjE0NCBaIj48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHIt''@;'; + put 'put ''aS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0gMzQgMjkgQyAzNCAzMC4xMDUgMzMuMTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIuODk2IDMxIDIgMzAuMTA1IDIgMjkgTCAyIDcgQyAyIDUuODk2IDIuODk2IDUgNCA1IEwgMjEuOTU4IDUgTCAxNy42MjUg''@;'; + put 'put ''MTIuMzk1IEMgMTYuNzk1IDEzLjYwMSAxNy41OTQgMTUuMjQ1IDE5LjA2NCAxNS4zNTEgQyAxOS4xMzQgMTUuMzU3IDE5LjIwMSAxNS4zNTkgMTkuMjcgMTUuMzU3IEwgMjQuNTc5IDE1LjM1NyBDIDIzLjYzOSAxNS44NjMgMjMgMTYuODU3IDIzIDE4IEMgMjMgMTkuNjU3IDI0LjM0MyAyMSAy''@;'; + put 'put ''NiAyMSBDIDI3LjY1NyAyMSAyOSAxOS42NTcgMjkgMTggQyAyOSAxNi44NTcgMjguMzYxIDE1Ljg2MyAyNy40MjEgMTUuMzU3IEwgMzQgMTUuMzU3IFogTSAxMSAxMCBDIDguNzkxIDEwIDcgMTEuNzkxIDcgMTQgQyA3IDE2LjIwOSA4Ljc5MSAxOCAxMSAxOCBDIDEzLjIwOSAxOCAxNSAxNi4y''@;'; + put 'put ''MDkgMTUgMTQgQyAxNSAxMS43OTEgMTMuMjA5IDEwIDExIDEwIFogTSAxOCAyMCBDIDE2LjM0MyAyMCAxNSAyMS4zNDMgMTUgMjMgQyAxNSAyNC42NTcgMTYuMzQzIDI2IDE4IDI2IEMgMTkuNjU3IDI2IDIxIDI0LjY1NyAyMSAyMyBDIDIxIDIxLjM0MyAxOS42NTcgMjAgMTggMjAgWiI+PC9w''@;'; + put 'put ''YXRoPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNIDI2Ljg1NCAxLjE0NCBMIDIxLjEzNCAxMS4wMDQgQyAyMC41NzkgMTEuODE4IDIxLjExNCAxMi45MjggMjIuMDk3IDEzLjAwMSBDIDIy''@;'; + put 'put ''LjE0MiAxMy4wMDUgMjIuMTg4IDEzLjAwNiAyMi4yMzQgMTMuMDA0IEwgMzMuNjg0IDEzLjAwNCBDIDM0LjY2OSAxMy4wMzYgMzUuMzE5IDExLjk5MSAzNC44NTUgMTEuMTIyIEMgMzQuODM0IDExLjA4MSAzNC44MSAxMS4wNDIgMzQuNzg0IDExLjAwNCBMIDI5LjA2NCAxLjE0NCBDIDI4LjU3''@;'; + put 'put ''IDAuMjk5IDI3LjM0OCAwLjI5OSAyNi44NTQgMS4xNDQgWiI+PC9wYXRoPicpLGUuQ2xyU2hhcGVDbG91ZENoYXJ0PSgwLGEuY2xySWNvblNWRykoJ1xuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMyLDVINEEyLDIsMCwwLDAsMiw3VjI5''@;'; + put 'put ''YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlY3QTIsMiwwLDAsMCwzMiw1Wk00LDI5VjdIMzJWMjlaIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gMjAuOTcxIDExLjI0MyBDIDIzLjMxNCAxMy41ODYgMjIuMzY0IDE4LjMzNSAxOC44NDkgMjEuODQ5IEMgMTUuMzM0IDI1LjM2NCAxMC41''@;'; + put 'put ''ODYgMjYuMzE0IDguMjQzIDIzLjk3IEMgNS44OTkgMjEuNjI3IDYuODQ5IDE2Ljg3OCAxMC4zNjQgMTMuMzY0IEMgMTMuODc5IDkuODQ5IDE4LjYyOCA4LjkgMjAuOTcxIDExLjI0MyBaIE0gMTEuNjM2IDE0LjYzNyBDIDguODI0IDE3LjQ0OSA3Ljg3NSAyMS4wNTggOS41MTUgMjIuNjk4IEMg''@;'; + put 'put ''MTEuMTU1IDI0LjMzOCAxNC43NjQgMjMuMzg5IDE3LjU3NiAyMC41NzcgQyAyMC4zODggMTcuNzY1IDIxLjMzOCAxNC4xNTYgMTkuNjk3IDEyLjUxNiBDIDE4LjA1NyAxMC44NzYgMTQuNDQ4IDExLjgyNSAxMS42MzYgMTQuNjM3IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxp''@;'; + put 'put ''bmUtcGF0aC0yIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gMjggMjIgQyAyOCAyMy42NTcgMjYuNjU3IDI1IDI1IDI1IEMgMjMuMzQzIDI1IDIyIDIzLjY1NyAyMiAyMiBDIDIyIDIwLjM0MyAyMy4zNDMgMTkgMjUgMTkgQyAyNi42NTcgMTkgMjggMjAuMzQzIDI4IDIyIFogTSAyNSAyMC42IEMg''@;'; + put 'put ''MjQuMjI3IDIwLjYgMjMuNiAyMS4yMjcgMjMuNiAyMiBDIDIzLjYgMjIuNzczIDI0LjIyNyAyMy40IDI1IDIzLjQgQyAyNS43NzMgMjMuNCAyNi40IDIyLjc3MyAyNi40IDIyIEMgMjYuNCAyMS4yMjcgMjUuNzczIDIwLjYgMjUgMjAuNiBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1v''@;'; + put 'put ''dXRsaW5lLXBhdGgtMyIgeD0iNyI+PC9wYXRoPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNIDM0IDcgTCAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIgMzEgTCA0IDMxIEMgMi44OTUgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBDIDIg''@;'; + put 'put ''NS44OTUgMi44OTUgNSA0IDUgTCAzMiA1IEMgMzMuMTA1IDUgMzQgNS44OTUgMzQgNyBaIE0gMTAuMzY0IDEzLjM2NCBDIDYuODQ5IDE2Ljg3OCA1Ljg5OSAyMS42MjcgOC4yNDMgMjMuOTcgQyAxMC41ODYgMjYuMzE0IDE1LjMzNCAyNS4zNjQgMTguODQ5IDIxLjg0OSBDIDIyLjM2NCAxOC4z''@;'; + put 'put ''MzUgMjMuMzE0IDEzLjU4NiAyMC45NzEgMTEuMjQzIEMgMTguNjI4IDguOSAxMy44NzkgOS44NDkgMTAuMzY0IDEzLjM2NCBaIE0gMjUgMTkgQyAyMy4zNDMgMTkgMjIgMjAuMzQzIDIyIDIyIEMgMjIgMjMuNjU3IDIzLjM0MyAyNSAyNSAyNSBDIDI2LjY1NyAyNSAyOCAyMy42NTcgMjggMjIg''@;'; + put 'put ''QyAyOCAyMC4zNDMgMjYuNjU3IDE5IDI1IDE5IFoiPjwvcGF0aD5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiBkPSJNIDMyIDEzLjIyIEwgMzIgMjkgTCA0IDI5IEwgNCA3IEwgMjIuNTcgNyBDIDIyLjUyNCA2LjY2''@;'; + put 'put ''OCAyMi41MDEgNi4zMzQgMjIuNSA2IEMgMjIuNTAxIDUuNjY1IDIyLjUyNCA1LjMzMSAyMi41NyA1IEwgNCA1IEMgMi44OTUgNSAyIDUuODk1IDIgNyBMIDIgMjkgQyAyIDMwLjEwNCAyLjg5NSAzMSA0IDMxIEwgMzIgMzEgQyAzMy4xMDUgMzEgMzQgMzAuMTA0IDM0IDI5IEwgMzQgMTIuMzQg''@;'; + put 'put ''QyAzMy4zOCAxMi43MyAzMi43MDYgMTMuMDI2IDMyIDEzLjIyIFoiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSAyMC45NzEgMTEuMjQzIEMgMjMuMzE0IDEzLjU4NiAyMi4zNjQgMTguMzM1IDE4Ljg0OSAyMS44NDkgQyAxNS4zMzQgMjUuMzY0IDEwLjU4NiAyNi4zMTQgOC4yNDMgMjMuOTcgQyA1''@;'; + put 'put ''Ljg5OSAyMS42MjcgNi44NDkgMTYuODc4IDEwLjM2NCAxMy4zNjQgQyAxMy44NzkgOS44NDkgMTguNjI4IDguOSAyMC45NzEgMTEuMjQzIFogTSAxMS42MzYgMTQuNjM3IEMgOC44MjQgMTcuNDQ5IDcuODc1IDIxLjA1OCA5LjUxNSAyMi42OTggQyAxMS4xNTUgMjQuMzM4IDE0Ljc2NCAyMy4z''@;'; + put 'put ''ODkgMTcuNTc2IDIwLjU3NyBDIDIwLjM4OCAxNy43NjUgMjEuMzM4IDE0LjE1NiAxOS42OTcgMTIuNTE2IEMgMTguMDU3IDEwLjg3NiAxNC40NDggMTEuODI1IDExLjYzNiAxNC42MzcgWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2Vk''@;'; + put 'put ''Ij48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gMjggMjIgQyAyOCAyMy42NTcgMjYuNjU3IDI1IDI1IDI1IEMgMjMuMzQzIDI1IDIyIDIzLjY1NyAyMiAyMiBDIDIyIDIwLjM0MyAyMy4zNDMgMTkgMjUgMTkgQyAyNi42NTcgMTkgMjggMjAuMzQzIDI4IDIyIFogTSAyNSAyMC42IEMgMjQuMjI2IDIw''@;'; + put 'put ''LjYgMjMuNiAyMS4yMjYgMjMuNiAyMiBDIDIzLjYgMjIuNzczIDI0LjIyNiAyMy40IDI1IDIzLjQgQyAyNS43NzMgMjMuNCAyNi40IDIyLjc3MyAyNi40IDIyIEMgMjYuNCAyMS4yMjYgMjUuNzczIDIwLjYgMjUgMjAuNiBaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91''@;'; + put 'put ''dGxpbmUtcGF0aC0zLS1iYWRnZWQiIHg9IjciPjwvcGF0aD5cbiAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiPjwvY2lyY2xlPlxuICA8cGF0aCBjbGFzcz0i''@;'; + put 'put ''Y2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgZD0iTSAzNCAxMi4zNCBMIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NSAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3IEMgMiA1Ljg5NSAyLjg5NSA1IDQgNSBMIDIyLjU3''@;'; + put 'put ''IDUgQyAyMS45NjkgOS4yMzMgMjUuMDUgMTMuMSAyOS4zMSAxMy40NiBMIDMwLjMyIDEzLjQ4IEMgMzEuNjI1IDEzLjQyOSAzMi44OTUgMTMuMDM2IDM0IDEyLjM0IFogTSAxMC4zNjQgMTMuMzY0IEMgNi44NDkgMTYuODc4IDUuODk5IDIxLjYyNyA4LjI0MyAyMy45NyBDIDEwLjU4NiAyNi4z''@;'; + put 'put ''MTQgMTUuMzM0IDI1LjM2NCAxOC44NDkgMjEuODQ5IEMgMjIuMzY0IDE4LjMzNSAyMy4zMTQgMTMuNTg2IDIwLjk3MSAxMS4yNDMgQyAxOC42MjggOC45IDEzLjg3OSA5Ljg0OSAxMC4zNjQgMTMuMzY0IFogTSAyNSAxOSBDIDIzLjM0MyAxOSAyMiAyMC4zNDMgMjIgMjIgQyAyMiAyMy42NTcg''@;'; + put 'put ''MjMuMzQzIDI1IDI1IDI1IEMgMjYuNjU3IDI1IDI4IDIzLjY1NyAyOCAyMiBDIDI4IDIwLjM0MyAyNi42NTcgMTkgMjUgMTkgWiI+PC9wYXRoPlxuICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0i''@;'; + put 'put ''MzAiIGN5PSI2IiByPSI1Ij48L2NpcmNsZT5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0gMzQgMjkgQyAzNCAzMC4xMDUgMzMuMTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIuODk1IDMxIDIgMzAuMTA1IDIg''@;'; + put 'put ''MjkgTCAyIDcgQyAyIDUuODk1IDIuODk1IDUgNCA1IEwgMjEuOTU4IDUgTCAyMC43ODYgNyBMIDQgNyBMIDQgMjkgTCAzMiAyOSBMIDMyIDE1LjM1NyBMIDM0IDE1LjM1NyBaIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gMTguODQ5IDIxLjg0OSBDIDE1LjMzNCAyNS4zNjQgMTAuNTg2IDI2LjMx''@;'; + put 'put ''NCA4LjI0MyAyMy45NyBDIDUuODk5IDIxLjYyNyA2Ljg0OSAxNi44NzggMTAuMzY0IDEzLjM2NCBDIDEzLjA0OSAxMC42NzkgMTYuNDUzIDkuNDkyIDE4Ljk1NiAxMC4xMjQgTCAxOC4wMDggMTEuNzQxIEMgMTYuMTggMTEuNTE4IDEzLjY5NSAxMi41NzggMTEuNjM2IDE0LjYzNyBDIDguODI0''@;'; + put 'put ''IDE3LjQ0OSA3Ljg3NSAyMS4wNTggOS41MTUgMjIuNjk4IEMgMTEuMTU1IDI0LjMzOCAxNC43NjQgMjMuMzg5IDE3LjU3NiAyMC41NzcgQyAxOS4yMjggMTguOTI1IDIwLjIzNyAxNi45OTggMjAuNDU2IDE1LjM1NyBMIDIyLjIyIDE1LjM1NyBDIDIyLjAwNiAxNy40NzcgMjAuODM4IDE5Ljg2''@;'; + put 'put ''MSAxOC44NDkgMjEuODQ5IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gMjggMjIgQyAyOCAyMy42NTcgMjYuNjU3IDI1IDI1IDI1IEMgMjMuMzQzIDI1IDIyIDIzLjY1NyAyMiAyMiBD''@;'; + put 'put ''IDIyIDIwLjM0MyAyMy4zNDMgMTkgMjUgMTkgQyAyNi42NTcgMTkgMjggMjAuMzQzIDI4IDIyIFogTSAyNSAyMC42IEMgMjQuMjI2IDIwLjYgMjMuNiAyMS4yMjYgMjMuNiAyMiBDIDIzLjYgMjIuNzczIDI0LjIyNiAyMy40IDI1IDIzLjQgQyAyNS43NzMgMjMuNCAyNi40IDIyLjc3MyAyNi40''@;'; + put 'put ''IDIyIEMgMjYuNCAyMS4yMjYgMjUuNzczIDIwLjYgMjUgMjAuNiBaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCIgeD0iNyI+PC9wYXRoPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRs''@;'; + put 'put ''aW5lLXBhdGgtNC0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTSAyNi44NTQgMS4xNDQgTCAyMS4xMzQgMTEuMDA0IEMgMjAuNTc5IDExLjgxOCAyMS4xMTQgMTIuOTI4IDIyLjA5NyAxMy4wMDEgQyAyMi4xNDIgMTMuMDA1IDIyLjE4OCAxMy4wMDYgMjIuMjM0IDEzLjAwNCBMIDMzLjY4NCAx''@;'; + put 'put ''My4wMDQgQyAzNC42NjkgMTMuMDM2IDM1LjMxOSAxMS45OTEgMzQuODU1IDExLjEyMiBDIDM0LjgzNCAxMS4wODEgMzQuODEgMTEuMDQyIDM0Ljc4NCAxMS4wMDQgTCAyOS4wNjQgMS4xNDQgQyAyOC41NyAwLjI5OSAyNy4zNDggMC4yOTkgMjYuODU0IDEuMTQ0IFoiPjwvcGF0aD5cbiAgPHBh''@;'; + put 'put ''dGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIgZD0iTSAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIgMzEgTCA0IDMxIEMgMi44OTUgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBDIDIgNS44OTUgMi44OTUgNSA0IDUgTCAyMS45''@;'; + put 'put ''NTggNSBMIDE4Ljk1NiAxMC4xMjQgQyAxNi40NTMgOS40OTIgMTMuMDQ5IDEwLjY3OSAxMC4zNjQgMTMuMzY0IEMgNi44NDkgMTYuODc4IDUuODk5IDIxLjYyNyA4LjI0MyAyMy45NyBDIDEwLjU4NiAyNi4zMTQgMTUuMzM0IDI1LjM2NCAxOC44NDkgMjEuODQ5IEMgMjAuODM4IDE5Ljg2MSAy''@;'; + put 'put ''Mi4wMDYgMTcuNDc3IDIyLjIyIDE1LjM1NyBMIDM0IDE1LjM1NyBaIE0gMjUgMTkgQyAyMy4zNDMgMTkgMjIgMjAuMzQzIDIyIDIyIEMgMjIgMjMuNjU3IDIzLjM0MyAyNSAyNSAyNSBDIDI2LjY1NyAyNSAyOCAyMy42NTcgMjggMjIgQyAyOCAyMC4zNDMgMjYuNjU3IDE5IDI1IDE5IFoiPjwv''@;'; + put 'put ''cGF0aD5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTSAyNi44NTQgMS4xNDQgTCAyMS4xMzQgMTEuMDA0IEMgMjAuNTc5IDExLjgxOCAyMS4xMTQgMTIuOTI4IDIyLjA5NyAxMy4wMDEgQyAy''@;'; + put 'put ''Mi4xNDIgMTMuMDA1IDIyLjE4OCAxMy4wMDYgMjIuMjM0IDEzLjAwNCBMIDMzLjY4NCAxMy4wMDQgQyAzNC42NjkgMTMuMDM2IDM1LjMxOSAxMS45OTEgMzQuODU1IDExLjEyMiBDIDM0LjgzNCAxMS4wODEgMzQuODEgMTEuMDQyIDM0Ljc4NCAxMS4wMDQgTCAyOS4wNjQgMS4xNDQgQyAyOC41''@;'; + put 'put ''NyAwLjI5OSAyNy4zNDggMC4yOTkgMjYuODU0IDEuMTQ0IFoiPjwvcGF0aD4nKSxlLkNsclNoYXBlQ3VydmVDaGFydD0oMCxhLmNsckljb25TVkcpKCdcbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0gMzIgNSBMIDQgNSBDIDIuODk1IDUg''@;'; + put 'put ''MiA1Ljg5NSAyIDcgTCAyIDI5IEMgMiAzMC4xMDUgMi44OTUgMzEgNCAzMSBMIDMyIDMxIEMgMzMuMTA1IDMxIDM0IDMwLjEwNSAzNCAyOSBMIDM0IDcgQyAzNCA1Ljg5NSAzMy4xMDUgNSAzMiA1IFogTSA0IDI5IEwgNCA3IEwgMzIgNyBMIDMyIDI5IFoiPjwvcGF0aD5cbiAgPHBhdGggZD0i''@;'; + put 'put ''TSA3IDExLjggQyA2LjU1OCAxMS44IDYuMiAxMS40NDIgNi4yIDExIEMgNi4yIDEwLjU1OCA2LjU1OCAxMC4yIDcgMTAuMiBMIDEzIDEwLjIgQyAxNS40MDQgMTAuMiAxNi4zNjggMTEuOTA3IDE3LjY1MyAxNi40NzggQyAxNy42OTUgMTYuNjI4IDE3Ljc0NCAxNi44MDMgMTcuODM1IDE3LjEy''@;'; + put 'put ''OSBDIDE3LjkwOSAxNy4zOTIgMTcuOTY0IDE3LjU4OCAxOC4wMTkgMTcuNzggQyAxOS4zMzIgMjIuMzc1IDIwLjU0OSAyNC4yIDIzIDI0LjIgTCAyOSAyNC4yIEMgMjkuNDQyIDI0LjIgMjkuOCAyNC41NTggMjkuOCAyNSBDIDI5LjggMjUuNDQyIDI5LjQ0MiAyNS44IDI5IDI1LjggTCAyMyAy''@;'; + put 'put ''NS44IEMgMTkuNTM1IDI1LjggMTcuOTgxIDIzLjQ2OSAxNi40ODEgMTguMjIgQyAxNi40MjUgMTguMDI1IDE2LjM2OSAxNy44MjYgMTYuMjk1IDE3LjU2IEMgMTYuMjAzIDE3LjIzNCAxNi4xNTQgMTcuMDYgMTYuMTEzIDE2LjkxMSBDIDE1LjA0MyAxMy4xMDUgMTQuMzA1IDExLjggMTMgMTEu''@;'; + put 'put ''OCBMIDcgMTEuOCBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiI+PC9wYXRoPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNIDM0IDcgTCAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIgMzEgTCA0IDMx''@;'; + put 'put ''IEMgMi44OTYgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBDIDIgNS44OTYgMi44OTYgNSA0IDUgTCAzMiA1IEMgMzMuMTA1IDUgMzQgNS44OTYgMzQgNyBaIE0gMTMgMTIgQyAxNC44MTcgMTIgMTUuNjc0IDEzLjQ5OSAxNy4wMzkgMTguMjc1IEMgMTcuODEzIDIwLjk4NCAxOC4yMDEgMjIuMTE4''@;'; + put 'put ''IDE4Ljg4MiAyMy4zMDkgQyAxOS44NyAyNS4wMzggMjEuMjA1IDI2IDIzIDI2IEwgMjkgMjYgQyAyOS41NTIgMjYgMzAgMjUuNTUyIDMwIDI1IEMgMzAgMjQuNDQ4IDI5LjU1MiAyNCAyOSAyNCBMIDIzIDI0IEMgMjEuMTgzIDI0IDIwLjMyNiAyMi41MDEgMTguOTYyIDE3LjcyNSBDIDE4LjE4''@;'; + put 'put ''OCAxNS4wMTYgMTcuNzk5IDEzLjg4MiAxNy4xMTggMTIuNjkxIEMgMTYuMTMgMTAuOTYyIDE0Ljc5NSAxMCAxMyAxMCBMIDcgMTAgQyA2LjQ0OCAxMCA2IDEwLjQ0OCA2IDExIEMgNiAxMS41NTIgNi40NDggMTIgNyAxMiBaIj48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5l''@;'; + put 'put ''LS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgZD0iTSAzMiAxMy4yMiBMIDMyIDI5IEwgNCAyOSBMIDQgNyBMIDIyLjU3IDcgQyAyMi41MjQgNi42NjggMjIuNTAxIDYuMzM0IDIyLjUgNiBDIDIyLjUwMSA1LjY2NSAyMi41MjQgNS4zMzEgMjIuNTcgNSBMIDQgNSBDIDIu''@;'; + put 'put ''ODk1IDUgMiA1Ljg5NSAyIDcgTCAyIDI5IEMgMiAzMC4xMDQgMi44OTUgMzEgNCAzMSBMIDMyIDMxIEMgMzMuMTA0IDMxIDM0IDMwLjEwNCAzNCAyOSBMIDM0IDEyLjM0IEMgMzMuMzggMTIuNzMgMzIuNzA2IDEzLjAyNiAzMiAxMy4yMiBaIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gNyAxMS44''@;'; + put 'put ''IEMgNi41NTggMTEuOCA2LjIgMTEuNDQyIDYuMiAxMSBDIDYuMiAxMC41NTggNi41NTggMTAuMiA3IDEwLjIgTCAxMyAxMC4yIEMgMTUuNDA0IDEwLjIgMTYuMzY4IDExLjkwNyAxNy42NTMgMTYuNDc4IEMgMTcuNjk1IDE2LjYyOCAxNy43NDQgMTYuODAzIDE3LjgzNSAxNy4xMjkgQyAxNy45''@;'; + put 'put ''MDkgMTcuMzkyIDE3Ljk2NCAxNy41ODggMTguMDE5IDE3Ljc4IEMgMTkuMzMyIDIyLjM3NSAyMC41NDkgMjQuMiAyMyAyNC4yIEwgMjkgMjQuMiBDIDI5LjQ0MiAyNC4yIDI5LjggMjQuNTU4IDI5LjggMjUgQyAyOS44IDI1LjQ0MiAyOS40NDIgMjUuOCAyOSAyNS44IEwgMjMgMjUuOCBDIDE5''@;'; + put 'put ''LjUzNSAyNS44IDE3Ljk4MSAyMy40NjkgMTYuNDgxIDE4LjIyIEMgMTYuNDI1IDE4LjAyNSAxNi4zNjkgMTcuODI2IDE2LjI5NSAxNy41NiBDIDE2LjIwMyAxNy4yMzQgMTYuMTU0IDE3LjA2IDE2LjExMyAxNi45MTEgQyAxNS4wNDMgMTMuMTA1IDE0LjMwNSAxMS44IDEzIDExLjggTCA3IDEx''@;'; + put 'put ''LjggWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIj48L3BhdGg+XG4gIDxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5''@;'; + put 'put ''PSI2IiByPSI1Ij48L2NpcmNsZT5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0gMzQgMTIuMzQgTCAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIgMzEgTCA0IDMxIEMgMi44OTYgMzEgMiAzMC4xMDUgMiAy''@;'; + put 'put ''OSBMIDIgNyBDIDIgNS44OTYgMi44OTYgNSA0IDUgTCAyMi41NyA1IEMgMjEuOTY5IDkuMjMzIDI1LjA1IDEzLjEgMjkuMzEgMTMuNDYgTCAzMC4zMiAxMy40OCBDIDMxLjYyNiAxMy40MjkgMzIuODk1IDEzLjAzNiAzNCAxMi4zNCBaIE0gMTMgMTIgQyAxNC44MTcgMTIgMTUuNjc0IDEzLjQ5''@;'; + put 'put ''OSAxNy4wMzkgMTguMjc1IEMgMTcuODEzIDIwLjk4NCAxOC4yMDEgMjIuMTE4IDE4Ljg4MiAyMy4zMDkgQyAxOS44NyAyNS4wMzggMjEuMjA1IDI2IDIzIDI2IEwgMjkgMjYgQyAyOS41NTIgMjYgMzAgMjUuNTUyIDMwIDI1IEMgMzAgMjQuNDQ4IDI5LjU1MiAyNCAyOSAyNCBMIDIzIDI0IEMg''@;'; + put 'put ''MjEuMTgzIDI0IDIwLjMyNiAyMi41MDEgMTguOTYyIDE3LjcyNSBDIDE4LjE4OCAxNS4wMTYgMTcuNzk5IDEzLjg4MiAxNy4xMTggMTIuNjkxIEMgMTYuMTMgMTAuOTYyIDE0Ljc5NSAxMCAxMyAxMCBMIDcgMTAgQyA2LjQ0OCAxMCA2IDEwLjQ0OCA2IDExIEMgNiAxMS41NTIgNi40NDggMTIg''@;'; + put 'put ''NyAxMiBaIj48L3BhdGg+XG4gIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiPjwvY2lyY2xlPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBj''@;'; + put 'put ''bHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgZD0iTSAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIgMzEgTCA0IDMxIEMgMi44OTUgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBDIDIgNS44OTUgMi44OTUgNSA0IDUgTCAyMS45NTggNSBMIDIwLjc4NiA3IEwgNCA3IEwgNCAyOSBM''@;'; + put 'put ''IDMyIDI5IEwgMzIgMTUuMzU3IEwgMzQgMTUuMzU3IFoiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSA3IDExLjggQyA2LjU1OCAxMS44IDYuMiAxMS40NDIgNi4yIDExIEMgNi4yIDEwLjU1OCA2LjU1OCAxMC4yIDcgMTAuMiBMIDEzIDEwLjIgQyAxNS40MDQgMTAuMiAxNi4zNjggMTEuOTA3IDE3''@;'; + put 'put ''LjY1MyAxNi40NzggQyAxNy42OTUgMTYuNjI4IDE3Ljc0NCAxNi44MDMgMTcuODM1IDE3LjEyOSBDIDE3LjkwOSAxNy4zOTIgMTcuOTY0IDE3LjU4OCAxOC4wMTkgMTcuNzggQyAxOS4zMzIgMjIuMzc1IDIwLjU0OSAyNC4yIDIzIDI0LjIgTCAyOSAyNC4yIEMgMjkuNDQyIDI0LjIgMjkuOCAy''@;'; + put 'put ''NC41NTggMjkuOCAyNSBDIDI5LjggMjUuNDQyIDI5LjQ0MiAyNS44IDI5IDI1LjggTCAyMyAyNS44IEMgMTkuNTM1IDI1LjggMTcuOTgxIDIzLjQ2OSAxNi40ODEgMTguMjIgQyAxNi40MjUgMTguMDI1IDE2LjM2OSAxNy44MjYgMTYuMjk1IDE3LjU2IEMgMTYuMjAzIDE3LjIzNCAxNi4xNTQg''@;'; + put 'put ''MTcuMDYgMTYuMTEzIDE2LjkxMSBDIDE1LjA0MyAxMy4xMDUgMTQuMzA1IDExLjggMTMgMTEuOCBMIDcgMTEuOCBaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCI+PC9wYXRoPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGlu''@;'; + put 'put ''ZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTSAyNi44NTQgMS4xNDQgTCAyMS4xMzQgMTEuMDA0IEMgMjAuNTc5IDExLjgxOCAyMS4xMTQgMTIuOTI4IDIyLjA5NyAxMy4wMDEgQyAyMi4xNDIgMTMuMDA1IDIyLjE4OCAxMy4wMDYgMjIu''@;'; + put 'put ''MjM0IDEzLjAwNCBMIDMzLjY4NCAxMy4wMDQgQyAzNC42NjkgMTMuMDM2IDM1LjMxOSAxMS45OTEgMzQuODU1IDExLjEyMiBDIDM0LjgzNCAxMS4wODEgMzQuODEgMTEuMDQyIDM0Ljc4NCAxMS4wMDQgTCAyOS4wNjQgMS4xNDQgQyAyOC41NyAwLjI5OSAyNy4zNDggMC4yOTkgMjYuODU0IDEu''@;'; + put 'put ''MTQ0IFoiPjwvcGF0aD5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIgZD0iTSAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIgMzEgTCA0IDMxIEMgMi44OTYgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBDIDIgNS44''@;'; + put 'put ''OTYgMi44OTYgNSA0IDUgTCAyMS45NTggNSBMIDE3LjYyNSAxMi4zOTUgQyAxNy40NzYgMTIuNjEyIDE3LjM3OSAxMi44NDMgMTcuMzMgMTMuMDc3IEMgMTcuMjYyIDEyLjk0OCAxNy4xOTIgMTIuODIgMTcuMTE4IDEyLjY5MSBDIDE2LjEzIDEwLjk2MiAxNC43OTUgMTAgMTMgMTAgTCA3IDEw''@;'; + put 'put ''IEMgNi40NDggMTAgNiAxMC40NDggNiAxMSBDIDYgMTEuNTUyIDYuNDQ4IDEyIDcgMTIgTCAxMyAxMiBDIDE0LjgxNyAxMiAxNS42NzQgMTMuNDk5IDE3LjAzOSAxOC4yNzUgQyAxNy44MTMgMjAuOTg0IDE4LjIwMSAyMi4xMTggMTguODgyIDIzLjMwOSBDIDE5Ljg3IDI1LjAzOCAyMS4yMDUg''@;'; + put 'put ''MjYgMjMgMjYgTCAyOSAyNiBDIDI5LjU1MiAyNiAzMCAyNS41NTIgMzAgMjUgQyAzMCAyNC40NDggMjkuNTUyIDI0IDI5IDI0IEwgMjMgMjQgQyAyMS4xODMgMjQgMjAuMzI2IDIyLjUwMSAxOC45NjIgMTcuNzI1IEMgMTguNjQgMTYuNTk4IDE4LjM4NSAxNS43NDQgMTguMTQ3IDE1LjA0NCBD''@;'; + put 'put ''IDE4LjQwNyAxNS4yMTUgMTguNzE3IDE1LjMyNiAxOS4wNjQgMTUuMzUxIEMgMTkuMTM0IDE1LjM1NyAxOS4yMDEgMTUuMzU5IDE5LjI3IDE1LjM1NyBMIDM0IDE1LjM1NyBaIj48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTIt''@;'; + put 'put ''LWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0gMjYuODU0IDEuMTQ0IEwgMjEuMTM0IDExLjAwNCBDIDIwLjU3OSAxMS44MTggMjEuMTE0IDEyLjkyOCAyMi4wOTcgMTMuMDAxIEMgMjIuMTQyIDEzLjAwNSAyMi4xODggMTMuMDA2IDIyLjIzNCAxMy4wMDQgTCAzMy42ODQgMTMuMDA0IEMgMzQu''@;'; + put 'put ''NjY5IDEzLjAzNiAzNS4zMTkgMTEuOTkxIDM0Ljg1NSAxMS4xMjIgQyAzNC44MzQgMTEuMDgxIDM0LjgxIDExLjA0MiAzNC43ODQgMTEuMDA0IEwgMjkuMDY0IDEuMTQ0IEMgMjguNTcgMC4yOTkgMjcuMzQ4IDAuMjk5IDI2Ljg1NCAxLjE0NCBaIj48L3BhdGg+JyksZS5DbHJTaGFwZUdyaWRD''@;'; + put 'put ''aGFydD0oMCxhLmNsckljb25TVkcpKCdcbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xNSwxN0g0YTIsMiwwLDAsMS0yLTJWOEEyLDIsMCwwLDEsNCw2SDE1YTIsMiwwLDAsMSwyLDJ2N0EyLDIsMCwwLDEsMTUsMTdaTTQsOHY3SDE1Vjha''@;'; + put 'put ''Ii8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMzIsMTdIMjFhMiwyLDAsMCwxLTItMlY4YTIsMiwwLDAsMSwyLTJIMzJhMiwyLDAsMCwxLDIsMnY3QTIsMiwwLDAsMSwzMiwxN1pNMjEsOHY3SDMyVjhaIi8+XG4gIDxwYXRoIGNsYXNz''@;'; + put 'put ''PSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJNMTUsMzBINGEyLDIsMCwwLDEtMi0yVjIxYTIsMiwwLDAsMSwyLTJIMTVhMiwyLDAsMCwxLDIsMnY3QTIsMiwwLDAsMSwxNSwzMFpNNCwyMXY3SDE1VjIxWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBj''@;'; + put 'put ''bHItaS1vdXRsaW5lLXBhdGgtNCIgZD0iTTMyLDMwSDIxYTIsMiwwLDAsMS0yLTJWMjFhMiwyLDAsMCwxLDItMkgzMmEyLDIsMCwwLDEsMiwydjdBMiwyLDAsMCwxLDMyLDMwWk0yMSwyMXY3SDMyVjIxWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0x''@;'; + put 'put ''IiBkPSJNIDE1IDE3IEwgNCAxNyBDIDIuODk1IDE3IDIgMTYuMTA1IDIgMTUgTCAyIDggQyAyIDYuODk1IDIuODk1IDYgNCA2IEwgMTUgNiBDIDE2LjEwNSA2IDE3IDYuODk1IDE3IDggTCAxNyAxNSBDIDE3IDE2LjEwNSAxNi4xMDUgMTcgMTUgMTcgWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xy''@;'; + put 'put ''LWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiBkPSJNIDMyIDE3IEwgMjEgMTcgQyAxOS44OTUgMTcgMTkgMTYuMTA1IDE5IDE1IEwgMTkgOCBDIDE5IDYuODk1IDE5Ljg5NSA2IDIxIDYgTCAzMiA2IEMgMzMuMTA1IDYgMzQgNi44OTUgMzQgOCBMIDM0IDE1IEMgMzQgMTYuMTA1IDMzLjEw''@;'; + put 'put ''NSAxNyAzMiAxNyBaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIGQ9Ik0gMTUgMzAgTCA0IDMwIEMgMi44OTUgMzAgMiAyOS4xMDUgMiAyOCBMIDIgMjEgQyAyIDE5Ljg5NSAyLjg5NSAxOSA0IDE5IEwgMTUgMTkgQyAxNi4xMDUgMTkgMTcgMTku''@;'; + put 'put ''ODk1IDE3IDIxIEwgMTcgMjggQyAxNyAyOS4xMDUgMTYuMTA1IDMwIDE1IDMwIFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNCIgZD0iTSAzMiAzMCBMIDIxIDMwIEMgMTkuODk1IDMwIDE5IDI5LjEwNSAxOSAyOCBMIDE5IDIxIEMgMTkgMTkuODk1''@;'; + put 'put ''IDE5Ljg5NSAxOSAyMSAxOSBMIDMyIDE5IEMgMzMuMTA1IDE5IDM0IDE5Ljg5NSAzNCAyMSBMIDM0IDI4IEMgMzQgMjkuMTA1IDMzLjEwNSAzMCAzMiAzMCBaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtYWxlcnRlZCIgZD0i''@;'; + put 'put ''TTE1LDE3SDRhMiwyLDAsMCwxLTItMlY4QTIsMiwwLDAsMSw0LDZIMTVhMiwyLDAsMCwxLDIsMnY3QTIsMiwwLDAsMSwxNSwxN1pNNCw4djdIMTVWOFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi1hbGVydGVkIiBkPSJNIDMy''@;'; + put 'put ''IDE3IEwgMjEgMTcgQyAyMC4wMTQgMTcgMTkuMTk1IDE2LjI4NyAxOS4wMyAxNS4zNDggQyAxOS4wNDEgMTUuMzQ5IDE5LjA1MyAxNS4zNSAxOS4wNjQgMTUuMzUxIEMgMTkuMTM0IDE1LjM1NyAxOS4yMDEgMTUuMzU5IDE5LjI3IDE1LjM1NyBMIDMzLjk2OCAxNS4zNTcgQyAzMy44IDE2LjI5''@;'; + put 'put ''MiAzMi45ODMgMTcgMzIgMTcgWiBNIDE5IDggQyAxOSA2Ljg5NSAxOS44OTUgNiAyMSA2IEwgMjEuMzcyIDYgTCAxOSAxMC4wNDggWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLWFsZXJ0ZWQiIGQ9Ik0xNSwzMEg0YTIsMiww''@;'; + put 'put ''LDAsMS0yLTJWMjFhMiwyLDAsMCwxLDItMkgxNWEyLDIsMCwwLDEsMiwydjdBMiwyLDAsMCwxLDE1LDMwWk00LDIxdjdIMTVWMjFaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtYWxlcnRlZCIgZD0iTTMyLDMwSDIxYTIsMiww''@;'; + put 'put ''LDAsMS0yLTJWMjFhMiwyLDAsMCwxLDItMkgzMmEyLDIsMCwwLDEsMiwydjdBMiwyLDAsMCwxLDMyLDMwWk0yMSwyMXY3SDMyVjIxWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0i''@;'; + put 'put ''TSAyNi44NTQgMS4xNDQgTCAyMS4xMzQgMTEuMDA0IEMgMjAuNTc5IDExLjgxOCAyMS4xMTQgMTIuOTI4IDIyLjA5NyAxMy4wMDEgQyAyMi4xNDIgMTMuMDA1IDIyLjE4OCAxMy4wMDYgMjIuMjM0IDEzLjAwNCBMIDMzLjY4NCAxMy4wMDQgQyAzNC42NjkgMTMuMDM2IDM1LjMxOSAxMS45OTEg''@;'; + put 'put ''MzQuODU1IDExLjEyMiBDIDM0LjgzNCAxMS4wODEgMzQuODEgMTEuMDQyIDM0Ljc4NCAxMS4wMDQgTCAyOS4wNjQgMS4xNDQgQyAyOC41NyAwLjI5OSAyNy4zNDggMC4yOTkgMjYuODU0IDEuMTQ0IFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlk''@;'; + put 'put ''LXBhdGgtMS0tYWxlcnRlZCIgZD0iTSAxNSAxNyBMIDQgMTcgQyAyLjg5NSAxNyAyIDE2LjEwNSAyIDE1IEwgMiA4IEMgMiA2Ljg5NSAyLjg5NSA2IDQgNiBMIDE1IDYgQyAxNi4xMDUgNiAxNyA2Ljg5NSAxNyA4IEwgMTcgMTUgQyAxNyAxNi4xMDUgMTYuMTA1IDE3IDE1IDE3IFoiLz5cbiAg''@;'; + put 'put ''PHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCIgZD0iTSAzMiAxNyBMIDIxIDE3IEMgMjAuMDE0IDE3IDE5LjE5NSAxNi4yODcgMTkuMDMgMTUuMzQ4IEMgMTkuMDQxIDE1LjM0OSAxOS4wNTMgMTUuMzUgMTkuMDY0IDE1LjM1MSBD''@;'; + put 'put ''IDE5LjEzNCAxNS4zNTcgMTkuMjAxIDE1LjM1OSAxOS4yNyAxNS4zNTcgTCAzMy45NjggMTUuMzU3IEMgMzMuOCAxNi4yOTIgMzIuOTgzIDE3IDMyIDE3IFogTSAxOSA4IEMgMTkgNi44OTUgMTkuODk1IDYgMjEgNiBMIDIxLjM3MiA2IEwgMTkgMTAuMDQ4IFoiLz5cbiAgPHBhdGggY2xhc3M9''@;'; + put 'put ''ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMy0tYWxlcnRlZCIgZD0iTSAxNSAzMCBMIDQgMzAgQyAyLjg5NSAzMCAyIDI5LjEwNSAyIDI4IEwgMiAyMSBDIDIgMTkuODk1IDIuODk1IDE5IDQgMTkgTCAxNSAxOSBDIDE2LjEwNSAxOSAxNyAxOS44OTUgMTcgMjEgTCAx''@;'; + put 'put ''NyAyOCBDIDE3IDI5LjEwNSAxNi4xMDUgMzAgMTUgMzAgWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC00LS1hbGVydGVkIiBkPSJNIDMyIDMwIEwgMjEgMzAgQyAxOS44OTUgMzAgMTkgMjkuMTA1IDE5IDI4IEwgMTkgMjEgQyAxOSAx''@;'; + put 'put ''OS44OTUgMTkuODk1IDE5IDIxIDE5IEwgMzIgMTkgQyAzMy4xMDUgMTkgMzQgMTkuODk1IDM0IDIxIEwgMzQgMjggQyAzNCAyOS4xMDUgMzMuMTA1IDMwIDMyIDMwIFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtNS0tYWxlcnRlZCBj''@;'; + put 'put ''bHItaS1hbGVydCIgZD0iTSAyNi44NTQgMS4xNDQgTCAyMS4xMzQgMTEuMDA0IEMgMjAuNTc5IDExLjgxOCAyMS4xMTQgMTIuOTI4IDIyLjA5NyAxMy4wMDEgQyAyMi4xNDIgMTMuMDA1IDIyLjE4OCAxMy4wMDYgMjIuMjM0IDEzLjAwNCBMIDMzLjY4NCAxMy4wMDQgQyAzNC42NjkgMTMuMDM2''@;'; + put 'put ''IDM1LjMxOSAxMS45OTEgMzQuODU1IDExLjEyMiBDIDM0LjgzNCAxMS4wODEgMzQuODEgMTEuMDQyIDM0Ljc4NCAxMS4wMDQgTCAyOS4wNjQgMS4xNDQgQyAyOC41NyAwLjI5OSAyNy4zNDggMC4yOTkgMjYuODU0IDEuMTQ0IFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJh''@;'; + put 'put ''ZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMTUsMTdINGEyLDIsMCwwLDEtMi0yVjhBMiwyLDAsMCwxLDQsNkgxNWEyLDIsMCwwLDEsMiwydjdBMiwyLDAsMCwxLDE1LDE3Wk00LDh2N0gxNVY4WiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2Vk''@;'; + put 'put ''IGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiIGQ9Ik0gMzIgMTcgTCAyMSAxNyBDIDE5Ljg5NSAxNyAxOSAxNi4xMDUgMTkgMTUgTCAxOSA4IEMgMTkgNi44OTUgMTkuODk1IDYgMjEgNiBMIDIyLjU5IDYgQyAyMi41OSA2LjAxOSAyMi41OSA2LjAzNyAyMi41OSA2LjA1NiBDIDIyLjU5''@;'; + put 'put ''IDYuNzI5IDIyLjY4IDcuMzgxIDIyLjg0OCA4IEwgMjEgOCBMIDIxIDE1IEwgMzIgMTUgTCAzMiAxMy4xNzUgQyAzMi43MTcgMTIuOTcyIDMzLjM4OSAxMi42NjQgMzQgMTIuMjY5IEwgMzQgMTUgQyAzNCAxNi4xMDUgMzMuMTA1IDE3IDMyIDE3IFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1p''@;'; + put 'put ''LW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIiBkPSJNMTUsMzBINGEyLDIsMCwwLDEtMi0yVjIxYTIsMiwwLDAsMSwyLTJIMTVhMiwyLDAsMCwxLDIsMnY3QTIsMiwwLDAsMSwxNSwzMFpNNCwyMXY3SDE1VjIxWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWkt''@;'; + put 'put ''b3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQiIGQ9Ik0zMiwzMEgyMWEyLDIsMCwwLDEtMi0yVjIxYTIsMiwwLDAsMSwyLTJIMzJhMiwyLDAsMCwxLDIsMnY3QTIsMiwwLDAsMSwzMiwzMFpNMjEsMjF2N0gzMlYyMVoiLz5cbiAgPGNpcmNsZSBjbGFzcz0iY2xy''@;'; + put 'put ''LWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC01LS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0gMTUgMTcgTCA0IDE3''@;'; + put 'put ''IEMgMi44OTUgMTcgMiAxNi4xMDUgMiAxNSBMIDIgOCBDIDIgNi44OTUgMi44OTUgNiA0IDYgTCAxNSA2IEMgMTYuMTA1IDYgMTcgNi44OTUgMTcgOCBMIDE3IDE1IEMgMTcgMTYuMTA1IDE2LjEwNSAxNyAxNSAxNyBaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNs''@;'; + put 'put ''ci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIiBkPSJNIDMyIDE3IEwgMjEgMTcgQyAxOS44OTUgMTcgMTkgMTYuMTA1IDE5IDE1IEwgMTkgOCBDIDE5IDYuODk1IDE5Ljg5NSA2IDIxIDYgTCAyMi41OSA2IEMgMjIuNTkgNi4wMTkgMjIuNTkgNi4wMzcgMjIuNTkgNi4wNTYgQyAyMi41OSAxMC4x''@;'; + put 'put ''NDEgMjUuOTAxIDEzLjQ1MiAyOS45ODYgMTMuNDUyIEMgMzEuNDY2IDEzLjQ1MiAzMi44NDQgMTMuMDE4IDM0IDEyLjI2OSBMIDM0IDE1IEMgMzQgMTYuMTA1IDMzLjEwNSAxNyAzMiAxNyBaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgt''@;'; + put 'put ''My0tYmFkZ2VkIiBkPSJNIDE1IDMwIEwgNCAzMCBDIDIuODk1IDMwIDIgMjkuMTA1IDIgMjggTCAyIDIxIEMgMiAxOS44OTUgMi44OTUgMTkgNCAxOSBMIDE1IDE5IEMgMTYuMTA1IDE5IDE3IDE5Ljg5NSAxNyAyMSBMIDE3IDI4IEMgMTcgMjkuMTA1IDE2LjEwNSAzMCAxNSAzMCBaIi8+XG4g''@;'; + put 'put ''IDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtNC0tYmFkZ2VkIiBkPSJNIDMyIDMwIEwgMjEgMzAgQyAxOS44OTUgMzAgMTkgMjkuMTA1IDE5IDI4IEwgMTkgMjEgQyAxOSAxOS44OTUgMTkuODk1IDE5IDIxIDE5IEwgMzIgMTkgQyAzMy4xMDUgMTkg''@;'; + put 'put ''MzQgMTkuODk1IDM0IDIxIEwgMzQgMjggQyAzNCAyOS4xMDUgMzMuMTA1IDMwIDMyIDMwIFoiLz5cbiAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTUtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPicpLGUuQ2xy''@;'; + put 'put ''U2hhcGVIZWF0TWFwPSgwLGEuY2xySWNvblNWRykoJ1xuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTSAzMiA1IEwgNCA1IEMgMi44OTUgNSAyIDUuODk1IDIgNyBMIDIgMjkgQyAyIDMwLjEwNSAyLjg5NSAzMSA0IDMxIEwgMzIgMzEgQyAz''@;'; + put 'put ''My4xMDUgMzEgMzQgMzAuMTA1IDM0IDI5IEwgMzQgNyBDIDM0IDUuODk1IDMzLjEwNSA1IDMyIDUgWiBNIDQgMjkgTCA0IDcgTCAzMiA3IEwgMzIgMjkgWiI+PC9wYXRoPlxuICA8cGF0aCBkPSJNIDggMTAgTCAyOCAxMCBMIDI4IDI2IEwgOCAyNiBaIE0gOS42IDI0IEwgMTQuMSAyNCBMIDE0''@;'; + put 'put ''LjEgMTguOCBMIDkuNiAxOC44IFogTSAxNC4xIDExLjYgTCA5LjYgMTEuNiBMIDkuNiAxNy4yIEwgMTQuMSAxNy4yIFogTSAyNiAyNCBMIDI2IDE4LjggTCAyMS45IDE4LjggTCAyMS45IDI0IFogTSAyNiAxMS42IEwgMjEuOSAxMS42IEwgMjEuOSAxNy4yIEwgMjYgMTcuMiBaIE0gMTUuNyAx''@;'; + put 'put ''MS42IEwgMTUuNyAxNy4yIEwgMjAuMyAxNy4yIEwgMjAuMyAxMS42IFogTSAxNS43IDI0IEwgMjAuMyAyNCBMIDIwLjMgMTguOCBMIDE1LjcgMTguOCBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiI+PC9wYXRoPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0''@;'; + put 'put ''bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0gMzIgMTMuMjIgTCAzMiAyOSBMIDQgMjkgTCA0IDcgTCAyMi41NyA3IEMgMjIuNTI0IDYuNjY4IDIyLjUwMSA2LjMzNCAyMi41IDYgQyAyMi41MDEgNS42NjUgMjIuNTI0IDUuMzMxIDIyLjU3IDUgTCA0IDUg''@;'; + put 'put ''QyAyLjg5NSA1IDIgNS44OTUgMiA3IEwgMiAyOSBDIDIgMzAuMTA0IDIuODk1IDMxIDQgMzEgTCAzMiAzMSBDIDMzLjEwNCAzMSAzNCAzMC4xMDQgMzQgMjkgTCAzNCAxMi4zNCBDIDMzLjM4IDEyLjczIDMyLjcwNiAxMy4wMjYgMzIgMTMuMjIgWiI+PC9wYXRoPlxuICA8cGF0aCBkPSJNIDgg''@;'; + put 'put ''MTAgTCAyMy43MjggMTAgQyAyNC4xMDUgMTAuNTk2IDI0LjU2NCAxMS4xMzUgMjUuMDkgMTEuNiBMIDIxLjkgMTEuNiBMIDIxLjkgMTcuMiBMIDI2IDE3LjIgTCAyNiAxMi4yODcgQyAyNi42MTEgMTIuNjc5IDI3LjI4NCAxMi45ODMgMjggMTMuMTgyIEwgMjggMjYgTCA4IDI2IFogTSA5LjYg''@;'; + put 'put ''MjQgTCAxNC4xIDI0IEwgMTQuMSAxOC44IEwgOS42IDE4LjggWiBNIDE0LjEgMTEuNiBMIDkuNiAxMS42IEwgOS42IDE3LjIgTCAxNC4xIDE3LjIgWiBNIDI2IDI0IEwgMjYgMTguOCBMIDIxLjkgMTguOCBMIDIxLjkgMjQgWiBNIDE1LjcgMTEuNiBMIDE1LjcgMTcuMiBMIDIwLjMgMTcuMiBM''@;'; + put 'put ''IDIwLjMgMTEuNiBaIE0gMTUuNyAyNCBMIDIwLjMgMjQgTCAyMC4zIDE4LjggTCAxNS43IDE4LjggWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIj48L3BhdGg+XG4gIDxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdl''@;'; + put 'put ''ZCBjbHItaS1vdXRsaW5lLXBhdGgtMjItLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSI+PC9jaXJjbGU+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiBkPSJNIDM0IDI5IEMgMzQgMzAu''@;'; + put 'put ''MTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NSAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3IEMgMiA1Ljg5NSAyLjg5NSA1IDQgNSBMIDIxLjk1OCA1IEwgMjAuNzg2IDcgTCA0IDcgTCA0IDI5IEwgMzIgMjkgTCAzMiAxNS4zNTcgTCAzNCAxNS4zNTcgWiI+PC9wYXRoPlxuICA8cGF0''@;'; + put 'put ''aCBkPSJNIDggMTAgTCAxOS4wMjggMTAgTCAxOC4wOTEgMTEuNiBMIDE1LjcgMTEuNiBMIDE1LjcgMTcuMiBMIDIwLjMgMTcuMiBMIDIwLjMgMTUuMzU3IEwgMjEuOSAxNS4zNTcgTCAyMS45IDE3LjIgTCAyNiAxNy4yIEwgMjYgMTUuMzU3IEwgMjggMTUuMzU3IEwgMjggMjYgTCA4IDI2IFog''@;'; + put 'put ''TSA5LjYgMjQgTCAxNC4xIDI0IEwgMTQuMSAxOC44IEwgOS42IDE4LjggWiBNIDE0LjEgMTEuNiBMIDkuNiAxMS42IEwgOS42IDE3LjIgTCAxNC4xIDE3LjIgWiBNIDI2IDI0IEwgMjYgMTguOCBMIDIxLjkgMTguOCBMIDIxLjkgMjQgWiBNIDE1LjcgMjQgTCAyMC4zIDI0IEwgMjAuMyAxOC44''@;'; + put 'put ''IEwgMTUuNyAxOC44IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIj48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yMi0tYWxlcnRlZCBjbHItaS1hbGVy''@;'; + put 'put ''dCIgZD0iTSAyNi44NTQgMS4xNDQgTCAyMS4xMzQgMTEuMDA0IEMgMjAuNTc5IDExLjgxOCAyMS4xMTQgMTIuOTI4IDIyLjA5NyAxMy4wMDEgQyAyMi4xNDIgMTMuMDA1IDIyLjE4OCAxMy4wMDYgMjIuMjM0IDEzLjAwNCBMIDMzLjY4NCAxMy4wMDQgQyAzNC42NjkgMTMuMDM2IDM1LjMxOSAx''@;'; + put 'put ''MS45OTEgMzQuODU1IDExLjEyMiBDIDM0LjgzNCAxMS4wODEgMzQuODEgMTEuMDQyIDM0Ljc4NCAxMS4wMDQgTCAyOS4wNjQgMS4xNDQgQyAyOC41NyAwLjI5OSAyNy4zNDggMC4yOTkgMjYuODU0IDEuMTQ0IFoiPjwvcGF0aD5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNv''@;'; + put 'put ''bGlkLXBhdGgtMSIgZD0iTSAzNCA3IEwgMzQgMjkgQyAzNCAzMC4xMDUgMzMuMTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIuODk2IDMxIDIgMzAuMTA1IDIgMjkgTCAyIDcgQyAyIDUuODk2IDIuODk2IDUgNCA1IEwgMzIgNSBDIDMzLjEwNSA1IDM0IDUuODk2IDM0IDcgWiBNIDggMjYgTCAyOCAy''@;'; + put 'put ''NiBMIDI4IDEwIEwgOCAxMCBaIE0gMTAgMTkgTCAxNCAxOSBMIDE0IDI0IEwgMTAgMjQgWiBNIDIyIDI0IEwgMjIgMTkgTCAyNiAxOSBMIDI2IDI0IFogTSAyMCAxOSBMIDIwIDI0IEwgMTYgMjQgTCAxNiAxOSBaIE0gMjYgMTcgTCAyMiAxNyBMIDIyIDEyIEwgMjYgMTIgWiBNIDIwIDEyIEwg''@;'; + put 'put ''MjAgMTcgTCAxNiAxNyBMIDE2IDEyIFogTSAxNCAxMiBMIDE0IDE3IEwgMTAgMTcgTCAxMCAxMiBaIj48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiBkPSJNIDM0IDEyLjM0IEwgMzQgMjkgQyAzNCAzMC4xMDUg''@;'; + put 'put ''MzMuMTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIuODk2IDMxIDIgMzAuMTA1IDIgMjkgTCAyIDcgQyAyIDUuODk2IDIuODk2IDUgNCA1IEwgMjIuNTcgNSBDIDIyLjMxMiA2LjgxNyAyMi43MzIgOC41NjYgMjMuNjMzIDEwIEwgOCAxMCBMIDggMjYgTCAyOCAyNiBMIDI4IDEzLjIzMiBDIDI4LjQy''@;'; + put 'put ''MSAxMy4zNDUgMjguODU5IDEzLjQyMiAyOS4zMSAxMy40NiBMIDMwLjMyIDEzLjQ4IEMgMzEuNjI2IDEzLjQyOSAzMi44OTUgMTMuMDM2IDM0IDEyLjM0IFogTSAxMCAxOSBMIDE0IDE5IEwgMTQgMjQgTCAxMCAyNCBaIE0gMjIgMjQgTCAyMiAxOSBMIDI2IDE5IEwgMjYgMjQgWiBNIDIwIDE5''@;'; + put 'put ''IEwgMjAgMjQgTCAxNiAyNCBMIDE2IDE5IFogTSAyNiAxNyBMIDIyIDE3IEwgMjIgMTIgTCAyNS41ODQgMTIgQyAyNS43MTkgMTIuMSAyNS44NTggMTIuMTk2IDI2IDEyLjI4NyBaIE0gMjAgMTIgTCAyMCAxNyBMIDE2IDE3IEwgMTYgMTIgWiBNIDE0IDEyIEwgMTQgMTcgTCAxMCAxNyBMIDEw''@;'; + put 'put ''IDEyIFoiPjwvcGF0aD5cbiAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTIyLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiPjwvY2lyY2xlPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xy''@;'; + put 'put ''LWktc29saWQtcGF0aC0xLS1hbGVydGVkIiBkPSJNIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NiAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3IEMgMiA1Ljg5NiAyLjg5NiA1IDQgNSBMIDIxLjk1OCA1IEwgMTkuMDI4IDEwIEwgOCAxMCBMIDggMjYgTCAy''@;'; + put 'put ''OCAyNiBMIDI4IDE1LjM1NyBMIDM0IDE1LjM1NyBaIE0gMTAgMTkgTCAxNCAxOSBMIDE0IDI0IEwgMTAgMjQgWiBNIDIyIDI0IEwgMjIgMTkgTCAyNiAxOSBMIDI2IDI0IFogTSAyMCAxOSBMIDIwIDI0IEwgMTYgMjQgTCAxNiAxOSBaIE0gMjYgMTcgTCAyMiAxNyBMIDIyIDE1LjM1NyBMIDI2''@;'; + put 'put ''IDE1LjM1NyBaIE0gMjAgMTcgTCAxNiAxNyBMIDE2IDEyIEwgMTcuODU2IDEyIEwgMTcuNjI1IDEyLjM5NSBDIDE2Ljc5NSAxMy42MDEgMTcuNTk0IDE1LjI0NSAxOS4wNjQgMTUuMzUxIEMgMTkuMTM0IDE1LjM1NyAxOS4yMDEgMTUuMzU5IDE5LjI3IDE1LjM1NyBMIDIwIDE1LjM1NyBaIE0g''@;'; + put 'put ''MTQgMTIgTCAxNCAxNyBMIDEwIDE3IEwgMTAgMTIgWiI+PC9wYXRoPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yMi0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTSAyNi44NTQgMS4xNDQgTCAyMS4xMzQgMTEuMDA0IEMgMjAuNTc5IDEx''@;'; + put 'put ''LjgxOCAyMS4xMTQgMTIuOTI4IDIyLjA5NyAxMy4wMDEgQyAyMi4xNDIgMTMuMDA1IDIyLjE4OCAxMy4wMDYgMjIuMjM0IDEzLjAwNCBMIDMzLjY4NCAxMy4wMDQgQyAzNC42NjkgMTMuMDM2IDM1LjMxOSAxMS45OTEgMzQuODU1IDExLjEyMiBDIDM0LjgzNCAxMS4wODEgMzQuODEgMTEuMDQy''@;'; + put 'put ''IDM0Ljc4NCAxMS4wMDQgTCAyOS4wNjQgMS4xNDQgQyAyOC41NyAwLjI5OSAyNy4zNDggMC4yOTkgMjYuODU0IDEuMTQ0IFoiPjwvcGF0aD4nKSxlLkNsclNoYXBlTGluZUNoYXJ0PSgwLGEuY2xySWNvblNWRykoJ1xuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5l''@;'; + put 'put ''LXBhdGgtMSIgZD0iTSAzMiA1IEwgNCA1IEMgMi44OTUgNSAyIDUuODk1IDIgNyBMIDIgMjkgQyAyIDMwLjEwNSAyLjg5NSAzMSA0IDMxIEwgMzIgMzEgQyAzMy4xMDUgMzEgMzQgMzAuMTA1IDM0IDI5IEwgMzQgNyBDIDM0IDUuODk1IDMzLjEwNSA1IDMyIDUgWiBNIDQgMjkgTCA0IDcgTCAz''@;'; + put 'put ''MiA3IEwgMzIgMjkgWiI+PC9wYXRoPlxuICA8cG9seWdvbiBwb2ludHM9IjE1LjYyIDE1LjIyMiA5LjYwMiAyMy45NjggNS41NSAyMC4zODQgNi42MSAxOS4xODYgOS4zMDggMjEuNTcyIDE1LjYzNCAxMi4zOCAyMi4zODQgMjIuMzk1IDI5LjEzOCAxMy40NyAzMC40MTQgMTQuNDM2IDIyLjMw''@;'; + put 'put ''OCAyNS4xNDUiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIj48L3BvbHlnb24+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0gMzIgNSBMIDQgNSBDIDIuODk2IDUgMiA1Ljg5NiAyIDcgTCAyIDI5IEMgMiAzMC4x''@;'; + put 'put ''MDUgMi44OTYgMzEgNCAzMSBMIDMyIDMxIEMgMzMuMTA1IDMxIDM0IDMwLjEwNSAzNCAyOSBMIDM0IDcgQyAzNCA1Ljg5NiAzMy4xMDUgNSAzMiA1IFogTSAyMi41NiAyNS45NCBMIDE1LjQ2IDE1LjM2IEwgOS4xMiAyNC42NCBMIDQuNjIgMjAuNjQgTCA2IDE5LjA1IEwgOC43IDIxLjQ0IEwg''@;'; + put 'put ''MTUuNDYgMTEuNTYgTCAyMi42NSAyMi4yNyBMIDI5LjY1IDEzIEwgMzEuMzUgMTQuMjggWiI+PC9wYXRoPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0gMzIgMTMuMjIgTCAzMiAyOSBMIDQgMjkgTCA0IDcg''@;'; + put 'put ''TCAyMi41NyA3IEMgMjIuNTI0IDYuNjY4IDIyLjUwMSA2LjMzNCAyMi41IDYgQyAyMi41MDEgNS42NjUgMjIuNTI0IDUuMzMxIDIyLjU3IDUgTCA0IDUgQyAyLjg5NSA1IDIgNS44OTUgMiA3IEwgMiAyOSBDIDIgMzAuMTA0IDIuODk1IDMxIDQgMzEgTCAzMiAzMSBDIDMzLjEwNCAzMSAzNCAz''@;'; + put 'put ''MC4xMDQgMzQgMjkgTCAzNCAxMi4zNCBDIDMzLjM4IDEyLjczIDMyLjcwNiAxMy4wMjYgMzIgMTMuMjIgWiI+PC9wYXRoPlxuICA8cG9seWdvbiBwb2ludHM9IjE1LjYyIDE1LjIyMiA5LjYwMiAyMy45NjggNS41NSAyMC4zODQgNi42MSAxOS4xODYgOS4zMDggMjEuNTcyIDE1LjYzNCAxMi4z''@;'; + put 'put ''OCAyMi4zODQgMjIuMzk1IDI5LjEzOCAxMy40NyAzMC40MTQgMTQuNDM2IDIyLjMwOCAyNS4xNDUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCI+PC9wb2x5Z29uPlxuICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRn''@;'; + put 'put ''ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSI+PC9jaXJjbGU+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiBkPSJNIDMwLjMyIDEzLjQ4IEwgMzEuMzgg''@;'; + put 'put ''MTQuMjggTCAyMi41NiAyNS45NCBMIDE1LjQ2IDE1LjM2IEwgOS4xMiAyNC42NCBMIDQuNjIgMjAuNjQgTCA2IDE5LjA1IEwgOC43IDIxLjQ0IEwgMTUuNDYgMTEuNTYgTCAyMi42NSAyMi4yNyBMIDI5LjMxIDEzLjQ2IEMgMjUuMDUgMTMuMSAyMS45NjkgOS4yMzMgMjIuNTcgNSBMIDQgNSBD''@;'; + put 'put ''IDIuODk2IDUgMiA1Ljg5NiAyIDcgTCAyIDI5IEMgMiAzMC4xMDUgMi44OTYgMzEgNCAzMSBMIDMyIDMxIEMgMzMuMTA1IDMxIDM0IDMwLjEwNSAzNCAyOSBMIDM0IDEyLjM0IEMgMzIuODk1IDEzLjAzNiAzMS42MjYgMTMuNDI5IDMwLjMyIDEzLjQ4IFoiPjwvcGF0aD5cbiAgPGNpcmNsZSBj''@;'; + put 'put ''bGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSI+PC9jaXJjbGU+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVk''@;'; + put 'put ''IiBkPSJNIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NSAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3IEMgMiA1Ljg5NSAyLjg5NSA1IDQgNSBMIDIxLjk1OCA1IEwgMjAuNzg2IDcgTCA0IDcgTCA0IDI5IEwgMzIgMjkgTCAzMiAxNS4zNTcgTCAzNCAxNS4z''@;'; + put 'put ''NTcgWiI+PC9wYXRoPlxuICA8cGF0aCBkPSJNIDE1LjYyIDE1LjIyMiBMIDkuNjAyIDIzLjk2OCBMIDUuNTUgMjAuMzg0IEwgNi42MSAxOS4xODYgTCA5LjMwOCAyMS41NzIgTCAxNS42MzQgMTIuMzggTCAyMi4zODQgMjIuMzk1IEwgMjcuNzE3IDE1LjM0OCBMIDI5LjcyNCAxNS4zNDggTCAy''@;'; + put 'put ''Mi4zMDggMjUuMTQ1IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIj48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIGNsci1pLWFsZXJ0''@;'; + put 'put ''IiBkPSJNIDI2Ljg1NCAxLjE0NCBMIDIxLjEzNCAxMS4wMDQgQyAyMC41NzkgMTEuODE4IDIxLjExNCAxMi45MjggMjIuMDk3IDEzLjAwMSBDIDIyLjE0MiAxMy4wMDUgMjIuMTg4IDEzLjAwNiAyMi4yMzQgMTMuMDA0IEwgMzMuNjg0IDEzLjAwNCBDIDM0LjY2OSAxMy4wMzYgMzUuMzE5IDEx''@;'; + put 'put ''Ljk5MSAzNC44NTUgMTEuMTIyIEMgMzQuODM0IDExLjA4MSAzNC44MSAxMS4wNDIgMzQuNzg0IDExLjAwNCBMIDI5LjA2NCAxLjE0NCBDIDI4LjU3IDAuMjk5IDI3LjM0OCAwLjI5OSAyNi44NTQgMS4xNDQgWiI+PC9wYXRoPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQg''@;'; + put 'put ''Y2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiBkPSJNIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NiAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3IEMgMiA1Ljg5NiAyLjg5NiA1IDQgNSBMIDIxLjk1OCA1IEwgMTcuNjI1IDEyLjM5NSBDIDE2Ljc5NSAx''@;'; + put 'put ''My42MDEgMTcuNTk0IDE1LjI0NSAxOS4wNjQgMTUuMzUxIEMgMTkuMTM0IDE1LjM1NyAxOS4yMDEgMTUuMzU5IDE5LjI3IDE1LjM1NyBMIDI3LjQ1MiAxNS4zNTcgTCAyMi4zOCAyMi4wNiBMIDE1LjYzIDEyIEwgOS4yOCAyMS4yOCBMIDYuNzUgMTkuMDQgTCA1LjQyIDIwLjUzIEwgOS42NSAy''@;'; + put 'put ''NC4yOCBMIDE1LjYxIDE1LjU2IEwgMjIuMjggMjUuNSBMIDI5Ljk1OSAxNS4zNTcgTCAzNCAxNS4zNTcgWiI+PC9wYXRoPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNIDI2Ljg1NCAxLjE0''@;'; + put 'put ''NCBMIDIxLjEzNCAxMS4wMDQgQyAyMC41NzkgMTEuODE4IDIxLjExNCAxMi45MjggMjIuMDk3IDEzLjAwMSBDIDIyLjE0MiAxMy4wMDUgMjIuMTg4IDEzLjAwNiAyMi4yMzQgMTMuMDA0IEwgMzMuNjg0IDEzLjAwNCBDIDM0LjY2OSAxMy4wMzYgMzUuMzE5IDExLjk5MSAzNC44NTUgMTEuMTIy''@;'; + put 'put ''IEMgMzQuODM0IDExLjA4MSAzNC44MSAxMS4wNDIgMzQuNzg0IDExLjAwNCBMIDI5LjA2NCAxLjE0NCBDIDI4LjU3IDAuMjk5IDI3LjM0OCAwLjI5OSAyNi44NTQgMS4xNDQgWiI+PC9wYXRoPicpLGUuQ2xyU2hhcGVQaWVDaGFydD0oMCxhLmNsckljb25TVkcpKCdcbiAgPHBhdGggY2xhc3M9''@;'; + put 'put ''ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0gMzIgNSBMIDQgNSBDIDIuODk1IDUgMiA1Ljg5NSAyIDcgTCAyIDI5IEMgMiAzMC4xMDUgMi44OTUgMzEgNCAzMSBMIDMyIDMxIEMgMzMuMTA1IDMxIDM0IDMwLjEwNSAzNCAyOSBMIDM0IDcgQyAzNCA1Ljg5NSAzMy4x''@;'; + put 'put ''MDUgNSAzMiA1IFogTSA0IDI5IEwgNCA3IEwgMzIgNyBMIDMyIDI5IFoiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSAxNyAyNyBDIDEyLjU4MiAyNyA5IDIzLjQxOCA5IDE5IEMgOSAxNC41ODIgMTIuNTgyIDExIDE3IDExIEwgMTcgMTkgTCAyNSAxOSBDIDI1IDIzLjQxOCAyMS40MTggMjcgMTcg''@;'; + put 'put ''MjcgWiBNIDIzLjI0NyAyMC40IEwgMTUuNCAyMC40IEwgMTUuNCAxMi44MDIgQyAxMi42NCAxMy41MTMgMTAuNjAxIDE2LjAxOCAxMC42IDE5IEMgMTAuNiAyMi41MzUgMTMuNDY1IDI1LjQgMTcgMjUuNCBDIDIwLjA1NCAyNS40MDEgMjIuNjA4IDIzLjI2MSAyMy4yNDcgMjAuNCBaIiBjbGFz''@;'; + put 'put ''cz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiI+PC9wYXRoPlxuICA8cGF0aCBkPSJNIDE5IDkgQyAyMy40MTggOSAyNyAxMi41ODIgMjcgMTcgTCAxOSAxNyBaIE0gMjUuMTk4IDE1LjQgQyAyNC42MiAxMy4xNSAyMi44NDkgMTEuMzggMjAuNiAxMC44MDEgTCAyMC42IDE1''@;'; + put 'put ''LjQgWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiPjwvcGF0aD5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTSAzNCA3IEwgMzQgMjkgQyAzNCAzMC4xMDUgMzMuMTA1IDMxIDMyIDMxIEMgMzIgMzEgMiAzMC4x''@;'; + put 'put ''MDUgMiAyOSBMIDIgNyBDIDIgNS44OTYgMi44OTYgNSA0IDUgTCAzMiA1IEMgMzMuMTA1IDUgMzQgNS44OTYgMzQgNyBaIE0gMjUgMTkgTCAxNyAxOSBMIDE3IDExIEMgMTIuNTgyIDExIDkgMTQuNTgyIDkgMTkgQyA5IDIzLjQxOCAxMi41ODIgMjcgMTcgMjcgQyAyMS40MTggMjcgMjUgMjMu''@;'; + put 'put ''NDE4IDI1IDE5IFogTSAxOSAxNyBMIDI3IDE3IEMgMjcgMTIuNTgyIDIzLjQxOCA5IDE5IDkgWiI+PC9wYXRoPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0gMzIgMTMuMjIgTCAzMiAyOSBMIDQgMjkgTCA0''@;'; + put 'put ''IDcgTCAyMi41NyA3IEMgMjIuNTI0IDYuNjY4IDIyLjUwMSA2LjMzNCAyMi41IDYgQyAyMi41MDEgNS42NjUgMjIuNTI0IDUuMzMxIDIyLjU3IDUgTCA0IDUgQyAyLjg5NSA1IDIgNS44OTUgMiA3IEwgMiAyOSBDIDIgMzAuMTA0IDIuODk1IDMxIDQgMzEgTCAzMiAzMSBDIDMzLjEwNCAzMSAz''@;'; + put 'put ''NCAzMC4xMDQgMzQgMjkgTCAzNCAxMi4zNCBDIDMzLjM4IDEyLjczIDMyLjcwNiAxMy4wMjYgMzIgMTMuMjIgWiI+PC9wYXRoPlxuICA8cGF0aCBkPSJNIDE3IDI3IEMgMTIuNTgyIDI3IDkgMjMuNDE4IDkgMTkgQyA5IDE0LjU4MiAxMi41ODIgMTEgMTcgMTEgTCAxNyAxOSBMIDI1IDE5IEMg''@;'; + put 'put ''MjUgMjMuNDE4IDIxLjQxOCAyNyAxNyAyNyBaIE0gMjMuMjQ3IDIwLjQgTCAxNS40IDIwLjQgTCAxNS40IDEyLjgwMiBDIDEyLjY0IDEzLjUxMyAxMC42MDEgMTYuMDE4IDEwLjYgMTkgQyAxMC42IDIyLjUzNSAxMy40NjUgMjUuNCAxNyAyNS40IEMgMjAuMDU0IDI1LjQwMSAyMi42MDggMjMu''@;'; + put 'put ''MjYxIDIzLjI0NyAyMC40IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCI+PC9wYXRoPlxuICA8cGF0aCBkPSJNIDE5IDkgQyAyMy40MTggOSAyNyAxMi41ODIgMjcgMTcgTCAxOSAxNyBaIE0gMjUuMTk4IDE1LjQgQyAyNC42MiAx''@;'; + put 'put ''My4xNSAyMi44NDkgMTEuMzggMjAuNiAxMC44MDEgTCAyMC42IDE1LjQgWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIj48L3BhdGg+XG4gIDxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5l''@;'; + put 'put ''LXBhdGgtNC0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ij48L2NpcmNsZT5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0gMzQgMTIuMzQgTCAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUg''@;'; + put 'put ''MzEgMzIgMzEgTCA0IDMxIEMgMi44OTYgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBDIDIgNS44OTYgMi44OTYgNSA0IDUgTCAyMi41NyA1IEMgMjEuOTY5IDkuMjMzIDI1LjA1IDEzLjEgMjkuMzEgMTMuNDYgTCAzMC4zMiAxMy40OCBDIDMxLjYyNiAxMy40MjkgMzIuODk1IDEzLjAzNiAzNCAx''@;'; + put 'put ''Mi4zNCBaIE0gMjUgMTkgTCAxNyAxOSBMIDE3IDExIEMgMTIuNTgyIDExIDkgMTQuNTgyIDkgMTkgQyA5IDIzLjQxOCAxMi41ODIgMjcgMTcgMjcgQyAyMS40MTggMjcgMjUgMjMuNDE4IDI1IDE5IFogTSAxOSAxNyBMIDI3IDE3IEMgMjcgMTIuNTgyIDIzLjQxOCA5IDE5IDkgWiI+PC9wYXRo''@;'; + put 'put ''PlxuICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ij48L2NpcmNsZT5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1w''@;'; + put 'put ''YXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0gMzQgMjkgQyAzNCAzMC4xMDUgMzMuMTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIuODk1IDMxIDIgMzAuMTA1IDIgMjkgTCAyIDcgQyAyIDUuODk1IDIuODk1IDUgNCA1IEwgMjEuOTU4IDUgTCAyMC43ODYgNyBMIDQgNyBMIDQgMjkgTCAzMiAyOSBMIDMyIDE1''@;'; + put 'put ''LjM1NyBMIDM0IDE1LjM1NyBaIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gMTcgMjcgQyAxMi41ODIgMjcgOSAyMy40MTggOSAxOSBDIDkgMTQuNTgyIDEyLjU4MiAxMSAxNyAxMSBMIDE3IDE5IEwgMjUgMTkgQyAyNSAyMy40MTggMjEuNDE4IDI3IDE3IDI3IFogTSAyMy4yNDcgMjAuNCBMIDE1''@;'; + put 'put ''LjQgMjAuNCBMIDE1LjQgMTIuODAyIEMgMTIuNjQgMTMuNTEzIDEwLjYwMSAxNi4wMTggMTAuNiAxOSBDIDEwLjYgMjIuNTM1IDEzLjQ2NSAyNS40IDE3IDI1LjQgQyAyMC4wNTQgMjUuNDAxIDIyLjYwOCAyMy4yNjEgMjMuMjQ3IDIwLjQgWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0''@;'; + put 'put ''ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSAyNyAxNyBMIDE5IDE3IEwgMTkgMTUuMzQ1IEMgMTkuMDIxIDE1LjM0OCAxOS4wNDMgMTUuMzQ5IDE5LjA2NCAxNS4zNTEgQyAxOS4xMzQgMTUuMzU3IDE5LjIwMSAxNS4zNTkgMTkuMjcgMTUu''@;'; + put 'put ''MzU3IEwgMjYuODMxIDE1LjM1NyBDIDI2Ljk0MiAxNS44ODcgMjcgMTYuNDM3IDI3IDE3IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIj48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNs''@;'; + put 'put ''ci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNIDI2Ljg1NCAxLjE0NCBMIDIxLjEzNCAxMS4wMDQgQyAyMC41NzkgMTEuODE4IDIxLjExNCAxMi45MjggMjIuMDk3IDEzLjAwMSBDIDIyLjE0MiAxMy4wMDUgMjIuMTg4IDEzLjAwNiAyMi4yMzQgMTMuMDA0IEwg''@;'; + put 'put ''MzMuNjg0IDEzLjAwNCBDIDM0LjY2OSAxMy4wMzYgMzUuMzE5IDExLjk5MSAzNC44NTUgMTEuMTIyIEMgMzQuODM0IDExLjA4MSAzNC44MSAxMS4wNDIgMzQuNzg0IDExLjAwNCBMIDI5LjA2NCAxLjE0NCBDIDI4LjU3IDAuMjk5IDI3LjM0OCAwLjI5OSAyNi44NTQgMS4xNDQgWiI+PC9wYXRo''@;'; + put 'put ''PlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiBkPSJNIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NiAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3IEMgMiA1Ljg5NiAyLjg5NiA1IDQg''@;'; + put 'put ''NSBMIDIxLjk1OCA1IEwgMTcuNjI1IDEyLjM5NSBDIDE2LjgwNyAxMy41ODMgMTcuNTcxIDE1LjE5NyAxOSAxNS4zNDUgTCAxOSAxNyBMIDI3IDE3IEMgMjcgMTYuNDM3IDI2Ljk0MiAxNS44ODcgMjYuODMxIDE1LjM1NyBMIDM0IDE1LjM1NyBaIE0gMjUgMTkgTCAxNyAxOSBMIDE3IDExIEMg''@;'; + put 'put ''MTIuNTgyIDExIDkgMTQuNTgyIDkgMTkgQyA5IDIzLjQxOCAxMi41ODIgMjcgMTcgMjcgQyAyMS40MTggMjcgMjUgMjMuNDE4IDI1IDE5IFoiPjwvcGF0aD5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVy''@;'; + put 'put ''dCIgZD0iTSAyNi44NTQgMS4xNDQgTCAyMS4xMzQgMTEuMDA0IEMgMjAuNTc5IDExLjgxOCAyMS4xMTQgMTIuOTI4IDIyLjA5NyAxMy4wMDEgQyAyMi4xNDIgMTMuMDA1IDIyLjE4OCAxMy4wMDYgMjIuMjM0IDEzLjAwNCBMIDMzLjY4NCAxMy4wMDQgQyAzNC42NjkgMTMuMDM2IDM1LjMxOSAx''@;'; + put 'put ''MS45OTEgMzQuODU1IDExLjEyMiBDIDM0LjgzNCAxMS4wODEgMzQuODEgMTEuMDQyIDM0Ljc4NCAxMS4wMDQgTCAyOS4wNjQgMS4xNDQgQyAyOC41NyAwLjI5OSAyNy4zNDggMC4yOTkgMjYuODU0IDEuMTQ0IFoiPjwvcGF0aD4nKSxlLkNsclNoYXBlU2NhdHRlclBsb3Q9KDAsYS5jbHJJY29u''@;'; + put 'put ''U1ZHKSgnXG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNIDMyIDUgTCA0IDUgQyAyLjg5NSA1IDIgNS44OTUgMiA3IEwgMiAyOSBDIDIgMzAuMTA1IDIuODk1IDMxIDQgMzEgTCAzMiAzMSBDIDMzLjEwNSAzMSAzNCAzMC4xMDUgMzQgMjkg''@;'; + put 'put ''TCAzNCA3IEMgMzQgNS44OTUgMzMuMTA1IDUgMzIgNSBaIE0gNCAyOSBMIDQgNyBMIDMyIDcgTCAzMiAyOSBaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNIDkuMTAxIDE1LjggQyA5LjQxMyAxNi4xMTEgOS45MTkgMTYuMTExIDEw''@;'; + put 'put ''LjIzMSAxNS44IEwgMTEuMzkxIDE0LjY0IEwgMTIuNTUxIDE1LjggQyAxMi45NjQgMTYuMjU2IDEzLjcxNyAxNi4wOTQgMTMuOTA1IDE1LjUwNyBDIDE0LjAwMiAxNS4yMDggMTMuOTE0IDE0Ljg4MSAxMy42ODEgMTQuNjcgTCAxMi41MzEgMTMuNTQgTCAxMy42OTEgMTIuMzggQyAxNC4xNDcg''@;'; + put 'put ''MTEuOTY2IDEzLjk4NSAxMS4yMTQgMTMuMzk5IDExLjAyNSBDIDEzLjEgMTAuOTI5IDEyLjc3MiAxMS4wMTcgMTIuNTYxIDExLjI1IEwgMTEuNDAxIDEyLjQxIEwgMTAuMjMxIDExLjIyIEMgOS44MTcgMTAuNzYzIDkuMDY1IDEwLjkyNiA4Ljg3NyAxMS41MTIgQyA4Ljc4IDExLjgxMSA4Ljg2''@;'; + put 'put ''OCAxMi4xMzkgOS4xMDEgMTIuMzUgTCAxMC4yNjEgMTMuNTQgTCA5LjEwMSAxNC42NyBDIDguNzg5IDE0Ljk4MiA4Ljc4OSAxNS40ODcgOS4xMDEgMTUuOCBaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJNIDE1LjE3NiAyNS41MzYg''@;'; + put 'put ''QyAxNS40ODggMjUuODQ3IDE1Ljk5NCAyNS44NDcgMTYuMzA2IDI1LjUzNiBMIDE3LjQ2NiAyNC4zNzYgTCAxOC42MjYgMjUuNTM2IEMgMTkuMDM5IDI1Ljk5MiAxOS43OTIgMjUuODMgMTkuOTggMjUuMjQzIEMgMjAuMDc3IDI0Ljk0NCAxOS45ODkgMjQuNjE3IDE5Ljc1NiAyNC40MDYgTCAx''@;'; + put 'put ''OC42MDYgMjMuMjc2IEwgMTkuNzY2IDIyLjExNiBDIDIwLjIyMiAyMS43MDIgMjAuMDYgMjAuOTUgMTkuNDc0IDIwLjc2MSBDIDE5LjE3NSAyMC42NjUgMTguODQ3IDIwLjc1MyAxOC42MzYgMjAuOTg2IEwgMTcuNDc2IDIyLjE0NiBMIDE2LjMwNiAyMC45NTYgQyAxNS44OTIgMjAuNDk5IDE1''@;'; + put 'put ''LjE0IDIwLjY2MiAxNC45NTIgMjEuMjQ4IEMgMTQuODU1IDIxLjU0NyAxNC45NDMgMjEuODc1IDE1LjE3NiAyMi4wODYgTCAxNi4zMzYgMjMuMjc2IEwgMTUuMTc2IDI0LjQwNiBDIDE0Ljg2NCAyNC43MTggMTQuODY0IDI1LjIyMyAxNS4xNzYgMjUuNTM2IFoiLz5cbiAgPHBhdGggY2xhc3M9''@;'; + put 'put ''ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIGQ9Ik0gMjIuOTEyIDIwLjM0MyBDIDIzLjIyNCAyMC42NTQgMjMuNzMgMjAuNjU0IDI0LjA0MiAyMC4zNDMgTCAyNS4yMDIgMTkuMTgzIEwgMjYuMzYyIDIwLjM0MyBDIDI2Ljc3NSAyMC43OTkgMjcuNTI4IDIwLjYzNyAyNy43''@;'; + put 'put ''MTYgMjAuMDUgQyAyNy44MTMgMTkuNzUxIDI3LjcyNSAxOS40MjQgMjcuNDkyIDE5LjIxMyBMIDI2LjM0MiAxOC4wODMgTCAyNy41MDIgMTYuOTIzIEMgMjcuOTU4IDE2LjUwOSAyNy43OTYgMTUuNzU3IDI3LjIxIDE1LjU2OCBDIDI2LjkxMSAxNS40NzIgMjYuNTgzIDE1LjU2IDI2LjM3MiAx''@;'; + put 'put ''NS43OTMgTCAyNS4yMTIgMTYuOTUzIEwgMjQuMDQyIDE1Ljc2MyBDIDIzLjYyOCAxNS4zMDYgMjIuODc2IDE1LjQ2OSAyMi42ODggMTYuMDU1IEMgMjIuNTkxIDE2LjM1NCAyMi42NzkgMTYuNjgyIDIyLjkxMiAxNi44OTMgTCAyNC4wNzIgMTguMDgzIEwgMjIuOTEyIDE5LjIxMyBDIDIyLjYg''@;'; + put 'put ''MTkuNTI1IDIyLjYgMjAuMDMgMjIuOTEyIDIwLjM0MyBaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0gMzQgNyBMIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NiAzMSAyIDMwLjEwNSAyIDI5IEwg''@;'; + put 'put ''MiA3IEMgMiA1Ljg5NiAyLjg5NiA1IDQgNSBMIDMyIDUgQyAzMy4xMDUgNSAzNCA1Ljg5NiAzNCA3IFogTSA5LjEwMSAxNS44IEMgOS40MTMgMTYuMTExIDkuOTE5IDE2LjExMSAxMC4yMzEgMTUuOCBMIDExLjM5MSAxNC42NCBMIDEyLjU1MSAxNS44IEMgMTIuOTY0IDE2LjI1NiAxMy43MTcg''@;'; + put 'put ''MTYuMDk0IDEzLjkwNSAxNS41MDcgQyAxNC4wMDIgMTUuMjA4IDEzLjkxNCAxNC44ODEgMTMuNjgxIDE0LjY3IEwgMTIuNTMxIDEzLjU0IEwgMTMuNjkxIDEyLjM4IEMgMTQuMTQ3IDExLjk2NiAxMy45ODUgMTEuMjE0IDEzLjM5OSAxMS4wMjUgQyAxMy4xIDEwLjkyOSAxMi43NzIgMTEuMDE3''@;'; + put 'put ''IDEyLjU2MSAxMS4yNSBMIDExLjQwMSAxMi40MSBMIDEwLjIzMSAxMS4yMiBDIDkuODE3IDEwLjc2MyA5LjA2NSAxMC45MjYgOC44NzcgMTEuNTEyIEMgOC43OCAxMS44MTEgOC44NjggMTIuMTM5IDkuMTAxIDEyLjM1IEwgMTAuMjYxIDEzLjU0IEwgOS4xMDEgMTQuNjcgQyA4Ljc4OSAxNC45''@;'; + put 'put ''ODIgOC43ODkgMTUuNDg3IDkuMTAxIDE1LjggWiBNIDE1LjE3NiAyNS41MzYgQyAxNS40ODggMjUuODQ3IDE1Ljk5NCAyNS44NDcgMTYuMzA2IDI1LjUzNiBMIDE3LjQ2NiAyNC4zNzYgTCAxOC42MjYgMjUuNTM2IEMgMTkuMDM5IDI1Ljk5MiAxOS43OTIgMjUuODMgMTkuOTggMjUuMjQzIEMg''@;'; + put 'put ''MjAuMDc3IDI0Ljk0NCAxOS45ODkgMjQuNjE3IDE5Ljc1NiAyNC40MDYgTCAxOC42MDYgMjMuMjc2IEwgMTkuNzY2IDIyLjExNiBDIDIwLjIyMiAyMS43MDIgMjAuMDYgMjAuOTUgMTkuNDc0IDIwLjc2MSBDIDE5LjE3NSAyMC42NjUgMTguODQ3IDIwLjc1MyAxOC42MzYgMjAuOTg2IEwgMTcu''@;'; + put 'put ''NDc2IDIyLjE0NiBMIDE2LjMwNiAyMC45NTYgQyAxNS44OTIgMjAuNDk5IDE1LjE0IDIwLjY2MiAxNC45NTIgMjEuMjQ4IEMgMTQuODU1IDIxLjU0NyAxNC45NDMgMjEuODc1IDE1LjE3NiAyMi4wODYgTCAxNi4zMzYgMjMuMjc2IEwgMTUuMTc2IDI0LjQwNiBDIDE0Ljg2NCAyNC43MTggMTQu''@;'; + put 'put ''ODY0IDI1LjIyMyAxNS4xNzYgMjUuNTM2IFogTSAyMi45MTIgMjAuMzQzIEMgMjMuMjI0IDIwLjY1NCAyMy43MyAyMC42NTQgMjQuMDQyIDIwLjM0MyBMIDI1LjIwMiAxOS4xODMgTCAyNi4zNjIgMjAuMzQzIEMgMjYuNzc1IDIwLjc5OSAyNy41MjggMjAuNjM3IDI3LjcxNiAyMC4wNSBDIDI3''@;'; + put 'put ''LjgxMyAxOS43NTEgMjcuNzI1IDE5LjQyNCAyNy40OTIgMTkuMjEzIEwgMjYuMzQyIDE4LjA4MyBMIDI3LjUwMiAxNi45MjMgQyAyNy45NTggMTYuNTA5IDI3Ljc5NiAxNS43NTcgMjcuMjEgMTUuNTY4IEMgMjYuOTExIDE1LjQ3MiAyNi41ODMgMTUuNTYgMjYuMzcyIDE1Ljc5MyBMIDI1LjIx''@;'; + put 'put ''MiAxNi45NTMgTCAyNC4wNDIgMTUuNzYzIEMgMjMuNjI4IDE1LjMwNiAyMi44NzYgMTUuNDY5IDIyLjY4OCAxNi4wNTUgQyAyMi41OTEgMTYuMzU0IDIyLjY3OSAxNi42ODIgMjIuOTEyIDE2Ljg5MyBMIDI0LjA3MiAxOC4wODMgTCAyMi45MTIgMTkuMjEzIEMgMjIuNiAxOS41MjUgMjIuNiAy''@;'; + put 'put ''MC4wMyAyMi45MTIgMjAuMzQzIFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiBkPSJNIDMyIDEzLjIyIEwgMzIgMjkgTCA0IDI5IEwgNCA3IEwgMjIuNTcgNyBDIDIyLjUyNCA2LjY2OCAyMi41MDEgNi4zMzQg''@;'; + put 'put ''MjIuNSA2IEMgMjIuNTAxIDUuNjY1IDIyLjUyNCA1LjMzMSAyMi41NyA1IEwgNCA1IEMgMi44OTUgNSAyIDUuODk1IDIgNyBMIDIgMjkgQyAyIDMwLjEwNCAyLjg5NSAzMSA0IDMxIEwgMzIgMzEgQyAzMy4xMDQgMzEgMzQgMzAuMTA0IDM0IDI5IEwgMzQgMTIuMzQgQyAzMy4zOCAxMi43MyAz''@;'; + put 'put ''Mi43MDYgMTMuMDI2IDMyIDEzLjIyIFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIiBkPSJNIDkuMTAxIDE1LjggQyA5LjQxMyAxNi4xMTEgOS45MTkgMTYuMTExIDEwLjIzMSAxNS44IEwgMTEuMzkxIDE0LjY0''@;'; + put 'put ''IEwgMTIuNTUxIDE1LjggQyAxMi45NjQgMTYuMjU2IDEzLjcxNyAxNi4wOTQgMTMuOTA1IDE1LjUwNyBDIDE0LjAwMiAxNS4yMDggMTMuOTE0IDE0Ljg4MSAxMy42ODEgMTQuNjcgTCAxMi41MzEgMTMuNTQgTCAxMy42OTEgMTIuMzggQyAxNC4xNDcgMTEuOTY2IDEzLjk4NSAxMS4yMTQgMTMu''@;'; + put 'put ''Mzk5IDExLjAyNSBDIDEzLjEgMTAuOTI5IDEyLjc3MiAxMS4wMTcgMTIuNTYxIDExLjI1IEwgMTEuNDAxIDEyLjQxIEwgMTAuMjMxIDExLjIyIEMgOS44MTcgMTAuNzYzIDkuMDY1IDEwLjkyNiA4Ljg3NyAxMS41MTIgQyA4Ljc4IDExLjgxMSA4Ljg2OCAxMi4xMzkgOS4xMDEgMTIuMzUgTCAx''@;'; + put 'put ''MC4yNjEgMTMuNTQgTCA5LjEwMSAxNC42NyBDIDguNzg5IDE0Ljk4MiA4Ljc4OSAxNS40ODcgOS4xMDEgMTUuOCBaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIgZD0iTSAxNS4xNzYgMjUuNTM2IEMgMTUuNDg4''@;'; + put 'put ''IDI1Ljg0NyAxNS45OTQgMjUuODQ3IDE2LjMwNiAyNS41MzYgTCAxNy40NjYgMjQuMzc2IEwgMTguNjI2IDI1LjUzNiBDIDE5LjAzOSAyNS45OTIgMTkuNzkyIDI1LjgzIDE5Ljk4IDI1LjI0MyBDIDIwLjA3NyAyNC45NDQgMTkuOTg5IDI0LjYxNyAxOS43NTYgMjQuNDA2IEwgMTguNjA2IDIz''@;'; + put 'put ''LjI3NiBMIDE5Ljc2NiAyMi4xMTYgQyAyMC4yMjIgMjEuNzAyIDIwLjA2IDIwLjk1IDE5LjQ3NCAyMC43NjEgQyAxOS4xNzUgMjAuNjY1IDE4Ljg0NyAyMC43NTMgMTguNjM2IDIwLjk4NiBMIDE3LjQ3NiAyMi4xNDYgTCAxNi4zMDYgMjAuOTU2IEMgMTUuODkyIDIwLjQ5OSAxNS4xNCAyMC42''@;'; + put 'put ''NjIgMTQuOTUyIDIxLjI0OCBDIDE0Ljg1NSAyMS41NDcgMTQuOTQzIDIxLjg3NSAxNS4xNzYgMjIuMDg2IEwgMTYuMzM2IDIzLjI3NiBMIDE1LjE3NiAyNC40MDYgQyAxNC44NjQgMjQuNzE4IDE0Ljg2NCAyNS4yMjMgMTUuMTc2IDI1LjUzNiBaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1v''@;'; + put 'put ''dXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCIgZD0iTSAyMi45MTIgMjAuMzQzIEMgMjMuMjI0IDIwLjY1NCAyMy43MyAyMC42NTQgMjQuMDQyIDIwLjM0MyBMIDI1LjIwMiAxOS4xODMgTCAyNi4zNjIgMjAuMzQzIEMgMjYuNzc1IDIwLjc5OSAyNy41MjggMjAu''@;'; + put 'put ''NjM3IDI3LjcxNiAyMC4wNSBDIDI3LjgxMyAxOS43NTEgMjcuNzI1IDE5LjQyNCAyNy40OTIgMTkuMjEzIEwgMjYuMzQyIDE4LjA4MyBMIDI3LjUwMiAxNi45MjMgQyAyNy45NTggMTYuNTA5IDI3Ljc5NiAxNS43NTcgMjcuMjEgMTUuNTY4IEMgMjYuOTExIDE1LjQ3MiAyNi41ODMgMTUuNTYg''@;'; + put 'put ''MjYuMzcyIDE1Ljc5MyBMIDI1LjIxMiAxNi45NTMgTCAyNC4wNDIgMTUuNzYzIEMgMjMuNjI4IDE1LjMwNiAyMi44NzYgMTUuNDY5IDIyLjY4OCAxNi4wNTUgQyAyMi41OTEgMTYuMzU0IDIyLjY3OSAxNi42ODIgMjIuOTEyIDE2Ljg5MyBMIDI0LjA3MiAxOC4wODMgTCAyMi45MTIgMTkuMjEz''@;'; + put 'put ''IEMgMjIuNiAxOS41MjUgMjIuNiAyMC4wMyAyMi45MTIgMjAuMzQzIFoiLz5cbiAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC01LS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgPHBhdGggY2xhc3M9''@;'; + put 'put ''ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0gMzQgMTIuMzQgTCAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIgMzEgTCA0IDMxIEMgMi44OTYgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBDIDIgNS44OTYgMi44OTYgNSA0IDUgTCAyMi41''@;'; + put 'put ''NyA1IEMgMjEuOTY5IDkuMjMzIDI1LjA1IDEzLjEgMjkuMzEgMTMuNDYgTCAzMC4zMiAxMy40OCBDIDMxLjYyNiAxMy40MjkgMzIuODk1IDEzLjAzNiAzNCAxMi4zNCBaIE0gOS4xMDEgMTUuOCBDIDkuNDEzIDE2LjExMSA5LjkxOSAxNi4xMTEgMTAuMjMxIDE1LjggTCAxMS4zOTEgMTQuNjQg''@;'; + put 'put ''TCAxMi41NTEgMTUuOCBDIDEyLjk2NCAxNi4yNTYgMTMuNzE3IDE2LjA5NCAxMy45MDUgMTUuNTA3IEMgMTQuMDAyIDE1LjIwOCAxMy45MTQgMTQuODgxIDEzLjY4MSAxNC42NyBMIDEyLjUzMSAxMy41NCBMIDEzLjY5MSAxMi4zOCBDIDE0LjE0NyAxMS45NjYgMTMuOTg1IDExLjIxNCAxMy4z''@;'; + put 'put ''OTkgMTEuMDI1IEMgMTMuMSAxMC45MjkgMTIuNzcyIDExLjAxNyAxMi41NjEgMTEuMjUgTCAxMS40MDEgMTIuNDEgTCAxMC4yMzEgMTEuMjIgQyA5LjgxNyAxMC43NjMgOS4wNjUgMTAuOTI2IDguODc3IDExLjUxMiBDIDguNzggMTEuODExIDguODY4IDEyLjEzOSA5LjEwMSAxMi4zNSBMIDEw''@;'; + put 'put ''LjI2MSAxMy41NCBMIDkuMTAxIDE0LjY3IEMgOC43ODkgMTQuOTgyIDguNzg5IDE1LjQ4NyA5LjEwMSAxNS44IFogTSAxNS4xNzYgMjUuNTM2IEMgMTUuNDg4IDI1Ljg0NyAxNS45OTQgMjUuODQ3IDE2LjMwNiAyNS41MzYgTCAxNy40NjYgMjQuMzc2IEwgMTguNjI2IDI1LjUzNiBDIDE5LjAz''@;'; + put 'put ''OSAyNS45OTIgMTkuNzkyIDI1LjgzIDE5Ljk4IDI1LjI0MyBDIDIwLjA3NyAyNC45NDQgMTkuOTg5IDI0LjYxNyAxOS43NTYgMjQuNDA2IEwgMTguNjA2IDIzLjI3NiBMIDE5Ljc2NiAyMi4xMTYgQyAyMC4yMjIgMjEuNzAyIDIwLjA2IDIwLjk1IDE5LjQ3NCAyMC43NjEgQyAxOS4xNzUgMjAu''@;'; + put 'put ''NjY1IDE4Ljg0NyAyMC43NTMgMTguNjM2IDIwLjk4NiBMIDE3LjQ3NiAyMi4xNDYgTCAxNi4zMDYgMjAuOTU2IEMgMTUuODkyIDIwLjQ5OSAxNS4xNCAyMC42NjIgMTQuOTUyIDIxLjI0OCBDIDE0Ljg1NSAyMS41NDcgMTQuOTQzIDIxLjg3NSAxNS4xNzYgMjIuMDg2IEwgMTYuMzM2IDIzLjI3''@;'; + put 'put ''NiBMIDE1LjE3NiAyNC40MDYgQyAxNC44NjQgMjQuNzE4IDE0Ljg2NCAyNS4yMjMgMTUuMTc2IDI1LjUzNiBaIE0gMjIuOTEyIDIwLjM0MyBDIDIzLjIyNCAyMC42NTQgMjMuNzMgMjAuNjU0IDI0LjA0MiAyMC4zNDMgTCAyNS4yMDIgMTkuMTgzIEwgMjYuMzYyIDIwLjM0MyBDIDI2Ljc3NSAy''@;'; + put 'put ''MC43OTkgMjcuNTI4IDIwLjYzNyAyNy43MTYgMjAuMDUgQyAyNy44MTMgMTkuNzUxIDI3LjcyNSAxOS40MjQgMjcuNDkyIDE5LjIxMyBMIDI2LjM0MiAxOC4wODMgTCAyNy41MDIgMTYuOTIzIEMgMjcuOTU4IDE2LjUwOSAyNy43OTYgMTUuNzU3IDI3LjIxIDE1LjU2OCBDIDI2LjkxMSAxNS40''@;'; + put 'put ''NzIgMjYuNTgzIDE1LjU2IDI2LjM3MiAxNS43OTMgTCAyNS4yMTIgMTYuOTUzIEwgMjQuMDQyIDE1Ljc2MyBDIDIzLjYyOCAxNS4zMDYgMjIuODc2IDE1LjQ2OSAyMi42ODggMTYuMDU1IEMgMjIuNTkxIDE2LjM1NCAyMi42NzkgMTYuNjgyIDIyLjkxMiAxNi44OTMgTCAyNC4wNzIgMTguMDgz''@;'; + put 'put ''IEwgMjIuOTEyIDE5LjIxMyBDIDIyLjYgMTkuNTI1IDIyLjYgMjAuMDMgMjIuOTEyIDIwLjM0MyBaIi8+XG4gIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAg''@;'; + put 'put ''PHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0gMzQgMjkgQyAzNCAzMC4xMDUgMzMuMTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIuODk1IDMxIDIgMzAuMTA1IDIgMjkgTCAyIDcgQyAyIDUuODk1IDIuODk1IDUgNCA1''@;'; + put 'put ''IEwgMjEuOTU4IDUgTCAyMC43ODYgNyBMIDQgNyBMIDQgMjkgTCAzMiAyOSBMIDMyIDE1LjM1NyBMIDM0IDE1LjM1NyBaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIiBkPSJNIDkuMTAxIDE1LjggQyA5LjQx''@;'; + put 'put ''MyAxNi4xMTEgOS45MTkgMTYuMTExIDEwLjIzMSAxNS44IEwgMTEuMzkxIDE0LjY0IEwgMTIuNTUxIDE1LjggQyAxMi45NjQgMTYuMjU2IDEzLjcxNyAxNi4wOTQgMTMuOTA1IDE1LjUwNyBDIDE0LjAwMiAxNS4yMDggMTMuOTE0IDE0Ljg4MSAxMy42ODEgMTQuNjcgTCAxMi41MzEgMTMuNTQg''@;'; + put 'put ''TCAxMy42OTEgMTIuMzggQyAxNC4xNDcgMTEuOTY2IDEzLjk4NSAxMS4yMTQgMTMuMzk5IDExLjAyNSBDIDEzLjEgMTAuOTI5IDEyLjc3MiAxMS4wMTcgMTIuNTYxIDExLjI1IEwgMTEuNDAxIDEyLjQxIEwgMTAuMjMxIDExLjIyIEMgOS44MTcgMTAuNzYzIDkuMDY1IDEwLjkyNiA4Ljg3NyAx''@;'; + put 'put ''MS41MTIgQyA4Ljc4IDExLjgxMSA4Ljg2OCAxMi4xMzkgOS4xMDEgMTIuMzUgTCAxMC4yNjEgMTMuNTQgTCA5LjEwMSAxNC42NyBDIDguNzg5IDE0Ljk4MiA4Ljc4OSAxNS40ODcgOS4xMDEgMTUuOCBaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91''@;'; + put 'put ''dGxpbmUtcGF0aC0zLS1hbGVydGVkIiBkPSJNIDE1LjE3NiAyNS41MzYgQyAxNS40ODggMjUuODQ3IDE1Ljk5NCAyNS44NDcgMTYuMzA2IDI1LjUzNiBMIDE3LjQ2NiAyNC4zNzYgTCAxOC42MjYgMjUuNTM2IEMgMTkuMDM5IDI1Ljk5MiAxOS43OTIgMjUuODMgMTkuOTggMjUuMjQzIEMgMjAu''@;'; + put 'put ''MDc3IDI0Ljk0NCAxOS45ODkgMjQuNjE3IDE5Ljc1NiAyNC40MDYgTCAxOC42MDYgMjMuMjc2IEwgMTkuNzY2IDIyLjExNiBDIDIwLjIyMiAyMS43MDIgMjAuMDYgMjAuOTUgMTkuNDc0IDIwLjc2MSBDIDE5LjE3NSAyMC42NjUgMTguODQ3IDIwLjc1MyAxOC42MzYgMjAuOTg2IEwgMTcuNDc2''@;'; + put 'put ''IDIyLjE0NiBMIDE2LjMwNiAyMC45NTYgQyAxNS44OTIgMjAuNDk5IDE1LjE0IDIwLjY2MiAxNC45NTIgMjEuMjQ4IEMgMTQuODU1IDIxLjU0NyAxNC45NDMgMjEuODc1IDE1LjE3NiAyMi4wODYgTCAxNi4zMzYgMjMuMjc2IEwgMTUuMTc2IDI0LjQwNiBDIDE0Ljg2NCAyNC43MTggMTQuODY0''@;'; + put 'put ''IDI1LjIyMyAxNS4xNzYgMjUuNTM2IFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWFsZXJ0ZWQiIGQ9Ik0gMjIuOTEyIDIwLjM0MyBDIDIzLjIyNCAyMC42NTQgMjMuNzMgMjAuNjU0IDI0LjA0MiAyMC4zNDMgTCAyNS4y''@;'; + put 'put ''MDIgMTkuMTgzIEwgMjYuMzYyIDIwLjM0MyBDIDI2Ljc3NSAyMC43OTkgMjcuNTI4IDIwLjYzNyAyNy43MTYgMjAuMDUgQyAyNy44MTMgMTkuNzUxIDI3LjcyNSAxOS40MjQgMjcuNDkyIDE5LjIxMyBMIDI2LjM0MiAxOC4wODMgTCAyNy41MDIgMTYuOTIzIEMgMjcuOTU4IDE2LjUwOSAyNy43''@;'; + put 'put ''OTYgMTUuNzU3IDI3LjIxIDE1LjU2OCBDIDI2LjkxMSAxNS40NzIgMjYuNTgzIDE1LjU2IDI2LjM3MiAxNS43OTMgTCAyNS4yMTIgMTYuOTUzIEwgMjQuMDQyIDE1Ljc2MyBDIDIzLjYyOCAxNS4zMDYgMjIuODc2IDE1LjQ2OSAyMi42ODggMTYuMDU1IEMgMjIuNTkxIDE2LjM1NCAyMi42Nzkg''@;'; + put 'put ''MTYuNjgyIDIyLjkxMiAxNi44OTMgTCAyNC4wNzIgMTguMDgzIEwgMjIuOTEyIDE5LjIxMyBDIDIyLjYgMTkuNTI1IDIyLjYgMjAuMDMgMjIuOTEyIDIwLjM0MyBaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC01LS1hbGVydGVk''@;'; + put 'put ''IGNsci1pLWFsZXJ0IiBkPSJNIDI2Ljg1NCAxLjE0NCBMIDIxLjEzNCAxMS4wMDQgQyAyMC41NzkgMTEuODE4IDIxLjExNCAxMi45MjggMjIuMDk3IDEzLjAwMSBDIDIyLjE0MiAxMy4wMDUgMjIuMTg4IDEzLjAwNiAyMi4yMzQgMTMuMDA0IEwgMzMuNjg0IDEzLjAwNCBDIDM0LjY2OSAxMy4w''@;'; + put 'put ''MzYgMzUuMzE5IDExLjk5MSAzNC44NTUgMTEuMTIyIEMgMzQuODM0IDExLjA4MSAzNC44MSAxMS4wNDIgMzQuNzg0IDExLjAwNCBMIDI5LjA2NCAxLjE0NCBDIDI4LjU3IDAuMjk5IDI3LjM0OCAwLjI5OSAyNi44NTQgMS4xNDQgWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFs''@;'; + put 'put ''ZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiBkPSJNIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NiAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3IEMgMiA1Ljg5NiAyLjg5NiA1IDQgNSBMIDIxLjk1OCA1IEwgMTcuNjI1IDEyLjM5NSBDIDE2''@;'; + put 'put ''Ljc5NSAxMy42MDEgMTcuNTk0IDE1LjI0NSAxOS4wNjQgMTUuMzUxIEMgMTkuMTM0IDE1LjM1NyAxOS4yMDEgMTUuMzU5IDE5LjI3IDE1LjM1NyBMIDM0IDE1LjM1NyBaIE0gOS4xMDEgMTUuOCBDIDkuNDEzIDE2LjExMSA5LjkxOSAxNi4xMTEgMTAuMjMxIDE1LjggTCAxMS4zOTEgMTQuNjQg''@;'; + put 'put ''TCAxMi41NTEgMTUuOCBDIDEyLjk2NCAxNi4yNTYgMTMuNzE3IDE2LjA5NCAxMy45MDUgMTUuNTA3IEMgMTQuMDAyIDE1LjIwOCAxMy45MTQgMTQuODgxIDEzLjY4MSAxNC42NyBMIDEyLjUzMSAxMy41NCBMIDEzLjY5MSAxMi4zOCBDIDE0LjE0NyAxMS45NjYgMTMuOTg1IDExLjIxNCAxMy4z''@;'; + put 'put ''OTkgMTEuMDI1IEMgMTMuMSAxMC45MjkgMTIuNzcyIDExLjAxNyAxMi41NjEgMTEuMjUgTCAxMS40MDEgMTIuNDEgTCAxMC4yMzEgMTEuMjIgQyA5LjgxNyAxMC43NjMgOS4wNjUgMTAuOTI2IDguODc3IDExLjUxMiBDIDguNzggMTEuODExIDguODY4IDEyLjEzOSA5LjEwMSAxMi4zNSBMIDEw''@;'; + put 'put ''LjI2MSAxMy41NCBMIDkuMTAxIDE0LjY3IEMgOC43ODkgMTQuOTgyIDguNzg5IDE1LjQ4NyA5LjEwMSAxNS44IFogTSAxNS4xNzYgMjUuNTM2IEMgMTUuNDg4IDI1Ljg0NyAxNS45OTQgMjUuODQ3IDE2LjMwNiAyNS41MzYgTCAxNy40NjYgMjQuMzc2IEwgMTguNjI2IDI1LjUzNiBDIDE5LjAz''@;'; + put 'put ''OSAyNS45OTIgMTkuNzkyIDI1LjgzIDE5Ljk4IDI1LjI0MyBDIDIwLjA3NyAyNC45NDQgMTkuOTg5IDI0LjYxNyAxOS43NTYgMjQuNDA2IEwgMTguNjA2IDIzLjI3NiBMIDE5Ljc2NiAyMi4xMTYgQyAyMC4yMjIgMjEuNzAyIDIwLjA2IDIwLjk1IDE5LjQ3NCAyMC43NjEgQyAxOS4xNzUgMjAu''@;'; + put 'put ''NjY1IDE4Ljg0NyAyMC43NTMgMTguNjM2IDIwLjk4NiBMIDE3LjQ3NiAyMi4xNDYgTCAxNi4zMDYgMjAuOTU2IEMgMTUuODkyIDIwLjQ5OSAxNS4xNCAyMC42NjIgMTQuOTUyIDIxLjI0OCBDIDE0Ljg1NSAyMS41NDcgMTQuOTQzIDIxLjg3NSAxNS4xNzYgMjIuMDg2IEwgMTYuMzM2IDIzLjI3''@;'; + put 'put ''NiBMIDE1LjE3NiAyNC40MDYgQyAxNC44NjQgMjQuNzE4IDE0Ljg2NCAyNS4yMjMgMTUuMTc2IDI1LjUzNiBaIE0gMjIuOTEyIDIwLjM0MyBDIDIzLjIyNCAyMC42NTQgMjMuNzMgMjAuNjU0IDI0LjA0MiAyMC4zNDMgTCAyNS4yMDIgMTkuMTgzIEwgMjYuMzYyIDIwLjM0MyBDIDI2Ljc3NSAy''@;'; + put 'put ''MC43OTkgMjcuNTI4IDIwLjYzNyAyNy43MTYgMjAuMDUgQyAyNy44MTMgMTkuNzUxIDI3LjcyNSAxOS40MjQgMjcuNDkyIDE5LjIxMyBMIDI2LjM0MiAxOC4wODMgTCAyNy41MDIgMTYuOTIzIEMgMjcuOTU4IDE2LjUwOSAyNy43OTYgMTUuNzU3IDI3LjIxIDE1LjU2OCBDIDI2LjkxMSAxNS40''@;'; + put 'put ''NzIgMjYuNTgzIDE1LjU2IDI2LjM3MiAxNS43OTMgTCAyNS4yMTIgMTYuOTUzIEwgMjQuMDQyIDE1Ljc2MyBDIDIzLjYyOCAxNS4zMDYgMjIuODc2IDE1LjQ2OSAyMi42ODggMTYuMDU1IEMgMjIuNTkxIDE2LjM1NCAyMi42NzkgMTYuNjgyIDIyLjkxMiAxNi44OTMgTCAyNC4wNzIgMTguMDgz''@;'; + put 'put ''IEwgMjIuOTEyIDE5LjIxMyBDIDIyLjYgMTkuNTI1IDIyLjYgMjAuMDMgMjIuOTEyIDIwLjM0MyBaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0gMjYuODU0IDEuMTQ0IEwgMjEuMTM0''@;'; + put 'put ''IDExLjAwNCBDIDIwLjU3OSAxMS44MTggMjEuMTE0IDEyLjkyOCAyMi4wOTcgMTMuMDAxIEMgMjIuMTQyIDEzLjAwNSAyMi4xODggMTMuMDA2IDIyLjIzNCAxMy4wMDQgTCAzMy42ODQgMTMuMDA0IEMgMzQuNjY5IDEzLjAzNiAzNS4zMTkgMTEuOTkxIDM0Ljg1NSAxMS4xMjIgQyAzNC44MzQg''@;'; + put 'put ''MTEuMDgxIDM0LjgxIDExLjA0MiAzNC43ODQgMTEuMDA0IEwgMjkuMDY0IDEuMTQ0IEMgMjguNTcgMC4yOTkgMjcuMzQ4IDAuMjk5IDI2Ljg1NCAxLjE0NCBaIi8+XG4gIDxyZWN0IHdpZHRoPSIzNiIgaGVpZ2h0PSIzNiIgZmlsbC1vcGFjaXR5PSIwIi8+JyksZS5DbHJTaGFwZVRpY2tDaGFy''@;'; + put 'put ''dD0oMCxhLmNsckljb25TVkcpKCdcbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0gMzIgNSBMIDQgNSBDIDIuODk1IDUgMiA1Ljg5NSAyIDcgTCAyIDI5IEMgMiAzMC4xMDUgMi44OTUgMzEgNCAzMSBMIDMyIDMxIEMgMzMuMTA1IDMxIDM0''@;'; + put 'put ''IDMwLjEwNSAzNCAyOSBMIDM0IDcgQyAzNCA1Ljg5NSAzMy4xMDUgNSAzMiA1IFogTSA0IDI5IEwgNCA3IEwgMzIgNyBMIDMyIDI5IFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0gNiAyNSBMIDggMjUgTCA4IDIyIEwgMTAgMjIg''@;'; + put 'put ''TCAxMCAyNSBMIDEzIDI1IEwgMTMgMjIgTCAxNSAyMiBMIDE1IDI1IEwgMTggMjUgTCAxOCAyMiBMIDIwIDIyIEwgMjAgMjUgTCAyMyAyNSBMIDIzIDIyIEwgMjUgMjIgTCAyNSAyNSBMIDI3LjcyMyAyNSBDIDI4LjAyMyAyNS4wMiAyOC4yOTMgMjUuMTggMjguNDYzIDI1LjQzIEMgMjguOTAz''@;'; + put 'put ''IDI2LjA2IDI4LjQ4MyAyNi45MyAyNy43MjMgMjYuOTkgTCA2IDI2Ljk5MSBaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0gMzQgNyBMIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NiAzMSAyIDMw''@;'; + put 'put ''LjEwNSAyIDI5IEwgMiA3IEMgMiA1Ljg5NiAyLjg5NiA1IDQgNSBMIDMyIDUgQyAzMy4xMDUgNSAzNCA1Ljg5NiAzNCA3IFogTSA2IDI2Ljk5MSBMIDI3LjcyMyAyNi45OSBDIDI4LjQ4MyAyNi45MyAyOC45MDMgMjYuMDYgMjguNDYzIDI1LjQzIEMgMjguMjkzIDI1LjE4IDI4LjAyMyAyNS4w''@;'; + put 'put ''MiAyNy43MjMgMjUgTCAyNSAyNSBMIDI1IDIyIEwgMjMgMjIgTCAyMyAyNSBMIDIwIDI1IEwgMjAgMjIgTCAxOCAyMiBMIDE4IDI1IEwgMTUgMjUgTCAxNSAyMiBMIDEzIDIyIEwgMTMgMjUgTCAxMCAyNSBMIDEwIDIyIEwgOCAyMiBMIDggMjUgTCA2IDI1IFoiLz5cbiAgPHBhdGggY2xhc3M9''@;'; + put 'put ''ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiBkPSJNIDMyIDEzLjIyIEwgMzIgMjkgTCA0IDI5IEwgNCA3IEwgMjIuNTcgNyBDIDIyLjUyNCA2LjY2OCAyMi41MDEgNi4zMzQgMjIuNSA2IEMgMjIuNTAxIDUuNjY1IDIyLjUyNCA1LjMzMSAyMi41''@;'; + put 'put ''NyA1IEwgNCA1IEMgMi44OTUgNSAyIDUuODk1IDIgNyBMIDIgMjkgQyAyIDMwLjEwNCAyLjg5NSAzMSA0IDMxIEwgMzIgMzEgQyAzMy4xMDQgMzEgMzQgMzAuMTA0IDM0IDI5IEwgMzQgMTIuMzQgQyAzMy4zOCAxMi43MyAzMi43MDYgMTMuMDI2IDMyIDEzLjIyIFoiLz5cbiAgPHBhdGggY2xh''@;'; + put 'put ''c3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIiBkPSJNIDYgMjUgTCA4IDI1IEwgOCAyMiBMIDEwIDIyIEwgMTAgMjUgTCAxMyAyNSBMIDEzIDIyIEwgMTUgMjIgTCAxNSAyNSBMIDE4IDI1IEwgMTggMjIgTCAyMCAyMiBMIDIwIDI1IEwgMjMg''@;'; + put 'put ''MjUgTCAyMyAyMiBMIDI1IDIyIEwgMjUgMjUgTCAyNy43MjMgMjUgQyAyOC4wMjMgMjUuMDIgMjguMjkzIDI1LjE4IDI4LjQ2MyAyNS40MyBDIDI4LjkwMyAyNi4wNiAyOC40ODMgMjYuOTMgMjcuNzIzIDI2Ljk5IEwgNiAyNi45OTEgWiIvPlxuICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRs''@;'; + put 'put ''aW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgZD0iTSAzNCAxMi4zNCBMIDM0IDI5IEMg''@;'; + put 'put ''MzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NiAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3IEMgMiA1Ljg5NiAyLjg5NiA1IDQgNSBMIDIyLjU3IDUgQyAyMS45NjkgOS4yMzMgMjUuMDUgMTMuMSAyOS4zMSAxMy40NiBMIDMwLjMyIDEzLjQ4IEMgMzEuNjI2IDEzLjQyOSAz''@;'; + put 'put ''Mi44OTUgMTMuMDM2IDM0IDEyLjM0IFogTSA2IDI2Ljk5MSBMIDI3LjcyMyAyNi45OSBDIDI4LjQ4MyAyNi45MyAyOC45MDMgMjYuMDYgMjguNDYzIDI1LjQzIEMgMjguMjkzIDI1LjE4IDI4LjAyMyAyNS4wMiAyNy43MjMgMjUgTCAyNSAyNSBMIDI1IDIyIEwgMjMgMjIgTCAyMyAyNSBMIDIw''@;'; + put 'put ''IDI1IEwgMjAgMjIgTCAxOCAyMiBMIDE4IDI1IEwgMTUgMjUgTCAxNSAyMiBMIDEzIDIyIEwgMTMgMjUgTCAxMCAyNSBMIDEwIDIyIEwgOCAyMiBMIDggMjUgTCA2IDI1IFoiLz5cbiAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdl''@;'; + put 'put ''ZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgZD0iTSAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIgMzEgTCA0IDMxIEMgMi44OTUgMzEg''@;'; + put 'put ''MiAzMC4xMDUgMiAyOSBMIDIgNyBDIDIgNS44OTUgMi44OTUgNSA0IDUgTCAyMS45NTggNSBMIDIwLjc4NiA3IEwgNCA3IEwgNCAyOSBMIDMyIDI5IEwgMzIgMTUuMzU3IEwgMzQgMTUuMzU3IFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGlu''@;'; + put 'put ''ZS1wYXRoLTItLWFsZXJ0ZWQiIGQ9Ik0gNiAyNSBMIDggMjUgTCA4IDIyIEwgMTAgMjIgTCAxMCAyNSBMIDEzIDI1IEwgMTMgMjIgTCAxNSAyMiBMIDE1IDI1IEwgMTggMjUgTCAxOCAyMiBMIDIwIDIyIEwgMjAgMjUgTCAyMyAyNSBMIDIzIDIyIEwgMjUgMjIgTCAyNSAyNSBMIDI3LjcyMyAy''@;'; + put 'put ''NSBDIDI4LjAyMyAyNS4wMiAyOC4yOTMgMjUuMTggMjguNDYzIDI1LjQzIEMgMjguOTAzIDI2LjA2IDI4LjQ4MyAyNi45MyAyNy43MjMgMjYuOTkgTCA2IDI2Ljk5MSBaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVy''@;'; + put 'put ''dGVkIGNsci1pLWFsZXJ0IiBkPSJNIDI2Ljg1NCAxLjE0NCBMIDIxLjEzNCAxMS4wMDQgQyAyMC41NzkgMTEuODE4IDIxLjExNCAxMi45MjggMjIuMDk3IDEzLjAwMSBDIDIyLjE0MiAxMy4wMDUgMjIuMTg4IDEzLjAwNiAyMi4yMzQgMTMuMDA0IEwgMzMuNjg0IDEzLjAwNCBDIDM0LjY2OSAx''@;'; + put 'put ''My4wMzYgMzUuMzE5IDExLjk5MSAzNC44NTUgMTEuMTIyIEMgMzQuODM0IDExLjA4MSAzNC44MSAxMS4wNDIgMzQuNzg0IDExLjAwNCBMIDI5LjA2NCAxLjE0NCBDIDI4LjU3IDAuMjk5IDI3LjM0OCAwLjI5OSAyNi44NTQgMS4xNDQgWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQt''@;'; + put 'put ''LWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiBkPSJNIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NiAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3IEMgMiA1Ljg5NiAyLjg5NiA1IDQgNSBMIDIxLjk1OCA1IEwgMTcuNjI1IDEyLjM5NSBD''@;'; + put 'put ''IDE2Ljc5NSAxMy42MDEgMTcuNTk0IDE1LjI0NSAxOS4wNjQgMTUuMzUxIEMgMTkuMTM0IDE1LjM1NyAxOS4yMDEgMTUuMzU5IDE5LjI3IDE1LjM1NyBMIDM0IDE1LjM1NyBaIE0gNiAyNi45OTEgTCAyNy43MjMgMjYuOTkgQyAyOC40ODMgMjYuOTMgMjguOTAzIDI2LjA2IDI4LjQ2MyAyNS40''@;'; + put 'put ''MyBDIDI4LjI5MyAyNS4xOCAyOC4wMjMgMjUuMDIgMjcuNzIzIDI1IEwgMjUgMjUgTCAyNSAyMiBMIDIzIDIyIEwgMjMgMjUgTCAyMCAyNSBMIDIwIDIyIEwgMTggMjIgTCAxOCAyNSBMIDE1IDI1IEwgMTUgMjIgTCAxMyAyMiBMIDEzIDI1IEwgMTAgMjUgTCAxMCAyMiBMIDggMjIgTCA4IDI1''@;'; + put 'put ''IEwgNiAyNSBaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0gMjYuODU0IDEuMTQ0IEwgMjEuMTM0IDExLjAwNCBDIDIwLjU3OSAxMS44MTggMjEuMTE0IDEyLjkyOCAyMi4wOTcgMTMu''@;'; + put 'put ''MDAxIEMgMjIuMTQyIDEzLjAwNSAyMi4xODggMTMuMDA2IDIyLjIzNCAxMy4wMDQgTCAzMy42ODQgMTMuMDA0IEMgMzQuNjY5IDEzLjAzNiAzNS4zMTkgMTEuOTkxIDM0Ljg1NSAxMS4xMjIgQyAzNC44MzQgMTEuMDgxIDM0LjgxIDExLjA0MiAzNC43ODQgMTEuMDA0IEwgMjkuMDY0IDEuMTQ0''@;'; + put 'put ''IEMgMjguNTcgMC4yOTkgMjcuMzQ4IDAuMjk5IDI2Ljg1NCAxLjE0NCBaIi8+JyksZS5DbHJTaGFwZUJlbGxDdXJ2ZT0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzMsMjlIM0ExLDEsMCwxLDEsMywyN0gzM0ExLDEsMCwxLDEsMzMsMjlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHIt''@;'; + put 'put ''aS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMzMsMjVoLS42MmE4LjExLDguMTEsMCwwLDEtOC02LjY3QzIzLjYyLDE0LjQ0LDIxLjg5LDcuOTQsMTgsNy45NHMtNS42OSw2LjUxLTYuMzgsMTAuMzlhOC4xMSw4LjExLDAsMCwxLTgsNi42NUgzYTEsMSwwLDEsMSwwLTJoLjZBNi4xMSw2''@;'; + put 'put ''LjExLDAsMCwwLDkuNiwxOGMxLjQxLTcuODgsNC4zLTEyLDguMzUtMTJzNi45Myw0LjE2LDguMzMsMTJhNi4xMSw2LjExLDAsMCwwLDYsNUgzM2ExLDEsMCwwLDEsMCwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+JyksZS5DaGFydFNoYXBlcz17ImF4''@;'; + put 'put ''aXMtY2hhcnQiOmUuQ2xyU2hhcGVBeGlzQ2hhcnQsImJhci1jaGFydCI6ZS5DbHJTaGFwZUJhckNoYXJ0LCJidWJibGUtY2hhcnQiOmUuQ2xyU2hhcGVCdWJibGVDaGFydCwiY2xvdWQtY2hhcnQiOmUuQ2xyU2hhcGVDbG91ZENoYXJ0LCJjdXJ2ZS1jaGFydCI6ZS5DbHJTaGFwZUN1cnZlQ2hh''@;'; + put 'put ''cnQsImdyaWQtY2hhcnQiOmUuQ2xyU2hhcGVHcmlkQ2hhcnQsImxpbmUtY2hhcnQiOmUuQ2xyU2hhcGVMaW5lQ2hhcnQsInBpZS1jaGFydCI6ZS5DbHJTaGFwZVBpZUNoYXJ0LCJ0aWNrLWNoYXJ0IjplLkNsclNoYXBlVGlja0NoYXJ0LCJzY2F0dGVyLXBsb3QiOmUuQ2xyU2hhcGVTY2F0dGVy''@;'; + put 'put ''UGxvdCwiYm94LXBsb3QiOmUuQ2xyU2hhcGVCb3hQbG90LCJoZWF0LW1hcCI6ZS5DbHJTaGFwZUhlYXRNYXAsImJlbGwtY3VydmUiOmUuQ2xyU2hhcGVCZWxsQ3VydmV9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLkNoYXJ0U2hhcGVzLCJhbmFseXRpY3MiLCgwLHIuZGVzY3JpcHRvckNvbmZp''@;'; + put 'put ''ZykoZS5DaGFydFNoYXBlc1sibGluZS1jaGFydCJdKSksInVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cmJndpbmRvdy5oYXNPd25Qcm9wZXJ0eSgiQ2xhcml0eUljb25zIikmJndpbmRvdy5DbGFyaXR5SWNvbnMuYWRkKGUuQ2hhcnRTaGFwZXMpfSwiLi9wcm9qZWN0cy9pY29ucy9zcmMvc2hh''@;'; + put 'put ''cGVzL2NvbW1lcmNlLXNoYXBlcy50cyI6ZnVuY3Rpb24oQSxlLGEpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5Db21tZXJjZVNoYXBlcz1lLkNsclNoYXBlRmFjdG9yeT1lLkNsclNoYXBlRW1wbG95ZWU9ZS5DbHJTaGFw''@;'; + put 'put ''ZUVtcGxveWVlR3JvdXA9ZS5DbHJTaGFwZVJ1YmxlPWUuQ2xyU2hhcGVQZXNvPWUuQ2xyU2hhcGVDb2luQmFnPWUuQ2xyU2hhcGVCaXRjb2luPWUuQ2xyU2hhcGVZZW49ZS5DbHJTaGFwZVdvbj1lLkNsclNoYXBlUnVwZWU9ZS5DbHJTaGFwZVBvdW5kPWUuQ2xyU2hhcGVFQ2hlY2s9ZS5DbHJT''@;'; + put 'put ''aGFwZURvbGxhckJpbGw9ZS5DbHJTaGFwZUJhbms9ZS5DbHJTaGFwZUNyZWRpdENhcmQ9ZS5DbHJTaGFwZURvbGxhcj1lLkNsclNoYXBlRXVybz1lLkNsclNoYXBlU3RvcmU9ZS5DbHJTaGFwZVdhbGxldD1lLkNsclNoYXBlU2hvcHBpbmdDYXJ0PWUuQ2xyU2hhcGVQaWdneUJhbms9ZS5DbHJT''@;'; + put 'put ''aGFwZVNob3BwaW5nQmFnPWUuQ2xyU2hhcGVDYWxjdWxhdG9yPXZvaWQgMDt2YXIgcj1hKCIuL3Byb2plY3RzL2ljb25zL3NyYy91dGlscy9kZXNjcmlwdG9yLWNvbmZpZy50cyIpO2E9YSgiLi9wcm9qZWN0cy9pY29ucy9zcmMvdXRpbHMvc3ZnLXRhZy1nZW5lcmF0b3IudHMiKSxlLkNsclNo''@;'; + put 'put ''YXBlQ2FsY3VsYXRvcj0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTI4LDJIOEEyLDIsMCwwLDAsNiw0VjMyYTIsMiwwLDAsMCwyLDJIMjhhMiwyLDAsMCwwLDItMlY0QTIsMiwwLDAsMCwyOCwyWk04LDMyVjRI''@;'; + put 'put ''MjhWMzJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTEyLDhIMjUuNjdWNkgxMWExLDEsMCwwLDAtMSwxdjQuNjdoMloiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1p''@;'; + put 'put ''LW91dGxpbmUtcGF0aC0zIiBwb2ludHM9IjEyIDE2IDEwIDE2IDEwIDE4IDE0IDE4IDE0IDE0IDEyIDE0IDEyIDE2Ii8+XG4gICAgICAgICAgICA8cG9seWdvbiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgcG9pbnRzPSIyNCAxNiAyMiAxNiAyMiAxOCAyNiAx''@;'; + put 'put ''OCAyNiAxNCAyNCAxNCAyNCAxNiIvPlxuICAgICAgICAgICAgPHBvbHlnb24gY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIHBvaW50cz0iMTggMTYgMTYgMTYgMTYgMTggMjAgMTggMjAgMTQgMTggMTQgMTggMTYiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIGNs''@;'; + put 'put ''YXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02IiBwb2ludHM9IjEyIDIyIDEwIDIyIDEwIDI0IDE0IDI0IDE0IDIwIDEyIDIwIDEyIDIyIi8+XG4gICAgICAgICAgICA8cG9seWdvbiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNyIgcG9pbnRz''@;'; + put 'put ''PSIyNCAyMiAyMiAyMiAyMiAyNCAyNiAyNCAyNiAyMCAyNCAyMCAyNCAyMiIvPlxuICAgICAgICAgICAgPHBvbHlnb24gY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTgiIHBvaW50cz0iMTggMjIgMTYgMjIgMTYgMjQgMjAgMjQgMjAgMjAgMTggMjAgMTggMjIiLz5c''@;'; + put 'put ''biAgICAgICAgICAgIDxwb2x5Z29uIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC05IiBwb2ludHM9IjEyIDI4IDEwIDI4IDEwIDMwIDE0IDMwIDE0IDI2IDEyIDI2IDEyIDI4Ii8+XG4gICAgICAgICAgICA8cG9seWdvbiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHIt''@;'; + put 'put ''aS1vdXRsaW5lLXBhdGgtMTAiIHBvaW50cz0iMjQgMjggMjIgMjggMjIgMzAgMjYgMzAgMjYgMjYgMjQgMjYgMjQgMjgiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xMSIgcG9pbnRzPSIxOCAyOCAxNiAyOCAxNiAzMCAy''@;'; + put 'put ''MCAzMCAyMCAyNiAxOCAyNiAxOCAyOCIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTI4LDJIOEEyLDIsMCwwLDAsNiw0VjMyYTIsMiwwLDAsMCwyLDJIMjhhMiwyLDAsMCwwLDItMlY0QTIsMiwwLDAsMCwyOCwyWk0xMiwy''@;'; + put 'put ''OEgxMFYyNmgyWm0wLTZIMTBWMjBoMlptMC02SDEwVjE0aDJabTcsMTJIMTdWMjZoMlptMC02SDE3VjIwaDJabTAtNkgxN1YxNGgyWm03LDEySDI0VjI2aDJabTAtNkgyNFYyMGgyWm0wLTZIMjRWMTRoMlptMC03SDEwVjVIMjZaIi8+JyksZS5DbHJTaGFwZVNob3BwaW5nQmFnPSgwLGEuY2xy''@;'; + put 'put ''SWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMjUsMTJWOS4wNWE3LDcsMCwxLDAtMTQsMHY3YTEsMSwwLDAsMCwyLDBWMTRoOFYxMkgxM1Y5LjA1YTUsNSwwLDEsMSwxMCwwVjE2YTEsMSwwLDEsMCwyLDBWMTRoNVYzMkg2VjE0''@;'; + put 'put ''SDlWMTJINFYzMi4wOUExLjkxLDEuOTEsMCwwLDAsNS45MSwzNEgzMC4wOUExLjkxLDEuOTEsMCwwLDAsMzIsMzIuMDlWMTJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMTMsOS4yMmE1LDUsMCwxLDEsMTAsMFYxMmgy''@;'; + put 'put ''VjkuMjJhNyw3LDAsMSwwLTE0LDBWMTJoMloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGQ9Ik0yNSwxMnYzLjFhMSwxLDAsMSwxLTIsMFYxMkgxM3YzLjFhMSwxLDAsMCwxLTIsMFYxMkg0VjMyYTIsMiwwLDAsMCwyLDJIMzBh''@;'; + put 'put ''MiwyLDAsMCwwLDItMlYxMloiLz4nKSxlLkNsclNoYXBlUGlnZ3lCYW5rPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMTkuNzIsMTAuNDdhMTEuNjUsMTEuNjUsMCwwLDAtNi4zMS41MkEuOC44LDAsMSwwLDE0''@;'; + put 'put ''LDEyLjQ4LDEwLjExLDEwLjExLDAsMCwxLDE5LjQ0LDEyYS44LjgsMCwxLDAsLjI4LTEuNTdaIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBjeD0iMjUuMzgiIGN5PSIxNi43MSIgcj0iMS4zNiIvPlxuICAgICAgICAg''@;'; + put 'put ''ICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIGQ9Ik0zNS41MSwxOC42M2ExLDEsMCwwLDAtLjg0LS40NCwzLjQyLDMuNDIsMCwwLDEtMi4wOS0xLjEyLDE3LjM1LDE3LjM1LDAsMCwxLTIuNjMtMy43OGwyLjg4LTQuNUExLjg5LDEuODksMCwwLDAs''@;'; + put 'put ''MzMsN2ExLjc3LDEuNzcsMCwwLDAtMS4zMy0xLDEwLjEyLDEwLjEyLDAsMCwwLTUuMzkuNzUsMTIuNzIsMTIuNzIsMCwwLDAtMi43MiwxLjYzLDE2Ljk0LDE2Ljk0LDAsMCwwLTUuMTYtMS4zOUMxMS4zMSw2LjMsNC44MywxMC45LDQsMTdINGEyLjU2LDIuNTYsMCwwLDEtMS4zOC0xLjUzLDEu''@;'; + put 'put ''ODEsMS44MSwwLDAsMSwuMTQtMS40LDEuMTksMS4xOSwwLDAsMSwuNDMtLjQzLDEuMDgsMS4wOCwwLDAsMC0xLjEyLTEuODVBMy4zMSwzLjMxLDAsMCwwLC45MSwxM2E0LDQsMCwwLDAtLjMzLDMuMDhBNC43Niw0Ljc2LDAsMCwwLDMsMTguOTVsLjkyLjQ2YTE3LjU4LDE3LjU4LDAsMCwwLDEu''@;'; + put 'put ''ODIsN2wuMTcuMzhBMjMsMjMsMCwwLDAsOS4yLDMxLjg4YTEsMSwwLDAsMCwuNzUuMzRoNC41MmExLDEsMCwwLDAsLjkyLTEuMzhMMTUsMjkuOTRsMS4xOC4xM2EyMC4zMywyMC4zMywwLDAsMCw0LDBjLjM3LjYuNzcsMS4yLDEuMjEsMS43OWExLDEsMCwwLDAsLjguNDFoNC4zNGExLDEsMCww''@;'; + put 'put ''LDAsLjkyLTEuMzljLS4xNy0uNC0uMzQtLjgzLS40Ny0xLjItLjE4LS41My0uMzItMS0uNDMtMS40NUExMy4xOCwxMy4xOCwwLDAsMCwyOS41NiwyNmExMi41LDEyLjUsMCwwLDAsMywwLDEsMSwwLDAsMCwuNzgtLjYybDIuMjYtNS44MUExLDEsMCwwLDAsMzUuNTEsMTguNjNabS0zLjc4LDUu''@;'; + put 'put ''NDRhMTEuMzcsMTEuMzcsMCwwLDEtMi4zNS0uMTFoMGE4LjIsOC4yLDAsMCwxLTIuNTMtLjg3LDEsMSwwLDAsMC0uOTMsMS43NywxMS43MiwxMS43MiwwLDAsMCwxLjI5LjU4LDgsOCwwLDAsMS0xLjgsMS4xNmwtMS4wNi40OHMuNDksMi4xOS44MiwzLjE2SDIyLjc5Yy0uMjQtLjM0LTEuNDUt''@;'; + put 'put ''Mi4zNi0xLjQ1LTIuMzZsLS42Ny4wOWExOC41MywxOC41MywwLDAsMS00LjI1LjEyYy0uNjYtLjA2LTEuNzYtLjItMi42Mi0uMzVsLTEuNTUtLjI3cy42MywyLjQzLjc1LDIuNzR2MEgxMC40MkEyMC41NywyMC41NywwLDAsMSw3Ljc2LDI2bC0uMTgtLjM5QTE0LjYyLDE0LjYyLDAsMCwxLDYs''@;'; + put 'put ''MTcuNDhjLjU0LTUuMTksNi4xMi05LjExLDEyLjE5LTguNTRhMTUuNDcsMTUuNDcsMCwwLDEsNS4wOCwxLjQ4bC42Mi4yOS41LS40N0ExMC4yOSwxMC4yOSwwLDAsMSwyNyw4LjU0YTguMjUsOC4yNSwwLDAsMSw0LS42NWwtMy4zOCw1LjI5LjI1LjVoMGEyMS4xNiwyMS4xNiwwLDAsMCwzLjMx''@;'; + put 'put ''LDQuODQsNi40OSw2LjQ5LDAsMCwwLDIuMTQsMS4zOVoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zNSwxOC44N0E1LjgzLDUuODMsMCwwLDEsMzMsMTcuNjFhMjEuNjMsMjEuNjMsMCwwLDEtMy4yOS00Ljg0bDMuMzkt''@;'; + put 'put ''NS4yOWEuOS45LDAsMCwwLS41NC0xLjM4LDkuNjcsOS42NywwLDAsMC01LjEzLjcyLDEyLDEyLDAsMCwwLTMuMTMsMkExNy4zNywxNy4zNywwLDAsMCwxOC42LDcuMTVDMTEuOCw2LjUyLDUuMjcsMTAuOSw0LjU0LDE3bC0uMTQtLjA3QTIuNzYsMi43NiwwLDAsMSwyLjksMTUuMjlhMiwyLDAs''@;'; + put 'put ''MCwxLC4xNS0xLjU1LDEuMzIsMS4zMiwwLDAsMSwuNDctLjQ4LDEuMDgsMS4wOCwwLDEsMC0xLjEyLTEuODUsMy40NSwzLjQ1LDAsMCwwLTEuMjMsMS4yNUE0LjE2LDQuMTYsMCwwLDAsLjg0LDE1LjlhNSw1LDAsMCwwLDIuNTcsM2wxLC41NGExOC42MiwxOC42MiwwLDAsMCwyLDcuMywyMywy''@;'; + put 'put ''MywwLDAsMCwzLDQuNzksMSwxLDAsMCwwLC44LjM4aDMuNjFhLjUyLjUyLDAsMCwwLC40LS43NUwxNCwzMC4zOGExMSwxMSwwLDAsMS0uMzMtMS4xOGMuOTEuMTYsMi4wOC4zMSwyLjg3LjM4YTIwLjA3LDIwLjA3LDAsMCwwLDMuMTIsMGMuMzkuNy43OSwxLjMzLDEuMTUsMS44NWEuOTMuOTMs''@;'; + put 'put ''MCwwLDAsLjc3LjQxaDMuMTFhLjY1LjY1LDAsMCwwLC42MS0uODVjLS4yMy0uNzQtLjUzLTEuNzUtLjcxLTIuMzdhMTUuOSwxNS45LDAsMCwwLDMuNzUtMS43NmMuMTYtLjExLjMyLS4yNi40OC0uMzlhMTMuNzcsMTMuNzcsMCwwLDEtMi40Mi0xLC44LjgsMCwwLDEsLjc0LTEuNDIsMTEuNjQs''@;'; + put 'put ''MTEuNjQsMCwwLDAsMy4xOCwxLjEsMTMuMzEsMTMuMzEsMCwwLDAsMi42OC4xMiwxLDEsMCwwLDAsLjktLjY2bDEuNzMtNC40NEExLDEsMCwwLDAsMzUsMTguODdaTTEzLjc5LDExLjU5YS44Ni44NiwwLDAsMS0uMy4wNS44NS44NSwwLDAsMS0uMy0xLjY0LDEyLjQxLDEyLjQxLDAsMCwxLDYu''@;'; + put 'put ''NjktLjU1Ljg1Ljg1LDAsMSwxLS4zLDEuNjdBMTAuNzUsMTAuNzUsMCwwLDAsMTMuNzksMTEuNTlabTEyLjUyLDYuMTJhMS40NCwxLjQ0LDAsMSwxLDEuNDQtMS40NEExLjQ0LDEuNDQsMCwwLDEsMjYuMzIsMTcuNzJaIi8+JyksZS5DbHJTaGFwZVNob3BwaW5nQ2FydD0oMCxhLmNsckljb25T''@;'; + put 'put ''VkcpKCc8Y2lyY2xlIGN4PSIxMy4zMyIgY3k9IjI5Ljc1IiByPSIyLjI1IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjI3IiBjeT0iMjkuNzUiIHI9IjIuMjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1p''@;'; + put 'put ''LW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLjA4LDUuMzdBMSwxLDAsMCwwLDMyLjMxLDVIMTEuNDlsLjY1LDJIMzFMMjguMzMsMTloLTE1TDguNzYsNC41M2ExLDEsMCwwLDAtLjY2LS42NUw0LDIuNjJhMSwxLDAsMSwwLS41OSwxLjkyTDcsNS42NGw0LjU5''@;'; + put 'put ''LDE0LjVMOS45NSwyMS40OGwtLjEzLjEzQTIuNjYsMi42NiwwLDAsMCw5Ljc0LDI1LDIuNzUsMi43NSwwLDAsMCwxMiwyNkgyOC42OWExLDEsMCwwLDAsMC0ySDExLjg0YS42Ny42NywwLDAsMS0uNTYtMWwyLjQxLTJIMjkuMTNhMSwxLDAsMCwwLDEtLjc4bDMuMTctMTRBMSwxLDAsMCwwLDMz''@;'; + put 'put ''LjA4LDUuMzdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjEzLjMzIiBjeT0iMjkuNzUiIHI9IjIuMjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVy''@;'; + put 'put ''dGVkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMjciIGN5PSIyOS43NSIgcj0iMi4yNSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cG9seWdvbiBwb2ludHM9IjIwLjcxIDcgMjEuODcg''@;'; + put 'put ''NSAxMS40OSA1IDEyLjE0IDcgMjAuNzEgNyIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjkuMTUsMTUuNCwyOC4zMywxOWgtMTVMOC43Niw0LjUzYTEsMSwwLDAsMC0uNjYtLjY1''@;'; + put 'put ''TDQsMi42MmExLDEsMCwxLDAtLjU5LDEuOTJMNyw1LjY0bDQuNTksMTQuNUw5Ljk1LDIxLjQ4bC0uMTMuMTNBMi42NiwyLjY2LDAsMCwwLDkuNzQsMjUsMi43NSwyLjc1LDAsMCwwLDEyLDI2SDI4LjY5YTEsMSwwLDAsMCwwLTJIMTEuODRhLjY3LjY3LDAsMCwxLS41Ni0xbDIuNDEtMkgyOS4x''@;'; + put 'put ''M2ExLDEsMCwwLDAsMS0uNzhsMS4wOS00LjgyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMu''@;'; + put 'put ''NjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiAgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xl''@;'; + put 'put ''IGN4PSIxMy4zMyIgY3k9IjI5Ljc1IiByPSIyLjI1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIyNyIgY3k9IjI5Ljc1IiByPSIyLjI1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0t''@;'; + put 'put ''YmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIuNTcsN2E3LjUyLDcuNTIsMCwwLDEtLjA3LTEsNy41Miw3LjUyLDAsMCwxLC4wNy0xSDExLjQ5bC42NSwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1v''@;'; + put 'put ''dXRsaW5lLXBhdGgtMy0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLDEzLjVsLS40MiwwTDI4LjMzLDE5aC0xNUw4Ljc2LDQuNTNhMSwxLDAsMCwwLS42Ni0uNjVMNCwyLjYyYTEsMSwwLDEsMC0uNTksMS45Mkw3LDUuNjRsNC41OSwxNC41TDkuOTUsMjEuNDhsLS4xMy4x''@;'; + put 'put ''M0EyLjY2LDIuNjYsMCwwLDAsOS43NCwyNSwyLjc1LDIuNzUsMCwwLDAsMTIsMjZIMjguNjlhMSwxLDAsMCwwLDAtMkgxMS44NGEuNjcuNjcsMCwwLDEtLjU2LTFsMi40MS0ySDI5LjEzYTEsMSwwLDAsMCwxLS43OGwxLjU3LTYuOTFBNy41MSw3LjUxLDAsMCwxLDMwLDEzLjVaIiBjbGFzcz0i''@;'; + put 'put ''Y2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiICBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC01LS1iYWRnZWQgY2xyLWktYmFk''@;'; + put 'put ''Z2UiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIxMy41IiBjeT0iMjkuNSIgcj0iMi41IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMjYuNSIgY3k9IjI5LjUiIHI9IjIuNSIgY2xhc3M9ImNsci1pLXNvbGlk''@;'; + put 'put ''IGNsci1pLXNvbGlkLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy4xLDYuMzlBMSwxLDAsMCwwLDMyLjMxLDZIOS4yMUw4Ljc2LDQuNTdhMSwxLDAsMCwwLS42Ni0uNjVMNCwyLjY2YTEsMSwwLDEsMC0uNTksMS45Mkw3LDUuNjhsNC41OCwxNC40N0w5Ljk1LDIxLjQ5bC0u''@;'; + put 'put ''MTMuMTNBMi42NiwyLjY2LDAsMCwwLDkuNzQsMjUsMi43NSwyLjc1LDAsMCwwLDEyLDI2SDI4LjY5YTEsMSwwLDAsMCwwLTJIMTEuODRhLjY3LjY3LDAsMCwxLS41Ni0xbDIuNDEtMkgyOS4xMmExLDEsMCwwLDAsMS0uNzZsMy4yLTEzQTEsMSwwLDAsMCwzMy4xLDYuMzlaIiBjbGFzcz0iY2xy''@;'; + put 'put ''LWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMTMuNSIgY3k9IjI5LjUiIHI9IjIuNSIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9''@;'; + put 'put ''IjI2LjUiIGN5PSIyOS41IiByPSIyLjUiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIuMjMsMTUuNEEzLjY4LDMuNjgsMCwwLDEsMTksOS44OUwyMS4yOSw2SDkuMjFMOC43Niw0LjU3''@;'; + put 'put ''YTEsMSwwLDAsMC0uNjYtLjY1TDQsMi42NmExLDEsMCwxLDAtLjU5LDEuOTJMNyw1LjY4bDQuNTgsMTQuNDdMOS45NSwyMS40OWwtLjEzLjEzQTIuNjYsMi42NiwwLDAsMCw5Ljc0LDI1LDIuNzUsMi43NSwwLDAsMCwxMiwyNkgyOC42OWExLDEsMCwwLDAsMC0ySDExLjg0YS42Ny42NywwLDAs''@;'; + put 'put ''MS0uNTYtMWwyLjQxLTJIMjkuMTJhMSwxLDAsMCwwLDEtLjc2bDEuMTktNC44NFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCww''@;'; + put 'put ''LDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiAgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtNC0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbiAgICAgICAg''@;'; + put 'put ''ICAgIDxjaXJjbGUgY3g9IjEzLjUiIGN5PSIyOS41IiByPSIyLjUiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMjYuNSIgY3k9IjI5LjUiIHI9IjIuNSIgY2xhc3M9ImNsci1pLXNvbGlk''@;'; + put 'put ''LS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAsMTMuNUE3LjUsNy41LDAsMCwxLDIyLjUsNkg5LjIxTDguNzYsNC41N2ExLDEsMCwwLDAtLjY2LS42NUw0LDIuNjZhMSwxLDAsMSwwLS41OSwxLjkyTDcsNS42OGw0LjU4LDE0''@;'; + put 'put ''LjQ3TDkuOTUsMjEuNDlsLS4xMy4xM0EyLjY2LDIuNjYsMCwwLDAsOS43NCwyNSwyLjc1LDIuNzUsMCwwLDAsMTIsMjZIMjguNjlhMSwxLDAsMCwwLDAtMkgxMS44NGEuNjcuNjcsMCwwLDEtLjU2LTFsMi40MS0ySDI5LjEyYTEsMSwwLDAsMCwxLS43NmwxLjcxLTdBNy40OSw3LjQ5LDAsMCwx''@;'; + put 'put ''LDMwLDEzLjVaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtNC0tYmFkZ2Vk''@;'; + put 'put ''IGNsci1pLWJhZGdlIiAvPicpLGUuQ2xyU2hhcGVXYWxsZXQ9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMiwxNUgzMVY5YTEsMSwwLDAsMC0xLTFINmExLDEsMCwwLDEtMS0uODJWNi44MkExLDEsMCwwLDEs''@;'; + put 'put ''Niw2SDI5LjU4YTEsMSwwLDAsMCwwLTJINkEzLDMsMCwwLDAsMyw3YTMuMDgsMy4wOCwwLDAsMCwwLC4zNlYyNy45M0E0LjEsNC4xLDAsMCwwLDcuMTMsMzJIMzBhMSwxLDAsMCwwLDEtMVYyNWgxYTEsMSwwLDAsMCwxLTFWMTZBMSwxLDAsMCwwLDMyLDE1Wk0yOSwzMEg3LjEzQTIuMTEsMi4x''@;'; + put 'put ''MSwwLDAsMSw1LDI3LjkzVjkuODhBMy4xMSwzLjExLDAsMCwwLDYsMTBIMjl2NUgyMmE1LDUsMCwwLDAsMCwxMGg3Wm0yLTdIMjJhMywzLDAsMCwxLDAtNkgzMVoiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGN4PSIy''@;'; + put 'put ''My4wMSIgY3k9IjIwIiByPSIxLjUiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zMi45NCwxNEgzMVY5YTEsMSwwLDAsMC0xLTFINkExLDEsMCwwLDEsNSw3SDVWN0ExLDEsMCwwLDEsNiw2SDI5LjZhMSwxLDAsMSwwLDAt''@;'; + put 'put ''Mkg2QTIuOTQsMi45NCwwLDAsMCwzLDYuODh2MjFBNC4xMyw0LjEzLDAsMCwwLDcuMTUsMzJIMzBhMSwxLDAsMCwwLDEtMVYyNmgxLjk0YS45My45MywwLDAsMCwxLS45MXYtMTBBMS4wOCwxLjA4LDAsMCwwLDMyLjk0LDE0Wk0zMiwyNGwtOC41OCwwYTMuODcsMy44NywwLDAsMS0zLjczLTQs''@;'; + put 'put ''My44NywzLjg3LDAsMCwxLDMuNzMtNEwzMiwxNloiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgY3g9IjI0LjA0IiBjeT0iMTkuOTIiIHI9IjEuNSIvPicpLGUuQ2xyU2hhcGVTdG9yZT0oMCxhLmNsckljb25TVkcpKCc8cGF0''@;'; + put 'put ''aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTI4LDMwSDE2VjIySDE0djhIOFYyMkg2djhhMiwyLDAsMCwwLDIsMkgyOGEyLDIsMCwwLDAsMi0yVjIySDI4WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0''@;'; + put 'put ''bGluZS1wYXRoLTIiIGQ9Ik0zMy43OSwxMy4yNywyOS43MSw1LjExQTIsMiwwLDAsMCwyNy45Miw0SDguMDhBMiwyLDAsMCwwLDYuMjksNS4xMUwyLjIxLDEzLjI3YTIsMiwwLDAsMC0uMjEuOXYzLjA4YTIsMiwwLDAsMCwuNDYsMS4yOEE0LjY3LDQuNjcsMCwwLDAsNiwyMC4xM2E0LjcyLDQu''@;'; + put 'put ''NzIsMCwwLDAsMy0xLjA3LDQuNzMsNC43MywwLDAsMCw2LDAsNC43Myw0LjczLDAsMCwwLDYsMCw0LjczLDQuNzMsMCwwLDAsNiwwLDQuNzIsNC43MiwwLDAsMCw2LjUzLS41MkEyLDIsMCwwLDAsMzQsMTcuMjZWMTQuMTdBMiwyLDAsMCwwLDMzLjc5LDEzLjI3Wk0zMCwxOC4xM0EyLjY4LDIu''@;'; + put 'put ''NjgsMCwwLDEsMjcuODIsMTdMMjcsMTUuODgsMjYuMTksMTdhMi43MSwyLjcxLDAsMCwxLTQuMzcsMEwyMSwxNS44OCwyMC4xOSwxN2EyLjcxLDIuNzEsMCwwLDEtNC4zNywwTDE1LDE1Ljg4LDE0LjE5LDE3YTIuNzEsMi43MSwwLDAsMS00LjM3LDBMOSwxNS44OCw4LjE4LDE3QTIuNjgsMi42''@;'; + put 'put ''OCwwLDAsMSw2LDE4LjEzYTIuNjQsMi42NCwwLDAsMS0yLS44OFYxNC4xN0w4LjA4LDZIMjcuOTJMMzIsMTQuMTZ2LjY3bDAsMi4zOUEyLjY3LDIuNjcsMCwwLDEsMzAsMTguMTNaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBk''@;'; + put 'put ''PSJNMjgsMzBIMTZWMjJIMTR2OEg4VjIySDZ2OGEyLDIsMCwwLDAsMiwySDI4YTIsMiwwLDAsMCwyLTJWMjJIMjhaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiBkPSJNMzMuNzksMTMuMjcsMjkuNzEsNS4xMUEyLDIsMCwwLDAs''@;'; + put 'put ''MjcuOTIsNEg4LjA4QTIsMiwwLDAsMCw2LjI5LDUuMTFMMi4yMSwxMy4yN2EyLDIsMCwwLDAtLjIxLjl2My4wOGEyLDIsMCwwLDAsLjQ2LDEuMjhBNC42Nyw0LjY3LDAsMCwwLDYsMjAuMTNhNC43Miw0LjcyLDAsMCwwLDMtMS4wNyw0LjczLDQuNzMsMCwwLDAsNiwwLDQuNzMsNC43MywwLDAs''@;'; + put 'put ''MCw2LDAsNC43Myw0LjczLDAsMCwwLDYsMCw0LjcyLDQuNzIsMCwwLDAsNi41My0uNTJBMiwyLDAsMCwwLDM0LDE3LjI2VjE0LjE3QTIsMiwwLDAsMCwzMy43OSwxMy4yN1pNMTUsMTQuNHYxLjUyTDE0LjE4LDE3YTIuNzEsMi43MSwwLDAsMS00LjM3LDBMOSwxNS44OFYxNC40TDExLjU5LDZI''@;'; + put 'put ''MTZabTEyLDEuNDhMMjYuMTksMTdhMi43MSwyLjcxLDAsMCwxLTQuMzcsMEwyMSwxNS44OGwwLDBWMTQuNEwyMCw2aDQuNDVMMjcsMTQuNFoiLz4nKSxlLkNsclNoYXBlRXVybz0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgt''@;'; + put 'put ''MSIgZD0iTTMxLjQ4LDI4LjQ5YTEsMSwwLDAsMC0xLjM4LS4zMkExMiwxMiwwLDAsMSwxMi40NSwyMkgyNC4xNmExLDEsMCwwLDAsMC0ySDExLjkzYTExLjE2LDExLjE2LDAsMCwxLDAtNEgyNC4xNmExLDEsMCwwLDAsMC0ySDEyLjQ1QTEyLDEyLDAsMCwxLDMwLjA2LDcuOGExLDEsMCwwLDAs''@;'; + put 'put ''MS4wNi0xLjdBMTQsMTQsMCwwLDAsMTAuMzQsMTRIMy41NGExLDEsMCwxLDAsMCwySDkuOTFhMTQsMTQsMCwwLDAtLjE2LDIsMTQsMTQsMCwwLDAsLjE2LDJIMy41NGExLDEsMCwxLDAsMCwyaDYuOGExNCwxNCwwLDAsMCwyMC44Myw3Ljg3QTEsMSwwLDAsMCwzMS40OCwyOC40OVoiLz5cbiAg''@;'; + put 'put ''ICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJabTcuNDIsMjUuMTZBMTAuODgsMTAuODgsMCwwLDEsOS4yMywyMUg1Ljg0YTEsMSwwLDAsMSwwLTJoM2MwLS4zNS0u''@;'; + put 'put ''MDUtLjcxLS4wNS0xLjA3czAtLjYzLDAtLjkzaC0zYTEsMSwwLDAsMSwwLTJIOS4xOUExMC44NiwxMC44NiwwLDAsMSwyNS4zOCw4LjY5YTEuMjUsMS4yNSwwLDAsMS0xLjMyLDIuMTJBOC4zNiw4LjM2LDAsMCwwLDExLjgyLDE1aDkuMzZhMSwxLDAsMCwxLDAsMkgxMS4zM2E3LjcyLDcuNzIs''@;'; + put 'put ''MCwwLDAsMCwyaDkuODJhMSwxLDAsMCwxLDAsMkgxMS44N2E4LjM2LDguMzYsMCwwLDAsMTIuMjIsNCwxLjI1LDEuMjUsMCwxLDEsMS4zMywyLjEyWiIvPicpLGUuQ2xyU2hhcGVEb2xsYXI9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGlu''@;'; + put 'put ''ZS1wYXRoLTEiIGQ9Ik0yNiwyMS4xNWE2LjkxLDYuOTEsMCwwLDAtNC4zOC0zLjMyQTI2LDI2LDAsMCwwLDE5LDE3LjE5VjguMTJBMTAuMDUsMTAuMDUsMCwwLDEsMjMuODYsMTBhMSwxLDAsMCwwLDEuMzMtMS41QTExLjc1LDExLjc1LDAsMCwwLDE5LDYuMVYzYTEsMSwwLDAsMC0yLDBWNmMt''@;'; + put 'put ''NC40LjEtNi44MywyLjI5LTcuNTcsNC4xOEE1LjU2LDUuNTYsMCwwLDAsMTEuNjYsMTcsMTMuMiwxMy4yLDAsMCwwLDE3LDE4Ljg0VjI4YTEyLjMsMTIuMywwLDAsMS03LjE0LTIuNzRBMSwxLDAsMSwwLDguNDksMjYuNywxNC4wOSwxNC4wOSwwLDAsMCwxNywzMHYzYTEsMSwwLDAsMCwyLDBW''@;'; + put 'put ''MzBjMi44Mi0uMTksNi4wNy0xLjA5LDcuMy00Ljc2QTUuMzMsNS4zMywwLDAsMCwyNiwyMS4xNVpNMTIuNzksMTUuMzJhMy41NywzLjU3LDAsMCwxLTEuNDktNC4zOUMxMS40MSwxMC42MywxMi41Myw4LjEyLDE3LDh2OC44QTEwLjcsMTAuNywwLDAsMSwxMi43OSwxNS4zMlpNMjQuNCwyNC41''@;'; + put 'put ''NmMtLjcyLDIuMTQtMi4zMiwzLjE3LTUuNCwzLjRWMTkuMjNjLjY0LjE0LDEuMy4zLDIsLjUxYTUsNSwwLDAsMSwzLjE5LDIuMzJBMy4zNCwzLjM0LDAsMCwxLDI0LjQsMjQuNTZaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIlxu''@;'; + put 'put ''ICAgICAgICAgICAgICAgIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJabTcuNjUsMjEuNTljLTEsMy0zLjYxLDMuODQtNS45LDR2MmExLjI1LDEuMjUsMCwwLDEtMi41LDBWMjcuNTlBMTEuNDcsMTEuNDcsMCwwLDEsMTEsMjVhMS4yNSwxLjI1LDAsMSwxLDEu''@;'; + put 'put ''NzEtMS44Myw5LjExLDkuMTEsMCwwLDAsNC41NSwxLjk0VjE4LjgzYTkuNjMsOS42MywwLDAsMS0zLjczLTEuNDEsNC44LDQuOCwwLDAsMS0xLjkxLTUuODRjLjU5LTEuNTEsMi40Mi0zLjIzLDUuNjQtMy41MVY2LjI1YTEuMjUsMS4yNSwwLDAsMSwyLjUsMFY4LjExYTkuNjcsOS42NywwLDAs''@;'; + put 'put ''MSw0LjksMkExLjI1LDEuMjUsMCwwLDEsMjMsMTEuOTVhNy4xNCw3LjE0LDAsMCwwLTMuMjQtMS4zMXY2LjEzYy42LjEzLDEuMjQuMjcsMS45MS40OGE1Ljg1LDUuODUsMCwwLDEsMy42OSwyLjgyQTQuNjQsNC42NCwwLDAsMSwyNS42NSwyMy41OVoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNs''@;'; + put 'put ''YXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGQ9Ik0yMC45MiwxOS42NGMtLjQtLjEyLS43OS0uMjItMS4xNy0uM3Y1Ljc2YzItLjIsMy4wNy0uOSwzLjUzLTIuM2EyLjE1LDIuMTUsMCwwLDAtLjE1LTEuNThBMy40OSwzLjQ5LDAsMCwwLDIwLjkyLDE5LjY0WiIvPlxuICAg''@;'; + put 'put ''ICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIgZD0iTTEzLjk0LDEyLjQ4YTIuMzEsMi4zMSwwLDAsMCwxLDIuODcsNi41Myw2LjUzLDAsMCwwLDIuMzIuOTJWMTAuNTVDMTUuMTYsMTAuOCwxNC4xOSwxMS44NCwxMy45NCwxMi40OFoiLz4nKSxl''@;'; + put 'put ''LkNsclNoYXBlQ3JlZGl0Q2FyZD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzIsNkg0QTIsMiwwLDAsMCwyLDhWMjhhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjhBMiwyLDAsMCwwLDMyLDZabTAsMiwwLDEySDRMNCw4Wk00LDI4VjI0SDMydjRaIiBjbGFzcz0iY2xyLWkt''@;'; + put 'put ''b3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjciIHk9IjMiIHdpZHRoPSIyMiIgaGVpZ2h0PSIzMCIgcng9IjAuOTYiIHJ5PSIwLjk2IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzNikgcm90YXRlKDkwKSIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIj''@;'; + put 'put ''MDAwIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjIiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIsNkg0QTIsMiwwLDAsMCwyLDhWMjhhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0y''@;'; + put 'put ''VjhBMiwyLDAsMCwwLDMyLDZabTAsMThINFYyMEgzMloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+JyksZS5DbHJTaGFwZUJhbms9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMuNSwxMy41NiwxOCw1LjIzbDE0LjUsOC4zM2ExLDEsMCwwLDAsMS0xLjcz''@;'; + put 'put ''TDE4LDIuOTIsMi41LDExLjgzYTEsMSwwLDEsMCwxLDEuNzNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTQsMjZhMSwxLDAsMCwwLDEsMUgzMWExLDEsMCwwLDAsMC0ySDI4VjE3LjYzSDI2VjI1SDE5VjE3LjYz''@;'; + put 'put ''SDE3VjI1SDEwVjE3LjYzSDhWMjVINUExLDEsMCwwLDAsNCwyNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSI1LjAyIiB5PSIxNCIgd2lkdGg9IjI2IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNs''@;'; + put 'put ''ci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMsMjlIM2ExLDEsMCwwLDAsMCwySDMzYTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIyLjE1LDExLjU4''@;'; + put 'put ''aDMuMjFMMTguNjUsNy43MmEuOC44LDAsMCwwLS44LDBsLTYuNzIsMy44NmgzLjIxbDMuOS0yLjI0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik00LDI2YTEsMSwwLDAsMCwxLDFIMzFhMSwxLDAsMCwwLDAtMkgy''@;'; + put 'put ''OFYxNy42M0gyNlYyNUgxOVYxNy42M0gxN1YyNUgxMFYxNy42M0g4VjI1SDVBMSwxLDAsMCwwLDQsMjZaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjUuMDIiIHk9IjE0IiB3aWR0aD0i''@;'; + put 'put ''MjYiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMsMjlIM2ExLDEsMCwwLDAsMCwySDMzYTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFk''@;'; + put 'put ''Z2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMi4xNSwxMS41OGgzLjIxTDE4LjY1LDcuNzJhLjguOCwwLDAsMC0uOCwwbC02LjcyLDMuODZoMy4yMWwzLjktMi4yNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWkt''@;'; + put 'put ''b3V0bGluZS1wYXRoLTMtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIyLjUsNmMwLS4xNiwwLS4zMiwwLS40OEwxOCwyLjkyLDIuNSwxMS44M2ExLDEsMCwxLDAsMSwxLjczTDE4LDUuMjMsMjIuNzcsOEE3LjQ5LDcuNDksMCwwLDEsMjIuNSw2WiIgY2xhc3M9ImNsci1pLW91''@;'; + put 'put ''dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzEuOTQsMTMuMjRsLjU2LjMyYTEsMSwwLDAsMCwxLjQ0LTEuMTlBNy40NSw3LjQ1LDAsMCwxLDMxLjk0LDEzLjI0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdl''@;'; + put 'put ''ZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTYtLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAgICAgPHBh''@;'; + put 'put ''dGggZD0iTTQsMjZhMSwxLDAsMCwwLDEsMUgzMWExLDEsMCwwLDAsMC0ySDI4VjE3LjYzSDI2VjI1SDE5VjE3LjYzSDE3VjI1SDEwVjE3LjYzSDhWMjVINUExLDEsMCwwLDAsNCwyNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVk''@;'; + put 'put ''Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMsMjlIM2ExLDEsMCwwLDAsMCwySDMzYTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIyLjUsMTVBMy41''@;'; + put 'put ''MSwzLjUxLDAsMCwxLDIwLDE0SDV2MkgzMVYxNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTkuNDYsOS43NGwuNjgtMS4xNy0xLjQ5LS44NWEuOC44LDAsMCwwLS44LDBsLTYu''@;'; + put 'put ''NzIsMy44NmgzLjIxbDMuOS0yLjI0LDEuMS42M0MxOS4zOSw5Ljg5LDE5LjQyLDkuODEsMTkuNDYsOS43NFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIuMDUsNS4yNSwxOCwy''@;'; + put 'put ''LjkyLDIuNSwxMS44M2ExLDEsMCwxLDAsMSwxLjczTDE4LDUuMjMsMjEuMDUsN1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC01LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgs''@;'; + put 'put ''MCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNi0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAg''@;'; + put 'put ''ICAgICAgICAgPHBhdGggZD0iTTMuNSwxMy41Niw1LDEyLjY4VjE2SDMxVjEyLjcxbDEuNDguODVhMSwxLDAsMCwwLDEtMS43M0wxOCwyLjkyLDIuNSwxMS44M2ExLDEsMCwxLDAsMSwxLjczWk0xNy44NSw3LjExYS44LjgsMCwwLDEsLjgsMEwyNS4zNywxMUgyMi4xNWwtMy45LTIuMjRMMTQu''@;'; + put 'put ''MzUsMTFIMTEuMTRaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIuODUsMjdIMzJ2LS44NUExLjE1LDEuMTUsMCwwLDAsMzAuODUsMjVIMjhWMTcuNjNIMjRWMjVIMjBWMTcuNjNIMTZWMjVIMTJWMTcuNjNIOFYyNUg1''@;'; + put 'put ''LjE1QTEuMTUsMS4xNSwwLDAsMCw0LDI2LjE1VjI3SDMuMTVBMS4xNSwxLjE1LDAsMCwwLDIsMjguMTVWMzFIMzRWMjguMTVBMS4xNSwxLjE1LDAsMCwwLDMyLjg1LDI3WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMy''@;'; + put 'put ''Ljg1LDI3SDMydi0uODVBMS4xNSwxLjE1LDAsMCwwLDMwLjg1LDI1SDI4VjE3LjYzSDI0VjI1SDIwVjE3LjYzSDE2VjI1SDEyVjE3LjYzSDhWMjVINS4xNUExLjE1LDEuMTUsMCwwLDAsNCwyNi4xNVYyN0gzLjE1QTEuMTUsMS4xNSwwLDAsMCwyLDI4LjE1VjMxSDM0VjI4LjE1QTEuMTUsMS4x''@;'; + put 'put ''NSwwLDAsMCwzMi44NSwyN1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAsMTMuNUE3LjQ3LDcuNDcsMCwwLDEsMjQuMzksMTFIMjIuMTVsLTMuOS0yLjI0TDE0LjM1LDExSDExLjE0bDYu''@;'; + put 'put ''NzItMy44NmEuOC44LDAsMCwxLC44LDBsNSwyLjg3QTcuNDUsNy40NSwwLDAsMSwyMi41LDZjMC0uMTYsMC0uMzIsMC0uNDhMMTgsMi45MiwyLjUsMTEuODNhMSwxLDAsMSwwLDEsMS43M0w1LDEyLjY4VjE2SDMxVjEzLjQyQTcuNTMsNy41MywwLDAsMSwzMCwxMy41WiIgY2xhc3M9ImNsci1p''@;'; + put 'put ''LXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMS45NCwxMy4yNGwuNTYuMzJhMSwxLDAsMCwwLDEuNDQtMS4xOUE3LjQ1LDcuNDUsMCwwLDEsMzEuOTQsMTMuMjRaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBj''@;'; + put 'put ''bHItaS1zb2xpZC1wYXRoLTMtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC00LS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0z''@;'; + put 'put ''Mi44NSwyN0gzMnYtLjg1QTEuMTUsMS4xNSwwLDAsMCwzMC44NSwyNUgyOFYxNy42M0gyNFYyNUgyMFYxNy42M0gxNlYyNUgxMlYxNy42M0g4VjI1SDUuMTVBMS4xNSwxLjE1LDAsMCwwLDQsMjYuMTVWMjdIMy4xNUExLjE1LDEuMTUsMCwwLDAsMiwyOC4xNVYzMUgzNFYyOC4xNUExLjE1LDEu''@;'; + put 'put ''MTUsMCwwLDAsMzIuODUsMjdaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIuNSwxNWEzLjUxLDMuNTEsMCwwLDEtMy01LjI2bC4xNC0uMjQtMS4zNS0uNzhMMTQuMzUsMTFIMTEuMTRs''@;'; + put 'put ''Ni43Mi0zLjg2YS44LjgsMCwwLDEsLjgsMGwxLjc1LDEsMS42NS0yLjg2TDE4LDIuOTIsMi41LDExLjgzYTEsMSwwLDEsMCwxLDEuNzNMNSwxMi42OFYxNkgzMVYxNVoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQiLz5cbiAgICAgICAg''@;'; + put 'put ''ICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1z''@;'; + put 'put ''b2xpZC1wYXRoLTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz4nKSxlLkNsclNoYXBlRG9sbGFyQmlsbD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMyLDhINGEyLDIsMCwwLDAtMiwyVjI2YTIsMiwwLDAsMCwy''@;'; + put 'put ''LDJIMzJhMiwyLDAsMCwwLDItMlYxMEEyLDIsMCwwLDAsMzIsOFptMCw2YTQuMjUsNC4yNSwwLDAsMS0zLjktNEgzMlptMCwxLjYydjQuODNBNS44Nyw1Ljg3LDAsMCwwLDI2LjQ5LDI2aC0xN0E1Ljg3LDUuODcsMCwwLDAsNCwyMC40NFYxNS42QTUuODcsNS44NywwLDAsMCw5LjUxLDEwaDE3''@;'; + put 'put ''QTUuODcsNS44NywwLDAsMCwzMiwxNS42Wk03LjksMTBBNC4yNSw0LjI1LDAsMCwxLDQsMTRWMTBaTTQsMjIuMDZBNC4yNSw0LjI1LDAsMCwxLDcuOSwyNkg0Wk0yOC4xLDI2QTQuMjUsNC4yNSwwLDAsMSwzMiwyMi4wNlYyNloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1v''@;'; + put 'put ''dXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMTgsMTAuODVjLTMuNDcsMC02LjMsMy4yMS02LjMsNy4xNXMyLjgzLDcuMTUsNi4zLDcuMTUsNi4zLTMuMjEsNi4zLTcuMTVTMjEuNDcsMTAuODUsMTgsMTAuODVabTAsMTIuNjljLTIuNTksMC00LjctMi40OS00LjctNS41NXMyLjEx''@;'; + put 'put ''LTUuNTUsNC43LTUuNTUsNC43LDIuNDksNC43LDUuNTVTMjAuNTksMjMuNTUsMTgsMjMuNTVaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzIsOEg0YTIsMiwwLDAsMC0yLDJWMjZhMiwyLDAsMCwwLDIsMkgzMmEyLDIs''@;'; + put 'put ''MCwwLDAsMi0yVjEwQTIsMiwwLDAsMCwzMiw4Wk00LDI2VjIxLjE1QTUuMTgsNS4xOCwwLDAsMSw4Ljc5LDI2Wk00LDE0Ljg1VjEwSDguNzlBNS4xOCw1LjE4LDAsMCwxLDQsMTQuODVaTTE4LDI1LjE1Yy0zLjQ3LDAtNi4zLTMuMjEtNi4zLTcuMTVzMi44My03LjE1LDYuMy03LjE1LDYuMywz''@;'; + put 'put ''LjIxLDYuMyw3LjE1UzIxLjQ3LDI1LjE1LDE4LDI1LjE1Wk0zMiwyNkgyNy4yNUE1LjE4LDUuMTgsMCwwLDEsMzIsMjEuMTVabTAtMTEuMTVBNS4xOCw1LjE4LDAsMCwxLDI3LjI1LDEwSDMyWiIvPlxuICAgICAgICAgICAgPGVsbGlwc2UgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlk''@;'; + put 'put ''LXBhdGgtMiIgY3g9IjE4IiBjeT0iMTgiIHJ4PSI0IiByeT0iNC43MiIvPicpLGUuQ2xyU2hhcGVFQ2hlY2s9KDAsYS5jbHJJY29uU1ZHKSgnPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIHg9IjE2IiB5PSIxNiIgd2lkdGg9IjE1IiBoZWlnaHQ9IjIi''@;'; + put 'put ''Lz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiB4PSIyMCIgeT0iMjEiIHdpZHRoPSIxMSIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIg''@;'; + put 'put ''ZD0iTTM0LDhIMTIuOTNhOC4zNSw4LjM1LDAsMCwxLC43OSwySDMzVjI2SDNWMTkuOWE3LjgzLDcuODMsMCwwLDEtMi0xLjM0VjI3YTEsMSwwLDAsMCwxLDFIMzRhMSwxLDAsMCwwLDEtMVY5QTEsMSwwLDAsMCwzNCw4WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxp''@;'; + put 'put ''bmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIGQ9Ik02LjU3LDE4LjY4YTYuMTcsNi4xNywwLDAsMCw0LjMyLTEuNTksMS4yLDEuMiwwLDAsMCwuMzYtLjg0LDEuMDgsMS4wOCwwLDAsMC0xLjA5LTEuMTEsMSwxLDAsMCwwLS43MS4yNSw0LjMyLDQuMzIsMCwwLDEtMi44NCwxLDMuMzUsMy4zNSww''@;'; + put 'put ''LDAsMS0zLjQ2LTNoNy41M0ExLjI5LDEuMjksMCwwLDAsMTIsMTIuMDYsNS42OCw1LjY4LDAsMCwwLDYuMjcsNi4xNCw2LDYsMCwwLDAsLjQsMTIuNHYwQTYsNiwwLDAsMCw2LjU3LDE4LjY4Wk02LjI1LDguMzljMS44MiwwLDIuODcsMS4zOSwzLDMuMTZIMy4xM0MzLjM4LDkuNjksNC41Niw4''@;'; + put 'put ''LjM5LDYuMjUsOC4zOVoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zNCw4SDEyLjkxYTguNjEsOC42MSwwLDAsMSwxLjIsNC4zOSw4LDgsMCwwLDEtNy43OCw4LjI3QTcuNTEsNy41MSwwLDAsMSwxLDE4LjQxVjI3YTEs''@;'; + put 'put ''MSwwLDAsMCwxLDFIMzRhMSwxLDAsMCwwLDEtMVY5QTEsMSwwLDAsMCwzNCw4Wk0zMSwyM0gyMFYyMUgzMVptMC01SDE2VjE2SDMxWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgZD0iTTYuNTcsMTguNjhBNiw2LDAsMCwxLC40''@;'; + put 'put ''LDEyLjQ0djBBNiw2LDAsMCwxLDYuMjcsNi4xNCw1LjY4LDUuNjgsMCwwLDEsMTIsMTIuMDZhMS4yOSwxLjI5LDAsMCwxLTEuMywxLjMySDMuMTVhMy4zNSwzLjM1LDAsMCwwLDMuNDYsMyw0LjMyLDQuMzIsMCwwLDAsMi44NC0xLDEsMSwwLDAsMSwuNzEtLjI1LDEuMDgsMS4wOCwwLDAsMSwx''@;'; + put 'put ''LjA5LDEuMTEsMS4yLDEuMiwwLDAsMS0uMzYuODRBNi4xNyw2LjE3LDAsMCwxLDYuNTcsMTguNjhaTTkuMywxMS41NWMtLjE4LTEuNzctMS4yMy0zLjE2LTMtMy4xNnMtMi44NywxLjMtMy4xMiwzLjE2WiIvPicpLGUuQ2xyU2hhcGVQb3VuZD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFz''@;'; + put 'put ''cz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTI3LjksMzBIMTMuNEE4LjQ1LDguNDUsMCwwLDAsMTUsMjQuNjVWMjFoNC4zMWExLDEsMCwwLDAsMC0ySDE1VjExLjMxQTUuMjQsNS4yNCwwLDAsMSwyMC4yMSw2LDUuMTksNS4xOSwwLDAsMSwyNCw3LjczYTEsMSww''@;'; + put 'put ''LDAsMCwxLjQ4LTEuMzVBNy4xOSw3LjE5LDAsMCwwLDEzLDExLjMxVjE5SDguNzJhMSwxLDAsMSwwLDAsMkgxM3YzLjY1QzEzLDI5LjM4LDEwLjEyLDMwLDEwLDMwYTEsMSwwLDAsMCwuMTcsMkgyNy45YTEsMSwwLDEsMCwwLTJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWkt''@;'; + put 'put ''c29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMTgsMkExNiwxNiwwLDEsMCwzNCwxOCwxNiwxNiwwLDAsMCwxOCwyWm02LjUsMjUuOTJIMTEuNzRhMS4yNSwxLjI1LDAsMCwxLS4yMi0yLjQ4Yy4xNSwwLDEuNzItLjQ5LDEuNzItMy41NFYxOWgtMi41YTEsMSwwLDAsMSwwLTJoMi41VjEx''@;'; + put 'put ''Ljg4YTUuODUsNS44NSwwLDAsMSw1LjcyLTYsNS42Myw1LjYzLDAsMCwxLDQuMjEsMS45NEExLjI1LDEuMjUsMCwxLDEsMjEuMyw5LjUxLDMuMDgsMy4wOCwwLDAsMCwxOSw4LjQyYTMuMzUsMy4zNSwwLDAsMC0zLjIyLDMuNDZWMTdoM2ExLDEsMCwwLDEsMCwyaC0zdjIuOUE3LjY1LDcuNjUs''@;'; + put 'put ''MCwwLDEsMTUsMjUuNDJIMjQuNWExLjI1LDEuMjUsMCwwLDEsMCwyLjVaIi8+JyksZS5DbHJTaGFwZVJ1cGVlPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMjgsOEgyNC4xNEE3LjUyLDcuNTIsMCwwLDAsMjIu''@;'; + put 'put ''Niw2SDI4YTEsMSwwLDAsMCwwLTJIMTBhMSwxLDAsMCwwLDAsMmg3LjU1YTUuNDIsNS40MiwwLDAsMSw0LjIsMkgxMGExLDEsMCwwLDAsMCwySDIyLjc5QTUuNTQsNS41NCwwLDAsMSwyMywxMS41MSw1LjQ4LDUuNDgsMCwwLDEsMTcuNTUsMTdIMTEuMTRhMSwxLDAsMCwwLS43NSwxLjY2TDIy''@;'; + put 'put ''LjA2LDMyYTEsMSwwLDEsMCwxLjUtMS4zMkwxMy4zNSwxOWg0LjIxYTcuNTEsNy41MSwwLDAsMCw3LjMtOUgyOGExLDEsMCwwLDAsMC0yWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQs''@;'; + put 'put ''MTgsMTYsMTYsMCwwLDAsMTgsMlptNS44OCw5SDI2YTEsMSwwLDAsMSwwLDJIMjQuMjZjMCwuMDYsMCwuMTIsMCwuMTlhNi4wOSw2LjA5LDAsMCwxLTYsNi4yaC0ybDYuODIsOC4wNmExLjI1LDEuMjUsMCwwLDEtMS45MSwxLjYyTDEyLjYzLDE4Ljk0YTEuMjUsMS4yNSwwLDAsMSwxLTIuMDZo''@;'; + put 'put ''NC43MWEzLjU5LDMuNTksMCwwLDAsMy40OC0zLjY5YzAtLjA3LDAtLjEzLDAtLjJoLTlhMSwxLDAsMCwxLDAtMmg4LjMyYTMuNDEsMy40MSwwLDAsMC0yLjc4LTEuNUgxMi43NWExLjI1LDEuMjUsMCwwLDEsMC0yLjVIMjZhMSwxLDAsMCwxLDAsMkgyMi42OEE2LjIzLDYuMjMsMCwwLDEsMjMu''@;'; + put 'put ''ODgsMTFaIi8+JyksZS5DbHJTaGFwZVdvbj0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMzLDE4SDI4Ljc1bC41LTJIMzNhMSwxLDAsMCwwLDAtMkgyOS43NGwyLjE3LTguNzZBMSwxLDAsMCwwLDMwLDQuNzZM''@;'; + put 'put ''MjcuNjgsMTRIMjEuMzFMMTksNC43NmExLDEsMCwwLDAtMS45NCwwTDE0Ljc5LDE0SDguNDJMNi4xMyw0Ljc2YTEsMSwwLDAsMC0xLjk0LjQ4TDYuMzYsMTRIM2ExLDEsMCwwLDAsMCwySDYuODVsLjUsMkgzYTEsMSwwLDAsMCwwLDJINy44NGwyLjc5LDExLjI0YTEsMSwwLDAsMCwxLjk0LDBM''@;'; + put 'put ''MTUuMzYsMjBoNS4zOGwyLjc5LDExLjI0YTEsMSwwLDAsMCwxLjk0LDBMMjguMjUsMjBIMzNhMSwxLDAsMCwwLDAtMlptLTUuODItMi0uNSwySDIyLjNsLS41LTJaTTE4LDkuMTYsMTkuMjUsMTRoLTIuNFpNOC45MSwxNmg1LjM4bC0uNSwySDkuNDFaTTExLjYsMjYuODQsOS45MSwyMEgxMy4z''@;'; + put 'put ''Wk0xNS44NSwxOGwuNS0yaDMuMzlsLjUsMlptOC42NCw4Ljg0TDIyLjgsMjBoMy4zOVoiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIHBvaW50cz0iMTcuNzQgMTYgMTcuMjIgMTggMTguODUgMTggMTguMzIgMTYgMTcuNzQg''@;'; + put 'put ''MTYiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIHBvaW50cz0iMTEuOTQgMTggMTQuNjMgMTggMTUuMTYgMTYgMTEuNDEgMTYgMTEuOTQgMTgiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIGNsYXNzPSJjbHItaS1zb2xpZCBj''@;'; + put 'put ''bHItaS1zb2xpZC1wYXRoLTMiIHBvaW50cz0iMTMuMjkgMjMuMSAxNC4xIDIwIDEyLjQ3IDIwIDEzLjI5IDIzLjEiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTQiIHBvaW50cz0iMjEuNDQgMTggMjQuMTMgMTggMjQuNjYgMTYg''@;'; + put 'put ''MjAuOTEgMTYgMjEuNDQgMTgiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTUiIHBvaW50cz0iMjIuNzggMjMuMSAyMy42IDIwIDIxLjk3IDIwIDIyLjc4IDIzLjEiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1z''@;'; + put 'put ''b2xpZCBjbHItaS1zb2xpZC1wYXRoLTYiIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJaTTI5LDIwSDI2LjE5TDI0LDI4LjMyYTEuMjUsMS4yNSwwLDAsMS0yLjQyLDBMMTkuMzgsMjBIMTYuNjlsLTIuMTksOC4zMmExLjI1LDEuMjUsMCwwLDEtMi40MiwwTDku''@;'; + put 'put ''ODgsMjBIN2ExLDEsMCwwLDEsMC0ySDkuMzVsLS41My0ySDdhMSwxLDAsMCwxLDAtMkg4LjNsLTEtMy42OGExLjI1LDEuMjUsMCwwLDEsMi40Mi0uNjRMMTAuODgsMTRoNC44bDEuMTQtNC4zMmExLjI1LDEuMjUsMCwwLDEsMi40MiwwTDIwLjM4LDE0aDQuOGwxLjE0LTQuMzJhMS4yNSwxLjI1''@;'; + put 'put ''LDAsMCwxLDIuNDIuNjRsLTEsMy42OEgyOWExLDEsMCwwLDEsMCwySDI3LjI0bC0uNTMsMkgyOWExLDEsMCwwLDEsMCwyWiIvPicpLGUuQ2xyU2hhcGVZZW49KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0yOS4z''@;'; + put 'put ''NCw0LjU1YTEsMSwwLDEsMC0xLjY3LTEuMUwxOCwxOC4yMyw4LjMzLDMuNDVhMSwxLDAsMCwwLTEuNjcsMS4xTDE3LDIwLjM1VjIyLjJIMTJhLjguOCwwLDAsMCwwLDEuNmg1djIuNEgxMmEuOC44LDAsMCwwLDAsMS42aDVWMzJhMSwxLDAsMCwwLDIsMFYyNy44aDVhLjguOCwwLDAsMCwwLTEu''@;'; + put 'put ''NkgxOVYyMy44aDVhLjguOCwwLDAsMCwwLTEuNkgxOVYyMC4zNVoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJabTguMDcsNy45MUwxOS43NCwyMEgy''@;'; + put 'put ''MmExLDEsMCwwLDEsMCwySDE5LjI1djJIMjJhMSwxLDAsMCwxLDAsMkgxOS4yNXYyLjc1YTEuMjUsMS4yNSwwLDAsMS0yLjUsMFYyNkgxNGExLDEsMCwxLDEsMC0yaDIuNzVWMjJIMTRhMSwxLDAsMSwxLDAtMmgyLjI2TDkuOTMsOS45MWExLjI1LDEuMjUsMCwxLDEsMi4xMi0xLjMzTDE4LDE4''@;'; + put 'put ''LjA4bDUuOTUtOS40OWExLjI1LDEuMjUsMCwxLDEsMi4xMiwxLjMzWiIvPicpLGUuQ2xyU2hhcGVCaXRjb2luPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yNC4xMSwxNi44OEE1LjQ5LDUuNDksMCwwLDAsMjEsN1Y0YTEsMSwwLDAsMC0yLDBWN0gxNlY0YTEsMSwwLDAsMC0yLDBWN0gx''@;'; + put 'put ''MWExLDEsMCwwLDAtMSwxVjI4YTEsMSwwLDAsMCwxLDFoM3YzYTEsMSwwLDAsMCwyLDBWMjloM3YzYTEsMSwwLDAsMCwyLDBWMjloLjA4QTYuMDcsNi4wNywwLDAsMCwyNywyMi44MXYtLjYyQTYuMjUsNi4yNSwwLDAsMCwyNC4xMSwxNi44OFpNMTIsOWg4LjY5YTMuNTksMy41OSwwLDAsMSwz''@;'; + put 'put ''LjQzLDIuMzZBMy41MSwzLjUxLDAsMCwxLDIwLjc5LDE2SDEyWk0yNSwyMi44MUE0LjA4LDQuMDgsMCwwLDEsMjEuMDYsMjdIMTJWMThoOS4wNkE0LjA4LDQuMDgsMCwwLDEsMjUsMjIuMTlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAg''@;'; + put 'put ''ICAgIDxwYXRoIGQ9Ik0yMS4xOCwxOC40N0gxNC41djZoNi42OGEyLjcsMi43LDAsMCwwLDIuNjMtMi43N3YtLjQ4QTIuNzEsMi43MSwwLDAsMCwyMS4xOCwxOC40N1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjMs''@;'; + put 'put ''MTMuNzVhMi4yNCwyLjI0LDAsMCwwLTIuMjMtMi4yNUgxNC41VjE2aDYuM0EyLjIyLDIuMjIsMCwwLDAsMjMsMTMuNzVaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYs''@;'; + put 'put ''MCwwLDAsMTgsMlptOC4zMSwxOS43M0E1LjIyLDUuMjIsMCwwLDEsMjEuMTgsMjdIMjF2MS45YTEsMSwwLDAsMS0yLDBWMjdIMTd2MS45YTEsMSwwLDAsMS0yLDBWMjdIMTMuMjVBMS4yNSwxLjI1LDAsMCwxLDEyLDI1Ljc1VjE3LjIzaDB2LTdBMS4yNSwxLjI1LDAsMCwxLDEzLjI1LDlIMTVW''@;'; + put 'put ''Ny4wN2ExLDEsMCwwLDEsMiwwVjloMlY3LjA3YTEsMSwwLDAsMSwyLDBWOWE0LjcyLDQuNzIsMCwwLDEsMy4yLDgsNS4zMSw1LjMxLDAsMCwxLDIuMTEsNC4yNFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIC8+JyksZS5DbHJTaGFwZUNvaW5CYWc9KDAsYS5jbHJJ''@;'; + put 'put ''Y29uU1ZHKSgnPHBhdGggZD0iTTIxLjYsMjlhMSwxLDAsMCwwLTEtMWgtNmExLDEsMCwwLDAsMCwyaDZBMSwxLDAsMCwwLDIxLjYsMjlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMjIuNTQsMjRoLTZhMSwxLDAsMCwwLDAsMmg2YTEs''@;'; + put 'put ''MSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMjIsMzJIMTZhMSwxLDAsMCwwLDAsMmg2YTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz48cGF0aCBkPSJN''@;'; + put 'put ''MzIuNywzMmgtN2ExLDEsMCwwLDAsMCwyaDdhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPjxwYXRoIGQ9Ik0zMy43LDI4aC03YTEsMSwwLDAsMCwwLDJoN2ExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xy''@;'; + put 'put ''LWktb3V0bGluZS1wYXRoLTUiIC8+PHBhdGggZD0iTTMzLjc0LDI2YTI4LDI4LDAsMCwwLTIuODItMTAuMTJBMjAuMjQsMjAuMjQsMCwwLDAsMjQuNiw4LjcxTDI3LDMuNDJhMSwxLDAsMCwwLS4wNy0xQTEsMSwwLDAsMCwyNi4xMywySDkuOGExLDEsMCwwLDAtLjkxLDEuNDJsMi40NSw1LjMx''@;'; + put 'put ''YTIwLjMzLDIwLjMzLDAsMCwwLTYuMjgsNy4xNWMtMi4xNSw0LTIuODIsOC44OS0zLDEyLjI4YTMuNiwzLjYsMCwwLDAsMSwyLjcxQTMuNzksMy43OSwwLDAsMCw1LjgsMzEuOTRIMTJWMzBINS43MmExLjY4LDEuNjgsMCwwLDEtMS4yMS0uNTIsMS42MiwxLjYyLDAsMCwxLS40NS0xLjIzYy4x''@;'; + put 'put ''NC0yLjYxLjY5LTcuNTgsMi43Ni0xMS40NUExOCwxOCwwLDAsMSwxMy4wOCwxMGgxYTMwLjgxLDMwLjgxLDAsMCwwLTEuODcsMi45MiwyMi43OCwyMi43OCwwLDAsMC0xLjQ3LDMuMzRsMS4zNy45MmEyNCwyNCwwLDAsMSwxLjQ5LTMuNDdBMjkuMSwyOS4xLDAsMCwxLDE2LjA1LDEwaDFhMjEu''@;'; + put 'put ''NDUsMjEuNDUsMCwwLDEsMS40MSw1LDIyLjU0LDIyLjU0LDAsMCwxLC4zMiwzLjg2bDEuNTgtMS4xMWEyNC4xNSwyNC4xNSwwLDAsMC0uMzItM0EyNC44MiwyNC44MiwwLDAsMCwxOC43NiwxMGguNzhsLjkxLTJIMTMuMjFMMTEuMzYsNEgyNC41N2wtMi41LDUuNDdhOS45Myw5LjkzLDAsMCwx''@;'; + put 'put ''LDEuMjMuNzgsMTguNjMsMTguNjMsMCwwLDEsNS44Niw2LjU3QTI2LjU5LDI2LjU5LDAsMCwxLDMxLjczLDI2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIC8+XG4gICAgPHBhdGggZD0iTTI0Ljg5LDI2aDcuODZjLS42Ni04LjcxLTQuNDEtMTQuMTItOS4y''@;'; + put 'put ''Mi0xNy4zMkwyNS43MiwzLjlhMSwxLDAsMCwwLS45MS0xLjRIMTEuMWExLDEsMCwwLDAtLjkxLDEuNGwxLjIsMi42SDIxLjUxbC0uOSwySDE4Ljc2QTI0LjksMjQuOSwwLDAsMSwyMCwxMy4xOWEyNC40OSwyNC40OSwwLDAsMSwuMzIsM2wtMS41OCwxLjExYTIyLjU0LDIyLjU0LDAsMCwwLS4z''@;'; + put 'put ''Mi0zLjg2QTIxLjc0LDIxLjc0LDAsMCwwLDE3LDguNWgtMWEyOC4yMiwyOC4yMiwwLDAsMC0yLjQ4LDMuNywyMy45MSwyMy45MSwwLDAsMC0xLjQ5LDMuNDZsLTEuMzctLjkxYTIyLjc4LDIyLjc4LDAsMCwxLDEuNDctMy4zNEEzMC44MSwzMC44MSwwLDAsMSwxNC4wNSw4LjVIMTIuM2wuMDgu''@;'; + put 'put ''MTdDNy4wOCwxMi4yLDMuMDUsMTguNCwzLjA1LDI4Ljc1QTEuNjUsMS42NSwwLDAsMCw0LjYxLDMwLjVoOEEyLjY3LDIuNjcsMCwwLDEsMTQuMjEsMjZhMi42NywyLjY3LDAsMCwxLS4zNy0xLjM0LDIuNywyLjcsMCwwLDEsMi43LTIuN2g2YTIuNywyLjcsMCwwLDEsMi43LDIuN0EyLjYzLDIu''@;'; + put 'put ''NjMsMCwwLDEsMjQuODksMjZaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0yMS42LDI4LjVhMSwxLDAsMCwwLTEtMWgtNmExLDEsMCwwLDAsMCwyaDZBMSwxLDAsMCwwLDIxLjYsMjguNVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xp''@;'; + put 'put ''ZC1wYXRoLTIiIC8+PHBhdGggZD0iTTIyLjU0LDIzLjVoLTZhMSwxLDAsMCwwLDAsMmg2YTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0yMiwzMS41SDE2YTEsMSwwLDAsMCwwLDJoNmExLDEsMCwwLDAsMC0yWiIgY2xh''@;'; + put 'put ''c3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNCIgLz48cGF0aCBkPSJNMzIuNywzMS41aC03YTEsMSwwLDAsMCwwLDJoN2ExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNSIgLz48cGF0aCBkPSJNMzMuNywyNy41aC03YTEsMSwwLDAs''@;'; + put 'put ''MCwwLDJoN2ExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNiIgLz4nKSxlLkNsclNoYXBlUGVzbz0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzEsMTMuMkgyNy44OUE2LjgxLDYuODEsMCwwLDAsMjgsMTJhNy44NSw3Ljg1LDAsMCwwLS4x''@;'; + put 'put ''LTEuMTloMi45M2EuOC44LDAsMCwwLDAtMS42SDI3LjQ2QTguNDQsOC40NCwwLDAsMCwxOS41Nyw0SDExYTEsMSwwLDAsMC0xLDFWOS4ySDdhLjguOCwwLDAsMCwwLDEuNmgzdjIuNEg3YS44LjgsMCwwLDAsMCwxLjZoM1YzMWExLDEsMCwwLDAsMiwwVjIwaDcuNTdhOC40NSw4LjQ1LDAsMCww''@;'; + put 'put ''LDcuODktNS4ySDMxYS44LjgsMCwwLDAsMC0xLjZaTTEyLDZoNy41N2E2LjUxLDYuNTEsMCwwLDEsNS42OCwzLjJIMTJabTAsNC44SDI1Ljg3YTUuNiw1LjYsMCwwLDEsMCwyLjRIMTJaTTE5LjU3LDE4SDEyVjE0LjhIMjUuMjVBNi41MSw2LjUxLDAsMCwxLDE5LjU3LDE4WiIgY2xhc3M9ImNs''@;'; + put 'put ''ci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTE0LjE4LDEzLjhWMTZoOS40NWE1LjI2LDUuMjYsMCwwLDAsLjA4LS44OSw0LjcyLDQuNzIsMCwwLDAtLjItMS4zMVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+PHBhdGggZD0i''@;'; + put 'put ''TTE0LjE4LDE5LjdoNS4xOWE0LjI4LDQuMjgsMCwwLDAsMy41LTEuOUgxNC4xOFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+PHBhdGggZD0iTTE5LjM3LDEwLjUxSDE0LjE4VjEyaDguMzdBNC4yMSw0LjIxLDAsMCwwLDE5LjM3LDEwLjUxWiIgY2xhc3M9ImNs''@;'; + put 'put ''ci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIgLz48cGF0aCBkPSJNMTcuNjcsMmExNiwxNiwwLDEsMCwxNiwxNkExNiwxNiwwLDAsMCwxNy42NywyWm0xMC41LDE1LjhIMjUuN2E2Ljg3LDYuODcsMCwwLDEtNi4zMyw0LjRIMTQuMTh2Ni41NGExLjI1LDEuMjUsMCwxLDEtMi41LDBWMTcu''@;'; + put 'put ''OEg4Ljc2YS45LjksMCwxLDEsMC0xLjhoMi45MlYxMy44SDguNzZhLjkuOSwwLDEsMSwwLTEuOGgyLjkyVjkuMjZBMS4yNSwxLjI1LDAsMCwxLDEyLjkzLDhoNi40NGE2Ljg0LDYuODQsMCwwLDEsNi4xNSw0aDIuNjVhLjkuOSwwLDAsMSwwLDEuOEgyNi4wOWE2LjkxLDYuOTEsMCwwLDEsLjEy''@;'; + put 'put ''LDEuMyw2LjgsNi44LDAsMCwxLS4wNi45aDJhLjkuOSwwLDAsMSwwLDEuOFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTQiIC8+JyksZS5DbHJTaGFwZVJ1YmxlPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yMC41NywyMEE4LjIzLDguMjMsMCwwLDAsMjksMTJh''@;'; + put 'put ''OC4yMyw4LjIzLDAsMCwwLTguNDMtOEgxMmExLDEsMCwwLDAtMSwxVjE4SDlhMSwxLDAsMCwwLDAsMmgydjJIOWExLDEsMCwwLDAsMCwyaDJ2N2ExLDEsMCwwLDAsMiwwVjI0aDlhMSwxLDAsMCwwLDAtMkgxM1YyMFpNMTMsNmg3LjU3QTYuMjQsNi4yNCwwLDAsMSwyNywxMmE2LjIzLDYuMjMs''@;'; + put 'put ''MCwwLDEtNi40Myw2SDEzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTIwLjc1LDkuMjVIMTV2OC44MWg1Ljc5YTQuNjYsNC42NiwwLDAsMCw0Ljg2LTQuNEE0LjY1LDQuNjUsMCwwLDAsMjAuNzUsOS4yNVoiIGNsYXNzPSJjbHItaS1z''@;'; + put 'put ''b2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+PHBhdGggZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlptMi43NSwxOC41NkgxNVYyMmg4LjI5YTEsMSwwLDAsMSwwLDJIMTV2NWExLjI1LDEuMjUsMCwwLDEtMi41LDBWMjRIMTEuMjVhMSwxLDAsMCwxLDAtMmgx''@;'; + put 'put ''LjIxVjIwLjU2SDExLjI1YTEuMjUsMS4yNSwwLDAsMSwwLTIuNWgxLjIxVjhhMS4yNSwxLjI1LDAsMCwxLDEuMjUtMS4yNWg3YTcuMTQsNy4xNCwwLDAsMSw3LjM2LDYuOUE3LjE1LDcuMTUsMCwwLDEsMjAuNzUsMjAuNTZaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0y''@;'; + put 'put ''IiAvPicpLGUuQ2xyU2hhcGVFbXBsb3llZUdyb3VwPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xOC40MiwxNi4zMWE1LjcsNS43LDAsMSwxLDUuNzYtNS43QTUuNzQsNS43NCwwLDAsMSwxOC40MiwxNi4zMVptMC05LjRhMy43LDMuNywwLDEsMCwzLjc2LDMuN0EzLjc0LDMuNzQsMCww''@;'; + put 'put ''LDAsMTguNDIsNi45MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gIDxwYXRoIGQ9Ik0xOC40MiwxNi4zMWE1LjcsNS43LDAsMSwxLDUuNzYtNS43QTUuNzQsNS43NCwwLDAsMSwxOC40MiwxNi4zMVptMC05LjRhMy43LDMuNywwLDEsMCwzLjc2LDMu''@;'; + put 'put ''N0EzLjc0LDMuNzQsMCwwLDAsMTguNDIsNi45MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gIDxwYXRoIGQ9Ik0yMS45MSwxNy42NWEyMC42LDIwLjYsMCwwLDAtMTMsMkExLjc3LDEuNzcsMCwwLDAsOCwyMS4yNXYzLjU2YTEsMSwwLDAsMCwyLDBW''@;'; + put 'put ''MjEuMzhhMTguOTIsMTguOTIsMCwwLDEsMTItMS42OFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gIDxwYXRoIGQ9Ik0zMywyMkgyNi4zVjIwLjUyYTEsMSwwLDAsMC0yLDBWMjJIMTdhMSwxLDAsMCwwLTEsMVYzM2ExLDEsMCwwLDAsMSwxSDMzYTEs''@;'; + put 'put ''MSwwLDAsMCwxLTFWMjNBMSwxLDAsMCwwLDMzLDIyWk0zMiwzMkgxOFYyNGg2LjN2LjQxYTEsMSwwLDAsMCwyLDBWMjRIMzJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIvPlxuICA8cmVjdCB4PSIyMS44MSIgeT0iMjcuNDIiIHdpZHRoPSI1Ljk2IiBoZWln''@;'; + put 'put ''aHQ9IjEuNCIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiLz5cbiAgPHBhdGggZD0iTTEwLjg0LDEyLjI0YTE4LDE4LDAsMCwwLTcuOTUsMkExLjY3LDEuNjcsMCwwLDAsMiwxNS43MXYzLjFhMSwxLDAsMCwwLDIsMHYtMi45YTE2LDE2LDAsMCwxLDcuNTgtMS42''@;'; + put 'put ''N0E3LjI4LDcuMjgsMCwwLDEsMTAuODQsMTIuMjRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIvPlxuICA8cGF0aCBkPSJNMzMuMTEsMTQuMjNhMTcuOCwxNy44LDAsMCwwLTcuMTItMiw3LjQ2LDcuNDYsMCwwLDEtLjczLDJBMTUuODksMTUuODksMCwwLDEs''@;'; + put 'put ''MzIsMTUuOTF2Mi45YTEsMSwwLDEsMCwyLDB2LTMuMUExLjY3LDEuNjcsMCwwLDAsMzMuMTEsMTQuMjNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNyIvPlxuICA8cGF0aCBkPSJNMTAuNjYsMTAuNjFjMC0uMjMsMC0uNDUsMC0uNjdhMy4wNywzLjA3LDAsMCwx''@;'; + put 'put ''LC41NC02LjExLDMuMTUsMy4xNSwwLDAsMSwyLjIuODksOC4xNiw4LjE2LDAsMCwxLDEuNy0xLjA4LDUuMTMsNS4xMywwLDAsMC05LDMuMjcsNS4xLDUuMSwwLDAsMCw0LjcsNUE3LjQyLDcuNDIsMCwwLDEsMTAuNjYsMTAuNjFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5l''@;'; + put 'put ''LXBhdGgtOCIvPlxuICA8cGF0aCBkPSJNMjQuNzcsMS44M2E1LjE3LDUuMTcsMCwwLDAtMy42OSwxLjU1LDcuODcsNy44NywwLDAsMSwxLjksMSwzLjE0LDMuMTQsMCwwLDEsNC45MywyLjUyLDMuMDksMy4wOSwwLDAsMS0xLjc5LDIuNzcsNy4xNCw3LjE0LDAsMCwxLC4wNi45Myw3Ljg4LDcu''@;'; + put 'put ''ODgsMCwwLDEtLjEsMS4yLDUuMSw1LjEsMCwwLDAsMy44My00LjlBNS4xMiw1LjEyLDAsMCwwLDI0Ljc3LDEuODNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtOSIvPlxuICBcbiAgPGVsbGlwc2UgY3g9IjE4IiBjeT0iMTEuMjgiIHJ4PSI0Ljc2IiByeT0iNC43''@;'; + put 'put ''IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG4gIDxwYXRoIGQ9Ik0xMC43OCwxMS43NWMuMTYsMCwuMzIsMCwuNDgsMCwwLS4xNSwwLS4yOCwwLS40M2E2LjcsNi43LDAsMCwxLDMuNzUtNiw0LjYyLDQuNjIsMCwxLDAtNC4yMSw2LjQ2WiIgY2xhc3M9ImNsci1p''@;'; + put 'put ''LXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIvPlxuICA8cGF0aCBkPSJNMjQuNzYsMTEuMjhjMCwuMTUsMCwuMjgsMCwuNDMuMTYsMCwuMzIsMCwuNDgsMEE0LjU4LDQuNTgsMCwxLDAsMjEsNS4yOSw2LjcsNi43LDAsMCwxLDI0Ljc2LDExLjI4WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1p''@;'; + put 'put ''LXNvbGlkLXBhdGgtMyIvPlxuICA8cGF0aCBkPSJNMjIuMjksMTYuNDVhMjEuNDUsMjEuNDUsMCwwLDEsNS43MSwyLDIuNzEsMi43MSwwLDAsMSwuNjguNTNIMzRWMTUuNTZhLjcyLjcyLDAsMCwwLS4zOC0uNjQsMTgsMTgsMCwwLDAtOC40LTIuMDVsLS42NiwwQTYuNjYsNi42NiwwLDAsMSwy''@;'; + put 'put ''Mi4yOSwxNi40NVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTQiLz5cbiAgPHBhdGggZD0iTTYuNTMsMjAuOTJBMi43NiwyLjc2LDAsMCwxLDgsMTguNDdhMjEuNDUsMjEuNDUsMCwwLDEsNS43MS0yLDYuNjYsNi42NiwwLDAsMS0yLjI3LTMuNTVsLS42NiwwYTE4LDE4''@;'; + put 'put ''LDAsMCwwLTguNCwyLjA1LjcyLjcyLDAsMCwwLS4zOC42NFYyMkg2LjUzWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNSIvPlxuICA8cmVjdCB4PSIyMS40NiIgeT0iMjYuNjkiIHdpZHRoPSI1Ljk2IiBoZWlnaHQ9IjEuNCIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1p''@;'; + put 'put ''LXNvbGlkLXBhdGgtNiIvPlxuICA8cGF0aCBkPSJNMzIuODEsMjEuMjZIMjUuOTR2LTFhMSwxLDAsMCwwLTIsMHYxSDIyVjE4LjQzQTIwLjE3LDIwLjE3LDAsMCwwLDE4LDE4YTE5LjI3LDE5LjI3LDAsMCwwLTkuMDYsMi4yMi43Ni43NiwwLDAsMC0uNDEuNjh2NS42MWg3LjExdjYuMDlhMSwx''@;'; + put 'put ''LDAsMCwwLDEsMUgzMi44MWExLDEsMCwwLDAsMS0xVjIyLjI2QTEsMSwwLDAsMCwzMi44MSwyMS4yNlptLTEsMTAuMzZIMTcuNjRWMjMuMjZoNi4zdi45MWExLDEsMCwwLDAsMiwwdi0uOTFoNS44N1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTciLz4nKSxlLkNsclNo''@;'; + put 'put ''YXBlRW1wbG95ZWU9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE2LjQzLDE2LjY5YTcsNywwLDEsMSw3LTdBNyw3LDAsMCwxLDE2LjQzLDE2LjY5Wm0wLTExLjkyYTUsNSwwLDEsMCw1LDVBNSw1LDAsMCwwLDE2LjQzLDQuNzdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRs''@;'; + put 'put ''aW5lLXBhdGgtMSIvPlxuICA8cGF0aCBkPSJNMjIsMTcuOUEyNS40MSwyNS40MSwwLDAsMCw1Ljg4LDE5LjU3YTQuMDYsNC4wNiwwLDAsMC0yLjMxLDMuNjhWMjkuMmExLDEsMCwxLDAsMiwwVjIzLjI1YTIsMiwwLDAsMSwxLjE2LTEuODYsMjIuOTEsMjIuOTEsMCwwLDEsOS43LTIuMTEsMjMu''@;'; + put 'put ''NTgsMjMuNTgsMCwwLDEsNS41Ny42NloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gIDxyZWN0IHg9IjIyLjE0IiB5PSIyNy40MSIgd2lkdGg9IjYuMTQiIGhlaWdodD0iMS40IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgt''@;'; + put 'put ''MyIvPlxuICA8cGF0aCBkPSJNMzMuMTcsMjEuNDdIMjh2Mmg0LjE3djguMzdIMThWMjMuNDdoNi4zdi40MmExLDEsMCwwLDAsMiwwVjIwYTEsMSwwLDAsMC0yLDB2MS40N0gxN2ExLDEsMCwwLDAtMSwxVjMyLjg0YTEsMSwwLDAsMCwxLDFIMzMuMTdhMSwxLDAsMCwwLDEtMVYyMi40N0ExLDEs''@;'; + put 'put ''MCwwLDAsMzMuMTcsMjEuNDdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIvPlxuICBcbiAgPGNpcmNsZSBjeD0iMTYuODYiIGN5PSI5LjczIiByPSI2LjQ2IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG4gIDxyZWN0IHg9IjIx''@;'; + put 'put ''IiB5PSIyOCIgd2lkdGg9IjciIGhlaWdodD0iMS40IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIi8+XG4gIDxwYXRoIGQ9Ik0xNSwzMHYzYTEsMSwwLDAsMCwxLDFIMzNhMSwxLDAsMCwwLDEtMVYyM2ExLDEsMCwwLDAtMS0xSDI2VjIwLjUzYTEsMSwwLDAsMC0yLDBW''@;'; + put 'put ''MjJIMjJWMTguNDJBMzIuMTIsMzIuMTIsMCwwLDAsMTYuODYsMThhMjYsMjYsMCwwLDAtMTEsMi4zOSwzLjI4LDMuMjgsMCwwLDAtMS44OCwzVjMwWm0xNywySDE3VjI0aDd2LjQyYTEsMSwwLDAsMCwyLDBWMjRoNloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiLz4n''@;'; + put 'put ''KSxlLkNsclNoYXBlRmFjdG9yeT0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzMuNDcsNy4zN2ExLDEsMCwwLDAtMSwuMDZMMjMsMTMuNzdWOC4yNmExLDEsMCwwLDAtMS42NC0uNzdMMTMuNDgsMTRIMTBWNC42MmExLDEsMCwwLDAtLjc4LTFsLTQtLjlhMSwxLDAsMCwwLS44NS4yQTEs''@;'; + put 'put ''MSwwLDAsMCw0LDMuNzNWMTRIM2ExLDEsMCwwLDAtMSwxVjMxYTEsMSwwLDAsMCwxLDFIMzNhMSwxLDAsMCwwLDEtMVY4LjI2QTEsMSwwLDAsMCwzMy40Nyw3LjM3Wk02LDVsMiwuNDRWMTRINlpNMzIsMzBINFYxNmg5LjgzYTEsMSwwLDAsMCwuNjQtLjIzTDIxLDEwLjM3djUuMjhhMSwxLDAs''@;'; + put 'put ''MCwwLDEuNTYuODNMMzIsMTAuMTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICA8cmVjdCB4PSI2IiB5PSIxNy45OSIgd2lkdGg9IjgiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgPHJl''@;'; + put 'put ''Y3QgeD0iNiIgeT0iMjEuOTkiIHdpZHRoPSI4IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gIDxyZWN0IHg9IjYiIHk9IjI1Ljk5IiB3aWR0aD0iOCIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5l''@;'; + put 'put ''LXBhdGgtNCIvPlxuICA8cmVjdCB4PSIxOSIgeT0iMTguOTkiIHdpZHRoPSIyIiBoZWlnaHQ9IjMiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01Ii8+XG4gIDxyZWN0IHg9IjE5IiB5PSIyNC45OSIgd2lkdGg9IjIiIGhlaWdodD0iMyIgY2xhc3M9ImNsci1pLW91''@;'; + put 'put ''dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiLz5cbiAgPHJlY3QgeD0iMjMiIHk9IjE4Ljk5IiB3aWR0aD0iMiIgaGVpZ2h0PSIzIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNyIvPlxuICA8cmVjdCB4PSIyMyIgeT0iMjQuOTkiIHdpZHRoPSIyIiBoZWlnaHQ9''@;'; + put 'put ''IjMiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC04Ii8+XG4gIDxyZWN0IHg9IjI3IiB5PSIxOC45OSIgd2lkdGg9IjIiIGhlaWdodD0iMyIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTkiLz5cbiAgPHJlY3QgeD0iMjciIHk9IjI0Ljk5''@;'; + put 'put ''IiB3aWR0aD0iMiIgaGVpZ2h0PSIzIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMTAiLz5cbiAgXG4gIDxwYXRoIGQ9Ik0zMi40NSw4LjQ0LDIyLDE1LjNWOS41MWExLDEsMCwwLDAtMS42My0uNzhMMTQuMDcsMTRIMTBWNC4wNkw0LDIuNzFWMTRIMlYzMWExLDEs''@;'; + put 'put ''MCwwLDAsMSwxSDMzYTEsMSwwLDAsMCwxLTFWOS4yN0ExLDEsMCwwLDAsMzIuNDUsOC40NFpNMTQsMjlINlYyN2g4Wm0wLTRINlYyM2g4Wm0wLTRINlYxOWg4Wm04LDhIMjBWMjZoMlptMC02SDIwVjIwaDJabTQsNkgyNFYyNmgyWm0wLTZIMjRWMjBoMlptNCw2SDI4VjI2aDJabTAtNkgyOFYy''@;'; + put 'put ''MGgyWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPicpLGUuQ29tbWVyY2VTaGFwZXM9e2NhbGN1bGF0b3I6ZS5DbHJTaGFwZUNhbGN1bGF0b3IsInBpZ2d5LWJhbmsiOmUuQ2xyU2hhcGVQaWdneUJhbmssInNob3BwaW5nLWJhZyI6ZS5DbHJTaGFwZVNob3BwaW5n''@;'; + put 'put ''QmFnLCJzaG9wcGluZy1jYXJ0IjplLkNsclNoYXBlU2hvcHBpbmdDYXJ0LHdhbGxldDplLkNsclNoYXBlV2FsbGV0LHN0b3JlOmUuQ2xyU2hhcGVTdG9yZSxldXJvOmUuQ2xyU2hhcGVFdXJvLGRvbGxhcjplLkNsclNoYXBlRG9sbGFyLHBlc286ZS5DbHJTaGFwZVBlc28sImNyZWRpdC1jYXJk''@;'; + put 'put ''IjplLkNsclNoYXBlQ3JlZGl0Q2FyZCxiYW5rOmUuQ2xyU2hhcGVCYW5rLCJkb2xsYXItYmlsbCI6ZS5DbHJTaGFwZURvbGxhckJpbGwsImUtY2hlY2siOmUuQ2xyU2hhcGVFQ2hlY2sscG91bmQ6ZS5DbHJTaGFwZVBvdW5kLHJ1cGVlOmUuQ2xyU2hhcGVSdXBlZSx3b246ZS5DbHJTaGFwZVdv''@;'; + put 'put ''bix5ZW46ZS5DbHJTaGFwZVllbixiaXRjb2luOmUuQ2xyU2hhcGVCaXRjb2luLHJ1YmxlOmUuQ2xyU2hhcGVSdWJsZSwiY29pbi1iYWciOmUuQ2xyU2hhcGVDb2luQmFnLCJlbXBsb3llZS1ncm91cCI6ZS5DbHJTaGFwZUVtcGxveWVlR3JvdXAsZW1wbG95ZWU6ZS5DbHJTaGFwZUVtcGxveWVl''@;'; + put 'put ''LGZhY3Rvcnk6ZS5DbHJTaGFwZUZhY3Rvcnl9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLkNvbW1lcmNlU2hhcGVzLCJzYXZpbmdzIiwoMCxyLmRlc2NyaXB0b3JDb25maWcpKGUuQ29tbWVyY2VTaGFwZXNbInBpZ2d5LWJhbmsiXSkpLCJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiZ3aW5k''@;'; + put 'put ''b3cuaGFzT3duUHJvcGVydHkoIkNsYXJpdHlJY29ucyIpJiZ3aW5kb3cuQ2xhcml0eUljb25zLmFkZChlLkNvbW1lcmNlU2hhcGVzKX0sIi4vcHJvamVjdHMvaWNvbnMvc3JjL3NoYXBlcy9jb3JlLXNoYXBlcy50cyI6ZnVuY3Rpb24oQSxlLGEpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5l''@;'; + put 'put ''UHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5Db3JlU2hhcGVzPWUuQ2xyU2hhcGVBcnJvdz1lLkNsclNoYXBlU3RlcEZvcndhcmQyPWUuQ2xyU2hhcGVFeWVIaWRlPWUuQ2xyU2hhcGVFeWU9ZS5DbHJTaGFwZUV2ZW50PWUuQ2xyU2hhcGVDYWxlbmRhcj1lLkNsclNoYXBl''@;'; + put 'put ''QW5nbGVEb3VibGU9ZS5DbHJTaGFwZVZpZXdDb2x1bW5zPWUuQ2xyU2hhcGVTZWFyY2g9ZS5DbHJTaGFwZVZtQnVnPWUuQ2xyU2hhcGVGaWx0ZXJHcmlkQ2lyY2xlPWUuQ2xyU2hhcGVGaWx0ZXJHcmlkPWUuQ2xyU2hhcGVFbGxpcHNpc1ZlcnRpY2FsPWUuQ2xyU2hhcGVFbGxpcHNpc0hvcml6''@;'; + put 'put ''b250YWw9ZS5DbHJTaGFwZUNsb3VkPWUuQ2xyU2hhcGVJbWFnZT1lLkNsclNoYXBlQmVsbD1lLkNsclNoYXBlRm9sZGVyT3Blbj1lLkNsclNoYXBlRm9sZGVyPWUuQ2xyU2hhcGVBbmdsZT1lLkNsclNoYXBlVXNlcj1lLkNsclNoYXBlQmFycz1lLkNsclNoYXBlSGVscEluZm89ZS5DbHJTaGFw''@;'; + put 'put ''ZVdhcm5pbmdTdGFuZGFyZD1lLkNsclNoYXBlRXJyb3JTdGFuZGFyZD1lLkNsclNoYXBlU3VjY2Vzc1N0YW5kYXJkPWUuQ2xyU2hhcGVJbmZvU3RhbmRhcmQ9ZS5DbHJTaGFwZUluZm9DaXJjbGU9ZS5DbHJTaGFwZUNoZWNrQ2lyY2xlPWUuQ2xyU2hhcGVFeGNsYW1hdGlvbkNpcmNsZT1lLkNs''@;'; + put 'put ''clNoYXBlRXhjbGFtYXRpb25UcmlhbmdsZT1lLkNsclNoYXBlVGltZXM9ZS5DbHJTaGFwZUNoZWNrPWUuQ2xyU2hhcGVDb2c9ZS5DbHJTaGFwZUhvbWU9ZS5DbHJTaGFwZVVua25vd25TdGF0dXM9dm9pZCAwO3ZhciByPWEoIi4vcHJvamVjdHMvaWNvbnMvc3JjL3V0aWxzL2Rlc2NyaXB0b3It''@;'; + put 'put ''Y29uZmlnLnRzIik7YT1hKCIuL3Byb2plY3RzL2ljb25zL3NyYy91dGlscy9zdmctdGFnLWdlbmVyYXRvci50cyIpLGUuQ2xyU2hhcGVVbmtub3duU3RhdHVzPSgwLGEuY2xySWNvblNWRykoJzxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGN4PSIx''@;'; + put 'put ''Ny41OCIgY3k9IjI2LjIzIiByPSIxLjQiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTI0LjcsMTNhNS4xOCw1LjE4LDAsMCwwLTIuMTYtMy41Niw3LjI2LDcuMjYsMCwwLDAtNS43MS0xLjA5QTExLjM0LDEx''@;'; + put 'put ''LjM0LDAsMCwwLDEyLDEwLjQ0LDEsMSwwLDEsMCwxMy4yNiwxMmE5LjMyLDkuMzIsMCwwLDEsMy45NC0xLjcyLDUuMjksNS4yOSwwLDAsMSw0LjE2Ljc0LDMuMjEsMy4yMSwwLDAsMSwxLjM1LDIuMTljLjMzLDIuNjktMy4xOSwzLjc1LTUuMzIsNC4xNGwtLjgyLjE1djQuMzZhMSwxLDAsMCww''@;'; + put 'put ''LDIsMFYxOS4xN0MyNC42MSwxNy43OSwyNC44OCwxNC40MSwyNC43LDEzWiIvPicpLGUuQ2xyU2hhcGVIb21lPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzMuNzEsMTcuMjlsLTE1LTE1YTEsMSwwLDAsMC0x''@;'; + put 'put ''LjQxLDBsLTE1LDE1YTEsMSwwLDAsMCwxLjQxLDEuNDFMMTgsNC40MSwzMi4yOSwxOC43MWExLDEsMCwwLDAsMS40MS0xLjQxWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMjgsMzJoLTVWMjJIMTNWMzJI''@;'; + put 'put ''OFYxOEw2LDIwVjMyYTIsMiwwLDAsMCwyLDJoN1YyNGg2VjM0aDdhMiwyLDAsMCwwLDItMlYxOS43NmwtMi0yWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zMywxOWExLDEsMCwwLDEtLjcxLS4yOUwxOCw0LjQx''@;'; + put 'put ''LDMuNzEsMTguNzFhMSwxLDAsMCwxLTEuNDEtMS40MWwxNS0xNWExLDEsMCwwLDEsMS40MSwwbDE1LDE1QTEsMSwwLDAsMSwzMywxOVoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiBkPSJNMTgsNy43OSw2LDE5LjgzVjMy''@;'; + put 'put ''YTIsMiwwLDAsMCwyLDJoN1YyNGg2VjM0aDdhMiwyLDAsMCwwLDItMlYxOS43NloiLz4nKSxlLkNsclNoYXBlQ29nPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMTguMSwxMWMtMy45LDAtNywzLjEtNyw3czMu''@;'; + put 'put ''MSw3LDcsN2MzLjksMCw3LTMuMSw3LTdTMjIsMTEsMTguMSwxMXogTTE4LjEsMjNjLTIuOCwwLTUtMi4yLTUtNXMyLjItNSw1LTVjMi44LDAsNSwyLjIsNSw1UzIwLjksMjMsMTguMSwyM3oiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRs''@;'; + put 'put ''aW5lLXBhdGgtMiIgZD0iTTMyLjgsMTQuN0wzMCwxMy44bC0wLjYtMS41bDEuNC0yLjZjMC4zLTAuNiwwLjItMS40LTAuMy0xLjlsLTIuNC0yLjRjLTAuNS0wLjUtMS4zLTAuNi0xLjktMC4zbC0yLjYsMS40bC0xLjUtMC42bC0wLjktMi44QzIxLDIuNSwyMC40LDIsMTkuNywyaC0zLjRjLTAu''@;'; + put 'put ''NywwLTEuMywwLjUtMS40LDEuMkwxNCw2Yy0wLjYsMC4xLTEuMSwwLjMtMS42LDAuNkw5LjgsNS4yQzkuMiw0LjksOC40LDUsNy45LDUuNUw1LjUsNy45QzUsOC40LDQuOSw5LjIsNS4yLDkuOGwxLjMsMi41Yy0wLjIsMC41LTAuNCwxLjEtMC42LDEuNmwtMi44LDAuOUMyLjUsMTUsMiwxNS42''@;'; + put 'put ''LDIsMTYuM3YzLjRjMCwwLjcsMC41LDEuMywxLjIsMS41TDYsMjIuMWwwLjYsMS41bC0xLjQsMi42Yy0wLjMsMC42LTAuMiwxLjQsMC4zLDEuOWwyLjQsMi40YzAuNSwwLjUsMS4zLDAuNiwxLjksMC4zbDIuNi0xLjRsMS41LDAuNmwwLjksMi45YzAuMiwwLjYsMC44LDEuMSwxLjUsMS4xaDMu''@;'; + put 'put ''NGMwLjcsMCwxLjMtMC41LDEuNS0xLjFsMC45LTIuOWwxLjUtMC42bDIuNiwxLjRjMC42LDAuMywxLjQsMC4yLDEuOS0wLjNsMi40LTIuNGMwLjUtMC41LDAuNi0xLjMsMC4zLTEuOWwtMS40LTIuNmwwLjYtMS41bDIuOS0wLjljMC42LTAuMiwxLjEtMC44LDEuMS0xLjV2LTMuNEMzNCwxNS42''@;'; + put 'put ''LDMzLjUsMTQuOSwzMi44LDE0Ljd6IE0zMiwxOS40bC0zLjYsMS4xTDI4LjMsMjFjLTAuMywwLjctMC42LDEuNC0wLjksMi4xbC0wLjMsMC41bDEuOCwzLjNsLTIsMmwtMy4zLTEuOGwtMC41LDAuM2MtMC43LDAuNC0xLjQsMC43LTIuMSwwLjlsLTAuNSwwLjFMMTkuNCwzMmgtMi44bC0xLjEt''@;'; + put 'put ''My42TDE1LDI4LjNjLTAuNy0wLjMtMS40LTAuNi0yLjEtMC45bC0wLjUtMC4zbC0zLjMsMS44bC0yLTJsMS44LTMuM2wtMC4zLTAuNWMtMC40LTAuNy0wLjctMS40LTAuOS0yLjFsLTAuMS0wLjVMNCwxOS40di0yLjhsMy40LTFsMC4yLTAuNWMwLjItMC44LDAuNS0xLjUsMC45LTIuMmwwLjMt''@;'; + put 'put ''MC41TDcuMSw5LjFsMi0ybDMuMiwxLjhsMC41LTAuM2MwLjctMC40LDEuNC0wLjcsMi4yLTAuOWwwLjUtMC4yTDE2LjYsNGgyLjhsMS4xLDMuNUwyMSw3LjdjMC43LDAuMiwxLjQsMC41LDIuMSwwLjlsMC41LDAuM2wzLjMtMS44bDIsMmwtMS44LDMuM2wwLjMsMC41YzAuNCwwLjcsMC43LDEu''@;'; + put 'put ''NCwwLjksMi4xbDAuMSwwLjVsMy42LDEuMVYxOS40eiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgZD0iTTExLjEsMThjMCwzLjksMy4xLDcsNyw3YzMuOSwwLDctMy4xLDctN3MtMy4x''@;'; + put 'put ''LTctNy03QzE0LjIsMTEsMTEuMSwxNC4xLDExLjEsMTh6IE0yMy4xLDE4YzAsMi44LTIuMiw1LTUsNWMtMi44LDAtNS0yLjItNS01czIuMi01LDUtNUMyMC45LDEzLDIzLjEsMTUuMiwyMy4xLDE4eiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRn''@;'; + put 'put ''ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgZD0iTTMyLjgsMTQuN0wzMCwxMy44bC0wLjEtMC4zYy0wLjgsMC0xLjYtMC4yLTIuNC0wLjRjMC4zLDAuNiwwLjYsMS4zLDAuOCwxLjlsMC4xLDAuNWwzLjYsMS4xdjIuOGwtMy42LDEuMUwyOC4zLDIxYy0wLjMsMC43LTAuNiwxLjQt''@;'; + put 'put ''MC45LDIuMWwtMC4zLDAuNWwxLjgsMy4zbC0yLDJsLTMuMy0xLjhsLTAuNSwwLjNjLTAuNywwLjQtMS40LDAuNy0yLjEsMC45bC0wLjUsMC4xTDE5LjQsMzJoLTIuOGwtMS4xLTMuNkwxNSwyOC4zYy0wLjctMC4zLTEuNC0wLjYtMi4xLTAuOWwtMC41LTAuM2wtMy4zLDEuOGwtMi0ybDEuOC0z''@;'; + put 'put ''LjNsLTAuMy0wLjVjLTAuNC0wLjctMC43LTEuNC0wLjktMi4xbC0wLjEtMC41TDQsMTkuNHYtMi44bDMuNC0xbDAuMi0wLjVjMC4yLTAuOCwwLjUtMS41LDAuOS0yLjJsMC4zLTAuNUw3LjEsOS4xbDItMmwzLjIsMS44bDAuNS0wLjNjMC43LTAuNCwxLjQtMC43LDIuMi0wLjlsMC41LTAuMkwx''@;'; + put 'put ''Ni42LDRoMi44bDEuMSwzLjVMMjEsNy43YzAuNywwLjIsMS4zLDAuNSwxLjksMC44Yy0wLjMtMC44LTAuNC0xLjYtMC40LTIuNWwtMC40LTAuMmwtMC45LTIuOEMyMSwyLjUsMjAuNCwyLDE5LjcsMmgtMy40Yy0wLjcsMC0xLjMsMC41LTEuNCwxLjJMMTQsNmMtMC42LDAuMS0xLjEsMC4zLTEu''@;'; + put 'put ''NiwwLjZMOS44LDUuMkM5LjIsNC45LDguNCw1LDcuOSw1LjVMNS41LDcuOUM1LDguNCw0LjksOS4yLDUuMiw5LjhsMS4zLDIuNWMtMC4yLDAuNS0wLjQsMS4xLTAuNiwxLjZsLTIuOCwwLjlDMi41LDE1LDIsMTUuNiwyLDE2LjN2My40YzAsMC43LDAuNSwxLjMsMS4yLDEuNUw2LDIyLjFsMC42''@;'; + put 'put ''LDEuNWwtMS40LDIuNmMtMC4zLDAuNi0wLjIsMS40LDAuMywxLjlsMi40LDIuNGMwLjUsMC41LDEuMywwLjYsMS45LDAuM2wyLjYtMS40bDEuNSwwLjZsMC45LDIuOWMwLjIsMC42LDAuOCwxLjEsMS41LDEuMWgzLjRjMC43LDAsMS4zLTAuNSwxLjUtMS4xbDAuOS0yLjlsMS41LTAuNmwyLjYs''@;'; + put 'put ''MS40YzAuNiwwLjMsMS40LDAuMiwxLjktMC4zbDIuNC0yLjRjMC41LTAuNSwwLjYtMS4zLDAuMy0xLjlsLTEuNC0yLjZsMC42LTEuNWwyLjktMC45YzAuNi0wLjIsMS4xLTAuOCwxLjEtMS41di0zLjRDMzQsMTUuNiwzMy41LDE0LjksMzIuOCwxNC43eiIvPlxuICAgICAgICAgICAgICAgIDxj''@;'; + put 'put ''aXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGlu''@;'; + put 'put ''ZS1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0zMy43LDE1LjRoLTUuM3YwLjFsMy42LDEuMXYyLjhsLTMuNiwxLjFMMjguMywyMWMtMC4zLDAuNy0wLjYsMS40LTAuOSwyLjFsLTAuMywwLjVsMS44LDMuM2wtMiwybC0zLjMtMS44bC0wLjUsMC4zYy0wLjcsMC40LTEuNCwwLjctMi4xLDAuOWwtMC41''@;'; + put 'put ''LDAuMUwxOS40LDMyaC0yLjhsLTEuMS0zLjZMMTUsMjguM2MtMC43LTAuMy0xLjQtMC42LTIuMS0wLjlsLTAuNS0wLjNsLTMuMywxLjhsLTItMmwxLjgtMy4zbC0wLjMtMC41Yy0wLjQtMC43LTAuNy0xLjQtMC45LTIuMWwtMC4xLTAuNUw0LDE5LjR2LTIuOGwzLjQtMWwwLjItMC41YzAuMi0w''@;'; + put 'put ''LjgsMC41LTEuNSwwLjktMi4ybDAuMy0wLjVMNy4xLDkuMWwyLTJsMy4yLDEuOGwwLjUtMC4zYzAuNy0wLjQsMS40LTAuNywyLjItMC45bDAuNS0wLjJMMTYuNiw0aDIuOGwxLjEsMy40bDEuNC0yLjNsLTAuNi0yQzIxLDIuNCwyMC40LDIsMTkuNywyaC0zLjRjLTAuNywwLTEuMywwLjUtMS40''@;'; + put 'put ''LDEuMkwxNCw2Yy0wLjYsMC4xLTEuMSwwLjMtMS42LDAuNkw5LjgsNS4yQzkuMiw0LjksOC40LDUsNy45LDUuNUw1LjUsNy45QzUsOC40LDQuOSw5LjIsNS4yLDkuOGwxLjMsMi41Yy0wLjIsMC41LTAuNCwxLjEtMC42LDEuNmwtMi44LDAuOUMyLjUsMTUsMiwxNS42LDIsMTYuM3YzLjRjMCww''@;'; + put 'put ''LjcsMC41LDEuMywxLjIsMS41TDYsMjIuMWwwLjYsMS41bC0xLjQsMi42Yy0wLjMsMC42LTAuMiwxLjQsMC4zLDEuOWwyLjQsMi40YzAuNSwwLjUsMS4zLDAuNiwxLjksMC4zbDIuNi0xLjRsMS41LDAuNmwwLjksMi45YzAuMiwwLjYsMC44LDEuMSwxLjUsMS4xaDMuNGMwLjcsMCwxLjMtMC41''@;'; + put 'put ''LDEuNS0xLjFsMC45LTIuOWwxLjUtMC42bDIuNiwxLjRjMC42LDAuMywxLjQsMC4yLDEuOS0wLjNsMi40LTIuNGMwLjUtMC41LDAuNi0xLjMsMC4zLTEuOWwtMS40LTIuNmwwLjYtMS41bDIuOS0wLjljMC42LTAuMiwxLjEtMC44LDEuMS0xLjV2LTMuNEMzNCwxNiwzMy45LDE1LjcsMzMuNywx''@;'; + put 'put ''NS40eiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIiBkPSJNMTguMSwyM2MtMi44LDAtNS0yLjItNS01czIuMi01LDUtNWMwLjIsMCwwLjUsMCwwLjcsMC4xYy0wLjItMC42LTAuMy0x''@;'; + put 'put ''LjMtMC4yLTJoLTAuNWMtMy45LDAtNywzLjEtNyw3YzAsMy45LDMuMSw3LDcsN2MzLjksMCw3LTMuMSw3LTdjMC0wLjktMC4yLTEuOC0wLjUtMi42aC0yLjJjMC41LDAuOCwwLjcsMS42LDAuNywyLjVDMjMuMSwyMC44LDIwLjksMjMsMTguMSwyM3oiLz5cbiAgICAgICAgICAgICAgICA8cGF0''@;'; + put 'put ''aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2LjksMS4xTDIxLjEsMTFjLTAuNCwwLjYtMC4yLDEuNCwwLjMsMS44YzAuMiwwLjIsMC41LDAuMiwwLjgsMC4yaDExLjVjMC43LDAsMS4zLTAuNSwx''@;'; + put 'put ''LjMtMS4yYzAtMC4zLTAuMS0wLjUtMC4yLTAuOGwtNS43LTkuOWMtMC40LTAuNi0xLjEtMC44LTEuOC0wLjVDMjcuMSwwLjgsMjcsMSwyNi45LDEuMXoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzIuNTcsMTUu''@;'; + put 'put ''NzJsLTMuMzUtMWExMS42NSwxMS42NSwwLDAsMC0uOTUtMi4zM2wxLjY0LTMuMDdhLjYxLjYxLDAsMCwwLS4xMS0uNzJMMjcuNDEsNi4yYS42MS42MSwwLDAsMC0uNzItLjExTDIzLjY0LDcuNzJhMTEuNjIsMTEuNjIsMCwwLDAtMi4zNi0xbC0xLTMuMzFBLjYxLjYxLDAsMCwwLDE5LjY5LDNI''@;'; + put 'put ''MTYuMzFhLjYxLjYxLDAsMCwwLS41OC40M2wtMSwzLjNhMTEuNjMsMTEuNjMsMCwwLDAtMi4zOCwxbC0zLTEuNjJhLjYxLjYxLDAsMCwwLS43Mi4xMUw2LjIsOC41OWEuNjEuNjEsMCwwLDAtLjExLjcybDEuNjIsM2ExMS42MywxMS42MywwLDAsMC0xLDIuMzdsLTMuMzEsMWEuNjEuNjEsMCww''@;'; + put 'put ''LDAtLjQzLjU4djMuMzhhLjYxLjYxLDAsMCwwLC40My41OGwzLjMzLDFhMTEuNjIsMTEuNjIsMCwwLDAsMSwyLjMzTDYuMDksMjYuNjlhLjYxLjYxLDAsMCwwLC4xMS43Mkw4LjU5LDI5LjhhLjYxLjYxLDAsMCwwLC43Mi4xMWwzLjA5LTEuNjVhMTEuNjUsMTEuNjUsMCwwLDAsMi4zLjk0bDEs''@;'; + put 'put ''My4zN2EuNjEuNjEsMCwwLDAsLjU4LjQzaDMuMzhhLjYxLjYxLDAsMCwwLC41OC0uNDNsMS0zLjM4YTExLjYzLDExLjYzLDAsMCwwLDIuMjgtLjk0bDMuMTEsMS42NmEuNjEuNjEsMCwwLDAsLjcyLS4xMWwyLjM5LTIuMzlhLjYxLjYxLDAsMCwwLC4xMS0uNzJsLTEuNjYtMy4xYTExLjYzLDEx''@;'; + put 'put ''LjYzLDAsMCwwLC45NS0yLjI5bDMuMzctMWEuNjEuNjEsMCwwLDAsLjQzLS41OFYxNi4zMUEuNjEuNjEsMCwwLDAsMzIuNTcsMTUuNzJaTTE4LDIzLjVBNS41LDUuNSwwLDEsMSwyMy41LDE4LDUuNSw1LjUsMCwwLDEsMTgsMjMuNVoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0i''@;'; + put 'put ''Y2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgZD0iTTMyLjU3LDE1LjcybC0zLjM1LTFhMTIuMTIsMTIuMTIsMCwwLDAtLjQ3LTEuMzIsNy40OSw3LjQ5LDAsMCwxLTYuMTQtNi4xNiwxMS44MiwxMS44MiwwLDAsMC0xLjMzLS40OGwtMS0zLjMxQS42MS42''@;'; + put 'put ''MSwwLDAsMCwxOS42OSwzSDE2LjMxYS42MS42MSwwLDAsMC0uNTguNDNsLTEsMy4zYTExLjYzLDExLjYzLDAsMCwwLTIuMzgsMWwtMy0xLjYyYS42MS42MSwwLDAsMC0uNzIuMTFMNi4yLDguNTlhLjYxLjYxLDAsMCwwLS4xMS43MmwxLjYyLDNhMTEuNjMsMTEuNjMsMCwwLDAtMSwyLjM3bC0z''@;'; + put 'put ''LjMxLDFhLjYxLjYxLDAsMCwwLS40My41OHYzLjM4YS42MS42MSwwLDAsMCwuNDMuNThsMy4zMywxYTExLjYyLDExLjYyLDAsMCwwLDEsMi4zM0w2LjA5LDI2LjY5YS42MS42MSwwLDAsMCwuMTEuNzJMOC41OSwyOS44YS42MS42MSwwLDAsMCwuNzIuMTFsMy4wOS0xLjY1YTExLjY1LDExLjY1''@;'; + put 'put ''LDAsMCwwLDIuMy45NGwxLDMuMzdhLjYxLjYxLDAsMCwwLC41OC40M2gzLjM4YS42MS42MSwwLDAsMCwuNTgtLjQzbDEtMy4zOGExMS42MywxMS42MywwLDAsMCwyLjI4LS45NGwzLjExLDEuNjZhLjYxLjYxLDAsMCwwLC43Mi0uMTFsMi4zOS0yLjM5YS42MS42MSwwLDAsMCwuMTEtLjcybC0x''@;'; + put 'put ''LjY2LTMuMWExMS42MywxMS42MywwLDAsMCwuOTUtMi4yOWwzLjM3LTFhLjYxLjYxLDAsMCwwLC40My0uNThWMTYuMzFBLjYxLjYxLDAsMCwwLDMyLjU3LDE1LjcyWk0xOCwyMy41QTUuNSw1LjUsMCwxLDEsMjMuNSwxOCw1LjUsNS41LDAsMCwxLDE4LDIzLjVaIi8+XG4gICAgICAgICAgICAg''@;'; + put 'put ''ICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1w''@;'; + put 'put ''YXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0zMi41NywxNS43MiwzMS41LDE1LjRIMjIuODVBNS41LDUuNSwwLDEsMSwxOCwxMi41YTUuNTMsNS41MywwLDAsMSwuNjUsMEEzLjY4LDMuNjgsMCwwLDEsMTksOS44OWwyLjA5LTMuNjItLjg2LTIuODNBLjYxLjYxLDAsMCwwLDE5LjY5LDNIMTYuMzFhLjYx''@;'; + put 'put ''LjYxLDAsMCwwLS41OC40M2wtMSwzLjNhMTEuNjMsMTEuNjMsMCwwLDAtMi4zOCwxbC0zLTEuNjJhLjYxLjYxLDAsMCwwLS43Mi4xMUw2LjIsOC41OWEuNjEuNjEsMCwwLDAtLjExLjcybDEuNjIsM2ExMS42MywxMS42MywwLDAsMC0xLDIuMzdsLTMuMzEsMWEuNjEuNjEsMCwwLDAtLjQzLjU4''@;'; + put 'put ''djMuMzhhLjYxLjYxLDAsMCwwLC40My41OGwzLjMzLDFhMTEuNjIsMTEuNjIsMCwwLDAsMSwyLjMzTDYuMDksMjYuNjlhLjYxLjYxLDAsMCwwLC4xMS43Mkw4LjU5LDI5LjhhLjYxLjYxLDAsMCwwLC43Mi4xMWwzLjA5LTEuNjVhMTEuNjUsMTEuNjUsMCwwLDAsMi4zLjk0bDEsMy4zN2EuNjEu''@;'; + put 'put ''NjEsMCwwLDAsLjU4LjQzaDMuMzhhLjYxLjYxLDAsMCwwLC41OC0uNDNsMS0zLjM4YTExLjYzLDExLjYzLDAsMCwwLDIuMjgtLjk0bDMuMTEsMS42NmEuNjEuNjEsMCwwLDAsLjcyLS4xMWwyLjM5LTIuMzlhLjYxLjYxLDAsMCwwLC4xMS0uNzJsLTEuNjYtMy4xYTExLjYzLDExLjYzLDAsMCww''@;'; + put 'put ''LC45NS0yLjI5bDMuMzctMWEuNjEuNjEsMCwwLDAsLjQzLS41OFYxNi4zMUEuNjEuNjEsMCwwLDAsMzIuNTcsMTUuNzJaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIg''@;'; + put 'put ''ZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIvPicpLGUuQ2xyU2hhcGVDaGVjaz0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBj''@;'; + put 'put ''bGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTEzLjcyLDI3LjY5LDMuMjksMTcuMjdhMSwxLDAsMCwxLDEuNDEtMS40MWw5LDlMMzEuMjksNy4yOWExLDEsMCwwLDEsMS40MSwxLjQxWiIvPicpLGUuQ2xyU2hhcGVUaW1lcz0oMCxhLmNsckljb25TVkcpKCc8''@;'; + put 'put ''cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTE5LjQxLDE4bDguMjktOC4yOWExLDEsMCwwLDAtMS40MS0xLjQxTDE4LDE2LjU5LDkuNzEsOC4yOUExLDEsMCwwLDAsOC4yOSw5LjcxTDE2LjU5LDE4LDguMjksMjYuMjlhMSwxLDAsMSwwLDEuNDEs''@;'; + put 'put ''MS40MUwxOCwxOS40MWw4LjI5LDguMjlhMSwxLDAsMCwwLDEuNDEtMS40MVoiLz4nKSxlLkNsclNoYXBlRXhjbGFtYXRpb25UcmlhbmdsZT0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTE4LDIxLjMyYTEuMywx''@;'; + put 'put ''LjMsMCwwLDAsMS4zLTEuM1YxNGExLjMsMS4zLDAsMSwwLTIuNiwwdjZBMS4zLDEuMywwLDAsMCwxOCwyMS4zMloiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBjeD0iMTcuOTUiIGN5PSIyNC4yNyIgcj0iMS41''@;'; + put 'put ''Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIGQ9Ik0zMC4zMywyNS41NCwyMC41OSw3LjZhMywzLDAsMCwwLTUuMjcsMEw1LjU3LDI1LjU0QTMsMywwLDAsMCw4LjIxLDMwSDI3LjY5YTMsMywwLDAsMCwyLjY0LTQu''@;'; + put 'put ''NDNabS0xLjc4LDEuOTRhMSwxLDAsMCwxLS44Ni40OUg4LjIxYTEsMSwwLDAsMS0uODgtMS40OEwxNy4wNyw4LjU1YTEsMSwwLDAsMSwxLjc2LDBsOS43NCwxNy45NEExLDEsMCwwLDEsMjguNTUsMjcuNDhaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNs''@;'; + put 'put ''ci1pLXNvbGlkLXBhdGgtMSIgZD0iTTMwLjMzLDI1LjU0LDIwLjU5LDcuNmEzLDMsMCwwLDAtNS4yNywwTDUuNTcsMjUuNTRBMywzLDAsMCwwLDguMjEsMzBIMjcuNjlhMywzLDAsMCwwLDIuNjQtNC40M1pNMTYuNDYsMTIuNzRhMS40OSwxLjQ5LDAsMCwxLDMsMHY2Ljg5YTEuNDksMS40OSww''@;'; + put 'put ''LDEsMS0zLDBaTTE4LDI2LjI1YTEuNzIsMS43MiwwLDEsMSwxLjcyLTEuNzJBMS43MiwxLjcyLDAsMCwxLDE4LDI2LjI1WiIvPicpLGUuQ2xyU2hhcGVFeGNsYW1hdGlvbkNpcmNsZT0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBh''@;'; + put 'put ''dGgtMSIgZD0iTTE4LDZBMTIsMTIsMCwxLDAsMzAsMTgsMTIsMTIsMCwwLDAsMTgsNlptMCwyMkExMCwxMCwwLDEsMSwyOCwxOCwxMCwxMCwwLDAsMSwxOCwyOFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0i''@;'; + put 'put ''TTE4LDIwLjA3YTEuMywxLjMsMCwwLDEtMS4zLTEuM3YtNmExLjMsMS4zLDAsMSwxLDIuNiwwdjZBMS4zLDEuMywwLDAsMSwxOCwyMC4wN1oiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBjeD0iMTcuOTUiIGN5''@;'; + put 'put ''PSIyMy4wMiIgcj0iMS41Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTE4LDZBMTIsMTIsMCwxLDAsMzAsMTgsMTIsMTIsMCwwLDAsMTgsNlptLTEuNDksNmExLjQ5LDEuNDksMCwwLDEsMywwdjYuODlhMS40OSwx''@;'; + put 'put ''LjQ5LDAsMSwxLTMsMFpNMTgsMjUuNWExLjcyLDEuNzIsMCwxLDEsMS43Mi0xLjcyQTEuNzIsMS43MiwwLDAsMSwxOCwyNS41WiIvPicpLGUuQ2xyU2hhcGVDaGVja0NpcmNsZT0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgt''@;'; + put 'put ''MSIgZD0iTTE4LDZBMTIsMTIsMCwxLDAsMzAsMTgsMTIsMTIsMCwwLDAsMTgsNlptMCwyMkExMCwxMCwwLDEsMSwyOCwxOCwxMCwxMCwwLDAsMSwxOCwyOFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTE2''@;'; + put 'put ''LjM0LDIzLjc0bC01LTVhMSwxLDAsMCwxLDEuNDEtMS40MWwzLjU5LDMuNTksNi43OC02Ljc4YTEsMSwwLDAsMSwxLjQxLDEuNDFaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTMwLDE4QTEyLDEyLDAsMSwxLDE4''@;'; + put 'put ''LDYsMTIsMTIsMCwwLDEsMzAsMThabS00Ljc3LTIuMTZhMS40LDEuNCwwLDAsMC0yLTJsLTYuNzcsNi43N0wxMywxNy4xNmExLjQsMS40LDAsMCwwLTIsMmw1LjQ1LDUuNDVaIi8+JyksZS5DbHJTaGFwZUluZm9DaXJjbGU9KDAsYS5jbHJJY29uU1ZHKSgnPGNpcmNsZSBjbGFzcz0iY2xyLWkt''@;'; + put 'put ''b3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgIGN4PSIxNy45MyIgY3k9IjExLjkiIHI9IjEuNCIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAgZD0iTTIxLDIzSDE5VjE1SDE2YTEsMSwwLDAsMCwwLDJoMXY2''@;'; + put 'put ''SDE1YTEsMSwwLDEsMCwwLDJoNmExLDEsMCwwLDAsMC0yWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAgZD0iTTE4LDZBMTIsMTIsMCwxLDAsMzAsMTgsMTIsMTIsMCwwLDAsMTgsNlptMCwyMkExMCwxMCwwLDEs''@;'; + put 'put ''MSwyOCwxOCwxMCwxMCwwLDAsMSwxOCwyOFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMTgsNkExMiwxMiwwLDEsMCwzMCwxOCwxMiwxMiwwLDAsMCwxOCw2Wm0tMiw1LjE1YTIsMiwwLDEsMSwyLDJBMiwyLDAs''@;'; + put 'put ''MCwxLDE1LjksMTEuMTVaTTIzLDI0YTEsMSwwLDAsMS0xLDFIMTVhMSwxLDAsMSwxLDAtMmgyVjE3SDE2YTEsMSwwLDAsMSwwLTJoNHY4aDJBMSwxLDAsMCwxLDIzLDI0WiIvPicpLGUuQ2xyU2hhcGVJbmZvU3RhbmRhcmQ9KDAsYS5jbHJJY29uU1ZHKSgnPGNpcmNsZSBjbGFzcz0iY2xyLWkt''@;'; + put 'put ''b3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgY3g9IjE3Ljk3IiBjeT0iMTAuNDUiIHI9IjEuNCIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMjEsMjVIMTlWMTQuMUgxNmExLDEsMCwwLDAsMCwyaDFW''@;'; + put 'put ''MjVIMTVhMSwxLDAsMCwwLDAsMmg2YTEsMSwwLDAsMCwwLTJaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIGQ9Ik0xOCwzNEExNiwxNiwwLDEsMSwzNCwxOCwxNiwxNiwwLDAsMSwxOCwzNFpNMTgsNEExNCwxNCww''@;'; + put 'put ''LDEsMCwzMiwxOCwxNCwxNCwwLDAsMCwxOCw0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0xOCwyLjFhMTYsMTYsMCwxLDAsMTYsMTZBMTYsMTYsMCwwLDAsMTgsMi4xWm0tLjEsNS4yOGEyLDIsMCwxLDEtMiwy''@;'; + put 'put ''QTIsMiwwLDAsMSwxNy45LDcuMzhabTMuNiwyMS4yNWgtN2ExLjQsMS40LDAsMSwxLDAtMi44aDIuMXYtOS4ySDE1YTEuNCwxLjQsMCwxLDEsMC0yLjhoNC40djEyaDIuMWExLjQsMS40LDAsMSwxLDAsMi44WiIvPicpLGUuQ2xyU2hhcGVTdWNjZXNzU3RhbmRhcmQ9KDAsYS5jbHJJY29uU1ZH''@;'; + put 'put ''KSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJabTAsMzBBMTQsMTQsMCwxLDEsMzIsMTgsMTQsMTQsMCwwLDEsMTgsMzJaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGgg''@;'; + put 'put ''Y2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0yOCwxMi4xYTEsMSwwLDAsMC0xLjQxLDBMMTUuNDksMjMuMTVsLTYtNkExLDEsMCwwLDAsOCwxOC41M0wxNS40OSwyNiwyOCwxMy41MkExLDEsMCwwLDAsMjgsMTIuMVoiLz5cbiAgICAgICAgICAgICAgICA8''@;'; + put 'put ''cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMTgsMkExNiwxNiwwLDEsMCwzNCwxOCwxNiwxNiwwLDAsMCwxOCwyWk0yOC40NSwxMi42MywxNS4zMSwyNS43Niw3LjU1LDE4YTEuNCwxLjQsMCwwLDEsMi0ybDUuNzgsNS43OEwyNi40NywxMC42NWExLjQs''@;'; + put 'put ''MS40LDAsMSwxLDIsMloiLz4nKSxlLkNsclNoYXBlRXJyb3JTdGFuZGFyZD0oMCxhLmNsckljb25TVkcpKCc8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBjeD0iMTgiIGN5PSIyNi4wNiIgcj0iMS4zMyIvPlxuICAgICAgICAgICAgICAgIDxwYXRo''@;'; + put 'put ''IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMTgsMjIuNjFhMSwxLDAsMCwxLTEtMXYtMTJhMSwxLDAsMSwxLDIsMHYxMkExLDEsMCwwLDEsMTgsMjIuNjFaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWkt''@;'; + put 'put ''b3V0bGluZS1wYXRoLTMiIGQ9Ik0xOCwzNEExNiwxNiwwLDEsMSwzNCwxOCwxNiwxNiwwLDAsMSwxOCwzNFpNMTgsNEExNCwxNCwwLDEsMCwzMiwxOCwxNCwxNCwwLDAsMCwxOCw0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRo''@;'; + put 'put ''LTEiIGQ9Ik0xOCwyLjFhMTYsMTYsMCwxLDAsMTYsMTZBMTYsMTYsMCwwLDAsMTgsMi4xWk0xNi42LDguOGExLjQsMS40LDAsMCwxLDIuOCwwdjEyYTEuNCwxLjQsMCwwLDEtMi44LDBaTTE4LDI4LjZhMS44LDEuOCwwLDEsMSwxLjgtMS44QTEuOCwxLjgsMCwwLDEsMTgsMjguNloiLz4nKSxl''@;'; + put 'put ''LkNsclNoYXBlV2FybmluZ1N0YW5kYXJkPSgwLGEuY2xySWNvblNWRykoJzxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGN4PSIxOCIgY3k9IjI2LjA2IiByPSIxLjMzIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxp''@;'; + put 'put ''bmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0xOCwyMi42MWExLDEsMCwwLDEtMS0xdi0xMmExLDEsMCwxLDEsMiwwdjEyQTEsMSwwLDAsMSwxOCwyMi42MVoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgZD0i''@;'; + put 'put ''TTE1LjA2MjA3ODIsMS42ODExOTYgQzE1LjYyOTg4MTksMC42NDkyNjYzNTUgMTYuNzEwOTA5MSwwLjAxMDIyMTkzOTYgMTcuODg1LDAuMDEwMjIxOTM5NiBDMTkuMDU5MDkwOSwwLjAxMDIyMTkzOTYgMjAuMTQwMTE4MSwwLjY0OTI2NjM1NSAyMC43MDg2NDMzLDEuNjgyNTIxMjkgTDM0LjU5''@;'; + put 'put ''ODY0NCwyNy4yNDI1MjI1IEMzNS4xNDA3NzQ2LDI4LjI0MDEzOTcgMzUuMTE3NDM0NSwyOS40NDk1MzczIDM0LjUzNzIxNjEsMzAuNDI1NDk0MyBDMzMuOTU2OTk3NywzMS40MDE0NTE0IDMyLjkwNTY3MSwzMS45OTk2OTg0IDMxLjc3LDMyIEw0LjAyMjM5MzIzLDMxLjk5OTc0OTIgQzIuODc0''@;'; + put 'put ''MDkwMDksMzIuMDI1NDY5OSAxLjc5OTAyODQzLDMxLjQzNzU3NTMgMS4yMDEwNjMzNSwzMC40NTY5MTI2IEMwLjYwMzA5ODI2NSwyOS40NzYyNDk5IDAuNTcyNzc3ODk5LDI4LjI1MTMxNzkgMS4xMjIwNzgxOCwyNy4yNDExOTYgTDE1LjA2MjA3ODIsMS42ODExOTYgWiBNMi44Nzg1MDc2Nywy''@;'; + put 'put ''OC4xOTc3MjgyIEMyLjY3MDYwOTY2LDI4LjU4MDAzNzYgMi42ODIwOTc1LDI5LjA0NDE0MjMgMi45MDg2NTU3LDI5LjQxNTY5NzcgQzMuMTM1MjEzOSwyOS43ODcyNTMyIDMuNTQyNTM1NCwzMC4wMDk5OTU5IDQsMzAgTDMxLjc2OTczNDQsMzAgQzMyLjE5OTkxOTEsMjkuOTk5ODg1OCAzMi41''@;'; + put 'put ''OTgyNDc4LDI5Ljc3MzIyMDggMzIuODE4MDgyMSwyOS40MDM0NDgyIEMzMy4wMzc5MTY0LDI5LjAzMzY3NTcgMzMuMDQ2NzU5NSwyOC41NzU0NTY3IDMyLjg0MTM1NjcsMjguMTk3NDc4NyBMMTguOTUzODczOSwyLjY0MjA4MTk1IEMxOC43Mzk0MjM2LDIuMjUyMzQ0MzYgMTguMzI5ODQxOSwy''@;'; + put 'put ''LjAxMDIyMTk0IDE3Ljg4NSwyLjAxMDIyMTk0IEMxNy40NDA2ODg5LDIuMDEwMjIxOTQgMTcuMDMxNTUzOCwyLjI1MTc2NjkyIDE2LjgxNjg5NDYsMi42NDA2ODc1MyBMMi44Nzg1MDc2NywyOC4xOTc3MjgyIFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQg''@;'; + put 'put ''Y2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzQuNiwyOS4yMSwyMC43MSwzLjY1YTMuMjIsMy4yMiwwLDAsMC01LjY2LDBMMS4xNywyOS4yMUEzLjIyLDMuMjIsMCwwLDAsNCwzNEgzMS43N2EzLjIyLDMuMjIsMCwwLDAsMi44My00Ljc1Wk0xNi42LDEwYTEuNCwxLjQsMCwwLDEsMi44LDB2MTJh''@;'; + put 'put ''MS40LDEuNCwwLDAsMS0yLjgsMFpNMTgsMjkuODVhMS44LDEuOCwwLDEsMSwxLjgtMS44QTEuOCwxLjgsMCwwLDEsMTgsMjkuODVaIi8+JyksZS5DbHJTaGFwZUhlbHBJbmZvPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yNS4zOSwyNS40NWExLDEsMCwwLDAtMS4zOC4yOWMtMS40MSwy''@;'; + put 'put ''LjE2LTQsNC44MS02LjMxLDUuN3MtNC4xMi41Ny00Ljg0LDBjLS4zMS0uMjctMS4xMi0xLS40My0zLjQ5LjQ2LTEuNjYsMy4zMi05LjQ4LDQtMTEuMzhsLTIuMTguMjhjLS42OSwxLjg2LTMuMjksOC44NC0zLjc2LDEwLjU4LS42OCwyLjQ5LS4zNCw0LjMsMS4wOSw1LjU2QTUuNTksNS41OSww''@;'; + put 'put ''LDAsMCwxNSwzNGE5LjUzLDkuNTMsMCwwLDAsMy40NS0uN2MyLjc5LTEuMDksNS43Mi00LjEyLDcuMjYtNi40N0ExLDEsMCwwLDAsMjUuMzksMjUuNDVaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOS4zLDEx''@;'; + put 'put ''YTQuNSw0LjUsMCwxLDAtNC41LTQuNUE0LjUsNC41LDAsMCwwLDE5LjMsMTFabTAtN2EyLjUsMi41LDAsMSwxLTIuNSwyLjVBMi41LDIuNSwwLDAsMSwxOS4zLDRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0x''@;'; + put 'put ''MS44MSwxNWMuMDYsMCw2LjI3LS44Miw3LjczLTEsLjY1LS4xLDEuMTQsMCwxLjMuMTVzLjIxLjgtLjA3LDEuNjhjLS42MSwxLjg2LTMuNjksMTEtNC41OSwxMy43MWE4LDgsMCwwLDAsMS4yOS0uMzgsNy4zMiw3LjMyLDAsMCwwLDEuMTUtLjZDMTkuODUsMjUsMjIuMTUsMTguMSwyMi42Nywx''@;'; + put 'put ''Ni41MnMuMzktMi43OC0uMy0zLjZhMy4xNiwzLjE2LDAsMCwwLTMuMDgtLjgzYy0xLjQzLjE1LTcuNDcuOTQtNy43MywxYTEsMSwwLDAsMCwuMjYsMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMjAuNzUi''@;'; + put 'put ''IGN5PSI2IiByPSI0IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI0Ljg0LDI2LjIzYTEsMSwwLDAsMC0xLjQuMjksMTYuNiwxNi42LDAsMCwxLTMuNTEsMy43N2MtLjMzLjI1LTEuNTYsMS4yLTIuMDgsMS0uMzYtLjEx''@;'; + put 'put ''LS4xNS0uODItLjA4LTEuMTJsLjUzLTEuNTdjLjIyLS42NCw0LjA1LTEyLDQuNDctMTMuMy42Mi0xLjkuMzUtMy43Ny0yLjQ4LTMuMzItLjc3LjA4LTguNTgsMS4wOS04LjcyLDEuMWExLDEsMCwwLDAsLjEzLDJzMy0uMzksMy4zMy0uNDJhLjg4Ljg4LDAsMCwxLC44NS40NCwyLjQ3LDIuNDcs''@;'; + put 'put ''MCwwLDEtLjA3LDEuNzFjLS4yNiwxLTQuMzcsMTIuNTgtNC41LDEzLjI1YTIuNzgsMi43OCwwLDAsMCwxLjE4LDMsNSw1LDAsMCwwLDMuMDguODNoMGE4LjUzLDguNTMsMCwwLDAsMy4wOS0uNjJjMi40OS0xLDUuMDktMy42Niw2LjQ2LTUuNzVBMSwxLDAsMCwwLDI0Ljg0LDI2LjIzWiIgY2xh''@;'; + put 'put ''c3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz4nKSxlLkNsclNoYXBlQmFycz0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMyLDI5SDRhMSwxLDAsMCwxLDAtMkgzMmExLDEsMCwwLDEsMCwy''@;'; + put 'put ''WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMzIsMTlINGExLDEsMCwwLDEsMC0ySDMyYTEsMSwwLDAsMSwwLDJaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xy''@;'; + put 'put ''LWktb3V0bGluZS1wYXRoLTMiIGQ9Ik0zMiw5SDRBMSwxLDAsMCwxLDQsN0gzMmExLDEsMCwwLDEsMCwyWiIvPicpLGUuQ2xyU2hhcGVVc2VyPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xOCwxN2E3LDcsMCwxLDAtNy03QTcsNywwLDAsMCwxOCwxN1pNMTgsNWE1LDUsMCwxLDEtNSw1''@;'; + put 'put ''QTUsNSwwLDAsMSwxOCw1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAuNDcsMjQuMzdhMTcuMTYsMTcuMTYsMCwwLDAtMjQuOTMsMEEyLDIsMCwwLDAsNSwyNS43NFYzMWEyLDIsMCwwLDAsMiwySDI5YTIs''@;'; + put 'put ''MiwwLDAsMCwyLTJWMjUuNzRBMiwyLDAsMCwwLDMwLjQ3LDI0LjM3Wk0yOSwzMUg3VjI1LjczYTE1LjE3LDE1LjE3LDAsMCwxLDIyLDBoMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLjQ3LDI0LjM3YTE3''@;'; + put 'put ''LjE2LDE3LjE2LDAsMCwwLTI0LjkzLDBBMiwyLDAsMCwwLDUsMjUuNzRWMzFhMiwyLDAsMCwwLDIsMkgyOWEyLDIsMCwwLDAsMi0yVjI1Ljc0QTIsMiwwLDAsMCwzMC40NywyNC4zN1pNMjksMzFIN1YyNS43M2ExNS4xNywxNS4xNywwLDAsMSwyMiwwaDBaIiBjbGFzcz0iY2xyLWktb3V0bGlu''@;'; + put 'put ''ZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwxN2E3LDcsMCwwLDAsNC40NS0xLjZoLS4yMkEzLjY4LDMuNjgsMCwwLDEsMjAsMTQuNmE1LDUsMCwxLDEsMS4yNC04LjQybDEtMS43NkE3LDcsMCwxLDAsMTgsMTda''@;'; + put 'put ''IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFM''@;'; + put 'put ''MjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiICBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMC40NywyNC4zN2ExNy4xNiwxNy4xNiww''@;'; + put 'put ''LDAsMC0yNC45MywwQTIsMiwwLDAsMCw1LDI1Ljc0VjMxYTIsMiwwLDAsMCwyLDJIMjlhMiwyLDAsMCwwLDItMlYyNS43NEEyLDIsMCwwLDAsMzAuNDcsMjQuMzdaTTI5LDMxSDdWMjUuNzNhMTUuMTcsMTUuMTcsMCwwLDEsMjIsMGgwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBj''@;'; + put 'put ''bHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDE3YTcsNywwLDAsMCw2Ljg1LTUuNTYsNy40LDcuNCwwLDAsMS0yLjI0LTYuNjlBNyw3LDAsMSwwLDE4LDE3Wk0xOCw1YTUsNSwwLDEsMS01LDVBNSw1LDAsMCwxLDE4LDVaIiBjbGFzcz0i''@;'; + put 'put ''Y2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiICBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQgY2xyLWktYmFk''@;'; + put 'put ''Z2UiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAuNjEsMjQuNTJhMTcuMTYsMTcuMTYsMCwwLDAtMjUuMjIsMCwxLjUxLDEuNTEsMCwwLDAtLjM5LDF2NkExLjUsMS41LDAsMCwwLDYuNSwzM2gyM0ExLjUsMS41LDAsMCwwLDMxLDMxLjV2LTZBMS41MSwxLjUxLDAsMCwwLDMwLjYxLDI0''@;'; + put 'put ''LjUyWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjE4IiBjeT0iMTAiIHI9IjciIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAuNjEsMjQu''@;'; + put 'put ''NTJhMTcuMTYsMTcuMTYsMCwwLDAtMjUuMjIsMCwxLjUxLDEuNTEsMCwwLDAtLjM5LDF2NkExLjUsMS41LDAsMCwwLDYuNSwzM2gyM0ExLjUsMS41LDAsMCwwLDMxLDMxLjV2LTZBMS41MSwxLjUxLDAsMCwwLDMwLjYxLDI0LjUyWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1p''@;'; + put 'put ''LXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwxN2E3LDcsMCwwLDAsNC40NS0xLjZoLS4yMkEzLjY4LDMuNjgsMCwwLDEsMTksOS44OWwzLjE2LTUuNDdBNyw3LDAsMSwwLDE4LDE3WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1p''@;'; + put 'put ''LXNvbGlkLXBhdGgtMi0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoi''@;'; + put 'put ''ICBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0zLS1hbGVydGVkIGNsci1pLWFsZXJ0IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLjYxLDI0LjUyYTE3LjE2LDE3LjE2LDAsMCwwLTI1LjIyLDAsMS41MSwxLjUxLDAsMCwwLS4zOSwxdjZBMS41LDEu''@;'; + put 'put ''NSwwLDAsMCw2LjUsMzNoMjNBMS41LDEuNSwwLDAsMCwzMSwzMS41di02QTEuNTEsMS41MSwwLDAsMCwzMC42MSwyNC41MloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDE3YTcsNyww''@;'; + put 'put ''LDAsMCw2Ljg1LTUuNTYsNy40LDcuNCwwLDAsMS0yLjI0LTYuNjlBNyw3LDAsMSwwLDE4LDE3WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiICBjbGFzcz0i''@;'; + put 'put ''Y2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIgLz4nKSxlLkNsclNoYXBlQW5nbGU9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0yOS41MiwyMi41Miwx''@;'; + put 'put ''OCwxMC42LDYuNDgsMjIuNTJhMS43LDEuNywwLDAsMCwyLjQ1LDIuMzZMMTgsMTUuNDlsOS4wOCw5LjM5YTEuNywxLjcsMCwwLDAsMi40NS0yLjM2WiIvPicpLGUuQ2xyU2hhcGVGb2xkZXI9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGlu''@;'; + put 'put ''ZS1wYXRoLTEiIGQ9Ik0zMCw5SDE2LjQyTDE0LjExLDUuODJBMiwyLDAsMCwwLDEyLjQ5LDVINkEyLDIsMCwwLDAsNCw3VjI5YTIsMiwwLDAsMCwyLDJIMzBhMiwyLDAsMCwwLDItMlYxMUEyLDIsMCwwLDAsMzAsOVptMCwyMEg2VjEzaDcuMzFhMiwyLDAsMCwwLDItMkg2VjdoNi40OWwyLjYx''@;'; + put 'put ''LDMuNTlhMSwxLDAsMCwwLC44MS40MUgzMFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0zMCwxMy41VjI5SDZWMTNoNy4zMWEyLDIsMCwwLDAsMi0ySDZWN2g2LjQ5bDIuNjEs''@;'; + put 'put ''My41OWExLDEsMCwwLDAsLjgxLjQxaDguNTFhNy41LDcuNSwwLDAsMS0xLjI5LTJIMTYuNDJMMTQuMTEsNS44MkEyLDIsMCwwLDAsMTIuNDksNUg2QTIsMiwwLDAsMCw0LDdWMjlhMiwyLDAsMCwwLDIsMkgzMGEyLDIsMCwwLDAsMi0yVjEzLjIyQTcuNDksNy40OSwwLDAsMSwzMCwxMy41WiIv''@;'; + put 'put ''PlxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUt''@;'; + put 'put ''LWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0zMCwxNS40VjI5SDZWMTNoNy4zMWEyLDIsMCwwLDAsMi0ySDZWN2g2LjQ5bDIuNjEsMy41OWExLDEsMCwwLDAsLjgxLjQxaDIuNzNBMy42NiwzLjY2LDAsMCwxLDE5LDkuODlMMTkuNTYsOUgxNi40MkwxNC4xMSw1''@;'; + put 'put ''LjgyQTIsMiwwLDAsMCwxMi40OSw1SDZBMiwyLDAsMCwwLDQsN1YyOWEyLDIsMCwwLDAsMiwySDMwYTIsMiwwLDAsMCwyLTJWMTUuNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCBj''@;'; + put 'put ''bHItaS1hbGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJj''@;'; + put 'put ''bHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zMCw5SDE2LjQyTDE0LjExLDUuODJBMiwyLDAsMCwwLDEyLjQ5LDVINkEyLDIsMCwwLDAsNCw3VjI5YTIsMiwwLDAsMCwyLDJIMzBhMiwyLDAsMCwwLDItMlYxMUEyLDIsMCwwLDAsMzAsOVpNNiwxMVY3aDYuNDlsMi43Miw0WiIv''@;'; + put 'put ''PlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0yMi4yMywxNS40QTMuNjgsMy42OCwwLDAsMSwxOSw5Ljg5TDE5LjU2LDlIMTYuNDJMMTQuMTEsNS44MkEyLDIsMCwwLDAsMTIuNDksNUg2''@;'; + put 'put ''QTIsMiwwLDAsMCw0LDdWMjlhMiwyLDAsMCwwLDIsMkgzMGEyLDIsMCwwLDAsMi0yVjE1LjRaTTYsMTFWN2g2LjQ5bDIuNzIsNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFs''@;'; + put 'put ''ZXJ0IiBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNv''@;'; + put 'put ''bGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0zMCwxMy41QTcuNSw3LjUsMCwwLDEsMjMuMTMsOUgxNi40MkwxNC4xMSw1LjgyQTIsMiwwLDAsMCwxMi40OSw1SDZBMiwyLDAsMCwwLDQsN1YyOWEyLDIsMCwwLDAsMiwySDMwYTIsMiwwLDAsMCwyLTJWMTMuMjJB''@;'; + put 'put ''Ny40OSw3LjQ5LDAsMCwxLDMwLDEzLjVaTTYsMTFWN2g2LjQ5bDIuNzIsNFoiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+Jyks''@;'; + put 'put ''ZS5DbHJTaGFwZUZvbGRlck9wZW49KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zNS4zMiwxMy43NEExLjcxLDEuNzEsMCwwLDAsMzMuODcsMTNIMTEuMTdhMi41OSwyLjU5LDAsMCwwLTIuMjUsMS41MiwxLDEs''@;'; + put 'put ''MCwwLDAsMCwuMTRMNiwyNVY3aDYuNDlsMi42MSwzLjU5YTEsMSwwLDAsMCwuODEuNDFIMzJhMiwyLDAsMCwwLTItMkgxNi40MkwxNC4xMSw1LjgyQTIsMiwwLDAsMCwxMi40OSw1SDZBMiwyLDAsMCwwLDQsN1YyOS42OUExLjM3LDEuMzcsMCwwLDAsNS40MSwzMUgzMC4zNGExLDEsMCwwLDAs''@;'; + put 'put ''MS0uNzJsNC4xOS0xNS4xQTEuNjQsMS42NCwwLDAsMCwzNS4zMiwxMy43NFpNMjkuNTUsMjlINi45bDMuODgtMTMuODFhLjY2LjY2LDAsMCwxLC4zOC0uMjRIMzMuNDlaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5l''@;'; + put 'put ''LXBhdGgtMS0tYmFkZ2VkIiBkPSJNMzUuMzIsMTMuNzRBMS43MSwxLjcxLDAsMCwwLDMzLjg3LDEzSDExLjE3YTIuNTksMi41OSwwLDAsMC0yLjI1LDEuNTIsMSwxLDAsMCwwLDAsLjE0TDYsMjVWN2g2LjQ5bDIuNjEsMy41OWExLDEsMCwwLDAsLjgxLjQxaDguNTJhNy40OSw3LjQ5LDAsMCwx''@;'; + put 'put ''LTEuMjktMkgxNi40MkwxNC4xMSw1LjgyQTIsMiwwLDAsMCwxMi40OSw1SDZBMiwyLDAsMCwwLDQsN1YyOS42OUExLjM3LDEuMzcsMCwwLDAsNS40MSwzMUgzMC4zNGExLDEsMCwwLDAsMS0uNzJsNC4xOS0xNS4xQTEuNjQsMS42NCwwLDAsMCwzNS4zMiwxMy43NFpNMjkuNTUsMjlINi45bDMu''@;'; + put 'put ''ODgtMTMuODFhLjY2LjY2LDAsMCwxLC4zOC0uMjRIMzMuNDlaIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgICAg''@;'; + put 'put ''ICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgZD0iTTMzLjY4LDE1LjRoLS4zTDI5LjU1LDI5SDYuOWwzLjg4LTEzLjgxYS42Ni42NiwwLDAsMSwuMzgtLjI0aDkuNDJBMy42NywzLjY3LDAsMCwxLDE5''@;'; + put 'put ''LDEzLjU2YTMuNjMsMy42MywwLDAsMS0uMjYtLjU2SDExLjE3YTIuNTksMi41OSwwLDAsMC0yLjI1LDEuNTIsMSwxLDAsMCwwLDAsLjE0TDYsMjVWN2g2LjQ5bDIuNjEsMy41OWExLDEsMCwwLDAsLjgxLjQxaDIuNzNBMy42NiwzLjY2LDAsMCwxLDE5LDkuODlMMTkuNTYsOUgxNi40MkwxNC4x''@;'; + put 'put ''MSw1LjgyQTIsMiwwLDAsMCwxMi40OSw1SDZBMiwyLDAsMCwwLDQsN1YyOS42OUExLjM3LDEuMzcsMCwwLDAsNS40MSwzMUgzMC4zNGExLDEsMCwwLDAsMS0uNzJsNC4xOS0xNS4xYTEuNjgsMS42OCwwLDAsMCwuMDctLjMyQTMuNjcsMy42NywwLDAsMSwzMy42OCwxNS40WiIvPlxuICAgICAg''@;'; + put 'put ''ICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4''@;'; + put 'put ''LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTM1LjMyLDEzLjc0QTEuNzEsMS43MSwwLDAsMCwzMy44NywxM0gxMS4xN2EyLjU5LDIuNTks''@;'; + put 'put ''MCwwLDAtMi4yNSwxLjUyLDEsMSwwLDAsMCwwLC4xNEw2LDI1VjdoNi40OWwyLjYxLDMuNTlhMSwxLDAsMCwwLC44MS40MUgzMmEyLDIsMCwwLDAtMi0ySDE2LjQyTDE0LjExLDUuODJBMiwyLDAsMCwwLDEyLjQ5LDVINkEyLDIsMCwwLDAsNCw3VjI5LjY5QTEuMzcsMS4zNywwLDAsMCw1LjQx''@;'; + put 'put ''LDMxSDMwLjM0YTEsMSwwLDAsMCwxLS43Mmw0LjE5LTE1LjFBMS42NCwxLjY0LDAsMCwwLDM1LjMyLDEzLjc0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0zMy42OCwxNS40SDIy''@;'; + put 'put ''LjIzQTMuNjksMy42OSwwLDAsMSwxOSwxMy41NmEzLjYzLDMuNjMsMCwwLDEtLjI2LS41NkgxMS4xN2EyLjU5LDIuNTksMCwwLDAtMi4yNSwxLjUyLDEsMSwwLDAsMCwwLC4xNEw2LDI1VjdoNi40OWwyLjYxLDMuNTlhMSwxLDAsMCwwLC44MS40MWgyLjczQTMuNjYsMy42NiwwLDAsMSwxOSw5''@;'; + put 'put ''Ljg5TDE5LjU2LDlIMTYuNDJMMTQuMTEsNS44MkEyLDIsMCwwLDAsMTIuNDksNUg2QTIsMiwwLDAsMCw0LDdWMjkuNjlBMS4zNywxLjM3LDAsMCwwLDUuNDEsMzFIMzAuMzRhMSwxLDAsMCwwLDEtLjcybDQuMTktMTUuMWExLjY4LDEuNjgsMCwwLDAsLjA3LS4zMkEzLjY3LDMuNjcsMCwwLDEs''@;'; + put 'put ''MzMuNjgsMTUuNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4y''@;'; + put 'put ''OCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0zNS4zMiwxMy43NEExLjcxLDEu''@;'; + put 'put ''NzEsMCwwLDAsMzMuODcsMTNIMTEuMTdhMi41OSwyLjU5LDAsMCwwLTIuMjUsMS41MiwxLDEsMCwwLDAsMCwuMTRMNiwyNVY3aDYuNDlsMi42MSwzLjU5YTEsMSwwLDAsMCwuODEuNDFoOC41MmE3LjQ5LDcuNDksMCwwLDEtMS4zMS0ySDE2LjQyTDE0LjExLDUuODJBMiwyLDAsMCwwLDEyLjQ5''@;'; + put 'put ''LDVINkEyLDIsMCwwLDAsNCw3VjI5LjY5QTEuMzcsMS4zNywwLDAsMCw1LjQxLDMxSDMwLjM0YTEsMSwwLDAsMCwxLS43Mmw0LjE5LTE1LjFBMS42NCwxLjY0LDAsMCwwLDM1LjMyLDEzLjc0WiIvPlxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQg''@;'; + put 'put ''Y2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz4nKSxlLkNsclNoYXBlQmVsbD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMyLjUxLDI3LjgzQTE0''@;'; + put 'put ''LjQsMTQuNCwwLDAsMSwzMCwyNC45YTEyLjYzLDEyLjYzLDAsMCwxLTEuMzUtNC44MVYxNS4xNUExMC44MSwxMC44MSwwLDAsMCwxOS4yMSw0LjRWMy4xMWExLjMzLDEuMzMsMCwxLDAtMi42NywwVjQuNDJBMTAuODEsMTAuODEsMCwwLDAsNy4yMSwxNS4xNXY0Ljk0QTEyLjYzLDEyLjYzLDAs''@;'; + put 'put ''MCwxLDUuODYsMjQuOWExNC40LDE0LjQsMCwwLDEtMi40NywyLjkzLDEsMSwwLDAsMC0uMzQuNzV2MS4zNmExLDEsMCwwLDAsMSwxaDI3LjhhMSwxLDAsMCwwLDEtMVYyOC41OEExLDEsMCwwLDAsMzIuNTEsMjcuODNaTTUuMTMsMjguOTRhMTYuMTcsMTYuMTcsMCwwLDAsMi40NC0zLDE0LjI0''@;'; + put 'put ''LDE0LjI0LDAsMCwwLDEuNjUtNS44NVYxNS4xNWE4Ljc0LDguNzQsMCwxLDEsMTcuNDcsMHY0Ljk0YTE0LjI0LDE0LjI0LDAsMCwwLDEuNjUsNS44NSwxNi4xNywxNi4xNywwLDAsMCwyLjQ0LDNaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWkt''@;'; + put 'put ''b3V0bGluZS1wYXRoLTIiIGQ9Ik0xOCwzNC4yOEEyLjY3LDIuNjcsMCwwLDAsMjAuNTgsMzJIMTUuMzJBMi42NywyLjY3LDAsMCwwLDE4LDM0LjI4WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJh''@;'; + put 'put ''ZGdlZCIgZD0iTTE4LDM0LjI4QTIuNjcsMi42NywwLDAsMCwyMC41OCwzMkgxNS4zMkEyLjY3LDIuNjcsMCwwLDAsMTgsMzQuMjhaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIiBkPSJN''@;'; + put 'put ''MzIuNTEsMjcuODNBMTQuNCwxNC40LDAsMCwxLDMwLDI0LjlhMTIuNjMsMTIuNjMsMCwwLDEtMS4zNS00LjgxVjE1LjE1YTEwLjkyLDEwLjkyLDAsMCwwLS4xNi0xLjc5LDcuNDQsNy40NCwwLDAsMS0yLjI0LS44NCw4Ljg5LDguODksMCwwLDEsLjQsMi42NHY0Ljk0YTE0LjI0LDE0LjI0LDAs''@;'; + put 'put ''MCwwLDEuNjUsNS44NSwxNi4xNywxNi4xNywwLDAsMCwyLjQ0LDNINS4xM2ExNi4xNywxNi4xNywwLDAsMCwyLjQ0LTMsMTQuMjQsMTQuMjQsMCwwLDAsMS42NS01Ljg1VjE1LjE1QTguOCw4LjgsMCwwLDEsMTgsNi4zMWE4LjYxLDguNjEsMCwwLDEsNC43NiwxLjQ0QTcuNDksNy40OSwwLDAs''@;'; + put 'put ''MSwyMi41LDZjMC0uMjEsMC0uNDIsMC0uNjNhMTAuNTgsMTAuNTgsMCwwLDAtMy4zMi0xVjMuMTFhMS4zMywxLjMzLDAsMSwwLTIuNjcsMFY0LjQyQTEwLjgxLDEwLjgxLDAsMCwwLDcuMjEsMTUuMTV2NC45NEExMi42MywxMi42MywwLDAsMSw1Ljg2LDI0LjlhMTQuNCwxNC40LDAsMCwxLTIu''@;'; + put 'put ''NDcsMi45MywxLDEsMCwwLDAtLjM0Ljc1djEuMzZhMSwxLDAsMCwwLDEsMWgyNy44YTEsMSwwLDAsMCwxLTFWMjguNThBMSwxLDAsMCwwLDMyLjUxLDI3LjgzWiIvPlxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBh''@;'; + put 'put ''dGgtMS0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTMyLjg1LDI4LjEzbC0uMzQtLjNBMTQuMzcsMTQuMzcsMCwwLDEsMzAsMjQuOWExMi42''@;'; + put 'put ''MywxMi42MywwLDAsMS0xLjM1LTQuODFWMTUuMTVBMTAuODEsMTAuODEsMCwwLDAsMTkuMjEsNC40VjMuMTFhMS4zMywxLjMzLDAsMSwwLTIuNjcsMFY0LjQyQTEwLjgxLDEwLjgxLDAsMCwwLDcuMjEsMTUuMTV2NC45NEExMi42MywxMi42MywwLDAsMSw1Ljg2LDI0LjlhMTQuNCwxNC40LDAs''@;'; + put 'put ''MCwxLTIuNDcsMi45M2wtLjM0LjN2Mi44MkgzMi44NVoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiBkPSJNMTUuMzIsMzJhMi42NSwyLjY1LDAsMCwwLDUuMjUsMFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFz''@;'; + put 'put ''cz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgZD0iTTE4LDM0LjI4QTIuNjcsMi42NywwLDAsMCwyMC41OCwzMkgxNS4zMkEyLjY3LDIuNjcsMCwwLDAsMTgsMzQuMjhaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlk''@;'; + put 'put ''LS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQiIGQ9Ik0zMi44NSwyOC4xM2wtLjM0LS4zQTE0LjM3LDE0LjM3LDAsMCwxLDMwLDI0LjlhMTIuNjMsMTIuNjMsMCwwLDEtMS4zNS00LjgxVjE1LjE1YTEwLjkyLDEwLjkyLDAsMCwwLS4xNi0xLjc5QTcuNSw3LjUsMCwwLDEsMjIu''@;'; + put 'put ''NSw2YzAtLjIxLDAtLjQyLDAtLjYzYTEwLjU3LDEwLjU3LDAsMCwwLTMuMzItMVYzLjExYTEuMzMsMS4zMywwLDEsMC0yLjY3LDBWNC40MkExMC44MSwxMC44MSwwLDAsMCw3LjIxLDE1LjE1djQuOTRBMTIuNjMsMTIuNjMsMCwwLDEsNS44NiwyNC45YTE0LjQsMTQuNCwwLDAsMS0yLjQ3LDIu''@;'; + put 'put ''OTNsLS4zNC4zdjIuODJIMzIuODVaIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPicpLGUuQ2xyU2hhcGVJbWFnZT0oMCxhLmNs''@;'; + put 'put ''ckljb25TVkcpKCc8cGF0aCBkPSJNMzIsNEg0QTIsMiwwLDAsMCwyLDZWMzBhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjZBMiwyLDAsMCwwLDMyLDRaTTQsMzBWNkgzMlYzMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gICAgICAgICAg''@;'; + put 'put ''ICA8cGF0aCBkPSJNOC45MiwxNGEzLDMsMCwxLDAtMy0zQTMsMywwLDAsMCw4LjkyLDE0Wm0wLTQuNkExLjYsMS42LDAsMSwxLDcuMzMsMTEsMS42LDEuNiwwLDAsMSw4LjkyLDkuNDFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICAgICAgICAgICAg''@;'; + put 'put ''PHBhdGggZD0iTTIyLjc4LDE1LjM3bC01LjQsNS40LTQtNGExLDEsMCwwLDAtMS40MSwwTDUuOTIsMjIuOXYyLjgzbDYuNzktNi43OUwxNiwyMi4xOGwtMy43NSwzLjc1SDE1bDguNDUtOC40NUwzMCwyNFYyMS4xOGwtNS44MS01LjgxQTEsMSwwLDAsMCwyMi43OCwxNS4zN1oiIGNsYXNzPSJj''@;'; + put 'put ''bHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTEuOTMsMTFhMywzLDAsMSwwLTMsM0EzLDMsMCwwLDAsMTEuOTMsMTFabS00LjYsMGExLjYsMS42LDAsMSwxLDEuNiwxLjZBMS42LDEuNiwwLDAsMSw3LjMzLDExWiIgY2xhc3M9ImNs''@;'; + put 'put ''ci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTcuMzgsMjAuNzdsLTQtNGExLDEsMCwwLDAtMS40MSwwTDUuOTIsMjIuOXYyLjgzbDYuNzktNi43OUwxNiwyMi4xOGwtMy43NSwzLjc1SDE1bDguNDUtOC40''@;'; + put 'put ''NUwzMCwyNFYyMS4xOGwtNS44MS01LjgxYTEsMSwwLDAsMC0xLjQxLDBaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMiwxMy4yMlYzMEg0VjZIMjIuNWE3LjQ5LDcuNDksMCwwLDEs''@;'; + put 'put ''LjI4LTJINEEyLDIsMCwwLDAsMiw2VjMwYTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYxMi4zNEE3LjQ1LDcuNDUsMCwwLDEsMzIsMTMuMjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxj''@;'; + put 'put ''aXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIsNEg0QTIsMiwwLDAsMCwyLDZWMzBhMiwyLDAsMCwwLDIsMkgzMmEy''@;'; + put 'put ''LDIsMCwwLDAsMi0yVjZBMiwyLDAsMCwwLDMyLDRaTTguOTIsOGEzLDMsMCwxLDEtMywzQTMsMywwLDAsMSw4LjkyLDhaTTYsMjdWMjIuOWw2LTYuMDhhMSwxLDAsMCwxLDEuNDEsMEwxNiwxOS4zNSw4LjMyLDI3Wm0yNCwwSDExLjE1bDYuMjMtNi4yMyw1LjQtNS40YTEsMSwwLDAsMSwxLjQx''@;'; + put 'put ''LDBMMzAsMjEuMThaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAsMTMuNUE3LjQ4LDcuNDgsMCwwLDEsMjIuNzgsNEg0QTIsMiwwLDAsMCwyLDZWMzBhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjEyLjM0''@;'; + put 'put ''QTcuNDYsNy40NiwwLDAsMSwzMCwxMy41Wk04LjkyLDhhMywzLDAsMSwxLTMsM0EzLDMsMCwwLDEsOC45Miw4Wk02LDI3VjIyLjlsNi02LjA4YTEsMSwwLDAsMSwxLjQxLDBMMTYsMTkuMzUsOC4zMiwyN1ptMjQsMEgxMS4xNWw2LjIzLTYuMjMsNS40LTUuNGExLDEsMCwwLDEsMS40MSwwTDMw''@;'; + put 'put ''LDIxLjE4WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xy''@;'; + put 'put ''LWktYmFkZ2UiLz4nKSxlLkNsclNoYXBlQ2xvdWQ9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0yNy4xNCwzM0gxMC42MkM1LjY3LDMzLDEsMjguMTksMSwyMy4xYTEwLDEwLDAsMCwxLDgtOS43NSwxMC4xOSwx''@;'; + put 'put ''MC4xOSwwLDAsMSwyMC4zMywxLjA2QTEwLjA3LDEwLjA3LDAsMCwxLDI5LDE2LjY2YTguMjksOC4yOSwwLDAsMSw2LDhDMzUsMjkuMSwzMS4zMywzMywyNy4xNCwzM1pNMTkuMDksNi4yM2E4LjI0LDguMjQsMCwwLDAtOC4xOSw4bDAsLjg3LS44Ni4xQTcuOTQsNy45NCwwLDAsMCwzLDIzLjFj''@;'; + put 'put ''MCw0LDMuNzcsNy45LDcuNjIsNy45SDI3LjE0QzMwLjIxLDMxLDMzLDI4LDMzLDI0LjY1YTYuMzEsNi4zMSwwLDAsMC01LjM3LTYuMjZsLTEuMTgtLjE4LjM5LTEuMTNBOC4xOCw4LjE4LDAsMCwwLDE5LjA5LDYuMjNaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91''@;'; + put 'put ''dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMjksMTYuNjZhMTAuMDcsMTAuMDcsMCwwLDAsLjI1LTIuMjRjMC0uMzMsMC0uNjUsMC0xYTcuNDUsNy40NSwwLDAsMS0yLjEtLjU0LDgsOCwwLDAsMS0uMyw0LjE2bC0uMzksMS4xMywxLjE4LjE4YTYuMzEs''@;'; + put 'put ''Ni4zMSwwLDAsMSw1LjM3LDYuMjZDMzIuOTUsMjgsMzAuMTYsMzEsMjcuMDksMzFIMTAuNTdjLTMuODQsMC03LjYyLTMuOTEtNy42Mi03LjlhNy45NCw3Ljk0LDAsMCwxLDctNy44OWwuODYtLjEsMC0uODdhOC4yNCw4LjI0LDAsMCwxLDguMTktOEE4LjEzLDguMTMsMCwwLDEsMjIuNTgsN2E3''@;'; + put 'put ''LjUzLDcuNTMsMCwwLDEtLjA4LTEsNy41MSw3LjUxLDAsMCwxLC4wOS0xLjEyQTEwLjEzLDEwLjEzLDAsMCwwLDE5LDQuMjMsMTAuMjYsMTAuMjYsMCwwLDAsOC45MSwxMy4zNmExMCwxMCwwLDAsMC04LDkuNzVjMCw1LjA5LDQuNjcsOS45LDkuNjIsOS45SDI3LjA5YzQuMTksMCw3Ljg2LTMu''@;'; + put 'put ''OSw3Ljg2LTguMzVBOC4yOSw4LjI5LDAsMCwwLDI5LDE2LjY2WiIvPlxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+XG4gICAg''@;'; + put 'put ''ICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0yOSwxNi42NmExMC4xNCwxMC4xNCwwLDAsMCwuMi0xLjNoLTJhOC4yOCw4LjI4LDAsMCwxLS4zNywxLjcybC0uMzksMS4xMywxLjE4LjE4YTYu''@;'; + put 'put ''MzEsNi4zMSwwLDAsMSw1LjM3LDYuMjZDMzIuOTUsMjgsMzAuMTYsMzEsMjcuMDksMzFIMTAuNTdjLTMuODQsMC03LjYyLTMuOTEtNy42Mi03LjlhNy45NCw3Ljk0LDAsMCwxLDctNy44OWwuODYtLjEsMC0uODdBOC4xNiw4LjE2LDAsMCwxLDIxLDYuNDdsMS0xLjhBMTAuMTksMTAuMTksMCww''@;'; + put 'put ''LDAsOC45MSwxMy4zNmExMCwxMCwwLDAsMC04LDkuNzVjMCw1LjA5LDQuNjcsOS45LDkuNjIsOS45SDI3LjA5YzQuMTksMCw3Ljg2LTMuOSw3Ljg2LTguMzVBOC4yOSw4LjI5LDAsMCwwLDI5LDE2LjY2WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1h''@;'; + put 'put ''bGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEu''@;'; + put 'put ''MTRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTI5LDE2LjY2YTEwLjA3LDEwLjA3LDAsMCwwLC4yNS0yLjI0QTEwLjE5LDEwLjE5LDAsMCwwLDguOTEsMTMuMzYsMTAsMTAsMCwwLDAsMSwyMy4xQzEsMjguMTks''@;'; + put 'put ''NS42MiwzMywxMC41NywzM0gyNy4wOUMzMS4yOCwzMywzNSwyOS4xLDM1LDI0LjY1QTguMjksOC4yOSwwLDAsMCwyOSwxNi42NloiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgZD0iTTI5LDE2''@;'; + put 'put ''LjY2YTEwLjA3LDEwLjA3LDAsMCwwLC4yNS0yLjI0YzAtLjMzLDAtLjY1LDAtMWE3LjQ0LDcuNDQsMCwwLDEtNi42LTguNThBMTAuMTMsMTAuMTMsMCwwLDAsMTksNC4yMywxMC4yNiwxMC4yNiwwLDAsMCw4LjkxLDEzLjM2LDEwLDEwLDAsMCwwLDEsMjMuMUMxLDI4LjE5LDUuNjIsMzMsMTAu''@;'; + put 'put ''NTcsMzNIMjcuMDlDMzEuMjgsMzMsMzUsMjkuMSwzNSwyNC42NUE4LjI5LDguMjksMCwwLDAsMjksMTYuNjZaIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMw''@;'; + put 'put ''IiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0yOSwxNi42NmExMC4xNSwxMC4xNSwwLDAsMCwuMi0xLjI2aC03QTMuNjgsMy42OCwwLDAsMSwxOSw5Ljg5bDMt''@;'; + put 'put ''NS4yMUExMC4xOSwxMC4xOSwwLDAsMCw4LjkxLDEzLjM2LDEwLDEwLDAsMCwwLDEsMjMuMUMxLDI4LjE5LDUuNjIsMzMsMTAuNTcsMzNIMjcuMDlDMzEuMjgsMzMsMzUsMjkuMSwzNSwyNC42NUE4LjI5LDguMjksMCwwLDAsMjksMTYuNjZaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xh''@;'; + put 'put ''c3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4y''@;'; + put 'put ''OCwwLDAsMCwyNi44NSwxLjE0WiIvPicpLGUuQ2xyU2hhcGVFbGxpcHNpc0hvcml6b250YWw9KDAsYS5jbHJJY29uU1ZHKSgnPGNpcmNsZSBjeD0iMzEuMSIgY3k9IjE4IiByPSIyLjkiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAg''@;'; + put 'put ''PGNpcmNsZSBjeD0iMTgiIGN5PSIxOCIgcj0iMi45IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjQuOSIgY3k9IjE4IiByPSIyLjkiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0z''@;'; + put 'put ''IiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzEuMSIgY3k9IjE4IiByPSIyLjkiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjE4IiBjeT0iMTgiIHI9IjIuOSIgY2xhc3M9''@;'; + put 'put ''ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iNC45IiBjeT0iMTgiIHI9IjIuOSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIiAvPlxu''@;'; + put 'put ''ICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPicpLGUuQ2xyU2hhcGVFbGxpcHNpc1ZlcnRpY2FsPSgwLGEuY2xySWNvblNWRykoJzxj''@;'; + put 'put ''aXJjbGUgY3g9IjE4IiBjeT0iNC45IiByPSIyLjkiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMTgiIGN5PSIxOCIgcj0iMi45IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIg''@;'; + put 'put ''Lz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjE4IiBjeT0iMzEuMSIgcj0iMi45IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjE4IiBjeT0iNC45IiByPSIyLjkiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1i''@;'; + put 'put ''YWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjE4IiBjeT0iMTgiIHI9IjIuOSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNs''@;'; + put 'put ''ZSBjeD0iMTgiIGN5PSIzMS4xIiByPSIyLjkiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xy''@;'; + put 'put ''LWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCBjbHItaS1iYWRnZSIgLz4nKSxlLkNsclNoYXBlRmlsdGVyR3JpZD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTE1LDI1Ljg2bDIsMVYyMC4yN2ExLDEsMCwwLDAt''@;'; + put 'put ''LjI5LS43TDEwLjIzLDEzSDI1Ljc5bC02LjQ3LDYuNTdhMSwxLDAsMCwwLS4yOS43TDE5LDI4bDIsMVYyMC42OEwyNy41OCwxNEExLjQ2LDEuNDYsMCwwLDAsMjgsMTNWMTJhMSwxLDAsMCwwLTEtMUg5YTEsMSwwLDAsMC0xLDF2MWExLjQ2LDEuNDYsMCwwLDAsLjQyLDFMMTUsMjAuNjhaIi8+''@;'; + put 'put ''XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTgsMTF2MS4xMmEuNS41LDAsMCwwLC4xNS4zNWw3LjI4LDcuMzZhLjUuNSwwLDAsMSwuMTUuMzV2Ni44OWEuNS41LDAsMCwwLC4yOC40NWwzLjk1LDEuNDFhLjUuNSwwLDAs''@;'; + put 'put ''MCwuNzItLjQ1bDAtOC4zOWEuNTQuNTQsMCwwLDEsLjE4LS4zNWw3LjEyLTcuMjVhLjUuNSwwLDAsMCwuMTUtLjM1VjExWiIvPicpLGUuQ2xyU2hhcGVGaWx0ZXJHcmlkQ2lyY2xlPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0''@;'; + put 'put ''aC0xIiBkPSJNMTUsMjUuODZsMiwxVjIwLjI3YTEsMSwwLDAsMC0uMjktLjdMMTAuMjMsMTNIMjUuNzlsLTYuNDcsNi41N2ExLDEsMCwwLDAtLjI5LjdMMTksMjhsMiwxVjIwLjY4TDI3LjU4LDE0QTEuNDYsMS40NiwwLDAsMCwyOCwxM1YxMmExLDEsMCwwLDAtMS0xSDlhMSwxLDAsMCwwLTEs''@;'; + put 'put ''MXYxYTEuNDYsMS40NiwwLDAsMCwuNDIsMUwxNSwyMC42OFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlptMCwzMEExNCwxNCwwLDEs''@;'; + put 'put ''MSwzMiwxOCwxNCwxNCwwLDAsMSwxOCwzMloiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMTgsMkExNiwxNiwwLDEsMCwzNCwxOCwxNiwxNiwwLDAsMCwxOCwyWm0wLDMwQTE0LDE0LDAsMSwxLDMyLDE4LDE0LDE0''@;'; + put 'put ''LDAsMCwxLDE4LDMyWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGQ9Ik04LDExdjEuMTJhLjUuNSwwLDAsMCwuMTUuMzVsNy4yOCw3LjM2YS41LjUsMCwwLDEsLjE1LjM1djYuODlhLjUuNSwwLDAsMCwuMjguNDVsMy45''@;'; + put 'put ''NSwxLjQxYS41LjUsMCwwLDAsLjcyLS40NWwwLTguMzlhLjU0LjU0LDAsMCwxLC4xOC0uMzVsNy4xMi03LjI1YS41LjUsMCwwLDAsLjE1LS4zNVYxMVoiLz4nKSxlLkNsclNoYXBlVm1CdWc9KDAsYS5jbHJJY29uU1ZHKSgnPHJlY3Qgd2lkdGg9IjM2IiBoZWlnaHQ9IjM2IiByeD0iMyIgZmls''@;'; + put 'put ''bD0iI2ZmZmZmZiIgb3BhY2l0eT0iMC4xNSIgc3R5bGU9Imlzb2xhdGlvbjppc29sYXRlIi8+PHBhdGggZD0iTTMuNzksMTQuODNhMS4wOSwxLjA5LDAsMCwwLTEuNDctLjU2LDEuMDksMS4wOSwwLDAsMC0uNTQsMS40OWwyLjQ3LDUuNGMuMzkuODUuOCwxLjI5LDEuNTcsMS4yOVM3LDIyLDcu''@;'; + put 'put ''MzksMjEuMTZsMi4xNy00Ljc3YS4zMy4zMywwLDAsMSwuMzEtLjIuMzUuMzUsMCwwLDEsLjM1LjM1djQuNjFhMS4xNSwxLjE1LDAsMCwwLDEuMTQsMS4zLDEuMTcsMS4xNywwLDAsMCwxLjE3LTEuM1YxNy4zOGExLjE1LDEuMTUsMCwwLDEsMS4yMi0xLjIsMS4xMywxLjEzLDAsMCwxLDEuMTgs''@;'; + put 'put ''MS4ydjMuNzdhMS4xNywxLjE3LDAsMSwwLDIuMzIsMFYxNy4zOGExLjE1LDEuMTUsMCwwLDEsMS4yMi0xLjIsMS4xMywxLjEzLDAsMCwxLDEuMTgsMS4ydjMuNzdhMS4xNiwxLjE2LDAsMSwwLDIuMzEsMFYxNi44NmEyLjY5LDIuNjksMCwwLDAtMi43OC0yLjY5LDMuNTcsMy41NywwLDAsMC0y''@;'; + put 'put ''LjQ3LDEuMDUsMi43NSwyLjc1LDAsMCwwLTIuMzgtMS4wNUEzLjkzLDMuOTMsMCwwLDAsMTIsMTUuMjJhMi44MiwyLjgyLDAsMCwwLTIuMDgtMS4wNUEyLjU1LDIuNTUsMCwwLDAsNy40LDE1Ljg5TDUuODIsMTkuNjNsLTItNC44IiBmaWxsPSIjZmZmZmZmIi8+PHBhdGggZD0iTTMzLDE0LjE4''@;'; + put 'put ''QTEuMTQsMS4xNCwwLDAsMCwzMS45LDE1bC0xLjE5LDMuNzNMMjkuNSwxNS4wNWExLjE4LDEuMTgsMCwwLDAtMS4xNS0uODdoLS4xYTEuMiwxLjIsMCwwLDAtMS4xNS44N2wtMS4xOSwzLjcxLTEuMTgtMy43MWExLjE1LDEuMTUsMCwwLDAtMS4xMS0uODcsMS4wOCwxLjA4LDAsMCwwLTEuMTIs''@;'; + put 'put ''MS4wNywxLjY4LDEuNjgsMCwwLDAsLjEuNTRsMiw1LjdhMS4yNywxLjI3LDAsMCwwLDEuMjcsMSwxLjI0LDEuMjQsMCwwLDAsMS4yLS45M2wxLjItMy42NCwxLjIsMy42NGExLjI1LDEuMjUsMCwwLDAsMS4yNi45M0ExLjI3LDEuMjcsMCwwLDAsMzIsMjEuNUwzNCwxNS43M2ExLjc3LDEuNzcs''@;'; + put 'put ''MCwwLDAsLjA4LS40OEExLjA3LDEuMDcsMCwwLDAsMzMsMTQuMThaIiBmaWxsPSIjZmZmZmZmIi8+JyksZS5DbHJTaGFwZVNlYXJjaD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTE2LjMzLDUuMDVBMTAuOTUs''@;'; + put 'put ''MTAuOTUsMCwxLDEsNS4zOSwxNiwxMSwxMSwwLDAsMSwxNi4zMyw1LjA1bTAtMi4wNWExMywxMywwLDEsMCwxMywxMywxMywxMywwLDAsMC0xMy0xM1oiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTM1LDMz''@;'; + put 'put ''LjI5bC03LjM3LTcuNDItMS40MiwxLjQxLDcuMzcsNy40MkExLDEsMCwxLDAsMzUsMzMuMjlaIi8+JyksZS5DbHJTaGFwZVZpZXdDb2x1bW5zPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzEsNUg1QTIsMiww''@;'; + put 'put ''LDAsMCwzLDdWMjlhMiwyLDAsMCwwLDIsMkgzMWEyLDIsMCwwLDAsMi0yVjdBMiwyLDAsMCwwLDMxLDVaTTEzLDI5SDVWN2g4Wm0xMCwwSDE1VjdoOFoiLz4nKSxlLkNsclNoYXBlQW5nbGVEb3VibGU9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWkt''@;'; + put 'put ''b3V0bGluZS1wYXRoLTEiIGQ9Ik0yOSwxOS40MWExLDEsMCwwLDEtLjcxLS4yOUwxOCw4LjgzLDcuNzEsMTkuMTJhMSwxLDAsMCwxLTEuNDEtMS40MUwxOCw2LDI5LjcxLDE3LjcxQTEsMSwwLDAsMSwyOSwxOS40MVoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0''@;'; + put 'put ''bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTI5LDMwLjQxYTEsMSwwLDAsMS0uNzEtLjI5TDE4LDE5LjgzLDcuNzEsMzAuMTJhMSwxLDAsMCwxLTEuNDEtMS40MUwxOCwxNywyOS43MSwyOC43MUExLDEsMCwwLDEsMjksMzAuNDFaIi8+JyksZS5DbHJTaGFwZUNhbGVuZGFyPSgwLGEu''@;'; + put 'put ''Y2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzIuMjUsNkgyOVY4aDNWMzBINFY4SDdWNkgzLjc1QTEuNzgsMS43OCwwLDAsMCwyLDcuODFWMzAuMTlBMS43OCwxLjc4LDAsMCwwLDMuNzUsMzJoMjguNUExLjc4LDEuNzgs''@;'; + put 'put ''MCwwLDAsMzQsMzAuMTlWNy44MUExLjc4LDEuNzgsMCwwLDAsMzIuMjUsNloiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgeD0iOCIgeT0iMTQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAg''@;'; + put 'put ''ICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgeD0iMTQiIHk9IjE0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIHg9IjIwIiB5PSIx''@;'; + put 'put ''NCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiB4PSIyNiIgeT0iMTQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWkt''@;'; + put 'put ''b3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIgeD0iOCIgeT0iMTkiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNyIgeD0iMTQiIHk9IjE5IiB3aWR0aD0iMiIgaGVpZ2h0PSIy''@;'; + put 'put ''Ii8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTgiIHg9IjIwIiB5PSIxOSIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUt''@;'; + put 'put ''cGF0aC05IiB4PSIyNiIgeT0iMTkiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMTAiIHg9IjgiIHk9IjI0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAg''@;'; + put 'put ''PHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTExIiB4PSIxNCIgeT0iMjQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMTIiIHg9IjIwIiB5PSIy''@;'; + put 'put ''NCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xMyIgeD0iMjYiIHk9IjI0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1p''@;'; + put 'put ''LW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTE0IiBkPSJNMTAsMTBhMSwxLDAsMCwwLDEtMVYzQTEsMSwwLDAsMCw5LDNWOUExLDEsMCwwLDAsMTAsMTBaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTE1IiBkPSJN''@;'; + put 'put ''MjYsMTBhMSwxLDAsMCwwLDEtMVYzYTEsMSwwLDAsMC0yLDBWOUExLDEsMCwwLDAsMjYsMTBaIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTE2IiB4PSIxMyIgeT0iNiIgd2lkdGg9IjEwIiBoZWlnaHQ9IjIiLz5cbiAg''@;'; + put 'put ''ICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0zMiwxMy4yMlYzMEg0VjhIN1Y2SDMuNzVBMS43OCwxLjc4LDAsMCwwLDIsNy44MVYzMC4xOUExLjc4LDEuNzgsMCwwLDAsMy43NSwzMmgyOC41''@;'; + put 'put ''QTEuNzgsMS43OCwwLDAsMCwzNCwzMC4xOVYxMi4zNEE3LjQ1LDcuNDUsMCwwLDEsMzIsMTMuMjJaIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIiB4PSI4IiB5PSIxNCIgd2lkdGg9IjIi''@;'; + put 'put ''IGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIgeD0iMTQiIHk9IjE0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNs''@;'; + put 'put ''ci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIiB4PSIyMCIgeT0iMTQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC01LS1iYWRn''@;'; + put 'put ''ZWQiIHg9IjI2IiB5PSIxNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTYtLWJhZGdlZCIgeD0iOCIgeT0iMTkiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAg''@;'; + put 'put ''ICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC03LS1iYWRnZWQiIHg9IjE0IiB5PSIxOSIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQg''@;'; + put 'put ''Y2xyLWktb3V0bGluZS1wYXRoLTgtLWJhZGdlZCIgeD0iMjAiIHk9IjE5IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtOS0tYmFkZ2VkIiB4PSIyNiIgeT0iMTkiIHdp''@;'; + put 'put ''ZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xMC0tYmFkZ2VkIiB4PSI4IiB5PSIyNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNs''@;'; + put 'put ''YXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTExLS1iYWRnZWQiIHg9IjE0IiB5PSIyNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRo''@;'; + put 'put ''LTEyLS1iYWRnZWQiIHg9IjIwIiB5PSIyNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEzLS1iYWRnZWQiIHg9IjI2IiB5PSIyNCIgd2lkdGg9IjIiIGhlaWdodD0i''@;'; + put 'put ''MiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTE0LS1iYWRnZWQiIGQ9Ik0xMCwxMGExLDEsMCwwLDAsMS0xVjNBMSwxLDAsMCwwLDksM1Y5QTEsMSwwLDAsMCwxMCwxMFoiLz5cbiAgICAgICAgICAgICAg''@;'; + put 'put ''ICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xNS0tYmFkZ2VkIiBkPSJNMjIuNSw2SDEzVjhoOS43OEE3LjQ5LDcuNDksMCwwLDEsMjIuNSw2WiIvPlxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJh''@;'; + put 'put ''ZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMTYtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiBkPSJNMzMuNjgs''@;'; + put 'put ''MTUuNEgzMlYzMEg0VjhIN1Y2SDMuNzVBMS43OCwxLjc4LDAsMCwwLDIsNy44MVYzMC4xOUExLjc4LDEuNzgsMCwwLDAsMy43NSwzMmgyOC41QTEuNzgsMS43OCwwLDAsMCwzNCwzMC4xOVYxNS4zOFoiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxl''@;'; + put 'put ''cnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIgeD0iOCIgeT0iMTQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCIgeD0iMTQiIHk9''@;'; + put 'put ''IjE0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWFsZXJ0ZWQiIHg9IjgiIHk9IjE5IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAg''@;'; + put 'put ''PHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWFsZXJ0ZWQiIHg9IjE0IiB5PSIxOSIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91''@;'; + put 'put ''dGxpbmUtcGF0aC02LS1hbGVydGVkIiB4PSIyMCIgeT0iMTkiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNy0tYWxlcnRlZCIgeD0iMjYiIHk9IjE5IiB3aWR0aD0i''@;'; + put 'put ''MiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTgtLWFsZXJ0ZWQiIHg9IjgiIHk9IjI0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9''@;'; + put 'put ''ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTktLWFsZXJ0ZWQiIHg9IjE0IiB5PSIyNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0x''@;'; + put 'put ''MC0tYWxlcnRlZCIgeD0iMjAiIHk9IjI0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTExLS1hbGVydGVkIiB4PSIyNiIgeT0iMjQiIHdpZHRoPSIyIiBoZWlnaHQ9''@;'; + put 'put ''IjIiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMTItLWFsZXJ0ZWQiIGQ9Ik0xMCwxMGExLDEsMCwwLDAsMS0xVjNBMSwxLDAsMCwwLDksM1Y5QTEsMSwwLDAsMCwxMCwxMFoiLz48cG9seWdvbiBwb2lu''@;'; + put 'put ''dHM9IjIxLjI5IDYgMTMgNiAxMyA4IDIwLjE0IDggMjEuMjkgNiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xMy0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4y''@;'; + put 'put ''OCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zMi4y''@;'; + put 'put ''NSw2aC00VjlhMi4yLDIuMiwwLDEsMS00LjQsMFY2SDEyLjJWOUEyLjIsMi4yLDAsMCwxLDcuOCw5VjZoLTRBMS43OCwxLjc4LDAsMCwwLDIsNy44MVYzMC4xOUExLjc4LDEuNzgsMCwwLDAsMy43NSwzMmgyOC41QTEuNzgsMS43OCwwLDAsMCwzNCwzMC4xOVY3LjgxQTEuNzgsMS43OCwwLDAs''@;'; + put 'put ''MCwzMi4yNSw2Wk0xMCwyNkg4VjI0aDJabTAtNUg4VjE5aDJabTAtNUg4VjE0aDJabTYsMTBIMTRWMjRoMlptMC01SDE0VjE5aDJabTAtNUgxNFYxNGgyWm02LDEwSDIwVjI0aDJabTAtNUgyMFYxOWgyWm0wLTVIMjBWMTRoMlptNiwxMEgyNlYyNGgyWm0wLTVIMjZWMTloMlptMC01SDI2VjE0''@;'; + put 'put ''aDJaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgZD0iTTEwLDEwYTEsMSwwLDAsMCwxLTFWM0ExLDEsMCwwLDAsOSwzVjlBMSwxLDAsMCwwLDEwLDEwWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHIt''@;'; + put 'put ''aS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIGQ9Ik0yNiwxMGExLDEsMCwwLDAsMS0xVjNhMSwxLDAsMCwwLTIsMFY5QTEsMSwwLDAsMCwyNiwxMFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdl''@;'; + put 'put ''ZCIgZD0iTTEwLDEwYTEsMSwwLDAsMCwxLTFWM0ExLDEsMCwwLDAsOSwzVjlBMSwxLDAsMCwwLDEwLDEwWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIiBkPSJNMzAsMTMuNUE3LjUsNy41LDAs''@;'; + put 'put ''MCwxLDIyLjUsNkgxMi4yVjlBMi4yLDIuMiwwLDAsMSw3LjgsOVY2aC00QTEuNzgsMS43OCwwLDAsMCwyLDcuODFWMzAuMTlBMS43OCwxLjc4LDAsMCwwLDMuNzUsMzJoMjguNUExLjc4LDEuNzgsMCwwLDAsMzQsMzAuMTlWMTIuMzRBNy40NSw3LjQ1LDAsMCwxLDMwLDEzLjVaTTEwLDI2SDhW''@;'; + put 'put ''MjRoMlptMC01SDhWMTloMlptMC01SDhWMTRoMlptNiwxMEgxNFYyNGgyWm0wLTVIMTRWMTloMlptMC01SDE0VjE0aDJabTYsMTBIMjBWMjRoMlptMC01SDIwVjE5aDJabTAtNUgyMFYxNGgyWm02LDEwSDI2VjI0aDJabTAtNUgyNlYxOWgyWm0wLTVIMjZWMTRoMloiLz5cbiAgICAgICAgICAg''@;'; + put 'put ''ICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlk''@;'; + put 'put ''LXBhdGgtMS0tYWxlcnRlZCIgZD0iTTMzLjY4LDE1LjRIMjIuMjNBMy42OCwzLjY4LDAsMCwxLDE5LDkuODlMMjEuMjksNkgxMi4yVjlBMi4yLDIuMiwwLDAsMSw3LjgsOVY2aC00QTEuNzgsMS43OCwwLDAsMCwyLDcuODFWMzAuMTlBMS43OCwxLjc4LDAsMCwwLDMuNzUsMzJoMjguNUExLjc4''@;'; + put 'put ''LDEuNzgsMCwwLDAsMzQsMzAuMTlWMTUuMzhaTTEwLDI2SDhWMjRoMlptMC01SDhWMTloMlptMC01SDhWMTRoMlptNiwxMEgxNFYyNGgyWm0wLTVIMTRWMTloMlptMC01SDE0VjE0aDJabTYsMTBIMjBWMjRoMlptMC01SDIwVjE5aDJabTYsNUgyNlYyNGgyWm0wLTVIMjZWMTloMloiLz5cbiAg''@;'; + put 'put ''ICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIiBkPSJNMTAsMTBhMSwxLDAsMCwwLDEtMVYzQTEsMSwwLDAsMCw5LDNWOUExLDEsMCwwLDAsMTAsMTBaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xh''@;'; + put 'put ''c3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMy0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4y''@;'; + put 'put ''OCwwLDAsMCwyNi44NSwxLjE0WiIvPicpLGUuQ2xyU2hhcGVFdmVudD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTE2LjE3LDI1Ljg2LDEwLjgxLDIwLjVhMSwxLDAsMCwxLDEuNDEtMS40MUwxNi4xNywyM2w4''@;'; + put 'put ''LjY0LTguNjRhMSwxLDAsMCwxLDEuNDEsMS40MVoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTMyLjI1LDZIMjlWOGgzVjMwSDRWOEg3VjZIMy43NUExLjc4LDEuNzgsMCwwLDAsMiw3LjgxVjMwLjE5QTEu''@;'; + put 'put ''NzgsMS43OCwwLDAsMCwzLjc1LDMyaDI4LjVBMS43OCwxLjc4LDAsMCwwLDM0LDMwLjE5VjcuODFBMS43OCwxLjc4LDAsMCwwLDMyLjI1LDZaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIGQ9Ik0xMCwxMGExLDEs''@;'; + put 'put ''MCwwLDAsMS0xVjNBMSwxLDAsMCwwLDksM1Y5QTEsMSwwLDAsMCwxMCwxMFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgZD0iTTI2LDEwYTEsMSwwLDAsMCwxLTFWM2ExLDEsMCwwLDAtMiwwVjlBMSwxLDAsMCww''@;'; + put 'put ''LDI2LDEwWiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiB4PSIxMyIgeT0iNiIgd2lkdGg9IjEwIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2Vk''@;'; + put 'put ''IGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0xMC44MSwyMC41bDUuMzYsNS4zNkwyNi4yMiwxNS44MWExLDEsMCwwLDAtMS40MS0xLjQxTDE2LjE3LDIzbC0zLjk0LTMuOTRhMSwxLDAsMCwwLTEuNDEsMS40MVoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xy''@;'; + put 'put ''LWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiIGQ9Ik0xMCwxMGExLDEsMCwwLDAsMS0xVjNBMSwxLDAsMCwwLDksM1Y5QTEsMSwwLDAsMCwxMCwxMFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNs''@;'; + put 'put ''ci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiIGQ9Ik0zMiwxMy4yMlYzMEg0VjhIN1Y2SDMuNzVBMS43OCwxLjc4LDAsMCwwLDIsNy44MVYzMC4xOUExLjc4LDEuNzgsMCwwLDAsMy43NSwzMmgyOC41QTEuNzgsMS43OCwwLDAsMCwzNCwzMC4xOVYxMi4zNEE3LjQ1LDcuNDUsMCwwLDEsMzIs''@;'; + put 'put ''MTMuMjJaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIiBkPSJNMjIuNSw2SDEzVjhoOS43OEE3LjQ5LDcuNDksMCwwLDEsMjIuNSw2WiIvPlxuICAgICAgICAgICAgICAgIDxjaXJjbGUg''@;'; + put 'put ''Y2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRo''@;'; + put 'put ''LTEtLWFsZXJ0ZWQiIGQ9Ik0xMCwxMGExLDEsMCwwLDAsMS0xVjNBMSwxLDAsMCwwLDksM1Y5QTEsMSwwLDAsMCwxMCwxMFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIgZD0iTTEw''@;'; + put 'put ''LjgxLDIwLjVsNS4zNiw1LjM2TDI2LjIyLDE1LjgxYTEsMSwwLDAsMCwuMjMtLjQxSDIzLjhMMTYuMTcsMjNsLTMuOTQtMy45NGExLDEsMCwwLDAtMS40MSwxLjQxWiIvPlxuICAgICAgICAgICAgICAgIDxwb2x5Z29uIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxp''@;'; + put 'put ''bmUtcGF0aC0zLS1hbGVydGVkIiBwb2ludHM9IjIxLjI5IDYgMTMgNiAxMyA4IDIwLjE0IDggMjEuMjkgNiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIiBkPSJNMzMuNjgsMTUuNEgz''@;'; + put 'put ''MlYzMEg0VjhIN1Y2SDMuNzVBMS43OCwxLjc4LDAsMCwwLDIsNy44MVYzMC4xOUExLjc4LDEuNzgsMCwwLDAsMy43NSwzMmgyOC41QTEuNzgsMS43OCwwLDAsMCwzNCwzMC4xOVYxNS4zOFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBj''@;'; + put 'put ''bHItaS1vdXRsaW5lLXBhdGgtNS0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIvPlxu''@;'; + put 'put ''ICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0xMCwxMGExLDEsMCwwLDAsMS0xVjNBMSwxLDAsMCwwLDksM1Y5QTEsMSwwLDAsMCwxMCwxMFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQg''@;'; + put 'put ''Y2xyLWktc29saWQtcGF0aC0yIiBkPSJNMjYsMTBhMSwxLDAsMCwwLDEtMVYzYTEsMSwwLDAsMC0yLDBWOUExLDEsMCwwLDAsMjYsMTBaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIgZD0iTTMyLjI1LDZoLTRWOWEyLjIs''@;'; + put 'put ''Mi4yLDAsMCwxLTQuNCwwVjZIMTIuMlY5QTIuMiwyLjIsMCwwLDEsNy44LDlWNmgtNEExLjc4LDEuNzgsMCwwLDAsMiw3LjgxVjMwLjE5QTEuNzgsMS43OCwwLDAsMCwzLjc1LDMyaDI4LjVBMS43OCwxLjc4LDAsMCwwLDM0LDMwLjE5VjcuODFBMS43OCwxLjc4LDAsMCwwLDMyLjI1LDZaTTI1''@;'; + put 'put ''Ljk0LDE2LjU4bC05LjY3LDkuNjdMMTEsMjAuOTRBMS4zNiwxLjM2LDAsMCwxLDEyLjksMTlsMy4zOCwzLjM4TDI0LDE0LjY2YTEuMzYsMS4zNiwwLDEsMSwxLjkzLDEuOTNaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlk''@;'; + put 'put ''LXBhdGgtMS0tYWxlcnRlZCIgZD0iTTEwLDEwYTEsMSwwLDAsMCwxLTFWM0ExLDEsMCwwLDAsOSwzVjlBMSwxLDAsMCwwLDEwLDEwWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQiIGQ9Ik0z''@;'; + put 'put ''My42OCwxNS40SDI2LjNhMS4zNCwxLjM0LDAsMCwxLS4zNiwxLjE4bC05LjY3LDkuNjdMMTEsMjAuOTRBMS4zNiwxLjM2LDAsMCwxLDEyLjksMTlsMy4zOCwzLjM4LDctN2gtMUEzLjY4LDMuNjgsMCwwLDEsMTksOS44OUwyMS4yOSw2SDEyLjJWOUEyLjIsMi4yLDAsMCwxLDcuOCw5VjZoLTRB''@;'; + put 'put ''MS43OCwxLjc4LDAsMCwwLDIsNy44MVYzMC4xOUExLjc4LDEuNzgsMCwwLDAsMy43NSwzMmgyOC41QTEuNzgsMS43OCwwLDAsMCwzNCwzMC4xOVYxNS4zOFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0zLS1h''@;'; + put 'put ''bGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGgg''@;'; + put 'put ''Y2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0xMCwxMGExLDEsMCwwLDAsMS0xVjNBMSwxLDAsMCwwLDksM1Y5QTEsMSwwLDAsMCwxMCwxMFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdl''@;'; + put 'put ''ZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCIgZD0iTTMwLDEzLjVBNy41LDcuNSwwLDAsMSwyMi41LDZIMTIuMlY5QTIuMiwyLjIsMCwwLDEsNy44LDlWNmgtNEExLjc4LDEuNzgsMCwwLDAsMiw3LjgxVjMwLjE5QTEuNzgsMS43OCwwLDAsMCwzLjc1LDMyaDI4LjVBMS43OCwxLjc4LDAs''@;'; + put 'put ''MCwwLDM0LDMwLjE5VjEyLjM0QTcuNDUsNy40NSwwLDAsMSwzMCwxMy41Wm0tNC4wNiwzLjA4LTkuNjcsOS42N0wxMSwyMC45NEExLjM2LDEuMzYsMCwwLDEsMTIuOSwxOWwzLjM4LDMuMzhMMjQsMTQuNjZhMS4zNiwxLjM2LDAsMSwxLDEuOTMsMS45M1oiLz5cbiAgICAgICAgICAgICAgICA8''@;'; + put 'put ''Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+JyksZS5DbHJTaGFwZUV5ZT0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzMuNjIsMTcuNTNjLTMuMzctNi4yMy05''@;'; + put 'put ''LjI4LTEwLTE1LjgyLTEwUzUuMzQsMTEuMywyLDE3LjUzTDEuNzIsMThsLjI2LjQ4YzMuMzcsNi4yMyw5LjI4LDEwLDE1LjgyLDEwczEyLjQ2LTMuNzIsMTUuODItMTBsLjI2LS40OFpNMTcuOCwyNi40M0MxMi4xNywyNi40Myw3LDIzLjI5LDQsMThjMy01LjI5LDguMTctOC40MywxMy44LTgu''@;'; + put 'put ''NDNTMjguNTQsMTIuNzIsMzEuNTksMThDMjguNTQsMjMuMjksMjMuNDIsMjYuNDMsMTcuOCwyNi40M1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTguMDksMTEuMTdBNi44Niw2Ljg2LDAsMSwwLDI1LDE4LDYu''@;'; + put 'put ''ODYsNi44NiwwLDAsMCwxOC4wOSwxMS4xN1ptMCwxMS43MkE0Ljg2LDQuODYsMCwxLDEsMjMsMTgsNC44Nyw0Ljg3LDAsMCwxLDE4LjA5LDIyLjg5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy42MiwxNy41''@;'; + put 'put ''M2MtMy4zNy02LjIzLTkuMjgtMTAtMTUuODItMTBTNS4zNCwxMS4zLDIsMTcuNTNMMS43MiwxOGwuMjYuNDhjMy4zNyw2LjIzLDkuMjgsMTAsMTUuODIsMTBzMTIuNDYtMy43MiwxNS44Mi0xMGwuMjYtLjQ4Wk0xNy44LDI2LjQzQzEyLjE3LDI2LjQzLDcsMjMuMjksNCwxOGMzLTUuMjksOC4x''@;'; + put 'put ''Ny04LjQzLDEzLjgtOC40M1MyOC41NCwxMi43MiwzMS41OSwxOEMyOC41NCwyMy4yOSwyMy40MiwyNi40MywxNy44LDI2LjQzWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMTguMDkiIGN5PSIxOC4wMyIgcj0iNi44''@;'; + put 'put ''NiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIvPicpLGUuQ2xyU2hhcGVFeWVIaWRlPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yNS4xOSwyMC40QTYuNzgsNi43OCwwLDAsMCwyNS42MiwxOGE2Ljg2LDYuODYsMCwwLDAtNi44Ni02Ljg2LDYuNzksNi43OSww''@;'; + put 'put ''LDAsMC0yLjM3LjQzTDE4LDEzLjIzYTQuNzgsNC43OCwwLDAsMSwuNzQtLjA2QTQuODcsNC44NywwLDAsMSwyMy42MiwxOGE0Ljc5LDQuNzksMCwwLDEtLjA2Ljc0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0z''@;'; + put 'put ''NC4yOSwxNy41M2MtMy4zNy02LjIzLTkuMjgtMTAtMTUuODItMTBhMTYuODIsMTYuODIsMCwwLDAtNS4yNC44NUwxNC44NCwxMGExNC43OCwxNC43OCwwLDAsMSwzLjYzLS40N2M1LjYzLDAsMTAuNzUsMy4xNCwxMy44LDguNDNhMTcuNzUsMTcuNzUsMCwwLDEtNC4zNyw1LjFsMS40MiwxLjQy''@;'; + put 'put ''YTE5LjkzLDE5LjkzLDAsMCwwLDUtNmwuMjYtLjQ4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik00Ljg3LDUuNzhsNC40Niw0LjQ2YTE5LjUyLDE5LjUyLDAsMCwwLTYuNjksNy4yOUwyLjM4LDE4bC4yNi40OGMz''@;'; + put 'put ''LjM3LDYuMjMsOS4yOCwxMCwxNS44MiwxMGExNi45MywxNi45MywwLDAsMCw3LjM3LTEuNjlsNSw1LDEuNzUtMS41LTI2LTI2Wm05Ljc1LDkuNzUsNi42NSw2LjY1YTQuODEsNC44MSwwLDAsMS0yLjUuNzJBNC44Nyw0Ljg3LDAsMCwxLDEzLjksMTgsNC44MSw0LjgxLDAsMCwxLDE0LjYyLDE1''@;'; + put 'put ''LjUzWm0tMS40NS0xLjQ1YTYuODUsNi44NSwwLDAsMCw5LjU1LDkuNTVsMS42LDEuNmExNC45MSwxNC45MSwwLDAsMS01Ljg2LDEuMmMtNS42MywwLTEwLjc1LTMuMTQtMTMuOC04LjQzYTE3LjI5LDE3LjI5LDAsMCwxLDYuMTItNi4zWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0''@;'; + put 'put ''bGluZS1wYXRoLTMiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOC4zNywxMS4xN0E2Ljc5LDYuNzksMCwwLDAsMTYsMTEuNmw4LjgsOC44QTYuNzgsNi43OCwwLDAsMCwyNS4yMywxOCw2Ljg2LDYuODYsMCwwLDAsMTguMzcsMTEuMTdaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29s''@;'; + put 'put ''aWQtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzQuMjksMTcuNTNjLTMuMzctNi4yMy05LjI4LTEwLTE1LjgyLTEwYTE2LjgyLDE2LjgyLDAsMCwwLTUuMjQuODVMMTQuODQsMTBhMTQuNzgsMTQuNzgsMCwwLDEsMy42My0uNDdjNS42MywwLDEwLjc1LDMuMTQsMTMuOCw4LjQz''@;'; + put 'put ''YTE3Ljc1LDE3Ljc1LDAsMCwxLTQuMzcsNS4xbDEuNDIsMS40MmExOS45MywxOS45MywwLDAsMCw1LTZsLjI2LS40OFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik00Ljg3LDUuNzhsNC40Niw0LjQ2YTE5LjUyLDE5LjUy''@;'; + put 'put ''LDAsMCwwLTYuNjksNy4yOUwyLjM4LDE4bC4yNi40OGMzLjM3LDYuMjMsOS4yOCwxMCwxNS44MiwxMGExNi45MywxNi45MywwLDAsMCw3LjM3LTEuNjlsNSw1LDEuNzUtMS41LTI2LTI2Wm04LjMsOC4zYTYuODUsNi44NSwwLDAsMCw5LjU1LDkuNTVsMS42LDEuNmExNC45MSwxNC45MSwwLDAs''@;'; + put 'put ''MS01Ljg2LDEuMmMtNS42MywwLTEwLjc1LTMuMTQtMTMuOC04LjQzYTE3LjI5LDE3LjI5LDAsMCwxLDYuMTItNi4zWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIvPicpLGUuQ2xyU2hhcGVTdGVwRm9yd2FyZDI9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTcu''@;'; + put 'put ''MDgsNi41MmExLjY4LDEuNjgsMCwwLDAsMCwyLjRMMTYuNTEsMTgsNy4xMiwyNy4wOGExLjcsMS43LDAsMCwwLDIuMzYsMi40NGgwTDIxLjQsMTgsOS40OCw2LjQ3QTEuNjksMS42OSwwLDAsMCw3LjA4LDYuNTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIg''@;'; + put 'put ''Lz48cGF0aCBkPSJNMjYuNDksNWExLjcsMS43LDAsMCwwLTEuNywxLjdWMjkuM2ExLjcsMS43LDAsMCwwLDMuNCwwVjYuN0ExLjcsMS43LDAsMCwwLDI2LjQ5LDVaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz4nKSxlLkNsclNoYXBlQXJyb3c9KDAsYS5j''@;'; + put 'put ''bHJJY29uU1ZHKSgnPHBhdGggZD0iTTI3LjY2LDE1LjYxLDE4LDYsOC4zNCwxNS42MUExLDEsMCwxLDAsOS43NSwxN0wxNyw5LjgxVjI4Ljk0YTEsMSwwLDEsMCwyLDBWOS44MUwyNi4yNSwxN2ExLDEsMCwwLDAsMS40MS0xLjQyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGlu''@;'; + put 'put ''ZS1wYXRoLTEiLz4nKSxlLkNvcmVTaGFwZXM9eyJ1bmtub3duLXN0YXR1cyI6ZS5DbHJTaGFwZVVua25vd25TdGF0dXMsaG9tZTplLkNsclNoYXBlSG9tZSxjb2c6ZS5DbHJTaGFwZUNvZyxjaGVjazplLkNsclNoYXBlQ2hlY2ssdGltZXM6ZS5DbHJTaGFwZVRpbWVzLCJleGNsYW1hdGlvbi10''@;'; + put 'put ''cmlhbmdsZSI6ZS5DbHJTaGFwZUV4Y2xhbWF0aW9uVHJpYW5nbGUsImV4Y2xhbWF0aW9uLWNpcmNsZSI6ZS5DbHJTaGFwZUV4Y2xhbWF0aW9uQ2lyY2xlLCJjaGVjay1jaXJjbGUiOmUuQ2xyU2hhcGVDaGVja0NpcmNsZSwiaW5mby1jaXJjbGUiOmUuQ2xyU2hhcGVJbmZvQ2lyY2xlLCJpbmZv''@;'; + put 'put ''LXN0YW5kYXJkIjplLkNsclNoYXBlSW5mb1N0YW5kYXJkLCJzdWNjZXNzLXN0YW5kYXJkIjplLkNsclNoYXBlU3VjY2Vzc1N0YW5kYXJkLCJlcnJvci1zdGFuZGFyZCI6ZS5DbHJTaGFwZUVycm9yU3RhbmRhcmQsIndhcm5pbmctc3RhbmRhcmQiOmUuQ2xyU2hhcGVXYXJuaW5nU3RhbmRhcmQs''@;'; + put 'put ''ImhlbHAtaW5mbyI6ZS5DbHJTaGFwZUhlbHBJbmZvLGJhcnM6ZS5DbHJTaGFwZUJhcnMsdXNlcjplLkNsclNoYXBlVXNlcixhbmdsZTplLkNsclNoYXBlQW5nbGUsZm9sZGVyOmUuQ2xyU2hhcGVGb2xkZXIsImZvbGRlci1vcGVuIjplLkNsclNoYXBlRm9sZGVyT3BlbixiZWxsOmUuQ2xyU2hh''@;'; + put 'put ''cGVCZWxsLGltYWdlOmUuQ2xyU2hhcGVJbWFnZSxjbG91ZDplLkNsclNoYXBlQ2xvdWQsImVsbGlwc2lzLWhvcml6b250YWwiOmUuQ2xyU2hhcGVFbGxpcHNpc0hvcml6b250YWwsImVsbGlwc2lzLXZlcnRpY2FsIjplLkNsclNoYXBlRWxsaXBzaXNWZXJ0aWNhbCwiZmlsdGVyLWdyaWQiOmUu''@;'; + put 'put ''Q2xyU2hhcGVGaWx0ZXJHcmlkLCJmaWx0ZXItZ3JpZC1jaXJjbGUiOmUuQ2xyU2hhcGVGaWx0ZXJHcmlkQ2lyY2xlLCJ2bS1idWciOmUuQ2xyU2hhcGVWbUJ1ZyxzZWFyY2g6ZS5DbHJTaGFwZVNlYXJjaCwidmlldy1jb2x1bW5zIjplLkNsclNoYXBlVmlld0NvbHVtbnMsImFuZ2xlLWRvdWJs''@;'; + put 'put ''ZSI6ZS5DbHJTaGFwZUFuZ2xlRG91YmxlLGNhbGVuZGFyOmUuQ2xyU2hhcGVDYWxlbmRhcixldmVudDplLkNsclNoYXBlRXZlbnQsZXllOmUuQ2xyU2hhcGVFeWUsImV5ZS1oaWRlIjplLkNsclNoYXBlRXllSGlkZSwic3RlcC1mb3J3YXJkLTIiOmUuQ2xyU2hhcGVTdGVwRm9yd2FyZDIsYXJy''@;'; + put 'put ''b3c6ZS5DbHJTaGFwZUFycm93fSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5Db3JlU2hhcGVzLCJob3VzZSIsKDAsci5kZXNjcmlwdG9yQ29uZmlnKShlLkNvcmVTaGFwZXMuaG9tZSkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLkNvcmVTaGFwZXMsInNldHRpbmdzIiwoMCxyLmRlc2NyaXB0''@;'; + put 'put ''b3JDb25maWcpKGUuQ29yZVNoYXBlcy5jb2cpKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5Db3JlU2hhcGVzLCJzdWNjZXNzIiwoMCxyLmRlc2NyaXB0b3JDb25maWcpKGUuQ29yZVNoYXBlcy5jaGVjaykpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLkNvcmVTaGFwZXMsImNsb3NlIiwoMCxy''@;'; + put 'put ''LmRlc2NyaXB0b3JDb25maWcpKGUuQ29yZVNoYXBlcy50aW1lcykpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLkNvcmVTaGFwZXMsIndhcm5pbmciLCgwLHIuZGVzY3JpcHRvckNvbmZpZykoZS5Db3JlU2hhcGVzWyJleGNsYW1hdGlvbi10cmlhbmdsZSJdKSksT2JqZWN0LmRlZmluZVByb3Bl''@;'; + put 'put ''cnR5KGUuQ29yZVNoYXBlcywiZXJyb3IiLCgwLHIuZGVzY3JpcHRvckNvbmZpZykoZS5Db3JlU2hhcGVzWyJleGNsYW1hdGlvbi1jaXJjbGUiXSkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLkNvcmVTaGFwZXMsImluZm8iLCgwLHIuZGVzY3JpcHRvckNvbmZpZykoZS5Db3JlU2hhcGVzWyJp''@;'; + put 'put ''bmZvLWNpcmNsZSJdKSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUuQ29yZVNoYXBlcywibWVudSIsKDAsci5kZXNjcmlwdG9yQ29uZmlnKShlLkNvcmVTaGFwZXMuYmFycykpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLkNvcmVTaGFwZXMsImF2YXRhciIsKDAsci5kZXNjcmlwdG9yQ29uZmln''@;'; + put 'put ''KShlLkNvcmVTaGFwZXMudXNlcikpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLkNvcmVTaGFwZXMsImNhcmV0IiwoMCxyLmRlc2NyaXB0b3JDb25maWcpKGUuQ29yZVNoYXBlcy5hbmdsZSkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLkNvcmVTaGFwZXMsImRpcmVjdG9yeSIsKDAsci5kZXNj''@;'; + put 'put ''cmlwdG9yQ29uZmlnKShlLkNvcmVTaGFwZXMuZm9sZGVyKSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUuQ29yZVNoYXBlcywibm90aWZpY2F0aW9uIiwoMCxyLmRlc2NyaXB0b3JDb25maWcpKGUuQ29yZVNoYXBlcy5iZWxsKSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUuQ29yZVNoYXBlcywi''@;'; + put 'put ''Y29sbGFwc2UiLCgwLHIuZGVzY3JpcHRvckNvbmZpZykoZS5Db3JlU2hhcGVzWyJhbmdsZS1kb3VibGUiXSkpfSwiLi9wcm9qZWN0cy9pY29ucy9zcmMvc2hhcGVzL2Vzc2VudGlhbC1zaGFwZXMudHMiOmZ1bmN0aW9uKEEsZSxjKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5''@;'; + put 'put ''KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuQ2xyU2hhcGVMb2dvdXQ9ZS5DbHJTaGFwZUxvZ2luPWUuQ2xyU2hhcGVIZWxwPWUuQ2xyU2hhcGVDb3B5PWUuQ2xyU2hhcGVDaGlsZEFycm93PWUuQ2xyU2hhcGVDaXJjbGVBcnJvdz1lLkNsclNoYXBlQWxhcm1DbG9jaz1lLkNsclNoYXBl''@;'; + put 'put ''Q2xvY2s9ZS5DbHJTaGFwZUhpc3Rvcnk9ZS5DbHJTaGFwZVRhZ3M9ZS5DbHJTaGFwZVRhZz1lLkNsclNoYXBlVHJhc2g9ZS5DbHJTaGFwZVRpbWVzQ2lyY2xlPWUuQ2xyU2hhcGVCYW49ZS5DbHJTaGFwZVBsdXNDaXJjbGU9ZS5DbHJTaGFwZU1pbnVzQ2lyY2xlPWUuQ2xyU2hhcGVNaW51cz1l''@;'; + put 'put ''LkNsclNoYXBlUGx1cz1lLkNsclNoYXBlRmlsZT1lLkNsclNoYXBlUGluPWUuQ2xyU2hhcGVGaWx0ZXI9ZS5DbHJTaGFwZVBvcE91dD1lLkNsclNoYXBlVXNlcnM9ZS5DbHJTaGFwZVVubG9jaz1lLkNsclNoYXBlTG9jaz1lLkNsclNoYXBlVXBsb2FkPWUuQ2xyU2hhcGVEb3dubG9hZD1lLkNs''@;'; + put 'put ''clNoYXBlTGlnaHRidWxiPWUuQ2xyU2hhcGVWaWV3Q2FyZHM9ZS5DbHJTaGFwZVZpZXdMaXN0PWUuQ2xyU2hhcGVTeW5jPWUuQ2xyU2hhcGVSZWZyZXNoPWUuQ2xyU2hhcGVOb3RlPWUuQ2xyU2hhcGVQZW5jaWw9ZS5DbHJTaGFwZVRoZXJtb21ldGVyPWUuQ2xyU2hhcGVCdWc9ZS5DbHJTaGFw''@;'; + put 'put ''ZVNjaXNzb3JzPWUuQ2xyU2hhcGVBc3Rlcmlzaz1lLkNsclNoYXBlQm9vaz1lLkNsclNoYXBlT2JqZWN0cz1lLkNsclNoYXBlUmVzaXplPWUuQ2xyU2hhcGVDdXJzb3JIYW5kQ2xpY2s9ZS5DbHJTaGFwZUN1cnNvckhhbmQ9ZS5DbHJTaGFwZUN1cnNvckFycm93PWUuQ2xyU2hhcGVHcmlkVmll''@;'; + put 'put ''dz1lLkNsclNoYXBlQnViYmxlRXhjbGFtYXRpb249ZS5DbHJTaGFwZU5ldz1lLkNsclNoYXBlQWxhcm1PZmY9ZS5DbHJTaGFwZVBpbmJvYXJkPWUuQ2xyU2hhcGVBZGRUZXh0PXZvaWQgMCxlLkNsclNoYXBlQ2xvbmU9ZS5DbHJTaGFwZUN1cnNvck1vdmU9ZS5DbHJTaGFwZVdhbmQ9ZS5DbHJT''@;'; + put 'put ''aGFwZVN1bj1lLkNsclNoYXBlTW9vbj1lLkNsclNoYXBlRmlsdGVyMj1lLkNsclNoYXBlRHJhZ0hhbmRsZT1lLkNsclNoYXBlQ29weVRvQ2xpcGJvYXJkPWUuQ2xyU2hhcGVDb2xvclBpY2tlcj1lLkNsclNoYXBlQnJpZWZjYXNlPWUuQ2xyU2hhcGVFeHBhbmRDYXJkPWUuQ2xyU2hhcGVDb2xs''@;'; + put 'put ''YXBzZUNhcmQ9ZS5DbHJTaGFwZVNvcnRCeT1lLkNsclNoYXBlQWNjZXNzaWJpbGl0eTI9ZS5DbHJTaGFwZUFjY2Vzc2liaWxpdHkxPWUuQ2xyU2hhcGVTaHJpbms9ZS5DbHJTaGFwZVBhcGVyY2xpcD1lLkNsclNoYXBlRmlsZUdyb3VwPWUuQ2xyU2hhcGVSZXBlYXQ9ZS5DbHJTaGFwZUlkQmFk''@;'; + put 'put ''Z2U9ZS5DbHJTaGFwZUJhbGFuY2U9ZS5DbHJTaGFwZU9yZ2FuaXphdGlvbj1lLkNsclNoYXBlTm9BY2Nlc3M9ZS5DbHJTaGFwZUhvdXJnbGFzcz1lLkNsclNoYXBlRmxhbWU9ZS5DbHJTaGFwZVRhcmdldD1lLkNsclNoYXBlQnVsbHNleWU9ZS5DbHJTaGFwZVdyZW5jaD1lLkNsclNoYXBlQm9s''@;'; + put 'put ''dD1lLkNsclNoYXBlTGlicmFyeT1lLkNsclNoYXBlS2V5PWUuQ2xyU2hhcGVab29tT3V0PWUuQ2xyU2hhcGVab29tSW49ZS5DbHJTaGFwZVdpbmRvd1Jlc3RvcmU9ZS5DbHJTaGFwZVdpbmRvd01pbj1lLkNsclNoYXBlV2luZG93TWF4PWUuQ2xyU2hhcGVXaW5kb3dDbG9zZT1lLkNsclNoYXBl''@;'; + put 'put ''VG9vbHM9ZS5DbHJTaGFwZVN3aXRjaD1lLkNsclNoYXBlVHdvV2F5QXJyb3dzPWUuQ2xyU2hhcGVGaWxlU2V0dGluZ3M9ZS5DbHJTaGFwZVNjcm9sbD1lLkNsclNoYXBlVW5kbz1lLkNsclNoYXBlUmVkbz1lLkNsclNoYXBlTGlzdD1lLkNsclNoYXBlRmlyZXdhbGw9ZS5DbHJTaGFwZUNsaXBi''@;'; + put 'put ''b2FyZD1lLkNsclNoYXBlU2xpZGVyPWUuQ2xyU2hhcGVXb3JsZD1lLkNsclNoYXBlUHJpbnRlcj12b2lkIDAsZS5Fc3NlbnRpYWxTaGFwZXM9ZS5DbHJTaGFwZUNvbG9yUGFsZXR0ZT1lLkNsclNoYXBlRmlyc3RBaWQ9ZS5DbHJTaGFwZUJldGE9ZS5DbHJTaGFwZURvdENpcmNsZT1lLkNsclNo''@;'; + put 'put ''YXBlQ2lyY2xlPWUuQ2xyU2hhcGVDcm9zc2hhaXJzPWUuQ2xyU2hhcGVWb2x1bWU9ZS5DbHJTaGFwZVRhYmxlPWUuQ2xyU2hhcGVTbm93Zmxha2U9ZS5DbHJTaGFwZUZ1ZWw9ZS5DbHJTaGFwZUZvcm09ZS5DbHJTaGFwZUZpc2g9ZS5DbHJTaGFwZVRyZWU9ZS5DbHJTaGFwZVJlY3ljbGU9ZS5D''@;'; + put 'put ''bHJTaGFwZUZpbHRlck9mZj1lLkNsclNoYXBlRmlsZVppcD1lLkNsclNoYXBlQ3Vyc29ySGFuZE9wZW49ZS5DbHJTaGFwZUN1cnNvckhhbmRHcmFiPWUuQ2xyU2hhcGVUcmVlVmlldz1lLkNsclNoYXBlUG9ydHJhaXQ9ZS5DbHJTaGFwZVBhc3RlPWUuQ2xyU2hhcGVMYW5kc2NhcGU9ZS5DbHJT''@;'; + put 'put ''aGFwZUVyYXNlcj1lLkNsclNoYXBlRHJhZ0hhbmRsZUNvcm5lcj1lLkNsclNoYXBlRGV0YWlscz12b2lkIDA7dmFyIHI9YygiLi9wcm9qZWN0cy9pY29ucy9zcmMvdXRpbHMvZGVzY3JpcHRvci1jb25maWcudHMiKSxhPWMoIi4vcHJvamVjdHMvaWNvbnMvc3JjL3V0aWxzL3N2Zy10YWctZ2Vu''@;'; + put 'put ''ZXJhdG9yLnRzIik7Yz1jKCIuL3Byb2plY3RzL2ljb25zL3NyYy9zaGFwZXMvY29yZS1zaGFwZXMudHMiKSxlLkNsclNoYXBlQWRkVGV4dD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMxLDIxSDEzYTEsMSww''@;'; + put 'put ''LDAsMCwwLDJIMzFhMSwxLDAsMCwwLDAtMloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMTIsMTZhMSwxLDAsMCwwLDEsMUgzMWExLDEsMCwwLDAsMC0ySDEzQTEsMSwwLDAsMCwxMiwxNloiLz5cbiAgICAgICAg''@;'; + put 'put ''ICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJNMjcsMjdIMTNhMSwxLDAsMCwwLDAsMkgyN2ExLDEsMCwwLDAsMC0yWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIGQ9''@;'; + put 'put ''Ik0xNS44OSw5YTEsMSwwLDAsMC0xLTFIMTBWMy4yMWExLDEsMCwwLDAtMiwwVjhIMi44OWExLDEsMCwwLDAsMCwySDh2NS4yMWExLDEsMCwwLDAsMiwwVjEwaDQuODlBMSwxLDAsMCwwLDE1Ljg5LDlaIi8+JyksZS5DbHJTaGFwZVBpbmJvYXJkPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGNs''@;'; + put 'put ''YXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzAsMzAsNiwzMCw2LDZIMjJWNEg2QTIsMiwwLDAsMCw0LDZWMzBhMiwyLDAsMCwwLDIsMkgzMGEyLDIsMCwwLDAsMi0yVjE0SDMwWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUg''@;'; + put 'put ''Y2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0zMy41Nyw5LjMzbC03LTdhMSwxLDAsMCwwLTEuNDEsMS40MWw3LDdhMSwxLDAsMSwwLDEuNDEtMS40MVoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJNMjIuMSwxMS4x''@;'; + put 'put ''OWwuNy41TDI2LjQ2LDgsMjUsNi41NiwyMi41MSw5LjEzYy0yLS44Ny00LjM1LjE0LTUuOTIsMS42OGwtLjcyLjcxLDMuNTQsMy41NC0zLjY3LDMuNjcsMS40MSwxLjQxLDMuNjctMy42N0wyNC4zNywyMGwuNzEtLjcyYzEuNTQtMS41NywyLjU1LTMuOTIsMS42OC01LjkzbDIuNTQtMi41N0wy''@;'; + put 'put ''Ny44OCw5LjM4LDI0LjIxLDEzLjFsLjQ5LjY5Yy43NiwxLC4yNSwyLjM3LS40MSwzLjMzTDE4Ljc3LDExLjZDMTkuODQsMTAuODYsMjEuMTUsMTAuNSwyMi4xLDExLjE5WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTMw''@;'; + put 'put ''LDMwLDYsMzAsNiw2SDIyVjRINkEyLDIsMCwwLDAsNCw2VjMwYTIsMiwwLDAsMCwyLDJIMzBhMiwyLDAsMCwwLDItMlYxNEgzMFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGQ9Ik0zMy41Nyw5LjMzbC03LTdhMSwxLDAsMCww''@;'; + put 'put ''LTEuNDEsMS40MWwxLjM4LDEuMzgtNCw0Yy0yLS44Ny00LjM1LjE0LTUuOTIsMS42OGwtLjcyLjcxLDMuNTQsMy41NC0zLjY3LDMuNjcsMS40MSwxLjQxLDMuNjctMy42N0wyNC4zNywyMGwuNzEtLjcyYzEuNTQtMS41NywyLjU1LTMuOTEsMS42OC01LjkybDQtNCwxLjM4LDEuMzhhMSwxLDAs''@;'; + put 'put ''MSwwLDEuNDEtMS40MVoiLz4nKSxlLkNsclNoYXBlQWxhcm1PZmY9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMS40NywzLjg0YTUuNzgsNS43OCwwLDAsMC03LjM3LS42MywxNi4wOCwxNi4wOCwwLDAsMSw4''@;'; + put 'put ''LjIsNy42NUE1LjczLDUuNzMsMCwwLDAsMzEuNDcsMy44NFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMjUuMzMsMjEuNTRhLjkuOSwwLDAsMC0uNDEtMS4ybC0zLjItMS41NkwyNC44OSwyMkEuODkuODksMCww''@;'; + put 'put ''LDAsMjUuMzMsMjEuNTRaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgZD0iTTE4LDguNmEuOS45LDAsMCwwLS45Ljl2NC42bDEuOCwxLjgxVjkuNUEuOS45LDAsMCwwLDE4LDguNloiLz5cbiAgICAgICAgICAgIDxwYXRo''@;'; + put 'put ''IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiBkPSJNMTEuNDIsMy40M2E1LjgsNS44LDAsMCwwLTUuODEtLjgxTDguMyw1LjMyQTE2LDE2LDAsMCwxLDExLjQyLDMuNDNaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1v''@;'; + put 'put ''dXRsaW5lLXBhdGgtNSIgZD0iTTE4LDRhMTMuOTEsMTMuOTEsMCwwLDAtOC4zLDIuNzVsMS40MiwxLjQzQTEyLDEyLDAsMCwxLDI3LjgyLDI0LjlsMS40MiwxLjQzQTE0LDE0LDAsMCwwLDE4LDRaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRs''@;'; + put 'put ''aW5lLXBhdGgtNiIgZD0iTTEuNTYsNC4yMSwyLjczLDUuMzhhNS43LDUuNywwLDAsMCwuNjcsNi4xQTE1Ljc4LDE1Ljc4LDAsMCwxLDUuNDYsOC4xMkw2Ljg4LDkuNTVBMTMuOTQsMTMuOTQsMCwwLDAsOC4xMSwyNy44OEw1LjU2LDMwLjQzQTEsMSwwLDEsMCw3LDMxLjg0bDIuNjYtMi42NmEx''@;'; + put 'put ''My44OSwxMy44OSwwLDAsMCwxNi44LDBsNC4xNCw0LjE1TDMyLDMxLjksMywyLjhaTTI1LDI3LjcyQTExLjg5LDExLjg5LDAsMCwxLDE4LDMwLDEyLDEyLDAsMCwxLDYsMThhMTEuODksMTEuODksMCwwLDEsMi4yOS03WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlk''@;'; + put 'put ''IGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTMxLjQ3LDMuODRhNS43OCw1Ljc4LDAsMCwwLTcuMzctLjYzLDE2LjA4LDE2LjA4LDAsMCwxLDguMiw3LjY1QTUuNzMsNS43MywwLDAsMCwzMS40NywzLjg0WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNv''@;'; + put 'put ''bGlkLXBhdGgtMiIgZD0iTTExLjQyLDMuNDNhNS44LDUuOCwwLDAsMC01Ljc3LS44Mkw4LjMzLDUuM0ExNiwxNiwwLDAsMSwxMS40MiwzLjQzWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIgZD0iTTI0LjkyLDIxLjk0bDQuMzQs''@;'; + put 'put ''NC4zNkExNCwxNCwwLDAsMCw5Ljc1LDYuNzNMMTcsMTRWOS42OWExLDEsMCwwLDEsMiwwVjE2bDIuMzMsMi4zNEwyNSwyMC4xYTEsMSwwLDAsMSwuNDcsMS4zM0ExLDEsMCwwLDEsMjQuOTIsMjEuOTRaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29s''@;'; + put 'put ''aWQtcGF0aC00IiBkPSJNMS42MSw0LjIxLDIuNzMsNS4zNGE1LjczLDUuNzMsMCwwLDAsLjY3LDYuMTVBMTUuODgsMTUuODgsMCwwLDEsNS40OCw4LjFMNi45MSw5LjUyQTEzLjk0LDEzLjk0LDAsMCwwLDguMTEsMjcuODhMNS41NiwzMC40M0ExLDEsMCwxLDAsNywzMS44NGwyLjY2LTIuNjZh''@;'; + put 'put ''MTMuODksMTMuODksMCwwLDAsMTYuODMsMGw0LjE2LDQuMTdMMzIsMzEuOSwzLDIuOFoiLz4nKSxlLkNsclNoYXBlTmV3PSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzQuNTksMjNsLTQuMDgtNSw0LTQuOWEx''@;'; + put 'put ''LjgyLDEuODIsMCwwLDAsLjIzLTEuOTRBMS45MywxLjkzLDAsMCwwLDMyLjk0LDEwaC0zMUExLjkxLDEuOTEsMCwwLDAsMCwxMS44OFYyNC4xM0ExLjkxLDEuOTEsMCwwLDAsMS45NCwyNkgzMy4wNWExLjkzLDEuOTMsMCwwLDAsMS43Ny0xLjA5QTEuODIsMS44MiwwLDAsMCwzNC41OSwyM1pN''@;'; + put 'put ''MiwyNFYxMkgzMi43OGwtNC44NCw1LjkzTDMyLjg1LDI0WiIvPlxuICAgICAgICAgICAgPHBvbHlnb24gIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBwb2ludHM9IjkuMzkgMTkuMzUgNi4xMyAxNSA1IDE1IDUgMjEuMTggNi4xMyAyMS4xOCA2LjEzIDE2Ljg0''@;'; + put 'put ''IDkuMzkgMjEuMTggMTAuNTEgMjEuMTggMTAuNTEgMTUgOS4zOSAxNSA5LjM5IDE5LjM1Ii8+XG4gICAgICAgICAgICA8cG9seWdvbiAgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIHBvaW50cz0iMTIuMTggMjEuMTggMTYuODQgMjEuMTggMTYuODQgMjAuMTYg''@;'; + put 'put ''MTMuMzEgMjAuMTYgMTMuMzEgMTguNTUgMTYuNSAxOC41NSAxNi41IDE3LjUyIDEzLjMxIDE3LjUyIDEzLjMxIDE2LjAzIDE2Ljg0IDE2LjAzIDE2Ljg0IDE1IDEyLjE4IDE1IDEyLjE4IDIxLjE4Ii8+XG4gICAgICAgICAgICA8cG9seWdvbiAgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWkt''@;'; + put 'put ''b3V0bGluZS1wYXRoLTQiIHBvaW50cz0iMjQuNTIgMTkuNDMgMjMuMDYgMTUgMjEuODQgMTUgMjAuMzcgMTkuNDMgMTkuMDUgMTUgMTcuODIgMTUgMTkuNzggMjEuMTggMjAuODkgMjEuMTggMjIuNDUgMTYuNTkgMjQgMjEuMTggMjUuMTMgMjEuMTggMjcuMDggMTUgMjUuODUgMTUgMjQuNTIg''@;'; + put 'put ''MTkuNDMiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zNC4xMSwyNC40OWwtMy45Mi02LjYyLDMuODgtNi4zNUExLDEsMCwwLDAsMzMuMjIsMTBIMmEyLDIsMCwwLDAtMiwyVjI0YTIsMiwwLDAsMCwyLDJIMzMuMjVBMSwx''@;'; + put 'put ''LDAsMCwwLDM0LjExLDI0LjQ5Wm0tMjMuNi0zLjMxSDkuMzlMNi4xMywxNi44NHY0LjM1SDVWMTVINi4xM2wzLjI3LDQuMzVWMTVoMS4xMlpNMTYuODQsMTZIMTMuMzF2MS40OWgzLjJ2MWgtMy4ydjEuNjFoMy41M3YxSDEyLjE4VjE1aDQuNjVabTguMjksNS4xNkgyNGwtMS41NS00LjU5TDIw''@;'; + put 'put ''LjksMjEuMThIMTkuNzhsLTItNi4xOEgxOWwxLjMyLDQuNDNMMjEuODQsMTVoMS4yMmwxLjQ2LDQuNDNMMjUuODUsMTVoMS4yM1oiLz4nKSxlLkNsclNoYXBlQnViYmxlRXhjbGFtYXRpb249KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGlu''@;'; + put 'put ''ZS1wYXRoLTEiIGQ9Ik0xOCwyLjVjLTguODIsMC0xNiw2LjI4LTE2LDE0czcuMTgsMTQsMTYsMTRhMTgsMTgsMCwwLDAsNC44OC0uNjhsNS41MywzLjUyYTEsMSwwLDAsMCwxLjU0LS44NGwwLTYuNzNhMTMsMTMsMCwwLDAsNC05LjI3QzM0LDguNzgsMjYuODIsMi41LDE4LDIuNVpNMjguMjks''@;'; + put 'put ''MjQuNjFhMSwxLDAsMCwwLS4zMi43M2wwLDUuMzQtNC4zOC0yLjc5YTEsMSwwLDAsMC0uODMtLjExQTE2LDE2LDAsMCwxLDE4LDI4LjVjLTcuNzIsMC0xNC01LjM4LTE0LTEyczYuMjgtMTIsMTQtMTIsMTQsNS4zOCwxNCwxMkExMS4wOCwxMS4wOCwwLDAsMSwyOC4yOSwyNC42MVoiLz5cbiAg''@;'; + put 'put ''ICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMTgsMjAuNjNhMSwxLDAsMCwwLDEtMVY4LjQ4YTEsMSwwLDEsMC0yLDBWMTkuNjFBMSwxLDAsMCwwLDE4LDIwLjYzWiIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xy''@;'; + put 'put ''LWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgY3g9IjE4IiBjeT0iMjQuMDQiIHI9IjEuMzMiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0xOCwyLjVjLTguODIsMC0xNiw2LjI4LTE2LDE0czcuMTgsMTQsMTYs''@;'; + put 'put ''MTRhMTgsMTgsMCwwLDAsNC44OC0uNjhsNS41MywzLjUyYTEsMSwwLDAsMCwxLjU0LS44NGwwLTYuNzNhMTMsMTMsMCwwLDAsNC05LjI3QzM0LDguNzgsMjYuODIsMi41LDE4LDIuNVpNMTYuOTMsOS4xM2ExLjQxLDEuNDEsMCwxLDEsMi44MSwwVjE4LjlhMS40MSwxLjQxLDAsMSwxLTIuODEs''@;'; + put 'put ''MFptMS40MSwxNy4zNWExLjg3LDEuODcsMCwxLDEsMS44Ny0xLjg3QTEuODcsMS44NywwLDAsMSwxOC4zNCwyNi40N1oiLz4nKSxlLkNsclNoYXBlR3JpZFZpZXc9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0x''@;'; + put 'put ''NCw0SDZBMiwyLDAsMCwwLDQsNnY4YTIsMiwwLDAsMCwyLDJoOGEyLDIsMCwwLDAsMi0yVjZBMiwyLDAsMCwwLDE0LDRaTTYsMTRWNmg4djhaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTMwLDRIMjJhMiwyLDAs''@;'; + put 'put ''MCwwLTIsMnY4YTIsMiwwLDAsMCwyLDJoOGEyLDIsMCwwLDAsMi0yVjZBMiwyLDAsMCwwLDMwLDRaTTIyLDE0VjZoOHY4WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIGQ9Ik0xNCwyMEg2YTIsMiwwLDAsMC0yLDJ2OGEy''@;'; + put 'put ''LDIsMCwwLDAsMiwyaDhhMiwyLDAsMCwwLDItMlYyMkEyLDIsMCwwLDAsMTQsMjBaTTYsMzBWMjJoOHY4WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIGQ9Ik0zMCwyMEgyMmEyLDIsMCwwLDAtMiwydjhhMiwyLDAsMCww''@;'; + put 'put ''LDIsMmg4YTIsMiwwLDAsMCwyLTJWMjJBMiwyLDAsMCwwLDMwLDIwWk0yMiwzMFYyMmg4djhaIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiB4PSI0IiB5PSI0IiB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHJ4PSIyIiByeT0iMiIv''@;'; + put 'put ''PlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgeD0iMjAiIHk9IjQiIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiIgcng9IjIiIHJ5PSIyIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0''@;'; + put 'put ''aC0zIiB4PSI0IiB5PSIyMCIgd2lkdGg9IjEyIiBoZWlnaHQ9IjEyIiByeD0iMiIgcnk9IjIiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTQiIHg9IjIwIiB5PSIyMCIgd2lkdGg9IjEyIiBoZWlnaHQ9IjEyIiByeD0iMiIgcnk9IjIi''@;'; + put 'put ''Lz4nKSxlLkNsclNoYXBlQ3Vyc29yQXJyb3c9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xNC41OCwzMi4zMWExLDEsMCwwLDEtLjk0LS42NUw0LDUuNjVBMSwxLDAsMCwxLDUuMjUsNC4zN2wyNiw5LjY4YTEs''@;'; + put 'put ''MSwwLDAsMS0uMDUsMS44OWwtOC4zNiwyLjU3LDguMyw4LjNhMSwxLDAsMCwxLDAsMS40MWwtMy4yNiwzLjI2YTEsMSwwLDAsMS0uNzEuMjloMGExLDEsMCwwLDEtLjcxLS4yOWwtOC4zMy04LjMzLTIuNiw4LjQ1YTEsMSwwLDAsMS0uOTMuNzFabTMuMDktMTJhMSwxLDAsMCwxLC43MS4yOWw4''@;'; + put 'put ''Ljc5LDguNzlMMjksMjcuNTFsLTguNzYtOC43NmExLDEsMCwwLDEsLjQxLTEuNjZsNy4xMy0yLjJMNi42LDdsNy44OSwyMS4yTDE2LjcxLDIxYTEsMSwwLDAsMSwuNzEtLjY4WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0i''@;'; + put 'put ''TTI5LDEyLjM2LDMuODgsM0ExLDEsMCwwLDAsMi41OSw0LjI4TDEyLDI5LjQ0YTEsMSwwLDAsMCwxLjg5LS4wNWwyLjY5LTguNzUsOS4xMiw4LjlhMSwxLDAsMCwwLDEuNDEsMGwyLjM1LTIuMzVhMSwxLDAsMCwwLDAtMS40MWwtOS4wOS04Ljg2TDI5LDE0LjI1QTEsMSwwLDAsMCwyOSwxMi4z''@;'; + put 'put ''NloiLz4nKSxlLkNsclNoYXBlQ3Vyc29ySGFuZD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMwLjc0LDE1LjE5YTEzLjY2LDEzLjY2LDAsMCwwLTYuODctMy44M0EyNiwyNiwwLDAsMCwxOCwxMC41OFY1LjI4''@;'; + put 'put ''QTMuNCwzLjQsMCwwLDAsMTQuNSwyLDMuNCwzLjQsMCwwLDAsMTEsNS4yOHYxMEw5LjQsMTMuN2EzLjc3LDMuNzcsMCwwLDAtNS4yOCwwQTMuNjcsMy42NywwLDAsMCwzLDE2LjMzYTMuNiwzLjYsMCwwLDAsMSwyLjU2bDQuNjYsNS41MmExMS41MywxMS41MywwLDAsMCwxLjQzLDQsMTAuMTIs''@;'; + put 'put ''MTAuMTIsMCwwLDAsMiwyLjU0djEuOTJhMS4wNywxLjA3LDAsMCwwLDEsMS4wOEgyN2ExLjA3LDEuMDcsMCwwLDAsMS0xLjA4di0yLjdhMTIuODEsMTIuODEsMCwwLDAsMy04LjM2di02QTEsMSwwLDAsMCwzMC43NCwxNS4xOVpNMjksMjEuODZhMTAuNzIsMTAuNzIsMCwwLDEtMi42LDcuMjYs''@;'; + put 'put ''MS4xMSwxLjExLDAsMCwwLS40LjcyVjMySDE0LjE0VjMwLjUyYTEsMSwwLDAsMC0uNDQtLjgzLDcuMjYsNy4yNiwwLDAsMS0xLjgyLTIuMjMsOS4xNCw5LjE0LDAsMCwxLTEuMi0zLjUyLDEsMSwwLDAsMC0uMjMtLjU5TDUuNTMsMTcuNTNhMS43LDEuNywwLDAsMSwwLTIuNDIsMS43NiwxLjc2''@;'; + put 'put ''LDAsMCwxLDIuNDcsMGwzLDN2My4xNGwyLTFWNS4yOEExLjQyLDEuNDIsMCwwLDEsMTQuNSw0LDEuNDIsMS40MiwwLDAsMSwxNiw1LjI4djExLjhsMiwuNDNWMTIuNTlhMjQuMjcsMjQuMjcsMCwwLDEsMi41MS4xOFYxOGwxLjYuMzVWMTNjLjQxLjA4LjgzLjE3LDEuMjYuMjhhMTQuODgsMTQu''@;'; + put 'put ''ODgsMCwwLDEsMS41My40OXY1LjE1bDEuNi4zNVYxNC41QTExLjA2LDExLjA2LDAsMCwxLDI5LDE2LjIzWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTI4LjY5LDE0LjMzdjQuODNsLTItLjQzVjEzLjI0YTE2LjE5LDE2''@;'; + put 'put ''LjE5LDAsMCwwLTIuMzMtLjg0djUuODJsLTItLjQzVjEyYy0xLjEtLjE4LTIuMTgtLjMtMy4wOC0uMzZ2NS41MWwtMi0uNDNWMTEuNDhoMFY0LjM0YTIuNTMsMi41MywwLDAsMC0yLjYtMi40MywyLjUzLDIuNTMsMCwwLDAtMi42LDIuNDNWMTcuMjdoMHYyLjU5bC0yLDFWMTUuNkw3Ljc1LDEz''@;'; + put 'put ''LjIxYTIuODMsMi44MywwLDAsMC00LDAsMi45MywyLjkzLDAsMCwwLDAsNC4wOWw2LDcuMWExMC44MiwxMC44MiwwLDAsMCwxLjM5LDQuMjIsOC40Miw4LjQyLDAsMCwwLDIuMjEsMi43M3YyLjU2SDI3Ljc5VjMwLjYyYTEyLjU0LDEyLjU0LDAsMCwwLDMtOC41di02QTEwLDEwLDAsMCwwLDI4''@;'; + put 'put ''LjY5LDE0LjMzWiIvPicpLGUuQ2xyU2hhcGVDdXJzb3JIYW5kQ2xpY2s9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMC40LDE3LjZjLTEuOC0xLjktNC4yLTMuMi02LjctMy43Yy0xLjEtMC4zLTIuMi0wLjUt''@;'; + put 'put ''My4zLTAuNmMyLjgtMy4zLDIuMy04LjMtMS0xMS4xcy04LjMtMi4zLTExLjEsMXMtMi4zLDguMywxLDExLjFcbiAgICAgICAgICAgICAgICAgICAgYzAuNiwwLjUsMS4yLDAuOSwxLjgsMS4xdjIuMmwtMS42LTEuNWMtMS40LTEuNC0zLjctMS40LTUuMiwwYy0xLjQsMS40LTEuNSwzLjYtMC4x''@;'; + put 'put ''LDVsNC42LDUuNGMwLjIsMS40LDAuNywyLjcsMS40LDMuOVxuICAgICAgICAgICAgICAgICAgICBjMC41LDAuOSwxLjIsMS44LDEuOSwyLjV2MS45YzAsMC42LDAuNCwxLDEsMWgxMy42YzAuNSwwLDEtMC41LDEtMXYtMi42YzEuOS0yLjMsMi45LTUuMiwyLjktOC4xdi01LjhcbiAgICAgICAg''@;'; + put 'put ''ICAgICAgICAgICAgQzMwLjcsMTcuOSwzMC42LDE3LjcsMzAuNCwxNy42eiBNOC40LDguMmMwLTMuMywyLjctNS45LDYtNS44YzMuMywwLDUuOSwyLjcsNS44LDZjMCwxLjgtMC44LDMuNC0yLjIsNC41VjcuOVxuICAgICAgICAgICAgICAgICAgICBjLTAuMS0xLjgtMS42LTMuMi0zLjQtMy4y''@;'; + put 'put ''Yy0xLjgtMC4xLTMuNCwxLjQtMy40LDMuMnY1LjJDOS41LDEyLjEsOC41LDEwLjIsOC40LDguMkw4LjQsOC4yeiBNMjguNywyNGMwLjEsMi42LTAuOCw1LjEtMi41LDcuMVxuICAgICAgICAgICAgICAgICAgICBjLTAuMiwwLjItMC40LDAuNC0wLjQsMC43djIuMUgxNC4ydi0xLjRjMC0wLjMt''@;'; + put 'put ''MC4yLTAuNi0wLjQtMC44Yy0wLjctMC42LTEuMy0xLjMtMS44LTIuMmMtMC42LTEtMS0yLjItMS4yLTMuNFxuICAgICAgICAgICAgICAgICAgICBjMC0wLjItMC4xLTAuNC0wLjItMC42bC00LjgtNS43Yy0wLjMtMC4zLTAuNS0wLjctMC41LTEuMmMwLTAuNCwwLjItMC45LDAuNS0xLjJjMC43''@;'; + put 'put ''LTAuNiwxLjctMC42LDIuNCwwbDIuOSwyLjl2M2wxLjktMVY3LjlcbiAgICAgICAgICAgICAgICAgICAgYzAuMS0wLjcsMC43LTEuMywxLjUtMS4yYzAuNywwLDEuNCwwLjUsMS40LDEuMnYxMS41bDIsMC40di00LjZjMC4xLTAuMSwwLjItMC4xLDAuMy0wLjJjMC43LDAsMS40LDAuMSwyLjEs''@;'; + put 'put ''MC4ydjUuMWwxLjYsMC4zdi01LjJcbiAgICAgICAgICAgICAgICAgICAgbDEuMiwwLjNjMC41LDAuMSwxLDAuMywxLjUsMC41djVsMS42LDAuM3YtNC42YzAuOSwwLjQsMS43LDEsMi40LDEuN0wyOC43LDI0eiIvPicpLGUuQ2xyU2hhcGVSZXNpemU9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGgg''@;'; + put 'put ''Y2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xOSw0YTEsMSwwLDAsMCwwLDJoOS41OWwtOS4yNSw5LjI1YTEsMSwwLDEsMCwxLjQxLDEuNDFMMzAsNy40MVYxN2ExLDEsMCwwLDAsMiwwVjRaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWkt''@;'; + put 'put ''b3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTQsMTlhMSwxLDAsMCwxLDIsMHY5LjU5bDkuMjUtOS4yNWExLDEsMCwxLDEsMS40MSwxLjQxTDcuNDEsMzBIMTdhMSwxLDAsMCwxLDAsMkg0WiIvPicpLGUuQ2xyU2hhcGVPYmplY3RzPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGNs''@;'; + put 'put ''YXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMTYuMDgsMTQuOWExMC40MSwxMC40MSwwLDAsMSwxLjg3LS43MWwtNC0xMC43N2EyLDIsMCwwLDAtMy43NSwwTDIsMjUuMjZBMiwyLDAsMCwwLDMuOTIsMjhoNi45NGExMCwxMCwwLDAsMS0uNTItMkgzLjkyTDEy''@;'; + put 'put ''LjA2LDQuMTJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTMyLDlIMjJhMiwyLDAsMCwwLTIsMnYyLjg1Yy4yMywwLC40NiwwLC42OSwwQTEwLjUxLDEwLjUxLDAsMCwxLDIyLDEzLjlWMTFIMzJWMjFIMzAuNjVh''@;'; + put 'put ''MTAuNDIsMTAuNDIsMCwwLDEsLjQ1LDJIMzJhMiwyLDAsMCwwLDItMlYxMUEyLDIsMCwwLDAsMzIsOVoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJNMjAuNjksMTUuODFhOC41LDguNSwwLDEsMCw4LjUsOC41QTgu''@;'; + put 'put ''NTEsOC41MSwwLDAsMCwyMC42OSwxNS44MVptMCwxNWE2LjUsNi41LDAsMSwxLDYuNS02LjVBNi41MSw2LjUxLDAsMCwxLDIwLjY5LDMwLjgxWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTEwLjY1LDI0LjQ0YTkuNTEs''@;'; + put 'put ''OS41MSwwLDAsMSw3LjA2LTkuMTdMMTMsM2ExLDEsMCwwLDAtMS44NywwTDIuMDcsMjYuNTZBMSwxLDAsMCwwLDMsMjcuOTJoOC4zMkE5LjQ0LDkuNDQsMCwwLDEsMTAuNjUsMjQuNDRaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0y''@;'; + put 'put ''IiBkPSJNMzIsMTBIMjBhMSwxLDAsMCwwLTEsMXY0YTkuNDMsOS40MywwLDAsMSwxMC42Myw5SDMyYTEsMSwwLDAsMCwxLTFWMTFBMSwxLDAsMCwwLDMyLDEwWiIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiBjeD0iMjAuMTUi''@;'; + put 'put ''IGN5PSIyNC40NCIgcj0iNy41Ii8+JyksZS5DbHJTaGFwZUJvb2s9KDAsYS5jbHJJY29uU1ZHKSgnPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIHg9IjEwIiB5PSI1LjIiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxLjU1Ii8+XG4gICAgICAgICAgICA8cGF0''@;'; + put 'put ''aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTI5LDhIOS44NkExLjg5LDEuODksMCwwLDEsOCw2LDIsMiwwLDAsMSw5Ljg2LDRIMjlhMSwxLDAsMCwwLDAtMkg5Ljg2QTQsNCwwLDAsMCw2LDZhNC4xNCw0LjE0LDAsMCwwLDAsLjQ5LDEsMSwwLDAsMCww''@;'; + put 'put ''LC4yNFYzMGE0LDQsMCwwLDAsMy44Niw0SDI5YTEsMSwwLDAsMCwxLTFWOS4yNXMwLS4wNiwwLS4wOSwwLS4wNiwwLS4wOUExLjA3LDEuMDcsMCwwLDAsMjksOFpNMjgsMzJIOS44NkEyLDIsMCwwLDEsOCwzMFY5LjU1QTMuNjMsMy42MywwLDAsMCw5Ljg2LDEwSDI4WiIvPlxuICAgICAgICAg''@;'; + put 'put ''ICAgPHJlY3QgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgeD0iMTAiIHk9IjUuMiIgd2lkdGg9IjE4IiBoZWlnaHQ9IjEuNTUiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGQ9Ik0yOSw4SDkuODZBMS44''@;'; + put 'put ''OSwxLjg5LDAsMCwxLDgsNiwyLDIsMCwwLDEsOS44Niw0SDI5YTEsMSwwLDEsMCwwLTJIOS44NkE0LDQsMCwwLDAsNiw2YTQuMTQsNC4xNCwwLDAsMCwwLC40OSwxLDEsMCwwLDAsMCwuMjRWMzBhNCw0LDAsMCwwLDMuODYsNEgyOWExLDEsMCwwLDAsMS0xVjkuMjVzMC0uMDYsMC0uMDksMC0u''@;'; + put 'put ''MDYsMC0uMDlBMS4wNywxLjA3LDAsMCwwLDI5LDhaIi8+JyksZS5DbHJTaGFwZUFzdGVyaXNrPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMjguODksMjAuOTFsLTUtMi45MSw0Ljg3LTIuODZhMy4xMSwzLjEx''@;'; + put 'put ''LDAsMCwwLDEuMTQtMS4wOCwzLDMsMCwwLDAtNC4wOS00LjE1TDIxLDEyLjc2VjdhMywzLDAsMCwwLTYsMHY1Ljc2TDEwLjE1LDkuOTFhMywzLDAsMSwwLTMsNS4xOGw1LDIuOTFMNy4yLDIwLjg2YTMuMTEsMy4xMSwwLDAsMC0xLjE0LDEuMDgsMywzLDAsMCwwLDQuMDksNC4xNEwxNSwyMy4y''@;'; + put 'put ''NFYyOC45YTMsMywwLDAsMCwyLDIuOTRBMywzLDAsMCwwLDIxLDI5VjIzLjI0bDQuODUsMi44NWEzLDMsMCwxLDAsMy01LjE4Wk0yOC4yNCwyNGExLDEsMCwwLDEtMS4zNy4zNkwxOSwxOS43NVYyOWExLDEsMCwwLDEtMiwwVjE5Ljc1TDkuMTMsMjQuMzZhMSwxLDAsMCwxLTEtMS43MkwxNiwx''@;'; + put 'put ''OGwtNy45LTQuNjRhMSwxLDAsMSwxLDEtMS43MkwxNywxNi4yNVY3YTEsMSwwLDAsMSwyLDB2OS4yNWw3Ljg3LTQuNjJhMSwxLDAsMCwxLDEsMS43MkwyMCwxOGw3LjksNC42NEExLDEsMCwwLDEsMjguMjQsMjRaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xy''@;'; + put 'put ''LWktc29saWQtcGF0aC0xIiBkPSJNMjguODksMjAuOTFsLTUtMi45MSw0Ljg3LTIuODZhMy4xMSwzLjExLDAsMCwwLDEuMTQtMS4wOCwzLDMsMCwwLDAtNC4wOS00LjE1TDIxLDEyLjc2VjdhMywzLDAsMCwwLTYsMHY1Ljc2TDEwLjE1LDkuOTFhMywzLDAsMSwwLTMsNS4xOGw1LDIuOTFMNy4y''@;'; + put 'put ''LDIwLjg2YTMuMTEsMy4xMSwwLDAsMC0xLjE0LDEuMDgsMywzLDAsMCwwLDQuMDksNC4xNEwxNSwyMy4yNFYyOC45YTMsMywwLDAsMCwyLDIuOTRBMywzLDAsMCwwLDIxLDI5VjIzLjI0bDQuODUsMi44NWEzLDMsMCwxLDAsMy01LjE4WiIvPicpLGUuQ2xyU2hhcGVTY2lzc29ycz0oMCxhLmNs''@;'; + put 'put ''ckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSJcbiAgICAgICAgICAgIGQ9Ik0yNC4wNiwxOC4xOGw5LjYxLTguNzdhMSwxLDAsMCwwLS4wOS0xLjU1bC0yLjI0LTEuNmEzLjU3LDMuNTcsMCwwLDAtNC4yOC4xMkwxNS44OCwxNS4zbC0z''@;'; + put 'put ''LjI2LTIuNTJhNS40NSw1LjQ1LDAsMSwwLTEsMS43N2wyLjYyLDJMMTAsMjBhNS40OCw1LjQ4LDAsMSwwLDEuNTksMS4yOUwyOC4zLDcuOTRhMS41NywxLjU3LDAsMCwxLDEuODgtLjA1bDEuMjMuODhMMjEuMSwxOC4xOWwxMC4zMSw5LjQtMS4yMy44OGExLjU3LDEuNTcsMCwwLDEtMS44OC0u''@;'; + put 'put ''MDVsLTkuODEtNy44NUwxNywyMS45M2wxMC4wNiw4YTMuNTcsMy41NywwLDAsMCw0LjI5LjEybDIuMjQtMS42YTEsMSwwLDAsMCwuMDktMS41NVpNNy40NSwxNC41NGEzLjQ2LDMuNDYsMCwxLDEsMy40NS0zLjQ2QTMuNDYsMy40NiwwLDAsMSw3LjQ1LDE0LjU0Wm0wLDEzLjcyQTMuNDYsMy40''@;'; + put 'put ''NiwwLDEsMSwxMC45LDI0LjgsMy40NiwzLjQ2LDAsMCwxLDcuNDUsMjguMjZaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzMuODEsOC4xMywzMS42Myw2LjQ4YTEuOTIsMS45MiwwLDAsMC0yLjM2LDBMMTAsMjIuMDZh''@;'; + put 'put ''NS40Niw1LjQ2LDAsMSwwLDIsMS44MWwzLjktMy4xMkwyOS4yNywzMS41MmExLjkyLDEuOTIsMCwwLDAsMi4zNiwwbDIuMTgtMS42NEwyMC45NCwxOVpNNy40NSwyOS43NWEyLjg2LDIuODYsMCwxLDEsMi44Ni0yLjg2QTIuODcsMi44NywwLDAsMSw3LjQ1LDI5Ljc1WiIvPlxuICAgICAgICAg''@;'; + put 'put ''ICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgZD0iTTE0LjMsMTUuMjQsMTIsMTMuMzhhNS40Niw1LjQ2LDAsMSwwLTIsMS44MUwxMi4xNiwxN1ptLTYuODUtMmEyLjg2LDIuODYsMCwxLDEsMi44Ni0yLjg2QTIuODYsMi44NiwwLDAsMSw3LjQ1LDEzLjIz''@;'; + put 'put ''WiIvPicpLGUuQ2xyU2hhcGVCdWc9KDAsYS5jbHJJY29uU1ZHKSgnPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgY3g9IjIzLjU2IiBjeT0iMTcuNzQiIHI9IjEuOTUiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUg''@;'; + put 'put ''Y2xyLWktb3V0bGluZS1wYXRoLTIiIGN4PSIyMi40MiIgY3k9IjI1Ljg4IiByPSIxLjU4Ii8+XG4gICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBjeD0iMTIuODYiIGN5PSIxNy43NCIgcj0iMS45NSIvPlxuICAgICAgICAgICAg''@;'; + put 'put ''PGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgY3g9IjEzLjk5IiBjeT0iMjUuODgiIHI9IjEuNTgiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiBkPSJNMzAuODMsMjBIMjlhMTku''@;'; + put 'put ''MjksMTkuMjksMCwwLDAtMS4xOC01LjczbDEuNDYtLjc5YTEsMSwwLDAsMC0uOTUtMS43NmwtMywxLjY0QTE3LjY1LDE3LjY1LDAsMCwxLDI3LDIwLjcyQzI3LDI3LDIzLjgsMzEuMjMsMTguOCwzMS42MlYxNUgxNy4yVjMxLjYyQzEyLjIyLDMxLjIxLDksMjcsOSwyMC43MmExNy43NCwxNy43''@;'; + put 'put ''NCwwLDAsMSwxLjczLTcuMzRMNy43LDExLjcyYTEsMSwwLDAsMC0uOTUsMS43NmwxLjUuOEExOS4zOCwxOS4zOCwwLDAsMCw3LjA3LDIwSDUuMTdhMSwxLDAsMCwwLDAsMkg3LjFhMTQuNjIsMTQuNjIsMCwwLDAsMS42Niw2LjE3TDYuODcsMjkuNDlBMSwxLDAsMSwwLDgsMzEuMTJsMS44NC0x''@;'; + put 'put ''LjI5QTEwLjM4LDEwLjM4LDAsMCwwLDE4LDMzLjY2YTEwLjM4LDEwLjM4LDAsMCwwLDguMTQtMy44MUwyOCwzMS4xMmExLDEsMCwxLDAsMS4xNS0xLjY0bC0xLjg2LTEuM0ExNC42MSwxNC42MSwwLDAsMCwyOC45NCwyMmgxLjg5YTEsMSwwLDAsMCwwLTJaIi8+XG4gICAgICAgICAgICA8cGF0''@;'; + put 'put ''aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIgZD0iTTExLjUxLDUuMzZhMS42NywxLjY3LDAsMCwwLDEuMDctLjUxQTMuMjEsMy4yMSwwLDAsMSwxMy43Niw2YTE2LjM4LDE2LjM4LDAsMCwwLTIuNjUsMi44OSwyLDIsMCwwLDAsMS42MSwzLjE5SDIzLjMyQTIs''@;'; + put 'put ''MiwwLDAsMCwyNS4xLDExYTIsMiwwLDAsMC0uMTctMi4xQTE2LjM0LDE2LjM0LDAsMCwwLDIyLjI1LDZhMy4yMSwzLjIxLDAsMCwxLDEuMTctMS4xMUExLjY4LDEuNjgsMCwxLDAsMjMsMy4yNyw0Ljc3LDQuNzcsMCwwLDAsMjEsNWE1LjgxLDUuODEsMCwwLDAtMi45My0xLDUuODMsNS44Myww''@;'; + put 'put ''LDAsMC0zLDFBNC43Nyw0Ljc3LDAsMCwwLDEzLDMuMjdhMS42OCwxLjY4LDAsMSwwLTEuNDksMi4wOVpNMTgsNi4wN2MxLjQ1LDAsMy41MywxLjU3LDUuMzEsNGgwbC0xMC42LDBDMTQuNDksNy42MywxNi41Niw2LjA3LDE4LDYuMDdaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xy''@;'; + put 'put ''LWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzAuODMsMjBIMjlhMTkuMjksMTkuMjksMCwwLDAtMS4xOC01LjczbDEuNDYtLjc5YTEsMSwwLDAsMC0uOTUtMS43NmwtMywxLjI4SDEwLjc4TDcuNywxMS43MmExLDEsMCwwLDAtLjk1LDEuNzZsMS41LjhBMTkuMzgsMTkuMzgsMCww''@;'; + put 'put ''LDAsNy4wNywyMEg1LjE3YTEsMSwwLDAsMCwwLDJINy4xYTE0LjYyLDE0LjYyLDAsMCwwLDEuNjYsNi4xN0w2Ljg3LDI5LjQ5QTEsMSwwLDEsMCw4LDMxLjEybDEuODQtMS4yOUExMC4yOSwxMC4yOSwwLDAsMCwxNywzMy42VjE1aDJWMzMuNmExMC4yOSwxMC4yOSwwLDAsMCw3LjE2LTMuNzVM''@;'; + put 'put ''MjgsMzEuMTJhMSwxLDAsMSwwLDEuMTUtMS42NGwtMS44Ni0xLjNBMTQuNjEsMTQuNjEsMCwwLDAsMjguOTQsMjJoMS44OWExLDEsMCwwLDAsMC0yWk0xMC45MSwxNy43NGExLjk1LDEuOTUsMCwxLDEsMS45NSwxLjk1QTEuOTUsMS45NSwwLDAsMSwxMC45MSwxNy43NFpNMTQsMjcuNDZhMS41''@;'; + put 'put ''OCwxLjU4LDAsMSwxLDEuNTgtMS41OEExLjU4LDEuNTgsMCwwLDEsMTQsMjcuNDZabTguNDMsMEExLjU4LDEuNTgsMCwxLDEsMjQsMjUuODgsMS41OCwxLjU4LDAsMCwxLDIyLjQyLDI3LjQ2Wm0xLjEzLTcuNzdhMS45NSwxLjk1LDAsMSwxLDEuOTUtMS45NUExLjk1LDEuOTUsMCwwLDEsMjMu''@;'; + put 'put ''NTYsMTkuNjlaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiBkPSJNMTEuMjMsNS4yNmExLjY3LDEuNjcsMCwwLDAsLjU0LS4zMiw1LjksNS45LDAsMCwxLC44OS41OCw3LjQ0LDcuNDQsMCwwLDEsLjk1Ljk0QTE4LjQ4LDE4LjQ4''@;'; + put 'put ''LDAsMCwwLDEwLjc5LDkuN2MtLjQuNTcuMDksMS4yOC44NiwxLjI4SDI0LjQ0Yy43NywwLDEuMjYtLjcxLjg2LTEuMjhhMTguMzgsMTguMzgsMCwwLDAtMi44OC0zLjI4LDcuMjgsNy4yOCwwLDAsMSwuOTEtLjksNS45LDUuOSwwLDAsMSwuODktLjU4LDEuNjksMS42OSwwLDEsMC0uNTYtMS41''@;'; + put 'put ''MSw3LjQ5LDcuNDksMCwwLDAtMS4zMi44Myw5LjA2LDkuMDYsMCwwLDAtMS4xOSwxLjE4QTUuODUsNS44NSwwLDAsMCwxOCw0LjNhNS45MSw1LjkxLDAsMCwwLTMuMTcsMS4xOSw5LjIsOS4yLDAsMCwwLTEuMjItMS4yMSw3LjQ5LDcuNDksMCwwLDAtMS4zMi0uODMsMS42OCwxLjY4LDAsMSww''@;'; + put 'put ''LTEuMTEsMS44M1oiLz4nKSxlLkNsclNoYXBlVGhlcm1vbWV0ZXI9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xOSwyMy4xN1YxMS40NkgxN1YyMy4yYTMsMywwLDEsMCwyLDBaIi8+XG4gICAgICAgICAgICA8''@;'; + put 'put ''cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTI2LDE1YTEsMSwwLDAsMCwwLTJIMjMuOTJWMTFIMjZhMSwxLDAsMCwwLDAtMkgyMy45MlY4YTYsNiwwLDAsMC0xMiwwVjIwLjgxYTgsOCwwLDEsMCwxMi0uMlYxOUgyNmExLDEsMCwwLDAsMC0ySDIz''@;'; + put 'put ''LjkyVjE1Wk0yNCwyNmE2LDYsMCwxLDEtMTAuMzYtNC4xMmwuMjctLjI5VjhhNCw0LDAsMCwxLDgsMFYyMS40NGwuMy4yOUE2LDYsMCwwLDEsMjQsMjZaIi8+JyksZS5DbHJTaGFwZVBlbmNpbD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRs''@;'; + put 'put ''aW5lLXBhdGgtMSIgZD0iTTMzLjg3LDguMzIsMjgsMi40MmEyLjA3LDIuMDcsMCwwLDAtMi45MiwwTDQuMjcsMjMuMmwtMS45LDguMmEyLjA2LDIuMDYsMCwwLDAsMiwyLjUsMi4xNCwyLjE0LDAsMCwwLC40MywwTDEzLjA5LDMyLDMzLjg3LDExLjI0QTIuMDcsMi4wNywwLDAsMCwzMy44Nyw4''@;'; + put 'put ''LjMyWk0xMi4wOSwzMC4yLDQuMzIsMzEuODNsMS43Ny03LjYyTDIxLjY2LDguN2w2LDZaTTI5LDEzLjI1bC02LTYsMy40OC0zLjQ2LDUuOSw2WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik00LjIyLDIzLjJsLTEu''@;'; + put 'put ''OSw4LjJhMi4wNiwyLjA2LDAsMCwwLDIsMi41LDIuMTQsMi4xNCwwLDAsMCwuNDMsMEwxMywzMiwyOC44NCwxNi4yMiwyMCw3LjRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgZD0iTTMzLjgyLDguMzJsLTUuOS01Ljlh''@;'; + put 'put ''Mi4wNywyLjA3LDAsMCwwLTIuOTIsMEwyMS43Miw1LjdsOC44Myw4LjgzLDMuMjgtMy4yOEEyLjA3LDIuMDcsMCwwLDAsMzMuODIsOC4zMloiLz4nKSxlLkNsclNoYXBlTm90ZT0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjgsMzBINlY4SDE5LjIybDItMkg2QTIsMiwwLDAsMCw0LDhW''@;'; + put 'put ''MzBhMiwyLDAsMCwwLDIsMkgyOGEyLDIsMCwwLDAsMi0yVjE1bC0yLDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy41Myw1Ljg0LDMwLjE2LDIuNDdhMS42MSwxLjYxLDAsMCwwLTIuMjgsMEwxNC4xNywx''@;'; + put 'put ''Ni4yNmwtMS4xMSw0LjgxQTEuNjEsMS42MSwwLDAsMCwxNC42MywyMywxLjY5LDEuNjksMCwwLDAsMTUsMjNsNC44NS0xLjA3TDMzLjUzLDguMTJBMS42MSwxLjYxLDAsMCwwLDMzLjUzLDUuODRaTTE4LjgxLDIwLjA4bC0zLjY2LjgxTDE2LDE3LjI2LDI2LjMyLDYuODdsMi44MiwyLjgyWk0z''@;'; + put 'put ''MC4yNyw4LjU2LDI3LjQ1LDUuNzQsMjksNC4xNiwzMS44NCw3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMsNi40LDI5LjMsMi43YTEuNzEsMS43MSwwLDAsMC0yLjM2LDBMMjMuNjUsNkg2QTIsMiwwLDAs''@;'; + put 'put ''MCw0LDhWMzBhMiwyLDAsMCwwLDIsMkgyOGEyLDIsMCwwLDAsMi0yVjExLjc2bDMtM0ExLjY3LDEuNjcsMCwwLDAsMzMsNi40Wk0xOC44MywyMC4xM2wtNC4xOS45MywxLTQuMTUsOS41NS05LjU3LDMuMjMsMy4yM1pNMjkuNSw5LjQzLDI2LjI3LDYuMmwxLjg1LTEuODUsMy4yMywzLjIzWiIg''@;'; + put 'put ''Y2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz4nKSxlLkNsclNoYXBlUmVmcmVzaD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTIyLjQsMTEuNjVhMS4wOSwxLjA5LDAsMCwwLDEuMDks''@;'; + put 'put ''MS4wOUgzNC40M1YxLjgxYTEuMDksMS4wOSwwLDEsMC0yLjE5LDBWOC45NWExNi40MSwxNi40MSwwLDEsMCwxLjQ3LDE1Ljg2LDEuMTIsMS4xMiwwLDAsMC0yLjA1LS45LDE0LjE4LDE0LjE4LDAsMSwxLTEuMDUtMTMuMzZIMjMuNUExLjA5LDEuMDksMCwwLDAsMjIuNCwxMS42NVoiLz4nKSxl''@;'; + put 'put ''LkNsclNoYXBlU3luYz0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMyLjg0LDE1LjcyYTEsMSwwLDEsMC0yLC4yOUExMy4xNSwxMy4xNSwwLDAsMSwzMSwxNy45NCwxMywxMywwLDAsMSw4LjcsMjdoNS4zNmEx''@;'; + put 'put ''LDEsMCwwLDAsMC0yaC05djlhMSwxLDAsMSwwLDIsMFYyOC4yQTE1LDE1LDAsMCwwLDMyLjg0LDE1LjcyWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMzAuMDYsMUExLjA1LDEuMDUsMCwwLDAsMjksMlY3''@;'; + put 'put ''LjgzQTE0Ljk0LDE0Ljk0LDAsMCwwLDMsMTcuOTRhMTUuMTYsMTUuMTYsMCwwLDAsLjIsMi40OCwxLDEsMCwwLDAsMSwuODRoLjE2YTEsMSwwLDAsMCwuODItMS4xNUExMy4yMywxMy4yMywwLDAsMSw1LDE3Ljk0YTEzLDEzLDAsMCwxLDEzLTEzQTEyLjg3LDEyLjg3LDAsMCwxLDI3LjQ0LDlI''@;'; + put 'put ''MjIuMDZhMSwxLDAsMCwwLDAsMkgzMVYyQTEsMSwwLDAsMCwzMC4wNiwxWiIvPicpLGUuQ2xyU2hhcGVWaWV3TGlzdD0oMCxhLmNsckljb25TVkcpKCc8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgeD0iMiIgeT0iOCIgd2lkdGg9IjIiIGhlaWdodD0i''@;'; + put 'put ''MiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNNywxMEgzMWExLDEsMCwwLDAsMC0ySDdhMSwxLDAsMCwwLDAsMloiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHIt''@;'; + put 'put ''aS1vdXRsaW5lLXBhdGgtMyIgeD0iMiIgeT0iMTQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgZD0iTTMxLDE0SDdhMSwxLDAsMCwwLDAsMkgzMWExLDEsMCwwLDAsMC0yWiIv''@;'; + put 'put ''PlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiB4PSIyIiB5PSIyMCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0''@;'; + put 'put ''aC02IiBkPSJNMzEsMjBIN2ExLDEsMCwwLDAsMCwySDMxYTEsMSwwLDAsMCwwLTJaIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTciIHg9IjIiIHk9IjI2IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAg''@;'; + put 'put ''ICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTgiIGQ9Ik0zMSwyNkg3YTEsMSwwLDAsMCwwLDJIMzFhMSwxLDAsMCwwLDAtMloiLz4nKSxlLkNsclNoYXBlVmlld0NhcmRzPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRs''@;'; + put 'put ''aW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMTUsMTdINGEyLDIsMCwwLDEtMi0yVjhBMiwyLDAsMCwxLDQsNkgxNWEyLDIsMCwwLDEsMiwydjdBMiwyLDAsMCwxLDE1LDE3Wk00LDh2N0gxNVY4WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNs''@;'; + put 'put ''ci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMzIsMTdIMjFhMiwyLDAsMCwxLTItMlY4YTIsMiwwLDAsMSwyLTJIMzJhMiwyLDAsMCwxLDIsMnY3QTIsMiwwLDAsMSwzMiwxN1pNMjEsOHY3SDMyVjhaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWkt''@;'; + put 'put ''b3V0bGluZS1wYXRoLTMiIGQ9Ik0xNSwzMEg0YTIsMiwwLDAsMS0yLTJWMjFhMiwyLDAsMCwxLDItMkgxNWEyLDIsMCwwLDEsMiwydjdBMiwyLDAsMCwxLDE1LDMwWk00LDIxdjdIMTVWMjFaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0''@;'; + put 'put ''bGluZS1wYXRoLTQiIGQ9Ik0zMiwzMEgyMWEyLDIsMCwwLDEtMi0yVjIxYTIsMiwwLDAsMSwyLTJIMzJhMiwyLDAsMCwxLDIsMnY3QTIsMiwwLDAsMSwzMiwzMFpNMjEsMjF2N0gzMlYyMVoiLz4nKSxlLkNsclNoYXBlTGlnaHRidWxiPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xOCwy''@;'; + put 'put ''LjI1YTExLDExLDAsMCwwLTExLDExLDEwLjY4LDEwLjY4LDAsMCwwLDEsNC42MywxNi4zNiwxNi4zNiwwLDAsMCwxLjEyLDEuNzgsMTcsMTcsMCwwLDEsMiwzLjQ3LDE2LjE5LDE2LjE5LDAsMCwxLC41OSw0aDJBMTguMTcsMTguMTcsMCwwLDAsMTMsMjIuNDRhMTguNDYsMTguNDYsMCwwLDAt''@;'; + put 'put ''Mi4yMi0zLjkyLDE1Ljc5LDE1Ljc5LDAsMCwxLTEtMS41NEE4LjY0LDguNjQsMCwwLDEsOSwxMy4yM2E5LDksMCwwLDEsMTguMDcsMEE4LjY0LDguNjQsMCwwLDEsMjYuMjEsMTdhMTUuNzksMTUuNzksMCwwLDEtMSwxLjU0QTE4LjQ2LDE4LjQ2LDAsMCwwLDIzLDIyLjQ0YTE4LjE3LDE4LjE3''@;'; + put 'put ''LDAsMCwwLS43MSw0LjcxaDJhMTYuMTksMTYuMTksMCwwLDEsLjU5LTQsMTcsMTcsMCwwLDEsMi0zLjQ3QTE2LjMxLDE2LjMxLDAsMCwwLDI4LDE3Ljg2YTEwLjY4LDEwLjY4LDAsMCwwLDEtNC42M0ExMSwxMSwwLDAsMCwxOCwyLjI1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0''@;'; + put 'put ''bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOC42MywxNS41MWEuOC44LDAsMCwwLTEuMTMsMGwtMywzLDIuODYsMy4xM3Y1LjU0SDE5VjIxbC0yLjI0LTIuNDUsMS44OS0xLjg5QS44LjgsMCwwLDAsMTguNjMsMTUuNTFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHIt''@;'; + put 'put ''aS1vdXRsaW5lLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIzLjg2LDI5LjE1SDEyLjExYS44LjgsMCwxLDAsMCwxLjZIMjMuODZhLjguOCwwLDAsMCwwLTEuNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gICAgICAgICAgICA8cGF0''@;'; + put 'put ''aCBkPSJNMjIsMzIuMTVIMTRhLjguOCwwLDEsMCwwLDEuNkgyMmEuOC44LDAsMSwwLDAtMS42WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNy4zMiwxMC44OWwtMi43MywyLjczYS44LjgsMCwwLDAsMS4xMywx''@;'; + put 'put ''LjEzTDE4LjQ1LDEyYS44LjgsMCwxLDAtMS4xMy0xLjEzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOSwyNy4xNVYyMWwtMi4yNC0yLjQ1LDEuODktMS44OWEuOC44LDAsMCwwLTEuMTMtMS4xM2wtMywzLDIu''@;'; + put 'put ''ODYsMy4xM3Y1LjU0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjMuODYsMjkuMTVIMTIuMTFhLjguOCwwLDEsMCwwLDEuNkgyMy44NmEuOC44LDAsMCwwLDAtMS42WiIgY2xhc3M9''@;'; + put 'put ''ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIsMzIuMTVIMTRhLjguOCwwLDEsMCwwLDEuNkgyMmEuOC44LDAsMSwwLDAtMS42WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1v''@;'; + put 'put ''dXRsaW5lLXBhdGgtMy0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTUuNzIsMTQuNzUsMTguNDUsMTJhLjguOCwwLDEsMC0xLjEzLTEuMTNsLTIuNzMsMi43M2EuOC44LDAsMCwwLDEuMTMsMS4xM1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGlu''@;'; + put 'put ''ZS1wYXRoLTQtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI3LDEyLjg4YzAsLjEyLDAsLjIzLDAsLjM1QTguNjQsOC42NCwwLDAsMSwyNi4yMSwxN2ExNS43OSwxNS43OSwwLDAsMS0xLDEuNTRBMTguNDYsMTguNDYsMCwwLDAsMjMsMjIuNDRhMTguMTcsMTguMTcsMCwwLDAt''@;'; + put 'put ''LjcxLDQuNzFoMmExNi4xOSwxNi4xOSwwLDAsMSwuNTktNCwxNywxNywwLDAsMSwyLTMuNDdBMTYuMzEsMTYuMzEsMCwwLDAsMjgsMTcuODZhMTAuNjMsMTAuNjMsMCwwLDAsMS00LjQzQTcuNDUsNy40NSwwLDAsMSwyNywxMi44OFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xy''@;'; + put 'put ''LWktb3V0bGluZS1wYXRoLTUtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTEzLjcxLDI3LjE1QTE4LjE3LDE4LjE3LDAsMCwwLDEzLDIyLjQ0YTE4LjQ2LDE4LjQ2LDAsMCwwLTIuMjItMy45MiwxNS43OSwxNS43OSwwLDAsMS0xLTEuNTRBOC42NCw4LjY0LDAsMCwxLDksMTMu''@;'; + put 'put ''MjMsOSw5LDAsMCwxLDIyLjUzLDUuNDdhNy40NSw3LjQ1LDAsMCwxLC40My0yLDExLDExLDAsMCwwLTE2LDkuOCwxMC42OCwxMC42OCwwLDAsMCwxLDQuNjMsMTYuMzYsMTYuMzYsMCwwLDAsMS4xMiwxLjc4LDE3LDE3LDAsMCwxLDIsMy40NywxNi4xOSwxNi4xOSwwLDAsMSwuNTksNFoiIGNs''@;'; + put 'put ''YXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTYtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC03LS1iYWRnZWQgY2xyLWkt''@;'; + put 'put ''YmFkZ2UiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMy44NiwyOS4xNUgxMi4xMWEuOC44LDAsMSwwLDAsMS42SDIzLjg2YS44LjgsMCwwLDAsMC0xLjZaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIsMzIuMTVI''@;'; + put 'put ''MTRhLjguOCwwLDEsMCwwLDEuNkgyMmEuOC44LDAsMSwwLDAtMS42WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDIuMjVhMTEsMTEsMCwwLDAtMTEsMTEsMTAuNjgsMTAuNjgsMCwwLDAsMSw0LjYzLDE2LjM2LDE2''@;'; + put 'put ''LjM2LDAsMCwwLDEuMTIsMS43OCwxNywxNywwLDAsMSwyLDMuNDcsMTYuMTksMTYuMTksMCwwLDEsLjU5LDRoNS42OVYyMS42MWwtMi44Ni0zLjEzLDMtM2EuOC44LDAsMCwxLDEuMTMsMS4xM2wtMS44OSwxLjg5TDE5LDIxdjYuMTdIMjQuM2ExNi4xOSwxNi4xOSwwLDAsMSwuNTktNCwxNywx''@;'; + put 'put ''NywwLDAsMSwyLTMuNDdBMTYuMzEsMTYuMzEsMCwwLDAsMjgsMTcuODZhMTAuNjgsMTAuNjgsMCwwLDAsMS00LjYzQTExLDExLDAsMCwwLDE4LDIuMjVaTTE4LjQ1LDEybC0yLjczLDIuNzNhLjguOCwwLDEsMS0xLjEzLTEuMTNsMi43My0yLjczQS44LjgsMCwxLDEsMTguNDUsMTJaIiBjbGFz''@;'; + put 'put ''cz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjMuODYsMjkuMTVIMTIuMTFhLjguOCwwLDEsMCwwLDEuNkgyMy44NmEuOC44LDAsMCwwLDAtMS42WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0x''@;'; + put 'put ''LS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMiwzMi4xNUgxNGEuOC44LDAsMSwwLDAsMS42SDIyYS44LjgsMCwxLDAsMC0xLjZaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0i''@;'; + put 'put ''TTIyLjUsNkE3LjQ3LDcuNDcsMCwwLDEsMjMsMy40NGExMSwxMSwwLDAsMC0xNiw5LjgsMTAuNjgsMTAuNjgsMCwwLDAsMSw0LjYzLDE2LjM2LDE2LjM2LDAsMCwwLDEuMTIsMS43OCwxNywxNywwLDAsMSwyLDMuNDcsMTYuMTksMTYuMTksMCwwLDEsLjU5LDRoNS42OVYyMS42MWwtMi44Ni0z''@;'; + put 'put ''LjEzLDMtM2EuOC44LDAsMCwxLDEuMTMsMS4xM2wtMS44OSwxLjg5TDE5LDIxdjYuMTdIMjQuM2ExNi4xOSwxNi4xOSwwLDAsMSwuNTktNCwxNywxNywwLDAsMSwyLTMuNDdBMTYuMzEsMTYuMzEsMCwwLDAsMjgsMTcuODZhMTAuNjMsMTAuNjMsMCwwLDAsMS00LjQzQTcuNSw3LjUsMCwwLDEs''@;'; + put 'put ''MjIuNSw2Wm0tNCw2LTIuNzMsMi43M2EuOC44LDAsMSwxLTEuMTMtMS4xM2wyLjczLTIuNzNBLjguOCwwLDEsMSwxOC40NSwxMloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9''@;'; + put 'put ''IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtNC0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+JyksZS5DbHJTaGFwZURvd25sb2FkPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0x''@;'; + put 'put ''IiBkPSJNMzEsMzFINWExLDEsMCwwLDAsMCwySDMxYTEsMSwwLDAsMCwwLTJaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0xOCwyOS40OCwyOC42MSwxOC44N2ExLDEsMCwwLDAtMS40MS0xLjQxTDE5LDI1''@;'; + put 'put ''LjY1VjVhMSwxLDAsMCwwLTIsMFYyNS42NUw4LjgxLDE3LjQ2YTEsMSwwLDEsMC0xLjQxLDEuNDFaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMzEsMzFINWExLDEsMCwwLDAs''@;'; + put 'put ''MCwySDMxYTEsMSwwLDAsMCwwLTJaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIiBkPSJNMTgsMjkuNDgsMjguNjEsMTguODdhMSwxLDAsMCwwLTEuNDEtMS40MUwxOSwyNS42NVY1YTEs''@;'; + put 'put ''MSwwLDAsMC0yLDBWMjUuNjVMOC44MSwxNy40NmExLDEsMCwxLDAtMS40MSwxLjQxWiIvPlxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiBy''@;'; + put 'put ''PSI1Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0zMSwzMUg1YTEsMSwwLDAsMCwwLDJIMzFhMSwxLDAsMCwwLDAtMloiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFz''@;'; + put 'put ''cz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIgZD0iTTE4LDI5LjQ4LDI4LjYxLDE4Ljg3YTEsMSwwLDAsMC0xLjQxLTEuNDFMMTksMjUuNjVWNWExLDEsMCwwLDAtMiwwVjI1LjY1TDguODEsMTcuNDZhMSwxLDAsMSwwLTEuNDEsMS40MVoi''@;'; + put 'put ''Lz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCww''@;'; + put 'put ''LDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIvPicpLGUuQ2xyU2hhcGVVcGxvYWQ9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMSwzMUg1YTEsMSwwLDAsMCww''@;'; + put 'put ''LDJIMzFhMSwxLDAsMCwwLDAtMloiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTguODEsMTUsMTcsNi44M1YyNy40OGExLDEsMCwwLDAsMiwwVjYuODNMMjcuMTksMTVhMSwxLDAsMCwwLDEuNDEtMS40MUwx''@;'; + put 'put ''OCwzLDcuMzksMTMuNjFBMSwxLDAsMSwwLDguODEsMTVaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0zMSwzMUg1Yy0wLjYsMC0xLDAuNC0xLDFzMC40LDEsMSwxaDI2YzAu''@;'; + put 'put ''NiwwLDEtMC40LDEtMVMzMS42LDMxLDMxLDMxeiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiBkPSJNOC44LDE1TDE3LDYuOHYyMC42YzAsMC42LDAuNCwxLDEsMXMxLTAuNCwxLTFW''@;'; + put 'put ''Ni44TDIwLjEsOGwxLTEuOEwxOCwzTDcuNCwxMy42QzcsMTQsNi45LDE0LjYsNy4yLDE1czEsMC41LDEuNCwwLjFDOC43LDE1LjEsOC44LDE1LjEsOC44LDE1eiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0''@;'; + put 'put ''aC0xLS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNMjYuOSwxLjFMMjEuMSwxMWMtMC40LDAuNi0wLjIsMS40LDAuMywxLjhjMC4yLDAuMiwwLjUsMC4yLDAuOCwwLjJoMTEuNWMwLjcsMCwxLjMtMC41LDEuMy0xLjJjMC0wLjMtMC4xLTAuNS0wLjItMC44bC01LjctOS45Yy0wLjQtMC42LTEu''@;'; + put 'put ''MS0wLjgtMS44LTAuNUMyNy4xLDAuOCwyNywxLDI2LjksMS4xeiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgZD0iTTMxLDMxSDVhMSwxLDAsMCwwLDAsMkgzMWExLDEsMCwwLDAsMC0y''@;'; + put 'put ''WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgZD0iTTguODEsMTUsMTcsNi44M1YyNy40OGExLDEsMCwwLDAsMiwwVjYuODNMMjcuMTksMTVhMSwxLDAsMCwwLDEuNDEtMS40MUwxOCwz''@;'; + put 'put ''LDcuMzksMTMuNjFBMSwxLDAsMSwwLDguODEsMTVaIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz4nKSxlLkNsclNoYXBl''@;'; + put 'put ''TG9jaz0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTE4LjA5LDIwLjU5QTIuNDEsMi40MSwwLDAsMCwxNywyNS4xNFYyOGgyVjI1LjIzYTIuNDEsMi40MSwwLDAsMC0uOTEtNC42NFoiLz5cbiAgICAgICAgICAg''@;'; + put 'put ''ICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTI2LDE1VjEwLjcyYTguMiw4LjIsMCwwLDAtOC04LjM2LDguMiw4LjIsMCwwLDAtOCw4LjM2VjE1SDdWMzJhMiwyLDAsMCwwLDIsMkgyN2EyLDIsMCwwLDAsMi0yVjE1Wk0xMiwxMC43MmE2''@;'; + put 'put ''LjIsNi4yLDAsMCwxLDYtNi4zNiw2LjIsNi4yLDAsMCwxLDYsNi4zNlYxNUgxMlpNOSwzMlYxN0gyN1YzMloiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMjYsMTVWMTAuNzJhOC4yLDguMiwwLDAsMC04LTguMzYs''@;'; + put 'put ''OC4yLDguMiwwLDAsMC04LDguMzZWMTVIN1YzMmEyLDIsMCwwLDAsMiwySDI3YTIsMiwwLDAsMCwyLTJWMTVaTTE5LDI1LjIzVjI4SDE3VjI1LjE0YTIuNCwyLjQsMCwxLDEsMiwuMDlaTTI0LDE1SDEyVjEwLjcyYTYuMiw2LjIsMCwwLDEsNi02LjM2LDYuMiw2LjIsMCwwLDEsNiw2LjM2WiIv''@;'; + put 'put ''PicpLGUuQ2xyU2hhcGVVbmxvY2s9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xMiwyNS4xNFYyOGgyVjI1LjIzYTIuNDIsMi40MiwwLDEsMC0yLS4wOVoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFz''@;'; + put 'put ''cz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTI2LDJhOC4yLDguMiwwLDAsMC04LDguMzZWMTVIMlYzMmEyLDIsMCwwLDAsMiwySDIyYTIsMiwwLDAsMCwyLTJWMTVIMjBWMTAuMzZBNi4yLDYuMiwwLDAsMSwyNiw0YTYuMiw2LjIsMCwwLDEsNiw2LjM2djYuODNh''@;'; + put 'put ''MSwxLDAsMCwwLDIsMFYxMC4zNkE4LjIsOC4yLDAsMCwwLDI2LDJaTTIyLDE3VjMySDRWMTdaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTI2LDJhOC4yLDguMiwwLDAsMC04LDguMzZWMTVIMlYzMmEyLDIsMCww''@;'; + put 'put ''LDAsMiwySDIyYTIsMiwwLDAsMCwyLTJWMTVIMjBWMTAuMzZBNi4yLDYuMiwwLDAsMSwyNiw0YTYuMiw2LjIsMCwwLDEsNiw2LjM2djYuODNhMSwxLDAsMCwwLDIsMFYxMC4zNkE4LjIsOC4yLDAsMCwwLDI2LDJaTTE0LDI1LjIzVjI4SDEyVjI1LjE0YTIuNCwyLjQsMCwxLDEsMiwuMDlaIi8+''@;'; + put 'put ''JyksZS5DbHJTaGFwZVVzZXJzPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMTcuOSwxNy4zYzIuNywwLDQuOC0yLjIsNC44LTQuOWMwLTIuNy0yLjItNC44LTQuOS00LjhjLTIuNywwLTQuOCwyLjItNC44LDQu''@;'; + put 'put ''OEMxMywxNS4xLDE1LjIsMTcuMywxNy45LDE3LjN6IE0xNy44LDkuNkMxNy45LDkuNiwxNy45LDkuNiwxNy44LDkuNmMxLjYsMCwyLjksMS4zLDIuOSwyLjlzLTEuMywyLjgtMi45LDIuOGMtMS42LDAtMi44LTEuMy0yLjgtMi44QzE1LDEwLjksMTYuMyw5LjYsMTcuOCw5LjZ6Ii8+XG4gICAg''@;'; + put 'put ''ICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0zMi43LDE2LjdjLTEuOS0xLjctNC40LTIuNi03LTIuNWMtMC4zLDAtMC41LDAtMC44LDBjLTAuMiwwLjgtMC41LDEuNS0wLjksMi4xYzAuNi0wLjEsMS4xLTAuMSwxLjctMC4x''@;'; + put 'put ''YzEuOS0wLjEsMy44LDAuNSw1LjMsMS42VjI1aDJ2LThMMzIuNywxNi43eiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJNMjMuNCw3LjhjMC41LTEuMiwxLjktMS44LDMuMi0xLjNjMS4yLDAuNSwxLjgsMS45''@;'; + put 'put ''LDEuMywzLjJjLTAuNCwwLjktMS4zLDEuNS0yLjIsMS41Yy0wLjIsMC0wLjUsMC0wLjctMC4xYzAuMSwwLjUsMC4xLDEsMC4xLDEuNGMwLDAuMiwwLDAuNCwwLDAuNmMwLjIsMCwwLjQsMC4xLDAuNiwwLjFjMi41LDAsNC41LTIsNC41LTQuNGMwLTIuNS0yLTQuNS00LjQtNC41Yy0xLjYsMC0z''@;'; + put 'put ''LDAuOC0zLjgsMi4yQzIyLjUsNi44LDIzLDcuMiwyMy40LDcuOHoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgZD0iTTEyLDE2LjRjLTAuNC0wLjYtMC43LTEuMy0wLjktMi4xYy0wLjMsMC0wLjUsMC0wLjgsMGMt''@;'; + put 'put ''Mi42LTAuMS01LjEsMC44LTcsMi40TDMsMTd2OGgydi03LjJjMS42LTEuMSwzLjQtMS43LDUuMy0xLjZDMTAuOSwxNi4yLDExLjUsMTYuMywxMiwxNi40eiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiBkPSJNMTAu''@;'; + put 'put ''MywxMy4xYzAuMiwwLDAuNCwwLDAuNi0wLjFjMC0wLjIsMC0wLjQsMC0wLjZjMC0wLjUsMC0xLDAuMS0xLjRjLTAuMiwwLjEtMC41LDAuMS0wLjcsMC4xYy0xLjMsMC0yLjQtMS4xLTIuNC0yLjRjMC0xLjMsMS4xLTIuNCwyLjQtMi40YzEsMCwxLjksMC42LDIuMywxLjVjMC40LTAuNSwxLTEs''@;'; + put 'put ''MS41LTEuNGMtMS4zLTIuMS00LTIuOC02LjEtMS41Yy0yLjEsMS4zLTIuOCw0LTEuNSw2LjFDNy4zLDEyLjMsOC43LDEzLjEsMTAuMywxMy4xeiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02IiBkPSJNMjYuMSwyMi43''@;'; + put 'put ''bC0wLjItMC4zYy0yLTIuMi00LjgtMy41LTcuOC0zLjRjLTMtMC4xLTUuOSwxLjItNy45LDMuNEwxMCwyMi43djcuNmMwLDAuOSwwLjcsMS43LDEuNywxLjdjMCwwLDAsMCwwLDBoMTIuOGMwLjksMCwxLjctMC44LDEuNy0xLjdjMCwwLDAsMCwwLDBWMjIuN3ogTTI0LjEsMzBIMTJ2LTYuNmMx''@;'; + put 'put ''LjYtMS42LDMuOC0yLjQsNi4xLTIuNGMyLjItMC4xLDQuNCwwLjgsNiwyLjRWMzB6Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0xMS4wOSwxNC41N2MuMSwwLC4yLDAsLjMx''@;'; + put 'put ''LDBhNi40Myw2LjQzLDAsMCwxLC4wOS0yLDIuMDksMi4wOSwwLDEsMSwxLjQ3LTMsNi41OCw2LjU4LDAsMCwxLDEuNTUtMS4zMSw0LjA5LDQuMDksMCwxLDAtMy40Miw2LjMzWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91''@;'; + put 'put ''dGxpbmUtcGF0aC0yLS1hbGVydGVkIiBkPSJNMTMsMTguMTRhNi41Myw2LjUzLDAsMCwxLTEuMjgtMi4ybC0uNjMsMGE4LjY3LDguNjcsMCwwLDAtNi40MywyLjUybC0uMjQuMjh2N2gyVjE5LjUxYTcsNywwLDAsMSw0LjY3LTEuNkE4LjA5LDguMDksMCwwLDEsMTMsMTguMTRaIi8+XG4gICAg''@;'; + put 'put ''ICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiIGQ9Ik0zMS4zNSwxOC40MkE4LjU5LDguNTksMCwwLDAsMjUsMTUuOTFjLS4zMiwwLS42LDAtLjkuMDZhNi41Myw2LjUzLDAsMCwxLTEuMzUsMi4yNUE3''@;'; + put 'put ''LjksNy45LDAsMCwxLDI1LDE3LjkxYTYuOTQsNi45NCwwLDAsMSw0LjY0LDEuNTh2Ni4yN2gyVjE4LjdaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWFsZXJ0ZWQiIGQ9Ik0xOC4xLDE5LjczQTku''@;'; + put 'put ''NjksOS42OSwwLDAsMCwxMSwyMi40N2wtLjI1LjI4djcuMzNhMS41NywxLjU3LDAsMCwwLDEuNjEsMS41NEgyMy44M2ExLjU3LDEuNTcsMCwwLDAsMS42MS0xLjU0VjIyLjczbC0uMjUtLjI4QTkuNTgsOS41OCwwLDAsMCwxOC4xLDE5LjczWm01LjMzLDkuODhIMTIuNzNWMjMuNTVhOC4wOCw4''@;'; + put 'put ''LjA4LDAsMCwxLDUuMzctMS44Miw4LDgsMCwwLDEsNS4zMywxLjhaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWFsZXJ0ZWQiIGQ9Ik0yMC4yOCwxNC4yN2EyLjQ2LDIuNDYsMCwxLDEtMi40Mi0y''@;'; + put 'put ''Ljg5LDIuNDQsMi40NCwwLDAsMSwxLC4yNCwzLjY3LDMuNjcsMCwwLDEsLjQzLTIsNC40MSw0LjQxLDAsMCwwLTEuNDgtLjI3QTQuNDcsNC40NywwLDEsMCwyMi4xNCwxNSwzLjY5LDMuNjksMCwwLDEsMjAuMjgsMTQuMjdaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1p''@;'; + put 'put ''LW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTYtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNy4xOC44bC01LjcyLDkuOTFhMS4yOCwxLjI4LDAsMCwwLDEuMSwxLjkxSDM0YTEuMjgsMS4yOCwwLDAsMCwxLjEtMS45MUwyOS4zOS44QTEuMjgsMS4yOCwwLDAsMCwyNy4x''@;'; + put 'put ''OC44WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgZD0iTTExLjA5LDE0LjU3Yy4xLDAsLjIsMCwuMzEsMGE2LjQzLDYuNDMsMCwwLDEsLjA5LTIsMi4wOSwyLjA5LDAsMSwxLDEuNDct''@;'; + put 'put ''Myw2LjU4LDYuNTgsMCwwLDEsMS41NS0xLjMxLDQuMDksNC4wOSwwLDEsMC0zLjQyLDYuMzNaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIiBkPSJNMTMsMTguMTRhNi41Myw2LjUzLDAs''@;'; + put 'put ''MCwxLTEuMjgtMi4ybC0uNjMsMGE4LjY3LDguNjcsMCwwLDAtNi40MywyLjUybC0uMjQuMjh2N2gyVjE5LjUxYTcsNywwLDAsMSw0LjY3LTEuNkE4LjA5LDguMDksMCwwLDEsMTMsMTguMTRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBj''@;'; + put 'put ''bHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIiBkPSJNMzEuMzUsMTguNDJBOC41OSw4LjU5LDAsMCwwLDI1LDE1LjkxYy0uMzIsMC0uNiwwLS45LjA2YTYuNTMsNi41MywwLDAsMS0xLjM1LDIuMjVBNy45LDcuOSwwLDAsMSwyNSwxNy45MWE2Ljk0LDYuOTQsMCwwLDEsNC42NCwxLjU4djYu''@;'; + put 'put ''MjdoMlYxOC43WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCIgZD0iTTE3Ljg2LDE4LjNhNC40Nyw0LjQ3LDAsMSwwLTQuNDctNC40N0E0LjQ3LDQuNDcsMCwwLDAsMTcuODYsMTguM1pt''@;'; + put 'put ''MC02LjkzYTIuNDcsMi40NywwLDEsMS0yLjQ3LDIuNDdBMi40NywyLjQ3LDAsMCwxLDE3Ljg2LDExLjM3WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWJhZGdlZCIgZD0iTTE4LjEsMTkuNzNBOS42''@;'; + put 'put ''OSw5LjY5LDAsMCwwLDExLDIyLjQ3bC0uMjUuMjh2Ny4zM2ExLjU3LDEuNTcsMCwwLDAsMS42MSwxLjU0SDIzLjgzYTEuNTcsMS41NywwLDAsMCwxLjYxLTEuNTRWMjIuNzNsLS4yNS0uMjhBOS41OCw5LjU4LDAsMCwwLDE4LjEsMTkuNzNabTUuMzMsOS44OEgxMi43M1YyMy41NWE4LjA4LDgu''@;'; + put 'put ''MDgsMCwwLDEsNS4zNy0xLjgyLDgsOCwwLDAsMSw1LjMzLDEuOFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC02LS1iYWRnZWQiIGQ9Ik0yNi4zNywxMmEyLDIsMCwwLDEtMi4wOS40Miw2LjUzLDYuNTMs''@;'; + put 'put ''MCwwLDEsLjE1LDEuMzgsNi41OSw2LjU5LDAsMCwxLDAsLjY4LDQsNCwwLDAsMCwuNTcuMDYsNC4wOCw0LjA4LDAsMCwwLDMuMy0xLjdBNy40NSw3LjQ1LDAsMCwxLDI2LjM3LDEyWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWkt''@;'; + put 'put ''b3V0bGluZS1wYXRoLTctLWJhZGdlZCIgZD0iTTIyLjk1LDYuOTNhNC4xNiw0LjE2LDAsMCwwLTEuNDcsMS40NEE2LjU5LDYuNTksMCwwLDEsMjMsOS43N2EyLjEsMi4xLDAsMCwxLC41OS0uODNBNy40NCw3LjQ0LDAsMCwxLDIyLjk1LDYuOTNaIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNs''@;'; + put 'put ''ZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC04LS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMC4zMyIgY3k9IjUuNjciIHI9IjUiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBk''@;'; + put 'put ''PSJNMTIsMTYuMTRxLS40MywwLS44NywwYTguNjcsOC42NywwLDAsMC02LjQzLDIuNTJsLS4yNC4yOHY4LjI4SDguNTR2LTQuN2wuNTUtLjYyLjI1LS4yOWExMSwxMSwwLDAsMSw0LjcxLTIuODZBNi41OSw2LjU5LDAsMCwxLDEyLDE2LjE0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNs''@;'; + put 'put ''YXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGQ9Ik0zMS4zNCwxOC42M2E4LjY3LDguNjcsMCwwLDAtNi40My0yLjUyLDEwLjQ3LDEwLjQ3LDAsMCwwLTEuMDkuMDYsNi41OSw2LjU5LDAsMCwxLTIsMi40NSwxMC45MSwxMC45MSwwLDAsMSw1LDNsLjI1LjI4LjU0LjYydjQu''@;'; + put 'put ''NzFoMy45NFYxOC45MVoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiBkPSJNMTEuMSwxNC4xOWMuMTEsMCwuMiwwLC4zMSwwYTYuNDUsNi40NSwwLDAsMSwzLjExLTYuMjksNC4wOSw0LjA5LDAsMSwwLTMuNDIsNi4zM1oi''@;'; + put 'put ''Lz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC00IiBkPSJNMjQuNDMsMTMuNDRhNi41NCw2LjU0LDAsMCwxLDAsLjY5LDQuMDksNC4wOSwwLDAsMCwuNTguMDVoLjE5QTQuMDksNC4wOSwwLDEsMCwyMS40Nyw4LDYuNTMsNi41Myww''@;'; + put 'put ''LDAsMSwyNC40MywxMy40NFoiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTUiIGN4PSIxNy44NyIgY3k9IjEzLjQ1IiByPSI0LjQ3Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1p''@;'; + put 'put ''LXNvbGlkLXBhdGgtNiIgZD0iTTE4LjExLDIwLjNBOS42OSw5LjY5LDAsMCwwLDExLDIzbC0uMjUuMjh2Ni4zM2ExLjU3LDEuNTcsMCwwLDAsMS42LDEuNTRIMjMuODRhMS41NywxLjU3LDAsMCwwLDEuNi0xLjU0VjIzLjNMMjUuMiwyM0E5LjU4LDkuNTgsMCwwLDAsMTguMTEsMjAuM1oiLz5c''@;'; + put 'put ''biAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiBkPSJNMTIsMTYuMTRxLS40MywwLS44NywwYTguNjcsOC42NywwLDAsMC02LjQzLDIuNTJsLS4yNC4yOHY4LjI4SDguNTR2LTQuN2wuNTUtLjYyLjI1''@;'; + put 'put ''LS4yOWExMSwxMSwwLDAsMSw0LjcxLTIuODZBNi41OSw2LjU5LDAsMCwxLDEyLDE2LjE0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQiIGQ9Ik0zMS4zNCwxOC42M2E4LjY3LDguNjcsMCww''@;'; + put 'put ''LDAtNi40My0yLjUyLDEwLjQ3LDEwLjQ3LDAsMCwwLTEuMDkuMDYsNi41OSw2LjU5LDAsMCwxLTIsMi40NSwxMC45MSwxMC45MSwwLDAsMSw1LDNsLjI1LjI4LjU0LjYydjQuNzFoMy45NFYxOC45MVoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0''@;'; + put 'put ''ZWQgY2xyLWktc29saWQtcGF0aC0zLS1hbGVydGVkIiBkPSJNMTEuMSwxNC4xOWMuMTEsMCwuMiwwLC4zMSwwYTYuNDUsNi40NSwwLDAsMSwzLjExLTYuMjksNC4wOSw0LjA5LDAsMSwwLTMuNDIsNi4zM1oiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFs''@;'; + put 'put ''ZXJ0ZWQgY2xyLWktc29saWQtcGF0aC00LS1hbGVydGVkIiBkPSJNMTguMTEsMjAuM0E5LjY5LDkuNjksMCwwLDAsMTEsMjNsLS4yNS4yOHY2LjMzYTEuNTcsMS41NywwLDAsMCwxLjYsMS41NEgyMy44NGExLjU3LDEuNTcsMCwwLDAsMS42LTEuNTRWMjMuM0wyNS4yLDIzQTkuNTgsOS41OCww''@;'; + put 'put ''LDAsMCwxOC4xMSwyMC4zWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTUtLWFsZXJ0ZWQiIGQ9Ik0xNy44NywxNy45MmE0LjQ2LDQuNDYsMCwwLDAsNC0yLjU0QTMuNjcsMy42NywwLDAsMSwxOSw5Ljg5bC4z''@;'; + put 'put ''NS0uNjFBNC40Miw0LjQyLDAsMCwwLDE3Ljg3LDlhNC40Nyw0LjQ3LDAsMSwwLDAsOC45M1oiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC02LS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNMjYuODUsMS4xNCwy''@;'; + put 'put ''MS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29s''@;'; + put 'put ''aWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0xMiwxNi4xNHEtLjQzLDAtLjg3LDBhOC42Nyw4LjY3LDAsMCwwLTYuNDMsMi41MmwtLjI0LjI4djguMjhIOC41NHYtNC43bC41NS0uNjIuMjUtLjI5YTExLDExLDAsMCwxLDQuNzEtMi44NkE2LjU4LDYuNTgsMCwwLDEsMTIsMTYuMTRaIi8+XG4gICAg''@;'; + put 'put ''ICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQiIGQ9Ik0zMS4zNCwxOC42M2E4LjY3LDguNjcsMCwwLDAtNi40My0yLjUyLDEwLjQ3LDEwLjQ3LDAsMCwwLTEuMDkuMDYsNi41OSw2LjU5LDAsMCwxLTIsMi40NSwx''@;'; + put 'put ''MC45MSwxMC45MSwwLDAsMSw1LDNsLjI1LjI4LjU0LjYydjQuNzFoMy45NFYxOC45MVoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWJhZGdlZCIgZD0iTTExLjEsMTQuMTljLjExLDAsLjIsMCwuMzEsMGE2''@;'; + put 'put ''LjQ1LDYuNDUsMCwwLDEsMy4xMS02LjI5LDQuMDksNC4wOSwwLDEsMC0zLjQyLDYuMzNaIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTQtLWJhZGdlZCIgY3g9IjE3Ljg3IiBjeT0iMTMuNDUiIHI9IjQuNDci''@;'; + put 'put ''Lz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTUtLWJhZGdlZCIgZD0iTTE4LjExLDIwLjNBOS42OSw5LjY5LDAsMCwwLDExLDIzbC0uMjUuMjh2Ni4zM2ExLjU3LDEuNTcsMCwwLDAsMS42LDEuNTRIMjMuODRhMS41''@;'; + put 'put ''NywxLjU3LDAsMCwwLDEuNi0xLjU0VjIzLjNMMjUuMiwyM0E5LjU4LDkuNTgsMCwwLDAsMTguMTEsMjAuM1oiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTYtLWJhZGdlZCIgZD0iTTI0LjQzLDEzLjQ0YTYuNTQs''@;'; + put 'put ''Ni41NCwwLDAsMSwwLC42OSw0LjA5LDQuMDksMCwwLDAsLjU4LjA1aC4xOWE0LjA1LDQuMDUsMCwwLDAsMi41Mi0xLDcuNSw3LjUsMCwwLDEtNS4xNC02LjMyQTQuMTMsNC4xMywwLDAsMCwyMS40Nyw4LDYuNTMsNi41MywwLDAsMSwyNC40MywxMy40NFoiLz5cbiAgICAgICAgICAgICAgICA8''@;'; + put 'put ''Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtNy0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+JyksZS5DbHJTaGFwZVBvcE91dD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHIt''@;'; + put 'put ''aS1vdXRsaW5lLXBhdGgtMSIgZD0iTTI3LDMzSDVhMiwyLDAsMCwxLTItMlY5QTIsMiwwLDAsMSw1LDdIMTVWOUg1VjMxSDI3VjIxaDJWMzFBMiwyLDAsMCwxLDI3LDMzWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0y''@;'; + put 'put ''IiBkPSJNMTgsM2ExLDEsMCwwLDAsMCwySDI5LjU5TDE1Ljc0LDE4Ljg1YTEsMSwwLDEsMCwxLjQxLDEuNDFMMzEsNi40MVYxOGExLDEsMCwwLDAsMiwwVjNaIi8+JyksZS5DbHJTaGFwZUZpbHRlcj0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1v''@;'; + put 'put ''dXRsaW5lLXBhdGgtMSIgZD0iTTMzLDRIM0ExLDEsMCwwLDAsMiw1VjYuNjdhMS43OSwxLjc5LDAsMCwwLC41MywxLjI3TDE0LDE5LjU4djEwLjJsMiwuNzZWMTlhMSwxLDAsMCwwLS4yOS0uNzFMNCw2LjU5VjZIMzJ2LjYxTDIwLjMzLDE4LjI5QTEsMSwwLDAsMCwyMCwxOWwwLDEzLjIxTDIy''@;'; + put 'put ''LDMzVjE5LjVMMzMuNDcsOEExLjgxLDEuODEsMCwwLDAsMzQsNi43VjVBMSwxLDAsMCwwLDMzLDRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTIyLDMzVjE5LjVMMzMuNDcsOEExLjgxLDEuODEsMCwwLDAsMzQs''@;'; + put 'put ''Ni43VjVhMSwxLDAsMCwwLTEtMUgzQTEsMSwwLDAsMCwyLDVWNi42N2ExLjc5LDEuNzksMCwwLDAsLjUzLDEuMjdMMTQsMTkuNTh2MTAuMloiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMzMuNDgsNGgtMzFBLjUyLjUyLDAsMCwwLDIsNC41MlY2LjI0YTEuMzMsMS4zMywwLDAsMCwu''@;'; + put 'put ''MzkuOTVsMTIsMTJ2MTBsNy4yNSwzLjYxVjE5LjE3bDEyLTEyQTEuMzUsMS4zNSwwLDAsMCwzNCw2LjI2VjQuNTJBLjUyLjUyLDAsMCwwLDMzLjQ4LDRaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPicpLGUuQ2xyU2hhcGVQaW49KDAsYS5jbHJJY29uU1ZHKSgn''@;'; + put 'put ''PHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMywxNi41OWExLDEsMCwwLDEtLjcxLS4yOUwxOS43LDMuNzFhMSwxLDAsMCwxLDEuNDEtMS40MUwzMy43MSwxNC44OUExLDEsMCwwLDEsMzMsMTYuNTlaIi8+XG4gICAgICAgICAgICAgICAgPHBh''@;'; + put 'put ''dGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0yOC41MiwxNS41NmwtMS40MS0xLjQxLTcuMiw3LjJhMSwxLDAsMCwwLS4yNSwxLDksOSwwLDAsMS0xLjUzLDguMDlMNS41OCwxNy44N2E5LDksMCwwLDEsOC4wOS0xLjUzLDEsMSwwLDAsMCwxLS4yNWw3''@;'; + put 'put ''LjItNy4yTDIwLjQ0LDcuNDhsLTYuNzksNi43OUExMC45NCwxMC45NCwwLDAsMCwzLjQxLDE3LjExYTEsMSwwLDAsMCwwLDEuNDJsNi4zMyw2LjMzTDIuMjksMzIuMjlhMSwxLDAsMSwwLDEuNDEsMS40MWw3LjQ0LTcuNDQsNi4zMyw2LjMzYTEsMSwwLDAsMCwuNzEuMjloMGExLDEsMCwwLDAs''@;'; + put 'put ''LjcxLS4zLDExLDExLDAsMCwwLDIuODQtMTAuMjRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTMzLDE2LjcxYTEsMSwwLDAsMS0uNzEtLjI5TDE5LjcsMy44MmExLDEsMCwwLDEsMS40MS0xLjQxTDMzLjcxLDE1''@;'; + put 'put ''QTEsMSwwLDAsMSwzMywxNi43MVoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiBkPSJNMjAuNDQsNy41OWwtNi43OSw2Ljc5QTEwLjk0LDEwLjk0LDAsMCwwLDMuNDEsMTcuMjJhMSwxLDAsMCwwLDAsMS40Mkw5LjczLDI1''@;'; + put 'put ''LDIuMjksMzIuNDFhMSwxLDAsMSwwLDEuNDEsMS40MWw3LjQ0LTcuNDQsNi4zMyw2LjMzYTEsMSwwLDAsMCwuNzEuMjloMGExLDEsMCwwLDAsLjcxLS4zLDExLDExLDAsMCwwLDIuODQtMTAuMjRsNi43OS02Ljc5WiIvPicpLGUuQ2xyU2hhcGVGaWxlPSgwLGEuY2xySWNvblNWRykoJzxwYXRo''@;'; + put 'put ''IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMjEuODksNEg3LjgzQTEuODgsMS44OCwwLDAsMCw2LDUuOTFWMzAuMDlBMS44OCwxLjg4LDAsMCwwLDcuODMsMzJIMjguMTdBMS44OCwxLjg4LDAsMCwwLDMwLDMwLjA5VjExLjkyWm0tLjMsMi40OSw2LDUu''@;'; + put 'put ''OWgtNlpNOCwzMFY2SDIwdjhoOFYzMFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0yMS41OSwxMi4zOVY2LjQ5bDEuMDcsMWE3LjMxLDcuMzEsMCwwLDEsMC0yLjgyTDIxLjg5''@;'; + put 'put ''LDRINy44M0ExLjg4LDEuODgsMCwwLDAsNiw1LjkxVjMwLjA5QTEuODgsMS44OCwwLDAsMCw3LjgzLDMySDI4LjE3QTEuODgsMS44OCwwLDAsMCwzMCwzMC4wOVYxMy41YTcuNDUsNy40NSwwLDAsMS0zLjkxLTEuMTFaTTI4LDMwSDhWNkgyMHY4aDhaIi8+XG4gICAgICAgICAgICAgICAgPGNp''@;'; + put 'put ''cmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5l''@;'; + put 'put ''LXBhdGgtMS0tYWxlcnRlZCIgZD0iTTI4LDE1LjRWMzBIOFY2SDIwVjguMjVsMi4yNS0zLjlMMjEuODksNEg3LjgzQTEuODgsMS44OCwwLDAsMCw2LDUuOTFWMzAuMDlBMS44OCwxLjg4LDAsMCwwLDcuODMsMzJIMjguMTdBMS44OCwxLjg4LDAsMCwwLDMwLDMwLjA5VjE1LjRaIi8+XG4gICAg''@;'; + put 'put ''ICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQu''@;'; + put 'put ''NzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMjEuODksNEg3LjgzQTEuODgsMS44OCwwLDAsMCw2LDUuOTFWMzAuMDlBMS44OCwxLjg4''@;'; + put 'put ''LDAsMCwwLDcuODMsMzJIMjguMTdBMS44OCwxLjg4LDAsMCwwLDMwLDMwLjA5VjExLjkyWk0yMSwxM1Y1Ljg0TDI4LjMsMTNaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0yNy4yNSwx''@;'; + put 'put ''M0gyMVY1Ljg0bDEuNjQsMS42YTcuMjUsNy4yNSwwLDAsMSwwLTIuNzRMMjEuODksNEg3LjgzQTEuODgsMS44OCwwLDAsMCw2LDUuOTFWMzAuMDlBMS44OCwxLjg4LDAsMCwwLDcuODMsMzJIMjguMTdBMS44OCwxLjg4LDAsMCwwLDMwLDMwLjA5VjEzLjVBNy40Nyw3LjQ3LDAsMCwxLDI3LjI1''@;'; + put 'put ''LDEzWiIvPlxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQt''@;'; + put 'put ''LWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiBkPSJNMjIuMiwxNS40Yy0yLDAtMy43LTEuNi0zLjctMy42YzAtMC43LDAuMi0xLjMsMC41LTEuOWwzLjItNS41TDIxLjksNEg3LjhDNi44LDQsNiw0LjksNiw1Ljl2MjQuMmMwLDEsMC44LDEuOSwxLjgsMS45aDIwLjNjMSww''@;'; + put 'put ''LDEuOC0wLjksMS44LTEuOVYxNS40SDIyLjJ6Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2LjksMS4xTDIxLjEsMTFjLTAuNCwwLjYtMC4yLDEuNCwwLjMs''@;'; + put 'put ''MS44YzAuMiwwLjIsMC41LDAuMiwwLjgsMC4yaDExLjVjMC43LDAsMS4zLTAuNSwxLjMtMS4yYzAtMC4zLTAuMS0wLjUtMC4yLTAuOGwtNS43LTkuOWMtMC40LTAuNi0xLjEtMC44LTEuOC0wLjVDMjcuMSwwLjgsMjcsMSwyNi45LDEuMXoiLz4nKSxlLkNsclNoYXBlUGx1cz0oMCxhLmNscklj''@;'; + put 'put ''b25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMwLDE3SDE5VjZhMSwxLDAsMSwwLTIsMFYxN0g2YTEsMSwwLDAsMC0xLDEsLjkxLjkxLDAsMCwwLDEsLjk0SDE3VjMwYTEsMSwwLDEsMCwyLDBWMTlIMzBhMSwxLDAsMCwwLDEtMUEx''@;'; + put 'put ''LDEsMCwwLDAsMzAsMTdaIi8+JyksZS5DbHJTaGFwZU1pbnVzPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yNiwxN0gxMGExLDEsMCwwLDAsMCwySDI2YTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz4nKSxlLkNsclNoYXBl''@;'; + put 'put ''TWludXNDaXJjbGU9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlptMCwzMEExNCwxNCwwLDEsMSwzMiwxOCwxNCwxNCwwLDAsMSwxOCwzMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0x''@;'; + put 'put ''IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI0LDE3SDEyYTEsMSwwLDAsMCwwLDJIMjRhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYs''@;'; + put 'put ''MTYsMCwwLDAsMTgsMlptNiwxNy41SDEyYTEuNSwxLjUsMCwwLDEsMC0zSDI0YTEuNSwxLjUsMCwwLDEsMCwzWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz4nKSxlLkNsclNoYXBlUGx1c0NpcmNsZT0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjYuMTcs''@;'; + put 'put ''MTdIMTlWOS44M2ExLDEsMCwwLDAtMiwwVjE3SDkuODNhMSwxLDAsMCwwLDAsMkgxN3Y3LjE3YTEsMSwwLDAsMCwyLDBWMTloNy4xN2ExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwy''@;'; + put 'put ''QTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJabTAsMzBBMTQsMTQsMCwxLDEsMzIsMTgsMTQsMTQsMCwwLDEsMTgsMzJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTM0LDE4QTE2LDE2LDAsMSwx''@;'; + put 'put ''LDE4LDIsMTYsMTYsMCwwLDEsMzQsMThabS04LjQxLTEuNUgxOS41VjEwLjQxYTEuNSwxLjUsMCwwLDAtMywwVjE2LjVIMTAuNDFhMS41LDEuNSwwLDAsMCwwLDNIMTYuNXY2LjA5YTEuNSwxLjUsMCwwLDAsMywwVjE5LjVoNi4wOWExLjUsMS41LDAsMCwwLDAtM1oiIGNsYXNzPSJjbHItaS1z''@;'; + put 'put ''b2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz4nKSxlLkNsclNoYXBlQmFuPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMTgsMkExNiwxNiwwLDEsMCwzNCwxOCwxNiwxNiwwLDAsMCwxOCwyWk00LDE4QTEzLjkz''@;'; + put 'put ''LDEzLjkzLDAsMCwxLDcuNDMsOC44NUwyNy4xNSwyOC41N0ExNCwxNCwwLDAsMSw0LDE4Wm0yNC41Nyw5LjE1TDguODUsNy40M0ExNCwxNCwwLDAsMSwyOC41NywyNy4xNVoiLz4nKSxlLkNsclNoYXBlVGltZXNDaXJjbGU9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91''@;'; + put 'put ''dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xOS42MSwxOGw0Ljg2LTQuODZhMSwxLDAsMCwwLTEuNDEtMS40MUwxOC4yLDE2LjU0bC00Ljg5LTQuODlhMSwxLDAsMCwwLTEuNDEsMS40MUwxNi43OCwxOCwxMiwyMi43MmExLDEsMCwxLDAsMS40MSwxLjQxbDQuNzctNC43Nyw0Ljc0''@;'; + put 'put ''LDQuNzRhMSwxLDAsMCwwLDEuNDEtMS40MVoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTE4LDM0QTE2LDE2LDAsMSwxLDM0LDE4LDE2LDE2LDAsMCwxLDE4LDM0Wk0xOCw0QTE0LDE0LDAsMSwwLDMyLDE4''@;'; + put 'put ''LDE0LDE0LDAsMCwwLDE4LDRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlptOCwyMi4xYTEuNCwxLjQsMCwwLDEtMiwybC02LTZMMTIsMjYu''@;'; + put 'put ''MTJhMS40LDEuNCwwLDEsMS0yLTJMMTYsMTguMDgsOS44MywxMS44NmExLjQsMS40LDAsMSwxLDItMkwxOCwxNi4xbDYuMTctNi4xN2ExLjQsMS40LDAsMSwxLDIsMkwyMCwxOC4wOFoiLz4nKSxlLkNsclNoYXBlVHJhc2g9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91''@;'; + put 'put ''dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0yNy4xNCwzNEg4Ljg2QTIuOTMsMi45MywwLDAsMSw2LDMxVjExLjIzSDhWMzFhLjkzLjkzLDAsMCwwLC44NiwxSDI3LjE0QS45My45MywwLDAsMCwyOCwzMVYxMS4yM2gyVjMxQTIuOTMsMi45MywwLDAsMSwyNy4xNCwzNFoiLz5cbiAg''@;'; + put 'put ''ICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTMwLjc4LDlINUExLDEsMCwwLDEsNSw3SDMwLjc4YTEsMSwwLDAsMSwwLDJaIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWkt''@;'; + put 'put ''b3V0bGluZS1wYXRoLTMiIHg9IjIxIiB5PSIxMyIgd2lkdGg9IjIiIGhlaWdodD0iMTUiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgeD0iMTMiIHk9IjEzIiB3aWR0aD0iMiIgaGVpZ2h0PSIxNSIvPlxuICAgICAg''@;'; + put 'put ''ICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiBkPSJNMjMsNS44NkgyMS4xVjRIMTQuOVY1Ljg2SDEzVjRhMiwyLDAsMCwxLDEuOS0yaDYuMkEyLDIsMCwwLDEsMjMsNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xy''@;'; + put 'put ''LWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNNiw5VjMxYTIuOTMsMi45MywwLDAsMCwyLjg2LDNIMjcuMDlBMi45MywyLjkzLDAsMCwwLDMwLDMxVjlabTksMjBIMTNWMTRoMlptOCwwSDIxVjE0aDJaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlk''@;'; + put 'put ''IGNsci1pLXNvbGlkLXBhdGgtMiIgZD0iTTMwLjczLDVIMjNWNEEyLDIsMCwwLDAsMjEsMmgtNi4yQTIsMiwwLDAsMCwxMyw0VjVINUExLDEsMCwxLDAsNSw3SDMwLjczYTEsMSwwLDAsMCwwLTJaIi8+JyksZS5DbHJTaGFwZVRhZz0oMCxhLmNsckljb25TVkcpKCc8Y2lyY2xlIGN4PSIxMC41''@;'; + put 'put ''MiIgY3k9IjEwLjUyIiByPSIxLjQzIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMxLjkzLDE5LjIsMTcuMzMsNC42QTIsMiwwLDAsMCwxNS45Miw0TDYsNEEyLDIsMCwwLDAsNCw2bDAsOS45MmEyLDIsMCwwLDAs''@;'; + put 'put ''LjU5LDEuNDFsMTQuNiwxNC42YTIsMiwwLDAsMCwyLjgzLDBsOS45LTkuOUEyLDIsMCwwLDAsMzEuOTMsMTkuMlpNMjAuNjIsMzAuNTIsNiwxNS45MVY2aDkuOTJsMTQuNiwxNC42MloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gICAgICAgICAgICA8''@;'; + put 'put ''Y2lyY2xlIGN4PSIxMC41MiIgY3k9IjEwLjUyIiByPSIxLjQzIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMxLjkzLDE5LjJsLTMuOC0zLjhIMjUuMzFsNS4yMiw1LjIyLTkuOSw5''@;'; + put 'put ''LjlMNiwxNS45MVY2aDkuOTJsMy40MSwzLjQxLDEtMS43OC0zLTNBMiwyLDAsMCwwLDE1LjkyLDRMNiw0QTIsMiwwLDAsMCw0LDZsMCw5LjkyYTIsMiwwLDAsMCwuNTksMS40MWwxNC42LDE0LjZhMiwyLDAsMCwwLDIuODMsMGw5LjktOS45QTIsMiwwLDAsMCwzMS45MywxOS4yWiIgY2xhc3M9''@;'; + put 'put ''ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4x''@;'; + put 'put ''NEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIxMC41MiIgY3k9IjEwLjUyIiByPSIxLjQzIiBjbGFzcz0i''@;'; + put 'put ''Y2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMS45MywxOS4yLDE3LjMzLDQuNkEyLDIsMCwwLDAsMTUuOTIsNEw2LDRBMiwyLDAsMCwwLDQsNmwwLDkuOTJhMiwyLDAsMCwwLC41OSwxLjQxbDE0LjYs''@;'; + put 'put ''MTQuNmEyLDIsMCwwLDAsMi44MywwbDkuOS05LjlBMiwyLDAsMCwwLDMxLjkzLDE5LjJaTTIwLjYyLDMwLjUyLDYsMTUuOTFWNmg5LjkybDE0LjYsMTQuNjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiLz5cbiAgICAgICAgICAg''@;'; + put 'put ''IDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzEuOTMsMTkuMiwxNy4zMyw0LjZBMiwyLDAsMCwwLDE1LjkyLDRM''@;'; + put 'put ''Niw0QTIsMiwwLDAsMCw0LDZsMCw5LjkyYTIsMiwwLDAsMCwuNTksMS40MWwxNC42LDE0LjZhMiwyLDAsMCwwLDIuODMsMGw5LjktOS45QTIsMiwwLDAsMCwzMS45MywxOS4yWk05LjY1LDExLjMxYTEuNjYsMS42NiwwLDEsMSwxLjY2LTEuNjZBMS42NiwxLjY2LDAsMCwxLDkuNjUsMTEuMzFa''@;'; + put 'put ''IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjguNDYsMTUuNzNIMjIuMjNBMy42OCwzLjY4LDAsMCwxLDE5LDEwLjIybDEuNDMtMi40N0wxNy4zMyw0LjZBMiwyLDAsMCwwLDE1LjkyLDRMNiw0QTIsMiwwLDAsMCw0LDZs''@;'; + put 'put ''MCw5LjkyYTIsMiwwLDAsMCwuNTksMS40MWwxNC42LDE0LjZhMiwyLDAsMCwwLDIuODMsMGw5LjktOS45YTIsMiwwLDAsMCwwLTIuODNaTTkuNjUsMTEuMzFhMS42NiwxLjY2LDAsMSwxLDEuNjYtMS42NkExLjY2LDEuNjYsMCwwLDEsOS42NSwxMS4zMVoiIGNsYXNzPSJjbHItaS1zb2xpZC0t''@;'; + put 'put ''YWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjQ3bC01LjcyLDkuOTFhMS4yOCwxLjI4LDAsMCwwLDEuMSwxLjkxSDMzLjY4YTEuMjgsMS4yOCwwLDAsMCwxLjEtMS45MUwyOS4wNiwxLjQ3QTEuMjgsMS4yOCwwLDAs''@;'; + put 'put ''MCwyNi44NSwxLjQ3WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMxLjkzLDE5LjIsMTcuMzMsNC42QTIsMiwwLDAsMCwxNS45Miw0TDYsNEEyLDIsMCwwLDAsNCw2''@;'; + put 'put ''bDAsOS45MmEyLDIsMCwwLDAsLjU5LDEuNDFsMTQuNiwxNC42YTIsMiwwLDAsMCwyLjgzLDBsOS45LTkuOUEyLDIsMCwwLDAsMzEuOTMsMTkuMlpNOS42NSwxMS4zMWExLjY2LDEuNjYsMCwxLDEsMS42Ni0xLjY2QTEuNjYsMS42NiwwLDAsMSw5LjY1LDExLjMxWiIgY2xhc3M9ImNsci1pLXNv''@;'; + put 'put ''bGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNi4zMyIgcj0iNSIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiLz4nKSxlLkNsclNo''@;'; + put 'put ''YXBlVGFncz0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzMuMTYsMTkuMTMsMTkuNTgsNS41NUExLjkyLDEuOTIsMCwwLDAsMTguMjEsNUgxNi4xMkwzMS43NSwyMC40NSwyMS4yMiwzMS4wN2ExLjkzLDEuOTMsMCwwLDAsMi43MywwbDkuMjEtOS4yMWExLjkzLDEuOTMsMCwwLDAsMC0y''@;'; + put 'put ''LjczWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjcuODEiIGN5PSIxMS4xNCIgcj0iMS4zMyIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRo''@;'; + put 'put ''IGQ9Ik0yNy43OCwxOS4xNywxNC4yLDUuNThBMS45MiwxLjkyLDAsMCwwLDEyLjgzLDVIMy42MUExLjkzLDEuOTMsMCwwLDAsMS42OCw2LjkzdjkuMjJhMS45MiwxLjkyLDAsMCwwLC41NywxLjM2TDE1Ljg0LDMxLjFhMS45MywxLjkzLDAsMCwwLDIuNzMsMGw5LjIxLTkuMjFBMS45MywxLjkz''@;'; + put 'put ''LDAsMCwwLDI3Ljc4LDE5LjE3Wk0xNy4yNiwyOS42OSwzLjY5LDE2LjE1VjdoOS4xTDI2LjM3LDIwLjQ4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjcuODEiIGN5PSIxMS4xNCIgcj0iMS4zMyIgY2xhc3M9''@;'; + put 'put ''ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjcuNzgsMTkuMTcsMTQuMiw1LjU4QTEuOTIsMS45MiwwLDAsMCwxMi44Myw1SDMuNjFBMS45MywxLjkzLDAsMCwwLDEuNjgsNi45M3Y5LjIyYTEuOTIs''@;'; + put 'put ''MS45MiwwLDAsMCwuNTcsMS4zNkwxNS44NCwzMS4xYTEuOTMsMS45MywwLDAsMCwyLjczLDBsOS4yMS05LjIxQTEuOTMsMS45MywwLDAsMCwyNy43OCwxOS4xN1pNMTcuMjYsMjkuNjksMy42OSwxNi4xNVY3aDkuMUwyNi4zNywyMC40OFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQg''@;'; + put 'put ''Y2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLjE2LDE5LjEzLDE5LjU4LDUuNTVBMS45MiwxLjkyLDAsMCwwLDE4LjIxLDVIMTYuMTJMMzEuNzUsMjAuNDUsMjEuMjIsMzEuMDdhMS45MywxLjkzLDAsMCwwLDIuNzMsMGw5LjIxLTkuMjFh''@;'; + put 'put ''MS45MywxLjkzLDAsMCwwLDAtMi43M1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91''@;'; + put 'put ''dGxpbmUtcGF0aC00LS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjcuODEiIGN5PSIxMS4xNCIgcj0iMS4zMyIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxw''@;'; + put 'put ''YXRoIGQ9Ik0yNy43OCwxOS4xNywyNCwxNS40SDIyLjIzQTMuNjUsMy42NSwwLDAsMSwyMSwxNS4xOWw1LjMzLDUuMjktOS4xMSw5LjIxTDMuNjksMTYuMTVWN2g5LjFsNiw1Ljk0YTMuNjgsMy42OCwwLDAsMSwuMS0yLjY5TDE0LjIsNS41OEExLjkyLDEuOTIsMCwwLDAsMTIuODMsNUgzLjYx''@;'; + put 'put ''QTEuOTMsMS45MywwLDAsMCwxLjY4LDYuOTN2OS4yMmExLjkyLDEuOTIsMCwwLDAsLjU3LDEuMzZMMTUuODQsMzEuMWExLjkzLDEuOTMsMCwwLDAsMi43MywwbDkuMjEtOS4yMUExLjkzLDEuOTMsMCwwLDAsMjcuNzgsMTkuMTdaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHIt''@;'; + put 'put ''aS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIwLjgzLDYuOCwxOS41OCw1LjU1QTEuOTIsMS45MiwwLDAsMCwxOC4yMSw1SDE2LjEyTDE5Ljc5LDguNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0z''@;'; + put 'put ''LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuMTYsMTkuMTMsMjkuNDMsMTUuNEgyNi42NWw1LjEsNUwyMS4yMiwzMS4wN2ExLjkzLDEuOTMsMCwwLDAsMi43MywwbDkuMjEtOS4yMWExLjkzLDEuOTMsMCwwLDAsMC0yLjczWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFs''@;'; + put 'put ''ZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAs''@;'; + put 'put ''MjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC01LS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuMTYsMTkuMTMsMTkuNTgsNS41NUExLjkyLDEuOTIsMCwwLDAsMTguMjEsNUgxNi4xMkwz''@;'; + put 'put ''MS43NSwyMC40NSwyMS4yMiwzMS4wN2ExLjkzLDEuOTMsMCwwLDAsMi43MywwbDkuMjEtOS4yMWExLjkzLDEuOTMsMCwwLDAsMC0yLjczWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI3Ljc4LDE5LjE3LDE0LjIsNS41''@;'; + put 'put ''OEExLjkyLDEuOTIsMCwwLDAsMTIuODMsNUgzLjYxQTEuOTMsMS45MywwLDAsMCwxLjY4LDYuOTN2OS4yMmExLjkyLDEuOTIsMCwwLDAsLjU3LDEuMzZMMTUuODQsMzEuMWExLjkzLDEuOTMsMCwwLDAsMi43MywwbDkuMjEtOS4yMUExLjkzLDEuOTMsMCwwLDAsMjcuNzgsMTkuMTdaTTYuNjcs''@;'; + put 'put ''MTEuNzJBMS43MywxLjczLDAsMSwxLDguNCwxMCwxLjczLDEuNzMsMCwwLDEsNi42NywxMS43MloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNy43OCwxOS4xNywxNC4yLDUuNThBMS45MiwxLjkyLDAsMCwwLDEyLjgz''@;'; + put 'put ''LDVIMy42MUExLjkzLDEuOTMsMCwwLDAsMS42OCw2LjkzdjkuMjJhMS45MiwxLjkyLDAsMCwwLC41NywxLjM2TDE1Ljg0LDMxLjFhMS45MywxLjkzLDAsMCwwLDIuNzMsMGw5LjIxLTkuMjFBMS45MywxLjkzLDAsMCwwLDI3Ljc4LDE5LjE3Wk02LjY3LDExLjcyQTEuNzMsMS43MywwLDEsMSw4''@;'; + put 'put ''LjQsMTAsMS43MywxLjczLDAsMCwxLDYuNjcsMTEuNzJaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLjE2LDE5LjEzLDE5LjU4LDUuNTVBMS45MiwxLjkyLDAsMCwwLDE4LjIxLDVIMTYu''@;'; + put 'put ''MTJMMzEuNzUsMjAuNDUsMjEuMjIsMzEuMDdhMS45MywxLjkzLDAsMCwwLDIuNzMsMGw5LjIxLTkuMjFhMS45MywxLjkzLDAsMCwwLDAtMi43M1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4''@;'; + put 'put ''PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjAuODMsNi44LDE5LjU4LDUuNTVBMS45MiwxLjkyLDAsMCwwLDE4LjIxLDVIMTYuMTJMMTku''@;'; + put 'put ''NzksOC42WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLjE2LDE5LjEzLDI5LjQzLDE1LjRIMjYuNjVsNS4xLDVMMjEuMjIsMzEuMDdhMS45MywxLjkzLDAsMCwwLDIuNzMsMGw5LjIx''@;'; + put 'put ''LTkuMjFhMS45MywxLjkzLDAsMCwwLDAtMi43M1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNy43OCwxOS4xNywyNCwxNS40SDIyLjIzYTMuNjcsMy42NywwLDAsMS0zLjM2LTUuMTVM''@;'; + put 'put ''MTQuMiw1LjU4QTEuOTIsMS45MiwwLDAsMCwxMi44Myw1SDMuNjFBMS45MywxLjkzLDAsMCwwLDEuNjgsNi45M3Y5LjIyYTEuOTIsMS45MiwwLDAsMCwuNTcsMS4zNkwxNS44NCwzMS4xYTEuOTMsMS45MywwLDAsMCwyLjczLDBsOS4yMS05LjIxQTEuOTMsMS45MywwLDAsMCwyNy43OCwxOS4x''@;'; + put 'put ''N1pNNi42NywxMS43MkExLjczLDEuNzMsMCwxLDEsOC40LDEwLDEuNzMsMS43MywwLDAsMSw2LjY3LDExLjcyWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMy0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMs''@;'; + put 'put ''MTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtNC0tYWxlcnRlZCBjbHItaS1hbGVy''@;'; + put 'put ''dCIvPicpLGUuQ2xyU2hhcGVIaXN0b3J5PSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xOCw5LjgzYTEsMSwwLDAsMC0xLDF2OC43Mmw1LjksNEExLDEsMCwwLDAsMjQsMjEuODhsLTUtMy4zOVYxMC44M0ExLDEsMCwwLDAsMTgsOS44M1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1p''@;'; + put 'put ''LW91dGxpbmUtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMkExNi4wOSwxNi4wOSwwLDAsMCw0LDEwLjI2VjUuMmExLDEsMCwwLDAtMiwwVjE0aDguOGExLDEsMCwwLDAsMC0ySDUuMzVBMTQsMTQsMCwxLDEsOC41OCwyOC4zNWExLDEsMCwwLDAtMS4zNSwxLjQ4QTE2LDE2''@;'; + put 'put ''LDAsMSwwLDE4LDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPicpLGUuQ2xyU2hhcGVDbG9jaz0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTgsMkExNiwxNiwwLDEsMCwzNCwxOCwxNiwxNiwwLDAsMCwxOCwyWm0wLDMwQTE0LDE0LDAsMSwxLDMy''@;'; + put 'put ''LDE4LDE0LDE0LDAsMCwxLDE4LDMyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOC45MiwxOC40VjEwLjc1YTEsMSwwLDAsMC0yLDB2OC43Mmw1LjksNGExLDEsMCwxLDAsMS4xMS0xLjY2WiIgY2xhc3M9ImNs''@;'; + put 'put ''ci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik04LDE3Ljk0QTkuOTQsOS45NCwwLDAsMSwyMy40MSw5LjU5bC44NS0xLjM2YTExLjU1LDExLjU1LDAsMSwwLTguNTMsMjFMMTYsMjcuN0ExMCwxMCwwLDAsMSw4LDE3Ljk0WiIgY2xhc3M9''@;'; + put 'put ''ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOC45MiwxMC43NWExLDEsMCwwLDAtMiwwdjguNzJsNS45LDRhMSwxLDAsMSwwLDEuMTEtMS42NmwtNS0zLjM5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1v''@;'; + put 'put ''dXRsaW5lLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuMTIsMTIuODFhNy40NCw3LjQ0LDAsMCwxLTEuOTEuNTgsMTQuMDUsMTQuMDUsMCwxLDEtOC42LTguNiw3LjQ0LDcuNDQsMCwwLDEsLjU4LTEuOTEsMTYuMDYsMTYuMDYsMCwxLDAsOS45Myw5LjkzWiIg''@;'; + put 'put ''Y2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsNi4zOGExMS41NiwxMS41NiwwLDAsMC0yLjI3LDIyLjg5TDE2LDI3LjdhMTAsMTAsMCwxLDEsNy4zOS0xOC4xaDBhNy40NSw3LjQ1LDAs''@;'; + put 'put ''MCwxLS43OC0yLjIzQTExLjQ1LDExLjQ1LDAsMCwwLDE4LDYuMzhaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLW91dGxpbmUt''@;'; + put 'put ''LWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTguOTIsMTAuNzVhMSwxLDAsMCwwLTIsMHY4LjcybDUuOSw0YTEsMSwwLDEsMCwxLjExLTEuNjZsLTUtMy4zOVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1h''@;'; + put 'put ''bGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuNzcsMTUuMzloLTJBMTQsMTQsMCwxLDEsMjIuMDksNC42MWwxLTEuNzZBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMzMuNzcsMTUuMzlaIiBjbGFzcz0iY2xyLWkt''@;'; + put 'put ''b3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDhhOS44MSw5LjgxLDAsMCwxLDIsLjIzbC44NS0xLjQ2YTExLjU1LDExLjU1LDAsMSwwLTUuMTMsMjIuNTJMMTYsMjcuN0ExMCwxMCwwLDAsMSwxOCw4WiIg''@;'; + put 'put ''Y2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjku''@;'; + put 'put ''MDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMkExNiwxNiwwLDEsMCwzNCwxOCwxNiwxNiww''@;'; + put 'put ''LDAsMCwxOCwyWm02LjIsMjEuMThhMSwxLDAsMCwxLTEuMzkuMjhsLTUuOS00VjEwLjc1YTEsMSwwLDAsMSwyLDBWMTguNGw1LDMuMzlBMSwxLDAsMCwxLDI0LjIsMjMuMThaTTIzLjg1LDguMjNhMTEuMzksMTEuMzksMCwxLDAtOC41NCwyMC44M0wxNSwzMC42M2ExMywxMywwLDEsMSw5Ljct''@;'; + put 'put ''MjMuNzdaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuMTIsMTIuODFBNy40OCw3LjQ4LDAsMCwxLDIyLjY4LDcuNjMsMTEuMjQsMTEuMjQsMCwwLDAsMTgsNi42YTExLjM5LDExLjM5LDAsMCwwLTIuNjksMjIuNDdM''@;'; + put 'put ''MTUsMzAuNjNBMTMsMTMsMCwwLDEsMTgsNWExMi44MSwxMi44MSwwLDAsMSw0LjUxLjgyLDcuNDYsNy40NiwwLDAsMSwuNjgtMi45NCwxNi4wNiwxNi4wNiwwLDEsMCw5LjkzLDkuOTNaTTI0LjIsMjMuMThhMSwxLDAsMCwxLTEuMzkuMjhsLTUuOS00VjEwLjc1YTEsMSwwLDAsMSwyLDBWMTgu''@;'; + put 'put ''NGw1LDMuMzlBMSwxLDAsMCwxLDI0LjIsMjMuMThaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1z''@;'; + put 'put ''b2xpZC1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLjc3LDE1LjM5SDIyLjIzQTMuNjksMy42OSwwLDAsMSwxOSwxMy41NmMwLS4wOS0uMDktLjE4LS4xMy0uMjdWMTguNGw1LDMuMzlhMSwxLDAsMCwxLTEuMTEsMS42NmwtNS45LTRWMTAu''@;'; + put 'put ''NzVhMSwxLDAsMCwxLDEuOTEtLjQxQTMuNjUsMy42NSwwLDAsMSwxOSw5Ljg5TDIwLjc0LDdBMTEuMTksMTEuMTksMCwwLDAsMTgsNi42YTExLjM5LDExLjM5LDAsMCwwLTIuNjksMjIuNDdMMTUsMzAuNjNBMTMsMTMsMCwwLDEsMTgsNWExMi44LDEyLjgsMCwwLDEsMy41Ny41MWwxLjUzLTIu''@;'; + put 'put ''NjZBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMzMuNzcsMTUuMzlaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAs''@;'; + put 'put ''MjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+JyksZS5DbHJTaGFwZUFs''@;'; + put 'put ''YXJtQ2xvY2s9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMxLjQ3LDMuODRhNS43OCw1Ljc4LDAsMCwwLTcuMzctLjYzLDE2LjA4LDE2LjA4LDAsMCwxLDguMiw3LjY1QTUuNzMsNS43MywwLDAsMCwzMS40NywzLjg0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1w''@;'; + put 'put ''YXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMS40MiwzLjQzYTUuNzcsNS43NywwLDAsMC03LjY0LjQxLDUuNzIsNS43MiwwLDAsMC0uMzgsNy42NEExNi4wOCwxNi4wOCwwLDAsMSwxMS40MiwzLjQzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIi''@;'; + put 'put ''Lz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNi40LDQuMDlBMTQsMTQsMCwwLDAsOC4xMSwyNy44OEw1LjU2LDMwLjQzQTEsMSwwLDEsMCw3LDMxLjg0bDIuNjYtMi42NmExMy45LDEzLjksMCwwLDAsMTYuODgtLjA4bDIuNzQsMi43NGExLDEsMCwwLDAsMS40MS0xLjQxTDI4LDI3Ljc4QTE0''@;'; + put 'put ''LDE0LDAsMCwwLDE2LjQsNC4wOVpNMTkuNTgsMjkuOUExMiwxMiwwLDEsMSwyOS45MiwxOS41NiwxMiwxMiwwLDAsMSwxOS41OCwyOS45WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNC45MiwyMC4zNGwtNi4w''@;'; + put 'put ''Ni0zVjkuNWEuOS45LDAsMCwwLTEuOCwwdjlMMjQuMTIsMjJhLjkuOSwwLDEsMCwuNzktMS42MloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTEuNDIsMy40M2E1Ljc3LDUuNzcsMCwwLDAtNy42NC40MSw1Ljcy''@;'; + put 'put ''LDUuNzIsMCwwLDAtLjM4LDcuNjRBMTYuMDgsMTYuMDgsMCwwLDEsMTEuNDIsMy40M1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTguODYsOS41YS45LjksMCwwLDAtMS44LDB2''@;'; + put 'put ''OUwyNC4xMiwyMmEuOS45LDAsMSwwLC43OS0xLjYybC02LjA2LTNaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4LDI3Ljc4QTEzLjg4LDEzLjg4LDAsMCwwLDMxLjc3LDE1LjRo''@;'; + put 'put ''LTJhMTIuMDcsMTIuMDcsMCwxLDEtOC42Ny05bDEtMS44YTE0LDE0LDAsMCwwLTE0LDIzLjI3TDUuNTYsMzAuNDNBMSwxLDAsMSwwLDcsMzEuODRsMi42Ni0yLjY2YTEzLjksMTMuOSwwLDAsMCwxNi44OC0uMDhsMi43NCwyLjc0YTEsMSwwLDAsMCwxLjQxLTEuNDFaIiBjbGFzcz0iY2xyLWkt''@;'; + put 'put ''b3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgs''@;'; + put 'put ''MS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMS40MiwzLjQzYTUuNzcsNS43NywwLDAsMC03LjY0LjQxLDUuNzIsNS43''@;'; + put 'put ''MiwwLDAsMC0uMzgsNy42NEExNi4wOCwxNi4wOCwwLDAsMSwxMS40MiwzLjQzWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4LDI3Ljc4QTEzLjg4LDEzLjg4LDAsMCwwLDMxLjc3LDE1''@;'; + put 'put ''LjRIMjIuMjNBMy42OSwzLjY5LDAsMCwxLDE5LDEzLjU2TDE5LDEzLjR2My43OEwyNSwyMC4xYTEsMSwwLDEsMS0uODcsMS44TDE3LDE4LjQ0VjkuNjlhMSwxLDAsMCwxLDIsMFYxMEwxOSw5Ljg5bDMtNS4yOGExNCwxNCwwLDAsMC0xNCwyMy4yN0w1LjU2LDMwLjQzQTEsMSwwLDEsMCw3LDMx''@;'; + put 'put ''Ljg0bDIuNjYtMi42NmExMy45LDEzLjksMCwwLDAsMTYuODgtLjA4bDIuNzQsMi43NGExLDEsMCwwLDAsMS40MS0xLjQxWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQs''@;'; + put 'put ''MjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMy0tYWxlcnRlZCBjbHIt''@;'; + put 'put ''aS1hbGVydCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTExLjQyLDMuNDNhNS43Nyw1Ljc3LDAsMCwwLTcuNjQuNDEsNS43Miw1LjcyLDAsMCwwLS4zOCw3LjY0QTE2LjA4LDE2LjA4LDAsMCwxLDExLjQyLDMuNDNaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1w''@;'; + put 'put ''YXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4LDI3Ljc4YTEzLjg5LDEzLjg5LDAsMCwwLDMuMjEtMTQuMzlBNy40Niw3LjQ2LDAsMCwxLDIyLjUsNmE3LjUyLDcuNTIsMCwwLDEsLjExLTEuMjFBMTQsMTQsMCwwLDAsOC4xMSwyNy44OEw1LjU2LDMwLjQzQTEsMSww''@;'; + put 'put ''LDEsMCw3LDMxLjg0bDIuNjYtMi42NmExMy45LDEzLjksMCwwLDAsMTYuODgtLjA4bDIuNzQsMi43NGExLDEsMCwwLDAsMS40MS0xLjQxWm0tMi41Mi02LjM1YTEsMSwwLDAsMS0xLjMzLjQ3TDE3LDE4LjQ0VjkuNjlhMSwxLDAsMCwxLDIsMHY3LjVMMjUsMjAuMUExLDEsMCwwLDEsMjUuNDks''@;'; + put 'put ''MjEuNDNaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWJhZGdlZCBjbHIt''@;'; + put 'put ''aS1iYWRnZSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTExLjQyLDMuNDNhNS43Nyw1Ljc3LDAsMCwwLTcuNjQuNDEsNS43Miw1LjcyLDAsMCwwLS4zOCw3LjY0QTE2LjA4LDE2LjA4LDAsMCwxLDExLjQyLDMuNDNaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxp''@;'; + put 'put ''bmUtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOC44Niw5LjVhLjkuOSwwLDAsMC0xLjgsMHY5TDI0LjEyLDIyYS45LjksMCwxLDAsLjc5LTEuNjJsLTYuMDYtM1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJh''@;'; + put 'put ''ZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4LDI3Ljc4YTEzLjg5LDEzLjg5LDAsMCwwLDMuMjEtMTQuMzksNyw3LDAsMCwxLTIuMTEuMDVBMTIsMTIsMCwxLDEsMjIuNTYsNi45LDcuNTQsNy41NCwwLDAsMSwyMi41LDZhNy41Miw3LjUyLDAsMCwxLC4xMS0xLjIxQTE0LDE0LDAs''@;'; + put 'put ''MCwwLDguMTEsMjcuODhMNS41NiwzMC40M0ExLDEsMCwxLDAsNywzMS44NGwyLjY2LTIuNjZhMTMuOSwxMy45LDAsMCwwLDE2Ljg4LS4wOGwyLjc0LDIuNzRhMSwxLDAsMCwwLDEuNDEtMS40MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJh''@;'; + put 'put ''ZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMS40NywzLjg0YTUuNzgsNS43''@;'; + put 'put ''OCwwLDAsMC03LjM3LS42MywxNi4wOCwxNi4wOCwwLDAsMSw4LjIsNy42NUE1LjczLDUuNzMsMCwwLDAsMzEuNDcsMy44NFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMS40MiwzLjQzYTUuNzcsNS43NywwLDAsMC03''@;'; + put 'put ''LjY0LjQxLDUuNzIsNS43MiwwLDAsMC0uMzgsNy42NEExNi4wOCwxNi4wOCwwLDAsMSwxMS40MiwzLjQzWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDRBMTQsMTQsMCwwLDAsOC4xMSwyNy44OEw1LjU2LDMwLjQz''@;'; + put 'put ''QTEsMSwwLDEsMCw3LDMxLjg0bDIuNjYtMi42NmExMy45LDEzLjksMCwwLDAsMTYuODgtLjA4bDIuNzQsMi43NGExLDEsMCwwLDAsMS40MS0xLjQxTDI4LDI3Ljc4QTE0LDE0LDAsMCwwLDE4LDRabTcuNDcsMTcuNDNhMSwxLDAsMCwxLTEuMzMuNDdMMTcsMTguNDRWOS42OWExLDEsMCwwLDEs''@;'; + put 'put ''MiwwdjcuNUwyNSwyMC4xQTEsMSwwLDAsMSwyNS40OSwyMS40M1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiLz4nKSxlLkNsclNoYXBlQ2lyY2xlQXJyb3c9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCww''@;'; + put 'put ''LDAsMTgsMlptMCwzMEExNCwxNCwwLDEsMSwzMiwxOCwxNCwxNCwwLDAsMSwxOCwzMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTguMDgsOC4yNmwtNy42MSw3LjYxYTEsMSwwLDEsMCwxLjQxLDEuNDFMMTcs''@;'; + put 'put ''MTIuMTh2MTVhMSwxLDAsMCwwLDIsMFYxMmw1LjI4LDUuMjhhMSwxLDAsMSwwLDEuNDEtMS40MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMkExNiwxNiwwLDEsMCwzNCwxOCwxNiwxNiwwLDAsMCwxOCwy''@;'; + put 'put ''Wm04LDE1LjU3YTEuNDMsMS40MywwLDAsMS0yLDBMMTkuNCwxM1YyNy4xNGExLjQsMS40LDAsMCwxLTIuOCwwdi0xNGwtNC40Myw0LjQzYTEuNCwxLjQsMCwwLDEtMi0yTDE4LjA4LDcuNywyNiwxNS41OUExLjQsMS40LDAsMCwxLDI2LDE3LjU3WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1p''@;'; + put 'put ''LXNvbGlkLXBhdGgtMSIvPicpLGUuQ2xyU2hhcGVDaGlsZEFycm93PSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yNC44MiwxNS44YTEsMSwwLDAsMC0xLjQxLDAsMSwxLDAsMCwwLDAsMS40MUwyNy4yLDIxSDlWMy43OGExLDEsMCwxLDAtMiwwVjIxYTIsMiwwLDAsMCwyLDJIMjcuMTVs''@;'; + put 'put ''LTMuNzQsMy43NWExLDEsMCwwLDAsMCwxLjQxLDEsMSwwLDAsMCwuNy4yOSwxLDEsMCwwLDAsLjcxLS4yOUwzMSwyMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPicpLGUuQ2xyU2hhcGVDb3B5PSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yOS41''@;'; + put 'put ''LDdoLTE5QTEuNSwxLjUsMCwwLDAsOSw4LjV2MjRBMS41LDEuNSwwLDAsMCwxMC41LDM0aDE5QTEuNSwxLjUsMCwwLDAsMzEsMzIuNVY4LjVBMS41LDEuNSwwLDAsMCwyOS41LDdaTTI5LDMySDExVjlIMjlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxu''@;'; + put 'put ''ICAgICAgICAgICAgPHBhdGggZD0iTTI2LDMuNUExLjUsMS41LDAsMCwwLDI0LjUsMkg1LjVBMS41LDEuNSwwLDAsMCw0LDMuNXYyNEExLjUsMS41LDAsMCwwLDUuNSwyOUg2VjRIMjZaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICAgICAgICAgICAg''@;'; + put 'put ''PHBhdGggZD0iTTI3LDMuNTZBMS41NiwxLjU2LDAsMCwwLDI1LjQzLDJINS41N0ExLjU2LDEuNTYsMCwwLDAsNCwzLjU2VjI4LjQ0QTEuNTYsMS41NiwwLDAsMCw1LjU3LDMwaC41MlY0LjA3SDI3WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPlxuICAgICAgICAg''@;'; + put 'put ''ICAgPHJlY3QgeD0iOCIgeT0iNiIgd2lkdGg9IjIzIiBoZWlnaHQ9IjI4IiByeD0iMS41IiByeT0iMS41IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIi8+JyksZS5DbHJTaGFwZUhlbHA9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE4LDJBMTYsMTYsMCwxLDAs''@;'; + put 'put ''MzQsMTgsMTYsMTYsMCwwLDAsMTgsMlptMCwzMEExNCwxNCwwLDEsMSwzMiwxOCwxNCwxNCwwLDAsMSwxOCwzMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTguMjksOC45MmE3LjM4LDcuMzgsMCwwLDAtNS43''@;'; + put 'put ''MiwyLjU3LDEsMSwwLDAsMC0uMzIuNzEuOTIuOTIsMCwwLDAsLjk1LjkyLDEuMDgsMS4wOCwwLDAsMCwuNzEtLjI5LDUuNyw1LjcsMCwwLDEsNC4zMy0yYzIuMzYsMCwzLjgzLDEuNTIsMy44MywzLjQxdi4wNWMwLDIuMjEtMS43NiwzLjQ0LTQuNTQsMy42NWEuOC44LDAsMCwwLS43Ni45MnMw''@;'; + put 'put ''LDIuMzIsMCwyLjc1YTEsMSwwLDAsMCwxLC45aC4xMWExLDEsMCwwLDAsLjktMVYxOS40NWMzLS40Miw1LjQzLTIsNS40My01LjI4di0uMDVDMjQuMTgsMTEuMTIsMjEuODQsOC45MiwxOC4yOSw4LjkyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAg''@;'; + put 'put ''ICAgICAgICAgIDxjaXJjbGUgY3g9IjE3Ljc4IiBjeT0iMjYuMiIgcj0iMS4yNSIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNC4xOCwxNC4xN3YtLjA1YzAtMy0yLjM0LTUuMi01Ljg4LTUuMmE3LjM4LDcuMzgs''@;'; + put 'put ''MCwwLDAtNS43MiwyLjU3LDEsMSwwLDAsMC0uMzIuNzEuOTIuOTIsMCwwLDAsLjk1LjkyLDEuMDgsMS4wOCwwLDAsMCwuNzEtLjI5LDUuNyw1LjcsMCwwLDEsNC4zMy0yYzIuMzYsMCwzLjgzLDEuNTIsMy44MywzLjQxdi4wNWMwLDIuMjEtMS43NiwzLjQ0LTQuNTQsMy42NWEuOC44LDAsMCww''@;'; + put 'put ''LS43Ni45MnMwLDIuMzIsMCwyLjc1YTEsMSwwLDAsMCwxLC45aC4xMWExLDEsMCwwLDAsLjktMVYxOS40NUMyMS43NSwxOSwyNC4xOCwxNy40NSwyNC4xOCwxNC4xN1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIvPlxuICAgICAg''@;'; + put 'put ''ICAgICAgPGNpcmNsZSBjeD0iMTcuNzgiIGN5PSIyNi4yIiByPSIxLjI1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy4xMiwxMi44MWE3LjQzLDcuNDMsMCwwLDEtMS45MS41OCwx''@;'; + put 'put ''NC4wNSwxNC4wNSwwLDEsMS04LjYtOC42LDcuNDQsNy40NCwwLDAsMSwuNTgtMS45MSwxNi4wNiwxNi4wNiwwLDEsMCw5LjkzLDkuOTNaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9''@;'; + put 'put ''IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuMTIsMTIuODFhNy40OSw3LjQ5LDAsMCwxLTkuOTMtOS45MywxNi4wNiwxNi4wNiww''@;'; + put 'put ''LDEsMCw5LjkzLDkuOTNabS0xNS4zNCwxNWExLjY1LDEuNjUsMCwxLDEsMS42NS0xLjY1QTEuNjUsMS42NSwwLDAsMSwxNy43OCwyNy44NVptMS4zNy04LjA2djEuNzJhMS4zNywxLjM3LDAsMCwxLTEuMywxLjM2aC0uMTFhMS4zNCwxLjM0LDAsMCwxLTEuMzktMS4zYzAtLjQ0LDAtMi43Niww''@;'; + put 'put ''LTIuNzZhMS4xOSwxLjE5LDAsMCwxLDEuMTItMS4zMWMxLjU3LS4xMiw0LjE4LS43LDQuMTgtMy4yNSwwLTEuODMtMS40MS0zLjA3LTMuNDMtMy4wN2E1LjMxLDUuMzEsMCwwLDAtNCwxLjkyLDEuMzYsMS4zNiwwLDAsMS0yLjM1LS45LDEuNDMsMS40MywwLDAsMSwuNDMtMSw3Ljc3LDcuNzcs''@;'; + put 'put ''MCwwLDEsNi0yLjY5YzMuNywwLDYuMjgsMi4zLDYuMjgsNS42QzI0LjU4LDE3LjE2LDIyLjYxLDE5LjIsMTkuMTUsMTkuNzlaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2''@;'; + put 'put ''IiByPSI1IiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlptLS4yMiwyNS44NWExLjY1LDEuNjUsMCwx''@;'; + put 'put ''LDEsMS42NS0xLjY1QTEuNjUsMS42NSwwLDAsMSwxNy43OCwyNy44NVptMS4zNy04LjA2djEuNzJhMS4zNywxLjM3LDAsMCwxLTEuMywxLjM2aC0uMTFhMS4zNCwxLjM0LDAsMCwxLTEuMzktMS4zYzAtLjQ0LDAtMi43NiwwLTIuNzZhMS4xOSwxLjE5LDAsMCwxLDEuMTItMS4zMWMxLjU3LS4x''@;'; + put 'put ''Miw0LjE4LS43LDQuMTgtMy4yNSwwLTEuODMtMS40MS0zLjA3LTMuNDMtMy4wN2E1LjMxLDUuMzEsMCwwLDAtNCwxLjkyLDEuMzYsMS4zNiwwLDAsMS0yLjM1LS45LDEuNDMsMS40MywwLDAsMSwuNDMtMSw3Ljc3LDcuNzcsMCwwLDEsNi0yLjY5YzMuNywwLDYuMjgsMi4zLDYuMjgsNS42QzI0''@;'; + put 'put ''LjU4LDE3LjE2LDIyLjYxLDE5LjIsMTkuMTUsMTkuNzlaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+JyksZS5DbHJTaGFwZUxvZ2luPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yOCw0SDEyYTIsMiwwLDAsMC0yLDJIMjhWMzBIMTJWMjAuMkgxMFYzMGEy''@;'; + put 'put ''LDIsMCwwLDAsMiwySDI4YTIsMiwwLDAsMCwyLTJWNkEyLDIsMCwwLDAsMjgsNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE1LjEyLDE4LjQ2YTEsMSwwLDEsMCwxLjQxLDEuNDFsNS43OS01Ljc5TDE2LjU0''@;'; + put 'put ''LDguMjlhMSwxLDAsMCwwLTEuNDEsMS40MUwxOC41LDEzSDRhMSwxLDAsMCwwLTEsMSwxLDEsMCwwLDAsMSwxSDE4LjVaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOCw0SDEyYTIsMiwwLDAsMC0yLDJ2N2g4''@;'; + put 'put ''LjVMMTUuMTIsOS43MWExLDEsMCwwLDEsMS40MS0xLjQxbDUuNzksNS43OS01Ljc5LDUuNzlhMSwxLDAsMCwxLTEuNDEtMS40MUwxOC41LDE1SDEwVjMwYTIsMiwwLDAsMCwyLDJIMjhhMiwyLDAsMCwwLDItMlY2QTIsMiwwLDAsMCwyOCw0WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNv''@;'; + put 'put ''bGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMCwxM0g0YTEsMSwwLDAsMC0xLDEsMSwxLDAsMCwwLDEsMWg2WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz4nKSxlLkNsclNoYXBlTG9nb3V0PSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9''@;'; + put 'put ''Ik03LDZIMjN2OS44aDJWNmEyLDIsMCwwLDAtMi0ySDdBMiwyLDAsMCwwLDUsNlYzMGEyLDIsMCwwLDAsMiwySDIzYTIsMiwwLDAsMCwyLTJIN1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjguMTYsMTcuMjhh''@;'; + put 'put ''MSwxLDAsMCwwLTEuNDEsMS40MUwzMC4xMywyMkgxNS42M2ExLDEsMCwwLDAtMSwxLDEsMSwwLDAsMCwxLDFoMTQuNWwtMy4zOCwzLjQ2YTEsMSwwLDEsMCwxLjQxLDEuNDFMMzQsMjMuMDdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICAgICAgICAg''@;'; + put 'put ''ICAgPHBhdGggZD0iTTIzLDRIN0EyLDIsMCwwLDAsNSw2VjMwYTIsMiwwLDAsMCwyLDJIMjNhMiwyLDAsMCwwLDItMlYyNEgxNS42M2ExLDEsMCwwLDEtMS0xLDEsMSwwLDAsMSwxLTFIMjVWNkEyLDIsMCwwLDAsMjMsNFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEi''@;'; + put 'put ''Lz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOC4xNiwxNy4yOGExLDEsMCwwLDAtMS40MSwxLjQxTDMwLjEzLDIySDI1djJoNS4xM2wtMy4zOCwzLjQ2YTEsMSwwLDEsMCwxLjQxLDEuNDFMMzQsMjMuMDdaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIi8+JyksZS5D''@;'; + put 'put ''bHJTaGFwZVByaW50ZXI9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI5LDlIMjdWNUg5VjlIN2E0LDQsMCwwLDAtNCw0VjI0SDYuOTJWMjIuMDlINVYxM2EyLDIsMCwwLDEsMi0ySDI5YTIsMiwwLDAsMSwyLDJ2OUgyOS4wOFYyNEgzM1YxM0E0LDQsMCwwLDAsMjksOVpNMjUsOUgxMVY3''@;'; + put 'put ''SDI1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOCwxOEg4YTEsMSwwLDAsMCwwLDJIOVYzMkgyN1YyMGgxYTEsMSwwLDAsMCwwLTJaTTI1LDMwSDExVjIwSDI1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xy''@;'; + put 'put ''LWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjI3IiB5PSIxMy4wNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOCwxOEg4YTEsMSwwLDAsMCww''@;'; + put 'put ''LDJIOVYzMkgyN1YyMGgxYTEsMSwwLDAsMCwwLTJaTTI1LDMwSDExVjIwSDI1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMzEgMTUuNCAzMSAyMi4wOSAyOS4wOCAy''@;'; + put 'put ''Mi4wOSAyOS4wOCAyNCAzMyAyNCAzMyAxNS40IDMxIDE1LjQiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNNSwxM2EyLDIsMCwwLDEsMi0ySDE4LjY0QTMuNjUsMy42NSwwLDAsMSwx''@;'; + put 'put ''OSw5Ljg5TDE5LjU0LDlIMTFWN2g5LjcxbDEuMTMtMkg5VjlIN2E0LDQsMCwwLDAtNCw0VjI0SDYuOTJWMjIuMDlINVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4x''@;'; + put 'put ''NCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRl''@;'; + put 'put ''ZCBjbHItaS1hbGVydCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4LDE4SDhhMSwxLDAsMCwwLDAsMkg5VjMySDI3VjIwaDFhMSwxLDAsMCwwLDAtMlpNMjUsMzBIMTFWMjBIMjVaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQi''@;'; + put 'put ''Lz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjI3IiB5PSIxMy4wNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMsMTIuODhhNy40NSw3LjQ1LDAs''@;'; + put 'put ''MCwxLTIsLjU1djguNjZIMjkuMDhWMjRIMzNWMTNDMzMsMTMsMzMsMTIuOTMsMzMsMTIuODhaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik01LDEzYTIsMiwwLDAsMSwyLTJIMjQuNDJh''@;'; + put 'put ''Ny41LDcuNSwwLDAsMS0xLjI3LTJIMTFWN0gyMi41N2E3LjUyLDcuNTIsMCwwLDEtLjA3LTEsNy41NCw3LjU0LDAsMCwxLC4wNy0xSDlWOUg3YTQsNCwwLDAsMC00LDRWMjRINi45MlYyMi4wOUg1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0t''@;'; + put 'put ''YmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI5LDlIMjdWNUg5VjlIN2E0''@;'; + put 'put ''LDQsMCwwLDAtNCw0VjI0SDl2OEgyN1YyNGg2VjEzQTQsNCwwLDAsMCwyOSw5Wk0yNSwyNHY2SDExVjE5SDI1Wk0yNSw5SDExVjdIMjVabTQsNkgyN1YxM2gyWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIyLjIzLDE1''@;'; + put 'put ''LjRBMy42OCwzLjY4LDAsMCwxLDE5LDkuODlMMTkuNTQsOUgxMVY3aDkuNzFsMS4xMy0ySDlWOUg3YTQsNCwwLDAsMC00LDRWMjRIOXY4SDI3VjI0aDZWMTUuNFpNMjUsMjR2NkgxMVYxOUgyNVoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0''@;'; + put 'put ''ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1zb2xpZC0t''@;'; + put 'put ''YWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMywxMi44OGE3LjMsNy4zLDAsMCwxLTQsLjU1VjE1SDI3VjEzaC4zMmE3LjUyLDcuNTIsMCwwLDEtNC4xOC00SDExVjdIMjIuNTdhNy41Miw3LjUyLDAsMCwx''@;'; + put 'put ''LS4wNy0xLDcuNTQsNy41NCwwLDAsMSwuMDctMUg5VjlIN2E0LDQsMCwwLDAtNCw0VjI0SDl2OEgyN1YyNGg2VjEzQzMzLDEzLDMzLDEyLjkzLDMzLDEyLjg4Wk0yNSwyNHY2SDExVjE5SDI1WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQi''@;'; + put 'put ''Lz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiLz4nKSxlLkNsclNoYXBlV29ybGQ9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI2LjU0''@;'; + put 'put ''LDE4YTE5LjM4LDE5LjM4LDAsMCwwLS40My00aDMuNmExMi4zLDEyLjMsMCwwLDAtLjY3LTEuNkgyNS42OUExOS43MiwxOS43MiwwLDAsMCwyMi44LDYuNTNhMTIuMywxMi4zLDAsMCwwLTIuNTUtLjc2LDE3LjgzLDE3LjgzLDAsMCwxLDMuODksNi41OUgxOC43NVY1LjZjLS4yNSwwLS41MSww''@;'; + put 'put ''LS43Nywwcy0uNDksMC0uNzMsMHY2Ljc3SDExLjg2YTE3LjgzLDE3LjgzLDAsMCwxLDMuOS02LjYsMTIuMjgsMTIuMjgsMCwwLDAtMi41NC43NSwxOS43MiwxOS43MiwwLDAsMC0yLjkxLDUuODVINi45NEExMi4zLDEyLjMsMCwwLDAsNi4yNiwxNEg5Ljg5YTE5LjM4LDE5LjM4LDAsMCwwLS40''@;'; + put 'put ''Myw0LDE5LjY3LDE5LjY3LDAsMCwwLC41LDQuMzdINi40MkExMi4zNCwxMi4zNCwwLDAsMCw3LjE2LDI0aDMuMjNhMTkuMzIsMTkuMzIsMCwwLDAsMi42OSw1LjM2LDEyLjI4LDEyLjI4LDAsMCwwLDIuNjEuNzlBMTcuOTEsMTcuOTEsMCwwLDEsMTIsMjRoNS4yNnY2LjM0Yy4yNCwwLC40OSww''@;'; + put 'put ''LC43Mywwcy41MSwwLC43NywwVjI0SDI0YTE3LjksMTcuOSwwLDAsMS0zLjcsNi4xNSwxMi4yOCwxMi4yOCwwLDAsMCwyLjYyLS44MUExOS4zMiwxOS4zMiwwLDAsMCwyNS42MSwyNGgzLjJhMTIuMzQsMTIuMzQsMCwwLDAsLjc0LTEuNkgyNkExOS42NywxOS42NywwLDAsMCwyNi41NCwxOFpt''@;'; + put 'put ''LTkuMjksNC4zN0gxMS41MWExNy42OSwxNy42OSwwLDAsMS0uMDktOC40aDUuODNabTcuMjQsMEgxOC43NVYxNGg1LjgzQTE4LjIxLDE4LjIxLDAsMCwxLDI1LDE4LDE4LjEyLDE4LjEyLDAsMCwxLDI0LjQ5LDIyLjM3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRo''@;'; + put 'put ''LTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJabTAsMzBBMTQsMTQsMCwxLDEsMzIsMTgsMTQsMTQsMCwwLDEsMTgsMzJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICAgICAg''@;'; + put 'put ''ICAgICAgPHBhdGggZD0iTTMzLjEyLDEyLjgxYTcuNDQsNy40NCwwLDAsMS0xLjkxLjU4LDE0LjA1LDE0LjA1LDAsMSwxLTguNi04LjYsNy40Myw3LjQzLDAsMCwxLC41OC0xLjkxLDE2LjA2LDE2LjA2LDAsMSwwLDkuOTMsOS45M1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xy''@;'; + put 'put ''LWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIwLjI1LDUuNzdhMTcuODMsMTcuODMsMCwwLDEsMy44OSw2LjU5SDE4Ljc1VjUuNmMtLjI1LDAtLjUxLDAtLjc3LDBzLS40OSwwLS43MywwdjYuNzdIMTEuODZhMTcuODMsMTcuODMsMCwwLDEsMy45''@;'; + put 'put ''LTYuNiwxMi4yOCwxMi4yOCwwLDAsMC0yLjU0Ljc1LDE5LjcyLDE5LjcyLDAsMCwwLTIuOTEsNS44NUg2Ljk0QTEyLjMsMTIuMywwLDAsMCw2LjI2LDE0SDkuODlhMTkuMzgsMTkuMzgsMCwwLDAtLjQzLDQsMTkuNjcsMTkuNjcsMCwwLDAsLjUsNC4zN0g2LjQyQTEyLjM0LDEyLjM0LDAsMCww''@;'; + put 'put ''LDcuMTYsMjRoMy4yM2ExOS4zMiwxOS4zMiwwLDAsMCwyLjY5LDUuMzYsMTIuMjgsMTIuMjgsMCwwLDAsMi42MS43OUExNy45MSwxNy45MSwwLDAsMSwxMiwyNGg1LjI2djYuMzRjLjI0LDAsLjQ5LDAsLjczLDBzLjUxLDAsLjc3LDBWMjRIMjRhMTcuOSwxNy45LDAsMCwxLTMuNyw2LjE1LDEy''@;'; + put 'put ''LjI4LDEyLjI4LDAsMCwwLDIuNjItLjgxQTE5LjMyLDE5LjMyLDAsMCwwLDI1LjYxLDI0aDMuMmExMi4zNCwxMi4zNCwwLDAsMCwuNzQtMS42SDI2YTE5LjY3LDE5LjY3LDAsMCwwLC41LTQuMzcsMTkuMzgsMTkuMzgsMCwwLDAtLjQzLTRoMy42Yy0uMDYtLjE3LS4xMi0uMzMtLjE5LS40OWE3''@;'; + put 'put ''LjQ1LDcuNDUsMCwwLDEtMy40Ny0xLjExaC0uMzZjMC0uMTEtLjA4LS4yMS0uMTEtLjMyYTcuNDgsNy40OCwwLDAsMS0zLjA2LTUuNjJBMTIuNDEsMTIuNDEsMCwwLDAsMjAuMjUsNS43N1ptLTMsMTYuNTlIMTEuNTFhMTcuNjksMTcuNjksMCwwLDEtLjA5LTguNGg1LjgzWk0yNSwxOGExOC4x''@;'; + put 'put ''MiwxOC4xMiwwLDAsMS0uNTUsNC4zN0gxOC43NVYxNGg1LjgzQTE4LjIxLDE4LjIxLDAsMCwxLDI1LDE4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUi''@;'; + put 'put ''IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTEwLjA1LDE4YTIwLjQ2LDIwLjQ2LDAsMCwwLC42Miw0LjkzaDYuNDhWMTMuNDVIMTAuNThBMjAuNTUsMjAuNTUsMCww''@;'; + put 'put ''LDAsMTAuMDUsMThaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTguODUsMTMuNDV2OS40OGg2LjQ4QTIwLjQ2LDIwLjQ2LDAsMCwwLDI2LDE4YTIwLjU1LDIwLjU1LDAsMCwwLS41Mi00LjU1WiIgY2xhc3M9ImNsci1p''@;'; + put 'put ''LXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlpNMzAuMjIsMjQuNzFIMjYuNmEyMS44LDIxLjgsMCwwLDEtMyw2LDEzLjg2LDEzLjg2LDAsMCwxLTMsLjkyLDIwLjIxLDIwLjIx''@;'; + put 'put ''LDAsMCwwLDQuMTgtNi45NEgxOC44NnY3LjE1Yy0uMjksMC0uNTcsMC0uODYsMHMtLjU1LDAtLjgzLDBWMjQuNzFIMTEuMjJhMjAuMjEsMjAuMjEsMCwwLDAsNC4xOCw2Ljk1LDEzLjg2LDEzLjg2LDAsMCwxLTIuOTQtLjksMjEuOCwyMS44LDAsMCwxLTMtNi4wNUg1Ljc4YTEzLjk0LDEzLjk0''@;'; + put 'put ''LDAsMCwxLS44My0xLjgxaDRBMjIuMiwyMi4yLDAsMCwxLDguMzcsMThhMjEuODgsMjEuODgsMCwwLDEsLjQ4LTQuNTVINC43NmExMy44OCwxMy44OCwwLDAsMSwuNzYtMS44MUg5LjMzQTIyLjI2LDIyLjI2LDAsMCwxLDEyLjYxLDVhMTMuODYsMTMuODYsMCwwLDEsMi44Ny0uODQsMjAuMTMs''@;'; + put 'put ''MjAuMTMsMCwwLDAtNC40LDcuNDVoNi4wOVY0Yy4yOCwwLC41NSwwLC44Mywwcy41OCwwLC44NiwwdjcuNjRoNi4wOWEyMC4xMywyMC4xMywwLDAsMC00LjM5LTcuNDRBMTMuODksMTMuODksMCwwLDEsMjMuNDMsNWEyMi4yNiwyMi4yNiwwLDAsMSwzLjI3LDYuNTloMy43N2ExMy44OSwxMy44''@;'; + put 'put ''OSwwLDAsMSwuNzYsMS44MUgyNy4xN0EyMS44OCwyMS44OCwwLDAsMSwyNy42NiwxOGEyMi4yLDIyLjIsMCwwLDEtLjU3LDQuOTNoNEExMy45NCwxMy45NCwwLDAsMSwzMC4yMiwyNC43MVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiLz5cbiAgICAgICAgICAgIDxw''@;'; + put 'put ''YXRoIGQ9Ik0xMC4wNSwxOGEyMC40NiwyMC40NiwwLDAsMCwuNjIsNC45M2g2LjQ4VjEzLjQ1SDEwLjU4QTIwLjU1LDIwLjU1LDAsMCwwLDEwLjA1LDE4WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRo''@;'; + put 'put ''IGQ9Ik0xOC44NSwyMi45NGg2LjQ4QTIwLjQ2LDIwLjQ2LDAsMCwwLDI2LDE4YTIwLjU1LDIwLjU1LDAsMCwwLS41Mi00LjU1SDE4Ljg1WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy4x''@;'; + put 'put ''MiwxMi44MWE3LjQ0LDcuNDQsMCwwLDEtMS45LjU4djBIMzFhNi43Nyw2Ljc3LDAsMCwxLTIuMDcsMGgtMS44QTIxLjg4LDIxLjg4LDAsMCwxLDI3LjY2LDE4YTIyLjIsMjIuMiwwLDAsMS0uNTcsNC45M2g0YTEzLjk0LDEzLjk0LDAsMCwxLS44MywxLjgxSDI2LjZhMjEuOCwyMS44LDAsMCwx''@;'; + put 'put ''LTMsNiwxMy44NiwxMy44NiwwLDAsMS0zLC45MiwyMC4yMSwyMC4yMSwwLDAsMCw0LjE4LTYuOTRIMTguODZ2Ny4xNWMtLjI5LDAtLjU3LDAtLjg2LDBzLS41NSwwLS44MywwVjI0LjcxSDExLjIyYTIwLjIxLDIwLjIxLDAsMCwwLDQuMTgsNi45NSwxMy44NiwxMy44NiwwLDAsMS0yLjk0LS45''@;'; + put 'put ''LDIxLjgsMjEuOCwwLDAsMS0zLTYuMDVINS43OGExMy45NCwxMy45NCwwLDAsMS0uODMtMS44MWg0QTIyLjIsMjIuMiwwLDAsMSw4LjM3LDE4YTIxLjg4LDIxLjg4LDAsMCwxLC40OC00LjU1SDQuNzZhMTMuODgsMTMuODgsMCwwLDEsLjc2LTEuODFIOS4zM0EyMi4yNiwyMi4yNiwwLDAsMSwx''@;'; + put 'put ''Mi42MSw1YTEzLjg2LDEzLjg2LDAsMCwxLDIuODctLjg0LDIwLjEzLDIwLjEzLDAsMCwwLTQuNCw3LjQ1aDYuMDlWNGMuMjgsMCwuNTUsMCwuODMsMHMuNTgsMCwuODYsMHY3LjY0aDYuMDlsMC0uMTNhNy40Nyw3LjQ3LDAsMCwxLTIuMzYtNC43NiwyMC4zNywyMC4zNywwLDAsMC0yLTIuNTUs''@;'; + put 'put ''MTQuMjMsMTQuMjMsMCwwLDEsMi4wNi41Niw3LjQ0LDcuNDQsMCwwLDEsLjU3LTEuODYsMTYuMDYsMTYuMDYsMCwxLDAsOS45Myw5LjkzWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0zLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMw''@;'; + put 'put ''IiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC00LS1iYWRnZWQgY2xyLWktYmFkZ2UiLz4nKSxlLkNsclNoYXBlU2xpZGVyPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xMiwxMi4zN0E0LDQsMCwwLDAsOSw4LjQ4VjVBMSwxLDAs''@;'; + put 'put ''MSwwLDcsNVY4LjQ4YTQsNCwwLDAsMCwwLDcuNzhWMzFhMSwxLDAsMSwwLDIsMFYxNi4yNkE0LDQsMCwwLDAsMTIsMTIuMzdabS00LDJhMiwyLDAsMSwxLDItMkEyLDIsMCwwLDEsOCwxNC40WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAg''@;'; + put 'put ''ICAgIDxwYXRoIGQ9Ik0zMiwxNS44M2E0LDQsMCwwLDAtMy0zLjg5VjVhMSwxLDAsMSwwLTIsMHY2Ljk0YTQsNCwwLDAsMCwwLDcuNzhWMzFhMSwxLDAsMSwwLDIsMFYxOS43MkE0LDQsMCwwLDAsMzIsMTUuODNabS00LDJhMiwyLDAsMSwxLDItMkEyLDIsMCwwLDEsMjgsMTcuODdaIiBjbGFz''@;'; + put 'put ''cz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIyLDI0LjVhNCw0LDAsMCwwLTMtMy44OVY1YTEsMSwwLDEsMC0yLDBWMjAuNjFhNCw0LDAsMCwwLDAsNy43OFYzMWExLDEsMCwxLDAsMiwwVjI4LjM5QTQsNCwwLDAsMCwyMiwy''@;'; + put 'put ''NC41Wm0tNCwyYTIsMiwwLDEsMSwyLTJBMiwyLDAsMCwxLDE4LDI2LjUzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik05LDkuMjlWNUExLDEsMCwxLDAsNyw1VjkuM2EzLjIyLDMuMjIsMCwwLDAsMCw2LjExVjMx''@;'; + put 'put ''YTEsMSwwLDEsMCwyLDBWMTUuNDNBMy4yMiwzLjIyLDAsMCwwLDksOS4yOVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOSwyMS40NVY1YTEsMSwwLDEsMC0yLDBWMjEuNDdhMy4yMiwzLjIyLDAsMCwwLDAsNi4xMVYz''@;'; + put 'put ''MWExLDEsMCwxLDAsMiwwVjI3LjZhMy4yMiwzLjIyLDAsMCwwLDAtNi4xNFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOSwxMi43NVY1YTEsMSwwLDEsMC0yLDB2Ny43NmEzLjIyLDMuMjIsMCwwLDAsMCw2LjExVjMx''@;'; + put 'put ''YTEsMSwwLDEsMCwyLDBWMTguODlhMy4yMiwzLjIyLDAsMCwwLDAtNi4xNFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiLz4nKSxlLkNsclNoYXBlQ2xpcGJvYXJkPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yOS4yOSw1SDI3VjdoMlYzMkg3VjdIOVY1SDdB''@;'; + put 'put ''MS43NSwxLjc1LDAsMCwwLDUsNi42OVYzMi4zMUExLjcsMS43LDAsMCwwLDYuNzEsMzRIMjkuMjlBMS43LDEuNywwLDAsMCwzMSwzMi4zMVY2LjY5QTEuNywxLjcsMCwwLDAsMjkuMjksNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAg''@;'; + put 'put ''ICAgPHBhdGggZD0iTTI2LDcuMzNBMi4zNCwyLjM0LDAsMCwwLDIzLjY3LDVIMjEuODdhNCw0LDAsMCwwLTcuNzUsMEgxMi4zM0EyLjM0LDIuMzQsMCwwLDAsMTAsNy4zM1YxMUgyNlpNMjQsOUgxMlY3LjMzQS4zMy4zMywwLDAsMSwxMi4zMyw3SDE2VjZhMiwyLDAsMCwxLDQsMFY3aDMuNjdh''@;'; + put 'put ''LjMzLjMzLDAsMCwxLC4zMy4zM1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTEiIHk9IjE0IiB3aWR0aD0iMTQiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMi''@;'; + put 'put ''IC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMSIgeT0iMTgiIHdpZHRoPSIxNCIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjExIiB5PSIyMiIgd2lkdGg9IjE0IiBoZWlnaHQ9IjIiIGNsYXNz''@;'; + put 'put ''PSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTEiIHk9IjI2IiB3aWR0aD0iMTQiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIx''@;'; + put 'put ''MSIgeT0iMTQiIHdpZHRoPSIxNCIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMSIgeT0iMTgiIHdpZHRoPSIxNCIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0''@;'; + put 'put ''bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMSIgeT0iMjIiIHdpZHRoPSIxNCIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiIC8+XG4g''@;'; + put 'put ''ICAgICAgICAgICA8cmVjdCB4PSIxMSIgeT0iMjYiIHdpZHRoPSIxNCIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjMuMTMsOUgxMlY3LjMzQS4zMy4zMywwLDAs''@;'; + put 'put ''MSwxMi4zMyw3SDE2VjZhMiwyLDAsMCwxLDQsMFY3aDIuNTdhNy41Miw3LjUyLDAsMCwxLS4wNy0xLDcuNTIsNy41MiwwLDAsMSwuMDctMWgtLjdhNCw0LDAsMCwwLTcuNzUsMEgxMi4zM0EyLjM0LDIuMzQsMCwwLDAsMTAsNy4zM1YxMUgyNC40MkE3LjUsNy41LDAsMCwxLDIzLjEzLDlaIiBj''@;'; + put 'put ''bGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC01LS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAsMTMuNWE3LjUyLDcuNTIsMCwwLDEtMS0uMDdWMzJIN1Y3SDlWNUg3QTEuNzUsMS43NSwwLDAsMCw1LDYuNjlWMzIuMzFBMS43LDEuNyww''@;'; + put 'put ''LDAsMCw2LjcxLDM0SDI5LjI5QTEuNywxLjcsMCwwLDAsMzEsMzIuMzFWMTMuNDNBNy41Miw3LjUyLDAsMCwxLDMwLDEzLjVaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC02LS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIg''@;'; + put 'put ''Y3k9IjYiIHI9IjUiICBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC03LS1iYWRnZWQgY2xyLWktYmFkZ2UiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjkuMjksNUgyMi4xN2E0LjQ1LDQuNDUsMCwwLDAtNC4xMS0zQTQuNDYsNC40NiwwLDAsMCwx''@;'; + put 'put ''NCw1SDdBMS43NSwxLjc1LDAsMCwwLDUsNi42OVYzMi4zMUExLjcsMS43LDAsMCwwLDYuNzEsMzRIMjkuMjlBMS43LDEuNywwLDAsMCwzMSwzMi4zMVY2LjY5QTEuNywxLjcsMCwwLDAsMjkuMjksNVptLTE4LDNhMSwxLDAsMCwxLDEtMWgzLjQ0VjYuMzFhMi4zMSwyLjMxLDAsMSwxLDQuNjMs''@;'; + put 'put ''MFY3aDMuNDRhMSwxLDAsMCwxLDEsMXYySDExLjMxWk0yNSwyOEgxMVYyNkgyNVptMC00SDExVjIySDI1Wm0wLTRIMTFWMThIMjVabTAtNEgxMVYxNEgyNVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAsMTMuNUE3''@;'; + put 'put ''LjQ5LDcuNDksMCwwLDEsMjMuNjYsMTBIMTEuMzFWOGExLDEsMCwwLDEsMS0xaDMuNDRWNi4zMWEyLjMxLDIuMzEsMCwxLDEsNC42MywwVjdoMi4xOWE3LjU0LDcuNTQsMCwwLDEtLjA3LTEsNy41Miw3LjUyLDAsMCwxLC4wNy0xaC0uNGE0LjQ1LDQuNDUsMCwwLDAtNC4xMS0zQTQuNDYsNC40''@;'; + put 'put ''NiwwLDAsMCwxNCw1SDdBMS43NSwxLjc1LDAsMCwwLDUsNi42OVYzMi4zMUExLjcsMS43LDAsMCwwLDYuNzEsMzRIMjkuMjlBMS43LDEuNywwLDAsMCwzMSwzMi4zMVYxMy40M0E3LjUyLDcuNTIsMCwwLDEsMzAsMTMuNVpNMjUsMjhIMTFWMjZIMjVabTAtNEgxMVYyMkgyNVptMC00SDExVjE4''@;'; + put 'put ''SDI1Wm0wLTRIMTFWMTRIMjVaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgt''@;'; + put 'put ''Mi0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPicpLGUuQ2xyU2hhcGVGaXJld2FsbD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzIsNkg0QTIsMiwwLDAsMCwyLDhWMjhhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjhBMiwyLDAsMCwwLDMyLDZaTTQsOEgzMnY1LjA4SDIzLjh2''@;'; + put 'put ''LTRIMjJ2NEgxNHYtNEgxMnY0SDRabTAsN0gzMnY2LjA4SDI4LjkyVjE2LjI3SDI3djQuODFIMTguOTJWMTYuMjdIMTd2NC44MUg4LjlWMTYuMjdIN3Y0LjgxSDRaTTIzLjgsMjhWMjQuMjdIMjIuMlYyOEgxNFYyNC4yN2gtMS42VjI4SDRWMjNIMzJ2NVoiIGNsYXNzPSJjbHItaS1vdXRsaW5l''@;'; + put 'put ''IGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLjY4LDE1LjRIMzJ2NS42OEgyOC45MlYxNi4yN0gyN3Y0LjgxSDE4LjkyVjE2LjI3SDE3djQuODFIOC45VjE2LjI3SDd2NC44MUg0VjE1SDIwLjU4YTMuNTgsMy41OCwwLDAsMS0xLjc2LTEuOTJIMTR2''@;'; + put 'put ''LTRIMTJ2NEg0VjhIMjAuMTRsMS4xNS0ySDRBMiwyLDAsMCwwLDIsOFYyOGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMTUuMzhaTTIzLjgsMjhWMjQuMjdIMjIuMlYyOEgxNFYyNC4yN2gtMS42VjI4SDRWMjNIMzJ2NVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNs''@;'; + put 'put ''ci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwx''@;'; + put 'put ''LjE0WiIgIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLDEzLjVhNy40Nyw3LjQ3LDAsMCwxLTIuNDUtLjQySDIzLjhWMTAuMjJhNy41LDcuNSwwLDAsMS0u''@;'; + put 'put ''NjMtMS4xNEgyMnY0SDE0di00SDEydjRINFY4SDIyLjc4YTcuNDksNy40OSwwLDAsMS0uMjgtMkg0QTIsMiwwLDAsMCwyLDhWMjhhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjEyLjM0QTcuNDUsNy40NSwwLDAsMSwzMCwxMy41Wk00LDE1SDMydjYuMDhIMjguOTJWMTYuMjdIMjd2''@;'; + put 'put ''NC44MUgxOC45MlYxNi4yN0gxN3Y0LjgxSDguOVYxNi4yN0g3djQuODFINFpNMjMuOCwyOFYyNC4yN0gyMi4yVjI4SDE0VjI0LjI3aC0xLjZWMjhINFYyM0gzMnY1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiAvPlxuICAgICAg''@;'; + put 'put ''ICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMyLDZINEEyLDIsMCwwLDAsMiw4VjI4YTIsMiwwLDAs''@;'; + put 'put ''MCwyLDJIMzJhMiwyLDAsMCwwLDItMlY4QTIsMiwwLDAsMCwzMiw2Wk0xNCwyOEgxMlYyNGgyWm0xMCwwSDIyVjI0aDJabTgtNkg0VjIwSDdWMTZIOXY0aDhWMTZoMnY0aDhWMTZoMnY0aDNabTAtOEg0VjEyaDhWOGgydjRoOFY4aDJ2NGg4WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNv''@;'; + put 'put ''bGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy42OCwxNS40SDIyLjIzQTMuNjksMy42OSwwLDAsMSwxOS4zNSwxNEg0VjEyaDhWOGgydjRoNC41N0EzLjY3LDMuNjcsMCwwLDEsMTksOS44OUwyMS4yOSw2SDRBMiwyLDAsMCwwLDIsOFYyOGEyLDIsMCwwLDAsMiwySDMy''@;'; + put 'put ''YTIsMiwwLDAsMCwyLTJWMTUuMzhaTTE0LDI4SDEyVjI0aDJabTEwLDBIMjJWMjRoMlptOC02SDRWMjBIN1YxNkg5djRoOFYxNmgydjRoOFYxNmgydjRoM1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8''@;'; + put 'put ''cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiAgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlk''@;'; + put 'put ''LXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNCwxMC40OVYxMmgxLjUxQTcuNTMsNy41MywwLDAsMSwyNCwxMC40OVoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiAvPlxuICAgICAg''@;'; + put 'put ''ICAgICAgPHBhdGggZD0iTTMyLDEzLjIyVjE0SDRWMTJoOFY4aDJ2NGg4VjhoLjc4YTcuNDksNy40OSwwLDAsMS0uMjgtMkg0QTIsMiwwLDAsMCwyLDhWMjhhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjEyLjM0QTcuNDUsNy40NSwwLDAsMSwzMiwxMy4yMlpNMTQsMjhIMTJWMjRo''@;'; + put 'put ''MlptMTAsMEgyMlYyNGgyWm04LTZINFYyMEg3VjE2SDl2NGg4VjE2aDJ2NGg4VjE2aDJ2NGgzWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiICBjbGFzcz0i''@;'; + put 'put ''Y2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIgLz4nKSxlLkNsclNoYXBlTGlzdD0oMCxhLmNsckljb25TVkcpKCc8cmVjdCB4PSIxNSIgeT0iOCIgd2lkdGg9IjkiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWkt''@;'; + put 'put ''b3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNSIgeT0iMTIiIHdpZHRoPSI5IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTUiIHk9IjE2IiB3aWR0aD0iOSIgaGVp''@;'; + put 'put ''Z2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE1IiB5PSIyMCIgd2lkdGg9IjkiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+XG4gICAgICAgICAg''@;'; + put 'put ''ICA8cmVjdCB4PSIxNSIgeT0iMjQiIHdpZHRoPSI5IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTEiIHk9IjgiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNs''@;'; + put 'put ''ci1pLW91dGxpbmUtcGF0aC02IiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTEiIHk9IjEyIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNyIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjExIiB5PSIxNiIgd2lkdGg9IjIi''@;'; + put 'put ''IGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTgiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMSIgeT0iMjAiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC05IiAvPlxuICAgICAg''@;'; + put 'put ''ICAgICAgPHJlY3QgeD0iMTEiIHk9IjI0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMTAiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjgsMkg4QTIsMiwwLDAsMCw2LDRWMzJhMiwyLDAsMCwwLDIsMkgyOGEyLDIsMCww''@;'; + put 'put ''LDAsMi0yVjRBMiwyLDAsMCwwLDI4LDJabTAsMzBIOFY0SDI4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTExIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTUiIHk9IjEyIiB3aWR0aD0iOSIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFk''@;'; + put 'put ''Z2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNSIgeT0iMTYiIHdpZHRoPSI5IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgLz5cbiAgICAgICAgICAg''@;'; + put 'put ''IDxyZWN0IHg9IjE1IiB5PSIyMCIgd2lkdGg9IjkiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTUiIHk9IjI0IiB3aWR0aD0iOSIgaGVpZ2h0PSIyIiBjbGFzcz0i''@;'; + put 'put ''Y2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMSIgeT0iOCIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYmFkZ2Vk''@;'; + put 'put ''IiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTEiIHk9IjEyIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC02LS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMSIgeT0iMTYiIHdpZHRoPSIyIiBo''@;'; + put 'put ''ZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTctLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjExIiB5PSIyMCIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRs''@;'; + put 'put ''aW5lLXBhdGgtOC0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTEiIHk9IjI0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC05LS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTUs''@;'; + put 'put ''OHYyaDguNjZhNy40NSw3LjQ1LDAsMCwxLS44OS0yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMTAtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOCwxMy4yMlYzMkg4VjRIMjIuNzhhNy40NSw3LjQ1LDAsMCwxLC44OC0ySDhB''@;'; + put 'put ''MiwyLDAsMCwwLDYsNFYzMmEyLDIsMCwwLDAsMiwySDI4YTIsMiwwLDAsMCwyLTJWMTMuNUE3LjQ5LDcuNDksMCwwLDEsMjgsMTMuMjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xMS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBj''@;'; + put 'put ''eD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMTItLWJhZGdlZCBjbHItaS1iYWRnZSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOCwySDhBMiwyLDAsMCwwLDYsNFYzMmEyLDIsMCwwLDAsMiwySDI4YTIsMiww''@;'; + put 'put ''LDAsMCwyLTJWNEEyLDIsMCwwLDAsMjgsMlpNMTMsMjZIMTFWMjRoMlptMC00SDExVjIwaDJabTAtNEgxMVYxNmgyWm0wLTRIMTFWMTJoMlptMC00SDExVjhoMlpNMjUsMjZIMTVWMjRIMjVabTAtNEgxNVYyMEgyNVptMC00SDE1VjE2SDI1Wm0wLTRIMTVWMTJIMjVabTAtNEgxNVY4SDI1WiIg''@;'; + put 'put ''Y2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMy42NiwxMEgxNVY4aDcuNzhhNy40Miw3LjQyLDAsMCwxLC44OS02SDhBMiwyLDAsMCwwLDYsNFYzMmEyLDIsMCwwLDAsMiwySDI4YTIsMiwwLDAsMCwyLTJWMTMuNUE3LjQ5''@;'; + put 'put ''LDcuNDksMCwwLDEsMjMuNjYsMTBaTTEzLDI2SDExVjI0aDJabTAtNEgxMVYyMGgyWm0wLTRIMTFWMTZoMlptMC00SDExVjEyaDJabTAtNEgxMVY4aDJaTTI1LDI2SDE1VjI0SDI1Wm0wLTRIMTVWMjBIMjVabTAtNEgxNVYxNkgyNVptMC00SDE1VjEySDI1WiIgY2xhc3M9ImNsci1pLXNvbGlk''@;'; + put 'put ''LS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiICBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIgLz4nKSxlLkNsclNoYXBl''@;'; + put 'put ''UmVkbz0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjQsNC4yMmExLDEsMCwwLDAtMS40MSwxLjQybDUuNTYsNS40OWgtMTNBMTEsMTEsMCwwLDAsMTAuMDcsMzIsMSwxLDAsMCwwLDExLDMwLjE4YTksOSwwLDAsMS01LTgsOS4wOCw5LjA4LDAsMCwxLDkuMTMtOWgxM2wtNS41NCw1LjQ4''@;'; + put 'put ''QTEsMSwwLDAsMCwyNCwyMGw4LTcuOTFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz4nKSxlLkNsclNoYXBlVW5kbz0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjAuODcsMTEuMTRoLTEzbDUuNTYtNS40OUExLDEsMCwwLDAsMTIsNC4yMkw0LDEy''@;'; + put 'put ''LjEzLDEyLDIwYTEsMSwwLDAsMCwxLjQxLTEuNDJMNy44NiwxMy4xNGgxM2E5LjA4LDkuMDgsMCwwLDEsOS4xMyw5LDksOSwwLDAsMS01LDhBMSwxLDAsMCwwLDI1LjkzLDMyYTExLDExLDAsMCwwLTUuMDYtMjAuODJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgt''@;'; + put 'put ''MSIgLz4nKSxlLkNsclNoYXBlU2Nyb2xsPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zNCwxMS4xMlY2LjU4YTQuNSw0LjUsMCwwLDAtNC41LTQuNWgtMTZBNC41LDQuNSwwLDAsMCw5LDYuNTh2MjNhMi41LDIuNSwwLDEsMS01LDBWMjZINy4xOVYyNEgydjUuNUE0LjUsNC41LDAsMCww''@;'; + put 'put ''LDYuNSwzNEgyNS41OGE0LjUsNC41LDAsMCwwLDQuNS00LjVWMTMuMTNoLTJWMjkuNTRhMi41LDIuNSwwLDAsMS0yLjUsMi41SDEwLjI0YTQuNDcsNC40NywwLDAsMCwuNzYtMi41di0yM2EyLjUsMi41LDAsMCwxLDUsMHY0LjU0Wm0tNC41LTdBMi41LDIuNSwwLDAsMSwzMiw2LjU4VjkuMTJI''@;'; + put 'put ''MThWNi41OGE0LjQ4LDQuNDgsMCwwLDAtLjc2LTIuNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4LjA4LDE1LjRWMjkuNTRhMi41LDIuNSwwLDAsMS0yLjUsMi41SDEwLjI0YTQuNDcsNC40NywwLDAsMCwu''@;'; + put 'put ''NzYtMi41di0yM2EyLjUsMi41LDAsMCwxLDUsMHY0LjU0aDIuNjFBMy42NiwzLjY2LDAsMCwxLDE5LDkuODlsLjQ0LS43NkgxOFY2LjU4YTQuNDgsNC40OCwwLDAsMC0uNzYtMi41SDIyLjRsMS4xNS0ySDEzLjVBNC41LDQuNSwwLDAsMCw5LDYuNTh2MjNhMi41LDIuNSwwLDEsMS01LDBWMjZI''@;'; + put 'put ''Ny4xOVYyNEgydjUuNUE0LjUsNC41LDAsMCwwLDYuNSwzNEgyNS41OGE0LjUsNC41LDAsMCwwLDQuNS00LjVWMTUuNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEu''@;'; + put 'put ''MTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVy''@;'; + put 'put ''dGVkIGNsci1pLWFsZXJ0IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLDEzLjVhNy40OSw3LjQ5LDAsMCwxLTEuOTItLjI2djE2LjNhMi41LDIuNSwwLDAsMS0yLjUsMi41SDEwLjI0YTQuNDcsNC40NywwLDAsMCwuNzYtMi41di0yM2EyLjUsMi41LDAsMCwxLDUsMHY0LjU0aDguNTRh''@;'; + put 'put ''Ny41LDcuNSwwLDAsMS0xLjM1LTJIMThWNi41OGE0LjQ4LDQuNDgsMCwwLDAtLjc2LTIuNWg1LjUyYTcuNDQsNy40NCwwLDAsMSwuODYtMkgxMy41QTQuNSw0LjUsMCwwLDAsOSw2LjU4djIzYTIuNSwyLjUsMCwxLDEtNSwwVjI2SDcuMTlWMjRIMnY1LjVBNC41LDQuNSwwLDAsMCw2LjUsMzRI''@;'; + put 'put ''MjUuNThhNC41LDQuNSwwLDAsMCw0LjUtNC41di0xNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRn''@;'; + put 'put ''ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zNCwxMS4xMlY2LjU4YTQuNSw0LjUsMCwwLDAtNC41LTQuNWgtMTZBNC41LDQuNSwwLDAsMCw5LDYuNThWMjRIMnY1LjVBNC41LDQuNSwwLDAsMCw2LjUsMzRIMjUu''@;'; + put 'put ''NThhNC41LDQuNSwwLDAsMCw0LjUtNC41VjEzLjEzaC0yVjI5LjU0YTIuNSwyLjUsMCwwLDEtMi41LDIuNUgxMC4yNGE0LjQ3LDQuNDcsMCwwLDAsLjc2LTIuNXYtMjNhMi41LDIuNSwwLDAsMSw1LDB2NC41NFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4g''@;'; + put 'put ''ICAgICAgICAgICA8cGF0aCBkPSJNMjguMDgsMTUuNFYyOS41NGEyLjUsMi41LDAsMCwxLTIuNSwyLjVIMTAuMjRhNC40Nyw0LjQ3LDAsMCwwLC43Ni0yLjV2LTIzYTIuNSwyLjUsMCwwLDEsNSwwdjQuNTRoMi42MUEzLjY2LDMuNjYsMCwwLDEsMTksOS44OWw0LjUxLTcuOEgxMy41QTQuNSw0''@;'; + put 'put ''LjUsMCwwLDAsOSw2LjU4VjI0SDJ2NS41QTQuNSw0LjUsMCwwLDAsNi41LDM0SDI1LjU4YTQuNSw0LjUsMCwwLDAsNC41LTQuNVYxNS40WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0y''@;'; + put 'put ''Ni44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiICBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1h''@;'; + put 'put ''bGVydGVkIGNsci1pLWFsZXJ0IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLDEzLjVhNy40OSw3LjQ5LDAsMCwxLTEuOTItLjI2djE2LjNhMi41LDIuNSwwLDAsMS0yLjUsMi41SDEwLjI0YTQuNDcsNC40NywwLDAsMCwuNzYtMi41di0yM2EyLjUsMi41LDAsMCwxLDUsMHY0LjU0aDgu''@;'; + put 'put ''NTRhNy40Niw3LjQ2LDAsMCwxLS45Mi05SDEzLjVBNC41LDQuNSwwLDAsMCw5LDYuNThWMjRIMnY1LjVBNC41LDQuNSwwLDAsMCw2LjUsMzRIMjUuNThhNC41LDQuNSwwLDAsMCw0LjUtNC41di0xNloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFk''@;'; + put 'put ''Z2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIC8+JyksZS5DbHJTaGFwZUZpbGVTZXR0aW5ncz0oMCxhLmNsckljb25TVkcpKCc8''@;'; + put 'put ''cGF0aCBkPSJNMzMuODMsMjMuNDNhMS4xNiwxLjE2LDAsMCwwLS43MS0xLjEybC0xLjY4LS41Yy0uMDktLjI0LS4xOC0uNDgtLjI5LS43MWwuNzgtMS40NGExLjE2LDEuMTYsMCwwLDAtLjIxLTEuMzdsLTEuNDItMS40MWExLjE2LDEuMTYsMCwwLDAtMS4zNy0uMmwtMS40NS43NmE3Ljg0LDcu''@;'; + put 'put ''ODQsMCwwLDAtLjc2LS4zMmwtLjQ4LTEuNThhMS4xNSwxLjE1LDAsMCwwLTEuMTEtLjc3aC0yYTEuMTYsMS4xNiwwLDAsMC0xLjExLjgybC0uNDcsMS41NGE3Ljc2LDcuNzYsMCwwLDAtLjc3LjMybC0xLjQyLS43NmExLjE2LDEuMTYsMCwwLDAtMS4zNi4ybC0xLjQ1LDEuNGExLjE2LDEuMTYs''@;'; + put 'put ''MCwwLDAtLjIxLDEuMzhMMTcuMDgsMjFhNy42NCw3LjY0LDAsMCwwLS4zMS43NGwtMS41OC40N2ExLjE1LDEuMTUsMCwwLDAtLjgzLDEuMTF2MmExLjE1LDEuMTUsMCwwLDAsLjgzLDEuMWwxLjU5LjQ3YTcuNTMsNy41MywwLDAsMCwuMzEuNzJsLS43OCwxLjQ2YTEuMTYsMS4xNiwwLDAsMCwu''@;'; + put 'put ''MjEsMS4zN2wxLjQyLDEuNGExLjE2LDEuMTYsMCwwLDAsMS4zNy4yMWwxLjQ4LS43OGMuMjMuMTEuNDcuMi43Mi4yOUwyMiwzMy4xOGExLjE2LDEuMTYsMCwwLDAsMS4xMS44MWgyYTEuMTYsMS4xNiwwLDAsMCwxLjExLS44MmwuNDctMS41OGMuMjQtLjA4LjQ3LS4xOC43LS4yOWwxLjUuNzlh''@;'; + put 'put ''MS4xNiwxLjE2LDAsMCwwLDEuMzYtLjJsMS40Mi0xLjRhMS4xNiwxLjE2LDAsMCwwLC4yMS0xLjM4bC0uNzktMS40NXEuMTYtLjM0LjI5LS42OUwzMywyNi41YTEuMTUsMS4xNSwwLDAsMCwuODMtMS4xMVptLTEuNiwxLjYzLTIuMTEuNjItLjEyLjQyYTYsNiwwLDAsMS0uNSwxLjE5bC0uMjEu''@;'; + put 'put ''MzgsMSwxLjkxLTEsMS0yLTEtLjM3LjJhNi4yMSw2LjIxLDAsMCwxLTEuMi40OWwtLjQyLjEyLS42MywyLjA5SDIzLjQybC0uNjMtMi4wOC0uNDItLjEyYTYuMjMsNi4yMywwLDAsMS0xLjIxLS40OWwtLjM3LS4yLTEuOTQsMS0xLTEsMS0xLjk0LS4yMi0uMzhBNiw2LDAsMCwxLDE4LjE3LDI2''@;'; + put 'put ''TDE4LDI1LjYzLDE2LDI1VjIzLjY5TDE4LDIzLjA4bC4xMy0uNDFhNS45NCw1Ljk0LDAsMCwxLC41My0xLjIzTDE4LjksMjFsLTEtMS44NSwxLS45NCwxLjg5LDEsLjM4LS4yMWE2LjIzLDYuMjMsMCwwLDEsMS4yNi0uNTJsLjQxLS4xMi42My0yaDEuMzhsLjYyLDIsLjQxLjEyQTYuMjEsNi4y''@;'; + put 'put ''MSwwLDAsMSwyNy4xLDE5bC4zOC4yMSwxLjkyLTEsMSwxLTEsMS44OS4yMS4zOGE2LjA4LDYuMDgsMCwwLDEsLjUsMS4yMWwuMTIuNDIsMi4wNi42MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI0LjEyLDIw''@;'; + put 'put ''LjM1YTQsNCwwLDEsMCw0LjA4LDRBNC4wNiw0LjA2LDAsMCwwLDI0LjEyLDIwLjM1Wm0wLDYuNDZhMi40MywyLjQzLDAsMSwxLDIuNDgtMi40M0EyLjQ2LDIuNDYsMCwwLDEsMjQuMTIsMjYuODJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAg''@;'; + put 'put ''ICAgICAgIDxwYXRoIGQ9Ik0xNC40OSwzMUg2VjVIMjZ2Ny44OWEzLjIsMy4yLDAsMCwxLDIsMS43MlY1YTIsMiwwLDAsMC0yLTJINkEyLDIsMCwwLDAsNCw1VjMxYTIsMiwwLDAsMCwyLDJIMTYuMjNsLTEuMS0xLjA4QTMuMTEsMy4xMSwwLDAsMSwxNC40OSwzMVoiIGNsYXNzPSJjbHItaS1v''@;'; + put 'put ''dXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI0LjEyLDIwLjM1YTQsNCwwLDEsMCw0LjA4LDRBNC4wNiw0LjA2LDAsMCwwLDI0LjEyLDIwLjM1Wm0wLDYuNDZhMi40MywyLjQzLDAsMSwxLDIuNDgtMi40M0EyLjQ2LDIuNDYsMCwwLDEsMjQu''@;'; + put 'put ''MTIsMjYuODJaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy44MywyMy40M2ExLjE2LDEuMTYsMCwwLDAtLjcxLTEuMTJsLTEuNjgtLjVjLS4wOS0uMjQtLjE4LS40OC0uMjkt''@;'; + put 'put ''LjcxbC43OC0xLjQ0YTEuMTYsMS4xNiwwLDAsMC0uMjEtMS4zN2wtMS40Mi0xLjQxYTEuMTYsMS4xNiwwLDAsMC0xLjM3LS4ybC0xLjQ1Ljc2YTcuODQsNy44NCwwLDAsMC0uNzYtLjMybC0uNDgtMS41OGExLjE1LDEuMTUsMCwwLDAtMS4xMS0uNzdoLTJhMS4xNiwxLjE2LDAsMCwwLTEuMTEu''@;'; + put 'put ''ODJsLS40NywxLjU0YTcuNzYsNy43NiwwLDAsMC0uNzcuMzJsLTEuNDItLjc2YTEuMTYsMS4xNiwwLDAsMC0xLjM2LjJsLTEuNDUsMS40YTEuMTYsMS4xNiwwLDAsMC0uMjEsMS4zOEwxNy4wOCwyMWE3LjY0LDcuNjQsMCwwLDAtLjMxLjc0bC0xLjU4LjQ3YTEuMTUsMS4xNSwwLDAsMC0uODMs''@;'; + put 'put ''MS4xMXYyYTEuMTUsMS4xNSwwLDAsMCwuODMsMS4xbDEuNTkuNDdhNy41Myw3LjUzLDAsMCwwLC4zMS43MmwtLjc4LDEuNDZhMS4xNiwxLjE2LDAsMCwwLC4yMSwxLjM3bDEuNDIsMS40YTEuMTYsMS4xNiwwLDAsMCwxLjM3LjIxbDEuNDgtLjc4Yy4yMy4xMS40Ny4yLjcyLjI5TDIyLDMzLjE4''@;'; + put 'put ''YTEuMTYsMS4xNiwwLDAsMCwxLjExLjgxaDJhMS4xNiwxLjE2LDAsMCwwLDEuMTEtLjgybC40Ny0xLjU4Yy4yNC0uMDguNDctLjE4LjctLjI5bDEuNS43OWExLjE2LDEuMTYsMCwwLDAsMS4zNi0uMmwxLjQyLTEuNGExLjE2LDEuMTYsMCwwLDAsLjIxLTEuMzhsLS43OS0xLjQ1cS4xNi0uMzQu''@;'; + put 'put ''MjktLjY5TDMzLDI2LjVhMS4xNSwxLjE1LDAsMCwwLC44My0xLjExWm0tMS42LDEuNjMtMi4xMS42Mi0uMTIuNDJhNiw2LDAsMCwxLS41LDEuMTlsLS4yMS4zOCwxLDEuOTEtMSwxLTItMS0uMzcuMmE2LjIxLDYuMjEsMCwwLDEtMS4yLjQ5bC0uNDIuMTItLjYzLDIuMDlIMjMuNDJsLS42My0y''@;'; + put 'put ''LjA4LS40Mi0uMTJhNi4yMyw2LjIzLDAsMCwxLTEuMjEtLjQ5bC0uMzctLjItMS45NCwxLTEtMSwxLTEuOTQtLjIyLS4zOEE2LDYsMCwwLDEsMTguMTcsMjZMMTgsMjUuNjMsMTYsMjVWMjMuNjlMMTgsMjMuMDhsLjEzLS40MWE1Ljk0LDUuOTQsMCwwLDEsLjUzLTEuMjNMMTguOSwyMWwtMS0x''@;'; + put 'put ''Ljg1LDEtLjk0LDEuODksMSwuMzgtLjIxYTYuMjMsNi4yMywwLDAsMSwxLjI2LS41MmwuNDEtLjEyLjYzLTJoMS4zOGwuNjIsMiwuNDEuMTJBNi4yMSw2LjIxLDAsMCwxLDI3LjEsMTlsLjM4LjIxLDEuOTItMSwxLDEtMSwxLjg5LjIxLjM4YTYuMDgsNi4wOCwwLDAsMSwuNSwxLjIxbC4xMi40''@;'; + put 'put ''MiwyLjA2LjYxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTQuNDksMzFINlY1SDIxLjg3TDIzLDNINkEyLDIsMCwwLDAsNCw1VjMxYTIsMiwwLDAsMCwyLDJIMTYuMjNsLTEu''@;'; + put 'put ''MS0xLjA4QTMuMTEsMy4xMSwwLDAsMSwxNC40OSwzMVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEz''@;'; + put 'put ''SDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIGNsci1pLWFsZXJ0IiAvPlxuICAgICAgICAgICAgPHBh''@;'; + put 'put ''dGggZD0iTTMzLjgzLDIzLjQzYTEuMTYsMS4xNiwwLDAsMC0uNzEtMS4xMmwtMS42OC0uNWMtLjA5LS4yNC0uMTgtLjQ4LS4yOS0uNzFsLjc4LTEuNDRhMS4xNiwxLjE2LDAsMCwwLS4yMS0xLjM3bC0xLjQyLTEuNDFhMS4xNiwxLjE2LDAsMCwwLTEuMzctLjJsLTEuNDUuNzZhNy44NCw3Ljg0''@;'; + put 'put ''LDAsMCwwLS43Ni0uMzJsLS40OC0xLjU4YTEuMTUsMS4xNSwwLDAsMC0xLjExLS43N2gtMmExLjE2LDEuMTYsMCwwLDAtMS4xMS44MmwtLjQ3LDEuNTRhNy43Niw3Ljc2LDAsMCwwLS43Ny4zMmwtMS40Mi0uNzZhMS4xNiwxLjE2LDAsMCwwLTEuMzYuMmwtMS40NSwxLjRhMS4xNiwxLjE2LDAs''@;'; + put 'put ''MCwwLS4yMSwxLjM4TDE3LjA4LDIxYTcuNjQsNy42NCwwLDAsMC0uMzEuNzRsLTEuNTguNDdhMS4xNSwxLjE1LDAsMCwwLS44MywxLjExdjJhMS4xNSwxLjE1LDAsMCwwLC44MywxLjFsMS41OS40N2E3LjUzLDcuNTMsMCwwLDAsLjMxLjcybC0uNzgsMS40NmExLjE2LDEuMTYsMCwwLDAsLjIx''@;'; + put 'put ''LDEuMzdsMS40MiwxLjRhMS4xNiwxLjE2LDAsMCwwLDEuMzcuMjFsMS40OC0uNzhjLjIzLjExLjQ3LjIuNzIuMjlMMjIsMzMuMThhMS4xNiwxLjE2LDAsMCwwLDEuMTEuODFoMmExLjE2LDEuMTYsMCwwLDAsMS4xMS0uODJsLjQ3LTEuNThjLjI0LS4wOC40Ny0uMTguNy0uMjlsMS41Ljc5YTEu''@;'; + put 'put ''MTYsMS4xNiwwLDAsMCwxLjM2LS4ybDEuNDItMS40YTEuMTYsMS4xNiwwLDAsMCwuMjEtMS4zOGwtLjc5LTEuNDVxLjE2LS4zNC4yOS0uNjlMMzMsMjYuNWExLjE1LDEuMTUsMCwwLDAsLjgzLTEuMTFabS0xLjYsMS42My0yLjExLjYyLS4xMi40MmE2LDYsMCwwLDEtLjUsMS4xOWwtLjIxLjM4''@;'; + put 'put ''LDEsMS45MS0xLDEtMi0xLS4zNy4yYTYuMjEsNi4yMSwwLDAsMS0xLjIuNDlsLS40Mi4xMi0uNjMsMi4wOUgyMy40MmwtLjYzLTIuMDgtLjQyLS4xMmE2LjIzLDYuMjMsMCwwLDEtMS4yMS0uNDlsLS4zNy0uMi0xLjk0LDEtMS0xLDEtMS45NC0uMjItLjM4QTYsNiwwLDAsMSwxOC4xNywyNkwx''@;'; + put 'put ''OCwyNS42MywxNiwyNVYyMy42OUwxOCwyMy4wOGwuMTMtLjQxYTUuOTQsNS45NCwwLDAsMSwuNTMtMS4yM0wxOC45LDIxbC0xLTEuODUsMS0uOTQsMS44OSwxLC4zOC0uMjFhNi4yMyw2LjIzLDAsMCwxLDEuMjYtLjUybC40MS0uMTIuNjMtMmgxLjM4bC42MiwyLC40MS4xMkE2LjIxLDYuMjEs''@;'; + put 'put ''MCwwLDEsMjcuMSwxOWwuMzguMjEsMS45Mi0xLDEsMS0xLDEuODkuMjEuMzhhNi4wOCw2LjA4LDAsMCwxLC41LDEuMjFsLjEyLjQyLDIuMDYuNjFaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cGF0''@;'; + put 'put ''aCBkPSJNMjQuMTIsMjAuMzVhNCw0LDAsMSwwLDQuMDgsNEE0LjA2LDQuMDYsMCwwLDAsMjQuMTIsMjAuMzVabTAsNi40NmEyLjQzLDIuNDMsMCwxLDEsMi40OC0yLjQzQTIuNDYsMi40NiwwLDAsMSwyNC4xMiwyNi44MloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0''@;'; + put 'put ''bGluZS1wYXRoLTItLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNC40OSwzMUg2VjVIMjMuMDhhNi45NCw2Ljk0LDAsMCwxLC42LTJINkEyLDIsMCwwLDAsNCw1VjMxYTIsMiwwLDAsMCwyLDJIMTYuMjNsLTEuMS0xLjA4QTMuMTEsMy4xMSwwLDAsMSwxNC40OSwzMVoiIGNs''@;'; + put 'put ''YXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOCwxNS4zM1YxMi43MWE3LDcsMCwwLDEtMi0xdjEuODhBMy4yLDMuMiwwLDAsMSwyOCwxNS4zM1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1i''@;'; + put 'put ''YWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWJhZGdlZCBjbHItaS1iYWRnZSIgLz5cbiAgICAgICAg''@;'; + put 'put ''ICAgIDxwYXRoIGQ9Ik0xNS41NSwzMUg2VjVIMjZ2OC43OGEyLjM3LDIuMzcsMCwwLDEsMiwxLjU3VjVhMiwyLDAsMCwwLTItMkg2QTIsMiwwLDAsMCw0LDVWMzFhMiwyLDAsMCwwLDIsMkgxNy4xNmwtMS0xQTIuMzgsMi4zOCwwLDAsMSwxNS41NSwzMVoiIGNsYXNzPSJjbHItaS1zb2xpZCBj''@;'; + put 'put ''bHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuNTQsMjMuNDdsLTItLjYxYTcuMDYsNy4wNiwwLDAsMC0uNTgtMS40MWwxLTEuODZhLjM3LjM3LDAsMCwwLS4wNy0uNDRMMzAuNDEsMTcuN2EuMzcuMzcsMCwwLDAtLjQ0LS4wN2wtMS44NSwxQTcsNywwLDAs''@;'; + put 'put ''MCwyNi42OSwxOGwtLjYxLTJhLjM3LjM3LDAsMCwwLS4zNi0uMjVoLTJhLjM3LjM3LDAsMCwwLS4zNS4yNmwtLjYxLDJhNyw3LDAsMCwwLTEuNDQuNjFsLTEuODItMWEuMzcuMzcsMCwwLDAtLjQ0LjA3bC0xLjQ3LDEuNDRhLjM3LjM3LDAsMCwwLS4wNy40NGwxLDEuODJhNyw3LDAsMCwwLS42''@;'; + put 'put ''MSwxLjQ0bC0yLC42MWEuMzcuMzcsMCwwLDAtLjI2LjM1djJhLjM3LjM3LDAsMCwwLC4yNi4zNWwyLC42MWE3LDcsMCwwLDAsLjYxLDEuNDFsLTEsMS45YS4zNy4zNywwLDAsMCwuMDcuNDRMMTksMzJhLjM3LjM3LDAsMCwwLC40NC4wN2wxLjg3LTFhNy4wNiw3LjA2LDAsMCwwLDEuMzkuNTds''@;'; + put 'put ''LjYxLDJhLjM3LjM3LDAsMCwwLC4zNS4yNmgyYS4zNy4zNywwLDAsMCwuMzUtLjI2bC42MS0yYTcsNywwLDAsMCwxLjM4LS41N2wxLjg5LDFhLjM3LjM3LDAsMCwwLC40NC0uMDdsMS40NS0xLjQ1YS4zNy4zNywwLDAsMCwuMDctLjQ0bC0xLTEuODhhNy4wNiw3LjA2LDAsMCwwLC41OC0xLjM5''@;'; + put 'put ''bDItLjYxYS4zNy4zNywwLDAsMCwuMjYtLjM1VjIzLjgzQS4zNy4zNywwLDAsMCwzMy41NCwyMy40N1pNMjQuNywyOC4xOUEzLjMzLDMuMzMsMCwxLDEsMjgsMjQuODYsMy4zMywzLjMzLDAsMCwxLDI0LjcsMjguMTlaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAv''@;'; + put 'put ''PlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLjU0LDIzLjQ3bC0yLS42MWE3LjA2LDcuMDYsMCwwLDAtLjU4LTEuNDFsMS0xLjg2YS4zNy4zNywwLDAsMC0uMDctLjQ0TDMwLjQxLDE3LjdhLjM3LjM3LDAsMCwwLS40NC0uMDdsLTEuODUsMUE3LDcsMCwwLDAsMjYuNjksMThsLS42MS0yYS4z''@;'; + put 'put ''Ny4zNywwLDAsMC0uMzYtLjI1aC0yYS4zNy4zNywwLDAsMC0uMzUuMjZsLS42MSwyYTcsNywwLDAsMC0xLjQ0LjYxbC0xLjgyLTFhLjM3LjM3LDAsMCwwLS40NC4wN2wtMS40NywxLjQ0YS4zNy4zNywwLDAsMC0uMDcuNDRsMSwxLjgyYTcsNywwLDAsMC0uNjEsMS40NGwtMiwuNjFhLjM3LjM3''@;'; + put 'put ''LDAsMCwwLS4yNi4zNXYyYS4zNy4zNywwLDAsMCwuMjYuMzVsMiwuNjFhNyw3LDAsMCwwLC42MSwxLjQxbC0xLDEuOWEuMzcuMzcsMCwwLDAsLjA3LjQ0TDE5LDMyYS4zNy4zNywwLDAsMCwuNDQuMDdsMS44Ny0xYTcuMDYsNy4wNiwwLDAsMCwxLjM5LjU3bC42MSwyYS4zNy4zNywwLDAsMCwu''@;'; + put 'put ''MzUuMjZoMmEuMzcuMzcsMCwwLDAsLjM1LS4yNmwuNjEtMmE3LDcsMCwwLDAsMS4zOC0uNTdsMS44OSwxYS4zNy4zNywwLDAsMCwuNDQtLjA3bDEuNDUtMS40NWEuMzcuMzcsMCwwLDAsLjA3LS40NGwtMS0xLjg4YTcuMDYsNy4wNiwwLDAsMCwuNTgtMS4zOWwyLS42MWEuMzcuMzcsMCwwLDAs''@;'; + put 'put ''LjI2LS4zNVYyMy44M0EuMzcuMzcsMCwwLDAsMzMuNTQsMjMuNDdaTTI0LjcsMjguMTlBMy4zMywzLjMzLDAsMSwxLDI4LDI0Ljg2LDMuMzMsMy4zMywwLDAsMSwyNC43LDI4LjE5WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIgLz5c''@;'; + put 'put ''biAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNS41NSwzMUg2VjVIMjEuODdMMjMsM0g2QTIsMiwwLDAsMCw0LDVWMzFhMiwyLDAsMCwwLDIsMkgxNy4xNmwtMS0xQTIuMzgsMi4zOCwwLDAsMSwxNS41NSwzMVoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTIt''@;'; + put 'put ''LWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiAgY2xhc3M9ImNsci1p''@;'; + put 'put ''LXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMy0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIGNsci1pLWJh''@;'; + put 'put ''ZGdlIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLjU0LDIzLjQ3bC0yLS42MWE3LjA2LDcuMDYsMCwwLDAtLjU4LTEuNDFsMS0xLjg2YS4zNy4zNywwLDAsMC0uMDctLjQ0TDMwLjQxLDE3LjdhLjM3LjM3LDAsMCwwLS40NC0uMDdsLTEuODUsMUE3LDcsMCwwLDAsMjYuNjksMThsLS42''@;'; + put 'put ''MS0yYS4zNy4zNywwLDAsMC0uMzYtLjI1aC0yYS4zNy4zNywwLDAsMC0uMzUuMjZsLS42MSwyYTcsNywwLDAsMC0xLjQ0LjYxbC0xLjgyLTFhLjM3LjM3LDAsMCwwLS40NC4wN2wtMS40NywxLjQ0YS4zNy4zNywwLDAsMC0uMDcuNDRsMSwxLjgyYTcsNywwLDAsMC0uNjEsMS40NGwtMiwuNjFh''@;'; + put 'put ''LjM3LjM3LDAsMCwwLS4yNi4zNXYyYS4zNy4zNywwLDAsMCwuMjYuMzVsMiwuNjFhNyw3LDAsMCwwLC42MSwxLjQxbC0xLDEuOWEuMzcuMzcsMCwwLDAsLjA3LjQ0TDE5LDMyYS4zNy4zNywwLDAsMCwuNDQuMDdsMS44Ny0xYTcuMDYsNy4wNiwwLDAsMCwxLjM5LjU3bC42MSwyYS4zNy4zNyww''@;'; + put 'put ''LDAsMCwuMzUuMjZoMmEuMzcuMzcsMCwwLDAsLjM1LS4yNmwuNjEtMmE3LDcsMCwwLDAsMS4zOC0uNTdsMS44OSwxYS4zNy4zNywwLDAsMCwuNDQtLjA3bDEuNDUtMS40NWEuMzcuMzcsMCwwLDAsLjA3LS40NGwtMS0xLjg4YTcuMDYsNy4wNiwwLDAsMCwuNTgtMS4zOWwyLS42MWEuMzcuMzcs''@;'; + put 'put ''MCwwLDAsLjI2LS4zNVYyMy44M0EuMzcuMzcsMCwwLDAsMzMuNTQsMjMuNDdaTTI0LjcsMjguMTlBMy4zMywzLjMzLDAsMSwxLDI4LDI0Ljg2LDMuMzMsMy4zMywwLDAsMSwyNC43LDI4LjE5WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQi''@;'; + put 'put ''IC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTUuNTUsMzFINlY1SDIzLjA4YTYuOTQsNi45NCwwLDAsMSwuNi0ySDZBMiwyLDAsMCwwLDQsNVYzMWEyLDIsMCwwLDAsMiwySDE3LjE2bC0xLTFBMi4zOCwyLjM4LDAsMCwxLDE1LjU1LDMxWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQg''@;'; + put 'put ''Y2xyLWktc29saWQtcGF0aC0zLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjgsMTUuMzZWMTIuNzFhNyw3LDAsMCwxLTItMXYyQTIuMzcsMi4zNywwLDAsMSwyOCwxNS4zNloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtNC0tYmFkZ2Vk''@;'; + put 'put ''IiAvPicpLGUuQ2xyU2hhcGVUd29XYXlBcnJvd3M9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTIzLjQzLDE2LjgzQTEsMSwwLDAsMCwyMiwxOC4yNEwyNS43MiwyMkg3LjgzYTEsMSwwLDAsMCwwLDJIMjUuNzJMMjIsMjcuN2ExLDEsMCwxLDAsMS40MiwxLjQxTDI5LjUzLDIzWiIgY2xh''@;'; + put 'put ''c3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTMuMjQsMTguNDVhMSwxLDAsMCwwLC43MS0xLjcxTDEwLjI0LDEzSDI4LjEyYTEsMSwwLDAsMCwwLTJIMTAuMjRsMy43MS0zLjczYTEsMSwwLDAsMC0xLjQyLTEuNDFMNi40''@;'; + put 'put ''MiwxMmw2LjExLDYuMTRBMSwxLDAsMCwwLDEzLjI0LDE4LjQ1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+JyksZS5DbHJTaGFwZVN3aXRjaD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNNS43MSwxNEgyMC45MlYxMkg1LjcxTDkuNDIsOC4yN0Ex''@;'; + put 'put ''LDEsMCwxLDAsOCw2Ljg2TDEuODksMTMsOCwxOS4xNGExLDEsMCwxLDAsMS40Mi0xLjRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjIzIiB5PSIxMiIgd2lkdGg9IjMiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1p''@;'; + put 'put ''LW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIyOCIgeT0iMTIiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI3LjkyLDE3''@;'; + put 'put ''Ljg2YTEsMSwwLDAsMC0xLjQyLDEuNDFMMzAuMjEsMjNIMTV2MkgzMC4yMUwyNi41LDI4Ljc0YTEsMSwwLDEsMCwxLjQyLDEuNEwzNCwyNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTAiIHk9IjIzIiB3aWR0''@;'; + put 'put ''aD0iMyIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjYiIHk9IjIzIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIgLz4nKSxl''@;'; + put 'put ''LkNsclNoYXBlVG9vbHM9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTIwLDE0SDE2YTEsMSwwLDAsMC0xLDF2NmExLDEsMCwwLDAsMSwxaDRhMSwxLDAsMCwwLDEtMVYxNUExLDEsMCwwLDAsMjAsMTRabS0uNCw2LjZIMTYuNFYxNS40aDMuMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNs''@;'; + put 'put ''ci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLjcxLDEyLjM4LDI5LjYyLDguMjlBMSwxLDAsMCwwLDI4LjkyLDhoLTVWNi4wNUEyLDIsMCwwLDAsMjIsNEgxMy44NEExLjkyLDEuOTIsMCwwLDAsMTIsNi4wNVY4SDcuMDhhMSwxLDAsMCwwLS43MS4yOUwy''@;'; + put 'put ''LjI5LDEyLjM4YTEsMSwwLDAsMC0uMjkuNzFWMjhhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjEzLjA4QTEsMSwwLDAsMCwzMy43MSwxMi4zOFpNMTQsNmg4VjhIMTRaTTMyLDE3SDIydjEuOTNIMzJWMjhINFYxOC45M0gxNFYxN0g0VjEzLjVMNy41LDEwaDIxTDMyLDEzLjVaIiBj''@;'; + put 'put ''bGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE2LjQiIHk9IjE1LjQiIHdpZHRoPSIzLjIiIGhlaWdodD0iNS4yIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBh''@;'; + put 'put ''dGggZD0iTTIxLDIxYTEsMSwwLDAsMS0xLDFIMTZhMSwxLDAsMCwxLTEtMVYxOUgydjlhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjE5SDIxWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy43MSwxMi4z''@;'; + put 'put ''OCwyOS42Miw4LjI5QTEsMSwwLDAsMCwyOC45Miw4aC01VjYuMDVBMiwyLDAsMCwwLDIyLDRIMTMuODRBMS45MiwxLjkyLDAsMCwwLDEyLDYuMDVWOEg3LjA4YTEsMSwwLDAsMC0uNzEuMjlMMi4yOSwxMi4zOGExLDEsMCwwLDAtLjI5LjcxVjE3SDE1VjE1YTEsMSwwLDAsMSwxLTFoNGExLDEs''@;'; + put 'put ''MCwwLDEsMSwxdjJIMzRWMTMuMDhBMSwxLDAsMCwwLDMzLjcxLDEyLjM4Wk0yMiw4SDE0VjZoOFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIC8+JyksZS5DbHJTaGFwZVdpbmRvd0Nsb3NlPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xOS40MSwxOGw3LjI5''@;'; + put 'put ''LTcuMjlhMSwxLDAsMCwwLTEuNDEtMS40MUwxOCwxNi41OSwxMC43MSw5LjI5YTEsMSwwLDAsMC0xLjQxLDEuNDFMMTYuNTksMTgsOS4yOSwyNS4yOWExLDEsMCwxLDAsMS40MSwxLjQxTDE4LDE5LjQxbDcuMjksNy4yOWExLDEsMCwwLDAsMS40MS0xLjQxWiIgY2xhc3M9ImNsci1pLW91dGxp''@;'; + put 'put ''bmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+JyksZS5DbHJTaGFwZVdpbmRvd01heD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjcuODksOWgtMjBhMiwyLDAsMCwwLTIsMlYyNWEyLDIsMCwwLDAsMiwyaDIwYTIsMiwwLDAsMCwyLTJWMTFBMiwyLDAsMCwwLDI3Ljg5LDlabS0yMCwx''@;'; + put 'put ''NlYxMWgyMFYyNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPicpLGUuQ2xyU2hhcGVXaW5kb3dNaW49KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI3LDI3SDlhMSwxLDAsMCwxLDAtMkgyN2ExLDEsMCwwLDEsMCwyWiIgY2xhc3M9ImNsci1pLW91''@;'; + put 'put ''dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+JyksZS5DbHJTaGFwZVdpbmRvd1Jlc3RvcmU9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI4LDhIMTRhMiwyLDAsMCwwLTIsMnYyaDJWMTBIMjhWMjBIMjZ2MmgyYTIsMiwwLDAsMCwyLTJWMTBBMiwyLDAsMCwwLDI4LDhaIiBjbGFz''@;'; + put 'put ''cz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMiwxNEg4YTIsMiwwLDAsMC0yLDJWMjZhMiwyLDAsMCwwLDIsMkgyMmEyLDIsMCwwLDAsMi0yVjE2QTIsMiwwLDAsMCwyMiwxNFpNOCwyNlYxNkgyMlYyNloiIGNsYXNzPSJj''@;'; + put 'put ''bHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPicpLGUuQ2xyU2hhcGVab29tSW49KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE2LDRBMTIsMTIsMCwxLDAsMjgsMTYsMTIsMTIsMCwwLDAsMTYsNFptMCwyMS45MUExMCwxMCwwLDEsMSwyNiwxNiwxMCwxMCwwLDAsMSwx''@;'; + put 'put ''NiwyNS45MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMxLjcxLDI5LjY5bC01LjE3LTUuMTdBMTMuNjgsMTMuNjgsMCwwLDEsMjUuMTUsMjZsNS4xNSw1LjE1YTEsMSwwLDAsMCwxLjQxLTEuNDFaIiBjbGFz''@;'; + put 'put ''cz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMSwxNUgxN1YxMWExLDEsMCwwLDAtMiwwdjRIMTFhMSwxLDAsMCwwLDAsMmg0djRhMSwxLDAsMCwwLDIsMFYxN2g0YTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0''@;'; + put 'put ''bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz4nKSxlLkNsclNoYXBlWm9vbU91dD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTYsNEExMiwxMiwwLDEsMCwyOCwxNiwxMiwxMiwwLDAsMCwxNiw0Wm0wLDIxLjkxQTEwLDEwLDAsMSwxLDI2LDE2LDEwLDEwLDAsMCwxLDE2LDI1Ljkx''@;'; + put 'put ''WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzEuNzEsMjkuNjlsLTUuMTctNS4xN0ExMy42OCwxMy42OCwwLDAsMSwyNS4xNSwyNmw1LjE1LDUuMTVhMSwxLDAsMCwwLDEuNDEtMS40MVoiIGNsYXNzPSJjbHIt''@;'; + put 'put ''aS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIwLDE1SDEyYTEsMSwwLDAsMCwwLDJoOGExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+JyksZS5DbHJTaGFwZUtleT0oMCxh''@;'; + put 'put ''LmNsckljb25TVkcpKCc8cmVjdCB4PSI2LjMzIiB5PSIxMC43MSIgd2lkdGg9IjkuNzEiIGhlaWdodD0iMi41NyIgcng9IjEiIHJ5PSIxIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtNS4yMSAxMS40Mykgcm90YXRlKC00NSkiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0''@;'; + put 'put ''aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIzLjM1LDE2LjhsLjYzLS42M0E1LDUsMCwwLDAsMjQsOS4xTDE4LjcxLDMuODRhNSw1LDAsMCwwLTcuMDcsMEwzLjA5LDEyLjM5YTUsNSwwLDAsMCwwLDcuMDdsNS4yNiw1LjI2YTUsNSwwLDAsMCw3LjA3LDBsLjQtLjRMMTgsMjYuNDho''@;'; + put 'put ''My40NHYzaDMuNjl2MS42M0wyOCwzNGg2VjI3LjQ1Wk0zMiwzMkgyOC44NmwtMS43Ny0xLjc2di0yLjhIMjMuNDF2LTNIMTguOGwtMy0zTDE0LDIzLjMxYTMsMywwLDAsMS00LjI0LDBMNC41LDE4YTMsMywwLDAsMSwwLTQuMjRsOC41Ni04LjU2YTMsMywwLDAsMSw0LjI0LDBsNS4yNiw1LjI2''@;'; + put 'put ''YTMsMywwLDAsMSwwLDQuMjRsLTIsMkwzMiwyOC4yOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iNi4zMyIgeT0iMTAuNzEiIHdpZHRoPSI5LjcxIiBoZWlnaHQ9IjIuNTciIHJ4PSIxIiByeT0iMSIgdHJhbnNm''@;'; + put 'put ''b3JtPSJ0cmFuc2xhdGUoLTUuMjEgMTEuNDMpIHJvdGF0ZSgtNDUpIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMy4zNSwxNi44bC42My0uNjNhNSw1LDAsMCwwLC42My0uNzdI''@;'; + put 'put ''MjIuMjNsLS4yOSwwTDIwLjUyLDE2LjgsMzIsMjguMjhWMzJIMjguODZsLTEuNzctMS43NnYtMi44SDIzLjQxdi0zSDE4LjhsLTMtM0wxNCwyMy4zMWEzLDMsMCwwLDEtNC4yNCwwTDQuNSwxOGEzLDMsMCwwLDEsMC00LjI0bDguNTYtOC41NmEzLDMsMCwwLDEsNC4yNCwwTDIwLjEsOC4wNmwx''@;'; + put 'put ''LTEuNzlMMTguNzEsMy44NGE1LDUsMCwwLDAtNy4wNywwTDMuMDksMTIuMzlhNSw1LDAsMCwwLDAsNy4wN2w1LjI2LDUuMjZhNSw1LDAsMCwwLDcuMDcsMGwuNC0uNEwxOCwyNi40OGgzLjQ0djNoMy42OXYxLjYzTDI4LDM0aDZWMjcuNDVaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRl''@;'; + put 'put ''ZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYu''@;'; + put 'put ''ODUsMS4xNFoiICBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjYuMzMiIHk9IjEwLjcxIiB3aWR0aD0iOS43MSIgaGVpZ2h0PSIyLjU3IiByeD0iMSIgcnk9IjEi''@;'; + put 'put ''IHRyYW5zZm9ybT0idHJhbnNsYXRlKC01LjIxIDExLjQzKSByb3RhdGUoLTQ1KSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIzLjM1LDE2LjhsLjYzLS42M0E1LDUsMCwwLDAsMjQs''@;'; + put 'put ''OS4xTDE4LjcxLDMuODRhNSw1LDAsMCwwLTcuMDcsMEwzLjA5LDEyLjM5YTUsNSwwLDAsMCwwLDcuMDdsNS4yNiw1LjI2YTUsNSwwLDAsMCw3LjA3LDBsLjQtLjRMMTgsMjYuNDhoMy40NHYzaDMuNjl2MS42M0wyOCwzNGg2VjI3LjQ1Wk0zMiwzMkgyOC44NmwtMS43Ny0xLjc2di0yLjhIMjMu''@;'; + put 'put ''NDF2LTNIMTguOGwtMy0zTDE0LDIzLjMxYTMsMywwLDAsMS00LjI0LDBMNC41LDE4YTMsMywwLDAsMSwwLTQuMjRsOC41Ni04LjU2YTMsMywwLDAsMSw0LjI0LDBsNS4yNiw1LjI2YTMsMywwLDAsMSwwLDQuMjRsLTIsMkwzMiwyOC4yOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQg''@;'; + put 'put ''Y2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIgLz5cbiAgICAgICAgICAgIDxw''@;'; + put 'put ''YXRoIGQ9Ik0yMy4zOCwxNi43N2wuNi0uNkE1LDUsMCwwLDAsMjQsOS4xTDE4LjcxLDMuODRhNSw1LDAsMCwwLTcuMDcsMEwzLjA5LDEyLjM5YTUsNSwwLDAsMCwwLDcuMDdsNS4yNiw1LjI2YTUsNSwwLDAsMCw3LjA3LDBsLjQ1LS40NSwyLjEsMi4yaDMuNDR2M2gzLjY5djEuNjNMMjgsMzRo''@;'; + put 'put ''NlYyNy40NVptLTguNTYtNi41OUw5LjM3LDE1LjY0YTEsMSwwLDAsMS0xLjQxLDBsLS40LS40YTEsMSwwLDAsMSwwLTEuNDFMMTMsOC4zNmExLDEsMCwwLDEsMS40MSwwbC40LjRBMSwxLDAsMCwxLDE0LjgyLDEwLjE4Wk0zMiwzMkgyOC44NmwtMS43Ny0xLjc2di0yLjhIMjMuNDF2LTNIMTgu''@;'; + put 'put ''OGwtMS41Mi0xLjYxTDIyLDE4LjE4LDMyLDI4LjI4WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMy4zOCwxNi43N2wuNi0uNmE1LDUsMCwwLDAsLjYzLS43N0gyMi4yM0EzLjY4LDMuNjgsMCwwLDEsMTksOS44OWwy''@;'; + put 'put ''LjA5LTMuNjJMMTguNzEsMy44NGE1LDUsMCwwLDAtNy4wNywwTDMuMDksMTIuMzlhNSw1LDAsMCwwLDAsNy4wN2w1LjI2LDUuMjZhNSw1LDAsMCwwLDcuMDcsMGwuNDUtLjQ1LDIuMSwyLjJoMy40NHYzaDMuNjl2MS42M0wyOCwzNGg2VjI3LjQ1Wm0tOC41Ni02LjU5TDkuMzcsMTUuNjRhMSwx''@;'; + put 'put ''LDAsMCwxLTEuNDEsMGwtLjQtLjRhMSwxLDAsMCwxLDAtMS40MUwxMyw4LjM2YTEsMSwwLDAsMSwxLjQxLDBsLjQuNEExLDEsMCwwLDEsMTQuODIsMTAuMThaTTMyLDMySDI4Ljg2bC0xLjc3LTEuNzZ2LTIuOEgyMy40MXYtM0gxOC44bC0xLjUyLTEuNjFMMjIsMTguMTgsMzIsMjguMjhaIiBj''@;'; + put 'put ''bGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwx''@;'; + put 'put ''LjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjMuMzgsMTYuNzdsLjYtLjZBNSw1LDAsMCwwLDI0LDkuMUwx''@;'; + put 'put ''OC43MSwzLjg0YTUsNSwwLDAsMC03LjA3LDBMMy4wOSwxMi4zOWE1LDUsMCwwLDAsMCw3LjA3bDUuMjYsNS4yNmE1LDUsMCwwLDAsNy4wNywwbC40NS0uNDUsMi4xLDIuMmgzLjQ0djNoMy42OXYxLjYzTDI4LDM0aDZWMjcuNDVabS04LjU2LTYuNTlMOS4zNywxNS42NGExLDEsMCwwLDEtMS40''@;'; + put 'put ''MSwwbC0uNC0uNGExLDEsMCwwLDEsMC0xLjQxTDEzLDguMzZhMSwxLDAsMCwxLDEuNDEsMGwuNC40QTEsMSwwLDAsMSwxNC44MiwxMC4xOFpNMzIsMzJIMjguODZsLTEuNzctMS43NnYtMi44SDIzLjQxdi0zSDE4LjhsLTEuNTItMS42MUwyMiwxOC4xOCwzMiwyOC4yOFoiIGNsYXNzPSJjbHIt''@;'; + put 'put ''aS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIC8+JyksZS5D''@;'; + put 'put ''bHJTaGFwZUxpYnJhcnk9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMzLjQ4LDI5LjYzLDI2Ljc0LDExLjgyYTIsMiwwLDAsMC0yLjU4LTEuMTZMMjEsMTEuODVWOC45MkExLjkyLDEuOTIsMCwwLDAsMTkuMDgsN0gxNFY0LjkyQTEuOTIsMS45MiwwLDAsMCwxMi4wOCwzSDVBMiwyLDAs''@;'; + put 'put ''MCwwLDMsNVYzMmExLDEsMCwwLDAsMSwxSDIwYTEsMSwwLDAsMCwxLTFWMTkuMjdsNSwxMy4yMWExLDEsMCwwLDAsMS4yOS41OGw1LjYxLTIuMTRhMSwxLDAsMCwwLC41OC0xLjI5Wk0xMiw4LjgzVjMxSDVWNWg3Wk0xOSwzMUgxNFY5aDVabTguNTEtLjI1TDIxLjEzLDEzLjkybDMuNzQtMS40''@;'; + put 'put ''Miw2LjM5LDE2LjgzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTIuNzUsM0g1LjI1QTEuMTUsMS4xNSwwLDAsMCw0LDRWMzNIMTRWNEExLjE1LDEuMTUsMCwwLDAsMTIuNzUsM1oiIGNsYXNzPSJjbHItaS1z''@;'; + put 'put ''b2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuNzcsMzEuMDlsLTYuOTQtMTguM2ExLDEsMCwwLDAtMS4yOS0uNThMMjIsMTMuNTlWOWExLDEsMCwwLDAtMS0xSDE2VjMzaDZWMTQuNjlMMjguOTMsMzNaIiBjbGFzcz0iY2xyLWktc29saWQgY2xy''@;'; + put 'put ''LWktc29saWQtcGF0aC0yIiAvPicpLGUuQ2xyU2hhcGVCb2x0PSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xMC41MiwzNGgtM2ExLDEsMCwwLDEtLjg4LTEuNDRMMTIuNTUsMjFINmExLDEsMCwwLDEtLjg1LTEuNTRsMTAuNjgtMTdBMSwxLDAsMCwxLDE2LjY0LDJIMzAuMDdhMSwxLDAs''@;'; + put 'put ''MCwxLC43NywxLjY5TDIxLjc4LDE0aDUuMzhhMSwxLDAsMCwxLC43MywxLjY2bC0xNi42MywxOEExLDEsMCwwLDEsMTAuNTIsMzRaTTkuMTgsMzJoLjkxTDI0Ljg2LDE2SDE5LjU5YTEsMSwwLDAsMS0uNzctMS42OUwyNy44OCw0SDE3LjE5TDcuNzcsMTlIMTQuMmExLDEsMCwwLDEsLjg4LDEu''@;'; + put 'put ''NDRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMC44LDIuMjlBLjQ5LjQ5LDAsMCwwLDMwLjM1LDJIMTYuNDJhLjUuNSwwLDAsMC0uNDIuMjNsLTEwLjcxLDE3QS40OS40OSwwLDAsMCw1LjcsMjBoNy42N0w2''@;'; + put 'put ''LjYsMzMuMjVhLjUyLjUyLDAsMCwwLC40Ni43NWgzYS41LjUsMCwwLDAsLjM3LS4xNkwyOCwxNC44NWEuNS41LDAsMCwwLS4zNy0uODVIMjAuODlMMzAuNzIsMi44MkEuNDkuNDksMCwwLDAsMzAuOCwyLjI5WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz4nKSxl''@;'; + put 'put ''LkNsclNoYXBlV3JlbmNoPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMy4xOCwyNi4xMSwyMC4zNSwxMy4yOEE5LjI4LDkuMjgsMCwwLDAsNy41NCwyLjc5bC0xLjM0LjU5LDUuMzgsNS4zOEw4Ljc2LDExLjU5LDMuMzgsNi4yMSwyLjc5LDcuNTRBOS4yNyw5LjI3LDAsMCwwLDEzLjI4''@;'; + put 'put ''LDIwLjM1TDI2LjExLDMzLjE4YTIsMiwwLDAsMCwyLjgzLDBsNC4yNC00LjI0QTIsMiwwLDAsMCwzMy4xOCwyNi4xMVptLTUuNjYsNS42NkwxMy44OCwxOC4xMmwtLjU3LjE2YTcuMjcsNy4yNywwLDAsMS05LjMxLTcsNy4yLDcuMiwwLDAsMSwuMTUtMS40OGw0LjYxLDQuNjEsNS42Ni01LjY2''@;'; + put 'put ''TDkuODEsNC4xNWE3LjI3LDcuMjcsMCwwLDEsOC40Nyw5LjE2bC0uMTYuNTdMMzEuNzcsMjcuNTNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjI3LjEzIiBjeT0iMjcuMDkiIHI9IjEuMyIgdHJhbnNmb3Jt''@;'; + put 'put ''PSJ0cmFuc2xhdGUoLTExLjIxIDI3LjEyKSByb3RhdGUoLTQ1KSIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuNzMsMjcuNzIsMTkuNjcsMTMuNjZhOC43OSw4Ljc5LDAsMCwwLTEyLTEwLjVMMTMsOC41Myw4''@;'; + put 'put ''LjUzLDEzLDMuMTYsNy42N2E4Ljc5LDguNzksMCwwLDAsMTAuNSwxMkwyNy43MiwzMy43M2ExLjA3LDEuMDcsMCwwLDAsMS41LDBsNC41MS00LjUxQTEuMDcsMS4wNywwLDAsMCwzMy43MywyNy43MlpNMjksMjlhMS4zOCwxLjM4LDAsMSwxLDAtMkExLjM4LDEuMzgsMCwwLDEsMjksMjlaIiBj''@;'; + put 'put ''bGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPicpLGUuQ2xyU2hhcGVCdWxsc2V5ZT0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTgsMmExNS45MiwxNS45MiwwLDAsMC00LjI1LjU5bC43NywxLjg2YTE0LjA3LDE0LjA3LDAsMSwxLTEwLDEwbC0xLjg2LS43OEEx''@;'; + put 'put ''NiwxNiwwLDEsMCwxOCwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNNy40NSwxNS43YTEwLjgxLDEwLjgxLDAsMSwwLDguMy04LjI2TDE2LjM3LDlBOS4yNCw5LjI0LDAsMSwxLDksMTYuMzJaIiBjbGFzcz0i''@;'; + put 'put ''Y2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwyMi4wOWE0LjA4LDQuMDgsMCwwLDEtNC0zLjY4bC0xLjYzLS42OGMwLC4wOSwwLC4xOCwwLC4yN0E1LjY5LDUuNjksMCwxLDAsMTgsMTIuMzFoLS4yNEwxOC40MywxNEE0LjA3''@;'; + put 'put ''LDQuMDcsMCwwLDEsMTgsMjIuMDlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik04LjIsMTMuMzRhLjUuNSwwLDAsMCwuMzUuMTVIMTIuMmw1LjM3LDUuMzdBMSwxLDAsMCwwLDE5LDE3LjQ0TDEzLjUzLDEyVjgu''@;'; + put 'put ''NTFhLjUuNSwwLDAsMC0uMTUtLjM1TDcuNzksMi41N2EuNS41LDAsMCwwLS44NS4zNXY0SDNhLjUuNSwwLDAsMC0uMzUuODVaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOSwxOC44NWExLDEsMCwwLDEtMS40''@;'; + put 'put ''MSwwbC0zLTNBNCw0LDAsMCwwLDEzLjkxLDE4LDQuMDksNC4wOSwwLDEsMCwxOCwxMy45MWE0LDQsMCwwLDAtMiwuNTVsMywzQTEsMSwwLDAsMSwxOSwxOC44NVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMmEx''@;'; + put 'put ''NS45MiwxNS45MiwwLDAsMC00LjI1LjU5bDEuNiwzLjg5QTExLjg5LDExLjg5LDAsMSwxLDYuNDksMTUuM0wyLjYxLDEzLjY4QTE2LDE2LDAsMSwwLDE4LDJaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTgsMTUuOTRB''@;'; + put 'put ''MTAuMTcsMTAuMTcsMCwxLDAsMTYsOGwxLjY5LDQuMTEuMzEsMEE1Ljg4LDUuODgsMCwxLDEsMTIuMTIsMThjMC0uMTIsMC0uMjMsMC0uMzVaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTguMiwxMy4zNGEuNS41LDAs''@;'; + put 'put ''MCwwLC4zNS4xNUgxMi4ybDIuMzUsMi4zNUE0LjA5LDQuMDksMCwwLDEsMTYsMTQuNDZMMTMuNTMsMTJWOC41MWEuNS41LDAsMCwwLS4xNS0uMzVMNy43OSwyLjU3YS41LjUsMCwwLDAtLjg1LjM1djRIM2EuNS41LDAsMCwwLS4zNS44NVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xp''@;'; + put 'put ''ZC1wYXRoLTQiIC8+JyksZS5DbHJTaGFwZVRhcmdldD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTgsMkExNiwxNiwwLDEsMCwzNCwxOCwxNiwxNiwwLDAsMCwxOCwyWm0wLDMwQTE0LDE0LDAsMSwxLDMyLDE4LDE0LDE0LDAsMCwxLDE4LDMyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUg''@;'; + put 'put ''Y2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsNy4yQTEwLjgsMTAuOCwwLDEsMCwyOC44LDE4LDEwLjgxLDEwLjgxLDAsMCwwLDE4LDcuMlptMCwyMEE5LjIsOS4yLDAsMSwxLDI3LjIsMTgsOS4yMSw5LjIxLDAsMCwxLDE4LDI3LjJaIiBjbGFzcz0i''@;'; + put 'put ''Y2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwxMi4zMUE1LjY5LDUuNjksMCwxLDAsMjMuNjksMTgsNS42OSw1LjY5LDAsMCwwLDE4LDEyLjMxWm0wLDkuNzdBNC4wOSw0LjA5LDAsMSwxLDIyLjA5LDE4LDQuMDksNC4wOSww''@;'; + put 'put ''LDAsMSwxOCwyMi4wOVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMTgiIGN5PSIxOCIgcj0iNC4wOSIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxw''@;'; + put 'put ''YXRoIGQ9Ik0xOCw3LjgzQTEwLjE3LDEwLjE3LDAsMSwwLDI4LjE3LDE4LDEwLjE4LDEwLjE4LDAsMCwwLDE4LDcuODNabTAsMTZBNS44OCw1Ljg4LDAsMSwxLDIzLjg4LDE4LDUuODgsNS44OCwwLDAsMSwxOCwyMy44OFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIi''@;'; + put 'put ''IC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMkExNiwxNiwwLDEsMCwzNCwxOCwxNiwxNiwwLDAsMCwxOCwyWm0wLDI3LjgzQTExLjgzLDExLjgzLDAsMSwxLDI5LjgzLDE4LDExLjg1LDExLjg1LDAsMCwxLDE4LDI5LjgzWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBh''@;'; + put 'put ''dGgtMyIgLz4nKSxlLkNsclNoYXBlRmxhbWU9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMxLjMsMTYuNjZjLTEuMTktMi4wOS03Ljk0LTE0LjE1LTcuOTQtMTQuMTVhMSwxLDAsMCwwLTEuNzUsMGwtNiwxMC42NC0zLTUuMjhhMSwxLDAsMCwwLTEuNzUsMFM1LjQsMTcuNzgsNC40Miwx''@;'; + put 'put ''OS41QTkuMyw5LjMsMCwwLDAsMywyNC42MUMzLDI5LjcyLDUuODYsMzQsMTEuNjcsMzRIMjIuNDhDMjguMjgsMzQsMzMsMjksMzMsMjIuNzhBMTEuMTMsMTEuMTMsMCwwLDAsMzEuMywxNi42NlpNMjIuNDgsMzJIMTEuNzdDOC4xMywzMiw1LDI4LjY2LDUsMjQuNjFhNy40Myw3LjQzLDAsMCwx''@;'; + put 'put ''LDEuMTYtNC4xM2MuNzMtMS4yOSw0LjA1LTcuMjEsNS42NS0xMC4wN2wzLDUuMjhhMSwxLDAsMCwwLC44Ny41MWgwYTEsMSwwLDAsMCwuODctLjUxTDIyLjQ5LDVjMS44NiwzLjMzLDYuMTUsMTEsNy4wNywxMi42QTkuMjQsOS4yNCwwLDAsMSwzMSwyMi43OEMzMSwyNy44NywyNy4xOCwzMiwy''@;'; + put 'put ''Mi40OCwzMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI1Ljc1LDIxLjczYy0uNjUtMS4xNi00LjM4LTcuODEtNC4zOC03LjgxYS44LjgsMCwwLDAtMS40LDBsLTQuMiw3LjQ4LTEuNTktMi40OWEuOC44LDAs''@;'; + put 'put ''MCwwLTEuMzUsMEw5LjM3LDI0LjM1YTQuMzUsNC4zNSwwLDAsMC0uODIsMi42LDQuNDksNC40OSwwLDAsMCwuNSwySDExYTMsMywwLDAsMS0uODMtMiwyLjc4LDIuNzgsMCwwLDEsLjU2LTEuNzNsMi44LTQuMzgsMS42NiwyLjZhLjguOCwwLDAsMCwxLjQxLS4xMiw3LjgyLDcuODIsMCwwLDEs''@;'; + put 'put ''LjQtLjhMMjAuNjcsMTZsMy42OSw2LjU3YTQuODMsNC44MywwLDAsMSwuNzcsMi43MUE1LDUsMCwwLDEsMjMuNDYsMjloMi4xM2E2LjY4LDYuNjgsMCwwLDAsMS4xNC0zLjc0LDYuNDUsNi40NSwwLDAsMC0xLTMuNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0y''@;'; + put 'put ''IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMxLjMsMTYuMzJjLTEuMTktMi4wOS03Ljk0LTE0LjE1LTcuOTQtMTQuMTVhMSwxLDAsMCwwLTEuNzUsMGwtNiwxMC42NC0zLTUuMjhhMSwxLDAsMCwwLTEuNzUsMFM1LjQsMTcuNDMsNC40MiwxOS4xNUE5LjMsOS4zLDAsMCwwLDMsMjQuMjZj''@;'; + put 'put ''MCw1LjExLDMuODgsOS42NSw4LjY3LDkuNzRIMjIuNDhDMjguMjgsMzQsMzMsMjguNjIsMzMsMjIuNDRBMTEuMTMsMTEuMTMsMCwwLDAsMzEuMywxNi4zMlpNMjEuNDgsMzJIMTQuNTRBNC42OCw0LjY4LDAsMCwxLDEwLDI3LjQxYTMuOTEsMy45MSwwLDAsMSwuNzUtMi4zNGwzLjM1LTUuMjFh''@;'; + put 'put ''LjUuNSwwLDAsMSwuODQsMGwxLjc4LDIuNzcsMC0uMDhjLjYzLTEuMTEsNC4yMy03LjQ4LDQuMjMtNy40OGEuNS41LDAsMCwxLC44NywwczMuNiw2LjM4LDQuMjMsNy40OEE1LjgzLDUuODMsMCwwLDEsMjcsMjUuNzZDMjcsMzIsMjIuMSwzMiwyMS40OCwzMloiIGNsYXNzPSJjbHItaS1zb2xp''@;'; + put 'put ''ZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+JyksZS5DbHJTaGFwZUhvdXJnbGFzcz0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjksMzJIMjZWMjQuOTFhNi42Nyw2LjY3LDAsMCwwLTIuNjktNS4zM2wtMS4yOC0xQTYuMzYsNi4zNiwwLDAsMCwyMSwxOGgwYTYuMjksNi4yOSwwLDAsMCwx''@;'; + put 'put ''LS42MmwxLjI4LTFBNi42Nyw2LjY3LDAsMCwwLDI2LDExLjA5VjRoM2ExLDEsMCwwLDAsMC0ySDdBMSwxLDAsMCwwLDcsNGgzdjcuMDlhNi42Nyw2LjY3LDAsMCwwLDIuNjksNS4zM2wxLjI4LDFBNi4zNiw2LjM2LDAsMCwwLDE1LDE4aDBhNi4yNyw2LjI3LDAsMCwwLTEsLjYybC0xLjI4LDFB''@;'; + put 'put ''Ni42Nyw2LjY3LDAsMCwwLDEwLDI0LjkxVjMySDdhMSwxLDAsMCwwLDAsMkgyOWExLDEsMCwwLDAsMC0yWk0xMiwyNC45MWE0LjY2LDQuNjYsMCwwLDEsMS44OC0zLjcybDEuMjgtMWE0LjY2LDQuNjYsMCwwLDEsMS4xOC0uNjMsMSwxLDAsMCwwLC42NS0uOTRWMTcuMzNhMSwxLDAsMCwwLS42''@;'; + put 'put ''NS0uOTQsNC42Nyw0LjY3LDAsMCwxLTEuMTktLjYzbC0xLjI4LTFBNC42Niw0LjY2LDAsMCwxLDEyLDExLjA5VjRIMjR2Ny4wOWE0LjY2LDQuNjYsMCwwLDEtMS44OCwzLjcybC0xLjI4LDFoMGE0LjY2LDQuNjYsMCwwLDEtMS4xOC42MywxLDEsMCwwLDAtLjY1Ljk0djEuMzRhMSwxLDAsMCww''@;'; + put 'put ''LC42NS45NCw0LjY3LDQuNjcsMCwwLDEsMS4xOS42M2wxLjI4LDFBNC42Niw0LjY2LDAsMCwxLDI0LDI0LjkxVjMySDEyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjksMzJIMjZWMjQuOTFhNi42Nyw2LjY3''@;'; + put 'put ''LDAsMCwwLTIuNjktNS4zM2wtMS4yOC0xQTYuMzYsNi4zNiwwLDAsMCwyMSwxOGgwYTYuMjksNi4yOSwwLDAsMCwxLS42MmwxLjI4LTFhNi42NCw2LjY0LDAsMCwwLDEuMDktMUgyMi4yM2EzLjY0LDMuNjQsMCwwLDEtLjc4LS4wOWwtLjYyLjQ2aDBhNC42Niw0LjY2LDAsMCwxLTEuMTguNjMs''@;'; + put 'put ''MSwxLDAsMCwwLS42NS45NHYxLjM0YTEsMSwwLDAsMCwuNjUuOTQsNC42Nyw0LjY3LDAsMCwxLDEuMTkuNjNsMS4yOCwxQTQuNjYsNC42NiwwLDAsMSwyNCwyNC45MVYzMkgxMlYyNC45MWE0LjY2LDQuNjYsMCwwLDEsMS44OC0zLjcybDEuMjgtMWE0LjY2LDQuNjYsMCwwLDEsMS4xOC0uNjMs''@;'; + put 'put ''MSwxLDAsMCwwLC42NS0uOTRWMTcuMzNhMSwxLDAsMCwwLS42NS0uOTQsNC42Nyw0LjY3LDAsMCwxLTEuMTktLjYzbC0xLjI4LTFBNC42Niw0LjY2LDAsMCwxLDEyLDExLjA5VjRIMjIuNDVMMjMuNiwySDdBMSwxLDAsMCwwLDcsNGgzdjcuMDlhNi42Nyw2LjY3LDAsMCwwLDIuNjksNS4zM2wx''@;'; + put 'put ''LjI4LDFBNi4zNiw2LjM2LDAsMCwwLDE1LDE4aDBhNi4yNyw2LjI3LDAsMCwwLTEsLjYybC0xLjI4LDFBNi42Nyw2LjY3LDAsMCwwLDEwLDI0LjkxVjMySDdhMSwxLDAsMCwwLDAsMkgyOWExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGlu''@;'; + put 'put ''ZS1wYXRoLTEtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiAgY2xh''@;'; + put 'put ''c3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjksMzJIMjZWMjQuOTFhNi42Nyw2LjY3LDAsMCwwLTIuNjktNS4zM2wtMS4yOC0xQTYuMzYsNi4zNiwwLDAsMCwyMSwx''@;'; + put 'put ''OGgwYTYuMjksNi4yOSwwLDAsMCwxLS42MmwxLjI4LTFhNi42OCw2LjY4LDAsMCwwLDIuNTctNC4xNkE3LjUzLDcuNTMsMCwwLDEsMjQsMTAuNDl2LjYxYTQuNjYsNC42NiwwLDAsMS0xLjg4LDMuNzJsLTEuMjgsMWgwYTQuNjYsNC42NiwwLDAsMS0xLjE4LjYzLDEsMSwwLDAsMC0uNjUuOTR2''@;'; + put 'put ''MS4zNGExLDEsMCwwLDAsLjY1Ljk0LDQuNjcsNC42NywwLDAsMSwxLjE5LjYzbDEuMjgsMUE0LjY2LDQuNjYsMCwwLDEsMjQsMjQuOTFWMzJIMTJWMjQuOTFhNC42Niw0LjY2LDAsMCwxLDEuODgtMy43MmwxLjI4LTFhNC42Niw0LjY2LDAsMCwxLDEuMTgtLjYzLDEsMSwwLDAsMCwuNjUtLjk0''@;'; + put 'put ''VjE3LjMzYTEsMSwwLDAsMC0uNjUtLjk0LDQuNjcsNC42NywwLDAsMS0xLjE5LS42M2wtMS4yOC0xQTQuNjYsNC42NiwwLDAsMSwxMiwxMS4wOVY0SDIyLjc4YTcuNDUsNy40NSwwLDAsMSwuODktMkg3QTEsMSwwLDAsMCw3LDRoM3Y3LjA5YTYuNjcsNi42NywwLDAsMCwyLjY5LDUuMzNsMS4y''@;'; + put 'put ''OCwxQTYuMzYsNi4zNiwwLDAsMCwxNSwxOGgwYTYuMjcsNi4yNywwLDAsMC0xLC42MmwtMS4yOCwxQTYuNjcsNi42NywwLDAsMCwxMCwyNC45MVYzMkg3YTEsMSwwLDAsMCwwLDJIMjlhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1w''@;'; + put 'put ''YXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik02LjY3LDRo''@;'; + put 'put ''MjJhMSwxLDAsMCwwLDAtMmgtMjJhMSwxLDAsMSwwLDAsMloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjguNjcsMzJoLTIyYTEsMSwwLDAsMCwwLDJoMjJhMSwxLDAsMSwwLDAtMloiIGNsYXNzPSJjbHItaS1zb2xp''@;'; + put 'put ''ZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIuNTUsMTUuNjdBNi4wNyw2LjA3LDAsMCwwLDI1LDExLjEyVjZIMTAuMDZ2NS4xMmE2LjA3LDYuMDcsMCwwLDAsMi40NSw0LjU1LDExLjQ4LDExLjQ4LDAsMCwwLDIuOTEsMS43MnYxLjE2YTExLjQ4LDEx''@;'; + put 'put ''LjQ4LDAsMCwwLTIuOTEsMS43Miw2LjA3LDYuMDcsMCwwLDAtMi40NSw0LjU1djUuMTJIMjVWMjQuODJhNi4wNyw2LjA3LDAsMCwwLTIuNDUtNC41NSwxMS40OCwxMS40OCwwLDAsMC0yLjkxLTEuNzJWMTcuMzlBMTEuNDgsMTEuNDgsMCwwLDAsMjIuNTUsMTUuNjdaIiBjbGFzcz0iY2xyLWkt''@;'; + put 'put ''c29saWQgY2xyLWktc29saWQtcGF0aC0zIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4LjY3LDMyaC0yMmExLDEsMCwwLDAsMCwyaDIyYTEsMSwwLDEsMCwwLTJaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiAvPlxuICAgICAg''@;'; + put 'put ''ICAgICAgPHBhdGggZD0iTTYuNjcsNEgyMi40NUwyMy42LDJINi42N2ExLDEsMCwxLDAsMCwyWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMi41MSwyMC4yN2E2LjA3LDYuMDcsMCww''@;'; + put 'put ''LDAtMi40NSw0LjU1djUuMTJIMjVWMjQuODJhNi4wNyw2LjA3LDAsMCwwLTIuNDUtNC41NSwxMS40OCwxMS40OCwwLDAsMC0yLjkxLTEuNzJWMTcuMzlhMTEuNDgsMTEuNDgsMCwwLDAsMi45MS0xLjcybC4zLS4yN2gtLjYyQTMuNjgsMy42OCwwLDAsMSwxOSw5Ljg5TDIxLjI5LDZIMTAuMDZ2''@;'; + put 'put ''NS4xMmE2LjA3LDYuMDcsMCwwLDAsMi40NSw0LjU1LDExLjQ4LDExLjQ4LDAsMCwwLDIuOTEsMS43MnYxLjE2QTExLjQ4LDExLjQ4LDAsMCwwLDEyLjUxLDIwLjI3WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMy0tYWxlcnRlZCIgLz5cbiAgICAgICAg''@;'; + put 'put ''ICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiICBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWkt''@;'; + put 'put ''c29saWQtcGF0aC00LS1hbGVydGVkIGNsci1pLWFsZXJ0IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4LjY3LDMyaC0yMmExLDEsMCwwLDAsMCwyaDIyYTEsMSwwLDEsMCwwLTJaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgLz5c''@;'; + put 'put ''biAgICAgICAgICAgIDxwYXRoIGQ9Ik02LjY3LDRIMjIuNzhhNy40NSw3LjQ1LDAsMCwxLC44OS0yaC0xN2ExLDEsMCwxLDAsMCwyWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIuNTUs''@;'; + put 'put ''MjAuMjdhMTEuNDgsMTEuNDgsMCwwLDAtMi45MS0xLjcyVjE3LjM5YTExLjQ4LDExLjQ4LDAsMCwwLDIuOTEtMS43MkE2LjI1LDYuMjUsMCwwLDAsMjUsMTEuNTUsNy40Nyw3LjQ3LDAsMCwxLDIyLjUsNkgxMC4wNnY1LjEyYTYuMDcsNi4wNywwLDAsMCwyLjQ1LDQuNTUsMTEuNDgsMTEuNDgs''@;'; + put 'put ''MCwwLDAsMi45MSwxLjcydjEuMTZhMTEuNDgsMTEuNDgsMCwwLDAtMi45MSwxLjcyLDYuMDcsNi4wNywwLDAsMC0yLjQ1LDQuNTV2NS4xMkgyNVYyNC44MkE2LjA3LDYuMDcsMCwwLDAsMjIuNTUsMjAuMjdaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTMt''@;'; + put 'put ''LWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtNC0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPicpLGUuQ2xyU2hhcGVOb0FjY2Vzcz0oMCxhLmNsckljb25TVkcpKCc8''@;'; + put 'put ''cGF0aCBkPSJNMTgsMkExNiwxNiwwLDEsMCwzNCwxOCwxNiwxNiwwLDAsMCwxOCwyWm0wLDMwQTE0LDE0LDAsMSwxLDMyLDE4LDE0LDE0LDAsMCwxLDE4LDMyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjcu''@;'; + put 'put ''MTUsMTVIOC44NUExLjg1LDEuODUsMCwwLDAsNywxNi44NXYyLjI5QTEuODUsMS44NSwwLDAsMCw4Ljg1LDIxSDI3LjE1QTEuODUsMS44NSwwLDAsMCwyOSwxOS4xNVYxNi44NUExLjg1LDEuODUsMCwwLDAsMjcuMTUsMTVabS4yNSw0LjE1YS4yNS4yNSwwLDAsMS0uMjUuMjVIOC44NWEuMjUu''@;'; + put 'put ''MjUsMCwwLDEtLjI1LS4yNVYxNi44NWEuMjUuMjUsMCwwLDEsLjI1LS4yNUgyNy4xNWEuMjUuMjUsMCwwLDEsLjI1LjI1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMkExNiwxNiwwLDEsMCwzNCwxOCwx''@;'; + put 'put ''NiwxNiwwLDAsMCwxOCwyWk0yOS4xNSwyMEg2Ljg1QS44NS44NSwwLDAsMSw2LDE5LjE1VjE2Ljg1QS44NS44NSwwLDAsMSw2Ljg1LDE2SDI5LjE1YS44NS44NSwwLDAsMSwuODUuODV2Mi4yOUEuODUuODUsMCwwLDEsMjkuMTUsMjBaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQt''@;'; + put 'put ''cGF0aC0xIiAvPicpLGUuQ2xyU2hhcGVPcmdhbml6YXRpb249KDAsYS5jbHJJY29uU1ZHKSgnPHBvbHlnb24gcG9pbnRzPSI5LjggMTguOCAyNi4yIDE4LjggMjYuMiAyMS44OCAyNy44IDIxLjg4IDI3LjggMTcuMiAxOC44IDE3LjIgMTguOCAxNCAxNy4yIDE0IDE3LjIgMTcuMiA4LjIgMTcu''@;'; + put 'put ''MiA4LjIgMjEuODggOS44IDIxLjg4IDkuOCAxOC44IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNCwyM0g0YTIsMiwwLDAsMC0yLDJ2NmEyLDIsMCwwLDAsMiwySDE0YTIsMiwwLDAsMCwyLTJWMjVBMiwyLDAs''@;'; + put 'put ''MCwwLDE0LDIzWk00LDMxVjI1SDE0djZaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMiwyM0gyMmEyLDIsMCwwLDAtMiwydjZhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjI1QTIsMiwwLDAsMCwz''@;'; + put 'put ''MiwyM1pNMjIsMzFWMjVIMzJ2NloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTEzLDEzSDIzYTIsMiwwLDAsMCwyLTJWNWEyLDIsMCwwLDAtMi0ySDEzYTIsMiwwLDAsMC0yLDJ2NkEyLDIsMCwwLDAsMTMsMTNa''@;'; + put 'put ''bTAtOEgyM3Y2SDEzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+XG4gICAgICAgICAgICA8cG9seWdvbiBwb2ludHM9IjkuOCAxOC44IDI2LjIgMTguOCAyNi4yIDIxLjg4IDI3LjggMjEuODggMjcuOCAxNy4yIDE4LjggMTcuMiAxOC44IDE0IDE3LjIg''@;'; + put 'put ''MTQgMTcuMiAxNy4yIDguMiAxNy4yIDguMiAyMS44OCA5LjggMjEuODggOS44IDE4LjgiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIyIiB5PSIyMyIgd2lkdGg9IjE0IiBoZWlnaHQ9IjEwIiByeD0iMiIgcnk9IjIiIGNs''@;'; + put 'put ''YXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIyMCIgeT0iMjMiIHdpZHRoPSIxNCIgaGVpZ2h0PSIxMCIgcng9IjIiIHJ5PSIyIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiAvPlxuICAgICAgICAgICAg''@;'; + put 'put ''PHJlY3QgeD0iMTEiIHk9IjMiIHdpZHRoPSIxNCIgaGVpZ2h0PSIxMCIgcng9IjIiIHJ5PSIyIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC00IiAvPicpLGUuQ2xyU2hhcGVCYWxhbmNlPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yNCwzM0gxMmExLDEsMCwwLDEs''@;'; + put 'put ''MC0ySDI0YTEsMSwwLDAsMSwwLDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE3IiB5PSI5IiB3aWR0aD0iMiIgaGVpZ2h0PSIyMi41IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgt''@;'; + put 'put ''MiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOCw3SDhBMSwxLDAsMCwxLDgsNUgyOGExLDEsMCwwLDEsMCwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuOTMsMjQuNzlhNy4yMyw3LjIzLDAsMCwx''@;'; + put 'put ''LTUuODEtMi44OWwtLjYtLjgsMS41OS0xLjIxLjYuOGE1LjI4LDUuMjgsMCwwLDAsOC40MiwwbC42LS44LDEuNTksMS4yMS0uNi44QTcuMjMsNy4yMywwLDAsMSwyNi45MywyNC43OVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPlxuICAgICAgICAgICAg''@;'; + put 'put ''PHBhdGggZD0iTTMwLjUxLDE5LjI1YS44LjgsMCwwLDEtLjczLS40OEwyNi45MywxMi4ybC0yLjg1LDYuNTdhLjguOCwwLDAsMS0xLjQ3LS42NEwyNi4yLDkuODdhLjgzLjgzLDAsMCwxLDEuNDcsMGwzLjU4LDguMjZhLjguOCwwLDAsMS0uNzMsMS4xMloiIGNsYXNzPSJjbHItaS1vdXRsaW5l''@;'; + put 'put ''IGNsci1pLW91dGxpbmUtcGF0aC01IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTkuNjgsMjQuNzlBNy4yMyw3LjIzLDAsMCwxLDMuODgsMjEuOWwtLjYtLjhMNC44NiwxOS45bC42LjhhNS4yOCw1LjI4LDAsMCwwLDguNDIsMGwuNi0uOCwxLjU5LDEuMjEtLjYuOEE3LjIzLDcuMjMsMCww''@;'; + put 'put ''LDEsOS42OCwyNC43OVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTEzLjI2LDE5LjI1YS44LjgsMCwwLDEtLjczLS40OEw5LjY4LDEyLjIsNi44NCwxOC43N2EuOC44LDAsMCwxLTEuNDctLjY0TDguOTUsOS44''@;'; + put 'put ''N2EuODMuODMsMCwwLDEsMS40NywwTDE0LDE4LjEzYS44LjgsMCwwLDEtLjczLDEuMTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNyIgLz4nKSxlLkNsclNoYXBlSWRCYWRnZT0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTgsMjJhNC4yMyw0LjIzLDAs''@;'; + put 'put ''MSwwLTQuMjMtNC4yM0E0LjIzLDQuMjMsMCwwLDAsMTgsMjJabTAtNi44NmEyLjYzLDIuNjMsMCwxLDEtMi42MywyLjYzQTIuNjMsMi42MywwLDAsMSwxOCwxNS4xNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0i''@;'; + put 'put ''TTIyLDRhMiwyLDAsMCwwLTItMkgxNmEyLDIsMCwwLDAtMiwydjdoOFpNMjAsOUgxNlY0aDRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNiwzMFYyNy43YTEuMTIsMS4xMiwwLDAsMC0uMjYtLjczQTkuOSw5''@;'; + put 'put ''LjksMCwwLDAsMTgsMjMuNjksOS45LDkuOSwwLDAsMCwxMC4yNiwyN2ExLjEzLDEuMTMsMCwwLDAtLjI2LjczVjMwaDEuNlYyNy44N0E4LjMzLDguMzMsMCwwLDEsMTgsMjUuMjlhOC4zMyw4LjMzLDAsMCwxLDYuNCwyLjU5VjMwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGlu''@;'; + put 'put ''ZS1wYXRoLTMiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjgsNkgyNFY4aDRWMzJIOFY4aDRWNkg4QTIsMiwwLDAsMCw2LDhWMzJhMiwyLDAsMCwwLDIsMkgyOGEyLDIsMCwwLDAsMi0yVjhBMiwyLDAsMCwwLDI4LDZaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBh''@;'; + put 'put ''dGgtNCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwyMmE0LjIzLDQuMjMsMCwxLDAtNC4yMy00LjIzQTQuMjMsNC4yMywwLDAsMCwxOCwyMlptMC02Ljg2YTIuNjMsMi42MywwLDEsMS0yLjYzLDIuNjNBMi42MywyLjYzLDAsMCwxLDE4LDE1LjE0WiIgY2xhc3M9ImNsci1pLW91dGxp''@;'; + put 'put ''bmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTAuMjYsMjdhMS4xMywxLjEzLDAsMCwwLS4yNi43M1YzMGgxLjZWMjcuODdBOC4zMyw4LjMzLDAsMCwxLDE4LDI1LjI5YTguMzMsOC4zMywwLDAsMSw2LjQsMi41OVYz''@;'; + put 'put ''MEgyNlYyNy43YTEuMTIsMS4xMiwwLDAsMC0uMjYtLjczQTkuOSw5LjksMCwwLDAsMTgsMjMuNjksOS45LDkuOSwwLDAsMCwxMC4yNiwyN1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGgg''@;'; + put 'put ''ZD0iTTE5LDkuODksMTkuNTYsOUgxNlY0aDRWOC4yNGwyLTMuNDZWNGEyLDIsMCwwLDAtMi0ySDE2YTIsMiwwLDAsMC0yLDJ2N2g0LjY0QTMuNjYsMy42NiwwLDAsMSwxOSw5Ljg5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQi''@;'; + put 'put ''IC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjgsMTUuNFYzMkg4VjhoNFY2SDhBMiwyLDAsMCwwLDYsOFYzMmEyLDIsMCwwLDAsMiwySDI4YTIsMiwwLDAsMCwyLTJWMTUuNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIiAv''@;'; + put 'put ''PlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1h''@;'; + put 'put ''bGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC01LS1hbGVydGVkIGNsci1pLWFsZXJ0IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDIyYTQuMjMsNC4yMywwLDEsMC00LjIzLTQuMjNBNC4yMyw0LjIzLDAsMCwwLDE4LDIyWm0wLTYuODZhMi42MywyLjYzLDAsMSwxLTIuNjMsMi42M0Ey''@;'; + put 'put ''LjYzLDIuNjMsMCwwLDEsMTgsMTUuMTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIsNGEyLDIsMCwwLDAtMi0ySDE2YTIsMiwwLDAsMC0yLDJ2N2g4Wk0yMCw5SDE2VjRoNFoi''@;'; + put 'put ''IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMC4yNiwyN2ExLjEzLDEuMTMsMCwwLDAtLjI2LjczVjMwaDEuNlYyNy44N0E4LjMzLDguMzMsMCwwLDEsMTgsMjUuMjlhOC4zMyw4LjMz''@;'; + put 'put ''LDAsMCwxLDYuNCwyLjU5VjMwSDI2VjI3LjdhMS4xMiwxLjEyLDAsMCwwLS4yNi0uNzNBOS45LDkuOSwwLDAsMCwxOCwyMy42OSw5LjksOS45LDAsMCwwLDEwLjI2LDI3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIiAvPlxuICAg''@;'; + put 'put ''ICAgICAgICAgPHBhdGggZD0iTTI4LDEzLjIyVjMySDhWOGg0VjZIOEEyLDIsMCwwLDAsNiw4VjMyYTIsMiwwLDAsMCwyLDJIMjhhMiwyLDAsMCwwLDItMlYxMy41QTcuNDksNy40OSwwLDAsMSwyOCwxMy4yMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1w''@;'; + put 'put ''YXRoLTQtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWJhZGdlZCBjbHItaS1iYWRnZSIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjE4IiBj''@;'; + put 'put ''eT0iMTcuNzciIHI9IjQuMjMiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjEsNGEyLDIsMCwwLDAtMi0ySDE3YTIsMiwwLDAsMC0yLDJ2Nmg2WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIg''@;'; + put 'put ''Lz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMC4yNiwyN2ExLjEzLDEuMTMsMCwwLDAtLjI2LjczVjMwSDI2VjI3LjdhMS4xMiwxLjEyLDAsMCwwLS4yNi0uNzNBOS45LDkuOSwwLDAsMCwxOCwyMy42OSw5LjksOS45LDAsMCwwLDEwLjI2LDI3WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1p''@;'; + put 'put ''LXNvbGlkLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOCw2SDIzVjhoNVYzMkg4VjhoNVY2SDhBMiwyLDAsMCwwLDYsOFYzMmEyLDIsMCwwLDAsMiwySDI4YTIsMiwwLDAsMCwyLTJWOEEyLDIsMCwwLDAsMjgsNloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1w''@;'; + put 'put ''YXRoLTQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTksOS44OSwyMSw2LjVWNGEyLDIsMCwwLDAtMi0ySDE3YTIsMiwwLDAsMC0yLDJ2Nmg0WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxjaXJj''@;'; + put 'put ''bGUgY3g9IjE4IiBjeT0iMTcuNzciIHI9IjQuMjMiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTAuMjYsMjdhMS4xMywxLjEzLDAsMCwwLS4yNi43M1YzMEgyNlYyNy43YTEuMTIsMS4x''@;'; + put 'put ''MiwwLDAsMC0uMjYtLjczQTkuOSw5LjksMCwwLDAsMTgsMjMuNjksOS45LDkuOSwwLDAsMCwxMC4yNiwyN1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjgsMTUuNFYzMkg4VjhoNVY2''@;'; + put 'put ''SDhBMiwyLDAsMCwwLDYsOFYzMmEyLDIsMCwwLDAsMiwySDI4YTIsMiwwLDAsMCwyLTJWMTUuNFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTQtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4''@;'; + put 'put ''LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiAgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtNS0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5c''@;'; + put 'put ''biAgICAgICAgICAgIDxjaXJjbGUgY3g9IjE4IiBjeT0iMTcuNzciIHI9IjQuMjMiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIxLDRhMiwyLDAsMCwwLTItMkgxN2EyLDIsMCwwLDAtMiwy''@;'; + put 'put ''djZoNloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTEwLjI2LDI3YTEuMTMsMS4xMywwLDAsMC0uMjYuNzNWMzBIMjZWMjcuN2ExLjEyLDEuMTIsMCwwLDAtLjI2LS43M0E5LjksOS45LDAs''@;'; + put 'put ''MCwwLDE4LDIzLjY5LDkuOSw5LjksMCwwLDAsMTAuMjYsMjdaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOCwxMy4yMlYzMkg4VjhoNVY2SDhBMiwyLDAsMCwwLDYsOFYzMmEyLDIsMCww''@;'; + put 'put ''LDAsMiwySDI4YTIsMiwwLDAsMCwyLTJWMTMuNUE3LjQ5LDcuNDksMCwwLDEsMjgsMTMuMjJaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTQtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJj''@;'; + put 'put ''bHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtNS0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPicpLGUuQ2xyU2hhcGVSZXBlYXQ9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik02LDE0LjE1QTMuMTcs''@;'; + put 'put ''My4xNywwLDAsMSw5LjE3LDExSDI4LjRsLTQuMjgsNC41NGExLDEsMCwxLDAsMS40NiwxLjM3TDMyLjA5LDEwLDI1LjU4LDMuMDlhMSwxLDAsMSwwLTEuNDYsMS4zN0wyOC40LDlIOS4xN0E1LjE3LDUuMTcsMCwwLDAsNCwxNC4xNXY2LjFsMi0yLjEyWiIvPlxuICAgICAgICAgICAgPHBhdGgg''@;'; + put 'put ''Y2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0zMCwyMS44NUEzLjE3LDMuMTcsMCwwLDEsMjYuODMsMjVINy42bDQuMjgtNC41NGExLDEsMCwxLDAtMS40Ni0xLjM3TDMuOTEsMjZsNi41MSw2LjkxYTEsMSwwLDEsMCwxLjQ2LTEuMzdMNy42LDI3SDI2Ljgz''@;'; + put 'put ''QTUuMTcsNS4xNywwLDAsMCwzMiwyMS44NXYtNi4xbC0yLDIuMTJaIi8+JyksZS5DbHJTaGFwZUZpbGVHcm91cD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMxLDM0SDEzYTEsMSwwLDAsMS0xLTFWMTFhMSwx''@;'; + put 'put ''LDAsMCwxLDEtMUgzMWExLDEsMCwwLDEsMSwxVjMzQTEsMSwwLDAsMSwzMSwzNFpNMTQsMzJIMzBWMTJIMTRaIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgeD0iMTYiIHk9IjE2IiB3aWR0aD0iMTIiIGhlaWdodD0iMiIv''@;'; + put 'put ''PlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIHg9IjE2IiB5PSIyMCIgd2lkdGg9IjEyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiB4''@;'; + put 'put ''PSIxNiIgeT0iMjQiIHdpZHRoPSIxMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgZD0iTTYsMjRWNEgyNFYzYTEsMSwwLDAsMC0xLTFINUExLDEsMCwwLDAsNCwzVjI1YTEsMSwwLDAsMCwxLDFINloi''@;'; + put 'put ''Lz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02IiBkPSJNMTAsMjhWOEgyOFY3YTEsMSwwLDAsMC0xLTFIOUExLDEsMCwwLDAsOCw3VjI5YTEsMSwwLDAsMCwxLDFoMVoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHIt''@;'; + put 'put ''aS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zMSwxMEgxM2ExLDEsMCwwLDAtMSwxVjMzYTEsMSwwLDAsMCwxLDFIMzFhMSwxLDAsMCwwLDEtMVYxMUExLDEsMCwwLDAsMzEsMTBaTTI4LDI2SDE2VjI0SDI4Wm0wLTRIMTZWMjBIMjhabTAtNEgxNlYxNkgyOFoiLz5cbiAgICAgICAg''@;'; + put 'put ''ICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGQ9Ik02LDI0VjRIMjRWM2ExLDEsMCwwLDAtMS0xSDVBMSwxLDAsMCwwLDQsM1YyNWExLDEsMCwwLDAsMSwxSDZaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29s''@;'; + put 'put ''aWQtcGF0aC0zIiBkPSJNMTAsMjhWOEgyOFY3YTEsMSwwLDAsMC0xLTFIOUExLDEsMCwwLDAsOCw3VjI5YTEsMSwwLDAsMCwxLDFoMVoiLz4nKSxlLkNsclNoYXBlUGFwZXJjbGlwPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0''@;'; + put 'put ''aC0xIiBkPSJNOC40MiwzMi42QTYuMyw2LjMsMCwwLDEsNCwzMC43OWwtLjEzLS4xM0E2LjIsNi4yLDAsMCwxLDIsMjYuMjIsNi43Nyw2Ljc3LDAsMCwxLDQsMjEuNEwxOS41LDYuMDdhOC42Nyw4LjY3LDAsMCwxLDEyLjE1LS4zNUE4LDgsMCwwLDEsMzQsMTEuNDRhOSw5LDAsMCwxLTIuNyw2''@;'; + put 'put ''LjM2TDE3LjM3LDMxLjZBMSwxLDAsMSwxLDE2LDMwLjE4TDI5Ljg5LDE2LjM4QTcsNywwLDAsMCwzMiwxMS40NGE2LDYsMCwwLDAtMS43Ni00LjMsNi42Nyw2LjY3LDAsMCwwLTkuMzQuMzVMNS40NSwyMi44MkE0Ljc4LDQuNzgsMCwwLDAsNCwyNi4yMmE0LjIxLDQuMjEsMCwwLDAsMS4yNCwz''@;'; + put 'put ''bC4xMy4xM2E0LjY0LDQuNjQsMCwwLDAsNi41LS4yMUwyNS4yMiwxNS45NEEyLjcsMi43LDAsMCwwLDI2LDE0YTIuMzUsMi4zNSwwLDAsMC0uNjktMS42OCwyLjYxLDIuNjEsMCwwLDAtMy42Ni4xM2wtOS4yLDkuMTJhMSwxLDAsMSwxLTEuNDEtMS40MkwyMC4yOCwxMWE0LjYyLDQuNjIsMCww''@;'; + put 'put ''LDEsNi40OC0uMTNBNC4zMyw0LjMzLDAsMCwxLDI4LDE0YTQuNjgsNC42OCwwLDAsMS0xLjQxLDMuMzRMMTMuMjgsMzAuNThBNi45MSw2LjkxLDAsMCwxLDguNDIsMzIuNloiLz4nKSxlLkNsclNoYXBlU2hyaW5rPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5l''@;'; + put 'put ''IGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzIsMTVIMjIuNDFsOS4yNS05LjI1YTEsMSwwLDAsMC0xLjQxLTEuNDFMMjEsMTMuNTlWNGExLDEsMCwwLDAtMiwwVjE3SDMyYTEsMSwwLDAsMCwwLTJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1v''@;'; + put 'put ''dXRsaW5lLXBhdGgtMiIgZD0iTTQsMTlhMSwxLDAsMCwwLDAsMmg5LjU5TDQuMzMsMzAuMjVhMSwxLDAsMSwwLDEuNDEsMS40MUwxNSwyMi40MVYzMmExLDEsMCwwLDAsMiwwVjE5WiIvPicpLGUuQ2xyU2hhcGVBY2Nlc3NpYmlsaXR5MT0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTQu''@;'; + put 'put ''NDQsMzEuOTRhNy4zMSw3LjMxLDAsMCwxLTUuNy0xMS44OEw3LjMyLDE4LjY0YTkuMyw5LjMsMCwwLDAsMTMuMSwxMy4xMUwxOSwzMC4zM0E3LjI5LDcuMjksMCwwLDEsMTQuNDQsMzEuOTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAg''@;'; + put 'put ''ICAgIDxwYXRoIGQ9Ik0yNS4zNiwxLjY3YTQuMTIsNC4xMiwwLDEsMCw0LjExLDQuMTFBNC4xMiw0LjEyLDAsMCwwLDI1LjM2LDEuNjdabTAsNi4yM2EyLjEyLDIuMTIsMCwxLDEsMi4xMS0yLjEyQTIuMTIsMi4xMiwwLDAsMSwyNS4zNiw3LjlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHIt''@;'; + put 'put ''aS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi41NiwxOC4xOGgtNWExLDEsMCwwLDAtLjI0LjA1bDMuMDktMy41NWEyLjgzLDIuODMsMCwwLDAtLjY5LTQuMzNsLTgtNC42YTEsMSwwLDAsMC0xLjEyLjA4TDkuODMsOS41OEExLDEsMCwwLDAsOS42NiwxMWEx''@;'; + put 'put ''LDEsMCwwLDAsLjc5LjM4LDEsMSwwLDAsMCwuNjEtLjIxbDQuMjctMy4zNCwzLjExLDEuNzctNS4wOCw1Ljc4aDBhOS4yOCw5LjI4LDAsMCwwLTQuNTMsMS44M2wxLjQzLDEuNDNBNy4zLDcuMywwLDAsMSwyMC40MiwyOC44MWwxLjQyLDEuNDNhOS4yNyw5LjI3LDAsMCwwLC43Ny0xMC4wNmgy''@;'; + put 'put ''LjgybC0uNzcsNi41MWExLDEsMCwwLDAsLjg4LDEuMTFoLjEyYTEsMSwwLDAsMCwxLS44OGwuOS03LjYyYTEsMSwwLDAsMC0uMjUtLjc4QTEsMSwwLDAsMCwyNi41NiwxOC4xOFptLTYuMzctNy41NiwyLjUyLDEuNDZhLjc5Ljc5LDAsMCwxLC40LjU5LjgxLjgxLDAsMCwxLS4yLjY5TDE5Ljc1''@;'; + put 'put ''LDE3QTkuMTcsOS4xNywwLDAsMCwxNiwxNS40NVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE0Ljc3LDMxLjk0YTcuMzEsNy4zMSwwLDAsMS01LjctMTEuODhMNy42NSwxOC42NGE5LjMsOS4zLDAsMCwwLDEz''@;'; + put 'put ''LjEsMTMuMTFsLTEuNDItMS40MkE3LjI5LDcuMjksMCwwLDEsMTQuNzcsMzEuOTRaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2LjY1LDIuMWEzLjEyLDMuMTIsMCwxLDAsMy4xMSwzLjEyQTMuMTIsMy4xMiwwLDAs''@;'; + put 'put ''MCwyNi42NSwyLjFaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2LjgxLDE4LjE4SDIxLjQ3cS0uMzEtLjMzLS42Ni0uNjNsNC4zOC00Ljg2YTIuMTQsMi4xNCwwLDAsMC0uNTMtMy4yN0wyMC45LDcuMjNsMCwwTDE3''@;'; + put 'put ''LjA1LDUuMDdhMSwxLDAsMCwwLTEuMTEuMDhMMTEuMTUsOC45YTEsMSwwLDAsMCwxLjIzLDEuNThsNC4yNy0zLjM0LDIuODcsMS42M0wxMy42LDE1LjM5YTkuMzMsOS4zMywwLDAsMC00LjQ0LDEuODJsMS40MiwxLjQzQTcuMyw3LjMsMCwwLDEsMjAuNzUsMjguODFsMS40MywxLjQzQTkuMjcs''@;'; + put 'put ''OS4yNywwLDAsMCwyMywyMC4xOGgyLjc0bC0uNzcsNi41MWExLDEsMCwwLDAsLjg3LDEuMTFoLjEyYTEsMSwwLDAsMCwxLS44OGwuOS03LjYyYTEsMSwwLDAsMC0uMjUtLjc4QTEsMSwwLDAsMCwyNi44MSwxOC4xOFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIC8+''@;'; + put 'put ''JyksZS5DbHJTaGFwZUFjY2Vzc2liaWxpdHkyPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMC4wNiwxMWgtMjRhMSwxLDAsMSwwLDAsMkgxNHY5LjY1czAsMCwwLDBsLTMuNzUsMTBhMSwxLDAsMCwwLC41OCwxLjI5LDEuMTMsMS4xMywwLDAsMCwuMzYuMDYsMSwxLDAsMCwwLC45My0u''@;'; + put 'put ''NjVMMTUuNjIsMjRoNC43NmwzLjUyLDkuMzVhMSwxLDAsMCwwLC45My42NSwxLjEzLDEuMTMsMCwwLDAsLjM2LS4wNiwxLDEsMCwwLDAsLjU4LTEuMjlMMjIsMjIuNjhzMCwwLDAsMFYxM2g4LjA2YTEsMSwwLDEsMCwwLTJaTTIwLDIySDE2VjEzaDRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBj''@;'; + put 'put ''bHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwxMGE0LDQsMCwxLDAtNC00QTQsNCwwLDAsMCwxOCwxMFptMC02YTIsMiwwLDEsMS0yLDJBMiwyLDAsMCwxLDE4LDRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5c''@;'; + put 'put ''biAgICAgICAgICAgIDxjaXJjbGUgY3g9IjE3Ljk2IiBjeT0iNSIgcj0iMyIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMCwxMEg2YTEsMSwwLDAsMCwwLDJoOHY4LjM2czAsMCwwLDBMMTAuMTEsMzMuMTdhMSwxLDAs''@;'; + put 'put ''MCwwLC42NiwxLjI1LDEuNTUsMS41NSwwLDAsMCwuMjksMCwxLDEsMCwwLDAsMS0uNzFsMy4yOS0xMC44NGg1LjM4TDI0LDMzLjc1YTEsMSwwLDAsMCwxLC43MSwxLjU1LDEuNTUsMCwwLDAsLjI5LDAsMSwxLDAsMCwwLC42Ni0xLjI1TDIyLDIwLjRzMCwwLDAsMFYxMmg4YTEsMSwwLDAsMCww''@;'; + put 'put ''LTJaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPicpLGUuQ2xyU2hhcGVTb3J0Qnk9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI4LjU0LDEzSDcuNDZhMSwxLDAsMCwxLDAtMkgyOC41NGExLDEsMCwwLDEsMCwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUg''@;'; + put 'put ''Y2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjEuMTcsMTlINy40NmExLDEsMCwwLDEsMC0ySDIxLjE3YTEsMSwwLDAsMSwwLDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9''@;'; + put 'put ''Ik0xMy43NCwyNUg3LjQ2YTEsMSwwLDAsMSwwLTJoNi4yOGExLDEsMCwwLDEsMCwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+JyksZS5DbHJTaGFwZUNvbGxhcHNlQ2FyZD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzMsMjFIM2ExLDEsMCww''@;'; + put 'put ''LDAtMSwxdjZhMSwxLDAsMCwwLDEsMUgzM2ExLDEsMCwwLDAsMS0xVjIyQTEsMSwwLDAsMCwzMywyMVptLTEsNkg0VjIzSDMyWiIgIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMjAuMjJsNS42NS01LjY1YS44''@;'; + put 'put ''MS44MSwwLDAsMCwwLTEuMTQuOC44LDAsMCwwLTEuMTMsMEwxOCwxOGwtNC41Mi00LjUyYS44LjgsMCwwLDAtMS4xMywwLC44MS44MSwwLDAsMCwwLDEuMTRaIiAgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwx''@;'; + put 'put ''NC4yMmw1LjY1LTUuNjVhLjgxLjgxLDAsMCwwLDAtMS4xNC44LjgsMCwwLDAtMS4xMywwTDE4LDEyLDEzLjQ4LDcuNDNhLjguOCwwLDAsMC0xLjEzLDAsLjgxLjgxLDAsMCwwLDAsMS4xNFoiICBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIvPlxuICAgICAgICAg''@;'; + put 'put ''ICAgPHJlY3QgeD0iMiIgeT0iMjIiIHdpZHRoPSIzMiIgaGVpZ2h0PSI4IiByeD0iMSIgcnk9IjEiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMjAuN2wtNS43OS01Ljc5YTEsMSwwLDAsMSwwLTEuNDEsMSwxLDAs''@;'; + put 'put ''MCwxLDEuNDEsMEwxOCwxNy44N2w0LjM4LTQuMzdhMSwxLDAsMCwxLDEuNDEsMCwxLDEsMCwwLDEsMCwxLjQxWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwxNC41LDEyLjIxLDguNzFhMSwxLDAsMCwxLDAtMS40''@;'; + put 'put ''MiwxLDEsMCwwLDEsMS40MSwwTDE4LDExLjY3bDQuMzgtNC4zOGExLDEsMCwwLDEsMS40MSwwLDEsMSwwLDAsMSwwLDEuNDJaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiAvPicpLGUuQ2xyU2hhcGVFeHBhbmRDYXJkPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9''@;'; + put 'put ''Ik0zMyw2SDNBMSwxLDAsMCwwLDIsN1YyOWExLDEsMCwwLDAsMSwxSDMzYTEsMSwwLDAsMCwxLTFWN0ExLDEsMCwwLDAsMzMsNlpNMzIsMjhINFY4SDMyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMy40OCwx''@;'; + put 'put ''NS44NiwxOCwxMS4zNGw0LjUyLDQuNTJhLjc3Ljc3LDAsMCwwLC41Ni4yNC44MS44MSwwLDAsMCwuNTctMS4zN0wxOCw5LjA4bC01LjY1LDUuNjVhLjguOCwwLDEsMCwxLjEzLDEuMTNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICAgICAgICAgICAg''@;'; + put 'put ''PHBhdGggZD0iTTEzLjQ4LDIxLjg2LDE4LDE3LjM0bDQuNTIsNC41MmEuNzcuNzcsMCwwLDAsLjU2LjI0LjgxLjgxLDAsMCwwLC41Ny0xLjM3TDE4LDE1LjA4bC01LjY1LDUuNjVhLjguOCwwLDEsMCwxLjEzLDEuMTNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgt''@;'; + put 'put ''MyIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLDZIM0ExLDEsMCwwLDAsMiw3VjI5YTEsMSwwLDAsMCwxLDFIMzNhMSwxLDAsMCwwLDEtMVY3QTEsMSwwLDAsMCwzMyw2Wk0yMy43OSwyMS40MWExLDEsMCwwLDEtMS40MSwwTDE4LDE3bC00LjM4LDQuMzhhMSwxLDAsMCwxLTEuNDEsMCwx''@;'; + put 'put ''LDEsMCwwLDEsMC0xLjQyTDE4LDE0LjIsMjMuNzksMjBBMSwxLDAsMCwxLDIzLjc5LDIxLjQxWm0wLTYuMmExLDEsMCwwLDEtMS40MSwwTDE4LDEwLjgzbC00LjM4LDQuMzhhMSwxLDAsMCwxLTEuNDEsMCwxLDEsMCwwLDEsMC0xLjQyTDE4LDhsNS43OSw1Ljc5QTEsMSwwLDAsMSwyMy43OSwx''@;'; + put 'put ''NS4yMVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+JyksZS5DbHJTaGFwZUJyaWVmY2FzZT0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzIsMjhhMCwwLDAsMCwxLDAsMEg0VjIxLjMyYTcuMSw3LjEsMCwwLDEtMi0xLjQzVjI4YTIsMiwwLDAsMCwyLDJI''@;'; + put 'put ''MzJhMiwyLDAsMCwwLDItMlYxOS44OWE2Ljc0LDYuNzQsMCwwLDEtMiwxLjQyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG48cGF0aCBkPSJNMjUsMjIuNGExLDEsMCwwLDAsMS0xVjE1Ljk0SDI0VjE4SDE0djJIMjR2MS40QTEsMSwwLDAsMCwyNSwy''@;'; + put 'put ''Mi40WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG48cGF0aCBkPSJNMzMsNkgyNFY0LjM4QTIuNDIsMi40MiwwLDAsMCwyMS41NSwyaC03LjFBMi40MiwyLjQyLDAsMCwwLDEyLDQuMzhWNkgzQTEsMSwwLDAsMCwyLDd2OGE1LDUsMCwwLDAsNSw1aDN2''@;'; + put 'put ''MS40YTEsMSwwLDAsMCwyLDBWMTUuOTRIMTBWMThIN2EzLDMsMCwwLDEtMy0zVjhIMzJ2N2EzLDMsMCwwLDEtMywzSDI4djJoMWE1LDUsMCwwLDAsNS01VjdBMSwxLDAsMCwwLDMzLDZaTTIyLDZIMTRWNC40M0EuNDUuNDUsMCwwLDEsMTQuNDUsNGg3LjExYS40My40MywwLDAsMSwuNDQuNDJa''@;'; + put 'put ''IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz5cbjxwYXRoIGQ9Ik0zMCwxOEE0LjA2LDQuMDYsMCwwLDAsMzQsMTRWNkgyNFY0LjQzQTIuNDQsMi40NCwwLDAsMCwyMS41NSwyaC03LjFBMi40NCwyLjQ0LDAsMCwwLDEyLDQuNDNWNkgydjhBNC4wNiw0LjA2''@;'; + put 'put ''LDAsMCwwLDYuMDUsMThoNFYxNS45MmgydjUuN2ExLDEsMCwxLDEtMiwwVjIwLjA2SDYuMDZBNi4wNiw2LjA2LDAsMCwxLDIsMTguNDl2OS40NWEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMTguNDlhNiw2LDAsMCwxLTQuMDYsMS41N0gyOFYxOFpNMTQsNC40M0EuNDUuNDUsMCww''@;'; + put 'put ''LDEsMTQuNDUsNGg3LjFhLjQ1LjQ1LDAsMCwxLC40NS40M1Y2SDE0Wk0yNiwyMS42MmExLDEsMCwxLDEtMiwwVjIwLjA2SDE0VjE4SDI0VjE1LjkyaDJaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPicpLGUuQ2xyU2hhcGVDb2xvclBpY2tlcj0oMCxhLmNscklj''@;'; + put 'put ''b25TVkcpKCc8cGF0aCBkPSJNMzMsMTAuMDVhNS4wNyw1LjA3LDAsMCwwLC4xLTcuMTdBNS4wNiw1LjA2LDAsMCwwLDI2LDNMMjAuNzgsOC4xNWEyLjEzLDIuMTMsMCwwLDEtMywwbC0uNjctLjY3TDE1LjcyLDguOTIsMjcuMDgsMjAuMjhsMS40Mi0xLjQyLS42Ny0uNjdhMi4xMywyLjEzLDAs''@;'; + put 'put ''MCwxLDAtM1pNMjYuNDQsMTMuOGE0LjA3LDQuMDcsMCwwLDAtMS4wOCwxLjkybC01LjA4LTUuMDhBNC4wNyw0LjA3LDAsMCwwLDIyLjIsOS41Nmw1LjE2LTUuMTdhMy4wOSwzLjA5LDAsMCwxLDQuMzUtLjEsMy4wOSwzLjA5LDAsMCwxLS4xLDQuMzVaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBj''@;'; + put 'put ''bHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbjxwYXRoIGQ9Ik03LjMsMzEuNTFhMiwyLDAsMSwxLTIuODMtMi44M0wxOC41OCwxNC41N2wtMS40Mi0xLjQxTDMuMDUsMjcuMjdhNCw0LDAsMCwwLS42OCw0LjhMLjg5LDMzLjU1QTEsMSwwLDAsMCwuODksMzVhMSwxLDAsMCwwLDEuNDIsMGwxLjQz''@;'; + put 'put ''LTEuNDRhMy45MywzLjkzLDAsMCwwLDIuMDkuNiw0LjA2LDQuMDYsMCwwLDAsMi44OC0xLjJMMjIuODIsMTguODEsMjEuNDEsMTcuNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuPHBhdGggZD0iTTMzLjczLDIuMTFhNC4wOSw0LjA5LDAsMCwwLTUu''@;'; + put 'put ''NzYuMUwyMi44MSw3LjM4YTMuMTMsMy4xMywwLDAsMS00LjMuMTFMMTcuMDksOC45MSwyNywxOC43OWwxLjQyLTEuNDJBMy4xOCwzLjE4LDAsMCwxLDI4LjQ2LDEzbDUuMTctNS4xN0E0LjA4LDQuMDgsMCwwLDAsMzMuNzMsMi4xMVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1w''@;'; + put 'put ''YXRoLTEiIC8+XG48cGF0aCBkPSJNMjIuMTgsMTYuNzksNy40NiwzMS41MWEyLDIsMCwxLDEtMi44Mi0yLjgzTDE5LjM1LDE0bC0xLjQxLTEuNDFMMy4yMiwyNy4yN2E0LDQsMCwwLDAtLjY4LDQuOEwxLjA2LDMzLjU1YTEsMSwwLDAsMCwwLDEuNDEsMSwxLDAsMCwwLDEuNDEsMGwxLjQ0LTEu''@;'; + put 'put ''NDRhMy45MywzLjkzLDAsMCwwLDIuMDkuNiw0LjA2LDQuMDYsMCwwLDAsMi44OC0xLjJMMjMuNiwxOC4yMVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+JyksZS5DbHJTaGFwZUNvcHlUb0NsaXBib2FyZD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjIu''@;'; + put 'put ''Niw0SDIxLjU1YTMuODksMy44OSwwLDAsMC03LjMxLDBIMTMuNEEyLjQxLDIuNDEsMCwwLDAsMTEsNi40VjEwSDI1VjYuNEEyLjQxLDIuNDEsMCwwLDAsMjIuNiw0Wk0yMyw4SDEzVjYuMjVBLjI1LjI1LDAsMCwxLDEzLjI1LDZoMi42OWwuMTItMS4xMUExLjI0LDEuMjQsMCwwLDEsMTYuNjEs''@;'; + put 'put ''NGEyLDIsMCwwLDEsMy4xNSwxLjE4bC4wOS44NGgyLjlhLjI1LjI1LDAsMCwxLC4yNS4yNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuPHBhdGggZD0iTTMzLjI1LDE4LjA2SDIxLjMzbDIuODQtMi44M2ExLDEsMCwxLDAtMS40Mi0xLjQyTDE3LjUs''@;'; + put 'put ''MTkuMDZsNS4yNSw1LjI1YTEsMSwwLDAsMCwuNzEuMjksMSwxLDAsMCwwLC43MS0xLjdsLTIuODQtMi44NEgzMy4yNWExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG48cGF0aCBkPSJNMjksMTZoMlY2LjY4QTEuNjYsMS42Niww''@;'; + put 'put ''LDAsMCwyOS4zNSw1SDI3LjA4VjdIMjlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz5cbjxwYXRoIGQ9Ik0yOSwzMUg3VjdIOVY1SDYuNjRBMS42NiwxLjY2LDAsMCwwLDUsNi42N1YzMS4zMkExLjY2LDEuNjYsMCwwLDAsNi42NSwzM0gyOS4zNkExLjY2''@;'; + put 'put ''LDEuNjYsMCwwLDAsMzEsMzEuMzNWMjIuMDZIMjlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz4nKSxlLkNsclNoYXBlRHJhZ0hhbmRsZT0oMCxhLmNsckljb25TVkcpKCc8Y2lyY2xlIGN4PSIxNSIgY3k9IjEyIiByPSIxLjUiIGNsYXNzPSJjbHItaS1v''@;'; + put 'put ''dXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxjaXJjbGUgY3g9IjE1IiBjeT0iMjQiIHI9IjEuNSIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PGNpcmNsZSBjeD0iMjEiIGN5PSIxMiIgcj0iMS41IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHIt''@;'; + put 'put ''aS1vdXRsaW5lLXBhdGgtMyIgLz48Y2lyY2xlIGN4PSIyMSIgY3k9IjI0IiByPSIxLjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPjxjaXJjbGUgY3g9IjIxIiBjeT0iMTgiIHI9IjEuNSIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1w''@;'; + put 'put ''YXRoLTUiIC8+PGNpcmNsZSBjeD0iMTUiIGN5PSIxOCIgcj0iMS41IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIgLz4nKSxlLkNsclNoYXBlRmlsdGVyMj0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzMsMTFIM2ExLDEsMCwwLDAsMCwySDMzYTEsMSww''@;'; + put 'put ''LDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbjxwYXRoIGQ9Ik0yOCwxN0g4YTEsMSwwLDAsMCwwLDJIMjhhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuPHBhdGggZD0i''@;'; + put 'put ''TTIzLDIzSDEzYTEsMSwwLDAsMCwwLDJIMjNhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPicpLGUuQ2xyU2hhcGVNb29uPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMSwyNy4xOWExLDEsMCwwLDAtMS0uNTZjLS4yOCww''@;'; + put 'put ''LS41NiwwLS44NSwwQTExLDExLDAsMCwxLDI0LjkyLDUuNjFhMSwxLDAsMCwwLC42MS0xLDEsMSwwLDAsMC0uNjctLjkxLDE0LjcsMTQuNywwLDAsMC01LS44NywxNS4xMiwxNS4xMiwwLDAsMCwwLDMwLjI0LDE0Ljc4LDE0Ljc4LDAsMCwwLDExLTQuODFBMSwxLDAsMCwwLDMxLDI3LjE5Wk0x''@;'; + put 'put ''OS44OSwzMS4xMmExMy4xMiwxMy4xMiwwLDAsMSwwLTI2LjI0LDExLjgxLDExLjgxLDAsMCwxLDIsLjE2LDEzLDEzLDAsMCwwLDUuNzIsMjMuNTNBMTIuNzUsMTIuNzUsMCwwLDEsMTkuODksMzEuMTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbjxw''@;'; + put 'put ''YXRoIGQ9Ik0yOS4yLDI2LjcyQTEyLjA3LDEyLjA3LDAsMCwxLDIyLjksNC40NCwxMy42OCwxMy42OCwwLDAsMCwxOS40OSw0YTE0LDE0LDAsMCwwLDAsMjgsMTMuODIsMTMuODIsMCwwLDAsMTAuOS01LjM0QTExLjcxLDExLjcxLDAsMCwxLDI5LjIsMjYuNzJaIiBjbGFzcz0iY2xyLWktc29s''@;'; + put 'put ''aWQgY2xyLWktc29saWQtcGF0aC0xIiAvPicpLGUuQ2xyU2hhcGVTdW49KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE4LDYuMzFhMSwxLDAsMCwwLDEtMVYxLjkxYTEsMSwwLDAsMC0yLDB2My40QTEsMSwwLDAsMCwxOCw2LjMxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0''@;'; + put 'put ''bGluZS1wYXRoLTEiIC8+XG48cGF0aCBkPSJNMTgsMjkuNjlhMSwxLDAsMCwwLTEsMXYzLjRhMSwxLDAsMCwwLDIsMHYtMy40QTEsMSwwLDAsMCwxOCwyOS42OVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuPHBhdGggZD0iTTguMzIsOS43NEExLDEs''@;'; + put 'put ''MCwwLDAsOSwxMGExLDEsMCwwLDAsLjcxLS4yOSwxLDEsMCwwLDAsMC0xLjQyTDcuMzMsNS45MkExLDEsMCwwLDAsNS45Miw3LjMzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+PHBhdGggZD0iTTI3LjY4LDI2LjI2YTEsMSwwLDEsMC0xLjQyLDEuNDJs''@;'; + put 'put ''Mi40MSwyLjRhMSwxLDAsMCwwLC43MS4zLDEsMSwwLDAsMCwuNy0uMywxLDEsMCwwLDAsMC0xLjQxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+PHBhdGggZD0iTTYuMzEsMThhMSwxLDAsMCwwLTEtMUgxLjkxYTEsMSwwLDAsMCwwLDJoMy40QTEsMSww''@;'; + put 'put ''LDAsMCw2LjMxLDE4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIC8+PHBhdGggZD0iTTM0LjA5LDE3aC0zLjRhMSwxLDAsMSwwLDAsMmgzLjRhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02IiAvPjxw''@;'; + put 'put ''YXRoIGQ9Ik04LjMyLDI2LjI2bC0yLjQsMi40MWExLDEsMCwwLDAsLjcsMS43MSwxLDEsMCwwLDAsLjcxLS4zbDIuNDEtMi40YTEsMSwwLDEsMC0xLjQyLTEuNDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNyIgLz48cGF0aCBkPSJNMjcsMTBhMSwxLDAsMCww''@;'; + put 'put ''LC43MS0uMjlsMi40LTIuNDFhMSwxLDAsMCwwLDAtMS40MSwxLDEsMCwwLDAtMS40MSwwbC0yLjQxLDIuNGExLDEsMCwwLDAsMCwxLjQyQTEsMSwwLDAsMCwyNywxMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC04IiAvPjxwYXRoIGQ9Ik0xOC4xMyw3Ljc1YTEw''@;'; + put 'put ''LjEzLDEwLjEzLDAsMSwwLDEwLDEwLjEzQTEwLjA4LDEwLjA4LDAsMCwwLDE4LjEzLDcuNzVabTAsMTguMjVhOC4xMyw4LjEzLDAsMSwxLDgtOC4xMkE4LjA4LDguMDgsMCwwLDEsMTguMTMsMjZaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtOSIgLz48cGF0aCBk''@;'; + put 'put ''PSJNMTgsNi40MmExLDEsMCwwLDAsMS0xVjEuOTFhMSwxLDAsMCwwLTIsMFY1LjQyQTEsMSwwLDAsMCwxOCw2LjQyWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz48cGF0aCBkPSJNMTgsMjkuNThhMSwxLDAsMCwwLTEsMXYzLjUxYTEsMSwwLDAsMCwyLDBWMzAu''@;'; + put 'put ''NThBMSwxLDAsMCwwLDE4LDI5LjU4WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz48cGF0aCBkPSJNOC40LDkuODFBMSwxLDAsMCwwLDkuODEsOC40TDcuMzMsNS45MkExLDEsMCwwLDAsNS45Miw3LjMzWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlk''@;'; + put 'put ''LXBhdGgtMyIgLz48cGF0aCBkPSJNMjcuNiwyNi4xOWExLDEsMCwwLDAtMS40MSwxLjQxbDIuNDgsMi40OGExLDEsMCwwLDAsMS40MS0xLjQxWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNCIgLz48cGF0aCBkPSJNNi40MiwxOGExLDEsMCwwLDAtMS0xSDEuOTFhMSwx''@;'; + put 'put ''LDAsMCwwLDAsMkg1LjQyQTEsMSwwLDAsMCw2LjQyLDE4WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNSIgLz48cGF0aCBkPSJNMzQuMDksMTdIMzAuNThhMSwxLDAsMCwwLDAsMmgzLjUxYTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29s''@;'; + put 'put ''aWQtcGF0aC02IiAvPjxwYXRoIGQ9Ik04LjQsMjYuMTksNS45MiwyOC42N2ExLDEsMCwwLDAsMS40MSwxLjQxTDkuODEsMjcuNkExLDEsMCwwLDAsOC40LDI2LjE5WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNyIgLz48cGF0aCBkPSJNMjcuNiw5LjgxbDIuNDgtMi40''@;'; + put 'put ''OGExLDEsMCwwLDAtMS40MS0xLjQxTDI2LjE5LDguNEExLDEsMCwwLDAsMjcuNiw5LjgxWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtOCIgLz48Y2lyY2xlIGN4PSIxOCIgY3k9IjE4IiByPSIxMCIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtOSIg''@;'; + put 'put ''Lz4nKSxlLkNsclNoYXBlV2FuZD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTM0LjEsNCwzMS43MSwxLjZhMS44MywxLjgzLDAsMCwwLTEuMzEtLjU0aDBhMi4wNSwyLjA1LDAsMCwwLTEuNDUuNjJMMS43Niwy''@;'; + put 'put ''OS4yM0EyLDIsMCwwLDAsMS42OCwzMmwyLjQsMi40M0ExLjgzLDEuODMsMCwwLDAsNS4zOSwzNWgwYTIuMDUsMi4wNSwwLDAsMCwxLjQ1LS42MkwzNCw2Ljc5QTIsMiwwLDAsMCwzNC4xLDRaTTUuNDIsMzIuOTMsMy4xNiwzMC42NWgwTDI0LjExLDkuNDNsMi4yNSwyLjI4Wk0zMi42MSw1LjM5''@;'; + put 'put ''bC01LjEyLDUuMThMMjUuMjQsOC4yOWw1LjEzLTUuMiwyLjI1LDIuMjhaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTMyLjUzLDIwLjQ3bDIuMDktMi4wOWEuOC44LDAsMCwwLTEuMTMtMS4xM2wtMi4wOSwyLjA5''@;'; + put 'put ''LTIuMDktMi4wOWEuOC44LDAsMCwwLTEuMTMsMS4xM2wyLjA5LDIuMDktMi4wOSwyLjA5YS44LjgsMCwwLDAsMS4xMywxLjEzbDIuMDktMi4wOSwyLjA5LDIuMDlhLjguOCwwLDAsMCwxLjEzLTEuMTNaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1v''@;'; + put 'put ''dXRsaW5lLXBhdGgtMyIgZD0iTTE0Ljc4LDYuNTFhLjguOCwwLDAsMCwxLjEzLDBMMTcuNCw1bDEuNDksMS40OUEuOC44LDAsMCwwLDIwLDUuMzhMMTguNTQsMy44OSwyMCwyLjRhLjguOCwwLDAsMC0xLjEzLTEuMTNMMTcuNCwyLjc2LDE1LjkxLDEuMjdBLjguOCwwLDEsMCwxNC43OCwyLjRs''@;'; + put 'put ''MS40OSwxLjQ5TDE0Ljc4LDUuMzhBLjguOCwwLDAsMCwxNC43OCw2LjUxWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIGQ9Ik04LjMzLDE1LjI2YS44LjgsMCwwLDAsMS4xMywwbDEuMTYtMS4xNiwxLjE2LDEuMTZhLjgu''@;'; + put 'put ''OCwwLDEsMCwxLjEzLTEuMTNMMTEuNzYsMTNsMS4xNi0xLjE2YS44LjgsMCwxLDAtMS4xMy0xLjEzbC0xLjE2LDEuMTZMOS40NiwxMC42OGEuOC44LDAsMSwwLTEuMTMsMS4xM0w5LjQ5LDEzLDguMzMsMTQuMTNBLjguOCwwLDAsMCw4LjMzLDE1LjI2WiIvPicpLGUuQ2xyU2hhcGVDdXJzb3JN''@;'; + put 'put ''b3ZlPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yOC44NSwxMi44OWExLDEsMCwwLDAtMS40MiwwLDEsMSwwLDAsMCwwLDEuNDFMMzAuMTQsMTdIMTlWNS44NmwyLjY5LDIuN2ExLDEsMCwwLDAsMS40MSwwLDEsMSwwLDAsMCwwLTEuNDJMMTgsMiwxMi44OSw3LjE1YTEsMSwwLDAsMC0u''@;'; + put 'put ''MjkuNzEsMSwxLDAsMCwwLDEuNzEuN0wxNyw1Ljg2VjE3SDUuODZsMi43LTIuNjlhMSwxLDAsMCwwLDAtMS40MSwxLDEsMCwwLDAtMS40MiwwTDIsMThsNS4xNCw1LjExYTEsMSwwLDAsMCwuNzEuMjksMSwxLDAsMCwwLC43LTEuNzFMNS44NiwxOUgxN1YzMC4xNGwtMi42OS0yLjdhMSwxLDAs''@;'; + put 'put ''MCwwLTEuNzEuNywxLDEsMCwwLDAsLjI5LjcxTDE4LDM0bDUuMTEtNS4xNGExLDEsMCwwLDAsMC0xLjQyLDEsMSwwLDAsMC0xLjQxLDBMMTksMzAuMTRWMTlIMzAuMTRsLTIuNywyLjY5YTEsMSwwLDAsMCwuNywxLjcxLDEsMSwwLDAsMCwuNzEtLjI5TDM0LDE4WiIgY2xhc3M9ImNsci1pLW91''@;'; + put 'put ''dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+JyksZS5DbHJTaGFwZUNsb25lPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik02LDZIMjJ2NGgyVjZhMiwyLDAsMCwwLTItMkg2QTIsMiwwLDAsMCw0LDZWMjJhMiwyLDAsMCwwLDIsMmg0VjIySDZaIiBjbGFzcz0iY2xyLWktb3V0bGlu''@;'; + put 'put ''ZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMzAsMTJIMTRhMiwyLDAsMCwwLTIsMlYzMGEyLDIsMCwwLDAsMiwySDMwYTIsMiwwLDAsMCwyLTJWMTRBMiwyLDAsMCwwLDMwLDEyWm0wLDE4SDE0VjE0SDMwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1w''@;'; + put 'put ''YXRoLTIiIC8+PHBvbHlnb24gcG9pbnRzPSIyMSAyOCAyMyAyOCAyMyAyMyAyOCAyMyAyOCAyMSAyMyAyMSAyMyAxNiAyMSAxNiAyMSAyMSAxNiAyMSAxNiAyMyAyMSAyMyAyMSAyOCIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+PHBhdGggZD0iTTI0LDEw''@;'; + put 'put ''VjZhMiwyLDAsMCwwLTItMkg2QTIsMiwwLDAsMCw0LDZWMjJhMiwyLDAsMCwwLDIsMmg0VjEyYTIsMiwwLDAsMSwyLTJaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0zMCwxMkgxNGEyLDIsMCwwLDAtMiwyVjMwYTIsMiwwLDAsMCwyLDJIMzBh''@;'; + put 'put ''MiwyLDAsMCwwLDItMlYxNEEyLDIsMCwwLDAsMzAsMTJaTTI4LDIzSDIzdjVIMjFWMjNIMTZWMjFoNVYxNmgydjVoNVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+JyksZS5DbHJTaGFwZURldGFpbHM9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMyLDZI''@;'; + put 'put ''NEEyLDIsMCwwLDAsMiw4VjI4YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlY4QTIsMiwwLDAsMCwzMiw2Wm0wLDIySDRWOEgzMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik05LDE0SDI3YTEsMSwwLDAsMCwwLTJIOWExLDEs''@;'; + put 'put ''MCwwLDAsMCwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTksMThIMjdhMSwxLDAsMCwwLDAtMkg5YTEsMSwwLDAsMCwwLDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz48cGF0aCBkPSJNOSwy''@;'; + put 'put ''MkgxOWExLDEsMCwwLDAsMC0ySDlhMSwxLDAsMCwwLDAsMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPjxwYXRoIGQ9Ik0zMiw2SDRBMiwyLDAsMCwwLDIsOFYyOGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWOEEyLDIsMCwwLDAsMzIsNlpN''@;'; + put 'put ''MTksMjJIOWExLDEsMCwwLDEsMC0ySDE5YTEsMSwwLDAsMSwwLDJabTgtNEg5YTEsMSwwLDAsMSwwLTJIMjdhMSwxLDAsMCwxLDAsMlptMC00SDlhMSwxLDAsMCwxLDAtMkgyN2ExLDEsMCwwLDEsMCwyWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz4nKSxlLkNs''@;'; + put 'put ''clNoYXBlRHJhZ0hhbmRsZUNvcm5lcj0oMCxhLmNsckljb25TVkcpKCc8Y2lyY2xlIGN4PSIxMiIgY3k9IjI0IiByPSIxLjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxjaXJjbGUgY3g9IjE4IiBjeT0iMjQiIHI9IjEuNSIgY2xhc3M9ImNsci1pLW91''@;'; + put 'put ''dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PGNpcmNsZSBjeD0iMTgiIGN5PSIxOCIgcj0iMS41IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz48Y2lyY2xlIGN4PSIyNCIgY3k9IjEyIiByPSIxLjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1p''@;'; + put 'put ''LW91dGxpbmUtcGF0aC00IiAvPjxjaXJjbGUgY3g9IjI0IiBjeT0iMjQiIHI9IjEuNSIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIC8+PGNpcmNsZSBjeD0iMjQiIGN5PSIxOCIgcj0iMS41IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBh''@;'; + put 'put ''dGgtNiIgLz4nKSxlLkNsclNoYXBlRXJhc2VyPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zNS42MiwxMmEyLjgyLDIuODIsMCwwLDAtLjg0LTJMMjcuNDksMi42NWEyLjksMi45LDAsMCwwLTQsMEwyLjgzLDIzLjI4YTIuODQsMi44NCwwLDAsMCwwLDRMNy41MywzMkgzYTEsMSwwLDAs''@;'; + put 'put ''MCwwLDJIMjhhMSwxLDAsMCwwLDAtMkgxNi43NGwxOC0xOEEyLjgyLDIuODIsMCwwLDAsMzUuNjIsMTJaTTEzLjkxLDMySDEwLjM2TDQuMjUsMjUuODlhLjg0Ljg0LDAsMCwxLDAtMS4xOWw1LjUxLTUuNTIsOC40OSw4LjQ4Wk0zMy4zNywxMi41NCwxOS42NiwyNi4yNWwtOC40OC04LjQ5LDEz''@;'; + put 'put ''LjctMTMuN2EuODYuODYsMCwwLDEsMS4xOSwwbDcuMyw3LjI5YS44Ni44NiwwLDAsMSwuMjUuNkEuODIuODIsMCwwLDEsMzMuMzcsMTIuNTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMjgsMzJIMTUuMzNMMTksMjguMzdsLTkuOS05''@;'; + put 'put ''LjlMMy41NCwyNGExLjgzLDEuODMsMCwwLDAsMCwyLjZMOSwzMkgzYTEsMSwwLDAsMCwwLDJIMjhhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+PHBhdGggZD0iTTM0LjA4LDEwLjY1bC03LjMtNy4zYTEuODMsMS44MywwLDAsMC0yLjYs''@;'; + put 'put ''MEwxMC40NywxNy4wNmw5LjksOS45TDM0LjA4LDEzLjI1QTEuODUsMS44NSwwLDAsMCwzNC4wOCwxMC42NVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+JyksZS5DbHJTaGFwZUxhbmRzY2FwZT0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzIsNkg0QTIs''@;'; + put 'put ''MiwwLDAsMCwyLDhWMjhhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjhBMiwyLDAsMCwwLDMyLDZabTAsMjJINFY4SDMyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTksMjJhLjgyLjgyLDAsMCwwLC41NS0uMjEuOC44LDAs''@;'; + put 'put ''MCwwLDAtMS4xM0w3LjgzLDE4LjhIMjguMTdsLTEuNzIsMS44NmEuOC44LDAsMCwwLDAsMS4xM0EuODIuODIsMCwwLDAsMjcsMjJhLjc4Ljc4LDAsMCwwLC41OC0uMjZMMzEuMDksMThsLTMuNDctMy43NGEuNzkuNzksMCwwLDAtMS4xMywwLC44LjgsMCwwLDAsMCwxLjEzbDEuNzIsMS44Nkg3''@;'; + put 'put ''LjgzbDEuNzItMS44NmEuOC44LDAsMCwwLDAtMS4xMy43OS43OSwwLDAsMC0xLjEzLDBMNC45MSwxOGwzLjQ3LDMuNzRBLjc4Ljc4LDAsMCwwLDksMjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMzIsNkg0QTIsMiwwLDAsMCwyLDhW''@;'; + put 'put ''MjhhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjhBMiwyLDAsMCwwLDMyLDZaTTI3Ljc3LDIxLjg4YTEsMSwwLDAsMS0uNzMuMzIsMSwxLDAsMCwxLS42OC0uMjcsMSwxLDAsMCwxLS4wNi0xLjQxTDI3LjcxLDE5SDguMjlMOS43LDIwLjUyYTEsMSwwLDAsMS0uMDYsMS40MUExLDEs''@;'; + put 'put ''MCwwLDEsOSwyMi4yYTEsMSwwLDAsMS0uNzMtLjMyTDQuNjQsMThsMy41OS0zLjg4QTEsMSwwLDAsMSw5LjcsMTUuNDhMOC4yOSwxN0gyNy43MUwyNi4zLDE1LjQ4YTEsMSwwLDAsMSwxLjQ3LTEuMzZMMzEuMzYsMThaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAv''@;'; + put 'put ''PicpLGUuQ2xyU2hhcGVQYXN0ZT0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzAsMTJIMjZ2Mmg0djJoMlYxNEEyLDIsMCwwLDAsMzAsMTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cmVjdCB4PSIzMCIgeT0iMTgiIHdpZHRoPSIyIiBoZWln''@;'; + put 'put ''aHQ9IjYiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0zMCwzMEgyOHYyaDJhMiwyLDAsMCwwLDItMlYyNkgzMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0yNCwyMlY2YTIsMiww''@;'; + put 'put ''LDAsMC0yLTJINkEyLDIsMCwwLDAsNCw2VjIyYTIsMiwwLDAsMCwyLDJIMjJBMiwyLDAsMCwwLDI0LDIyWk02LDZIMjJWMjJINloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPjxyZWN0IHg9IjIwIiB5PSIzMCIgd2lkdGg9IjYiIGhlaWdodD0iMiIgY2xh''@;'; + put 'put ''c3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIC8+PHBhdGggZD0iTTE0LDI2SDEydjRhMiwyLDAsMCwwLDIsMmg0VjMwSDE0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIC8+PHBhdGggZD0iTTMwLDEySDI2djJoNHYyaDJWMTRBMiwy''@;'; + put 'put ''LDAsMCwwLDMwLDEyWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz48cmVjdCB4PSIzMCIgeT0iMTgiIHdpZHRoPSIyIiBoZWlnaHQ9IjYiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+PHBhdGggZD0iTTMwLDMwSDI4djJoMmEyLDIs''@;'; + put 'put ''MCwwLDAsMi0yVjI2SDMwWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIgLz48cmVjdCB4PSI0IiB5PSI0IiB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHJ4PSIyIiByeT0iMiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNCIgLz48cmVjdCB4PSIy''@;'; + put 'put ''MCIgeT0iMzAiIHdpZHRoPSI2IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTUiIC8+PHBhdGggZD0iTTE0LDI2SDEydjRhMiwyLDAsMCwwLDIsMmg0VjMwSDE0WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNiIgLz4nKSxlLkNs''@;'; + put 'put ''clNoYXBlUG9ydHJhaXQ9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE1LjM0LDI2LjQ1YS44LjgsMCwwLDAtMS4xMywwLC43OS43OSwwLDAsMCwwLDEuMTNMMTgsMzEuMDlsMy43NC0zLjQ3YS43OS43OSwwLDAsMCwuMDUtMS4xMy44LjgsMCwwLDAtMS4xMywwTDE4LjgsMjguMTdWNy44''@;'; + put 'put ''M2wxLjg2LDEuNzJhLjguOCwwLDEsMCwxLjA4LTEuMTdMMTgsNC45MSwxNC4yNiw4LjM4YS43OS43OSwwLDAsMCwwLDEuMTMuOC44LDAsMCwwLDEuMTMsMEwxNy4yLDcuODNWMjguMTdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMjgs''@;'; + put 'put ''Mkg4QTIsMiwwLDAsMCw2LDRWMzJhMiwyLDAsMCwwLDIsMkgyOGEyLDIsMCwwLDAsMi0yVjRBMiwyLDAsMCwwLDI4LDJabTAsMzBIOFY0SDI4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTI4LDJIOEEyLDIsMCwwLDAsNiw0VjMyYTIs''@;'; + put 'put ''MiwwLDAsMCwyLDJIMjhhMiwyLDAsMCwwLDItMlY0QTIsMiwwLDAsMCwyOCwyWk0yMC41MiwyNi4zYTEsMSwwLDAsMSwxLjM2LDEuNDdMMTgsMzEuMzZsLTMuODgtMy41OWExLDEsMCwwLDEsMS4zNi0xLjQ3TDE3LDI3LjcxVjguMjlMMTUuNDgsOS43YTEsMSwwLDAsMS0xLjM2LTEuNDdMMTgs''@;'; + put 'put ''NC42NGwzLjg4LDMuNTlhMSwxLDAsMCwxLC4wNSwxLjQxLDEsMSwwLDAsMS0uNzMuMzIsMSwxLDAsMCwxLS42OC0uMjZMMTksOC4yOVYyNy43MVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+JyksZS5DbHJTaGFwZVRyZWVWaWV3PSgwLGEuY2xySWNvblNWRyko''@;'; + put 'put ''JzxwYXRoIGQ9Ik0xNSwzMkgxMWExLDEsMCwwLDEtMS0xVjI3YTEsMSwwLDAsMSwxLTFoNGExLDEsMCwwLDEsMSwxdjRBMSwxLDAsMCwxLDE1LDMyWm0tMy0yaDJWMjhIMTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMTUsMTZIMTFh''@;'; + put 'put ''MSwxLDAsMCwwLTEsMXYxLjJINS44VjEySDdhMSwxLDAsMCwwLDEtMVY3QTEsMSwwLDAsMCw3LDZIM0ExLDEsMCwwLDAsMiw3djRhMSwxLDAsMCwwLDEsMUg0LjJWMjkuOGg2LjM2YS44LjgsMCwwLDAsMC0xLjZINS44VjE5LjhIMTBWMjFhMSwxLDAsMCwwLDEsMWg0YTEsMSwwLDAsMCwxLTFW''@;'; + put 'put ''MTdBMSwxLDAsMCwwLDE1LDE2Wk00LDhINnYySDRaTTE0LDIwSDEyVjE4aDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMzQsOWExLDEsMCwwLDAtMS0xSDEwdjJIMzNBMSwxLDAsMCwwLDM0LDlaIiBjbGFzcz0iY2xyLWktb3V0bGlu''@;'; + put 'put ''ZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz48cGF0aCBkPSJNMzMsMThIMTh2MkgzM2ExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+PHBhdGggZD0iTTMzLDI4SDE4djJIMzNhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1v''@;'; + put 'put ''dXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiAvPjxyZWN0IHg9IjEwIiB5PSIyNiIgd2lkdGg9IjYiIGhlaWdodD0iNiIgcng9IjEiIHJ5PSIxIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0xNSwxNkgxMWExLDEsMCwwLDAtMSwxdjEuMkg1''@;'; + put 'put ''LjhWMTJIN2ExLDEsMCwwLDAsMS0xVjdBMSwxLDAsMCwwLDcsNkgzQTEsMSwwLDAsMCwyLDd2NGExLDEsMCwwLDAsMSwxSDQuMlYyOS44SDExYS44LjgsMCwxLDAsMC0xLjZINS44VjE5LjhIMTBWMjFhMSwxLDAsMCwwLDEsMWg0YTEsMSwwLDAsMCwxLTFWMTdBMSwxLDAsMCwwLDE1LDE2WiIg''@;'; + put 'put ''Y2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz48cGF0aCBkPSJNMzMsOEgxMHYySDMzYTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0zMywxOEgxOHYySDMzYTEsMSwwLDAsMCwwLTJaIiBjbGFz''@;'; + put 'put ''cz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC00IiAvPjxwYXRoIGQ9Ik0zMywyOEgxOHYySDMzYTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC01IiAvPicpLGUuQ2xyU2hhcGVDdXJzb3JIYW5kR3JhYj0oMCxhLmNsckljb25TVkcpKCc8''@;'; + put 'put ''cGF0aCBkPSJNMjguMDksOS43NGE0LDQsMCwwLDAtMS4xNi4xOWMtLjE5LTEuMjQtMS41NS0yLjE4LTMuMjctMi4xOEE0LDQsMCwwLDAsMjIuMTMsOCwzLjM3LDMuMzcsMCwwLDAsMTksNi4zYTMuNDUsMy40NSwwLDAsMC0yLjg3LDEuMzIsMy42NSwzLjY1LDAsMCwwLTEuODktLjUxQTMuMDUs''@;'; + put 'put ''My4wNSwwLDAsMCwxMSw5Ljg5di45MWMtMS4wNi40LTQuMTEsMS44LTQuOTEsNC44NHMuMzQsOCwyLjY5LDExLjc4YTI1LjIxLDI1LjIxLDAsMCwwLDUuOSw2LjQxLjkuOSwwLDAsMCwuNTMuMTdIMjUuNTVhLjkyLjkyLDAsMCwwLC41NS0uMTksMTMuMTMsMTMuMTMsMCwwLDAsMy43NS02LjEz''@;'; + put 'put ''QTI1LjgsMjUuOCwwLDAsMCwzMS40MSwxOHYtNS41QTMuMDgsMy4wOCwwLDAsMCwyOC4wOSw5Ljc0Wk0yOS42MSwxOGEyNCwyNCwwLDAsMS0xLjQ3LDkuMTVBMTIuNDYsMTIuNDYsMCwwLDEsMjUuMiwzMi4ySDE1LjQ3YTIzLjc1LDIzLjc1LDAsMCwxLTUuMi01LjcyYy0yLjM3LTMuODYtMy04''@;'; + put 'put ''LjIzLTIuNDgtMTAuMzlBNS43LDUuNywwLDAsMSwxMSwxMi43NnY3LjY1YS45LjksMCwwLDAsMS44LDBWOS44OWMwLS40Ny41OS0xLDEuNDYtMXMxLjQ5LjUyLDEuNDksMXY1LjcyaDEuOFY4LjgxYzAtLjI4LjU4LS43MSwxLjQ2LS43MXMxLjUzLjQ4LDEuNTMuNzV2Ni44OWgxLjhWMTBsLjE3''@;'; + put 'put ''LS4xMmEyLjEsMi4xLDAsMCwxLDEuMTgtLjMyYy45MywwLDEuNS40NCwxLjUuNjhsMCw2LjVIMjdWMTEuODdhMS45MSwxLjkxLDAsMCwxLDEuMTItLjMzYy44NiwwLDEuNTIuNTEsMS41Mi45NFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPicpLGUuQ2xy''@;'; + put 'put ''U2hhcGVDdXJzb3JIYW5kT3Blbj0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzEuNDYsOC41N0EzLjExLDMuMTEsMCwwLDAsMjcsNS43NWEzLjE5LDMuMTksMCwwLDAtNC42Ni0yLjY0LDMuMjksMy4yOSwwLDAsMC02LjQyLS43NiwzLjIzLDMuMjMsMCwwLDAtMS42Ni0uNDZBMy4yNywz''@;'; + put 'put ''LjI3LDAsMCwwLDExLDUuMThWMTcuODRjLTEuMjgtMS42LTIuNTMtMy4xOC0yLjcyLTMuNDVBMy4xOSwzLjE5LDAsMCwwLDUuNTYsMTIuOWEzLjM3LDMuMzcsMCwwLDAtMy40NywzLjQ4QzIuMTgsMTguMTgsNS42NiwyNC41NCw4LDI4YzMuNTQsNS4yNCw2LjkyLDYsNy4wNyw2bC4xOCwwSDI1''@;'; + put 'put ''LjU5YS45Mi45MiwwLDAsMCwuNTUtLjE5LDEzLjEzLDEzLjEzLDAsMCwwLDMuNzUtNi4xM2MxLTMuMDksMS41My03LjUzLDEuNTgtMTMuNTZaTTI4LjE4LDI3LjEyYTEyLjQ2LDEyLjQ2LDAsMCwxLTIuOTQsNS4wOEgxNS4zM2MtLjQ3LS4xNC0zLjA3LTEuMS01Ljg3LTUuMjVTMy45NCwxNy4y''@;'; + put 'put ''NywzLjg5LDE2LjI5YTEuNSwxLjUsMCwwLDEsLjQ1LTEuMTMsMS41MiwxLjUyLDAsMCwxLDEuMTQtLjQ2LDEuNDMsMS40MywwLDAsMSwxLjMyLjcxYy4yOS40MywyLjM2LDMsMy41Nyw0LjUzTDEyLjgsMTguM1Y1LjE4YTEuNDgsMS40OCwwLDEsMSwyLjk1LDBWMTYuMzJoMS44di0xM2ExLjUx''@;'; + put 'put ''LDEuNTEsMCwwLDEsMywwVjE2LjQ1aDEuOFY2YTEuNDMsMS40MywwLDEsMSwyLjg1LDBWMTcuNDRIMjdWOC41NGExLjMzLDEuMzMsMCwwLDEsMi42NSwwdjUuNTVDMjkuNjIsMjAsMjkuMTQsMjQuMjEsMjguMTgsMjcuMTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBh''@;'; + put 'put ''dGgtMSIgLz4nKSxlLkNsclNoYXBlRmlsZVppcD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzAsMzAuMlYxMmwtOC4xLTcuOUg3LjhDNi44LDQuMSw2LDQuOSw2LDZjMCwwLDAsMCwwLDB2MjQuMmMwLDEsMC43LDEuOCwxLjcsMS44YzAsMCwwLjEsMCwwLjEsMGgyMC4zXG5cdFx0YzEs''@;'; + put 'put ''MCwxLjgtMC43LDEuOC0xLjdDMzAsMzAuMywzMCwzMC4yLDMwLDMwLjJ6IE0yMiw2LjZsNS42LDUuNEgyMlY2LjZ6IE0yOCwzMEg3LjlMOCw2aDEydjhoOFYzMHoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0xMiwyNGMwLDEuNywxLjMs''@;'; + put 'put ''MywzLDNzMy0xLjMsMy0zdi00aC02VjI0eiBNMTMuNCwyNHYtMi42aDMuMlYyNGMwLjEsMC45LTAuNiwxLjctMS41LDEuN2MtMC45LDAuMS0xLjctMC42LTEuNy0xLjVcblx0XHRDMTMuNCwyNC4yLDEzLjQsMjQuMSwxMy40LDI0eiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGlu''@;'; + put 'put ''ZS1wYXRoLTIiIC8+PHBhdGggZD0iTTE4LjIsOWMwLTAuNi0wLjQtMS0xLTFIMTV2MmgyLjJDMTcuOCwxMCwxOC4yLDkuNiwxOC4yLDl6IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz48cGF0aCBkPSJNMTIuNywxMGMtMC42LDAtMSwwLjQtMSwxczAuNCwx''@;'; + put 'put ''LDEsMUgxNXYtMkgxMi43eiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+PHBhdGggZD0iTTE3LjIsMTRjMC42LDAsMS0wLjQsMS0xcy0wLjQtMS0xLTFIMTV2MkgxNy4yeiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIC8+''@;'; + put 'put ''PHBhdGggZD0iTTExLjcsMTVjMCwwLjYsMC40LDEsMSwxSDE1di0yaC0yLjNDMTIuMiwxNCwxMS43LDE0LjQsMTEuNywxNXoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02IiAvPjxwYXRoIGQ9Ik0xNy4yLDE4YzAuNiwwLDEtMC40LDEtMXMtMC40LTEtMS0xSDE1''@;'; + put 'put ''djJIMTcuMnoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC03IiAvPjxwYXRoIGQ9Ik0xNSwyNS42YzAuOSwwLDEuNi0wLjcsMS42LTEuNnYtMi42aC0zLjJWMjRDMTMuNCwyNC45LDE0LjEsMjUuNiwxNSwyNS42eiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNv''@;'; + put 'put ''bGlkLXBhdGgtMSIgLz48cGF0aCBkPSJNMjEuOSw0SDcuOEM2LjgsNCw2LDQuOSw2LDUuOXYyNC4yYzAsMSwwLjgsMS45LDEuOCwxLjloMjAuM2MxLDAsMS44LTAuOSwxLjgtMS45VjExLjlMMjEuOSw0eiBNMTgsMjRjMCwxLjctMS4zLDMtMywzXG5cdFx0cy0zLTEuMy0zLTN2LTRoNlYyNHog''@;'; + put 'put ''TTE3LjIsMTJjMC42LDAsMSwwLjQsMSwxcy0wLjQsMS0xLDFIMTV2MmgyLjJjMC42LDAsMSwwLjQsMSwxcy0wLjQsMS0xLDFIMTV2LTJoLTIuMmMtMC42LDAtMS0wLjQtMS0xXG5cdFx0czAuNC0xLDEtMUgxNXYtMmgtMi4yYy0wLjYsMC0xLTAuNC0xLTFzMC40LTEsMS0xSDE1VjhoMi4yYzAu''@;'; + put 'put ''NiwwLDEsMC40LDEsMXMtMC40LDEtMSwxSDE1djJIMTcuMnogTTIxLjksMTJWNi41bDUuNyw1LjVIMjEuOXoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+JyksZS5DbHJTaGFwZUZpbHRlck9mZj0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzQsNi40QzM0''@;'; + put 'put ''LDUuNiwzMy4zLDUsMzIuNSw1SDEwLjNsMiwySDMydjAuNmwtOS42LDkuNmwxLjQsMS40TDMzLjQsOUMzMy44LDguNiwzNCw4LjEsMzQsNy42VjYuNUMzNCw2LjUsMzQsNi40LDM0LDYuNHoiXG5cdFx0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRo''@;'; + put 'put ''IGQ9Ik0yLjcsM2wyLDJoLTFDMi45LDQuOSwyLjEsNS41LDIsNi4zdjEuMWMwLDAuNSwwLjIsMSwwLjYsMS40TDE0LDIwLjJ2MTAuM2wxLjksMC44VjE5LjRMNCw3LjVWN2gyLjdMMjAsMjAuM3YxMi45bDIsMC44XG5cdFx0YzAsMCwwLDAsMC0wLjFWMjIuM2wxMC4xLDEwLjFsMS40LTEuNEw0''@;'; + put 'put ''LjEsMS42TDIuNywzeiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTIzLjksMTguNkwxMC4zLDUuMWgyMi4yQzMzLjMsNSwzNCw1LjYsMzQsNi40YzAsMCwwLDAsMCwwLjF2MS4xYzAsMC41LTAuMiwxLTAuNiwxLjRMMjMuOSwxOC42eiIg''@;'; + put 'put ''Y2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz48cGF0aCBkPSJNMzMuNSwzMUw0LjEsMS42TDIuNiwzbDIuMSwyLjFIMy41QzIuNyw1LDIsNS42LDIsNi40YzAsMCwwLDAsMCwwLjF2MS4xYzAsMC41LDAuMiwxLDAuNiwxLjRMMTQsMjAuNXYxMC4xbDgsMy40VjIyLjRc''@;'; + put 'put ''blx0bDEwLjEsMTAuMUwzMy41LDMxeiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz4nKSxlLkNsclNoYXBlUmVjeWNsZT0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNNi40LDE3LjRjMC4yLDAuMSwwLjMsMC4xLDAuNSwwLjFjMC4yLDAsMC40LTAuMSwwLjUt''@;'; + put 'put ''MC4xbDctNC4xYzAuMy0wLjIsMC41LTAuNSwwLjUtMC45YzAtMC40LTAuMi0wLjctMC41LTAuOUwxMS45LDEwXG5cdFx0TDE0LDYuMmMwLjQtMC43LDEtMS4zLDEuNy0xLjdjMi0xLjEsNC41LTAuMyw1LjYsMS43YzAuMywwLjUsMC45LDAuNiwxLjQsMC4zYzAsMCwwLDAsMC4xLDBjMC40LTAu''@;'; + put 'put ''MywwLjUtMC45LDAuMy0xLjNcblx0XHRjLTAuNi0xLTEuNC0xLjktMi40LTIuNGMtMy0xLjYtNi43LTAuNi04LjMsMi40TDkuNiw5LjljLTAuMywwLjUtMC4xLDEuMSwwLjMsMS40bDIsMS4ybC00LDIuNFY4LjJjMC0wLjYtMC40LTEtMS0xXG5cdFx0QzYuNCw3LjMsNiw3LjcsNiw4LjN2OC4z''@;'; + put 'put ''QzYsMTYuOSw2LjIsMTcuMiw2LjQsMTcuNHoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0zMi4xLDIxbC0zLjUtNi4yYy0wLjEtMC4yLTAuNC0wLjQtMC42LTAuNWMtMC4zLTAuMS0wLjUsMC0wLjgsMC4xbC0yLjIsMS4zVjExbDUuNSwz''@;'; + put 'put ''LjNjMC4xLDAsMC4xLDAuMSwwLjIsMC4xXG5cdFx0YzAuNSwwLjIsMS4xLDAsMS4zLTAuNWMwLjItMC41LDAtMS4xLTAuNS0xLjNsLTctNC4yYy0wLjMtMC4yLTAuNy0wLjItMSwwQzIzLjEsOC41LDIzLDguOCwyMyw5LjJ2OC4zYzAsMC40LDAuMSwwLjgsMC40LDFcblx0XHRjMC4zLDAuMiww''@;'; + put 'put ''LjcsMC4yLDEsMGwyLjktMS43bDMsNS4zYzAuNywxLjMsMC43LDIuOCwwLDQuMWMtMC42LDEuMi0xLjksMS45LTMuMiwxLjloLTAuOWMtMC41LDAtMS4yLDAuNC0xLjIsMVxuXHRcdGMwLjEsMC42LDAuNiwxLDEuMiwxaDAuOWMyLjEsMCw0LTEuMSw1LTIuOUMzMy4yLDI1LjIsMzMuMiwyMi45''@;'; + put 'put ''LDMyLjEsMjF6IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMjIuNCwyOC4ybC03LTQuMmMtMC4zLTAuMi0wLjctMC4yLTEsMGMtMC4zLDAuMi0wLjQsMC41LTAuNCwwLjl2My4zSDkuMWMtMS41LTAuMS0yLjktMC45LTMuNi0yLjNcblx0''@;'; + put 'put ''XHRjLTAuOC0xLjQtMC44LTMuMiwwLTQuNmMwLjMtMC41LDAuMS0xLjEtMC40LTEuNGMtMC41LTAuMy0xLjEtMC4xLTEuNCwwLjRjLTEuMiwyLjEtMS4xLDQuNiwwLjEsNi42QzQuOSwyOC44LDcsMzAsOS4yLDMwSDE1XG5cdFx0YzAuNiwwLDEtMC40LDEtMXYtMi40bDQsMi40bC01LjYsMy4z''@;'; + put 'put ''Yy0wLjMsMC4yLTAuNSwwLjUtMC41LDAuOWMwLDAuNiwwLjUsMSwxLDFjMC4yLDAsMC4zLTAuMSwwLjUtMC4ybDctNC4yXG5cdFx0YzAuMi0wLjEsMC4zLTAuMiwwLjQtMC40QzIzLjEsMjksMjIuOSwyOC40LDIyLjQsMjguMnoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUt''@;'; + put 'put ''cGF0aC0zIiAvPjxwYXRoIGQ9Ik0yMC44LDMuMWMtMy0xLjYtNi43LTAuNi04LjQsMi40bC0yLjIsMy44bC0yLTEuMUM4LjIsOCw4LDgsNy45LDhDNy40LDgsNyw4LjQsNyw4Ljl2Ny4yYzAsMC4zLDAuMSwwLjYsMC40LDAuOFxuXHRcdGMwLjEsMC4xLDAuMywwLjEsMC40LDAuMWMwLjIsMCww''@;'; + put 'put ''LjMsMCwwLjQtMC4xbDYuMy0zLjZjMC4zLTAuMiwwLjQtMC40LDAuNC0wLjhjMC0wLjMtMC4yLTAuNi0wLjQtMC44TDEyLDEwLjNsMi4yLTMuOFxuXHRcdGMwLjQtMC43LDEtMS4zLDEuNy0xLjdjMi0xLjEsNC41LTAuMyw1LjYsMS43YzAuMywwLjUsMC45LDAuNiwxLjQsMC40YzAuNS0wLjMs''@;'; + put 'put ''MC42LTAuOSwwLjQtMS40QzIyLjYsNC41LDIxLjgsMy42LDIwLjgsMy4xeiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz48cGF0aCBkPSJNMzIuMiwyMS4xbC0zLTUuM2wyLjMtMS4zYzAuMy0wLjIsMC40LTAuNCwwLjQtMC44YzAtMC4zLTAuMi0wLjYtMC40LTAu''@;'; + put 'put ''OGwtNi4yLTMuNmMtMC4xLTAuMS0wLjMtMC4xLTAuNC0wLjFcblx0XHRjLTAuNSwwLTAuOSwwLjQtMC45LDAuOXY3LjJjMCwwLjMsMC4yLDAuNiwwLjQsMC44YzAuMSwwLjEsMC4zLDAuMSwwLjQsMC4xYzAuMiwwLDAuMy0wLjEsMC40LTAuMWwyLjItMS4zbDMsNS4zXG5cdFx0YzAuNywxLjIs''@;'; + put 'put ''MC43LDIuOCwwLDRjLTAuNywxLjItMS45LDEuOS0zLjIsMS45aC0wLjljLTAuNiwwLTEsMC40LTEsMWMwLDAuNiwwLjQsMSwxLDFoMC45YzIuMSwwLDQtMS4xLDUtM1xuXHRcdEMzMy4yLDI1LjMsMzMuMiwyMywzMi4yLDIxLjF6IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0''@;'; + put 'put ''aC0yIiAvPjxwYXRoIGQ9Ik0yMS43LDI4LjRsLTYuMi0zLjZjLTAuMS0wLjEtMC4zLTAuMS0wLjQtMC4xYy0wLjUsMC0wLjksMC40LTAuOSwwLjl2Mi42SDkuM2MtMS41LDAtMi45LTAuOC0zLjYtMi4xXG5cdFx0Yy0wLjgtMS40LTAuOC0zLjEsMC00LjVjMC4zLTAuNSwwLjEtMS4xLTAuNC0x''@;'; + put 'put ''LjRjLTAuNS0wLjMtMS4xLTAuMS0xLjQsMC40Yy0xLjIsMi0xLjIsNC41LDAsNi41YzEuMSwxLjksMy4xLDMuMSw1LjQsMy4xaDQuOHYyLjZcblx0XHRjMCwwLjMsMC4yLDAuNiwwLjQsMC44YzAuMSwwLjEsMC4zLDAuMSwwLjQsMC4xYzAuMSwwLDAuMywwLDAuNC0wLjFsNi4zLTMuNmMwLjMt''@;'; + put 'put ''MC4yLDAuNC0wLjQsMC40LTAuOFxuXHRcdEMyMi4xLDI4LjgsMjEuOSwyOC41LDIxLjcsMjguNHoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIC8+JyksZS5DbHJTaGFwZVRyZWU9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMwLjYsMTEuN0MyOS4yLDUuOCwy''@;'; + put 'put ''NCwxLjcsMTgsMS43Yy03LjIsMC0xMyw1LjgtMTMsMTNjMCw2LjgsNS4zLDEyLjQsMTIsMTIuOXY1YzAsMC42LDAuNCwxLDEsMXMxLTAuNCwxLTF2LTV2LTJWMjJcblx0YzAsMCwwLDAsMC0wLjF2LTMuNmw0LjctNC43YzAuNC0wLjQsMC40LTEsMC0xLjRjLTAuNC0wLjQtMS0wLjQtMS40LDBM''@;'; + put 'put ''MTksMTUuNnYtM2wtMy4zLTMuM2MtMC40LTAuNC0xLTAuNC0xLjQsMFxuXHRjLTAuNCwwLjQtMC40LDEsMCwxLjRsMi43LDIuN3Y2LjJsLTMuOC0zLjhjLTAuNC0wLjQtMS0wLjQtMS40LDBjLTAuNCwwLjQtMC40LDEsMCwxLjRsNS4yLDUuMnYzLjJjLTUuNi0wLjUtMTAtNS4yLTEwLTEwLjlc''@;'; + put 'put ''blx0YzAtNi4xLDQuOS0xMSwxMS0xMXMxMSw0LjksMTEsMTFjMCw0LjktMy4zLDkuMi04LDEwLjZ2Mi4xQzI4LDI1LjcsMzIuMywxOC43LDMwLjYsMTEuN3oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0xOCwyQzEwLjgsMS43LDQuOCw3''@;'; + put 'put ''LjMsNC41LDE0LjVDNC4yLDIxLjcsOS44LDI3LjcsMTcsMjh2LTUuMmwtNS4yLTUuMmMtMC40LTAuNC0wLjQtMSwwLTEuNGMwLjQtMC40LDEtMC40LDEuNCwwXG5cdGMwLDAsMCwwLDAsMGwzLjgsMy44di02LjJsLTIuNy0yLjdjLTAuNC0wLjQtMC40LTEsMC0xLjRjMC40LTAuNCwxLTAuNCwx''@;'; + put 'put ''LjQsMGMwLDAsMCwwLDAsMGwzLjMsMy4zdjNsMy4zLTMuM2MwLjQtMC40LDEtMC40LDEuNCwwXG5cdGMwLDAsMCwwLDAsMGMwLjQsMC40LDAuNCwxLDAsMS40TDE5LDE4LjhWMjhjNy4yLTAuMywxMi44LTYuMywxMi41LTEzLjVTMjUuMiwxLjcsMTgsMnoiIGNsYXNzPSJjbHItaS1zb2xpZCBj''@;'; + put 'put ''bHItaS1zb2xpZC1wYXRoLTEiIC8+PHBhdGggZD0iTTE4LDI4Yy0wLjMsMC0wLjYsMC0xLDB2NWMwLDAuNiwwLjQsMSwxLDFzMS0wLjQsMS0xdi01QzE4LjcsMjgsMTguMywyOCwxOCwyOHoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+JyksZS5DbHJTaGFwZUZp''@;'; + put 'put ''c2g9KDAsYS5jbHJJY29uU1ZHKSgnPGNpcmNsZSBjeD0iMTEuNDkiIGN5PSIxNy41IiByPSIxLjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0zMy40OCw5LjI5YTEsMSwwLDAsMC0xLDBjLTMuMzcsMi01LjkxLDUuODEtNi45LDcuNDVM''@;'; + put 'put ''MjQuODUsMThzLTEsMS42Mi0xLDEuNjJjLTEuNzYsMi40OS01LjEsNi4zNi04Ljc5LDYuMzYtNC42NSwwLTguNzUtNi4xNS05Ljg0LTcuOTQsMS4wOS0xLjc5LDUuMTgtNy45NCw5Ljg0LTcuOTQsMy41NCwwLDYuNzcsMy41OCw4LjU4LDYuMDdsLjI4LS40OHMuMzYtLjUxLjkzLTEuMjVDMjIu''@;'; + put 'put ''NzIsMTEuNjQsMTkuMTgsOC4wNiwxNSw4LjA2Yy02LjU5LDAtMTEuNjcsOS4wNy0xMS44OCw5LjQ2TDIuODksMThsLjI3LjQ4Yy4yMS4zOSw1LjI5LDkuNDYsMTEuODgsOS40Niw1LjA2LDAsOS4yMi01LjM0LDExLThDMjYsMjAsMjcuMTgsMTgsMjcuMTgsMThoMGwuMDctLjExYTE4LjA2LDE4''@;'; + put 'put ''LjA2LDAsMCwxLDEuODgtMi43NXMwLDAsMCwwYTIwLjMxLDIwLjMxLDAsMCwxLDIuODYtM1YyMy44OGEyMC45MywyMC45MywwLDAsMS0zLjYxLTRsLS4xNi4yNmgwbC0xLDEuNTlhMTguNzQsMTguNzQsMCwwLDAsNS4yMSw0Ljk1LDEsMSwwLDAsMCwuNS4xNCwxLjEzLDEuMTMsMCwwLDAsLjUt''@;'; + put 'put ''LjEzLDEsMSwwLDAsMCwuNS0uODdWMTAuMTZBMSwxLDAsMCwwLDMzLjQ4LDkuMjlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz4nKSxlLkNsclNoYXBlRm9ybT0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjEsMTJIN2ExLDEsMCwwLDEtMS0xVjdB''@;'; + put 'put ''MSwxLDAsMCwxLDcsNkgyMWExLDEsMCwwLDEsMSwxdjRBMSwxLDAsMCwxLDIxLDEyWk04LDEwSDIwVjcuOTRIOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0yMSwxNC4wOEg3YTEsMSwwLDAsMC0xLDFWMTlhMSwxLDAsMCwwLDEsMUgx''@;'; + put 'put ''OC4zNkwyMiwxNi4zVjE1LjA4QTEsMSwwLDAsMCwyMSwxNC4wOFpNMjAsMThIOFYxNkgyMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0xMS4wNiwzMS41MXYtLjA2bC4zMi0xLjM5SDRWNGgyMFYxNC4yNUwyNiwxMi4zNlYzYTEsMSww''@;'; + put 'put ''LDAsMC0xLTFIM0ExLDEsMCwwLDAsMiwzVjMxYTEsMSwwLDAsMCwxLDFoOEEzLjQ0LDMuNDQsMCwwLDEsMTEuMDYsMzEuNTFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz48cGF0aCBkPSJNMjIsMTkuMTdsLS43OC43OUExLDEsMCwwLDAsMjIsMTkuMTda''@;'; + put 'put ''IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz48cGF0aCBkPSJNNiwyNi45NGExLDEsMCwwLDAsMSwxaDQuODRsLjMtMS4zLjEzLS41NSwwLS4wNUg4VjI0aDYuMzRsMi0ySDdhMSwxLDAsMCwwLTEsMVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91''@;'; + put 'put ''dGxpbmUtcGF0aC01IiAvPjxwYXRoIGQ9Ik0zMy40OSwxNi42NywzMC4xMiwxMy4zYTEuNjEsMS42MSwwLDAsMC0yLjI4LDBoMEwxNC4xMywyNy4wOSwxMywzMS45YTEuNjEsMS42MSwwLDAsMCwxLjI2LDEuOSwxLjU1LDEuNTUsMCwwLDAsLjMxLDAsMS4xNSwxLjE1LDAsMCwwLC4zNywwbDQu''@;'; + put 'put ''ODUtMS4wN0wzMy40OSwxOWExLjYsMS42LDAsMCwwLDAtMi4yN1pNMTguNzcsMzAuOTFsLTMuNjYuODFMMTYsMjguMDksMjYuMjgsMTcuN2wyLjgyLDIuODJaTTMwLjIzLDE5LjM5bC0yLjgyLTIuODJMMjksMTVsMi44NCwyLjg0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGlu''@;'; + put 'put ''ZS1wYXRoLTYiIC8+JyksZS5DbHJTaGFwZUZ1ZWw9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTIwLjEyLDM0SDUuOUEyLjgxLDIuODEsMCwwLDEsMywzMS4xOVY0Ljg2QTIuOSwyLjksMCwwLDEsNiwyLjA3SDIwLjIyQTIuNzIsMi43MiwwLDAsMSwyMyw0Ljg2VjMxLjE5QTIuODIsMi44''@;'; + put 'put ''MiwwLDAsMSwyMC4xMiwzNFpNNS45LDRBLjg3Ljg3LDAsMCwwLDUsNC44NlYzMS4xOWEuODcuODcsMCwwLDAsLjg3Ljg3SDIwLjEyYS45NC45NCwwLDAsMCwuOTUtLjg3VjQuODZBLjk0Ljk0LDAsMCwwLDIwLjEyLDRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgt''@;'; + put 'put ''MSIgLz48cGF0aCBkPSJNMjkuNTMsMzRBMy41LDMuNSwwLDAsMSwyNiwzMC41VjIzYTIsMiwwLDAsMC0yLTJIMjIuNTdhMSwxLDAsMCwxLDAtMkgyNGE0LDQsMCwwLDEsNCw0VjMwLjVhMS41LDEuNSwwLDAsMCwzLDBWMTcuM2wtMy4xMy03QTIuMjksMi4yOSwwLDAsMCwyNS44LDloLS43M2Ex''@;'; + put 'put ''LDEsMCwxLDEsMC0yaC43M2E0LjMsNC4zLDAsMCwxLDMuOTMsMi41NWwzLjIxLDcuMTZhMSwxLDAsMCwxLC4wOS40MVYzMC41QTMuNSwzLjUsMCwwLDEsMjkuNTMsMzRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMTgsOUg4QTEsMSww''@;'; + put 'put ''LDEsMSw4LDdIMThhMSwxLDAsMCwxLDAsMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0xOCwxM0g4QTEsMSwwLDEsMSw4LDExSDE4QTEsMSwwLDEsMSwxOCwxM1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0''@;'; + put 'put ''aC00IiAvPjxwYXRoIGQ9Ik0yNSwxMi4wOGExLDEsMCwwLDEtMS0xdi02YTEsMSwwLDAsMSwyLDB2NkExLDEsMCwwLDEsMjUsMTIuMDhaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgLz4nKSxlLkNsclNoYXBlU25vd2ZsYWtlPSgwLGEuY2xySWNvblNWRyko''@;'; + put 'put ''JzxwYXRoIGQ9Ik0xOC4wNSwzMy42MWExLDEsMCwwLDEtMS0xVjMuMzdhMSwxLDAsMSwxLDEuOTUsMFYzMi42M0ExLDEsMCwwLDEsMTguMDUsMzMuNjFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMTguMDYsMTAuMDcsMTQuNTIsNi41''@;'; + put 'put ''NGExLDEsMCwwLDEsMC0xLjQxLDEsMSwwLDAsMSwxLjQxLDBsMi4xMywyLjEyLDIuMTItMi4xMmExLDEsMCwwLDEsMS40MSwwLDEsMSwwLDAsMSwwLDEuNDFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMjAuODUsMzEuMTdhMSwxLDAs''@;'; + put 'put ''MCwxLS43LS4yOUwxOCwyOC43NiwxNS45LDMwLjg4YTEsMSwwLDAsMS0xLjQxLDAsMSwxLDAsMCwxLDAtMS40MkwxOCwyNS45M2wzLjU0LDMuNTNhMSwxLDAsMCwxLDAsMS40MkExLDEsMCwwLDEsMjAuODUsMzEuMTdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgt''@;'; + put 'put ''MyIgLz48cGF0aCBkPSJNMzAuOTIsMjYuNWExLDEsMCwwLDEtLjUtLjEzbC0yNi0xNUExLDEsMCwwLDEsNC4wNywxMGExLDEsMCwwLDEsMS4zNy0uMzZsMjYsMTVhMSwxLDAsMCwxLS41LDEuODdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz48cGF0aCBk''@;'; + put 'put ''PSJNNiwxNS4zN2ExLDEsMCwwLDEtLjI2LTJsMi45LS43OEw3Ljg0LDkuNzNhMSwxLDAsMSwxLDEuOTMtLjUyTDExLjA3LDE0LDYuMjQsMTUuMzNBLjgyLjgyLDAsMCwxLDYsMTUuMzdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgLz48cGF0aCBkPSJNMjcu''@;'; + put 'put ''MDUsMjcuNTRhMSwxLDAsMCwxLTEtLjc1TDI0LjgsMjJsNC44Mi0xLjNhMSwxLDAsMSwxLC41MiwxLjkzbC0yLjkuNzguNzgsMi45YTEsMSwwLDAsMS0uNzEsMS4yMkEuNzUuNzUsMCwwLDEsMjcuMDUsMjcuNTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIg''@;'; + put 'put ''Lz48cGF0aCBkPSJNNC45NCwyNi41YTEsMSwwLDAsMS0uNS0xLjg3bDI2LTE1YTEsMSwwLDAsMSwxLjM2LjM2LDEsMSwwLDAsMS0uMzYsMS4zN2wtMjYsMTVBMSwxLDAsMCwxLDQuOTQsMjYuNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC03IiAvPjxwYXRoIGQ9''@;'; + put 'put ''Ik04LjgxLDI3LjU0YS43NS43NSwwLDAsMS0uMjYsMCwxLDEsMCwwLDEtLjcxLTEuMjJsLjc4LTIuOS0yLjktLjc4QTEsMSwwLDAsMSw1LDIxLjM4YTEsMSwwLDAsMSwxLjIzLS43MUwxMS4wNywyMmwtMS4zLDQuODJBMSwxLDAsMCwxLDguODEsMjcuNTRaIiBjbGFzcz0iY2xyLWktb3V0bGlu''@;'; + put 'put ''ZSBjbHItaS1vdXRsaW5lLXBhdGgtOCIgLz48cGF0aCBkPSJNMjkuODgsMTUuMzdhLjgyLjgyLDAsMCwxLS4yNiwwTDI0LjgsMTRsMS4yOS00LjgzQTEsMSwwLDEsMSwyOCw5LjczbC0uNzgsMi44OSwyLjkuNzhhMSwxLDAsMCwxLS4yNiwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWkt''@;'; + put 'put ''b3V0bGluZS1wYXRoLTkiIC8+JyksZS5DbHJTaGFwZVRhYmxlPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik04LDM0YTEsMSwwLDAsMS0xLTFWMi45MmExLDEsMCwwLDEsMiwwVjMzQTEsMSwwLDAsMSw4LDM0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEi''@;'; + put 'put ''IC8+PHBhdGggZD0iTTE3LDMzLjkyYTEsMSwwLDAsMS0xLTFWOS4xYTEsMSwwLDEsMSwyLDBWMzIuOTJBMSwxLDAsMCwxLDE3LDMzLjkyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTI2LDM0YTEsMSwwLDAsMS0xLTFWOWExLDEsMCww''@;'; + put 'put ''LDEsMiwwVjMzQTEsMSwwLDAsMSwyNiwzNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0zMy4xMSwxOGgtMjVhMSwxLDAsMSwxLDAtMmgyNWExLDEsMCwxLDEsMCwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1w''@;'; + put 'put ''YXRoLTQiIC8+PHBhdGggZD0iTTMzLjEsMjYuOTRIOC4xQTEsMSwwLDEsMSw4LjEsMjVoMjVhMSwxLDAsMSwxLDAsMS45MloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiAvPjxwYXRoIGQ9Ik0zMyw4LjkySDNBMSwxLDAsMSwxLDMsN0gzM2ExLDEsMCwxLDEs''@;'; + put 'put ''MCwxLjk0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIC8+JyksZS5DbHJTaGFwZVZvbHVtZT0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjUuODgsMzJIMTJhNCw0LDAsMCwxLTQtNFYxMS40NkwyLjMxLDUuNzdhMSwxLDAsMCwxLS4yMi0xLjA5QTEs''@;'; + put 'put ''MSwwLDAsMSwzLDQuMDZIMjguODZhMSwxLDAsMCwxLDEsMVYyOEE0LDQsMCwwLDEsMjUuODgsMzJaTTUuNDMsNmw0LjI4LDQuMzRhLjc1Ljc1LDAsMCwxLC4yMS42M3YxN0EyLjEzLDIuMTMsMCwwLDAsMTIsMzBIMjUuODhBMi4xLDIuMSwwLDAsMCwyOCwyOFY2WiIgY2xhc3M9ImNsci1pLW91''@;'; + put 'put ''dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTMzLDE2YTEsMSwwLDAsMS0xLTFWNkgyOC44NmEuOTIuOTIsMCwwLDEtMS0uOSwxLDEsMCwwLDEsMS0xSDMzYTEsMSwwLDAsMSwxLDFWMTVBMSwxLDAsMCwxLDMzLDE2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWkt''@;'; + put 'put ''b3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTI0LDExSDE4YTEsMSwwLDEsMSwwLTJIMjRhMSwxLDAsMSwxLDAsMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0yNCwxNUgyMWExLDEsMCwxLDEsMC0ySDI0YTEsMSwwLDEsMSwwLDJa''@;'; + put 'put ''IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz48cGF0aCBkPSJNMjQsMTlIMThhMSwxLDAsMSwxLDAtMkgyNGExLDEsMCwxLDEsMCwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIC8+PHBhdGggZD0iTTI0LDI3SDE4YTEs''@;'; + put 'put ''MSwwLDEsMSwwLTJIMjRhMSwxLDAsMSwxLDAsMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02IiAvPjxwYXRoIGQ9Ik0yNCwyM0gyMUExLDEsMCwxLDEsMjEsMjFIMjRBMSwxLDAsMSwxLDI0LDIzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGlu''@;'; + put 'put ''ZS1wYXRoLTciIC8+JyksZS5DbHJTaGFwZUNyb3NzaGFpcnM9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE4LDI5QTExLDExLDAsMSwxLDI5LDE4LDExLDExLDAsMCwxLDE4LDI5Wk0xOCw5YTksOSwwLDEsMCw5LDlBOSw5LDAsMCwwLDE4LDlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBj''@;'; + put 'put ''bHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMTgsMjNhNSw1LDAsMSwxLDUtNUE1LDUsMCwwLDEsMTgsMjNabTAtOGEzLDMsMCwxLDAsMywzQTMsMywwLDAsMCwxOCwxNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0xOCw5''@;'; + put 'put ''YTEsMSwwLDAsMS0xLTFWMi44YTEsMSwwLDAsMSwyLDBWOEExLDEsMCwwLDEsMTgsOVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0xOCwzNGExLDEsMCwwLDEtMS0xVjI4YTEsMSwwLDAsMSwyLDB2NUExLDEsMCwwLDEsMTgsMzRaIiBj''@;'; + put 'put ''bGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz48cGF0aCBkPSJNOCwxOUgzLjE3YTEsMSwwLDAsMSwwLTJIOGExLDEsMCwwLDEsMCwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIC8+PHBhdGggZD0iTTMzLjEsMTlIMjhhMSwx''@;'; + put 'put ''LDAsMCwxLDAtMmg1LjFhMSwxLDAsMCwxLDAsMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02IiAvPicpLGUuQ2xyU2hhcGVDaXJjbGU9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE4LDM0QTE2LDE2LDAsMSwxLDM0LDE4LDE2LDE2LDAsMCwxLDE4LDM0''@;'; + put 'put ''Wk0xOCw0QTE0LDE0LDAsMSwwLDMyLDE4LDE0LDE0LDAsMCwwLDE4LDRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMTgsMzRBMTYsMTYsMCwxLDEsMzQsMTgsMTYsMTYsMCwwLDEsMTgsMzRaIiBjbGFzcz0iY2xyLWktc29saWQgY2xy''@;'; + put 'put ''LWktc29saWQtcGF0aC0xIiAvPicpLGUuQ2xyU2hhcGVEb3RDaXJjbGU9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE4LDExYTcsNywwLDEsMS03LDcsNyw3LDAsMCwxLDctNyIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTE4LDM0''@;'; + put 'put ''QTE2LDE2LDAsMSwxLDM0LDE4LDE2LDE2LDAsMCwxLDE4LDM0Wk0xOCw0QTE0LDE0LDAsMSwwLDMyLDE4LDE0LDE0LDAsMCwwLDE4LDRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz4nKSxlLkNsclNoYXBlQmV0YT0oMCxhLmNsckljb25TVkcpKCc8cGF0''@;'; + put 'put ''aCBkPSJNNy4yMSwxNC4wN2gzYTEuNjEsMS42MSwwLDAsMSwxLjgxLDEuNSwxLjQ0LDEuNDQsMCwwLDEtLjg0LDEuMzQsMS42NywxLjY3LDAsMCwxLDEuMSwxLjUzLDEuNzUsMS43NSwwLDAsMS0yLDEuNjNINy4yMVptMi43MSwyLjQyYy40OCwwLC44Mi0uMjguODItLjY3cy0uMzQtLjY1LS44''@;'; + put 'put ''Mi0uNjVIOC40OXYxLjMyWm0uMiwyLjQ4YS43NS43NSwwLDEsMCwwLTEuNDdIOC40OVYxOVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gIDxwYXRoIGQ9Ik0xNC41NSwxNS4yM3YxLjJoM3YxLjE2aC0zdjEuMzJoMy4zM3YxLjE2SDEzLjI2di02aDQu''@;'; + put 'put ''NjJ2MS4xNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gIDxwYXRoIGQ9Ik0yMC40MSwxNS4yM0gxOC41NFYxNC4wN2g1djEuMTZIMjEuN3Y0Ljg0SDIwLjQxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAg''@;'; + put 'put ''PHBhdGggZD0iTTI4LDE5LjEySDI1LjMybC0uMzguOTVIMjMuNWwyLjQ0LTZoMS40NGwyLjQ1LDZIMjguMzhaTTI3LjU1LDE4bC0uODktMi4xOUwyNS43NywxOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00Ii8+XG4gIDxwYXRoIGQ9Ik04LjA2LDMwYS44NC44''@;'; + put 'put ''NCwwLDAsMS0uMzgtLjA4QTEsMSwwLDAsMSw3LjA2LDI5VjI1aC00YTEsMSwwLDAsMS0xLTFWMTBhMSwxLDAsMCwxLDEtMWgzMGExLDEsMCwwLDEsMSwxVjI0YTEsMSwwLDAsMS0xLDFIMTMuNDhMOC43NywyOS43MUExLDEsMCwwLDEsOC4wNiwzMFptLTQtN2g0YTEsMSwwLDAsMSwxLDF2Mi41''@;'; + put 'put ''OWwzLjMtMy4zYTEsMSwwLDAsMSwuNy0uMjloMTlWMTFoLTI4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiLz5cblxuICA8cG9seWdvbiBwb2ludHM9IjI1LjgsMTggMjcuNSwxOCAyNi43LDE1LjgiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1w''@;'; + put 'put ''YXRoLTEiLz5cblx0PHBhdGggZD0iTTEwLjQsMTcuNWMtMC4xLDAtMC4yLDAtMC4zLDBIOC41VjE5bDEuNiwwYzAuNCwwLjEsMC44LTAuMiwwLjktMC42QzExLjEsMTgsMTAuOCwxNy42LDEwLjQsMTcuNXoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiLz5cblx0PHBh''@;'; + put 'put ''dGggZD0iTTEwLjcsMTUuOGMwLTAuNC0wLjMtMC43LTAuOC0wLjdIOC41djEuM2gxLjRDMTAuNCwxNi41LDEwLjcsMTYuMiwxMC43LDE1Ljh6IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIi8+XG5cdDxwYXRoIGQ9Ik0zMy4xLDloLTMwYy0wLjYsMC0xLDAuNC0xLDF2''@;'; + put 'put ''MTRjMCwwLjYsMC40LDEsMSwxaDR2NGMwLDAuNCwwLjIsMC44LDAuNiwwLjlDNy44LDMwLDcuOSwzMCw4LjEsMzBjMC4zLDAsMC41LTAuMSwwLjctMC4zXG5cdFx0bDQuNy00LjdoMTkuNmMwLjYsMCwxLTAuNCwxLTFWMTBDMzQuMSw5LjQsMzMuNiw5LDMzLjEsOXogTTEwLjQsMjAuMWMtMC4x''@;'; + put 'put ''LDAtMC4xLDAtMC4yLDBINy4ydi02aDNjMC45LTAuMSwxLjcsMC41LDEuOCwxLjRcblx0XHRjMCwwLDAsMC4xLDAsMC4xYzAsMC42LTAuMywxLjEtMC44LDEuM2MwLjYsMC4yLDEuMSwwLjgsMS4xLDEuNUMxMi4yLDE5LjQsMTEuNCwyMC4xLDEwLjQsMjAuMXogTTE3LjksMTUuMmgtMy4zdjEu''@;'; + put 'put ''MmgzdjEuMmgtM3YxLjNcblx0XHRoMy4zdjEuMmgtNC42di02aDQuNlYxNS4yeiBNMjEuNywyMC4xaC0xLjN2LTQuOGgtMS45di0xLjJoNXYxLjJoLTEuOFYyMC4xeiBNMjguNCwyMC4xbC0wLjQtMWgtMi43bC0wLjQsMWgtMS40bDIuNC02aDEuNGwyLjUsNlxuXHRcdEgyOC40eiIgY2xhc3M9''@;'; + put 'put ''ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNCIvPlxuJyksZS5DbHJTaGFwZUZpcnN0QWlkPSgwLGEuY2xySWNvblNWRykoJ1xuICA8cGF0aCBkPSJNMzIsNkgyMy45MVY0LjVBMi41LDIuNSwwLDAsMCwyMS40MSwyaC03YTIuNSwyLjUsMCwwLDAtMi41LDIuNVY2SDRBMiwyLDAsMCww''@;'; + put 'put ''LDIsOFYyOGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWOEEyLDIsMCwwLDAsMzIsNlpNMTMuOTEsNC41YS41LjUsMCwwLDEsLjUtLjVoN2EuNS41LDAsMCwxLC41LjVWNmgtOFpNNCwyOFY4SDMyVjI4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEi''@;'; + put 'put ''Lz5cbiAgPHBhdGggZD0iTTIwLjE1LDI1LjJIMTYuNzRhMS4zLDEuMywwLDAsMS0xLjMtMS4zVjIxLjJoLTIuN2ExLjMsMS4zLDAsMCwxLTEuMy0xLjNWMTYuNWExLjMsMS4zLDAsMCwxLDEuMy0xLjNoMi43VjEyLjVhMS4zLDEuMywwLDAsMSwxLjMtMS4zaDMuNDFhMS4zLDEuMywwLDAsMSwx''@;'; + put 'put ''LjI5LDEuM3YyLjdoMi43MWExLjMsMS4zLDAsMCwxLDEuMjksMS4zdjMuNGExLjMsMS4zLDAsMCwxLTEuMjksMS4zSDIxLjQ0djIuN0ExLjMsMS4zLDAsMCwxLDIwLjE1LDI1LjJaTTE3LDIzLjZoMi44MXYtNGg0VjE2LjhoLTR2LTRIMTd2NEgxM3YyLjhoNFptNy4xMS02LjhaIiBjbGFzcz0i''@;'; + put 'put ''Y2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuXG4gIDxwYXRoIGQ9Ik0zMiw2SDIzLjkxVjQuNUEyLjUsMi41LDAsMCwwLDIxLjQxLDJoLTdhMi41LDIuNSwwLDAsMC0yLjUsMi41VjZINEEyLDIsMCwwLDAsMiw4VjI4YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDIt''@;'; + put 'put ''MlY4QTIsMiwwLDAsMCwzMiw2Wk0xMy45MSw0LjVhLjUuNSwwLDAsMSwuNS0uNWg3YS41LjUsMCwwLDEsLjUuNVY2aC04Wk0yNC42NCwxOS45YS41LjUsMCwwLDEtLjUuNWgtMy41djMuNWEuNS41LDAsMCwxLS41LjVoLTMuNGEuNS41LDAsMCwxLS41LS41VjIwLjRoLTMuNWEuNS41LDAsMCwx''@;'; + put 'put ''LS41LS41VjE2LjVhLjUuNSwwLDAsMSwuNS0uNWgzLjVWMTIuNWEuNS41LDAsMCwxLC41LS41aDMuNGEuNS41LDAsMCwxLC41LjVWMTZoMy41YS41LjUsMCwwLDEsLjUuNVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgJyksZS5DbHJTaGFwZUNvbG9yUGFs''@;'; + put 'put ''ZXR0ZT0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjEuNTQsMjMuMDVhMy4yMiwzLjIyLDAsMCwxLTMtMS43N0EzLjA1LDMuMDUsMCwwLDEsMTguNSwxOWEzLjc0LDMuNzQsMCwwLDEsMS45NS0yLjA2QTMuNCwzLjQsMCwwLDEsMjUsMTguM2EzLDMsMCwwLDEsLjA4LDIuMzIsMy42OSwz''@;'; + put 'put ''LjY5LDAsMCwxLTIsMi4wN0EzLjg1LDMuODUsMCwwLDEsMjEuNTQsMjMuMDVabS41NC00LjkxYTIuNDEsMi40MSwwLDAsMC0xLC4yMWgwQTIuMTMsMi4xMywwLDAsMCwyMCwxOS41MWExLjM3LDEuMzcsMCwwLDAsMCwxLjA5LDEuODEsMS44MSwwLDAsMCwyLjQ1LjYzLDIuMSwyLjEsMCwwLDAs''@;'; + put 'put ''MS4xMi0xLjE1LDEuNCwxLjQsMCwwLDAsMC0xLjFBMS41OSwxLjU5LDAsMCwwLDIyLjA4LDE4LjE0Wm0tMS4yOS0uNTJoMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gIDxwYXRoIGQ9Ik0xNi4xOSwzMy44N0ExMy43MiwxMy43MiwwLDAsMSw2LjQs''@;'; + put 'put ''MzAsMTMuODYsMTMuODYsMCwwLDEsMiwyMGMwLTQuNCwyLTguODQsNS42OC0xMi41YTE4LjIsMTguMiwwLDAsMSwxMy4xLTUuMzdoLjEyYzMuMzMsMCw2Ljg1LDEuNDksNy4yNCw0LjczLjIxLDEuNzctLjU5LDMuNDctMS4yOSw1LS41NSwxLjE3LTEuMTEsMi4zOS0uNzIsMi44MXMxLC4xMiwy''@;'; + put 'put ''LjA5LS4yYTYuMjcsNi4yNywwLDAsMSwzLjM4LS4zNiwzLDMsMCwwLDEsMS44NywxLjU2Yy45NCwxLjgzLjQ3LDQuNjctLjIzLDYuNTRoMEExNy4zOCwxNy4zOCwwLDAsMSwyOSwyOC43NCwxOS40MywxOS40MywwLDAsMSwxNi4xOSwzMy44N1pNMjAuNzgsNC4xNkExNi4yMiwxNi4yMiwwLDAs''@;'; + put 'put ''MCw5LjA5LDlDNS43OSwxMi4yMyw0LDE2LjE2LDQsMjBBMTEuOTIsMTEuOTIsMCwwLDAsNy44LDI4LjZjNS4zOCw1LjI1LDE0LjYyLDMuNTUsMTkuODctMS4zM2ExNS41MiwxNS41MiwwLDAsMCwzLjctNS43NWgwYy43LTEuOS44NC0zLjkyLjMyLTQuOTJhMSwxLDAsMCwwLS42MS0uNTUsNC44''@;'; + put 'put ''Niw0Ljg2LDAsMCwwLTIuMjkuMzVjLTEuMzEuMzktMywuODktNC4xMi0uMzUtMS4zMi0xLjQtLjQ2LTMuMjUuMzctNWE3LjkzLDcuOTMsMCwwLDAsMS4xMS0zLjljLS4yNC0yLTIuODEtMi45NS01LjI2LTNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxu''@;'; + put 'put ''ICA8cGF0aCBkPSJNMjMuODcsMjYuNjVBMi41OSwyLjU5LDAsMCwwLDIyLjM1LDI1TDIyLDI0LjlsLS40NiwxLjUzLjE2LDBhMSwxLDAsMCwxLC42LjYxYy4xNy42LS40MSwxLjMxLTEuMjYsMS41NXMtMS43MS0uMDctMS44OC0uNjZsLTEuNTQuNDNoMGEyLjgzLDIuODMsMCwwLDAsMi44NCwx''@;'; + put 'put ''LjkxLDQsNCwwLDAsMCwxLS4xNEEzLDMsMCwwLDAsMjMuODcsMjYuNjVaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIvPlxuICA8cGF0aCBkPSJNMTUuMDcsMjUuNTloMGEyLjczLDIuNzMsMCwwLDAtMi4yNC0xLjg0bC0uMjcsMS41OGExLjEyLDEuMTIsMCww''@;'; + put 'put ''LDEsMSwuN2MuMTcuNTktLjQxLDEuMy0xLjI2LDEuNTRBMS45MiwxLjkyLDAsMCwxLDExLDI3LjUyYTEsMSwwLDAsMS0uNi0uNjFzMC0uMDksMC0uMTNsLTEuNTguMTZhMiwyLDAsMCwwLC4wNi40MUEyLjU5LDIuNTksMCwwLDAsMTAuMzcsMjlhMy4zNiwzLjM2LDAsMCwwLDEuMzEuMjUsMy43''@;'; + put 'put ''LDMuNywwLDAsMCwxLS4xNEEzLDMsMCwwLDAsMTUuMDcsMjUuNTlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIvPlxuICA8cGF0aCBkPSJNMTAuNzgsMTkuMTdhMi41OSwyLjU5LDAsMCwwLTEuNTItMS42NSwyLjkxLDIuOTEsMCwwLDAtLjUtLjE2bC0uMzcs''@;'; + put 'put ''MS41NmExLjIxLDEuMjEsMCwwLDEsLjI1LjA4LDEsMSwwLDAsMSwuNi42Yy4xNy42LS40MSwxLjMxLTEuMjYsMS41NXMtMS43MS0uMDYtMS44OC0uNjZhLjg2Ljg2LDAsMCwxLDAtLjM5bC0xLjU2LS4zNGEyLjQsMi40LDAsMCwwLDAsMS4xNkEyLjgzLDIuODMsMCwwLDAsNy40LDIyLjgzYTQs''@;'; + put 'put ''NCwwLDAsMCwxLS4xNEEzLDMsMCwwLDAsMTAuNzgsMTkuMTdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIvPlxuICA8cGF0aCBkPSJNMTMuNDUsMTEuNGEyLjU5LDIuNTksMCwwLDAtMS41Mi0xLjY1LDEuMTcsMS4xNywwLDAsMC0uMi0uMDZsLS41MiwxLjUx''@;'; + put 'put ''YS4zOC4zOCwwLDAsMSwuMSwwLDEsMSwwLDAsMSwuNi42Yy4xNy42LS40MSwxLjMxLTEuMjYsMS41NWEyLjA2LDIuMDYsMCwwLDEtMS4yOC0uMDUsMSwxLDAsMCwxLS42LS42MS44NS44NSwwLDAsMSwwLS4zMmwtMS41OC0uMTlhMi4zLDIuMywwLDAsMCwuMDYuOTRBMi41NiwyLjU2LDAsMCww''@;'; + put 'put ''LDguNzUsMTQuOGEzLjM3LDMuMzcsMCwwLDAsMS4zMS4yNiw0LDQsMCwwLDAsMS0uMTRBMywzLDAsMCwwLDEzLjQ1LDExLjRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIvPlxuICA8cGF0aCBkPSJNMjEsNi43OGEyLjU2LDIuNTYsMCwwLDAtMS41Mi0xLjY1''@;'; + put 'put ''bC0uMy0uMUwxOC43LDYuNTZsLjE1LDBhMSwxLDAsMCwxLC42LjYxYy4xNy42LS40MSwxLjMtMS4yNiwxLjU0cy0xLjcxLS4wNi0xLjg4LS42NWEuOS45LDAsMCwxLC4wNi0uNThMMTQuODksNi45YTIuNDcsMi40NywwLDAsMC0uMTIsMS42MywyLjg0LDIuODQsMCwwLDAsMi44NCwxLjkxLDMu''@;'; + put 'put ''NTgsMy41OCwwLDAsMCwxLS4xNUEzLDMsMCwwLDAsMjEsNi43OFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC03Ii8+XG5cbiAgPHBhdGggZD0iTTMyLjIzLDE0Ljg5Yy0yLjEtLjU2LTQuOTMsMS44LTYuMzQuMy0xLjcxLTEuODIsMi4yNy01LjUzLDEuODYtOC45''@;'; + put 'put ''Mi0uMzMtMi43OC0zLjUxLTQuMDgtNi42Ni00LjFBMTguNSwxOC41LDAsMCwwLDcuNzQsNy41OWMtNi42NCw2LjU5LTguMDcsMTYtMS4zNywyMi40OCw2LjIxLDYsMTYuNjEsNC4yMywyMi42Ny0xLjRhMTcuNzMsMTcuNzMsMCwwLDAsNC4yMi02LjU0QzM0LjM0LDE5LjIzLDM0LjQ0LDE1LjQ5''@;'; + put 'put ''LDMyLjIzLDE0Ljg5Wk05LjQsMTAuNTdhMi4yMywyLjIzLDAsMCwxLDIuODcsMS4yMSwyLjIyLDIuMjIsMCwwLDEtMS44MSwyLjUzQTIuMjIsMi4yMiwwLDAsMSw3LjU5LDEzLjEsMi4yMywyLjIzLDAsMCwxLDkuNCwxMC41N1pNNS4wNywyMC44MmEyLjIyLDIuMjIsMCwwLDEsMS44Mi0yLjUz''@;'; + put 'put ''QTIuMjIsMi4yMiwwLDAsMSw5Ljc1LDE5LjUsMi4yMywyLjIzLDAsMCwxLDcuOTQsMjIsMi4yNCwyLjI0LDAsMCwxLDUuMDcsMjAuODJabTcsOC4zM2EyLjIyLDIuMjIsMCwwLDEtMi44Ny0xLjIxQTIuMjMsMi4yMywwLDAsMSwxMSwyNS40MWEyLjIzLDIuMjMsMCwwLDEsMi44NywxLjIxQTIu''@;'; + put 'put ''MjIsMi4yMiwwLDAsMSwxMiwyOS4xNVpNMTUsOC4yNmEyLjIzLDIuMjMsMCwwLDEsMS44MS0yLjUzLDIuMjQsMi4yNCwwLDAsMSwyLjg3LDEuMjEsMi4yMiwyLjIyLDAsMCwxLTEuODIsMi41M0EyLjIxLDIuMjEsMCwwLDEsMTUsOC4yNlptNS44MiwyMi4xOWEyLjIyLDIuMjIsMCwwLDEtMi44''@;'; + put 'put ''Ny0xLjIxLDIuMjMsMi4yMywwLDAsMSwxLjgxLTIuNTMsMi4yNCwyLjI0LDAsMCwxLDIuODcsMS4yMUEyLjIyLDIuMjIsMCwwLDEsMjAuNzgsMzAuNDVabTUtMTAuNDZhMy4yLDMuMiwwLDAsMS0xLjY5LDEuNzYsMy41MywzLjUzLDAsMCwxLTEuNC4zLDIuNzgsMi43OCwwLDAsMS0yLjU2LTEu''@;'; + put 'put ''NSwyLjQ5LDIuNDksMCwwLDEtLjA3LTIsMy4yLDMuMiwwLDAsMSwxLjY5LTEuNzYsMywzLDAsMCwxLDQsMS4yQTIuNTQsMi41NCwwLDAsMSwyNS43OSwyMFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz4nKSxlLkVzc2VudGlhbFNoYXBlcz17ImFkZC10ZXh0Ijpl''@;'; + put 'put ''LkNsclNoYXBlQWRkVGV4dCwiYWxhcm0tb2ZmIjplLkNsclNoYXBlQWxhcm1PZmYscGluYm9hcmQ6ZS5DbHJTaGFwZVBpbmJvYXJkLG5ldzplLkNsclNoYXBlTmV3LCJidWJibGUtZXhjbGFtYXRpb24iOmUuQ2xyU2hhcGVCdWJibGVFeGNsYW1hdGlvbiwiZ3JpZC12aWV3IjplLkNsclNoYXBl''@;'; + put 'put ''R3JpZFZpZXcsImN1cnNvci1hcnJvdyI6ZS5DbHJTaGFwZUN1cnNvckFycm93LCJjdXJzb3ItaGFuZCI6ZS5DbHJTaGFwZUN1cnNvckhhbmQsImN1cnNvci1oYW5kLWNsaWNrIjplLkNsclNoYXBlQ3Vyc29ySGFuZENsaWNrLCJjdXJzb3ItaGFuZC1ncmFiIjplLkNsclNoYXBlQ3Vyc29ySGFu''@;'; + put 'put ''ZEdyYWIsImN1cnNvci1oYW5kLW9wZW4iOmUuQ2xyU2hhcGVDdXJzb3JIYW5kT3BlbiwiY3Vyc29yLW1vdmUiOmUuQ2xyU2hhcGVDdXJzb3JNb3ZlLCJmaXJzdC1haWQiOmUuQ2xyU2hhcGVGaXJzdEFpZCxyZXNpemU6ZS5DbHJTaGFwZVJlc2l6ZSxvYmplY3RzOmUuQ2xyU2hhcGVPYmplY3Rz''@;'; + put 'put ''LGJvb2s6ZS5DbHJTaGFwZUJvb2ssYXN0ZXJpc2s6ZS5DbHJTaGFwZUFzdGVyaXNrLGJ1ZzplLkNsclNoYXBlQnVnLHNjaXNzb3JzOmUuQ2xyU2hhcGVTY2lzc29ycyx0aGVybW9tZXRlcjplLkNsclNoYXBlVGhlcm1vbWV0ZXIscGVuY2lsOmUuQ2xyU2hhcGVQZW5jaWwsbm90ZTplLkNsclNo''@;'; + put 'put ''YXBlTm90ZSxyZWZyZXNoOmUuQ2xyU2hhcGVSZWZyZXNoLHN5bmM6ZS5DbHJTaGFwZVN5bmMsInZpZXctbGlzdCI6ZS5DbHJTaGFwZVZpZXdMaXN0LCJ2aWV3LWNhcmRzIjplLkNsclNoYXBlVmlld0NhcmRzLCJ0cmVlLXZpZXciOmUuQ2xyU2hhcGVUcmVlVmlldyxsaWdodGJ1bGI6ZS5DbHJT''@;'; + put 'put ''aGFwZUxpZ2h0YnVsYixkb3dubG9hZDplLkNsclNoYXBlRG93bmxvYWQsdXBsb2FkOmUuQ2xyU2hhcGVVcGxvYWQsbG9jazplLkNsclNoYXBlTG9jayx1bmxvY2s6ZS5DbHJTaGFwZVVubG9jayx1c2VyczplLkNsclNoYXBlVXNlcnMsInBvcC1vdXQiOmUuQ2xyU2hhcGVQb3BPdXQsZmlsdGVy''@;'; + put 'put ''OmUuQ2xyU2hhcGVGaWx0ZXIscGluOmUuQ2xyU2hhcGVQaW4sZmlsZTplLkNsclNoYXBlRmlsZSxwbHVzOmUuQ2xyU2hhcGVQbHVzLG1pbnVzOmUuQ2xyU2hhcGVNaW51cywibWludXMtY2lyY2xlIjplLkNsclNoYXBlTWludXNDaXJjbGUsInBsdXMtY2lyY2xlIjplLkNsclNoYXBlUGx1c0Np''@;'; + put 'put ''cmNsZSxiYW46ZS5DbHJTaGFwZUJhbiwidGltZXMtY2lyY2xlIjplLkNsclNoYXBlVGltZXNDaXJjbGUsdHJhc2g6ZS5DbHJTaGFwZVRyYXNoLGNpcmNsZTplLkNsclNoYXBlQ2lyY2xlLHRhZzplLkNsclNoYXBlVGFnLHRhZ3M6ZS5DbHJTaGFwZVRhZ3MsaGlzdG9yeTplLkNsclNoYXBlSGlz''@;'; + put 'put ''dG9yeSxjbG9jazplLkNsclNoYXBlQ2xvY2ssImFsYXJtLWNsb2NrIjplLkNsclNoYXBlQWxhcm1DbG9jayxhcnJvdzpjLkNsclNoYXBlQXJyb3csImNpcmNsZS1hcnJvdyI6ZS5DbHJTaGFwZUNpcmNsZUFycm93LCJjaGlsZC1hcnJvdyI6ZS5DbHJTaGFwZUNoaWxkQXJyb3csY29weTplLkNs''@;'; + put 'put ''clNoYXBlQ29weSxoZWxwOmUuQ2xyU2hhcGVIZWxwLGxvZ2luOmUuQ2xyU2hhcGVMb2dpbixsb2dvdXQ6ZS5DbHJTaGFwZUxvZ291dCxwcmludGVyOmUuQ2xyU2hhcGVQcmludGVyLHdvcmxkOmUuQ2xyU2hhcGVXb3JsZCxzbGlkZXI6ZS5DbHJTaGFwZVNsaWRlcixjbGlwYm9hcmQ6ZS5DbHJT''@;'; + put 'put ''aGFwZUNsaXBib2FyZCxmaXJld2FsbDplLkNsclNoYXBlRmlyZXdhbGwsbGlzdDplLkNsclNoYXBlTGlzdCxyZWRvOmUuQ2xyU2hhcGVSZWRvLHVuZG86ZS5DbHJTaGFwZVVuZG8sc2Nyb2xsOmUuQ2xyU2hhcGVTY3JvbGwsImZpbGUtc2V0dGluZ3MiOmUuQ2xyU2hhcGVGaWxlU2V0dGluZ3Ms''@;'; + put 'put ''InR3by13YXktYXJyb3dzIjplLkNsclNoYXBlVHdvV2F5QXJyb3dzLHN3aXRjaDplLkNsclNoYXBlU3dpdGNoLHRvb2xzOmUuQ2xyU2hhcGVUb29scywid2luZG93LWNsb3NlIjplLkNsclNoYXBlV2luZG93Q2xvc2UsIndpbmRvdy1tYXgiOmUuQ2xyU2hhcGVXaW5kb3dNYXgsIndpbmRvdy1t''@;'; + put 'put ''aW4iOmUuQ2xyU2hhcGVXaW5kb3dNaW4sIndpbmRvdy1yZXN0b3JlIjplLkNsclNoYXBlV2luZG93UmVzdG9yZSwiem9vbS1pbiI6ZS5DbHJTaGFwZVpvb21Jbiwiem9vbS1vdXQiOmUuQ2xyU2hhcGVab29tT3V0LGtleTplLkNsclNoYXBlS2V5LGxpYnJhcnk6ZS5DbHJTaGFwZUxpYnJhcnks''@;'; + put 'put ''Ym9sdDplLkNsclNoYXBlQm9sdCx3cmVuY2g6ZS5DbHJTaGFwZVdyZW5jaCxidWxsc2V5ZTplLkNsclNoYXBlQnVsbHNleWUsdGFyZ2V0OmUuQ2xyU2hhcGVUYXJnZXQsZmxhbWU6ZS5DbHJTaGFwZUZsYW1lLGhvdXJnbGFzczplLkNsclNoYXBlSG91cmdsYXNzLCJuby1hY2Nlc3MiOmUuQ2xy''@;'; + put 'put ''U2hhcGVOb0FjY2Vzcyxvcmdhbml6YXRpb246ZS5DbHJTaGFwZU9yZ2FuaXphdGlvbixiYWxhbmNlOmUuQ2xyU2hhcGVCYWxhbmNlLCJpZC1iYWRnZSI6ZS5DbHJTaGFwZUlkQmFkZ2UscmVwZWF0OmUuQ2xyU2hhcGVSZXBlYXQsImZpbGUtZ3JvdXAiOmUuQ2xyU2hhcGVGaWxlR3JvdXAscGFw''@;'; + put 'put ''ZXJjbGlwOmUuQ2xyU2hhcGVQYXBlcmNsaXAsc2hyaW5rOmUuQ2xyU2hhcGVTaHJpbmssImFjY2Vzc2liaWxpdHktMSI6ZS5DbHJTaGFwZUFjY2Vzc2liaWxpdHkxLCJhY2Nlc3NpYmlsaXR5LTIiOmUuQ2xyU2hhcGVBY2Nlc3NpYmlsaXR5Miwic29ydC1ieSI6ZS5DbHJTaGFwZVNvcnRCeSwi''@;'; + put 'put ''Y29sbGFwc2UtY2FyZCI6ZS5DbHJTaGFwZUNvbGxhcHNlQ2FyZCwiZXhwYW5kLWNhcmQiOmUuQ2xyU2hhcGVFeHBhbmRDYXJkLGJyaWVmY2FzZTplLkNsclNoYXBlQnJpZWZjYXNlLCJjb2xvci1waWNrZXIiOmUuQ2xyU2hhcGVDb2xvclBpY2tlciwiY29weS10by1jbGlwYm9hcmQiOmUuQ2xy''@;'; + put 'put ''U2hhcGVDb3B5VG9DbGlwYm9hcmQsImZpbHRlci0yIjplLkNsclNoYXBlRmlsdGVyMiwiZHJhZy1oYW5kbGUiOmUuQ2xyU2hhcGVEcmFnSGFuZGxlLG1vb246ZS5DbHJTaGFwZU1vb24sc3VuOmUuQ2xyU2hhcGVTdW4sd2FuZDplLkNsclNoYXBlV2FuZCxjbG9uZTplLkNsclNoYXBlQ2xvbmUs''@;'; + put 'put ''ZGV0YWlsczplLkNsclNoYXBlRGV0YWlscywiZHJhZy1oYW5kbGUtY29ybmVyIjplLkNsclNoYXBlRHJhZ0hhbmRsZUNvcm5lcixlcmFzZXI6ZS5DbHJTaGFwZUVyYXNlcixsYW5kc2NhcGU6ZS5DbHJTaGFwZUxhbmRzY2FwZSxwYXN0ZTplLkNsclNoYXBlUGFzdGUscG9ydHJhaXQ6ZS5DbHJT''@;'; + put 'put ''aGFwZVBvcnRyYWl0LCJmaWxlLXppcCI6ZS5DbHJTaGFwZUZpbGVaaXAsImZpbHRlci1vZmYiOmUuQ2xyU2hhcGVGaWx0ZXJPZmYscmVjeWNsZTplLkNsclNoYXBlUmVjeWNsZSx0cmVlOmUuQ2xyU2hhcGVUcmVlLGZpc2g6ZS5DbHJTaGFwZUZpc2gsZm9ybTplLkNsclNoYXBlRm9ybSxmdWVs''@;'; + put 'put ''OmUuQ2xyU2hhcGVGdWVsLHNub3dmbGFrZTplLkNsclNoYXBlU25vd2ZsYWtlLHRhYmxlOmUuQ2xyU2hhcGVUYWJsZSwiZG90LWNpcmNsZSI6ZS5DbHJTaGFwZURvdENpcmNsZSx2b2x1bWU6ZS5DbHJTaGFwZVZvbHVtZSxjcm9zc2hhaXJzOmUuQ2xyU2hhcGVDcm9zc2hhaXJzLGJldGE6ZS5D''@;'; + put 'put ''bHJTaGFwZUJldGEsImNvbG9yLXBhbGV0dGUiOmUuQ2xyU2hhcGVDb2xvclBhbGV0dGV9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLkVzc2VudGlhbFNoYXBlcywiZWRpdCIsKDAsci5kZXNjcmlwdG9yQ29uZmlnKShlLkVzc2VudGlhbFNoYXBlcy5wZW5jaWwpKSxPYmplY3QuZGVmaW5lUHJv''@;'; + put 'put ''cGVydHkoZS5Fc3NlbnRpYWxTaGFwZXMsIm5vdGUtZWRpdCIsKDAsci5kZXNjcmlwdG9yQ29uZmlnKShlLkVzc2VudGlhbFNoYXBlcy5ub3RlKSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUuRXNzZW50aWFsU2hhcGVzLCJncm91cCIsKDAsci5kZXNjcmlwdG9yQ29uZmlnKShlLkVzc2VudGlh''@;'; + put 'put ''bFNoYXBlcy51c2VycykpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLkVzc2VudGlhbFNoYXBlcywiZG9jdW1lbnQiLCgwLHIuZGVzY3JpcHRvckNvbmZpZykoZS5Fc3NlbnRpYWxTaGFwZXMuZmlsZSkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLkVzc2VudGlhbFNoYXBlcywiYWRkIiwoMCxy''@;'; + put 'put ''LmRlc2NyaXB0b3JDb25maWcpKGUuRXNzZW50aWFsU2hhcGVzLnBsdXMpKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5Fc3NlbnRpYWxTaGFwZXMsImNhbmNlbCIsKDAsci5kZXNjcmlwdG9yQ29uZmlnKShlLkVzc2VudGlhbFNoYXBlcy5iYW4pKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5F''@;'; + put 'put ''c3NlbnRpYWxTaGFwZXMsInJlbW92ZSIsKDAsci5kZXNjcmlwdG9yQ29uZmlnKShlLkVzc2VudGlhbFNoYXBlc1sidGltZXMtY2lyY2xlIl0pKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5Fc3NlbnRpYWxTaGFwZXMsInNpZ24taW4iLCgwLHIuZGVzY3JpcHRvckNvbmZpZykoZS5Fc3NlbnRp''@;'; + put 'put ''YWxTaGFwZXMubG9naW4pKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5Fc3NlbnRpYWxTaGFwZXMsInNpZ24tb3V0IiwoMCxyLmRlc2NyaXB0b3JDb25maWcpKGUuRXNzZW50aWFsU2hhcGVzLmxvZ291dCkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLkVzc2VudGlhbFNoYXBlcywibGlnaHRu''@;'; + put 'put ''aW5nIiwoMCxyLmRlc2NyaXB0b3JDb25maWcpKGUuRXNzZW50aWFsU2hhcGVzLmJvbHQpKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5Fc3NlbnRpYWxTaGFwZXMsImZsb3ctY2hhcnQiLCgwLHIuZGVzY3JpcHRvckNvbmZpZykoZS5Fc3NlbnRpYWxTaGFwZXMub3JnYW5pemF0aW9uKSksT2Jq''@;'; + put 'put ''ZWN0LmRlZmluZVByb3BlcnR5KGUuRXNzZW50aWFsU2hhcGVzLCJhbGVydCIsKDAsci5kZXNjcmlwdG9yQ29uZmlnKShlLkVzc2VudGlhbFNoYXBlc1siYnViYmxlLWV4Y2xhbWF0aW9uIl0pKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5Fc3NlbnRpYWxTaGFwZXMsInBpbm5lZCIsKDAsci5k''@;'; + put 'put ''ZXNjcmlwdG9yQ29uZmlnKShlLkVzc2VudGlhbFNoYXBlcy5waW5ib2FyZCkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLkVzc2VudGlhbFNoYXBlcywiYXR0YWNobWVudCIsKDAsci5kZXNjcmlwdG9yQ29uZmlnKShlLkVzc2VudGlhbFNoYXBlcy5wYXBlcmNsaXApKSxPYmplY3QuZGVmaW5l''@;'; + put 'put ''UHJvcGVydHkoZS5Fc3NlbnRpYWxTaGFwZXMsImF0dGFjaG1lbnQiLCgwLHIuZGVzY3JpcHRvckNvbmZpZykoZS5Fc3NlbnRpYWxTaGFwZXMucGFwZXJjbGlwKSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUuRXNzZW50aWFsU2hhcGVzLCJyZXNpemUtZG93biIsKDAsci5kZXNjcmlwdG9yQ29u''@;'; + put 'put ''ZmlnKShlLkVzc2VudGlhbFNoYXBlcy5zaHJpbmspKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5Fc3NlbnRpYWxTaGFwZXMsInJlc2l6ZS11cCIsKDAsci5kZXNjcmlwdG9yQ29uZmlnKShlLkVzc2VudGlhbFNoYXBlcy5yZXNpemUpKSwidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyYmd2lu''@;'; + put 'put ''ZG93Lmhhc093blByb3BlcnR5KCJDbGFyaXR5SWNvbnMiKSYmd2luZG93LkNsYXJpdHlJY29ucy5hZGQoZS5Fc3NlbnRpYWxTaGFwZXMpfSwiLi9wcm9qZWN0cy9pY29ucy9zcmMvc2hhcGVzL21lZGlhLXNoYXBlcy50cyI6ZnVuY3Rpb24oQSxlLGwpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVm''@;'; + put 'put ''aW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5NZWRpYVNoYXBlcz1lLkNsclNoYXBlTWljcm9waG9uZU11dGU9ZS5DbHJTaGFwZU1pY3JvcGhvbmU9ZS5DbHJTaGFwZVZpZGVvR2FsbGVyeT1lLkNsclNoYXBlUmVwbGF5T25lPWUuQ2xyU2hhcGVSZXBsYXlBbGw9ZS5D''@;'; + put 'put ''bHJTaGFwZUltYWdlR2FsbGVyeT1lLkNsclNoYXBlTXVzaWNOb3RlPWUuQ2xyU2hhcGVGaWxtU3RyaXA9ZS5DbHJTaGFwZUhlYWRwaG9uZXM9ZS5DbHJTaGFwZVZvbHVtZU11dGU9ZS5DbHJTaGFwZVZvbHVtZVVwPWUuQ2xyU2hhcGVWb2x1bWVEb3duPWUuQ2xyU2hhcGVTaHVmZmxlPWUuQ2xy''@;'; + put 'put ''U2hhcGVWaWRlb0NhbWVyYT1lLkNsclNoYXBlQ2FtZXJhPWUuQ2xyU2hhcGVGYXN0Rm9yd2FyZD1lLkNsclNoYXBlUmV3aW5kPWUuQ2xyU2hhcGVQb3dlcj1lLkNsclNoYXBlU3RvcD1lLkNsclNoYXBlU3RlcEZvcndhcmQ9ZS5DbHJTaGFwZVBhdXNlPWUuQ2xyU2hhcGVQbGF5PXZvaWQgMCxs''@;'; + put 'put ''PWwoIi4vcHJvamVjdHMvaWNvbnMvc3JjL3V0aWxzL3N2Zy10YWctZ2VuZXJhdG9yLnRzIiksZS5DbHJTaGFwZVBsYXk9KDAsbC5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik04LjA3LDMxLjZBMi4wNywyLjA3LDAsMCwx''@;'; + put 'put ''LDYsMjkuNTNWNi4zMkEyLjA3LDIuMDcsMCwwLDEsOSw0LjQ3TDMyLjIxLDE2LjA4YTIuMDcsMi4wNywwLDAsMSwwLDMuN0w5LDMxLjM4QTIuMDYsMi4wNiwwLDAsMSw4LjA3LDMxLjZabTAtMjUuMzRMOCw2LjMyVjI5LjUzbC4xLjA2TDMxLjMxLDE4YS4wNi4wNiwwLDAsMCwwLS4wNloiLz5c''@;'; + put 'put ''biAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzIuMTYsMTYuMDgsOC45NCw0LjQ3QTIuMDcsMi4wNywwLDAsMCw2LDYuMzJWMjkuNTNhMi4wNiwyLjA2LDAsMCwwLDMsMS44NUwzMi4xNiwxOS43N2EyLjA3LDIuMDcsMCww''@;'; + put 'put ''LDAsMC0zLjdaIi8+JyksZS5DbHJTaGFwZVBhdXNlPSgwLGwuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMTIuOTMsMzJINi4wN0EyLjA3LDIuMDcsMCwwLDEsNCwyOS45M1Y2LjA3QTIuMDcsMi4wNywwLDAsMSw2LjA3''@;'; + put 'put ''LDRoNi44N0EyLjA3LDIuMDcsMCwwLDEsMTUsNi4wN1YyOS45M0EyLjA3LDIuMDcsMCwwLDEsMTIuOTMsMzJaTTEzLDZINlYzMGg3WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMjkuOTMsMzJIMjMuMDdB''@;'; + put 'put ''Mi4wNywyLjA3LDAsMCwxLDIxLDI5LjkzVjYuMDdBMi4wNywyLjA3LDAsMCwxLDIzLjA3LDRoNi44N0EyLjA3LDIuMDcsMCwwLDEsMzIsNi4wN1YyOS45M0EyLjA3LDIuMDcsMCwwLDEsMjkuOTMsMzJaTTMwLDZIMjNWMzBoN1oiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xy''@;'; + put 'put ''LWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiB4PSIzLjk1IiB5PSI0IiB3aWR0aD0iMTEiIGhlaWdodD0iMjgiIHJ4PSIyLjA3IiByeT0iMi4wNyIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIHg9IjIwLjk1IiB5PSI0''@;'; + put 'put ''IiB3aWR0aD0iMTEiIGhlaWdodD0iMjgiIHJ4PSIyLjA3IiByeT0iMi4wNyIvPicpLGUuQ2xyU2hhcGVTdGVwRm9yd2FyZD0oMCxsLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTUsMzIuMjNhMiwyLDAsMCwxLTItMlY1''@;'; + put 'put ''Ljc3QTIsMiwwLDAsMSw2LjE3LDQuMTRMMjMuMjMsMTYuMzhhMiwyLDAsMCwxLDAsMy4yNWgwTDYuMTcsMzEuODZBMiwyLDAsMCwxLDUsMzIuMjNaTTUsNS43N1YzMC4yM0wyMi4wNywxOFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRs''@;'; + put 'put ''aW5lLXBhdGgtMiIgZD0iTTMxLDMySDI4YTIsMiwwLDAsMS0yLTJWNmEyLDIsMCwwLDEsMi0yaDNhMiwyLDAsMCwxLDIsMlYzMEEyLDIsMCwwLDEsMzEsMzJaTTI4LDZWMzBoM1Y2WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRo''@;'; + put 'put ''LTEiIGQ9Ik01LDMxLjlhMiwyLDAsMCwxLTItMlY1LjQ0QTIsMiwwLDAsMSw2LjEyLDMuODFMMjMuMTgsMTZhMiwyLDAsMCwxLDAsMy4yNWgwTDYuMTIsMzEuNTJBMiwyLDAsMCwxLDUsMzEuOVoiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29s''@;'; + put 'put ''aWQtcGF0aC0yIiB4PSIyNS45NSIgeT0iMy42NyIgd2lkdGg9IjciIGhlaWdodD0iMjgiIHJ4PSIyIiByeT0iMiIvPicpLGUuQ2xyU2hhcGVTdG9wPSgwLGwuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzAsMzJINmEy''@;'; + put 'put ''LDIsMCwwLDEtMi0yVjZBMiwyLDAsMCwxLDYsNEgzMGEyLDIsMCwwLDEsMiwyVjMwQTIsMiwwLDAsMSwzMCwzMlpNNiw2VjMwSDMwVjZaIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgeD0iMy45NiIgeT0iNCIgd2lkdGg9''@;'; + put 'put ''IjI3Ljk5IiBoZWlnaHQ9IjI4IiByeD0iMiIgcnk9IjIiLz4nKSxlLkNsclNoYXBlUG93ZXI9KDAsbC5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xOCwyMWExLDEsMCwwLDEtMS0xVjRhMSwxLDAsMCwxLDIsMFYyMEEx''@;'; + put 'put ''LDEsMCwwLDEsMTgsMjFaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0xOCwzNC4xNWExNSwxNSwwLDAsMS03LjUyLTI4LDEsMSwwLDAsMSwxLDEuNzMsMTMsMTMsMCwxLDAsMTMsMCwxLDEsMCwxLDEsMS0x''@;'; + put 'put ''LjczLDE1LDE1LDAsMCwxLTcuNTIsMjhaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0xOCwyMWExLDEsMCwwLDAsMS0xVjRhMSwxLDAsMCwwLTIsMFYyMEExLDEsMCwwLDAs''@;'; + put 'put ''MTgsMjFaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIGQ9Ik0zMi41MSwxNS40SDMwLjQ0YTEzLDEzLDAsMSwxLTE5LTcuNSwxLDEsMCwwLDAtMS0xLjczQTE1LDE1LDAsMSwwLDMz''@;'; + put 'put ''LDE5LjE1LDE0LjksMTQuOSwwLDAsMCwzMi41MSwxNS40WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEu''@;'; + put 'put ''MjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0t''@;'; + put 'put ''YmFkZ2VkIiBkPSJNMTgsMjFhMSwxLDAsMCwxLTEtMVY0YTEsMSwwLDAsMSwyLDBWMjBBMSwxLDAsMCwxLDE4LDIxWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgZD0iTTMwLDEzLjVs''@;'; + put 'put ''LS4zMSwwQTEzLDEzLDAsMSwxLDExLjQ4LDcuOWExLDEsMCwwLDAtMS0xLjczLDE1LDE1LDAsMSwwLDIxLjMxLDcuMUE3LjQ5LDcuNDksMCwwLDEsMzAsMTMuNVoiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1w''@;'; + put 'put ''YXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJabS4wNiwxNy42''@;'; + put 'put ''OGExLjI4LDEuMjgsMCwwLDEtMS4yOS0xLjI4VjguNjVhMS4yOSwxLjI5LDAsMCwxLDIuNTgsMFYxOC40QTEuMjgsMS4yOCwwLDAsMSwxOC4wNiwxOS42OFpNMTgsMjcuNzlBOS44OCw5Ljg4LDAsMCwxLDEyLjE3LDkuODVhMS40LDEuNCwwLDAsMSwxLjk0LjMxLDEuMzcsMS4zNywwLDAsMS0u''@;'; + put 'put ''MzEsMS45Miw3LjE4LDcuMTgsMCwxLDAsMTEuNDMsNS44LDcuMDcsNy4wNywwLDAsMC0zLTUuNzZBMS4zNywxLjM3LDAsMCwxLDIyLDEwLjJhMS40LDEuNCwwLDAsMSwxLjk0LS4yOUE5Ljg4LDkuODgsMCwwLDEsMTgsMjcuNzlaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNs''@;'; + put 'put ''ci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIgZD0iTTMzLjY4LDE1LjRoLTZBOS43LDkuNywwLDAsMSwyOCwxNy44OWExMCwxMCwwLDEsMS0xNS44My04LDEuNCwxLjQsMCwwLDEsMS45NC4zMSwxLjM3LDEuMzcsMCwwLDEtLjMxLDEuOTIsNy4xOCw3LjE4''@;'; + put 'put ''LDAsMSwwLDExLjQzLDUuOCw3LjA4LDcuMDgsMCwwLDAtLjQ1LTIuNDlIMjIuMjNBMy42OSwzLjY5LDAsMCwxLDE5LjM1LDE0djQuNGExLjI5LDEuMjksMCwwLDEtMi41OCwwVjguNjVhMS4yOSwxLjI5LDAsMCwxLDIuNTgsMHYuNzFsMy43Ni02LjUxQTE2LDE2LDAsMSwwLDM0LDE4YTE2LDE2''@;'; + put 'put ''LDAsMCwwLS4yMy0yLjYxWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42''@;'; + put 'put ''OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgZD0iTTMwLDEzLjVhNy40Nyw3''@;'; + put 'put ''LjQ3LDAsMCwxLTMuNTctLjlBOS44Myw5LjgzLDAsMCwxLDI4LDE3Ljg5YTEwLDEwLDAsMSwxLTE1LjgzLTgsMS40LDEuNCwwLDAsMSwxLjk0LjMxLDEuMzcsMS4zNywwLDAsMS0uMzEsMS45Miw3LjE4LDcuMTgsMCwxLDAsMTEuNDMsNS44LDcuMDcsNy4wNywwLDAsMC0zLTUuNzZBMS4zNywx''@;'; + put 'put ''LjM3LDAsMCwxLDIyLDEwLjJhMS4zOCwxLjM4LDAsMCwxLDEuNTItLjQ5LDcuNDUsNy40NSwwLDAsMS0uMy02LjgzLDE2LjA2LDE2LjA2LDAsMSwwLDkuOTMsOS45M0E3LjQ2LDcuNDYsMCwwLDEsMzAsMTMuNVpNMTYuNzcsOC42NWExLjI5LDEuMjksMCwwLDEsMi41OCwwVjE4LjRhMS4yOSwx''@;'; + put 'put ''LjI5LDAsMCwxLTIuNTgsMFoiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+JyksZS5DbHJTaGFwZVJld2luZD0oMCxsLmNscklj''@;'; + put 'put ''b25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTE3LjA5LDMxLjU4bC0xNS4zMi0xMmEyLDIsMCwwLDEsMC0zLjE1bDE1LjMyLTEyYTEuOTMsMS45MywwLDAsMSwyLjA2LS4yMkExLjc3LDEuNzcsMCwwLDEsMjAsNnY2LjdMMzAuODMs''@;'; + put 'put ''NC40MmExLjkzLDEuOTMsMCwwLDEsMi4wNi0uMjJBMiwyLDAsMCwxLDM0LDZWMzBhMiwyLDAsMCwxLTEuMTEsMS43OSwxLjk0LDEuOTQsMCwwLDEtMi4wNi0uMjJMMjAsMjMuMzFWMzBhMS43NywxLjc3LDAsMCwxLS44NSwxLjc5LDEuOTQsMS45NCwwLDAsMS0yLjA2LS4yMlpNMzIsMzBsLjA2''@;'; + put 'put ''LTI0TDE4LDE2LjhWNkwzLDE4LDE4LDMwVjE5LjJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMTYuOTIsMzEuNTgsMS42LDE5LjU3YTIsMiwwLDAsMSwwLTMuMTVsMTUuMzItMTJBMS45MywxLjkzLDAsMCwxLDE5LDQu''@;'; + put 'put ''MiwxLjg5LDEuODksMCwwLDEsMjAsNnY2LjdMMzAuNjYsNC40MmExLjkzLDEuOTMsMCwwLDEsMi4wNi0uMjJBMiwyLDAsMCwxLDMzLjgzLDZWMzBhMiwyLDAsMCwxLTEuMTEsMS43OSwxLjk0LDEuOTQsMCwwLDEtMi4wNi0uMjJMMjAsMjMuMzFWMzBhMS44OSwxLjg5LDAsMCwxLTEsMS43OSwx''@;'; + put 'put ''Ljk0LDEuOTQsMCwwLDEtMi4wNi0uMjJaIi8+JyksZS5DbHJTaGFwZUZhc3RGb3J3YXJkPSgwLGwuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMTcuNzcsMzEuOTJhMiwyLDAsMCwxLS44Ni0uMkExLjgxLDEuODEsMCww''@;'; + put 'put ''LDEsMTYsMjkuOTN2LTYuN0w1LjI0LDMxLjVhMS45NCwxLjk0LDAsMCwxLTIuMDYuMjIsMiwyLDAsMCwxLTEuMTEtMS43OXYtMjRBMiwyLDAsMCwxLDMuMTgsNC4xMmExLjkzLDEuOTMsMCwwLDEsMi4wNi4yMkwxNiwxMi42MVY1LjkxYTEuODEsMS44MSwwLDAsMSwuOTEtMS43OUExLjkzLDEu''@;'; + put 'put ''OTMsMCwwLDEsMTksNC4zNGwxNS4zMiwxMmEyLDIsMCwwLDEsMCwzLjE1TDE5LDMxLjVBMiwyLDAsMCwxLDE3Ljc3LDMxLjkyWm0wLTEyLjhWMjkuOTNsMTUuMjYtMTItMTUuMzItMTIsLjA2LDEwLjgxTDQsNS45MXYyNFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xp''@;'; + put 'put ''ZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0xNy43MSwzMmEyLDIsMCwwLDEtLjg2LS4yQTEuNzcsMS43NywwLDAsMSwxNiwzMHYtNi43TDUuMTcsMzEuNThhMS45NCwxLjk0LDAsMCwxLTIuMDYuMjJBMiwyLDAsMCwxLDIsMzBWNkEyLDIsMCwwLDEsMy4xMSw0LjJhMS45MywxLjkzLDAsMCwx''@;'; + put 'put ''LDIuMDYuMjJMMTYsMTIuNjlWNmExLjc3LDEuNzcsMCwwLDEsLjg1LTEuNzksMS45MywxLjkzLDAsMCwxLDIuMDYuMjJsMTUuMzIsMTJhMiwyLDAsMCwxLDAsMy4xNWwtMTUuMzIsMTJBMiwyLDAsMCwxLDE3LjcxLDMyWiIvPicpLGUuQ2xyU2hhcGVDYW1lcmE9KDAsbC5jbHJJY29uU1ZHKSgn''@;'; + put 'put ''PHBhdGggZD0iTTMyLDhIMjQuN0wyMy42NCw1LjI4QTIsMiwwLDAsMCwyMS43OCw0SDE0LjIyYTIsMiwwLDAsMC0xLjg3LDEuMjhMMTEuMyw4SDRhMiwyLDAsMCwwLTIsMlYzMGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMTBBMiwyLDAsMCwwLDMyLDhabTAsMjJINFYxMGg4LjY3''@;'; + put 'put ''bDEuNTUtNGg3LjU2bDEuNTUsNEgzMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNOSwxOWE5LDksMCwxLDAsOS05QTksOSwwLDAsMCw5LDE5Wm0xNi40LDBBNy40LDcuNCwwLDEsMSwxOCwxMS42LDcuNDEsNy40''@;'; + put 'put ''MSwwLDAsMSwyNS40LDE5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik05LjM3LDEyLjgzYS44LjgsMCwwLDAtLjgtLjhINi4xN2EuOC44LDAsMCwwLDAsMS42aDIuNEEuOC44LDAsMCwwLDkuMzcsMTIuODNaIiBj''@;'; + put 'put ''bGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTEyLjM0LDE5YTUuNTcsNS41NywwLDAsMCwzLjI0LDVsLjg1LTEuMzdhNCw0LDAsMSwxLDQuMTEtNi42MWwuODYtMS4zOEE1LjU2LDUuNTYsMCwwLDAsMTIuMzQsMTlaIiBj''@;'; + put 'put ''bGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMyLDhIMjQuN0wyMy42NCw1LjI4QTIsMiwwLDAsMCwyMS43OCw0SDE0LjIyYTIsMiwwLDAsMC0xLjg3LDEuMjhMMTEuMyw4SDRhMiwyLDAsMCwwLTIsMlYzMGEyLDIsMCww''@;'; + put 'put ''LDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMTBBMiwyLDAsMCwwLDMyLDhaTTYuMTcsMTMuNjNhLjguOCwwLDAsMSwwLTEuNmgyLjRhLjguOCwwLDAsMSwwLDEuNlpNMTgsMjhhOSw5LDAsMSwxLDktOUE5LDksMCwwLDEsMTgsMjhaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0''@;'; + put 'put ''aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTEuMTEsMTkuMDZhNy4wNyw3LjA3LDAsMCwwLDQuMTEsNi40MWwxLjA5LTEuNzRhNSw1LDAsMSwxLDUuMjItOC4zOWwxLjA5LTEuNzZhNy4wNiw3LjA2LDAsMCwwLTExLjUxLDUuNDhaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29s''@;'; + put 'put ''aWQtcGF0aC0yIi8+JyksZS5DbHJTaGFwZVZpZGVvQ2FtZXJhPSgwLGwuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzQsMTAuMzRhMi4xMSwyLjExLDAsMCwwLTEuMTYtMS45LDIsMiwwLDAsMC0yLjEzLjE1TDI2LDEx''@;'; + put 'put ''LjZWOGEyLDIsMCwwLDAtMi0ySDZhNCw0LDAsMCwwLTQsNFYyNmE0LDQsMCwwLDAsNCw0SDI0YTIsMiwwLDAsMCwyLTJWMjQuNGw0LjY0LDNhMi4wNywyLjA3LDAsMCwwLDIuMi4yQTIuMTEsMi4xMSwwLDAsMCwzNCwyNS42NlpNMzEuOTMsMjUuNzdjLS4wNiwwLS4xMSwwLS4xOS0uMDZMMjQs''@;'; + put 'put ''MjAuNzdWMjhINmEyLDIsMCwwLDEtMi0yVjEwQTIsMiwwLDAsMSw2LDhIMjR2Ny4yM2w3LjgtNWEuMTEuMTEsMCwwLDEsLjEzLDAsLjExLjExLDAsMCwxLC4wNy4xMVYyNS42NkEuMTEuMTEsMCwwLDEsMzEuOTMsMjUuNzdaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29s''@;'; + put 'put ''aWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzIuMyw5LjM1LDI2LDEyLjlWOGEyLDIsMCwwLDAtMi0ySDZhNCw0LDAsMCwwLTQsNFYyNmE0LDQsMCwwLDAsNCw0SDI0YTIsMiwwLDAsMCwyLTJWMjMuMDhsNi4zLDMuNTVBMS4xLDEuMSwwLDAsMCwzNCwyNS43N1YxMC4yQTEuMSwxLjEsMCww''@;'; + put 'put ''LDAsMzIuMyw5LjM1WiIvPicpLGUuQ2xyU2hhcGVTaHVmZmxlPSgwLGwuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMjEuNjEsMTFoOC42MmwtMy4zLDMuM2ExLDEsMCwxLDAsMS40MSwxLjQyTDM0LDEwLjA4bC0uNzEt''@;'; + put 'put ''LjcxaDBMMjguMzQsNC40M2ExLDEsMCwwLDAtMS40MSwxLjQyTDMwLjExLDlIMjFhMSwxLDAsMCwwLS44Ni41TDE3LjUsMTQuMDlsMS4xNiwyWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0xMS4wNywyNS4wN0gz''@;'; + put 'put ''YTEsMSwwLDAsMCwwLDJoOC42NWExLDEsMCwwLDAsLjg2LS41TDE1LjE4LDIyLDE0LDIwWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIGQ9Ik0yOC4zNCwyMC4xN2ExLDEsMCwwLDAtMS40MSwxLjQybDMuNSwzLjVIMjEu''@;'; + put 'put ''NjFMMTIuNTEsOS41M2ExLDEsMCwwLDAtLjg2LS41SDNhMSwxLDAsMSwwLDAsMmg4LjA3bDkuMSwxNS41NWExLDEsMCwwLDAsLjg2LjVIMjkuOWwtMywzYTEsMSwwLDAsMCwxLjQxLDEuNDJsNC45NS00Ljk0aDBsLjcxLS43MVoiLz4nKSxlLkNsclNoYXBlVm9sdW1lRG93bj0oMCxsLmNscklj''@;'; + put 'put ''b25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTIzLjQxLDI1LjExYTEsMSwwLDAsMS0uNTQtMS44NSw2LjIxLDYuMjEsMCwwLDAtLjE5LTEwLjY1LDEsMSwwLDEsMSwxLTEuNzNBOC4yMSw4LjIxLDAsMCwxLDIzLjk0LDI1LDEsMSww''@;'; + put 'put ''LDAsMSwyMy40MSwyNS4xMVoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMTgsMzJhMiwyLDAsMCwxLTEuNDItLjU5TDkuMTQsMjRINGEyLDIsMCwwLDEtMi0yVjE0YTIsMiwwLDAsMSwyLTJIOS4yMmw3LjMzLTcu''@;'; + put 'put ''NDFBMiwyLDAsMCwxLDIwLDZWMzBhMiwyLDAsMCwxLTEuMjQsMS44NUEyLDIsMCwwLDEsMTgsMzJaTTQsMTR2OEg5LjU2YTEsMSwwLDAsMSwuNzEuMjhMMTgsMzBWNmwtNy42NSw3LjY4YTEsMSwwLDAsMS0uNzEuM1pNMTgsNloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1z''@;'; + put 'put ''b2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0yMy40MSwyNS4xMWExLDEsMCwwLDEtLjU0LTEuODUsNi4yMSw2LjIxLDAsMCwwLS4xOS0xMC42NSwxLDEsMCwxLDEsMS0xLjczQTguMjEsOC4yMSwwLDAsMSwyMy45NCwyNSwxLDEsMCwwLDEsMjMuNDEsMjUuMTFaIi8+XG4gICAgICAgICAg''@;'; + put 'put ''ICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiBkPSJNMTguMzQsMy44Nyw5LDEySDNhMSwxLDAsMCwwLTEsMVYyM2ExLDEsMCwwLDAsMSwxSDguODNsOS41MSw4LjNBMSwxLDAsMCwwLDIwLDMxLjU1VjQuNjJBMSwxLDAsMCwwLDE4LjM0LDMuODdaIi8+Jyks''@;'; + put 'put ''ZS5DbHJTaGFwZVZvbHVtZVVwPSgwLGwuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMjMuNDEsMjUuMjVhMSwxLDAsMCwxLS41NC0xLjg1LDYuMjEsNi4yMSwwLDAsMC0uMTktMTAuNjUsMSwxLDAsMSwxLDEtMS43Myw4''@;'; + put 'put ''LjIxLDguMjEsMCwwLDEsLjI0LDE0LjA2QTEsMSwwLDAsMSwyMy40MSwyNS4yNVoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMjUuNjIsMzEuMThhMSwxLDAsMCwxLS40NS0xLjg5QTEyLjQ0LDEyLjQ0LDAsMCww''@;'; + put 'put ''LDI1LDYuODlhMSwxLDAsMSwxLC44Ny0xLjgsMTQuNDQsMTQuNDQsMCwwLDEsLjI0LDI2QTEsMSwwLDAsMSwyNS42MiwzMS4xOFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJNMTgsMzIuMDZhMiwyLDAsMCwxLTEu''@;'; + put 'put ''NDItLjU5TDkuMTQsMjRINGEyLDIsMCwwLDEtMi0yVjE0YTIsMiwwLDAsMSwyLTJIOS4yMmw3LjMzLTcuMzlBMiwyLDAsMCwxLDIwLDZ2MjRhMiwyLDAsMCwxLTEuMjQsMS44NUEyLDIsMCwwLDEsMTgsMzIuMDZaTTQsMTR2OEg5LjU2YTEsMSwwLDAsMSwuNzEuM0wxOCwzMC4wNlY2TDEwLjM1''@;'; + put 'put ''LDEzLjdhMSwxLDAsMCwxLS43MS4zWk0xOCw2WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTIzLjQxLDI1LjI1YTEsMSwwLDAsMS0uNTQtMS44NSw2LjIxLDYuMjEsMCwwLDAtLjE5LTEwLjY1LDEsMSwwLDEsMSwxLTEu''@;'; + put 'put ''NzMsOC4yMSw4LjIxLDAsMCwxLC4yNCwxNC4wNkExLDEsMCwwLDEsMjMuNDEsMjUuMjVaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiBkPSJNMjUuNjIsMzEuMThhMSwxLDAsMCwxLS40NS0xLjg5QTEyLjQ0LDEyLjQ0LDAsMCww''@;'; + put 'put ''LDI1LDYuODlhMSwxLDAsMSwxLC44Ny0xLjgsMTQuNDQsMTQuNDQsMCwwLDEsLjI0LDI2QTEsMSwwLDAsMSwyNS42MiwzMS4xOFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIGQ9Ik0xOC4zMyw0LDkuMDcsMTJoLTZhMSwxLDAs''@;'; + put 'put ''MCwwLTEsMXY5LjkyYTEsMSwwLDAsMCwxLDFIOC44OGw5LjQ2LDguMjRBMSwxLDAsMCwwLDIwLDMxLjQzVjQuNzJBMSwxLDAsMCwwLDE4LjMzLDRaIi8+JyksZS5DbHJTaGFwZVZvbHVtZU11dGU9KDAsbC5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0''@;'; + put 'put ''bGluZS1wYXRoLTEiIGQ9Ik0zLjYxLDYuNDEsOS4xOSwxMkg0YTIsMiwwLDAsMC0yLDJ2OGEyLDIsMCwwLDAsMiwySDkuMTRsNy40MSw3LjQ3QTIsMiwwLDAsMCwxOCwzMmEyLDIsMCwwLDAsLjc2LS4xNUEyLDIsMCwwLDAsMjAsMzBWMjIuNzdsNS44OSw1Ljg5Yy0uMjUuMTUtLjQ5LjI5LS43''@;'; + put 'put ''NS40MmExLDEsMCwwLDAsLjksMS43OSwxNC40LDE0LjQsMCwwLDAsMS4zMS0uNzVsMi4yOCwyLjI4TDMxLDMxLDUsNVpNMTgsMzBsLTcuNzMtNy43N0ExLDEsMCwwLDAsOS41NiwyMkg0VjE0SDkuNjRhMSwxLDAsMCwwLC43MS0uM2wuMjYtLjI2TDE4LDIwLjgxWiIvPlxuICAgICAgICAgICAg''@;'; + put 'put ''PHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0yNC44OSw2LjY5QTEyLjQyLDEyLjQyLDAsMCwxLDI5LDI2LjFsMS40MiwxLjQyQTE0LjQyLDE0LjQyLDAsMCwwLDI1Ljc2LDQuODhhMSwxLDAsMSwwLS44NywxLjhaIi8+XG4gICAgICAgICAgICA8''@;'; + put 'put ''cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgZD0iTTIyLjY5LDEyLjYyQTYuMjcsNi4yNywwLDAsMSwyNS44LDE4YTYuMTcsNi4xNywwLDAsMS0xLjI0LDMuNzFMMjYsMjMuMTNBOC4xNSw4LjE1LDAsMCwwLDI3LjgsMThhOC4yOCw4LjI4LDAsMCwwLTQu''@;'; + put 'put ''MS03LjExLDEsMSwwLDEsMC0xLDEuNzNaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgZD0iTTE4LDZ2OS4xNWwyLDJWNmEyLDIsMCwwLDAtMy40Mi0xLjQxTDEyLDkuMTdsMS40MSwxLjQxWiIvPlxuICAgICAgICAgICAg''@;'; + put 'put ''PHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTI0Ljg3LDYuNjlBMTIuNDIsMTIuNDIsMCwwLDEsMjguNzUsMjYuM2wxLjQyLDEuNDJBMTQuNDMsMTQuNDMsMCwwLDAsMjUuNzQsNC44OGExLDEsMCwwLDAtLjg3LDEuOFoiLz5cbiAgICAgICAgICAgIDxw''@;'; + put 'put ''YXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGQ9Ik0yNy4zLDI3LjY3aDBsLTMuODQtMy44NC0uNTctLjU3aDBMNC42Myw1LDMuMjEsNi40MSw4LjgsMTJIM2ExLDEsMCwwLDAtMSwxVjIzYTEsMSwwLDAsMCwxLDFIOC44M2w5LjUxLDguM0ExLDEsMCwwLDAsMjAs''@;'; + put 'put ''MzEuNTVWMjMuMmw1LjU5LDUuNTljLS4xNy4xLS4zNC4yLS41MS4yOWExLDEsMCwwLDAsLjksMS43OWMuMzctLjE5LjcyLS40LDEuMDgtLjYybDIuMTQsMi4xNEwzMC42MSwzMWwtMy4yNS0zLjI1WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlk''@;'; + put 'put ''LXBhdGgtMyIgZD0iTTIyLjY5LDEyLjYyQTYuMjcsNi4yNywwLDAsMSwyNS44LDE4YTYuMTcsNi4xNywwLDAsMS0xLjQyLDMuOTJsMS40MiwxLjQyYTguMTYsOC4xNiwwLDAsMCwyLTUuMzQsOC4yOCw4LjI4LDAsMCwwLTQuMS03LjExLDEsMSwwLDEsMC0xLDEuNzNaIi8+XG4gICAgICAgICAg''@;'; + put 'put ''ICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC00IiBkPSJNMjAsNC42MmExLDEsMCwwLDAtMS42Ni0uNzVsLTYuNDIsNS42TDIwLDE3LjU0WiIvPicpLGUuQ2xyU2hhcGVIZWFkcGhvbmVzPSgwLGwuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRs''@;'; + put 'put ''aW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMTgsM0ExNC4yNywxNC4yNywwLDAsMCw0LDE3LjVWMzFIOS4yQTIuNzQsMi43NCwwLDAsMCwxMiwyOC4zM1YyMS42N0EyLjc0LDIuNzQsMCwwLDAsOS4yLDE5SDZWMTcuNUExMi4yNywxMi4yNywwLDAsMSwxOCw1LDEyLjI3LDEyLjI3LDAs''@;'; + put 'put ''MCwxLDMwLDE3LjVWMTlIMjYuOEEyLjc0LDIuNzQsMCwwLDAsMjQsMjEuNjd2Ni42N0EyLjc0LDIuNzQsMCwwLDAsMjYuOCwzMUgzMlYxNy41QTE0LjI3LDE0LjI3LDAsMCwwLDE4LDNaTTkuMiwyMWEuNzUuNzUsMCwwLDEsLjguNjd2Ni42N2EuNzUuNzUsMCwwLDEtLjguNjdINlYyMVpNMjYs''@;'; + put 'put ''MjguMzNWMjEuNjdhLjc1Ljc1LDAsMCwxLC44LS42N0gzMHY4SDI2LjhBLjc1Ljc1LDAsMCwxLDI2LDI4LjMzWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTE4LDNBMTQuMjcsMTQuMjcsMCwwLDAsNCwxNy41VjMxSDgu''@;'; + put 'put ''MkExLjc0LDEuNzQsMCwwLDAsMTAsMjkuMzNWMjIuNjdBMS43NCwxLjc0LDAsMCwwLDguMiwyMUg2VjE3LjVBMTIuMjcsMTIuMjcsMCwwLDEsMTgsNSwxMi4yNywxMi4yNywwLDAsMSwzMCwxNy41VjIxSDI3LjhBMS43NCwxLjc0LDAsMCwwLDI2LDIyLjY3djYuNjdBMS43NCwxLjc0LDAsMCww''@;'; + put 'put ''LDI3LjgsMzFIMzJWMTcuNUExNC4yNywxNC4yNywwLDAsMCwxOCwzWiIvPicpLGUuQ2xyU2hhcGVGaWxtU3RyaXA9KDAsbC5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMCw0SDZBMiwyLDAsMCwwLDQsNlYzMGEyLDIs''@;'; + put 'put ''MCwwLDAsMiwySDMwYTIsMiwwLDAsMCwyLTJWNkEyLDIsMCwwLDAsMzAsNFptMCwyNkg2VjZIMzBaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTE0LjYsMjMuMDdhMS4yOSwxLjI5LDAsMCwwLDEuMjQuMDlsOC43''@;'; + put 'put ''My00YTEuMywxLjMsMCwwLDAsMC0yLjM3aDBsLTguNzMtNEExLjMsMS4zLDAsMCwwLDE0LDE0djhBMS4yOSwxLjI5LDAsMCwwLDE0LjYsMjMuMDdabTEtOC42TDIzLjMxLDE4LDE1LjYsMjEuNTFaIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRs''@;'; + put 'put ''aW5lLXBhdGgtMyIgeD0iOCIgeT0iNyIgd2lkdGg9IjIiIGhlaWdodD0iMyIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIHg9IjE0IiB5PSI3IiB3aWR0aD0iMiIgaGVpZ2h0PSIzIi8+XG4gICAgICAgICAgICA8cmVjdCBj''@;'; + put 'put ''bGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgeD0iMjAiIHk9IjciIHdpZHRoPSIyIiBoZWlnaHQ9IjMiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02IiB4PSIyNiIgeT0iNyIgd2lkdGg9IjIiIGhl''@;'; + put 'put ''aWdodD0iMyIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTciIHg9IjgiIHk9IjI2IiB3aWR0aD0iMiIgaGVpZ2h0PSIzIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBh''@;'; + put 'put ''dGgtOCIgeD0iMTQiIHk9IjI2IiB3aWR0aD0iMiIgaGVpZ2h0PSIzIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtOSIgeD0iMjAiIHk9IjI2IiB3aWR0aD0iMiIgaGVpZ2h0PSIzIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFz''@;'; + put 'put ''cz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMTAiIHg9IjI2IiB5PSIyNiIgd2lkdGg9IjIiIGhlaWdodD0iMyIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTMwLDRINkEyLDIsMCwwLDAsNCw2VjMwYTIs''@;'; + put 'put ''MiwwLDAsMCwyLDJIMzBhMiwyLDAsMCwwLDItMlY2QTIsMiwwLDAsMCwzMCw0Wk0yMCw3aDJ2M0gyMFpNMTQsN2gydjNIMTRaTTEwLDI5SDhWMjZoMlptMC0xOUg4VjdoMlptNiwxOUgxNFYyNmgyWm02LDBIMjBWMjZoMlptMy4xNi0xMC4xNkwxNS4zOSwyMy4yQTEsMSwwLDAsMSwxNCwyMi4y''@;'; + put 'put ''OFYxMy41N2ExLDEsMCwwLDEsMS40MS0uOTFMMjUuMTYsMTdBMSwxLDAsMCwxLDI1LjE2LDE4Ljg0Wk0yOCwyOUgyNlYyNmgyWm0wLTE5SDI2VjdoMloiLz4nKSxlLkNsclNoYXBlTXVzaWNOb3RlPSgwLGwuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91''@;'; + put 'put ''dGxpbmUtcGF0aC0xIlxuICAgICAgICAgICAgICAgIGQ9Ik0zMS42OCw2LjE2Yy0xLjkyLTMuMy0xMC42LTQtMTEuNTgtNC4wOUwxOSwyVjIyLjM0YTUuODksNS44OSwwLDAsMC0uODItLjU2LDguMzMsOC4zMywwLDAsMC02LjUzLS40MUM3LjU3LDIyLjcsNC45MiwyNi41LDUuNzgsMjkuODRh''@;'; + put 'put ''NS4zMyw1LjMzLDAsMCwwLDIuNjYsMy4zMiw3LjQ4LDcuNDgsMCwwLDAsMy42MS44OEE5LjU0LDkuNTQsMCwwLDAsMTUsMzMuNTdjMy42Ny0xLjE4LDYuMTctNC4zMyw2LjA2LTcuMzZWOS4zNGEyOS4xNCwyOS4xNCwwLDAsMSw2LjU1LDEuNDMsMSwxLDAsMSwwLC43Mi0xLjg3QTMxLjM3LDMx''@;'; + put 'put ''LjM3LDAsMCwwLDIxLDcuMzNWNC4xN2MzLjMzLjM2LDgsMS4zOCw4LjkyLDMsMiwzLjQxLTIuMzMsNy4zNi0yLjM3LDcuNGExLDEsMCwwLDAsMS4zMywxLjQ5QzI5LjE1LDE1Ljg1LDM0LjUsMTEsMzEuNjgsNi4xNlpNMTQuMzUsMzEuNjdhNi40Myw2LjQzLDAsMCwxLTUtLjI2LDMuMzEsMy4z''@;'; + put 'put ''MSwwLDAsMS0xLjY5LTIuMDdjLS42LTIuMzMsMS40NS01LjA1LDQuNTgtNi4wNmE3LjUyLDcuNTIsMCwwLDEsMi4zLS4zNyw1LjUyLDUuNTIsMCwwLDEsMi42NS42MiwzLjMxLDMuMzEsMCwwLDEsMS42OSwyLjA3QzE5LjU0LDI3Ljk0LDE3LjQ5LDMwLjY2LDE0LjM1LDMxLjY3WiIvPlxuICAg''@;'; + put 'put ''ICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSJcbiAgICAgICAgICAgICAgICBkPSJNMzEuNjgsNi4xNmMtMS45Mi0zLjMtMTAuNi00LTExLjU4LTQuMDlMMTksMlYyMi4yOWE1Ljg4LDUuODgsMCwwLDAtLjgxLS41NSw4LjMzLDguMzMsMCwwLDAt''@;'; + put 'put ''Ni41My0uNDFjLTQuMTIsMS4zMy02Ljc3LDUuMTMtNS45MSw4LjQ3YTUuMzMsNS4zMywwLDAsMCwyLjY2LDMuMzIsNy40OCw3LjQ4LDAsMCwwLDMuNjEuODhBOS41NCw5LjU0LDAsMCwwLDE1LDMzLjUyYzMuNy0xLjE5LDYuMi00LjM3LDYuMDYtNy40MiwwLDAsMCwwLDAsMFY4LjQ5YzEsLjEy''@;'; + put 'put ''LDIuMzcuMzMsMy44Mi42NGExMS4xNywxMS4xNywwLDAsMSw0LjA2LDEuNDZjMSwuNjYuMzgsMS45LjMzLDJhMTEuOCwxMS44LDAsMCwxLTEuNjYsMiwxLDEsMCwwLDAsMS4zMywxLjQ5QzI5LjE1LDE1Ljg1LDM0LjUsMTEsMzEuNjgsNi4xNloiLz4nKSxlLkNsclNoYXBlSW1hZ2VHYWxsZXJ5''@;'; + put 'put ''PSgwLGwuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMi4xMiwxMEgzLjg4QTEuODgsMS44OCwwLDAsMCwyLDExLjg4VjMwLjEyQTEuODgsMS44OCwwLDAsMCwzLjg4LDMySDMyLjEyQTEuODgsMS44OCwwLDAsMCwzNCwzMC4xMlYxMS44OEExLjg4LDEuODgsMCwwLDAsMzIuMTIsMTBaTTMyLDMw''@;'; + put 'put ''SDRWMTJIMzJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNOC41NiwxOS40NWEzLDMsMCwxLDAtMy0zQTMsMywwLDAsMCw4LjU2LDE5LjQ1Wm0wLTQuNkExLjYsMS42LDAsMSwxLDcsMTYuNDUsMS42LDEuNiwwLDAsMSw4LjU2LDE0Ljg1''@;'; + put 'put ''WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTcuOSwyOGw2LTYsMy4xOCwzLjE4TDE0LjI2LDI4aDJsNy40Ni03LjQ2TDMwLDI2Ljc3di0yTDI0LjIsMTlhLjcxLjcxLDAsMCwwLTEsMGwtNS4xNiw1LjE2TDE0LjM3LDIwLjVhLjcxLjcx''@;'; + put 'put ''LDAsMCwwLTEsMEw1LjkyLDI4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+PHBhdGggZD0iTTMwLjE0LDNoMGExLDEsMCwwLDAtMS0xaC0yMmExLDEsMCwwLDAtMSwxaDBWNGgyNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0''@;'; + put 'put ''aC00IiAvPjxwYXRoIGQ9Ik0zMi4xMiw3VjdhMSwxLDAsMCwwLTEtMWgtMjZhMSwxLDAsMCwwLTEsMWgwVjhoMjhaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgLz48cGF0aCBkPSJNMzAuMTQsM2gwYTEsMSwwLDAsMC0xLTFoLTIyYTEsMSwwLDAsMC0xLDFo''@;'; + put 'put ''MFY0aDI0WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz48cGF0aCBkPSJNMzIuMTIsN1Y3YTEsMSwwLDAsMC0xLTFoLTI2YTEsMSwwLDAsMC0xLDFoMFY4aDI4WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz48cGF0aCBkPSJNMzIu''@;'; + put 'put ''MTIsMTBIMy44OEExLjg4LDEuODgsMCwwLDAsMiwxMS44OFYzMC4xMkExLjg4LDEuODgsMCwwLDAsMy44OCwzMkgzMi4xMkExLjg4LDEuODgsMCwwLDAsMzQsMzAuMTJWMTEuODhBMS44OCwxLjg4LDAsMCwwLDMyLjEyLDEwWk04LjU2LDEzLjQ1YTMsMywwLDEsMS0zLDNBMywzLDAsMCwxLDgu''@;'; + put 'put ''NTYsMTMuNDVaTTMwLDI4aC0yNGw3LjQ2LTcuNDdhLjcxLjcxLDAsMCwxLDEsMGwzLjY4LDMuNjhMMjMuMjEsMTlhLjcxLjcxLDAsMCwxLDEsMEwzMCwyNC43OVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIC8+JyksZS5DbHJTaGFwZVJlcGxheUFsbD0oMCxsLmNs''@;'; + put 'put ''ckljb25TVkcpKCc8cGF0aCBkPSJNMTcuNDYsMjYuMjJhMS40LDEuNCwwLDAsMCwxLS40Mmw1LjU5LTUuNTZhMS40MywxLjQzLDAsMCwwLC40Mi0xLDEuNDYsMS40NiwwLDAsMC0uNDItMWwtNS41OS01LjU2YTEuNDMsMS40MywwLDAsMC0yLjQ0LDFWMjQuNzlhMS40MSwxLjQxLDAsMCwwLC44''@;'; + put 'put ''OCwxLjMyQTEuNTQsMS41NCwwLDAsMCwxNy40NiwyNi4yMlptLjE2LTEyLjE2LDUuMTksNS4xNi01LjE5LDUuMTdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMTguMDYsNWgtNi43bDIuOTItMi42NEExLDEsMCwwLDAsMTIuOTQuODhM''@;'; + put 'put ''Ny4zMiw2LDEyLjk0LDExYTEsMSwwLDAsMCwuNjcuMjYsMSwxLDAsMCwwLC43NC0uMzMsMSwxLDAsMCwwLS4wNy0xLjQyTDExLjQ2LDdoNi42QTExLjc4LDExLjc4LDAsMSwxLDcuNzEsMjQuNDEsMSwxLDAsMCwwLDYsMjUuMzYsMTMuNzgsMTMuNzgsMCwxLDAsMTguMDYsNVoiIGNsYXNzPSJj''@;'; + put 'put ''bHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPicpLGUuQ2xyU2hhcGVSZXBsYXlPbmU9KDAsbC5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE5LDI3LjI3YTEsMSwwLDAsMCwxLTFWMTRhMSwxLDAsMCwwLTEtMUgxOWEzLjgsMy44LDAsMCwwLTEuMS4yM2wtMiwuNjJhLjkyLjky''@;'; + put 'put ''LDAsMCwwLS43Mi44Ni44OC44OCwwLDAsMCwuODguODYsMS40NiwxLjQ2LDAsMCwwLC40My0uMDhMMTgsMTUuMDd2MTEuMkExLDEsMCwwLDAsMTksMjcuMjdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMTguMDYsNWgtNi43bDIuOTIt''@;'; + put 'put ''Mi42NEExLDEsMCwwLDAsMTIuOTQuODhMNy4zMiw2LDEyLjk0LDExYTEsMSwwLDAsMCwuNjcuMjYsMSwxLDAsMCwwLC43NC0uMzMsMSwxLDAsMCwwLS4wNy0xLjQyTDExLjQ2LDdoNi42QTExLjc4LDExLjc4LDAsMSwxLDcuNzEsMjQuNDEsMSwxLDAsMCwwLDYsMjUuMzYsMTMuNzgsMTMuNzgs''@;'; + put 'put ''MCwxLDAsMTguMDYsNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPicpLGUuQ2xyU2hhcGVWaWRlb0dhbGxlcnk9KDAsbC5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMyLjEyLDEwSDMuODhBMS44OCwxLjg4LDAsMCwwLDIsMTEuODhWMzAuMTJBMS44OCwx''@;'; + put 'put ''Ljg4LDAsMCwwLDMuODgsMzJIMzIuMTJBMS44OCwxLjg4LDAsMCwwLDM0LDMwLjEyVjExLjg4QTEuODgsMS44OCwwLDAsMCwzMi4xMiwxMFpNMzIsMzBINFYxMkgzMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0zMC4xNCwzaDBhMSwx''@;'; + put 'put ''LDAsMCwwLTEtMWgtMjJhMSwxLDAsMCwwLTEsMWgwVjRoMjRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMzIuMTIsN1Y3YTEsMSwwLDAsMC0xLTFoLTI2YTEsMSwwLDAsMC0xLDFoMFY4aDI4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUg''@;'; + put 'put ''Y2xyLWktb3V0bGluZS1wYXRoLTMiIC8+PHBhdGggZD0iTTEyLjgyLDI2Ljc5YTEuNzQsMS43NCwwLDAsMCwuOTMuMjgsMS42OCwxLjY4LDAsMCwwLC42OS0uMTVsOS43Ny00LjM2YTEuNjksMS42OSwwLDAsMCwwLTMuMUwxNC40NCwxNS4xYTEuNywxLjcsMCwwLDAtMi4zOSwxLjU1djguNzJB''@;'; + put 'put ''MS43LDEuNywwLDAsMCwxMi44MiwyNi43OVptLjYzLTEwLjE0YS4yOS4yOSwwLDAsMSwuMTQtLjI1LjMuMywwLDAsMSwuMTYsMCwuMjcuMjcsMCwwLDEsLjEyLDBsOS43Nyw0LjM1YS4yOS4yOSwwLDAsMSwuMTguMjguMjguMjgsMCwwLDEtLjE4LjI3bC05Ljc3LDQuMzZhLjI4LjI4LDAsMCwx''@;'; + put 'put ''LS4yOCwwLC4zMS4zMSwwLDAsMS0uMTQtLjI1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+PHBhdGggZD0iTTMyLjEyLDEwSDMuODhBMS44OCwxLjg4LDAsMCwwLDIsMTEuODhWMzAuMTJBMS44OCwxLjg4LDAsMCwwLDMuODgsMzJIMzIuMTJBMS44OCwx''@;'; + put 'put ''Ljg4LDAsMCwwLDM0LDMwLjEyVjExLjg4QTEuODgsMS44OCwwLDAsMCwzMi4xMiwxMFpNMjQuMTgsMjEuODNsLTkuNzcsNC4zNkExLDEsMCwwLDEsMTMsMjUuMjhWMTYuNTZhMSwxLDAsMCwxLDEuNDEtLjkxTDI0LjE4LDIwQTEsMSwwLDAsMSwyNC4xOCwyMS44M1oiIGNsYXNzPSJjbHItaS1z''@;'; + put 'put ''b2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+PHBhdGggZD0iTTMwLjE0LDNoMGExLDEsMCwwLDAtMS0xaC0yMmExLDEsMCwwLDAtMSwxaDBWNGgyNFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+PHBhdGggZD0iTTMyLjEyLDdWN2ExLDEsMCwwLDAtMS0xaC0y''@;'; + put 'put ''NmExLDEsMCwwLDAtMSwxaDBWOGgyOFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIC8+JyksZS5DbHJTaGFwZU1pY3JvcGhvbmU9KDAsbC5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE4LDI0YzMuOSwwLDctMy4xLDctN1Y5YzAtMy45LTMuMS03LTctN3MtNywzLjEt''@;'; + put 'put ''Nyw3djhDMTEsMjAuOSwxNC4xLDI0LDE4LDI0eiBNMTMsOWMwLTIuOCwyLjItNSw1LTVzNSwyLjIsNSw1djhcblx0XHRjMCwyLjgtMi4yLDUtNSw1cy01LTIuMi01LTVWOXoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0zMCwxN2gtMmMw''@;'; + put 'put ''LDUuNS00LjUsMTAtMTAsMTBTOCwyMi41LDgsMTdINmMwLDYuMyw0LjgsMTEuNCwxMSwxMS45VjMyaC0zYy0wLjYsMC0xLDAuNC0xLDFzMC40LDEsMSwxaDhjMC42LDAsMS0wLjQsMS0xXG5cdFx0cy0wLjQtMS0xLTFoLTN2LTMuMUMyNS4yLDI4LjQsMzAsMjMuMywzMCwxN3oiIGNsYXNzPSJj''@;'; + put 'put ''bHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0xOCwyNGMzLjksMCw3LTMuMSw3LTdWOWMwLTMuOS0zLjEtNy03LTdzLTcsMy4xLTcsN3Y4QzExLDIwLjksMTQuMSwyNCwxOCwyNHoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+''@;'; + put 'put ''PHBhdGggZD0iTTMwLDE3aC0yYzAsNS41LTQuNSwxMC0xMCwxMFM4LDIyLjUsOCwxN0g2YzAsNi4zLDQuOCwxMS40LDExLDExLjlWMzJoLTNjLTAuNiwwLTEsMC40LTEsMXMwLjQsMSwxLDFoOGMwLjYsMCwxLTAuNCwxLTFcblx0XHRzLTAuNC0xLTEtMWgtM3YtMy4xQzI1LjIsMjguNCwzMCwy''@;'; + put 'put ''My4zLDMwLDE3eiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz4nKSxlLkNsclNoYXBlTWljcm9waG9uZU11dGU9KDAsbC5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMwLDE3aC0yYzAsMS44LTAuNSwzLjUtMS40LDVsMS41LDEuNUMyOS4zLDIxLjUsMjkuOSwxOS4z''@;'; + put 'put ''LDMwLDE3eiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTE4LDRjMi44LDAsNSwyLjIsNSw1djhjMCwwLjQtMC4xLDAuOC0wLjIsMS4ybDEuNiwxLjZjMC40LTAuOSwwLjYtMS44LDAuNi0yLjhWOWMwLTMuOS0zLjItNy03LjEtNi45XG5c''@;'; + put 'put ''dFx0Yy0yLjksMC01LjYsMS45LTYuNSw0LjdMMTMsOC4zQzEzLjUsNS45LDE1LjYsNC4yLDE4LDR6IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMjUuMiwyNi42bDYuOSw2LjlsMS40LTEuNEw0LDIuNkwyLjYsNGw4LjQsOC40VjE3YzAs''@;'; + put 'put ''My45LDMuMSw3LDcsN2MxLjMsMCwyLjUtMC4zLDMuNi0xbDIuMiwyLjJDMjIuMSwyNi40LDIwLjEsMjcsMTgsMjdcblx0XHRjLTUuNCwwLjItOS44LTQuMS0xMC05LjRjMC0wLjIsMC0wLjQsMC0wLjZINmMwLjEsNi4yLDQuOCwxMS40LDExLDEydjNoLTNjLTAuNiwwLTEsMC40LTEsMXMwLjQs''@;'; + put 'put ''MSwxLDFoOGMwLjYsMCwxLTAuNCwxLTFcblx0XHRzLTAuNC0xLTEtMWgtM3YtM0MyMS4yLDI4LjgsMjMuNCwyOCwyNS4yLDI2LjZ6IE0xMy44LDE5LjdDMTMuMywxOC45LDEzLDE4LDEzLDE3di0yLjZsNy4xLDcuMUMxNy45LDIyLjUsMTUuMiwyMS44LDEzLjgsMTkuN3oiIGNsYXNzPSJjbHIt''@;'; + put 'put ''aS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0zMCwxN2gtMmMwLDEuOC0wLjUsMy41LTEuNCw1bDEuNSwxLjVDMjkuMywyMS41LDI5LjksMTkuMywzMCwxN3oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+PHBhdGggZD0iTTI1LDE3''@;'; + put 'put ''VjljMC0zLjktMy4yLTctNy4xLTYuOWMtMi45LDAtNS42LDEuOS02LjUsNC43bDEzLDEzQzI0LjgsMTguOSwyNSwxNy45LDI1LDE3eiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz48cGF0aCBkPSJNMjUuMiwyNi42bDYuOSw2LjlsMS40LTEuNEw0LDIuNkwyLjYs''@;'; + put 'put ''NGw4LjQsOC40VjE3YzAsMy45LDMuMSw3LDcsN2MxLjMsMCwyLjUtMC4zLDMuNi0xbDIuMiwyLjJDMjIuMSwyNi40LDIwLjEsMjcsMTgsMjdcblx0XHRjLTUuNCwwLjItOS44LTQuMS0xMC05LjRjMC0wLjIsMC0wLjQsMC0wLjZINmMwLjEsNi4yLDQuOCwxMS40LDExLDEydjNoLTNjLTAuNiww''@;'; + put 'put ''LTEsMC40LTEsMXMwLjQsMSwxLDFoOGMwLjYsMCwxLTAuNCwxLTFcblx0XHRzLTAuNC0xLTEtMWgtM3YtM0MyMS4yLDI4LjgsMjMuNCwyOCwyNS4yLDI2LjZ6IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiAvPicpLGUuTWVkaWFTaGFwZXM9e3BsYXk6ZS5DbHJTaGFw''@;'; + put 'put ''ZVBsYXkscGF1c2U6ZS5DbHJTaGFwZVBhdXNlLCJzdGVwLWZvcndhcmQiOmUuQ2xyU2hhcGVTdGVwRm9yd2FyZCxzdG9wOmUuQ2xyU2hhcGVTdG9wLHBvd2VyOmUuQ2xyU2hhcGVQb3dlcixyZXdpbmQ6ZS5DbHJTaGFwZVJld2luZCwiZmFzdC1mb3J3YXJkIjplLkNsclNoYXBlRmFzdEZvcndh''@;'; + put 'put ''cmQsY2FtZXJhOmUuQ2xyU2hhcGVDYW1lcmEsInZpZGVvLWNhbWVyYSI6ZS5DbHJTaGFwZVZpZGVvQ2FtZXJhLHNodWZmbGU6ZS5DbHJTaGFwZVNodWZmbGUsInZvbHVtZS11cCI6ZS5DbHJTaGFwZVZvbHVtZVVwLCJ2b2x1bWUtZG93biI6ZS5DbHJTaGFwZVZvbHVtZURvd24sInZvbHVtZS1t''@;'; + put 'put ''dXRlIjplLkNsclNoYXBlVm9sdW1lTXV0ZSxoZWFkcGhvbmVzOmUuQ2xyU2hhcGVIZWFkcGhvbmVzLCJmaWxtLXN0cmlwIjplLkNsclNoYXBlRmlsbVN0cmlwLCJtdXNpYy1ub3RlIjplLkNsclNoYXBlTXVzaWNOb3RlLCJpbWFnZS1nYWxsZXJ5IjplLkNsclNoYXBlSW1hZ2VHYWxsZXJ5LCJy''@;'; + put 'put ''ZXBsYXktYWxsIjplLkNsclNoYXBlUmVwbGF5QWxsLCJyZXBsYXktb25lIjplLkNsclNoYXBlUmVwbGF5T25lLCJ2aWRlby1nYWxsZXJ5IjplLkNsclNoYXBlVmlkZW9HYWxsZXJ5LG1pY3JvcGhvbmU6ZS5DbHJTaGFwZU1pY3JvcGhvbmUsIm1pY3JvcGhvbmUtbXV0ZSI6ZS5DbHJTaGFwZU1p''@;'; + put 'put ''Y3JvcGhvbmVNdXRlfSwidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyYmd2luZG93Lmhhc093blByb3BlcnR5KCJDbGFyaXR5SWNvbnMiKSYmd2luZG93LkNsYXJpdHlJY29ucy5hZGQoZS5NZWRpYVNoYXBlcyl9LCIuL3Byb2plY3RzL2ljb25zL3NyYy9zaGFwZXMvc29jaWFsLXNoYXBlcy50''@;'; + put 'put ''cyI6ZnVuY3Rpb24oQSxlLGMpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5Tb2NpYWxTaGFwZXM9ZS5DbHJTaGFwZUhhc2h0YWc9ZS5DbHJTaGFwZUNyb3duPWUuQ2xyU2hhcGVUaHVtYnNEb3duPWUuQ2xyU2hhcGVUaHVt''@;'; + put 'put ''YnNVcD1lLkNsclNoYXBlU2FkRmFjZT1lLkNsclNoYXBlTmV1dHJhbEZhY2U9ZS5DbHJTaGFwZUhhcHB5RmFjZT1lLkNsclNoYXBlUGljdHVyZT1lLkNsclNoYXBlQ2hhdEJ1YmJsZT1lLkNsclNoYXBlVGFsa0J1YmJsZXM9ZS5DbHJTaGFwZUhlYXJ0QnJva2VuPWUuQ2xyU2hhcGVIZWFydD1l''@;'; + put 'put ''LkNsclNoYXBlSW5ib3g9ZS5DbHJTaGFwZUZsYWc9ZS5DbHJTaGFwZVRhc2tzPWUuQ2xyU2hhcGVFbnZlbG9wZT1lLkNsclNoYXBlQm9va21hcms9ZS5DbHJTaGFwZUhhbGZTdGFyPWUuQ2xyU2hhcGVTdGFyPWUuQ2xyU2hhcGVTaGFyZT12b2lkIDA7dmFyIHI9YygiLi9wcm9qZWN0cy9pY29u''@;'; + put 'put ''cy9zcmMvdXRpbHMvZGVzY3JpcHRvci1jb25maWcudHMiKSxhPWMoIi4vcHJvamVjdHMvaWNvbnMvc3JjL3V0aWxzL3N2Zy10YWctZ2VuZXJhdG9yLnRzIik7Yz1jKCIuL3Byb2plY3RzL2ljb25zL3NyYy9zaGFwZXMvY29yZS1zaGFwZXMudHMiKSxlLkNsclNoYXBlU2hhcmU9KDAsYS5jbHJJ''@;'; + put 'put ''Y29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0yNy41MywyNGE1LDUsMCwwLDAtMy42LDEuNTVMMTEuNzQsMTkuNDVhNC40Nyw0LjQ3LDAsMCwwLDAtMi44bDEyLjIxLTYuMjFhNS4xMiw1LjEyLDAsMSwwLTEuMDctMS43TDEwLjc5''@;'; + put 'put ''LDE0Ljg5YTUsNSwwLDEsMCwwLDYuMzNsMTIuMDYsNi4wN0E0LjkzLDQuOTMsMCwwLDAsMjIuNTQsMjlhNSw1LDAsMSwwLDUtNVptMC0yMGEzLDMsMCwxLDEtMywzQTMsMywwLDAsMSwyNy41Myw0Wk03LDIxYTMsMywwLDEsMSwzLTNBMywzLDAsMCwxLDcsMjFaTTI3LjUzLDMyYTMsMywwLDEs''@;'; + put 'put ''MSwzLTNBMywzLDAsMCwxLDI3LjUzLDMyWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0yNy41MywyNGE1LDUsMCwwLDAtMy42LDEuNTVMMTEuNzQsMTkuNDVhNC40Nyw0LjQ3LDAsMCwwLDAtMi44bDEyLjIxLTYu''@;'; + put 'put ''MjFhNS4xMiw1LjEyLDAsMSwwLTEuMDctMS43TDEwLjc5LDE0Ljg5YTUsNSwwLDEsMCwwLDYuMzNsMTIuMDYsNi4wN0E0LjkzLDQuOTMsMCwwLDAsMjIuNTQsMjlhNSw1LDAsMSwwLDUtNVoiLz4nKSxlLkNsclNoYXBlU3Rhcj0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWkt''@;'; + put 'put ''b3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTI3LjE5LDM0YTIuMjIsMi4yMiwwLDAsMS0xLjI0LS4zOGwtNy40Ni01YS4yMi4yMiwwLDAsMC0uMjUsMGwtNy40Niw1QTIuMjIsMi4yMiwwLDAsMSw3LjQsMzEuMjFsMi40NS04LjY0YS4yMy4yMywwLDAsMC0uMDgtLjI0TDIuNzEs''@;'; + put 'put ''MTYuNzhhMi4yMiwyLjIyLDAsMCwxLDEuMjktNGw5LS4zNGEuMjMuMjMsMCwwLDAsLjItLjE1bDMuMS04LjQzYTIuMjIsMi4yMiwwLDAsMSw0LjE3LDBsMy4xLDguNDNhLjIzLjIzLDAsMCwwLC4yLjE1bDksLjM0YTIuMjIsMi4yMiwwLDAsMSwxLjI5LDRMMjcsMjIuMzNhLjIyLjIyLDAsMCww''@;'; + put 'put ''LS4wOC4yNGwyLjQ1LDguNjRBMi4yMywyLjIzLDAsMCwxLDI3LjE5LDM0Wm0tOC44Mi03LjQyQTIuMjEsMi4yMSwwLDAsMSwxOS42LDI3bDcuNDYsNWEuMjIuMjIsMCwwLDAsLjM0LS4yNWwtMi40NS04LjY0YTIuMjEsMi4yMSwwLDAsMSwuNzctMi4zNWw3LjA2LTUuNTVhLjIyLjIyLDAsMCww''@;'; + put 'put ''LS4xMy0uNGwtOS0uMzRhMi4yMiwyLjIyLDAsMCwxLTItMS40NmwtMy4xLTguNDNhLjIyLjIyLDAsMCwwLS40MiwwTDE1LjA2LDEzYTIuMjIsMi4yMiwwLDAsMS0yLDEuNDZsLTksLjM0YS4yMi4yMiwwLDAsMC0uMTMuNEwxMSwyMC43NmEyLjIyLDIuMjIsMCwwLDEsLjc3LDIuMzVMOS4zMywz''@;'; + put 'put ''MS43NWEuMjEuMjEsMCwwLDAsLjA4LjI0LjIuMiwwLDAsMCwuMjYsMGw3LjQ2LTVBMi4yMiwyLjIyLDAsMCwxLDE4LjM2LDI2LjYyWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zNCwxNi43OGEyLjIyLDIuMjIs''@;'; + put 'put ''MCwwLDAtMS4yOS00bC05LS4zNGEuMjMuMjMsMCwwLDEtLjItLjE1TDIwLjQsMy44OWEyLjIyLDIuMjIsMCwwLDAtNC4xNywwbC0zLjEsOC40M2EuMjMuMjMsMCwwLDEtLjIuMTVsLTksLjM0YTIuMjIsMi4yMiwwLDAsMC0xLjI5LDRsNy4wNiw1LjU1YS4yMy4yMywwLDAsMSwuMDguMjRMNy4z''@;'; + put 'put ''NSwzMS4yMWEyLjIyLDIuMjIsMCwwLDAsMy4zOCwyLjQ1bDcuNDYtNWEuMjIuMjIsMCwwLDEsLjI1LDBsNy40Niw1YTIuMiwyLjIsMCwwLDAsMi41NSwwLDIuMiwyLjIsMCwwLDAsLjgzLTIuNGwtMi40NS04LjY0YS4yMi4yMiwwLDAsMSwuMDgtLjI0WiIvPicpLGUuQ2xyU2hhcGVIYWxmU3Rh''@;'; + put 'put ''cj0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTM0LDE2Ljc4YTIuMjIsMi4yMiwwLDAsMC0xLjI5LTRsLTktLjM0YS4yMy4yMywwLDAsMS0uMi0uMTVMMjAuNCwzLjg5YTIuMjIsMi4yMiwwLDAsMC00LjE3LDBs''@;'; + put 'put ''LTMuMSw4LjQzYS4yMy4yMywwLDAsMS0uMi4xNWwtOSwuMzRhMi4yMiwyLjIyLDAsMCwwLTEuMjksNGw3LjA2LDUuNTVhLjIyLjIyLDAsMCwxLC4wOC4yNEw3LjM1LDMxLjIxQTIuMjMsMi4yMywwLDAsMCw5LjQ5LDM0YTIuMjIsMi4yMiwwLDAsMCwxLjI0LS4zOGw3LjQ2LTVhLjIyLjIyLDAs''@;'; + put 'put ''MCwxLC4yNSwwbDcuNDYsNWEyLjIyLDIuMjIsMCwwLDAsMy4zOC0yLjQ1bC0yLjQ1LTguNjRhLjIzLjIzLDAsMCwxLC4wOC0uMjRaTTE4LjMzLDI2LjYyaDBhMi4yMSwyLjIxLDAsMCwwLTEuMjQuMzhMOS42MiwzMmEuMjIuMjIsMCwwLDEtLjM0LS4yNWwyLjQ1LTguNjRBMi4yMSwyLjIxLDAs''@;'; + put 'put ''MCwwLDExLDIwLjc2TDMuOSwxNS4yMWEuMjIuMjIsMCwwLDEsLjEzLS40bDktLjM0QTIuMjIsMi4yMiwwLDAsMCwxNSwxM2wzLjEtOC40M2EuMi4yLDAsMCwxLC4yMS0uMTVoMFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0x''@;'; + put 'put ''IiBkPSJNMzQsMTYuNzhhMi4yMiwyLjIyLDAsMCwwLTEuMjktNGwtOS0uMzRhLjIzLjIzLDAsMCwxLS4yLS4xNUwyMC40LDMuODlhMi4yMiwyLjIyLDAsMCwwLTQuMTcsMGwtMy4xLDguNDNhLjIzLjIzLDAsMCwxLS4yLjE1bC05LC4zNGEyLjIyLDIuMjIsMCwwLDAtMS4yOSw0bDcuMDYsNS41''@;'; + put 'put ''NWEuMjMuMjMsMCwwLDEsLjA4LjI0TDcuMzUsMzEuMjFhMi4yMiwyLjIyLDAsMCwwLDMuMzgsMi40NWw3LjQ2LTVhLjIyLjIyLDAsMCwxLC4yNSwwbDcuNDYsNWEyLjIsMi4yLDAsMCwwLDIuNTUsMCwyLjIsMi4yLDAsMCwwLC44My0yLjRsLTIuNDUtOC42NGEuMjIuMjIsMCwwLDEsLjA4LS4y''@;'; + put 'put ''NFpNMjQuOSwyMy4xMWwyLjQ1LDguNjRBLjIyLjIyLDAsMCwxLDI3LDMybC03LjQ2LTVhMi4yMSwyLjIxLDAsMCwwLTEuMjQtLjM4aDBWNC40NGgwYS4yLjIsMCwwLDEsLjIxLjE1TDIxLjYyLDEzYTIuMjIsMi4yMiwwLDAsMCwyLDEuNDZsOSwuMzRhLjIyLjIyLDAsMCwxLC4xMy40bC03LjA2''@;'; + put 'put ''LDUuNTVBMi4yMSwyLjIxLDAsMCwwLDI0LjksMjMuMTFaIi8+JyksZS5DbHJTaGFwZUJvb2ttYXJrPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMjYsMzRhMiwyLDAsMCwxLTEuNDEtLjU4TDE4LDI2LjgybC02''@;'; + put 'put ''LjU0LDYuNTJBMiwyLDAsMCwxLDgsMzEuOTNWNGEyLDIsMCwwLDEsMi0ySDI2YTIsMiwwLDAsMSwyLDJWMzJhMiwyLDAsMCwxLTIsMlptMC0yaDBWNEgxMFYzMS45M0wxOCwyNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0x''@;'; + put 'put ''IiBkPSJNMjYsMkgxMEEyLDIsMCwwLDAsOCw0VjMxLjkzYTIsMiwwLDAsMCwzLjQyLDEuNDFsNi41NC02LjUyLDYuNjMsNi42QTIsMiwwLDAsMCwyOCwzMlY0QTIsMiwwLDAsMCwyNiwyWiIvPicpLGUuQ2xyU2hhcGVFbnZlbG9wZT0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xy''@;'; + put 'put ''LWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMyLDZINEEyLDIsMCwwLDAsMiw4VjI4YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlY4QTIsMiwwLDAsMCwzMiw2Wk0zMC40NiwyOEg1LjY2bDctNy4yNC0xLjQ0LTEuMzlMNCwyNi44NFY5LjUyTDE2LjQzLDIxLjg5''@;'; + put 'put ''YTIsMiwwLDAsMCwyLjgyLDBMMzIsOS4yMXYxNy41bC03LjM2LTcuMzYtMS40MSwxLjQxWk01LjMxLDhIMzAuMzhMMTcuODQsMjAuNDdaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiBk''@;'; + put 'put ''PSJNMzIsMTMuMDhWMjYuNzFsLTcuMzYtNy4zNi0xLjQxLDEuNDFMMzAuNDYsMjhINS42Nmw3LTcuMjQtMS40NC0xLjM5TDQsMjYuODRWOS41MkwxNi40MywyMS44OWEyLDIsMCwwLDAsMi44MiwwbDguODMtOC43OGE3LjQ0LDcuNDQsMCwwLDEtMi0uODVsLTguMjYsOC4yMUw1LjMxLDhIMjIu''@;'; + put 'put ''ODFhNy40OSw3LjQ5LDAsMCwxLS4zMS0ySDRBMiwyLDAsMCwwLDIsOFYyOGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMTIuMkE3LjQ1LDcuNDUsMCwwLDEsMzIsMTMuMDhaIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNs''@;'; + put 'put ''ci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjUuODYiIHI9IjUiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgZD0iTTMzLjY4LDE1LjI2''@;'; + put 'put ''SDMyVjI2LjcxbC03LjM2LTcuMzYtMS40MSwxLjQxTDMwLjQ2LDI4SDUuNjZsNy03LjI0LTEuNDQtMS4zOUw0LDI2Ljg0VjkuNTJMMTYuNDMsMjEuODlhMiwyLDAsMCwwLDIuODIsMGw2LjY2LTYuNjNIMjMuMDhsLTUuMjQsNS4yMUw1LjMxLDhIMjAuMDZsMS4xNS0ySDRBMiwyLDAsMCwwLDIs''@;'; + put 'put ''OFYyOGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMTUuMjRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44NSwxbC01LjcyLDkuOTFh''@;'; + put 'put ''MS4yOCwxLjI4LDAsMCwwLDEuMSwxLjkxSDMzLjY4YTEuMjgsMS4yOCwwLDAsMCwxLjEtMS45MUwyOS4wNiwxQTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zMi4zMyw2''@;'; + put 'put ''YTIsMiwwLDAsMC0uNDEsMGgtMjhhMiwyLDAsMCwwLS41My4wOEwxNy44NCwyMC40N1oiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiBkPSJNMzMuODEsNy4zOSwxOS4yNSwyMS44OWEyLDIsMCwwLDEtMi44MiwwTDIsNy41''@;'; + put 'put ''YTIsMiwwLDAsMC0uMDcuNVYyOGEyLDIsMCwwLDAsMiwyaDI4YTIsMiwwLDAsMCwyLTJWOEEyLDIsMCwwLDAsMzMuODEsNy4zOVpNNS4zLDI4SDMuOTFWMjYuNTdsNy4yNy03LjIxLDEuNDEsMS40MVptMjYuNjEsMEgzMC41MWwtNy4yOS03LjIzLDEuNDEtMS40MSw3LjI3LDcuMjFaIi8+XG4g''@;'; + put 'put ''ICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0yNiwxMi4zNEE3LjQ5LDcuNDksMCwwLDEsMjIuNSw2SDMuOTJhMiwyLDAsMCwwLS41My4wOEwxNy44NCwyMC40N1oiLz5cbiAgICAgICAgICAgICAg''@;'; + put 'put ''ICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCIgZD0iTTMwLDEzLjVhNy40OSw3LjQ5LDAsMCwxLTItLjI5bC04LjcxLDguNjhhMiwyLDAsMCwxLTIuODIsMEwyLDcuNWEyLDIsMCwwLDAtLjA3LjVWMjhhMiwyLDAsMCwwLDIsMmgy''@;'; + put 'put ''OGEyLDIsMCwwLDAsMi0yVjEyLjM5QTcuNDUsNy40NSwwLDAsMSwzMCwxMy41Wk01LjMsMjhIMy45MVYyNi41N2w3LjI3LTcuMjEsMS40MSwxLjQxWm0yNi42MSwwSDMwLjUxbC03LjI5LTcuMjMsMS40MS0xLjQxLDcuMjcsNy4yMVoiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNz''@;'; + put 'put ''PSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIg''@;'; + put 'put ''ZD0iTTMzLjY4LDE1LjRIMjUuNzdsLTYuNTIsNi40OWEyLDIsMCwwLDEtMi44MiwwTDIsNy41YTIsMiwwLDAsMC0uMDcuNVYyOGEyLDIsMCwwLDAsMiwyaDI4YTIsMiwwLDAsMCwyLTJWMTUuMzhaTTUuMywyOEgzLjkxVjI2LjU3bDcuMjctNy4yMSwxLjQxLDEuNDFabTI2LjYxLDBIMzAuNTFs''@;'; + put 'put ''LTcuMjktNy4yMywxLjQxLTEuNDEsNy4yNyw3LjIxWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQiIGQ9Ik0yMi45NCwxNS40aC0uN0EzLjY4LDMuNjgsMCwwLDEsMTksOS44OUwyMS4yOSw2''@;'; + put 'put ''SDMuOTJhMiwyLDAsMCwwLS41My4wOEwxNy44NCwyMC40N1oiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0zLS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgs''@;'; + put 'put ''MCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIi8+JyksZS5DbHJTaGFwZVRhc2tzPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUt''@;'; + put 'put ''cGF0aC0xIiBkPSJNMjkuMjksMzRINi43MUExLjcsMS43LDAsMCwxLDUsMzIuMzFWNi42OUExLjc1LDEuNzUsMCwwLDEsNyw1SDlWN0g3VjMySDI5VjdIMjdWNWgyLjI1QTEuNywxLjcsMCwwLDEsMzEsNi42OVYzMi4zMUExLjcsMS43LDAsMCwxLDI5LjI5LDM0WiIvPlxuICAgICAgICAgICAg''@;'; + put 'put ''ICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMTYuNjYsMjUuNzYsMTEuMywyMC40QTEsMSwwLDAsMSwxMi43MiwxOWwzLjk0LDMuOTQsOC42NC04LjY0YTEsMSwwLDAsMSwxLjQxLDEuNDFaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGgg''@;'; + put 'put ''Y2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIGQ9Ik0yNiwxMUgxMFY3LjMzQTIuMzQsMi4zNCwwLDAsMSwxMi4zMyw1aDEuNzlhNCw0LDAsMCwxLDcuNzUsMGgxLjc5QTIuMzQsMi4zNCwwLDAsMSwyNiw3LjMzWk0xMiw5SDI0VjcuMzNBLjMzLjMzLDAsMCwwLDIz''@;'; + put 'put ''LjY3LDdIMjBWNmEyLDIsMCwwLDAtNCwwVjdIMTIuMzNhLjMzLjMzLDAsMCwwLS4zMy4zM1oiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgZD0iTTE5LDkuODksMTkuNTYsOUgxMlY3''@;'; + put 'put ''LjMzQS4zMy4zMywwLDAsMSwxMi4zMyw3SDE2VjZhMiwyLDAsMCwxLDQsMFY3aC43MWwxLjE2LTJhNCw0LDAsMCwwLTcuNzQsMEgxMi4zM0EyLjM0LDIuMzQsMCwwLDAsMTAsNy4zM1YxMWg4LjY0QTMuNjUsMy42NSwwLDAsMSwxOSw5Ljg5WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNs''@;'; + put 'put ''YXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIiBkPSJNMjQuMTksMTUuNGwtNy41Myw3LjUzTDEyLjcyLDE5QTEsMSwwLDAsMCwxMS4zLDIwLjRsNS4zNiw1LjM2TDI2LjcxLDE1LjcxYTEsMSwwLDAsMCwuMi0uMzFaIi8+XG4gICAgICAg''@;'; + put 'put ''ICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiIGQ9Ik0yOSwxNS40VjMySDdWN0g5VjVIN0ExLjc1LDEuNzUsMCwwLDAsNSw2LjY5VjMyLjMxQTEuNywxLjcsMCwwLDAsNi43MSwzNEgyOS4yOUExLjcsMS43''@;'; + put 'put ''LDAsMCwwLDMxLDMyLjMxVjE1LjRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4y''@;'; + put 'put ''MywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0x''@;'; + put 'put ''Mi43MiwxOUExLDEsMCwwLDAsMTEuMywyMC40bDUuMzYsNS4zNkwyNi43MSwxNS43MWExLDEsMCwwLDAtMS40MS0xLjQxbC04LjY0LDguNjRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2Vk''@;'; + put 'put ''IiBkPSJNMjMuMTMsOUgxMlY3LjMzQS4zMy4zMywwLDAsMSwxMi4zMyw3SDE2VjZhMiwyLDAsMCwxLDQsMFY3aDIuNTdhNy41Miw3LjUyLDAsMCwxLS4wNy0xLDcuNTIsNy41MiwwLDAsMSwuMDctMWgtLjdhNCw0LDAsMCwwLTcuNzUsMEgxMi4zM0EyLjM0LDIuMzQsMCwwLDAsMTAsNy4zM1Yx''@;'; + put 'put ''MUgyNC40MkE3LjUsNy41LDAsMCwxLDIzLjEzLDlaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIiBkPSJNMzAsMTMuNWE3LjUyLDcuNTIsMCwwLDEtMS0uMDdWMzJIN1Y3SDlWNUg3QTEu''@;'; + put 'put ''NzUsMS43NSwwLDAsMCw1LDYuNjlWMzIuMzFBMS43LDEuNywwLDAsMCw2LjcxLDM0SDI5LjI5QTEuNywxLjcsMCwwLDAsMzEsMzIuMzFWMTMuNDNBNy41Miw3LjUyLDAsMCwxLDMwLDEzLjVaIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2Vk''@;'; + put 'put ''IGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMjkuMjksNC45NWgtNy4yYTQuMzEsNC4zMSwwLDAsMC04''@;'; + put 'put ''LjE3LDBIN0ExLjc1LDEuNzUsMCwwLDAsNSw2LjY0VjMyLjI2YTEuNywxLjcsMCwwLDAsMS43MSwxLjY5SDI5LjI5QTEuNywxLjcsMCwwLDAsMzEsMzIuMjZWNi42NEExLjcsMS43LDAsMCwwLDI5LjI5LDQuOTVabS0xOCwzYTEsMSwwLDAsMSwxLTFoMy40NFY2LjMyYTIuMzEsMi4zMSwwLDAs''@;'; + put 'put ''MSw0LjYzLDBWN2gzLjQ0YTEsMSwwLDAsMSwxLDFWOS44SDExLjI1Wm0xNC41Miw5LjIzLTkuMTIsOS4xMi01LjI0LTUuMjRhMS40LDEuNCwwLDAsMSwyLTJsMy4yNiwzLjI2LDcuMTQtNy4xNGExLjQsMS40LDAsMSwxLDIsMloiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xy''@;'; + put 'put ''LWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiBkPSJNMjUuODgsMTUuNGExLjM4LDEuMzgsMCwwLDEtLjExLDEuODFsLTkuMTIsOS4xMi01LjI0LTUuMjRhMS40LDEuNCwwLDAsMSwyLTJsMy4yNiwzLjI2LDctN0gyMi4yM0EzLjY4LDMuNjgsMCwwLDEsMTks''@;'; + put 'put ''OS44OWwwLS4wOUgxMS4yNVY4YTEsMSwwLDAsMSwxLTFoMy40NFY2LjMyYTIuMzEsMi4zMSwwLDAsMSw0LjYzLDBWN2guNDJMMjIsNC43NmE0LjMsNC4zLDAsMCwwLTguMDkuMTlIN0ExLjc1LDEuNzUsMCwwLDAsNSw2LjY0VjMyLjI2YTEuNywxLjcsMCwwLDAsMS43MSwxLjY5SDI5LjI5QTEu''@;'; + put 'put ''NywxLjcsMCwwLDAsMzEsMzIuMjZWMTUuNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIu''@;'; + put 'put ''MjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0zMCwx''@;'; + put 'put ''My41YTcuNDksNy40OSwwLDAsMS02LjQ2LTMuN0gxMS4yNVY4YTEsMSwwLDAsMSwxLTFoMy40NFY2LjMyYTIuMzEsMi4zMSwwLDAsMSw0LjYzLDBWN2gyLjI2YTcuNTMsNy41MywwLDAsMS0uMDctMSw3LjUzLDcuNTMsMCwwLDEsLjA4LTEuMDVoLS41YTQuMzEsNC4zMSwwLDAsMC04LjE3LDBI''@;'; + put 'put ''N0ExLjc1LDEuNzUsMCwwLDAsNSw2LjY0VjMyLjI2YTEuNywxLjcsMCwwLDAsMS43MSwxLjY5SDI5LjI5QTEuNywxLjcsMCwwLDAsMzEsMzIuMjZWMTMuNDNBNy41Miw3LjUyLDAsMCwxLDMwLDEzLjVabS00LjIzLDMuNzEtOS4xMiw5LjEyLTUuMjQtNS4yNGExLjQsMS40LDAsMCwxLDItMmwz''@;'; + put 'put ''LjI2LDMuMjYsNy4xNC03LjE0YTEuNCwxLjQsMCwxLDEsMiwyWiIvPlxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz4nKSxlLkNsclNo''@;'; + put 'put ''YXBlRmxhZz0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTYsMzRhMSwxLDAsMCwxLTEtMVYzQTEsMSwwLDAsMSw3LDNWMzNBMSwxLDAsMCwxLDYsMzRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9''@;'; + put 'put ''ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0zMC41NSwzLjgyYTEsMSwwLDAsMC0xLDAsMTQuOSwxNC45LDAsMCwxLTYuMTMsMS4xNiwxMy4xMSwxMy4xMSwwLDAsMS01LjE4LTEuNDksMTIuNzgsMTIuNzgsMCwwLDAtNS0xLjQ1QTEwLjg2LDEwLjg2LDAsMCwwLDks''@;'; + put 'put ''Mi44NVY1LjA4QTguOCw4LjgsMCwwLDEsMTMuMjUsNGExMS4yMiwxMS4yMiwwLDAsMSw0LjIsMS4yOCwxNC44NCwxNC44NCwwLDAsMCw2LDEuNjZBMTguNzUsMTguNzUsMCwwLDAsMjksNi4xMlYxOC45NWExNi4xNiwxNi4xNiwwLDAsMS01LjU4LjkzLDEzLjExLDEzLjExLDAsMCwxLTUuMTgt''@;'; + put 'put ''MS40OSwxMi43OCwxMi43OCwwLDAsMC01LTEuNDVBMTAuODYsMTAuODYsMCwwLDAsOSwxNy43OVYyMGE4LjgsOC44LDAsMCwxLDQuMjUtMS4wOCwxMS4yMiwxMS4yMiwwLDAsMSw0LjIsMS4yOCwxNC44NCwxNC44NCwwLDAsMCw2LDEuNjYsMTYuNzksMTYuNzksMCwwLDAsNy0xLjM3LDEsMSww''@;'; + put 'put ''LDAsMCwuNTUtLjg5VjQuNjdBMSwxLDAsMCwwLDMwLjU1LDMuODJaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTUuOTIsMmExLDEsMCwwLDAtMSwxVjMzYTEsMSwwLDAsMCwyLDBWM0ExLDEsMCwwLDAsNS45Miwy''@;'; + put 'put ''WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGQ9Ik0zMC41LDMuODJhMSwxLDAsMCwwLTEsMCwxNC45LDE0LjksMCwwLDEtNi4xMywxLjE2LDEzLjExLDEzLjExLDAsMCwxLTUuMTgtMS40OUExMi43OCwxMi43OCwwLDAs''@;'; + put 'put ''MCwxMy4yLDIsMTAuODYsMTAuODYsMCwwLDAsOSwyLjg1VjIwYTguOCw4LjgsMCwwLDEsNC4yNS0xLjA4LDExLjIyLDExLjIyLDAsMCwxLDQuMiwxLjI4LDE0Ljg0LDE0Ljg0LDAsMCwwLDYsMS42NiwxNi43OSwxNi43OSwwLDAsMCw3LTEuMzcsMSwxLDAsMCwwLC41NS0uODlWNC42N0ExLDEs''@;'; + put 'put ''MCwwLDAsMzAuNSwzLjgyWiIvPicpLGUuQ2xyU2hhcGVJbmJveD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTIuMjMsMTMuMDlhMSwxLDAsMCwwLDAsMS40MUwxOCwyMC4zbDUuNzktNS43OWExLDEsMCwwLDAtMS40MS0xLjQxTDE5LDE2LjQ3VjJBMSwxLDAsMCwwLDE4LDFhMSwxLDAs''@;'; + put 'put ''MCwwLTEsMXYxNC41bC0zLjM4LTMuMzhBMSwxLDAsMCwwLDEyLjIzLDEzLjA5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOS41LDVIMjJWN2g3VjIxSDIzLjYxbC0uMS44OWE1LjQyLDUuNDIsMCwwLDEtMTAu''@;'; + put 'put ''NzcsMGwtLjEtLjg5SDdWN2g3VjVINi41QTEuNSwxLjUsMCwwLDAsNSw2LjV2MjVBMS41LDEuNSwwLDAsMCw2LjUsMzNoMjNBMS41LDEuNSwwLDAsMCwzMSwzMS41VjYuNUExLjUsMS41LDAsMCwwLDI5LjUsNVpNMjksMzFIN1YyM2gzLjkxYTcuNDIsNy40MiwwLDAsMCwxNC40NCwwSDI5WiIg''@;'; + put 'put ''Y2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMi4yMywxMy4wOWExLDEsMCwwLDAsMCwxLjQxTDE4LDIwLjNsNS43OS01Ljc5YTEsMSwwLDAsMC0xLjQxLTEuNDFMMTksMTYuNDdWMkExLDEsMCwwLDAsMTgsMWExLDEs''@;'; + put 'put ''MCwwLDAtMSwxdjE0LjVsLTMuMzgtMy4zOEExLDEsMCwwLDAsMTIuMjMsMTMuMDlaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMCwxMy41YTcuNTIsNy41MiwwLDAsMS0xLS4wN1Yy''@;'; + put 'put ''MUgyMy42MWwtLjEuODlhNS40Miw1LjQyLDAsMCwxLTEwLjc3LDBsLS4xLS44OUg3VjdoN1Y1SDYuNUExLjUsMS41LDAsMCwwLDUsNi41djI1QTEuNSwxLjUsMCwwLDAsNi41LDMzaDIzQTEuNSwxLjUsMCwwLDAsMzEsMzEuNVYxMy40M0E3LjUyLDcuNTIsMCwwLDEsMzAsMTMuNVpNMjksMzFI''@;'; + put 'put ''N1YyM2gzLjkxYTcuNDIsNy40MiwwLDAsMCwxNC40NCwwSDI5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1i''@;'; + put 'put ''YWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIvPicpLGUuQ2xyU2hhcGVIZWFydD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTgsMzIuNDNhMSwxLDAsMCwxLS42MS0uMjFDMTEuODMsMjcuOSw4LDI0LjE4LDUuMzIsMjAuNTEsMS45LDE1LjgyLDEu''@;'; + put 'put ''MTIsMTEuNDksMyw3LjY0YzEuMzQtMi43NSw1LjE5LTUsOS42OS0zLjY5QTkuODcsOS44NywwLDAsMSwxOCw3LjcyYTkuODcsOS44NywwLDAsMSw1LjMxLTMuNzdjNC40OS0xLjI5LDguMzUuOTQsOS42OSwzLjY5LDEuODgsMy44NSwxLjEsOC4xOC0yLjMyLDEyLjg3QzI4LDI0LjE4LDI0LjE3''@;'; + put 'put ''LDI3LjksMTguNjEsMzIuMjJBMSwxLDAsMCwxLDE4LDMyLjQzWk0xMC4xMyw1LjU4QTUuOSw1LjksMCwwLDAsNC44LDguNTFjLTEuNTUsMy4xOC0uODUsNi43MiwyLjE0LDEwLjgxQTU3LjEzLDU3LjEzLDAsMCwwLDE4LDMwLjE2LDU3LjEzLDU3LjEzLDAsMCwwLDI5LjA2LDE5LjMzYzMtNC4x''@;'; + put 'put ''LDMuNjktNy42NCwyLjE0LTEwLjgxLTEtMi00LTMuNTktNy4zNC0yLjY1YTgsOCwwLDAsMC00Ljk0LDQuMiwxLDEsMCwwLDEtMS44NSwwLDcuOTMsNy45MywwLDAsMC00Ljk0LTQuMkE3LjMxLDcuMzEsMCwwLDAsMTAuMTMsNS41OFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxp''@;'; + put 'put ''bmUtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMsNy42NGMtMS4zNC0yLjc1LTUuMi01LTkuNjktMy42OUE5Ljg3LDkuODcsMCwwLDAsMTgsNy43MmE5Ljg3LDkuODcsMCwwLDAtNS4zMS0zLjc3QzguMTksMi42Niw0LjM0LDQuODksMyw3LjY0Yy0xLjg4LDMuODUtMS4xLDgu''@;'; + put 'put ''MTgsMi4zMiwxMi44N0M4LDI0LjE4LDExLjgzLDI3LjksMTcuMzksMzIuMjJhMSwxLDAsMCwwLDEuMjMsMGM1LjU1LTQuMzEsOS4zOS04LDEyLjA3LTExLjcxQzM0LjEsMTUuODIsMzQuODgsMTEuNDksMzMsNy42NFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz4n''@;'; + put 'put ''KSxlLkNsclNoYXBlSGVhcnRCcm9rZW49KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMzLDcuNjRjLTEuMzQtMi43NS01LjA5LTUtOS42OS0zLjY5YTkuODcsOS44NywwLDAsMC02LDQuODQsMTguOSwxOC45LDAsMCwwLTIuMjMsNS4zM2w1LjI4LDIuMzQtNC42LDQuMzcsMy40OSw0LjEs''@;'; + put 'put ''MS41Mi0xLjNMMTguNTQsMjFsNS40LTUuMTNMMTcuNTgsMTNBMTYuMjMsMTYuMjMsMCwwLDEsMTkuNzUsOC45YTcuNjgsNy42OCwwLDAsMSw0LjExLTNjMy4zNC0uODksNi4zNC42LDcuMzQsMi42NSwxLjU1LDMuMTguODUsNi43Mi0yLjE0LDEwLjgxQTU3LjE2LDU3LjE2LDAsMCwxLDE4LDMw''@;'; + put 'put ''LjE2LDU3LjE2LDU3LjE2LDAsMCwxLDYuOTQsMTkuMzNjLTMtNC4xLTMuNjktNy42NC0yLjE0LTEwLjgxYTUuOSw1LjksMCwwLDEsNS4zMy0yLjkzLDcuMzEsNy4zMSwwLDAsMSwyLC4yOSw3LjcsNy43LDAsMCwxLDMuMzgsMmwuMTUtLjNhMTAuNjYsMTAuNjYsMCwwLDEsMS0xLjQxLDkuNjQs''@;'; + put 'put ''OS42NCwwLDAsMC0zLjk0LTIuMjJDOC4yLDIuNjYsNC4zNCw0Ljg5LDMsNy42NGMtMS44OCwzLjg1LTEuMSw4LjE4LDIuMzIsMTIuODdDOCwyNC4xOCwxMS44MywyNy45LDE3LjM5LDMyLjIyYTEsMSwwLDAsMCwxLjIzLDBjNS41NS00LjMxLDkuMzktOCwxMi4wNy0xMS43MUMzNC4xLDE1Ljgy''@;'; + put 'put ''LDM0Ljg4LDExLjQ5LDMzLDcuNjRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLDcuNjRjLTEuMzQtMi43NS01LjItNS05LjY5LTMuNjlBMTEuNTUsMTEuNTUsMCwwLDAsMTguMTksNy41YTE2Ljg5LDE2Ljg5''@;'; + put 'put ''LDAsMCwwLTIuNDgsNC41NkwyMi4yNywxNSwxNi43LDIwLjI2LDE5LDIzbC0xLjU3LDEuMzQtMy42LTQuMjIsNC43NC00LjUxLTUuNDQtMi40MWExOS40OSwxOS40OSwwLDAsMSwyLjMtNS41LDE0Ljc3LDE0Ljc3LDAsMCwxLDEuMDYtMS41NGwuMDYsMGE5LjY2LDkuNjYsMCwwLDAtMy44OS0y''@;'; + put 'put ''LjE4QzguMTksMi42Niw0LjM0LDQuODksMyw3LjY0Yy0xLjg4LDMuODUtMS4xLDguMTgsMi4zMiwxMi44N0M4LDI0LjE4LDExLjgzLDI3LjksMTcuMzksMzIuMjJhMSwxLDAsMCwwLDEuMjMsMGM1LjU1LTQuMzEsOS4zOS04LDEyLjA3LTExLjcxQzM0LjEsMTUuODIsMzQuODgsMTEuNDksMzMs''@;'; + put 'put ''Ny42NFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz4nKSxlLkNsclNoYXBlVGFsa0J1YmJsZXM9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTIzLDI2YTEsMSwwLDAsMS0xLDFIOGMtLjIyLDAtLjQzLjItLjYxLjMzTDQsMzBWMTRhMSwxLDAsMCwxLDEtMUg4''@;'; + put 'put ''Ljg2VjExSDVhMywzLDAsMCwwLTMsM1YzMmExLDEsMCwwLDAsLjU2Ljg5LDEsMSwwLDAsMCwxLS4xTDguNzEsMjlIMjIuMTVBMi43NywyLjc3LDAsMCwwLDI1LDI2LjEzVjI1SDIzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxw''@;'; + put 'put ''YXRoIGQ9Ik0zMSw0SDE0YTMsMywwLDAsMC0zLDNWMTlhMywzLDAsMCwwLDMsM0gyNy41NWw0Ljc4LDMuNzFhMSwxLDAsMCwwLDEsLjExLDEsMSwwLDAsMCwuNTctLjlWN0EzLDMsMCwwLDAsMzEsNFpNMzIsMjIuOTQsMjguNSwyMC4yMWExLDEsMCwwLDAtLjYxLS4yMUgxNGExLDEsMCwwLDEt''@;'; + put 'put ''MS0xVjdhMSwxLDAsMCwxLDEtMUgzMUExLjEsMS4xLDAsMCwxLDMyLDcuMDZaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIzLDI2YTEsMSwwLDAsMS0xLDFIOGMtLjIyLDAtLjQzLjItLjYxLjMzTDQsMzBWMTRh''@;'; + put 'put ''MSwxLDAsMCwxLDEtMUg4Ljg2VjExSDVhMywzLDAsMCwwLTMsM1YzMmExLDEsMCwwLDAsLjU2Ljg5LDEsMSwwLDAsMCwxLS4xTDguNzEsMjlIMjIuMTVBMi43NywyLjc3LDAsMCwwLDI1LDI2LjEzVjI1SDIzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBh''@;'; + put 'put ''dGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIsMTMuMjJ2OS43MkwyOC41LDIwLjIxYTEsMSwwLDAsMC0uNjEtLjIxSDE0YTEsMSwwLDAsMS0xLTFWN2ExLDEsMCwwLDEsMS0xSDIyLjVhNy40OSw3LjQ5LDAsMCwxLC4yOC0ySDE0YTMsMywwLDAsMC0zLDNWMTlhMywz''@;'; + put 'put ''LDAsMCwwLDMsM0gyNy41NWw0Ljc4LDMuNzFhMSwxLDAsMCwwLDEsLjExLDEsMSwwLDAsMCwuNTctLjlWMTIuMzdBNy40NSw3LjQ1LDAsMCwxLDMyLDEzLjIyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAg''@;'; + put 'put ''ICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTgsMTlWMTFINWEzLDMsMCwwLDAtMywzVjMyYTEsMSwwLDAsMCwu''@;'; + put 'put ''NTYuODksMSwxLDAsMCwwLDEtLjFMOC43MSwyOUgyMi4xNUEyLjc3LDIuNzcsMCwwLDAsMjUsMjYuMTNWMjVIMTRBNiw2LDAsMCwxLDgsMTlaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzEsNEgxNGEzLDMsMCwwLDAt''@;'; + put 'put ''MywzVjE5YTMsMywwLDAsMCwzLDNIMjcuNTVsNC43OCwzLjcxYTEsMSwwLDAsMCwxLC4xMSwxLDEsMCwwLDAsLjU3LS45VjdBMywzLDAsMCwwLDMxLDRaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNOCwxOVYxMUg1YTMs''@;'; + put 'put ''MywwLDAsMC0zLDNWMzJhMSwxLDAsMCwwLC41Ni44OSwxLDEsMCwwLDAsMS0uMUw4LjcxLDI5SDIyLjE1QTIuNzcsMi43NywwLDAsMCwyNSwyNi4xM1YyNUgxNEE2LDYsMCwwLDEsOCwxOVoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIi8+''@;'; + put 'put ''XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAsMTMuNUE3LjQ4LDcuNDgsMCwwLDEsMjIuNzgsNEgxNGEzLDMsMCwwLDAtMywzVjE5YTMsMywwLDAsMCwzLDNIMjcuNTVsNC43OCwzLjcxYTEsMSwwLDAsMCwxLC4xMSwxLDEsMCwwLDAsLjU3LS45VjEyLjM3QTcuNDUsNy40NSwwLDAsMSwzMCwx''@;'; + put 'put ''My41WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0zLS1iYWRnZWQgY2xyLWkt''@;'; + put 'put ''YmFkZ2UiLz4nKSxlLkNsclNoYXBlQ2hhdEJ1YmJsZT0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTgsMi41Yy04LjgyLDAtMTYsNi4yOC0xNiwxNHM3LjE4LDE0LDE2LDE0YTE4LDE4LDAsMCwwLDQuODgtLjY4bDUuNTMsMy41MmExLDEsMCwwLDAsMS41NC0uODRsMC02LjczYTEzLDEz''@;'; + put 'put ''LDAsMCwwLDQtOS4yN0MzNCw4Ljc4LDI2LjgyLDIuNSwxOCwyLjVaTTI4LjI5LDI0LjYxYTEsMSwwLDAsMC0uMzIuNzNsMCw1LjM0LTQuMzgtMi43OWExLDEsMCwwLDAtLjgzLS4xMUExNiwxNiwwLDAsMSwxOCwyOC41Yy03LjcyLDAtMTQtNS4zOC0xNC0xMnM2LjI4LTEyLDE0LTEyLDE0LDUu''@;'; + put 'put ''MzgsMTQsMTJBMTEuMDgsMTEuMDgsMCwwLDEsMjguMjksMjQuNjFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNSwxNS41SDExYTEsMSwwLDAsMCwwLDJIMjVhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHIt''@;'; + put 'put ''aS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIxLjc1LDIwLjVoLTcuNWExLDEsMCwwLDAsMCwyaDcuNWExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+XG4gICAgICAgICAg''@;'; + put 'put ''ICA8cGF0aCBkPSJNMTEuMjgsMTIuNUgyNC43MmExLDEsMCwwLDAsMC0ySDExLjI4YTEsMSwwLDAsMCwwLDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy4zOCwxMi42OWE3LjQzLDcuNDMsMCwwLDEtMS44''@;'; + put 'put ''OS42NkExMC4zNSwxMC4zNSwwLDAsMSwzMiwxNi41YTExLjA4LDExLjA4LDAsMCwxLTMuNzEsOC4xMSwxLDEsMCwwLDAtLjMyLjczbDAsNS4zNC00LjM4LTIuNzlhMSwxLDAsMCwwLS44My0uMTFBMTYsMTYsMCwwLDEsMTgsMjguNWMtNy43MiwwLTE0LTUuMzgtMTQtMTJzNi4yOC0xMiwxNC0x''@;'; + put 'put ''MmExNiwxNiwwLDAsMSw0LjU1LjY2QTcuNDQsNy40NCwwLDAsMSwyMywzLjIyYTE4LDE4LDAsMCwwLTUtLjcyYy04LjgyLDAtMTYsNi4yOC0xNiwxNHM3LjE4LDE0LDE2LDE0YTE4LDE4LDAsMCwwLDQuODgtLjY4bDUuNTMsMy41MmExLDEsMCwwLDAsMS41NC0uODRsMC02LjczYTEzLDEzLDAs''@;'; + put 'put ''MCwwLDQtOS4yN0ExMi4zMiwxMi4zMiwwLDAsMCwzMy4zOCwxMi42OVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMSwxNS41YTEsMSwwLDAsMCwwLDJIMjVhMSwxLDAsMCwwLDAt''@;'; + put 'put ''MloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNC4yNSwyMC41YTEsMSwwLDAsMCwwLDJoNy41YTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNs''@;'; + put 'put ''ci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTAuMjgsMTEuNWExLDEsMCwwLDAsMSwxSDI0LjcyYTEsMSwwLDAsMCwuODMtLjQ3QTcuNTMsNy41MywwLDAsMSwyNCwxMC41SDExLjI4QTEsMSwwLDAsMCwxMC4yOCwxMS41WiIgY2xhc3M9ImNs''@;'; + put 'put ''ci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYmFkZ2VkIGNsci1pLWJhZGdl''@;'; + put 'put ''IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDIuNWMtOC44MiwwLTE2LDYuMjgtMTYsMTRzNy4xOCwxNCwxNiwxNGExOCwxOCwwLDAsMCw0Ljg4LS42OGw1LjUzLDMuNTJhMSwxLDAsMCwwLDEuNTQtLjg0bDAtNi43M2ExMywxMywwLDAsMCw0LTkuMjdDMzQsOC43OCwyNi44MiwyLjUs''@;'; + put 'put ''MTgsMi41Wm04LDE0YTEsMSwwLDAsMS0xLDFIMTFhMSwxLDAsMCwxLDAtMkgyNUExLDEsMCwwLDEsMjYsMTYuNVptLTMuMjUsNWExLDEsMCwwLDEtMSwxaC03LjVhMSwxLDAsMCwxLDAtMmg3LjVBMSwxLDAsMCwxLDIyLjc1LDIxLjVabS0xMi40Ny0xMGExLDEsMCwwLDEsMS0xSDI0LjcyYTEs''@;'; + put 'put ''MSwwLDAsMSwwLDJIMTEuMjhBMSwxLDAsMCwxLDEwLjI4LDExLjVaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLDEzLjI1YTcuNDYsNy40NiwwLDAsMS00LjM1LTEuNCwxLDEsMCwwLDEtLjkzLjY1SDExLjI4YTEs''@;'; + put 'put ''MSwwLDAsMSwwLTJIMjQuMkE3LjQ2LDcuNDYsMCwwLDEsMjMsMy4yYTE4LDE4LDAsMCwwLTUtLjdjLTguODIsMC0xNiw2LjI4LTE2LDE0czcuMTgsMTQsMTYsMTRhMTgsMTgsMCwwLDAsNC44OC0uNjhsNS41MywzLjUyYTEsMSwwLDAsMCwxLjU0LS44NGwwLTYuNzNhMTMsMTMsMCwwLDAsNC05''@;'; + put 'put ''LjI3LDEyLjM0LDEyLjM0LDAsMCwwLS42OC00QTcuNDYsNy40NiwwLDAsMSwzMCwxMy4yNVpNMjEuNzUsMjIuNWgtNy41YTEsMSwwLDAsMSwwLTJoNy41YTEsMSwwLDAsMSwwLDJabTMuMjUtNUgxMWExLDEsMCwwLDEsMC0ySDI1YTEsMSwwLDAsMSwwLDJaIiBjbGFzcz0iY2xyLWktc29saWQt''@;'; + put 'put ''LWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNS43NSIgcj0iNSIgIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPicpLGUuQ2xyU2hh''@;'; + put 'put ''cGVQaWN0dXJlPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMiw0SDRBMiwyLDAsMCwwLDIsNlYzMGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWNkEyLDIsMCwwLDAsMzIsNFpNNCwzMFY2SDMyVjMwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRo''@;'; + put 'put ''LTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik04LjkyLDE0YTMsMywwLDEsMC0zLTNBMywzLDAsMCwwLDguOTIsMTRabTAtNC42QTEuNiwxLjYsMCwxLDEsNy4zMywxMSwxLjYsMS42LDAsMCwxLDguOTIsOS40MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0y''@;'; + put 'put ''Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIuNzgsMTUuMzdsLTUuNCw1LjQtNC00YTEsMSwwLDAsMC0xLjQxLDBMNS45MiwyMi45djIuODNsNi43OS02Ljc5TDE2LDIyLjE4bC0zLjc1LDMuNzVIMTVsOC40NS04LjQ1TDMwLDI0VjIxLjE4bC01LjgxLTUuODFBMSwxLDAsMCwwLDIyLjc4''@;'; + put 'put ''LDE1LjM3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMS45MywxMWEzLDMsMCwxLDAtMywzQTMsMywwLDAsMCwxMS45MywxMVptLTQuNiwwYTEuNiwxLjYsMCwxLDEsMS42LDEuNkExLjYsMS42LDAsMCwxLDcu''@;'; + put 'put ''MzMsMTFaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNy4zOCwyMC43N2wtNC00YTEsMSwwLDAsMC0xLjQxLDBMNS45MiwyMi45djIuODNsNi43OS02Ljc5TDE2LDIyLjE4bC0zLjc1''@;'; + put 'put ''LDMuNzVIMTVsOC40NS04LjQ1TDMwLDI0VjIxLjE4bC01LjgxLTUuODFhMSwxLDAsMCwwLTEuNDEsMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMyLDEzLjIyVjMwSDRWNkgyMi41''@;'; + put 'put ''YTcuNDksNy40OSwwLDAsMSwuMjgtMkg0QTIsMiwwLDAsMCwyLDZWMzBhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjEyLjM0QTcuNDUsNy40NSwwLDAsMSwzMiwxMy4yMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIv''@;'; + put 'put ''PlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMiw0SDRBMiwyLDAsMCwwLDIsNlYzMGEy''@;'; + put 'put ''LDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWNkEyLDIsMCwwLDAsMzIsNFpNOC45Miw4YTMsMywwLDEsMS0zLDNBMywzLDAsMCwxLDguOTIsOFpNNiwyN1YyMi45bDYtNi4wOGExLDEsMCwwLDEsMS40MSwwTDE2LDE5LjM1LDguMzIsMjdabTI0LDBIMTEuMTVsNi4yMy02LjIzLDUuNC01''@;'; + put 'put ''LjRhMSwxLDAsMCwxLDEuNDEsMEwzMCwyMS4xOFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMCwxMy41QTcuNDgsNy40OCwwLDAsMSwyMi43OCw0SDRBMiwyLDAsMCwwLDIsNlYzMGEyLDIsMCwwLDAsMiwySDMyYTIs''@;'; + put 'put ''MiwwLDAsMCwyLTJWMTIuMzRBNy40Niw3LjQ2LDAsMCwxLDMwLDEzLjVaTTguOTIsOGEzLDMsMCwxLDEtMywzQTMsMywwLDAsMSw4LjkyLDhaTTYsMjdWMjIuOWw2LTYuMDhhMSwxLDAsMCwxLDEuNDEsMEwxNiwxOS4zNSw4LjMyLDI3Wm0yNCwwSDExLjE1bDYuMjMtNi4yMyw1LjQtNS40YTEs''@;'; + put 'put ''MSwwLDAsMSwxLjQxLDBMMzAsMjEuMThaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1w''@;'; + put 'put ''YXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIvPicpLGUuQ2xyU2hhcGVIYXBweUZhY2U9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlptMCwzMEExNCwxNCwwLDEsMSwzMiwxOCwxNCwxNCwwLDAsMSwxOCwzMloiIGNs''@;'; + put 'put ''YXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIxMC44OSIgY3k9IjEzLjg5IiByPSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMjUu''@;'; + put 'put ''MDUiIGN5PSIxMy44OSIgcj0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOC4xMywyOC4yMWE4LjY3LDguNjcsMCwwLDAsOC4yNi02SDkuODdBOC42Nyw4LjY3LDAsMCwwLDE4LjEzLDI4LjIxWiIgY2xhc3M9''@;'; + put 'put ''ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJaTTguODksMTMuODlhMiwyLDAsMSwxLDIsMkEyLDIsMCwwLDEsOC44OSwxMy44OVptOS4yNCwxNC4zMmE4LjY3''@;'; + put 'put ''LDguNjcsMCwwLDEtOC4yNi02SDI2LjM4QTguNjcsOC42NywwLDAsMSwxOC4xMywyOC4yMVptNi45My0xMi4zMmEyLDIsMCwxLDEsMi0yQTIsMiwwLDAsMSwyNS4wNSwxNS44OVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz4nKSxlLkNsclNoYXBlTmV1dHJhbEZh''@;'; + put 'put ''Y2U9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI0LjA1LDIyLjA2aC0xMmExLDEsMCwwLDAsMCwyaDEyYTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDJBMTYsMTYsMCwxLDAs''@;'; + put 'put ''MzQsMTgsMTYsMTYsMCwwLDAsMTgsMlptMCwzMEExNCwxNCwwLDEsMSwzMiwxOCwxNCwxNCwwLDAsMSwxOCwzMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIyNS4xNiIgY3k9IjE0LjI4IiByPSIxLjgiIGNs''@;'; + put 'put ''YXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIxMS4xNiIgY3k9IjE0LjI4IiByPSIxLjgiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgs''@;'; + put 'put ''MkExNiwxNiwwLDEsMCwzNCwxOCwxNiwxNiwwLDAsMCwxOCwyWm03LjA1LDIxLjA2YTEsMSwwLDAsMS0xLDFoLTEyYTEsMSwwLDAsMSwwLTJoMTJBMSwxLDAsMCwxLDI1LjA1LDIzLjA2Wk0yNywxNC4yOGExLjgsMS44LDAsMSwxLTEuOC0xLjhBMS44LDEuOCwwLDAsMSwyNywxNC4yOFptLTE1''@;'; + put 'put ''LjgsMS44YTEuOCwxLjgsMCwxLDEsMS44LTEuOEExLjgsMS44LDAsMCwxLDExLjE2LDE2LjA4WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPicpLGUuQ2xyU2hhcGVTYWRGYWNlPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0''@;'; + put 'put ''LDE4LDE2LDE2LDAsMCwwLDE4LDJabTAsMzBBMTQsMTQsMCwxLDEsMzIsMTgsMTQsMTQsMCwwLDEsMTgsMzJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMjUuMTYiIGN5PSIxNC4yOCIgcj0iMS44IiBjbGFz''@;'; + put 'put ''cz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMTEuNDEiIGN5PSIxNC4yOCIgcj0iMS44IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LjE2''@;'; + put 'put ''LDIwYTksOSwwLDAsMC03LjMzLDMuNzgsMSwxLDAsMSwwLDEuNjMsMS4xNiw3LDcsMCwwLDEsMTEuMzEtLjEzLDEsMSwwLDAsMCwxLjYtMS4yQTksOSwwLDAsMCwxOC4xNiwyMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00Ii8+XG4gICAgICAgICAgICA8cGF0''@;'; + put 'put ''aCBkPSJNMTgsMkExNiwxNiwwLDEsMCwzNCwxOCwxNiwxNiwwLDAsMCwxOCwyWm05LDEyLjI4YTEuOCwxLjgsMCwxLDEtMS44LTEuOEExLjgsMS44LDAsMCwxLDI3LDE0LjI4Wm0tMTUuNTUsMS44YTEuOCwxLjgsMCwxLDEsMS44LTEuOEExLjgsMS44LDAsMCwxLDExLjQxLDE2LjA4Wm0xNCw3''@;'; + put 'put ''LjUzYTEsMSwwLDAsMS0xLjYsMS4yLDcsNywwLDAsMC0xMS4zMS4xMywxLDEsMCwxLDEtMS42My0xLjE2LDksOSwwLDAsMSwxNC41NC0uMTdaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+JyksZS5DbHJTaGFwZVRodW1ic1VwPSgwLGEuY2xySWNvblNWRykoJzxw''@;'; + put 'put ''YXRoIGQ9Ik0yNCwyNmMtMi45MiwxLjgyLTcuMyw0LTkuMzcsNGgtNmExNi42OCwxNi42OCwwLDAsMS0zLjMxLTYuMDhBMjYuNzEsMjYuNzEsMCwwLDEsNCwxNmg5VjZhMi4wNSwyLjA1LDAsMCwxLDEuMjYtMS42OWMuNzcsMiwyLjYyLDYuNTcsNC4yMyw4LjcyQTExLjM5LDExLjM5LDAsMCww''@;'; + put 'put ''LDI0LDE2LjkxVjE0Ljc4YTkuMTMsOS4xMywwLDAsMS0zLjkxLTNjLTEuODgtMi41MS00LjI5LTkuMTEtNC4zMS05LjE3QTEsMSwwLDAsMCwxNC41OSwyQzEzLjI1LDIuMzgsMTEsMy42LDExLDZ2OEgzYTEsMSwwLDAsMC0xLDEsMjksMjksMCwwLDAsMS40LDkuNjJjMS44OSw1LjQsNC4xLDcu''@;'; + put 'put ''MTQsNC4yLDcuMjJhMSwxLDAsMCwwLC42MS4yMWg2LjQyYzIuNDMsMCw2LjU1LTIsOS4zNy0zLjYzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzQsMzFIMjdhMSwxLDAsMCwxLTEtMVYxNGExLDEsMCwwLDEs''@;'; + put 'put ''MS0xaDdabS02LTJoNFYxNUgyOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE5LjYzLDEyLjEyQzE3LjUxLDkuMjgsMTQuODgsMiwxNC44OCwyUzEyLDIuODMsMTIsNS4yNVYxNUgyLjIzYTI5LjQ2LDI5LjQ2''@;'; + put 'put ''LDAsMCwwLDEuNDQsOS43NEM1LjYxLDMwLjI3LDcuOCwzMiw3LjgsMzJoNi44NkMxNi45LDMyLDIxLDMwLjA2LDI0LDI4LjMxVjE1LjUxQTEwLjg0LDEwLjg0LDAsMCwxLDE5LjYzLDEyLjEyWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAg''@;'; + put 'put ''IDxwYXRoIGQ9Ik0yNywxM2ExLDEsMCwwLDAtMSwxVjMwYTEsMSwwLDAsMCwxLDFoN1YxM1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+JyksZS5DbHJTaGFwZVRodW1ic0Rvd249KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTEyLDEwYzIuOTItMS44Miw3''@;'; + put 'put ''LjMtNCw5LjM3LTRoNmExNi42OCwxNi42OCwwLDAsMSwzLjMxLDYuMDhBMjYuNzEsMjYuNzEsMCwwLDEsMzIsMjBIMjNWMzBhMi4wNSwyLjA1LDAsMCwxLTEuMjYsMS42OWMtLjc3LTItMi42Mi02LjU3LTQuMjMtOC43MkExMS4zOSwxMS4zOSwwLDAsMCwxMiwxOS4wOXYyLjEzYTkuMTMsOS4x''@;'; + put 'put ''MywwLDAsMSwzLjkxLDNjMS44OCwyLjUxLDQuMjksOS4xMSw0LjMxLDkuMTdhMSwxLDAsMCwwLDEuMTkuNjNDMjIuNzUsMzMuNjIsMjUsMzIuNCwyNSwzMFYyMmg4YTEsMSwwLDAsMCwxLTEsMjksMjksMCwwLDAtMS40LTkuNjJjLTEuODktNS40LTQuMS03LjE0LTQuMi03LjIyQTEsMSwwLDAs''@;'; + put 'put ''MCwyNy43OSw0SDIxLjM3QzE4Ljk0LDQsMTQuODMsNiwxMiw3LjYzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMiw1SDlhMSwxLDAsMCwxLDEsMVYyMmExLDEsMCwwLDEtMSwxSDJaTTgsN0g0VjIxSDhaIiBj''@;'; + put 'put ''bGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNi4zNywyMy44NGMyLjEyLDIuODQsNC43NiwxMC4wNyw0Ljc2LDEwLjA3UzI0LDMzLjEzLDI0LDMwLjcxVjIxaDkuNzdhMjkuNDYsMjkuNDYsMCwwLDAtMS40NC05Ljc0''@;'; + put 'put ''QzMwLjM5LDUuNjgsMjguMiw0LDI4LjIsNEgyMS4zNUMxOS4xLDQsMTUsNS45LDEyLDcuNjV2MTIuOEExMC44NCwxMC44NCwwLDAsMSwxNi4zNywyMy44NFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNOSwyM2ExLDEs''@;'; + put 'put ''MCwwLDAsMS0xVjZBMSwxLDAsMCwwLDksNUgyVjIzWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz4nKSxlLkNsclNoYXBlQ3Jvd249KDAsYS5jbHJJY29uU1ZHKSgnXG4gIDxwYXRoIGQ9Ik00LDEzLjMzQTEuMzksMS4zOSwwLDEsMCwyLjYsMTQuNzIsMS4zOSwx''@;'; + put 'put ''LjM5LDAsMCwwLDQsMTMuMzNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICA8cGF0aCBkPSJNMzEuODEsMTUuODRhMjAuMzUsMjAuMzUsMCwwLDAtNC41OCwxLjQzLDIyLjcsMjIuNywwLDAsMC0zLjQ4LDIuMUExNy42OSwxNy42OSwwLDAsMSwyMiwx''@;'; + put 'put ''Ni41N2E0Ny42NSw0Ny42NSwwLDAsMS0yLjgtNy42OSwxLDEsMCwwLDAtMS0uNzQsMSwxLDAsMCwwLTEsLjc0LDQ2LjcxLDQ2LjcxLDAsMCwxLTIuOCw3LjY5LDE3LDE3LDAsMCwxLTEuNzYsMi44LDIyLjcsMjIuNywwLDAsMC0zLjQ4LTIuMSwyMC42NiwyMC42NiwwLDAsMC00LjU4LTEuNDMs''@;'; + put 'put ''MSwxLDAsMCwwLTEsLjM5LDEsMSwwLDAsMC0uMDksMS4wNUE1MC4xMyw1MC4xMywwLDAsMSw3LjgyLDMxLjE3YTEsMSwwLDAsMCwxLC44M0gyNy42MmExLDEsMCwwLDAsMS0uODMsNTAuMTUsNTAuMTUsMCwwLDEsNC4yNi0xMy44OSwxLDEsMCwwLDAtLjA5LTEuMDVBMSwxLDAsMCwwLDMxLjgx''@;'; + put 'put ''LDE1Ljg0Wk0yNi43OSwzMEg5LjY0YTU1LjY2LDU1LjY2LDAsMCwwLTMuNC0xMS43MSwxNS43NSwxNS43NSwwLDAsMSwyLjA5Ljc4LDIwLDIwLDAsMCwxLDMuODUsMi40NSwxLDEsMCwwLDAsMS4zOS0uMDksMTkuMjgsMTkuMjgsMCwwLDAsMi42Ny00LDQzLjQ2LDQzLjQ2LDAsMCwwLDItNC44''@;'; + put 'put ''OSw0MS43NCw0MS43NCwwLDAsMCwyLDQuODksMTkuOTIsMTkuOTIsMCwwLDAsMi42Niw0LDEsMSwwLDAsMCwxLjQuMDksMTkuMjEsMTkuMjEsMCwwLDEsMy44NS0yLjQ1LDE0Ljc3LDE0Ljc3LDAsMCwxLDIuMDktLjc4QTU1LjA3LDU1LjA3LDAsMCwwLDI2Ljc5LDMwWiIgY2xhc3M9ImNsci1p''@;'; + put 'put ''LW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgPGVsbGlwc2UgY3g9IjMzLjgzIiBjeT0iMTMuMzMiIHJ4PSIxLjM5IiByeT0iMS4zOSIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgPHBhdGggZD0iTTE4LjIyLDYuMzlBMS4zOSwxLjM5''@;'; + put 'put ''LDAsMSwwLDE2Ljg0LDUsMS4zOSwxLjM5LDAsMCwwLDE4LjIyLDYuMzlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIvPlxuICA8cGF0aCBkPSJNMTguMjMsMjYuMzRhMS4xMSwxLjExLDAsMSwwLDEuMSwxLjFBMS4xLDEuMSwwLDAsMCwxOC4yMywyNi4zNFoi''@;'; + put 'put ''IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01Ii8+XG4gIDxwYXRoIGQ9Ik0xMi41OCwyNi4zNGExLjExLDEuMTEsMCwxLDAsMS4xLDEuMUExLjEsMS4xLDAsMCwwLDEyLjU4LDI2LjM0WiIvPjxwYXRoIGQ9Ik0yMy44OSwyNi4zNGExLjExLDEuMTEsMCwxLDAsMS4x''@;'; + put 'put ''LDEuMUExLjEsMS4xLDAsMCwwLDIzLjg5LDI2LjM0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiLz5cblxuICA8cGF0aCBkPSJNMi42LDExLjkzQTEuNCwxLjQsMCwxLDAsNCwxMy4zMywxLjQsMS40LDAsMCwwLDIuNiwxMS45M1oiIGNsYXNzPSJjbHItaS1z''@;'; + put 'put ''b2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgPGVsbGlwc2UgY3g9IjMzLjgzIiBjeT0iMTMuMzMiIHJ4PSIxLjM5IiByeT0iMS4zOSIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIvPlxuICA8cGF0aCBkPSJNMTguMjIsNi4zOUExLjM5LDEuMzksMCwxLDAsMTYu''@;'; + put 'put ''ODQsNSwxLjM5LDEuMzksMCwwLDAsMTguMjIsNi4zOVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiLz5cbiAgPHBhdGggZD0iTTMxLjYzLDE2LjFBMTguNjEsMTguNjEsMCwwLDAsMjgsMTcuMzRhMjEuNTcsMjEuNTcsMCwwLDAtNCwyLjQ5LDE5LjIsMTkuMiwwLDAs''@;'; + put 'put ''MS0yLjI2LTMuNDksNDguOTIsNDguOTIsMCwwLDEtMi41Mi02LjU4LDEsMSwwLDAsMC0xLS43MWgwYTEsMSwwLDAsMC0xLC43MSw0OC40Miw0OC40MiwwLDAsMS0yLjUyLDYuNTgsMTguNjksMTguNjksMCwwLDEtMi4yNiwzLjQ4LDIyLjgxLDIyLjgxLDAsMCwwLTQtMi40OEExOC44MywxOC44''@;'; + put 'put ''MywwLDAsMCw0LjksMTYuMWExLDEsMCwwLDAtMSwuMzMsMSwxLDAsMCwwLS4xMywxLjA3LDU1LjksNTUuOSwwLDAsMSw0LDEzLjUsMSwxLDAsMCwwLDEsLjgzaDE5YTEsMSwwLDAsMCwxLS44Myw1NS45LDU1LjksMCwwLDEsNC0xMy41LDEsMSwwLDAsMC0uMTMtMS4wN0ExLDEsMCwwLDAsMzEu''@;'; + put 'put ''NjMsMTYuMVpNMTEuMDgsMjguNTVhMS4xMSwxLjExLDAsMSwxLDEuMS0xLjExQTEuMTEsMS4xMSwwLDAsMSwxMS4wOCwyOC41NVptNy4xNSwwYTEuMTEsMS4xMSwwLDAsMSwwLTIuMjEsMS4xMSwxLjExLDAsMCwxLDAsMi4yMVptNy4xNiwwYTEuMTEsMS4xMSwwLDEsMSwxLjEtMS4xMUExLjEx''@;'; + put 'put ''LDEuMTEsMCwwLDEsMjUuMzksMjguNTVaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC00Ii8+XG4gICcpLGUuQ2xyU2hhcGVIYXNodGFnPSgwLGEuY2xySWNvblNWRykoJ1xuICA8cGF0aCBkPSJNMzIsMTJIMjUuMzRsMS41NS03Ljc0YTEsMSwwLDAsMC0yLS4zOUwyMy4z''@;'; + put 'put ''LDEySDE1LjExbDEuNTUtNy43NGExLDEsMCwwLDAtMi0uMzlMMTMuMDcsMTJINmExLDEsMCwwLDAsMCwyaDYuNjdsLTEuNiw4SDRhMSwxLDAsMCwwLDAsMmg2LjY2TDkuMTEsMzEuNzRhMSwxLDAsMCwwLC43OSwxLjE3LjY4LjY4LDAsMCwwLC4yLDAsMSwxLDAsMCwwLDEtLjhMMTIuNywyNGg4''@;'; + put 'put ''LjE5bC0xLjU1LDcuNzRhMSwxLDAsMCwwLC43OSwxLjE3LjYyLjYyLDAsMCwwLC4xOSwwLDEsMSwwLDAsMCwxLS44TDIyLjkzLDI0SDMwYTEsMSwwLDAsMCwwLTJIMjMuMzNsMS42MS04SDMyYTEsMSwwLDAsMCwwLTJaTTIxLjI5LDIySDEzLjFsMS42MS04SDIyLjlaIiBjbGFzcz0iY2xyLWkt''@;'; + put 'put ''b3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuXG4gIDxwYXRoIGQ9Ik0zMS44NywxMEgyNi4zMmwxLTQuODNBMSwxLDAsMCwwLDI2LjM1LDRoLTJhMSwxLDAsMCwwLTEsLjc4TDIyLjMzLDEwaC01LjRsMS00LjgzQTEsMSwwLDAsMCwxNyw0SDE1YTEsMSwwLDAsMC0xLC43OEwxMywx''@;'; + put 'put ''MEg3YTEsMSwwLDAsMC0xLC44bC0uNDEsMmExLDEsMCwwLDAsMSwxLjJoNS41NUwxMC41LDIyaC02YTEsMSwwLDAsMC0xLC44bC0uNDEsMmExLDEsMCwwLDAsMSwxLjJIOS42OGwtMSw0LjgzYTEsMSwwLDAsMCwxLDEuMTdoMmExLDEsMCwwLDAsLjk1LS43OEwxMy42NywyNmg1LjRsLTEsNC44''@;'; + put 'put ''M0ExLDEsMCwwLDAsMTksMzJoMmExLDEsMCwwLDAsMS0uNzhMMjMuMDUsMjZoNmExLDEsMCwwLDAsMS0uOGwuNC0yYTEsMSwwLDAsMC0xLTEuMkgyMy44N2wxLjYzLThoNmExLDEsMCwwLDAsMS0uOGwuNDEtMkExLDEsMCwwLDAsMzEuODcsMTBabS0xMiwxMmgtNS40bDEuNjQtOGg1LjRaIiBj''@;'; + put 'put ''bGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG4gICcpLGUuU29jaWFsU2hhcGVzPXtjcm93bjplLkNsclNoYXBlQ3Jvd24sc2hhcmU6ZS5DbHJTaGFwZVNoYXJlLHN0YXI6ZS5DbHJTaGFwZVN0YXIsImhhbGYtc3RhciI6ZS5DbHJTaGFwZUhhbGZTdGFyLGJvb2ttYXJr''@;'; + put 'put ''OmUuQ2xyU2hhcGVCb29rbWFyayxlbnZlbG9wZTplLkNsclNoYXBlRW52ZWxvcGUsY2FsZW5kYXI6Yy5DbHJTaGFwZUNhbGVuZGFyLGV2ZW50OmMuQ2xyU2hhcGVFdmVudCx0YXNrczplLkNsclNoYXBlVGFza3MsZmxhZzplLkNsclNoYXBlRmxhZyxpbmJveDplLkNsclNoYXBlSW5ib3gsaGFz''@;'; + put 'put ''aHRhZzplLkNsclNoYXBlSGFzaHRhZyxoZWFydDplLkNsclNoYXBlSGVhcnQsImhlYXJ0LWJyb2tlbiI6ZS5DbHJTaGFwZUhlYXJ0QnJva2VuLCJ0YWxrLWJ1YmJsZXMiOmUuQ2xyU2hhcGVUYWxrQnViYmxlcywiY2hhdC1idWJibGUiOmUuQ2xyU2hhcGVDaGF0QnViYmxlLHBpY3R1cmU6ZS5D''@;'; + put 'put ''bHJTaGFwZVBpY3R1cmUsImhhcHB5LWZhY2UiOmUuQ2xyU2hhcGVIYXBweUZhY2UsIm5ldXRyYWwtZmFjZSI6ZS5DbHJTaGFwZU5ldXRyYWxGYWNlLCJzYWQtZmFjZSI6ZS5DbHJTaGFwZVNhZEZhY2UsInRodW1icy11cCI6ZS5DbHJTaGFwZVRodW1ic1VwLCJ0aHVtYnMtZG93biI6ZS5DbHJT''@;'; + put 'put ''aGFwZVRodW1ic0Rvd259LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLlNvY2lhbFNoYXBlcywiZmF2b3JpdGUiLCgwLHIuZGVzY3JpcHRvckNvbmZpZykoZS5Tb2NpYWxTaGFwZXMuc3RhcikpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLlNvY2lhbFNoYXBlcywiZW1haWwiLCgwLHIuZGVzY3Jp''@;'; + put 'put ''cHRvckNvbmZpZykoZS5Tb2NpYWxTaGFwZXMuZW52ZWxvcGUpKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5Tb2NpYWxTaGFwZXMsImRhdGUiLCgwLHIuZGVzY3JpcHRvckNvbmZpZykoZS5Tb2NpYWxTaGFwZXMuY2FsZW5kYXIpKSwidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyYmd2luZG93''@;'; + put 'put ''Lmhhc093blByb3BlcnR5KCJDbGFyaXR5SWNvbnMiKSYmd2luZG93LkNsYXJpdHlJY29ucy5hZGQoZS5Tb2NpYWxTaGFwZXMpfSwiLi9wcm9qZWN0cy9pY29ucy9zcmMvc2hhcGVzL3RlY2hub2xvZ3ktc2hhcGVzLnRzIjpmdW5jdGlvbihBLGUsYSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZp''@;'; + put 'put ''bmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLkNsclNoYXBlVk1XQXBwPWUuQ2xyU2hhcGVWTT1lLkNsclNoYXBlUm91dGVyPWUuQ2xyU2hhcGVOZXR3b3JrU3dpdGNoPWUuQ2xyU2hhcGVOZXR3b3JrU2V0dGluZ3M9ZS5DbHJTaGFwZU5ldHdvcmtHbG9iZT1lLkNsclNo''@;'; + put 'put ''YXBlVGFibGV0PWUuQ2xyU2hhcGVNb2JpbGU9ZS5DbHJTaGFwZUJhdHRlcnk9ZS5DbHJTaGFwZUFwcGxpY2F0aW9uPWUuQ2xyU2hhcGVDb2RlPWUuQ2xyU2hhcGVUZXJtaW5hbD1lLkNsclNoYXBlRGlzcGxheT1lLkNsclNoYXBlQ29tcHV0ZXI9ZS5DbHJTaGFwZUZsb3BweT1lLkNsclNoYXBl''@;'; + put 'put ''UGx1Z2luPWUuQ2xyU2hhcGVEb3dubG9hZENsb3VkPWUuQ2xyU2hhcGVVcGxvYWRDbG91ZD1lLkNsclNoYXBlRXhwb3J0PWUuQ2xyU2hhcGVJbXBvcnQ9ZS5DbHJTaGFwZVNoaWVsZFg9ZS5DbHJTaGFwZVNoaWVsZD1lLkNsclNoYXBlU2hpZWxkQ2hlY2s9ZS5DbHJTaGFwZVJlc291cmNlUG9v''@;'; + put 'put ''bD1lLkNsclNoYXBlRGF0YUNsdXN0ZXI9ZS5DbHJTaGFwZU1lbW9yeT1lLkNsclNoYXBlQ1BVPWUuQ2xyU2hhcGVCdWlsZGluZz1lLkNsclNoYXBlQXBwbGljYXRpb25zPWUuQ2xyU2hhcGVDbHVzdGVyPWUuQ2xyU2hhcGVTdG9yYWdlPWUuQ2xyU2hhcGVIb3N0PWUuQ2xyU2hhcGVEYXNoYm9h''@;'; + put 'put ''cmQ9ZS5DbHJTaGFwZU1vdXNlPWUuQ2xyU2hhcGVLZXlib2FyZD1lLkNsclNoYXBlRGV2aWNlcz1lLkNsclNoYXBlQmFja3VwPWUuQ2xyU2hhcGVCYWNrdXBSZXN0b3JlPWUuQ2xyU2hhcGVIYXJkRGlzaz1lLkNsclNoYXBlUmFja1NlcnZlcj1lLkNsclNoYXBlV2lmaT1lLkNsclNoYXBlQnVu''@;'; + put 'put ''ZGxlPWUuQ2xyU2hhcGVCbG9ja3NHcm91cD1lLkNsclNoYXBlQmxvY2s9ZS5DbHJTaGFwZUxheWVycz1lLkNsclNoYXBlVW5pbnN0YWxsPWUuQ2xyU2hhcGVJbnN0YWxsPWUuQ2xyU2hhcGVOb1dpZmk9ZS5DbHJTaGFwZVBob25lSGFuZHNldD1lLkNsclNoYXBlUnVsZXJQZW5jaWw9dm9pZCAw''@;'; + put 'put ''LGUuVGVjaG5vbG9neVNoYXBlcz1lLkNsclNoYXBlRmlsZVNoYXJlMj1lLkNsclNoYXBlQ2lDZD1lLkNsclNoYXBlQW5pbWF0aW9uPWUuQ2xyU2hhcGVUYXBlRHJpdmU9ZS5DbHJTaGFwZU1lZGlhQ2hhbmdlcj1lLkNsckNvbnRyb2xMdW49ZS5DbHJTaGFwZVBvZD1lLkNsclNoYXBlTm9kZT1l''@;'; + put 'put ''LkNsclNoYXBlTmFtZXNwYWNlPWUuQ2xyU2hhcGVOb2Rlcz1lLkNsclNoYXBlTm9kZUdyb3VwPWUuQ2xyU2hhcGVTdG9yYWdlQWRhcHRlcj1lLkNsclNoYXBlSG9zdEdyb3VwPWUuQ2xyU2hhcGVTcXVpZD1lLkNsclNoYXBlQ2FwYWNpdG9yPWUuQ2xyU2hhcGVSZXNpc3Rvcj1lLkNsclNoYXBl''@;'; + put 'put ''SW5kdWN0b3I9ZS5DbHJTaGFwZVJhZGFyPWUuQ2xyU2hhcGVVc2I9ZS5DbHJTaGFwZVFyQ29kZT1lLkNsclNoYXBlRmlsZVNoYXJlPWUuQ2xyU2hhcGVDb250YWluZXJWb2x1bWU9ZS5DbHJTaGFwZUNvbnRhaW5lcj1lLkNsclNoYXBlQ2REdmQ9ZS5DbHJTaGFwZUJhckNvZGU9ZS5DbHJTaGFw''@;'; + put 'put ''ZUF0b209ZS5DbHJTaGFwZUFzc2lnblVzZXI9ZS5DbHJTaGFwZVByb2Nlc3NPblZNPWUuQ2xyU2hhcGVCbHVldG9vdGhPZmY9ZS5DbHJTaGFwZUJsdWV0b290aD1lLkNsclNoYXBlU1NEPWUuQ2xyU2hhcGVOVk1lPWUuQ2xyU2hhcGVIYXJkRHJpdmVEaXNrcz1lLkNsclNoYXBlSGFyZERyaXZl''@;'; + put 'put ''PWUuQ2xyU2hhcGVBZG1pbmlzdHJhdG9yPWUuQ2xyU2hhcGVGbGFzaz1lLkNsclNoYXBlSGVsaXg9ZS5DbHJTaGFwZURlcGxveT1lLkNsclNoYXBlQ2xvdWRUcmFmZmljPWUuQ2xyU2hhcGVDbG91ZFNjYWxlPWUuQ2xyU2hhcGVDbG91ZE5ldHdvcms9ZS5DbHJTaGFwZVVubGluaz1lLkNsclNo''@;'; + put 'put ''YXBlTGluaz1lLkNsclNoYXBlRGlzY29ubmVjdD1lLkNsclNoYXBlQ29ubmVjdD1lLkNsclNoYXBlVW5hcmNoaXZlPWUuQ2xyU2hhcGVBcmNoaXZlPWUuQ2xyU2hhcGVDZXJ0aWZpY2F0ZT12b2lkIDA7dmFyIHI9YSgiLi9wcm9qZWN0cy9pY29ucy9zcmMvdXRpbHMvZGVzY3JpcHRvci1jb25m''@;'; + put 'put ''aWcudHMiKTthPWEoIi4vcHJvamVjdHMvaWNvbnMvc3JjL3V0aWxzL3N2Zy10YWctZ2VuZXJhdG9yLnRzIiksZS5DbHJTaGFwZVJ1bGVyUGVuY2lsPSgwLGEuY2xySWNvblNWRykoJzxwb2x5Z29uIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBwb2ludHM9Ijkg''@;'; + put 'put ''MTcuNDEgOSAyNyAxOC41OSAyNyAxNi41OSAyNSAxMSAyNSAxMSAxOS40MSA5IDE3LjQxIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTM0Ljg3LDMyLjI5LDMyLDI5LjM4VjMySDRWMjcuODVINnYtMS42SDRWMTku''@;'; + put 'put ''Nkg2VjE4SDRWMTEuNkg2VjEwSDRWNC40MUwxOS45NCwyMC4yNlYxNy40NEwzLjcxLDEuMjlBMSwxLDAsMCwwLDIsMlYzM2ExLDEsMCwwLDAsMSwxSDM0LjE2YTEsMSwwLDAsMCwuNzEtMS43MVoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxp''@;'; + put 'put ''bmUtcGF0aC0zIiBkPSJNMjQsMzBoNGEyLDIsMCwwLDAsMi0yVjguN0wyNy43LDQuNDdhMiwyLDAsMCwwLTEuNzYtMWgwYTIsMiwwLDAsMC0xLjc2LDEuMDhMMjIsOC43MlYyOEEyLDIsMCwwLDAsMjQsMzBaTTI0LDkuMmwxLjk0LTMuNzdMMjgsOS4yMVYyNEgyNFptMCwxNi40M2g0djIuNDRI''@;'; + put 'put ''MjRaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzQuODcsMzIuMjEsMzAsMjcuMzdWOC43NUwyNy43LDQuNTJhMiwyLDAsMCwwLTMuNTQsMEwyMiw4Ljc2VjE5LjQxTDMuNzEsMS4yMUExLDEsMCwwLDAsMiwxLjkyVjEw''@;'; + put 'put ''SDQuMTd2MS42SDJWMThINC4xN3YxLjZIMnY2LjY1SDQuMTd2MS42SDJ2NS4wN2ExLDEsMCwwLDAsMSwxSDM0LjE2YTEsMSwwLDAsMCwuNzEtMS43MVpNMTAsMjZWMTYuOTRMMTkuMDcsMjZabTE4LDIuMTFIMjRWMjUuNjhoNFptMC00SDI0VjkuMjVsMS45NC0zLjc3TDI4LDkuMjZaIi8+XG4n''@;'; + put 'put ''KSxlLkNsclNoYXBlUGhvbmVIYW5kc2V0PSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMjcuNzMsMzUuNDRhNC43Miw0LjcyLDAsMCwxLTEtLjExLDMzLjkxLDMzLjkxLDAsMCwxLTE2LjYyLTguNzUsMzIuNzEs''@;'; + put 'put ''MzIuNzEsMCwwLDEtOS0xNi4yNUE0LjU4LDQuNTgsMCwwLDEsMi40Niw2LjA1bDQtMy44NUEyLDIsMCwwLDEsOCwxLjY2YTIsMiwwLDAsMSwxLjQ1Ljg3bDUsNy4zOWExLjYsMS42LDAsMCwxLS4xMSwxLjlsLTIuNTEsM2ExOC45NCwxOC45NCwwLDAsMCw0LjE3LDUuODloMGExOS4yNiwxOS4y''@;'; + put 'put ''NiwwLDAsMCw2LjA3LDQuMDlsMy4xMS0yLjQ3YTEuNjQsMS42NCwwLDAsMSwxLjg2LS4xMmw3LjU1LDQuODhBMiwyLDAsMCwxLDM1LDMwLjJsLTMuOSwzLjg2QTQuNzQsNC43NCwwLDAsMSwyNy43MywzNS40NFpNNy44NCwzLjY0bC00LDMuODVhMi41NCwyLjU0LDAsMCwwLS43NSwyLjQsMzAu''@;'; + put 'put ''NywzMC43LDAsMCwwLDguNDEsMTUuMjYsMzEuOSwzMS45LDAsMCwwLDE1LjY0LDguMjMsMi43NSwyLjc1LDAsMCwwLDIuNS0uNzRsMy45LTMuODYtNy4yOS00LjcxLTMuMzQsMi42NmExLDEsMCwwLDEtLjkyLjE3LDIwLjA2LDIwLjA2LDAsMCwxLTcuMzYtNC43NWgwYTE5LjQ5LDE5LjQ5LDAs''@;'; + put 'put ''MCwxLTQuODctNy4yQTEsMSwwLDAsMSwxMCwxNGwyLjctMy4yM1oiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0xNS4yMiwyMC42NGEyMC4zNywyMC4zNywwLDAsMCw3LjQsNC43OWwzLjc3LTNhLjY3LjY3LDAsMCwxLC43''@;'; + put 'put ''NiwwbDcsNC41MWEyLDIsMCwwLDEsLjMzLDMuMThsLTMuMjgsMy4yNGE0LDQsMCwwLDEtMy42MywxLjA3LDM1LjA5LDM1LjA5LDAsMCwxLTE3LjE1LTlBMzMuNzksMzMuNzksMCwwLDEsMS4xNSw4LjZhMy43OCwzLjc4LDAsMCwxLDEuMS0zLjU1bDMuNC0zLjI4YTIsMiwwLDAsMSwzLjEyLjMy''@;'; + put 'put ''TDEzLjQzLDlhLjYzLjYzLDAsMCwxLDAsLjc1bC0zLjA3LDMuNjlBMTkuNzUsMTkuNzUsMCwwLDAsMTUuMjIsMjAuNjRaIi8+XG4nKSxlLkNsclNoYXBlTm9XaWZpPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJN''@;'; + put 'put ''MTgsMjQuNDJhNCw0LDAsMSwwLDQsNEE0LDQsMCwwLDAsMTgsMjQuNDJabTAsNmEyLDIsMCwxLDEsMi0yQTIsMiwwLDAsMSwxOCwzMC40MloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMjYuMjEsMjEuODVhMSwx''@;'; + put 'put ''LDAsMCwwLS4yMy0xLjQsMTMuNTYsMTMuNTYsMCwwLDAtNS0yLjIzbDMuODcsMy44N0ExLDEsMCwwLDAsMjYuMjEsMjEuODVaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgZD0iTTE4LjA1LDEwLjcyYTIwLjg4LDIwLjg4''@;'; + put 'put ''LDAsMCwwLTQuMTYuNDNsMS43NCwxLjc0YTE5LDE5LDAsMCwxLDIuNDItLjE3QTE4Ljc2LDE4Ljc2LDAsMCwxLDI4LjY0LDE2YTEsMSwwLDAsMCwxLjEyLTEuNjVBMjAuNzUsMjAuNzUsMCwwLDAsMTguMDUsMTAuNzJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGlu''@;'; + put 'put ''ZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgZD0iTTMzLjU1LDguMkEyOC4xMSwyOC4xMSwwLDAsMCw4LjExLDUuMzZMOS42OSw2LjkzQTI2LDI2LDAsMCwxLDMyLjQ1LDkuODdhMSwxLDAsMCwwLDEuMS0xLjY3WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xy''@;'; + put 'put ''LWktb3V0bGluZS1wYXRoLTUiIGQ9Ik0xLjg0LDQuNzUsNC4yNyw3LjE4Yy0uNjIuMzQtMS4yMy43LTEuODMsMS4xQTEsMSwwLDEsMCwzLjU2LDkuOTRDNC4yNiw5LjQ3LDUsOSw1Ljc0LDguNjVsMy44NywzLjg3QTIwLjU5LDIwLjU5LDAsMCwwLDYuMjMsMTQuNCwxLDEsMCwwLDAsNy4zNiwx''@;'; + put 'put ''NmExOC44MiwxOC44MiwwLDAsMSwzLjc3LTJsNC4xNiw0LjE2QTEzLjUxLDEzLjUxLDAsMCwwLDEwLDIwLjU1YTEsMSwwLDAsMCwxLjE4LDEuNjFBMTEuNTIsMTEuNTIsMCwwLDEsMTcsMjBsMTAuOCwxMC44LDEuNDEtMS40MS0yNi0yNloiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9''@;'; + put 'put ''ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgY3g9IjE4IiBjeT0iMjkuNTQiIHI9IjMiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGQ9Ik0yOS4xOCwxNy43MWwuMTEtLjE3YTEuNTEsMS41MSwwLDAsMC0uNDctMi4x''@;'; + put 'put ''QTIwLjU3LDIwLjU3LDAsMCwwLDE4LDEyLjM3Yy0uNTYsMC0xLjExLDAtMS42NS4wN2wzLjIxLDMuMjFhMTcuNDEsMTcuNDEsMCwwLDEsNy42LDIuNTJBMS40OSwxLjQ5LDAsMCwwLDI5LjE4LDE3LjcxWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNv''@;'; + put 'put ''bGlkLXBhdGgtMyIgZD0iTTMyLjc2LDkuMzhBMjcuOSwyNy45LDAsMCwwLDEwLjE4LDYuMjdMMTIuODEsOC45QTI0LjY4LDI0LjY4LDAsMCwxLDMxLjEsMTIuMTJhMS40OSwxLjQ5LDAsMCwwLDItLjQ2bC4xMS0uMTdBMS41MSwxLjUxLDAsMCwwLDMyLjc2LDkuMzhaIi8+XG4gICAgICAgICAg''@;'; + put 'put ''ICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC00IiBkPSJNMyw0Ljc1bDMuMSwzLjFBMjcuMjgsMjcuMjgsMCwwLDAsMy4xOCw5LjQyYTEuNTEsMS41MSwwLDAsMC0uNDgsMi4xMWwuMTEuMTdhMS40OSwxLjQ5LDAsMCwwLDIsLjQ2LDI0LjY5LDI0LjY5LDAsMCwx''@;'; + put 'put ''LDMuNjctMS45bDMuMTQsMy4xNGEyMC42MywyMC42MywwLDAsMC00LjUzLDIuMDksMS41MSwxLjUxLDAsMCwwLS40NiwyLjFsLjExLjE3YTEuNDksMS40OSwwLDAsMCwyLC40NkExNy40NiwxNy40NiwwLDAsMSwxNC4yNSwxNmwzLjYsMy42YTEzLjM5LDEzLjM5LDAsMCwwLTYuNzksMS45Mywx''@;'; + put 'put ''LjUsMS41LDAsMCwwLS40NiwyLjA5bC4xLjE2YTEuNTIsMS41MiwwLDAsMCwyLjA2LjQ0LDEwLjIsMTAuMiwwLDAsMSw5LS43TDI5LDMwLjc1bDEuNDEtMS40MS0yNi0yNloiLz5cbicpLGUuQ2xyU2hhcGVJbnN0YWxsPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRs''@;'; + put 'put ''aW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzAuOTIsOEgyNi41NWExLDEsMCwwLDAsMCwySDMxVjMwSDVWMTBIOS4zOGExLDEsMCwwLDAsMC0ySDUuMDhBMiwyLDAsMCwwLDMsMTBWMzBhMiwyLDAsMCwwLDIuMDgsMkgzMC45MkEyLDIsMCwwLDAsMzMsMzBWMTBBMiwyLDAsMCwwLDMw''@;'; + put 'put ''LjkyLDhaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTEwLjMsMTguODdsNyw2Ljg5YTEsMSwwLDAsMCwxLjQsMGw3LTYuODlhMSwxLDAsMCwwLTEuNC0xLjQzTDE5LDIyLjY1VjRhMSwxLDAsMCwwLTIsMFYyMi42''@;'; + put 'put ''NWwtNS4zLTUuMjFhMSwxLDAsMCwwLTEuNCwxLjQzWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMTAuMywxOC44N2w3LDYuODlhMSwxLDAsMCwwLDEuNCwwbDctNi44OWExLDEsMCww''@;'; + put 'put ''LDAtMS40LTEuNDNMMTksMjIuNjVWNGExLDEsMCwwLDAtMiwwVjIyLjY1bC01LjMtNS4yMWExLDEsMCwwLDAtMS40LDEuNDNaIi8+PHBhdGggZD0iTTMxLDEzLjQzVjMwSDVWMTBIOS4zOGExLDEsMCwwLDAsMC0ySDUuMDhBMiwyLDAsMCwwLDMsMTBWMzBhMiwyLDAsMCwwLDIuMDgsMkgzMC45''@;'; + put 'put ''MkEyLDIsMCwwLDAsMzMsMzBWMTIuODdBNy40NSw3LjQ1LDAsMCwxLDMxLDEzLjQzWiIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUi''@;'; + put 'put ''Lz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiBkPSJNMTAuMywxOC44N2w3LDYuODlhMSwxLDAsMCwwLDEuNCwwbDctNi44OWExLDEsMCwwLDAtMS40LTEuNDNMMTksMjIuNjVWNGExLDEsMCww''@;'; + put 'put ''LDAtMiwwVjIyLjY1bC01LjMtNS4yMWExLDEsMCwwLDAtMS40LDEuNDNaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIgZD0iTTMxLDE1LjRWMzBINVYxMEg5LjM4YTEsMSwwLDAsMCwwLTJI''@;'; + put 'put ''NS4wOEEyLDIsMCwwLDAsMywxMFYzMGEyLDIsMCwwLDAsMi4wOCwySDMwLjkyQTIsMiwwLDAsMCwzMywzMFYxNS40WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9''@;'; + put 'put ''Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiLz5cbicpLGUuQ2xyU2hhcGVVbmluc3RhbGw9KDAsYS5jbHJJY29uU1ZHKSgnPHBh''@;'; + put 'put ''dGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xMS4yOSwyNi43MmExLDEsMCwwLDAsMS40MSwwTDE4LDIxLjQ5bDUuMyw1LjIzQTEsMSwwLDAsMCwyNC43LDI1LjNsLTUuMjgtNS4yMSw1LjI4LTUuMjFhMSwxLDAsMCwwLTEuNDEtMS40MkwxOCwxOC42''@;'; + put 'put ''OGwtNS4zLTUuMjNhMSwxLDAsMCwwLTEuNDEsMS40Mmw1LjI4LDUuMjFMMTEuMywyNS4zQTEsMSwwLDAsMCwxMS4yOSwyNi43MloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMzAuOTIsOEgyNi41NWExLDEsMCww''@;'; + put 'put ''LDAsMCwySDMxVjMwSDVWMTBIOS4zOGExLDEsMCwwLDAsMC0ySDUuMDhBMiwyLDAsMCwwLDMsMTBWMzBhMiwyLDAsMCwwLDIuMDgsMkgzMC45MkEyLDIsMCwwLDAsMzMsMzBWMTBBMiwyLDAsMCwwLDMwLjkyLDhaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0t''@;'; + put 'put ''YmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0xMS4yOSwyNi43MmExLDEsMCwwLDAsMS40MSwwTDE4LDIxLjQ5bDUuMyw1LjIzQTEsMSwwLDAsMCwyNC43LDI1LjNsLTUuMjgtNS4yMSw1LjI4LTUuMjFhMSwxLDAsMCwwLTEuNDEtMS40MkwxOCwxOC42OGwtNS4zLTUu''@;'; + put 'put ''MjNhMSwxLDAsMCwwLTEuNDEsMS40Mmw1LjI4LDUuMjFMMTEuMywyNS4zQTEsMSwwLDAsMCwxMS4yOSwyNi43MloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgZD0iTTMxLDEzLjQzVjMwSDVW''@;'; + put 'put ''MTBIOS4zOGExLDEsMCwwLDAsMC0ySDUuMDhBMiwyLDAsMCwwLDMsMTBWMzBhMiwyLDAsMCwwLDIuMDgsMkgzMC45MkEyLDIsMCwwLDAsMzMsMzBWMTIuODdBNy40NSw3LjQ1LDAsMCwxLDMxLDEzLjQzWiIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFk''@;'; + put 'put ''Z2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiBkPSJNMTEuMjksMjYuNzJh''@;'; + put 'put ''MSwxLDAsMCwwLDEuNDEsMEwxOCwyMS40OWw1LjMsNS4yM0ExLDEsMCwwLDAsMjQuNywyNS4zbC01LjI4LTUuMjEsNC43NS00LjY5SDIyLjIzYTMuNjUsMy42NSwwLDAsMS0uODEtLjFMMTgsMTguNjhsLTUuMy01LjIzYTEsMSwwLDAsMC0xLjQxLDEuNDJsNS4yOCw1LjIxTDExLjMsMjUuM0Ex''@;'; + put 'put ''LDEsMCwwLDAsMTEuMjksMjYuNzJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIgZD0iTTMxLDE1LjRWMzBINVYxMEg5LjM4YTEsMSwwLDAsMCwwLTJINS4wOEEyLDIsMCwwLDAsMywxMFYz''@;'; + put 'put ''MGEyLDIsMCwwLDAsMi4wOCwySDMwLjkyQTIsMiwwLDAsMCwzMywzMFYxNS40WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDEx''@;'; + put 'put ''QTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiLz5cbicpLGUuQ2xyU2hhcGVMYXllcnM9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUg''@;'; + put 'put ''Y2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xOCwyMC4yNWExLDEsMCwwLDEtLjQzLS4xbC0xNS03LjA5YTEsMSwwLDAsMSwwLTEuODFsMTUtNy4wOWExLDEsMCwwLDEsLjg1LDBsMTUsNy4wOWExLDEsMCwwLDEsMCwxLjgxbC0xNSw3LjA5QTEsMSwwLDAsMSwxOCwyMC4yNVpNNS4zNCwxMi4x''@;'; + put 'put ''NmwxMi42Niw2LDEyLjY2LTZMMTgsNi4xOFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMTgsMjYuMTZhMSwxLDAsMCwxLS40My0uMUwyLjU3LDE5YTEsMSwwLDEsMSwuODUtMS44MUwxOCwyNC4wNmwxNC41Ny02''@;'; + put 'put ''Ljg5QTEsMSwwLDEsMSwzMy40MywxOWwtMTUsNy4wOUExLDEsMCwwLDEsMTgsMjYuMTZaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgZD0iTTE4LDMyLjA3YTEsMSwwLDAsMS0uNDMtLjFsLTE1LTcuMDlhMSwxLDAsMCwx''@;'; + put 'put ''LC44NS0xLjgxTDE4LDMwbDE0LjU3LTYuODlhMSwxLDAsMSwxLC44NSwxLjgxTDE4LjQzLDMyQTEsMSwwLDAsMSwxOCwzMi4wN1oiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0xOCwyMC4yNWExLDEsMCwwLDEtLjQzLS4x''@;'; + put 'put ''bC0xNS03LjA5YTEsMSwwLDAsMSwwLTEuODFsMTUtNy4wOWExLDEsMCwwLDEsLjg1LDBsMTUsNy4wOWExLDEsMCwwLDEsMCwxLjgxbC0xNSw3LjA5QTEsMSwwLDAsMSwxOCwyMC4yNVoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIi''@;'; + put 'put ''IGQ9Ik0xOCwyNi4xNmExLDEsMCwwLDEtLjQzLS4xTDIuNTcsMTlhMSwxLDAsMSwxLC44NS0xLjgxTDE4LDI0LjA2bDE0LjU3LTYuODlBMSwxLDAsMSwxLDMzLjQzLDE5bC0xNSw3LjA5QTEsMSwwLDAsMSwxOCwyNi4xNloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xp''@;'; + put 'put ''ZCBjbHItaS1zb2xpZC1wYXRoLTMiIGQ9Ik0xOCwzMi4wN2ExLDEsMCwwLDEtLjQzLS4xbC0xNS03LjA5YTEsMSwwLDAsMSwuODUtMS44MUwxOCwzMGwxNC41Ny02Ljg5YTEsMSwwLDEsMSwuODUsMS44MUwxOC40MywzMkExLDEsMCwwLDEsMTgsMzIuMDdaIi8+XG4nKSxlLkNsclNoYXBlQmxv''@;'; + put 'put ''Y2s9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMxLjQyLDkuMDlsLTEzLTZhMSwxLDAsMCwwLS44NCwwbC0xMyw2QTEsMSwwLDAsMCw0LDEwVjI3YTEsMSwwLDAsMCwuNTguOTFsMTMsNmExLDEsMCwwLDAsLjg0LDBsMTMtNkExLDEsMCwwLDAsMzIsMjdWMTBBMSwxLDAsMCwwLDMxLjQy''@;'; + put 'put ''LDkuMDlaTTE4LDUuMSwyOC42MSwxMCwxOCwxNC45LDcuMzksMTBaTTYsMTEuNTZsMTEsNS4wOHYxNC44TDYsMjYuMzZaTTE5LDMxLjQ0VjE2LjY0bDExLTUuMDh2MTQuOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGgg''@;'; + put 'put ''ZD0iTTMwLDE1LjUzVjI2LjM2TDE5LDMxLjQ0VjE2LjY0bDIuNTctMS4xOWEzLjY3LDMuNjcsMCwwLDEtMi4xMS0xLjIyTDE4LDE0LjksNy4zOSwxMCwxOCw1LjFsMy4wOCwxLjQyLDEtMS43NEwxOC40MiwzLjA5YTEsMSwwLDAsMC0uODQsMGwtMTMsNkExLDEsMCwwLDAsNCwxMFYyN2ExLDEs''@;'; + put 'put ''MCwwLDAsLjU4LjkxbDEzLDZhMSwxLDAsMCwwLC44NCwwbDEzLTZBMSwxLDAsMCwwLDMyLDI3VjE1LjUzWk0xNywzMS40NCw2LDI2LjM2VjExLjU2bDExLDUuMDhaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgLz5cbiAgICAg''@;'; + put 'put ''ICAgICAgIDxwYXRoIGQ9Ik0yNi44NywxLjI2bC01LjcyLDkuOTFhMS4yOCwxLjI4LDAsMCwwLDEuMSwxLjkySDMzLjdhMS4yOCwxLjI4LDAsMCwwLDEuMS0xLjkyTDI5LjA4LDEuMjZBMS4yOCwxLjI4LDAsMCwwLDI2Ljg3LDEuMjZaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBj''@;'; + put 'put ''bHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMCwxMy41VjI2LjM2TDE5LDMxLjQ0VjE2LjY0bDguMDgtMy43M2E3LjU3LDcuNTcsMCwwLDEtMi0xLjI3TDE4LDE0LjksNy4zOSwxMCwxOCw1LjFsNC42MSwyLjEzQTcu''@;'; + put 'put ''MTIsNy4xMiwwLDAsMSwyMi41LDZhOCw4LDAsMCwxLC4wNy0xTDE4LjQyLDMuMDlhMSwxLDAsMCwwLS44NCwwbC0xMyw2QTEsMSwwLDAsMCw0LDEwVjI3YTEsMSwwLDAsMCwuNTguOTFsMTMsNmExLDEsMCwwLDAsLjg0LDBsMTMtNkExLDEsMCwwLDAsMzIsMjdWMTMuMjJBNy4zNyw3LjM3LDAs''@;'; + put 'put ''MCwxLDMwLDEzLjVaTTE3LDMxLjQ0LDYsMjYuMzZWMTEuNTZsMTEsNS4wOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLW91''@;'; + put 'put ''dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPlxuICAgICAgICAgICAgXG4gICAgICAgICAgICA8cGF0aCBkPSJNMzEuNDIsOS4wOWwtMTMtNmExLDEsMCwwLDAtLjg0LDBsLTEzLDZBMSwxLDAsMCwwLDQsMTBWMjdhMSwxLDAsMCwwLC41''@;'; + put 'put ''OC45MWwxMyw2YTEsMSwwLDAsMCwuODQsMGwxMy02QTEsMSwwLDAsMCwzMiwyN1YxMEExLDEsMCwwLDAsMzEuNDIsOS4wOVpNMTgsMTQuOSw3LjM5LDEwLDE4LDUuMSwyOC42MSwxMFpNMzAsMjYuMzYsMTksMzEuNDRWMTYuNjRsMTEtNS4wOFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1z''@;'; + put 'put ''b2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAsMTUuMzh2MTFMMTksMzEuNDRWMTYuNjRsMi43OS0xLjI5YTMuNjgsMy42OCwwLDAsMS0yLjI1LTEuMTZMMTgsMTQuOSw3LjM5LDEwLDE4LDUuMWwzLDEuMzksMS0xLjc1TDE4LjQyLDMuMDlhMSwxLDAsMCwwLS44NCww''@;'; + put 'put ''bC0xMyw2QTEsMSwwLDAsMCw0LDEwVjI3YTEsMSwwLDAsMCwuNTguOTFsMTMsNmExLDEsMCwwLDAsLjg0LDBsMTMtNkExLDEsMCwwLDAsMzIsMjdWMTUuMzhaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAg''@;'; + put 'put ''PHBhdGggZD0iTTI2Ljg1LDEuMTIsMjEuMTMsMTFhMS4yNywxLjI3LDAsMCwwLDEuMSwxLjkxSDMzLjY4QTEuMjcsMS4yNywwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjEyQTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjEyWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlk''@;'; + put 'put ''LXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMCwxMy41VjI2LjM2TDE5LDMxLjQ0VjE2LjY0bDguMDgtMy43M2E3LjU3LDcuNTcsMCwwLDEtMi0xLjI3TDE4LDE0LjksNy4zOSwxMCwxOCw1LjFsNC42MSwyLjEzQTcuMTIsNy4xMiwwLDAs''@;'; + put 'put ''MSwyMi41LDZhOCw4LDAsMCwxLC4wNy0xTDE4LjQyLDMuMDlhMSwxLDAsMCwwLS44NCwwbC0xMyw2QTEsMSwwLDAsMCw0LDEwVjI3YTEsMSwwLDAsMCwuNTguOTFsMTMsNmExLDEsMCwwLDAsLjg0LDBsMTMtNkExLDEsMCwwLDAsMzIsMjdWMTMuMjJBNy4zNyw3LjM3LDAsMCwxLDMwLDEzLjVa''@;'; + put 'put ''IiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFk''@;'; + put 'put ''Z2UiIC8+JyksZS5DbHJTaGFwZUJsb2Nrc0dyb3VwPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMy41MywxOC43NiwyNi42LDE1LjU3VjYuNDNBMSwxLDAsMCwwLDI2LDUuNTNsLTcuNS0zLjQ1YTEsMSwwLDAsMC0uODQsMGwtNy41LDMuNDVhMSwxLDAsMCwwLS41OC45MXY5LjE0TDIu''@;'; + put 'put ''NjgsMTguNzZhMSwxLDAsMCwwLS41OC45MXY5Ljc4aDBhMSwxLDAsMCwwLC41OC45MWw3LjUsMy40NWExLDEsMCwwLDAsLjg0LDBsNy4wOC0zLjI2LDcuMDgsMy4yNmExLDEsMCwwLDAsLjg0LDBsNy41LTMuNDVhMSwxLDAsMCwwLC41OC0uOTFoMFYxOS42N0ExLDEsMCwwLDAsMzMuNTMsMTgu''@;'; + put 'put ''NzZabS0yLjgxLjkxTDI1LjYxLDIyLDIwLjUsMTkuNjdsNS4xMS0yLjM1Wk0xOC4xLDQuMDhsNS4xMSwyLjM1TDE4LjEsOC43OCwxMyw2LjQzWk0xMC42LDE3LjMxbDUuMTEsMi4zNUwxMC42LDIyLDUuNDksMTkuNjdabTYuNSwxMS40OS02LjUsMy02LjUtM1YyMS4yM0wxMC4xOCwyNEExLDEs''@;'; + put 'put ''MCwwLDAsMTEsMjRsNi4wOC0yLjhaTTExLjYsMTUuNTdoMFY4bDYuMDgsMi44YTEsMSwwLDAsMCwuODQsMEwyNC42LDh2Ny41OGgwbC02LjUsM1pNMzIuMTEsMjguODFsLTYuNSwzLTYuNTEtM1YyMS4yMkwyNS4xOSwyNEExLDEsMCwwLDAsMjYsMjRsNi4wOC0yLjhaIiBjbGFzcz0iY2xyLWkt''@;'; + put 'put ''b3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbjxwYXRoIGQ9Ik0zMy41MywxOC43NiwyNi42LDE1LjU3aC0ydjBsLTYuNSwzLTYuNS0zVjhsNi4wOCwyLjhhMSwxLDAsMCwwLC44NCwwbC4yNC0uMTFhNC4xNyw0LjE3LDAsMCwxLC4yOS0uNjVsMS4zMy0yLjMxLTIuMjgsMUwxMyw2''@;'; + put 'put ''LjQzbDUuMS0yLjM1LDMuNDcsMS42LDEtMS43M0wxOC41LDIuMDhhMSwxLDAsMCwwLS44NCwwbC03LjUsMy40NWExLDEsMCwwLDAtLjU4LjkxdjkuMTRsLTYuOSwzLjE4YTEsMSwwLDAsMC0uNTguOTF2OS43OGExLDEsMCwwLDAsLjU4LjkxbDcuNSwzLjQ1YTEsMSwwLDAsMCwuODQsMGw3LjA4''@;'; + put 'put ''LTMuMjYsNy4wOCwzLjI2YTEsMSwwLDAsMCwuODQsMGw3LjUtMy40NWExLDEsMCwwLDAsLjU4LS45MVYxOS42N0ExLDEsMCwwLDAsMzMuNTMsMTguNzZaTTEwLjYsMTcuMzFsNS4xMSwyLjM1TDEwLjYsMjIsNS40OSwxOS42N1ptMCwxNC40OS02LjUtM1YyMS4yM0wxMC4xOCwyNEExLDEsMCww''@;'; + put 'put ''LDAsMTEsMjRsNi4wOC0yLjgsMCw3LjZabTE1LTE0LjQ4LDUuMTEsMi4zNUwyNS42MSwyMiwyMC41LDE5LjY3Wm0wLDE0LjQ5LTYuNTEtM1YyMS4yMkwyNS4xOSwyNEExLDEsMCwwLDAsMjYsMjRsNi4wOC0yLjgsMCw3LjYxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWkt''@;'; + put 'put ''b3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIC8+XG48cGF0aCBkPSJNMjYuODUsMS4xNGwtNS43Miw5LjkxQTEuMjcsMS4yNywwLDAsMCwyMi4yMywxM0gzMy42OGExLjI3LDEuMjcsMCwwLDAsMS4xLTEuOTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJj''@;'; + put 'put ''bHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0IiAvPlxuPHBhdGggZD0iTTMzLjUzLDE4Ljc2LDI2LjYsMTUuNTdWMTIuN2E3LjU4LDcuNTgsMCwwLDEtMi0xLjUxdjQuMzlsLTYuNSwzLTYuNS0zVjhsNi4wOCwyLjhhMSwxLDAs''@;'; + put 'put ''MCwwLC44NCwwTDIzLDguNzJhNy4wNSw3LjA1LDAsMCwxLS40Ny0ybC00LjQ3LDJMMTMsNi40M2w1LjEtMi4zNSw0LjQ0LDJzMC0uMDYsMC0uMDlhNy41NSw3LjU1LDAsMCwxLC4yNy0ybC00LjMtMmExLDEsMCwwLDAtLjg0LDBsLTcuNSwzLjQ1YTEsMSwwLDAsMC0uNTguOTF2OS4xNGwtNi45''@;'; + put 'put ''LDMuMThhMSwxLDAsMCwwLS41OC45MXY5Ljc4YTEsMSwwLDAsMCwuNTguOTFsNy41LDMuNDVhMSwxLDAsMCwwLC44NCwwbDcuMDgtMy4yNiw3LjA4LDMuMjZhMSwxLDAsMCwwLC44NCwwbDcuNS0zLjQ1YTEsMSwwLDAsMCwuNTgtLjkxVjE5LjY3QTEsMSwwLDAsMCwzMy41MywxOC43NlpNMTAu''@;'; + put 'put ''NiwxNy4zMWw1LjExLDIuMzVMMTAuNiwyMiw1LjQ5LDE5LjY3Wm0wLDE0LjQ5LTYuNS0zVjIxLjIzTDEwLjE4LDI0QTEsMSwwLDAsMCwxMSwyNGw2LjA4LTIuOCwwLDcuNlptMTUtMTQuNDgsNS4xMSwyLjM1TDI1LjYxLDIyLDIwLjUsMTkuNjdabTAsMTQuNDktNi41MS0zVjIxLjIyTDI1LjE5''@;'; + put 'put ''LDI0QTEsMSwwLDAsMCwyNiwyNGw2LjA4LTIuOCwwLDcuNjFaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIC8+XG48Y2lyY2xlIGN4PSIzMC4wMyIgY3k9IjYuMDMiIHI9IjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQg''@;'; + put 'put ''Y2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIgLz5cbjxwYXRoIGQ9Ik0zMy41MywxOC43NiwyNi42LDE1LjU3VjYuNDNBMSwxLDAsMCwwLDI2LDUuNTNsLTcuNS0zLjQ1YTEsMSwwLDAsMC0uODQsMGwtNy41LDMuNDVhMSwxLDAsMCwwLS41OC45MXY5LjE0TDIuNjgs''@;'; + put 'put ''MTguNzZhMSwxLDAsMCwwLS41OC45MXY5Ljc4aDBhMSwxLDAsMCwwLC41OC45MWw3LjUsMy40NWExLDEsMCwwLDAsLjg0LDBsNy4wOC0zLjI2LDcuMDgsMy4yNmExLDEsMCwwLDAsLjg0LDBsNy41LTMuNDVhMSwxLDAsMCwwLC41OC0uOTFoMFYxOS42N0ExLDEsMCwwLDAsMzMuNTMsMTguNzZa''@;'; + put 'put ''TTI1LjYxLDIyLDIwLjUsMTkuNjdsNS4xMS0yLjM1LDUuMTEsMi4zNVptLTEtNi40NC02LjQ0LDNWMTAuODdhMSwxLDAsMCwwLC4zNS0uMDhMMjQuNiw4djcuNThaTTE4LjEsNC4wOGw1LjExLDIuMzVMMTguMSw4Ljc4LDEzLDYuNDNaTTEwLjYsMTcuMzFsNS4xMSwyLjM1TDEwLjYsMjIsNS40''@;'; + put 'put ''OSwxOS42N1ptNi41LDExLjQ5LTYuNSwzaDBWMjQuMTFoMEExLDEsMCwwLDAsMTEsMjRsNi4wOC0yLjhabTE1LDAtNi40NiwzVjI0LjExQTEsMSwwLDAsMCwyNiwyNGw2LjA4LTIuOFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG48cGF0aCBkPSJNMzMuNTMs''@;'; + put 'put ''MTguNzYsMjYuNiwxNS41N3YwaC0ydjBsLTYuNDMsM1YxMC44N2ExLjA1LDEuMDUsMCwwLDAsLjM1LS4wOGwuMTQtLjA2QTMuMjMsMy4yMywwLDAsMSwxOSwxMGwxLjI4LTIuMjItMi4xNCwxTDEzLDYuNDNsNS4xLTIuMzUsMy4zOSwxLjU2LDEtMS43My00LTEuODNhMSwxLDAsMCwwLS44NCww''@;'; + put 'put ''bC03LjUsMy40NWExLDEsMCwwLDAtLjU4LjkxdjkuMTRsLTYuOSwzLjE4YTEsMSwwLDAsMC0uNTguOTF2OS43OGExLDEsMCwwLDAsLjU4LjkxbDcuNSwzLjQ1YTEsMSwwLDAsMCwuODQsMGw3LjA4LTMuMjYsNy4wOCwzLjI2YTEsMSwwLDAsMCwuODQsMGw3LjUtMy40NWExLDEsMCwwLDAsLjU4''@;'; + put 'put ''LS45MVYxOS42N0ExLDEsMCwwLDAsMzMuNTMsMTguNzZabS0yOCwuOTEsNS4xMS0yLjM2LDUuMTEsMi4zNUwxMC42LDIyWk0xMC42LDMxLjhWMjQuMTFBMS4wOCwxLjA4LDAsMCwwLDExLDI0bDYuMDgtMi44LDAsNy42Wm05LjktMTIuMTMsNS4xMS0yLjM1LDUuMTEsMi4zNUwyNS42MSwyMlpN''@;'; + put 'put ''MjUuNjQsMzEuOFYyNC4xMUEuODkuODksMCwwLDAsMjYsMjRsNi4wOC0yLjgsMCw3LjZaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiAvPlxuPHBhdGggZD0iTTI2Ljg5LDEuMTRsLTUuNzIsOS45MUExLjI3LDEuMjcsMCwwLDAsMjIu''@;'; + put 'put ''MjcsMTNIMzMuNzJhMS4yNywxLjI3LDAsMCwwLDEuMS0xLjkxTDI5LjEsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODksMS4xNFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIC8+XG48cGF0aCBkPSJNMzMuNTMs''@;'; + put 'put ''MTguNzYsMjYuNiwxNS41N1YxMi42OWE3LjY2LDcuNjYsMCwwLDEtMi0xLjQ3djQuMzRsLTYuNDMsM1YxMC44N2ExLjA1LDEuMDUsMCwwLDAsLjM1LS4wOEwyMyw4LjczYTcuNjUsNy42NSwwLDAsMS0uNDgtMmwtNC40MiwyTDEzLDYuNDNsNS4xLTIuMzUsNC4zOCwyVjZhNy41NSw3LjU1LDAs''@;'; + put 'put ''MCwxLC4yNy0yTDE4LjUsMi4wOGExLDEsMCwwLDAtLjg0LDBsLTcuNSwzLjQ1YTEsMSwwLDAsMC0uNTguOTF2OS4xNGwtNi45LDMuMThhMSwxLDAsMCwwLS41OC45MXY5Ljc4YTEsMSwwLDAsMCwuNTguOTFsNy41LDMuNDVhMSwxLDAsMCwwLC44NCwwbDcuMDgtMy4yNiw3LjA4LDMuMjZhMSwx''@;'; + put 'put ''LDAsMCwwLC44NCwwbDcuNS0zLjQ1YTEsMSwwLDAsMCwuNTgtLjkxVjE5LjY3QTEsMSwwLDAsMCwzMy41MywxOC43NlptLTI4LC45MSw1LjExLTIuMzYsNS4xMSwyLjM1TDEwLjYsMjJaTTEwLjYsMzEuOFYyNC4xMUExLjA4LDEuMDgsMCwwLDAsMTEsMjRsNi4wOC0yLjgsMCw3LjZabTkuOS0x''@;'; + put 'put ''Mi4xMyw1LjExLTIuMzUsNS4xMSwyLjM1TDI1LjYxLDIyWk0yNS42NCwzMS44VjI0LjExQS44OS44OSwwLDAsMCwyNiwyNGw2LjA4LTIuOCwwLDcuNloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiAvPlxuPGNpcmNsZSBjeD0iMjkuOTgi''@;'; + put 'put ''IGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIgLz4nKSxlLkNsclNoYXBlQnVuZGxlPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0''@;'; + put 'put ''aC0xIiBkPSJNMzIuNDMsOC4zNWwtMTMtNi4yMWExLDEsMCwwLDAtLjg3LDBsLTE1LDcuMjRhMSwxLDAsMCwwLS41Ny45VjI2LjgzYTEsMSwwLDAsMCwuNi45MmwxMyw2LjE5YTEsMSwwLDAsMCwuODcsMGwxNS03LjI0YTEsMSwwLDAsMCwuNTctLjlWOS4yNUExLDEsMCwwLDAsMzIuNDMsOC4z''@;'; + put 'put ''NVpNMTksNC4xNSwyOS45Myw5LjM3bC01LjA1LDIuNDRMMTQuMjEsNi40NlpNMTcsMTUuNjQsNiwxMC40MWw1LjktMi44NUwyMi42LDEyLjkxWk01LDEyLjEzLDE2LDE3LjRWMzEuNDZMNSwyNi4yWk0xOCwzMS40NVYxNy4zNmwxMy02LjI5djE0LjFaIi8+XG4gICAgICAgICAgICA8cGF0aCBj''@;'; + put 'put ''bGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzIuNDMsOC4zNWwtMTMtNi4yMWExLDEsMCwwLDAtLjg3LDBsLTE1LDcuMjRhMSwxLDAsMCwwLS41Ny45VjI2LjgzYTEsMSwwLDAsMCwuNi45MmwxMyw2LjE5YTEsMSwwLDAsMCwuODcsMGwxNS03LjI0YTEsMSwwLDAs''@;'; + put 'put ''MCwuNTctLjlWOS4yNUExLDEsMCwwLDAsMzIuNDMsOC4zNVpNMTksNC4xNSwyOS45Myw5LjM3bC01LjA1LDIuNDRMMTQuMjEsNi40NlpNMTcsMTUuNjQsNiwxMC40MWw1LjktMi44NUwyMi42LDEyLjkxWm0xLDE1LjhWMTcuMzZsMTMtNi4yOXYxNC4xWiIvPlxuJyksZS5DbHJTaGFwZVdpZmk9''@;'; + put 'put ''KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMy41NSw4LjJhMjguMSwyOC4xLDAsMCwwLTMxLjExLjA4QTEsMSwwLDEsMCwzLjU2LDkuOTRhMjYuMTEsMjYuMTEsMCwwLDEsMjguODktLjA3LDEsMSwwLDAsMCwx''@;'; + put 'put ''LjEtMS42N1oiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMTguMDUsMTAuNzJBMjAuNzQsMjAuNzQsMCwwLDAsNi4yMywxNC40LDEsMSwwLDAsMCw3LjM2LDE2LDE4Ljg1LDE4Ljg1LDAsMCwxLDI4LjY0LDE2YTEs''@;'; + put 'put ''MSwwLDAsMCwxLjEyLTEuNjVBMjAuNzUsMjAuNzUsMCwwLDAsMTguMDUsMTAuNzJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgZD0iTTE4LjA1LDE3LjlhMTMuNTEsMTMuNTEsMCwwLDAtOCwyLjY0LDEsMSwwLDAsMCwx''@;'; + put 'put ''LjE4LDEuNjEsMTEuNTYsMTEuNTYsMCwwLDEsMTMuNjItLjA4QTEsMSwwLDEsMCwyNiwyMC40NiwxMy41MiwxMy41MiwwLDAsMCwxOC4wNSwxNy45WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIGQ9Ik0xOCwyNC40MmE0''@;'; + put 'put ''LDQsMCwxLDAsNCw0QTQsNCwwLDAsMCwxOCwyNC40MlptMCw2YTIsMiwwLDEsMSwyLTJBMiwyLDAsMCwxLDE4LDMwLjQyWiIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBjeD0iMTgiIGN5PSIyOS41NCIgcj0iMyIvPlxuICAg''@;'; + put 'put ''ICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgZD0iTTMyLjc2LDkuMzhhMjcuODcsMjcuODcsMCwwLDAtMjkuNTcsMCwxLjUxLDEuNTEsMCwwLDAtLjQ4LDIuMTFsLjExLjE3YTEuNDksMS40OSwwLDAsMCwyLC40NiwyNC42OCwyNC42OCwwLDAs''@;'; + put 'put ''MSwyNi4yNiwwLDEuNDksMS40OSwwLDAsMCwyLS40NmwuMTEtLjE3QTEuNTEsMS41MSwwLDAsMCwzMi43Niw5LjM4WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIgZD0iTTI4LjgyLDE1LjQ0YTIwLjU5LDIwLjU5LDAsMCwwLTIx''@;'; + put 'put ''LjcsMCwxLjUxLDEuNTEsMCwwLDAtLjQ2LDIuMWwuMTEuMTdhMS40OSwxLjQ5LDAsMCwwLDIsLjQ2LDE3LjQsMTcuNCwwLDAsMSwxOC4zNiwwLDEuNDksMS40OSwwLDAsMCwyLS40NmwuMTEtLjE3QTEuNTEsMS41MSwwLDAsMCwyOC44MiwxNS40NFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNs''@;'; + put 'put ''YXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTQiIGQ9Ik0yNC44OCwyMS40OWExMy40MSwxMy40MSwwLDAsMC0xMy44MiwwLDEuNSwxLjUsMCwwLDAtLjQ2LDIuMDlsLjEuMTZhMS41MiwxLjUyLDAsMCwwLDIuMDYuNDQsMTAuMjcsMTAuMjcsMCwwLDEsMTAuNDIsMCwxLjUyLDEu''@;'; + put 'put ''NTIsMCwwLDAsMi4wNi0uNDVsLjEtLjE2QTEuNDksMS40OSwwLDAsMCwyNC44OCwyMS40OVoiLz5cbicpLGUuQ2xyU2hhcGVSYWNrU2VydmVyPSgwLGEuY2xySWNvblNWRykoJzxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVk''@;'; + put 'put ''IiB4PSIxMCIgeT0iMTciIHdpZHRoPSIxNCIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIgeD0iNiIgeT0iMjUiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAg''@;'; + put 'put ''ICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIiB4PSIxMCIgeT0iMjUiIHdpZHRoPSIxNCIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1v''@;'; + put 'put ''dXRsaW5lLXBhdGgtNC0tYWxlcnRlZCIgZD0iTTE4LjY0LDExQTMuNjUsMy42NSwwLDAsMSwxOSw5Ljg5TDE5LjU2LDlIMTB2MloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC01LS1hbGVydGVkIiBkPSJNMzMu''@;'; + put 'put ''NjgsMTUuNEgzMlYyMUg0VjE1SDIwLjU4QTMuNjcsMy42NywwLDAsMSwxOSwxMy41NmEzLjYzLDMuNjMsMCwwLDEtLjI2LS41Nkg0VjdIMjAuNzFsMS4xNS0ySDRBMiwyLDAsMCwwLDIsN1YyOWEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMTUuMzhaTTQsMjlWMjNIMzJ2NloiLz5c''@;'; + put 'put ''biAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC02LS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0''@;'; + put 'put ''Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIHg9IjYiIHk9IjkiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAg''@;'; + put 'put ''ICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgeD0iNiIgeT0iMTciIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWkt''@;'; + put 'put ''b3V0bGluZS1wYXRoLTMtLWJhZGdlZCIgeD0iMTAiIHk9IjE3IiB3aWR0aD0iMTQiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIiB4PSI2IiB5PSIyNSIgd2lkdGg9IjIiIGhl''@;'; + put 'put ''aWdodD0iMiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYmFkZ2VkIiB4PSIxMCIgeT0iMjUiIHdpZHRoPSIxNCIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGlu''@;'; + put 'put ''ZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC02LS1iYWRnZWQiIGQ9Ik0xMCwxMUgyNHYtLjUxQTcuNDgsNy40OCwwLDAsMSwyMy4xMyw5SDEwWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNy0tYmFkZ2Vk''@;'; + put 'put ''IiBkPSJNMzAsMTMuNWE3LjQ3LDcuNDcsMCwwLDEtMi42OC0uNUg0VjdIMjIuNTdhNy41Miw3LjUyLDAsMCwxLS4wNy0xLDcuNTIsNy41MiwwLDAsMSwuMDctMUg0QTIsMiwwLDAsMCwyLDdWMjlhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjEyLjM0QTcuNDYsNy40NiwwLDAsMSwz''@;'; + put 'put ''MCwxMy41Wk00LDE1SDMydjZINFpNNCwyOVYyM0gzMnY2WiIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC04LS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgICAgICAgICAg''@;'; + put 'put ''IDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiB4PSI2IiB5PSI5IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgeD0iMTAiIHk9IjkiIHdpZHRo''@;'; + put 'put ''PSIxNCIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgeD0iNiIgeT0iMTciIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91''@;'; + put 'put ''dGxpbmUtcGF0aC00IiB4PSIxMCIgeT0iMTciIHdpZHRoPSIxNCIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgZD0iTTMyLDVINEEyLDIsMCwwLDAsMiw3VjI5YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAs''@;'; + put 'put ''MCwwLDItMlY3QTIsMiwwLDAsMCwzMiw1Wk00LDdIMzJ2Nkg0Wm0wLDhIMzJ2Nkg0Wk00LDI5VjIzSDMydjZaIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIgeD0iNiIgeT0iMjUiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5c''@;'; + put 'put ''biAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC03IiB4PSIxMCIgeT0iMjUiIHdpZHRoPSIxNCIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0x''@;'; + put 'put ''LS1hbGVydGVkIiBkPSJNMiwzMGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMjRIMlptOC0zSDI0djJIMTBaTTYsMjdIOHYySDZaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIiBkPSJN''@;'; + put 'put ''MTksOS44OSwxOS41Niw5SDEwVjdIMjAuNzFsMS43My0zSDRBMiwyLDAsMCwwLDIsNnY2SDE4LjU3QTMuNjcsMy42NywwLDAsMSwxOSw5Ljg5Wk04LDlINlY3SDhaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0zLS1h''@;'; + put 'put ''bGVydGVkIiBkPSJNMzMuNjgsMTUuNEgyMi4yM0EzLjY5LDMuNjksMCwwLDEsMTkuMzUsMTRIMnY4SDM0VjE1LjM4Wk04LDE5SDZWMTdIOFptMTYsMEgxMFYxN0gyNFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTQt''@;'; + put 'put ''LWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNs''@;'; + put 'put ''YXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMiwxNHY4SDM0VjE0Wm02LDVINlYxN0g4Wm0xNiwwSDEwVjE3SDI0WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0y''@;'; + put 'put ''LS1iYWRnZWQiIGQ9Ik0yLDMwYTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYyNEgyWm04LTNIMjR2MkgxMFpNNiwyN0g4djJINloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIiBkPSJNMjMu''@;'; + put 'put ''MTMsOUgxMFY3SDIyLjU3YTcuNTIsNy41MiwwLDAsMS0uMDctMSw3LjQ5LDcuNDksMCwwLDEsLjI4LTJINEEyLDIsMCwwLDAsMiw2djZIMjUuNTFBNy41Miw3LjUyLDAsMCwxLDIzLjEzLDlaTTgsOUg2VjdIOFoiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1i''@;'; + put 'put ''YWRnZWQgY2xyLWktc29saWQtcGF0aC00LS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0yLDIySDM0VjE0SDJabTgtNUgyNHYySDEwWk02LDE3SDh2''@;'; + put 'put ''Mkg2WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgZD0iTTMyLDRINEEyLDIsMCwwLDAsMiw2djZIMzRWNkEyLDIsMCwwLDAsMzIsNFpNOCw5SDZWN0g4Wk0yNCw5SDEwVjdIMjRaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFz''@;'; + put 'put ''cz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiBkPSJNMiwzMGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMjRIMlptOC0zSDI0djJIMTBaTTYsMjdIOHYySDZaIi8+XG4nKSxlLkNsclNoYXBlSGFyZERpc2s9KDAsYS5jbHJJY29uU1ZHKSgnPHJlY3QgY2xhc3M9ImNs''@;'; + put 'put ''ci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIHg9IjYiIHk9IjIwIiB3aWR0aD0iMjQiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0''@;'; + put 'put ''ZWQiIHg9IjI2IiB5PSIyNCIgd2lkdGg9IjQiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiIGQ9Ik0zNCwyMS4wOGwtMS40LTUuNjhIMzAuNTFsMS40OSw2VjI5SDRWMjEu''@;'; + put 'put ''NDRMNy4wNiw5aDEyLjVsMS4xNS0ySDcuMDZBMiwyLDAsMCwwLDUuMTMsOC40N0wyLDIxLjA4YTEsMSwwLDAsMCwwLC4yNFYyOWEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMjEuMzFBMSwxLDAsMCwwLDM0LDIxLjA4WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1p''@;'; + put 'put ''LW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCww''@;'; + put 'put ''LDAsMjYuODUsMS4xNFoiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgeD0iNiIgeT0iMjAiIHdpZHRoPSIyNCIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWkt''@;'; + put 'put ''b3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiIHg9IjI2IiB5PSIyNCIgd2lkdGg9IjQiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIiBkPSJN''@;'; + put 'put ''MzQsMjEuMDgsMzIsMTMuMjFhNy40OSw3LjQ5LDAsMCwxLTIsLjI5bDIsNy45NFYyOUg0VjIxLjQ0TDcuMDYsOUgyMy4xM2E3LjQ1LDcuNDUsMCwwLDEtLjU1LTJINy4wNkEyLDIsMCwwLDAsNS4xMyw4LjQ3TDIsMjEuMDhhMSwxLDAsMCwwLDAsLjI0VjI5YTIsMiwwLDAsMCwyLDJIMzJhMiwy''@;'; + put 'put ''LDAsMCwwLDItMlYyMS4zMUExLDEsMCwwLDAsMzQsMjEuMDhaIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAg''@;'; + put 'put ''ICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zNCwyMS4wOCwzMC44Niw4LjQzQTIsMiwwLDAsMCwyOC45NCw3SDcuMDZBMiwyLDAsMCwwLDUuMTMsOC40N0wyLDIxLjA4YTEsMSwwLDAsMCwwLC4yNFYyOWEyLDIsMCwwLDAsMiwySDMyYTIs''@;'; + put 'put ''MiwwLDAsMCwyLTJWMjEuMzFBMSwxLDAsMCwwLDM0LDIxLjA4Wk00LDI5VjIxLjQ0TDcuMDYsOUgyOC45M0wzMiwyMS40NFYyOVoiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiB4PSI2IiB5PSIyMCIgd2lkdGg9IjI0IiBo''@;'; + put 'put ''ZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiB4PSIyNiIgeT0iMjQiIHdpZHRoPSI0IiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1z''@;'; + put 'put ''b2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0yLDIydjdhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjIyWm0yOCw1SDI2VjI1aDRaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIiBkPSJN''@;'; + put 'put ''MzIuNTgsMTUuNEgyMi4yM0EzLjY4LDMuNjgsMCwwLDEsMTksOS44OUwyMC43MSw3SDcuMDZBMiwyLDAsMCwwLDUuMTMsOC40N0wyLjI5LDIwSDMzLjcxWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMy0tYWxlcnRl''@;'; + put 'put ''ZCBjbHItaS1hbGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNs''@;'; + put 'put ''ci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0yLDIydjdhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjIyWm0yOCw1SDI2VjI1aDRaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xp''@;'; + put 'put ''ZC1wYXRoLTEtLWJhZGdlZCIgZD0iTTMyLDEzLjIxQTcuNDcsNy40NywwLDAsMSwyMi41Nyw3SDcuMDZBMiwyLDAsMCwwLDUuMTMsOC40N0wyLjI5LDIwSDMzLjcxWiIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEt''@;'; + put 'put ''LWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTMwLjg2LDguNDNBMiwyLDAsMCwwLDI4Ljk0LDdINy4wNkEyLDIsMCwwLDAsNS4xMyw4LjQ3TDIuMjks''@;'; + put 'put ''MjBIMzMuNzFaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiBkPSJNMiwyMnY3YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYyMlptMjgsNUgyNlYyNWg0WiIvPlxuJyksZS5DbHJTaGFwZUJhY2t1cFJlc3RvcmU9KDAs''@;'; + put 'put ''YS5jbHJJY29uU1ZHKSgnPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIHg9IjYiIHk9IjIyIiB3aWR0aD0iMjQiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0''@;'; + put 'put ''ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIHg9IjI2IiB5PSIyNiIgd2lkdGg9IjQiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiIGQ9Ik0xMyw5LjkyLDE3''@;'; + put 'put ''LDZWMTlhMSwxLDAsMSwwLDIsMFY2bDEuNDcsMS40NiwxLTEuNzlMMTgsMi4xNiwxMS42MSw4LjVBMSwxLDAsMCwwLDEzLDkuOTJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRlZCIgZD0iTTMx''@;'; + put 'put ''LjU4LDE1LjRIMjkuNDZjMSwyLjg1LDIuMzEsNi4zNywyLjU0LDcuMDhWMzBINFYyMi40OEM0LjI4LDIxLjY1LDcuMDUsMTQsNy4wNSwxNEgxNVYxMkg3LjA3YTEuOTIsMS45MiwwLDAsMC0xLjksMS4zMkMyLDIyLDIsMjIuMSwyLDIyLjMzVjMwYTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCww''@;'; + put 'put ''LDItMlYyMi4zM0MzNCwyMi4xMiwzNCwyMiwzMS41OCwxNS40WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4y''@;'; + put 'put ''OCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdl''@;'; + put 'put ''ZCIgeD0iNiIgeT0iMjIiIHdpZHRoPSIyNCIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiIHg9IjI2IiB5PSIyNiIgd2lkdGg9IjQiIGhlaWdodD0iMiIvPlxuICAgICAgICAg''@;'; + put 'put ''ICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIiBkPSJNMTMsOS45MiwxNyw2VjE5YTEsMSwwLDEsMCwyLDBWNmw0LDMuOTVhMSwxLDAsMCwwLC43MS4yOWwuMTEsMGE3LjQ2LDcuNDYsMCwwLDEtMS4yNS0zLjUyTDE4LDIu''@;'; + put 'put ''MTYsMTEuNjEsOC41QTEsMSwwLDAsMCwxMyw5LjkyWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIiBkPSJNMzAuODcsMTMuNDVhNy41NSw3LjU1LDAsMCwxLS44Ny4wNUE3LjQ2LDcuNDYsMCww''@;'; + put 'put ''LDEsMjUuNTEsMTJIMjF2Mmg3Ljk1QzMwLDE2Ljk0LDMxLjcyLDIxLjY1LDMyLDIyLjQ4VjMwSDRWMjIuNDhDNC4yOCwyMS42NSw3LjA1LDE0LDcuMDUsMTRIMTVWMTJINy4wN2ExLjkyLDEuOTIsMCwwLDAtMS45LDEuMzJDMiwyMiwyLDIyLjEsMiwyMi4zM1YzMGEyLDIsMCwwLDAsMiwySDMy''@;'; + put 'put ''YTIsMiwwLDAsMCwyLTJWMjIuMzNDMzQsMjIuMSwzNCwyMiwzMC44NywxMy40NVoiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+''@;'; + put 'put ''XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgeD0iNiIgeT0iMjIiIHdpZHRoPSIyNCIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgeD0i''@;'; + put 'put ''MjYiIHk9IjI2IiB3aWR0aD0iNCIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgZD0iTTEzLDkuOTIsMTcsNlYxOWExLDEsMCwxLDAsMiwwVjZsNCwzLjk1QTEsMSwwLDEsMCwyNC4zOCw4LjVMMTgsMi4x''@;'; + put 'put ''NiwxMS42MSw4LjVBMSwxLDAsMCwwLDEzLDkuOTJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgZD0iTTMwLjg0LDEzLjM3QTEuOTQsMS45NCwwLDAsMCwyOC45MywxMkgyMXYyaDcuOTVDMzAsMTYuOTQsMzEuNzIsMjEu''@;'; + put 'put ''NjUsMzIsMjIuNDhWMzBINFYyMi40OEM0LjI4LDIxLjY1LDcuMDUsMTQsNy4wNSwxNEgxNVYxMkg3LjA3YTEuOTIsMS45MiwwLDAsMC0xLjksMS4zMkMyLDIyLDIsMjIuMSwyLDIyLjMzVjMwYTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYyMi4zM0MzNCwyMi4xLDM0LDIyLDMwLjg0''@;'; + put 'put ''LDEzLjM3WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIgZD0iTTIsMjR2NmEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMjRabTI4LDVIMjZWMjdoNFoiLz5cbiAgICAgICAgICAgIDxw''@;'; + put 'put ''YXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQiIGQ9Ik0xMyw5LjkyLDE3LDZWMThhMSwxLDAsMSwwLDIsMFY2bDEuNDcsMS40NiwxLTEuNzlMMTgsMi4xNiwxMS42MSw4LjVBMSwxLDAsMCwwLDEzLDkuOTJaIi8+XG4gICAgICAgICAg''@;'; + put 'put ''ICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0zLS1hbGVydGVkIiBkPSJNMzEuNTgsMTUuNEgyMi4yM0EzLjYyLDMuNjIsMCwwLDEsMjEsMTUuMTZWMThhMywzLDAsMSwxLTYsMFYxMkg3LjA3YTEuOTIsMS45MiwwLDAsMC0xLjksMS4zMkMyLjg2''@;'; + put 'put ''LDE5LjY4LDIuMjQsMjEuNDMsMi4wNywyMkgzMy45M0MzMy43OSwyMS40OSwzMy4yOCwyMC4wNywzMS41OCwxNS40WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtNC0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2''@;'; + put 'put ''Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xy''@;'; + put 'put ''LWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0yLDI0djZhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjI0Wm0yOCw1SDI2VjI3aDRaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCIgZD0i''@;'; + put 'put ''TTEzLDkuOTIsMTcsNlYxOGExLDEsMCwxLDAsMiwwVjZsNCwzLjk1YTEsMSwwLDAsMCwuNzEuMjlsLjExLDBhNy40Niw3LjQ2LDAsMCwxLTEuMjUtMy41MkwxOCwyLjE2LDExLjYxLDguNUExLDEsMCwwLDAsMTMsOS45MloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xp''@;'; + put 'put ''ZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIiBkPSJNMzAuODcsMTMuNDVhNy41NSw3LjU1LDAsMCwxLS44Ny4wNUE3LjQ2LDcuNDYsMCwwLDEsMjUuNTEsMTJIMjF2NmEzLDMsMCwxLDEtNiwwVjEySDcuMDdhMS45MiwxLjkyLDAsMCwwLTEuOSwxLjMyQzIuODYsMTkuNjgs''@;'; + put 'put ''Mi4yNCwyMS40MywyLjA3LDIySDMzLjkzQzMzLjc3LDIxLjQzLDMzLjE1LDE5LjcsMzAuODcsMTMuNDVaIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtNC0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2''@;'; + put 'put ''IiByPSI1Ii8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMiwyNHY2YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYyNFptMjgsNUgyNlYyN2g0WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNv''@;'; + put 'put ''bGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgZD0iTTMwLjg0LDEzLjM3QTEuOTQsMS45NCwwLDAsMCwyOC45MywxMkgyMXY2YTMsMywwLDEsMS02LDBWMTJINy4wN2ExLjkyLDEuOTIsMCwwLDAtMS45LDEuMzJDMi44NiwxOS42OCwyLjI0LDIxLjQzLDIuMDcsMjJIMzMuOTNDMzMuNzcsMjEuNDMs''@;'; + put 'put ''MzMuMTQsMTkuNjksMzAuODQsMTMuMzdaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiBkPSJNMTMsOS45MiwxNyw2VjE4YTEsMSwwLDEsMCwyLDBWNmw0LDMuOTVBMSwxLDAsMSwwLDI0LjM4LDguNUwxOCwyLjE2LDExLjYxLDgu''@;'; + put 'put ''NUExLDEsMCwwLDAsMTMsOS45MloiLz5cbicpLGUuQ2xyU2hhcGVCYWNrdXA9KDAsYS5jbHJJY29uU1ZHKSgnPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIHg9IjYiIHk9IjIyIiB3aWR0aD0iMjQiIGhlaWdodD0iMiIv''@;'; + put 'put ''PlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIHg9IjI2IiB5PSIyNiIgd2lkdGg9IjQiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0''@;'; + put 'put ''ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiIGQ9Ik0xOCwxOS44NGw0LjQ3LTQuNDRoLS4yM2EzLjY3LDMuNjcsMCwwLDEtMi0uNjFMMTksMTZWNGExLDEsMCwxLDAtMiwwVjE2bC00LTMuOTVhMSwxLDAsMCwwLTEuNDEsMS40MloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNz''@;'; + put 'put ''PSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIiBkPSJNMzEuNTgsMTUuNEgyOS40NmMxLDIuODUsMi4zMSw2LjM3LDIuNTQsNy4wOFYzMEg0VjIyLjQ4QzQuMjgsMjEuNjUsNy4wNSwxNCw3LjA1LDE0SDkuNThhMywzLDAsMCwxLS4xNC0ySDcu''@;'; + put 'put ''MDdhMS45MiwxLjkyLDAsMCwwLTEuOSwxLjMyQzIsMjIsMiwyMi4xLDIsMjIuMzNWMzBhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjIyLjMzQzM0LDIyLjEyLDM0LDIyLDMxLjU4LDE1LjRaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRl''@;'; + put 'put ''ZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIv''@;'; + put 'put ''PlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiB4PSI2IiB5PSIyMiIgd2lkdGg9IjI0IiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQg''@;'; + put 'put ''Y2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgeD0iMjYiIHk9IjI2IiB3aWR0aD0iNCIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiIGQ9Ik0xOCwxOS44NGw2LjM4LTYu''@;'; + put 'put ''MzVBMSwxLDAsMSwwLDIzLDEyLjA4TDE5LDE2VjRhMSwxLDAsMSwwLTIsMFYxNmwtNC0zLjk1YTEsMSwwLDAsMC0xLjQxLDEuNDJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQiIGQ9Ik0zMC44''@;'; + put 'put ''NywxMy40NWE3LjU1LDcuNTUsMCwwLDEtLjg3LjA1LDcuNDYsNy40NiwwLDAsMS0zLjM1LS44LDMsMywwLDAsMS0uMjQsMS4zaDIuNTRDMzAsMTYuOTQsMzEuNzIsMjEuNjUsMzIsMjIuNDhWMzBINFYyMi40OEM0LjI4LDIxLjY1LDcuMDUsMTQsNy4wNSwxNEg5LjU4YTMsMywwLDAsMS0uMTQt''@;'; + put 'put ''Mkg3LjA3YTEuOTIsMS45MiwwLDAsMC0xLjksMS4zMkMyLDIyLDIsMjIuMSwyLDIyLjMzVjMwYTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYyMi4zM0MzNCwyMi4xLDM0LDIyLDMwLjg3LDEzLjQ1WiIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0t''@;'; + put 'put ''YmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC01LS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiB4PSI2IiB5PSIyMiIgd2lkdGg9IjI0IiBoZWlnaHQ9''@;'; + put 'put ''IjIiLz48cmVjdCB4PSIyNiIgeT0iMjYiIHdpZHRoPSI0IiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIlxuICAgICAgICAgICAgICAgIGQ9Ik0zMC44NCwxMy4zN0ExLjk0LDEuOTQsMCwwLDAsMjguOTMs''@;'; + put 'put ''MTJIMjYuNTVhMywzLDAsMCwxLS4xNCwyaDIuNTRDMzAsMTYuOTQsMzEuNzIsMjEuNjUsMzIsMjIuNDhWMzBINFYyMi40OEM0LjI4LDIxLjY1LDcuMDUsMTQsNy4wNSwxNEg5LjU4YTMsMywwLDAsMS0uMTQtMkg3LjA3YTEuOTIsMS45MiwwLDAsMC0xLjksMS4zMkMyLDIyLDIsMjIuMSwyLDIy''@;'; + put 'put ''LjMzVjMwYTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYyMi4zM0MzNCwyMi4xLDM0LDIyLDMwLjg0LDEzLjM3WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIGQ9Ik0xOCwxOS44NGw2LjM4LTYuMzVBMSwxLDAs''@;'; + put 'put ''MSwwLDIzLDEyLjA4TDE5LDE2VjRhMSwxLDAsMSwwLTIsMFYxNmwtNC0zLjk1YTEsMSwwLDAsMC0xLjQxLDEuNDJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiBkPSJNMTYuNTgsMjEuMjYsMTAu''@;'; + put 'put ''MiwxNC45MUEzLDMsMCwwLDEsOS40NCwxMkg3LjA3YTEuOTIsMS45MiwwLDAsMC0xLjksMS4zMkMyLjg2LDE5LjY4LDIuMjQsMjEuNDMsMi4wNywyMkgxNy4zM1oiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFs''@;'; + put 'put ''ZXJ0ZWQiIGQ9Ik0yLDI0djZhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjI0Wm0yOCw0SDI2VjI2aDRaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0zLS1hbGVydGVkIiBkPSJNMTguNjYsMjJIMzMuOTNj''@;'; + put 'put ''LS4xNS0uNTEtLjY1LTEuOTMtMi4zNS02LjZIMjUuM2wtNS44OSw1Ljg2WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtNC0tYWxlcnRlZCIgZD0iTTE4LDE5Ljg0bDQuNDctNC40NGgtLjIzYTMuNjQsMy42NCwwLDAs''@;'; + put 'put ''MS0yLS42MUwxOSwxNlY0YTEsMSwwLDEsMC0yLDBWMTZsLTQtMy45NWExLDEsMCwwLDAtMS40MSwxLjQyWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtNS0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2Ljg1LDEu''@;'; + put 'put ''MTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29s''@;'; + put 'put ''aWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0xOCwxOS44NGw2LjM4LTYuMzVBMSwxLDAsMSwwLDIzLDEyLjA4TDE5LDE2VjRhMSwxLDAsMSwwLTIsMFYxNmwtNC0zLjk1YTEsMSwwLDAsMC0xLjQxLDEuNDJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBj''@;'; + put 'put ''bHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCIgZD0iTTE2LjU4LDIxLjI2LDEwLjIsMTQuOTFBMywzLDAsMCwxLDkuNDQsMTJINy4wN2ExLjkyLDEuOTIsMCwwLDAtMS45LDEuMzJDMi44NiwxOS42OCwyLjI0LDIxLjQzLDIuMDcsMjJIMTcuMzNaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFz''@;'; + put 'put ''cz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWJhZGdlZCIgZD0iTTIsMjR2NmEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMjRabTI4LDRIMjZWMjZoNFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1p''@;'; + put 'put ''LXNvbGlkLXBhdGgtNC0tYmFkZ2VkIiBkPSJNMTguNjYsMjJIMzMuOTNjLS4xNy0uNTctLjc5LTIuMy0zLjA2LTguNTVhNy41NSw3LjU1LDAsMCwxLS44Ny4wNSw3LjQ2LDcuNDYsMCwwLDEtMy4zNS0uOCwzLDMsMCwwLDEtLjg2LDIuMjFsLTYuMzgsNi4zNVoiLz5cbiAgICAgICAgICAgIDxj''@;'; + put 'put ''aXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC01LS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0xOCwxOS44''@;'; + put 'put ''NGw2LjM4LTYuMzVBMSwxLDAsMSwwLDIzLDEyLjA4TDE5LDE2VjRhMSwxLDAsMSwwLTIsMFYxNmwtNC0zLjk1YTEsMSwwLDAsMC0xLjQxLDEuNDJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiBkPSJNMTkuNDEsMjEuMjZsLS43''@;'; + put 'put ''NC43NEgzMy45M2MtLjE3LS41Ny0uNzktMi4zMS0zLjA5LTguNjNBMS45NCwxLjk0LDAsMCwwLDI4LjkzLDEySDI2LjU1YTMsMywwLDAsMS0uNzYsMi45MloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIGQ9Ik0xNi41OCwyMS4y''@;'; + put 'put ''NiwxMC4yLDE0LjkxQTMsMywwLDAsMSw5LjQ0LDEySDcuMDdhMS45MiwxLjkyLDAsMCwwLTEuOSwxLjMyQzIuODYsMTkuNjgsMi4yNCwyMS40MywyLjA3LDIySDE3LjMzWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNCIgZD0iTTIs''@;'; + put 'put ''MjR2NmEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMjRabTI4LDRIMjZWMjZoNFoiLz5cbicpLGUuQ2xyU2hhcGVEZXZpY2VzPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzIsMTNIMjRhMiwyLDAs''@;'; + put 'put ''MCwwLTIsMlYzMGEyLDIsMCwwLDAsMiwyaDhhMiwyLDAsMCwwLDItMlYxNUEyLDIsMCwwLDAsMzIsMTNabTAsMlYyNkgyNFYxNVpNMjQsMzBWMjcuNmg4VjMwWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0yMCwy''@;'; + put 'put ''Mkg0VjZIMjh2NWgyVjZhMiwyLDAsMCwwLTItMkg0QTIsMiwwLDAsMCwyLDZWMjJhMiwyLDAsMCwwLDIsMkgyMFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJNMjAsMjZIOWExLDEsMCwwLDAsMCwySDIwWiIvPlxu''@;'; + put 'put ''ICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTMyLDEzSDI0YTIsMiwwLDAsMC0yLDJWMzBhMiwyLDAsMCwwLDIsMmg4YTIsMiwwLDAsMCwyLTJWMTVBMiwyLDAsMCwwLDMyLDEzWm0wLDJWMjhIMjRWMTVaIi8+XG4gICAgICAgICAg''@;'; + put 'put ''ICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiBkPSJNMjgsNEg0QTIsMiwwLDAsMCwyLDZWMjJhMiwyLDAsMCwwLDIsMmg4djJIOS4zMkExLjIsMS4yLDAsMCwwLDgsMjdhMS4yLDEuMiwwLDAsMCwxLjMyLDFIMTkuOTJ2LS4zN0gyMFYyMkg0VjZIMjh2NWgy''@;'; + put 'put ''VjZBMiwyLDAsMCwwLDI4LDRaIi8+XG4nKSxlLkNsclNoYXBlS2V5Ym9hcmQ9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMiw4SDRhMiwyLDAsMCwwLTIsMlYyNmEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAs''@;'; + put 'put ''MCwyLTJWMTBBMiwyLDAsMCwwLDMyLDhabTAsMThINFYxMEgzMloiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiB4PSI3IiB5PSIxMyIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9''@;'; + put 'put ''ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIHg9IjExIiB5PSIxMyIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIHg9IjE1IiB5PSIxMyIgd2lkdGg9IjIiIGhlaWdo''@;'; + put 'put ''dD0iMiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIHg9IjE5IiB5PSIxMyIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRo''@;'; + put 'put ''LTYiIHg9IjIzIiB5PSIxMyIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTciIHg9IjI3IiB5PSIxMyIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9''@;'; + put 'put ''ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTgiIHg9IjciIHk9IjE3IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtOSIgeD0iMTEiIHk9IjE3IiB3aWR0aD0iMiIgaGVpZ2h0''@;'; + put 'put ''PSIyIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMTAiIHg9IjE1IiB5PSIxNyIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRo''@;'; + put 'put ''LTExIiB4PSIxOSIgeT0iMTciIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xMiIgeD0iMjMiIHk9IjE3IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFz''@;'; + put 'put ''cz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMTMiIHg9IjI3IiB5PSIxNyIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTE0IiB4PSIyNyIgeT0iMjIiIHdpZHRoPSIxLjk0''@;'; + put 'put ''IiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xNSIgeD0iNyIgeT0iMjIiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxp''@;'; + put 'put ''bmUtcGF0aC0xNiIgeD0iMTEuMTMiIHk9IjIyIiB3aWR0aD0iMTMuNzUiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTMyLDhINGEyLDIsMCwwLDAtMiwyVjI2YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAs''@;'; + put 'put ''MCwwLDItMlYxMEEyLDIsMCwwLDAsMzIsOFpNMTksMTNoMnYySDE5Wm0wLDRoMnYySDE5Wm0tNC00aDJ2MkgxNVptMCw0aDJ2MkgxNVptLTQtNGgydjJIMTFaTTksMjRIN1YyMkg5Wm0wLTVIN1YxN0g5Wm0wLTRIN1YxM0g5Wm0yLDJoMnYySDExWm0xMy44OCw3SDExLjEzVjIySDI0Ljg4Wk0y''@;'; + put 'put ''NSwxOUgyM1YxN2gyWm0wLTRIMjNWMTNoMlptMy45NCw5SDI3VjIyaDEuOTRaTTI5LDE5SDI3VjE3aDJabTAtNEgyN1YxM2gyWiIvPlxuJyksZS5DbHJTaGFwZU1vdXNlPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBk''@;'; + put 'put ''PSJNMTgsMzRBMTAsMTAsMCwwLDEsOCwyNFYxMmExMCwxMCwwLDAsMSwyMCwwVjI0QTEwLDEwLDAsMCwxLDE4LDM0Wk0xOCw0YTgsOCwwLDAsMC04LDhWMjRhOCw4LDAsMCwwLDE2LDBWMTJBOCw4LDAsMCwwLDE4LDRaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGlu''@;'; + put 'put ''ZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTE4LDE1YTEsMSwwLDAsMS0xLTFWMTBhMSwxLDAsMCwxLDIsMHY0QTEsMSwwLDAsMSwxOCwxNVoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0xOCwyQTEwLDEwLDAsMCww''@;'; + put 'put ''LDgsMTJWMjRhMTAsMTAsMCwwLDAsMjAsMFYxMkExMCwxMCwwLDAsMCwxOCwyWm0xLjMsMTEuNDRhMS4zLDEuMywwLDAsMS0yLjYsMFYxMGExLjMsMS4zLDAsMCwxLDIuNiwwWiIvPlxuJyksZS5DbHJTaGFwZURhc2hib2FyZD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWkt''@;'; + put 'put ''b3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTI1LjE4LDEyLjMybC01LjkxLDUuODFhMywzLDAsMSwwLDEuNDEsMS40Mmw1LjkyLTUuODFaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0xOCw0''@;'; + put 'put ''LjI1QTE2LjQ5LDE2LjQ5LDAsMCwwLDUuNCwzMS40bC4zLjM1SDMwLjNsLjMtLjM1QTE2LjQ5LDE2LjQ5LDAsMCwwLDE4LDQuMjVabTExLjM0LDI1LjVINi42NmExNC40MywxNC40MywwLDAsMS0zLjExLTcuODRIN3YtMkgzLjU1QTE0LjQxLDE0LjQxLDAsMCwxLDcsMTEuMjlsMi40NSwyLjQ1''@;'; + put 'put ''LDEuNDEtMS40MUw4LjQzLDkuODdBMTQuNDEsMTQuNDEsMCwwLDEsMTcsNi4yOXYzLjVoMlY2LjNhMTQuNDcsMTQuNDcsMCwwLDEsMTMuNCwxMy42MUgyOC45MnYyaDMuNTNBMTQuNDMsMTQuNDMsMCwwLDEsMjkuMzQsMjkuNzVaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNs''@;'; + put 'put ''ci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMTUuODUsMTguNjlhMywzLDAsMSwwLDQuODMuODVsNS45Mi01LjgxLTEuNDEtMS40MS01LjkxLDUuODFBMywzLDAsMCwwLDE1Ljg1LDE4LjY5WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNs''@;'; + put 'put ''YXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgZD0iTTMyLjU4LDEzYTcuNDUsNy40NSwwLDAsMS0yLjA2LjQ0LDE0LjQsMTQuNCwwLDAsMSwxLjkzLDYuNDNIMjguOTJ2MmgzLjUzYTE0LjQzLDE0LjQzLDAsMCwxLTMuMTEsNy44NEg2LjY2''@;'; + put 'put ''YTE0LjQzLDE0LjQzLDAsMCwxLTMuMTEtNy44NEg3di0ySDMuNTVBMTQuNDEsMTQuNDEsMCwwLDEsNywxMS4yOWwyLjQ1LDIuNDUsMS40MS0xLjQxTDguNDMsOS44N0ExNC40MSwxNC40MSwwLDAsMSwxNyw2LjI5djMuNWgyVjYuM0ExNC40MSwxNC40MSwwLDAsMSwyMi41OCw3YTcuNTIsNy41''@;'; + put 'put ''MiwwLDAsMS0uMDgtMSw3LjUyLDcuNTIsMCwwLDEsLjA5LTEuMDlBMTYuNDksMTYuNDksMCwwLDAsNS40LDMxLjRsLjMuMzVIMzAuM2wuMy0uMzVhMTYuNDUsMTYuNDUsMCwwLDAsMi0xOC4zNloiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRn''@;'; + put 'put ''ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0xOCw0LjI1QTE2LjQ5LDE2LjQ5LDAsMCwwLDUuNCwz''@;'; + put 'put ''MS40bC4zLjM1SDMwLjNsLjMtLjM1QTE2LjQ5LDE2LjQ5LDAsMCwwLDE4LDQuMjVabTguNiw5LjQ4LTUuOTIsNS44MWEzLDMsMCwxLDEtMS40MS0xLjQybDUuOTEtNS44MVptLTIzLDYuMTdIN3YySDMuNTZjMC0uMzktLjA1LS43Ny0uMDUtMS4xN1MzLjUzLDIwLjE4LDMuNTUsMTkuOVptNC44''@;'; + put 'put ''OC0xMCwyLjQ2LDIuNDZMOS40NywxMy43NCw3LDExLjI5QTE0LjU3LDE0LjU3LDAsMCwxLDguNDMsOS44N1pNMTksOS43OUgxN1Y2LjI5Yy4zMiwwLC42MywwLDEsMHMuNywwLDEsLjA1Wk0zMi40OSwyMC43NGMwLC4zOSwwLC43OS0uMDUsMS4xN0gyOC45MnYtMmgzLjUzQzMyLjQ3LDIwLjE4''@;'; + put 'put ''LDMyLjQ5LDIwLjQ2LDMyLjQ5LDIwLjc0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMzIuNTgsMTNhNy40Niw3LjQ2LDAsMCwxLTEwLTguMTJBMTYuNDksMTYuNDksMCwwLDAsNS40''@;'; + put 'put ''LDMxLjRsLjMuMzVIMzAuM2wuMy0uMzVhMTYuNDUsMTYuNDUsMCwwLDAsMi0xOC4zNlpNMTcsNi4yOWMuMzIsMCwuNjMsMCwxLDBzLjcsMCwxLC4wNXYzLjVIMTdaTTcsMjEuOTFIMy41NmMwLS4zOS0uMDUtLjc3LS4wNS0xLjE3czAtLjU2LDAtLjgzSDdabTIuNTEtOC4xNkw3LDExLjI5QTE0''@;'; + put 'put ''LjU3LDE0LjU3LDAsMCwxLDguNDMsOS44N2wyLjQ2LDIuNDZabTEwLjYyLDkuMTlhMywzLDAsMSwxLS44Mi00LjgxbDUuOTEtNS44MSwxLjQxLDEuNDEtNS45Miw1LjgxQTMsMywwLDAsMSwyMC4wOSwyMi45M1ptMTIuMzUtMUgyOC45MnYtMmgzLjUzYzAsLjI4LDAsLjU1LDAsLjgzUzMyLjQ3''@;'; + put 'put ''LDIxLjUyLDMyLjQ0LDIxLjkxWiIvPlxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbicpLGUuQ2xyU2hhcGVIb3N0PSgwLGEuY2xy''@;'; + put 'put ''SWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMTgsMjQuM2EyLjQ4LDIuNDgsMCwxLDAsMi40OCwyLjQ3QTIuNDgsMi40OCwwLDAsMCwxOCwyNC4zWm0wLDMuNmExLjEzLDEuMTMsMCwxLDEsMS4xMy0xLjEyQTEuMTMsMS4xMyww''@;'; + put 'put ''LDAsMSwxOCwyNy45WiIvPjxyZWN0IHg9IjEzLjUiIHk9IjIwLjciIHdpZHRoPSI5IiBoZWlnaHQ9IjEuNDQiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTI1LjY1LDMuNkgxMC4zNUExLjM1LDEuMzUsMCww''@;'; + put 'put ''LDAsOSw0Ljk1VjMyLjRIMjdWNC45NUExLjM1LDEuMzUsMCwwLDAsMjUuNjUsMy42Wm0tLjQ1LDI3SDEwLjhWNS40SDI1LjJaIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIHg9IjEyLjYiIHk9IjcuMiIgd2lkdGg9''@;'; + put 'put ''IjEwLjgiIGhlaWdodD0iMS40NCIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiB4PSIxMi42IiB5PSIxMC44IiB3aWR0aD0iMTAuOCIgaGVpZ2h0PSIxLjQ0Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9''@;'; + put 'put ''ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0xNS4yLDI3LjhjMCwxLjUsMS4yLDIuOCwyLjgsMi44czIuOC0xLjIsMi44LTIuOFMxOS41LDI1LDE4LDI1UzE1LjIsMjYuMiwxNS4yLDI3Ljh6IE0xOS4yLDI3LjhjMCwwLjctMC42LDEu''@;'; + put 'put ''Mi0xLjIsMS4ycy0xLjItMC42LTEuMi0xLjJzMC42LTEuMiwxLjItMS4yUzE5LjIsMjcuMSwxOS4yLDI3Ljh6Ii8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIHg9IjEzIiB5PSIyMSIg''@;'; + put 'put ''d2lkdGg9IjEwIiBoZWlnaHQ9IjEuNiIvPlxuICAgICAgICAgICAgICAgIDxwb2x5Z29uIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIiBwb2ludHM9IjIxLjMsNiAxMiw2IDEyLDcuNiAyMC40LDcuNiIvPlxuICAgICAgICAgICAg''@;'; + put 'put ''ICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIiBkPSJNMTIsMTEuNmg2LjZjMC0wLjYsMC4yLTEuMSwwLjQtMS42aC03VjExLjZ6Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUt''@;'; + put 'put ''LWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWFsZXJ0ZWQiIGQ9Ik0yNiwxNS40VjMySDEwVjRoMTIuNWwxLjEtMkg5LjVDOC43LDIsOCwyLjcsOCwzLjVWMzRoMjBWMTUuNEgyNnoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBj''@;'; + put 'put ''bHItaS1vdXRsaW5lLXBhdGgtNi0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2LjksMS4xTDIxLjEsMTFjLTAuNCwwLjYtMC4yLDEuNCwwLjMsMS44YzAuMiwwLjIsMC41LDAuMiwwLjgsMC4yaDExLjVjMC43LDAsMS4zLTAuNSwxLjMtMS4yYzAtMC4zLTAuMS0wLjUtMC4yLTAuOGwtNS43''@;'; + put 'put ''LTkuOWMtMC40LTAuNi0xLjEtMC44LTEuOC0wLjVDMjcuMSwwLjgsMjcsMSwyNi45LDEuMXoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0xNS4yLDI3LjhjMCwxLjUsMS4yLDIu''@;'; + put 'put ''OCwyLjgsMi44czIuOC0xLjIsMi44LTIuOFMxOS41LDI1LDE4LDI1UzE1LjIsMjYuMiwxNS4yLDI3Ljh6IE0xOS4yLDI3LjhjMCwwLjctMC42LDEuMi0xLjIsMS4ycy0xLjItMC42LTEuMi0xLjJzMC42LTEuMiwxLjItMS4yUzE5LjIsMjcuMSwxOS4yLDI3Ljh6Ii8+XG4gICAgICAgICAgICAg''@;'; + put 'put ''ICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIiB4PSIxMyIgeT0iMjEiIHdpZHRoPSIxMCIgaGVpZ2h0PSIxLjYiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1p''@;'; + put 'put ''LW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiIGQ9Ik0yNCwxMC41Yy0wLjEtMC4yLTAuMi0wLjMtMC4zLTAuNUgxMnYxLjZoMTJWMTAuNXoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQiIGQ9''@;'; + put 'put ''Ik0xMiw2djEuNmgxMC43Yy0wLjEtMC41LTAuMi0xLjEtMC4yLTEuNkgxMnoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC01LS1iYWRnZWQiIGQ9Ik0yNiwxMi4zVjMySDEwVjRoMTIuOGMwLjItMC43LDAu''@;'; + put 'put ''NS0xLjQsMC45LTJIOS41QzguNywyLDgsMi43LDgsMy41VjM0aDIwVjEzLjJDMjcuMywxMywyNi42LDEyLjcsMjYsMTIuM3oiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTYtLWJhZGdlZCBjbHItaS1i''@;'; + put 'put ''YWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0yNi41LDJoLTE3QzguNywyLDgsMi43LDgsMy41VjM0aDIwVjMuNUMyOCwyLjcsMjcuMywyLDI2LjUsMnogTTE4LDMwLjVj''@;'; + put 'put ''LTEuNSwwLTIuOC0xLjItMi44LTIuOFMxNi41LDI1LDE4LDI1czIuOCwxLjIsMi44LDIuOFMxOS41LDMwLjUsMTgsMzAuNXogTTIzLDIyLjZIMTNWMjFoMTBWMjIuNnogTTI0LDExLjZIMTJWMTBoMTJWMTEuNnogTTI0LDcuNkgxMlY2aDEyVjcuNnoiLz5cbiAgICAgICAgICAgICAgICA8Y2ly''@;'; + put 'put ''Y2xlIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGN4PSIxOCIgY3k9IjI3LjgiIHI9IjEuMiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0yMi4yLDE1LjNj''@;'; + put 'put ''LTIsMC0zLjctMS42LTMuNy0zLjdIMTJWMTBoNi45YzAtMC4xLDAuMS0wLjIsMC4xLTAuMmwxLjItMi4ySDEyVjZoOS4ybDIuMy00aC0xNEM4LjcsMiw4LDIuNyw4LDMuNVYzNGgyMFYxNS4zSDIyLjJ6IE0xOCwzMC41Yy0xLjUsMC0yLjgtMS4yLTIuOC0yLjhTMTYuNSwyNSwxOCwyNXMyLjgs''@;'; + put 'put ''MS4yLDIuOCwyLjhTMTkuNSwzMC41LDE4LDMwLjV6IE0yMywyMi42SDEzVjIxaDEwVjIyLjZ6Ii8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIiBjeD0iMTgiIGN5PSIyNy44IiByPSIxLjIi''@;'; + put 'put ''Lz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0zLS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNMjYuOSwxbC01LjcsOS45Yy0wLjMsMC42LTAuMSwxLjQsMC41LDEuN2MwLjIsMC4xLDAuNCwwLjIsMC42LDAuMmgx''@;'; + put 'put ''MS40YzAuNywwLDEuMy0wLjYsMS4zLTEuM2MwLTAuMi0wLjEtMC40LTAuMi0wLjZMMjkuMSwxYy0wLjQtMC42LTEuMS0wLjgtMS44LTAuNUMyNy4xLDAuNywyNywwLjgsMjYuOSwxeiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNv''@;'; + put 'put ''bGlkLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMjQsMTAuM3YxLjJIMTJWMTBoMTEuOGMtMC41LTAuNy0wLjgtMS41LTEtMi40SDEyVjZoMTAuNWMwLDAsMC0wLjEsMC0wLjFjMC0xLjQsMC40LTIuNywxLjEtMy45SDkuNUM4LjcsMiw4LDIuNyw4LDMuNVYzNGgyMFYxMy4xQzI2LjQsMTIuNiwyNSwx''@;'; + put 'put ''MS43LDI0LDEwLjN6IE0xOCwzMC41Yy0xLjUsMC0yLjgtMS4yLTIuOC0yLjhTMTYuNSwyNSwxOCwyNXMyLjgsMS4yLDIuOCwyLjhTMTkuNSwzMC41LDE4LDMwLjV6TTIzLDIyLjZIMTNWMjFoMTBWMjIuNnoiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZC0t''@;'; + put 'put ''YmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIiBjeD0iMTgiIGN5PSIyNy44IiByPSIxLjIiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5''@;'; + put 'put ''PSI1LjkiIHI9IjUiLz5cbicpLGUuQ2xyU2hhcGVTdG9yYWdlPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzMsNi42OWgwYy0uMTgtMy40MS05LjQ3LTQuMzMtMTUtNC4zM1MzLDMuMjksMyw2Ljc4VjI5LjM3''@;'; + put 'put ''YzAsMy40OSw5LjQzLDQuNDMsMTUsNC40M3MxNS0uOTMsMTUtNC40M1Y2Ljc4czAsMCwwLDBTMzMsNi43LDMzLDYuNjlabS0yLDcuNTZjLS4zMy44Ni01LjA2LDIuNDUtMTMsMi40NUEzNy40NSwzNy40NSwwLDAsMSw3LDE1LjM0djIuMDhBNDMuMzIsNDMuMzIsMCwwLDAsMTgsMTguN2M0LDAs''@;'; + put 'put ''OS45My0uNDgsMTMtMnY1LjE3Yy0uMzMuODYtNS4wNiwyLjQ1LTEzLDIuNDVBMzcuNDUsMzcuNDUsMCwwLDEsNywyMi45MlYyNWE0My4zMiw0My4zMiwwLDAsMCwxMSwxLjI4YzQsMCw5LjkzLS40OCwxMy0ydjUuMWMtLjM1Ljg2LTUuMDgsMi40NS0xMywyLjQ1UzUuMywzMC4yLDUsMjkuMzdW''@;'; + put 'put ''Ni44MkM1LjMsNiwxMCw0LjM2LDE4LDQuMzZjNy43NywwLDEyLjQ2LDEuNTMsMTMsMi4zNy0uNTIuODctNS4yMSwyLjM5LTEzLDIuMzlBMzcuNiwzNy42LDAsMCwxLDcsNy43NlY5Ljg1YTQzLjUzLDQzLjUzLDAsMCwwLDExLDEuMjdjNCwwLDkuOTMtLjQ4LDEzLTJaIi8+XG4gICAgICAgICAg''@;'; + put 'put ''ICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0xOS41MSw5LjA5LDE4LDkuMTFBMzcuNiwzNy42LDAsMCwxLDcsNy43NlY5Ljg1YTQzLjUzLDQzLjUzLDAsMCwwLDExLDEuMjdoLjYxQTMuNjYsMy42Niww''@;'; + put 'put ''LDAsMSwxOSw5Ljg5WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIiBkPSJNMjguODMsMTUuNEEzOC4zNywzOC4zNywwLDAsMSwxOCwxNi43LDM3LjQ1LDM3LjQ1LDAsMCwxLDcsMTUu''@;'; + put 'put ''MzR2Mi4wOEE0My4zMyw0My4zMywwLDAsMCwxOCwxOC43YzQsMCw5LjkzLS40OCwxMy0ydjUuMTdjLS4zMy44Ni01LjA2LDIuNDUtMTMsMi40NUEzNy40NSwzNy40NSwwLDAsMSw3LDIyLjkyVjI1YTQzLjMzLDQzLjMzLDAsMCwwLDExLDEuMjhjNCwwLDkuOTMtLjQ4LDEzLTJ2NS4xYy0uMzUu''@;'; + put 'put ''ODYtNS4wOCwyLjQ1LTEzLDIuNDVTNS4zLDMwLjIsNSwyOS4zN1Y2LjgyQzUuMyw2LDEwLDQuMzYsMTgsNC4zNmMxLjUsMCwyLjg5LjA2LDQuMTUuMTZsMS4xLTEuOWMtMS44Ni0uMTgtMy43LS4yNi01LjI1LS4yNi01LjU3LDAtMTUsLjkzLTE1LDQuNDNWMjkuMzdjMCwzLjQ5LDkuNDMsNC40''@;'; + put 'put ''MywxNSw0LjQzczE1LS45MywxNS00LjQzdi0xNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAs''@;'; + put 'put ''MCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdl''@;'; + put 'put ''ZCIgZD0iTTcsNy43NlY5Ljg1YTQzLjUzLDQzLjUzLDAsMCwwLDExLDEuMjcsNTQuODIsNTQuODIsMCwwLDAsNi4yLS4zNiw3LjUsNy41LDAsMCwxLTEuMTMtMS44OGMtMS41LjE1LTMuMi4yNC01LjA3LjI0QTM3LjYsMzcuNiwwLDAsMSw3LDcuNzZaIi8+XG4gICAgICAgICAgICAgICAgPHBh''@;'; + put 'put ''dGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIiBkPSJNMzEsMTMuNDN2LjgyYy0uMzMuODYtNS4wNiwyLjQ1LTEzLDIuNDVBMzcuNDUsMzcuNDUsMCwwLDEsNywxNS4zNHYyLjA4QTQzLjMzLDQzLjMzLDAsMCwwLDE4LDE4LjdjNCww''@;'; + put 'put ''LDkuOTMtLjQ4LDEzLTJ2NS4xN2MtLjMzLjg2LTUuMDYsMi40NS0xMywyLjQ1QTM3LjQ1LDM3LjQ1LDAsMCwxLDcsMjIuOTJWMjVhNDMuMzMsNDMuMzMsMCwwLDAsMTEsMS4yOGM0LDAsOS45My0uNDgsMTMtMnY1LjFjLS4zNS44Ni01LjA4LDIuNDUtMTMsMi40NVM1LjMsMzAuMiw1LDI5LjM3''@;'; + put 'put ''VjYuODJDNS4zLDYsMTAsNC4zNiwxOCw0LjM2YzEuNywwLDMuMjUuMDgsNC42NC4yYTcuNDQsNy40NCwwLDAsMSwuNjctMS45NGMtMS44OC0uMTgtMy43NS0uMjYtNS4zMS0uMjYtNS41NywwLTE1LC45My0xNSw0LjQzVjI5LjM3YzAsMy40OSw5LjQzLDQuNDMsMTUsNC40M3MxNS0uOTMsMTUt''@;'; + put 'put ''NC40M1YxMi44N0E3LjQ1LDcuNDUsMCwwLDEsMzEsMTMuNDNaIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgICAg''@;'; + put 'put ''ICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMTcuOTEsMTguMjhjOC4wOCwwLDE0LjY2LTEuNzQsMTUuMDktMy45NFY4LjU5Yy0uNDMsMi4yLTcsMy45NC0xNS4wOSwzLjk0QTM5LjQsMzkuNCwwLDAsMSw2LjI1LDExVjlhMzkuNCwz''@;'; + put 'put ''OS40LDAsMCwwLDExLjY2LDEuNTFDMjYsMTAuNTMsMzIuNTIsOC43OSwzMyw2LjYxaDBDMzIuOCwzLjIsMjMuNTIsMi4yOCwxOCwyLjI4UzMsMy4yMSwzLDYuNzFWMjkuMjljMCwzLjQ5LDkuNDMsNC40MywxNSw0LjQzczE1LS45MywxNS00LjQzVjI0LjA5QzMyLjU3LDI2LjI4LDI2LDI4LDE3''@;'; + put 'put ''LjkxLDI4QTM5LjQsMzkuNCwwLDAsMSw2LjI1LDI2LjUydi0yQTM5LjQsMzkuNCwwLDAsMCwxNy45MSwyNkMyNiwyNiwzMi41NywyNC4yOCwzMywyMi4wOVYxNi4zNGMtLjQzLDIuMi03LDMuOTQtMTUuMDksMy45NEEzOS40LDM5LjQsMCwwLDEsNi4yNSwxOC43N3YtMkEzOS40LDM5LjQsMCww''@;'; + put 'put ''LDAsMTcuOTEsMTguMjhaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIgZD0iTTE3LjkxLDIwLjI4QTM5LjQsMzkuNCwwLDAsMSw2LjI1LDE4Ljc3di0yYTM5LjQsMzkuNCwwLDAsMCwxMS42''@;'; + put 'put ''NiwxLjUxYzYuOSwwLDEyLjctMS4yNywxNC41MS0zSDIyLjIzYTMuNjcsMy42NywwLDAsMS0zLjU1LTIuNzVoLS43N0EzOS40LDM5LjQsMCwwLDEsNi4yNSwxMVY5YTM5LjQsMzkuNCwwLDAsMCwxMS42NiwxLjUxaC44MkEzLjY0LDMuNjQsMCwwLDEsMTksOS43NWw0LjE3LTcuMjJjLTEuODUt''@;'; + put 'put ''LjE4LTMuNjgtLjI1LTUuMjEtLjI1LTUuNTcsMC0xNSwuOTMtMTUsNC40M1YyOS4yOWMwLDMuNDksOS40Myw0LjQzLDE1LDQuNDNzMTUtLjkzLDE1LTQuNDNWMjQuMDlDMzIuNTcsMjYuMjgsMjYsMjgsMTcuOTEsMjhBMzkuNCwzOS40LDAsMCwxLDYuMjUsMjYuNTJ2LTJBMzkuNCwzOS40LDAs''@;'; + put 'put ''MCwwLDE3LjkxLDI2QzI2LDI2LDMyLjU3LDI0LjI4LDMzLDIyLjA5VjE2LjM0QzMyLjU3LDE4LjUzLDI2LDIwLjI4LDE3LjkxLDIwLjI4WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQgY2xy''@;'; + put 'put ''LWktYWxlcnQiIGQ9Ik0yNi44NSwxbC01LjcyLDkuOTFhMS4yOCwxLjI4LDAsMCwwLDEuMSwxLjkxSDMzLjY4YTEuMjgsMS4yOCwwLDAsMCwxLjEtMS45MUwyOS4wNiwxQTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xp''@;'; + put 'put ''ZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMTcuOTEsMTguMjhjOC4wOCwwLDE0LjY2LTEuNzQsMTUuMDktMy45NHYtMS42YTcuNDcsNy40NywwLDAsMS03LjM4LS44LDQ4LjMsNDguMywwLDAsMS03LjcxLjU5QTM5LjQsMzkuNCwwLDAsMSw2LjI1LDExVjlhMzku''@;'; + put 'put ''NCwzOS40LDAsMCwwLDExLjY2LDEuNTEsNTEsNTEsMCwwLDAsNi0uMzQsNy40Niw3LjQ2LDAsMCwxLS41OS03LjY1Yy0xLjg3LS4xOC0zLjczLS4yNi01LjI4LS4yNi01LjU3LDAtMTUsLjkzLTE1LDQuNDNWMjkuMjljMCwzLjQ5LDkuNDMsNC40MywxNSw0LjQzczE1LS45MywxNS00LjQzVjI0''@;'; + put 'put ''LjA5QzMyLjU3LDI2LjI4LDI2LDI4LDE3LjkxLDI4QTM5LjQsMzkuNCwwLDAsMSw2LjI1LDI2LjUydi0yQTM5LjQsMzkuNCwwLDAsMCwxNy45MSwyNkMyNiwyNiwzMi41NywyNC4yOCwzMywyMi4wOVYxNi4zNGMtLjQzLDIuMi03LDMuOTQtMTUuMDksMy45NEEzOS40LDM5LjQsMCwwLDEsNi4y''@;'; + put 'put ''NSwxOC43N3YtMkEzOS40LDM5LjQsMCwwLDAsMTcuOTEsMTguMjhaIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNS44NiIgcj0iNSIvPlxuJyks''@;'; + put 'put ''ZS5DbHJTaGFwZUNsdXN0ZXI9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMxLjM2LDhIMjcuNXYySDMxVjMwSDI3LjV2MkgzM1Y5LjY3QTEuNjUsMS42NSwwLDAsMCwzMS4zNiw4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAg''@;'; + put 'put ''IDxwYXRoIGQ9Ik01LDEwSDguNVY4SDQuNjRBMS42NSwxLjY1LDAsMCwwLDMsOS42N1YzMkg4LjVWMzBINVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+PGVsbGlwc2UgY3g9IjE4LjAxIiBjeT0iMjUuOTkiIHJ4PSIxLjgiIHJ5PSIxLjc5IiBjbGFzcz0i''@;'; + put 'put ''Y2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI0LjMyLDRIMTEuNjhBMS42OCwxLjY4LDAsMCwwLDEwLDUuNjhWMzJIMjZWNS42OEExLjY4LDEuNjgsMCwwLDAsMjQuMzIsNFpNMjQsMzBIMTJWNkgyNFoiIGNsYXNzPSJjbHItaS1v''@;'; + put 'put ''dXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00Ii8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMy41IiB5PSI5LjIxIiB3aWR0aD0iOSIgaGVpZ2h0PSIxLjYiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNNSwxMEg4''@;'; + put 'put ''LjVWOEg0LjY0QTEuNjUsMS42NSwwLDAsMCwzLDkuNjdWMzJIOC41VjMwSDVaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIvPjxlbGxpcHNlIGN4PSIxOC4wMSIgY3k9IjI1Ljk5IiByeD0iMS44IiByeT0iMS43OSIgY2xhc3M9''@;'; + put 'put ''ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOSw5Ljg5bC4zOS0uNjhIMTMuNXYxLjZoNS4xN0EzLjY1LDMuNjUsMCwwLDEsMTksOS44OVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVk''@;'; + put 'put ''IGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjQsMzBIMTJWNmg5LjI5bDEuMTUtMkgxMS42OEExLjY4LDEuNjgsMCwwLDAsMTAsNS42OFYzMkgyNlYxNS40SDI0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0''@;'; + put 'put ''bGluZS1wYXRoLTQtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMzEgMTUuNCAzMSAzMCAyNy41IDMwIDI3LjUgMzIgMzMgMzIgMzMgMTUuNCAzMSAxNS40IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYWxlcnRl''@;'; + put 'put ''ZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUt''@;'; + put 'put ''LWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTYtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik01LDEwSDguNVY4SDQuNjRBMS42NSwxLjY1LDAsMCwwLDMsOS42N1YzMkg4LjVWMzBINVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWkt''@;'; + put 'put ''b3V0bGluZS1wYXRoLTEtLWJhZGdlZCIvPjxlbGxpcHNlIGN4PSIxOC4wMSIgY3k9IjI1Ljk5IiByeD0iMS44IiByeT0iMS43OSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMy41IiB5''@;'; + put 'put ''PSI5LjIxIiB3aWR0aD0iOSIgaGVpZ2h0PSIxLjYiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI0LDEwLjQ5VjMwSDEyVjZIMjIuNWE3LjQ5LDcuNDksMCwwLDEsLjI4LTJIMTEuNjhB''@;'; + put 'put ''MS42OCwxLjY4LDAsMCwwLDEwLDUuNjhWMzJIMjZWMTIuMzRBNy41Myw3LjUzLDAsMCwxLDI0LDEwLjQ5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzEsMTMuNDNWMzBIMjcuNXYy''@;'; + put 'put ''SDMzVjEyLjg3QTcuNDUsNy40NSwwLDAsMSwzMSwxMy40M1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFk''@;'; + put 'put ''Z2VkIGNsci1pLW91dGxpbmUtcGF0aC02LS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMS4zNiw4SDI3LjVWMzJIMzNWOS42N0ExLjY1LDEuNjUsMCwwLDAsMzEuMzYsOFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAg''@;'; + put 'put ''ICAgICAgICAgIDxwYXRoIGQ9Ik0zLDkuNjdWMzJIOC41VjhINC42NEExLjY1LDEuNjUsMCwwLDAsMyw5LjY3WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI0LjMyLDRIMTEuNjhBMS42OCwxLjY4LDAsMCwwLDEwLDUu''@;'; + put 'put ''NjhWMzJIMjZWNS42OEExLjY4LDEuNjgsMCwwLDAsMjQuMzIsNFpNMTgsMjcuNzlBMS43OSwxLjc5LDAsMSwxLDE5LjgxLDI2LDEuOCwxLjgsMCwwLDEsMTgsMjcuNzlaTTIzLDEwLjZIMTNWOUgyM1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiLz5cbiAgICAgICAg''@;'; + put 'put ''ICAgIDxwYXRoIGQ9Ik0zLDkuNjdWMzJIOC41VjhINC42NEExLjY1LDEuNjUsMCwwLDAsMyw5LjY3WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMjcuNSIgeT0iMTUuNCIgd2lkdGg9IjUu''@;'; + put 'put ''NSIgaGVpZ2h0PSIxNi42IiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTksMTMuNTZhMy42OCwzLjY4LDAsMCwxLS4zMS0zSDEzVjloNi41NmwyLjg5LTVIMTEuNjhBMS42OCwxLjY4LDAs''@;'; + put 'put ''MCwwLDEwLDUuNjhWMzJIMjZWMTUuNEgyMi4yM0EzLjY5LDMuNjksMCwwLDEsMTksMTMuNTZaTTE4LDI3Ljc5QTEuNzksMS43OSwwLDEsMSwxOS44MSwyNiwxLjgsMS44LDAsMCwxLDE4LDI3Ljc5WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMy0tYWxl''@;'; + put 'put ''cnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLXNvbGlk''@;'; + put 'put ''LS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtNC0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMsOS42N1YzMkg4LjVWOEg0LjY0QTEuNjUsMS42NSwwLDAsMCwzLDkuNjdaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRo''@;'; + put 'put ''LTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIyLjUsNmE3LjQ5LDcuNDksMCwwLDEsLjI4LTJIMTEuNjhBMS42OCwxLjY4LDAsMCwwLDEwLDUuNjhWMzJIMjZWMTIuMzRBNy40OSw3LjQ5LDAsMCwxLDIyLjUsNlpNMTgsMjcuNzlBMS43OSwxLjc5LDAsMSwxLDE5LjgxLDI2''@;'; + put 'put ''LDEuOCwxLjgsMCwwLDEsMTgsMjcuNzlaTTIzLDEwLjZIMTNWOUgyM1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAsMTMuNWE3LjQ3LDcuNDcsMCwwLDEtMi41LS40NFYzMkgzM1YxMi44''@;'; + put 'put ''N0E3LjQ3LDcuNDcsMCwwLDEsMzAsMTMuNVoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlk''@;'; + put 'put ''LXBhdGgtNC0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICcpLGUuQ2xyU2hhcGVBcHBsaWNhdGlvbnM9KDAsYS5jbHJJY29uU1ZHKSgnPHBvbHlnb24gcG9pbnRzPSI4IDggNCA4IDQgMTAgMTAgMTAgMTAgNCA4IDQgOCA4IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRs''@;'; + put 'put ''aW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSIxOSA4IDE1IDggMTUgMTAgMjEgMTAgMjEgNCAxOSA0IDE5IDgiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cG9seWdvbiBwb2ludHM9IjMwIDQgMzAg''@;'; + put 'put ''OCAyNiA4IDI2IDEwIDMyIDEwIDMyIDQgMzAgNCIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iOCAxOSA0IDE5IDQgMjEgMTAgMjEgMTAgMTUgOCAxNSA4IDE5IiBjbGFzcz0iY2xyLWktb3V0bGluZSBj''@;'; + put 'put ''bHItaS1vdXRsaW5lLXBhdGgtNCIvPlxuICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSIxOSAxOSAxNSAxOSAxNSAyMSAyMSAyMSAyMSAxNSAxOSAxNSAxOSAxOSIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBv''@;'; + put 'put ''aW50cz0iMzAgMTkgMjYgMTkgMjYgMjEgMzIgMjEgMzIgMTUgMzAgMTUgMzAgMTkiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02Ii8+XG4gICAgICAgICAgICA8cG9seWdvbiBwb2ludHM9IjggMzAgNCAzMCA0IDMyIDEwIDMyIDEwIDI2IDggMjYgOCAzMCIgY2xh''@;'; + put 'put ''c3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTciLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMTkgMzAgMTUgMzAgMTUgMzIgMjEgMzIgMjEgMjYgMTkgMjYgMTkgMzAiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC04Ii8+XG4gICAg''@;'; + put 'put ''ICAgICAgICA8cG9seWdvbiBwb2ludHM9IjMwIDMwIDI2IDMwIDI2IDMyIDMyIDMyIDMyIDI2IDMwIDI2IDMwIDMwIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtOSIvPlxuICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSI4IDggNCA4IDQgMTAgMTAgMTAgMTAg''@;'; + put 'put ''NCA4IDQgOCA4IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMTkgOCAxNSA4IDE1IDEwIDIxIDEwIDIxIDQgMTkgNCAxOSA4IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFk''@;'; + put 'put ''Z2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iOCAxOSA0IDE5IDQgMjEgMTAgMjEgMTAgMTUgOCAxNSA4IDE5IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiLz5c''@;'; + put 'put ''biAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMTkgMTkgMTUgMTkgMTUgMjEgMjEgMjEgMjEgMTUgMTkgMTUgMTkgMTkiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSIz''@;'; + put 'put ''MCAxOSAyNiAxOSAyNiAyMSAzMiAyMSAzMiAxNSAzMCAxNSAzMCAxOSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cG9seWdvbiBwb2ludHM9IjggMzAgNCAzMCA0IDMyIDEwIDMyIDEwIDI2IDggMjYg''@;'; + put 'put ''OCAzMCIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cG9seWdvbiBwb2ludHM9IjE5IDMwIDE1IDMwIDE1IDMyIDIxIDMyIDIxIDI2IDE5IDI2IDE5IDMwIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFk''@;'; + put 'put ''Z2VkIGNsci1pLW91dGxpbmUtcGF0aC03LS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMzAgMzAgMjYgMzAgMjYgMzIgMzIgMzIgMzIgMjYgMzAgMjYgMzAgMzAiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTgtLWJhZGdl''@;'; + put 'put ''ZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC05LS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iOCA4IDQgOCA0IDEwIDEw''@;'; + put 'put ''IDEwIDEwIDQgOCA0IDggOCIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iOCAxOSA0IDE5IDQgMjEgMTAgMjEgMTAgMTUgOCAxNSA4IDE5IiBjbGFzcz0iY2xyLWktb3V0''@;'; + put 'put ''bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSIxOSAxOSAxNSAxOSAxNSAyMSAyMSAyMSAyMSAxNSAxOSAxNSAxOSAxOSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1w''@;'; + put 'put ''YXRoLTMtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMzAgMTUgMzAgMTkgMjYgMTkgMjYgMjEgMzIgMjEgMzIgMTUgMzAgMTUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIi8+XG4gICAgICAgICAg''@;'; + put 'put ''ICA8cG9seWdvbiBwb2ludHM9IjggMzAgNCAzMCA0IDMyIDEwIDMyIDEwIDI2IDggMjYgOCAzMCIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMTkgMzAgMTUgMzAgMTUg''@;'; + put 'put ''MzIgMjEgMzIgMjEgMjYgMTkgMjYgMTkgMzAiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC02LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cG9seWdvbiBwb2ludHM9IjMwIDMwIDI2IDMwIDI2IDMyIDMyIDMyIDMyIDI2IDMwIDI2IDMwIDMwIiBj''@;'; + put 'put ''bGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNy0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE5LDhIMTV2Mmg0TDE5LDkuODksMjEsNi41VjRIMTlaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBh''@;'; + put 'put ''dGgtOC0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNs''@;'; + put 'put ''ci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTktLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjQiIHk9IjQiIHdpZHRoPSI2IiBoZWlnaHQ9IjYiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgICAg''@;'; + put 'put ''ICAgICAgIDxyZWN0IHg9IjQiIHk9IjE1IiB3aWR0aD0iNiIgaGVpZ2h0PSI2IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSI0IiB5PSIyNiIgd2lkdGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1p''@;'; + put 'put ''LXNvbGlkLXBhdGgtMyIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTUiIHk9IjQiIHdpZHRoPSI2IiBoZWlnaHQ9IjYiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE1IiB5PSIxNSIgd2lkdGg9IjYiIGhlaWdodD0iNiIg''@;'; + put 'put ''Y2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNSIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTUiIHk9IjI2IiB3aWR0aD0iNiIgaGVpZ2h0PSI2IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC02Ii8+XG4gICAgICAgICAgICA8cmVjdCB4PSIyNiIgeT0i''@;'; + put 'put ''NCIgd2lkdGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNyIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMjYiIHk9IjE1IiB3aWR0aD0iNiIgaGVpZ2h0PSI2IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC04Ii8+XG4gICAg''@;'; + put 'put ''ICAgICAgICA8cmVjdCB4PSIyNiIgeT0iMjYiIHdpZHRoPSI2IiBoZWlnaHQ9IjYiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTkiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjQiIHk9IjQiIHdpZHRoPSI2IiBoZWlnaHQ9IjYiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxl''@;'; + put 'put ''cnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjQiIHk9IjE1IiB3aWR0aD0iNiIgaGVpZ2h0PSI2IiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cmVj''@;'; + put 'put ''dCB4PSI0IiB5PSIyNiIgd2lkdGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMy0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTUiIHk9IjE1IiB3aWR0aD0iNiIgaGVpZ2h0PSI2IiBjbGFzcz0iY2xyLWktc29s''@;'; + put 'put ''aWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC00LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNSIgeT0iMjYiIHdpZHRoPSI2IiBoZWlnaHQ9IjYiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTUtLWFsZXJ0ZWQiLz5cbiAgICAgICAg''@;'; + put 'put ''ICAgIDxyZWN0IHg9IjI2IiB5PSIxNSIgd2lkdGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtNi0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMjYiIHk9IjI2IiB3aWR0aD0iNiIgaGVpZ2h0PSI2IiBjbGFzcz0i''@;'; + put 'put ''Y2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC03LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTUsMTBoNEwxOSw5Ljg5LDIxLDYuNVY0SDE1WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtOC0tYWxlcnRlZCIvPlxu''@;'; + put 'put ''ICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVk''@;'; + put 'put ''IGNsci1pLXNvbGlkLXBhdGgtOS0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iNCIgeT0iNCIgd2lkdGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAg''@;'; + put 'put ''IDxyZWN0IHg9IjQiIHk9IjE1IiB3aWR0aD0iNiIgaGVpZ2h0PSI2IiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iNCIgeT0iMjYiIHdpZHRoPSI2IiBoZWlnaHQ9IjYiIGNsYXNzPSJjbHItaS1z''@;'; + put 'put ''b2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNSIgeT0iNCIgd2lkdGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC00LS1iYWRnZWQiLz5cbiAgICAgICAgICAg''@;'; + put 'put ''IDxyZWN0IHg9IjE1IiB5PSIxNSIgd2lkdGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC01LS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE1IiB5PSIyNiIgd2lkdGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9ImNsci1p''@;'; + put 'put ''LXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC02LS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjI2IiB5PSIxNSIgd2lkdGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC03LS1iYWRnZWQiLz5cbiAgICAgICAg''@;'; + put 'put ''ICAgIDxyZWN0IHg9IjI2IiB5PSIyNiIgd2lkdGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC04LS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLXNvbGlkLS1i''@;'; + put 'put ''YWRnZWQgY2xyLWktc29saWQtcGF0aC05LS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgJyksZS5DbHJTaGFwZUJ1aWxkaW5nPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xOS44OCwzSDYuMTJBMi4xMiwyLjEyLDAsMCwwLDQsNS4xMlYzM0gyMlY1LjEyQTIuMTIsMi4xMiww''@;'; + put 'put ''LDAsMCwxOS44OCwzWk0yMCwzMUgxN1YyOEg5djNINlY1LjEyQS4xMi4xMiwwLDAsMSw2LjEyLDVIMTkuODhhLjEyLjEyLDAsMCwxLC4xMi4xMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHJlY3Qg''@;'; + put 'put ''eD0iOCIgeT0iOCIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMiIgeT0iOCIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxp''@;'; + put 'put ''bmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNiIgeT0iOCIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIi8+XG4gICAgICAg''@;'; + put 'put ''ICAgICA8cmVjdCB4PSI4IiB5PSIxMyIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMiIgeT0iMTMiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNz''@;'; + put 'put ''PSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTYtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTYiIHk9IjEzIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC03LS1iYWRn''@;'; + put 'put ''ZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjgiIHk9IjE4IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC04LS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjEyIiB5PSIxOCIgd2lkdGg9IjIiIGhl''@;'; + put 'put ''aWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtOS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNiIgeT0iMTgiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGlu''@;'; + put 'put ''ZS1wYXRoLTEwLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjgiIHk9IjIzIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMiIgeT0i''@;'; + put 'put ''MjMiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEyLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE2IiB5PSIyMyIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJh''@;'; + put 'put ''ZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMTMtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMjMiIHk9IjEzIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xNC0tYmFkZ2VkIi8+XG4gICAgICAgICAg''@;'; + put 'put ''ICA8cmVjdCB4PSIyNyIgeT0iMTMiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTE1LS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjIzIiB5PSIxOCIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9''@;'; + put 'put ''ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMTYtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMjciIHk9IjE4IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xNy0tYmFk''@;'; + put 'put ''Z2VkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIyMyIgeT0iMjMiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTE4LS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjI3IiB5PSIyMyIgd2lkdGg9IjIi''@;'; + put 'put ''IGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMTktLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMxLDEzLjQzVjMxSDIzdjJIMzNWMTIuODdBNy40NSw3LjQ1LDAsMCwxLDMxLDEzLjQzWiIgY2xhc3M9ImNsci1pLW91''@;'; + put 'put ''dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMjAtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yMS0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4g''@;'; + put 'put ''ICAgICAgICAgICA8cmVjdCB4PSI4IiB5PSI4IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTIiIHk9IjgiIHdpZHRoPSIyIiBoZWlnaHQ9IjIi''@;'; + put 'put ''IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNiIgeT0iOCIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRo''@;'; + put 'put ''LTMtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjgiIHk9IjEzIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTIiIHk9IjEzIiB3''@;'; + put 'put ''aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTYiIHk9IjEzIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRl''@;'; + put 'put ''ZCBjbHItaS1vdXRsaW5lLXBhdGgtNi0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iOCIgeT0iMTgiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC03LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8''@;'; + put 'put ''cmVjdCB4PSIxMiIgeT0iMTgiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC04LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNiIgeT0iMTgiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJj''@;'; + put 'put ''bHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC05LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSI4IiB5PSIyMyIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEwLS1hbGVy''@;'; + put 'put ''dGVkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMiIgeT0iMjMiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTYiIHk9IjIzIiB3aWR0aD0i''@;'; + put 'put ''MiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMTItLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjIzIiB5PSIxOCIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xy''@;'; + put 'put ''LWktb3V0bGluZS1wYXRoLTEzLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIyNyIgeT0iMTgiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xNC0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHJl''@;'; + put 'put ''Y3QgeD0iMjMiIHk9IjIzIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMTUtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjI3IiB5PSIyMyIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNs''@;'; + put 'put ''ci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTE2LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjAsMzFIMTdWMjhIOXYzSDZWNS4xMkEuMTIuMTIsMCwwLDEsNi4xMiw1SDE5Ljg4YS4xMi4xMiwwLDAsMSwuMTIuMTJWOC4yNGwyLTMuNDFBMi4xMiwy''@;'; + put 'put ''LjEyLDAsMCwwLDE5Ljg4LDNINi4xMkEyLjEyLDIuMTIsMCwwLDAsNCw1LjEyVjMzSDIyVjE1LjM4YTMuNjgsMy42OCwwLDAsMS0yLS43NFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xNy0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBvbHln''@;'; + put 'put ''b24gcG9pbnRzPSIzMSAxNS40IDMxIDMxIDIzIDMxIDIzIDMzIDMzIDMzIDMzIDE1LjQgMzEgMTUuNCIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTE4LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywx''@;'; + put 'put ''MUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMTktLWFsZXJ0ZWQgY2xyLWkt''@;'; + put 'put ''YWxlcnQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMSw4SDIyVjMzSDMzVjEwQTIsMiwwLDAsMCwzMSw4Wk0yNiwyNUgyNFYyM2gyWm0wLTVIMjRWMThoMlptMC01SDI0VjEzaDJabTQsMTBIMjhWMjNoMlptMC01SDI4VjE4aDJabTAtNUgyOFYxM2gyWiIgY2xhc3M9ImNsci1pLXNvbGlk''@;'; + put 'put ''IGNsci1pLXNvbGlkLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE3Ljg4LDNINi4xMkEyLjEyLDIuMTIsMCwwLDAsNCw1LjEyVjMzSDlWMzBoNnYzaDVWNS4xMkEyLjEyLDIuMTIsMCwwLDAsMTcuODgsM1pNOSwyNUg3VjIzSDlabTAtNUg3VjE4SDlabTAtNUg3VjEzSDlabTAt''@;'; + put 'put ''NUg3VjhIOVptNCwxNUgxMVYyM2gyWm0wLTVIMTFWMThoMlptMC01SDExVjEzaDJabTAtNUgxMVY4aDJabTQsMTVIMTVWMjNoMlptMC01SDE1VjE4aDJabTAtNUgxNVYxM2gyWm0wLTVIMTVWOGgyWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIvPlxuICAgICAgICAg''@;'; + put 'put ''ICAgPHBhdGggZD0iTTE3Ljg4LDNINi4xMkEyLjEyLDIuMTIsMCwwLDAsNCw1LjEyVjMzSDlWMzBoNnYzaDVWMTQuNjRhMy42NywzLjY3LDAsMCwxLTEtNC43NmwxLTEuNjVWNS4xMkEyLjEyLDIuMTIsMCwwLDAsMTcuODgsM1pNOSwyNUg3VjIzSDlabTAtNUg3VjE4SDlabTAtNUg3VjEzSDla''@;'; + put 'put ''bTAtNUg3VjhIOVptNCwxNUgxMVYyM2gyWm0wLTVIMTFWMThoMlptMC01SDExVjEzaDJabTAtNUgxMVY4aDJabTQsMTVIMTVWMjNoMlptMC01SDE1VjE4aDJabTAtNUgxNVYxM2gyWm0wLTVIMTVWOGgyWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0t''@;'; + put 'put ''YWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIyLjIzLDE1LjRsLS4yMywwVjMzSDMzVjE1LjRaTTI2LDI1SDI0VjIzaDJabTAtNUgyNFYxOGgyWm00LDVIMjhWMjNoMlptMC01SDI4VjE4aDJaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0y''@;'; + put 'put ''LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiBjbGFzcz0iY2xyLWkt''@;'; + put 'put ''c29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0zLS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTcuODgsM0g2LjEyQTIuMTIsMi4xMiwwLDAsMCw0LDUuMTJWMzNIOVYzMGg2djNoNVY1LjEyQTIuMTIsMi4xMiwwLDAsMCwxNy44OCwzWk05LDI1''@;'; + put 'put ''SDdWMjNIOVptMC01SDdWMThIOVptMC01SDdWMTNIOVptMC01SDdWOEg5Wm00LDE1SDExVjIzaDJabTAtNUgxMVYxOGgyWm0wLTVIMTFWMTNoMlptMC01SDExVjhoMlptNCwxNUgxNVYyM2gyWm0wLTVIMTVWMThoMlptMC01SDE1VjEzaDJabTAtNUgxNVY4aDJaIiBjbGFzcz0iY2xyLWktc29s''@;'; + put 'put ''aWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLDEzLjVWMTVIMjhWMTMuMjJBNy41LDcuNSwwLDAsMSwyMi43OCw4SDIyVjMzSDMzVjEyLjg3QTcuNDcsNy40NywwLDAsMSwzMCwxMy41Wk0yNiwyNUgyNFYyM2gyWm0wLTVI''@;'; + put 'put ''MjRWMThoMlptMC01SDI0VjEzaDJabTQsMTBIMjhWMjNoMlptMC01SDI4VjE4aDJaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktc29s''@;'; + put 'put ''aWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMxLDhIMjN2Mmg4VjMxSDIzdjJIMzNWMTBBMiwyLDAsMCwwLDMxLDhaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxu''@;'; + put 'put ''ICAgICAgICAgICAgPHBhdGggZD0iTTE5Ljg4LDNINi4xMkEyLjEyLDIuMTIsMCwwLDAsNCw1LjEyVjMzSDIyVjUuMTJBMi4xMiwyLjEyLDAsMCwwLDE5Ljg4LDNaTTIwLDMxSDE3VjI4SDl2M0g2VjUuMTJBLjEyLjEyLDAsMCwxLDYuMTIsNUgxOS44OGEuMTIuMTIsMCwwLDEsLjEyLjEyWiIg''@;'; + put 'put ''Y2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjgiIHk9IjgiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIx''@;'; + put 'put ''MiIgeT0iOCIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE2IiB5PSI4IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBh''@;'; + put 'put ''dGgtNSIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iOCIgeT0iMTMiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02Ii8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMiIgeT0iMTMiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNz''@;'; + put 'put ''PSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC03Ii8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNiIgeT0iMTMiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC04Ii8+XG4gICAgICAgICAgICA8cmVjdCB4PSI4IiB5''@;'; + put 'put ''PSIxOCIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTkiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjEyIiB5PSIxOCIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRo''@;'; + put 'put ''LTEwIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNiIgeT0iMTgiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xMSIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iOCIgeT0iMjMiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNz''@;'; + put 'put ''PSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xMiIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTIiIHk9IjIzIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMTMiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE2''@;'; + put 'put ''IiB5PSIyMyIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTE0Ii8+XG4gICAgICAgICAgICA8cmVjdCB4PSIyMyIgeT0iMTMiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUt''@;'; + put 'put ''cGF0aC0xNSIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMjciIHk9IjEzIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMTYiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjIzIiB5PSIxOCIgd2lkdGg9IjIiIGhlaWdodD0iMiIg''@;'; + put 'put ''Y2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTE3Ii8+XG4gICAgICAgICAgICA8cmVjdCB4PSIyNyIgeT0iMTgiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xOCIvPlxuICAgICAgICAgICAgPHJlY3Qg''@;'; + put 'put ''eD0iMjMiIHk9IjIzIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMTkiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjI3IiB5PSIyMyIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0''@;'; + put 'put ''bGluZS1wYXRoLTIwIi8+XG4gICAgICAgICcpLGUuQ2xyU2hhcGVDUFU9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTIzLjA4LDIzLjA3aC0xMXYxLjVIMjMuODNhLjc1Ljc1LDAsMCwwLC43NS0uNzVWMTEuMzNoLTEuNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUt''@;'; + put 'put ''cGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIuMiwxOC4xNWEuOC44LDAsMSwwLDAtMS42SDMwdi01LjRoMi4yYS44LjgsMCwxLDAsMC0xLjZIMzBWOC4xQTIuMSwyLjEsMCwwLDAsMjcuOSw2SDI2LjM1VjMuOGEuOC44LDAsMSwwLTEuNiwwVjZoLTUuNFYzLjhhLjguOCwwLDEs''@;'; + put 'put ''MC0xLjYsMFY2aC01LjRWMy44YS44LjgsMCwxLDAtMS42LDBWNkg4LjFBMi4xLDIuMSwwLDAsMCw2LDguMVY5LjU1SDMuOGEuOC44LDAsMSwwLDAsMS42SDZ2NS40SDMuOGEuOC44LDAsMSwwLDAsMS42SDZ2NS40SDMuOGEuOC44LDAsMSwwLDAsMS42SDZWMjcuOUEyLjEsMi4xLDAsMCwwLDgu''@;'; + put 'put ''MSwzMGgyLjY1djIuMmEuOC44LDAsMSwwLDEuNiwwVjMwaDUuNHYyLjJhLjguOCwwLDEsMCwxLjYsMFYzMGg1LjR2Mi4yYS44LjgsMCwxLDAsMS42LDBWMzBIMjcuOUEyLjEsMi4xLDAsMCwwLDMwLDI3LjlWMjUuMTVoMi4yYS44LjgsMCwxLDAsMC0xLjZIMzB2LTUuNFpNMjgsMjcuOWEuMS4x''@;'; + put 'put ''LDAsMCwxLS4xLjFIOC4xYS4xLjEsMCwwLDEtLjEtLjFWOC4xQS4xLjEsMCwwLDEsOC4xLDhIMjcuOWEuMS4xLDAsMCwxLC4xLjFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTEyLjA2LDI0LjU3SDIzLjgzYS43''@;'; + put 'put ''NS43NSwwLDAsMCwuNzUtLjc1VjExLjMzaC0xLjVWMjMuMDdoLTExWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIuMiwyMy41NUgzMHYtNS40aDIuMmEuOC44LDAsMSwwLDAtMS42''@;'; + put 'put ''SDMwVjEzLjVhNy40OSw3LjQ5LDAsMCwxLTItLjI4VjI3LjlhLjEuMSwwLDAsMS0uMS4xSDguMWEuMS4xLDAsMCwxLS4xLS4xVjguMUEuMS4xLDAsMCwxLDguMSw4SDIyLjc4YTcuNDksNy40OSwwLDAsMS0uMjgtMkgxOS4zNVYzLjhhLjguOCwwLDEsMC0xLjYsMFY2aC01LjRWMy44YS44Ljgs''@;'; + put 'put ''MCwxLDAtMS42LDBWNkg4LjFBMi4xLDIuMSwwLDAsMCw2LDguMVY5LjU1SDMuOGEuOC44LDAsMSwwLDAsMS42SDZ2NS40SDMuOGEuOC44LDAsMSwwLDAsMS42SDZ2NS40SDMuOGEuOC44LDAsMSwwLDAsMS42SDZWMjcuOUEyLjEsMi4xLDAsMCwwLDguMSwzMGgyLjY1djIuMmEuOC44LDAsMSww''@;'; + put 'put ''LDEuNiwwVjMwaDUuNHYyLjJhLjguOCwwLDEsMCwxLjYsMFYzMGg1LjR2Mi4yYS44LjgsMCwxLDAsMS42LDBWMzBIMjcuOUEyLjEsMi4xLDAsMCwwLDMwLDI3LjlWMjUuMTVoMi4yYS44LjgsMCwxLDAsMC0xLjZaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUt''@;'; + put 'put ''cGF0aC0yLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIuMiwyMy41''@;'; + put 'put ''NUgzMHYtNS40aDIuMmEuOC44LDAsMSwwLDAtMS42SDMwVjE1LjRIMjhWMjcuOWEuMS4xLDAsMCwxLS4xLjFIOC4xYS4xLjEsMCwwLDEtLjEtLjFWOC4xQS4xLjEsMCwwLDEsOC4xLDhoMTJsMS4xNS0ySDE5LjM1VjMuOGEuOC44LDAsMSwwLTEuNiwwVjZoLTUuNFYzLjhhLjguOCwwLDEsMC0x''@;'; + put 'put ''LjYsMFY2SDguMUEyLjEsMi4xLDAsMCwwLDYsOC4xVjkuNTVIMy44YS44LjgsMCwxLDAsMCwxLjZINnY1LjRIMy44YS44LjgsMCwxLDAsMCwxLjZINnY1LjRIMy44YS44LjgsMCwxLDAsMCwxLjZINlYyNy45QTIuMSwyLjEsMCwwLDAsOC4xLDMwaDIuNjV2Mi4yYS44LjgsMCwxLDAsMS42LDBW''@;'; + put 'put ''MzBoNS40djIuMmEuOC44LDAsMSwwLDEuNiwwVjMwaDUuNHYyLjJhLjguOCwwLDEsMCwxLjYsMFYzMEgyNy45QTIuMSwyLjEsMCwwLDAsMzAsMjcuOVYyNS4xNWgyLjJhLjguOCwwLDEsMCwwLTEuNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0x''@;'; + put 'put ''LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTIuMDYsMjQuNTdIMjMuODNhLjc1Ljc1LDAsMCwwLC43NS0uNzVWMTUuNGgtMS41djcuNjdoLTExWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIC8+XG4gICAg''@;'; + put 'put ''ICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBj''@;'; + put 'put ''bHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMyLjIsMjMuNTVIMzB2LTUuNGgyLjJhLjguOCwwLDEsMCwwLTEuNkgzMFYxNS40SDI1djguNDFBMS4xOCwxLjE4LDAsMCwxLDI0LDI1SDEzVjIzSDIzVjE1LjRoLS43N0Ez''@;'; + put 'put ''LjY4LDMuNjgsMCwwLDEsMTksOS44OUwyMS4yOSw2SDE5LjM1VjMuOGEuOC44LDAsMSwwLTEuNiwwVjZoLTUuNFYzLjhhLjguOCwwLDEsMC0xLjYsMFY2SDguMUEyLjEsMi4xLDAsMCwwLDYsOC4xVjkuNTVIMy44YS44LjgsMCwxLDAsMCwxLjZINnY1LjRIMy44YS44LjgsMCwxLDAsMCwxLjZI''@;'; + put 'put ''NnY1LjRIMy44YS44LjgsMCwxLDAsMCwxLjZINlYyNy45QTIuMSwyLjEsMCwwLDAsOC4xLDMwaDIuNjV2Mi4yYS44LjgsMCwxLDAsMS42LDBWMzBoNS40djIuMmEuOC44LDAsMSwwLDEuNiwwVjMwaDUuNHYyLjJhLjguOCwwLDEsMCwxLjYsMFYzMEgyNy45QTIuMSwyLjEsMCwwLDAsMzAsMjcu''@;'; + put 'put ''OVYyNS4xNWgyLjJhLjguOCwwLDEsMCwwLTEuNloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEEx''@;'; + put 'put ''LjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMi4yLDIz''@;'; + put 'put ''LjU1SDMwdi01LjRoMi4yYS44LjgsMCwxLDAsMC0xLjZIMzBWMTMuNWE3LjQ2LDcuNDYsMCwwLDEtNS0xLjkyVjIzLjgxQTEuMTgsMS4xOCwwLDAsMSwyNCwyNUgxM1YyM0gyM1YxMWgxLjQyQTcuNDYsNy40NiwwLDAsMSwyMi41LDZIMTkuMzVWMy44YS44LjgsMCwxLDAtMS42LDBWNmgtNS40''@;'; + put 'put ''VjMuOGEuOC44LDAsMSwwLTEuNiwwVjZIOC4xQTIuMSwyLjEsMCwwLDAsNiw4LjFWOS41NUgzLjhhLjguOCwwLDEsMCwwLDEuNkg2djUuNEgzLjhhLjguOCwwLDEsMCwwLDEuNkg2djUuNEgzLjhhLjguOCwwLDEsMCwwLDEuNkg2VjI3LjlBMi4xLDIuMSwwLDAsMCw4LjEsMzBoMi42NXYyLjJh''@;'; + put 'put ''LjguOCwwLDEsMCwxLjYsMFYzMGg1LjR2Mi4yYS44LjgsMCwxLDAsMS42LDBWMzBoNS40djIuMmEuOC44LDAsMSwwLDEuNiwwVjMwSDI3LjlBMi4xLDIuMSwwLDAsMCwzMCwyNy45VjI1LjE1aDIuMmEuOC44LDAsMSwwLDAtMS42WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWkt''@;'; + put 'put ''c29saWQtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMi4yLDE4''@;'; + put 'put ''LjE1YS44LjgsMCwxLDAsMC0xLjZIMzB2LTUuNGgyLjJhLjguOCwwLDEsMCwwLTEuNkgzMFY4LjFBMi4xLDIuMSwwLDAsMCwyNy45LDZIMjYuMzVWMy44YS44LjgsMCwxLDAtMS42LDBWNmgtNS40VjMuOGEuOC44LDAsMSwwLTEuNiwwVjZoLTUuNFYzLjhhLjguOCwwLDEsMC0xLjYsMFY2SDgu''@;'; + put 'put ''MUEyLjEsMi4xLDAsMCwwLDYsOC4xVjkuNTVIMy44YS44LjgsMCwxLDAsMCwxLjZINnY1LjRIMy44YS44LjgsMCwxLDAsMCwxLjZINnY1LjRIMy44YS44LjgsMCwxLDAsMCwxLjZINlYyNy45QTIuMSwyLjEsMCwwLDAsOC4xLDMwaDIuNjV2Mi4yYS44LjgsMCwxLDAsMS42LDBWMzBoNS40djIu''@;'; + put 'put ''MmEuOC44LDAsMSwwLDEuNiwwVjMwaDUuNHYyLjJhLjguOCwwLDEsMCwxLjYsMFYzMEgyNy45QTIuMSwyLjEsMCwwLDAsMzAsMjcuOVYyNS4xNWgyLjJhLjguOCwwLDEsMCwwLTEuNkgzMHYtNS40Wk0yNSwyMy44MUExLjE4LDEuMTgsMCwwLDEsMjQsMjVIMTNWMjNIMjNWMTFoMloiIGNsYXNz''@;'; + put 'put ''PSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgICAgICAgJyksZS5DbHJTaGFwZU1lbW9yeT0oMCxhLmNsckljb25TVkcpKCc8cmVjdCB4PSI4IiB5PSIxMiIgd2lkdGg9IjQiIGhlaWdodD0iOCIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEi''@;'; + put 'put ''Lz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE2IiB5PSIxMiIgd2lkdGg9IjQiIGhlaWdodD0iOCIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjI0IiB5PSIxMiIgd2lkdGg9IjQiIGhlaWdodD0iOCIgY2xhc3M9ImNs''@;'; + put 'put ''ci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNSwyN0g0VjE3SDJWMjdhMiwyLDAsMCwwLDIsMkgxNi42MVYyNS41NWgyLjI2VjI0SDE1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiLz5cbiAgICAg''@;'; + put 'put ''ICAgICAgIDxwYXRoIGQ9Ik0zMiw3SDRBMiwyLDAsMCwwLDIsOXY0SDRWOUgzMnY0aDJWOUEyLDIsMCwwLDAsMzIsN1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIsMjdIMTl2MkgzMmEyLDIsMCwwLDAsMi0y''@;'; + put 'put ''VjE3SDMyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjgiIHk9IjEyIiB3aWR0aD0iNCIgaGVpZ2h0PSI4IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRl''@;'; + put 'put ''ZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE1LDI3SDRWMTdIMlYyN2EyLDIsMCwwLDAsMiwySDE2LjYxVjI1LjU1aDIuMjZWMjRIMTVaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGgg''@;'; + put 'put ''ZD0iTTMyLDE3VjI3SDE5djJIMzJhMiwyLDAsMCwwLDItMlYxN1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTksMTMuNTZBMy42NiwzLjY2LDAsMCwxLDE4LjU3LDEySDE2djho''@;'; + put 'put ''NFYxNC42NEEzLjY3LDMuNjcsMCwwLDEsMTksMTMuNTZaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMjQiIHk9IjE1LjQiIHdpZHRoPSI0IiBoZWlnaHQ9IjQuNiIgY2xhc3M9ImNs''@;'; + put 'put ''ci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik00LDlIMTkuNTZsMS4xNS0ySDRBMiwyLDAsMCwwLDIsOXY0SDRaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgt''@;'; + put 'put ''Ni0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1p''@;'; + put 'put ''LW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTctLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjgiIHk9IjEyIiB3aWR0aD0iNCIgaGVpZ2h0PSI4IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0x''@;'; + put 'put ''LS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE2IiB5PSIxMiIgd2lkdGg9IjQiIGhlaWdodD0iOCIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTUsMjdINFYxN0gyVjI3''@;'; + put 'put ''YTIsMiwwLDAsMCwyLDJIMTYuNjFWMjUuNTVoMi4yNlYyNEgxNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMyLDE3VjI3SDE5djJIMzJhMiwyLDAsMCwwLDItMlYxN1oiIGNsYXNz''@;'; + put 'put ''PSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4LDEzLjIyQTcuNDYsNy40NiwwLDAsMSwyNS41MSwxMkgyNHY4aDRaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUt''@;'; + put 'put ''cGF0aC01LS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik00LDlIMjMuMTNhNy40NSw3LjQ1LDAsMCwxLS41NS0ySDRBMiwyLDAsMCwwLDIsOXY0SDRaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC02LS1iYWRnZWQiLz5cbiAgICAgICAg''@;'; + put 'put ''ICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNy0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzQsMTNWOWEyLDIsMCwwLDAtMi0ySDRBMiwyLDAsMCwwLDIs''@;'; + put 'put ''OXY0SDR2NEgyVjI3YTIsMiwwLDAsMCwyLDJIMTYuNjFWMjUuNTVIMTlWMjlIMzJhMiwyLDAsMCwwLDItMlYxN0gzMlYxM1pNMTIsMjBIOFYxMmg0Wm04LDBIMTZWMTJoNFptOCwwSDI0VjEyaDRaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG4gICAgICAgICAg''@;'; + put 'put ''ICA8cGF0aCBkPSJNMzIsMTdWMTUuMDdIMjhWMjBIMjRWMTUuMDdIMjIuMjNBMy42OCwzLjY4LDAsMCwxLDIwLDE0LjMxVjIwSDE2VjEyaDIuNjFBMy42OCwzLjY4LDAsMCwxLDE5LDkuNTVMMjAuNTIsN0g0QTIsMiwwLDAsMCwyLDl2NEg0djRIMlYyN2EyLDIsMCwwLDAsMiwySDE2LjYxVjI1''@;'; + put 'put ''LjU1SDE5VjI5SDMyYTIsMiwwLDAsMCwyLTJWMTdaTTEyLDIwSDhWMTJoNFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NS44bC01LjcyLDkuOTFhMS4yOCwxLjI4LDAsMCwwLDEu''@;'; + put 'put ''MSwxLjkxSDMzLjY4YTEuMjgsMS4yOCwwLDAsMCwxLjEtMS45MUwyOS4wNi44QTEuMjgsMS4yOCwwLDAsMCwyNi44NS44WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAgICAgICAgICAgPHBhdGggZD0i''@;'; + put 'put ''TTMyLDE3VjEzLjIyYTcuMzMsNy4zMywwLDAsMS00LDBWMjBIMjRWMTJoMS41MWE3LjQ4LDcuNDgsMCwwLDEtMi45NC01SDRBMiwyLDAsMCwwLDIsOXY0SDR2NEgyVjI3YTIsMiwwLDAsMCwyLDJIMTYuNjFWMjUuNTVIMTlWMjlIMzJhMiwyLDAsMCwwLDItMlYxN1pNMTIsMjBIOFYxMmg0Wm04''@;'; + put 'put ''LDBIMTZWMTJoNFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2Vk''@;'; + put 'put ''IGNsci1pLWJhZGdlIi8+XG4gICAgICAgICcpLGUuQ2xyU2hhcGVEYXRhQ2x1c3Rlcj0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjYuNSw0LjA4QzIyLjc3LDQuMDgsMTksNS40LDE5LDcuOTFWOS41YTE4Ljc1LDE4Ljc1LDAsMCwxLDIsLjJWNy45MWMwLS42NSwyLjA5LTEuODQsNS41''@;'; + put 'put ''LTEuODRTMzIsNy4yNywzMiw3LjkxVjE4LjI0YzAsLjU0LTEuNDYsMS40NC0zLjksMS43M3YyYzMuMTMtLjMyLDUuOS0xLjYsNS45LTMuNzVWNy45MUMzNCw1LjQsMzAuMjMsNC4wOCwyNi41LDQuMDhaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAg''@;'; + put 'put ''ICAgICAgICAgPHBhdGggZD0iTTQsMTguMjRWNy45MWMwLS42NSwyLjA5LTEuODQsNS41LTEuODRTMTUsNy4yNywxNSw3LjkxVjkuN2ExOC43NSwxOC43NSwwLDAsMSwyLS4yVjcuOTFjMC0yLjUyLTMuNzctMy44NC03LjUtMy44NFMyLDUuNCwyLDcuOTFWMTguMjRDMiwyMC40LDQuNzcsMjEu''@;'; + put 'put ''NjcsNy45LDIyVjIwQzUuNDYsMTkuNjgsNCwxOC43OCw0LDE4LjI0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwxMC44NWMtNC45MywwLTguNjUsMS44OC04LjY1LDQuMzhWMjcuNTRjMCwyLjUsMy43Miw0''@;'; + put 'put ''LjM4LDguNjUsNC4zOHM4LjY1LTEuODgsOC42NS00LjM4VjE1LjIzQzI2LjY1LDEyLjczLDIyLjkzLDEwLjg1LDE4LDEwLjg1Wm02LjY1LDcuNjdjLS44NSwxLTMuNDIsMi02LjY1LDJBMTQuNDksMTQuNDksMCwwLDEsMTQsMjB2MS40NmExNi4zMywxNi4zMywwLDAsMCw0LC40NywxMi43Niwx''@;'; + put 'put ''Mi43NiwwLDAsMCw2LjY1LTEuNTZ2My4xMmMtLjg1LDEtMy40MiwyLTYuNjUsMmExNC40OSwxNC40OSwwLDAsMS00LS41M3YxLjQ2YTE2LjMzLDE2LjMzLDAsMCwwLDQsLjQ3LDEyLjc2LDEyLjc2LDAsMCwwLDYuNjUtMS41NnYyLjI5YzAsLjk1LTIuNjUsMi4zOC02LjY1LDIuMzhzLTYuNjUt''@;'; + put 'put ''MS40My02LjY1LTIuMzhWMTUuMjNjMC0uOTUsMi42NS0yLjM4LDYuNjUtMi4zOHM2LjY1LDEuNDMsNi42NSwyLjM4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik00LDE4LjI0VjcuOTFjMC0uNjUsMi4wOS0xLjg0''@;'; + put 'put ''LDUuNS0xLjg0UzE1LDcuMjcsMTUsNy45MVY5LjdhMTguNzUsMTguNzUsMCwwLDEsMi0uMlY3LjkxYzAtMi41Mi0zLjc3LTMuODQtNy41LTMuODRTMiw1LjQsMiw3LjkxVjE4LjI0QzIsMjAuNCw0Ljc3LDIxLjY3LDcuOSwyMlYyMEM1LjQ2LDE5LjY4LDQsMTguNzgsNCwxOC4yNFoiIGNsYXNz''@;'; + put 'put ''PSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjQuNjUsMTguNTJjLS44NSwxLTMuNDIsMi02LjY1LDJBMTQuNDksMTQuNDksMCwwLDEsMTQsMjB2MS40NmExNi4zMywxNi4zMywwLDAsMCw0LC40''@;'; + put 'put ''NywxMi43NiwxMi43NiwwLDAsMCw2LjY1LTEuNTZ2My4xMmMtLjg1LDEtMy40MiwyLTYuNjUsMmExNC40OSwxNC40OSwwLDAsMS00LS41M3YxLjQ2YTE2LjMzLDE2LjMzLDAsMCwwLDQsLjQ3LDEyLjc2LDEyLjc2LDAsMCwwLDYuNjUtMS41NnYyLjI5YzAsLjk1LTIuNjUsMi4zOC02LjY1LDIu''@;'; + put 'put ''MzhzLTYuNjUtMS40My02LjY1LTIuMzhWMTUuMjNjMC0uOTUsMi42NS0yLjM4LDYuNjUtMi4zOGwuNzUsMGEzLjY5LDMuNjksMCwwLDEtLjA4LTJsLS42NiwwYy00LjkzLDAtOC42NSwxLjg4LTguNjUsNC4zOFYyNy41NGMwLDIuNSwzLjcyLDQuMzgsOC42NSw0LjM4czguNjUtMS44OCw4LjY1''@;'; + put 'put ''LTQuMzhWMTUuNGgtMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIsNC44Yy0xLjc1LjYzLTMsMS42OC0zLDMuMTJWOS41bC4yNSwwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUt''@;'; + put 'put ''LWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy42OCwxNS40SDMydjIuODRjMCwuNTQtMS40NiwxLjQ0LTMuOSwxLjczdjJjMy4xMy0uMzIsNS45LTEuNiw1LjktMy43NVYxNS4zOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5l''@;'; + put 'put ''LS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAs''@;'; + put 'put ''MCwwLDI2Ljg1LDEuMTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTQsMTguMjRWNy45MWMwLS42NSwyLjA5LTEuODQsNS41LTEuODRTMTUsNy4yNywxNSw3''@;'; + put 'put ''LjkxVjkuN2ExOC43NSwxOC43NSwwLDAsMSwyLS4yVjcuOTFjMC0yLjUyLTMuNzctMy44NC03LjUtMy44NFMyLDUuNCwyLDcuOTFWMTguMjRDMiwyMC40LDQuNzcsMjEuNjcsNy45LDIyVjIwQzUuNDYsMTkuNjgsNCwxOC43OCw0LDE4LjI0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdl''@;'; + put 'put ''ZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMTAuODVjLTQuOTMsMC04LjY1LDEuODgtOC42NSw0LjM4VjI3LjU0YzAsMi41LDMuNzIsNC4zOCw4LjY1LDQuMzhzOC42NS0xLjg4LDguNjUtNC4zOFYxNS4yM0MyNi42NSwxMi43Mywy''@;'; + put 'put ''Mi45MywxMC44NSwxOCwxMC44NVptNi42NSw3LjY3Yy0uODUsMS0zLjQyLDItNi42NSwyQTE0LjQ5LDE0LjQ5LDAsMCwxLDE0LDIwdjEuNDZhMTYuMzMsMTYuMzMsMCwwLDAsNCwuNDcsMTIuNzYsMTIuNzYsMCwwLDAsNi42NS0xLjU2djMuMTJjLS44NSwxLTMuNDIsMi02LjY1LDJhMTQuNDks''@;'; + put 'put ''MTQuNDksMCwwLDEtNC0uNTN2MS40NmExNi4zMywxNi4zMywwLDAsMCw0LC40NywxMi43NiwxMi43NiwwLDAsMCw2LjY1LTEuNTZ2Mi4yOWMwLC45NS0yLjY1LDIuMzgtNi42NSwyLjM4cy02LjY1LTEuNDMtNi42NS0yLjM4VjE1LjIzYzAtLjk1LDIuNjUtMi4zOCw2LjY1LTIuMzhzNi42NSwx''@;'; + put 'put ''LjQzLDYuNjUsMi4zOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIxLDcuOTFjMC0uMzMuNTUtLjgsMS41NC0xLjE4LDAtLjI0LDAtLjQ4LDAtLjczYTcuNTIsNy41MiwwLDAsMSwu''@;'; + put 'put ''MTQtMS40MUMyMC41NSw1LjE5LDE5LDYuMywxOSw3LjkxVjkuNWExOC43NSwxOC43NSwwLDAsMSwyLC4yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIsMTMuMjJ2NWMwLC41NC0x''@;'; + put 'put ''LjQ2LDEuNDQtMy45LDEuNzN2MmMzLjEzLS4zMiw1LjktMS42LDUuOS0zLjc1di01LjlBNy40NSw3LjQ1LDAsMCwxLDMyLDEzLjIyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIz''@;'; + put 'put ''MCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2LjUsNC4wOEMyMi43Nyw0LjA4LDE5LDUuNCwxOSw3LjkxVjkuNDhjNS4zLjI2LDksMi42''@;'; + put 'put ''LDksNS43NnY2LjdsLjA1LjA2YzMuMTMtLjMyLDUuOS0xLjYsNS45LTMuNzVWNy45MUMzNCw1LjQsMzAuMjMsNC4wOCwyNi41LDQuMDhaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTcsOS40OFY3LjkxYzAtMi41Mi0z''@;'; + put 'put ''Ljc3LTMuODQtNy41LTMuODRTMiw1LjQsMiw3LjkxVjE4LjI0QzIsMjAuNCw0Ljc3LDIxLjY3LDcuOSwyMkw4LDIxLjkzdi02LjdDOCwxMi4wOCwxMS43LDkuNzQsMTcsOS40OFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9''@;'; + put 'put ''Ik0xOCwxMC44NWMtNC45MywwLTguNjUsMS44OC04LjY1LDQuMzhWMjcuNTRjMCwyLjUsMy43Miw0LjM4LDguNjUsNC4zOHM4LjY1LTEuODgsOC42NS00LjM4VjI1LjM4QTEzLjU4LDEzLjU4LDAsMCwxLDE4LDI4YTE2Ljc3LDE2Ljc3LDAsMCwxLTYtMVYyNS4yN2ExNC41LDE0LjUsMCwwLDAs''@;'; + put 'put ''NiwxLjE3YzQuMjEsMCw3LjY1LTEuMjMsOC42My0zLjIzVjIwLjQ3QzI0LjgsMjIsMjEuNzIsMjMsMTgsMjNhMTYuNzcsMTYuNzcsMCwwLDEtNi0xVjIwLjIzYTE0LjUsMTQuNSwwLDAsMCw2LDEuMTdjNC4yMSwwLDcuNjUtMS4xMSw4LjYzLTMuMTFWMTUuMjNDMjYuNjUsMTIuNzMsMjIuOTMs''@;'; + put 'put ''MTAuODUsMTgsMTAuODVaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTcsOS40OFY3LjkxYzAtMi41Mi0zLjc3LTMuODQtNy41LTMuODRTMiw1LjQsMiw3LjkxVjE4LjI0QzIsMjAuNCw0Ljc3LDIxLjY3LDcuOSwyMkw4''@;'; + put 'put ''LDIxLjkzdi02LjdDOCwxMi4wOCwxMS43LDkuNzQsMTcsOS40OFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOSwxMy41NmEzLjY4LDMuNjgsMCwwLDEtLjM5LTIuN2wtLjY2LDBjLTQu''@;'; + put 'put ''OTMsMC04LjY1LDEuODgtOC42NSw0LjM4VjI3LjU0YzAsMi41LDMuNzIsNC4zOCw4LjY1LDQuMzhzOC42NS0xLjg4LDguNjUtNC4zOFYyNS4zOEExMy41OCwxMy41OCwwLDAsMSwxOCwyOGExNi43NywxNi43NywwLDAsMS02LTFWMjUuMjdhMTQuNSwxNC41LDAsMCwwLDYsMS4xN2M0LjIxLDAs''@;'; + put 'put ''Ny42NS0xLjIzLDguNjMtMy4yM1YyMC40N0MyNC44LDIyLDIxLjcyLDIzLDE4LDIzYTE2Ljc3LDE2Ljc3LDAsMCwxLTYtMVYyMC4yM2ExNC41LDE0LjUsMCwwLDAsNiwxLjE3YzQuMjEsMCw3LjY1LTEuMTEsOC42My0zLjExVjE1LjRIMjIuMjNBMy42OSwzLjY5LDAsMCwxLDE5LDEzLjU2WiIg''@;'; + put 'put ''Y2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIyLDQuOGMtMS43NS42My0zLDEuNjgtMywzLjEyVjkuNDhsLjI3LDBaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQt''@;'; + put 'put ''cGF0aC0zLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuNjgsMTUuNEgyOHY2LjUzbC4wNS4wNmMzLjEzLS4zMiw1LjktMS42LDUuOS0zLjc1VjE1LjM4WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtNC0tYWxlcnRlZCIvPlxuICAg''@;'; + put 'put ''ICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNs''@;'; + put 'put ''ci1pLXNvbGlkLXBhdGgtNS0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE3LDkuNDhWNy45MWMwLTIuNTItMy43Ny0zLjg0LTcuNS0zLjg0UzIsNS40LDIsNy45MVYxOC4yNEMyLDIwLjQsNC43NywyMS42Nyw3LjksMjJMOCwyMS45M3YtNi43QzgsMTIu''@;'; + put 'put ''MDgsMTEuNyw5Ljc0LDE3LDkuNDhaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDEwLjg1Yy00LjkzLDAtOC42NSwxLjg4LTguNjUsNC4zOFYyNy41NGMwLDIuNSwzLjcyLDQuMzgsOC42''@;'; + put 'put ''NSw0LjM4czguNjUtMS44OCw4LjY1LTQuMzhWMjUuMzhBMTMuNTgsMTMuNTgsMCwwLDEsMTgsMjhhMTYuNzcsMTYuNzcsMCwwLDEtNi0xVjI1LjI3YTE0LjUsMTQuNSwwLDAsMCw2LDEuMTdjNC4yMSwwLDcuNjUtMS4yMyw4LjYzLTMuMjNWMjAuNDdDMjQuOCwyMiwyMS43MiwyMywxOCwyM2Ex''@;'; + put 'put ''Ni43NywxNi43NywwLDAsMS02LTFWMjAuMjNhMTQuNSwxNC41LDAsMCwwLDYsMS4xN2M0LjIxLDAsNy42NS0xLjExLDguNjMtMy4xMVYxNS4yM0MyNi42NSwxMi43MywyMi45MywxMC44NSwxOCwxMC44NVoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0t''@;'; + put 'put ''YmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIuNSw2YTcuNTIsNy41MiwwLDAsMSwuMTQtMS40QzIwLjU1LDUuMTksMTksNi4zLDE5LDcuOTFWOS40OGExNS4zMywxNS4zMywwLDAsMSw1LDFBNy40Niw3LjQ2LDAsMCwxLDIyLjUsNloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFk''@;'; + put 'put ''Z2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAsMTMuNDlBNy40Nyw3LjQ3LDAsMCwxLDI3LjM1LDEzYTQsNCwwLDAsMSwuNywyLjIzdjYuN2wuMDUuMDZjMy4xMy0uMzIsNS45LTEuNiw1LjktMy43NVYxMi4zM0E3LjQ2LDcuNDYsMCww''@;'; + put 'put ''LDEsMzAsMTMuNDlaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTQtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI1Ljk5IiByPSI1IiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTUtLWJh''@;'; + put 'put ''ZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAnKSxlLkNsclNoYXBlUmVzb3VyY2VQb29sPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMy42OCwxNS40SDMxLjczYTE0LDE0LDAsMCwxLC4yMiwxLjZIMTcuNDlMOC4zLDI4LjA3QTE0LDE0LDAsMCwxLDIyLjA5LDQuNjJsMS0xLjc2''@;'; + put 'put ''QTE2LDE2LDAsMSwwLDM0LDE4YTE2LDE2LDAsMCwwLS4yMy0yLjYxWk0xOCwzMmExMy45MSwxMy45MSwwLDAsMS04LjE2LTIuNjVMMTguNDMsMTlIMzEuOTVBMTQsMTQsMCwwLDEsMTgsMzJaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxl''@;'; + put 'put ''cnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLW91dGxp''@;'; + put 'put ''bmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJaTTQsMThhMTQsMTQsMCwwLDEsMjcuOTUtMUgxNy40OUw4LjMsMjguMDdBMTQs''@;'; + put 'put ''MTQsMCwwLDEsNCwxOFpNMTgsMzJhMTMuOTEsMTMuOTEsMCwwLDEtOC4xNi0yLjY1TDE4LjQzLDE5SDMxLjk1QTE0LDE0LDAsMCwxLDE4LDMyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMS4yLDEzLjRhMTMu''@;'; + put 'put ''OTEsMTMuOTEsMCwwLDEsLjc1LDMuNkgxNy40OUw4LjMsMjguMDdBMTQsMTQsMCwwLDEsMjIuNjEsNC44YTcuNDMsNy40MywwLDAsMSwuNTgtMS45MiwxNi4wNiwxNi4wNiwwLDEsMCw5LjkzLDkuOTNBNy40Myw3LjQzLDAsMCwxLDMxLjIsMTMuNFpNMTgsMzJhMTMuOTEsMTMuOTEsMCwwLDEt''@;'; + put 'put ''OC4xNi0yLjY1TDE4LjQzLDE5SDMxLjk1QTE0LDE0LDAsMCwxLDE4LDMyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1vdXRs''@;'; + put 'put ''aW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTguNTcsMzAuOUExNiwxNiwwLDAsMCwzMy45NSwxOUgxOC40M1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgICAg''@;'; + put 'put ''ICAgICAgIDxwYXRoIGQ9Ik0zMy45NSwxN0ExNiwxNiwwLDEsMCw3LDI5LjZMMTcuNDksMTdaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNOC41NywzMC45QTE2LDE2LDAsMCwwLDMzLjk1LDE5SDE4LjQzWiIgY2xhc3M9''@;'; + put 'put ''ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy45NSwxN2ExNS45MSwxNS45MSwwLDAsMC0uODQtNC4xOCw3LjQ5LDcuNDksMCwwLDEtOS45Mi05Ljk0QTE2LDE2LDAsMCwwLDcsMjkuNkwxNy40OSwxN1oi''@;'; + put 'put ''IGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdl''@;'; + put 'put ''Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNOC41NywzMC45QTE2LDE2LDAsMCwwLDMzLjk1LDE5SDE4LjQzWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLjk1LDE3YTE2LDE2LDAs''@;'; + put 'put ''MCwwLS4xOC0xLjYxSDIyLjIzQTMuNjgsMy42OCwwLDAsMSwxOSw5Ljg5bDQuMDYtN0ExNiwxNiwwLDAsMCw3LDI5LjZMMTcuNDksMTdaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYu''@;'; + put 'put ''ODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0zLS1hbGVy''@;'; + put 'put ''dGVkIGNsci1pLWFsZXJ0Ii8+XG4gICAgICAgICcpLGUuQ2xyU2hhcGVTaGllbGRDaGVjaz0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzEuMjUsNy40YTQzLjc5LDQzLjc5LDAsMCwxLTYuNjItMi4zNSw0NSw0NSwwLDAsMS02LjA4LTMuMjFMMTgsMS41bC0uNTQuMzVhNDUsNDUsMCww''@;'; + put 'put ''LDEtNi4wOCwzLjIxQTQzLjc5LDQzLjc5LDAsMCwxLDQuNzUsNy40TDQsNy41OXY4LjM0YzAsMTMuMzksMTMuNTMsMTguNCwxMy42NiwxOC40NWwuMzQuMTIuMzQtLjEyYy4xNCwwLDEzLjY2LTUuMDUsMTMuNjYtMTguNDVWNy41OVpNMzAsMTUuOTNjMCwxMS0xMCwxNS42MS0xMiwxNi40My0y''@;'; + put 'put ''LS44Mi0xMi01LjQ0LTEyLTE2LjQzVjkuMTRhNDcuNTQsNDcuNTQsMCwwLDAsNi4xOC0yLjI1LDQ4LjIzLDQ4LjIzLDAsMCwwLDUuODItMyw0OC4yMyw0OC4yMywwLDAsMCw1LjgyLDNBNDcuNTQsNDcuNTQsMCwwLDAsMzAsOS4xNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxp''@;'; + put 'put ''bmUtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTAuODgsMTYuODdhMSwxLDAsMCwwLTEuNDEsMS40MWw2LDZMMjYuNCwxMy43N0ExLDEsMCwwLDAsMjUsMTIuMzNsLTkuNDcsOS4xOVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gICAg''@;'; + put 'put ''ICAgICAgICA8cGF0aCBkPSJNMzEuMjUsNy40YTQzLjc5LDQzLjc5LDAsMCwxLTYuNjItMi4zNSw0NSw0NSwwLDAsMS02LjA4LTMuMjFMMTgsMS41bC0uNTQuMzVhNDUsNDUsMCwwLDEtNi4wOCwzLjIxQTQzLjc5LDQzLjc5LDAsMCwxLDQuNzUsNy40TDQsNy41OXY4LjM0YzAsMTMuMzksMTMu''@;'; + put 'put ''NTMsMTguNCwxMy42NiwxOC40NWwuMzQuMTIuMzQtLjEyYy4xNCwwLDEzLjY2LTUuMDUsMTMuNjYtMTguNDVWNy41OVptLTQuNTcsNi42NUwxNS41MSwyNC45LDkuMTksMTguNTdhMS40LDEuNCwwLDAsMSwyLTJMMTUuNTQsMjEsMjQuNzMsMTJhMS40LDEuNCwwLDEsMSwyLDJaIiBjbGFzcz0i''@;'; + put 'put ''Y2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG4gICAgICAgICcpLGUuQ2xyU2hhcGVTaGllbGQ9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMxLjI1LDcuNGE0My43OSw0My43OSwwLDAsMS02LjYyLTIuMzUsNDUsNDUsMCwwLDEtNi4wOC0zLjIxTDE4LDEuNWwtLjU0LjM1''@;'; + put 'put ''YTQ1LDQ1LDAsMCwxLTYuMDgsMy4yMUE0My43OSw0My43OSwwLDAsMSw0Ljc1LDcuNEw0LDcuNTl2OC4zNGMwLDEzLjM5LDEzLjUzLDE4LjQsMTMuNjYsMTguNDVsLjM0LjEyLjM0LS4xMmMuMTQsMCwxMy42Ni01LjA1LDEzLjY2LTE4LjQ1VjcuNTlaTTMwLDE1LjkzYzAsMTEtMTAsMTUuNjEt''@;'; + put 'put ''MTIsMTYuNDMtMi0uODItMTItNS40NC0xMi0xNi40M1Y5LjE0YTQ3LjU0LDQ3LjU0LDAsMCwwLDYuMTgtMi4yNSw0OC4yMyw0OC4yMywwLDAsMCw1LjgyLTMsNDguMjMsNDguMjMsMCwwLDAsNS44MiwzQTQ3LjU0LDQ3LjU0LDAsMCwwLDMwLDkuMTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBj''@;'; + put 'put ''bHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLDE1LjR2LjUzYzAsMTEtMTAsMTUuNjEtMTIsMTYuNDMtMi0uODItMTItNS40NC0xMi0xNi40M1Y5LjE0YTQ3LjU0LDQ3LjU0LDAsMCwwLDYuMTgtMi4yNSw0OC4yMyw0OC4yMywwLDAsMCw1LjgyLTNjMSwu''@;'; + put 'put ''NjQsMi4yLDEuMjcsMy40MywxLjg5bDEtMS43NGE0MS4xLDQxLjEsMCwwLDEtMy44OS0yLjE4TDE4LDEuNWwtLjU0LjM1YTQ1LDQ1LDAsMCwxLTYuMDgsMy4yMUE0My43OSw0My43OSwwLDAsMSw0Ljc1LDcuNEw0LDcuNTl2OC4zNGMwLDEzLjM5LDEzLjUzLDE4LjQsMTMuNjYsMTguNDVsLjM0''@;'; + put 'put ''LjEyLjM0LS4xMmMuMTQsMCwxMy42Ni01LjA1LDEzLjY2LTE4LjQ1VjE1LjRaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAs''@;'; + put 'put ''MCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAg''@;'; + put 'put ''ICAgICAgIDxwYXRoIGQ9Ik0zMCwxMy41djIuNDNjMCwxMS0xMCwxNS42MS0xMiwxNi40My0yLS44Mi0xMi01LjQ0LTEyLTE2LjQzVjkuMTRhNDcuNTQsNDcuNTQsMCwwLDAsNi4xOC0yLjI1LDQ4LjIzLDQ4LjIzLDAsMCwwLDUuODItMyw0Ni4xOSw0Ni4xOSwwLDAsMCw0LjUxLDIuNDJjMC0u''@;'; + put 'put ''MSwwLS4xOSwwLS4yOWE3LjQ5LDcuNDksMCwwLDEsLjIzLTEuODMsNDEuNjEsNDEuNjEsMCwwLDEtNC4xOS0yLjMzTDE4LDEuNWwtLjU0LjM1YTQ1LDQ1LDAsMCwxLTYuMDgsMy4yMUE0My43OSw0My43OSwwLDAsMSw0Ljc1LDcuNEw0LDcuNTl2OC4zNGMwLDEzLjM5LDEzLjUzLDE4LjQsMTMu''@;'; + put 'put ''NjYsMTguNDVsLjM0LjEyLjM0LS4xMmMuMTQsMCwxMy42Ni01LjA1LDEzLjY2LTE4LjQ1VjEzLjIyQTcuNDksNy40OSwwLDAsMSwzMCwxMy41WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xl''@;'; + put 'put ''IGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMxLjI1LDcuNGE0My43OSw0My43OSwwLDAsMS02LjYyLTIuMzUsNDUsNDUsMCww''@;'; + put 'put ''LDEtNi4wOC0zLjIxTDE4LDEuNWwtLjU0LjM1YTQ1LDQ1LDAsMCwxLTYuMDgsMy4yMUE0My43OSw0My43OSwwLDAsMSw0Ljc1LDcuNEw0LDcuNTl2OC4zNGMwLDEzLjM5LDEzLjUzLDE4LjQsMTMuNjYsMTguNDVsLjM0LjEyLjM0LS4xMmMuMTQsMCwxMy42Ni01LjA1LDEzLjY2LTE4LjQ1Vjcu''@;'; + put 'put ''NTlaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIuMjMsMTUuNEEzLjY4LDMuNjgsMCwwLDEsMTksOS44OUwyMi40Myw0YTQxLjEsNDEuMSwwLDAsMS0zLjg5LTIuMThMMTgsMS41bC0uNTQuMzVhNDUsNDUsMCwwLDEt''@;'; + put 'put ''Ni4wOCwzLjIxQTQzLjc5LDQzLjc5LDAsMCwxLDQuNzUsNy40TDQsNy41OXY4LjM0YzAsMTMuMzksMTMuNTMsMTguNCwxMy42NiwxOC40NWwuMzQuMTIuMzQtLjEyYy4xNCwwLDEzLjY2LTUuMDUsMTMuNjYtMTguNDVWMTUuNFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1z''@;'; + put 'put ''b2xpZC1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNs''@;'; + put 'put ''YXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMCwxMy41YTcuNDcsNy40NywwLDAsMS03LjI3LTkuMzMsNDEuNjEsNDEuNjEsMCwwLDEtNC4xOS0yLjMzTDE4LDEuNWwtLjU0''@;'; + put 'put ''LjM1YTQ1LDQ1LDAsMCwxLTYuMDgsMy4yMUE0My43OSw0My43OSwwLDAsMSw0Ljc1LDcuNEw0LDcuNTl2OC4zNGMwLDEzLjM5LDEzLjUzLDE4LjQsMTMuNjYsMTguNDVsLjM0LjEyLjM0LS4xMmMuMTQsMCwxMy42Ni01LjA1LDEzLjY2LTE4LjQ1VjEzLjIyQTcuNDksNy40OSwwLDAsMSwzMCwx''@;'; + put 'put ''My41WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWkt''@;'; + put 'put ''YmFkZ2UiLz5cbiAgICAgICAgJyksZS5DbHJTaGFwZVNoaWVsZFg9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMxLjI1LDcuNGE0My43OSw0My43OSwwLDAsMS02LjYyLTIuMzUsNDUsNDUsMCwwLDEtNi4wOC0zLjIxTDE4LDEuNWwtLjU0LjM1YTQ1LDQ1LDAsMCwxLTYuMDgsMy4yMUE0''@;'; + put 'put ''My43OSw0My43OSwwLDAsMSw0Ljc1LDcuNEw0LDcuNTl2OC4zNGMwLDEzLjM5LDEzLjUzLDE4LjQsMTMuNjYsMTguNDVsLjM0LjEyLjM0LS4xMmMuMTQsMCwxMy42Ni01LjA1LDEzLjY2LTE4LjQ1VjcuNTlaTTMwLDE1LjkzYzAsMTEtMTAsMTUuNjEtMTIsMTYuNDMtMi0uODItMTItNS40NC0x''@;'; + put 'put ''Mi0xNi40M1Y5LjE0YTQ3LjU0LDQ3LjU0LDAsMCwwLDYuMTgtMi4yNSw0OC4yMyw0OC4yMywwLDAsMCw1LjgyLTMsNDguMjMsNDguMjMsMCwwLDAsNS44MiwzQTQ3LjU0LDQ3LjU0LDAsMCwwLDMwLDkuMTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxu''@;'; + put 'put ''ICAgICAgICAgICAgPHBhdGggZD0iTTIyLjgxLDEwLjc5LDE4LDE1LjYxbC00LjgxLTQuODFhMSwxLDAsMCwwLTEuNDEsMS40MUwxNi41OSwxN2wtNC44MSw0LjgxYTEsMSwwLDEsMCwxLjQxLDEuNDFMMTgsMTguNDNsNC44MSw0LjgxYTEsMSwwLDAsMCwxLjQxLTEuNDFMMTkuNDEsMTdsNC44''@;'; + put 'put ''MS00LjgxYTEsMSwwLDAsMC0xLjQxLTEuNDFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMxLjI1LDcuNGE0My43OSw0My43OSwwLDAsMS02LjYyLTIuMzUsNDUsNDUsMCwwLDEtNi4wOC0zLjIxTDE4LDEuNWwt''@;'; + put 'put ''LjU0LjM1YTQ1LDQ1LDAsMCwxLTYuMDgsMy4yMUE0My43OSw0My43OSwwLDAsMSw0Ljc1LDcuNEw0LDcuNTl2OC4zNGMwLDEzLjM5LDEzLjUzLDE4LjQsMTMuNjYsMTguNDVsLjM0LjEyLjM0LS4xMmMuMTQsMCwxMy42Ni01LjA1LDEzLjY2LTE4LjQ1VjcuNTlaTTI0LjUxLDIxLjU1YTEuNCwx''@;'; + put 'put ''LjQsMCwwLDEtMiwyTDE4LDE5bC00LjUzLDQuNTNhMS40MywxLjQzLDAsMCwxLTIsMCwxLjQsMS40LDAsMCwxLDAtMkwxNiwxN2wtNC41My00LjUzYTEuNCwxLjQsMCwxLDEsMi0yTDE4LDE1bDQuNTMtNC41M2ExLjQsMS40LDAsMCwxLDIsMkwyMCwxN1oiIGNsYXNzPSJjbHItaS1zb2xpZCBj''@;'; + put 'put ''bHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgICAgICAgJyksZS5DbHJTaGFwZUltcG9ydD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjgsNEgxNC44N0w4LDEwLjg2VjE1aDJWMTMuNjFoNy42MVY2SDI4VjMwSDhhMiwyLDAsMCwwLDIsMkgyOGEyLDIsMCwwLDAsMi0yVjZBMiwyLDAsMCww''@;'; + put 'put ''LDI4LDRaTTE2LDEySDEwdi0uMzJMMTUuNyw2SDE2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMS45NCwyNi4yOGExLDEsMCwxLDAsMS40MSwxLjQxTDE5LDIybC01LjY4LTUuNjhhMSwxLDAsMCwwLTEuNDEs''@;'; + put 'put ''MS40MUwxNS4yLDIxSDNhMSwxLDAsMSwwLDAsMkgxNS4yM1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTEuOTQsMjYuMjhhMSwxLDAsMSwwLDEuNDEsMS40MUwxOSwyMmwtNS42OC01LjY4YTEsMSwwLDAsMC0x''@;'; + put 'put ''LjQxLDEuNDFMMTUuMiwyMUgzYTEsMSwwLDEsMCwwLDJIMTUuMjNaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4LDE1LjRWMzBIOGEyLDIsMCwwLDAsMiwySDI4YTIsMiwwLDAs''@;'; + put 'put ''MCwyLTJWMTUuNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTAsMTMuNjFoNy42MVY2aDMuNjhsMS4xNS0ySDE0Ljg3TDgsMTAuODZWMTVoMlptMC0xLjkyTDE1LjcsNkgxNnY2''@;'; + put 'put ''SDEwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgs''@;'; + put 'put ''MTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTEuOTQsMjYuMjhhMSwxLDAsMSwwLDEu''@;'; + put 'put ''NDEsMS40MUwxOSwyMmwtNS42OC01LjY4YTEsMSwwLDAsMC0xLjQxLDEuNDFMMTUuMiwyMUgzYTEsMSwwLDEsMCwwLDJIMTUuMjNaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOCwx''@;'; + put 'put ''My4yMlYzMEg4YTIsMiwwLDAsMCwyLDJIMjhhMiwyLDAsMCwwLDItMlYxMy41QTcuNDksNy40OSwwLDAsMSwyOCwxMy4yMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTEwLDEzLjYx''@;'; + put 'put ''aDcuNjFWNkgyMi41YTcuNDksNy40OSwwLDAsMSwuMjgtMkgxNC44N0w4LDEwLjg2VjE1aDJabTAtMS45MkwxNS43LDZIMTZ2NkgxMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0i''@;'; + put 'put ''MzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zLDIxYTEsMSwwLDEsMCwwLDJIOFYyMVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1z''@;'; + put 'put ''b2xpZC1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOCw0SDE0Ljg3TDgsMTAuODZWMjFIMTUuMmwtMy4yNS0zLjI1YTEsMSwwLDAsMSwxLjQxLTEuNDFMMTksMjJsLTUuNjgsNS42OGExLDEsMCwwLDEtMS40MS0xLjQxTDE1LjIzLDIzSDh2N2EyLDIsMCwwLDAsMiwySDI4YTIs''@;'; + put 'put ''MiwwLDAsMCwyLTJWNkEyLDIsMCwwLDAsMjgsNFpNMTYsMTJIMTB2LS4zMkwxNS42OSw2SDE2WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMsMjFhMSwxLDAsMSwwLDAsMkg4VjIxWiIgY2xhc3M9ImNsci1pLXNvbGlk''@;'; + put 'put ''LS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIyLjIzLDE1LjRBMy42OCwzLjY4LDAsMCwxLDE5LDkuODlMMjIuNDUsNEgxNC44N0w4LDEwLjg2VjIxSDE1LjJsLTMuMjUtMy4yNWExLDEsMCwwLDEsMS40MS0xLjQxTDE5LDIy''@;'; + put 'put ''bC01LjY4LDUuNjhhMSwxLDAsMCwxLTEuNDEtMS40MUwxNS4yMywyM0g4djdhMiwyLDAsMCwwLDIsMkgyOGEyLDIsMCwwLDAsMi0yVjE1LjRaTTE2LDEySDEwdi0uMzJMMTUuNjksNkgxNloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQi''@;'; + put 'put ''Lz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxl''@;'; + put 'put ''cnRlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zLDIxYTEsMSwwLDEsMCwwLDJIOFYyMVoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAg''@;'; + put 'put ''ICA8cGF0aCBkPSJNMjIuNSw2YTcuNDksNy40OSwwLDAsMSwuMjgtMkgxNC44N0w4LDEwLjg2VjIxSDE1LjJsLTMuMjUtMy4yNWExLDEsMCwwLDEsMS40MS0xLjQxTDE5LDIybC01LjY4LDUuNjhhMSwxLDAsMCwxLTEuNDEtMS40MUwxNS4yMywyM0g4djdhMiwyLDAsMCwwLDIsMkgyOGEyLDIs''@;'; + put 'put ''MCwwLDAsMi0yVjEzLjVBNy41LDcuNSwwLDAsMSwyMi41LDZaTTE2LDEySDEwdi0uMzJMMTUuNjksNkgxNloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNs''@;'; + put 'put ''YXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICcpLGUuQ2xyU2hhcGVFeHBvcnQ9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTYsMTMuNjFoNy42MVY2SDI0djguMzhoMlY2YTIsMiwwLDAsMC0yLTJI''@;'; + put 'put ''MTAuODdMNCwxMC44N1YzMGEyLDIsMCwwLDAsMiwySDI0YTIsMiwwLDAsMCwyLTJINlptMC0xLjkyTDExLjY5LDZIMTJ2Nkg2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOC4zMiwxNi4zNWExLDEsMCwwLDAt''@;'; + put 'put ''MS40MSwxLjQxTDMwLjE2LDIxSDE4YTEsMSwwLDAsMCwwLDJIMzAuMTlsLTMuMjgsMy4yOGExLDEsMCwxLDAsMS40MSwxLjQxTDM0LDIyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOC4zMiwxNi4zNWExLDEs''@;'; + put 'put ''MCwwLDAtMS40MSwxLjQxTDMwLjE2LDIxSDE4YTEsMSwwLDAsMCwwLDJIMzAuMTlsLTMuMjgsMy4yOGExLDEsMCwxLDAsMS40MSwxLjQxTDM0LDIyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxw''@;'; + put 'put ''YXRoIGQ9Ik02LDEzLjYxaDcuNjFWNmg3LjY4bDEuMTUtMkgxMC44N0w0LDEwLjg3VjMwYTIsMiwwLDAsMCwyLDJIMjRhMiwyLDAsMCwwLDItMkg2Wm0wLTEuOTJMMTEuNjksNkgxMnY2SDZaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxl''@;'; + put 'put ''cnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLW91dGxp''@;'; + put 'put ''bmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOC4zMiwxNi4zNWExLDEsMCwwLDAtMS40MSwxLjQxTDMwLjE2LDIxSDE4YTEsMSwwLDAsMCwwLDJIMzAuMTlsLTMuMjgsMy4yOGExLDEsMCwxLDAs''@;'; + put 'put ''MS40MSwxLjQxTDM0LDIyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYsMTIuMzRhNy41Myw3LjUzLDAsMCwxLTItMS44NXYzLjg5aDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0t''@;'; + put 'put ''YmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik02LDEzLjYxaDcuNjFWNkgyMi41YTcuNDksNy40OSwwLDAsMSwuMjgtMkgxMC44N0w0LDEwLjg3VjMwYTIsMiwwLDAsMCwyLDJIMjRhMiwyLDAsMCwwLDItMkg2Wm0wLTEuOTJMMTEu''@;'; + put 'put ''NjksNkgxMnY2SDZaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgt''@;'; + put 'put ''NC0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTcsMjJhMSwxLDAsMCwxLDEtMWg4VjZhMiwyLDAsMCwwLTItMkgxMC44N0w0LDEwLjg2VjMwYTIsMiwwLDAsMCwyLDJIMjRhMiwyLDAsMCwwLDItMlYyM0gxOEExLDEsMCwwLDEsMTcsMjJaTTEyLDEySDZ2''@;'; + put 'put ''LS4zMkwxMS42OSw2SDEyWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI5LjMyLDE2LjM1YTEsMSwwLDAsMC0xLjQxLDEuNDFMMzEuMTYsMjFIMjZ2Mmg1LjE5bC0zLjI4LDMuMjhhMSwxLDAsMSwwLDEuNDEsMS40MUwz''@;'; + put 'put ''NSwyMloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOS4zMiwxNi4zNWExLDEsMCwwLDAtMS40MSwxLjQxTDMxLjE2LDIxSDI2djJoNS4xOWwtMy4yOCwzLjI4YTEsMSwwLDEsMCwxLjQxLDEuNDFMMzUsMjJaIiBjbGFz''@;'; + put 'put ''cz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTcsMjJhMSwxLDAsMCwxLDEtMWg4VjE1LjRIMjIuMjNBMy42OCwzLjY4LDAsMCwxLDE5LDkuODlMMjIuNDUsNEgxMC44N0w0LDEwLjg2VjMwYTIsMiww''@;'; + put 'put ''LDAsMCwyLDJIMjRhMiwyLDAsMCwwLDItMlYyM0gxOEExLDEsMCwwLDEsMTcsMjJaTTEyLDEySDZ2LS4zMkwxMS42OSw2SDEyWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEu''@;'; + put 'put ''MTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMy0tYWxlcnRlZCBj''@;'; + put 'put ''bHItaS1hbGVydCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI5LjMyLDE2LjM1YTEsMSwwLDAsMC0xLjQxLDEuNDFMMzEuMTYsMjFIMjZ2Mmg1LjE5bC0zLjI4LDMuMjhhMSwxLDAsMSwwLDEuNDEsMS40MUwzNSwyMloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlk''@;'; + put 'put ''LXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTcsMjJhMSwxLDAsMCwxLDEtMWg4VjEyLjM0QTcuNDYsNy40NiwwLDAsMSwyMi43OCw0SDEwLjg3TDQsMTAuODZWMzBhMiwyLDAsMCwwLDIsMkgyNGEyLDIsMCwwLDAsMi0yVjIzSDE4QTEsMSwwLDAsMSwxNywyMlpN''@;'; + put 'put ''MTIsMTJINnYtLjMyTDExLjY5LDZIMTJaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1w''@;'; + put 'put ''YXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAnKSxlLkNsclNoYXBlVXBsb2FkQ2xvdWQ9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMwLjMxLDEzYzAtLjEsMC0uMjEsMC0uMzJhMTAuMjYsMTAuMjYsMCwwLDAtMTAuNDUtMTAsMTAuNDcsMTAuNDcsMCwwLDAtOS42''@;'; + put 'put ''LDYuMUE5Ljc0LDkuNzQsMCwwLDAsMS42LDE4LjQsOS42Miw5LjYyLDAsMCwwLDExLjI1LDI4SDE1VjI2SDExLjI1QTcuNjUsNy42NSwwLDAsMSwxMSwxMC43NGwuNjcsMCwuMjMtLjYzYTguNDMsOC40MywwLDAsMSw4LTUuNCw4LjI2LDguMjYsMCwwLDEsOC40NSw4LDcuNzUsNy43NSwwLDAs''@;'; + put 'put ''MSwwLC44bC0uMDguNzIuNjUuM0E2LDYsMCwwLDEsMjYuMzgsMjZIMjF2Mmg1LjM4YTgsOCwwLDAsMCwzLjkzLTE1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMi4yOCwyMS44NUExLDEsMCwwLDAsMjMsMjAu''@;'; + put 'put ''MTRsLTUtNS01LDVhMSwxLDAsMCwwLDEuNDEsMS40MUwxNywxOVYzMS4yNWExLDEsMCwxLDAsMiwwVjE5bDIuNTcsMi41N0ExLDEsMCwwLDAsMjIuMjgsMjEuODVaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIy''@;'; + put 'put ''LjI4LDIxLjg1QTEsMSwwLDAsMCwyMywyMC4xNGwtNS01LTUsNWExLDEsMCwwLDAsMS40MSwxLjQxTDE3LDE5VjMxLjI1YTEsMSwwLDEsMCwyLDBWMTlsMi41NywyLjU3QTEsMSwwLDAsMCwyMi4yOCwyMS44NVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUt''@;'; + put 'put ''cGF0aC0xLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMy42LDE4LjM4QTcuNzEsNy43MSwwLDAsMSwxMSwxMC43NGwuNjcsMCwuMjMtLjYzYTguNDMsOC40MywwLDAsMSw4LTUuNCw4LjgxLDguODEsMCwwLDEsMiwuMjVsMS0xLjhhMTAuOCwxMC44LDAsMCwwLTMuMDctLjQ1''@;'; + put 'put ''LDEwLjQ3LDEwLjQ3LDAsMCwwLTkuNiw2LjFBOS43NCw5Ljc0LDAsMCwwLDEuNiwxOC40LDkuNjIsOS42MiwwLDAsMCwxMS4yNSwyOEgxNVYyNkgxMS4yNUE3LjY2LDcuNjYsMCwwLDEsMy42LDE4LjM4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRo''@;'; + put 'put ''LTItLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMi45LDE1LjRIMzAuMjFBNiw2LDAsMCwxLDI2LjM4LDI2SDIxdjJoNS4zOEE4LDgsMCwwLDAsMzIuOSwxNS40WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQi''@;'; + put 'put ''Lz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1h''@;'; + put 'put ''bGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIuMjgsMjEuODVBMSwxLDAsMCwwLDIzLDIwLjE0bC01LTUtNSw1YTEsMSwwLDAsMCwxLjQxLDEuNDFMMTcsMTlWMzEuMjVhMSwxLDAsMSwwLDIsMFYxOWwy''@;'; + put 'put ''LjU3LDIuNTdBMSwxLDAsMCwwLDIyLjI4LDIxLjg1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAuOTIsMTMuNDRhNy4xMyw3LjEzLDAsMCwxLTIuNjMtLjE0YzAsLjA4LDAsLjE1''@;'; + put 'put ''LDAsLjIzbC0uMDguNzIuNjUuM0E2LDYsMCwwLDEsMjYuMzgsMjZIMjF2Mmg1LjM4YTgsOCwwLDAsMCw0LjU0LTE0LjU2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMy42LDE4LjM4''@;'; + put 'put ''QTcuNzEsNy43MSwwLDAsMSwxMSwxMC43NGwuNjcsMCwuMjMtLjYzYTguNDMsOC40MywwLDAsMSw4LTUuNCw4Ljc5LDguNzksMCwwLDEsMi42OC40Miw3LjQ1LDcuNDUsMCwwLDEsLjUtMS45NCwxMC43OSwxMC43OSwwLDAsMC0zLjE4LS40OCwxMC40NywxMC40NywwLDAsMC05LjYsNi4xQTku''@;'; + put 'put ''NzQsOS43NCwwLDAsMCwxLjYsMTguNCw5LjYyLDkuNjIsMCwwLDAsMTEuMjUsMjhIMTVWMjZIMTEuMjVBNy42Niw3LjY2LDAsMCwxLDMuNiwxOC4zOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNp''@;'; + put 'put ''cmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgJyksZS5DbHJTaGFwZURvd25sb2FkQ2xvdWQ9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMw''@;'; + put 'put ''LjMxLDEzYzAtLjEsMC0uMjEsMC0uMzJhMTAuMjYsMTAuMjYsMCwwLDAtMTAuNDUtMTAsMTAuNDcsMTAuNDcsMCwwLDAtOS42LDYuMUE5LjY1LDkuNjUsMCwwLDAsMTAuODksMjhhMywzLDAsMCwxLDAtMkE3LjY1LDcuNjUsMCwwLDEsMTEsMTAuNzRsLjY3LDAsLjIzLS42M2E4LjQzLDguNDMs''@;'; + put 'put ''MCwwLDEsOC01LjQsOC4yNiw4LjI2LDAsMCwxLDguNDUsOCw3Ljc1LDcuNzUsMCwwLDEsMCwuOGwtLjA4LjcyLjY1LjNBNiw2LDAsMCwxLDI2LjM4LDI2SDI1LjA5YTMsMywwLDAsMSwwLDJoMS4yOGE4LDgsMCwwLDAsMy45My0xNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxp''@;'; + put 'put ''bmUtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIuMjgsMjYuMDdhMSwxLDAsMCwwLS43MS4yOUwxOSwyOC45NFYxNi42OGExLDEsMCwxLDAtMiwwVjI4Ljk0bC0yLjU3LTIuNTdBMSwxLDAsMCwwLDEzLDI3Ljc4bDUsNSw1LTVhMSwxLDAsMCwwLS43MS0xLjcxWiIgY2xhc3M9''@;'; + put 'put ''ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMi4yOCwyNi4wN2ExLDEsMCwwLDAtLjcxLjI5TDE5LDI4Ljk0VjE2LjY4YTEsMSwwLDEsMC0yLDBWMjguOTRsLTIuNTctMi41N0ExLDEsMCwwLDAsMTMsMjcuNzhsNSw1LDUtNWEx''@;'; + put 'put ''LDEsMCwwLDAtLjcxLTEuNzFaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE5Ljg3LDQuNjlhOC44MSw4LjgxLDAsMCwxLDIsLjI1bDEtMS44YTEwLjgsMTAuOCwwLDAsMC0zLjA3''@;'; + put 'put ''LS40NSwxMC40NywxMC40NywwLDAsMC05LjYsNi4xQTkuNjUsOS42NSwwLDAsMCwxMC44OSwyOGEzLDMsMCwwLDEsMC0yQTcuNjUsNy42NSwwLDAsMSwxMSwxMC43NGwuNjcsMCwuMjMtLjYzQTguNDMsOC40MywwLDAsMSwxOS44Nyw0LjY5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0''@;'; + put 'put ''ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMi45LDE1LjRIMzAuMjFBNiw2LDAsMCwxLDI2LjM4LDI2SDI1LjA5YTMsMywwLDAsMSwwLDJoMS4yOEE4LDgsMCwwLDAsMzIuOSwxNS40WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFs''@;'; + put 'put ''ZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAs''@;'; + put 'put ''MjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIuMjgsMjYuMDdhMSwxLDAsMCwwLS43MS4yOUwxOSwyOC45NFYxNi42OGExLDEsMCwxLDAt''@;'; + put 'put ''MiwwVjI4Ljk0bC0yLjU3LTIuNTdBMSwxLDAsMCwwLDEzLDI3Ljc4bDUsNSw1LTVhMSwxLDAsMCwwLS43MS0xLjcxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTkuODcsNC42OWE4''@;'; + put 'put ''Ljc5LDguNzksMCwwLDEsMi42OC40Miw3LjQ1LDcuNDUsMCwwLDEsLjUtMS45NCwxMC43OSwxMC43OSwwLDAsMC0zLjE4LS40OCwxMC40NywxMC40NywwLDAsMC05LjYsNi4xQTkuNjUsOS42NSwwLDAsMCwxMC44OSwyOGEzLDMsMCwwLDEsMC0yQTcuNjUsNy42NSwwLDAsMSwxMSwxMC43NGwu''@;'; + put 'put ''NjcsMCwuMjMtLjYzQTguNDMsOC40MywwLDAsMSwxOS44Nyw0LjY5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAuOTIsMTMuNDRhNy4xMyw3LjEzLDAsMCwxLTIuNjMtLjE0YzAs''@;'; + put 'put ''LjA4LDAsLjE1LDAsLjIzbC0uMDguNzIuNjUuM0E2LDYsMCwwLDEsMjYuMzgsMjZIMjUuMDlhMywzLDAsMCwxLDAsMmgxLjI4YTgsOCwwLDAsMCw0LjU0LTE0LjYxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIi8+XG4gICAgICAg''@;'; + put 'put ''ICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAnKSxlLkNsclNoYXBlUGx1Z2luPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0y''@;'; + put 'put ''OS44MSwxNkgyOVY4LjgzYTIsMiwwLDAsMC0yLTJIMjFBNS4xNCw1LjE0LDAsMCwwLDE2LjUxLDIsNSw1LDAsMCwwLDExLDYuODNINGEyLDIsMCwwLDAtMiwyVjE3SDQuODFBMy4xMywzLjEzLDAsMCwxLDgsMTkuNjksMywzLDAsMCwxLDcuMjIsMjIsMywzLDAsMCwxLDUsMjNIMnY4LjgzYTIs''@;'; + put 'put ''MiwwLDAsMCwyLDJIMjdhMiwyLDAsMCwwLDItMlYyNmgxYTUsNSwwLDAsMCw1LTUuNTFBNS4xNSw1LjE1LDAsMCwwLDI5LjgxLDE2Wm0yLjQxLDdBMywzLDAsMCwxLDMwLDI0SDI3djcuODNINFYyNUg1YTUsNSwwLDAsMCw1LTUuNTFBNS4xNSw1LjE1LDAsMCwwLDQuODEsMTVINFY4LjgzaDlW''@;'; + put 'put ''N2EzLDMsMCwwLDEsMS0yLjIyQTMsMywwLDAsMSwxNi4zMSw0LDMuMTMsMy4xMywwLDAsMSwxOSw3LjE5VjguODNoOFYxOGgyLjgxQTMuMTMsMy4xMywwLDAsMSwzMywyMC42OSwzLDMsMCwwLDEsMzIuMjIsMjNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIv''@;'; + put 'put ''PlxuICAgICAgICAgICAgPHBhdGggZD0iTTI5LjgxLDE2SDI5di0uNkgyN1YxOGgyLjgxQTMuMTMsMy4xMywwLDAsMSwzMywyMC42OSwzLDMsMCwwLDEsMzIuMjIsMjMsMywzLDAsMCwxLDMwLDI0SDI3djcuODNINFYyNUg1YTUsNSwwLDAsMCw1LTUuNTFBNS4xNSw1LjE1LDAsMCwwLDQuODEs''@;'; + put 'put ''MTVINFY4LjgzaDlWN2EzLDMsMCwwLDEsMS0yLjIyQTMsMywwLDAsMSwxNi4zMSw0LDMuMTMsMy4xMywwLDAsMSwxOSw3LjE5VjguODNoLjY2TDIxLDYuNTlBNS4xMiw1LjEyLDAsMCwwLDE2LjUxLDIsNSw1LDAsMCwwLDExLDYuODNINGEyLDIsMCwwLDAtMiwyVjE3SDQuODFBMy4xMywzLjEz''@;'; + put 'put ''LDAsMCwxLDgsMTkuNjksMywzLDAsMCwxLDcuMjIsMjIsMywzLDAsMCwxLDUsMjNIMnY4LjgzYTIsMiwwLDAsMCwyLDJIMjdhMiwyLDAsMCwwLDItMlYyNmgxYTUsNSwwLDAsMCw1LTUuNTFBNS4xNSw1LjE1LDAsMCwwLDI5LjgxLDE2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQg''@;'; + put 'put ''Y2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUs''@;'; + put 'put ''MS4xNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjkuODEsMTZIMjlWMTMuNDNhNy40NSw3LjQ1LDAsMCwxLTItLjU1VjE4aDIuODFBMy4xMywzLjEzLDAs''@;'; + put 'put ''MCwxLDMzLDIwLjY5LDMsMywwLDAsMSwzMi4yMiwyMywzLDMsMCwwLDEsMzAsMjRIMjd2Ny44M0g0VjI1SDVhNSw1LDAsMCwwLDUtNS41MUE1LjE1LDUuMTUsMCwwLDAsNC44MSwxNUg0VjguODNoOVY3YTMsMywwLDAsMSwxLTIuMjJBMywzLDAsMCwxLDE2LjMxLDQsMy4xMywzLjEzLDAsMCwx''@;'; + put 'put ''LDE5LDcuMTlWOC44M2g0LjA2YTcuNDQsNy40NCwwLDAsMS0uNTEtMkgyMUE1LjE0LDUuMTQsMCwwLDAsMTYuNTEsMiw1LDUsMCwwLDAsMTEsNi44M0g0YTIsMiwwLDAsMC0yLDJWMTdINC44MUEzLjEzLDMuMTMsMCwwLDEsOCwxOS42OSwzLDMsMCwwLDEsNy4yMiwyMiwzLDMsMCwwLDEsNSwy''@;'; + put 'put ''M0gydjguODNhMiwyLDAsMCwwLDIsMkgyN2EyLDIsMCwwLDAsMi0yVjI2aDFhNSw1LDAsMCwwLDUtNS41MUE1LjE1LDUuMTUsMCwwLDAsMjkuODEsMTZaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxj''@;'; + put 'put ''aXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjkuODEsMTZIMjlWOC44M2EyLDIsMCwwLDAtMi0ySDIxQTUuMTQsNS4x''@;'; + put 'put ''NCwwLDAsMCwxNi41MSwyLDUsNSwwLDAsMCwxMSw2LjgzSDRhMiwyLDAsMCwwLTIsMlYxN0g0LjgxQTMuMTMsMy4xMywwLDAsMSw4LDE5LjY5LDMsMywwLDAsMSw3LjIyLDIyLDMsMywwLDAsMSw1LDIzSDJ2OC44M2EyLDIsMCwwLDAsMiwySDI3YTIsMiwwLDAsMCwyLTJWMjZoMWE1LDUsMCww''@;'; + put 'put ''LDAsNS01LjUxQTUuMTUsNS4xNSwwLDAsMCwyOS44MSwxNloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOS44MSwxNkgyOXYtLjZIMjIuMjNBMy42OCwzLjY4LDAsMCwxLDE5LDkuODlMMjEsNi41OUE1LjEyLDUuMTIs''@;'; + put 'put ''MCwwLDAsMTYuNTEsMiw1LDUsMCwwLDAsMTEsNi44M0g0YTIsMiwwLDAsMC0yLDJWMTdINC44MUEzLjEzLDMuMTMsMCwwLDEsOCwxOS42OSwzLDMsMCwwLDEsNy4yMiwyMiwzLDMsMCwwLDEsNSwyM0gydjguODNhMiwyLDAsMCwwLDIsMkgyN2EyLDIsMCwwLDAsMi0yVjI2aDFhNSw1LDAsMCww''@;'; + put 'put ''LDUtNS41MUE1LjE1LDUuMTUsMCwwLDAsMjkuODEsMTZaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMu''@;'; + put 'put ''NjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjku''@;'; + put 'put ''ODEsMTZIMjlWMTMuNDNhNy41LDcuNSwwLDAsMS02LjQ1LTYuNTlIMjFBNS4xNCw1LjE0LDAsMCwwLDE2LjUxLDIsNSw1LDAsMCwwLDExLDYuODNINGEyLDIsMCwwLDAtMiwyVjE3SDQuODFBMy4xMywzLjEzLDAsMCwxLDgsMTkuNjksMywzLDAsMCwxLDcuMjIsMjIsMywzLDAsMCwxLDUsMjNI''@;'; + put 'put ''MnY4LjgzYTIsMiwwLDAsMCwyLDJIMjdhMiwyLDAsMCwwLDItMlYyNmgxYTUsNSwwLDAsMCw1LTUuNTFBNS4xNSw1LjE1LDAsMCwwLDI5LjgxLDE2WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUg''@;'; + put 'put ''Y3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgJyksZS5DbHJTaGFwZUZsb3BweT0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjcuMzYsNEg2QTIsMiwwLDAs''@;'; + put 'put ''MCw0LDZWMzBhMiwyLDAsMCwwLDIsMkgzMGEyLDIsMCwwLDAsMi0yVjguNzhaTTI1LDMwSDExVjIySDI1Wm01LDBIMjdWMjJhMiwyLDAsMCwwLTItMkgxMWEyLDIsMCwwLDAtMiwydjhINlY2aDR2NmEyLDIsMCwwLDAsMiwySDI0YTIsMiwwLDAsMCwyLTJIMTJWNkgyNi41MUwzMCw5LjU5WiIg''@;'; + put 'put ''Y2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAsMTMuNWgwVjMwSDI3VjIyYTIsMiwwLDAsMC0yLTJIMTFhMiwyLDAsMCwwLTIsMnY4SDZWNmg0djZhMiwyLDAsMCwwLDIsMkgyNGEyLDIsMCwwLDAsMi0xLjY4bC0u''@;'; + put 'put ''NDMtLjNIMTJWNkgyMi41YTcuNDksNy40OSwwLDAsMSwuMjgtMkg2QTIsMiwwLDAsMCw0LDZWMzBhMiwyLDAsMCwwLDIsMkgzMGEyLDIsMCwwLDAsMi0yVjEzLjIyQTcuNDksNy40OSwwLDAsMSwzMCwxMy41Wk0yNSwzMEgxMVYyMkgyNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQg''@;'; + put 'put ''Y2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgICAgIDxwYXRo''@;'; + put 'put ''IGQ9Ik0zMCwxNS40VjMwSDI3VjIyYTIsMiwwLDAsMC0yLTJIMTFhMiwyLDAsMCwwLTIsMnY4SDZWNmg0djZhMiwyLDAsMCwwLDIsMmg3LjM1YTMuNTQsMy41NCwwLDAsMS0uNzctMkgxMlY2aDkuMjlsMS4xNS0ySDZBMiwyLDAsMCwwLDQsNlYzMGEyLDIsMCwwLDAsMiwySDMwYTIsMiwwLDAs''@;'; + put 'put ''MCwyLTJWMTUuNFpNMjUsMzBIMTFWMjJIMjVaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4''@;'; + put 'put ''QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0y''@;'; + put 'put ''Ny4zNiw0SDZBMiwyLDAsMCwwLDQsNlYzMGEyLDIsMCwwLDAsMiwySDMwYTIsMiwwLDAsMCwyLTJWOC43OFpNMjYsMzBIMTBWMjEuNUExLjUsMS41LDAsMCwxLDExLjUsMjBoMTNBMS41LDEuNSwwLDAsMSwyNiwyMS41Wk0yNCwxNEgxMmEyLDIsMCwwLDEtMi0yVjZoMnY2SDI2QTIsMiwwLDAs''@;'; + put 'put ''MSwyNCwxNFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMCwxMy41YTcuNDYsNy40NiwwLDAsMS00LTEuMThBMiwyLDAsMCwxLDI0LDE0SDEyYTIsMiwwLDAsMS0yLTJWNmgydjZIMjUuNTRhNy40NSw3LjQ1LDAsMCwx''@;'; + put 'put ''LTIuNzYtOEg2QTIsMiwwLDAsMCw0LDZWMzBhMiwyLDAsMCwwLDIsMkgzMGEyLDIsMCwwLDAsMi0yVjEzLjIyQTcuNDksNy40OSwwLDAsMSwzMCwxMy41Wk0yNiwzMEgxMFYyMS41QTEuNSwxLjUsMCwwLDEsMTEuNSwyMGgxM0ExLjUsMS41LDAsMCwxLDI2LDIxLjVaIiBjbGFzcz0iY2xyLWkt''@;'; + put 'put ''c29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAg''@;'; + put 'put ''ICAgPHBhdGggZD0iTTIyLjIzLDE1LjRBMy42OSwzLjY5LDAsMCwxLDE5LjM1LDE0SDEyYTIsMiwwLDAsMS0yLTJWNmgydjZoNi41OEEzLjY3LDMuNjcsMCwwLDEsMTksOS44OUwyMi40NSw0SDZBMiwyLDAsMCwwLDQsNlYzMGEyLDIsMCwwLDAsMiwySDMwYTIsMiwwLDAsMCwyLTJWMTUuNFpN''@;'; + put 'put ''MjYsMzBIMTBWMjEuNUExLjUsMS41LDAsMCwxLDExLjUsMjBoMTNBMS41LDEuNSwwLDAsMSwyNiwyMS41WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFB''@;'; + put 'put ''MS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCBjbHItaS1hbGVydCIv''@;'; + put 'put ''PlxuICAgICAgICAnKSxlLkNsclNoYXBlQ29tcHV0ZXI9KDAsYS5jbHJJY29uU1ZHKSgnPHBvbHlnb24gcG9pbnRzPSI5LjYgMjIuODggOS42IDEwLjYgMjQuNCAxMC42IDI1Ljk4IDkgOCA5IDggMjIuODggOS42IDIyLjg4IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBh''@;'; + put 'put ''dGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTYsN0gzMFYyM2gyVjYuNUExLjUsMS41LDAsMCwwLDMwLjUsNUg1LjVBMS41LDEuNSwwLDAsMCw0LDYuNVYyM0g2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9''@;'; + put 'put ''Ik0xLDI1djMuNEEyLjYsMi42LDAsMCwwLDMuNiwzMUgzMi4zNGEyLjYsMi42LDAsMCwwLDIuNi0yLjZWMjVabTMyLDMuNGEuNi42LDAsMCwxLS42LjZIMy41NmEuNi42LDAsMCwxLS42LS42VjI2LjUzaDkuOTVhMS42NCwxLjY0LDAsMCwwLDEuNSwxaDcuMTNhMS42NCwxLjY0LDAsMCwwLDEu''@;'; + put 'put ''NS0xSDMzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xLDI1djMuNEEyLjYsMi42LDAsMCwwLDMuNiwzMUgzMi4zNGEyLjYsMi42LDAsMCwwLDIuNi0yLjZWMjVabTMyLDMuNGEuNi42LDAsMCwxLS42LjZIMy41''@;'; + put 'put ''NmEuNi42LDAsMCwxLS42LS42VjI2LjUzaDkuOTVhMS42NCwxLjY0LDAsMCwwLDEuNSwxaDcuMTNhMS42NCwxLjY0LDAsMCwwLDEuNS0xSDMzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRo''@;'; + put 'put ''IGQ9Ik05LjYsMjIuODhWMTAuNmg5LjE0QTMuNjQsMy42NCwwLDAsMSwxOSw5Ljg5TDE5LjU2LDlIOFYyMi44OFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNNiw3SDIwLjcxbDEu''@;'; + put 'put ''MTUtMkg1LjVBMS41LDEuNSwwLDAsMCw0LDYuNVYyM0g2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjMwIiB5PSIxNS40IiB3aWR0aD0iMiIgaGVpZ2h0PSI3LjYiIGNsYXNzPSJj''@;'; + put 'put ''bHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRB''@;'; + put 'put ''MS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTEsMjV2My40QTIuNiwyLjYsMCwwLDAsMy42LDMxSDMyLjM0YTIu''@;'; + put 'put ''NiwyLjYsMCwwLDAsMi42LTIuNlYyNVptMzIsMy40YS42LjYsMCwwLDEtLjYuNkgzLjU2YS42LjYsMCwwLDEtLjYtLjZWMjYuNTNoOS45NWExLjY0LDEuNjQsMCwwLDAsMS41LDFoNy4xM2ExLjY0LDEuNjQsMCwwLDAsMS41LTFIMzNaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNs''@;'; + put 'put ''ci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMi41LDZhNy41Miw3LjUyLDAsMCwxLC4wNy0xSDUuNUExLjUsMS41LDAsMCwwLDQsNi41VjIzSDZWN0gyMi41N0E3LjUyLDcuNTIsMCwwLDEsMjIuNSw2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUt''@;'; + put 'put ''LWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAsMTMuNVYyM2gyVjEzLjIyQTcuNDksNy40OSwwLDAsMSwzMCwxMy41WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2Vk''@;'; + put 'put ''Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjMuMTMsOUg4VjIyLjg4SDkuNlYxMC42SDI0LjA4QTcuNDksNy40OSwwLDAsMSwyMy4xMyw5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xl''@;'; + put 'put ''IGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIzLjgxLDI2Yy0uMzUuOS0uOTQsMS41LTEuNjEsMS41SDEzLjc0Yy0uNjgsMC0x''@;'; + put 'put ''LjI2LS42LTEuNjEtMS41SDF2MS43NUEyLjQ1LDIuNDUsMCwwLDAsMy42LDMwSDMyLjRBMi40NSwyLjQ1LDAsMCwwLDM1LDI3Ljc1VjI2WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTcsMTBIMjlWMjRoM1Y3LjU3QTEu''@;'; + put 'put ''NTQsMS41NCwwLDAsMCwzMC41LDZINS41QTEuNTQsMS41NCwwLDAsMCw0LDcuNTdWMjRIN1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMy44MSwyNmMtLjM1LjktLjk0LDEuNS0xLjYxLDEuNUgxMy43NGMtLjY4LDAt''@;'; + put 'put ''MS4yNi0uNi0xLjYxLTEuNUgxdjEuNzVBMi40NSwyLjQ1LDAsMCwwLDMuNiwzMEgzMi40QTIuNDUsMi40NSwwLDAsMCwzNSwyNy43NVYyNloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjI5''@;'; + put 'put ''IiB5PSIxNS40IiB3aWR0aD0iMyIgaGVpZ2h0PSI4LjYiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik03LDEwSDE5TDE5LDkuODksMjEuMjksNkg1LjVBMS41NCwxLjU0LDAsMCwwLDQsNy41''@;'; + put 'put ''N1YyNEg3WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMy0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwx''@;'; + put 'put ''MUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtNC0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIzLjgxLDI2Yy0uMzUuOS0uOTQsMS41LTEuNjEs''@;'; + put 'put ''MS41SDEzLjc0Yy0uNjgsMC0xLjI2LS42LTEuNjEtMS41SDF2MS43NUEyLjQ1LDIuNDUsMCwwLDAsMy42LDMwSDMyLjRBMi40NSwyLjQ1LDAsMCwwLDM1LDI3Ljc1VjI2WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAg''@;'; + put 'put ''ICAgIDxwYXRoIGQ9Ik03LDEwSDIzLjY2QTcuNDYsNy40NiwwLDAsMSwyMi41LDZINS41QTEuNTQsMS41NCwwLDAsMCw0LDcuNTdWMjRIN1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIs''@;'; + put 'put ''MTMuMjJhNy4xNCw3LjE0LDAsMCwxLTMsLjJWMjRoM1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1p''@;'; + put 'put ''LXNvbGlkLXBhdGgtNC0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICcpLGUuQ2xyU2hhcGVEaXNwbGF5PSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMi41LDNIMy41QTEuNSwxLjUsMCwwLDAsMiw0LjV2MjFBMS41LDEuNSwwLDAsMCwzLjUsMjdoMjlBMS41LDEuNSwwLDAs''@;'; + put 'put ''MCwzNCwyNS41VjQuNUExLjUsMS41LDAsMCwwLDMyLjUsM1pNMzIsMjVINFY1SDMyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iNy43IDguNzYgMjguMTMgOC43NiAyOS45NCA3LjE2IDYuMSA3LjE2''@;'; + put 'put ''IDYuMSAyMyA3LjcgMjMgNy43IDguNzYiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYsMzJIMjQuMjZhMy42MSwzLjYxLDAsMCwxLTEuNS0yLjUyVjI4LjEzSDIxLjI0VjI5LjVBNC4yLDQuMiwwLDAsMCwyMi4x''@;'; + put 'put ''NywzMkgxMy44M2E0LjIsNC4yLDAsMCwwLC45My0yLjUyVjI4LjEzSDEzLjI0VjI5LjVBMy42MSwzLjYxLDAsMCwxLDExLjc0LDMySDkuOTRhMSwxLDAsMSwwLDAsMkgyNi4wNmEuOTIuOTIsMCwwLDAsMS0xQTEsMSwwLDAsMCwyNiwzMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91''@;'; + put 'put ''dGxpbmUtcGF0aC0zIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYsMzJIMjQuMjZhMy42MSwzLjYxLDAsMCwxLTEuNS0yLjUyVjI4LjEzSDIxLjI0VjI5LjVBNC4yLDQuMiwwLDAsMCwyMi4xNywzMkgxMy44M2E0LjIsNC4yLDAsMCwwLC45My0yLjUyVjI4LjEzSDEzLjI0VjI5LjVBMy42''@;'; + put 'put ''MSwzLjYxLDAsMCwxLDExLjc0LDMySDkuOTRhMSwxLDAsMSwwLDAsMkgyNi4wNmEuOTIuOTIsMCwwLDAsMS0xQTEsMSwwLDAsMCwyNiwzMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBk''@;'; + put 'put ''PSJNMzMuNjgsMTUuNEgzMlYyNUg0VjVIMjEuODdMMjMsM0gzLjVBMS41LDEuNSwwLDAsMCwyLDQuNXYyMUExLjUsMS41LDAsMCwwLDMuNSwyN2gyOUExLjUsMS41LDAsMCwwLDM0LDI1LjVWMTUuMzhaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgt''@;'; + put 'put ''Mi0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSI3LjcgMjMgNy43IDguNzYgMTkuNyA4Ljc2IDIwLjYyIDcuMTYgNi4xIDcuMTYgNi4xIDIzIDcuNyAyMyIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQi''@;'; + put 'put ''Lz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1h''@;'; + put 'put ''bGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYsMzJIMjQuMjZhMy42MSwzLjYxLDAsMCwxLTEuNS0yLjUyVjI4LjEzSDIxLjI0VjI5LjVBNC4yLDQuMiwwLDAsMCwyMi4xNywzMkgxMy44M2E0LjIsNC4y''@;'; + put 'put ''LDAsMCwwLC45My0yLjUyVjI4LjEzSDEzLjI0VjI5LjVBMy42MSwzLjYxLDAsMCwxLDExLjc0LDMySDkuOTRhMSwxLDAsMSwwLDAsMkgyNi4wNmEuOTIuOTIsMCwwLDAsMS0xQTEsMSwwLDAsMCwyNiwzMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRo''@;'; + put 'put ''LTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTYuMSwyM0g3LjdWOC43NkgyM2E3LjQ0LDcuNDQsMCwwLDEtLjQzLTEuNkg2LjFaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRo''@;'; + put 'put ''IGQ9Ik0zMiwxMy4yMlYyNUg0VjVIMjIuNTdhNy40NSw3LjQ1LDAsMCwxLC41NS0ySDMuNUExLjUsMS41LDAsMCwwLDIsNC41djIxQTEuNSwxLjUsMCwwLDAsMy41LDI3aDI5QTEuNSwxLjUsMCwwLDAsMzQsMjUuNVYxMi4zNEE3LjQ1LDcuNDUsMCwwLDEsMzIsMTMuMjJaIiBjbGFzcz0iY2xy''@;'; + put 'put ''LWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+''@;'; + put 'put ''XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYsMzJIMjQuMjZhMy42MSwzLjYxLDAsMCwxLTEuNS0yLjUyVjI4LjEzSDEzLjI0VjI5LjVBMy42MSwzLjYxLDAsMCwxLDExLjc0LDMySDkuOTRhMSwxLDAsMSwwLDAsMkgyNi4wNmEuOTIuOTIsMCwwLDAsMS0xQTEsMSwwLDAsMCwyNiwzMloiIGNs''@;'; + put 'put ''YXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMi41LDNIMy41QTEuNSwxLjUsMCwwLDAsMiw0LjV2MjFBMS41LDEuNSwwLDAsMCwzLjUsMjdoMjlBMS41LDEuNSwwLDAsMCwzNCwyNS41VjQuNUExLjUsMS41LDAsMCwwLDMyLjUs''@;'; + put 'put ''M1pNMzEsMjEuODNINVY3SDMxWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2LDMySDI0LjI2YTMuNjEsMy42MSwwLDAsMS0xLjUtMi41MlYyOC4xM0gxMy4yNFYyOS41QTMuNjEsMy42MSwwLDAsMSwxMS43NCwzMkg5''@;'; + put 'put ''Ljk0YTEsMSwwLDEsMCwwLDJIMjYuMDZhLjkyLjkyLDAsMCwwLDEtMUExLDEsMCwwLDAsMjYsMzJaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuNjgsMTUuNEgzMXY2LjQzSDVWN0gy''@;'; + put 'put ''MC43MUwyMywzSDMuNUExLjUsMS41LDAsMCwwLDIsNC41djIxQTEuNSwxLjUsMCwwLDAsMy41LDI3aDI5QTEuNSwxLjUsMCwwLDAsMzQsMjUuNVYxNS4zOFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxw''@;'; + put 'put ''YXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1w''@;'; + put 'put ''YXRoLTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNiwzMkgyNC4yNmEzLjYxLDMuNjEsMCwwLDEtMS41LTIuNTJWMjguMTNIMTMuMjRWMjkuNUEzLjYxLDMuNjEsMCwwLDEsMTEuNzQsMzJIOS45NGExLDEsMCwxLDAsMCwySDI2LjA2YS45Mi45Miww''@;'; + put 'put ''LDAsMCwxLTFBMSwxLDAsMCwwLDI2LDMyWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMSwxMy40M3Y4LjQxSDVWN0gyMi41N2E3LjI5LDcuMjksMCwwLDEsLjU1LTRIMy41QTEuNSwxLjUs''@;'; + put 'put ''MCwwLDAsMiw0LjV2MjFBMS41LDEuNSwwLDAsMCwzLjUsMjdoMjlBMS41LDEuNSwwLDAsMCwzNCwyNS41VjEyLjM0QTcuNDQsNy40NCwwLDAsMSwzMSwxMy40M1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8''@;'; + put 'put ''Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICcpLGUuQ2xyU2hhcGVUZXJtaW5hbD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzIsNUg0QTIs''@;'; + put 'put ''MiwwLDAsMCwyLDdWMjlhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjdBMiwyLDAsMCwwLDMyLDVaTTQsN0gzMlY5LjJINFpNNCwyOVYxMC44SDMyVjI5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIx''@;'; + put 'put ''NyIgeT0iMjMiIHdpZHRoPSI2IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSI3IDE1LjY4IDEzLjc5IDE4LjggNyAyMS45MSA3IDI0LjExIDE2LjYgMTkuNyAxNi42IDE3Ljg5IDcg''@;'; + put 'put ''MTMuNDggNyAxNS42OCIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNyIgeT0iMjMiIHdpZHRoPSI2IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0x''@;'; + put 'put ''LS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSI3IDI0LjExIDE2LjYgMTkuNyAxNi42IDE3Ljg5IDcgMTMuNDggNyAxNS42OCAxMy43OSAxOC44IDcgMjEuOTEgNyAyNC4xMSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRo''@;'; + put 'put ''LTItLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuNjgsMTUuNEgzMlYyOUg0VjEwLjhIMTguNjhBMy42NiwzLjY2LDAsMCwxLDE5LDkuODlsLjQtLjY5SDRWN0gyMC43MWwxLjE1LTJINEEyLDIsMCwwLDAsMiw3VjI5YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDIt''@;'; + put 'put ''MlYxNS4zOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwz''@;'; + put 'put ''NC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIGNsci1pLWFsZXJ0IiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTciIHk9IjIzIiB3aWR0aD0i''@;'; + put 'put ''NiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cG9seWdvbiBwb2ludHM9IjcgMjQuMTEgMTYuNiAxOS43IDE2LjYgMTcuODkgNyAxMy40OCA3IDE1LjY4IDEzLjc5IDE4LjggNyAy''@;'; + put 'put ''MS45MSA3IDI0LjExIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIsMTMuMjJWMjlINFYxMC44SDI0LjI0YTcuNTEsNy41MSwwLDAsMS0xLTEuNkg0VjdIMjIuNTdhNy41Miw3LjUy''@;'; + put 'put ''LDAsMCwxLS4wNy0xLDcuNTIsNy41MiwwLDAsMSwuMDctMUg0QTIsMiwwLDAsMCwyLDdWMjlhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjEyLjM0QTcuNDUsNy40NSwwLDAsMSwzMiwxMy4yMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRo''@;'; + put 'put ''LTMtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCBjbHItaS1iYWRnZSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMiw1SDRBMiwy''@;'; + put 'put ''LDAsMCwwLDIsN1YyOWEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWN0EyLDIsMCwwLDAsMzIsNVpNNi44LDE1LjgxVjEzLjE3bDEwLDQuNTl2Mi4wOGwtMTAsNC41OVYyMS43OGw2LjUxLTNaTTIzLjQsMjUuNEgxN1YyM2g2LjRaTTQsOS4yVjdIMzJWOS4yWiIgY2xhc3M9ImNsci1p''@;'; + put 'put ''LXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy42OCwxNS40SDIyLjIzQTMuNjgsMy42OCwwLDAsMSwxOSw5Ljg5bC40LS42OUg0VjdIMjAuNzFsMS4xNS0ySDRBMiwyLDAsMCwwLDIsN1YyOWEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwy''@;'; + put 'put ''LTJWMTUuMzhaTTE2LjgsMTkuODNsLTEwLDQuNTlWMjEuNzhsNi41MS0zLTYuNTEtM1YxMy4xN2wxMCw0LjU5Wm02LjYsNS41N0gxN1YyM2g2LjRaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGgg''@;'; + put 'put ''ZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRo''@;'; + put 'put ''LTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAsMTMuNWE3LjQ5LDcuNDksMCwwLDEtNi43OC00LjNINFY3SDIyLjU3YTcuNTIsNy41MiwwLDAsMS0uMDctMSw3LjUyLDcuNTIsMCwwLDEsLjA3LTFINEEyLDIsMCwwLDAsMiw3VjI5YTIsMiwwLDAs''@;'; + put 'put ''MCwyLDJIMzJhMiwyLDAsMCwwLDItMlYxMi4zNEE3LjQ2LDcuNDYsMCwwLDEsMzAsMTMuNVpNMTYuOCwxOS44M2wtMTAsNC41OVYyMS43OGw2LjUxLTMtNi41MS0zVjEzLjE3bDEwLDQuNTlabTYuNiw1LjU3SDE3VjIzaDYuNFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNv''@;'; + put 'put ''bGlkLXBhdGgtMS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIC8+XG4gICAgICAgICcpLGUuQ2xyU2hhcGVDb2RlPSgw''@;'; + put 'put ''LGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xMy43MSwxMi41OWExLDEsMCwwLDAtMS4zOS0uMjZMNS43OSwxNi43OGExLDEsMCwwLDAsMCwxLjY1bDYuNTMsNC40NWExLDEsMCwxLDAsMS4xMy0xLjY1TDguMTMsMTcuNjEsMTMuNDUsMTRBMSwxLDAsMCwwLDEzLjcxLDEyLjU5WiIgY2xhc3M9''@;'; + put 'put ''ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAuMjEsMTYuNzhsLTYuNTMtNC40NUExLDEsMCwxLDAsMjIuNTUsMTRsNS4zMiwzLjYzLTUuMzIsMy42M2ExLDEsMCwwLDAsMS4xMywxLjY1bDYuNTMtNC40NWExLDEsMCwwLDAs''@;'; + put 'put ''MC0xLjY1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTkuOTQsOS44M2EuOS45LDAsMCwwLTEuMDkuNjZMMTUuNDEsMjQuMjlhLjkuOSwwLDAsMCwuNjYsMS4wOWwuMjIsMGEuOS45LDAsMCwwLC44Ny0uNjhs''@;'; + put 'put ''My40NC0xMy44MUEuOS45LDAsMCwwLDE5Ljk0LDkuODNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMy43MSwxMi41OWExLDEsMCwwLDAtMS4zOS0uMjZMNS43OSwxNi43OGExLDEsMCwwLDAsMCwxLjY1bDYu''@;'; + put 'put ''NTMsNC40NWExLDEsMCwxLDAsMS4xMy0xLjY1TDguMTMsMTcuNjEsMTMuNDUsMTRBMSwxLDAsMCwwLDEzLjcxLDEyLjU5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTguNTYs''@;'; + put 'put ''MTEuNjIsMTUuNDEsMjQuMjlhLjkuOSwwLDAsMCwuNjYsMS4wOWwuMjIsMGEuOS45LDAsMCwwLC44Ny0uNjhMMTkuNzMsMTQuNGEzLjU5LDMuNTksMCwwLDEtMS4xNi0yLjc5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIC8+''@;'; + put 'put ''XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAuMjEsMTYuNzhsLTItMS4zOEgyNC42NGwzLjI0LDIuMjEtNS4zMiwzLjYzYTEsMSwwLDAsMCwxLjEzLDEuNjVsNi41My00LjQ1YTEsMSwwLDAsMCwwLTEuNjVaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBh''@;'; + put 'put ''dGgtMy0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiICBjbGFzcz0i''@;'; + put 'put ''Y2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMy43MSwxMi41OWExLDEsMCwwLDAtMS4zOS0uMjZMNS43OSwxNi43OGExLDEsMCwwLDAsMCwxLjY1bDYuNTMsNC40NWExLDEs''@;'; + put 'put ''MCwxLDAsMS4xMy0xLjY1TDguMTMsMTcuNjEsMTMuNDUsMTRBMSwxLDAsMCwwLDEzLjcxLDEyLjU5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLjIxLDE2Ljc4bC02LjUzLTQu''@;'; + put 'put ''NDVBMSwxLDAsMSwwLDIyLjU1LDE0bDUuMzIsMy42My01LjMyLDMuNjNhMSwxLDAsMCwwLDEuMTMsMS42NWw2LjUzLTQuNDVhMSwxLDAsMCwwLDAtMS42NVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgLz5cbiAgICAgICAgICAg''@;'; + put 'put ''IDxwYXRoIGQ9Ik0xOS45NCw5LjgzYS45LjksMCwwLDAtMS4wOS42NkwxNS40MSwyNC4yOWEuOS45LDAsMCwwLC42NiwxLjA5bC4yMiwwYS45LjksMCwwLDAsLjg3LS42OGwzLjQ0LTEzLjgxQS45LjksMCwwLDAsMTkuOTQsOS44M1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xy''@;'; + put 'put ''LWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCBjbHItaS1iYWRnZSIgLz5cbiAgICAgICAgJyksZS5DbHJT''@;'; + put 'put ''aGFwZUFwcGxpY2F0aW9uPSgwLGEuY2xySWNvblNWRykoJzxyZWN0IHg9IjUiIHk9IjciIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iOSIgeT0iNyIgd2lkdGg9IjIiIGhlaWdo''@;'; + put 'put ''dD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMyIgeT0iNyIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+XG4gICAgICAgICAgICA8''@;'; + put 'put ''cGF0aCBkPSJNMzIsNEg0QTIsMiwwLDAsMCwyLDZWMzBhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjZBMiwyLDAsMCwwLDMyLDRaTTQsNkgzMnY0LjJINFpNNCwzMFYxMS44SDMyVjMwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+XG4gICAg''@;'; + put 'put ''ICAgICAgICA8cGF0aCBkPSJNMzIsNEg0QTIsMiwwLDAsMCwyLDZWMzBhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjZBMiwyLDAsMCwwLDMyLDRabTAsNi4ySDRWNkgzMloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cmVj''@;'; + put 'put ''dCB4PSI1IiB5PSI3IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iOSIgeT0iNyIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgt''@;'; + put 'put ''MyIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjEzIiB5PSI3IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC00IiAvPlxuICAgICAgICAnKSxlLkNsclNoYXBlQmF0dGVyeT0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTguNTks''@;'; + put 'put ''MTEuNzdhMSwxLDAsMCwwLTEuNzMsMWwyLjUsNC4zNC02LjA3LTEsNS4yOSwxMC41OWExLDEsMCwwLDAsMS43OS0uODlsLTMuNTMtNy4wOCw2LjM4LDEuMDZaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNS4x''@;'; + put 'put ''Miw0SDIzVjMuNThBMS41OCwxLjU4LDAsMCwwLDIxLjQyLDJIMTQuNThBMS41OCwxLjU4LDAsMCwwLDEzLDMuNThWNEgxMC44OEExLjg4LDEuODgsMCwwLDAsOSw1Ljg4VjMyLjEyQTEuODgsMS44OCwwLDAsMCwxMC44OCwzNEgyNS4xMkExLjg4LDEuODgsMCwwLDAsMjcsMzIuMTJWNS44OEEx''@;'; + put 'put ''Ljg4LDEuODgsMCwwLDAsMjUuMTIsNFpNMjUsMzJIMTFWNmg0VjRoNlY2aDRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOC41OSwxMS43N2ExLDEsMCwwLDAtMS43MywxbDIuNSw0LjM0LTYuMDctMSw1LjI5''@;'; + put 'put ''LDEwLjU5YTEsMSwwLDAsMCwxLjc5LS44OWwtMy41My03LjA4LDYuMzgsMS4wNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4''@;'; + put 'put ''LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0IiAvPlxu''@;'; + put 'put ''ICAgICAgICAgICAgPHBhdGggZD0iTTI1LDE1LjRWMzJIMTFWNmg0VjRoNlY2aC4yOGwxLjY0LTIuODVBMS41NywxLjU3LDAsMCwwLDIxLjQyLDJIMTQuNThBMS41OCwxLjU4LDAsMCwwLDEzLDMuNThWNEgxMC44OEExLjg4LDEuODgsMCwwLDAsOSw1Ljg4VjMyLjEyQTEuODgsMS44OCwwLDAs''@;'; + put 'put ''MCwxMC44OCwzNEgyNS4xMkExLjg4LDEuODgsMCwwLDAsMjcsMzIuMTJWMTUuNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNs''@;'; + put 'put ''ci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LjU5LDExLjc3YTEsMSwwLDAsMC0xLjczLDFsMi41LDQuMzQtNi4wNy0xLDUuMjksMTAuNTlhMSwxLDAsMCwwLDEuNzktLjg5bC0z''@;'; + put 'put ''LjUzLTcuMDgsNi4zOCwxLjA2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI1LDExLjU4VjMySDExVjZoNFY0aDZWNkgyMi41QTcuNDcsNy40NywwLDAsMSwyMywzLjM4LDEuNTcs''@;'; + put 'put ''MS41NywwLDAsMCwyMS40MiwySDE0LjU4QTEuNTgsMS41OCwwLDAsMCwxMywzLjU4VjRIMTAuODhBMS44OCwxLjg4LDAsMCwwLDksNS44OFYzMi4xMkExLjg4LDEuODgsMCwwLDAsMTAuODgsMzRIMjUuMTJBMS44OCwxLjg4LDAsMCwwLDI3LDMyLjEyVjEyLjg3QTcuNSw3LjUsMCwwLDEsMjUs''@;'; + put 'put ''MTEuNThaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIsNFYyLjYyQS42LjYsMCwwLDAsMjEuNDIsMkgxNC41OGEuNi42LDAsMCwwLS41OC42MlY0SDEwQTEuMDksMS4wOSwwLDAs''@;'; + put 'put ''MCw5LDUuMDd2MjhBMSwxLDAsMCwwLDEwLDM0SDI2YTEsMSwwLDAsMCwxLS45NHYtMjhBMS4wOSwxLjA5LDAsMCwwLDI2LDRaTTIwLjI2LDI1LjQ0YTEuMiwxLjIsMCwwLDEtMi4xNSwxLjA3TDEyLjY1LDE1LjU2bDYsMS0yLjI5LTRhMS4yLDEuMiwwLDEsMSwyLjA4LTEuMmw0LjgzLDguMzdM''@;'; + put 'put ''MTYuOSwxOC43WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEEx''@;'; + put 'put ''LjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiICBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIGNsci1pLWFsZXJ0IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIyLjIzLDE1LjRBMy42NiwzLjY2LDAsMCwxLDIwLjU1LDE1bDIuNzYs''@;'; + put 'put ''NC43OUwxNi45LDE4LjdsMy4zNiw2LjczYTEuMiwxLjIsMCwwLDEtMi4xNSwxLjA3TDEyLjY1LDE1LjU2bDYsMS0yLjI5LTRhMS4yLDEuMiwwLDEsMSwyLjA4LTEuMmwuMDkuMTVBMy42NiwzLjY2LDAsMCwxLDE5LDkuODlMMjIuNDUsNEgyMlYyLjYyQS42LjYsMCwwLDAsMjEuNDIsMkgxNC41''@;'; + put 'put ''OGEuNi42LDAsMCwwLS41OC42MlY0SDEwQTEuMDksMS4wOSwwLDAsMCw5LDUuMDd2MjhBMSwxLDAsMCwwLDEwLDM0SDI2YTEsMSwwLDAsMCwxLS45NFYxNS40WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAg''@;'; + put 'put ''IDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIyLjUsNmE3LjQ5LDcuNDksMCwwLDEsLjI4LTJIMjJWMi42MkEuNi42''@;'; + put 'put ''LDAsMCwwLDIxLjQyLDJIMTQuNThhLjYuNiwwLDAsMC0uNTguNjJWNEgxMEExLjA5LDEuMDksMCwwLDAsOSw1LjA3djI4QTEsMSwwLDAsMCwxMCwzNEgyNmExLDEsMCwwLDAsMS0uOTRWMTIuODdBNy41LDcuNSwwLDAsMSwyMi41LDZaTTIwLjI2LDI1LjQ0YTEuMiwxLjIsMCwwLDEtMi4xNSwx''@;'; + put 'put ''LjA3TDEyLjY1LDE1LjU2bDYsMS0yLjI5LTRhMS4yLDEuMiwwLDEsMSwyLjA4LTEuMmw0LjgzLDguMzdMMTYuOSwxOC43WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQiIC8+XG4gICAgICAgICcpLGUuQ2xyU2hhcGVNb2JpbGU9KDAsYS5j''@;'; + put 'put ''bHJJY29uU1ZHKSgnPHBhdGggZD0iTTI1LDRIMTFBMiwyLDAsMCwwLDksNlYzMGEyLDIsMCwwLDAsMiwySDI1YTIsMiwwLDAsMCwyLTJWNkEyLDIsMCwwLDAsMjUsNFpNMTEsNkgyNVYyNEgxMVptMCwyNFYyNkgyNXY0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRo''@;'; + put 'put ''LTEiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNyIgeT0iMjciIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI1LDRIMTFBMiwyLDAsMCwwLDksNlYzMGEyLDIsMCwwLDAs''@;'; + put 'put ''MiwySDI1YTIsMiwwLDAsMCwyLTJWNkEyLDIsMCwwLDAsMjUsNFpNMTksMzBIMTdWMjhoMlptLTgtNFY2SDI1VjI2WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgJyksZS5DbHJTaGFwZVRhYmxldD0oMCxhLmNsckljb25TVkcpKCc8cmVjdCB4''@;'; + put 'put ''PSIxNyIgeT0iMjkiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLDJINkEyLDIsMCwwLDAsNCw0VjMyYTIsMiwwLDAsMCwyLDJIMzBhMiwyLDAsMCwwLDItMlY0QTIsMiww''@;'; + put 'put ''LDAsMCwzMCwyWm0wLDJWMjYuMzhINlY0Wk02LDMyVjI4SDMwdjRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMCwySDZBMiwyLDAsMCwwLDQsNFYzMmEyLDIsMCwwLDAsMiwySDMwYTIsMiwwLDAsMCwyLTJW''@;'; + put 'put ''NEEyLDIsMCwwLDAsMzAsMlpNMTksMzJIMTdWMzBoMlpNNiwyOFY0SDMwVjI4WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgJyksZS5DbHJTaGFwZU5ldHdvcmtHbG9iZT0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjYuNTgsMzJoLTE4''@;'; + put 'put ''YTEsMSwwLDEsMCwwLDJoMThhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE3Ljc1LDJhMTQsMTQsMCwwLDAtMTQsMTRjMCwuNDUsMCwuODkuMDcsMS4zM2wwLDBoMEExNCwxNCwwLDEs''@;'; + put 'put ''MCwxNy43NSwyWm0wLDJhMTIsMTIsMCwwLDEsOC40NCwzLjQ4YzAsLjMzLDAsLjY2LDAsMUExOC41MSwxOC41MSwwLDAsMCwxNCw4LjUzYTIuMzMsMi4zMywwLDAsMC0xLjE0LS42MWwtLjI1LDBjLS4xMi0uNDItLjIzLS44NC0uMzItMS4yN3MtLjE0LS44MS0uMTktMS4yMkExMS45MiwxMS45''@;'; + put 'put ''MiwwLDAsMSwxNy43NSw0Wm0tMyw1Ljg3QTE3LDE3LDAsMCwxLDI1LjkyLDEwYTE2LjksMTYuOSwwLDAsMS0zLjExLDcsMi4yOCwyLjI4LDAsMCwwLTIuNTguNTdjLS4zNS0uMi0uNy0uNC0xLS42M2ExNiwxNiwwLDAsMS00LjkzLTUuMjMsMi4yNSwyLjI1LDAsMCwwLC40Ny0xLjc3Wm0tNC0z''@;'; + put 'put ''LjZjMCwuMjEuMDYuNDMuMS42NC4wOS40NC4yMS44Ny4zMywxLjNhMi4yOCwyLjI4LDAsMCwwLTEuMSwyLjI1QTE4LjMyLDE4LjMyLDAsMCwwLDUuOSwxNC4yMiwxMiwxMiwwLDAsMSwxMC43Niw2LjI3Wm0wLDE1LjcxQTIuMzQsMi4zNCwwLDAsMCw5LjIsMjMuNzRsLS42NCwwQTExLjk0LDEx''@;'; + put 'put ''Ljk0LDAsMCwxLDUuOCwxNi45MmwuMTEtLjE5YTE2LjksMTYuOSwwLDAsMSw0LjgxLTQuODksMi4zMSwyLjMxLDAsMCwwLDIuMjguNjMsMTcuNTMsMTcuNTMsMCwwLDAsNS4zNSw1LjY1Yy40MS4yNy44My41MiwxLjI1Ljc2QTIuMzIsMi4zMiwwLDAsMCwxOS43OCwyMGExNi45NCwxNi45NCww''@;'; + put 'put ''LDAsMS02LjIsMy4xMUEyLjM0LDIuMzQsMCwwLDAsMTAuNzYsMjJabTcsNmExMS45MiwxMS45MiwwLDAsMS01LjgxLTEuNTFsLjI4LS4wNmEyLjM0LDIuMzQsMCwwLDAsMS41Ny0xLjc5LDE4LjQzLDE4LjQzLDAsMCwwLDctMy41LDIuMjksMi4yOSwwLDAsMCwzLS42MiwxNy40MSwxNy40MSww''@;'; + put 'put ''LDAsMCw0LjMyLjU2bC41MywwQTEyLDEyLDAsMCwxLDE3Ljc1LDI4Wm02LjUxLTguOWEyLjMzLDIuMzMsMCwwLDAtLjMzLTEuMTksMTguNCwxOC40LDAsMCwwLDMuMzktNy4zN3EuNzUuMzUsMS40OC43OGExMiwxMiwwLDAsMSwuNDIsOC4yQTE2LDE2LDAsMCwxLDI0LjI3LDE5LjExWiIgY2xh''@;'; + put 'put ''c3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuNTgsMzJoLTE4YTEsMSwwLDEsMCwwLDJoMThhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1h''@;'; + put 'put ''bGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMxLjczLDE1LjRoLTJjMCwuMiwwLC40LDAsLjYxYTEyLDEyLDAsMCwxLS41MywzLjUyLDE2LDE2LDAsMCwxLTUtLjQxLDIuMzMsMi4zMywwLDAsMC0uMzMtMS4xOSwxOC44NywxOC44NywwLDAsMCwxLjYyLTIuNTJIMjMuODNhMTcu''@;'; + put 'put ''MjksMTcuMjksMCwwLDEtMSwxLjU0LDIuMjgsMi4yOCwwLDAsMC0yLjU4LjU3Yy0uMzUtLjItLjctLjQtMS0uNjNhMTYsMTYsMCwwLDEtNC45My01LjIzLDIuMjUsMi4yNSwwLDAsMCwuNDctMS43N0ExNy4wOCwxNy4wOCwwLDAsMSwxOS41Niw5bC44Ny0xLjUxYTE4LjU5LDE4LjU5LDAsMCww''@;'; + put 'put ''LTYuMzksMSwyLjMzLDIuMzMsMCwwLDAtMS4xNC0uNjFsLS4yNSwwYy0uMTItLjQyLS4yMy0uODQtLjMyLTEuMjdzLS4xNC0uODEtLjE5LTEuMjJBMTEuODgsMTEuODgsMCwwLDEsMjIsNC43OUwyMywzQTE0LDE0LDAsMCwwLDMuNzUsMTZjMCwuNDUsMCwuODkuMDcsMS4zM2wwLDBoMEExNCwx''@;'; + put 'put ''NCwwLDAsMCwzMS43NiwxNkMzMS43NiwxNS44LDMxLjc0LDE1LjYsMzEuNzMsMTUuNFptLTIxLTkuMTNjMCwuMjEuMDYuNDMuMS42NC4wOS40NC4yMS44Ny4zMywxLjNhMi4yOCwyLjI4LDAsMCwwLTEuMSwyLjI1QTE4LjMyLDE4LjMyLDAsMCwwLDUuOSwxNC4yMiwxMiwxMiwwLDAsMSwxMC43''@;'; + put 'put ''Niw2LjI3Wm0wLDE1LjcxQTIuMzQsMi4zNCwwLDAsMCw5LjIsMjMuNzRsLS42NCwwQTExLjk0LDExLjk0LDAsMCwxLDUuOCwxNi45MmwuMTEtLjE5YTE2LjksMTYuOSwwLDAsMSw0LjgxLTQuODksMi4zMSwyLjMxLDAsMCwwLDIuMjguNjMsMTcuNTMsMTcuNTMsMCwwLDAsNS4zNSw1LjY1Yy40''@;'; + put 'put ''MS4yNy44My41MiwxLjI1Ljc2QTIuMzIsMi4zMiwwLDAsMCwxOS43OCwyMGExNi45NCwxNi45NCwwLDAsMS02LjIsMy4xMUEyLjM0LDIuMzQsMCwwLDAsMTAuNzYsMjJabTcsNmExMS45MiwxMS45MiwwLDAsMS01LjgxLTEuNTFsLjI4LS4wNmEyLjM0LDIuMzQsMCwwLDAsMS41Ny0xLjc5LDE4''@;'; + put 'put ''LjQzLDE4LjQzLDAsMCwwLDctMy41LDIuMjksMi4yOSwwLDAsMCwzLS42MiwxNy40MSwxNy40MSwwLDAsMCw0LjMyLjU2bC41MywwQTEyLDEyLDAsMCwxLDE3Ljc1LDI4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIC8+XG4g''@;'; + put 'put ''ICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiAgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0''@;'; + put 'put ''ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuNTgsMzJoLTE4YTEsMSwwLDEsMCwwLDJoMThhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRo''@;'; + put 'put ''LTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMS41LDEzLjM1YTcuNTQsNy41NCwwLDAsMS0xLjUuMTVsLS41MSwwYTExLjkxLDExLjkxLDAsMCwxLS4yNSw2LDE2LDE2LDAsMCwxLTUtLjQxLDIuMzMsMi4zMywwLDAsMC0uMzMtMS4xOSwxOC41OSwxOC41OSwwLDAsMCwy''@;'; + put 'put ''Ljc4LTUuMTgsNy40OSw3LjQ5LDAsMCwxLTEuMzEtLjgyLDE3LDE3LDAsMCwxLTIuNjEsNSwyLjI4LDIuMjgsMCwwLDAtMi41OC41N2MtLjM1LS4yLS43LS40LTEtLjYzYTE2LDE2LDAsMCwxLTQuOTMtNS4yMywyLjI1LDIuMjUsMCwwLDAsLjQ3LTEuNzcsMTcsMTcsMCwwLDEsOC41My0uNjIs''@;'; + put 'put ''Ny40Myw3LjQzLDAsMCwxLS41Ni0xLjU5QTE4LjU2LDE4LjU2LDAsMCwwLDE0LDguNTNhMi4zMywyLjMzLDAsMCwwLTEuMTQtLjYxbC0uMjUsMGMtLjEyLS40Mi0uMjMtLjg0LS4zMi0xLjI3cy0uMTQtLjgxLS4xOS0xLjIyQTExLjkyLDExLjkyLDAsMCwxLDIyLjU3LDVhNy40NSw3LjQ1LDAs''@;'; + put 'put ''MCwxLC41My0yQTE0LDE0LDAsMCwwLDMuNzUsMTZjMCwuNDUsMCwuODkuMDcsMS4zM2wwLDBoMGExNCwxNCwwLDEsMCwyNy42OC00Wk0xMC43Niw2LjI3YzAsLjIxLjA2LjQzLjEuNjQuMDkuNDQuMjEuODcuMzMsMS4zYTIuMjgsMi4yOCwwLDAsMC0xLjEsMi4yNUExOC4zMiwxOC4zMiwwLDAs''@;'; + put 'put ''MCw1LjksMTQuMjIsMTIsMTIsMCwwLDEsMTAuNzYsNi4yN1ptMCwxNS43MUEyLjM0LDIuMzQsMCwwLDAsOS4yLDIzLjc0bC0uNjQsMEExMS45NCwxMS45NCwwLDAsMSw1LjgsMTYuOTJsLjExLS4xOWExNi45LDE2LjksMCwwLDEsNC44MS00Ljg5LDIuMzEsMi4zMSwwLDAsMCwyLjI4LjYzLDE3''@;'; + put 'put ''LjUzLDE3LjUzLDAsMCwwLDUuMzUsNS42NWMuNDEuMjcuODMuNTIsMS4yNS43NkEyLjMyLDIuMzIsMCwwLDAsMTkuNzgsMjBhMTYuOTQsMTYuOTQsMCwwLDEtNi4yLDMuMTFBMi4zNCwyLjM0LDAsMCwwLDEwLjc2LDIyWm03LDZhMTEuOTIsMTEuOTIsMCwwLDEtNS44MS0xLjUxbC4yOC0uMDZh''@;'; + put 'put ''Mi4zNCwyLjM0LDAsMCwwLDEuNTctMS43OSwxOC40MywxOC40MywwLDAsMCw3LTMuNSwyLjI5LDIuMjksMCwwLDAsMy0uNjIsMTcuNDEsMTcuNDEsMCwwLDAsNC4zMi41NmwuNTMsMEExMiwxMiwwLDAsMSwxNy43NSwyOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0''@;'; + put 'put ''bGluZS1wYXRoLTItLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0y''@;'; + put 'put ''Ni41OCwzMmgtMThhMSwxLDAsMSwwLDAsMmgxOGExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNC43Miw5Ljg3YTIuMjUsMi4yNSwwLDAsMS0uNDcsMS43NywxNiwxNiwwLDAsMCw0LjkzLDUu''@;'; + put 'put ''MjNjLjM0LjIzLjY5LjQzLDEsLjYzYTIuMjgsMi4yOCwwLDAsMSwyLjU4LS41NywxNi45LDE2LjksMCwwLDAsMy4xMS03QTE3LDE3LDAsMCwwLDE0LjcyLDkuODdaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE3Ljc1''@;'; + put 'put ''LDJhMTQsMTQsMCwwLDAtMTQsMTRjMCwuNDUsMCwuODkuMDcsMS4zM2wwLDBoMEExNCwxNCwwLDEsMCwxNy43NSwyWk0yOC4xLDIxLjA5YTE3LjQxLDE3LjQxLDAsMCwxLTQuMzItLjU2LDIuMjksMi4yOSwwLDAsMS0zLC42MiwxOC40MywxOC40MywwLDAsMS03LDMuNSwyLjM0LDIuMzQsMCww''@;'; + put 'put ''LDEtMS41NywxLjc5bC0uMjkuMDZhMTEuOTMsMTEuOTMsMCwwLDEtMy4zOS0yLjhsLjY2LDBhMi4zMywyLjMzLDAsMCwxLDQuMzctLjU4QTE2Ljk0LDE2Ljk0LDAsMCwwLDE5Ljc4LDIwYTIuMzIsMi4zMiwwLDAsMS0uMTgtMS4xN2MtLjQyLS4yNC0uODQtLjQ5LTEuMjUtLjc2QTE3LjUzLDE3''@;'; + put 'put ''LjUzLDAsMCwxLDEzLDEyLjQ3YTIuMzEsMi4zMSwwLDAsMS0yLjI4LS42MywyNy4zMSwyNy4zMSwwLDAsMC01LDQuNzRjMC0uMiwwLS4zOSwwLS41N2ExMiwxMiwwLDAsMSwuMTQtMS43MywxOC43NSwxOC43NSwwLDAsMSw0LjItMy44LDIuMjgsMi4yOCwwLDAsMSwxLjEtMi4yNWMtLjEyLS40''@;'; + put 'put ''My0uMjQtLjg2LS4zMy0xLjMsMC0uMTQsMC0uMjktLjExLS42NGExMiwxMiwwLDAsMSwxLjM3LS44N2MuMS41OS4xNC45LjIxLDEuMjFzLjIuODUuMzIsMS4yN2wuMjUsMEEyLjMzLDIuMzMsMCwwLDEsMTQsOC41M2ExOC41MSwxOC41MSwwLDAsMSwxMi4xMS0uMDdjMC0uMzIsMC0uNjUsMC0x''@;'; + put 'put ''aDBhMTIsMTIsMCwwLDEsMi42MiwzLjg1aDBxLS43My0uNDMtMS40OC0uNzhhMTguNCwxOC40LDAsMCwxLTMuMzksNy4zNywyLjMzLDIuMzMsMCwwLDEsLjMzLDEuMTksMjIsMjIsMCwwLDAsNSwuNDUsMTEuODgsMTEuODgsMCwwLDEtLjYxLDEuNTNaIiBjbGFzcz0iY2xyLWktc29saWQgY2xy''@;'; + put 'put ''LWktc29saWQtcGF0aC0zIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2LjU4LDMyaC0xOGExLDEsMCwxLDAsMCwyaDE4YTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBh''@;'; + put 'put ''dGggZD0iTTMxLjczLDE1LjRIMjUuNTZhMTguODcsMTguODcsMCwwLDEtMS42MiwyLjUyLDIuMzMsMi4zMywwLDAsMSwuMzMsMS4xOSwyMiwyMiwwLDAsMCw1LC40NSwxMS44OCwxMS44OCwwLDAsMS0uNjEsMS41M0gyOC4xYTE3LjQxLDE3LjQxLDAsMCwxLTQuMzItLjU2LDIuMjksMi4yOSww''@;'; + put 'put ''LDAsMS0zLC42MiwxOC40MywxOC40MywwLDAsMS03LDMuNSwyLjM0LDIuMzQsMCwwLDEtMS41NywxLjc5bC0uMjkuMDZhMTEuOTMsMTEuOTMsMCwwLDEtMy4zOS0yLjhsLjY2LDBhMi4zMywyLjMzLDAsMCwxLDQuMzctLjU4QTE2Ljk0LDE2Ljk0LDAsMCwwLDE5Ljc4LDIwYTIuMzIsMi4zMiww''@;'; + put 'put ''LDAsMS0uMTgtMS4xN2MtLjQyLS4yNC0uODQtLjQ5LTEuMjUtLjc2QTE3LjUzLDE3LjUzLDAsMCwxLDEzLDEyLjQ3YTIuMzEsMi4zMSwwLDAsMS0yLjI4LS42MywyNy4zMSwyNy4zMSwwLDAsMC01LDQuNzRjMC0uMiwwLS4zOSwwLS41N2ExMiwxMiwwLDAsMSwuMTQtMS43MywxOC43NSwxOC43''@;'; + put 'put ''NSwwLDAsMSw0LjItMy44LDIuMjgsMi4yOCwwLDAsMSwxLjEtMi4yNWMtLjEyLS40My0uMjQtLjg2LS4zMy0xLjMsMC0uMTQsMC0uMjktLjExLS42NGExMiwxMiwwLDAsMSwxLjM3LS44N2MuMS41OS4xNC45LjIxLDEuMjFzLjIuODUuMzIsMS4yN2wuMjUsMEEyLjMzLDIuMzMsMCwwLDEsMTQs''@;'; + put 'put ''OC41M2ExOC41OSwxOC41OSwwLDAsMSw2LjM5LTFMMjMsM0ExNCwxNCwwLDAsMCwzLjc1LDE2YzAsLjQ1LDAsLjg5LjA3LDEuMzNsMCwwaDBBMTQsMTQsMCwwLDAsMzEuNzYsMTZDMzEuNzYsMTUuOCwzMS43NCwxNS42LDMxLjczLDE1LjRaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQg''@;'; + put 'put ''Y2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE0LjI2LDExLjY0YTE2LDE2LDAsMCwwLDQuOTMsNS4yM2MuMzQuMjMuNjkuNDMsMSwuNjNhMi4yOCwyLjI4LDAsMCwxLDIuNTgtLjU3LDE3LjI5LDE3LjI5LDAsMCwwLDEtMS41NGgtMS42QTMu''@;'; + put 'put ''NjgsMy42OCwwLDAsMSwxOSw5Ljg5TDE5LjU2LDlhMTcuMDgsMTcuMDgsMCwwLDAtNC44NC44OCwyLjI1LDIuMjUsMCwwLDEtLjQ3LDEuNzdaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0zLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0i''@;'; + put 'put ''TTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTQt''@;'; + put 'put ''LWFsZXJ0ZWQgY2xyLWktYWxlcnQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuNTgsMzJoLTE4YTEsMSwwLDEsMCwwLDJoMThhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8''@;'; + put 'put ''cGF0aCBkPSJNMzEuNSwxMy4zNWE3LjU0LDcuNTQsMCwwLDEtMS41LjE1LDcuNDYsNy40NiwwLDAsMS0zLjI4LS43NiwxOC41OSwxOC41OSwwLDAsMS0yLjc4LDUuMTgsMi4zMywyLjMzLDAsMCwxLC4zMywxLjE5LDIyLDIyLDAsMCwwLDUsLjQ1LDExLjg4LDExLjg4LDAsMCwxLS42MSwxLjUz''@;'; + put 'put ''SDI4LjFhMTcuNDEsMTcuNDEsMCwwLDEtNC4zMi0uNTYsMi4yOSwyLjI5LDAsMCwxLTMsLjYyLDE4LjQzLDE4LjQzLDAsMCwxLTcsMy41LDIuMzQsMi4zNCwwLDAsMS0xLjU3LDEuNzlsLS4yOS4wNmExMS45MywxMS45MywwLDAsMS0zLjM5LTIuOGwuNjYsMGEyLjMzLDIuMzMsMCwwLDEsNC4z''@;'; + put 'put ''Ny0uNThBMTYuOTQsMTYuOTQsMCwwLDAsMTkuNzgsMjBhMi4zMiwyLjMyLDAsMCwxLS4xOC0xLjE3Yy0uNDItLjI0LS44NC0uNDktMS4yNS0uNzZBMTcuNTMsMTcuNTMsMCwwLDEsMTMsMTIuNDdhMi4zMSwyLjMxLDAsMCwxLTIuMjgtLjYzLDI3LjMxLDI3LjMxLDAsMCwwLTUsNC43NGMwLS4y''@;'; + put 'put ''LDAtLjM5LDAtLjU3YTEyLDEyLDAsMCwxLC4xNC0xLjczLDE4Ljc1LDE4Ljc1LDAsMCwxLDQuMi0zLjgsMi4yOCwyLjI4LDAsMCwxLDEuMS0yLjI1Yy0uMTItLjQzLS4yNC0uODYtLjMzLTEuMywwLS4xNCwwLS4yOS0uMTEtLjY0YTEyLDEyLDAsMCwxLDEuMzctLjg3Yy4xLjU5LjE0LjkuMjEs''@;'; + put 'put ''MS4yMXMuMi44NS4zMiwxLjI3bC4yNSwwQTIuMzMsMi4zMywwLDAsMSwxNCw4LjUzYTE4LjU2LDE4LjU2LDAsMCwxLDguNjUtLjg3LDcuNDUsNy40NSwwLDAsMSwuNDEtNC41OUExNCwxNCwwLDAsMCwzLjc1LDE2YzAsLjQ1LDAsLjg5LjA3LDEuMzNsMCwwaDBhMTQsMTQsMCwxLDAsMjcuNjgt''@;'; + put 'put ''NFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTQuNzIsOS44N2EyLjI1LDIuMjUsMCwwLDEtLjQ3LDEuNzcsMTYsMTYsMCwwLDAsNC45Myw1LjIzYy4zNC4yMy42OS40MywxLC42M2EyLjI4''@;'; + put 'put ''LDIuMjgsMCwwLDEsMi41OC0uNTcsMTcsMTcsMCwwLDAsMi42MS01LDcuNTIsNy41MiwwLDAsMS0yLjE2LTIuNjdBMTcsMTcsMCwwLDAsMTQuNzIsOS44N1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2ly''@;'; + put 'put ''Y2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtNC0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICcpLGUuQ2xyU2hhcGVOZXR3b3JrU2V0dGluZ3M9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTEwLjg1''@;'; + put 'put ''LDI3LjQ0YTIuMjksMi4yOSwwLDAsMCwxLjc0LTEuNjhjLjU0LS4xNCwxLjA2LS4zMiwxLjU5LS41MXYtMS4yYTIuNzcsMi43NywwLDAsMSwuMDYtLjUxLDE3LjQ0LDE3LjQ0LDAsMCwxLTEuODIuNjIsMi4yOCwyLjI4LDAsMCwwLTQuMjguNjNsLS40NSwwaDBhMTEuOTMsMTEuOTMsMCwwLDEt''@;'; + put 'put ''Mi44OC03LjI3LDE3Ljc5LDE3Ljc5LDAsMCwxLDUtNC43MiwyLjIzLDIuMjMsMCwwLDAsMi4yOS41NiwxOC41MiwxOC41MiwwLDAsMCw0LjQ3LDUsMi43NCwyLjc0LDAsMCwxLC4yMS0uMjRsLjk1LS45MWExNi45LDE2LjksMCwwLDEtNC4zNS00Ljc5LDIuMjcsMi4yNywwLDAsMCwuMzUtMS4y''@;'; + put 'put ''YzAtLjA3LDAtLjE0LDAtLjIyQTE3LjY5LDE3LjY5LDAsMCwxLDI1LDExYTE3LjQ5LDE3LjQ5LDAsMCwxLTEuMTUsMy4zNGwuMTksMGgxLjU2YTE5LDE5LDAsMCwwLC45MS0yLjcyYy40My4xOS44NC40MSwxLjI2LjY0YTExLjk0LDExLjk0LDAsMCwxLDEsNC4wOWwwLDBBMi43NywyLjc3LDAs''@;'; + put 'put ''MCwxLDMwLDE2YTIuNzMsMi43MywwLDAsMSwuNjguMUExNCwxNCwwLDEsMCwxNi4wOCwzMWEyLjcyLDIuNzIsMCwwLDEsMC0yQTExLjkzLDExLjkzLDAsMCwxLDEwLjg1LDI3LjQ0Wk0xNi43Niw1YTEyLDEyLDAsMCwxLDguNjEsMy42NmMwLC4yNSwwLC41MS0uMDguNzZhMTkuMjEsMTkuMjEs''@;'; + put 'put ''MCwwLDAtMTIuMzUuMTFBMi4yOCwyLjI4LDAsMCwwLDExLjc0LDlhMTcsMTcsMCwwLDEtLjYxLTIuNTNBMTEuOTIsMTEuOTIsMCwwLDEsMTYuNzYsNVpNOS42Niw3LjM2YTE4LjcyLDE4LjcyLDAsMCwwLC40OSwxLjkyLDIuMjgsMi4yOCwwLDAsMC0xLjA3LDEuOTNzMCwuMSwwLC4xNUExOS40''@;'; + put 'put ''NSwxOS40NSwwLDAsMCw1LDE0Ljc5LDEyLDEyLDAsMCwxLDkuNjYsNy4zNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI1LDIxLjE5QTMuODQsMy44NCwwLDEsMCwyOC44OCwyNSwzLjg3LDMuODcsMCwwLDAs''@;'; + put 'put ''MjUsMjEuMTlabTAsNi4wOEEyLjI0LDIuMjQsMCwxLDEsMjcuMjgsMjUsMi4yNiwyLjI2LDAsMCwxLDI1LDI3LjI3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzQuMTcsMjQuMTRhMS4xNCwxLjE0LDAsMCww''@;'; + put 'put ''LS43LTEuMWwtMS41Ni0uNDZxLS4xMS0uMzItLjI2LS42M2wuNzItMS4zM2ExLjE0LDEuMTQsMCwwLDAtLjIxLTEuMzRsLTEuMzQtMS4zMmExLjE0LDEuMTQsMCwwLDAtMS4zNC0uMmwtMS4zNC43MWE3LjI4LDcuMjgsMCwwLDAtLjY3LS4yOEwyNywxNi43MWExLjE0LDEuMTQsMCwwLDAtMS4w''@;'; + put 'put ''OC0uNzZIMjRhMS4xNCwxLjE0LDAsMCwwLTEuMDguOGwtLjQ0LDEuNDNhNy4zMiw3LjMyLDAsMCwwLS42OC4yOGwtMS4zMi0uN2ExLjE0LDEuMTQsMCwwLDAtMS4zMy4xOWwtMS4zNywxLjMxYTEuMTQsMS4xNCwwLDAsMC0uMjEsMS4zNWwuNywxLjI4cS0uMTYuMzItLjI4LjY1TDE2LjU4LDIz''@;'; + put 'put ''YTEuMTMsMS4xMywwLDAsMC0uODEsMS4wOXYxLjg3QTEuMTQsMS4xNCwwLDAsMCwxNi41OSwyN2wxLjQ3LjQ0cS4xMi4zMi4yOC42NGwtLjcyLDEuMzVhMS4xNCwxLjE0LDAsMCwwLC4yLDEuMzVsMS4zNCwxLjMyYTEuMTQsMS4xNCwwLDAsMCwxLjM0LjJsMS4zNy0uNzJxLjMxLjE0LjYzLjI2''@;'; + put 'put ''bC40NCwxLjQ3YTEuMTQsMS4xNCwwLDAsMCwxLjA5LjhoMS45QTEuMTQsMS4xNCwwLDAsMCwyNywzMy4zMWwuNDQtMS40N2MuMjEtLjA3LjQyLS4xNi42Mi0uMjVsMS4zOC43M2ExLjE0LDEuMTQsMCwwLDAsMS4zMy0uMmwxLjM0LTEuMzJhMS4xNCwxLjE0LDAsMCwwLC4yMS0xLjM1bC0uNzMt''@;'; + put 'put ''MS4zNHEuMTQtLjMuMjUtLjZsMS41LS40NEExLjEzLDEuMTMsMCwwLDAsMzQuMTcsMjZabS0xLjYsMS41LTIsLjU4LS4xMi40MkE1LjU1LDUuNTUsMCwwLDEsMzAsMjcuNzNsLS4yMS4zOCwxLDEuNzktLjg2Ljg0LTEuODItMS0uMzcuMmE1Ljc4LDUuNzgsMCwwLDEtMS4xMi40NmwtLjQyLjEy''@;'; + put 'put ''LS41OSwySDI0LjM4bC0uNTktMS45NS0uNDItLjEyQTUuODYsNS44NiwwLDAsMSwyMi4yNCwzMGwtLjM3LS4yLTEuODEsMS0uODYtLjg1LDEtMS44Mi0uMjItLjM4YTUuNiw1LjYsMCwwLDEtLjQ5LTEuMTNsLS4xMy0uNDEtMS45NS0uNThWMjQuNDJsMS45NC0uNTguMTItLjQxYTUuNTMsNS41''@;'; + put 'put ''MywwLDAsMSwuNDktMS4xNGwuMjItLjM5LTEtMS43My44Ny0uODQsMS43Ny45NC4zOC0uMjFhNS44LDUuOCwwLDAsMSwxLjE3LS40OWwuNDEtLjEyLjU5LTEuOTFoMS4yM2wuNTgsMS45LjQxLjEyYTUuNzksNS43OSwwLDAsMSwxLjE2LjQ4bC4zOC4yMSwxLjgtLjk1Ljg2Ljg1LTEsMS43Ny4y''@;'; + put 'put ''MS4zOGE1LjUzLDUuNTMsMCwwLDEsLjQ3LDEuMTNsLjEyLjQyLDEuOTMuNTdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zNCwyMy42MywzMiwyM2E3LjA2LDcuMDYsMCwwLDAtLjU4LTEuNDFsMS0xLjg2YS4z''@;'; + put 'put ''Ny4zNywwLDAsMC0uMDctLjQ0TDMwLjksMTcuODZhLjM3LjM3LDAsMCwwLS40NC0uMDdsLTEuODUsMWE3LDcsMCwwLDAtMS40My0uNjFsLS42MS0yYS4zNy4zNywwLDAsMC0uMzYtLjI1aC0yYS4zNy4zNywwLDAsMC0uMzUuMjZsLS42MSwyYTcsNywwLDAsMC0xLjQ0LjYxTDIwLDE3LjhhLjM3''@;'; + put 'put ''LjM3LDAsMCwwLS40NC4wN0wxOCwxOS4zMWEuMzcuMzcsMCwwLDAtLjA3LjQ0bDEsMS44MkE3LDcsMCwwLDAsMTguMzUsMjNsLTIsLjYxYS4zNy4zNywwLDAsMC0uMjYuMzV2MmEuMzcuMzcsMCwwLDAsLjI2LjM1bDIsLjYxQTcsNywwLDAsMCwxOSwyOC4zN2wtMSwxLjlhLjM3LjM3LDAsMCww''@;'; + put 'put ''LC4wNy40NGwxLjQ1LDEuNDVhLjM3LjM3LDAsMCwwLC40NC4wN2wxLjg3LTFhNy4wNiw3LjA2LDAsMCwwLDEuMzkuNTdsLjYxLDJhLjM3LjM3LDAsMCwwLC4zNS4yNmgyYS4zNy4zNywwLDAsMCwuMzUtLjI2bC42MS0yYTcsNywwLDAsMCwxLjM4LS41N2wxLjg5LDFhLjM3LjM3LDAsMCwwLC40''@;'; + put 'put ''NC0uMDdsMS40NS0xLjQ1YS4zNy4zNywwLDAsMCwuMDctLjQ0bC0xLTEuODhBNyw3LDAsMCwwLDMxLjk1LDI3bDItLjYxYS4zNy4zNywwLDAsMCwuMjYtLjM1VjI0QS4zNy4zNywwLDAsMCwzNCwyMy42M1ptLTguODMsNC43MkEzLjMzLDMuMzMsMCwxLDEsMjguNTMsMjUsMy4zMywzLjMzLDAs''@;'; + put 'put ''MCwxLDI1LjE5LDI4LjM0WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMC44NSwyNy40NGEyLjI5LDIuMjksMCwwLDAsMS43NC0xLjY4LDE5LjcxLDE5LjcxLDAsMCwwLDEuODktLjZWMjMuOTVhMiwyLDAsMCwxLC4w''@;'; + put 'put ''OS0uNTUsMTcuNDIsMTcuNDIsMCwwLDEtMi4xNy43OCwyLjI4LDIuMjgsMCwwLDAtNC4yOC42M2wtLjQ1LDBoMGExMS45MywxMS45MywwLDAsMS0yLjg4LTcuMjcsMTcuNzksMTcuNzksMCwwLDEsNS00LjcyLDIuMjMsMi4yMywwLDAsMCwyLjI5LjU2LDE4LjUyLDE4LjUyLDAsMCwwLDQuNjUs''@;'; + put 'put ''NS4wOSwxLjkzLDEuOTMsMCwwLDEsLjIzLS4zMmwuODktLjg3YTE2Ljg5LDE2Ljg5LDAsMCwxLTQuNDktNC44OSwyLjI3LDIuMjcsMCwwLDAsLjM1LTEuMmMwLS4wNywwLS4xNCwwLS4yMkExNy42OSwxNy42OSwwLDAsMSwyNSwxMWExNy40OSwxNy40OSwwLDAsMS0xLjE1LDMuMzUsMS45NCwx''@;'; + put 'put ''Ljk0LDAsMCwxLC4zMS0uMDVoMS40NWExOS4wNiwxOS4wNiwwLDAsMCwuOS0yLjdjLjQzLjE5Ljg0LjQxLDEuMjYuNjRhMTEuOTMsMTEuOTMsMCwwLDEsMSw0LjYzbDEtLjUxYTIsMiwwLDAsMSwuOTItLjIzaC4wOEExNCwxNCwwLDEsMCwxNi40NCwzMWExLjk0LDEuOTQsMCwwLDEsLjEyLTEu''@;'; + put 'put ''NDZsLjI4LS41M2gtLjA3QTExLjkxLDExLjkxLDAsMCwxLDEwLjg1LDI3LjQ0Wk0xNi43Niw1YTEyLDEyLDAsMCwxLDguNjEsMy42NmMwLC4yNSwwLC41MS0uMDguNzZhMTkuMjEsMTkuMjEsMCwwLDAtMTIuMzUuMTFBMi4yOCwyLjI4LDAsMCwwLDExLjc0LDlhMTcsMTcsMCwwLDEtLjYxLTIu''@;'; + put 'put ''NTNBMTEuOTIsMTEuOTIsMCwwLDEsMTYuNzYsNVpNOS42Niw3LjM2YTE4LjcyLDE4LjcyLDAsMCwwLC40OSwxLjkyLDIuMjgsMi4yOCwwLDAsMC0xLjA3LDEuOTNzMCwuMSwwLC4xNUExOS40NSwxOS40NSwwLDAsMCw1LDE0Ljc5LDEyLDEyLDAsMCwxLDkuNjYsNy4zNloiIGNsYXNzPSJjbHIt''@;'; + put 'put ''aS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+XG4gICAgICAgICcpLGUuQ2xyU2hhcGVOZXR3b3JrU3dpdGNoPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMy45MSwxOC40NywzMC43OCw4LjQxQTIsMiwwLDAsMCwyOC44Nyw3SDcuMTNBMiwyLDAsMCwwLDUuMjIsOC40MUwyLjA5''@;'; + put 'put ''LDE4LjQ4YTIsMiwwLDAsMC0uMDkuNTlWMjdhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjE5LjA2QTIsMiwwLDAsMCwzMy45MSwxOC40N1pNMzIsMjdINFYxOS4wNkw3LjEzLDlIMjguODdMMzIsMTkuMDZaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgt''@;'; + put 'put ''MSIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjcuMTIiIHk9IjIyIiB3aWR0aD0iMS44IiBoZWlnaHQ9IjMiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTIuMTIiIHk9IjIyIiB3aWR0aD0iMS44IiBoZWlnaHQ9''@;'; + put 'put ''IjMiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTcuMTEiIHk9IjIyIiB3aWR0aD0iMS44IiBoZWlnaHQ9IjMiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPlxuICAgICAgICAg''@;'; + put 'put ''ICAgPHJlY3QgeD0iMjIuMSIgeT0iMjIiIHdpZHRoPSIxLjgiIGhlaWdodD0iMyIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIyNy4xIiB5PSIyMiIgd2lkdGg9IjEuOCIgaGVpZ2h0PSIzIiBjbGFzcz0iY2xyLWkt''@;'; + put 'put ''b3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjYuMjMiIHk9IjE4IiB3aWR0aD0iMjMuNjkiIGhlaWdodD0iMS40IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNyIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9Ijcu''@;'; + put 'put ''MTIiIHk9IjIyIiB3aWR0aD0iMS44IiBoZWlnaHQ9IjMiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTIuMTIiIHk9IjIyIiB3aWR0aD0iMS44IiBoZWlnaHQ9IjMiIGNsYXNzPSJj''@;'; + put 'put ''bHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTcuMTEiIHk9IjIyIiB3aWR0aD0iMS44IiBoZWlnaHQ9IjMiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0z''@;'; + put 'put ''LS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMjIuMSIgeT0iMjIiIHdpZHRoPSIxLjgiIGhlaWdodD0iMyIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIyNy4xIiB5''@;'; + put 'put ''PSIyMiIgd2lkdGg9IjEuOCIgaGVpZ2h0PSIzIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjYuMjMiIHk9IjE4IiB3aWR0aD0iMjMuNjkiIGhlaWdodD0iMS40IiBjbGFzcz0iY2xy''@;'; + put 'put ''LWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNi0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy45MSwxOC40NywzMywxNS40SDMwLjg2TDMyLDE5LjA2VjI3SDRWMTkuMDZMNy4xMyw5SDE5LjU2bDEuMTUtMkg3LjEzQTIsMiwwLDAsMCw1LjIyLDgu''@;'; + put 'put ''NDFMMi4wOSwxOC40OGEyLDIsMCwwLDAtLjA5LjU5VjI3YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYxOS4wNkEyLDIsMCwwLDAsMzMuOTEsMTguNDdaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNy0tYWxlcnRlZCIgLz5cbiAgICAg''@;'; + put 'put ''ICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiICBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBj''@;'; + put 'put ''bHItaS1vdXRsaW5lLXBhdGgtOC0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjcuMTIiIHk9IjIyIiB3aWR0aD0iMS44IiBoZWlnaHQ9IjMiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgLz5c''@;'; + put 'put ''biAgICAgICAgICAgIDxyZWN0IHg9IjEyLjEyIiB5PSIyMiIgd2lkdGg9IjEuOCIgaGVpZ2h0PSIzIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNy4xMSIgeT0iMjIiIHdpZHRoPSIx''@;'; + put 'put ''LjgiIGhlaWdodD0iMyIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMjIuMSIgeT0iMjIiIHdpZHRoPSIxLjgiIGhlaWdodD0iMyIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBj''@;'; + put 'put ''bHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMjcuMSIgeT0iMjIiIHdpZHRoPSIxLjgiIGhlaWdodD0iMyIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAg''@;'; + put 'put ''PHJlY3QgeD0iNi4yMyIgeT0iMTgiIHdpZHRoPSIyMy42OSIgaGVpZ2h0PSIxLjQiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTYtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy45MSwxOC40N2wtMS42NS01LjMyYTcuNDksNy40''@;'; + put 'put ''OSwwLDAsMS0yLC4zM0wzMiwxOS4wNlYyN0g0VjE5LjA2TDcuMTMsOWgxNmE3LjQ1LDcuNDUsMCwwLDEtLjU1LTJINy4xM0EyLDIsMCwwLDAsNS4yMiw4LjQxTDIuMDksMTguNDhhMiwyLDAsMCwwLS4wOS41OVYyN2EyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMTkuMDZBMiwyLDAs''@;'; + put 'put ''MCwwLDMzLjkxLDE4LjQ3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNy0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5l''@;'; + put 'put ''LXBhdGgtOC0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLjkxLDE4LjQ3LDMwLjc4LDguNDFBMiwyLDAsMCwwLDI4Ljg3LDdINy4xM0EyLDIsMCwwLDAsNS4yMiw4LjQxTDIuMDksMTguNDhhMiwyLDAsMCwwLS4wOS41OVYyN2EyLDIsMCwwLDAsMiwy''@;'; + put 'put ''SDMyYTIsMiwwLDAsMCwyLTJWMTkuMDZBMiwyLDAsMCwwLDMzLjkxLDE4LjQ3Wk04LjkyLDI1SDcuMTJWMjJoMS44Wm01LDBoLTEuOFYyMmgxLjhabTUsMGgtMS44VjIyaDEuOFptNSwwSDIyLjFWMjJoMS44Wm01LDBIMjcuMVYyMmgxLjhaTTMxLDE5LjRINVYxOEgzMVoiIGNsYXNzPSJjbHIt''@;'; + put 'put ''aS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMsMTUuNEgyMi4yM0EzLjY4LDMuNjgsMCwwLDEsMTksOS44OUwyMC43MSw3SDcuMTNBMiwyLDAsMCwwLDUuMjIsOC40MUwyLjA5LDE4LjQ4YTIsMiwwLDAsMC0uMDkuNTlWMjdhMiwyLDAsMCww''@;'; + put 'put ''LDIsMkgzMmEyLDIsMCwwLDAsMi0yVjE5LjA2YTIsMiwwLDAsMC0uMDktLjU5Wk04LjkyLDI1SDcuMTJWMjJoMS44Wm01LDBoLTEuOFYyMmgxLjhabTUsMGgtMS44VjIyaDEuOFptNSwwSDIyLjFWMjJoMS44Wm01LDBIMjcuMVYyMmgxLjhaTTMxLDE5LjRINVYxOEgzMVoiIGNsYXNzPSJjbHIt''@;'; + put 'put ''aS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwx''@;'; + put 'put ''LjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiAgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMi4yNiwxMy4xNUE3LjQ5LDcuNDksMCwwLDEsMjIuNTcsN0g3LjEzQTIsMiww''@;'; + put 'put ''LDAsMCw1LjIyLDguNDFMMi4wOSwxOC40OGEyLDIsMCwwLDAtLjA5LjU5VjI3YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYxOS4wNmEyLDIsMCwwLDAtLjA5LS41OVpNOC45MiwyNUg3LjEyVjIyaDEuOFptNSwwaC0xLjhWMjJoMS44Wm01LDBoLTEuOFYyMmgxLjhabTUsMEgyMi4x''@;'; + put 'put ''VjIyaDEuOFptNSwwSDI3LjFWMjJoMS44Wk0zMSwxOS40SDVWMThIMzFaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1zb2xpZC0t''@;'; + put 'put ''YmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPlxuICAgICAgICAnKSxlLkNsclNoYXBlUm91dGVyPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xOCwxNC44N2w1LjExLTUuMTRhMSwxLDAsMSwwLTEuNDItMS40MUwxOSwxMVYzLjMzYTEsMSwwLDAs''@;'; + put 'put ''MC0yLDBWMTFMMTQuMzEsOC4zMmExLDEsMCwxLDAtMS40MiwxLjQxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMjEuMTNsLTUuMTEsNS4xNGExLDEsMCwwLDAsMS40MiwxLjQxTDE3LDI1djcuNjlhMSwx''@;'; + put 'put ''LDAsMCwwLDIsMFYyNWwyLjY5LDIuNzFhMSwxLDAsMCwwLDEuNDItMS40MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4Ljg1LDEyLjg5YTEsMSwwLDAsMC0xLjQxLDEuNDJMMzAuMTUsMTdIMjIuNDZhMSwx''@;'; + put 'put ''LDAsMSwwLDAsMmg3LjY5bC0yLjcxLDIuNjlhMSwxLDAsMCwwLDEuNDEsMS40MkwzNCwxOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTUuODUsMTloNy42OWExLDEsMCwwLDAsMC0ySDUuODVsMi43MS0yLjY5''@;'; + put 'put ''YTEsMSwwLDEsMC0xLjQxLTEuNDJMMiwxOGw1LjE0LDUuMTFhMSwxLDAsMSwwLDEuNDEtMS40MloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDIxLjEzbC01LjExLDUuMTRhMSwxLDAsMCwwLDEuNDIsMS40''@;'; + put 'put ''MUwxNywyNXY3LjY5YTEsMSwwLDAsMCwyLDBWMjVsMi42OSwyLjcxYTEsMSwwLDAsMCwxLjQyLTEuNDFaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik01Ljg1LDE5aDcuNjlhMSwx''@;'; + put 'put ''LDAsMCwwLDAtMkg1Ljg1bDIuNzEtMi42OWExLDEsMCwxLDAtMS40MS0xLjQyTDIsMThsNS4xNCw1LjExYTEsMSwwLDEsMCwxLjQxLTEuNDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRo''@;'; + put 'put ''IGQ9Ik0zMS4zOCwxNS40SDI4LjU0TDMwLjE1LDE3SDIyLjQ2YTEsMSwwLDEsMCwwLDJoNy42OWwtMi43MSwyLjY5YTEsMSwwLDAsMCwxLjQxLDEuNDJMMzQsMThaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCIgLz5cbiAgICAg''@;'; + put 'put ''ICAgICAgIDxwYXRoIGQ9Ik0xOCwxNC44N2wxLjE1LTEuMTYtLjEtLjE1QTMuNjgsMy42OCwwLDAsMSwxOSwxMFYzLjMzYTEsMSwwLDAsMC0yLDBWMTFMMTQuMzEsOC4zMmExLDEsMCwxLDAtMS40MiwxLjQxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1w''@;'; + put 'put ''YXRoLTQtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiAgY2xhc3M9''@;'; + put 'put ''ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMTQuODdsNS4xMS01LjE0YTEsMSwwLDEsMC0xLjQyLTEuNDFMMTksMTFWMy4zM2ExLDEsMCwwLDAtMiwwVjExTDE0LjMx''@;'; + put 'put ''LDguMzJhMSwxLDAsMSwwLTEuNDIsMS40MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwyMS4xM2wtNS4xMSw1LjE0YTEsMSwwLDAsMCwxLjQyLDEuNDFMMTcsMjV2Ny42OWEx''@;'; + put 'put ''LDEsMCwwLDAsMiwwVjI1bDIuNjksMi43MWExLDEsMCwwLDAsMS40Mi0xLjQxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4Ljg1LDEyLjg5YTEsMSwwLDAsMC0xLjQxLDEuNDJM''@;'; + put 'put ''MzAuMTUsMTdIMjIuNDZhMSwxLDAsMSwwLDAsMmg3LjY5bC0yLjcxLDIuNjlhMSwxLDAsMCwwLDEuNDEsMS40MkwzNCwxOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik01Ljg1LDE5''@;'; + put 'put ''aDcuNjlhMSwxLDAsMCwwLDAtMkg1Ljg1bDIuNzEtMi42OWExLDEsMCwxLDAtMS40MS0xLjQyTDIsMThsNS4xNCw1LjExYTEsMSwwLDEsMCwxLjQxLTEuNDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQiIC8+XG4gICAgICAgICAg''@;'; + put 'put ''ICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiICBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC01LS1iYWRnZWQgY2xyLWktYmFkZ2UiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMS42N2ExNiwxNiwwLDEsMCwxNiwxNkExNiwxNiwwLDAs''@;'; + put 'put ''MCwxOCwxLjY3Wk0xMy44Niw5LjkyYS44LjgsMCwwLDEsMS4xMywwbDIuMjEsMi4xOVY1LjkzYS44LjgsMCwwLDEsMS42LDB2Ni4xOEwyMSw5LjkyYS44LjgsMCwxLDEsMS4xMywxLjE0TDE4LDE1LjE1bC00LjE0LTQuMUEuOC44LDAsMCwxLDEzLjg2LDkuOTJaTTEwLjMyLDIxLjc0YS44Ljgs''@;'; + put 'put ''MCwwLDEtMS4xMywwTDUsMTcuNjdsNC4xOS00LjA5YS44LjgsMCwxLDEsMS4xMiwxLjE0bC0yLjIsMi4xNGg2LjI3YS44LjgsMCwwLDEsMCwxLjZIOC4xMWwyLjIsMi4xNUEuOC44LDAsMCwxLDEwLjMyLDIxLjc0Wm0xMS44MiwzLjY3YS44LjgsMCwwLDEtMS4xMywwTDE4LjgsMjMuMjNWMjku''@;'; + put 'put ''NGEuOC44LDAsMCwxLTEuNiwwVjIzLjIzTDE1LDI1LjQyYS44LjgsMCwxLDEtMS4xMy0xLjE0TDE4LDIwLjE4bDQuMTQsNC4xQS44LjgsMCwwLDEsMjIuMTQsMjUuNDFabTQuNjctMy42NmEuOC44LDAsMSwxLTEuMTItMS4xNGwyLjItMi4xNUgyMS42M2EuOC44LDAsMCwxLDAtMS42aDYuMjds''@;'; + put 'put ''LTIuMi0yLjE0YS44LjgsMCwxLDEsMS4xMi0xLjE0TDMxLDE3LjY3WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy44MiwxNS4zOUgyOC42OEwzMSwxNy42N2wtNC4xOSw0LjA5YS44LjgsMCwxLDEtMS4xMi0xLjE0''@;'; + put 'put ''bDIuMi0yLjE1SDIxLjYzYS44LjgsMCwwLDEsMC0xLjZoNi4yN2wtMS41LTEuNDdIMjIuMjNhMy42OCwzLjY4LDAsMCwxLTMtMS41MUwxOCwxNS4xNWwtNC4xNC00LjFBLjguOCwwLDEsMSwxNSw5LjkybDIuMjEsMi4xOVY1LjkzYS44LjgsMCwwLDEsMS42LDB2NC40OUEzLjY1LDMuNjUsMCww''@;'; + put 'put ''LDEsMTksOS44OWw0LjIyLTcuMzFBMTYsMTYsMCwxLDAsMzQsMTcuNjcsMTYsMTYsMCwwLDAsMzMuODIsMTUuMzlabS0yMy41LDYuMzVhLjguOCwwLDAsMS0xLjEzLDBMNSwxNy42N2w0LjE5LTQuMDlhLjguOCwwLDEsMSwxLjEyLDEuMTRsLTIuMiwyLjE0aDYuMjdhLjguOCwwLDAsMSwwLDEu''@;'; + put 'put ''Nkg4LjExbDIuMiwyLjE1QS44LjgsMCwwLDEsMTAuMzIsMjEuNzRabTExLjgyLDMuNjdhLjguOCwwLDAsMS0xLjEzLDBMMTguOCwyMy4yM1YyOS40YS44LjgsMCwwLDEtMS42LDBWMjMuMjNMMTUsMjUuNDJhLjguOCwwLDEsMS0xLjEzLTEuMTRMMTgsMjAuMThsNC4xNCw0LjFBLjguOCwwLDAs''@;'; + put 'put ''MSwyMi4xNCwyNS40MVoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCww''@;'; + put 'put ''LDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiAgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy4yMiwxMi43NkE3LjQ5LDcu''@;'; + put 'put ''NDksMCwwLDEsMjMuMzIsMi42YTE2LDE2LDAsMSwwLDkuOSwxMC4xN1pNMTMuODYsOS45MmEuOC44LDAsMCwxLDEuMTMsMGwyLjIxLDIuMTlWNS45M2EuOC44LDAsMCwxLDEuNiwwdjYuMThMMjEsOS45MmEuOC44LDAsMSwxLDEuMTMsMS4xNEwxOCwxNS4xNWwtNC4xNC00LjFBLjguOCwwLDAs''@;'; + put 'put ''MSwxMy44Niw5LjkyWk0xMC4zMiwyMS43NGEuOC44LDAsMCwxLTEuMTMsMEw1LDE3LjY3bDQuMTktNC4wOWEuOC44LDAsMSwxLDEuMTIsMS4xNGwtMi4yLDIuMTRoNi4yN2EuOC44LDAsMCwxLDAsMS42SDguMTFsMi4yLDIuMTVBLjguOCwwLDAsMSwxMC4zMiwyMS43NFptMTEuODIsMy42N2Eu''@;'; + put 'put ''OC44LDAsMCwxLTEuMTMsMEwxOC44LDIzLjIzVjI5LjRhLjguOCwwLDAsMS0xLjYsMFYyMy4yM0wxNSwyNS40MmEuOC44LDAsMSwxLTEuMTMtMS4xNEwxOCwyMC4xOGw0LjE0LDQuMUEuOC44LDAsMCwxLDIyLjE0LDI1LjQxWm00LjY3LTMuNjZhLjguOCwwLDEsMS0xLjEyLTEuMTRsMi4yLTIu''@;'; + put 'put ''MTVIMjEuNjNhLjguOCwwLDAsMSwwLTEuNmg2LjI3bC0yLjItMi4xNGEuOC44LDAsMSwxLDEuMTItMS4xNEwzMSwxNy42N1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2''@;'; + put 'put ''IiByPSI1IiAgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIC8+XG4gICAgICAgICcpLGUuQ2xyU2hhcGVWTT0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTEsNUgyNVY4aDJWNWEyLDIsMCwwLDAtMi0ySDExQTIs''@;'; + put 'put ''MiwwLDAsMCw5LDV2Ni44NWgyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAsMTBIMTd2Mmg4djZoMlYxMmgzVjI2SDIyVjE3YTIsMiwwLDAsMC0yLTJINmEyLDIsMCwwLDAtMiwyVjMxYTIsMiwwLDAsMCwy''@;'; + put 'put ''LDJIMjBhMiwyLDAsMCwwLDItMlYyOGg4YTIsMiwwLDAsMCwyLTJWMTJBMiwyLDAsMCwwLDMwLDEwWk02LDMxVjE3SDIwdjlIMTZWMjBIMTR2NmEyLDIsMCwwLDAsMiwyaDR2M1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBh''@;'; + put 'put ''dGggZD0iTTExLDVIMjEuODdMMjMsM0gxMUEyLDIsMCwwLDAsOSw1djYuODVoMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMjUuMDEiIHk9IjE1LjQiIHdpZHRoPSIxLjk5IiBo''@;'; + put 'put ''ZWlnaHQ9IjIuNiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAsMTUuNFYyNkgyMlYxN2EyLDIsMCwwLDAtMi0ySDZhMiwyLDAsMCwwLTIsMlYzMWEyLDIsMCwwLDAsMiwySDIw''@;'; + put 'put ''YTIsMiwwLDAsMCwyLTJWMjhoOGEyLDIsMCwwLDAsMi0yVjE1LjRaTTYsMzFWMTdIMjB2OUgxNlYyMEgxNHY2YTIsMiwwLDAsMCwyLDJoNHYzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0''@;'; + put 'put ''aCBkPSJNMTcsMTB2MmgxLjU3QTMuNjcsMy42NywwLDAsMSwxOSwxMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCww''@;'; + put 'put ''LDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC01LS1hbGVydGVkIGNsci1pLWFsZXJ0IiAvPlxuICAgICAg''@;'; + put 'put ''ICAgICAgPHBhdGggZD0iTTExLDVIMjIuNTdhNy40NSw3LjQ1LDAsMCwxLC41NS0ySDExQTIsMiwwLDAsMCw5LDV2Ni44NWgyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLDEz''@;'; + put 'put ''LjVoMFYyNkgyMlYxN2EyLDIsMCwwLDAtMi0ySDZhMiwyLDAsMCwwLTIsMlYzMWEyLDIsMCwwLDAsMiwySDIwYTIsMiwwLDAsMCwyLTJWMjhoOGEyLDIsMCwwLDAsMi0yVjEzLjIyQTcuNDksNy40OSwwLDAsMSwzMCwxMy41Wk02LDMxVjE3SDIwdjlIMTZWMjBIMTR2NmEyLDIsMCwwLDAsMiwy''@;'; + put 'put ''aDR2M1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNywxMmg4djZoMlYxMi44N0E3LjUyLDcuNTIsMCwwLDEsMjMuNjYsMTBIMTdaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFk''@;'; + put 'put ''Z2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiICBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQgY2xyLWktYmFkZ2UiIC8+XG4gICAgICAgICAg''@;'; + put 'put ''ICA8cGF0aCBkPSJNMTMuNTksMTJhMy42LDMuNiwwLDAsMSwzLjYtMy42SDI3VjVhMiwyLDAsMCwwLTItMkgxMUEyLDIsMCwwLDAsOSw1djguNGg0LjU5WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMCwxMEgxNy4x''@;'; + put 'put ''OWEyLDIsMCwwLDAtMiwydjEuNEgyMEEzLjYsMy42LDAsMCwxLDIzLjYsMTd2OEgyMlYxN2EyLDIsMCwwLDAtMi0ySDZhMiwyLDAsMCwwLTIsMlYzMWEyLDIsMCwwLDAsMiwySDIwYTIsMiwwLDAsMCwyLTJWMjkuNkgxNy4xOWEzLjYsMy42LDAsMCwxLTMuNi0zLjZWMjBoMS42djZhMiwyLDAs''@;'; + put 'put ''MCwwLDIsMkgzMGEyLDIsMCwwLDAsMi0yVjEyQTIsMiwwLDAsMCwzMCwxMFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTMuNTksMTJhMy42LDMuNiwwLDAsMSwzLjYtMy42aDIuNzJMMjMsM0gxMUEyLDIsMCwwLDAs''@;'; + put 'put ''OSw1djguNGg0LjU5WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNy4xOSwxMGEyLDIsMCwwLDAtMiwydjEuNEgxOUEzLjY4LDMuNjgsMCwwLDEsMTksMTBaIiBjbGFzcz0iY2xyLWkt''@;'; + put 'put ''c29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIzLjIxLDE1LjRBMy41NSwzLjU1LDAsMCwxLDIzLjYsMTd2OEgyMlYxN2EyLDIsMCwwLDAtMi0ySDZhMiwyLDAsMCwwLTIsMlYzMWEyLDIsMCwwLDAsMiwySDIwYTIs''@;'; + put 'put ''MiwwLDAsMCwyLTJWMjkuNkgxNy4xOWEzLjYsMy42LDAsMCwxLTMuNi0zLjZWMjBoMS42djZhMiwyLDAsMCwwLDIsMkgzMGEyLDIsMCwwLDAsMi0yVjE1LjRaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0zLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAg''@;'; + put 'put ''PHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xp''@;'; + put 'put ''ZC1wYXRoLTQtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTMuNTksMTJhMy42LDMuNiwwLDAsMSwzLjYtMy42SDIyLjlBNy40NSw3LjQ1LDAsMCwxLDIzLjEzLDNIMTFBMiwyLDAsMCwwLDksNXY4LjRoNC41OVoiIGNsYXNzPSJjbHItaS1zb2xpZC0t''@;'; + put 'put ''YmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLDEzLjVBNy40OSw3LjQ5LDAsMCwxLDIzLjY2LDEwSDE3LjE5YTIsMiwwLDAsMC0yLDJ2MS40SDIwQTMuNiwzLjYsMCwwLDEsMjMuNiwxN3Y4SDIyVjE3YTIsMiwwLDAsMC0yLTJI''@;'; + put 'put ''NmEyLDIsMCwwLDAtMiwyVjMxYTIsMiwwLDAsMCwyLDJIMjBhMiwyLDAsMCwwLDItMlYyOS42SDE3LjE5YTMuNiwzLjYsMCwwLDEtMy42LTMuNlYyMGgxLjZ2NmEyLDIsMCwwLDAsMiwySDMwYTIsMiwwLDAsMCwyLTJWMTMuMjJBNy40OSw3LjQ5LDAsMCwxLDMwLDEzLjVaIiBjbGFzcz0iY2xy''@;'; + put 'put ''LWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPlxuICAg''@;'; + put 'put ''ICAgICAnKSxlLkNsclNoYXBlVk1XQXBwPSgwLGEuY2xySWNvblNWRykoJzxwb2x5Z29uIHBvaW50cz0iMjggMjIgMzAgMjIgMzAgMzAgMjIgMzAgMjIgMjggMjAgMjggMjAgMzIgMzIgMzIgMzIgMjAgMjggMjAgMjggMjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0''@;'; + put 'put ''aC0xIiAvPlxuICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSIxNCAzMCA2IDMwIDYgMjIgOCAyMiA4IDIwIDQgMjAgNCAzMiAxNiAzMiAxNiAyOCAxNCAyOCAxNCAzMCIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cG9seWdv''@;'; + put 'put ''biBwb2ludHM9IjggMTQgNiAxNCA2IDYgMTQgNiAxNCA4IDE2IDggMTYgNCA0IDQgNCAxNiA4IDE2IDggMTQiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPlxuICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSIyMCA0IDIwIDggMjIgOCAyMiA2IDMwIDYg''@;'; + put 'put ''MzAgMTQgMjggMTQgMjggMTYgMzIgMTYgMzIgNCAyMCA0IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjExIiB5PSIxMSIgd2lkdGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0''@;'; + put 'put ''bGluZS1wYXRoLTUiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxOSIgeT0iMTEiIHdpZHRoPSI2IiBoZWlnaHQ9IjYiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02IiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTEiIHk9IjE5IiB3aWR0aD0iNiIgaGVpZ2h0''@;'; + put 'put ''PSI2IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNyIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE5IiB5PSIxOSIgd2lkdGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTgiIC8+XG4gICAgICAgICAgICA8''@;'; + put 'put ''cG9seWdvbiBwb2ludHM9IjI4IDIyIDMwIDIyIDMwIDMwIDIyIDMwIDIyIDI4IDIwIDI4IDIwIDMyIDMyIDMyIDMyIDIwIDI4IDIwIDI4IDIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwb2x5''@;'; + put 'put ''Z29uIHBvaW50cz0iMTQgMzAgNiAzMCA2IDIyIDggMjIgOCAyMCA0IDIwIDQgMzIgMTYgMzIgMTYgMjggMTQgMjggMTQgMzAiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRz''@;'; + put 'put ''PSI4IDE0IDYgMTQgNiA2IDE0IDYgMTQgOCAxNiA4IDE2IDQgNCA0IDQgMTYgOCAxNiA4IDE0IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjExIiB5PSIxMSIgd2lkdGg9IjYiIGhl''@;'; + put 'put ''aWdodD0iNiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMSIgeT0iMTkiIHdpZHRoPSI2IiBoZWlnaHQ9IjYiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91''@;'; + put 'put ''dGxpbmUtcGF0aC01LS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTkiIHk9IjE5IiB3aWR0aD0iNiIgaGVpZ2h0PSI2IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNi0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9''@;'; + put 'put ''Ik0yNSwxNS40SDIyLjIzQTMuNjksMy42OSwwLDAsMSwxOSwxMy41NmwwLS4xVjE3aDZaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNy0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMjIuNDUgNCAyMCA0IDIwIDgg''@;'; + put 'put ''MjAuMTQgOCAyMi40NSA0IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtOC0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjI4IiB5PSIxNS40IiB3aWR0aD0iNCIgaGVpZ2h0PSIwLjYiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVy''@;'; + put 'put ''dGVkIGNsci1pLW91dGxpbmUtcGF0aC05LS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwy''@;'; + put 'put ''Ni44NSwxLjE0WiIgIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xMC0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMjggMjIgMzAgMjIgMzAgMzAgMjIgMzAgMjIgMjggMjAgMjggMjAgMzIgMzIg''@;'; + put 'put ''MzIgMzIgMjAgMjggMjAgMjggMjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMTQgMzAgNiAzMCA2IDIyIDggMjIgOCAyMCA0IDIwIDQgMzIgMTYgMzIgMTYgMjggMTQg''@;'; + put 'put ''MjggMTQgMzAiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iOCAxNCA2IDE0IDYgNiAxNCA2IDE0IDggMTYgOCAxNiA0IDQgNCA0IDE2IDggMTYgOCAxNCIgY2xhc3M9ImNs''@;'; + put 'put ''ci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTEiIHk9IjExIiB3aWR0aD0iNiIgaGVpZ2h0PSI2IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQi''@;'; + put 'put ''IC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMSIgeT0iMTkiIHdpZHRoPSI2IiBoZWlnaHQ9IjYiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE5IiB5PSIxOSIgd2lkdGg9IjYiIGhl''@;'; + put 'put ''aWdodD0iNiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNi0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIyLDZoLjVhNy40OSw3LjQ5LDAsMCwxLC4yOC0ySDIwVjhoMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xy''@;'; + put 'put ''LWktb3V0bGluZS1wYXRoLTctLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMCwxMy41VjE0SDI4djJoNFYxMy4yMkE3LjQ5LDcuNDksMCwwLDEsMzAsMTMuNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTgtLWJhZGdlZCIgLz5c''@;'; + put 'put ''biAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNSwxMS41OGE3LjUzLDcuNTMsMCwwLDEtLjU4LS41OEgxOXY2aDZaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC05LS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9''@;'; + put 'put ''IjUiICBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xMC0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPlxuICAgICAgICAnKSxlLkNsclNoYXBlQ2VydGlmaWNhdGU9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMyLDZINEEyLDIsMCwwLDAsMiw4VjI4''@;'; + put 'put ''YTIsMiwwLDAsMCwyLDJIMTlsLjU3LS43LjkzLTEuMTRMMjAuNDEsMjhINFY4SDMybDAsOC41NmE4LjQxLDguNDEsMCwwLDEsMiwxLjgxVjhBMiwyLDAsMCwwLDMyLDZaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9''@;'; + put 'put ''IjciIHk9IjEyIiB3aWR0aD0iMTciIGhlaWdodD0iMS42IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjciIHk9IjE2IiB3aWR0aD0iMTEiIGhlaWdodD0iMS42IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1v''@;'; + put 'put ''dXRsaW5lLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjciIHk9IjIzIiB3aWR0aD0iMTAiIGhlaWdodD0iMS42IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNy40NiwxNy4yM2E2LjM2LDYuMzYs''@;'; + put 'put ''MCwwLDAtNC40LDExbC0xLjk0LDIuMzcuOSwzLjYxLDMuNjYtNC40NmE2LjI2LDYuMjYsMCwwLDAsMy41NSwwbDMuNjYsNC40Ni45LTMuNjEtMS45NC0yLjM3YTYuMzYsNi4zNiwwLDAsMC00LjQtMTFabTAsMTAuNjhhNC4zMSw0LjMxLDAsMSwxLDQuMzctNC4zMUE0LjM1LDQuMzUsMCwwLDEs''@;'; + put 'put ''MjcuNDYsMjcuOTFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjciIHk9IjE2IiB3aWR0aD0iMTEiIGhlaWdodD0iMS42IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgt''@;'; + put 'put ''MS0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjciIHk9IjIzIiB3aWR0aD0iMTAiIGhlaWdodD0iMS42IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNy40Niwx''@;'; + put 'put ''Ny4yM2E2LjM2LDYuMzYsMCwwLDAtNC40LDExbC0xLjk0LDIuMzcuOSwzLjYxLDMuNjYtNC40NmE2LjI2LDYuMjYsMCwwLDAsMy41NSwwbDMuNjYsNC40Ni45LTMuNjEtMS45NC0yLjM3YTYuMzYsNi4zNiwwLDAsMC00LjQtMTFabTAsMTAuNjhhNC4zMSw0LjMxLDAsMSwxLDQuMzctNC4zMUE0''@;'; + put 'put ''LjM1LDQuMzUsMCwwLDEsMjcuNDYsMjcuOTFaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOSwxMy41NkEzLjY2LDMuNjYsMCwwLDEsMTguNTcsMTJIN3YxLjZIMTkuMDdaIiBj''@;'; + put 'put ''bGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy42OCwxNS40SDMydjEuMTZhOC40MSw4LjQxLDAsMCwxLDIsMS44MXYtM1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNs''@;'; + put 'put ''ci1pLW91dGxpbmUtcGF0aC01LS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTQsMjhWOEgyMC4xNGwxLjE1LTJINEEyLDIsMCwwLDAsMiw4VjI4YTIsMiwwLDAsMCwyLDJIMTlsLjU3LS43LjkzLTEuMTRMMjAuNDEsMjhaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRl''@;'; + put 'put ''ZCBjbHItaS1vdXRsaW5lLXBhdGgtNi0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYu''@;'; + put 'put ''ODUsMS4xNFoiICBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNy0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjciIHk9IjEyIiB3aWR0aD0iMTciIGhlaWdodD0iMS42IiBjbGFzcz0iY2xyLWktb3V0bGluZS0t''@;'; + put 'put ''YmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSI3IiB5PSIxNiIgd2lkdGg9IjExIiBoZWlnaHQ9IjEuNiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIiAvPlxuICAgICAg''@;'; + put 'put ''ICAgICAgPHJlY3QgeD0iNyIgeT0iMjMiIHdpZHRoPSIxMCIgaGVpZ2h0PSIxLjYiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNy40NiwxNy4yM2E2LjM2LDYuMzYsMCwwLDAtNC40''@;'; + put 'put ''LDExbC0xLjk0LDIuMzcuOSwzLjYxLDMuNjYtNC40NmE2LjI2LDYuMjYsMCwwLDAsMy41NSwwbDMuNjYsNC40Ni45LTMuNjEtMS45NC0yLjM3YTYuMzYsNi4zNiwwLDAsMC00LjQtMTFabTAsMTAuNjhhNC4zMSw0LjMxLDAsMSwxLDQuMzctNC4zMUE0LjM1LDQuMzUsMCwwLDEsMjcuNDYsMjcu''@;'; + put 'put ''OTFaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIsMTMuMjJ2My4zNGE4LjQxLDguNDEsMCwwLDEsMiwxLjgxdi02QTcuNDUsNy40NSwwLDAsMSwzMiwxMy4yMloiIGNsYXNzPSJj''@;'; + put 'put ''bHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik00LDI4VjhIMjIuNzhhNy40OSw3LjQ5LDAsMCwxLS4yOC0ySDRBMiwyLDAsMCwwLDIsOFYyOGEyLDIsMCwwLDAsMiwySDE5bC41Ny0uNy45My0xLjE0TDIw''@;'; + put 'put ''LjQxLDI4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNi0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNy0t''@;'; + put 'put ''YmFkZ2VkIGNsci1pLWJhZGdlIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE5LDMwSDRhMiwyLDAsMCwxLTItMlY4QTIsMiwwLDAsMSw0LDZIMzJhMiwyLDAsMCwxLDIsMlYxOC4zN2E4LjM0LDguMzQsMCwwLDAtMTMuNDksOS43OWwtLjkzLDEuMTRaTTcsMTJ2MS42SDI0VjEyWm0wLDUu''@;'; + put 'put ''NkgxOFYxNkg3Wm0wLDdIMTdWMjNIN1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuODMsMjMuNTlhNi4zNyw2LjM3LDAsMSwwLTEwLjc3LDQuNTlsLTEuOTQsMi4zNy45LDMuNjEsMy42Ni00LjQ2YTYuMjYsNi4y''@;'; + put 'put ''NiwwLDAsMCwzLjU1LDBsMy42Niw0LjQ2LjktMy42MS0xLjk0LTIuMzdBNi4zNCw2LjM0LDAsMCwwLDMzLjgzLDIzLjU5Wm0tMTAuNzQsMGE0LjM3LDQuMzcsMCwxLDEsNC4zNyw0LjMxQTQuMzUsNC4zNSwwLDAsMSwyMy4xLDIzLjU5WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlk''@;'; + put 'put ''LXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy44MywyMy41OWE2LjM3LDYuMzcsMCwxLDAtMTAuNzcsNC41OWwtMS45NCwyLjM3LjksMy42MSwzLjY2LTQuNDZhNi4yNiw2LjI2LDAsMCwwLDMuNTUsMGwzLjY2LDQuNDYuOS0zLjYxLTEuOTQtMi4zN0E2LjM0LDYuMzQsMCww''@;'; + put 'put ''LDAsMzMuODMsMjMuNTlabS0xMC43NCwwYTQuMzcsNC4zNywwLDEsMSw0LjM3LDQuMzFBNC4zNSw0LjM1LDAsMCwxLDIzLjEsMjMuNTlaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMz''@;'; + put 'put ''LjY4LDE1LjRIMjkuMjVhOC4zNiw4LjM2LDAsMCwxLDQuNzUsM3YtM1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTkuMDcsMTMuNkg3VjEySDE4LjU3QTMuNjcsMy42NywwLDAsMSwx''@;'; + put 'put ''OSw5Ljg5TDIxLjI5LDZINEEyLDIsMCwwLDAsMiw4VjI4YTIsMiwwLDAsMCwyLDJIMTlsLjU3LS43LjkzLTEuMTRBOC4zNCw4LjM0LDAsMCwxLDI1LjY2LDE1LjRIMjIuMjNBMy42OCwzLjY4LDAsMCwxLDE5LjA3LDEzLjZaTTE3LDI0LjZIN1YyM0gxN1ptMS03SDdWMTZIMThaIiBjbGFzcz0i''@;'; + put 'put ''Y2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0zLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEu''@;'; + put 'put ''MjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTQtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjcuNDYsMTcuMjNhNi4zNiw2LjM2LDAsMCwwLTQuNCwxMWwtMS45NCwy''@;'; + put 'put ''LjM3LjksMy42MSwzLjY2LTQuNDZhNi4yNiw2LjI2LDAsMCwwLDMuNTUsMGwzLjY2LDQuNDYuOS0zLjYxLTEuOTQtMi4zN2E2LjM2LDYuMzYsMCwwLDAtNC40LTExWm0wLDEwLjY4YTQuMzEsNC4zMSwwLDEsMSw0LjM3LTQuMzFBNC4zNSw0LjM1LDAsMCwxLDI3LjQ2LDI3LjkxWiIgY2xhc3M9''@;'; + put 'put ''ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAsMTMuNUE3LjUsNy41LDAsMCwxLDIyLjUsNkg0QTIsMiwwLDAsMCwyLDhWMjhhMiwyLDAsMCwwLDIsMkgxOWwuNTctLjcuOTMtMS4xNEE4LjM0LDguMzQs''@;'; + put 'put ''MCwwLDEsMzQsMTguMzd2LTZBNy40Niw3LjQ2LDAsMCwxLDMwLDEzLjVaTTE3LDI0LjZIN1YyM0gxN1ptMS03SDdWMTZIMThabTYtNEg3VjEySDI0WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xl''@;'; + put 'put ''IGN4PSIzMCIgY3k9IjYiIHI9IjUiICBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIgLz5cbiAgICAgICAgJyksZS5DbHJTaGFwZUFyY2hpdmU9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI5LDMySDdWMjJINVYz''@;'; + put 'put ''MmEyLDIsMCwwLDAsMiwySDI5YTIsMiwwLDAsMCwyLTJWMjJIMjlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNCwyNGExLDEsMCwwLDAsMSwxaDZhMSwxLDAsMCwwLDAtMkgxNUExLDEsMCwwLDAsMTQsMjRa''@;'; + put 'put ''IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNCwxOEg2VjE0aDRhMywzLDAsMCwxLS42OC0xLjg3czAtLjA5LDAtLjEzSDUuNUExLjUsMS41LDAsMCwwLDQsMTMuNVYyMEgxNloiIGNsYXNzPSJjbHItaS1vdXRs''@;'; + put 'put ''aW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLjUsMTJIMjYuNjZzMCwuMDksMCwuMTNBMywzLDAsMCwxLDI2LDE0aDR2NEgyMmwtMiwySDMyVjEzLjVBMS41LDEuNSwwLDAsMCwzMC41LDEyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWkt''@;'; + put 'put ''b3V0bGluZS1wYXRoLTQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMTkuMThsNi4zOC02LjM1QTEsMSwwLDEsMCwyMywxMS40MWwtNCwzLjk1VjNhMSwxLDAsMSwwLTIsMHYxMi40bC00LTMuOTVhMSwxLDAsMCwwLTEuNDEsMS40MloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1p''@;'; + put 'put ''LW91dGxpbmUtcGF0aC01IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE5LjQxLDIwLjYsMTgsMjJsLTEuNDEtMS40TDE2LDIwSDVWMzJhMiwyLDAsMCwwLDIsMkgyOWEyLDIsMCwwLDAsMi0yVjIwSDIwWk0yMiwyNGExLDEsMCwwLDEtMSwxSDE1YTEsMSwwLDAsMSwwLTJoNkExLDEsMCww''@;'; + put 'put ''LDEsMjIsMjRaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLjUsMTJIMjYuNjZzMCwuMDksMCwuMTNhMywzLDAsMCwxLS44OCwyLjEyTDIyLDE4SDMyVjEzLjVBMS41LDEuNSwwLDAsMCwzMC41LDEyWiIgY2xhc3M9''@;'; + put 'put ''ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMC4yLDE0LjI1YTMsMywwLDAsMS0uODgtMi4xMnMwLS4wOSwwLS4xM0g1LjVBMS41LDEuNSwwLDAsMCw0LDEzLjVWMThIMTRaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQt''@;'; + put 'put ''cGF0aC0zIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDE5LjE4bDYuMzgtNi4zNUExLDEsMCwxLDAsMjMsMTEuNDFsLTQsMy45NVYzYTEsMSwwLDEsMC0yLDB2MTIuNGwtNC0zLjk1YTEsMSwwLDAsMC0xLjQxLDEuNDJaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0''@;'; + put 'put ''aC00IiAvPlxuICAgICAgICAnKSxlLkNsclNoYXBlVW5hcmNoaXZlPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yOSwzMkg3VjIySDVWMzJhMiwyLDAsMCwwLDIsMkgyOWEyLDIsMCwwLDAsMi0yVjIySDI5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEi''@;'; + put 'put ''IC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTQsMjRhMSwxLDAsMCwwLDEsMWg2YTEsMSwwLDAsMCwwLTJIMTVBMSwxLDAsMCwwLDE0LDI0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTUsMThINlYxNGg5''@;'; + put 'put ''VjEySDUuNUExLjUsMS41LDAsMCwwLDQsMTMuNVYyMEgxNS43OEEzLDMsMCwwLDEsMTUsMThaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMC41LDEySDIxdjJoOXY0SDIxYTMsMywwLDAsMS0uNzgsMkgzMlYx''@;'; + put 'put ''My41QTEuNSwxLjUsMCwwLDAsMzAuNSwxMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTEzLDkuNTUsMTcsNS42VjE4YTEsMSwwLDEsMCwyLDBWNS42bDQsMy45NWExLDEsMCwxLDAsMS40MS0xLjQyTDE4LDEu''@;'; + put 'put ''NzgsMTEuNjEsOC4xM0ExLDEsMCwwLDAsMTMsOS41NVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDIxYTMsMywwLDAsMS0yLjIyLTFINVYzMmEyLDIsMCwwLDAsMiwySDI5YTIsMiwwLDAsMCwyLTJWMjBI''@;'; + put 'put ''MjAuMjFBMywzLDAsMCwxLDE4LDIxWm00LDNhMSwxLDAsMCwxLTEsMUgxNWExLDEsMCwwLDEsMC0yaDZBMSwxLDAsMCwxLDIyLDI0WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNSwxMkg1LjVBMS41LDEuNSwwLDAs''@;'; + put 'put ''MCw0LDEzLjVWMThIMTVaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLjUsMTJIMjF2NkgzMlYxMy41QTEuNSwxLjUsMCwwLDAsMzAuNSwxMloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMi''@;'; + put 'put ''IC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTMsOS41NSwxNyw1LjZWMThhMSwxLDAsMSwwLDIsMFY1LjZsNCwzLjk1YTEsMSwwLDEsMCwxLjQxLTEuNDJMMTgsMS43OCwxMS42MSw4LjEzQTEsMSwwLDAsMCwxMyw5LjU1WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgt''@;'; + put 'put ''NCIgLz5cbiAgICAgICAgJyksZS5DbHJTaGFwZUNvbm5lY3Q9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTM0LDE3SDI4LjIzQTYuMjUsNi4yNSwwLDAsMCwyMiwxMkgxNC4xNWE2LjI1LDYuMjUsMCwwLDAtNi4yMSw1SDJ2Mkg3LjkzYTYuMjIsNi4yMiwwLDAsMCw2LjIyLDVIMjJhNi4y''@;'; + put 'put ''Miw2LjIyLDAsMCwwLDYuMjItNUgzNFpNMTcuMDgsMjJIMTQuMTVhNC4xNyw0LjE3LDAsMCwxLTQuMzEtNCw0LjE3LDQuMTcsMCwwLDEsNC4zMS00aDIuOTRaTTIyLDIySDE5VjE0aDNhNC4xNyw0LjE3LDAsMCwxLDQuMzEsNEE0LjE3LDQuMTcsMCwwLDEsMjIsMjJaIiBjbGFzcz0iY2xyLWkt''@;'; + put 'put ''b3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNywxMkgxNC4xNWE2LjI1LDYuMjUsMCwwLDAtNi4yMSw1SDJ2Mkg3LjkzYTYuMjIsNi4yMiwwLDAsMCw2LjIyLDVIMTdaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0x''@;'; + put 'put ''IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4LjIzLDE3QTYuMjUsNi4yNSwwLDAsMCwyMiwxMkgxOVYyNGgzYTYuMjIsNi4yMiwwLDAsMCw2LjIyLTVIMzRWMTdaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPlxuICAgICAgICAnKSxlLkNsclNoYXBlRGlz''@;'; + put 'put ''Y29ubmVjdD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTIuMTcsNkE2LjIxLDYuMjEsMCwwLDAsNiwxMUgyLjEzdjJINmE2LjIzLDYuMjMsMCwwLDAsNi4yMSw1SDE3VjZaTTE1LjEsMTZIMTIuMTdhNC4yLDQuMiwwLDAsMS00LjMxLTQsNC4xNyw0LjE3LDAsMCwxLDQuMzEtNEgxNS4x''@;'; + put 'put ''WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuOTIsMjNIMzAuMTRhNi4yNSw2LjI1LDAsMCwwLTYuMjEtNUgxOXYySDE0YTEsMSwwLDEsMCwwLDJoNXY0SDE0YTEsMSwwLDAsMC0xLDEsMSwxLDAsMCwwLDEs''@;'; + put 'put ''MWg1djJoNC45NGE2LjIzLDYuMjMsMCwwLDAsNi4yMi01aDMuNzZabS0xMCw1SDIxVjIwaDIuOTRhNC4xNyw0LjE3LDAsMCwxLDQuMzEsNEE0LjE3LDQuMTcsMCwwLDEsMjMuOTQsMjhaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAg''@;'; + put 'put ''IDxwYXRoIGQ9Ik0xMiw2YTYuMjEsNi4yMSwwLDAsMC02LjIxLDVIMnYySDUuODNBNi4yMyw2LjIzLDAsMCwwLDEyLDE4SDE3VjZaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLjc5LDIzSDMwLjE0YTYuMjUsNi4y''@;'; + put 'put ''NSwwLDAsMC02LjIxLTVIMTl2MkgxNGExLDEsMCwwLDAtMSwxLDEsMSwwLDAsMCwxLDFoNXY0SDE0YTEsMSwwLDAsMC0xLDEsMSwxLDAsMCwwLDEsMWg1djJoNC45NGE2LjIzLDYuMjMsMCwwLDAsNi4yMi01aDMuNjRaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAv''@;'; + put 'put ''PlxuICAgICAgICAnKSxlLkNsclNoYXBlTGluaz0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTcuNiwyNC4zMmwtMi40NiwyLjQ0YTQsNCwwLDAsMS01LjYyLDAsMy45MiwzLjkyLDAsMCwxLDAtNS41NWw0LjY5LTQuNjVhNCw0LDAsMCwxLDUuNjIsMCwzLjg2LDMuODYsMCwwLDEsMSwx''@;'; + put 'put ''LjcxQTIsMiwwLDAsMCwyMS4xLDE4bDEuMjktMS4yOGE1Ljg5LDUuODksMCwwLDAtMS4xNS0xLjYyLDYsNiwwLDAsMC04LjQ0LDBMOC4xLDE5Ljc5YTUuOTEsNS45MSwwLDAsMCwwLDguMzksNiw2LDAsMCwwLDguNDQsMGwzLjY1LTMuNjJjLS4xNywwLS4zMywwLS41LDBBOCw4LDAsMCwxLDE3''@;'; + put 'put ''LjYsMjQuMzJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOC42MSw3LjgyYTYsNiwwLDAsMC04LjQ0LDBsLTMuNjUsMy42MmMuMTcsMCwuMzMsMCwuNDksMGgwYTgsOCwwLDAsMSwyLjEuMjhsMi40Ni0yLjQ0''@;'; + put 'put ''YTQsNCwwLDAsMSw1LjYyLDAsMy45MiwzLjkyLDAsMCwxLDAsNS41NWwtNC42OSw0LjY1YTQsNCwwLDAsMS01LjYyLDAsMy44NiwzLjg2LDAsMCwxLTEtMS43MSwyLDIsMCwwLDAtLjI4LjIzbC0xLjI5LDEuMjhhNS44OSw1Ljg5LDAsMCwwLDEuMTUsMS42Miw2LDYsMCwwLDAsOC40NCwwbDQu''@;'; + put 'put ''NjktNC42NWE1LjkyLDUuOTIsMCwwLDAsMC04LjM5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICcpLGUuQ2xyU2hhcGVVbmxpbms9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTUsNSwzLjU5LDYuNDFsOSw5TDguMSwxOS43OWE1''@;'; + put 'put ''LjkxLDUuOTEsMCwwLDAsMCw4LjM5LDYsNiwwLDAsMCw4LjQ0LDBMMjEsMjMuNzhsOC42Myw4LjYzTDMxLDMxWk0xNS4xMywyNi43NmE0LDQsMCwwLDEtNS42MiwwLDMuOTIsMy45MiwwLDAsMSwwLTUuNTVMMTQsMTYuNzlsNS41OCw1LjU4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWkt''@;'; + put 'put ''b3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjEuNTMsOS4yMmE0LDQsMCwwLDEsNS42MiwwLDMuOTIsMy45MiwwLDAsMSwwLDUuNTVsLTQuNzksNC43NkwyMy43OCwyMWw0Ljc5LTQuNzZhNS45Miw1LjkyLDAsMCwwLDAtOC4zOSw2LDYsMCwwLDAtOC40NCwwbC00''@;'; + put 'put ''Ljc2LDQuNzRMMTYuNzgsMTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgJyksZS5DbHJTaGFwZUNsb3VkTmV0d29yaz0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzAuNzEsMTUuMTh2LTFBMTEuMjgsMTEuMjgsMCwwLDAsMTku''@;'; + put 'put ''NTYsMi44M2gtLjExYTExLjI4LDExLjI4LDAsMCwwLTExLDguOTMsNy40Nyw3LjQ3LDAsMCwwLDAsMTQuOTRIMjkuMTNhNS44Niw1Ljg2LDAsMCwwLDEuNTgtMTEuNTJaTTI5LjEzLDI0LjdIOC40NmE1LjQ3LDUuNDcsMCwxLDEsMC0xMC45NGgxLjY5bC4xMS0uODdhOS4yNyw5LjI3LDAsMCwx''@;'; + put 'put ''LDE4LjQ1LDEuM3YxLjI4YzAsLjA5LDAsLjE4LDAsLjI3bC0uMDcsMS4xNS45NC4xMWEzLjg2LDMuODYsMCwwLDEtLjQzLDcuNzFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOS41OCwzMS4xOEgxOC44NXYt''@;'; + put 'put ''Mi40aC0ydjIuNEg2LjA4YTEsMSwwLDAsMCwwLDJoMjMuNWExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICcpLGUuQ2xyU2hhcGVDbG91ZFNjYWxlPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik02LjMyLDEx''@;'; + put 'put ''LjExSDcuODRMOCwxMC4yNEE3LjE5LDcuMTksMCwwLDEsMTUuMDcsNGguMDdhNy4xNSw3LjE1LDAsMCwxLDQuNzEsMS44MywxMS4xLDExLjEsMCwwLDEsMy4wOS42NEE5LjE4LDkuMTgsMCwwLDAsMTUuMTYsMmgtLjA5QTkuMiw5LjIsMCwwLDAsNi4xMyw5LjExLDYuMTUsNi4xNSwwLDAsMCwy''@;'; + put 'put ''LjMzLDE5Ljk1LDguMDksOC4wOSwwLDAsMSwzLDE3LjcxYTQuMTIsNC4xMiwwLDAsMS0uODEtMi40NEE0LjE2LDQuMTYsMCwwLDEsNi4zMiwxMS4xMVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTEwLjQsMTYu''@;'; + put 'put ''OTFoMS41MkwxMiwxNmE3LjE5LDcuMTksMCwwLDEsNy4xMi02LjI1aC4wN2E3LjE3LDcuMTcsMCwwLDEsNS43LDIuOTIsMTEuMDUsMTEuMDUsMCwwLDEsMi43Mi43Nyw5LjIsOS4yLDAsMCwwLTguNC01LjY5aC0uMDlhOS4yLDkuMiwwLDAsMC04Ljk0LDcuMTIsNi4xNSw2LjE1LDAsMCwwLTMu''@;'; + put 'put ''NjQsMTEsOC4xMSw4LjExLDAsMCwxLC43OS0yLDQuMTQsNC4xNCwwLDAsMSwzLTdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMi40MiwyNC40N3YtLjYyYTkuMTgsOS4xOCwwLDAsMC0xOC4xMy0yLjE2QTYu''@;'; + put 'put ''MTYsNi4xNiwwLDAsMCwxNC40OCwzNEgzMWE0Ljg4LDQuODgsMCwwLDAsMS40Ni05LjUzWk0zMSwzMkgxNC40OGE0LjE2LDQuMTYsMCwxLDEsMC04LjMySDE2bC4xMS0uODdhNy4xOSw3LjE5LDAsMCwxLDcuMTItNi4yNWguMDdhNy4yMSw3LjIxLDAsMCwxLDcuMTIsNy4yNXYxYzAsLjA3LDAs''@;'; + put 'put ''LjEzLDAsLjJsLS4wNywxLjExLjk0LjExQTIuODgsMi44OCwwLDAsMSwzMSwzMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPlxuICAgICAgICAnKSxlLkNsclNoYXBlQ2xvdWRUcmFmZmljPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yNi41NCwy''@;'; + put 'put ''MC44MmEuODguODgsMCwwLDAtLjg4LS44OEgyMC43NWwxLjEtMS4xQS44OC44OCwwLDAsMCwyMC42LDE3LjZsLTMuMjEsMy4yMkwyMC42LDI0YS44OC44OCwwLDEsMCwxLjI1LTEuMjRMMjAuNzYsMjEuN2g0LjlBLjg4Ljg4LDAsMCwwLDI2LjU0LDIwLjgyWiIgY2xhc3M9ImNsci1pLW91dGxp''@;'; + put 'put ''bmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjkuMjcsMjEuN2EuODguODgsMCwxLDAsMC0xLjc2aC0uNThhLjg4Ljg4LDAsMSwwLDAsMS43NloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAg''@;'; + put 'put ''ICAgPHBhdGggZD0iTTMyLjIxLDIwaC0uMDZhLjg1Ljg1LDAsMCwwLS44NS44OC45MS45MSwwLDAsMCwuOTEuODguODguODgsMCwxLDAsMC0xLjc2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIuNTksMTFh''@;'; + put 'put ''Ljg4Ljg4LDAsMCwwLTEuMjUsMS4yNGwxLjEsMS4xSDI3LjUzYS44OC44OCwwLDEsMCwwLDEuNzZoNC45bC0xLjA5LDEuMDlhLjg4Ljg4LDAsMCwwLDEuMjUsMS4yNGwzLjIxLTMuMjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz5cbiAgICAgICAgICAg''@;'; + put 'put ''IDxwYXRoIGQ9Ik0yNC41LDE1LjA3YS44OC44OCwwLDEsMCwwLTEuNzZoLS41OGEuODguODgsMCwxLDAsMCwxLjc2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjEuOSwxNC4yN2EuODUuODUsMCwwLDAtLjg1''@;'; + put 'put ''LS44OEgyMWEuODguODgsMCwxLDAsMCwxLjc2QS45MS45MSwwLDAsMCwyMS45LDE0LjI3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAuMzYsMjMuNjVjMCwuMTMsMCwuMjYsMCwuMzlhMy43NywzLjc3LDAs''@;'; + put 'put ''MCwxLTMuNjIsMy44OUg3LjI4YTUuMzIsNS4zMiwwLDAsMS01LjEzLTUuNDhBNS4zMiw1LjMyLDAsMCwxLDcuMjgsMTdIOC45MUw5LDE2LjEyYTguOTIsOC45MiwwLDAsMSw4LjYyLThoLjA4YTguNDksOC40OSwwLDAsMSw2LjU2LDMuMjloMi4zN2ExMC41NSwxMC41NSwwLDAsMC04LjkxLTUu''@;'; + put 'put ''MjVoLS4xMUExMC44MiwxMC44MiwwLDAsMCw3LjIyLDE1YTcuMjgsNy4yOCwwLDAsMC03LDcuNDMsNy4yNyw3LjI3LDAsMCwwLDcuMDgsNy40M0gyNi43N0E1LjcyLDUuNzIsMCwwLDAsMzIuMzUsMjRhMy43NywzLjc3LDAsMCwwLDAtLjM5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWkt''@;'; + put 'put ''b3V0bGluZS1wYXRoLTciIC8+XG4gICAgICAgICcpLGUuQ2xyU2hhcGVEZXBsb3k9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMywySDIyLjFhMSwxLDAsMCwwLDAsMmg4LjUzbC04LjgyLDlhMSwxLDAsMSww''@;'; + put 'put ''LDEuNDMsMS40TDMyLDUuNDZWMTMuOWExLDEsMCwwLDAsMiwwVjNBMSwxLDAsMCwwLDMzLDJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTExLjU0LDEwLjczbC05LDUuMTdhMSwxLDAsMCwwLS41Ljg3djExYTEs''@;'; + put 'put ''MSwwLDAsMCwuNS44N2w5LDUuMTVhMSwxLDAsMCwwLDEsMGw5LTUuMTVhMSwxLDAsMCwwLC41LS44N3YtMTFhMSwxLDAsMCwwLS41LS44N2wtOS01LjE3QTEsMSwwLDAsMCwxMS41NCwxMC43M1pNMTEsMzEuMDhsLTctNFYxOC40NGw3LDRaTTEyLDIxLDQuODEsMTYuODcsMTIsMTIuNzhsNy4y''@;'; + put 'put ''MSw0LjEyWm04LDYuMDktNyw0VjIyLjQ0bDctNFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zMywySDIyLjFhMSwxLDAsMCwwLDAsMmg4LjUzbC04LjgyLDlhMSwxLDAsMSwwLDEuNDMsMS40TDMyLDUuNDZWMTMuOWEx''@;'; + put 'put ''LDEsMCwwLDAsMiwwVjNBMSwxLDAsMCwwLDMzLDJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiBkPSJNMTIuNDYsMTAuNzNhMSwxLDAsMCwwLTEsMGwtOC42OCw1TDEyLDIxbDkuMTktNS4yNloiLz5cbiAgICAgICAgICAgIDxw''@;'; + put 'put ''YXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIGQ9Ik0yLDI3LjczYTEsMSwwLDAsMCwuNS44N0wxMSwzMy40NnYtMTFMMiwxNy4yOFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTQiIGQ9Ik0xMywzMy40''@;'; + put 'put ''Nmw4LjUtNC44NmExLDEsMCwwLDAsLjUtLjg3VjE3LjI5bC05LDUuMTVaIi8+XG4gICAgICAgICcpLGUuQ2xyU2hhcGVIZWxpeD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTguODgsMTMuMDdhLjkuOSwwLDAs''@;'; + put 'put ''MS0uNDktMS42Nmw4LjkzLTUuNzNhLjkuOSwwLDEsMSwxLDEuNTJMOS4zNywxMi45MkEuOS45LDAsMCwxLDguODgsMTMuMDdaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTEzLjI1LDE1LjExYS45LjksMCwwLDEt''@;'; + put 'put ''LjQ5LTEuNjZMMTgsMTAuMDhhLjkuOSwwLDEsMSwxLDEuNTJMMTMuNzQsMTVBLjkuOSwwLDAsMSwxMy4yNSwxNS4xMVoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJNMTkuNzIsMzAuMjNhLjkuOSwwLDAsMS0uNDkt''@;'; + put 'put ''MS42Nmw4LjkzLTUuNzNhLjkuOSwwLDAsMSwxLDEuNTJMMjAuMiwzMC4wOUEuOS45LDAsMCwxLDE5LjcyLDMwLjIzWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIGQ9Ik0xOC45MiwyNS45NGEuOS45LDAsMCwxLS40OS0x''@;'; + put 'put ''LjY2bDUuMjUtMy4zN2EuOS45LDAsMSwxLDEsMS41MUwxOS40LDI1LjhBLjg5Ljg5LDAsMCwxLDE4LjkyLDI1Ljk0WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIGQ9Ik0yMS41Niw1LjY5YTMuNTksMy41OSwwLDAsMSwu''@;'; + put 'put ''MTUsMy41M0wxOC44MywxNWgyLjI1bDIuNDMtNC44N2E1LjYxLDUuNjEsMCwwLDAtNS04LjE0SDEzLjI2bC0xLDJoNi4yMkEzLjYxLDMuNjEsMCwwLDEsMjEuNTYsNS42OVoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBk''@;'; + put 'put ''PSJNMzIuOTEsMjAuNzhBNS41Myw1LjUzLDAsMCwwLDI3LjY2LDE3SDkuMzFhMy41NCwzLjU0LDAsMCwxLTMuNTYtMy42NywzLjYxLDMuNjEsMCwwLDEsLjQyLTEuNTRsNC4yNi04LjQ5YTEsMSwwLDEsMC0xLjc5LS45TDQuNCwxMC44NEE1LjY3LDUuNjcsMCwwLDAsNCwxNS4yMiw1LjUzLDUu''@;'; + put 'put ''NTMsMCwwLDAsOS4yOCwxOWg3LjZsLTMuNDQsNi44N2E1LjY0LDUuNjQsMCwwLDAsMS41LDYuOTJBNS4zOCw1LjM4LDAsMCwwLDE4LjQxLDM0aDUuMjVsMS0ySDE4LjQzYTMuNTgsMy41OCwwLDAsMS0zLjIyLTUuMjFMMTkuMTEsMTloOC41NGEzLjQyLDMuNDIsMCwwLDEsMi4xNS43MSwzLjU3''@;'; + put 'put ''LDMuNTcsMCwwLDEsMSw0LjQzbC00LjEyLDguMjJhMSwxLDAsMSwwLDEuNzkuOWw0LjA2LTguMUE1LjY3LDUuNjcsMCwwLDAsMzIuOTEsMjAuNzhaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzIuMTYsMTkuNjNBNS41''@;'; + put 'put ''NSw1LjU1LDAsMCwwLDI3LjQyLDE3SDEwLjA2YTQuMzYsNC4zNiwwLDAsMS0zLjY3LTIsNC4wNyw0LjA3LDAsMCwxLS4xOS00LjEzbDMuNjItNywxLjQyLDEuNjMtMi43NCw1LjMsOC44NC01LjY2YS45MS45MSwwLDAsMSwxLDEuNTNMNy44NCwxMy4zOGEyLjEzLDIuMTMsMCwwLDAsLjI0LjUy''@;'; + put 'put ''LDIuMjgsMi4yOCwwLDAsMCwxLjY1LDFMMTguMTEsOS41YS45MS45MSwwLDAsMSwxLDEuNTJMMTMsMTQuOTRIMjAuOGwyLjQxLTQuODJhNS42LDUuNiwwLDAsMC01LTguMTJIOWExLDEsMCwwLDAtLjkuNTZMMy44OCwxMC44OWE1LjYsNS42LDAsMCwwLDUsOC4xMmg3LjY1bC0zLjQzLDYuODdh''@;'; + put 'put ''NS42LDUuNiwwLDAsMCw1LDguMTJoOS4yOGExLDEsMCwwLDAsLjkzLS42NWw0LjE0LTguMjRBNS41OCw1LjU4LDAsMCwwLDMyLjE2LDE5LjYzWk0xNy43NSwyNS41N0EuOTEuOTEsMCwwLDEsMTgsMjQuMzFsNi0zLjg4QS45MS45MSwwLDEsMSwyNSwyMmwtNiwzLjg4YS45MS45MSwwLDAsMS0x''@;'; + put 'put ''LjI2LS4yN1pNMjksMjQuMzRsLTksNS43OGEuOTEuOTEsMCwxLDEtMS0xLjUzbDktNS43OGEuOTEuOTEsMCwxLDEsMSwxLjUzWiIvPlxuICAgICAgICAnKSxlLkNsclNoYXBlRmxhc2s9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMxLjQzLDI3LjI4LDIzLDE0Ljg0VjRoMWExLDEsMCww''@;'; + put 'put ''LDAsMC0ySDEyYTEsMSwwLDAsMCwwLDJoMVYxNC44NEw0LjUxLDI3LjM2QTQuMjksNC4yOSwwLDAsMCw1LDMyLjgsNC4zOCw0LjM4LDAsMCwwLDguMTUsMzRIMjhhNC4yNCw0LjI0LDAsMCwwLDMuNDItNi43MlpNMjkuODUsMzFhMi42MiwyLjYyLDAsMCwxLTIsMUg4YTIuMiwyLjIsMCwwLDEt''@;'; + put 'put ''Mi4wNi0xLjQxLDIuNjgsMi42OCwwLDAsMSwuMjktMi4xN2wzLTQuNDQsMTQsMC0xLjMxLTJIMTAuNTdMMTUsMTUuNDZWNGg2VjE1LjQ2bDguODQsMTMuMDVBMi4yMywyLjIzLDAsMCwxLDI5Ljg1LDMxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4g''@;'; + put 'put ''ICAgICAgICAgICA8cGF0aCBkPSJNMzEuNDksMjcuNCwyMywxNC45NFY0aDFhMSwxLDAsMCwwLDAtMkgxMi4wOGExLDEsMCwwLDAsMCwySDEzVjE0Ljk0TDQuNTgsMjcuMzFhNC4zMSw0LjMxLDAsMCwwLS43OCwzQTQuMjMsNC4yMywwLDAsMCw4LDM0SDI3Ljg2QTQuMzYsNC4zNiwwLDAsMCwz''@;'; + put 'put ''MSwzMi44LDQuMjMsNC4yMywwLDAsMCwzMS40OSwyNy40Wk0xNSwxNS40OVY0aDZWMTUuNDlMMjYuMTUsMjNIOS44NVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICcpLGUuQ2xyU2hhcGVBZG1pbmlzdHJhdG9yPSgwLGEuY2xySWNvblNWRyko''@;'; + put 'put ''JzxwYXRoIGQ9Ik0xNC42OCwxNC44MWE2Ljc2LDYuNzYsMCwxLDEsNi43Ni02Ljc1QTYuNzcsNi43NywwLDAsMSwxNC42OCwxNC44MVptMC0xMS41MWE0Ljc2LDQuNzYsMCwxLDAsNC43Niw0Ljc2QTQuNzYsNC43NiwwLDAsMCwxNC42OCwzLjNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHIt''@;'; + put 'put ''aS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNi40MiwzMS42OEEyLjE0LDIuMTQsMCwwLDEsMTUuOCwzMEg0VjI0LjIyYTE0LjgxLDE0LjgxLDAsMCwxLDExLjA5LTQuNjhsLjcyLDBhMi4yLDIuMiwwLDAsMSwuNjItMS44NWwuMTItLjExYy0uNDcsMC0xLS4w''@;'; + put 'put ''Ni0xLjQ2LS4wNkExNi40NywxNi40NywwLDAsMCwyLjIsMjMuMjZhMSwxLDAsMCwwLS4yLjZWMzBhMiwyLDAsMCwwLDIsMkgxNi43WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODcsMTYuMjlhLjM3LjM3''@;'; + put 'put ''LDAsMCwxLC4xNSwwLC40Mi40MiwwLDAsMC0uMTUsMFoiICBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy42OCwyMy4zMmwtMi0uNjFhNy4yMSw3LjIxLDAsMCwwLS41OC0xLjQxbDEtMS44NkEuMzguMzgsMCww''@;'; + put 'put ''LDAsMzIsMTlsLTEuNDUtMS40NWEuMzYuMzYsMCwwLDAtLjQ0LS4wN2wtMS44NCwxYTcuMTUsNy4xNSwwLDAsMC0xLjQzLS42MWwtLjYxLTJhLjM2LjM2LDAsMCwwLS4zNi0uMjRIMjMuODJhLjM2LjM2LDAsMCwwLS4zNS4yNmwtLjYxLDJhNyw3LDAsMCwwLTEuNDQuNmwtMS44Mi0xYS4zNS4z''@;'; + put 'put ''NSwwLDAsMC0uNDMuMDdMMTcuNjksMTlhLjM4LjM4LDAsMCwwLS4wNi40NGwxLDEuODJBNi43Nyw2Ljc3LDAsMCwwLDE4LDIyLjY5bC0yLC42YS4zNi4zNiwwLDAsMC0uMjYuMzV2Mi4wNUEuMzUuMzUsMCwwLDAsMTYsMjZsMiwuNjFhNyw3LDAsMCwwLC42LDEuNDFsLTEsMS45MWEuMzYuMzYs''@;'; + put 'put ''MCwwLDAsLjA2LjQzbDEuNDUsMS40NWEuMzguMzgsMCwwLDAsLjQ0LjA3bDEuODctMWE3LjA5LDcuMDksMCwwLDAsMS40LjU3bC42LDJhLjM4LjM4LDAsMCwwLC4zNS4yNmgyLjA1YS4zNy4zNywwLDAsMCwuMzUtLjI2bC42MS0yLjA1YTYuOTIsNi45MiwwLDAsMCwxLjM4LS41N2wxLjg5LDFh''@;'; + put 'put ''LjM2LjM2LDAsMCwwLC40My0uMDdMMzIsMzAuNEEuMzUuMzUsMCwwLDAsMzIsMzBsLTEtMS44OGE3LDcsMCwwLDAsLjU4LTEuMzlsMi0uNjFhLjM2LjM2LDAsMCwwLC4yNi0uMzVWMjMuNjdBLjM2LjM2LDAsMCwwLDMzLjY4LDIzLjMyWk0yNC44NSwyOGEzLjM0LDMuMzQsMCwxLDEsMy4zMy0z''@;'; + put 'put ''LjMzQTMuMzQsMy4zNCwwLDAsMSwyNC44NSwyOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMTQuNjciIGN5PSI4LjMiIHI9IjYiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+''@;'; + put 'put ''XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTYuNDQsMzEuODJhMi4xNSwyLjE1LDAsMCwxLS4zOC0yLjU1bC41My0xLTEuMDktLjMzQTIuMTQsMi4xNCwwLDAsMSwxNCwyNS44NFYyMy43OWEyLjE2LDIuMTYsMCwwLDEsMS41My0yLjA3bDEuMDktLjMzLS41Mi0xYTIuMTcsMi4xNywwLDAsMSwu''@;'; + put 'put ''MzUtMi41MiwxOC45MiwxOC45MiwwLDAsMC0yLjMyLS4xNkExNS41OCwxNS41OCwwLDAsMCwyLDIzLjA3djcuNzVhMSwxLDAsMCwwLDEsMUgxNi40NFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuNywyMy40Nmwt''@;'; + put 'put ''Mi0uNmE2LjczLDYuNzMsMCwwLDAtLjU4LTEuNDJsMS0xLjg2YS4zNS4zNSwwLDAsMC0uMDctLjQzbC0xLjQ1LTEuNDZhLjM4LjM4LDAsMCwwLS40My0uMDdsLTEuODUsMWE3Ljc0LDcuNzQsMCwwLDAtMS40My0uNmwtLjYxLTJhLjM4LjM4LDAsMCwwLS4zNi0uMjVIMjMuODRhLjM4LjM4LDAs''@;'; + put 'put ''MCwwLS4zNS4yNmwtLjYsMmE2Ljg1LDYuODUsMCwwLDAtMS40NS42MWwtMS44MS0xYS4zOC4zOCwwLDAsMC0uNDQuMDZsLTEuNDcsMS40NGEuMzcuMzcsMCwwLDAtLjA3LjQ0bDEsMS44MkE3LjI0LDcuMjQsMCwwLDAsMTgsMjIuODNsLTIsLjYxYS4zNi4zNiwwLDAsMC0uMjYuMzV2Mi4wNWEu''@;'; + put 'put ''MzYuMzYsMCwwLDAsLjI2LjM1bDIsLjYxYTcuMjksNy4yOSwwLDAsMCwuNiwxLjQxbC0xLDEuOWEuMzcuMzcsMCwwLDAsLjA3LjQ0TDE5LjE2LDMyYS4zOC4zOCwwLDAsMCwuNDQuMDZsMS44Ny0xYTcuMDksNy4wOSwwLDAsMCwxLjQuNTdsLjYsMi4wNWEuMzguMzgsMCwwLDAsLjM2LjI2aDIu''@;'; + put 'put ''MDVhLjM4LjM4LDAsMCwwLC4zNS0uMjZsLjYtMi4wNWE2LjY4LDYuNjgsMCwwLDAsMS4zOC0uNTdsMS44OSwxYS4zOC4zOCwwLDAsMCwuNDQtLjA2TDMyLDMwLjU1YS4zOC4zOCwwLDAsMCwuMDYtLjQ0bC0xLTEuODhhNi45Miw2LjkyLDAsMCwwLC41Ny0xLjM4bDItLjYxYS4zOS4zOSwwLDAs''@;'; + put 'put ''MCwuMjctLjM1VjIzLjgyQS40LjQsMCwwLDAsMzMuNywyMy40NlptLTguODMsNC43MmEzLjM0LDMuMzQsMCwxLDEsMy4zMy0zLjM0QTMuMzQsMy4zNCwwLDAsMSwyNC44NywyOC4xOFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIC8+XG4gICAgICAgICcpLGUuQ2xy''@;'; + put 'put ''U2hhcGVIYXJkRHJpdmU9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTM0LDhhMiwyLDAsMCwwLTItMkg0QTIsMiwwLDAsMCwyLDhWMjhhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yWk0zMiwyOEg0VjhIMzJWMjhaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5l''@;'; + put 'put ''LXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjYuMjEiIGN5PSIxMC4yNSIgcj0iMS4yNSIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIyOS44MSIgY3k9IjEwLjI1IiByPSIxLjI1IiBjbGFz''@;'; + put 'put ''cz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjYuMjEiIGN5PSIyNS40MiIgcj0iMS4yNSIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIy''@;'; + put 'put ''OS44MSIgY3k9IjI1LjQyIiByPSIxLjI1IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMS44OCwxOC4wOGEzLjU5LDMuNTksMCwxLDAsMy41OS0zLjU5LDMuODQsMy44NCwwLDAsMC0uOTEuMTNMMTUsMTYuMTZh''@;'; + put 'put ''Mi4wOCwyLjA4LDAsMCwxLC41LS4wNywyLDIsMCwxLDEtMiwyLDEuNjQsMS42NCwwLDAsMSwuMDgtLjVMMTIsMTcuMTZBMy41MywzLjUzLDAsMCwwLDExLjg4LDE4LjA4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIC8+XG4gICAgICAgICAgICA8cGF0aCBk''@;'; + put 'put ''PSJNMTUuNDcsMjUuNzNhNy42Niw3LjY2LDAsMCwxLTcuNjUtNy42NSw3LjU1LDcuNTUsMCwwLDEsLjI3LTJMNi41NCwxNS43YTkuMjQsOS4yNCwwLDAsMCwxNy44LDQuOTVIMjIuNjZBNy42NCw3LjY0LDAsMCwxLDE1LjQ3LDI1LjczWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0''@;'; + put 'put ''bGluZS1wYXRoLTciIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjguMjIsMTcuODNhLjguOCwwLDAsMC0uOC0uOEgyNC42NmE5LjI2LDkuMjYsMCwwLDAtOS4xOS04LjIsOS4zNiw5LjM2LDAsMCwwLTIuMzguMzJsLjQyLDEuNTRhNy44Niw3Ljg2LDAsMCwxLDItLjI2QTcuNjYsNy42Niww''@;'; + put 'put ''LDAsMSwyMywxN0gyMC45MmEuOC44LDAsMCwwLDAsMS42aDYuNUEuOC44LDAsMCwwLDI4LjIyLDE3LjgzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTgiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIsNkg0QTIsMiwwLDAsMCwyLDhWMjhhMiwyLDAsMCww''@;'; + put 'put ''LDIsMkgzMmEyLDIsMCwwLDAsMi0yVjhBMiwyLDAsMCwwLDMyLDZaTTEyLDE3LjE2bDEuNTQuNDJhMS42NCwxLjY0LDAsMCwwLS4wOC41LDIsMiwwLDEsMCwyLTIsMi4wOCwyLjA4LDAsMCwwLS41LjA3bC0uNDEtMS41NGEzLjg0LDMuODQsMCwwLDEsLjkxLS4xMywzLjU5LDMuNTksMCwxLDEt''@;'; + put 'put ''My41OSwzLjU5QTMuNTMsMy41MywwLDAsMSwxMiwxNy4xNlpNNS4zMSw4QTEuMjUsMS4yNSwwLDEsMSw0LjA2LDkuMjUsMS4yNSwxLjI1LDAsMCwxLDUuMzEsOFptMCwyMC4wNmExLjI1LDEuMjUsMCwxLDEsMS4yNS0xLjI1QTEuMjUsMS4yNSwwLDAsMSw1LjMxLDI4LjA2Wm0xMC4xNi0uNzNB''@;'; + put 'put ''OS4yMiw5LjIyLDAsMCwxLDYuNTQsMTUuN2wxLjU1LjQxYTcuNTUsNy41NSwwLDAsMC0uMjcsMiw3LjY0LDcuNjQsMCwwLDAsMTQuODQsMi41N2gxLjY4QTkuMjUsOS4yNSwwLDAsMSwxNS40NywyNy4zM1ptMTItOC43aC02LjVhLjguOCwwLDAsMSwwLTEuNkgyM2E3LjY2LDcuNjYsMCwwLDAt''@;'; + put 'put ''Ny41Ny02LjYsNy44Niw3Ljg2LDAsMCwwLTIsLjI2bC0uNDItMS41NGE5LjM2LDkuMzYsMCwwLDEsMi4zOC0uMzJBOS4yNiw5LjI2LDAsMCwxLDI0LjY2LDE3aDIuNzZhLjguOCwwLDAsMSwwLDEuNlptMy4zOSw5LjQzYTEuMjUsMS4yNSwwLDEsMSwxLjI1LTEuMjVBMS4yNSwxLjI1LDAsMCwx''@;'; + put 'put ''LDMwLjgxLDI4LjA2Wm0wLTE3LjU2YTEuMjUsMS4yNSwwLDEsMSwxLjI1LTEuMjVBMS4yNSwxLjI1LDAsMCwxLDMwLjgxLDEwLjVaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAgICAnKSxlLkNsclNoYXBlSGFyZERyaXZlRGlza3M9KDAsYS5jbHJJ''@;'; + put 'put ''Y29uU1ZHKSgnPHBhdGggZD0iTTI2LDUuNzRBMS43NCwxLjc0LDAsMCwwLDI0LjI2LDRIMy43NEExLjc0LDEuNzQsMCwwLDAsMiw1Ljc0VjIwLjI2QTEuNzQsMS43NCwwLDAsMCwzLjc0LDIySDRWNkgyNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxu''@;'; + put 'put ''ICAgICAgICAgICAgPHBhdGggZD0iTTMwLDkuNzRBMS43NCwxLjc0LDAsMCwwLDI4LjI2LDhINy43NEExLjc0LDEuNzQsMCwwLDAsNiw5Ljc0VjI0LjI2QTEuNzQsMS43NCwwLDAsMCw3Ljc0LDI2SDhWMTBIMzBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIg''@;'; + put 'put ''Lz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMi4yNiwxMkgxMS43NEExLjc0LDEuNzQsMCwwLDAsMTAsMTMuNzRWMjguMjZBMS43NCwxLjc0LDAsMCwwLDExLjc0LDMwSDMyLjI2QTEuNzQsMS43NCwwLDAsMCwzNCwyOC4yNlYxMy43NEExLjc0LDEuNzQsMCwwLDAsMzIuMjYsMTJaTTMyLDI4''@;'; + put 'put ''SDEyVjE0SDMyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTkuOTQsMjMuNjhhMi42NCwyLjY0LDAsMSwwLTIuNy0yLjYzQTIuNjcsMi42NywwLDAsMCwxOS45NCwyMy42OFptMC0zLjg3YTEuMjQsMS4yNCww''@;'; + put 'put ''LDEsMS0xLjI5LDEuMjRBMS4yNywxLjI3LDAsMCwxLDE5Ljk0LDE5LjgxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTkuOTQsMTYuMjJhNC45Myw0LjkzLDAsMCwxLDQuOTUsNC4zNUgyMy43MVYyMmg0LjQx''@;'; + put 'put ''YS43LjcsMCwwLDAsMC0xLjRIMjYuMzFhNi4zMyw2LjMzLDAsMCwwLTYuMzctNS43NSw2LjU4LDYuNTgsMCwwLDAtMS40OC4xN2wuMzUsMS4zN0E0LjczLDQuNzMsMCwwLDEsMTkuOTQsMTYuMjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgLz5cbiAgICAg''@;'; + put 'put ''ICAgICAgIDxwYXRoIGQ9Ik0xOS45NCwyNy4yN2E2LjQyLDYuNDIsMCwwLDAsNS42Ny0zLjM1SDIzLjkzYTUsNSwwLDAsMS00LDEuOTUsNC45MSw0LjkxLDAsMCwxLTUtNC44Miw1LjE2LDUuMTYsMCwwLDEsLjA4LS43OUwxMy42MywyMGE3LDcsMCwwLDAtLjA5LDFBNi4zMiw2LjMyLDAsMCww''@;'; + put 'put ''LDE5Ljk0LDI3LjI3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYsNS43NEExLjc0LDEuNzQsMCwwLDAsMjQuMjYsNEgzLjc0QTEuNzQsMS43NCwwLDAsMCwyLDUuNzRWMjAuMjZBMS43NCwxLjc0LDAsMCww''@;'; + put 'put ''LDMuNzQsMjJINFY2SDI2WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMCw5Ljc0QTEuNzQsMS43NCwwLDAsMCwyOC4yNiw4SDcuNzRBMS43NCwxLjc0LDAsMCwwLDYsOS43NFYyNC4yNkExLjc0LDEuNzQsMCwwLDAs''@;'; + put 'put ''Ny43NCwyNkg4VjEwSDMwWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOS42MiwyMi42QTEuNTUsMS41NSwwLDEsMCwxOCwyMS4wNSwxLjYsMS42LDAsMCwwLDE5LjYyLDIyLjZaIiBjbGFzcz0iY2xyLWktc29saWQg''@;'; + put 'put ''Y2xyLWktc29saWQtcGF0aC0zIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMyLjI2LDEySDExLjc0QTEuNzQsMS43NCwwLDAsMCwxMCwxMy43NFYyOC4yNkExLjc0LDEuNzQsMCwwLDAsMTEuNzQsMzBIMzIuMjZBMS43NCwxLjc0LDAsMCwwLDM0LDI4LjI2VjEzLjc0QTEuNzQsMS43NCww''@;'; + put 'put ''LDAsMCwzMi4yNiwxMlpNMTkuNjIsMTcuNzRhMy4zMSwzLjMxLDAsMSwxLTMuMzgsMy4zMUEzLjM1LDMuMzUsMCwwLDEsMTkuNjIsMTcuNzRabTAsMTEuMTNhNy45NCw3Ljk0LDAsMCwxLTgtNy44Miw3LjgzLDcuODMsMCwwLDEsLjExLTEuMjlsMS43NS4zYTUuMzYsNS4zNiwwLDAsMC0uMTEs''@;'; + put 'put ''MSw2LjE4LDYuMTgsMCwwLDAsNi4yOCw2LjA2LDYuMzUsNi4zNSwwLDAsMCw1LTIuNDZoMi4xQTguMDYsOC4wNiwwLDAsMSwxOS42MiwyOC44N1pNMjkuODksMjIuMkgyNC4zNlYyMC40NGgxLjQ4QTYuMTksNi4xOSwwLDAsMCwxOS42MiwxNWE2LjQ4LDYuNDgsMCwwLDAtMS40MS4xNmwtLjQ1''@;'; + put 'put ''LTEuN2E4LjE2LDguMTYsMCwwLDEsMS44Ni0uMjIsOCw4LDAsMCwxLDgsNy4yMWgyLjI2YS44OC44OCwwLDAsMSwwLDEuNzZaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC00IiAvPlxuICAgICAgICAnKSxlLkNsclNoYXBlTlZNZT0oMCxhLmNsckljb25TVkcpKCc8cGF0''@;'; + put 'put ''aCBkPSJNMjcsMjJWMTRhMiwyLDAsMCwwLTItMkgxMWEyLDIsMCwwLDAtMiwydjhhMiwyLDAsMCwwLDIsMkgyNUEyLDIsMCwwLDAsMjcsMjJaTTExLDE0SDI1djhIMTFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9''@;'; + put 'put ''IjE5IiB5PSI2IiB3aWR0aD0iNCIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjI1LjAxIiB5PSI2IiB3aWR0aD0iMS45NyIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1v''@;'; + put 'put ''dXRsaW5lLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik01LjgsOEgxNi44N1Y2aC0xMUw3Ljc4LDQuMDhhMSwxLDAsMCwwLDAtMS40MiwxLDEsMCwwLDAtMS40MSwwTDIsNyw2LjM3LDExLjRhMSwxLDAsMCwwLDEuNDEsMCwxLDEsMCwwLDAsMC0xLjQxWiIgY2xhc3M9ImNsci1p''@;'; + put 'put ''LW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjkuNjEsMjQuNjhhMSwxLDAsMCwwLTEuNDEsMCwxLDEsMCwwLDAsMCwxLjQyTDMwLjEsMjhIMTl2MkgzMC4ybC0yLDJhMSwxLDAsMCwwLDAsMS40MSwxLDEsMCwwLDAsLjcuMjksMSwxLDAs''@;'; + put 'put ''MCwwLC43MS0uMjlMMzQsMjkuMDVaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjEzIiB5PSIyOCIgd2lkdGg9IjQiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYi''@;'; + put 'put ''IC8+XG4gICAgICAgICAgICA8cmVjdCB4PSI5IiB5PSIyOCIgd2lkdGg9IjEuOTciIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTciIC8+XG4gICAgICAgICcpLGUuQ2xyU2hhcGVTU0Q9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMyLDZI''@;'; + put 'put ''NEEyLDIsMCwwLDAsMiw4VjI4YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlY4QTIsMiwwLDAsMCwzMiw2Wm0wLDIySDRWOEgzMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iNi4yMSIgY3k9IjEw''@;'; + put 'put ''LjI1IiByPSIxLjI1IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjI5LjgxIiBjeT0iMTAuMjUiIHI9IjEuMjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPlxuICAgICAg''@;'; + put 'put ''ICAgICAgPGNpcmNsZSBjeD0iNi4yMSIgY3k9IjI1LjQyIiByPSIxLjI1IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjI5LjgxIiBjeT0iMjUuNDIiIHI9IjEuMjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNs''@;'; + put 'put ''ci1pLW91dGxpbmUtcGF0aC01IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTEwLDE4LjYyYzEuMzIuMzEsMS45MS41NCwxLjkxLDEuMjJzLS41MywxLjA5LTEuNTUsMS4wOWE0LDQsMCwwLDEtMi43MS0xLjExbC0uODYsMS4wNmE1LDUsMCwwLDAsMy41MiwxLjM0YzIsMCwzLjEtMSwzLjEt''@;'; + put 'put ''Mi41MnMtMS4xNS0yLjA1LTIuODctMi40NGMtMS4zMS0uMy0xLjkyLS41NC0xLjkyLTEuMjFBMS4yNSwxLjI1LDAsMCwxLDEwLDE1YTMuNjgsMy42OCwwLDAsMSwyLjM3LDFsLjgxLTEuMUE0LjU4LDQuNTgsMCwwLDAsMTAsMTMuNjljLTEuNzQsMC0zLDEuMDUtMywyLjQ5UzguMjYsMTguMjIs''@;'; + put 'put ''MTAsMTguNjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNy44MywyMC45M2E0LDQsMCwwLDEtMi43MS0xLjExbC0uODYsMS4wNmE1LDUsMCwwLDAsMy41MiwxLjM0YzIsMCwzLjEtMSwzLjEtMi41MlMxOS43''@;'; + put 'put ''MywxNy42NSwxOCwxNy4yNmMtMS4zMS0uMy0xLjkyLS41NC0xLjkyLTEuMjFBMS4yNSwxLjI1LDAsMCwxLDE3LjQ4LDE1YTMuNjgsMy42OCwwLDAsMSwyLjM3LDFsLjgxLTEuMWE0LjU2LDQuNTYsMCwwLDAtMy4xMi0xLjE1Yy0xLjczLDAtMywxLjA1LTMsMi40OXMxLjE5LDIsMi44OSwyLjQ0''@;'; + put 'put ''YzEuMzIuMzEsMS45MS41NCwxLjkxLDEuMjJTMTguODUsMjAuOTMsMTcuODMsMjAuOTNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNyIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOS45LDE4YzAtMi40MS0xLjkyLTQuMTItNC42NC00LjEyaC0yLjl2OC4y''@;'; + put 'put ''NGgyLjlDMjgsMjIuMDgsMjkuOSwyMC4zNywyOS45LDE4Wm0tNi0yLjc2aDEuNTZhMi43NywyLjc3LDAsMSwxLDAsNS41M0gyMy44NloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC04IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMyLDZINEEyLDIsMCwwLDAs''@;'; + put 'put ''Miw4VjI4YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlY4QTIsMiwwLDAsMCwzMiw2Wk01LjIxLDhBMS4yNSwxLjI1LDAsMSwxLDQsOS4yNSwxLjI1LDEuMjUsMCwwLDEsNS4yMSw4Wm0wLDIwYTEuMjUsMS4yNSwwLDEsMSwxLjI1LTEuMjVBMS4yNSwxLjI1LDAsMCwxLDUuMjEsMjha''@;'; + put 'put ''bTUuMDYtNS43OGE1LDUsMCwwLDEtMy41Mi0xLjM0bC44Ni0xLjA2YTQsNCwwLDAsMCwyLjcxLDEuMTFjMSwwLDEuNTUtLjUsMS41NS0xLjA5cy0uNTktLjkxLTEuOTEtMS4yMmMtMS43LS40LTIuODktLjg5LTIuODktMi40NHMxLjIyLTIuNDksMy0yLjQ5YTQuNTgsNC41OCwwLDAsMSwzLjEy''@;'; + put 'put ''LDEuMTVsLS44MSwxLjFBMy42OCwzLjY4LDAsMCwwLDEwLDE1YTEuMjUsMS4yNSwwLDAsMC0xLjM5LDEuMDhjMCwuNjcuNjEuOTEsMS45MiwxLjIxLDEuNzIuMzksMi44Ny45NCwyLjg3LDIuNDRTMTIuMjQsMjIuMjIsMTAuMjcsMjIuMjJabTcuNTEsMGE1LDUsMCwwLDEtMy41Mi0xLjM0bC44''@;'; + put 'put ''Ni0xLjA2YTQsNCwwLDAsMCwyLjcxLDEuMTFjMSwwLDEuNTUtLjUsMS41NS0xLjA5cy0uNTktLjkxLTEuOTEtMS4yMmMtMS43LS40LTIuODktLjg5LTIuODktMi40NHMxLjIzLTIuNDksMy0yLjQ5YTQuNTYsNC41NiwwLDAsMSwzLjEyLDEuMTVsLS44MSwxLjFhMy42OCwzLjY4LDAsMCwwLTIu''@;'; + put 'put ''MzctMSwxLjI1LDEuMjUsMCwwLDAtMS4zOSwxLjA4YzAsLjY3LjYxLjkxLDEuOTIsMS4yMSwxLjcyLjM5LDIuODcuOTQsMi44NywyLjQ0UzE5Ljc1LDIyLjIyLDE3Ljc4LDIyLjIyWm00LjU4LS4xNFYxMy44NGgyLjljMi43MiwwLDQuNjQsMS43MSw0LjY0LDQuMTJTMjgsMjIuMDgsMjUuMjYs''@;'; + put 'put ''MjIuMDhaTTMwLjY5LDI4YTEuMjUsMS4yNSwwLDEsMSwxLjI1LTEuMjVBMS4yNSwxLjI1LDAsMCwxLDMwLjY5LDI4Wm0wLTE3LjVhMS4yNSwxLjI1LDAsMSwxLDEuMjUtMS4yNUExLjI1LDEuMjUsMCwwLDEsMzAuNjksMTAuNVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRo''@;'; + put 'put ''LTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjMuODYsMTUuMmgxLjU2YTIuNzcsMi43NywwLDEsMSwwLDUuNTNIMjMuODZaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPlxuICAgICAgICAnKSxlLkNsclNoYXBlQmx1ZXRvb3RoPSgwLGEuY2xySWNvblNW''@;'; + put 'put ''RykoJzxwYXRoIGQ9Ik0yNi42NCwyNS4yNywxOSwxNy41MywxOSwzLDI1LjIxLDkuNGwtNS42NSw1Ljc5TDIxLDE2LjYybDUuNjgtNS44MmEyLDIsMCwwLDAsMC0yLjc4TDIwLjQ4LDEuN0EyLjA4LDIuMDgsMCwwLDAsMTguODUsMSwyLDIsMCwwLDAsMTcsM1YxNS4zOEwxMC4wNSw4LjI3QTEs''@;'; + put 'put ''MSwwLDAsMCw4LjYyLDkuNjZMMTYuNzksMTgsOS4wNiwyNmExLDEsMCwwLDAsMCwxLjQxLDEsMSwwLDAsMCwuNy4yOSwxLDEsMCwwLDAsLjcyLS4zMUwxNywyMC42OFYzM2EyLjA3LDIuMDcsMCwwLDAsLjcxLDEuNjJBMiwyLDAsMCwwLDE5LDM1YTEuOTQsMS45NCwwLDAsMCwxLjQyLS42bDYu''@;'; + put 'put ''MjMtNi4zOEEyLDIsMCwwLDAsMjYuNjQsMjUuMjdaTTE5LDMzLjA1VjIwLjI5bDYuMjEsNi4zNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICA8cGF0aCBkPSJNMjYuNTIsMjQuNTJsLTUuNjUtNS44My0xLjQ2LTEuNXYtMTJMMjMuNzksOS43bC0z''@;'; + put 'put ''LjYsMy43MSwyLjI0LDIuMjksNC4wOS00LjIyYTIuNTQsMi41NCwwLDAsMCwwLTMuNTZMMjAuNTcsMS43OEEyLjU0LDIuNTQsMCwwLDAsMTYuMiwzLjU1VjEzLjg2bC01LjUzLTUuN2ExLjYsMS42LDAsMSwwLTIuMywyLjIzTDE1Ljc1LDE4bC03LDcuMTlhMS42LDEuNiwwLDAsMCwwLDIuMjYs''@;'; + put 'put ''MS42MywxLjYzLDAsMCwwLDEuMTIuNDUsMS41OCwxLjU4LDAsMCwwLDEuMTUtLjQ5bDUuMTEtNS4yN1YzMi40NWEyLjUzLDIuNTMsMCwwLDAsMS41OSwyLjM2LDIuNDQsMi40NCwwLDAsMCwuOTUuMTksMi41NiwyLjU2LDAsMCwwLDEuODMtLjc3bDUuOTUtNi4xNUEyLjU0LDIuNTQsMCwwLDAs''@;'; + put 'put ''MjYuNTIsMjQuNTJaTTE5LjQsMzAuODNWMjEuNzdsNC4zOSw0LjUzWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz4nKSxlLkNsclNoYXBlQmx1ZXRvb3RoT2ZmPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xOSwzLDI1LjIyLDkuNGwtNS42Niw1LjhMMjEs''@;'; + put 'put ''MTYuNjNsNS42OC01LjgzYTIsMiwwLDAsMCwwLTIuNzhMMjAuNDgsMS43QTIsMiwwLDAsMCwxOC44NSwxLDIsMiwwLDAsMCwxNywzdjExLjRsMiwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTQuNzcsNSwzLjM2LDYuNDIsMTUuODks''@;'; + put 'put ''MTksOS4wNiwyNmExLDEsMCwwLDAsLjcxLDEuNywxLDEsMCwwLDAsLjcyLS4zMUwxNywyMC42OFYzMi45NGEyLjA4LDIuMDgsMCwwLDAsLjcxLDEuNjNBMiwyLDAsMCwwLDE5LDM1YTIsMiwwLDAsMCwxLjQyLS42bDUuNDEtNS41NCwzLjU0LDMuNTNMMzAuNzcsMzFaTTE5LDMzLjA1di0xMWw1''@;'; + put 'put ''LjQxLDUuNDFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMTkuMzEsNS4xNywyMy43LDkuN2wtMy41OSwzLjcxLDIuMjQsMi4yOSw0LjA5LTQuMjJhMi41NiwyLjU2LDAsMCwwLDAtMy41NmwtNi02LjE0YTIuNTEsMi41MSwwLDAsMC0y''@;'; + put 'put ''Ljc3LS41OSwyLjU0LDIuNTQsMCwwLDAtMS42LDIuMzZ2MTBsMy4yMSwzLjIxWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz48cGF0aCBkPSJNNC41LDUsMy4wOSw2LjQyLDE1LjE3LDE4LjUxLDguNywyNS4xOUExLjYsMS42LDAsMCwwLDkuODUsMjcuOSwxLjU3''@;'; + put 'put ''LDEuNTcsMCwwLDAsMTEsMjcuNDFsNS4xMS01LjI3VjMyLjQ1YTIuNTQsMi41NCwwLDAsMCwxLjYsMi4zNiwyLjQ0LDIuNDQsMCwwLDAsLjk1LjE5LDIuNTUsMi41NSwwLDAsMCwxLjgyLS43N2w1LjEyLTUuMjksMy40OSwzLjQ4TDMwLjUsMzFaTTE5LjgxLDMwLjgzVjIyLjY1bDQsNFoiIGNs''@;'; + put 'put ''YXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+JyksZS5DbHJTaGFwZVByb2Nlc3NPblZNPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMy40OSwyNi4yOGExLDEsMCwwLDAtMS4yLS43bC0yLjQ5LjY3YTE0LjIzLDE0LjIzLDAsMCwwLDIuNC02Ljc1QTE0LjQ4LDE0''@;'; + put 'put ''LjQ4LDAsMCwwLDI3LjM3LDcuMzUsMSwxLDAsMCwwLDI2LDcuNDRhMSwxLDAsMCwwLC4wOSwxLjQxLDEyLjQ1LDEyLjQ1LDAsMCwxLDQuMTYsMTAuNDYsMTIuMTksMTIuMTksMCwwLDEtMiw1Ljc0TDI4LDIyLjU0YTEsMSwwLDEsMC0xLjk1LjE2bC41LDYuNDQsNi4yNS0xLjY2QTEsMSwwLDAs''@;'; + put 'put ''MCwzMy40OSwyNi4yOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik00LjMxLDE3LjA4YTEuMDYsMS4wNiwwLDAsMCwuNDQuMTYsMSwxLDAsMCwwLDEuMTItLjg1QTEyLjIxLDEyLjIxLDAsMCwxLDE4LjY5LDUuODRMMTYuNDUsNy4zN2Ex''@;'; + put 'put ''LDEsMCwwLDAsLjQ3LDEuNzlBMSwxLDAsMCwwLDE3LjU2LDlsNS4zMy0zLjY2TDE4LjMzLjc2YTEsMSwwLDEsMC0xLjM5LDEuMzhsMS43LDEuN0ExNC4yLDE0LjIsMCwwLDAsMy44OSwxNi4xMiwxLDEsMCwwLDAsNC4zMSwxNy4wOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxp''@;'; + put 'put ''bmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0yMS43MywyOS45M2ExMiwxMiwwLDAsMS00Ljg0LjUxLDEyLjMsMTIuMywwLDAsMS05LjU3LTYuM2wyLjQ5LjkzYTEsMSwwLDAsMCwuNjktMS44NGwtNC41OS0xLjdoMEw0LjQ0LDIxLDMuMzMsMjcuMzVhMSwxLDAsMCwwLC43OSwxLjEzbC4xNywwYTEs''@;'; + put 'put ''MSwwLDAsMCwxLS44MWwuNDItMi40YTE0LjMsMTQuMywwLDAsMCwxMSw3LjE0LDEzLjkxLDEzLjkxLDAsMCwwLDUuNjMtLjYsMSwxLDAsMCwwLS42LTEuOVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0yMiwxM0gxNGExLDEsMCwwLDAt''@;'; + put 'put ''MSwxdjhhMSwxLDAsMCwwLDEsMWg4YTEsMSwwLDAsMCwxLTFWMTRBMSwxLDAsMCwwLDIyLDEzWm0tMSw4SDE1VjE1aDZaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz4nKSxlLkNsclNoYXBlQXNzaWduVXNlcj0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBk''@;'; + put 'put ''PSJNMTgsMTdhNy40Niw3LjQ2LDAsMSwwLTcuNDUtNy40NkE3LjQ2LDcuNDYsMCwwLDAsMTgsMTdaTTE4LDQuMDdhNS40Niw1LjQ2LDAsMSwxLTUuNDUsNS40NUE1LjQ2LDUuNDYsMCwwLDEsMTgsNC4wN1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxw''@;'; + put 'put ''YXRoIGQ9Ik02LDMxLjg5VjI1Ljc3YTE2LjEzLDE2LjEzLDAsMCwxLDEyLTUsMTYuNjEsMTYuNjEsMCwwLDEsOC43MSwyLjMzbDEuMzUtMS41MUExOC41MywxOC41MywwLDAsMCwxOCwxOC43NCwxNy43LDE3LjcsMCwwLDAsNC4yMSwyNC44YTEsMSwwLDAsMC0uMjEuNnY2LjQ5QTIuMDYsMi4w''@;'; + put 'put ''NiwwLDAsMCw2LDM0SDE4LjM5bC0xLjktMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0zMCwzMS44OSwzMCwzMkgyNi44NWwtMS44LDJIMzBhMi4wNiwyLjA2LDAsMCwwLDItMi4wN1YyNi4ybC0yLDIuMjNaIiBjbGFzcz0iY2xyLWkt''@;'; + put 'put ''b3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz48cGF0aCBkPSJNMzQuNzYsMTguNjJhMSwxLDAsMCwwLTEuNDEuMDhsLTExLjYyLDEzLTUuMi01LjU5QTEsMSwwLDAsMCwxNS4xMiwyNmExLDEsMCwwLDAtLjA2LDEuNDJsNi42OSw3LjJMMzQuODQsMjBBMSwxLDAsMCwwLDM0Ljc2LDE4''@;'; + put 'put ''LjYyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+PGNpcmNsZSBjeD0iMTcuOTkiIGN5PSIxMC4zNiIgcj0iNi44MSIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz48cGF0aCBkPSJNMTIsMjYuNjVhMi44LDIuOCwwLDAsMSw0''@;'; + put 'put ''Ljg1LTEuOEwyMC43MSwyOWw2Ljg0LTcuNjNBMTYuODEsMTYuODEsMCwwLDAsMTgsMTguNTUsMTYuMTMsMTYuMTMsMCwwLDAsNS41LDI0YTEsMSwwLDAsMC0uMi42MVYzMGEyLDIsMCwwLDAsMS45NCwyaDguNTdsLTMuMDctMy4zQTIuODEsMi44MSwwLDAsMSwxMiwyNi42NVoiIGNsYXNzPSJj''@;'; + put 'put ''bHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+PHBhdGggZD0iTTI4Ljc2LDMyYTIsMiwwLDAsMCwxLjk0LTJWMjYuMjRMMjUuNTcsMzJaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0zMy43NywxOC42MmExLDEsMCwwLDAtMS40Mi4w''@;'; + put 'put ''OGwtMTEuNjIsMTMtNS4yLTUuNTlBMSwxLDAsMCwwLDE0LjEyLDI2YTEsMSwwLDAsMCwwLDEuNDJsNi42OCw3LjJMMzMuODQsMjBBMSwxLDAsMCwwLDMzLjc3LDE4LjYyWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNCIgLz4nKSxlLkNsclNoYXBlQXRvbT0oMCxhLmNs''@;'; + put 'put ''ckljb25TVkcpKCc8cGF0aCBkPSJNMTgsMTQuMDVhNCw0LDAsMSwwLDQsNEE0LDQsMCwwLDAsMTgsMTQuMDVabTAsNi40NGEyLjQyLDIuNDIsMCwxLDEsMi40Mi0yLjQyQTIuNDIsMi40MiwwLDAsMSwxOCwyMC40OVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0x''@;'; + put 'put ''IiAvPjxwYXRoIGQ9Ik0yNC4yMywxMS43MWEzOS4xNCwzOS4xNCwwLDAsMC00LjU3LTMuOTIsMjIuODYsMjIuODYsMCwwLDEsMy40OC0xLjcyYy4zMi0uMTIuNjItLjIxLjkyLS4zYTIuMjgsMi4yOCwwLDAsMCwzLjgxLS40NiwzLjMxLDMuMzEsMCwwLDEsMS45Mi44NGMxLjE5LDEuMTksMS4y''@;'; + put 'put ''MiwzLjU5LjEsNi41OC40OS42NS45NCwxLjMxLDEuMzUsMiwuMTctLjQuMzUtLjc5LjQ5LTEuMTgsMS40Ny0zLjg1LDEuMjgtNy0uNTMtOC43OGE1LjI5LDUuMjksMCwwLDAtMy4zMy0xLjQ0LDIuMjksMi4yOSwwLDAsMC00LjMxLjU0Yy0uMzcuMTEtLjc0LjIyLTEuMTMuMzdhMjUuNzksMjUu''@;'; + put 'put ''NzksMCwwLDAtNC41NywyLjM1QTI2LjIxLDI2LjIxLDAsMCwwLDEzLjI4LDQuMmMtMy44NS0xLjQ2LTctMS4yOC04Ljc3LjUzQzIuODUsNi40LDIuNTgsOS4xNywzLjY4LDEyLjU5YTIuMjgsMi4yOCwwLDAsMCwxLjU5LDMuNjdjLjMyLjYxLjY3LDEuMjIsMS4wNiwxLjgyQTI1LjU0LDI1LjU0''@;'; + put 'put ''LDAsMCwwLDQsMjIuNjZjLTEuNDcsMy44NC0xLjI4LDcsLjUzLDguNzdhNS42Myw1LjYzLDAsMCwwLDQuMTIsMS41MSwxMy4zNCwxMy4zNCwwLDAsMCw0LjY1LTEsMjYuMjEsMjYuMjEsMCwwLDAsNC41OC0yLjM1QTI1Ljc5LDI1Ljc5LDAsMCwwLDIyLjQzLDMyYTE0LjE2LDE0LjE2LDAsMCww''@;'; + put 'put ''LDMuNjUuOUEyLjMsMi4zLDAsMCwwLDMwLjQ2LDMyYTQuNTUsNC41NSwwLDAsMCwuNzQtLjU3YzEuODEtMS44MSwyLTQuOTMuNTMtOC43N0EzMi42OCwzMi42OCwwLDAsMCwyNC4yMywxMS43MVpNMTIuNTcsMzAuMDljLTMsMS4xNS01LjQ1LDEuMTMtNi42NS0uMDhzLTEuMjMtMy42Mi0uMDct''@;'; + put 'put ''Ni42NGEyMi43NywyMi43NywwLDAsMSwxLjcxLTMuNDgsNDAuMTksNDAuMTksMCwwLDAsMy45Miw0LjU2Yy40My40My44Ny44NSwxLjMxLDEuMjVxLjktLjQ2LDEuODMtMS4wNWMtLjU4LS41Mi0xLjE2LTEtMS43Mi0xLjYxYTM0LDM0LDAsMCwxLTUuNzQtNy40N0EyLjI5LDIuMjksMCwwLDAs''@;'; + put 'put ''NS41LDExLjY5aDBjLS43NS0yLjUtLjYyLTQuNDkuNDMtNS41NGEzLjcyLDMuNzIsMCwwLDEsMi43Mi0uOTIsMTEuNCwxMS40LDAsMCwxLDMuOTMuODQsMjIuODYsMjIuODYsMCwwLDEsMy40OCwxLjcyLDM5LjE0LDM5LjE0LDAsMCwwLTQuNTcsMy45MmMtLjQ0LjQ0LS44Ny45LTEuMjksMS4z''@;'; + put 'put ''NmEyMC4yNywyMC4yNywwLDAsMCwxLDEuODVjLjU0LS42MSwxLjA5LTEuMjEsMS42OC0xLjhhMzYuMzMsMzYuMzMsMCwwLDEsNS00LjE3LDM2Ljg4LDM2Ljg4LDAsMCwxLDQuOTUsNC4xNywzNi4yNiwzNi4yNiwwLDAsMSw0LjE3LDUsMzcsMzcsMCwwLDEtNC4xNyw1QTMwLjY4LDMwLjY4LDAs''@;'; + put 'put ''MCwxLDEyLjU3LDMwLjA5Wk0yOS43OSwzMGwtLjE2LjEzYTIuMjcsMi4yNywwLDAsMC0zLjUuNzIsMTIuNTcsMTIuNTcsMCwwLDEtMy0uNzcsMjIsMjIsMCwwLDEtMy40OC0xLjcyLDM5LjE0LDM5LjE0LDAsMCwwLDQuNTctMy45MiwzOC4yNiwzOC4yNiwwLDAsMCwzLjkyLTQuNTYsMjIuODgs''@;'; + put 'put ''MjIuODgsMCwwLDEsMS43MiwzLjQ4QzMxLDI2LjM5LDMxLDI4LjgxLDI5Ljc5LDMwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTI0LjIzLDExLjcxYTM5LjE0LDM5LjE0LDAsMCwwLTQuNTctMy45MiwyMi44NiwyMi44NiwwLDAsMSwz''@;'; + put 'put ''LjQ4LTEuNzJjLjMyLS4xMi42Mi0uMjEuOTItLjNhMi4yOCwyLjI4LDAsMCwwLDMuODEtLjQ2LDMuMzEsMy4zMSwwLDAsMSwxLjkyLjg0YzEuMTksMS4xOSwxLjIyLDMuNTkuMSw2LjU4LjQ5LjY1Ljk0LDEuMzEsMS4zNSwyLC4xNy0uNC4zNS0uNzkuNDktMS4xOCwxLjQ3LTMuODUsMS4yOC03''@;'; + put 'put ''LS41My04Ljc4YTUuMjksNS4yOSwwLDAsMC0zLjMzLTEuNDQsMi4yOSwyLjI5LDAsMCwwLTQuMzEuNTRjLS4zNy4xMS0uNzQuMjItMS4xMy4zN2EyNS43OSwyNS43OSwwLDAsMC00LjU3LDIuMzVBMjYuMjEsMjYuMjEsMCwwLDAsMTMuMjgsNC4yYy0zLjg1LTEuNDYtNy0xLjI4LTguNzcuNTND''@;'; + put 'put ''Mi44NSw2LjQsMi41OCw5LjE3LDMuNjgsMTIuNTlhMi4yOCwyLjI4LDAsMCwwLDEuNTksMy42N2MuMzIuNjEuNjcsMS4yMiwxLjA2LDEuODJBMjUuNTQsMjUuNTQsMCwwLDAsNCwyMi42NmMtMS40NywzLjg0LTEuMjgsNywuNTMsOC43N2E1LjYzLDUuNjMsMCwwLDAsNC4xMiwxLjUxLDEzLjM0''@;'; + put 'put ''LDEzLjM0LDAsMCwwLDQuNjUtMSwyNi4yMSwyNi4yMSwwLDAsMCw0LjU4LTIuMzVBMjUuNzksMjUuNzksMCwwLDAsMjIuNDMsMzJhMTQuMTYsMTQuMTYsMCwwLDAsMy42NS45QTIuMywyLjMsMCwwLDAsMzAuNDYsMzJhNC41NSw0LjU1LDAsMCwwLC43NC0uNTdjMS44MS0xLjgxLDItNC45My41''@;'; + put 'put ''My04Ljc3QTMyLjY4LDMyLjY4LDAsMCwwLDI0LjIzLDExLjcxWk0xMi41NywzMC4wOWMtMywxLjE1LTUuNDUsMS4xMy02LjY1LS4wOHMtMS4yMy0zLjYyLS4wNy02LjY0YTIyLjc3LDIyLjc3LDAsMCwxLDEuNzEtMy40OCw0MC4xOSw0MC4xOSwwLDAsMCwzLjkyLDQuNTZjLjQzLjQzLjg3Ljg1''@;'; + put 'put ''LDEuMzEsMS4yNXEuOS0uNDYsMS44My0xLjA1Yy0uNTgtLjUyLTEuMTYtMS0xLjcyLTEuNjFhMzQsMzQsMCwwLDEtNS43NC03LjQ3QTIuMjksMi4yOSwwLDAsMCw1LjUsMTEuNjloMGMtLjc1LTIuNS0uNjItNC40OS40My01LjU0YTMuNzIsMy43MiwwLDAsMSwyLjcyLS45MiwxMS40LDExLjQs''@;'; + put 'put ''MCwwLDEsMy45My44NCwyMi44NiwyMi44NiwwLDAsMSwzLjQ4LDEuNzIsMzkuMTQsMzkuMTQsMCwwLDAtNC41NywzLjkyYy0uNDQuNDQtLjg3LjktMS4yOSwxLjM2YTIwLjI3LDIwLjI3LDAsMCwwLDEsMS44NWMuNTQtLjYxLDEuMDktMS4yMSwxLjY4LTEuOGEzNi4zMywzNi4zMywwLDAsMSw1''@;'; + put 'put ''LTQuMTcsMzYuODgsMzYuODgsMCwwLDEsNC45NSw0LjE3LDM2LjI2LDM2LjI2LDAsMCwxLDQuMTcsNSwzNywzNywwLDAsMS00LjE3LDVBMzAuNjgsMzAuNjgsMCwwLDEsMTIuNTcsMzAuMDlaTTI5Ljc5LDMwbC0uMTYuMTNhMi4yNywyLjI3LDAsMCwwLTMuNS43MiwxMi41NywxMi41NywwLDAs''@;'; + put 'put ''MS0zLS43NywyMiwyMiwwLDAsMS0zLjQ4LTEuNzIsMzkuMTQsMzkuMTQsMCwwLDAsNC41Ny0zLjkyLDM4LjI2LDM4LjI2LDAsMCwwLDMuOTItNC41NiwyMi44OCwyMi44OCwwLDAsMSwxLjcyLDMuNDhDMzEsMjYuMzksMzEsMjguODEsMjkuNzksMzBaIiBjbGFzcz0iY2xyLWktc29saWQgY2xy''@;'; + put 'put ''LWktc29saWQtcGF0aC0xIiAvPjxjaXJjbGUgY3g9IjE3Ljk5IiBjeT0iMTguMDciIHI9IjMuMyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTIuNjYgMy4xMSkgcm90YXRlKC05LjIyKSIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz4nKSxlLkNsclNoYXBlQmFyQ29k''@;'; + put 'put ''ZT0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNNSw3QTEsMSwwLDAsMCw0LDhWMzBhMSwxLDAsMCwwLDIsMFY4QTEsMSwwLDAsMCw1LDdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNOSw3QTEsMSwwLDAsMCw4LDhWMjZhMSwxLDAs''@;'; + put 'put ''MCwwLDIsMFY4QTEsMSwwLDAsMCw5LDdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMTMsN2ExLDEsMCwwLDAtMSwxVjI2YTEsMSwwLDAsMCwyLDBWOEExLDEsMCwwLDAsMTMsN1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91''@;'; + put 'put ''dGxpbmUtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0xNyw3YTEsMSwwLDAsMC0xLDFWMjZhMSwxLDAsMCwwLDIsMFY4QTEsMSwwLDAsMCwxNyw3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+PHBhdGggZD0iTTIxLDdhMSwxLDAsMCwwLTEsMVYyNmExLDEsMCww''@;'; + put 'put ''LDAsMiwwVjhBMSwxLDAsMCwwLDIxLDdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgLz48cGF0aCBkPSJNMjUsN2ExLDEsMCwwLDAtMSwxVjI2YTEsMSwwLDAsMCwyLDBWOEExLDEsMCwwLDAsMjUsN1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91''@;'; + put 'put ''dGxpbmUtcGF0aC02IiAvPjxwYXRoIGQ9Ik0yOSw3YTEsMSwwLDAsMC0xLDFWMjZhMSwxLDAsMCwwLDIsMFY4QTEsMSwwLDAsMCwyOSw3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTciIC8+PHBhdGggZD0iTTMzLDdhMSwxLDAsMCwwLTEsMVYzMGExLDEsMCww''@;'; + put 'put ''LDAsMiwwVjhBMSwxLDAsMCwwLDMzLDdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtOCIgLz4nKSxlLkNsclNoYXBlQ2REdmQ9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlptMCwzMEEx''@;'; + put 'put ''NCwxNCwwLDEsMSwzMiwxOCwxNCwxNCwwLDAsMSwxOCwzMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0yMi4zMywxOGE0LjQ2LDQuNDYsMCwxLDAtNC40NSw0LjQ2QTQuNDYsNC40NiwwLDAsMCwyMi4zMywxOFpNMTcuODgsMjAuOUEy''@;'; + put 'put ''Ljg2LDIuODYsMCwxLDEsMjAuNzMsMTgsMi44NiwyLjg2LDAsMCwxLDE3Ljg4LDIwLjlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMTcuODgsNy40M0gxOFY1Ljg0aC0uMTJBMTIuMjEsMTIuMjEsMCwwLDAsNS42OCwxNy43NWgxLjZB''@;'; + put 'put ''MTAuNjEsMTAuNjEsMCwwLDEsMTcuODgsNy40M1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0zMC4wOCwxOEgyOC40OXYwQTEwLjYxLDEwLjYxLDAsMCwxLDE4LjI1LDI4LjYzdjEuNkExMi4yMiwxMi4yMiwwLDAsMCwzMC4wOSwxOFMz''@;'; + put 'put ''MC4wOCwxOCwzMC4wOCwxOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPjxwYXRoIGQ9Ik0xOCwxMVY5LjQ0aC0uMTJhOC42Miw4LjYyLDAsMCwwLTguNiw4LjMyaDEuNmE3LDcsMCwwLDEsNy02LjcyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWkt''@;'; + put 'put ''b3V0bGluZS1wYXRoLTUiIC8+PHBhdGggZD0iTTE4LjI1LDI1djEuNkE4LjYxLDguNjEsMCwwLDAsMjYuNDgsMTh2MGgtMS42djBBNyw3LDAsMCwxLDE4LjI1LDI1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIC8+PHBhdGggZD0iTTE4LjE3LDEuOTJhMTYs''@;'; + put 'put ''MTYsMCwxLDAsMTYsMTZBMTYsMTYsMCwwLDAsMTguMTcsMS45MlpNMjYuMjMsMThoMS41NGE5LjYxLDkuNjEsMCwwLDEtOS42LDkuNTNIMThWMjZoLjE3QTguMDcsOC4wNywwLDAsMCwyNi4yMywxOFpNNi4wNSwxOEg0LjQ1di0uMDhBMTMuNzIsMTMuNzIsMCwwLDEsMTgsNC4yMXYxLjZBMTIu''@;'; + put 'put ''MTMsMTIuMTMsMCwwLDAsNi4wNSwxNy45MlptNC4wNSwwSDguNTZ2LS4wOEE5LjYxLDkuNjEsMCwwLDEsMTgsOC4zMlY5Ljg2YTguMDcsOC4wNywwLDAsMC03LjksOC4wNlptNC4zMi0uMDhhMy43NSwzLjc1LDAsMSwxLDMuNzUsMy43NUEzLjc1LDMuNzUsMCwwLDEsMTQuNDIsMTcuOTJabTMu''@;'; + put 'put ''NzUsMTMuNzFIMThWMzBoLjE3QTEyLjEzLDEyLjEzLDAsMCwwLDMwLjI4LDE4aDEuNkExMy43MywxMy43MywwLDAsMSwxOC4xNywzMS42M1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+JyksZS5DbHJTaGFwZUNvbnRhaW5lcj0oMCxhLmNsckljb25TVkcpKCc8''@;'; + put 'put ''cGF0aCBkPSJNMzIsMzBINGEyLDIsMCwwLDEtMi0yVjhBMiwyLDAsMCwxLDQsNkgzMmEyLDIsMCwwLDEsMiwyVjI4QTIsMiwwLDAsMSwzMiwzMFpNNCw4VjI4SDMyVjhaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNOSwyNS4zYS44Ljgs''@;'; + put 'put ''MCwwLDEtLjgtLjh2LTEzYS44LjgsMCwwLDEsMS42LDB2MTNBLjguOCwwLDAsMSw5LDI1LjNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMTQuOTIsMjUuM2EuOC44LDAsMCwxLS44LS44di0xM2EuOC44LDAsMCwxLDEuNiwwdjEzQS44''@;'; + put 'put ''LjgsMCwwLDEsMTQuOTIsMjUuM1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0yMSwyNS4zYS44LjgsMCwwLDEtLjgtLjh2LTEzYS44LjgsMCwwLDEsMS42LDB2MTNBLjguOCwwLDAsMSwyMSwyNS4zWiIgY2xhc3M9ImNsci1pLW91dGxp''@;'; + put 'put ''bmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+PHBhdGggZD0iTTI3LDI1LjNhLjguOCwwLDAsMS0uOC0uOHYtMTNhLjguOCwwLDAsMSwxLjYsMHYxM0EuOC44LDAsMCwxLDI3LDI1LjNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgLz48cGF0aCBkPSJNMzIs''@;'; + put 'put ''Nkg0QTIsMiwwLDAsMCwyLDhWMjhhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjhBMiwyLDAsMCwwLDMyLDZaTTkuNjMsMjQuMjNhLjc5Ljc5LDAsMCwxLS44MS43N0EuNzkuNzksMCwwLDEsOCwyNC4yM1YxMS43N0EuNzkuNzksMCwwLDEsOC44MiwxMWEuNzkuNzksMCwwLDEsLjgx''@;'; + put 'put ''Ljc3Wm02LDBhLjc5Ljc5LDAsMCwxLS44Mi43Ny43OS43OSwwLDAsMS0uODEtLjc3VjExLjc3YS43OS43OSwwLDAsMSwuODEtLjc3Ljc5Ljc5LDAsMCwxLC44Mi43N1ptNi4yMSwwYS43OS43OSwwLDAsMS0uODIuNzcuNzkuNzksMCwwLDEtLjgxLS43N1YxMS43N2EuNzkuNzksMCwwLDEsLjgx''@;'; + put 'put ''LS43Ny43OS43OSwwLDAsMSwuODIuNzdabTYuMTIsMGEuNzkuNzksMCwwLDEtLjgyLjc3Ljc5Ljc5LDAsMCwxLS44MS0uNzdWMTEuNzdhLjc5Ljc5LDAsMCwxLC44MS0uNzcuNzkuNzksMCwwLDEsLjgyLjc3WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz4nKSxl''@;'; + put 'put ''LkNsclNoYXBlQ29udGFpbmVyVm9sdW1lPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik04LDE3LjU4YTMyLjM1LDMyLjM1LDAsMCwwLDYuMy45Miw0LjEzLDQuMTMsMCwwLDEsLjkyLTEuMzcsMzAuOTQsMzAuOTQsMCwwLDEtNy4yMi0xWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWkt''@;'; + put 'put ''b3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTYsMjhWOC4xOWMuMzQtLjc2LDQuMzEtMi4xMSwxMS0yLjExczEwLjY3LDEuMzUsMTEsMnYuM2MtLjgyLjc5LTQuNTgsMi4wNS0xMS4xMSwyLjA1QTMzLjQ4LDMzLjQ4LDAsMCwxLDgsOS40NHYxLjQ0YTM1LjYsMzUuNiwwLDAsMCw4Ljg5LDFj''@;'; + put 'put ''NC4yOSwwLDguOC0uNTgsMTEuMTEtMS44MnY1LjA3YTUuMyw1LjMsMCwwLDEtMS44MS44OEgzMFY4LjEyYzAtMy4xOS04LjE3LTQtMTMtNHMtMTMsLjg1LTEzLDRWMjhDNCwzMC42Myw5LjM5LDMxLjY4LDE0LDMyVjMwQzkuMTMsMjkuNjYsNi4yOCwyOC42Miw2LDI4WiIgY2xhc3M9ImNsci1p''@;'; + put 'put ''LW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTgsMjQuMjhhMzEuMywzMS4zLDAsMCwwLDYsLjg5di0xLjRhMjguOTMsMjguOTMsMCwwLDEtNi0uOTNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz48cGF0aCBkPSJNMzIsMThI''@;'; + put 'put ''MThhMiwyLDAsMCwwLTIsMlYzMmEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMjBBMiwyLDAsMCwwLDMyLDE4Wk0xOCwzMlYyMEgzMlYzMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPjxwYXRoIGQ9Ik0yMSwyMS43YS43LjcsMCwwLDAtLjcu''@;'; + put 'put ''N3Y3LjQ5YS43LjcsMCwwLDAsMS40LDBWMjIuNEEuNy43LDAsMCwwLDIxLDIxLjdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgLz48cGF0aCBkPSJNMjUsMjEuODJhLjcuNywwLDAsMC0uNy43VjMwYS43LjcsMCwxLDAsMS40LDBWMjIuNTJBLjcuNywwLDAs''@;'; + put 'put ''MCwyNSwyMS44MloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02IiAvPjxwYXRoIGQ9Ik0yOSwyMS43YS43LjcsMCwwLDAtLjcuN3Y3LjQ5YS43LjcsMCwxLDAsMS40LDBWMjIuNEEuNy43LDAsMCwwLDI5LDIxLjdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHIt''@;'; + put 'put ''aS1vdXRsaW5lLXBhdGgtNyIgLz48cGF0aCBkPSJNMzIsMThIMThhMiwyLDAsMCwwLTIsMlYzMmEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMjBBMiwyLDAsMCwwLDMyLDE4Wk0xOCwzMlYyMEgzMlYzMloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+''@;'; + put 'put ''PHBhdGggZD0iTTIxLDIxLjdhLjcuNywwLDAsMC0uNy43djcuNDlhLjcuNywwLDAsMCwxLjQsMFYyMi40QS43LjcsMCwwLDAsMjEsMjEuN1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+PHBhdGggZD0iTTI1LDIxLjgyYS43LjcsMCwwLDAtLjcuN1YzMGEuNy43''@;'; + put 'put ''LDAsMSwwLDEuNCwwVjIyLjUyQS43LjcsMCwwLDAsMjUsMjEuODJaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0yOSwyMS43YS43LjcsMCwwLDAtLjcuN3Y3LjQ5YS43LjcsMCwxLDAsMS40LDBWMjIuNEEuNy43LDAsMCwwLDI5LDIxLjdaIiBj''@;'; + put 'put ''bGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC00IiAvPjxwYXRoIGQ9Ik0xOCwxNkgyOFY4LjEyYzAtMS42OC01LjM4LTMtMTItM1M0LDYuNDQsNCw4LjEyVjI4YzAsMS41LDQuMzMsMi43NSwxMCwzVjI1LjIyYTI5LjE3LDI5LjE3LDAsMCwxLTgtMS4yOVYyMi40NGwuMjQuMUEy''@;'; + put 'put ''Ni42MywyNi42MywwLDAsMCwxNCwyMy44MlYyMGE0LDQsMCwwLDEsLjI5LTEuNDdBMjkuMTksMjkuMTksMCwwLDEsNiwxNy4yM1YxNS43NWwuMjQuMDlhMjksMjksMCwwLDAsOSwxLjMyaDBBNCw0LDAsMCwxLDE4LDE2Wk02LDEwLjU0VjkuMDVsLjI0LjA5QTMwLjEyLDMwLjEyLDAsMCwwLDE2''@;'; + put 'put ''LDEwLjQ3LDI4LjMzLDI4LjMzLDAsMCwwLDI2LDkuMDV2MS41YTMyLjUzLDMyLjUzLDAsMCwxLTEwLDEuMzJBMzIuNDQsMzIuNDQsMCwwLDEsNiwxMC41NFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTUiIC8+JyksZS5DbHJTaGFwZUZpbGVTaGFyZT0oMCxhLmNscklj''@;'; + put 'put ''b25TVkcpKCc8cGF0aCBkPSJNMzAsOUgxNi40MkwxNC4xMSw1LjgyQTIsMiwwLDAsMCwxMi40OSw1SDZBMiwyLDAsMCwwLDQsN1YyOWEyLDIsMCwwLDAsMiwySDMwYTIsMiwwLDAsMCwyLTJWMTFBMiwyLDAsMCwwLDMwLDlabTAsMjBINlYxM2g3LjMxYTIsMiwwLDAsMCwyLTJINlY3aDYuNDls''@;'; + put 'put ''Mi42MSwzLjU5YTEsMSwwLDAsMCwuODEuNDFIMzBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMjEuOTEsMjIuNDhhMi4wNiwyLjA2LDAsMCwwLTEuNDQuNjJsLTUuNzItMi42NlYyMGw1LjY2LTIuNjVhMi4wOCwyLjA4LDAsMSwwLC4w''@;'; + put 'put ''Ni0yLjk0LDIuMTIsMi4xMiwwLDAsMC0uNjQsMS40OHYuMjNsLTUuNjQsMi42NmEyLjA4LDIuMDgsMCwxLDAtLjA4LDIuOTVsLjA4LS4wOCw1LjY3LDIuNjZ2LjNhMi4wOSwyLjA5LDAsMSwwLDIuMDgtMi4xWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+''@;'; + put 'put ''PHBhdGggZD0iTTMwLDlIMTYuNDJMMTQuMTEsNS44MkEyLDIsMCwwLDAsMTIuNDksNUg2QTIsMiwwLDAsMCw0LDdWMjlhMiwyLDAsMCwwLDIsMkgzMGEyLDIsMCwwLDAsMi0yVjExQTIsMiwwLDAsMCwzMCw5Wk02LDdoNi40OWwyLjcyLDRINlpNMjEuOTQsMjYuNjRhMi4wOSwyLjA5LDAsMCwx''@;'; + put 'put ''LTIuMTEtMi4wNmwwLS4zLTUuNjctMi42Ni0uMDguMDhhMi4wOCwyLjA4LDAsMSwxLC4wOC0yLjk1bDUuNjQtMi42NnYtLjIzYTIuMDgsMi4wOCwwLDEsMSwuNTgsMS40NkwxNC43NSwyMHYuNDdsNS43MiwyLjY2YTIuMDcsMi4wNywwLDEsMSwxLjQ3LDMuNTRaIiBjbGFzcz0iY2xyLWktc29s''@;'; + put 'put ''aWQgY2xyLWktc29saWQtcGF0aC0xIiAvPicpLGUuQ2xyU2hhcGVRckNvZGU9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTUuNiw0QTEuNiwxLjYsMCwwLDAsNCw1LjZWMTJoOFY0Wk0xMCwxMEg2VjZoNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAv''@;'; + put 'put ''PjxwYXRoIGQ9Ik00LDMwLjRBMS42LDEuNiwwLDAsMCw1LjYsMzJIMTJWMjRINFpNNiwyNmg0djRINloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0yNCwzMmg2LjRBMS42LDEuNiwwLDAsMCwzMiwzMC40VjI0SDI0Wm0yLTZoNHY0SDI2''@;'; + put 'put ''WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+PHBhdGggZD0iTTMwLjQsNEgyNHY4aDhWNS42QTEuNiwxLjYsMCwwLDAsMzAuNCw0Wk0zMCwxMEgyNlY2aDRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz48cG9seWdv''@;'; + put 'put ''biBwb2ludHM9IjIwIDEwIDIwIDggMTYgOCAxNiAxMiAxOCAxMiAxOCAxMCAyMCAxMCIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIC8+PHJlY3QgeD0iMTIiIHk9IjEyIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1v''@;'; + put 'put ''dXRsaW5lLXBhdGgtNiIgLz48cmVjdCB4PSIxNCIgeT0iMTQiIHdpZHRoPSI0IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC03IiAvPjxwb2x5Z29uIHBvaW50cz0iMjAgNiAyMCA4IDIyIDggMjIgNCAxNCA0IDE0IDggMTYgOCAxNiA2IDIwIDYi''@;'; + put 'put ''IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC04IiAvPjxyZWN0IHg9IjQiIHk9IjE0IiB3aWR0aD0iMiIgaGVpZ2h0PSI0IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtOSIgLz48cG9seWdvbiBwb2ludHM9IjEyIDE2IDEyIDE4IDEwIDE4''@;'; + put 'put ''IDEwIDE0IDggMTQgOCAxOCA2IDE4IDYgMjAgNCAyMCA0IDIyIDggMjIgOCAyMCAxMCAyMCAxMCAyMiAxMiAyMiAxMiAyMCAxNCAyMCAxNCAxNiAxMiAxNiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEwIiAvPjxwb2x5Z29uIHBvaW50cz0iMjAgMTYgMjIgMTYg''@;'; + put 'put ''MjIgMTggMjQgMTggMjQgMTYgMjYgMTYgMjYgMTQgMjIgMTQgMjIgMTAgMjAgMTAgMjAgMTIgMTggMTIgMTggMTQgMjAgMTQgMjAgMTYiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xMSIgLz48cG9seWdvbiBwb2ludHM9IjE4IDMwIDE0IDMwIDE0IDMyIDIyIDMy''@;'; + put 'put ''IDIyIDMwIDIwIDMwIDIwIDI4IDE4IDI4IDE4IDMwIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMTIiIC8+PHBvbHlnb24gcG9pbnRzPSIyMiAyMCAyMiAxOCAyMCAxOCAyMCAxNiAxOCAxNiAxOCAxOCAxNiAxOCAxNiAyMCAxOCAyMCAxOCAyMiAyMCAyMiAyMCAy''@;'; + put 'put ''MCAyMiAyMCIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEzIiAvPjxyZWN0IHg9IjMwIiB5PSIyMCIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTE0IiAvPjxyZWN0IHg9IjIyIiB5PSIyMCIgd2lk''@;'; + put 'put ''dGg9IjYiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTE1IiAvPjxwb2x5Z29uIHBvaW50cz0iMzAgMTQgMjggMTQgMjggMTYgMjYgMTYgMjYgMTggMjggMTggMjggMjAgMzAgMjAgMzAgMTggMzIgMTggMzIgMTYgMzAgMTYgMzAgMTQiIGNsYXNz''@;'; + put 'put ''PSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xNiIgLz48cmVjdCB4PSIyMCIgeT0iMjIiIHdpZHRoPSIyIiBoZWlnaHQ9IjYiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xNyIgLz48cG9seWdvbiBwb2ludHM9IjE0IDI4IDE2IDI4IDE2IDI2IDE4''@;'; + put 'put ''IDI2IDE4IDI0IDE2IDI0IDE2IDIwIDE0IDIwIDE0IDI4IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMTgiIC8+JyksZS5DbHJTaGFwZVVzYj0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTQuMjksMTEuNGExLjQ5LDEuNDksMCwwLDEsMS4yOC0uNzJoMWEy''@;'; + put 'put ''Ljg5LDIuODksMCwwLDAsMi43NSwyLjA5LDMsMywwLDAsMCwwLTUuOTEsMi45LDIuOSwwLDAsMC0yLjY3LDEuODJIMTUuNTdhMy40OSwzLjQ5LDAsMCwwLTMsMS42NmwtMyw0LjgzaDIuMzZabTUtMi45NEExLjM2LDEuMzYsMCwxLDEsMTgsOS44MSwxLjMyLDEuMzIsMCwwLDEsMTkuMzMsOC40''@;'; + put 'put ''NloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0zNC4zLDE3LjM3bC02LjExLTMuNjZhLjcuNywwLDAsMC0uNywwLC43MS43MSwwLDAsMC0uMzYuNjFWMTdINi45MmEyLjMzLDIuMzMsMCwwLDEsLjMyLDEuMTcsMi40NywyLjQ3LDAsMSwx''@;'; + put 'put ''LTIuNDctMi40NiwyLjM3LDIuMzcsMCwwLDEsMS4xNS4zbC45My0xLjc2QTQuNDQsNC40NCwwLDEsMCw5LjE1LDE5aDMuNThsNC4xNyw2LjY1YTMuNDksMy40OSwwLDAsMCwzLDEuNjZoMS42NnYxLjI4YS43OS43OSwwLDAsMCwuOC43OWg0LjQ5YS43OS43OSwwLDAsMCwuOC0uNzl2LTQuNGEu''@;'; + put 'put ''NzkuNzksMCwwLDAtLjgtLjhIMjIuMzRhLjguOCwwLDAsMC0uOC44djEuMTJIMTkuODhhMS41MSwxLjUxLDAsMCwxLTEuMjgtLjcyTDE1LjA5LDE5aDEydjIuNjZhLjY5LjY5LDAsMCwwLC4zNi42MS42Ny42NywwLDAsMCwuMzQuMDkuNjUuNjUsMCwwLDAsLjM2LS4xbDYuMTEtMy42NmEuNjku''@;'; + put 'put ''NjksMCwwLDAsLjM0LS42QS43MS43MSwwLDAsMCwzNC4zLDE3LjM3Wk0yMy4xNCwyNUgyNnYyLjhIMjMuMTRabTUuMzktNC41NlYxNS41NWw0LDIuNDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMzQuNzIsMTcuMzdsLTUuNTEtMy4z''@;'; + put 'put ''MWEuNzEuNzEsMCwwLDAtMS4wNy42VjE3SDExLjc3bDMuNTItNS42YTEuNDksMS40OSwwLDAsMSwxLjI4LS43MmgxLjY0YTIuNDEsMi40MSwwLDAsMCwyLjI1LDEuNjEsMi40OCwyLjQ4LDAsMCwwLDAtNC45NSwyLjM4LDIuMzgsMCwwLDAtMi4xMywxLjM0SDE2LjU3YTMuNDksMy40OSwwLDAs''@;'; + put 'put ''MC0zLDEuNjZMOS40MSwxN0g4YTMuNDYsMy40NiwwLDEsMCwuMDgsMmg1LjY0bDQuMTUsNi42MmEzLjQ5LDMuNDksMCwwLDAsMywxLjY2aDIuNTl2LjkyaDQuNFYyMy44aC00LjR2MS40OEgyMC44OGExLjUxLDEuNTEsMCwwLDEtMS4yOC0uNzJMMTYuMTEsMTloMTJ2Mi4yOGEuNy43LDAsMCww''@;'; + put 'put ''LC4zNi42MS43Mi43MiwwLDAsMCwuMzQuMDkuNjUuNjUsMCwwLDAsLjM2LS4xbDUuNTItMy4zMWEuNy43LDAsMCwwLDAtMS4yWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz4nKSxlLkNsclNoYXBlUmFkYXI9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMy''@;'; + put 'put ''LDE4YzAsNy43LTYuMywxNC0xNCwxNGMtNy43LDAtMTQtNi4zLTE0LTE0QzQsMTAuNiw5LjcsNC41LDE3LjEsNHYzLjdjLTUuNywwLjUtOS45LDUuNS05LjQsMTEuMnM1LjUsOS45LDExLjIsOS40XG5cdGM1LjMtMC41LDkuNC00LjksOS40LTEwLjNoLTJjMCw0LjYtMy43LDguMy04LjMsOC4z''@;'; + put 'put ''cy04LjMtMy43LTguMy04LjNjMC00LjIsMy4xLTcuOCw3LjMtOC4zdjQuNGMtMS44LDAuNC0zLjEsMi0zLjEsMy45XG5cdGMwLDIuMiwxLjgsNCw0LDRzNC0xLjgsNC00YzAtMS44LTEuMy0zLjQtMy0zLjhWMi4xQzE4LjYsMiwxOC4zLDIsMTgsMkM5LjIsMiwyLDkuMiwyLDE4czcuMiwxNiwx''@;'; + put 'put ''NiwxNnMxNi03LjIsMTYtMTZIMzJ6IE0yMCwxOFxuXHRjMCwxLjEtMC45LDItMiwycy0yLTAuOS0yLTJzMC45LTIsMi0yUzIwLDE2LjksMjAsMTh6IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMzIsMThjMCw3LjctNi4yLDE0LTE0LDE0''@;'; + put 'put ''UzQsMjUuOCw0LDE4YzAtNy40LDUuNy0xMy41LDEzLjEtMTR2My43Yy01LjcsMC41LTkuOCw1LjUtOS4zLDExLjJzNS41LDkuOCwxMS4yLDkuM1xuXHRcdGM1LjMtMC41LDkuMy00LjksOS4zLTEwLjJoLTJjMCw0LjYtMy43LDguMy04LjMsOC4zUzkuNywyMi42LDkuNywxOGMwLTQuMiwzLjIt''@;'; + put 'put ''Ny44LDcuMy04LjJ2NC40Yy0yLjEsMC42LTMuNCwyLjctMi45LDQuOVxuXHRcdGMwLjYsMi4xLDIuNywzLjQsNC45LDIuOWMyLjEtMC42LDMuNC0yLjcsMi45LTQuOWMtMC40LTEuNC0xLjUtMi41LTIuOS0yLjlWMmMtMC40LDAtMC43LDAtMS4xLDBjLTguOCwwLTE2LDcuMi0xNiwxNlxuXHRc''@;'; + put 'put ''dGMwLDguOCw3LjIsMTYsMTYsMTZzMTYtNy4yLDE2LTE2YzAsMCwwLDAsMCwwSDMyeiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz4nKSxlLkNsclNoYXBlSW5kdWN0b3I9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI0LjMxLDI1LjgxYy0xLjc1LDAtMy0y''@;'; + put 'put ''LjQ5LTMtNmExMi43OSwxMi43OSwwLDAsMSwxLjcyLTYuNywyLjU3LDIuNTcsMCwwLDAtMy43OSwwQTEyLjc5LDEyLjc5LDAsMCwxLDIxLDE5Ljc2YzAsMy41Ni0xLjIzLDYtMyw2cy0zLTIuNDktMy02YTEyLjc5LDEyLjc5LDAsMCwxLDEuNzItNi43LDIuNTcsMi41NywwLDAsMC0zLjc5LDAs''@;'; + put 'put ''MTIuNzksMTIuNzksMCwwLDEsMS43Miw2LjdjMCwzLjU2LTEuMjMsNi0zLDZzLTMtMi40OS0zLTZhMTIuODgsMTIuODgsMCwwLDEsMS43MS02LjcsMi43LDIuNywwLDAsMC0xLjg5LS44N0M3LjEsMTIuMTksNS42OSwxMy43LDUsMTZsLS4yMy43SDJhMSwxLDAsMCwxLDAtMkgzLjI5YzEuMS0y''@;'; + put 'put ''LjgzLDMuMDYtNC41NSw1LjI0LTQuNTVhNC42Nyw0LjY3LDAsMCwxLDMuMTYsMS4zMiw0LjYyLDQuNjIsMCwwLDEsMy4xNS0xLjMyQTQuNjUsNC42NSwwLDAsMSwxOCwxMS41MWE0LjQzLDQuNDMsMCwwLDEsNi4zMSwwLDQuNjcsNC42NywwLDAsMSwzLjE2LTEuMzJjMi4xOCwwLDQuMTQsMS43''@;'; + put 'put ''Miw1LjI0LDQuNTVIMzRhMSwxLDAsMCwxLDAsMkgzMS4yOGwtLjIzLS43Yy0uNzQtMi4zNC0yLjE1LTMuODUtMy41OC0zLjg1YTIuNywyLjcsMCwwLDAtMS44OS44NywxMi44OCwxMi44OCwwLDAsMSwxLjcxLDYuN0MyNy4yOSwyMy4zMiwyNi4wNywyNS44MSwyNC4zMSwyNS44MVpNMTgsMTQu''@;'; + put 'put ''OTNhMTEuNzEsMTEuNzEsMCwwLDAtMSw0LjgzYzAsMi41NC42NiwzLjc1LDEsNCwuMzItLjI3LDEtMS40OCwxLTRBMTEuNzEsMTEuNzEsMCwwLDAsMTgsMTQuOTNabTYuMzEsMGExMS43MSwxMS43MSwwLDAsMC0xLDQuODNjMCwyLjU0LjY2LDMuNzUsMSw0LC4zMi0uMjcsMS0xLjQ4LDEtNEEx''@;'; + put 'put ''MS43MSwxMS43MSwwLDAsMCwyNC4zMSwxNC45M1ptLTEyLjYyLDBhMTEuNzEsMTEuNzEsMCwwLDAtMSw0LjgzYzAsMi41NC42NiwzLjc1LDEsNCwuMzItLjI3LDEtMS40OCwxLTRBMTEuNzEsMTEuNzEsMCwwLDAsMTEuNjksMTQuOTNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRs''@;'; + put 'put ''aW5lLXBhdGgtMSIgLz4nKSxlLkNsclNoYXBlUmVzaXN0b3I9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI5LjQzLDI2LjM0aDBBMS40NywxLjQ3LDAsMCwxLDI4LDI1LjIyTDI0Ljg2LDEzLjE1LDIxLjc0LDI1LjIyYTEuNDksMS40OSwwLDAsMS0xLjQ1LDEuMTJoMGExLjQ5LDEuNDks''@;'; + put 'put ''MCwwLDEtMS40Ni0xLjEyTDE1LjcxLDEzLjE1LDEyLjYsMjUuMjJhMS41MSwxLjUxLDAsMCwxLTIuOTEsMEw2LjU3LDEzLjE1LDUuMjIsMTguMzdIMmExLDEsMCwwLDEsMC0ySDMuNjdsMS40NS01LjU5QTEuNDgsMS40OCwwLDAsMSw2LjU3LDkuNjZoMEExLjQ3LDEuNDcsMCwwLDEsOCwxMC43''@;'; + put 'put ''OGwzLjEyLDEyLjA3LDMuMTItMTIuMDdhMS40OSwxLjQ5LDAsMCwxLDEuNDUtMS4xMmgwYTEuNDksMS40OSwwLDAsMSwxLjQ2LDEuMTJsMy4xMiwxMi4wNywzLjEyLTEyLjA3YTEuNSwxLjUsMCwwLDEsMi45LDBsMy4xMiwxMi4wNywxLjM1LTUuMjJIMzRhMSwxLDAsMCwxLDAsMkgzMi4zM2wt''@;'; + put 'put ''MS40NSw1LjU5QTEuNDgsMS40OCwwLDAsMSwyOS40MywyNi4zNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPicpLGUuQ2xyU2hhcGVDYXBhY2l0b3I9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE1LDM0LjA2YTEsMSwwLDAsMS0xLTFWMy4xNWEx''@;'; + put 'put ''LDEsMCwxLDEsMiwwVjMzLjA2QTEsMSwwLDAsMSwxNSwzNC4wNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0yMSwzNC4wNmExLDEsMCwwLDEtMS0xVjMuMTVhMSwxLDAsMSwxLDIsMFYzMy4wNkExLDEsMCwwLDEsMjEsMzQuMDZaIiBj''@;'; + put 'put ''bGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMTQuNDYsMTlIM2ExLDEsMCwwLDEsMC0ySDE0LjQ2YTEsMSwwLDAsMSwwLDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz48cGF0aCBkPSJNMzMsMTlIMjEu''@;'; + put 'put ''NTRhMSwxLDAsMCwxLDAtMkgzM2ExLDEsMCwwLDEsMCwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+JyksZS5DbHJTaGFwZVNxdWlkPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xOCw3YTEsMSwwLDAsMS0xLTFWMy4xOWExLDEsMCwwLDEsMiww''@;'; + put 'put ''VjZBMSwxLDAsMCwxLDE4LDdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMTgsMzRhMSwxLDAsMCwxLTEtMVYzMGExLDEsMCwwLDEsMiwwdjNBMSwxLDAsMCwxLDE4LDM0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGlu''@;'; + put 'put ''ZS1wYXRoLTIiIC8+PHBhdGggZD0iTTcuNDEsMThsMS43OC0xLjc3YTEsMSwwLDEsMC0xLjQyLTEuNDJMNiwxNi41OSw0LjIzLDE0LjgxYTEsMSwwLDEsMC0xLjQyLDEuNDJMNC41OSwxOCwyLjgxLDE5Ljc3YTEsMSwwLDAsMCwwLDEuNDIsMSwxLDAsMCwwLC43MS4yOSwxLDEsMCwwLDAsLjcx''@;'; + put 'put ''LS4yOUw2LDE5LjQxbDEuNzcsMS43OGExLDEsMCwwLDAsMS40MiwwLDEsMSwwLDAsMCwwLTEuNDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz48cGF0aCBkPSJNNiwxMy43NmwuMzYtLjM2YTMsMywwLDAsMSwyLjExLS44OCwxMSwxMSwwLDAsMSwxOSww''@;'; + put 'put ''LDMsMywwLDAsMSwyLjEyLjg4bC4zNi4zNi4yLS4yYTEzLDEzLDAsMCwwLTI0LjQsMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPjxwYXRoIGQ9Ik0zMCwyMi4yNGwtLjM2LjM2YTMsMywwLDAsMS0yLjEyLjg4LDExLDExLDAsMCwxLTE5LDAsMywzLDAs''@;'; + put 'put ''MCwxLTIuMTItLjg4TDYsMjIuMjRsLS4yLjJhMTMsMTMsMCwwLDAsMjQuNCwwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIC8+PHBhdGggZD0iTTMxLjQxLDE4bDEuNzgtMS43N2ExLDEsMCwwLDAtMS40Mi0xLjQyTDMwLDE2LjU5bC0xLjc3LTEuNzhhMSwx''@;'; + put 'put ''LDAsMSwwLTEuNDIsMS40MkwyOC41OSwxOGwtMS43OCwxLjc3YTEsMSwwLDAsMCwwLDEuNDIsMSwxLDAsMCwwLC43MS4yOSwxLDEsMCwwLDAsLjcxLS4yOUwzMCwxOS40MWwxLjc3LDEuNzhhMSwxLDAsMCwwLDEuNDIsMCwxLDEsMCwwLDAsMC0xLjQyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUg''@;'; + put 'put ''Y2xyLWktb3V0bGluZS1wYXRoLTYiIC8+JyksZS5DbHJTaGFwZUhvc3RHcm91cD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjEuMDgsMzRoLTE0QTEuMDgsMS4wOCwwLDAsMSw2LDMzVjEyYTEuMDgsMS4wOCwwLDAsMSwxLjA4LTEuMDhoMTRBMS4wOCwxLjA4LDAsMCwxLDIyLjE2LDEy''@;'; + put 'put ''VjMzQTEuMDgsMS4wOCwwLDAsMSwyMS4wOCwzNFpNOC4xNiwzMS44OEgyMFYxM0g4LjE2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG48cmVjdCB4PSIxMC4wOCIgeT0iMTQuOTYiIHdpZHRoPSI4IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRs''@;'; + put 'put ''aW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0yNi4xLDI3LjgxaC0yVjloLTEyVjdoMTNhMSwxLDAsMCwxLDEsMVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPlxuPHBhdGggZD0iTTMwLjA4LDIzaC0yVjVoLTExVjNoMTJhMSwxLDAs''@;'; + put 'put ''MCwxLDEsMVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPjxyZWN0IHg9IjEzLjA4IiB5PSIyNy44OCIgd2lkdGg9IjIiIGhlaWdodD0iMi4xNiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIC8+XG5cbjxwYXRoIGNsYXNz''@;'; + put 'put ''PSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0xNS4wOCwzMSBMMS4wOCwzMSBDMC41MTM0MjcxOTcsMzEuMDAxNTU2NCAwLjA0MTk2NjM3NjUsMzAuNTY1MDE4NiAwLDMwIEwwLDkgQzAsOC40MDM1MzI0NyAwLjQ4MzUzMjQ3LDcuOTIgMS4wOCw3LjkyIEwxNS4wOCw3Ljky''@;'; + put 'put ''IEMxNS42NzY0Njc1LDcuOTIgMTYuMTYsOC40MDM1MzI0NyAxNi4xNiw5IEwxNi4xNiwzMCBDMTYuMTE4MDMzNiwzMC41NjUwMTg2IDE1LjY0NjU3MjgsMzEuMDAxNTU2NCAxNS4wOCwzMSBaIE00LjA4LDExLjk2IEw0LjA4LDEzLjk2IEwxMi4wOCwxMy45NiBMMTIuMDgsMTEuOTYgTDQuMDgs''@;'; + put 'put ''MTEuOTYgWiBNNy4wOCwyNC44OCBMNy4wOCwyNy4wNCBMOS4wOCwyNy4wNCBMOS4wOCwyNC44OCBMNy4wOCwyNC44OCBaIiAvPlxuPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgZD0iTTIwLjEsMjQuODEgTDE4LjEsMjQuODEgTDE4LjEsNiBMNi4xLDYgTDYu''@;'; + put 'put ''MSw0IEwxOS4xLDQgQzE5LjY1MjI4NDcsNCAyMC4xLDQuNDQ3NzE1MjUgMjAuMSw1IEwyMC4xLDI0LjgxIFoiIC8+XG48cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiBkPSJNMjQuMDgsMjAgTDIyLjA4LDIwIEwyMi4wOCwyIEwxMS4wOCwyIEwxMS4wOCwwIEwy''@;'; + put 'put ''My4wOCwwIEMyMy42MzIyODQ3LDAgMjQuMDgsMC40NDc3MTUyNSAyNC4wOCwxIEwyNC4wOCwyMCBaIiAvPicpLGUuQ2xyU2hhcGVTdG9yYWdlQWRhcHRlcj0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNNi4wNiwzMGExLDEsMCwwLDEtMS0xVjhoLTJhMSwxLDAsMCwxLDAtMmg0VjI5QTEs''@;'; + put 'put ''MSwwLDAsMSw2LjA2LDMwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgPHBhdGggZD0iTTMwLjA2LDI3aC0yNVY5aDI1YTMsMywwLDAsMSwzLDNWMjRBMywzLDAsMCwxLDMwLjA2LDI3Wm0tMjMtMmgyM2ExLDEsMCwwLDAsMS0xVjEyYTEsMSwwLDAs''@;'; + put 'put ''MC0xLTFoLTIzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgPHJlY3QgeD0iMjIuMDYiIHk9IjIwIiB3aWR0aD0iNiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIvPlxuICA8cmVjdCB4PSIyMi4w''@;'; + put 'put ''NiIgeT0iMTQiIHdpZHRoPSI2IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00Ii8+XG4gIDxwYXRoIGQ9Ik0xOS4wNiwyMmgtOFYyMGg3VjE0aDJ2N0ExLDEsMCwwLDEsMTkuMDYsMjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRs''@;'; + put 'put ''aW5lLXBhdGgtNSIvPicpLGUuQ2xyU2hhcGVOb2RlR3JvdXA9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMzLjUzLDIxLjU4bC00Ljk0LTIuODNWMTMuMDlhMSwxLDAsMCwwLS41MS0uODdMMjIuNjQsOS4xYTEsMSwwLDAsMC0xLDBMMTYuMiwxMi4yMmExLDEsMCwwLDAtLjUxLjg3djUu''@;'; + put 'put ''NjZsLTQuOTQsMi44M2ExLDEsMCwwLDAtLjUuODd2Ni4yNGExLDEsMCwwLDAsLjUuODZsNS40NSwzLjEyYTEsMSwwLDAsMCwxLDBsNC45NS0yLjgzLDQuOTUsMi44M2ExLDEsMCwwLDAsLjUuMTQsMSwxLDAsMCwwLC40OS0uMTRsNS40NS0zLjEyYTEsMSwwLDAsMCwuNS0uODZWMjIuNDVBMSwx''@;'; + put 'put ''LDAsMCwwLDMzLjUzLDIxLjU4Wk0yMi4xNCwxMS4xMmw0LjQ1LDIuNTVWMTlsLTQuNDYsMi41Ni00LjQ0LTIuNlYxMy42N1pNMTYuNjksMzAuNjVsLTQuNDQtMi41NFYyM2w0LjY4LTIuNjgsNC40LDIuNTdWMjhaTTMyLDI4LjExbC00LjQ0LDIuNTRMMjIuOTMsMjhWMjIuOTNsNC40Ni0yLjU3''@;'; + put 'put ''TDMyLDIzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgPHBhdGggZD0iTTcsMjcuNDNhMSwxLDAsMCwxLTEtMVYxOS45QTEsMSwwLDAsMSw2LjUsMTlsNC45NS0yLjgzVjEwLjU0YTEsMSwwLDAsMSwuNS0uODdsNS4yMS0zYTEsMSwwLDAsMSwxLjM3''@;'; + put 'put ''LjM3LDEsMSwwLDAsMS0uMzgsMS4zN2wtNC43LDIuNjh2NS42NmExLDEsMCwwLDEtLjUxLjg3TDgsMjAuNDh2NS45NUExLDEsMCwwLDEsNywyNy40M1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gIDxwYXRoIGQ9Ik0zLDI1LjA1YTEsMSwwLDAsMS0x''@;'; + put 'put ''LTFWMTcuNTNhMSwxLDAsMCwxLC41LS44Nmw1LTIuODRWOC4xN0ExLDEsMCwwLDEsOCw3LjMxbDUuMjUtM2ExLDEsMCwwLDEsMSwxLjc0TDkuNDUsOC43NXY1LjY2YTEsMSwwLDAsMS0uNTEuODdMNCwxOC4xMXY1Ljk0QTEsMSwwLDAsMSwzLDI1LjA1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUg''@;'; + put 'put ''Y2xyLWktb3V0bGluZS1wYXRoLTMiLz4nKSxlLkNsclNoYXBlTm9kZXM9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTEwLjUsMzQuMjksMiwyOS4zOVYxOS41OGw4LjUtNC45LDguNSw0Ljl2OS44MVpNNCwyOC4yMywxMC41LDMyLDE3LDI4LjIzVjIwLjc0TDEwLjUsMTcsNCwyMC43NFoi''@;'; + put 'put ''IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gIDxwYXRoIGQ9Ik0yNS41LDM0LjI5LDE3LDI5LjM5VjE5LjU4bDguNS00LjksOC41LDQuOXY5LjgxWk0xOSwyOC4yMywyNS41LDMyLDMyLDI4LjIzVjIwLjc0TDI1LjUsMTcsMTksMjAuNzRaIiBjbGFzcz0i''@;'; + put 'put ''Y2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICA8cGF0aCBkPSJNMTgsMjEuMzJsLTguNS00LjlWNi42MUwxOCwxLjcxbDguNSw0Ljl2OS44MVptLTYuNS02LjA2TDE4LDE5bDYuNS0zLjc1VjcuNzdMMTgsNCwxMS41LDcuNzdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBj''@;'; + put 'put ''bHItaS1vdXRsaW5lLXBhdGgtMyIvPicpLGUuQ2xyU2hhcGVOYW1lc3BhY2U9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI3LDQuMThhMSwxLDAsMSwwLTEsMS43M2w2LDMuNDdWMjYuNjJsLTYsMy40N2ExLDEsMCwwLDAtLjM3LDEuMzYsMSwxLDAsMCwwLDEuMzcuMzdsNy00LjA1Vjgu''@;'; + put 'put ''MjNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICA8cGF0aCBkPSJNOS42OCwyOS45LDQsMjYuNjJWOS4zOEw5LjY4LDYuMWExLDEsMCwxLDAtMS0xLjczTDIsOC4yM1YyNy43N2w2LjY4LDMuODZhMSwxLDAsMCwwLDEuMzctLjM3QTEsMSwwLDAsMCw5''@;'; + put 'put ''LjY4LDI5LjlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICA8cGF0aCBkPSJNMTAsMTJWMjRhMiwyLDAsMCwwLDIsMkgyNGEyLDIsMCwwLDAsMi0yVjEyYTIsMiwwLDAsMC0yLTJIMTJBMiwyLDAsMCwwLDEwLDEyWm03LDB2NUgxMlYxMlptLTUsN2g1''@;'; + put 'put ''djVIMTJabTcsNVYxOWg1djVabTUtN0gxOVYxMmg1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz4nKSxlLkNsclNoYXBlTm9kZT0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTgsMzAuNjYsNywyNC4zM1YxMS42N0wxOCw1LjM0bDExLDYuMzNWMjQu''@;'; + put 'put ''MzNaTTksMjMuMThsOSw1LjE3LDktNS4xN1YxMi44MkwxOCw3LjY1LDksMTIuODJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPicpLGUuQ2xyU2hhcGVQb2Q9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI2LDMySDEwYTYsNiwwLDAsMS02LTZWMTBh''@;'; + put 'put ''Niw2LDAsMCwxLDYtNkgyNmE2LDYsMCwwLDEsNiw2VjI2QTYsNiwwLDAsMSwyNiwzMlpNMTAsNmE0LDQsMCwwLDAtNCw0VjI2YTQsNCwwLDAsMCw0LDRIMjZhNCw0LDAsMCwwLDQtNFYxMGE0LDQsMCwwLDAtNC00WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEi''@;'; + put 'put ''Lz5cbiAgPHBhdGggZD0iTTI2LjU2LDE1SDE1LjQ0QTEuNDMsMS40MywwLDAsMCwxNCwxNi40NHY4LjEyQTEuNDMsMS40MywwLDAsMCwxNS40NCwyNkgyNi41NkExLjQzLDEuNDMsMCwwLDAsMjgsMjQuNTZWMTYuNDRBMS40MywxLjQzLDAsMCwwLDI2LjU2LDE1Wk0yNiwyNEgxNlYxN0gyNloi''@;'; + put 'put ''IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gIDxwYXRoIGQ9Ik0xMi40LDE5SDEwVjEySDIwdjEuNGgydi0yQTEuNDMsMS40MywwLDAsMCwyMC41NiwxMEg5LjQ0QTEuNDMsMS40MywwLDAsMCw4LDExLjQ0djguMTJBMS40MywxLjQzLDAsMCwwLDkuNDQs''@;'; + put 'put ''MjFoM1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+JyksZS5DbHJDb250cm9sTHVuPSgwLGEuY2xySWNvblNWRykoJ1xuICA8cGF0aCBkPSJNOCwyNC41OWEyNS41LDI1LjUsMCwwLDAsMi43NS41OWwxLjIxLTEuNDFhMjQuMTMsMjQuMTMsMCwwLDEtNC0u''@;'; + put 'put ''ODNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICA8cGF0aCBkPSJNNiwyNy41M1YxMC4zYzIuOSwxLjQzLDguMzQsMS44OCwxMiwxLjg4czkuMS0uNDUsMTItMS44OHY1LjExYy0uOTEuODItNSwyLjEzLTEyLDIuMTNBMzQuODEsMzQuODEsMCwwLDEs''@;'; + put 'put ''OCwxNi4zM1YxOGE0MC44Niw0MC44NiwwLDAsMCwxMCwxLjE2YzMuNDYsMCw5LjEzLS40NSwxMi0xLjkxdjMuMjNoMlY4aDBzMCwwLDAtLjA3YzAtMy4zNS04LjgtNC4yNS0xNC00LjI1UzQsNC41OCw0LDcuOTN2MTkuNmMwLDIsMy4xNywzLjE0LDYuODMsMy43Mkw4LjM4LDI4LjY4QzcsMjgu''@;'; + put 'put ''MjgsNi4xMywyNy44NCw2LDI3LjUzWk0xOCw1LjY4YzcuMTUsMCwxMS41MywxLjQ0LDEyLDIuMjUtLjQ2LjgxLTQuODQsMi4yNS0xMiwyLjI1UzYuMzEsOC42OSw2LDhDNi4zMSw3LjE4LDEwLjcxLDUuNjgsMTgsNS42OFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0''@;'; + put 'put ''aC0yIi8+XG4gIDxwYXRoIGQ9Ik0zMi4wOSwyMkgxNS40NmwtNS40MSw2LjMxTDE1LjQ5LDM0aDE2LjZhMiwyLDAsMCwwLDItMlYyMy45M0EyLDIsMCwwLDAsMzIuMDksMjJabTAsMTBIMTYuMzRsLTMuNTktMy43N0wxNi4zOCwyNEgzMi4wOXY4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xy''@;'; + put 'put ''LWktb3V0bGluZS1wYXRoLTMiLz5cbiAgPHBhdGggZD0iTTE2LjExLDI3YTEsMSwwLDEsMCwxLDFBMSwxLDAsMCwwLDE2LjExLDI3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiLz5cblxuICA8cGF0aCBkPSJNOCwyNC41OWEyNS41LDI1LjUsMCwwLDAsMi43''@;'; + put 'put ''NS41OWwxLjIxLTEuNDFhMjQuMTMsMjQuMTMsMCwwLDEtNC0uODNaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiLz5cbiAgPHBhdGggZD0iTTMyLjA5LDIySDE1LjQ2bC01LjQxLDYuMzFMMTUuNDksMzRoMTYuNmEyLDIsMCwwLDAs''@;'; + put 'put ''Mi0yVjIzLjkzQTIsMiwwLDAsMCwzMi4wOSwyMlptMCwxMEgxNi4zNGwtMy41OS0zLjc3TDE2LjM4LDI0SDMyLjA5djhaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiLz5cbiAgPHBhdGggZD0iTTE2LjExLDI3YTEsMSwwLDEsMCwx''@;'; + put 'put ''LDFBMSwxLDAsMCwwLDE2LjExLDI3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIi8+XG4gIDxwYXRoIGQ9Ik0xOCwxNy41NEEzNC44MSwzNC44MSwwLDAsMSw4LDE2LjMzVjE4YTQwLjg2LDQwLjg2LDAsMCwwLDEwLDEuMTZjMy40''@;'; + put 'put ''NiwwLDkuMTMtLjQ1LDEyLTEuOTF2My4yM2gyVjEzLjIyYTcuMzIsNy4zMiwwLDAsMS0yLC4yOHYxLjkxQzI5LjA5LDE2LjIzLDI1LDE3LjU0LDE4LDE3LjU0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIi8+XG4gIDxwYXRoIGQ9''@;'; + put 'put ''Ik02LDI3LjUzVjEwLjNjMi45LDEuNDMsOC4zNCwxLjg4LDEyLDEuODhhNDcuNjYsNDcuNjYsMCwwLDAsNy4wOS0uNTIsNy40NSw3LjQ1LDAsMCwxLTEuNTEtMS44LDQ3LjQsNDcuNCwwLDAsMS01LjU4LjMyQzEwLjcxLDEwLjE4LDYuMzEsOC42OSw2LDhjLjMyLS44LDQuNzItMi4zLDEyLTIu''@;'; + put 'put ''MywxLjY2LDAsMy4xNi4wOCw0LjUxLjIxYTcuNTYsNy41NiwwLDAsMSwuMjktMmMtMS43LS4xNy0zLjM4LS4yNC00LjgtLjI0LTUuMiwwLTE0LC45LTE0LDQuMjV2MTkuNmMwLDIsMy4xNywzLjE0LDYuODMsMy43Mkw4LjM4LDI4LjY4QzcsMjguMjgsNi4xMywyNy44NCw2LDI3LjUzWiIgY2xh''@;'; + put 'put ''c3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYmFkZ2VkIi8+XG4gIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNi0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG5c''@;'; + put 'put ''biAgPHBhdGggZD0iTTgsMjQuNTlhMjUuNSwyNS41LDAsMCwwLDIuNzUuNTlsMS4yMS0xLjQxYTI0LjEzLDI0LjEzLDAsMCwxLTQtLjgzWiIvPjxwYXRoIGQ9Ik0zMi4wOSwyMkgxNS40NmwtNS40MSw2LjMxTDE1LjQ5LDM0aDE2LjZhMiwyLDAsMCwwLDItMlYyMy45M0EyLDIsMCwwLDAsMzIu''@;'; + put 'put ''MDksMjJabTAsMTBIMTYuMzRsLTMuNTktMy43N0wxNi4zOCwyNEgzMi4wOXY4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgPHBhdGggZD0iTTE2LjExLDI3YTEsMSwwLDEsMCwxLDFBMSwxLDAsMCwwLDE2LjExLDI3''@;'; + put 'put ''WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiLz5cbiAgPHBhdGggZD0iTTYsMjcuNTNWMTAuM2MyLjksMS40Myw4LjM0LDEuODgsMTIsMS44OGguNTlhMy41OSwzLjU5LDAsMCwxLC4zMi0ySDE4QzEwLjcxLDEwLjE4LDYuMzEs''@;'; + put 'put ''OC42OSw2LDhjLjMyLS44LDQuNzItMi4zLDEyLTIuMywxLjIyLDAsMi4zNS4wNSwzLjQxLjEybDEuMS0xLjkxYy0xLjYtLjE1LTMuMTctLjIxLTQuNTEtLjIxLTUuMiwwLTE0LC45LTE0LDQuMjV2MTkuNmMwLDIsMy4xNywzLjE0LDYuODMsMy43Mkw4LjM4LDI4LjY4QzcsMjguMjgsNi4xMywy''@;'; + put 'put ''Ny44NCw2LDI3LjUzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiLz5cbiAgPHBhdGggZD0iTTgsMTYuMzNWMThhNDAuODYsNDAuODYsMCwwLDAsMTAsMS4xNmMzLjQ2LDAsOS4xMy0uNDUsMTItMS45MXYzLjIzaDJWMTUuNEgz''@;'; + put 'put ''MGMtLjkxLjgyLTUsMi4xMy0xMiwyLjEzQTM0LjgxLDM0LjgxLDAsMCwxLDgsMTYuMzNaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRlZCIvPlxuICA8cGF0aCBkPSJNMjYuODUsMS4xNGwtNS43Miw5LjkxQTEuMjcsMS4yNywwLDAs''@;'; + put 'put ''MCwyMi4yMywxM0gzMy42OGExLjI3LDEuMjcsMCwwLDAsMS4xLTEuOTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC01LS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+XG5cbiAgPHBh''@;'; + put 'put ''dGggZD0iTTE2LjExLDI3YTEsMSwwLDEsMCwxLDFBMSwxLDAsMCwwLDE2LjExLDI3WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPlxuICA8cGF0aCBkPSJNMzIuMDksMjFIMzJWMTcuMzJjLTEuOSwyLjkzLTEwLjQ2LDMuMy0xNCwzLjNBNDIuNDMsNDIuNDMsMCww''@;'; + put 'put ''LDEsOCwxOS41NlYxNy44OEE0MC41OSw0MC41OSwwLDAsMCwxOCwxOWM1LDAsMTMuMi0uODIsMTQtMy44MlYxMC43MmMtMi4yMSwzLjM2LTEwLjQ5LDMuNDYtMTQsMy40NkE0Mi4xMiw0Mi4xMiwwLDAsMSw4LDEzLjExVjExYTQwLjU5LDQwLjU5LDAsMCwwLDEwLDEuMTRjNSwwLDEzLjI4LS44''@;'; + put 'put ''MywxNC0zLjg4VjcuODNoMGMtLjE5LTMuMjctOC44NC00LjE1LTE0LTQuMTVTNC4yMSw0LjU2LDQsNy44M0g0djE5LjdjMCwyLjE2LDMuNjQsMy4zLDcuNjMsMy44NGwyLjg0LDMsLjU5LjYyaDE3YTMsMywwLDAsMCwzLTNWMjMuOTNBMywzLDAsMCwwLDMyLjA5LDIxWk04LDI2LjA4VjI0LjRh''@;'; + put 'put ''MjUuNzksMjUuNzksMCwwLDAsMy40Ni43bC0xLjI0LDEuNDRDOS40NiwyNi40Miw4LjcxLDI2LjI3LDgsMjYuMDhaTTMzLjA5LDMyYTEsMSwwLDAsMS0xLDFIMTUuOTJMMTEuNCwyOC4yMywxNS45MiwyM0gzMi4wOWExLDEsMCwwLDEsMSwxWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNv''@;'; + put 'put ''bGlkLXBhdGgtMiIvPlxuXG4gIDxwYXRoIGQ9Ik0xNi4xMSwyN2ExLDEsMCwxLDAsMSwxQTEsMSwwLDAsMCwxNi4xMSwyN1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIi8+XG4gIDxwYXRoIGQ9Ik0zMi4wOSwyMUgzMlYxNy4zMmMtMS45''@;'; + put 'put ''LDIuOTMtMTAuNDYsMy4zLTE0LDMuM0E0Mi40Myw0Mi40MywwLDAsMSw4LDE5LjU2VjE3Ljg4QTQwLjU5LDQwLjU5LDAsMCwwLDE4LDE5YzUsMCwxMy4yLS44MiwxNC0zLjgydi0yYTcuMzQsNy4zNCwwLDAsMS00LjEyLDAsMzkuNDcsMzkuNDcsMCwwLDEtOS44OCwxQTQyLjEyLDQyLjEyLDAs''@;'; + put 'put ''MCwxLDgsMTMuMTFWMTFhNDAuNTksNDAuNTksMCwwLDAsMTAsMS4xNCw0Ny43Niw0Ny43NiwwLDAsMCw3LjA5LS41MkE3LjQ1LDcuNDUsMCwwLDEsMjIuOCwzLjkyYy0xLjctLjE3LTMuMzgtLjI0LTQuOC0uMjQtNS4xNCwwLTEzLjc5Ljg4LTE0LDQuMTVINHYxOS43YzAsMi4xNiwzLjY0LDMu''@;'; + put 'put ''Myw3LjYzLDMuODRsMi44NCwzLC41OS42MmgxN2EzLDMsMCwwLDAsMy0zVjIzLjkzQTMsMywwLDAsMCwzMi4wOSwyMVpNOCwyNi4wOFYyNC40YTI1Ljc5LDI1Ljc5LDAsMCwwLDMuNDYuN2wtMS4yNCwxLjQ0QzkuNDYsMjYuNDIsOC43MSwyNi4yNyw4LDI2LjA4Wk0zMy4wOSwzMmExLDEsMCww''@;'; + put 'put ''LDEtMSwxSDE1LjkyTDExLjQsMjguMjMsMTUuOTIsMjNIMzIuMDlhMSwxLDAsMCwxLDEsMVoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIi8+XG4gIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLXNvbGlkLS1i''@;'; + put 'put ''YWRnZWQgY2xyLWktc29saWQtcGF0aC0zLS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cblxuICA8cGF0aCBkPSJNMTYuMTEsMjdhMSwxLDAsMSwwLDEsMUExLDEsMCwwLDAsMTYuMTEsMjdaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIi8+''@;'; + put 'put ''XG4gIDxwYXRoIGQ9Ik0zMi4wOSwyMUgzMlYxNy4zMmMtMS45LDIuOTMtMTAuNDYsMy4zLTE0LDMuM0E0Mi40Myw0Mi40MywwLDAsMSw4LDE5LjU2VjE3Ljg4QTQwLjU5LDQwLjU5LDAsMCwwLDE4LDE5YzQuODUsMCwxMi44LS43OSwxMy45MS0zLjYySDIyLjIzYTMuNjgsMy42OCwwLDAsMS0y''@;'; + put 'put ''LjczLTEuMjNIMThBNDIuMTIsNDIuMTIsMCwwLDEsOCwxMy4xMVYxMWE0MC41OSw0MC41OSwwLDAsMCwxMCwxLjE0aC41OWEzLjYxLDMuNjEsMCwwLDEsLjQ2LTIuMjlsMy40Ni02Yy0xLjYtLjE1LTMuMTctLjIxLTQuNTEtLjIxLTUuMTQsMC0xMy43OS44OC0xNCw0LjE1SDR2MTkuN2MwLDIu''@;'; + put 'put ''MTYsMy42NCwzLjMsNy42MywzLjg0bDIuODQsMywuNTkuNjJoMTdhMywzLDAsMCwwLDMtM1YyMy45M0EzLDMsMCwwLDAsMzIuMDksMjFaTTgsMjYuMDhWMjQuNGEyNS43OSwyNS43OSwwLDAsMCwzLjQ2LjdsLTEuMjQsMS40NEM5LjQ2LDI2LjQyLDguNzEsMjYuMjcsOCwyNi4wOFpNMzMuMDks''@;'; + put 'put ''MzJhMSwxLDAsMCwxLTEsMUgxNS45MkwxMS40LDI4LjIzLDE1LjkyLDIzSDMyLjA5YTEsMSwwLDAsMSwxLDFaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIi8+XG4gIDxwYXRoIGQ9Ik0yNi44NSwxLjE0bC01LjcyLDkuOTFBMS4yNywx''@;'; + put 'put ''LjI3LDAsMCwwLDIyLjIzLDEzSDMzLjY4YTEuMjcsMS4yNywwLDAsMCwxLjEtMS45MUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMy0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAn''@;'; + put 'put ''KSxlLkNsclNoYXBlTWVkaWFDaGFuZ2VyPSgwLGEuY2xySWNvblNWRykoJ1xuICA8cGF0aCBkPSJNMzAsNEg2QTIsMiwwLDAsMCw0LDZWMzBhMiwyLDAsMCwwLDIsMkg3Ljg4djEuNTdhMSwxLDAsMCwwLDIsMFYzMmgxNnYxLjU3YTEsMSwwLDAsMCwyLDBWMzJIMzBhMiwyLDAsMCwwLDItMlY2''@;'; + put 'put ''QTIsMiwwLDAsMCwzMCw0Wk02LDMwVjZIMzBWMzBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICA8cmVjdCB4PSIyMCIgeT0iMTgiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz48cmVjdCB4PSIyNCIgeT0iMTgiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNs''@;'; + put 'put ''YXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gIDxyZWN0IHg9IjIwIiB5PSIyMiIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgPHJlY3QgeD0iMjQiIHk9IjIyIiB3aWR0aD0iMiIg''@;'; + put 'put ''aGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIvPlxuICA8cGF0aCBkPSJNMjcuMjIsMTBIMjB2NGEuOC44LDAsMSwwLDEuNTksMFYxMS42aDUuNjNhLjguOCwwLDEsMCwwLTEuNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUt''@;'; + put 'put ''cGF0aC01Ii8+XG4gIDxyZWN0IHg9IjguODEiIHk9IjEwIiB3aWR0aD0iOC4xNCIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIvPlxuICA8cmVjdCB4PSI4LjgxIiB5PSIxNCIgd2lkdGg9IjguMTQiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1p''@;'; + put 'put ''LW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTciLz5cbiAgPHJlY3QgeD0iOC44MSIgeT0iMTgiIHdpZHRoPSI4LjE0IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC04Ii8+XG4gIDxyZWN0IHg9IjguODEiIHk9IjIyIiB3aWR0aD0iOC4xNCIg''@;'; + put 'put ''aGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtOSIvPlxuICA8cmVjdCB4PSI4LjgxIiB5PSIyNiIgd2lkdGg9IjguMTQiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEwIi8+XG5cbiAgPHJlY3QgeD0i''@;'; + put 'put ''MjAiIHk9IjE4IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiLz5cbiAgPHJlY3QgeD0iMjQiIHk9IjE4IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2Vk''@;'; + put 'put ''IGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiLz5cbiAgPHJlY3QgeD0iMjAiIHk9IjIyIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiLz5cbiAgPHJlY3QgeD0iMjQiIHk9IjIyIiB3aWR0''@;'; + put 'put ''aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQiLz5cbiAgPHJlY3QgeD0iOC44MSIgeT0iMTAiIHdpZHRoPSI4LjE0IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0''@;'; + put 'put ''bGluZS1wYXRoLTUtLWJhZGdlZCIvPlxuICA8cmVjdCB4PSI4LjgxIiB5PSIxNCIgd2lkdGg9IjguMTQiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNi0tYmFkZ2VkIi8+XG4gIDxyZWN0IHg9IjguODEiIHk9IjE4IiB3aWR0aD0i''@;'; + put 'put ''OC4xNCIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC03LS1iYWRnZWQiLz5cbiAgPHJlY3QgeD0iOC44MSIgeT0iMjIiIHdpZHRoPSI4LjE0IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0''@;'; + put 'put ''bGluZS1wYXRoLTgtLWJhZGdlZCIvPlxuICA8cmVjdCB4PSI4LjgxIiB5PSIyNiIgd2lkdGg9IjguMTQiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtOS0tYmFkZ2VkIi8+XG4gIDxwYXRoIGQ9Ik0yMCwxNGEuOC44LDAsMSwwLDEu''@;'; + put 'put ''NTksMFYxMS42SDI1QTcuNzQsNy43NCwwLDAsMSwyMy42NiwxMEgyMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEwLS1iYWRnZWQiLz5cbiAgPHBhdGggZD0iTTMwLDEzLjVoMFYzMEg2VjZIMjIuNVY2YTcuMzcsNy4zNywwLDAsMSwuMjgtMkg2''@;'; + put 'put ''QTIsMiwwLDAsMCw0LDZWMzBhMiwyLDAsMCwwLDIsMkg3Ljg4djEuNTdhMSwxLDAsMCwwLDIsMFYzMmgxNnYxLjU3YTEsMSwwLDAsMCwyLDBWMzJIMzBhMiwyLDAsMCwwLDItMlYxMy4yMkE3LjM3LDcuMzcsMCwwLDEsMzAsMTMuNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xy''@;'; + put 'put ''LWktb3V0bGluZS1wYXRoLTExLS1iYWRnZWQiLz5cbiAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xMi0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG5cbiAgPHJlY3QgeD0iMjAiIHk9IjE4IiB3aWR0''@;'; + put 'put ''aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIvPlxuICA8cmVjdCB4PSIyNCIgeT0iMTgiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxp''@;'; + put 'put ''bmUtcGF0aC0yLS1hbGVydGVkIi8+XG4gIDxyZWN0IHg9IjIwIiB5PSIyMiIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiLz5cbiAgPHJlY3QgeD0iMjQiIHk9IjIyIiB3aWR0aD0iMiIgaGVp''@;'; + put 'put ''Z2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRlZCIvPlxuICA8cmVjdCB4PSI4LjgxIiB5PSIxMCIgd2lkdGg9IjguMTQiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1w''@;'; + put 'put ''YXRoLTUtLWFsZXJ0ZWQiLz5cbiAgPHJlY3QgeD0iOC44MSIgeT0iMTQiIHdpZHRoPSI4LjE0IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC02LS1hbGVydGVkIi8+XG4gIDxyZWN0IHg9IjguODEiIHk9IjE4IiB3aWR0aD0iOC4x''@;'; + put 'put ''NCIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNy0tYWxlcnRlZCIvPlxuICA8cmVjdCB4PSI4LjgxIiB5PSIyMiIgd2lkdGg9IjguMTQiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0''@;'; + put 'put ''bGluZS1wYXRoLTgtLWFsZXJ0ZWQiLz5cbiAgPHJlY3QgeD0iOC44MSIgeT0iMjYiIHdpZHRoPSI4LjE0IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC05LS1hbGVydGVkIi8+XG4gIDxwYXRoIGQ9Ik0zMCwxNS40VjMwSDZWNkgy''@;'; + put 'put ''MS4yN2wxLjE4LTJINkEyLDIsMCwwLDAsNCw2VjMwYTIsMiwwLDAsMCwyLDJINy44OHYxLjU3YTEsMSwwLDAsMCwyLDBWMzJoMTZ2MS41N2ExLDEsMCwwLDAsMiwwVjMySDMwYTIsMiwwLDAsMCwyLTJWMTUuNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUt''@;'; + put 'put ''cGF0aC0xMC0tYWxlcnRlZCIvPlxuICA8cGF0aCBkPSJNMjYuODUsMS4xNGwtNS43Miw5LjkxQTEuMjcsMS4yNywwLDAsMCwyMi4yMywxM0gzMy42OGExLjI3LDEuMjcsMCwwLDAsMS4xLTEuOTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1v''@;'; + put 'put ''dXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xMS0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuXG4gIDxwYXRoIGQ9Ik0zMCw0SDZBMiwyLDAsMCwwLDQsNlYzMGEyLDIsMCwwLDAsMiwySDcuODh2MS41N2ExLDEsMCwwLDAsMiwwVjMyaDE2djEuNTdhMSwxLDAsMCwwLDIsMFYz''@;'; + put 'put ''MkgzMGEyLDIsMCwwLDAsMi0yVjZBMiwyLDAsMCwwLDMwLDRaTTE3LDI4SDguODFWMjZIMTdabTAtNEg4LjgxVjIySDE3Wm0wLTRIOC44MVYxOEgxN1ptMC00SDguODFWMTRIMTdabTAtNEg4LjgxVjEwSDE3Wk0yMiwyNEgyMFYyMmgyWm0wLTRIMjBWMThoMlptNCw0SDI0VjIyaDJabTAtNEgy''@;'; + put 'put ''NFYxOGgyWm0wLTZIMjBWMTBoNloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cblxuICA8cGF0aCBkPSJNMzAsMTMuNWE3LjQ5LDcuNDksMCwwLDEtNC0xLjE2VjE0SDIwVjEwaDMuNjZBNy40OSw3LjQ5LDAsMCwxLDIyLjUsNmE3LjM3LDcuMzcsMCwwLDEsLjI4''@;'; + put 'put ''LTJINkEyLDIsMCwwLDAsNCw2VjMwYTIsMiwwLDAsMCwyLDJINy44OHYxLjU3YTEsMSwwLDAsMCwyLDBWMzJoMTZ2MS41N2ExLDEsMCwwLDAsMiwwVjMySDMwYTIsMiwwLDAsMCwyLTJWMTMuMjJBNy4zNyw3LjM3LDAsMCwxLDMwLDEzLjVaTTE3LDI4SDguODFWMjZIMTdabTAtNEg4LjgxVjIy''@;'; + put 'put ''SDE3Wm0wLTRIOC44MVYxOEgxN1ptMC00SDguODFWMTRIMTdabTAtNEg4LjgxVjEwSDE3Wk0yMiwyNEgyMFYyMmgyWm0wLTRIMjBWMThoMlptNCw0SDI0VjIyaDJabTAtNEgyNFYxOGgyWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiLz5c''@;'; + put 'put ''biAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuXG4gIDxwYXRoIGQ9Ik0yMi4yMywxNS40YTMuNjgsMy42OCwwLDAsMS0zLjE4LTUuNTFMMjIuNDUsNEg2QTIs''@;'; + put 'put ''MiwwLDAsMCw0LDZWMzBhMiwyLDAsMCwwLDIsMkg3Ljg4djEuNTdhMSwxLDAsMCwwLDIsMFYzMmgxNnYxLjU3YTEsMSwwLDAsMCwyLDBWMzJIMzBhMiwyLDAsMCwwLDItMlYxNS40Wk0xNywyOEg4LjgxVjI2SDE3Wm0wLTRIOC44MVYyMkgxN1ptMC00SDguODFWMThIMTdabTAtNEg4LjgxVjE0''@;'; + put 'put ''SDE3Wm0wLTRIOC44MVYxMEgxN1pNMjIsMjRIMjBWMjJoMlptMC00SDIwVjE4aDJabTQsNEgyNFYyMmgyWm0wLTRIMjRWMThoMloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgPHBhdGggZD0iTTI2Ljg1LDEuMTRsLTUuNzIs''@;'; + put 'put ''OS45MUExLjI3LDEuMjcsMCwwLDAsMjIuMjMsMTNIMzMuNjhhMS4yNywxLjI3LDAsMCwwLDEuMS0xLjkxTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFs''@;'; + put 'put ''ZXJ0Ii8+XG4gICcpLGUuQ2xyU2hhcGVUYXBlRHJpdmU9KDAsYS5jbHJJY29uU1ZHKSgnXG4gIDxwYXRoIGQ9Ik0zMiw2SDRBMiwyLDAsMCwwLDIsOFYyOGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWOEEyLDIsMCwwLDAsMzIsNlpNNCwyOFY4SDMyVjI4WiIgY2xhc3M9ImNsci1p''@;'; + put 'put ''LW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgPHBhdGggZD0iTTEzLjMzLDEzLjM1YTQuNTIsNC41MiwwLDEsMCw0LjUzLDQuNTJBNC41Myw0LjUzLDAsMCwwLDEzLjMzLDEzLjM1Wm0wLDcuNDRhMi45MiwyLjkyLDAsMSwxLDIuOTMtMi45MkEyLjkyLDIuOTIsMCwwLDEsMTMu''@;'; + put 'put ''MzMsMjAuNzlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICA8cGF0aCBkPSJNMjMuNjIsMTMuMzVhNC41Miw0LjUyLDAsMSwwLDQuNTIsNC41MkE0LjUzLDQuNTMsMCwwLDAsMjMuNjIsMTMuMzVabTAsNy40NGEyLjkyLDIuOTIsMCwxLDEsMi45Mi0y''@;'; + put 'put ''LjkyQTIuOTIsMi45MiwwLDAsMSwyMy42MiwyMC43OVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gIDxwYXRoIGQ9Ik02LDExVjIzLjU1SDhWMTJIMjkuMzRWMTBIN0ExLDEsMCwwLDAsNiwxMVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91''@;'; + put 'put ''dGxpbmUtcGF0aC00Ii8+XG5cbiAgPHBhdGggZD0iTTguODEsMTcuODdhNC41Myw0LjUzLDAsMSwwLDQuNTItNC41MkE0LjUzLDQuNTMsMCwwLDAsOC44MSwxNy44N1ptNy40NSwwQTIuOTMsMi45MywwLDEsMSwxMy4zMywxNSwyLjkzLDIuOTMsMCwwLDEsMTYuMjYsMTcuODdaIiBjbGFzcz0i''@;'; + put 'put ''Y2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiLz5cbiAgPHBhdGggZD0iTTE5LjEsMTcuODdhNC41Miw0LjUyLDAsMSwwLDQuNTItNC41MkE0LjUzLDQuNTMsMCwwLDAsMTkuMSwxNy44N1ptNy40NCwwQTIuOTIsMi45MiwwLDEsMSwyMy42MiwxNSwy''@;'; + put 'put ''LjkyLDIuOTIsMCwwLDEsMjYuNTQsMTcuODdaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiLz5cbiAgPHBhdGggZD0iTTMyLDEzLjIyVjI4SDRWOEgyMi43OGE3LjM3LDcuMzcsMCwwLDEtLjI4LTJINEEyLDIsMCwwLDAsMiw4VjI4''@;'; + put 'put ''YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYxMi4zNEE3LjY1LDcuNjUsMCwwLDEsMzIsMTMuMjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiLz5cbiAgPHBhdGggZD0iTTYsMTFWMjMuNTVIOFYxMkgyNS41MWE3LjY2''@;'; + put 'put ''LDcuNjYsMCwwLDEtMS44NS0ySDdBMSwxLDAsMCwwLDYsMTFaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQiLz5cbiAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1p''@;'; + put 'put ''LW91dGxpbmUtcGF0aC01LS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cblxuICA8cGF0aCBkPSJNOC44MSwxNy44N2E0LjUzLDQuNTMsMCwxLDAsNC41Mi00LjUyQTQuNTMsNC41MywwLDAsMCw4LjgxLDE3Ljg3Wm03LjQ1LDBBMi45MywyLjkzLDAsMSwxLDEzLjMzLDE1LDIuOTMsMi45MywwLDAs''@;'; + put 'put ''MSwxNi4yNiwxNy44N1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIi8+XG4gIDxwYXRoIGQ9Ik03LDEwYTEsMSwwLDAsMC0xLDFWMjMuNTVIOFYxMkgxOC41N0EzLjcsMy43LDAsMCwxLDE5LDEwWiIgY2xhc3M9ImNsci1pLW91''@;'; + put 'put ''dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiLz5cbiAgPHBhdGggZD0iTTMzLjY4LDE1LjRIMzJWMjhINFY4SDIwLjE0bDEuMTUtMkg0QTIsMiwwLDAsMCwyLDhWMjhhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjE1LjM4WiIgY2xhc3M9ImNsci1p''@;'; + put 'put ''LW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiLz5cbiAgPHBhdGggZD0iTTIyLjA5LDE1LjM5YTMuNjUsMy42NSwwLDAsMS0xLjgtLjU1LDQuNTEsNC41MSwwLDEsMCw3LjExLjU2SDI1LjE3YTIuOTIsMi45MiwwLDEsMS0zLjA4LDBaIiBjbGFzcz0iY2xy''@;'; + put 'put ''LWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRlZCIvPlxuICA8cGF0aCBkPSJNMjYuODUsMS4xNGwtNS43Miw5LjkxQTEuMjcsMS4yNywwLDAsMCwyMi4yMywxM0gzMy42OGExLjI3LDEuMjcsMCwwLDAsMS4xLTEuOTFMMjkuMDYsMS4xNEExLjI4LDEuMjgs''@;'; + put 'put ''MCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC01LS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+XG5cbiAgPHBhdGggZD0iTTMyLDZINEEyLDIsMCwwLDAsMiw4VjI4YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlY4''@;'; + put 'put ''QTIsMiwwLDAsMCwzMiw2Wk0zMCwyNEg2VjEySDMwWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPlxuICA8cGF0aCBkPSJNMTIuMjEsMjNhNSw1LDAsMSwwLTUtNUE1LDUsMCwwLDAsMTIuMjEsMjNabTAtN2EyLDIsMCwxLDEtMiwyQTIsMiwwLDAsMSwxMi4yMSwx''@;'; + put 'put ''NloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiLz5cbiAgPHBhdGggZD0iTTIzLjc5LDIzYTUsNSwwLDEsMC01LTVBNSw1LDAsMCwwLDIzLjc5LDIzWm0wLTdhMiwyLDAsMSwxLTIsMkEyLDIsMCwwLDEsMjMuNzksMTZaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWkt''@;'; + put 'put ''c29saWQtcGF0aC0zIi8+XG5cbiAgPHBhdGggZD0iTTEyLjIxLDIzYTUsNSwwLDEsMC01LTVBNSw1LDAsMCwwLDEyLjIxLDIzWm0wLTdhMiwyLDAsMSwxLTIsMkEyLDIsMCwwLDEsMTIuMjEsMTZaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdl''@;'; + put 'put ''ZCIvPlxuICA8cGF0aCBkPSJNMjMuNzksMjNhNSw1LDAsMSwwLTUtNUE1LDUsMCwwLDAsMjMuNzksMjNabTAtN2EyLDIsMCwxLDEtMiwyQTIsMiwwLDAsMSwyMy43OSwxNloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIi8+XG4gIDxwYXRo''@;'; + put 'put ''IGQ9Ik0zMCwxMy41VjI0SDZWMTJIMjUuNTFhNy40OSw3LjQ5LDAsMCwxLTMtNkg0QTIsMiwwLDAsMCwyLDhWMjhhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjEyLjM0QTcuNDksNy40OSwwLDAsMSwzMCwxMy41WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29s''@;'; + put 'put ''aWQtcGF0aC0zLS1iYWRnZWQiLz5cbiAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTQtLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuXG4gIDxwYXRoIGQ9Ik03LjIsMThhNSw1LDAsMSwwLDUtNUE1LDUsMCww''@;'; + put 'put ''LDAsNy4yLDE4Wm03LDBhMiwyLDAsMSwxLTItMkEyLDIsMCwwLDEsMTQuMjIsMThaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIi8+XG4gIDxwYXRoIGQ9Ik0xOC43OCwxOGE1LDUsMCwxLDAsOS4yNy0yLjZIMjIuMjNhMy43MSwzLjcx''@;'; + put 'put ''LDAsMCwxLTIuMTctLjcxQTUsNSwwLDAsMCwxOC43OCwxOFptNS0yYTIsMiwwLDEsMS0yLDJBMiwyLDAsMCwxLDIzLjc5LDE2WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCIvPlxuICA8cGF0aCBkPSJNMzMuNjgsMTUuNEgzMFYyNEg2''@;'; + put 'put ''VjEySDE4LjU3YTMuNjUsMy42NSwwLDAsMSwuNDgtMi4xMUwyMS4yOSw2SDRBMiwyLDAsMCwwLDIsOFYyOGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMTUuMzhaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0zLS1hbGVydGVkIi8+XG4gIDxw''@;'; + put 'put ''YXRoIGQ9Ik0yNi44NSwxLjE0bC01LjcyLDkuOTFBMS4yNywxLjI3LDAsMCwwLDIyLjIzLDEzSDMzLjY4YTEuMjcsMS4yNywwLDAsMCwxLjEtMS45MUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlk''@;'; + put 'put ''LXBhdGgtNC0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAnKSxlLkNsclNoYXBlQW5pbWF0aW9uPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xMC4xNiwzMS43MWE0LjQsNC40LDAsMCwxLTQuNjQtMUE0LjM0LDQuMzQsMCwwLDEsNC4yMywyNy42YTQuNDEsNC40MSwwLDAsMSwuMTgt''@;'; + put 'put ''MS4yLDExLjYxLDExLjYxLDAsMCwxLTEtMi41Niw2LjQsNi40LDAsMCwwLDkuMzMsOC42M0ExMS41NSwxMS41NSwwLDAsMSwxMC4xNiwzMS43MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gIDxwYXRoIGQ9Ik0xOC40MSwyNy42OGE3LjYxLDcuNjEs''@;'; + put 'put ''MCwwLDEtOS4wOC0xLjI2LDcuNTgsNy41OCwwLDAsMS0xLjI3LTkuMDYsMTQuMjYsMTQuMjYsMCwwLDEtLjM3LTIuODUsOS41OCw5LjU4LDAsMCwwLC4yMiwxMy4zMyw5LjYzLDkuNjMsMCwwLDAsMTMuMzUuMjJBMTQuNDYsMTQuNDYsMCwwLDEsMTguNDEsMjcuNjhaIiBjbGFzcz0iY2xyLWkt''@;'; + put 'put ''b3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICA8cGF0aCBkPSJNMjEuNjYsMjYuMjFhMTIuMSwxMi4xLDAsMSwxLDguNTctMy41NGgwQTEyLjExLDEyLjExLDAsMCwxLDIxLjY2LDI2LjIxWk0yMS42Niw0QTEwLjExLDEwLjExLDAsMCwwLDExLjU0LDE0LjExYTEwLDEwLDAsMCww''@;'; + put 'put ''LDMsNy4xNCwxMC4xMiwxMC4xMiwwLDAsMCwxNC4zMSwwQTEwLjExLDEwLjExLDAsMCwwLDIxLjY2LDRabTcuODYsMThoMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gIFxuICA8cGF0aCBkPSJNMy41LDIzLjc3YTYuNDEsNi40MSwwLDAsMCw5LjMz''@;'; + put 'put ''LDguNjdBMTEuNjUsMTEuNjUsMCwwLDEsMy41LDIzLjc3WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPlxuICA8cGF0aCBkPSJNNy42OCwxNC41M2E5LjYsOS42LDAsMCwwLDEzLjQsMTMuN0ExNC4xMSwxNC4xMSwwLDAsMSw3LjY4LDE0LjUzWiIgY2xhc3M9ImNs''@;'; + put 'put ''ci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIvPlxuICA8cGF0aCBkPSJNMjEuNzgsMkExMi4xMiwxMi4xMiwwLDEsMSw5LjY2LDE0LjE1LDEyLjEyLDEyLjEyLDAsMCwxLDIxLjc4LDIiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiLz5cbiAgJyksZS5DbHJTaGFw''@;'; + put 'put ''ZUNpQ2Q9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTIzLjUzLDE5LjgxYTcuNDUsNy40NSwwLDAsMS0xLjY1LS4xOCwxMC40OCwxMC40OCwwLDAsMSwuNzIsMi4xM2MuMywwLC42MSwwLC45MywwYTkuNTIsOS41MiwwLDAsMCwzLS40OWwtLjkzLTEuODFBNy42Nyw3LjY3LDAsMCwxLDIz''@;'; + put 'put ''LjUzLDE5LjgxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgPHBhdGggZD0iTTE4LjM2LDE3Ljg3LDE4LDE3LjQ5YTcuNCw3LjQsMCwwLDEtMi4yLTUuOTIsNy4zMSw3LjMxLDAsMCwxLDEuNTQtNEwxNy4yNiw5QTEsMSwwLDAsMCwxOC4xNywxMGgu''@;'; + put 'put ''MDlhMSwxLDAsMCwwLDEtLjkxTDE5LjYsNWExLDEsMCwwLDAtLjI5LS43OUExLDEsMCwwLDAsMTguNTIsNGwtNC4wOS4zNWExLDEsMCwwLDAsLjE3LDJsMS4yOS0uMTFhOS40NSw5LjQ1LDAsMCwwLTIuMDUsNS4zMiw5LjI4LDkuMjgsMCwwLDAsMi42Nyw3LjI2bC4zMS4zN2E3LjMzLDcuMzMs''@;'; + put 'put ''MCwwLDEsMi4wNiw0LjkxLDcuMzksNy4zOSwwLDAsMS0uMjYsMi40N2wxLjguOTFhOC43Niw4Ljc2LDAsMCwwLC40NS0zLjUxQTkuMjgsOS4yOCwwLDAsMCwxOC4zNiwxNy44N1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gIDxwYXRoIGQ9Ik0zMi40''@;'; + put 'put ''LDE3LjkxLDMxLjE5LDE4QTkuNjUsOS42NSwwLDAsMCwyMy41MywyLjQ1YTkuMzMsOS4zMywwLDAsMC0zLC40OWwuOTEsMS44YTcuNjcsNy42NywwLDAsMSw5Ljc2LDcuMzksNy41OCw3LjU4LDAsMCwxLTEuNjUsNC43MmwuMS0xLjU0YTEsMSwwLDEsMC0yLS4xM2wtLjI4LDQuMDhhMSwxLDAs''@;'; + put 'put ''MCwwLC4zMS43OC45NC45NCwwLDAsMCwuNjkuMjhoLjFsNC4wOC0uNDJhMSwxLDAsMCwwLC45LTEuMUExLDEsMCwwLDAsMzIuNCwxNy45MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gIDxwYXRoIGQ9Ik00LjA3LDIwLjQ0aC4wOGw0LjA5LS4zNWEx''@;'; + put 'put ''LDEsMCwxLDAtLjE3LTJsLTEuMzkuMTJhNy42Myw3LjYzLDAsMCwxLDQuNTItMS40OSw3LjksNy45LDAsMCwxLDEuNjMuMTgsMTAuMjMsMTAuMjMsMCwwLDEtLjcxLTIuMTNjLS4zLDAtLjYxLDAtLjkyLDBhOS42Niw5LjY2LDAsMCwwLTUuOSwybC4xMi0xLjMxYTEsMSwwLDAsMC0uOTItMS4w''@;'; + put 'put ''OCwxLDEsMCwwLDAtMS4wOC45MWwtLjM1LDQuMDhhMSwxLDAsMCwwLDEsMS4wOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00Ii8+XG4gIDxwYXRoIGQ9Ik0xOC40MiwyOC4yM2wtNC4wOS4yN2ExLDEsMCwwLDAsLjEzLDJMMTYsMzAuMzlhNy43MSw3LjcxLDAs''@;'; + put 'put ''MCwxLTEyLjU0LTYsNy42LDcuNiwwLDAsMSwuMjktMkwyLDIxLjQ2YTkuNTksOS41OSwwLDAsMC0uNDcsMi45NUE5LjcsOS43LDAsMCwwLDE3LjE5LDMybC0uMTIsMS4xOGExLDEsMCwwLDAsLjg5LDEuMWguMTFhMSwxLDAsMCwwLDEtLjlsLjQyLTQuMDZhMSwxLDAsMCwwLTEuMDYtMS4xWiIg''@;'; + put 'put ''Y2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiLz4nKSxlLkNsclNoYXBlRmlsZVNoYXJlMj0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjUsNEg3LjgzQTEuODksMS44OSwwLDAsMCw2LDUuOTFWMzAuMDlBMS44OSwxLjg5LDAsMCwwLDcuODMsMzJIMjguMTdB''@;'; + put 'put ''MS44NywxLjg3LDAsMCwwLDMwLDMwLjA5VjlaTTI0LDUuNzgsMjguMiwxMEgyNFpNOCwzMFY2SDIydjZoNlYzMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gIDxwYXRoIGQ9Ik0yMiwyMS44MWEyLjExLDIuMTEsMCwwLDAtMS40NC42MmwtNS43Mi0y''@;'; + put 'put ''LjY2di0uNDRsNS42Ni0yLjY1YTIuMDgsMi4wOCwwLDEsMCwuMDYtMi45NGgwYTIuMTQsMi4xNCwwLDAsMC0uNjQsMS40OHYuMjNsLTUuNjQsMi42NmEyLjA4LDIuMDgsMCwxLDAtLjA4LDIuOTVsLjA4LS4wOCw1LjY3LDIuNjZ2LjNBMi4wOSwyLjA5LDAsMSwwLDIyLDIxLjg0WiIgY2xhc3M9''@;'; + put 'put ''ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgXG4gIDxwYXRoIGQ9Ik0yNSw0LjA2SDcuODNBMS44OSwxLjg5LDAsMCwwLDYsNlYzMC4xNWExLjg5LDEuODksMCwwLDAsMS44MywxLjkxSDI4LjE3QTEuODcsMS44NywwLDAsMCwzMCwzMC4xNVY5Wk0yMiwyNmEyLjA5''@;'; + put 'put ''LDIuMDksMCwwLDEtMi4xLTIuMDh2LS4zTDE0LjI3LDIxbC0uMDguMDhhMi4wOCwyLjA4LDAsMSwxLC4wOC0yLjk1bDUuNjQtMi42NnYtLjIzYTIuMTQsMi4xNCwwLDAsMSwuNjQtMS40OGgwYTIuMDgsMi4wOCwwLDEsMS0uMDYsMi45NGwtNS42NiwyLjY1di40NGw1LjcyLDIuNjZBMi4xMSwy''@;'; + put 'put ''LjExLDAsMCwxLDIyLDIxLjgxbDAsMEEyLjA5LDIuMDksMCwwLDEsMjIsMjZabTItMTZWNS44NGw0LjIsNC4yMloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz4nKSxlLlRlY2hub2xvZ3lTaGFwZXM9eyJydWxlci1wZW5jaWwiOmUuQ2xyU2hhcGVSdWxlclBlbmNp''@;'; + put 'put ''bCwicGhvbmUtaGFuZHNldCI6ZS5DbHJTaGFwZVBob25lSGFuZHNldCwibm8td2lmaSI6ZS5DbHJTaGFwZU5vV2lmaSxpbnN0YWxsOmUuQ2xyU2hhcGVJbnN0YWxsLHVuaW5zdGFsbDplLkNsclNoYXBlVW5pbnN0YWxsLGxheWVyczplLkNsclNoYXBlTGF5ZXJzLGJsb2NrOmUuQ2xyU2hhcGVC''@;'; + put 'put ''bG9jaywiYmxvY2tzLWdyb3VwIjplLkNsclNoYXBlQmxvY2tzR3JvdXAsYnVuZGxlOmUuQ2xyU2hhcGVCdW5kbGUsd2lmaTplLkNsclNoYXBlV2lmaSwicmFjay1zZXJ2ZXIiOmUuQ2xyU2hhcGVSYWNrU2VydmVyLCJoYXJkLWRpc2siOmUuQ2xyU2hhcGVIYXJkRGlzaywiYmFja3VwLXJlc3Rv''@;'; + put 'put ''cmUiOmUuQ2xyU2hhcGVCYWNrdXBSZXN0b3JlLGJhY2t1cDplLkNsclNoYXBlQmFja3VwLGRldmljZXM6ZS5DbHJTaGFwZURldmljZXMsa2V5Ym9hcmQ6ZS5DbHJTaGFwZUtleWJvYXJkLG1vdXNlOmUuQ2xyU2hhcGVNb3VzZSxkYXNoYm9hcmQ6ZS5DbHJTaGFwZURhc2hib2FyZCxob3N0OmUu''@;'; + put 'put ''Q2xyU2hhcGVIb3N0LHN0b3JhZ2U6ZS5DbHJTaGFwZVN0b3JhZ2UsY2x1c3RlcjplLkNsclNoYXBlQ2x1c3RlcixhcHBsaWNhdGlvbnM6ZS5DbHJTaGFwZUFwcGxpY2F0aW9ucyxidWlsZGluZzplLkNsclNoYXBlQnVpbGRpbmcsY3B1OmUuQ2xyU2hhcGVDUFUsbWVtb3J5OmUuQ2xyU2hhcGVN''@;'; + put 'put ''ZW1vcnksImRhdGEtY2x1c3RlciI6ZS5DbHJTaGFwZURhdGFDbHVzdGVyLCJyZXNvdXJjZS1wb29sIjplLkNsclNoYXBlUmVzb3VyY2VQb29sLHNoaWVsZDplLkNsclNoYXBlU2hpZWxkLCJzaGllbGQtY2hlY2siOmUuQ2xyU2hhcGVTaGllbGRDaGVjaywic2hpZWxkLXgiOmUuQ2xyU2hhcGVT''@;'; + put 'put ''aGllbGRYLGltcG9ydDplLkNsclNoYXBlSW1wb3J0LGV4cG9ydDplLkNsclNoYXBlRXhwb3J0LCJ1cGxvYWQtY2xvdWQiOmUuQ2xyU2hhcGVVcGxvYWRDbG91ZCwiZG93bmxvYWQtY2xvdWQiOmUuQ2xyU2hhcGVEb3dubG9hZENsb3VkLHBsdWdpbjplLkNsclNoYXBlUGx1Z2luLGZsb3BweTpl''@;'; + put 'put ''LkNsclNoYXBlRmxvcHB5LGNvbXB1dGVyOmUuQ2xyU2hhcGVDb21wdXRlcixkaXNwbGF5OmUuQ2xyU2hhcGVEaXNwbGF5LHRlcm1pbmFsOmUuQ2xyU2hhcGVUZXJtaW5hbCxjb2RlOmUuQ2xyU2hhcGVDb2RlLGFwcGxpY2F0aW9uOmUuQ2xyU2hhcGVBcHBsaWNhdGlvbixiYXR0ZXJ5OmUuQ2xy''@;'; + put 'put ''U2hhcGVCYXR0ZXJ5LG1vYmlsZTplLkNsclNoYXBlTW9iaWxlLHRhYmxldDplLkNsclNoYXBlVGFibGV0LCJuZXR3b3JrLWdsb2JlIjplLkNsclNoYXBlTmV0d29ya0dsb2JlLCJuZXR3b3JrLXNldHRpbmdzIjplLkNsclNoYXBlTmV0d29ya1NldHRpbmdzLCJuZXR3b3JrLXN3aXRjaCI6ZS5D''@;'; + put 'put ''bHJTaGFwZU5ldHdvcmtTd2l0Y2gscm91dGVyOmUuQ2xyU2hhcGVSb3V0ZXIsdm06ZS5DbHJTaGFwZVZNLCJ2bXctYXBwIjplLkNsclNoYXBlVk1XQXBwLGNlcnRpZmljYXRlOmUuQ2xyU2hhcGVDZXJ0aWZpY2F0ZSxhcmNoaXZlOmUuQ2xyU2hhcGVBcmNoaXZlLHVuYXJjaGl2ZTplLkNsclNo''@;'; + put 'put ''YXBlVW5hcmNoaXZlLGNvbm5lY3Q6ZS5DbHJTaGFwZUNvbm5lY3QsZGlzY29ubmVjdDplLkNsclNoYXBlRGlzY29ubmVjdCxsaW5rOmUuQ2xyU2hhcGVMaW5rLHVubGluazplLkNsclNoYXBlVW5saW5rLCJjbG91ZC1uZXR3b3JrIjplLkNsclNoYXBlQ2xvdWROZXR3b3JrLCJjbG91ZC1zY2Fs''@;'; + put 'put ''ZSI6ZS5DbHJTaGFwZUNsb3VkU2NhbGUsImNsb3VkLXRyYWZmaWMiOmUuQ2xyU2hhcGVDbG91ZFRyYWZmaWMsImNvbnRyb2wtbHVuIjplLkNsckNvbnRyb2xMdW4sZGVwbG95OmUuQ2xyU2hhcGVEZXBsb3ksaGVsaXg6ZS5DbHJTaGFwZUhlbGl4LGZsYXNrOmUuQ2xyU2hhcGVGbGFzayxhZG1p''@;'; + put 'put ''bmlzdHJhdG9yOmUuQ2xyU2hhcGVBZG1pbmlzdHJhdG9yLCJoYXJkLWRyaXZlIjplLkNsclNoYXBlSGFyZERyaXZlLCJoYXJkLWRyaXZlLWRpc2tzIjplLkNsclNoYXBlSGFyZERyaXZlRGlza3MsbnZtZTplLkNsclNoYXBlTlZNZSxzc2Q6ZS5DbHJTaGFwZVNTRCxibHVldG9vdGg6ZS5DbHJT''@;'; + put 'put ''aGFwZUJsdWV0b290aCwiYmx1ZXRvb3RoLW9mZiI6ZS5DbHJTaGFwZUJsdWV0b290aE9mZiwicHJvY2Vzcy1vbi12bSI6ZS5DbHJTaGFwZVByb2Nlc3NPblZNLCJhc3NpZ24tdXNlciI6ZS5DbHJTaGFwZUFzc2lnblVzZXIsYXRvbTplLkNsclNoYXBlQXRvbSwiYmFyLWNvZGUiOmUuQ2xyU2hh''@;'; + put 'put ''cGVCYXJDb2RlLCJjZC1kdmQiOmUuQ2xyU2hhcGVDZER2ZCxjb250YWluZXI6ZS5DbHJTaGFwZUNvbnRhaW5lciwiY29udGFpbmVyLXZvbHVtZSI6ZS5DbHJTaGFwZUNvbnRhaW5lclZvbHVtZSwiZmlsZS1zaGFyZSI6ZS5DbHJTaGFwZUZpbGVTaGFyZSwicXItY29kZSI6ZS5DbHJTaGFwZVFy''@;'; + put 'put ''Q29kZSx1c2I6ZS5DbHJTaGFwZVVzYixyYWRhcjplLkNsclNoYXBlUmFkYXIsY2FwYWNpdG9yOmUuQ2xyU2hhcGVDYXBhY2l0b3Isc3F1aWQ6ZS5DbHJTaGFwZVNxdWlkLGluZHVjdG9yOmUuQ2xyU2hhcGVJbmR1Y3RvcixyZXNpc3RvcjplLkNsclNoYXBlUmVzaXN0b3IsImhvc3QtZ3JvdXAi''@;'; + put 'put ''OmUuQ2xyU2hhcGVIb3N0R3JvdXAsInN0b3JhZ2UtYWRhcHRlciI6ZS5DbHJTaGFwZVN0b3JhZ2VBZGFwdGVyLCJub2RlLWdyb3VwIjplLkNsclNoYXBlTm9kZUdyb3VwLG5vZGVzOmUuQ2xyU2hhcGVOb2RlcyxuYW1lc3BhY2U6ZS5DbHJTaGFwZU5hbWVzcGFjZSxub2RlOmUuQ2xyU2hhcGVO''@;'; + put 'put ''b2RlLHBvZDplLkNsclNoYXBlUG9kLCJtZWRpYS1jaGFuZ2VyIjplLkNsclNoYXBlTWVkaWFDaGFuZ2VyLCJ0YXBlLWRyaXZlIjplLkNsclNoYXBlVGFwZURyaXZlLGFuaW1hdGlvbjplLkNsclNoYXBlQW5pbWF0aW9uLCJjaS1jZCI6ZS5DbHJTaGFwZUNpQ2QsImZpbGUtc2hhcmUtMiI6ZS5D''@;'; + put 'put ''bHJTaGFwZUZpbGVTaGFyZTJ9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLlRlY2hub2xvZ3lTaGFwZXMsInNlcnZlciIsKDAsci5kZXNjcmlwdG9yQ29uZmlnKShlLlRlY2hub2xvZ3lTaGFwZXMuaG9zdCkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLlRlY2hub2xvZ3lTaGFwZXMsImNvbW1h''@;'; + put 'put ''bmQiLCgwLHIuZGVzY3JpcHRvckNvbmZpZykoZS5UZWNobm9sb2d5U2hhcGVzLnRlcm1pbmFsKSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUuVGVjaG5vbG9neVNoYXBlcywibW9iaWxlLXBob25lIiwoMCxyLmRlc2NyaXB0b3JDb25maWcpKGUuVGVjaG5vbG9neVNoYXBlcy5tb2JpbGUpKSxP''@;'; + put 'put ''YmplY3QuZGVmaW5lUHJvcGVydHkoZS5UZWNobm9sb2d5U2hhcGVzLCJsaWNlbnNlIiwoMCxyLmRlc2NyaXB0b3JDb25maWcpKGUuVGVjaG5vbG9neVNoYXBlcy5jZXJ0aWZpY2F0ZSkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLlRlY2hub2xvZ3lTaGFwZXMsImRpc2Nvbm5lY3RlZCIsKDAs''@;'; + put 'put ''ci5kZXNjcmlwdG9yQ29uZmlnKShlLlRlY2hub2xvZ3lTaGFwZXNbIm5vLXdpZmkiXSkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLlRlY2hub2xvZ3lTaGFwZXMsInJlY2VpdmVyIiwoMCxyLmRlc2NyaXB0b3JDb25maWcpKGUuVGVjaG5vbG9neVNoYXBlc1sicGhvbmUtaGFuZHNldCJdKSks''@;'; + put 'put ''T2JqZWN0LmRlZmluZVByb3BlcnR5KGUuVGVjaG5vbG9neVNoYXBlcywiZGVzaWduIiwoMCxyLmRlc2NyaXB0b3JDb25maWcpKGUuVGVjaG5vbG9neVNoYXBlc1sicnVsZXItcGVuY2lsIl0pKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5UZWNobm9sb2d5U2hhcGVzLCJkbmEiLCgwLHIuZGVz''@;'; + put 'put ''Y3JpcHRvckNvbmZpZykoZS5UZWNobm9sb2d5U2hhcGVzLmhlbGl4KSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUuVGVjaG5vbG9neVNoYXBlcywiZm9sZGVyLXNoYXJlIiwoMCxyLmRlc2NyaXB0b3JDb25maWcpKGUuVGVjaG5vbG9neVNoYXBlc1siZmlsZS1zaGFyZSJdKSksInVuZGVmaW5l''@;'; + put 'put ''ZCIhPXR5cGVvZiB3aW5kb3cmJndpbmRvdy5oYXNPd25Qcm9wZXJ0eSgiQ2xhcml0eUljb25zIikmJndpbmRvdy5DbGFyaXR5SWNvbnMuYWRkKGUuVGVjaG5vbG9neVNoYXBlcyl9LCIuL3Byb2plY3RzL2ljb25zL3NyYy9zaGFwZXMvdGV4dC1lZGl0LXNoYXBlcy50cyI6ZnVuY3Rpb24oQSxl''@;'; + put 'put ''LGwpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5UZXh0RWRpdFNoYXBlcz1lLkNsclNoYXBlU3VwZXJzY3JpcHQ9ZS5DbHJTaGFwZVN1YnNjcmlwdD1lLkNsclNoYXBlU3RyaWtldGhyb3VnaD1lLkNsclNoYXBlSW5kZW50''@;'; + put 'put ''PWUuQ2xyU2hhcGVPdXRkZW50PWUuQ2xyU2hhcGVIaWdobGlnaHRlcj1lLkNsclNoYXBlVGV4dENvbG9yPWUuQ2xyU2hhcGVMYW5ndWFnZT1lLkNsclNoYXBlQWxpZ25Ub3A9ZS5DbHJTaGFwZUFsaWduTWlkZGxlPWUuQ2xyU2hhcGVBbGlnbkJvdHRvbT1lLkNsclNoYXBlVW5kZXJsaW5lPWUu''@;'; + put 'put ''Q2xyU2hhcGVUZXh0PWUuQ2xyU2hhcGVBbGlnblJpZ2h0VGV4dD1lLkNsclNoYXBlQmxvY2tRdW90ZT1lLkNsclNoYXBlUGFpbnRSb2xsZXI9ZS5DbHJTaGFwZU51bWJlckxpc3Q9ZS5DbHJTaGFwZUFsaWduTGVmdFRleHQ9ZS5DbHJTaGFwZUp1c3RpZnlUZXh0PWUuQ2xyU2hhcGVJdGFsaWM9''@;'; + put 'put ''ZS5DbHJTaGFwZUFsaWduUmlnaHQ9ZS5DbHJTaGFwZUFsaWduTGVmdD1lLkNsclNoYXBlQWxpZ25DZW50ZXI9ZS5DbHJTaGFwZUZvbnRTaXplPWUuQ2xyU2hhcGVDaGVja2JveExpc3Q9ZS5DbHJTaGFwZUNlbnRlclRleHQ9ZS5DbHJTaGFwZUJ1bGxldExpc3Q9ZS5DbHJTaGFwZUJvbGQ9dm9p''@;'; + put 'put ''ZCAwLGw9bCgiLi9wcm9qZWN0cy9pY29ucy9zcmMvdXRpbHMvc3ZnLXRhZy1nZW5lcmF0b3IudHMiKSxlLkNsclNoYXBlQm9sZD0oMCxsLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjIuNDMsMTcuNTRhNC42Nyw0LjY3LDAsMCwwLDIuOC00LjM3di0uMDZhNC40Myw0LjQzLDAsMCwwLTEuMzEt''@;'; + put 'put ''My4yNSw3LjA5LDcuMDksMCwwLDAtNS4xMy0xLjczaC03QTEuNzEsMS43MSwwLDAsMCwxMCw5Ljg2VjI2YTEuNzIsMS43MiwwLDAsMCwxLjc0LDEuNzRoNy4zM2M0LjM3LDAsNy4yNS0xLjg4LDcuMjUtNS4zOFYyMi4zQzI2LjMyLDE5LjY0LDI0LjczLDE4LjMyLDIyLjQzLDE3LjU0Wk0xMy42''@;'; + put 'put ''OCwxMS40aDQuNTRjMiwwLDMuMTUuODksMy4xNSwyLjMzdi4wNmMwLDEuNjgtMS4zNiwyLjQ5LTMuMzgsMi40OUgxMy42OFpNMjIuMzcsMjJjMCwxLjU5LTEuMzEsMi40My0zLjQ2LDIuNDNIMTMuNjhWMTkuNjJoNWMyLjQ5LDAsMy42OS44OCwzLjY5LDIuMzdaIiBjbGFzcz0iY2xyLWktb3V0''@;'; + put 'put ''bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz4nKSxlLkNsclNoYXBlQnVsbGV0TGlzdD0oMCxsLmNsckljb25TVkcpKCc8Y2lyY2xlIGN4PSI1LjIxIiBjeT0iOS4xNyIgcj0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PGNpcmNsZSBjeD0iNS4y''@;'; + put 'put ''MSIgY3k9IjE3LjE3IiByPSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48Y2lyY2xlIGN4PSI1LjIxIiBjeT0iMjUuMTciIHI9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0zMi40Miw5YTEs''@;'; + put 'put ''MSwwLDAsMC0xLTFIMTB2MkgzMS40MkExLDEsMCwwLDAsMzIuNDIsOVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPjxwYXRoIGQ9Ik0zMS40MiwxNkgxMHYySDMxLjQyYTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRs''@;'; + put 'put ''aW5lLXBhdGgtNSIgLz48cGF0aCBkPSJNMzEuNDIsMjRIMTB2MkgzMS40MmExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIC8+JyksZS5DbHJTaGFwZUNlbnRlclRleHQ9KDAsbC5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMwLjg4LDhI''@;'; + put 'put ''NS4xMmExLjEsMS4xLDAsMCwwLDAsMi4ySDMwLjg4YTEuMSwxLjEsMCwxLDAsMC0yLjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMjUuNSwxNi4yYTEuMSwxLjEsMCwxLDAsMC0yLjJoLTE1YTEuMSwxLjEsMCwxLDAsMCwyLjJaIiBj''@;'; + put 'put ''bGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMzAuMjUsMjBINS43NWExLjEsMS4xLDAsMCwwLDAsMi4yaDI0LjVhMS4xLDEuMSwwLDAsMCwwLTIuMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxwYXRo''@;'; + put 'put ''IGQ9Ik0yNC44OCwyNkgxMS4xMmExLjEsMS4xLDAsMSwwLDAsMi4ySDI0Ljg4YTEuMSwxLjEsMCwxLDAsMC0yLjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz4nKSxlLkNsclNoYXBlQ2hlY2tib3hMaXN0PSgwLGwuY2xySWNvblNWRykoJzxwYXRoIGQ9''@;'; + put 'put ''Ik0zMS40MywxNkgxMHYySDMxLjQzYTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMzEuNDMsMjRIMTB2MkgzMS40M2ExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1w''@;'; + put 'put ''YXRoLTIiIC8+PHBhdGggZD0iTTE1LjQ1LDEwaDE2YTEsMSwwLDAsMCwwLTJoLTE0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+PHBhdGggZD0iTTE3LjUsMy40MmExLjA5LDEuMDksMCwwLDAtMS41NSwwTDcuODksMTEuNDgsNC41MSw3Ljg0QTEuMSwx''@;'; + put 'put ''LjEsMCwxLDAsMi45LDkuMzRsNC45NCw1LjNMMTcuNSw1QTEuMSwxLjEsMCwwLDAsMTcuNSwzLjQyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+JyksZS5DbHJTaGFwZUZvbnRTaXplPSgwLGwuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yMSw5LjA4QTEu''@;'; + put 'put ''MTMsMS4xMywwLDAsMCwxOS44Niw4SDQuNjJhMS4xLDEuMSwwLDEsMCwwLDIuMTlIMTFWMjdhMS4wOSwxLjA5LDAsMCwwLDIuMTcsMFYxMC4xOWg2LjY5QTEuMTQsMS4xNCwwLDAsMCwyMSw5LjA4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGgg''@;'; + put 'put ''ZD0iTTMwLjY3LDE1SDIxLjE1YTEuMSwxLjEsMCwxLDAsMCwyLjE5SDI1VjI2LjVhMS4wOSwxLjA5LDAsMCwwLDIuMTcsMFYxNy4yM2gzLjU0YTEuMSwxLjEsMCwxLDAsMC0yLjE5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+JyksZS5DbHJTaGFwZUFs''@;'; + put 'put ''aWduQ2VudGVyPSgwLGwuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMSwyMEgxOVYxNmg2YTEsMSwwLDAsMCwxLTFWN2ExLDEsMCwwLDAtMS0xSDE5VjJhMSwxLDAsMCwwLTIsMFY2SDExYTEsMSwwLDAsMC0xLDF2OGExLDEsMCwwLDAsMSwxaDZ2NEg1YTEsMSwwLDAsMC0xLDF2OGExLDEsMCww''@;'; + put 'put ''LDAsMSwxSDE3djRhMSwxLDAsMCwwLDIsMFYzMEgzMWExLDEsMCwwLDAsMS0xVjIxQTEsMSwwLDAsMCwzMSwyMFpNMTIsMTRWOEgyNHY2Wk0zMCwyOEg2VjIySDMwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+JyksZS5DbHJTaGFwZUFsaWduTGVmdD0o''@;'; + put 'put ''MCxsLmNsckljb25TVkcpKCc8cGF0aCBkPSJNNSwxQTEsMSwwLDAsMCw0LDJWMzRhMSwxLDAsMCwwLDIsMFYyQTEsMSwwLDAsMCw1LDFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMzEsMjBIOFYzMEgzMWExLDEsMCwwLDAsMS0xVjIx''@;'; + put 'put ''QTEsMSwwLDAsMCwzMSwyMFptLTEsOEgxMFYyMkgzMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0yNCwxNVY3YTEsMSwwLDAsMC0xLTFIOFYxNkgyM0ExLDEsMCwwLDAsMjQsMTVabS0yLTFIMTBWOEgyMloiIGNsYXNzPSJjbHItaS1v''@;'; + put 'put ''dXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPicpLGUuQ2xyU2hhcGVBbGlnblJpZ2h0PSgwLGwuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMSwxYTEsMSwwLDAsMC0xLDFWMzRhMSwxLDAsMCwwLDIsMFYyQTEsMSwwLDAsMCwzMSwxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWkt''@;'; + put 'put ''b3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTQsMjF2OGExLDEsMCwwLDAsMSwxSDI4VjIwSDVBMSwxLDAsMCwwLDQsMjFabTIsMUgyNnY2SDZaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMTIsN3Y4YTEsMSwwLDAsMCwxLDFIMjhW''@;'; + put 'put ''NkgxM0ExLDEsMCwwLDAsMTIsN1ptMiwxSDI2djZIMTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz4nKSxlLkNsclNoYXBlSXRhbGljPSgwLGwuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yNC40Miw4SDE3LjFhMS4xLDEuMSwwLDEsMCwwLDIuMTloMi4x''@;'; + put 'put ''M0wxMy4xMSwyNS41NUgxMC40N2ExLjEsMS4xLDAsMSwwLDAsMi4xOUgxNy44YTEuMSwxLjEsMCwxLDAsMC0yLjE5SDE1LjUxbDYuMTMtMTUuMzZoMi43OGExLjEsMS4xLDAsMSwwLDAtMi4xOVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPicpLGUuQ2xy''@;'; + put 'put ''U2hhcGVKdXN0aWZ5VGV4dD0oMCxsLmNsckljb25TVkcpKCc8cGF0aCBkPSJNNiwxMC4ySDMxLjc1YTEuMSwxLjEsMCwxLDAsMC0yLjJINmExLjEsMS4xLDAsMSwwLDAsMi4yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTMxLjc1LDE0''@;'; + put 'put ''SDZhMS4xLDEuMSwwLDEsMCwwLDIuMkgzMS43NWExLjEsMS4xLDAsMSwwLDAtMi4yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTMxLjEyLDIwSDYuNjJhMS4xLDEuMSwwLDEsMCwwLDIuMmgyNC41YTEuMSwxLjEsMCwxLDAsMC0yLjJa''@;'; + put 'put ''IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz48cGF0aCBkPSJNMzAuNDUsMjUuODNINi42YTEuMSwxLjEsMCwwLDAsMCwyLjJIMzAuNDVhMS4xLDEuMSwwLDAsMCwwLTIuMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAv''@;'; + put 'put ''PicpLGUuQ2xyU2hhcGVBbGlnbkxlZnRUZXh0PSgwLGwuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yMC4yNSwyNkg2djIuMkgyMC4yNWExLjEsMS4xLDAsMCwwLDAtMi4yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTI4LDIwSDZ2Mi4y''@;'; + put 'put ''SDI4QTEuMSwxLjEsMCwwLDAsMjgsMjBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMjIuNiwxNS4xQTEuMSwxLjEsMCwwLDAsMjEuNSwxNEg2djIuMkgyMS41QTEuMSwxLjEsMCwwLDAsMjIuNiwxNS4xWiIgY2xhc3M9ImNsci1pLW91''@;'; + put 'put ''dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+PHBhdGggZD0iTTI5LjI1LDhINnYyLjJIMjkuMjVhMS4xLDEuMSwwLDEsMCwwLTIuMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPicpLGUuQ2xyU2hhcGVOdW1iZXJMaXN0PSgwLGwuY2xySWNvblNW''@;'; + put 'put ''RykoJzxwb2x5Z29uIHBvaW50cz0iNS40NiA3LjQxIDUuNDYgMTEuNTYgNi42NSAxMS41NiA2LjY1IDYuMDUgNS43IDYuMDUgNC4wNSA3LjE2IDQuNTIgOCA1LjQ2IDcuNDEiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik01LjU3LDE0Ljgy''@;'; + put 'put ''YS43Ni43NiwwLDAsMSwuODMuNzNjMCwuMzgtLjIxLjc0LS44NywxLjI3bC0yLDEuNTd2MUg3LjY3VjE4LjI4SDUuMzNsMS0uNzdjMS0uNywxLjI4LTEuMjcsMS4yOC0yYTEuODMsMS44MywwLDAsMC0yLTEuNzYsMi42MywyLjYzLDAsMCwwLTIuMTQsMS4wOGwuNzYuNzNBMS43NSwxLjc1LDAs''@;'; + put 'put ''MCwxLDUuNTcsMTQuODJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNNi41NiwyNC42NGExLjMyLDEuMzIsMCwwLDAsMS0xLjI3YzAtLjg3LS43OC0xLjUxLTItMS41MWEyLjYxLDIuNjEsMCwwLDAtMi4xLDFsLjY5LjcyYTEuNzgsMS43''@;'; + put 'put ''OCwwLDAsMSwxLjMtLjY0Yy41NCwwLC45Mi4yNi45Mi42NnMtLjM2LjYyLTEsLjYySDQuNzl2MWguNjRjLjc0LDAsMS4wNy4yMSwxLjA3LjYzcy0uMzUuNjgtMSwuNjhhMiwyLDAsMCwxLTEuNDYtLjY1bC0uNy43OGEyLjg1LDIuODUsMCwwLDAsMi4yMS45M2MxLjI5LDAsMi4xMy0uNjksMi4x''@;'; + put 'put ''My0xLjY0QTEuMzMsMS4zMywwLDAsMCw2LjU2LDI0LjY0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+PHBhdGggZD0iTTMyLjQyLDlhMSwxLDAsMCwwLTEtMUgxMHYySDMxLjQyQTEsMSwwLDAsMCwzMi40Miw5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUg''@;'; + put 'put ''Y2xyLWktb3V0bGluZS1wYXRoLTQiIC8+PHBhdGggZD0iTTMxLjQyLDE2SDEwdjJIMzEuNDJhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiAvPjxwYXRoIGQ9Ik0zMS40MiwyNEgxMHYySDMxLjQyYTEsMSwwLDAsMCwwLTJaIiBjbGFz''@;'; + put 'put ''cz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIgLz4nKSxlLkNsclNoYXBlUGFpbnRSb2xsZXI9KDAsbC5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMxLDEwVjRhMiwyLDAsMCwwLTItMkg2QTIsMiwwLDAsMCw0LDR2NmEyLDIsMCwwLDAsMiwySDI5QTIsMiwwLDAsMCwzMSwx''@;'; + put 'put ''MFpNNiw0SDI5djZINloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0zMyw2SDMydjYuMjlMMTguNywxNi41NGExLDEsMCwwLDAtLjcsMVYxOUgxNlYzM2EyLDIsMCwwLDAsMiwyaDJhMiwyLDAsMCwwLDItMlYxOUgyMHYtLjczTDMzLjMs''@;'; + put 'put ''MTRhMSwxLDAsMCwwLC43LTFWN0ExLDEsMCwwLDAsMzMsNlpNMjAsMzNIMThWMjFoMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxyZWN0IHg9IjQiIHk9IjIiIHdpZHRoPSIyNyIgaGVpZ2h0PSIxMCIgcng9IjEiIHJ5PSIxIiBjbGFzcz0iY2xyLWkt''@;'; + put 'put ''c29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0zMyw2SDMydjYuMjRMMTguNzEsMTYuNDVhMSwxLDAsMCwwLS43MSwxVjE5SDE2VjM0YTEsMSwwLDAsMCwxLDFoNGExLDEsMCwwLDAsMS0xVjE5SDIwdi0uODJMMzMuMjksMTRBMSwxLDAsMCwwLDM0LDEzVjdBMSwxLDAsMCww''@;'; + put 'put ''LDMzLDZaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPicpLGUuQ2xyU2hhcGVCbG9ja1F1b3RlPSgwLGwuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xMS44NiwxNi41NWE0LjMxLDQuMzEsMCwwLDAtMi4xMS41NiwxNC40NCwxNC40NCwwLDAsMSw0LjM2LTYsMS4x''@;'; + put 'put ''LDEuMSwwLDAsMC0xLjQtMS43Yy00LDMuMjUtNS43OCw3Ljc1LTUuNzgsMTAuNTRBNS4wOCw1LjA4LDAsMCwwLDEwLDI0LjU4YTQuNCw0LjQsMCwwLDAsMS44OC40NCw0LjI0LDQuMjQsMCwxLDAsMC04LjQ3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+''@;'; + put 'put ''PHBhdGggZD0iTTIzLDE2LjU1YTQuMjksNC4yOSwwLDAsMC0yLjExLjU2LDE0LjUsMTQuNSwwLDAsMSw0LjM1LTYsMS4xLDEuMSwwLDEsMC0xLjM5LTEuN2MtNCwzLjI1LTUuNzgsNy43NS01Ljc4LDEwLjU0YTUuMDgsNS4wOCwwLDAsMCwzLDQuNjFBNC4zNyw0LjM3LDAsMCwwLDIzLDI1YTQu''@;'; + put 'put ''MjQsNC4yNCwwLDEsMCwwLTguNDdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz4nKSxlLkNsclNoYXBlQWxpZ25SaWdodFRleHQ9KDAsbC5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE0LjY1LDI3LjFhMS4xLDEuMSwwLDAsMCwxLjEsMS4xSDMwVjI2SDE1''@;'; + put 'put ''Ljc1QTEuMSwxLjEsMCwwLDAsMTQuNjUsMjcuMVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik02LjksMjEuMUExLjEsMS4xLDAsMCwwLDgsMjIuMkgzMFYyMEg4QTEuMSwxLjEsMCwwLDAsNi45LDIxLjFaIiBjbGFzcz0iY2xyLWktb3V0''@;'; + put 'put ''bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMTMuNCwxNS4xYTEuMSwxLjEsMCwwLDAsMS4xLDEuMUgzMFYxNEgxNC41QTEuMSwxLjEsMCwwLDAsMTMuNCwxNS4xWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+PHBhdGggZD0iTTYu''@;'; + put 'put ''NzUsOGExLjEsMS4xLDAsMSwwLDAsMi4ySDMwVjhaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz4nKSxlLkNsclNoYXBlVGV4dD0oMCxsLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTIuMTksOC44NGExLjQ1LDEuNDUsMCwwLDAtMS40LTFoLS4xMmExLjQ2''@;'; + put 'put ''LDEuNDYsMCwwLDAtMS40MiwxTDEuMTQsMjYuNTZhMS4yOSwxLjI5LDAsMCwwLS4xNC41OSwxLDEsMCwwLDAsMSwxLDEuMTIsMS4xMiwwLDAsMCwxLjA4LS43N2wyLjA4LTQuNjVoMTFsMi4wOCw0LjU5YTEuMjQsMS4yNCwwLDAsMCwxLjEyLjgzLDEuMDgsMS4wOCwwLDAsMCwxLjA4LTEuMDgs''@;'; + put 'put ''MS42NCwxLjY0LDAsMCwwLS4xNC0uNTdaTTYuMDgsMjAuNzFsNC41OS0xMC4yMiw0LjYsMTAuMjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMzIuMjQsMTQuNzhBNi4zNSw2LjM1LDAsMCwwLDI3LjYsMTMuMmExMS4zNiwxMS4zNiww''@;'; + put 'put ''LDAsMC00LjcsMSwxLDEsMCwwLDAtLjU4Ljg5LDEsMSwwLDAsMCwuOTQuOTIsMS4yMywxLjIzLDAsMCwwLC4zOS0uMDgsOC44Nyw4Ljg3LDAsMCwxLDMuNzItLjgxYzIuNywwLDQuMjgsMS4zMyw0LjI4LDMuOTJ2LjVhMTUuMjksMTUuMjksMCwwLDAtNC40Mi0uNjFjLTMuNjQsMC02LjE0LDEu''@;'; + put 'put ''NjEtNi4xNCw0LjY0di4wNWMwLDIuOTUsMi43LDQuNDgsNS4zNyw0LjQ4YTYuMjksNi4yOSwwLDAsMCw1LjE5LTIuNDhWMjYuOWExLDEsMCwwLDAsMSwxLDEsMSwwLDAsMCwxLTEuMDZWMTlBNS43MSw1LjcxLDAsMCwwLDMyLjI0LDE0Ljc4Wm0tLjU2LDcuN2MwLDIuMjgtMi4xNywzLjg5LTQu''@;'; + put 'put ''ODEsMy44OS0xLjk0LDAtMy42MS0xLjA2LTMuNjEtMi44NnYtLjA2YzAtMS44LDEuNS0zLDQuMi0zYTE1LjIsMTUuMiwwLDAsMSw0LjIyLjYxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+JyksZS5DbHJTaGFwZVVuZGVybGluZT0oMCxsLmNsckljb25T''@;'; + put 'put ''VkcpKCc8cGF0aCBkPSJNMTgsMjguMTdjNS4wOCwwLDguNDgtMy4wOCw4LjQ4LTlWOC41NGExLjE1LDEuMTUsMCwxLDAtMi4zLDB2MTAuOGMwLDQuNDQtMi4zOCw2LjcxLTYuMTMsNi43MXMtNi4yMS0yLjQ3LTYuMjEtNi44NVY4LjU0YTEuMTUsMS4xNSwwLDEsMC0yLjMsMHYxMC44QzkuNTMs''@;'; + put 'put ''MjUuMDksMTMsMjguMTcsMTgsMjguMTdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMzEsMzBINWExLjExLDEuMTEsMCwwLDAsMCwyLjIxSDMxQTEuMTEsMS4xMSwwLDAsMCwzMSwzMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1p''@;'; + put 'put ''LW91dGxpbmUtcGF0aC0yIiAvPicpLGUuQ2xyU2hhcGVBbGlnbkJvdHRvbT0oMCxsLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzQsMzBIMmExLDEsMCwwLDAsMCwySDM0YTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBk''@;'; + put 'put ''PSJNMTYsNWExLDEsMCwwLDAtMS0xSDdBMSwxLDAsMCwwLDYsNVYyOEgxNlpNMTQsMjZIOFY2aDZaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMzAsMTNhMSwxLDAsMCwwLTEtMUgyMWExLDEsMCwwLDAtMSwxVjI4SDMwWk0yOCwyNkgy''@;'; + put 'put ''MlYxNGg2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+JyksZS5DbHJTaGFwZUFsaWduTWlkZGxlPSgwLGwuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zNCwxN0gzMFYxMWExLDEsMCwwLDAtMS0xSDIxYTEsMSwwLDAsMC0xLDF2NkgxNlY1YTEsMSwwLDAs''@;'; + put 'put ''MC0xLTFIN0ExLDEsMCwwLDAsNiw1VjE3SDJhMSwxLDAsMCwwLDAsMkg2VjMxYTEsMSwwLDAsMCwxLDFoOGExLDEsMCwwLDAsMS0xVjE5aDR2NmExLDEsMCwwLDAsMSwxaDhhMSwxLDAsMCwwLDEtMVYxOWg0YTEsMSwwLDAsMCwwLTJaTTE0LDMwSDhWNmg2Wm0xNC02SDIyVjEyaDZaIiBjbGFz''@;'; + put 'put ''cz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz4nKSxlLkNsclNoYXBlQWxpZ25Ub3A9KDAsbC5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTM0LDRIMkExLDEsMCwwLDAsMiw2SDM0YTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5l''@;'; + put 'put ''LXBhdGgtMSIgLz48cGF0aCBkPSJNNiwzMWExLDEsMCwwLDAsMSwxaDhhMSwxLDAsMCwwLDEtMVY4SDZaTTgsMTBoNlYzMEg4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTIwLDIzYTEsMSwwLDAsMCwxLDFoOGExLDEsMCwwLDAsMS0x''@;'; + put 'put ''VjhIMjBabTItMTNoNlYyMkgyMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPicpLGUuQ2xyU2hhcGVMYW5ndWFnZT0oMCxsLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzAsM0gxNHY1aDJWNWgxNGMwLjYsMCwxLDAuNCwxLDF2MTFjMCwwLjYtMC40LDEt''@;'; + put 'put ''MSwxSDE3djdoLTUuM0w4LDI3LjlWMjVINWMtMC42LDAtMS0wLjQtMS0xVjEzYzAtMC42LDAuNC0xLDEtMWgxM3YtMkg1XG5cdFx0Yy0xLjcsMC0zLDEuMy0zLDN2MTFjMCwxLjcsMS4zLDMsMywzaDF2NS4xbDYuMy01LjFIMTl2LTdoMTFjMS43LDAsMy0xLjMsMy0zVjZDMzMsNC4zLDMxLjcs''@;'; + put 'put ''MywzMCwzeiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTYuMiwyMi45aDIuNGwwLjYtMS42aDMuMWwwLjYsMS42aDIuNEwxMS45LDE0SDkuNUw2LjIsMjIuOXogTTEwLjcsMTYuNWwxLDMuMWgtMkwxMC43LDE2LjV6IiBjbGFzcz0iY2xy''@;'; + put 'put ''LWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMjAsMTdjMS4xLDAsMi42LTAuMyw0LTFjMS40LDAuNywzLDEsNCwxdi0yYzAsMC0xLDAtMi4xLTAuNGMxLjItMS4yLDIuMS0zLDIuMS01LjZWOGgtM1Y2aC0ydjJoLTN2Mmg1Ljlcblx0XHRjLTAuMiwxLjgtMSwy''@;'; + put 'put ''LjktMS45LDMuNmMtMC42LTAuNS0xLjItMS4yLTEuNi0yLjFoLTIuMWMwLjQsMS4zLDEsMi4zLDEuOCwzLjFDMjEuMSwxNSwyMC4yLDE1LDIwLDE1VjE3eiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+PHBvbHlnb24gcG9pbnRzPSIxMSwxNi41IDEwLDE5''@;'; + put 'put ''LjYgMTIsMTkuNiAxMSwxNi41IFx0IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0zMC4zLDNoLTE2djVoNHYyaC0xM2MtMS43LDAtMywxLjMtMywzdjExYzAsMS43LDEuMywzLDMsM2gxdjUuMWw2LjMtNS4xaDYuN3YtN2gxMWMxLjcsMCwzLTEu''@;'; + put 'put ''MywzLTNWNlxuXHRcdEMzMy4zLDQuMywzMiwzLDMwLjMsM3ogTTEzLjEsMjIuOWwtMC41LTEuNkg5LjVsLTAuNiwxLjZINi41TDkuOCwxNGgyLjRsMy4zLDguOUwxMy4xLDIyLjl6IE0yOC4zLDE1djJjLTEuMywwLTIuNy0wLjQtMy45LTFcblx0XHRjLTEuMiwwLjYtMi42LDAuOS00LDFsLTAu''@;'; + put 'put ''MS0yYzAuNywwLDEuNC0wLjEsMi4xLTAuM2MtMC45LTAuOS0xLjUtMi0xLjgtMy4yaDIuMWMwLjMsMC45LDAuOSwxLjYsMS42LDIuMmMxLjEtMC45LDEuOC0yLjIsMS45LTMuN1xuXHRcdGgtNlY4aDNWNmgydjJoMy4zbDAuMSwxYzAuMSwyLjEtMC43LDQuMi0yLjIsNS43QzI3LjEsMTQuOSwy''@;'; + put 'put ''Ny43LDE1LDI4LjMsMTV6IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPicpLGUuQ2xyU2hhcGVUZXh0Q29sb3I9KDAsbC5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE5LjQ3LDMuODRhMS40NSwxLjQ1LDAsMCwwLTEuNC0xSDE4YTEuNDUsMS40NSwwLDAsMC0xLjQy''@;'; + put 'put ''LDFMOC40MiwyMS41NmExLjM1LDEuMzUsMCwwLDAtLjE0LjU5LDEsMSwwLDAsMCwxLDEsMS4xMSwxLjExLDAsMCwwLDEuMDgtLjc3bDIuMDgtNC42NWgxMWwyLjA4LDQuNTlhMS4yNCwxLjI0LDAsMCwwLDEuMTIuODMsMS4wOCwxLjA4LDAsMCwwLDEuMDgtMS4wOCwxLjU5LDEuNTksMCwwLDAt''@;'; + put 'put ''LjE0LS41N1pNMTMuMzYsMTUuNzEsMTgsNS40OWw0LjYsMTAuMjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICA8cmVjdCB4PSI0LjA2IiB5PSIyNSIgd2lkdGg9IjI4IiBoZWlnaHQ9IjgiIHJ4PSIyIiByeT0iMiIgY2xhc3M9ImNsci1pLW91dGxp''@;'; + put 'put ''bmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz4nKSxlLkNsclNoYXBlSGlnaGxpZ2h0ZXI9KDAsbC5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE1LjgyLDI2LjA2YTEsMSwwLDAsMS0uNzEtLjI5TDguNjcsMTkuMzNhMSwxLDAsMCwxLS4yOS0uNzEsMSwxLDAsMCwxLC4yOS0uNzFMMjMsMy41NGE1''@;'; + put 'put ''LjU1LDUuNTUsMCwxLDEsNy44NSw3Ljg2TDE2LjUzLDI1Ljc3QTEsMSwwLDAsMSwxNS44MiwyNi4wNlptLTUtNy40NCw1LDVMMjkuNDgsMTBhMy41NCwzLjU0LDAsMCwwLDAtNSwzLjYzLDMuNjMsMCwwLDAtNSwwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEi''@;'; + put 'put ''Lz5cbiAgPHBhdGggZD0iTTEwLjM4LDI4LjI4QTEsMSwwLDAsMSw5LjY3LDI4TDYuNDUsMjQuNzdhMSwxLDAsMCwxLS4yMi0xLjA5bDIuMjItNS40NGExLDEsMCwwLDEsMS42My0uMzNsNi40NSw2LjQ0QTEsMSwwLDAsMSwxNi4yLDI2bC01LjQ0LDIuMjJBMS4zMywxLjMzLDAsMCwxLDEwLjM4''@;'; + put 'put ''LDI4LjI4Wk04LjMzLDIzLjgybDIuMjksMi4yOCwzLjQzLTEuNEw5Ljc0LDIwLjM5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgPHBhdGggZD0iTTguOTQsMzBoLTVhMSwxLDAsMCwxLS44NC0xLjU1bDMuMjItNC45NGExLDEsMCwwLDEsMS41NS0u''@;'; + put 'put ''MTZsMy4yMSwzLjIyYTEsMSwwLDAsMSwuMDYsMS4zNUw5LjcsMjkuNjRBMSwxLDAsMCwxLDguOTQsMzBaTTUuNzgsMjhIOC40N0w5LDI3LjM0bC0xLjctMS43WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgPHJlY3QgeD0iMy4wNiIgeT0iMzEiIHdp''@;'; + put 'put ''ZHRoPSIzMCIgaGVpZ2h0PSIzIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIvPicpLGUuQ2xyU2hhcGVPdXRkZW50PSgwLGwuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMS4wNiw5aC0yNmExLDEsMCwxLDEsMC0yaDI2YTEsMSwwLDEsMSwwLDJaIiBjbGFzcz0i''@;'; + put 'put ''Y2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICA8cGF0aCBkPSJNMzEuMDYsMTRoLTE3YTEsMSwwLDAsMSwwLTJoMTdhMSwxLDAsMSwxLDAsMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gIDxwYXRoIGQ9Ik0zMS4wNiwxOWgt''@;'; + put 'put ''MTdhMSwxLDAsMCwxLDAtMmgxN2ExLDEsMCwxLDEsMCwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgPHBhdGggZD0iTTMxLjA2LDI0aC0xN2ExLDEsMCwwLDEsMC0yaDE3YTEsMSwwLDEsMSwwLDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHIt''@;'; + put 'put ''aS1vdXRsaW5lLXBhdGgtNCIvPlxuICA8cGF0aCBkPSJNMzEuMDYsMjloLTI2YTEsMSwwLDAsMSwwLTJoMjZhMSwxLDAsMSwxLDAsMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01Ii8+XG4gIDxwYXRoIGQ9Ik05LjU2LDIyLjU0YTEsMSwwLDAsMS0uNy0uM0w0''@;'; + put 'put ''LjYxLDE4bDQuMjUtNC4yNGExLDEsMCwwLDEsMS40MSwxLjQxTDcuNDQsMThsMi44MywyLjgzYTEsMSwwLDAsMS0uNzEsMS43MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02Ii8+JyksZS5DbHJTaGFwZUluZGVudD0oMCxsLmNsckljb25TVkcpKCc8cGF0aCBk''@;'; + put 'put ''PSJNMzEuMDYsOWgtMjZhMSwxLDAsMSwxLDAtMmgyNmExLDEsMCwxLDEsMCwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgPHBhdGggZD0iTTMxLjA2LDE0aC0xN2ExLDEsMCwwLDEsMC0yaDE3YTEsMSwwLDEsMSwwLDJaIiBjbGFzcz0iY2xyLWkt''@;'; + put 'put ''b3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICA8cGF0aCBkPSJNMzEuMDYsMTloLTE3YTEsMSwwLDAsMSwwLTJoMTdhMSwxLDAsMSwxLDAsMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gIDxwYXRoIGQ9Ik0zMS4wNiwyNGgtMTdhMSwx''@;'; + put 'put ''LDAsMCwxLDAtMmgxN2ExLDEsMCwxLDEsMCwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiLz5cbiAgPHBhdGggZD0iTTMxLjA2LDI5aC0yNmExLDEsMCwwLDEsMC0yaDI2YTEsMSwwLDEsMSwwLDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRs''@;'; + put 'put ''aW5lLXBhdGgtNSIvPlxuICA8cGF0aCBkPSJNNS41NiwyMi41NGExLDEsMCwwLDEtLjctMS43MUw3LjY4LDE4LDQuODYsMTUuMTdhMSwxLDAsMCwxLDAtMS40MSwxLDEsMCwwLDEsMS40MSwwTDEwLjUxLDE4LDYuMjcsMjIuMjRBMSwxLDAsMCwxLDUuNTYsMjIuNTRaIiBjbGFzcz0iY2xyLWkt''@;'; + put 'put ''b3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIvPicpLGUuQ2xyU2hhcGVTdHJpa2V0aHJvdWdoPSgwLGwuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMi44OCwxOS45MmgtMzBhMSwxLDAsMSwxLDAtMmgzMGExLDEsMCwwLDEsMCwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0''@;'; + put 'put ''bGluZS1wYXRoLTEiLz5cbiAgPHBhdGggZD0iTTcuMjcsMTUuODZhMTIuOSwxMi45LDAsMCwxLDEuMjktLjUyQTUuNjksNS42OSwwLDAsMSwxMC4zOSwxNWEzLjE4LDMuMTgsMCwwLDEsMi43NSwxLjExQTQuNDQsNC40NCwwLDAsMSwxNCwxOC44NXYuNDlhMTMuODMsMTMuODMsMCwwLDAtNC4y''@;'; + put 'put ''OS0uNzQsNi4xOSw2LjE5LDAsMCwwLTIuNTkuNTRBNSw1LDAsMCwwLDUuODEsMjBIMTUuODhWMTguODVhNS42Nyw1LjY3LDAsMCwwLTEuMzctNCw1LjE2LDUuMTYsMCwwLDAtNC0xLjQ5LDEwLDEwLDAsMCwwLTMuOTEuODguODcuODcsMCwwLDAtLjQ0LDEuMThBLjg0Ljg0LDAsMCwwLDcuMjcs''@;'; + put 'put ''MTUuODZaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICA8cGF0aCBkPSJNMjEsMjBhNS45NCw1Ljk0LDAsMCwxLC41NC0yLjMxLDQuMzUsNC4zNSwwLDAsMSwxLjU4LTEuODMsNC4yNyw0LjI3LDAsMCwxLDQuNTksMCw0LjQ3LDQuNDcsMCwwLDEsMS41''@;'; + put 'put ''NywxLjgzQTYuMTIsNi4xMiwwLDAsMSwyOS44NSwyMGgyYTcuNzMsNy43MywwLDAsMC0uNzgtMy4xOSw2LDYsMCwwLDAtMi4xOC0yLjQ1LDUuNzQsNS43NCwwLDAsMC0zLjEtLjg4LDUuMzksNS4zOSwwLDAsMC0yLjguNzMsNS41NSw1LjU1LDAsMCwwLTIsMi4wNVYxMGEuODcuODcsMCwwLDAt''@;'; + put 'put ''Ljg2LS44NkgyMGEuODcuODcsMCwwLDAtLjg2Ljg2VjIwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgPHBhdGggZD0iTTI5LjY3LDIyYTUuNjEsNS42MSwwLDAsMS0uMzYsMS4wNyw0LjQ3LDQuNDcsMCwwLDEtMS41NywxLjg1LDQuMzIsNC4zMiww''@;'; + put 'put ''LDAsMS00LjU5LDAsNC4zNSw0LjM1LDAsMCwxLTEuNTgtMS44NUE1LjY0LDUuNjQsMCwwLDEsMjEuMiwyMkgxOS4wOXY0LjEzQS44Ny44NywwLDAsMCwyMCwyN2guMmEuODcuODcsMCwwLDAsLjg2LS44NlYyNC41MWE1LjU4LDUuNTgsMCwwLDAsMiwyLjA2LDUuNDgsNS40OCwwLDAsMCwyLjgu''@;'; + put 'put ''NzIsNS42Niw1LjY2LDAsMCwwLDMuMS0uODhBNS44OCw1Ljg4LDAsMCwwLDMxLjA5LDI0LDcuMDksNy4wOSwwLDAsMCwzMS43MywyMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00Ii8+XG4gIDxwYXRoIGQ9Ik0xNCwyMnYuNzZhMy4zNCwzLjM0LDAsMCwxLTEu''@;'; + put 'put ''NjIsMiw1LjM0LDUuMzQsMCwwLDEtMi42OS43MiwzLjc4LDMuNzgsMCwwLDEtMi4zNi0uNywyLjI0LDIuMjQsMCwwLDEtLjk0LTEuOSwyLjI5LDIuMjksMCwwLDEsLjItLjkxSDQuNjJhNCw0LDAsMCwwLS4xMywxLDMuODMsMy44MywwLDAsMCwxLjM1LDMuMDZBNS4xNSw1LjE1LDAsMCwwLDku''@;'; + put 'put ''MzEsMjcuMiw2LDYsMCwwLDAsMTIsMjYuNTdhNC42Miw0LjYyLDAsMCwwLDItMS43NFYyNmEuODYuODYsMCwwLDAsLjg2Ljg2SDE1YS44Ni44NiwwLDAsMCwuODYtLjg2VjIyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiLz4nKSxlLkNsclNoYXBlU3Vic2Ny''@;'; + put 'put ''aXB0PSgwLGwuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xNC41NSwxOGw2LjgsOC42YTEuMTcsMS4xNywwLDAsMS0uOTIsMS45aDBhMS4xNywxLjE3LDAsMCwxLS45Mi0uNDRMMTMsMTkuOTEsNi42LDI4YTEuMTcsMS4xNywwLDAsMS0uOTIuNDRoMGExLjE3LDEuMTcsMCwwLDEtLjkyLTEuOUwx''@;'; + put 'put ''MS41NSwxOGwtNi44LTguNmExLjE3LDEuMTcsMCwwLDEsLjkyLTEuOWgwQTEuMTcsMS4xNywwLDAsMSw2LjYzLDhsNi40NCw4LjEzTDE5LjUsOGExLjE3LDEuMTcsMCwwLDEsLjkyLS40NGgwYTEuMTcsMS4xNywwLDAsMSwuOTIsMS45WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0''@;'; + put 'put ''bGluZS1wYXRoLTEiLz5cbiAgPHBhdGggZD0iTTIzLDMxLjgsMjcuNDksMjhhOS45LDkuOSwwLDAsMCwxLjg4LTIuMDVBMy40NCwzLjQ0LDAsMCwwLDMwLDI0YTIuMzUsMi4zNSwwLDAsMC0uMzUtMS4yNywyLjQ0LDIuNDQsMCwwLDAtMS0uODQsMi45LDIuOSwwLDAsMC0xLjI2LS4yOCwzLjM2''@;'; + put 'put ''LDMuMzYsMCwwLDAtMS44My41LDUuNjQsNS42NCwwLDAsMC0xLjQ4LDEuNDJsLTEtLjgxYTUuMTEsNS4xMSwwLDAsMSw0LjM2LTIuMzcsNC4zNSw0LjM1LDAsMCwxLDIsLjQ1LDMuNDMsMy40MywwLDAsMSwyLDMuMTgsNC40NSw0LjQ1LDAsMCwxLS42OCwyLjM1LDEwLjksMTAuOSwwLDAsMS0y''@;'; + put 'put ''LjI0LDIuNDZsLTMuMjQsMi44MUgzMS41VjMzSDIzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz4nKSxlLkNsclNoYXBlU3VwZXJzY3JpcHQ9KDAsbC5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE0LjQzLDE4bDYuNzksOC42YTEuMTcsMS4xNywwLDAsMS0u''@;'; + put 'put ''OTIsMS45aDBhMS4xNywxLjE3LDAsMCwxLS45Mi0uNDRsLTYuNDQtOC4xM0w2LjQ3LDI4YTEuMTcsMS4xNywwLDAsMS0uOTIuNDRoMGExLjE3LDEuMTcsMCwwLDEtLjkyLTEuOUwxMS40MywxOGwtNi44LTguNmExLjE3LDEuMTcsMCwwLDEsLjkyLTEuOWgwQTEuMiwxLjIsMCwwLDEsNi41MSw4''@;'; + put 'put ''bDYuNDMsOC4xM0wxOS4zOCw4YTEuMTcsMS4xNywwLDAsMSwuOTItLjQ0aDBhMS4xNywxLjE3LDAsMCwxLC45MiwxLjlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICA8cGF0aCBkPSJNMjIuODUsMTQuNDdsNC41MS0zLjg1YTkuMzcsOS4zNywwLDAs''@;'; + put 'put ''MCwxLjg4LTIsMy40MywzLjQzLDAsMCwwLC41OS0xLjg2LDIuMjcsMi4yNywwLDAsMC0uMzYtMS4yNywyLjM4LDIuMzgsMCwwLDAtLjk1LS44MywyLjc3LDIuNzcsMCwwLDAtMS4yNi0uMjksMy4zOSwzLjM5LDAsMCwwLTEuODMuNSw1LjgzLDUuODMsMCwwLDAtMS40OSwxLjQybC0xLS44MWE1''@;'; + put 'put ''LjEyLDUuMTIsMCwwLDEsNC4zNi0yLjM3LDQuMzYsNC4zNiwwLDAsMSwyLC40NSwzLjQ3LDMuNDcsMCwwLDEsMiwzLjE4QTQuNDQsNC40NCwwLDAsMSwzMC41OCw5YTExLjE0LDExLjE0LDAsMCwxLTIuMjQsMi40NkwyNS4xLDE0LjMxaDYuMjh2MS4zM0gyMi44NVoiIGNsYXNzPSJjbHItaS1v''@;'; + put 'put ''dXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+JyksZS5UZXh0RWRpdFNoYXBlcz17Ym9sZDplLkNsclNoYXBlQm9sZCwiYnVsbGV0LWxpc3QiOmUuQ2xyU2hhcGVCdWxsZXRMaXN0LCJjaGVja2JveC1saXN0IjplLkNsclNoYXBlQ2hlY2tib3hMaXN0LCJudW1iZXItbGlzdCI6ZS5DbHJT''@;'; + put 'put ''aGFwZU51bWJlckxpc3QsImZvbnQtc2l6ZSI6ZS5DbHJTaGFwZUZvbnRTaXplLGl0YWxpYzplLkNsclNoYXBlSXRhbGljLCJqdXN0aWZ5LXRleHQiOmUuQ2xyU2hhcGVKdXN0aWZ5VGV4dCwiY2VudGVyLXRleHQiOmUuQ2xyU2hhcGVDZW50ZXJUZXh0LCJhbGlnbi1sZWZ0LXRleHQiOmUuQ2xy''@;'; + put 'put ''U2hhcGVBbGlnbkxlZnRUZXh0LCJhbGlnbi1yaWdodC10ZXh0IjplLkNsclNoYXBlQWxpZ25SaWdodFRleHQsInBhaW50LXJvbGxlciI6ZS5DbHJTaGFwZVBhaW50Um9sbGVyLCJibG9jay1xdW90ZSI6ZS5DbHJTaGFwZUJsb2NrUXVvdGUsdGV4dDplLkNsclNoYXBlVGV4dCx1bmRlcmxpbmU6''@;'; + put 'put ''ZS5DbHJTaGFwZVVuZGVybGluZSwiYWxpZ24tY2VudGVyIjplLkNsclNoYXBlQWxpZ25DZW50ZXIsImFsaWduLWxlZnQiOmUuQ2xyU2hhcGVBbGlnbkxlZnQsImFsaWduLXJpZ2h0IjplLkNsclNoYXBlQWxpZ25SaWdodCwiYWxpZ24tYm90dG9tIjplLkNsclNoYXBlQWxpZ25Cb3R0b20sImFs''@;'; + put 'put ''aWduLW1pZGRsZSI6ZS5DbHJTaGFwZUFsaWduTWlkZGxlLCJhbGlnbi10b3AiOmUuQ2xyU2hhcGVBbGlnblRvcCxsYW5ndWFnZTplLkNsclNoYXBlTGFuZ3VhZ2UsInRleHQtY29sb3IiOmUuQ2xyU2hhcGVUZXh0Q29sb3IsaGlnaGxpZ2h0ZXI6ZS5DbHJTaGFwZUhpZ2hsaWdodGVyLGluZGVu''@;'; + put 'put ''dDplLkNsclNoYXBlSW5kZW50LG91dGRlbnQ6ZS5DbHJTaGFwZU91dGRlbnQsc3RyaWtldGhyb3VnaDplLkNsclNoYXBlU3RyaWtldGhyb3VnaCxzdWJzY3JpcHQ6ZS5DbHJTaGFwZVN1YnNjcmlwdCxzdXBlcnNjcmlwdDplLkNsclNoYXBlU3VwZXJzY3JpcHR9LCJ1bmRlZmluZWQiIT10eXBl''@;'; + put 'put ''b2Ygd2luZG93JiZ3aW5kb3cuaGFzT3duUHJvcGVydHkoIkNsYXJpdHlJY29ucyIpJiZ3aW5kb3cuQ2xhcml0eUljb25zLmFkZChlLlRleHRFZGl0U2hhcGVzKX0sIi4vcHJvamVjdHMvaWNvbnMvc3JjL3NoYXBlcy90cmF2ZWwtc2hhcGVzLnRzIjpmdW5jdGlvbihBLGUsYSl7InVzZSBzdHJp''@;'; + put 'put ''Y3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLlRyYXZlbFNoYXBlcz1lLkNsclNoYXBlT25Ib2xpZGF5PWUuQ2xyU2hhcGVUcmFpbGVyPWUuQ2xyU2hhcGVGZXJyeT1lLkNsclNoYXBlQ2FyYXZhbj1lLkNsclNoYXBlQ2FtcGVydmFuPWUuQ2xy''@;'; + put 'put ''U2hhcGVCb2F0PWUuQ2xyU2hhcGVCaWN5Y2xlPWUuQ2xyU2hhcGVNYXBNYXJrZXI9ZS5DbHJTaGFwZUNvbXBhc3M9ZS5DbHJTaGFwZU1hcD1lLkNsclNoYXBlQ2FyPWUuQ2xyU2hhcGVBaXJwbGFuZT1lLkNsclNoYXBlVHJ1Y2s9dm9pZCAwO3ZhciByPWEoIi4vcHJvamVjdHMvaWNvbnMvc3Jj''@;'; + put 'put ''L3V0aWxzL2Rlc2NyaXB0b3ItY29uZmlnLnRzIik7YT1hKCIuL3Byb2plY3RzL2ljb25zL3NyYy91dGlscy9zdmctdGFnLWdlbmVyYXRvci50cyIpLGUuQ2xyU2hhcGVUcnVjaz0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgt''@;'; + put 'put ''MSIgZD0iTTMwLDEySDI2VjdhMSwxLDAsMCwwLTEtMUgzQTEsMSwwLDAsMCwyLDdWMjVhMSwxLDAsMCwwLDEsMUg0VjhIMjRWMTkuN2E2LjQ1LDYuNDUsMCwwLDEsMS41Ni0uMmMuMTUsMCwuMjksMCwuNDQsMFYxNGg0YTIsMiwwLDAsMSwyLDJ2MUgyOHYyaDR2NUgyOS42YTQuNTQsNC41NCww''@;'; + put 'put ''LDAsMC04LjM0LDBIMTQuNDNhNC41LDQuNSwwLDAsMC00LjE3LTIuNzZBNC4zOCw0LjM4LDAsMSwwLDE0LjcyLDI2SDIxYTQuNDksNC40OSwwLDAsMCw4LjkyLDBIMzNhMSwxLDAsMCwwLDEtMVYxNkE0LDQsMCwwLDAsMzAsMTJaTTEwLjI2LDI4YTIuMzgsMi4zOCwwLDEsMSwwLTQuNzUsMi4z''@;'; + put 'put ''OCwyLjM4LDAsMSwxLDAsNC43NVptMTUuMTcsMGEyLjM4LDIuMzgsMCwxLDEsMi41LTIuMzdBMi40NCwyLjQ0LDAsMCwxLDI1LjQzLDI4WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTMwLDEySDI2VjdhMSwxLDAsMCww''@;'; + put 'put ''LTEtMUgzQTEsMSwwLDAsMCwyLDdWMjVhMSwxLDAsMCwwLDEsMUg0VjhIMjRWMjEuNDlBNC40NSw0LjQ1LDAsMCwwLDIxLjI1LDI0SDE0LjQzYTQuNSw0LjUsMCwwLDAtNC4xNy0yLjc2QTQuMzgsNC4zOCwwLDEsMCwxNC43MiwyNkgyMWE0LjQ4LDQuNDgsMCwwLDAsOC45MSwwSDM0VjE2QTQs''@;'; + put 'put ''NCwwLDAsMCwzMCwxMlpNMTAuMjYsMjhhMi4zOCwyLjM4LDAsMSwxLDAtNC43NSwyLjM4LDIuMzgsMCwxLDEsMCw0Ljc1Wm0xNS4xNywwYTIuMzgsMi4zOCwwLDEsMSwyLjUtMi4zN0EyLjQ0LDIuNDQsMCwwLDEsMjUuNDIsMjhaTTMyLDE3SDI2VjE0aDRhMiwyLDAsMCwxLDIsMloiLz4nKSxl''@;'; + put 'put ''LkNsclNoYXBlQWlycGxhbmU9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zNS43Nyw4LjE2YTIuNDMsMi40MywwLDAsMC0xLjktMkwyOCw0Ljg3YTQuNSw0LjUsMCwwLDAtMy42NS43OUw3LDE4LjMsMi4xNCwx''@;'; + put 'put ''OC4xQTEuODYsMS44NiwwLDAsMCwuOTEsMjEuNDFsNSwzLjkzYy42LjczLDEsLjU5LDEwLjkzLTQuODJsLjkzLDkuNDJhMS4zNiwxLjM2LDAsMCwwLC44NSwxLjE4LDEuNDMsMS40MywwLDAsMCwuNTQuMSwxLjU0LDEuNTQsMCwwLDAsMS0uNDFsMi4zOS0yLjE4YTEuNTIsMS41MiwwLDAsMCwu''@;'; + put 'put ''NDYtLjgzTDI1LjIsMTUuOWMzLjU3LTIsNi45NS0zLjg4LDkuMzYtNS4yNUEyLjQzLDIuNDMsMCwwLDAsMzUuNzcsOC4xNlptLTIuMi43NWMtMi41LDEuNDItNiwzLjQxLTkuNzYsNS40N2wtLjQxLjIzTDIxLjA3LDI3LjI4bC0xLjQ3LDEuMzRMMTguNSwxNy4zMiwxNy4xNywxOEMxMCwyMiw3''@;'; + put 'put ''LjYxLDIzLjE2LDYuNzksMjMuNTJsLTQuMy0zLjQxLDUuMDguMjIsMTgtMTMuMDZhMi41MSwyLjUxLDAsMCwxLDItLjQ1bDUuODUsMS4yNmEuNDMuNDMsMCwwLDEsLjM1LjM3QS40Mi40MiwwLDAsMSwzMy41Nyw4LjkxWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxp''@;'; + put 'put ''bmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik03LDEyLjU0bDMuNTYsMSwxLjY0LTEuMTktNC0xLjE2TDEwLDEwLjA5bDUuNDctLjE2LDIuMy0xLjY3TDEwLDguNWExLjI1LDEuMjUsMCwwLDAtLjcuMTdMNi42NywxMC4yQTEuMjgsMS4yOCwwLDAsMCw3LDEyLjU0WiIvPlxuICAgICAgICAg''@;'; + put 'put ''ICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTYuMjUsMTEuNSwxMiwxMy4xNmw2LjMyLTQuNTktOS4wNy4yNkEuNTIuNTIsMCwwLDAsOSw4LjkxTDYuMTMsMTAuNTZBLjUxLjUxLDAsMCwwLDYuMjUsMTEuNVoiLz5cbiAgICAgICAgICAgIDxwYXRo''@;'; + put 'put ''IGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGQ9Ik0zNC41Miw2LjM2LDI4LjIyLDVhMy43OCwzLjc4LDAsMCwwLTMuMDcuNjdMNi4xMiwxOS41bC00LjU3LS4yYTEuMjUsMS4yNSwwLDAsMC0uODMsMi4yMmw0LjQ1LDMuNTNhLjU1LjU1LDAsMCwwLC41My4wOWMxLjI3''@;'; + put 'put ''LS40OSw2LTMsMTEuNTktNi4wN2wxLjEyLDExLjUxYS41NS41NSwwLDAsMCwuOS4zN2wyLjUtMi4wOGEuNzYuNzYsMCwwLDAsLjI2LS40NWwyLjM3LTEzLjI5YzQtMi4yMiw3LjgyLTQuMzcsMTAuNTEtNS44OUExLjU1LDEuNTUsMCwwLDAsMzQuNTIsNi4zNloiLz4nKSxlLkNsclNoYXBlQ2Fy''@;'; + put 'put ''PSgwLGEuY2xySWNvblNWRykoJzxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiB4PSIxNSIgeT0iMTciIHdpZHRoPSIzIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBh''@;'; + put 'put ''dGgtMiIgZD0iTTI2LjQ1LDE0LjE3QTIyLjEsMjIuMSwwLDAsMCwxOS4zOCw3YTkuNjQsOS42NCwwLDAsMC05LS43LDguNiw4LjYsMCwwLDAtNC44Miw2LjRjLS4wOC40Ny0uMTQuOTItLjIsMS4zNkE0LDQsMCwwLDAsMiwxOHY2LjEzYTIsMiwwLDAsMCwyLDJWMjBINFYxOGEyLDIsMCwwLDEs''@;'; + put 'put ''Mi0ySDI0LjczQTcuMjgsNy4yOCwwLDAsMSwzMiwyMy4yN1YyNGgtMmE0LjUzLDQuNTMsMCwxLDAsLjMzLDJIMzJhMiwyLDAsMCwwLDItMnYtLjczQTkuMjgsOS4yOCwwLDAsMCwyNi40NSwxNC4xN1pNMTEsMTRINi45M2MwLS4zMS4wOS0uNjMuMTUtMUE2LjUyLDYuNTIsMCwwLDEsMTEsOGgw''@;'; + put 'put ''Wm0yLDBWNy41OGE4LjE3LDguMTcsMCwwLDEsNS4zNiwxLjE2QTE5LDE5LDAsMCwxLDIzLjksMTRaTTI1LjgsMjguMzhhMi41LDIuNSwwLDEsMSwyLjUtMi41QTIuNSwyLjUsMCwwLDEsMjUuOCwyOC4zOFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBj''@;'; + put 'put ''bHItaS1vdXRsaW5lLXBhdGgtMyIgZD0iTTE0LjE3LDI0YTQuNTMsNC41MywwLDEsMCwuMzMsMmg1LjNjMC0uMDgsMC0uMTcsMC0uMjVBNiw2LDAsMCwxLDIwLDI0Wk0xMCwyOC4zOGEyLjUsMi41LDAsMSwxLDIuNS0yLjVBMi41LDIuNSwwLDAsMSwxMCwyOC4zOFoiLz5cbiAgICAgICAgICAg''@;'; + put 'put ''ICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMjYuODcsMTQuMjhBMjIuMzYsMjIuMzYsMCwwLDAsMTkuNjUsNi45YTkuNjQsOS42NCwwLDAsMC05LS43LDguNiw4LjYsMCwwLDAtNC44Miw2LjRjLS4wOC40OS0uMTUsMS0uMjEsMS40aC0xQTIu''@;'; + put 'put ''NTksMi41OSwwLDAsMCwyLDE2LjU5djguNTVhLjg2Ljg2LDAsMCwwLC44Ni44Nkg0LjU5YzAtLjEzLDAtLjI2LDAtLjM5YTUuNzcsNS43NywwLDAsMSw3LjcxLTUuNDVsLTEsMWE0LjU2LDQuNTYsMCwwLDAtNC4zNCwxLjU4LDMsMywwLDAsMC0uNjMuOTNBNC41LDQuNSwwLDEsMCwxNC44Miwy''@;'; + put 'put ''Nmg1LjQ4YzAtLjEzLDAtLjI2LDAtLjM5QTUuNzcsNS43NywwLDAsMSwyOCwyMC4xNmwtMSwxYTQuNTYsNC41NiwwLDAsMC00LjM0LDEuNTgsMywzLDAsMCwwLS42My45M0E0LjUsNC41LDAsMSwwLDMwLjUzLDI2aDIuNjFhLjg2Ljg2LDAsMCwwLC44Ni0uODZWMjMuMzZBOS4zOSw5LjM5LDAs''@;'; + put 'put ''MCwwLDI2Ljg3LDE0LjI4Wk0xMiwxNEg4YzAtLjM1LjEtLjcxLjE2LTEuMDdhNi41Miw2LjUyLDAsMCwxLDMuODctNWgwWk0xMC4zNiwyOC4zNmEyLjUsMi41LDAsMSwxLDIuNS0yLjVBMi41LDIuNSwwLDAsMSwxMC4zNiwyOC4zNlpNMTksMTlIMTZWMTdoM1ptLTYtNVY3LjQ3YTguMTYsOC4x''@;'; + put 'put ''NiwwLDAsMSw1LjQsMS4xNUExOS4xNSwxOS4xNSwwLDAsMSwyNCwxNFpNMjYuMDYsMjguMzZhMi41LDIuNSwwLDEsMSwyLjUtMi41QTIuNSwyLjUsMCwwLDEsMjYuMDYsMjguMzZaIi8+JyksZS5DbHJTaGFwZU1hcD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGlu''@;'; + put 'put ''ZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMzLjU5LDYuMTlBMSwxLDAsMCwwLDMyLjcsNkwyMy4wOSw5LDEzLjQ2LDQuMTFhMSwxLDAsMCwwLS44NCwwTDIuNjIsOC4yQTEsMSwwLDAsMCwyLDkuMTNWMjkuNjFhMSwxLDAsMCwwLDEuMzguOTJMMTMsMjYuNThsOS41OSw0LjkyYTEsMSww''@;'; + put 'put ''LDAsMCwuNDYuMTEsMSwxLDAsMCwwLC4zLDBsMTAtMy4xMmExLDEsMCwwLDAsLjctMVY3QTEsMSwwLDAsMCwzMy41OSw2LjE5Wk0zMiwyNi43NWwtOC4zMiwyLjZWMjcuMDZoLTEuNnYybC04LjQtNC4zMVYyMy4wNmgtMS42djEuNzJMNCwyOC4xMVY5Ljc5bDguMDgtMy4zM1Y4LjgxaDEuNlY2''@;'; + put 'put ''LjQ3bDguNCw0LjN2Mi4xaDEuNlYxMUwzMiw4LjM2WiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiB4PSIyMi4wOCIgeT0iMTUuMDYiIHdpZHRoPSIxLjYiIGhlaWdodD0iMy44MSIvPlxuICAgICAgICAgICAgICAg''@;'; + put 'put ''IDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiB4PSIyMi4wOCIgeT0iMjEuMDYiIHdpZHRoPSIxLjYiIGhlaWdodD0iMy44MSIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiB4''@;'; + put 'put ''PSIxMi4wOCIgeT0iMTEuMDYiIHdpZHRoPSIxLjYiIGhlaWdodD0iMy44MSIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiB4PSIxMi4wOCIgeT0iMTcuMTMiIHdpZHRoPSIxLjYiIGhlaWdodD0iMy43NSIvPlxuICAg''@;'; + put 'put ''ICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zMy4zMSw3LjM1LDI1LDkuOTRWMTRIMjNWMTAuMjlMMTQsNS42OFY5SDEyVjUuMjdsLTkuNjcsNEEuNTMuNTMsMCwwLDAsMiw5Ljc1VjMwLjQ1YS41My41MywwLDAsMCwuNzQuNDlM''@;'; + put 'put ''MTIsMjcuMTJWMjNoMnY0LjUzbDksNC42MVYyOGgydjMuNzlsOC42My0yLjdhLjUzLjUzLDAsMCwwLC4zNy0uNTFWNy44NkEuNTMuNTMsMCwwLDAsMzMuMzEsNy4zNVpNMTQsMjFIMTJWMTdoMlptMC02SDEyVjExaDJaTTI1LDI2SDIzVjIyaDJabTAtNkgyM1YxNmgyWiIvPicpLGUuQ2xyU2hh''@;'; + put 'put ''cGVDb21wYXNzPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yMC44MiwxNS4zMWgwTDEwLjQ2LDljLS40Ni0uMjYtMS4xMS4zNy0uODYuODRsNi4xNSwxMC41NiwxMC41Niw2LjE1YS42Ni42NiwwLDAsMCwuODQtLjg2Wm0tNCw0LDMtMyw0LjU1LDcuNDRaIiBjbGFzcz0iY2xyLWktb3V0''@;'; + put 'put ''bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJabTEsMjkuOTVWMjkuNTNIMTd2Mi40MkExNCwxNCwwLDAsMSw0LjA1LDE5SDYuNDdWMTdINC4wNUExNCwxNCwwLDAsMSwxNyw0''@;'; + put 'put ''LjA1VjYuNDdoMlY0LjA1QTE0LDE0LDAsMCwxLDMxLjk1LDE3SDI5LjUzdjJoMi40MkExNCwxNCwwLDAsMSwxOSwzMS45NVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgs''@;'; + put 'put ''MTYsMTYsMCwwLDAsMTgsMlpNNi40NywxOUg0LjA1YzAtLjMzLS4wNS0uNjYtLjA1LTFzMC0uNjcuMDUtMUg2LjQ3Wk0xNyw0LjA1Yy4zMywwLC42Ni0uMDUsMS0uMDVzLjY3LDAsMSwuMDVWNi40N0gxN1ptMiwyNy45Yy0uMzMsMC0uNjYuMDUtMSwuMDVzLS42NywwLTEtLjA1VjI5LjUzaDJa''@;'; + put 'put ''bTgtNS41OGEuNTkuNTksMCwwLDEtLjY5LjE2TDE1Ljc1LDIwLjM4LDkuNiw5LjgyYy0uMjUtLjQ3LjM5LTEuMS44Ni0uODRsMTAuMzcsNi4zM2gwbDYuMzMsMTAuMzdBLjU5LjU5LDAsMCwxLDI3LDI2LjM3Wk0yOS41MywxOVYxN2gyLjQyYzAsLjMzLjA1LjY2LjA1LDFzMCwuNjctLjA1LDFa''@;'; + put 'put ''IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSIxNi43NyAxOS4zNSAyNC4zNSAyMy43NyAxOS44IDE2LjMzIDE2Ljc3IDE5LjM1IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPicp''@;'; + put 'put ''LGUuQ2xyU2hhcGVNYXBNYXJrZXI9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xOCw2LjcyYTUuNzMsNS43MywwLDEsMCw1LjczLDUuNzNBNS43Myw1LjczLDAsMCwwLDE4LDYuNzJabTAsOS40NmEzLjczLDMu''@;'; + put 'put ''NzMsMCwxLDEsMy43My0zLjczQTMuNzMsMy43MywwLDAsMSwxOCwxNi4xN1oiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTE4LDJBMTEuNzksMTEuNzksMCwwLDAsNi4yMiwxMy43M2MwLDQuNjcsMi42Miw4''@;'; + put 'put ''LjU4LDQuNTQsMTEuNDNsLjM1LjUyYTk5LjYxLDk5LjYxLDAsMCwwLDYuMTQsOGwuNzYuODkuNzYtLjg5YTk5LjgyLDk5LjgyLDAsMCwwLDYuMTQtOGwuMzUtLjUzYzEuOTEtMi44NSw0LjUzLTYuNzUsNC41My0xMS40MkExMS43OSwxMS43OSwwLDAsMCwxOCwyWk0yMy41OSwyNGwtLjM2LjUz''@;'; + put 'put ''Yy0xLjcyLDIuNTgtNCw1LjQ3LTUuMjMsNi45LTEuMTgtMS40My0zLjUxLTQuMzItNS4yMy02LjlMMTIuNDIsMjRjLTEuNzctMi42NC00LjItNi4yNS00LjItMTAuMzFhOS43OCw5Ljc4LDAsMSwxLDE5LjU2LDBDMjcuNzgsMTcuNzksMjUuMzYsMjEuNCwyMy41OSwyNFoiLz5cbiAgICAgICAg''@;'; + put 'put ''ICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0xOCw2LjcyYTUuNzMsNS43MywwLDEsMCw1LjczLDUuNzNBNS43Myw1LjczLDAsMCwwLDE4LDYuNzJabTAsOS40NmEzLjczLDMuNzMsMCwxLDEsMy43My0z''@;'; + put 'put ''LjczQTMuNzMsMy43MywwLDAsMSwxOCwxNi4xN1oiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiIGQ9Ik0yOS43NywxMy40OWE3LjQ5LDcuNDksMCwwLDEtMi0uMzNjMCwuMTksMCwuMzgs''@;'; + put 'put ''MCwuNTcsMCw0LjA2LTIuNDIsNy42Ny00LjE5LDEwLjMxbC0uMzYuNTNjLTEuNzIsMi41OC00LDUuNDctNS4yMyw2LjktMS4xOC0xLjQzLTMuNTEtNC4zMi01LjIzLTYuOUwxMi40MiwyNGMtMS43Ny0yLjY0LTQuMi02LjI1LTQuMi0xMC4zMUE5Ljc3LDkuNzcsMCwwLDEsMjIuNTYsNS4wOWE3''@;'; + put 'put ''LjQ1LDcuNDUsMCwwLDEsLjUyLTJBMTEuNzUsMTEuNzUsMCwwLDAsNi4yMiwxMy43M2MwLDQuNjcsMi42Miw4LjU4LDQuNTQsMTEuNDNsLjM1LjUyYTk5LjYxLDk5LjYxLDAsMCwwLDYuMTQsOGwuNzYuODkuNzYtLjg5YTk5LjgyLDk5LjgyLDAsMCwwLDYuMTQtOGwuMzUtLjUzYzEuOTEtMi44''@;'; + put 'put ''NSw0LjUzLTYuNzUsNC41My0xMS40MkMyOS43OCwxMy42NSwyOS43NywxMy41NywyOS43NywxMy40OVoiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMw''@;'; + put 'put ''IiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0xOCwyQTExLjc5LDExLjc5LDAsMCwwLDYuMjIsMTMuNzNjMCw0LjY3LDIuNjIsOC41OCw0LjU0LDExLjQzbC4zNS41MmE5OS42MSw5OS42MSww''@;'; + put 'put ''LDAsMCw2LjE0LDhsLjc2Ljg5Ljc2LS44OWE5OS44Miw5OS44MiwwLDAsMCw2LjE0LThsLjM1LS41M2MxLjkxLTIuODUsNC41My02Ljc1LDQuNTMtMTEuNDJBMTEuNzksMTEuNzksMCwwLDAsMTgsMlptMCwxN2E2LjU2LDYuNTYsMCwxLDEsNi41Ni02LjU2QTYuNTYsNi41NiwwLDAsMSwxOCwx''@;'; + put 'put ''OVoiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGN4PSIxOCIgY3k9IjEyLjQ0IiByPSIzLjczIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0''@;'; + put 'put ''aC0xLS1iYWRnZWQiIGQ9Ik0yOS43NywxMy40OUE3LjQ3LDcuNDcsMCwwLDEsMjQuMzgsMTFhNi41OCw2LjU4LDAsMSwxLTEuNjEtMyw3LjQyLDcuNDIsMCwwLDEsLjMxLTQuODRBMTEuNzUsMTEuNzUsMCwwLDAsNi4yMiwxMy43M2MwLDQuNjcsMi42Miw4LjU4LDQuNTQsMTEuNDNsLjM1LjUy''@;'; + put 'put ''YTk5LjYxLDk5LjYxLDAsMCwwLDYuMTQsOGwuNzYuODkuNzYtLjg5YTk5LjgyLDk5LjgyLDAsMCwwLDYuMTQtOGwuMzUtLjUzYzEuOTEtMi44NSw0LjUzLTYuNzUsNC41My0xMS40MkMyOS43OCwxMy42NSwyOS43NywxMy41NywyOS43NywxMy40OVoiLz5cbiAgICAgICAgICAgICAgICA8Y2ly''@;'; + put 'put ''Y2xlIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIiBjeD0iMTgiIGN5PSIxMi40NCIgcj0iMy43MyIvPlxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0zLS1iYWRn''@;'; + put 'put ''ZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz4nKSxlLkNsclNoYXBlQmljeWNsZT0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNOC41LDI5LjY1QTYuNTEsNi41MSwwLDAsMSwyLDIzLjE1YTYuMzksNi4zOSwwLDAsMSw2LjUtNi4zNkE2LjM5LDYuMzksMCwwLDEsMTUs''@;'; + put 'put ''MjMuMTUsNi41MSw2LjUxLDAsMCwxLDguNSwyOS42NVptMC0xMWE0LjUsNC41LDAsMSwwLDQuNSw0LjVBNC41MSw0LjUxLDAsMCwwLDguNSwxOC42NVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0yNy41LDI5LjY1YTYuNTEsNi41MSww''@;'; + put 'put ''LDAsMS02LjUtNi41LDYuNSw2LjUsMCwwLDEsMTMsMEE2LjUxLDYuNTEsMCwwLDEsMjcuNSwyOS42NVptMC0xMWE0LjUsNC41LDAsMSwwLDQuNSw0LjVBNC41MSw0LjUxLDAsMCwwLDI3LjUsMTguNjVaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0''@;'; + put 'put ''aCBkPSJNMTksMjQuNjZIOGExLDEsMCwwLDEtLjg5LTEuNDVsNS0xMCwxLjc4LjlMOS42MiwyMi43M0gxOVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxyZWN0IHg9IjEzIiB5PSIxMi42OCIgd2lkdGg9IjExIiBoZWlnaHQ9IjEuOTEiIGNsYXNzPSJj''@;'; + put 'put ''bHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPjxwYXRoIGQ9Ik0yOCwyNC42NmExLDEsMCwwLDEtLjk0LS42NkwyMi4yOSwxMC42NkgyMGExLDEsMCwwLDEtMS0xLDEsMSwwLDAsMSwxLS45M2gzYS45NC45NCwwLDAsMSwuOTQuNmw1LDE0YTEsMSwwLDAsMS0uNiwxLjI3QTEs''@;'; + put 'put ''MSwwLDAsMSwyOCwyNC42NloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiAvPjxwYXRoIGQ9Ik0xMywxNC42NmExLDEsMCwwLDEtLjcxLS4yOWwtMS43LTEuNzFIOGExLDEsMCwwLDEtMS0xLC45NC45NCwwLDAsMSwxLTFoM2ExLjA4LDEuMDgsMCwwLDEsLjc1''@;'; + put 'put ''LjI3bDIsMmExLDEsMCwwLDEsMCwxLjQxQTEsMSwwLDAsMSwxMywxNC42NloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02IiAvPjxwYXRoIGQ9Ik0xNSwyMS45Yy0wLjItMi0xLjItMy44LTIuOS00LjlsLTIuNSw0LjlIMTV6IiBjbGFzcz0iY2xyLWktc29saWQg''@;'; + put 'put ''Y2xyLWktc29saWQtcGF0aC0xIiAvPjxwYXRoIGQ9Ik03LjIsMjMuNGMtMC4yLTAuMy0wLjItMC43LDAtMWwzLjItNi4zYy0wLjYtMC4yLTEuMi0wLjItMS44LTAuMkM1LDE1LjksMiwxOC44LDIsMjIuNGMwLDMuNiwyLjksNi41LDYuNSw2LjVcblx0YzMsMCw1LjYtMi4xLDYuMy01SDhDNy43''@;'; + put 'put ''LDIzLjksNy4zLDIzLjcsNy4yLDIzLjR6IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0xOSwyMS45aC00YzAsMC4yLDAsMC4zLDAsMC41YzAsMC41LTAuMSwxLTAuMiwxLjVIMTlWMjEuOXoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xp''@;'; + put 'put ''ZC1wYXRoLTMiIC8+PHBhdGggZD0iTTI3LjUsMTUuOWMtMC4zLDAtMC42LDAtMC45LDAuMWwyLjQsNi42YzAuMiwwLjUtMC4xLDEuMS0wLjYsMS4zYy0wLjEsMC0wLjIsMC4xLTAuMywwLjFjLTAuNCwwLTAuOC0wLjMtMC45LTAuN2wtMi40LTYuN1xuXHRjLTMuMiwxLjYtNC41LDUuNS0zLDgu''@;'; + put 'put ''N2MxLjYsMy4yLDUuNSw0LjUsOC43LDNjMy4yLTEuNiw0LjUtNS41LDMtOC43QzMyLjIsMTcuMywzMCwxNS45LDI3LjUsMTUuOXoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTQiIC8+PHBhdGggZD0iTTI0LjcsMTYuN2MwLjYtMC4zLDEuMy0wLjUsMS45LTAuNmwtMi43''@;'; + put 'put ''LTcuNEMyMy44LDguMiwyMy40LDgsMjMsNy45aC0zYy0wLjYsMC0xLDAuNS0xLDEuMWMwLDAuNSwwLjQsMC45LDEsMC45XG5cdGMwLDAsMCwwLDAsMGgyLjNsMC43LDJoLTkuNmwtMS43LTEuN0MxMS41LDEwLjEsMTEuMywxMCwxMSwxMEg4Yy0wLjYsMC0xLDAuNC0xLDFzMC40LDEsMSwxaDIu''@;'; + put 'put ''NmwxLjIsMS4ybC0xLjUsM1xuXHRjMC42LDAuMiwxLjMsMC41LDEuOCwwLjhsMS42LTMuMmgxMEwyNC43LDE2Ljd6IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC01IiAvPicpLGUuQ2xyU2hhcGVCb2F0PSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yOS4xLDI3LjFD''@;'; + put 'put ''MjgsMjcsMjYuOSwyNy40LDI2LDI4LjJjLTEuMSwxLjEtMi45LDEuMS00LjEsMGMtMS0wLjctMi4xLTEuMS0zLjMtMS4xYy0xLjItMC4xLTIuNCwwLjMtMy4zLDEuMVxuXHRcdEMxNC43LDI4LjcsMTQsMjksMTMuMiwyOXMtMS41LTAuMy0yLjEtMC44Yy0xLTAuOC0yLjItMS4yLTMuNC0xLjJz''@;'; + put 'put ''LTIuNCwwLjQtMy40LDEuMkMzLjcsMjguNywyLjgsMjksMiwyOXYyXG5cdFx0YzEuMywwLjEsMi42LTAuMywzLjYtMS4yQzYuMiwyOS4zLDcuMSwyOSw3LjksMjljMC43LDAsMS41LDAuMywyLjEsMC44YzEuOCwxLjYsNC42LDEuNiw2LjUsMGMwLjYtMC41LDEuMy0wLjgsMi4xLTAuOFxuXHRc''@;'; + put 'put ''dGMwLjcsMCwxLjQsMC4zLDIsMC44YzEuOSwxLjYsNC42LDEuNiw2LjUsMGMwLjUtMC41LDEuMy0wLjgsMi0wLjhjMC43LDAsMS40LDAuMywxLjksMC44YzAuOSwwLjcsMS45LDEuMSwzLDEuMnYtMlxuXHRcdGMtMSwwLTEuMi0wLjQtMS43LTAuOEMzMS40LDI3LjUsMzAuMywyNy4xLDI5LjEs''@;'; + put 'put ''MjcuMXoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik02LDIzYzAtMC42LDAuNS0xLDEuMS0xSDMybC0zLjUsMy4xaDAuMmMwLjgsMCwxLjYsMC4yLDIuMiwwLjVsMi41LTIuMmwwLjItMC4yYzAuNy0wLjgsMC42LTIuMS0wLjItMi44XG5c''@;'; + put 'put ''dFx0QzMzLDIwLjIsMzIuNiwyMCwzMi4xLDIwaC0yNWMtMS43LDAtMywxLjMtMywzdjMuMmMwLjUtMC41LDEuMi0wLjgsMS45LTEuMVYyM3oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik04LjksMTlIMTV2LTcuOGMwLTAuNi0wLjMtMS4y''@;'; + put 'put ''LTAuOC0xLjZDMTMuMyw4LjksMTIsOS4xLDExLjQsMTBsLTQuMSw1LjljLTAuNCwwLjYtMC40LDEuNC0wLjEsMi4xQzcuNSwxOC42LDguMiwxOSw4LjksMTlcblx0XHR6IE0xMy4xLDExLjJMMTMsMTdIOC45TDEzLjEsMTEuMnoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUt''@;'; + put 'put ''cGF0aC0zIiAvPjxwYXRoIGQ9Ik0yNiwxOGMwLjQtMC42LDAuNC0xLjQsMC0yTDE5LjcsNS42Yy0wLjQtMC42LTEtMS0xLjctMWMtMS4xLDAtMiwwLjktMiwyVjE5aDguM0MyNSwxOSwyNS43LDE4LjYsMjYsMTh6IE0xNy45LDYuNlxuXHRcdGw2LjQsMTAuNWgtNi40VjYuNnoiIGNsYXNzPSJj''@;'; + put 'put ''bHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPjxwYXRoIGQ9Ik0zNCwzMWMtMS4xLTAuMS0yLjEtMC41LTMtMS4yYy0wLjUtMC41LTEuMi0wLjgtMi0wLjhjLTAuNywwLTEuNSwwLjMtMiwwLjhjLTAuOSwwLjgtMiwxLjEtMy4xLDEuMWMtMS4yLDAtMi40LTAuNC0zLjMtMS4x''@;'; + put 'put ''XG5cdGMtMS4yLTEuMS0zLTEuMS00LjEsMGMtMC45LDAuOC0yLjEsMS4yLTMuNCwxLjJjLTEuMiwwLTIuMy0wLjQtMy4yLTEuMmMtMC42LTAuNS0xLjMtMC44LTItMC44Yy0wLjgsMC0xLjcsMC4zLTIuMywwLjhcblx0Yy0xLDAuOC0yLjMsMS4yLTMuNSwxLjFWMjljMC44LDAsMS43LTAuMywy''@;'; + put 'put ''LjMtMC45YzEtMC44LDIuMi0xLjIsMy40LTEuMWMxLjIsMCwyLjQsMC40LDMuMywxLjJjMS4yLDEuMSwzLDEuMSw0LjIsMFxuXHRjMS45LTEuNiw0LjctMS42LDYuNSwwYzEuMiwxLjEsMywxLjEsNC4xLDBjMC45LTAuOCwyLjEtMS4yLDMuMy0xLjJjMS4xLDAsMi4yLDAuNCwzLDEuMkMzMi44''@;'; + put 'put ''LDI4LjcsMzMsMjksMzQsMjlMMzQsMzF6IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPjxwYXRoIGQ9Ik00LjEsMjYuMmMwLjYtMC41LDEuMi0wLjgsMS45LTFWMjNjMC0wLjYsMC40LTEuMSwxLTEuMWgyNUwyOC40LDI1aDAuMmMwLjgsMCwxLjYsMC4yLDIuMiww''@;'; + put 'put ''LjVsMi41LTIuMmwwLjItMC4yXG5cdGMwLjctMC45LDAuNS0yLjEtMC40LTIuOEMzMi45LDIwLjEsMzIuNCwyMCwzMiwyMEg3Yy0xLjcsMC0zLDEuMy0zLDNMNC4xLDI2LjJMNC4xLDI2LjJ6IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0xNC45''@;'; + put 'put ''LDE4LjlIOC45Yy0xLjEsMC0yLTAuOS0yLTJjMC0wLjQsMC4xLTAuOCwwLjQtMS4ybDQuMS01LjhjMC42LTAuOSwxLjktMS4xLDIuOC0wLjVjMC41LDAuNCwwLjgsMSwwLjgsMS42VjE4Ljl6IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0yNC4z''@;'; + put 'put ''LDE4LjlIMTZWNi40YzAtMS4xLDAuOS0yLDItMmMwLjcsMCwxLjMsMC40LDEuNywxTDI2LDE1LjhjMC42LDEsMC4yLDIuMi0wLjcsMi43QzI1LDE4LjcsMjQuNiwxOC44LDI0LjMsMTguOVxuXHRMMjQuMywxOC45eiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNCIgLz4n''@;'; + put 'put ''KSxlLkNsclNoYXBlQ2FtcGVydmFuPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik05LjUsMjRDOS41LDI0LDkuNSwyNCw5LjUsMjRDNy42LDI0LDYsMjUuNiw2LDI3LjVjMCwwLDAsMCwwLDBDNiwyOS40LDcuNiwzMSw5LjUsMzFjMS45LDAsMy41LTEuNiwzLjUtMy41XG5cdFx0UzExLjQs''@;'; + put 'put ''MjQsOS41LDI0eiBNOS41LDI5QzguNywyOSw4LDI4LjMsOCwyNy41UzguNywyNiw5LjUsMjZzMS41LDAuNywxLjUsMS41UzEwLjMsMjksOS41LDI5eiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTIzLjUsMjRDMjMuNSwyNCwyMy41LDI0''@;'; + put 'put ''LDIzLjUsMjRjLTEuOSwwLTMuNSwxLjYtMy41LDMuNWMwLDAsMCwwLDAsMGMwLDEuOSwxLjUsMy41LDMuNSwzLjVjMS45LDAsMy41LTEuNiwzLjUtMy41XG5cdFx0UzI1LjQsMjQsMjMuNSwyNHogTTIzLjUsMjljLTAuOCwwLTEuNS0wLjctMS41LTEuNXMwLjctMS41LDEuNS0xLjVzMS41LDAu''@;'; + put 'put ''NywxLjUsMS41UzI0LjMsMjksMjMuNSwyOXoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0zMywyMC4xVjIwaC0wLjFsLTMuNS01LjVDMzEsMTMuNiwzMiwxMiwzMiwxMC4zVjkuN0MzMiw3LjEsMjkuOSw1LDI3LjMsNWgtOC41Yy0xLjks''@;'; + put 'put ''MC0zLjcsMS4yLTQuNCwzSDVjLTEuNywwLTMsMS4zLTMsM1xuXHRcdHYxN2gyVjExYzAtMC42LDAuNC0xLDEtMWgxMC45TDE2LDkuMkMxNi4zLDcuOSwxNy40LDcsMTguNyw3aDguNUMyOC44LDcsMzAsOC4yLDMwLDkuN3YwLjVjMCwxLjUtMS4yLDIuNy0yLjcsMi43SDI0djloNy44XG5cdFx0''@;'; + put 'put ''bDAuMiwwLjNWMjVjMCwwLjYtMC40LDEtMSwxaC0ydjJoMmMxLjcsMCwzLTEuMywzLTN2LTMuM0wzMywyMC4xeiBNMjYsMjB2LTVoMS41bDMuMSw1SDI2eiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+PHJlY3QgeD0iMTkiIHk9IjkiIHdpZHRoPSI4IiBo''@;'; + put 'put ''ZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPjxwb2x5Z29uIHBvaW50cz0iMjAsMjIgMjIsMjIgMjIsMTMgMTUsMTMgMTUsMjggMTcsMjggMTcsMTUgMjAsMTUgXHQiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01''@;'; + put 'put ''IiAvPjxwYXRoIGQ9Ik02LDIwaDd2LTdINlYyMHogTTgsMTVoM3YzSDhWMTV6IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIgLz48cGF0aCBkPSJNOS41LDI0QzcuNiwyNCw2LDI1LjYsNiwyNy41UzcuNiwzMSw5LjUsMzFjMCwwLDAsMCwwLDBjMS45LDAsMy41''@;'; + put 'put ''LTEuNiwzLjUtMy41YzAsMCwwLTAuMSwwLTAuMUMxMywyNS41LDExLjQsMjQsOS41LDI0eiJcblx0XHQgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz48Y2lyY2xlIGN4PSIyMy41IiBjeT0iMjcuNSIgcj0iMy41IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29s''@;'; + put 'put ''aWQtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0yOS41LDE0LjVDMzEsMTMuNiwzMiwxMiwzMiwxMC4yVjkuN2MwLDAsMCwwLDAtMC4xQzMyLDcsMjkuOSw1LDI3LjMsNWgtOC41Yy0xLjksMC0zLjcsMS4yLTQuNCwzSDVjLTEuNywwLTMsMS4zLTMsM3YxN1xuXHRcdGgyVjExYzAtMC42LDAuNC0xLDEt''@;'; + put 'put ''MWgxMC45TDE2LDkuMkMxNi4zLDcuOSwxNy40LDcsMTguNyw3aDguNUMyOC44LDcsMzAsOC4yLDMwLDkuN3YwLjVjMCwxLjUtMS4yLDIuNy0yLjcsMi43SDI3aC0zdjloNy44XG5cdFx0bDAuMiwwLjNWMjVjMCwwLjYtMC40LDEtMSwxaC0ydjJoMmMxLjcsMCwzLTEuMywzLTN2LTMuM0wyOS41''@;'; + put 'put ''LDE0LjV6IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiAvPjxyZWN0IHg9IjE5IiB5PSI5IiB3aWR0aD0iNy45IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTQiIC8+PHBvbHlnb24gcG9pbnRzPSIyMCwyMiAyMS45LDIyIDIx''@;'; + put 'put ''LjksMTMgMTUsMTMgMTUsMjggMTYuOSwyOCAxNi45LDE1IDIwLDE1IFx0IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC01IiAvPjxyZWN0IHg9IjYiIHk9IjEzIiB3aWR0aD0iNi45IiBoZWlnaHQ9IjciIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTYi''@;'; + put 'put ''IC8+JyksZS5DbHJTaGFwZUNhcmF2YW49KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTEzLjUsMjFDMTEsMjEsOSwyMyw5LDI1LjVzMiw0LjUsNC41LDQuNWMyLjUsMCw0LjUtMiw0LjUtNC41QzE4LDIzLDE2LDIxLDEzLjUsMjF6IE0xMy41LDI4Yy0xLjQsMC0yLjUtMS4xLTIuNS0yLjVc''@;'; + put 'put ''blx0XHRzMS4xLTIuNSwyLjUtMi41czIuNSwxLjEsMi41LDIuNVMxNC45LDI4LDEzLjUsMjh6IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMzMsMjRoLTJ2LTcuNWMwLTAuNS0wLjEtMS0wLjQtMS41bC00LjItNy41Yy0wLjUtMS0xLjUt''@;'; + put 'put ''MS41LTIuNi0xLjVINUMzLjMsNiwyLDcuMywyLDl2MTRjMCwxLjcsMS4zLDMsMywzaDJ2LTJINVxuXHRcdGMtMC42LDAtMS0wLjQtMS0xVjljMC0wLjYsMC40LTEsMS0xaDE4LjhjMC40LDAsMC43LDAuMiwwLjksMC41bDQuMiw3LjVjMC4xLDAuMSwwLjEsMC4zLDAuMSwwLjVWMjRoLTRWMTJo''@;'; + put 'put ''LTd2OGgydi02aDN2MTBoLTN2MmgxM1xuXHRcdGMwLjYsMCwxLTAuNCwxLTFTMzMuNiwyNCwzMywyNHoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0xNiwxMkg3djZoOVYxMnogTTE0LDE2SDl2LTJoNVYxNnoiIGNsYXNzPSJjbHItaS1v''@;'; + put 'put ''dXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0xMy41LDMwQzExLDMwLDksMjgsOSwyNS41czItNC41LDQuNS00LjVzNC41LDIsNC41LDQuNUMxOCwyOCwxNiwzMCwxMy41LDMweiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz48cGF0aCBk''@;'; + put 'put ''PSJNMzMsMjRoLTJ2LTcuNWMwLTAuNS0wLjEtMS0wLjQtMS41bC00LjItNy41Yy0wLjUtMS0xLjUtMS41LTIuNi0xLjVINUMzLjMsNiwyLDcuMywyLDl2MTRjMCwxLjcsMS4zLDMsMywzaDJ2LTJINVxuXHRjLTAuNiwwLTEtMC40LTEtMVY5YzAtMC42LDAuNC0xLDEtMWgxOC44YzAuNCwwLDAu''@;'; + put 'put ''NywwLjIsMC45LDAuNWw0LjIsNy41YzAuMSwwLjEsMC4xLDAuMywwLjEsMC41VjI0aC00VjEyaC03djhoMnYtNmgzdjEwaC0zdjJoMTNcblx0YzAuNiwwLDEtMC40LDEtMVMzMy42LDI0LDMzLDI0eiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz48cGF0aCBkPSJN''@;'; + put 'put ''MTYsMThIN3YtNmg5VjE4eiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIgLz4nKSxlLkNsclNoYXBlRmVycnk9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI5LDI1LjFjLTEuMiwwLTIuMywwLjQtMy4zLDEuMWMwLDAsMCwwLDAsMGMtMS4xLDEuMS0zLDEuMS00''@;'; + put 'put ''LjEsMGMtMC45LTAuOC0yLjEtMS4yLTMuMy0xLjJjLTEuMiwwLTIuMywwLjQtMy4yLDEuMlxuXHRcdGMtMS4yLDEuMS0zLDEuMS00LjIsMEMxMCwyNS40LDguOCwyNSw3LjYsMjVjLTEuMiwwLTIuNCwwLjQtMy40LDEuMUMzLjYsMjYuNywyLjgsMjcsMiwyN3YyYzEuMywwLjEsMi41LTAuNCwz''@;'; + put 'put ''LjQtMS4yXG5cdFx0QzYuMSwyNy4zLDYuOSwyNyw3LjcsMjdjMC44LDAsMS41LDAuMywyLjEsMC44YzEuOSwxLjYsNC43LDEuNiw2LjUsMGMwLjYtMC41LDEuMy0wLjgsMi4xLTAuOGMwLjgsMCwxLjUsMC4zLDIuMSwwLjhcblx0XHRjMS45LDEuNiw0LjYsMS42LDYuNSwwYzAuNS0wLjUsMS4z''@;'; + put 'put ''LTAuOCwyLTAuOGMwLjcsMCwxLjUsMC4zLDIsMC44YzAuOSwwLjcsMiwxLjEsMy4xLDEuMnYtMS45Yy0wLjcsMC0xLjQtMC4zLTEuOS0wLjlcblx0XHRDMzEuMywyNS40LDMwLjEsMjUsMjksMjUuMXoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRo''@;'; + put 'put ''IGQ9Ik01LjksMjMuMlYyMEgzMmwtMy41LDNoMC4yYzAuOCwwLDEuNiwwLjIsMi4yLDAuNWwyLjUtMi4ybDAuMi0wLjJjMC41LTAuNiwwLjUtMS40LDAuMi0yLjFjLTAuNC0wLjctMS0xLTEuOC0xaC00LjRcblx0XHRMMjIuNSwxMUgxN2MtMS43LDAtMywxLjMtMywzaC0yVjguMUg2djYuMWMt''@;'; + put 'put ''MS4yLDAuNC0yLDEuNS0yLDIuOHYxLjFWMjB2NC4zbDAuMS0wLjFDNC42LDIzLjcsNS4yLDIzLjQsNS45LDIzLjJ6IE04LDEwaDJ2NEg4VjEwelxuXHRcdCBNNiwxN2MwLTAuNiwwLjQtMSwxLTFoOXYtMmMwLTAuNiwwLjQtMSwxLTFoNWwwLjYsMUgxOHYyaDUuOGwxLjIsMi4xSDZWMTd6IiBj''@;'; + put 'put ''bGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMjguMiwyNWMtMS4yLDAtMi40LDAuNC0zLjMsMS4yYy0xLjIsMS4xLTMsMS4xLTQuMSwwYy0xLjktMS42LTQuNi0xLjYtNi41LDBjLTEuMiwxLjEtMi45LDEuMS00LjEsMFxuXHRcdGMtMC45LTAu''@;'; + put 'put ''OC0yLTEuMi0zLjItMS4yYy0xLjIsMC0yLjMsMC40LTMuMiwxLjJDMy40LDI2LjcsMi43LDI3LDIsMjd2MmMxLjEtMC4xLDIuMi0wLjUsMy4xLTEuMkM1LjYsMjcuMyw2LjMsMjcsNywyN1xuXHRcdGMwLjcsMCwxLjUsMC4zLDIsMC44YzEuOSwxLjYsNC43LDEuNiw2LjYsMGMwLjYtMC41LDEu''@;'; + put 'put ''My0wLjgsMi4xLTAuOGMwLjgsMCwxLjUsMC4zLDIuMSwwLjhjMS45LDEuNiw0LjcsMS42LDYuNSwwXG5cdFx0YzAuNi0wLjUsMS4zLTAuOCwyLjEtMC44YzAuOCwwLDEuNiwwLjMsMi4xLDAuOGMwLjksMC44LDIuMiwxLjMsMy40LDEuMnYtMmMtMC44LDAtMS42LTAuMy0yLjItMC44QzMwLjcs''@;'; + put 'put ''MjUuNCwyOS41LDI1LDI4LjIsMjV6IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPjxwYXRoIGQ9Ik01LjgsMjMuMnYtMy4zaDI2LjFMMjguNCwyM2gwLjJjMC44LDAsMS42LDAuMiwyLjIsMC41bDIuNS0yLjJsMC4xLTAuMmMwLjctMC45LDAuNS0yLjEtMC40LTIu''@;'; + put 'put ''OGMtMC4zLTAuMy0wLjgtMC40LTEuMi0wLjRcblx0XHRoLTQuMWwtNS40LTdoLTUuNWMtMS43LDAtMywxLjMtMywzaC0yVjhINnY2LjJjLTEuMiwwLjQtMi4xLDEuNS0yLjEsMi44bDAsNy4ybDAuMSwwQzQuNSwyMy43LDUuMSwyMy40LDUuOCwyMy4yeiBNMTcuOSwxNGg0LjJcblx0XHRsMS40''@;'; + put 'put ''LDJoLTUuN1YxNHogTTcuOSwxMGgydjRoLTJWMTB6IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPicpLGUuQ2xyU2hhcGVUcmFpbGVyPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xNSwxOS4yYy0zLjIsMC01LjgsMi42LTUuOCw1LjhzMi42LDUuOCw1Ljgs''@;'; + put 'put ''NS44czUuOC0yLjYsNS44LTUuOFMxOC4yLDE5LjIsMTUsMTkuMnogTTE1LDI5LjJjLTIuMywwLTQuMi0xLjktNC4yLTQuMlxuXHRcdHMxLjktNC4yLDQuMi00LjJzNC4yLDEuOSw0LjIsNC4yUzE3LjMsMjkuMiwxNSwyOS4yeiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1w''@;'; + put 'put ''YXRoLTEiIC8+PHJlY3QgeD0iMTQiIHk9IjI0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMzMsOUgydjEzLjFjMCwwLDAsMCwwLDBDMiwyNC4zLDMuNywyNiw1LjksMjZIN3YtMkg1LjljLTEsMC0x''@;'; + put 'put ''LjgtMC44LTEuOS0xLjlWMTVoMjJ2Ny4xYzAsMS0wLjgsMS44LTEuOSwxLjlIMjN2MmgxLjFcblx0XHRjMCwwLDAsMCwwLDBjMi4xLDAsMy44LTEuNywzLjgtMy45VjExaDVjMC42LDAsMS0wLjQsMS0xUzMzLjYsOSwzMyw5eiBNMjYsMTNINHYtMmgyMlYxM3oiIGNsYXNzPSJjbHItaS1vdXRs''@;'; + put 'put ''aW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0zMyw5SDJ2MTMuMWMwLDAsMCwwLDAsMEMyLDI0LjMsMy43LDI2LDUuOSwyNkg3di0ySDUuOWMtMSwwLTEuOC0wLjgtMS45LTEuOVYxNWgyMnY3LjFjMCwxLTAuOCwxLjgtMS45LDEuOUgyM3YyaDEuMVxuXHRjMCwwLDAsMCww''@;'; + put 'put ''LDBjMi4xLDAsMy44LTEuNywzLjgtMy45VjExaDVjMC42LDAsMS0wLjQsMS0xUzMzLjYsOSwzMyw5eiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz48cGF0aCBkPSJNMTUsMTkuMmMtMy4yLDAtNS44LDIuNi01LjgsNS44czIuNiw1LjgsNS44LDUuOHM1LjgtMi42''@;'; + put 'put ''LDUuOC01LjhsMCwwQzIwLjgsMjEuOCwxOC4yLDE5LjIsMTUsMTkuMnogTTE2LDI2aC0ydi0yaDJWMjZ6IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPicpLGUuQ2xyU2hhcGVPbkhvbGlkYXk9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE4LjA4LDIuMzRj''@;'; + put 'put ''LTguODIsMC0xNiw2LjI4LTE2LDE0czcuMTgsMTQsMTYsMTRBMTcuOTEsMTcuOTEsMCwwLDAsMjMsMjkuNjZsNS41MywzLjUyYTEsMSwwLDAsMCwxLjM4LS4zLDEsMSwwLDAsMCwuMTYtLjU0VjI1LjYxYTEzLDEzLDAsMCwwLDQtOS4yN0MzNC4wOCw4LjYyLDI2LjksMi4zNCwxOC4wOCwyLjM0''@;'; + put 'put ''Wk0yOC4zNywyNC40NWExLDEsMCwwLDAtLjMyLjczdjUuMzRsLTQuMzgtMi43OWExLDEsMCwwLDAtLjgzLS4xMSwxNiwxNiwwLDAsMS00Ljc2LjcyYy03LjcyLDAtMTQtNS4zOC0xNC0xMnM2LjI4LTEyLDE0LTEyLDE0LDUuMzgsMTQsMTJBMTEuMSwxMS4xLDAsMCwxLDI4LjM3LDI0LjQ1WiIg''@;'; + put 'put ''Y2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgPHBhdGggZD0iTTMxLjEsMTUuODIsMzEsMTUuNjcsMjguNSwxMy40NGEzLjI1LDMuMjUsMCwwLDAtMi4zOS0uODRsLTUuMzguMzQtMy41OS0zYS44MS44MSwwLDAsMC0uNTItLjE5SDEzLjU2YS43OC43OCww''@;'; + put 'put ''LDAsMC0uNjkuNC43Ny43NywwLDAsMCwwLC43OWwxLjM2LDIuNDQtNC43MS4yOSwxLjMxLDEuNTIsMTUuMzktMWExLjY1LDEuNjUsMCwwLDEsMS4yMi40M2wyLjM2LDIuMTNhLjExLjExLDAsMCwxLDAsLjA3YzAsLjA2LS4wOS4wNS0uMS4wNkgyMS44MmwtLjM1LjM3LTUuMTksNS41M0gxNC42''@;'; + put 'put ''NGwyLjczLTUuOUg4LjU0TDcuMTMsMTQuMTYsNi41MSwxM2EuOC44LDAsMCwwLTEtLjJBLjgxLjgxLDAsMCwwLDUuMiwxMy45bDIsMy45NGExLjIxLDEuMjEsMCwwLDAsMS4wOC42NWg2LjU3bC0xLjk0LDQuMThBMS4yLDEuMiwwLDAsMCwxMywyMy44M2ExLjIyLDEuMjIsMCwwLDAsMSwuNTZo''@;'; + put 'put ''Mi40M2ExLjE3LDEuMTcsMCwwLDAsLjg4LS4zOWw1LjE4LTUuNTFoNy4xNmExLjY1LDEuNjUsMCwwLDAsMS41Mi0uOTFBMS43NCwxLjc0LDAsMCwwLDMxLjEsMTUuODJaTTE0LjkyLDExLjMxaDEuNDFsMi4wOSwxLjc3TDE2LDEzLjIzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0''@;'; + put 'put ''bGluZS1wYXRoLTIiLz5cbiAgXG4gIDxwYXRoIGQ9Ik0xOCwyLjVjLTguODIsMC0xNiw2LjI4LTE2LDE0czcuMTgsMTQsMTYsMTRhMTcuOTEsMTcuOTEsMCwwLDAsNC44OC0uNjhsNS41MywzLjUyYTEsMSwwLDAsMCwxLjM4LS4zQTEsMSwwLDAsMCwzMCwzMi41VjI1Ljc3YTEzLDEzLDAsMCww''@;'; + put 'put ''LDQtOS4yN0MzNCw4Ljc4LDI2LjgyLDIuNSwxOCwyLjVaTTI5Ljg0LDE4SDIxLjUxYS40Mi40MiwwLDAsMC0uMy4xM2wtNS4zLDUuNjRhLjM5LjM5LDAsMCwxLS4yOS4xM0gxMy4xOWEuNDEuNDEsMCwwLDEtLjM3LS41OGwyLjQ3LTUuMzJINy40NmEuNDIuNDIsMCwwLDEtLjM2LS4yMmwtMi43''@;'; + put 'put ''LTVINi4yNGEuNTMuNTMsMCwwLDEsLjM5LjE4bDEuNTYsMS42OWEuMzguMzgsMCwwLDAsLjMzLjE0bDYuMTgtLjM4LTItMy41NWgyLjg5YS40Ny40NywwLDAsMSwuMzEuMTFMMTkuNjMsMTRsNi42OS0uMzVhMi40NCwyLjQ0LDAsMCwxLDEuODEuNjNsMi40NywyLjIzQS45Mi45MiwwLDAsMSwy''@;'; + put 'put ''OS44NCwxOFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgJyksZS5UcmF2ZWxTaGFwZXM9e3RydWNrOmUuQ2xyU2hhcGVUcnVjayxhaXJwbGFuZTplLkNsclNoYXBlQWlycGxhbmUsY2FyOmUuQ2xyU2hhcGVDYXIsbWFwOmUuQ2xyU2hhcGVNYXAsY29tcGFz''@;'; + put 'put ''czplLkNsclNoYXBlQ29tcGFzcywibWFwLW1hcmtlciI6ZS5DbHJTaGFwZU1hcE1hcmtlcixiaWN5Y2xlOmUuQ2xyU2hhcGVCaWN5Y2xlLGJvYXQ6ZS5DbHJTaGFwZUJvYXQsY2FtcGVydmFuOmUuQ2xyU2hhcGVDYW1wZXJ2YW4sY2FyYXZhbjplLkNsclNoYXBlQ2FyYXZhbixmZXJyeTplLkNs''@;'; + put 'put ''clNoYXBlRmVycnksdHJhaWxlcjplLkNsclNoYXBlVHJhaWxlciwib24taG9saWRheSI6ZS5DbHJTaGFwZU9uSG9saWRheX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KGUuVHJhdmVsU2hhcGVzLCJwbGFuZSIsKDAsci5kZXNjcmlwdG9yQ29uZmlnKShlLlRyYXZlbFNoYXBlcy5haXJwbGFuZSkp''@;'; + put 'put ''LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLlRyYXZlbFNoYXBlcywiYXV0byIsKDAsci5kZXNjcmlwdG9yQ29uZmlnKShlLlRyYXZlbFNoYXBlcy5jYXIpKSwidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyYmd2luZG93Lmhhc093blByb3BlcnR5KCJDbGFyaXR5SWNvbnMiKSYmd2luZG93LkNs''@;'; + put 'put ''YXJpdHlJY29ucy5hZGQoZS5UcmF2ZWxTaGFwZXMpfSwiLi9wcm9qZWN0cy9pY29ucy9zcmMvdXRpbHMvZGVzY3JpcHRvci1jb25maWcudHMiOmZ1bmN0aW9uKEEsZSxsKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVz''@;'; + put 'put ''Y3JpcHRvckNvbmZpZz12b2lkIDAsZS5kZXNjcmlwdG9yQ29uZmlnPWZ1bmN0aW9uKHIpe3JldHVybntlbnVtZXJhYmxlOiEwLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx2YWx1ZTpyfX19LCIuL3Byb2plY3RzL2ljb25zL3NyYy91dGlscy9zaGFwZS10ZW1wbGF0ZS1vYnNlcnZlci50''@;'; + put 'put ''cyI6ZnVuY3Rpb24oQSxlLGwpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5TaGFwZVRlbXBsYXRlT2JzZXJ2ZXI9ZS5jaGFuZ2VIYW5kbGVyQ2FsbGJhY2tzPXZvaWQgMCxlLmNoYW5nZUhhbmRsZXJDYWxsYmFja3M9e307''@;'; + put 'put ''dmFyIHI9KE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLCJpbnN0YW5jZSIse2dldDpmdW5jdGlvbigpe3JldHVybiBhLnNpbmdsZUluc3RhbmNlPWEuc2luZ2xlSW5zdGFuY2U/YS5zaW5nbGVJbnN0YW5jZTpuZXcgYX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxhLnByb3RvdHlw''@;'; + put 'put ''ZS5zdWJzY3JpYmVUbz1mdW5jdGlvbihjLG8pe3ZhciBoPXRoaXM7cmV0dXJuIHRoaXMuY2FsbGJhY2tzW2NdPy0xPT09dGhpcy5jYWxsYmFja3NbY10uaW5kZXhPZihvKSYmdGhpcy5jYWxsYmFja3NbY10ucHVzaChvKTp0aGlzLmNhbGxiYWNrc1tjXT1bb10sZnVuY3Rpb24oKXt2YXIgZj1o''@;'; + put 'put ''LmNhbGxiYWNrc1tjXS5pbmRleE9mKG8pO2guY2FsbGJhY2tzW2NdLnNwbGljZShmLDEpLDA9PT1oLmNhbGxiYWNrc1tjXS5sZW5ndGgmJmRlbGV0ZSBoLmNhbGxiYWNrc1tjXX19LGEucHJvdG90eXBlLmVtaXRDaGFuZ2VzPWZ1bmN0aW9uKGMsbyl7dGhpcy5jYWxsYmFja3NbY10mJnRoaXMu''@;'; + put 'put ''Y2FsbGJhY2tzW2NdLm1hcChmdW5jdGlvbihoKXtoKG8pfSl9LGEpO2Z1bmN0aW9uIGEoKXt0aGlzLmNhbGxiYWNrcz1lLmNoYW5nZUhhbmRsZXJDYWxsYmFja3N9ZS5TaGFwZVRlbXBsYXRlT2JzZXJ2ZXI9cn0sIi4vcHJvamVjdHMvaWNvbnMvc3JjL3V0aWxzL3N2Zy10YWctZ2VuZXJhdG9y''@;'; + put 'put ''LnRzIjpmdW5jdGlvbihBLGUsbCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmNsckljb25TVkc9dm9pZCAwLGUuY2xySWNvblNWRz1mdW5jdGlvbihyKXt2YXIgYT0iIjtyZXR1cm4tMTxyLmluZGV4T2YoIi0tYmFkZ2Vk''@;'; + put 'put ''IikmJihhKz0iY2FuLWJhZGdlICIpLC0xPHIuaW5kZXhPZigiLS1hbGVydGVkIikmJihhKz0iY2FuLWFsZXJ0ICIpLC0xPHIuaW5kZXhPZigiY2xyLWktc29saWQiKSYmKGErPSJoYXMtc29saWQgIiksKGE/JzxzdmcgdmVyc2lvbj0iMS4xIiBjbGFzcz0iJythKyciIHZpZXdCb3g9IjAgMCAz''@;'; + put 'put ''NiAzNiIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQgbWVldCJcbiAgICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBmb2N1c2FibGU9ImZhbHNlIiByb2xlPSJpbWciPic6JzxzdmcgdmVy''@;'; + put 'put ''c2lvbj0iMS4xIiB2aWV3Qm94PSIwIDAgMzYgMzYiIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaWRZTWlkIG1lZXQiXG4gICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgZm9jdXNhYmxlPSJmYWxz''@;'; + put 'put ''ZSIgcm9sZT0iaW1nIj4nKStyKyI8L3N2Zz4ifX19LGs9e30sWC5tPUYxLFguYz1rLFguZD1mdW5jdGlvbihBLGUsbCl7WC5vKEEsZSl8fE9iamVjdC5kZWZpbmVQcm9wZXJ0eShBLGUse2VudW1lcmFibGU6ITAsZ2V0Omx9KX0sWC5yPWZ1bmN0aW9uKEEpeyJ1bmRlZmluZWQiIT10eXBlb2Yg''@;'; + put 'put ''U3ltYm9sJiZTeW1ib2wudG9TdHJpbmdUYWcmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShBLFN5bWJvbC50b1N0cmluZ1RhZyx7dmFsdWU6Ik1vZHVsZSJ9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoQSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSl9LFgudD1mdW5jdGlvbihBLGUpe2lmKDEmZSYm''@;'; + put 'put ''KEE9WChBKSksOCZlfHw0JmUmJiJvYmplY3QiPT10eXBlb2YgQSYmQSYmQS5fX2VzTW9kdWxlKXJldHVybiBBO3ZhciBsPU9iamVjdC5jcmVhdGUobnVsbCk7aWYoWC5yKGwpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShsLCJkZWZhdWx0Iix7ZW51bWVyYWJsZTohMCx2YWx1ZTpBfSksMiZlJiYi''@;'; + put 'put ''c3RyaW5nIiE9dHlwZW9mIEEpZm9yKHZhciByIGluIEEpWC5kKGwscixmdW5jdGlvbihhKXtyZXR1cm4gQVthXX0uYmluZChudWxsLHIpKTtyZXR1cm4gbH0sWC5uPWZ1bmN0aW9uKEEpe3ZhciBlPUEmJkEuX19lc01vZHVsZT9mdW5jdGlvbigpe3JldHVybiBBLmRlZmF1bHR9OmZ1bmN0aW9u''@;'; + put 'put ''KCl7cmV0dXJuIEF9O3JldHVybiBYLmQoZSwiYSIsZSksZX0sWC5vPWZ1bmN0aW9uKEEsZSl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChBLGUpfSxYLnA9IiIsWChYLnM9Ii4vcHJvamVjdHMvaWNvbnMvc3JjL2Nsci1pY29ucy1zZngudHMiKTtmdW5jdGlv''@;'; + put 'put ''biBYKEEpe2lmKGtbQV0pcmV0dXJuIGtbQV0uZXhwb3J0czt2YXIgZT1rW0FdPXtpOkEsbDohMSxleHBvcnRzOnt9fTtyZXR1cm4gRjFbQV0uY2FsbChlLmV4cG9ydHMsZSxlLmV4cG9ydHMsWCksZS5sPSEwLGUuZXhwb3J0c312YXIgRjEsa30pOw=='';'; + put 'run;'; + put '%sasjsout(JS64)'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=styles.7090c110c4a7c61c-css; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put 'options mprint;'; + put '%macro mp_replace(infile,'; + put 'findvar=,'; + put 'replacevar=,'; + put 'outfile=0'; + put ')/*/STORE SOURCE*/;'; + put '%local inref outref dttm ds1 rc;'; + put '/* create filerefs */'; + put '%let rc=%sysfunc(filename(inref,,temp,lrecl=200));'; + put '%let rc=%sysfunc(filename(outref,,temp,lrecl=200));'; + put '%if &outfile=0 %then %let outfile=&infile;'; + put '/* uniquely named 32 char datasets */'; + put '%let ds1=all%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,29);'; + put '%let ds2=start%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,27);'; + put '/* START */'; + put '%let dttm=%sysfunc(datetime());'; + put 'filename &inref &infile lrecl=1 recfm=n;'; + put 'data &ds1;'; + put 'infile &inref;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'run;'; + put 'data &ds2;'; + put '/* set find string to length in bytes to cover trailing spaces */'; + put 'length string $ %length(%superq(&findvar));'; + put 'string =symget("&findvar");'; + put 'drop string;'; + put 'firstchar=char(string,1);'; + put 'findlen=lengthm(string); /* <- for trailing bytes */'; + put 'do _N_=1 to nobs;'; + put 'set &ds1 nobs=nobs point=_N_;'; + put 'if sourcechar=firstchar then do;'; + put 'pos=1;'; + put 's=0;'; + put 'do point=_N_ to min(_N_ + findlen -1,nobs);'; + put 'set &ds1 point=point;'; + put 'if sourcechar=char(string, pos) then s + 1;'; + put 'else goto _leave_;'; + put 'pos+1;'; + put 'end;'; + put '_leave_:'; + put 'if s=findlen then do;'; + put 'START =_N_;'; + put '_N_ =_N_+ s - 1;'; + put 'STOP =_N_;'; + put 'output;'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'stop;'; + put 'keep START STOP;'; + put 'run;'; + put 'data &ds1;'; + put 'declare hash HS(dataset:"&ds2(keep=start)");'; + put 'HS.defineKey("start");'; + put 'HS.defineDone();'; + put 'declare hash HE(dataset:"&ds2(keep=stop)");'; + put 'HE.defineKey("stop");'; + put 'HE.defineDone();'; + put 'do until(eof);'; + put 'set &ds1 end=eof curobs =n;'; + put 'start = ^HS.check(key:n);'; + put 'stop = ^HE.check(key:n);'; + put 'length strt $ 1;'; + put 'strt =put(start,best. -L);'; + put 'retain out 1;'; + put 'if out then output;'; + put 'if start then out=0;'; + put 'if stop then out=1;'; + put 'end;'; + put 'stop;'; + put 'keep sourcechar strt;'; + put 'run;'; + put 'filename &outref &outfile recfm=n;'; + put 'data _null_;'; + put 'length replace $ %length(%superq(&replacevar));'; + put 'replace=symget("&replacevar");'; + put 'file &outref;'; + put 'do until(eof);'; + put 'set &ds1 end=eof;'; + put 'if strt ="1" then put replace char.;'; + put 'else put sourcechar char1.;'; + put 'end;'; + put 'stop;'; + put 'run;'; + put '/* END */'; + put '%put &sysmacroname took %sysevalf(%sysfunc(datetime())-&dttm) seconds to run;'; + put '%mend mp_replace;'; + put '%macro sasjsout(type,fref=sasjs);'; + put '%global sysprocessmode SYS_JES_JOB_URI;'; + put '%if &type=JS or &type=JS64 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header('; + put 'Content-type,application/javascript%str(;)charset=UTF-8'; + put '));'; + put '%end;'; + put '%else %if &type=CSS or &type=CSS64 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,text/css));'; + put '%end;'; + put '%else %if &type=PNG or &type=GIF or &type=JPEG or &type=JPG %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,image/%lowcase(&type)));'; + put '%end;'; + put '%else %if &type=SVG or &type=SVG64 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,image/svg+xml));'; + put '%end;'; + put '%else %if &type=ICO %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,image/vnd.microsoft.icon));'; + put '%end;'; + put '%else %if &type=JSON %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,application/json));'; + put '%end;'; + put '%else %if &type=MP3 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/mpeg));'; + put '%end;'; + put '%else %if &type=WAV %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/x-wav));'; + put '%end;'; + put '%else %if &type=OGG %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/ogg));'; + put '%end;'; + put '%else %if &type=WOFF or &type=WOFF2 or &type=TTF %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,font/%lowcase(&type)));'; + put '%end;'; + put '%else %if &type=MP4 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,video/mp4));'; + put '%end;'; + put '%if &type=HTML %then %do;'; + put '/*'; + put 'We need to perform some substitutions -eg to get the APPLOC and SERVERTYPE.'; + put 'Therefore the developer should avoid writing lines that exceed 32k'; + put 'characters (eg base64 encoded images) as they will get truncated when passing'; + put 'through the datastep. This could of course be re-written using LUA, removing'; + put 'the length restriction. Pull requests are welcome!'; + put '*/'; + put 'filename _sjsout temp;'; + put 'data _null_;'; + put 'file _sjsout lrecl=32767 encoding=''utf-8'';'; + put 'infile &fref lrecl=32767;'; + put 'input;'; + put 'length appLoc expanded_path $1048;'; + put 'if _n_=1 then do;'; + put 'retain pgm "&_program" appLoc expanded_path;'; + put '/* index is deployed in the /services/ folder under the appLoc */'; + put 'appLoc=substr(pgm,1,find(pgm,''/services/'')-1);'; + put 'expanded_path=cats(''?_PROGRAM='',appLoc,''/services/'');'; + put 'end;'; + put 'if find(_infile_,'' appLoc: '') then put '' appLoc: '' apploc:$quote1048. '','';'; + put 'else if find(_infile_,'' serverType: '') then do;'; + put 'put '' serverType: "SAS9" ,'';'; + put 'end;'; + put 'else if find(_infile_,'' serverUrl: '') then do;'; + put '/* nothing - we are streaming, so remove to default as hostname */'; + put 'end;'; + put 'else do;'; + put '/* More recently, SASjs apps avoid inline JS to allow strict CSP */'; + put 'length infile in1 in2 $32767;'; + put 'infile=cats(_infile_);'; + put 'spos1=index(upcase(infile),''APPLOC="'');'; + put 'if spos1>0 then do;'; + put 'in1=substr(infile,1,spos1+7);'; + put 'in2=subpad(infile,spos1+8);'; + put 'in2=substr(in2,index(in2,''"''));'; + put 'infile=cats(in1,appLoc,in2);'; + put 'putlog "new apploc: " infile=;'; + put 'end;'; + put '/* find & replace serverType in HTML attributes */'; + put 'spos2=index(upcase(infile),''SERVERTYPE="'');'; + put 'if spos2>0 then do;'; + put 'in1=substr(infile,1,spos2+11);'; + put 'in2=subpad(infile,spos2+12);'; + put 'in2=substr(in2,index(in2,''"''));'; + put 'infile=cats(in1,"SAS9",in2);'; + put 'putlog "new servertype: " infile=;'; + put 'end;'; + put '/* find & replace serverUrl in HTML attributes */'; + put 'spos3=index(upcase(infile),''SERVERURL="'');'; + put 'if spos3>0 then do;'; + put 'in1=substr(infile,1,spos3+10);'; + put 'in2=subpad(infile,spos3+11);'; + put 'in2=substr(in2,index(in2,''"''));'; + put 'infile=cats(in1,in2);'; + put 'putlog "new serverUrl: " infile=;'; + put 'end;'; + put 'if sum(spos1,spos2,spos3)>0 then put infile;'; + put 'else do;'; + put '/* during SAS9 sasjs compile, dependencies get static GUID */'; + put 'infile=tranwrd(_infile_,''?_PROGRAM=pZKd6F95jECvRQlN0LCfdA=='',cats(expanded_path));'; + put 'put infile;'; + put 'end;'; + put 'end;'; + put 'run;'; + put '%let fref=_sjsout;'; + put '%end;'; + put '%else %if &type=JS64 or &type=CSS64 %then %do;'; + put 'options nobomfile;'; + put '%let fvar=pZKd6F95jECvRQlN0LCfdA==;'; + put '%let stgfile="%sysfunc(pathname(work))/stgfile.txt";'; + put '%let newfile="%sysfunc(pathname(work))/newfile.txt";'; + put '/* convert from base64 */'; + put 'filename _out64 &stgfile encoding=''utf-8'';'; + put 'data _null_;'; + put 'length filein 8 fileout 8;'; + put 'filein = fopen("&fref",''I'',4,''B'');'; + put 'fileout = fopen("_out64",''A'',1,''B'');'; + put 'char= ''20''x;'; + put 'do while(fread(filein)=0);'; + put 'length raw $4 ;'; + put 'do i=1 to 4;'; + put 'rc=fget(filein,char,1);'; + put 'substr(raw,i,1)=char;'; + put 'end;'; + put 'rc = fput(fileout, input(raw,$base64X4.));'; + put 'rc =fwrite(fileout);'; + put 'end;'; + put 'rc = fclose(filein);'; + put 'rc = fclose(fileout);'; + put 'run;'; + put '/* get appLoc from _program */'; + put 'data _null_;'; + put 'pgm="&_program";'; + put 'appLoc=substr(pgm,1,find(pgm,''/services/'')-1);'; + put 'call symputx(''apploc'',cats(appLoc,''/services/''));'; + put 'run;'; + put '%put &=fvar;'; + put '%put &=apploc;'; + put '/* replace the GUID with appLoc */'; + put '%mp_replace(&stgfile,'; + put 'findvar=fvar,'; + put 'replacevar=apploc,'; + put 'outfile=&newfile'; + put ')'; + put 'filename &fref &newfile encoding=''utf-8'';'; + put '%end;'; + put '/**'; + put '* In SAS9, JS & CSS files are base64 encoded to avoid UTF8 issues in WLATIN1'; + put '* metadata - so in this case, decode and stream byte by byte.'; + put '* */'; + put '%if &type=GIF or &type=PNG or &type=JPG or &type=JPEG or &type=ICO or &type=MP3'; + put 'or &type=WAV or &type=OGG or &type=WOFF or &type=WOFF2 or &type=TTF or &type=MP4'; + put 'or &type=SVG64'; + put '%then %do;'; + put 'data _null_;'; + put 'length filein 8 fileout 8;'; + put 'filein = fopen("&fref",''I'',4,''B'');'; + put 'fileout = fopen("_webout",''A'',1,''B'');'; + put 'char = ''20''x;'; + put 'do while(fread(filein)=0);'; + put 'length raw $4 ;'; + put 'do i=1 to 4;'; + put 'rc=fget(filein,char,1);'; + put 'substr(raw,i,1)=char;'; + put 'end;'; + put 'rc = fput(fileout, input(raw,$base64X4.));'; + put 'rc = fwrite(fileout);'; + put 'end;'; + put 'rc = fclose(filein);'; + put 'rc = fclose(fileout);'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%put streaming to _webout;'; + put 'data _null_;'; + put 'infile &fref lrecl=1 recfm=n;'; + put 'file _webout mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put '%end;'; + put '%mend sasjsout;'; + put 'filename sasjs temp lrecl=99999999;'; + put 'data _null_;'; + put 'file sasjs;'; + put 'put ''ZGl2LmNvZGUtdG9vbGJhcntwb3NpdGlvbjpyZWxhdGl2ZX1kaXYuY29kZS10b29sYmFyPi50b29sYmFye3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTA7dG9wOi4zZW07cmlnaHQ6LjJlbTt0cmFuc2l0aW9uOm9wYWNpdHkgLjNzIGVhc2UtaW4tb3V0O29wYWNpdHk6MH1kaXYuY29kZS10''@;'; + put 'put ''b29sYmFyOmhvdmVyPi50b29sYmFye29wYWNpdHk6MX1kaXYuY29kZS10b29sYmFyOmZvY3VzLXdpdGhpbj4udG9vbGJhcntvcGFjaXR5OjF9ZGl2LmNvZGUtdG9vbGJhcj4udG9vbGJhcj4udG9vbGJhci1pdGVte2Rpc3BsYXk6aW5saW5lLWJsb2NrfWRpdi5jb2RlLXRvb2xiYXI+LnRvb2xi''@;'; + put 'put ''YXI+LnRvb2xiYXItaXRlbT5he2N1cnNvcjpwb2ludGVyfWRpdi5jb2RlLXRvb2xiYXI+LnRvb2xiYXI+LnRvb2xiYXItaXRlbT5idXR0b257YmFja2dyb3VuZDpub25lO2JvcmRlcjowO2NvbG9yOmluaGVyaXQ7Zm9udDppbmhlcml0O2xpbmUtaGVpZ2h0Om5vcm1hbDtvdmVyZmxvdzp2aXNp''@;'; + put 'put ''YmxlO3BhZGRpbmc6MDstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7LW1vei11c2VyLXNlbGVjdDpub25lOy1tcy11c2VyLXNlbGVjdDpub25lfWRpdi5jb2RlLXRvb2xiYXI+LnRvb2xiYXI+LnRvb2xiYXItaXRlbT5hLGRpdi5jb2RlLXRvb2xiYXI+LnRvb2xiYXI+LnRvb2xiYXItaXRlbT5i''@;'; + put 'put ''dXR0b24sZGl2LmNvZGUtdG9vbGJhcj4udG9vbGJhcj4udG9vbGJhci1pdGVtPnNwYW57Y29sb3I6I2JiYjtmb250LXNpemU6LjhlbTtwYWRkaW5nOjAgLjVlbTtiYWNrZ3JvdW5kOiNmNWYyZjA7YmFja2dyb3VuZDpyZ2JhKDIyNCwyMjQsMjI0LC4yKTtib3gtc2hhZG93OjAgMnB4ICMwMDAz''@;'; + put 'put ''O2JvcmRlci1yYWRpdXM6LjVlbX1kaXYuY29kZS10b29sYmFyPi50b29sYmFyPi50b29sYmFyLWl0ZW0+YTpob3ZlcixkaXYuY29kZS10b29sYmFyPi50b29sYmFyPi50b29sYmFyLWl0ZW0+YTpmb2N1cyxkaXYuY29kZS10b29sYmFyPi50b29sYmFyPi50b29sYmFyLWl0ZW0+YnV0dG9uOmhv''@;'; + put 'put ''dmVyLGRpdi5jb2RlLXRvb2xiYXI+LnRvb2xiYXI+LnRvb2xiYXItaXRlbT5idXR0b246Zm9jdXMsZGl2LmNvZGUtdG9vbGJhcj4udG9vbGJhcj4udG9vbGJhci1pdGVtPnNwYW46aG92ZXIsZGl2LmNvZGUtdG9vbGJhcj4udG9vbGJhcj4udG9vbGJhci1pdGVtPnNwYW46Zm9jdXN7Y29sb3I6''@;'; + put 'put ''aW5oZXJpdDt0ZXh0LWRlY29yYXRpb246bm9uZX0vKiEKICogQ29weXJpZ2h0IChjKSBIQU5EU09OQ09ERSBzcC4geiBvLiBvLgogKiAKICogSEFORFNPTlRBQkxFIGlzIGEgc29mdHdhcmUgZGlzdHJpYnV0ZWQgYnkgSEFORFNPTkNPREUgc3AuIHogby4gby4sIGEgUG9saXNoIGNvcnBvcmF0''@;'; + put 'put ''aW9uIGJhc2VkIGluCiAqIEdkeW5pYSwgUG9sYW5kLCBhdCBBbGVqYSBad3ljaWXMqHN0d2EgOTYtOTgsIHJlZ2lzdGVyZWQgYnkgdGhlIERpc3RyaWN0IENvdXJ0IGluIEdkYW5zayB1bmRlciBudW1iZXIKICogNTM4NjUxLCBFVSB0YXggSUQgbnVtYmVyOiBQTDU4NjIyOTQwMDIsIHNoYXJl''@;'; + put 'put ''IGNhcGl0YWw6IFBMTiA2Miw4MDAuMDAuCiAqIAogKiBUaGlzIHNvZnR3YXJlIGlzIHByb3RlY3RlZCBieSBhcHBsaWNhYmxlIGNvcHlyaWdodCBsYXdzLCBpbmNsdWRpbmcgaW50ZXJuYXRpb25hbCB0cmVhdGllcywgYW5kIGR1YWwtCiAqIGxpY2Vuc2VkIOKAkyBkZXBlbmRpbmcgb24gd2hl''@;'; + put 'put ''dGhlciB5b3VyIHVzZSBmb3IgY29tbWVyY2lhbCBwdXJwb3NlcywgbWVhbmluZyBpbnRlbmRlZCBmb3Igb3IKICogcmVzdWx0aW5nIGluIGNvbW1lcmNpYWwgYWR2YW50YWdlIG9yIG1vbmV0YXJ5IGNvbXBlbnNhdGlvbiwgb3Igbm90LgogKiAKICogSWYgeW91ciB1c2UgaXMgc3RyaWN0bHkg''@;'; + put 'put ''cGVyc29uYWwgb3Igc29sZWx5IGZvciBldmFsdWF0aW9uIHB1cnBvc2VzLCBtZWFuaW5nIGZvciB0aGUgcHVycG9zZXMgb2YgdGVzdGluZwogKiB0aGUgc3VpdGFiaWxpdHksIHBlcmZvcm1hbmNlLCBhbmQgdXNlZnVsbmVzcyBvZiB0aGlzIHNvZnR3YXJlIG91dHNpZGUgdGhlIHByb2R1Y3Rp''@;'; + put 'put ''b24gZW52aXJvbm1lbnQsCiAqIHlvdSBhZ3JlZSB0byBiZSBib3VuZCBieSB0aGUgdGVybXMgaW5jbHVkZWQgaW4gdGhlICJoYW5kc29udGFibGUtbm9uLWNvbW1lcmNpYWwtbGljZW5zZS5wZGYiIGZpbGUuCiAqIAogKiBZb3VyIHVzZSBvZiB0aGlzIHNvZnR3YXJlIGZvciBjb21tZXJjaWFs''@;'; + put 'put ''IHB1cnBvc2VzIGlzIHN1YmplY3QgdG8gdGhlIHRlcm1zIGluY2x1ZGVkIGluIGFuIGFwcGxpY2FibGUKICogbGljZW5zZSBhZ3JlZW1lbnQuCiAqIAogKiBJbiBhbnkgY2FzZSwgeW91IG11c3Qgbm90IG1ha2UgYW55IHN1Y2ggdXNlIG9mIHRoaXMgc29mdHdhcmUgYXMgdG8gZGV2ZWxvcCBz''@;'; + put 'put ''b2Z0d2FyZSB3aGljaCBtYXkgYmUKICogY29uc2lkZXJlZCBjb21wZXRpdGl2ZSB3aXRoIHRoaXMgc29mdHdhcmUuCiAqIAogKiBVTkxFU1MgRVhQUkVTU0xZIEFHUkVFRCBPVEhFUldJU0UsIEhBTkRTT05DT0RFIFBST1ZJREVTIFRISVMgU09GVFdBUkUgT04gQU4gIkFTIElTIgogKiBCQVNJ''@;'; + put 'put ''UywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIEFORCBJTiBOTyBFVkVOVCBBTkQgVU5ERVIgTk8KICogTEVHQUwgVEhFT1JZLCBTSEFMTCBIQU5EU09OQ09ERSBCRSBMSUFCTEUgVE8gWU9VIEZPUiBEQU1BR0VTLCBJTkNMVURJTkcgQU5ZIERJUkVDVCwK''@;'; + put 'put ''ICogSU5ESVJFQ1QsIFNQRUNJQUwsIElOQ0lERU5UQUwsIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBPRiBBTlkgQ0hBUkFDVEVSIEFSSVNJTkcgRlJPTQogKiBVU0UgT1IgSU5BQklMSVRZIFRPIFVTRSBUSElTIFNPRlRXQVJFLgogKiAKICogVmVyc2lvbjogMTIuMS4yCiAqIFJlbGVhc2Ug''@;'; + put 'put ''ZGF0ZTogMDgvMDcvMjAyMiAoYnVpbHQgYXQgMDgvMDcvMjAyMiAwOToyNTo0MCkKICovLmhhbmRzb250YWJsZSAudGFibGUgdGgsLmhhbmRzb250YWJsZSAudGFibGUgdGR7Ym9yZGVyLXRvcDpub25lfS5oYW5kc29udGFibGUgdHJ7YmFja2dyb3VuZDojZmZmfS5oYW5kc29udGFibGUgdGR7''@;'; + put 'put ''YmFja2dyb3VuZC1jb2xvcjppbmhlcml0fS5oYW5kc29udGFibGUgLnRhYmxlIGNhcHRpb24rdGhlYWQgdHI6Zmlyc3QtY2hpbGQgdGgsLmhhbmRzb250YWJsZSAudGFibGUgY2FwdGlvbit0aGVhZCB0cjpmaXJzdC1jaGlsZCB0ZCwuaGFuZHNvbnRhYmxlIC50YWJsZSBjb2xncm91cCt0aGVh''@;'; + put 'put ''ZCB0cjpmaXJzdC1jaGlsZCB0aCwuaGFuZHNvbnRhYmxlIC50YWJsZSBjb2xncm91cCt0aGVhZCB0cjpmaXJzdC1jaGlsZCB0ZCwuaGFuZHNvbnRhYmxlIC50YWJsZSB0aGVhZDpmaXJzdC1jaGlsZCB0cjpmaXJzdC1jaGlsZCB0aCwuaGFuZHNvbnRhYmxlIC50YWJsZSB0aGVhZDpmaXJzdC1j''@;'; + put 'put ''aGlsZCB0cjpmaXJzdC1jaGlsZCB0ZHtib3JkZXItdG9wOjFweCBzb2xpZCAjQ0NDQ0NDfS5oYW5kc29udGFibGUgLnRhYmxlLWJvcmRlcmVke2JvcmRlcjowO2JvcmRlci1jb2xsYXBzZTpzZXBhcmF0ZX0uaGFuZHNvbnRhYmxlIC50YWJsZS1ib3JkZXJlZCB0aCwuaGFuZHNvbnRhYmxlIC50''@;'; + put 'put ''YWJsZS1ib3JkZXJlZCB0ZHtib3JkZXItbGVmdDpub25lfS5oYW5kc29udGFibGUgLnRhYmxlLWJvcmRlcmVkIHRoOmZpcnN0LWNoaWxkLC5oYW5kc29udGFibGUgLnRhYmxlLWJvcmRlcmVkIHRkOmZpcnN0LWNoaWxke2JvcmRlci1sZWZ0OjFweCBzb2xpZCAjQ0NDQ0NDfS5oYW5kc29udGFi''@;'; + put 'put ''bGUgLnRhYmxlPnRib2R5PnRyPnRkLC5oYW5kc29udGFibGUgLnRhYmxlPnRib2R5PnRyPnRoLC5oYW5kc29udGFibGUgLnRhYmxlPnRmb290PnRyPnRkLC5oYW5kc29udGFibGUgLnRhYmxlPnRmb290PnRyPnRoLC5oYW5kc29udGFibGUgLnRhYmxlPnRoZWFkPnRyPnRkLC5oYW5kc29udGFi''@;'; + put 'put ''bGUgLnRhYmxlPnRoZWFkPnRyPnRoe2xpbmUtaGVpZ2h0OjIxcHg7cGFkZGluZzowfS5jb2wtbGctMS5oYW5kc29udGFibGUsLmNvbC1sZy0xMC5oYW5kc29udGFibGUsLmNvbC1sZy0xMS5oYW5kc29udGFibGUsLmNvbC1sZy0xMi5oYW5kc29udGFibGUsLmNvbC1sZy0yLmhhbmRzb250YWJs''@;'; + put 'put ''ZSwuY29sLWxnLTMuaGFuZHNvbnRhYmxlLC5jb2wtbGctNC5oYW5kc29udGFibGUsLmNvbC1sZy01LmhhbmRzb250YWJsZSwuY29sLWxnLTYuaGFuZHNvbnRhYmxlLC5jb2wtbGctNy5oYW5kc29udGFibGUsLmNvbC1sZy04LmhhbmRzb250YWJsZSwuY29sLWxnLTkuaGFuZHNvbnRhYmxlLC5j''@;'; + put 'put ''b2wtbWQtMS5oYW5kc29udGFibGUsLmNvbC1tZC0xMC5oYW5kc29udGFibGUsLmNvbC1tZC0xMS5oYW5kc29udGFibGUsLmNvbC1tZC0xMi5oYW5kc29udGFibGUsLmNvbC1tZC0yLmhhbmRzb250YWJsZSwuY29sLW1kLTMuaGFuZHNvbnRhYmxlLC5jb2wtbWQtNC5oYW5kc29udGFibGUsLmNv''@;'; + put 'put ''bC1tZC01LmhhbmRzb250YWJsZSwuY29sLW1kLTYuaGFuZHNvbnRhYmxlLC5jb2wtbWQtNy5oYW5kc29udGFibGUsLmNvbC1tZC04LmhhbmRzb250YWJsZSwuY29sLW1kLTkuaGFuZHNvbnRhYmxlIC5jb2wtc20tMS5oYW5kc29udGFibGUsLmNvbC1zbS0xMC5oYW5kc29udGFibGUsLmNvbC1z''@;'; + put 'put ''bS0xMS5oYW5kc29udGFibGUsLmNvbC1zbS0xMi5oYW5kc29udGFibGUsLmNvbC1zbS0yLmhhbmRzb250YWJsZSwuY29sLXNtLTMuaGFuZHNvbnRhYmxlLC5jb2wtc20tNC5oYW5kc29udGFibGUsLmNvbC1zbS01LmhhbmRzb250YWJsZSwuY29sLXNtLTYuaGFuZHNvbnRhYmxlLC5jb2wtc20t''@;'; + put 'put ''Ny5oYW5kc29udGFibGUsLmNvbC1zbS04LmhhbmRzb250YWJsZSwuY29sLXNtLTkuaGFuZHNvbnRhYmxlIC5jb2wteHMtMS5oYW5kc29udGFibGUsLmNvbC14cy0xMC5oYW5kc29udGFibGUsLmNvbC14cy0xMS5oYW5kc29udGFibGUsLmNvbC14cy0xMi5oYW5kc29udGFibGUsLmNvbC14cy0y''@;'; + put 'put ''LmhhbmRzb250YWJsZSwuY29sLXhzLTMuaGFuZHNvbnRhYmxlLC5jb2wteHMtNC5oYW5kc29udGFibGUsLmNvbC14cy01LmhhbmRzb250YWJsZSwuY29sLXhzLTYuaGFuZHNvbnRhYmxlLC5jb2wteHMtNy5oYW5kc29udGFibGUsLmNvbC14cy04LmhhbmRzb250YWJsZSwuY29sLXhzLTkuaGFu''@;'; + put 'put ''ZHNvbnRhYmxle3BhZGRpbmctbGVmdDowO3BhZGRpbmctcmlnaHQ6MH0uaGFuZHNvbnRhYmxlIC50YWJsZS1zdHJpcGVkPnRib2R5PnRyOm50aC1vZi10eXBlKGV2ZW4pe2JhY2tncm91bmQtY29sb3I6I2ZmZn0uaGFuZHNvbnRhYmxle3Bvc2l0aW9uOnJlbGF0aXZlfS5oYW5kc29udGFibGUg''@;'; + put 'put ''LmhpZGV7ZGlzcGxheTpub25lfS5oYW5kc29udGFibGUgLnJlbGF0aXZle3Bvc2l0aW9uOnJlbGF0aXZlfS5oYW5kc29udGFibGUgLnd0SGlkZXJ7d2lkdGg6MH0uaGFuZHNvbnRhYmxlIC53dFNwcmVhZGVye3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjA7aGVpZ2h0OmF1dG99LmhhbmRzb250''@;'; + put 'put ''YWJsZSB0YWJsZSwuaGFuZHNvbnRhYmxlIHRib2R5LC5oYW5kc29udGFibGUgdGhlYWQsLmhhbmRzb250YWJsZSB0ZCwuaGFuZHNvbnRhYmxlIHRoLC5oYW5kc29udGFibGUgaW5wdXQsLmhhbmRzb250YWJsZSB0ZXh0YXJlYSwuaGFuZHNvbnRhYmxlIGRpdntib3gtc2l6aW5nOmNvbnRlbnQt''@;'; + put 'put ''Ym94Oy13ZWJraXQtYm94LXNpemluZzpjb250ZW50LWJveDstbW96LWJveC1zaXppbmc6Y29udGVudC1ib3h9LmhhbmRzb250YWJsZSBpbnB1dCwuaGFuZHNvbnRhYmxlIHRleHRhcmVhe21pbi1oZWlnaHQ6aW5pdGlhbH0uaGFuZHNvbnRhYmxlIHRhYmxlLmh0Q29yZXtib3JkZXItY29sbGFw''@;'; + put 'put ''c2U6c2VwYXJhdGU7Ym9yZGVyLXNwYWNpbmc6MDttYXJnaW46MDtib3JkZXItd2lkdGg6MDt0YWJsZS1sYXlvdXQ6Zml4ZWQ7d2lkdGg6MDtvdXRsaW5lLXdpZHRoOjA7Y3Vyc29yOmRlZmF1bHQ7bWF4LXdpZHRoOm5vbmU7bWF4LWhlaWdodDpub25lfS5oYW5kc29udGFibGUgY29sLC5oYW5k''@;'; + put 'put ''c29udGFibGUgY29sLnJvd0hlYWRlcnt3aWR0aDo1MHB4fS5oYW5kc29udGFibGUgdGgsLmhhbmRzb250YWJsZSB0ZHtib3JkZXItdG9wLXdpZHRoOjA7Ym9yZGVyLWxlZnQtd2lkdGg6MDtib3JkZXItcmlnaHQ6MXB4IHNvbGlkICNjY2M7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI2NjYzto''@;'; + put 'put ''ZWlnaHQ6MjJweDtlbXB0eS1jZWxsczpzaG93O2xpbmUtaGVpZ2h0OjIxcHg7cGFkZGluZzowIDRweDtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7dmVydGljYWwtYWxpZ246dG9wO292ZXJmbG93OmhpZGRlbjtvdXRsaW5lLXdpZHRoOjA7d2hpdGUtc3BhY2U6cHJlLXdyYXB9W2Rpcj1ydGxdLmhh''@;'; + put 'put ''bmRzb250YWJsZSB0aCxbZGlyPXJ0bF0uaGFuZHNvbnRhYmxlIHRke2JvcmRlci1yaWdodC13aWR0aDowO2JvcmRlci1sZWZ0OjFweCBzb2xpZCAjY2NjfS5oYW5kc29udGFibGUgdGg6bGFzdC1jaGlsZHtib3JkZXItbGVmdDpub25lO2JvcmRlci1yaWdodDoxcHggc29saWQgI2NjYztib3Jk''@;'; + put 'put ''ZXItYm90dG9tOjFweCBzb2xpZCAjY2NjfVtkaXI9cnRsXS5oYW5kc29udGFibGUgdGg6bGFzdC1jaGlsZHtib3JkZXItcmlnaHQ6bm9uZTtib3JkZXItbGVmdDoxcHggc29saWQgI2NjY30uaGFuZHNvbnRhYmxlIHRoOmZpcnN0LWNoaWxkLC5oYW5kc29udGFibGUgdGg6bnRoLWNoaWxkKDIp''@;'; + put 'put ''LC5oYW5kc29udGFibGUgdGQ6Zmlyc3Qtb2YtdHlwZXtib3JkZXItbGVmdDoxcHggc29saWQgI2NjY31bZGlyPXJ0bF0uaGFuZHNvbnRhYmxlIHRoOmZpcnN0LWNoaWxkLFtkaXI9cnRsXS5oYW5kc29udGFibGUgdGg6bnRoLWNoaWxkKDIpLFtkaXI9cnRsXS5oYW5kc29udGFibGUgdGQ6Zmly''@;'; + put 'put ''c3Qtb2YtdHlwZXtib3JkZXItcmlnaHQ6MXB4IHNvbGlkICNjY2N9LmhhbmRzb250YWJsZSAuaHRfY2xvbmVfdG9wIHRoOm50aC1jaGlsZCgyKXtib3JkZXItbGVmdC13aWR0aDowO2JvcmRlci1yaWdodDoxcHggc29saWQgI2NjY31bZGlyPXJ0bF0uaGFuZHNvbnRhYmxlIC5odF9jbG9uZV90''@;'; + put 'put ''b3AgdGg6bnRoLWNoaWxkKDIpe2JvcmRlci1yaWdodC13aWR0aDowO2JvcmRlci1sZWZ0OjFweCBzb2xpZCAjY2NjfS5oYW5kc29udGFibGUuaHRSb3dIZWFkZXJzIHRoZWFkIHRyIHRoOm50aC1jaGlsZCgyKXtib3JkZXItbGVmdDoxcHggc29saWQgI2NjY31bZGlyPXJ0bF0uaGFuZHNvbnRh''@;'; + put 'put ''YmxlLmh0Um93SGVhZGVycyB0aGVhZCB0ciB0aDpudGgtY2hpbGQoMil7Ym9yZGVyLXJpZ2h0OjFweCBzb2xpZCAjY2NjfS5oYW5kc29udGFibGUgdHI6Zmlyc3QtY2hpbGQgdGgsLmhhbmRzb250YWJsZSB0cjpmaXJzdC1jaGlsZCB0ZHtib3JkZXItdG9wOjFweCBzb2xpZCAjY2NjfS5odF9t''@;'; + put 'put ''YXN0ZXI6bm90KC5pbm5lckJvcmRlcklubGluZVN0YXJ0KTpub3QoLmVtcHR5Q29sdW1ucyl+LmhhbmRzb250YWJsZSB0Ym9keSB0ciB0aCwuaHRfbWFzdGVyOm5vdCguaW5uZXJCb3JkZXJJbmxpbmVTdGFydCk6bm90KC5lbXB0eUNvbHVtbnMpfi5oYW5kc29udGFibGU6bm90KC5odF9jbG9u''@;'; + put 'put ''ZV90b3ApIHRoZWFkIHRyIHRoOmZpcnN0LWNoaWxke2JvcmRlci1yaWdodC13aWR0aDowO2JvcmRlci1sZWZ0OjFweCBzb2xpZCAjY2NjfVtkaXI9cnRsXS5odF9tYXN0ZXI6bm90KC5pbm5lckJvcmRlcklubGluZVN0YXJ0KTpub3QoLmVtcHR5Q29sdW1ucyl+LmhhbmRzb250YWJsZSB0Ym9k''@;'; + put 'put ''eSB0ciB0aCxbZGlyPXJ0bF0uaHRfbWFzdGVyOm5vdCguaW5uZXJCb3JkZXJJbmxpbmVTdGFydCk6bm90KC5lbXB0eUNvbHVtbnMpfi5oYW5kc29udGFibGU6bm90KC5odF9jbG9uZV90b3ApIHRoZWFkIHRyIHRoOmZpcnN0LWNoaWxke2JvcmRlci1sZWZ0LXdpZHRoOjA7Ym9yZGVyLXJpZ2h0''@;'; + put 'put ''OjFweCBzb2xpZCAjY2NjfS5odF9tYXN0ZXI6bm90KC5pbm5lckJvcmRlclRvcCk6bm90KC5pbm5lckJvcmRlckJvdHRvbSkgdGhlYWQgdHI6bGFzdC1jaGlsZCB0aCwuaHRfbWFzdGVyOm5vdCguaW5uZXJCb3JkZXJUb3ApOm5vdCguaW5uZXJCb3JkZXJCb3R0b20pfi5oYW5kc29udGFibGUg''@;'; + put 'put ''dGhlYWQgdHI6bGFzdC1jaGlsZCB0aCwuaHRfbWFzdGVyOm5vdCguaW5uZXJCb3JkZXJUb3ApOm5vdCguaW5uZXJCb3JkZXJCb3R0b20pIHRoZWFkIHRyLmxhc3RDaGlsZCB0aCwuaHRfbWFzdGVyOm5vdCguaW5uZXJCb3JkZXJUb3ApOm5vdCguaW5uZXJCb3JkZXJCb3R0b20pfi5oYW5kc29u''@;'; + put 'put ''dGFibGUgdGhlYWQgdHIubGFzdENoaWxkIHRoe2JvcmRlci1ib3R0b20td2lkdGg6MH0uaGFuZHNvbnRhYmxlIHRoe2JhY2tncm91bmQtY29sb3I6I2YwZjBmMDtjb2xvcjojMjIyO3RleHQtYWxpZ246Y2VudGVyO2ZvbnQtd2VpZ2h0OjQwMDt3aGl0ZS1zcGFjZTpub3dyYXB9LmhhbmRzb250''@;'; + put 'put ''YWJsZSB0aGVhZCB0aHtwYWRkaW5nOjB9LmhhbmRzb250YWJsZSB0aC5hY3RpdmV7YmFja2dyb3VuZC1jb2xvcjojY2NjfS5oYW5kc29udGFibGUgdGhlYWQgdGggLnJlbGF0aXZle3BhZGRpbmc6MnB4IDRweH0uaGFuZHNvbnRhYmxlIHNwYW4uY29sSGVhZGVye2Rpc3BsYXk6aW5saW5lLWJs''@;'; + put 'put ''b2NrO2xpbmUtaGVpZ2h0OjEuMX0uaGFuZHNvbnRhYmxlIC53dEJvcmRlcntwb3NpdGlvbjphYnNvbHV0ZTtmb250LXNpemU6MH0uaGFuZHNvbnRhYmxlIC53dEJvcmRlci5oaWRkZW57ZGlzcGxheTpub25lIWltcG9ydGFudH0uaGFuZHNvbnRhYmxlIC53dEJvcmRlci5jdXJyZW50e3otaW5k''@;'; + put 'put ''ZXg6MTB9LmhhbmRzb250YWJsZSAud3RCb3JkZXIuYXJlYXt6LWluZGV4Ojh9LmhhbmRzb250YWJsZSAud3RCb3JkZXIuZmlsbHt6LWluZGV4OjZ9LmhhbmRzb250YWJsZSAud3RCb3JkZXIuY29ybmVye2ZvbnQtc2l6ZTowO2N1cnNvcjpjcm9zc2hhaXJ9Lmh0X2Nsb25lX21hc3Rlcnt6LWlu''@;'; + put 'put ''ZGV4OjEwMH0uaHRfY2xvbmVfaW5saW5lX3N0YXJ0e3otaW5kZXg6MTIwfS5odF9jbG9uZV9ib3R0b217ei1pbmRleDoxMzB9Lmh0X2Nsb25lX2JvdHRvbV9pbmxpbmVfc3RhcnRfY29ybmVye3otaW5kZXg6MTUwfS5odF9jbG9uZV90b3B7ei1pbmRleDoxNjB9Lmh0X2Nsb25lX3RvcF9pbmxp''@;'; + put 'put ''bmVfc3RhcnRfY29ybmVye3otaW5kZXg6MTgwfS5oYW5kc29udGFibGUgY29sLmhpZGRlbnt3aWR0aDowIWltcG9ydGFudH0uaGFuZHNvbnRhYmxlIHRyLmhpZGRlbiwuaGFuZHNvbnRhYmxlIHRyLmhpZGRlbiB0ZCwuaGFuZHNvbnRhYmxlIHRyLmhpZGRlbiB0aHtkaXNwbGF5Om5vbmV9Lmh0''@;'; + put 'put ''X21hc3RlciwuaHRfY2xvbmVfaW5saW5lX3N0YXJ0LC5odF9jbG9uZV90b3AsLmh0X2Nsb25lX2JvdHRvbXtvdmVyZmxvdzpoaWRkZW59Lmh0X21hc3RlciAud3RIb2xkZXJ7b3ZlcmZsb3c6YXV0b30uaGFuZHNvbnRhYmxlIC5odF9tYXN0ZXIgdGhlYWQsLmhhbmRzb250YWJsZSAuaHRfbWFz''@;'; + put 'put ''dGVyIHRyIHRoLC5oYW5kc29udGFibGUgLmh0X2Nsb25lX2lubGluZV9zdGFydCB0aGVhZHt2aXNpYmlsaXR5OmhpZGRlbn0uaHRfY2xvbmVfdG9wIC53dEhvbGRlciwuaHRfY2xvbmVfaW5saW5lX3N0YXJ0IC53dEhvbGRlciwuaHRfY2xvbmVfYm90dG9tIC53dEhvbGRlcntvdmVyZmxvdzpo''@;'; + put 'put ''aWRkZW59LmhhbmRzb250YWJsZXt0b3VjaC1hY3Rpb246bWFuaXB1bGF0aW9uO2ZvbnQtZmFtaWx5Oi1hcHBsZS1zeXN0ZW0sQmxpbmtNYWNTeXN0ZW1Gb250LFNlZ29lIFVJLFJvYm90byxPeHlnZW4sVWJ1bnR1LEhlbHZldGljYSBOZXVlLEFyaWFsLHNhbnMtc2VyaWY7Zm9udC1zaXplOjEz''@;'; + put 'put ''cHg7Zm9udC13ZWlnaHQ6NDAwO2NvbG9yOiMzNzM3Mzd9LmhhbmRzb250YWJsZSBhe2NvbG9yOiMxMDRhY2N9LmhhbmRzb250YWJsZS5odEF1dG9TaXple3Zpc2liaWxpdHk6aGlkZGVuO2xlZnQ6LTk5MDAwcHg7cG9zaXRpb246YWJzb2x1dGU7dG9wOi05OTAwMHB4fS5oYW5kc29udGFibGUg''@;'; + put 'put ''dGQuaHRJbnZhbGlke2JhY2tncm91bmQtY29sb3I6I2ZmNGM0MiFpbXBvcnRhbnR9LmhhbmRzb250YWJsZSB0ZC5odE5vV3JhcHt3aGl0ZS1zcGFjZTpub3dyYXB9I2hvdC1kaXNwbGF5LWxpY2Vuc2UtaW5mb3tmb250LWZhbWlseTotYXBwbGUtc3lzdGVtLEJsaW5rTWFjU3lzdGVtRm9udCxT''@;'; + put 'put ''ZWdvZSBVSSxSb2JvdG8sT3h5Z2VuLFVidW50dSxIZWx2ZXRpY2EgTmV1ZSxBcmlhbCxzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMHB4O2ZvbnQtd2VpZ2h0OjQwMDtjb2xvcjojMzczNzM3O3BhZGRpbmc6NXB4IDAgM3B4O3RleHQtYWxpZ246bGVmdH0jaG90LWRpc3BsYXktbGljZW5zZS1pbmZv''@;'; + put 'put ''IGF7Y29sb3I6IzEwNGFjYztmb250LXNpemU6MTBweH0uaGFuZHNvbnRhYmxlIC5tYW51YWxDb2x1bW5SZXNpemVye3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2N1cnNvcjpjb2wtcmVzaXplO3otaW5kZXg6MjEwO3dpZHRoOjVweDtoZWlnaHQ6MjVweH0uaGFuZHNvbnRhYmxlIC5tYW51YWxS''@;'; + put 'put ''b3dSZXNpemVye3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDtjdXJzb3I6cm93LXJlc2l6ZTt6LWluZGV4OjIxMDtoZWlnaHQ6NXB4O3dpZHRoOjUwcHh9LmhhbmRzb250YWJsZSAubWFudWFsQ29sdW1uUmVzaXplcjpob3ZlciwuaGFuZHNvbnRhYmxlIC5tYW51YWxDb2x1bW5SZXNpemVyLmFj''@;'; + put 'put ''dGl2ZSwuaGFuZHNvbnRhYmxlIC5tYW51YWxSb3dSZXNpemVyOmhvdmVyLC5oYW5kc29udGFibGUgLm1hbnVhbFJvd1Jlc2l6ZXIuYWN0aXZle2JhY2tncm91bmQtY29sb3I6IzM0YTlkYn0uaGFuZHNvbnRhYmxlIC5tYW51YWxDb2x1bW5SZXNpemVyR3VpZGV7cG9zaXRpb246YWJzb2x1dGU7''@;'; + put 'put ''cmlnaHQ6dW5zZXQ7dG9wOjA7YmFja2dyb3VuZC1jb2xvcjojMzRhOWRiO2Rpc3BsYXk6bm9uZTt3aWR0aDowO2JvcmRlci1yaWdodDoxcHggZGFzaGVkICM3Nzc7Ym9yZGVyLWxlZnQ6bm9uZTttYXJnaW4tbGVmdDo1cHg7bWFyZ2luLXJpZ2h0OnVuc2V0fVtkaXI9cnRsXS5oYW5kc29udGFi''@;'; + put 'put ''bGUgLm1hbnVhbENvbHVtblJlc2l6ZXJHdWlkZXtsZWZ0OnVuc2V0O2JvcmRlci1sZWZ0OjFweCBkYXNoZWQgIzc3Nztib3JkZXItcmlnaHQ6bm9uZTttYXJnaW4tcmlnaHQ6NXB4O21hcmdpbi1sZWZ0OnVuc2V0fS5oYW5kc29udGFibGUgLm1hbnVhbFJvd1Jlc2l6ZXJHdWlkZXtwb3NpdGlv''@;'; + put 'put ''bjphYnNvbHV0ZTtsZWZ0OjA7Ym90dG9tOjA7YmFja2dyb3VuZC1jb2xvcjojMzRhOWRiO2Rpc3BsYXk6bm9uZTtoZWlnaHQ6MDtib3JkZXItYm90dG9tOjFweCBkYXNoZWQgIzc3NzttYXJnaW4tdG9wOjVweH0uaGFuZHNvbnRhYmxlIC5tYW51YWxDb2x1bW5SZXNpemVyR3VpZGUuYWN0aXZl''@;'; + put 'put ''LC5oYW5kc29udGFibGUgLm1hbnVhbFJvd1Jlc2l6ZXJHdWlkZS5hY3RpdmV7ZGlzcGxheTpibG9jazt6LWluZGV4OjIwOX0uaGFuZHNvbnRhYmxlIC5jb2x1bW5Tb3J0aW5ne3Bvc2l0aW9uOnJlbGF0aXZlfS5oYW5kc29udGFibGUgLmNvbHVtblNvcnRpbmcuc29ydEFjdGlvbjpob3Zlcnt0''@;'; + put 'put ''ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO2N1cnNvcjpwb2ludGVyfS5oYW5kc29udGFibGUgc3Bhbi5jb2xIZWFkZXIuY29sdW1uU29ydGluZzpiZWZvcmV7dG9wOjUwJTttYXJnaW4tdG9wOi02cHg7cGFkZGluZy1sZWZ0OjhweDtwYWRkaW5nLXJpZ2h0OjA7cG9zaXRpb246YWJzb2x1dGU7''@;'; + put 'put ''cmlnaHQ6LTlweDtsZWZ0OnVuc2V0O2NvbnRlbnQ6IiI7aGVpZ2h0OjEwcHg7d2lkdGg6NXB4O2JhY2tncm91bmQtc2l6ZTpjb250YWluO2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDtiYWNrZ3JvdW5kLXBvc2l0aW9uLXg6cmlnaHR9W2Rpcj1ydGxdLmhhbmRzb250YWJsZSBzcGFuLmNv''@;'; + put 'put ''bEhlYWRlci5jb2x1bW5Tb3J0aW5nOmJlZm9yZXtwYWRkaW5nLXJpZ2h0OjhweDtwYWRkaW5nLWxlZnQ6MDtsZWZ0Oi05cHg7cmlnaHQ6dW5zZXQ7YmFja2dyb3VuZC1wb3NpdGlvbi14OmxlZnR9LmhhbmRzb250YWJsZSBzcGFuLmNvbEhlYWRlci5jb2x1bW5Tb3J0aW5nLmFzY2VuZGluZzpi''@;'; + put 'put ''ZWZvcmV7YmFja2dyb3VuZC1pbWFnZTp1cmwoZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFCUUFBQUFvQ0FNQUFBREo3eXJwQUFBQUtsQk1WRVVBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUtFODZJ''@;'; + put 'put ''QUFBQURYUlNUbE1BQkJFbVJHcHJsSlc3MmU3N3RUa1RLd0FBQUZOSlJFRlVlQUh0emprU2dDQVVCTkhQZ3NveTk3K3VsR1hScUpFNUwreGt4b1l0MlVkc0xiNWJxRklOeithTHV1TG41ckl1MlJrTzNmWnBXRU5pbU5naXc2aUJZUlRQTUxKakdGeFFaMWh4eGIveEJJMXFDOGszOUNkS0FBQUFB''@;'; + put 'put ''RWxGVGtTdVFtQ0MpfS5oYW5kc29udGFibGUgc3Bhbi5jb2xIZWFkZXIuY29sdW1uU29ydGluZy5kZXNjZW5kaW5nOmJlZm9yZXtiYWNrZ3JvdW5kLWltYWdlOnVybChkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJRQUFBQW9DQU1BQUFESjd5cnBBQUFB''@;'; + put 'put ''S2xCTVZFVUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBS0U4NklBQUFBRFhSU1RsTUFCQkVtUkdwcmxKVzcyZTc3dFRrVEt3QUFBRkpKUkVGVWVBSHR6amtTZ0NBUVJORm1RWVVaN245ZEtVdnJ1MFRtdlBBbjNicjBRZmdkWjV4eDZ4K3JR''@;'; + put 'put ''bjIzR3FUWW5xMUZEY251elpJTzJXbWVkVnFJUlZ4Z0dLRXlqTmdZUmpLR2taMWhGSVozSTcwTHlNMFZ0VThBQUFBQVNVVk9SSzVDWUlJPSl9Lmh0R2hvc3RUYWJsZSAuaHRDb3JlIHNwYW4uY29sSGVhZGVyLmNvbHVtblNvcnRpbmc6bm90KC5pbmRpY2F0b3JEaXNhYmxlZCk6YWZ0ZXJ7Y29u''@;'; + put 'put ''dGVudDoiKiI7ZGlzcGxheTppbmxpbmUtYmxvY2s7cG9zaXRpb246cmVsYXRpdmU7cGFkZGluZy1yaWdodDoyMHB4fS5oYW5kc29udGFibGUgdGQuYXJlYSwuaGFuZHNvbnRhYmxlIHRkLmFyZWEtMSwuaGFuZHNvbnRhYmxlIHRkLmFyZWEtMiwuaGFuZHNvbnRhYmxlIHRkLmFyZWEtMywuaGFu''@;'; + put 'put ''ZHNvbnRhYmxlIHRkLmFyZWEtNCwuaGFuZHNvbnRhYmxlIHRkLmFyZWEtNSwuaGFuZHNvbnRhYmxlIHRkLmFyZWEtNiwuaGFuZHNvbnRhYmxlIHRkLmFyZWEtN3twb3NpdGlvbjpyZWxhdGl2ZX0uaGFuZHNvbnRhYmxlIHRkLmFyZWE6YmVmb3JlLC5oYW5kc29udGFibGUgdGQuYXJlYS0xOmJl''@;'; + put 'put ''Zm9yZSwuaGFuZHNvbnRhYmxlIHRkLmFyZWEtMjpiZWZvcmUsLmhhbmRzb250YWJsZSB0ZC5hcmVhLTM6YmVmb3JlLC5oYW5kc29udGFibGUgdGQuYXJlYS00OmJlZm9yZSwuaGFuZHNvbnRhYmxlIHRkLmFyZWEtNTpiZWZvcmUsLmhhbmRzb250YWJsZSB0ZC5hcmVhLTY6YmVmb3JlLC5oYW5k''@;'; + put 'put ''c29udGFibGUgdGQuYXJlYS03OmJlZm9yZXtjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDtyaWdodDowO2JvdHRvbTowO2JvdHRvbTotMTAwJSBcCTtiYWNrZ3JvdW5kOiMwMDVlZmZ9QG1lZGlhIHNjcmVlbiBhbmQgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUp''@;'; + put 'put ''LCgtbXMtaGlnaC1jb250cmFzdDogbm9uZSl7LmhhbmRzb250YWJsZSB0ZC5hcmVhOmJlZm9yZSwuaGFuZHNvbnRhYmxlIHRkLmFyZWEtMTpiZWZvcmUsLmhhbmRzb250YWJsZSB0ZC5hcmVhLTI6YmVmb3JlLC5oYW5kc29udGFibGUgdGQuYXJlYS0zOmJlZm9yZSwuaGFuZHNvbnRhYmxlIHRk''@;'; + put 'put ''LmFyZWEtNDpiZWZvcmUsLmhhbmRzb250YWJsZSB0ZC5hcmVhLTU6YmVmb3JlLC5oYW5kc29udGFibGUgdGQuYXJlYS02OmJlZm9yZSwuaGFuZHNvbnRhYmxlIHRkLmFyZWEtNzpiZWZvcmV7Ym90dG9tOi0xMDAlfX0uaGFuZHNvbnRhYmxlIHRkLmFyZWE6YmVmb3Jle29wYWNpdHk6LjF9Lmhh''@;'; + put 'put ''bmRzb250YWJsZSB0ZC5hcmVhLTE6YmVmb3Jle29wYWNpdHk6LjJ9LmhhbmRzb250YWJsZSB0ZC5hcmVhLTI6YmVmb3Jle29wYWNpdHk6LjI3fS5oYW5kc29udGFibGUgdGQuYXJlYS0zOmJlZm9yZXtvcGFjaXR5Oi4zNX0uaGFuZHNvbnRhYmxlIHRkLmFyZWEtNDpiZWZvcmV7b3BhY2l0eTou''@;'; + put 'put ''NDF9LmhhbmRzb250YWJsZSB0ZC5hcmVhLTU6YmVmb3Jle29wYWNpdHk6LjQ3fS5oYW5kc29udGFibGUgdGQuYXJlYS02OmJlZm9yZXtvcGFjaXR5Oi41NH0uaGFuZHNvbnRhYmxlIHRkLmFyZWEtNzpiZWZvcmV7b3BhY2l0eTouNTh9LmhhbmRzb250YWJsZSB0Ym9keSB0aC5odF9faGlnaGxp''@;'; + put 'put ''Z2h0LC5oYW5kc29udGFibGUgdGhlYWQgdGguaHRfX2hpZ2hsaWdodHtiYWNrZ3JvdW5kLWNvbG9yOiNkY2RjZGN9LmhhbmRzb250YWJsZSB0Ym9keSB0aC5odF9fYWN0aXZlX2hpZ2hsaWdodCwuaGFuZHNvbnRhYmxlIHRoZWFkIHRoLmh0X19hY3RpdmVfaGlnaGxpZ2h0e2JhY2tncm91bmQt''@;'; + put 'put ''Y29sb3I6IzhlYjBlNztjb2xvcjojMDAwfS5oYW5kc29udGFibGVJbnB1dHtib3JkZXI6bm9uZTtvdXRsaW5lLXdpZHRoOjA7bWFyZ2luOjA7cGFkZGluZzoxcHggNXB4IDA7Zm9udC1mYW1pbHk6aW5oZXJpdDtsaW5lLWhlaWdodDoyMXB4O2ZvbnQtc2l6ZTppbmhlcml0O2JveC1zaGFkb3c6''@;'; + put 'put ''MCAwIDAgMnB4ICM1MjkyZjcgaW5zZXQ7cmVzaXplOm5vbmU7ZGlzcGxheTpibG9jaztjb2xvcjojMDAwO2JvcmRlci1yYWRpdXM6MDtiYWNrZ3JvdW5kLWNvbG9yOiNmZmZ9LmhhbmRzb250YWJsZUlucHV0OmZvY3Vze291dGxpbmU6bm9uZX0uaGFuZHNvbnRhYmxlSW5wdXRIb2xkZXJ7cG9z''@;'; + put 'put ''aXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowfS5odFNlbGVjdEVkaXRvcnstd2Via2l0LWFwcGVhcmFuY2U6bWVudWxpc3QtYnV0dG9uIWltcG9ydGFudDtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDphdXRvfS5odFNlbGVjdEVkaXRvcjpmb2N1c3tvdXRsaW5lOm5vbmV9LmhhbmRzb250YWJs''@;'; + put 'put ''ZSAuaHREaW1tZWR7Y29sb3I6Izc3N30uaGFuZHNvbnRhYmxlIC5odFN1Ym1lbnV7cG9zaXRpb246cmVsYXRpdmV9LmhhbmRzb250YWJsZSAuaHRTdWJtZW51IDphZnRlcntjb250ZW50OiJcMjViNiI7Y29sb3I6Izc3Nztwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDo1cHg7Zm9udC1zaXplOjlw''@;'; + put 'put ''eH1bZGlyPXJ0bF0uaGFuZHNvbnRhYmxlIC5odFN1Ym1lbnUgOmFmdGVye2NvbnRlbnQ6IiJ9W2Rpcj1ydGxdLmhhbmRzb250YWJsZSAuaHRTdWJtZW51IDpiZWZvcmV7Y29udGVudDoiXDI1YzAiO2NvbG9yOiM3Nzc7cG9zaXRpb246YWJzb2x1dGU7bGVmdDo1cHg7Zm9udC1zaXplOjlweH0u''@;'; + put 'put ''aGFuZHNvbnRhYmxlIC5odExlZnR7dGV4dC1hbGlnbjpsZWZ0fS5oYW5kc29udGFibGUgLmh0Q2VudGVye3RleHQtYWxpZ246Y2VudGVyfS5oYW5kc29udGFibGUgLmh0UmlnaHR7dGV4dC1hbGlnbjpyaWdodH0uaGFuZHNvbnRhYmxlIC5odEp1c3RpZnl7dGV4dC1hbGlnbjpqdXN0aWZ5fS5o''@;'; + put 'put ''YW5kc29udGFibGUgLmh0VG9we3ZlcnRpY2FsLWFsaWduOnRvcH0uaGFuZHNvbnRhYmxlIC5odE1pZGRsZXt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9LmhhbmRzb250YWJsZSAuaHRCb3R0b217dmVydGljYWwtYWxpZ246Ym90dG9tfS5oYW5kc29udGFibGUgLmh0UGxhY2Vob2xkZXJ7Y29sb3I6''@;'; + put 'put ''Izk5OX0uaGFuZHNvbnRhYmxlLmxpc3Rib3h7bWFyZ2luOjB9LmhhbmRzb250YWJsZS5saXN0Ym94IC5odF9tYXN0ZXIgdGFibGV7Ym9yZGVyOjFweCBzb2xpZCAjY2NjO2JvcmRlci1jb2xsYXBzZTpzZXBhcmF0ZTtiYWNrZ3JvdW5kOndoaXRlfS5oYW5kc29udGFibGUubGlzdGJveCB0aCwu''@;'; + put 'put ''aGFuZHNvbnRhYmxlLmxpc3Rib3ggdHI6Zmlyc3QtY2hpbGQgdGgsLmhhbmRzb250YWJsZS5saXN0Ym94IHRyOmxhc3QtY2hpbGQgdGgsLmhhbmRzb250YWJsZS5saXN0Ym94IHRyOmZpcnN0LWNoaWxkIHRkLC5oYW5kc29udGFibGUubGlzdGJveCB0ZHtib3JkZXItY29sb3I6dHJhbnNwYXJl''@;'; + put 'put ''bnQhaW1wb3J0YW50fS5oYW5kc29udGFibGUubGlzdGJveCB0aCwuaGFuZHNvbnRhYmxlLmxpc3Rib3ggdGR7d2hpdGUtc3BhY2U6bm93cmFwO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXN9LmhhbmRzb250YWJsZS5saXN0Ym94IHRkLmh0RGltbWVke2N1cnNvcjpkZWZhdWx0O2NvbG9yOmluaGVy''@;'; + put 'put ''aXQ7Zm9udC1zdHlsZTppbmhlcml0fS5oYW5kc29udGFibGUubGlzdGJveCAud3RCb3JkZXJ7dmlzaWJpbGl0eTpoaWRkZW59LmhhbmRzb250YWJsZS5saXN0Ym94IHRyIHRkLmN1cnJlbnQsLmhhbmRzb250YWJsZS5saXN0Ym94IHRyOmhvdmVyIHRke2JhY2tncm91bmQ6I2VlZX0uaHRfZWRp''@;'; + put 'put ''dG9yX2hpZGRlbnt6LWluZGV4Oi0xfS5odF9lZGl0b3JfdmlzaWJsZXt6LWluZGV4OjIwMH0uaGFuZHNvbnRhYmxlIHRkLmh0U2VhcmNoUmVzdWx0e2JhY2tncm91bmQ6I2ZjZWRkOTtjb2xvcjojNTgzNzA3fS5oYW5kc29udGFibGUgLmNvbGxhcHNpYmxlSW5kaWNhdG9ye3Bvc2l0aW9uOmFi''@;'; + put 'put ''c29sdXRlO3RvcDo1MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSk7bGVmdDp1bnNldDtyaWdodDo1cHg7Ym9yZGVyOjFweCBzb2xpZCAjQTZBNkE2O2xpbmUtaGVpZ2h0OjhweDtjb2xvcjojMjIyO2JvcmRlci1yYWRpdXM6MTBweDtmb250LXNpemU6MTBweDt3aWR0aDoxMHB4O2hlaWdo''@;'; + put 'put ''dDoxMHB4O2N1cnNvcjpwb2ludGVyO2JveC1zaGFkb3c6MCAwIDAgNnB4ICNlZWU7YmFja2dyb3VuZDojZWVlO3RleHQtYWxpZ246Y2VudGVyfVtkaXI9cnRsXS5oYW5kc29udGFibGUgLmNvbGxhcHNpYmxlSW5kaWNhdG9ye3JpZ2h0OnVuc2V0O2xlZnQ6NXB4fS5oYW5kc29udGFibGUubW9i''@;'; + put 'put ''aWxlLC5oYW5kc29udGFibGUubW9iaWxlIC53dEhvbGRlcnstd2Via2l0LXRvdWNoLWNhbGxvdXQ6bm9uZTstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZTstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6cmdiYSgwLDAsMCwwKTstd2Via2l0LW92ZXJmbG93LXNj''@;'; + put 'put ''cm9sbGluZzp0b3VjaH0uaGFuZHNvbnRhYmxlLm1vYmlsZSAuaGFuZHNvbnRhYmxlSW5wdXQ6Zm9jdXN7Ym94LXNoYWRvdzowIDAgMCAycHggIzUyOTJmNyBpbnNldDstd2Via2l0LWFwcGVhcmFuY2U6bm9uZX0udG9wU2VsZWN0aW9uSGFuZGxlOm5vdCguaHRfbWFzdGVyIC50b3BTZWxlY3Rp''@;'; + put 'put ''b25IYW5kbGUpLC50b3BTZWxlY3Rpb25IYW5kbGUtSGl0QXJlYTpub3QoLmh0X21hc3RlciAudG9wU2VsZWN0aW9uSGFuZGxlLUhpdEFyZWEpe3otaW5kZXg6OTk5OX0uaGFuZHNvbnRhYmxlIC50b3BTZWxlY3Rpb25IYW5kbGUsLmhhbmRzb250YWJsZSAudG9wU2VsZWN0aW9uSGFuZGxlLUhp''@;'; + put 'put ''dEFyZWEsLmhhbmRzb250YWJsZSAuYm90dG9tU2VsZWN0aW9uSGFuZGxlLC5oYW5kc29udGFibGUgLmJvdHRvbVNlbGVjdGlvbkhhbmRsZS1IaXRBcmVhe2xlZnQ6LTEwMDAwcHg7cmlnaHQ6dW5zZXQ7dG9wOi0xMDAwMHB4fVtkaXI9cnRsXS5oYW5kc29udGFibGUgLnRvcFNlbGVjdGlvbkhh''@;'; + put 'put ''bmRsZSxbZGlyPXJ0bF0uaGFuZHNvbnRhYmxlIC50b3BTZWxlY3Rpb25IYW5kbGUtSGl0QXJlYSxbZGlyPXJ0bF0uaGFuZHNvbnRhYmxlIC5ib3R0b21TZWxlY3Rpb25IYW5kbGUsW2Rpcj1ydGxdLmhhbmRzb250YWJsZSAuYm90dG9tU2VsZWN0aW9uSGFuZGxlLUhpdEFyZWF7cmlnaHQ6LTEw''@;'; + put 'put ''MDAwcHg7bGVmdDp1bnNldH0uaGFuZHNvbnRhYmxlLmhpZGUtdHdlZW57YW5pbWF0aW9uOm9wYWNpdHktaGlkZSAuM3M7YW5pbWF0aW9uLWZpbGwtbW9kZTpmb3J3YXJkczstd2Via2l0LWFuaW1hdGlvbi1maWxsLW1vZGU6Zm9yd2FyZHN9LmhhbmRzb250YWJsZS5zaG93LXR3ZWVue2FuaW1h''@;'; + put 'put ''dGlvbjpvcGFjaXR5LXNob3cgLjNzO2FuaW1hdGlvbi1maWxsLW1vZGU6Zm9yd2FyZHM7LXdlYmtpdC1hbmltYXRpb24tZmlsbC1tb2RlOmZvcndhcmRzfS8qIQogKiBQaWthZGF5CiAqIENvcHlyaWdodCDCqSAyMDE0IERhdmlkIEJ1c2hlbGwgfCBCU0QgJiBNSVQgbGljZW5zZSB8IGh0dHBz''@;'; + put 'put ''Oi8vZGJ1c2hlbGwuY29tLwogKi8ucGlrYS1zaW5nbGV7ei1pbmRleDo5OTk5O2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246cmVsYXRpdmU7Y29sb3I6IzMzMztiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCAjY2NjO2JvcmRlci1ib3R0b20tY29sb3I6I2JiYjtmb250LWZhbWlseTpI''@;'; + put 'put ''ZWx2ZXRpY2EgTmV1ZSxIZWx2ZXRpY2EsQXJpYWwsc2Fucy1zZXJpZn0ucGlrYS1zaW5nbGU6YmVmb3JlLC5waWthLXNpbmdsZTphZnRlcntjb250ZW50OiIgIjtkaXNwbGF5OnRhYmxlfS5waWthLXNpbmdsZTphZnRlcntjbGVhcjpib3RofS5waWthLXNpbmdsZS5pcy1oaWRkZW57ZGlzcGxh''@;'; + put 'put ''eTpub25lfS5waWthLXNpbmdsZS5pcy1ib3VuZHtwb3NpdGlvbjphYnNvbHV0ZTtib3gtc2hhZG93OjAgNXB4IDE1cHggLTVweCAjMDAwMDAwODB9LnBpa2EtbGVuZGFye2Zsb2F0OmxlZnQ7d2lkdGg6MjQwcHg7bWFyZ2luOjhweH0ucGlrYS10aXRsZXtwb3NpdGlvbjpyZWxhdGl2ZTt0ZXh0''@;'; + put 'put ''LWFsaWduOmNlbnRlcn0ucGlrYS1sYWJlbHtkaXNwbGF5OmlubGluZS1ibG9jaztwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4Ojk5OTk7b3ZlcmZsb3c6aGlkZGVuO21hcmdpbjowO3BhZGRpbmc6NXB4IDNweDtmb250LXNpemU6MTRweDtsaW5lLWhlaWdodDoyMHB4O2ZvbnQtd2VpZ2h0Ojcw''@;'; + put 'put ''MDtiYWNrZ3JvdW5kLWNvbG9yOiNmZmZ9LnBpa2EtdGl0bGUgc2VsZWN0e2N1cnNvcjpwb2ludGVyO3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6OTk5ODttYXJnaW46MDtsZWZ0OjA7dG9wOjVweDtvcGFjaXR5OjB9LnBpa2EtcHJldiwucGlrYS1uZXh0e2Rpc3BsYXk6YmxvY2s7Y3Vyc29y''@;'; + put 'put ''OnBvaW50ZXI7cG9zaXRpb246cmVsYXRpdmU7b3V0bGluZTpub25lO2JvcmRlcjowO3BhZGRpbmc6MDt3aWR0aDoyMHB4O2hlaWdodDozMHB4O3RleHQtaW5kZW50OjIwcHg7d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2Jh''@;'; + put 'put ''Y2tncm91bmQtcG9zaXRpb246Y2VudGVyIGNlbnRlcjtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7YmFja2dyb3VuZC1zaXplOjc1JSA3NSU7b3BhY2l0eTouNX0ucGlrYS1wcmV2OmhvdmVyLC5waWthLW5leHQ6aG92ZXJ7b3BhY2l0eToxfS5waWthLXByZXYsLmlzLXJ0bCAucGlrYS1u''@;'; + put 'put ''ZXh0e2Zsb2F0OmxlZnQ7YmFja2dyb3VuZC1pbWFnZTp1cmwoZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFCUUFBQUFlQ0FZQUFBQXNFajVyQUFBQVVrbEVRVlI0MnUzVk1Rb0FJQkFEUWY4UGdqK09EOWhHMkN0T05KQjJ5bVFrS2UwSGJ3QVAweHVjRGlR''@;'; + put 'put ''V0FSSVRJREVCRW5NZ01ROFM4K0FxQklsNmtLZ0hpWHFRcUFlSmVwQm8vejM4Si9VMHVBSGxhQmtCbDlJNEd3QUFBQUJKUlU1RXJrSmdnZz09KX0ucGlrYS1uZXh0LC5pcy1ydGwgLnBpa2EtcHJldntmbG9hdDpyaWdodDtiYWNrZ3JvdW5kLWltYWdlOnVybChkYXRhOmltYWdlL3BuZztiYXNl''@;'; + put 'put ''NjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJRQUFBQWVDQVlBQUFBc0VqNXJBQUFBVTBsRVFWUjQydTNWT3dvQU1BZ0UwZHdmQW5OalUyNmJZa0JDRkd3ZmlMOVZWV29PK0JKNEdmM2d0c0VLS29GQk5UQ29DQVlWd2FBaUdOUUdNVUhNa2pHYmdqazJtSU9OdVhvMG5DOFhuQ2YxSlhnQXJW''@;'; + put 'put ''SVpBUWg1VEtZQUFBQUFTVVZPUks1Q1lJST0pfS5waWthLXByZXYuaXMtZGlzYWJsZWQsLnBpa2EtbmV4dC5pcy1kaXNhYmxlZHtjdXJzb3I6ZGVmYXVsdDtvcGFjaXR5Oi4yfS5waWthLXNlbGVjdHtkaXNwbGF5OmlubGluZS1ibG9ja30ucGlrYS10YWJsZXt3aWR0aDoxMDAlO2JvcmRlci1j''@;'; + put 'put ''b2xsYXBzZTpjb2xsYXBzZTtib3JkZXItc3BhY2luZzowO2JvcmRlcjowfS5waWthLXRhYmxlIHRoLC5waWthLXRhYmxlIHRke3dpZHRoOjE0LjI4NTcxNDI4NTclO3BhZGRpbmc6MH0ucGlrYS10YWJsZSB0aHtjb2xvcjojOTk5O2ZvbnQtc2l6ZToxMnB4O2xpbmUtaGVpZ2h0OjI1cHg7Zm9u''@;'; + put 'put ''dC13ZWlnaHQ6NzAwO3RleHQtYWxpZ246Y2VudGVyfS5waWthLWJ1dHRvbntjdXJzb3I6cG9pbnRlcjtkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveDstbW96LWJveC1zaXppbmc6Ym9yZGVyLWJveDtvdXRsaW5lOm5vbmU7Ym9yZGVyOjA7bWFyZ2luOjA7d2lkdGg6MTAwJTtw''@;'; + put 'put ''YWRkaW5nOjVweDtjb2xvcjojNjY2O2ZvbnQtc2l6ZToxMnB4O2xpbmUtaGVpZ2h0OjE1cHg7dGV4dC1hbGlnbjpyaWdodDtiYWNrZ3JvdW5kOiNmNWY1ZjU7aGVpZ2h0OmluaXRpYWx9LnBpa2Etd2Vla3tmb250LXNpemU6MTFweDtjb2xvcjojOTk5fS5pcy10b2RheSAucGlrYS1idXR0b257''@;'; + put 'put ''Y29sb3I6IzNhZjtmb250LXdlaWdodDo3MDB9LmlzLXNlbGVjdGVkIC5waWthLWJ1dHRvbiwuaGFzLWV2ZW50IC5waWthLWJ1dHRvbntjb2xvcjojZmZmO2ZvbnQtd2VpZ2h0OjcwMDtiYWNrZ3JvdW5kOiMzM2FhZmY7Ym94LXNoYWRvdzppbnNldCAwIDFweCAzcHggIzE3OGZlNTtib3JkZXIt''@;'; + put 'put ''cmFkaXVzOjNweH0uaGFzLWV2ZW50IC5waWthLWJ1dHRvbntiYWNrZ3JvdW5kOiMwMDVkYTk7Ym94LXNoYWRvdzppbnNldCAwIDFweCAzcHggIzAwNzZjOX0uaXMtZGlzYWJsZWQgLnBpa2EtYnV0dG9uLC5pcy1pbnJhbmdlIC5waWthLWJ1dHRvbntiYWNrZ3JvdW5kOiNENUU5Rjd9LmlzLXN0''@;'; + put 'put ''YXJ0cmFuZ2UgLnBpa2EtYnV0dG9ue2NvbG9yOiNmZmY7YmFja2dyb3VuZDojNkNCMzFEO2JveC1zaGFkb3c6bm9uZTtib3JkZXItcmFkaXVzOjNweH0uaXMtZW5kcmFuZ2UgLnBpa2EtYnV0dG9ue2NvbG9yOiNmZmY7YmFja2dyb3VuZDojMzNhYWZmO2JveC1zaGFkb3c6bm9uZTtib3JkZXIt''@;'; + put 'put ''cmFkaXVzOjNweH0uaXMtZGlzYWJsZWQgLnBpa2EtYnV0dG9ue3BvaW50ZXItZXZlbnRzOm5vbmU7Y3Vyc29yOmRlZmF1bHQ7Y29sb3I6Izk5OTtvcGFjaXR5Oi4zfS5pcy1vdXRzaWRlLWN1cnJlbnQtbW9udGggLnBpa2EtYnV0dG9ue2NvbG9yOiM5OTk7b3BhY2l0eTouM30uaXMtc2VsZWN0''@;'; + put 'put ''aW9uLWRpc2FibGVke3BvaW50ZXItZXZlbnRzOm5vbmU7Y3Vyc29yOmRlZmF1bHR9LnBpa2EtYnV0dG9uOmhvdmVyLC5waWthLXJvdy5waWNrLXdob2xlLXdlZWs6aG92ZXIgLnBpa2EtYnV0dG9ue2NvbG9yOiNmZmY7YmFja2dyb3VuZDojZmY4MDAwO2JveC1zaGFkb3c6bm9uZTtib3JkZXIt''@;'; + put 'put ''cmFkaXVzOjNweH0ucGlrYS10YWJsZSBhYmJye2JvcmRlci1ib3R0b206bm9uZTtjdXJzb3I6aGVscH0uaGFuZHNvbnRhYmxlIC5odEF1dG9jb21wbGV0ZUFycm93e2Zsb2F0OnJpZ2h0O2ZvbnQtc2l6ZToxMHB4O2NvbG9yOiNlZWU7Y3Vyc29yOmRlZmF1bHQ7d2lkdGg6MTZweDt0ZXh0LWFs''@;'; + put 'put ''aWduOmNlbnRlcn1bZGlyPXJ0bF0uaGFuZHNvbnRhYmxlIC5odEF1dG9jb21wbGV0ZUFycm93e2Zsb2F0OmxlZnR9LmhhbmRzb250YWJsZSB0ZCAuaHRBdXRvY29tcGxldGVBcnJvdzpob3Zlcntjb2xvcjojNzc3fS5oYW5kc29udGFibGUgdGQuYXJlYSAuaHRBdXRvY29tcGxldGVBcnJvd3tj''@;'; + put 'put ''b2xvcjojZDNkM2QzfS5oYW5kc29udGFibGUgLmh0Q2hlY2tib3hSZW5kZXJlcklucHV0e2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5oYW5kc29udGFibGUgLmh0Q2hlY2tib3hSZW5kZXJlcklucHV0Lm5vVmFsdWV7b3BhY2l0eTouNX0uaGFuZHNvbnRhYmxlIC5odENoZWNrYm94UmVuZGVyZXJM''@;'; + put 'put ''YWJlbHtmb250LXNpemU6aW5oZXJpdDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7Y3Vyc29yOnBvaW50ZXI7ZGlzcGxheTppbmxpbmUtYmxvY2t9LmhhbmRzb250YWJsZSAuaHRDaGVja2JveFJlbmRlcmVyTGFiZWwuZnVsbFdpZHRoe3dpZHRoOjEwMCV9LmhhbmRzb250YWJsZSAuaHRDb21tZW50''@;'; + put 'put ''Q2VsbHtwb3NpdGlvbjpyZWxhdGl2ZX0uaGFuZHNvbnRhYmxlIC5odENvbW1lbnRDZWxsOmFmdGVye2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7cmlnaHQ6MDtsZWZ0OnVuc2V0O2JvcmRlci1sZWZ0OjZweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItcmlnaHQ6bm9uZTti''@;'; + put 'put ''b3JkZXItdG9wOjZweCBzb2xpZCBibGFja31bZGlyPXJ0bF0uaGFuZHNvbnRhYmxlIC5odENvbW1lbnRDZWxsOmFmdGVye2xlZnQ6MDtyaWdodDp1bnNldDtib3JkZXItcmlnaHQ6NnB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1sZWZ0Om5vbmV9Lmh0Q29tbWVudHNDb250YWluZXIgLmh0''@;'; + put 'put ''Q29tbWVudHN7ZGlzcGxheTpub25lO3otaW5kZXg6MTA1OTtwb3NpdGlvbjphYnNvbHV0ZX0uaHRDb21tZW50c0NvbnRhaW5lciAuaHRDb21tZW50VGV4dEFyZWF7Ym94LXNoYWRvdzojMDAwMDAwMWUgMCAxcHggM3B4LCMwMDAwMDAzZCAwIDFweCAycHg7Ym94LXNpemluZzpib3JkZXItYm94''@;'; + put 'put ''O2JvcmRlcjpub25lO2JvcmRlci1sZWZ0OjNweCBzb2xpZCAjY2NjO2JvcmRlci1yaWdodDpub25lO2JhY2tncm91bmQtY29sb3I6I2ZmZjt3aWR0aDoyMTVweDtoZWlnaHQ6OTBweDtmb250LXNpemU6MTJweDtwYWRkaW5nOjVweDtvdXRsaW5lOjBweCFpbXBvcnRhbnQ7LXdlYmtpdC1hcHBl''@;'; + put 'put ''YXJhbmNlOm5vbmV9W2Rpcj1ydGxdLmh0Q29tbWVudHNDb250YWluZXIgLmh0Q29tbWVudFRleHRBcmVhe2JvcmRlci1yaWdodDozcHggc29saWQgI2NjYztib3JkZXItbGVmdDpub25lfS5odENvbW1lbnRzQ29udGFpbmVyIC5odENvbW1lbnRUZXh0QXJlYTpmb2N1c3tib3gtc2hhZG93OiMw''@;'; + put 'put ''MDAwMDAxZSAwIDFweCAzcHgsIzAwMDAwMDNkIDAgMXB4IDJweCxpbnNldCAwIDAgMCAxcHggIzUyOTJmNztib3JkZXItbGVmdDozcHggc29saWQgIzUyOTJmNztib3JkZXItcmlnaHQ6bm9uZX1bZGlyPXJ0bF0uaHRDb21tZW50c0NvbnRhaW5lciAuaHRDb21tZW50VGV4dEFyZWE6Zm9jdXN7''@;'; + put 'put ''Ym9yZGVyLXJpZ2h0OjNweCBzb2xpZCAjNTI5MmY3O2JvcmRlci1sZWZ0Om5vbmV9LyohCiAqIEhhbmRzb250YWJsZSBDb250ZXh0TWVudQogKi8uaHRDb250ZXh0TWVudTpub3QoLmh0R2hvc3RUYWJsZSl7ZGlzcGxheTpub25lO3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTA2MH0uaHRD''@;'; + put 'put ''b250ZXh0TWVudSAuaHRfY2xvbmVfdG9wLC5odENvbnRleHRNZW51IC5odF9jbG9uZV9ib3R0b20sLmh0Q29udGV4dE1lbnUgLmh0X2Nsb25lX2lubGluZV9zdGFydCwuaHRDb250ZXh0TWVudSAuaHRfY2xvbmVfdG9wX2lubGluZV9zdGFydF9jb3JuZXIsLmh0Q29udGV4dE1lbnUgLmh0X2Ns''@;'; + put 'put ''b25lX2JvdHRvbV9pbmxpbmVfc3RhcnRfY29ybmVye2Rpc3BsYXk6bm9uZX0uaHRDb250ZXh0TWVudSAuaHRfbWFzdGVyIHRhYmxlLmh0Q29yZXtib3JkZXItY29sb3I6I2NjYztib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLXRvcC13aWR0aDoxcHg7Ym9yZGVyLWJvdHRvbS13aWR0aDoycHg7''@;'; + put 'put ''Ym9yZGVyLWxlZnQtd2lkdGg6MXB4O2JvcmRlci1yaWdodC13aWR0aDoycHh9W2Rpcj1ydGxdLmh0Q29udGV4dE1lbnUgLmh0X21hc3RlciB0YWJsZS5odENvcmV7Ym9yZGVyLXJpZ2h0LXdpZHRoOjFweDtib3JkZXItbGVmdC13aWR0aDoycHh9Lmh0Q29udGV4dE1lbnUgLnd0Qm9yZGVye3Zp''@;'; + put 'put ''c2liaWxpdHk6aGlkZGVufS5odENvbnRleHRNZW51IHRhYmxlIHRib2R5IHRyIHRke2JhY2tncm91bmQ6d2hpdGU7Ym9yZGVyLXdpZHRoOjA7cGFkZGluZzo0cHggNnB4IDA7Y3Vyc29yOnBvaW50ZXI7b3ZlcmZsb3c6aGlkZGVuO3doaXRlLXNwYWNlOm5vd3JhcDt0ZXh0LW92ZXJmbG93OmVs''@;'; + put 'put ''bGlwc2lzfS5odENvbnRleHRNZW51IHRhYmxlIHRib2R5IHRyIHRkOmZpcnN0LWNoaWxke2JvcmRlci10b3Atd2lkdGg6MDtib3JkZXItYm90dG9tLXdpZHRoOjA7Ym9yZGVyLWxlZnQtd2lkdGg6MDtib3JkZXItcmlnaHQtd2lkdGg6MH1bZGlyPXJ0bF0uaHRDb250ZXh0TWVudSB0YWJsZSB0''@;'; + put 'put ''Ym9keSB0ciB0ZDpmaXJzdC1jaGlsZHtib3JkZXItcmlnaHQtd2lkdGg6MDtib3JkZXItbGVmdC13aWR0aDowfS5odENvbnRleHRNZW51IHRhYmxlIHRib2R5IHRyIHRkLmh0RGltbWVke2ZvbnQtc3R5bGU6bm9ybWFsO2NvbG9yOiMzMjMyMzJ9Lmh0Q29udGV4dE1lbnUgdGFibGUgdGJvZHkg''@;'; + put 'put ''dHIgdGQuY3VycmVudCwuaHRDb250ZXh0TWVudSB0YWJsZSB0Ym9keSB0ciB0ZC56ZXJvY2xpcGJvYXJkLWlzLWhvdmVye2JhY2tncm91bmQ6I2YzZjNmM30uaHRDb250ZXh0TWVudSB0YWJsZSB0Ym9keSB0ciB0ZC5odFNlcGFyYXRvcntib3JkZXItdG9wOjFweCBzb2xpZCAjZTZlNmU2O2hl''@;'; + put 'put ''aWdodDowO3BhZGRpbmc6MDtjdXJzb3I6ZGVmYXVsdH0uaHRDb250ZXh0TWVudSB0YWJsZSB0Ym9keSB0ciB0ZC5odERpc2FibGVke2NvbG9yOiM5OTk7Y3Vyc29yOmRlZmF1bHR9Lmh0Q29udGV4dE1lbnUgdGFibGUgdGJvZHkgdHIgdGQuaHREaXNhYmxlZDpob3ZlcntiYWNrZ3JvdW5kOiNm''@;'; + put 'put ''ZmY7Y29sb3I6Izk5OTtjdXJzb3I6ZGVmYXVsdH0uaHRDb250ZXh0TWVudSB0YWJsZSB0Ym9keSB0ci5odEhpZGRlbntkaXNwbGF5Om5vbmV9Lmh0Q29udGV4dE1lbnUgdGFibGUgdGJvZHkgdHIgdGQgLmh0SXRlbVdyYXBwZXJ7bWFyZ2luLWxlZnQ6MTBweDttYXJnaW4tcmlnaHQ6NnB4fS5o''@;'; + put 'put ''dENvbnRleHRNZW51IHRhYmxlIHRib2R5IHRyIHRkIGRpdiBzcGFuLnNlbGVjdGVke21hcmdpbi10b3A6LTJweDtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjRweH0uaHRDb250ZXh0TWVudSAuaHRfbWFzdGVyIC53dEhvbGRlcntvdmVyZmxvdzpoaWRkZW59dGV4dGFyZWEuSGFuZHNvbnRhYmxl''@;'; + put 'put ''Q29weVBhc3Rle3Bvc2l0aW9uOmZpeGVkIWltcG9ydGFudDt0b3A6MCFpbXBvcnRhbnQ7cmlnaHQ6MTAwJSFpbXBvcnRhbnQ7b3ZlcmZsb3c6aGlkZGVuO29wYWNpdHk6MDtvdXRsaW5lOjAgbm9uZSFpbXBvcnRhbnR9LyohCiAqIEhhbmRzb250YWJsZSBEcm9wZG93bk1lbnUKICovLmhhbmRz''@;'; + put 'put ''b250YWJsZSAuY2hhbmdlVHlwZXtiYWNrZ3JvdW5kOiNlZWU7Ym9yZGVyLXJhZGl1czoycHg7Ym9yZGVyOjFweCBzb2xpZCAjYmJiO2NvbG9yOiNiYmI7Zm9udC1zaXplOjlweDtsaW5lLWhlaWdodDo5cHg7cGFkZGluZzoycHg7bWFyZ2luOjNweCAxcHggMCA1cHg7ZmxvYXQ6cmlnaHR9W2Rp''@;'; + put 'put ''cj1ydGxdLmhhbmRzb250YWJsZSAuY2hhbmdlVHlwZXtmbG9hdDpsZWZ0fS5oYW5kc29udGFibGUgLmNoYW5nZVR5cGU6YmVmb3Jle2NvbnRlbnQ6IlwyNWJjICAifS5oYW5kc29udGFibGUgLmNoYW5nZVR5cGU6aG92ZXJ7Ym9yZGVyOjFweCBzb2xpZCAjNzc3O2NvbG9yOiM3Nzc7Y3Vyc29y''@;'; + put 'put ''OnBvaW50ZXJ9Lmh0RHJvcGRvd25NZW51Om5vdCguaHRHaG9zdFRhYmxlKXtkaXNwbGF5Om5vbmU7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDYwfS5odERyb3Bkb3duTWVudSAuaHRfY2xvbmVfdG9wLC5odERyb3Bkb3duTWVudSAuaHRfY2xvbmVfYm90dG9tLC5odERyb3Bkb3duTWVu''@;'; + put 'put ''dSAuaHRfY2xvbmVfaW5saW5lX3N0YXJ0LC5odERyb3Bkb3duTWVudSAuaHRfY2xvbmVfdG9wX2lubGluZV9zdGFydF9jb3JuZXIsLmh0RHJvcGRvd25NZW51IC5odF9jbG9uZV9ib3R0b21faW5saW5lX3N0YXJ0X2Nvcm5lcntkaXNwbGF5Om5vbmV9Lmh0RHJvcGRvd25NZW51IHRhYmxlLmh0''@;'; + put 'put ''Q29yZXtib3JkZXItY29sb3I6I2NjYztib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLXRvcC13aWR0aDoxcHg7Ym9yZGVyLWJvdHRvbS13aWR0aDoycHg7Ym9yZGVyLWxlZnQtd2lkdGg6MXB4O2JvcmRlci1yaWdodC13aWR0aDoycHh9W2Rpcj1ydGxdLmh0RHJvcGRvd25NZW51IHRhYmxlLmh0''@;'; + put 'put ''Q29yZXtib3JkZXItcmlnaHQtd2lkdGg6MXB4O2JvcmRlci1sZWZ0LXdpZHRoOjJweH0uaHREcm9wZG93bk1lbnUgLnd0Qm9yZGVye3Zpc2liaWxpdHk6aGlkZGVufS5odERyb3Bkb3duTWVudSB0YWJsZSB0Ym9keSB0ciB0ZHtiYWNrZ3JvdW5kOndoaXRlO2JvcmRlci13aWR0aDowO3BhZGRp''@;'; + put 'put ''bmc6NHB4IDZweCAwO2N1cnNvcjpwb2ludGVyO292ZXJmbG93OmhpZGRlbjt3aGl0ZS1zcGFjZTpub3dyYXA7dGV4dC1vdmVyZmxvdzplbGxpcHNpc30uaHREcm9wZG93bk1lbnUgdGFibGUgdGJvZHkgdHIgdGQ6Zmlyc3QtY2hpbGR7Ym9yZGVyLXRvcC13aWR0aDowO2JvcmRlci1yaWdodC13''@;'; + put 'put ''aWR0aDowO2JvcmRlci1ib3R0b20td2lkdGg6MDtib3JkZXItbGVmdC13aWR0aDowfVtkaXI9cnRsXS5odERyb3Bkb3duTWVudSB0YWJsZSB0Ym9keSB0ciB0ZDpmaXJzdC1jaGlsZHtib3JkZXItbGVmdC13aWR0aDowO2JvcmRlci1yaWdodC13aWR0aDowfS5odERyb3Bkb3duTWVudSB0YWJs''@;'; + put 'put ''ZSB0Ym9keSB0ciB0ZC5odERpbW1lZHtmb250LXN0eWxlOm5vcm1hbDtjb2xvcjojMzIzMjMyfS5odERyb3Bkb3duTWVudSB0YWJsZSB0Ym9keSB0ciB0ZC5jdXJyZW50LC5odERyb3Bkb3duTWVudSB0YWJsZSB0Ym9keSB0ciB0ZC56ZXJvY2xpcGJvYXJkLWlzLWhvdmVye2JhY2tncm91bmQ6''@;'; + put 'put ''I2U5ZTllOX0uaHREcm9wZG93bk1lbnUgdGFibGUgdGJvZHkgdHIgdGQuaHRTZXBhcmF0b3J7Ym9yZGVyLXRvcDoxcHggc29saWQgI2U2ZTZlNjtoZWlnaHQ6MDtwYWRkaW5nOjA7Y3Vyc29yOmRlZmF1bHR9Lmh0RHJvcGRvd25NZW51IHRhYmxlIHRib2R5IHRyIHRkLmh0RGlzYWJsZWR7Y29s''@;'; + put 'put ''b3I6Izk5OX0uaHREcm9wZG93bk1lbnUgdGFibGUgdGJvZHkgdHIgdGQuaHREaXNhYmxlZDpob3ZlcntiYWNrZ3JvdW5kOiNmZmY7Y29sb3I6Izk5OTtjdXJzb3I6ZGVmYXVsdH0uaHREcm9wZG93bk1lbnU6bm90KC5odEdob3N0VGFibGUpIHRhYmxlIHRib2R5IHRyLmh0SGlkZGVue2Rpc3Bs''@;'; + put 'put ''YXk6bm9uZX0uaHREcm9wZG93bk1lbnUgdGFibGUgdGJvZHkgdHIgdGQgLmh0SXRlbVdyYXBwZXJ7bWFyZ2luLWxlZnQ6MTBweDttYXJnaW4tcmlnaHQ6MTBweH0uaHREcm9wZG93bk1lbnUgdGFibGUgdGJvZHkgdHIgdGQgZGl2IHNwYW4uc2VsZWN0ZWR7bWFyZ2luLXRvcDotMnB4O3Bvc2l0''@;'; + put 'put ''aW9uOmFic29sdXRlO2xlZnQ6NHB4fS5odERyb3Bkb3duTWVudSAuaHRfbWFzdGVyIC53dEhvbGRlcntvdmVyZmxvdzpoaWRkZW59LyohCiAqIEhhbmRzb250YWJsZSBGaWx0ZXJzCiAqLy5odEZpbHRlcnNDb25kaXRpb25zTWVudTpub3QoLmh0R2hvc3RUYWJsZSl7ZGlzcGxheTpub25lO3Bv''@;'; + put 'put ''c2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTA3MH0uaHRGaWx0ZXJzQ29uZGl0aW9uc01lbnUgLmh0X2Nsb25lX3RvcCwuaHRGaWx0ZXJzQ29uZGl0aW9uc01lbnUgLmh0X2Nsb25lX2lubGluZV9zdGFydCwuaHRGaWx0ZXJzQ29uZGl0aW9uc01lbnUgLmh0X2Nsb25lX2Nvcm5lcntkaXNwbGF5''@;'; + put 'put ''Om5vbmV9Lmh0RmlsdGVyc0NvbmRpdGlvbnNNZW51IHRhYmxlLmh0Q29yZXtib3JkZXI6MXB4IHNvbGlkICNiYmI7Ym9yZGVyLWJvdHRvbS13aWR0aDoycHg7Ym9yZGVyLXJpZ2h0LXdpZHRoOjJweH0uaHRGaWx0ZXJzQ29uZGl0aW9uc01lbnUgLnd0Qm9yZGVye3Zpc2liaWxpdHk6aGlkZGVu''@;'; + put 'put ''fS5odEZpbHRlcnNDb25kaXRpb25zTWVudSB0YWJsZSB0Ym9keSB0ciB0ZHtiYWNrZ3JvdW5kOndoaXRlO2JvcmRlci13aWR0aDowO3BhZGRpbmc6NHB4IDZweCAwO2N1cnNvcjpwb2ludGVyO292ZXJmbG93OmhpZGRlbjt3aGl0ZS1zcGFjZTpub3dyYXA7dGV4dC1vdmVyZmxvdzplbGxpcHNp''@;'; + put 'put ''c30uaHRGaWx0ZXJzQ29uZGl0aW9uc01lbnUgdGFibGUgdGJvZHkgdHIgdGQ6Zmlyc3QtY2hpbGR7Ym9yZGVyLXRvcC13aWR0aDowO2JvcmRlci1yaWdodC13aWR0aDowO2JvcmRlci1ib3R0b20td2lkdGg6MDtib3JkZXItbGVmdC13aWR0aDowfVtkaXI9cnRsXS5odEZpbHRlcnNDb25kaXRp''@;'; + put 'put ''b25zTWVudSB0YWJsZSB0Ym9keSB0ciB0ZDpmaXJzdC1jaGlsZHtib3JkZXItbGVmdC13aWR0aDowO2JvcmRlci1yaWdodC13aWR0aDowfS5odEZpbHRlcnNDb25kaXRpb25zTWVudSB0YWJsZSB0Ym9keSB0ciB0ZC5odERpbW1lZHtmb250LXN0eWxlOm5vcm1hbDtjb2xvcjojMzIzMjMyfS5o''@;'; + put 'put ''dEZpbHRlcnNDb25kaXRpb25zTWVudSB0YWJsZSB0Ym9keSB0ciB0ZC5jdXJyZW50LC5odEZpbHRlcnNDb25kaXRpb25zTWVudSB0YWJsZSB0Ym9keSB0ciB0ZC56ZXJvY2xpcGJvYXJkLWlzLWhvdmVye2JhY2tncm91bmQ6I2U5ZTllOX0uaHRGaWx0ZXJzQ29uZGl0aW9uc01lbnUgdGFibGUg''@;'; + put 'put ''dGJvZHkgdHIgdGQuaHRTZXBhcmF0b3J7Ym9yZGVyLXRvcDoxcHggc29saWQgI2U2ZTZlNjtoZWlnaHQ6MDtwYWRkaW5nOjB9Lmh0RmlsdGVyc0NvbmRpdGlvbnNNZW51IHRhYmxlIHRib2R5IHRyIHRkLmh0RGlzYWJsZWR7Y29sb3I6Izk5OX0uaHRGaWx0ZXJzQ29uZGl0aW9uc01lbnUgdGFi''@;'; + put 'put ''bGUgdGJvZHkgdHIgdGQuaHREaXNhYmxlZDpob3ZlcntiYWNrZ3JvdW5kOiNmZmY7Y29sb3I6Izk5OTtjdXJzb3I6ZGVmYXVsdH0uaHRGaWx0ZXJzQ29uZGl0aW9uc01lbnUgdGFibGUgdGJvZHkgdHIgdGQgLmh0SXRlbVdyYXBwZXJ7bWFyZ2luLWxlZnQ6MTBweDttYXJnaW4tcmlnaHQ6MTBw''@;'; + put 'put ''eH0uaHRGaWx0ZXJzQ29uZGl0aW9uc01lbnUgdGFibGUgdGJvZHkgdHIgdGQgZGl2IHNwYW4uc2VsZWN0ZWR7bWFyZ2luLXRvcDotMnB4O3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6NHB4fS5odEZpbHRlcnNDb25kaXRpb25zTWVudSAuaHRfbWFzdGVyIC53dEhvbGRlcntvdmVyZmxvdzpoaWRk''@;'; + put 'put ''ZW59LmhhbmRzb250YWJsZSAuaHRNZW51RmlsdGVyaW5ne2JvcmRlci1ib3R0b206MXB4IGRvdHRlZCAjY2NjO2hlaWdodDoxMzVweDtvdmVyZmxvdzpoaWRkZW59LmhhbmRzb250YWJsZSAuaHRfbWFzdGVyIHRhYmxlIHRkLmh0Q3VzdG9tTWVudVJlbmRlcmVye2JhY2tncm91bmQtY29sb3I6''@;'; + put 'put ''I2ZmZjtjdXJzb3I6YXV0b30uaGFuZHNvbnRhYmxlIC5odEZpbHRlcnNNZW51TGFiZWx7Zm9udC1zaXplOi43NWVtfS5oYW5kc29udGFibGUgLmh0RmlsdGVyc01lbnVBY3Rpb25CYXJ7dGV4dC1hbGlnbjpjZW50ZXI7cGFkZGluZy10b3A6MTBweDtwYWRkaW5nLWJvdHRvbTozcHh9LmhhbmRz''@;'; + put 'put ''b250YWJsZSAuaHRGaWx0ZXJzTWVudUNvbmRpdGlvbi5ib3JkZXJ7Ym9yZGVyLWJvdHRvbToxcHggZG90dGVkICNjY2MhaW1wb3J0YW50fS5oYW5kc29udGFibGUgLmh0RmlsdGVyc01lbnVDb25kaXRpb24gLmh0VUlJbnB1dHtwYWRkaW5nOjAgMCA1cHh9LmhhbmRzb250YWJsZSAuaHRGaWx0''@;'; + put 'put ''ZXJzTWVudVZhbHVle2JvcmRlci1ib3R0b206MXB4IGRvdHRlZCAjY2NjIWltcG9ydGFudH0uaGFuZHNvbnRhYmxlIC5odEZpbHRlcnNNZW51VmFsdWUgLmh0VUlNdWx0aXBsZVNlbGVjdFNlYXJjaHtwYWRkaW5nOjB9LmhhbmRzb250YWJsZSAuaHRGaWx0ZXJzTWVudUNvbmRpdGlvbiAuaHRV''@;'; + put 'put ''SUlucHV0IGlucHV0LC5oYW5kc29udGFibGUgLmh0RmlsdGVyc01lbnVWYWx1ZSAuaHRVSU11bHRpcGxlU2VsZWN0U2VhcmNoIGlucHV0e2ZvbnQtZmFtaWx5OmluaGVyaXQ7Zm9udC1zaXplOi43NWVtO3BhZGRpbmc6NHB4O2JveC1zaXppbmc6Ym9yZGVyLWJveDt3aWR0aDoxMDAlfS5odFVJ''@;'; + put 'put ''TXVsdGlwbGVTZWxlY3QgLmh0X21hc3RlciAud3RIb2xkZXJ7b3ZlcmZsb3cteTpzY3JvbGx9LmhhbmRzb250YWJsZSAuaHRGaWx0ZXJzQWN0aXZlIC5jaGFuZ2VUeXBle2JvcmRlcjoxcHggc29saWQgIzUwOTI3Mjtjb2xvcjojMTg4MDRlO2JhY2tncm91bmQtY29sb3I6I2QyZTBkOX0uaGFu''@;'; + put 'put ''ZHNvbnRhYmxlIC5odFVJU2VsZWN0QWxse21hcmdpbi1sZWZ0OjA7bWFyZ2luLXJpZ2h0OjEwcHh9W2Rpcj1ydGxdLmhhbmRzb250YWJsZSAuaHRVSVNlbGVjdEFsbHttYXJnaW4tcmlnaHQ6MDttYXJnaW4tbGVmdDoxMHB4fS5oYW5kc29udGFibGUgLmh0VUlDbGVhckFsbCwuaGFuZHNvbnRh''@;'; + put 'put ''YmxlIC5odFVJU2VsZWN0QWxse2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5oYW5kc29udGFibGUgLmh0VUlDbGVhckFsbCBhLC5oYW5kc29udGFibGUgLmh0VUlTZWxlY3RBbGwgYXtmb250LXNpemU6Ljc1ZW19LmhhbmRzb250YWJsZSAuaHRVSVNlbGVjdGlvbkNvbnRyb2xze3RleHQtYWxpZ246''@;'; + put 'put ''cmlnaHR9W2Rpcj1ydGxdLmhhbmRzb250YWJsZSAuaHRVSVNlbGVjdGlvbkNvbnRyb2xze3RleHQtYWxpZ246bGVmdH0uaGFuZHNvbnRhYmxlIC5odENoZWNrYm94UmVuZGVyZXJJbnB1dHttYXJnaW46MCA1cHggMCAwO3ZlcnRpY2FsLWFsaWduOm1pZGRsZTtoZWlnaHQ6MWVtfVtkaXI9cnRs''@;'; + put 'put ''XS5oYW5kc29udGFibGUgLmh0Q2hlY2tib3hSZW5kZXJlcklucHV0e21hcmdpbi1sZWZ0OjVweDttYXJnaW4tcmlnaHQ6MH0uaGFuZHNvbnRhYmxlIC5odFVJSW5wdXR7cGFkZGluZzozcHggMCA3cHg7cG9zaXRpb246cmVsYXRpdmU7dGV4dC1hbGlnbjpjZW50ZXJ9LmhhbmRzb250YWJsZSAu''@;'; + put 'put ''aHRVSUlucHV0IGlucHV0e2JvcmRlci1yYWRpdXM6MnB4O2JvcmRlcjoxcHggc29saWQgI2QyZDFkMX0uaGFuZHNvbnRhYmxlIC5odFVJSW5wdXQgaW5wdXQ6Zm9jdXN7b3V0bGluZTowfS5oYW5kc29udGFibGUgLmh0VUlJbnB1dEljb257cG9zaXRpb246YWJzb2x1dGV9LmhhbmRzb250YWJs''@;'; + put 'put ''ZSAuaHRVSUlucHV0Lmh0VUlCdXR0b257Y3Vyc29yOnBvaW50ZXI7ZGlzcGxheTppbmxpbmUtYmxvY2t9LmhhbmRzb250YWJsZSAuaHRVSUlucHV0Lmh0VUlCdXR0b24gaW5wdXR7YmFja2dyb3VuZC1jb2xvcjojZWVlO2NvbG9yOiMwMDA7Y3Vyc29yOnBvaW50ZXI7Zm9udC1mYW1pbHk6aW5o''@;'; + put 'put ''ZXJpdDtmb250LXNpemU6Ljc1ZW07Zm9udC13ZWlnaHQ6NzAwO2hlaWdodDoxOXB4O21pbi13aWR0aDo2NHB4fS5oYW5kc29udGFibGUgLmh0VUlJbnB1dC5odFVJQnV0dG9uIGlucHV0OmhvdmVye2JvcmRlci1jb2xvcjojYjliOWI5fS5oYW5kc29udGFibGUgLmh0VUlJbnB1dC5odFVJQnV0''@;'; + put 'put ''dG9uT0t7bWFyZ2luLWxlZnQ6MDttYXJnaW4tcmlnaHQ6MTBweH1bZGlyPXJ0bF0uaGFuZHNvbnRhYmxlIC5odFVJSW5wdXQuaHRVSUJ1dHRvbk9Le21hcmdpbi1yaWdodDowO21hcmdpbi1sZWZ0OjEwcHh9LmhhbmRzb250YWJsZSAuaHRVSUlucHV0Lmh0VUlCdXR0b25PSyBpbnB1dHtiYWNr''@;'; + put 'put ''Z3JvdW5kLWNvbG9yOiMwZjlkNTg7Ym9yZGVyLWNvbG9yOiMxODgwNGU7Y29sb3I6I2ZmZn0uaGFuZHNvbnRhYmxlIC5odFVJSW5wdXQuaHRVSUJ1dHRvbk9LIGlucHV0OmhvdmVye2JvcmRlci1jb2xvcjojMWE2ZjQ2fS5oYW5kc29udGFibGUgLmh0VUlTZWxlY3R7Y3Vyc29yOnBvaW50ZXI7''@;'; + put 'put ''bWFyZ2luLWJvdHRvbTo3cHg7cG9zaXRpb246cmVsYXRpdmV9LmhhbmRzb250YWJsZSAuaHRVSVNlbGVjdENhcHRpb257YmFja2dyb3VuZC1jb2xvcjojZThlOGU4O2JvcmRlci1yYWRpdXM6MnB4O2JvcmRlcjoxcHggc29saWQgI2QyZDFkMTtmb250LWZhbWlseTppbmhlcml0O2ZvbnQtc2l6''@;'; + put 'put ''ZTouNzVlbTtmb250LXdlaWdodDo3MDA7cGFkZGluZzozcHggMjBweCAzcHggMTBweDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW59LmhhbmRzb250YWJsZSAuaHRVSVNlbGVjdENhcHRpb246aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjoj''@;'; + put 'put ''ZThlOGU4O2JvcmRlcjoxcHggc29saWQgI2I5YjliOX0uaGFuZHNvbnRhYmxlIC5odFVJU2VsZWN0RHJvcGRvd246YWZ0ZXJ7Y29udGVudDoiXDI1YjIiO2ZvbnQtc2l6ZTo3cHg7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MTBweDt0b3A6MH0uaGFuZHNvbnRhYmxlIC5odFVJU2VsZWN0RHJv''@;'; + put 'put ''cGRvd246YmVmb3Jle2NvbnRlbnQ6IlwyNWJjIjtmb250LXNpemU6N3B4O3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjEwcHg7dG9wOjhweH0uaGFuZHNvbnRhYmxlIC5odFVJTXVsdGlwbGVTZWxlY3QgLmhhbmRzb250YWJsZSAuaHRDb3Jle2JvcmRlcjpub25lfS5oYW5kc29udGFibGUgLmh0''@;'; + put 'put ''VUlNdWx0aXBsZVNlbGVjdCAuaGFuZHNvbnRhYmxlIC5odENvcmUgdGQ6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojZjVmNWY1fS5oYW5kc29udGFibGUgLmh0VUlNdWx0aXBsZVNlbGVjdFNlYXJjaCBpbnB1dHtib3JkZXItcmFkaXVzOjJweDtib3JkZXI6MXB4IHNvbGlkICNkMmQxZDE7cGFk''@;'; + put 'put ''ZGluZzozcHh9LmhhbmRzb250YWJsZSAuaHRVSVJhZGlve2Rpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdpbi1sZWZ0OjA7bWFyZ2luLXJpZ2h0OjVweDtoZWlnaHQ6MTAwJX1bZGlyPXJ0bF0uaGFuZHNvbnRhYmxlIC5odFVJUmFkaW97bWFyZ2luLXJpZ2h0OjA7bWFyZ2luLWxlZnQ6NXB4fS5o''@;'; + put 'put ''YW5kc29udGFibGUgLmh0VUlSYWRpbzpsYXN0LWNoaWxke21hcmdpbi1yaWdodDowfS5oYW5kc29udGFibGUgLmh0VUlSYWRpbz5pbnB1dFt0eXBlPXJhZGlvXXttYXJnaW4tbGVmdDowO21hcmdpbi1yaWdodDouNWV4fVtkaXI9cnRsXS5oYW5kc29udGFibGUgLmh0VUlSYWRpbz5pbnB1dFt0''@;'; + put 'put ''eXBlPXJhZGlvXXttYXJnaW4tcmlnaHQ6MDttYXJnaW4tbGVmdDouNWV4fS5oYW5kc29udGFibGUgLmh0VUlSYWRpbyBsYWJlbHt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9LmhhbmRzb250YWJsZSAuaHRGaWx0ZXJzTWVudU9wZXJhdG9yc3twYWRkaW5nLWJvdHRvbTo1cHh9LmhhbmRzb250YWJs''@;'; + put 'put ''ZSB0aC5iZWZvcmVIaWRkZW5Db2x1bW57cG9zaXRpb246cmVsYXRpdmV9LmhhbmRzb250YWJsZSB0aC5iZWZvcmVIaWRkZW5Db2x1bW46YWZ0ZXIsLmhhbmRzb250YWJsZSB0aC5hZnRlckhpZGRlbkNvbHVtbjpiZWZvcmV7Y29sb3I6I2JiYjtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NTAlO2Zv''@;'; + put 'put ''bnQtc2l6ZTo1cHQ7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSl9LmhhbmRzb250YWJsZSB0aC5hZnRlckhpZGRlbkNvbHVtbntwb3NpdGlvbjpyZWxhdGl2ZX0uaGFuZHNvbnRhYmxlIHRoLmJlZm9yZUhpZGRlbkNvbHVtbjphZnRlcntyaWdodDoxcHg7Y29udGVudDoiXDI1YzAifVtkaXI9''@;'; + put 'put ''cnRsXS5oYW5kc29udGFibGUgdGguYmVmb3JlSGlkZGVuQ29sdW1uOmFmdGVye3JpZ2h0OmluaXRpYWw7bGVmdDoxcHg7Y29udGVudDoiXDI1YjYifS5oYW5kc29udGFibGUgdGguYWZ0ZXJIaWRkZW5Db2x1bW46YmVmb3Jle2xlZnQ6MXB4O2NvbnRlbnQ6IlwyNWI2In1bZGlyPXJ0bF0uaGFu''@;'; + put 'put ''ZHNvbnRhYmxlIHRoLmFmdGVySGlkZGVuQ29sdW1uOmJlZm9yZXtyaWdodDoxcHg7bGVmdDppbml0aWFsO2NvbnRlbnQ6IlwyNWMwIn0vKiEKICogSGFuZHNvbnRhYmxlIEhpZGRlblJvd3MKICovLmhhbmRzb250YWJsZSB0aC5iZWZvcmVIaWRkZW5Sb3c6YmVmb3JlLC5oYW5kc29udGFibGUg''@;'; + put 'put ''dGguYWZ0ZXJIaWRkZW5Sb3c6YWZ0ZXJ7Y29sb3I6I2JiYjtmb250LXNpemU6NnB0O2xpbmUtaGVpZ2h0OjZwdDtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjJweH0uaGFuZHNvbnRhYmxlIHRoLmJlZm9yZUhpZGRlblJvdywuaGFuZHNvbnRhYmxlIHRoLmFmdGVySGlkZGVuUm93e3Bvc2l0aW9u''@;'; + put 'put ''OnJlbGF0aXZlfS5oYW5kc29udGFibGUgdGguYmVmb3JlSGlkZGVuUm93OmJlZm9yZXtjb250ZW50OiJcMjViMiI7Ym90dG9tOjJweH0uaGFuZHNvbnRhYmxlIHRoLmFmdGVySGlkZGVuUm93OmFmdGVye2NvbnRlbnQ6IlwyNWJjIjt0b3A6MnB4fS5oYW5kc29udGFibGUuaHRfX3NlbGVjdGlv''@;'; + put 'put ''bi0tcm93cyB0Ym9keSB0aC5iZWZvcmVIaWRkZW5Sb3cuaHRfX2hpZ2hsaWdodDpiZWZvcmUsLmhhbmRzb250YWJsZS5odF9fc2VsZWN0aW9uLS1yb3dzIHRib2R5IHRoLmFmdGVySGlkZGVuUm93Lmh0X19oaWdobGlnaHQ6YWZ0ZXJ7Y29sb3I6I2VlZX0uaGFuZHNvbnRhYmxlIHRkLmFmdGVy''@;'; + put 'put ''SGlkZGVuUm93LmZpcnN0VmlzaWJsZVJvdywuaGFuZHNvbnRhYmxlIHRoLmFmdGVySGlkZGVuUm93LmZpcnN0VmlzaWJsZVJvd3tib3JkZXItdG9wOjFweCBzb2xpZCAjQ0NDfS5odFJvd0hlYWRlcnMgLmh0X21hc3Rlci5pbm5lckJvcmRlcklubGluZVN0YXJ0fi5odF9jbG9uZV90b3BfaW5s''@;'; + put 'put ''aW5lX3N0YXJ0X2Nvcm5lciB0aDpudGgtY2hpbGQoMiksLmh0Um93SGVhZGVycyAuaHRfbWFzdGVyLmlubmVyQm9yZGVySW5saW5lU3RhcnR+Lmh0X2Nsb25lX2lubGluZV9zdGFydCB0ZDpmaXJzdC1vZi10eXBle2JvcmRlci1sZWZ0OjAgbm9uZX0uaGFuZHNvbnRhYmxlLmh0X19tYW51YWxD''@;'; + put 'put ''b2x1bW5Nb3ZlLmFmdGVyLXNlbGVjdGlvbi0tY29sdW1ucyB0aGVhZCB0aC5odF9faGlnaGxpZ2h0e2N1cnNvcjptb3ZlO2N1cnNvcjpncmFifS5oYW5kc29udGFibGUuaHRfX21hbnVhbENvbHVtbk1vdmUub24tbW92aW5nLS1jb2x1bW5zLC5oYW5kc29udGFibGUuaHRfX21hbnVhbENvbHVt''@;'; + put 'put ''bk1vdmUub24tbW92aW5nLS1jb2x1bW5zIHRoZWFkIHRoLmh0X19oaWdobGlnaHR7Y3Vyc29yOm1vdmU7Y3Vyc29yOmdyYWJiaW5nfS5oYW5kc29udGFibGUuaHRfX21hbnVhbENvbHVtbk1vdmUub24tbW92aW5nLS1jb2x1bW5zIC5tYW51YWxDb2x1bW5SZXNpemVye2Rpc3BsYXk6bm9uZX0u''@;'; + put 'put ''aGFuZHNvbnRhYmxlIC5odF9fbWFudWFsQ29sdW1uTW92ZS0tZ3VpZGVsaW5lLC5oYW5kc29udGFibGUgLmh0X19tYW51YWxDb2x1bW5Nb3ZlLS1iYWNrbGlnaHR7cG9zaXRpb246YWJzb2x1dGU7aGVpZ2h0OjEwMCU7ZGlzcGxheTpub25lfS5oYW5kc29udGFibGUgLmh0X19tYW51YWxDb2x1''@;'; + put 'put ''bW5Nb3ZlLS1ndWlkZWxpbmV7YmFja2dyb3VuZDojNzU3NTc1O3dpZHRoOjJweDt0b3A6MDttYXJnaW4taW5saW5lLXN0YXJ0Oi0xcHg7bWFyZ2luLWlubGluZS1lbmQ6MDt6LWluZGV4OjIwNX0uaGFuZHNvbnRhYmxlIC5odF9fbWFudWFsQ29sdW1uTW92ZS0tYmFja2xpZ2h0e2JhY2tncm91''@;'; + put 'put ''bmQ6IzM0MzQzNDtiYWNrZ3JvdW5kOnJnYmEoNTIsNTIsNTIsLjI1KTtkaXNwbGF5Om5vbmU7ei1pbmRleDoyMDU7cG9pbnRlci1ldmVudHM6bm9uZX0uaGFuZHNvbnRhYmxlLm9uLW1vdmluZy0tY29sdW1ucy5zaG93LXVpIC5odF9fbWFudWFsQ29sdW1uTW92ZS0tZ3VpZGVsaW5lLC5oYW5k''@;'; + put 'put ''c29udGFibGUub24tbW92aW5nLS1jb2x1bW5zIC5odF9fbWFudWFsQ29sdW1uTW92ZS0tYmFja2xpZ2h0e2Rpc3BsYXk6YmxvY2t9LmhhbmRzb250YWJsZSAud3RIaWRlcntwb3NpdGlvbjpyZWxhdGl2ZX0uaGFuZHNvbnRhYmxlLmh0X19tYW51YWxSb3dNb3ZlLmFmdGVyLXNlbGVjdGlvbi0t''@;'; + put 'put ''cm93cyB0Ym9keSB0aC5odF9faGlnaGxpZ2h0e2N1cnNvcjptb3ZlO2N1cnNvcjpncmFifS5oYW5kc29udGFibGUuaHRfX21hbnVhbFJvd01vdmUub24tbW92aW5nLS1yb3dzLC5oYW5kc29udGFibGUuaHRfX21hbnVhbFJvd01vdmUub24tbW92aW5nLS1yb3dzIHRib2R5IHRoLmh0X19oaWdo''@;'; + put 'put ''bGlnaHR7Y3Vyc29yOm1vdmU7Y3Vyc29yOmdyYWJiaW5nfS5oYW5kc29udGFibGUuaHRfX21hbnVhbFJvd01vdmUub24tbW92aW5nLS1yb3dzIC5tYW51YWxSb3dSZXNpemVye2Rpc3BsYXk6bm9uZX0uaGFuZHNvbnRhYmxlIC5odF9fbWFudWFsUm93TW92ZS0tZ3VpZGVsaW5lLC5oYW5kc29u''@;'; + put 'put ''dGFibGUgLmh0X19tYW51YWxSb3dNb3ZlLS1iYWNrbGlnaHR7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MTAwJTtkaXNwbGF5Om5vbmV9LmhhbmRzb250YWJsZSAuaHRfX21hbnVhbFJvd01vdmUtLWd1aWRlbGluZXtiYWNrZ3JvdW5kOiM3NTc1NzU7aGVpZ2h0OjJweDtsZWZ0OjA7bWFyZ2lu''@;'; + put 'put ''LXRvcDotMXB4O3otaW5kZXg6MjA1fS5oYW5kc29udGFibGUgLmh0X19tYW51YWxSb3dNb3ZlLS1iYWNrbGlnaHR7YmFja2dyb3VuZDojMzQzNDM0O2JhY2tncm91bmQ6cmdiYSg1Miw1Miw1MiwuMjUpO2Rpc3BsYXk6bm9uZTt6LWluZGV4OjIwNTtwb2ludGVyLWV2ZW50czpub25lfS5oYW5k''@;'; + put 'put ''c29udGFibGUub24tbW92aW5nLS1yb3dzLnNob3ctdWkgLmh0X19tYW51YWxSb3dNb3ZlLS1ndWlkZWxpbmUsLmhhbmRzb250YWJsZS5vbi1tb3ZpbmctLXJvd3MgLmh0X19tYW51YWxSb3dNb3ZlLS1iYWNrbGlnaHR7ZGlzcGxheTpibG9ja30uaGFuZHNvbnRhYmxlIHRib2R5IHRkW3Jvd3Nw''@;'; + put 'put ''YW5dW2NsYXNzKj1hcmVhXVtjbGFzcyo9aGlnaGxpZ2h0XTpub3QoW2NsYXNzKj1mdWxseVNlbGVjdGVkTWVyZ2VkQ2VsbF0pOmJlZm9yZXtvcGFjaXR5OjB9LmhhbmRzb250YWJsZSB0Ym9keSB0ZFtyb3dzcGFuXVtjbGFzcyo9YXJlYV1bY2xhc3MqPWhpZ2hsaWdodF1bY2xhc3MqPWZ1bGx5''@;'; + put 'put ''U2VsZWN0ZWRNZXJnZWRDZWxsLW11bHRpcGxlXTpiZWZvcmV7b3BhY2l0eTouMX0uaGFuZHNvbnRhYmxlIHRib2R5IHRkW3Jvd3NwYW5dW2NsYXNzKj1hcmVhXVtjbGFzcyo9aGlnaGxpZ2h0XVtjbGFzcyo9ZnVsbHlTZWxlY3RlZE1lcmdlZENlbGwtMF06YmVmb3Jle29wYWNpdHk6LjF9Lmhh''@;'; + put 'put ''bmRzb250YWJsZSB0Ym9keSB0ZFtyb3dzcGFuXVtjbGFzcyo9YXJlYV1bY2xhc3MqPWhpZ2hsaWdodF1bY2xhc3MqPWZ1bGx5U2VsZWN0ZWRNZXJnZWRDZWxsLTFdOmJlZm9yZXtvcGFjaXR5Oi4yfS5oYW5kc29udGFibGUgdGJvZHkgdGRbcm93c3Bhbl1bY2xhc3MqPWFyZWFdW2NsYXNzKj1o''@;'; + put 'put ''aWdobGlnaHRdW2NsYXNzKj1mdWxseVNlbGVjdGVkTWVyZ2VkQ2VsbC0yXTpiZWZvcmV7b3BhY2l0eTouMjd9LmhhbmRzb250YWJsZSB0Ym9keSB0ZFtyb3dzcGFuXVtjbGFzcyo9YXJlYV1bY2xhc3MqPWhpZ2hsaWdodF1bY2xhc3MqPWZ1bGx5U2VsZWN0ZWRNZXJnZWRDZWxsLTNdOmJlZm9y''@;'; + put 'put ''ZXtvcGFjaXR5Oi4zNX0uaGFuZHNvbnRhYmxlIHRib2R5IHRkW3Jvd3NwYW5dW2NsYXNzKj1hcmVhXVtjbGFzcyo9aGlnaGxpZ2h0XVtjbGFzcyo9ZnVsbHlTZWxlY3RlZE1lcmdlZENlbGwtNF06YmVmb3Jle29wYWNpdHk6LjQxfS5oYW5kc29udGFibGUgdGJvZHkgdGRbcm93c3Bhbl1bY2xh''@;'; + put 'put ''c3MqPWFyZWFdW2NsYXNzKj1oaWdobGlnaHRdW2NsYXNzKj1mdWxseVNlbGVjdGVkTWVyZ2VkQ2VsbC01XTpiZWZvcmV7b3BhY2l0eTouNDd9LmhhbmRzb250YWJsZSB0Ym9keSB0ZFtyb3dzcGFuXVtjbGFzcyo9YXJlYV1bY2xhc3MqPWhpZ2hsaWdodF1bY2xhc3MqPWZ1bGx5U2VsZWN0ZWRN''@;'; + put 'put ''ZXJnZWRDZWxsLTZdOmJlZm9yZXtvcGFjaXR5Oi41NH0uaGFuZHNvbnRhYmxlIHRib2R5IHRkW3Jvd3NwYW5dW2NsYXNzKj1hcmVhXVtjbGFzcyo9aGlnaGxpZ2h0XVtjbGFzcyo9ZnVsbHlTZWxlY3RlZE1lcmdlZENlbGwtN106YmVmb3Jle29wYWNpdHk6LjU4fS5oYW5kc29udGFibGUgc3Bh''@;'; + put 'put ''bi5jb2xIZWFkZXIuY29sdW1uU29ydGluZzphZnRlcnt0b3A6NTAlO21hcmdpbi10b3A6LTJweDtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDotMTVweDtsZWZ0OnVuc2V0O3BhZGRpbmctbGVmdDo1cHg7cGFkZGluZy1yaWdodDp1bnNldDtmb250LXNpemU6OHB4O2hlaWdodDo4cHg7bGluZS1o''@;'; + put 'put ''ZWlnaHQ6MS4xO3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmV9W2Rpcj1ydGxdLmhhbmRzb250YWJsZSBzcGFuLmNvbEhlYWRlci5jb2x1bW5Tb3J0aW5nOmFmdGVye2xlZnQ6LTE1cHg7cmlnaHQ6dW5zZXQ7cGFkZGluZy1yaWdodDo1cHg7cGFkZGluZy1sZWZ0OnVuc2V0fS5oYW5kc29udGFi''@;'; + put 'put ''bGUgc3Bhbi5jb2xIZWFkZXIuY29sdW1uU29ydGluZzphZnRlcnt0ZXh0LWRlY29yYXRpb246bm9uZX0uaGFuZHNvbnRhYmxlIHNwYW4uY29sSGVhZGVyLmNvbHVtblNvcnRpbmdbY2xhc3NePXNvcnQtXTphZnRlciwuaGFuZHNvbnRhYmxlIHNwYW4uY29sSGVhZGVyLmNvbHVtblNvcnRpbmdb''@;'; + put 'put ''Y2xhc3MqPSIgc29ydC0iXTphZnRlcntjb250ZW50OiIrIn0uaGFuZHNvbnRhYmxlIHNwYW4uY29sSGVhZGVyLmNvbHVtblNvcnRpbmcuc29ydC0xOmFmdGVye2NvbnRlbnQ6IjEifS5oYW5kc29udGFibGUgc3Bhbi5jb2xIZWFkZXIuY29sdW1uU29ydGluZy5zb3J0LTI6YWZ0ZXJ7Y29udGVu''@;'; + put 'put ''dDoiMiJ9LmhhbmRzb250YWJsZSBzcGFuLmNvbEhlYWRlci5jb2x1bW5Tb3J0aW5nLnNvcnQtMzphZnRlcntjb250ZW50OiIzIn0uaGFuZHNvbnRhYmxlIHNwYW4uY29sSGVhZGVyLmNvbHVtblNvcnRpbmcuc29ydC00OmFmdGVye2NvbnRlbnQ6IjQifS5oYW5kc29udGFibGUgc3Bhbi5jb2xI''@;'; + put 'put ''ZWFkZXIuY29sdW1uU29ydGluZy5zb3J0LTU6YWZ0ZXJ7Y29udGVudDoiNSJ9LmhhbmRzb250YWJsZSBzcGFuLmNvbEhlYWRlci5jb2x1bW5Tb3J0aW5nLnNvcnQtNjphZnRlcntjb250ZW50OiI2In0uaGFuZHNvbnRhYmxlIHNwYW4uY29sSGVhZGVyLmNvbHVtblNvcnRpbmcuc29ydC03OmFm''@;'; + put 'put ''dGVye2NvbnRlbnQ6IjcifS5odEdob3N0VGFibGUgdGggZGl2IGJ1dHRvbi5jaGFuZ2VUeXBlK3NwYW4uY29sSGVhZGVyLmNvbHVtblNvcnRpbmc6bm90KC5pbmRpY2F0b3JEaXNhYmxlZCl7cGFkZGluZy1yaWdodDo1cHh9LmhhbmRzb250YWJsZSB0aGVhZCB0aC5oaWRkZW5IZWFkZXI6bm90''@;'; + put 'put ''KDpmaXJzdC1vZi10eXBlKXtkaXNwbGF5Om5vbmV9LmhhbmRzb250YWJsZSB0aC5odF9uZXN0aW5nTGV2ZWxze3RleHQtYWxpZ246bGVmdDtwYWRkaW5nLWxlZnQ6N3B4fVtkaXI9cnRsXS5oYW5kc29udGFibGUgdGguaHRfbmVzdGluZ0xldmVsc3t0ZXh0LWFsaWduOnJpZ2h0O3BhZGRpbmct''@;'; + put 'put ''cmlnaHQ6N3B4fS5oYW5kc29udGFibGUgdGggZGl2Lmh0X25lc3RpbmdMZXZlbHN7ZGlzcGxheTppbmxpbmUtYmxvY2s7cG9zaXRpb246YWJzb2x1dGU7bGVmdDoxMXB4O3JpZ2h0OnVuc2V0fVtkaXI9cnRsXS5oYW5kc29udGFibGUgdGggZGl2Lmh0X25lc3RpbmdMZXZlbHN7cmlnaHQ6MTFw''@;'; + put 'put ''eDtsZWZ0OnVuc2V0fS5oYW5kc29udGFibGUuaW5uZXJCb3JkZXJJbmxpbmVTdGFydCB0aCBkaXYuaHRfbmVzdGluZ0xldmVscywuaGFuZHNvbnRhYmxlLmlubmVyQm9yZGVySW5saW5lU3RhcnR+LmhhbmRzb250YWJsZSB0aCBkaXYuaHRfbmVzdGluZ0xldmVsc3tyaWdodDoxMHB4O2xlZnQ6''@;'; + put 'put ''dW5zZXR9W2Rpcj1ydGxdLmhhbmRzb250YWJsZS5pbm5lckJvcmRlcklubGluZVN0YXJ0IHRoIGRpdi5odF9uZXN0aW5nTGV2ZWxzLFtkaXI9cnRsXS5oYW5kc29udGFibGUuaW5uZXJCb3JkZXJJbmxpbmVTdGFydH4uaGFuZHNvbnRhYmxlIHRoIGRpdi5odF9uZXN0aW5nTGV2ZWxze2xlZnQ6''@;'; + put 'put ''MTBweDtyaWdodDp1bnNldH0uaGFuZHNvbnRhYmxlIHRoIHNwYW4uaHRfbmVzdGluZ0xldmVse2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5oYW5kc29udGFibGUgdGggc3Bhbi5odF9uZXN0aW5nTGV2ZWxfZW1wdHl7ZGlzcGxheTppbmxpbmUtYmxvY2s7d2lkdGg6MTBweDtoZWlnaHQ6MXB4O2Zs''@;'; + put 'put ''b2F0OmxlZnR9W2Rpcj1ydGxdLmhhbmRzb250YWJsZSB0aCBzcGFuLmh0X25lc3RpbmdMZXZlbF9lbXB0eXtmbG9hdDpyaWdodH0uaGFuZHNvbnRhYmxlIHRoIHNwYW4uaHRfbmVzdGluZ0xldmVsOmFmdGVye2NvbnRlbnQ6IlwyNTEwIjtmb250LXNpemU6OXB4O2Rpc3BsYXk6aW5saW5lLWJs''@;'; + put 'put ''b2NrO3Bvc2l0aW9uOnJlbGF0aXZlO2JvdHRvbTozcHh9LmhhbmRzb250YWJsZSB0aCBkaXYuaHRfbmVzdGluZ0J1dHRvbntkaXNwbGF5OmlubGluZS1ibG9jaztwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDotMnB4O2xlZnQ6dW5zZXQ7Y3Vyc29yOnBvaW50ZXJ9W2Rpcj1ydGxdLmhhbmRzb250''@;'; + put 'put ''YWJsZSB0aCBkaXYuaHRfbmVzdGluZ0J1dHRvbntsZWZ0Oi0ycHg7cmlnaHQ6dW5zZXR9LmhhbmRzb250YWJsZSB0aCBkaXYuaHRfbmVzdGluZ0J1dHRvbi5odF9uZXN0aW5nRXhwYW5kOmFmdGVye2NvbnRlbnQ6IisifS5oYW5kc29udGFibGUgdGggZGl2Lmh0X25lc3RpbmdCdXR0b24uaHRf''@;'; + put 'put ''bmVzdGluZ0NvbGxhcHNlOmFmdGVye2NvbnRlbnQ6Ii0ifS5oYW5kc29udGFibGUuaW5uZXJCb3JkZXJJbmxpbmVTdGFydCB0aCBkaXYuaHRfbmVzdGluZ0J1dHRvbiwuaGFuZHNvbnRhYmxlLmlubmVyQm9yZGVySW5saW5lU3RhcnR+LmhhbmRzb250YWJsZSB0aCBkaXYuaHRfbmVzdGluZ0J1''@;'; + put 'put ''dHRvbntyaWdodDowO2xlZnQ6dW5zZXR9W2Rpcj1ydGxdLmhhbmRzb250YWJsZS5pbm5lckJvcmRlcklubGluZVN0YXJ0IHRoIGRpdi5odF9uZXN0aW5nQnV0dG9uLFtkaXI9cnRsXS5oYW5kc29udGFibGUuaW5uZXJCb3JkZXJJbmxpbmVTdGFydH4uaGFuZHNvbnRhYmxlIHRoIGRpdi5odF9u''@;'; + put 'put ''ZXN0aW5nQnV0dG9ue2xlZnQ6MDtyaWdodDp1bnNldH1AZm9udC1mYWNle2ZvbnQtZmFtaWx5OnRleHQtc2VjdXJpdHktZGlzYztzcmM6dXJsKGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9ub3BwYS90ZXh0LXNlY3VyaXR5L21hc3Rlci9kaXN0L3RleHQtc2VjdXJpdHktZGlz''@;'; + put 'put ''Yy53b2ZmKX1ib2R5LGh0bWx7Zm9udC13ZWlnaHQ6NDAwIWltcG9ydGFudDtwYWRkaW5nOjA7bWFyZ2luOjB9Ym9keS5zaG91bGQtbG9naW4gY2xyLW1vZGFsLGh0bWwuc2hvdWxkLWxvZ2luIGNsci1tb2RhbHtkaXNwbGF5Om5vbmUhaW1wb3J0YW50fWJ1dHRvbjpmb2N1c3tvdXRsaW5lOm5v''@;'; + put 'put ''bmV9LnNsaWRlcntwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDozMjBweDttYXJnaW4tbGVmdDo3NXB4O21hcmdpbi10b3A6NzBweDtoZWlnaHQ6NXB4O292ZXJmbG93LXg6aGlkZGVufS5saW5le3Bvc2l0aW9uOmFic29sdXRlO29wYWNpdHk6LjQ7YmFja2dyb3VuZDojNzNENTQ0O3dpZHRoOjE1''@;'; + put 'put ''MCU7aGVpZ2h0OjVweH0uc3VibGluZXtwb3NpdGlvbjphYnNvbHV0ZTtiYWNrZ3JvdW5kOiM3M0Q1NDQ7aGVpZ2h0OjVweH0uaW5je2FuaW1hdGlvbjppbmNyZWFzZSAycyBpbmZpbml0ZX0uZGVje2FuaW1hdGlvbjpkZWNyZWFzZSAycyAuNXMgaW5maW5pdGV9QGtleWZyYW1lcyBpbmNyZWFz''@;'; + put 'put ''ZXswJXtsZWZ0Oi01JTt3aWR0aDo1JX10b3tsZWZ0OjEzMCU7d2lkdGg6MTAwJX19QGtleWZyYW1lcyBkZWNyZWFzZXswJXtsZWZ0Oi04MCU7d2lkdGg6ODAlfXRve2xlZnQ6MTEwJTt3aWR0aDoxMCV9fS5hcHAtbG9hZGluZ3tkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjth''@;'; + put 'put ''bGlnbi1pdGVtczpjZW50ZXI7aGVpZ2h0OjEwMHZoO2JhY2tncm91bmQ6IzMxNDM1MTtmbGV4LWRpcmVjdGlvbjpjb2x1bW47ei1pbmRleDoyMDAwO3Bvc2l0aW9uOmZpeGVkO2xlZnQ6MDt0b3A6MDtyaWdodDowO2JvdHRvbTowfS5oLWF1dG97aGVpZ2h0OmF1dG99Lm1pbi1oLTUwdmh7bWlu''@;'; + put 'put ''LWhlaWdodDo1MHZofS5oLTI0dmgsLmgtMjV2aHtoZWlnaHQ6MjV2aH0uaC03MHZoe2hlaWdodDo3MHZofS5oLTgwdmh7aGVpZ2h0Ojgwdmh9LnctNTB2d3t3aWR0aDo1MHZ3fS53LTEwMHt3aWR0aDoxMDAlfS53LTQwe3dpZHRoOjQwJX0ubWluLXctMHttaW4td2lkdGg6MHB4fS5teC01e21h''@;'; + put 'put ''cmdpbjowIDVweH0ubXktNXttYXJnaW46NXB4IDB9Lm15LTE1e21hcmdpbjoxNXB4IDB9Lm15LTEwLW14LWF1dG97bWFyZ2luOjEwcHggYXV0b30ubS0we21hcmdpbjowIWltcG9ydGFudH0ubS0xMHttYXJnaW46MTBweH0ubXQtMHttYXJnaW4tdG9wOjB9Lm10LTAtaXttYXJnaW4tdG9wOjAh''@;'; + put 'put ''aW1wb3J0YW50fS5tdC0zLW5lZ2F0aXZle21hcmdpbi10b3A6LTNweH0ubXQtNXttYXJnaW4tdG9wOjVweH0ubXQtMnttYXJnaW4tdG9wOjJweH0ubXQtMTB7bWFyZ2luLXRvcDoxMHB4fS5tdC0xNXttYXJnaW4tdG9wOjE1cHh9Lm10LTE3e21hcmdpbi10b3A6MTdweH0ubXQtMjB7bWFyZ2lu''@;'; + put 'put ''LXRvcDoyMHB4fS5tbC0we21hcmdpbi1sZWZ0OjB9Lm1sLTN7bWFyZ2luLWxlZnQ6M3B4fS5tbC0xMHttYXJnaW4tbGVmdDoxMHB4fS5tbC0xNXttYXJnaW4tbGVmdDoxNXB4fS5tbC0yMHttYXJnaW4tbGVmdDoyMHB4fS5tbC0yMC1pe21hcmdpbi1sZWZ0OjIwcHghaW1wb3J0YW50fS5tci0w''@;'; + put 'put ''e21hcmdpbi1yaWdodDowfS5tci01e21hcmdpbi1yaWdodDo1cHh9Lm1yLTEwe21hcmdpbi1yaWdodDoxMHB4fS5tci0xMnttYXJnaW4tcmlnaHQ6MTJweH0ubXItMjB7bWFyZ2luLXJpZ2h0OjIwcHh9Lm1iLTB7bWFyZ2luLWJvdHRvbTowfS5tYi01e21hcmdpbi1ib3R0b206NXB4fS5tYi0x''@;'; + put 'put ''MHttYXJnaW4tYm90dG9tOjEwcHh9Lm1iLTMwe21hcmdpbi1ib3R0b206MzBweH0ucC0we3BhZGRpbmc6MH0ucC0xMHtwYWRkaW5nOjEwcHh9LnBiLTB7cGFkZGluZy1ib3R0b206MH0ucGItMTB7cGFkZGluZy1ib3R0b206MTBweH0ucHktNXtwYWRkaW5nOjVweCAwfS5weS0xMHtwYWRkaW5n''@;'; + put 'put ''OjEwcHggMH0uYmFja2dyb3VuZC10cmFuc3BhcmVudHtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50fS5iYWNrZ3JvdW5kLXRyYW5zcGFyZW50LWl7YmFja2dyb3VuZDp0cmFuc3BhcmVudCFpbXBvcnRhbnR9LmNvbG9yLWdyYXl7Y29sb3I6IzVhNWE1YX0uY29sb3ItZGFyay1ncmF5e2NvbG9yOiM0''@;'; + put 'put ''OTU5Njd9LmNvbG9yLWRhcmtlci1ncmF5e2NvbG9yOiMzMTQzNTF9LmNvbG9yLXdoaXRle2NvbG9yOiNmZmZ9LmNvbG9yLWdyZWVue2NvbG9yOiM0YjllNGJ9LmNvbG9yLWRjLWdyZWVue2NvbG9yOiM4MWI0NDB9LmNvbG9yLXJlZHtjb2xvcjojZTQ1NDU0fS5jb2xvci1ibHVle2NvbG9yOiMz''@;'; + put 'put ''ZjhjYzN9LmNvbG9yLXllbGxvd3tjb2xvcjojZjFjNDBmfS5jdXJzb3ItcG9pbnRlcntjdXJzb3I6cG9pbnRlcn0ucG9pbnRlci1ldmVudHMtbm9uZXtwb2ludGVyLWV2ZW50czpub25lfS50ZXh0LWNlbnRlcnt0ZXh0LWFsaWduOmNlbnRlcn0uZm9udC1zaXplLTE1e2ZvbnQtc2l6ZToxNXB4''@;'; + put 'put ''fS5mb250LXNpemUtMTh7Zm9udC1zaXplOjE4cHh9LmZvbnQtYm9sZHtmb250LXdlaWdodDo3MDB9LmZvbnQtYm9sZC1pe2ZvbnQtd2VpZ2h0OjcwMCFpbXBvcnRhbnR9LmZvbnQtd2VpZ2h0LTMwMHtmb250LXdlaWdodDozMDB9LmZvbnQtd2VpZ2h0LTcwMHtmb250LXdlaWdodDo3MDB9Lndv''@;'; + put 'put ''cmQtYnJlYWt7d29yZC1icmVhazpicmVhay13b3JkfS53b3JkLWJyZWFrLWFsbHt3b3JkLWJyZWFrOmJyZWFrLWFsbH0ucG9zaXRpb24tcmVsYXRpdmV7cG9zaXRpb246cmVsYXRpdmV9LnBvc2l0aW9uLWFic29sdXRle3Bvc2l0aW9uOmFic29sdXRlfS5kLW5vbmV7ZGlzcGxheTpub25lfS5k''@;'; + put 'put ''LWJsb2Nre2Rpc3BsYXk6YmxvY2t9LmQtaW5saW5lLWJsb2Nre2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5kLWZsZXh7ZGlzcGxheTpmbGV4fS5kLWNvbnRlbnRze2Rpc3BsYXk6Y29udGVudHN9LmZsZXgtdW5zZXR7ZmxleDp1bnNldH0uYWxpZ24tc2VsZi1lbmR7YWxpZ24tc2VsZjpmbGV4LWVu''@;'; + put 'put ''ZH0uYWxpZ24tc2VsZi1zdGFydHthbGlnbi1zZWxmOmZsZXgtc3RhcnR9LmFsaWduLWl0ZW1zLWNlbnRlcnthbGlnbi1pdGVtczpjZW50ZXJ9Lmp1c3RpZnktY29udGVudC1jZW50ZXJ7anVzdGlmeS1jb250ZW50OmNlbnRlcn0uanVzdGlmeS1jb250ZW50LWNlbnRlci1pe2p1c3RpZnktY29u''@;'; + put 'put ''dGVudDpjZW50ZXIhaW1wb3J0YW50fS5qdXN0aWZ5LWNvbnRlbnQtc3RhcnR7anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnR9Lmp1c3RpZnktY29udGVudC1lbmR7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kfS5qdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbntqdXN0aWZ5LWNvbnRlbnQ6c3BhY2Ut''@;'; + put 'put ''YmV0d2Vlbn0uanVzdGlmeS1jb250ZW50LWFyb3VuZHtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYXJvdW5kfS5mbGV4LWNvbHVtbntmbGV4LWRpcmVjdGlvbjpjb2x1bW59Lm92ZXJmbG93LWF1dG97b3ZlcmZsb3c6YXV0b30uei1pbmRleC1oaWdoZXN0e3otaW5kZXg6MTAwMDAwMDB9LnZlcnRp''@;'; + put 'put ''Y2FsLWFsaWduLW1pZGRsZXt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9Lmljb24tZGMtZmlsbHtmaWxsOiM4MWI0NDB9LmRhdGFncmlkLWN1c3RvbS1mb290ZXIgLmRhdGFncmlkLW91dGVyLXdyYXBwZXJ7d2lkdGg6MTAwJX0ucHJvZ3Jlc1N0YXRpY3ttYXJnaW4tdG9wOi02cHghaW1wb3J0YW50''@;'; + put 'put ''O3Bvc2l0aW9uOmFic29sdXRlIWltcG9ydGFudDt6LWluZGV4OjEwMDAwIWltcG9ydGFudH0ucHJvZ3Jlc3MsLnByb2dyZXNzLXN0YXRpY3tiYWNrZ3JvdW5kLWNvbG9yOiNmNWY2ZmU7Ym9yZGVyLXJhZGl1czowO2ZvbnQtc2l6ZTppbmhlcml0O2hlaWdodDo2cHg7bWFyZ2luOjA7bWF4LWhl''@;'; + put 'put ''aWdodDouNTgzMzMzcmVtO21pbi1oZWlnaHQ6LjE2NjY2N3JlbTtvdmVyZmxvdzpoaWRkZW47ZGlzcGxheTpibG9jazt3aWR0aDpjYWxjKDEwMCUgLSA2M3B4KX0ucHJvZ3Jlc3MubG9vcDphZnRlcnthbmltYXRpb246Y2xyLXByb2dyZXNzLWxvb3BlciAxLjVzIGVhc2UtaW4tb3V0IGluZmlu''@;'; + put 'put ''aXRlO2NvbnRlbnQ6IiAiO3RvcDouMTY2NjY3cmVtO2JvdHRvbTowO2xlZnQ6MDtwb3NpdGlvbjphYnNvbHV0ZTtkaXNwbGF5OmJsb2NrO2JhY2tncm91bmQtY29sb3I6IzYwYjUxNTt3aWR0aDo3NSV9LmJhZGdlLXdhcm5pbmd7Y29sb3I6I2ZmZiFpbXBvcnRhbnR9LmNvbnRlbnQtY29udGFp''@;'; + put 'put ''bmVyIC5jb250ZW50LWFyZWEgLmNhcmQtaGVhZGVyIGgze21hcmdpbi10b3A6MTBweH0ubW9kYWwtaGVhZGVyIC5jbG9zZSBjbHItaWNvbntkaXNwbGF5Om5vbmV9LnNob3ctY2xvc2UgLm1vZGFsLWhlYWRlciAuY2xvc2UgY2xyLWljb257ZGlzcGxheTppbmxpbmUtYmxvY2s7cG9zaXRpb246''@;'; + put 'put ''cmVsYXRpdmU7dG9wOi0xOHB4O3JpZ2h0Oi0xMHB4fS5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtZGFuZ2Vye2JhY2tncm91bmQ6I0Q5NEIyRTtjb2xvcjojZmZmO2JvcmRlcjpub25lfS5jYXJkLWhlYWRlcntmb250LXdlaWdodDozMDB9LnNlbGVjdCBzZWxlY3Q6Zm9jdXN7Ym9yZGVyLWJvdHRv''@;'; + put 'put ''bToxcHggc29saWQgIzQ5NTk2NztiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxODBkZWcsdHJhbnNwYXJlbnQgOTUlLCM0OTVhNjcgMCkgbm8tcmVwZWF0fS5jbHItdHJlZW5vZGUtY2hpbGRyZW57bWFyZ2luLWxlZnQ6LjJyZW0haW1wb3J0YW50fS50YWJsZS1hY3RpdmV7YmFja2dyb3Vu''@;'; + put 'put ''ZDojZDhlM2U5IWltcG9ydGFudDtjb2xvcjojMDAwIWltcG9ydGFudH0udGFibGUtYWN0aXZlOmZvY3Vze2JhY2tncm91bmQ6I2Q4ZTNlOX1jbHItc2VsZWN0LWNvbnRhaW5lciAuY2xyLWNvbnRyb2wtY29udGFpbmVyLGNsci1zZWxlY3QtY29udGFpbmVyIC5jbHItY29udHJvbC1jb250YWlu''@;'; + put 'put ''ZXIgLmNsci1zZWxlY3Qtd3JhcHBlcixjbHItc2VsZWN0LWNvbnRhaW5lciBzZWxlY3R7d2lkdGg6MTAwJX10Ym9keXtmb250LXdlaWdodDo0MDB9aDMsaDR7Y29sb3I6IzU4NTg1ODtmb250LXdlaWdodDo0MDA7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO2xpbmUtaGVpZ2h0OjFyZW07bWFyZ2lu''@;'; + put 'put ''LXRvcDoxcmVtO21hcmdpbi1ib3R0b206MH1oMSxoMntjb2xvcjojNTg1ODU4O2ZvbnQtd2VpZ2h0OjQwMDtsZXR0ZXItc3BhY2luZzpub3JtYWw7bGluZS1oZWlnaHQ6MnJlbTttYXJnaW4tdG9wOjFyZW07bWFyZ2luLWJvdHRvbTowfWNsci1pY29uLmlzLWluZm97ZmlsbDojODBiNDQxfS5k''@;'; + put 'put ''YXRhZ3JpZC1ob3N0LC5kYXRhZ3JpZC1vdmVybGF5LXdyYXBwZXJ7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5Oi13ZWJraXQtYm94IWltcG9ydGFudH0uYnRuLmJ0bi1kYW5nZXIsLmJ0bi5idG4td2FybmluZ3tib3JkZXItY29sb3I6I2VmNGYyZTtiYWNrZ3JvdW5kLWNvbG9yOiNkOTRi''@;'; + put 'put ''MmU7Y29sb3I6I2ZmZn0uZC1ub25le2Rpc3BsYXk6bm9uZSFpbXBvcnRhbnR9LmQtYmxvY2t7ZGlzcGxheTpibG9jayFpbXBvcnRhbnR9LmhhbmRzb250YWJsZSAuaHRBdXRvY29tcGxldGVBcnJvd3tjb2xvcjojODI4MjgyfS5oYW5kc29udGFibGUubGlzdGJveHtwYWRkaW5nOjVweCAwIDVw''@;'; + put 'put ''eCA1cHg7Ym94LXNoYWRvdzowIDRweCAyMHB4ICMwMDAwMDA3MH0uaGFuZHNvbnRhYmxlIHRkLmh0SW52YWxpZHtiYWNrZ3JvdW5kOnJnYmEoMjMwLDM5LDAsLjY3ODQzMTM3MjUpIWltcG9ydGFudDtib3JkZXI6MXB4IHNvbGlkIHJlZCFpbXBvcnRhbnQ7Y29sb3I6I2ZmZiFpbXBvcnRhbnR9''@;'; + put 'put ''Lm1hcmdpbi10b3AtMjB7bWFyZ2luLXRvcDoyMHB4fS5oaWRkZW57ZGlzcGxheTpub25lIWltcG9ydGFudH1AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpey5kLW1kLW5vbmV7ZGlzcGxheTpub25lIWltcG9ydGFudH0uZC1tZC1pbmxpbmV7ZGlzcGxheTppbmxpbmUhaW1wb3J0YW50fS5kLW1k''@;'; + put 'put ''LWlubGluZS1ibG9ja3tkaXNwbGF5OmlubGluZS1ibG9jayFpbXBvcnRhbnR9LmQtbWQtYmxvY2t7ZGlzcGxheTpibG9jayFpbXBvcnRhbnR9LmQtbWQtdGFibGV7ZGlzcGxheTp0YWJsZSFpbXBvcnRhbnR9LmQtbWQtdGFibGUtY2VsbHtkaXNwbGF5OnRhYmxlLWNlbGwhaW1wb3J0YW50fS5k''@;'; + put 'put ''LW1kLWZsZXh7ZGlzcGxheTpmbGV4IWltcG9ydGFudH0uZC1tZC1pbmxpbmUtZmxleHtkaXNwbGF5OmlubGluZS1mbGV4IWltcG9ydGFudH19LmRhdGFncmlkLWJvZHl7cGFkZGluZy1ib3R0b206MnJlbSFpbXBvcnRhbnR9LmFib3J0TXNne3doaXRlLXNwYWNlOnByZS13cmFwO2ZvbnQtZmFt''@;'; + put 'put ''aWx5Om1vbm9zcGFjZX0jZ3JhcGggc3Zne2hlaWdodDoxMDAlO3dpZHRoOjEwMCV9Lm5vLXRhYmxlLXNlbGVjdGVke2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpjZW50ZXI7cG9zaXRpb246YWJzb2x1dGU7YmFj''@;'; + put 'put ''a2dyb3VuZDp3aGl0ZTt6LWluZGV4OjEwO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7dG9wOjB9LmNvcHlSaWdodHtiYWNrZ3JvdW5kOiM0OTU5NjchaW1wb3J0YW50O2NvbG9yOiNmZmY7ZGlzcGxheTpmbGV4IWltcG9ydGFudDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2FsaWduLWl0ZW1zOmNl''@;'; + put 'put ''bnRlcjtwYWRkaW5nOjVweCAwIDRweDt6LWluZGV4OjEwMH0ubmF2LXRyZWU+Y2xyLXRyZWUtbm9kZS5jbHItZXhwYW5kZWR7ZGlzcGxheTppbmxpbmUtYmxvY2shaW1wb3J0YW50fWNsci10cmVlLW5vZGV7b3ZlcmZsb3cteTp2aXNpYmxlfWNsci10cmVlLW5vZGU6Zm9jdXN7b3V0bGluZTpu''@;'; + put 'put ''b25lIWltcG9ydGFudH1jbHItdHJlZS1ub2RlIC5jbHItdHJlZW5vZGUtY2FyZXR7d2lkdGg6YXV0byFpbXBvcnRhbnQ7aGVpZ2h0OmF1dG8haW1wb3J0YW50fWNsci10cmVlLW5vZGUgLmNsci10cmVlbm9kZS1zcGlubmVyLWNvbnRhaW5lcntwYWRkaW5nOjAgOHB4O3dpZHRoOmF1dG87aGVp''@;'; + put 'put ''Z2h0OmF1dG87ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcn1jbHItdHJlZS1ub2RlIC5jbHItdHJlZS1ub2RlLWNvbnRlbnQtY29udGFpbmVyOmZvY3Vze291dGxpbmU6bm9uZSFpbXBvcnRhbnR9LmNsci10cmVlbm9kZS1jb250ZW50IHB7d2hpdGUtc3BhY2U6bm93cmFwfS5zZWFy''@;'; + put 'put ''Y2gtbm9kZXttYXJnaW4tYm90dG9tOjVweH0udHJlZS1zZWFyY2gtd3JhcHBlcntwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyfS50cmVlLXNlYXJjaC13cmFwcGVyIGNsci1pbnB1dC1jb250YWluZXJ7bWFyZ2luOjB9LnRyZWUtc2VhcmNoLXdyYXBw''@;'; + put 'put ''ZXIgY2xyLWljb257cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MDtib3R0b206MDttYXJnaW46NXB4IDAgMDtiYWNrZ3JvdW5kOndoaXRlO2N1cnNvcjpwb2ludGVyfS5jbHItdHJlZS1ub2Rle292ZXJmbG93OnZpc2libGUhaW1wb3J0YW50fS5jb250ZW50LWNvbnRhaW5lcnt3aWR0aDoxMDAl''@;'; + put 'put ''fUAtbW96LWRvY3VtZW50IHVybC1wcmVmaXgoKXsud3RIb2xkZXJ7d2lkdGg6MTAwJSFpbXBvcnRhbnR9fWlucHV0OjotbXMtY2xlYXJ7ZGlzcGxheTpub25lfUBtZWRpYSBhbGwgYW5kICgtbXMtaGlnaC1jb250cmFzdDogbm9uZSksKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpe2Nsci10''@;'; + put 'put ''cmVlLW5vZGUuY2xyLWV4cGFuZGVke3BhZGRpbmctYm90dG9tOjIwcHg7bWluLWhlaWdodDphdXRvfS5jbHItdHJlZS1ub2Rle21pbi1oZWlnaHQ6MjRweH0uY2xyLXRyZWVub2RlLWNoaWxkcmVue292ZXJmbG93OmhpZGRlbiFpbXBvcnRhbnR9LmNsci10cmVlbm9kZS1jb250ZW50IC5jbHIt''@;'; + put 'put ''aWNvbiwuY2xyLXRyZWVub2RlLWNvbnRlbnQgY2xyLWljb257bWluLXdpZHRoOjE2cHg7bWluLWhlaWdodDoxNnB4fS50cmVlLXNlYXJjaC13cmFwcGVyIGNsci1pY29ue2JvdHRvbToycHh9LmNvbnRlbnQtY29udGFpbmVye2hlaWdodDoxMDAlfS5jb250ZW50LWFyZWE+LmNhcmR7bWFyZ2lu''@;'; + put 'put ''LWJvdHRvbToyMHB4fS5yZWNvcmQtZWRpdC1tb2RhbCB0ZXh0YXJlYXttaW4taGVpZ2h0OjQycHh9fS5ib3JkZXItYm90dG9tLWRpdmlkZXJ7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI2QzZDNkM30ubG9hZGluZ1NwaW5uZXJ7aGVpZ2h0Ojcwdmg7ZmxleDoxO2Rpc3BsYXk6ZmxleDtqdXN0''@;'; + put 'put ''aWZ5LWNvbnRlbnQ6Y2VudGVyO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpjZW50ZXJ9LmRpc2FibGUtcGFzc3dvcmQtbWFuYWdlcnstd2Via2l0LXRleHQtc2VjdXJpdHk6ZGlzYzstbW96LXRleHQtc2VjdXJpdHk6ZGlzYzt0ZXh0LXNlY3VyaXR5OmRpc2M7Zm9udC1mYW1p''@;'; + put 'put ''bHk6dGV4dC1zZWN1cml0eS1kaXNjfS5yZWxhdGl2ZXtwb3NpdGlvbjpyZWxhdGl2ZX1oci5saWdodHtib3JkZXI6MDtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZGVkZWRlfS5zcGlubmVye2JhY2tncm91bmQ6dXJsKC9TQVNTdG9yZWRQcm9jZXNzLz9fUFJPR1JBTT1wWktkNkY5NWpFQ3ZS''@;'; + put 'put ''UWxOMExDZmRBPT0vd2ViOS9pbWFnZXMvc3Bpbm5lci4xNmY3NjNjZWJjNmI2NGRmLXN2ZykhaW1wb3J0YW50fS5jbHItc2VsZWN0LXdyYXBwZXI6YWZ0ZXJ7YmFja2dyb3VuZDp1cmwoL1NBU1N0b3JlZFByb2Nlc3MvP19QUk9HUkFNPXBaS2Q2Rjk1akVDdlJRbE4wTENmZEE9PS93ZWI5L2lt''@;'; + put 'put ''YWdlcy9jYXJldC42NWYxZmMwYWNiZTRjN2ZmLXN2ZykhaW1wb3J0YW50fTpyb290ey0tY2RzLWdsb2JhbC1iYXNlOjIwfWh0bWx7Zm9udC1mYW1pbHk6c2Fucy1zZXJpZjtsaW5lLWhlaWdodDoxLjE1Oy1tcy10ZXh0LXNpemUtYWRqdXN0OjEwMCU7LXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0''@;'; + put 'put ''OjEwMCV9Ym9keXttYXJnaW46MH1hcnRpY2xlLGFzaWRlLGRldGFpbHMsZmlnY2FwdGlvbixmaWd1cmUsZm9vdGVyLGhlYWRlcixtYWluLG1lbnUsbmF2LHNlY3Rpb24sc3VtbWFyeXtkaXNwbGF5OmJsb2NrfWF1ZGlvLGNhbnZhcyxwcm9ncmVzcyx2aWRlb3tkaXNwbGF5OmlubGluZS1ibG9j''@;'; + put 'put ''a31hdWRpbzpub3QoW2NvbnRyb2xzXSl7ZGlzcGxheTpub25lO2hlaWdodDowfXByb2dyZXNze3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lfXRlbXBsYXRlLFtoaWRkZW5de2Rpc3BsYXk6bm9uZX1he2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7LXdlYmtpdC10ZXh0LWRlY29yYXRpb24t''@;'; + put 'put ''c2tpcDpvYmplY3RzfWE6YWN0aXZlLGE6aG92ZXJ7b3V0bGluZS13aWR0aDowfWFiYnJbdGl0bGVde2JvcmRlci1ib3R0b206bm9uZTt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lOy13ZWJraXQtdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZSBkb3R0ZWQ7dGV4dC1kZWNvcmF0aW9uOnVuZGVy''@;'; + put 'put ''bGluZSBkb3R0ZWR9YixzdHJvbmd7Zm9udC13ZWlnaHQ6aW5oZXJpdH1iLHN0cm9uZ3tmb250LXdlaWdodDpib2xkZXJ9ZGZue2ZvbnQtc3R5bGU6aXRhbGljfWgxe2ZvbnQtc2l6ZToyZW07bWFyZ2luOi42N2VtIDB9bWFya3tiYWNrZ3JvdW5kLWNvbG9yOiNmZjA7Y29sb3I6IzAwMH1zbWFs''@;'; + put 'put ''bHtmb250LXNpemU6ODAlfXN1YixzdXB7Zm9udC1zaXplOjc1JTtsaW5lLWhlaWdodDowO3Bvc2l0aW9uOnJlbGF0aXZlO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lfXN1Yntib3R0b206LS4yNWVtfXN1cHt0b3A6LS41ZW19aW1ne2JvcmRlci1zdHlsZTpub25lfXN2Zzpub3QoOnJvb3Qpe292''@;'; + put 'put ''ZXJmbG93OmhpZGRlbn1jb2RlLGtiZCxwcmUsc2FtcHtmb250LWZhbWlseTptb25vc3BhY2U7Zm9udC1zaXplOjFlbX1maWd1cmV7bWFyZ2luOjFlbSA0MHB4fWhye2JveC1zaXppbmc6Y29udGVudC1ib3g7aGVpZ2h0OjA7b3ZlcmZsb3c6dmlzaWJsZX1idXR0b24saW5wdXQsb3B0Z3JvdXAs''@;'; + put 'put ''c2VsZWN0LHRleHRhcmVhe2ZvbnQ6aW5oZXJpdDttYXJnaW46MH10ZXh0YXJlYXtsaW5lLWhlaWdodDoxLjE1fW9wdGdyb3Vwe2ZvbnQtd2VpZ2h0OjcwMH1idXR0b24saW5wdXR7b3ZlcmZsb3c6dmlzaWJsZX1idXR0b24sc2VsZWN0e3RleHQtdHJhbnNmb3JtOm5vbmV9YnV0dG9uLGh0bWwg''@;'; + put 'put ''W3R5cGU9YnV0dG9uXSxbdHlwZT1yZXNldF0sW3R5cGU9c3VibWl0XXstd2Via2l0LWFwcGVhcmFuY2U6YnV0dG9ufWJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixbdHlwZT1idXR0b25dOjotbW96LWZvY3VzLWlubmVyLFt0eXBlPXJlc2V0XTo6LW1vei1mb2N1cy1pbm5lcixbdHlwZT1zdWJt''@;'; + put 'put ''aXRdOjotbW96LWZvY3VzLWlubmVye2JvcmRlci1zdHlsZTpub25lO3BhZGRpbmc6MH1idXR0b246LW1vei1mb2N1c3JpbmcsW3R5cGU9YnV0dG9uXTotbW96LWZvY3VzcmluZyxbdHlwZT1yZXNldF06LW1vei1mb2N1c3JpbmcsW3R5cGU9c3VibWl0XTotbW96LWZvY3VzcmluZ3tvdXRsaW5l''@;'; + put 'put ''OjFweCBkb3R0ZWQgQnV0dG9uVGV4dH1maWVsZHNldHtib3JkZXI6MXB4IHNvbGlkIHNpbHZlcjttYXJnaW46MCAycHg7cGFkZGluZzouMzVlbSAuNjI1ZW0gLjc1ZW19bGVnZW5ke2JveC1zaXppbmc6Ym9yZGVyLWJveDtjb2xvcjppbmhlcml0O2Rpc3BsYXk6dGFibGU7bWF4LXdpZHRoOjEw''@;'; + put 'put ''MCU7cGFkZGluZzowO3doaXRlLXNwYWNlOm5vcm1hbH10ZXh0YXJlYXtvdmVyZmxvdzphdXRvfVt0eXBlPWNoZWNrYm94XSxbdHlwZT1yYWRpb117Ym94LXNpemluZzpib3JkZXItYm94O3BhZGRpbmc6MH1bdHlwZT1udW1iZXJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFt0eXBlPW51''@;'; + put 'put ''bWJlcl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b257aGVpZ2h0OmF1dG99W3R5cGU9c2VhcmNoXXstd2Via2l0LWFwcGVhcmFuY2U6dGV4dGZpZWxkO291dGxpbmUtb2Zmc2V0Oi0ycHh9W3R5cGU9c2VhcmNoXTo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixbdHlwZT1zZWFyY2hd''@;'; + put 'put ''Ojotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uey13ZWJraXQtYXBwZWFyYW5jZTpub25lfTo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b257LXdlYmtpdC1hcHBlYXJhbmNlOmJ1dHRvbjtmb250OmluaGVyaXR9OnJvb3R7LS1jbHItY29sb3ItbmV1dHJhbC0wOndoaXRlOy0tY2xyLWNvbG9y''@;'; + put 'put ''LW5ldXRyYWwtNTA6I2ZhZmFmYTstLWNsci1jb2xvci1uZXV0cmFsLTEwMDojZjJmMmYyOy0tY2xyLWNvbG9yLW5ldXRyYWwtMjAwOiNlOGU4ZTg7LS1jbHItY29sb3ItbmV1dHJhbC0zMDA6I2RlZGVkZTstLWNsci1jb2xvci1uZXV0cmFsLTQwMDojY2NjY2NjOy0tY2xyLWNvbG9yLW5ldXRy''@;'; + put 'put ''YWwtNTAwOiNiM2IzYjM7LS1jbHItY29sb3ItbmV1dHJhbC02MDA6IzhjOGM4YzstLWNsci1jb2xvci1uZXV0cmFsLTcwMDojNjY2NjY2Oy0tY2xyLWNvbG9yLW5ldXRyYWwtODAwOiM0NTQ1NDU7LS1jbHItY29sb3ItbmV1dHJhbC05MDA6IzMzMzMzMzstLWNsci1jb2xvci1uZXV0cmFsLTEw''@;'; + put 'put ''MDA6YmxhY2s7LS1jbHItY29sb3Itb24tbmV1dHJhbC0wOmJsYWNrOy0tY2xyLWNvbG9yLW9uLW5ldXRyYWwtNTA6YmxhY2s7LS1jbHItY29sb3Itb24tbmV1dHJhbC0xMDA6YmxhY2s7LS1jbHItY29sb3Itb24tbmV1dHJhbC0yMDA6YmxhY2s7LS1jbHItY29sb3Itb24tbmV1dHJhbC0zMDA6''@;'; + put 'put ''YmxhY2s7LS1jbHItY29sb3Itb24tbmV1dHJhbC00MDA6YmxhY2s7LS1jbHItY29sb3Itb24tbmV1dHJhbC01MDA6YmxhY2s7LS1jbHItY29sb3Itb24tbmV1dHJhbC02MDA6d2hpdGU7LS1jbHItY29sb3Itb24tbmV1dHJhbC03MDA6d2hpdGU7LS1jbHItY29sb3Itb24tbmV1dHJhbC04MDA6''@;'; + put 'put ''d2hpdGU7LS1jbHItY29sb3Itb24tbmV1dHJhbC05MDA6d2hpdGU7LS1jbHItY29sb3Itb24tbmV1dHJhbC0xMDAwOndoaXRlOy0tY2xyLWNvbG9yLWFjdGlvbi01MDojZTNmNWZjOy0tY2xyLWNvbG9yLWFjdGlvbi0xMDA6I2M4ZWFmOTstLWNsci1jb2xvci1hY3Rpb24tMjAwOiM5YmQ4ZjM7''@;'; + put 'put ''LS1jbHItY29sb3ItYWN0aW9uLTMwMDojNzljNmU2Oy0tY2xyLWNvbG9yLWFjdGlvbi00MDA6IzQ5YWVkYTstLWNsci1jb2xvci1hY3Rpb24tNTAwOiMxNzliZDM7LS1jbHItY29sb3ItYWN0aW9uLTYwMDojMDA3MmEzOy0tY2xyLWNvbG9yLWFjdGlvbi03MDA6IzAwNjQ4ZjstLWNsci1jb2xv''@;'; + put 'put ''ci1hY3Rpb24tODAwOiMwMDU2N2E7LS1jbHItY29sb3ItYWN0aW9uLTkwMDojMDA0YjZiOy0tY2xyLWNvbG9yLWFjdGlvbi0xMDAwOiMwMDM2NGQ7LS1jbHItY29sb3Itb24tYWN0aW9uLTUwOmJsYWNrOy0tY2xyLWNvbG9yLW9uLWFjdGlvbi0xMDA6YmxhY2s7LS1jbHItY29sb3Itb24tYWN0''@;'; + put 'put ''aW9uLTIwMDpibGFjazstLWNsci1jb2xvci1vbi1hY3Rpb24tMzAwOmJsYWNrOy0tY2xyLWNvbG9yLW9uLWFjdGlvbi00MDA6YmxhY2s7LS1jbHItY29sb3Itb24tYWN0aW9uLTUwMDpibGFjazstLWNsci1jb2xvci1vbi1hY3Rpb24tNjAwOndoaXRlOy0tY2xyLWNvbG9yLW9uLWFjdGlvbi03''@;'; + put 'put ''MDA6d2hpdGU7LS1jbHItY29sb3Itb24tYWN0aW9uLTgwMDp3aGl0ZTstLWNsci1jb2xvci1vbi1hY3Rpb24tOTAwOndoaXRlOy0tY2xyLWNvbG9yLW9uLWFjdGlvbi0xMDAwOndoaXRlOy0tY2xyLWNvbG9yLXNlY29uZGFyeS1hY3Rpb24tNTA6I2Y3ZTZmZjstLWNsci1jb2xvci1zZWNvbmRh''@;'; + put 'put ''cnktYWN0aW9uLTEwMDojZTZjYWYxOy0tY2xyLWNvbG9yLXNlY29uZGFyeS1hY3Rpb24tMjAwOiNkMmFhZTQ7LS1jbHItY29sb3Itc2Vjb25kYXJ5LWFjdGlvbi0zMDA6I2MwOTBkNTstLWNsci1jb2xvci1zZWNvbmRhcnktYWN0aW9uLTQwMDojYWY3M2M5Oy0tY2xyLWNvbG9yLXNlY29uZGFy''@;'; + put 'put ''eS1hY3Rpb24tNTAwOiM5ZTU3YmM7LS1jbHItY29sb3Itc2Vjb25kYXJ5LWFjdGlvbi02MDA6IzhhMzlhYzstLWNsci1jb2xvci1zZWNvbmRhcnktYWN0aW9uLTcwMDojNzgxZDlmOy0tY2xyLWNvbG9yLXNlY29uZGFyeS1hY3Rpb24tODAwOiM2ODAwOTQ7LS1jbHItY29sb3Itc2Vjb25kYXJ5''@;'; + put 'put ''LWFjdGlvbi05MDA6IzRmMDA3MDstLWNsci1jb2xvci1zZWNvbmRhcnktYWN0aW9uLTEwMDA6IzMyMDA0NzstLWNsci1jb2xvci1vbi1zZWNvbmRhcnktYWN0aW9uLTUwOmJsYWNrOy0tY2xyLWNvbG9yLW9uLXNlY29uZGFyeS1hY3Rpb24tMTAwOmJsYWNrOy0tY2xyLWNvbG9yLW9uLXNlY29u''@;'; + put 'put ''ZGFyeS1hY3Rpb24tMjAwOmJsYWNrOy0tY2xyLWNvbG9yLW9uLXNlY29uZGFyeS1hY3Rpb24tMzAwOmJsYWNrOy0tY2xyLWNvbG9yLW9uLXNlY29uZGFyeS1hY3Rpb24tNDAwOmJsYWNrOy0tY2xyLWNvbG9yLW9uLXNlY29uZGFyeS1hY3Rpb24tNTAwOndoaXRlOy0tY2xyLWNvbG9yLW9uLXNl''@;'; + put 'put ''Y29uZGFyeS1hY3Rpb24tNjAwOndoaXRlOy0tY2xyLWNvbG9yLW9uLXNlY29uZGFyeS1hY3Rpb24tNzAwOndoaXRlOy0tY2xyLWNvbG9yLW9uLXNlY29uZGFyeS1hY3Rpb24tODAwOndoaXRlOy0tY2xyLWNvbG9yLW9uLXNlY29uZGFyeS1hY3Rpb24tOTAwOndoaXRlOy0tY2xyLWNvbG9yLW9u''@;'; + put 'put ''LXNlY29uZGFyeS1hY3Rpb24tMTAwMDp3aGl0ZTstLWNsci1jb2xvci1kYW5nZXItNTA6I2ZmZjJmMDstLWNsci1jb2xvci1kYW5nZXItMTAwOiNmZWRkZDc7LS1jbHItY29sb3ItZGFuZ2VyLTIwMDojZmNjNWJiOy0tY2xyLWNvbG9yLWRhbmdlci0zMDA6I2Y1OWU4ZjstLWNsci1jb2xvci1k''@;'; + put 'put ''YW5nZXItNDAwOiNmMjc5NjM7LS1jbHItY29sb3ItZGFuZ2VyLTUwMDojZjM1ZTQ0Oy0tY2xyLWNvbG9yLWRhbmdlci02MDA6I2Y1MmQwYTstLWNsci1jb2xvci1kYW5nZXItNzAwOiNkYjIxMDA7LS1jbHItY29sb3ItZGFuZ2VyLTgwMDojYzIxZDAwOy0tY2xyLWNvbG9yLWRhbmdlci05MDA6''@;'; + put 'put ''Izk5MTcwMDstLWNsci1jb2xvci1kYW5nZXItMTAwMDojNjYwZjAwOy0tY2xyLWNvbG9yLW9uLWRhbmdlci01MDpibGFjazstLWNsci1jb2xvci1vbi1kYW5nZXItMTAwOmJsYWNrOy0tY2xyLWNvbG9yLW9uLWRhbmdlci0yMDA6YmxhY2s7LS1jbHItY29sb3Itb24tZGFuZ2VyLTMwMDpibGFj''@;'; + put 'put ''azstLWNsci1jb2xvci1vbi1kYW5nZXItNDAwOmJsYWNrOy0tY2xyLWNvbG9yLW9uLWRhbmdlci01MDA6YmxhY2s7LS1jbHItY29sb3Itb24tZGFuZ2VyLTYwMDpibGFjazstLWNsci1jb2xvci1vbi1kYW5nZXItNzAwOndoaXRlOy0tY2xyLWNvbG9yLW9uLWRhbmdlci04MDA6d2hpdGU7LS1j''@;'; + put 'put ''bHItY29sb3Itb24tZGFuZ2VyLTkwMDp3aGl0ZTstLWNsci1jb2xvci1vbi1kYW5nZXItMTAwMDp3aGl0ZTstLWNsci1jb2xvci13YXJuaW5nLTUwOiNmZmZhZTY7LS1jbHItY29sb3Itd2FybmluZy0xMDA6I2ZmZjRjNzstLWNsci1jb2xvci13YXJuaW5nLTIwMDojZmZlZWE4Oy0tY2xyLWNv''@;'; + put 'put ''bG9yLXdhcm5pbmctMzAwOiNmZWUyNzI7LS1jbHItY29sb3Itd2FybmluZy00MDA6I2Y4Y2YyYTstLWNsci1jb2xvci13YXJuaW5nLTUwMDojZWZjMDA2Oy0tY2xyLWNvbG9yLXdhcm5pbmctNjAwOiNlNmIwMDA7LS1jbHItY29sb3Itd2FybmluZy03MDA6I2Q2OWEwMDstLWNsci1jb2xvci13''@;'; + put 'put ''YXJuaW5nLTgwMDojYWQ3NjAwOy0tY2xyLWNvbG9yLXdhcm5pbmctOTAwOiM4ZjVhMDA7LS1jbHItY29sb3Itd2FybmluZy0xMDAwOiM2MTMyMDA7LS1jbHItY29sb3Itb24td2FybmluZy01MDpibGFjazstLWNsci1jb2xvci1vbi13YXJuaW5nLTEwMDpibGFjazstLWNsci1jb2xvci1vbi13''@;'; + put 'put ''YXJuaW5nLTIwMDpibGFjazstLWNsci1jb2xvci1vbi13YXJuaW5nLTMwMDpibGFjazstLWNsci1jb2xvci1vbi13YXJuaW5nLTQwMDpibGFjazstLWNsci1jb2xvci1vbi13YXJuaW5nLTUwMDpibGFjazstLWNsci1jb2xvci1vbi13YXJuaW5nLTYwMDpibGFjazstLWNsci1jb2xvci1vbi13''@;'; + put 'put ''YXJuaW5nLTcwMDpibGFjazstLWNsci1jb2xvci1vbi13YXJuaW5nLTgwMDpibGFjazstLWNsci1jb2xvci1vbi13YXJuaW5nLTkwMDpibGFjazstLWNsci1jb2xvci1vbi13YXJuaW5nLTEwMDA6d2hpdGU7LS1jbHItY29sb3Itc3VjY2Vzcy01MDojZGZmMGQwOy0tY2xyLWNvbG9yLXN1Y2Nl''@;'; + put 'put ''c3MtMTAwOiNiY2U0OWE7LS1jbHItY29sb3Itc3VjY2Vzcy0yMDA6IzczZGMxZTstLWNsci1jb2xvci1zdWNjZXNzLTMwMDojNjhjNzFhOy0tY2xyLWNvbG9yLXN1Y2Nlc3MtNDAwOiM1ZWI3MTU7LS1jbHItY29sb3Itc3VjY2Vzcy01MDA6IzVhYTIyMDstLWNsci1jb2xvci1zdWNjZXNzLTYw''@;'; + put 'put ''MDojNGI5NzBjOy0tY2xyLWNvbG9yLXN1Y2Nlc3MtNzAwOiMzYzg1MDA7LS1jbHItY29sb3Itc3VjY2Vzcy04MDA6IzMwNmIwMDstLWNsci1jb2xvci1zdWNjZXNzLTkwMDojMjU1MjAwOy0tY2xyLWNvbG9yLXN1Y2Nlc3MtMTAwMDojMWU0MjAwOy0tY2xyLWNvbG9yLW9uLXN1Y2Nlc3MtNTA6''@;'; + put 'put ''YmxhY2s7LS1jbHItY29sb3Itb24tc3VjY2Vzcy0xMDA6YmxhY2s7LS1jbHItY29sb3Itb24tc3VjY2Vzcy0yMDA6YmxhY2s7LS1jbHItY29sb3Itb24tc3VjY2Vzcy0zMDA6YmxhY2s7LS1jbHItY29sb3Itb24tc3VjY2Vzcy00MDA6YmxhY2s7LS1jbHItY29sb3Itb24tc3VjY2Vzcy01MDA6''@;'; + put 'put ''YmxhY2s7LS1jbHItY29sb3Itb24tc3VjY2Vzcy02MDA6YmxhY2s7LS1jbHItY29sb3Itb24tc3VjY2Vzcy03MDA6d2hpdGU7LS1jbHItY29sb3Itb24tc3VjY2Vzcy04MDA6d2hpdGU7LS1jbHItY29sb3Itb24tc3VjY2Vzcy05MDA6d2hpdGU7LS1jbHItY29sb3Itb24tc3VjY2Vzcy0xMDAw''@;'; + put 'put ''OndoaXRlfTpyb290ey0tY2xyLWdsb2JhbC1ib3JkZXJyYWRpdXM6LjE1cmVtOy0tY2xyLWdsb2JhbC1ib3JkZXJ3aWR0aDouMDVyZW07LS1jbHItZ2xvYmFsLWFwcC1iYWNrZ3JvdW5kOiNmYWZhZmE7LS1jbHItZ2xvYmFsLXNlbGVjdGlvbi1jb2xvcjojZDhlM2U5Oy0tY2xyLWdsb2JhbC1v''@;'; + put 'put ''bi1zZWxlY3Rpb24tY29sb3I6YmxhY2s7LS1jbHItZ2xvYmFsLWhvdmVyLWNvbG9yOiNlOGU4ZTg7LS1jbHItZ2xvYmFsLWNvbnRlbnQtaGVhZGVyLWZvbnQtY29sb3I6YmxhY2s7LS1jbHItZ2xvYmFsLWZvbnQtY29sb3I6IzY2NjY2NjstLWNsci1nbG9iYWwtc3VjY2Vzcy1jb2xvcjojNWFh''@;'; + put 'put ''MjIwOy0tY2xyLWdsb2JhbC1lcnJvci1jb2xvcjojYzIxZDAwOy0tY2xyLWNsb3NlLWNvbG9yLS1ub3JtYWw6IzhjOGM4YzstLWNsci1jbG9zZS1jb2xvci0tbm9ybWFsLW9wYWNpdHk6LjI7LS1jbHItY2xvc2UtY29sb3ItLWhvdmVyOmJsYWNrOy0tY2xyLWNsb3NlLWNvbG9yLS1ob3Zlci1v''@;'; + put 'put ''cGFjaXR5Oi41Oy0tY2xyLXBvcG92ZXItYm94LXNoYWRvdy1jb2xvcjpyZ2JhKDE0MCwgMTQwLCAxNDAsIC4yNSl9OnJvb3R7LS1jbHItZm9udDpNZXRyb3BvbGlzLCBBdmVuaXIgTmV4dCwgSGVsdmV0aWNhIE5ldWUsIEFyaWFsLCBzYW5zLXNlcmlmOy0tY2xyLWRpc3BsYXktZm9udDp2YXIo''@;'; + put 'put ''LS1jbHItZm9udCk7LS1jbHItZm9udC13ZWlnaHQtbGlnaHQ6MjAwOy0tY2xyLWZvbnQtd2VpZ2h0LXJlZ3VsYXI6NDAwOy0tY2xyLWZvbnQtd2VpZ2h0LXNlbWlib2xkOjUwMDstLWNsci1mb250LXdlaWdodC1ib2xkOjYwMDstLWNsci1mb250LXdlaWdodC1leHRyYWJvbGQ6NjAwOy0tY2xy''@;'; + put 'put ''LWgxLWNvbG9yOnZhcigtLWNsci1nbG9iYWwtY29udGVudC1oZWFkZXItZm9udC1jb2xvcik7LS1jbHItaDEtZm9udC13ZWlnaHQ6dmFyKC0tY2xyLWZvbnQtd2VpZ2h0LWxpZ2h0KTstLWNsci1oMS1mb250LWZhbWlseTp2YXIoLS1jbHItZGlzcGxheS1mb250KTstLWNsci1oMi1jb2xvcjp2''@;'; + put 'put ''YXIoLS1jbHItZ2xvYmFsLWNvbnRlbnQtaGVhZGVyLWZvbnQtY29sb3IpOy0tY2xyLWgyLWZvbnQtd2VpZ2h0OnZhcigtLWNsci1mb250LXdlaWdodC1saWdodCk7LS1jbHItaDItZm9udC1mYW1pbHk6dmFyKC0tY2xyLWRpc3BsYXktZm9udCk7LS1jbHItaDMtY29sb3I6dmFyKC0tY2xyLWds''@;'; + put 'put ''b2JhbC1jb250ZW50LWhlYWRlci1mb250LWNvbG9yKTstLWNsci1oMy1mb250LXdlaWdodDp2YXIoLS1jbHItZm9udC13ZWlnaHQtbGlnaHQpOy0tY2xyLWgzLWZvbnQtZmFtaWx5OnZhcigtLWNsci1kaXNwbGF5LWZvbnQpOy0tY2xyLWg0LWNvbG9yOnZhcigtLWNsci1nbG9iYWwtY29udGVu''@;'; + put 'put ''dC1oZWFkZXItZm9udC1jb2xvcik7LS1jbHItaDQtZm9udC13ZWlnaHQ6dmFyKC0tY2xyLWZvbnQtd2VpZ2h0LWxpZ2h0KTstLWNsci1oNC1mb250LWZhbWlseTp2YXIoLS1jbHItZGlzcGxheS1mb250KTstLWNsci1oNS1jb2xvcjp2YXIoLS1jbHItZ2xvYmFsLWZvbnQtY29sb3IpOy0tY2xy''@;'; + put 'put ''LWg1LWZvbnQtd2VpZ2h0OnZhcigtLWNsci1mb250LXdlaWdodC1yZWd1bGFyKTstLWNsci1oNS1mb250LWZhbWlseTp2YXIoLS1jbHItZGlzcGxheS1mb250KTstLWNsci1oNi1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC05MDApOy0tY2xyLWg2LWZvbnQtd2VpZ2h0OnZhcigtLWNs''@;'; + put 'put ''ci1mb250LXdlaWdodC1zZW1pYm9sZCk7LS1jbHItaDYtZm9udC1mYW1pbHk6dmFyKC0tY2xyLWRpc3BsYXktZm9udCk7LS1jbHItcDAtY29sb3I6dmFyKC0tY2xyLWdsb2JhbC1mb250LWNvbG9yKTstLWNsci1wMC1mb250LXdlaWdodDp2YXIoLS1jbHItZm9udC13ZWlnaHQtbGlnaHQpOy0t''@;'; + put 'put ''Y2xyLXAxLWNvbG9yOnZhcigtLWNsci1nbG9iYWwtZm9udC1jb2xvcik7LS1jbHItcDEtZm9udC13ZWlnaHQ6dmFyKC0tY2xyLWZvbnQtd2VpZ2h0LXJlZ3VsYXIpOy0tY2xyLXAyLWNvbG9yOnZhcigtLWNsci1nbG9iYWwtZm9udC1jb2xvcik7LS1jbHItcDItZm9udC13ZWlnaHQ6dmFyKC0t''@;'; + put 'put ''Y2xyLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTstLWNsci1wMy1jb2xvcjp2YXIoLS1jbHItZ2xvYmFsLWZvbnQtY29sb3IpOy0tY2xyLXAzLWZvbnQtd2VpZ2h0OnZhcigtLWNsci1mb250LXdlaWdodC1yZWd1bGFyKTstLWNsci1wNC1jb2xvcjp2YXIoLS1jbHItZ2xvYmFsLWZvbnQtY29sb3Ip''@;'; + put 'put ''Oy0tY2xyLXA0LWZvbnQtd2VpZ2h0OnZhcigtLWNsci1mb250LXdlaWdodC1ib2xkKTstLWNsci1wNS1jb2xvcjp2YXIoLS1jbHItZ2xvYmFsLWZvbnQtY29sb3IpOy0tY2xyLXA1LWZvbnQtd2VpZ2h0OnZhcigtLWNsci1mb250LXdlaWdodC1yZWd1bGFyKTstLWNsci1wNi1jb2xvcjp2YXIo''@;'; + put 'put ''LS1jbHItZ2xvYmFsLWZvbnQtY29sb3IpOy0tY2xyLXA2LWZvbnQtd2VpZ2h0OnZhcigtLWNsci1mb250LXdlaWdodC1ib2xkKTstLWNsci1wNy1jb2xvcjp2YXIoLS1jbHItZ2xvYmFsLWZvbnQtY29sb3IpOy0tY2xyLXA3LWZvbnQtd2VpZ2h0OnZhcigtLWNsci1mb250LXdlaWdodC1yZWd1''@;'; + put 'put ''bGFyKTstLWNsci1wOC1jb2xvcjp2YXIoLS1jbHItZ2xvYmFsLWZvbnQtY29sb3IpOy0tY2xyLXA4LWZvbnQtd2VpZ2h0OnZhcigtLWNsci1mb250LXdlaWdodC1yZWd1bGFyKX0uY2xyLWFsaWduLWJhc2VsaW5le3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lIWltcG9ydGFudH0uY2xyLWFsaWdu''@;'; + put 'put ''LXRvcHt2ZXJ0aWNhbC1hbGlnbjp0b3AhaW1wb3J0YW50fS5jbHItYWxpZ24tbWlkZGxle3ZlcnRpY2FsLWFsaWduOm1pZGRsZSFpbXBvcnRhbnR9LmNsci1hbGlnbi1ib3R0b217dmVydGljYWwtYWxpZ246Ym90dG9tIWltcG9ydGFudH0uY2xyLWFsaWduLXRleHQtYm90dG9te3ZlcnRpY2Fs''@;'; + put 'put ''LWFsaWduOnRleHQtYm90dG9tIWltcG9ydGFudH0uY2xyLWFsaWduLXRleHQtdG9we3ZlcnRpY2FsLWFsaWduOnRleHQtdG9wIWltcG9ydGFudH0uY2xyLWNsZWFyZml4OmFmdGVye2NvbnRlbnQ6IiI7ZGlzcGxheTp0YWJsZTtjbGVhcjpib3RofS5jbHItZGlzcGxheS1ibG9ja3tkaXNwbGF5''@;'; + put 'put ''OmJsb2NrIWltcG9ydGFudH0uY2xyLWRpc3BsYXktaW5saW5lLWJsb2Nre2Rpc3BsYXk6aW5saW5lLWJsb2NrIWltcG9ydGFudH0uY2xyLWRpc3BsYXktaW5saW5le2Rpc3BsYXk6aW5saW5lIWltcG9ydGFudH0uY2xyLWZsZXgtcm93e2ZsZXgtZGlyZWN0aW9uOnJvdyFpbXBvcnRhbnR9LmNs''@;'; + put 'put ''ci1mbGV4LWNvbHVtbntmbGV4LWRpcmVjdGlvbjpjb2x1bW4haW1wb3J0YW50fS5jbHItZmxleC1yb3ctcmV2ZXJzZXtmbGV4LWRpcmVjdGlvbjpyb3ctcmV2ZXJzZSFpbXBvcnRhbnR9LmNsci1mbGV4LWNvbHVtbi1yZXZlcnNle2ZsZXgtZGlyZWN0aW9uOmNvbHVtbi1yZXZlcnNlIWltcG9y''@;'; + put 'put ''dGFudH0uY2xyLWZsZXgtd3JhcHtmbGV4LXdyYXA6d3JhcCFpbXBvcnRhbnR9LmNsci1mbGV4LW5vd3JhcHtmbGV4LXdyYXA6bm93cmFwIWltcG9ydGFudH0uY2xyLWZsZXgtd3JhcC1yZXZlcnNle2ZsZXgtd3JhcDp3cmFwLXJldmVyc2UhaW1wb3J0YW50fS5jbHItZmxleC1maWxse2ZsZXg6''@;'; + put 'put ''MSAxIGF1dG8haW1wb3J0YW50fS5jbHItZmxleC1ncm93LTB7ZmxleC1ncm93OjAhaW1wb3J0YW50fS5jbHItZmxleC1ncm93LTF7ZmxleC1ncm93OjEhaW1wb3J0YW50fS5jbHItZmxleC1zaHJpbmstMHtmbGV4LXNocmluazowIWltcG9ydGFudH0uY2xyLWZsZXgtc2hyaW5rLTF7ZmxleC1z''@;'; + put 'put ''aHJpbms6MSFpbXBvcnRhbnR9LmNsci1qdXN0aWZ5LWNvbnRlbnQtc3RhcnR7anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnQhaW1wb3J0YW50fS5jbHItanVzdGlmeS1jb250ZW50LWVuZHtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmQhaW1wb3J0YW50fS5jbHItanVzdGlmeS1jb250ZW50LWNl''@;'; + put 'put ''bnRlcntqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyIWltcG9ydGFudH0uY2xyLWp1c3RpZnktY29udGVudC1iZXR3ZWVue2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuIWltcG9ydGFudH0uY2xyLWp1c3RpZnktY29udGVudC1hcm91bmR7anVzdGlmeS1jb250ZW50OnNwYWNlLWFyb3VuZCFp''@;'; + put 'put ''bXBvcnRhbnR9LmNsci1hbGlnbi1pdGVtcy1zdGFydHthbGlnbi1pdGVtczpmbGV4LXN0YXJ0IWltcG9ydGFudH0uY2xyLWFsaWduLWl0ZW1zLWVuZHthbGlnbi1pdGVtczpmbGV4LWVuZCFpbXBvcnRhbnR9LmNsci1hbGlnbi1pdGVtcy1jZW50ZXJ7YWxpZ24taXRlbXM6Y2VudGVyIWltcG9y''@;'; + put 'put ''dGFudH0uY2xyLWFsaWduLWl0ZW1zLWJhc2VsaW5le2FsaWduLWl0ZW1zOmJhc2VsaW5lIWltcG9ydGFudH0uY2xyLWFsaWduLWl0ZW1zLXN0cmV0Y2h7YWxpZ24taXRlbXM6c3RyZXRjaCFpbXBvcnRhbnR9LmNsci1hbGlnbi1jb250ZW50LXN0YXJ0e2FsaWduLWNvbnRlbnQ6ZmxleC1zdGFy''@;'; + put 'put ''dCFpbXBvcnRhbnR9LmNsci1hbGlnbi1jb250ZW50LWVuZHthbGlnbi1jb250ZW50OmZsZXgtZW5kIWltcG9ydGFudH0uY2xyLWFsaWduLWNvbnRlbnQtY2VudGVye2FsaWduLWNvbnRlbnQ6Y2VudGVyIWltcG9ydGFudH0uY2xyLWFsaWduLWNvbnRlbnQtYmV0d2VlbnthbGlnbi1jb250ZW50''@;'; + put 'put ''OnNwYWNlLWJldHdlZW4haW1wb3J0YW50fS5jbHItYWxpZ24tY29udGVudC1hcm91bmR7YWxpZ24tY29udGVudDpzcGFjZS1hcm91bmQhaW1wb3J0YW50fS5jbHItYWxpZ24tY29udGVudC1zdHJldGNoe2FsaWduLWNvbnRlbnQ6c3RyZXRjaCFpbXBvcnRhbnR9LmNsci1hbGlnbi1zZWxmLWF1''@;'; + put 'put ''dG97YWxpZ24tc2VsZjphdXRvIWltcG9ydGFudH0uY2xyLWFsaWduLXNlbGYtc3RhcnR7YWxpZ24tc2VsZjpmbGV4LXN0YXJ0IWltcG9ydGFudH0uY2xyLWFsaWduLXNlbGYtZW5ke2FsaWduLXNlbGY6ZmxleC1lbmQhaW1wb3J0YW50fS5jbHItYWxpZ24tc2VsZi1jZW50ZXJ7YWxpZ24tc2Vs''@;'; + put 'put ''ZjpjZW50ZXIhaW1wb3J0YW50fS5jbHItYWxpZ24tc2VsZi1iYXNlbGluZXthbGlnbi1zZWxmOmJhc2VsaW5lIWltcG9ydGFudH0uY2xyLWFsaWduLXNlbGYtc3RyZXRjaHthbGlnbi1zZWxmOnN0cmV0Y2ghaW1wb3J0YW50fUBtZWRpYSAobWluLXdpZHRoOjU3NnB4KXsuY2xyLWZsZXgtc20t''@;'; + put 'put ''cm93e2ZsZXgtZGlyZWN0aW9uOnJvdyFpbXBvcnRhbnR9LmNsci1mbGV4LXNtLWNvbHVtbntmbGV4LWRpcmVjdGlvbjpjb2x1bW4haW1wb3J0YW50fS5jbHItZmxleC1zbS1yb3ctcmV2ZXJzZXtmbGV4LWRpcmVjdGlvbjpyb3ctcmV2ZXJzZSFpbXBvcnRhbnR9LmNsci1mbGV4LXNtLWNvbHVt''@;'; + put 'put ''bi1yZXZlcnNle2ZsZXgtZGlyZWN0aW9uOmNvbHVtbi1yZXZlcnNlIWltcG9ydGFudH0uY2xyLWZsZXgtc20td3JhcHtmbGV4LXdyYXA6d3JhcCFpbXBvcnRhbnR9LmNsci1mbGV4LXNtLW5vd3JhcHtmbGV4LXdyYXA6bm93cmFwIWltcG9ydGFudH0uY2xyLWZsZXgtc20td3JhcC1yZXZlcnNl''@;'; + put 'put ''e2ZsZXgtd3JhcDp3cmFwLXJldmVyc2UhaW1wb3J0YW50fS5jbHItZmxleC1zbS1maWxse2ZsZXg6MSAxIGF1dG8haW1wb3J0YW50fS5jbHItZmxleC1zbS1ncm93LTB7ZmxleC1ncm93OjAhaW1wb3J0YW50fS5jbHItZmxleC1zbS1ncm93LTF7ZmxleC1ncm93OjEhaW1wb3J0YW50fS5jbHIt''@;'; + put 'put ''ZmxleC1zbS1zaHJpbmstMHtmbGV4LXNocmluazowIWltcG9ydGFudH0uY2xyLWZsZXgtc20tc2hyaW5rLTF7ZmxleC1zaHJpbms6MSFpbXBvcnRhbnR9LmNsci1qdXN0aWZ5LWNvbnRlbnQtc20tc3RhcnR7anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnQhaW1wb3J0YW50fS5jbHItanVzdGlm''@;'; + put 'put ''eS1jb250ZW50LXNtLWVuZHtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmQhaW1wb3J0YW50fS5jbHItanVzdGlmeS1jb250ZW50LXNtLWNlbnRlcntqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyIWltcG9ydGFudH0uY2xyLWp1c3RpZnktY29udGVudC1zbS1iZXR3ZWVue2p1c3RpZnktY29udGVudDpz''@;'; + put 'put ''cGFjZS1iZXR3ZWVuIWltcG9ydGFudH0uY2xyLWp1c3RpZnktY29udGVudC1zbS1hcm91bmR7anVzdGlmeS1jb250ZW50OnNwYWNlLWFyb3VuZCFpbXBvcnRhbnR9LmNsci1hbGlnbi1pdGVtcy1zbS1zdGFydHthbGlnbi1pdGVtczpmbGV4LXN0YXJ0IWltcG9ydGFudH0uY2xyLWFsaWduLWl0''@;'; + put 'put ''ZW1zLXNtLWVuZHthbGlnbi1pdGVtczpmbGV4LWVuZCFpbXBvcnRhbnR9LmNsci1hbGlnbi1pdGVtcy1zbS1jZW50ZXJ7YWxpZ24taXRlbXM6Y2VudGVyIWltcG9ydGFudH0uY2xyLWFsaWduLWl0ZW1zLXNtLWJhc2VsaW5le2FsaWduLWl0ZW1zOmJhc2VsaW5lIWltcG9ydGFudH0uY2xyLWFs''@;'; + put 'put ''aWduLWl0ZW1zLXNtLXN0cmV0Y2h7YWxpZ24taXRlbXM6c3RyZXRjaCFpbXBvcnRhbnR9LmNsci1hbGlnbi1jb250ZW50LXNtLXN0YXJ0e2FsaWduLWNvbnRlbnQ6ZmxleC1zdGFydCFpbXBvcnRhbnR9LmNsci1hbGlnbi1jb250ZW50LXNtLWVuZHthbGlnbi1jb250ZW50OmZsZXgtZW5kIWlt''@;'; + put 'put ''cG9ydGFudH0uY2xyLWFsaWduLWNvbnRlbnQtc20tY2VudGVye2FsaWduLWNvbnRlbnQ6Y2VudGVyIWltcG9ydGFudH0uY2xyLWFsaWduLWNvbnRlbnQtc20tYmV0d2VlbnthbGlnbi1jb250ZW50OnNwYWNlLWJldHdlZW4haW1wb3J0YW50fS5jbHItYWxpZ24tY29udGVudC1zbS1hcm91bmR7''@;'; + put 'put ''YWxpZ24tY29udGVudDpzcGFjZS1hcm91bmQhaW1wb3J0YW50fS5jbHItYWxpZ24tY29udGVudC1zbS1zdHJldGNoe2FsaWduLWNvbnRlbnQ6c3RyZXRjaCFpbXBvcnRhbnR9LmNsci1hbGlnbi1zZWxmLXNtLWF1dG97YWxpZ24tc2VsZjphdXRvIWltcG9ydGFudH0uY2xyLWFsaWduLXNlbGYt''@;'; + put 'put ''c20tc3RhcnR7YWxpZ24tc2VsZjpmbGV4LXN0YXJ0IWltcG9ydGFudH0uY2xyLWFsaWduLXNlbGYtc20tZW5ke2FsaWduLXNlbGY6ZmxleC1lbmQhaW1wb3J0YW50fS5jbHItYWxpZ24tc2VsZi1zbS1jZW50ZXJ7YWxpZ24tc2VsZjpjZW50ZXIhaW1wb3J0YW50fS5jbHItYWxpZ24tc2VsZi1z''@;'; + put 'put ''bS1iYXNlbGluZXthbGlnbi1zZWxmOmJhc2VsaW5lIWltcG9ydGFudH0uY2xyLWFsaWduLXNlbGYtc20tc3RyZXRjaHthbGlnbi1zZWxmOnN0cmV0Y2ghaW1wb3J0YW50fX1AbWVkaWEgKG1pbi13aWR0aDo3NjhweCl7LmNsci1mbGV4LW1kLXJvd3tmbGV4LWRpcmVjdGlvbjpyb3chaW1wb3J0''@;'; + put 'put ''YW50fS5jbHItZmxleC1tZC1jb2x1bW57ZmxleC1kaXJlY3Rpb246Y29sdW1uIWltcG9ydGFudH0uY2xyLWZsZXgtbWQtcm93LXJldmVyc2V7ZmxleC1kaXJlY3Rpb246cm93LXJldmVyc2UhaW1wb3J0YW50fS5jbHItZmxleC1tZC1jb2x1bW4tcmV2ZXJzZXtmbGV4LWRpcmVjdGlvbjpjb2x1''@;'; + put 'put ''bW4tcmV2ZXJzZSFpbXBvcnRhbnR9LmNsci1mbGV4LW1kLXdyYXB7ZmxleC13cmFwOndyYXAhaW1wb3J0YW50fS5jbHItZmxleC1tZC1ub3dyYXB7ZmxleC13cmFwOm5vd3JhcCFpbXBvcnRhbnR9LmNsci1mbGV4LW1kLXdyYXAtcmV2ZXJzZXtmbGV4LXdyYXA6d3JhcC1yZXZlcnNlIWltcG9y''@;'; + put 'put ''dGFudH0uY2xyLWZsZXgtbWQtZmlsbHtmbGV4OjEgMSBhdXRvIWltcG9ydGFudH0uY2xyLWZsZXgtbWQtZ3Jvdy0we2ZsZXgtZ3JvdzowIWltcG9ydGFudH0uY2xyLWZsZXgtbWQtZ3Jvdy0xe2ZsZXgtZ3JvdzoxIWltcG9ydGFudH0uY2xyLWZsZXgtbWQtc2hyaW5rLTB7ZmxleC1zaHJpbms6''@;'; + put 'put ''MCFpbXBvcnRhbnR9LmNsci1mbGV4LW1kLXNocmluay0xe2ZsZXgtc2hyaW5rOjEhaW1wb3J0YW50fS5jbHItanVzdGlmeS1jb250ZW50LW1kLXN0YXJ0e2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0IWltcG9ydGFudH0uY2xyLWp1c3RpZnktY29udGVudC1tZC1lbmR7anVzdGlmeS1jb250''@;'; + put 'put ''ZW50OmZsZXgtZW5kIWltcG9ydGFudH0uY2xyLWp1c3RpZnktY29udGVudC1tZC1jZW50ZXJ7anVzdGlmeS1jb250ZW50OmNlbnRlciFpbXBvcnRhbnR9LmNsci1qdXN0aWZ5LWNvbnRlbnQtbWQtYmV0d2VlbntqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbiFpbXBvcnRhbnR9LmNsci1q''@;'; + put 'put ''dXN0aWZ5LWNvbnRlbnQtbWQtYXJvdW5ke2p1c3RpZnktY29udGVudDpzcGFjZS1hcm91bmQhaW1wb3J0YW50fS5jbHItYWxpZ24taXRlbXMtbWQtc3RhcnR7YWxpZ24taXRlbXM6ZmxleC1zdGFydCFpbXBvcnRhbnR9LmNsci1hbGlnbi1pdGVtcy1tZC1lbmR7YWxpZ24taXRlbXM6ZmxleC1l''@;'; + put 'put ''bmQhaW1wb3J0YW50fS5jbHItYWxpZ24taXRlbXMtbWQtY2VudGVye2FsaWduLWl0ZW1zOmNlbnRlciFpbXBvcnRhbnR9LmNsci1hbGlnbi1pdGVtcy1tZC1iYXNlbGluZXthbGlnbi1pdGVtczpiYXNlbGluZSFpbXBvcnRhbnR9LmNsci1hbGlnbi1pdGVtcy1tZC1zdHJldGNoe2FsaWduLWl0''@;'; + put 'put ''ZW1zOnN0cmV0Y2ghaW1wb3J0YW50fS5jbHItYWxpZ24tY29udGVudC1tZC1zdGFydHthbGlnbi1jb250ZW50OmZsZXgtc3RhcnQhaW1wb3J0YW50fS5jbHItYWxpZ24tY29udGVudC1tZC1lbmR7YWxpZ24tY29udGVudDpmbGV4LWVuZCFpbXBvcnRhbnR9LmNsci1hbGlnbi1jb250ZW50LW1k''@;'; + put 'put ''LWNlbnRlcnthbGlnbi1jb250ZW50OmNlbnRlciFpbXBvcnRhbnR9LmNsci1hbGlnbi1jb250ZW50LW1kLWJldHdlZW57YWxpZ24tY29udGVudDpzcGFjZS1iZXR3ZWVuIWltcG9ydGFudH0uY2xyLWFsaWduLWNvbnRlbnQtbWQtYXJvdW5ke2FsaWduLWNvbnRlbnQ6c3BhY2UtYXJvdW5kIWlt''@;'; + put 'put ''cG9ydGFudH0uY2xyLWFsaWduLWNvbnRlbnQtbWQtc3RyZXRjaHthbGlnbi1jb250ZW50OnN0cmV0Y2ghaW1wb3J0YW50fS5jbHItYWxpZ24tc2VsZi1tZC1hdXRve2FsaWduLXNlbGY6YXV0byFpbXBvcnRhbnR9LmNsci1hbGlnbi1zZWxmLW1kLXN0YXJ0e2FsaWduLXNlbGY6ZmxleC1zdGFy''@;'; + put 'put ''dCFpbXBvcnRhbnR9LmNsci1hbGlnbi1zZWxmLW1kLWVuZHthbGlnbi1zZWxmOmZsZXgtZW5kIWltcG9ydGFudH0uY2xyLWFsaWduLXNlbGYtbWQtY2VudGVye2FsaWduLXNlbGY6Y2VudGVyIWltcG9ydGFudH0uY2xyLWFsaWduLXNlbGYtbWQtYmFzZWxpbmV7YWxpZ24tc2VsZjpiYXNlbGlu''@;'; + put 'put ''ZSFpbXBvcnRhbnR9LmNsci1hbGlnbi1zZWxmLW1kLXN0cmV0Y2h7YWxpZ24tc2VsZjpzdHJldGNoIWltcG9ydGFudH19QG1lZGlhIChtaW4td2lkdGg6OTkycHgpey5jbHItZmxleC1sZy1yb3d7ZmxleC1kaXJlY3Rpb246cm93IWltcG9ydGFudH0uY2xyLWZsZXgtbGctY29sdW1ue2ZsZXgt''@;'; + put 'put ''ZGlyZWN0aW9uOmNvbHVtbiFpbXBvcnRhbnR9LmNsci1mbGV4LWxnLXJvdy1yZXZlcnNle2ZsZXgtZGlyZWN0aW9uOnJvdy1yZXZlcnNlIWltcG9ydGFudH0uY2xyLWZsZXgtbGctY29sdW1uLXJldmVyc2V7ZmxleC1kaXJlY3Rpb246Y29sdW1uLXJldmVyc2UhaW1wb3J0YW50fS5jbHItZmxl''@;'; + put 'put ''eC1sZy13cmFwe2ZsZXgtd3JhcDp3cmFwIWltcG9ydGFudH0uY2xyLWZsZXgtbGctbm93cmFwe2ZsZXgtd3JhcDpub3dyYXAhaW1wb3J0YW50fS5jbHItZmxleC1sZy13cmFwLXJldmVyc2V7ZmxleC13cmFwOndyYXAtcmV2ZXJzZSFpbXBvcnRhbnR9LmNsci1mbGV4LWxnLWZpbGx7ZmxleDox''@;'; + put 'put ''IDEgYXV0byFpbXBvcnRhbnR9LmNsci1mbGV4LWxnLWdyb3ctMHtmbGV4LWdyb3c6MCFpbXBvcnRhbnR9LmNsci1mbGV4LWxnLWdyb3ctMXtmbGV4LWdyb3c6MSFpbXBvcnRhbnR9LmNsci1mbGV4LWxnLXNocmluay0we2ZsZXgtc2hyaW5rOjAhaW1wb3J0YW50fS5jbHItZmxleC1sZy1zaHJp''@;'; + put 'put ''bmstMXtmbGV4LXNocmluazoxIWltcG9ydGFudH0uY2xyLWp1c3RpZnktY29udGVudC1sZy1zdGFydHtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydCFpbXBvcnRhbnR9LmNsci1qdXN0aWZ5LWNvbnRlbnQtbGctZW5ke2p1c3RpZnktY29udGVudDpmbGV4LWVuZCFpbXBvcnRhbnR9LmNsci1q''@;'; + put 'put ''dXN0aWZ5LWNvbnRlbnQtbGctY2VudGVye2p1c3RpZnktY29udGVudDpjZW50ZXIhaW1wb3J0YW50fS5jbHItanVzdGlmeS1jb250ZW50LWxnLWJldHdlZW57anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW4haW1wb3J0YW50fS5jbHItanVzdGlmeS1jb250ZW50LWxnLWFyb3VuZHtqdXN0''@;'; + put 'put ''aWZ5LWNvbnRlbnQ6c3BhY2UtYXJvdW5kIWltcG9ydGFudH0uY2xyLWFsaWduLWl0ZW1zLWxnLXN0YXJ0e2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQhaW1wb3J0YW50fS5jbHItYWxpZ24taXRlbXMtbGctZW5ke2FsaWduLWl0ZW1zOmZsZXgtZW5kIWltcG9ydGFudH0uY2xyLWFsaWduLWl0ZW1z''@;'; + put 'put ''LWxnLWNlbnRlcnthbGlnbi1pdGVtczpjZW50ZXIhaW1wb3J0YW50fS5jbHItYWxpZ24taXRlbXMtbGctYmFzZWxpbmV7YWxpZ24taXRlbXM6YmFzZWxpbmUhaW1wb3J0YW50fS5jbHItYWxpZ24taXRlbXMtbGctc3RyZXRjaHthbGlnbi1pdGVtczpzdHJldGNoIWltcG9ydGFudH0uY2xyLWFs''@;'; + put 'put ''aWduLWNvbnRlbnQtbGctc3RhcnR7YWxpZ24tY29udGVudDpmbGV4LXN0YXJ0IWltcG9ydGFudH0uY2xyLWFsaWduLWNvbnRlbnQtbGctZW5ke2FsaWduLWNvbnRlbnQ6ZmxleC1lbmQhaW1wb3J0YW50fS5jbHItYWxpZ24tY29udGVudC1sZy1jZW50ZXJ7YWxpZ24tY29udGVudDpjZW50ZXIh''@;'; + put 'put ''aW1wb3J0YW50fS5jbHItYWxpZ24tY29udGVudC1sZy1iZXR3ZWVue2FsaWduLWNvbnRlbnQ6c3BhY2UtYmV0d2VlbiFpbXBvcnRhbnR9LmNsci1hbGlnbi1jb250ZW50LWxnLWFyb3VuZHthbGlnbi1jb250ZW50OnNwYWNlLWFyb3VuZCFpbXBvcnRhbnR9LmNsci1hbGlnbi1jb250ZW50LWxn''@;'; + put 'put ''LXN0cmV0Y2h7YWxpZ24tY29udGVudDpzdHJldGNoIWltcG9ydGFudH0uY2xyLWFsaWduLXNlbGYtbGctYXV0b3thbGlnbi1zZWxmOmF1dG8haW1wb3J0YW50fS5jbHItYWxpZ24tc2VsZi1sZy1zdGFydHthbGlnbi1zZWxmOmZsZXgtc3RhcnQhaW1wb3J0YW50fS5jbHItYWxpZ24tc2VsZi1s''@;'; + put 'put ''Zy1lbmR7YWxpZ24tc2VsZjpmbGV4LWVuZCFpbXBvcnRhbnR9LmNsci1hbGlnbi1zZWxmLWxnLWNlbnRlcnthbGlnbi1zZWxmOmNlbnRlciFpbXBvcnRhbnR9LmNsci1hbGlnbi1zZWxmLWxnLWJhc2VsaW5le2FsaWduLXNlbGY6YmFzZWxpbmUhaW1wb3J0YW50fS5jbHItYWxpZ24tc2VsZi1s''@;'; + put 'put ''Zy1zdHJldGNoe2FsaWduLXNlbGY6c3RyZXRjaCFpbXBvcnRhbnR9fUBtZWRpYSAobWluLXdpZHRoOjEyMDBweCl7LmNsci1mbGV4LXhsLXJvd3tmbGV4LWRpcmVjdGlvbjpyb3chaW1wb3J0YW50fS5jbHItZmxleC14bC1jb2x1bW57ZmxleC1kaXJlY3Rpb246Y29sdW1uIWltcG9ydGFudH0u''@;'; + put 'put ''Y2xyLWZsZXgteGwtcm93LXJldmVyc2V7ZmxleC1kaXJlY3Rpb246cm93LXJldmVyc2UhaW1wb3J0YW50fS5jbHItZmxleC14bC1jb2x1bW4tcmV2ZXJzZXtmbGV4LWRpcmVjdGlvbjpjb2x1bW4tcmV2ZXJzZSFpbXBvcnRhbnR9LmNsci1mbGV4LXhsLXdyYXB7ZmxleC13cmFwOndyYXAhaW1w''@;'; + put 'put ''b3J0YW50fS5jbHItZmxleC14bC1ub3dyYXB7ZmxleC13cmFwOm5vd3JhcCFpbXBvcnRhbnR9LmNsci1mbGV4LXhsLXdyYXAtcmV2ZXJzZXtmbGV4LXdyYXA6d3JhcC1yZXZlcnNlIWltcG9ydGFudH0uY2xyLWZsZXgteGwtZmlsbHtmbGV4OjEgMSBhdXRvIWltcG9ydGFudH0uY2xyLWZsZXgt''@;'; + put 'put ''eGwtZ3Jvdy0we2ZsZXgtZ3JvdzowIWltcG9ydGFudH0uY2xyLWZsZXgteGwtZ3Jvdy0xe2ZsZXgtZ3JvdzoxIWltcG9ydGFudH0uY2xyLWZsZXgteGwtc2hyaW5rLTB7ZmxleC1zaHJpbms6MCFpbXBvcnRhbnR9LmNsci1mbGV4LXhsLXNocmluay0xe2ZsZXgtc2hyaW5rOjEhaW1wb3J0YW50''@;'; + put 'put ''fS5jbHItanVzdGlmeS1jb250ZW50LXhsLXN0YXJ0e2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0IWltcG9ydGFudH0uY2xyLWp1c3RpZnktY29udGVudC14bC1lbmR7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kIWltcG9ydGFudH0uY2xyLWp1c3RpZnktY29udGVudC14bC1jZW50ZXJ7anVz''@;'; + put 'put ''dGlmeS1jb250ZW50OmNlbnRlciFpbXBvcnRhbnR9LmNsci1qdXN0aWZ5LWNvbnRlbnQteGwtYmV0d2VlbntqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbiFpbXBvcnRhbnR9LmNsci1qdXN0aWZ5LWNvbnRlbnQteGwtYXJvdW5ke2p1c3RpZnktY29udGVudDpzcGFjZS1hcm91bmQhaW1w''@;'; + put 'put ''b3J0YW50fS5jbHItYWxpZ24taXRlbXMteGwtc3RhcnR7YWxpZ24taXRlbXM6ZmxleC1zdGFydCFpbXBvcnRhbnR9LmNsci1hbGlnbi1pdGVtcy14bC1lbmR7YWxpZ24taXRlbXM6ZmxleC1lbmQhaW1wb3J0YW50fS5jbHItYWxpZ24taXRlbXMteGwtY2VudGVye2FsaWduLWl0ZW1zOmNlbnRl''@;'; + put 'put ''ciFpbXBvcnRhbnR9LmNsci1hbGlnbi1pdGVtcy14bC1iYXNlbGluZXthbGlnbi1pdGVtczpiYXNlbGluZSFpbXBvcnRhbnR9LmNsci1hbGlnbi1pdGVtcy14bC1zdHJldGNoe2FsaWduLWl0ZW1zOnN0cmV0Y2ghaW1wb3J0YW50fS5jbHItYWxpZ24tY29udGVudC14bC1zdGFydHthbGlnbi1j''@;'; + put 'put ''b250ZW50OmZsZXgtc3RhcnQhaW1wb3J0YW50fS5jbHItYWxpZ24tY29udGVudC14bC1lbmR7YWxpZ24tY29udGVudDpmbGV4LWVuZCFpbXBvcnRhbnR9LmNsci1hbGlnbi1jb250ZW50LXhsLWNlbnRlcnthbGlnbi1jb250ZW50OmNlbnRlciFpbXBvcnRhbnR9LmNsci1hbGlnbi1jb250ZW50''@;'; + put 'put ''LXhsLWJldHdlZW57YWxpZ24tY29udGVudDpzcGFjZS1iZXR3ZWVuIWltcG9ydGFudH0uY2xyLWFsaWduLWNvbnRlbnQteGwtYXJvdW5ke2FsaWduLWNvbnRlbnQ6c3BhY2UtYXJvdW5kIWltcG9ydGFudH0uY2xyLWFsaWduLWNvbnRlbnQteGwtc3RyZXRjaHthbGlnbi1jb250ZW50OnN0cmV0''@;'; + put 'put ''Y2ghaW1wb3J0YW50fS5jbHItYWxpZ24tc2VsZi14bC1hdXRve2FsaWduLXNlbGY6YXV0byFpbXBvcnRhbnR9LmNsci1hbGlnbi1zZWxmLXhsLXN0YXJ0e2FsaWduLXNlbGY6ZmxleC1zdGFydCFpbXBvcnRhbnR9LmNsci1hbGlnbi1zZWxmLXhsLWVuZHthbGlnbi1zZWxmOmZsZXgtZW5kIWlt''@;'; + put 'put ''cG9ydGFudH0uY2xyLWFsaWduLXNlbGYteGwtY2VudGVye2FsaWduLXNlbGY6Y2VudGVyIWltcG9ydGFudH0uY2xyLWFsaWduLXNlbGYteGwtYmFzZWxpbmV7YWxpZ24tc2VsZjpiYXNlbGluZSFpbXBvcnRhbnR9LmNsci1hbGlnbi1zZWxmLXhsLXN0cmV0Y2h7YWxpZ24tc2VsZjpzdHJldGNo''@;'; + put 'put ''IWltcG9ydGFudH19LmNsci1mbGV4LXhzLWZpcnN0e29yZGVyOi0xfS5jbHItZmxleC14cy1sYXN0e29yZGVyOjF9LmNsci1mbGV4LXhzLXVub3JkZXJlZHtvcmRlcjowfS5jbHItZmxleC1pdGVtcy14cy10b3B7YWxpZ24taXRlbXM6ZmxleC1zdGFydH0uY2xyLWZsZXgtaXRlbXMteHMtbWlk''@;'; + put 'put ''ZGxle2FsaWduLWl0ZW1zOmNlbnRlcn0uY2xyLWZsZXgtaXRlbXMteHMtYm90dG9te2FsaWduLWl0ZW1zOmZsZXgtZW5kfS5jbHItZmxleC14cy10b3B7YWxpZ24tc2VsZjpmbGV4LXN0YXJ0fS5jbHItZmxleC14cy1taWRkbGV7YWxpZ24tc2VsZjpjZW50ZXJ9LmNsci1mbGV4LXhzLWJvdHRv''@;'; + put 'put ''bXthbGlnbi1zZWxmOmZsZXgtZW5kfS5jbHItZmxleC1pdGVtcy14cy1sZWZ0e2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0fS5jbHItZmxleC1pdGVtcy14cy1jZW50ZXJ7anVzdGlmeS1jb250ZW50OmNlbnRlcn0uY2xyLWZsZXgtaXRlbXMteHMtcmlnaHR7anVzdGlmeS1jb250ZW50OmZs''@;'; + put 'put ''ZXgtZW5kfS5jbHItZmxleC1pdGVtcy14cy1hcm91bmR7anVzdGlmeS1jb250ZW50OnNwYWNlLWFyb3VuZH0uY2xyLWZsZXgtaXRlbXMteHMtYmV0d2VlbntqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2Vlbn1AbWVkaWEgKG1pbi13aWR0aDo1NzZweCl7LmNsci1mbGV4LXNtLWZpcnN0e29y''@;'; + put 'put ''ZGVyOi0xfS5jbHItZmxleC1zbS1sYXN0e29yZGVyOjF9LmNsci1mbGV4LXNtLXVub3JkZXJlZHtvcmRlcjowfX1AbWVkaWEgKG1pbi13aWR0aDo1NzZweCl7LmNsci1mbGV4LWl0ZW1zLXNtLXRvcHthbGlnbi1pdGVtczpmbGV4LXN0YXJ0fS5jbHItZmxleC1pdGVtcy1zbS1taWRkbGV7YWxp''@;'; + put 'put ''Z24taXRlbXM6Y2VudGVyfS5jbHItZmxleC1pdGVtcy1zbS1ib3R0b217YWxpZ24taXRlbXM6ZmxleC1lbmR9fUBtZWRpYSAobWluLXdpZHRoOjU3NnB4KXsuY2xyLWZsZXgtc20tdG9we2FsaWduLXNlbGY6ZmxleC1zdGFydH0uY2xyLWZsZXgtc20tbWlkZGxle2FsaWduLXNlbGY6Y2VudGVy''@;'; + put 'put ''fS5jbHItZmxleC1zbS1ib3R0b217YWxpZ24tc2VsZjpmbGV4LWVuZH19QG1lZGlhIChtaW4td2lkdGg6NTc2cHgpey5jbHItZmxleC1pdGVtcy1zbS1sZWZ0e2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0fS5jbHItZmxleC1pdGVtcy1zbS1jZW50ZXJ7anVzdGlmeS1jb250ZW50OmNlbnRl''@;'; + put 'put ''cn0uY2xyLWZsZXgtaXRlbXMtc20tcmlnaHR7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kfS5jbHItZmxleC1pdGVtcy1zbS1hcm91bmR7anVzdGlmeS1jb250ZW50OnNwYWNlLWFyb3VuZH0uY2xyLWZsZXgtaXRlbXMtc20tYmV0d2VlbntqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2Vlbn19''@;'; + put 'put ''QG1lZGlhIChtaW4td2lkdGg6NzY4cHgpey5jbHItZmxleC1tZC1maXJzdHtvcmRlcjotMX0uY2xyLWZsZXgtbWQtbGFzdHtvcmRlcjoxfS5jbHItZmxleC1tZC11bm9yZGVyZWR7b3JkZXI6MH19QG1lZGlhIChtaW4td2lkdGg6NzY4cHgpey5jbHItZmxleC1pdGVtcy1tZC10b3B7YWxpZ24t''@;'; + put 'put ''aXRlbXM6ZmxleC1zdGFydH0uY2xyLWZsZXgtaXRlbXMtbWQtbWlkZGxle2FsaWduLWl0ZW1zOmNlbnRlcn0uY2xyLWZsZXgtaXRlbXMtbWQtYm90dG9te2FsaWduLWl0ZW1zOmZsZXgtZW5kfX1AbWVkaWEgKG1pbi13aWR0aDo3NjhweCl7LmNsci1mbGV4LW1kLXRvcHthbGlnbi1zZWxmOmZs''@;'; + put 'put ''ZXgtc3RhcnR9LmNsci1mbGV4LW1kLW1pZGRsZXthbGlnbi1zZWxmOmNlbnRlcn0uY2xyLWZsZXgtbWQtYm90dG9te2FsaWduLXNlbGY6ZmxleC1lbmR9fUBtZWRpYSAobWluLXdpZHRoOjc2OHB4KXsuY2xyLWZsZXgtaXRlbXMtbWQtbGVmdHtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydH0u''@;'; + put 'put ''Y2xyLWZsZXgtaXRlbXMtbWQtY2VudGVye2p1c3RpZnktY29udGVudDpjZW50ZXJ9LmNsci1mbGV4LWl0ZW1zLW1kLXJpZ2h0e2p1c3RpZnktY29udGVudDpmbGV4LWVuZH0uY2xyLWZsZXgtaXRlbXMtbWQtYXJvdW5ke2p1c3RpZnktY29udGVudDpzcGFjZS1hcm91bmR9LmNsci1mbGV4LWl0''@;'; + put 'put ''ZW1zLW1kLWJldHdlZW57anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW59fUBtZWRpYSAobWluLXdpZHRoOjk5MnB4KXsuY2xyLWZsZXgtbGctZmlyc3R7b3JkZXI6LTF9LmNsci1mbGV4LWxnLWxhc3R7b3JkZXI6MX0uY2xyLWZsZXgtbGctdW5vcmRlcmVke29yZGVyOjB9fUBtZWRpYSAo''@;'; + put 'put ''bWluLXdpZHRoOjk5MnB4KXsuY2xyLWZsZXgtaXRlbXMtbGctdG9we2FsaWduLWl0ZW1zOmZsZXgtc3RhcnR9LmNsci1mbGV4LWl0ZW1zLWxnLW1pZGRsZXthbGlnbi1pdGVtczpjZW50ZXJ9LmNsci1mbGV4LWl0ZW1zLWxnLWJvdHRvbXthbGlnbi1pdGVtczpmbGV4LWVuZH19QG1lZGlhICht''@;'; + put 'put ''aW4td2lkdGg6OTkycHgpey5jbHItZmxleC1sZy10b3B7YWxpZ24tc2VsZjpmbGV4LXN0YXJ0fS5jbHItZmxleC1sZy1taWRkbGV7YWxpZ24tc2VsZjpjZW50ZXJ9LmNsci1mbGV4LWxnLWJvdHRvbXthbGlnbi1zZWxmOmZsZXgtZW5kfX1AbWVkaWEgKG1pbi13aWR0aDo5OTJweCl7LmNsci1m''@;'; + put 'put ''bGV4LWl0ZW1zLWxnLWxlZnR7anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnR9LmNsci1mbGV4LWl0ZW1zLWxnLWNlbnRlcntqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfS5jbHItZmxleC1pdGVtcy1sZy1yaWdodHtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmR9LmNsci1mbGV4LWl0ZW1zLWxnLWFy''@;'; + put 'put ''b3VuZHtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYXJvdW5kfS5jbHItZmxleC1pdGVtcy1sZy1iZXR3ZWVue2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVufX1AbWVkaWEgKG1pbi13aWR0aDoxMjAwcHgpey5jbHItZmxleC14bC1maXJzdHtvcmRlcjotMX0uY2xyLWZsZXgteGwtbGFzdHtv''@;'; + put 'put ''cmRlcjoxfS5jbHItZmxleC14bC11bm9yZGVyZWR7b3JkZXI6MH19QG1lZGlhIChtaW4td2lkdGg6MTIwMHB4KXsuY2xyLWZsZXgtaXRlbXMteGwtdG9we2FsaWduLWl0ZW1zOmZsZXgtc3RhcnR9LmNsci1mbGV4LWl0ZW1zLXhsLW1pZGRsZXthbGlnbi1pdGVtczpjZW50ZXJ9LmNsci1mbGV4''@;'; + put 'put ''LWl0ZW1zLXhsLWJvdHRvbXthbGlnbi1pdGVtczpmbGV4LWVuZH19QG1lZGlhIChtaW4td2lkdGg6MTIwMHB4KXsuY2xyLWZsZXgteGwtdG9we2FsaWduLXNlbGY6ZmxleC1zdGFydH0uY2xyLWZsZXgteGwtbWlkZGxle2FsaWduLXNlbGY6Y2VudGVyfS5jbHItZmxleC14bC1ib3R0b217YWxp''@;'; + put 'put ''Z24tc2VsZjpmbGV4LWVuZH19QG1lZGlhIChtaW4td2lkdGg6MTIwMHB4KXsuY2xyLWZsZXgtaXRlbXMteGwtbGVmdHtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydH0uY2xyLWZsZXgtaXRlbXMteGwtY2VudGVye2p1c3RpZnktY29udGVudDpjZW50ZXJ9LmNsci1mbGV4LWl0ZW1zLXhsLXJp''@;'; + put 'put ''Z2h0e2p1c3RpZnktY29udGVudDpmbGV4LWVuZH0uY2xyLWZsZXgtaXRlbXMteGwtYXJvdW5ke2p1c3RpZnktY29udGVudDpzcGFjZS1hcm91bmR9LmNsci1mbGV4LWl0ZW1zLXhsLWJldHdlZW57anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW59fS5jbHItZmxvYXQteHMtbGVmdHtmbG9h''@;'; + put 'put ''dDpsZWZ0IWltcG9ydGFudH0uY2xyLWZsb2F0LXhzLXJpZ2h0e2Zsb2F0OnJpZ2h0IWltcG9ydGFudH0uY2xyLWZsb2F0LXhzLW5vbmV7ZmxvYXQ6bm9uZSFpbXBvcnRhbnR9QG1lZGlhIChtaW4td2lkdGg6NTc2cHgpey5jbHItZmxvYXQtc20tbGVmdHtmbG9hdDpsZWZ0IWltcG9ydGFudH0u''@;'; + put 'put ''Y2xyLWZsb2F0LXNtLXJpZ2h0e2Zsb2F0OnJpZ2h0IWltcG9ydGFudH0uY2xyLWZsb2F0LXNtLW5vbmV7ZmxvYXQ6bm9uZSFpbXBvcnRhbnR9fUBtZWRpYSAobWluLXdpZHRoOjc2OHB4KXsuY2xyLWZsb2F0LW1kLWxlZnR7ZmxvYXQ6bGVmdCFpbXBvcnRhbnR9LmNsci1mbG9hdC1tZC1yaWdo''@;'; + put 'put ''dHtmbG9hdDpyaWdodCFpbXBvcnRhbnR9LmNsci1mbG9hdC1tZC1ub25le2Zsb2F0Om5vbmUhaW1wb3J0YW50fX1AbWVkaWEgKG1pbi13aWR0aDo5OTJweCl7LmNsci1mbG9hdC1sZy1sZWZ0e2Zsb2F0OmxlZnQhaW1wb3J0YW50fS5jbHItZmxvYXQtbGctcmlnaHR7ZmxvYXQ6cmlnaHQhaW1w''@;'; + put 'put ''b3J0YW50fS5jbHItZmxvYXQtbGctbm9uZXtmbG9hdDpub25lIWltcG9ydGFudH19QG1lZGlhIChtaW4td2lkdGg6MTIwMHB4KXsuY2xyLWZsb2F0LXhsLWxlZnR7ZmxvYXQ6bGVmdCFpbXBvcnRhbnR9LmNsci1mbG9hdC14bC1yaWdodHtmbG9hdDpyaWdodCFpbXBvcnRhbnR9LmNsci1mbG9h''@;'; + put 'put ''dC14bC1ub25le2Zsb2F0Om5vbmUhaW1wb3J0YW50fX0uY2xyLWludmlzaWJsZXt2aXNpYmlsaXR5OmhpZGRlbiFpbXBvcnRhbnR9LmNsci1oaWRkZW4teHMtdXB7ZGlzcGxheTpub25lIWltcG9ydGFudH1AbWVkaWEgKG1heC13aWR0aDo1NzUuOThweCl7LmNsci1oaWRkZW4teHMtZG93bntk''@;'; + put 'put ''aXNwbGF5Om5vbmUhaW1wb3J0YW50fX1AbWVkaWEgKG1pbi13aWR0aDo1NzZweCl7LmNsci1oaWRkZW4tc20tdXB7ZGlzcGxheTpub25lIWltcG9ydGFudH19QG1lZGlhIChtYXgtd2lkdGg6NzY3Ljk4cHgpey5jbHItaGlkZGVuLXNtLWRvd257ZGlzcGxheTpub25lIWltcG9ydGFudH19QG1l''@;'; + put 'put ''ZGlhIChtaW4td2lkdGg6NzY4cHgpey5jbHItaGlkZGVuLW1kLXVwe2Rpc3BsYXk6bm9uZSFpbXBvcnRhbnR9fUBtZWRpYSAobWF4LXdpZHRoOjk5MS45OHB4KXsuY2xyLWhpZGRlbi1tZC1kb3due2Rpc3BsYXk6bm9uZSFpbXBvcnRhbnR9fUBtZWRpYSAobWluLXdpZHRoOjk5MnB4KXsuY2xy''@;'; + put 'put ''LWhpZGRlbi1sZy11cHtkaXNwbGF5Om5vbmUhaW1wb3J0YW50fX1AbWVkaWEgKG1heC13aWR0aDoxMTk5Ljk4cHgpey5jbHItaGlkZGVuLWxnLWRvd257ZGlzcGxheTpub25lIWltcG9ydGFudH19QG1lZGlhIChtaW4td2lkdGg6MTIwMHB4KXsuY2xyLWhpZGRlbi14bC11cHtkaXNwbGF5Om5v''@;'; + put 'put ''bmUhaW1wb3J0YW50fX0uY2xyLWhpZGRlbi14bC1kb3duLC5jbHItdmlzaWJsZS1wcmludC1ibG9ja3tkaXNwbGF5Om5vbmUhaW1wb3J0YW50fUBtZWRpYSBwcmludHsuY2xyLXZpc2libGUtcHJpbnQtYmxvY2t7ZGlzcGxheTpibG9jayFpbXBvcnRhbnR9fS5jbHItdmlzaWJsZS1wcmludC1p''@;'; + put 'put ''bmxpbmV7ZGlzcGxheTpub25lIWltcG9ydGFudH1AbWVkaWEgcHJpbnR7LmNsci12aXNpYmxlLXByaW50LWlubGluZXtkaXNwbGF5OmlubGluZSFpbXBvcnRhbnR9fS5jbHItdmlzaWJsZS1wcmludC1pbmxpbmUtYmxvY2t7ZGlzcGxheTpub25lIWltcG9ydGFudH1AbWVkaWEgcHJpbnR7LmNs''@;'; + put 'put ''ci12aXNpYmxlLXByaW50LWlubGluZS1ibG9ja3tkaXNwbGF5OmlubGluZS1ibG9jayFpbXBvcnRhbnR9fUBtZWRpYSBwcmludHsuY2xyLWhpZGRlbi1wcmludHtkaXNwbGF5Om5vbmUhaW1wb3J0YW50fX0uY2xyLXJvd3tkaXNwbGF5OmZsZXg7ZmxleC13cmFwOndyYXA7bWFyZ2luLXJpZ2h0''@;'; + put 'put ''Oi0uNnJlbTttYXJnaW4tbGVmdDotLjZyZW19LmNsci1uby1ndXR0ZXJze21hcmdpbi1yaWdodDowO21hcmdpbi1sZWZ0OjB9LmNsci1uby1ndXR0ZXJzPi5jbHItY29sLC5jbHItbm8tZ3V0dGVycz5bY2xhc3MqPWNsci1jb2wtXXtwYWRkaW5nLXJpZ2h0OjA7cGFkZGluZy1sZWZ0OjB9LmNs''@;'; + put 'put ''ci1jb2wteGwsLmNsci1jb2wteGwtYXV0bywuY2xyLWNvbC14bC0xMiwuY2xyLWNvbC14bC0xMSwuY2xyLWNvbC14bC0xMCwuY2xyLWNvbC14bC05LC5jbHItY29sLXhsLTgsLmNsci1jb2wteGwtNywuY2xyLWNvbC14bC02LC5jbHItY29sLXhsLTUsLmNsci1jb2wteGwtNCwuY2xyLWNvbC14''@;'; + put 'put ''bC0zLC5jbHItY29sLXhsLTIsLmNsci1jb2wteGwtMSwuY2xyLWNvbC1sZywuY2xyLWNvbC1sZy1hdXRvLC5jbHItY29sLWxnLTEyLC5jbHItY29sLWxnLTExLC5jbHItY29sLWxnLTEwLC5jbHItY29sLWxnLTksLmNsci1jb2wtbGctOCwuY2xyLWNvbC1sZy03LC5jbHItY29sLWxnLTYsLmNs''@;'; + put 'put ''ci1jb2wtbGctNSwuY2xyLWNvbC1sZy00LC5jbHItY29sLWxnLTMsLmNsci1jb2wtbGctMiwuY2xyLWNvbC1sZy0xLC5jbHItY29sLW1kLC5jbHItY29sLW1kLWF1dG8sLmNsci1jb2wtbWQtMTIsLmNsci1jb2wtbWQtMTEsLmNsci1jb2wtbWQtMTAsLmNsci1jb2wtbWQtOSwuY2xyLWNvbC1t''@;'; + put 'put ''ZC04LC5jbHItY29sLW1kLTcsLmNsci1jb2wtbWQtNiwuY2xyLWNvbC1tZC01LC5jbHItY29sLW1kLTQsLmNsci1jb2wtbWQtMywuY2xyLWNvbC1tZC0yLC5jbHItY29sLW1kLTEsLmNsci1jb2wtc20sLmNsci1jb2wtc20tYXV0bywuY2xyLWNvbC1zbS0xMiwuY2xyLWNvbC1zbS0xMSwuY2xy''@;'; + put 'put ''LWNvbC1zbS0xMCwuY2xyLWNvbC1zbS05LC5jbHItY29sLXNtLTgsLmNsci1jb2wtc20tNywuY2xyLWNvbC1zbS02LC5jbHItY29sLXNtLTUsLmNsci1jb2wtc20tNCwuY2xyLWNvbC1zbS0zLC5jbHItY29sLXNtLTIsLmNsci1jb2wtc20tMSwuY2xyLWNvbCwuY2xyLWNvbC1hdXRvLC5jbHIt''@;'; + put 'put ''Y29sLTEyLC5jbHItY29sLTExLC5jbHItY29sLTEwLC5jbHItY29sLTksLmNsci1jb2wtOCwuY2xyLWNvbC03LC5jbHItY29sLTYsLmNsci1jb2wtNSwuY2xyLWNvbC00LC5jbHItY29sLTMsLmNsci1jb2wtMiwuY2xyLWNvbC0xe3dpZHRoOjEwMCU7bWluLWhlaWdodDouMDVyZW07cGFkZGlu''@;'; + put 'put ''Zy1yaWdodDouNnJlbTtwYWRkaW5nLWxlZnQ6LjZyZW19LmNsci1jb2x7ZmxleC1iYXNpczowO2ZsZXgtZ3JvdzoxO21heC13aWR0aDoxMDAlfS5jbHItY29sLWF1dG97ZmxleDowIDAgYXV0bzt3aWR0aDphdXRvO21heC13aWR0aDpub25lfS5jbHItY29sLTF7ZmxleDowIDAgOC4zMzMzMzMz''@;'; + put 'put ''MzMzJTttYXgtd2lkdGg6OC4zMzMzMzMzMzMzJX0uY2xyLWNvbC0ye2ZsZXg6MCAwIDE2LjY2NjY2NjY2NjclO21heC13aWR0aDoxNi42NjY2NjY2NjY3JX0uY2xyLWNvbC0ze2ZsZXg6MCAwIDI1JTttYXgtd2lkdGg6MjUlfS5jbHItY29sLTR7ZmxleDowIDAgMzMuMzMzMzMzMzMzMyU7bWF4''@;'; + put 'put ''LXdpZHRoOjMzLjMzMzMzMzMzMzMlfS5jbHItY29sLTV7ZmxleDowIDAgNDEuNjY2NjY2NjY2NyU7bWF4LXdpZHRoOjQxLjY2NjY2NjY2NjclfS5jbHItY29sLTZ7ZmxleDowIDAgNTAlO21heC13aWR0aDo1MCV9LmNsci1jb2wtN3tmbGV4OjAgMCA1OC4zMzMzMzMzMzMzJTttYXgtd2lkdGg6''@;'; + put 'put ''NTguMzMzMzMzMzMzMyV9LmNsci1jb2wtOHtmbGV4OjAgMCA2Ni42NjY2NjY2NjY3JTttYXgtd2lkdGg6NjYuNjY2NjY2NjY2NyV9LmNsci1jb2wtOXtmbGV4OjAgMCA3NSU7bWF4LXdpZHRoOjc1JX0uY2xyLWNvbC0xMHtmbGV4OjAgMCA4My4zMzMzMzMzMzMzJTttYXgtd2lkdGg6ODMuMzMz''@;'; + put 'put ''MzMzMzMzMyV9LmNsci1jb2wtMTF7ZmxleDowIDAgOTEuNjY2NjY2NjY2NyU7bWF4LXdpZHRoOjkxLjY2NjY2NjY2NjclfS5jbHItY29sLTEye2ZsZXg6MCAwIDEwMCU7bWF4LXdpZHRoOjEwMCV9LmNsci1vcmRlci1maXJzdHtvcmRlcjotMX0uY2xyLW9yZGVyLWxhc3R7b3JkZXI6MTN9LmNs''@;'; + put 'put ''ci1vcmRlci0we29yZGVyOjB9LmNsci1vcmRlci0xe29yZGVyOjF9LmNsci1vcmRlci0ye29yZGVyOjJ9LmNsci1vcmRlci0ze29yZGVyOjN9LmNsci1vcmRlci00e29yZGVyOjR9LmNsci1vcmRlci01e29yZGVyOjV9LmNsci1vcmRlci02e29yZGVyOjZ9LmNsci1vcmRlci03e29yZGVyOjd9''@;'; + put 'put ''LmNsci1vcmRlci04e29yZGVyOjh9LmNsci1vcmRlci05e29yZGVyOjl9LmNsci1vcmRlci0xMHtvcmRlcjoxMH0uY2xyLW9yZGVyLTExe29yZGVyOjExfS5jbHItb3JkZXItMTJ7b3JkZXI6MTJ9LmNsci1vZmZzZXQtMXttYXJnaW4tbGVmdDo4LjMzMzMzMzMzMzMlfS5jbHItb2Zmc2V0LTJ7''@;'; + put 'put ''bWFyZ2luLWxlZnQ6MTYuNjY2NjY2NjY2NyV9LmNsci1vZmZzZXQtM3ttYXJnaW4tbGVmdDoyNSV9LmNsci1vZmZzZXQtNHttYXJnaW4tbGVmdDozMy4zMzMzMzMzMzMzJX0uY2xyLW9mZnNldC01e21hcmdpbi1sZWZ0OjQxLjY2NjY2NjY2NjclfS5jbHItb2Zmc2V0LTZ7bWFyZ2luLWxlZnQ6''@;'; + put 'put ''NTAlfS5jbHItb2Zmc2V0LTd7bWFyZ2luLWxlZnQ6NTguMzMzMzMzMzMzMyV9LmNsci1vZmZzZXQtOHttYXJnaW4tbGVmdDo2Ni42NjY2NjY2NjY3JX0uY2xyLW9mZnNldC05e21hcmdpbi1sZWZ0Ojc1JX0uY2xyLW9mZnNldC0xMHttYXJnaW4tbGVmdDo4My4zMzMzMzMzMzMzJX0uY2xyLW9m''@;'; + put 'put ''ZnNldC0xMXttYXJnaW4tbGVmdDo5MS42NjY2NjY2NjY3JX1AbWVkaWEgKG1pbi13aWR0aDo1NzZweCl7LmNsci1jb2wtc217ZmxleC1iYXNpczowO2ZsZXgtZ3JvdzoxO21heC13aWR0aDoxMDAlfS5jbHItY29sLXNtLWF1dG97ZmxleDowIDAgYXV0bzt3aWR0aDphdXRvO21heC13aWR0aDpu''@;'; + put 'put ''b25lfS5jbHItY29sLXNtLTF7ZmxleDowIDAgOC4zMzMzMzMzMzMzJTttYXgtd2lkdGg6OC4zMzMzMzMzMzMzJX0uY2xyLWNvbC1zbS0ye2ZsZXg6MCAwIDE2LjY2NjY2NjY2NjclO21heC13aWR0aDoxNi42NjY2NjY2NjY3JX0uY2xyLWNvbC1zbS0ze2ZsZXg6MCAwIDI1JTttYXgtd2lkdGg6''@;'; + put 'put ''MjUlfS5jbHItY29sLXNtLTR7ZmxleDowIDAgMzMuMzMzMzMzMzMzMyU7bWF4LXdpZHRoOjMzLjMzMzMzMzMzMzMlfS5jbHItY29sLXNtLTV7ZmxleDowIDAgNDEuNjY2NjY2NjY2NyU7bWF4LXdpZHRoOjQxLjY2NjY2NjY2NjclfS5jbHItY29sLXNtLTZ7ZmxleDowIDAgNTAlO21heC13aWR0''@;'; + put 'put ''aDo1MCV9LmNsci1jb2wtc20tN3tmbGV4OjAgMCA1OC4zMzMzMzMzMzMzJTttYXgtd2lkdGg6NTguMzMzMzMzMzMzMyV9LmNsci1jb2wtc20tOHtmbGV4OjAgMCA2Ni42NjY2NjY2NjY3JTttYXgtd2lkdGg6NjYuNjY2NjY2NjY2NyV9LmNsci1jb2wtc20tOXtmbGV4OjAgMCA3NSU7bWF4LXdp''@;'; + put 'put ''ZHRoOjc1JX0uY2xyLWNvbC1zbS0xMHtmbGV4OjAgMCA4My4zMzMzMzMzMzMzJTttYXgtd2lkdGg6ODMuMzMzMzMzMzMzMyV9LmNsci1jb2wtc20tMTF7ZmxleDowIDAgOTEuNjY2NjY2NjY2NyU7bWF4LXdpZHRoOjkxLjY2NjY2NjY2NjclfS5jbHItY29sLXNtLTEye2ZsZXg6MCAwIDEwMCU7''@;'; + put 'put ''bWF4LXdpZHRoOjEwMCV9LmNsci1vcmRlci1zbS1maXJzdHtvcmRlcjotMX0uY2xyLW9yZGVyLXNtLWxhc3R7b3JkZXI6MTN9LmNsci1vcmRlci1zbS0we29yZGVyOjB9LmNsci1vcmRlci1zbS0xe29yZGVyOjF9LmNsci1vcmRlci1zbS0ye29yZGVyOjJ9LmNsci1vcmRlci1zbS0ze29yZGVy''@;'; + put 'put ''OjN9LmNsci1vcmRlci1zbS00e29yZGVyOjR9LmNsci1vcmRlci1zbS01e29yZGVyOjV9LmNsci1vcmRlci1zbS02e29yZGVyOjZ9LmNsci1vcmRlci1zbS03e29yZGVyOjd9LmNsci1vcmRlci1zbS04e29yZGVyOjh9LmNsci1vcmRlci1zbS05e29yZGVyOjl9LmNsci1vcmRlci1zbS0xMHtv''@;'; + put 'put ''cmRlcjoxMH0uY2xyLW9yZGVyLXNtLTExe29yZGVyOjExfS5jbHItb3JkZXItc20tMTJ7b3JkZXI6MTJ9LmNsci1vZmZzZXQtc20tMHttYXJnaW4tbGVmdDowfS5jbHItb2Zmc2V0LXNtLTF7bWFyZ2luLWxlZnQ6OC4zMzMzMzMzMzMzJX0uY2xyLW9mZnNldC1zbS0ye21hcmdpbi1sZWZ0OjE2''@;'; + put 'put ''LjY2NjY2NjY2NjclfS5jbHItb2Zmc2V0LXNtLTN7bWFyZ2luLWxlZnQ6MjUlfS5jbHItb2Zmc2V0LXNtLTR7bWFyZ2luLWxlZnQ6MzMuMzMzMzMzMzMzMyV9LmNsci1vZmZzZXQtc20tNXttYXJnaW4tbGVmdDo0MS42NjY2NjY2NjY3JX0uY2xyLW9mZnNldC1zbS02e21hcmdpbi1sZWZ0OjUw''@;'; + put 'put ''JX0uY2xyLW9mZnNldC1zbS03e21hcmdpbi1sZWZ0OjU4LjMzMzMzMzMzMzMlfS5jbHItb2Zmc2V0LXNtLTh7bWFyZ2luLWxlZnQ6NjYuNjY2NjY2NjY2NyV9LmNsci1vZmZzZXQtc20tOXttYXJnaW4tbGVmdDo3NSV9LmNsci1vZmZzZXQtc20tMTB7bWFyZ2luLWxlZnQ6ODMuMzMzMzMzMzMz''@;'; + put 'put ''MyV9LmNsci1vZmZzZXQtc20tMTF7bWFyZ2luLWxlZnQ6OTEuNjY2NjY2NjY2NyV9fUBtZWRpYSAobWluLXdpZHRoOjc2OHB4KXsuY2xyLWNvbC1tZHtmbGV4LWJhc2lzOjA7ZmxleC1ncm93OjE7bWF4LXdpZHRoOjEwMCV9LmNsci1jb2wtbWQtYXV0b3tmbGV4OjAgMCBhdXRvO3dpZHRoOmF1''@;'; + put 'put ''dG87bWF4LXdpZHRoOm5vbmV9LmNsci1jb2wtbWQtMXtmbGV4OjAgMCA4LjMzMzMzMzMzMzMlO21heC13aWR0aDo4LjMzMzMzMzMzMzMlfS5jbHItY29sLW1kLTJ7ZmxleDowIDAgMTYuNjY2NjY2NjY2NyU7bWF4LXdpZHRoOjE2LjY2NjY2NjY2NjclfS5jbHItY29sLW1kLTN7ZmxleDowIDAg''@;'; + put 'put ''MjUlO21heC13aWR0aDoyNSV9LmNsci1jb2wtbWQtNHtmbGV4OjAgMCAzMy4zMzMzMzMzMzMzJTttYXgtd2lkdGg6MzMuMzMzMzMzMzMzMyV9LmNsci1jb2wtbWQtNXtmbGV4OjAgMCA0MS42NjY2NjY2NjY3JTttYXgtd2lkdGg6NDEuNjY2NjY2NjY2NyV9LmNsci1jb2wtbWQtNntmbGV4OjAg''@;'; + put 'put ''MCA1MCU7bWF4LXdpZHRoOjUwJX0uY2xyLWNvbC1tZC03e2ZsZXg6MCAwIDU4LjMzMzMzMzMzMzMlO21heC13aWR0aDo1OC4zMzMzMzMzMzMzJX0uY2xyLWNvbC1tZC04e2ZsZXg6MCAwIDY2LjY2NjY2NjY2NjclO21heC13aWR0aDo2Ni42NjY2NjY2NjY3JX0uY2xyLWNvbC1tZC05e2ZsZXg6''@;'; + put 'put ''MCAwIDc1JTttYXgtd2lkdGg6NzUlfS5jbHItY29sLW1kLTEwe2ZsZXg6MCAwIDgzLjMzMzMzMzMzMzMlO21heC13aWR0aDo4My4zMzMzMzMzMzMzJX0uY2xyLWNvbC1tZC0xMXtmbGV4OjAgMCA5MS42NjY2NjY2NjY3JTttYXgtd2lkdGg6OTEuNjY2NjY2NjY2NyV9LmNsci1jb2wtbWQtMTJ7''@;'; + put 'put ''ZmxleDowIDAgMTAwJTttYXgtd2lkdGg6MTAwJX0uY2xyLW9yZGVyLW1kLWZpcnN0e29yZGVyOi0xfS5jbHItb3JkZXItbWQtbGFzdHtvcmRlcjoxM30uY2xyLW9yZGVyLW1kLTB7b3JkZXI6MH0uY2xyLW9yZGVyLW1kLTF7b3JkZXI6MX0uY2xyLW9yZGVyLW1kLTJ7b3JkZXI6Mn0uY2xyLW9y''@;'; + put 'put ''ZGVyLW1kLTN7b3JkZXI6M30uY2xyLW9yZGVyLW1kLTR7b3JkZXI6NH0uY2xyLW9yZGVyLW1kLTV7b3JkZXI6NX0uY2xyLW9yZGVyLW1kLTZ7b3JkZXI6Nn0uY2xyLW9yZGVyLW1kLTd7b3JkZXI6N30uY2xyLW9yZGVyLW1kLTh7b3JkZXI6OH0uY2xyLW9yZGVyLW1kLTl7b3JkZXI6OX0uY2xy''@;'; + put 'put ''LW9yZGVyLW1kLTEwe29yZGVyOjEwfS5jbHItb3JkZXItbWQtMTF7b3JkZXI6MTF9LmNsci1vcmRlci1tZC0xMntvcmRlcjoxMn0uY2xyLW9mZnNldC1tZC0we21hcmdpbi1sZWZ0OjB9LmNsci1vZmZzZXQtbWQtMXttYXJnaW4tbGVmdDo4LjMzMzMzMzMzMzMlfS5jbHItb2Zmc2V0LW1kLTJ7''@;'; + put 'put ''bWFyZ2luLWxlZnQ6MTYuNjY2NjY2NjY2NyV9LmNsci1vZmZzZXQtbWQtM3ttYXJnaW4tbGVmdDoyNSV9LmNsci1vZmZzZXQtbWQtNHttYXJnaW4tbGVmdDozMy4zMzMzMzMzMzMzJX0uY2xyLW9mZnNldC1tZC01e21hcmdpbi1sZWZ0OjQxLjY2NjY2NjY2NjclfS5jbHItb2Zmc2V0LW1kLTZ7''@;'; + put 'put ''bWFyZ2luLWxlZnQ6NTAlfS5jbHItb2Zmc2V0LW1kLTd7bWFyZ2luLWxlZnQ6NTguMzMzMzMzMzMzMyV9LmNsci1vZmZzZXQtbWQtOHttYXJnaW4tbGVmdDo2Ni42NjY2NjY2NjY3JX0uY2xyLW9mZnNldC1tZC05e21hcmdpbi1sZWZ0Ojc1JX0uY2xyLW9mZnNldC1tZC0xMHttYXJnaW4tbGVm''@;'; + put 'put ''dDo4My4zMzMzMzMzMzMzJX0uY2xyLW9mZnNldC1tZC0xMXttYXJnaW4tbGVmdDo5MS42NjY2NjY2NjY3JX19QG1lZGlhIChtaW4td2lkdGg6OTkycHgpey5jbHItY29sLWxne2ZsZXgtYmFzaXM6MDtmbGV4LWdyb3c6MTttYXgtd2lkdGg6MTAwJX0uY2xyLWNvbC1sZy1hdXRve2ZsZXg6MCAw''@;'; + put 'put ''IGF1dG87d2lkdGg6YXV0bzttYXgtd2lkdGg6bm9uZX0uY2xyLWNvbC1sZy0xe2ZsZXg6MCAwIDguMzMzMzMzMzMzMyU7bWF4LXdpZHRoOjguMzMzMzMzMzMzMyV9LmNsci1jb2wtbGctMntmbGV4OjAgMCAxNi42NjY2NjY2NjY3JTttYXgtd2lkdGg6MTYuNjY2NjY2NjY2NyV9LmNsci1jb2wt''@;'; + put 'put ''bGctM3tmbGV4OjAgMCAyNSU7bWF4LXdpZHRoOjI1JX0uY2xyLWNvbC1sZy00e2ZsZXg6MCAwIDMzLjMzMzMzMzMzMzMlO21heC13aWR0aDozMy4zMzMzMzMzMzMzJX0uY2xyLWNvbC1sZy01e2ZsZXg6MCAwIDQxLjY2NjY2NjY2NjclO21heC13aWR0aDo0MS42NjY2NjY2NjY3JX0uY2xyLWNv''@;'; + put 'put ''bC1sZy02e2ZsZXg6MCAwIDUwJTttYXgtd2lkdGg6NTAlfS5jbHItY29sLWxnLTd7ZmxleDowIDAgNTguMzMzMzMzMzMzMyU7bWF4LXdpZHRoOjU4LjMzMzMzMzMzMzMlfS5jbHItY29sLWxnLTh7ZmxleDowIDAgNjYuNjY2NjY2NjY2NyU7bWF4LXdpZHRoOjY2LjY2NjY2NjY2NjclfS5jbHIt''@;'; + put 'put ''Y29sLWxnLTl7ZmxleDowIDAgNzUlO21heC13aWR0aDo3NSV9LmNsci1jb2wtbGctMTB7ZmxleDowIDAgODMuMzMzMzMzMzMzMyU7bWF4LXdpZHRoOjgzLjMzMzMzMzMzMzMlfS5jbHItY29sLWxnLTExe2ZsZXg6MCAwIDkxLjY2NjY2NjY2NjclO21heC13aWR0aDo5MS42NjY2NjY2NjY3JX0u''@;'; + put 'put ''Y2xyLWNvbC1sZy0xMntmbGV4OjAgMCAxMDAlO21heC13aWR0aDoxMDAlfS5jbHItb3JkZXItbGctZmlyc3R7b3JkZXI6LTF9LmNsci1vcmRlci1sZy1sYXN0e29yZGVyOjEzfS5jbHItb3JkZXItbGctMHtvcmRlcjowfS5jbHItb3JkZXItbGctMXtvcmRlcjoxfS5jbHItb3JkZXItbGctMntv''@;'; + put 'put ''cmRlcjoyfS5jbHItb3JkZXItbGctM3tvcmRlcjozfS5jbHItb3JkZXItbGctNHtvcmRlcjo0fS5jbHItb3JkZXItbGctNXtvcmRlcjo1fS5jbHItb3JkZXItbGctNntvcmRlcjo2fS5jbHItb3JkZXItbGctN3tvcmRlcjo3fS5jbHItb3JkZXItbGctOHtvcmRlcjo4fS5jbHItb3JkZXItbGct''@;'; + put 'put ''OXtvcmRlcjo5fS5jbHItb3JkZXItbGctMTB7b3JkZXI6MTB9LmNsci1vcmRlci1sZy0xMXtvcmRlcjoxMX0uY2xyLW9yZGVyLWxnLTEye29yZGVyOjEyfS5jbHItb2Zmc2V0LWxnLTB7bWFyZ2luLWxlZnQ6MH0uY2xyLW9mZnNldC1sZy0xe21hcmdpbi1sZWZ0OjguMzMzMzMzMzMzMyV9LmNs''@;'; + put 'put ''ci1vZmZzZXQtbGctMnttYXJnaW4tbGVmdDoxNi42NjY2NjY2NjY3JX0uY2xyLW9mZnNldC1sZy0ze21hcmdpbi1sZWZ0OjI1JX0uY2xyLW9mZnNldC1sZy00e21hcmdpbi1sZWZ0OjMzLjMzMzMzMzMzMzMlfS5jbHItb2Zmc2V0LWxnLTV7bWFyZ2luLWxlZnQ6NDEuNjY2NjY2NjY2NyV9LmNs''@;'; + put 'put ''ci1vZmZzZXQtbGctNnttYXJnaW4tbGVmdDo1MCV9LmNsci1vZmZzZXQtbGctN3ttYXJnaW4tbGVmdDo1OC4zMzMzMzMzMzMzJX0uY2xyLW9mZnNldC1sZy04e21hcmdpbi1sZWZ0OjY2LjY2NjY2NjY2NjclfS5jbHItb2Zmc2V0LWxnLTl7bWFyZ2luLWxlZnQ6NzUlfS5jbHItb2Zmc2V0LWxn''@;'; + put 'put ''LTEwe21hcmdpbi1sZWZ0OjgzLjMzMzMzMzMzMzMlfS5jbHItb2Zmc2V0LWxnLTExe21hcmdpbi1sZWZ0OjkxLjY2NjY2NjY2NjclfX1AbWVkaWEgKG1pbi13aWR0aDoxMjAwcHgpey5jbHItY29sLXhse2ZsZXgtYmFzaXM6MDtmbGV4LWdyb3c6MTttYXgtd2lkdGg6MTAwJX0uY2xyLWNvbC14''@;'; + put 'put ''bC1hdXRve2ZsZXg6MCAwIGF1dG87d2lkdGg6YXV0bzttYXgtd2lkdGg6bm9uZX0uY2xyLWNvbC14bC0xe2ZsZXg6MCAwIDguMzMzMzMzMzMzMyU7bWF4LXdpZHRoOjguMzMzMzMzMzMzMyV9LmNsci1jb2wteGwtMntmbGV4OjAgMCAxNi42NjY2NjY2NjY3JTttYXgtd2lkdGg6MTYuNjY2NjY2''@;'; + put 'put ''NjY2NyV9LmNsci1jb2wteGwtM3tmbGV4OjAgMCAyNSU7bWF4LXdpZHRoOjI1JX0uY2xyLWNvbC14bC00e2ZsZXg6MCAwIDMzLjMzMzMzMzMzMzMlO21heC13aWR0aDozMy4zMzMzMzMzMzMzJX0uY2xyLWNvbC14bC01e2ZsZXg6MCAwIDQxLjY2NjY2NjY2NjclO21heC13aWR0aDo0MS42NjY2''@;'; + put 'put ''NjY2NjY3JX0uY2xyLWNvbC14bC02e2ZsZXg6MCAwIDUwJTttYXgtd2lkdGg6NTAlfS5jbHItY29sLXhsLTd7ZmxleDowIDAgNTguMzMzMzMzMzMzMyU7bWF4LXdpZHRoOjU4LjMzMzMzMzMzMzMlfS5jbHItY29sLXhsLTh7ZmxleDowIDAgNjYuNjY2NjY2NjY2NyU7bWF4LXdpZHRoOjY2LjY2''@;'; + put 'put ''NjY2NjY2NjclfS5jbHItY29sLXhsLTl7ZmxleDowIDAgNzUlO21heC13aWR0aDo3NSV9LmNsci1jb2wteGwtMTB7ZmxleDowIDAgODMuMzMzMzMzMzMzMyU7bWF4LXdpZHRoOjgzLjMzMzMzMzMzMzMlfS5jbHItY29sLXhsLTExe2ZsZXg6MCAwIDkxLjY2NjY2NjY2NjclO21heC13aWR0aDo5''@;'; + put 'put ''MS42NjY2NjY2NjY3JX0uY2xyLWNvbC14bC0xMntmbGV4OjAgMCAxMDAlO21heC13aWR0aDoxMDAlfS5jbHItb3JkZXIteGwtZmlyc3R7b3JkZXI6LTF9LmNsci1vcmRlci14bC1sYXN0e29yZGVyOjEzfS5jbHItb3JkZXIteGwtMHtvcmRlcjowfS5jbHItb3JkZXIteGwtMXtvcmRlcjoxfS5j''@;'; + put 'put ''bHItb3JkZXIteGwtMntvcmRlcjoyfS5jbHItb3JkZXIteGwtM3tvcmRlcjozfS5jbHItb3JkZXIteGwtNHtvcmRlcjo0fS5jbHItb3JkZXIteGwtNXtvcmRlcjo1fS5jbHItb3JkZXIteGwtNntvcmRlcjo2fS5jbHItb3JkZXIteGwtN3tvcmRlcjo3fS5jbHItb3JkZXIteGwtOHtvcmRlcjo4''@;'; + put 'put ''fS5jbHItb3JkZXIteGwtOXtvcmRlcjo5fS5jbHItb3JkZXIteGwtMTB7b3JkZXI6MTB9LmNsci1vcmRlci14bC0xMXtvcmRlcjoxMX0uY2xyLW9yZGVyLXhsLTEye29yZGVyOjEyfS5jbHItb2Zmc2V0LXhsLTB7bWFyZ2luLWxlZnQ6MH0uY2xyLW9mZnNldC14bC0xe21hcmdpbi1sZWZ0Ojgu''@;'; + put 'put ''MzMzMzMzMzMzMyV9LmNsci1vZmZzZXQteGwtMnttYXJnaW4tbGVmdDoxNi42NjY2NjY2NjY3JX0uY2xyLW9mZnNldC14bC0ze21hcmdpbi1sZWZ0OjI1JX0uY2xyLW9mZnNldC14bC00e21hcmdpbi1sZWZ0OjMzLjMzMzMzMzMzMzMlfS5jbHItb2Zmc2V0LXhsLTV7bWFyZ2luLWxlZnQ6NDEu''@;'; + put 'put ''NjY2NjY2NjY2NyV9LmNsci1vZmZzZXQteGwtNnttYXJnaW4tbGVmdDo1MCV9LmNsci1vZmZzZXQteGwtN3ttYXJnaW4tbGVmdDo1OC4zMzMzMzMzMzMzJX0uY2xyLW9mZnNldC14bC04e21hcmdpbi1sZWZ0OjY2LjY2NjY2NjY2NjclfS5jbHItb2Zmc2V0LXhsLTl7bWFyZ2luLWxlZnQ6NzUl''@;'; + put 'put ''fS5jbHItb2Zmc2V0LXhsLTEwe21hcmdpbi1sZWZ0OjgzLjMzMzMzMzMzMzMlfS5jbHItb2Zmc2V0LXhsLTExe21hcmdpbi1sZWZ0OjkxLjY2NjY2NjY2NjclfX0uY2xyLWJyZWFrLXJvd3t3aWR0aDoxMDAlfSosOmJlZm9yZSw6YWZ0ZXJ7Ym94LXNpemluZzpib3JkZXItYm94fXByZXttYXJn''@;'; + put 'put ''aW46LjZyZW0gMH1wcmV7Ym9yZGVyLWNvbG9yOiNjY2M7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTQwMCwgI2NjY2NjYyk7Ym9yZGVyLXdpZHRoOi4wNXJlbTtib3JkZXItd2lkdGg6dmFyKC0tY2xyLWdsb2JhbC1ib3JkZXJ3aWR0aCwgLjA1cmVtKTtib3JkZXItc3R5''@;'; + put 'put ''bGU6c29saWQ7Ym9yZGVyLXJhZGl1czouMTVyZW07Ym9yZGVyLXJhZGl1czp2YXIoLS1jbHItZ2xvYmFsLWJvcmRlcnJhZGl1cywgLjE1cmVtKX1wcmUgY29kZXt3aGl0ZS1zcGFjZTpwcmV9Y29kZS5jbHItY29kZXtjb2xvcjojYzIxZDAwO2NvbG9yOnZhcigtLWNsci1jb2xvci1kYW5nZXIt''@;'; + put 'put ''ODAwLCAjYzIxZDAwKTtwYWRkaW5nOjA7YmFja2dyb3VuZDowIDB9dWwubGlzdC11bnN0eWxlZDpub3QoW2Nkcy1saXN0XSl7cGFkZGluZy1sZWZ0OjA7bWFyZ2luLWxlZnQ6MDtsaXN0LXN0eWxlOm5vbmV9dWw6bm90KFtjZHMtbGlzdF0pLG9sOm5vdChbY2RzLWxpc3RdKXtsaXN0LXN0eWxl''@;'; + put 'put ''LXBvc2l0aW9uOmluc2lkZTttYXJnaW4tbGVmdDowO21hcmdpbi10b3A6MDttYXJnaW4tYm90dG9tOjA7cGFkZGluZy1sZWZ0OjB9dWwubGlzdDpub3QoW2Nkcy1saXN0XSksb2wubGlzdDpub3QoW2Nkcy1saXN0XSl7bGlzdC1zdHlsZS1wb3NpdGlvbjpvdXRzaWRlO21hcmdpbi1sZWZ0OjEu''@;'; + put 'put ''MWVtfXVsLmxpc3Q6bm90KFtjZHMtbGlzdF0pLmNvbXBhY3Qsb2wubGlzdDpub3QoW2Nkcy1saXN0XSkuY29tcGFjdHtsaW5lLWhlaWdodDouOXJlbX11bC5saXN0Om5vdChbY2RzLWxpc3RdKS5jb21wYWN0PmxpLG9sLmxpc3Q6bm90KFtjZHMtbGlzdF0pLmNvbXBhY3Q+bGl7bWFyZ2luLWJv''@;'; + put 'put ''dHRvbTouM3JlbX11bC5saXN0Om5vdChbY2RzLWxpc3RdKS5jb21wYWN0PmxpOmxhc3QtY2hpbGQsb2wubGlzdDpub3QoW2Nkcy1saXN0XSkuY29tcGFjdD5saTpsYXN0LWNoaWxke21hcmdpbi1ib3R0b206MH11bDpub3QoLmxpc3QtdW5zdHlsZWQpOm5vdChbY2RzLWxpc3RdKT5saT51bC5s''@;'; + put 'put ''aXN0LXVuc3R5bGVkLG9sOm5vdChbY2RzLWxpc3RdKT5saT51bC5saXN0LXVuc3R5bGVke21hcmdpbi1sZWZ0OjEuMWVtfWxpPnVsOm5vdChbY2RzLWxpc3RdKXttYXJnaW4tdG9wOjA7bWFyZ2luLWxlZnQ6MS4xZW19dWwubGlzdC1ncm91cDpub3QoW2Nkcy1saXN0XSl7bWFyZ2luLXRvcDow''@;'; + put 'put ''fXVsOm5vdChbY2RzLWxpc3RdKS5saXN0LXNwYWNlcixvbDpub3QoW2Nkcy1saXN0XSkubGlzdC1zcGFjZXJ7bWFyZ2luLXRvcDoxLjJyZW19aDE6bm90KFtjZHMtdGV4dF0pe2NvbG9yOiMwMDA7Y29sb3I6dmFyKC0tY2xyLWgxLWNvbG9yLCBibGFjayk7Zm9udC13ZWlnaHQ6MjAwO2ZvbnQt''@;'; + put 'put ''d2VpZ2h0OnZhcigtLWNsci1oMS1mb250LXdlaWdodCwgMjAwKTtmb250LWZhbWlseTpNZXRyb3BvbGlzLEF2ZW5pciBOZXh0LEhlbHZldGljYSBOZXVlLEFyaWFsLHNhbnMtc2VyaWY7Zm9udC1mYW1pbHk6dmFyKC0tY2xyLWgxLWZvbnQtZmFtaWx5LCBNZXRyb3BvbGlzLCAiQXZlbmlyIE5l''@;'; + put 'put ''eHQiLCAiSGVsdmV0aWNhIE5ldWUiLCBBcmlhbCwgc2Fucy1zZXJpZik7Zm9udC1zaXplOjEuNnJlbTtsZXR0ZXItc3BhY2luZzpub3JtYWw7bGluZS1oZWlnaHQ6Mi40cmVtO21hcmdpbi10b3A6MS4ycmVtO21hcmdpbi1ib3R0b206MH1oMjpub3QoW2Nkcy10ZXh0XSl7Y29sb3I6IzAwMDtj''@;'; + put 'put ''b2xvcjp2YXIoLS1jbHItaDItY29sb3IsIGJsYWNrKTtmb250LXdlaWdodDoyMDA7Zm9udC13ZWlnaHQ6dmFyKC0tY2xyLWgyLWZvbnQtd2VpZ2h0LCAyMDApO2ZvbnQtZmFtaWx5Ok1ldHJvcG9saXMsQXZlbmlyIE5leHQsSGVsdmV0aWNhIE5ldWUsQXJpYWwsc2Fucy1zZXJpZjtmb250LWZh''@;'; + put 'put ''bWlseTp2YXIoLS1jbHItaDItZm9udC1mYW1pbHksIE1ldHJvcG9saXMsICJBdmVuaXIgTmV4dCIsICJIZWx2ZXRpY2EgTmV1ZSIsIEFyaWFsLCBzYW5zLXNlcmlmKTtmb250LXNpemU6MS40cmVtO2xldHRlci1zcGFjaW5nOm5vcm1hbDtsaW5lLWhlaWdodDoyLjRyZW07bWFyZ2luLXRvcDox''@;'; + put 'put ''LjJyZW07bWFyZ2luLWJvdHRvbTowfWgzOm5vdChbY2RzLXRleHRdKXtjb2xvcjojMDAwO2NvbG9yOnZhcigtLWNsci1oMy1jb2xvciwgYmxhY2spO2ZvbnQtd2VpZ2h0OjIwMDtmb250LXdlaWdodDp2YXIoLS1jbHItaDMtZm9udC13ZWlnaHQsIDIwMCk7Zm9udC1mYW1pbHk6TWV0cm9wb2xp''@;'; + put 'put ''cyxBdmVuaXIgTmV4dCxIZWx2ZXRpY2EgTmV1ZSxBcmlhbCxzYW5zLXNlcmlmO2ZvbnQtZmFtaWx5OnZhcigtLWNsci1oMy1mb250LWZhbWlseSwgTWV0cm9wb2xpcywgIkF2ZW5pciBOZXh0IiwgIkhlbHZldGljYSBOZXVlIiwgQXJpYWwsIHNhbnMtc2VyaWYpO2ZvbnQtc2l6ZToxLjFyZW07''@;'; + put 'put ''bGV0dGVyLXNwYWNpbmc6bm9ybWFsO2xpbmUtaGVpZ2h0OjEuMnJlbTttYXJnaW4tdG9wOjEuMnJlbTttYXJnaW4tYm90dG9tOjB9aDQ6bm90KFtjZHMtdGV4dF0pe2NvbG9yOiMwMDA7Y29sb3I6dmFyKC0tY2xyLWg0LWNvbG9yLCBibGFjayk7Zm9udC13ZWlnaHQ6MjAwO2ZvbnQtd2VpZ2h0''@;'; + put 'put ''OnZhcigtLWNsci1oNC1mb250LXdlaWdodCwgMjAwKTtmb250LWZhbWlseTpNZXRyb3BvbGlzLEF2ZW5pciBOZXh0LEhlbHZldGljYSBOZXVlLEFyaWFsLHNhbnMtc2VyaWY7Zm9udC1mYW1pbHk6dmFyKC0tY2xyLWg0LWZvbnQtZmFtaWx5LCBNZXRyb3BvbGlzLCAiQXZlbmlyIE5leHQiLCAi''@;'; + put 'put ''SGVsdmV0aWNhIE5ldWUiLCBBcmlhbCwgc2Fucy1zZXJpZik7Zm9udC1zaXplOi45cmVtO2xldHRlci1zcGFjaW5nOm5vcm1hbDtsaW5lLWhlaWdodDoxLjJyZW07bWFyZ2luLXRvcDoxLjJyZW07bWFyZ2luLWJvdHRvbTowfWg1Om5vdChbY2RzLXRleHRdKXtjb2xvcjojNjY2O2NvbG9yOnZh''@;'; + put 'put ''cigtLWNsci1oNS1jb2xvciwgIzY2NjY2Nik7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtd2VpZ2h0OnZhcigtLWNsci1oNS1mb250LXdlaWdodCwgNDAwKTtmb250LWZhbWlseTpNZXRyb3BvbGlzLEF2ZW5pciBOZXh0LEhlbHZldGljYSBOZXVlLEFyaWFsLHNhbnMtc2VyaWY7Zm9udC1mYW1pbHk6''@;'; + put 'put ''dmFyKC0tY2xyLWg1LWZvbnQtZmFtaWx5LCBNZXRyb3BvbGlzLCAiQXZlbmlyIE5leHQiLCAiSGVsdmV0aWNhIE5ldWUiLCBBcmlhbCwgc2Fucy1zZXJpZik7Zm9udC1zaXplOi44cmVtO2xldHRlci1zcGFjaW5nOi4wMWVtO2xpbmUtaGVpZ2h0OjEuMnJlbTttYXJnaW4tdG9wOjEuMnJlbTtt''@;'; + put 'put ''YXJnaW4tYm90dG9tOjB9aDY6bm90KFtjZHMtdGV4dF0pe2NvbG9yOiMzMzM7Y29sb3I6dmFyKC0tY2xyLWg2LWNvbG9yLCAjMzMzMzMzKTtmb250LXdlaWdodDo1MDA7Zm9udC13ZWlnaHQ6dmFyKC0tY2xyLWg2LWZvbnQtd2VpZ2h0LCA1MDApO2ZvbnQtZmFtaWx5Ok1ldHJvcG9saXMsQXZl''@;'; + put 'put ''bmlyIE5leHQsSGVsdmV0aWNhIE5ldWUsQXJpYWwsc2Fucy1zZXJpZjtmb250LWZhbWlseTp2YXIoLS1jbHItaDYtZm9udC1mYW1pbHksIE1ldHJvcG9saXMsICJBdmVuaXIgTmV4dCIsICJIZWx2ZXRpY2EgTmV1ZSIsIEFyaWFsLCBzYW5zLXNlcmlmKTtmb250LXNpemU6LjdyZW07bGV0dGVy''@;'; + put 'put ''LXNwYWNpbmc6bm9ybWFsO2xpbmUtaGVpZ2h0OjEuMnJlbTttYXJnaW4tdG9wOjEuMnJlbTttYXJnaW4tYm90dG9tOjB9Ym9keTpub3QoW2Nkcy10ZXh0XSl7Y29sb3I6IzY2Njtjb2xvcjp2YXIoLS1jbHItcDEtY29sb3IsICM2NjY2NjYpO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXdlaWdodDp2''@;'; + put 'put ''YXIoLS1jbHItcDEtZm9udC13ZWlnaHQsIDQwMCk7Zm9udC1zaXplOi43cmVtO2xldHRlci1zcGFjaW5nOm5vcm1hbDtsaW5lLWhlaWdodDoxLjJyZW07bWFyZ2luLWJvdHRvbTowO2ZvbnQtZmFtaWx5Ok1ldHJvcG9saXMsQXZlbmlyIE5leHQsSGVsdmV0aWNhIE5ldWUsQXJpYWwsc2Fucy1z''@;'; + put 'put ''ZXJpZjtmb250LWZhbWlseTp2YXIoLS1jbHItZm9udCwgTWV0cm9wb2xpcywgIkF2ZW5pciBOZXh0IiwgIkhlbHZldGljYSBOZXVlIiwgQXJpYWwsIHNhbnMtc2VyaWYpO21hcmdpbi10b3A6MCFpbXBvcnRhbnR9Ym9keSBwOm5vdChbY2RzLXRleHRdKXtjb2xvcjojNjY2O2NvbG9yOnZhcigt''@;'; + put 'put ''LWNsci1wMS1jb2xvciwgIzY2NjY2Nik7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtd2VpZ2h0OnZhcigtLWNsci1wMS1mb250LXdlaWdodCwgNDAwKTtmb250LXNpemU6LjdyZW07bGV0dGVyLXNwYWNpbmc6bm9ybWFsO2xpbmUtaGVpZ2h0OjEuMnJlbTttYXJnaW4tdG9wOjEuMnJlbTttYXJnaW4t''@;'; + put 'put ''Ym90dG9tOjB9Ym9keSAucDA6bm90KFtjZHMtdGV4dF0pLGJvZHkgcC5wMDpub3QoW2Nkcy10ZXh0XSl7Y29sb3I6IzY2Njtjb2xvcjp2YXIoLS1jbHItcDAtY29sb3IsICM2NjY2NjYpO2ZvbnQtd2VpZ2h0OjIwMDtmb250LXdlaWdodDp2YXIoLS1jbHItcDAtZm9udC13ZWlnaHQsIDIwMCk7''@;'; + put 'put ''Zm9udC1zaXplOjFyZW07bGV0dGVyLXNwYWNpbmc6bm9ybWFsO2xpbmUtaGVpZ2h0OjEuMnJlbTttYXJnaW4tdG9wOjEuMnJlbTttYXJnaW4tYm90dG9tOjB9Ym9keSAucDI6bm90KFtjZHMtdGV4dF0pLGJvZHkgcC5wMjpub3QoW2Nkcy10ZXh0XSl7Y29sb3I6IzY2Njtjb2xvcjp2YXIoLS1j''@;'; + put 'put ''bHItcDItY29sb3IsICM2NjY2NjYpO2ZvbnQtd2VpZ2h0OjUwMDtmb250LXdlaWdodDp2YXIoLS1jbHItcDItZm9udC13ZWlnaHQsIDUwMCk7Zm9udC1zaXplOi42NXJlbTtsZXR0ZXItc3BhY2luZzpub3JtYWw7bGluZS1oZWlnaHQ6MS4ycmVtO21hcmdpbi10b3A6MS4ycmVtO21hcmdpbi1i''@;'; + put 'put ''b3R0b206MH1ib2R5IC5wMzpub3QoW2Nkcy10ZXh0XSksYm9keSBwLnAzOm5vdChbY2RzLXRleHRdKXtjb2xvcjojNjY2O2NvbG9yOnZhcigtLWNsci1wMy1jb2xvciwgIzY2NjY2Nik7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtd2VpZ2h0OnZhcigtLWNsci1wMy1mb250LXdlaWdodCwgNDAwKTtm''@;'; + put 'put ''b250LXNpemU6LjY1cmVtO2xldHRlci1zcGFjaW5nOm5vcm1hbDtsaW5lLWhlaWdodDoxLjJyZW07bWFyZ2luLXRvcDoxLjJyZW07bWFyZ2luLWJvdHRvbTowfWJvZHkgLnA0Om5vdChbY2RzLXRleHRdKSxib2R5IHAucDQ6bm90KFtjZHMtdGV4dF0pe2NvbG9yOiM2NjY7Y29sb3I6dmFyKC0t''@;'; + put 'put ''Y2xyLXA0LWNvbG9yLCAjNjY2NjY2KTtmb250LXdlaWdodDo2MDA7Zm9udC13ZWlnaHQ6dmFyKC0tY2xyLXA0LWZvbnQtd2VpZ2h0LCA2MDApO2ZvbnQtc2l6ZTouNnJlbTtsZXR0ZXItc3BhY2luZzpub3JtYWw7bGluZS1oZWlnaHQ6MS4ycmVtO21hcmdpbi10b3A6MS4ycmVtO21hcmdpbi1i''@;'; + put 'put ''b3R0b206MH1ib2R5IC5wNTpub3QoW2Nkcy10ZXh0XSksYm9keSBwLnA1Om5vdChbY2RzLXRleHRdKXtjb2xvcjojNjY2O2NvbG9yOnZhcigtLWNsci1wNS1jb2xvciwgIzY2NjY2Nik7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtd2VpZ2h0OnZhcigtLWNsci1wNS1mb250LXdlaWdodCwgNDAwKTtm''@;'; + put 'put ''b250LXNpemU6LjZyZW07bGV0dGVyLXNwYWNpbmc6bm9ybWFsO2xpbmUtaGVpZ2h0OjEuMnJlbTttYXJnaW4tdG9wOjEuMnJlbTttYXJnaW4tYm90dG9tOjB9Ym9keSAucDY6bm90KFtjZHMtdGV4dF0pLGJvZHkgcC5wNjpub3QoW2Nkcy10ZXh0XSl7Y29sb3I6IzY2Njtjb2xvcjp2YXIoLS1j''@;'; + put 'put ''bHItcDYtY29sb3IsICM2NjY2NjYpO2ZvbnQtd2VpZ2h0OjYwMDtmb250LXdlaWdodDp2YXIoLS1jbHItcDYtZm9udC13ZWlnaHQsIDYwMCk7Zm9udC1zaXplOi41NXJlbTtsZXR0ZXItc3BhY2luZzouMDNlbTtsaW5lLWhlaWdodDouNnJlbTttYXJnaW4tdG9wOjEuMnJlbTttYXJnaW4tYm90''@;'; + put 'put ''dG9tOjB9Ym9keSAucDc6bm90KFtjZHMtdGV4dF0pLGJvZHkgcC5wNzpub3QoW2Nkcy10ZXh0XSl7Y29sb3I6IzY2Njtjb2xvcjp2YXIoLS1jbHItcDctY29sb3IsICM2NjY2NjYpO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXdlaWdodDp2YXIoLS1jbHItcDctZm9udC13ZWlnaHQsIDQwMCk7Zm9u''@;'; + put 'put ''dC1zaXplOi41NXJlbTtsZXR0ZXItc3BhY2luZzouMDNlbTtsaW5lLWhlaWdodDouNnJlbTttYXJnaW4tdG9wOjEuMnJlbTttYXJnaW4tYm90dG9tOjB9Ym9keSAucDg6bm90KFtjZHMtdGV4dF0pLGJvZHkgcC5wODpub3QoW2Nkcy10ZXh0XSl7Y29sb3I6IzY2Njtjb2xvcjp2YXIoLS1jbHIt''@;'; + put 'put ''cDgtY29sb3IsICM2NjY2NjYpO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXdlaWdodDp2YXIoLS1jbHItcDgtZm9udC13ZWlnaHQsIDQwMCk7Zm9udC1zaXplOi41cmVtO2xldHRlci1zcGFjaW5nOi4wM2VtO2xpbmUtaGVpZ2h0Oi42cmVtO21hcmdpbi10b3A6MS4ycmVtO21hcmdpbi1ib3R0b206''@;'; + put 'put ''MH0udGV4dC1saWdodHtmb250LXdlaWdodDoyMDA7Zm9udC13ZWlnaHQ6dmFyKC0tY2xyLWZvbnQtd2VpZ2h0LWxpZ2h0LCAyMDApfS50ZXh0LXJpZ2h0e3RleHQtYWxpZ246cmlnaHQhaW1wb3J0YW50fS50ZXh0LWNlbnRlcnt0ZXh0LWFsaWduOmNlbnRlciFpbXBvcnRhbnR9LnRleHQtbGVm''@;'; + put 'put ''dHt0ZXh0LWFsaWduOmxlZnQhaW1wb3J0YW50fS50ZXh0LWp1c3RpZnl7dGV4dC1hbGlnbjpqdXN0aWZ5IWltcG9ydGFudH1odG1sOm5vdChbY2RzLXRleHRdKXtjb2xvcjojNjY2O2NvbG9yOnZhcigtLWNsci1nbG9iYWwtZm9udC1jb2xvciwgIzY2NjY2Nik7Zm9udC1mYW1pbHk6TWV0cm9w''@;'; + put 'put ''b2xpcyxBdmVuaXIgTmV4dCxIZWx2ZXRpY2EgTmV1ZSxBcmlhbCxzYW5zLXNlcmlmO2ZvbnQtZmFtaWx5OnZhcigtLWNsci1mb250LCBNZXRyb3BvbGlzLCAiQXZlbmlyIE5leHQiLCAiSGVsdmV0aWNhIE5ldWUiLCBBcmlhbCwgc2Fucy1zZXJpZik7Zm9udC1zaXplOjEyNSV9QGZvbnQtZmFj''@;'; + put 'put ''ZXtmb250LWZhbWlseTpNZXRyb3BvbGlzO3NyYzp1cmwoZGF0YTphcHBsaWNhdGlvbi9mb250LXdvZmY7Y2hhcnNldD11dGYtODtiYXNlNjQsZDA5R1JnQUJBQUFBQUZRZ0FCTUFBQUFBbThBQUFRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJHUmxSTkFBQUJxQUFBQUJ3QUFBQWNmTkg1''@;'; + put 'put ''NWtkRVJVWUFBQUhFQUFBQVRRQUFBR0lIMVFmOFIxQlBVd0FBQWhRQUFBY2FBQUFPZGp5K2VqbEhVMVZDQUFBSk1BQUFBQ0FBQUFBZ1JIWk1kVTlUTHpJQUFBbFFBQUFBVFFBQUFHQm9QcXpyWTIxaGNBQUFDYUFBQUFKc0FBQURubmRERDdGamRuUWdBQUFNREFBQUFEQUFBQUE4RVk0QmpHWnda''@;'; + put 'put ''MjBBQUF3OEFBQUdPZ0FBRFJaMlpIMTJaMkZ6Y0FBQUVuZ0FBQUFJQUFBQUNBQUFBQkJuYkhsbUFBQVNnQUFBTm5NQUFHZ1V4RklnTjJobFlXUUFBRWowQUFBQU5nQUFBRFlMWVlnVWFHaGxZUUFBU1N3QUFBQWhBQUFBSkFkMkJESm9iWFI0QUFCSlVBQUFBb2dBQUFUdXVQSS9GR3h2WTJFQUFF''@;'; + put 'put ''dllBQUFDY2dBQUFucUphbkJ3YldGNGNBQUFUa3dBQUFBZ0FBQUFJQUtFQWVsdVlXMWxBQUJPYkFBQUFZSUFBQU5XTGRDRTlYQnZjM1FBQUUvd0FBQURvUUFBQmlHWEZqMktjSEpsY0FBQVU1UUFBQUNCQUFBQWpSbFFBaEIzWldKbUFBQlVHQUFBQUFZQUFBQUc5bmhZbUFBQUFBRUFBQUFBMUZH''@;'; + put 'put ''MWFnQUFBQURUd1oyR0FBQUFBTlMrcHZWNDJnMk1RUXFFUUJERUVrZjBNTFBvZjd5cEwvRG9mWGZWL3ovQUlnUkMwVFFDTFI2Y2RGUmtqVnNvN0h6VHYxRDRCN200MDQ4RE9sb3BObHY2NDVTZVhYTFQ1MXNYelNhK1czQUYzQUFBQUhqYWpWY0JiRmJWRmY3T3VmZSt2LzBMV0VvTENCMERVaGt4''@;'; + put 'put ''VFdXRVNVVkdpV01Gc1ZQRG1FRUhabHVjWTYxUTdCalppREZLSFpxbDZZekREcEUwcUF5TU5zQlFzU0t5cHF2T09VZGtZNlloWUZ3SHlEWW0wN25GQ1BMMnZmTis2RjlvdC9HRmo4TzU5OTE3enpuZjdibUZBTWhpTWhaQzV0WFdMVVlCUEQySVl6aitJMUM0aG04M3JVVHBpbTgyTmFCOFJjT0tC''@;'; + put 'put ''czRHL2Nsb09pTmh4Kyt5R0kwSm1HSWVod3JVdVk1ME5GcGxxMHJVaW9nZnlmRFYvR0tjK1FKS0wwQlFHN2VTQTJhakJaOGlsbkZRSG9QelpLd2NRUkdHOFdSL2o3dmo3WEZ2ZkJSRC9Jay9HSExrdDRONis3aDMvditQeHo4ZGNvWDNoaHdaK2p4L2pQY09NYkk5N292M0piakkzOHUvdjBrdzJC''@;'; + put 'put ''NXhLN09rbU1oTVQyRzJQa2NvcWdpSHF3aVA2VVRBRjRnSU00a01yaUVLTUlzb1pHNW5zMUpyQ01IOStCRm5Qa2dFWnJ5Ri9oY0l3WXVFNENWQ2NaRHcrQVBoY1pRSStETVI0VGdSNFQwaXdta2lndytJRE00UWhhemVwMXd0SnJKU0xNVW9sQklwSVpkS0tYa2NLNXZsMnRPb2tncCtjeVVoZHU3''@;'; + put 'put ''MHhHb25kblppYnljT21FY1VvSllveEFJaWkwVkVFUnJ4ZmE2UVJCSlpKSkZGRXZBVFBNcjViVVFoZm9aTm5QOEVmczc1MjRraTdDUXkyRVVVNEJkRUJydUpBanhIWlBBOFVZQTlSQ0U2aVVMc0o3TG9JckxvSnJMb0liSjRsUkQ4bWhETFRvUjNpQ0w4aVVqem9wWVh0Yng0eTB1d3ZBVExpN2U4''@;'; + put 'put ''ZU11TGx6RXlodm02WEM0bkp6a0tYTFdLR1pyQ0dsZXh0dE5aMDVuTXpDeG1wQkdyY0RlYThEMnNaaTN2eHpvMDR3Rm00VUZHdjVNUlBjZEt2c2dLSG1UbGpySml4MW1wMHp6SkdidFp4ZHkzTkxsZmVxL2R3OWVraVhFUHA3cjJVWGV0OGI4R1VhdU5ESFlITG95Y1NqRElsNmVIdkJ1bnppdWU5''@;'; + put 'put ''L3BvM0J3M1h6eVMzcnA0Yzd4NTBKRy8yRGVLY3RPRW1DWVVYeU1jYmlVOGJpTUNsaElSRmZFbzV5UnFFRk9EbWhvVUhVU0VIVVJrbFJhcnRGaWx4U290VmxmRk1jTGhCT0Z3a25BNFN3U2NJeUlaS1NOWjExRXlpbHdtWmVTa29tSVZGUmt2NDdtK29oS1hFVVVZU1F3enBZc3BYVTNwTHFmMCtV''@;'; + put 'put ''UyswcjNGRStYRmt6R2x1NXpTK3pYdUxTcHZVV1VzcXZOS1R6V2VxbnN2TWJTdWsyaTlhVlp6RVNiS2RSWm54dlRyVEwrYWl6bFJzZVlpVDdTc2VmSG5LOXBaRmpJeVRhN2g3c2xQcjFwR3VJajF1cFZ4TFdVa2JZeGtJeDVqTkUvZ1NUeUZyWXhvT3lQWndkdll5ZE4yOFpROVBOMHgxdUFrVDNh''@;'; + put 'put ''T0p4akYzY1p3bC9GY2NZTHBXVEhDT2txSnFhT0V1OVRRRXJOcjJJbU9SQlBJZmN4L3Q2eVhGbmxFTmtxN2JKVm5aSmZza1gzU0xhL0xBVGtraCtWZE9TR241RVA1V002cDE2d1c2Mmd0MThrNlZhdDBoczdTdVZxcmRicElsK2p0ZW9mVzZ5cGRvL2ZvT24xSVczV0RidEl0dWswN2RMZDI2bjd0''@;'; + put 'put ''MFRmMExYMWJqMmlmbnRUMzlTUDl4TUZGYnBncmNXUGRCRmZocm5UVDNOVnV0cnZPTFhBM3VzWHVOdmNOZDZlN3l6VzVIN2g3M1FQdXgrNWgxK1kydXlmZDAyNkhlOTd0ZFYzdU5mZW0rNzNyZGUrNFkrNnY3aC91Mys2c1YxL2dSL2hTUDg1UDlGTjhwWi91cS8wY1A4OHY5RGY3Vy94Uy95Mi8z''@;'; + put 'put ''Sy8wcS8xYWY1OWY3MXY4STM2amIvZGIvVE4rbDkvajkvbHUvN28vNEEvNXcvNWRmOEtmOGgvNmovMjU0RU0yRklmUm9UeE1EbE5EVlpnUlpvVzVvVGJVaFVWaFNiZzkzQkhxdzZxd0p0d1Qxb1dIUW12WUVEYUZMV0ZiNkFpN1EyZllIM3JDRytHdDhIWTRFdnJDeWZCKytDaDhFaUdLb21HOEhV''@;'; + put 'put ''MjZrOXhzUE4rNHhuaER3bWcwYmpQUDJuNS9qbTh3cmpTKzFuaGx3bHBtOXZYR2M0d3JsRDlUNVFyanE0eXJFMGE5Y2J1K1RHNHdmNlh4YlBQM0dwOHh6MFRqeDQwbkdVZkdDMXc5K1NuanBzRlpmNVVYWTQzNUwyRjgyWGlMY1dNL3k3STBkclB2TW43VmVNT2xuR2JBN0V2NWV1TUs3ZnBmck04''@;'; + put 'put ''T3lGWFhZSXk1eG84YjEvY3pzOWRsMmZ2dm5PYXphMUNlbE1kTmVXY2VZT2ZWdE5uOFY1Zy8zNTV2T1d3eGUxbGU1dE1vQnRnMm1xb2kzNTltdFRxMWJVNnFtYlE2YWRTcFBuTjJ6cC9NYVRPNzNhMDVyOTZjeGc2YTNaUFl1WnFtR1Z1YlUzSzR5SitlSWMzYkFiUFhXbzBPSmZOZHFzQWJiSzll''@;'; + put 'put ''bTJNM0l0WHRBSCtsMldkeU5kcDVRZFg1L3ZRR1hadW5tYlFpK2ZaV3M3K2UrbTIrM1FzdE03L3BJYWUwU1huMkhPUElQRVBaZnpQN2JvdXUxdXczemM1ZnVTYitKYmtxM245UnBmSjNyTTdkN3E3L2d3Zk9WSHpXM3FYZ3Uyc3FzNUs4VGoyN2RpVzdZUExDanZCNXZzUXltSUZxOXJDa2M0OWcz''@;'; + put 'put ''LzRpZTNyU3VVZmFHN1hFT3Zjby9sNjFrSDJvamlqRFRleHpvOW5wYnVIdlBrdUljdXZsbjJIWFc4YXUxY2kzMjBSN3ZjMWtSMi9uZWx2WStiNWl2ZStyN0g0dnMwTytnZ1A0RGw5MHAvRkRlMVZ1eEQ4bDRERjI0dkhvc0o3YXlmT0tYR2EvbTBXUWVMMnA4RDdjU1Y3UGJsZUVzZHlyZ2hGTnc5''@;'; + put 'put ''VTg5WFU4NVkxWXpORVhUTHUvTXo1c2JIZUdHdTNuZzhiTGpiY1o5eG1mTlM3Q2w3alBjbnhYTWxJZ2haS1ZJaGt1SXk0OTBYOEF0bEtYV0FBQUFBRUFBQUFLQUJ3QUhnQUJSRVpNVkFBSUFBUUFBQUFBLy84QUFBQUFBQUI0Mm1OZ1pySmduTURBeXNEQzFNVVV3Y0RBNEEyaEdlTVlSQmpOZ0h5''@;'; + put 'put ''Z0ZCeXdNeUNCVU85d1B3WUhCZ1hWUDh6Uy80MFpHSmlQTXFvcU1EQk1Cc2t4c1RLdEIxSUtERXdBeGxjS05nQUFBSGphdFpOWlVJNVJITVovLzdkOUVTb1U5ZmIyYWROR29oUkY5cVhJdnBTczJiS3YyUnJyRUVORlVzaWVKS01aRTFOVHRodnV1RFZqakw3UGxWdnVEQjNIVjB3enpMaHladDV6''@;'; + put 'put ''M25QT25PZWNlWjdmSDNDaDZ3dEJkSTlVNnBrNDU2NVNyTWNsak1PTmdaUndpenJ1MGtnVHpiVFFKaDRTSUlNa1RBWkxuQ1JKcXFSTHBreVZITW1UUWltU0VpUFZlR1c4ZDRreWo1dXQ1aFB6aStWdUJWckJWcWhsczZLc1lWYTZkZC9tSC9sTktYMkh4WTBlMm85cDQ1bjRTbjh4eFNheGtpZ3Br''@;'; + put 'put ''aVlaa2lYWmtpc0Zza0UyYSsyWHhsdXRmY2hzTWR2Tno1WmhCVmhCVm9oVGU2aVY5a3RiZlZRdjFIUDFWTFdyVnZWSU5hdUhxa2sxcWdaVnIrclVOVldyYWxTMXFsS1Zxa0tWcVRPcVZKM29mTk9aMVpuMC9aT2ozRkhneUhmRTJBZmEvZXcrZGkrN205M28rTnJ4dWVQd2g1QjN5VjFlL2FmbWJu''@;'; + put 'put ''ZzdrK0NQV3dTais4LzRoMGJYU1JkY2RYYnVlT0NKRjk3NDRFc3YvT2hOSC9yaVR3Q0I5S00vQXdnaVdHYzhTS2NlaWttWVRpUWNHNE9KSUpJb29vbGhDTEhFRVU4Q2lReGxHRWtNSjVrUmpDU0ZWRWFSUmpxakdVTUdtWXpWekdReG5nbE1aQktUbWNKVXBqR2RHV1NUdzB4bWtjdHM1akNYZWN4''@;'; + put 'put ''bkFRdFp4R0pOV2g3NUxLV0FaU3huaFg3L0RuYXltMklPY1p6VGxGTkdCZWM1UnlWVlZIT1JHaTV4aGN2VWNwWHIzTlFVL1dUME5nMmFwWHVhcHA5dEZhdTFIZEZzNEd5M04rdFpvL3RkblBqdFZ1RmZITHhBUFp0WjJXTmxMWnNrUm85YjJNNHg3RGdrWFBNWktWRzZBaUs0bzNjZW9HbVdCRjBQ''@;'; + put 'put ''OGQxbmlweGh4TEtOdld4bEgzczR3RUZkUy9zNXdsRzlkWmhTVG5HUzE3cWFlckZPdk1SYmZOZ29mcHAvengrUXphcm9lTnBqWU1BQ0hJSFFrc0dTYVQwREE5TnVKbFlHaHY4aHpOTC9qWmwyLy8vQ2RJQko4UCtYLzM0Z1BnRElQUTBpZU5xdFZtbDMwMFlVbGJ4bEl4dFphRkZMeDB5Y3B0SElw''@;'; + put 'put ''QlNDQVFOQml1MUN1amhiSzBGcHBUaEo5d1c2MFgxZjhLOTVjdHB6NkRkK1d1OGIyU2FCaEo3MjFCLzA3c3k3TTIrYmVXTXlsQ0JqM2E4RVFpemROWWFXbHlpM2VzMm5VeGJOQk9HMmFLNzdsQ3BFZi9VYXZVYWpJVGVzZko2TWdBeFBMcllNMC9CQzF5RlRrUWkzSFVvcHNTbm9YcDB5MDlkYU0y''@;'; + put 'put ''YS9WMmxVS0ZmeDg1UXVCQ3ZYL2J6TVcwMWZVTDJPcVlYQUVsUmlWQW9DRVNmc2FKTm1NTlVlQ1pwai9Sd3o3OVY5QVcrYWthRCt1aDlpUnJDdW45RThvL25RQ29NZ3NNaTBnMENTVWZlM2dzQ2h0QkxZSjFPSTRGbldxL3VVbFM3bHBJczRBakpEaHpKS3dpK3hHV2MzWE1FYTl0aEtQT0F2U0pV''@;'; + put 'put ''R3BXZnpVSHFpS1pvd0VNOWxDd2h5MlEvclZyUVMrRExJQjRJV1ZuM29MQTZ0YmQraHJLSWV6MjRacVNSVE9ReWxLNUZ4NlVhVTJ0Z21zd0VEbEoxMXFFY0pkblhBYTl6TkdCdUNkNkNGTUdCS3VLaGQ3Vld0bmdIRHE3aXorVzd1KzlUZVd2UW51NWcyWFBBUWR5Z3FUUmx4WFhTK0RJdHpTc0tD''@;'; + put 'put ''a3gwdlVSMFpMU1ltQmc1WVRsTllaVmozUTl1OTZKRFNBYlVHK3RNb3RpWHp3V3plb1VFVnAxSVYyb3dXSFJwU0lBcEJoN3lydkJ4QXVnRU44bWdGbzBHTUhCckdOaU02SlFJWmFNQXVEWG1oYUlhQ2hwQTBoMGJVMHBvZlp6WVhneWthM0pLM0hScFZTOHYrMG1veWFlVXhQNmJuRDZ2WUdQYlcv''@;'; + put 'put ''WGg0R0FXTVhCcTIrY3ppSkx2eElmNE00a1BtSkNxUkx0VDltSk9IYU4wbTZzdG1aL01TeXpyWVN2UzhCRmVCWndKRVVvUC9OY3p1TGRVQkJZd05ZMHdpV3g0WkYxdW1hZXBhalNrak5sS1ZOWitHcFNzcU5JREQxdy9Eb1N0Q21QOXpkTlEwaGd6WGJZYng0WnhOZDJ6ck9OSTBqdGpHYkljbVZH''@;'; + put 'put ''eXluRVNlV1I1UmNacmxZeXJPc0h4Y3hWbVdSMVdjWTJtcHVJZmxFeXJ1WmZta2l2dFlQcU5rSisrVUM1RmhLWXBrM3VBTDR0RHNMdVZrVjNrelVkcTdsTk5kNWExRWVVd1pOR2ovaC9pZVFuekg0SmRBZkN6emlJL2xjY1RIVWlJK2xsT0lqMlVCOGJHY1Jud3NuMFo4TEdjUUgwdWxSRmtmVTBm''@;'; + put 'put ''QjdHZ29QSGJCMDZYRTFWTjhWb3VLSEpzYzNNSVR1QUExY1VBVlpWU1MzQkVmeWJBNCtybHVhYzFKT2pFYlo4MkppbzlHeGdFK3V6c3pENnRQS25GYSsvc2NlR2JsWVNPNG5mc2E1M2xqOGcrRGY0c1haU2srYVU1d2NLZVFBSGk4djhPNEZWSEpvZE9xZUtUczBQdy9VWEdDRzZDZlFVMk15WUlv''@;'; + put 'put ''aWhyZmZPVHlTck5aa3pXMENoOVBCRG9yMnNHOGFVNk1JNlVsdEtoSkdnRXRnNjVaMERUcTgreXRabEVLVVc1aXY3TjdLYUtZN0VVWnpJQXBLT1Ntc2JEczc2UkVXbGc3cWVuMDBjRGxSdHFMbml3MVcxWnhoYjBINzJQSXpTeDVOMUpldUNrcDdVV2JVS2U4eUFJT3VaRTl1Q2FDVzJqdnNvcGlT''@;'; + put 'put ''bGlvSWo0SWJRWDc3V05FSmkwemd5NkJJbVJ4c3JJUDdZb2RPYUtDZGdMZmV0SXE3OXRDN2M5MThpQXdtNTF1NTBHV2thTHpYUlgxYW4xVjF0Z29WNi9jVFI4SDA4NndzZVlYUlJsUExudmZuaFRzVjZjRXVRSkdWM2EvN2tueDlqdlc3VXBKUHRzWGRubmlkVW9WOGwrQUIwUHVsUGNpR2tXUnMx''@;'; + put 'put ''aWxFYyt2VzNneVJUa294a1Z6SEJmMDBoN3RpbFhmbzEzWWQrMmpWbHhXVkxJZlpkQlZkTlp1d2pjK1h3anFRQ29LV3FRaVZuZzZaRDZiblpyd3NaUzRMRVhjczJUWFJmUWRQQ0VkNHI4NHhMWC82OXh5Rk55aXloSmRhTmNKeVFkdEh5dm9yU1c3azRjcVJtZnR2R3hub2gxSk4rZ2FncDVJTGpq''@;'; + put 'put ''K1h1QXVqeFhwRk83ejh3Zk1YOEYyNXZnWW5RYStxdWdNeEJMbnJZSUVpeXJlMGs2bVhsQjhoR2tKOEVYVlFyTUNlQW5BWlBDeWFwbDZwZzZnWjVhWlV3RllZUTZEVmVZd1dHTU9nM1cxZzY1M0dlZ1ZJRk9qVjlXT21jejVRTWxjd0R5VDBUWG1hWFNkZVJxOXhqeU5ickJORCtCMXRzbmdEYmJK''@;'; + put 'put ''SUdTYkRDTG1WQUUybU1PZ3dSd0dtOHhoc0tYOWNvRzJ0VitNM3RSK01YcEwrOFhvYmUwWG8zZTBYNHplMVg0eGVrLzd4ZWg5NVBoY3Q0QWY2QkZkQlB3d2daY0FQK0trNjlFQ1JqZnhqTFk1dHhMSW5JODF4Mnh6UHNIaTg5MWRQOVVqdmVLekJQS0t6eFBJOU52WXAwMzRJb0ZNK0RLQlRQZ0sz''@;'; + put 'put ''SEozdjYvMVNOTy9TU0RUdjAwZzA3L0R5amJoK3dReTRZY0VNdUZIY0M5MDkvdEpqelQ5NXdReS9aY0VNdjFYckd3VGZrc2dFMzVQSUJQdXFKMitUS3J6WjlXMXFYZUwwbFAxMjUxMzJQa2JaVE82TEFBQUFBRUFBZi8vQUE5NDJyVjlDWGhiVjVub09lZEt1cElsMmI1YUxjdWJyTlhXYW11enZN''@;'; + put 'put ''alhTN3d2Y2J6RlNSeG5jNXkwS1YzU2xpNGhwTFFORkFxVUFXWllocjR1MEtGTVM1SzJkS0h0RkNoUTJxSExERytBZWNNSDVRMHpMRy9ZQmpvd2JYMDkvem4zWGxtMjdLYndmUysxSlB2cXJQLzU5K1VVbGFIRnRTVCtGT2RHSEtwQWR1UkNYdFNFMGlpSHV0QVFjb21PM254bmV6YVRiQTc2NnF1''@;'; + put 'put ''ckhFS2xRVU5RV1NLczlRZ2UzcDYwZSszSnREZWRUUFBzazRkZjFhZjBHZjJrMzhDVHRQcTcwb1oxeUNiVCtGUFNzN2pyUDN0NjcrdnR2ZSsrM2thUHA3ZTM5MGl2NTliN2pqUjZqbmp1dSs4K3o1RWp0dzRNM0hkMG9PRkY3bWQ5SHI4SGZtNDYxamd3NERzSXZ3MTRPbnNiajl6UTVvenZ2UExL''@;'; + put 'put ''QjYrOGNtZDh4UlAzd0E5Q0JFMnYvUjZkSStmWTN2eGlJOElZTFNLRXlrY1JJZHlTQm5PY2t4dlRhRFFWbW5LL1VLbmxuV0Zya3ZNNkF1bFVKdG5xc050MDN2M0Q1b1RHN2JaWnE2dXQ1SnhrZWRGdHM3amRGcHNib2JVMU5JZ2Z4V1BrazVXTnFBeWhTZzdlSDBGMDNpQzhYUWZ6dWxFOXVtSDB2''@;'; + put 'put ''SGZuYmpGVW9TTkl5eEZNRUY0MllvT2hmTFM4MHN6eHZIN1JWRWIwZW1GVWd3bXBJR051TVVBZnNDK1JuajlhMms5cHVDRFdJVlJmVjFzRDA3aXJYVlZPV0xCVktQemphOE9ZVC9KZTNwdGxyMnlTdlpJOGUvSDBTL3liekkzbUcyTnRzYnZnZGEzNTJzdzd6ZGNwZjkxZ2Z2aXV6RjM0YTk5TlB3''@;'; + put 'put ''Yi8wdDlOUHc3LzB0OEZTTWJXSGlVUjhnZmtRU0VVUjUxaUx1YjMxZFZXdTV3MnM2bk1ZT2FJRGlPT2pDRENrWnNSUnZnV0NtYTBCSEJ4b3JHbXBxWjRVOXhoRnl4YTNoSDJsV1BBa1hRTUI3TU9weERENlZRZVp3RlpIRTRlbmdsMTJJNGN6blE1ZkdUU3FVQlFJSkhVa1IxaXo4bG9hT2Z4b3dk''@;'; + put 'put ''YTkrYkVLeFpEdnBubzVlK1E5b3M3T2thd2VXWjA2dWE1Tk5mZHkyY2pyVHNyY1dYMXJxSGtiRnJYMldXY2JmVkdlT2xOOSs1SlhKTzIvWjRmYnBXeUk2bVdEb2YwSnF4TmkrSnIvMFgrbFh3Sk1NVUtweFpISGVpRjBmTlZjSEpoSTlhV1lhelQ0aFdrUTNxRFRuOE1hVFJvaVdDS1NXWTRFbTdK''@;'; + put 'put ''eEJPT3ErREczS1BuZzlBbC9wWmRFRFJsL2ZnbEUrWjVKdzlubnR5aUJ5SFFsblpEVy9kYVdCQURpVVJEZzgyR1VLSWowWjVKTmNRYllxR0FyZDVXVjExbHRRaVZzSm55UURsdkQxdGs0Q1piQWFhMmN1ekZTZXkxVUtCNkczVjJteU9KTm4yZngrdmYvZlZBTURRWWlRN0NleFIvcUZOcTdyd20x''@;'; + put 'put ''eDZKdExXSDhkUkFLRGdZbGIrS3RkR0h1UWhlakU3RVczWkdvNU9KbG9rbzNyVTZoVDg0a000TURtVFRBOUx4NkVSTFlpSVduWXkzVEVZVEE1bjBJUDBLOXNlaHByWGZreFBrTVlCOUdQaFBYdXlJUi8xMU5XNlgwNERMT0ZMUGtJcGlQbDRDTW5hTWFvdXdLaEpwYUlpa0k2bUdjRU56dUZFSG1L''@;'; + put 'put ''VU42cnlOZEUvWjRvM0JOODVNMXFuam5ZanV6Q252MHBJTkJPSFBPcHdraWFWOUp6dVA1Tzd4MUVYR0U1SGg4TnhjNXNwSVV5YVJ2RnI2ZEZkdC9VUmZyamswZmpwL3RubW9tVCt3M0xLUXUya2dPdWlMaklUREk4MzVVWi80VHZGQTFmSGhhOGp4OWxoTlY2Z2hHMjd1V2owM2Q4dFkxLzZRNkFW''@;'; + put 'put ''aUFINkJQa0UraVV3b09ucmVBWWhpcEN5Sm5TOEdKS2hFOU05NStCTXZVdElaWDNqRTdpT3dIV3VCSTFWZzcyeDVsU0E0eS9rZy9vOUQzc29xcCtBOWxJSFcrYlU1SENOUHdkaTZoMDFhbkFnek5wWjFBdm5ZblB6bkw3bmtzSGR1NFp4MzE0OXZ1T0hIdS8yN3YzN1ZEeTRFWUNLZzV6bGNwL2JU''@;'; + put 'put ''UVQ4bkk3YXNETERZdVlVNTcySG9mTXVGSDF6MWRlakh1dE4rSGZnbTRIMWZRck5JRkx2OEdKUEpIZDJ4UnBkTnEwZDRGOVlpYm9URFdJT1JGcU1WSGRacXlSSkZhTzBZN0c0V3pRd1BaZEpOd2RvYU4wK3hFMWJhalhuZ0JuQnFRZmdqbStuR3dZRDhXN0xWNmFqSHdTSUlaTExBSnRoenV3MDZW''@;'; + put 'put ''V0NIMDhGK1o3M2hQeWRqM1Y4MkczVGVpb1p5cmNiTWE4cWMwWEFrWmkvVDhHYXR4dExzMHhuTXdLejB1c3BLTG1UVGFzMDhWeWFFZFJHbkkrd280M2l6VHVNSU9ZdzZ2ZG1BYnpMcmExcWFhOHhWUEdmU2E0eThXUkFzRmlOdjFPaE5YRmxqVFhOTGpkNXMxanRhNDZaeXJzSEltWFJhRTE4bUVH''@;'; + put 'put ''Z2ltSGlUVm1maXloc3MrbmlyUTIrbUI0djYwSEZTVGxMSWlBS0FFeG9PYTJZQmw0RXpZQTR0QTduVG85ZmdjY2JESzNWOGRSaDdxZlJNVXltYUpPWGZ6RC8zWFA2Yk9QNU4rZ3NkYjNMdE5Ib003VVRseUNrQzZhSkJGYVdBTUh3V2lqMkE4NDNySW8yZkRKcXRJTkdjTmZXaDQ5RUVGVzMrdWxx''@;'; + put 'put ''eGxZN1ZobjZMTzNBTXFMRkt0RE5rbkYxSFJxR1NvYUxIN21uRG5MU0tZMTFzUDhNZ1l6OEg4eHVwdGtDZkFKZkQySW5wUVJ0Um1ZK0RBeTZXcUVjVWFXb3FTRks4OXB1MVIvSEh5VTloWGtFc3A0T0M1TUJYeXhOU1ZvVW5CNlM3QjhoUDMzd1pNZm5hQWJ6aUdIa1MyRnM5aW9oTmdGaHN4ekpY''@;'; + put 'put ''d0NEWTJRSXFnWjRxNnl2cnFoeU1EK3BnSVpyTmZJNmtVekhzYmFSRUFnd0E0M2NQRHI1N2F1cjA0T0RwcWZ6QlRPWmdQbjhva3ptVU4rMjlaMlhsN3IxNzcxNVp1V2R2NTlqWnVkbjNqbzZlblpzN084WmdVQTN2YjRDODF5RzNXQVZIeVFHOFJtU3VqUUUveHdRckF4MGZ6Q1lGNzVPMzFENllF''@;'; + put 'put ''c21CMlphVHExT0k5VytCVGVsaFB5N1VMQWFOWmJBZHdBWkNSaGc0R2J1akNzc2lZakpHY1BxQ0dyNHFuUFZUL2tWWHp3Y0xISzRDdy9tMHdLbjBOdTFvdW1KbkxIcjljT2VoM05qTXQvQkpxYW50WC9LWHBwcDZBNWY3eGY3VVlxN3YxTkNEOGhtR0FKNWFtRCtNdXNWT2R6WE01UU9DaGhYQU1r''@;'; + put 'put ''Q1NRd3NDY29uak5FdUFvTEFZa0pkTGxLYWRqSnpEcU5ubjkvajlQTytDazZhY0k5bktXR3NZcDUydEdYbU5PajZZVWJtd0F2eFhUa1dpdnFQNXhGajQwTnlPZ2JGOXpjT1J6RUpUZVBIOStTUHRBMjJkVTUyWDlKcDYycHVUV1g5UFU3NjNFL2QzK3ZPK2RDcDBLakdYN3RvbGxNLzJaZmVtR0Q2''@;'; + put 'put ''RTRDMEY4QzlEWmhRVm0wMFlVSEJFcDRWOVlBVDY2bEVBSVJPbEZab3hvOUZvTmdJTkM1Wkt1bDYvSjRpVEF0Vll2V2tCNDl1a3p4dnd6UGlsbDRyU3p4OXN3eTlJdVk0SGY0WnZrTTdLNTlRR2NITENQQTFVNzNFQWV4TXFPYUpCR0U0SzNwR0dBWWtzeXBKN0k1QWFVSDJqWUEyVUFFaytQMHBW''@;'; + put 'put ''ZkthQWxqOStWNlM1ZWFVOVBoR0pUQ1FtUjFzTitJUFNRM3pmWE9keVovNUVyNms5R1k4bHcyUFJ5RkFvVzRXWHVsNXZTUi9JOTZ5ME0xaDB3aHI5Y0padTBPTjd4VzRnSW80RXFvaFdRMFowd0dJMFdrNnpnZ3BpbEljRnF0eWlwZ2FobXFhYWtLOFJPbGQ3L1FFOUtNUklXUkxsSUJUTG5IeUFr''@;'; + put 'put ''a3N0aGo4czZnYm9rU2J4ZTQ1MmRaM29QWDFtOE5UWU8yWjlvM081L1pucXkzcjlFNUhZUkx6L3NMbHkzeEIrTUhPd08zK3M2OGs3Vi83bXdLN1c0YW5iNTJ6cGJ1bE1mTHc1UHR3MDNyVjdXWVp6QjJ6RXdPaXBYcXdCR1lJWk5WRStoSm51RHRvdmFEY2NMQTk3MGg0N01JaW5wSGZqbDZUdkRK''@;'; + put 'put ''T3J1bHBXMzBQMWlSVEFvWWJCSVF6ajlZczlOaDBCYmp2Q0Z3RkI0UnA2QUFLR3MySmNJeEtoY0loMFJOcFRyVFhobW1ZWkdoRURaV09VZTJRMnFSUUtmQXF3a0ZtSlUvazdXRTRZWi9uSjVUMnp2WjNEM2NjNk9vOTFqN1gzenZaYzBkYzBFbytNUkVCN2lJK0VXbllsVXRPUnlLNTBZbGVMcVdV''@;'; + put 'put ''KzI3WGY3cGpMcHFaanNabFVidGJtMk4rWm5XL0J0M3R5Zmw5SFkyT0hMNUJySU5JRlh6NFE2dlppN08wT0JmSSt0Tlg1MTFYQzBSdjBZRDhRMkxvV0NGbExWb0FVT05ndnh6bEdpNlNGZXY2TkRYVEhBYStmbmI5RFBuNVEwU25DZG1INmh3SUJDNFhGT3ZQODNLYVQ3Mkw0c0lPZGZBdkRBdkxr''@;'; + put 'put ''eHBPWHNVRTZRMDlleGdGNUQweW00TmRCZnNDeVJzOUhRVk55VXFiT1ZpckkxcHRXdHQ3Y1ZGREJkOENrVm9xZkw0Z1drd2toazlQa3NGUXlRYVJUTkExVkVKRXRoSkpOK2NSMzFsaXBkTExXU0hPcW5BSjdqOGxhL0RyWWV4V3dEaDRKeUlTL2dBd1hNSDRjZitGOE1reHhONHNXc1VTbUFYZDFE''@;'; + put 'put ''K3NJNkZQV3ROOXV4dllzZms2NkFaL0ZYWmxYODA4L25XZjc3RU5mSmVYNFh3QmJlZFFvMWxNY3AyWWUyRTRjbVZWWVB1R29MbEJKT1Q3bEV2Uy9QdnozVXBxOS9pVi9aeDdtSEVPTHhLck95Y0djMlNoT2ErM2FNWHdXNW54T3luMGFabncxOHlxZDA3MzJlL3d0d0k4cTVFTlpNZVV3R1NtTHhK''@;'; + put 'put ''VE5jekR4NlNLWlF4bStGbXMwVHMyWXkrWHl1YnorS2w5UVJ4ZWl5czExcnM1TXVXSTUvMHo3M3FTdnB5azc3dy92Tzl1K21FcnViZTh4cStDOVdodnM4RFoyK3BMeDVwTXRNOG5JenB6eFBVV21OVjFuWk8xMmJnZTVGM1dqQ1ZqTCtUckFBYUhSUS9SY2c0Vm85SjBkWUdkeUkrNzFad2IxMllM''@;'; + put 'put ''Y09HUTBFQTNJQVIzbHlyb3kwQzM1dzBoaGRzQkU5SHB1Q1RZbzZLbk5WZy90bzJCY2E3QmhIcjNkVGszVU5nU1k2UTJjZnVXaW5iV0FxUzFVSm5CSXU3SjlMNTdYelNPZGpsOWkzU2NYd01hckVrV0V4QWx4ZkdnQWdKRVBCSm9DdmtEQXhMdEx0Sm5HUUxDSU9sc2R6cXlUWnlaYzYwYm1sR3hs''@;'; + put 'put ''ZG9HWHF0SE16cU9QSFVuY2YvN1lWVis1NHNpRFI1TlRzV2ludm02MkpUN2MzSE84dlhYUVltNHZpNFRxNjlvRGk1L1p1L3pGbGYxMzdjc2Z6bHJhMzlFZjNHTWc3ZW40emtSUDZ1cWpEeDY1L0N0WEh2enMwc1JsR2JCREU1R0paUC9KdnBpM1Y5djZUKzZHUUhpaGQvWmo4eXZubHZkK1pySEc0''@;'; + put 'put ''L1kzdkxZOGFpdEw1ek1McWJZQmR1WU44UFoxNFBzOFNQS3dHREpnQU13SVlDQ2dwQWFrT0JXcllGUlFqVXF2MTVmcHkyUVZ1UXFrT005TTJxQVJrNngwN2VBQWp0T2Z3L2ZmZjg4OTVOenExS3Y0akhRR2dMNGZ4ajhHNDFlQ3B0V0l1c1IyNFB3d2d3Nm9EdVNqZGhuT1ZuRVE4VmpXeE9sYzdt''@;'; + put 'put ''cUw0S212Ym5RM1Zqa0VsOFVWYWRBelJYaWpBUEJncXVxQXptTzNLcjhJKzNGcmRpNlJqTGYzcFJZN3BLL2hVTWZvZU5kUGZ0TTNOOWYzRzNJdU10R1NIbmRXTDdabDVoTDQxcjUwcXUvWDBxUGpIUjFqMG04cEg2SHk2d05BcDdVb0pvYXJYY1l5aWlRaktydDJiSEJod1lOYVZCUHdCNmdMUzdO''@;'; + put 'put ''Ky9uenBtZVBzdlFjTzNMczRjS1lsRXJva04zN0x4TVF0NDdsTFFwR1dNd01tT0xtbGV3OW1XeU5OaWFuM1RrNitieXJSSEcxcGczT2hjSHVFNlZkMlpyVVV3TVFNY2dWTUpxUE5ZclNiN0lFRzZ0dXhxbGdaeGxrRi9TaEVmbjdKZll1TDkxM3k4NS9QM3pZK2Z0djgvZVRjN3I4K2ZQZ3p1enVH''@;'; + put 'put ''MzdOcjEwM0RxODh4K1Q4Sjg4VmdQaU9LaXhHVksxSmRTck1Jb3F1OFdCdG1Wb1pSOW5pQmFtV2wvRkdRWDNmZzY2VDM0VHNsRC80UnVlcTF2Q1Ixa1hOZGhmSFRNTDRCTllrQmRYeks2ZGlvcW9vQlh4aVFnWTdNZUI0YjJjdkdQU1hkMG9QL25RMzZWWFZNZWw1M3dubDVVRnBzQmEwTGNmV0Vh''@;'; + put 'put ''TFJNaWRkcUVFTXVaZ003cUNiS1dDeG9HNkFSQnJ5eW1lY1JOaEx2cHNOTGUvRUhzTFhsanVGRmRvRERkOEFCWHQ4bEgyRDZSTk4zOEdIcHYrTTUrUWpiRWxIMUNQMmU4Nml3NTZzWVRJT2lUMUZYbDBGSHB2dWxmcWtLdEJtV21PNFdYa2w0SjFlSjBxSW80bnNwT2VGdXVtM3BKZHdxajRzK3pI''@;'; + put 'put ''eXNWdXJBV0xkNVpITVJESjVKVWFTOXFKMEVzdWNaYUN0UUxHTG1CY05vcGl5VEpRNlF5Y25BTHFCS20xOEQzWXMwWlZnR0piTUhUelpFblh0Ynd2MEJFYXd6VTNjeUhzMUZkcmJpZjVSaWZaZDB3aHo3WUtncjJENGJ4RnFEWGt1WWRNUE04OGJKbmxPcnhTTEwwNlNBa3dhZ0NSQmQrMFI4NmF6''@;'; + put 'put ''MEtrNU5TNys3R3RZcm5RU2Qrem5wL1hqazFFc01mdjB3TG9GeHRWUW5aWXVtb3pFNmtFR25SVnBCb0l2MkE1NGtCVUtrWHJFTFVHNzFRNncvcGFGZnJLK0wzMkpkTmtGZGx3R01FcTlnZ0JQWUwySWQxb21pOUxyME9sMldEZi9INmhRSnNzOS9Wc2Y5UzRiTGRhS2JKNlJrVkV0aFZBekw4c3Bq''@;'; + put 'put ''UGc0akR0RmplWUlNd25pRHEwOVEva3R4K0hmL1AreHFtZW5zdi92QWdidjNqOTg4TVhIenVJeTRDc3M1ZU8vUzBtY1BkazY5YjNMeXZWTXkzako1UUhIMklPek5CSHdITEdOWUJaQXFoNm1iWk4yUkQxc3NOOXNzWm51NVhRZzA2S2dUMzFQZ1BYYXZ5cGFGU1Z3OWNHVlB6NVVELzBmRUZmTW5U''@;'; + put 'put ''c3kvVE02MUhjNkRISk53eDh6ZzRLejBmREVNYkdCVjVzUU05YXRyaVE3TVBPYUI1RENIaDlmTnAyTGZ0dDF1RDltRHNVQ1FNbUdRNUU1K2d6U0dGWkZzTU92Y0pJcko3eUpOWTAwNzQxZDJMYW93V3B1NHB1bTZCbDhCU0xqcTJrUnZZa2NnWEFDVzlQMzhjdUpZOEZDcUdGeEY4Q3FIOVlEOEpO''@;'; + put 'put ''UUJwNXFteTZDS0tPeE5JWGVmenlNSVZzcDdZTFZXYnhCc1lJRkJUcHRVWUVZT1hqYi82TWpEejRrTWRGTHNaUVkyZk12VjVSTDhZK0Q3TklXYzdFZDhqVVRJVXloSTVaWERUdTFpUXJWS0ZWVFV5VnNrcjRJbzRJdjRLS2dvalNzcVNpQ29RbXVkK3ptY0NrNzk4djNwMEpGYjB4Tk5lNDllZlZu''@;'; + put 'put ''SFNzOHRKMExoNDluWVVOT2VvMWRlbVRzeFlzeWxXbzk0TzcyWnJpcjM5SGgyVC9KUWEzUGMyK1ZyYVhPNWQrL01MaVJsUGhnRkdBMHpIVVAyMVJUTVN0bTVvcWphMkF0MnBSZW94ZjByVXZNckVjektMb1dPNXdBL3prSi9PL0tJZFlwREgrUGlyZG1SemVhenFhS1k4cTJOTEF6WG5oa1Vzd3p6''@;'; + put 'put ''eE1FelU2YVJXMmJ3SjZXVnZ1TWRIY2Y3Nkc4enQ0eklhMVgxSVIyZFM4dnNZT0NhQ3NPVXVRNm8vRExYb1h3TStBYjV1dlFQQS9DRFRkaEV1UzY4N2lJSFlDdy9tRWthUmtzd1ZobmwrOEFvYUZpSmlYRzJlZUFVbGtvdGxhSkpONlkvbk5lSXZmNmhiend6K0pXdkQvMjg1eHZmN0lIaG5pTDk3''@;'; + put 'put ''RFZGZHE5K1hsNG55RkJ5TStOdHdCc05PaGdhanA2eW4vSlJMT09heFdJUktGeGhsVENrZ1kyT1QySGQ1STkrTklsNTZiOG5mL1RxSko2WDdzYys2UWQ0SHUrR2Q1ODh0Z1hHUGdOajYxR3RXSzNqZ0FnTERFN3hCRmdFNmdsUXhvUWpDMG0vMlBuVG4wOUkvNjhQVitHL2tqNFBveDJYZmtiSGFv''@;'; + put 'put ''ZXhSRlh1VTNpdXU5a0t2b1dDbTgwaXNCVm5aUmNEQ1A5Mi9JQzBGNzhoVGVNTHE2OG5TWGRYY3ZXcnN1eWZXdnNnYmlNL2ZKdFdYQklRQzE1VFB6MTM3cWZraDYyclZ1cDdYWHRqN1ZGODF6WStVQTUwVyswQVhwSmRvQmkxd0h4VmhmbGsvOXd5b21vWjlkZlMrZEQ2ZkU1ZyttbDR0Y0IwUCsw''@;'; + put 'put ''aHYyeDk4eHdkUG9NL2d4K1VjZXVDN2tpLzZBRHV6cnlXTURQMTRGNnRlRmd1NkZDL05RbnNnZmQrTDNOWCswMDM1MEFLL2VyVlYrbWFwYlYza2wxcjUyRzZCamJHTmo1ak9nUVBBQ1JrWnZXQm5UbjVYTHVKaU40a0wwTmZKK3RyZ3A1RDhNM1ZGaERIOHF4WnA3ZTc5OFlzK1VyRmgyWCsxZ3I2''@;'; + put 'put ''d3krSWdLb0I0M2FLNDFXWTB6aEJJQWlneGRmVmFqbWRWa1BOV0syT2FHVnZKZFhpWFl4V1J2VllwMU9WTGplWW1PNkEyKytwaDVGY1ByL1hhZ0E0SVljZEFGWHM2bUsyRWJWd0xhQitxZUV3ZlBwRTNuMGl1K3VTekdMN3hOTEF6b0ZwMS80RjF5WGxzNU05dXljNmlIRE5RZWtidXlLdGUwZGFK''@;'; + put 'put ''eUwxOXI1OXNXU3I1TTYzVFZmM3RDYTc1SmcweVlOOHNZQUYwaTEyVnBRUnJZYnh5Y3JSZ2x2R3hYU29EYzQ1cXhVaGE2UFY0M1pCVDJEYm01eHpRWXBUUXJGUFRoVzlIenVSejUvbzdUNWNuOC9YSCs0T3pTUVNNOG4wZEN3Mm5TYkM0STFqWTZjR085UEw1RW5wMzlLZFVrM2JvYzdPZzIzVTdY''@;'; + put 'put ''MHdDMmVVQUhqL0J1Qzl0UTNpMnQ0R2NieWxEZkxiR3dZSGJ4aEtMdnJEN3FGZ2RsODZ2UzhiR25hSC9mdFRwcUYzall5Y0dncjVtbXNiY2djN09nN2xQSFhOL2laNjlobUFtMmNkYmdMSDRFYWh4UURIVkd2bHJIbm16MU1VN0dLNFdRSmVnY0lOS3dlOXZrcUJiSmJMSGdxdVhoVjROekdJSlJu''@;'; + put 'put ''MHlKT3JPNWJUbllPbnhzWnVCT0JoOStwVldRcXhUTnZCenM1RDFGNEN1QkVmd00ySjZxaVZDVHlHSTB3UUUwNURsZ3ZMYzQzcWl2U0hxaXFFcXVxcWF0M1Y4SmNEREFPNlVwOE1zV0l0d2xOSGtrVEhlMkN4K01nQmQ3RGgrdmIrNndaM1hMTmo3QjBkMHFnMk01dWF1TFFNWDZzN01CbjExVFo3''@;'; + put 'put ''bzBPbnhrWnZIQnkrZFNFOTM0TC9kbm5uMUJGR2Z5QVA4QlI1QmFUVkhyR3NBdXUwbFJqcHlJanNES2xCT3AxMkNUU0dLbVp3bzBYUWZtVEhHOHRRcUFabFZ3ZDB0bEw2NVlKWTV2V3kyQlhQdTJWZTU2WDhoem1HbVBOWVozL3MxbHZ6TXpQOXFWU2t3UkdvOWhGdFRrcmhiK2NHMjBjOE1VZXpS''@;'; + put 'put ''NmIxK05vTXFRRVkwbGo4a0xpanJwTG90SW9mRTJnWkdKNk9yRkQ2aG9sQnNhRnVHVmZCbVdsRll3MGdPK1Z3T0l4UUgvRDdmWlRHc2FDUUM3TXFNaHU4bVlBRjZSSXNxT20rY3FqelNsOU53MkxMd3JHNkZiSDMwcTZ1UzN0N2p0YmRPcHRJekthVDAvSDRkSkpvcGRiZWxmWkFmV3V0Wisvay9u''@;'; + put 'put ''UzdlTVhBaml2RVhQcVF0Q2N4bHdYN3ZtVXVEZEJuY0IrSHR6OEFIdHRwcE1JaSs3WVpEb095eHJ4dHJpSnpERlFKd2VhMVVmdVQwanFBVW5IWENBcTU0OHNXV3ZJVCtlaElPSiszTDdZUm9YVlBUbm9FOS9kTUIzcUQwbU5BMTYrRk13eWUzZkQrY2ZJVmtORVYxQUlzdUZPcjZNRUpvNm8xWFZG''@;'; + put 'put ''dU5qRjNxWGFUdTVRSEViTGI1YkpZNEFXOGhGemlzZ2pWMVlMRnRiejZCb3kvOXRUYUJQb0lHOTlOY2I0QytISTUxc0JwYVl0bTRqaUdKeHJnY2hxTld6UEdYTFJ1VTdYVFlSWFlySHlKazFZNUtxWTg2Ynd6eWdyZUVhMG9NL3NGdHpmZm4xcGZ5cHMvTWZCcExkOVVUektyTDdRTk0zZ0RTd0Rx''@;'; + put 'put ''ZXhKRzk0b05CZzNRRzZleVc3b2FWVDhSckV6YVl5cm9HQzhGMkZiL1lPTEx5L2s4YnByQ1ZkTFBmblgwZlFET1doeVY1UmM5bnZmRHVLcmRXMWxpOTQ0QmxJQlZ5RzI1SU9DeUY2WEVsb1pxMmU3VmFnVkdYTG9sTUFaMU90ZW9oc2I5NUhQM29rYXZZUFZhdlRZRFVGSFIwZXMyL0pLMHkzZ0w3''@;'; + put 'put ''K1MrNlZoK3FFMmN5Zy9TdDd4MUt0MCtaNi9jMzFtRUVoUDU5VStpSFd1S2Q2WkFKQlZ3VXRpRWs4S2ZnWlAydDRHVDJsbUdrZ3FmSElSNU45bWJyb3ZhbTQ2M3RqZGZPelU4ZkdwdzhNYmg0UnNITTR2WjdHSW1TOSt6cHBGM0RRMmRvaElHNUV5dS9YQXVkNmk5L1ZDdS9WQzd2SjVwNERsNVdF''@;'; + put 'put ''K0piQmFLWmZPNldLWUFzdUtMeW1ZVk1IK1diSlorVFM0c2w4aG1LZzluUUI0S1c4aERvVWdlcm92Q1Vaa3ZiaWNQaFl0eHdyZVFoOXJWU1N5c0M4UmxLYlJCSG1JMERmaTFBR3MxMFN3OE9UcXI0dGU2SmdIQ1E3REpPcmNsazdRWE1PcHZUZ3kwNzAwQ0diN1NrNHRQcDZVZkVlMGwxSTREM2VS''@;'; + put 'put ''cEdET3dwYjNwMm14dkJwRGZGeTYyTnpQRjVxWkRrVXpVMmlUczJMNTlWZFN6YnlFOTJEZXdmekkrMVJvLzBGeS9jNlNscjJ0bmRqRGNNcHN5TmZsaXZTMytZTlR1N3NzMDkvcnIzWW1XcUsreHFWcnc1Y0xoL29ETUkveXd4aW55VVpEbmNUSGl4RHEyYjhMZFRGa2lXYVRPVTRDQlRxZHFBRXh1''@;'; + put 'put ''V2h1cDRQVExlcWlnNUgwQVI2SnUvRXdXVDlsYXExUDlNelA1OTd6SFYyMnBOOW9yaFpGMlBKUDcwSWR5MGdPZVpsTVo0MDB3NzM4UnJVelBITTB1R2RFQ2Q2R3pVZjBJVWVKQ2FwS0dIZG05TmkvemNSYnBSWlRkeWxhNWdQK0xrbkdiU3RSdzNHOEFCUU5SNHpIcEtVYlVlRmplTCtqVnhFYTBh''@;'; + put 'put ''aDZFYXFtcHVvRmdZUmFGVlRZdDNUc2VmMnpIcTFrUW5pUDRVU3BETUxBOXhGbWhmNm1OS3J5MWplcnR2ZTB2TWg5NWYrK0QrUTkrS0E4alR1Q0g2R3YxRFh5L05GK3dwZkVmWVd5V2QxUEdhN0NHc2pscTZjRFlIQ2x5Z0lLdFN2SEVBeGFQTlpoMFpwTzhGWis3OTk3aGIzMWwrTk9mSG43bXVl''@;'; + put 'put ''OS9IK3RYWDN4eFZmb2pIYmR1Yll5NFlGeUJ3dHFvSjdCa2pNRUFWb1l1b0tHYlV6eWJGcHVYb2FHTWhkMllZN3NveC94aGYyV3R0N2FwdlA1Zis1LzVVdCt2cXNheWp3alpDcWVyajVpbEx2enM2cE9kV1N6dkJkZ25mZ25tM01hT0ZkN2FqczNnUHVsWmZJZjBGQjZRanJYZ1QzYTBTQ3NkYk56''@;'; + put 'put ''dzJoNjhsendCSEFWZzVHSnlvQkxqb1VhV1ZRUU41aFdDeFdoU2NGQXhwNG5oTGd6c1AwMTFLWnE5NlN3bmRxY2NGT0ZwR0p6SHBsbC9JdHNXOTgrT2FEdnlMdXp6Qjd6WWxlL1EzaG5xVDM4d0ZXMkpwVzdQOUFmMWNYMU5vdm1PZU5aa3ppUStIRTdVNk9Nd3kyVnJqNks3dDdHSnFZUzlMSlZT''@;'; + put 'put ''a29Lby8ya1Azcy9XSGhMOWVtYkxDbUJSTm1JOHVKNVd0MFJCTlVtelpRbHZDenRCYkFUbGdINld4dXF6ZGFRV0E5YmJHM1h3Q1NjU1l5c09CSHhzeFNPei9uaGJOZ0U3ZVNjc052emhlTlpzeXNidmFLYUwxUWY3TTdlbllpM1IxQWZUL1NIOTJocnF3YzM0TlA2Q3dHUHptaVQ5RWhrdUlQeTQ5''@;'; + put 'put ''RXNXSmFheVp0ZmFIUG9pRVZSOWpLMk9DanpYcUpwRFlpVWwraGpUaWVSa0x0QU9raDlWNHFtK1lYT0NDR3I4ZEhVSC9wVXFYeDhGKzIwYzFRQmxBWmRzcUs5eFZ6bHRWck8yVEZhQzFCUmRXWGxtUEVpb2x0R0Zoc3U5NlJoUmMzTHBXZEtrWEhyR1ByQ1hnRHZqbDJaall2NUlMbmNrTDhhbUc4''@;'; + put 'put ''TlYrVVp2ZDFWWXVtbStyMisrSWNSMTl4ckhydXJ0dldyVUtIWnhRVTl6ZFQwbnpXc2FxcHV2UGluZ3U0V1RjdTVVRmhZYVlYR3VQbEdFbzZWSkdvaW51WjQ4SHRaaUFreVRKOHpseTVSOG1xM0I4MFZ1OTFwVUs5ajhQdERmcUtya3QzdlNXWll0dDlIOHJNVTB4NGRFSkdOSExnY3lkTWRKVjd4''@;'; + put 'put ''eUlRZWMrc1VYdTdycTYxN00zZDUvb2xOTVJXTnQwYW5rN2JrWE4vaWVITlFUYk1QSWdNSDJRRHpMTmppcXd3VFVGQTNobHN0WVdyYWNYK1N3V3kxcUNuYWxrU1poczNSNHU1ckVCeTlHOFBpMmgxNTU1WlUrZUQzMFIrcXR3djI1UGJucnJvTTNmQ2wxV2JIejZ5ZDc4Qng1Z09WQnRESXZTWkFt''@;'; + put 'put ''Q2dJeU04ZmxrcGFqd01LVFcyUTZVQWRLc1NMZFd2VDd2cW9xb2RKVkpaeFRQc2tlK3VtcXBML0xuNEMvWVpUR1g4Wi9WOW1JdzFwVXllRXdlbEx4Mjh6aWE4alp0K1B6b2ZrSzNUZ2p2VURPdHJ4ZG40K1Q5ejdSZHpaTFhxNDRJL082NE5wTGdNUG40TFJCZjBkVWZDSnltb3JPOTFBeHh0eDJ6''@;'; + put 'put ''RzBiWUZJQkt6cE1CMVZwcVAvVzJMK1NhenZjOWR2MGpXa2NidG1keSsxdVdhMG5YMXpkSmVkaS9nUjlDbmNBME9wRWR4R1hJSlI5VEJZbE1HYUtvTGRZWGMxTWtKKzRyUFRENmxMOFdXc2llbzFtUWFKcjJkNHFuVGJBWmFzQnhKZWU4bWV3ckUxZ1dUZUFPZzN5V0hNRnpiWUFycjJ5emxnUDBH''@;'; + put 'put ''RjJ1a1VQYXdLWWRYcTdOZ3NpelNWMUlaZlY1L05Sd1UxQng2TFJ6TFpWdEJ2cXV3TGhsVW0rRkd3TFZjVXFMYlUrUjUzZGFpdXY5Q1NxTlBxb3Y4WVhxekFIS1JKWWpjSkVEck9haGhTYys3UHMzQ004UGZjSWVsckp4eGpCLzh6NGxRKzFpOW5HS3FkSlErVHdBa0YwclF3aFpRWUcwdWNBVWtT''@;'; + put 'put ''ZXordDIyYTBGdkVURkxFeEpqcUp1SVoycWZRS3p3U0dGcjNtMnlDRlo1M1BTbVMyeVNOZ2VtTitjdTc2eUVkWks4M1Q2MEVmUkY1RCtBc0huNVRTZExkb2N4ODV0MnB4VTIyQWVmWEdiTml1Rk5tWjB4elp0NWdwekhVV2ZrOXVRelcyK1VSakhpTDY5c1kyY0g4RTl4R2pCZ2diRmZvSHlJaWIx''@;'; + put 'put ''OVFnREY5TERPZWcxeXdaZ2tMcEYwQ3NWZjdaVzFweVlHV1dwdEVEdkNvVkJHWUZqWWpWaW5xWkpGS0FoZ0NWaFV5UG4wbXY3Ui9EdFJDZDVmcWFFMEdsQ1JaZjBEdndSNlhLa3hMMUZscWVRUWErTDdrdzZHTkR3T2pkZ2FqVU5tYmtxQUkvTE1lRzBDdnBIYUN5S3cxZkFHOUs4US9VeU9VWVI4''@;'; + put 'put ''SFRGcEFMcGR3RFc3U1kweWNaR00zTm9INFExcDk5dUoxcHZFOXZRaVR0MXNWNWllSE1IbWcxRmptelJENDNSdEJ4andOOE0xR2NGQTZvR3BHVUZWdm5EWmdxVVplaFdybEN5ZUcxUHVVWmZ1NWs4cStZL1ByOVZqa1k4eTNueFJxcHQweC81eko2U3BBMktUeXlIZ3VGM1NLR0I5ek44d2tWNHVi''@;'; + put 'put ''bk5jZlR3Tm0xT3FtMkFCbTdjcHMxY1laeWo2Q3E1elRwK3IxRXQ3Y05zcm9pOG5yVTd0aG9IVnhhMU9ZNXNtOXVzL1FMR2VZMnRKeUt2WisxdlM5cjhPN1Q1STF1UFBNN1J0WHMycmdkb3FSbmVYbUN4MGxxYXpidFIwMWpVWXhvb05SU3BHaFVWOEZGYlVjTktyZXpRelF3eXAyemQwR2ZHVTFK''@;'; + put 'put ''UWpYeWdxeVFQNWl0K1RrNTRHUmxSVTE2K2cvK3hrUGFDdS9PNGRmVjJPZm5sRDNsV2lnUndZREY5eGxOYUZKN3lpUkpZc1RnMWcxV3JjcjZQbGZDZHpXMk80OXcyYlU2cWJlQjhYOW1telVxaGpSazl0RTJidWNKY1I5RnptL2dYUnJ2UVgrS3ZFUjBJQTkzRGVwb2JDVXBsRUVna21IVm1uVGh6''@;'; + put 'put ''ZStSMitlZURZVHloL25iNzdXR2s1dlAranVYSSsxQ2MxZ2RGd3JVMUxvZkpvR2MrR3BhMm83ZzlISEw0UkZjVVB2SDcvWEYvTEdnTldsa0d0cHJWR2dBYkwxdVVMNWZra2NPSkZUSkZja2dhVSsvSE02a0RkKzl2dnpTV0hwNkxaNEEyMjA5RTA4T3pxLzhXOHVOVC92a1kwQ2crY2ZORXlDZmRB''@;'; + put 'put ''bitSbW5mdldQcnN3WUMzNjFETG1SMUFuZlEzNlRzcklmeHdUVDBRcWZUOXFmZE5abzgyU2VNMTlReDJMS2JNenFsTk9jc25TczU3YzV2ajZQOXUwK2FrMmdiTzhndmJ0SmtyakhNVTNiMlpWbVc5bDgzVnFjejE5TVp4TnVVYXhCajNoSFBRTHV1d0V1VW9GSzJCNUtsdzJDcWNsVTRoNEtuazVR''@;'; + put 'put ''aG9zaWhEdzEvSTBPajU1NUlNalZNc1JhUHRwbWRtQmdkbnBCZGttVFBEY25HZUJScHVFV05HVU1LWkdnSUNoMXRSRXk2Wld4c3Y2dVIwUWF2UDQvZEV2Q3drVVpLN0hjYnA5WUlGbFhGVC8rcE1lbDh1dHkvVkdtbnJTZTNKN2hrSTd3ak45ZTNvNkJpZmJHK2ZGSWs1T1oxSVRDZFRNMVh1L2Ru''@;'; + put 'put ''MGZFdUhyenZZTWRveGttNGJIYyt0U2dCSE9WNzVNc0N4SDJRdlFYMlh5L1M5OFRrSDhQMUUwZlBuMWZhWVAxRGMvdW5DYzNOdjhmTUhDdU1mblM5Nnpya0w3WTFVT3dNYWd1ZmNYYUREUlVITDYwSEh4T1VhZ0ozSERVcUNIZXRKRHV2S0RLQjQ4am90RGFPVzZValpDdElqSGEvWExac05STTBH''@;'; + put 'put ''ZG8yV0cwMGNGWWJVdHdPMGxVN0hZZ2lsZTlKaVozc3NGVXUySkdDQ2lOWG45Zmw5L2dvQXVSckVrdE5UUzZLcnNnTjdVMmdMMFZ4ek5lWktYcFhqWEgzWGV1dXVHZHA3YVhIb2RmQ0F3M3Q1VDBuc1M3cGxJa3BEc3BQOWNoUnNvS05qWUdGc1BTYmJsYzNraTJOaTBreDROQnFvN21sTmRjbzRs''@;'; + put 'put ''bGdUV2V3emd5Nkk3a1RjMDZEUmF1eFlwMDJCV3E4cnFQV3FYdVBuNFN1Q2RWZWc0aFQ3UWxDS25xTWJxYnBKZ0RYVzZrQnBmc3ZXb3JlMEliVUUwSkZDZXcydEFnWEpCTXZNeUFxSm5xOE9hLzVFUllRVzBXV1MrSENKSXRKemFkZFdrZHJHdVVSNWlRR1IwNDllczZNa2VOc1kwalJpaXBOeVRK''@;'; + put 'put ''VGkvSkJNQ3pmSXVMcnhPYVdGZTR1ZVA2KzJ4L3lseGUwZktJeHo5QkI3dmtaWncyMXNuSmZrOFQ4Z3R4OEZnQm1MbmgrdmtOdi9HM3o4aG8zL2tqeitmZkx6SDhQSDc5ajRjdnVqbjFtdnEyZ2xmdy9hUWhUdEVhMlZ6S3RhQytvQWFBTTJxNlVNRDhsNTV3N1ZCUzFzeUE1eml6YWFwc0Zoc2xM''@;'; + put 'put ''OEdDeTV1cnE2YUYwazRBdjRhZDZzS3BrS2lWQUJLaURwU2RKczdzMWVlZnhQaStLVnc4Tlg5WFNkNkQvV0Z6NTh5bm13UHRzVkRCOXlqbFRNeG1PemJablplR0l1UXl4Zk9MRHo5RUR2dGFQREozdG1adWF6cVhDMXI3ckdHMGw1Vmw5STdtdHYyNU5LN3NtMTcwMEJ2T1JZRU9VMVV6S3ZHVm1I''@;'; + put 'put ''K3lDRDR5NTJUbjNvdlZzK1A0N09GejEvWG5rTzhMMnVlSnluQzgvTmU0cWZQNkErUjBjdmwzbFdIenBOeWtrZDg1TzUwU0c1d0xxR1ZpdFExd3ZTOEZpcjBSN1dxVUZHRnkya2JVUklwNWFFcU8yMFdzMDhrSTEyaVhXWVhCQWR6Q0J5VjFhRGNGS2RiSHBxb1JZSFBjRXVLaTVxd0E3Rk12MHBM''@;'; + put 'put ''Yi80amxyTzhEWFZKSjNOWDFpdll1QUs4UzBuV0c3TnJBWUpMUHRRc05ybE5PcTBHajNHV2s0SmhLd25NR3pXWER3ZVQ3T255VzhKV2pab0xzV0tDOU5ibkZpT3dta1VyUVc0WmtOdytNYkI2ZjZHNFc1dmFQalU0SzdCaG1GUk90bUNUYWw4ZGpHTDhXTFc1WlJlUytieHgvZW5odDQxMHVJZkRo''@;'; + put 'put ''eElEWjBhYVEyTVNtL21jWHVnL1ZEdXUrMkhjNEdCR3VrNVA1eVJIRmVnWjcxYnBqR0ZKamMrcHpqd3NhTG56NnZ0TWIrdnVQMERoWEdPVHN2UFpWODZIV2VmTXM3SGkrSnlGOHVaK2JQaWNzS2ZINWZqVnJaSW1pbmF4d1BLUG1CL002akl4azhVL0FESEZMMitXSStXWmZyWmdrdy9ObExjZDIv''@;'; + put 'put ''QlAyQlE5TGJTdmhjS2N0OHdMZk91aHJWcHpncTZtaE5WVS9pNXNJN1RZNEtkSUZHNEVaQXhpQm8vUjVrT3pTNlhHRlcxS0N0TlM2bXFycXIyQ1lMZzhGRFpvbFc4TjltZ1hIUWhTK2pXckpGd1ZtOUx2TU11OUJjcU1Hb2FQYlVOMWgvY2YvOGR0Ym1FczhuMEtWYU4wZWl1YmJEakhhd21nK1ow''@;'; + put 'put ''VFpNYzBFZ3ppTEJGY1EvVlNOeVlLaVE4aVVVTm5KN1hZNjIrbVNaQlU2V0UxeE8rVUlucW91dXNBQ3ROcjFkam5Fb3dEZFlkRG9jejRYVEFad1UxSk9RcEF5TzlzUEwwTm1xSVhWQTNFeWhLK0NJNXVpMjNveVRwNi9BSmVYOC9WNU8vNkM3ZFVXUGZ4dXd2bWhER3R2eVJRaGFZYWk5OWdPbllB''@;'; + put 'put ''VVhIL2tPSnJpN25YMUY2R0ZEbzRaTkZmVStxZmJFZVBiTk4zK2VWdmdUckQ2N2Jsbyt3dmtHbDc4MGxlRVJ6cmI1R25vUTJnNnhOQldqeEZtU0FObzl6RnRvSTJpajJNMkRvdTVHYW4zVUlhTFFhdmhrUSt5d2FZdERUYWtzdFRaeldvbVU0bXNwQ0JaWEM1NmpqblBFOUp4bHp1OTNON3FZZ2pZ''@;'; + put 'put ''QUd2SXJyM0Z1U3A2VVd3cVBONGVsRFBSdmkwK2ZQNTN2V1VIR1FlblQxUzBWSlczOGI2KzFkZldSRG1Mcmd4MGdVL0JqSFlObGJ3QlgwajdNRi9lUFlMTnJLQjRMTDBQZTI2YXZxTGh5MFVlcGRnQVpvdlVzTjllcFZnb3dRTUszWFZUTkpLWUx6aTRqbkZZY2VaWGNWbzB5WUFRRllXWDF4RGFv''@;'; + put 'put ''UmJGNmEwUzFRWEZmcllMd3FSanRsNU04V0ZjWk15dWhiUTlHN1JucTJVQ1hEa0RVTXVCeXFZY1V0Tkk1MG1PV3owUnRmem9oV3Z3LzRiemtHeFJRMEdoNEVyd2EwWUErdHVVTTZFTFE2elRLTjBhZ0hyVno5d0JJUUdKbGFxWWoycTAwWkFQRGhyWHJRYkxKS2RtVk16T1cxQnZ4ZUx3M3hhRFp1''@;'; + put 'put ''U0ZlU0hDZHJ0THlhSTNkOVlaTUdXOW1tVExrV3NDdHNZdUJ2RktPaHNsYlp1Y05HaXRQbXdJSndlTXZ3OTFqeTNCWStNZjBXUHJITitxdGVrWldzVG9qeDhXYUZqejliMGxmT2ZhTjhmRVRtNHl0S1grblh0TVpJN2d2NFUwR01URWRpN1RucWxJcWhQRG9zSG9qV0V6MWY1YVNHT0syRFIwTkc2''@;'; + put 'put ''aHptOUpvVmc2b29sUVAxNlhRQ2RXc3lOSkxqamt0eTNERWVwKzZ1ZUQ3ZWxVMVh4Q3BpNFNhdnA2YmFicVZ1cnlxVHFpVFJxMVJrdmNqNUorYlZZYmVyeGxzWE1BaE9wK1dYYnl2RmJxK251cm90NmdpSDZPVW5jMjgzM3c3MCtmOE4rRlhHYUZyMkJSNWIrM2lKdi9CbGFLTmxOQzNyL01mdVVI''@;'; + put 'put ''SUcxcWJSRDRFdXJUVE9UaVdtVlk2enEyWG9GR1NxdlBHQmZHVHAxcXFVQWQxQ0piNGZVdXlydG9zeXdWRXhVUjB4a2JzVlVjaGs5Tm9iTU5jVExOYm5vVGVxMkcxRXczbXdYTFpmT0RKVldhd29FQWtMRWpmVWdSWGlxREJ2bVVKblZSZmtwT1UvNnBJV3FOVldWVlU1U1pmbWRWdnk5ZkxpMUZp''@;'; + put 'put ''Z1VMWHFnSFhXdCtoNS9NZlZONVNGQWc3U1NzMi9XdmV0QWcvak4vbUdXTTRkMkdMYVFtNmNVSkliTjVyUDB6d1NHRzhmNFBRVklFY2FBWGNaVHVOdnlYWWJQT2NZcms4b3oyOWp6MWtkRnBPYmNVVnVscFhRRDRBRWwzTzNRcHRKcFkwRlBTcTNlVlJ0STlkelBhbU9BK05meFdRY0xwSnhkSnd3''@;'; + put 'put ''YXpPcHRMbHVZeHM1ajVaMEFZNllhUWFieVZobUFNMmUweE8xc20xVGtaZ1ptZTJGSWpFK1RaRWthK2NGMGlYMTd0a2pmdVFqWFYyNExpYkc4SlQweXFnNEtrbW9rS3VMV1E1amcxaHJMT04xVktqcWxlcTVTcVVZeE00dWU4RThhTFhLd0JoUDVjZkg4MVA0UUxQMEFuYUd4QkErSWozWlhPeGp2''@;'; + put 'put ''bDcxTVFPTWZsVUNSOWtXZkZteEJhbitjWmZjRjg3bUw5bVp0U2huODN1NXZmUnJta2VvdG9mbjl4WE5kYkxnejliRGFXdzkxL01GdTFOL0RCWDVsUk1Gdi9JeDlPVVNmVVcyczg0V2JNZGpoOUJXL205Y2p2NnhKTzYyMFg0bHVQeTByRE9uZ0xFK0MrZHFBWXUvWGN3V3FsRDFwRkNHYXFEbGRt''@;'; + put 'put ''cWVEVE0yYXEwMURodExySk1Gc1dzOXZLYXlReHBoVzFkYi9MSW9YdjJIL2ZjY09IRFBmaEtYUER2bGdJOGlqSGQvZXYvUzNmdTdWbDhnMllsYkp5ZmVQYVRZbGR3YkxKODBpZHJSbERqaHhIb2RkZDB4clFFNHZWYXZXVFlaaUU0blYxVzZSbzE4R1VkMWVzVmxsMHI1d0lwSXRhZHkyWXd2Nld1''@;'; + put 'put ''Tk5OT1VVNnN2NFBPYllkRWJIWGJyZkx4SXlEWnM0dWhJbHJaY2greXBHN3FoMGZ1dWtVR1doem44THEvbnVxR0N6SldPRldWazRqTWJjdFhIZTNzbTVCek44VzV4VEJhK3hXbWFhdjY2SW9NUHNyTk5LL2o3VEFsZXlIbUg5R3huWmQvUG1LS3JBZjRlWlBpYlZ2RDBDYms5NE84Q3c5OVo1Ym14''@;'; + put 'put ''YUs2VDZseUF2Ky9kY3E3OURIOW5aZnkxeVhPeHVqaTJ6b3l5enJ0S2NGL09aYVRybkpQWHFjUldZMnNpcTZrVDBSdWlNOW5hVUsvUjZkMDA2bDVkQ2FLZHBsaHJGUDlqZEdOY0ZmVEZKUkRzRHRrZzB1S3RBNnV4VFlIVmkvZWkzc3Y0NWtEcHhickpRZDh0UXF0YmRKUmpxeVpmeEVkVEc2d1dB''@;'; + put 'put ''NWdCUHRrOXVVMTBGVis4ZXBCRTBrZDJWR3dWYUIyOFByRjlUZUhOODZtU2VHdE8yeFovaXlwRGxwY3FzcnpVUEp4WlRXdExmWjFHeTIrTWhXdEczS0R4RG04WkVPZDUzUktpeWVCbzNaZHgwWUQ0UlR0dEdSQy9TSzl0QStLbC9aU0F1QzhjZW5zQmNYeXhCRno4OUtHUkxRUGppYVhBdGxtNW83''@;'; + put 'put ''dTBqU1duRmF6ZlBrMjNtRDVQcXZRSnRIMXNHL3A4WHFWUHJNOHF0YVJBbjdTVzFJTWVGdTFWY0xUSWFRYUpZS0tYWjQxNHNFWTk1Q2FFYUlycEZTeEVSVTVSUjVXYW9NRjBPVUx3QVpEa2Jxd2VWalB0b0VIYzZiZlJRd3h1YWt3TEFnaytzcWtQaXhUUTRuNUdXUFNNMkkxVFc1NFF0YnRwK1N1''@;'; + put 'put ''ZXRXNXhDalZsdENZMnRnbldmVVUxc242Z0FacjNIRWZQaWE0bXJPZWE3Y1NnajlvSU1aUkVUaUpJcTlIZVhJWnBiWS9oQ2hCZUFGNWEyY054bWtXZFhOOVRFa0NKcnZmUkc4anBpM1VDY0c3WlhnbW1GSFhqS0pBczBDMk80aXdiMnduQW9xNkliU0lxdURSRDI4a3dId2RLY0RlU1hjL2FibWp3''@;'; + put 'put ''VjJ3UlFCbE1GbWR5eDZwMGZqa25pOVVzTXh6TktqajZ6aEljcGJubVAyQzY2cnlzcTVLbUVuMVdqdjBtQ3JIZlkraGpwYm96ODgyZUxmaG1qdzJnb3JqeE53cXhaU1A2VmtuY21QVmxjVWZaMzJ1OEFXMFZ1d1k5N1BOYjlRV0x2K0JieHVWTFNLbTNubWIxMW43VUliWTVnQ1dWdzhtQzZNUGNp''@;'; + put 'put ''SEo3aFhwSEtuUDdyaHRGME1QdnEvTDZmZkpkRnJMWGZKTTNaRk45TmprN2VHYktyS3NxZUF5cURseXRWR3FUYzZ3dUcxc2FGQmVCdjlyeHlSUEZkZHNzNzM2YTdBQzdoNjNWQUxhaUhtczVQNmEzRWluSi90UmZXVWkvTDNaWCttaE5UY2hESTlRYi9aUWJjL0hYYlVxeVEzWkxGcWZtNTljTlRI''@;'; + put 'put ''ZlVPTEE1U2I5Z3hqRjhvZlhnREtmYTVWd0JQRldDQzNJK1B1VjdlNWcreEtQdkZlVUhuRlR6QStENXJTVjlaUi80ODZvUEhQT0xxS2p2WENHMzRDZzZWWUlMckU2YjRVdVhvak05VkRLK25BTlA4V1ZSMXBrVVhKUDd6cWw5d1Q3OTdqWjlIMUQ2VWovY25VVjlUeGI2NnRFTjIvUjlYcDBYNjNz''@;'; + put 'put ''Wm5yTDZ0MXZoN0N1b3I0Qm01ZEs2QmVZckVOYXZOM0V6eEt4QTVWWjJ2WWx1VTNXYnZxaXE3YUhOcFd4eS9pd2VJYysvelpwdEo2M1ovbHpYc2ZUVXpqUjUvcmJGeGEzSEtOUnBFSFF6ME03VlNwV0dNa1kyeVh1NzB6dW4wc2U2eVBPTGk3Y3BZNHpqdytRQ3ZXMlJqZEZJOHdZMDFORlZta0py''@;'; + put 'put ''UmlZL1YwaElWdmJMekl2N3grcENqbXh0YmRZUnFoMXJJdU4xZFNHNzAya1AxZGJMYyt4QmR6Qi9TSUROOFpiNXVadXpuZWNWNzhhNk4wT3VnWVIxbXprM3k2ZHVZNlBTWWo2YVVieWl4UnpHM0h5aDhJeDdXMW5WeGZjazM5alpHUTdEcTlybnEzYjUvUzR5THY4ZDdtenl1K1NIY3A3d05GcEZO''@;'; + put 'put ''aVNnZHJhQ3VNclBhS1VrQXlHdGNnRDVQcys0R1VlL21aUXJSM3dPalpKWnJkenRXK1RjdmFIRDYyNHBPSFFmWko0Ym0rTEpsZStkSlYzNERIa2FkdDdMNXMzYUFJWjY1cyt5WWp3RVFwRFZlQkNNVnRqTkJmTnFjVGZoSnBtUzV3QlJxRlVRQTFITlRiMTRsT3JZZEJIMGFndHp2VXR3bUVPbVpq''@;'; + put 'put ''NFJ0TFBmZzJiNk8rbXpXQ3ZLaC9oc3Avb3BuMGMzZnB6bGcvT29tcTJxUWd2WU9FU3QxS3V0bGtJZXVaUDMrcFhFY0p6dFBac2hMMWZjOUdHV0lJN1g1cVJmcnoyOGRqOHFSejQyZ3F0OGkyb1ZYMkVzZnVObHVGK1FmWkEyVjQzM0RkbTN5UHlNQmY1NHZjb2ZVUi9PYk1NZlgxYjVJK3BEVHhY''@;'; + put 'put ''eDF2Vyt4L0dYTDlyM09CYUwrczRWK2g3RlF5WDhVZTc3UUtIdlVlcTNaUGNUTHRBNFFuRU00czAxV1FkNGMwM1JBUkpydTZrdlgvWkxzemJmZkZPU1l6dHZTa29iMmIrOVVoakhETHh1YS8vMjB3WC90bmtjYlprNzFyZUZqckV4emt0UTN3bmxmbFgwbjhTQW94ZS9mL2dmcERpT2RxaDl1UGEz''@;'; + put 'put ''MFljamIwcHFuMkg4YlhTQjNBazQwL293b012UXBzdTRYWnN1NDVhcmhoWWVrYkhJcWpxOVpTRjlnVjZuWEcybjF5bVRXK2w5eWhhM2ZKOHloU1ArRm5xTWZBcWdVSUdvTEdBMVFHU2tVQU1FNjhBbjJUcHFVZnNqdGVWRVhZcVpGZGF6KytMWllxd2J5ajQ0eHY0V0h2VlYrU3pzUnBHTkszSnV1''@;'; + put 'put ''OEIvM1dhdHJ0SjE0K3ZJcHlxRDhyclorcjhLNjdjVTFrOVJTdDBJdlhQcmNkeU5QLzJuMVZIOHI3NitlTHkzTi82NC9CSHZrL0ZuR1BBcWhIWUNiZ2lBRzE1NC95ckRjUUhmREExNGVrKy9abmZSUGYzZGFCUm0rdy81cnY2V0Nxd3RsNi9SMTJPZENaY1pkV1hGVis5YnpSYk9hT1NXQkVNbHJ5''@;'; + put 'put ''bStzVDk5a1k3czluMjVOMDk3YzhxOS9ia3QrMjF4YzM5Slh6QTBNbU5qb3FqZTREODJQemEzYTZjNEtvNE05Q2U2RS9tMnpKYTMrZHYrak52OEd6Yjk3U3RxMjVENWsyLzZ4OE9Ed2NJZjBoUHF2ZjkzNS83VS93SEFsdjh6Z1BYL0tRQzlWeWlOMXZEZjBkc21IdFppbkFoM1l5ZkFMbkJ2NWhP''@;'; + put 'put ''ZnlMeitkZE5qVDVpVk81M1NvR1FyN1RqV0xwaDE4dEZQZkNMOTJjLzJQdkdZNmV2ZllMTGlaOHFkaW5FMEtZN1Z1SWxHQitMUGlPbk51Qm9xQ2pYY3NnR1RNb3lOTkErOGtQbHZ3a2FqNnVsZ3RtRXNFbTV1RWl4K3NQa0VxOTlNZlZTRmV6cUNZQkJTMHdJKzhxU1FiS2VqbVVRQVpDZDgwUGpY''@;'; + put 'put ''aS9LVmkyTzNMVHYyVFhLNlhZZGNSMjRaVmhMK1p6N2t4Y1BTWjNrTlhwTE8xMzkwVDRKZHc5aDdjaWpuZEhycWMzMlhkckpzL3dNVHVWcHZ0UzAzZTBLVzd6aE95dkZsd0FkMUQ0TkNsMkJjVDc0cDlqSjZSeXhUZEVEVjRZQXJld1FQNFZaWDZZdnhvU1RBcFU2cEpkZC95V1UxYTBsaWkwdFNT''@;'; + put 'put ''b3ZDNjk2cUtQeU41VzFyd29ITzVUbEJCdUNFRWx0NGdORy8vUHlDOG53OTlpay9mNzd3bkwrNitQa0Q2bk4wOU5MaTUrdmo5NEZhdGY3OGJLSDlzZjFJZ2NFMHVReGdRR01GK2k4MWVhMFlZRkJpaXFtUVdMZkRBcHRoY3Bsc2x4VURSckhML3JNSVBvcU5ObGNFSXNVOCs0c05XUW5yYTZaMnRi''@;'; + put 'put ''d1hzTDMvb21ndlR4ZGdZcDZUNVNoTisva0l1NXRDeFlXazRKMVdycU9nMzYvTndQZmEwdSsxcTVQb2Z3QVBmbng1QUFBQkFBQUFBUUFBdENjQXdsOFBQUFVBSHdQb0FBQUFBTlBCbllZQUFBQUExTDZtOWY5Vy91OEVXQVBGQUFBQUNBQUNBQUFBQUFBQWVOcGpZR1JnWUQ3Njd6WURBMHZILzdE''@;'; + put 'put ''L2sxa2lHSUFpeUlEUkdnQ2xoZ2F2QUFBQWVOcU5sRTFvRTFFVWhjKzdrNVVMd1Q4VUJTbHFFbHVicEsyaERhWTBsQlJiYlVyU2puWVJha1doQ3hkYVlyVzZGdEc2RXhFWFhma0RVdmN1QmJIdVJNZ211TktLK0VNVVdseGtJUzA0bnZ1YXFYWFNnb0hETnpPNWI5Njc1NTE1cG9ZejRNOE1VUWNv''@;'; + put 'put ''QTlmY1I3ODhSRlRPSSs3c1FFSWVvQmtmMFcvRzBFUEZ6UXpTTW95c0FmSm1DaWtzNG9TNTYvMlVKMGliSXZiS1NiUkxEdzdMQkZWQVNzNmhXMDV6VEFGSnZiYjFITXU2TG4wUG1UTTE3SE5LYUpVdmFKSkhHSmM1MXRiSUNkWVZxU3J2WHlHUEJWN3Y0aHczTVNhSDBPY01zSVoxVHBULzMwRGU4''@;'; + put 'put ''aFpydUhhWlJremVZMVRmR1dwR1dKNGhJdmV3WGE3am1MbUFZYTU1aFd3M245RXBCZSszU1NNalhlaVFLM0JsTjlySVRuSFJ4cDdETWtrZnNoaENCUm04OVY3SU5nemlIWExPRkhMNlhLN1plbGZIbUt2MGNCRXhNOGx4V2Y2ZllHOUpISlE5N0cwQSswVlljd2RIekZaY0pPUG1KWHJwKzRpZHMw''@;'; + put 'put ''aFB1RVl6aXo2enhKcm55TmgxalNPS0QvUTh5ZnNsSk9uWHFsY2J5UGxPcW4vcTNUcGh3U3VyZitRUDZwdXpCUzIrZDBISlRveFlxbi9ycGY3UlorbkFLZXZWQm5MS3BQYmkvaXRVdkRmMGI1RDhTbjJTUzh5RjcxMVFtZ3RsMXZyN1YrcWYrcXpVZm5YT0lMVjNuZCtuNW9qN1l2dTl6VDFWUDNS''@;'; + put 'put ''Tm0xR3pwdnRkSjcycWNMM3FYUk81UWg3WFBtd0dtUVBOb1daaGpXY1JOaEh1dmM2ci9RVm9mV1Z2YTF4R010VENlWmxielU0RG1XWE5Vd09uNnhuenFmdWpIbTFDL1Fac0RuVVAxYi82dDZCNURGSXp6bXhtckI0ejgyVXlSM1ZUcjVuRFgzd0diOVIvWjVBTm50Ym5aRzdoVkZmUEd5eFRUd0hw''@;'; + put 'put ''UmNxNWpCVFBCSHN1bUhseW5weWx2eVZlODF3S3pTQmhXaEdoWWpMblZXMCtISTR0NGVoL2labUIrd2ViUC9VTWVOcE53bDFJR2dFQUFHRHp2MU5QTy9XNjgrNjZYKzl1ZXVlZGR4RVJFVEpFUWlRa1lrajBFTkZEUkVRUFEwSmt4QWpwSVh5SWlCZ2pJbVNFaEl3WUlTTjZrQmdSd3dlSkhpUWlJ''@;'; + put 'put ''aVFpZWhnU01tVHNaUS9qK3d3R3cvSS9lNFp5RDlLemJvd2JUNHdQSm9NSk4xVk5kMmFybVRLL05VK2JEOHcxaTlFeVo5bXhQRnFUMWlYcm95MXAyN0VkMnM1czk3YU9QZFdiNk0zMi9nUWdJQW5rZ0JMUWRsQ09JY2VDWTl2eHpYSG50RG9ubkJ2T2xvdHpyYnAyWFhWWEcyVEFOSmdGRDhCenNB''@;'; + put 'put ''bDIzUVB1VWZjN2Q5VURlcVk4WlUrM0w5Vlg3V3RESExRQ2ZZYU92VWJ2bUxmZ3ZmRnB2aGxmeGZmazUvMEovM3YvdnI4SlcrRUplQjQrZ2svaGwvNVlmN0cvampnUkJCbEMwc2dIcElUYVVSKzZpT2JSSXJxUEhxUG42SFdBQ2p3SC9tQWVqTUVHc1FTV3dSYXhQSGFKM1dBdnVBR0hjQTRmd3Fm''@;'; + put 'put ''d0duNkZ0L0FPQVJBNE1VMVVpTy9FRDZKQjNCSlB4T3ZBSmpsSXhzZ1VtU0hueVJVeVQyNlEyNVNkOGxFVUpWSERWSnhLVXhVYXBoazZRby9RQ1hxU0x0TW45QVY5UmJmb1gweU1PV1hxVEpONVpqb3N3T0lzeHhiWVhiYkVuckExRHVJK2NVZGNsYnZrcnJuNzRFcndZN0FZUE9jUlBzVEgrQlNm''@;'; + put 'put ''NFJmNVBGL2s5L2tHM3hWQUlTRHdnaWJFaGJRd0p5d0xhOEttMEJSbnhHVXhKeGJFTGJFa2ZoVnJZdjNOWVdndHRCWGFDNGZDamZCRCtGV3lTejZKbHpRcExxV2xMMUpYQnVXQUxNbkRjbEtla1Jma25GeVFkK1dTZkMxM0lvRklLcEtOVkNOdFpVeVpWVGFWUGFXc25Db1hTbE5wS1IwVlVIRlZW''@;'; + put 'put ''RWZVeEg5bTFaeGFVYytpUUpTSmprY3owWXcyb2MxcFdlMUJhK3RHZlZRZjE2ZjBXWDFKWDlYWDlZWitxei9wdndlQnYwdEF2U29BQUFBQkFBQUJQQUJZQUFvQVB3QUVBQUlBS0FBNUFJc0FBQUNEQVJZQUF3QUJlTnFGa3MxT3drQVVoYzhVSklER0tERXVHaGQ5QWZsVEllcFN3MFpRSXdvN0Vo''@;'; + put 'put ''QUVJbEF0eFlUWDhDbjBUZng1QWQyNGR1M2FoWWZodHFEQmtFazczOHk1OTl5NTB3S0k0UU1CcUdBRXdDR2ZNU3RZWEkzWndETHF3Z0ZrNEFnSGtjU0Q4QUpNdkFtSG1Qc2xIRVpheFlRak1KWG51WWh0VlJGZVFrbmRDNjlnVFgwS3J5S3F2b1dmc0c2RWhKK1JORGFFWHhBMjhzS3ZpQnJuWTM0''@;'; + put 'put ''UHdEUXFPSUNOR3d4NTRqYWFhTUhseVI3NXBIbnlGRHV4VUtOcU1hNmxZL3JrSXVjdXMvck03U0dPQWhyTWM3U1RqWTVFNVgzSE0rcE5ES2hVR1pWaVJsS1BmVnpnQ0dVY2syWjViRTU1ekt0aC9hbFM0c3BoVEZ1ZjBacXFPcTlTaVhUSjJXYk1xUE1UNWpjNGovTHExS3JrVStwRFhkL2wzdjkz''@;'; + put 'put ''TS9KenVkcERndVB1bDdPdGZidSthNXlhemJXWDA1ZXNKbFdYdXdOK0NTOG13ZG1yMmRWZFRtb21ablk0YTIvU2M1bHFEVmM2My9WdnF5QjNsOU9xeFpIUldwWW5TMkdYN3kzcytQOUtGdGVNYTJoL1IrNDk1enNXY2NzTzJsUWN4blIrQUdpaWd2Y0FBSGphYlpOWGJCeFZGSWEvMzdGMzNUWk83''@;'; + put 'put ''NzFYeDE3M3hDa3VhOGV4WXljdWNlekVTY2E3WTJmeGVoZkd1M0ZzdWdRQ0hrRHd3alBsQ1JDOUNpUjRRS0pYMFhzSDBYbWtCKy9jQ1Y0azdzTjgveG1kODU4ejk5NGhDM2VkRzJBZS83TlVtMzZReFF5eXljR0huMXp5eUtlQVFnTE1wSWhaekdZT2M2ZnE1N09BaFN4aU1VdFl5aktXczRLVnJH''@;'; + put 'put ''STFhMWpMT3RhemdZMXNZak5iMk1vMnRsUE1Ea29vSlVnWjVWUlFTUlhWMUxDVFhkU3ltejNzWlI5MTFOTkFJeUdhYUdZL0xSeWdsVFlPMGs0SGh6aE1KMTEwMDhNUmVqbEtILzBjNHpnRG5PQWtwN0M0bmF1NG1wdTVnVHQ0bit1NWxxZjVtRHU1amJ0NW5tZTVoMEhDM0VpRUY3RjVqaGQ0bFpk''@;'; + put 'put ''NG1WZjRsaUhlNERWZTUxNkcrWVdiZUpzM2VZdlRmTStQWE1jRlJCbGhsQmh4YmlIQlJWeUl3eGdwa3B4aG5PODR5eVFUWE15bFhNSmozTXJsWE1ZVlhNa1AvTVRqeXRJTVpTdEhQdm41aTc4NUo1U3JQT1ZMS2xDaEFwcXBJczNTYk0zaFYzN1RYTTNUZkMzUVFpM2lkOTdSWWkzUlVpM1RjcTNn''@;'; + put 'put ''Yzc3UVNxM1NhcTNSV3EzVGVtM1FSbTNpUHU3WFptM1JWbTNUZGhWcmgwcjRnei81a3E5VXFxREtWSzRLVmFwSzFhclJUdTFTclhacmovWnFIMCtvVHZWcVVDTmY4NDFDdk10bmZNQ0hmTVNudk1jbmFsS3o5cXRGQjlTcU5oMVV1enAwU0lmVnFTNTFxMGRIMU1zRFBNZ2pQTXBEUE13MTNLV2pQ''@;'; + put 'put ''TU9UUEtVK2ZsYS9qdW00Qm5SQ0ozVktsZ1lWVmtTMmh2eDFvMWJZU2NUOWxxR3ZidEN4ejlnK3k0Vy9MakdjaU5zamZzdlExeGkyMGtrUmc4YXBDaXZwRDNrV3RtRitLSkpJV3VHd0hVL20yLzlLZjhpenNqMnJrUEd3WFJRMmh4T2pvNVpKTFJ6T0NQd3RubnZVWTR2bkV6VXNiTTJzSE1rSWZH''@;'; + put 'put ''MVdPSlcwZlRHRE50TXZadEJ1WHNaZEZMWm5lc1F6UGRwTmV0eUZ2OE9iSVdFWTZEaWRpZzliVG1vMFpxV1NnVVJtNU9zMEhSelRvVE96ZzVQWm9kTjBjQXk2VE5XWUMzOHFIaTBwclF4NkxQTjFtNlNrbWFiSG15WmxtTlBqUk9QRE9hbjBNOUR6bjhsU21aRy94OXZCbEdGQmJ6anFoRk9qUXpI''@;'; + put 'put ''N2JNRjRodTdMMEJQVDJ0ZHZacHgwa2Q4L2ZkcVQwNmVkbmpoWVZ1V3lMRmpwNngxMnJLbHJOVzdRYXh6R1hlVDFScUsyWTQ5RngvTEd6NnQwWFdtb3Z0cGpqY2NHajQyK1BtTTA0U0w5TmxoU0V2Ulk1ckhjWTRYSFNzTmdVM1lvNVNUY29LS3BJY2NxdG1MSmZNdWR4VWozN3FkbGtUWDkyZWs0''@;'; + put 'put ''WUowZjBDUzYzZE95d1B0OWpEYjdtdFo1VnZvMFRISXlHb3U0eWJuVzJOUWVSV3duTDJKNzZoKzNaYmNoQUFBQWVOcGo4TjdCY0NJb1lpTWpZMS9rQnNhZEhBd2NETWtGR3huWW5UWkpNakpvZ1JpYmVUZ1lPU0FzTVRZd2k4TnBGN01EQXlNREo1RE42YlNMQWNwbVpuRFpxTUxZRVJpeHdhRWpZ''@;'; + put 'put ''aU56aXN0R05SQnZGMGNEQXlPTFEwZHlTQVJJU1NRUWJPYmpZT1RSMnNINHYzVURTKzlHSmdhWHphd3BiQXd1TGdEK0hDVmdBQUFBQUFGWW1QWjNBQUE9KSBmb3JtYXQoIndvZmYiKTtmb250LXdlaWdodDoyMDA7Zm9udC1zdHlsZTpub3JtYWx9QGZvbnQtZmFjZXtmb250LWZhbWlseTpNZXRy''@;'; + put 'put ''b3BvbGlzO3NyYzp1cmwoZGF0YTphcHBsaWNhdGlvbi9mb250LXdvZmY7Y2hhcnNldD11dGYtODtiYXNlNjQsZDA5R1JnQUJBQUFBQUZVa0FCTUFBQUFBcFFnQUFRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJHUmxSTkFBQUJxQUFBQUJ3QUFBQWNmTkg1NWtkRVJVWUFBQUhFQUFBQVRR''@;'; + put 'put ''QUFBR0lIMVFmOFIxQlBVd0FBQWhRQUFBY1hBQUFPZGo1OGZFeEhVMVZDQUFBSkxBQUFBQ0FBQUFBZ1JIWk1kVTlUTHpJQUFBbE1BQUFBVFFBQUFHQm9RS3p6WTIxaGNBQUFDWndBQUFKc0FBQURubmRERDdGamRuUWdBQUFNQ0FBQUFEQUFBQUE4RWF3QnBHWndaMjBBQUF3NEFBQUdPZ0FBRFJa''@;'; + put 'put ''MlpIMTJaMkZ6Y0FBQUVuUUFBQUFJQUFBQUNBQUFBQkJuYkhsbUFBQVNmQUFBTjR3QUFIRzQvN0hHREdobFlXUUFBRW9JQUFBQU5nQUFBRFlMWllnU2FHaGxZUUFBU2tBQUFBQWhBQUFBSkFkNkJDQm9iWFI0QUFCS1pBQUFBb1lBQUFUYXExTStWV3h2WTJFQUFFenNBQUFDY3dBQUFucE43akxt''@;'; + put 'put ''YldGNGNBQUFUMkFBQUFBZ0FBQUFJQUtFQXBGdVlXMWxBQUJQZ0FBQUFYRUFBQU1RSSt4NFlYQnZjM1FBQUZEMEFBQURvUUFBQmlHWEZqMktjSEpsY0FBQVZKZ0FBQUNCQUFBQWpSbFFBaEIzWldKbUFBQlZIQUFBQUFZQUFBQUc5bmRZbUFBQUFBRUFBQUFBMUZHMWFnQUFBQURUd1oyR0FBQUFB''@;'; + put 'put ''TlMrcHZWNDJnMk1RUXFFUUJERUVrZjBNTFBvZjd5cEwvRG9mWGZWL3ovQUlnUkMwVFFDTFI2Y2RGUmtqVnNvN0h6VHYxRDRCN200MDQ4RE9sb3BObHY2NDVTZVhYTFQ1MXNYelNhK1czQUYzQUFBQUhqYWpWY05iSmJWRlg3T3VmZSszOWV2Z0tXVUg2RWdJVmdiMHhSR21BaXlhUmhVUnlxU2pp''@;'; + put 'put ''a2FadmJqbklQeDEyRXpGdWY0Y1dnV1VoZUhEQWxwRVBreDJnQ2lZa1hHdW9ZeHh6WUN5Z3hoWUZ3SHlCWW0wK2xDUkhuM3ZPZjlzQy9RYnVNSkQ0ZHo3M3Z2UGVjOHQrY1dBcUNBRVpnS21WeFhQd041ZUhvUXgzRDhSNkJ3Yzc3ZE9BOFZjNy9ST0FlVmMrZk1uY1Bab0Q4WlRXY2s3UGhkQVFN''@;'; + put 'put ''d0RGWG1jUmlKZXRlYWprWUxiRldKbWhIeEkrbTlpRjhNTmw5QXhXY1ExTVhONUlDSldJbFBFY3RnS0kvQmVUSklqcUVVdlhpeWY4UWQ4WmI0U0h3Y1BmeUozKzl4NVBmZGVqdTVkL2IvSitPZjk3akN1ejJPOUh5ZVA4VzdlaGpaRW5mR3V4TmM1ai9Ddjc5TDBOMGVjVE96cEJqT1RGY3hXOWNS''@;'; + put 'put ''aWxyQ1lSVGhNWVlJK0R3UllSeVJ3M2dpandsRUNYTTdrWlZxSWdSTDhSUE9mSlFJelBoSytsOG1CSzhRZ2xjSnhTSEM0MDNDNHpnUjhGY2l3a2tpd3J0RWhMTkVEdThUT1p3blNsaTlUN2xhVEJTa1RNcFFJdVZTVHE2UUN2SmdWcmJBdFVkVEpTUDV6ZldFMkxuVEU2dWQyTm1KdlowNFlES1JS''@;'; + put 'put ''eDFSZ3R1SUFocUlVc3pIZzF3aGlTU3lTQ0tMSk9CeFBNbjVxNGtTL0FKck9mOXBiT0w4TFVRcHRoRTViQ2Z5ZUlISVlRZVJ4NHRFRGk4UmVld2tTdEJHbEdBUFVVQTdVVUFIVWNCZW9vRGZFSUxmRW1MWmlmQTJVWXEvRUdsZTFQS2lsaGR2ZVFtV2wyQjU4WllYYjNueE1sQUdNbDlYeTlYa0pF''@;'; + put 'put ''ZUJxOVl5UTFXc2NTMXJPNFkxSGNmTVRHQkc1bU1CRnFJUjM4Y2kxbklwbG1FNUhtRVdIbVgwMnhqUmk2emtLNnpnSVZidU9DdDJrcFU2eTVPY3Q1dFZ4bjBya3Z1bEQ5czkzQ2VOakxzMzFiV2J1bXVPUCtwR3JUYlMzUjM0Yk9STWdtNitQTnZqM1RoelVmRzgxOGZqNWZIeXkwZlNXeGV2aTlk''@;'; + put 'put ''MU8vSTMrMFpSYVpvUTA0VGlxNFREM1lUSFBVVEFMQ0tpSXA3a25FUU5ZbXBRVTRPaWxZaXdsWWlzMG1LVkZxdTBXS1hGNnFvNFFUaWNJaHhPRXc2ZkVBRVhpRWo2U2wvV3RaLzBJL2VYL3VTa29tSVZGUmtpUTdpK29nWlhFYVhvUy9ReXBZc3BYVTNwcnFqMFc0bXMwcjNGRTJYaXlablNYVkhw''@;'; + put 'put ''WFJyM0ZwVzNxSElXMVVXbHB4cFAxYjJMNkZuWFNiVGVOS3ZGQ0JQbE9vc3paL3AxcGw4dHhweW9XSXVSSjFyV1RQeFpSVHZMUWs1R3kzanVudnowcW1PRURhelgzWXhyRmlOWnpValc0Q2xHOHpRMjRCbHNaRVJiR01sVzNzWTJucmFkcDl6TDA1MWdEVTd6WkJkNGduN2NiU0IzR2NJVmg1bWVG''@;'; + put 'put ''WDJzbzVTYk9zcTV5ODIweE95YjJZbU9SY1BJbmN4L2g2eVFsZktFckpFVzJTalB5WGJaS2J1bFExNlhBM0pZanNvN2Nrck95QWR5VGk2bzE0S1c2UUN0MUJGYXJiVTZWaWZvTFZxbjlkcWdNL1ZldlU5bjZ3SnQwb2QwbVQ2bXpicEsxK3A2M2F5dHVrUGJkSS91MWYxNlVOL1NZOXFwcC9VOS9W''@;'; + put 'put ''QS9kbkNSNitYSzNTQTN6STEwMTd2UjdnWTMwVTF5dDdscGJvYTd4MzNkM2UrKzV4cmREOXpEN2hIM1UvY3p0OXF0Y3h2Y3MyNnJlOG50Y3UxdW4vdURlOE1kY1crN0UrN3Y3cC91Mys0VHJ6N3YrL2dLUDlnUDkxVyt4by94Ti9vditzbCtxcC91Ny9Tei9EZjlBMzZlWCtSLzZKZjRGWDZsZjhL''@;'; + put 'put ''djhTMStvMy9PYi9jNy9XN2Y0Vi8zQi94aGY5Uy80MC81TS80RGY4NWZDRDRVUWxrWUVDckRpRkFkYXNQWU1DSGNFdXBDZldnSU04Tzk0YjR3T3l3SVRlR2hzQ3c4RnByRHFyQTJyQStiUTJ2WUVkckNuckEzN0E4SHcxdmhXT2dNcDhONzRjUHdjWVFvaW5yeGRpeldiZVFseG5VWlhwVXdtb3hi''@;'; + put 'put ''ekxPMHkxL2thY1kxeGpjWlA1aXdEalY3dXZFazQydVZQMU9sMm5pVThaU0VzZEI0azc1R2JqVC9lT09KNXU4MFBtK2U2NHczR0ZjWjU0MGIzR3p5ODhhTHUyZDlNeHVqK2E5Z1RETisxcmlwaStXdU5IYXo1eG52TTE1MUphY1pNUHRLbm01OHJiYi9MOWFObCtTcXZUdkdsNDJmTVY3WXhjeGV1''@;'; + put 'put ''Mlh2djNPYXovWnV1U3JEaXpObnZzVE8xSFNKK2F2Tm43WFRyRDV1OWwyWnpJL3FHcjFvMjJpcWlxdy96ZXFVMUxZNXFXYlM2cVJScC9vczJrVi9NcWZGN0UydTZhSjZpeHA3dyt6OWlWMnNhWnF4Vk51cDlyTCs5QXhwM2c2YS9TT3IwWjlONStkc2ZxcWNUcHRqTnlMVjdTWCtHclBQcDdiTlNW''@;'; + put 'put ''V2Q5YWMzNkthTVp0S0taTzBYelA1VzZyZjVkaTkwcVBrM21EOVZXbFhHbm1TY04wOVA5a2ZwZmJIbzdqRDdzTm5abGV2aVh5WFZpZmRjVnFuc2psT0t0N3Y5LytCTFp5cXVzWGNwK082cVpsYVMxNmxuMTY1aEYweGUyQkUreDVkWURtTnhJM3RZMHJuN3NHOS9nVDA5NmR4OTdZMWFicDI3SDMr''@;'; + put 'put ''dm1zbytWRS8weHgzc2N3UFk2ZTdrN3o0emlVcnI1VVBaOWI3R3JqV2ZiN2ZoOW5vYng0N2V3dlhXcy9QZGJyM3ZLK3grcjdGRC9oSUg4QjIrNk01aXNiMHExK0JmRXZBVU8vRVF0RnBQYmVONVJhNnkzODBpU1B4alUrRVMzRTlld1c1WGlrSGNheVFqR28wYmVPcEpQT1Uwek9Eb3IwMjdmelEr''@;'; + put 'put ''YW14M0J2c3lmTWg0cnZGbTQxUlZPYk5MOFNYdTh3QytLem5KUzRrVXBGUjZTNThyVC9RZjZqNmJLUUFBQVFBQUFBb0FIQUFlQUFGRVJreFVBQWdBQkFBQUFBRC8vd0FBQUFBQUFIamFZMkJtY21DY3dNREt3TUxVeFJUQndNRGdEYUVaNHhoRUdNMkFmS0FVSExBeklJRlE3M0EvQmdjR0JkVS96''@;'; + put 'put ''TkwvalJrWW1JOHlxaXN3TUV3R3lUR3hNcTBIVWdvTVRBREpaUXBBQUFBQWVOcTFrMWxRamxFY3huLy90MzBSS2hUMTl2WnAwMGFpRkVYMnBjaStsS3pac3EvWkd1c1FRMFZTeUo0a294a1RVMU8yRys2NE5XT012cytWVys0TUhjZFhURFBNdUhKbTNuUGVjODZjNTV4NW50OGZjS0hyQzBGMGox''@;'; + put 'put ''VHFtVGpucmxLc3h5V013NDJCbEhDTE91N1NTQlBOdE5BbUhoSWdneVJNQmt1Y0pFbXFwRXVtVEpVY3laTkNLWklTSTlWNFpieDNpVEtQbTYzbUUvT0w1VzRGV3NGV3FHV3pvcXhoVnJwMTMrWWYrVTBwZllmRmpSN2FqMm5qbWZoS2Z6SEZKckdTS0NtU0pobVNKZG1TS3dXeVFUWnI3WmZHVzYx''@;'; + put 'put ''OXlHd3gyODNQbG1FRldFRldpRk43cUpYMlMxdDlWQy9VYy9WVXRhdFc5VWcxcTRlcVNUV3FCbFd2NnRRMVZhdHFWTFdxVXBXcVFwV3BNNnBVbmVoODA1blZtZlQ5azZQY1VlRElkOFRZQjlyOTdENTJMN3ViM2VqNDJ2RzU0L0NIa0hmSlhWNzlwK1p1ZUR1VDRJOWJCS1A3ei9pSFJ0ZEpGMXgx''@;'; + put 'put ''ZHU1NDRJa1gzdmpnU3kvODZFMGYrdUpQQUlIMG96OERDQ0pZWnp4SXB4NktTWmhPSkJ3Ymc0a2draWlpaVdFSXNjUVJUd0tKREdVWVNRd25tUkdNSklWVVJwRkdPcU1aUXdhWmpOWE1aREdlQ1V4a0VwT1p3bFNtTVowWlpKUERUR2FSeTJ6bU1KZDV6R2NCQzFuRVlrMWFIdmtzcFlCbExHZUZm''@;'; + put 'put ''djhPZHJLYllnNXhuTk9VVTBZRjV6bEhKVlZVYzVFYUxuR0Z5OVJ5bGV2YzFCVDlaUFEyRFpxbGU1cW1uMjBWcTdVZDBXemdiTGMzNjFtaisxMmMrTzFXNFY4Y3ZFQTltMW5aWTJVdG15UkdqMXZZempIc09DUmM4eGtwVWJvQ0lyaWpkeDZnYVpZRVhRL3gzV2VLbkdIRXNvMjliR1VmZXpqQVFW''@;'; + put 'put ''MUwrem5DVWIxMW1GSk9jWkxYdXBwNnNVNjh4RnQ4MkNoK21uL1BINUROcXVoNDJtTmd3QUw4Z2RDWndabHBQUU1EMDI0bVZnYUcveUhNMHYrTm1YYi8vOEowakVudy81Zi9maUErQU05UERWaDQycTFXYVhmVFJoU1Z2R1VqRzFsb1VVdkhUSnltMGNpa0ZJSUJBMEdLN1VLNk9Gc3JRV21sT0Vu''@;'; + put 'put ''M0JiclJmVi93cjNseTJuUG9OMzVhN3h2WkpvR0VudmJVSC9UdXpMc3piNXQ1WXpLVUlHUGRyd1JDTE4wMWhwYVhLTGQ2emFkVEZzMEU0YlpvcnZ1VUtrUi85UnE5UnFNaE42eDhub3lBREU4dXRnelQ4RUxYSVZPUkNMY2RTaW14S2VoZW5UTFQxMW96WnI5WGFWUW9WL0h6bEM0RUs5Zjl2TXhi''@;'; + put 'put ''VFY5UXZZNnBoY0FTVkdKVUNnSVJKK3hvazJZdzFSNEptbVA5SERQdjFYMEJiNXFSb1A2NkgySkdzSzZmMFR5aitkQUtneUN3eUxTRFFKSlI5N2VDd0tHMEV0Z25VNGpnV2Rhcis1U1ZMdVdraXpnQ01rT0hNa3JDTDdFWlp6ZGN3UnIyMkVvODRDOUlsUWFsWi9OUWVxSXBtakFRejJVTENITFpE''@;'; + put 'put ''K3RXdEJMNE1zZ0hnaFpXZmVnc0RxMXQzNkdzb2g3UGJobXBKRk01REtVcmtYSHBScFRhMkNhekFRT1VuWFdvUndsMmRjQnIzTTBZRzRKM29JVXdZRXE0cUYzdFZhMmVBY09ydUxQNWJ1NzcxTjVhOUNlN21EWmM4QkIzS0NwTkdYRmRkTDRNaTNOS3dvS1RIUzlSSFJrdEppWUdEbGhPVTFobFdQ''@;'; + put 'put ''ZEQyNzNva05JQnRRYjYweWkySmZQQmJONmhRUlduVWhYYWpCWWRHbElnQ2tHSHZLdThIRUM2QVEzeWFBV2pRWXdjR3NZMkl6b2xBaGxvd0M0TmVhRm9ob0tHa0RTSFJ0VFNtaDluTmhlREtScmNrcmNkR2xWTHkvN1NhakpwNVRFL3B1Y1BxOWdZOXRiOWVIZ1lCWXhjR3JiNXpPSWt1L0VoL2d6''@;'; + put 'put ''aVErWWtLcEV1MVAyWWs0ZG8zU2JxeTJabjh4TExPdGhLOUx3RVY0Rm5Ba1JTZy84MXpPNHQxUUVGakExalRDSmJIaGtYVzZacDZscU5LU00yVXBVMW40YWxLeW8wZ01QWEQ4T2hLMEtZLzNOMDFEU0dETmR0aHZIaG5FMTNiT3M0MGpTTzJNWnNoeVpVYkxLY1JKNVpIbEZ4bXVWaktzNndmRnpG''@;'; + put 'put ''V1paSFZaeGphYW00aCtVVEt1NWwrYVNLKzFnK28yUW43NVFMa1dFcGltVGU0QXZpME93dTVXUlhlVE5SMnJ1VTAxM2xyVVI1VEJrMGFQK0grSjVDZk1mZ2wwQjhMUE9JaitWeHhNZFNJajZXVTRpUFpRSHhzWnhHZkN5ZlJud3NaeEFmUzZWRVdSOVRSOEhzYUNnOGRzSFRwY1RWVTN4V2k0b2Nt''@;'; + put 'put ''eHpjd2hPNEFEVnhRQlZsVkpMY0VSL0pzRGo2dVc1cHpVazZNUnRuelltS2owYkdBVDY3T3pNUHEwOHFjVnI3K3h4NFp1VmhJN2lkK3hybmVXUHlENE4vaXhkbEtUNXBUbkJ3cDVBQWVMeS93N2dWVWNtaDA2cDRwT3pRL0Q5UmNZSWJvSjlCVFl6SmdpaUtHdDk4NVBKS3MxbVROYlFLSDA4RU9p''@;'; + put 'put ''dmF3YnhwVG93anBTVzBxRWthQVMyRHJsblFOT3J6N0sxbVVRcFJibUsvczNzcG9wanNSUm5NZ0NrbzVLYXhzT3p2cEVSYVdEdXA2ZlRSd09WRzJvdWVMRFZiVm5HRnZRZnZZOGpOTEhrM1VsNjRLU250Ulp0UXA3eklBZzY1a1QyNEpvSmJhTyt5aW1KS1dLZ2lQZ2h0QmZ2dFkwUW1MVE9ETG9F''@;'; + put 'put ''aVpIR3lzZy90aWgwNW9vSjJBdDk2MGlydjIwTHR6M1h5SURDYm5XN25RWmFSb3ZOZEZmVnFmVlhXMkNoWHI5eE5Id2ZUenJDeDVoZEZHVTh1ZTkrZUZPeFhwd1M1QWtaWGRyL3VTZkgyTzlidFNraysyeGQyZWVKMVNoWHlYNEFIUSs2VTl5SWFSWkd6V0tVUno2OWJlREpGT1NqR1JYTWNGL1RT''@;'; + put 'put ''SHUyS1ZkK2pYZGgzN2FOV1hGWlVzaDlsMEZWMDFtN0NOejVmQ09wQUtncGFwQ0pXZURwa1BwdWRtdkN4bExnc1JkeXpaTmRGOUIwOElSM2l2empFdGYvcjNISVUzS0xLRWwxbzF3bkpCMjBmSytpdEpidVRoeXBHWisyOGJHZWlIVWszNkJxQ25rZ3VPUDVlNEM2UEZla1U3dlB6Qjh4ZndYYm0r''@;'; + put 'put ''QmlkQnI2cTZBekVFdWV0Z2dTTEt0N1NUcVplVUh5RWFRbndSZFZDc3dKNENjQms4TEpxbVhxbURxQm5scGxUQVZoaERvTlY1akJZWXc2RGRiV0RybmNaNkJVZ1U2TlgxWTZaelBsQXlWekFQSlBSTmVacGRKMTVHcjNHUEkxdXNFMFA0SFcyeWVBTnRza2daSnNNSXVaVUFUYVl3NkRCSEFhYnpH''@;'; + put 'put ''R3dwZjF5Z2JhMVg0emUxSDR4ZWt2N3hlaHQ3UmVqZDdSZmpON1ZmakY2VC92RjZIM2srRnkzZ0Ivb0VWMEUvRENCbHdBLzRxVHIwUUpHTi9HTXRqbTNFc2ljanpYSGJITSt3ZUx6M1YwLzFTTzk0ck1FOG9yUEU4ajAyOWluVGZnaWdVejRNb0ZNK0FyY2NuZS9yL1ZJMDc5SklOTy9UU0RUdjhQ''@;'; + put 'put ''S051SDdCRExoaHdReTRVZHdMM1QzKzBtUE5QM25CREw5bHdReS9WZXNiQk4rU3lBVGZrOGdFKzZvbmI1TXF2Tm4xYldwZDR2U1UvWGJuWGZZK1J0bE03b3NBQUFBQVFBQi8vOEFEM2phdFgwSmVHUFZlZWc1NTBxNmtqZnRrbVY1MFM3YnNpVGIycnhidHJ4S3R1eXh4K1BaUEo1aHh1TVpHQWlU''@;'; + put 'put ''R1FqTERFc0lKU1NrU1VOQzJnUkNDRHhhYUZrbXdMQk1GZ2hmU2lZTEpDOXRtclJaMnJRcDlBWFN0RWxMK3NEeSs4ODU5MHF5SmM4TStiNEhZOG0rT3V0Ly9uMDVRaFZvYVQyQ1B5dllrWUMweUl4c3lJMWFVQXgxbzM0MGdXeEp5L0JBWDA4aUhtbjFlNXJxYWkxNm5VWkJVRVY3UU9uVU8wVnp4''@;'; + put 'put ''T3cyUjJMdVdDUW1zbmNSZnBXZjBtZjBuWDRDVDJMeTcxSWIxaUVSaWVIUDVsN0cvZjg1TlB6dzhQREREdys3bk03aDRlRkR3ODdiSHo3a2NoNXlQdnp3dzg1RGgyNGZHM3Y0OEpqanU4SWJLYWZYQ2Y5dVBlSWFHL01jZ04vR25IM0Rya00zZEZuRHM4ZVBQM2I4K0d4NDFSbDJ3aitFQ0pwZi94''@;'; + put 'put ''MzZHbm1DN2MyYmRDR00wUkpDcUNhRENCR1dGVmdRck1LVVFxSFFLbXE4ZXAxU3RBYU1FY0Z0OGNXaThVaW54V3hTdVpmMm1tS0N3MkcxTkRWWnlCTTV3M2NkVnJQRFliWTZFRnBmUitQNE1ieElIdFM1VUFWQ09nRmVuMFowWGorODNBRHoybEVUdWlIelpPZnN6bVN6VmtXUVVpQ1lJTHhTaVRX''@;'; + put 'put ''YW1reU5ybG9RUmZWU1ZRVlJxL1VaQlNaRVM2YnNTUjk5d0Q1RWF2RndhVCtwNGE1a0kwSk5qUTMxTUkyOXpsWnJoUVViOWZuL3hJWUFGaU9pVzNRbjJFOGl3bjRpSXZzUjZZZjR2NkxYYXE4TkRnZnZnWi9qMnVQUjkydFBTSDlkbzMzdW51ZzkrS3V2OWo4Ri8vVy8ydjgwL05mL0trQXl0SDZX''@;'; + put 'put ''aE1uYnFCRjVVUnRxVHdiYkFpNm52YTdXYWpaVVZxakZHa1NVQUdhU0JqQ1EyeEJHK0VNQUVpdWFhdExyQlFDd1J3Vm9FZlA1RXhackxJUmowUUdjQVBTd1dFV2YzOXlJelFnZTE4QmJQQmFGQnlSOC9FajJwcjBkMDNzdjI5KzVzeXQ3MWE3MmlabkwzNWM3M05VYlNXSXltUnEvL0VveE9hemIz''@;'; + put 'put ''VCt0WDdQTlp6dTJ4OFgrL3BxNS90R2EzOVR0bk1mMmR2MVBOVU90dVpHUlVEQm1lZ3NXb2tUaDlmOG1iNUpuQUNPTWNEcGgxSXUrbFhteUZrNG9VSW1WRlJpcmxIZ1ZxWkJhbzFJZlFRb0ZXaWFZWWt3MWdGNVlyaEtKSUdpRktYdm1TVDkwQ1Yrd0M0S21ySis0WElWRjBTckMyVWJLOUNBRTJ0''@;'; + put 'put ''SnVxSHl2WGJ1U3Z2WjJoOE5rUXFpOXQ3MG5IbldFSGFGbW42bkoxRmhYYXpUb2RiQ1pHbCtOYUE0WU9FZ2puUUJLVXcxMjR3aDJHeWdzM1M2VjJXU0pvRTJmRCtEQ1oxK1liRzZaRElYWUsvN29jSzUxK05wNG9yVTEzdFdDWnlkYjhoOEYyTU5FSzE0S1pVTWRNNkhRVExoOUpvam4xcmJodTFP''@;'; + put 'put ''ZGtaRlV0RE9WT3hpY2FRL1R6NkJGTUo2S2RJN1FqMkIvQW1wWi94MDVTWjVGRGhRQVBqT1E3QTBIdlUwTjlYVzFGYmhDSUE2TUJKS21HSTZYZ1Z3dEdTVVFLWU1Nb0ZCYm05UFpGbXVMT2dQTzFqYVhTclFFbEg2VjIwWDNGRThVN3d3K3NzWVRWcFZvUmJBMUs5K2xJZUh6QTJyQlRrbHc5OUkx''@;'; + put 'put ''L1FlN3BtY2I2NE96bmNGMFlQdjIvdjN0alVNZG9mZm5QdGNWbitqdjhEVk5uaHp1R1p6dkYvZnNEKy9zVFIxMHQwejRncE9Cd0dSZ2NObzV2akkrMzNEbDBFbXlPeEtJajliSFc1cmpheTlucjV1MVo4SzlZNER6d0JmUWcrUkJWSU9DbVNkYkFGRXFLZXRoNTRzQkNYU0kvcmtJZitJbFNpSFR1''@;'; + put 'put ''NTYyZUFsc3h4RExzeDdSSkxwMzZ1MUdvMTB2dHVFZmtlT3RScnZkMkhxY0JLREh3UG9PbkNCZlJ0Vkk5VlMxRXJjSEdNdEtXTm4yck9Lang0NnROQzlzMzc3UXZQQ3pXMjc5NlVMcnpoYytjTzI1eFFDZEVPaDNCL2JMZlVYb3k4SGpUM0RBaFZpL0ZSamg1c1Z6MTM3Z2haMnRDeis5OVphZkxi''@;'; + put 'put ''Qyt2Zmc2dkVTK0Nqc1pUZzR1VG8wbi9QVldVUTJjS2QyUFVUVWMyaVMwQXVRbk55RWlZQ0tjb2l5V0g2UXdCU01zbzMxenMrMGhsME1wbWdJR3R1WjRRaVhDLzI2WHp3OS9KK0tEMk05L28yZHB0Y0QvUGo4N1lNNlFvUzN0US8raS9FNVVhYkdWL3diWTdLSmQvUllyMjRuNzYxbzFGaFRWdGMx''@;'; + put 'put ''V3BWSlZwVkJVMWdjRGdXQjlwVUpScFZJcHJNMjExUW9CcTdVVkZmbDJDdFdGMnVIcnFqWFdpRXJicURHNUdPTldWcXQwT3IxZXAxTlZLOVdpS0ZTN1RKcEdyU3BpMVZSZmVrc0cxeFE2U21wSUZGVWlYOUtOWURyRkF1QTlBQklMYUFWWUEwVVRCWjVtZkYybkV1c0MyRTBsYW94SzFnaXBlVEh6''@;'; + put 'put ''SXZ6RExTKyttSDdwSlRyZTlQcU42Q1cwSC9EUG1nUXlSK015K2dFUmVRd1UwNEE4WEFVeEo4NDBWMWxBeXRVN0hjR2pvVEFWZDBGMzQyQVhIYXNML1FyMzRpaFFibTNTekJCM29ZQzRlaDBkek9nME83dXdrRnZEMFVtMm4wbVF1OC9BL0pWVWc2QlBnQ05pYk1VVUJ5cFJoVWNBVmxVc1pZOUtF''@;'; + put 'put ''cllxTDEzeCttL1d6K0tIeU9zd3J6NVpRd2NGWVlKUDhna3BXOE16QzdrSEZzanI3NzZHbU16dEJiNXlMVGtIckxBSnRTVmJnS3V5SFhNT2drSFlzd1hvZ1BaMFRickdXZ3ZqbVNDTUFvck5QSkhFb2lGQUprcE1qVENUNm9PVGt4K2NuNFBYVytmNzlrV2orL3I2OXNWaSsvcXE5bnh4ZGZXQlBY''@;'; + put 'put ''c2VXRjM5NHA2SnlWdm41bTZkbUtDdkhBWjFsQlJBQjFBaGU3SVdqbElBZUtVNWg4ZFlpNmYwUmdZNjBaK0k2TjFQWCtkNlpEQkxack05SjlhMklkYS9BelpWQ2Z1eG9kYWt2Nm9TdGdQWVFFaWFnWk94UnFyRUxDRW1qL1JXajE4aDFnWUdNU1ZtdW5xVjZJOUx6RkNMNFh3NjNwa1lhaDcyZHUv''@;'; + put 'put ''eUpaWSszWGVvTjdQNE5GN0srWVorT0xBYWJlNTNkRVdDSCtyYzJ6ZDZZK2JlTkorL0dlQ3BoL2xiMEdDeXoxWUxjN2t3a0RTc0F3dFV1QU9WNHhXWVhiRU1DQXFMQWRtNnJNSktwVlZKVDdrRk5YczhUbzlYRkcxdzBwUzVSRHFwSEFyZ21OVWlDYVRDQ2tVSjlOKy90VG51UHRRL3NYUGYvR1I2''@;'; + put 'put ''ZlBmaVVIeUhQN3JuRTBPcnZabWUvc1crSzhlcWhtS1JVSFNpdDI5Z0F1T2g3dmhZWnpoOGZYZ2hQakNucjlrKzByMDd3bkdoR1Y0R0FQWVZ3T1dDeWRZcTRFazRyVkxDSGpBQy9mVXdnSStKWEsxaXFyS3lzcnF5R3VqS29LTnI5VHI5T0tLbkdxdzdwc2Y0enR3akZYaGg5K3BxTnZmN1B4L0Ny''@;'; + put 'put ''K1FHeC8vODEvaGc3ajRPb3k2QVVTUE0wNGo2a3QwbWpCWGFHb0VvNE56VENGNlJBb1M4SUpBbEx1RTNBcWdSTmJqMFJxOUhCcEFsMGlrSlk5RlA2VW1NNXhIeVo5Y0hJenN2RDZkYjlrN01qWGRYNEh0eVo4V1JtY0hWL3NIM2pWWDFSTHIzTjQ4Rmh1ZGk5ZmhBK3ZWUTVNQndhclVMWU5BSGE0''@;'; + put 'put ''dkErVFdnVnNxdERYbzRPMzhkVVNwSVdnVnNSYUVVRktzb0wyWkZXSmpNSVJwQnIyeHNiV3p4dXFGenZkZnJVNFBlaHFURlVLNUJpUVhFRENlU0JrQzVpRUZXSkVSS01YY2RIUmk0YXV6Mlc5STNUL2Z0YXdsNEprTHgzVEhIU3I4bjA3eHZmR2lwV3JjNGloK0RoUTRlNmZ2S3ZTdC9jYUMxdWQv''@;'; + put 'put ''dG5ibGptNll6a2Z0SWNNSS9DdHVjTzBEbERaeGpGYU9ocG1TOUFnaUlVUkRsUFpqcDhLQUZnL1pEMVVyc2pEbk53QlNleU4yRnY1LzcwVzZ5a3U1ZHU0dnFHMUdBUXl2QXdRNXc2RUVqeVNHVGlnQ0hUWXRGUUpBNGhScUFnT0dNR0tjSUJPcnJFUXIwQkxvakhmV3Q5UzBlRnd4UjE2YWhyS3Vj''@;'; + put 'put ''eGlIQng1QW5RTW85ck5LZi9ockNtTWtiN3g5ZVNBMU1ERjNSUDNERlVLWjNlR0g0eEpobkl0d3lIaGphMVQ3dUJwVXBQdXZ6emNaQnFhcHFYK3dlMkd1dTNkYWRtRzhMemlkNlp5Mld2ZjNkaSszNEU0MXhyeXZlTkJMeHhSdEk3bmxIdDlmZjU4VFkyZWYzZGpzWS9tODZlNGNCanIxQ0F6WUVn''@;'; + put 'put ''VzByZ1hDVlpCWFFYNEM5Q29JbFV5UWQ1TE9IM2NMWis3eGVkdllXNmVnNUhRL2dma3ovbFBadm9KRGc3TklTd1UrVm5Qb2d3NFlVTy9ZT2lnSGszT1pUNTdpUSt3ZzlkbmIrc0FjbVEvQTZ5QXNyNWVlVWY3TkY2cm54cHVUR1cxVVZRbFhXS290Qnh3UUw1ZWVHSXNGQ3lnZ1pxL1NPNzVhbFRl''@;'; + put 'put ''NkEvQnZZZEV4MjRuV3c2YlF3bVlqMFFNYjNJODBaakovRDl6OFpDVkM2VDZDZE9FY1dBUzlWVDZrSTZGREdtTmRjamMwSjRCQzM0ZE80cC9jWFk4OC9QODdPSW9YT2tScjhUNENKSW5JbG15aitVbE1PRkNTQkxFZ3NuQWhVdHVzb0I2ZTBULzlQNFcvbll1em5uOUtmVE1PY1UyZ25NY3B6Q2pC''@;'; + put 'put ''bklvaGpTck55Q3ArR09WL0pkZC8vL1BOanYrajlCWjNUdnY0Ny9CcWNmeTN5b0VReWFxbXFwR3dQVTdZdHdNUTNGY2tReXNDVldLR3dLcVpzTnB2SDV2YldldndxdWhCWkRoYjRkQTBHMjYxWWJqL1hzeWZpSEdpT3pua2plLzlvWUg4MHNxZG5SaStEOTVUUzArVm9Tamc3ZzVFVDdkc2piYk85''@;'; + put 'put ''VmJjVW1jOTBuVzNyZHdtam9DY1BvaXgrSnZOa0JXaktCcWVEcUlYaEpvT2dVUGYxRWtEUU5CaGJWUnMrMFJSOVl0cWlUN25tdTNidDRwTTBWMnFJQW1TQ2luSm9WUVVHcmZJZ2toZ2dNQmExV2xnR3dPalZVOUxVUVRDOEZWaXppQzYxaytrOVR0TDBoMHhDRFlzQUhLaGFJNmhYTDlwWkNZWkhC''@;'; + put 'put ''eFZDQWxLdWJ0MUxGRldBWXlweG1YV2YyVVgvUzlZbWt3Z2xzOG5waVRFNHF3R2ZyOVhyOGZtcVJIdUo4dVNpTmxhUmtBQWpySU5abDUweVg1VFVxazVtcm9BQm11RGFnTVErUnA0ODh2NFhyejcwMk9Ib1hDalVyMjZjNzVoY1NoM3I2UncxVktmMEhrOWpZN2QzNmI0OUs0K3Y3dnZDM29HRENV''@;'; + put 'put ''UFBWU1BOTzlVNEhndG13LzJSazRjZk8vUytGNDhmZUdnNWUyVTgxT3dQNzU4ZU9aRUtlb2FWQzJldFRlNld4ZUdGVHkydVByR3k1NzZsZXFmZDYxaTdiRXJVUm5xaU96cGlReFFmQVMzSkQwRGVpS0E1QkpMTkdneHdTUU4xQUxrb1FHdWdZbHpBVEh0VHE5VVY2Z3F1anRlQzFpQXlVOXRmaVVs''@;'; + put 'put ''Mzd0YlJCUnltLzFidS84Szk5NUluMXJiOUt6NmErd3pBZkIrTWZ4ekcxNEZXNTBMOXlSNlFPRENEQ2pnQ3lHVWxWYWNrQjVXSXVkWlA1N0xYR2ZUT3BqcVgzVlZyMGRzTXRqYUhtaW5kR3dXUEUwc0tsdGtvLzdJUDl5WjJ0SGQwOUExRmwzcHp6Mk4vOStSazk0OS9tZHkyTGZsTDhrUmJ0aU02''@;'; + put 'put ''MXRDNHB5dStveDNmTmREZVB2Q1QzTG54cnE3eEhOTnRxTno4S0pNaG9XU2d6bFpaUVhFa0xZc0t5d1lYR2p4ZzBzSkhYV2g1bE1pckNNVUhqaE1QN3QvLzROTFlMUjB4MzBwaThuUW1jM295c2VLTGRkd3lWZ1hudHZ6Z2dVUm52Q1UwZlZ0bTZvUFpVRXU4ZytveUZHNHZNSDNPekN5a1BKaVlv''@;'; + put 'put ''MEFDVTFXbHlWQnByakw3d0xvRThNZ29HY0FKQ2ZjQ1dML3ZqV09QTEM4L2N1eU5OeFp1ejJSdVgvZ3NlV0xudlFjUDNyZHpmT3pVek15Tlkycy9aM3VmZ2ZuNllMNUtGRTYyeVJ5YjZtNktKUkNiTmNXYU43Tm9Lcm5IRFZRNW8xbmkzM3FuK2ZQNG10eEg4ZWR6UnZ3V1dmbEYrdC9UNUFsSnQ1''@;'; + put 'put ''YkgxNkNXcEU4ZW4zSmhOcXFzMnNBSEdxU2hJek4rekVaMXkrUE84RUZ6ci9CQitYbmREK2ZsUkxGa0o1aEpTR2dpUktGa0JvTlNnUmh5a1dVWTJVSTFYOGIrUWNzeHdxRzV1VW5wMUJjSjlkTERpN254WGRqWWZ2ZkVFanZBaVUrRlk5N3J1dmtCdHEvNnZvRXZ6LzIydlpzZllYZDczTi9PajlE''@;'; + put 'put ''ZDhGQmh6N2N3bVBxVEhrazlYZ0dkbk82WCtzdTBhRE1zTWQwdC9FVGdsZHlTelYyUnplSlBVM0xDM1hUYnViL0JiWHhjZEIvejhScXBZNlZnWDNIVEZJeXJtV3lXOXFJMkdjakZ2MmIwQjFqRVRCbUcwVXc1SjhzQ0lKT1ZnVjJIdEVhdkFyb1hUQmRZQmFXeUp6L1ExRzFhRFBkbnM0bURnMVhK''@;'; + put 'put ''enE1QTE5NUovRnF1WStSWUg5L24zdncrSGNrR2pWcEptT1RGekNNb2NNK3QwV0Rnc2o2aXh4RU4wQVNJMWIxWnZIYzE5M01jWGNtOWN3eldtL3NRUHBYN2E4Q2Y1UHRmWmVPT3dMZ2FHRmRKZFdHMmFEb2FKUTBKZEVxazFPdnBvcjJBSnhFOTBlUjZzMm5BdWJYUHNmNlVobjVmV0pkWVpsMG12''@;'; + put 'put ''Ynd1RFJoQmJuMGxuTUMrTEZwSDY5bnMranBkbEJQL2ZHMGJFZG43LzZEOHVBOHhYRzVNMmtWQ1NrWTE1RWZGc0N3M0d4TS9tczNtZHRCaitUNEp3NGpodGU5VC9rdHgrTGYvUDJ4NHpuVDJQYkIvL3dQN0prK24wNmNuT2VKS0xPZkFnOHZMRHgyWXlINXdLblBiTk1kYnBwOVFuRDBJZTZzQ3Zn''@;'; + put 'put ''TldPS3dDU0ZYQTFDVlRDQ1RBRm11cVRZWnFjNDFaNzNPb2FCREJtZWM5WnJmTWx2VXoyRHAyTXBVNk9YWStpelVMcTZzTDU4Z1RYU3VEZ3l0ZGIrT2g3TWhJTnZlVFloaVlhQndtMlVrZCswcWlBck5TSU5RMVdqRFpGRVdlVWJQWjNHSnVEdnY4bEFHREVMZUsvbUppcG83MWVNS2ZzRzRTd3VT''@;'; + put 'put ''M3pkN3B6dG53OGY0bEdVQzVWN2U3citpOHFxNGhEeU5jZjNVNDFUUG1EK1JobGZ1WHB2cWxubVhQWXFnWVhFWHdxb0UxZ2Z3RWdhSEFzaW04QXBxSXhONGtjdmQ0bkhxOWtmSWV1bUszSDJ4dVBZT2NVdllWa0lOSDVyKzA2L0d6V1FhNlhNODVCalo4MndsRDd1MjNHZlErU1FFbitUWC9pNFRK''@;'; + put 'put ''bHdGcUlLOXFyUVFrTnNGRjRLTE81eUo1MVlLYXZVRVBCWmRGdG1xb0Z6UkVTdGdmOXljQ09POTdYMGY0cXBISWhIZnhzc3lCV04vUm9jbHJJdTF0aDJJdEk3NGRCNjg2a2JocXV2TEsvbkRVbVhCRUUxWkRXNlk3dmpzYUNmZTNocHlKcG81SWJkMnU3VjI3bzJ5dFFZRFRKTk16dUc4b2I5Snla''@;'; + put 'put ''NDVrQ21BMzJMUnVvQmpUNjZUKzlTeVl0R21KbG5jQWpud0srcHVSTTlrb0JSc3dMdDZlR1psTUhwTXNqaW56a3ZZbzhUSHN1bTB5RzEvdTYxdU9aeWR2bTYrYXVtTUgvbVR1cXFIVm5wN1ZJZnJiamp1bU9IM0xPcEdLenFWa05qaHdUb2xwY3M0REpnbm5QSlNYQWU4Z1A4aDlmd0grWVJCcGxQ''@;'; + put 'put ''UEN6eGt5QTJONUVWS1lHRDNCV0JXVTl3T3pvS0V0SnNyWjVvRmJHSFJLS2tramRrei9DZTVLN1BidS9Pclp4Yk5mM2ZtcjZhKzlPQTNEL1ExcFl6L2J5T1RhczN5ZElFZkozWXkvQVgvVXFHQm9PSDdLZ21veW1PT2J3V0RRVTdqQ0ttRklEUnNkWkpxNC8rLytiaG1MdWY5aDd6dHpmNEZ0dWRm''@;'; + put 'put ''eEl2ejJPcmJ4c1EwdzlzZGdiRFZxU05hcEJLRERQSk9UdkJBR0Z0eVN4b1FqOCtkK2RlQ25QOStYZTNNTzErTFA1SjdDMDdtanVUZm9XRDB3MXJncyt5azhDMjY5dkY4ajc5WXo2Tm1LRTl5OUFRcEFEK2dUUnduSkhjQVBydjEyZ1BqVEEycy81dkovMi9ySGNELzUyU1ZhbVJGQUxQalo5dWFq''@;'; + put 'put ''ajc1SmZ0YTk1dXlHSHV2dnJKL0ZUMnpoY3hWQXYxVXU0R1h1Y3NXb0ErWnJ5TThuK3dPcGFrYjl3M1ErVkpqUENvdy9CajhkTU4yYlBlVG4zZTgrUVllUDQvdncweHkzenFnT2pTUXR3T0dabHhSbXBoN2prNUozNTR3S2pSZ2pScmRmZFArbzk0R2htMjVPZ2l6NjlULzhBMTF6YnYzOVpHNzlH''@;'; + put 'put ''WmpPd2NiWXdrZE5oeEFCZ0lSc1gvdXJUSXFmNnlCSllwRjhEL3BhV2Q4cTZEa0JuNXcwZ0VqbXN5YXM3c0daNjN2SVZ3MmY0RHl1RTNTSTN4QTlzaU0vK2tIU1pNT0NvaGFFZ2g0MCthWkdwYUJTS3RMY3lIUkFZNldLVUdNTGJHeXEwTnN5YXF4U29XVUpIeVhqMGxPbUhTVXQxbGpXMHlTYjh1''@;'; + put 'put ''SmpYdHB3MUtnelUvOVd2Yi9lNTNKUXo1Ykg2elpxNEtpUXhReG5WV1RFV1F2ZVdnT29nWEs0RU45K1JjYStFcCsvUExHVXlPNU9UcmtuQTQySGRsZ08xa3pOOXM1UGRoSDlOUWR5MzlqVzFyRTcwemtUYURBT0x0b3MvWjA1YjNka3h0d1hDaWVRRko4bkV5RHJER0FOUFhkV1cwR1VJQzg0OUJv''@;'; + put 'put ''QWFYV1p2SlBLSm5rbzZUYXRlZEE1TnplaXF0OEdYNllFdDR1TWRna0RVWWlaakVhRWpDNmowMjZESllQczJ1UVo5Vk9pMHN2dTBHTDk0NzRyQndhdVRQVWZhTXhrR2cvMGUyYmEybVk2TzJmYjJtWTdpWDcweG16MjFHaDM5QUE1bC91M2FIZk9COFphNzk1b2RHOXY3MUtVNDJrNzROemJnSFBs''@;'; + put 'put ''YlRIYjFyYVk1WUsyMkgrZG1wdzhOUjVkOWticlJueVJ4UWo4ODQzWm85NERzYXIwNlltSlUrbG1UNlRla2RnWFR5eDFPUnNqM2xaNlpuRTRzMEQrelBSQzhabFIyREV3TWtPakdNb0ZkSGR1YnNTUVUyU3UxdzI0ZnBIUkxtR2cwak16K054NmVtWllRdkVDZVBSa3MyNFVvRWVWa2cvdUZEdXRU''@;'; + put 'put ''blp5NU56YTZJRm85K2lwYlBaR09EaHNYVHUxK2N3SVBUUGlnVE16bzNwcTZRT1BGd2hUaG9pZ0lDdjVaZG95cWlJOXptSUJiYmZlWXJmVlVnbHU4REgzcTRlZlZtR3haaWRkbjBwMHduTHh3YVhha1BNRFhhUFhUWTVlTTNyeTF0d3U5VXBtOGxBRjNxdmVrVTU0NmpvOGJXT25wek9ueHI1NDUv''@;'; + put 'put ''UmwrRE43MHVrOUhLZEFGdVB0d1Bzc2FIZXlRb3RWU2gxR0twTG0yU3IxU0tWU0xvUEdWc3NjSG1oSmdTWFBLOHRRcVFOalF3VmNaclgwdzEzSkNvK2J4U2xGMGM3bGpKdnlmdVkwNUVpb01yOTA4ODJaYmR2R0UvRldyNlplYjNVU1pTbzNnTCtlR3U5Sk94T2FLbTg5MDRPM2t4YUFIODNSK0hh''@;'; + put 'put ''eXFsRkhWRXFObXZtd0pmNEtEQTFram9xc1VzMXlXVlFRaVhBWk1JMEYvcHB2UjVraHJKTzJScVZ0VFpjMDVxVU54L2lyQTFRbm5xa0JtMmp5ZWIwZXlsK3h2dGlYSHQvZ1NnYzhqSlhnWWN2UWlYVC8xUjVuNDg3MlhZY0FKVWVQOWZjZkc5Mk1rc3BjNS9CcWo2K3B0OEd4ZldwN2Uyenc2dkh4''@;'; + put 'put ''cXdkaTdidHloMExib3BGdG9kQzJTSFJiaUovOU5DQ29BbWpZVEtOakJoNVhZYlFFQ2p2ekJ0dUtUSEpBUkwzSmJhSStDTXJxNERnbGY1MWU0bmI0aGwwZG1ZbnV3R1JiSm1OZGloTjlaRTlQN2xrOE9EanJHWERubmdXMjluWnJqTkhFSUx4K2tmdzE2R2hhNmdYSSsvUnJLZkxvTTdKSFJWdFRY''@;'; + put 'put ''Y1hjK2NwTjdud1JWSWk5RFExbVUwT0R5WmZKa0lPTkp2cXJxWEhmMmpzdy92b3I2MWxwZkR1bE9TM0k1UnBRUVVsYVdUU1RJREJjVmV4WHdVYnRDaDVDc0ZmVldTMUdQWnRWTEFraUZEc0JWUGtWWEJYVVZsVjV0YmFtekhpaXNKUjNmNlVSQjVRcVR3T0pySDIzaCt0bXdKcFlMTFVTdVpNT2pR''@;'; + put 'put ''TG9YV0NtaVk2dlJ0WlA5VWFtN1dHcTZEQlJBckJ0L3NtK3A1WXlHV3pmajJ0emIveHk3NTBBempiY3lNK1JIczluWUZ6Wjk2RXI4WDFNQVpTQVcvRzJRZ1RveVkzKzlLeWpqcmsrT0IxWktCRXJsOVdpU2xBcTlSa0ZqVFFYMkRXUU9qeWtUVlRRaEtoVXR1SVdwZ3YwdjFCWFNoOTB3VzdrY3V1''@;'; + put 'put ''TmJxUGJwQUZ1VVlSZXFnMi9STXljT09DVlBMazluRWxGQjdMOEpXT2FpZlRzTk92MjloYWhYYWJvblNpbldzSzlrYzYrQXQ1VG52emhaemphY3hBWW1mV2twTlN1bHpGZjJyK1Y0MHNKWVVpYkw5dHp5MDUwMjlVWEl5bnpKWkNVY2g0b2lzdVljZGpQSm4rSjdhTCtFc3VGL1NWY01SaS9jWEx5''@;'; + put 'put ''eHZGT3FoZDBjdTFBVWd2U3B5WW1UcWRUWFV1SitMNEVWdytRcE05dEIzMU9YMTZmbzNKYUJXSVFDTDJnV0ZFZ0dYR3hQcWN2VmRNMk5qUmRmTFJMR09pUzlEbjVPUDRnZlM3M1czTG1RRGw5anVwUTIwR0gwcGZWb1FvN3N4VXBNNWtOSW8ycFB2cE5xdEhtaHFhTGozWUpBMTFRaDlKZlRIWmRR''@;'; + put 'put ''SWRTcnMzZzZvSVNkU0RYV2FyM3pzUExZWUJURmJyK0daN0V3WUdrWjZKV3dKTHVTM1VTRGhpelRIZ0Z4WmgvYUNyZmE0c09zT216ZWhPM3ZRM3hpRGxQbXM5Y1B0NnpKd0xzK0cvNlU3Q0ozTTlwMEFhaklPam5MOEk2ZmFnakdUTERRaTFnYkNOUzhOYlpOcnVmZk1qckNYRDNFMC8raUxNMEFU''@;'; + put 'put ''blR6U3I2NUF5Q1JrSmwwSGVPaC95N2RrUUdYWkhnY3Zid1RIaC9xMmQ2SXRSWEYrMUtqSVN1bUt0cTlpYUcycngxYmxPMWZTZ3hPdDlrNytsbzlvQW1hZEE3dWtOak82aStCMnZjVHU0R2ZTK2NiTE5nRlpQNVJMaU5pa2F5UkFNcEFBZXdKUGR6VFpUcGNFWW5WZUs4TkRzdnBwZlN6VUF3MFhC''@;'; + put 'put ''ZVBJRzN0OFlUNDl1MlpXNisyV25WMTJ2TXpuUVBUcWYrK0k5VHViUDEzaW9ObFRuQW53QzVHYjhWYUVLYnpHK0JZVW9DZjdONVlKVS9vc284a3JJSEMwWkIyWjViZGlyd1c3UGI1R1pobENMTm4wcHpIcGpVRTRHeTJTNlo2UUp5dmdNY0ZwZ3Vuc3k5eEpndW5vVDkySUY0YTRsU3p1bVN2VUN5''@;'; + put 'put ''N3FzM01HK0ZrYnV0N052LzZwSHRQNTRBeld3ZVAwYjFFd3ppRGdrTzZGL3EvOUpmMlAvbG5yMzFZME1mdTNYMjhmRTdQem9PSXk3akIralAyanY0dnR6QmdwOU9oTEZaRG1HRnFNQUtLdCtvRndYR0ZraFJnTVZnTUZERWMvcEZ0OUVmc1NZaW9oRS84Ymw3ZDM3enhaMmZ1bnZuMTE1NTlWV3NY''@;'; + put 'put ''bnY1NWJYYzcrbTRqZXRUeEFYajZxbXVXS2tHdklZaEFibWxvU2xlNzZkcnR6TzgxaU9kd2VTVzNLb1VUUWF4d0haUmc4VmpYa09kdTg2bGJmeW4rV2YrY3R1YmRWT0pwL1hKYWxOZGtvaTVPZno0Mmt2SmJzejNFb2VYVjJIT0xYeGsrZ3Y3eU9LNEkvZTMrQk81VjNFMGQ2UVgzemJlbXpzOXpz''@;'; + put 'put ''WU5yTy9HZThuendIVUJSamFtQU9nd25uQ3hERWxvc0NneEFveG05QmFxUWlsQ3VCK0RiSTVSUlozbXFsdHJpTm5LZzY0aXBVNFJheGE5d1ZnczZGMmNWdlgzV3JEWDUvTmlhMitmNnZQTkk3R1BkYllsZ3AxM3hWUE42cGltcnEzbEU2RkVkVTBpOVBIV29FMFRnMW11WEQrTEh0bkMzMGExdHl2''@;'; + put 'put ''NytxUUVSK3JmM28yWDJkcWJrMTQxODVQcE1ZSzE0L0ZDT3ZFeUJkVU1yUVlnb2lsZ0JiSHU1NGxLQ2NwZEVvMmtBUVBLbTEwcWVJY1RDZlgxV3ZtS0xiMzlxdW44VG81cmJNSFdqNGNTTmRXSjBDZGEydW8wTVhWektuNVhaekRSMXZteDJFaXplbjBkRGVCV2ZETitWQy9pNnZXMTNGdEljd2Jo''@;'; + put 'put ''NTNKdnNRd1pLdVBtMW5lZ3J4SzlyT3V6MVZHRnhKYVJjK0tNcEVUWFovbzJUMHdGclREeWVTbVhKTGpYRkNONk9YZGtiUlQvV3JheHorSzN5VFNxUTA2S0tZME5kVGFyeFdUVVZTdEpGWS90d2F3TFV0a0hxSDkxTE9lU2x5QndUejh0UHFESENMSWVyR3lQeFFvaXpZeC9PQmZLOWgzczdqN1ls''@;'; + put 'put ''dzNPT3FOdEE0T2hhTzdEMmQ3ZXJLdFpPWmlxbmo0K09IaDh1bXFvWCtsdmluUm9jbGRXZGtaT1hXbkVkeGl2VFBIOElFVDZRUyt2UjZsa0VvNlRKcHdoa2VhMWkzaFNpUWt3WDVHd01CSXpIV25tbVNpeWlCSW4wbnBVVDNNRHdSNmdhckhYN0l3bFdMWnZzU3NIanBDbUtaTCt0Zjg3TkRDUU9E''@;'; + put 'put ''ZzRlbTF0ZC9XT1JILzJXOTlLcDMyZWM2azdSbzcxU1JIS08xTG5pdjNZRnRTZGpKc3cwdUMwR2hhR0tTYzdyTUlFMUViUVpGY3FXSmtKejQrMG1JMEd1YVJFVjBtTFNsaDVqMWxPUUlZZlJ1RDRzNCsvOXRwcmMvRHorTytvNXh0UHBtWlRKMDdBQ3o1TTNkL2MvaU1MZUE4NXczSzZPcG5IMVUr''@;'; + put 'put ''VG5BRjVXUkJrV1NsUVFPR1pNbGxkMUJsYmJKUjFGdjIrMjA3ejVPM0d4NlIzc21BM0d1cnJEZlIzL2c3NDJvYWkrSWY0UlowTEIxUklKK0FBK283a0E1N0QxNUE3TDhWL1RIT3pCbkU4OXkxeVorSlMvY2RXMGYzY3pCLzNrTzhaYnVLOHpiLytLbDZITTlCU1d4QWhwaWpjUk1YdkI2bmdZaUVB''@;'; + put 'put ''RmdMeU1TbUFKZldxbDJwYk5CWlVNM3FrcCt2Z1lHN2dtZ0hjMHJHenUzdFg1MW9UK2ZPMVhUeEcvRlAwbDNnRWdOYVl0QmR4QlVMWnhVeFI4blc4Q0hxWE5UWmF6STJONXA4Mldpd05EUmFMWkZzT3JpZlIvOUFNYm5RdDI1dk9hZ0k4TnRJc1FqWGx4Mmt1cngxZzRJQmdWMXhOTTh1QVM2OFdH''@;'; + put 'put ''T2wrT3N3c0tKbXNDV0RXVFZ1MTRWTGFobXhHajhkRHBUUUZIYy9pZCtYVkk1WWFDOElxSHZuZi9xNVdXMWhuYkFBTngyUTAxZWljMFZxRkdQUTJlSUs2cWxhcldhODFWdXF6VkpqQXVVZmgzSC9HenIxTnBPZmVocjRyNVo2bDhUOHkvdVJCUGNtRXE5WmFwU0E4WEVrUVhTdERTTTZ3UU5yc1I1''@;'; + put 'put ''S0k4N2p0TnJNeGo1ZW9tR1ZKV1o3VXZhcVNGV1BnTUxoVDRtUE5aZkxsQ253dGQxMlpqRG0yQnhhREUyN1F1V0N0TkNjeGhmNEVQWXJVWndoKzhsSEdjTXUwT1lycnQyaHpRbTZEUmZUVUZtMVc4MjJxMFdlMmFMTW5QOWRoOUZlOERkbmM1aHY1Y1NyUkR6YTI0ZmxXd25sR0N3WTBsa3pwS1h1''@;'; + put 'put ''a2NGY2pERXhJRGNlZ1ZxeG9nRGVxbGtBMWxVSmpTcTRvTWF2V29ETkFaNjNFbnlxQldXSTVBU2RHYzdKQUlRRHJLaUFuNHVSK3YzczN2b3MwNUl3LzVSazVORDBybmJzVjM1eTdsZWZRSkZuT1V4eTlrNnlQeC93K2hhaXFFd0FyYkZyQTN4b01MMms3SVA4a3gzMmFmZ0lNNjJwNFFZcXJaSmVw''@;'; + put 'put ''SllPQW1VdTJKb2k2L2JCcWU5NElDZEkrQ0N0dXV0Uk9idWdVMnRCSk9IV3hYc25BNWc0MDdaTWNLdE9QVzNpVlBtOHJrSjRSREx0NmtJOWFMRE9IemVSWEpqNHVJVHhaK3NCUWpVSnMzRXlidFRzK3VhTmN3bGM0b1hEaGpTVGJyVGwwNzY2U0REREFKWll2eFhDN1djTC8yeGt1NFNLYzNOem1L''@;'; + put 'put ''SHAyaXpZbjVEYUEvN2RzMFdaUGZwekQ2SHJlcG9EYjYxUnkzTWZtYXVQcldmOVl1WEd3bzZqTlVlQnZtOXFzL3p1TXM4N1cwOGJYcy81a1NSc2FORmF3OWZCeERxOC9zbkU5UUVjME1QTnRsbmZSUUNzUk5tb1lTMnBNa3k0MFJTcUdWZ3R2RGRwNlZqWnFobTdWSUc4cUNyNFBaaVZGOUxMZkE0''@;'; + put 'put ''Z3FJb0xReHkvejVMblJVVGw5N2x2NGZENkZEbmVuY2R2YW4vSkV1bCttL3hOZ3dIS0RHQy9wa0hqSi9TVndZdmt1REU2ZDB0aytWc0p2TnJjNWloTmJ0RGtodDRHemZYV0xOcXY1TnRYb1MxdTAyWk9mNnpCNlpSUGZ3bWdPZlJKL200QXBoVlJQcVduK04yaVFmcUFPZjhLYXNPS1JPMkozZkRq''@;'; + put 'put ''Mllmb3ZpbWZZRy9zamh1UjZoTit5dWg0M0NtSlJNb2d0V0VFQ3JRMzF0aXFWVXFIQlNKbFBlNllmQ1VVZllXVSs3N2xzcjdJZDhwblB0Y3pWUTlNaUxCbFZtWWlxZytjZlN2NGdDNCtEcWtvRHFsdVBjL0VoS01PcEFXNFQ5TFQ1akg0anF4RXFsQmlJN2tUQm93VGlIbG1zbUR0SEVVL1J3WllJ''@;'; + put 'put ''ZVRHeS80RjlYWmNISXdzN1F4SGdMdDJYdDhHdmE3L3hPUEFWNDR2QVpQRHUwMm1QSTNmUCtDS3huUjVaZnVpQXg5V3owbkY2RkxnTC9TMzM5L3Q5K1A0NDhKamN2MlEvT0JYWjc4c2RpQ04yL2l5M2h1RmFsNFNQVDVmZzdPWTJSOUcvYnRIbWhOd0c4UEdKTGRyc3lZOXpHUDNGWmw3RGRYWTJW''@;'; + put 'put ''NTgwMTBzYng5bVVkeFZpekYrcHdNb1ZGWmFpamZuQ1loQ2JXb3RKYTlWWjlUNm5UdVNaSUpHaWJEVnZQbHR0OXBXU2JMWHJlYnJhVGQrVXM5VW9MV3lIdVhYa1pkUkNmVjhWWUVBd0ZZcm1xNjNLdWVjc3ZJT1hWRHgxMnVoMWVwd0JOd3NQNW4zUW9yeUVXTDVPTEY4UVJVTUEyMW11VXV3eWxz''@;'; + put 'put ''cThtS0lwekttRXQ5YzEyZDA5bVNVMTBmbFFhRDU2cEp0bk00L1RMT1p4WjhJUlM0M0cxOWI1dWZLOGplOEJIRWRBY1NBb2RhamNjd0hnZTAvUjgvTnlleXd1RjdmL1N2NTVkYXI0K1puOCtJZDNGajBYN1BuMmxUY2p4Z2ZndWZCbm9IKzJvUWhLb2lQSmxRYUFuYXNlTkJ3enJsQjNZVldGQnBS''@;'; + put 'put ''bVVhV2tWUnNWS2xLeGl0UklKYXBWSzlVYUlsZHQyREkxbFZVQ2xlVVMrVVdqd1NCQzBXUjBzTGM3R0FsMnRvZGhnb0FCcU0zcjhXb0I1SEl3ZVVPZWZsR0tCNCt5Ykl3eEkxcnhJK2Q5a0IveGdQUFFTWS96NU1pK294dlNQMGFYclo3TCt6ZEZvWE4zVHJiUnBKRDBFSTlIRDNiRmh4YXpSVmto''@;'; + put 'put ''aVk2T1JDRThuVHZTTXRMc00vZUYydU04OXlISmNoL2lXSkdzYnc4N0hRcWxJZ3FtaUpnM1JSUnBNMWJKT2xrUVRHa1ZuTmJWTEVaN2xXeGkyMmljVnJVTUNoQUxBREF2cHozUHpVS3NrMHFrZGN1WDFvdHFaZUdOdmZDcGkzVkx0cFgwb0lZUU9sU21veW9mSTR1anVKbXJaOVFab0hpUGFsa05w''@;'; + put 'put ''c29jUGxLaWxpV1BEWlJML25BdHRtdExiS2x1emZRMXd5WDVJSzRXd2MxdExKN3JRR2xvZ3RQV1Zhak1jMHBiWHloNmZsNXVqOFdqeGUzUDVNYzVmQmw3dnY0S3ZOM0R4bm1Wai85aDNqNEQwTE1YUFQ5cTR1My9EN3o5WHpiK3Ezejh2K1RQLzVtK3NmRjUrOE1Qb1h5OVhJSjhCN1NuSU5xZE5P''@;'; + put 'put ''cVlxN3FobnQxcVlUSWFLdkJFNXNrNkd1cVUvZm42RGRtMzlxU0pwcitCTkZ3dGZneFdiV05qWTdDeHplZnhlV2xOZ2l6a1pQbG05VkdsZ2QyRmtiQ0ttNE1uK0I4WGt5Y20weWVIK2k1UEhSeHAyWGVEZlUvY1B0WGlPR2dmdDgyMEJXWmpuYk50d1cwUlV2V0Y1Ym1iSjFMWFppYmVuOXcyT3hj''@;'; + put 'put ''ZmFHNDJORFhaMndZY2F6OXEzNUdJTG5TR0YyS0p4UTVhMjhiaW41UjNiZU84YTdFQTkzRUd4emtPM3h2TFBhZm45MWpSOC9OeWV5eGVXOXorSy9ubjFidUxuNS9KajMvNGZad0hwdEMxcEliNG1JL1FqaTdqOTNEUTVBL21oa0lLRVNzVnlvTXFPWGh2bzZFOUYwSXE1ckJhTGJSVEtoV0xRRVBL''@;'; + put 'put ''WmRaaFpsZlN3cXhEdTY0T2hKM3NZRlJUYTcwNG1RQ014T0ppTm15VXJQVFhhZG5kOStReXRoZGs4M3c4L1ZTaGVrM0l4MTZ0WU1XMjVQVTRFMmhrZmwrZHpWb0p1cGQ2Z3g0SEh3bEZIeFhyY2VWNmxlMVFSbyt6YmFuSEZjZjFMcTdIMmNycGNSY2NndWx4VHFlenhkbnNOZmdORy9TNFlqV09h''@;'; + put 'put ''bkVLcTVFcmNSYUs1WDRCNUlqTE8zbmorT3hJdzhLd3l3ZWNhR2FzY1NHVnU2bmxuWTQ0c0tKL1g0ejQzd2tuOENmM1JpWk9wME91YWM5eUJCaFEySjE5SjQ1OUx1QkIzK2xhU2d4MzUvN2VDZmpGNDB3VVQzZHkvRDNNOFc3amM0cS9mMXIwL0x6Y0hvc0hpdHVmeVk5eldNSmZIZ09oNCt5Vnh2''@;'; + put 'put ''bE1VYnliNThJTkp2dWtnSGY1WE1PaTJQT2xoSjMxZjNqWVdWZ3RtMGVZMzhjWmFSK3d2MTJveUZjVHlmdHpqa2gyV3JGZHhQV2JPL1A2elpGTWNkL0w4bjRlamFURGx2WjlMcThEYWJaenZ1dFlueGRjekI5dG8vQ3J4U3BCcE5GVHJDUkNXc1FxUkEzWnc4eWVZSmNlWldTTjBvaW1yRmFyeldy''@;'; + put 'put ''ejZQVjZzMU10MWdXVTNBdVg4UE5hUEs2c2RDWXFpZUJ5ZDNUMDFZL2s2L0pzemlaN28vN2Y3di9DSnhxNk81dnJQOHRLOUJ3MmU2TVJqN0pDUFNuUGQ1NE1BbjBIVUFKZnpvbXVucXBvOVpocWFDSUpoelNDV2dTeVZBZEErMURKWkY2MmpiTFF4blRSY1M0OFJKNER0TUFhUlRVUlYrVTdHR3hn''@;'; + put 'put ''NHF2VjNHZHBaYUhjalhsd3dkSU9BRTZ0MUF1VmRqSzl0MW5lNHdTVWUramIydG9TYlhHZnh3ajZhYk96UXF5WGp6R2VpRzJsbjVyMTh0bjZpdEtSeVNBOVpZdStOQ1Y1OVFwKzRMK1NVNVBwc1Z0YnE4WTI1U2JUZkdXR0JaOHU1Q2hML29DUE12dkxKOWxmLzFGaXgvSDhYTW9meGlUKzhHZEZm''@;'; + put 'put ''VS9JZmJFYXZiQkYzL05TWDRMVlhPZmhOWStzcjEvcWUwc0pYZEZjM0IrUmM5Qm1uTFhSQ2w2aEdtbWd6WE5DTlcwRWJTVGZFRkRzelVqTzN6MEdQS3NPUHZuN3N3WUYwYWpsc0x5UGlrK01CQ1ZhZ1lQUzVjdU5iUmthRWVLWHVHanp5VHF0VzdabWtvSjJZWkxEbXZkOVh1cjQ3MlZvaWtZR3U5''@;'; + put 'put ''M2VhbS94MDR3Rm4xc0tVN2xMVW56bEMzUFE1aXlWWTBNYjBsUWVmVFF6bFB0OWNhN0s1TnF6UmZtKy82c3ptVno3OGdidW12Y2JSdkord3lQb1dMbXpCdjMyenJ4K2UyUUJsZk01NGdyMDR5MzZ5cnF4QUcyK3p1c3FnVS9SV3RKNk5KNGMwWUhLb01mMGpnKzVBb1FTbjdpRVJGSHlubE9ScE0w''@;'; + put 'put ''d1pRbUkwNmlVdzQwbU42M0cwbE1TbEd0WTNUS2RXU1hXV2xUVU9zTnB5a0dKcmk3M2dsemh5dWluQStqTDI4RHJVbW1NOWlETGc2YTN4ZDJTTkxwZElDTnJNRkdxUUdNV1FkbWc1UkpPV2k2UFZLRElxUlFyTkJaYXNJYjRPV2ZrR3d0WWRwZFhic29BZ0ErVzYwRXprWFUrbjYvTkY2aDFHWHhl''@;'; + put 'put ''dDV0WlR4czNwTnFjVk0waU42S2NXbjA2djBXMVdyc2h3VG9FTm5CTDlrSEp3TlhXU2JzMkdYRWgyUnBzM1RZci9pN0x1QzdqZTFhWDhUMXZ0b3ZVa2wzRWFudVpqRzJWWk96TFpmeW9ORitheXRnMGw3RW5wYjY1dDJoZE1POExlS01sQnNrUENlMEZLNnBCSVNBSU1ha1BOaEcxV0d1bERpTjZW''@;'; + put 'put ''dzZhNEV3aFVFa0RNWUphc2FxUjlmQWFHajVRTGxlb2lGTEp3L25MUEp3dmNZWnd1UzRWV0tYUzg0Nm90SnZwdmM3MG5pZWhqTUlSRGxQWGQzZ2czSitJYVVQYVVLREY3YXl2TXh1cEM3eTJTallRS0E1d204RDZIcE8xc2FQZTduTzROY1k2dS9FL0xpbHZlNGV2MFJadHR6Yjc3VWFEZmR1bEpu''@;'; + put 'put ''R0RMVXVMbi9TTTMvQzR3SkgxZTB0aUJ6K0VObFdNMzNCNzk4aG5rSlFITTQvZUJKNWhwRmtUYXRDNGpEeS9ScjVXaDZkWGNUbnQwVnVjcklSTEZzeWdtOHFNNFUxS0d5WmRsak1ESmxlYnE4akRramJGOUNoWXhUeDZrY1g4blNpWjdEZWJpRUp3WW40TlVlR1VKVk5EbXlkZ2xoemlhQVFMM0tL''@;'; + put 'put ''dExwdVdiWlFYWktWbHhmS1M5a2s1QUROMGFVMFdhOGJMRjFmSUNWaXp3enJyMnpVaS9wKzFkNlNGQXAzUXVQMURoVGdMOEZmTkpqOHJ5K05HOXhCbFB0OWFYNUp2bmNsa2FQSVlqTGNYNk80V2tMc3VvQzlHZC9pSDNHY0J6L1dNSHJQUzgwK3o1NnkrbStrWllVblAwSmJRT0lBRU53aC9CRzFt''@;'; + put 'put ''cERZV2RKYTNPU3UzNFhYaTUrUnhZUHk3bUU2QWkzUUNPczRJYXpNanRmbVRqVzE0ZlFqcEJ4eXBwcG5GVlpVVkdqQkNCVFdSSytZM0ZaOVhvMnB6dnZoY2pGRWtTWmhGTStuUDljN1Baei95a1hRYW13T1pBSjdKL1hnOE0vNWJxZjZraHVYRU81SU5sUldpaWtwOHRWU1JyNU9LUzgzc3Nqb3Nn''@;'; + put 'put ''a1VrRFlwcjVqSlRVNWs1ZkZscjdwdFk3OC80OFhMdW02MEZuZWtoQnNNT0NUNy9XUUpEN2dQNW51UURvYnJhbzd3dm5NdEQ3THc2SkQ1SmVIdDRyaUI2dVQzQTZvV2l1VTdrWTF0cWRHNkx1YzduL1MzcUU2Z294aFRKeDVpT1NIb2gyU1FMeGhudGNwL0prY3RRdVZnWXJrSG5TMkx2bS93NXVP''@;'; + put 'put ''WmFidE9BR1NoOEg4N1VnQnBvemtQK1pnczF5Vjl0b2FFbC9ISnVIVE5VRzR6MUZoUEwrK1VLZ3EwUVk1ZFpJUTJ6RjlTcENGY1IxbDdlOThYOSs3KzREM0RBT0R0NU9wTStuZVpLd3VLZjdWdis0djcwMmorVHB1bGJNNW5yVWtqeXB3aEFHY0FsT2xBWDJwYk1XckZhUlYzZ1RKc0JWcTlVSzFh''@;'; + put 'put ''cU5FU2xrdjBWbFdLRlVPU3g2T3gwdVJEcTdPcE14S0t1RGxkN2F6T001VEI0ZkI1dk5TeDZvK083d01NTHd0K3hpWmtqcmdZSWJYS0ZsZHQ3L2VnNFM0MGZ2YzdyT2praUtRTzVxNHRTNVBIMUcydXYrbnJIZWRMOFdFL3ZLRlVMaXJQbTgvVllrbjV3a0oxclRNTGRyNVhnQk0rSHB1ZTZ3UDJk''@;'; + put 'put ''ODFKZndOR0RESGRqRW82K3lOdm4zcUw1MDFKNytyeXBhSzRUOGx5QXV4OHVPOWNWREhjWE9PN1c4N2xZblQxYloxeGE1MzBsZU0vem9lazZkL0IxSGtOU0RtT1MxZWdQMC95S1dMU3BVYUVVN1RUcnBrNEhhb2VXNVZmVWI1bGZJWXJNTlc3SmV3RXVKYi9pb3AzSzVsZGNwTmVXK1JXbC9hVDhD''@;'; + put 'put ''bSt3bWVaWEdGaCtCZmZKbDArdzhGM0tiUVFrSEZtWjBKWkx0dmpvWlJlOG8rQ1Bkc1lGOSthc2k4b0RGNzYxZ0o5ZGNEM0pjdHdIVVM3WjFJRkZWV2RUbzZBVU42YkhLQytRSGlQQnh2YUhISi90RHpvKzJ4OTRmTGFTNC9NRW1pOHRQUVpmTkprZnYzaGdxbXllVEhpZmIrc1UvK3lDc2lSYlJ1''@;'; + put 'put ''bHZ1a0RTZjRGV1Q4aTBDblIrZUF0YVBTL1RLbGJIOHVmTjdxaHdvaGVTT2xyaGpxelZJQm1xNkNXZ1V1NGZERUF6eTY5bTBWNXlpdm81cFVRdGpab3daWTRRdkIvRXVSM0xSOVZHdXlpUWNOTWw5VW0yYkdwTzd4a2crRkJKTHdXOUpGc1A2M1lpS3FSb0dxR1JtckxzR3MyeUowWGRBL1IyRGJ4''@;'; + put 'put ''Z0xITVk5ZFgweW8zUUpvaW44bGR3c0hxS0pLdW5DS05Ya3JZV3JCWmF6VVNqRHBvSTBlUWprOHEwVEFsS2hmSzJDa3pyVnpWWGd6QURNTlA2VVVGUUxLbDRGV2xKZERGWTZLUFdrSnN1MWluWldyNjlGR0VzNmlaUVdGRWJNSXpDck1yREN0Q2lMcE10UW91NHRQVER5a2dBdDVYaWNIZWhIc1Ji''@;'; + put 'put ''NzlXVlJoTEY4V2h4a1VqQ292YnlHQ0s3RTRYaGFrTEMxV3RLY0pYV3NQeWE2YTJMWEc4bHZTVzZMYytwaU9SektvNmd6NVhxMGN6UGYyZmV6MzlrdWpqMzR4djVuSTFLOUZwSlBnYnJ5K0w1TEtZQWJXNHRseE1DZXRtalpmc0dDbkVLWExNWFNmZTV6TFA3WER5b045bGxCdDVVRFNjTC9CUUxh''@;'; + put 'put ''ZW1HTFBsK2VCWkNLQmhJME1QanFYVjdQUHkrTEpaQnNjbHBzK242Ri9LcHlkdm10ZWE4WjhOeTJRZWtlMkRJRSt6V0YxMkQ1TXh3TmxqdWZWL3hwVEJTelNtc2RRNXNJQzk2bXpzSWFqUmdQS294RnJ5NDZMWkc2YW15OE5SVXB1M21abm52ZHIxVWtFUnJlYlp5YUR1a050VEhuQy82S2VQRHZ2''@;'; + put 'put ''QllGeCtHU29BS0R5M1liR2IxVUJ0ZDFCc0xpUXEyTVpuakR1bml1cUpNa2FIY1dqV3h1Y0lvYjQ0eVhLZDM1VEI2Nk9INVEzaXhCSTk1UFJIbDNic1pMb3JvSjBVNVF5ZmtuQ0Y0L3BHU3Zqd1dkRjZPQldGeFB5cnF1eWVmYjNRWTNWYUN4K3dPRzRici9aSU8rRlRKK0x5R2grTDZFdGNCcjBk''@;'; + put 'put ''RmZmZklmY0hPL3RzdCtwNlIrbEpmNStlSytwN0k5MVdqVTF2MFBTL1BpOVhEREc5WmJUaTEzYlhVNTBHckRHamRGZk41c0NJbXNwOGFGWFpHVkZwVVUrNzZONVZiS0tyNC90TG1NbStwSG1DR25ML0UrMnlzOUQ2YkI4Y085OHhrdThuNU8zZnNLRDlHdnM2TXdFa1FjbEtxTXBQR1NFUkU5MkIz''@;'; + put 'put ''ZHFibjhCZzV2MlBIbmRJWTAvZ2dlUTZzY3FuS29vTFFPb3MwbUZQVXoxRmFGMUNOcXJ4Q3ZzcEMyalN6bHg2WmFneWJZblYxTVZPNFlhcUZURGZDbnhZTC9OSEU1bGxBbjJPK0hSK2I1NEkxQjVzck9IYVhWR3RJTlNMVHVGcXdzeHFSTGpacWtENEhEVzFWaVFWZ0hZdjU0bWJoa2lwRmlyL2o0''@;'; + put 'put ''c2ErdmtBQWZtcmQ3bHI2UTZiNTM0RytOdjZnMXMxckgrWXhKWDA5Nm1FckNOZkFaclFVWTlKS1Z1SEJLclVBcG91TUd3djBreGxlL2VheEtLUnFFZWs3R1lxYzZEZjJOVm42ODQ3eng1Z1h5aWk1ek5tNURaRisvRUh5RmRqNU1KczNBYklBYTVodnpvVHhoQm9MckU0TnpuS1YzZXkwS0YvOFFv''@;'; + put 'put ''UVpwcTFhUUpRckplUkE5SXNUQ2xsZCtib0VYTjFrMDF1cVRiV3FrRzdXWFBRN0dUUVl0VFVPai9nQitaMmZ4eUIramRXNGlLaU9yVXFyQkl5Y29GYjNTYU1oWHh0akZkMWVxZGdGRC9HS2w1cy9iampOYUc5YjdxMzFwOVlmUnpYSXcwYXcxWlNwdVBQa3h4STNmam5CNDl5ZldsdHY5NzNML2FU''@;'; + put 'put ''TVo1cm5rVGZJUEJLbGNIUUxIdms5bVVlaUZIcXVpTDhXK2g0Rm0vbGlmWS9pMGFLK2UvSjlEK1BaRWg3Sis1N0o5ejBNZkk3WjN1dmJhYnltT05iejdqclhZZDVkbDNTWWRwQ3hIbWEzVDBodHZ2NXVqc2YxM3MxSmJYZzhZVFUvVGpVNnRFVTg0U3Y1ZUVMMU5DcWJVNXBDSDk5Q1Bud3ZueXVR''@;'; + put 'put ''V3BIdXZFZHZFZzJPWFB6N0lMNmZDK1BJdU54SDZMbUVQZ0o1TnlmM0djZGZSdWZJQTRBem5VOEJ1a3hrbnJRVWY1R0tiZE1YcWZES3gxMVBjeXd5eWc1OExxaWZwMTl2MFZSTHY5NkMzRTYvMzhMczROOXZRWDEwK0t2b0pmSWdRRUVMVUVueE9rYVN5dGN4d2pyd2JXd2REYWpuNllZYUlpK2xt''@;'; + put 'put ''bDErdzc3cmh5M0d1S0dVVFdEc2I5ZFpUNjNId0c1YzI3Z2k2NVlMZkd1THRkYVhyaHZmU1I3VStmbTYyZnEvQ2VzMzVOZFBVVXJlQ0FZcy9CS2V4QSs4dDlxd0I4YkhPenJHeGpxK3hOODZ4am4rVEFKZWphTDlnQnRnYytuYzhQcE5odU42VEM5SkUrbDNMQ2tPRkgzSDBpREt3R3h2OHZ5dURp''@;'; + put 'put ''MVcxdkN2UUZKalZSV3VxRlJWRkg5dGtySGFJRlJXQ3N0NmpVNVVGSC9iVXV3aUhkazNKL0hlSXUwdFNOKzUxRjIyWDVsdlhTcnBDNHBmZkdvcW1aUy9mV2xxY1dySDNHd3lrMHlQamJRUHRnOTB4Y3QrRTVQcEQvZ21Kc2VtdnoxRmJSM3g5L3d0VFhpaTZJL2NXZms3bSs1L3oxL2VWUGFMbkFw''@;'; + put 'put ''ZjZFVHZYWXppQ3VDZFNxUjZDclRyOXNBZ3RnTHNmQStrN3I0NzljNDNkRTgvcTVmdXZJeGl2ZHhPWU8zOENhc1loRllQUERENjdOTzZiN3pDWk1VYjByM1RZVFNUbktxM0V3Vzl2YUlTMDI4dVVJQUFKQXBoUllOSkJjYVZ0TDRsWDlCVWhTc3JaWmNOczIxRGJZSFdGcjNCQ3phcjN1aXRCdnUy''@;'; + put 'put ''Y0krV0h3eGFhaHZCMndBcFZOVFNqRUQ2ZlZGTzVnN0czK2JYVW1jK3ZHSmR5aExsdGtOMUIyK2JrT3FZcGova3dvbmNHWldBNTNJdk9qNHkxOGV1cWs0ZUgwL1ZhZTJPMVBDUlhsYkV0RGlXcW04eW0xTFp5L2ozL09BV1VvTlBBQjlVUFFWS1hUdmpldnltL3hPc1dKa3FPcURxQ01DVm5Yb25F''@;'; + put 'put ''ZGJXNkE4cTNMdkc3d3hSUDJNelZpdEplNWw3ek43akhSenZITmp5Q2c0cHY0VFpxN2hkaXBXY3plZWRCR2lzbVQwdnhKcjU4L1A1NStMTnhjL1B5TS9SNGV1S254ZkdUNkVQRlQyL005Lyt5Qlh5dlNuejVBYUFBWTE5cUo5cGNSc3h3S0RFSEpNaFViREZmSnRoY2dPM3pZb0JJOWxtLzEwRUg4''@;'; + put 'put ''bE8yMUVFSXNsRXU2YzB0NDZ0bWZvRitGNXdKYnEvYUM5ZnljT2srbUQrYmhQMGVYWjNrNHdMRWIxN1hycXVpWDYrdmgwK1Y1WitybHliUWY4UDJ6K2Mwd0FCQUFBQUFRQUEzNXZtaGw4UFBQVUFId1BvQUFBQUFOUEJuWVlBQUFBQTFMNm05ZjlSL3UwRVlRUEZBQUFBQ0FBQ0FBQUFBQUFBZU5w''@;'; + put 'put ''allHUmdZRDc2N3lZREE4dkUvNEgvVzFnU0dZQWl5SURSRUFDbElBYWhBQUFBZU5wMWxEOU1VMUVVeHI5elhnZWlnOEhCUVNzYURWUXRmNldCS21odEpLTFNwaTNQb0RGYXc4QmswQWdKTGtZUzQ4UkFRdUtpQXlRZERIRXpjWEZ3Y3REQlJDWUhuUWhMYllpU3lBVFI1M2N1TFdKYjJuejV0ZS9k''@;'; + put 'put ''Kys0NTMvM2VsWFhjQmorU3BvNVJqZkJsSG9OYVFFVEgwTzZGMGFIek9Ja1NCbVVNNTZsMmVZNCt6ZUdpTkNBdGs0ampONjdJUXJDbXI5RW5vemlvYVhUcFZaelErOVIxeE1sK3ZjRTVlY1RzdHh2UHVSelRhODhoVTdLSlE5NER0T292SE5WWHlPc2l4MjZRazhqb0tQV2QvejhqZzFYK0RuT05a''@;'; + put 'put ''N2lsVVF4NEk4aDdTa1Y0L3lreWpqTWN3enAxQ20xYXdvZzlNM1FHemZvV0xicUEvVHFOczNJUE9kYThTWFpKQ1QyYURmN0lKU1QwSEU3clkvamFoRTZ5UjMxMHloM09mY1RuWnBIR01oSllEajdvRVF4aEJTbHZHaW03cmcvZGVOL215Qk42dUlZMm1lQzhMTzkzczdja2ptdUV2ZVhRcE1veE00''@;'; + put 'put ''aktBWXlUN2ZLT3ZqWmkySzE1bDU2d1JubkJXdmFnVmQ0ZzRlb2FSd1EvTUNCeGR6MUd2N2E4cXFNUVNQUFB2TnNockFhZnpEL3lKMVgwOXVKVXhidHE2V0VNTzVwL08yWCswV2U5Z0d2T3F6cnlQcExXaS8rL3pEZjZOMFNXcUJYVzFML3RYYlVzRjhhczgvZWZ6RC96MldqOTJwclZ0TjV0L1Fv''@;'; + put 'put ''dFI5d1g2MWZudUtmbWg5VzBHeTFydHQ5bDBxdHZyUGNMdll1U0FYblorbkFaWkE0c2g1YUZiVEl2MG8xbTg5YjZxNkg1eXQ0cUREVWdGZ3B6WGViV3NsTkRlK2VZcHhwT2xUTldvZTJQZWJRTDdSMXdPYlE5TlAvSzc0TGxzWnEyVnpMTDdKa0t6UHhYTWtVbHFQZEk2ajVlUTVDclBMT2FOWjZX''@;'; + put 'put ''MTVSMXdDdHVuVGZZb0Y0Q21rVGNtMENjWjhLZ08xT1d5Q1d5Z0pzNnk3T0M1MUpvRGgzU2l4YXFUUmVEb3N1SHg3bmMxenBmSC81ZjdSendwQUFBZU5wTndsOUlHbkVBQUdBei81U2VwNlhwZWQ2ZHQvTThyN3ZUenArLzAyTU0yVU5FaU1Ud29jZUlJUkU5UkE4aEVURmloRWhFUkE4UkVqNkVq''@;'; + put 'put ''QkVTTVlhSVJJeUlpT0ZEaE1RSWtSRXloZ3pwUVNTa2g3M3NZWHlmUnFOWi9xZWdPUm5BQnRhMHF2WkUrNkI5SG5RT1hnNjJkVGFkb0V2cTBycVNycVpIOUV2Nmd2NlBZY2F3WW1nYms4YWNNVzg4TTlhTjdhSDRjSGE0YkVKTUtkTzJxV3BxbWFGNTNwd3hmemJYelYyRVJxYVFYZVRHd2xuU2xx''@;'; + put 'put ''cmxBYldoVVRTTjdxTVZ0R1UxV0FscjNEcHYvV0E5dE1WdGR5UFlTR25rWlRRNTJyZEg3UXYyTC9hbXZldklPSnBqM0ZqVk9lTThkblpkSWRlQnEreHFZVFlzZ1dXd0M2enVKdHlTZTg1OTR1N2hVWHdWMzhRTGVBWC81VUU4SzU0Tno1Mm41ZWtSUXdST1NFU2N5SklwTWsxbXlCeVpKMHZrQlhs''@;'; + put 'put ''TFBsSWg2aTJWb3RKVWhzcFJlYXJpelhuejNwTDN3bnZyZmFScGVwWGVwSGZvUTdwSW45SG5yOTR4REJOaVhqTlRUSXFaWTVhWURQT1I2Zm0wUHRTSCt6Z2Y4TVY5Uit4N2RwbGRaN1BzUGx0Z2UzNnQzK0duL2NBZjkrOXdlOXd4ZDhwOTQycGNrM3ZpbmdQRlFEbHdHYWdIZnZJeS81Vy81dS80''@;'; + put 'put ''RnYvRXY0dzN4anZqZlVFV3RvUURvU1JVaEN2aFh2Z3Q5RVZFZkNNdWlHdmlscmduSG9tbllsV3NpVC9FdHRpVEpxVXI2VjU2bERwU1A0Z0VzYUFRaklZY29jNkVaZ0taT0pJbjVWbDVVVjZYcy9LaFhKVEw4bVVZQzlmQ3pYQTcvQUtHQUE0a29JSUVtQVdMWUJWOEFqZWdIYUVpMDVIdHlEVzBR''@;'; + put 'put ''UURuNEFyY2dMc3dEMHV3QXIvREJ1ekF2b0lvMkgrQWtsUTJsVDJsb1hTamVGU0lDakU2Qm1QVHNYTHNPbFpYVVJWWE9SV29jVFdoenFwRjlVdzlWMnRxNHk5TU04bWdBQUFCQUFBQlBBQmdBQW9BUUFBRUFBSUFLQUE1QUlzQUFBQ0RBYlVBQXdBQmVOcU5rczFPd2xBUWhjOXQwWUFhNDhLNFlH''@;'; + put 'put ''RzZNTzZFZ2dRaUxqVnNGRFFTd1MwSUFwRmFMY1hFclUvaTF2Y3d4cDhYMEkyUDRETjRlanRVSlkweE4rVitkODZabWQ0cEFKYndDQk1xa1FLd3l5ZGtoV1dlUWphd2lCTmhFMldjQ1Nld2hqdmhHYVR4SUR6TCtJZHdFbmxsQ0tlUVZnWGhlUlJVVFhnQkRYVXIvSVFWOVNiOERGdDlDcjhnYWF3''@;'; + put 'put ''S3YyTE9XQS81M1VUYXNMRURGNWU0Z1ljQmV1akRoNFY3UG5uWXlLRklhbE8xNk90cno0aGM1KzR3YThUY0MyUlFSWmQ1bnE3a1lxaGRSNHoxTU9hcFJTVkhsNjNYTm82eGh5WnFwTGk4amFuTU9JODE1V253NURFKzBPOWovZWoybnc0TlJrL3Bjc25CVFE5WW84czl5TzFRYTVFUHFRZmFQdmZP''@;'; + put 'put ''SDdNSTV1ZnpWRWFXNi9wWFpWZlhkYUtxR1dvdXo1T2NrV1QxcVBxTWpqbjVpU2ZMZmRMVDBUZjk3cG1OdldXVHNUYi9iNEhEajJaU2xRbFZ0R3B4RmJWV1l1OGN0dmk3aVVMMDlVczRwNitycTNveTNVcFVzWTRydnVPQWlrZlA4QXZjdlhoekFBQUFlTnB0azFkc0hGVVVoci9mc1hmZE5rN3Z2''@;'; + put 'put ''VmZIWHZmRUtTNXJ4N0ZqSnk1eDdNUkp4cnRqWi9GNkY4YTdjV3k2QkFJZVFQRENNK1VKRUwwS0pIaEFvbGZSZXdmUmVhUUg3OXdKWGlUdXczei9HWjN6bnpQMzNpRUxkNTBiWUI3L3MxU2JmcERGRExMSndZZWZYUExJcDRCQ0FzeWtpRm5NWmc1enArcm5zNENGTEdJeFMxaktNcGF6Z3BXc1lq''@;'; + put 'put ''VnJXTXM2MXJPQmpXeGlNMXZZeWphMlU4d09TaWdsU0JubFZGQkpGZFhVc0pOZDFMS2JQZXhsSDNYVTAwQWpJWnBvWmo4dEhLQ1ZOZzdTVGdlSE9Fd25YWFRUd3hGNk9Vb2YvUnpqT0FPYzRDU25zTGlkcTdpYW03bUJPM2lmNjdtV3AvbVlPN21OdTNtZVo3bUhRY0xjU0lRWHNYbU9GM2lWbDNp''@;'; + put 'put ''WlYvaVdJZDdnTlY3blhvYjVoWnQ0bXpkNWk5Tjh6NDljeHdWRUdXR1VHSEZ1SWNGRlhJakRHQ21TbkdHYzd6akxKQk5jektWY3dtUGN5dVZjeGhWY3lRLzh4T1BLMGd4bEswYysrZm1MdnprbmxLczg1VXNxVUtFQ21xa2l6ZEpzemVGWGZ0TmN6ZE44TGRCQ0xlSjMzdEZpTGRGU0xkTnlyZUJ6''@;'; + put 'put ''dnRCS3JkSnFyZEZhcmRONmJkQkdiZUkrN3RkbWJkRldiZE4yRld1SFN2aURQL21TcjFTcW9NcFVyZ3BWcWtyVnF0Rk83Vkt0ZG11UDltb2ZUNmhPOVdwUUkxL3pqVUs4eTJkOHdJZDh4S2U4eHlkcVVyUDJxMFVIMUtvMkhWUzdPblJJaDlXcExuV3JSMGZVeXdNOHlDTTh5a004ekRYY3BhTTh3''@;'; + put 'put ''NU04cFQ1K1ZyK082YmdHZEVJbmRVcVdCaFZXUkxhRy9IV2pWdGhKeFAyV29hOXUwTEhQMkQ3TGhiOHVNWnlJMnlOK3k5RFhHTGJTU1JHRHhxa0tLK2tQZVJhMllYNG9ra2hhNGJBZFQrYmIvMHAveUxPeVBhdVE4YkJkRkRhSEU2T2psa2t0SE00SS9DMmVlOVJqaStjVE5TeHN6YXdjeVFoOGJW''@;'; + put 'put ''WTRsYlI5TVlNMjB5OW0wRzVleGwwVXRtZDZ4RE05MmsxNjNJVy93NXNoWVJqb09KMktEMXRPYWpSbXBaS0JSR2JrNnpRZEhOT2hNN09EazltaDAzUndETHBNMVpnTGZ5b2VMU210REhvczgzV2JwS1NacHNlYkptV1kwK05FNDhNNXFmUXowUE9meVZLWmtiL0gyOEdVWVVGdk9PcUVVNk5ETWZ0''@;'; + put 'put ''c3dYaUc3c3ZRRTlQYTEyOW1uSFNSM3o5OTJwUFRwNTJlT0ZoVzViSXNXT25ySFhhc3FXczFidEJySE1aZDVQVkdvclpqajBYSDhzYlBxM1JkYWFpKzJtT054d2FQamI0K1l6VGhJdjAyV0ZJUzlGam1zZHhqaGNkS3cyQlRkaWpsSk55Z29xa2h4eXEyWXNsOHk1M0ZTUGZ1cDJXUk5mM1o2VGhn''@;'; + put 'put ''blIvUUpMcmQwN0xBKzMyTU52dWExbmxXK2pSTWNqSWFpN2pKdWRiWTFCNUZiQ2N2WW52cUg3ZGx0eUVBQUFCNDJtUHczc0Z3SWloaUl5TmpYK1FHeHAwY0RCd015UVViR2RpZE5ra3lNbWlCR0p0NU9CZzVJQ3d4TmpDTHcya1hzd01ESXdNbmtNM3B0SXNCeW1abWNObW93dGdSR0xIQm9TTmlJ''@;'; + put 'put ''M09LeTBZMUVHOFhSd01ESTR0RFIzSklCRWhKSkJCczV1Tmc1Tkhhd2ZpL2RRTkw3MFltQnBmTnJDbHNEQzR1QVA0Y0pXQUFBQUFBQVZpWTluWUFBQT09KSBmb3JtYXQoIndvZmYiKTtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWx9QGZvbnQtZmFjZXtmb250LWZhbWlseTpNZXRy''@;'; + put 'put ''b3BvbGlzO3NyYzp1cmwoZGF0YTphcHBsaWNhdGlvbi9mb250LXdvZmY7Y2hhcnNldD11dGYtODtiYXNlNjQsZDA5R1JnQUJBQUFBQUZYd0FCTUFBQUFBb09BQUFRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJHUmxSTkFBQUJxQUFBQUJ3QUFBQWNmS1RiTEVkRVJVWUFBQUhFQUFBQVRR''@;'; + put 'put ''QUFBR0lIMVFmOFIxQlBVd0FBQWhRQUFBY2ZBQUFPZGoraGZYUkhVMVZDQUFBSk5BQUFBQ0FBQUFBZ1JIWk1kVTlUTHpJQUFBbFVBQUFBVGdBQUFHQm9xYTMrWTIxaGNBQUFDYVFBQUFKc0FBQURubmRERDdGamRuUWdBQUFNRUFBQUFEQUFBQUE4RWQ4QnkyWndaMjBBQUF4QUFBQUdPZ0FBRFJa''@;'; + put 'put ''MlpIMTJaMkZ6Y0FBQUVud0FBQUFJQUFBQUNBQUFBQkJuYkhsbUFBQVNoQUFBT0RrQUFHMDhzTkd5TldobFlXUUFBRXJBQUFBQU5nQUFBRFlMYTRZSGFHaGxZUUFBU3ZnQUFBQWhBQUFBSkFlRUJDQm9iWFI0QUFCTEhBQUFBb3NBQUFUYXNuZzVQbXh2WTJFQUFFMm9BQUFDYndBQUFucHlWVmZh''@;'; + put 'put ''YldGNGNBQUFVQmdBQUFBZ0FBQUFJQUtSQWg1dVlXMWxBQUJRT0FBQUFZVUFBQU5rTCthR1NuQnZjM1FBQUZIQUFBQURvUUFBQmlHWEZqMktjSEpsY0FBQVZXUUFBQUNCQUFBQWpSbFFBaEIzWldKbUFBQlY2QUFBQUFZQUFBQUc5RzFZbUFBQUFBRUFBQUFBMUNTWXVnQUFBQURUd1oyR0FBQUFB''@;'; + put 'put ''TlMrcE90NDJnMk1RUXFFUUJERUVrZjBNTFBvZjd5cEwvRG9mWGZWL3ovQUlnUkMwVFFDTFI2Y2RGUmtqVnNvN0h6VHYxRDRCN200MDQ4RE9sb3BObHY2NDVTZVhYTFQ1MXNYelNhK1czQUYzQUFBQUhqYWpWY0xiRlZWRmwzN2ZPNXIzd01zcFh5RVVna2hVQWhXaGpDaUNLTnhtbHBJUnhtc0JB''@;'; + put 'put ''MFlOWTRma005VVpLYkd5R2NVelVqcXhKR0taRUxRTXRwZ0JVVEZxa2hlQ1A2SUlmZ0pFaXdFSzJMOUFTb2FJOHAxM1gwZmNFdjdadXhLVjNmM09mZmNzL2RlNSszeklBRFNHSW9wa01xcW1sb1V3TkdETUlUbEg0R0JuZk9YdW5rb21YdGozUnlVenAwemR3NW5nLzVvTko0UnNlVnphZlJER1lh''@;'; + put 'put ''cngySVlhbXhMUEJvczBGVWxhRURBaDZUblFqNHhVSDBlSmFjaHFBb2J5QjRUc1FLL0lKU0JNTndHNThrQWFVTUdQYml6STJFMmJBNzNodnVSNXlmOEp1L0k3bTY5bjJCQXAvOC9DLytkZDRXT3ZDTnRlVWYyaHRrOEk4M2h3WEJyaExPZjRPL09DRjEyaXZEenNJRlpNaGpDVEE5bnRrWVFCaFdF''@;'; + put 'put ''eFFXRXcxakM0L2RFZ1BGRUNoY1RCWmhBRkRLM0UxbXBSWVJnS2U3bnpBY0l6NHl2b1A5RlF2QVNJWGlaTUhpWGNIaWZjTmhQZUh4Q0JQaVVDUEFaRWVBb2tjSTNSQW9uaUVKVzd4ZXVGaEpwS1pJaUZFcXhGSk5McElROGtKVk5jKzB4Vk1rd1BqT0tFTjEzdkdPak83YTZZNmM3OXFna0NsQkZG''@;'; + put 'put ''S0thU0dNYWtjRjgzTVVWb2tnQ2pTVFFTRHdleGtyT2J5UUs4UmhXYy80VCtDL25QMDFrc0pGSVlSTlJnT2VJRkRZVEJYaWVTT0VGb2dCYmlFSzBFb1hZUnFTUkpkTFlUcVN4ZzBqamRVTHdKaUdhblFBSGlBdytKdUs4R00yTDBidzR6WXZYdkhqTmk5TzhPTTJMay83U24vazZWODRsUnpueVhM''@;'; + put 'put ''V0NHUnJPR2xld3RtTlowL0hNekFSbVpENFc0SytvdzUxWXlGb3V4VEw4QS9jeEN3OHcrbzJNNkhsVzhpVlc4RjFXYmo4cjlpa3JkWlE3T2FFbnE0anZMWW5PbDdsWHorRWJVc2U0ZTFKZlc2bTdodkQ3YnRTcUk5SDV5RHZ5SlhHc215ZVA1VDBiWCtiKzdndS9EZytFRDRVUG5UMlNPNUZOWWRQ''@;'; + put 'put ''cC83NUlqSHl1enhpVXFpWkVOV0Z3RFdGeExlRndIZUV4a3dpb2lKV2NFNmxCVkExRzFXRFFRZ1RZUUFSYWFkRktpMVphdE5LaWRUVTRSRmdjSml3NkNJdWZDWStUUkNDOXBUZnIya2Y2a1B0S1gzSlVVZEdLaWd5U1FWemZZRFRPSVRMb1RmUlFwWXNxM2FqU2JVN3BWeEJKcFR1TkowakVrMUts''@;'; + put 'put ''MjV6U3oyamNhVlJPbzBwcFZLZVVIbXM4VnZjclJINWRSOUU2MWF6SlJSZ3AxMnFjS2RXdlZmMmFYTXlSaWswdThrakxKaEYvVXRGV3M1Q1NNWEl4M3g1OWVsVXh3bW1zMTdXTWF5WWphV1FrcS9BNG8za0NUNklKNnhqUjA0eGtBMDlqSzNlYjVTNTNjSGVIV0lNTzd1d2tkOUNIYit2UHR3emlp''@;'; + put 'put ''bVdxWjROZTJsR0t3NlcwaTluZkxxVWxhbC9LVHRRV2xKSGJtZi90c2x4V3lDT3lTdGJJT2xrdm0yU0xiSlh0OHBic2tnOWtueHlVdy9LVmZDcy95a25qVE5vVW1YNm0xQXcxNWFiQ2pETVR6R1dteXRTWWFXYUd1ZDdjYkdhYkJXYVJ1Y2NzTXcrYUJ2T29XVzNXbXFkTWk5bHNXczAyczhQc05M''@;'; + put 'put ''dk5IdE5tMmsySE9XS09tNThzYkdCNzJHSTd3SmJaWVhhVUhXTXZ0QlB0NWJiYVhtbHI3WFgyQm51THZjUFcyYi9iZSsxOTlwLzJYN2JSL3NjK2FadnRCdnVDZmNWbTdSdjJIZnVlM1dzUDJFUDJDM3ZNL21CL2RzWVZ1RjZ1eEExMFE5eHdOOXFOZFJlNVA3aEtOOFZOZGRQZFRIZVR1ODNOY3d2''@;'; + put 'put ''ZDNXNkpXKzVXdUVmY0tyZkdyWFByM1NhM3hXMTEyOTFiYnBmN3dPMXpCOTFoOTVYNzF2M29UbnJuMDc3STkvT2xmcWd2OXhWK25KL2dML05WdnNaUDh6UDg5ZjVtUDlzdjhJdjhQWDZaZjlBMytFZjlhci9XUCtWYi9HYmY2cmY1SFg2bjMrMzMrRGJmN2p2OEVYL2MveFFnQ0lJZVBCMzFaaU41''@;'; + put 'put ''aVhLbGNyVnlZOFJZck55c25tWEtLeE04VmJsQ2VaTHkzeUkyZzlXdVZhNVNIbUg0bVNybHloWEtreU5HdmZLejV0VlR0bHlpUEVuOTdjb24xRE5LdVVsNXBISkcrYzkyTnZrWjVmcnVtVlUvRTJPMStyc3dwaXR2Vmw1OGhtVldITHZhODVUZlZGN1psZU1NcU4yVmE1VkhtT3ovWTJvM21hdHNk''@;'; + put 'put ''NHlweWkzSzlXZVkyY3RxOXY0M3gvbk1kc3NqRTF5ZjJITW5PMUhUSmVvdlYzL1NydFFjUHFiMnJFVG00eWc2MlRrVitiUDhqV3BQam0yZEUyc21yazRjZGF6UG5KM3pSM09hMVg3V0xqcWwzcHpHUGxUNy9jak8xVFRPV0t6dFdIdEpmMXpaT0cvdnFiMVlhL1NSNnZ4cm5UOVYzOVd1Yy9SRXhM''@;'; + put 'put ''cnQ1SzlRKzBTdWdodFBxenJwajAvUXBJUm00b29rN2VmVXZqWDI2M3c5RjJhdytwdlVIeXR0Wk1LdVVzNm9KNTk5WE8yN05icXIxTjZqZG5MbDZuQUwrWHpsWktXU2I1eWNPOTNaMzhDZFp4cWNwL2RTOE41VnpxeEV0MVBIcmoyYVhUQzZZUWY0SFc5aUtZekRSZXhoVWVmdXhiNDlpVDA5NnR5''@;'; + put 'put ''OTlZNWFySjI3RC92T0ZQYWhHcUl2cm1LZjY4ZE9ONTNmZldZUXBkckxCN1ByeldMWG1zKzcyeEM5dlkxblIxL0Q5ZGF5OC8xSmU5L1Y3SDZ2c2tPK2hsMjRsVGU2bzZqWFcrVXFmQ2NlajdNVEQwS0w5dFJXN2xma0hQMXVGa0RDV0lWTGNBdDVPYnRkaHQ5MXloamJLTjY5TCtTdUwrY3VyMFF0''@;'; + put 'put ''Ujk5VzdlNVZQcWlzWndhN0U2eVZ3RjNLNjVVLzFxejFWVHVEUC9JOXQrRjJTVW1CRkVwYU10SlRlblhkMGE5OWw1OTBBQUFCQUFBQUNnQWNBQjRBQVVSR1RGUUFDQUFFQUFBQUFQLy9BQUFBQUFBQWVOcGpZR1p5Wi96Q3dNckF3dFRGRk1IQXdPQU5vUm5qR0VRWXpZQjhCallHT0dCblFBS2gz''@;'; + put 'put ''dUYrREE0TUNxcC9tS1gvR3pNd01KOWsxRkZnWUpnTWttTmlaVm9QcEJRWW1BRHdiUXExQUFCNDJyV1RXVkNPVVJ6R2YvKzNmUkVxRlBYMjltblRScUlVUmZhbHlMNlVyTm15cjlrYTZ4QkRSVkxJbmlTakdSTlRVN1liN3JnMVk0eSt6NVZiN2d3ZHgxZE1NOHk0Y21iZWM5NXp6cHpubkhtZTN4''@;'; + put 'put ''OXdvZXNMUVhTUFZPcVpPT2V1VXF6SEpZekRqWUdVY0lzNjd0SklFODIwMENZZUVpQ0RKRXdHUzV3a1NhcWtTNlpNbFJ6SmswSXBraElqMVhobHZIZUpNbyticmVZVDg0dmxiZ1Zhd1Zhb1piT2lyR0ZXdW5YZjVoLzVUU2w5aDhXTkh0cVBhZU9aK0VwL01jVW1zWklvS1pJbUdaSWwyWklyQmJK''@;'; + put 'put ''Qk5tdnRsOFpiclgzSWJESGJ6YytXWVFWWVFWYUlVM3VvbGZaTFczMVVMOVJ6OVZTMXExYjFTRFdyaDZwSk5hb0dWYS9xMURWVnEycFV0YXBTbGFwQ2xha3pxbFNkNkh6VG1kV1o5UDJUbzl4UjRNaDN4TmdIMnYzc1BuWXZ1NXZkNlBqYThibmo4SWVRZDhsZFh2Mm41bTU0TzVQZ2oxc0VvL3ZQ''@;'; + put 'put ''K0lkRzEwa1hYSFYyN25qZ2lSZmUrT0JMTC96b1RSLzY0azhBZ2ZTalB3TUlJbGhuUEVpbkhvcEptRTRrSEJ1RGlTQ1NLS0tKWVFpeHhCRlBBb2tNWlJoSkRDZVpFWXdraFZSR2tVWTZveGxEQnBtTTFjeGtNWjRKVEdRU2s1bkNWS1l4blJsa2s4Tk1acEhMYk9Zd2wzbk1ad0VMV2NSaVRWb2Ur''@;'; + put 'put ''U3lsZ0dVc1o0VisvdzUyc3B0aURuR2MwNVJUUmdYbk9VY2xWVlJ6a1JvdWNZWEwxSEtWNjl6VUZQMWs5RFlObXFWN21xYWZiUldydFIzUmJPQnN0emZyV2FQN1haejQ3VmJoWHh5OFFEMmJXZGxqWlMyYkpFYVBXOWpPTWV3NEpGenpHU2xSdWdJaXVLTjNIcUJwbGdSZEQvSGRaNHFjWWNTeWpi''@;'; + put 'put ''MXNaUjk3T01CQlhVdjdPY0pSdlhXWVVrNXhrdGU2bW5xeFRyekVXM3pZS0g2YWY4OGZrTTJxNkhqYVkyREFBcEtCTUl3aGpHazlBd1BUYmlaV0JvYi9JY3pTLzQyWmR2Ly93blNKU2ZEL2wvOStJRDRBMnM4TnNuamFyVlpwZDlOR0ZKVzhaU01iV1doUlM4ZE1uS2JSeUtRVWdnRURRWXJ0UXJv''@;'; + put 'put ''NFd5dEJhYVU0U2ZjRnV0RjlYL0N2ZVhMYWMrZzNmbHJ2RzlrbWdZU2U5dFFmOU83TXV6TnZtM2xqTXBRZ1k5MnZCRUlzM1RXR2xwY290M3JOcDFNV3pRVGh0bWl1KzVRcVJILzFHcjFHb3lFM3JIeWVqSUFNVHk2MkROUHdRdGNoVTVFSXR4MUtLYkVwNkY2ZE10UFhXak5tdjFkcFZDaFg4Zk9V''@;'; + put 'put ''TGdRcjEvMjh6RnROWDFDOWpxbUZ3QkpVWWxRS0FoRW43R2lUWmpEVkhnbWFZLzBjTSsvVmZRRnZtcEdnL3JvZllrYXdycC9SUEtQNTBBcURJTERJdElOQWtsSDN0NExBb2JRUzJDZFRpT0JaMXF2N2xKVXU1YVNMT0FJeVE0Y3lTc0l2c1Jsbk4xekJHdmJZU2p6Z0wwaVZCcVZuODFCNm9pbWFN''@;'; + put 'put ''QkRQWlFzSWN0a1A2MWEwRXZneXlBZUNGbFo5NkN3T3JXM2ZvYXlpSHM5dUdha2tVemtNcFN1UmNlbEdsTnJZSnJNQkE1U2RkYWhIQ1haMXdHdmN6UmdiZ25lZ2hUQmdTcmlvWGUxVnJaNEJ3NnU0cy9sdTd2dlUzbHIwSjd1WU5sendFSGNvS2swWmNWMTB2Z3lMYzByQ2dwTWRMMUVkR1MwbUpn''@;'; + put 'put ''WU9XRTVUV0dWWTkwUGJ2ZWlRMGdHMUJ2clRLTFlsODhGczNxRkJGYWRTRmRxTUZoMGFVaUFLUVllOHE3d2NRTG9CRGZKb0JhTkJqQndheGpZak9pVUNHV2pBTGcxNW9XaUdnb2FRTklkRzFOS2FIMmMyRjRNcEd0eVN0eDBhVlV2TC90SnFNbW5sTVQrbTV3K3IyQmoyMXYxNGVCZ0ZqRndhdHZu''@;'; + put 'put ''TTRpUzc4U0grRE9KRDVpUXFrUzdVL1ppVGgyamRKdXJMWm1mekVzczYyRXIwdkFSWGdXY0NSRktEL3pYTTdpM1ZBUVdNRFdOTUlsc2VHUmRicG1ucVdvMHBJelpTbFRXZmhxVXJLalNBdzljUHc2RXJRcGovYzNUVU5JWU0xMjJHOGVHY1RYZHM2empTTkk3WXhteUhKbFJzc3B4RW5sa2VVWEdh''@;'; + put 'put ''NVdNcXpyQjhYTVZabGtkVm5HTnBxYmlINVJNcTdtWDVwSXI3V0Q2alpDZnZsQXVSWVNtS1pON2dDK0xRN0M3bFpGZDVNMUhhdTVUVFhlV3RSSGxNR1RSby80ZjRua0o4eCtDWFFId3M4NGlQNVhIRXgxSWlQcFpUaUk5bEFmR3huRVo4TEo5R2ZDeG5FQjlMcFVSWkgxTkh3ZXhvS0R4MndkT2x4''@;'; + put 'put ''TlZUZkZhTGloeWJITnpDRTdnQU5YRkFGV1ZVa3R3Ukg4bXdPUHE1Ym1uTlNUb3hHMmZOaVlxUFJzWUJQcnM3TXcrclR5cHhXdnY3SEhobTVXRWp1SjM3R3VkNVkvSVBnMytMRjJVcFBtbE9jSENua0FCNHZML0R1QlZSeWFIVHFuaWs3TkQ4UDFGeGdodWduMEZOak1tQ0tJb2EzM3prOGtxelda''@;'; + put 'put ''TTF0QW9mVHdRNks5ckJ2R2xPakNPbEpiU29TUm9CTFlPdVdkQTA2dlBzcldaUkNsRnVZcit6ZXltaW1PeEZHY3lBS1Nqa3ByR3c3TytrUkZwWU82bnA5TkhBNVViYWk1NHNOVnRXY1lXOUIrOWp5TTBzZVRkU1hyZ3BLZTFGbTFDbnZNZ0NEcm1SUGJnbWdsdG83N0tLWWtwWXFDSStDRzBGKysx''@;'; + put 'put ''alJDWXRNNE11Z1NKa2NiS3lEKzJLSFRtaWduWUMzM3JTS3UvYlF1M1BkZklnTUp1ZGJ1ZEJscEdpODEwVjlXcDlWZGJZS0ZldjNFMGZCOVBPc0xIbUYwVVpUeTU3MzU0VTdGZW5CTGtDUmxkMnYrNUo4Zlk3MXUxS1NUN2JGM1o1NG5WS0ZmSmZnQWREN3BUM0locEZrYk5ZcFJIUHIxdDRNa1U1''@;'; + put 'put ''S01aRmN4d1g5TkllN1lwVjM2TmQySGZ0bzFaY1ZsU3lIMlhRVlhUV2JzSTNQbDhJNmtBcUNscWtJbFo0T21RK201MmE4TEdVdUN4RjNMTmsxMFgwSFR3aEhlSy9PTVMxLyt2Y2NoVGNvc29TWFdqWENja0hiUjhyNkswbHU1T0hLa1puN2J4c1o2SWRTVGZvR29LZVNDNDQvbDdnTG84VjZSVHU4''@;'; + put 'put ''L01IekYvQmR1YjRHSjBHdnFyb0RNUVM1NjJDQklzcTN0Sk9wbDVRZklScENmQkYxVUt6QW5nSndHVHdzbXFaZXFZT29HZVdtVk1CV0dFT2cxWG1NRmhqRG9OMXRZT3VkeG5vRlNCVG8xZlZqcG5NK1VESlhNQThrOUUxNW1sMG5Ya2F2Y1k4alc2d1RRL2dkYmJKNEEyMnlTQmttd3dpNWxRQk5w''@;'; + put 'put ''akRvTUVjQnB2TVliQ2wvWEtCdHJWZmpON1VmakY2Uy92RjZHM3RGNk4zdEYrTTN0VitNWHBQKzhYb2ZlVDRYTGVBSCtnUlhRVDhNSUdYQUQvaXBPdlJBa1kzOFl5Mk9iY1N5SnlQTmNkc2N6N0I0dlBkWFQvVkk3M2lzd1R5aXM4VHlQVGIyS2ROK0NLQlRQZ3lnVXo0Q3R4eWQ3K3Y5VWpUdjBr''@;'; + put 'put ''ZzA3OU5JTk8vdzhvMjRmc0VNdUdIQkRMaFIzQXZkUGY3U1k4MC9lY0VNdjJYQkRMOVY2eHNFMzVMSUJOK1R5QVQ3cWlkdmt5cTgyZlZ0YWwzaTlKVDlkdWRkOWo1RzJVenVpd0FBQUFCQUFILy93QVBlTnExZlFsNFpGV1o2RG5uVnRXdExhblVucVN5MVo2bGt0cFNxZXlwN0V0bDZYUm43ZTRr''@;'; + put 'put ''dlNYcHBxRnA2SVZGUUJBYkJrVlJuSEVieFVFUUIxa2FCRnFVWlJ4R0JaNDlMaU1PT283b20zRkdIYmZuRzBaMEpEZnZQK2ZjVzNXek5UamY5NkNUVk83OXovYWZmei8vZjRLTWFHRTlpVDh1ZUpDQUxNaUpTcEFmMWFBVWFrRWRhQWlWWkZ3OW5lMnQ2YVprYlRoUVdWcnNzaFlaTkFRWlkzVmFy''@;'; + put 'put ''OVVyT3BOT3Z6T1o4cWVTS1pIOUZPR2o4cFErb3ovcEczaVNVajdMTUt4Qk9wbkNINWYrRG5mODMrNmVCM3A2SG5pZ3grZjE5dlQwSE9ueG5udmdpTTk3eFB2QUF3OTRqeHc1TnpEd3dNcEExZDhMUCt2MUJyM3c3NWFqdm9HQndFSDROT0J0Ny9FZHViN1pIZDExMVZXUFhIWFZydWlxTitxRmZ3''@;'; + put 'put ''Z1JOTHIrT3ZvV09jL1dGc3o0RU1ab0FTRlVtRVdFQ0VzYUxBaHVZVlNqMFZnMGhVRnJrVlowMTltVGd0OFZTalUySlJNdXAwUG5uemxUMHFjTmg4czhvWkNIbkpkOFA2d3VLdzJIUzh1cUVWcGZSMzM0WG53RGViREloNHdJRlFudy9TVkV4dzNBdHh0aFhBK3FSTU9aQVl1T0lLMUFNRUY0MllR''@;'; + put 'put ''TmhzSnNZVkdCSUlyNkJiT1I2UFhXckFZVFlpR2pDRlZXbEpkQkswOXBTYkVieHJkYmMvK0o1WFZZVElwKzBaOW1YK2trKzBxSzdFdWtML0dic1N2dEp5SzdJdStOVEVRdXR4K1BYV0cvQWo2OUY1NmNzUDNOZTJQdnhSZWV6ejRDLzJXZnp6NEsvMldmUjRDWjBQb0Ywa2JlUUJVb2lDS29QbE1i''@;'; + put 'put ''cWZONVBhWEZicWZOWk5TTGhZaG9BVzFrQkphRkNUNEk2M09qMFVxclZRQnNCWFN3eDZsUU9PMXlweHB3cXJFVHAyR3ZYVzR4RkhaV1lDZUN4NFhZYVd0S05jSUQwbmJtc3FsM0hlakk3ajF5SkxtdmRlckt4ZGIrOFJOWFNaZEhFM1ZOdjg2MFpLNDRLV1o2aXZabGgydy9LcDNlbFp4cEZqczZ6''@;'; + put 'put ''YnRITzYzLzZKbWJ3dTRhNnd1R0ZyODAzMVpkM1dEOUpzeERpeUxydnlOcjVDbllYVHRnT29yYTBQL0tQbGE4YXk1VFo4SmFJOFk2TFY1Rk9xUTM2UFJIa1VhRGxnaW11MThBZXlBc21VVWlDQlpoMUpOOUxBeE5vcGRzZ2dDVXRST1h6RmdVM2VLb0o1UGNwZ1VoQUV1Ym9lMWJ6YzluUXJGWVZa''@;'; + put 'put ''WERnVkNzTGRiYTFGZ1ZyV3FvRGprcUhSV2x4WGFidFFnV1V4Z3FGSjExTm83UlpBSXc2U2pFZnB6RWZvWkt2MC9uZExpU2FOUDdUcHgvOTZtUm10cVJXQXkrWjZQNHZidWs4TVRwUkRJVWppZERlTzlJTFR6a3I2cmo5R0VpalBjMWpFZmp1eG9hSm1MeGlYbzh0VGFKLzdJakd1M3NpRFYwU3Z2''@;'; + put 'put ''cUorSlIrZzRnNnJ2cDQ4NkdhQ2VpdEJOY2Y1M2NRTDZBdktnZU5hSE9URnM4R3E2cUtQZVVtSWhSSUY2TUJESkNhUnN2QWV1NXNscGdPSVlab0tDR0JwK3ZvYWtoNWF2M1JTSituZWlxMDRiQ09yK1BMcW9wclY0YXZITTNwZDA2MFkzbzJ0eDhuYlkwZ05PbGtxQXZzZTkwMTNKTGRxSzhOTHFu''@;'; + put 'put ''TVRaUlB6RTkxRmRYT1JHTm5aVCtNbGxjMnROVTczY01YTkd4T3BvMitocm5ZblB0dlFmOE5mMmhobXdra3Exdkh3M3NHZWlhREN6M25TSWowWEJwMmxzYUR3Y1NhNjkxWHoyY21tektJSVFwbjZNbnlZUElqT3laSWlwRjJQYmlVV2VBd01SdGVYa2grcWV0WHJmYmE3WEU4SDhzZTkwK245dTdQ''@;'; + put 'put ''SXhvSDYzck03aVBQSXNLa082SkFpMk8xVEV4azNZRGc4Q2l4QWV2dkhLMWNXclg1SjdHMlIvZDhxN1g5alJOUDNYcTFGTlRhZGEyRnRvMkttMUZhTXVSRUU1ei9OVHVtWVIycTlERHFlbW5yajcxNUV6VG50ZmVkY3VQOXJDMktYd0NIeURQbzRPb09aUGFPekhVVkYzaDF1bGhFU01DeGhxTXRC''@;'; + put 'put ''aXQ2ckJXUzVhQWVGMWFFRUlBZW1EUDdzNzJXSVBQV3lkU1NvU1pwcHZTT2hIKzkvdkMvRGZnOVFZY0R2SGZrZ20zQy81bnYzRlVBQ3hBTlBGWDdOZENEQnRaZ2ZsdnRKc3d0SGU1bVpoOTNtclVFYnVqMnFyVFdRMGFjM0dEd1cwMnV3ME54V2FOc1VpanQxWTc3RVJudEpvTEtKelJaZ2c1R1dB''@;'; + put 'put ''QkE3U1dhcUtPQWdib0RCbHNSZ3BaZ0U5WVRLVUpuN25BN2pNS0Z0RmdFUXN0R3IxV3E5ZFlDdlVXdlZpa01mcnNCV1pmb3RSazRaQmlrZWd6QXlpOFphQ2lBVnZOSE5Uc2c1Y2NsdUcwR3kwVEIybEdKaFRLK0pGR3dKcHBvRzJRRkZoQXk4RCtlQUVCYXNlWTRDN1NpYVYxMkU4MVlJcHF3aVJ4''@;'; + put 'put ''UEx2L21XZjJQNHU5eno0Ny8venp0TCtCOVd2UXQ5RjFxQkM1TThES2FGQ2hNV0NVZ0kzU0dIQ0FUMFZtdTJvTFBLRndtVGNjamgyTHhFRTloVk8xL3VFMDdhc1IvUVMzNDA3Z3p1S01FOUdPcHVtY1lVWUlabFJFTzdON25kNUdySmQranp2M3N2WDBncDU4RWNZM1VZMVBuNERVdzlpTktUR1lr''@;'; + put 'put ''REVnQUJHb3RlSmxza1kwNTdRaFh2L1YrZ1Y4Z2Z3VXhyVm1DbW1udDhMWXAvbUFWSFRoa2N1bCt5NG5QMzJUaW01UUprMGdPMjRoejRDNHEwU1JUQTBRSDFzeGx4SVlsRE9iUUZFUktOYktvb3BpRjVPTG9HL3FOSnZsSGtrMU5tQy9qekpTQll3azNwYk4zalk5ZlM2YlBUZWRub25GWnRMcDJY''@;'; + put 'put ''aDhObTNlOStuVjFYdjM3YnQzZGZYVCt4WjZyeDBkdmFhMzk1clIwV3Q3R1E1ZzNiZ2NkTFlPZVRMRnNKVUM0R3VFUzNHTUxYalVhbWVvRThQcHBOWC9oV3RxbjlxOVF0S2p3KzlZbTBTc2ZSUVdWUXpyS1VhMW1iREpDTXNCYWlCa2hLR1RpVDlxZEN3Z3BuT3M3a0JJSXhiWGRXRkZhb3ZoSmxu''@;'; + put 'put ''Y1dUQnNUL1ROdnJiUnBxYVpVTitCajJlT2RZek0zWXVISmZlZWI3VXNScHU2R3hQdDV4cVhPdnF2SGZxelJUYTJIM0JaQVdQWG9LNU1lMGt4ak9QRG1NRG9NQVdtdUJIQnl6Q3laZ21JRXlZQ3VuT0o4cnlic1hzTnFnNEV2SUdnS0piQUxsT2hra3hRUFFPV21qdlJ0SGw2b296MmZ6aFgyeDA0''@;'; + put 'put ''MU5xemEybzhtKzJkM05XZW5BcDFMWHk0LzNqN1NHdkhUT2RWdytaTXFyY3VrV2xNcGZGZTNKeU1kVWJyTzYrTFRUZTE3N1lWN3VsdDNaZmtkT0NIYjFuQXV4R2tHMWdmWmpBeThJaE9DMnZBQ0d6TkZVQWRVNmtXemFqSlpDb3dGUUJQMllyb1hJUGVNRTVhcWJYcFQxa0ZmS3Ywa0FtUFhYdjQ4''@;'; + put 'put ''UEp2NzVuRVg1YUc1dTk1QS9kTHo4RHE0NENmR2hpakRMVm5XbXdnOWdyTUJHdkFuaGxCOEIxcFFJRUxBbG5nMm5zamNzQWM4MW50QVQ5RERoZzZTUmtqWXBoeWtkaVVJOE8vT05JMXQ5S3paMC92Wk0rZ0VYOVcrcUt1WjZ6emFFZjNxUkh6NVVQN3h0dmFoaE5WZUhYeFlpUjVxS2Z2V0V1T0I3''@;'; + put 'put ''cGczenlvR3ZXRDdRTnJ0d0xSQkl1SlZpT002RUNhYUxTQ1poWGxOS2dJODFJRVExa1p6SzY2TE96M1F2dlNRRENrQjRzTXliT2h3b0x5aUZ2a3JBSENPR25MMFJwbGs0OGU2OHhjUFhqSDdkbHplNjZjYnd6MFJ4cW5FcmpxVUl1N056alQzVEpWV0RqZWpUL2ZlTENuKzdMMjV6NngrdGtERStO''@;'; + put 'put ''ZWIvOTEyYnFZOU5IcWJuL0hTRWRpYkpiU0hnZ2Q0bVo4VTVrcEEzMkNHZGRRZVlPWm5RMTJMVmcxMUZyRTNwVFhDWUxncjZTUDRCOUxQenBOSmhkSDF6NUo3WWdvNENIRjhCQUczNk12MCszUUVaQ3FJNklLQTdKMDBBTUdNT3dQa3c3VjFSUUoxYW5xeG1oOVdiZ3M1S3VpcUlnWXFMamF6cENR''@;'; + put 'put ''a2FPeW90ejBNK2loUWtKdGlaK2Y3WnZzYnUvcnZiS3IrOHFld1pidVhmMW5oMUp6ayszdHUyWlR2WHRqd3dIL2NIeHZyemsyMjlxeHoxVzhxN2w1S2xJL2xXN2Q1WEx2YTIrZGkrS1B0c2ZxTzlvYjRtMkM5Sld1aEsrcEF1T0tKbCtpaSs1MUd0YVl5ZTkxUlJIc3NRRzRWRSsxQnF4VUN6eXFK''@;'; + put 'put ''YXRBNlFJc1R4QmNXWlVTVVBhYUx6QVlDTEs5ZHZHdDVod0wycGIrSWkvWVJwZk9aYUlyaWIrNFpaY3piUGU3MkRiWDB4MG56MnpjWmI3ejBrZm9OclA5cG10Z2VvTG9RQ2U0cWN5bU1wck4wTW9kS2kxM3FNeG1oTXh1czh0V3hKU0hUcllnRk9WQnRsRWtaZkpQZkl1aVVhUlR5aWZ3czVoK0pE''@;'; + put 'put ''cndzMEQvV2tWa0JlbjhQbVI0SE9Pbjhmc2VTOVp4T3B3aGhNd0RIZXFlMEJHd2tleXBvTE1BTzlQNDY5TDc4Q2tjSC92QnpFTVB6VEsrNjBaUEVBZitCVkNlaUh5WlNrcXYxRGRENEJDUWFWbE1FNEhxN3lJcXBTbW4wLys3OFhla2V2YjFpL25iNW1ITUVSalRxWXdwd0pqcGVwelNPclVqK0JT''@;'; + put 'put ''TStYVXA5Y2hERDgzOFlPd0hkRXozK3V2NE83RC9UckNXMDVsR3UwRlB4UnVtNGxtQWdXOVM2UWtxcUxWWW8zRnJSbDB1bDlkVkZTejJCM1YwSWpJSDU2UXhNTFp6ZzcvNnhPNmpmYzB6QTUyTHQzY2Rhb3JQcFE4NEZNemVxdXVPMUhWTmRWNFZuMm1NVExhYVQvd2c3OHJTK1VYVzd4VDZ5WDJB''@;'; + put 'put ''bXduMG80eTV5a2FNaHM0T0lvS1F6RDdtQndjcEJZYU9RZEFZYmpKam94WWJaNUVXSkxXb3hVZVJhTUo2VVg4WTZYU0szMFA5SzFpRzFVQzlxeHBvbkZRYXcySU5Sc0d3K3BhZDZNRERhc20xUWtnbklOM3F6cTMxZW5FV2dVdTl4THFaQUQrcnBLY0hvWjZKbnZIaFFWaFVKaFFLMjBPQlVLaEFM''@;'; + put 'put ''TnRpUXZoQ1lSWHZKRnp1dEZ2a0VpRkJNYTZ5TGhMTVl2Y3JvbFRtcjk3SFZxLys4c25sUjViVE05Rm9oN0ZpVnpRMld0ZHpXV3U4ejI2ZUx0SzREZDd5OHJSLzN5ZjJMeis2c25EUFlzZHl5dDV5c3RmZUYwekVhZ2RybTZPblZ4NWV2dkxMVngyNGIzSGl5blFrSEtxUDdHcnNQZFZYNSsvU1Ri''@;'; + put 'put ''alB0SmdxcW1xbXU2WS9PTFA2NlBMK1Qrd3ZyeW9MZUxFeHRpY1JiWXhPMU1mYjJmNlZ3cmZ2Z1J3V1FaUFdaYW9OV0VQd0NGQVJrSlVHdENoVmJXRHdVMHRHcjljYjlVWnVtaGFERmhXWmF4azJZUktSUHQ1K0VvZnB2OE4zd24vay9OcmtUL0dBOUNYQSs2d2MweWhDSmNpSE9qS3RJSWxoQkIx''@;'; + put 'put ''d2psWkR0TlM4a0lNckl1WVdNQjNMVTJxemVpdExmUjVmc2N0YVlpdUpWT21aQWJwUklIc3gwNnAxMkdsWFBzemlnWmI1UkR6ZTBkMTBvRU42Qk5jMzl2UTB2dlJxNi9CdzY2dmtmR1E4M2pqc3FkamIwalFkd3g5TTE5VTFmMVY2cVN1UjZQb1haZy9GUU5iZURieFdqaG95ZGFVbEpxT0dHaFdL''@;'; + put 'put ''UEhWdENQL0FnM0pVRmdxR2FQaEhreWNCY2V1dTQ2YjdEeDI2ZjJubzFzUmdZTEd4OTB4Ly81bmV4c1hBWU9MV0lmUEIrNWVXN2p2WWt1d0xSNGF1SFJpNGJpZ1M3a3Uyd0w1UXZIMloyVGRPNWkzazBNUWNZeGxOWnBQRFpuS2FuYUVxTFVXUFFwaDFPQzBUWUIyMnp2N3F4Q01IRHo1eTRsZi9P''@;'; + put 'put ''WEY5Zi84N3h0OVB6czk5NHZEaFQ4N3R6NXdhSHI0Nkl4blkyc0dBSVgwd25nbEZNeEZGc2xGN1JyTUF1cVZRYllVeTY5N0V3MHRnM3RpZHNweXplcDJQNDh1bFA4Y2Zra1Q4QnpMNWxjVnZMNUx6aTJoRC93WlVrd2twL1ZOcHhYcFZWRDY4TUNBRDdabkpMZGFyWCtsM2hYYjYwcUwwWGQ0cDM2''@;'; + put 'put ''LzdZYis4S0pWSmdNdUFoRXBDTkZwbVBHczFpQkVYOTArcEpjakVKR2gvTzJ5YW43dFhYdXRHL3QyMGVTay8vak5jRnZ1TDRhWFBIRHIwbWFXUlA0OE4razgwOWRFTjdJdnM4eitOcjVaK0hXL2pXOWlhNkF2Vjh5MnM4SHdnditZN0dVN0RtWUJzTWk2RGpVclhTK05ERnJRWmw1aXVGcjZTOEoz''@;'; + put 'put ''Y3VTemRzYnlNcjZIc2hLUFN0OGw1NlRYc2cxNW9xOGRaZkpMR0ZWUytCbmZUd05FWVhWNm1yUURXQ2Zyakc0ei9nSXFZYWM4b21obXNaRWtBWW5JenRCY2hpejJvZ2VaNVV4NW1RYm5zc2V1OWcvWmRkYzJEeXkzTDNlWk1vcjg2dWFjYnRGUzg3L0oydnM0WjZPcERiSjFWbVhLRFhrdVloc0lz''@;'; + put 'put ''QWlid0dLWGRadU02TVduRlNRUDJnMnZvbjFuR2ZiZEkvNDdyMy9sZlIyQzYwc2Z4aXZSMTZUYmNlUHhsM2k4SVl2Q1h6eU10dFJIWnBHbHZpRzQrUjUwV2FhMVdPdWtnMEVuU1NoeFN3OG9pME56YWVkWWVlQWdJSURjdmNadDVPYXpLdkR6Z0ZQaXRKdGlCMmVYZi9uYVpmc0djdXZEZkF2Si9U''@;'; + put 'put ''bjlLYnJsUDhqQ2o0NHFNUnlSa1M0KzJYSThZcHVSbi9lSDNMaTlMWitpV3ZFRU1hNVB3OVFhVnZaUitmLy8vdzVmbEFnZW84dUI5UzcybisvdFA5M0twSTRzYmVMcDAvOEdGb2VzR0JxNGQ0alRMZEFHbDErT3dOalBJSFBCR1lSYkFwZ0ttb1lsOEFCeVdXRmpnc0JVNEM1M1dVSldPQnIrOU9i''@;'; + put 'put ''bmo5Q3NpMlpyRjNpRVk5L1RRczh2WW50MjNML3NvT2QreW1zbXN0dndHancyMHR3OUliNnB4NEtBMmZDWkJBOWhFSzFCSFJxQmh3THdQbzFGRkFaMU9aOWdacWcrRnFmQkZNQWR4Z3lLbU1lUjBPTzF1Mm9BVjh2dVFmN2gxTEhwVis1S0NIdWxYUFlkYWwrdHorTUVWVnpSMDlmV0dhbko0a3Y2''@;'; + put 'put ''UW1PNmI2NTlRSVNxUHAwS1lDK2hNUWdOaWlrdTRqTFJhV2FUSkxBNU9zdFZxcC9LR3p0UWZCci9UeWpDbVRjcTRJc2NQVHB3Ly9kZjNMRE9VU2YyUE1uVGhXMDQ1Ly9DYjN6Q3N2WXNpak5GMGFQMi9TQnQ1RnJ3QjBGRXVKL1ZIQ1ZhaGlRWllWVHFxR29XREVUOUZVOTRMRFRlUWJRU2VXNmFs''@;'; + put 'put ''ajUzcVdMNnhiM1JpWWZ4d2M4Y1ZmYVBYcDFvank0M0JkbDlvc092VW1kYXJKa3duc2djNklnMXhwNjFodEsxbGZ5b1JIYTJPbE1jOGxkVWVpMmR1cG0xL2lzNnpCbkEweWV3S0hoZkp1WFk4a0NHYnlOZ1B2cDBmdU1UNHYwbjF2eXlEYTdjbzgrNHVvSXQ3b0QzWXZaa0tPWmlPc1hwcFR1UndC''@;'; + put 'put ''QnlLK3FYQ2l2c3ppdHpDdnR1enkvSDU1dWE1K01yb2JkUG1zVHRtOGZ1bDB4MEhtc0Ewd0hkS1Y4L2VNY2JsakdJRDZlaFlXdWFMZ3FTVWhTU1hOR0NxYzBsam9CRjFEeWJmazc1L0V2N1IvUUdHUHIvMkhWTFArZ0t2UUZQQ2VBajZNbEpaRHdLQ251RXcxYzBXRHhMQ1ZxU2xtcE1LSGZnbitF''@;'; + put 'put ''M1lYM255d1lkUFB2emd5WDlaZnVvTFZGSzhUc3pzYTVMNDEzNklsTDdKcDVnOEEzbG8wRUhYaElaanFZMkdPYTNaYkRZcnhTdk1Fcm8wc043eEo3RHdqcTk5N1Rvc1NHdlhmKzNGNi9DYzlOZFlsUDZBWitIVEg3REkreTZBdmo4R2ZldFJlYVpVUjNrdko5aGtiOXpHem03a1BtSExxcVJmWGYv''@;'; + put 'put ''MzN6b2ovZVlvTHNDZmxwN0hQZEtpOUorMHJ5Ym9hN2VpNnlrKzh5R3RuSCtmQzJuWnJHekdhZTdtZzhKdnd1K1Qza0dLcEZQNGcydi9Oa0hJNHNTYXhQWDkrUHE3Y1QvNTd0djB2cEpBV1BBMS9zWm5Qdk1HK2U3QVdoc3dFRjcvL2ZvRi9MYzd4QnNGc0dmMWwrTUZIbTdFS0FyamhYUGpLZkV3''@;'; + put 'put ''YW9yUjJDZ2REK1hIYzRPd1Q4Rlg5SUVIZnYvN0p2TFZnVGZQMCs0VCtKUDRDNXkySHRjZDZjdTRRS3F6Q0NHTVRLT2xwK1VveCtNNjFHZFAydjFoMGYvdDRVK09uemt6QnRybjE5LzhKcDJ6dEg0bDJiMytOQXhYeGZyWUlUNUx1eEFCZ1lSTXJUMDhOTXozdFl0a3NKdThBbTNkckswWldsSnBm''@;'; + put 'put ''OW9HUGlBZk5lMzJkeDI0ZG9oODJmSG4zS2VyQjV2aEQ4UUtmQkZDTjJZY3hWalF1RUVSV01GeXJ5alhDanF0Qm53N0I3aG5WUUNzMVJIdEt2TTlxUUZma3RWajZvcko5T2dCdTJjckNPVXFCcWVZWlBNWnA4ZURrQ2ZrQ1hvcllkaVNRTkJ2TndCU2tjc0pXRlVIcG5LT3JBM3NNK1hjQ3Q5Kzlj''@;'; + put 'put ''R3lwZmpVOGZSU3k4anV6c0hPcWNEUi9iWjVjL2RvYXFRN1FheG5EMGt2RG9ZamU3T0ppYnF5b3BheHV1RkdLWjZzNzNjMDFkVEUrWnJIUU41TWd4NnlnWmZ5N0FXTEVUUVFsbGRaRHNSVmxNMUZXRXJrY0JwZEl1Z2k4RlM5QU9UZERFUk5zZzJCTjltbDlTcUhmVHNEQW96cXRXTHViNENaQjAv''@;'; + put 'put ''VlliY2paUGZadlo0U21EYm9tRTJodkRCbEFLc1N3VlBiQjUrN29yUHppdDYycFlwRGh5b1gyOXdqTlRVajBZYmhtcHJoQm1JRkYySDhodjVVZkM5NVJ2cHRMQ1cxUktkVHFhbG9kQ3FWbW81eW1vb0FmVWhBSCtXb01STTNBaDVLVERESlVtQnlJZWN0bGV6c0xia3U2UzI5ZnROSTlzYmhwa09o''@;'; + put 'put ''WG5kM29HRWlHcDJJQm5xS2U4T0htODBqTnc0TjNUQlNHK29zclVoTXh4UFRpVXBQUnpqQzk0L2FFYzI1L2JNSzZ2MmppR1I3dzV3QjlmNVo4dnUzR1lnUnFjakNocHhJbGYyamdJV1hCR1Q3SjcrbDBNeDQyZ2l6ZGY5c0liK1Y3aCtXQ1Q2UEpDdlp0SCtrK1ZERlVsc3YzOFRGeXF2WnprWFpM''@;'; + put 'put ''cEpuMXZyM3hsUDlONHlQdjZNL0ZjT1d0YnMyN3grTjJieE93ckIvTHRpVVRLYUQwSTFqaDY1Z3d4QkJRNVp6TTVYbkx4T2RHeXhnZDdtN3JMUUVtanJCajZMekRmQnRVeHRmWGpwSG5laUZLZU9GYVhlbjc1cm1vZXVIK3M4T2pwOXNrNDRaNTN1NjVzMjR5VENhR2EwcXpnUWlBemVNajc1aklQ''@;'; + put 'put ''dWUvVDI3OFJYWnJxNHNwVEV2ZkZzazM0Smg5MmFNUlZpbnRXS2tvekVsdWxsbFNLZlRMb0dsVmN5Q0UyaEJnK1ZvSWlncVQ2WVVIQU1kU0ozVnJTL25NOGFnbjUydmlhS0g2d2cvbGRzOEZNYnBVZWY4MXZYWEh4d2ZIMjB2YTNJRzlPVkZya3FpblpJbThPTlRuWjBURG11UDN1VDNVRHhHMTZk''@;'; + put 'put ''SUkrQ3hFdFdoYXpPV2lpS2kwK1pqczdLSUJEa0hha05IVnFsaHVDUnFpTXp6REtsMkppSnpJRlE4d2t3cElOb0VCaUt5cWdxaHFycXEybEFBUnF3TUJZTUJLaUt4VmVaMjdyVjE0STNFa3lLcXMzL1MySHZOYU5lcFVMaHNOcnBucVhLeHRmZDRSOGZ4M3RhbENxREgvdjY1dVg2aWxSSTlxNjJo''@;'; + put 'put ''eWhGUHhXaHZ0ajdlZFhKdzhHUm5NckpIdW1idndNRDgvTUFBUC91amhyQ1Z4U1ZQUG1WakpoUGZHamRpYkFRbU1ZdEZsaWhXc013OWJ1N3NiMzBOYi9JUFdiUkRmZ09NVXNDdFBhdkQ3NkJoQVNyaFlOZmtRSnBWRm5MNDl2bjR3ZDdHVUUvNDBLSGllZGlXNUw1VzZRdTR1WFhZMit5Vi9nYWsy''@;'; + put 'put ''VnExTE9zNzRQdVQ1Qi9BanJLZ0FUNXRWeTRvWFV3cHhTcmJxWjZNQSt3NVRBMk5WZFhqZVdvNldBb0x6Q3hTcmQwVXFSYkJDampnOTVjVSsvM0ZpY09IeWI1QWNiRS80QzRPekt6OWtZNi8vdEw2dUR4K0tUcVNNVnBBdHhaaURjbFJ0MVkxRjBGZ3BLczVvQVBNZURTTXVoRUFDSWlkUG0xOENU''@;'; + put 'put ''S0ZSZEZMelNVdXB4eEhGN2ZFMFdWSGdKckp1dHhFVDhhTENrcjh4UldIeHpyeUUzN3pQNDM2TWFQZlF3SnJyM2J1WXZzK0NBdWdaNFltdFBRRkEzUFNsSjIzY2cxSTU0UTM3TG1WYXp6MUM5aHRjSFlYMks4YjNzelBYN0JaN2N3aXhOUVlZaW9NWE9tdTc1Nzk5SjVEaDlhdXhSN3AzNzQvZFE2''@;'; + put 'put ''MnN3ZnJPUjJpejhGOEJOVE9wMkdpd1F3NUlDSlB3S1NLa1hqWWIwb0FiWDcreVh6UVpPalFJU28ra2JKT29ROTQyMC9sVHluRzJpcU1XRXliTXJXTENoYnRrbDdVQ1ZxdE5hdWhwN1pzV1NCNTRIZjZWZ2R2aVU1WGtuczV6MEkxZnVUelcrMSt1OTloQVBtam9tVGRoZzlKSitkZStFNytaanAy''@;'; + put 'put ''c0NQZVBNQytIVDdzR0lzM3o3cHQrOW9VQ205dEdlcE5TYzhwUDRsMktGemZISXMxSXhXZldzRy9IcnRnTlJQT3FIUU5kdVpPYWFrOHNxcTVrTkhVRnY3a1RPaEFkcGo4WmliVWljcU1aUjVzMnEwN2ZMaDRUczJEblEzUzQwU2JEY2NVL1RNS2M5b1U5eWg1eTdpSDY5SnhqOWR2eklMcE1IVGpD''@;'; + put 'put ''QmdLekhKb2lPNkt3ai9aY0JpNVlRamV6WURkRUo5T2NBTkNzZjJtd1Bhek10dmg2R2JiajJweUhiZ3Z3UHg1QTR4aXlNNDFQWk1LbTIxREZjemJzTk1VOVAyUDdEVHB2OG5qODl2WmFkUW1tZ0tiU0ZuWFJwc292NjRTbFdHU1ZYUVNzM0tzbTJ5bURUQ1hzRitzbTFYUW4yQy9hTmNtc0M1dndN''@;'; + put 'put ''eEwvVnZ0VDNEYjhVbFlsd24xWEREcHFLY3VyOHJLRkNiWU10ejhaTWFBVTZIb3ZGbEs3WUFMSUdXWW1MRTFKWjBLQ2IrODNMUHJtSGo0TVA3SHRwbkpQdW1maVBZd2o3bThqbCtFOFlMVTNuVmdncDNnSGNPd0lQeHlrWmVTelpHWElBb0VhZ1BNM2cycFFpOVlzVFM0VHFaeEYwTEY4c3RuR3FL''@;'; + put 'put ''emM1R201bzZsUGNmMnhBL1hSY1lHcXBQdWhrVHpZUHpFakxrNk9OZ1ZyS2lxc3BiMmRBeE1WNVVOeDd4bGptS0h4VnJaSGh1YW8vWVN6SEdSZkFqc3BXZ200c1k2R3VZRnMrNVdxa3ZJQWowMEFDU0FaM2FBbTNMTUJyTDdxQkVVNU82VlZjNHpBb2xMRDdDYTBualIyVlRXUGpvK2Z2RDY2eXRk''@;'; + put 'put ''UmVYNkVxdGpvaFBIcHQ3Ly9pbnBWWS9mcE9jNVNLOERQclZNdnRoaFFKS1RMeUJhWkkycGNnZmR5bE5aOE9jOVFDNWZRTVg3V2V4ZlpRWlRSY1ZtWkNVV0tsYWFGU0VEeFBKSEVDa2daUEN3OUJJVk1uaEN6c2toZFVTcjVPUW9rUXpGQnJUYW1NZHQ1NkVYMS9GNzd6bitUd3RnK0p6QWQxTUZq''@;'; + put 'put ''Y0VxUmtJMXROOGF3N0ZlT29aVHZuek56Vk0zbjExK2ROOE5OKzZESHQrSmI2RmZhMy9FTjBzMzUyTk5OdWliNVlBWlJRM05KNkdkWXd4OUMwUjFLR0N6MlNqMWVNT2kzeDVPdXROSjBZN3ZlOS83VDN6MXVaUHZQbmZpMmE4Ky96eldyMzMrODI5S2I5QitTOVpIU1QzMGE2WFpNQ1k5Z1NsVEk0''@;'; + put 'put ''SElYVlBpUEVEbjdtSEVhVVZGTm9jNkxOaUZCYmFLUWl3ZXIzV1YrMHA4NXRMWExudmdrNnMvOGV4dWVkSTFXbVJ6cFlsZU9vby91bmF4TDRQNVdrQjg0dS9CbUR2RWVheVhqdk1rc0UvNkNiNUhlZzBIcEwwaitORDhpSFRQUE91M2VuMHZQa0srQ0ZLck9oTXNZY1lsYUdrODVQTVNtdU1HSUxN''@;'; + put 'put ''eVAyTTBZWFZSL1UxRGdHbFFSaWxnc3pCTktIWVhFcWViSHhXS2xNdEViTjVmamVzYlV4RmN2VENoYjJ0MTRsQW9ITVN1bGpiOVBUVURUYmZGNjNycTR1ZlNBOVg2Ym9PN3R2bzlEZW1Dd25UREhkVzF4WVp1R09leTlRdm9DUlkzMmprL0RteUl5NGFIbFZ3MW1uKzVGNit5ZFFCKzlDenVRMCtw''@;'; + put 'put ''aG53WUQ3SXVadVhUZTRRbmFPNDJFUjExYnRCcFlaNkJrcVlaSm1rUUR5S1FQOGdvV0E5c1QyMWJpd3VtSGdwaFoydWJmaGRkRkJXdTFmdDNMUnVLYTZ2dmFFZ1hGcVFiM2xOZDZ6WjA2NnNIMHVmWXdtNUw5OWZvYWU1NUM2N0d0K0ZIclNJdVdGK1hmb2tNanlQOHRQUkxsZzNCYzk5bjBMZVli''@;'; + put 'put ''TFd3VXlzNlFhcVFtVkhPY3AzczlMeG9vL0hMREV1ZWFBaTJUZkpCT1htZzVVd0ptRkJLdnNCYVAzNU44VDh2WUltTUFTOTRLV1lxeWt0TDNDNkh2YWhBUzh6OGZBcEduWmJUN2tIY2w3SWNPcDQxem1QWE5GK2NiaXJvVG5BL0ErQWpnMnJCUDV5S1RuVWNibTA1MGpIVnNOdmJHMmh0Qy9WS2Qv''@;'; + put 'put ''YzBOdllFYTdXWlB2UFlWVjFkVjQ0VjlIUnFxNzJkdFNicEwweVJqcHNQMlBHQzdXQWJ6NEZFWkF4c3lUTFVtOG5BVHRGa0lpVFNYR1FSRDJzeEFhRXFFblljd3Z3em1sVWtpdHk1Unp6cHE4eHFEd1pBczFEakx1ajBwdElzZTFNZDdOQ1ZZNXA2UnNiV2ZqcVV5YlNzWkFhdTh3d1dUTVNiaDU1''@;'; + put 'put ''N2JtNnVvZmFod1hOOWw3ZkxwMnkzREQ2a2pzMjZVRXVteVlHUkFZK0FpeWt5dDJSRmh3bVlUV0RHTFJ0WmpRRFBlWE01N1RhbEJxRElSS3NBV0htRlUwa29oUy9HOFBqUmU3N3lsYThjaGE5N1dEUVhEdzVtQjArY2dHLzRLQTNwc3YzcUlwUDRhdkljeTk5SnNDaGltQ2F0QXYyeXdQNlNWcUNJ''@;'; + put 'put ''d2hQYlpQRFFBS1BhKzBpb1BpOVdWcnBkVlpYdXg5alBLaGVacEQrOVR2cU0vd1I2clVGSi9IL3czeFg1Y0owV0ZRbTREcjBxeHpYSDhTM2tycmNURTZWNU9GMjRSM3FlM05YOWRtT2lidEYvNGVBSGhzZ3JEbGx1QjlhL0FYN1BvN0RUL2d6NDRhRHBFTG1KcXRWM1VTM0d3dHJzV0NQRXRBSld6''@;'; + put 'put ''Qjk2bUV2UE53b0hMbXR0WHM3ZzhyR3pZemdRbjI5dDNadFlxeUlmWFRzS2ZYZWlWOUNYUUhXWjZKbWlTakFRS2pJbVZNbTBUU3JzSFFvRVNrdmg2eFg0NGZmRFJ6bmV1OTZKMXFGQk1UckQxbVlCZTBWak41QjhWTUpNb3hKZzNJT3ExcHlrU1VRZ3RGZnpVdlVBTzMwQkM1Q0JBR0hkdEJNTTE5''@;'; + put 'put ''bkZ5RzBQQkFKVVoxUE1zUVFORm81UTVUelNXcE5YcTFzakpUR3JzOXp2OEFCdFdteFY3Y1g2U0tnODJGQlVFSFU3TElVMm8yMHN6ZXBqWXJEbnYyTjdIdEhSUFkrZzd6RTZESytQNEg5bHNzbUxXalBwU3FmRHJDSDg2STBnT2xGR2pGeFlnZVk1Z0dSMTU2MHFkdG10T1pwRWFuSEZVM0VTYWJk''@;'; + put 'put ''T01WbEJ0dUNrTE1GaW0vT2k4dUpNdW1welpoU2JPenRMRW00cTh0RnFIcXVJZXRHZm9jOGgvZU1FUC9ZNUptUzNnVG1HSFR2QW5GVmdzSWdlM0FIbThoeE1BZnJvRGpDcnViRlcwTDBjaG15R2VUblhqd2w5Y3lNTXp4TVNYZ01aWkFGVGZ6RFRaNlh5aDJsNmNNSkI4dENzTkwxbTJRQUNVYmNB''@;'; + put 'put ''ZHFaOHhxUGwxaEp6NVd4Rk5taHRrWVdTQ1NRa1ZqSkhValNaQ0t3Q2NGR3lTZ2FKdExibkRMNlRORXZpdDNrcXlWMTNrZk9MMG9meE1la2pMUGVqaytYcXBEREpsTmJXQ0VRajZpcUFOTXV4QnBmWmdHNnRtQWhhbWR6cjZkR3NnRS9DTjZRNW9RUVBaZmt0TzJ1ZzNRN0FuRDJFUmcyb0FkdEFH''@;'; + put 'put ''eUdzdWVsdHQ2cWs5VUFiV2drM3ZHV3pUR1J6QzVyWFI0NXMxNURIL1drY0lZVWFnN1hBZGw0blZUVThCbXZCc21qWXpIM2JudmNtOGN1TGdjR0c2M29LOVpXYldkTTljL2ZNNW95bHlVaTRMOXFzOFc3azJHYmprVS9NYmN4Z1FveW1XTDRQby9GcW1RL2V5V2dLcTJoek04d3g5UGdPTUdjVkdP''@;'; + put 'put ''Q0RhM2VBV2MzMXM0Sk9jcGc4amE5ZnBEa3piS3dJbjgvNis3YjBBNklDSjFRd3g1Qm5NOHo2cndIR3h1WVQ0Zk5aUDc4RjV0OEJwb1ROaC9lenN2N1pqZk1CZnFxRmI5OW5PUVRsTkx0OG8zV3hvR2RuREFhVmVXR3h3STl5U3htcjhYTkNzd0xRTmNaOEhJRTVURW1yRWtNQTNrcUtvUER4MTNu''@;'; + put 'put ''eTE4REFyNlo1K3RleitKbGNDaGh1V01UK3RVZDRJdGlMaS84QU9HRDVMVXlteEdXWmN1OFdQTEdjRFlhbmhMeTNuOWtpZHpiREhNT3hIV0RPS2pDd3QxL2RBZWJ5SEV3QmVuSUhtTlhjV0N2b3VVM3lpK1pNM1lGZkpRNVFBcm9uZEFqSDZvSmg0SXh3bXVac3V2R0h6NzA3Yys2Mjd0dk9kYjc3''@;'; + put 'put ''M0IzbjN0M0pQbWZlZlE2eGVqVWxSNFZXdWRhamM3Si82OElhVWxkYlhsWmkxdEdVYktRVlJqenNxYUI2aXVIcFBHOVF6SUlwOUxqZWxkVnRPRUVFZzBKOXBPVGlSNEk2OVhGZnBoQ1l2VDRRQ2RuRGRsWnhvV1J4aDhBOVRLc3lVSk1pY3JreEQ0MGpYdTZGWFVueTFlVEIrNWJTcTVHR0kvTU5q''@;'; + put 'put ''Y0RhVFVjajlVZm1KRlJaaGtlN3NzRGhPSE82djZKTWVpS1RKY1UzOUMzZGY5QlhtVnFKMzlnSHZPMnRiRnlSZmp6dHd6ZFREcGYrTUhUZFFNTzBYN3E1bnVLZTVXbXdmVzZXYWVIUkxmU3lHZVlZK3ZFT01HY1ZHS0NGeis0QXM1cnJad1Y5YWpPZmMxdVpqZFV1ai9YY3huNDI1ZTgwWk9xQU9y''@;'; + put 'put ''UWFyRjNXWWZuNEsxZUVDWnJMNG5KWTNFVnVhOGhiSlBLc2dxUXEyeW1ZeTNaYWVXWkx0dE9abHRWTTkwckw5ZDhiYUcvdmw5WnlzU3ZpSlY4RFNUWC9sQkhzZGhvdXFRZnFxQUFkQUVwTW9NZEUrWFJUdktERGN0aTZURTVxWE0wQnFsN1BaNHoyZ0RmZ3JmT3pZNjFjakZSVXBwcFNjbzFTaWw2''@;'; + put 'put ''Z2NlYXhsaU9aek9IbWcrMDBXM1ozZTh2d2NFdDdKTm5iMDVqc1hTYm1wdWxvZExycFdMcGlYM1BUZEd5ZTVzbk9kRWFpN1oxeG1qTUt1T1o1QXE4QXJ2dEF2eFBVdTRpMmVTN0FIbnhBOWZ5aUFvL0ZXVFg4QzdubkJRUHE1OC9sK2wrWlVEMFhLblB3cGhzNW44Sno0VU5nSDBaUUVtVndONi9w''@;'; + put 'put ''TFNzRExIczlZSTA0c1ZIZmpIVkdBeUdpam5wMnVoRzVpSGRIR0JPRnliODJiUE42ZnA2UEV3SENvbFdHcTBpUGRLSmV0MXhnSUVwR2ZrbTIwR1FXcUJiUEp3M1FjWnN1MmNhTWN5MnloZGhrVWdtTXpPYUdLTitNRmc2L1pSZGdSbFExTnRiWEk5U1lhZXhxYTZsUDFpZGlVY0JjblQzZ0R3UURR''@;'; + put 'put ''VXZPckZEUzNMZGtZUER6aVUwSHZpQnpPbkR1dlBGbGZ2cWJPUm4wWHRtN2RFS1ZuakhYdlZBU1dHM2JmQ0lzZmFBM1RMTTJlbHI0MlhCTEl0RXlONVpQMjRqWFJ4S3FrMkxwRG4rYlArQm9xcW1Oc2J5RVRwYVhrRUlQWmNxRFdLdHBEQkdkTmxWS2tLNEVDNmk0RURhNEFMeG1uV3dXQm1oNUFB''@;'; + put 'put ''RmpRUWNjcFdPc3gwcmRlTkxGQVpEQ0hxellkVUVLQzNBM1hSbzQ0OXNDeHdyZ2orVEF0UlQzeGhDejNoaTNCblIvb3VGR0V5WHdEK2JpbHEyR1czSDM4YTd0c2ljQ2Rac050eGJEMk9tZUxka1VuTDk0ZmdEbDN5SE8xOHZiUGFkOC9SSFY4NHNLUEJZWDFmRFA1ZnBabVdIUDE3L0d6dXhvUDkv''@;'; + put 'put ''Zy9kL080V2xRTEtKNmZzeko0WDhHejgycy8yL3cvaC9rejM4TXorMnNmdzYvY2krUEw5R2FxVTd5VFZRR1Z0YmVqTDJJMVFiS2xwUERialBpb2V4anBmUVlUd25lV3pka2w5SkRYd3lhQUpOVjlXTndkOHZMeTJ2TGF3SytVSkRtMnlzcVdORys3aEExS1VMY3BpQnk4cW1PMjlvL24rNDVreDA5''@;'; + put 'put ''Mjl0MnJPZEFiM2pmbWZMSnFvYWwvZ01WUFFWejFjT3hnWGw2OUdINTFOS2VXNFo3ejQ0T1hkVTFQanJSMkJzb3JneW42M3JMMTM2MmxJMk8xaThPeDhjakZFLzhUSS9LeTBrdUwvZm04VDNLOExlYjQvWDBkcy9wdmoyZ2VuNVJnY2ZpRldyNEYzTFBDL2FybnorWDYzOWxtY3ZkYm5SRXJtdTJn''@;'; + put 'put ''TVhjbGdIdHJGUE96QkVMVFNFTmtQOHNrTDkyU1FTKzFFNHdqOUJUVkFyYVZZa2s2cWxycmo1R0I4ZFFYYU9FcmNHZ3B5UVFLUGtGcmFYNmx2d0wvbEtvdENRWUxDa05kYzAvcjN5RU9TbG5qRzVVaFdweU5wc0RiTFl3UUxsTllKM3BGWnNObmdxcXA5dmFiQ1hiMld6cUE3THRiRGF2MTF2anJR''@;'; + put 'put ''N2F3cllOTnB2YVpLTVdtOFp0NXdhYml4cHNZUUVFWnpnNGN1UFFaRS9aL2g1ZkNCaDZvcjlzZnk4SXU1L1V4S0s3b3Y4OEVmWENKL3pCL1ltaEcwY2lWV09oaFNTd2NyMTMvTGR4YlBJQU4zOFIyTGs5S3IzaFlmdkd6MmpvL3M5eHVqaUl0bmxPNmVKRHF1Y1hGWGdzN2xYRFA1ZnJaMlUzZjg3''@;'; + put 'put ''UEhtZy8rK1YrN2xhZHEvS2NyQS9uejFXM1RaZmJlcmE2UTdyY3RvZXcyNytXTStmb0llemJQSVcxL3M5UFlZWFZyZWx5T2R3OEorTUdjRGFKVkRHWGxseGM1aWo2MkJhL2h0cy9kK1hzbjZPRGFMdVlEamFnKzNab203T2RzR0dTeThiUzlUMkNGMnhmTi9UU2tXa3R3VUI5V0lmSmlCNU1idGhx''@;'; + put 'put ''c3NMS2ZlaTlNMERQU2xtZEhZMFdGeGVYRnBjR2FPekc0YVZCQnkyUG9hWDlZVjRLeGxWK0ltMGlndGVmaUhlNEM5cHpkV0hGRmVVbFpSYnB6anZ2cW1oTkJNdDRpVmlGdTloanhaMnNVRXpPTzkxRGVvQm42VTFDVDNNR0xQT0E2VldLaWVDQXFkVkg5SUplRkRIVzE4Q1VtV1cyM1d1dC9Gcm00''@;'; + put 'put ''UnJvV2RRVGNWV3BaQzhCeDFxdjU1RkN0M3FKbmt6OVZsaFEzQmE1QWRvRVA1K3gxdGJXcG1vYlF3RTdHRTFocjFFc3k2RWx0WVBONUxRcWlBcXBNbGhKRDBWWnlaWWsxcFdyT2VwK3F5U3pVZ1NHeS9vM0pyUFMvRmFHelkvbGsxcGx2L2h1NWd1RlpGL281MXQ4S3A3TFNYbDNRT2JkRDZyYW5s''@;'; + put 'put ''WGFZajE2YkllMkYrVzJCT3ZuT0gyeTJqWFdOaXkzUGIydHovNWI4Z3pBRERJWWk5QUJKcmtCWUo0V01BVUNHRGxHQXBUL3pseU81N1VnVDByaHpXc1hiQnBpMEN1bnpTR3FWakFTdEdnWk5nZ2tpMTR2NTlEUlV4RitNUVZQQ0tMU3AzWkhhQ2JGYVJNbTFkMUVFVU1iV3hSZXNzVUc0RHljVGlm''@;'; + put 'put ''bjhhcUJhVHpQNXZGNGFqMDFZWG9pSC9MTHh6WCtMV21neWtVZ2FITTJ4YldaRGVrVTk5OS9LQ1A5VXAxVDBiLzJqQ29uOUdPdDdlMXJYOStRVlpHTG9iWGtZbWhINGY5dDlodnN1YnR5OXR6UmNiUmQvQTBiMFhkMmFLdllnZ0xBZkpIWHlBSFA5N0U3RmdZemZVV2dpSzJBTzM2R1RMUDdLZU9K''@;'; + put 'put ''QzBnVTVZQXlGZktXTERNa2dESHRXdVhZemVHblZUWld5b0JLUGFKZjRUTzN6SkdxQXNWaHpsVVZURTVKVHlqVmlveUhtcG1JNGpXRzlLeHloZVhLaGxBOWVtZkdScjJLRUNaYXNCMklBV3dCbWdsZkJ2UlJEZWErUnF2VExOTmdyYkxqOHUwNExHT0dTUSttcllJS0tGcy9QcnhkQzVxb1doUU9o''@;'; + put 'put ''K3ZERVpmUEhtcjBCMW1ZVjl5MEl0Mld0RnZxR3lBNTlmYkgyY0xjSW5XNmdvMHB1TlhnbVVtL2tiMnVVbmVoc25LYkZhdnljY0VIdzJkNFN1NDJzVmo5TnJIWXpiNkFYdllGV0swbW81RmFXV2Q5ZVV0Ym5rOUxhV1NFNjZ4VGNsdnBaN1RPazdjRjJyR1FVc1R2ZndCNHdZOEtVUU5xUmZka0hQ''@;'; + put 'put ''V1ZSQzhxNVFvQ3ZRNEVEWEg1VUdlaVJ4U0NYck5xd1BsNlhsSFVMb0VicmRYeTArMGxmcnJ0b1pkNmJZVTJZcDNPeXR1Z1RTM0FtWTVHYVlRMjJocHRTU1V0RFphR3VocS90NnpVYWFlUjJtS3pZdHJTKzZpNE5lditFOUoyY1dWVlZkZ2ZNRGdycTF6Ly9aWVp2Sk4xdnJLMmhwSmdUYVhMVlRY''@;'; + put 'put ''NnR0SjV3WmQ2RFlpeGl2RS9qMWtmWGYvVWxyajI5d0NtbFBFLzk3ZU9mb3pIdE9McmU5RHJ3TU1PbnVkQXNJUG5nU2hYZWZBY0lLNHpBMTZYbDVYTHlDZHdhVm9rcVhEcTY1UlVMZVpsSFdkUHF1c2NnUUx5a0d3cjBOelpkUmpyQlhZVzdhVzU2MDRIMFFoZUpqSjBxbzJWVFhOTGpxTlkwa0pW''@;'; + put 'put ''UldteDIyVXAyRFl2MXE1TXlLMmUwU0g1akhxWXpxekNiVDhjNTFQTG4xV3ZWY0VzeTJNbUhYNTk3WS95TklGbWFmbk5VL2t6QUpCM3hrMXhTSlpqQ242d05sZkhhOTFTeHp0NCtEQk5jb0wrWm9BSFBnUzYwQWUwem5nQS95djNtZUY1QmVPTmNmbjVwOWx6Vmp2TGRIOVUxdjNXTGZ3R0hJcnJo''@;'; + put 'put ''ZmNBeklRTTQwSVhPTXdGQlliWDRENmo5QVA5UDh6ME5GYnBhZHJQWVFZekljT2Mzd2pEOC9sSkw5QklBYzM0Tkp1TUJuQzFCRDFScXBFM0ZmWVdvQUpucnJCWFRGRWlTVHRGSittVkduYnRXcm4xMXNWRnNBRVhhdkNJOVBQZWhkNGZ5dlVDWHBhWG5NMFVtSXlpam1wZ2ZUNHYzUVFmaStSNnZs''@;'; + put 'put ''eGFjTDdFejhOK1V3NWI1dWVmZExMN3N6RE5DNVRIeDk3SlEyTmpoeWJ4d1JycEphd0xMNFR4blBTRG10eVp5VTNLbVFuZzhSZmI0UnA4OWxka241M2FXZmR6V3duMjcyRzJyM0ZadHZIWTZoQTh0eEtyQWc4NGZTRm5XejNNWkhCY2xzR2YzMkdzaTduNGdQNDRVcDJUdE9UT1NZNmlwN2JZWmR4''@;'; + put 'put ''dnZpdm40eDlkUU51ZDUrREN6V2NzY3R1cGZQd0JGMTRtNTZHQ3NINFY5dDZHeXVtNWZlNTJBVDNKWFM5Z29LWFVTcTRZODlUSzdXVXVCOHNyNVlxOUpIOWNuRXV1Y0dKcjNnenE0NnA5N2ZrRDl4ODhkUDhTNlpIRVlYcDBlYnFQSy9lNWp5OHUzYnUwS0pueGZ3MmNIUmk0a3Q5RkNITVcvaDMw''@;'; + put 'put ''TzExWEM1cktUTHF4WG1jZ3RBQ1poUWVBaGpSYXZXYlpiQ0E2blJJS01JbEdRUlVNU0NiOWZvU1NMY25tcHBRLzRZL1gxVUIzWG5zZ0ZBZ1d3THczaGxIek1sNmx0aldiYkRwWmhRdGxQSDdhZXpvWVBOTXp6TktiZTA0SEF5ZTdGVFV1WGFQS2M4YlhicWlyNld4S2RmSE01NDdHVkR2VDUwU2Qv''@;'; + put 'put ''SXl2cEpwZDF1dkgyZDZtWlByOTRoYTY0RG0zZEcrbmVXd3VLOXQrUUtmSEdmMm1aRHE5eU9HbG45RWNYUm1lUG8vbWJJampqSDVUTXYzZXZPMVlaeGo5VG5QNnRmR3hXTzB6bTJlVFBNK1BiS0Y5bnF0TDV6bkQ1M2tFeVhYVG5heHV1Z3Y5ZDhZVmo1V1hhWFQ2RXF6QnhZVkUwQlNBdWFEWlBs''@;'; + put 'put ''Y0F6TThsMFBrdTd2ZHA4ZFpUZjlzMnVRSnYzV3JiWElHM2FyWmpyc0EyRFhtdWdEa1k4ZFAwSEsvVkFGN0ZKVUxOb2JkUkhrN2FycjFpbTZDeiszMnJseW9aUDM1U3R6bjJiRHgweVJKeWViOVl6blVIV2dmakNvdTZXQVhSaXVYQWs2VzA0RkM5YzZLOGM1R05PeWVLdWlWRUt6QlFQaUswSmNt''@;'; + put 'put ''amZ0UEd2V1dqeWkyN0RidndGcTNZRWVOMjI3YTFIZDgxVTZDMm1tMmFIdnlaUzUwUDRMZktMTWN2SGh6ZkxzRWp2aFRlTWQxODE0eDJjNWFITmx5NWMvNjVpamZQS3J3SmZMMjRBMjllVkhnVDYrczRiOVlBYjlLN0FxclFGek1XTnhhUXl3ekt3RVR2SXBTM0ZnQTE3S1NHbm55U0cyaVFUMDR6''@;'; + put 'put ''TXVnSnMvTzJITmhFYUJNTlBZaDVPMjB5Tlp2QTVXT2JMYTAwTkpZSUpoNU10b282N0hTYnFOZnBGWGZZSStySTB6c084RDc3MW4zd09PbTlCNXV5NEhweTF5Q3d2UDVPbHRmZmdMNldLYTdCZXFIV1NReDZCeWFHWEZLZk5rZi9XbzMyVmlPR2lXTERTVkJjZ0dGYVV5Z0ltZ1Vkcnl6a3VYdkln''@;'; + put 'put ''eFFzMWVmYjZBM2twcmRxbEtuZEhwNmxCcUlqcW1ZQ3hST1YydzJvbmhVYnVBRlROTEtoMllHU3R4WWd1Q25oNC9nVzJrMjA1MnNTQW1YVlJadXpDSnYxbzJsMW1VS2YyeGhnOU1mdXBHQTBtcFpwOUlvdE5Pb0ZHMFpndHV3c3QyWEp4Qlo3bCtjaHRPVHlFSTV1bzRkNHJQeXVYS3o4NkFoUzVU''@;'; + put 'put ''QzhuTXR6TUtHLzM1TER3TnF5ODIwV2x3ZVltN2ZMb3dBYjdCUGJ0bTNQeC9weDRXNGszNmV4aDkybkVhRG5NMDRRUndXd3JZVkE0c3hObHROUDhuSDF2Tk1FTFFLQlluL1F3ZThuWXRrRW04SVFtNjdmSVBlTTNqYXR0K1ZpRDQ0ajE4bjNjSkR6N05ZTlM2a2NiUEI1M1BlY1ZGL0t3ZWM2QUhP''@;'; + put 'put ''ZEE3L0lqMjdpVXRwU3JJZE5FVEVXL0ZpSDZabE5FWHZpWjVGcjRGRThMQWQ3eStSS0YxcFpzazE4dDBwK1RXTzZ1ZXFUalNGZFk0Q1d1SVc5b2lyRXZiVVNKWm1MNHBJNUZrUlMxNlVjenJ1dndiTE5CU3FLa3doN3hlNEtZZlRZeW5OZThOZ1dPdUsxS0ZSbTdtVzBJS0x2cVBKY3ppcDVMdkQ4''@;'; + put 'put ''M1Z2YThyT0hpOHJaQXhibmthcnRhaTVIWmdYZHNJV08yQjBlak5ZNlpGdHJTNTZiWFA5QmFXMkIyMXJ5ZVNOdnU2cTBCZC8zMnp1MGZVNXVTK09CSDFhMVBadHJxMGRuZDJoN1VSa1g2OXNZM2JDNld1cFBGOUk0Qk0xSXB6VTdMQTdCQ21ESUFXcTlleGhSRjZJQ2UwQzU3a3BWRG12SWw4Ritm''@;'; + put 'put ''a3Z0SzgwYlAwd3V2czI3UE56MExvL1B6SzcyajQvMWtZdDM3dDY5ZlIrNStpU0NiZ1dlT3kxWEo4bDlwSk9pdjZ0dmJMeC9kWlpjM0wzN1RybVBFWHdGZVE3MlVjN0dOeEthano5aUFCVTV0RjMrZUFFeUI0VmNOcjRjY21KT3ljUGpsWTJPVkdscHl0RllNVkZMUnFvcVVnNlh5NUdxcUdMalRL''@;'; + put 'put ''S0hXS3dseE1hNVpHNzY1a3gvSmJzL0h5bVJhd2xHc0VPb1pMVUV6YXhYZW04T3phWmYxV0lCT0h3MlZ3UXF2SzJLQXZYOTlUZDFkVVVpblowUmVvRTYvU0lqL1BkSVY0SS9jUHQ0anZ3ZVFMb2JXVkVybTBHMEVCWmpvZFF5b21XVkFPeFdHTURwTEpPRUFuMHp3YXVtQWk2TlhGVWczOE91Q2pM''@;'; + put 'put ''ZjBGSGg3czhGbGg5aFVTRzNIRkxtZDdtVGRudzdlUUZHN21IanBwM1FzNEZWYVRrd0h0SmpZWkFlbUpOWnFrNkJmbGVWS3pTSU1NR01ReGZvVUsxTUhJaWFmTW9WeS9TR2RLNHkvYmpBVjJ4MW0reHViYnBvMnNrKzI5eTZ0R1dHZE5xc0JRVVZYc003K0UvOURYdy91dkIvc0ZvSUVaWHlpZ0V0''@;'; + put 'put ''SUdlSXVyYW43YlpjRFlWYjlBZmxvZ2ljUGZDQlFmS0s0NVlQT2Q3SitLNVgrdG42ayt0ZkFxWUtzQjVLK0Yza0crdTBBcm0reEkyWGtsL2dnVTFQVlZWNG5RY3RXUUF6Sng5dlV1UWo2c1YxTzhqSFZ4VDVpSHJSNHdodDAvWVlmdm90Mng3RFhhcTJxN20ySzdoL2kzemtiWi9MdFYxQlgrZis3''@;'; + put 'put ''Zm9nUGM5UW40VzgrVHR1UDd6NU85bCtpQUJNbVBuR1F6TE0wd3lHcUdCNHJQM3lYRDhGUUEzYng5cGZ5TVhhQzhiUXRqbVF2ZWk5TytpR1YzTG4wcjBIdU81dFJQOUdUTGpqcmUrQmYxV3F3UjF6U2h1aC9XMjBFZlJ2L2w1cDA0MC9neTZTendMTmxERjZHZHBjRU1mcHhhN0V5M2xzOW9YOEJm''@;'; + put 'put ''Yms5ZzAzMkRQYkIzOFdmWnM4Q0N1MkFBWml2TGFOeEhLMWJUQW0vbXMyWmptOTBhbThFT2g4UXlHVHdJUmFvRGhnWXpkSWJSeGJ1K05Vc0c2SGFWV3BQdlA1NFVmSWcwVmhQajgyejMrR2VkcHk4NlJrb2t5WVl2Rmh2QXZXWk5tcExvald4Yk82b0UxMThZKzMrbnp3cjRYK2V4ZytlZW52WHZq''@;'; + put 'put ''QThkUUxkUE5PZEIzc1BUZ3lSWDc0L3MrTWhxM0FJd2prUUdUOWQ1b3pxcitQMGdYVU9JdCt5Zk1jNHhhc0xlUi92a1NQZFdac05PbU02ajk1WWkrd0NTYVRzR1ExRklrYTlWOUtTYjFGUS9aWFQzaHJrYllXNUwrWDBySnR1MjMrWXNxV3R1Q0JOSTJPWmpMS1gwNFpuUjJkMmIwcms4Mk1EUFRG''@;'; + put 'put ''dW1LZHpVM2IvaFVWeC8vZ3I2aFViZm85b0lLdGF2cVQvOElLSHNrcXY0eEVwZlBLMzF2NUsvb2g4YWY4NFpYODU0bUczQjloeWY4eEZneldmUktYNEwrak4rWThBUVp6cks0THV3RjNnZnQyMzMzMzdqZGZ0RDl4d2NGcldRR3VRb0VUR0Z3NDdSWnJQL2pCM1ovKzlPQ0ZKK3d2dnN4MHdTL2tP''@;'; + put 'put ''M1NqYUNJeld1WWhHbnJIZ0lsWjZScFFjT0JiTHhzd01XSnNvclVPdVJvWE0wdE81UkVRK0I1RkRaRzYyaHFyTFFqT29OVWVMS0RCcTl4RlEySHdGRm5tU1NyWlNmS1ZsVFJoREpEczlyS1FLaXR2U2R3Nk5QYWVGZmZNSU5FTTd5OVp2bTFFTG1rWnVOYUxLNldYWUNHdDB2Y3Jic3BPc210M3U2''@;'; + put 'put ''OGU3Qzh1QUNYZWUxazdLMmdaNitvdks3SGIrZ2RtWlpubEpRNThQY2c1M1JPRTFoRFljN2Q3WDAvdjlXYUdESmd5QWtoZHI5VkxoTFUxK3BYTFhXaVI3MkxRUDFWaUw5Q1MyRFozUFcyOUs2SGw4Q1h1U3ZqajNoMnZTcEJqOWkxVXh1T1lmT2J3K1Z3c3Y0WHFMdlpjZGM3S25sL01QUmV2UTl2''@;'; + put 'put ''Qm81V3IxTS96L2ZmS2ZpcC9mbGNPL3VneDVUNktQZVJkZ0FNdmlnTU9xbjAyRERqWTdHTXBpTWg3V0lITktIa1g4N2pVYUpFOXJuV2tRZzkzdjlRSWtsMnZlemZuUHJENVVuK2Jyd1A4N1UrcDF2RkNEaDhGUjNNNS9PZzh1M05Hb1lPazFUK20zQjZEYWQ0YnZOZHVmYTlkbTBEL0Q1RDhFaUlB''@;'; + put 'put ''QUFBQUFRQUFBQUVBQUE4Q0creGZEenoxQUI4RDZBQUFBQURUd1oyR0FBQUFBTlMrcE92L1EvN29CSFVEeVFBQUFBZ0FBZ0FBQUFBQUFIamFZMkJrWUdBKytlOEtBd1BMb3YvTy95dFlTaG1BSXNpQTBSQUFwZklHcXdBQUFIamFkWlEvYUpOUkZNWFB2VjhHUlJ5c1dGRnNhekhXSmtTYTF0aHF3''@;'; + put 'put ''Y1kweFZTVFNGdHJnMElYY1ZBUnNhQ3A0dUpTc1E0dTR1UmtFRjBzNnVSVy93emk0SzZUT0VsVVdtZ29XQXIxODl4bklqR0pDWWNmZWZuZWUvZWVkNzRueTVnRVA1S2xXcWtkeU1ockRHa0JRYjJJRGkrTWlEN0VicXhnU0M2aG53ckxmZXpYY1NTa0NVZGtDakZaajZRODh4ZjBKWG9sajJiKzE2''@;'; + put 'put ''V2oyS1hUMUNTNk5ZOWVQWVUrUGN2eFBQcmM4NXlyR1k1eEhmS1lyR0tyTjhXOVN0aXV6NUhUT1VSMWxieUd0SjZuaXZ6OUVXbXNJYU90Mk1LYUpuUWZCcjNUeUhrZUZlTC9zMGc3M3VQenJGMnZJNlFMR0xFMUF3ZlFwdlBVRTJ6VVc2enpDbzZ6NWhXeVM3NmhSMGY4WHpLQnVCN0dYcDFCVm5l''@;'; + put 'put ''eWxobXVOWWFJbkVPNzNtVHRPUXhqQ1lldzVML1hUcVJRd3JCM0J5a2JaNTBSTjQ5elpCWlpLYUZEYm5CZWpuMG0wT3dOb1VVajdHMGMyM1FkZXVRdU9xVUZGOGl3dk1KQjg5M3RPWTJZMVNndldFc2JRanlMdUt2ck5vTDRpUUVaY09OUityWEhlZFZBZ1NiUy9EUHZxb1ExLzRQNVJ5NVNYNzNO''@;'; + put 'put ''Q0ZlOHE1VUdrWEUwLzZwbC90Rm5ubG5XZWRWQTNqeHB2WXo5Sy9yMmp2Nmx5Q0wxUmEveS9DdmUxY3B5WVRUL3FtWCttYzlHNjlmMnJLWDFidnRYYURuaXVWaS8rcURzeTVqYnB6RXRhM2JlWmRLcno2ejNFNzNySm4zeXFQWGhNc2djV0E0dEMzOTVCdTB5aUhiejF2cXJZOGpWRUtrd3NBSFJ3''@;'; + put 'put ''Q2J1eTl4YWR1cklMRnVlNnNoOHU0eFZhT2RqSHYySDlnNjRITm9abW4vbGQ4SHlXRXZMdUJTWVBkTlR4UEdkUEVFbHFEZm8xekRINENjcmE5YXl6dFB5bnJJTWVNVS85dzFXcWNlQXhoSHpMdk1lYVNyZktZdmtJdmtJSi9VdDd3cmVTNEVDMzhNa2dsUlk1L3dmTGg4ZTUvSmNHM3l6eVA0R2o1''@;'; + put 'put ''Znd0QUI0MmtYQ1hVZ2FjUUFBY0x1dU03OHVNenZQMjNtZmVwOTVudi96N2tFaVFpSkNJcUluaWVIRGlCZ3hZc1NJaUlneHhoNUdSRVFQRVNJUnNZYzlEQW1KRVNFajloQWpJa1JpakpBaEVoSWlNVWFJak5qTFlQeCtOcHR0OForODdXT1hyU3NMVWRBMlZJVEswSDMzWHZkWmR3T0c0REE4REwr''@;'; + put 'put ''RkQrRmF6MmpQVWs4SllaQVVVclJqOWhuN25IM1ZucmNYZStIZXVzUHZXSEFVSEEwbjdrdzV0NTBsWjhXRnVJQnJ4clhtT25EZHVjUHVkZmVweCt2UlBmT2VEYytKcDRHaWFCSjlpaTZoTytneFdrRmJmYy83SHIwVDNtcS8zdi9HWi9ObGZYbmZuNEd4Z1pjREZUL2xuL2VYQjBjR2x3ZlBNUmli''@;'; + put 'put ''d2hheEhIWWVnQUphWUNXd0hiZ0pOSEVLWDhDUDhZZGdJamdhekFaWGdoK0NGNFJHSklrTklrOFVpRE9pUXR3UzdTZWpwSmZreUFRNVRtYklCWEtOM0NUM3lTYjVHUEtHdUZBaU5CN0toSllwbU1Jb2lVcFNrMVNXeXRFUWpkSUVMZENBSHFIVFRKcHBNUjBXWVgwc3hTcXN4YWJZS2JiRWZtT3Yy''@;'; + put 'put ''UnJiWWpzY3drMXoxMXlOYTNFZEh1RjkvQTYvengveEpmNkt2d2tyNFhLNEhyNlBRQkUwd2tSQUpCbHBSRG9DSXVCQ1dIZ2xkRVMzaUl1S2FJa3BzU0YySkVRYWxyYWtBK216OUZXNmttclNieG1SY1hsQ2ZpZnZ5b2R5UVQ2VkwrVWZjbE51SzA0RlUrYVVXNld0d3FwWEpWVk5UYXFUYW1aSWov''@;'; + put 'put ''WkdpYWdRTFdxejJndHRYZHZTY3RvbjdVUzcwTDdIdE5oQnJCajdFaXZIcXJGN0hkSlJuZEdIOUJFOXJhL3FPYjJrLzRxVDhXeDhMMTRIQ0FCZ0RFeURaMkFSdkFZYklBOEs0QXhjZ3ArZytaK0JHSXlSTm1hTlBlUElxQm90bzVXb0o5cW0yMXcxMzV1N1p0bXNtbmZtZ3dWWnFFVlk4OWFTdFc1''@;'; + put 'put ''dFd2bS9hbXpBVFFBQUFRQUFBVHdBWWdBS0FEOEFCQUFDQUNnQU9RQ0xBQUFBa0FGQkFBTUFBWGphaFpMTlRzSkFGSVZQQ3hxSWhLQXhMcnBxWExpVHZ5Z1lYR3JjQ0dva2xwMEpTQVZpc2RBV0UxL0ZOekR4UWZ4NUFqYytnMHVYbmc2M0NBWWxrMmErbVh2dXVUTzNBMkFOSDRoQml5Y0JIUEli''@;'; + put 'put ''czRaTnJzYXNJNDFyNFJqMkVBakhVY1NUOEJLTWljOHljNytFRXlocWhuQVNobFlWWHNHT0ZubW1ZR2tQd2htc2E1L0NxMGpwY2VGbmJPZ1o0UmZrOVMzaFZ5UjBTL2dOYWYxeXpPOHhHTHFEQTdnWTRCNGVldWlneTVPYmVPUlhSQjRGbEVndFJrM3F1a3Jqayt1Yys4enltWHVMTEdxd21lY3BK''@;'; + put 'put ''eGVPcU1MZE5ubEU3VG01UTNMUXBLN0FuTHdhKzdqQU1SbzRJYzF6Mlo1eFdWekgvRlhKNHNxanFxZE9hazVWWGx6TjRueEZqVXRWMklGVE90aFQ5WnJrTThiRFdKVnorNThlaFgwTnVLb2d4M0UzNCt3cTMvN0VOY3VZeTNXVTQwdFdoOUdBdXlQK2tVaVQ0eHpWN0t0Ny90VE16YjNqWDN2UnJS''@;'; + put 'put ''dmtGdDl5NkJCTU9sYVQvaDJwcU1sUlVyRXl6MVpndklKZHZwam8xWlJ4UTUzTkNnUHB2MDF2bjltUmF4MUQ3dlFZOHhoenZnSEZmWVZqQUFBQWVOcHRrMWRzSEZVVWhyL2ZzWGZkTms3dnZWZkhYdmZFS1M1cng3RmpKeTV4N01SSnhydGpaL0Y2RjhhN2NXeTZCQUllUVBEQ00rVUpFTDBLSkho''@;'; + put 'put ''QW9sZlJld2ZSZWFRSDc5d0pYaVR1dzN6L0daM3puelAzM2lFTGQ1MGJZQjcvczFTYmZwREZETExKd1llZlhQTElwNEJDQXN5a2lGbk1aZzV6cCtybnM0Q0ZMR0l4UzFqS01wYXpncFdzWWpWcldNczYxck9Cald4aU0xdll5amEyVTh3T1NpZ2xTQm5sVkZCSkZkWFVzSk5kMUxLYlBleGxIM1hV''@;'; + put 'put ''MDBBaklacG9aajh0SEtDVk5nN1NUZ2VIT0V3blhYVFR3eEY2T1VvZi9SempPQU9jNENTbnNMaWRxN2lhbTdtQk8zaWY2N21XcC9tWU83bU51M21lWjdtSFFjTGNTSVFYc1htT0YzaVZsM2laVi9pV0lkN2dOVjduWG9iNWhadDRtemQ1aTlOOHo0OWN4d1ZFR1dHVUdIRnVJY0ZGWElqREdDbVNu''@;'; + put 'put ''R0djN3pqTEpCTmN6S1Zjd21QY3l1VmN4aFZjeVEvOHhPUEswZ3hsSzBjKytmbUx2emtubEtzODVVc3FVS0VDbXFraXpkSnN6ZUZYZnROY3pkTjhMZEJDTGVKMzN0RmlMZEZTTGROeXJlQnp2dEJLcmRKcXJkRmFyZE42YmRCR2JlSSs3dGRtYmRGV2JkTjJGV3VIU3ZpRFAvbVNyMVNxb01wVXJn''@;'; + put 'put ''cFZxa3JWcXRGTzdWS3RkbXVQOW1vZlQ2aE85V3BRSTEvempVSzh5MmQ4d0lkOHhLZTh4eWRxVXJQMnEwVUgxS28ySFZTN09uUkloOVdwTG5XclIwZlV5d004eUNNOHlrTTh6RFhjcGFNOHc1TThwVDUrVnIrTzZiZ0dkRUluZFVxV0JoVldSTGFHL0hXalZ0aEp4UDJXb2E5dTBMSFAyRDdMaGI4''@;'; + put 'put ''dU1aeUkyeU4reTlEWEdMYlNTUkdEeHFrS0sra1BlUmEyWVg0b2traGE0YkFkVCtiYi8wcC95TE95UGF1UThiQmRGRGFIRTZPamxra3RITTRJL0MyZWU5UmppK2NUTlN4c3phd2N5UWg4YlZZNGxiUjlNWU0yMHk5bTBHNWV4bDBVdG1kNnhETTkyazE2M0lXL3c1c2hZUmpvT0oyS0QxdE9halJt''@;'; + put 'put ''cFpLQlJHYms2elFkSE5PaE03T0RrOW1oMDNSd0RMcE0xWmdMZnlvZUxTbXRESG9zODNXYnBLU1pwc2ViSm1XWTArTkU0OE01cWZRejBQT2Z5Vktaa2IvSDI4R1VZVUZ2T09xRVU2TkRNZnRzd1hpRzdzdlFFOVBhMTI5bW5IU1Izejk5MnBQVHA1MmVPRmhXNWJJc1dPbnJIWGFzcVdzMWJ0QnJI''@;'; + put 'put ''TVpkNVBWR29yWmpqMFhIOHNiUHEzUmRhYWkrMm1PTnh3YVBqYjQrWXpUaEl2MDJXRklTOUZqbXNkeGpoY2RLdzJCVGRpamxKTnlnb3FraHh5cTJZc2w4eTUzRlNQZnVwMldSTmYzWjZUaGduUi9RSkxyZDA3TEErMzJNTnZ1YTFubFcralJNY2pJYWk3akp1ZGJZMUI1RmJDY3ZZbnZxSDdkbHR5''@;'; + put 'put ''RUFBQUI0Mm1QdzNzRndJaWhpSXlOalgrUUd4cDBjREJ3TXlRVWJHZGlkTmtreU1taUJHSnQ1T0JnNUlDd3hOakNMdzJrWHN3TURJd01ua00zcHRJc0J5bVptY05tb3d0Z1JHTEhCb1NOaUkzT0t5MFkxRUc4WFJ3TURJNHREUjNKSUJFaEpKQkJzNXVOZzVOSGF3ZmkvZFFOTDcwWW1CcGZOckNs''@;'; + put 'put ''c0RDNHVBUDRjSldBQUFBQUFBVmlZOUd3QUFBPT0pIGZvcm1hdCgid29mZiIpO2ZvbnQtd2VpZ2h0OjUwMDtmb250LXN0eWxlOm5vcm1hbH1AZm9udC1mYWNle2ZvbnQtZmFtaWx5Ok1ldHJvcG9saXM7c3JjOnVybChkYXRhOmFwcGxpY2F0aW9uL2ZvbnQtd29mZjtjaGFyc2V0PXV0Zi04O2Jh''@;'; + put 'put ''c2U2NCxkMDlHUmdBQkFBQUFBRmFFQUJNQUFBQUFvdUFBQVFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQkdSbFJOQUFBQnFBQUFBQndBQUFBY2ZOSDU1a2RFUlVZQUFBSEVBQUFBVFFBQUFHSUgxUWY4UjFCUFV3QUFBaFFBQUFjWUFBQU9ka0RDZnBaSFUxVkNBQUFKTEFBQUFDQUFBQUFn''@;'; + put 'put ''UkhaTWRVOVRMeklBQUFsTUFBQUFUUUFBQUdCcEVxOEpZMjFoY0FBQUNad0FBQUpzQUFBRG5uZEREN0ZqZG5RZ0FBQU1DQUFBQURBQUFBQThFaEVCOFdad1oyMEFBQXc0QUFBR09nQUFEUloyWkgxMloyRnpjQUFBRW5RQUFBQUlBQUFBQ0FBQUFCQm5iSGxtQUFBU2ZBQUFPTXdBQUc4a0hkN1ls''@;'; + put 'put ''MmhsWVdRQUFFdElBQUFBTmdBQUFEWUxjNGdSYUdobFlRQUFTNEFBQUFBaEFBQUFKQWVSQkNCb2JYUjRBQUJMcEFBQUFvd0FBQVRhdVk0MEoyeHZZMkVBQUU0d0FBQUNkQUFBQW5yVSs3bjJiV0Y0Y0FBQVVLUUFBQUFnQUFBQUlBS1VBMUJ1WVcxbEFBQlF4QUFBQVk0QUFBTjZNZ2lJV25CdmMz''@;'; + put 'put ''UUFBRkpVQUFBRG9RQUFCaUdYRmoyS2NISmxjQUFBVmZnQUFBQ0JBQUFBalJsUUFoQjNaV0ptQUFCV2ZBQUFBQVlBQUFBRzluaFltQUFBQUFFQUFBQUExRkcxYWdBQUFBRFR3WjJHQUFBQUFOUytwdlY0MmcyTVFRcUVRQkRFRWtmME1MUG9mN3lwTC9Eb2ZYZlYvei9BSWdSQzBUUUNMUjZjZEZS''@;'; + put 'put ''a2pWc283SHpUdjFENEI3bTQwNDhET2xvcE5sdjY0NVNlWFhMVDUxc1h6U2ErVzNBRjNBQUFBSGphalZjTmJKYlZGWDdPdWZlK1gvc1ZhaW5sUitnWUlZUWhhVG9nVEpRZ0drWTYweFJVeGx3MWFMYnBuSU1oakRIQ051Y0tjMkFXQXBzL1hTVUxRKzEwa2dxc0NuYldrWVl3UnR4Q1pCTERvREFH''@;'; + put 'put ''RmFweE1vUXRCcFYzejN2ZUQvdld0dE0rNmRQVGMrOTczM3ZPZWU1MzdnY0JrTWM0MUVMbTFOUXRRQkU4UFloak9QNFJLTnppYnk2L0R4Vkx2cjU4TVNxWExGNnltTE5CZnpLYXpralk4Yms4aG1NTUpwakhZVHpxWEVzNkdpMnpWU1hhZ0lnUHllQVZmR0tVK1FJcVBvS2dKdDVBRHBpSjlmZ1Fz''@;'; + put 'put ''WXlDY2h1Y0p5T2xFeVVZeEoyZGpUdmlaK1BEOFRFTThCT2ZHM0RrVUwvZUxsVDIrdit0K0pFQlYzaHp3SkdqQTQvRSt3WVllVFkrSHJjbitKai9NSC8va3FEdjIrUFg0bzN4UnVaMUxETTlnZG42SEtHb0podytUM2hNSlFLK1FFU1lUdVJ3TFZHRUdVUXhjenVUbFZwSkNGYmpaNXk1amdqTStI''@;'; + put 'put ''cjZkeEtDRnduQkh3akZRY0xqTmNMakdCRndpb2p3QmhIaERCSGhMSkhET1NLSDk0bGlWdTlEcmhZVGVTbVRNaFJMdVpTVEs2U0NQSXFWelhQdHlWVEplRDR6aVJEYmQ3cGp0UjA3MjdHM0hRZk1JWXBRUXhUalJpS1ArVVFKbHVMN1hDR0pKTEpJSW9za1lDTWU0L3hHb2hpL3dpYk9md0svNWZ4''@;'; + put 'put ''bmlCSnNKM0xZUVJUaDkwUU9yVVFSbmlkeWVJRW93aTZpR0cxRU1YWVRlWFFRZWV3aDh0aEw1UEVuUXZCblFpdzdFWTRUSmZnbmtlWkZMUzlxZWZHV2wyQjVDWllYYjNueGxoY3ZJMlFFODNXbFhFbE9jaFM0YWpVek5JRTFybVp0cDdLbTA1bVpHY3pJVWl6RGQ3RWMzOE1LMW5JMTF1Q25lSkJa''@;'; + put 'put ''V01mb3R6T2k1MW5KRjFuQmc2emNNVmJzRFZicUxIZnl2cDJzTXI2M0lqbGYrb0NkdzMyeW5IRVBwcjdhcWJ1TjhYLzZVYXVOOE8rWkFVZmVKQzcwOCtUNVR6cFBjV2Y4ci9nZjhTTTlKeTk3MHVJejhkWjQ2MGYvZFdlZnQyZVVKempSaEpnbUZGOGhIRzRqUEc0bkFoWVNFUlh4R09ja2FoQlRn''@;'; + put 'put ''NW9hRkMxRWhHMUVaSlVXcTdSWXBjVXFMVlpYUlJmaGNKcHc2Q1ljUGlBQ0xoR1JESkVock90UUdVb2VKc1BJU1VYRktpb3lXa1p6ZlVVVnJpQktNSVFZWkVvWFU3cWEwbDFCNlY4aXNrcjNGaytVaVNkblNuY0ZwZmRvM0Z0VTNxTEtXVlNYbFo1cVBGWDNTOFRBdWs2aTlhWlpMVVNZS05kWm5E''@;'; + put 'put ''blRyelA5YWlIbVJNVmFpRHpSc21iaXp5cmFXUlp5TWxtdTVkdVRUNjhhUmppZjlicU5jUzFrSkkyTXBBbVBNNW9uOENTZVFqTWplb2FSYk9OcGJPTnVPN2pMdmR4ZEYydlF6WjFkNGc2RzhtMGorSmJSWEhHTTZWbFJhaDJsUFA0SjdYTE13L1cweE96cjJZazZvekhrazh6L0hsa3I2K1ZoYVpM''@;'; + put 'put ''TjBpeGJaWWZza3BkbGoreVhBM0pJanNnSk9TMXZ5N3Z5bmx4U3Iza3QwK0ZhcWVOMG9sYnJOSjJoTjJpTjF1bDhyZGM3OVc1ZHBNdDBwZDZ2YS9RaDNhQ1A2aWJkb2s5cmk3WnFtKzdXdmZxS3ZxcXZhNmVlMUc1OVJ5L29SUWNYdVVHdTNJMTBZOXg0TjhsTmRsZTdtVzYydTlITmN3dmM3ZTVy''@;'; + put 'put ''N2g3M0hiZmNyWElQdUFmZHo5MHZYS1A3dFh2Uy9jNXRjeSs0bDF5SDIrZis2djdtRHJ2anJzdTk1Zjd0L3VzKzhPcUxmS212OEtQOFdEL0JWL21wL2hvL3k4L3h0ZjVtZjZ0ZjZML2g3L1gzK1JYK2g3N0JyL1hyL2NPK3lXLzJ6WDZyMytGMytaZjlIci9mSC9DSC9CRi93cC8yYi90My9YditV''@;'; + put 'put ''dkFoSDhyQzhGQVp4b1dKb1RwTUN6UENEYUVtMUlYNW9UN2NHZTRPaThLeXNETGNIOWFFaDhLRzhHallGTGFFcDBOTGFBMXRZWGZZRzE0SnI0YlhRMmM0R2JyRE8rRkN1QmdoaXFKQlBCMnJkRHU1d1hpMmNhMXhVOEpZWjl4cW5qWEdqUm0reFhpSzhTeGpXNDExU3V6NnpHcVRsSitwY3BWeHRm''@;'; + put 'put ''SGNoTEhhZUtlMmt4dk1mMTBQNDVUeHhjeFR6Y1pWeHFYR3Q3aEY1QmJqVmYyem5zdkVXR3YrUG93N2pOdU4xL1d3M0pYR2J2WVM0LzNHalgwNXpjQUFPNmszbnFRZG44VDZ5MTY1NnVpUDhWWGpuY2FyZTVoNSt6VDhmMVptYm50NFZXYlB2ZXhNVFJ2TWY1WDVzL1pzeStGdnpMNHJrL24wTGIx''@;'; + put 'put ''c0cwM3JtL1UzbVQwM3RXMU9xcG0wT21uVXFUNExkc0dmekdrMWU2ZGJlVm05QlkxMW1uMDBzUXMxVFhPU2Fqdk5UTmJmbUxFUG1kMWdOVHBxT2ovVm8wQnF0ZVB5aVVCZi94U3pMNmEyelVsVm5mV25KMmhXUmpQVm1jeW45ZzZ6RjJXcVlIblRTdk0zbXo5VldsWEdUck5hbXNsOFgvdTgyVCt5''@;'; + put 'put ''Nkc0eSsrOW1aMWV1amJjbEs4ZlBmYXhTMlRmT0xaenVqay9CdldjcVBtdjNVdkRlTlpGWlNXNm5ubDI3aWwwd3VXRkhtTUtiV0E3VGNBMTdXTks1UzltM3IyTlBUenIzRUx1amxsdm5Ic3J2VmJYc1EzWEVNTnpFUGplY25lNVdmdmVwSnlxdGwzK0dYZThPZHEybHZMdU50ZHZiZEhiMHpWeHZD''@;'; + put 'put ''enZmWE90OVgyYjNhMmVIL0NNTzRGdTgwWjNGRCt4VzJZVHpFdkE0Ty9Gb3RGaFBiZU4rUmE2dzcyWVJKRjVoS216QVBlUzE3SFlsR01sM2pXZEVrM0UxZHoyYnU1eUhCUnc5YU5ydE1qNXRiR2NHUnpKODFQakh4czhabjdDc2pUTzdCRi9rZSs3RnR5VW5SVklzZVNtUndWTGFkMGYvQTNJRm9i''@;'; + put 'put ''Y0FBUUFBQUFvQUhBQWVBQUZFUmt4VUFBZ0FCQUFBQUFELy93QUFBQUFBQUhqYVkyQm04bVdLWUdCbFlHSHFBdElNRE40UW1qR09RWVRSRE1obllHZUFBeVFtQTBPb2Q3Z2Znd09EZ3VvZlp1bi94Z3dNek9jWURSVVlHQ2FENUpoWW1kWURLUVVHSmdDOGlRb3JBQUFBZU5xMWsxbFFqbEVjeG4v''@;'; + put 'put ''L3QzMFJLaFQxOXZacDAwYWlGRVgycGNpK2xLelpzcS9aR3VzUVEwVlN5SjRrb3hrVFUxTzJHKzY0TldPTXZzK1ZXKzRNSGNkWFREUE11SEptM25QZWM4NmM1NXg1bnQ4ZmNLSHJDMEYwajFUcW1Uam5ybEtzeHlXTXc0MkJsSENMT3U3U1NCUE50TkFtSGhJZ2d5Uk1Ca3VjSkVtcXBFdW1USlVj''@;'; + put 'put ''eVpOQ0taSVNJOVY0WmJ4M2lUS1BtNjNtRS9PTDVXNEZXc0ZXcUdXem9xeGhWcnAxMytZZitVMHBmWWZGalI3YWoybmptZmhLZnpIRkpyR1NLQ21TSmhtU0pkbVNLd1d5UVRacjdaZkdXNjE5eUd3eDI4M1BsbUVGV0VGV2lGTjdxSlgyUzF0OVZDL1VjL1ZVdGF0VzlVZzFxNGVxU1RXcUJsV3Y2''@;'; + put 'put ''dFExVmF0cVZMV3FVcFdxUXBXcE02cFVuZWg4MDVuVm1mVDlrNlBjVWVESWQ4VFlCOXI5N0Q1Mkw3dWIzZWo0MnZHNTQvQ0hrSGZKWFY3OXArWnVlRHVUNEk5YkJLUDd6L2lIUnRkSkYxeDFkdTU0NElrWDN2amdTeS84NkUwZit1SlBBSUgwb3o4RENDSllaenhJcHg2S1NaaE9KQndiZzRrZ2tp''@;'; + put 'put ''aWlpV0VJc2NRUlR3S0pER1VZU1F3bm1SR01KSVZVUnBGR09xTVpRd2Faak5YTVpER2VDVXhrRXBPWndsU21NWjBaWkpQRFRHYVJ5MnptTUpkNXpHY0JDMW5FWWsxYUh2a3NwWUJsTEdlRmZ2OE9kcktiWWc1eG5OT1VVMFlGNXpsSEpWVlVjNUVhTG5HRnk5UnlsZXZjMUJUOVpQUTJEWnFsZTVx''@;'; + put 'put ''bW4yMFZxN1VkMFd6Z2JMYzM2MW1qKzEyYytPMVc0VjhjdkVBOW0xblpZMlV0bXlSR2oxdll6akhzT0NSYzh4a3BVYm9DSXJpamR4NmdhWllFWFEveDNXZUtuR0hFc28yOWJHVWZlempBUVYxTCt6bkNVYjExbUZKT2NaTFh1cHA2c1U2OHhGdDgyQ2grbW4vUEg1RE5xdWg0Mm1OZ3dBTEtnVENE''@;'; + put 'put ''SVlOcFBRTUQwMjRtVmdhRy95SE0wditObVhiLy84SjBqMG53LzVmL2ZpQStBT1lMRGdwNDJxMVdhWGZUUmhTVnZHVWpHMWxvVVV2SFRKeW0wY2lrRklJQkEwR0s3VUs2T0ZzclFXbWxPRW4zQmJyUmZWL3dyM2x5Mm5Qb04zNWE3eHZaSm9HRW52YlVIL1R1ekxzemI1dDVZektVSUdQZHJ3UkNM''@;'; + put 'put ''TjAxaHBhWEtMZDZ6YWRURnMwRTRiWm9ydnVVS2tSLzlScTlScU1oTjZ4OG5veUFERTh1dGd6VDhFTFhJVk9SQ0xjZFNpbXhLZWhlblRMVDExb3pacjlYYVZRb1YvSHpsQzRFSzlmOXZNeGJUVjlRdlk2cGhjQVNWR0pVQ2dJUkoreG9rMll3MVI0Sm1tUDlIRFB2MVgwQmI1cVJvUDY2SDJKR3NL''@;'; + put 'put ''NmYwVHlqK2RBS2d5Q3d5TFNEUUpKUjk3ZUN3S0cwRXRnblU0amdXZGFyKzVTVkx1V2tpemdDTWtPSE1rckNMN0VaWnpkY3dScjIyRW84NEM5SWxRYWxaL05RZXFJcG1qQVF6MlVMQ0hMWkQrdFd0Qkw0TXNnSGdoWldmZWdzRHExdDM2R3NvaDdQYmhtcEpGTTVES1Vya1hIcFJwVGEyQ2F6QVFP''@;'; + put 'put ''VW5YV29Sd2wyZGNCcjNNMFlHNEozb0lVd1lFcTRxRjN0VmEyZUFjT3J1TFA1YnU3NzFONWE5Q2U3bURaYzhCQjNLQ3BOR1hGZGRMNE1pM05Ld29LVEhTOVJIUmt0SmlZR0RsaE9VMWhsV1BkRDI3M29rTklCdFFiNjB5aTJKZlBCYk42aFFSV25VaFhhakJZZEdsSWdDa0dIdkt1OEhFQzZBUTN5''@;'; + put 'put ''YUFXalFZd2NHc1kySXpvbEFobG93QzROZWFGb2hvS0drRFNIUnRUU21oOW5OaGVES1JyY2tyY2RHbFZMeS83U2FqSnA1VEUvcHVjUHE5Z1k5dGI5ZUhnWUJZeGNHcmI1ek9Ja3UvRWgvZ3ppUStZa0twRXUxUDJZazRkbzNTYnF5MlpuOHhMTE90aEs5THdFVjRGbkFrUlNnLzgxek80dDFRRUZq''@;'; + put 'put ''QTFqVENKYkhoa1hXNlpwNmxxTktTTTJVcFUxbjRhbEt5bzBnTVBYRDhPaEswS1kvM04wMURTR0ROZHRodkhobkUxM2JPczQwalNPMk1ac2h5WlViTEtjUko1WkhsRnhtdVZqS3M2d2ZGekZXWlpIVlp4amFhbTRoK1VUS3U1bCthU0srMWcrbzJRbjc1UUxrV0VwaW1UZTRBdmkwT3d1NVdSWGVU''@;'; + put 'put ''TlIycnVVMDEzbHJVUjVUQmswYVArSCtKNUNmTWZnbDBCOExQT0lqK1Z4eE1kU0lqNldVNGlQWlFIeHNaeEdmQ3lmUm53c1p4QWZTNlZFV1I5VFI4SHNhQ2c4ZHNIVHBjVFZVM3hXaTRvY214emN3aE80QURWeFFCVmxWSkxjRVIvSnNEajZ1VzVwelVrNk1SdG56WW1LajBiR0FUNjdPek1QcTA4''@;'; + put 'put ''cWNWcjcreHg0WnVWaEk3aWQreHJuZVdQeUQ0Ti9peGRsS1Q1cFRuQndwNUFBZUx5L3c3Z1ZVY21oMDZwNHBPelEvRDlSY1lJYm9KOUJUWXpKZ2lpS0d0OTg1UEpLczFtVE5iUUtIMDhFT2l2YXdieHBUb3dqcFNXMHFFa2FBUzJEcmxuUU5Pcno3SzFtVVFwUmJtSy9zM3Nwb3Bqc1JSbk1nQ2tv''@;'; + put 'put ''NUtheHNPenZwRVJhV0R1cDZmVFJ3T1ZHMm91ZUxEVmJWbkdGdlFmdlk4ak5MSGszVWw2NEtTbnRSWnRRcDd6SUFnNjVrVDI0Sm9KYmFPK3lpbUpLV0tnaVBnaHRCZnZ0WTBRbUxUT0RMb0VpWkhHeXNnL3RpaDA1b29KMkF0OTYwaXJ2MjBMdHozWHlJRENiblc3blFaYVJvdk5kRmZWcWZWWFcy''@;'; + put 'put ''Q2hYcjl4Tkh3ZlR6ckN4NWhkRkdVOHVlOStlRk94WHB3UzVBa1pYZHIvdVNmSDJPOWJ0U2trKzJ4ZDJlZUoxU2hYeVg0QUhRKzZVOXlJYVJaR3pXS1VSejY5YmVESkZPU2pHUlhNY0YvVFNIdTJLVmQralhkaDM3YU5XWEZaVXNoOWwwRlYwMW03Q056NWZDT3BBS2dwYXBDSldlRHBrUHB1ZG12''@;'; + put 'put ''Q3hsTGdzUmR5elpOZEY5QjA4SVIzaXZ6akV0Zi9yM0hJVTNLTEtFbDFvMXduSkIyMGZLK2l0SmJ1VGh5cEdaKzI4YkdlaUhVazM2QnFDbmtndU9QNWU0QzZQRmVrVTd2UHpCOHhmd1hibStCaWRCcjZxNkF6RUV1ZXRnZ1NMS3Q3U1RxWmVVSHlFYVFud1JkVkNzd0o0Q2NCazhMSnFtWHFtRHFC''@;'; + put 'put ''bmxwbFRBVmhoRG9OVjVqQllZdzZEZGJXRHJuY1o2QlVnVTZOWDFZNlp6UGxBeVZ6QVBKUFJOZVpwZEoxNUdyM0dQSTF1c0UwUDRIVzJ5ZUFOdHNrZ1pKc01JdVpVQVRhWXc2REJIQWFiekdHd3BmMXlnYmExWDR6ZTFINHhla3Y3eGVodDdSZWpkN1Jmak43VmZqRjZUL3ZGNkgzaytGeTNnQi9v''@;'; + put 'put ''RVYwRS9EQ0Jsd0EvNHFUcjBRSkdOL0dNdGptM0VzaWNqelhIYkhNK3dlTHozVjAvMVNPOTRyTUU4b3JQRThqMDI5aW5UZmdpZ1V6NE1vRk0rQXJjY25lL3IvVkkwNzlKSU5PL1RTRFR2OFBLTnVIN0JETGhod1F5NFVkd0wzVDMrMG1QTlAzbkJETDlsd1F5L1Zlc2JCTitTeUFUZms4Z0UrNm9u''@;'; + put 'put ''YjVNcXZObjFiV3BkNHZTVS9YYm5YZlkrUnRsTTdvc0FBQUFBUUFCLy84QUQzamF0WDBKZEZ6RmxXaFZ2ZTczZWxPcjk1YlUybHE5U2QydDF0SnF0ZlorV216dHEyMWsyUmF5c0MzSjJHQmJack94TWVDUUJRSWhKTTVrZzRTUVl6SWhZSlpBSUNReldTWWh6b0ovZnVZUEp3bVRTZUNmSkgreVRE''@;'; + put 'put ''NGhrOG1BbnY2dHF2ZGFyYzA0ODgvWVVxdjd2VnYxcXU1K2I5MnFSaVkwdlp6RUh4ZDhTRUQ1eUkwS1VRQlZvUlJxUnUyb0R4WEtucTZPdHBaMFl6SWFDWllWRlhqc05xT09JRk50VE8rMyt5VjMwaDF3SjFPQlZESWxzYjhTdk5XdTBtdjBMNzBEVjFMYWV4V0dOVWduVS9qanlqZHgreHVkWGVl''@;'; + put 'put ''N3VzNmY3NnJ3Kzd1NnV2WjMrZTg2djcvQ3Y5OS8vdng1Ly83OWQyM2RlbjV1YS9rUGhGOTMrME4rK0xsam9XTHIxdUFzdk52cWIrdXEySCt5eVZzemR1elk0OGVPamRYTSsydjg4SU1RUVZ1WDMwU3Zrd3RzYmlHNUFtR01waEZDMWtGRWlEQ2p3NExnRllaME9sMit6aHF5Mi9TU04rWk1DZ0ZQ''@;'; + put 'put ''T05YUW1LejN1RjFpWVBTK2t1MkdSS0tpTEZGZFRpNG85YityOFpjbEVtWCtHb1NXbDFFblBvY2ZKaGRzRmNpRWtFMkExMWNSZlc0RnZOd096L1doTXRRdmI4MFhDZElMQkJPRUQ1aXgwV2dkdE5yeUJFa3lURnRNeEdDd0Qrb3dJZmxrQ0tHeTBwSmlhT1VyS2l6d3d2T2Q5dXcvcVNTR3BhUVVr''@;'; + put 'put ''QUpwOXB0T3N0K2t4SDRsZXBPUStFSHZRblE2ZWlaNmRYUy9aMzk4empNUDc4N0FsWG5QdDg3RXorREhIOThGQ0QyLzYvRmRuNE4vdXg1SGdKbXk1ZWRJTC9rektrRkJGRU1KT1JhTCtzdUxDcjBlbDkxc01raFdSUENBSGlQY0QvUENCTS9DQkwxb3FOUnVGd0JkUVJHSW5BcEgwaDV2S29FQmJX''@;'; + put 'put ''bWd0Y2NyaFNQdVV1eEdjTldLM1k3R1ZBTmNJTDBuRHUxKzk3NitnY241K2NVOXUyKzR1cWRuNE5oeDVWZzRHb3kvMmxqVGRHUlJrcnR0dTZlNm5kLzA3WmdZWHpTM2Qxakc5N1RhdmxLMDh5cnNET2FmTjlhVUtrZnJLL3dSMjlOSWo2cVcvMTJ3a21lQnNrN0FjZzFxUmQ4ZGZMSmdiS2NjTTJP''@;'; + put 'put ''OUNXTlJqK2VSaUF4RzBiQ0FkRG8wUXpDbGZCN2dYNWl4U0VRUThvVWgzK0NURVdoU2M5a21DRUJaTzJuR2dpWEpLdzM1NU9RR0xRZ0JXTm9NYmR4cWFrb08xOWFXbDd0Y0NOVzIxclkwTnBUWGxDY3F3NjR5VjJsUmdkTmh0OEZrckdHcjVJNDVLREk3Y0xJZXNPaXk0Z0JPNGdCRFk2QkNkTHM4''@;'; + put 'put ''U2JUbWZnZGV1ZmVwb1doMHVMWnVPQm9icXNQdjM2T0U5aXdtRW9GZ2RTS0E1NFppY0xGdWlONEtKbW9DQVhweEtqRmFXemVXU0l6QmF6VythbWtjZnpZZGl6ZWxxMk5wWlNJeFdsYzdWbFBESUFiVDhWZ1R2WVVvMy9pWC8wamVSYjZFeWxFY05hSU91YlUyRVM0cktTNHFNQmtGVWc2OExwQUJ5''@;'; + put 'put ''dGQ0QnNUT002Z0hZV09ZQWVhcHJ2YjdxeHVyVS82NFB4YXZFQ1ZQVEI4UkF4V2NnWEpuQnJlOGpXbXZLSGtSblpxWFQ5T1JEa2VBcldDcXBIaGthckZ6dnFWdnRMaWdicktoWVh2TjBMYjZ2cXFTNmJyRTljb25FcDdDdHBwb21Ta3oyUk9MOWRUbGpZL1ZUclYzVHdjck84T0prVVQxY0UzellM''@;'; + put 'put ''aDFxSDBndms4K1RscmlnY0xhMG9KNG9LSjY2UytwM1dNRnpjRzZGb1F3bFhIMExaQmxDM0xLTnFwQkdIbnhrRHRJWU9DT0ZWMGhCYTV5UjN5K0NQQTdmdlZ3MEZkWjZRc2U3a1cwajhibHEvQVkrUXJLUStJemVYcGNHMk1xSnUxbHMvQktuMXRjUEpnWkh4NGV6K3o2K2Rtei96TGV0ZTNDa1NO''@;'; + put 'put ''UGJPdG1iY1BRVnRiYVN0Q1dZeUdTNWdnS1R3d1BUMlFPUWcvejI1NDRjdVRDdHE0eDZPUG5ZNnh0QXUvSCs4amZvWG1VbGh0bWhucWFxZ0NYTUljQkFXTWRSaURXOHlMVzY4a004SzVIRC9vSElPZW1KdVdPdXBxQVB5WlJSb1NCcGh2VG9nVC9BeFhoQ1AvWUNCVGc3eW1sdkI1dktmYXl6eG9x''@;'; + put 'put ''UktrUmJxWHBSeSs3WU1VU0pTYUZkTHZnVTZBQ09ramdDTDhnQmw1MG1VV1NWeEJ3NlkxR20wNXZMWWlXVzYybDFWNnJYbWMzaUFadmhXUTNFOUhzeXJPNlRGZ1U3QzRoNE9DZ0JzbGVyUzl3dXdwcVhaSWhCMW9Rc1FsRVk3L0Q0a3VVNWhzOWZyUE9hRFNZSElhOFBKTW9tdktzQm9kWk1waDAx''@;'; + put 'put ''bkxSWnNndlRmZ3NEb2ZGVmFzcmRPYzVoRElUQlRZYThuV21mQ0lhamFMTm9yTWFEQ1lOM2wyb3EzVlpIQlRISFdpV0ZKSTJaRVpoT1lCMEF0YnRBRjRIellFRmRBRFVBWjVHZ090aHBzUnRvbFFVd3dGcURWUFVLaVpKNFpldSt4TDg0S0lYWGxqNDhwZHBmNW5sUmZRTDlFRmtSVjRaeG85Nk5a''@;'; + put 'put ''NER3UWs2S00rQlNGVGs0SG84WVNtclRwU0hFOVhKYXhPMU5lWGxpZmJheXUyTnRLODY5TSs0QS9lQnRCYklia1E3MmtINUFrYUVZRVEyMnBuVDcvYlg0VHpsajdqdkVPT1pkckNaUDRIbm02bjFwMWRBQzJMc3haUTd6TWdVRklBcmNpM2tJZFU2V3JLV0VTLy9adms1L0IzeUszaXVYYmJTVHMv''@;'; + put 'put ''Q3MyL2dENlNxREc4NXE1dy9TMzcxOWlYRTdHWGQ4cHZrSHZJaXFMOHlGSmVyZ0J2WmpMbld3R0NvMlFCc05qQ3laYmJTQWcvVGsyQjZZcnExZXBDa0doTEFYRlN3U3VGSmhydUhoKytlbkh6ZjBORDdKdXRINC9IUit2cXhlSHlzM3JMN00vUHpEKy9lL2ZEOC9HZDJMM1pjdjNYcjllM3Q5TFdE''@;'; + put 'put ''NFlBU05nMHlMeUtmWEFDa0ZBQmZBMXlyWTV5UGgreE9oam9wa2s3YUF5L2VsUHo2L2xPa2JIRG4yYVZ4eE5ySFlWSmhtRThCaXNvUnN3bW1BOXhBeUFCREoxT0gxQUdaUnN3RzJiM0JzRTRxaUdXd3BzV2xTS09xLy9JeGtLZDZTVzdjVXB2Y1Zqays5MkRQZFpuK3lmdHhXcEhtdnB2Y0hxdHBx''@;'; + put 'put ''YXNkZkhmak5SMWJidTYrWVpFOXV4UndHWVZuVjZHTTNGWllBTStwd0pqQTAyRUlBOVNHZzBFL0FFL1d6UUJ6d2tBUTBzOVFKZUJsOGwrRktvTkJmekFrU1lWQVphcGtrdlhNN2tpcHBLZHg3ZkFrRmUzL2VIZDhLTFEzM2Q0MzJEODgzTkhYMTFRM0hoclkrOG0rNjl2N1d0cTN5emNNV1RLcGlh''@;'; + put 'put ''cEVVM1dpQmgvR2RmRm9LbDQxZEtKMlIyUGJoTjI2dmJOMWR3UG5nMUo0MlFsNE40RzJxNWFqRnZBMzhJQ29oemxnQkg3bkhLQ09tZGg4M1pEWmJNNHo1NEZNT1d4MHJDRi9CQ2Z0MVBNTUZHSUJuMVlldCtDdDUyWm1UdjNrM0N4K1FSay9kQTVJR0ZGK3pPa1RBeHcxd0hPS0tZNGNvQXZ6TEVT''@;'; + put 'put ''QXpyRWVBWTUwQUtFRHV5NElaSm9iOWRVNEFnK3R3dTRNQmhpT3dQVlJNVlFoUmFnd1NZMVpicnovd01EVTNvN0JvZmFSamgwbS9MenlWUkhlTGJSMzNUSml1WFpxY2t0RFNxNE40dXNXbjRvbXIrbmVlbTBMeDBFdGpHMEE2T2RERWRRbmI3RUJEdXpBUEFWWUo0U3dYcWNiRUVHeDZQU0NiaDVs''@;'; + put 'put ''amFzRVk5TjBSSEV4akRCU0hBNzRvWXVpWUNoc0FEOE5xU09pZW9PcGJJbExpUVFmSEZtMjh5VHhJd2M3dW03c3YvZmU0WHQySHQvVkh1aU8xUTRsZE9WWE54ZzcvS010ZFlQNUJUZmlMelhzNitvKzFQYVZUeDU4ZEdaNHBxeXNlYUU3VktVOFd0RmNudTVNeGo5TThadUVpUVNZL0pUSnhXQm9N''@;'; + put 'put ''Sk1lcW5jdzg3M0Ixd1Z2aHpxUTJKL3l1MEVoUEtBOGpQK2cvTzk3U2Z2aTFVc1hxSDhSQlR4MHFuaElvUjY1MHlVUzBLNERVczcwVlMxaGdPbGpJQkRURXBXVkZBT1ZxY3FHbW1xS2g0cHlpb2U0a2FxdGpUd01GVE01M3BXWHZnZmJaQ1hVeC9qWGsxdUhNODJkV3hhN3VvLzNkRFhKUTcwbkIr''@;'; + put 'put ''dEcraHNiKzBacTI4ZGpYUkN3eE1iYkxUVlRyVzFUM29MUnB1YnQ4ZXJ0VGMyajNnSzRzck1HUDlRWXJVdzNWc1VhQk9WU1U3eTBwb2lRb3BwUzZrUVJWQTl6SEZxaGRTblFGK2l0TjRMQUdnQnJPcGlzSHNSVlQrYUI2UVdZb1NCNEJuUHNnVVpyZnhtZFl5Z1lZclQyY0ZKejRRVXJURCtvYzNh''@;'; + put 'put ''QTVlYmFFV2o5OSt1b0xEUHFOMU15VjFLQ2t4ZFhVNWxUWG5rRXlNeklUZWZBN0FXeGdHM3dVdDFOZFRVYlhpRVBzdlE4eUxKWUVMSjRMUjZIalJrUlVYVXROQ05DTmpBb0ZlcGZmRVN6TE1wZDJqdUl2WmlkSkJhSXZmSVJza3ZJRG9pNkZSbWZ3dmg1Zk91VHlSamx3elRhVGtTeUcvaFFmRVlr''@;'; + put 'put ''NERzNVV5RjNIbmFuOFNYbGIvQkJISm45MGR5REQ4NHp1ZXRBajVGQy9DZmdQQWwxREQ1WkJtR0JBMUV2VnBqVjRrWTdCcysvZ0hJeWplUVFoQkJraDZySWlUQTg5UnkxOEZTVFV6VkEvM2ZnbnlvaDl2dW5oWk1MTUo0K0dJOVhHNDhBNDBsWDQ1VGVyZS9EQjJFOGw1UzZGeDk4Y081SHN6K2k0''@;'; + put 'put ''M0V1djRsZkFkNXdJejlxbDFzMG5uQUMrd3RVbWdRZEVnN0F5TGp6UnJWaVZrZDVQQjYvcHp6a0RRYVpiblNxQWk1RlZyamV2U3JLZldKb2IwZjljR2QvOVEyOW5mdlQ4K1BIdkJydTc5WTFWNFliK3dhU3JmVTdHN3V2Yyt6NVB5c0JNRUh4NWZjTFc4Z2pTRVlqNkpMczlwZVhDUWFoR3hzTkRx''@;'; + put 'put ''d3p0cmNSRVZpWVIxalZFUGZxc0hFUzFEaEVUVlM3aWlicUV1NURxdVlDdldBd0NET2dkTzBHR3BaVjBVZ09pR0V3Q29iNWQyeXNCOExVVVRVdElQMzg1cTBrU1p4RW9pak5zT2FqRUpBVmRBSVRkNDUwRHZkdGhWbGt3dUZZS0JnT1d5VGZPdGVpZ2dZZFdRWHE4ZEt3aEF0U1BjVnZqdGRSenp4''@;'; + put 'put ''NzBDZ1ozTEFpYlowWDVoYS9kblQrQy91YmQ5WFZ0bHVLUnhLRDA1MEhXMnE2blpaNWE1N1pXdTRyYnFpWStzVDAzQmZtOWp3NDAzWWc1V28rMXUzdkYzRWlGcEhERGRFYkRueGg3c2pYanUxOWVIcjhXRk1zRW83dEcrcyszbDNsYnpQMGRUU08yb3JMS3JlMzcvakE5cmtuRHV6NXhKNlM4cEtn''@;'; + put 'put ''SDNzbk1yWllmYXkzcXJxUjJ4WW52THdLZWxrQ0N4dVRLNDFZeDRKN0hYQzBEcXdydFhVUUdWQVB4OENjWGU2eUZvQjFsVmdJR2pGalVxcDhzZUVlWEFZL2Q4K2VPSEhxRkxtd05QNXI3RmYrQmRBT1VRZDVIL1NmRDU0UDQxclFYL0FFRWVSRnJ5TjY2bmFvQ1JnSmM4K1lQcXVvMEc0ckx5MzBG''@;'; + put 'put ''L205Ymx1QnZTQldibUNPS2NPOHBwLzltRm5aR0hZN3RUZGplTHgxVDhOc1cxZlQvb3p5R1p4TXRMWW12blF4MmRtWnZFZ3V4RWZyOWplVTdHNXEzRkdMUDFJWEN0YzlydnhUT2haTC93UFZDOVdnZHo4R3NsV0NHdVE2Q09OUm9SbHNhUkdZV1JBdFZYOTVWaVdKNEVJSktnNkh3alJKbEdVTmoy''@;'; + put 'put ''WkhjK21PRzgvdjIzZCs3OEM3azFQbFUzVWRoMlg1Y0VmZGxIOW4vWHNHTExPZm5abDVaTGExWVZzbzFuVkU3anpTRlExUHBGb1piU2p1dnNWOEh6ZUxKTEtvWWtHMGlpcUwyZVV3dXkzdWNMbWVva2hqemhnT3FVd1l3L2F4TjQ0K3VXL2ZrMGZmUU10OVJ6T1pvMzEza2dzN1A3bHYzNE03ajdV''@;'; + put 'put ''ZTdPNWVhRldTRkFjUW1ZTHR1UURxdUVhT2F6cU5LaERkTk9nU2E2Nkh5angvTTA5RFVYM2lWdldiM2UvK0I3eFBlUkMvZCtrdG9pZnQ1eGVmV1NRWEZybVBwZlZ2UkZWeVdPc2ZlRTNIZXRYY0FMaGhSRWJhTStVejFyTTlvUFY3bW5iNnhLTHlPdStVMCsxdmdXNSsxQ28zMllCY2R2RE55N0FP''@;'; + put 'put ''bUF3NnBscFJyME9NelZhMEluT1J3Qzl3QXZFQ1BBRHoyM05NNG5vaXBnTDRYVGhVZDI1dzl0RjkreDZkSGZwdzNWVDVnV1RtT2xtK0xoTVpLMzhNbjFUK05kbk9TZG1XekpLeXlIdGFtL2RIR1Y0amNsRDFKUStBRDB2blRQTkorV2d0UGpHZE1md200WlY4OUxUeXQ2ZFA0MGtxVmppay9KUmNV''@;'; + put 'put ''SDZOQzZDWGZtajFMWmJMcEhtSW5GaUVoM0VRaVBSellRUllPOWlPZndKWUcrVWs1dnJqQWU1N3dlQm1CR0FvTDBPOURlVTdRenBvdnVMcXd5aW91RDE1dW1LN295K1M3RHpWdXRCbGtlc25nalg5TGZnbHBhN25jQnVuN3loMGRaN05zMXd1TVJyMEJCeDBQSUJaeGt6ZytVeW53OEh0WWRLT2sw''@;'; + put 'put ''WWNnTkF4TUhvYVYzOU0rUjJPZlB6MTZkTXd1U2Z4bVBKRDVYWmN1ZjhmZUwvVXFTaUZmdlhVZDJTRHByMmhxNUdHT2ozUzIrMTAwQ0hnbGFRZEZGTGcxQ0x3M2RJM1dYdVFJOEc2TWk1cGczRzU3TnE0ZkJBMEJPeG1vTURZNmRkZVAzWHE5ZGZvbUtieEk0RDg3OUcvU2tydGszeVI4WEtwN0pN''@;'; + put 'put ''SVdkZWpJOXNqaGlFRldILzQwS2xUeWpuYVh3bCtIZnA3WFNtaGNrNTVXUG52aUhXNTJ0bDcvcHByenUvdE9KVEpIT3JndWtkVk9yT1B6TXg4ZG5heDYwaW5mS1NMY3l6VE81UmZqN1A4bHB0R3F6QUtFRlVCMDlURlNySWNwbWpOY3pueTNGYTNQVnd1MGtTNVA2dDczSUdzYnU3RnNmNGJ1N3R2''@;'; + put 'put ''N0gvaU5DN3BIQjN0L0RTNTBMTFExYlhROGl1OHE3MmhvZjAxbElzREYvWHQ1WHFhN0NaNmdlaDFvUFFFQ0pPemdZMHVKMnZvZHJzajduQjFPRUpWTU5oeXJ4VEpGV01ZalM0ZFNYc2JWMkdGS01HS0xWMEROVWZiOW1yb1VYN1dNdFcxSjVERkR5NjdOdDQyTEFjcnMzaDZvMnBrZUt5MWV6MmVU''@;'; + put 'put ''Z0NlckRDV3BGeWJSK1dheG9yVWRCNEFSMFNORlVXQk1MR0VJYnZ0UURwazlWTXA5OGI4RVloTjdYN1YvL0txY1hVTTQ5OTg1cTdUREcyN2hyNmdESDZhWWUxWHYySjRHMTRzZUpQampjdEcyZktmU0MvNUNxcEVkWExDQzVGaEFWZ3NSSEl4UmozREhLTlZpU0toNmlERkdCVnhIcXBDYUpNZ3Ez''@;'; + put 'put ''UWZpM3BVdHZyOXVaYSsrVnZiZS95ZDdXTnpyWmxqdlNPM04vWlVIMGdtTy90MjNueEwrNDFqNXViR3FlbUdTSEdnME9xc0h1NW9uV21zcTlrVGlhWkNsVlV1MzlSa3gweUtqVFdveHZLU21rUEpobjg4NmFHNnlqZ0E4VjhBSkFhOVNocGVQUVhoMzZJcXgvM0FJNDlDZS9CLzVWSTFFWTl4N3R6''@;'; + put 'put ''Y3lPVUt1alNEVEJVWEQzZzBIWWI5ZDQrY1Rvd25HOFlUcDRidjNta1p1V2NudmxzNTJiU3J2bjVYRTM2M2N0UE9lMFk0WGwwdzFuOW04U284UzgvaVZkQ2Fxc0xrV2dkY2RxNTFqRFFiNzhQa241VmYzS1A4NHU2Zi9JVHFYUGo5TXpHeXZnb1IwcFV5ZVlLK1RGVHZnN0tnYXovTWxMUEpnN1p3''@;'; + put 'put ''MlBUVWtsSUZCRDlDd0l3RGhlLzcwQ1B2L2N5SDN2ZmowMTk0SEJTNTRzSy9wYitnT1JTRjhIRkM3RUUrejNRYjZFYWpDRjBUbXN1bGZJZTVhWEU0SEhhS1Z4aGxCSHcySWVsTkovRmphUG5Eeno3M0liUzhmTzdaNXg3QU81WFB2ZmttbnNRNzMzd1QralNvZXR5QVN1UWlrY3BmVnJtcGticURM''@;'; + put 'put ''ZlVZMlVoQnMrRUM1UThmK3VyWDdsUCs3eG5nd01lVml6aXRiRk1VTGU2ZjFtdyt4ZU5LMmlzYisyZlRYZzQ3RzJtYXB3REE4Q2Z4cmNyN1FaMi9HNTlaK3FjWi9MUEZHYVdDMi8yQjVWdnhDUGsrajh3OEcwUm10aXVQek1ET3V2MERXUGZ3dzhyYjVQdmJsblpzWTdoZC92Zmw1L0NQTnNsWkN1''@;'; + put 'put ''RDdtczdpWFR4bFNmMlFXM0hkNnZIUWxBVWJEOU1ENm5pMGJCdDE1bWptbFk0SDVZN0hDOFlpQlg1VTljTVBZNTN5ZGoxNWJOdmJGeml0YS9DRCtNdWNKNThTOS9mSUhyQU1MQXNKSTZNWjJSdlVETXBUSXVweEpwMlUzQmNuUDc3NzBLRmR3RHUvLytZMzZaeVU1VU5rWXZsRmVHZzU2Mk9USERE''@;'; + put 'put ''dFFnSUNFTEo5NlF0Ynh2anpNeVNEdytRVmFPdGxiUzJZeHE4STNlREFZSXpZVTlQZVFHYnh4aDNrNjU2UDh2Z2lBakpMaUozbE0yNlh2WVZZMEJXQU1YRkFGRkJXU2tROXNJU29oNGpRQlNnckIzaTlTR2k0SnVobWFEeFFPR2pBb29obVZGYjJnZnUwSG9RS0pJUFQvTG9wMmEybFFYaXFKeGdP''@;'; + put 'put ''T0kyQVcrUnhBM0p6VFlSWERZTWJhUjRrcGEyWDRidHZ1Ymw0S3BIZVdkKzh0Nld2djcycll5UjYvVjdycUtsbFMwSnVqaFA3emZ1VWl4MkJTTlZnWGYxSXZOaGEzeFBaMGFpMEpTSXRycHBnTUs2dU01TlpzR2NPVklwK3hLZG55c2M2d1lTUm5nejR0QStBaG9FcGZydUVNc2xnTnF0VHFLYnc2''@;'; + put 'put ''TlRCMVBrNFYvblhBbEdQYjFXeVR3MlUvZHJhNCthQUFKTnpXNHNvVnNGTVFUenNja0tNNkN4MWxoUjZZVFoydTNOTitqQkM1Y2ZPTWtrcks0NzQrY1B0N1lkN212ZVVuVHhadHFlNWZQdjJUbmxpUWliMkxiZU9qSnphVWxjOVFWNVUvcU82VGhtOHVyOS9lcnEvLzJyZ3IwckFtUjU0NVhJeFdP''@;'; + put 'put ''SG1NWmpuc2pIWUg4OE1EZDArMEh3Z1BPSHVLSS8yUmVISG4vRk1ST2JhTEFPbisvcE9EVlJIK2dxS3E0ZmoxY1BWSllXOVZRbk92M0VZMDFhVmpsK1RUWGFJandWR1FwVm9GSHVNSUN5OHlDVmEvZ3JSMWdJeGpwVllpcEp6ckVZMENtaTlMQ0FqbW5xWFFqTmR0eHBtUGRFYzRZQ2RFZzJ2NFg2''@;'; + put 'put ''UDEwNXlpRWEyQXEyYWVoamxtdmFVVFFEQk9vRnc1TVdsTFdQeDJpMm5Sa1p1M1ZJYngrTFN3MW1pWldVOEJuVHpBREZrdVoxUWdtSG10ZWxBNytySWdlem8xREdyM09YMXdwOFNiM0ZSSVRSMVF6Ukd4eGprNU1wMTR2elVheE1sUHhBVjd4enlEUHR2YVI2NHRYL3JMZjJqaTIzS1NmTnd1bUU0''@;'; + put 'put ''RDl2TTNhbTlwWjZ4UVBYV1V5TkR0MjRkdW5lbXNSdHZhVXNtMjZqdUFrY2JMNUQvQVk4OUk1dHNXTlJEbkNoU0tsSUNGU05SMU0rQXgxYkFraDFvV2dmMHM2dkd6c2RyQ0xJd25vMWc1Q0lJUWtSUVRmUHJid0k1VEtFQVcreVRKQjlZZU9yZDJPbHlIOHUyYWY3V3Y5eDQ0ODJEZ3hOeVNhc25Z''@;'; + put 'put ''UFRsZTBxSS9vQ3lGMy82UUdQbmRvOXp4R2lxS0FKY1I1ZTNrdzdBZFJtS29ZOXdIblNVWXIxZ3cwUmNTUkw3MkVYZDZvdXFuaWtIVlFrbVNDVHpNQmxoUmdLRzV1cUJrY1hKdEd3V2hHcFltQWNGUkd2QVFNdVdseU5VSGl1UGhvTXduckp3S0JTa1doYmJWY1hBNDhkMnZKcmxVcXRZcmdNVVF1''@;'; + put 'put ''ZU5sZFcrcXhKRHU4cDJwN3NPdGJVZDZrcGZYVHcyTnRiUlBqYmFRZlJLZmRkOFM3aHNxckNrcDdVN21zZ2M3ZTA5MmxGYk5heThiNnlqWTNTMG8yTU02QXNlT1NsaDhjUFJaKzEwS1ZzbHJSY3gwWU1yTTNwbUxVaFdOS3ZVMjlhTmJzT2RsWXNzODZMZUFXcm1BUUpjeUdsM0JsdzBSVUZWSVJD''@;'; + put 'put ''VXo0a0c3VzZZS0Q0M1dYZFRlMjNEd01tVEJWY2xpVDI1dTBYNUVxNUxkWGNsbEpkQW9zTFZYSFpvcHVmYjVHZmd2K1dqclh6SW5tekN2SUJ5a0YzMWozMHkrS1J3Q3p5SStaekxVOVExeWJmbVdWZ1dYYjhtaXk2Qk43Ry9xcXFrdUtxcXVPUGtTYkl0V2t6ZkZrZEhsdDZpejEvK3p2S0krbndm''@;'; + put 'put ''MmsrdEVoR3NvT095a3FIUEdZc2dNSmJXN1JVQkt6NGQ0M29FQUFKaVMyT3JiNElPWWhsK242WEk2M0hhMmVpa2RUbiszQnlEbUIzcFlxTTkzK1MzZWtwT2J1dGFHZkxiYjVrTjB6cXhvb2k0bDE3cjJiR1NHNGdCM2MxbzVrdEdGaXhxbExkelUwbkhoVmZSM001TlkrNE5vRFlFM2RQczQ2bzdV''@;'; + put 'put ''MVBQT2V4TzVwVmk2bEF4V3dmKzgxVXYzL2RBLzhtVFA3OGZseXF2dlR4OEIxaXpIWCtpNDZFVkdsOGwxTDlxNDhNd1UxOVVUY3lvQXpEbjVHcDg3Sk9Xekp1YSt1Sks4cVliNkFXcWw4OFQrRnZZQVhJZlFGYzlWMTVFc0I2ckZzaERGWTUreGlDSmdsNXZIOVRSbFdVMkpkQkk4Sm5lRmVFdUVj''@;'; + put 'put ''WEM3TTBwbGk0S29Jb0E4REJ3c1JIVTBsb3VYczNPOWJUU0prbCtNRmwzYzFPOFBuTnpVM1dkZlBLa2E2aTJjYkxBdWF0RjQrOVVzck85UnZtbTlwZm90NGJqRFlucUZKOURONU5STzhqT09MV2tXTENBWHRJc3FaT0ZjbnFxamV5NVVzajRhcDE4WGxZSXBUVkNXTnNyVWltc3o1SENwcWp5QXRG''@;'; + put 'put ''dkNURmZqZm9kRXpDdU5mbVh3bmZNdjNndW4zK2hMc2VaZ1FIMkd1Mkx4Y0RwNkkvRitxT3F3ekZ3cXEvdjlNQUMrQnZ4NFdydWVIQ2RzQlYwL0N5TWgvb2NoNW1uU0V5NVBnZnpBRVNCK3RVNTNockZrcE43Q0V3N3JIVWtjMkN1MEtsei83Vk9uVUtlbWxqbDAxSC9hVHY0VDN3dVoxUS9tRHRS''@;'; + put 'put ''bVB2QjhFRVFWdnZCMmVrVjV2ZzFnNXB4WWs2U2ZZM0x0UXJteXQyZjFKVzRQL3FsMGJkWDNKOHhaWExGKzhGb0s3eWNJRlM5ZFQ1clpzVUpmQloyWmluQkRlSWVLL01SM0JvenIzaXkxRDE0RGhRTTB6Q094cVJiazdrZnoyYTJ6WjA4aWY5WDI4S3VBZVV0b3QvUFphaDgrVTM4QTNoZUpmV1JQ''@;'; + put 'put ''ZkJBTDBUbjRDV3pKVUExNVZPNFVjb252aWJsRTk0ZzQxT0t2YVdFS3VadjM1SkliOXNWU3RTbE04UHh1cW5taHJsNE1qaGM0WSs1b3ZHbWdlVFIzWmFxMEk2MmtnS2ZMOThXYkk3WERsVDVTNmE4QllWdW05dVdsMStScVIrWW9qNFhqSFdCZkFoOHJobzU3c1VpVFRtRGEzaVcyaFF5VFJjeEFC''@;'; + put 'put ''c1EzdTNsN2lCemtad1YxRWNLOFhVMXUxb1RCY3hJRjlVYTAzakIwMW9pVHd3TzNuempqU1dlZkoreHhPblozb205Qis2Nzc0RHlIMFVWSmlPekNTRFBQcUxuZXNhWjlVWlZQUU1xUnJXZU9YR2xWN3VxR29DVlVKTHJHVmZBRldEckVUazhSRzBXRzVXZCtLaDZhZEtVRFhETVc2QmFRTm5nZnVV''@;'; + put 'put ''U1ZUYTRWNjBoQXQ5TnI5VVFhVmtWelUrME8xajA3dVRwSDhjZEgvblFuVDg5RHU3UGUvRXQxRml6WEk5UUMrM1g1NUhzbDg4akZadzhmSHp1aGtNbm56aHk1UG9qME9PbjhDejlYWG9MWDZNOHRKTHZBbytUMTZ5WkpCM1cwWlFYelNwQTN3TEpXYVJ3T0J4NmxyeVVBczRJVFNaSlR2eVIyODdj''@;'; + put 'put ''OVkwWDNuM1RUWGU5OEkzSEg4ZUdwWWNmZmx2NU0rdDNlWWcwUWI4MldyMWpOdEFoVTJZbGF0ZVVVZmZTc2ZzRWRmWEI0Y3hsMUF3VzJDeEU2UVB0M3FKQVdjTGwrZWtkZjNQZmJUOXR2dVdMMXJ5ZHpvb0VNU3EzNFR1WFhybVA4UHBHZUhrZG5yZEp2c20rYWI1Sm92bW1CSFlvYitMSHNmSTc3''@;'; + put 'put ''RkVHcDNEbm9Tbmw3dyt4M09YeUxueVl2SUQ4cUZJT0ZiQjhJRmhxM09jdnAzbGdtc3VjVkFVYm8xRzdoOXB3bW9KTWczWkpnYmhGUU5JZ3JpRnVMMXUrbEtpb1NUaC9Ob3FyRzFKeEhOdTd6ZFRjNU1iRGtUQjJOeldiUGhYdGF6cFRFeDJPMXQ3VzNGZHBHRFo0SStHN0pvdXM2ZXAzaGFzOGht''@;'; + put 'put ''Rk9zN25sNTlEZnNmelU1clY4NEVmTTdkeXAxZFZoaU5WMjRldlpQQUEvQnBZL3N1VVQxT2ZIakVjeG1sUXIwaEFlcFNYblJITEZ2R0RYSWcyTjZUQk1KNEhCWlNNd0FRL1RWVjR3RjFLRURqMFVHYUpETjI2YmplRjRRd1BNYVhiYmxNRlRGWDVYZGRwYU5IbFhPT0tGZVZUMk5kOVdDL09xT2RQ''@;'; + put 'put ''VUY1V1dsMUVLUi9COStHbTdoUE1RVVg2RGpFOGgvTHp5RzFhdFFXMWh6L0pWNkJkTXYrYXoxVE02T0dxUW1WUE9FbXRPdW02MTJnRm16aVV2aUFUL0p2bU1XcnJRZTEvSmRtTFhxaFdXdHVDWCtUTXFsNThqZWpLTUNsRTV4VXBKY1dHQngrMTA1RnQwMk1MWHllQ3BPOVRFSWtiRFJhem1Na2py''@;'; + put 'put ''M0xrT3BTWHVsS0RoaUIyaTF5Q0UxZUFCNEsvdjI5VitvS1ZsZjhldTJ1M2xFeFcxOVlFSjVaUHBlRHhOTEhKUDN2RFJUT2JJY0Y1WGh4aXQ2QXVibEJmTmtkNTNiWGZpbEhON2t0VnAwcnpwaTZnWWRjc3kwSklXT2lHSjFrOUx1RjhQY1IzR0VtRkxNaXd5b3hWUGtzU1RBWWhYcEJYYm5hRWdt''@;'; + put 'put ''QmJxM0lYYy9sU2FWWml1MHZnbG1KYkhrZW1sZnh6dDdtNWQ2TjV5VzhtT3ZQNVlmZGVUVDg3TnBlbytNWGkyNTNDYnV0SjM2K0FuVUU1dTJJT2E1VVlYUmtZOEFOR2x4TUtTT1JFVGNKbkF1Qjh3c1QwTnZDNlA0bExiczJBejAxMExiRHVJV3l0NmhWOG01UGpySDNqaGhSZk9QUC84OC9mOWtt''@;'; + put 'put ''YVRjYy9nbHNHREIrRUZINklwWlVhckRCbkM3eU1YV1cxUlBjdENSbWhoTGZBdFcxQ1kwUXNVVVhoMGcrb2ltcURNalQ3cWM5N3ZDd2FMQ2tQQm9tZUNJZmFYRE5HLzRZS2lrUFlYZURXQzZva1JmOXRXZ1dNNlpCTndETDJtNWtVSDhMM2szSlhrVkdrZFVBYVBLRStUYzROWG1sUDFTb0V2TGo2''@;'; + put 'put ''d2c3eml1WlBMc0gvNVpkSk9uZ0JLQjJTSXdObUN6MjNVbk41SkxSZExxN1BsbERDekJGanpkK2lDTWwxWHNmWWVhbTJlNjhSdGUyN2VnOHZxZDdXMDdxbGZLaWQzTDkwRWZUZWo3Nkh2NE4yQXRGTFpsNk1RQ0ZVVm96a0Z2NDI1Mkl0R1MwdWkwWkx2UlV0TG8vUlh6UmN2dDRNWk1ZUGR1cEhO''@;'; + put 'put ''TGQrRmljNXBKRHdoSVlCQnR0SjhCRGoyQXNHNm80aXVYUWhrZmtXYjdtVXJyZUR5TVJCZ3JOczJnK0YydWdCNW5jRmdrTnBwaWpsZVIxNFJYbFdRU2ZmRy9MU3FOVkZVYnlzbzhUc0w3WFpIbnF1OHUwQWZENWVFRTdhOEJxOGpQODltY2cybDJYNmVPTkRjeW1nZTExT2F4OUhyZkQvUDhnRCtK''@;'; + put 'put ''ZE5MZnRRcGQ1UUI1N3RnWUc3cXpRNGdQU0lDTGRHam1CTTFiY1hLYXlFeVJzaGZYdWgxMmxXTlJZTmlsS3V4MUJLaWxUUVkzVUtERzFRbDFyeTJNR3RGb3luWHJpM05RbXdPck1aSHVNTldRVmZnN0JMRVliZWp6eVBEVXdRLytYbW1hRGVBT1FqNmVHT1lFeG9NbHRCRG04QWN5OExrb1k5dUFu''@;'; + put 'put ''TTgrNnc1OUdFT1E5YkN2Snp0eHd4OHVRb0dhQUEraS9CSFZsdmtRRnZsYmp0VmpSVGxCb1JCQVJtUWpoaDBCNHlnRjhWcGNEUFZwU1k5ZDVSWU5PZXdPYUJ4dnFxYnpLQW9zVmJJa3FMMVRYNDN0Z3Zra0ZiUXNvd0dQNERmVDdZdHZmVXRYdGx5NTUza3dxTHlHTjZoUE1aclVkcFpEVkVLRzJW''@;'; + put 'put ''L0ZSYjFVVUlnTEFmMVdJSjF1TmdCSEd6SFJCQUhTdW5tS2M3OTFiUWFSTUJINFFYcHJsL0pNVEoxcnNac1lPajJ3dGg5TEJmcGdFWUoyZ2hoM1cxWDNLcVVibWxhMVVvNDlZN041UGphRmlCOUF0bS9VVU8rVmtEVENpblVFSXFDRlByZDFQTHdkRzQrVmpYRldtRmNFNE5vaFFzdlRmbDNKazcy''@;'; + put 'put ''V1BWbGF5WFZPL25BanJXbFZIUFI4RVJkaTg2L1dvQ2JUQWMrdm5OMWFSWHdGYXRCWW54ZXFjckNDY1pYT0ljLzE4SWNSSTl0QW5OQ2d3RlpPTG9KelBGc1AzUHduOEdzOFBueTkyZ05EM3RXbkk5bitmM3IrZ0dteGwwNU1BZkJ1cStCV2Y0dHdBVFplT0o4UE11UHI0TUJhNFhqYkR5OG43bmxS''@;'; + put 'put ''MWFQQjJTcUNsNSt5V29hU2xDYjNMemEwNWcyc1BVSlk0NnJrWjhQZjByeWk5bitSRGMweXdPN1kxckpKYkNBS1dubkplVzBHTTJkbE1ENDR4L3hnclMrdmpkMjhJcTBMK0RIc2xWcE9MQ0lpNWErd1d2VC9uYnhhY0FCcTdkaGVxVk8xU3VmV1ljblZrUEM4RlN2MHZhVDYzVFBXcGlEdUdvVG1C''@;'; + put 'put ''TWFETkQySzV2QUhNdkM1S0huTm9FNW5uM1dISHA2alE2anRXRzNRN3hTQXBaQWZFWkV1RFlXaW9CWVJOTGV0RmZ5NG8vY2VlZkFuV2VIejk0eGNNZWR0NS9OdmorTDJPS3lWalBqQlJzVVJYZXA4YTBMNjBobHhGZmtOWXQ2SFJoYXZURGdZMWVGbktzWXJxcjVsZ0tXU2FFbEE1NUJjZFdTSXpn''@;'; + put 'put ''WHVjdFJIcjZHS09hdUQ4cldpb3FLYUVWVjJCRnhzQjBpMlZKektaQ3RxcWN4SXZKNE1hOTgxVkZPaUdCUGtud3ZlYzM1dmRmdXJqeStNNUVFbVQ1STN5bjVSUVc0cGlrRGtvMHJEMlhxbEI4Mlo0ajMxcDZaejg2MjFzelhuZXFoRWwwenIveDZ1QXhmRXdDeGZxUHJTT2RFcC9KUWdOczZWaVBD''@;'; + put 'put ''Nk51azhzQ2o2K1ZwRGN4QjlPTk5ZRTVvTUZsYnR4N21lTFlmelk3bHlEZjNsOW16MnRSbnZiQzZuNXg2SzFwSGxKQmp3QlY2SGRZZkVMRzZmSmJkUEFwbUs5L2p5dmZhdlBhdzN5YXg2akozTXFmcUtwU3R1anAxWWFYcVNoNWpWVmZIV2hjNnV4WmFidnAxUjBORCsrdHFYV0tTZkJka2Z1cFpN''@;'; + put 'put ''L2p0TkhmbEI0NG9CYVV2UU1BeHJ4VlRlL2p5c0lqVmxIV3hXbFk1bndYTXVUMGxtNXhCZjlBZkQ3RFZyblg3S21JNHBSVTZwVFJMUUpOZXZhM1hkbmNmYkUwbVdQWHVjS3ErczdNK1ZWSGQxbEpUMDNxS0dKdDIxdFh0YkdvWUwrUVZ2SWRwNWU1Y1k3aXFvVEd1T0RudGVhM0JLNERySGpEdUJI''@;'; + put 'put ''VlBiWFJkQUJyY2szUDlrZ2FQcGJGYytKZXkxL01HY3E5ZnpQWS90elhudWhETXdwdFBjL21FNjhKOTRDTldvd1lrazBPRFQ1cm9pa3BGTVJEVkIzNkFHNXRJRXhaTjhHRFJLQkFraVFOZ3FjMEFVN1l4RERaTDRFeVlKUXBtdVlLdWJGZldWZWxhTU1NR1lDc1F4bzBocHVnL1BzVVlNb25FTkdt''@;'; + put 'put ''QW1GQ1VpSGdnejBpbzk4c1QrRmF6UmFCT3cwcGRBNTF4Nm5KTkxEamJZTkNLemViY3hwYS8vbm0yLzUvblVXUTFnc3pTNXZNZzNhSmt1T0xXc3J5MklWcHBSdmVGdjJNWERNbHllU3FWU0lDakphY3lyYzJKaGtTeXJoWjRMRTVEbjFBd2xKLzF1dFpzVVBEbWJQbGd5emxyMXRaUll6dk81c0pm''@;'; + put 'put ''NU92c0hZZkQ1WWU3OWg1ZnFZTnB1cnEyZlhkUmFIL0wyc1YzNWZPRHREeW1wWTZ2d3RkWHg1TlRROW55bU9LaWVGVmxkYzZpdlBJNU9lRjMxUVJEM0E1V2d1OU1hejhhMEdOeVNSRHJkY2tRRWZVTmhVQ2ZBZ3pCY1I1SUdNVEdSRlNqUm9nS1JHRDBvMGdFRFNReVZjWGlLMTdKc2hjc2xROXI5''@;'; + put 'put ''QXBSV0lDNzdmTEFjc1U2T0hhK3dmNHN1SjZ0NVllWmU4dnkxTHEvMHJHbHRTajRLd2Z5MS91MUJaM1haVGFxVDhHbXRXNnRjZmlHcm5YbEtsazlGR042cm8vcnYybTB3WFdxL3o2UWMvMlNCbytsN2Jud0Y3UDl6SEg5dC93dHRyWkorM21aOS85dUR0OE5CR3pMdVg3UXcrRi9DZGRMV2Y4djgv''@;'; + put 'put ''NGY1ZGRmaGV0aDFqK0huM3VRNStIcVdhM04vMlMxWXJ0a3A0MHRwMlFQdm5DWWNCOHZ4ZkJvQ3gzMlZkWEFkSUVjZzhYRVpENzM4cFNjVjF6TWE4SENJYnBIUW5OUnN1NUplTVhseWwwUHdtOXM3N2xsZVBoa1Q4dEMxNTdPOE9TUnN0NkJZNTNUNWEwbDQrT2Q4dmhFSjdFL2RQWDJzd1BkTncz''@;'; + put 'put ''MUhzc01EZmJYOVpjbmF4cWkvYjZsdit6b2txL2ExdGw5bFlZZlVzTHN5VGkzSnlwZCtMb2p4ZHNFeCtmaGphNVRlajJVYy8yU0JvK2xmYm53TDJXdnIrNy9ZcmIvdVNsdWx6clFObEpJK2xsTzFVZjNUUURmYTNVRmlLWHZrQTVZZnBKdElKTkFGdldqTEZ6MjJZckErOUF5clFhYXQ4Z3ROWUNv''@;'; + put 'put ''T1hjSEdjNlB4a3FMbzFVbGY2RDczWDZvZnNCZnBuK2p4YVd4cG9XWHRMY3dKbTBOMWt0enNGbGYxdXNpT2hJSkZ4WHE5RHF6Z2FpK0xMMHFyRnpkMEpjdDNNaVh6VjAxM01pWDlmdjlWZjdLMER2NXNqcXZ1bVhTdzF4WkNkUmxQRHgwWm1CNFM5Rys3b29JdkJ2WldyU3ZSemxYL0hLd010b2Yr''@;'; + put 'put ''MDVmelBjRGZ4Ui9jRTk5MyttQmFPbElhRG9KRWh3ckcvMWwvTjg4SU1PUGdoRFh4WDd2cHVmSHNMVXJTdnVkcTJSNDlmVVZHZWJYTDJud1dSbm0xeTltKzFGbFdGMlBvZjNzVWZ1NU4yZk5tZGU1ZlR5M1ZIR1R1c1AxNjg2YjFCMXV1RUM5OFcyMUJKRXVVUDkzbFIwcXd2eWFzc01zVGk2cU9B''@;'; + put 'put ''RmM5ZVhtelRMWlBOVUNlbUJkak1kOXduTlpuM0NoSjdmdDRXeit5b2dlM0tUdE43SitvM0ZVM1pPM3ZFMm9nSGlnQUtTelhXNHB3cEt1QUl1WURCZ2dEQUVTa3ptMkhVdlA5aFd3RlZTMUpLdXdzTkJYNkF2NjdYYTd5MCt6TDNxZVZFd0hJbnk3WHBLanFUNk53ZCt2Q05mWHRidkxHcks3OTdD''@;'; + put 'put ''bjJGZFFZRk4rYytMRWZXVnQ5VUVmM3ozazgzZ0tiRGpOTnZTcDlYN2JTQy9JYWd5bDBRdGM4SHdsV0tjdmhoakNndzFDVFlJWURVYU1qVEVzWWZCRU43OEw1bHlWM0tpMlJaTXBIYkM0aFlOMERRSFBpSVRQVWswMHNSS0F4SHBnRm55d0preSt2YmtOcG1SSFBCNVB4eHZEUVdjZ0dBNjQvSFFW''@;'; + put 'put ''SW91YlRRcUNRWXZaTlhTRmM0cURTUy9EbTNsOWdmRGNMUnlCZjlFS2hUa1cxeFlLMCtKaGh0TlBhZ1hEYXE3Z1l5eE9ES3R4NGkvV3hadThQcGJLN2xaVmR1L081aGsreG1KVjFoWWIwUGxOMmw1UzJ4SnNHT1Y4eXZZWXNyWVJ0ZTNDT2o2TlF4eGpKaThDVEMrRHlSZDJrRDhoSThBOFQvNUVn''@;'; + put 'put ''UUJHelJ1QkJKekoxczIrQy9SSkVZenBOZG5rQU1McmdPYmFLbnlZbWhXTUJEMDZBUHhyeSs3MDFhaE9zRll3UmJWUGRGTm90SnJxUkZORHExdFlMOXRpRmZBS25DaXFCZEc1d05UOWR2aDh2ckF2RktMVkN1R0F1cVFWV0Y5Ym9oWXZvTndTazNkMXJLb3hlZWloa3gzS3YydUZKcDFMZjU5VFov''@;'; + put 'put ''ditycWFtcFIvbjZpbWVUOHhrODRrTGFQODZPblBmN1Z6V2QxdFFkZG1hWENRMm9SOXMwbGJ6K3dTQWVZcm5xRURlaDluWkdLQ05pckVCczExT2VsSEg5MVdxSjJMUStudUpTU0VnVVJNOXBvdTRObHFST0xwTFZQc2YwRVNNRERPeFVoNGpldVVXbm5IdjRlTEVwWWhjV0tRcGR5WTRUQWN0c0py''@;'; + put 'put ''akVJcWpNN0tEUmd3aFRQUUdjQUJCdHlDNnlid0krS0FTWEhrZGpQUUF6VlJybEZXUE4yTGxRc3lQWkZZcHBJR3lPZU45RzdVZ3RIUXVIQTdId3pGUGhUTWNESVJZamx0UzUrRFZWTXJhNm1YcTl5TzFndm0xclJZNnEySTZYWjF0ZFNGekVLSXU1UzlxUUZYc3RUcGhzaG1ZdnNXUlU5UU00Uldl''@;'; + put 'put ''WlhYTkcrU2hEUnZrb2RmNitRYlZSMkI3WjVtTmlxbzI2cXZyMnZKNlkycWpCcmlOV2xUYktxL1RmYmU4TGZCS1B2RWpma1lId0FzMXlJb1NxQVg5bVV1N3R4cEwraktzTTBBb3AvTmlJdWpvRVM2b3o4ZnVpQnZjVWExQ3pFeVhjUVNEYnQ2SVZ6WmhTNUorQnNKb3F2YTFmYjFPa25OdzIvb21K''@;'; + put 'put ''aXlLZHQ0UXJXMG1WeU5rcE9lODRQbHMwOHZBMC9pN3BvYW12V3RhYXBwVHlmeEVmaUpXRmZBWEY3bWROUDFkWU5IOFlub2NBSGVGOVg5RlJUUXVEUVdyUWlGallTQlVpSVYzckk0ZXFndVhkY2FMQTVWMC9icjNDa3FsSWY3Nk9UQjRndWtSdmc2d3NQend1cldDbndCTUpkTWpQRVpiK0FSZjAy''@;'; + put 'put ''MWEzb1lVMEFVdXVqT1VybmpTNDFjSTdzK2U0OElMcXpUcDkvalpuaVpOTHVoT1dFM2dGU2J2dWxPVzFWS3UraHZVaGlCNDFyZlpXcjhmSFpMTmJ1cjIrMEhRcVJFSjBKVmpNWWNwVk84K1B5dXNqTGFsTExSWktWQmVBekJGdDJtVmx4WkJoSm1mdDJHSnNsTmRsazE3YzhjK3I1WUxiS0Z6S1BI''@;'; + put 'put ''bW4yemprMWdwRzFnS3czeEthdlAwK04rVzNsSm5wSzdsb0crdHJNR0Fqald0eVFkck5jVDY3TDV1KzdwOTNiUTBXTC8wRnZRM0NuSjRucDAzbWVCeWlIL1AvWCs0SG1QeU9hSmVmNEpmcDN1cG1aOVJvL29aem5VeXorSjU0VjZBR1ZWaFBPZzVEdk9jQnNQM1pMK285UVA5ZjUvNUJEakhKNkQ5''@;'; + put 'put ''M01sZ1JqZUc0ZnN5U0Ivd1V4NnR2TFdZVFVaUkR4Skl0TjNwYXpaNjU2RTh0N2JST3lXbDByUVkyeTI1U1o4U0FQLysxS25GeGJjaVJ5SjRpL0tmbWFNZDM5SDJmVFN3K3ZCQk9jOXNra1JxNlEwSWExWGlabmhyVS9kMFpzdXpWN1o1K3RnbmJiRnJhdXFMYmxiN2d5VXc5K3J6Y2NQNHlhR2hr''@;'; + put 'put ''K040YjVWeThUL0RSOEo0UXZsdEZjcXVXZDJoclZrQkhsL2ZDTmVraFBsMDQ2dGkvVEdnM3hjWlhldFUvV3JsOEhDOWhOZzFlTURwUmJUeXJCUFo5VEVEK3R3bXo3cVV6VU1ZOXFHY2RhcE1kcDFxQVQyNXpnZms4Zm01YkM1aFlSSnR0SjZHcld2WHVOUzIrMWJ5SE5pcTdoc0N4U3ZRUGJZT29G''@;'; + put 'put ''S0xuTTZlT0dFZzJTTW5qSFJydlZhdnh5TENFbWV4eDhXS2VxbHJZYUlGTHBvemtTMTBjV1A3eW5idkhlcnkvUXV6ZEIvOExPbGRlcXNyYzBqT0hNN3dSZnlwVDF3OTgrbXJGNVVVL2w3bXNDelBOek03Qm1NV2ZnNytCWjFYTTlvdWozc3hqVVQwT3BwZTF3c0R3RU02dlVGM3dHSWtvcWlsSE15''@;'; + put 'put ''U1NjaEpPaVNUZ1FCQ3llWmtVMk1xVUIrb2kxVkJkMzVuTUJ3TTVjRzRWeWRwVjh4Qmp0K2dXM09Pak9wRENIazhPOXQ1SkJ3NUt2TUM4OHpSU1BDNmpPWklLTGZsMUp2alcxYnRqMnFzcTAzekN2VEdtdG9VY3lsMHVVWG91Sjg2RjZwdmNZTFJOcVh5NzlQcitJTFhQMVBhN3VDNVB6WCs3UVUr''@;'; + put 'put ''UGNINE42WHk2U3NjWG5tZDFrdXI4UFI2UjlZL1BjSDRONlh5NzgwYlB1dDJ4cjg3T1A4YStiUFlIbmcyemtaMW5BK3M0MzFlTjAzSGVSVWY1MjV0LzN3NzJ6L2ZnZDZXUytyQUdha3ZLUmIwVWhIZGZZaDF1TUFLTGtrZUs5cmdlZWY0Nm5vTlNSSm53UFAxREtLVk5NYTZjbzNxTmVVYTc5aW9k''@;'; + put 'put ''RjJOaDNEcW5WcXhkY09OaWpYV3QrTzFHdVpRZFlTV2FkZ05VbkVzS0c2YXliNkNRd0pJNzZuck44aHBleDg0ZUpsekE2NWZGQ3ZXcExZdHM1YzdSa0N0ZjI5bjllOHlYU2VvdzZLK3ZwVG94SklpZ25UZ0xpR2dGeEh5VnE4VDZOZzZnYlpTcWRhdWJMSk9vS05uYU4xMmVXQzZUckFHVGwwbjBN''@;'; + put 'put ''QkZ2dWN2WGduNFphdWdsMEV2TGFoOXA0cDgvSU85b3h2aE4zbE4rSEpsK3RzbXBUV0xCMmt4VW5iWnV2MGNlVHFoeVJQSTR1UW04blJKa3lkc0tPZnlGQVI1b21jOGxLTVg1SHd2VU1SakFZcVk2WG1US2tWaUdrVW82c2dwbWdCVTY3T01Cc0w4czNXRWlXY1JmaVZ0NUtvMTRDcDUxclhTVVRM''@;'; + put 'put ''WllkamxxSndHODFRYVRDQU1mbWtUV3RFZ254NFhnR2VkNjZuaEs2WG5WYXlwSXV6TUhsL0I5a08wcy8wUUNmUnR1YUFLRzRTb214Z05Ma3lNMmFKSWZWYk42SFg2c3lZTUE4WEdvMkJzQU1OME42WWc2S1pGdmllVDF6NGlYM1pac25xbGpjRklibnVuUm5KMFkzaFdXb24yNXpRVEtKN29lUVlK''@;'; + put 'put ''Vk0wMmFYZ0JVelRyb2R1RW85ZHYzUEJTQWNDcGRSeWNrbGYyY2dSOGNkdmFLc3kwYWF3NWQzdkhSSUVseFBpUG5TWENlRFN0OHVqNlhFZ0orQjBGelArYzVQNG51V2Fkajhwck9ETFpHbzZGRFd3SHo2V2Z5K2JTdFp3S2IvdHl0a1pFcTFITXJmOWdiVmx0QU12YkE4d2RHOVdnZ045MDM0WnRo''@;'; + put 'put ''MWZXQXJDMUQ2bm5vR3hqNTZBRTZOcU5DN1ErTFJyT28vc3FCdFJUcGJRengxbk9YUXQyMkphL1FMQWdFSFR4TTZab1VMb21jN0htMUJUeTZQRGRrN1pzdXNJeGYwbzlQWVZjWUdlbFdMMXFnc0pmNUgzNFdPNVJLbndmempZeUMzRk1DTjNHdzNrcm1GUUJZbTFkQ0FON0RmaFdYU0RaVlp3U3Zi''@;'; + put 'put ''YkRhK1AwcjUvZjV5bGZiVVZuVGNiWEhQUTdBNjZBeTArdDI3cFU3OHJXbmFROW14TW5zeXdpemMvZHluTVM1MGFuYXpmMWFKRWQwSXFkOGNMNHNZWFhDK0d1ZFh6RTkrOVFuYm1MOFlLRXZwdFRJM1JDcXhHQzY3ZXRhOHZYS0M1cGF4Ullta0E1Ylk5bjY0dm0wQTNyK0lpZHdjSjRyWDNUZWth''@;'; + put 'put ''K2I0YnkyalQzajQ2Z25MYkh0YlliNWcxNTI0dHFXNW8zL0dCTzJ4UFp0aHZscG5qYlM5cHpzYUdCbjcxQzl5WFRHRGlmN3NpZ0ZmMTBueE1aUU9xbUliS1hldHcreHRUNXlMclJrV1ZpSUQ5bkcvSFRHK3dkcHJYM041TkxWM2llaXBlZXAzSis0ZURZOE5Bb3VYVC82T2pHZldUM2RSRjBGdGp5''@;'; + put 'put ''Qm5WWGw5cEhPaWtGTXFORHcyTUhGOGlsa1pINzFUNTZvWTl2UUhTcjdtZ3dFYnFuWVlDR0duMGIxZURuSVV0SXlPNW9VQ2ZOZ29rbngvd3Ryb2Fpb2daWFMvbDRqUFQ2eTF0Y1hpOTg4TFBuREtFWFdUNGx6SjV6MmZyK3Ric2x0QjBTS3lrT2RUOUdMd2I5eHZaak5MRmU2U1pXdWlOaEhxUVVZ''@;'; + put 'put ''MkV5dTRsV3VLSmRHYm5mVzNCN1oyZDFRcFlUM3ZKeXI4ZnY5NURlemdUOW5PaHM4bnY0UmI3UFlCdldnMDJ6b3hZMmdob3JUQ2FmY2d6OW1vbys5ZVFld09razA0WUN2VU9uYWtlMm9FZW43c3hRejkrdldGR0lwOXBMdk1OYy9FSDdQYzdTT1Q0bThKa3lScmNrYWNQdkp5K0JYSGV4NTZicGZr''@;'; + put 'put ''d2oyOTNteHJqUGdJVmVkaWpSSkRXcHdNUHoydEVsUkJqbHV4V0NJYmJaalQ0ZjBjUHYyVkhhM0FOVWFTb0dzQ1ZRNkhDYkhCNTl4cENzY1dzZjVQemRwTjF1czVoOXBVYTZROGhpTGk0MTNhN1NKRVBYaWRpNXRVVjg1NFVldUxLUGhxVTNPQjNadlNoZUtSQlNONWZnSGNmNERwTy84ZHpCNUs5''@;'; + put 'put ''UmVYMzV1ZVZ2SXlzS3NoNEsrYm56cS9lNUJiTjlDYXNQb1A4S3oxK1doSUpWeWpMUFRiSThKZGNwWEZmZW9lbEsxSTByTnRHVnIyaTZFblVEeEVadEQrSW4zN0h0UWR5UzAvWjR0dTBjYmxxbkszbmJpOW0yYytoclBENWRicUZuVithdW43ejllKzVMdlAxNzFaZUlMRGZUTlFtZVoyY3dGOTcr''@;'; + put 'put ''SFY4bmUvdDNLZ3pQMXgvTDlwT0hydDBrWC85U05sK2ZONEkyckNYdFJ1L1p4RTY4a2wzTDdsYmozRHIwTTJMQnZlOTg3ajg5bTdqM29OWkdhTCtDTm9MbDdUZTFOaTM0QStoVjhnVHdUVEhqbWI2MW13bzV6emkxMURoUHJuNTM1UXNMeU4ycnZyR0F6aW1ENzBlL0lCZGd4dmswNjhqM0NKTFM3''@;'; + put 'put ''QjVCZUNiK1BudG1DYXFReTBxc3dPdXJOb1VKVExrRkM0SU9kdUxYNm1mck54MEtMdDlrV01HYzkzeDgrSWZBR3hFK1BqYk9QOEE0SGRseE1wZXpWTXZ2anFIemVCSS9EbENiN0xHaTV3dXdQVlpyemhkNHFqMFliQThFMk0vNVlGdVF2NE5MSEUvdHdEZGZSaDhFMmtOUVl3dkE2eDhZRDl2eHp3''@;'; + put 'put ''RkFvdCtQbzdzNzUvdHhNbWdRbnZ4YlhsUlZsNC8xVnY3MU5RWXNXckRKTEpweXYvTEdtZWNRekdaaHhtNjBTYnJjYjhwSnZVTkQ5cTAzdkxWRVd3dnE5K1UwYjlodWcyL01XZGNXb3BIR29TRloxcjQ1WjJoeTZLcUpNWGxRSHRqYVU1dXA3V2hxM1BCYmRGei9oVy9SS1Yvek9aZ0RXOTc0VjMv''@;'; + put 'put ''RERoNWtmK2lINFZybGM5cjM3WHdLM2dCczhNcS9lRWQ5UDFhVCt5VThLMS9HZzhIVHI4Y1IvRzE2S3RFemVveHJZeG5zQmR3RkhwbTkvLzdacFl1ZXA1LzE4djNBQUJmVDRBUUdGMGw3cFFoQVBmSkkvN05QZXk1K2o5bUQzNm5uSTllZ0hmS0VENmhXakhVaW9XVWtHSm5wcWZRNk1IY1FiUjh3''@;'; + put 'put ''WW1MQzJFeDNqR1MzQ1ZsWURTdFBQY0ZyRFVyRVk5RXF1eU1FNGFIZEdjcURVSExsMktjSXhJN2NXVTkya0pWY0NDMHZBMVI3L1N3eHluWUkxYjluWU9UZWVlOVlGeEc2ZHhUT3YzZEkzUldVdWE0TWk4clA5UVFIbERkS0Y3dm4ySkhLbmNmN2VqM21Razl2eitGMnRpZW91Nm0zMEdQMjlIWU0w''@;'; + put 'put ''ZTlzd1VXa0VOOEp1azU4aHRCOUdNN3NhZTEzMG5QYW1WTURibzBBbXRkdjl4TmhhWW4rNXB3UnhzKzRNRHpyZGVicFNlMS8vYkNKdDhZMlBHeUMxMkhBYzBDMzQxcDFyZUFKclQ0RHJuOUR2YjZ5UnN1dlg4cGVsNDduWHIrb1hVZHpCM092djVLOTNuMHE5L3E1N1BXRmVlMXN0RzNrSHBZalQ4''@;'; + put 'put ''QzhJd0VuaG5sdlhGWURzMC9tVk5QazRPRWVGblJaYzVGeGtqdGRmMUp4d21PdlhLeW9jZGRqYTNGRDQyeU9HNGl6UDUwejlwZXlPTWk3anR0RFdyci9OWFpPajBidnBEMndWVHR4QjlONk9MaXZYMzlmdnpTSy9oL2lFeno2QUFFQUFBQUJBQUJWRXJUK1h3ODg5UUFmQStnQUFBQUEwOEdkaGdB''@;'; + put 'put ''QUFBRFV2cWIxL3piKzR3U0tBODRBQUFBSUFBSUFBQUFBQUFCNDJtTmdaR0JnUHZmdlBBTUR5K2IvWnY5eldMb1lnQ0xJZ05FUUFLY05CcmdBQUFCNDJuV1V6V3NUVVJURno3MHpGRUVJMkVSUVFvekdZRXhNcWttMTBXb3RhV3BpQld2c1JxeFlGMUlYTGxTNlVFUUZrYTVFUlYyNGMxWHAwb1ZL''@;'; + put 'put ''ZDNhaENBWDlDMFJRdXRDQ0NoVktvUzZNNXo0ekVwT2FjRGp6OGQ2OGUzL3Z6TWdTVG9NL09VcEZxUlFxTW8rU1RpR2hFNGg3UmFUMUNiWklCMHB5QlQzVU5ubUFMajJCZ3h6Zkx4ZVJsL1hvazluNlYzM0o0OXZvMUZQSTh2NG12VW1keFE2OWpsMDZpbTQ5and5UEMyNDg1K293aXZZYyttRlpR''@;'; + put 'put ''ZGk3eEhtTENPc01hdm9NT1YyaDMwQ1ZkVlQxQzg4L29pb2hER2tjNi9RcGp1a0JsTHd6cUhrK2xlSDllNmc2Zit6bXhMbFdrczhiMGgrSStFVnMxTmZZd0hscjlDNjY1UnFPc09abGVrNFdzRk5yOVY4eXpwcktTT2tkVkRTQjdmU3NqaUFsRTRqcEpHc2Z3NEFJOW92VTU3UkFIb0t5OXdnRHZG''@;'; + put 'put ''N1dxMjU4eGViSWZUSmN3bWFaNUx3eHNxeWgwNnR5N1R3aTdEZWlJWFRKUXlRbGlYUDBsTHpDSG5JZmRHdmVRdDVxbERuV3NwdjMzcEd4MVRYRlBRRDJTZGxkejVKWGduMkZuUmIvbFova0dzYlAyRFZKUXZXM3hvLytqWnIzb2tnSDdGcWxtUVpMNDljczQwZk9lcEl5VnF2SWUwRzNYc2l1V2VU''@;'; + put 'put ''MnhwalJQMU1mOURJS2Y5bTF5bkpoYnZ5YVpmeU1zN24xYTJ1MnV2VnU2d2R1T2VLK1dML01jdGJ4c0pxYS9YalR1V1hOOXJ2aFpQV0o5YjRudTcyc0g0NGgrM0FaWkE0c2grNDg4SEhFWkFReFkydjl0Ymx4WlcrQit5SGsvQTdXeWR4YWR0cWNXYlk4dFRuejdUSVd1TzJQTWZxUDJ6dmdjbWg3''@;'; + put 'put ''YVB3YTc0TGxzZFV0NHpMRDdEV0VuL1JSYXBDYTVaaER2SVo2VC9ETVZtOWoybGlUZGNOYitQTzk0VE9CYVVEN2tQY3U4TnNSUmEvN0xxeEZMOVV2MCtTMTdMNFY4SjhqTGNQWVNuRi82OTlkUGp6TzViNnU4cStnOGhzcFk5Zk9lTnBGd2wxSTRuQUFBUEMxbHQrdU1wdE85M0grTjZlYk83ZTVO''@;'; + put 'put ''VUY2a2lQaUNCL2lpQWlKSG82SU9PUTRJcUtISXlUaWtCNE9rWkNJT0VJaUl1S0lFTG1Ia09naFlrUVBJUkVSUi9RZ0l0SkR5Q0VSOTNKdy9INFFCR1grMlliMnU2Q3VORXpBMytFaitBcHVkZi9vUHU5dUlSWkVRSkpJRHRsSDZqMGpQY3M5NXliQk5HWTZNYjh4cDgwWjg2cTViRFlzbEtWdDVh''@;'; + put 'put ''ekwxalByaTAyMFRkajJiTmUyaHAyd2o5cm43SGw3eFFFNUVvNkNvK1lVbldQT3JIUFBXVU1obEVQSDBWVjBFelhRVnEramwrdmQ2UnZ1Vyt2MzlzLzNYN3FtWEdWWGUyQmlZSHZnd2kyNmw5elZRVzV3WS9BU1k3RVo3QUF6c0k2SDgweDdjcDVyVDh1cmUwZThTOTVUSE1WVCtEcGV4TXY0RmY3''@;'; + put 'put ''cVkzMXJ2cnl2N3V2NEhYN0tML3VUL2cvK0xTSkRyQkI1b2tTVWlYUGlsbWdTcitSN01rMW15QlV5VDViSU1ubE5UVk9mcVN4Vm9IYXBDdlZNcCtrNWVvRmVvZGZwSWwwS0pBSjNnWHJnR1VEQUFieUFCVElZQm52Z0dGU0JBVzdBSTNoaUVzd0pjOEhVbUFlbXhYVFlKWGFWM1dCMzJHTzJHdXdM''@;'; + put 'put ''L2dvYXdadGdJOWptTEp5UEE1ekIzWE1ON2lWa0NZMkhhcUY2NkRsc0NydkNWUGlKaDNtVWY4Y2Y4bFcreGovd0xRRVNYQUlyNk1Lc1VCTEt3cWx3S2R3S1RlRlB4QmJCSXVHSUZzbUtpSWlKUUl5S0NYRk1uQlRueGNXM3FTZ1VkVVdwNklFMExuMlVGcVZ2VWtIYWxZNmtNK2xLWnVWTitVQ3V5''@;'; + put 'put ''QmR5VGE3TEhjV2tlQlZXMFpXa3NxQnNLQldsR2NOaWs3RkM3TGNLcTdLYVZGUHFqUHBKL2FybTFDMzFVSzJxaG5xdk52N1RFSTNTUnJWSnJhajkxTzYwcHRZY2VoaHE2elo5V2MvcFJkM1FiL1JIL1VsL2lWdmk3dmhVZkRiK0paNk41LzhDREJETXlBQUJBQUFCUEFCb0FBb0FRUUFFQUFJQUtB''@;'; + put 'put ''QTVBSXNBQUFDVEFtc0FBd0FCZU5xTmtzdE93a0FVaHY4V05LREdLREhHc09yS0dCTzVxZUJ0WWRTd1VkUkloSzBnRlJyQllpbEdYZm8yYmx6NkRGNmV3STJQNERQNGR6aXROMkxJcEoxdjV2em5Qek9uQlJERE8wTFF3bEVBTzN4NnJHR09xeDdyR0VkVE9JUU4zQXFIc1lKSDRTSEU4U0U4akZr''@;'; + put 'put ''dEloeEJSa3NJUnhIWFRvUkhzYVQ1UG1Nb2FRL0NFNWpTdzhLVGlPa3p3aytZMXVlRm41SFNONFZmRU5IYndxOFkwYTk3L0JaQ1hML0RObXkwY1FNSEZ1cG93SVdCZXo0WnBKQkdsbFJsMUtDdW9UUWRjcEZ6aTFrZDVsNGdnUUpNNWpuS3lXWWZmSlZKbFVYYVVyczFISEduamk2NVFuV2FtU2sx''@;'; + put 'put ''MW5HTVhaU3hUK3JudFJCNCtVNkRWalIrMVN4eDVWQnJxWk1iMzg0d1dOMFMrWlE2bTBxdkt3ZDBNVGw3MlRYR0t1UkR4cjNZSHVmYVAzM3pldTF5dFlZa3g5VVBaMXY1dGdMWEJHTTIxMzVPUjdMcWpMcmM3ZklyK1pva1o3OW1TOTMxcTJheTd6Mzc3ZjN0WlprN1Zad3BIemZvWFVFNm1WZFJn''@;'; + put 'put ''eU9yWWptZU1JMVZ2aGV4SFB4UE9aeFRaNm82am55RmZPQll4Q1Z2WWpIaVVOUDhCTGhaaDVjQUFIamFiWk5YYkJ4VkZJYS8zN0YzM1RaTzc3MVh4MTczeENrdWE4ZXhZeWN1Y2V6RVNjYTdZMmZ4ZWhmR3UzRnN1Z1FDSGtEd3dqUGxDUkM5Q2lSNFFLSlgwWHNIMFhta0IrL2NDVjRrN3NOOC94''@;'; + put 'put ''bWQ4NTh6OTk0aEMzZWRHMkFlLzdOVW0zNlF4UXl5eWNHSG4xenl5S2VBUWdMTXBJaFp6R1lPYzZmcTU3T0FoU3hpTVV0WXlqS1dzNEtWckdJMWExakxPdGF6Z1kxc1lqTmIyTW8ydGxQTURrb29KVWdaNVZSUVNSWFYxTENUWGRTeW16M3NaUjkxMU5OQUl5R2FhR1kvTFJ5Z2xUWU8wazRIaHpo''@;'; + put 'put ''TUoxMTAwOE1SZWpsS0gvMGM0emdEbk9Ba3A3QzRuYXU0bXB1NWdUdDRuK3U1bHFmNW1EdTVqYnQ1bm1lNWgwSEMzRWlFRjdGNWpoZDRsWmQ0bVZmNGxpSGU0RFZlNTE2RytZV2JlSnMzZVl2VGZNK1BYTWNGUkJsaGxCaHhiaUhCUlZ5SXd4Z3BrcHhobk84NHl5UVRYTXlsWE1KajNNcmxYTVlW''@;'; + put 'put ''WE1rUC9NVGp5dElNWlN0SFB2bjVpNzg1SjVTclBPVkxLbENoQXBxcElzM1NiTTNoVjM3VFhNM1RmQzNRUWkzaWQ5N1JZaTNSVWkzVGNxM2djNzdRU3EzU2FxM1JXcTNUZW0zUVJtM2lQdTdYWm0zUlZtM1RkaFZyaDByNGd6LzVrcTlVcXFES1ZLNEtWYXBLMWFyUlR1MVNyWFpyai9acUgwK29U''@;'; + put 'put ''dlZxVUNOZjg0MUN2TXRuZk1DSGZNU252TWNuYWxLejlxdEZCOVNxTmgxVXV6cDBTSWZWcVM1MXEwZEgxTXNEUE1nalBNcERQTXcxM0tXalBNT1RQS1UrZmxhL2p1bTRCblJDSjNWS2xnWVZWa1MyaHZ4MW8xYllTY1Q5bHFHdmJ0Q3h6OWcreTRXL0xqR2NpTnNqZnN2UTF4aTIwa2tSZzhhcENp''@;'; + put 'put ''dnBEM2tXdG1GK0tKSklXdUd3SFUvbTIvOUtmOGl6c2oycmtQR3dYUlEyaHhPam81WkpMUnpPQ1B3dG5udlVZNHZuRXpVc2JNMnNITWtJZkcxV09KVzBmVEdETnRNdlp0QnVYc1pkRkxabmVzUXpQZHBOZXR5RnY4T2JJV0VZNkRpZGlnOWJUbW8wWnFXU2dVUm01T3MwSFJ6VG9UT3pnNVBab2RO''@;'; + put 'put ''MGNBeTZUTldZQzM4cUhpMHByUXg2TFBOMW02U2ttYWJIbXlabG1OUGpST1BET2FuME05RHpuOGxTbVpHL3g5dkJsR0ZCYnpqcWhGT2pRekg3Yk1GNGh1N0wwQlBUMnRkdlpweDBrZDgvZmRxVDA2ZWRuamhZVnVXeUxGanA2eDEycktsck5XN1FheHpHWGVUMVJxSzJZNDlGeC9MR3o2dDBYV21v''@;'; + put 'put ''dnRwampjY0dqNDIrUG1NMDRTTDlObGhTRXZSWTVySGNZNFhIU3NOZ1UzWW81U1Rjb0tLcEljY3F0bUxKZk11ZHhVajM3cWRsa1RYOTJlazRZSjBmMENTNjNkT3l3UHQ5akRiN210WjVWdm8wVEhJeUdvdTR5Ym5XMk5RZVJXd25MMko3NmgrM1piY2hBQUFBZU5wajhON0JjQ0lvWWlNalkxL2tC''@;'; + put 'put ''c2FkSEF3Y0RNa0ZHeG5ZblRaSk1qSm9nUmliZVRnWU9TQXNNVFl3aThOcEY3TURBeU1ESjVETjZiU0xBY3BtWm5EWnFNTFlFUml4d2FFallpTnppc3RHTlJCdkYwY0RBeU9MUTBkeVNBUklTU1FRYk9iallPVFIyc0g0djNVRFMrOUdKZ2FYemF3cGJBd3VMZ0QrSENWZ0FBQUFBQUZZbVBaM0FB''@;'; + put 'put ''QT0pIGZvcm1hdCgid29mZiIpO2ZvbnQtd2VpZ2h0OjYwMDtmb250LXN0eWxlOm5vcm1hbH06cm9vdHstLWNsci1saW5rLWFjdGl2ZS1jb2xvcjp2YXIoLS1jbHItY29sb3Itc2Vjb25kYXJ5LWFjdGlvbi01MDApOy0tY2xyLWxpbmstY29sb3I6dmFyKC0tY2xyLWNvbG9yLWFjdGlvbi02MDAp''@;'; + put 'put ''Oy0tY2xyLWxpbmstaG92ZXItY29sb3I6dmFyKC0tY2xyLWNvbG9yLWFjdGlvbi02MDApOy0tY2xyLWxpbmstdmlzaXRlZC1jb2xvcjpoc2woMjM4LCA0MSUsIDUzJSk7LS1jbHItY3VzdG9tLWxpbmtzLWhvdmVyLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTIwMCl9aHRtbHtib3gt''@;'; + put 'put ''c2l6aW5nOmJvcmRlci1ib3h9Kiw6YmVmb3JlLDphZnRlcntib3gtc2l6aW5nOmluaGVyaXR9aHRtbHstbXMtb3ZlcmZsb3ctc3R5bGU6c2Nyb2xsYmFyOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudH1pbWd7dmVydGljYWwtYWxpZ246bWlkZGxlfVtyb2xlPWJ1dHRv''@;'; + put 'put ''bl17Y3Vyc29yOnBvaW50ZXJ9YSxhcmVhLGJ1dHRvbixbcm9sZT1idXR0b25dLGlucHV0LGxhYmVsLHNlbGVjdCxzdW1tYXJ5LHRleHRhcmVhe3RvdWNoLWFjdGlvbjptYW5pcHVsYXRpb259YnV0dG9uOmZvY3Vze291dGxpbmU6MnB4IHNvbGlkIC13ZWJraXQtZm9jdXMtcmluZy1jb2xvcjtv''@;'; + put 'put ''dXRsaW5lLW9mZnNldDoxcHh9YnV0dG9uOi1tb3otZm9jdXNyaW5nLFt0eXBlPWJ1dHRvbl06LW1vei1mb2N1c3JpbmcsW3R5cGU9cmVzZXRdOi1tb3otZm9jdXNyaW5nLFt0eXBlPXN1Ym1pdF06LW1vei1mb2N1c3Jpbmd7b3V0bGluZToycHggc29saWQgSGlnaGxpZ2h0O291dGxpbmUtb2Zm''@;'; + put 'put ''c2V0OjFweH1pbnB1dCxidXR0b24sc2VsZWN0LHRleHRhcmVhe2JvcmRlci1yYWRpdXM6MH1pbnB1dFt0eXBlPXJhZGlvXTpkaXNhYmxlZCxpbnB1dFt0eXBlPWNoZWNrYm94XTpkaXNhYmxlZHtjdXJzb3I6bm90LWFsbG93ZWR9aW5wdXRbdHlwZT1kYXRlXSxpbnB1dFt0eXBlPXRpbWVdLGlu''@;'; + put 'put ''cHV0W3R5cGU9ZGF0ZXRpbWUtbG9jYWxdLGlucHV0W3R5cGU9bW9udGhdey13ZWJraXQtYXBwZWFyYW5jZTpsaXN0Ym94fXRleHRhcmVhe3Jlc2l6ZTp2ZXJ0aWNhbH1maWVsZHNldHttaW4td2lkdGg6MDtwYWRkaW5nOjA7bWFyZ2luOjA7Ym9yZGVyOjB9bGVnZW5ke2Rpc3BsYXk6YmxvY2s7''@;'; + put 'put ''d2lkdGg6MTAwJTtwYWRkaW5nOjA7bGluZS1oZWlnaHQ6aW5oZXJpdH1pbnB1dFt0eXBlPXNlYXJjaF17LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmV9W2hpZGRlbl17ZGlzcGxheTpub25lIWltcG9ydGFudH1kbHttYXJnaW4tYm90dG9tOjA7bWFyZ2luLXRvcDoxcmVtfXRhYmxle2JvcmRlci1z''@;'; + put 'put ''cGFjaW5nOjB9YTpsaW5re2NvbG9yOiMwMDcyYTM7Y29sb3I6dmFyKC0tY2xyLWxpbmstY29sb3IsICMwMDcyYTMpO3RleHQtZGVjb3JhdGlvbjpub25lfWE6dmlzaXRlZHtjb2xvcjojNTY1OWI4O2NvbG9yOnZhcigtLWNsci1saW5rLXZpc2l0ZWQtY29sb3IsICM1NjU5YjgpO3RleHQtZGVj''@;'; + put 'put ''b3JhdGlvbjpub25lfWE6dmlzaXRlZDpob3Zlcntjb2xvcjojNTY1OWI4O2NvbG9yOnZhcigtLWNsci1saW5rLXZpc2l0ZWQtY29sb3ItaG92ZXIsICM1NjU5YjgpfWE6aG92ZXJ7Y29sb3I6IzAwNzJhMztjb2xvcjp2YXIoLS1jbHItbGluay1ob3Zlci1jb2xvciwgIzAwNzJhMyk7dGV4dC1k''@;'; + put 'put ''ZWNvcmF0aW9uOnVuZGVybGluZX1hOmFjdGl2ZXtjb2xvcjojOWU1N2JjO2NvbG9yOnZhcigtLWNsci1saW5rLWFjdGl2ZS1jb2xvciwgIzllNTdiYyk7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZX0uY2xyLXNyLW9ubHl7cG9zaXRpb246YWJzb2x1dGU7Y2xpcDpyZWN0KDFweCwxcHgsMXB4''@;'; + put 'put ''LDFweCk7Y2xpcC1wYXRoOmluc2V0KDUwJSk7cGFkZGluZzowO2JvcmRlcjowO2hlaWdodDoxcHg7d2lkdGg6MXB4O292ZXJmbG93OmhpZGRlbjt3aGl0ZS1zcGFjZTpub3dyYXA7dG9wOjA7bGVmdDowfS5hbGVydC1pY29uLC5jbHItaWNvbntkaXNwbGF5OmlubGluZS1ibG9jaztoZWlnaHQ6''@;'; + put 'put ''LjhyZW07d2lkdGg6LjhyZW07cGFkZGluZzowO2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDtiYWNrZ3JvdW5kLXNpemU6Y29udGFpbjt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9LmFsZXJ0LWljb24uY2xyLWljb24td2FybmluZywuYWxlcnQtaWNvbi5pY29uLXdhcm5pbmcsLmNsci1pY29u''@;'; + put 'put ''LmNsci1pY29uLXdhcm5pbmcsLmNsci1pY29uLmljb24td2FybmluZ3tiYWNrZ3JvdW5kLWltYWdlOnVybChkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGY4LCUzQ3N2ZyUyMHZlcnNpb24lM0QlMjIxLjElMjIlMjB2aWV3Qm94JTNEJTIyNSUyMDUlMjAyNiUyMDI2JTIyJTIwcHJlc2Vy''@;'; + put 'put ''dmVBc3BlY3RSYXRpbyUzRCUyMnhNaWRZTWlkJTIwbWVldCUyMiUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTIweG1sbnMlM0F4bGluayUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMTk5OSUyRnhsaW5rJTIyJTNFJTNDZGVmcyUz''@;'; + put 'put ''RSUzQ3N0eWxlJTIwdHlwZSUzRCUyMnRleHQlMkZjc3MlMjIlM0UlMEElMDkuY2xyLWktb3V0bGluZSU3QmZpbGwtcnVsZSUzQWV2ZW5vZGQlM0JjbGlwLXJ1bGUlM0FldmVub2RkJTNCZmlsbCUzQSUyMzc0NzQ3NCUzQiU3RCUzQyUyRnN0eWxlJTNFJTNDJTJGZGVmcyUzRSUwQSUyMCUyMCUy''@;'; + put 'put ''MCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3RpdGxlJTNFZXhjbGFtYXRpb24tdHJpYW5nbGUtbGluZSUzQyUyRnRpdGxlJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcGF0aCUyMGNsYXNzJTNEJTIyY2xy''@;'; + put 'put ''LWktb3V0bGluZSUyMGNsci1pLW91dGxpbmUtcGF0aC0xJTIyJTIwZCUzRCUyMk0xOCUyQzIxLjMyYTEuMyUyQzEuMyUyQzAlMkMwJTJDMCUyQzEuMy0xLjNWMTRhMS4zJTJDMS4zJTJDMCUyQzElMkMwLTIuNiUyQzB2NkExLjMlMkMxLjMlMkMwJTJDMCUyQzAlMkMxOCUyQzIxLjMyWiUyMiUz''@;'; + put 'put ''RSUzQyUyRnBhdGglM0UlM0NjaXJjbGUlMjBjbGFzcyUzRCUyMmNsci1pLW91dGxpbmUlMjBjbHItaS1vdXRsaW5lLXBhdGgtMiUyMiUyMGN4JTNEJTIyMTcuOTUlMjIlMjBjeSUzRCUyMjI0LjI3JTIyJTIwciUzRCUyMjEuNSUyMiUzRSUzQyUyRmNpcmNsZSUzRSUzQ3BhdGglMjBjbGFzcyUz''@;'; + put 'put ''RCUyMmNsci1pLW91dGxpbmUlMjBjbHItaS1vdXRsaW5lLXBhdGgtMyUyMiUyMGQlM0QlMjJNMzAuMzMlMkMyNS41NCUyQzIwLjU5JTJDNy42YTMlMkMzJTJDMCUyQzAlMkMwLTUuMjclMkMwTDUuNTclMkMyNS41NEEzJTJDMyUyQzAlMkMwJTJDMCUyQzguMjElMkMzMEgyNy42OWEzJTJDMyUy''@;'; + put 'put ''QzAlMkMwJTJDMCUyQzIuNjQtNC40M1ptLTEuNzglMkMxLjk0YTElMkMxJTJDMCUyQzAlMkMxLS44Ni40OUg4LjIxYTElMkMxJTJDMCUyQzAlMkMxLS44OC0xLjQ4TDE3LjA3JTJDOC41NWExJTJDMSUyQzAlMkMwJTJDMSUyQzEuNzYlMkMwbDkuNzQlMkMxNy45NEExJTJDMSUyQzAlMkMwJTJD''@;'; + put 'put ''MSUyQzI4LjU1JTJDMjcuNDhaJTIyJTNFJTNDJTJGcGF0aCUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQyUyRnN2ZyUzRSl9LmFsZXJ0LWljb24uY2xyLWljb24td2FybmluZy13aGl0ZSwuY2xyLWljb24uY2xyLWljb24td2FybmluZy13aGl0ZXtiYWNrZ3Jv''@;'; + put 'put ''dW5kLWltYWdlOnVybChkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGY4LCUzQ3N2ZyUyMHZlcnNpb24lM0QlMjIxLjElMjIlMjB2aWV3Qm94JTNEJTIyNSUyMDUlMjAyNiUyMDI2JTIyJTIwcHJlc2VydmVBc3BlY3RSYXRpbyUzRCUyMnhNaWRZTWlkJTIwbWVldCUyMiUyMHhtbG5zJTNE''@;'; + put 'put ''JTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTIweG1sbnMlM0F4bGluayUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMTk5OSUyRnhsaW5rJTIyJTNFJTNDZGVmcyUzRSUzQ3N0eWxlJTIwdHlwZSUzRCUyMnRleHQlMkZjc3MlMjIlM0UlMEElMDkuY2xy''@;'; + put 'put ''LWktb3V0bGluZSU3QmZpbGwtcnVsZSUzQWV2ZW5vZGQlM0JjbGlwLXJ1bGUlM0FldmVub2RkJTNCZmlsbCUzQSUyM2ZmZmZmZiUzQiU3RCUzQyUyRnN0eWxlJTNFJTNDJTJGZGVmcyUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3RpdGxl''@;'; + put 'put ''JTNFZXhjbGFtYXRpb24tdHJpYW5nbGUtbGluZSUzQyUyRnRpdGxlJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcGF0aCUyMGNsYXNzJTNEJTIyY2xyLWktb3V0bGluZSUyMGNsci1pLW91dGxpbmUtcGF0aC0xJTIyJTIwZCUzRCUyMk0x''@;'; + put 'put ''OCUyQzIxLjMyYTEuMyUyQzEuMyUyQzAlMkMwJTJDMCUyQzEuMy0xLjNWMTRhMS4zJTJDMS4zJTJDMCUyQzElMkMwLTIuNiUyQzB2NkExLjMlMkMxLjMlMkMwJTJDMCUyQzAlMkMxOCUyQzIxLjMyWiUyMiUzRSUzQyUyRnBhdGglM0UlM0NjaXJjbGUlMjBjbGFzcyUzRCUyMmNsci1pLW91dGxp''@;'; + put 'put ''bmUlMjBjbHItaS1vdXRsaW5lLXBhdGgtMiUyMiUyMGN4JTNEJTIyMTcuOTUlMjIlMjBjeSUzRCUyMjI0LjI3JTIyJTIwciUzRCUyMjEuNSUyMiUzRSUzQyUyRmNpcmNsZSUzRSUzQ3BhdGglMjBjbGFzcyUzRCUyMmNsci1pLW91dGxpbmUlMjBjbHItaS1vdXRsaW5lLXBhdGgtMyUyMiUyMGQl''@;'; + put 'put ''M0QlMjJNMzAuMzMlMkMyNS41NCUyQzIwLjU5JTJDNy42YTMlMkMzJTJDMCUyQzAlMkMwLTUuMjclMkMwTDUuNTclMkMyNS41NEEzJTJDMyUyQzAlMkMwJTJDMCUyQzguMjElMkMzMEgyNy42OWEzJTJDMyUyQzAlMkMwJTJDMCUyQzIuNjQtNC40M1ptLTEuNzglMkMxLjk0YTElMkMxJTJDMCUy''@;'; + put 'put ''QzAlMkMxLS44Ni40OUg4LjIxYTElMkMxJTJDMCUyQzAlMkMxLS44OC0xLjQ4TDE3LjA3JTJDOC41NWExJTJDMSUyQzAlMkMwJTJDMSUyQzEuNzYlMkMwbDkuNzQlMkMxNy45NEExJTJDMSUyQzAlMkMwJTJDMSUyQzI4LjU1JTJDMjcuNDhaJTIyJTNFJTNDJTJGcGF0aCUzRSUwQSUyMCUyMCUy''@;'; + put 'put ''MCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQyUyRnN2ZyUzRSl9LmFsZXJ0LWljb24uY2xyLXZtdy1sb2dvLC5jbHItaWNvbi5jbHItdm13LWxvZ297YmFja2dyb3VuZC1pbWFnZTp1cmwoImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0ZjgsJTNDc3ZnJTIwdmlld0JveCUzRCUy''@;'; + put 'put ''MjAlMjAwJTIwMzYlMjAzNiUyMiUyMHZlcnNpb24lM0QlMjIxLjElMjIlMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiUyMHhtbG5zJTNBeGxpbmslM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjE5OTklMkZ4bGluayUyMiUzRSUwQSUy''@;'; + put 'put ''MCUyMCUyMCUyMCUzQ3RpdGxlJTNFdm0lMjBidWclM0MlMkZ0aXRsZSUzRSUwQSUyMCUyMCUyMCUyMCUzQ2RlZnMlM0UlM0MlMkZkZWZzJTNFJTBBJTIwJTIwJTIwJTIwJTNDZyUyMGlkJTNEJTIySGVhZGVycyUyMiUyMHN0cm9rZSUzRCUyMm5vbmUlMjIlMjBzdHJva2Utd2lkdGglM0QlMjIx''@;'; + put 'put ''JTIyJTIwZmlsbCUzRCUyMm5vbmUlMjIlMjBmaWxsLXJ1bGUlM0QlMjJldmVub2RkJTIyJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDZyUyMGlkJTNEJTIyQ0wtSGVhZGVycy1TcGVjcyUyMiUyMHRyYW5zZm9ybSUzRCUyMnRyYW5zbGF0ZSgtMjYyLjAwMDAwMCUyQyUyMC0xNzUu''@;'; + put 'put ''MDAwMDAwKSUyMiUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ2clMjBpZCUzRCUyMjAxJTIyJTIwdHJhbnNmb3JtJTNEJTIydHJhbnNsYXRlKDIzOC4wMDAwMDAlMkMlMjAxNjMuMDAwMDAwKSUyMiUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUy''@;'; + put 'put ''MCUyMCUyMCUyMCUyMCUyMCUyMCUzQ2clMjBpZCUzRCUyMnZtLWJ1ZyUyMiUyMHRyYW5zZm9ybSUzRCUyMnRyYW5zbGF0ZSgyNC43MDMxMjUlMkMlMjAxMi4wMDAwMDApJTIyJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIw''@;'; + put 'put ''JTNDcmVjdCUyMGlkJTNEJTIyUmVjdGFuZ2xlLTQyJTIyJTIwZmlsbC1vcGFjaXR5JTNEJTIyMC4yNSUyMiUyMGZpbGwlM0QlMjIlMjNEREREREQlMjIlMjBvcGFjaXR5JTNEJTIyMC42JTIyJTIweCUzRCUyMjAlMjIlMjB5JTNEJTIyMCUyMiUyMHdpZHRoJTNEJTIyMzYlMjIlMjBoZWlnaHQl''@;'; + put 'put ''M0QlMjIzNiUyMiUyMHJ4JTNEJTIyMyUyMiUzRSUzQyUyRnJlY3QlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NwYXRoJTIwZCUzRCUyMk03LjYzOTQ4Mzc2JTJDMTMuODc2MjQwMiUyMEM3LjMyMjY1MzI0JTJDMTMu''@;'; + put 'put ''MjA5NzA4MiUyMDYuNTM5NzgxNTIlMkMxMi45MDg1MTM5JTIwNS44MDkyMzA0MiUyQzEzLjIxOTkzNCUyMEM1LjA3NzcxMDQzJTJDMTMuNTMyMjgzNyUyMDQuODA5MzI0OTUlMkMxNC4zMTAzNjkxJTIwNS4xMzk3MjAwNyUyQzE0Ljk3NjkwMTElMjBMOC4yMDcyNTk1NCUyQzIxLjM3NDQ5MjMl''@;'; + put 'put ''MjBDOC42ODk3NzIwNyUyQzIyLjM3ODQ3MzUlMjA5LjE5ODQ0NDkxJTJDMjIuOTAzNzA0NCUyMDEwLjE1MjgxMjElMkMyMi45MDM3MDQ0JTIwQzExLjE3MjA5NTUlMkMyMi45MDM3MDQ0JTIwMTEuNjE2ODIwOSUyQzIyLjMzMTA2MzMlMjAxMi4wOTgzNjQ2JTJDMjEuMzc0NDkyMyUyMEMxMi4w''@;'; + put 'put ''OTgzNjQ2JTJDMjEuMzc0NDkyMyUyMDE0Ljc3NDQ2ODIlMkMxNS43ODQ3MzQxJTIwMTQuODAxNTk3NCUyQzE1LjcyNjE2ODUlMjBDMTQuODI4NzI2NiUyQzE1LjY2NjY3MzMlMjAxNC45MTQ5NTg4JTJDMTUuNDg2MzI4NiUyMDE1LjE4NzIxOTklMkMxNS40ODcyNTgyJTIwQzE1LjQxNzgxODIl''@;'; + put 'put ''MkMxNS40OTAwNDclMjAxNS42MTA2Mjk0JTJDMTUuNjY1NzQzNyUyMDE1LjYxMDYyOTQlMkMxNS45MDE4NjUyJTIwTDE1LjYxMDYyOTQlMkMyMS4zNjk4NDQzJTIwQzE1LjYxMDYyOTQlMkMyMi4yMTIwNzMlMjAxNi4wOTc5ODY1JTJDMjIuOTAzNzA0NCUyMDE3LjAzNDkxMzQlMkMyMi45MDM3''@;'; + put 'put ''MDQ0JTIwQzE3Ljk3MTg0MDMlMkMyMi45MDM3MDQ0JTIwMTguNDc4NTc1NCUyQzIyLjIxMjA3MyUyMDE4LjQ3ODU3NTQlMkMyMS4zNjk4NDQzJTIwTDE4LjQ3ODU3NTQlMkMxNi44OTY1NTAzJTIwQzE4LjQ3ODU3NTQlMkMxNi4wMzM4NzAyJTIwMTkuMTIxOTI1NCUyQzE1LjQ3NDI0MzYlMjAy''@;'; + put 'put ''MC4wMDA3MTgzJTJDMTUuNDc0MjQzNiUyMEMyMC44Nzg1NDIzJTJDMTUuNDc0MjQzNiUyMDIxLjQ2Mzc1ODMlMkMxNi4wNTI0NjI0JTIwMjEuNDYzNzU4MyUyQzE2Ljg5NjU1MDMlMjBMMjEuNDYzNzU4MyUyQzIxLjM2OTg0NDMlMjBDMjEuNDYzNzU4MyUyQzIyLjIxMjA3MyUyMDIxLjk1MjA4''@;'; + put 'put ''NDIlMkMyMi45MDM3MDQ0JTIwMjIuODg4MDQyMyUyQzIyLjkwMzcwNDQlMjBDMjMuODI0MDAwMyUyQzIyLjkwMzcwNDQlMjAyNC4zMzI2NzMxJTJDMjIuMjEyMDczJTIwMjQuMzMyNjczMSUyQzIxLjM2OTg0NDMlMjBMMjQuMzMyNjczMSUyQzE2Ljg5NjU1MDMlMjBDMjQuMzMyNjczMSUyQzE2''@;'; + put 'put ''LjAzMzg3MDIlMjAyNC45NzUwNTQzJTJDMTUuNDc0MjQzNiUyMDI1Ljg1Mzg0NzIlMkMxNS40NzQyNDM2JTIwQzI2LjczMDcwMjMlMkMxNS40NzQyNDM2JTIwMjcuMzE2ODg3MSUyQzE2LjA1MjQ2MjQlMjAyNy4zMTY4ODcxJTJDMTYuODk2NTUwMyUyMEwyNy4zMTY4ODcxJTJDMjEuMzY5ODQ0''@;'; + put 'put ''MyUyMEMyNy4zMTY4ODcxJTJDMjIuMjEyMDczJTIwMjcuODA1MjEzMSUyQzIyLjkwMzcwNDQlMjAyOC43NDIxNCUyQzIyLjkwMzcwNDQlMjBDMjkuNjc3MTI5MSUyQzIyLjkwMzcwNDQlMjAzMC4xODQ4MzMxJTJDMjIuMjEyMDczJTIwMzAuMTg0ODMzMSUyQzIxLjM2OTg0NDMlMjBMMzAuMTg0''@;'; + put 'put ''ODMzMSUyQzE2LjI3ODM1ODIlMjBDMzAuMTg0ODMzMSUyQzE0LjQwNzA0ODglMjAyOC42MTgxMjA3JTJDMTMuMDk2Mjk1NiUyMDI2LjczMDcwMjMlMkMxMy4wOTYyOTU2JTIwQzI0Ljg0NTIyMTYlMkMxMy4wOTYyOTU2JTIwMjMuNjY1MTAwNiUyQzE0LjM0NzU1MzYlMjAyMy42NjUxMDA2JTJD''@;'; + put 'put ''MTQuMzQ3NTUzNiUyMEMyMy4wMzcyNTMlMkMxMy41NjY2NzkzJTIwMjIuMTcyMDI0NyUyQzEzLjA5NzIyNTIlMjAyMC43MDg5ODQ3JTJDMTMuMDk3MjI1MiUyMEMxOS4xNjQ1NTclMkMxMy4wOTcyMjUyJTIwMTcuODEyOTQwNiUyQzE0LjM0NzU1MzYlMjAxNy44MTI5NDA2JTJDMTQuMzQ3NTUz''@;'; + put 'put ''NiUyMEMxNy4xODQxMjQxJTJDMTMuNTY2Njc5MyUyMDE2LjExNTQyNjclMkMxMy4wOTcyMjUyJTIwMTUuMjMwODIwNCUyQzEzLjA5NzIyNTIlMjBDMTMuODYxNzYzOCUyQzEzLjA5NzIyNTIlMjAxMi43NzQ2NTcyJTJDMTMuNjc1NDQ0JTIwMTIuMTExOTI5MiUyQzE1LjEzMDI4NzElMjBMMTAu''@;'; + put 'put ''MTUyODEyMSUyQzE5LjU2MDgxODklMjBMNy42Mzk0ODM3NiUyQzEzLjg3NjI0MDIlMjIlMjBpZCUzRCUyMkZpbGwtNCUyMiUyMGZpbGwlM0QlMjIlMjNGRkZGRkYlMjIlM0UlM0MlMkZwYXRoJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTND''@;'; + put 'put ''JTJGZyUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQyUyRmclM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0MlMkZnJTNFJTBBJTIwJTIwJTIwJTIwJTNDJTJGZyUzRSUwQSUzQyUyRnN2ZyUzRSIpfS5pcy1vZmYtc2NyZWVue3Bvc2l0aW9uOmZpeGVk''@;'; + put 'put ''IWltcG9ydGFudDtib3JkZXI6MCFpbXBvcnRhbnQ7aGVpZ2h0OjFweCFpbXBvcnRhbnQ7d2lkdGg6MXB4IWltcG9ydGFudDtsZWZ0OjAhaW1wb3J0YW50O3RvcDotY29udmVydEJhc2VsaW5lVG9CYXNlMjAoMSkhaW1wb3J0YW50O292ZXJmbG93OmhpZGRlbiFpbXBvcnRhbnQ7dmlzaWJpbGl0''@;'; + put 'put ''eTpoaWRkZW4haW1wb3J0YW50O3BhZGRpbmc6MCFpbXBvcnRhbnQ7bWFyZ2luOjAgMCAtY29udmVydEJhc2VsaW5lVG9CYXNlMjAoMSkgMCFpbXBvcnRhbnR9LmNsci1wb3BvdmVyLWNvbnRlbnR7cG9zaXRpb246Zml4ZWQ7ei1pbmRleDoxMDUwfTpyb290ey0tY2xyLWJ0bi12ZXJ0aWNhbC1t''@;'; + put 'put ''YXJnaW46LjNyZW07LS1jbHItYnRuLWhvcml6b250YWwtbWFyZ2luOi42cmVtOy0tY2xyLWJ0bi1ob3Jpem9udGFsLXBhZGRpbmc6LjZyZW07LS1jbHItYnRuLXZlcnRpY2FsLXBhZGRpbmc6MDstLWNsci1idG4tcGFkZGluZzp2YXIoLS1jbHItYnRuLXZlcnRpY2FsLXBhZGRpbmcpIHZhcigt''@;'; + put 'put ''LWNsci1idG4taG9yaXpvbnRhbC1wYWRkaW5nKTstLWNsci1idG4taGVpZ2h0OjEuOHJlbTstLWNsci1idG4taGVpZ2h0LXNtOjEuMnJlbTstLWNsci1idG4tZm9udC13ZWlnaHQ6NTAwOy0tY2xyLWJ0bi1ib3JkZXItcmFkaXVzOi4xNXJlbTstLWNsci1idG4tYm9yZGVyLXdpZHRoOi4wNXJl''@;'; + put 'put ''bTstLWNsci1idG4tb3V0bGluZS1iZy1jb2xvcjp0cmFuc3BhcmVudDstLWNsci1idG4tYXBwZWFyYW5jZS1zdGFuZGFyZC1saW5lLWhlaWdodDoxLjE1cmVtOy0tY2xyLWJ0bi1hcHBlYXJhbmNlLXN0YW5kYXJkLWZvbnQtc2l6ZTouNTVyZW07LS1jbHItYnRuLWFwcGVhcmFuY2Utc3RhbmRh''@;'; + put 'put ''cmQtZm9udC13ZWlnaHQ6NTAwOy0tY2xyLWJ0bi1hcHBlYXJhbmNlLXN0YW5kYXJkLWhlaWdodDoxLjJyZW07LS1jbHItYnRuLWFwcGVhcmFuY2Utc3RhbmRhcmQtcGFkZGluZzowIC42cmVtOy0tY2xyLWJ0bi1hcHBlYXJhbmNlLXN0YW5kYXJkLWljb24tc2l6ZTouNnJlbTstLWNsci1idG4t''@;'; + put 'put ''YXBwZWFyYW5jZS1mb3JtLWxpbmUtaGVpZ2h0OjEuOHJlbTstLWNsci1idG4tYXBwZWFyYW5jZS1mb3JtLWxldHRlci1zcGFjaW5nOi4xMmVtOy0tY2xyLWJ0bi1hcHBlYXJhbmNlLWZvcm0tZm9udC1zaXplOi42cmVtOy0tY2xyLWJ0bi1hcHBlYXJhbmNlLWZvcm0tZm9udC13ZWlnaHQ6NTAw''@;'; + put 'put ''Oy0tY2xyLWJ0bi1hcHBlYXJhbmNlLWZvcm0taGVpZ2h0OjEuOHJlbTstLWNsci1idG4tYXBwZWFyYW5jZS1mb3JtLXBhZGRpbmc6MCAuNnJlbTstLWNsci1idG4tZGVmYXVsdC1jb2xvcjp2YXIoLS1jbHItY29sb3ItYWN0aW9uLTYwMCk7LS1jbHItYnRuLWRlZmF1bHQtYm9yZGVyLWNvbG9y''@;'; + put 'put ''OnZhcigtLWNsci1idG4tZGVmYXVsdC1jb2xvcik7LS1jbHItYnRuLWRlZmF1bHQtYmctY29sb3I6dHJhbnNwYXJlbnQ7LS1jbHItYnRuLWRlZmF1bHQtaG92ZXItYmctY29sb3I6dmFyKC0tY2xyLWNvbG9yLWFjdGlvbi01MCk7LS1jbHItYnRuLWRlZmF1bHQtaG92ZXItY29sb3I6dmFyKC0t''@;'; + put 'put ''Y2xyLWNvbG9yLWFjdGlvbi04MDApOy0tY2xyLWJ0bi1kZWZhdWx0LWJveC1zaGFkb3ctY29sb3I6dmFyKC0tY2xyLWNvbG9yLWFjdGlvbi01MDApOy0tY2xyLWJ0bi1kZWZhdWx0LWRpc2FibGVkLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTcwMCk7LS1jbHItYnRuLWRlZmF1bHQt''@;'; + put 'put ''ZGlzYWJsZWQtYmctY29sb3I6dmFyKC0tY2xyLWJ0bi1kZWZhdWx0LWJnLWNvbG9yKTstLWNsci1idG4tZGVmYXVsdC1kaXNhYmxlZC1ib3JkZXItY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNjAwKTstLWNsci1idG4tZGVmYXVsdC1jaGVja2VkLWJnLWNvbG9yOnZhcigtLWNsci1j''@;'; + put 'put ''b2xvci1hY3Rpb24tNjAwKTstLWNsci1idG4tZGVmYXVsdC1jaGVja2VkLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTApOy0tY2xyLWJ0bi1kZWZhdWx0LW91dGxpbmUtY29sb3I6dmFyKC0tY2xyLWNvbG9yLWFjdGlvbi02MDApOy0tY2xyLWJ0bi1kZWZhdWx0LW91dGxpbmUtYm9y''@;'; + put 'put ''ZGVyLWNvbG9yOnZhcigtLWNsci1idG4tZGVmYXVsdC1vdXRsaW5lLWNvbG9yKTstLWNsci1idG4tZGVmYXVsdC1vdXRsaW5lLWJnLWNvbG9yOnZhcigtLWNsci1idG4tb3V0bGluZS1iZy1jb2xvcik7LS1jbHItYnRuLWRlZmF1bHQtb3V0bGluZS1ob3Zlci1iZy1jb2xvcjp2YXIoLS1jbHIt''@;'; + put 'put ''Y29sb3ItYWN0aW9uLTUwKTstLWNsci1idG4tZGVmYXVsdC1vdXRsaW5lLWhvdmVyLWNvbG9yOnZhcigtLWNsci1jb2xvci1hY3Rpb24tODAwKTstLWNsci1idG4tZGVmYXVsdC1vdXRsaW5lLWJveC1zaGFkb3ctY29sb3I6dmFyKC0tY2xyLWNvbG9yLWFjdGlvbi01MDApOy0tY2xyLWJ0bi1k''@;'; + put 'put ''ZWZhdWx0LW91dGxpbmUtZGlzYWJsZWQtY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNzAwKTstLWNsci1idG4tZGVmYXVsdC1vdXRsaW5lLWRpc2FibGVkLWJnLWNvbG9yOnZhcigtLWNsci1idG4tZGVmYXVsdC1vdXRsaW5lLWJnLWNvbG9yKTstLWNsci1idG4tZGVmYXVsdC1vdXRs''@;'; + put 'put ''aW5lLWRpc2FibGVkLWJvcmRlci1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC02MDApOy0tY2xyLWJ0bi1kZWZhdWx0LW91dGxpbmUtY2hlY2tlZC1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC0wKTstLWNsci1idG4tZGVmYXVsdC1vdXRsaW5lLWNoZWNrZWQtYmctY29sb3I6''@;'; + put 'put ''dmFyKC0tY2xyLWJ0bi1kZWZhdWx0LW91dGxpbmUtY29sb3IpOy0tY2xyLWJ0bi1wcmltYXJ5LWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTApOy0tY2xyLWJ0bi1wcmltYXJ5LWJnLWNvbG9yOnZhcigtLWNsci1jb2xvci1hY3Rpb24tNjAwKTstLWNsci1idG4tcHJpbWFyeS1ib3Jk''@;'; + put 'put ''ZXItY29sb3I6dmFyKC0tY2xyLWNvbG9yLWFjdGlvbi02MDApOy0tY2xyLWJ0bi1wcmltYXJ5LWhvdmVyLWJnLWNvbG9yOnZhcigtLWNsci1jb2xvci1hY3Rpb24tODAwKTstLWNsci1idG4tcHJpbWFyeS1ob3Zlci1jb2xvcjp2YXIoLS1jbHItY29sb3ItYWN0aW9uLTUwKTstLWNsci1idG4t''@;'; + put 'put ''cHJpbWFyeS1ib3gtc2hhZG93LWNvbG9yOnZhcigtLWNsci1jb2xvci1hY3Rpb24tNTAwKTstLWNsci1idG4tcHJpbWFyeS1kaXNhYmxlZC1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC03MDApOy0tY2xyLWJ0bi1wcmltYXJ5LWRpc2FibGVkLWJnLWNvbG9yOnZhcigtLWNsci1jb2xv''@;'; + put 'put ''ci1uZXV0cmFsLTQwMCk7LS1jbHItYnRuLXByaW1hcnktZGlzYWJsZWQtYm9yZGVyLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTQwMCk7LS1jbHItYnRuLXByaW1hcnktY2hlY2tlZC1iZy1jb2xvcjp2YXIoLS1jbHItY29sb3ItYWN0aW9uLTYwMCk7LS1jbHItYnRuLXByaW1hcnkt''@;'; + put 'put ''Y2hlY2tlZC1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC0wKTstLWNsci1idG4tc3VjY2Vzcy1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC0wKTstLWNsci1idG4tc3VjY2Vzcy1iZy1jb2xvcjp2YXIoLS1jbHItY29sb3Itc3VjY2Vzcy03MDApOy0tY2xyLWJ0bi1zdWNjZXNz''@;'; + put 'put ''LWJvcmRlci1jb2xvcjp2YXIoLS1jbHItYnRuLXN1Y2Nlc3MtYmctY29sb3IpOy0tY2xyLWJ0bi1zdWNjZXNzLWhvdmVyLWJnLWNvbG9yOnZhcigtLWNsci1jb2xvci1zdWNjZXNzLTgwMCk7LS1jbHItYnRuLXN1Y2Nlc3MtaG92ZXItY29sb3I6dmFyKC0tY2xyLWJ0bi1zdWNjZXNzLWNvbG9y''@;'; + put 'put ''KTstLWNsci1idG4tc3VjY2Vzcy1ib3gtc2hhZG93LWNvbG9yOnZhcigtLWNsci1jb2xvci1zdWNjZXNzLTkwMCk7LS1jbHItYnRuLXN1Y2Nlc3MtZGlzYWJsZWQtY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNzAwKTstLWNsci1idG4tc3VjY2Vzcy1kaXNhYmxlZC1iZy1jb2xvcjp2''@;'; + put 'put ''YXIoLS1jbHItY29sb3ItbmV1dHJhbC00MDApOy0tY2xyLWJ0bi1zdWNjZXNzLWRpc2FibGVkLWJvcmRlci1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC00MDApOy0tY2xyLWJ0bi1zdWNjZXNzLWNoZWNrZWQtYmctY29sb3I6dmFyKC0tY2xyLWJ0bi1zdWNjZXNzLWhvdmVyLWJnLWNv''@;'; + put 'put ''bG9yKTstLWNsci1idG4tc3VjY2Vzcy1jaGVja2VkLWNvbG9yOnZhcigtLWNsci1idG4tc3VjY2Vzcy1jb2xvcik7LS1jbHItYnRuLXN1Y2Nlc3Mtb3V0bGluZS1jb2xvcjp2YXIoLS1jbHItY29sb3Itc3VjY2Vzcy03MDApOy0tY2xyLWJ0bi1zdWNjZXNzLW91dGxpbmUtYmctY29sb3I6dmFy''@;'; + put 'put ''KC0tY2xyLWJ0bi1vdXRsaW5lLWJnLWNvbG9yKTstLWNsci1idG4tc3VjY2Vzcy1vdXRsaW5lLWJvcmRlci1jb2xvcjp2YXIoLS1jbHItY29sb3Itc3VjY2Vzcy03MDApOy0tY2xyLWJ0bi1zdWNjZXNzLW91dGxpbmUtaG92ZXItYmctY29sb3I6dmFyKC0tY2xyLWNvbG9yLXN1Y2Nlc3MtNTAp''@;'; + put 'put ''Oy0tY2xyLWJ0bi1zdWNjZXNzLW91dGxpbmUtaG92ZXItY29sb3I6dmFyKC0tY2xyLWNvbG9yLXN1Y2Nlc3MtOTAwKTstLWNsci1idG4tc3VjY2Vzcy1vdXRsaW5lLWJveC1zaGFkb3ctY29sb3I6dmFyKC0tY2xyLWNvbG9yLXN1Y2Nlc3MtNDAwKTstLWNsci1idG4tc3VjY2Vzcy1vdXRsaW5l''@;'; + put 'put ''LWRpc2FibGVkLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTcwMCk7LS1jbHItYnRuLXN1Y2Nlc3Mtb3V0bGluZS1kaXNhYmxlZC1iZy1jb2xvcjp2YXIoLS1jbHItYnRuLXN1Y2Nlc3Mtb3V0bGluZS1iZy1jb2xvcik7LS1jbHItYnRuLXN1Y2Nlc3Mtb3V0bGluZS1kaXNhYmxlZC1i''@;'; + put 'put ''b3JkZXItY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNjAwKTstLWNsci1idG4tc3VjY2Vzcy1vdXRsaW5lLWNoZWNrZWQtYmctY29sb3I6dmFyKC0tY2xyLWJ0bi1zdWNjZXNzLW91dGxpbmUtYm9yZGVyLWNvbG9yKTstLWNsci1idG4tc3VjY2Vzcy1vdXRsaW5lLWNoZWNrZWQtY29s''@;'; + put 'put ''b3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtMCk7LS1jbHItYnRuLWRhbmdlci1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC0wKTstLWNsci1idG4tZGFuZ2VyLWJnLWNvbG9yOnZhcigtLWNsci1jb2xvci1kYW5nZXItNzAwKTstLWNsci1idG4tZGFuZ2VyLWJvcmRlci1jb2xvcjp2''@;'; + put 'put ''YXIoLS1jbHItYnRuLWRhbmdlci1iZy1jb2xvcik7LS1jbHItYnRuLWRhbmdlci1ob3Zlci1iZy1jb2xvcjp2YXIoLS1jbHItY29sb3ItZGFuZ2VyLTgwMCk7LS1jbHItYnRuLWRhbmdlci1ob3Zlci1jb2xvcjp2YXIoLS1jbHItYnRuLWRhbmdlci1jb2xvcik7LS1jbHItYnRuLWRhbmdlci1i''@;'; + put 'put ''b3gtc2hhZG93LWNvbG9yOnZhcigtLWNsci1jb2xvci1kYW5nZXItOTAwKTstLWNsci1idG4tZGFuZ2VyLWRpc2FibGVkLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTcwMCk7LS1jbHItYnRuLWRhbmdlci1kaXNhYmxlZC1iZy1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC00''@;'; + put 'put ''MDApOy0tY2xyLWJ0bi1kYW5nZXItZGlzYWJsZWQtYm9yZGVyLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTQwMCk7LS1jbHItYnRuLWRhbmdlci1jaGVja2VkLWJnLWNvbG9yOnZhcigtLWNsci1jb2xvci1kYW5nZXItODAwKTstLWNsci1idG4tZGFuZ2VyLWNoZWNrZWQtY29sb3I6''@;'; + put 'put ''dmFyKC0tY2xyLWJ0bi1kYW5nZXItY29sb3IpOy0tY2xyLWJ0bi1kYW5nZXItb3V0bGluZS1jb2xvcjp2YXIoLS1jbHItY29sb3ItZGFuZ2VyLTcwMCk7LS1jbHItYnRuLWRhbmdlci1vdXRsaW5lLWJnLWNvbG9yOnZhcigtLWNsci1idG4tb3V0bGluZS1iZy1jb2xvcik7LS1jbHItYnRuLWRh''@;'; + put 'put ''bmdlci1vdXRsaW5lLWJvcmRlci1jb2xvcjp2YXIoLS1jbHItY29sb3ItZGFuZ2VyLTgwMCk7LS1jbHItYnRuLWRhbmdlci1vdXRsaW5lLWhvdmVyLWJnLWNvbG9yOnZhcigtLWNsci1jb2xvci1kYW5nZXItMTAwKTstLWNsci1idG4tZGFuZ2VyLW91dGxpbmUtaG92ZXItY29sb3I6dmFyKC0t''@;'; + put 'put ''Y2xyLWNvbG9yLWRhbmdlci05MDApOy0tY2xyLWJ0bi1kYW5nZXItb3V0bGluZS1ib3gtc2hhZG93LWNvbG9yOnZhcigtLWNsci1jb2xvci1kYW5nZXItMjAwKTstLWNsci1idG4tZGFuZ2VyLW91dGxpbmUtZGlzYWJsZWQtY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNzAwKTstLWNs''@;'; + put 'put ''ci1idG4tZGFuZ2VyLW91dGxpbmUtZGlzYWJsZWQtYmctY29sb3I6dmFyKC0tY2xyLWJ0bi1kYW5nZXItb3V0bGluZS1iZy1jb2xvcik7LS1jbHItYnRuLWRhbmdlci1vdXRsaW5lLWRpc2FibGVkLWJvcmRlci1jb2xvcjp2YXIoLS1jbHItYnRuLWRhbmdlci1vdXRsaW5lLWRpc2FibGVkLWNv''@;'; + put 'put ''bG9yKTstLWNsci1idG4tZGFuZ2VyLW91dGxpbmUtY2hlY2tlZC1iZy1jb2xvcjp2YXIoLS1jbHItY29sb3ItZGFuZ2VyLTgwMCk7LS1jbHItYnRuLWRhbmdlci1vdXRsaW5lLWNoZWNrZWQtY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtMCk7LS1jbHItYnRuLXdhcm5pbmctY29sb3I6''@;'; + put 'put ''dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtMCk7LS1jbHItYnRuLXdhcm5pbmctYmctY29sb3I6dmFyKC0tY2xyLWNvbG9yLWRhbmdlci03MDApOy0tY2xyLWJ0bi13YXJuaW5nLWJvcmRlci1jb2xvcjp2YXIoLS1jbHItYnRuLWRhbmdlci1iZy1jb2xvcik7LS1jbHItYnRuLXdhcm5pbmctaG92''@;'; + put 'put ''ZXItYmctY29sb3I6dmFyKC0tY2xyLWNvbG9yLWRhbmdlci04MDApOy0tY2xyLWJ0bi13YXJuaW5nLWhvdmVyLWNvbG9yOnZhcigtLWNsci1idG4tZGFuZ2VyLWNvbG9yKTstLWNsci1idG4td2FybmluZy1ib3gtc2hhZG93LWNvbG9yOnZhcigtLWNsci1jb2xvci1kYW5nZXItOTAwKTstLWNs''@;'; + put 'put ''ci1idG4td2FybmluZy1kaXNhYmxlZC1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC03MDApOy0tY2xyLWJ0bi13YXJuaW5nLWRpc2FibGVkLWJnLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTQwMCk7LS1jbHItYnRuLXdhcm5pbmctZGlzYWJsZWQtYm9yZGVyLWNvbG9yOnZh''@;'; + put 'put ''cigtLWNsci1jb2xvci1uZXV0cmFsLTQwMCk7LS1jbHItYnRuLXdhcm5pbmctY2hlY2tlZC1iZy1jb2xvcjp2YXIoLS1jbHItY29sb3ItZGFuZ2VyLTgwMCk7LS1jbHItYnRuLXdhcm5pbmctY2hlY2tlZC1jb2xvcjp2YXIoLS1jbHItYnRuLWRhbmdlci1jb2xvcik7LS1jbHItYnRuLXdhcm5p''@;'; + put 'put ''bmctb3V0bGluZS1jb2xvcjp2YXIoLS1jbHItY29sb3ItZGFuZ2VyLTcwMCk7LS1jbHItYnRuLXdhcm5pbmctb3V0bGluZS1iZy1jb2xvcjp2YXIoLS1jbHItYnRuLW91dGxpbmUtYmctY29sb3IpOy0tY2xyLWJ0bi13YXJuaW5nLW91dGxpbmUtYm9yZGVyLWNvbG9yOnZhcigtLWNsci1jb2xv''@;'; + put 'put ''ci1kYW5nZXItODAwKTstLWNsci1idG4td2FybmluZy1vdXRsaW5lLWhvdmVyLWJnLWNvbG9yOnZhcigtLWNsci1jb2xvci1kYW5nZXItMTAwKTstLWNsci1idG4td2FybmluZy1vdXRsaW5lLWhvdmVyLWNvbG9yOnZhcigtLWNsci1jb2xvci1kYW5nZXItOTAwKTstLWNsci1idG4td2Fybmlu''@;'; + put 'put ''Zy1vdXRsaW5lLWJveC1zaGFkb3ctY29sb3I6dmFyKC0tY2xyLWNvbG9yLWRhbmdlci0yMDApOy0tY2xyLWJ0bi13YXJuaW5nLW91dGxpbmUtZGlzYWJsZWQtY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNzAwKTstLWNsci1idG4td2FybmluZy1vdXRsaW5lLWRpc2FibGVkLWJnLWNv''@;'; + put 'put ''bG9yOnZhcigtLWNsci1idG4tZGFuZ2VyLW91dGxpbmUtYmctY29sb3IpOy0tY2xyLWJ0bi13YXJuaW5nLW91dGxpbmUtZGlzYWJsZWQtYm9yZGVyLWNvbG9yOnZhcigtLWNsci1idG4tZGFuZ2VyLW91dGxpbmUtZGlzYWJsZWQtY29sb3IpOy0tY2xyLWJ0bi13YXJuaW5nLW91dGxpbmUtY2hl''@;'; + put 'put ''Y2tlZC1iZy1jb2xvcjp2YXIoLS1jbHItY29sb3ItZGFuZ2VyLTgwMCk7LS1jbHItYnRuLXdhcm5pbmctb3V0bGluZS1jaGVja2VkLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTApOy0tY2xyLWJ0bi1saW5rLWNvbG9yOnZhcigtLWNsci1jb2xvci1hY3Rpb24tNjAwKTstLWNsci1i''@;'; + put 'put ''dG4tbGluay1iZy1jb2xvcjp0cmFuc3BhcmVudDstLWNsci1idG4tbGluay1ib3JkZXItY29sb3I6dHJhbnNwYXJlbnQ7LS1jbHItYnRuLWxpbmstaG92ZXItYmctY29sb3I6dHJhbnNwYXJlbnQ7LS1jbHItYnRuLWxpbmstaG92ZXItY29sb3I6dmFyKC0tY2xyLWNvbG9yLWFjdGlvbi04MDAp''@;'; + put 'put ''Oy0tY2xyLWJ0bi1saW5rLWRpc2FibGVkLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTcwMCk7LS1jbHItYnRuLWxpbmstZGlzYWJsZWQtYmctY29sb3I6dHJhbnNwYXJlbnQ7LS1jbHItYnRuLWxpbmstZGlzYWJsZWQtYm9yZGVyLWNvbG9yOnRyYW5zcGFyZW50Oy0tY2xyLWJ0bi1s''@;'; + put 'put ''aW5rLWNoZWNrZWQtYmctY29sb3I6dHJhbnNwYXJlbnQ7LS1jbHItYnRuLWxpbmstY2hlY2tlZC1jb2xvcjp2YXIoLS1jbHItY29sb3ItYWN0aW9uLTgwMCk7LS1jbHItYnRuLWludmVyc2UtY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtMCk7LS1jbHItYnRuLWludmVyc2UtYm9yZGVy''@;'; + put 'put ''LWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTApOy0tY2xyLWJ0bi1pbnZlcnNlLWJnLWNvbG9yOnRyYW5zcGFyZW50Oy0tY2xyLWJ0bi1pbnZlcnNlLWhvdmVyLWJnLWNvbG9yOnJnYmEoMjU1LCAyNTUsIDI1NSwgLjE1KTstLWNsci1idG4taW52ZXJzZS1ob3Zlci1jb2xvcjp2YXIo''@;'; + put 'put ''LS1jbHItY29sb3ItbmV1dHJhbC0wKTstLWNsci1idG4taW52ZXJzZS1ib3gtc2hhZG93LWNvbG9yOnJnYmEoMCwgMCwgMCwgLjI1KTstLWNsci1idG4taW52ZXJzZS1kaXNhYmxlZC1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC0wKTstLWNsci1idG4taW52ZXJzZS1kaXNhYmxlZC1i''@;'; + put 'put ''Zy1jb2xvcjp2YXIoLS1jbHItYnRuLWludmVyc2UtYmctY29sb3IpOy0tY2xyLWJ0bi1pbnZlcnNlLWRpc2FibGVkLWJvcmRlci1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC0wKTstLWNsci1idG4taW52ZXJzZS1jaGVja2VkLWJnLWNvbG9yOnJnYmEoMjU1LCAyNTUsIDI1NSwgLjE1''@;'; + put 'put ''KTstLWNsci1idG4taW52ZXJzZS1jaGVja2VkLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTApOy0tY2xyLWJ0bi1pY29uLWRpc2FibGVkLWNvbG9yOnZhcigtLWNsci1idG4tZGVmYXVsdC1kaXNhYmxlZC1jb2xvciwgIzY2NjY2Nik7LS1jbHItYnRuLWdyb3VwLWZvY3VzLW91dGxp''@;'; + put 'put ''bmU6IzUxY2JlZX0uYnRue2N1cnNvcjpwb2ludGVyO2Rpc3BsYXk6aW5saW5lLWJsb2NrOy13ZWJraXQtYXBwZWFyYW5jZTpub25lIWltcG9ydGFudDtib3JkZXItcmFkaXVzOi4xNXJlbTtib3JkZXItcmFkaXVzOnZhcigtLWNsci1idG4tYm9yZGVyLXJhZGl1cywgLjE1cmVtKTtib3JkZXIt''@;'; + put 'put ''d2lkdGg6LjA1cmVtO2JvcmRlci13aWR0aDp2YXIoLS1jbHItYnRuLWJvcmRlci13aWR0aCwgLjA1cmVtKTtib3JkZXItc3R5bGU6c29saWQ7bWluLXdpZHRoOjMuNnJlbTttYXgtd2lkdGg6MThyZW07d2hpdGUtc3BhY2U6bm93cmFwO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7b3ZlcmZsb3c6''@;'; + put 'put ''aGlkZGVuO3RleHQtYWxpZ246Y2VudGVyO3RleHQtZGVjb3JhdGlvbjpub25lO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7Ym9yZGVyLWNvbG9yOiMwMDcyYTM7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1idG4tZGVmYXVsdC1ib3JkZXItY29sb3IsICMw''@;'; + put 'put ''MDcyYTMpO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItYnRuLWRlZmF1bHQtYmctY29sb3IsIHRyYW5zcGFyZW50KTtjb2xvcjojMDA3MmEzO2NvbG9yOnZhcigtLWNsci1idG4tZGVmYXVsdC1jb2xvciwgIzAwNzJhMyk7bGluZS1oZWln''@;'; + put 'put ''aHQ6MS44cmVtO2xpbmUtaGVpZ2h0OnZhcigtLWNsci1idG4tYXBwZWFyYW5jZS1mb3JtLWxpbmUtaGVpZ2h0LCAxLjhyZW0pO2xldHRlci1zcGFjaW5nOi4xMmVtO2ZvbnQtc2l6ZTouNnJlbTtmb250LXNpemU6dmFyKC0tY2xyLWJ0bi1hcHBlYXJhbmNlLWZvcm0tZm9udC1zaXplLCAuNnJl''@;'; + put 'put ''bSk7Zm9udC13ZWlnaHQ6NTAwO2ZvbnQtd2VpZ2h0OnZhcigtLWNsci1idG4tYXBwZWFyYW5jZS1mb3JtLWZvbnQtd2VpZ2h0LCA1MDApO2hlaWdodDoxLjhyZW07aGVpZ2h0OnZhcigtLWNsci1idG4tYXBwZWFyYW5jZS1mb3JtLWhlaWdodCwgMS44cmVtKTtwYWRkaW5nOjAgLjZyZW07cGFk''@;'; + put 'put ''ZGluZzp2YXIoLS1jbHItYnRuLWFwcGVhcmFuY2UtZm9ybS1wYWRkaW5nLCAwIC42cmVtKX0uYnRuOmhvdmVye3RleHQtZGVjb3JhdGlvbjpub25lfS5idG4gY2RzLWljb24sLmJ0biBjbHItaWNvbntjb2xvcjojMDA3MmEzO2NvbG9yOnZhcigtLWNsci1idG4tZGVmYXVsdC1jb2xvciwgIzAw''@;'; + put 'put ''NzJhMyl9LmJ0bjp2aXNpdGVke2NvbG9yOiMwMDcyYTM7Y29sb3I6dmFyKC0tY2xyLWJ0bi1kZWZhdWx0LWNvbG9yLCAjMDA3MmEzKX0uYnRuOmhvdmVye2JhY2tncm91bmQtY29sb3I6I2UzZjVmYztiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1idG4tZGVmYXVsdC1ob3Zlci1iZy1jb2xv''@;'; + put 'put ''ciwgI2UzZjVmYyk7Y29sb3I6IzAwNTY3YTtjb2xvcjp2YXIoLS1jbHItYnRuLWRlZmF1bHQtaG92ZXItY29sb3IsICMwMDU2N2EpfS5idG46YWN0aXZle2JveC1zaGFkb3c6MCAuMXJlbSAjMTc5YmQzIGluc2V0O2JveC1zaGFkb3c6MCAuMXJlbSAwIDAgdmFyKC0tY2xyLWJ0bi1kZWZhdWx0''@;'; + put 'put ''LWJveC1zaGFkb3ctY29sb3IsICMxNzliZDMpIGluc2V0fS5idG4uZGlzYWJsZWQsLmJ0bjpkaXNhYmxlZHtjb2xvcjojNjY2O2NvbG9yOnZhcigtLWNsci1idG4tZGVmYXVsdC1kaXNhYmxlZC1jb2xvciwgIzY2NjY2Nik7Y3Vyc29yOm5vdC1hbGxvd2VkO29wYWNpdHk6LjQ7YmFja2dyb3Vu''@;'; + put 'put ''ZC1jb2xvcjp0cmFuc3BhcmVudDtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1idG4tZGVmYXVsdC1kaXNhYmxlZC1iZy1jb2xvciwgdHJhbnNwYXJlbnQpO2JvcmRlci1jb2xvcjojOGM4YzhjO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItYnRuLWRlZmF1bHQtZGlzYWJsZWQtYm9yZGVyLWNv''@;'; + put 'put ''bG9yLCAjOGM4YzhjKTtib3gtc2hhZG93Om5vbmV9LmJ0bi1ncm91cD4uYnRuIGNsci1pY29uLC5idG4gY2xyLWljb257dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsLS4xcmVtLDApfS5idG4tZ3JvdXA+LmJ0biBjZHMtaWNvbiwuYnRuIGNkcy1pY29ue21hcmdpbi10b3A6LS4xNHJlbX0uYnRu''@;'; + put 'put ''LmJ0bi1zZWNvbmRhcnksLmJ0bi5idG4taW5mbywuYnRuLmJ0bi1vdXRsaW5lLC5idG4uYnRuLXByaW1hcnktb3V0bGluZSwuYnRuLmJ0bi1zZWNvbmRhcnktb3V0bGluZSwuYnRuLmJ0bi1vdXRsaW5lLXByaW1hcnksLmJ0bi5idG4tb3V0bGluZS1zZWNvbmRhcnksLmJ0bi5idG4taW5mby1v''@;'; + put 'put ''dXRsaW5lLC5idG4tc2Vjb25kYXJ5IC5idG4sLmJ0bi1pbmZvIC5idG4sLmJ0bi1vdXRsaW5lIC5idG4sLmJ0bi1wcmltYXJ5LW91dGxpbmUgLmJ0biwuYnRuLXNlY29uZGFyeS1vdXRsaW5lIC5idG4sLmJ0bi1vdXRsaW5lLXByaW1hcnkgLmJ0biwuYnRuLW91dGxpbmUtc2Vjb25kYXJ5IC5i''@;'; + put 'put ''dG4sLmJ0bi1pbmZvLW91dGxpbmUgLmJ0biwuYnRuLW91dGxpbmUtaW5mbyAuYnRue2JvcmRlci1jb2xvcjojMDA3MmEzO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItYnRuLWRlZmF1bHQtYm9yZGVyLWNvbG9yLCAjMDA3MmEzKTtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2JhY2tncm91''@;'; + put 'put ''bmQtY29sb3I6dmFyKC0tY2xyLWJ0bi1kZWZhdWx0LWJnLWNvbG9yLCB0cmFuc3BhcmVudCk7Y29sb3I6IzAwNzJhMztjb2xvcjp2YXIoLS1jbHItYnRuLWRlZmF1bHQtY29sb3IsICMwMDcyYTMpfS5idG4uYnRuLXNlY29uZGFyeSBjZHMtaWNvbiwuYnRuLmJ0bi1zZWNvbmRhcnkgY2xyLWlj''@;'; + put 'put ''b24sLmJ0bi5idG4taW5mbyBjZHMtaWNvbiwuYnRuLmJ0bi1pbmZvIGNsci1pY29uLC5idG4uYnRuLW91dGxpbmUgY2RzLWljb24sLmJ0bi5idG4tb3V0bGluZSBjbHItaWNvbiwuYnRuLmJ0bi1wcmltYXJ5LW91dGxpbmUgY2RzLWljb24sLmJ0bi5idG4tcHJpbWFyeS1vdXRsaW5lIGNsci1p''@;'; + put 'put ''Y29uLC5idG4uYnRuLXNlY29uZGFyeS1vdXRsaW5lIGNkcy1pY29uLC5idG4uYnRuLXNlY29uZGFyeS1vdXRsaW5lIGNsci1pY29uLC5idG4uYnRuLW91dGxpbmUtcHJpbWFyeSBjZHMtaWNvbiwuYnRuLmJ0bi1vdXRsaW5lLXByaW1hcnkgY2xyLWljb24sLmJ0bi5idG4tb3V0bGluZS1zZWNv''@;'; + put 'put ''bmRhcnkgY2RzLWljb24sLmJ0bi5idG4tb3V0bGluZS1zZWNvbmRhcnkgY2xyLWljb24sLmJ0bi5idG4taW5mby1vdXRsaW5lIGNkcy1pY29uLC5idG4uYnRuLWluZm8tb3V0bGluZSBjbHItaWNvbiwuYnRuLXNlY29uZGFyeSAuYnRuIGNkcy1pY29uLC5idG4tc2Vjb25kYXJ5IC5idG4gY2xy''@;'; + put 'put ''LWljb24sLmJ0bi1pbmZvIC5idG4gY2RzLWljb24sLmJ0bi1pbmZvIC5idG4gY2xyLWljb24sLmJ0bi1vdXRsaW5lIC5idG4gY2RzLWljb24sLmJ0bi1vdXRsaW5lIC5idG4gY2xyLWljb24sLmJ0bi1wcmltYXJ5LW91dGxpbmUgLmJ0biBjZHMtaWNvbiwuYnRuLXByaW1hcnktb3V0bGluZSAu''@;'; + put 'put ''YnRuIGNsci1pY29uLC5idG4tc2Vjb25kYXJ5LW91dGxpbmUgLmJ0biBjZHMtaWNvbiwuYnRuLXNlY29uZGFyeS1vdXRsaW5lIC5idG4gY2xyLWljb24sLmJ0bi1vdXRsaW5lLXByaW1hcnkgLmJ0biBjZHMtaWNvbiwuYnRuLW91dGxpbmUtcHJpbWFyeSAuYnRuIGNsci1pY29uLC5idG4tb3V0''@;'; + put 'put ''bGluZS1zZWNvbmRhcnkgLmJ0biBjZHMtaWNvbiwuYnRuLW91dGxpbmUtc2Vjb25kYXJ5IC5idG4gY2xyLWljb24sLmJ0bi1pbmZvLW91dGxpbmUgLmJ0biBjZHMtaWNvbiwuYnRuLWluZm8tb3V0bGluZSAuYnRuIGNsci1pY29uLC5idG4tb3V0bGluZS1pbmZvIC5idG4gY2RzLWljb24sLmJ0''@;'; + put 'put ''bi1vdXRsaW5lLWluZm8gLmJ0biBjbHItaWNvbntjb2xvcjojMDA3MmEzO2NvbG9yOnZhcigtLWNsci1idG4tZGVmYXVsdC1jb2xvciwgIzAwNzJhMyl9LmJ0bi5idG4tc2Vjb25kYXJ5OnZpc2l0ZWQsLmJ0bi5idG4taW5mbzp2aXNpdGVkLC5idG4uYnRuLW91dGxpbmU6dmlzaXRlZCwuYnRu''@;'; + put 'put ''LmJ0bi1wcmltYXJ5LW91dGxpbmU6dmlzaXRlZCwuYnRuLmJ0bi1zZWNvbmRhcnktb3V0bGluZTp2aXNpdGVkLC5idG4uYnRuLW91dGxpbmUtcHJpbWFyeTp2aXNpdGVkLC5idG4uYnRuLW91dGxpbmUtc2Vjb25kYXJ5OnZpc2l0ZWQsLmJ0bi5idG4taW5mby1vdXRsaW5lOnZpc2l0ZWQsLmJ0''@;'; + put 'put ''bi1zZWNvbmRhcnkgLmJ0bjp2aXNpdGVkLC5idG4taW5mbyAuYnRuOnZpc2l0ZWQsLmJ0bi1vdXRsaW5lIC5idG46dmlzaXRlZCwuYnRuLXByaW1hcnktb3V0bGluZSAuYnRuOnZpc2l0ZWQsLmJ0bi1zZWNvbmRhcnktb3V0bGluZSAuYnRuOnZpc2l0ZWQsLmJ0bi1vdXRsaW5lLXByaW1hcnkg''@;'; + put 'put ''LmJ0bjp2aXNpdGVkLC5idG4tb3V0bGluZS1zZWNvbmRhcnkgLmJ0bjp2aXNpdGVkLC5idG4taW5mby1vdXRsaW5lIC5idG46dmlzaXRlZCwuYnRuLW91dGxpbmUtaW5mbyAuYnRuOnZpc2l0ZWR7Y29sb3I6IzAwNzJhMztjb2xvcjp2YXIoLS1jbHItYnRuLWRlZmF1bHQtY29sb3IsICMwMDcy''@;'; + put 'put ''YTMpfS5idG4uYnRuLXNlY29uZGFyeTpob3ZlciwuYnRuLmJ0bi1pbmZvOmhvdmVyLC5idG4uYnRuLW91dGxpbmU6aG92ZXIsLmJ0bi5idG4tcHJpbWFyeS1vdXRsaW5lOmhvdmVyLC5idG4uYnRuLXNlY29uZGFyeS1vdXRsaW5lOmhvdmVyLC5idG4uYnRuLW91dGxpbmUtcHJpbWFyeTpob3Zl''@;'; + put 'put ''ciwuYnRuLmJ0bi1vdXRsaW5lLXNlY29uZGFyeTpob3ZlciwuYnRuLmJ0bi1pbmZvLW91dGxpbmU6aG92ZXIsLmJ0bi1zZWNvbmRhcnkgLmJ0bjpob3ZlciwuYnRuLWluZm8gLmJ0bjpob3ZlciwuYnRuLW91dGxpbmUgLmJ0bjpob3ZlciwuYnRuLXByaW1hcnktb3V0bGluZSAuYnRuOmhvdmVy''@;'; + put 'put ''LC5idG4tc2Vjb25kYXJ5LW91dGxpbmUgLmJ0bjpob3ZlciwuYnRuLW91dGxpbmUtcHJpbWFyeSAuYnRuOmhvdmVyLC5idG4tb3V0bGluZS1zZWNvbmRhcnkgLmJ0bjpob3ZlciwuYnRuLWluZm8tb3V0bGluZSAuYnRuOmhvdmVyLC5idG4tb3V0bGluZS1pbmZvIC5idG46aG92ZXJ7YmFja2dy''@;'; + put 'put ''b3VuZC1jb2xvcjojZTNmNWZjO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWJ0bi1kZWZhdWx0LWhvdmVyLWJnLWNvbG9yLCAjZTNmNWZjKTtjb2xvcjojMDA1NjdhO2NvbG9yOnZhcigtLWNsci1idG4tZGVmYXVsdC1ob3Zlci1jb2xvciwgIzAwNTY3YSl9LmJ0bi5idG4tc2Vjb25kYXJ5''@;'; + put 'put ''OmFjdGl2ZSwuYnRuLmJ0bi1pbmZvOmFjdGl2ZSwuYnRuLmJ0bi1vdXRsaW5lOmFjdGl2ZSwuYnRuLmJ0bi1wcmltYXJ5LW91dGxpbmU6YWN0aXZlLC5idG4uYnRuLXNlY29uZGFyeS1vdXRsaW5lOmFjdGl2ZSwuYnRuLmJ0bi1vdXRsaW5lLXByaW1hcnk6YWN0aXZlLC5idG4uYnRuLW91dGxp''@;'; + put 'put ''bmUtc2Vjb25kYXJ5OmFjdGl2ZSwuYnRuLmJ0bi1pbmZvLW91dGxpbmU6YWN0aXZlLC5idG4tc2Vjb25kYXJ5IC5idG46YWN0aXZlLC5idG4taW5mbyAuYnRuOmFjdGl2ZSwuYnRuLW91dGxpbmUgLmJ0bjphY3RpdmUsLmJ0bi1wcmltYXJ5LW91dGxpbmUgLmJ0bjphY3RpdmUsLmJ0bi1zZWNv''@;'; + put 'put ''bmRhcnktb3V0bGluZSAuYnRuOmFjdGl2ZSwuYnRuLW91dGxpbmUtcHJpbWFyeSAuYnRuOmFjdGl2ZSwuYnRuLW91dGxpbmUtc2Vjb25kYXJ5IC5idG46YWN0aXZlLC5idG4taW5mby1vdXRsaW5lIC5idG46YWN0aXZlLC5idG4tb3V0bGluZS1pbmZvIC5idG46YWN0aXZle2JveC1zaGFkb3c6''@;'; + put 'put ''MCAuMXJlbSAjMTc5YmQzIGluc2V0O2JveC1zaGFkb3c6MCAuMXJlbSAwIDAgdmFyKC0tY2xyLWJ0bi1kZWZhdWx0LWJveC1zaGFkb3ctY29sb3IsICMxNzliZDMpIGluc2V0fS5idG4uYnRuLXNlY29uZGFyeS5kaXNhYmxlZCwuYnRuLmJ0bi1zZWNvbmRhcnk6ZGlzYWJsZWQsLmJ0bi5idG4t''@;'; + put 'put ''aW5mby5kaXNhYmxlZCwuYnRuLmJ0bi1pbmZvOmRpc2FibGVkLC5idG4uYnRuLW91dGxpbmUuZGlzYWJsZWQsLmJ0bi5idG4tb3V0bGluZTpkaXNhYmxlZCwuYnRuLmJ0bi1wcmltYXJ5LW91dGxpbmUuZGlzYWJsZWQsLmJ0bi5idG4tcHJpbWFyeS1vdXRsaW5lOmRpc2FibGVkLC5idG4uYnRu''@;'; + put 'put ''LXNlY29uZGFyeS1vdXRsaW5lLmRpc2FibGVkLC5idG4uYnRuLXNlY29uZGFyeS1vdXRsaW5lOmRpc2FibGVkLC5idG4uYnRuLW91dGxpbmUtcHJpbWFyeS5kaXNhYmxlZCwuYnRuLmJ0bi1vdXRsaW5lLXByaW1hcnk6ZGlzYWJsZWQsLmJ0bi5idG4tb3V0bGluZS1zZWNvbmRhcnkuZGlzYWJs''@;'; + put 'put ''ZWQsLmJ0bi5idG4tb3V0bGluZS1zZWNvbmRhcnk6ZGlzYWJsZWQsLmJ0bi5idG4taW5mby1vdXRsaW5lLmRpc2FibGVkLC5idG4uYnRuLWluZm8tb3V0bGluZTpkaXNhYmxlZCwuYnRuLXNlY29uZGFyeSAuYnRuLmRpc2FibGVkLC5idG4tc2Vjb25kYXJ5IC5idG46ZGlzYWJsZWQsLmJ0bi1p''@;'; + put 'put ''bmZvIC5idG4uZGlzYWJsZWQsLmJ0bi1pbmZvIC5idG46ZGlzYWJsZWQsLmJ0bi1vdXRsaW5lIC5idG4uZGlzYWJsZWQsLmJ0bi1vdXRsaW5lIC5idG46ZGlzYWJsZWQsLmJ0bi1wcmltYXJ5LW91dGxpbmUgLmJ0bi5kaXNhYmxlZCwuYnRuLXByaW1hcnktb3V0bGluZSAuYnRuOmRpc2FibGVk''@;'; + put 'put ''LC5idG4tc2Vjb25kYXJ5LW91dGxpbmUgLmJ0bi5kaXNhYmxlZCwuYnRuLXNlY29uZGFyeS1vdXRsaW5lIC5idG46ZGlzYWJsZWQsLmJ0bi1vdXRsaW5lLXByaW1hcnkgLmJ0bi5kaXNhYmxlZCwuYnRuLW91dGxpbmUtcHJpbWFyeSAuYnRuOmRpc2FibGVkLC5idG4tb3V0bGluZS1zZWNvbmRh''@;'; + put 'put ''cnkgLmJ0bi5kaXNhYmxlZCwuYnRuLW91dGxpbmUtc2Vjb25kYXJ5IC5idG46ZGlzYWJsZWQsLmJ0bi1pbmZvLW91dGxpbmUgLmJ0bi5kaXNhYmxlZCwuYnRuLWluZm8tb3V0bGluZSAuYnRuOmRpc2FibGVkLC5idG4tb3V0bGluZS1pbmZvIC5idG4uZGlzYWJsZWQsLmJ0bi1vdXRsaW5lLWlu''@;'; + put 'put ''Zm8gLmJ0bjpkaXNhYmxlZHtjb2xvcjojNjY2O2NvbG9yOnZhcigtLWNsci1idG4tZGVmYXVsdC1kaXNhYmxlZC1jb2xvciwgIzY2NjY2Nik7Y3Vyc29yOm5vdC1hbGxvd2VkO29wYWNpdHk6LjQ7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNs''@;'; + put 'put ''ci1idG4tZGVmYXVsdC1kaXNhYmxlZC1iZy1jb2xvciwgdHJhbnNwYXJlbnQpO2JvcmRlci1jb2xvcjojOGM4YzhjO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItYnRuLWRlZmF1bHQtZGlzYWJsZWQtYm9yZGVyLWNvbG9yLCAjOGM4YzhjKTtib3gtc2hhZG93Om5vbmV9LmJ0bi5idG4tcHJpbWFy''@;'; + put 'put ''eSwuYnRuLXByaW1hcnkgLmJ0bntib3JkZXItY29sb3I6IzAwNzJhMztib3JkZXItY29sb3I6dmFyKC0tY2xyLWJ0bi1wcmltYXJ5LWJvcmRlci1jb2xvciwgIzAwNzJhMyk7YmFja2dyb3VuZC1jb2xvcjojMDA3MmEzO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWJ0bi1wcmltYXJ5LWJn''@;'; + put 'put ''LWNvbG9yLCAjMDA3MmEzKTtjb2xvcjojZmZmO2NvbG9yOnZhcigtLWNsci1idG4tcHJpbWFyeS1jb2xvciwgd2hpdGUpfS5idG4uYnRuLXByaW1hcnkgY2RzLWljb24sLmJ0bi5idG4tcHJpbWFyeSBjbHItaWNvbiwuYnRuLXByaW1hcnkgLmJ0biBjZHMtaWNvbiwuYnRuLXByaW1hcnkgLmJ0''@;'; + put 'put ''biBjbHItaWNvbntjb2xvcjojZmZmO2NvbG9yOnZhcigtLWNsci1idG4tcHJpbWFyeS1jb2xvciwgd2hpdGUpfS5idG4uYnRuLXByaW1hcnk6dmlzaXRlZCwuYnRuLXByaW1hcnkgLmJ0bjp2aXNpdGVke2NvbG9yOiNmZmY7Y29sb3I6dmFyKC0tY2xyLWJ0bi1wcmltYXJ5LWNvbG9yLCB3aGl0''@;'; + put 'put ''ZSl9LmJ0bi5idG4tcHJpbWFyeTpob3ZlciwuYnRuLXByaW1hcnkgLmJ0bjpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiMwMDU2N2E7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItYnRuLXByaW1hcnktaG92ZXItYmctY29sb3IsICMwMDU2N2EpO2NvbG9yOiNlM2Y1ZmM7Y29sb3I6dmFyKC0t''@;'; + put 'put ''Y2xyLWJ0bi1wcmltYXJ5LWhvdmVyLWNvbG9yLCAjZTNmNWZjKX0uYnRuLmJ0bi1wcmltYXJ5OmFjdGl2ZSwuYnRuLXByaW1hcnkgLmJ0bjphY3RpdmV7Ym94LXNoYWRvdzowIC4xcmVtICMxNzliZDMgaW5zZXQ7Ym94LXNoYWRvdzowIC4xcmVtIDAgMCB2YXIoLS1jbHItYnRuLXByaW1hcnkt''@;'; + put 'put ''Ym94LXNoYWRvdy1jb2xvciwgIzE3OWJkMykgaW5zZXR9LmJ0bi5idG4tcHJpbWFyeS5kaXNhYmxlZCwuYnRuLmJ0bi1wcmltYXJ5OmRpc2FibGVkLC5idG4tcHJpbWFyeSAuYnRuLmRpc2FibGVkLC5idG4tcHJpbWFyeSAuYnRuOmRpc2FibGVke2NvbG9yOiM2NjY7Y29sb3I6dmFyKC0tY2xy''@;'; + put 'put ''LWJ0bi1wcmltYXJ5LWRpc2FibGVkLWNvbG9yLCAjNjY2NjY2KTtjdXJzb3I6bm90LWFsbG93ZWQ7b3BhY2l0eTouNDtiYWNrZ3JvdW5kLWNvbG9yOiNjY2M7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItYnRuLXByaW1hcnktZGlzYWJsZWQtYmctY29sb3IsICNjY2NjY2MpO2JvcmRlci1j''@;'; + put 'put ''b2xvcjojY2NjO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItYnRuLXByaW1hcnktZGlzYWJsZWQtYm9yZGVyLWNvbG9yLCAjY2NjY2NjKTtib3gtc2hhZG93Om5vbmV9LmJ0bi5idG4tc3VjY2VzcywuYnRuLXN1Y2Nlc3MgLmJ0bntib3JkZXItY29sb3I6IzNjODUwMDtib3JkZXItY29sb3I6dmFy''@;'; + put 'put ''KC0tY2xyLWJ0bi1zdWNjZXNzLWJvcmRlci1jb2xvciwgIzNjODUwMCk7YmFja2dyb3VuZC1jb2xvcjojM2M4NTAwO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWJ0bi1zdWNjZXNzLWJnLWNvbG9yLCAjM2M4NTAwKTtjb2xvcjojZmZmO2NvbG9yOnZhcigtLWNsci1idG4tc3VjY2Vzcy1j''@;'; + put 'put ''b2xvciwgd2hpdGUpfS5idG4uYnRuLXN1Y2Nlc3MgY2RzLWljb24sLmJ0bi5idG4tc3VjY2VzcyBjbHItaWNvbiwuYnRuLXN1Y2Nlc3MgLmJ0biBjZHMtaWNvbiwuYnRuLXN1Y2Nlc3MgLmJ0biBjbHItaWNvbntjb2xvcjojZmZmO2NvbG9yOnZhcigtLWNsci1idG4tc3VjY2Vzcy1jb2xvciwg''@;'; + put 'put ''d2hpdGUpfS5idG4uYnRuLXN1Y2Nlc3M6dmlzaXRlZCwuYnRuLXN1Y2Nlc3MgLmJ0bjp2aXNpdGVke2NvbG9yOiNmZmY7Y29sb3I6dmFyKC0tY2xyLWJ0bi1zdWNjZXNzLWNvbG9yLCB3aGl0ZSl9LmJ0bi5idG4tc3VjY2Vzczpob3ZlciwuYnRuLXN1Y2Nlc3MgLmJ0bjpob3ZlcntiYWNrZ3Jv''@;'; + put 'put ''dW5kLWNvbG9yOiMzMDZiMDA7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItYnRuLXN1Y2Nlc3MtaG92ZXItYmctY29sb3IsICMzMDZiMDApO2NvbG9yOiNmZmY7Y29sb3I6dmFyKC0tY2xyLWJ0bi1zdWNjZXNzLWhvdmVyLWNvbG9yLCB3aGl0ZSl9LmJ0bi5idG4tc3VjY2VzczphY3RpdmUs''@;'; + put 'put ''LmJ0bi1zdWNjZXNzIC5idG46YWN0aXZle2JveC1zaGFkb3c6MCAuMXJlbSAjMjU1MjAwIGluc2V0O2JveC1zaGFkb3c6MCAuMXJlbSAwIDAgdmFyKC0tY2xyLWJ0bi1zdWNjZXNzLWJveC1zaGFkb3ctY29sb3IsICMyNTUyMDApIGluc2V0fS5idG4uYnRuLXN1Y2Nlc3MuZGlzYWJsZWQsLmJ0''@;'; + put 'put ''bi5idG4tc3VjY2VzczpkaXNhYmxlZCwuYnRuLXN1Y2Nlc3MgLmJ0bi5kaXNhYmxlZCwuYnRuLXN1Y2Nlc3MgLmJ0bjpkaXNhYmxlZHtjb2xvcjojNjY2O2NvbG9yOnZhcigtLWNsci1idG4tc3VjY2Vzcy1kaXNhYmxlZC1jb2xvciwgIzY2NjY2Nik7Y3Vyc29yOm5vdC1hbGxvd2VkO29wYWNp''@;'; + put 'put ''dHk6LjQ7YmFja2dyb3VuZC1jb2xvcjojY2NjO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWJ0bi1zdWNjZXNzLWRpc2FibGVkLWJnLWNvbG9yLCAjY2NjY2NjKTtib3JkZXItY29sb3I6I2NjYztib3JkZXItY29sb3I6dmFyKC0tY2xyLWJ0bi1zdWNjZXNzLWRpc2FibGVkLWJvcmRlci1j''@;'; + put 'put ''b2xvciwgI2NjY2NjYyk7Ym94LXNoYWRvdzpub25lfS5idG4uYnRuLXdhcm5pbmcsLmJ0bi13YXJuaW5nIC5idG57Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1idG4td2FybmluZy1ib3JkZXItY29sb3IsICk7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItYnRuLXdhcm5pbmctYmctY29sb3Is''@;'; + put 'put ''ICk7Y29sb3I6dmFyKC0tY2xyLWJ0bi13YXJuaW5nLWNvbG9yLCApfS5idG4uYnRuLXdhcm5pbmcgY2RzLWljb24sLmJ0bi5idG4td2FybmluZyBjbHItaWNvbiwuYnRuLXdhcm5pbmcgLmJ0biBjZHMtaWNvbiwuYnRuLXdhcm5pbmcgLmJ0biBjbHItaWNvbntjb2xvcjp2YXIoLS1jbHItYnRu''@;'; + put 'put ''LXdhcm5pbmctY29sb3IsICl9LmJ0bi5idG4td2FybmluZzp2aXNpdGVkLC5idG4td2FybmluZyAuYnRuOnZpc2l0ZWR7Y29sb3I6dmFyKC0tY2xyLWJ0bi13YXJuaW5nLWNvbG9yLCApfS5idG4uYnRuLXdhcm5pbmc6aG92ZXIsLmJ0bi13YXJuaW5nIC5idG46aG92ZXJ7YmFja2dyb3VuZC1j''@;'; + put 'put ''b2xvcjp2YXIoLS1jbHItYnRuLXdhcm5pbmctaG92ZXItYmctY29sb3IsICk7Y29sb3I6dmFyKC0tY2xyLWJ0bi13YXJuaW5nLWhvdmVyLWNvbG9yLCApfS5idG4uYnRuLXdhcm5pbmc6YWN0aXZlLC5idG4td2FybmluZyAuYnRuOmFjdGl2ZXtib3gtc2hhZG93OjAgLjFyZW0gaW5zZXQ7Ym94''@;'; + put 'put ''LXNoYWRvdzowIC4xcmVtIDAgMCB2YXIoLS1jbHItYnRuLXdhcm5pbmctYm94LXNoYWRvdy1jb2xvciwgKSBpbnNldH0uYnRuLmJ0bi13YXJuaW5nLmRpc2FibGVkLC5idG4uYnRuLXdhcm5pbmc6ZGlzYWJsZWQsLmJ0bi13YXJuaW5nIC5idG4uZGlzYWJsZWQsLmJ0bi13YXJuaW5nIC5idG46''@;'; + put 'put ''ZGlzYWJsZWR7Y29sb3I6dmFyKC0tY2xyLWJ0bi13YXJuaW5nLWRpc2FibGVkLWNvbG9yLCApO2N1cnNvcjpub3QtYWxsb3dlZDtvcGFjaXR5Oi40O2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWJ0bi13YXJuaW5nLWRpc2FibGVkLWJnLWNvbG9yLCApO2JvcmRlci1jb2xvcjp2YXIoLS1j''@;'; + put 'put ''bHItYnRuLXdhcm5pbmctZGlzYWJsZWQtYm9yZGVyLWNvbG9yLCApO2JveC1zaGFkb3c6bm9uZX0uYnRuLmJ0bi1kYW5nZXIsLmJ0bi1kYW5nZXIgLmJ0bntib3JkZXItY29sb3I6I2RiMjEwMDtib3JkZXItY29sb3I6dmFyKC0tY2xyLWJ0bi1kYW5nZXItYm9yZGVyLWNvbG9yLCAjZGIyMTAw''@;'; + put 'put ''KTtiYWNrZ3JvdW5kLWNvbG9yOiNkYjIxMDA7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItYnRuLWRhbmdlci1iZy1jb2xvciwgI2RiMjEwMCk7Y29sb3I6I2ZmZjtjb2xvcjp2YXIoLS1jbHItYnRuLWRhbmdlci1jb2xvciwgd2hpdGUpfS5idG4uYnRuLWRhbmdlciBjZHMtaWNvbiwuYnRu''@;'; + put 'put ''LmJ0bi1kYW5nZXIgY2xyLWljb24sLmJ0bi1kYW5nZXIgLmJ0biBjZHMtaWNvbiwuYnRuLWRhbmdlciAuYnRuIGNsci1pY29ue2NvbG9yOiNmZmY7Y29sb3I6dmFyKC0tY2xyLWJ0bi1kYW5nZXItY29sb3IsIHdoaXRlKX0uYnRuLmJ0bi1kYW5nZXI6dmlzaXRlZCwuYnRuLWRhbmdlciAuYnRu''@;'; + put 'put ''OnZpc2l0ZWR7Y29sb3I6I2ZmZjtjb2xvcjp2YXIoLS1jbHItYnRuLWRhbmdlci1jb2xvciwgd2hpdGUpfS5idG4uYnRuLWRhbmdlcjpob3ZlciwuYnRuLWRhbmdlciAuYnRuOmhvdmVye2JhY2tncm91bmQtY29sb3I6I2MyMWQwMDtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1idG4tZGFu''@;'; + put 'put ''Z2VyLWhvdmVyLWJnLWNvbG9yLCAjYzIxZDAwKTtjb2xvcjojZmZmO2NvbG9yOnZhcigtLWNsci1idG4tZGFuZ2VyLWhvdmVyLWNvbG9yLCB3aGl0ZSl9LmJ0bi5idG4tZGFuZ2VyOmFjdGl2ZSwuYnRuLWRhbmdlciAuYnRuOmFjdGl2ZXtib3gtc2hhZG93OjAgLjFyZW0gIzk5MTcwMCBpbnNl''@;'; + put 'put ''dDtib3gtc2hhZG93OjAgLjFyZW0gMCAwIHZhcigtLWNsci1idG4tZGFuZ2VyLWJveC1zaGFkb3ctY29sb3IsICM5OTE3MDApIGluc2V0fS5idG4uYnRuLWRhbmdlci5kaXNhYmxlZCwuYnRuLmJ0bi1kYW5nZXI6ZGlzYWJsZWQsLmJ0bi1kYW5nZXIgLmJ0bi5kaXNhYmxlZCwuYnRuLWRhbmdl''@;'; + put 'put ''ciAuYnRuOmRpc2FibGVke2NvbG9yOiM2NjY7Y29sb3I6dmFyKC0tY2xyLWJ0bi1kYW5nZXItZGlzYWJsZWQtY29sb3IsICM2NjY2NjYpO2N1cnNvcjpub3QtYWxsb3dlZDtvcGFjaXR5Oi40O2JhY2tncm91bmQtY29sb3I6I2NjYztiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1idG4tZGFu''@;'; + put 'put ''Z2VyLWRpc2FibGVkLWJnLWNvbG9yLCAjY2NjY2NjKTtib3JkZXItY29sb3I6IzY2Njtib3JkZXItY29sb3I6dmFyKC0tY2xyLWJ0bi1kYW5nZXItZGlzYWJsZWQtYm9yZGVyLWNvbG9yLCAjNjY2NjY2KTtib3gtc2hhZG93Om5vbmV9LmJ0bi5idG4tb3V0bGluZSwuYnRuLmJ0bi1vdXRsaW5l''@;'; + put 'put ''IC5idG4sLmJ0bi5idG4taW5mby1vdXRsaW5lLC5idG4taW5mby1vdXRsaW5lIC5idG4sLmJ0bi5idG4tb3V0bGluZS1pbmZvLC5idG4tb3V0bGluZSAuYnRue2JvcmRlci1jb2xvcjojMDA3MmEzO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItYnRuLWRlZmF1bHQtb3V0bGluZS1ib3JkZXItY29s''@;'; + put 'put ''b3IsICMwMDcyYTMpO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItYnRuLWRlZmF1bHQtb3V0bGluZS1iZy1jb2xvciwgdHJhbnNwYXJlbnQpO2NvbG9yOiMwMDcyYTM7Y29sb3I6dmFyKC0tY2xyLWJ0bi1kZWZhdWx0LW91dGxpbmUtY29s''@;'; + put 'put ''b3IsICMwMDcyYTMpfS5idG4uYnRuLW91dGxpbmUgY2RzLWljb24sLmJ0bi5idG4tb3V0bGluZSBjbHItaWNvbiwuYnRuLmJ0bi1vdXRsaW5lIC5idG4gY2RzLWljb24sLmJ0bi5idG4tb3V0bGluZSAuYnRuIGNsci1pY29uLC5idG4uYnRuLWluZm8tb3V0bGluZSBjZHMtaWNvbiwuYnRuLmJ0''@;'; + put 'put ''bi1pbmZvLW91dGxpbmUgY2xyLWljb24sLmJ0bi1pbmZvLW91dGxpbmUgLmJ0biBjZHMtaWNvbiwuYnRuLWluZm8tb3V0bGluZSAuYnRuIGNsci1pY29uLC5idG4uYnRuLW91dGxpbmUtaW5mbyBjZHMtaWNvbiwuYnRuLmJ0bi1vdXRsaW5lLWluZm8gY2xyLWljb24sLmJ0bi1vdXRsaW5lIC5i''@;'; + put 'put ''dG4gY2RzLWljb24sLmJ0bi1vdXRsaW5lIC5idG4gY2xyLWljb257Y29sb3I6IzAwNzJhMztjb2xvcjp2YXIoLS1jbHItYnRuLWRlZmF1bHQtb3V0bGluZS1jb2xvciwgIzAwNzJhMyl9LmJ0bi5idG4tb3V0bGluZTp2aXNpdGVkLC5idG4uYnRuLW91dGxpbmUgLmJ0bjp2aXNpdGVkLC5idG4u''@;'; + put 'put ''YnRuLWluZm8tb3V0bGluZTp2aXNpdGVkLC5idG4taW5mby1vdXRsaW5lIC5idG46dmlzaXRlZCwuYnRuLmJ0bi1vdXRsaW5lLWluZm86dmlzaXRlZCwuYnRuLW91dGxpbmUgLmJ0bjp2aXNpdGVke2NvbG9yOiMwMDcyYTM7Y29sb3I6dmFyKC0tY2xyLWJ0bi1kZWZhdWx0LW91dGxpbmUtY29s''@;'; + put 'put ''b3IsICMwMDcyYTMpfS5idG4uYnRuLW91dGxpbmU6aG92ZXIsLmJ0bi5idG4tb3V0bGluZSAuYnRuOmhvdmVyLC5idG4uYnRuLWluZm8tb3V0bGluZTpob3ZlciwuYnRuLWluZm8tb3V0bGluZSAuYnRuOmhvdmVyLC5idG4uYnRuLW91dGxpbmUtaW5mbzpob3ZlciwuYnRuLW91dGxpbmUgLmJ0''@;'; + put 'put ''bjpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiNlM2Y1ZmM7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItYnRuLWRlZmF1bHQtb3V0bGluZS1ob3Zlci1iZy1jb2xvciwgI2UzZjVmYyk7Y29sb3I6IzAwNTY3YTtjb2xvcjp2YXIoLS1jbHItYnRuLWRlZmF1bHQtb3V0bGluZS1ob3Zlci1jb2xv''@;'; + put 'put ''ciwgIzAwNTY3YSl9LmJ0bi5idG4tb3V0bGluZTphY3RpdmUsLmJ0bi5idG4tb3V0bGluZSAuYnRuOmFjdGl2ZSwuYnRuLmJ0bi1pbmZvLW91dGxpbmU6YWN0aXZlLC5idG4taW5mby1vdXRsaW5lIC5idG46YWN0aXZlLC5idG4uYnRuLW91dGxpbmUtaW5mbzphY3RpdmUsLmJ0bi1vdXRsaW5l''@;'; + put 'put ''IC5idG46YWN0aXZle2JveC1zaGFkb3c6MCAuMXJlbSAjMTc5YmQzIGluc2V0O2JveC1zaGFkb3c6MCAuMXJlbSAwIDAgdmFyKC0tY2xyLWJ0bi1kZWZhdWx0LW91dGxpbmUtYm94LXNoYWRvdy1jb2xvciwgIzE3OWJkMykgaW5zZXR9LmJ0bi5idG4tb3V0bGluZS5kaXNhYmxlZCwuYnRuLmJ0''@;'; + put 'put ''bi1vdXRsaW5lOmRpc2FibGVkLC5idG4uYnRuLW91dGxpbmUgLmJ0bi5kaXNhYmxlZCwuYnRuLmJ0bi1vdXRsaW5lIC5idG46ZGlzYWJsZWQsLmJ0bi5idG4taW5mby1vdXRsaW5lLmRpc2FibGVkLC5idG4uYnRuLWluZm8tb3V0bGluZTpkaXNhYmxlZCwuYnRuLWluZm8tb3V0bGluZSAuYnRu''@;'; + put 'put ''LmRpc2FibGVkLC5idG4taW5mby1vdXRsaW5lIC5idG46ZGlzYWJsZWQsLmJ0bi5idG4tb3V0bGluZS1pbmZvLmRpc2FibGVkLC5idG4uYnRuLW91dGxpbmUtaW5mbzpkaXNhYmxlZCwuYnRuLW91dGxpbmUgLmJ0bi5kaXNhYmxlZCwuYnRuLW91dGxpbmUgLmJ0bjpkaXNhYmxlZHtjb2xvcjoj''@;'; + put 'put ''NjY2O2NvbG9yOnZhcigtLWNsci1idG4tZGVmYXVsdC1vdXRsaW5lLWRpc2FibGVkLWNvbG9yLCAjNjY2NjY2KTtjdXJzb3I6bm90LWFsbG93ZWQ7b3BhY2l0eTouNDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWJ0bi1kZWZhdWx0LW91''@;'; + put 'put ''dGxpbmUtZGlzYWJsZWQtYmctY29sb3IsIHRyYW5zcGFyZW50KTtib3JkZXItY29sb3I6IzhjOGM4Yztib3JkZXItY29sb3I6dmFyKC0tY2xyLWJ0bi1kZWZhdWx0LW91dGxpbmUtZGlzYWJsZWQtYm9yZGVyLWNvbG9yLCAjOGM4YzhjKTtib3gtc2hhZG93Om5vbmV9LmJ0bi5idG4tc3VjY2Vz''@;'; + put 'put ''cy1vdXRsaW5lLC5idG4uYnRuLW91dGxpbmUtc3VjY2VzcywuYnRuLXN1Y2Nlc3Mtb3V0bGluZSAuYnRuLC5idG4tb3V0bGluZS1zdWNjZXNzIC5idG57Ym9yZGVyLWNvbG9yOiMzYzg1MDA7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1idG4tc3VjY2Vzcy1vdXRsaW5lLWJvcmRlci1jb2xvciwg''@;'; + put 'put ''IzNjODUwMCk7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1idG4tc3VjY2Vzcy1vdXRsaW5lLWJnLWNvbG9yLCB0cmFuc3BhcmVudCk7Y29sb3I6IzNjODUwMDtjb2xvcjp2YXIoLS1jbHItYnRuLXN1Y2Nlc3Mtb3V0bGluZS1jb2xvciwg''@;'; + put 'put ''IzNjODUwMCl9LmJ0bi5idG4tc3VjY2Vzcy1vdXRsaW5lIGNkcy1pY29uLC5idG4uYnRuLXN1Y2Nlc3Mtb3V0bGluZSBjbHItaWNvbiwuYnRuLmJ0bi1vdXRsaW5lLXN1Y2Nlc3MgY2RzLWljb24sLmJ0bi5idG4tb3V0bGluZS1zdWNjZXNzIGNsci1pY29uLC5idG4tc3VjY2Vzcy1vdXRsaW5l''@;'; + put 'put ''IC5idG4gY2RzLWljb24sLmJ0bi1zdWNjZXNzLW91dGxpbmUgLmJ0biBjbHItaWNvbiwuYnRuLW91dGxpbmUtc3VjY2VzcyAuYnRuIGNkcy1pY29uLC5idG4tb3V0bGluZS1zdWNjZXNzIC5idG4gY2xyLWljb257Y29sb3I6IzNjODUwMDtjb2xvcjp2YXIoLS1jbHItYnRuLXN1Y2Nlc3Mtb3V0''@;'; + put 'put ''bGluZS1jb2xvciwgIzNjODUwMCl9LmJ0bi5idG4tc3VjY2Vzcy1vdXRsaW5lOnZpc2l0ZWQsLmJ0bi5idG4tb3V0bGluZS1zdWNjZXNzOnZpc2l0ZWQsLmJ0bi1zdWNjZXNzLW91dGxpbmUgLmJ0bjp2aXNpdGVkLC5idG4tb3V0bGluZS1zdWNjZXNzIC5idG46dmlzaXRlZHtjb2xvcjojM2M4''@;'; + put 'put ''NTAwO2NvbG9yOnZhcigtLWNsci1idG4tc3VjY2Vzcy1vdXRsaW5lLWNvbG9yLCAjM2M4NTAwKX0uYnRuLmJ0bi1zdWNjZXNzLW91dGxpbmU6aG92ZXIsLmJ0bi5idG4tb3V0bGluZS1zdWNjZXNzOmhvdmVyLC5idG4tc3VjY2Vzcy1vdXRsaW5lIC5idG46aG92ZXIsLmJ0bi1vdXRsaW5lLXN1''@;'; + put 'put ''Y2Nlc3MgLmJ0bjpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiNkZmYwZDA7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItYnRuLXN1Y2Nlc3Mtb3V0bGluZS1ob3Zlci1iZy1jb2xvciwgI2RmZjBkMCk7Y29sb3I6IzI1NTIwMDtjb2xvcjp2YXIoLS1jbHItYnRuLXN1Y2Nlc3Mtb3V0bGluZS1o''@;'; + put 'put ''b3Zlci1jb2xvciwgIzI1NTIwMCl9LmJ0bi5idG4tc3VjY2Vzcy1vdXRsaW5lOmFjdGl2ZSwuYnRuLmJ0bi1vdXRsaW5lLXN1Y2Nlc3M6YWN0aXZlLC5idG4tc3VjY2Vzcy1vdXRsaW5lIC5idG46YWN0aXZlLC5idG4tb3V0bGluZS1zdWNjZXNzIC5idG46YWN0aXZle2JveC1zaGFkb3c6MCAu''@;'; + put 'put ''MXJlbSAjNWViNzE1IGluc2V0O2JveC1zaGFkb3c6MCAuMXJlbSAwIDAgdmFyKC0tY2xyLWJ0bi1zdWNjZXNzLW91dGxpbmUtYm94LXNoYWRvdy1jb2xvciwgIzVlYjcxNSkgaW5zZXR9LmJ0bi5idG4tc3VjY2Vzcy1vdXRsaW5lLmRpc2FibGVkLC5idG4uYnRuLXN1Y2Nlc3Mtb3V0bGluZTpk''@;'; + put 'put ''aXNhYmxlZCwuYnRuLmJ0bi1vdXRsaW5lLXN1Y2Nlc3MuZGlzYWJsZWQsLmJ0bi5idG4tb3V0bGluZS1zdWNjZXNzOmRpc2FibGVkLC5idG4tc3VjY2Vzcy1vdXRsaW5lIC5idG4uZGlzYWJsZWQsLmJ0bi1zdWNjZXNzLW91dGxpbmUgLmJ0bjpkaXNhYmxlZCwuYnRuLW91dGxpbmUtc3VjY2Vz''@;'; + put 'put ''cyAuYnRuLmRpc2FibGVkLC5idG4tb3V0bGluZS1zdWNjZXNzIC5idG46ZGlzYWJsZWR7Y29sb3I6IzY2Njtjb2xvcjp2YXIoLS1jbHItYnRuLXN1Y2Nlc3Mtb3V0bGluZS1kaXNhYmxlZC1jb2xvciwgIzY2NjY2Nik7Y3Vyc29yOm5vdC1hbGxvd2VkO29wYWNpdHk6LjQ7YmFja2dyb3VuZC1j''@;'; + put 'put ''b2xvcjp0cmFuc3BhcmVudDtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1idG4tc3VjY2Vzcy1vdXRsaW5lLWRpc2FibGVkLWJnLWNvbG9yLCB0cmFuc3BhcmVudCk7Ym9yZGVyLWNvbG9yOiM4YzhjOGM7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1idG4tc3VjY2Vzcy1vdXRsaW5lLWRpc2Fi''@;'; + put 'put ''bGVkLWJvcmRlci1jb2xvciwgIzhjOGM4Yyk7Ym94LXNoYWRvdzpub25lfS5idG4uYnRuLXdhcm5pbmctb3V0bGluZSwuYnRuLmJ0bi1vdXRsaW5lLXdhcm5pbmcsLmJ0bi13YXJuaW5nLW91dGxpbmUgLmJ0biwuYnRuLW91dGxpbmUtd2FybmluZyAuYnRue2JvcmRlci1jb2xvcjp2YXIoLS1j''@;'; + put 'put ''bHItYnRuLXdhcm5pbmctb3V0bGluZS1ib3JkZXItY29sb3IsICk7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItYnRuLXdhcm5pbmctb3V0bGluZS1iZy1jb2xvciwgKTtjb2xvcjp2YXIoLS1jbHItYnRuLXdhcm5pbmctb3V0bGluZS1jb2xvciwgKX0uYnRuLmJ0bi13YXJuaW5nLW91dGxp''@;'; + put 'put ''bmUgY2RzLWljb24sLmJ0bi5idG4td2FybmluZy1vdXRsaW5lIGNsci1pY29uLC5idG4uYnRuLW91dGxpbmUtd2FybmluZyBjZHMtaWNvbiwuYnRuLmJ0bi1vdXRsaW5lLXdhcm5pbmcgY2xyLWljb24sLmJ0bi13YXJuaW5nLW91dGxpbmUgLmJ0biBjZHMtaWNvbiwuYnRuLXdhcm5pbmctb3V0''@;'; + put 'put ''bGluZSAuYnRuIGNsci1pY29uLC5idG4tb3V0bGluZS13YXJuaW5nIC5idG4gY2RzLWljb24sLmJ0bi1vdXRsaW5lLXdhcm5pbmcgLmJ0biBjbHItaWNvbntjb2xvcjp2YXIoLS1jbHItYnRuLXdhcm5pbmctb3V0bGluZS1jb2xvciwgKX0uYnRuLmJ0bi13YXJuaW5nLW91dGxpbmU6dmlzaXRl''@;'; + put 'put ''ZCwuYnRuLmJ0bi1vdXRsaW5lLXdhcm5pbmc6dmlzaXRlZCwuYnRuLXdhcm5pbmctb3V0bGluZSAuYnRuOnZpc2l0ZWQsLmJ0bi1vdXRsaW5lLXdhcm5pbmcgLmJ0bjp2aXNpdGVke2NvbG9yOnZhcigtLWNsci1idG4td2FybmluZy1vdXRsaW5lLWNvbG9yLCApfS5idG4uYnRuLXdhcm5pbmct''@;'; + put 'put ''b3V0bGluZTpob3ZlciwuYnRuLmJ0bi1vdXRsaW5lLXdhcm5pbmc6aG92ZXIsLmJ0bi13YXJuaW5nLW91dGxpbmUgLmJ0bjpob3ZlciwuYnRuLW91dGxpbmUtd2FybmluZyAuYnRuOmhvdmVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWJ0bi13YXJuaW5nLW91dGxpbmUtaG92ZXItYmct''@;'; + put 'put ''Y29sb3IsICk7Y29sb3I6dmFyKC0tY2xyLWJ0bi13YXJuaW5nLW91dGxpbmUtaG92ZXItY29sb3IsICl9LmJ0bi5idG4td2FybmluZy1vdXRsaW5lOmFjdGl2ZSwuYnRuLmJ0bi1vdXRsaW5lLXdhcm5pbmc6YWN0aXZlLC5idG4td2FybmluZy1vdXRsaW5lIC5idG46YWN0aXZlLC5idG4tb3V0''@;'; + put 'put ''bGluZS13YXJuaW5nIC5idG46YWN0aXZle2JveC1zaGFkb3c6MCAuMXJlbSBpbnNldDtib3gtc2hhZG93OjAgLjFyZW0gMCAwIHZhcigtLWNsci1idG4td2FybmluZy1vdXRsaW5lLWJveC1zaGFkb3ctY29sb3IsICkgaW5zZXR9LmJ0bi5idG4td2FybmluZy1vdXRsaW5lLmRpc2FibGVkLC5i''@;'; + put 'put ''dG4uYnRuLXdhcm5pbmctb3V0bGluZTpkaXNhYmxlZCwuYnRuLmJ0bi1vdXRsaW5lLXdhcm5pbmcuZGlzYWJsZWQsLmJ0bi5idG4tb3V0bGluZS13YXJuaW5nOmRpc2FibGVkLC5idG4td2FybmluZy1vdXRsaW5lIC5idG4uZGlzYWJsZWQsLmJ0bi13YXJuaW5nLW91dGxpbmUgLmJ0bjpkaXNh''@;'; + put 'put ''YmxlZCwuYnRuLW91dGxpbmUtd2FybmluZyAuYnRuLmRpc2FibGVkLC5idG4tb3V0bGluZS13YXJuaW5nIC5idG46ZGlzYWJsZWR7Y29sb3I6dmFyKC0tY2xyLWJ0bi13YXJuaW5nLW91dGxpbmUtZGlzYWJsZWQtY29sb3IsICk7Y3Vyc29yOm5vdC1hbGxvd2VkO29wYWNpdHk6LjQ7YmFja2dy''@;'; + put 'put ''b3VuZC1jb2xvcjp2YXIoLS1jbHItYnRuLXdhcm5pbmctb3V0bGluZS1kaXNhYmxlZC1iZy1jb2xvciwgKTtib3JkZXItY29sb3I6dmFyKC0tY2xyLWJ0bi13YXJuaW5nLW91dGxpbmUtZGlzYWJsZWQtYm9yZGVyLWNvbG9yLCApO2JveC1zaGFkb3c6bm9uZX0uYnRuLmJ0bi1kYW5nZXItb3V0''@;'; + put 'put ''bGluZSwuYnRuLmJ0bi1vdXRsaW5lLWRhbmdlciwuYnRuLWRhbmdlci1vdXRsaW5lIC5idG4sLmJ0bi1vdXRsaW5lLWRhbmdlciAuYnRue2JvcmRlci1jb2xvcjojYzIxZDAwO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItYnRuLWRhbmdlci1vdXRsaW5lLWJvcmRlci1jb2xvciwgI2MyMWQwMCk7''@;'; + put 'put ''YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1idG4tZGFuZ2VyLW91dGxpbmUtYmctY29sb3IsIHRyYW5zcGFyZW50KTtjb2xvcjojZGIyMTAwO2NvbG9yOnZhcigtLWNsci1idG4tZGFuZ2VyLW91dGxpbmUtY29sb3IsICNkYjIxMDApfS5i''@;'; + put 'put ''dG4uYnRuLWRhbmdlci1vdXRsaW5lIGNkcy1pY29uLC5idG4uYnRuLWRhbmdlci1vdXRsaW5lIGNsci1pY29uLC5idG4uYnRuLW91dGxpbmUtZGFuZ2VyIGNkcy1pY29uLC5idG4uYnRuLW91dGxpbmUtZGFuZ2VyIGNsci1pY29uLC5idG4tZGFuZ2VyLW91dGxpbmUgLmJ0biBjZHMtaWNvbiwu''@;'; + put 'put ''YnRuLWRhbmdlci1vdXRsaW5lIC5idG4gY2xyLWljb24sLmJ0bi1vdXRsaW5lLWRhbmdlciAuYnRuIGNkcy1pY29uLC5idG4tb3V0bGluZS1kYW5nZXIgLmJ0biBjbHItaWNvbntjb2xvcjojZGIyMTAwO2NvbG9yOnZhcigtLWNsci1idG4tZGFuZ2VyLW91dGxpbmUtY29sb3IsICNkYjIxMDAp''@;'; + put 'put ''fS5idG4uYnRuLWRhbmdlci1vdXRsaW5lOnZpc2l0ZWQsLmJ0bi5idG4tb3V0bGluZS1kYW5nZXI6dmlzaXRlZCwuYnRuLWRhbmdlci1vdXRsaW5lIC5idG46dmlzaXRlZCwuYnRuLW91dGxpbmUtZGFuZ2VyIC5idG46dmlzaXRlZHtjb2xvcjojZGIyMTAwO2NvbG9yOnZhcigtLWNsci1idG4t''@;'; + put 'put ''ZGFuZ2VyLW91dGxpbmUtY29sb3IsICNkYjIxMDApfS5idG4uYnRuLWRhbmdlci1vdXRsaW5lOmhvdmVyLC5idG4uYnRuLW91dGxpbmUtZGFuZ2VyOmhvdmVyLC5idG4tZGFuZ2VyLW91dGxpbmUgLmJ0bjpob3ZlciwuYnRuLW91dGxpbmUtZGFuZ2VyIC5idG46aG92ZXJ7YmFja2dyb3VuZC1j''@;'; + put 'put ''b2xvcjojZmVkZGQ3O2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWJ0bi1kYW5nZXItb3V0bGluZS1ob3Zlci1iZy1jb2xvciwgI2ZlZGRkNyk7Y29sb3I6Izk5MTcwMDtjb2xvcjp2YXIoLS1jbHItYnRuLWRhbmdlci1vdXRsaW5lLWhvdmVyLWNvbG9yLCAjOTkxNzAwKX0uYnRuLmJ0bi1k''@;'; + put 'put ''YW5nZXItb3V0bGluZTphY3RpdmUsLmJ0bi5idG4tb3V0bGluZS1kYW5nZXI6YWN0aXZlLC5idG4tZGFuZ2VyLW91dGxpbmUgLmJ0bjphY3RpdmUsLmJ0bi1vdXRsaW5lLWRhbmdlciAuYnRuOmFjdGl2ZXtib3gtc2hhZG93OjAgLjFyZW0gI2ZjYzViYiBpbnNldDtib3gtc2hhZG93OjAgLjFy''@;'; + put 'put ''ZW0gMCAwIHZhcigtLWNsci1idG4tZGFuZ2VyLW91dGxpbmUtYm94LXNoYWRvdy1jb2xvciwgI2ZjYzViYikgaW5zZXR9LmJ0bi5idG4tZGFuZ2VyLW91dGxpbmUuZGlzYWJsZWQsLmJ0bi5idG4tZGFuZ2VyLW91dGxpbmU6ZGlzYWJsZWQsLmJ0bi5idG4tb3V0bGluZS1kYW5nZXIuZGlzYWJs''@;'; + put 'put ''ZWQsLmJ0bi5idG4tb3V0bGluZS1kYW5nZXI6ZGlzYWJsZWQsLmJ0bi1kYW5nZXItb3V0bGluZSAuYnRuLmRpc2FibGVkLC5idG4tZGFuZ2VyLW91dGxpbmUgLmJ0bjpkaXNhYmxlZCwuYnRuLW91dGxpbmUtZGFuZ2VyIC5idG4uZGlzYWJsZWQsLmJ0bi1vdXRsaW5lLWRhbmdlciAuYnRuOmRp''@;'; + put 'put ''c2FibGVke2NvbG9yOiM2NjY7Y29sb3I6dmFyKC0tY2xyLWJ0bi1kYW5nZXItb3V0bGluZS1kaXNhYmxlZC1jb2xvciwgIzY2NjY2Nik7Y3Vyc29yOm5vdC1hbGxvd2VkO29wYWNpdHk6LjQ7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1i''@;'; + put 'put ''dG4tZGFuZ2VyLW91dGxpbmUtZGlzYWJsZWQtYmctY29sb3IsIHRyYW5zcGFyZW50KTtib3JkZXItY29sb3I6IzY2Njtib3JkZXItY29sb3I6dmFyKC0tY2xyLWJ0bi1kYW5nZXItb3V0bGluZS1kaXNhYmxlZC1ib3JkZXItY29sb3IsICM2NjY2NjYpO2JveC1zaGFkb3c6bm9uZX0uYnRuLmJ0''@;'; + put 'put ''bi1saW5rLC5idG4tbGluayAuYnRue2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudDtib3JkZXItY29sb3I6dmFyKC0tY2xyLWJ0bi1saW5rLWJvcmRlci1jb2xvciwgdHJhbnNwYXJlbnQpO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItYnRu''@;'; + put 'put ''LWxpbmstYmctY29sb3IsIHRyYW5zcGFyZW50KTtjb2xvcjojMDA3MmEzO2NvbG9yOnZhcigtLWNsci1idG4tbGluay1jb2xvciwgIzAwNzJhMyl9LmJ0bi5idG4tbGluayBjZHMtaWNvbiwuYnRuLmJ0bi1saW5rIGNsci1pY29uLC5idG4tbGluayAuYnRuIGNkcy1pY29uLC5idG4tbGluayAu''@;'; + put 'put ''YnRuIGNsci1pY29ue2NvbG9yOiMwMDcyYTM7Y29sb3I6dmFyKC0tY2xyLWJ0bi1saW5rLWNvbG9yLCAjMDA3MmEzKX0uYnRuLmJ0bi1saW5rOnZpc2l0ZWQsLmJ0bi1saW5rIC5idG46dmlzaXRlZHtjb2xvcjojMDA3MmEzO2NvbG9yOnZhcigtLWNsci1idG4tbGluay1jb2xvciwgIzAwNzJh''@;'; + put 'put ''Myl9LmJ0bi5idG4tbGluazpob3ZlciwuYnRuLWxpbmsgLmJ0bjpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWJ0bi1saW5rLWhvdmVyLWJnLWNvbG9yLCB0cmFuc3BhcmVudCk7Y29sb3I6IzAwNTY3YTtjb2xvcjp2YXIoLS1j''@;'; + put 'put ''bHItYnRuLWxpbmstaG92ZXItY29sb3IsICMwMDU2N2EpfS5idG4uYnRuLWxpbms6YWN0aXZlLC5idG4tbGluayAuYnRuOmFjdGl2ZXtib3gtc2hhZG93Om5vbmV9LmJ0bi5idG4tbGluay5kaXNhYmxlZCwuYnRuLmJ0bi1saW5rOmRpc2FibGVkLC5idG4tbGluayAuYnRuLmRpc2FibGVkLC5i''@;'; + put 'put ''dG4tbGluayAuYnRuOmRpc2FibGVke2NvbG9yOiM2NjY7Y29sb3I6dmFyKC0tY2xyLWJ0bi1saW5rLWRpc2FibGVkLWNvbG9yLCAjNjY2NjY2KTtjdXJzb3I6bm90LWFsbG93ZWQ7b3BhY2l0eTouNDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2JhY2tncm91bmQtY29sb3I6dmFyKC0t''@;'; + put 'put ''Y2xyLWJ0bi1saW5rLWRpc2FibGVkLWJnLWNvbG9yLCB0cmFuc3BhcmVudCk7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50O2JvcmRlci1jb2xvcjp2YXIoLS1jbHItYnRuLWxpbmstZGlzYWJsZWQtYm9yZGVyLWNvbG9yLCB0cmFuc3BhcmVudCk7Ym94LXNoYWRvdzpub25lfS5idG4uYnRuLWlu''@;'; + put 'put ''dmVyc2UsLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuLC5idG4taW52ZXJzZSAuYnRue2JvcmRlci1jb2xvcjojZmZmO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItYnRuLWludmVyc2UtYm9yZGVyLWNvbG9yLCB3aGl0ZSk7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtiYWNr''@;'; + put 'put ''Z3JvdW5kLWNvbG9yOnZhcigtLWNsci1idG4taW52ZXJzZS1iZy1jb2xvciwgdHJhbnNwYXJlbnQpO2NvbG9yOiNmZmY7Y29sb3I6dmFyKC0tY2xyLWJ0bi1pbnZlcnNlLWNvbG9yLCB3aGl0ZSl9LmJ0bi5idG4taW52ZXJzZSBjZHMtaWNvbiwuYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pdGVt''@;'; + put 'put ''IC5idG4gY2RzLWljb24sLmJ0bi5idG4taW52ZXJzZSBjbHItaWNvbiwuYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pdGVtIC5idG4gY2xyLWljb24sLmJ0bi1pbnZlcnNlIC5idG4gY2RzLWljb24sLmJ0bi1pbnZlcnNlIC5idG4gY2xyLWljb257Y29sb3I6I2ZmZjtjb2xvcjp2YXIoLS1jbHIt''@;'; + put 'put ''YnRuLWludmVyc2UtY29sb3IsIHdoaXRlKX0uYnRuLmJ0bi1pbnZlcnNlOnZpc2l0ZWQsLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuOnZpc2l0ZWQsLmJ0bi1pbnZlcnNlIC5idG46dmlzaXRlZHtjb2xvcjojZmZmO2NvbG9yOnZhcigtLWNsci1idG4taW52ZXJzZS1jb2xvciwg''@;'; + put 'put ''d2hpdGUpfS5idG4uYnRuLWludmVyc2U6aG92ZXIsLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuOmhvdmVyLC5idG4taW52ZXJzZSAuYnRuOmhvdmVye2JhY2tncm91bmQtY29sb3I6I2ZmZmZmZjI2O2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWJ0bi1pbnZlcnNlLWhvdmVy''@;'; + put 'put ''LWJnLWNvbG9yLCByZ2JhKDI1NSwgMjU1LCAyNTUsIC4xNSkpO2NvbG9yOiNmZmY7Y29sb3I6dmFyKC0tY2xyLWJ0bi1pbnZlcnNlLWhvdmVyLWNvbG9yLCB3aGl0ZSl9LmJ0bi5idG4taW52ZXJzZTphY3RpdmUsLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuOmFjdGl2ZSwuYnRu''@;'; + put 'put ''LWludmVyc2UgLmJ0bjphY3RpdmV7Ym94LXNoYWRvdzowIC4xcmVtICMwMDAwMDA0MCBpbnNldDtib3gtc2hhZG93OjAgLjFyZW0gMCAwIHZhcigtLWNsci1idG4taW52ZXJzZS1ib3gtc2hhZG93LWNvbG9yLCByZ2JhKDAsIDAsIDAsIC4yNSkpIGluc2V0fS5idG4uYnRuLWludmVyc2UuZGlz''@;'; + put 'put ''YWJsZWQsLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuLmRpc2FibGVkLC5idG4uYnRuLWludmVyc2U6ZGlzYWJsZWQsLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuOmRpc2FibGVkLC5idG4taW52ZXJzZSAuYnRuLmRpc2FibGVkLC5idG4taW52ZXJzZSAuYnRuOmRp''@;'; + put 'put ''c2FibGVke2NvbG9yOiNmZmY7Y29sb3I6dmFyKC0tY2xyLWJ0bi1pbnZlcnNlLWRpc2FibGVkLWNvbG9yLCB3aGl0ZSk7Y3Vyc29yOm5vdC1hbGxvd2VkO29wYWNpdHk6LjQ7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1idG4taW52ZXJz''@;'; + put 'put ''ZS1kaXNhYmxlZC1iZy1jb2xvciwgdHJhbnNwYXJlbnQpO2JvcmRlci1jb2xvcjojZmZmO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItYnRuLWludmVyc2UtZGlzYWJsZWQtYm9yZGVyLWNvbG9yLCB3aGl0ZSk7Ym94LXNoYWRvdzpub25lfS5idG4uYnRuLXNtLC5hbGVydC1hcHAtbGV2ZWwgLmFs''@;'; + put 'put ''ZXJ0LWl0ZW0gLmJ0biwuYnRuLXNtIC5idG57bGluZS1oZWlnaHQ6MS4xNXJlbTtsaW5lLWhlaWdodDp2YXIoLS1jbHItYnRuLWFwcGVhcmFuY2Utc3RhbmRhcmQtbGluZS1oZWlnaHQsIDEuMTVyZW0pO2xldHRlci1zcGFjaW5nOi4wNzNlbTtmb250LXNpemU6LjU1cmVtO2ZvbnQtc2l6ZTp2''@;'; + put 'put ''YXIoLS1jbHItYnRuLWFwcGVhcmFuY2Utc3RhbmRhcmQtZm9udC1zaXplLCAuNTVyZW0pO2ZvbnQtd2VpZ2h0OjUwMDtmb250LXdlaWdodDp2YXIoLS1jbHItYnRuLWFwcGVhcmFuY2Utc3RhbmRhcmQtZm9udC13ZWlnaHQsIDUwMCk7aGVpZ2h0OjEuMnJlbTtoZWlnaHQ6dmFyKC0tY2xyLWJ0''@;'; + put 'put ''bi1hcHBlYXJhbmNlLXN0YW5kYXJkLWhlaWdodCwgMS4ycmVtKTtwYWRkaW5nOjAgLjZyZW07cGFkZGluZzp2YXIoLS1jbHItYnRuLWFwcGVhcmFuY2Utc3RhbmRhcmQtcGFkZGluZywgMCAuNnJlbSl9LmJ0bi1ibG9ja3tkaXNwbGF5OmJsb2NrO3dpZHRoOjEwMCU7bWF4LXdpZHRoOjEwMCV9''@;'; + put 'put ''LmJ0bnttYXJnaW4tdG9wOi4zcmVtO21hcmdpbi10b3A6dmFyKC0tY2xyLWJ0bi12ZXJ0aWNhbC1tYXJnaW4sIC4zcmVtKTttYXJnaW4tYm90dG9tOi4zcmVtO21hcmdpbi1ib3R0b206dmFyKC0tY2xyLWJ0bi12ZXJ0aWNhbC1tYXJnaW4sIC4zcmVtKTttYXJnaW4tcmlnaHQ6LjZyZW07bWFy''@;'; + put 'put ''Z2luLXJpZ2h0OnZhcigtLWNsci1idG4taG9yaXpvbnRhbC1tYXJnaW4sIC42cmVtKTttYXJnaW4tbGVmdDowfS5idG4uYnRuLWxpbmt7bWFyZ2luLXJpZ2h0OjB9LmJ0bi5idG4tbGluay5idG4taW52ZXJzZSwuYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pdGVtIC5idG4uYnRuLWxpbmt7Ym9y''@;'; + put 'put ''ZGVyLWNvbG9yOnRyYW5zcGFyZW50fS5idG4tc206bm90KC5idG4tbGluaykgY2xyLWljb24sLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuOm5vdCguYnRuLWxpbmspIGNsci1pY29ue3dpZHRoOi42cmVtO3dpZHRoOnZhcigtLWNsci1idG4tYXBwZWFyYW5jZS1zdGFuZGFyZC1p''@;'; + put 'put ''Y29uLXNpemUsIC42cmVtKTtoZWlnaHQ6LjZyZW07aGVpZ2h0OnZhcigtLWNsci1idG4tYXBwZWFyYW5jZS1zdGFuZGFyZC1pY29uLXNpemUsIC42cmVtKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwtLjA1cmVtLDApfS5idG4tc206bm90KC5idG4tbGluaykgY2RzLWljb24sLmFsZXJ0LWFw''@;'; + put 'put ''cC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuOm5vdCguYnRuLWxpbmspIGNkcy1pY29ue3dpZHRoOi42cmVtO3dpZHRoOnZhcigtLWNsci1idG4tYXBwZWFyYW5jZS1zdGFuZGFyZC1pY29uLXNpemUsIC42cmVtKTtoZWlnaHQ6LjZyZW07aGVpZ2h0OnZhcigtLWNsci1idG4tYXBwZWFyYW5jZS1z''@;'; + put 'put ''dGFuZGFyZC1pY29uLXNpemUsIC42cmVtKTttYXJnaW4tdG9wOi0uMXJlbX0uYnRuLWljb257bWluLXdpZHRoOjB9LmJ0bi5kaXNhYmxlZCBjZHMtaWNvbiwuYnRuLmRpc2FibGVkIGNsci1pY29uLC5idG46ZGlzYWJsZWQgY2RzLWljb24sLmJ0bjpkaXNhYmxlZCBjbHItaWNvbntjb2xvcjoj''@;'; + put 'put ''Y2NjO2NvbG9yOnZhcigtLWNsci1idG4taWNvbi1kaXNhYmxlZC1jb2xvciwgI2NjY2NjYyl9LmJ0bi1ncm91cC5idG4tcHJpbWFyeSAuZHJvcGRvd24tdG9nZ2xlLC5idG4tZ3JvdXAuYnRuLXN1Y2Nlc3MgLmRyb3Bkb3duLXRvZ2dsZSwuYnRuLWdyb3VwLmJ0bi13YXJuaW5nIC5kcm9wZG93''@;'; + put 'put ''bi10b2dnbGUsLmJ0bi1ncm91cC5idG4tZGFuZ2VyIC5kcm9wZG93bi10b2dnbGV7Ym9yZGVyLWNvbG9yOiMwMDcyYTM7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1idG4tcHJpbWFyeS1ib3JkZXItY29sb3IsICMwMDcyYTMpO2JhY2tncm91bmQtY29sb3I6IzAwNzJhMztiYWNrZ3JvdW5kLWNv''@;'; + put 'put ''bG9yOnZhcigtLWNsci1idG4tcHJpbWFyeS1iZy1jb2xvciwgIzAwNzJhMyk7Y29sb3I6I2ZmZjtjb2xvcjp2YXIoLS1jbHItYnRuLXByaW1hcnktY29sb3IsIHdoaXRlKX0uYnRuLWdyb3VwLmJ0bi1wcmltYXJ5IC5kcm9wZG93bi10b2dnbGUgY2RzLWljb24sLmJ0bi1ncm91cC5idG4tcHJp''@;'; + put 'put ''bWFyeSAuZHJvcGRvd24tdG9nZ2xlIGNsci1pY29uLC5idG4tZ3JvdXAuYnRuLXN1Y2Nlc3MgLmRyb3Bkb3duLXRvZ2dsZSBjZHMtaWNvbiwuYnRuLWdyb3VwLmJ0bi1zdWNjZXNzIC5kcm9wZG93bi10b2dnbGUgY2xyLWljb24sLmJ0bi1ncm91cC5idG4td2FybmluZyAuZHJvcGRvd24tdG9n''@;'; + put 'put ''Z2xlIGNkcy1pY29uLC5idG4tZ3JvdXAuYnRuLXdhcm5pbmcgLmRyb3Bkb3duLXRvZ2dsZSBjbHItaWNvbiwuYnRuLWdyb3VwLmJ0bi1kYW5nZXIgLmRyb3Bkb3duLXRvZ2dsZSBjZHMtaWNvbiwuYnRuLWdyb3VwLmJ0bi1kYW5nZXIgLmRyb3Bkb3duLXRvZ2dsZSBjbHItaWNvbntjb2xvcjoj''@;'; + put 'put ''ZmZmO2NvbG9yOnZhcigtLWNsci1idG4tcHJpbWFyeS1jb2xvciwgd2hpdGUpfS5idG4tZ3JvdXAuYnRuLXByaW1hcnkgLmRyb3Bkb3duLXRvZ2dsZTp2aXNpdGVkLC5idG4tZ3JvdXAuYnRuLXN1Y2Nlc3MgLmRyb3Bkb3duLXRvZ2dsZTp2aXNpdGVkLC5idG4tZ3JvdXAuYnRuLXdhcm5pbmcg''@;'; + put 'put ''LmRyb3Bkb3duLXRvZ2dsZTp2aXNpdGVkLC5idG4tZ3JvdXAuYnRuLWRhbmdlciAuZHJvcGRvd24tdG9nZ2xlOnZpc2l0ZWR7Y29sb3I6I2ZmZjtjb2xvcjp2YXIoLS1jbHItYnRuLXByaW1hcnktY29sb3IsIHdoaXRlKX0uYnRuLWdyb3VwLmJ0bi1wcmltYXJ5IC5kcm9wZG93bi10b2dnbGU6''@;'; + put 'put ''aG92ZXIsLmJ0bi1ncm91cC5idG4tc3VjY2VzcyAuZHJvcGRvd24tdG9nZ2xlOmhvdmVyLC5idG4tZ3JvdXAuYnRuLXdhcm5pbmcgLmRyb3Bkb3duLXRvZ2dsZTpob3ZlciwuYnRuLWdyb3VwLmJ0bi1kYW5nZXIgLmRyb3Bkb3duLXRvZ2dsZTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiMwMDU2''@;'; + put 'put ''N2E7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItYnRuLXByaW1hcnktaG92ZXItYmctY29sb3IsICMwMDU2N2EpO2NvbG9yOiNlM2Y1ZmM7Y29sb3I6dmFyKC0tY2xyLWJ0bi1wcmltYXJ5LWhvdmVyLWNvbG9yLCAjZTNmNWZjKX0uYnRuLWdyb3VwLmJ0bi1wcmltYXJ5IC5kcm9wZG93bi10''@;'; + put 'put ''b2dnbGU6YWN0aXZlLC5idG4tZ3JvdXAuYnRuLXN1Y2Nlc3MgLmRyb3Bkb3duLXRvZ2dsZTphY3RpdmUsLmJ0bi1ncm91cC5idG4td2FybmluZyAuZHJvcGRvd24tdG9nZ2xlOmFjdGl2ZSwuYnRuLWdyb3VwLmJ0bi1kYW5nZXIgLmRyb3Bkb3duLXRvZ2dsZTphY3RpdmV7Ym94LXNoYWRvdzow''@;'; + put 'put ''IC4xcmVtICMxNzliZDMgaW5zZXQ7Ym94LXNoYWRvdzowIC4xcmVtIDAgMCB2YXIoLS1jbHItYnRuLXByaW1hcnktYm94LXNoYWRvdy1jb2xvciwgIzE3OWJkMykgaW5zZXR9LmJ0bi1ncm91cC5idG4tcHJpbWFyeSAuZHJvcGRvd24tdG9nZ2xlLmRpc2FibGVkLC5idG4tZ3JvdXAuYnRuLXBy''@;'; + put 'put ''aW1hcnkgLmRyb3Bkb3duLXRvZ2dsZTpkaXNhYmxlZCwuYnRuLWdyb3VwLmJ0bi1zdWNjZXNzIC5kcm9wZG93bi10b2dnbGUuZGlzYWJsZWQsLmJ0bi1ncm91cC5idG4tc3VjY2VzcyAuZHJvcGRvd24tdG9nZ2xlOmRpc2FibGVkLC5idG4tZ3JvdXAuYnRuLXdhcm5pbmcgLmRyb3Bkb3duLXRv''@;'; + put 'put ''Z2dsZS5kaXNhYmxlZCwuYnRuLWdyb3VwLmJ0bi13YXJuaW5nIC5kcm9wZG93bi10b2dnbGU6ZGlzYWJsZWQsLmJ0bi1ncm91cC5idG4tZGFuZ2VyIC5kcm9wZG93bi10b2dnbGUuZGlzYWJsZWQsLmJ0bi1ncm91cC5idG4tZGFuZ2VyIC5kcm9wZG93bi10b2dnbGU6ZGlzYWJsZWR7Y29sb3I6''@;'; + put 'put ''IzY2Njtjb2xvcjp2YXIoLS1jbHItYnRuLXByaW1hcnktZGlzYWJsZWQtY29sb3IsICM2NjY2NjYpO2N1cnNvcjpub3QtYWxsb3dlZDtvcGFjaXR5Oi40O2JhY2tncm91bmQtY29sb3I6I2NjYztiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1idG4tcHJpbWFyeS1kaXNhYmxlZC1iZy1jb2xv''@;'; + put 'put ''ciwgI2NjY2NjYyk7Ym9yZGVyLWNvbG9yOiNjY2M7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1idG4tcHJpbWFyeS1kaXNhYmxlZC1ib3JkZXItY29sb3IsICNjY2NjY2MpO2JveC1zaGFkb3c6bm9uZX0uYnRuLWdyb3VwLmJ0bi1kYW5nZXIgOmRpc2FibGVke2JvcmRlci1jb2xvcjojY2NjO2Jv''@;'; + put 'put ''cmRlci1jb2xvcjp2YXIoLS0tLWNsci1jb2xvci1uZXV0cmFsLTQwMCwgI2NjY2NjYyl9LmJ0bi1ncm91cC5idG4tbGluayAuZHJvcGRvd24tdG9nZ2xle2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudDtib3JkZXItY29sb3I6dmFyKC0tY2xyLWJ0bi1saW5rLWJvcmRlci1jb2xvciwgdHJhbnNw''@;'; + put 'put ''YXJlbnQpO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItYnRuLWxpbmstYmctY29sb3IsIHRyYW5zcGFyZW50KTtjb2xvcjojMDA3MmEzO2NvbG9yOnZhcigtLWNsci1idG4tbGluay1jb2xvciwgIzAwNzJhMyl9LmJ0bi1ncm91cC5idG4t''@;'; + put 'put ''bGluayAuZHJvcGRvd24tdG9nZ2xlIGNkcy1pY29uLC5idG4tZ3JvdXAuYnRuLWxpbmsgLmRyb3Bkb3duLXRvZ2dsZSBjbHItaWNvbntjb2xvcjojMDA3MmEzO2NvbG9yOnZhcigtLWNsci1idG4tbGluay1jb2xvciwgIzAwNzJhMyl9LmJ0bi1ncm91cC5idG4tbGluayAuZHJvcGRvd24tdG9n''@;'; + put 'put ''Z2xlOnZpc2l0ZWR7Y29sb3I6IzAwNzJhMztjb2xvcjp2YXIoLS1jbHItYnRuLWxpbmstY29sb3IsICMwMDcyYTMpfS5idG4tZ3JvdXAuYnRuLWxpbmsgLmRyb3Bkb3duLXRvZ2dsZTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xy''@;'; + put 'put ''LWJ0bi1saW5rLWhvdmVyLWJnLWNvbG9yLCB0cmFuc3BhcmVudCk7Y29sb3I6IzAwNTY3YTtjb2xvcjp2YXIoLS1jbHItYnRuLWxpbmstaG92ZXItY29sb3IsICMwMDU2N2EpfS5idG4tZ3JvdXAuYnRuLWxpbmsgLmRyb3Bkb3duLXRvZ2dsZTphY3RpdmV7Ym94LXNoYWRvdzpub25lfS5idG4t''@;'; + put 'put ''Z3JvdXAuYnRuLWxpbmsgLmRyb3Bkb3duLXRvZ2dsZS5kaXNhYmxlZCwuYnRuLWdyb3VwLmJ0bi1saW5rIC5kcm9wZG93bi10b2dnbGU6ZGlzYWJsZWR7Y29sb3I6IzY2Njtjb2xvcjp2YXIoLS1jbHItYnRuLWxpbmstZGlzYWJsZWQtY29sb3IsICM2NjY2NjYpO2N1cnNvcjpub3QtYWxsb3dl''@;'; + put 'put ''ZDtvcGFjaXR5Oi40O2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItYnRuLWxpbmstZGlzYWJsZWQtYmctY29sb3IsIHRyYW5zcGFyZW50KTtib3JkZXItY29sb3I6dHJhbnNwYXJlbnQ7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1idG4tbGlu''@;'; + put 'put ''ay1kaXNhYmxlZC1ib3JkZXItY29sb3IsIHRyYW5zcGFyZW50KTtib3gtc2hhZG93Om5vbmV9LmJ0bi1ncm91cC5idG4tc20gLmJ0bi1ncm91cC1vdmVyZmxvdz4uZHJvcGRvd24tdG9nZ2xlLC5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW0gLmJ0bi1ncm91cC5idG4gLmJ0bi1ncm91cC1v''@;'; + put 'put ''dmVyZmxvdz4uZHJvcGRvd24tdG9nZ2xle2xpbmUtaGVpZ2h0OjEuMTVyZW07bGluZS1oZWlnaHQ6dmFyKC0tY2xyLWJ0bi1hcHBlYXJhbmNlLXN0YW5kYXJkLWxpbmUtaGVpZ2h0LCAxLjE1cmVtKTtsZXR0ZXItc3BhY2luZzouMDczZW07Zm9udC1zaXplOi41NXJlbTtmb250LXNpemU6dmFy''@;'; + put 'put ''KC0tY2xyLWJ0bi1hcHBlYXJhbmNlLXN0YW5kYXJkLWZvbnQtc2l6ZSwgLjU1cmVtKTtmb250LXdlaWdodDo1MDA7Zm9udC13ZWlnaHQ6dmFyKC0tY2xyLWJ0bi1hcHBlYXJhbmNlLXN0YW5kYXJkLWZvbnQtd2VpZ2h0LCA1MDApO2hlaWdodDoxLjJyZW07aGVpZ2h0OnZhcigtLWNsci1idG4t''@;'; + put 'put ''YXBwZWFyYW5jZS1zdGFuZGFyZC1oZWlnaHQsIDEuMnJlbSk7cGFkZGluZzowIC42cmVtO3BhZGRpbmc6dmFyKC0tY2xyLWJ0bi1hcHBlYXJhbmNlLXN0YW5kYXJkLXBhZGRpbmcsIDAgLjZyZW0pfS5jaGVja2JveC5idG4sLmNoZWNrYm94LWlubGluZS5idG4sLnJhZGlvLmJ0biwucmFkaW8t''@;'; + put 'put ''aW5saW5lLmJ0bntwYWRkaW5nOjB9LmNoZWNrYm94LmJ0biBsYWJlbCwuY2hlY2tib3gtaW5saW5lLmJ0biBsYWJlbCwucmFkaW8uYnRuIGxhYmVsLC5yYWRpby1pbmxpbmUuYnRuIGxhYmVse2Rpc3BsYXk6YmxvY2s7bGluZS1oZWlnaHQ6aW5oZXJpdDtwYWRkaW5nOjAgLjZyZW07Y3Vyc29y''@;'; + put 'put ''OnBvaW50ZXJ9LmNoZWNrYm94LmJ0biBpbnB1dFt0eXBlPWNoZWNrYm94XStsYWJlbDpiZWZvcmUsLmNoZWNrYm94LmJ0biBpbnB1dFt0eXBlPWNoZWNrYm94XStsYWJlbDphZnRlciwuY2hlY2tib3gtaW5saW5lLmJ0biBpbnB1dFt0eXBlPWNoZWNrYm94XStsYWJlbDpiZWZvcmUsLmNoZWNr''@;'; + put 'put ''Ym94LWlubGluZS5idG4gaW5wdXRbdHlwZT1jaGVja2JveF0rbGFiZWw6YWZ0ZXJ7Y29udGVudDpub25lfS5yYWRpby5idG4gaW5wdXRbdHlwZT1yYWRpb10rbGFiZWw6YmVmb3JlLC5yYWRpby5idG4gaW5wdXRbdHlwZT1yYWRpb10rbGFiZWw6YWZ0ZXIsLnJhZGlvLWlubGluZS5idG4gaW5w''@;'; + put 'put ''dXRbdHlwZT1yYWRpb10rbGFiZWw6YmVmb3JlLC5yYWRpby1pbmxpbmUuYnRuIGlucHV0W3R5cGU9cmFkaW9dK2xhYmVsOmFmdGVye2NvbnRlbnQ6bm9uZX0uY2hlY2tib3guYnRuIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWwsLmNoZWNrYm94LmJ0biBpbnB1dFt0eXBlPWNo''@;'; + put 'put ''ZWNrYm94XTpjaGVja2VkK2xhYmVsPmNsci1pY29uLC5jaGVja2JveC5idG4gaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbD5jZHMtaWNvbiwuY2hlY2tib3gtaW5saW5lLmJ0biBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsLC5jaGVja2JveC1pbmxpbmUuYnRu''@;'; + put 'put ''IGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLmNoZWNrYm94LWlubGluZS5idG4gaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbD5jZHMtaWNvbntiYWNrZ3JvdW5kLWNvbG9yOiMwMDcyYTM7Y29sb3I6I2ZmZn0uY2hlY2tib3guYnRuIGxhYmVs''@;'; + put 'put ''LC5jaGVja2JveC1pbmxpbmUuYnRuIGxhYmVse3dpZHRoOjEwMCV9LmNoZWNrYm94LmJ0bi5idG4tc2Vjb25kYXJ5IGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWwsLmNoZWNrYm94LmJ0bi5idG4tc2Vjb25kYXJ5IGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+''@;'; + put 'put ''Y2xyLWljb24sLmNoZWNrYm94LmJ0bi5idG4tc2Vjb25kYXJ5IGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLmNoZWNrYm94LmJ0bi5idG4taW5mbyBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsLC5jaGVja2JveC5idG4uYnRuLWluZm8gaW5w''@;'; + put 'put ''dXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbD5jbHItaWNvbiwuY2hlY2tib3guYnRuLmJ0bi1pbmZvIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLmNoZWNrYm94LmJ0bi5idG4tb3V0bGluZSBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xh''@;'; + put 'put ''YmVsLC5jaGVja2JveC5idG4uYnRuLW91dGxpbmUgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbD5jbHItaWNvbiwuY2hlY2tib3guYnRuLmJ0bi1vdXRsaW5lIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLmNoZWNrYm94LmJ0bi5idG4tcHJp''@;'; + put 'put ''bWFyeS1vdXRsaW5lIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWwsLmNoZWNrYm94LmJ0bi5idG4tcHJpbWFyeS1vdXRsaW5lIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLmNoZWNrYm94LmJ0bi5idG4tcHJpbWFyeS1vdXRsaW5lIGlucHV0''@;'; + put 'put ''W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLmNoZWNrYm94LmJ0bi5idG4tc2Vjb25kYXJ5LW91dGxpbmUgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbCwuY2hlY2tib3guYnRuLmJ0bi1zZWNvbmRhcnktb3V0bGluZSBpbnB1dFt0eXBlPWNoZWNrYm94''@;'; + put 'put ''XTpjaGVja2VkK2xhYmVsPmNsci1pY29uLC5jaGVja2JveC5idG4uYnRuLXNlY29uZGFyeS1vdXRsaW5lIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLmNoZWNrYm94LmJ0bi5idG4tb3V0bGluZS1wcmltYXJ5IGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNr''@;'; + put 'put ''ZWQrbGFiZWwsLmNoZWNrYm94LmJ0bi5idG4tb3V0bGluZS1wcmltYXJ5IGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLmNoZWNrYm94LmJ0bi5idG4tb3V0bGluZS1wcmltYXJ5IGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24s''@;'; + put 'put ''LmNoZWNrYm94LmJ0bi5idG4tb3V0bGluZS1zZWNvbmRhcnkgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbCwuY2hlY2tib3guYnRuLmJ0bi1vdXRsaW5lLXNlY29uZGFyeSBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsPmNsci1pY29uLC5jaGVja2JveC5idG4u''@;'; + put 'put ''YnRuLW91dGxpbmUtc2Vjb25kYXJ5IGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLmNoZWNrYm94LmJ0bi5idG4taW5mby1vdXRsaW5lIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWwsLmNoZWNrYm94LmJ0bi5idG4taW5mby1vdXRsaW5lIGlu''@;'; + put 'put ''cHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLmNoZWNrYm94LmJ0bi5idG4taW5mby1vdXRsaW5lIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLmNoZWNrYm94LmJ0bi5idG4tb3V0bGluZS1pbmZvIGlucHV0W3R5cGU9Y2hlY2ti''@;'; + put 'put ''b3hdOmNoZWNrZWQrbGFiZWwsLmNoZWNrYm94LmJ0bi5idG4tb3V0bGluZS1pbmZvIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLmNoZWNrYm94LmJ0bi5idG4tb3V0bGluZS1pbmZvIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2RzLWlj''@;'; + put 'put ''b24sLmNoZWNrYm94LWlubGluZS5idG4uYnRuLXNlY29uZGFyeSBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsLC5jaGVja2JveC1pbmxpbmUuYnRuLmJ0bi1zZWNvbmRhcnkgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbD5jbHItaWNvbiwuY2hlY2tib3gtaW5s''@;'; + put 'put ''aW5lLmJ0bi5idG4tc2Vjb25kYXJ5IGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLmNoZWNrYm94LWlubGluZS5idG4uYnRuLWluZm8gaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbCwuY2hlY2tib3gtaW5saW5lLmJ0bi5idG4taW5mbyBpbnB1''@;'; + put 'put ''dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsPmNsci1pY29uLC5jaGVja2JveC1pbmxpbmUuYnRuLmJ0bi1pbmZvIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLmNoZWNrYm94LWlubGluZS5idG4uYnRuLW91dGxpbmUgaW5wdXRbdHlwZT1jaGVja2Jv''@;'; + put 'put ''eF06Y2hlY2tlZCtsYWJlbCwuY2hlY2tib3gtaW5saW5lLmJ0bi5idG4tb3V0bGluZSBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsPmNsci1pY29uLC5jaGVja2JveC1pbmxpbmUuYnRuLmJ0bi1vdXRsaW5lIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2Rz''@;'; + put 'put ''LWljb24sLmNoZWNrYm94LWlubGluZS5idG4uYnRuLXByaW1hcnktb3V0bGluZSBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsLC5jaGVja2JveC1pbmxpbmUuYnRuLmJ0bi1wcmltYXJ5LW91dGxpbmUgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbD5jbHItaWNv''@;'; + put 'put ''biwuY2hlY2tib3gtaW5saW5lLmJ0bi5idG4tcHJpbWFyeS1vdXRsaW5lIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLmNoZWNrYm94LWlubGluZS5idG4uYnRuLXNlY29uZGFyeS1vdXRsaW5lIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWws''@;'; + put 'put ''LmNoZWNrYm94LWlubGluZS5idG4uYnRuLXNlY29uZGFyeS1vdXRsaW5lIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLmNoZWNrYm94LWlubGluZS5idG4uYnRuLXNlY29uZGFyeS1vdXRsaW5lIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+''@;'; + put 'put ''Y2RzLWljb24sLmNoZWNrYm94LWlubGluZS5idG4uYnRuLW91dGxpbmUtcHJpbWFyeSBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsLC5jaGVja2JveC1pbmxpbmUuYnRuLmJ0bi1vdXRsaW5lLXByaW1hcnkgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbD5jbHIt''@;'; + put 'put ''aWNvbiwuY2hlY2tib3gtaW5saW5lLmJ0bi5idG4tb3V0bGluZS1wcmltYXJ5IGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLmNoZWNrYm94LWlubGluZS5idG4uYnRuLW91dGxpbmUtc2Vjb25kYXJ5IGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFi''@;'; + put 'put ''ZWwsLmNoZWNrYm94LWlubGluZS5idG4uYnRuLW91dGxpbmUtc2Vjb25kYXJ5IGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLmNoZWNrYm94LWlubGluZS5idG4uYnRuLW91dGxpbmUtc2Vjb25kYXJ5IGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFi''@;'; + put 'put ''ZWw+Y2RzLWljb24sLmNoZWNrYm94LWlubGluZS5idG4uYnRuLWluZm8tb3V0bGluZSBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsLC5jaGVja2JveC1pbmxpbmUuYnRuLmJ0bi1pbmZvLW91dGxpbmUgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbD5jbHItaWNv''@;'; + put 'put ''biwuY2hlY2tib3gtaW5saW5lLmJ0bi5idG4taW5mby1vdXRsaW5lIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLmNoZWNrYm94LWlubGluZS5idG4uYnRuLW91dGxpbmUtaW5mbyBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsLC5jaGVja2Jv''@;'; + put 'put ''eC1pbmxpbmUuYnRuLmJ0bi1vdXRsaW5lLWluZm8gaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbD5jbHItaWNvbiwuY2hlY2tib3gtaW5saW5lLmJ0bi5idG4tb3V0bGluZS1pbmZvIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2RzLWljb257YmFja2dyb3Vu''@;'; + put 'put ''ZC1jb2xvcjojMDA3MmEzO2NvbG9yOiNmZmZ9LmNoZWNrYm94LmJ0bi5idG4tcHJpbWFyeSBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsLC5jaGVja2JveC5idG4uYnRuLXByaW1hcnkgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbD5jbHItaWNvbiwuY2hlY2ti''@;'; + put 'put ''b3guYnRuLmJ0bi1wcmltYXJ5IGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLmNoZWNrYm94LWlubGluZS5idG4uYnRuLXByaW1hcnkgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbCwuY2hlY2tib3gtaW5saW5lLmJ0bi5idG4tcHJpbWFyeSBp''@;'; + put 'put ''bnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsPmNsci1pY29uLC5jaGVja2JveC1pbmxpbmUuYnRuLmJ0bi1wcmltYXJ5IGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2RzLWljb257YmFja2dyb3VuZC1jb2xvcjojMDA3MmEzO2NvbG9yOiNmZmZ9LmNoZWNrYm94''@;'; + put 'put ''LmJ0bi5idG4tc3VjY2VzcyBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsLC5jaGVja2JveC5idG4uYnRuLXN1Y2Nlc3MgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbD5jbHItaWNvbiwuY2hlY2tib3guYnRuLmJ0bi1zdWNjZXNzIGlucHV0W3R5cGU9Y2hlY2ti''@;'; + put 'put ''b3hdOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLmNoZWNrYm94LWlubGluZS5idG4uYnRuLXN1Y2Nlc3MgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbCwuY2hlY2tib3gtaW5saW5lLmJ0bi5idG4tc3VjY2VzcyBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsPmNs''@;'; + put 'put ''ci1pY29uLC5jaGVja2JveC1pbmxpbmUuYnRuLmJ0bi1zdWNjZXNzIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2RzLWljb257YmFja2dyb3VuZC1jb2xvcjojMzA2YjAwO2NvbG9yOiNmZmZ9LmNoZWNrYm94LmJ0bi5idG4tZGFuZ2VyIGlucHV0W3R5cGU9Y2hlY2tib3hd''@;'; + put 'put ''OmNoZWNrZWQrbGFiZWwsLmNoZWNrYm94LmJ0bi5idG4tZGFuZ2VyIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLmNoZWNrYm94LmJ0bi5idG4tZGFuZ2VyIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLmNoZWNrYm94LWlu''@;'; + put 'put ''bGluZS5idG4uYnRuLWRhbmdlciBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsLC5jaGVja2JveC1pbmxpbmUuYnRuLmJ0bi1kYW5nZXIgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbD5jbHItaWNvbiwuY2hlY2tib3gtaW5saW5lLmJ0bi5idG4tZGFuZ2VyIGlu''@;'; + put 'put ''cHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2RzLWljb257YmFja2dyb3VuZC1jb2xvcjojYzIxZDAwO2NvbG9yOiNmZmZ9LmNoZWNrYm94LmJ0bi5idG4tbGluayBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsLC5jaGVja2JveC5idG4uYnRuLWxpbmsgaW5wdXRb''@;'; + put 'put ''dHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbD5jbHItaWNvbiwuY2hlY2tib3guYnRuLmJ0bi1saW5rIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLmNoZWNrYm94LWlubGluZS5idG4uYnRuLWxpbmsgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCts''@;'; + put 'put ''YWJlbCwuY2hlY2tib3gtaW5saW5lLmJ0bi5idG4tbGluayBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsPmNsci1pY29uLC5jaGVja2JveC1pbmxpbmUuYnRuLmJ0bi1saW5rIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2RzLWljb257YmFja2dyb3VuZC1j''@;'; + put 'put ''b2xvcjp0cmFuc3BhcmVudDtjb2xvcjojMDA1NjdhfS5jaGVja2JveC5idG4uYnRuLWludmVyc2UgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbCwuYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pdGVtIC5jaGVja2JveC5idG4gaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCts''@;'; + put 'put ''YWJlbCwuY2hlY2tib3guYnRuLmJ0bi1pbnZlcnNlIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuY2hlY2tib3guYnRuIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLmNo''@;'; + put 'put ''ZWNrYm94LmJ0bi5idG4taW52ZXJzZSBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsPmNkcy1pY29uLC5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW0gLmNoZWNrYm94LmJ0biBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsPmNkcy1pY29uLC5jaGVja2JveC1p''@;'; + put 'put ''bmxpbmUuYnRuLmJ0bi1pbnZlcnNlIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWwsLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuY2hlY2tib3gtaW5saW5lLmJ0biBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsLC5jaGVja2JveC1pbmxpbmUuYnRuLmJ0''@;'; + put 'put ''bi1pbnZlcnNlIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuY2hlY2tib3gtaW5saW5lLmJ0biBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsPmNsci1pY29uLC5jaGVja2JveC1pbmxpbmUu''@;'; + put 'put ''YnRuLmJ0bi1pbnZlcnNlIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuY2hlY2tib3gtaW5saW5lLmJ0biBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsPmNkcy1pY29ue2JhY2tncm91bmQt''@;'; + put 'put ''Y29sb3I6I2ZmZmZmZjI2O2NvbG9yOiNmZmZ9LnJhZGlvLmJ0biBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsLC5yYWRpby5idG4gaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbD5jbHItaWNvbiwucmFkaW8uYnRuIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+''@;'; + put 'put ''Y2RzLWljb24sLnJhZGlvLmJ0biBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsLC5yYWRpby5idG4gaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbD5jbHItaWNvbiwucmFkaW8uYnRuIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2RzLWljb257YmFja2dyb3Vu''@;'; + put 'put ''ZC1jb2xvcjojMDA3MmEzO2NvbG9yOiNmZmZ9LnJhZGlvLmJ0biBsYWJlbCwucmFkaW8uYnRuIGxhYmVse3dpZHRoOjEwMCV9LnJhZGlvLmJ0bi5idG4tc2Vjb25kYXJ5IGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWwsLnJhZGlvLmJ0bi5idG4tc2Vjb25kYXJ5IGlucHV0W3R5cGU9''@;'; + put 'put ''cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLnJhZGlvLmJ0bi5idG4tc2Vjb25kYXJ5IGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLnJhZGlvLmJ0bi5idG4taW5mbyBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsLC5yYWRpby5idG4uYnRuLWlu''@;'; + put 'put ''Zm8gaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbD5jbHItaWNvbiwucmFkaW8uYnRuLmJ0bi1pbmZvIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLnJhZGlvLmJ0bi5idG4tb3V0bGluZSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsLC5yYWRp''@;'; + put 'put ''by5idG4uYnRuLW91dGxpbmUgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbD5jbHItaWNvbiwucmFkaW8uYnRuLmJ0bi1vdXRsaW5lIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLnJhZGlvLmJ0bi5idG4tcHJpbWFyeS1vdXRsaW5lIGlucHV0W3R5cGU9''@;'; + put 'put ''cmFkaW9dOmNoZWNrZWQrbGFiZWwsLnJhZGlvLmJ0bi5idG4tcHJpbWFyeS1vdXRsaW5lIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLnJhZGlvLmJ0bi5idG4tcHJpbWFyeS1vdXRsaW5lIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24s''@;'; + put 'put ''LnJhZGlvLmJ0bi5idG4tc2Vjb25kYXJ5LW91dGxpbmUgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbCwucmFkaW8uYnRuLmJ0bi1zZWNvbmRhcnktb3V0bGluZSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNsci1pY29uLC5yYWRpby5idG4uYnRuLXNlY29uZGFyeS1v''@;'; + put 'put ''dXRsaW5lIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLnJhZGlvLmJ0bi5idG4tb3V0bGluZS1wcmltYXJ5IGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWwsLnJhZGlvLmJ0bi5idG4tb3V0bGluZS1wcmltYXJ5IGlucHV0W3R5cGU9cmFkaW9dOmNoZWNr''@;'; + put 'put ''ZWQrbGFiZWw+Y2xyLWljb24sLnJhZGlvLmJ0bi5idG4tb3V0bGluZS1wcmltYXJ5IGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLnJhZGlvLmJ0bi5idG4tb3V0bGluZS1zZWNvbmRhcnkgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbCwucmFkaW8uYnRu''@;'; + put 'put ''LmJ0bi1vdXRsaW5lLXNlY29uZGFyeSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNsci1pY29uLC5yYWRpby5idG4uYnRuLW91dGxpbmUtc2Vjb25kYXJ5IGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLnJhZGlvLmJ0bi5idG4taW5mby1vdXRsaW5l''@;'; + put 'put ''IGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWwsLnJhZGlvLmJ0bi5idG4taW5mby1vdXRsaW5lIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLnJhZGlvLmJ0bi5idG4taW5mby1vdXRsaW5lIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2Rz''@;'; + put 'put ''LWljb24sLnJhZGlvLmJ0bi5idG4tb3V0bGluZS1pbmZvIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWwsLnJhZGlvLmJ0bi5idG4tb3V0bGluZS1pbmZvIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLnJhZGlvLmJ0bi5idG4tb3V0bGluZS1pbmZvIGlu''@;'; + put 'put ''cHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLnJhZGlvLmJ0bi5idG4tc2Vjb25kYXJ5IGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWwsLnJhZGlvLmJ0bi5idG4tc2Vjb25kYXJ5IGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLnJh''@;'; + put 'put ''ZGlvLmJ0bi5idG4tc2Vjb25kYXJ5IGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLnJhZGlvLmJ0bi5idG4taW5mbyBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsLC5yYWRpby5idG4uYnRuLWluZm8gaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJl''@;'; + put 'put ''bD5jbHItaWNvbiwucmFkaW8uYnRuLmJ0bi1pbmZvIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLnJhZGlvLmJ0bi5idG4tb3V0bGluZSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsLC5yYWRpby5idG4uYnRuLW91dGxpbmUgaW5wdXRbdHlwZT1yYWRp''@;'; + put 'put ''b106Y2hlY2tlZCtsYWJlbD5jbHItaWNvbiwucmFkaW8uYnRuLmJ0bi1vdXRsaW5lIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLnJhZGlvLmJ0bi5idG4tcHJpbWFyeS1vdXRsaW5lIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWwsLnJhZGlvLmJ0bi5i''@;'; + put 'put ''dG4tcHJpbWFyeS1vdXRsaW5lIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLnJhZGlvLmJ0bi5idG4tcHJpbWFyeS1vdXRsaW5lIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLnJhZGlvLmJ0bi5idG4tc2Vjb25kYXJ5LW91dGxpbmUg''@;'; + put 'put ''aW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbCwucmFkaW8uYnRuLmJ0bi1zZWNvbmRhcnktb3V0bGluZSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNsci1pY29uLC5yYWRpby5idG4uYnRuLXNlY29uZGFyeS1vdXRsaW5lIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQr''@;'; + put 'put ''bGFiZWw+Y2RzLWljb24sLnJhZGlvLmJ0bi5idG4tb3V0bGluZS1wcmltYXJ5IGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWwsLnJhZGlvLmJ0bi5idG4tb3V0bGluZS1wcmltYXJ5IGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLnJhZGlvLmJ0bi5idG4t''@;'; + put 'put ''b3V0bGluZS1wcmltYXJ5IGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLnJhZGlvLmJ0bi5idG4tb3V0bGluZS1zZWNvbmRhcnkgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbCwucmFkaW8uYnRuLmJ0bi1vdXRsaW5lLXNlY29uZGFyeSBpbnB1dFt0eXBl''@;'; + put 'put ''PXJhZGlvXTpjaGVja2VkK2xhYmVsPmNsci1pY29uLC5yYWRpby5idG4uYnRuLW91dGxpbmUtc2Vjb25kYXJ5IGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLnJhZGlvLmJ0bi5idG4taW5mby1vdXRsaW5lIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWws''@;'; + put 'put ''LnJhZGlvLmJ0bi5idG4taW5mby1vdXRsaW5lIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLnJhZGlvLmJ0bi5idG4taW5mby1vdXRsaW5lIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLnJhZGlvLmJ0bi5idG4tb3V0bGluZS1pbmZv''@;'; + put 'put ''IGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWwsLnJhZGlvLmJ0bi5idG4tb3V0bGluZS1pbmZvIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLnJhZGlvLmJ0bi5idG4tb3V0bGluZS1pbmZvIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2Rz''@;'; + put 'put ''LWljb257YmFja2dyb3VuZC1jb2xvcjojMDA3MmEzO2NvbG9yOiNmZmZ9LnJhZGlvLmJ0bi5idG4tcHJpbWFyeSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsLC5yYWRpby5idG4uYnRuLXByaW1hcnkgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbD5jbHItaWNvbiwucmFk''@;'; + put 'put ''aW8uYnRuLmJ0bi1wcmltYXJ5IGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLnJhZGlvLmJ0bi5idG4tcHJpbWFyeSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsLC5yYWRpby5idG4uYnRuLXByaW1hcnkgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCts''@;'; + put 'put ''YWJlbD5jbHItaWNvbiwucmFkaW8uYnRuLmJ0bi1wcmltYXJ5IGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2RzLWljb257YmFja2dyb3VuZC1jb2xvcjojMDA3MmEzO2NvbG9yOiNmZmZ9LnJhZGlvLmJ0bi5idG4tc3VjY2VzcyBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xh''@;'; + put 'put ''YmVsLC5yYWRpby5idG4uYnRuLXN1Y2Nlc3MgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbD5jbHItaWNvbiwucmFkaW8uYnRuLmJ0bi1zdWNjZXNzIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLnJhZGlvLmJ0bi5idG4tc3VjY2VzcyBpbnB1dFt0eXBl''@;'; + put 'put ''PXJhZGlvXTpjaGVja2VkK2xhYmVsLC5yYWRpby5idG4uYnRuLXN1Y2Nlc3MgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbD5jbHItaWNvbiwucmFkaW8uYnRuLmJ0bi1zdWNjZXNzIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2RzLWljb257YmFja2dyb3VuZC1jb2xv''@;'; + put 'put ''cjojMzA2YjAwO2NvbG9yOiNmZmZ9LnJhZGlvLmJ0bi5idG4tZGFuZ2VyIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWwsLnJhZGlvLmJ0bi5idG4tZGFuZ2VyIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLnJhZGlvLmJ0bi5idG4tZGFuZ2VyIGlucHV0''@;'; + put 'put ''W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLnJhZGlvLmJ0bi5idG4tZGFuZ2VyIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWwsLnJhZGlvLmJ0bi5idG4tZGFuZ2VyIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLnJhZGlvLmJ0bi5i''@;'; + put 'put ''dG4tZGFuZ2VyIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2RzLWljb257YmFja2dyb3VuZC1jb2xvcjojYzIxZDAwO2NvbG9yOiNmZmZ9LnJhZGlvLmJ0bi5idG4tc3VjY2Vzcy1vdXRsaW5lIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWwsLnJhZGlvLmJ0bi5idG4t''@;'; + put 'put ''c3VjY2Vzcy1vdXRsaW5lIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLnJhZGlvLmJ0bi5idG4tc3VjY2Vzcy1vdXRsaW5lIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLnJhZGlvLmJ0bi5idG4tb3V0bGluZS1zdWNjZXNzIGlucHV0''@;'; + put 'put ''W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWwsLnJhZGlvLmJ0bi5idG4tb3V0bGluZS1zdWNjZXNzIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLnJhZGlvLmJ0bi5idG4tb3V0bGluZS1zdWNjZXNzIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2Rz''@;'; + put 'put ''LWljb24sLnJhZGlvLmJ0bi5idG4tc3VjY2Vzcy1vdXRsaW5lIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWwsLnJhZGlvLmJ0bi5idG4tc3VjY2Vzcy1vdXRsaW5lIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLnJhZGlvLmJ0bi5idG4tc3VjY2Vzcy1v''@;'; + put 'put ''dXRsaW5lIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLnJhZGlvLmJ0bi5idG4tb3V0bGluZS1zdWNjZXNzIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWwsLnJhZGlvLmJ0bi5idG4tb3V0bGluZS1zdWNjZXNzIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNr''@;'; + put 'put ''ZWQrbGFiZWw+Y2xyLWljb24sLnJhZGlvLmJ0bi5idG4tb3V0bGluZS1zdWNjZXNzIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2RzLWljb257YmFja2dyb3VuZC1jb2xvcjojM2M4NTAwO2NvbG9yOiNmZmZ9LnJhZGlvLmJ0bi5idG4tZGFuZ2VyLW91dGxpbmUgaW5wdXRbdHlw''@;'; + put 'put ''ZT1yYWRpb106Y2hlY2tlZCtsYWJlbCwucmFkaW8uYnRuLmJ0bi1kYW5nZXItb3V0bGluZSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNsci1pY29uLC5yYWRpby5idG4uYnRuLWRhbmdlci1vdXRsaW5lIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24s''@;'; + put 'put ''LnJhZGlvLmJ0bi5idG4tb3V0bGluZS1kYW5nZXIgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbCwucmFkaW8uYnRuLmJ0bi1vdXRsaW5lLWRhbmdlciBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNsci1pY29uLC5yYWRpby5idG4uYnRuLW91dGxpbmUtZGFuZ2VyIGlu''@;'; + put 'put ''cHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLnJhZGlvLmJ0bi5idG4tZGFuZ2VyLW91dGxpbmUgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbCwucmFkaW8uYnRuLmJ0bi1kYW5nZXItb3V0bGluZSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNs''@;'; + put 'put ''ci1pY29uLC5yYWRpby5idG4uYnRuLWRhbmdlci1vdXRsaW5lIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLnJhZGlvLmJ0bi5idG4tb3V0bGluZS1kYW5nZXIgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbCwucmFkaW8uYnRuLmJ0bi1vdXRsaW5lLWRh''@;'; + put 'put ''bmdlciBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNsci1pY29uLC5yYWRpby5idG4uYnRuLW91dGxpbmUtZGFuZ2VyIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2RzLWljb257YmFja2dyb3VuZC1jb2xvcjojYzIxZDAwO2NvbG9yOiNmZmZ9LnJhZGlvLmJ0bi5i''@;'; + put 'put ''dG4tbGluayBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsLC5yYWRpby5idG4uYnRuLWxpbmsgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbD5jbHItaWNvbiwucmFkaW8uYnRuLmJ0bi1saW5rIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLnJh''@;'; + put 'put ''ZGlvLmJ0bi5idG4tbGluayBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsLC5yYWRpby5idG4uYnRuLWxpbmsgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbD5jbHItaWNvbiwucmFkaW8uYnRuLmJ0bi1saW5rIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2Rz''@;'; + put 'put ''LWljb257YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtjb2xvcjojMDA1NjdhfS5yYWRpby5idG4uYnRuLWludmVyc2UgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbCwuYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pdGVtIC5yYWRpby5idG4gaW5wdXRbdHlwZT1yYWRpb106Y2hl''@;'; + put 'put ''Y2tlZCtsYWJlbCwucmFkaW8uYnRuLmJ0bi1pbnZlcnNlIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAucmFkaW8uYnRuIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLnJhZGlvLmJ0''@;'; + put 'put ''bi5idG4taW52ZXJzZSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNkcy1pY29uLC5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW0gLnJhZGlvLmJ0biBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNkcy1pY29uLC5yYWRpby5idG4uYnRuLWludmVyc2UgaW5wdXRb''@;'; + put 'put ''dHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbCwucmFkaW8uYnRuLmJ0bi1pbnZlcnNlIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLnJhZGlvLmJ0bi5idG4taW52ZXJzZSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNkcy1pY29ue2JhY2tncm91bmQt''@;'; + put 'put ''Y29sb3I6I2ZmZmZmZjI2O2NvbG9yOiNmZmZ9LmJ0bi1ncm91cHtkaXNwbGF5OmlubGluZS1mbGV4O21hcmdpbi1yaWdodDouNnJlbX0uYnRuLWdyb3VwIGNsci1kcm9wZG93biAuZHJvcGRvd24tdG9nZ2xle2JvcmRlci1yYWRpdXM6MH0uYnRuLWdyb3VwIGNsci1kcm9wZG93bjpsYXN0LWNo''@;'; + put 'put ''aWxkIC5kcm9wZG93bi10b2dnbGV7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6LjE1cmVtO2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOi4xNXJlbX0uYnRuLWdyb3VwIC5idG57bWFyZ2luOjA7dmVydGljYWwtYWxpZ246dG9wO292ZXJmbG93OmhpZGRlbn0uYnRuLWdyb3VwIC5idG4gbGFi''@;'; + put 'put ''ZWx7aGVpZ2h0OjEwMCV9LmJ0bi1ncm91cCAuYnRuIGlucHV0W3R5cGU9cmFkaW9dOmZvY3VzLC5idG4tZ3JvdXAgLmJ0biBpbnB1dFt0eXBlPWNoZWNrYm94XTpmb2N1c3std2Via2l0LWFwcGVhcmFuY2U6bm9uZTthcHBlYXJhbmNlOm5vbmU7b3BhY2l0eToxO3RvcDowO2hlaWdodDoxMDAl''@;'; + put 'put ''O3dpZHRoOjEwMCU7Ym94LXNoYWRvdzowIDAgLjI1cmVtICM1MWNiZWU7Ym94LXNoYWRvdzowIDAgLjI1cmVtIHZhcigtLWNsci1idG4tZ3JvdXAtZm9jdXMtb3V0bGluZSwgIzUxY2JlZSk7cGFkZGluZzouMTVyZW0gMCAuMTVyZW0gLjE1cmVtO2JvcmRlci13aWR0aDouMDVyZW07Ym9yZGVy''@;'; + put 'put ''LXN0eWxlOnNvbGlkO2JvcmRlci1jb2xvcjojNTFjYmVlO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItYnRuLWdyb3VwLWZvY3VzLW91dGxpbmUsICM1MWNiZWUpfS5idG4tZ3JvdXAgLmJ0biBpbnB1dFt0eXBlPXJhZGlvXTpmb2N1czo6LW1zLWNoZWNrLC5idG4tZ3JvdXAgLmJ0biBpbnB1dFt0''@;'; + put 'put ''eXBlPWNoZWNrYm94XTpmb2N1czo6LW1zLWNoZWNre2Rpc3BsYXk6bm9uZX0uYnRuLWdyb3VwIC5idG46bm90KDpmaXJzdC1jaGlsZCl7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czowO2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MH0uYnRuLWdyb3VwIC5idG46bm90KDpsYXN0LWNoaWxkKXti''@;'; + put 'put ''b3JkZXItdG9wLXJpZ2h0LXJhZGl1czowO2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjB9LmJ0bi1ncm91cCAudG9vbHRpcDpub3QoOmZpcnN0LWNoaWxkKSAuYnRue2JvcmRlci10b3AtbGVmdC1yYWRpdXM6MDtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjB9LmJ0bi1ncm91cCAudG9v''@;'; + put 'put ''bHRpcDpub3QoOmxhc3QtY2hpbGQpIC5idG57Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MDtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czowfS5idG4tZ3JvdXAuYnRuLXByaW1hcnkgLnRvb2x0aXA6bm90KDpsYXN0LWNoaWxkKSAuYnRuLC5idG4tZ3JvdXAuYnRuLXByaW1hcnkgLmJ0bjpu''@;'; + put 'put ''b3QoOmxhc3QtY2hpbGQpLC5idG4tZ3JvdXAuYnRuLXN1Y2Nlc3MgLnRvb2x0aXA6bm90KDpsYXN0LWNoaWxkKSAuYnRuLC5idG4tZ3JvdXAuYnRuLXN1Y2Nlc3MgLmJ0bjpub3QoOmxhc3QtY2hpbGQpLC5idG4tZ3JvdXAuYnRuLWRhbmdlciAudG9vbHRpcDpub3QoOmxhc3QtY2hpbGQpIC5i''@;'; + put 'put ''dG4sLmJ0bi1ncm91cC5idG4tZGFuZ2VyIC5idG46bm90KDpsYXN0LWNoaWxkKSwuYnRuLWdyb3VwLmJ0bi13YXJuaW5nIC50b29sdGlwOm5vdCg6bGFzdC1jaGlsZCkgLmJ0biwuYnRuLWdyb3VwLmJ0bi13YXJuaW5nIC5idG46bm90KDpsYXN0LWNoaWxkKXttYXJnaW46MDttYXJnaW4tcmln''@;'; + put 'put ''aHQ6LjA1cmVtO21hcmdpbi1yaWdodDp2YXIoLS1jbHItYnRuLWJvcmRlci13aWR0aCwgLjA1cmVtKX0uYnRuLWdyb3VwLmJ0bi1wcmltYXJ5IC5kcm9wZG93bi1tZW51IC5idG4sLmJ0bi1ncm91cC5idG4tc3VjY2VzcyAuZHJvcGRvd24tbWVudSAuYnRuLC5idG4tZ3JvdXAuYnRuLWRhbmdl''@;'; + put 'put ''ciAuZHJvcGRvd24tbWVudSAuYnRuLC5idG4tZ3JvdXAuYnRuLXdhcm5pbmcgLmRyb3Bkb3duLW1lbnUgLmJ0bnttYXJnaW46MH0uYnRuLWdyb3VwPi5idG4tZ3JvdXAtb3ZlcmZsb3d7cG9zaXRpb246cmVsYXRpdmV9LmJ0bi1ncm91cD4uYnRuLWdyb3VwLW92ZXJmbG93Omxhc3QtY2hpbGQ6''@;'; + put 'put ''bm90KDpmaXJzdC1jaGlsZCk+LmJ0bjpmaXJzdC1jaGlsZHtib3JkZXItcmFkaXVzOi4xNXJlbTtib3JkZXItcmFkaXVzOnZhcigtLWNsci1idG4tYm9yZGVyLXJhZGl1cywgLjE1cmVtKTtib3JkZXItdG9wLWxlZnQtcmFkaXVzOjA7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czowfS5idG4t''@;'; + put 'put ''Z3JvdXA+LmJ0bi1ncm91cC1vdmVyZmxvdzpsYXN0LWNoaWxkOmZpcnN0LWNoaWxkPi5idG46Zmlyc3QtY2hpbGR7Ym9yZGVyLXJhZGl1czouMTVyZW07Ym9yZGVyLXJhZGl1czp2YXIoLS1jbHItYnRuLWJvcmRlci1yYWRpdXMsIC4xNXJlbSl9LmJ0bi1ncm91cCAuYnRuKy5idG57Ym9yZGVy''@;'; + put 'put ''LWxlZnQ6bm9uZX0uYnRuLWdyb3VwIC50b29sdGlwOm5vdCg6Zmlyc3QtY2hpbGQpIC5idG57Ym9yZGVyLWxlZnQ6bm9uZX0uYnRuLWdyb3VwIC5idG4rLmJ0bi1ncm91cC1vdmVyZmxvdyAuYnRue2JvcmRlci1sZWZ0Om5vbmV9LmJ0bi1ncm91cC5idG4tbGluayAuZHJvcGRvd24tdG9nZ2xl''@;'; + put 'put ''LC5idG4tZ3JvdXAuYnRuLWljb24tbGluay5idG4tbGluayAuYnRuLC5idG4tZ3JvdXAuYnRuLWljb24gLmJ0bnttaW4td2lkdGg6MH0uYnRuLWdyb3VwIC5jbHItaWNvbi10aXRsZXtkaXNwbGF5Om5vbmU7dGV4dC10cmFuc2Zvcm06bm9uZX0uYnRuLWdyb3VwIC5kcm9wZG93bi10b2dnbGV7''@;'; + put 'put ''ZGlzcGxheTpibG9ja30uYnRuLWdyb3VwIC5kcm9wZG93bi1tZW51IGNkcy1pY29uLC5idG4tZ3JvdXAgLmRyb3Bkb3duLW1lbnUgY2xyLWljb257ZGlzcGxheTpub25lfS5idG4tZ3JvdXAgLmRyb3Bkb3duLW1lbnUgLmNsci1pY29uLXRpdGxle2Rpc3BsYXk6aW5saW5lfS5jaGVja2JveCwu''@;'; + put 'put ''cmFkaW97cG9zaXRpb246cmVsYXRpdmV9LmNoZWNrYm94IGlucHV0W3R5cGU9Y2hlY2tib3hdLC5jaGVja2JveCBpbnB1dFt0eXBlPXJhZGlvXSwucmFkaW8gaW5wdXRbdHlwZT1jaGVja2JveF0sLnJhZGlvIGlucHV0W3R5cGU9cmFkaW9de3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6''@;'; + put 'put ''MDtoZWlnaHQ6MDt3aWR0aDowO29wYWNpdHk6MH0uY2FyZC1mb290ZXIgLmNoZWNrYm94LmJ0biBsYWJlbCwuY2FyZC1mb290ZXIgLnJhZGlvLmJ0biBsYWJlbHtsaW5lLWhlaWdodDoxLjE1cmVtfS5kcm9wZG93bi1tZW51LmNsci1idXR0b24tZ3JvdXAtbWVudXt2aXNpYmlsaXR5OnZpc2li''@;'; + put 'put ''bGV9YnV0dG9uLmNsb3Nle3BhZGRpbmc6MDtjdXJzb3I6cG9pbnRlcjtiYWNrZ3JvdW5kOjAgMDtib3JkZXI6MDstd2Via2l0LWFwcGVhcmFuY2U6bm9uZX0uY2xvc2V7ZmxvYXQ6cmlnaHQ7Zm9udC1zaXplOjEuOHJlbTt0cmFuc2l0aW9uOmNvbG9yIGxpbmVhciAuMnM7Zm9udC13ZWlnaHQ6''@;'; + put 'put ''MjAwO3RleHQtc2hhZG93Om5vbmU7bGluZS1oZWlnaHQ6aW5oZXJpdDtjb2xvcjojOGM4YzhjO2NvbG9yOnZhcigtLWNsci1jbG9zZS1jb2xvci0tbm9ybWFsLCAjOGM4YzhjKX0uY2xvc2UgY2RzLWljb24sLmNsb3NlIGNsci1pY29ue2ZpbGw6IzhjOGM4YztmaWxsOnZhcigtLWNsci1jbG9z''@;'; + put 'put ''ZS1jb2xvci0tbm9ybWFsLCAjOGM4YzhjKX0uY2xvc2U6Zm9jdXMsLmNsb3NlOmhvdmVyLC5jbG9zZTphY3RpdmV7b3BhY2l0eToxO2NvbG9yOiMwMDA7Y29sb3I6dmFyKC0tY2xyLWNsb3NlLWNvbG9yLS1ob3ZlciwgYmxhY2spfS5jbG9zZTpmb2N1cyBjZHMtaWNvbiwuY2xvc2U6Zm9jdXMg''@;'; + put 'put ''Y2xyLWljb24sLmNsb3NlOmhvdmVyIGNkcy1pY29uLC5jbG9zZTpob3ZlciBjbHItaWNvbiwuY2xvc2U6YWN0aXZlIGNkcy1pY29uLC5jbG9zZTphY3RpdmUgY2xyLWljb257ZmlsbDojMDAwO2ZpbGw6dmFyKC0tY2xyLWNsb3NlLWNvbG9yLS1ob3ZlciwgYmxhY2spfS5jbG9zZTpmb2N1c3tv''@;'; + put 'put ''dXRsaW5lOkhpZ2hsaWdodCBzb2xpZCAuMXJlbTtvdXRsaW5lOi13ZWJraXQtZm9jdXMtcmluZy1jb2xvciBzb2xpZCAuMXJlbTtvdXRsaW5lLW9mZnNldDouMDVyZW19OnJvb3R7LS1jbHItYWxlcnQtYWN0aW9uLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTcwMCk7LS1jbHItYWxl''@;'; + put 'put ''cnQtYWN0aW9uLWFjdGl2ZS1jb2xvcjp2YXIoLS1jbHItY29sb3Itc2Vjb25kYXJ5LWFjdGlvbi05MDApOy0tY2xyLWFsZXJ0LWNsb3NlLWljb24tY29sb3I6dmFyKC0tY2xyLWFsZXJ0LWFjdGlvbi1jb2xvcik7LS1jbHItYWxlcnQtY2xvc2UtaWNvbi1ob3Zlci1jb2xvcjp2YXIoLS1jbHIt''@;'; + put 'put ''YWxlcnQtYWN0aW9uLWFjdGl2ZS1jb2xvcik7LS1jbHItYWxlcnQtY2xvc2UtaWNvbi1vcGFjaXR5OjE7LS1jbHItYWxlcnQtY2xvc2UtaWNvbi1ob3Zlci1vcGFjaXR5OjE7LS1jbHItYXBwLWxldmVsLWFsZXJ0LWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTApOy0tY2xyLWFwcC1h''@;'; + put 'put ''bGVydC1jbG9zZS1pY29uLWNvbG9yOnZhcigtLWNsci1hcHAtbGV2ZWwtYWxlcnQtY29sb3IpOy0tY2xyLWFwcC1hbGVydC1jbG9zZS1pY29uLW9wYWNpdHk6Ljg7LS1jbHItYXBwLWFsZXJ0LWNsb3NlLWljb24taG92ZXItb3BhY2l0eToxOy0tY2xyLWFsZXJ0LWJvcmRlcnJhZGl1czp2YXIo''@;'; + put 'put ''LS1jbHItZ2xvYmFsLWJvcmRlcnJhZGl1cyk7LS1jbHItYWxlcnQtaW5mby1iZy1jb2xvcjp2YXIoLS1jbHItY29sb3ItYWN0aW9uLTUwKTstLWNsci1hbGVydC1pbmZvLWZvbnQtY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNzAwKTstLWNsci1hbGVydC1pbmZvLWJvcmRlci1jb2xv''@;'; + put 'put ''cjp2YXIoLS1jbHItY29sb3ItYWN0aW9uLTgwMCk7LS1jbHItYWxlcnQtaW5mby1pY29uLWNvbG9yOnZhcigtLWNsci1jb2xvci1hY3Rpb24tODAwKTstLWNsci1hbGVydC1pbmZvLWFjdGlvbi1jb2xvcjp2YXIoLS1jbHItYWxlcnQtYWN0aW9uLWNvbG9yKTstLWNsci1hbGVydC1pbmZvLWFj''@;'; + put 'put ''dGlvbi1hY3RpdmUtY29sb3I6dmFyKC0tY2xyLWFsZXJ0LWFjdGlvbi1hY3RpdmUtY29sb3IpOy0tY2xyLWFsZXJ0LWluZm8tY2xvc2UtaWNvbi1jb2xvcjp2YXIoLS1jbHItYWxlcnQtY2xvc2UtaWNvbi1jb2xvcik7LS1jbHItYWxlcnQtaW5mby1jbG9zZS1pY29uLW9wYWNpdHk6dmFyKC0t''@;'; + put 'put ''Y2xyLWFsZXJ0LWNsb3NlLWljb24tb3BhY2l0eSk7LS1jbHItYWxlcnQtaW5mby1jbG9zZS1pY29uLWhvdmVyLWNvbG9yOnZhcigtLWNsci1hbGVydC1jbG9zZS1pY29uLWhvdmVyLWNvbG9yKTstLWNsci1hbGVydC1pbmZvLWNsb3NlLWljb24taG92ZXItb3BhY2l0eTp2YXIoLS1jbHItYWxl''@;'; + put 'put ''cnQtY2xvc2UtaWNvbi1ob3Zlci1vcGFjaXR5KTstLWNsci1hbGVydC1zdWNjZXNzLWJnLWNvbG9yOnZhcigtLWNsci1jb2xvci1zdWNjZXNzLTUwKTstLWNsci1hbGVydC1zdWNjZXNzLWZvbnQtY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNzAwKTstLWNsci1hbGVydC1zdWNjZXNz''@;'; + put 'put ''LWJvcmRlci1jb2xvcjp2YXIoLS1jbHItY29sb3Itc3VjY2Vzcy04MDApOy0tY2xyLWFsZXJ0LXN1Y2Nlc3MtaWNvbi1jb2xvcjp2YXIoLS1jbHItY29sb3Itc3VjY2Vzcy04MDApOy0tY2xyLWFsZXJ0LXN1Y2Nlc3MtYWN0aW9uLWNvbG9yOnZhcigtLWNsci1hbGVydC1hY3Rpb24tY29sb3Ip''@;'; + put 'put ''Oy0tY2xyLWFsZXJ0LXN1Y2Nlc3MtYWN0aW9uLWFjdGl2ZS1jb2xvcjp2YXIoLS1jbHItYWxlcnQtYWN0aW9uLWFjdGl2ZS1jb2xvcik7LS1jbHItYWxlcnQtc3VjY2Vzcy1jbG9zZS1pY29uLWNvbG9yOnZhcigtLWNsci1hbGVydC1jbG9zZS1pY29uLWNvbG9yKTstLWNsci1hbGVydC1zdWNj''@;'; + put 'put ''ZXNzLWNsb3NlLWljb24tb3BhY2l0eTp2YXIoLS1jbHItYWxlcnQtY2xvc2UtaWNvbi1vcGFjaXR5KTstLWNsci1hbGVydC1zdWNjZXNzLWNsb3NlLWljb24taG92ZXItY29sb3I6dmFyKC0tY2xyLWFsZXJ0LWNsb3NlLWljb24taG92ZXItY29sb3IpOy0tY2xyLWFsZXJ0LXN1Y2Nlc3MtY2xv''@;'; + put 'put ''c2UtaWNvbi1ob3Zlci1vcGFjaXR5OnZhcigtLWNsci1hbGVydC1jbG9zZS1pY29uLWhvdmVyLW9wYWNpdHkpOy0tY2xyLWFsZXJ0LXdhcm5pbmctYmctY29sb3I6dmFyKC0tY2xyLWNvbG9yLXdhcm5pbmctMTAwKTstLWNsci1hbGVydC13YXJuaW5nLWZvbnQtY29sb3I6dmFyKC0tY2xyLWNv''@;'; + put 'put ''bG9yLW5ldXRyYWwtOTAwKTstLWNsci1hbGVydC13YXJuaW5nLWJvcmRlci1jb2xvcjp2YXIoLS1jbHItY29sb3Itd2FybmluZy04MDApOy0tY2xyLWFsZXJ0LXdhcm5pbmctaWNvbi1jb2xvcjp2YXIoLS1jbHItY29sb3Itd2FybmluZy04MDApOy0tY2xyLWFsZXJ0LXdhcm5pbmctYWN0aW9u''@;'; + put 'put ''LWNvbG9yOnZhcigtLWNsci1hbGVydC1hY3Rpb24tY29sb3IpOy0tY2xyLWFsZXJ0LXdhcm5pbmctYWN0aW9uLWFjdGl2ZS1jb2xvcjp2YXIoLS1jbHItYWxlcnQtYWN0aW9uLWFjdGl2ZS1jb2xvcik7LS1jbHItYWxlcnQtd2FybmluZy1jbG9zZS1pY29uLWNvbG9yOnZhcigtLWNsci1hbGVy''@;'; + put 'put ''dC1jbG9zZS1pY29uLWNvbG9yKTstLWNsci1hbGVydC13YXJuaW5nLWNsb3NlLWljb24tb3BhY2l0eTp2YXIoLS1jbHItYWxlcnQtY2xvc2UtaWNvbi1vcGFjaXR5KTstLWNsci1hbGVydC13YXJuaW5nLWNsb3NlLWljb24taG92ZXItY29sb3I6dmFyKC0tY2xyLWFsZXJ0LWNsb3NlLWljb24t''@;'; + put 'put ''aG92ZXItY29sb3IpOy0tY2xyLWFsZXJ0LXdhcm5pbmctY2xvc2UtaWNvbi1ob3Zlci1vcGFjaXR5OnZhcigtLWNsci1hbGVydC1jbG9zZS1pY29uLWhvdmVyLW9wYWNpdHkpOy0tY2xyLWFsZXJ0LWRhbmdlci1iZy1jb2xvcjp2YXIoLS1jbHItY29sb3ItZGFuZ2VyLTEwMCk7LS1jbHItYWxl''@;'; + put 'put ''cnQtZGFuZ2VyLWZvbnQtY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNzAwKTstLWNsci1hbGVydC1kYW5nZXItYm9yZGVyLWNvbG9yOnZhcigtLWNsci1jb2xvci1kYW5nZXItOTAwKTstLWNsci1hbGVydC1kYW5nZXItaWNvbi1jb2xvcjp2YXIoLS1jbHItY29sb3ItZGFuZ2VyLTkw''@;'; + put 'put ''MCk7LS1jbHItYWxlcnQtZGFuZ2VyLWFjdGlvbi1jb2xvcjp2YXIoLS1jbHItYWxlcnQtYWN0aW9uLWNvbG9yKTstLWNsci1hbGVydC1kYW5nZXItYWN0aW9uLWFjdGl2ZS1jb2xvcjp2YXIoLS1jbHItYWxlcnQtYWN0aW9uLWFjdGl2ZS1jb2xvcik7LS1jbHItYWxlcnQtZGFuZ2VyLWNsb3Nl''@;'; + put 'put ''LWljb24tY29sb3I6dmFyKC0tY2xyLWFsZXJ0LWNsb3NlLWljb24tY29sb3IpOy0tY2xyLWFsZXJ0LWRhbmdlci1jbG9zZS1pY29uLW9wYWNpdHk6dmFyKC0tY2xyLWFsZXJ0LWNsb3NlLWljb24tb3BhY2l0eSk7LS1jbHItYWxlcnQtZGFuZ2VyLWNsb3NlLWljb24taG92ZXItY29sb3I6dmFy''@;'; + put 'put ''KC0tY2xyLWFsZXJ0LWNsb3NlLWljb24taG92ZXItY29sb3IpOy0tY2xyLWFsZXJ0LWRhbmdlci1jbG9zZS1pY29uLWhvdmVyLW9wYWNpdHk6dmFyKC0tY2xyLWFsZXJ0LWNsb3NlLWljb24taG92ZXItb3BhY2l0eSk7LS1jbHItYXBwLWFsZXJ0LWluZm8tYmctY29sb3I6dmFyKC0tY2xyLWNv''@;'; + put 'put ''bG9yLWFjdGlvbi02MDApOy0tY2xyLWFwcC1hbGVydC1pbmZvLWZvbnQtY29sb3I6dmFyKC0tY2xyLWFwcC1sZXZlbC1hbGVydC1jb2xvcik7LS1jbHItYXBwLWFsZXJ0LWluZm8tYm9yZGVyLWNvbG9yOm5vbmU7LS1jbHItYXBwLWFsZXJ0LWluZm8taWNvbi1jb2xvcjp2YXIoLS1jbHItYXBw''@;'; + put 'put ''LWFsZXJ0LWNsb3NlLWljb24tY29sb3IpOy0tY2xyLWFwcC1hbGVydC1pbmZvLWFjdGlvbi1jb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LWluZm8tZm9udC1jb2xvcik7LS1jbHItYXBwLWFsZXJ0LWluZm8tYWN0aW9uLWFjdGl2ZS1jb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LWluZm8tZm9u''@;'; + put 'put ''dC1jb2xvcik7LS1jbHItYXBwLWFsZXJ0LWluZm8tY2xvc2UtaWNvbi1jb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LWNsb3NlLWljb24tY29sb3IpOy0tY2xyLWFwcC1hbGVydC1pbmZvLWNsb3NlLWljb24tb3BhY2l0eTp2YXIoLS1jbHItYXBwLWFsZXJ0LWNsb3NlLWljb24tb3BhY2l0eSk7''@;'; + put 'put ''LS1jbHItYXBwLWFsZXJ0LWluZm8tY2xvc2UtaWNvbi1ob3Zlci1jb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LWNsb3NlLWljb24tY29sb3IpOy0tY2xyLWFwcC1hbGVydC1pbmZvLWNsb3NlLWljb24taG92ZXItb3BhY2l0eTp2YXIoLS1jbHItYXBwLWFsZXJ0LWNsb3NlLWljb24taG92ZXIt''@;'; + put 'put ''b3BhY2l0eSk7LS1jbHItYXBwLWFsZXJ0LXdhcm5pbmctYmctY29sb3I6aHNsKDI2LCAxMDAlLCAzOCUpOy0tY2xyLWFwcC1hbGVydC13YXJuaW5nLWJvcmRlci1jb2xvcjpub25lOy0tY2xyLWFwcC1hbGVydC13YXJuaW5nLWljb24tY29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC1jbG9zZS1p''@;'; + put 'put ''Y29uLWNvbG9yKTstLWNsci1hcHAtYWxlcnQtd2FybmluZy1mb250LWNvbG9yOnZhcigtLWNsci1hcHAtbGV2ZWwtYWxlcnQtY29sb3IpOy0tY2xyLWFwcC1hbGVydC13YXJuaW5nLWNsb3NlLWljb24tY29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC1jbG9zZS1pY29uLWNvbG9yKTstLWNsci1h''@;'; + put 'put ''cHAtYWxlcnQtd2FybmluZy1hY3Rpb24tY29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC13YXJuaW5nLWZvbnQtY29sb3IpOy0tY2xyLWFwcC1hbGVydC13YXJuaW5nLWFjdGlvbi1hY3RpdmUtY29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC13YXJuaW5nLWZvbnQtY29sb3IpOy0tY2xyLWFwcC1h''@;'; + put 'put ''bGVydC13YXJuaW5nLWNsb3NlLWljb24tb3BhY2l0eTp2YXIoLS1jbHItYXBwLWFsZXJ0LWNsb3NlLWljb24tb3BhY2l0eSk7LS1jbHItYXBwLWFsZXJ0LXdhcm5pbmctY2xvc2UtaWNvbi1ob3Zlci1jb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LWNsb3NlLWljb24tY29sb3IpOy0tY2xyLWFw''@;'; + put 'put ''cC1hbGVydC13YXJuaW5nLWNsb3NlLWljb24taG92ZXItb3BhY2l0eTp2YXIoLS1jbHItYXBwLWFsZXJ0LWNsb3NlLWljb24taG92ZXItb3BhY2l0eSk7LS1jbHItYXBwLWFsZXJ0LWRhbmdlci1iZy1jb2xvcjp2YXIoLS1jbHItY29sb3ItZGFuZ2VyLTgwMCk7LS1jbHItYXBwLWFsZXJ0LWRh''@;'; + put 'put ''bmdlci1ib3JkZXItY29sb3I6bm9uZTstLWNsci1hcHAtYWxlcnQtZGFuZ2VyLWljb24tY29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC1jbG9zZS1pY29uLWNvbG9yKTstLWNsci1hcHAtYWxlcnQtZGFuZ2VyLWZvbnQtY29sb3I6dmFyKC0tY2xyLWFwcC1sZXZlbC1hbGVydC1jb2xvcik7LS1j''@;'; + put 'put ''bHItYXBwLWFsZXJ0LWRhbmdlci1jbG9zZS1pY29uLWNvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtY2xvc2UtaWNvbi1jb2xvcik7LS1jbHItYXBwLWFsZXJ0LWRhbmdlci1hY3Rpb24tY29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC1kYW5nZXItZm9udC1jb2xvcik7LS1jbHItYXBwLWFsZXJ0''@;'; + put 'put ''LWRhbmdlci1hY3Rpb24tYWN0aXZlLWNvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtZGFuZ2VyLWZvbnQtY29sb3IpOy0tY2xyLWFwcC1hbGVydC1kYW5nZXItY2xvc2UtaWNvbi1vcGFjaXR5OnZhcigtLWNsci1hcHAtYWxlcnQtY2xvc2UtaWNvbi1vcGFjaXR5KTstLWNsci1hcHAtYWxlcnQt''@;'; + put 'put ''ZGFuZ2VyLWNsb3NlLWljb24taG92ZXItY29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC1jbG9zZS1pY29uLWNvbG9yKTstLWNsci1hcHAtYWxlcnQtZGFuZ2VyLWNsb3NlLWljb24taG92ZXItb3BhY2l0eTp2YXIoLS1jbHItYXBwLWFsZXJ0LWNsb3NlLWljb24taG92ZXItb3BhY2l0eSk7LS1j''@;'; + put 'put ''bHItYXBwLWFsZXJ0LXN1Y2Nlc3MtYm9yZGVyLWNvbG9yOm5vbmU7LS1jbHItYXBwLWFsZXJ0LXN1Y2Nlc3MtYmctY29sb3I6dmFyKC0tY2xyLWNvbG9yLXN1Y2Nlc3MtNzAwKTstLWNsci1hcHAtYWxlcnQtc3VjY2Vzcy1pY29uLWNvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtY2xvc2UtaWNv''@;'; + put 'put ''bi1jb2xvcik7LS1jbHItYXBwLWFsZXJ0LXN1Y2Nlc3MtZm9udC1jb2xvcjp2YXIoLS1jbHItYXBwLWxldmVsLWFsZXJ0LWNvbG9yKTstLWNsci1hcHAtYWxlcnQtc3VjY2Vzcy1jbG9zZS1pY29uLWNvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtY2xvc2UtaWNvbi1jb2xvcik7LS1jbHItYXBw''@;'; + put 'put ''LWFsZXJ0LXN1Y2Nlc3MtYWN0aW9uLWNvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtc3VjY2Vzcy1mb250LWNvbG9yKTstLWNsci1hcHAtYWxlcnQtc3VjY2Vzcy1hY3Rpb24tYWN0aXZlLWNvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtc3VjY2Vzcy1mb250LWNvbG9yKTstLWNsci1hcHAtYWxl''@;'; + put 'put ''cnQtc3VjY2Vzcy1jbG9zZS1pY29uLW9wYWNpdHk6dmFyKC0tY2xyLWFwcC1hbGVydC1jbG9zZS1pY29uLW9wYWNpdHkpOy0tY2xyLWFwcC1hbGVydC1zdWNjZXNzLWNsb3NlLWljb24taG92ZXItY29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC1jbG9zZS1pY29uLWNvbG9yKTstLWNsci1hcHAt''@;'; + put 'put ''YWxlcnQtc3VjY2Vzcy1jbG9zZS1pY29uLWhvdmVyLW9wYWNpdHk6dmFyKC0tY2xyLWFwcC1hbGVydC1jbG9zZS1pY29uLWhvdmVyLW9wYWNpdHkpOy0tY2xyLWFwcC1hbGVydC1wYWdlci10ZXh0LWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTAsIHdoaXRlKTstLWNsci1hcHAtYWxl''@;'; + put 'put ''cnQtaW5mby1wYWdlci1iZy1jb2xvcjp2YXIoLS1jbHItY29sb3ItYWN0aW9uLTgwMCwgIzAwNTY3YSk7LS1jbHItYXBwLWFsZXJ0LXdhcm5pbmctcGFnZXItYmctY29sb3I6dmFyKC0tY2xyLWNvbG9yLXdhcm5pbmctOTAwLCAjOGY1YTAwKTstLWNsci1hcHAtYWxlcnQtZGFuZ2VyLXBhZ2Vy''@;'; + put 'put ''LWJnLWNvbG9yOnZhcigtLWNsci1jb2xvci1kYW5nZXItOTAwLCAjOTkxNzAwKX0uYWxlcnQtaWNvbntoZWlnaHQ6MS4ycmVtO3dpZHRoOjEuMnJlbTttYXJnaW4tbGVmdDotLjE1cmVtO21hcmdpbi10b3A6LS4ycmVtfS5hbGVydC1pY29uLXdyYXBwZXJ7ZmxleDowIDAgMS4yNXJlbTthbGln''@;'; + put 'put ''bi1zZWxmOnN0YXJ0O3BhZGRpbmctdG9wOi4wNXJlbTtoZWlnaHQ6LjlyZW19LmFsZXJ0LWl0ZW17ZmxleDoxIDEgYXV0bztkaXNwbGF5OmZsZXg7ZmxleC13cmFwOm5vd3JhcDttaW4taGVpZ2h0Oi45cmVtO21hcmdpbi1ib3R0b206LjNyZW19LmFsZXJ0LWl0ZW06bGFzdC1jaGlsZHttYXJn''@;'; + put 'put ''aW4tYm90dG9tOjB9LmFsZXJ0LWl0ZW1ze2ZsZXg6MSAxIGF1dG87ZmxleC1mbG93OmNvbHVtbiBub3dyYXA7cGFkZGluZzouNXJlbSAuNTVyZW07ZGlzcGxheTpmbGV4fS5hbGVydC1pdGVtPnNwYW4sLmFsZXJ0LXRleHR7ZGlzcGxheTppbmxpbmUtYmxvY2s7ZmxleC1ncm93OjE7ZmxleC1z''@;'; + put 'put ''aHJpbms6MTtmbGV4LWJhc2lzOjk4JTttYXgtd2lkdGg6OTglO21hcmdpbi1yaWdodDouNnJlbTt0ZXh0LWFsaWduOmxlZnR9LmFsZXJ0e2ZvbnQtc2l6ZTouNjVyZW07bGV0dGVyLXNwYWNpbmc6bm9ybWFsO2xpbmUtaGVpZ2h0Oi45cmVtO3Bvc2l0aW9uOnJlbGF0aXZlO2JveC1zaXppbmc6''@;'; + put 'put ''Ym9yZGVyLWJveDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246cm93O3dpZHRoOmF1dG87Ym9yZGVyLXJhZGl1czouMTVyZW07Ym9yZGVyLXJhZGl1czp2YXIoLS1jbHItYWxlcnQtYm9yZGVycmFkaXVzLCAuMTVyZW0pO21hcmdpbi10b3A6LjNyZW07YmFja2dyb3VuZDojZTNmNWZjO2Jh''@;'; + put 'put ''Y2tncm91bmQ6dmFyKC0tY2xyLWFsZXJ0LWluZm8tYmctY29sb3IsICNlM2Y1ZmMpO2NvbG9yOiM2NjY7Y29sb3I6dmFyKC0tY2xyLWFsZXJ0LWluZm8tZm9udC1jb2xvciwgIzY2NjY2Nik7Ym9yZGVyOi4wNXJlbSBzb2xpZDtib3JkZXItY29sb3I6IzAwNTY3YTtib3JkZXItY29sb3I6dmFy''@;'; + put 'put ''KC0tY2xyLWFsZXJ0LWluZm8tYm9yZGVyLWNvbG9yLCAjMDA1NjdhKX0uYWxlcnQgLmFsZXJ0LWljb257Y29sb3I6IzAwNTY3YTtjb2xvcjp2YXIoLS1jbHItYWxlcnQtaW5mby1pY29uLWNvbG9yLCAjMDA1NjdhKX0uYWxlcnQgLmFsZXJ0LWFjdGlvbnMgLmRyb3Bkb3duIC5kcm9wZG93bi10''@;'; + put 'put ''b2dnbGV7Y29sb3I6IzY2Njtjb2xvcjp2YXIoLS1jbHItYWxlcnQtaW5mby1hY3Rpb24tY29sb3IsICM2NjY2NjYpO2JvcmRlci1jb2xvcjojNjY2O2JvcmRlci1jb2xvcjp2YXIoLS1jbHItYWxlcnQtaW5mby1hY3Rpb24tY29sb3IsICM2NjY2NjYpfS5hbGVydCAuYWxlcnQtYWN0aW9uLC5h''@;'; + put 'put ''bGVydCAuZHJvcGRvd24tdG9nZ2xle2NvbG9yOiM2NjY7Y29sb3I6dmFyKC0tY2xyLWFsZXJ0LWluZm8tYWN0aW9uLWNvbG9yLCAjNjY2NjY2KX0uYWxlcnQgLmFsZXJ0LWFjdGlvbi5idG4sLmFsZXJ0IC5kcm9wZG93bi10b2dnbGUuYnRue2JvcmRlci1jb2xvcjojNjY2O2JvcmRlci1jb2xv''@;'; + put 'put ''cjp2YXIoLS1jbHItYWxlcnQtaW5mby1hY3Rpb24tY29sb3IsICM2NjY2NjYpfS5hbGVydCAuYWxlcnQtYWN0aW9uLmJ0bjpmb2N1cywuYWxlcnQgLmFsZXJ0LWFjdGlvbi5idG46aG92ZXIsLmFsZXJ0IC5hbGVydC1hY3Rpb24uYnRuOmFjdGl2ZSwuYWxlcnQgLmRyb3Bkb3duLXRvZ2dsZS5i''@;'; + put 'put ''dG46Zm9jdXMsLmFsZXJ0IC5kcm9wZG93bi10b2dnbGUuYnRuOmhvdmVyLC5hbGVydCAuZHJvcGRvd24tdG9nZ2xlLmJ0bjphY3RpdmV7Ym9yZGVyLWNvbG9yOiM0ZjAwNzA7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1hbGVydC1pbmZvLWFjdGlvbi1hY3RpdmUtY29sb3IsICM0ZjAwNzApfS5h''@;'; + put 'put ''bGVydCAuYWxlcnQtYWN0aW9uLmJ0bjphY3RpdmUsLmFsZXJ0IC5kcm9wZG93bi10b2dnbGUuYnRuOmFjdGl2ZXtib3gtc2hhZG93OjAgLjA1cmVtICM0ZjAwNzAgaW5zZXQ7Ym94LXNoYWRvdzowIC4wNXJlbSAwIDAgdmFyKC0tY2xyLWFsZXJ0LWluZm8tYWN0aW9uLWFjdGl2ZS1jb2xvciwg''@;'; + put 'put ''IzRmMDA3MCkgaW5zZXR9LmFsZXJ0IC5hbGVydC1hY3Rpb246Zm9jdXMsLmFsZXJ0IC5hbGVydC1hY3Rpb246aG92ZXIsLmFsZXJ0IC5hbGVydC1hY3Rpb246YWN0aXZlLC5hbGVydCAuZHJvcGRvd24tdG9nZ2xlOmZvY3VzLC5hbGVydCAuZHJvcGRvd24tdG9nZ2xlOmhvdmVyLC5hbGVydCAu''@;'; + put 'put ''ZHJvcGRvd24tdG9nZ2xlOmFjdGl2ZXtjb2xvcjp2YXIoLS1jbHItYWxlcnQtaW5mby1hY3Rpb24tYWN0aXZlLWNvbG9yLCAjNGYwMDcwKTtjb2xvcjojNGYwMDcwfS5hbGVydCAuY2xvc2V7Y29sb3I6IzY2Njtjb2xvcjp2YXIoLS1jbHItYWxlcnQtaW5mby1jbG9zZS1pY29uLWNvbG9yLCAj''@;'; + put 'put ''NjY2NjY2KTtvcGFjaXR5OjE7b3BhY2l0eTp2YXIoLS1jbHItYWxlcnQtaW5mby1jbG9zZS1pY29uLW9wYWNpdHksIDEpfS5hbGVydCAuY2xvc2UgY2RzLWljb24sLmFsZXJ0IC5jbG9zZSBjbHItaWNvbntmaWxsOiM2NjY7ZmlsbDp2YXIoLS1jbHItYWxlcnQtaW5mby1jbG9zZS1pY29uLWNv''@;'; + put 'put ''bG9yLCAjNjY2NjY2KX0uYWxlcnQgLmNsb3NlOmZvY3VzLC5hbGVydCAuY2xvc2U6aG92ZXIsLmFsZXJ0IC5jbG9zZTphY3RpdmV7Y29sb3I6IzRmMDA3MDtjb2xvcjp2YXIoLS1jbHItYWxlcnQtaW5mby1jbG9zZS1pY29uLWhvdmVyLWNvbG9yLCAjNGYwMDcwKTtvcGFjaXR5OjE7b3BhY2l0''@;'; + put 'put ''eTp2YXIoLS1jbHItYWxlcnQtaW5mby1jbG9zZS1pY29uLWhvdmVyLW9wYWNpdHksIDEpfS5hbGVydC5hbGVydC1pbmZve2JhY2tncm91bmQ6I2UzZjVmYztiYWNrZ3JvdW5kOnZhcigtLWNsci1hbGVydC1pbmZvLWJnLWNvbG9yLCAjZTNmNWZjKTtjb2xvcjojNjY2O2NvbG9yOnZhcigtLWNs''@;'; + put 'put ''ci1hbGVydC1pbmZvLWZvbnQtY29sb3IsICM2NjY2NjYpO2JvcmRlcjouMDVyZW0gc29saWQ7Ym9yZGVyLWNvbG9yOiMwMDU2N2E7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1hbGVydC1pbmZvLWJvcmRlci1jb2xvciwgIzAwNTY3YSl9LmFsZXJ0LmFsZXJ0LWluZm8gLmFsZXJ0LWljb257Y29s''@;'; + put 'put ''b3I6IzAwNTY3YTtjb2xvcjp2YXIoLS1jbHItYWxlcnQtaW5mby1pY29uLWNvbG9yLCAjMDA1NjdhKX0uYWxlcnQuYWxlcnQtaW5mbyAuYWxlcnQtYWN0aW9ucyAuZHJvcGRvd24gLmRyb3Bkb3duLXRvZ2dsZXtjb2xvcjojNjY2O2NvbG9yOnZhcigtLWNsci1hbGVydC1pbmZvLWFjdGlvbi1j''@;'; + put 'put ''b2xvciwgIzY2NjY2Nik7Ym9yZGVyLWNvbG9yOiM2NjY7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1hbGVydC1pbmZvLWFjdGlvbi1jb2xvciwgIzY2NjY2Nil9LmFsZXJ0LmFsZXJ0LWluZm8gLmFsZXJ0LWFjdGlvbiwuYWxlcnQuYWxlcnQtaW5mbyAuZHJvcGRvd24tdG9nZ2xle2NvbG9yOiM2''@;'; + put 'put ''NjY7Y29sb3I6dmFyKC0tY2xyLWFsZXJ0LWluZm8tYWN0aW9uLWNvbG9yLCAjNjY2NjY2KX0uYWxlcnQuYWxlcnQtaW5mbyAuYWxlcnQtYWN0aW9uLmJ0biwuYWxlcnQuYWxlcnQtaW5mbyAuZHJvcGRvd24tdG9nZ2xlLmJ0bntib3JkZXItY29sb3I6IzY2Njtib3JkZXItY29sb3I6dmFyKC0t''@;'; + put 'put ''Y2xyLWFsZXJ0LWluZm8tYWN0aW9uLWNvbG9yLCAjNjY2NjY2KX0uYWxlcnQuYWxlcnQtaW5mbyAuYWxlcnQtYWN0aW9uLmJ0bjpmb2N1cywuYWxlcnQuYWxlcnQtaW5mbyAuYWxlcnQtYWN0aW9uLmJ0bjpob3ZlciwuYWxlcnQuYWxlcnQtaW5mbyAuYWxlcnQtYWN0aW9uLmJ0bjphY3RpdmUs''@;'; + put 'put ''LmFsZXJ0LmFsZXJ0LWluZm8gLmRyb3Bkb3duLXRvZ2dsZS5idG46Zm9jdXMsLmFsZXJ0LmFsZXJ0LWluZm8gLmRyb3Bkb3duLXRvZ2dsZS5idG46aG92ZXIsLmFsZXJ0LmFsZXJ0LWluZm8gLmRyb3Bkb3duLXRvZ2dsZS5idG46YWN0aXZle2JvcmRlci1jb2xvcjojNGYwMDcwO2JvcmRlci1j''@;'; + put 'put ''b2xvcjp2YXIoLS1jbHItYWxlcnQtaW5mby1hY3Rpb24tYWN0aXZlLWNvbG9yLCAjNGYwMDcwKX0uYWxlcnQuYWxlcnQtaW5mbyAuYWxlcnQtYWN0aW9uLmJ0bjphY3RpdmUsLmFsZXJ0LmFsZXJ0LWluZm8gLmRyb3Bkb3duLXRvZ2dsZS5idG46YWN0aXZle2JveC1zaGFkb3c6MCAuMDVyZW0g''@;'; + put 'put ''IzRmMDA3MCBpbnNldDtib3gtc2hhZG93OjAgLjA1cmVtIDAgMCB2YXIoLS1jbHItYWxlcnQtaW5mby1hY3Rpb24tYWN0aXZlLWNvbG9yLCAjNGYwMDcwKSBpbnNldH0uYWxlcnQuYWxlcnQtaW5mbyAuYWxlcnQtYWN0aW9uOmZvY3VzLC5hbGVydC5hbGVydC1pbmZvIC5hbGVydC1hY3Rpb246''@;'; + put 'put ''aG92ZXIsLmFsZXJ0LmFsZXJ0LWluZm8gLmFsZXJ0LWFjdGlvbjphY3RpdmUsLmFsZXJ0LmFsZXJ0LWluZm8gLmRyb3Bkb3duLXRvZ2dsZTpmb2N1cywuYWxlcnQuYWxlcnQtaW5mbyAuZHJvcGRvd24tdG9nZ2xlOmhvdmVyLC5hbGVydC5hbGVydC1pbmZvIC5kcm9wZG93bi10b2dnbGU6YWN0''@;'; + put 'put ''aXZle2NvbG9yOnZhcigtLWNsci1hbGVydC1pbmZvLWFjdGlvbi1hY3RpdmUtY29sb3IsICM0ZjAwNzApO2NvbG9yOiM0ZjAwNzB9LmFsZXJ0LmFsZXJ0LWluZm8gLmNsb3Nle2NvbG9yOiM2NjY7Y29sb3I6dmFyKC0tY2xyLWFsZXJ0LWluZm8tY2xvc2UtaWNvbi1jb2xvciwgIzY2NjY2Nik7''@;'; + put 'put ''b3BhY2l0eToxO29wYWNpdHk6dmFyKC0tY2xyLWFsZXJ0LWluZm8tY2xvc2UtaWNvbi1vcGFjaXR5LCAxKX0uYWxlcnQuYWxlcnQtaW5mbyAuY2xvc2UgY2RzLWljb24sLmFsZXJ0LmFsZXJ0LWluZm8gLmNsb3NlIGNsci1pY29ue2ZpbGw6IzY2NjtmaWxsOnZhcigtLWNsci1hbGVydC1pbmZv''@;'; + put 'put ''LWNsb3NlLWljb24tY29sb3IsICM2NjY2NjYpfS5hbGVydC5hbGVydC1pbmZvIC5jbG9zZTpmb2N1cywuYWxlcnQuYWxlcnQtaW5mbyAuY2xvc2U6aG92ZXIsLmFsZXJ0LmFsZXJ0LWluZm8gLmNsb3NlOmFjdGl2ZXtjb2xvcjojNGYwMDcwO2NvbG9yOnZhcigtLWNsci1hbGVydC1pbmZvLWNs''@;'; + put 'put ''b3NlLWljb24taG92ZXItY29sb3IsICM0ZjAwNzApO29wYWNpdHk6MTtvcGFjaXR5OnZhcigtLWNsci1hbGVydC1pbmZvLWNsb3NlLWljb24taG92ZXItb3BhY2l0eSwgMSl9LmFsZXJ0LmFsZXJ0LXN1Y2Nlc3N7YmFja2dyb3VuZDojZGZmMGQwO2JhY2tncm91bmQ6dmFyKC0tY2xyLWFsZXJ0''@;'; + put 'put ''LXN1Y2Nlc3MtYmctY29sb3IsICNkZmYwZDApO2NvbG9yOiM2NjY7Y29sb3I6dmFyKC0tY2xyLWFsZXJ0LXN1Y2Nlc3MtZm9udC1jb2xvciwgIzY2NjY2Nik7Ym9yZGVyOi4wNXJlbSBzb2xpZDtib3JkZXItY29sb3I6IzMwNmIwMDtib3JkZXItY29sb3I6dmFyKC0tY2xyLWFsZXJ0LXN1Y2Nl''@;'; + put 'put ''c3MtYm9yZGVyLWNvbG9yLCAjMzA2YjAwKX0uYWxlcnQuYWxlcnQtc3VjY2VzcyAuYWxlcnQtaWNvbntjb2xvcjojMzA2YjAwO2NvbG9yOnZhcigtLWNsci1hbGVydC1zdWNjZXNzLWljb24tY29sb3IsICMzMDZiMDApfS5hbGVydC5hbGVydC1zdWNjZXNzIC5hbGVydC1hY3Rpb25zIC5kcm9w''@;'; + put 'put ''ZG93biAuZHJvcGRvd24tdG9nZ2xle2NvbG9yOiM2NjY7Y29sb3I6dmFyKC0tY2xyLWFsZXJ0LXN1Y2Nlc3MtYWN0aW9uLWNvbG9yLCAjNjY2NjY2KTtib3JkZXItY29sb3I6IzY2Njtib3JkZXItY29sb3I6dmFyKC0tY2xyLWFsZXJ0LXN1Y2Nlc3MtYWN0aW9uLWNvbG9yLCAjNjY2NjY2KX0u''@;'; + put 'put ''YWxlcnQuYWxlcnQtc3VjY2VzcyAuYWxlcnQtYWN0aW9uLC5hbGVydC5hbGVydC1zdWNjZXNzIC5kcm9wZG93bi10b2dnbGV7Y29sb3I6IzY2Njtjb2xvcjp2YXIoLS1jbHItYWxlcnQtc3VjY2Vzcy1hY3Rpb24tY29sb3IsICM2NjY2NjYpfS5hbGVydC5hbGVydC1zdWNjZXNzIC5hbGVydC1h''@;'; + put 'put ''Y3Rpb24uYnRuLC5hbGVydC5hbGVydC1zdWNjZXNzIC5kcm9wZG93bi10b2dnbGUuYnRue2JvcmRlci1jb2xvcjojNjY2O2JvcmRlci1jb2xvcjp2YXIoLS1jbHItYWxlcnQtc3VjY2Vzcy1hY3Rpb24tY29sb3IsICM2NjY2NjYpfS5hbGVydC5hbGVydC1zdWNjZXNzIC5hbGVydC1hY3Rpb24u''@;'; + put 'put ''YnRuOmZvY3VzLC5hbGVydC5hbGVydC1zdWNjZXNzIC5hbGVydC1hY3Rpb24uYnRuOmhvdmVyLC5hbGVydC5hbGVydC1zdWNjZXNzIC5hbGVydC1hY3Rpb24uYnRuOmFjdGl2ZSwuYWxlcnQuYWxlcnQtc3VjY2VzcyAuZHJvcGRvd24tdG9nZ2xlLmJ0bjpmb2N1cywuYWxlcnQuYWxlcnQtc3Vj''@;'; + put 'put ''Y2VzcyAuZHJvcGRvd24tdG9nZ2xlLmJ0bjpob3ZlciwuYWxlcnQuYWxlcnQtc3VjY2VzcyAuZHJvcGRvd24tdG9nZ2xlLmJ0bjphY3RpdmV7Ym9yZGVyLWNvbG9yOiM0ZjAwNzA7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1hbGVydC1zdWNjZXNzLWFjdGlvbi1hY3RpdmUtY29sb3IsICM0ZjAw''@;'; + put 'put ''NzApfS5hbGVydC5hbGVydC1zdWNjZXNzIC5hbGVydC1hY3Rpb24uYnRuOmFjdGl2ZSwuYWxlcnQuYWxlcnQtc3VjY2VzcyAuZHJvcGRvd24tdG9nZ2xlLmJ0bjphY3RpdmV7Ym94LXNoYWRvdzowIC4wNXJlbSAjNGYwMDcwIGluc2V0O2JveC1zaGFkb3c6MCAuMDVyZW0gMCAwIHZhcigtLWNs''@;'; + put 'put ''ci1hbGVydC1zdWNjZXNzLWFjdGlvbi1hY3RpdmUtY29sb3IsICM0ZjAwNzApIGluc2V0fS5hbGVydC5hbGVydC1zdWNjZXNzIC5hbGVydC1hY3Rpb246Zm9jdXMsLmFsZXJ0LmFsZXJ0LXN1Y2Nlc3MgLmFsZXJ0LWFjdGlvbjpob3ZlciwuYWxlcnQuYWxlcnQtc3VjY2VzcyAuYWxlcnQtYWN0''@;'; + put 'put ''aW9uOmFjdGl2ZSwuYWxlcnQuYWxlcnQtc3VjY2VzcyAuZHJvcGRvd24tdG9nZ2xlOmZvY3VzLC5hbGVydC5hbGVydC1zdWNjZXNzIC5kcm9wZG93bi10b2dnbGU6aG92ZXIsLmFsZXJ0LmFsZXJ0LXN1Y2Nlc3MgLmRyb3Bkb3duLXRvZ2dsZTphY3RpdmV7Y29sb3I6dmFyKC0tY2xyLWFsZXJ0''@;'; + put 'put ''LXN1Y2Nlc3MtYWN0aW9uLWFjdGl2ZS1jb2xvciwgIzRmMDA3MCk7Y29sb3I6IzRmMDA3MH0uYWxlcnQuYWxlcnQtc3VjY2VzcyAuY2xvc2V7Y29sb3I6IzY2Njtjb2xvcjp2YXIoLS1jbHItYWxlcnQtc3VjY2Vzcy1jbG9zZS1pY29uLWNvbG9yLCAjNjY2NjY2KTtvcGFjaXR5OjE7b3BhY2l0''@;'; + put 'put ''eTp2YXIoLS1jbHItYWxlcnQtc3VjY2Vzcy1jbG9zZS1pY29uLW9wYWNpdHksIDEpfS5hbGVydC5hbGVydC1zdWNjZXNzIC5jbG9zZSBjZHMtaWNvbiwuYWxlcnQuYWxlcnQtc3VjY2VzcyAuY2xvc2UgY2xyLWljb257ZmlsbDojNjY2O2ZpbGw6dmFyKC0tY2xyLWFsZXJ0LXN1Y2Nlc3MtY2xv''@;'; + put 'put ''c2UtaWNvbi1jb2xvciwgIzY2NjY2Nil9LmFsZXJ0LmFsZXJ0LXN1Y2Nlc3MgLmNsb3NlOmZvY3VzLC5hbGVydC5hbGVydC1zdWNjZXNzIC5jbG9zZTpob3ZlciwuYWxlcnQuYWxlcnQtc3VjY2VzcyAuY2xvc2U6YWN0aXZle2NvbG9yOiM0ZjAwNzA7Y29sb3I6dmFyKC0tY2xyLWFsZXJ0LXN1''@;'; + put 'put ''Y2Nlc3MtY2xvc2UtaWNvbi1ob3Zlci1jb2xvciwgIzRmMDA3MCk7b3BhY2l0eToxO29wYWNpdHk6dmFyKC0tY2xyLWFsZXJ0LXN1Y2Nlc3MtY2xvc2UtaWNvbi1ob3Zlci1vcGFjaXR5LCAxKX0uYWxlcnQuYWxlcnQtd2FybmluZ3tiYWNrZ3JvdW5kOiNmZmY0Yzc7YmFja2dyb3VuZDp2YXIo''@;'; + put 'put ''LS1jbHItYWxlcnQtd2FybmluZy1iZy1jb2xvciwgI2ZmZjRjNyk7Y29sb3I6IzMzMztjb2xvcjp2YXIoLS1jbHItYWxlcnQtd2FybmluZy1mb250LWNvbG9yLCAjMzMzMzMzKTtib3JkZXI6LjA1cmVtIHNvbGlkO2JvcmRlci1jb2xvcjojYWQ3NjAwO2JvcmRlci1jb2xvcjp2YXIoLS1jbHIt''@;'; + put 'put ''YWxlcnQtd2FybmluZy1ib3JkZXItY29sb3IsICNhZDc2MDApfS5hbGVydC5hbGVydC13YXJuaW5nIC5hbGVydC1pY29ue2NvbG9yOiM0NTQ1NDU7Y29sb3I6dmFyKC0tY2xyLWFsZXJ0LXdhcm5pbmctaWNvbi1jb2xvciwgIzQ1NDU0NSl9LmFsZXJ0LmFsZXJ0LXdhcm5pbmcgLmFsZXJ0LWFj''@;'; + put 'put ''dGlvbnMgLmRyb3Bkb3duIC5kcm9wZG93bi10b2dnbGV7Y29sb3I6IzY2Njtjb2xvcjp2YXIoLS1jbHItYWxlcnQtd2FybmluZy1hY3Rpb24tY29sb3IsICM2NjY2NjYpO2JvcmRlci1jb2xvcjojNjY2O2JvcmRlci1jb2xvcjp2YXIoLS1jbHItYWxlcnQtd2FybmluZy1hY3Rpb24tY29sb3Is''@;'; + put 'put ''ICM2NjY2NjYpfS5hbGVydC5hbGVydC13YXJuaW5nIC5hbGVydC1hY3Rpb24sLmFsZXJ0LmFsZXJ0LXdhcm5pbmcgLmRyb3Bkb3duLXRvZ2dsZXtjb2xvcjojNjY2O2NvbG9yOnZhcigtLWNsci1hbGVydC13YXJuaW5nLWFjdGlvbi1jb2xvciwgIzY2NjY2Nil9LmFsZXJ0LmFsZXJ0LXdhcm5p''@;'; + put 'put ''bmcgLmFsZXJ0LWFjdGlvbi5idG4sLmFsZXJ0LmFsZXJ0LXdhcm5pbmcgLmRyb3Bkb3duLXRvZ2dsZS5idG57Ym9yZGVyLWNvbG9yOiM2NjY7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1hbGVydC13YXJuaW5nLWFjdGlvbi1jb2xvciwgIzY2NjY2Nil9LmFsZXJ0LmFsZXJ0LXdhcm5pbmcgLmFs''@;'; + put 'put ''ZXJ0LWFjdGlvbi5idG46Zm9jdXMsLmFsZXJ0LmFsZXJ0LXdhcm5pbmcgLmFsZXJ0LWFjdGlvbi5idG46aG92ZXIsLmFsZXJ0LmFsZXJ0LXdhcm5pbmcgLmFsZXJ0LWFjdGlvbi5idG46YWN0aXZlLC5hbGVydC5hbGVydC13YXJuaW5nIC5kcm9wZG93bi10b2dnbGUuYnRuOmZvY3VzLC5hbGVy''@;'; + put 'put ''dC5hbGVydC13YXJuaW5nIC5kcm9wZG93bi10b2dnbGUuYnRuOmhvdmVyLC5hbGVydC5hbGVydC13YXJuaW5nIC5kcm9wZG93bi10b2dnbGUuYnRuOmFjdGl2ZXtib3JkZXItY29sb3I6IzRmMDA3MDtib3JkZXItY29sb3I6dmFyKC0tY2xyLWFsZXJ0LXdhcm5pbmctYWN0aW9uLWFjdGl2ZS1j''@;'; + put 'put ''b2xvciwgIzRmMDA3MCl9LmFsZXJ0LmFsZXJ0LXdhcm5pbmcgLmFsZXJ0LWFjdGlvbi5idG46YWN0aXZlLC5hbGVydC5hbGVydC13YXJuaW5nIC5kcm9wZG93bi10b2dnbGUuYnRuOmFjdGl2ZXtib3gtc2hhZG93OjAgLjA1cmVtICM0ZjAwNzAgaW5zZXQ7Ym94LXNoYWRvdzowIC4wNXJlbSAw''@;'; + put 'put ''IDAgdmFyKC0tY2xyLWFsZXJ0LXdhcm5pbmctYWN0aW9uLWFjdGl2ZS1jb2xvciwgIzRmMDA3MCkgaW5zZXR9LmFsZXJ0LmFsZXJ0LXdhcm5pbmcgLmFsZXJ0LWFjdGlvbjpmb2N1cywuYWxlcnQuYWxlcnQtd2FybmluZyAuYWxlcnQtYWN0aW9uOmhvdmVyLC5hbGVydC5hbGVydC13YXJuaW5n''@;'; + put 'put ''IC5hbGVydC1hY3Rpb246YWN0aXZlLC5hbGVydC5hbGVydC13YXJuaW5nIC5kcm9wZG93bi10b2dnbGU6Zm9jdXMsLmFsZXJ0LmFsZXJ0LXdhcm5pbmcgLmRyb3Bkb3duLXRvZ2dsZTpob3ZlciwuYWxlcnQuYWxlcnQtd2FybmluZyAuZHJvcGRvd24tdG9nZ2xlOmFjdGl2ZXtjb2xvcjp2YXIo''@;'; + put 'put ''LS1jbHItYWxlcnQtd2FybmluZy1hY3Rpb24tYWN0aXZlLWNvbG9yLCAjNGYwMDcwKTtjb2xvcjojNGYwMDcwfS5hbGVydC5hbGVydC13YXJuaW5nIC5jbG9zZXtjb2xvcjojNjY2O2NvbG9yOnZhcigtLWNsci1hbGVydC13YXJuaW5nLWNsb3NlLWljb24tY29sb3IsICM2NjY2NjYpO29wYWNp''@;'; + put 'put ''dHk6MTtvcGFjaXR5OnZhcigtLWNsci1hbGVydC13YXJuaW5nLWNsb3NlLWljb24tb3BhY2l0eSwgMSl9LmFsZXJ0LmFsZXJ0LXdhcm5pbmcgLmNsb3NlIGNkcy1pY29uLC5hbGVydC5hbGVydC13YXJuaW5nIC5jbG9zZSBjbHItaWNvbntmaWxsOiM2NjY7ZmlsbDp2YXIoLS1jbHItYWxlcnQt''@;'; + put 'put ''d2FybmluZy1jbG9zZS1pY29uLWNvbG9yLCAjNjY2NjY2KX0uYWxlcnQuYWxlcnQtd2FybmluZyAuY2xvc2U6Zm9jdXMsLmFsZXJ0LmFsZXJ0LXdhcm5pbmcgLmNsb3NlOmhvdmVyLC5hbGVydC5hbGVydC13YXJuaW5nIC5jbG9zZTphY3RpdmV7Y29sb3I6IzRmMDA3MDtjb2xvcjp2YXIoLS1j''@;'; + put 'put ''bHItYWxlcnQtd2FybmluZy1jbG9zZS1pY29uLWhvdmVyLWNvbG9yLCAjNGYwMDcwKTtvcGFjaXR5OjE7b3BhY2l0eTp2YXIoLS1jbHItYWxlcnQtd2FybmluZy1jbG9zZS1pY29uLWhvdmVyLW9wYWNpdHksIDEpfS5hbGVydC5hbGVydC1kYW5nZXJ7YmFja2dyb3VuZDojZmVkZGQ3O2JhY2tn''@;'; + put 'put ''cm91bmQ6dmFyKC0tY2xyLWFsZXJ0LWRhbmdlci1iZy1jb2xvciwgI2ZlZGRkNyk7Y29sb3I6IzY2Njtjb2xvcjp2YXIoLS1jbHItYWxlcnQtZGFuZ2VyLWZvbnQtY29sb3IsICM2NjY2NjYpO2JvcmRlcjouMDVyZW0gc29saWQ7Ym9yZGVyLWNvbG9yOiM5OTE3MDA7Ym9yZGVyLWNvbG9yOnZh''@;'; + put 'put ''cigtLWNsci1hbGVydC1kYW5nZXItYm9yZGVyLWNvbG9yLCAjOTkxNzAwKX0uYWxlcnQuYWxlcnQtZGFuZ2VyIC5hbGVydC1pY29ue2NvbG9yOiM5OTE3MDA7Y29sb3I6dmFyKC0tY2xyLWFsZXJ0LWRhbmdlci1pY29uLWNvbG9yLCAjOTkxNzAwKX0uYWxlcnQuYWxlcnQtZGFuZ2VyIC5hbGVy''@;'; + put 'put ''dC1hY3Rpb25zIC5kcm9wZG93biAuZHJvcGRvd24tdG9nZ2xle2NvbG9yOiM2NjY7Y29sb3I6dmFyKC0tY2xyLWFsZXJ0LWRhbmdlci1hY3Rpb24tY29sb3IsICM2NjY2NjYpO2JvcmRlci1jb2xvcjojNjY2O2JvcmRlci1jb2xvcjp2YXIoLS1jbHItYWxlcnQtZGFuZ2VyLWFjdGlvbi1jb2xv''@;'; + put 'put ''ciwgIzY2NjY2Nil9LmFsZXJ0LmFsZXJ0LWRhbmdlciAuYWxlcnQtYWN0aW9uLC5hbGVydC5hbGVydC1kYW5nZXIgLmRyb3Bkb3duLXRvZ2dsZXtjb2xvcjojNjY2O2NvbG9yOnZhcigtLWNsci1hbGVydC1kYW5nZXItYWN0aW9uLWNvbG9yLCAjNjY2NjY2KX0uYWxlcnQuYWxlcnQtZGFuZ2Vy''@;'; + put 'put ''IC5hbGVydC1hY3Rpb24uYnRuLC5hbGVydC5hbGVydC1kYW5nZXIgLmRyb3Bkb3duLXRvZ2dsZS5idG57Ym9yZGVyLWNvbG9yOiM2NjY7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1hbGVydC1kYW5nZXItYWN0aW9uLWNvbG9yLCAjNjY2NjY2KX0uYWxlcnQuYWxlcnQtZGFuZ2VyIC5hbGVydC1h''@;'; + put 'put ''Y3Rpb24uYnRuOmZvY3VzLC5hbGVydC5hbGVydC1kYW5nZXIgLmFsZXJ0LWFjdGlvbi5idG46aG92ZXIsLmFsZXJ0LmFsZXJ0LWRhbmdlciAuYWxlcnQtYWN0aW9uLmJ0bjphY3RpdmUsLmFsZXJ0LmFsZXJ0LWRhbmdlciAuZHJvcGRvd24tdG9nZ2xlLmJ0bjpmb2N1cywuYWxlcnQuYWxlcnQt''@;'; + put 'put ''ZGFuZ2VyIC5kcm9wZG93bi10b2dnbGUuYnRuOmhvdmVyLC5hbGVydC5hbGVydC1kYW5nZXIgLmRyb3Bkb3duLXRvZ2dsZS5idG46YWN0aXZle2JvcmRlci1jb2xvcjojNGYwMDcwO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItYWxlcnQtZGFuZ2VyLWFjdGlvbi1hY3RpdmUtY29sb3IsICM0ZjAw''@;'; + put 'put ''NzApfS5hbGVydC5hbGVydC1kYW5nZXIgLmFsZXJ0LWFjdGlvbi5idG46YWN0aXZlLC5hbGVydC5hbGVydC1kYW5nZXIgLmRyb3Bkb3duLXRvZ2dsZS5idG46YWN0aXZle2JveC1zaGFkb3c6MCAuMDVyZW0gIzRmMDA3MCBpbnNldDtib3gtc2hhZG93OjAgLjA1cmVtIDAgMCB2YXIoLS1jbHIt''@;'; + put 'put ''YWxlcnQtZGFuZ2VyLWFjdGlvbi1hY3RpdmUtY29sb3IsICM0ZjAwNzApIGluc2V0fS5hbGVydC5hbGVydC1kYW5nZXIgLmFsZXJ0LWFjdGlvbjpmb2N1cywuYWxlcnQuYWxlcnQtZGFuZ2VyIC5hbGVydC1hY3Rpb246aG92ZXIsLmFsZXJ0LmFsZXJ0LWRhbmdlciAuYWxlcnQtYWN0aW9uOmFj''@;'; + put 'put ''dGl2ZSwuYWxlcnQuYWxlcnQtZGFuZ2VyIC5kcm9wZG93bi10b2dnbGU6Zm9jdXMsLmFsZXJ0LmFsZXJ0LWRhbmdlciAuZHJvcGRvd24tdG9nZ2xlOmhvdmVyLC5hbGVydC5hbGVydC1kYW5nZXIgLmRyb3Bkb3duLXRvZ2dsZTphY3RpdmV7Y29sb3I6dmFyKC0tY2xyLWFsZXJ0LWRhbmdlci1h''@;'; + put 'put ''Y3Rpb24tYWN0aXZlLWNvbG9yLCAjNGYwMDcwKTtjb2xvcjojNGYwMDcwfS5hbGVydC5hbGVydC1kYW5nZXIgLmNsb3Nle2NvbG9yOiM2NjY7Y29sb3I6dmFyKC0tY2xyLWFsZXJ0LWRhbmdlci1jbG9zZS1pY29uLWNvbG9yLCAjNjY2NjY2KTtvcGFjaXR5OjE7b3BhY2l0eTp2YXIoLS1jbHIt''@;'; + put 'put ''YWxlcnQtZGFuZ2VyLWNsb3NlLWljb24tb3BhY2l0eSwgMSl9LmFsZXJ0LmFsZXJ0LWRhbmdlciAuY2xvc2UgY2RzLWljb24sLmFsZXJ0LmFsZXJ0LWRhbmdlciAuY2xvc2UgY2xyLWljb257ZmlsbDojNjY2O2ZpbGw6dmFyKC0tY2xyLWFsZXJ0LWRhbmdlci1jbG9zZS1pY29uLWNvbG9yLCAj''@;'; + put 'put ''NjY2NjY2KX0uYWxlcnQuYWxlcnQtZGFuZ2VyIC5jbG9zZTpmb2N1cywuYWxlcnQuYWxlcnQtZGFuZ2VyIC5jbG9zZTpob3ZlciwuYWxlcnQuYWxlcnQtZGFuZ2VyIC5jbG9zZTphY3RpdmV7Y29sb3I6IzRmMDA3MDtjb2xvcjp2YXIoLS1jbHItYWxlcnQtZGFuZ2VyLWNsb3NlLWljb24taG92''@;'; + put 'put ''ZXItY29sb3IsICM0ZjAwNzApO29wYWNpdHk6MTtvcGFjaXR5OnZhcigtLWNsci1hbGVydC1kYW5nZXItY2xvc2UtaWNvbi1ob3Zlci1vcGFjaXR5LCAxKX0uYWxlcnQgLmFsZXJ0LWl0ZW0gLmNsci1pY29ue2hlaWdodDouOXJlbTt3aWR0aDouOXJlbTttYXJnaW4tcmlnaHQ6LjNyZW19LmFs''@;'; + put 'put ''ZXJ0IC5hbGVydC1pdGVtIC5jbHItaWNvbisuYWxlcnQtdGV4dHtwYWRkaW5nLWxlZnQ6MH0uYWxlcnQgLmFsZXJ0LWl0ZW0gLmNsci1pY29uKy5hbGVydC10ZXh0OmJlZm9yZXtjb250ZW50Om5vbmV9LmFsZXJ0IC5hbGVydC1hY3Rpb25ze2ZsZXg6MCAwIGF1dG87d2hpdGUtc3BhY2U6bm93''@;'; + put 'put ''cmFwfS5hbGVydCAuYWxlcnQtYWN0aW9ucyAuZHJvcGRvd246bGFzdC1jaGlsZHttYXJnaW4tcmlnaHQ6LS4xcmVtfS5hbGVydCAuYWxlcnQtYWN0aW9ucyAuZHJvcGRvd24taXRlbXtjb2xvcjojNjY2O2NvbG9yOnZhcigtLWNsci1kcm9wZG93bi10ZXh0LWNvbG9yLCAjNjY2NjY2KTtmb250''@;'; + put 'put ''LXNpemU6LjdyZW07bGluZS1oZWlnaHQ6MS4ycmVtO2xldHRlci1zcGFjaW5nOm5vcm1hbH0uYWxlcnQgLmFsZXJ0LWFjdGlvbjpub3QoOmxhc3QtY2hpbGQpe21hcmdpbi1yaWdodDouNnJlbX0uYWxlcnQgLmFsZXJ0LWFjdGlvbiwuYWxlcnQgLmRyb3Bkb3duLXRvZ2dsZXt0ZXh0LWRlY29y''@;'; + put 'put ''YXRpb246dW5kZXJsaW5lfS5hbGVydCAuYWxlcnQtYWN0aW9uIGJ1dHRvbi5kcm9wZG93bi10b2dnbGU6bm90KC5idG4pe2JhY2tncm91bmQ6MCAwO2N1cnNvcjpwb2ludGVyO2NvbG9yOiM2NjY7Y29sb3I6dmFyKC0tY2xyLWRyb3Bkb3duLXRleHQtY29sb3IsICM2NjY2NjYpfS5hbGVydCAu''@;'; + put 'put ''ZHJvcGRvd24tdG9nZ2xlOm5vdCguYnRuKXtkaXNwbGF5OmlubGluZS1ibG9jaztiYWNrZ3JvdW5kOjAgMDtib3JkZXI6MH0uYWxlcnQgLmNsb3Nle3dpZHRoOjEuMnJlbTtkaXNwbGF5OmJsb2NrO2hlaWdodDoxLjhyZW07ZmxleDowIDAgMS40cmVtO29yZGVyOjEwMDtwYWRkaW5nLXJpZ2h0''@;'; + put 'put ''Oi4ycmVtfS5hbGVydCAuY2xvc2UgY2RzLWljb24sLmFsZXJ0IC5jbG9zZSBjbHItaWNvbnttYXJnaW4tdG9wOi0uMTVyZW07aGVpZ2h0OjEuMTVyZW07d2lkdGg6MS4xNXJlbX0uYWxlcnQgLmNsb3Nlfi5hbGVydC1pdGVtPi5hbGVydC1hY3Rpb25ze3BhZGRpbmctcmlnaHQ6LjZyZW19LmFs''@;'; + put 'put ''ZXJ0IC5jbG9zZX4uYWxlcnQtaXRlbT4uYWxlcnQtYWN0aW9ucz4uYWxlcnQtYWN0aW9uOmxhc3QtY2hpbGR7bWFyZ2luLXJpZ2h0Oi42cmVtfS5hbGVydC1hcHAtbGV2ZWx7bWFyZ2luOjA7Ym9yZGVyLXJhZGl1czowO292ZXJmbG93LXk6YXV0bztiYWNrZ3JvdW5kOiMwMDcyYTM7YmFja2dy''@;'; + put 'put ''b3VuZDp2YXIoLS1jbHItYXBwLWFsZXJ0LWluZm8tYmctY29sb3IsICMwMDcyYTMpO2NvbG9yOiNmZmY7Y29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC1pbmZvLWZvbnQtY29sb3IsIHdoaXRlKTtib3JkZXI6MH0uYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pY29ue2NvbG9yOiNmZmY7Y29sb3I6''@;'; + put 'put ''dmFyKC0tY2xyLWFwcC1hbGVydC1pbmZvLWljb24tY29sb3IsIHdoaXRlKX0uYWxlcnQtYXBwLWxldmVsIC5hbGVydC1hY3Rpb25zIC5kcm9wZG93biAuZHJvcGRvd24tdG9nZ2xle2NvbG9yOiNmZmY7Y29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC1pbmZvLWFjdGlvbi1jb2xvciwgd2hpdGUp''@;'; + put 'put ''O2JvcmRlci1jb2xvcjojZmZmO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LWluZm8tYWN0aW9uLWNvbG9yLCB3aGl0ZSl9LmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtYWN0aW9uLC5hbGVydC1hcHAtbGV2ZWwgLmRyb3Bkb3duLXRvZ2dsZXtjb2xvcjojZmZmO2NvbG9yOnZhcigt''@;'; + put 'put ''LWNsci1hcHAtYWxlcnQtaW5mby1hY3Rpb24tY29sb3IsIHdoaXRlKX0uYWxlcnQtYXBwLWxldmVsIC5hbGVydC1hY3Rpb24uYnRuLC5hbGVydC1hcHAtbGV2ZWwgLmRyb3Bkb3duLXRvZ2dsZS5idG57Ym9yZGVyLWNvbG9yOiNmZmY7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQt''@;'; + put 'put ''aW5mby1hY3Rpb24tY29sb3IsIHdoaXRlKX0uYWxlcnQtYXBwLWxldmVsIC5hbGVydC1hY3Rpb24uYnRuOmZvY3VzLC5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWFjdGlvbi5idG46aG92ZXIsLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtYWN0aW9uLmJ0bjphY3RpdmUsLmFsZXJ0LWFwcC1sZXZl''@;'; + put 'put ''bCAuZHJvcGRvd24tdG9nZ2xlLmJ0bjpmb2N1cywuYWxlcnQtYXBwLWxldmVsIC5kcm9wZG93bi10b2dnbGUuYnRuOmhvdmVyLC5hbGVydC1hcHAtbGV2ZWwgLmRyb3Bkb3duLXRvZ2dsZS5idG46YWN0aXZle2JvcmRlci1jb2xvcjojZmZmO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItYXBwLWFs''@;'; + put 'put ''ZXJ0LWluZm8tYWN0aW9uLWFjdGl2ZS1jb2xvciwgd2hpdGUpfS5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWFjdGlvbi5idG46YWN0aXZlLC5hbGVydC1hcHAtbGV2ZWwgLmRyb3Bkb3duLXRvZ2dsZS5idG46YWN0aXZle2JveC1zaGFkb3c6MCAuMDVyZW0gI2ZmZiBpbnNldDtib3gtc2hhZG93''@;'; + put 'put ''OjAgLjA1cmVtIDAgMCB2YXIoLS1jbHItYXBwLWFsZXJ0LWluZm8tYWN0aW9uLWFjdGl2ZS1jb2xvciwgd2hpdGUpIGluc2V0fS5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWFjdGlvbjpmb2N1cywuYWxlcnQtYXBwLWxldmVsIC5hbGVydC1hY3Rpb246aG92ZXIsLmFsZXJ0LWFwcC1sZXZlbCAu''@;'; + put 'put ''YWxlcnQtYWN0aW9uOmFjdGl2ZSwuYWxlcnQtYXBwLWxldmVsIC5kcm9wZG93bi10b2dnbGU6Zm9jdXMsLmFsZXJ0LWFwcC1sZXZlbCAuZHJvcGRvd24tdG9nZ2xlOmhvdmVyLC5hbGVydC1hcHAtbGV2ZWwgLmRyb3Bkb3duLXRvZ2dsZTphY3RpdmV7Y29sb3I6dmFyKC0tY2xyLWFwcC1hbGVy''@;'; + put 'put ''dC1pbmZvLWFjdGlvbi1hY3RpdmUtY29sb3IsIHdoaXRlKTtjb2xvcjojZmZmfS5hbGVydC1hcHAtbGV2ZWwgLmNsb3Nle2NvbG9yOiNmZmY7Y29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC1pbmZvLWNsb3NlLWljb24tY29sb3IsIHdoaXRlKTtvcGFjaXR5Oi44O29wYWNpdHk6dmFyKC0tY2xy''@;'; + put 'put ''LWFwcC1hbGVydC1pbmZvLWNsb3NlLWljb24tb3BhY2l0eSwgLjgpfS5hbGVydC1hcHAtbGV2ZWwgLmNsb3NlIGNkcy1pY29uLC5hbGVydC1hcHAtbGV2ZWwgLmNsb3NlIGNsci1pY29ue2ZpbGw6I2ZmZjtmaWxsOnZhcigtLWNsci1hcHAtYWxlcnQtaW5mby1jbG9zZS1pY29uLWNvbG9yLCB3''@;'; + put 'put ''aGl0ZSl9LmFsZXJ0LWFwcC1sZXZlbCAuY2xvc2U6Zm9jdXMsLmFsZXJ0LWFwcC1sZXZlbCAuY2xvc2U6aG92ZXIsLmFsZXJ0LWFwcC1sZXZlbCAuY2xvc2U6YWN0aXZle2NvbG9yOiNmZmY7Y29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC1pbmZvLWNsb3NlLWljb24taG92ZXItY29sb3IsIHdo''@;'; + put 'put ''aXRlKTtvcGFjaXR5OjE7b3BhY2l0eTp2YXIoLS1jbHItYXBwLWFsZXJ0LWluZm8tY2xvc2UtaWNvbi1ob3Zlci1vcGFjaXR5LCAxKX0uYWxlcnQtYXBwLWxldmVsLmFsZXJ0LWluZm97YmFja2dyb3VuZDojMDA3MmEzO2JhY2tncm91bmQ6dmFyKC0tY2xyLWFwcC1hbGVydC1pbmZvLWJnLWNv''@;'; + put 'put ''bG9yLCAjMDA3MmEzKTtjb2xvcjojZmZmO2NvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtaW5mby1mb250LWNvbG9yLCB3aGl0ZSk7Ym9yZGVyOjB9LmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1pbmZvIC5hbGVydC1pY29ue2NvbG9yOiNmZmY7Y29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC1pbmZv''@;'; + put 'put ''LWljb24tY29sb3IsIHdoaXRlKX0uYWxlcnQtYXBwLWxldmVsLmFsZXJ0LWluZm8gLmFsZXJ0LWFjdGlvbnMgLmRyb3Bkb3duIC5kcm9wZG93bi10b2dnbGV7Y29sb3I6I2ZmZjtjb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LWluZm8tYWN0aW9uLWNvbG9yLCB3aGl0ZSk7Ym9yZGVyLWNvbG9y''@;'; + put 'put ''OiNmZmY7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtaW5mby1hY3Rpb24tY29sb3IsIHdoaXRlKX0uYWxlcnQtYXBwLWxldmVsLmFsZXJ0LWluZm8gLmFsZXJ0LWFjdGlvbiwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LWluZm8gLmRyb3Bkb3duLXRvZ2dsZXtjb2xvcjojZmZmO2Nv''@;'; + put 'put ''bG9yOnZhcigtLWNsci1hcHAtYWxlcnQtaW5mby1hY3Rpb24tY29sb3IsIHdoaXRlKX0uYWxlcnQtYXBwLWxldmVsLmFsZXJ0LWluZm8gLmFsZXJ0LWFjdGlvbi5idG4sLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1pbmZvIC5kcm9wZG93bi10b2dnbGUuYnRue2JvcmRlci1jb2xvcjojZmZmO2Jv''@;'; + put 'put ''cmRlci1jb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LWluZm8tYWN0aW9uLWNvbG9yLCB3aGl0ZSl9LmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1pbmZvIC5hbGVydC1hY3Rpb24uYnRuOmZvY3VzLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtaW5mbyAuYWxlcnQtYWN0aW9uLmJ0bjpob3ZlciwuYWxl''@;'; + put 'put ''cnQtYXBwLWxldmVsLmFsZXJ0LWluZm8gLmFsZXJ0LWFjdGlvbi5idG46YWN0aXZlLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtaW5mbyAuZHJvcGRvd24tdG9nZ2xlLmJ0bjpmb2N1cywuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LWluZm8gLmRyb3Bkb3duLXRvZ2dsZS5idG46aG92ZXIsLmFsZXJ0''@;'; + put 'put ''LWFwcC1sZXZlbC5hbGVydC1pbmZvIC5kcm9wZG93bi10b2dnbGUuYnRuOmFjdGl2ZXtib3JkZXItY29sb3I6I2ZmZjtib3JkZXItY29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC1pbmZvLWFjdGlvbi1hY3RpdmUtY29sb3IsIHdoaXRlKX0uYWxlcnQtYXBwLWxldmVsLmFsZXJ0LWluZm8gLmFs''@;'; + put 'put ''ZXJ0LWFjdGlvbi5idG46YWN0aXZlLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtaW5mbyAuZHJvcGRvd24tdG9nZ2xlLmJ0bjphY3RpdmV7Ym94LXNoYWRvdzowIC4wNXJlbSAjZmZmIGluc2V0O2JveC1zaGFkb3c6MCAuMDVyZW0gMCAwIHZhcigtLWNsci1hcHAtYWxlcnQtaW5mby1hY3Rpb24t''@;'; + put 'put ''YWN0aXZlLWNvbG9yLCB3aGl0ZSkgaW5zZXR9LmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1pbmZvIC5hbGVydC1hY3Rpb246Zm9jdXMsLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1pbmZvIC5hbGVydC1hY3Rpb246aG92ZXIsLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1pbmZvIC5hbGVydC1hY3Rpb246''@;'; + put 'put ''YWN0aXZlLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtaW5mbyAuZHJvcGRvd24tdG9nZ2xlOmZvY3VzLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtaW5mbyAuZHJvcGRvd24tdG9nZ2xlOmhvdmVyLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtaW5mbyAuZHJvcGRvd24tdG9nZ2xlOmFjdGl2ZXtjb2xv''@;'; + put 'put ''cjp2YXIoLS1jbHItYXBwLWFsZXJ0LWluZm8tYWN0aW9uLWFjdGl2ZS1jb2xvciwgd2hpdGUpO2NvbG9yOiNmZmZ9LmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1pbmZvIC5jbG9zZXtjb2xvcjojZmZmO2NvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtaW5mby1jbG9zZS1pY29uLWNvbG9yLCB3aGl0''@;'; + put 'put ''ZSk7b3BhY2l0eTouODtvcGFjaXR5OnZhcigtLWNsci1hcHAtYWxlcnQtaW5mby1jbG9zZS1pY29uLW9wYWNpdHksIC44KX0uYWxlcnQtYXBwLWxldmVsLmFsZXJ0LWluZm8gLmNsb3NlIGNkcy1pY29uLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtaW5mbyAuY2xvc2UgY2xyLWljb257ZmlsbDoj''@;'; + put 'put ''ZmZmO2ZpbGw6dmFyKC0tY2xyLWFwcC1hbGVydC1pbmZvLWNsb3NlLWljb24tY29sb3IsIHdoaXRlKX0uYWxlcnQtYXBwLWxldmVsLmFsZXJ0LWluZm8gLmNsb3NlOmZvY3VzLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtaW5mbyAuY2xvc2U6aG92ZXIsLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1p''@;'; + put 'put ''bmZvIC5jbG9zZTphY3RpdmV7Y29sb3I6I2ZmZjtjb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LWluZm8tY2xvc2UtaWNvbi1ob3Zlci1jb2xvciwgd2hpdGUpO29wYWNpdHk6MTtvcGFjaXR5OnZhcigtLWNsci1hcHAtYWxlcnQtaW5mby1jbG9zZS1pY29uLWhvdmVyLW9wYWNpdHksIDEpfS5h''@;'; + put 'put ''bGVydC1hcHAtbGV2ZWwuYWxlcnQtZGFuZ2Vye2JhY2tncm91bmQ6I2MyMWQwMDtiYWNrZ3JvdW5kOnZhcigtLWNsci1hcHAtYWxlcnQtZGFuZ2VyLWJnLWNvbG9yLCAjYzIxZDAwKTtjb2xvcjojZmZmO2NvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtZGFuZ2VyLWZvbnQtY29sb3IsIHdoaXRl''@;'; + put 'put ''KTtib3JkZXI6MH0uYWxlcnQtYXBwLWxldmVsLmFsZXJ0LWRhbmdlciAuYWxlcnQtaWNvbntjb2xvcjojZmZmO2NvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtZGFuZ2VyLWljb24tY29sb3IsIHdoaXRlKX0uYWxlcnQtYXBwLWxldmVsLmFsZXJ0LWRhbmdlciAuYWxlcnQtYWN0aW9ucyAuZHJv''@;'; + put 'put ''cGRvd24gLmRyb3Bkb3duLXRvZ2dsZXtjb2xvcjojZmZmO2NvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtZGFuZ2VyLWFjdGlvbi1jb2xvciwgd2hpdGUpO2JvcmRlci1jb2xvcjojZmZmO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LWRhbmdlci1hY3Rpb24tY29sb3IsIHdoaXRl''@;'; + put 'put ''KX0uYWxlcnQtYXBwLWxldmVsLmFsZXJ0LWRhbmdlciAuYWxlcnQtYWN0aW9uLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtZGFuZ2VyIC5kcm9wZG93bi10b2dnbGV7Y29sb3I6I2ZmZjtjb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LWRhbmdlci1hY3Rpb24tY29sb3IsIHdoaXRlKX0uYWxlcnQt''@;'; + put 'put ''YXBwLWxldmVsLmFsZXJ0LWRhbmdlciAuYWxlcnQtYWN0aW9uLmJ0biwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LWRhbmdlciAuZHJvcGRvd24tdG9nZ2xlLmJ0bntib3JkZXItY29sb3I6I2ZmZjtib3JkZXItY29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC1kYW5nZXItYWN0aW9uLWNvbG9yLCB3''@;'; + put 'put ''aGl0ZSl9LmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1kYW5nZXIgLmFsZXJ0LWFjdGlvbi5idG46Zm9jdXMsLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1kYW5nZXIgLmFsZXJ0LWFjdGlvbi5idG46aG92ZXIsLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1kYW5nZXIgLmFsZXJ0LWFjdGlvbi5idG46YWN0''@;'; + put 'put ''aXZlLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtZGFuZ2VyIC5kcm9wZG93bi10b2dnbGUuYnRuOmZvY3VzLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtZGFuZ2VyIC5kcm9wZG93bi10b2dnbGUuYnRuOmhvdmVyLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtZGFuZ2VyIC5kcm9wZG93bi10b2dnbGUu''@;'; + put 'put ''YnRuOmFjdGl2ZXtib3JkZXItY29sb3I6I2ZmZjtib3JkZXItY29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC1kYW5nZXItYWN0aW9uLWFjdGl2ZS1jb2xvciwgd2hpdGUpfS5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtZGFuZ2VyIC5hbGVydC1hY3Rpb24uYnRuOmFjdGl2ZSwuYWxlcnQtYXBwLWxl''@;'; + put 'put ''dmVsLmFsZXJ0LWRhbmdlciAuZHJvcGRvd24tdG9nZ2xlLmJ0bjphY3RpdmV7Ym94LXNoYWRvdzowIC4wNXJlbSAjZmZmIGluc2V0O2JveC1zaGFkb3c6MCAuMDVyZW0gMCAwIHZhcigtLWNsci1hcHAtYWxlcnQtZGFuZ2VyLWFjdGlvbi1hY3RpdmUtY29sb3IsIHdoaXRlKSBpbnNldH0uYWxl''@;'; + put 'put ''cnQtYXBwLWxldmVsLmFsZXJ0LWRhbmdlciAuYWxlcnQtYWN0aW9uOmZvY3VzLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtZGFuZ2VyIC5hbGVydC1hY3Rpb246aG92ZXIsLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1kYW5nZXIgLmFsZXJ0LWFjdGlvbjphY3RpdmUsLmFsZXJ0LWFwcC1sZXZlbC5h''@;'; + put 'put ''bGVydC1kYW5nZXIgLmRyb3Bkb3duLXRvZ2dsZTpmb2N1cywuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LWRhbmdlciAuZHJvcGRvd24tdG9nZ2xlOmhvdmVyLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtZGFuZ2VyIC5kcm9wZG93bi10b2dnbGU6YWN0aXZle2NvbG9yOnZhcigtLWNsci1hcHAtYWxl''@;'; + put 'put ''cnQtZGFuZ2VyLWFjdGlvbi1hY3RpdmUtY29sb3IsIHdoaXRlKTtjb2xvcjojZmZmfS5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtZGFuZ2VyIC5jbG9zZXtjb2xvcjojZmZmO2NvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtZGFuZ2VyLWNsb3NlLWljb24tY29sb3IsIHdoaXRlKTtvcGFjaXR5Oi44''@;'; + put 'put ''O29wYWNpdHk6dmFyKC0tY2xyLWFwcC1hbGVydC1kYW5nZXItY2xvc2UtaWNvbi1vcGFjaXR5LCAuOCl9LmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1kYW5nZXIgLmNsb3NlIGNkcy1pY29uLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtZGFuZ2VyIC5jbG9zZSBjbHItaWNvbntmaWxsOiNmZmY7Zmls''@;'; + put 'put ''bDp2YXIoLS1jbHItYXBwLWFsZXJ0LWRhbmdlci1jbG9zZS1pY29uLWNvbG9yLCB3aGl0ZSl9LmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1kYW5nZXIgLmNsb3NlOmZvY3VzLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtZGFuZ2VyIC5jbG9zZTpob3ZlciwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LWRh''@;'; + put 'put ''bmdlciAuY2xvc2U6YWN0aXZle2NvbG9yOiNmZmY7Y29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC1kYW5nZXItY2xvc2UtaWNvbi1ob3Zlci1jb2xvciwgd2hpdGUpO29wYWNpdHk6MTtvcGFjaXR5OnZhcigtLWNsci1hcHAtYWxlcnQtZGFuZ2VyLWNsb3NlLWljb24taG92ZXItb3BhY2l0eSwg''@;'; + put 'put ''MSl9LmFsZXJ0LWFwcC1sZXZlbC5hbGVydC13YXJuaW5ne2JhY2tncm91bmQ6I2MyNTQwMDtiYWNrZ3JvdW5kOnZhcigtLWNsci1hcHAtYWxlcnQtd2FybmluZy1iZy1jb2xvciwgI2MyNTQwMCk7Y29sb3I6I2ZmZjtjb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LXdhcm5pbmctZm9udC1jb2xv''@;'; + put 'put ''ciwgd2hpdGUpO2JvcmRlcjowfS5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtd2FybmluZyAuYWxlcnQtaWNvbntjb2xvcjojZmZmO2NvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtd2FybmluZy1pY29uLWNvbG9yLCB3aGl0ZSl9LmFsZXJ0LWFwcC1sZXZlbC5hbGVydC13YXJuaW5nIC5hbGVydC1h''@;'; + put 'put ''Y3Rpb25zIC5kcm9wZG93biAuZHJvcGRvd24tdG9nZ2xle2NvbG9yOiNmZmY7Y29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC13YXJuaW5nLWFjdGlvbi1jb2xvciwgd2hpdGUpO2JvcmRlci1jb2xvcjojZmZmO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LXdhcm5pbmctYWN0aW9u''@;'; + put 'put ''LWNvbG9yLCB3aGl0ZSl9LmFsZXJ0LWFwcC1sZXZlbC5hbGVydC13YXJuaW5nIC5hbGVydC1hY3Rpb24sLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC13YXJuaW5nIC5kcm9wZG93bi10b2dnbGV7Y29sb3I6I2ZmZjtjb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LXdhcm5pbmctYWN0aW9uLWNvbG9y''@;'; + put 'put ''LCB3aGl0ZSl9LmFsZXJ0LWFwcC1sZXZlbC5hbGVydC13YXJuaW5nIC5hbGVydC1hY3Rpb24uYnRuLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtd2FybmluZyAuZHJvcGRvd24tdG9nZ2xlLmJ0bntib3JkZXItY29sb3I6I2ZmZjtib3JkZXItY29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC13YXJu''@;'; + put 'put ''aW5nLWFjdGlvbi1jb2xvciwgd2hpdGUpfS5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtd2FybmluZyAuYWxlcnQtYWN0aW9uLmJ0bjpmb2N1cywuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LXdhcm5pbmcgLmFsZXJ0LWFjdGlvbi5idG46aG92ZXIsLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC13YXJuaW5n''@;'; + put 'put ''IC5hbGVydC1hY3Rpb24uYnRuOmFjdGl2ZSwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LXdhcm5pbmcgLmRyb3Bkb3duLXRvZ2dsZS5idG46Zm9jdXMsLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC13YXJuaW5nIC5kcm9wZG93bi10b2dnbGUuYnRuOmhvdmVyLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQt''@;'; + put 'put ''d2FybmluZyAuZHJvcGRvd24tdG9nZ2xlLmJ0bjphY3RpdmV7Ym9yZGVyLWNvbG9yOiNmZmY7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtd2FybmluZy1hY3Rpb24tYWN0aXZlLWNvbG9yLCB3aGl0ZSl9LmFsZXJ0LWFwcC1sZXZlbC5hbGVydC13YXJuaW5nIC5hbGVydC1hY3Rp''@;'; + put 'put ''b24uYnRuOmFjdGl2ZSwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LXdhcm5pbmcgLmRyb3Bkb3duLXRvZ2dsZS5idG46YWN0aXZle2JveC1zaGFkb3c6MCAuMDVyZW0gI2ZmZiBpbnNldDtib3gtc2hhZG93OjAgLjA1cmVtIDAgMCB2YXIoLS1jbHItYXBwLWFsZXJ0LXdhcm5pbmctYWN0aW9uLWFj''@;'; + put 'put ''dGl2ZS1jb2xvciwgd2hpdGUpIGluc2V0fS5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtd2FybmluZyAuYWxlcnQtYWN0aW9uOmZvY3VzLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtd2FybmluZyAuYWxlcnQtYWN0aW9uOmhvdmVyLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtd2FybmluZyAuYWxlcnQt''@;'; + put 'put ''YWN0aW9uOmFjdGl2ZSwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LXdhcm5pbmcgLmRyb3Bkb3duLXRvZ2dsZTpmb2N1cywuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LXdhcm5pbmcgLmRyb3Bkb3duLXRvZ2dsZTpob3ZlciwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LXdhcm5pbmcgLmRyb3Bkb3duLXRv''@;'; + put 'put ''Z2dsZTphY3RpdmV7Y29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC13YXJuaW5nLWFjdGlvbi1hY3RpdmUtY29sb3IsIHdoaXRlKTtjb2xvcjojZmZmfS5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtd2FybmluZyAuY2xvc2V7Y29sb3I6I2ZmZjtjb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LXdhcm5p''@;'; + put 'put ''bmctY2xvc2UtaWNvbi1jb2xvciwgd2hpdGUpO29wYWNpdHk6Ljg7b3BhY2l0eTp2YXIoLS1jbHItYXBwLWFsZXJ0LXdhcm5pbmctY2xvc2UtaWNvbi1vcGFjaXR5LCAuOCl9LmFsZXJ0LWFwcC1sZXZlbC5hbGVydC13YXJuaW5nIC5jbG9zZSBjZHMtaWNvbiwuYWxlcnQtYXBwLWxldmVsLmFs''@;'; + put 'put ''ZXJ0LXdhcm5pbmcgLmNsb3NlIGNsci1pY29ue2ZpbGw6I2ZmZjtmaWxsOnZhcigtLWNsci1hcHAtYWxlcnQtd2FybmluZy1jbG9zZS1pY29uLWNvbG9yLCB3aGl0ZSl9LmFsZXJ0LWFwcC1sZXZlbC5hbGVydC13YXJuaW5nIC5jbG9zZTpmb2N1cywuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LXdh''@;'; + put 'put ''cm5pbmcgLmNsb3NlOmhvdmVyLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtd2FybmluZyAuY2xvc2U6YWN0aXZle2NvbG9yOiNmZmY7Y29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC13YXJuaW5nLWNsb3NlLWljb24taG92ZXItY29sb3IsIHdoaXRlKTtvcGFjaXR5OjE7b3BhY2l0eTp2YXIoLS1j''@;'; + put 'put ''bHItYXBwLWFsZXJ0LXdhcm5pbmctY2xvc2UtaWNvbi1ob3Zlci1vcGFjaXR5LCAxKX0uYWxlcnQtYXBwLWxldmVsLmFsZXJ0LXN1Y2Nlc3N7YmFja2dyb3VuZDojM2M4NTAwO2JhY2tncm91bmQ6dmFyKC0tY2xyLWFwcC1hbGVydC1zdWNjZXNzLWJnLWNvbG9yLCAjM2M4NTAwKTtjb2xvcjoj''@;'; + put 'put ''ZmZmO2NvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtc3VjY2Vzcy1mb250LWNvbG9yLCB3aGl0ZSk7Ym9yZGVyOjB9LmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1zdWNjZXNzIC5hbGVydC1pY29ue2NvbG9yOiNmZmY7Y29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC1zdWNjZXNzLWljb24tY29sb3Is''@;'; + put 'put ''IHdoaXRlKX0uYWxlcnQtYXBwLWxldmVsLmFsZXJ0LXN1Y2Nlc3MgLmFsZXJ0LWFjdGlvbnMgLmRyb3Bkb3duIC5kcm9wZG93bi10b2dnbGV7Y29sb3I6I2ZmZjtjb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LXN1Y2Nlc3MtYWN0aW9uLWNvbG9yLCB3aGl0ZSk7Ym9yZGVyLWNvbG9yOiNmZmY7''@;'; + put 'put ''Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtc3VjY2Vzcy1hY3Rpb24tY29sb3IsIHdoaXRlKX0uYWxlcnQtYXBwLWxldmVsLmFsZXJ0LXN1Y2Nlc3MgLmFsZXJ0LWFjdGlvbiwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LXN1Y2Nlc3MgLmRyb3Bkb3duLXRvZ2dsZXtjb2xvcjojZmZm''@;'; + put 'put ''O2NvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtc3VjY2Vzcy1hY3Rpb24tY29sb3IsIHdoaXRlKX0uYWxlcnQtYXBwLWxldmVsLmFsZXJ0LXN1Y2Nlc3MgLmFsZXJ0LWFjdGlvbi5idG4sLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1zdWNjZXNzIC5kcm9wZG93bi10b2dnbGUuYnRue2JvcmRlci1j''@;'; + put 'put ''b2xvcjojZmZmO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LXN1Y2Nlc3MtYWN0aW9uLWNvbG9yLCB3aGl0ZSl9LmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1zdWNjZXNzIC5hbGVydC1hY3Rpb24uYnRuOmZvY3VzLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtc3VjY2VzcyAuYWxlcnQt''@;'; + put 'put ''YWN0aW9uLmJ0bjpob3ZlciwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LXN1Y2Nlc3MgLmFsZXJ0LWFjdGlvbi5idG46YWN0aXZlLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtc3VjY2VzcyAuZHJvcGRvd24tdG9nZ2xlLmJ0bjpmb2N1cywuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LXN1Y2Nlc3MgLmRy''@;'; + put 'put ''b3Bkb3duLXRvZ2dsZS5idG46aG92ZXIsLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1zdWNjZXNzIC5kcm9wZG93bi10b2dnbGUuYnRuOmFjdGl2ZXtib3JkZXItY29sb3I6I2ZmZjtib3JkZXItY29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC1zdWNjZXNzLWFjdGlvbi1hY3RpdmUtY29sb3IsIHdo''@;'; + put 'put ''aXRlKX0uYWxlcnQtYXBwLWxldmVsLmFsZXJ0LXN1Y2Nlc3MgLmFsZXJ0LWFjdGlvbi5idG46YWN0aXZlLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtc3VjY2VzcyAuZHJvcGRvd24tdG9nZ2xlLmJ0bjphY3RpdmV7Ym94LXNoYWRvdzowIC4wNXJlbSAjZmZmIGluc2V0O2JveC1zaGFkb3c6MCAu''@;'; + put 'put ''MDVyZW0gMCAwIHZhcigtLWNsci1hcHAtYWxlcnQtc3VjY2Vzcy1hY3Rpb24tYWN0aXZlLWNvbG9yLCB3aGl0ZSkgaW5zZXR9LmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1zdWNjZXNzIC5hbGVydC1hY3Rpb246Zm9jdXMsLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1zdWNjZXNzIC5hbGVydC1hY3Rp''@;'; + put 'put ''b246aG92ZXIsLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1zdWNjZXNzIC5hbGVydC1hY3Rpb246YWN0aXZlLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtc3VjY2VzcyAuZHJvcGRvd24tdG9nZ2xlOmZvY3VzLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtc3VjY2VzcyAuZHJvcGRvd24tdG9nZ2xlOmhv''@;'; + put 'put ''dmVyLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtc3VjY2VzcyAuZHJvcGRvd24tdG9nZ2xlOmFjdGl2ZXtjb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LXN1Y2Nlc3MtYWN0aW9uLWFjdGl2ZS1jb2xvciwgd2hpdGUpO2NvbG9yOiNmZmZ9LmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1zdWNjZXNzIC5j''@;'; + put 'put ''bG9zZXtjb2xvcjojZmZmO2NvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtc3VjY2Vzcy1jbG9zZS1pY29uLWNvbG9yLCB3aGl0ZSk7b3BhY2l0eTouODtvcGFjaXR5OnZhcigtLWNsci1hcHAtYWxlcnQtc3VjY2Vzcy1jbG9zZS1pY29uLW9wYWNpdHksIC44KX0uYWxlcnQtYXBwLWxldmVsLmFs''@;'; + put 'put ''ZXJ0LXN1Y2Nlc3MgLmNsb3NlIGNkcy1pY29uLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtc3VjY2VzcyAuY2xvc2UgY2xyLWljb257ZmlsbDojZmZmO2ZpbGw6dmFyKC0tY2xyLWFwcC1hbGVydC1zdWNjZXNzLWNsb3NlLWljb24tY29sb3IsIHdoaXRlKX0uYWxlcnQtYXBwLWxldmVsLmFsZXJ0''@;'; + put 'put ''LXN1Y2Nlc3MgLmNsb3NlOmZvY3VzLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtc3VjY2VzcyAuY2xvc2U6aG92ZXIsLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1zdWNjZXNzIC5jbG9zZTphY3RpdmV7Y29sb3I6I2ZmZjtjb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LXN1Y2Nlc3MtY2xvc2UtaWNv''@;'; + put 'put ''bi1ob3Zlci1jb2xvciwgd2hpdGUpO29wYWNpdHk6MTtvcGFjaXR5OnZhcigtLWNsci1hcHAtYWxlcnQtc3VjY2Vzcy1jbG9zZS1pY29uLWhvdmVyLW9wYWNpdHksIDEpfS5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW1ze3BhZGRpbmctdG9wOi4zcmVtO3BhZGRpbmctYm90dG9tOi4zcmVt''@;'; + put 'put ''fS5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW17anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7bWluLWhlaWdodDoxLjJyZW19LmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRue21hcmdpbjowfS5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW0+c3Bh''@;'; + put 'put ''biwuYWxlcnQtYXBwLWxldmVsIC5hbGVydC10ZXh0e2ZsZXg6MCAxIDEwMCV9LmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaWNvbi13cmFwcGVye21hcmdpbi10b3A6LjE1cmVtfS5hbGVydC1hcHAtbGV2ZWwgLmNsb3Nle2hlaWdodDoxLjhyZW07b3ZlcmZsb3c6aGlkZGVufS5hbGVydC1hcHAt''@;'; + put 'put ''bGV2ZWwgLmNsb3NlIGNkcy1pY29uLC5hbGVydC1hcHAtbGV2ZWwgLmNsb3NlIGNsci1pY29ue21hcmdpbi10b3A6LS4yNXJlbX0uYWxlcnQtYXBwLWxldmVsIC5hbGVydC1hY3Rpb24sLmFsZXJ0LWFwcC1sZXZlbCAuZHJvcGRvd24tdG9nZ2xle3RleHQtZGVjb3JhdGlvbjpub25lfS5hbGVy''@;'; + put 'put ''dC1zbXtmb250LXNpemU6LjU1cmVtO2xldHRlci1zcGFjaW5nOm5vcm1hbDtsaW5lLWhlaWdodDouOHJlbX0uYWxlcnQtc20gLmFsZXJ0LWl0ZW1ze3BhZGRpbmc6LjE1cmVtIC4yNXJlbX0uYWxlcnQtc20gLmFsZXJ0LWl0ZW17cGFkZGluZy10b3A6LjA1cmVtO21hcmdpbi1ib3R0b206LjJy''@;'; + put 'put ''ZW19LmFsZXJ0LXNtIC5hbGVydC1pdGVtOmxhc3QtY2hpbGR7bWFyZ2luLWJvdHRvbTowfS5hbGVydC1zbSAuYWxlcnQtaWNvbi13cmFwcGVye3BhZGRpbmctdG9wOjA7aGVpZ2h0Oi44cmVtfS5hbGVydC1zbSAuYWxlcnQtaWNvbnttYXJnaW4tbGVmdDotLjJyZW07bWFyZ2luLXRvcDotLjJy''@;'; + put 'put ''ZW19LmFsZXJ0LXNtIC5hbGVydC1pdGVtPnNwYW4sLmFsZXJ0LXNtIC5hbGVydC10ZXh0e21hcmdpbi1yaWdodDouM3JlbX0uYWxlcnQtc20gLmNsb3Nle3BhZGRpbmctcmlnaHQ6MDtmbGV4OjAgMCAxLjJyZW07aGVpZ2h0OjEuMnJlbTtsaW5lLWhlaWdodDoxLjJyZW19LmFsZXJ0LXNtIC5j''@;'; + put 'put ''bG9zZSBjZHMtaWNvbiwuYWxlcnQtc20gLmNsb3NlIGNsci1pY29ue21hcmdpbi10b3A6LS4yNXJlbTttYXJnaW4tcmlnaHQ6LS4wNXJlbTtoZWlnaHQ6MXJlbTt3aWR0aDoxcmVtO2xpbmUtaGVpZ2h0OjEuMDVyZW19QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDo3NjhweCl7LmFsZXJ0''@;'; + put 'put ''IC5hbGVydC1pdGVte2ZsZXgtd3JhcDp3cmFwfS5hbGVydCAuYWxlcnQtdGV4dHttYXJnaW4tcmlnaHQ6MDttYXgtd2lkdGg6OTAlO3dpZHRoOjkwJTtmbGV4LWJhc2lzOjkwJX0uYWxlcnQgLmFsZXJ0LWFjdGlvbnN7ZmxleDoxIDAgMTAwJTtwYWRkaW5nLXRvcDouMTVyZW07cGFkZGluZy1s''@;'; + put 'put ''ZWZ0OjEuMnJlbX0uYWxlcnRzLXBhZ2Vye21hcmdpbi10b3A6LjE1cmVtfS5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWFjdGlvbnN7bWFyZ2luLWxlZnQ6Mi4yNXJlbX19LmFsZXJ0LWhpZGRlbntkaXNwbGF5Om5vbmV9LmNhcmQgLmFsZXJ0e21hcmdpbjouM3JlbSAwfS5tb2RhbCAuYWxlcnQr''@;'; + put 'put ''Lm1vZGFsLWhlYWRlciwubW9kYWwgLmFsZXJ0Ky5tb2RhbC1oZWFkZXItLWFjY2Vzc2libGV7bWFyZ2luLXRvcDouNnJlbX0uYWxlcnRzLmFsZXJ0LWluZm97YmFja2dyb3VuZDojMDA1NjdhO2JhY2tncm91bmQ6dmFyKC0tY2xyLWFwcC1hbGVydC1pbmZvLXBhZ2VyLWJnLWNvbG9yLCAjMDA1''@;'; + put 'put ''NjdhKX0uYWxlcnRzLmFsZXJ0LWRhbmdlcntiYWNrZ3JvdW5kOiM5OTE3MDA7YmFja2dyb3VuZDp2YXIoLS1jbHItYXBwLWFsZXJ0LWRhbmdlci1wYWdlci1iZy1jb2xvciwgIzk5MTcwMCl9LmFsZXJ0cy5hbGVydC13YXJuaW5ne2JhY2tncm91bmQ6IzhmNWEwMDtiYWNrZ3JvdW5kOnZhcigt''@;'; + put 'put ''LWNsci1hcHAtYWxlcnQtd2FybmluZy1wYWdlci1iZy1jb2xvciwgIzhmNWEwMCl9LmFsZXJ0cy5hbGVydC1zdWNjZXNze2JhY2tncm91bmQ6IzI1NTIwMDtiYWNrZ3JvdW5kOnZhcigtLWNsci1jb2xvci1zdWNjZXNzLTkwMCwgIzI1NTIwMCl9LmFsZXJ0cy1wYWdlcntjb2xvcjojZmZmO2Nv''@;'; + put 'put ''bG9yOnZhcigtLWNsci1hcHAtYWxlcnQtcGFnZXItdGV4dC1jb2xvciwgd2hpdGUpO2ZvbnQtc2l6ZTouNjVyZW07bGV0dGVyLXNwYWNpbmc6bm9ybWFsO2Zsb2F0OmxlZnQ7bWluLWhlaWdodDoxLjhyZW07dGV4dC1hbGlnbjpjZW50ZXI7d2lkdGg6Ny4ycmVtfS5hbGVydC1pbmZvIC5hbGVy''@;'; + put 'put ''dHMtcGFnZXJ7Y29sb3I6I2ZmZjtjb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LWluZm8tcGFnZXItZm9udC1jb2xvciwgd2hpdGUpfS5hbGVydC13YXJuaW5nIC5hbGVydHMtcGFnZXJ7Y29sb3I6I2ZmZjtjb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LXdhcm5pbmctcGFnZXItZm9udC1jb2xv''@;'; + put 'put ''ciwgd2hpdGUpfS5hbGVydC1kYW5nZXIgLmFsZXJ0cy1wYWdlcntjb2xvcjojZmZmO2NvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtZGFuZ2VyLXBhZ2VyLWZvbnQtY29sb3IsIHdoaXRlKX0uYWxlcnQtc3VjY2VzcyAuYWxlcnRzLXBhZ2Vye2NvbG9yOiNmZmY7Y29sb3I6dmFyKC0tY2xyLWFw''@;'; + put 'put ''cC1hbGVydC1zdWNjZXNzLXBhZ2VyLWZvbnQtY29sb3IsIHdoaXRlKX0uYWxlcnRzLXBhZ2VyLWJ1dHRvbnstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTstbW96LWFwcGVhcmFuY2U6bm9uZTstbXMtYXBwZWFyYW5jZTpub25lOy1vLWFwcGVhcmFuY2U6bm9uZTttYXJnaW46MDtwYWRkaW5nOjA7''@;'; + put 'put ''Ym9yZGVyOjA7Ym9yZGVyLXJhZGl1czowO2JveC1zaGFkb3c6bm9uZTtiYWNrZ3JvdW5kOjAgMDtjb2xvcjojZmZmO2NvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtcGFnZXItdGV4dC1jb2xvciwgd2hpdGUpO2N1cnNvcjpwb2ludGVyfWJ1dHRvbi5hbGVydHMtcGFnZXItYnV0dG9ue2N1cnNv''@;'; + put 'put ''cjpwb2ludGVyfS5hbGVydHMtcGFnZXItYnV0dG9uIGNkcy1pY29uLC5hbGVydHMtcGFnZXItYnV0dG9uIGNsci1pY29ue2NvbG9yOiNmZmY7Y29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC1wYWdlci10ZXh0LWNvbG9yLCB3aGl0ZSl9LmFsZXJ0LWluZm8gLmFsZXJ0cy1wYWdlci1idXR0b24g''@;'; + put 'put ''Y2RzLWljb24sLmFsZXJ0LWluZm8gLmFsZXJ0cy1wYWdlci1idXR0b24gY2xyLWljb257Y29sb3I6I2ZmZjtjb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LWluZm8tcGFnZXItZm9udC1jb2xvciwgd2hpdGUpfS5hbGVydC13YXJuaW5nIC5hbGVydHMtcGFnZXItYnV0dG9uIGNkcy1pY29uLC5h''@;'; + put 'put ''bGVydC13YXJuaW5nIC5hbGVydHMtcGFnZXItYnV0dG9uIGNsci1pY29ue2NvbG9yOiNmZmY7Y29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC13YXJuaW5nLXBhZ2VyLWZvbnQtY29sb3IsIHdoaXRlKX0uYWxlcnQtZGFuZ2VyIC5hbGVydHMtcGFnZXItYnV0dG9uIGNkcy1pY29uLC5hbGVydC1k''@;'; + put 'put ''YW5nZXIgLmFsZXJ0cy1wYWdlci1idXR0b24gY2xyLWljb257Y29sb3I6I2ZmZjtjb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LWRhbmdlci1wYWdlci1mb250LWNvbG9yLCB3aGl0ZSl9LmFsZXJ0LXN1Y2Nlc3MgLmFsZXJ0cy1wYWdlci1idXR0b24gY2RzLWljb24sLmFsZXJ0LXN1Y2Nlc3Mg''@;'; + put 'put ''LmFsZXJ0cy1wYWdlci1idXR0b24gY2xyLWljb257Y29sb3I6I2ZmZjtjb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LXN1Y2Nlc3MtcGFnZXItZm9udC1jb2xvciwgd2hpdGUpfS5hbGVydHMtcGFnZXItY29udHJvbHtkaXNwbGF5OmZsZXg7bWFyZ2luLXRvcDouM3JlbTt3aGl0ZS1zcGFjZTpu''@;'; + put 'put ''b3dyYXB9LmFsZXJ0cy1wYWdlLWRvd257bWFyZ2luLWxlZnQ6MS4ycmVtO3dpZHRoOjMzLjMzJX0uYWxlcnRzLXBhZ2UtdXB7bWFyZ2luLXJpZ2h0OjEuMnJlbTt3aWR0aDozMy4zMyV9LmFsZXJ0cy1wYWdlci10ZXh0e3dpZHRoOjMzLjMzJX06cm9vdHstLWNsci1jYXJkLWJnLWNvbG9yOnZh''@;'; + put 'put ''cigtLWNsci1jb2xvci1uZXV0cmFsLTApOy0tY2xyLWNhcmQtZGl2aWRlci1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC0zMDApOy0tY2xyLWNhcmQtdGl0bGUtY29sb3I6dmFyKC0tY2xyLWg0LWNvbG9yKTstLWNsci1jYXJkLXRpdGxlLWZvbnQtd2VpZ2h0OnZhcigtLWNsci1oNC1m''@;'; + put 'put ''b250LXdlaWdodCk7LS1jbHItY2FyZC1ib3JkZXItd2lkdGg6dmFyKC0tY2xyLWdsb2JhbC1ib3JkZXJ3aWR0aCk7LS1jbHItY2FyZC1ib3JkZXItcmFkaXVzOnZhcigtLWNsci1nbG9iYWwtYm9yZGVycmFkaXVzKTstLWNsci1jYXJkLWJvcmRlci1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1''@;'; + put 'put ''dHJhbC0zMDApOy0tY2xyLWNhcmQtYm94LXNoYWRvdy1jb2xvcjp2YXIoLS1jbHItY2FyZC1ib3JkZXItY29sb3IpOy0tY2xyLWNhcmQtY2xpY2thYmxlLWJvcmRlci1jb2xvcjp2YXIoLS1jbHItY29sb3ItYWN0aW9uLTUwMCk7LS1jbHItY2FyZC1jbGlja2FibGUtYm94LXNoYWRvdy1jb2xv''@;'; + put 'put ''cjp2YXIoLS1jbHItY2FyZC1jbGlja2FibGUtYm9yZGVyLWNvbG9yKX0uY2FyZHtib3gtc2hhZG93OjAgLjE1cmVtICNkZWRlZGU7Ym94LXNoYWRvdzowIC4xNXJlbSAwIDAgdmFyKC0tY2xyLWNhcmQtYm94LXNoYWRvdy1jb2xvcik7Ym9yZGVyLXJhZGl1czouMTVyZW07Ym9yZGVyLXJhZGl1''@;'; + put 'put ''czp2YXIoLS1jbHItY2FyZC1ib3JkZXItcmFkaXVzLCAuMTVyZW0pO2JvcmRlci13aWR0aDouMDVyZW07Ym9yZGVyLXdpZHRoOnZhcigtLWNsci1jYXJkLWJvcmRlci13aWR0aCwgLjA1cmVtKTtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLWNvbG9yOiNkZWRlZGU7Ym9yZGVyLWNvbG9yOnZh''@;'; + put 'put ''cigtLWNsci1jYXJkLWJvcmRlci1jb2xvciwgI2RlZGVkZSl9LmNhcmQuY2xpY2thYmxlOmhvdmVye2JveC1zaGFkb3c6MCAuMTVyZW0gIzE3OWJkMztib3gtc2hhZG93OjAgLjE1cmVtIDAgMCB2YXIoLS1jbHItY2FyZC1jbGlja2FibGUtYm94LXNoYWRvdy1jb2xvcik7Ym9yZGVyLXdpZHRo''@;'; + put 'put ''Oi4wNXJlbTtib3JkZXItd2lkdGg6dmFyKC0tY2xyLWNhcmQtYm9yZGVyLXdpZHRoLCAuMDVyZW0pO2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItY29sb3I6IzE3OWJkMztib3JkZXItY29sb3I6dmFyKC0tY2xyLWNhcmQtY2xpY2thYmxlLWJvcmRlci1jb2xvciwgIzE3OWJkMyk7Y3Vyc29y''@;'; + put 'put ''OnBvaW50ZXI7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLS4xcmVtKTt0cmFuc2l0aW9uOmJvcmRlciAuMnMgZWFzZSx0cmFuc2Zvcm0gLjJzIGVhc2V9LmNhcmQtYmxvY2sgLmNhcmQtZGl2aWRlciwuY2FyZCAuY2FyZC10aXRsZSwuY2FyZCAuY2FyZC10ZXh0''@;'; + put 'put ''LC5jYXJkIC5jYXJkLW1lZGlhLWJsb2NrLC5jYXJkIC5saXN0LC5jYXJkIC5saXN0LXVuc3R5bGVke21hcmdpbi10b3A6MDttYXJnaW4tYm90dG9tOi42cmVtfS5jYXJkLWJsb2NrIC5jYXJkLWRpdmlkZXI6bGFzdC1jaGlsZCwuY2FyZCAuY2FyZC10aXRsZTpsYXN0LWNoaWxkLC5jYXJkIC5j''@;'; + put 'put ''YXJkLXRleHQ6bGFzdC1jaGlsZCwuY2FyZCAuY2FyZC1tZWRpYS1ibG9jazpsYXN0LWNoaWxkLC5jYXJkIC5saXN0Omxhc3QtY2hpbGQsLmNhcmQgLmxpc3QtdW5zdHlsZWQ6bGFzdC1jaGlsZHttYXJnaW4tYm90dG9tOjB9LmNhcmQuY2FyZC1pbWc+aW1nLC5jYXJkPi5jYXJkLWltZzpmaXJz''@;'; + put 'put ''dC1jaGlsZDpsYXN0LWNoaWxkPmltZywuY2FyZC1pbWc+aW1ne2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OmF1dG87d2lkdGg6MTAwJTttYXgtd2lkdGg6MTAwJX0uY2FyZHtwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmJsb2NrO2JhY2tncm91bmQtY29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9y''@;'; + put 'put ''OnZhcigtLWNsci1jYXJkLWJnLWNvbG9yLCB3aGl0ZSk7d2lkdGg6MTAwJTttYXJnaW4tdG9wOjEuMnJlbX0uY2FyZCAuYnRuLWxpbmt7bWluLXdpZHRoOjA7cGFkZGluZzowfS5jYXJkLmNsaWNrYWJsZXtjb2xvcjppbmhlcml0fS5jYXJkPi5saXN0LC5jYXJkPi5saXN0LXVuc3R5bGVke3Bh''@;'; + put 'put ''ZGRpbmc6LjZyZW0gLjlyZW19LmNhcmQgLmxpc3QtZ3JvdXB7cGFkZGluZy1sZWZ0OjA7bWFyZ2luLWJvdHRvbTowO2xpc3Qtc3R5bGU6bm9uZX0uY2FyZCAubGlzdC1ncm91cC1pdGVte3BhZGRpbmc6LjZyZW0gLjlyZW07Zm9udC1zaXplOi43cmVtO2JhY2tncm91bmQtY29sb3I6I2ZmZjti''@;'; + put 'put ''YWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1jYXJkLWJnLWNvbG9yLCB3aGl0ZSk7Ym9yZGVyLWJvdHRvbS13aWR0aDouMDVyZW07Ym9yZGVyLWJvdHRvbS13aWR0aDp2YXIoLS1jbHItY2FyZC1ib3JkZXItd2lkdGgsIC4wNXJlbSk7Ym9yZGVyLWJvdHRvbS1zdHlsZTpzb2xpZDtib3JkZXIt''@;'; + put 'put ''Ym90dG9tLWNvbG9yOiNkZWRlZGU7Ym9yZGVyLWJvdHRvbS1jb2xvcjp2YXIoLS1jbHItY2FyZC1ib3JkZXItY29sb3IsICNkZWRlZGUpfUBzdXBwb3J0cyAoLW1zLWltZS1hbGlnbjphdXRvKXsuY2FyZCAuZHJvcGRvd24+LmRyb3Bkb3duLXRvZ2dsZTphZnRlcntkaXNwbGF5OmlubGluZS1i''@;'; + put 'put ''bG9jazttYXJnaW4tdG9wOi0uNnJlbX19LmNhcmQtaGVhZGVyLC5jYXJkLWJsb2NrLC5jYXJkLWZvb3RlcntwYWRkaW5nOi42cmVtIC45cmVtfS5jYXJkLWhlYWRlciwuY2FyZC10aXRsZXtjb2xvcjojMDAwO2NvbG9yOnZhcigtLWNsci1jYXJkLXRpdGxlLWNvbG9yLCBibGFjayk7Zm9udC13''@;'; + put 'put ''ZWlnaHQ6MjAwO2ZvbnQtd2VpZ2h0OnZhcigtLWNsci1jYXJkLXRpdGxlLWZvbnQtd2VpZ2h0LCAyMDApO2ZvbnQtc2l6ZTouOXJlbTtsZXR0ZXItc3BhY2luZzpub3JtYWx9aDEuY2FyZC1oZWFkZXIsaDEuY2FyZC10aXRsZSxoMi5jYXJkLWhlYWRlcixoMi5jYXJkLXRpdGxlLGgzLmNhcmQt''@;'; + put 'put ''aGVhZGVyLGgzLmNhcmQtdGl0bGUsaDQuY2FyZC1oZWFkZXIsaDQuY2FyZC10aXRsZSxoNS5jYXJkLWhlYWRlcixoNS5jYXJkLXRpdGxlLGg2LmNhcmQtaGVhZGVyLGg2LmNhcmQtdGl0bGV7bWFyZ2luLXRvcDowfS5jYXJkLXRleHR7Zm9udC1zaXplOi43cmVtfS5jYXJkLWltZzpmaXJzdC1j''@;'; + put 'put ''aGlsZD5pbWd7Ym9yZGVyLXJhZGl1czowO2JvcmRlci10b3AtbGVmdC1yYWRpdXM6LjE1cmVtO2JvcmRlci10b3AtbGVmdC1yYWRpdXM6dmFyKC0tY2xyLWNhcmQtYm9yZGVyLXJhZGl1cywgLjE1cmVtKTtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czouMTVyZW07Ym9yZGVyLXRvcC1yaWdodC1y''@;'; + put 'put ''YWRpdXM6dmFyKC0tY2xyLWNhcmQtYm9yZGVyLXJhZGl1cywgLjE1cmVtKX0uY2FyZC1pbWc6bGFzdC1jaGlsZD5pbWd7Ym9yZGVyLXJhZGl1czowO2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6LjE1cmVtO2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6dmFyKC0tY2xyLWNhcmQtYm9yZGVy''@;'; + put 'put ''LXJhZGl1cywgLjE1cmVtKTtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czouMTVyZW07Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6dmFyKC0tY2xyLWNhcmQtYm9yZGVyLXJhZGl1cywgLjE1cmVtKX0uY2FyZC5jYXJkLWltZz5pbWcsLmNhcmQ+LmNhcmQtaW1nOmZpcnN0LWNoaWxkOmxh''@;'; + put 'put ''c3QtY2hpbGQ+aW1ne2JvcmRlci1yYWRpdXM6LjE1cmVtO2JvcmRlci1yYWRpdXM6dmFyKC0tY2xyLWNhcmQtYm9yZGVyLXJhZGl1cywgLjE1cmVtKX0uY2FyZC1ibG9jayAuYnRuLC5jYXJkLWJsb2NrIC5idG4uYnRuLWxpbmssLmNhcmQtYmxvY2sgLmNhcmQtbGluaywuY2FyZC1mb290ZXIg''@;'; + put 'put ''LmJ0biwuY2FyZC1mb290ZXIgLmJ0bi5idG4tbGluaywuY2FyZC1mb290ZXIgLmNhcmQtbGlua3ttYXJnaW46MCAuNnJlbSAwIDB9LmNhcmQtYmxvY2sgLmJ0bi1ncm91cCAuYnRuLC5jYXJkLWZvb3RlciAuYnRuLWdyb3VwIC5idG57bWFyZ2luOjB9LmNhcmQtaGVhZGVyLC5jYXJkLWJsb2Nr''@;'; + put 'put ''e2JvcmRlci1ib3R0b20td2lkdGg6LjA1cmVtO2JvcmRlci1ib3R0b20td2lkdGg6dmFyKC0tY2xyLWNhcmQtYm9yZGVyLXdpZHRoLCAuMDVyZW0pO2JvcmRlci1ib3R0b20tc3R5bGU6c29saWQ7Ym9yZGVyLWJvdHRvbS1jb2xvcjojZGVkZWRlO2JvcmRlci1ib3R0b20tY29sb3I6dmFyKC0t''@;'; + put 'put ''Y2xyLWNhcmQtYm9yZGVyLWNvbG9yLCAjZGVkZWRlKX0uY2FyZC1oZWFkZXI6bGFzdC1jaGlsZCwuY2FyZC1ibG9jazpsYXN0LWNoaWxke2JvcmRlci1ib3R0b206bm9uZX0uY2FyZC1kaXZpZGVye2Rpc3BsYXk6YmxvY2s7Ym9yZGVyLWJvdHRvbS13aWR0aDouMDVyZW07Ym9yZGVyLWJvdHRv''@;'; + put 'put ''bS13aWR0aDp2YXIoLS1jbHItY2FyZC1ib3JkZXItd2lkdGgsIC4wNXJlbSk7Ym9yZGVyLWJvdHRvbS1zdHlsZTpzb2xpZDtib3JkZXItYm90dG9tLWNvbG9yOiNkZWRlZGU7Ym9yZGVyLWJvdHRvbS1jb2xvcjp2YXIoLS1jbHItY2FyZC1kaXZpZGVyLWNvbG9yLCAjZGVkZWRlKX0uY2FyZC1i''@;'; + put 'put ''bG9jayAuY2FyZC1kaXZpZGVye21hcmdpbi1sZWZ0Oi0uOXJlbTttYXJnaW4tcmlnaHQ6LS45cmVtO3dpZHRoOmF1dG99LmNhcmQtaGVhZGVyKy5jYXJkLWRpdmlkZXIsLmNhcmQtYmxvY2srLmNhcmQtZGl2aWRlcntkaXNwbGF5Om5vbmV9LmNhcmQtbWVkaWEtYmxvY2t7ZGlzcGxheTpmbGV4''@;'; + put 'put ''fS5jYXJkLW1lZGlhLWJsb2NrIC5jYXJkLW1lZGlhLWltYWdle2Rpc3BsYXk6aW5saW5lLWJsb2NrO2ZsZXg6MCAwIGF1dG87aGVpZ2h0OjNyZW07d2lkdGg6M3JlbTttYXgtaGVpZ2h0OjNyZW07bWF4LXdpZHRoOjNyZW19LmNhcmQtbWVkaWEtYmxvY2sgLmNhcmQtbWVkaWEtZGVzY3JpcHRp''@;'; + put 'put ''b257ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjttYXJnaW46MCAwIDAgLjZyZW19LmNhcmQtbWVkaWEtYmxvY2sgLmNhcmQtbWVkaWEtdGl0bGUsLmNhcmQtbWVkaWEtYmxvY2sgc3BhbiwuY2FyZC1tZWRpYS1ibG9jayAuY2FyZC1tZWRpYS10ZXh0e2Rpc3BsYXk6aW5saW5l''@;'; + put 'put ''LWJsb2NrfS5jYXJkLW1lZGlhLWJsb2NrLndyYXB7ZmxleC1kaXJlY3Rpb246Y29sdW1ufS5jYXJkLW1lZGlhLWJsb2NrLndyYXAgLmNhcmQtbWVkaWEtZGVzY3JpcHRpb257bWFyZ2luOi4zcmVtIDAgMH0uY2FyZC1ibG9jaz4ubGlzdCwuY2FyZC1ibG9jaz4ubGlzdC11bnN0eWxlZHtwYWRk''@;'; + put 'put ''aW5nOjB9QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDo1NzZweCl7LmNhcmQtY29sdW1uc3tjb2x1bW4tY291bnQ6Mztjb2x1bW4tZ2FwOi42cmVtO3BhZ2UtYnJlYWstaW5zaWRlOmF2b2lkO2JyZWFrLWluc2lkZTphdm9pZDtjb2x1bW4tZmlsbDpiYWxhbmNlOy13ZWJraXQtcGVyc3Bl''@;'; + put 'put ''Y3RpdmU6MX0uY2FyZC1jb2x1bW5zLmNhcmQtY29sdW1ucy0ye2NvbHVtbi1jb3VudDoyfS5jYXJkLWNvbHVtbnMuY2FyZC1jb2x1bW5zLTR7Y29sdW1uLWNvdW50OjR9LmNhcmQtY29sdW1ucyAuY2FyZHtkaXNwbGF5OmlubGluZS1ibG9jazttYXJnaW46LjNyZW19LmNhcmQtY29sdW1ucyAu''@;'; + put 'put ''Y2xpY2thYmxley13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTpoaWRkZW47YmFja2ZhY2UtdmlzaWJpbGl0eTpoaWRkZW59fUBzdXBwb3J0cyAoLW1zLWltZS1hbGlnbjphdXRvKXsuY2FyZCAuY2hlY2tib3guYnRuIGxhYmVsLC5jYXJkIC5jaGVja2JveC1pbmxpbmUuYnRuIGxhYmVsLC5j''@;'; + put 'put ''YXJkIC5yYWRpby5idG4gbGFiZWwsLmNhcmQgLnJhZGlvLWlubGluZS5idG4gbGFiZWx7ZGlzcGxheTppbmxpbmUtYmxvY2t9fTpyb290ey0tY2xyLWRyb3Bkb3duLWFjdGl2ZS10ZXh0LWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTEwMDApOy0tY2xyLWRyb3Bkb3duLWJnLWNvbG9y''@;'; + put 'put ''OnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTApOy0tY2xyLWRyb3Bkb3duLWJvcmRlci1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC00MDApOy0tY2xyLWRyb3Bkb3duLWRpdmlkZXItY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtMjAwKTstLWNsci1kcm9wZG93bi1kaXZpZGVy''@;'; + put 'put ''LWJvcmRlci13aWR0aDp2YXIoLS1jbHItZ2xvYmFsLWJvcmRlcndpZHRoKTstLWNsci1kcm9wZG93bi1jaGlsZC1ib3JkZXItY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNTAwKTstLWNsci1kcm9wZG93bi1iZy1ob3Zlci1jb2xvcjp2YXIoLS1jbHItZ2xvYmFsLWhvdmVyLWNvbG9y''@;'; + put 'put ''KTstLWNsci1kcm9wZG93bi1zZWxlY3Rpb24tY29sb3I6dmFyKC0tY2xyLWdsb2JhbC1zZWxlY3Rpb24tY29sb3IpOy0tY2xyLWRyb3Bkb3duLWJveC1zaGFkb3c6dmFyKC0tY2xyLXBvcG92ZXItYm94LXNoYWRvdy1jb2xvcik7LS1jbHItZHJvcGRvd24tdGV4dC1jb2xvcjp2YXIoLS1jbHIt''@;'; + put 'put ''cDEtY29sb3IpOy0tY2xyLWRyb3Bkb3duLWhlYWRlci1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC05MDApOy0tY2xyLWRyb3Bkb3duLWhlYWRlci1mb250LXdlaWdodDo2MDA7LS1jbHItZHJvcGRvd24taXRlbS1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC03MDApOy0tY2xy''@;'; + put 'put ''LWRyb3Bkb3duLWl0ZW0tZm9udC13ZWlnaHQ6dmFyKC0tY2xyLXAxLWZvbnQtd2VpZ2h0KX0uZHJvcGRvd24tbWVudSAuYnRuLC5kcm9wZG93bi1tZW51IC5idG4tc2Vjb25kYXJ5LC5kcm9wZG93bi1tZW51IC5idG4taW5mbywuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUsLmRyb3Bkb3du''@;'; + put 'put ''LW1lbnUgLmJ0bi1vdXRsaW5lLXByaW1hcnksLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLXNlY29uZGFyeSwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtd2FybmluZywuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtZGFuZ2VyLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZS1z''@;'; + put 'put ''dWNjZXNzLC5kcm9wZG93bi1tZW51IC5idG4tZGFuZ2VyLC5kcm9wZG93bi1tZW51IC5idG4tcHJpbWFyeSwuZHJvcGRvd24tbWVudSAuYnRuLXdhcm5pbmcsLmRyb3Bkb3duLW1lbnUgLmJ0bi1zdWNjZXNzLC5kcm9wZG93bi1tZW51IC5idG4tbGluaywuZHJvcGRvd24tbWVudSAuZHJvcGRv''@;'; + put 'put ''d24taXRlbSwuZHJvcGRvd24tbWVudSAuZHJvcGRvd24taGVhZGVye292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3RleHQtYWxpZ246bGVmdH0uZHJvcGRvd257cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTppbmxpbmUtYmxvY2t9LmRyb3Bkb3duIC5kcm9wZG93bi10''@;'; + put 'put ''b2dnbGV7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtwb3NpdGlvbjpyZWxhdGl2ZTttYXJnaW46MDt3aGl0ZS1zcGFjZTpub3dyYXA7Y3Vyc29yOnBvaW50ZXJ9LmRyb3Bkb3duIC5kcm9wZG93bi10b2dnbGUgY2xyLWljb25b''@;'; + put 'put ''c2hhcGVePWNhcmV0XSwuZHJvcGRvd24gLmRyb3Bkb3duLXRvZ2dsZSBjbHItaWNvbltzaGFwZV49YW5nbGVde3Bvc2l0aW9uOmFic29sdXRlO2NvbG9yOmluaGVyaXQ7aGVpZ2h0Oi41cmVtO3dpZHRoOi41cmVtO21pbi1oZWlnaHQ6LjVyZW07bWluLXdpZHRoOi41cmVtfS5kcm9wZG93biAu''@;'; + put 'put ''ZHJvcGRvd24tdG9nZ2xlIGNkcy1pY29uW3NoYXBlXj1jYXJldF0sLmRyb3Bkb3duIC5kcm9wZG93bi10b2dnbGUgY2RzLWljb25bc2hhcGVePWFuZ2xlXXttYXJnaW4tdG9wOnVuc2V0O3Bvc2l0aW9uOmFic29sdXRlO2NvbG9yOmluaGVyaXQ7aGVpZ2h0Oi41cmVtO3dpZHRoOi41cmVtOy0t''@;'; + put 'put ''Y2RzLWdsb2JhbC1zcGFjZS03Oi41cmVtfS5kcm9wZG93biAuZHJvcGRvd24tdG9nZ2xlLmJ0bntwYWRkaW5nLXJpZ2h0OjEuMnJlbTt0ZXh0LW92ZXJmbG93OnVuc2V0fS5kcm9wZG93biAuZHJvcGRvd24tdG9nZ2xlLmJ0biBjbHItaWNvbnt0cmFuc2Zvcm06bm9uZX0uZHJvcGRvd24gLmRy''@;'; + put 'put ''b3Bkb3duLXRvZ2dsZS5idG4gY2RzLWljb25bc2hhcGVePWNhcmV0XSwuZHJvcGRvd24gLmRyb3Bkb3duLXRvZ2dsZS5idG4gY2xyLWljb25bc2hhcGVePWNhcmV0XSwuZHJvcGRvd24gLmRyb3Bkb3duLXRvZ2dsZS5idG4gY2RzLWljb25bc2hhcGVePWFuZ2xlXSwuZHJvcGRvd24gLmRyb3Bk''@;'; + put 'put ''b3duLXRvZ2dsZS5idG4gY2xyLWljb25bc2hhcGVePWFuZ2xlXXtyaWdodDouNnJlbX0uZHJvcGRvd24gLmRyb3Bkb3duLXRvZ2dsZTpub3QoLmJ0bil7cGFkZGluZzowIC42cmVtIDAgMDtjb2xvcjojMDAwO2NvbG9yOnZhcigtLWNsci1kcm9wZG93bi1hY3RpdmUtdGV4dC1jb2xvciwgYmxh''@;'; + put 'put ''Y2spfS5kcm9wZG93biAuZHJvcGRvd24tdG9nZ2xlOm5vdCguYnRuKSBjZHMtaWNvbltzaGFwZV49Y2FyZXRdLC5kcm9wZG93biAuZHJvcGRvd24tdG9nZ2xlOm5vdCguYnRuKSBjbHItaWNvbltzaGFwZV49Y2FyZXRdLC5kcm9wZG93biAuZHJvcGRvd24tdG9nZ2xlOm5vdCguYnRuKSBjZHMt''@;'; + put 'put ''aWNvbltzaGFwZV49YW5nbGVdLC5kcm9wZG93biAuZHJvcGRvd24tdG9nZ2xlOm5vdCguYnRuKSBjbHItaWNvbltzaGFwZV49YW5nbGVde3JpZ2h0OjB9LmRyb3Bkb3duIGJ1dHRvbi5kcm9wZG93bi10b2dnbGU6bm90KC5idG4pe2JhY2tncm91bmQ6MCAwO2JvcmRlcjowO2N1cnNvcjpwb2lu''@;'; + put 'put ''dGVyO2NvbG9yOiMwMDA7Y29sb3I6dmFyKC0tY2xyLWRyb3Bkb3duLWFjdGl2ZS10ZXh0LWNvbG9yLCBibGFjayl9LmRyb3Bkb3duLW1lbnU+KntkaXNwbGF5OmJsb2NrO3doaXRlLXNwYWNlOm5vd3JhcH0uZHJvcGRvd24tbWVudXtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1u''@;'; + put 'put ''O3Bvc2l0aW9uOmFic29sdXRlO3RvcDoxMDAlO2xlZnQ6MDttaW4td2lkdGg6NnJlbTttYXgtd2lkdGg6MThyZW07YmFja2dyb3VuZDojZmZmO2JhY2tncm91bmQ6dmFyKC0tY2xyLWRyb3Bkb3duLWJnLWNvbG9yLCB3aGl0ZSk7Ym9yZGVyLXdpZHRoOi4wNXJlbTtib3JkZXItd2lkdGg6dmFy''@;'; + put 'put ''KC0tY2xyLWdsb2JhbC1ib3JkZXJ3aWR0aCwgLjA1cmVtKTtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLWNvbG9yOiNjY2M7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1kcm9wZG93bi1ib3JkZXItY29sb3IsICNjY2NjY2MpO2JvcmRlci1yYWRpdXM6LjE1cmVtO2JvcmRlci1yYWRpdXM6dmFy''@;'; + put 'put ''KC0tY2xyLWdsb2JhbC1ib3JkZXJyYWRpdXMsIC4xNXJlbSk7Ym94LXNoYWRvdzowIC4wNXJlbSAuMTVyZW0gIzhjOGM4YzQwO2JveC1zaGFkb3c6MCAuMDVyZW0gLjE1cmVtIHZhcigtLWNsci1kcm9wZG93bi1ib3gtc2hhZG93LCByZ2JhKDE0MCwgMTQwLCAxNDAsIC4yNSkpO21hcmdpbi10''@;'; + put 'put ''b3A6LjFyZW07cGFkZGluZzouNnJlbSAwO3Zpc2liaWxpdHk6aGlkZGVuO3otaW5kZXg6MTA1MH0uZHJvcGRvd24tbWVudSAuZHJvcGRvd24taGVhZGVye2NvbG9yOiMzMzM7Y29sb3I6dmFyKC0tY2xyLWRyb3Bkb3duLWhlYWRlci1jb2xvciwgIzMzMzMzMyk7Zm9udC1zaXplOi42cmVtO2Zv''@;'; + put 'put ''bnQtd2VpZ2h0OjYwMDtmb250LXdlaWdodDp2YXIoLS1jbHItZHJvcGRvd24taGVhZGVyLWZvbnQtd2VpZ2h0LCA2MDApO2xldHRlci1zcGFjaW5nOm5vcm1hbDtwYWRkaW5nOjAgLjZyZW07bGluZS1oZWlnaHQ6LjlyZW07bWFyZ2luOjB9LmRyb3Bkb3duLW1lbnUgLmJ0biwuZHJvcGRvd24t''@;'; + put 'put ''bWVudSAuYnRuLXNlY29uZGFyeSwuZHJvcGRvd24tbWVudSAuYnRuLWluZm8sLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZS1wcmltYXJ5LC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZS1zZWNvbmRhcnksLmRyb3Bkb3duLW1lbnUgLmJ0''@;'; + put 'put ''bi1vdXRsaW5lLXdhcm5pbmcsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLWRhbmdlciwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtc3VjY2VzcywuZHJvcGRvd24tbWVudSAuYnRuLWRhbmdlciwuZHJvcGRvd24tbWVudSAuYnRuLXByaW1hcnksLmRyb3Bkb3duLW1lbnUgLmJ0bi13''@;'; + put 'put ''YXJuaW5nLC5kcm9wZG93bi1tZW51IC5idG4tc3VjY2VzcywuZHJvcGRvd24tbWVudSAuYnRuLWxpbmssLmRyb3Bkb3duLW1lbnUgLmRyb3Bkb3duLWl0ZW17Y29sb3I6IzY2Njtjb2xvcjp2YXIoLS1jbHItZHJvcGRvd24taXRlbS1jb2xvciwgIzY2NjY2Nik7Zm9udC1zaXplOi43cmVtO2Zv''@;'; + put 'put ''bnQtd2VpZ2h0OjQwMDtmb250LXdlaWdodDp2YXIoLS1jbHItZHJvcGRvd24taXRlbS1mb250LXdlaWdodCwgNDAwKTtsZXR0ZXItc3BhY2luZzpub3JtYWw7YmFja2dyb3VuZDowIDA7Ym9yZGVyOjA7Y3Vyc29yOnBvaW50ZXI7ZGlzcGxheTpibG9jaztoZWlnaHQ6YXV0bztsaW5lLWhlaWdo''@;'; + put 'put ''dDppbmhlcml0O21hcmdpbjowO3dpZHRoOjEwMCU7dGV4dC10cmFuc2Zvcm06bm9uZX0uZHJvcGRvd24tbWVudSAuYnRuOmhvdmVyLC5kcm9wZG93bi1tZW51IC5idG4tc2Vjb25kYXJ5OmhvdmVyLC5kcm9wZG93bi1tZW51IC5idG4taW5mbzpob3ZlciwuZHJvcGRvd24tbWVudSAuYnRuLW91''@;'; + put 'put ''dGxpbmU6aG92ZXIsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLXByaW1hcnk6aG92ZXIsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLXNlY29uZGFyeTpob3ZlciwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtd2FybmluZzpob3ZlciwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxp''@;'; + put 'put ''bmUtZGFuZ2VyOmhvdmVyLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZS1zdWNjZXNzOmhvdmVyLC5kcm9wZG93bi1tZW51IC5idG4tZGFuZ2VyOmhvdmVyLC5kcm9wZG93bi1tZW51IC5idG4tcHJpbWFyeTpob3ZlciwuZHJvcGRvd24tbWVudSAuYnRuLXdhcm5pbmc6aG92ZXIsLmRyb3Bk''@;'; + put 'put ''b3duLW1lbnUgLmJ0bi1zdWNjZXNzOmhvdmVyLC5kcm9wZG93bi1tZW51IC5idG4tbGluazpob3ZlciwuZHJvcGRvd24tbWVudSAuZHJvcGRvd24taXRlbTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiNlOGU4ZTg7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItZHJvcGRvd24tYmctaG92ZXIt''@;'; + put 'put ''Y29sb3IsICNlOGU4ZTgpO2NvbG9yOiM2NjY7Y29sb3I6dmFyKC0tY2xyLWRyb3Bkb3duLWl0ZW0tY29sb3IsICM2NjY2NjYpO3RleHQtZGVjb3JhdGlvbjpub25lfS5kcm9wZG93bi1tZW51IC5idG4uYWN0aXZlLC5kcm9wZG93bi1tZW51IC5idG4tc2Vjb25kYXJ5LmFjdGl2ZSwuZHJvcGRv''@;'; + put 'put ''d24tbWVudSAuYnRuLWluZm8uYWN0aXZlLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZS5hY3RpdmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLXByaW1hcnkuYWN0aXZlLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZS1zZWNvbmRhcnkuYWN0aXZlLC5kcm9wZG93bi1tZW51IC5i''@;'; + put 'put ''dG4tb3V0bGluZS13YXJuaW5nLmFjdGl2ZSwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtZGFuZ2VyLmFjdGl2ZSwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtc3VjY2Vzcy5hY3RpdmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1kYW5nZXIuYWN0aXZlLC5kcm9wZG93bi1tZW51IC5idG4t''@;'; + put 'put ''cHJpbWFyeS5hY3RpdmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi13YXJuaW5nLmFjdGl2ZSwuZHJvcGRvd24tbWVudSAuYnRuLXN1Y2Nlc3MuYWN0aXZlLC5kcm9wZG93bi1tZW51IC5idG4tbGluay5hY3RpdmUsLmRyb3Bkb3duLW1lbnUgLmRyb3Bkb3duLWl0ZW0uYWN0aXZle2JhY2tncm91bmQ6''@;'; + put 'put ''I2Q4ZTNlOTtiYWNrZ3JvdW5kOnZhcigtLWNsci1kcm9wZG93bi1zZWxlY3Rpb24tY29sb3IsICNkOGUzZTkpO2NvbG9yOiMwMDA7Y29sb3I6dmFyKC0tY2xyLWRyb3Bkb3duLWFjdGl2ZS10ZXh0LWNvbG9yLCBibGFjayl9LmRyb3Bkb3duLW1lbnUgLmJ0bjphY3RpdmUsLmRyb3Bkb3duLW1l''@;'; + put 'put ''bnUgLmJ0bi1zZWNvbmRhcnk6YWN0aXZlLC5kcm9wZG93bi1tZW51IC5idG4taW5mbzphY3RpdmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lOmFjdGl2ZSwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtcHJpbWFyeTphY3RpdmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLXNl''@;'; + put 'put ''Y29uZGFyeTphY3RpdmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLXdhcm5pbmc6YWN0aXZlLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZS1kYW5nZXI6YWN0aXZlLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZS1zdWNjZXNzOmFjdGl2ZSwuZHJvcGRvd24tbWVudSAuYnRuLWRh''@;'; + put 'put ''bmdlcjphY3RpdmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1wcmltYXJ5OmFjdGl2ZSwuZHJvcGRvd24tbWVudSAuYnRuLXdhcm5pbmc6YWN0aXZlLC5kcm9wZG93bi1tZW51IC5idG4tc3VjY2VzczphY3RpdmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1saW5rOmFjdGl2ZSwuZHJvcGRvd24tbWVudSAu''@;'; + put 'put ''ZHJvcGRvd24taXRlbTphY3RpdmV7Ym94LXNoYWRvdzpub25lfS5kcm9wZG93bi1tZW51IC5idG46Zm9jdXMsLmRyb3Bkb3duLW1lbnUgLmJ0bi1zZWNvbmRhcnk6Zm9jdXMsLmRyb3Bkb3duLW1lbnUgLmJ0bi1pbmZvOmZvY3VzLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZTpmb2N1cywu''@;'; + put 'put ''ZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtcHJpbWFyeTpmb2N1cywuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtc2Vjb25kYXJ5OmZvY3VzLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZS13YXJuaW5nOmZvY3VzLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZS1kYW5nZXI6Zm9j''@;'; + put 'put ''dXMsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLXN1Y2Nlc3M6Zm9jdXMsLmRyb3Bkb3duLW1lbnUgLmJ0bi1kYW5nZXI6Zm9jdXMsLmRyb3Bkb3duLW1lbnUgLmJ0bi1wcmltYXJ5OmZvY3VzLC5kcm9wZG93bi1tZW51IC5idG4td2FybmluZzpmb2N1cywuZHJvcGRvd24tbWVudSAuYnRu''@;'; + put 'put ''LXN1Y2Nlc3M6Zm9jdXMsLmRyb3Bkb3duLW1lbnUgLmJ0bi1saW5rOmZvY3VzLC5kcm9wZG93bi1tZW51IC5kcm9wZG93bi1pdGVtOmZvY3Vze3otaW5kZXg6aW5oZXJpdH0uZHJvcGRvd24tbWVudSAuYnRuLmRpc2FibGVkLC5kcm9wZG93bi1tZW51IC5idG46ZGlzYWJsZWQsLmRyb3Bkb3du''@;'; + put 'put ''LW1lbnUgLmJ0bi1zZWNvbmRhcnkuZGlzYWJsZWQsLmRyb3Bkb3duLW1lbnUgLmJ0bi1zZWNvbmRhcnk6ZGlzYWJsZWQsLmRyb3Bkb3duLW1lbnUgLmJ0bi1pbmZvLmRpc2FibGVkLC5kcm9wZG93bi1tZW51IC5idG4taW5mbzpkaXNhYmxlZCwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUu''@;'; + put 'put ''ZGlzYWJsZWQsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lOmRpc2FibGVkLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZS1wcmltYXJ5LmRpc2FibGVkLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZS1wcmltYXJ5OmRpc2FibGVkLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZS1z''@;'; + put 'put ''ZWNvbmRhcnkuZGlzYWJsZWQsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLXNlY29uZGFyeTpkaXNhYmxlZCwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtd2FybmluZy5kaXNhYmxlZCwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtd2FybmluZzpkaXNhYmxlZCwuZHJvcGRvd24t''@;'; + put 'put ''bWVudSAuYnRuLW91dGxpbmUtZGFuZ2VyLmRpc2FibGVkLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZS1kYW5nZXI6ZGlzYWJsZWQsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLXN1Y2Nlc3MuZGlzYWJsZWQsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLXN1Y2Nlc3M6ZGlzYWJs''@;'; + put 'put ''ZWQsLmRyb3Bkb3duLW1lbnUgLmJ0bi1kYW5nZXIuZGlzYWJsZWQsLmRyb3Bkb3duLW1lbnUgLmJ0bi1kYW5nZXI6ZGlzYWJsZWQsLmRyb3Bkb3duLW1lbnUgLmJ0bi1wcmltYXJ5LmRpc2FibGVkLC5kcm9wZG93bi1tZW51IC5idG4tcHJpbWFyeTpkaXNhYmxlZCwuZHJvcGRvd24tbWVudSAu''@;'; + put 'put ''YnRuLXdhcm5pbmcuZGlzYWJsZWQsLmRyb3Bkb3duLW1lbnUgLmJ0bi13YXJuaW5nOmRpc2FibGVkLC5kcm9wZG93bi1tZW51IC5idG4tc3VjY2Vzcy5kaXNhYmxlZCwuZHJvcGRvd24tbWVudSAuYnRuLXN1Y2Nlc3M6ZGlzYWJsZWQsLmRyb3Bkb3duLW1lbnUgLmJ0bi1saW5rLmRpc2FibGVk''@;'; + put 'put ''LC5kcm9wZG93bi1tZW51IC5idG4tbGluazpkaXNhYmxlZCwuZHJvcGRvd24tbWVudSAuZHJvcGRvd24taXRlbS5kaXNhYmxlZCwuZHJvcGRvd24tbWVudSAuZHJvcGRvd24taXRlbTpkaXNhYmxlZHtjdXJzb3I6bm90LWFsbG93ZWQ7b3BhY2l0eTouNDstd2Via2l0LXVzZXItc2VsZWN0Om5v''@;'; + put 'put ''bmU7dXNlci1zZWxlY3Q6bm9uZX0uZHJvcGRvd24tbWVudSAuYnRuLmRpc2FibGVkOmhvdmVyLC5kcm9wZG93bi1tZW51IC5idG46ZGlzYWJsZWQ6aG92ZXIsLmRyb3Bkb3duLW1lbnUgLmJ0bi1zZWNvbmRhcnkuZGlzYWJsZWQ6aG92ZXIsLmRyb3Bkb3duLW1lbnUgLmJ0bi1zZWNvbmRhcnk6''@;'; + put 'put ''ZGlzYWJsZWQ6aG92ZXIsLmRyb3Bkb3duLW1lbnUgLmJ0bi1pbmZvLmRpc2FibGVkOmhvdmVyLC5kcm9wZG93bi1tZW51IC5idG4taW5mbzpkaXNhYmxlZDpob3ZlciwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUuZGlzYWJsZWQ6aG92ZXIsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5l''@;'; + put 'put ''OmRpc2FibGVkOmhvdmVyLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZS1wcmltYXJ5LmRpc2FibGVkOmhvdmVyLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZS1wcmltYXJ5OmRpc2FibGVkOmhvdmVyLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZS1zZWNvbmRhcnkuZGlzYWJsZWQ6''@;'; + put 'put ''aG92ZXIsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLXNlY29uZGFyeTpkaXNhYmxlZDpob3ZlciwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtd2FybmluZy5kaXNhYmxlZDpob3ZlciwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtd2FybmluZzpkaXNhYmxlZDpob3ZlciwuZHJv''@;'; + put 'put ''cGRvd24tbWVudSAuYnRuLW91dGxpbmUtZGFuZ2VyLmRpc2FibGVkOmhvdmVyLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZS1kYW5nZXI6ZGlzYWJsZWQ6aG92ZXIsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLXN1Y2Nlc3MuZGlzYWJsZWQ6aG92ZXIsLmRyb3Bkb3duLW1lbnUgLmJ0''@;'; + put 'put ''bi1vdXRsaW5lLXN1Y2Nlc3M6ZGlzYWJsZWQ6aG92ZXIsLmRyb3Bkb3duLW1lbnUgLmJ0bi1kYW5nZXIuZGlzYWJsZWQ6aG92ZXIsLmRyb3Bkb3duLW1lbnUgLmJ0bi1kYW5nZXI6ZGlzYWJsZWQ6aG92ZXIsLmRyb3Bkb3duLW1lbnUgLmJ0bi1wcmltYXJ5LmRpc2FibGVkOmhvdmVyLC5kcm9w''@;'; + put 'put ''ZG93bi1tZW51IC5idG4tcHJpbWFyeTpkaXNhYmxlZDpob3ZlciwuZHJvcGRvd24tbWVudSAuYnRuLXdhcm5pbmcuZGlzYWJsZWQ6aG92ZXIsLmRyb3Bkb3duLW1lbnUgLmJ0bi13YXJuaW5nOmRpc2FibGVkOmhvdmVyLC5kcm9wZG93bi1tZW51IC5idG4tc3VjY2Vzcy5kaXNhYmxlZDpob3Zl''@;'; + put 'put ''ciwuZHJvcGRvd24tbWVudSAuYnRuLXN1Y2Nlc3M6ZGlzYWJsZWQ6aG92ZXIsLmRyb3Bkb3duLW1lbnUgLmJ0bi1saW5rLmRpc2FibGVkOmhvdmVyLC5kcm9wZG93bi1tZW51IC5idG4tbGluazpkaXNhYmxlZDpob3ZlciwuZHJvcGRvd24tbWVudSAuZHJvcGRvd24taXRlbS5kaXNhYmxlZDpo''@;'; + put 'put ''b3ZlciwuZHJvcGRvd24tbWVudSAuZHJvcGRvd24taXRlbTpkaXNhYmxlZDpob3ZlcntiYWNrZ3JvdW5kOjAgMH0uZHJvcGRvd24tbWVudSAuYnRuLmRpc2FibGVkOmFjdGl2ZSwuZHJvcGRvd24tbWVudSAuYnRuOmRpc2FibGVkOmFjdGl2ZSwuZHJvcGRvd24tbWVudSAuYnRuLXNlY29uZGFy''@;'; + put 'put ''eS5kaXNhYmxlZDphY3RpdmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1zZWNvbmRhcnk6ZGlzYWJsZWQ6YWN0aXZlLC5kcm9wZG93bi1tZW51IC5idG4taW5mby5kaXNhYmxlZDphY3RpdmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1pbmZvOmRpc2FibGVkOmFjdGl2ZSwuZHJvcGRvd24tbWVudSAuYnRu''@;'; + put 'put ''LW91dGxpbmUuZGlzYWJsZWQ6YWN0aXZlLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZTpkaXNhYmxlZDphY3RpdmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLXByaW1hcnkuZGlzYWJsZWQ6YWN0aXZlLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZS1wcmltYXJ5OmRpc2FibGVk''@;'; + put 'put ''OmFjdGl2ZSwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtc2Vjb25kYXJ5LmRpc2FibGVkOmFjdGl2ZSwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtc2Vjb25kYXJ5OmRpc2FibGVkOmFjdGl2ZSwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtd2FybmluZy5kaXNhYmxlZDphY3Rp''@;'; + put 'put ''dmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLXdhcm5pbmc6ZGlzYWJsZWQ6YWN0aXZlLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZS1kYW5nZXIuZGlzYWJsZWQ6YWN0aXZlLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZS1kYW5nZXI6ZGlzYWJsZWQ6YWN0aXZlLC5kcm9wZG93''@;'; + put 'put ''bi1tZW51IC5idG4tb3V0bGluZS1zdWNjZXNzLmRpc2FibGVkOmFjdGl2ZSwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtc3VjY2VzczpkaXNhYmxlZDphY3RpdmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1kYW5nZXIuZGlzYWJsZWQ6YWN0aXZlLC5kcm9wZG93bi1tZW51IC5idG4tZGFuZ2Vy''@;'; + put 'put ''OmRpc2FibGVkOmFjdGl2ZSwuZHJvcGRvd24tbWVudSAuYnRuLXByaW1hcnkuZGlzYWJsZWQ6YWN0aXZlLC5kcm9wZG93bi1tZW51IC5idG4tcHJpbWFyeTpkaXNhYmxlZDphY3RpdmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi13YXJuaW5nLmRpc2FibGVkOmFjdGl2ZSwuZHJvcGRvd24tbWVudSAu''@;'; + put 'put ''YnRuLXdhcm5pbmc6ZGlzYWJsZWQ6YWN0aXZlLC5kcm9wZG93bi1tZW51IC5idG4tc3VjY2Vzcy5kaXNhYmxlZDphY3RpdmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1zdWNjZXNzOmRpc2FibGVkOmFjdGl2ZSwuZHJvcGRvd24tbWVudSAuYnRuLWxpbmsuZGlzYWJsZWQ6YWN0aXZlLC5kcm9wZG93''@;'; + put 'put ''bi1tZW51IC5idG4tbGluazpkaXNhYmxlZDphY3RpdmUsLmRyb3Bkb3duLW1lbnUgLmRyb3Bkb3duLWl0ZW0uZGlzYWJsZWQ6YWN0aXZlLC5kcm9wZG93bi1tZW51IC5kcm9wZG93bi1pdGVtOmRpc2FibGVkOmFjdGl2ZXtiYWNrZ3JvdW5kOjAgMDtib3gtc2hhZG93Om5vbmV9LmRyb3Bkb3du''@;'; + put 'put ''LW1lbnUgLmJ0bi5leHBhbmRhYmxlLC5kcm9wZG93bi1tZW51IC5idG4tc2Vjb25kYXJ5LmV4cGFuZGFibGUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1pbmZvLmV4cGFuZGFibGUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLmV4cGFuZGFibGUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5l''@;'; + put 'put ''LXByaW1hcnkuZXhwYW5kYWJsZSwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtc2Vjb25kYXJ5LmV4cGFuZGFibGUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLXdhcm5pbmcuZXhwYW5kYWJsZSwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtZGFuZ2VyLmV4cGFuZGFibGUsLmRy''@;'; + put 'put ''b3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLXN1Y2Nlc3MuZXhwYW5kYWJsZSwuZHJvcGRvd24tbWVudSAuYnRuLWRhbmdlci5leHBhbmRhYmxlLC5kcm9wZG93bi1tZW51IC5idG4tcHJpbWFyeS5leHBhbmRhYmxlLC5kcm9wZG93bi1tZW51IC5idG4td2FybmluZy5leHBhbmRhYmxlLC5kcm9w''@;'; + put 'put ''ZG93bi1tZW51IC5idG4tc3VjY2Vzcy5leHBhbmRhYmxlLC5kcm9wZG93bi1tZW51IC5idG4tbGluay5leHBhbmRhYmxlLC5kcm9wZG93bi1tZW51IC5kcm9wZG93bi1pdGVtLmV4cGFuZGFibGV7bWFyZ2luLXJpZ2h0OjEuMnJlbTtwYWRkaW5nLXJpZ2h0Oi42cmVtfS5kcm9wZG93bi1tZW51''@;'; + put 'put ''IC5idG4uZXhwYW5kYWJsZTpiZWZvcmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1zZWNvbmRhcnkuZXhwYW5kYWJsZTpiZWZvcmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1pbmZvLmV4cGFuZGFibGU6YmVmb3JlLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZS5leHBhbmRhYmxlOmJlZm9yZSwuZHJv''@;'; + put 'put ''cGRvd24tbWVudSAuYnRuLW91dGxpbmUtcHJpbWFyeS5leHBhbmRhYmxlOmJlZm9yZSwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtc2Vjb25kYXJ5LmV4cGFuZGFibGU6YmVmb3JlLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZS13YXJuaW5nLmV4cGFuZGFibGU6YmVmb3JlLC5kcm9w''@;'; + put 'put ''ZG93bi1tZW51IC5idG4tb3V0bGluZS1kYW5nZXIuZXhwYW5kYWJsZTpiZWZvcmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLXN1Y2Nlc3MuZXhwYW5kYWJsZTpiZWZvcmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1kYW5nZXIuZXhwYW5kYWJsZTpiZWZvcmUsLmRyb3Bkb3duLW1lbnUgLmJ0''@;'; + put 'put ''bi1wcmltYXJ5LmV4cGFuZGFibGU6YmVmb3JlLC5kcm9wZG93bi1tZW51IC5idG4td2FybmluZy5leHBhbmRhYmxlOmJlZm9yZSwuZHJvcGRvd24tbWVudSAuYnRuLXN1Y2Nlc3MuZXhwYW5kYWJsZTpiZWZvcmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1saW5rLmV4cGFuZGFibGU6YmVmb3JlLC5k''@;'; + put 'put ''cm9wZG93bi1tZW51IC5kcm9wZG93bi1pdGVtLmV4cGFuZGFibGU6YmVmb3Jle2NvbnRlbnQ6IiI7ZmxvYXQ6cmlnaHQ7aGVpZ2h0Oi42cmVtO3dpZHRoOi42cmVtO3RyYW5zZm9ybTpyb3RhdGUoLTkwZGVnKTtiYWNrZ3JvdW5kLWltYWdlOnVybChkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNl''@;'; + put 'put ''dD11dGY4LCUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMTIlMjAxMiUyMiUzRSUwQSUyMCUyMCUyMCUyMCUzQ2RlZnMlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NzdHlsZSUz''@;'; + put 'put ''RS5jbHMtMSU3QmZpbGwlM0ElMjM5YTlhOWElM0IlN0QlM0MlMkZzdHlsZSUzRSUwQSUyMCUyMCUyMCUyMCUzQyUyRmRlZnMlM0UlMEElMjAlMjAlMjAlMjAlM0N0aXRsZSUzRUNhcmV0JTNDJTJGdGl0bGUlM0UlMEElMjAlMjAlMjAlMjAlM0NwYXRoJTIwY2xhc3MlM0QlMjJjbHMtMSUyMiUy''@;'; + put 'put ''MGQlM0QlMjJNNiUyQzlMMS4yJTJDNC4yYTAuNjglMkMwLjY4JTJDMCUyQzAlMkMxJTJDMS0xTDYlMkM3LjA4JTJDOS44NCUyQzMuMjRhMC42OCUyQzAuNjglMkMwJTJDMSUyQzElMkMxJTJDMVolMjIlMkYlM0UlMEElM0MlMkZzdmclM0UlMEEpO2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVh''@;'; + put 'put ''dDtiYWNrZ3JvdW5kLXNpemU6Y29udGFpbjt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7bWFyZ2luLXRvcDouM3JlbX0uZHJvcGRvd24tbWVudSAuYnRuLC5kcm9wZG93bi1tZW51IC5kcm9wZG93bi1pdGVte3BhZGRpbmc6LjE1cmVtIDEuMnJlbX1AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRo''@;'; + put 'put ''OjU3NnB4KXsuZHJvcGRvd24tbWVudSAuYnRuLC5kcm9wZG93bi1tZW51IC5kcm9wZG93bi1pdGVte3BhZGRpbmc6LjNyZW0gMS4ycmVtfX0uZHJvcGRvd24tbWVudSAuZHJvcGRvd24tZGl2aWRlcntmb250LXNpemU6LjZyZW07Ym9yZGVyLWJvdHRvbS13aWR0aDouMDVyZW07Ym9yZGVyLWJv''@;'; + put 'put ''dHRvbS13aWR0aDp2YXIoLS1jbHItZHJvcGRvd24tZGl2aWRlci1ib3JkZXItd2lkdGgsIC4wNXJlbSk7Ym9yZGVyLWJvdHRvbS1zdHlsZTpzb2xpZDtib3JkZXItYm90dG9tLWNvbG9yOiNlOGU4ZTg7Ym9yZGVyLWJvdHRvbS1jb2xvcjp2YXIoLS1jbHItZHJvcGRvd24tZGl2aWRlci1jb2xv''@;'; + put 'put ''ciwgI2U4ZThlOCk7bWFyZ2luOi4zcmVtIDB9LmJ0bi1ncm91cC1vdmVyZmxvdy5vcGVuPi5kcm9wZG93bi1tZW51LC5idG4tZ3JvdXAtb3ZlcmZsb3cub3Blbj4uZHJvcGRvd24tbWVudS13cmFwcGVyPi5kcm9wZG93bi1tZW51LC50YWJzLW92ZXJmbG93Lm9wZW4+LmRyb3Bkb3duLW1lbnUs''@;'; + put 'put ''LnRhYnMtb3ZlcmZsb3cub3Blbj4uZHJvcGRvd24tbWVudS13cmFwcGVyPi5kcm9wZG93bi1tZW51LC5kcm9wZG93bi5vcGVuPi5kcm9wZG93bi1tZW51LC5kcm9wZG93bi5vcGVuPi5kcm9wZG93bi1tZW51LXdyYXBwZXI+LmRyb3Bkb3duLW1lbnV7dmlzaWJpbGl0eTp2aXNpYmxlfS5idG4t''@;'; + put 'put ''Z3JvdXAtb3ZlcmZsb3cuYm90dG9tLWxlZnQ+LmRyb3Bkb3duLW1lbnUsLmJ0bi1ncm91cC1vdmVyZmxvdy5ib3R0b20tcmlnaHQ+LmRyb3Bkb3duLW1lbnUsLnRhYnMtb3ZlcmZsb3cuYm90dG9tLWxlZnQ+LmRyb3Bkb3duLW1lbnUsLnRhYnMtb3ZlcmZsb3cuYm90dG9tLXJpZ2h0Pi5kcm9w''@;'; + put 'put ''ZG93bi1tZW51LC5kcm9wZG93bi5ib3R0b20tbGVmdD4uZHJvcGRvd24tbWVudSwuZHJvcGRvd24uYm90dG9tLXJpZ2h0Pi5kcm9wZG93bi1tZW51e3RvcDoxMDAlO2JvdHRvbTphdXRvO21hcmdpbjouMXJlbSAwIDB9LmJ0bi1ncm91cC1vdmVyZmxvdy5ib3R0b20tbGVmdD4uZHJvcGRvd24t''@;'; + put 'put ''bWVudSwudGFicy1vdmVyZmxvdy5ib3R0b20tbGVmdD4uZHJvcGRvd24tbWVudSwuZHJvcGRvd24uYm90dG9tLWxlZnQ+LmRyb3Bkb3duLW1lbnV7bGVmdDowO3JpZ2h0OmF1dG99LmJ0bi1ncm91cC1vdmVyZmxvdy5ib3R0b20tcmlnaHQ+LmRyb3Bkb3duLW1lbnUsLnRhYnMtb3ZlcmZsb3cu''@;'; + put 'put ''Ym90dG9tLXJpZ2h0Pi5kcm9wZG93bi1tZW51LC5kcm9wZG93bi5ib3R0b20tcmlnaHQ+LmRyb3Bkb3duLW1lbnV7cmlnaHQ6MDtsZWZ0OmF1dG99LmJ0bi1ncm91cC1vdmVyZmxvdy50b3AtbGVmdD4uZHJvcGRvd24tbWVudSwuYnRuLWdyb3VwLW92ZXJmbG93LnRvcC1yaWdodD4uZHJvcGRv''@;'; + put 'put ''d24tbWVudSwudGFicy1vdmVyZmxvdy50b3AtbGVmdD4uZHJvcGRvd24tbWVudSwudGFicy1vdmVyZmxvdy50b3AtcmlnaHQ+LmRyb3Bkb3duLW1lbnUsLmRyb3Bkb3duLnRvcC1sZWZ0Pi5kcm9wZG93bi1tZW51LC5kcm9wZG93bi50b3AtcmlnaHQ+LmRyb3Bkb3duLW1lbnV7dG9wOmF1dG87''@;'; + put 'put ''Ym90dG9tOjEwMCU7bWFyZ2luOjAgMCAuMXJlbX0uYnRuLWdyb3VwLW92ZXJmbG93LnRvcC1sZWZ0Pi5kcm9wZG93bi1tZW51LC50YWJzLW92ZXJmbG93LnRvcC1sZWZ0Pi5kcm9wZG93bi1tZW51LC5kcm9wZG93bi50b3AtbGVmdD4uZHJvcGRvd24tbWVudXtsZWZ0OjA7cmlnaHQ6YXV0b30u''@;'; + put 'put ''YnRuLWdyb3VwLW92ZXJmbG93LnRvcC1yaWdodD4uZHJvcGRvd24tbWVudSwudGFicy1vdmVyZmxvdy50b3AtcmlnaHQ+LmRyb3Bkb3duLW1lbnUsLmRyb3Bkb3duLnRvcC1yaWdodD4uZHJvcGRvd24tbWVudXtyaWdodDowO2xlZnQ6YXV0b30uYnRuLWdyb3VwLW92ZXJmbG93LmxlZnQtdG9w''@;'; + put 'put ''Pi5kcm9wZG93bi1tZW51LC5idG4tZ3JvdXAtb3ZlcmZsb3cubGVmdC1ib3R0b20+LmRyb3Bkb3duLW1lbnUsLnRhYnMtb3ZlcmZsb3cubGVmdC10b3A+LmRyb3Bkb3duLW1lbnUsLnRhYnMtb3ZlcmZsb3cubGVmdC1ib3R0b20+LmRyb3Bkb3duLW1lbnUsLmRyb3Bkb3duLmxlZnQtdG9wPi5k''@;'; + put 'put ''cm9wZG93bi1tZW51LC5kcm9wZG93bi5sZWZ0LWJvdHRvbT4uZHJvcGRvd24tbWVudXtyaWdodDoxMDAlO2xlZnQ6YXV0bzttYXJnaW46MCAuMXJlbSAwIDB9LmJ0bi1ncm91cC1vdmVyZmxvdy5sZWZ0LWJvdHRvbT4uZHJvcGRvd24tbWVudSwudGFicy1vdmVyZmxvdy5sZWZ0LWJvdHRvbT4u''@;'; + put 'put ''ZHJvcGRvd24tbWVudSwuZHJvcGRvd24ubGVmdC1ib3R0b20+LmRyb3Bkb3duLW1lbnV7dG9wOjA7Ym90dG9tOmF1dG99LmJ0bi1ncm91cC1vdmVyZmxvdy5sZWZ0LXRvcD4uZHJvcGRvd24tbWVudSwudGFicy1vdmVyZmxvdy5sZWZ0LXRvcD4uZHJvcGRvd24tbWVudSwuZHJvcGRvd24ubGVm''@;'; + put 'put ''dC10b3A+LmRyb3Bkb3duLW1lbnV7Ym90dG9tOjA7dG9wOmF1dG99LmJ0bi1ncm91cC1vdmVyZmxvdy5yaWdodC10b3A+LmRyb3Bkb3duLW1lbnUsLmJ0bi1ncm91cC1vdmVyZmxvdy5yaWdodC1ib3R0b20+LmRyb3Bkb3duLW1lbnUsLnRhYnMtb3ZlcmZsb3cucmlnaHQtdG9wPi5kcm9wZG93''@;'; + put 'put ''bi1tZW51LC50YWJzLW92ZXJmbG93LnJpZ2h0LWJvdHRvbT4uZHJvcGRvd24tbWVudSwuZHJvcGRvd24ucmlnaHQtdG9wPi5kcm9wZG93bi1tZW51LC5kcm9wZG93bi5yaWdodC1ib3R0b20+LmRyb3Bkb3duLW1lbnV7bGVmdDoxMDAlO3JpZ2h0OmF1dG87bWFyZ2luOjAgMCAwIC4xcmVtfS5i''@;'; + put 'put ''dG4tZ3JvdXAtb3ZlcmZsb3cucmlnaHQtYm90dG9tPi5kcm9wZG93bi1tZW51LC50YWJzLW92ZXJmbG93LnJpZ2h0LWJvdHRvbT4uZHJvcGRvd24tbWVudSwuZHJvcGRvd24ucmlnaHQtYm90dG9tPi5kcm9wZG93bi1tZW51e3RvcDowO2JvdHRvbTphdXRvfS5idG4tZ3JvdXAtb3ZlcmZsb3cu''@;'; + put 'put ''cmlnaHQtdG9wPi5kcm9wZG93bi1tZW51LC50YWJzLW92ZXJmbG93LnJpZ2h0LXRvcD4uZHJvcGRvd24tbWVudSwuZHJvcGRvd24ucmlnaHQtdG9wPi5kcm9wZG93bi1tZW51e2JvdHRvbTowO3RvcDphdXRvfS5idG4tZ3JvdXAtb3ZlcmZsb3cgLmRyb3Bkb3duIC5kcm9wZG93bi1tZW51LC50''@;'; + put 'put ''YWJzLW92ZXJmbG93IC5kcm9wZG93biAuZHJvcGRvd24tbWVudSwuZHJvcGRvd24gLmRyb3Bkb3duIC5kcm9wZG93bi1tZW51e2JvcmRlci1jb2xvcjojYjNiM2IzO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItZHJvcGRvd24tY2hpbGQtYm9yZGVyLWNvbG9yLCAjYjNiM2IzKTtwb3NpdGlvbjph''@;'; + put 'put ''YnNvbHV0ZX0uYnRuLWdyb3VwLW92ZXJmbG93IC5kcm9wZG93bi5sZWZ0LXRvcD4uZHJvcGRvd24tbWVudSwuYnRuLWdyb3VwLW92ZXJmbG93IC5kcm9wZG93bi5sZWZ0LXRvcD4uZHJvcGRvd24tbWVudS13cmFwcGVyPi5kcm9wZG93bi1tZW51LC50YWJzLW92ZXJmbG93IC5kcm9wZG93bi5s''@;'; + put 'put ''ZWZ0LXRvcD4uZHJvcGRvd24tbWVudSwudGFicy1vdmVyZmxvdyAuZHJvcGRvd24ubGVmdC10b3A+LmRyb3Bkb3duLW1lbnUtd3JhcHBlcj4uZHJvcGRvd24tbWVudSwuZHJvcGRvd24gLmRyb3Bkb3duLmxlZnQtdG9wPi5kcm9wZG93bi1tZW51LC5kcm9wZG93biAuZHJvcGRvd24ubGVmdC10''@;'; + put 'put ''b3A+LmRyb3Bkb3duLW1lbnUtd3JhcHBlcj4uZHJvcGRvd24tbWVudXt0b3A6MDtib3R0b206YXV0bztsZWZ0OmF1dG87cmlnaHQ6MTAwJTttYXJnaW4tdG9wOi0uOTVyZW07bWFyZ2luLXJpZ2h0Oi0uMnJlbX0uYnRuLWdyb3VwLW92ZXJmbG93IC5kcm9wZG93bi5yaWdodC10b3A+LmRyb3Bk''@;'; + put 'put ''b3duLW1lbnUsLmJ0bi1ncm91cC1vdmVyZmxvdyAuZHJvcGRvd24ucmlnaHQtdG9wPi5kcm9wZG93bi1tZW51LXdyYXBwZXI+LmRyb3Bkb3duLW1lbnUsLnRhYnMtb3ZlcmZsb3cgLmRyb3Bkb3duLnJpZ2h0LXRvcD4uZHJvcGRvd24tbWVudSwudGFicy1vdmVyZmxvdyAuZHJvcGRvd24ucmln''@;'; + put 'put ''aHQtdG9wPi5kcm9wZG93bi1tZW51LXdyYXBwZXI+LmRyb3Bkb3duLW1lbnUsLmRyb3Bkb3duIC5kcm9wZG93bi5yaWdodC10b3A+LmRyb3Bkb3duLW1lbnUsLmRyb3Bkb3duIC5kcm9wZG93bi5yaWdodC10b3A+LmRyb3Bkb3duLW1lbnUtd3JhcHBlcj4uZHJvcGRvd24tbWVudXt0b3A6MDti''@;'; + put 'put ''b3R0b206YXV0bztsZWZ0OjEwMCU7cmlnaHQ6YXV0bzttYXJnaW4tdG9wOi0uOTVyZW07bWFyZ2luLWxlZnQ6LS4ycmVtfS5idG4tZ3JvdXAtb3ZlcmZsb3cgLmRyb3Bkb3duLmxlZnQtYm90dG9tPi5kcm9wZG93bi1tZW51LC5idG4tZ3JvdXAtb3ZlcmZsb3cgLmRyb3Bkb3duLmxlZnQtYm90''@;'; + put 'put ''dG9tPi5kcm9wZG93bi1tZW51LXdyYXBwZXI+LmRyb3Bkb3duLW1lbnUsLnRhYnMtb3ZlcmZsb3cgLmRyb3Bkb3duLmxlZnQtYm90dG9tPi5kcm9wZG93bi1tZW51LC50YWJzLW92ZXJmbG93IC5kcm9wZG93bi5sZWZ0LWJvdHRvbT4uZHJvcGRvd24tbWVudS13cmFwcGVyPi5kcm9wZG93bi1t''@;'; + put 'put ''ZW51LC5kcm9wZG93biAuZHJvcGRvd24ubGVmdC1ib3R0b20+LmRyb3Bkb3duLW1lbnUsLmRyb3Bkb3duIC5kcm9wZG93bi5sZWZ0LWJvdHRvbT4uZHJvcGRvd24tbWVudS13cmFwcGVyPi5kcm9wZG93bi1tZW51e3RvcDphdXRvO2JvdHRvbTowO2xlZnQ6YXV0bztyaWdodDoxMDAlO21hcmdp''@;'; + put 'put ''bi1ib3R0b206LS45NXJlbTttYXJnaW4tcmlnaHQ6LS4ycmVtfS5idG4tZ3JvdXAtb3ZlcmZsb3cgLmRyb3Bkb3duLnJpZ2h0LWJvdHRvbT4uZHJvcGRvd24tbWVudSwuYnRuLWdyb3VwLW92ZXJmbG93IC5kcm9wZG93bi5yaWdodC1ib3R0b20+LmRyb3Bkb3duLW1lbnUtd3JhcHBlcj4uZHJv''@;'; + put 'put ''cGRvd24tbWVudSwudGFicy1vdmVyZmxvdyAuZHJvcGRvd24ucmlnaHQtYm90dG9tPi5kcm9wZG93bi1tZW51LC50YWJzLW92ZXJmbG93IC5kcm9wZG93bi5yaWdodC1ib3R0b20+LmRyb3Bkb3duLW1lbnUtd3JhcHBlcj4uZHJvcGRvd24tbWVudSwuZHJvcGRvd24gLmRyb3Bkb3duLnJpZ2h0''@;'; + put 'put ''LWJvdHRvbT4uZHJvcGRvd24tbWVudSwuZHJvcGRvd24gLmRyb3Bkb3duLnJpZ2h0LWJvdHRvbT4uZHJvcGRvd24tbWVudS13cmFwcGVyPi5kcm9wZG93bi1tZW51e3RvcDphdXRvO2JvdHRvbTowO2xlZnQ6MTAwJTtyaWdodDphdXRvO21hcmdpbi1ib3R0b206LS45NXJlbTttYXJnaW4tbGVm''@;'; + put 'put ''dDotLjJyZW19OnJvb3R7LS1jbHItYmFkZ2UtYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC02MDApOy0tY2xyLWJhZGdlLWNvbG9yOnZhcigtLWNsci1jb2xvci1vbi1uZXV0cmFsLTYwMCk7LS1jbHItYmFkZ2UtaW5mby1iZy1jb2xvcjp2YXIoLS1jbHItY29sb3It''@;'; + put 'put ''YWN0aW9uLTgwMCk7LS1jbHItYmFkZ2UtaW5mby1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC0wKTstLWNsci1iYWRnZS1zdWNjZXNzLWJnLWNvbG9yOnZhcigtLWNsci1jb2xvci1zdWNjZXNzLTgwMCk7LS1jbHItYmFkZ2Utc3VjY2Vzcy1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1''@;'; + put 'put ''dHJhbC0wKTstLWNsci1iYWRnZS13YXJuaW5nLWJnLWNvbG9yOnZhcigtLWNsci1jb2xvci13YXJuaW5nLTEwMDApOy0tY2xyLWJhZGdlLXdhcm5pbmctY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtMCk7LS1jbHItYmFkZ2UtZGFuZ2VyLWJnLWNvbG9yOnZhcigtLWNsci1jb2xvci1k''@;'; + put 'put ''YW5nZXItOTAwKTstLWNsci1iYWRnZS1kYW5nZXItY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtMCk7LS1jbHItYmFkZ2UtZ3JheS1iZy1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC02MDApOy0tY2xyLWJhZGdlLWdyYXktY29sb3I6dmFyKC0tY2xyLWJhZGdlLWZvbnQtY29s''@;'; + put 'put ''b3ItbGlnaHQpOy0tY2xyLWJhZGdlLXB1cnBsZS1iZy1jb2xvcjp2YXIoLS1jbHItY29sb3Itc2Vjb25kYXJ5LWFjdGlvbi01MDApOy0tY2xyLWJhZGdlLXB1cnBsZS1jb2xvcjp2YXIoLS1jbHItYmFkZ2UtZm9udC1jb2xvci1saWdodCk7LS1jbHItYmFkZ2UtYmx1ZS1iZy1jb2xvcjp2YXIo''@;'; + put 'put ''LS1jbHItY29sb3ItYWN0aW9uLTgwMCk7LS1jbHItYmFkZ2UtYmx1ZS1jb2xvcjp2YXIoLS1jbHItYmFkZ2UtZm9udC1jb2xvci1saWdodCk7LS1jbHItYmFkZ2Utb3JhbmdlLWJnLWNvbG9yOnZhcigtLWNsci1jb2xvci13YXJuaW5nLTEwMDApOy0tY2xyLWJhZGdlLW9yYW5nZS1jb2xvcjp2''@;'; + put 'put ''YXIoLS1jbHItY29sb3ItbmV1dHJhbC0wKTstLWNsci1iYWRnZS1saWdodC1ibHVlLWJnLWNvbG9yOnZhcigtLWNsci1jb2xvci1hY3Rpb24tNTAwKTstLWNsci1iYWRnZS1saWdodC1ibHVlLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTApfS5iYWRnZXtkaXNwbGF5OmlubGluZS1m''@;'; + put 'put ''bGV4O3ZlcnRpY2FsLWFsaWduOm1pZGRsZTthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjttaW4td2lkdGg6Ljc1cmVtO2JhY2tncm91bmQ6IzhjOGM4YztoZWlnaHQ6Ljc1cmVtO2xpbmUtaGVpZ2h0Om5vcm1hbDtib3JkZXItcmFkaXVzOi41cmVtO2ZvbnQtc2l6''@;'; + put 'put ''ZTouNXJlbTtwYWRkaW5nOjAgLjJyZW07bWFyZ2luLXJpZ2h0Oi4zcmVtO3doaXRlLXNwYWNlOm5vd3JhcDt0ZXh0LWFsaWduOmNlbnRlcjtjb2xvcjojZmZmO2NvbG9yOnZhcigtLWNsci1iYWRnZS1mb250LWNvbG9yLWxpZ2h0LCB3aGl0ZSl9LmJhZGdlOnZpc2l0ZWR7Y29sb3I6I2ZmZjtj''@;'; + put 'put ''b2xvcjp2YXIoLS1jbHItYmFkZ2UtZm9udC1jb2xvci1saWdodCwgd2hpdGUpfS5iYWRnZS5iYWRnZS1ncmF5LC5iYWRnZS5iYWRnZS0xe2JhY2tncm91bmQ6IzhjOGM4YztiYWNrZ3JvdW5kOnZhcigtLWNsci1iYWRnZS1ncmF5LWJnLWNvbG9yLCAjOGM4YzhjKTtjb2xvcjojZmZmO2NvbG9y''@;'; + put 'put ''OnZhcigtLWNsci1iYWRnZS1ncmF5LWNvbG9yLCB3aGl0ZSl9LmJhZGdlLmJhZGdlLXB1cnBsZSwuYmFkZ2UuYmFkZ2UtMntiYWNrZ3JvdW5kOiM5ZTU3YmM7YmFja2dyb3VuZDp2YXIoLS1jbHItYmFkZ2UtcHVycGxlLWJnLWNvbG9yLCAjOWU1N2JjKTtjb2xvcjojZmZmO2NvbG9yOnZhcigt''@;'; + put 'put ''LWNsci1iYWRnZS1wdXJwbGUtY29sb3IsIHdoaXRlKX0uYmFkZ2UuYmFkZ2UtYmx1ZSwuYmFkZ2UuYmFkZ2UtM3tiYWNrZ3JvdW5kOiMwMDU2N2E7YmFja2dyb3VuZDp2YXIoLS1jbHItYmFkZ2UtYmx1ZS1iZy1jb2xvciwgIzAwNTY3YSk7Y29sb3I6I2ZmZjtjb2xvcjp2YXIoLS1jbHItYmFk''@;'; + put 'put ''Z2UtYmx1ZS1jb2xvciwgd2hpdGUpfS5iYWRnZS5iYWRnZS1vcmFuZ2UsLmJhZGdlLmJhZGdlLTR7YmFja2dyb3VuZDojNjEzMjAwO2JhY2tncm91bmQ6dmFyKC0tY2xyLWJhZGdlLW9yYW5nZS1iZy1jb2xvciwgIzYxMzIwMCk7Y29sb3I6I2ZmZjtjb2xvcjp2YXIoLS1jbHItYmFkZ2Utb3Jh''@;'; + put 'put ''bmdlLWNvbG9yLCB3aGl0ZSl9LmJhZGdlLmJhZGdlLWxpZ2h0LWJsdWUsLmJhZGdlLmJhZGdlLTV7YmFja2dyb3VuZDojMTc5YmQzO2JhY2tncm91bmQ6dmFyKC0tY2xyLWJhZGdlLWxpZ2h0LWJsdWUtYmctY29sb3IsICMxNzliZDMpO2NvbG9yOiNmZmY7Y29sb3I6dmFyKC0tY2xyLWJhZGdl''@;'; + put 'put ''LWxpZ2h0LWJsdWUtY29sb3IsIHdoaXRlKX0uYmFkZ2UuYmFkZ2UtaW5mb3tiYWNrZ3JvdW5kOiMwMDU2N2E7YmFja2dyb3VuZDp2YXIoLS1jbHItYmFkZ2UtaW5mby1iZy1jb2xvciwgIzAwNTY3YSk7Y29sb3I6I2ZmZjtjb2xvcjp2YXIoLS1jbHItYmFkZ2UtaW5mby1jb2xvciwgd2hpdGUp''@;'; + put 'put ''fS5iYWRnZS5iYWRnZS1zdWNjZXNze2JhY2tncm91bmQ6IzMwNmIwMDtiYWNrZ3JvdW5kOnZhcigtLWNsci1iYWRnZS1zdWNjZXNzLWJnLWNvbG9yLCAjMzA2YjAwKTtjb2xvcjojZmZmO2NvbG9yOnZhcigtLWNsci1iYWRnZS1zdWNjZXNzLWNvbG9yLCB3aGl0ZSl9LmJhZGdlLmJhZGdlLWRh''@;'; + put 'put ''bmdlcntiYWNrZ3JvdW5kOiM5OTE3MDA7YmFja2dyb3VuZDp2YXIoLS1jbHItYmFkZ2UtZGFuZ2VyLWJnLWNvbG9yLCAjOTkxNzAwKTtjb2xvcjojZmZmO2NvbG9yOnZhcigtLWNsci1iYWRnZS1kYW5nZXItY29sb3IsIHdoaXRlKX0uYmFkZ2UuYmFkZ2Utd2FybmluZ3tiYWNrZ3JvdW5kOiM2''@;'; + put 'put ''MTMyMDA7YmFja2dyb3VuZDp2YXIoLS1jbHItYmFkZ2Utd2FybmluZy1iZy1jb2xvciwgIzYxMzIwMCk7Y29sb3I6I2ZmZjtjb2xvcjp2YXIoLS1jbHItYmFkZ2Utd2FybmluZy1jb2xvciwgd2hpdGUpfV86LW1zLWlucHV0LXBsYWNlaG9sZGVyIC5iYWRnZSw6cm9vdCAuYmFkZ2V7cGFkZGlu''@;'; + put 'put ''ZzouMXJlbSAuMTVyZW0gMH1Ac3VwcG9ydHMgKC1tcy1pbWUtYWxpZ246YXV0byl7LmJhZGdle3BhZGRpbmc6LjFyZW0gLjE1cmVtIDB9fTpyb290ey0tY2xyLWxhYmVsLWZvbnQtY29sb3ItbGlnaHQ6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtMTAwMCk7LS1jbHItbGFiZWwtZm9udC1jb2xv''@;'; + put 'put ''ci1kYXJrOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTEwMDApOy0tY2xyLWxhYmVsLWRlZmF1bHQtYm9yZGVyLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTYwMCk7LS1jbHItbGFiZWwtZm9udC1zaXplOi41NXJlbTstLWNsci1sYWJlbC1mb250LXdlaWdodDo0MDA7LS1jbHItbGFi''@;'; + put 'put ''ZWwtbGV0dGVyLXNwYWNpbmc6LjAzZW07LS1jbHItbGFiZWwtYm9yZGVyLXJhZGl1czouNnJlbTstLWNsci1sYWJlbC1iZy1ob3Zlci1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC0yMDApOy0tY2xyLWxhYmVsLWdyYXktYmctY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNjAw''@;'; + put 'put ''KTstLWNsci1sYWJlbC1ncmF5LWNvbG9yOnZhcigtLWNsci1sYWJlbC1mb250LWNvbG9yLWxpZ2h0KTstLWNsci1sYWJlbC1wdXJwbGUtYmctY29sb3I6dmFyKC0tY2xyLWNvbG9yLXNlY29uZGFyeS1hY3Rpb24tNTAwKTstLWNsci1sYWJlbC1wdXJwbGUtY29sb3I6dmFyKC0tY2xyLWxhYmVs''@;'; + put 'put ''LWZvbnQtY29sb3ItbGlnaHQpOy0tY2xyLWxhYmVsLWJsdWUtYmctY29sb3I6dmFyKC0tY2xyLWNvbG9yLWFjdGlvbi04MDApOy0tY2xyLWxhYmVsLWJsdWUtY29sb3I6dmFyKC0tY2xyLWxhYmVsLWZvbnQtY29sb3ItbGlnaHQpOy0tY2xyLWxhYmVsLW9yYW5nZS1iZy1jb2xvcjp2YXIoLS1j''@;'; + put 'put ''bHItY29sb3Itd2FybmluZy0xMDAwKTstLWNsci1sYWJlbC1vcmFuZ2UtY29sb3I6dmFyKC0tY2xyLWxhYmVsLWZvbnQtY29sb3ItZGFyayk7LS1jbHItbGFiZWwtbGlnaHQtYmx1ZS1iZy1jb2xvcjp2YXIoLS1jbHItY29sb3ItYWN0aW9uLTUwMCk7LS1jbHItbGFiZWwtbGlnaHQtYmx1ZS1j''@;'; + put 'put ''b2xvcjp2YXIoLS1jbHItbGFiZWwtZm9udC1jb2xvci1kYXJrKTstLWNsci1sYWJlbC1pbmZvLWJnLWNvbG9yOnZhcigtLWNsci1jb2xvci1hY3Rpb24tNTApOy0tY2xyLWxhYmVsLWluZm8tZm9udC1jb2xvcjp2YXIoLS1jbHItY29sb3ItYWN0aW9uLTgwMCk7LS1jbHItbGFiZWwtaW5mby1i''@;'; + put 'put ''b3JkZXItY29sb3I6dmFyKC0tY2xyLWNvbG9yLWFjdGlvbi04MDApOy0tY2xyLWxhYmVsLXN1Y2Nlc3MtYmctY29sb3I6dmFyKC0tY2xyLWNvbG9yLXN1Y2Nlc3MtNTApOy0tY2xyLWxhYmVsLXN1Y2Nlc3MtZm9udC1jb2xvcjp2YXIoLS1jbHItY29sb3Itc3VjY2Vzcy04MDApOy0tY2xyLWxh''@;'; + put 'put ''YmVsLXN1Y2Nlc3MtYm9yZGVyLWNvbG9yOnZhcigtLWNsci1jb2xvci1zdWNjZXNzLTgwMCk7LS1jbHItbGFiZWwtd2FybmluZy1iZy1jb2xvcjp2YXIoLS1jbHItY29sb3Itd2FybmluZy0xMDApOy0tY2xyLWxhYmVsLXdhcm5pbmctZm9udC1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJh''@;'; + put 'put ''bC05MDApOy0tY2xyLWxhYmVsLXdhcm5pbmctYm9yZGVyLWNvbG9yOnZhcigtLWNsci1jb2xvci13YXJuaW5nLTgwMCk7LS1jbHItbGFiZWwtZGFuZ2VyLWJnLWNvbG9yOnZhcigtLWNsci1jb2xvci1kYW5nZXItMTAwKTstLWNsci1sYWJlbC1kYW5nZXItZm9udC1jb2xvcjp2YXIoLS1jbHIt''@;'; + put 'put ''Y29sb3ItZGFuZ2VyLTkwMCk7LS1jbHItbGFiZWwtZGFuZ2VyLWJvcmRlci1jb2xvcjp2YXIoLS1jbHItY29sb3ItZGFuZ2VyLTkwMCl9LmxhYmVsLGEubGFiZWx7Zm9udC1zaXplOi41NXJlbTtmb250LXNpemU6dmFyKC0tY2xyLWxhYmVsLWZvbnQtc2l6ZSwgLjU1cmVtKTtmb250LXdlaWdo''@;'; + put 'put ''dDo0MDA7Zm9udC13ZWlnaHQ6dmFyKC0tY2xyLWxhYmVsLWZvbnQtd2VpZ2h0LCA0MDApO2xldHRlci1zcGFjaW5nOi4wM2VtO2xldHRlci1zcGFjaW5nOnZhcigtLWNsci1sYWJlbC1sZXR0ZXItc3BhY2luZywgLjAzZW0pO2xpbmUtaGVpZ2h0Oi42cmVtO2Rpc3BsYXk6aW5saW5lLWZsZXg7''@;'; + put 'put ''anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7cGFkZGluZzowIC42cmVtO2JvcmRlci1yYWRpdXM6LjZyZW07Ym9yZGVyLXJhZGl1czp2YXIoLS1jbHItbGFiZWwtYm9yZGVyLXJhZGl1cywgLjZyZW0pO2JvcmRlcjouMDVyZW0gc29saWQ7Ym9yZGVyLWNvbG9yOiM4''@;'; + put 'put ''YzhjOGM7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1sYWJlbC1kZWZhdWx0LWJvcmRlci1jb2xvciwgIzhjOGM4Yyk7aGVpZ2h0OjEuMDVyZW07bWFyZ2luOjAgLjNyZW0gLjA1cmVtIDA7d2hpdGUtc3BhY2U6bm93cmFwO2NvbG9yOiMwMDA7Y29sb3I6dmFyKC0tY2xyLWxhYmVsLWZvbnQtY29s''@;'; + put 'put ''b3ItbGlnaHQsIGJsYWNrKX0ubGFiZWw6dmlzaXRlZCxhLmxhYmVsOnZpc2l0ZWR7Y29sb3I6IzAwMDtjb2xvcjp2YXIoLS1jbHItbGFiZWwtZm9udC1jb2xvci1saWdodCwgYmxhY2spfS5sYWJlbDpmb2N1cywubGFiZWw6aG92ZXIsLmxhYmVsOmFjdGl2ZSxhLmxhYmVsOmZvY3VzLGEubGFi''@;'; + put 'put ''ZWw6aG92ZXIsYS5sYWJlbDphY3RpdmV7dGV4dC1kZWNvcmF0aW9uOm5vbmV9LmxhYmVsLmNsaWNrYWJsZTpob3ZlciwubGFiZWwuY2xpY2thYmxlOmFjdGl2ZSxhLmxhYmVsLmNsaWNrYWJsZTpob3ZlcixhLmxhYmVsLmNsaWNrYWJsZTphY3RpdmV7YmFja2dyb3VuZDojZThlOGU4O2JhY2tn''@;'; + put 'put ''cm91bmQ6dmFyKC0tY2xyLWxhYmVsLWJnLWhvdmVyLWNvbG9yLCAjZThlOGU4KX0ubGFiZWwuY2xpY2thYmxlOmFjdGl2ZSxhLmxhYmVsLmNsaWNrYWJsZTphY3RpdmV7Ym94LXNoYWRvdzowIC4wNXJlbSAjOGM4YzhjIGluc2V0O2JveC1zaGFkb3c6MCAuMDVyZW0gMCAwIHZhcigtLWNsci1s''@;'; + put 'put ''YWJlbC1ncmF5LWJnLWNvbG9yLCAjOGM4YzhjKSBpbnNldDt0cmFuc2Zvcm06dHJhbnNsYXRlWSguNXB4KX0ubGFiZWwubGFiZWwtZ3JheSwubGFiZWwubGFiZWwtMSxhLmxhYmVsLmxhYmVsLWdyYXksYS5sYWJlbC5sYWJlbC0xe2JvcmRlcjouMDVyZW0gc29saWQ7Ym9yZGVyLWNvbG9yOiM4''@;'; + put 'put ''YzhjOGM7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1sYWJlbC1ncmF5LWJnLWNvbG9yLCAjOGM4YzhjKX0ubGFiZWwuY2xpY2thYmxlLmxhYmVsLWdyYXk6aG92ZXIsLmxhYmVsLmNsaWNrYWJsZS5sYWJlbC1ncmF5OmFjdGl2ZSxhLmxhYmVsLmNsaWNrYWJsZS5sYWJlbC1ncmF5OmhvdmVyLGEu''@;'; + put 'put ''bGFiZWwuY2xpY2thYmxlLmxhYmVsLWdyYXk6YWN0aXZle3RleHQtZGVjb3JhdGlvbjpub25lO2JhY2tncm91bmQ6I2U4ZThlODtiYWNrZ3JvdW5kOnZhcigtLWNsci1sYWJlbC1iZy1ob3Zlci1jb2xvciwgI2U4ZThlOCl9LmxhYmVsLmNsaWNrYWJsZS5sYWJlbC1ncmF5OmFjdGl2ZSxhLmxh''@;'; + put 'put ''YmVsLmNsaWNrYWJsZS5sYWJlbC1ncmF5OmFjdGl2ZXtib3gtc2hhZG93OjAgLjA1cmVtICM4YzhjOGMgaW5zZXQ7Ym94LXNoYWRvdzowIC4wNXJlbSAwIDAgdmFyKC0tY2xyLWxhYmVsLWdyYXktYmctY29sb3IsICM4YzhjOGMpIGluc2V0O3RyYW5zZm9ybTp0cmFuc2xhdGVZKC41cHgpfS5s''@;'; + put 'put ''YWJlbC5sYWJlbC1ncmF5Pi5iYWRnZSxhLmxhYmVsLmxhYmVsLWdyYXk+LmJhZGdle2JhY2tncm91bmQ6IzhjOGM4YztiYWNrZ3JvdW5kOnZhcigtLWNsci1iYWRnZS1ncmF5LWJnLWNvbG9yLCAjOGM4YzhjKTtjb2xvcjojZmZmO2NvbG9yOnZhcigtLWNsci1iYWRnZS1ncmF5LWNvbG9yLCB3''@;'; + put 'put ''aGl0ZSl9LmxhYmVsLmxhYmVsLXB1cnBsZSwubGFiZWwubGFiZWwtMixhLmxhYmVsLmxhYmVsLXB1cnBsZSxhLmxhYmVsLmxhYmVsLTJ7Ym9yZGVyOi4wNXJlbSBzb2xpZDtib3JkZXItY29sb3I6IzllNTdiYztib3JkZXItY29sb3I6dmFyKC0tY2xyLWxhYmVsLXB1cnBsZS1iZy1jb2xvciwg''@;'; + put 'put ''IzllNTdiYyl9LmxhYmVsLmNsaWNrYWJsZS5sYWJlbC1wdXJwbGU6aG92ZXIsLmxhYmVsLmNsaWNrYWJsZS5sYWJlbC1wdXJwbGU6YWN0aXZlLGEubGFiZWwuY2xpY2thYmxlLmxhYmVsLXB1cnBsZTpob3ZlcixhLmxhYmVsLmNsaWNrYWJsZS5sYWJlbC1wdXJwbGU6YWN0aXZle3RleHQtZGVj''@;'; + put 'put ''b3JhdGlvbjpub25lO2JhY2tncm91bmQ6I2U4ZThlODtiYWNrZ3JvdW5kOnZhcigtLWNsci1sYWJlbC1iZy1ob3Zlci1jb2xvciwgI2U4ZThlOCl9LmxhYmVsLmNsaWNrYWJsZS5sYWJlbC1wdXJwbGU6YWN0aXZlLGEubGFiZWwuY2xpY2thYmxlLmxhYmVsLXB1cnBsZTphY3RpdmV7Ym94LXNo''@;'; + put 'put ''YWRvdzowIC4wNXJlbSAjOWU1N2JjIGluc2V0O2JveC1zaGFkb3c6MCAuMDVyZW0gMCAwIHZhcigtLWNsci1sYWJlbC1wdXJwbGUtYmctY29sb3IsICM5ZTU3YmMpIGluc2V0O3RyYW5zZm9ybTp0cmFuc2xhdGVZKC41cHgpfS5sYWJlbC5sYWJlbC1wdXJwbGU+LmJhZGdlLGEubGFiZWwubGFi''@;'; + put 'put ''ZWwtcHVycGxlPi5iYWRnZXtiYWNrZ3JvdW5kOiM5ZTU3YmM7YmFja2dyb3VuZDp2YXIoLS1jbHItYmFkZ2UtcHVycGxlLWJnLWNvbG9yLCAjOWU1N2JjKTtjb2xvcjojZmZmO2NvbG9yOnZhcigtLWNsci1iYWRnZS1wdXJwbGUtY29sb3IsIHdoaXRlKX0ubGFiZWwubGFiZWwtYmx1ZSwubGFi''@;'; + put 'put ''ZWwubGFiZWwtMyxhLmxhYmVsLmxhYmVsLWJsdWUsYS5sYWJlbC5sYWJlbC0ze2JvcmRlcjouMDVyZW0gc29saWQ7Ym9yZGVyLWNvbG9yOiMwMDU2N2E7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1sYWJlbC1ibHVlLWJnLWNvbG9yLCAjMDA1NjdhKX0ubGFiZWwuY2xpY2thYmxlLmxhYmVsLWJs''@;'; + put 'put ''dWU6aG92ZXIsLmxhYmVsLmNsaWNrYWJsZS5sYWJlbC1ibHVlOmFjdGl2ZSxhLmxhYmVsLmNsaWNrYWJsZS5sYWJlbC1ibHVlOmhvdmVyLGEubGFiZWwuY2xpY2thYmxlLmxhYmVsLWJsdWU6YWN0aXZle3RleHQtZGVjb3JhdGlvbjpub25lO2JhY2tncm91bmQ6I2U4ZThlODtiYWNrZ3JvdW5k''@;'; + put 'put ''OnZhcigtLWNsci1sYWJlbC1iZy1ob3Zlci1jb2xvciwgI2U4ZThlOCl9LmxhYmVsLmNsaWNrYWJsZS5sYWJlbC1ibHVlOmFjdGl2ZSxhLmxhYmVsLmNsaWNrYWJsZS5sYWJlbC1ibHVlOmFjdGl2ZXtib3gtc2hhZG93OjAgLjA1cmVtICMwMDU2N2EgaW5zZXQ7Ym94LXNoYWRvdzowIC4wNXJl''@;'; + put 'put ''bSAwIDAgdmFyKC0tY2xyLWxhYmVsLWJsdWUtYmctY29sb3IsICMwMDU2N2EpIGluc2V0O3RyYW5zZm9ybTp0cmFuc2xhdGVZKC41cHgpfS5sYWJlbC5sYWJlbC1ibHVlPi5iYWRnZSxhLmxhYmVsLmxhYmVsLWJsdWU+LmJhZGdle2JhY2tncm91bmQ6IzAwNTY3YTtiYWNrZ3JvdW5kOnZhcigt''@;'; + put 'put ''LWNsci1iYWRnZS1ibHVlLWJnLWNvbG9yLCAjMDA1NjdhKTtjb2xvcjojZmZmO2NvbG9yOnZhcigtLWNsci1iYWRnZS1ibHVlLWNvbG9yLCB3aGl0ZSl9LmxhYmVsLmxhYmVsLW9yYW5nZSwubGFiZWwubGFiZWwtNCxhLmxhYmVsLmxhYmVsLW9yYW5nZSxhLmxhYmVsLmxhYmVsLTR7Ym9yZGVy''@;'; + put 'put ''Oi4wNXJlbSBzb2xpZDtib3JkZXItY29sb3I6IzYxMzIwMDtib3JkZXItY29sb3I6dmFyKC0tY2xyLWxhYmVsLW9yYW5nZS1iZy1jb2xvciwgIzYxMzIwMCl9LmxhYmVsLmNsaWNrYWJsZS5sYWJlbC1vcmFuZ2U6aG92ZXIsLmxhYmVsLmNsaWNrYWJsZS5sYWJlbC1vcmFuZ2U6YWN0aXZlLGEu''@;'; + put 'put ''bGFiZWwuY2xpY2thYmxlLmxhYmVsLW9yYW5nZTpob3ZlcixhLmxhYmVsLmNsaWNrYWJsZS5sYWJlbC1vcmFuZ2U6YWN0aXZle3RleHQtZGVjb3JhdGlvbjpub25lO2JhY2tncm91bmQ6I2U4ZThlODtiYWNrZ3JvdW5kOnZhcigtLWNsci1sYWJlbC1iZy1ob3Zlci1jb2xvciwgI2U4ZThlOCl9''@;'; + put 'put ''LmxhYmVsLmNsaWNrYWJsZS5sYWJlbC1vcmFuZ2U6YWN0aXZlLGEubGFiZWwuY2xpY2thYmxlLmxhYmVsLW9yYW5nZTphY3RpdmV7Ym94LXNoYWRvdzowIC4wNXJlbSAjNjEzMjAwIGluc2V0O2JveC1zaGFkb3c6MCAuMDVyZW0gMCAwIHZhcigtLWNsci1sYWJlbC1vcmFuZ2UtYmctY29sb3Is''@;'; + put 'put ''ICM2MTMyMDApIGluc2V0O3RyYW5zZm9ybTp0cmFuc2xhdGVZKC41cHgpfS5sYWJlbC5sYWJlbC1vcmFuZ2U+LmJhZGdlLGEubGFiZWwubGFiZWwtb3JhbmdlPi5iYWRnZXtiYWNrZ3JvdW5kOiM2MTMyMDA7YmFja2dyb3VuZDp2YXIoLS1jbHItYmFkZ2Utb3JhbmdlLWJnLWNvbG9yLCAjNjEz''@;'; + put 'put ''MjAwKTtjb2xvcjojZmZmO2NvbG9yOnZhcigtLWNsci1iYWRnZS1vcmFuZ2UtY29sb3IsIHdoaXRlKX0ubGFiZWwubGFiZWwtbGlnaHQtYmx1ZSwubGFiZWwubGFiZWwtNSxhLmxhYmVsLmxhYmVsLWxpZ2h0LWJsdWUsYS5sYWJlbC5sYWJlbC01e2JvcmRlcjouMDVyZW0gc29saWQ7Ym9yZGVy''@;'; + put 'put ''LWNvbG9yOiMxNzliZDM7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1sYWJlbC1saWdodC1ibHVlLWJnLWNvbG9yLCAjMTc5YmQzKX0ubGFiZWwuY2xpY2thYmxlLmxhYmVsLWxpZ2h0LWJsdWU6aG92ZXIsLmxhYmVsLmNsaWNrYWJsZS5sYWJlbC1saWdodC1ibHVlOmFjdGl2ZSxhLmxhYmVsLmNs''@;'; + put 'put ''aWNrYWJsZS5sYWJlbC1saWdodC1ibHVlOmhvdmVyLGEubGFiZWwuY2xpY2thYmxlLmxhYmVsLWxpZ2h0LWJsdWU6YWN0aXZle3RleHQtZGVjb3JhdGlvbjpub25lO2JhY2tncm91bmQ6I2U4ZThlODtiYWNrZ3JvdW5kOnZhcigtLWNsci1sYWJlbC1iZy1ob3Zlci1jb2xvciwgI2U4ZThlOCl9''@;'; + put 'put ''LmxhYmVsLmNsaWNrYWJsZS5sYWJlbC1saWdodC1ibHVlOmFjdGl2ZSxhLmxhYmVsLmNsaWNrYWJsZS5sYWJlbC1saWdodC1ibHVlOmFjdGl2ZXtib3gtc2hhZG93OjAgLjA1cmVtICMxNzliZDMgaW5zZXQ7Ym94LXNoYWRvdzowIC4wNXJlbSAwIDAgdmFyKC0tY2xyLWxhYmVsLWxpZ2h0LWJs''@;'; + put 'put ''dWUtYmctY29sb3IsICMxNzliZDMpIGluc2V0O3RyYW5zZm9ybTp0cmFuc2xhdGVZKC41cHgpfS5sYWJlbC5sYWJlbC1saWdodC1ibHVlPi5iYWRnZSxhLmxhYmVsLmxhYmVsLWxpZ2h0LWJsdWU+LmJhZGdle2JhY2tncm91bmQ6IzE3OWJkMztiYWNrZ3JvdW5kOnZhcigtLWNsci1iYWRnZS1s''@;'; + put 'put ''aWdodC1ibHVlLWJnLWNvbG9yLCAjMTc5YmQzKTtjb2xvcjojZmZmO2NvbG9yOnZhcigtLWNsci1iYWRnZS1saWdodC1ibHVlLWNvbG9yLCB3aGl0ZSl9LmxhYmVsLmxhYmVsLWluZm8sYS5sYWJlbC5sYWJlbC1pbmZve2JhY2tncm91bmQ6I2UzZjVmYztiYWNrZ3JvdW5kOnZhcigtLWNsci1s''@;'; + put 'put ''YWJlbC1pbmZvLWJnLWNvbG9yLCAjZTNmNWZjKTtjb2xvcjojMDA1NjdhO2NvbG9yOnZhcigtLWNsci1sYWJlbC1pbmZvLWZvbnQtY29sb3IsICMwMDU2N2EpO2JvcmRlcjouMDVyZW0gc29saWQ7Ym9yZGVyLWNvbG9yOiMwMDU2N2E7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1sYWJlbC1pbmZv''@;'; + put 'put ''LWJvcmRlci1jb2xvciwgIzAwNTY3YSl9LmxhYmVsLmxhYmVsLXN1Y2Nlc3MsYS5sYWJlbC5sYWJlbC1zdWNjZXNze2JhY2tncm91bmQ6I2RmZjBkMDtiYWNrZ3JvdW5kOnZhcigtLWNsci1sYWJlbC1zdWNjZXNzLWJnLWNvbG9yLCAjZGZmMGQwKTtjb2xvcjojMzA2YjAwO2NvbG9yOnZhcigt''@;'; + put 'put ''LWNsci1sYWJlbC1zdWNjZXNzLWZvbnQtY29sb3IsICMzMDZiMDApO2JvcmRlcjouMDVyZW0gc29saWQ7Ym9yZGVyLWNvbG9yOiMzMDZiMDA7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1sYWJlbC1zdWNjZXNzLWJvcmRlci1jb2xvciwgIzMwNmIwMCl9LmxhYmVsLmxhYmVsLXdhcm5pbmcsYS5s''@;'; + put 'put ''YWJlbC5sYWJlbC13YXJuaW5ne2JhY2tncm91bmQ6I2ZmZjRjNztiYWNrZ3JvdW5kOnZhcigtLWNsci1sYWJlbC13YXJuaW5nLWJnLWNvbG9yLCAjZmZmNGM3KTtjb2xvcjojMzMzO2NvbG9yOnZhcigtLWNsci1sYWJlbC13YXJuaW5nLWZvbnQtY29sb3IsICMzMzMzMzMpO2JvcmRlcjouMDVy''@;'; + put 'put ''ZW0gc29saWQ7Ym9yZGVyLWNvbG9yOiNhZDc2MDA7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1sYWJlbC13YXJuaW5nLWJvcmRlci1jb2xvciwgI2FkNzYwMCl9LmxhYmVsLmxhYmVsLWRhbmdlcixhLmxhYmVsLmxhYmVsLWRhbmdlcntiYWNrZ3JvdW5kOiNmZWRkZDc7YmFja2dyb3VuZDp2YXIo''@;'; + put 'put ''LS1jbHItbGFiZWwtZGFuZ2VyLWJnLWNvbG9yLCAjZmVkZGQ3KTtjb2xvcjojOTkxNzAwO2NvbG9yOnZhcigtLWNsci1sYWJlbC1kYW5nZXItZm9udC1jb2xvciwgIzk5MTcwMCk7Ym9yZGVyOi4wNXJlbSBzb2xpZDtib3JkZXItY29sb3I6Izk5MTcwMDtib3JkZXItY29sb3I6dmFyKC0tY2xy''@;'; + put 'put ''LWxhYmVsLWRhbmdlci1ib3JkZXItY29sb3IsICM5OTE3MDApfS5sYWJlbD4uYmFkZ2UsYS5sYWJlbD4uYmFkZ2V7bWFyZ2luOjAgLS40NXJlbSAwIC4zcmVtfUAtbW96LWRvY3VtZW50IHVybC1wcmVmaXgoKXsubGFiZWwsYS5sYWJlbHt2ZXJ0aWNhbC1hbGlnbjpib3R0b219fTpyb290ey0t''@;'; + put 'put ''Y2xyLWxvZ2luLXRpdGxlLWNvbG9yOnZhcigtLWNsci1oMS1jb2xvcik7LS1jbHItbG9naW4tdGl0bGUtZm9udC13ZWlnaHQ6dmFyKC0tY2xyLWgxLWZvbnQtd2VpZ2h0KTstLWNsci1sb2dpbi10aXRsZS1mb250LWZhbWlseTp2YXIoLS1jbHItaDEtZm9udC1mYW1pbHkpOy0tY2xyLWxvZ2lu''@;'; + put 'put ''LXRyYWRlbWFyay1jb2xvcjp2YXIoLS1jbHItaDItY29sb3IpOy0tY2xyLWxvZ2luLXRyYWRlbWFyay1mb250LXdlaWdodDp2YXIoLS1jbHItaDItZm9udC13ZWlnaHQpOy0tY2xyLWxvZ2luLXRyYWRlbWFyay1mb250LWZhbWlseTp2YXIoLS1jbHItaDItZm9udC1mYW1pbHkpOy0tY2xyLWxv''@;'; + put 'put ''Z2luLXN1YnRpdGxlLWNvbG9yOnZhcigtLWNsci1oMy1jb2xvcik7LS1jbHItbG9naW4tc3VidGl0bGUtZm9udC13ZWlnaHQ6dmFyKC0tY2xyLWgzLWZvbnQtd2VpZ2h0KTstLWNsci1sb2dpbi1zdWJ0aXRsZS1mb250LWZhbWlseTp2YXIoLS1jbHItaDMtZm9udC1mYW1pbHkpOy0tY2xyLWxv''@;'; + put 'put ''Z2luLWJhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWdsb2JhbC1hcHAtYmFja2dyb3VuZCk7LS1jbHItbG9naW4tYmFja2dyb3VuZDp1cmwoZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9dXRmOCwlM0MlM0Z4bWwlMjB2ZXJzaW9uJTNEJTIyMS4wJTIyJTIwZW5jb2RpbmclM0QlMjJ1dGYt''@;'; + put 'put ''OCUyMiUzRiUzRSUwRCUwQSUzQyUyMURPQ1RZUEUlMjBzdmclMjBQVUJMSUMlMjAlMjItJTJGJTJGVzNDJTJGJTJGRFREJTIwU1ZHJTIwMS4xJTJGJTJGRU4lMjIlMjAlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRkdyYXBoaWNzJTJGU1ZHJTJGMS4xJTJGRFREJTJGc3ZnMTEuZHRkJTIy''@;'; + put 'put ''JTNFJTBEJTBBJTNDc3ZnJTBEJTBBJTIwJTIwJTIwJTIwJTIwdmVyc2lvbiUzRCUyMjEuMSUyMiUwRCUwQSUyMCUyMCUyMCUyMCUyMGlkJTNEJTIybm8tYXNwZWN0LXJhdGlvJTIyJTBEJTBBJTIwJTIwJTIwJTIwJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAl''@;'; + put 'put ''MkZzdmclMjIlMEQlMEElMjAlMjAlMjAlMjAlMjB4bWxucyUzQXhsaW5rJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYxOTk5JTJGeGxpbmslMjIlMEQlMEElMjAlMjAlMjAlMjAlMjB4JTNEJTIyMHB4JTIyJTBEJTBBJTIwJTIwJTIwJTIwJTIweSUzRCUyMjBweCUyMiUwRCUwQSUy''@;'; + put 'put ''MCUyMCUyMCUyMCUyMGhlaWdodCUzRCUyMjIwNTUuNTVweCUyMiUwRCUwQSUyMCUyMCUyMCUyMCUyMHdpZHRoJTNEJTIyMTQ0MHB4JTIyJTBEJTBBJTIwJTIwJTIwJTIwJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMjA1NS41NSUyMDE0NDAlMjIlMEQlMEElMjAlMjAlMjAlMjAlMjBwcmVzZXJ2''@;'; + put 'put ''ZUFzcGVjdFJhdGlvJTNEJTIyeE1pbllNaW4lMjBzbGljZSUyMiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ2Rlc2MlM0VMb2dpbiUyMEltYWdlJTNDJTJGZGVzYyUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ2clMjBzdHJv''@;'; + put 'put ''a2UlM0QlMjJub25lJTIyJTIwc3Ryb2tlLXdpZHRoJTNEJTIyMSUyMiUyMGZpbGwlM0QlMjJub25lJTIyJTIwZmlsbC1ydWxlJTNEJTIyZXZlbm9kZCUyMiUyMHRyYW5zZm9ybSUzRCUyMnRyYW5zbGF0ZSUyODAuMDAwMDAwJTJDJTIwLTQuMDAwMDAwJTI5JTIyJTNFJTBEJTBBJTIwJTIwJTIw''@;'; + put 'put ''JTIwJTIwJTIwJTIwJTIwJTNDZyUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ2clM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NyZWN0JTIwZmlsbCUzRCUyMiUyM0ZBRkFGQSUyMiUyMHglM0Ql''@;'; + put 'put ''MjIwJTIyJTIweSUzRCUyMjQlMjIlM0UlM0MlMkZyZWN0JTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjMwMDdDQkIlMjIlMjBvcGFjaXR5JTNEJTIyMC40JTIyJTIwc3R5bGUlM0QlMjJtaXgt''@;'; + put 'put ''YmxlbmQtbW9kZSUzQSUyMG11bHRpcGx5JTNCJTIyJTIwcG9pbnRzJTNEJTIyMTEwOC40MyUyMDE0NDMuNjMlMjAxMTA5LjA4JTIwMTQ0My42MyUyMDQ0My40NCUyMDc3Ny43NCUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAl''@;'; + put 'put ''MjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzkzRDhDQSUyMiUyMG9wYWNpdHklM0QlMjIwLjYlMjIlMjBzdHlsZSUzRCUyMm1peC1ibGVuZC1tb2RlJTNBJTIwb3ZlcmxheSUzQiUyMiUyMHBvaW50cyUzRCUyMjAuNzklMjAzMzQuOTIlMjA0NDMuNDQlMjA3NzcuNzQlMjAw''@;'; + put 'put ''Ljc5JTIwMzM0LjQ5JTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzQTBERUVBJTIyJTIwcG9pbnRzJTNEJTIyMC43OSUyMDIxMS44OCUyMDAuNzklMjAzMjku''@;'; + put 'put ''NiUyMDU5LjYyJTIwMjcwLjc3JTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzOTZDN0RGJTIyJTIwcG9pbnRzJTNEJTIyMTYwLjY1JTIwMTY5Ljc0JTIwMC43''@;'; + put 'put ''OSUyMDkuNzMlMjAwLjc5JTIwMjExLjg4JTIwOTAuMjclMjAzMDEuNDYlMjA1OS42MiUyMDI3MC43NyUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyM0NERTNF''@;'; + put 'put ''RSUyMiUyMHBvaW50cyUzRCUyMjUwMy43NyUyMDE0NDMuNjMlMjA2OTcuNDclMjAxNDQzLjYzJTIwODAzLjc0JTIwMTMzNy4zNiUyMDcwNi45MyUyMDEyNDAuNDMlMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIw''@;'; + put 'put ''JTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjNDREUzRUUlMjIlMjBwb2ludHMlM0QlMjIxNTguMzMlMjA2OTEuMTUlMjAwLjc5JTIwODQ4LjcyJTIwMC43OSUyMDE0MjcuNDMlMjA0NDcuNTIlMjA5ODAuNyUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAl''@;'; + put 'put ''MjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyM0NFRERFMCUyMiUyMHBvaW50cyUzRCUyMjI1Ny43MSUyMDU5MS43NSUyMDAuNzklMjAzMzQuNDklMjAwLjc5JTIwNTMzLjQyJTIwMTU4LjMzJTIwNjkxLjE1JTIyJTNFJTNDJTJGcG9seWdvbiUz''@;'; + put 'put ''RSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzQTlDOUQ1JTIyJTIwcG9pbnRzJTNEJTIyMC43OSUyMDUzMy40MiUyMDAuNzklMjA4NDguNzIlMjAxNTguMzMlMjA2OTEuMTUlMjIlM0UlM0MlMkZw''@;'; + put 'put ''b2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjNBRkQ0RTclMjIlMjBwb2ludHMlM0QlMjI4MDYuNDYlMjAxMTQwLjg5JTIwNTQ2Ljk0JTIwODgxLjI4JTIwNDQ3LjUyJTIwOTgwLjcl''@;'; + put 'put ''MjA3MDYuOTMlMjAxMjQwLjQzJTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzOEZDNERGJTIyJTIwcG9pbnRzJTNEJTIyNDQ3LjUyJTIwOTgwLjclMjAwLjc5''@;'; + put 'put ''JTIwMTQyNy40MyUyMDAuNzklMjAxNDQzLjYzJTIwNTAzLjc3JTIwMTQ0My42MyUyMDcwNi45MyUyMDEyNDAuNDMlMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIl''@;'; + put 'put ''MjM3MEMwREMlMjIlMjBwb2ludHMlM0QlMjI2MDguMjMlMjA4MTkuOTklMjA1NDYuOTQlMjA4ODEuMjglMjA4MDYuNDYlMjAxMTQwLjg5JTIwODY3LjY0JTIwMTA3OS43JTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUy''@;'; + put 'put ''MCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzOTZDN0RGJTIyJTIwcG9pbnRzJTNEJTIyNDIwLjA1JTIwNDI5LjM5JTIwMzE5LjAxJTIwNTMwLjQ1JTIwNjA4LjIzJTIwODE5Ljk5JTIwNzA5LjMlMjA3MTguOTElMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIw''@;'; + put 'put ''JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjM2OUFGRDQlMjIlMjBwb2ludHMlM0QlMjI3MDkuMyUyMDcxOC45MSUyMDYwOC4yMyUyMDgxOS45OSUyMDg2Ny42NCUyMDEwNzkuNyUyMDk2OC43NCUyMDk3OC42JTIyJTNFJTNDJTJG''@;'; + put 'put ''cG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzOEVCNUJDJTIyJTIwcG9pbnRzJTNEJTIyNjE5LjU5JTIwMjI5LjgyJTIwMzkzLjQyJTIwMy4xMiUyMDMyNy4yNyUyMDMuMTIlMjAx''@;'; + put 'put ''NjAuNjUlMjAxNjkuNzQlMjA0MjAuMDUlMjA0MjkuMzklMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjM4RUI1QkMlMjIlMjBwb2ludHMlM0QlMjIzMTkuMDEl''@;'; + put 'put ''MjA1MzAuNDUlMjAzMTkuMDElMjA1MzAuNDUlMjA5MC4yNyUyMDMwMS40NiUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzdDQjBDNyUyMiUyMHBvaW50cyUz''@;'; + put 'put ''RCUyMjE2MC42NSUyMDE2OS43NCUyMDU5LjYyJTIwMjcwLjc3JTIwOTAuMjclMjAzMDEuNDYlMjAzMTkuMDElMjA1MzAuNDUlMjA0MjAuMDUlMjA0MjkuMzklMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIw''@;'; + put 'put ''JTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjM4NEM0RDIlMjIlMjBwb2ludHMlM0QlMjI1OS42MiUyMDI3MC43NyUyMDAuNzklMjAzMjkuNiUyMDAuNzklMjAzMzQuNDklMjAyNTcuNzElMjA1OTEuNzUlMjAzMTkuMDElMjA1MzAuNDUlMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIw''@;'; + put 'put ''JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjM3Q0IwQzclMjIlMjBwb2ludHMlM0QlMjI1MzcuNTUlMjAzLjEyJTIwMzkzLjQyJTIwMy4xMiUyMDYxOS41OSUyMDIyOS44MiUyMDY5MS43NCUyMDE1Ny42NiUyMiUzRSUz''@;'; + put 'put ''QyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzg3RDFEQiUyMiUyMHBvaW50cyUzRCUyMjg0Ni4yNSUyMDMuMTIlMjA1MzcuNTUlMjAzLjEyJTIwNjkxLjc0JTIwMTU3LjY2''@;'; + put 'put ''JTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzQ0RFM0VFJTIyJTIwcG9pbnRzJTNEJTIyOTA5Ljg3JTIwMTQ0My42MyUyMDg1MC4xOSUyMDEzODMuODclMjA3''@;'; + put 'put ''OTAuNDMlMjAxNDQzLjYzJTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzQTBERUVBJTIyJTIwcG9pbnRzJTNEJTIyMzE5LjAxJTIwNTMwLjQ1JTIwMjU3Ljcx''@;'; + put 'put ''JTIwNTkxLjc1JTIwNDQzLjQ0JTIwNzc3Ljc0JTIwNTQ2Ljk0JTIwODgxLjI4JTIwNjA4LjIzJTIwODE5Ljk5JTIwODY3LjY0JTIwMTA3OS43JTIwODY3LjY0JTIwMTA3OS43JTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUy''@;'; + put 'put ''MCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzQTBERUVBJTIyJTIwcG9pbnRzJTNEJTIyODY3LjY0JTIwMTA3OS43JTIwODA2LjQ2JTIwMTE0MC44OSUyMDkwMy4zMSUyMDEyMzcuNzglMjA5NjQuNDYlMjAxMTc2LjYzJTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUy''@;'; + put 'put ''MCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzOTZDN0RGJTIyJTIwcG9pbnRzJTNEJTIyMTA2NS41NyUyMDEwNzUuNTIlMjA5NjguNzQlMjA5NzguNiUyMDg2Ny42NCUyMDEwNzkuNyUyMDk2NC40NiUyMDExNzYuNjMl''@;'; + put 'put ''MjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjM5NkM3REYlMjIlMjBwb2ludHMlM0QlMjI5NjQuNDYlMjAxMTc2LjYzJTIwODY3LjY0JTIwMTA3OS43JTIwODY3''@;'; + put 'put ''LjY0JTIwMTA3OS43JTIwOTY0LjQ2JTIwMTE3Ni42MyUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzk2QzdERiUyMiUyMHBvaW50cyUzRCUyMjEwMTAuOTIl''@;'; + put 'put ''MjAxMjIzLjEzJTIwMTIzMS4xNiUyMDE0NDMuNjMlMjAxMDEwLjkyJTIwMTIyMy4xMyUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzk2QzdERiUyMiUyMHBv''@;'; + put 'put ''aW50cyUzRCUyMjEyNDAuMDglMjA3MDcuMjIlMjAxMTY3LjklMjA3NzkuNCUyMDEyNjQuNjglMjA4NzYuNCUyMDEzMzYuODclMjA4MDQuMjIlMjAxMjQwLjA4JTIwNzA3LjIxJTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUy''@;'; + put 'put ''MCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzOTZDN0RGJTIyJTIwcG9pbnRzJTNEJTIyOTgwLjgzJTIwNDQ3LjM5JTIwNjkxLjc0JTIwMTU3LjY2JTIwNjE5LjU5JTIwMjI5LjgyJTIwOTA4LjY2JTIwNTE5LjU2JTIwOTgwLjgzJTIwNDQ3LjM5JTIyJTNFJTNDJTJGcG9seWdv''@;'; + put 'put ''biUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzQUZENEU3JTIyJTIwcG9pbnRzJTNEJTIyNzA5LjMlMjA3MTguOTElMjA5NjguNzQlMjA5NzguNiUyMDExNjcuOTElMjA3NzkuNCUyMDkwOC42''@;'; + put 'put ''NiUyMDUxOS41NSUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzY5QUZENCUyMiUyMHBvaW50cyUzRCUyMjk4MC44MyUyMDQ0Ny4zOSUyMDkwOC42NiUyMDUx''@;'; + put 'put ''OS41NSUyMDExNjcuOTElMjA3NzkuNCUyMDEyNDAuMDglMjA3MDcuMjElMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjNBMERFRUElMjIlMjBwb2ludHMlM0Ql''@;'; + put 'put ''MjIxMDM0LjU5JTIwMy4xMiUyMDg0Ni4yNSUyMDMuMTIlMjA2OTEuNzQlMjAxNTcuNjYlMjA5ODAuODMlMjA0NDcuMzklMjAxMjI5Ljc1JTIwMTk4LjQ3JTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUz''@;'; + put 'put ''Q3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzQTBERUVBJTIyJTIwcG9pbnRzJTNEJTIyMTI0MC4wOCUyMDcwNy4yMSUyMDEzMzYuODclMjA4MDQuMjIlMjAxNTg2LjAxJTIwNTU1LjA4JTIwMTQ4OS4xNCUyMDQ1OC4xMiUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAl''@;'; + put 'put ''MjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzcwQzBEQyUyMiUyMHBvaW50cyUzRCUyMjEyMjkuNzUlMjAxOTguNDclMjA5ODAuODMlMjA0NDcuMzklMjAxMjQwLjA4JTIwNzA3LjIxJTIwMTQ4OS4xNCUyMDQ1OC4xMiUyMiUzRSUzQyUy''@;'; + put 'put ''RnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyM0I3Q0VEMiUyMiUyMHBvaW50cyUzRCUyMjEyOTIuMjIlMjAxMzAyLjM4JTIwMTQzMy4zMiUyMDE0NDMuNjMlMjAxODMwLjYxJTIw''@;'; + put 'put ''MTQ0My42MyUyMDE0OTEuMTglMjAxMTAzLjQyJTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzQTBERUVBJTIyJTIwcG9pbnRzJTNEJTIyMTAxMC45MiUyMDEy''@;'; + put 'put ''MjMuMTMlMjA5NDkuNzglMjAxMjg0LjI3JTIwMTEwOS4wOCUyMDE0NDMuNjMlMjAxMTUwLjk4JTIwMTQ0My42MyUyMDExOTEuMDklMjAxNDAzLjUxJTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3Bv''@;'; + put 'put ''bHlnb24lMjBmaWxsJTNEJTIyJTIzNzVCOEM1JTIyJTIwcG9pbnRzJTNEJTIyMTE1MC45OCUyMDE0NDMuNjMlMjAxMjMxLjE2JTIwMTQ0My42MyUyMDExOTEuMDklMjAxNDAzLjUxJTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUy''@;'; + put 'put ''MCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzOTZDN0RGJTIyJTIwcG9pbnRzJTNEJTIyMTI5Mi4yMiUyMDEzMDIuMzglMjAxMTEyLjAzJTIwMTEyMi4wMiUyMDEwMTAuOTIlMjAxMjIzLjEzJTIwMTE5MS4wOSUyMDE0MDMuNTElMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBE''@;'; + put 'put ''JTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjM2RUE0QkMlMjIlMjBwb2ludHMlM0QlMjIxMTkxLjA5JTIwMTQwMy41MSUyMDEyMzEuMTYlMjAxNDQzLjYzJTIwMTQzMy4zMiUyMDE0NDMuNjMlMjAxMjky''@;'; + put 'put ''LjIyJTIwMTMwMi4zOCUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzAwN0NCQiUyMiUyMG9wYWNpdHklM0QlMjIwLjQlMjIlMjBzdHlsZSUzRCUyMm1peC1i''@;'; + put 'put ''bGVuZC1tb2RlJTNBJTIwbXVsdGlwbHklM0IlMjIlMjBwb2ludHMlM0QlMjIxMzgzLjMlMjA4NTAuNzUlMjAxMzExLjEyJTIwOTIyLjk0JTIwMTQ5MS4xOCUyMDExMDMuNDIlMjAxNTYzLjM3JTIwMTAzMS4yMyUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAl''@;'; + put 'put ''MjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyM0I3Q0VEMiUyMiUyMHBvaW50cyUzRCUyMjE0OTEuMTglMjAxMTAzLjQyJTIwMTgzMC42MSUyMDE0NDMuNjMlMjAxOTc0Ljg2JTIwMTQ0My42MyUyMDE1NjMuMzclMjAxMDMxLjIzJTIyJTNFJTND''@;'; + put 'put ''JTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzNkVBNEJDJTIyJTIwcG9pbnRzJTNEJTIyMTQ5MS4xOCUyMDExMDMuNDIlMjAxODMwLjYxJTIwMTQ0My42MyUyMDE5NzQuODYl''@;'; + put 'put ''MjAxNDQzLjYzJTIwMTU2My4zNyUyMDEwMzEuMjMlMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjNBMERFRUElMjIlMjBwb2ludHMlM0QlMjIxODEyLjY1JTIw''@;'; + put 'put ''NzgxLjk1JTIwMTYzMi40NiUyMDYwMS41OSUyMDEzODMuMyUyMDg1MC43NSUyMDE1NjMuMzclMjAxMDMxLjIzJTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIz''@;'; + put 'put ''QjdDRUQyJTIyJTIwcG9pbnRzJTNEJTIyMTU2My4zNyUyMDEwMzEuMjMlMjAxOTc0Ljg2JTIwMTQ0My42MyUyMDIwNTQuNDUlMjAxNDQzLjYzJTIwMjA1NC40NSUyMDEwMjMuOTklMjAxODEyLjY1JTIwNzgxLjk1JTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUy''@;'; + put 'put ''MCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzNzhDQUQ0JTIyJTIwcG9pbnRzJTNEJTIyMTU2My4zNyUyMDEwMzEuMjMlMjAxOTc0Ljg2JTIwMTQ0My42MyUyMDIwNTQuNDUlMjAxNDQzLjYzJTIwMjA1NC40NSUyMDEwMjMuOTklMjAxODEy''@;'; + put 'put ''LjY1JTIwNzgxLjk1JTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzOTFDNUUwJTIyJTIwcG9pbnRzJTNEJTIyODAzLjc0JTIwMTMzNy4zNiUyMDg1MC4xOSUy''@;'; + put 'put ''MDEzODMuODclMjA5NDkuNzglMjAxMjg0LjI3JTIwOTAzLjMxJTIwMTIzNy43OCUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzkxQzVFMCUyMiUyMHBvaW50''@;'; + put 'put ''cyUzRCUyMjEwNjUuNTclMjAxMDc1LjUyJTIwMTExMi4wMyUyMDExMjIuMDIlMjAxMzExLjEyJTIwOTIyLjk0JTIwMTI2NC42OSUyMDg3Ni40JTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHln''@;'; + put 'put ''b24lMjBmaWxsJTNEJTIyJTIzNzdCOEQ5JTIyJTIwcG9pbnRzJTNEJTIyNjk3LjQ3JTIwMTQ0My42MyUyMDc5MC40MyUyMDE0NDMuNjMlMjA4NTAuMTklMjAxMzgzLjg3JTIwODAzLjc0JTIwMTMzNy4zNiUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAl''@;'; + put 'put ''MjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyM0EwREVFQSUyMiUyMHBvaW50cyUzRCUyMjk2NC40NiUyMDExNzYuNjMlMjA5MDMuMzElMjAxMjM3Ljc4JTIwOTQ5Ljc4JTIwMTI4NC4yNyUyMDEwMTAuOTIlMjAxMjIzLjEzJTIyJTNFJTNDJTJGcG9s''@;'; + put 'put ''eWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzNURCNUQ2JTIyJTIwcG9pbnRzJTNEJTIyOTY0LjQ2JTIwMTE3Ni42MyUyMDkwMy4zMSUyMDEyMzcuNzglMjA5NDkuNzglMjAxMjg0LjI3''@;'; + put 'put ''JTIwMTAxMC45MiUyMDEyMjMuMTMlMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcmVjdCUyMGZpbGwlM0QlMjIlMjM5NkM3REYlMjIlMjB0cmFuc2Zvcm0lM0QlMjJ0cmFuc2xhdGUlMjgxMDM4LjI0''@;'; + put 'put ''NzI5NyUyQyUyMDExNDkuMjc1NDI5JTI5JTIwcm90YXRlJTI4LTQ0Ljk3MDAwMCUyOSUyMHRyYW5zbGF0ZSUyOC0xMDM4LjI0NzI5NyUyQyUyMC0xMTQ5LjI3NTQyOSUyOSUyMCUyMiUyMHglM0QlMjI5NjYuNzUyMjk3JTIyJTIweSUzRCUyMjExMTYuNDEwNDMlMjIlMjB3aWR0aCUzRCUyMjE0''@;'; + put 'put ''Mi45OSUyMiUyMGhlaWdodCUzRCUyMjY1LjczJTIyJTNFJTNDJTJGcmVjdCUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3JlY3QlMjBmaWxsJTNEJTIyJTIzNTdBOEQwJTIyJTIwdHJhbnNmb3JtJTNEJTIydHJhbnNsYXRlJTI4MTAz''@;'; + put 'put ''OC4yNDcyOTclMkMlMjAxMTQ5LjI3NTQyOSUyOSUyMHJvdGF0ZSUyOC00NC45NzAwMDAlMjklMjB0cmFuc2xhdGUlMjgtMTAzOC4yNDcyOTclMkMlMjAtMTE0OS4yNzU0MjklMjklMjAlMjIlMjB4JTNEJTIyOTY2Ljc1MjI5NyUyMiUyMHklM0QlMjIxMTE2LjQxMDQzJTIyJTIwd2lkdGglM0Ql''@;'; + put 'put ''MjIxNDIuOTklMjIlMjBoZWlnaHQlM0QlMjI2NS43MyUyMiUzRSUzQyUyRnJlY3QlM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzk2QzdERiUyMiUyMHBvaW50cyUzRCUyMjEwMTAuOTIlMjAx''@;'; + put 'put ''MjIzLjEzJTIwMTAxMC45MiUyMDEyMjMuMTMlMjA5NjQuNDYlMjAxMTc2LjYzJTIwOTY0LjQ2JTIwMTE3Ni42MyUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUy''@;'; + put 'put ''MzAwMDAwMCUyMiUyMG9wYWNpdHklM0QlMjIwLjQyJTIyJTIwcG9pbnRzJTNEJTIyMTAxMC45MiUyMDEyMjMuMTMlMjAxMDEwLjkyJTIwMTIyMy4xMyUyMDk2NC40NiUyMDExNzYuNjMlMjA5NjQuNDYlMjAxMTc2LjYzJTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUy''@;'; + put 'put ''MCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzMDA3Q0JCJTIyJTIwb3BhY2l0eSUzRCUyMjAuNCUyMiUyMHN0eWxlJTNEJTIybWl4LWJsZW5kLW1vZGUlM0ElMjBtdWx0aXBseSUzQiUyMiUyMHBvaW50cyUzRCUyMjEzMzYuODclMjA4''@;'; + put 'put ''MDQuMjIlMjAxMjY0LjY5JTIwODc2LjQlMjAxMzExLjEyJTIwOTIyLjk0JTIwMTM4My4zJTIwODUwLjc1JTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzNTdB''@;'; + put 'put ''OEQwJTIyJTIwcG9pbnRzJTNEJTIyMTMzNi44NyUyMDgwNC4yMiUyMDEyNjQuNjklMjA4NzYuNCUyMDEzMTEuMTIlMjA5MjIuOTQlMjAxMzgzLjMlMjA4NTAuNzUlMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIw''@;'; + put 'put ''JTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjM5M0Q4Q0ElMjIlMjBvcGFjaXR5JTNEJTIyMC42JTIyJTIwc3R5bGUlM0QlMjJtaXgtYmxlbmQtbW9kZSUzQSUyMG92ZXJsYXklM0IlMjIlMjBwb2ludHMlM0QlMjIxMzM2Ljg3JTIwODA0LjIyJTIwMTM4My4zJTIwODUwLjc1JTIwMTYzMi40''@;'; + put 'put ''NiUyMDYwMS41OSUyMDE1ODYuMDElMjA1NTUuMDglMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjM1REI1RDYlMjIlMjBwb2ludHMlM0QlMjIxMzM2Ljg3JTIw''@;'; + put 'put ''ODA0LjIyJTIwMTM4My4zJTIwODUwLjc1JTIwMTYzMi40NiUyMDYwMS41OSUyMDE1ODYuMDElMjA1NTUuMDglMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjNB''@;'; + put 'put ''RkQzRTYlMjIlMjBwb2ludHMlM0QlMjIyMDU2JTIwMC4xMiUyMDE2NDUuNDklMjAwLjEyJTIwMTY0OC40OSUyMDMuMTIlMjAxOTQ0LjA3JTIwMy4xMiUyMDE3OTYuMjIlMjAxNTAuOTklMjAxODkzLjEyJTIwMjQ3Ljk3JTIwMjA1NC40NSUyMDg2LjY0JTIwMjA1NC40NSUyMDE3OS42JTIwMTkz''@;'; + put 'put ''OS41OCUyMDI5NC40NyUyMDIwNTYlMjA0MTElMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjM3QUI5RDklMjIlMjBwb2ludHMlM0QlMjIxNjQ4LjQ5JTIwMy4x''@;'; + put 'put ''MiUyMDE3OTYuMjIlMjAxNTAuOTklMjAxOTQ0LjA3JTIwMy4xMiUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzY2QUVENCUyMiUyMHBvaW50cyUzRCUyMjIw''@;'; + put 'put ''NTQuNDUlMjA4Ni42NCUyMDE4OTMuMTIlMjAyNDcuOTclMjAxOTM5LjU4JTIwMjk0LjQ3JTIwMjA1NC40NSUyMDE3OS42JTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNE''@;'; + put 'put ''JTIyJTIzQjdDRUQyJTIyJTIwcG9pbnRzJTNEJTIyMTg4NC44MiUyMDcwOS43OCUyMDIwNTQuNDUlMjA4NzkuNTclMjAyMDU0LjQ1JTIwNTQwLjE1JTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3Bv''@;'; + put 'put ''bHlnb24lMjBmaWxsJTNEJTIyJTIzQUZENEU3JTIyJTIwcG9pbnRzJTNEJTIyMTQ4OS4xNCUyMDQ1OC4xMiUyMDE0ODkuMTQlMjA0NTguMTIlMjAxMzcxLjEzJTIwMzM5Ljk5JTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUy''@;'; + put 'put ''MCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzQUZENEU3JTIyJTIwcG9pbnRzJTNEJTIyMTc5Ni4yMiUyMDE1MC45OSUyMDE2NDguNDklMjAzLjEyJTIwMTQyNS4xJTIwMy4xMiUyMDEzMDEuOTElMjAxMjYuMzElMjAxNTYxLjMlMjAzODUuOTUlMjIlM0UlM0MlMkZwb2x5Z29u''@;'; + put 'put ''JTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcmVjdCUyMGZpbGwlM0QlMjIlMjM5MUM1RTAlMjIlMjB0cmFuc2Zvcm0lM0QlMjJ0cmFuc2xhdGUlMjgxNzk4Ljk1NDA2NiUyQyUyMDM4OC43OTg3ODElMjklMjByb3RhdGUlMjgtNDQu''@;'; + put 'put ''OTcwMDAwJTI5JTIwdHJhbnNsYXRlJTI4LTE3OTguOTU0MDY2JTJDJTIwLTM4OC43OTg3ODElMjklMjAlMjIlMjB4JTNEJTIyMTYzMi44MjQwNyUyMiUyMHklM0QlMjIzNTUuOTMzNzgxJTIyJTIwd2lkdGglM0QlMjIzMzIuMjYlMjIlMjBoZWlnaHQlM0QlMjI2NS43MyUyMiUzRSUzQyUyRnJl''@;'; + put 'put ''Y3QlM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzkxQzVFMCUyMiUyMHBvaW50cyUzRCUyMjE1ODYuMDElMjA1NTUuMDglMjAxNjMyLjQ2JTIwNjAxLjU5JTIwMTYzMi40NiUyMDYwMS41OSUy''@;'; + put 'put ''MDE1ODYuMDElMjA1NTUuMDglMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcmVjdCUyMGZpbGwlM0QlMjIlMjNCM0VBRUUlMjIlMjB0cmFuc2Zvcm0lM0QlMjJ0cmFuc2xhdGUlMjgxNTczLjcxMTU3''@;'; + put 'put ''NyUyQyUyMDQ3MC42MjAyNjMlMjklMjByb3RhdGUlMjgtNDUuMDAwMDAwJTI5JTIwdHJhbnNsYXRlJTI4LTE1NzMuNzExNTc3JTJDJTIwLTQ3MC42MjAyNjMlMjklMjAlMjIlMjB4JTNEJTIyMTUyMi42ODE1OCUyMiUyMHklM0QlMjI0MDIuMDg1MjYzJTIyJTIwd2lkdGglM0QlMjIxMDIuMDYl''@;'; + put 'put ''MjIlMjBoZWlnaHQlM0QlMjIxMzcuMDclMjIlM0UlM0MlMkZyZWN0JTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcmVjdCUyMGZpbGwlM0QlMjIlMjNCM0VBRUUlMjIlMjB0cmFuc2Zvcm0lM0QlMjJ0cmFuc2xhdGUlMjgxNzU4LjY3''@;'; + put 'put ''Njc1OCUyQyUyMDY1NS43NjcxMjAlMjklMjByb3RhdGUlMjgtNDQuOTcwMDAwJTI5JTIwdHJhbnNsYXRlJTI4LTE3NTguNjc2NzU4JTJDJTIwLTY1NS43NjcxMjAlMjklMjAlMjIlMjB4JTNEJTIyMTcwNy42NDY3NiUyMiUyMHklM0QlMjI1MjguMjkyMTIlMjIlMjB3aWR0aCUzRCUyMjEwMi4w''@;'; + put 'put ''NiUyMiUyMGhlaWdodCUzRCUyMjI1NC45NSUyMiUzRSUzQyUyRnJlY3QlM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyM0IzRUFFRSUyMiUyMHBvaW50cyUzRCUyMjEzMDEuOTElMjAxMjYuMzEl''@;'; + put 'put ''MjAxMTc4Ljg0JTIwMy4xMiUyMDEwMzQuNTklMjAzLjEyJTIwMTIyOS43NSUyMDE5OC40NyUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzgzQzBDOCUyMiUy''@;'; + put 'put ''MHBvaW50cyUzRCUyMjE4MTIuNjUlMjA3ODEuOTUlMjAyMDU0LjQ1JTIwMTAyMy45OSUyMDIwNTQuNDUlMjA4NzkuNTclMjAxODg0LjgyJTIwNzA5Ljc4JTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUz''@;'; + put 'put ''Q3JlY3QlMjBmaWxsJTNEJTIyJTIzN0RDNkRDJTIyJTIwdHJhbnNmb3JtJTNEJTIydHJhbnNsYXRlJTI4MTM5NS41MTY5MDElMkMlMjAyOTIuMjA2NTE5JTI5JTIwcm90YXRlJTI4LTQ1LjAwMDAwMCUyOSUyMHRyYW5zbGF0ZSUyOC0xMzk1LjUxNjkwMSUyQyUyMC0yOTIuMjA2NTE5JTI5JTIw''@;'; + put 'put ''JTIyJTIweCUzRCUyMjEzNDQuNDkxOSUyMiUyMHklM0QlMjIxMDguNzAxNTE5JTIyJTIwd2lkdGglM0QlMjIxMDIuMDUlMjIlMjBoZWlnaHQlM0QlMjIzNjcuMDElMjIlM0UlM0MlMkZyZWN0JTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIw''@;'; + put 'put ''JTNDcmVjdCUyMGZpbGwlM0QlMjIlMjM2OEI4RDUlMjIlMjB0cmFuc2Zvcm0lM0QlMjJ0cmFuc2xhdGUlMjgxNjQ1LjMxMzYxOSUyQyUyMDU0Mi4yNDk3NjAlMjklMjByb3RhdGUlMjgtNDUuMDAwMDAwJTI5JTIwdHJhbnNsYXRlJTI4LTE2NDUuMzEzNjE5JTJDJTIwLTU0Mi4yNDk3NjAlMjkl''@;'; + put 'put ''MjAlMjIlMjB4JTNEJTIyMTU5NC4yODM2MiUyMiUyMHklM0QlMjI1MDkuMzg0NzYlMjIlMjB3aWR0aCUzRCUyMjEwMi4wNiUyMiUyMGhlaWdodCUzRCUyMjY1LjczJTIyJTNFJTNDJTJGcmVjdCUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQyUyRmclM0Ul''@;'; + put 'put ''MEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NnJTIwdHJhbnNmb3JtJTNEJTIydHJhbnNsYXRlJTI4MC4wMDAwMDAlMkMlMjAzLjAwMDAwMCUyOSUyMiUyMHN0cm9rZSUzRCUyMiUyMzAwMDAwMCUyMiUyMG9wYWNpdHklM0QlMjIwLjE1JTIyJTNFJTBEJTBBJTIw''@;'; + put 'put ''JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcGF0aCUyMGQlM0QlMjJNMC45NSUyQzAuMTIlMjBMMC45NSUyQzg0MC4xMiUyMiUyMGlkJTNEJTIyU2hhcGUlMjIlM0UlM0MlMkZwYXRoJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIw''@;'; + put 'put ''JTIwJTIwJTNDJTJGZyUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQyUyRmclM0UlMEQlMEElMjAlMjAlMjAlMjAlM0MlMkZnJTNFJTBEJTBBJTNDJTJGc3ZnJTNFKTstLWNsci1sb2dpbi1lcnJvci1iYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1jb2xvci1kYW5nZXItODAw''@;'; + put 'put ''KTstLWNsci1sb2dpbi1lcnJvci1ib3JkZXItcmFkaXVzOnZhcigtLWNsci1nbG9iYWwtYm9yZGVycmFkaXVzKTstLWNsci1sb2dpbi1wYW5lbC1saW5lLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTEwMDApOy0tY2xyLWxvZ2luLXBhbmVsLWxpbmUtb3BhY2l0eTouMX0ubG9naW4t''@;'; + put 'put ''d3JhcHBlcntkaXNwbGF5OmZsZXg7aGVpZ2h0OjEwMCU7YmFja2dyb3VuZDp1cmwoZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9dXRmOCwlM0MlM0Z4bWwlMjB2ZXJzaW9uJTNEJTIyMS4wJTIyJTIwZW5jb2RpbmclM0QlMjJ1dGYtOCUyMiUzRiUzRSUwRCUwQSUzQyUyMURPQ1RZUEUlMjBz''@;'; + put 'put ''dmclMjBQVUJMSUMlMjAlMjItJTJGJTJGVzNDJTJGJTJGRFREJTIwU1ZHJTIwMS4xJTJGJTJGRU4lMjIlMjAlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRkdyYXBoaWNzJTJGU1ZHJTJGMS4xJTJGRFREJTJGc3ZnMTEuZHRkJTIyJTNFJTBEJTBBJTNDc3ZnJTBEJTBBJTIwJTIwJTIwJTIw''@;'; + put 'put ''JTIwdmVyc2lvbiUzRCUyMjEuMSUyMiUwRCUwQSUyMCUyMCUyMCUyMCUyMGlkJTNEJTIybm8tYXNwZWN0LXJhdGlvJTIyJTBEJTBBJTIwJTIwJTIwJTIwJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlMEQlMEElMjAlMjAlMjAlMjAlMjB4bWxu''@;'; + put 'put ''cyUzQXhsaW5rJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYxOTk5JTJGeGxpbmslMjIlMEQlMEElMjAlMjAlMjAlMjAlMjB4JTNEJTIyMHB4JTIyJTBEJTBBJTIwJTIwJTIwJTIwJTIweSUzRCUyMjBweCUyMiUwRCUwQSUyMCUyMCUyMCUyMCUyMGhlaWdodCUzRCUyMjIwNTUuNTVw''@;'; + put 'put ''eCUyMiUwRCUwQSUyMCUyMCUyMCUyMCUyMHdpZHRoJTNEJTIyMTQ0MHB4JTIyJTBEJTBBJTIwJTIwJTIwJTIwJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMjA1NS41NSUyMDE0NDAlMjIlMEQlMEElMjAlMjAlMjAlMjAlMjBwcmVzZXJ2ZUFzcGVjdFJhdGlvJTNEJTIyeE1pbllNaW4lMjBzbGlj''@;'; + put 'put ''ZSUyMiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ2Rlc2MlM0VMb2dpbiUyMEltYWdlJTNDJTJGZGVzYyUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ2clMjBzdHJva2UlM0QlMjJub25lJTIyJTIwc3Ryb2tlLXdpZHRoJTNE''@;'; + put 'put ''JTIyMSUyMiUyMGZpbGwlM0QlMjJub25lJTIyJTIwZmlsbC1ydWxlJTNEJTIyZXZlbm9kZCUyMiUyMHRyYW5zZm9ybSUzRCUyMnRyYW5zbGF0ZSUyODAuMDAwMDAwJTJDJTIwLTQuMDAwMDAwJTI5JTIyJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDZyUzRSUwRCUwQSUyMCUy''@;'; + put 'put ''MCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ2clM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NyZWN0JTIwZmlsbCUzRCUyMiUyM0ZBRkFGQSUyMiUyMHglM0QlMjIwJTIyJTIweSUzRCUyMjQlMjIlM0UlM0MlMkZyZWN0''@;'; + put 'put ''JTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjMwMDdDQkIlMjIlMjBvcGFjaXR5JTNEJTIyMC40JTIyJTIwc3R5bGUlM0QlMjJtaXgtYmxlbmQtbW9kZSUzQSUyMG11bHRpcGx5JTNCJTIyJTIw''@;'; + put 'put ''cG9pbnRzJTNEJTIyMTEwOC40MyUyMDE0NDMuNjMlMjAxMTA5LjA4JTIwMTQ0My42MyUyMDQ0My40NCUyMDc3Ny43NCUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUy''@;'; + put 'put ''MiUyMzkzRDhDQSUyMiUyMG9wYWNpdHklM0QlMjIwLjYlMjIlMjBzdHlsZSUzRCUyMm1peC1ibGVuZC1tb2RlJTNBJTIwb3ZlcmxheSUzQiUyMiUyMHBvaW50cyUzRCUyMjAuNzklMjAzMzQuOTIlMjA0NDMuNDQlMjA3NzcuNzQlMjAwLjc5JTIwMzM0LjQ5JTIyJTNFJTNDJTJGcG9seWdvbiUz''@;'; + put 'put ''RSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzQTBERUVBJTIyJTIwcG9pbnRzJTNEJTIyMC43OSUyMDIxMS44OCUyMDAuNzklMjAzMjkuNiUyMDU5LjYyJTIwMjcwLjc3JTIyJTNFJTNDJTJGcG9s''@;'; + put 'put ''eWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzOTZDN0RGJTIyJTIwcG9pbnRzJTNEJTIyMTYwLjY1JTIwMTY5Ljc0JTIwMC43OSUyMDkuNzMlMjAwLjc5JTIwMjExLjg4JTIwOTAuMjcl''@;'; + put 'put ''MjAzMDEuNDYlMjA1OS42MiUyMDI3MC43NyUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyM0NERTNFRSUyMiUyMHBvaW50cyUzRCUyMjUwMy43NyUyMDE0NDMu''@;'; + put 'put ''NjMlMjA2OTcuNDclMjAxNDQzLjYzJTIwODAzLjc0JTIwMTMzNy4zNiUyMDcwNi45MyUyMDEyNDAuNDMlMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjNDREUz''@;'; + put 'put ''RUUlMjIlMjBwb2ludHMlM0QlMjIxNTguMzMlMjA2OTEuMTUlMjAwLjc5JTIwODQ4LjcyJTIwMC43OSUyMDE0MjcuNDMlMjA0NDcuNTIlMjA5ODAuNyUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nw''@;'; + put 'put ''b2x5Z29uJTIwZmlsbCUzRCUyMiUyM0NFRERFMCUyMiUyMHBvaW50cyUzRCUyMjI1Ny43MSUyMDU5MS43NSUyMDAuNzklMjAzMzQuNDklMjAwLjc5JTIwNTMzLjQyJTIwMTU4LjMzJTIwNjkxLjE1JTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUy''@;'; + put 'put ''MCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzQTlDOUQ1JTIyJTIwcG9pbnRzJTNEJTIyMC43OSUyMDUzMy40MiUyMDAuNzklMjA4NDguNzIlMjAxNTguMzMlMjA2OTEuMTUlMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIw''@;'; + put 'put ''JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjNBRkQ0RTclMjIlMjBwb2ludHMlM0QlMjI4MDYuNDYlMjAxMTQwLjg5JTIwNTQ2Ljk0JTIwODgxLjI4JTIwNDQ3LjUyJTIwOTgwLjclMjA3MDYuOTMlMjAxMjQwLjQzJTIyJTNFJTNDJTJGcG9s''@;'; + put 'put ''eWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzOEZDNERGJTIyJTIwcG9pbnRzJTNEJTIyNDQ3LjUyJTIwOTgwLjclMjAwLjc5JTIwMTQyNy40MyUyMDAuNzklMjAxNDQzLjYzJTIwNTAz''@;'; + put 'put ''Ljc3JTIwMTQ0My42MyUyMDcwNi45MyUyMDEyNDAuNDMlMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjM3MEMwREMlMjIlMjBwb2ludHMlM0QlMjI2MDguMjMl''@;'; + put 'put ''MjA4MTkuOTklMjA1NDYuOTQlMjA4ODEuMjglMjA4MDYuNDYlMjAxMTQwLjg5JTIwODY3LjY0JTIwMTA3OS43JTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIz''@;'; + put 'put ''OTZDN0RGJTIyJTIwcG9pbnRzJTNEJTIyNDIwLjA1JTIwNDI5LjM5JTIwMzE5LjAxJTIwNTMwLjQ1JTIwNjA4LjIzJTIwODE5Ljk5JTIwNzA5LjMlMjA3MTguOTElMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIw''@;'; + put 'put ''JTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjM2OUFGRDQlMjIlMjBwb2ludHMlM0QlMjI3MDkuMyUyMDcxOC45MSUyMDYwOC4yMyUyMDgxOS45OSUyMDg2Ny42NCUyMDEwNzkuNyUyMDk2OC43NCUyMDk3OC42JTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUy''@;'; + put 'put ''MCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzOEVCNUJDJTIyJTIwcG9pbnRzJTNEJTIyNjE5LjU5JTIwMjI5LjgyJTIwMzkzLjQyJTIwMy4xMiUyMDMyNy4yNyUyMDMuMTIlMjAxNjAuNjUlMjAxNjkuNzQlMjA0MjAuMDUlMjA0MjkuMzkl''@;'; + put 'put ''MjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjM4RUI1QkMlMjIlMjBwb2ludHMlM0QlMjIzMTkuMDElMjA1MzAuNDUlMjAzMTkuMDElMjA1MzAuNDUlMjA5MC4y''@;'; + put 'put ''NyUyMDMwMS40NiUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzdDQjBDNyUyMiUyMHBvaW50cyUzRCUyMjE2MC42NSUyMDE2OS43NCUyMDU5LjYyJTIwMjcw''@;'; + put 'put ''Ljc3JTIwOTAuMjclMjAzMDEuNDYlMjAzMTkuMDElMjA1MzAuNDUlMjA0MjAuMDUlMjA0MjkuMzklMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjM4NEM0RDIl''@;'; + put 'put ''MjIlMjBwb2ludHMlM0QlMjI1OS42MiUyMDI3MC43NyUyMDAuNzklMjAzMjkuNiUyMDAuNzklMjAzMzQuNDklMjAyNTcuNzElMjA1OTEuNzUlMjAzMTkuMDElMjA1MzAuNDUlMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIw''@;'; + put 'put ''JTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjM3Q0IwQzclMjIlMjBwb2ludHMlM0QlMjI1MzcuNTUlMjAzLjEyJTIwMzkzLjQyJTIwMy4xMiUyMDYxOS41OSUyMDIyOS44MiUyMDY5MS43NCUyMDE1Ny42NiUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAl''@;'; + put 'put ''MjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzg3RDFEQiUyMiUyMHBvaW50cyUzRCUyMjg0Ni4yNSUyMDMuMTIlMjA1MzcuNTUlMjAzLjEyJTIwNjkxLjc0JTIwMTU3LjY2JTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUy''@;'; + put 'put ''MCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzQ0RFM0VFJTIyJTIwcG9pbnRzJTNEJTIyOTA5Ljg3JTIwMTQ0My42MyUyMDg1MC4xOSUyMDEzODMuODclMjA3OTAuNDMlMjAxNDQzLjYzJTIyJTNFJTNDJTJGcG9seWdv''@;'; + put 'put ''biUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzQTBERUVBJTIyJTIwcG9pbnRzJTNEJTIyMzE5LjAxJTIwNTMwLjQ1JTIwMjU3LjcxJTIwNTkxLjc1JTIwNDQzLjQ0JTIwNzc3Ljc0JTIwNTQ2''@;'; + put 'put ''Ljk0JTIwODgxLjI4JTIwNjA4LjIzJTIwODE5Ljk5JTIwODY3LjY0JTIwMTA3OS43JTIwODY3LjY0JTIwMTA3OS43JTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIy''@;'; + put 'put ''JTIzQTBERUVBJTIyJTIwcG9pbnRzJTNEJTIyODY3LjY0JTIwMTA3OS43JTIwODA2LjQ2JTIwMTE0MC44OSUyMDkwMy4zMSUyMDEyMzcuNzglMjA5NjQuNDYlMjAxMTc2LjYzJTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUy''@;'; + put 'put ''MCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzOTZDN0RGJTIyJTIwcG9pbnRzJTNEJTIyMTA2NS41NyUyMDEwNzUuNTIlMjA5NjguNzQlMjA5NzguNiUyMDg2Ny42NCUyMDEwNzkuNyUyMDk2NC40NiUyMDExNzYuNjMlMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIw''@;'; + put 'put ''JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjM5NkM3REYlMjIlMjBwb2ludHMlM0QlMjI5NjQuNDYlMjAxMTc2LjYzJTIwODY3LjY0JTIwMTA3OS43JTIwODY3LjY0JTIwMTA3OS43JTIwOTY0LjQ2JTIwMTE3Ni42MyUy''@;'; + put 'put ''MiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzk2QzdERiUyMiUyMHBvaW50cyUzRCUyMjEwMTAuOTIlMjAxMjIzLjEzJTIwMTIzMS4xNiUyMDE0NDMuNjMlMjAx''@;'; + put 'put ''MDEwLjkyJTIwMTIyMy4xMyUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzk2QzdERiUyMiUyMHBvaW50cyUzRCUyMjEyNDAuMDglMjA3MDcuMjIlMjAxMTY3''@;'; + put 'put ''LjklMjA3NzkuNCUyMDEyNjQuNjglMjA4NzYuNCUyMDEzMzYuODclMjA4MDQuMjIlMjAxMjQwLjA4JTIwNzA3LjIxJTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIy''@;'; + put 'put ''JTIzOTZDN0RGJTIyJTIwcG9pbnRzJTNEJTIyOTgwLjgzJTIwNDQ3LjM5JTIwNjkxLjc0JTIwMTU3LjY2JTIwNjE5LjU5JTIwMjI5LjgyJTIwOTA4LjY2JTIwNTE5LjU2JTIwOTgwLjgzJTIwNDQ3LjM5JTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUy''@;'; + put 'put ''MCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzQUZENEU3JTIyJTIwcG9pbnRzJTNEJTIyNzA5LjMlMjA3MTguOTElMjA5NjguNzQlMjA5NzguNiUyMDExNjcuOTElMjA3NzkuNCUyMDkwOC42NiUyMDUxOS41NSUyMiUzRSUzQyUyRnBvbHlnb24lM0Ul''@;'; + put 'put ''MEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzY5QUZENCUyMiUyMHBvaW50cyUzRCUyMjk4MC44MyUyMDQ0Ny4zOSUyMDkwOC42NiUyMDUxOS41NSUyMDExNjcuOTElMjA3NzkuNCUyMDEyNDAuMDgl''@;'; + put 'put ''MjA3MDcuMjElMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjNBMERFRUElMjIlMjBwb2ludHMlM0QlMjIxMDM0LjU5JTIwMy4xMiUyMDg0Ni4yNSUyMDMuMTIl''@;'; + put 'put ''MjA2OTEuNzQlMjAxNTcuNjYlMjA5ODAuODMlMjA0NDcuMzklMjAxMjI5Ljc1JTIwMTk4LjQ3JTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzQTBERUVBJTIy''@;'; + put 'put ''JTIwcG9pbnRzJTNEJTIyMTI0MC4wOCUyMDcwNy4yMSUyMDEzMzYuODclMjA4MDQuMjIlMjAxNTg2LjAxJTIwNTU1LjA4JTIwMTQ4OS4xNCUyMDQ1OC4xMiUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAl''@;'; + put 'put ''M0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzcwQzBEQyUyMiUyMHBvaW50cyUzRCUyMjEyMjkuNzUlMjAxOTguNDclMjA5ODAuODMlMjA0NDcuMzklMjAxMjQwLjA4JTIwNzA3LjIxJTIwMTQ4OS4xNCUyMDQ1OC4xMiUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAl''@;'; + put 'put ''MjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyM0I3Q0VEMiUyMiUyMHBvaW50cyUzRCUyMjEyOTIuMjIlMjAxMzAyLjM4JTIwMTQzMy4zMiUyMDE0NDMuNjMlMjAxODMwLjYxJTIwMTQ0My42MyUyMDE0OTEuMTglMjAxMTAzLjQyJTIyJTNF''@;'; + put 'put ''JTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzQTBERUVBJTIyJTIwcG9pbnRzJTNEJTIyMTAxMC45MiUyMDEyMjMuMTMlMjA5NDkuNzglMjAxMjg0LjI3JTIwMTEwOS4w''@;'; + put 'put ''OCUyMDE0NDMuNjMlMjAxMTUwLjk4JTIwMTQ0My42MyUyMDExOTEuMDklMjAxNDAzLjUxJTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzNzVCOEM1JTIyJTIw''@;'; + put 'put ''cG9pbnRzJTNEJTIyMTE1MC45OCUyMDE0NDMuNjMlMjAxMjMxLjE2JTIwMTQ0My42MyUyMDExOTEuMDklMjAxNDAzLjUxJTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNE''@;'; + put 'put ''JTIyJTIzOTZDN0RGJTIyJTIwcG9pbnRzJTNEJTIyMTI5Mi4yMiUyMDEzMDIuMzglMjAxMTEyLjAzJTIwMTEyMi4wMiUyMDEwMTAuOTIlMjAxMjIzLjEzJTIwMTE5MS4wOSUyMDE0MDMuNTElMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIw''@;'; + put 'put ''JTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjM2RUE0QkMlMjIlMjBwb2ludHMlM0QlMjIxMTkxLjA5JTIwMTQwMy41MSUyMDEyMzEuMTYlMjAxNDQzLjYzJTIwMTQzMy4zMiUyMDE0NDMuNjMlMjAxMjkyLjIyJTIwMTMwMi4zOCUyMiUzRSUzQyUyRnBvbHlnb24l''@;'; + put 'put ''M0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzAwN0NCQiUyMiUyMG9wYWNpdHklM0QlMjIwLjQlMjIlMjBzdHlsZSUzRCUyMm1peC1ibGVuZC1tb2RlJTNBJTIwbXVsdGlwbHklM0IlMjIlMjBw''@;'; + put 'put ''b2ludHMlM0QlMjIxMzgzLjMlMjA4NTAuNzUlMjAxMzExLjEyJTIwOTIyLjk0JTIwMTQ5MS4xOCUyMDExMDMuNDIlMjAxNTYzLjM3JTIwMTAzMS4yMyUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nw''@;'; + put 'put ''b2x5Z29uJTIwZmlsbCUzRCUyMiUyM0I3Q0VEMiUyMiUyMHBvaW50cyUzRCUyMjE0OTEuMTglMjAxMTAzLjQyJTIwMTgzMC42MSUyMDE0NDMuNjMlMjAxOTc0Ljg2JTIwMTQ0My42MyUyMDE1NjMuMzclMjAxMDMxLjIzJTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUy''@;'; + put 'put ''MCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzNkVBNEJDJTIyJTIwcG9pbnRzJTNEJTIyMTQ5MS4xOCUyMDExMDMuNDIlMjAxODMwLjYxJTIwMTQ0My42MyUyMDE5NzQuODYlMjAxNDQzLjYzJTIwMTU2My4zNyUyMDEwMzEuMjMlMjIl''@;'; + put 'put ''M0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjNBMERFRUElMjIlMjBwb2ludHMlM0QlMjIxODEyLjY1JTIwNzgxLjk1JTIwMTYzMi40NiUyMDYwMS41OSUyMDEzODMu''@;'; + put 'put ''MyUyMDg1MC43NSUyMDE1NjMuMzclMjAxMDMxLjIzJTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzQjdDRUQyJTIyJTIwcG9pbnRzJTNEJTIyMTU2My4zNyUy''@;'; + put 'put ''MDEwMzEuMjMlMjAxOTc0Ljg2JTIwMTQ0My42MyUyMDIwNTQuNDUlMjAxNDQzLjYzJTIwMjA1NC40NSUyMDEwMjMuOTklMjAxODEyLjY1JTIwNzgxLjk1JTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUz''@;'; + put 'put ''Q3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzNzhDQUQ0JTIyJTIwcG9pbnRzJTNEJTIyMTU2My4zNyUyMDEwMzEuMjMlMjAxOTc0Ljg2JTIwMTQ0My42MyUyMDIwNTQuNDUlMjAxNDQzLjYzJTIwMjA1NC40NSUyMDEwMjMuOTklMjAxODEyLjY1JTIwNzgxLjk1JTIyJTNFJTNDJTJGcG9seWdvbiUz''@;'; + put 'put ''RSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzOTFDNUUwJTIyJTIwcG9pbnRzJTNEJTIyODAzLjc0JTIwMTMzNy4zNiUyMDg1MC4xOSUyMDEzODMuODclMjA5NDkuNzglMjAxMjg0LjI3JTIwOTAz''@;'; + put 'put ''LjMxJTIwMTIzNy43OCUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzkxQzVFMCUyMiUyMHBvaW50cyUzRCUyMjEwNjUuNTclMjAxMDc1LjUyJTIwMTExMi4w''@;'; + put 'put ''MyUyMDExMjIuMDIlMjAxMzExLjEyJTIwOTIyLjk0JTIwMTI2NC42OSUyMDg3Ni40JTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzNzdCOEQ5JTIyJTIwcG9p''@;'; + put 'put ''bnRzJTNEJTIyNjk3LjQ3JTIwMTQ0My42MyUyMDc5MC40MyUyMDE0NDMuNjMlMjA4NTAuMTklMjAxMzgzLjg3JTIwODAzLjc0JTIwMTMzNy4zNiUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5''@;'; + put 'put ''Z29uJTIwZmlsbCUzRCUyMiUyM0EwREVFQSUyMiUyMHBvaW50cyUzRCUyMjk2NC40NiUyMDExNzYuNjMlMjA5MDMuMzElMjAxMjM3Ljc4JTIwOTQ5Ljc4JTIwMTI4NC4yNyUyMDEwMTAuOTIlMjAxMjIzLjEzJTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUy''@;'; + put 'put ''MCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzNURCNUQ2JTIyJTIwcG9pbnRzJTNEJTIyOTY0LjQ2JTIwMTE3Ni42MyUyMDkwMy4zMSUyMDEyMzcuNzglMjA5NDkuNzglMjAxMjg0LjI3JTIwMTAxMC45MiUyMDEyMjMuMTMlMjIlM0UlM0MlMkZw''@;'; + put 'put ''b2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcmVjdCUyMGZpbGwlM0QlMjIlMjM5NkM3REYlMjIlMjB0cmFuc2Zvcm0lM0QlMjJ0cmFuc2xhdGUlMjgxMDM4LjI0NzI5NyUyQyUyMDExNDkuMjc1NDI5JTI5JTIwcm90YXRl''@;'; + put 'put ''JTI4LTQ0Ljk3MDAwMCUyOSUyMHRyYW5zbGF0ZSUyOC0xMDM4LjI0NzI5NyUyQyUyMC0xMTQ5LjI3NTQyOSUyOSUyMCUyMiUyMHglM0QlMjI5NjYuNzUyMjk3JTIyJTIweSUzRCUyMjExMTYuNDEwNDMlMjIlMjB3aWR0aCUzRCUyMjE0Mi45OSUyMiUyMGhlaWdodCUzRCUyMjY1LjczJTIyJTNF''@;'; + put 'put ''JTNDJTJGcmVjdCUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3JlY3QlMjBmaWxsJTNEJTIyJTIzNTdBOEQwJTIyJTIwdHJhbnNmb3JtJTNEJTIydHJhbnNsYXRlJTI4MTAzOC4yNDcyOTclMkMlMjAxMTQ5LjI3NTQyOSUyOSUyMHJv''@;'; + put 'put ''dGF0ZSUyOC00NC45NzAwMDAlMjklMjB0cmFuc2xhdGUlMjgtMTAzOC4yNDcyOTclMkMlMjAtMTE0OS4yNzU0MjklMjklMjAlMjIlMjB4JTNEJTIyOTY2Ljc1MjI5NyUyMiUyMHklM0QlMjIxMTE2LjQxMDQzJTIyJTIwd2lkdGglM0QlMjIxNDIuOTklMjIlMjBoZWlnaHQlM0QlMjI2NS43MyUy''@;'; + put 'put ''MiUzRSUzQyUyRnJlY3QlM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzk2QzdERiUyMiUyMHBvaW50cyUzRCUyMjEwMTAuOTIlMjAxMjIzLjEzJTIwMTAxMC45MiUyMDEyMjMuMTMlMjA5NjQu''@;'; + put 'put ''NDYlMjAxMTc2LjYzJTIwOTY0LjQ2JTIwMTE3Ni42MyUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzAwMDAwMCUyMiUyMG9wYWNpdHklM0QlMjIwLjQyJTIy''@;'; + put 'put ''JTIwcG9pbnRzJTNEJTIyMTAxMC45MiUyMDEyMjMuMTMlMjAxMDEwLjkyJTIwMTIyMy4xMyUyMDk2NC40NiUyMDExNzYuNjMlMjA5NjQuNDYlMjAxMTc2LjYzJTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUy''@;'; + put 'put ''MCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzMDA3Q0JCJTIyJTIwb3BhY2l0eSUzRCUyMjAuNCUyMiUyMHN0eWxlJTNEJTIybWl4LWJsZW5kLW1vZGUlM0ElMjBtdWx0aXBseSUzQiUyMiUyMHBvaW50cyUzRCUyMjEzMzYuODclMjA4MDQuMjIlMjAxMjY0LjY5JTIwODc2LjQlMjAxMzExLjEy''@;'; + put 'put ''JTIwOTIyLjk0JTIwMTM4My4zJTIwODUwLjc1JTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzNTdBOEQwJTIyJTIwcG9pbnRzJTNEJTIyMTMzNi44NyUyMDgw''@;'; + put 'put ''NC4yMiUyMDEyNjQuNjklMjA4NzYuNCUyMDEzMTEuMTIlMjA5MjIuOTQlMjAxMzgzLjMlMjA4NTAuNzUlMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjM5M0Q4''@;'; + put 'put ''Q0ElMjIlMjBvcGFjaXR5JTNEJTIyMC42JTIyJTIwc3R5bGUlM0QlMjJtaXgtYmxlbmQtbW9kZSUzQSUyMG92ZXJsYXklM0IlMjIlMjBwb2ludHMlM0QlMjIxMzM2Ljg3JTIwODA0LjIyJTIwMTM4My4zJTIwODUwLjc1JTIwMTYzMi40NiUyMDYwMS41OSUyMDE1ODYuMDElMjA1NTUuMDglMjIl''@;'; + put 'put ''M0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjM1REI1RDYlMjIlMjBwb2ludHMlM0QlMjIxMzM2Ljg3JTIwODA0LjIyJTIwMTM4My4zJTIwODUwLjc1JTIwMTYzMi40''@;'; + put 'put ''NiUyMDYwMS41OSUyMDE1ODYuMDElMjA1NTUuMDglMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjNBRkQzRTYlMjIlMjBwb2ludHMlM0QlMjIyMDU2JTIwMC4x''@;'; + put 'put ''MiUyMDE2NDUuNDklMjAwLjEyJTIwMTY0OC40OSUyMDMuMTIlMjAxOTQ0LjA3JTIwMy4xMiUyMDE3OTYuMjIlMjAxNTAuOTklMjAxODkzLjEyJTIwMjQ3Ljk3JTIwMjA1NC40NSUyMDg2LjY0JTIwMjA1NC40NSUyMDE3OS42JTIwMTkzOS41OCUyMDI5NC40NyUyMDIwNTYlMjA0MTElMjIlM0Ul''@;'; + put 'put ''M0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjM3QUI5RDklMjIlMjBwb2ludHMlM0QlMjIxNjQ4LjQ5JTIwMy4xMiUyMDE3OTYuMjIlMjAxNTAuOTklMjAxOTQ0LjA3JTIw''@;'; + put 'put ''My4xMiUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzY2QUVENCUyMiUyMHBvaW50cyUzRCUyMjIwNTQuNDUlMjA4Ni42NCUyMDE4OTMuMTIlMjAyNDcuOTcl''@;'; + put 'put ''MjAxOTM5LjU4JTIwMjk0LjQ3JTIwMjA1NC40NSUyMDE3OS42JTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzQjdDRUQyJTIyJTIwcG9pbnRzJTNEJTIyMTg4''@;'; + put 'put ''NC44MiUyMDcwOS43OCUyMDIwNTQuNDUlMjA4NzkuNTclMjAyMDU0LjQ1JTIwNTQwLjE1JTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzQUZENEU3JTIyJTIw''@;'; + put 'put ''cG9pbnRzJTNEJTIyMTQ4OS4xNCUyMDQ1OC4xMiUyMDE0ODkuMTQlMjA0NTguMTIlMjAxMzcxLjEzJTIwMzM5Ljk5JTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIy''@;'; + put 'put ''JTIzQUZENEU3JTIyJTIwcG9pbnRzJTNEJTIyMTc5Ni4yMiUyMDE1MC45OSUyMDE2NDguNDklMjAzLjEyJTIwMTQyNS4xJTIwMy4xMiUyMDEzMDEuOTElMjAxMjYuMzElMjAxNTYxLjMlMjAzODUuOTUlMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIw''@;'; + put 'put ''JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcmVjdCUyMGZpbGwlM0QlMjIlMjM5MUM1RTAlMjIlMjB0cmFuc2Zvcm0lM0QlMjJ0cmFuc2xhdGUlMjgxNzk4Ljk1NDA2NiUyQyUyMDM4OC43OTg3ODElMjklMjByb3RhdGUlMjgtNDQuOTcwMDAwJTI5JTIwdHJhbnNsYXRlJTI4LTE3OTguOTU0''@;'; + put 'put ''MDY2JTJDJTIwLTM4OC43OTg3ODElMjklMjAlMjIlMjB4JTNEJTIyMTYzMi44MjQwNyUyMiUyMHklM0QlMjIzNTUuOTMzNzgxJTIyJTIwd2lkdGglM0QlMjIzMzIuMjYlMjIlMjBoZWlnaHQlM0QlMjI2NS43MyUyMiUzRSUzQyUyRnJlY3QlM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAl''@;'; + put 'put ''MjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzkxQzVFMCUyMiUyMHBvaW50cyUzRCUyMjE1ODYuMDElMjA1NTUuMDglMjAxNjMyLjQ2JTIwNjAxLjU5JTIwMTYzMi40NiUyMDYwMS41OSUyMDE1ODYuMDElMjA1NTUuMDglMjIlM0UlM0MlMkZwb2x5''@;'; + put 'put ''Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcmVjdCUyMGZpbGwlM0QlMjIlMjNCM0VBRUUlMjIlMjB0cmFuc2Zvcm0lM0QlMjJ0cmFuc2xhdGUlMjgxNTczLjcxMTU3NyUyQyUyMDQ3MC42MjAyNjMlMjklMjByb3RhdGUlMjgt''@;'; + put 'put ''NDUuMDAwMDAwJTI5JTIwdHJhbnNsYXRlJTI4LTE1NzMuNzExNTc3JTJDJTIwLTQ3MC42MjAyNjMlMjklMjAlMjIlMjB4JTNEJTIyMTUyMi42ODE1OCUyMiUyMHklM0QlMjI0MDIuMDg1MjYzJTIyJTIwd2lkdGglM0QlMjIxMDIuMDYlMjIlMjBoZWlnaHQlM0QlMjIxMzcuMDclMjIlM0UlM0Ml''@;'; + put 'put ''MkZyZWN0JTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcmVjdCUyMGZpbGwlM0QlMjIlMjNCM0VBRUUlMjIlMjB0cmFuc2Zvcm0lM0QlMjJ0cmFuc2xhdGUlMjgxNzU4LjY3Njc1OCUyQyUyMDY1NS43NjcxMjAlMjklMjByb3RhdGUl''@;'; + put 'put ''MjgtNDQuOTcwMDAwJTI5JTIwdHJhbnNsYXRlJTI4LTE3NTguNjc2NzU4JTJDJTIwLTY1NS43NjcxMjAlMjklMjAlMjIlMjB4JTNEJTIyMTcwNy42NDY3NiUyMiUyMHklM0QlMjI1MjguMjkyMTIlMjIlMjB3aWR0aCUzRCUyMjEwMi4wNiUyMiUyMGhlaWdodCUzRCUyMjI1NC45NSUyMiUzRSUz''@;'; + put 'put ''QyUyRnJlY3QlM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyM0IzRUFFRSUyMiUyMHBvaW50cyUzRCUyMjEzMDEuOTElMjAxMjYuMzElMjAxMTc4Ljg0JTIwMy4xMiUyMDEwMzQuNTklMjAzLjEy''@;'; + put 'put ''JTIwMTIyOS43NSUyMDE5OC40NyUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzgzQzBDOCUyMiUyMHBvaW50cyUzRCUyMjE4MTIuNjUlMjA3ODEuOTUlMjAy''@;'; + put 'put ''MDU0LjQ1JTIwMTAyMy45OSUyMDIwNTQuNDUlMjA4NzkuNTclMjAxODg0LjgyJTIwNzA5Ljc4JTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3JlY3QlMjBmaWxsJTNEJTIyJTIzN0RDNkRDJTIyJTIw''@;'; + put 'put ''dHJhbnNmb3JtJTNEJTIydHJhbnNsYXRlJTI4MTM5NS41MTY5MDElMkMlMjAyOTIuMjA2NTE5JTI5JTIwcm90YXRlJTI4LTQ1LjAwMDAwMCUyOSUyMHRyYW5zbGF0ZSUyOC0xMzk1LjUxNjkwMSUyQyUyMC0yOTIuMjA2NTE5JTI5JTIwJTIyJTIweCUzRCUyMjEzNDQuNDkxOSUyMiUyMHklM0Ql''@;'; + put 'put ''MjIxMDguNzAxNTE5JTIyJTIwd2lkdGglM0QlMjIxMDIuMDUlMjIlMjBoZWlnaHQlM0QlMjIzNjcuMDElMjIlM0UlM0MlMkZyZWN0JTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcmVjdCUyMGZpbGwlM0QlMjIlMjM2OEI4RDUlMjIl''@;'; + put 'put ''MjB0cmFuc2Zvcm0lM0QlMjJ0cmFuc2xhdGUlMjgxNjQ1LjMxMzYxOSUyQyUyMDU0Mi4yNDk3NjAlMjklMjByb3RhdGUlMjgtNDUuMDAwMDAwJTI5JTIwdHJhbnNsYXRlJTI4LTE2NDUuMzEzNjE5JTJDJTIwLTU0Mi4yNDk3NjAlMjklMjAlMjIlMjB4JTNEJTIyMTU5NC4yODM2MiUyMiUyMHkl''@;'; + put 'put ''M0QlMjI1MDkuMzg0NzYlMjIlMjB3aWR0aCUzRCUyMjEwMi4wNiUyMiUyMGhlaWdodCUzRCUyMjY1LjczJTIyJTNFJTNDJTJGcmVjdCUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQyUyRmclM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAl''@;'; + put 'put ''MjAlMjAlMjAlM0NnJTIwdHJhbnNmb3JtJTNEJTIydHJhbnNsYXRlJTI4MC4wMDAwMDAlMkMlMjAzLjAwMDAwMCUyOSUyMiUyMHN0cm9rZSUzRCUyMiUyMzAwMDAwMCUyMiUyMG9wYWNpdHklM0QlMjIwLjE1JTIyJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIw''@;'; + put 'put ''JTIwJTIwJTIwJTIwJTNDcGF0aCUyMGQlM0QlMjJNMC45NSUyQzAuMTIlMjBMMC45NSUyQzg0MC4xMiUyMiUyMGlkJTNEJTIyU2hhcGUlMjIlM0UlM0MlMkZwYXRoJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDJTJGZyUzRSUwRCUwQSUyMCUyMCUyMCUy''@;'; + put 'put ''MCUyMCUyMCUyMCUyMCUzQyUyRmclM0UlMEQlMEElMjAlMjAlMjAlMjAlM0MlMkZnJTNFJTBEJTBBJTNDJTJGc3ZnJTNFKTtiYWNrZ3JvdW5kLXNpemU6MTAwJTtiYWNrZ3JvdW5kLXBvc2l0aW9uOjI1LjJyZW0gMDtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXR9LmxvZ2luLXdyYXBwZXIg''@;'; + put 'put ''LmxvZ2lue2JhY2tncm91bmQ6I2ZhZmFmYTtiYWNrZ3JvdW5kOnZhcigtLWNsci1sb2dpbi1iYWNrZ3JvdW5kLWNvbG9yLCAjZmFmYWZhKTtwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2p1c3RpZnktY29udGVudDpjZW50ZXI7cGFkZGluZzox''@;'; + put 'put ''LjJyZW0gM3JlbTtoZWlnaHQ6YXV0bzttaW4taGVpZ2h0OjEwMHZoO3dpZHRoOjI1LjJyZW19LmxvZ2luLXdyYXBwZXIgLmxvZ2luIC50aXRsZXtjb2xvcjojMDAwO2NvbG9yOnZhcigtLWNsci1sb2dpbi10aXRsZS1jb2xvciwgYmxhY2spO2ZvbnQtd2VpZ2h0OjIwMDtmb250LXdlaWdodDp2''@;'; + put 'put ''YXIoLS1jbHItbG9naW4tdGl0bGUtZm9udC13ZWlnaHQsIDIwMCk7Zm9udC1mYW1pbHk6TWV0cm9wb2xpcyxBdmVuaXIgTmV4dCxIZWx2ZXRpY2EgTmV1ZSxBcmlhbCxzYW5zLXNlcmlmO2ZvbnQtZmFtaWx5OnZhcigtLWNsci1sb2dpbi10aXRsZS1mb250LWZhbWlseSwgTWV0cm9wb2xpcywg''@;'; + put 'put ''IkF2ZW5pciBOZXh0IiwgIkhlbHZldGljYSBOZXVlIiwgQXJpYWwsIHNhbnMtc2VyaWYpO2ZvbnQtc2l6ZToxLjZyZW07bGV0dGVyLXNwYWNpbmc6bm9ybWFsO2xpbmUtaGVpZ2h0OjEuOHJlbX0ubG9naW4td3JhcHBlciAubG9naW4gLnRpdGxlIC53ZWxjb21le2xpbmUtaGVpZ2h0OjEuOHJl''@;'; + put 'put ''bX0ubG9naW4td3JhcHBlciAubG9naW4gLnRpdGxlIC5oaW50e2NvbG9yOiMwMDA7Y29sb3I6dmFyKC0tY2xyLWxvZ2luLXRpdGxlLWNvbG9yLCBibGFjayk7bWFyZ2luLXRvcDoxLjVyZW07Zm9udC1zaXplOi43cmVtfS5sb2dpbi13cmFwcGVyIC5sb2dpbiAudHJhZGVtYXJre2NvbG9yOiMw''@;'; + put 'put ''MDA7Y29sb3I6dmFyKC0tY2xyLWxvZ2luLXRyYWRlbWFyay1jb2xvciwgYmxhY2spO2ZvbnQtd2VpZ2h0OjIwMDtmb250LXdlaWdodDp2YXIoLS1jbHItbG9naW4tdHJhZGVtYXJrLWZvbnQtd2VpZ2h0LCAyMDApO2ZvbnQtZmFtaWx5Ok1ldHJvcG9saXMsQXZlbmlyIE5leHQsSGVsdmV0aWNh''@;'; + put 'put ''IE5ldWUsQXJpYWwsc2Fucy1zZXJpZjtmb250LWZhbWlseTp2YXIoLS1jbHItbG9naW4tdHJhZGVtYXJrLWZvbnQtZmFtaWx5LCBNZXRyb3BvbGlzLCAiQXZlbmlyIE5leHQiLCAiSGVsdmV0aWNhIE5ldWUiLCBBcmlhbCwgc2Fucy1zZXJpZik7Zm9udC1zaXplOjEuNHJlbTtsZXR0ZXItc3Bh''@;'; + put 'put ''Y2luZzpub3JtYWx9LmxvZ2luLXdyYXBwZXIgLmxvZ2luIC5zdWJ0aXRsZXtmb250LXdlaWdodDoyMDA7Zm9udC13ZWlnaHQ6dmFyKC0tY2xyLWxvZ2luLXN1YnRpdGxlLWZvbnQtd2VpZ2h0LCAyMDApO2NvbG9yOiMwMDA7Y29sb3I6dmFyKC0tY2xyLWxvZ2luLXN1YnRpdGxlLWNvbG9yLCBi''@;'; + put 'put ''bGFjayk7Zm9udC1mYW1pbHk6TWV0cm9wb2xpcyxBdmVuaXIgTmV4dCxIZWx2ZXRpY2EgTmV1ZSxBcmlhbCxzYW5zLXNlcmlmO2ZvbnQtZmFtaWx5OnZhcigtLWNsci1sb2dpbi1zdWJ0aXRsZS1mb250LWZhbWlseSwgTWV0cm9wb2xpcywgIkF2ZW5pciBOZXh0IiwgIkhlbHZldGljYSBOZXVl''@;'; + put 'put ''IiwgQXJpYWwsIHNhbnMtc2VyaWYpO2ZvbnQtc2l6ZToxLjFyZW07bGV0dGVyLXNwYWNpbmc6bm9ybWFsO2xpbmUtaGVpZ2h0OjEuOHJlbX0ubG9naW4td3JhcHBlciAubG9naW4gLmxvZ2luLWdyb3Vwe2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47cGFkZGluZzoyLjRyZW0g''@;'; + put 'put ''MCAwfS5sb2dpbi13cmFwcGVyIC5sb2dpbiAubG9naW4tZ3JvdXAgLmF1dGgtc291cmNlLC5sb2dpbi13cmFwcGVyIC5sb2dpbiAubG9naW4tZ3JvdXAgLnVzZXJuYW1lLC5sb2dpbi13cmFwcGVyIC5sb2dpbiAubG9naW4tZ3JvdXAgLnBhc3N3b3JkLC5sb2dpbi13cmFwcGVyIC5sb2dpbiAu''@;'; + put 'put ''bG9naW4tZ3JvdXAgLmNoZWNrYm94LC5sb2dpbi13cmFwcGVyIC5sb2dpbiAubG9naW4tZ3JvdXAgLmNsci1mb3JtLWNvbnRyb2wsLmxvZ2luLXdyYXBwZXIgLmxvZ2luIC5sb2dpbi1ncm91cCAuY2xyLWNoZWNrYm94LXdyYXBwZXJ7bWFyZ2luOi4zcmVtIDAgLjlyZW19LmxvZ2luLXdyYXBw''@;'; + put 'put ''ZXIgLmxvZ2luIC5sb2dpbi1ncm91cCAuY2xyLWNvbnRyb2wtY29udGFpbmVye2Rpc3BsYXk6YmxvY2s7d2lkdGg6MTAwJX0ubG9naW4td3JhcHBlciAubG9naW4gLmxvZ2luLWdyb3VwIC5jbHItY29udHJvbC1jb250YWluZXIgLmNsci1zZWxlY3Qtd3JhcHBlciwubG9naW4td3JhcHBlciAu''@;'; + put 'put ''bG9naW4gLmxvZ2luLWdyb3VwIC5jbHItY29udHJvbC1jb250YWluZXIgLmNsci1zZWxlY3R7d2lkdGg6MTAwJX0ubG9naW4td3JhcHBlciAubG9naW4gLmxvZ2luLWdyb3VwIC5jbHItY29udHJvbC1jb250YWluZXIgLmNsci1pbnB1dC13cmFwcGVyPi5jbHItaW5wdXR7d2lkdGg6MTAwJX0u''@;'; + put 'put ''bG9naW4td3JhcHBlciAubG9naW4gLmxvZ2luLWdyb3VwIC5jbHItY29udHJvbC1jb250YWluZXIgLmNsci1pbnB1dC13cmFwcGVye3dpZHRoOjEwMCV9LmxvZ2luLXdyYXBwZXIgLmxvZ2luIC5sb2dpbi1ncm91cCAuY2xyLWNvbnRyb2wtY29udGFpbmVyIC5jbHItaW5wdXQtd3JhcHBlcj4u''@;'; + put 'put ''Y2xyLWlucHV0LWdyb3Vwe21heC13aWR0aDoxMDAlO3dpZHRoOjEwMCU7cGFkZGluZy1yaWdodDouNDhyZW19LmxvZ2luLXdyYXBwZXIgLmxvZ2luIC5sb2dpbi1ncm91cCAuY2xyLWNvbnRyb2wtY29udGFpbmVyIC5jbHItaW5wdXQtd3JhcHBlcj4uY2xyLWlucHV0LWdyb3VwPi5jbHItaW5w''@;'; + put 'put ''dXR7d2lkdGg6Y2FsYygxMDAlIC0gMS4ycmVtKX0ubG9naW4td3JhcHBlciAubG9naW4gLmxvZ2luLWdyb3VwIC50b29sdGlwLXZhbGlkYXRpb257bWFyZ2luLXRvcDouM3JlbX0ubG9naW4td3JhcHBlciAubG9naW4gLmxvZ2luLWdyb3VwIC50b29sdGlwLXZhbGlkYXRpb24gLnVzZXJuYW1l''@;'; + put 'put ''LC5sb2dpbi13cmFwcGVyIC5sb2dpbiAubG9naW4tZ3JvdXAgLnRvb2x0aXAtdmFsaWRhdGlvbiAucGFzc3dvcmR7d2lkdGg6MTAwJTttYXJnaW4tdG9wOjB9LmxvZ2luLXdyYXBwZXIgLmxvZ2luIC5sb2dpbi1ncm91cCAuZXJyb3J7ZGlzcGxheTpub25lO21hcmdpbjouM3JlbSAwIDA7cGFk''@;'; + put 'put ''ZGluZzouNDVyZW0gLjZyZW07YmFja2dyb3VuZDojYzIxZDAwO2JhY2tncm91bmQ6dmFyKC0tY2xyLWxvZ2luLWVycm9yLWJhY2tncm91bmQtY29sb3IsICNjMjFkMDApO2NvbG9yOiNmYWZhZmE7Y29sb3I6dmFyKC0tY2xyLWxvZ2luLWJhY2tncm91bmQtY29sb3IsICNmYWZhZmEpO2JvcmRl''@;'; + put 'put ''ci1yYWRpdXM6LjE1cmVtO2JvcmRlci1yYWRpdXM6dmFyKC0tY2xyLWxvZ2luLWVycm9yLWJvcmRlci1yYWRpdXMsIC4xNXJlbSk7bGluZS1oZWlnaHQ6LjlyZW19LmxvZ2luLXdyYXBwZXIgLmxvZ2luIC5sb2dpbi1ncm91cCAuZXJyb3I6YmVmb3Jle2Rpc3BsYXk6aW5saW5lLWJsb2NrO2Nv''@;'; + put 'put ''bnRlbnQ6IiI7YmFja2dyb3VuZDp1cmwoZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9dXRmOCwlM0NzdmclMjB2ZXJzaW9uJTNEJTIyMS4xJTIyJTIwdmlld0JveCUzRCUyMjUlMjA1JTIwMjYlMjAyNiUyMiUyMHByZXNlcnZlQXNwZWN0UmF0aW8lM0QlMjJ4TWlkWU1pZCUyMG1lZXQlMjIl''@;'; + put 'put ''MjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiUyMHhtbG5zJTNBeGxpbmslM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjE5OTklMkZ4bGluayUyMiUzRSUzQ2RlZnMlM0UlM0NzdHlsZSUzRS5jbHItaS1vdXRsaW5lJTdCZmlsbCUzQSUy''@;'; + put 'put ''M2ZhZmFmYSUzQiU3RCUzQyUyRnN0eWxlJTNFJTNDJTJGZGVmcyUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3RpdGxlJTNFZXhjbGFtYXRpb24tY2lyY2xlLWxpbmUlM0MlMkZ0aXRsZSUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUy''@;'; + put 'put ''MCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BhdGglMjBjbGFzcyUzRCUyMmNsci1pLW91dGxpbmUlMjBjbHItaS1vdXRsaW5lLXBhdGgtMSUyMiUyMGQlM0QlMjJNMTglMkM2QTEyJTJDMTIlMkMwJTJDMSUyQzAlMkMzMCUyQzE4JTJDMTIlMkMxMiUyQzAlMkMwJTJDMCUyQzE4JTJDNlpt''@;'; + put 'put ''MCUyQzIyQTEwJTJDMTAlMkMwJTJDMSUyQzElMkMyOCUyQzE4JTJDMTAlMkMxMCUyQzAlMkMwJTJDMSUyQzE4JTJDMjhaJTIyJTNFJTNDJTJGcGF0aCUzRSUzQ3BhdGglMjBjbGFzcyUzRCUyMmNsci1pLW91dGxpbmUlMjBjbHItaS1vdXRsaW5lLXBhdGgtMiUyMiUyMGQlM0QlMjJNMTglMkMy''@;'; + put 'put ''MC4wN2ExLjMlMkMxLjMlMkMwJTJDMCUyQzEtMS4zLTEuM3YtNmExLjMlMkMxLjMlMkMwJTJDMSUyQzElMkMyLjYlMkMwdjZBMS4zJTJDMS4zJTJDMCUyQzAlMkMxJTJDMTglMkMyMC4wN1olMjIlM0UlM0MlMkZwYXRoJTNFJTNDY2lyY2xlJTIwY2xhc3MlM0QlMjJjbHItaS1vdXRsaW5lJTIw''@;'; + put 'put ''Y2xyLWktb3V0bGluZS1wYXRoLTMlMjIlMjBjeCUzRCUyMjE3Ljk1JTIyJTIwY3klM0QlMjIyMy4wMiUyMiUyMHIlM0QlMjIxLjUlMjIlM0UlM0MlMkZjaXJjbGUlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0MlMkZzdmclM0UpO21hcmdpbjouMDVyZW0gLjNy''@;'; + put 'put ''ZW0gMCAwO2hlaWdodDouOHJlbTt3aWR0aDouOHJlbX0ubG9naW4td3JhcHBlciAubG9naW4gLmxvZ2luLWdyb3VwIC5lcnJvci5hY3RpdmV7ZGlzcGxheTpmbGV4fS5sb2dpbi13cmFwcGVyIC5sb2dpbiAubG9naW4tZ3JvdXAgLmVycm9yLmFjdGl2ZTpiZWZvcmV7ZmxleDowIDAgLjhyZW19''@;'; + put 'put ''LmxvZ2luLXdyYXBwZXIgLmxvZ2luIC5sb2dpbi1ncm91cCAuYnRue21hcmdpbjozLjZyZW0gMCAwO21heC13aWR0aDpub25lfS5sb2dpbi13cmFwcGVyIC5sb2dpbiAubG9naW4tZ3JvdXAgLmVycm9yKy5idG57bWFyZ2luOjEuMnJlbSAwIDB9LmxvZ2luLXdyYXBwZXIgLmxvZ2luIC5sb2dp''@;'; + put 'put ''bi1ncm91cCAuc2lnbnVwe21hcmdpbi10b3A6LjZyZW07Zm9udC1zaXplOi43cmVtO3RleHQtYWxpZ246Y2VudGVyfS5sb2dpbi13cmFwcGVyIC5sb2dpbjphZnRlcntwb3NpdGlvbjphYnNvbHV0ZTtjb250ZW50OiIiO2Rpc3BsYXk6YmxvY2s7d2lkdGg6LjA1cmVtO2hlaWdodDoxMDAlO2Jh''@;'; + put 'put ''Y2tncm91bmQ6IzAwMDtiYWNrZ3JvdW5kOnZhcigtLWNsci1sb2dpbi1wYW5lbC1saW5lLWNvbG9yLCBibGFjayk7b3BhY2l0eTouMTtvcGFjaXR5OnZhcigtLWNsci1sb2dpbi1wYW5lbC1saW5lLW9wYWNpdHksIC4xKTt0b3A6MDtyaWdodDotLjFyZW19QG1lZGlhIHNjcmVlbiBhbmQgKG1h''@;'; + put 'put ''eC13aWR0aDo3NjhweCl7LmxvZ2luLXdyYXBwZXJ7anVzdGlmeS1jb250ZW50OmNlbnRlcjtiYWNrZ3JvdW5kOiNmYWZhZmE7YmFja2dyb3VuZDp2YXIoLS1jbHItbG9naW4tYmFja2dyb3VuZC1jb2xvciwgI2ZhZmFmYSl9LmxvZ2luLXdyYXBwZXIgLmxvZ2lue3dpZHRoOjEwMCU7bWFyZ2lu''@;'; + put 'put ''LWxlZnQ6MDtwYWRkaW5nOjEuMnJlbSAyMCV9LmxvZ2luLXdyYXBwZXIgLmxvZ2luOmFmdGVye2NvbnRlbnQ6bm9uZX19QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDo1NzZweCl7LmxvZ2luLXdyYXBwZXIgLmxvZ2lue3BhZGRpbmc6MS4ycmVtIDE1JX19Lm1haW4tY29udGFpbmVye2Rp''@;'; + put 'put ''c3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47aGVpZ2h0OjEwMHZoO2JhY2tncm91bmQ6I2ZhZmFmYTtiYWNrZ3JvdW5kOnZhcigtLWNsci1nbG9iYWwtYXBwLWJhY2tncm91bmQsICNmYWZhZmEpfS5tYWluLWNvbnRhaW5lciAuYWxlcnQuYWxlcnQtYXBwLWxldmVse2ZsZXg6MCAw''@;'; + put 'put ''IGF1dG87b3ZlcmZsb3cteDpoaWRkZW59Lm1haW4tY29udGFpbmVyIGhlYWRlciwubWFpbi1jb250YWluZXIgLmhlYWRlcntmbGV4OjAgMCAzcmVtfS5tYWluLWNvbnRhaW5lciAuc3ViLW5hdiwubWFpbi1jb250YWluZXIgLnN1Ym5hdntmbGV4OjAgMCAxLjhyZW19Lm1haW4tY29udGFpbmVy''@;'; + put 'put ''IC51LW1haW4tY29udGFpbmVye2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47ZmxleDoxIDEgYXV0bztvdmVyZmxvdzpoaWRkZW59Lm1haW4tY29udGFpbmVyIC5jb250ZW50LWNvbnRhaW5lcntkaXNwbGF5OmZsZXg7ZmxleDoxIDEgYXV0bzttaW4taGVpZ2h0Oi4wNXJlbX0u''@;'; + put 'put ''bWFpbi1jb250YWluZXIgLmNvbnRlbnQtY29udGFpbmVyIC5jb250ZW50LWFyZWF7ZmxleDoxIDEgYXV0bztvdmVyZmxvdy15OmF1dG87LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6dG91Y2g7cGFkZGluZzoxLjJyZW19Lm1haW4tY29udGFpbmVyIC5jb250ZW50LWNvbnRhaW5lciAuY29u''@;'; + put 'put ''dGVudC1hcmVhPjpmaXJzdC1jaGlsZHttYXJnaW4tdG9wOjB9Lm1haW4tY29udGFpbmVyIC5jb250ZW50LWNvbnRhaW5lciAuc2lkZW5hdntmbGV4OjAgMCBhdXRvO29yZGVyOi0xO292ZXJmbG93OmhpZGRlbn0ubWFpbi1jb250YWluZXIgLmNvbnRlbnQtY29udGFpbmVyIC5jbHItdmVydGlj''@;'; + put 'put ''YWwtbmF2e2ZsZXg6MCAwIGF1dG87b3JkZXI6LTF9QG1lZGlhIHByaW50ey5tYWluLWNvbnRhaW5lcntoZWlnaHQ6YXV0b319Ym9keS5uby1zY3JvbGxpbmcsYm9keVtjZHMtbGF5b3V0PW5vLXNjcm9sbGluZ10sYm9keS5uby1zY3JvbGxpbmcgLm1haW4tY29udGFpbmVyIC5jb250ZW50LWNv''@;'; + put 'put ''bnRhaW5lciAuY29udGVudC1hcmVhLGJvZHlbY2RzLWxheW91dD1uby1zY3JvbGxpbmddIC5tYWluLWNvbnRhaW5lciAuY29udGVudC1jb250YWluZXIgLmNvbnRlbnQtYXJlYXtvdmVyZmxvdzpoaWRkZW59OnJvb3R7LS1jbHItbW9kYWwtY2xvc2UtY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5l''@;'; + put 'put ''dXRyYWwtNjAwKTstLWNsci1tb2RhbC1iZy1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC0wKTstLWNsci1tb2RhbC1jb250ZW50LWJveC1zaGFkb3ctY29sb3I6cmdiYSggMCwgMCwgMCwgLjIgKTstLWNsci1tb2RhbC1iYWNrZHJvcC1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJh''@;'; + put 'put ''bC05MDApOy0tY2xyLW1vZGFsLWJhY2tkcm9wLW9wYWNpdHk6Ljg1Oy0tY2xyLW1vZGFsLWJvcmRlci1yYWRpdXM6dmFyKC0tY2xyLWdsb2JhbC1ib3JkZXJyYWRpdXMpOy0tY2xyLW1vZGFsLXRpdGxlLWNvbG9yOnZhcigtLWNsci1oMy1jb2xvcik7LS1jbHItbW9kYWwtdGl0bGUtZm9udC1m''@;'; + put 'put ''YW1pbHk6dmFyKC0tY2xyLWgzLWZvbnQtZmFtaWx5KTstLWNsci1tb2RhbC10aXRsZS1mb250LXdlaWdodDp2YXIoLS1jbHItaDMtZm9udC13ZWlnaHQpfS5tb2RhbHtwb3NpdGlvbjpmaXhlZDt0b3A6MDtib3R0b206MDtyaWdodDowO2xlZnQ6MDt6LWluZGV4OjEwNTA7ZGlzcGxheTpmbGV4''@;'; + put 'put ''O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtwYWRkaW5nOjIuNHJlbX1AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOjU3NnB4KXsubW9kYWx7cGFkZGluZzouNnJlbX19Lm1vZGFsLWRpYWxvZ3twb3NpdGlvbjpyZWxh''@;'; + put 'put ''dGl2ZTt6LWluZGV4OjEwNTA7d2lkdGg6MjguOHJlbTttYXgtd2lkdGg6MTAwJX0ubW9kYWwtZGlhbG9nLm1vZGFsLXNte3dpZHRoOjE0LjRyZW19Lm1vZGFsLWRpYWxvZy5tb2RhbC1sZ3t3aWR0aDo0My4ycmVtfS5tb2RhbC1kaWFsb2cubW9kYWwteGx7d2lkdGg6NTcuNnJlbX0ubW9kYWwt''@;'; + put 'put ''ZGlhbG9nIC5tb2RhbC1jb250ZW50e3BhZGRpbmc6MS4ycmVtO2JhY2tncm91bmQtY29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1tb2RhbC1iZy1jb2xvciwgd2hpdGUpO2JvcmRlci1yYWRpdXM6LjE1cmVtO2JvcmRlci1yYWRpdXM6dmFyKC0tY2xyLW1vZGFsLWJvcmRl''@;'; + put 'put ''ci1yYWRpdXMsIC4xNXJlbSk7Ym94LXNoYWRvdzowIC4wNXJlbSAuMXJlbSAuMXJlbSAjMDAwMztib3gtc2hhZG93OjAgLjA1cmVtIC4xcmVtIC4xcmVtIHZhcigtLWNsci1tb2RhbC1jb250ZW50LWJveC1zaGFkb3ctY29sb3IpfS5tb2RhbC1oZWFkZXIsLm1vZGFsLWhlYWRlci0tYWNjZXNz''@;'; + put 'put ''aWJsZXtib3JkZXItYm90dG9tOm5vbmU7cGFkZGluZzowIDAgMS4ycmVtfS5tb2RhbC1oZWFkZXItLWFjY2Vzc2libGV7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2FsaWduLWl0ZW1zOmZsZXgtc3RhcnR9Lm1vZGFsLWhlYWRlciAubW9kYWwtdGl0bGUsLm1v''@;'; + put 'put ''ZGFsLWhlYWRlci0tYWNjZXNzaWJsZSAubW9kYWwtdGl0bGV7Y29sb3I6IzAwMDtjb2xvcjp2YXIoLS1jbHItbW9kYWwtdGl0bGUtY29sb3IsIGJsYWNrKTttYXJnaW46MDtwYWRkaW5nOjAgLjE1cmVtfS5tb2RhbC1oZWFkZXIgLm1vZGFsLXRpdGxlOm5vdChbY2RzLXRleHRdKSwubW9kYWwt''@;'; + put 'put ''aGVhZGVyLS1hY2Nlc3NpYmxlIC5tb2RhbC10aXRsZTpub3QoW2Nkcy10ZXh0XSl7Zm9udC1zaXplOjEuMXJlbTtmb250LWZhbWlseTpNZXRyb3BvbGlzLEF2ZW5pciBOZXh0LEhlbHZldGljYSBOZXVlLEFyaWFsLHNhbnMtc2VyaWY7Zm9udC1mYW1pbHk6dmFyKC0tY2xyLW1vZGFsLXRpdGxl''@;'; + put 'put ''LWZvbnQtZmFtaWx5LCBNZXRyb3BvbGlzLCAiQXZlbmlyIE5leHQiLCAiSGVsdmV0aWNhIE5ldWUiLCBBcmlhbCwgc2Fucy1zZXJpZik7Zm9udC13ZWlnaHQ6MjAwO2ZvbnQtd2VpZ2h0OnZhcigtLWNsci1tb2RhbC10aXRsZS1mb250LXdlaWdodCwgMjAwKTtsaW5lLWhlaWdodDoxLjJyZW07''@;'; + put 'put ''bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tb2RhbC1oZWFkZXIgLmNsb3NlLC5tb2RhbC1oZWFkZXItLWFjY2Vzc2libGUgLmNsb3Nle21hcmdpbi10b3A6LS4wNXJlbTttYXJnaW4tcmlnaHQ6LS4yNXJlbTtmb250LXNpemU6MS4zcmVtO2xpbmUtaGVpZ2h0OjEuMnJlbX0ubW9kYWwtaGVhZGVy''@;'; + put 'put ''IC5jbG9zZSBjZHMtaWNvbiwubW9kYWwtaGVhZGVyLS1hY2Nlc3NpYmxlIC5jbG9zZSBjZHMtaWNvbiwubW9kYWwtaGVhZGVyIC5jbG9zZSBjbHItaWNvbiwubW9kYWwtaGVhZGVyLS1hY2Nlc3NpYmxlIC5jbG9zZSBjbHItaWNvbntmaWxsOiM4YzhjOGM7ZmlsbDp2YXIoLS1jbHItbW9kYWwt''@;'; + put 'put ''Y2xvc2UtY29sb3IsICM4YzhjOGMpO2hlaWdodDoxLjJyZW07d2lkdGg6MS4ycmVtfS5tb2RhbC10aXRsZS13cmFwcGVye2ZsZXg6MX0ubW9kYWwtdGl0bGUtd3JhcHBlciAubW9kYWwtdGl0bGU+aDN7bWFyZ2luLXRvcDowfS5tb2RhbC1ib2R5LXdyYXBwZXJ7bWF4LWhlaWdodDo3MHZoO292''@;'; + put 'put ''ZXJmbG93LXk6YXV0bztvdmVyZmxvdy14OmhpZGRlbjtwYWRkaW5nOjAgLjE1cmVtfS5tb2RhbC1ib2R5LXdyYXBwZXI+OmZpcnN0LWNoaWxke21hcmdpbi10b3A6MH0ubW9kYWwtYm9keS13cmFwcGVyPjpsYXN0LWNoaWxke21hcmdpbi1ib3R0b206MH0ubW9kYWwtZm9vdGVye2Rpc3BsYXk6''@;'; + put 'put ''ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmQ7cGFkZGluZzoxLjJyZW0gMCAwfS5tb2RhbC1mb290ZXIgLmJ0bnttYXJnaW46MCAwIDAgLjZyZW19QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDo3NjhweCkgYW5kIChvcmllbnRhdGlvbjpsYW5kc2NhcGUpey5tb2RhbC1ib2R5LXdy''@;'; + put 'put ''YXBwZXJ7bWF4LWhlaWdodDo1NXZofX1AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOjU3NnB4KXsubW9kYWwtY29udGVudHtwYWRkaW5nOi42cmVtIDAgLjZyZW0gMS4ycmVtfS5tb2RhbC1oZWFkZXIsLm1vZGFsLWhlYWRlci0tYWNjZXNzaWJsZXtwYWRkaW5nOjAgMS4ycmVtIC42cmVt''@;'; + put 'put ''IDB9Lm1vZGFsLWJvZHktd3JhcHBlcnttYXgtaGVpZ2h0OjU1dmh9Lm1vZGFsLWZvb3RlcntwYWRkaW5nOi42cmVtIDEuMnJlbSAwIDB9fS5tb2RhbC1iYWNrZHJvcHtwb3NpdGlvbjpmaXhlZDt0b3A6MDtib3R0b206MDtyaWdodDowO2xlZnQ6MDtiYWNrZ3JvdW5kLWNvbG9yOiMzMzM7YmFj''@;'; + put 'put ''a2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItbW9kYWwtYmFja2Ryb3AtY29sb3IsICMzMzMzMzMpO29wYWNpdHk6Ljg1O29wYWNpdHk6dmFyKC0tY2xyLW1vZGFsLWJhY2tkcm9wLW9wYWNpdHksIC44NSk7ei1pbmRleDoxMDQwfS5tb2RhbCAubW9kYWwtbmF2e2Rpc3BsYXk6bm9uZX06cm9vdHst''@;'; + put 'put ''LWNsci1oZWFkZXItYmctY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtOTAwKTstLWNsci1oZWFkZXItZGl2aWRlci1vcGFjaXR5Oi4xNTstLWNsci1oZWFkZXItbmF2LW9wYWNpdHk6LjY1Oy0tY2xyLWhlYWRlci1uYXYtaG92ZXItb3BhY2l0eToxOy0tY2xyLWhlYWRlci0yLWJnLWNv''@;'; + put 'put ''bG9yOiM0ODVhNmE7LS1jbHItaGVhZGVyLTMtYmctY29sb3I6dmFyKC0tY2xyLWNvbG9yLXNlY29uZGFyeS1hY3Rpb24tMTAwMCk7LS1jbHItaGVhZGVyLTQtYmctY29sb3I6IzI0N2JhZTstLWNsci1oZWFkZXItNS1iZy1jb2xvcjp2YXIoLS1jbHItY29sb3ItYWN0aW9uLTgwMCk7LS1jbHIt''@;'; + put 'put ''aGVhZGVyLTYtYmctY29sb3I6dmFyKC0tY2xyLWNvbG9yLWFjdGlvbi0xMDAwKTstLWNsci1oZWFkZXItNy1iZy1jb2xvcjojMzA0MjUwOy0tY2xyLWhlYWRlci04LWJnLWNvbG9yOiMwZjE3MWM7LS1jbHItaGVhZGVyLWZvbnQtY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNTApOy0t''@;'; + put 'put ''Y2xyLWhlYWRlci10aXRsZS1jb2xvcjp2YXIoLS1jbHItaGVhZGVyLWZvbnQtY29sb3IpOy0tY2xyLWhlYWRlci10aXRsZS1mb250LXdlaWdodDp2YXIoLS1jbHItaDUtZm9udC13ZWlnaHQpOy0tY2xyLWhlYWRlci10aXRsZS1mb250LWZhbWlseTp2YXIoLS1jbHItaDUtZm9udC1mYW1pbHkp''@;'; + put 'put ''fWhlYWRlciwuaGVhZGVye2Rpc3BsYXk6ZmxleDtjb2xvcjojZmFmYWZhO2NvbG9yOnZhcigtLWNsci1oZWFkZXItZm9udC1jb2xvciwgI2ZhZmFmYSk7YmFja2dyb3VuZC1jb2xvcjojMzMzO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWhlYWRlci1iZy1jb2xvciwgIzMzMzMzMyk7aGVp''@;'; + put 'put ''Z2h0OjNyZW07d2hpdGUtc3BhY2U6bm93cmFwfWhlYWRlci5oZWFkZXItMSwuaGVhZGVyLmhlYWRlci0xe2JhY2tncm91bmQtY29sb3I6IzMzMztiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1oZWFkZXItYmctY29sb3IsICMzMzMzMzMpfWhlYWRlci5oZWFkZXItMiwuaGVhZGVyLmhlYWRl''@;'; + put 'put ''ci0ye2JhY2tncm91bmQtY29sb3I6IzQ4NWE2YTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1oZWFkZXItMi1iZy1jb2xvciwgIzQ4NWE2YSl9aGVhZGVyLmhlYWRlci0zLC5oZWFkZXIuaGVhZGVyLTN7YmFja2dyb3VuZC1jb2xvcjojMzIwMDQ3O2JhY2tncm91bmQtY29sb3I6dmFyKC0t''@;'; + put 'put ''Y2xyLWhlYWRlci0zLWJnLWNvbG9yLCAjMzIwMDQ3KX1oZWFkZXIuaGVhZGVyLTQsLmhlYWRlci5oZWFkZXItNHtiYWNrZ3JvdW5kLWNvbG9yOiMyNDdiYWU7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItaGVhZGVyLTQtYmctY29sb3IsICMyNDdiYWUpfWhlYWRlci5oZWFkZXItNSwuaGVh''@;'; + put 'put ''ZGVyLmhlYWRlci01e2JhY2tncm91bmQtY29sb3I6IzAwNTY3YTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1oZWFkZXItNS1iZy1jb2xvciwgIzAwNTY3YSl9aGVhZGVyLmhlYWRlci02LC5oZWFkZXIuaGVhZGVyLTZ7YmFja2dyb3VuZC1jb2xvcjojMDAzNjRkO2JhY2tncm91bmQtY29s''@;'; + put 'put ''b3I6dmFyKC0tY2xyLWhlYWRlci02LWJnLWNvbG9yLCAjMDAzNjRkKX1oZWFkZXIuaGVhZGVyLTcsLmhlYWRlci5oZWFkZXItN3tiYWNrZ3JvdW5kLWNvbG9yOiMzMDQyNTA7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItaGVhZGVyLTctYmctY29sb3IsICMzMDQyNTApfWhlYWRlci5oZWFk''@;'; + put 'put ''ZXItOCwuaGVhZGVyLmhlYWRlci04e2JhY2tncm91bmQtY29sb3I6IzBmMTcxYztiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1oZWFkZXItOC1iZy1jb2xvciwgIzBmMTcxYyl9aGVhZGVyIC5icmFuZGluZywuaGVhZGVyIC5icmFuZGluZ3tkaXNwbGF5OmZsZXg7ZmxleDowIDAgYXV0bztt''@;'; + put 'put ''aW4td2lkdGg6MTAuMnJlbTtwYWRkaW5nOjAgMS4ycmVtO2hlaWdodDozcmVtfWhlYWRlciAuYnJhbmRpbmc+YSxoZWFkZXIgLmJyYW5kaW5nPi5uYXYtbGluaywuaGVhZGVyIC5icmFuZGluZz5hLC5oZWFkZXIgLmJyYW5kaW5nPi5uYXYtbGlua3tkaXNwbGF5OmlubGluZS1mbGV4O2FsaWdu''@;'; + put 'put ''LWl0ZW1zOmNlbnRlcjtoZWlnaHQ6M3JlbX1oZWFkZXIgLmJyYW5kaW5nPmE6aG92ZXIsaGVhZGVyIC5icmFuZGluZz5hOmFjdGl2ZSxoZWFkZXIgLmJyYW5kaW5nPi5uYXYtbGluazpob3ZlcixoZWFkZXIgLmJyYW5kaW5nPi5uYXYtbGluazphY3RpdmUsLmhlYWRlciAuYnJhbmRpbmc+YTpo''@;'; + put 'put ''b3ZlciwuaGVhZGVyIC5icmFuZGluZz5hOmFjdGl2ZSwuaGVhZGVyIC5icmFuZGluZz4ubmF2LWxpbms6aG92ZXIsLmhlYWRlciAuYnJhbmRpbmc+Lm5hdi1saW5rOmFjdGl2ZXt0ZXh0LWRlY29yYXRpb246bm9uZX1oZWFkZXIgLmJyYW5kaW5nPmE6Zm9jdXMsaGVhZGVyIC5icmFuZGluZz4u''@;'; + put 'put ''bmF2LWxpbms6Zm9jdXMsLmhlYWRlciAuYnJhbmRpbmc+YTpmb2N1cywuaGVhZGVyIC5icmFuZGluZz4ubmF2LWxpbms6Zm9jdXN7b3V0bGluZS1vZmZzZXQ6LS4yNXJlbX1oZWFkZXIgLmJyYW5kaW5nIC5jbHItaWNvbixoZWFkZXIgLmJyYW5kaW5nIGNkcy1pY29uLGhlYWRlciAuYnJhbmRp''@;'; + put 'put ''bmcgY2xyLWljb24sLmhlYWRlciAuYnJhbmRpbmcgLmNsci1pY29uLC5oZWFkZXIgLmJyYW5kaW5nIGNkcy1pY29uLC5oZWFkZXIgLmJyYW5kaW5nIGNsci1pY29ue2ZsZXgtZ3JvdzowO2ZsZXgtc2hyaW5rOjA7aGVpZ2h0OjEuOHJlbTt3aWR0aDoxLjhyZW07bWFyZ2luLXJpZ2h0Oi40NXJl''@;'; + put 'put ''bX1oZWFkZXIgLmJyYW5kaW5nIC50aXRsZSwuaGVhZGVyIC5icmFuZGluZyAudGl0bGV7Y29sb3I6I2ZhZmFmYTtjb2xvcjp2YXIoLS1jbHItaGVhZGVyLXRpdGxlLWNvbG9yLCAjZmFmYWZhKTtmb250LXdlaWdodDo0MDA7Zm9udC13ZWlnaHQ6dmFyKC0tY2xyLWhlYWRlci10aXRsZS1mb250''@;'; + put 'put ''LXdlaWdodCwgNDAwKTtmb250LWZhbWlseTpNZXRyb3BvbGlzLEF2ZW5pciBOZXh0LEhlbHZldGljYSBOZXVlLEFyaWFsLHNhbnMtc2VyaWY7Zm9udC1mYW1pbHk6dmFyKC0tY2xyLWhlYWRlci10aXRsZS1mb250LWZhbWlseSwgTWV0cm9wb2xpcywgIkF2ZW5pciBOZXh0IiwgIkhlbHZldGlj''@;'; + put 'put ''YSBOZXVlIiwgQXJpYWwsIHNhbnMtc2VyaWYpO2ZvbnQtc2l6ZTouOHJlbTtsZXR0ZXItc3BhY2luZzouMDFlbTtsaW5lLWhlaWdodDozcmVtO3RleHQtZGVjb3JhdGlvbjpub25lfWhlYWRlciAuc2V0dGluZ3MsaGVhZGVyIC5oZWFkZXItbmF2LGhlYWRlciAuaGVhZGVyLWFjdGlvbnMsLmhl''@;'; + put 'put ''YWRlciAuc2V0dGluZ3MsLmhlYWRlciAuaGVhZGVyLW5hdiwuaGVhZGVyIC5oZWFkZXItYWN0aW9uc3toZWlnaHQ6M3JlbX1oZWFkZXIgLnNldHRpbmdzIC5uYXYtdGV4dCxoZWFkZXIgLmhlYWRlci1uYXYgLm5hdi10ZXh0LGhlYWRlciAuaGVhZGVyLWFjdGlvbnMgLm5hdi10ZXh0LC5oZWFk''@;'; + put 'put ''ZXIgLnNldHRpbmdzIC5uYXYtdGV4dCwuaGVhZGVyIC5oZWFkZXItbmF2IC5uYXYtdGV4dCwuaGVhZGVyIC5oZWFkZXItYWN0aW9ucyAubmF2LXRleHR7Zm9udC13ZWlnaHQ6NTAwfWhlYWRlciAuc2V0dGluZ3MgY2xyLWljb24saGVhZGVyIC5oZWFkZXItbmF2IGNsci1pY29uLGhlYWRlciAu''@;'; + put 'put ''aGVhZGVyLWFjdGlvbnMgY2xyLWljb24sLmhlYWRlciAuc2V0dGluZ3MgY2xyLWljb24sLmhlYWRlciAuaGVhZGVyLW5hdiBjbHItaWNvbiwuaGVhZGVyIC5oZWFkZXItYWN0aW9ucyBjbHItaWNvbntjb2xvcjojZmFmYWZhO2NvbG9yOnZhcigtLWNsci1oZWFkZXItZm9udC1jb2xvciwgI2Zh''@;'; + put 'put ''ZmFmYSl9aGVhZGVyIC5zZXR0aW5ncyAubmF2LWljb24saGVhZGVyIC5oZWFkZXItbmF2IC5uYXYtaWNvbixoZWFkZXIgLmhlYWRlci1hY3Rpb25zIC5uYXYtaWNvbiwuaGVhZGVyIC5zZXR0aW5ncyAubmF2LWljb24sLmhlYWRlciAuaGVhZGVyLW5hdiAubmF2LWljb24sLmhlYWRlciAuaGVh''@;'; + put 'put ''ZGVyLWFjdGlvbnMgLm5hdi1pY29ue2hlaWdodDozcmVtO3dpZHRoOjNyZW19aGVhZGVyIC5zZXR0aW5ncyAubmF2LWxpbmssaGVhZGVyIC5oZWFkZXItbmF2IC5uYXYtbGluayxoZWFkZXIgLmhlYWRlci1hY3Rpb25zIC5uYXYtbGluaywuaGVhZGVyIC5zZXR0aW5ncyAubmF2LWxpbmssLmhl''@;'; + put 'put ''YWRlciAuaGVhZGVyLW5hdiAubmF2LWxpbmssLmhlYWRlciAuaGVhZGVyLWFjdGlvbnMgLm5hdi1saW5re3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6aW5saW5lLWJsb2NrO3RleHQtYWxpZ246Y2VudGVyO3BhZGRpbmc6LjlyZW0gMS4ycmVtO2NvbG9yOiNmYWZhZmE7Y29sb3I6dmFyKC0t''@;'; + put 'put ''Y2xyLWhlYWRlci1mb250LWNvbG9yLCAjZmFmYWZhKTtvcGFjaXR5Oi42NTtvcGFjaXR5OnZhcigtLWNsci1oZWFkZXItbmF2LW9wYWNpdHksIC42NSl9aGVhZGVyIC5zZXR0aW5ncyAubmF2LWxpbms6aG92ZXIsaGVhZGVyIC5zZXR0aW5ncyAubmF2LWxpbms6YWN0aXZlLGhlYWRlciAuaGVh''@;'; + put 'put ''ZGVyLW5hdiAubmF2LWxpbms6aG92ZXIsaGVhZGVyIC5oZWFkZXItbmF2IC5uYXYtbGluazphY3RpdmUsaGVhZGVyIC5oZWFkZXItYWN0aW9ucyAubmF2LWxpbms6aG92ZXIsaGVhZGVyIC5oZWFkZXItYWN0aW9ucyAubmF2LWxpbms6YWN0aXZlLC5oZWFkZXIgLnNldHRpbmdzIC5uYXYtbGlu''@;'; + put 'put ''azpob3ZlciwuaGVhZGVyIC5zZXR0aW5ncyAubmF2LWxpbms6YWN0aXZlLC5oZWFkZXIgLmhlYWRlci1uYXYgLm5hdi1saW5rOmhvdmVyLC5oZWFkZXIgLmhlYWRlci1uYXYgLm5hdi1saW5rOmFjdGl2ZSwuaGVhZGVyIC5oZWFkZXItYWN0aW9ucyAubmF2LWxpbms6aG92ZXIsLmhlYWRlciAu''@;'; + put 'put ''aGVhZGVyLWFjdGlvbnMgLm5hdi1saW5rOmFjdGl2ZXt0ZXh0LWRlY29yYXRpb246bm9uZX1oZWFkZXIgLnNldHRpbmdzIC5uYXYtbGluazplbmFibGVkOmhvdmVyLGhlYWRlciAuaGVhZGVyLW5hdiAubmF2LWxpbms6ZW5hYmxlZDpob3ZlcixoZWFkZXIgLmhlYWRlci1hY3Rpb25zIC5uYXYt''@;'; + put 'put ''bGluazplbmFibGVkOmhvdmVyLC5oZWFkZXIgLnNldHRpbmdzIC5uYXYtbGluazplbmFibGVkOmhvdmVyLC5oZWFkZXIgLmhlYWRlci1uYXYgLm5hdi1saW5rOmVuYWJsZWQ6aG92ZXIsLmhlYWRlciAuaGVhZGVyLWFjdGlvbnMgLm5hdi1saW5rOmVuYWJsZWQ6aG92ZXJ7b3BhY2l0eToxO29w''@;'; + put 'put ''YWNpdHk6dmFyKC0tY2xyLWhlYWRlci1uYXYtaG92ZXItb3BhY2l0eSwgMSl9aGVhZGVyIC5zZXR0aW5ncyAubmF2LWxpbms6ZGlzYWJsZWQsaGVhZGVyIC5oZWFkZXItbmF2IC5uYXYtbGluazpkaXNhYmxlZCxoZWFkZXIgLmhlYWRlci1hY3Rpb25zIC5uYXYtbGluazpkaXNhYmxlZCwuaGVh''@;'; + put 'put ''ZGVyIC5zZXR0aW5ncyAubmF2LWxpbms6ZGlzYWJsZWQsLmhlYWRlciAuaGVhZGVyLW5hdiAubmF2LWxpbms6ZGlzYWJsZWQsLmhlYWRlciAuaGVhZGVyLWFjdGlvbnMgLm5hdi1saW5rOmRpc2FibGVke2N1cnNvcjpub3QtYWxsb3dlZH1oZWFkZXIgLnNldHRpbmdzIC5uYXYtbGluayAuZmEs''@;'; + put 'put ''aGVhZGVyIC5zZXR0aW5ncyAubmF2LWxpbmsgLm5hdi1pY29uLGhlYWRlciAuaGVhZGVyLW5hdiAubmF2LWxpbmsgLmZhLGhlYWRlciAuaGVhZGVyLW5hdiAubmF2LWxpbmsgLm5hdi1pY29uLGhlYWRlciAuaGVhZGVyLWFjdGlvbnMgLm5hdi1saW5rIC5mYSxoZWFkZXIgLmhlYWRlci1hY3Rp''@;'; + put 'put ''b25zIC5uYXYtbGluayAubmF2LWljb24sLmhlYWRlciAuc2V0dGluZ3MgLm5hdi1saW5rIC5mYSwuaGVhZGVyIC5zZXR0aW5ncyAubmF2LWxpbmsgLm5hdi1pY29uLC5oZWFkZXIgLmhlYWRlci1uYXYgLm5hdi1saW5rIC5mYSwuaGVhZGVyIC5oZWFkZXItbmF2IC5uYXYtbGluayAubmF2LWlj''@;'; + put 'put ''b24sLmhlYWRlciAuaGVhZGVyLWFjdGlvbnMgLm5hdi1saW5rIC5mYSwuaGVhZGVyIC5oZWFkZXItYWN0aW9ucyAubmF2LWxpbmsgLm5hdi1pY29ue2ZvbnQtc2l6ZToxLjFyZW19aGVhZGVyIC5zZXR0aW5ncyAubmF2LWxpbmsgY2RzLWljb24saGVhZGVyIC5zZXR0aW5ncyAubmF2LWxpbmsg''@;'; + put 'put ''Y2xyLWljb24saGVhZGVyIC5oZWFkZXItbmF2IC5uYXYtbGluayBjZHMtaWNvbixoZWFkZXIgLmhlYWRlci1uYXYgLm5hdi1saW5rIGNsci1pY29uLGhlYWRlciAuaGVhZGVyLWFjdGlvbnMgLm5hdi1saW5rIGNkcy1pY29uLGhlYWRlciAuaGVhZGVyLWFjdGlvbnMgLm5hdi1saW5rIGNsci1p''@;'; + put 'put ''Y29uLC5oZWFkZXIgLnNldHRpbmdzIC5uYXYtbGluayBjZHMtaWNvbiwuaGVhZGVyIC5zZXR0aW5ncyAubmF2LWxpbmsgY2xyLWljb24sLmhlYWRlciAuaGVhZGVyLW5hdiAubmF2LWxpbmsgY2RzLWljb24sLmhlYWRlciAuaGVhZGVyLW5hdiAubmF2LWxpbmsgY2xyLWljb24sLmhlYWRlciAu''@;'; + put 'put ''aGVhZGVyLWFjdGlvbnMgLm5hdi1saW5rIGNkcy1pY29uLC5oZWFkZXIgLmhlYWRlci1hY3Rpb25zIC5uYXYtbGluayBjbHItaWNvbntwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NTAlO2xlZnQ6NTAlO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwtNTAlKTtoZWlnaHQ6MS4ycmVtO3dpZHRoOjEu''@;'; + put 'put ''MnJlbX1oZWFkZXIgLnNldHRpbmdzIC5uYXYtbGluay5uYXYtaWNvbi10ZXh0IGNkcy1pY29uLGhlYWRlciAuc2V0dGluZ3MgLm5hdi1saW5rLm5hdi1pY29uLXRleHQgY2xyLWljb24saGVhZGVyIC5oZWFkZXItbmF2IC5uYXYtbGluay5uYXYtaWNvbi10ZXh0IGNkcy1pY29uLGhlYWRlciAu''@;'; + put 'put ''aGVhZGVyLW5hdiAubmF2LWxpbmsubmF2LWljb24tdGV4dCBjbHItaWNvbixoZWFkZXIgLmhlYWRlci1hY3Rpb25zIC5uYXYtbGluay5uYXYtaWNvbi10ZXh0IGNkcy1pY29uLGhlYWRlciAuaGVhZGVyLWFjdGlvbnMgLm5hdi1saW5rLm5hdi1pY29uLXRleHQgY2xyLWljb24sLmhlYWRlciAu''@;'; + put 'put ''c2V0dGluZ3MgLm5hdi1saW5rLm5hdi1pY29uLXRleHQgY2RzLWljb24sLmhlYWRlciAuc2V0dGluZ3MgLm5hdi1saW5rLm5hdi1pY29uLXRleHQgY2xyLWljb24sLmhlYWRlciAuaGVhZGVyLW5hdiAubmF2LWxpbmsubmF2LWljb24tdGV4dCBjZHMtaWNvbiwuaGVhZGVyIC5oZWFkZXItbmF2''@;'; + put 'put ''IC5uYXYtbGluay5uYXYtaWNvbi10ZXh0IGNsci1pY29uLC5oZWFkZXIgLmhlYWRlci1hY3Rpb25zIC5uYXYtbGluay5uYXYtaWNvbi10ZXh0IGNkcy1pY29uLC5oZWFkZXIgLmhlYWRlci1hY3Rpb25zIC5uYXYtbGluay5uYXYtaWNvbi10ZXh0IGNsci1pY29ue3Bvc2l0aW9uOnJlbGF0aXZl''@;'; + put 'put ''O3RvcDphdXRvO2xlZnQ6YXV0bzt0cmFuc2Zvcm06bm9uZTttYXJnaW4tbGVmdDoxLjJyZW19aGVhZGVyIC5zZXR0aW5ncyAubmF2LWxpbmsubmF2LWljb24tdGV4dCAubmF2LXRleHQsaGVhZGVyIC5oZWFkZXItbmF2IC5uYXYtbGluay5uYXYtaWNvbi10ZXh0IC5uYXYtdGV4dCxoZWFkZXIg''@;'; + put 'put ''LmhlYWRlci1hY3Rpb25zIC5uYXYtbGluay5uYXYtaWNvbi10ZXh0IC5uYXYtdGV4dCwuaGVhZGVyIC5zZXR0aW5ncyAubmF2LWxpbmsubmF2LWljb24tdGV4dCAubmF2LXRleHQsLmhlYWRlciAuaGVhZGVyLW5hdiAubmF2LWxpbmsubmF2LWljb24tdGV4dCAubmF2LXRleHQsLmhlYWRlciAu''@;'; + put 'put ''aGVhZGVyLWFjdGlvbnMgLm5hdi1saW5rLm5hdi1pY29uLXRleHQgLm5hdi10ZXh0e21hcmdpbi1sZWZ0OjA7cGFkZGluZy1sZWZ0Oi4zcmVtfWhlYWRlciAuc2V0dGluZ3MgLm5hdi1saW5rIC5uYXYtaWNvbisubmF2LXRleHQsaGVhZGVyIC5oZWFkZXItbmF2IC5uYXYtbGluayAubmF2LWlj''@;'; + put 'put ''b24rLm5hdi10ZXh0LGhlYWRlciAuaGVhZGVyLWFjdGlvbnMgLm5hdi1saW5rIC5uYXYtaWNvbisubmF2LXRleHQsLmhlYWRlciAuc2V0dGluZ3MgLm5hdi1saW5rIC5uYXYtaWNvbisubmF2LXRleHQsLmhlYWRlciAuaGVhZGVyLW5hdiAubmF2LWxpbmsgLm5hdi1pY29uKy5uYXYtdGV4dCwu''@;'; + put 'put ''aGVhZGVyIC5oZWFkZXItYWN0aW9ucyAubmF2LWxpbmsgLm5hdi1pY29uKy5uYXYtdGV4dHtkaXNwbGF5Om5vbmV9aGVhZGVyIC5zZXR0aW5ncyAubmF2LWxpbmsuYWN0aXZlLGhlYWRlciAuaGVhZGVyLW5hdiAubmF2LWxpbmsuYWN0aXZlLGhlYWRlciAuaGVhZGVyLWFjdGlvbnMgLm5hdi1s''@;'; + put 'put ''aW5rLmFjdGl2ZSwuaGVhZGVyIC5zZXR0aW5ncyAubmF2LWxpbmsuYWN0aXZlLC5oZWFkZXIgLmhlYWRlci1uYXYgLm5hdi1saW5rLmFjdGl2ZSwuaGVhZGVyIC5oZWFkZXItYWN0aW9ucyAubmF2LWxpbmsuYWN0aXZle2JhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwuMTUpO29wYWNpdHk6''@;'; + put 'put ''MX1oZWFkZXIgLnNldHRpbmdzIC5uYXYtbGluazpmb2N1cyxoZWFkZXIgLmhlYWRlci1uYXYgLm5hdi1saW5rOmZvY3VzLGhlYWRlciAuaGVhZGVyLWFjdGlvbnMgLm5hdi1saW5rOmZvY3VzLC5oZWFkZXIgLnNldHRpbmdzIC5uYXYtbGluazpmb2N1cywuaGVhZGVyIC5oZWFkZXItbmF2IC5u''@;'; + put 'put ''YXYtbGluazpmb2N1cywuaGVhZGVyIC5oZWFkZXItYWN0aW9ucyAubmF2LWxpbms6Zm9jdXN7b3V0bGluZS1vZmZzZXQ6LS4yNXJlbX1oZWFkZXIgLmhlYWRlci1uYXYsLmhlYWRlciAuaGVhZGVyLW5hdntkaXNwbGF5OmZsZXg7ZmxleDowIDAgYXV0b31oZWFkZXIgLmhlYWRlci1uYXY6bGFz''@;'; + put 'put ''dC1jaGlsZD4ubmF2LWxpbms6bGFzdC1jaGlsZDphZnRlciwuaGVhZGVyIC5oZWFkZXItbmF2Omxhc3QtY2hpbGQ+Lm5hdi1saW5rOmxhc3QtY2hpbGQ6YWZ0ZXJ7Y29udGVudDpub25lfWhlYWRlciAuaGVhZGVyLW5hdiAubmF2LWxpbms6Zmlyc3Qtb2YtdHlwZSxoZWFkZXIgLmhlYWRlci1u''@;'; + put 'put ''YXYgLm5hdi1saW5rOmxhc3Qtb2YtdHlwZSwuaGVhZGVyIC5oZWFkZXItbmF2IC5uYXYtbGluazpmaXJzdC1vZi10eXBlLC5oZWFkZXIgLmhlYWRlci1uYXYgLm5hdi1saW5rOmxhc3Qtb2YtdHlwZXtwb3NpdGlvbjpyZWxhdGl2ZX1oZWFkZXIgLmhlYWRlci1uYXYgLm5hdi1saW5rOmZpcnN0''@;'; + put 'put ''LW9mLXR5cGU6YmVmb3JlLGhlYWRlciAuaGVhZGVyLW5hdiAubmF2LWxpbms6bGFzdC1vZi10eXBlOmFmdGVyLC5oZWFkZXIgLmhlYWRlci1uYXYgLm5hdi1saW5rOmZpcnN0LW9mLXR5cGU6YmVmb3JlLC5oZWFkZXIgLmhlYWRlci1uYXYgLm5hdi1saW5rOmxhc3Qtb2YtdHlwZTphZnRlcntk''@;'; + put 'put ''aXNwbGF5OmlubGluZS1ibG9jaztwb3NpdGlvbjphYnNvbHV0ZTtjb250ZW50OiIiO2JhY2tncm91bmQ6I2ZhZmFmYTtiYWNrZ3JvdW5kOnZhcigtLWNsci1oZWFkZXItZm9udC1jb2xvciwgI2ZhZmFmYSk7b3BhY2l0eTp2YXIoLS1jbHItaGVhZGVyLWRpdmlkZXItb3BhY2l0eSwgLjE1KTtv''@;'; + put 'put ''cGFjaXR5Oi4xNTtoZWlnaHQ6MnJlbTt3aWR0aDouMDVyZW07d2lkdGg6dmFyKC0tY2xyLWdsb2JhbC1ib3JkZXJ3aWR0aCwgLjA1cmVtKTt0b3A6LjVyZW07bGVmdDowO2xlZnQ6YXV0b31oZWFkZXIgLmhlYWRlci1uYXYgLm5hdi1saW5rOmZpcnN0LW9mLXR5cGU6YmVmb3JlLC5oZWFkZXIg''@;'; + put 'put ''LmhlYWRlci1uYXYgLm5hdi1saW5rOmZpcnN0LW9mLXR5cGU6YmVmb3Jle2xlZnQ6MH1oZWFkZXIgLmhlYWRlci1uYXYgLm5hdi1saW5rOmxhc3Qtb2YtdHlwZTphZnRlciwuaGVhZGVyIC5oZWFkZXItbmF2IC5uYXYtbGluazpsYXN0LW9mLXR5cGU6YWZ0ZXJ7cmlnaHQ6MH1oZWFkZXIgLmhl''@;'; + put 'put ''YWRlci1uYXYgLm5hdi1saW5rLmFjdGl2ZTpmaXJzdC1vZi10eXBlOmJlZm9yZSxoZWFkZXIgLmhlYWRlci1uYXYgLm5hdi1saW5rLmFjdGl2ZTpsYXN0LW9mLXR5cGU6YWZ0ZXIsLmhlYWRlciAuaGVhZGVyLW5hdiAubmF2LWxpbmsuYWN0aXZlOmZpcnN0LW9mLXR5cGU6YmVmb3JlLC5oZWFk''@;'; + put 'put ''ZXIgLmhlYWRlci1uYXYgLm5hdi1saW5rLmFjdGl2ZTpsYXN0LW9mLXR5cGU6YWZ0ZXJ7Y29udGVudDpub25lfWhlYWRlciAuc2V0dGluZ3MsaGVhZGVyIC5oZWFkZXItYWN0aW9ucywuaGVhZGVyIC5zZXR0aW5ncywuaGVhZGVyIC5oZWFkZXItYWN0aW9uc3tmbGV4OjEgMCBhdXRvO2Rpc3Bs''@;'; + put 'put ''YXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmR9aGVhZGVyIC5zZXR0aW5ncz4uZHJvcGRvd24+LmRyb3Bkb3duLXRvZ2dsZSxoZWFkZXIgLmhlYWRlci1hY3Rpb25zPi5kcm9wZG93bj4uZHJvcGRvd24tdG9nZ2xlLC5oZWFkZXIgLnNldHRpbmdzPi5kcm9wZG93bj4uZHJvcGRvd24t''@;'; + put 'put ''dG9nZ2xlLC5oZWFkZXIgLmhlYWRlci1hY3Rpb25zPi5kcm9wZG93bj4uZHJvcGRvd24tdG9nZ2xle3Bvc2l0aW9uOnJlbGF0aXZlO2xpbmUtaGVpZ2h0OjNyZW07aGVpZ2h0OjNyZW07b3V0bGluZS1vZmZzZXQ6LS4yNXJlbTtjb2xvcjojZmFmYWZhO2NvbG9yOnZhcigtLWNsci1oZWFkZXIt''@;'; + put 'put ''Zm9udC1jb2xvciwgI2ZhZmFmYSk7b3BhY2l0eTouNjU7b3BhY2l0eTp2YXIoLS1jbHItaGVhZGVyLW5hdi1vcGFjaXR5LCAuNjUpfWhlYWRlciAuc2V0dGluZ3M+LmRyb3Bkb3duPi5kcm9wZG93bi10b2dnbGU6ZW5hYmxlZDpob3ZlcixoZWFkZXIgLmhlYWRlci1hY3Rpb25zPi5kcm9wZG93''@;'; + put 'put ''bj4uZHJvcGRvd24tdG9nZ2xlOmVuYWJsZWQ6aG92ZXIsLmhlYWRlciAuc2V0dGluZ3M+LmRyb3Bkb3duPi5kcm9wZG93bi10b2dnbGU6ZW5hYmxlZDpob3ZlciwuaGVhZGVyIC5oZWFkZXItYWN0aW9ucz4uZHJvcGRvd24+LmRyb3Bkb3duLXRvZ2dsZTplbmFibGVkOmhvdmVye29wYWNpdHk6''@;'; + put 'put ''MTtvcGFjaXR5OnZhcigtLWNsci1oZWFkZXItbmF2LWhvdmVyLW9wYWNpdHksIDEpfWhlYWRlciAuc2V0dGluZ3M+LmRyb3Bkb3duPi5kcm9wZG93bi10b2dnbGU6ZGlzYWJsZWQsaGVhZGVyIC5oZWFkZXItYWN0aW9ucz4uZHJvcGRvd24+LmRyb3Bkb3duLXRvZ2dsZTpkaXNhYmxlZCwuaGVh''@;'; + put 'put ''ZGVyIC5zZXR0aW5ncz4uZHJvcGRvd24+LmRyb3Bkb3duLXRvZ2dsZTpkaXNhYmxlZCwuaGVhZGVyIC5oZWFkZXItYWN0aW9ucz4uZHJvcGRvd24+LmRyb3Bkb3duLXRvZ2dsZTpkaXNhYmxlZHtjdXJzb3I6bm90LWFsbG93ZWR9aGVhZGVyIC5zZXR0aW5ncz4uZHJvcGRvd24gLmRyb3Bkb3du''@;'; + put 'put ''LXRvZ2dsZS5uYXYtaWNvbiBjZHMtaWNvbjpub3QoW3NoYXBlXj1hbmdsZV0pLGhlYWRlciAuc2V0dGluZ3M+LmRyb3Bkb3duIC5kcm9wZG93bi10b2dnbGUubmF2LWljb24gY2xyLWljb246bm90KFtzaGFwZV49YW5nbGVdKSxoZWFkZXIgLmhlYWRlci1hY3Rpb25zPi5kcm9wZG93biAuZHJv''@;'; + put 'put ''cGRvd24tdG9nZ2xlLm5hdi1pY29uIGNkcy1pY29uOm5vdChbc2hhcGVePWFuZ2xlXSksaGVhZGVyIC5oZWFkZXItYWN0aW9ucz4uZHJvcGRvd24gLmRyb3Bkb3duLXRvZ2dsZS5uYXYtaWNvbiBjbHItaWNvbjpub3QoW3NoYXBlXj1hbmdsZV0pLC5oZWFkZXIgLnNldHRpbmdzPi5kcm9wZG93''@;'; + put 'put ''biAuZHJvcGRvd24tdG9nZ2xlLm5hdi1pY29uIGNkcy1pY29uOm5vdChbc2hhcGVePWFuZ2xlXSksLmhlYWRlciAuc2V0dGluZ3M+LmRyb3Bkb3duIC5kcm9wZG93bi10b2dnbGUubmF2LWljb24gY2xyLWljb246bm90KFtzaGFwZV49YW5nbGVdKSwuaGVhZGVyIC5oZWFkZXItYWN0aW9ucz4u''@;'; + put 'put ''ZHJvcGRvd24gLmRyb3Bkb3duLXRvZ2dsZS5uYXYtaWNvbiBjZHMtaWNvbjpub3QoW3NoYXBlXj1hbmdsZV0pLC5oZWFkZXIgLmhlYWRlci1hY3Rpb25zPi5kcm9wZG93biAuZHJvcGRvd24tdG9nZ2xlLm5hdi1pY29uIGNsci1pY29uOm5vdChbc2hhcGVePWFuZ2xlXSl7cG9zaXRpb246YWJz''@;'; + put 'put ''b2x1dGU7dG9wOjUwJTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKTtoZWlnaHQ6MS4xcmVtO3dpZHRoOjEuMXJlbTtyaWdodDoxLjJyZW19aGVhZGVyIC5zZXR0aW5ncz4uZHJvcGRvd24gLmRyb3Bkb3duLXRvZ2dsZS5uYXYtaWNvbiBjZHMtaWNvbltzaGFwZV49YW5nbGVdLGhlYWRlciAu''@;'; + put 'put ''c2V0dGluZ3M+LmRyb3Bkb3duIC5kcm9wZG93bi10b2dnbGUubmF2LWljb24gY2xyLWljb25bc2hhcGVePWFuZ2xlXSxoZWFkZXIgLmhlYWRlci1hY3Rpb25zPi5kcm9wZG93biAuZHJvcGRvd24tdG9nZ2xlLm5hdi1pY29uIGNkcy1pY29uW3NoYXBlXj1hbmdsZV0saGVhZGVyIC5oZWFkZXIt''@;'; + put 'put ''YWN0aW9ucz4uZHJvcGRvd24gLmRyb3Bkb3duLXRvZ2dsZS5uYXYtaWNvbiBjbHItaWNvbltzaGFwZV49YW5nbGVdLC5oZWFkZXIgLnNldHRpbmdzPi5kcm9wZG93biAuZHJvcGRvd24tdG9nZ2xlLm5hdi1pY29uIGNkcy1pY29uW3NoYXBlXj1hbmdsZV0sLmhlYWRlciAuc2V0dGluZ3M+LmRy''@;'; + put 'put ''b3Bkb3duIC5kcm9wZG93bi10b2dnbGUubmF2LWljb24gY2xyLWljb25bc2hhcGVePWFuZ2xlXSwuaGVhZGVyIC5oZWFkZXItYWN0aW9ucz4uZHJvcGRvd24gLmRyb3Bkb3duLXRvZ2dsZS5uYXYtaWNvbiBjZHMtaWNvbltzaGFwZV49YW5nbGVdLC5oZWFkZXIgLmhlYWRlci1hY3Rpb25zPi5k''@;'; + put 'put ''cm9wZG93biAuZHJvcGRvd24tdG9nZ2xlLm5hdi1pY29uIGNsci1pY29uW3NoYXBlXj1hbmdsZV17cmlnaHQ6LjZyZW07dG9wOjQ0JX1oZWFkZXIgLnNldHRpbmdzPi5kcm9wZG93biAuZHJvcGRvd24tdG9nZ2xlLm5hdi10ZXh0LGhlYWRlciAuaGVhZGVyLWFjdGlvbnM+LmRyb3Bkb3duIC5k''@;'; + put 'put ''cm9wZG93bi10b2dnbGUubmF2LXRleHQsLmhlYWRlciAuc2V0dGluZ3M+LmRyb3Bkb3duIC5kcm9wZG93bi10b2dnbGUubmF2LXRleHQsLmhlYWRlciAuaGVhZGVyLWFjdGlvbnM+LmRyb3Bkb3duIC5kcm9wZG93bi10b2dnbGUubmF2LXRleHR7cGFkZGluZzowIDEuOHJlbSAwIDEuMnJlbX1o''@;'; + put 'put ''ZWFkZXIgLnNldHRpbmdzPi5kcm9wZG93biAuZHJvcGRvd24tdG9nZ2xlLm5hdi10ZXh0IGNkcy1pY29uW3NoYXBlXj1hbmdsZV0saGVhZGVyIC5zZXR0aW5ncz4uZHJvcGRvd24gLmRyb3Bkb3duLXRvZ2dsZS5uYXYtdGV4dCBjbHItaWNvbltzaGFwZV49YW5nbGVdLGhlYWRlciAuaGVhZGVy''@;'; + put 'put ''LWFjdGlvbnM+LmRyb3Bkb3duIC5kcm9wZG93bi10b2dnbGUubmF2LXRleHQgY2RzLWljb25bc2hhcGVePWFuZ2xlXSxoZWFkZXIgLmhlYWRlci1hY3Rpb25zPi5kcm9wZG93biAuZHJvcGRvd24tdG9nZ2xlLm5hdi10ZXh0IGNsci1pY29uW3NoYXBlXj1hbmdsZV0sLmhlYWRlciAuc2V0dGlu''@;'; + put 'put ''Z3M+LmRyb3Bkb3duIC5kcm9wZG93bi10b2dnbGUubmF2LXRleHQgY2RzLWljb25bc2hhcGVePWFuZ2xlXSwuaGVhZGVyIC5zZXR0aW5ncz4uZHJvcGRvd24gLmRyb3Bkb3duLXRvZ2dsZS5uYXYtdGV4dCBjbHItaWNvbltzaGFwZV49YW5nbGVdLC5oZWFkZXIgLmhlYWRlci1hY3Rpb25zPi5k''@;'; + put 'put ''cm9wZG93biAuZHJvcGRvd24tdG9nZ2xlLm5hdi10ZXh0IGNkcy1pY29uW3NoYXBlXj1hbmdsZV0sLmhlYWRlciAuaGVhZGVyLWFjdGlvbnM+LmRyb3Bkb3duIC5kcm9wZG93bi10b2dnbGUubmF2LXRleHQgY2xyLWljb25bc2hhcGVePWFuZ2xlXXtyaWdodDoxLjJyZW19aGVhZGVyIC5zZXR0''@;'; + put 'put ''aW5ncz4uZHJvcGRvd24gLmRyb3Bkb3duLXRvZ2dsZS5uYXYtaWNvbixoZWFkZXIgLmhlYWRlci1hY3Rpb25zPi5kcm9wZG93biAuZHJvcGRvd24tdG9nZ2xlLm5hdi1pY29uLC5oZWFkZXIgLnNldHRpbmdzPi5kcm9wZG93biAuZHJvcGRvd24tdG9nZ2xlLm5hdi1pY29uLC5oZWFkZXIgLmhl''@;'; + put 'put ''YWRlci1hY3Rpb25zPi5kcm9wZG93biAuZHJvcGRvd24tdG9nZ2xlLm5hdi1pY29ue3dpZHRoOjNyZW07cGFkZGluZy1yaWdodDowfWhlYWRlciAuc2V0dGluZ3M+LmRyb3Bkb3duLmJvdHRvbS1yaWdodD4uZHJvcGRvd24tbWVudSxoZWFkZXIgLnNldHRpbmdzPi5kcm9wZG93bi5ib3R0b20t''@;'; + put 'put ''bGVmdD4uZHJvcGRvd24tbWVudSxoZWFkZXIgLmhlYWRlci1hY3Rpb25zPi5kcm9wZG93bi5ib3R0b20tcmlnaHQ+LmRyb3Bkb3duLW1lbnUsaGVhZGVyIC5oZWFkZXItYWN0aW9ucz4uZHJvcGRvd24uYm90dG9tLWxlZnQ+LmRyb3Bkb3duLW1lbnUsLmhlYWRlciAuc2V0dGluZ3M+LmRyb3Bk''@;'; + put 'put ''b3duLmJvdHRvbS1yaWdodD4uZHJvcGRvd24tbWVudSwuaGVhZGVyIC5zZXR0aW5ncz4uZHJvcGRvd24uYm90dG9tLWxlZnQ+LmRyb3Bkb3duLW1lbnUsLmhlYWRlciAuaGVhZGVyLWFjdGlvbnM+LmRyb3Bkb3duLmJvdHRvbS1yaWdodD4uZHJvcGRvd24tbWVudSwuaGVhZGVyIC5oZWFkZXIt''@;'; + put 'put ''YWN0aW9ucz4uZHJvcGRvd24uYm90dG9tLWxlZnQ+LmRyb3Bkb3duLW1lbnV7dG9wOjg1JX1oZWFkZXIgLnNldHRpbmdzPi5kcm9wZG93bjpsYXN0LWNoaWxkLmJvdHRvbS1yaWdodD4uZHJvcGRvd24tbWVudSxoZWFkZXIgLmhlYWRlci1hY3Rpb25zPi5kcm9wZG93bjpsYXN0LWNoaWxkLmJv''@;'; + put 'put ''dHRvbS1yaWdodD4uZHJvcGRvd24tbWVudSwuaGVhZGVyIC5zZXR0aW5ncz4uZHJvcGRvd246bGFzdC1jaGlsZC5ib3R0b20tcmlnaHQ+LmRyb3Bkb3duLW1lbnUsLmhlYWRlciAuaGVhZGVyLWFjdGlvbnM+LmRyb3Bkb3duOmxhc3QtY2hpbGQuYm90dG9tLXJpZ2h0Pi5kcm9wZG93bi1tZW51''@;'; + put 'put ''e3JpZ2h0Oi4xNXJlbX1oZWFkZXIgLnNldHRpbmdzPi5kcm9wZG93biAuZHJvcGRvd24tbWVudSxoZWFkZXIgLmhlYWRlci1hY3Rpb25zPi5kcm9wZG93biAuZHJvcGRvd24tbWVudSwuaGVhZGVyIC5zZXR0aW5ncz4uZHJvcGRvd24gLmRyb3Bkb3duLW1lbnUsLmhlYWRlciAuaGVhZGVyLWFj''@;'; + put 'put ''dGlvbnM+LmRyb3Bkb3duIC5kcm9wZG93bi1tZW51e21hcmdpbi10b3A6LS4ycmVtO2xlZnQ6YXV0bztyaWdodDowfWhlYWRlciAuc2V0dGluZ3M+LmRyb3Bkb3duIDpsYXN0LWNoaWxkLmRyb3Bkb3duLW1lbnUsaGVhZGVyIC5oZWFkZXItYWN0aW9ucz4uZHJvcGRvd24gOmxhc3QtY2hpbGQu''@;'; + put 'put ''ZHJvcGRvd24tbWVudSwuaGVhZGVyIC5zZXR0aW5ncz4uZHJvcGRvd24gOmxhc3QtY2hpbGQuZHJvcGRvd24tbWVudSwuaGVhZGVyIC5oZWFkZXItYWN0aW9ucz4uZHJvcGRvd24gOmxhc3QtY2hpbGQuZHJvcGRvd24tbWVudXttYXJnaW4tcmlnaHQ6LjRyZW19aGVhZGVyIC5zZWFyY2gtYm94''@;'; + put 'put ''LGhlYWRlciAuc2VhcmNoLC5oZWFkZXIgLnNlYXJjaC1ib3gsLmhlYWRlciAuc2VhcmNoe2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7ZmxleDowIDAgYXV0bzttYXgtd2lkdGg6MTQuNHJlbTtwYWRkaW5nOjA7aGVpZ2h0OjNyZW07Y29sb3I6I2ZhZmFmYTtjb2xvcjp2YXIoLS1j''@;'; + put 'put ''bHItaGVhZGVyLWZvbnQtY29sb3IsICNmYWZhZmEpO29wYWNpdHk6LjY1O29wYWNpdHk6dmFyKC0tY2xyLWhlYWRlci1uYXYtb3BhY2l0eSwgLjY1KX1oZWFkZXIgLnNlYXJjaC1ib3g6ZW5hYmxlZDpob3ZlcixoZWFkZXIgLnNlYXJjaDplbmFibGVkOmhvdmVyLC5oZWFkZXIgLnNlYXJjaC1i''@;'; + put 'put ''b3g6ZW5hYmxlZDpob3ZlciwuaGVhZGVyIC5zZWFyY2g6ZW5hYmxlZDpob3ZlcntvcGFjaXR5OjE7b3BhY2l0eTp2YXIoLS1jbHItaGVhZGVyLW5hdi1ob3Zlci1vcGFjaXR5LCAxKX1oZWFkZXIgLnNlYXJjaC1ib3g6ZGlzYWJsZWQsaGVhZGVyIC5zZWFyY2g6ZGlzYWJsZWQsLmhlYWRlciAu''@;'; + put 'put ''c2VhcmNoLWJveDpkaXNhYmxlZCwuaGVhZGVyIC5zZWFyY2g6ZGlzYWJsZWR7Y3Vyc29yOm5vdC1hbGxvd2VkfWhlYWRlciAuc2VhcmNoLWJveD4ubmF2LWljb24saGVhZGVyIC5zZWFyY2g+Lm5hdi1pY29uLC5oZWFkZXIgLnNlYXJjaC1ib3g+Lm5hdi1pY29uLC5oZWFkZXIgLnNlYXJjaD4u''@;'; + put 'put ''bmF2LWljb257bWFyZ2luOjAgLjNyZW0gLjE1cmVtIDEuMnJlbX1oZWFkZXIgLnNlYXJjaC1ib3ggbGFiZWwsaGVhZGVyIC5zZWFyY2ggbGFiZWwsLmhlYWRlciAuc2VhcmNoLWJveCBsYWJlbCwuaGVhZGVyIC5zZWFyY2ggbGFiZWx7ZGlzcGxheTppbmxpbmUtYmxvY2s7aGVpZ2h0OjNyZW07''@;'; + put 'put ''bGluZS1oZWlnaHQ6M3JlbTtwYWRkaW5nLWxlZnQ6MS4ycmVtO3RleHQtYWxpZ246Y2VudGVyfWhlYWRlciAuc2VhcmNoLWJveCBsYWJlbDpiZWZvcmUsaGVhZGVyIC5zZWFyY2ggbGFiZWw6YmVmb3JlLC5oZWFkZXIgLnNlYXJjaC1ib3ggbGFiZWw6YmVmb3JlLC5oZWFkZXIgLnNlYXJjaCBs''@;'; + put 'put ''YWJlbDpiZWZvcmV7ZGlzcGxheTppbmxpbmUtYmxvY2s7Y29udGVudDoiIjtiYWNrZ3JvdW5kLWltYWdlOnVybChkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGY4LCUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTIwdmlld0Jv''@;'; + put 'put ''eCUzRCUyMjAlMjAwJTIwMzYlMjAzNiUyMiUzRSUzQ2RlZnMlM0UlM0NzdHlsZSUzRS5jbHMtMSU3QmZpbGwlM0ElMjNmZmZmZmYlM0IlN0QlM0MlMkZzdHlsZSUzRSUzQyUyRmRlZnMlM0UlM0N0aXRsZSUzRVNlYXJjaCUzQyUyRnRpdGxlJTNFJTNDZyUyMGlkJTNEJTIyaWNvbnMlMjIlM0Ul''@;'; + put 'put ''M0NwYXRoJTIwY2xhc3MlM0QlMjJjbHMtMSUyMiUyMGQlM0QlMjJNMTUlMkM0LjA1QTEwLjk1JTJDMTAuOTUlMkMwJTJDMSUyQzElMkM0LjA1JTJDMTUlMkMxMSUyQzExJTJDMCUyQzAlMkMxJTJDMTUlMkM0LjA1TTE1JTJDMkExMyUyQzEzJTJDMCUyQzElMkMwJTJDMjglMkMxNSUyQzEzJTJD''@;'; + put 'put ''MTMlMkMwJTJDMCUyQzAlMkMxNSUyQzJaJTIyJTJGJTNFJTNDcGF0aCUyMGNsYXNzJTNEJTIyY2xzLTElMjIlMjAlMjBkJTNEJTIyTTMzLjcxJTJDMzIuMjlsLTcuMzctNy40Mi0xLjQyJTJDMS40MSUyQzcuMzclMkM3LjQyYTElMkMxJTJDMCUyQzElMkMwJTJDMS40Mi0xLjQxWiUyMiUyRiUz''@;'; + put 'put ''RSUzQyUyRmclM0UlM0MlMkZzdmclM0UpO2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDtiYWNrZ3JvdW5kLXNpemU6Y29udGFpbjtjdXJzb3I6cG9pbnRlcjtoZWlnaHQ6MXJlbTt3aWR0aDoxcmVtO21hcmdpbjoxcmVtIDAgMDt2ZXJ0aWNhbC1hbGlnbjp0b3B9aGVhZGVyIC5zZWFyY2gt''@;'; + put 'put ''Ym94IGxhYmVsIGlucHV0LGhlYWRlciAuc2VhcmNoIGxhYmVsIGlucHV0LC5oZWFkZXIgLnNlYXJjaC1ib3ggbGFiZWwgaW5wdXQsLmhlYWRlciAuc2VhcmNoIGxhYmVsIGlucHV0e2xpbmUtaGVpZ2h0OjEuMnJlbTttYXJnaW46LjlyZW0gMH1oZWFkZXIgLnNlYXJjaC1ib3ggaW5wdXRbdHlw''@;'; + put 'put ''ZT10ZXh0XSxoZWFkZXIgLnNlYXJjaCBpbnB1dFt0eXBlPXRleHRdLC5oZWFkZXIgLnNlYXJjaC1ib3ggaW5wdXRbdHlwZT10ZXh0XSwuaGVhZGVyIC5zZWFyY2ggaW5wdXRbdHlwZT10ZXh0XXtib3JkZXI6MDtiYWNrZ3JvdW5kOjAgMDtjb2xvcjojZmFmYWZhO2NvbG9yOnZhcigtLWNsci1o''@;'; + put 'put ''ZWFkZXItZm9udC1jb2xvciwgI2ZhZmFmYSk7cGFkZGluZzowO3ZlcnRpY2FsLWFsaWduOm1pZGRsZX1oZWFkZXIgLnNlYXJjaC1ib3ggaW5wdXRbdHlwZT10ZXh0XTpmb2N1cyxoZWFkZXIgLnNlYXJjaC1ib3ggaW5wdXRbdHlwZT10ZXh0XTphY3RpdmUsaGVhZGVyIC5zZWFyY2ggaW5wdXRb''@;'; + put 'put ''dHlwZT10ZXh0XTpmb2N1cyxoZWFkZXIgLnNlYXJjaCBpbnB1dFt0eXBlPXRleHRdOmFjdGl2ZSwuaGVhZGVyIC5zZWFyY2gtYm94IGlucHV0W3R5cGU9dGV4dF06Zm9jdXMsLmhlYWRlciAuc2VhcmNoLWJveCBpbnB1dFt0eXBlPXRleHRdOmFjdGl2ZSwuaGVhZGVyIC5zZWFyY2ggaW5wdXRb''@;'; + put 'put ''dHlwZT10ZXh0XTpmb2N1cywuaGVhZGVyIC5zZWFyY2ggaW5wdXRbdHlwZT10ZXh0XTphY3RpdmV7YmFja2dyb3VuZDowIDB9aGVhZGVyIC5icmFuZGluZysuc2VhcmNoLGhlYWRlciAuYnJhbmRpbmcrLnNlYXJjaC1ib3gsLmhlYWRlciAuYnJhbmRpbmcrLnNlYXJjaCwuaGVhZGVyIC5icmFu''@;'; + put 'put ''ZGluZysuc2VhcmNoLWJveHtwb3NpdGlvbjpyZWxhdGl2ZX1oZWFkZXIgLmJyYW5kaW5nKy5zZWFyY2g6YWZ0ZXIsaGVhZGVyIC5icmFuZGluZysuc2VhcmNoLWJveDphZnRlciwuaGVhZGVyIC5icmFuZGluZysuc2VhcmNoOmFmdGVyLC5oZWFkZXIgLmJyYW5kaW5nKy5zZWFyY2gtYm94OmFm''@;'; + put 'put ''dGVye2Rpc3BsYXk6aW5saW5lLWJsb2NrO3Bvc2l0aW9uOmFic29sdXRlO2NvbnRlbnQ6IiI7YmFja2dyb3VuZDojZmFmYWZhO2JhY2tncm91bmQ6dmFyKC0tY2xyLWhlYWRlci1mb250LWNvbG9yLCAjZmFmYWZhKTtvcGFjaXR5OnZhcigtLWNsci1oZWFkZXItZGl2aWRlci1vcGFjaXR5LCAu''@;'; + put 'put ''MTUpO29wYWNpdHk6LjE1O2hlaWdodDoycmVtO3dpZHRoOi4wNXJlbTt3aWR0aDp2YXIoLS1jbHItZ2xvYmFsLWJvcmRlcndpZHRoLCAuMDVyZW0pO3RvcDouNXJlbTtsZWZ0OjB9QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDo3NjhweCl7aGVhZGVyIC5zZWFyY2gtYm94LGhlYWRlciAu''@;'; + put 'put ''c2VhcmNoLC5oZWFkZXIgLnNlYXJjaC1ib3gsLmhlYWRlciAuc2VhcmNoe2ZsZXg6MSAwIGF1dG87anVzdGlmeS1jb250ZW50OmZsZXgtZW5kO21heC13aWR0aDpub25lfWhlYWRlciAuc2VhcmNoLWJveCBsYWJlbCxoZWFkZXIgLnNlYXJjaCBsYWJlbCwuaGVhZGVyIC5zZWFyY2gtYm94IGxh''@;'; + put 'put ''YmVsLC5oZWFkZXIgLnNlYXJjaCBsYWJlbHtwYWRkaW5nOjA7d2lkdGg6M3JlbX1oZWFkZXIgLnNlYXJjaC1ib3ggbGFiZWw6YmVmb3JlLGhlYWRlciAuc2VhcmNoIGxhYmVsOmJlZm9yZSwuaGVhZGVyIC5zZWFyY2gtYm94IGxhYmVsOmJlZm9yZSwuaGVhZGVyIC5zZWFyY2ggbGFiZWw6YmVm''@;'; + put 'put ''b3Jle2xlZnQ6MXJlbX1oZWFkZXIgLnNlYXJjaC1ib3ggbGFiZWwgaW5wdXQsaGVhZGVyIC5zZWFyY2ggbGFiZWwgaW5wdXQsLmhlYWRlciAuc2VhcmNoLWJveCBsYWJlbCBpbnB1dCwuaGVhZGVyIC5zZWFyY2ggbGFiZWwgaW5wdXR7ZGlzcGxheTpub25lfWhlYWRlciAuYnJhbmRpbmcrLnNl''@;'; + put 'put ''YXJjaDphZnRlcixoZWFkZXIgLmJyYW5kaW5nKy5zZWFyY2gtYm94OmFmdGVyLC5oZWFkZXIgLmJyYW5kaW5nKy5zZWFyY2g6YWZ0ZXIsLmhlYWRlciAuYnJhbmRpbmcrLnNlYXJjaC1ib3g6YWZ0ZXJ7Y29udGVudDpub25lfWhlYWRlciAuc2VhcmNoLWJveCsuc2V0dGluZ3MsaGVhZGVyIC5z''@;'; + put 'put ''ZWFyY2gtYm94Ky5oZWFkZXItYWN0aW9ucyxoZWFkZXIgLnNlYXJjaCsuc2V0dGluZ3MsaGVhZGVyIC5zZWFyY2grLmhlYWRlci1hY3Rpb25zLC5oZWFkZXIgLnNlYXJjaC1ib3grLnNldHRpbmdzLC5oZWFkZXIgLnNlYXJjaC1ib3grLmhlYWRlci1hY3Rpb25zLC5oZWFkZXIgLnNlYXJjaCsu''@;'; + put 'put ''c2V0dGluZ3MsLmhlYWRlciAuc2VhcmNoKy5oZWFkZXItYWN0aW9uc3twb3NpdGlvbjpyZWxhdGl2ZTtmbGV4OjAgMCBhdXRvfWhlYWRlciAuc2VhcmNoLWJveCsuc2V0dGluZ3M6YWZ0ZXIsaGVhZGVyIC5zZWFyY2gtYm94Ky5oZWFkZXItYWN0aW9uczphZnRlcixoZWFkZXIgLnNlYXJjaCsu''@;'; + put 'put ''c2V0dGluZ3M6YWZ0ZXIsaGVhZGVyIC5zZWFyY2grLmhlYWRlci1hY3Rpb25zOmFmdGVyLC5oZWFkZXIgLnNlYXJjaC1ib3grLnNldHRpbmdzOmFmdGVyLC5oZWFkZXIgLnNlYXJjaC1ib3grLmhlYWRlci1hY3Rpb25zOmFmdGVyLC5oZWFkZXIgLnNlYXJjaCsuc2V0dGluZ3M6YWZ0ZXIsLmhl''@;'; + put 'put ''YWRlciAuc2VhcmNoKy5oZWFkZXItYWN0aW9uczphZnRlcntkaXNwbGF5OmlubGluZS1ibG9jaztwb3NpdGlvbjphYnNvbHV0ZTtjb250ZW50OiIiO2JhY2tncm91bmQ6I2ZhZmFmYTtiYWNrZ3JvdW5kOnZhcigtLWNsci1oZWFkZXItZm9udC1jb2xvciwgI2ZhZmFmYSk7b3BhY2l0eTp2YXIo''@;'; + put 'put ''LS1jbHItaGVhZGVyLWRpdmlkZXItb3BhY2l0eSwgLjE1KTtvcGFjaXR5Oi4xNTtoZWlnaHQ6MnJlbTt3aWR0aDouMDVyZW07d2lkdGg6dmFyKC0tY2xyLWdsb2JhbC1ib3JkZXJ3aWR0aCwgLjA1cmVtKTt0b3A6LjVyZW07bGVmdDowfX1hLmxpbmstbm9ybWFsOmxpbmt7Y29sb3I6IzAwNzJh''@;'; + put 'put ''Mztjb2xvcjp2YXIoLS1jbHItbGluay1jb2xvciwgIzAwNzJhMyk7dGV4dC1kZWNvcmF0aW9uOm5vbmV9YS5saW5rLWhvdmVyZWQ6bGlua3tjb2xvcjojMDA3MmEzO2NvbG9yOnZhcigtLWNsci1saW5rLWhvdmVyLWNvbG9yLCAjMDA3MmEzKTt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lfWEu''@;'; + put 'put ''bGluay1jbGlja2VkOmxpbmt7Y29sb3I6IzllNTdiYztjb2xvcjp2YXIoLS1jbHItbGluay1hY3RpdmUtY29sb3IsICM5ZTU3YmMpO3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmV9YS5saW5rLXZpc2l0ZWQ6bGlua3tjb2xvcjojNTY1OWI4O2NvbG9yOnZhcigtLWNsci1saW5rLXZpc2l0ZWQt''@;'; + put 'put ''Y29sb3IsICM1NjU5YjgpO3RleHQtZGVjb3JhdGlvbjpub25lfS5uYXZ7ZGlzcGxheTpmbGV4O2hlaWdodDoxLjhyZW07bGlzdC1zdHlsZS10eXBlOm5vbmU7YWxpZ24taXRlbXM6Y2VudGVyO21hcmdpbjowO3dpZHRoOjEwMCU7d2hpdGUtc3BhY2U6bm93cmFwO2JveC1zaGFkb3c6MCAtLjA1''@;'; + put 'put ''cmVtICNjY2MgaW5zZXQ7Ym94LXNoYWRvdzowIC0uMDVyZW0gMCB2YXIoLS1jbHItbmF2LWJveC1zaGFkb3ctY29sb3IsICNjY2NjY2MpIGluc2V0fS5uYXYgLm5hdi1pdGVte2Rpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdpbi1yaWdodDoxLjJyZW19Lm5hdiAubmF2LWl0ZW0uYWN0aXZlPi5u''@;'; + put 'put ''YXYtbGlua3tjb2xvcjojMDAwO2NvbG9yOnZhcigtLWNsci1uYXYtbGluay1hY3RpdmUtY29sb3IsIGJsYWNrKTtib3gtc2hhZG93OjAgLS4wNXJlbSAjY2NjIGluc2V0O2JveC1zaGFkb3c6MCAtLjA1cmVtIDAgdmFyKC0tY2xyLW5hdi1ib3gtc2hhZG93LWNvbG9yLCAjY2NjY2NjKSBpbnNl''@;'; + put 'put ''dH0ubmF2IC5uYXYtbGlua3tjb2xvcjojNjY2O2NvbG9yOnZhcigtLWNsci1uYXYtbGluay1jb2xvciwgIzY2NjY2Nik7Zm9udC1zaXplOi43cmVtO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXdlaWdodDp2YXIoLS1jbHItbmF2LWxpbmstZm9udC13ZWlnaHQsIDQwMCk7bGV0dGVyLXNwYWNpbmc6''@;'; + put 'put ''bm9ybWFsO2xpbmUtaGVpZ2h0OjEuOHJlbTtkaXNwbGF5OmlubGluZS1ibG9jaztwYWRkaW5nOjAgLjE1cmVtO2JveC1zaGFkb3c6bm9uZX0ubmF2IC5uYXYtbGluay5idG57dGV4dC10cmFuc2Zvcm06bm9uZTttYXJnaW46MDttYXJnaW4tYm90dG9tOi0uMDVyZW07Ym9yZGVyLXJhZGl1czow''@;'; + put 'put ''fS5uYXYgLm5hdi1saW5rOmhvdmVyLC5uYXYgLm5hdi1saW5rOmZvY3VzLC5uYXYgLm5hdi1saW5rOmFjdGl2ZXtjb2xvcjppbmhlcml0fS5uYXYgLm5hdi1saW5rOmhvdmVyLC5uYXYgLm5hdi1saW5rLmFjdGl2ZXtib3gtc2hhZG93OjAgLS4xNXJlbSAjMDA3MmEzIGluc2V0O2JveC1zaGFk''@;'; + put 'put ''b3c6MCAtLjE1cmVtIDAgdmFyKC0tY2xyLW5hdi1hY3RpdmUtYm94LXNoYWRvdy1jb2xvciwgIzAwNzJhMykgaW5zZXQ7dHJhbnNpdGlvbjpib3gtc2hhZG93IC4ycyBlYXNlLWlufS5uYXYgLm5hdi1saW5rOmhvdmVyLC5uYXYgLm5hdi1saW5rOmZvY3VzLC5uYXYgLm5hdi1saW5rOmFjdGl2''@;'; + put 'put ''ZSwubmF2IC5uYXYtbGluay5hY3RpdmV7dGV4dC1kZWNvcmF0aW9uOm5vbmV9Lm5hdiAubmF2LWxpbmsuYWN0aXZle2NvbG9yOiMwMDA7Y29sb3I6dmFyKC0tY2xyLW5hdi1saW5rLWFjdGl2ZS1jb2xvciwgYmxhY2spO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXdlaWdodDp2YXIoLS1jbHItbmF2''@;'; + put 'put ''LWxpbmstYWN0aXZlLWZvbnQtd2VpZ2h0LCA0MDApfS5uYXYgLm5hdi1saW5rLm5hdi1pdGVte21hcmdpbi1yaWdodDoxLjJyZW19OnJvb3R7LS1jbHItc3VibmF2LWJnLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTApOy0tY2xyLW5hdi1ib3gtc2hhZG93LWNvbG9yOnZhcigtLWNs''@;'; + put 'put ''ci1jb2xvci1uZXV0cmFsLTQwMCl9LnN1Yi1uYXYsLnN1Ym5hdntkaXNwbGF5OmZsZXg7Ym94LXNoYWRvdzowIC0uMDVyZW0gI2NjYyBpbnNldDtib3gtc2hhZG93OjAgLS4wNXJlbSAwIHZhcigtLWNsci1uYXYtYm94LXNoYWRvdy1jb2xvciwgI2NjY2NjYykgaW5zZXQ7anVzdGlmeS1jb250''@;'; + put 'put ''ZW50OnNwYWNlLWJldHdlZW47YWxpZ24taXRlbXM6Y2VudGVyO2JhY2tncm91bmQtY29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1zdWJuYXYtYmctY29sb3IsIHdoaXRlKTtoZWlnaHQ6MS44cmVtfS5zdWItbmF2IC5uYXYsLnN1Ym5hdiAubmF2e2ZsZXg6MSAxIGF1dG87''@;'; + put 'put ''cGFkZGluZy1sZWZ0OjEuMnJlbX0uc3ViLW5hdiBhc2lkZSwuc3VibmF2IGFzaWRle2ZsZXg6MCAwIGF1dG87ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtoZWlnaHQ6MS44cmVtO3BhZGRpbmc6MCAxLjJyZW19LnN1Yi1uYXYgYXNpZGU+Omxhc3QtY2hpbGQsLnN1Ym5hdiBhc2lk''@;'; + put 'put ''ZT46bGFzdC1jaGlsZHttYXJnaW4tcmlnaHQ6MDtwYWRkaW5nLXJpZ2h0OjB9OnJvb3R7LS1jbHItc2lkZW5hdi1ib3JkZXItY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNDAwKTstLWNsci1zaWRlbmF2LWJvcmRlci13aWR0aDp2YXIoLS1jbHItZ2xvYmFsLWJvcmRlcndpZHRoKTst''@;'; + put 'put ''LWNsci1zaWRlbmF2LWxpbmstaG92ZXItY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtMjAwKTstLWNsci1zaWRlbmF2LWxpbmstYWN0aXZlLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTEwMDApOy0tY2xyLXNpZGVuYXYtbGluay1hY3RpdmUtYmctY29sb3I6dmFyKC0tY2xy''@;'; + put 'put ''LWdsb2JhbC1zZWxlY3Rpb24tY29sb3IpOy0tY2xyLXNpZGVuYXYtbGluay1hY3RpdmUtYm9yZGVyLXJhZGl1czp2YXIoLS1jbHItZ2xvYmFsLWJvcmRlcnJhZGl1cyk7LS1jbHItc2lkZW5hdi1oZWFkZXItY29sb3I6dmFyKC0tY2xyLWg2LWNvbG9yKTstLWNsci1zaWRlbmF2LWhlYWRlci1m''@;'; + put 'put ''b250LXdlaWdodDp2YXIoLS1jbHItaDYtZm9udC13ZWlnaHQpOy0tY2xyLXNpZGVuYXYtaGVhZGVyLWZvbnQtZmFtaWx5OnZhcigtLWNsci1oNi1mb250LWZhbWlseSk7LS1jbHItc2lkZW5hdi1jb2xvcjp2YXIoLS1jbHItcDEtY29sb3IpOy0tY2xyLXNpZGVuYXYtZm9udC13ZWlnaHQ6dmFy''@;'; + put 'put ''KC0tY2xyLXAxLWZvbnQtd2VpZ2h0KX0uc2lkZW5hdntsaW5lLWhlaWdodDoxLjJyZW07bWF4LXdpZHRoOjE1LjZyZW07bWluLXdpZHRoOjEwLjhyZW07d2lkdGg6MTglO2JvcmRlci1yaWdodDouMDVyZW0gc29saWQgI2NjYztkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1ufS5z''@;'; + put 'put ''aWRlbmF2IC5zaWRlbmF2LWNvbnRlbnR7ZmxleDoxIDEgYXV0bztvdmVyZmxvdy14OmhpZGRlbjtwYWRkaW5nLWJvdHRvbToxLjJyZW19LnNpZGVuYXYgLnNpZGVuYXYtY29udGVudCAubmF2LWxpbmt7Ym9yZGVyLXJhZGl1czowO2JvcmRlci10b3AtbGVmdC1yYWRpdXM6LjE1cmVtO2JvcmRl''@;'; + put 'put ''ci10b3AtbGVmdC1yYWRpdXM6dmFyKC0tY2xyLXNpZGVuYXYtbGluay1hY3RpdmUtYm9yZGVyLXJhZGl1cywgLjE1cmVtKTtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOi4xNXJlbTtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOnZhcigtLWNsci1zaWRlbmF2LWxpbmstYWN0aXZlLWJvcmRl''@;'; + put 'put ''ci1yYWRpdXMsIC4xNXJlbSk7ZGlzcGxheTppbmxpbmUtYmxvY2s7Y29sb3I6aW5oZXJpdDtjdXJzb3I6cG9pbnRlcjt0ZXh0LWRlY29yYXRpb246bm9uZTt3aWR0aDoxMDAlfS5zaWRlbmF2IC5zaWRlbmF2LWNvbnRlbnQ+Lm5hdi1saW5re21hcmdpbjoxLjJyZW0gMCAwIDEuNXJlbTtwYWRk''@;'; + put 'put ''aW5nLWxlZnQ6LjZyZW07Y29sb3I6IzMzMztjb2xvcjp2YXIoLS1jbHItc2lkZW5hdi1oZWFkZXItY29sb3IsICMzMzMzMzMpO2ZvbnQtd2VpZ2h0OjUwMDtmb250LXdlaWdodDp2YXIoLS1jbHItc2lkZW5hdi1oZWFkZXItZm9udC13ZWlnaHQsIDUwMCk7Zm9udC1mYW1pbHk6TWV0cm9wb2xp''@;'; + put 'put ''cyxBdmVuaXIgTmV4dCxIZWx2ZXRpY2EgTmV1ZSxBcmlhbCxzYW5zLXNlcmlmO2ZvbnQtZmFtaWx5OnZhcigtLWNsci1zaWRlbmF2LWhlYWRlci1mb250LWZhbWlseSwgTWV0cm9wb2xpcywgIkF2ZW5pciBOZXh0IiwgIkhlbHZldGljYSBOZXVlIiwgQXJpYWwsIHNhbnMtc2VyaWYpO2ZvbnQt''@;'; + put 'put ''c2l6ZTouN3JlbTtsaW5lLWhlaWdodDoxLjJyZW07bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5zaWRlbmF2IC5zaWRlbmF2LWNvbnRlbnQ+Lm5hdi1saW5rOmhvdmVye2JhY2tncm91bmQ6I2U4ZThlODtiYWNrZ3JvdW5kOnZhcigtLWNsci1zaWRlbmF2LWxpbmstaG92ZXItY29sb3IsICNlOGU4''@;'; + put 'put ''ZTgpfS5zaWRlbmF2IC5zaWRlbmF2LWNvbnRlbnQ+Lm5hdi1saW5rLmFjdGl2ZXtiYWNrZ3JvdW5kOiNkOGUzZTk7YmFja2dyb3VuZDp2YXIoLS1jbHItc2lkZW5hdi1saW5rLWFjdGl2ZS1iZy1jb2xvciwgI2Q4ZTNlOSk7Y29sb3I6IzAwMDtjb2xvcjp2YXIoLS1jbHItc2lkZW5hdi1saW5r''@;'; + put 'put ''LWFjdGl2ZS1jb2xvciwgYmxhY2spfS5zaWRlbmF2IC5uYXYtZ3JvdXB7Y29sb3I6IzY2Njtjb2xvcjp2YXIoLS1jbHItc2lkZW5hdi1jb2xvciwgIzY2NjY2Nik7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtd2VpZ2h0OnZhcigtLWNsci1zaWRlbmF2LWZvbnQtd2VpZ2h0LCA0MDApO2ZvbnQtc2l6''@;'; + put 'put ''ZTouN3JlbTtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luLXRvcDoxLjJyZW07d2lkdGg6MTAwJX0uc2lkZW5hdiAubmF2LWdyb3VwIC5uYXYtbGlzdCwuc2lkZW5hdiAubmF2LWdyb3VwIGxhYmVse3BhZGRpbmc6MCAwIDAgMS44cmVtO2N1cnNvcjpwb2ludGVyO2Rpc3BsYXk6aW5saW5l''@;'; + put 'put ''LWJsb2NrO3dpZHRoOjEwMCU7bWFyZ2luOjAgLjNyZW19LnNpZGVuYXYgLm5hdi1ncm91cCAubmF2LWxpc3R7bGlzdC1zdHlsZTpub25lO21hcmdpbi10b3A6MH0uc2lkZW5hdiAubmF2LWdyb3VwIC5uYXYtbGlzdCAubmF2LWxpbmt7bGluZS1oZWlnaHQ6LjhyZW07cGFkZGluZzouMnJlbSAw''@;'; + put 'put ''IC4ycmVtIC42cmVtfS5zaWRlbmF2IC5uYXYtZ3JvdXAgLm5hdi1saXN0IC5uYXYtbGluazpob3ZlcntiYWNrZ3JvdW5kOiNlOGU4ZTg7YmFja2dyb3VuZDp2YXIoLS1jbHItc2lkZW5hdi1saW5rLWhvdmVyLWNvbG9yLCAjZThlOGU4KX0uc2lkZW5hdiAubmF2LWdyb3VwIC5uYXYtbGlzdCAu''@;'; + put 'put ''bmF2LWxpbmsuYWN0aXZle2JhY2tncm91bmQ6I2Q4ZTNlOTtiYWNrZ3JvdW5kOnZhcigtLWNsci1zaWRlbmF2LWxpbmstYWN0aXZlLWJnLWNvbG9yLCAjZDhlM2U5KTtjb2xvcjojMDAwO2NvbG9yOnZhcigtLWNsci1zaWRlbmF2LWxpbmstYWN0aXZlLWNvbG9yLCBibGFjayl9LnNpZGVuYXYg''@;'; + put 'put ''Lm5hdi1ncm91cCBsYWJlbHtjb2xvcjojMzMzO2NvbG9yOnZhcigtLWNsci1zaWRlbmF2LWhlYWRlci1jb2xvciwgIzMzMzMzMyk7Zm9udC13ZWlnaHQ6NTAwO2ZvbnQtd2VpZ2h0OnZhcigtLWNsci1zaWRlbmF2LWhlYWRlci1mb250LXdlaWdodCwgNTAwKTtmb250LWZhbWlseTpNZXRyb3Bv''@;'; + put 'put ''bGlzLEF2ZW5pciBOZXh0LEhlbHZldGljYSBOZXVlLEFyaWFsLHNhbnMtc2VyaWY7Zm9udC1mYW1pbHk6dmFyKC0tY2xyLXNpZGVuYXYtaGVhZGVyLWZvbnQtZmFtaWx5LCBNZXRyb3BvbGlzLCAiQXZlbmlyIE5leHQiLCAiSGVsdmV0aWNhIE5ldWUiLCBBcmlhbCwgc2Fucy1zZXJpZik7Zm9u''@;'; + put 'put ''dC1zaXplOi43cmVtO2xpbmUtaGVpZ2h0OjEuMnJlbTtsZXR0ZXItc3BhY2luZzpub3JtYWx9LnNpZGVuYXYgLm5hdi1ncm91cCBpbnB1dFt0eXBlPWNoZWNrYm94XXtwb3NpdGlvbjphYnNvbHV0ZTtjbGlwOnJlY3QoMXB4LDFweCwxcHgsMXB4KTtjbGlwLXBhdGg6aW5zZXQoNTAlKTtwYWRk''@;'; + put 'put ''aW5nOjA7Ym9yZGVyOjA7aGVpZ2h0OjFweDt3aWR0aDoxcHg7b3ZlcmZsb3c6aGlkZGVuO3doaXRlLXNwYWNlOm5vd3JhcDt0b3A6MDtsZWZ0OjB9LnNpZGVuYXYgLm5hdi1ncm91cCBpbnB1dFt0eXBlPWNoZWNrYm94XTpmb2N1cytsYWJlbHtvdXRsaW5lOiMzYjk5ZmMgYXV0byAuMjVyZW19''@;'; + put 'put ''LnNpZGVuYXYgLmNvbGxhcHNpYmxlIGxhYmVse3BhZGRpbmc6MCAwIDAgMS4zcmVtfS5zaWRlbmF2IC5jb2xsYXBzaWJsZSBsYWJlbDphZnRlcntjb250ZW50OiIiO2Zsb2F0OmxlZnQ7aGVpZ2h0Oi41cmVtO3dpZHRoOi41cmVtO3RyYW5zZm9ybTp0cmFuc2xhdGUoLS40cmVtKSB0cmFuc2xh''@;'; + put 'put ''dGVZKC4zNXJlbSk7YmFja2dyb3VuZC1pbWFnZTp1cmwoZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9dXRmOCwlM0NzdmclMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDEyJTIwMTIlMjIlM0UlMEEl''@;'; + put 'put ''MjAlMjAlMjAlMjAlM0NkZWZzJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDc3R5bGUlM0UuY2xzLTElN0JmaWxsJTNBJTIzOWE5YTlhJTNCJTdEJTNDJTJGc3R5bGUlM0UlMEElMjAlMjAlMjAlMjAlM0MlMkZkZWZzJTNFJTBBJTIwJTIwJTIwJTIwJTNDdGl0bGUlM0VDYXJldCUz''@;'; + put 'put ''QyUyRnRpdGxlJTNFJTBBJTIwJTIwJTIwJTIwJTNDcGF0aCUyMGNsYXNzJTNEJTIyY2xzLTElMjIlMjBkJTNEJTIyTTYlMkM5TDEuMiUyQzQuMmEwLjY4JTJDMC42OCUyQzAlMkMwJTJDMSUyQzEtMUw2JTJDNy4wOCUyQzkuODQlMkMzLjI0YTAuNjglMkMwLjY4JTJDMCUyQzElMkMxJTJDMSUy''@;'; + put 'put ''QzFaJTIyJTJGJTNFJTBBJTNDJTJGc3ZnJTNFJTBBKTtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7YmFja2dyb3VuZC1zaXplOmNvbnRhaW47dmVydGljYWwtYWxpZ246bWlkZGxlO21hcmdpbjowfS5zaWRlbmF2IC5jb2xsYXBzaWJsZSBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2Vk''@;'; + put 'put ''fi5uYXYtbGlzdCwuc2lkZW5hdiAuY29sbGFwc2libGUgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZH51bHtoZWlnaHQ6MDtkaXNwbGF5Om5vbmV9LnNpZGVuYXYgLmNvbGxhcHNpYmxlIGlucHV0W3R5cGU9Y2hlY2tib3hdfi5uYXYtbGlzdCwuc2lkZW5hdiAuY29sbGFwc2libGUgaW5w''@;'; + put 'put ''dXRbdHlwZT1jaGVja2JveF1+dWx7aGVpZ2h0OmF1dG99LnNpZGVuYXYgLmNvbGxhcHNpYmxlIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWR+bGFiZWw6YWZ0ZXJ7dHJhbnNmb3JtOnJvdGF0ZSgtOTBkZWcpIHRyYW5zbGF0ZSgtLjM1cmVtKSB0cmFuc2xhdGVZKC0uNHJlbSl9OnJvb3R7''@;'; + put 'put ''LS1jbHItdmVydGljYWwtbmF2LWRpdmlkZXItY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNzAwKTstLWNsci12ZXJ0aWNhbC1uYXYtaWNvbi1hY3RpdmUtY29sb3I6dmFyKC0tY2xyLWNvbG9yLWFjdGlvbi02MDApOy0tY2xyLXZlcnRpY2FsLW5hdi1pdGVtLWNvbG9yOnZhcigtLWNs''@;'; + put 'put ''ci1jb2xvci1uZXV0cmFsLTcwMCk7LS1jbHItdmVydGljYWwtbmF2LWl0ZW0tYWN0aXZlLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTcwMCk7LS1jbHItdmVydGljYWwtbmF2LWJnLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTIwMCk7LS1jbHItdmVydGljYWwtbmF2LWFj''@;'; + put 'put ''dGl2ZS1iZy1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC0wKTstLWNsci12ZXJ0aWNhbC1uYXYtaG92ZXItYmctY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNDAwKTstLWNsci12ZXJ0aWNhbC1uYXYtdG9nZ2xlLWljb24tY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwt''@;'; + put 'put ''MTAwMCk7LS1jbHItdmVydGljYWwtbmF2LXRyaWdnZXItZGl2aWRlci1ib3JkZXItd2lkdGg6dmFyKC0tY2xyLWdsb2JhbC1ib3JkZXJ3aWR0aCk7LS1jbHItdmVydGljYWwtbmF2LXRyaWdnZXItZGl2aWRlci1ib3JkZXItY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNDAwKTstLWNs''@;'; + put 'put ''ci12ZXJ0aWNhbC1uYXYtaGVhZGVyLWZvbnQtd2VpZ2h0OnZhcigtLWNsci1wNC1mb250LXdlaWdodCl9LmNsci12ZXJ0aWNhbC1uYXZ7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtwYWRkaW5nLXRvcDouOXJlbTt3aWR0aDoxMnJlbTttaW4td2lkdGg6Mi40cmVtO2JhY2tn''@;'; + put 'put ''cm91bmQtY29sb3I6I2U4ZThlODtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci12ZXJ0aWNhbC1uYXYtYmctY29sb3IsICNlOGU4ZTgpO3dpbGwtY2hhbmdlOndpZHRoO3RyYW5zaXRpb246d2lkdGggLjJzIGVhc2UtaW4tb3V0fS5jbHItdmVydGljYWwtbmF2IC5uYXYtZGl2aWRlcntib3Jk''@;'; + put 'put ''ZXItY29sb3I6I2NjYztib3JkZXItY29sb3I6dmFyKC0tY2xyLXZlcnRpY2FsLW5hdi10cmlnZ2VyLWRpdmlkZXItYm9yZGVyLWNvbG9yLCAjY2NjY2NjKTtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLXdpZHRoOi4wNXJlbTtib3JkZXItd2lkdGg6dmFyKC0tY2xyLXZlcnRpY2FsLW5hdi10''@;'; + put 'put ''cmlnZ2VyLWRpdmlkZXItYm9yZGVyLXdpZHRoLCAuMDVyZW0pO21hcmdpbjouNnJlbSAwfS5jbHItdmVydGljYWwtbmF2IC5uYXYtY29udGVudHtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2ZsZXg6MSAxIGF1dG87b3ZlcmZsb3cteTphdXRvO292ZXJmbG93LXg6aGlkZGVu''@;'; + put 'put ''fS5jbHItdmVydGljYWwtbmF2IC5uYXYtZ3JvdXB7ZGlzcGxheTpibG9jaztmbGV4OjAgMCBhdXRvO2hlaWdodDphdXRvO21pbi1oZWlnaHQ6MS44cmVtfS5jbHItdmVydGljYWwtbmF2IC5uYXYtZ3JvdXAtY29udGVudHtkaXNwbGF5OmZsZXg7Y29sb3I6IzY2Njtjb2xvcjp2YXIoLS1jbHIt''@;'; + put 'put ''dmVydGljYWwtbmF2LWl0ZW0tY29sb3IsICM2NjY2NjYpfS5jbHItdmVydGljYWwtbmF2IC5uYXYtZ3JvdXAtY29udGVudC5hY3RpdmV7Y29sb3I6IzY2Njtjb2xvcjp2YXIoLS1jbHItdmVydGljYWwtbmF2LWl0ZW0tYWN0aXZlLWNvbG9yLCAjNjY2NjY2KTtiYWNrZ3JvdW5kLWNvbG9yOiNm''@;'; + put 'put ''ZmY7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItdmVydGljYWwtbmF2LWFjdGl2ZS1iZy1jb2xvciwgd2hpdGUpO2JvcmRlci1sZWZ0Oi4xNXJlbSBzb2xpZCB2YXIoLS1jbHItbmF2LWFjdGl2ZS1ib3gtc2hhZG93LWNvbG9yKX0uY2xyLXZlcnRpY2FsLW5hdiAubmF2LWdyb3VwLWNvbnRl''@;'; + put 'put ''bnQuYWN0aXZlIC5uYXYtaWNvbntmaWxsOiMwMDcyYTM7ZmlsbDp2YXIoLS1jbHItdmVydGljYWwtbmF2LWljb24tYWN0aXZlLWNvbG9yLCAjMDA3MmEzKX0uY2xyLXZlcnRpY2FsLW5hdiAubmF2LWdyb3VwLWNvbnRlbnQ6aG92ZXJ7Y29sb3I6IzY2Njtjb2xvcjp2YXIoLS1jbHItdmVydGlj''@;'; + put 'put ''YWwtbmF2LWl0ZW0tYWN0aXZlLWNvbG9yLCAjNjY2NjY2KTtiYWNrZ3JvdW5kLWNvbG9yOiNjY2M7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItdmVydGljYWwtbmF2LWhvdmVyLWJnLWNvbG9yLCAjY2NjY2NjKTt0ZXh0LWRlY29yYXRpb246bm9uZX0uY2xyLXZlcnRpY2FsLW5hdiAubmF2''@;'; + put 'put ''LWdyb3VwLWNvbnRlbnQgLm5hdi1saW5re2ZsZXg6MSAxIGF1dG87cGFkZGluZy1sZWZ0OjA7bWluLXdpZHRoOjB9LmNsci12ZXJ0aWNhbC1uYXYgLm5hdi1ncm91cC1jb250ZW50IC5uYXYtaWNvbnttYXJnaW4tbGVmdDoxLjJyZW19LmNsci12ZXJ0aWNhbC1uYXYgLm5hdi1ncm91cC1jb250''@;'; + put 'put ''ZW50IC5uYXYtdGV4dHtwYWRkaW5nLWxlZnQ6MS4ycmVtfS5jbHItdmVydGljYWwtbmF2IC5uYXYtZ3JvdXAtY29udGVudCAubmF2LWljb24rLm5hdi10ZXh0e3BhZGRpbmctbGVmdDowfS5jbHItdmVydGljYWwtbmF2IC5uYXYtZ3JvdXAtY29udGVudCAubmF2LWxpbmsrLm5hdi1ncm91cC10''@;'; + put 'put ''ZXh0e2Rpc3BsYXk6bm9uZX0uY2xyLXZlcnRpY2FsLW5hdiAubmF2LXRyaWdnZXIsLmNsci12ZXJ0aWNhbC1uYXYgLm5hdi1ncm91cC10cmlnZ2Vye2ZsZXg6MCAwIDEuOHJlbTtib3JkZXI6MDtoZWlnaHQ6MS44cmVtO3BhZGRpbmc6MDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2N1''@;'; + put 'put ''cnNvcjpwb2ludGVyO291dGxpbmUtb2Zmc2V0Oi0uMjVyZW19LmNsci12ZXJ0aWNhbC1uYXYgLm5hdi10cmlnZ2VyIGNkcy1pY29uW3NoYXBlPWFuZ2xlLWRvdWJsZV0sLmNsci12ZXJ0aWNhbC1uYXYgLm5hdi10cmlnZ2VyIGNsci1pY29uW3NoYXBlPWFuZ2xlLWRvdWJsZV0sLmNsci12ZXJ0''@;'; + put 'put ''aWNhbC1uYXYgLm5hdi1ncm91cC10cmlnZ2VyIGNkcy1pY29uW3NoYXBlPWFuZ2xlLWRvdWJsZV0sLmNsci12ZXJ0aWNhbC1uYXYgLm5hdi1ncm91cC10cmlnZ2VyIGNsci1pY29uW3NoYXBlPWFuZ2xlLWRvdWJsZV17Y29sb3I6IzAwMDtjb2xvcjp2YXIoLS1jbHItdmVydGljYWwtbmF2LXRv''@;'; + put 'put ''Z2dsZS1pY29uLWNvbG9yLCBibGFjayl9LmNsci12ZXJ0aWNhbC1uYXYgLm5hdi10cmlnZ2Vye2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnQ7aGVpZ2h0OjEuOHJlbTttYXJnaW4tdG9wOi0uOXJlbX0uY2xyLXZlcnRpY2FsLW5hdiAu''@;'; + put 'put ''bmF2LWdyb3VwLXRyaWdnZXJ7ZGlzcGxheTpmbGV4O2ZsZXg6MSAxIGF1dG87Y29sb3I6aW5oZXJpdDtvdmVyZmxvdzpoaWRkZW47dGV4dC1hbGlnbjpsZWZ0fS5jbHItdmVydGljYWwtbmF2IC5uYXYtZ3JvdXAtdHJpZ2dlciAubmF2LWdyb3VwLXRyaWdnZXItaWNvbntmbGV4LXNocmluazow''@;'; + put 'put ''O3dpZHRoOi44cmVtO2FsaWduLXNlbGY6Y2VudGVyO21hcmdpbi1yaWdodDouNXJlbTt0cmFuc2l0aW9uOmFsbCAuMnMgZWFzZS1pbi1vdXR9LmNsci12ZXJ0aWNhbC1uYXYgLm5hdi10cmlnZ2VyLWljb257bWFyZ2luLWxlZnQ6YXV0bzttYXJnaW4tcmlnaHQ6LjVyZW07dHJhbnNpdGlvbjph''@;'; + put 'put ''bGwgLjJzIGVhc2UtaW4tb3V0fS5jbHItdmVydGljYWwtbmF2IC5uYXYtdHJpZ2dlcisubmF2LWNvbnRlbnR7Ym9yZGVyLXRvcC1jb2xvcjojY2NjO2JvcmRlci10b3AtY29sb3I6dmFyKC0tY2xyLXZlcnRpY2FsLW5hdi10cmlnZ2VyLWRpdmlkZXItYm9yZGVyLWNvbG9yLCAjY2NjY2NjKTti''@;'; + put 'put ''b3JkZXItdG9wLXN0eWxlOnNvbGlkO2JvcmRlci10b3Atd2lkdGg6LjA1cmVtO2JvcmRlci10b3Atd2lkdGg6dmFyKC0tY2xyLXZlcnRpY2FsLW5hdi10cmlnZ2VyLWRpdmlkZXItYm9yZGVyLXdpZHRoLCAuMDVyZW0pO3BhZGRpbmctdG9wOi42cmVtfS5jbHItdmVydGljYWwtbmF2IC5uYXYt''@;'; + put 'put ''Z3JvdXAtdGV4dCwuY2xyLXZlcnRpY2FsLW5hdiAubmF2LWxpbmt7aGVpZ2h0OjEuOHJlbTtwYWRkaW5nOjAgLjZyZW0gMCAxLjJyZW07bGluZS1oZWlnaHQ6MS44cmVtO291dGxpbmUtb2Zmc2V0Oi0uMjVyZW19LmNsci12ZXJ0aWNhbC1uYXYgLm5hdi1ncm91cC10ZXh0LC5jbHItdmVydGlj''@;'; + put 'put ''YWwtbmF2IC5uYXYtdGV4dHtmbGV4OjEgMSBhdXRvO3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpc30uY2xyLXZlcnRpY2FsLW5hdiAubmF2LWxpbmt7ZGlzcGxheTpmbGV4O2NvbG9yOiM2NjY7Y29sb3I6dmFyKC0tY2xyLXZlcnRpY2Fs''@;'; + put 'put ''LW5hdi1pdGVtLWNvbG9yLCAjNjY2NjY2KX0uY2xyLXZlcnRpY2FsLW5hdiAubmF2LWxpbmsuYWN0aXZle2NvbG9yOiM2NjY7Y29sb3I6dmFyKC0tY2xyLXZlcnRpY2FsLW5hdi1pdGVtLWFjdGl2ZS1jb2xvciwgIzY2NjY2Nik7YmFja2dyb3VuZC1jb2xvcjojZmZmO2JhY2tncm91bmQtY29s''@;'; + put 'put ''b3I6dmFyKC0tY2xyLXZlcnRpY2FsLW5hdi1hY3RpdmUtYmctY29sb3IsIHdoaXRlKTtib3JkZXItbGVmdDouMTVyZW0gc29saWQgdmFyKC0tY2xyLW5hdi1hY3RpdmUtYm94LXNoYWRvdy1jb2xvcil9LmNsci12ZXJ0aWNhbC1uYXYgLm5hdi1saW5rLmFjdGl2ZSAubmF2LWljb257ZmlsbDoj''@;'; + put 'put ''MDA3MmEzO2ZpbGw6dmFyKC0tY2xyLXZlcnRpY2FsLW5hdi1pY29uLWFjdGl2ZS1jb2xvciwgIzAwNzJhMyl9LmNsci12ZXJ0aWNhbC1uYXYgLm5hdi1saW5rOmhvdmVye2NvbG9yOiM2NjY7Y29sb3I6dmFyKC0tY2xyLXZlcnRpY2FsLW5hdi1pdGVtLWFjdGl2ZS1jb2xvciwgIzY2NjY2Nik7''@;'; + put 'put ''YmFja2dyb3VuZC1jb2xvcjojY2NjO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLXZlcnRpY2FsLW5hdi1ob3Zlci1iZy1jb2xvciwgI2NjY2NjYyk7dGV4dC1kZWNvcmF0aW9uOm5vbmV9LmNsci12ZXJ0aWNhbC1uYXYgLm5hdi1oZWFkZXJ7cGFkZGluZzowIC42cmVtIDAgMS4ycmVtO2Zv''@;'; + put 'put ''bnQtc2l6ZTouNnJlbTtmb250LXdlaWdodDo2MDA7Zm9udC13ZWlnaHQ6dmFyKC0tY2xyLXZlcnRpY2FsLW5hdi1oZWFkZXItZm9udC13ZWlnaHQsIDYwMCk7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO2xpbmUtaGVpZ2h0OjEuOHJlbX0uY2xyLXZlcnRpY2FsLW5hdiAubmF2LWljb257ZmxleDow''@;'; + put 'put ''IDAgLjhyZW07YWxpZ24tc2VsZjpjZW50ZXI7aGVpZ2h0Oi44cmVtO3dpZHRoOi44cmVtO21pbi1oZWlnaHQ6LjhyZW07bWluLXdpZHRoOi44cmVtO21hcmdpbi1yaWdodDouM3JlbTt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9LmNsci12ZXJ0aWNhbC1uYXYgY2xyLXZlcnRpY2FsLW5hdi1ncm91''@;'; + put 'put ''cC1jaGlsZHJlbntkaXNwbGF5OmJsb2NrfS5jbHItdmVydGljYWwtbmF2IC5uYXYtYnRue2ZsZXg6MSAxIGF1dG87cGFkZGluZzowO21hcmdpbjowO2JhY2tncm91bmQ6MCAwO2JvcmRlcjowO2N1cnNvcjpwb2ludGVyO291dGxpbmUtb2Zmc2V0Oi0uMjVyZW19LmNsci12ZXJ0aWNhbC1uYXY+''@;'; + put 'put ''Lm5hdi1saW5rLC5jbHItdmVydGljYWwtbmF2IC5uYXYtY29udGVudD4ubmF2LWxpbmt7ZmxleDowIDAgMS44cmVtfS5jbHItdmVydGljYWwtbmF2IC5uYXYtbGluaysubmF2LWdyb3VwLXRyaWdnZXJ7ZmxleDowIDAgMS44cmVtfS5jbHItdmVydGljYWwtbmF2IC5uYXYtbGluaysubmF2LWdy''@;'; + put 'put ''b3VwLXRyaWdnZXIgLm5hdi1ncm91cC10ZXh0e2Rpc3BsYXk6bm9uZX0uY2xyLXZlcnRpY2FsLW5hdiAubmF2LWljb24rLm5hdi1ncm91cC10ZXh0e3BhZGRpbmctbGVmdDowfS5jbHItdmVydGljYWwtbmF2Lmhhcy1uYXYtZ3JvdXBzIC5uYXYtbGluaywuY2xyLXZlcnRpY2FsLW5hdi5oYXMt''@;'; + put 'put ''bmF2LWdyb3VwcyAubmF2LWdyb3VwIC5uYXYtZ3JvdXAtdGV4dCwuY2xyLXZlcnRpY2FsLW5hdi5oYXMtbmF2LWdyb3VwcyAubmF2LWdyb3VwIC5uYXYtZ3JvdXAtdHJpZ2dlcntmb250LXdlaWdodDo2MDB9LmNsci12ZXJ0aWNhbC1uYXYuaGFzLW5hdi1ncm91cHMgLm5hdi1ncm91cC1jaGls''@;'; + put 'put ''ZHJlbiAubmF2LWxpbmt7Zm9udC13ZWlnaHQ6NDAwfS5jbHItdmVydGljYWwtbmF2Lmhhcy1pY29ucyAubmF2LWdyb3VwLWNoaWxkcmVuIC5uYXYtbGlua3twYWRkaW5nLWxlZnQ6Mi4zcmVtfS5jbHItdmVydGljYWwtbmF2IC5uYXYtZ3JvdXAuYWN0aXZlOm5vdCguaXMtZXhwYW5kZWQpIC5u''@;'; + put 'put ''YXYtZ3JvdXAtY29udGVudHtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItdmVydGljYWwtbmF2LWFjdGl2ZS1iZy1jb2xvciwgd2hpdGUpO2JvcmRlci1sZWZ0Oi4xNXJlbSBzb2xpZCB2YXIoLS1jbHItbmF2LWFjdGl2ZS1ib3gtc2hhZG93LWNvbG9y''@;'; + put 'put ''KX0uY2xyLXZlcnRpY2FsLW5hdiAubmF2LWdyb3VwLmFjdGl2ZTpub3QoLmlzLWV4cGFuZGVkKSAubmF2LWdyb3VwLWNvbnRlbnQgLm5hdi1pY29ue2ZpbGw6IzAwNzJhMztmaWxsOnZhcigtLWNsci12ZXJ0aWNhbC1uYXYtaWNvbi1hY3RpdmUtY29sb3IsICMwMDcyYTMpfS5jbHItdmVydGlj''@;'; + put 'put ''YWwtbmF2IC5uYXYtZ3JvdXAtY29udGVudCAubmF2LWxpbmsuYWN0aXZlfi5uYXYtZ3JvdXAtdHJpZ2dlcntiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItdmVydGljYWwtbmF2LWFjdGl2ZS1iZy1jb2xvciwgd2hpdGUpfS5jbHItdmVydGljYWwtbmF2''@;'; + put 'put ''IC5uYXYtZ3JvdXAtY29udGVudCAubmF2LWxpbms6aG92ZXJ+Lm5hdi1ncm91cC10cmlnZ2Vye2JhY2tncm91bmQtY29sb3I6I2NjYztiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci12ZXJ0aWNhbC1uYXYtaG92ZXItYmctY29sb3IsICNjY2NjY2MpfS5jbHItdmVydGljYWwtbmF2Om5vdCgu''@;'; + put 'put ''aXMtY29sbGFwc2VkKSAubmF2LWxpbmsrLm5hdi1ncm91cC10cmlnZ2Vye2p1c3RpZnktY29udGVudDpjZW50ZXJ9Lm1haW4tY29udGFpbmVyOm5vdChbY2xhc3MqPW9wZW4tb3ZlcmZsb3ctbWVudV0pOm5vdChbY2xhc3MqPW9wZW4taGFtYnVyZ2VyLW1lbnVdKSAuY2xyLXZlcnRpY2FsLW5h''@;'; + put 'put ''di5pcy1jb2xsYXBzZWR7d2lkdGg6Mi40cmVtO21pbi13aWR0aDoyLjRyZW07Y3Vyc29yOnBvaW50ZXJ9Lm1haW4tY29udGFpbmVyOm5vdChbY2xhc3MqPW9wZW4tb3ZlcmZsb3ctbWVudV0pOm5vdChbY2xhc3MqPW9wZW4taGFtYnVyZ2VyLW1lbnVdKSAuY2xyLXZlcnRpY2FsLW5hdi5pcy1j''@;'; + put 'put ''b2xsYXBzZWQgLm5hdi10cmlnZ2Vye21hcmdpbi1yaWdodDouMTVyZW19Lm1haW4tY29udGFpbmVyOm5vdChbY2xhc3MqPW9wZW4tb3ZlcmZsb3ctbWVudV0pOm5vdChbY2xhc3MqPW9wZW4taGFtYnVyZ2VyLW1lbnVdKSAuY2xyLXZlcnRpY2FsLW5hdi5pcy1jb2xsYXBzZWQgLm5hdi1pY29u''@;'; + put 'put ''e21hcmdpbjowO21hcmdpbi1sZWZ0Oi44cmVtfS5tYWluLWNvbnRhaW5lcjpub3QoW2NsYXNzKj1vcGVuLW92ZXJmbG93LW1lbnVdKTpub3QoW2NsYXNzKj1vcGVuLWhhbWJ1cmdlci1tZW51XSkgLmNsci12ZXJ0aWNhbC1uYXYuaXMtY29sbGFwc2VkIC5uYXYtZ3JvdXAtY29udGVudCAubmF2''@;'; + put 'put ''LWxpbmt7ZmxleDowIDAgMi40cmVtfS5tYWluLWNvbnRhaW5lcjpub3QoW2NsYXNzKj1vcGVuLW92ZXJmbG93LW1lbnVdKTpub3QoW2NsYXNzKj1vcGVuLWhhbWJ1cmdlci1tZW51XSkgLmNsci12ZXJ0aWNhbC1uYXYuaXMtY29sbGFwc2VkIC5uYXYtZ3JvdXAtY29udGVudCAubmF2LWxpbmt+''@;'; + put 'put ''Lm5hdi1ncm91cC10cmlnZ2Vye2ZsZXg6MCAwIC44cmVtO3RyYW5zZm9ybTp0cmFuc2xhdGUoLS44cmVtKTtwb2ludGVyLWV2ZW50czpub25lfS5tYWluLWNvbnRhaW5lcjpub3QoW2NsYXNzKj1vcGVuLW92ZXJmbG93LW1lbnVdKTpub3QoW2NsYXNzKj1vcGVuLWhhbWJ1cmdlci1tZW51XSkg''@;'; + put 'put ''LmNsci12ZXJ0aWNhbC1uYXYuaXMtY29sbGFwc2VkIC5uYXYtbGluaywubWFpbi1jb250YWluZXI6bm90KFtjbGFzcyo9b3Blbi1vdmVyZmxvdy1tZW51XSk6bm90KFtjbGFzcyo9b3Blbi1oYW1idXJnZXItbWVudV0pIC5jbHItdmVydGljYWwtbmF2LmlzLWNvbGxhcHNlZCAubmF2LWdyb3Vw''@;'; + put 'put ''LXRyaWdnZXJ7cGFkZGluZzowfS5tYWluLWNvbnRhaW5lcjpub3QoW2NsYXNzKj1vcGVuLW92ZXJmbG93LW1lbnVdKTpub3QoW2NsYXNzKj1vcGVuLWhhbWJ1cmdlci1tZW51XSkgLmNsci12ZXJ0aWNhbC1uYXYuaXMtY29sbGFwc2VkIC5uYXYtZ3JvdXAtdHJpZ2dlcntwYWRkaW5nLWxlZnQ6''@;'; + put 'put ''MH0ubWFpbi1jb250YWluZXI6bm90KFtjbGFzcyo9b3Blbi1vdmVyZmxvdy1tZW51XSk6bm90KFtjbGFzcyo9b3Blbi1oYW1idXJnZXItbWVudV0pIC5jbHItdmVydGljYWwtbmF2LmlzLWNvbGxhcHNlZCAubmF2LWdyb3VwLXRyaWdnZXIgY2xyLWljb24ubmF2LWdyb3VwLXRyaWdnZXItaWNv''@;'; + put 'put ''bntoZWlnaHQ6MS44cmVtO3dpZHRoOi41cmVtO21hcmdpbi1sZWZ0Oi4xNXJlbTttYXJnaW4tcmlnaHQ6MH0ubWFpbi1jb250YWluZXI6bm90KFtjbGFzcyo9b3Blbi1vdmVyZmxvdy1tZW51XSk6bm90KFtjbGFzcyo9b3Blbi1oYW1idXJnZXItbWVudV0pIC5jbHItdmVydGljYWwtbmF2Lmlz''@;'; + put 'put ''LWNvbGxhcHNlZCAubmF2LWdyb3VwLXRyaWdnZXIgY2RzLWljb24ubmF2LWdyb3VwLXRyaWdnZXItaWNvbnt3aWR0aDouNXJlbX0ubWFpbi1jb250YWluZXI6bm90KFtjbGFzcyo9b3Blbi1vdmVyZmxvdy1tZW51XSk6bm90KFtjbGFzcyo9b3Blbi1oYW1idXJnZXItbWVudV0pIC5jbHItdmVy''@;'; + put 'put ''dGljYWwtbmF2LmlzLWNvbGxhcHNlZCAubmF2LWdyb3VwLC5tYWluLWNvbnRhaW5lcjpub3QoW2NsYXNzKj1vcGVuLW92ZXJmbG93LW1lbnVdKTpub3QoW2NsYXNzKj1vcGVuLWhhbWJ1cmdlci1tZW51XSkgLmNsci12ZXJ0aWNhbC1uYXYuaXMtY29sbGFwc2VkIC5uYXYtbGlua3tkaXNwbGF5''@;'; + put 'put ''Om5vbmV9Lm1haW4tY29udGFpbmVyOm5vdChbY2xhc3MqPW9wZW4tb3ZlcmZsb3ctbWVudV0pOm5vdChbY2xhc3MqPW9wZW4taGFtYnVyZ2VyLW1lbnVdKSAuY2xyLXZlcnRpY2FsLW5hdi5pcy1jb2xsYXBzZWQuaGFzLWljb25zIC5uYXYtZ3JvdXB7ZGlzcGxheTpibG9ja30ubWFpbi1jb250''@;'; + put 'put ''YWluZXI6bm90KFtjbGFzcyo9b3Blbi1vdmVyZmxvdy1tZW51XSk6bm90KFtjbGFzcyo9b3Blbi1oYW1idXJnZXItbWVudV0pIC5jbHItdmVydGljYWwtbmF2LmlzLWNvbGxhcHNlZC5oYXMtaWNvbnMgLm5hdi1saW5re2Rpc3BsYXk6ZmxleH0ubWFpbi1jb250YWluZXI6bm90KFtjbGFzcyo9''@;'; + put 'put ''b3Blbi1vdmVyZmxvdy1tZW51XSk6bm90KFtjbGFzcyo9b3Blbi1oYW1idXJnZXItbWVudV0pIC5jbHItdmVydGljYWwtbmF2LmlzLWNvbGxhcHNlZC5oYXMtaWNvbnMgLm5hdi1ncm91cC10ZXh0LC5tYWluLWNvbnRhaW5lcjpub3QoW2NsYXNzKj1vcGVuLW92ZXJmbG93LW1lbnVdKTpub3Qo''@;'; + put 'put ''W2NsYXNzKj1vcGVuLWhhbWJ1cmdlci1tZW51XSkgLmNsci12ZXJ0aWNhbC1uYXYuaXMtY29sbGFwc2VkLmhhcy1pY29ucyAubmF2LXRleHR7cG9zaXRpb246YWJzb2x1dGU7Y2xpcDpyZWN0KDFweCwxcHgsMXB4LDFweCk7Y2xpcC1wYXRoOmluc2V0KDUwJSk7cGFkZGluZzowO2JvcmRlcjow''@;'; + put 'put ''O2hlaWdodDoxcHg7d2lkdGg6MXB4O292ZXJmbG93OmhpZGRlbjt3aGl0ZS1zcGFjZTpub3dyYXA7dG9wOjA7bGVmdDowfS5jbHItdmVydGljYWwtbmF2Lm5hdi10cmlnZ2VyLS1ib3R0b20gLm5hdi10cmlnZ2Vye29yZGVyOjI7bWFyZ2luLXRvcDowfS5jbHItdmVydGljYWwtbmF2Lm5hdi10''@;'; + put 'put ''cmlnZ2VyLS1ib3R0b20gLm5hdi10cmlnZ2VyKy5uYXYtY29udGVudHtib3JkZXItYm90dG9tLWNvbG9yOiNjY2M7Ym9yZGVyLWJvdHRvbS1jb2xvcjp2YXIoLS1jbHItdmVydGljYWwtbmF2LXRyaWdnZXItZGl2aWRlci1ib3JkZXItY29sb3IsICNjY2NjY2MpO2JvcmRlci1ib3R0b20tc3R5''@;'; + put 'put ''bGU6c29saWQ7Ym9yZGVyLWJvdHRvbS13aWR0aDouMDVyZW07Ym9yZGVyLWJvdHRvbS13aWR0aDp2YXIoLS1jbHItdmVydGljYWwtbmF2LXRyaWdnZXItZGl2aWRlci1ib3JkZXItd2lkdGgsIC4wNXJlbSk7Ym9yZGVyLXRvcDpub25lO3BhZGRpbmctdG9wOjB9OnJvb3R7LS1jbHItc2xpZGlu''@;'; + put 'put ''Zy1wYW5lbC10ZXh0LWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTcwMCk7LS1jbHItbmF2LWJhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtMjAwKTstLWNsci1yZXNwb25zaXZlLW5hdi1ob3Zlci1iZzp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC0wKTstLWNs''@;'; + put 'put ''ci1yZXNwb25zaXZlLW5hdi10cmlnZ2VyLWJnLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTApOy0tY2xyLXJlc3BvbnNpdmUtbmF2LXRyaWdnZXItYm9yZGVyLXJhZGl1czp2YXIoLS1jbHItZ2xvYmFsLWJvcmRlcnJhZGl1cyk7LS1jbHItcmVzcG9uc2l2ZS1uYXYtaGFtYnVyZ2Vy''@;'; + put 'put ''LWJvcmRlci1yYWRpdXM6dmFyKC0tY2xyLXJlc3BvbnNpdmUtbmF2LXRyaWdnZXItYm9yZGVyLXJhZGl1cyk7LS1jbHItcmVzcG9uc2l2ZS1uYXYtb3ZlcmZsb3ctYm9yZGVyLXJhZGl1czouMnJlbTstLWNsci1yZXNwb25zaXZlLW5hdi1oZWFkZXItYmFja2Ryb3AtYmctY29sb3I6dmFyKC0t''@;'; + put 'put ''Y2xyLWNvbG9yLW5ldXRyYWwtMTAwMCk7LS1jbHItcmVzcG9uc2l2ZS1uYXYtaGVhZGVyLWJhY2tkcm9wLW9wYWNpdHk6Ljg1fS5jbHItbmF2LWNsb3Nle21hcmdpbjouNzVyZW07LS1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC01MDApfS5jbHItbmF2LWNsb3NlOmhvdmVyLC5jbHIt''@;'; + put 'put ''bmF2LWNsb3NlOmZvY3Vzey0tY29sb3I6dmFyKC0tY2xyLXJlc3BvbnNpdmUtbmF2LXRyaWdnZXItYmctY29sb3IpfS5oZWFkZXItaGFtYnVyZ2VyLXRyaWdnZXIsLmhlYWRlci1vdmVyZmxvdy10cmlnZ2Vye2Rpc3BsYXk6bm9uZX0uaGVhZGVyLWhhbWJ1cmdlci10cmlnZ2VyPnNwYW4sLmhl''@;'; + put 'put ''YWRlci1oYW1idXJnZXItdHJpZ2dlcj5zcGFuOmJlZm9yZSwuaGVhZGVyLWhhbWJ1cmdlci10cmlnZ2VyPnNwYW46YWZ0ZXIsLmNsci1uYXYtY2xvc2U+c3BhbiwuY2xyLW5hdi1jbG9zZT5zcGFuOmJlZm9yZSwuY2xyLW5hdi1jbG9zZT5zcGFuOmFmdGVye2Rpc3BsYXk6aW5saW5lLWJsb2Nr''@;'; + put 'put ''O2hlaWdodDouMXJlbTt3aWR0aDoxLjJyZW07YmFja2dyb3VuZDojZmZmO2JhY2tncm91bmQ6dmFyKC0tY2xyLXJlc3BvbnNpdmUtbmF2LXRyaWdnZXItYmctY29sb3IsIHdoaXRlKTtib3JkZXItcmFkaXVzOi4xNXJlbTtib3JkZXItcmFkaXVzOnZhcigtLWNsci1yZXNwb25zaXZlLW5hdi1o''@;'; + put 'put ''YW1idXJnZXItYm9yZGVyLXJhZGl1cywgLjE1cmVtKX0uaGVhZGVyLWhhbWJ1cmdlci10cmlnZ2VyPnNwYW4sLmNsci1uYXYtY2xvc2U+c3Bhbntwb3NpdGlvbjpyZWxhdGl2ZTt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9LmhlYWRlci1oYW1idXJnZXItdHJpZ2dlcj5zcGFuOmJlZm9yZSwuaGVh''@;'; + put 'put ''ZGVyLWhhbWJ1cmdlci10cmlnZ2VyPnNwYW46YWZ0ZXIsLmNsci1uYXYtY2xvc2U+c3BhbjpiZWZvcmUsLmNsci1uYXYtY2xvc2U+c3BhbjphZnRlcntjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MH0uaGVhZGVyLWhhbWJ1cmdlci10cmlnZ2VyPnNwYW46YmVmb3JlLC5jbHIt''@;'; + put 'put ''bmF2LWNsb3NlPnNwYW46YmVmb3Jle3RvcDotLjM1cmVtfS5oZWFkZXItaGFtYnVyZ2VyLXRyaWdnZXI+c3BhbjphZnRlciwuY2xyLW5hdi1jbG9zZT5zcGFuOmFmdGVye2JvdHRvbTotLjM1cmVtfS5oZWFkZXItaGFtYnVyZ2VyLXRyaWdnZXIuYWN0aXZlPnNwYW4sLmNsci1uYXYtY2xvc2Uu''@;'; + put 'put ''YWN0aXZlPnNwYW57YmFja2dyb3VuZDowIDB9LmhlYWRlci1oYW1idXJnZXItdHJpZ2dlci5hY3RpdmU+c3BhbjpiZWZvcmUsLmhlYWRlci1oYW1idXJnZXItdHJpZ2dlci5hY3RpdmU+c3BhbjphZnRlciwuY2xyLW5hdi1jbG9zZS5hY3RpdmU+c3BhbjpiZWZvcmUsLmNsci1uYXYtY2xvc2Uu''@;'; + put 'put ''YWN0aXZlPnNwYW46YWZ0ZXJ7bGVmdDouMTVyZW07dHJhbnNmb3JtLW9yaWdpbjo5JTt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuNnMgZWFzZX0uaGVhZGVyLWhhbWJ1cmdlci10cmlnZ2VyLmFjdGl2ZT5zcGFuOmJlZm9yZSwuY2xyLW5hdi1jbG9zZS5hY3RpdmU+c3BhbjpiZWZvcmV7dHJhbnNm''@;'; + put 'put ''b3JtOnJvdGF0ZSg0NWRlZyl9LmhlYWRlci1oYW1idXJnZXItdHJpZ2dlci5hY3RpdmU+c3BhbjphZnRlciwuY2xyLW5hdi1jbG9zZS5hY3RpdmU+c3BhbjphZnRlcnt0cmFuc2Zvcm06cm90YXRlKC00NWRlZyl9LmhlYWRlci1vdmVyZmxvdy10cmlnZ2VyPnNwYW4sLmhlYWRlci1vdmVyZmxv''@;'; + put 'put ''dy10cmlnZ2VyPnNwYW46YmVmb3JlLC5oZWFkZXItb3ZlcmZsb3ctdHJpZ2dlcj5zcGFuOmFmdGVyLC5jbHItbmF2LWNsb3NlPnNwYW4sLmNsci1uYXYtY2xvc2U+c3BhbjpiZWZvcmUsLmNsci1uYXYtY2xvc2U+c3BhbjphZnRlcntkaXNwbGF5OmlubGluZS1ibG9jaztoZWlnaHQ6LjJyZW07''@;'; + put 'put ''d2lkdGg6LjJyZW07YmFja2dyb3VuZDojZmZmO2JhY2tncm91bmQ6dmFyKC0tY2xyLXJlc3BvbnNpdmUtbmF2LXRyaWdnZXItYmctY29sb3IsIHdoaXRlKTtib3JkZXItcmFkaXVzOi4ycmVtO2JvcmRlci1yYWRpdXM6dmFyKC0tY2xyLXJlc3BvbnNpdmUtbmF2LW92ZXJmbG93LWJvcmRlci1y''@;'; + put 'put ''YWRpdXMsIC4ycmVtKX0uaGVhZGVyLW92ZXJmbG93LXRyaWdnZXI+c3BhbiwuY2xyLW5hdi1jbG9zZT5zcGFue3Bvc2l0aW9uOnJlbGF0aXZlO3ZlcnRpY2FsLWFsaWduOm1pZGRsZX0uaGVhZGVyLW92ZXJmbG93LXRyaWdnZXI+c3BhbjpiZWZvcmUsLmhlYWRlci1vdmVyZmxvdy10cmlnZ2Vy''@;'; + put 'put ''PnNwYW46YWZ0ZXIsLmNsci1uYXYtY2xvc2U+c3BhbjpiZWZvcmUsLmNsci1uYXYtY2xvc2U+c3BhbjphZnRlcntjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MH0uaGVhZGVyLW92ZXJmbG93LXRyaWdnZXI+c3BhbjpiZWZvcmUsLmNsci1uYXYtY2xvc2U+c3BhbjpiZWZvcmV7''@;'; + put 'put ''dG9wOi0uNHJlbX0uaGVhZGVyLW92ZXJmbG93LXRyaWdnZXI+c3BhbjphZnRlciwuY2xyLW5hdi1jbG9zZT5zcGFuOmFmdGVye2JvdHRvbTotLjRyZW19LmhlYWRlci1vdmVyZmxvdy10cmlnZ2VyLmFjdGl2ZT5zcGFuLC5jbHItbmF2LWNsb3NlLmFjdGl2ZT5zcGFue2JhY2tncm91bmQ6MCAw''@;'; + put 'put ''fS5oZWFkZXItb3ZlcmZsb3ctdHJpZ2dlci5hY3RpdmU+c3BhbjpiZWZvcmUsLmhlYWRlci1vdmVyZmxvdy10cmlnZ2VyLmFjdGl2ZT5zcGFuOmFmdGVyLC5jbHItbmF2LWNsb3NlLmFjdGl2ZT5zcGFuOmJlZm9yZSwuY2xyLW5hdi1jbG9zZS5hY3RpdmU+c3BhbjphZnRlcntoZWlnaHQ6LjFy''@;'; + put 'put ''ZW07d2lkdGg6MS4ycmVtO2xlZnQ6LS4zcmVtO3RyYW5zZm9ybS1vcmlnaW46LTMlO3RyYW5zaXRpb246dHJhbnNmb3JtIC42cyBlYXNlfS5oZWFkZXItb3ZlcmZsb3ctdHJpZ2dlci5hY3RpdmU+c3BhbjpiZWZvcmUsLmNsci1uYXYtY2xvc2UuYWN0aXZlPnNwYW46YmVmb3Jle3RyYW5zZm9y''@;'; + put 'put ''bTpyb3RhdGUoNDVkZWcpfS5oZWFkZXItb3ZlcmZsb3ctdHJpZ2dlci5hY3RpdmU+c3BhbjphZnRlciwuY2xyLW5hdi1jbG9zZS5hY3RpdmU+c3BhbjphZnRlcnt0cmFuc2Zvcm06cm90YXRlKC00NWRlZyl9QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDo3NjhweCl7Lm1haW4tY29udGFp''@;'; + put 'put ''bmVyIC5oZWFkZXItaGFtYnVyZ2VyLXRyaWdnZXIsLm1haW4tY29udGFpbmVyIC5oZWFkZXItb3ZlcmZsb3ctdHJpZ2dlcntkaXNwbGF5OmlubGluZS1ibG9jaztib3JkZXI6MDtiYWNrZ3JvdW5kOjAgMDtjdXJzb3I6cG9pbnRlcjtmb250LXNpemU6MS4ycmVtO2hlaWdodDozcmVtO3dpZHRo''@;'; + put 'put ''OjNyZW07cGFkZGluZzowIDAgLjJyZW07dGV4dC1hbGlnbjpjZW50ZXI7d2hpdGUtc3BhY2U6bm93cmFwO2NvbG9yOiNmYWZhZmE7Y29sb3I6dmFyKC0tY2xyLWhlYWRlci1mb250LWNvbG9yLCAjZmFmYWZhKTtvcGFjaXR5Oi42NTtvcGFjaXR5OnZhcigtLWNsci1oZWFkZXItbmF2LW9wYWNp''@;'; + put 'put ''dHksIC42NSl9Lm1haW4tY29udGFpbmVyIC5oZWFkZXItaGFtYnVyZ2VyLXRyaWdnZXI6Zm9jdXMsLm1haW4tY29udGFpbmVyIC5oZWFkZXItb3ZlcmZsb3ctdHJpZ2dlcjpmb2N1c3tvdXRsaW5lLW9mZnNldDotLjI1cmVtfS5tYWluLWNvbnRhaW5lciAuaGVhZGVyLWhhbWJ1cmdlci10cmln''@;'; + put 'put ''Z2VyOmVuYWJsZWQ6aG92ZXIsLm1haW4tY29udGFpbmVyIC5oZWFkZXItb3ZlcmZsb3ctdHJpZ2dlcjplbmFibGVkOmhvdmVye29wYWNpdHk6MTtvcGFjaXR5OnZhcigtLWNsci1oZWFkZXItbmF2LWhvdmVyLW9wYWNpdHksIDEpfS5tYWluLWNvbnRhaW5lciAuaGVhZGVyLWhhbWJ1cmdlci10''@;'; + put 'put ''cmlnZ2VyOmRpc2FibGVkLC5tYWluLWNvbnRhaW5lciAuaGVhZGVyLW92ZXJmbG93LXRyaWdnZXI6ZGlzYWJsZWR7Y3Vyc29yOm5vdC1hbGxvd2VkfS5tYWluLWNvbnRhaW5lciAuaGVhZGVyLW5hdi5jbHItbmF2LWxldmVsLTEsLm1haW4tY29udGFpbmVyIC5zdWJuYXYuY2xyLW5hdi1sZXZl''@;'; + put 'put ''bC0xLC5tYWluLWNvbnRhaW5lciAuc3ViLW5hdi5jbHItbmF2LWxldmVsLTEsLm1haW4tY29udGFpbmVyIC5zaWRlbmF2LmNsci1uYXYtbGV2ZWwtMSwubWFpbi1jb250YWluZXIgLmNsci12ZXJ0aWNhbC1uYXYuY2xyLW5hdi1sZXZlbC0xe2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpj''@;'; + put 'put ''b2x1bW47cG9zaXRpb246Zml4ZWQ7dG9wOjA7cmlnaHQ6YXV0bztib3R0b206MDtsZWZ0OjA7YmFja2dyb3VuZDojZThlOGU4O2JhY2tncm91bmQ6dmFyKC0tY2xyLW5hdi1iYWNrZ3JvdW5kLWNvbG9yLCAjZThlOGU4KTt6LWluZGV4OjEwMzk7aGVpZ2h0OjEwMHZoO3RyYW5zZm9ybTp0cmFu''@;'; + put 'put ''c2xhdGUoLTE4cmVtKTt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuM3MgZWFzZX0ubWFpbi1jb250YWluZXIgLmhlYWRlci1uYXYuY2xyLW5hdi1sZXZlbC0yLC5tYWluLWNvbnRhaW5lciAuc3VibmF2LmNsci1uYXYtbGV2ZWwtMiwubWFpbi1jb250YWluZXIgLnN1Yi1uYXYuY2xyLW5hdi1sZXZl''@;'; + put 'put ''bC0yLC5tYWluLWNvbnRhaW5lciAuc2lkZW5hdi5jbHItbmF2LWxldmVsLTIsLm1haW4tY29udGFpbmVyIC5jbHItdmVydGljYWwtbmF2LmNsci1uYXYtbGV2ZWwtMntkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO3Bvc2l0aW9uOmZpeGVkO3RvcDowO3JpZ2h0OjA7Ym90dG9t''@;'; + put 'put ''OjA7bGVmdDphdXRvO2JhY2tncm91bmQ6I2U4ZThlODtiYWNrZ3JvdW5kOnZhcigtLWNsci1uYXYtYmFja2dyb3VuZC1jb2xvciwgI2U4ZThlOCk7ei1pbmRleDoxMDM5O2hlaWdodDoxMDB2aDt0cmFuc2Zvcm06dHJhbnNsYXRlKDE4cmVtKTt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuM3MgZWFz''@;'; + put 'put ''ZX0ubWFpbi1jb250YWluZXIgLnNpZGVuYXYuY2xyLW5hdi1sZXZlbC0ye292ZXJmbG93OmluaGVyaXR9Lm1haW4tY29udGFpbmVyIC5zdWJuYXYuY2xyLW5hdi1sZXZlbC0xIC5uYXYsLm1haW4tY29udGFpbmVyIC5zdWJuYXYuY2xyLW5hdi1sZXZlbC0xIGFzaWRlLC5tYWluLWNvbnRhaW5l''@;'; + put 'put ''ciAuc3ViLW5hdi5jbHItbmF2LWxldmVsLTEgLm5hdiwubWFpbi1jb250YWluZXIgLnN1Yi1uYXYuY2xyLW5hdi1sZXZlbC0xIGFzaWRlLC5tYWluLWNvbnRhaW5lciAuc3VibmF2LmNsci1uYXYtbGV2ZWwtMiAubmF2LC5tYWluLWNvbnRhaW5lciAuc3VibmF2LmNsci1uYXYtbGV2ZWwtMiBh''@;'; + put 'put ''c2lkZSwubWFpbi1jb250YWluZXIgLnN1Yi1uYXYuY2xyLW5hdi1sZXZlbC0yIC5uYXYsLm1haW4tY29udGFpbmVyIC5zdWItbmF2LmNsci1uYXYtbGV2ZWwtMiBhc2lkZXtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24taXRlbXM6c3RyZXRjaH0ubWFpbi1jb250YWluZXIgLnN1Ym5hdi5j''@;'; + put 'put ''bHItbmF2LWxldmVsLTEgYXNpZGUsLm1haW4tY29udGFpbmVyIC5zdWItbmF2LmNsci1uYXYtbGV2ZWwtMSBhc2lkZSwubWFpbi1jb250YWluZXIgLnN1Ym5hdi5jbHItbmF2LWxldmVsLTIgYXNpZGUsLm1haW4tY29udGFpbmVyIC5zdWItbmF2LmNsci1uYXYtbGV2ZWwtMiBhc2lkZXtqdXN0''@;'; + put 'put ''aWZ5LWNvbnRlbnQ6Y2VudGVyO3dpZHRoOjEwMCV9Lm1haW4tY29udGFpbmVyIC5zdWJuYXYuY2xyLW5hdi1sZXZlbC0xIC5uYXYsLm1haW4tY29udGFpbmVyIC5zdWItbmF2LmNsci1uYXYtbGV2ZWwtMSAubmF2LC5tYWluLWNvbnRhaW5lciAuc3VibmF2LmNsci1uYXYtbGV2ZWwtMiAubmF2''@;'; + put 'put ''LC5tYWluLWNvbnRhaW5lciAuc3ViLW5hdi5jbHItbmF2LWxldmVsLTIgLm5hdntwYWRkaW5nLWxlZnQ6MH0ubWFpbi1jb250YWluZXIgLnN1Ym5hdi5jbHItbmF2LWxldmVsLTEgLm5hdiAubmF2LWl0ZW0sLm1haW4tY29udGFpbmVyIC5zdWItbmF2LmNsci1uYXYtbGV2ZWwtMSAubmF2IC5u''@;'; + put 'put ''YXYtaXRlbSwubWFpbi1jb250YWluZXIgLnN1Ym5hdi5jbHItbmF2LWxldmVsLTIgLm5hdiAubmF2LWl0ZW0sLm1haW4tY29udGFpbmVyIC5zdWItbmF2LmNsci1uYXYtbGV2ZWwtMiAubmF2IC5uYXYtaXRlbXtoZWlnaHQ6MS44cmVtO21hcmdpbi1yaWdodDowfS5tYWluLWNvbnRhaW5lciAu''@;'; + put 'put ''c3VibmF2LmNsci1uYXYtbGV2ZWwtMSAubmF2IC5uYXYtbGluaywubWFpbi1jb250YWluZXIgLnN1Yi1uYXYuY2xyLW5hdi1sZXZlbC0xIC5uYXYgLm5hdi1saW5rLC5tYWluLWNvbnRhaW5lciAuc3VibmF2LmNsci1uYXYtbGV2ZWwtMiAubmF2IC5uYXYtbGluaywubWFpbi1jb250YWluZXIg''@;'; + put 'put ''LnN1Yi1uYXYuY2xyLW5hdi1sZXZlbC0yIC5uYXYgLm5hdi1saW5re3BhZGRpbmc6MCAuNnJlbSAwIDEuMnJlbTt3aWR0aDoxMDAlO21heC13aWR0aDoxMDAlO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2JvcmRlci1yYWRpdXM6MDtib3JkZXItdG9wLWxlZnQtcmFk''@;'; + put 'put ''aXVzOi4xNXJlbTtib3JkZXItdG9wLWxlZnQtcmFkaXVzOnZhcigtLWNsci1nbG9iYWwtYm9yZGVycmFkaXVzLCAuMTVyZW0pO2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6LjE1cmVtO2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6dmFyKC0tY2xyLWdsb2JhbC1ib3JkZXJyYWRpdXMsIC4x''@;'; + put 'put ''NXJlbSk7Y29sb3I6IzY2Njtjb2xvcjp2YXIoLS1jbHItdmVydGljYWwtbmF2LWl0ZW0tY29sb3IsICM2NjY2NjYpfS5tYWluLWNvbnRhaW5lciAuc3VibmF2LmNsci1uYXYtbGV2ZWwtMSAubmF2IC5uYXYtbGluay5hY3RpdmUsLm1haW4tY29udGFpbmVyIC5zdWItbmF2LmNsci1uYXYtbGV2''@;'; + put 'put ''ZWwtMSAubmF2IC5uYXYtbGluay5hY3RpdmUsLm1haW4tY29udGFpbmVyIC5zdWJuYXYuY2xyLW5hdi1sZXZlbC0yIC5uYXYgLm5hdi1saW5rLmFjdGl2ZSwubWFpbi1jb250YWluZXIgLnN1Yi1uYXYuY2xyLW5hdi1sZXZlbC0yIC5uYXYgLm5hdi1saW5rLmFjdGl2ZXtjb2xvcjojNjY2O2Nv''@;'; + put 'put ''bG9yOnZhcigtLWNsci12ZXJ0aWNhbC1uYXYtaXRlbS1hY3RpdmUtY29sb3IsICM2NjY2NjYpO2JhY2tncm91bmQtY29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci12ZXJ0aWNhbC1uYXYtYWN0aXZlLWJnLWNvbG9yLCB3aGl0ZSk7Ym9yZGVyLWxlZnQ6LjE1cmVtIHNvbGlk''@;'; + put 'put ''IHZhcigtLWNsci1uYXYtYWN0aXZlLWJveC1zaGFkb3ctY29sb3IpfS5tYWluLWNvbnRhaW5lciAuc3VibmF2LmNsci1uYXYtbGV2ZWwtMSAubmF2IC5uYXYtbGluay5hY3RpdmUgLm5hdi1pY29uLC5tYWluLWNvbnRhaW5lciAuc3ViLW5hdi5jbHItbmF2LWxldmVsLTEgLm5hdiAubmF2LWxp''@;'; + put 'put ''bmsuYWN0aXZlIC5uYXYtaWNvbiwubWFpbi1jb250YWluZXIgLnN1Ym5hdi5jbHItbmF2LWxldmVsLTIgLm5hdiAubmF2LWxpbmsuYWN0aXZlIC5uYXYtaWNvbiwubWFpbi1jb250YWluZXIgLnN1Yi1uYXYuY2xyLW5hdi1sZXZlbC0yIC5uYXYgLm5hdi1saW5rLmFjdGl2ZSAubmF2LWljb257''@;'; + put 'put ''ZmlsbDojMDA3MmEzO2ZpbGw6dmFyKC0tY2xyLXZlcnRpY2FsLW5hdi1pY29uLWFjdGl2ZS1jb2xvciwgIzAwNzJhMyl9Lm1haW4tY29udGFpbmVyIC5zdWJuYXYuY2xyLW5hdi1sZXZlbC0xIC5uYXYgLm5hdi1saW5rOmhvdmVyLC5tYWluLWNvbnRhaW5lciAuc3ViLW5hdi5jbHItbmF2LWxl''@;'; + put 'put ''dmVsLTEgLm5hdiAubmF2LWxpbms6aG92ZXIsLm1haW4tY29udGFpbmVyIC5zdWJuYXYuY2xyLW5hdi1sZXZlbC0yIC5uYXYgLm5hdi1saW5rOmhvdmVyLC5tYWluLWNvbnRhaW5lciAuc3ViLW5hdi5jbHItbmF2LWxldmVsLTIgLm5hdiAubmF2LWxpbms6aG92ZXJ7Y29sb3I6IzY2Njtjb2xv''@;'; + put 'put ''cjp2YXIoLS1jbHItdmVydGljYWwtbmF2LWl0ZW0tYWN0aXZlLWNvbG9yLCAjNjY2NjY2KTtiYWNrZ3JvdW5kLWNvbG9yOiNjY2M7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItdmVydGljYWwtbmF2LWhvdmVyLWJnLWNvbG9yLCAjY2NjY2NjKTt0ZXh0LWRlY29yYXRpb246bm9uZX0ubWFp''@;'; + put 'put ''bi1jb250YWluZXIgLnN1Ym5hdi5jbHItbmF2LWxldmVsLTEgLm5hdiAubmF2LWxpbms6aG92ZXIsLm1haW4tY29udGFpbmVyIC5zdWJuYXYuY2xyLW5hdi1sZXZlbC0xIC5uYXYgLm5hdi1saW5rLmFjdGl2ZSwubWFpbi1jb250YWluZXIgLnN1Yi1uYXYuY2xyLW5hdi1sZXZlbC0xIC5uYXYg''@;'; + put 'put ''Lm5hdi1saW5rOmhvdmVyLC5tYWluLWNvbnRhaW5lciAuc3ViLW5hdi5jbHItbmF2LWxldmVsLTEgLm5hdiAubmF2LWxpbmsuYWN0aXZlLC5tYWluLWNvbnRhaW5lciAuc3VibmF2LmNsci1uYXYtbGV2ZWwtMiAubmF2IC5uYXYtbGluazpob3ZlciwubWFpbi1jb250YWluZXIgLnN1Ym5hdi5j''@;'; + put 'put ''bHItbmF2LWxldmVsLTIgLm5hdiAubmF2LWxpbmsuYWN0aXZlLC5tYWluLWNvbnRhaW5lciAuc3ViLW5hdi5jbHItbmF2LWxldmVsLTIgLm5hdiAubmF2LWxpbms6aG92ZXIsLm1haW4tY29udGFpbmVyIC5zdWItbmF2LmNsci1uYXYtbGV2ZWwtMiAubmF2IC5uYXYtbGluay5hY3RpdmV7Ym94''@;'; + put 'put ''LXNoYWRvdzpub25lfS5tYWluLWNvbnRhaW5lciAuc2lkZW5hdi5jbHItbmF2LWxldmVsLTEgLm5hdi1saW5rOmhvdmVyLC5tYWluLWNvbnRhaW5lciAuc2lkZW5hdi5jbHItbmF2LWxldmVsLTEgLm5hdi1saW5rLmFjdGl2ZSwubWFpbi1jb250YWluZXIgLnNpZGVuYXYuY2xyLW5hdi1sZXZl''@;'; + put 'put ''bC0yIC5uYXYtbGluazpob3ZlciwubWFpbi1jb250YWluZXIgLnNpZGVuYXYuY2xyLW5hdi1sZXZlbC0yIC5uYXYtbGluay5hY3RpdmV7Y29sb3I6aW5oZXJpdDtiYWNrZ3JvdW5kOiNmZmY7YmFja2dyb3VuZDp2YXIoLS1jbHItcmVzcG9uc2l2ZS1uYXYtaG92ZXItYmcsIHdoaXRlKX0ubWFp''@;'; + put 'put ''bi1jb250YWluZXIgLnNpZGVuYXYuY2xyLW5hdi1sZXZlbC0xLC5tYWluLWNvbnRhaW5lciAuc2lkZW5hdi5jbHItbmF2LWxldmVsLTIsLm1haW4tY29udGFpbmVyIC5jbHItdmVydGljYWwtbmF2LmNsci1uYXYtbGV2ZWwtMSwubWFpbi1jb250YWluZXIgLmNsci12ZXJ0aWNhbC1uYXYuY2xy''@;'; + put 'put ''LW5hdi1sZXZlbC0ye2JvcmRlci1yaWdodDpub25lfS5tYWluLWNvbnRhaW5lciAuaGVhZGVyLW92ZXJmbG93LXRyaWdnZXJ7cG9zaXRpb246cmVsYXRpdmV9Lm1haW4tY29udGFpbmVyIC5oZWFkZXItb3ZlcmZsb3ctdHJpZ2dlcjphZnRlcntwb3NpdGlvbjphYnNvbHV0ZTtjb250ZW50OiIi''@;'; + put 'put ''O2Rpc3BsYXk6aW5saW5lLWJsb2NrO3Bvc2l0aW9uOmFic29sdXRlO2NvbnRlbnQ6IiI7YmFja2dyb3VuZDojZmFmYWZhO2JhY2tncm91bmQ6dmFyKC0tY2xyLWhlYWRlci1mb250LWNvbG9yLCAjZmFmYWZhKTtvcGFjaXR5Oi4xNTtvcGFjaXR5OnZhcigtLWNsci1oZWFkZXItZGl2aWRlci1v''@;'; + put 'put ''cGFjaXR5LCAuMTUpO29wYWNpdHk6LjE1O2hlaWdodDoycmVtO3dpZHRoOi4wNXJlbTt3aWR0aDp2YXIoLS1jbHItZ2xvYmFsLWJvcmRlcndpZHRoLCAuMDVyZW0pO3RvcDouNXJlbTtsZWZ0OjB9Lm1haW4tY29udGFpbmVyIC5oZWFkZXIgLmJyYW5kaW5ne21heC13aWR0aDoxMnJlbTttaW4t''@;'; + put 'put ''d2lkdGg6MDtvdmVyZmxvdzpoaWRkZW59Lm1haW4tY29udGFpbmVyIC5oZWFkZXIgLmhlYWRlci1oYW1idXJnZXItdHJpZ2dlcisuYnJhbmRpbmd7cGFkZGluZy1sZWZ0OjB9Lm1haW4tY29udGFpbmVyIC5oZWFkZXIgLmhlYWRlci1oYW1idXJnZXItdHJpZ2dlcisuYnJhbmRpbmcgLmNsci1p''@;'; + put 'put ''Y29uLC5tYWluLWNvbnRhaW5lciAuaGVhZGVyIC5oZWFkZXItaGFtYnVyZ2VyLXRyaWdnZXIrLmJyYW5kaW5nIC5sb2dvLC5tYWluLWNvbnRhaW5lciAuaGVhZGVyIC5oZWFkZXItaGFtYnVyZ2VyLXRyaWdnZXIrLmJyYW5kaW5nIGNkcy1pY29uLC5tYWluLWNvbnRhaW5lciAuaGVhZGVyIC5o''@;'; + put 'put ''ZWFkZXItaGFtYnVyZ2VyLXRyaWdnZXIrLmJyYW5kaW5nIGNsci1pY29ue2Rpc3BsYXk6bm9uZX0ubWFpbi1jb250YWluZXIgLmhlYWRlciAuYnJhbmRpbmcrLmhlYWRlci1vdmVyZmxvdy10cmlnZ2VyLC5tYWluLWNvbnRhaW5lciAuaGVhZGVyIC5oZWFkZXItbmF2Ky5oZWFkZXItb3ZlcmZs''@;'; + put 'put ''b3ctdHJpZ2dlcnttYXJnaW4tbGVmdDphdXRvfS5tYWluLWNvbnRhaW5lci5vcGVuLWhhbWJ1cmdlci1tZW51IC5oZWFkZXIgLmhlYWRlci1iYWNrZHJvcCwubWFpbi1jb250YWluZXIub3Blbi1vdmVyZmxvdy1tZW51IC5oZWFkZXIgLmhlYWRlci1iYWNrZHJvcHtwb3NpdGlvbjpmaXhlZDt0''@;'; + put 'put ''b3A6MDtib3R0b206MDtsZWZ0OjA7cmlnaHQ6MDtiYWNrZ3JvdW5kOiMwMDA7YmFja2dyb3VuZDp2YXIoLS1jbHItcmVzcG9uc2l2ZS1uYXYtaGVhZGVyLWJhY2tkcm9wLWJnLWNvbG9yLCBibGFjayk7b3BhY2l0eTouODU7b3BhY2l0eTp2YXIoLS1jbHItcmVzcG9uc2l2ZS1uYXYtaGVhZGVy''@;'; + put 'put ''LWJhY2tkcm9wLW9wYWNpdHksIC44NSk7Y3Vyc29yOnBvaW50ZXI7ei1pbmRleDoxMDM4fS5tYWluLWNvbnRhaW5lci5vcGVuLWhhbWJ1cmdlci1tZW51IC5oZWFkZXIgLmhlYWRlci1uYXYuY2xyLW5hdi1sZXZlbC0xIC5uYXYtbGluaywubWFpbi1jb250YWluZXIub3Blbi1oYW1idXJnZXIt''@;'; + put 'put ''bWVudSAuaGVhZGVyIC5oZWFkZXItbmF2LmNsci1uYXYtbGV2ZWwtMiAubmF2LWxpbmssLm1haW4tY29udGFpbmVyLm9wZW4tb3ZlcmZsb3ctbWVudSAuaGVhZGVyIC5oZWFkZXItbmF2LmNsci1uYXYtbGV2ZWwtMSAubmF2LWxpbmssLm1haW4tY29udGFpbmVyLm9wZW4tb3ZlcmZsb3ctbWVu''@;'; + put 'put ''dSAuaGVhZGVyIC5oZWFkZXItbmF2LmNsci1uYXYtbGV2ZWwtMiAubmF2LWxpbmt7ZmxleDowIDAgYXV0bztvcGFjaXR5OjE7Y29sb3I6IzY2Njtjb2xvcjp2YXIoLS1jbHItdmVydGljYWwtbmF2LWl0ZW0tY29sb3IsICM2NjY2NjYpfS5tYWluLWNvbnRhaW5lci5vcGVuLWhhbWJ1cmdlci1t''@;'; + put 'put ''ZW51IC5oZWFkZXIgLmhlYWRlci1uYXYuY2xyLW5hdi1sZXZlbC0xIC5uYXYtbGluayAubmF2LWljb24sLm1haW4tY29udGFpbmVyLm9wZW4taGFtYnVyZ2VyLW1lbnUgLmhlYWRlciAuaGVhZGVyLW5hdi5jbHItbmF2LWxldmVsLTEgLm5hdi1saW5rIC5mYSwubWFpbi1jb250YWluZXIub3Bl''@;'; + put 'put ''bi1oYW1idXJnZXItbWVudSAuaGVhZGVyIC5oZWFkZXItbmF2LmNsci1uYXYtbGV2ZWwtMiAubmF2LWxpbmsgLm5hdi1pY29uLC5tYWluLWNvbnRhaW5lci5vcGVuLWhhbWJ1cmdlci1tZW51IC5oZWFkZXIgLmhlYWRlci1uYXYuY2xyLW5hdi1sZXZlbC0yIC5uYXYtbGluayAuZmEsLm1haW4t''@;'; + put 'put ''Y29udGFpbmVyLm9wZW4tb3ZlcmZsb3ctbWVudSAuaGVhZGVyIC5oZWFkZXItbmF2LmNsci1uYXYtbGV2ZWwtMSAubmF2LWxpbmsgLm5hdi1pY29uLC5tYWluLWNvbnRhaW5lci5vcGVuLW92ZXJmbG93LW1lbnUgLmhlYWRlciAuaGVhZGVyLW5hdi5jbHItbmF2LWxldmVsLTEgLm5hdi1saW5r''@;'; + put 'put ''IC5mYSwubWFpbi1jb250YWluZXIub3Blbi1vdmVyZmxvdy1tZW51IC5oZWFkZXIgLmhlYWRlci1uYXYuY2xyLW5hdi1sZXZlbC0yIC5uYXYtbGluayAubmF2LWljb24sLm1haW4tY29udGFpbmVyLm9wZW4tb3ZlcmZsb3ctbWVudSAuaGVhZGVyIC5oZWFkZXItbmF2LmNsci1uYXYtbGV2ZWwt''@;'; + put 'put ''MiAubmF2LWxpbmsgLmZhe2Rpc3BsYXk6bm9uZX0ubWFpbi1jb250YWluZXIub3Blbi1oYW1idXJnZXItbWVudSAuaGVhZGVyIC5oZWFkZXItbmF2LmNsci1uYXYtbGV2ZWwtMSAubmF2LWxpbmsgLm5hdi10ZXh0LC5tYWluLWNvbnRhaW5lci5vcGVuLWhhbWJ1cmdlci1tZW51IC5oZWFkZXIg''@;'; + put 'put ''LmhlYWRlci1uYXYuY2xyLW5hdi1sZXZlbC0yIC5uYXYtbGluayAubmF2LXRleHQsLm1haW4tY29udGFpbmVyLm9wZW4tb3ZlcmZsb3ctbWVudSAuaGVhZGVyIC5oZWFkZXItbmF2LmNsci1uYXYtbGV2ZWwtMSAubmF2LWxpbmsgLm5hdi10ZXh0LC5tYWluLWNvbnRhaW5lci5vcGVuLW92ZXJm''@;'; + put 'put ''bG93LW1lbnUgLmhlYWRlciAuaGVhZGVyLW5hdi5jbHItbmF2LWxldmVsLTIgLm5hdi1saW5rIC5uYXYtdGV4dHtkaXNwbGF5OmlubGluZS1ibG9jaztjb2xvcjojNjY2O2NvbG9yOnZhcigtLWNsci1zbGlkaW5nLXBhbmVsLXRleHQtY29sb3IsICM2NjY2NjYpO2xpbmUtaGVpZ2h0OjEuMnJl''@;'; + put 'put ''bTtwYWRkaW5nOi4zcmVtIDAgLjNyZW0gMS4ycmVtO3doaXRlLXNwYWNlOm5vcm1hbDtmb250LXdlaWdodDo0MDB9Lm1haW4tY29udGFpbmVyLm9wZW4taGFtYnVyZ2VyLW1lbnUgLmhlYWRlciAuaGVhZGVyLW5hdi5jbHItbmF2LWxldmVsLTEgLm5hdi1saW5rIC5uYXYtaWNvbisubmF2LXRl''@;'; + put 'put ''eHQsLm1haW4tY29udGFpbmVyLm9wZW4taGFtYnVyZ2VyLW1lbnUgLmhlYWRlciAuaGVhZGVyLW5hdi5jbHItbmF2LWxldmVsLTIgLm5hdi1saW5rIC5uYXYtaWNvbisubmF2LXRleHQsLm1haW4tY29udGFpbmVyLm9wZW4tb3ZlcmZsb3ctbWVudSAuaGVhZGVyIC5oZWFkZXItbmF2LmNsci1u''@;'; + put 'put ''YXYtbGV2ZWwtMSAubmF2LWxpbmsgLm5hdi1pY29uKy5uYXYtdGV4dCwubWFpbi1jb250YWluZXIub3Blbi1vdmVyZmxvdy1tZW51IC5oZWFkZXIgLmhlYWRlci1uYXYuY2xyLW5hdi1sZXZlbC0yIC5uYXYtbGluayAubmF2LWljb24rLm5hdi10ZXh0e2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5t''@;'; + put 'put ''YWluLWNvbnRhaW5lci5vcGVuLWhhbWJ1cmdlci1tZW51IC5oZWFkZXIgLmhlYWRlci1uYXYuY2xyLW5hdi1sZXZlbC0xIC5uYXYtbGluay5hY3RpdmUsLm1haW4tY29udGFpbmVyLm9wZW4taGFtYnVyZ2VyLW1lbnUgLmhlYWRlciAuaGVhZGVyLW5hdi5jbHItbmF2LWxldmVsLTIgLm5hdi1s''@;'; + put 'put ''aW5rLmFjdGl2ZSwubWFpbi1jb250YWluZXIub3Blbi1vdmVyZmxvdy1tZW51IC5oZWFkZXIgLmhlYWRlci1uYXYuY2xyLW5hdi1sZXZlbC0xIC5uYXYtbGluay5hY3RpdmUsLm1haW4tY29udGFpbmVyLm9wZW4tb3ZlcmZsb3ctbWVudSAuaGVhZGVyIC5oZWFkZXItbmF2LmNsci1uYXYtbGV2''@;'; + put 'put ''ZWwtMiAubmF2LWxpbmsuYWN0aXZle2NvbG9yOiM2NjY7Y29sb3I6dmFyKC0tY2xyLXZlcnRpY2FsLW5hdi1pdGVtLWFjdGl2ZS1jb2xvciwgIzY2NjY2Nik7YmFja2dyb3VuZC1jb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLXZlcnRpY2FsLW5hdi1hY3RpdmUtYmctY29s''@;'; + put 'put ''b3IsIHdoaXRlKTtib3JkZXItbGVmdDouMTVyZW0gc29saWQgdmFyKC0tY2xyLW5hdi1hY3RpdmUtYm94LXNoYWRvdy1jb2xvcil9Lm1haW4tY29udGFpbmVyLm9wZW4taGFtYnVyZ2VyLW1lbnUgLmhlYWRlciAuaGVhZGVyLW5hdi5jbHItbmF2LWxldmVsLTEgLm5hdi1saW5rLmFjdGl2ZSAu''@;'; + put 'put ''bmF2LWljb24sLm1haW4tY29udGFpbmVyLm9wZW4taGFtYnVyZ2VyLW1lbnUgLmhlYWRlciAuaGVhZGVyLW5hdi5jbHItbmF2LWxldmVsLTIgLm5hdi1saW5rLmFjdGl2ZSAubmF2LWljb24sLm1haW4tY29udGFpbmVyLm9wZW4tb3ZlcmZsb3ctbWVudSAuaGVhZGVyIC5oZWFkZXItbmF2LmNs''@;'; + put 'put ''ci1uYXYtbGV2ZWwtMSAubmF2LWxpbmsuYWN0aXZlIC5uYXYtaWNvbiwubWFpbi1jb250YWluZXIub3Blbi1vdmVyZmxvdy1tZW51IC5oZWFkZXIgLmhlYWRlci1uYXYuY2xyLW5hdi1sZXZlbC0yIC5uYXYtbGluay5hY3RpdmUgLm5hdi1pY29ue2ZpbGw6IzAwNzJhMztmaWxsOnZhcigtLWNs''@;'; + put 'put ''ci12ZXJ0aWNhbC1uYXYtaWNvbi1hY3RpdmUtY29sb3IsICMwMDcyYTMpfS5tYWluLWNvbnRhaW5lci5vcGVuLWhhbWJ1cmdlci1tZW51IC5oZWFkZXIgLmhlYWRlci1uYXYuY2xyLW5hdi1sZXZlbC0xIC5uYXYtbGluazpob3ZlciwubWFpbi1jb250YWluZXIub3Blbi1oYW1idXJnZXItbWVu''@;'; + put 'put ''dSAuaGVhZGVyIC5oZWFkZXItbmF2LmNsci1uYXYtbGV2ZWwtMiAubmF2LWxpbms6aG92ZXIsLm1haW4tY29udGFpbmVyLm9wZW4tb3ZlcmZsb3ctbWVudSAuaGVhZGVyIC5oZWFkZXItbmF2LmNsci1uYXYtbGV2ZWwtMSAubmF2LWxpbms6aG92ZXIsLm1haW4tY29udGFpbmVyLm9wZW4tb3Zl''@;'; + put 'put ''cmZsb3ctbWVudSAuaGVhZGVyIC5oZWFkZXItbmF2LmNsci1uYXYtbGV2ZWwtMiAubmF2LWxpbms6aG92ZXJ7Y29sb3I6IzY2Njtjb2xvcjp2YXIoLS1jbHItdmVydGljYWwtbmF2LWl0ZW0tYWN0aXZlLWNvbG9yLCAjNjY2NjY2KTtiYWNrZ3JvdW5kLWNvbG9yOiNjY2M7YmFja2dyb3VuZC1j''@;'; + put 'put ''b2xvcjp2YXIoLS1jbHItdmVydGljYWwtbmF2LWhvdmVyLWJnLWNvbG9yLCAjY2NjY2NjKTt0ZXh0LWRlY29yYXRpb246bm9uZX0ubWFpbi1jb250YWluZXIub3Blbi1oYW1idXJnZXItbWVudSAuaGVhZGVyIC5oZWFkZXItbmF2LmNsci1uYXYtbGV2ZWwtMSAubmF2LWxpbmsuYWN0aXZlPi5u''@;'; + put 'put ''YXYtdGV4dCwubWFpbi1jb250YWluZXIub3Blbi1oYW1idXJnZXItbWVudSAuaGVhZGVyIC5oZWFkZXItbmF2LmNsci1uYXYtbGV2ZWwtMiAubmF2LWxpbmsuYWN0aXZlPi5uYXYtdGV4dCwubWFpbi1jb250YWluZXIub3Blbi1vdmVyZmxvdy1tZW51IC5oZWFkZXIgLmhlYWRlci1uYXYuY2xy''@;'; + put 'put ''LW5hdi1sZXZlbC0xIC5uYXYtbGluay5hY3RpdmU+Lm5hdi10ZXh0LC5tYWluLWNvbnRhaW5lci5vcGVuLW92ZXJmbG93LW1lbnUgLmhlYWRlciAuaGVhZGVyLW5hdi5jbHItbmF2LWxldmVsLTIgLm5hdi1saW5rLmFjdGl2ZT4ubmF2LXRleHR7Y29sb3I6aW5oZXJpdH0ubWFpbi1jb250YWlu''@;'; + put 'put ''ZXIub3Blbi1oYW1idXJnZXItbWVudSAuY2xyLXZlcnRpY2FsLW5hdiAubmF2LXRyaWdnZXIsLm1haW4tY29udGFpbmVyLm9wZW4tb3ZlcmZsb3ctbWVudSAuY2xyLXZlcnRpY2FsLW5hdiAubmF2LXRyaWdnZXJ7ZGlzcGxheTpub25lfS5tYWluLWNvbnRhaW5lci5vcGVuLWhhbWJ1cmdlci1t''@;'; + put 'put ''ZW51IC5oZWFkZXIgLmJyYW5kaW5ne3Bvc2l0aW9uOmZpeGVkO3RvcDowO2xlZnQ6MDtvdmVyZmxvdzpoaWRkZW47d2lkdGg6MThyZW07bWF4LXdpZHRoOjE4cmVtO3otaW5kZXg6MTA0MDtwYWRkaW5nLWxlZnQ6MS4ycmVtfS5tYWluLWNvbnRhaW5lci5vcGVuLWhhbWJ1cmdlci1tZW51IC5o''@;'; + put 'put ''ZWFkZXIgLmJyYW5kaW5nPi5uYXYtbGlua3tvdmVyZmxvdzpoaWRkZW59Lm1haW4tY29udGFpbmVyLm9wZW4taGFtYnVyZ2VyLW1lbnUgLmhlYWRlciAuYnJhbmRpbmcgLmNsci1pY29uLC5tYWluLWNvbnRhaW5lci5vcGVuLWhhbWJ1cmdlci1tZW51IC5oZWFkZXIgLmJyYW5kaW5nIC5sb2dv''@;'; + put 'put ''LC5tYWluLWNvbnRhaW5lci5vcGVuLWhhbWJ1cmdlci1tZW51IC5oZWFkZXIgLmJyYW5kaW5nIGNkcy1pY29uLC5tYWluLWNvbnRhaW5lci5vcGVuLWhhbWJ1cmdlci1tZW51IC5oZWFkZXIgLmJyYW5kaW5nIGNsci1pY29ue2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5tYWluLWNvbnRhaW5lci5v''@;'; + put 'put ''cGVuLWhhbWJ1cmdlci1tZW51IC5oZWFkZXIgLmJyYW5kaW5nIGNkcy1pY29uW3NoYXBlPXZtLWJ1Z10sLm1haW4tY29udGFpbmVyLm9wZW4taGFtYnVyZ2VyLW1lbnUgLmhlYWRlciAuYnJhbmRpbmcgY2xyLWljb25bc2hhcGU9dm0tYnVnXSwubWFpbi1jb250YWluZXIub3Blbi1oYW1idXJn''@;'; + put 'put ''ZXItbWVudSAuaGVhZGVyIC5icmFuZGluZyAuY2xyLXZtdy1sb2dve2JhY2tncm91bmQtY29sb3I6IzhjOGM4Yztib3JkZXItcmFkaXVzOi4xNXJlbX0ubWFpbi1jb250YWluZXIub3Blbi1oYW1idXJnZXItbWVudSAuaGVhZGVyIC5icmFuZGluZyAudGl0bGV7Y29sb3I6IzY2Njtjb2xvcjp2''@;'; + put 'put ''YXIoLS1jbHItc2xpZGluZy1wYW5lbC10ZXh0LWNvbG9yLCAjNjY2NjY2KTt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO292ZXJmbG93OmhpZGRlbn0ubWFpbi1jb250YWluZXIub3Blbi1oYW1idXJnZXItbWVudSAuY2xyLW5hdi1jbG9zZXtwb3NpdGlvbjpmaXhlZDt0b3A6MDtyaWdodDphdXRv''@;'; + put 'put ''O2xlZnQ6MDt6LWluZGV4OjEwMzk7dHJhbnNmb3JtOnRyYW5zbGF0ZSgxOC42cmVtKTt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuNnMgZWFzZX0ubWFpbi1jb250YWluZXIub3Blbi1oYW1idXJnZXItbWVudSAuY2xyLW5hdi1jbG9zZTphZnRlcntjb250ZW50Om5vbmV9Lm1haW4tY29udGFpbmVy''@;'; + put 'put ''Lm9wZW4taGFtYnVyZ2VyLW1lbnUgLmNsci1uYXYtY2xvc2U+c3BhbntiYWNrZ3JvdW5kOjAgMH0ubWFpbi1jb250YWluZXIub3Blbi1oYW1idXJnZXItbWVudSAuY2xyLW5hdi1jbG9zZT5zcGFuOmJlZm9yZSwubWFpbi1jb250YWluZXIub3Blbi1oYW1idXJnZXItbWVudSAuY2xyLW5hdi1j''@;'; + put 'put ''bG9zZT5zcGFuOmFmdGVye2xlZnQ6LjE1cmVtO3RyYW5zZm9ybS1vcmlnaW46OSU7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjZzIGVhc2V9Lm1haW4tY29udGFpbmVyLm9wZW4taGFtYnVyZ2VyLW1lbnUgLmNsci1uYXYtY2xvc2U+c3BhbjpiZWZvcmV7dHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyl9''@;'; + put 'put ''Lm1haW4tY29udGFpbmVyLm9wZW4taGFtYnVyZ2VyLW1lbnUgLmNsci1uYXYtY2xvc2U+c3BhbjphZnRlcnt0cmFuc2Zvcm06cm90YXRlKC00NWRlZyl9Lm1haW4tY29udGFpbmVyLm9wZW4taGFtYnVyZ2VyLW1lbnUgLmhlYWRlci1uYXYuY2xyLW5hdi1sZXZlbC0xLC5tYWluLWNvbnRhaW5l''@;'; + put 'put ''ci5vcGVuLWhhbWJ1cmdlci1tZW51IC5zdWJuYXYuY2xyLW5hdi1sZXZlbC0xLC5tYWluLWNvbnRhaW5lci5vcGVuLWhhbWJ1cmdlci1tZW51IC5zdWItbmF2LmNsci1uYXYtbGV2ZWwtMSwubWFpbi1jb250YWluZXIub3Blbi1oYW1idXJnZXItbWVudSAuc2lkZW5hdi5jbHItbmF2LWxldmVs''@;'; + put 'put ''LTEsLm1haW4tY29udGFpbmVyLm9wZW4taGFtYnVyZ2VyLW1lbnUgLmNsci12ZXJ0aWNhbC1uYXYuY2xyLW5hdi1sZXZlbC0xe3BhZGRpbmctdG9wOjQuMnJlbTt0cmFuc2Zvcm06dHJhbnNsYXRlKDApO3RyYW5zaXRpb246dHJhbnNmb3JtIC4zcyBlYXNlfS5tYWluLWNvbnRhaW5lci5vcGVu''@;'; + put 'put ''LWhhbWJ1cmdlci1tZW51IC5oZWFkZXItbmF2LmNsci1uYXYtbGV2ZWwtMSAuc2lkZW5hdi1jb250ZW50LC5tYWluLWNvbnRhaW5lci5vcGVuLWhhbWJ1cmdlci1tZW51IC5zdWJuYXYuY2xyLW5hdi1sZXZlbC0xIC5zaWRlbmF2LWNvbnRlbnQsLm1haW4tY29udGFpbmVyLm9wZW4taGFtYnVy''@;'; + put 'put ''Z2VyLW1lbnUgLnN1Yi1uYXYuY2xyLW5hdi1sZXZlbC0xIC5zaWRlbmF2LWNvbnRlbnQsLm1haW4tY29udGFpbmVyLm9wZW4taGFtYnVyZ2VyLW1lbnUgLnNpZGVuYXYuY2xyLW5hdi1sZXZlbC0xIC5zaWRlbmF2LWNvbnRlbnQsLm1haW4tY29udGFpbmVyLm9wZW4taGFtYnVyZ2VyLW1lbnUg''@;'; + put 'put ''LmNsci12ZXJ0aWNhbC1uYXYuY2xyLW5hdi1sZXZlbC0xIC5zaWRlbmF2LWNvbnRlbnR7cGFkZGluZy1ib3R0b206MS4ycmVtfS5tYWluLWNvbnRhaW5lci5vcGVuLW92ZXJmbG93LW1lbnUgLmhlYWRlci1uYXYuY2xyLW5hdi1sZXZlbC0yLC5tYWluLWNvbnRhaW5lci5vcGVuLW92ZXJmbG93''@;'; + put 'put ''LW1lbnUgLnN1Ym5hdi5jbHItbmF2LWxldmVsLTIsLm1haW4tY29udGFpbmVyLm9wZW4tb3ZlcmZsb3ctbWVudSAuc3ViLW5hdi5jbHItbmF2LWxldmVsLTIsLm1haW4tY29udGFpbmVyLm9wZW4tb3ZlcmZsb3ctbWVudSAuc2lkZW5hdi5jbHItbmF2LWxldmVsLTIsLm1haW4tY29udGFpbmVy''@;'; + put 'put ''Lm9wZW4tb3ZlcmZsb3ctbWVudSAuY2xyLXZlcnRpY2FsLW5hdi5jbHItbmF2LWxldmVsLTJ7dHJhbnNmb3JtOnRyYW5zbGF0ZSgwKTt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuM3MgZWFzZX0ubWFpbi1jb250YWluZXIub3Blbi1vdmVyZmxvdy1tZW51IC5oZWFkZXItbmF2LmNsci1uYXYtbGV2''@;'; + put 'put ''ZWwtMiwubWFpbi1jb250YWluZXIub3Blbi1vdmVyZmxvdy1tZW51IC5zdWJuYXYuY2xyLW5hdi1sZXZlbC0yLC5tYWluLWNvbnRhaW5lci5vcGVuLW92ZXJmbG93LW1lbnUgLnN1Yi1uYXYuY2xyLW5hdi1sZXZlbC0ye3BhZGRpbmctdG9wOjEuMnJlbX0ubWFpbi1jb250YWluZXIub3Blbi1v''@;'; + put 'put ''dmVyZmxvdy1tZW51IC5jbHItbmF2LWNsb3Nle3Bvc2l0aW9uOmZpeGVkO3RvcDowO3JpZ2h0OjA7bGVmdDphdXRvO3otaW5kZXg6MTAzOTt0cmFuc2Zvcm06dHJhbnNsYXRlKC0xOC42cmVtKTt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuNnMgZWFzZX0ubWFpbi1jb250YWluZXIub3Blbi1vdmVy''@;'; + put 'put ''Zmxvdy1tZW51IC5jbHItbmF2LWNsb3NlOmFmdGVye2NvbnRlbnQ6bm9uZX0ubWFpbi1jb250YWluZXIub3Blbi1vdmVyZmxvdy1tZW51IC5jbHItbmF2LWNsb3NlPnNwYW57YmFja2dyb3VuZDowIDB9Lm1haW4tY29udGFpbmVyLm9wZW4tb3ZlcmZsb3ctbWVudSAuY2xyLW5hdi1jbG9zZT5z''@;'; + put 'put ''cGFuOmJlZm9yZSwubWFpbi1jb250YWluZXIub3Blbi1vdmVyZmxvdy1tZW51IC5jbHItbmF2LWNsb3NlPnNwYW46YWZ0ZXJ7aGVpZ2h0Oi4xcmVtO3dpZHRoOjEuMnJlbTtsZWZ0Oi0uM3JlbTt0cmFuc2Zvcm0tb3JpZ2luOi0zJTt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuNnMgZWFzZX0ubWFp''@;'; + put 'put ''bi1jb250YWluZXIub3Blbi1vdmVyZmxvdy1tZW51IC5jbHItbmF2LWNsb3NlPnNwYW46YmVmb3Jle3RyYW5zZm9ybTpyb3RhdGUoNDVkZWcpfS5tYWluLWNvbnRhaW5lci5vcGVuLW92ZXJmbG93LW1lbnUgLmNsci1uYXYtY2xvc2U+c3BhbjphZnRlcnt0cmFuc2Zvcm06cm90YXRlKC00NWRl''@;'; + put 'put ''Zyl9Lm1haW4tY29udGFpbmVyLm9wZW4taGFtYnVyZ2VyLW1lbnUgLmhlYWRlci1uYXYuY2xyLW5hdi1sZXZlbC0xLC5tYWluLWNvbnRhaW5lci5vcGVuLWhhbWJ1cmdlci1tZW51IC5zdWJuYXYuY2xyLW5hdi1sZXZlbC0xLC5tYWluLWNvbnRhaW5lci5vcGVuLWhhbWJ1cmdlci1tZW51IC5z''@;'; + put 'put ''dWItbmF2LmNsci1uYXYtbGV2ZWwtMSwubWFpbi1jb250YWluZXIub3Blbi1oYW1idXJnZXItbWVudSAuc2lkZW5hdi5jbHItbmF2LWxldmVsLTEsLm1haW4tY29udGFpbmVyLm9wZW4taGFtYnVyZ2VyLW1lbnUgLmNsci12ZXJ0aWNhbC1uYXYuY2xyLW5hdi1sZXZlbC0xe292ZXJmbG93Omlu''@;'; + put 'put ''aGVyaXQ7d2lkdGg6MThyZW07bWF4LXdpZHRoOjE4cmVtfS5tYWluLWNvbnRhaW5lci5vcGVuLW92ZXJmbG93LW1lbnUgLmhlYWRlci1uYXYuY2xyLW5hdi1sZXZlbC0yLC5tYWluLWNvbnRhaW5lci5vcGVuLW92ZXJmbG93LW1lbnUgLnN1Ym5hdi5jbHItbmF2LWxldmVsLTIsLm1haW4tY29u''@;'; + put 'put ''dGFpbmVyLm9wZW4tb3ZlcmZsb3ctbWVudSAuc3ViLW5hdi5jbHItbmF2LWxldmVsLTIsLm1haW4tY29udGFpbmVyLm9wZW4tb3ZlcmZsb3ctbWVudSAuc2lkZW5hdi5jbHItbmF2LWxldmVsLTIsLm1haW4tY29udGFpbmVyLm9wZW4tb3ZlcmZsb3ctbWVudSAuY2xyLXZlcnRpY2FsLW5hdi5j''@;'; + put 'put ''bHItbmF2LWxldmVsLTJ7d2lkdGg6MThyZW07bWF4LXdpZHRoOjE4cmVtfX1AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOjU3NnB4KXsubWFpbi1jb250YWluZXIgLmhlYWRlciAuYnJhbmRpbmd7bWF4LXdpZHRoOjcuMnJlbTttaW4td2lkdGg6MDtvdmVyZmxvdzpoaWRkZW59Lm1haW4t''@;'; + put 'put ''Y29udGFpbmVyIC5oZWFkZXItbmF2LmNsci1uYXYtbGV2ZWwtMSwubWFpbi1jb250YWluZXIgLnN1Ym5hdi5jbHItbmF2LWxldmVsLTEsLm1haW4tY29udGFpbmVyIC5zdWItbmF2LmNsci1uYXYtbGV2ZWwtMSwubWFpbi1jb250YWluZXIgLnNpZGVuYXYuY2xyLW5hdi1sZXZlbC0xLC5tYWlu''@;'; + put 'put ''LWNvbnRhaW5lciAuY2xyLXZlcnRpY2FsLW5hdi5jbHItbmF2LWxldmVsLTF7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtMTQuNHJlbSl9Lm1haW4tY29udGFpbmVyIC5oZWFkZXItbmF2LmNsci1uYXYtbGV2ZWwtMiwubWFpbi1jb250YWluZXIgLnN1Ym5hdi5jbHItbmF2LWxldmVsLTIsLm1haW4t''@;'; + put 'put ''Y29udGFpbmVyIC5zdWItbmF2LmNsci1uYXYtbGV2ZWwtMiwubWFpbi1jb250YWluZXIgLnNpZGVuYXYuY2xyLW5hdi1sZXZlbC0yLC5tYWluLWNvbnRhaW5lciAuY2xyLXZlcnRpY2FsLW5hdi5jbHItbmF2LWxldmVsLTJ7dHJhbnNmb3JtOnRyYW5zbGF0ZSgxNC40cmVtKX0ubWFpbi1jb250''@;'; + put 'put ''YWluZXIub3Blbi1oYW1idXJnZXItbWVudSAuaGVhZGVyIC5icmFuZGluZ3t3aWR0aDoxNC40cmVtO21heC13aWR0aDoxNC40cmVtfS5tYWluLWNvbnRhaW5lci5vcGVuLWhhbWJ1cmdlci1tZW51IC5oZWFkZXItbmF2LmNsci1uYXYtbGV2ZWwtMSwubWFpbi1jb250YWluZXIub3Blbi1oYW1i''@;'; + put 'put ''dXJnZXItbWVudSAuc3VibmF2LmNsci1uYXYtbGV2ZWwtMSwubWFpbi1jb250YWluZXIub3Blbi1oYW1idXJnZXItbWVudSAuc3ViLW5hdi5jbHItbmF2LWxldmVsLTEsLm1haW4tY29udGFpbmVyLm9wZW4taGFtYnVyZ2VyLW1lbnUgLnNpZGVuYXYuY2xyLW5hdi1sZXZlbC0xLC5tYWluLWNv''@;'; + put 'put ''bnRhaW5lci5vcGVuLWhhbWJ1cmdlci1tZW51IC5jbHItdmVydGljYWwtbmF2LmNsci1uYXYtbGV2ZWwtMXtvdmVyZmxvdzppbmhlcml0O3dpZHRoOjE0LjRyZW07bWF4LXdpZHRoOjE0LjRyZW19Lm1haW4tY29udGFpbmVyLm9wZW4taGFtYnVyZ2VyLW1lbnUgLmNsci1uYXYtY2xvc2V7cG9z''@;'; + put 'put ''aXRpb246Zml4ZWQ7dG9wOjA7cmlnaHQ6YXV0bztsZWZ0OjA7ei1pbmRleDoxMDM5O3RyYW5zZm9ybTp0cmFuc2xhdGUoMTVyZW0pO3RyYW5zaXRpb246dHJhbnNmb3JtIC42cyBlYXNlfS5tYWluLWNvbnRhaW5lci5vcGVuLWhhbWJ1cmdlci1tZW51IC5jbHItbmF2LWNsb3NlOmFmdGVye2Nv''@;'; + put 'put ''bnRlbnQ6bm9uZX0ubWFpbi1jb250YWluZXIub3Blbi1vdmVyZmxvdy1tZW51IC5oZWFkZXItbmF2LmNsci1uYXYtbGV2ZWwtMiwubWFpbi1jb250YWluZXIub3Blbi1vdmVyZmxvdy1tZW51IC5zdWJuYXYuY2xyLW5hdi1sZXZlbC0yLC5tYWluLWNvbnRhaW5lci5vcGVuLW92ZXJmbG93LW1l''@;'; + put 'put ''bnUgLnN1Yi1uYXYuY2xyLW5hdi1sZXZlbC0yLC5tYWluLWNvbnRhaW5lci5vcGVuLW92ZXJmbG93LW1lbnUgLnNpZGVuYXYuY2xyLW5hdi1sZXZlbC0yLC5tYWluLWNvbnRhaW5lci5vcGVuLW92ZXJmbG93LW1lbnUgLmNsci12ZXJ0aWNhbC1uYXYuY2xyLW5hdi1sZXZlbC0ye3dpZHRoOjE0''@;'; + put 'put ''LjRyZW07bWF4LXdpZHRoOjE0LjRyZW19Lm1haW4tY29udGFpbmVyLm9wZW4tb3ZlcmZsb3ctbWVudSAuY2xyLW5hdi1jbG9zZXtwb3NpdGlvbjpmaXhlZDt0b3A6MDtyaWdodDowO2xlZnQ6YXV0bzt6LWluZGV4OjEwMzk7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtMTVyZW0pO3RyYW5zaXRpb246''@;'; + put 'put ''dHJhbnNmb3JtIC42cyBlYXNlfS5tYWluLWNvbnRhaW5lci5vcGVuLW92ZXJmbG93LW1lbnUgLmNsci1uYXYtY2xvc2U6YWZ0ZXJ7Y29udGVudDpub25lfX06cm9vdHstLWNsci1wcm9ncmVzcy1kZWZhdWx0LWNvbG9yOnZhcigtLWNsci1jb2xvci1hY3Rpb24tNjAwKTstLWNsci1wcm9ncmVz''@;'; + put 'put ''cy1hbHQtY29sb3ItMTp2YXIoLS1jbHItY29sb3Itc3VjY2Vzcy00MDApOy0tY2xyLXByb2dyZXNzLWFsdC1jb2xvci0yOnZhcigtLWNsci1jb2xvci1kYW5nZXItODAwKTstLWNsci1wcm9ncmVzcy1hbHQtY29sb3ItMzp2YXIoLS1jbHItcHJvZ3Jlc3MtYWx0LWNvbG9yLTIpOy0tY2xyLXBy''@;'; + put 'put ''b2dyZXNzLWJnLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTIwMCl9LnByb2dyZXNzLC5wcm9ncmVzcy1zdGF0aWN7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtib3JkZXItcmFkaXVzOjA7Zm9udC1zaXplOmluaGVyaXQ7aGVpZ2h0OjJlbTttYXJnaW46MDttYXgtaGVpZ2h0''@;'; + put 'put ''Oi43cmVtO21pbi1oZWlnaHQ6LjJyZW07b3ZlcmZsb3c6aGlkZGVuO2Rpc3BsYXk6YmxvY2s7d2lkdGg6MTAwJX0ucHJvZ3Jlc3M+cHJvZ3Jlc3N7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7LW1vei1hcHBlYXJhbmNlOm5vbmU7LW1zLWFwcGVhcmFuY2U6bm9uZTstby1hcHBlYXJhbmNlOm5v''@;'; + put 'put ''bmU7Y29sb3I6IzAwNzJhMztjb2xvcjp2YXIoLS1jbHItcHJvZ3Jlc3MtZGVmYXVsdC1jb2xvciwgIzAwNzJhMyk7ZGlzcGxheTpibG9jaztiYWNrZ3JvdW5kLWNvbG9yOiNlOGU4ZTg7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItcHJvZ3Jlc3MtYmctY29sb3IsICNlOGU4ZTgpO2JvcmRl''@;'; + put 'put ''cjowO2hlaWdodDoxMDAlO3dpZHRoOjEwMCV9LnByb2dyZXNzPnByb2dyZXNzOjotd2Via2l0LXByb2dyZXNzLXZhbHVle2JhY2tncm91bmQtY29sb3I6IzAwNzJhMztiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1wcm9ncmVzcy1kZWZhdWx0LWNvbG9yLCAjMDA3MmEzKX0ucHJvZ3Jlc3M+''@;'; + put 'put ''cHJvZ3Jlc3M6Oi1tb3otcHJvZ3Jlc3MtYmFye2JhY2tncm91bmQtY29sb3I6IzAwNzJhMztiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1wcm9ncmVzcy1kZWZhdWx0LWNvbG9yLCAjMDA3MmEzKX0ucHJvZ3Jlc3M+cHJvZ3Jlc3NbdmFsdWU9IjAiXTo6LW1vei1wcm9ncmVzcy1iYXJ7LXdl''@;'; + put 'put ''YmtpdC1hcHBlYXJhbmNlOm5vbmU7LW1vei1hcHBlYXJhbmNlOm5vbmU7LW1zLWFwcGVhcmFuY2U6bm9uZTstby1hcHBlYXJhbmNlOm5vbmU7Y29sb3I6I2U4ZThlODtjb2xvcjp2YXIoLS1jbHItcHJvZ3Jlc3MtYmctY29sb3IsICNlOGU4ZTgpO21pbi13aWR0aDoyLjRyZW07YmFja2dyb3Vu''@;'; + put 'put ''ZC1jb2xvcjp0cmFuc3BhcmVudDtiYWNrZ3JvdW5kLWltYWdlOm5vbmV9LnByb2dyZXNzPnByb2dyZXNzW3ZhbHVlPSIwIl06Oi13ZWJraXQtcHJvZ3Jlc3MtdmFsdWV7LXdlYmtpdC10cmFuc2l0aW9uOm5vbmU7dHJhbnNpdGlvbjpub25lfS5wcm9ncmVzcz5wcm9ncmVzczo6LXdlYmtpdC1w''@;'; + put 'put ''cm9ncmVzcy1iYXJ7Ym9yZGVyLXJhZGl1czowO2JhY2tncm91bmQtY29sb3I6I2U4ZThlODtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1wcm9ncmVzcy1iZy1jb2xvciwgI2U4ZThlOCl9LnByb2dyZXNzPnByb2dyZXNzOjotd2Via2l0LXByb2dyZXNzLWlubmVyLWVsZW1lbnR7LXdlYmtp''@;'; + put 'put ''dC1hcHBlYXJhbmNlOm5vbmU7LW1vei1hcHBlYXJhbmNlOm5vbmU7LW1zLWFwcGVhcmFuY2U6bm9uZTstby1hcHBlYXJhbmNlOm5vbmV9LnByb2dyZXNzPnByb2dyZXNzOjotd2Via2l0LXByb2dyZXNzLXZhbHVley13ZWJraXQtdHJhbnNpdGlvbjp3aWR0aCAuMjNzIGVhc2UtaW47dHJhbnNp''@;'; + put 'put ''dGlvbjp3aWR0aCAuMjNzIGVhc2UtaW47Ym9yZGVyLXJhZGl1czowfS5wcm9ncmVzcy5zdWNjZXNzPnByb2dyZXNze2NvbG9yOiM1ZWI3MTU7Y29sb3I6dmFyKC0tY2xyLXByb2dyZXNzLWFsdC1jb2xvci0xLCAjNWViNzE1KX0ucHJvZ3Jlc3Muc3VjY2Vzcz5wcm9ncmVzczo6LXdlYmtpdC1w''@;'; + put 'put ''cm9ncmVzcy12YWx1ZXtiYWNrZ3JvdW5kLWNvbG9yOiM1ZWI3MTU7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItcHJvZ3Jlc3MtYWx0LWNvbG9yLTEsICM1ZWI3MTUpfS5wcm9ncmVzcy5zdWNjZXNzPnByb2dyZXNzOjotbW96LXByb2dyZXNzLWJhcntiYWNrZ3JvdW5kLWNvbG9yOiM1ZWI3''@;'; + put 'put ''MTU7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItcHJvZ3Jlc3MtYWx0LWNvbG9yLTEsICM1ZWI3MTUpfS5wcm9ncmVzcy53YXJuaW5nPnByb2dyZXNze2NvbG9yOiNjMjFkMDA7Y29sb3I6dmFyKC0tY2xyLXByb2dyZXNzLWFsdC1jb2xvci0zLCAjYzIxZDAwKX0ucHJvZ3Jlc3Mud2Fybmlu''@;'; + put 'put ''Zz5wcm9ncmVzczo6LXdlYmtpdC1wcm9ncmVzcy12YWx1ZXtiYWNrZ3JvdW5kLWNvbG9yOiNjMjFkMDA7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItcHJvZ3Jlc3MtYWx0LWNvbG9yLTMsICNjMjFkMDApfS5wcm9ncmVzcy53YXJuaW5nPnByb2dyZXNzOjotbW96LXByb2dyZXNzLWJhcnti''@;'; + put 'put ''YWNrZ3JvdW5kLWNvbG9yOiNjMjFkMDA7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItcHJvZ3Jlc3MtYWx0LWNvbG9yLTMsICNjMjFkMDApfS5wcm9ncmVzcy5kYW5nZXI+cHJvZ3Jlc3N7Y29sb3I6I2MyMWQwMDtjb2xvcjp2YXIoLS1jbHItcHJvZ3Jlc3MtYWx0LWNvbG9yLTIsICNjMjFk''@;'; + put 'put ''MDApfS5wcm9ncmVzcy5kYW5nZXI+cHJvZ3Jlc3M6Oi13ZWJraXQtcHJvZ3Jlc3MtdmFsdWV7YmFja2dyb3VuZC1jb2xvcjojYzIxZDAwO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLXByb2dyZXNzLWFsdC1jb2xvci0yLCAjYzIxZDAwKX0ucHJvZ3Jlc3MuZGFuZ2VyPnByb2dyZXNzOjot''@;'; + put 'put ''bW96LXByb2dyZXNzLWJhcntiYWNrZ3JvdW5kLWNvbG9yOiNjMjFkMDA7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItcHJvZ3Jlc3MtYWx0LWNvbG9yLTIsICNjMjFkMDApfS5wcm9ncmVzcy5sYWJlbGVkLC5wcm9ncmVzcy1zdGF0aWMubGFiZWxlZHtwb3NpdGlvbjpyZWxhdGl2ZTtwYWRk''@;'; + put 'put ''aW5nLXJpZ2h0OjNlbX0ucHJvZ3Jlc3MubGFiZWxlZD5zcGFuLC5wcm9ncmVzcy1zdGF0aWMubGFiZWxlZD5zcGFue2Rpc3BsYXk6YmxvY2s7Zm9udC1zaXplOjFlbTtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NTAlO3JpZ2h0OjA7bGluZS1oZWlnaHQ6MWVtO21hcmdpbi10b3A6LS4zNzVlbX1A''@;'; + put 'put ''a2V5ZnJhbWVzIGNsci1wcm9ncmVzcy1mYWRlezAle29wYWNpdHk6MX10b3tvcGFjaXR5OjB9fS5wcm9ncmVzcy5wcm9ncmVzcy1mYWRlPnByb2dyZXNzW3ZhbHVlPSIxMDAiXSwucHJvZ3Jlc3MucHJvZ3Jlc3MtZmFkZT5wcm9ncmVzc1t2YWx1ZT0iMTAwIl0rc3BhbnthbmltYXRpb246Y2xy''@;'; + put 'put ''LXByb2dyZXNzLWZhZGUgLjNzIGxpbmVhciAuNXMgZm9yd2FyZHN9LnByb2dyZXNzLmZsYXNoLWRhbmdlcj5wcm9ncmVzcywucHJvZ3Jlc3MuZmxhc2g+cHJvZ3Jlc3N7dHJhbnNpdGlvbjpjb2xvciAuMXMgZWFzZS1vdXQgMXN9LnByb2dyZXNzLmZsYXNoLWRhbmdlcj5wcm9ncmVzczo6LXdl''@;'; + put 'put ''YmtpdC1wcm9ncmVzcy12YWx1ZSwucHJvZ3Jlc3MuZmxhc2g+cHJvZ3Jlc3M6Oi13ZWJraXQtcHJvZ3Jlc3MtdmFsdWV7LXdlYmtpdC10cmFuc2l0aW9uOndpZHRoIC4yM3MgZWFzZS1pbixiYWNrZ3JvdW5kLWNvbG9yIC4xcyBlYXNlLW91dCAuM3M7dHJhbnNpdGlvbjp3aWR0aCAuMjNzIGVh''@;'; + put 'put ''c2UtaW4sYmFja2dyb3VuZC1jb2xvciAuMXMgZWFzZS1vdXQgLjNzfS5wcm9ncmVzcy5mbGFzaC1kYW5nZXI+cHJvZ3Jlc3NbdmFsdWU9IjAiXTo6LXdlYmtpdC1wcm9ncmVzcy12YWx1ZSwucHJvZ3Jlc3MuZmxhc2g+cHJvZ3Jlc3NbdmFsdWU9IjAiXTo6LXdlYmtpdC1wcm9ncmVzcy12YWx1''@;'; + put 'put ''ZXstd2Via2l0LXRyYW5zaXRpb246bm9uZTt0cmFuc2l0aW9uOm5vbmV9LnByb2dyZXNzLmZsYXNoLWRhbmdlcj5wcm9ncmVzczo6LW1vei1wcm9ncmVzcy1iYXIsLnByb2dyZXNzLmZsYXNoPnByb2dyZXNzOjotbW96LXByb2dyZXNzLWJhcnstbW96LXRyYW5zaXRpb246d2lkdGggLjIzcyBl''@;'; + put 'put ''YXNlLWluLGJhY2tncm91bmQtY29sb3IgLjFzIGVhc2Utb3V0IC4zczt0cmFuc2l0aW9uOndpZHRoIC4yM3MgZWFzZS1pbixiYWNrZ3JvdW5kLWNvbG9yIC4xcyBlYXNlLW91dCAuM3N9LnByb2dyZXNzLmZsYXNoPnByb2dyZXNzW3ZhbHVlPSIxMDAiXXtjb2xvcjojNWViNzE1O2NvbG9yOnZh''@;'; + put 'put ''cigtLWNsci1wcm9ncmVzcy1hbHQtY29sb3ItMSwgIzVlYjcxNSl9LnByb2dyZXNzLmZsYXNoPnByb2dyZXNzW3ZhbHVlPSIxMDAiXTo6LXdlYmtpdC1wcm9ncmVzcy12YWx1ZXtiYWNrZ3JvdW5kLWNvbG9yOiM1ZWI3MTU7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItcHJvZ3Jlc3MtYWx0''@;'; + put 'put ''LWNvbG9yLTEsICM1ZWI3MTUpfS5wcm9ncmVzcy5mbGFzaD5wcm9ncmVzc1t2YWx1ZT0iMTAwIl06Oi1tb3otcHJvZ3Jlc3MtYmFye2JhY2tncm91bmQtY29sb3I6IzVlYjcxNTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1wcm9ncmVzcy1hbHQtY29sb3ItMSwgIzVlYjcxNSl9LnByb2dy''@;'; + put 'put ''ZXNzLnByb2dyZXNzLWZhZGUuZmxhc2g+cHJvZ3Jlc3NbdmFsdWU9IjEwMCJdLC5wcm9ncmVzcy5wcm9ncmVzcy1mYWRlLmZsYXNoPnByb2dyZXNzW3ZhbHVlPSIxMDAiXStzcGFue2FuaW1hdGlvbjpjbHItcHJvZ3Jlc3MtZmFkZSAuNnMgbGluZWFyIDFzIGZvcndhcmRzfS5wcm9ncmVzcy5m''@;'; + put 'put ''bGFzaC1kYW5nZXI+cHJvZ3Jlc3NbdmFsdWU9IjEwMCJde2NvbG9yOiNjMjFkMDA7Y29sb3I6dmFyKC0tY2xyLXByb2dyZXNzLWFsdC1jb2xvci0yLCAjYzIxZDAwKX0ucHJvZ3Jlc3MuZmxhc2gtZGFuZ2VyPnByb2dyZXNzW3ZhbHVlPSIxMDAiXTo6LXdlYmtpdC1wcm9ncmVzcy12YWx1ZXti''@;'; + put 'put ''YWNrZ3JvdW5kLWNvbG9yOiNjMjFkMDA7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItcHJvZ3Jlc3MtYWx0LWNvbG9yLTIsICNjMjFkMDApfS5wcm9ncmVzcy5mbGFzaC1kYW5nZXI+cHJvZ3Jlc3NbdmFsdWU9IjEwMCJdOjotbW96LXByb2dyZXNzLWJhcntiYWNrZ3JvdW5kLWNvbG9yOiNj''@;'; + put 'put ''MjFkMDA7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItcHJvZ3Jlc3MtYWx0LWNvbG9yLTIsICNjMjFkMDApfUBrZXlmcmFtZXMgY2xyLXByb2dyZXNzLWxvb3BlcnswJXtsZWZ0Oi0xMDAlfXRve2xlZnQ6MTAwJX19LnByb2dyZXNzLmxvb3B7cG9zaXRpb246cmVsYXRpdmV9LnByb2dyZXNz''@;'; + put 'put ''Lmxvb3A+cHJvZ3Jlc3N7b3ZlcmZsb3c6aGlkZGVuO2NvbG9yOnRyYW5zcGFyZW50O2NvbG9yOnZhcigtLWNsci1jb2xvci1hY3Rpb24tNjAwLCB0cmFuc3BhcmVudCl9LnByb2dyZXNzLmxvb3A+cHJvZ3Jlc3M6Oi13ZWJraXQtcHJvZ3Jlc3MtdmFsdWV7YmFja2dyb3VuZC1jb2xvcjp0cmFu''@;'; + put 'put ''c3BhcmVudDtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1jb2xvci1hY3Rpb24tNjAwLCB0cmFuc3BhcmVudCl9LnByb2dyZXNzLmxvb3A+cHJvZ3Jlc3M6Oi1tb3otcHJvZ3Jlc3MtYmFye2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHIt''@;'; + put 'put ''Y29sb3ItYWN0aW9uLTYwMCwgdHJhbnNwYXJlbnQpfS5wcm9ncmVzcy5sb29wPnByb2dyZXNzOjotbW96LXByb2dyZXNzLWJhcntiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50fS5wcm9ncmVzcy5sb29wOmFmdGVye2FuaW1hdGlvbjpjbHItcHJvZ3Jlc3MtbG9vcGVyIDJzIGVhc2UtaW4t''@;'; + put 'put ''b3V0IGluZmluaXRlO2NvbnRlbnQ6IiAiO3RvcDowO2JvdHRvbTowO2xlZnQ6MDtwb3NpdGlvbjphYnNvbHV0ZTtkaXNwbGF5OmJsb2NrO2JhY2tncm91bmQtY29sb3I6IzAwNzJhMztiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1wcm9ncmVzcy1kZWZhdWx0LWNvbG9yLCAjMDA3MmEzKTt3''@;'; + put 'put ''aWR0aDo3NSV9LnByb2dyZXNzLmxvb3AuZGFuZ2VyOmFmdGVyLC5wcm9ncmVzcy5sb29wLndhcm5pbmc6YWZ0ZXJ7YmFja2dyb3VuZC1jb2xvcjojYzIxZDAwO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLXByb2dyZXNzLWFsdC1jb2xvci0yLCAjYzIxZDAwKX0ucHJvZ3Jlc3MubG9vcC5z''@;'; + put 'put ''dWNjZXNzOmFmdGVye2JhY2tncm91bmQtY29sb3I6IzVlYjcxNTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1wcm9ncmVzcy1hbHQtY29sb3ItMSwgIzVlYjcxNSl9Lm5hdi1pdGVtIC5wcm9ncmVzczphZnRlcnt0b3A6MH0ucHJvZ3Jlc3Mtc3RhdGlje3Bvc2l0aW9uOnJlbGF0aXZlO2Jv''@;'; + put 'put ''cmRlcjowO3dpZHRoOjEwMCV9LnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJ7YmFja2dyb3VuZC1jb2xvcjojZThlOGU4O2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLXByb2dyZXNzLWJnLWNvbG9yLCAjZThlOGU4KTtkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOmFic29sdXRlO3Rv''@;'; + put 'put ''cDowO2xlZnQ6MDtib3R0b206MDtyaWdodDowfS5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyOmJlZm9yZXtiYWNrZ3JvdW5kLWNvbG9yOiMwMDcyYTM7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItcHJvZ3Jlc3MtZGVmYXVsdC1jb2xvciwgIzAwNzJhMyk7dG9wOjA7Ym90dG9t''@;'; + put 'put ''OjA7bGVmdDowO3Bvc2l0aW9uOmFic29sdXRlO2Rpc3BsYXk6YmxvY2s7d2lkdGg6MCU7Y29udGVudDoiICJ9LnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iMSJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSIy''@;'; + put 'put ''Il06YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjMiXTpiZWZvcmV7d2lkdGg6MiV9LnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iNCJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltk''@;'; + put 'put ''YXRhLXZhbHVlPSI1Il06YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjYiXTpiZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iNyJdOmJlZm9yZXt3aWR0aDo1JX0ucHJvZ3Jlc3Mtc3RhdGljPi5wcm9n''@;'; + put 'put ''cmVzcy1tZXRlcltkYXRhLXZhbHVlPSI4Il06YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjkiXTpiZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iMTAiXTpiZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4u''@;'; + put 'put ''cHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iMTEiXTpiZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iMTIiXTpiZWZvcmV7d2lkdGg6MTAlfS5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjEzIl06YmVmb3JlLC5w''@;'; + put 'put ''cm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjE0Il06YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjE1Il06YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjE2Il06YmVm''@;'; + put 'put ''b3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjE3Il06YmVmb3Jle3dpZHRoOjE1JX0ucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSIxOCJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRh''@;'; + put 'put ''LXZhbHVlPSIxOSJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSIyMCJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSIyMSJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRl''@;'; + put 'put ''cltkYXRhLXZhbHVlPSIyMiJdOmJlZm9yZXt3aWR0aDoyMCV9LnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iMjMiXTpiZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iMjQiXTpiZWZvcmUsLnByb2dyZXNzLXN0YXRp''@;'; + put 'put ''Yz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iMjUiXTpiZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iMjYiXTpiZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iMjciXTpiZWZvcmV7d2lkdGg6MjUl''@;'; + put 'put ''fS5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjI4Il06YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjI5Il06YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjMwIl06''@;'; + put 'put ''YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjMxIl06YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjMyIl06YmVmb3Jle3dpZHRoOjMwJX0ucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltk''@;'; + put 'put ''YXRhLXZhbHVlPSIzMyJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSIzNCJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSIzNSJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1t''@;'; + put 'put ''ZXRlcltkYXRhLXZhbHVlPSIzNiJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSIzNyJdOmJlZm9yZXt3aWR0aDozNSV9LnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iMzgiXTpiZWZvcmUsLnByb2dyZXNzLXN0''@;'; + put 'put ''YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iMzkiXTpiZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iNDAiXTpiZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iNDEiXTpiZWZvcmUsLnByb2dy''@;'; + put 'put ''ZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iNDIiXTpiZWZvcmV7d2lkdGg6NDAlfS5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjQzIl06YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjQ0''@;'; + put 'put ''Il06YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjQ1Il06YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjQ2Il06YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFs''@;'; + put 'put ''dWU9IjQ3Il06YmVmb3Jle3dpZHRoOjQ1JX0ucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSI0OCJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSI0OSJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVz''@;'; + put 'put ''cy1tZXRlcltkYXRhLXZhbHVlPSI1MCJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSI1MSJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSI1MiJdOmJlZm9yZXt3aWR0aDo1MCV9LnByb2dyZXNz''@;'; + put 'put ''LXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iNTMiXTpiZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iNTQiXTpiZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iNTUiXTpiZWZvcmUsLnBy''@;'; + put 'put ''b2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iNTYiXTpiZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iNTciXTpiZWZvcmV7d2lkdGg6NTUlfS5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9''@;'; + put 'put ''IjU4Il06YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjU5Il06YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjYwIl06YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEt''@;'; + put 'put ''dmFsdWU9IjYxIl06YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjYyIl06YmVmb3Jle3dpZHRoOjYwJX0ucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSI2MyJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9n''@;'; + put 'put ''cmVzcy1tZXRlcltkYXRhLXZhbHVlPSI2NCJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSI2NSJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSI2NiJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGlj''@;'; + put 'put ''Pi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSI2NyJdOmJlZm9yZXt3aWR0aDo2NSV9LnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iNjgiXTpiZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iNjkiXTpiZWZvcmUs''@;'; + put 'put ''LnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iNzAiXTpiZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iNzEiXTpiZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iNzIiXTpi''@;'; + put 'put ''ZWZvcmV7d2lkdGg6NzAlfS5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjczIl06YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9Ijc0Il06YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2Rh''@;'; + put 'put ''dGEtdmFsdWU9Ijc1Il06YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9Ijc2Il06YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9Ijc3Il06YmVmb3Jle3dpZHRoOjc1JX0ucHJvZ3Jlc3Mtc3RhdGljPi5w''@;'; + put 'put ''cm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSI3OCJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSI3OSJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSI4MCJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3Rh''@;'; + put 'put ''dGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSI4MSJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSI4MiJdOmJlZm9yZXt3aWR0aDo4MCV9LnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iODMiXTpiZWZv''@;'; + put 'put ''cmUsLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iODQiXTpiZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iODUiXTpiZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iODYi''@;'; + put 'put ''XTpiZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iODciXTpiZWZvcmV7d2lkdGg6ODUlfS5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9Ijg4Il06YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVy''@;'; + put 'put ''W2RhdGEtdmFsdWU9Ijg5Il06YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjkwIl06YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjkxIl06YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNz''@;'; + put 'put ''LW1ldGVyW2RhdGEtdmFsdWU9IjkyIl06YmVmb3Jle3dpZHRoOjkwJX0ucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSI5MyJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSI5NCJdOmJlZm9yZSwucHJvZ3Jlc3Mt''@;'; + put 'put ''c3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSI5NSJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSI5NiJdOmJlZm9yZXt3aWR0aDo5NSV9LnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iOTciXTpi''@;'; + put 'put ''ZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iOTgiXTpiZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iOTkiXTpiZWZvcmV7d2lkdGg6OTglfS5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2Rh''@;'; + put 'put ''dGEtdmFsdWU9IjEwMCJdOmJlZm9yZXt3aWR0aDoxMDAlfS5wcm9ncmVzcy1zdGF0aWMubGFiZWxlZD4ucHJvZ3Jlc3MtbWV0ZXJ7cmlnaHQ6M2VtfS5wcm9ncmVzcy1zdGF0aWMuc3VjY2Vzcz4ucHJvZ3Jlc3MtbWV0ZXI6YmVmb3Jle2JhY2tncm91bmQtY29sb3I6IzVlYjcxNTtiYWNrZ3Jv''@;'; + put 'put ''dW5kLWNvbG9yOnZhcigtLWNsci1wcm9ncmVzcy1hbHQtY29sb3ItMSwgIzVlYjcxNSl9LnByb2dyZXNzLXN0YXRpYy53YXJuaW5nPi5wcm9ncmVzcy1tZXRlcjpiZWZvcmV7YmFja2dyb3VuZC1jb2xvcjojYzIxZDAwO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLXByb2dyZXNzLWFsdC1j''@;'; + put 'put ''b2xvci0zLCAjYzIxZDAwKX0ucHJvZ3Jlc3Mtc3RhdGljLmRhbmdlcj4ucHJvZ3Jlc3MtbWV0ZXI6YmVmb3Jle2JhY2tncm91bmQtY29sb3I6I2MyMWQwMDtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1wcm9ncmVzcy1hbHQtY29sb3ItMiwgI2MyMWQwMCl9LmNhcmQtYmxvY2sgLnByb2dy''@;'; + put 'put ''ZXNzLC5jYXJkLWJsb2NrIC5wcm9ncmVzcy1zdGF0aWMsLmNhcmQtZm9vdGVyIC5wcm9ncmVzcywuY2FyZC1mb290ZXIgLnByb2dyZXNzLXN0YXRpY3ttYXJnaW46MDttYXJnaW4tdG9wOi0uNnJlbTtoZWlnaHQ6LjE4NzVyZW07cG9zaXRpb246YWJzb2x1dGU7bGVmdDowfS5jYXJkLWJsb2Nr''@;'; + put 'put ''IC5wcm9ncmVzcz5wcm9ncmVzcywuY2FyZC1ibG9jayAucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlciwuY2FyZC1mb290ZXIgLnByb2dyZXNzPnByb2dyZXNzLC5jYXJkLWZvb3RlciAucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcntoZWlnaHQ6LjE4NzVyZW07cG9zaXRp''@;'; + put 'put ''b246YWJzb2x1dGV9LmNhcmQtYmxvY2sgLnByb2dyZXNzLnRvcCwuY2FyZC1ibG9jayAucHJvZ3Jlc3Mtc3RhdGljLnRvcCwuY2FyZC1mb290ZXIgLnByb2dyZXNzLnRvcCwuY2FyZC1mb290ZXIgLnByb2dyZXNzLXN0YXRpYy50b3B7bWFyZ2luLXRvcDowO3RvcDowfS5uYXYtaXRlbSAucHJv''@;'; + put 'put ''Z3Jlc3MsLm5hdi1pdGVtIC5wcm9ncmVzcy1zdGF0aWN7bWFyZ2luOjA7aGVpZ2h0Oi4yNHJlbTttaW4taGVpZ2h0Oi4yNHJlbTttYXgtaGVpZ2h0Oi4yNHJlbTtsZWZ0OjB9Lm5hdi1pdGVtIC5wcm9ncmVzcz5wcm9ncmVzcywubmF2LWl0ZW0gLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3Mt''@;'; + put 'put ''bWV0ZXJ7aGVpZ2h0Oi4yNHJlbTttaW4taGVpZ2h0Oi4yNHJlbTttYXgtaGVpZ2h0Oi4yNHJlbTtwb3NpdGlvbjphYnNvbHV0ZX0ucHJvZ3Jlc3MtYmxvY2t7ZGlzcGxheTpmbGV4O3dpZHRoOjEwMCU7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXJ9LnByb2dyZXNz''@;'; + put 'put ''LWJsb2NrPip7ZmxleDowIDAgYXV0bztwYWRkaW5nLXJpZ2h0Oi42cmVtfS5wcm9ncmVzcy1ibG9jaz46Zmlyc3QtY2hpbGR7cGFkZGluZy1yaWdodDouOXJlbX0ucHJvZ3Jlc3MtYmxvY2s+Omxhc3QtY2hpbGR7cGFkZGluZy1yaWdodDowfS5wcm9ncmVzcy1ibG9jaz5sYWJlbHtmb250LXdl''@;'; + put 'put ''aWdodDo2MDB9LnByb2dyZXNzLWJsb2NrPi5wcm9ncmVzcywucHJvZ3Jlc3MtYmxvY2s+LnByb2dyZXNzLXN0YXRpY3tmbGV4OjAgMSBhdXRvfS5wcm9ncmVzcy1ibG9jaz4ucHJvZ3Jlc3MtZ3JvdXB7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2hlaWdodDphdXRvO2ZsZXg6MCAxIGF1dG87ZGlz''@;'; + put 'put ''cGxheTpmbGV4O3dpZHRoOjEwMCV9LnByb2dyZXNzLWJsb2NrPi5wcm9ncmVzcy1ncm91cCAuY2xyLXJvd3ttYXJnaW4tbGVmdDowO21hcmdpbi1yaWdodDowfS5wcm9ncmVzcy1ibG9jaz4ucHJvZ3Jlc3MtZ3JvdXAgLmNsci1yb3c+W2NsYXNzKj1jbHItY29sLV17cGFkZGluZy1sZWZ0OjA7''@;'; + put 'put ''cGFkZGluZy1yaWdodDowfS5jYXJkLWJsb2NrIC5wcm9ncmVzcy1ibG9ja3ttYXJnaW4tYm90dG9tOi42cmVtO3BhZGRpbmc6MH0uY2FyZC1ibG9jayAucHJvZ3Jlc3MtYmxvY2s6bGFzdC1jaGlsZHttYXJnaW4tYm90dG9tOjB9LmNhcmQtYmxvY2sgLnByb2dyZXNzLWJsb2NrPmxhYmVse21h''@;'; + put 'put ''eC13aWR0aDozMyU7bGluZS1oZWlnaHQ6LjlyZW19LmNhcmQtYmxvY2sgLnByb2dyZXNzLWJsb2NrIC5wcm9ncmVzcywuY2FyZC1ibG9jayAucHJvZ3Jlc3MtYmxvY2sgLnByb2dyZXNzLXN0YXRpY3twb3NpdGlvbjpyZWxhdGl2ZTtoZWlnaHQ6LjYzOTVyZW07bWFyZ2luLXRvcDowfS5jYXJk''@;'; + put 'put ''LWJsb2NrIC5wcm9ncmVzcy1ibG9jayAucHJvZ3Jlc3M+cHJvZ3Jlc3MsLmNhcmQtYmxvY2sgLnByb2dyZXNzLWJsb2NrIC5wcm9ncmVzcz4ucHJvZ3Jlc3MtbWV0ZXIsLmNhcmQtYmxvY2sgLnByb2dyZXNzLWJsb2NrIC5wcm9ncmVzcy1zdGF0aWM+cHJvZ3Jlc3MsLmNhcmQtYmxvY2sgLnBy''@;'; + put 'put ''b2dyZXNzLWJsb2NrIC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVye2hlaWdodDouNjM5NXJlbX1fOi1tcy1pbnB1dC1wbGFjZWhvbGRlciAucHJvZ3Jlc3MtYmxvY2s+bGFiZWwsOnJvb3QgLnByb2dyZXNzLWJsb2NrPmxhYmVse2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5zcGlubmVy''@;'; + put 'put ''e3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2hlaWdodDozLjZyZW07d2lkdGg6My42cmVtO21pbi1oZWlnaHQ6My42cmVtO21pbi13aWR0aDozLjZyZW07YW5pbWF0aW9uOnNwaW4gMXMgbGluZWFyIGluZmluaXRlO21hcmdpbjowO3BhZGRpbmc6MDtiYWNrZ3JvdW5k''@;'; + put 'put ''OnVybChkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGY4LCUzQ3N2ZyUyMGlkJTNEJTIyTGF5ZXJfMiUyMiUyMGRhdGEtbmFtZSUzRCUyMkxheWVyJTIwMiUyMiUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTIwdmlld0JveCUzRCUyMjAl''@;'; + put 'put ''MjAwJTIwNzIlMjA3MiUyMiUzRSUwQSUyMCUyMCUyMCUyMCUzQ2RlZnMlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NzdHlsZSUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMC5jbHMtMSUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUy''@;'; + put 'put ''MCUyMC5jbHMtMiUyMCU3QiUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGZpbGwlM0ElMjBub25lJTNCJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwc3Ryb2tlLW1pdGVybGltaXQlM0ElMjAxMCUzQiUw''@;'; + put 'put ''QSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHN0cm9rZS13aWR0aCUzQSUyMDVweCUzQiUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCU3RCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMC5jbHMtMSUyMCU3''@;'; + put 'put ''QiUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHN0cm9rZSUzQSUyMCUyMzAwMDAwMCUzQiUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHN0cm9rZS1vcGFjaXR5JTNBJTIwMC4xNSUzQiUwQSUyMCUyMCUy''@;'; + put 'put ''MCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCU3RCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMC5jbHMtMiUyMCU3QiUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHN0cm9rZSUzQSUyMCUyMzAwNzJhMyUzQiUwQSUyMCUy''@;'; + put 'put ''MCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCU3RCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQyUyRnN0eWxlJTNFJTBBJTIwJTIwJTIwJTIwJTNDJTJGZGVmcyUzRSUwQSUyMCUyMCUyMCUyMCUzQ3RpdGxlJTNFUHJlbG9hZGVyXzcyeDIlM0MlMkZ0aXRsZSUzRSUwQSUyMCUy''@;'; + put 'put ''MCUyMCUyMCUzQ2NpcmNsZSUyMGNsYXNzJTNEJTIyY2xzLTElMjIlMjBjeCUzRCUyMjM2JTIyJTIwY3klM0QlMjIzNiUyMiUyMHIlM0QlMjIzMyUyMiUyRiUzRSUwQSUyMCUyMCUyMCUyMCUzQ3BhdGglMjBjbGFzcyUzRCUyMmNscy0yJTIyJTIwZCUzRCUyMk0xNC4zJTJDNjAuOUEzMyUyQzMz''@;'; + put 'put ''JTJDMCUyQzAlMkMxJTJDMzYlMkMzJTIyJTNFJTBBJTIwJTIwJTIwJTIwJTNDJTJGcGF0aCUzRSUwQSUzQyUyRnN2ZyUzRSUwQSk7dGV4dC1pbmRlbnQ6MTAwJTtvdmVyZmxvdzpoaWRkZW47d2hpdGUtc3BhY2U6bm93cmFwfS5zcGlubmVyLnNwaW5uZXItbWR7aGVpZ2h0OjEuOHJlbTt3aWR0''@;'; + put 'put ''aDoxLjhyZW07bWluLWhlaWdodDoxLjhyZW07bWluLXdpZHRoOjEuOHJlbX0uc3Bpbm5lci5zcGlubmVyLWlubGluZSwuc3Bpbm5lci5zcGlubmVyLXNte2hlaWdodDouOXJlbTt3aWR0aDouOXJlbTttaW4taGVpZ2h0Oi45cmVtO21pbi13aWR0aDouOXJlbX0uc3Bpbm5lci5zcGlubmVyLWlu''@;'; + put 'put ''bGluZXt2ZXJ0aWNhbC1hbGlnbjp0ZXh0LWJvdHRvbX0uc3Bpbm5lci5zcGlubmVyLWludmVyc2V7YmFja2dyb3VuZDp1cmwoZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9dXRmOCwlM0NzdmclMjBpZCUzRCUyMkxheWVyXzIlMjIlMjBkYXRhLW5hbWUlM0QlMjJMYXllciUyMDIlMjIlMjB4''@;'; + put 'put ''bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDcyJTIwNzIlMjIlM0UlMEElMjAlMjAlMjAlMjAlM0NkZWZzJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDc3R5bGUlM0UlMEElMjAlMjAlMjAlMjAl''@;'; + put 'put ''MjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAuY2xzLTElMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAuY2xzLTIlMjAlN0IlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBmaWxsJTNBJTIwbm9uZSUzQiUwQSUyMCUyMCUyMCUy''@;'; + put 'put ''MCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHN0cm9rZS1taXRlcmxpbWl0JTNBJTIwMTAlM0IlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBzdHJva2Utd2lkdGglM0ElMjA1cHglM0IlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAl''@;'; + put 'put ''MjAlMjAlMjAlMjAlMjAlN0QlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAuY2xzLTElMjAlN0IlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBzdHJva2UlM0ElMjAlMjNmZmZmZmYlM0IlMEElMjAlMjAlMjAlMjAlMjAlMjAl''@;'; + put 'put ''MjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBzdHJva2Utb3BhY2l0eSUzQSUyMDAuMTUlM0IlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlN0QlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAuY2xzLTIlMjAlN0IlMEElMjAlMjAlMjAlMjAl''@;'; + put 'put ''MjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBzdHJva2UlM0ElMjAlMjM3NGMxZTIlM0IlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlN0QlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0MlMkZzdHlsZSUzRSUwQSUyMCUyMCUyMCUyMCUzQyUyRmRl''@;'; + put 'put ''ZnMlM0UlMEElMjAlMjAlMjAlMjAlM0N0aXRsZSUzRVByZWxvYWRlcl83MngyJTNDJTJGdGl0bGUlM0UlMEElMjAlMjAlMjAlMjAlM0NjaXJjbGUlMjBjbGFzcyUzRCUyMmNscy0xJTIyJTIwY3glM0QlMjIzNiUyMiUyMGN5JTNEJTIyMzYlMjIlMjByJTNEJTIyMzMlMjIlMkYlM0UlMEElMjAl''@;'; + put 'put ''MjAlMjAlMjAlM0NwYXRoJTIwY2xhc3MlM0QlMjJjbHMtMiUyMiUyMGQlM0QlMjJNMTQuMyUyQzYwLjlBMzMlMkMzMyUyQzAlMkMwJTJDMSUyQzM2JTJDMyUyMiUzRSUwQSUyMCUyMCUyMCUyMCUzQyUyRnBhdGglM0UlMEElM0MlMkZzdmclM0UlMEEpfS5zcGlubmVyLnNwaW5uZXItbmV1dHJh''@;'; + put 'put ''bC0we2JhY2tncm91bmQ6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0ZjgsJTNDc3ZnJTIwaWQlM0QlMjJMYXllcl8yJTIyJTIwZGF0YS1uYW1lJTNEJTIyTGF5ZXIlMjAyJTIyJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlMjB2''@;'; + put 'put ''aWV3Qm94JTNEJTIyMCUyMDAlMjA3MiUyMDcyJTIyJTNFJTBBJTIwJTIwJTIwJTIwJTNDZGVmcyUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3N0eWxlJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwLmNscy0xJTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIw''@;'; + put 'put ''JTIwJTIwJTIwJTIwJTIwJTIwLmNscy0yJTIwJTdCJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwZmlsbCUzQSUyMG5vbmUlM0IlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBzdHJva2UtbWl0ZXJsaW1p''@;'; + put 'put ''dCUzQSUyMDEwJTNCJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwc3Ryb2tlLXdpZHRoJTNBJTIwNXB4JTNCJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTdEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIw''@;'; + put 'put ''JTIwLmNscy0xJTIwJTdCJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwc3Ryb2tlJTNBJTIwJTIzdHJhbnNwYXJlbnQlM0IlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBzdHJva2Utb3BhY2l0eSUzQSUy''@;'; + put 'put ''MDElM0IlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlN0QlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAuY2xzLTIlMjAlN0IlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBzdHJva2UlM0ElMjAlMjNm''@;'; + put 'put ''ZmZmZmYlM0IlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlN0QlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0MlMkZzdHlsZSUzRSUwQSUyMCUyMCUyMCUyMCUzQyUyRmRlZnMlM0UlMEElMjAlMjAlMjAlMjAlM0N0aXRsZSUzRVByZWxvYWRlcl83MngyJTNDJTJG''@;'; + put 'put ''dGl0bGUlM0UlMEElMjAlMjAlMjAlMjAlM0NjaXJjbGUlMjBjbGFzcyUzRCUyMmNscy0xJTIyJTIwY3glM0QlMjIzNiUyMiUyMGN5JTNEJTIyMzYlMjIlMjByJTNEJTIyMzMlMjIlMkYlM0UlMEElMjAlMjAlMjAlMjAlM0NwYXRoJTIwY2xhc3MlM0QlMjJjbHMtMiUyMiUyMGQlM0QlMjJNMTQu''@;'; + put 'put ''MyUyQzYwLjlBMzMlMkMzMyUyQzAlMkMwJTJDMSUyQzM2JTJDMyUyMiUzRSUwQSUyMCUyMCUyMCUyMCUzQyUyRnBhdGglM0UlMEElM0MlMkZzdmclM0UlMEEpfS5zcGlubmVyLnNwaW5uZXItY2hlY2t7YW5pbWF0aW9uOm5vbmU7YmFja2dyb3VuZDp1cmwoZGF0YTppbWFnZS9zdmcreG1sO2No''@;'; + put 'put ''YXJzZXQ9dXRmOCwlM0NzdmclMjB2ZXJzaW9uJTNEJTIyMS4xJTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMzYlMjAzNiUyMiUyMHByZXNlcnZlQXNwZWN0UmF0aW8lM0QlMjJ4TWlkWU1pZCUyMG1lZXQlMjIlMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUy''@;'; + put 'put ''RnN2ZyUyMiUyMHhtbG5zJTNBeGxpbmslM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjE5OTklMkZ4bGluayUyMiUyMGZvY3VzYWJsZSUzRCUyMmZhbHNlJTIyJTIwYXJpYS1oaWRkZW4lM0QlMjJ0cnVlJTIyJTIwcm9sZSUzRCUyMmltZyUyMiUzRSUzQ3BhdGglMjBmaWxsJTNEJTIy''@;'; + put 'put ''JTIzMDA3MmEzJTIyJTIwY2xhc3MlM0QlMjJjbHItaS1vdXRsaW5lJTIwY2xyLWktb3V0bGluZS1wYXRoLTElMjIlMjBkJTNEJTIyTTEzLjcyJTJDMjcuNjklMkMzLjI5JTJDMTcuMjdhMSUyQzElMkMwJTJDMCUyQzElMkMxLjQxLTEuNDFsOSUyQzlMMzEuMjklMkM3LjI5YTElMkMxJTJDMCUy''@;'; + put 'put ''QzAlMkMxJTJDMS40MSUyQzEuNDFaJTIyJTNFJTNDJTJGcGF0aCUzRSUzQyUyRnN2ZyUzRSl9LmJ0bi1zbSAuc3Bpbm5lciwuYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pdGVtIC5idG4gLnNwaW5uZXJ7aGVpZ2h0Oi42NXJlbTt3aWR0aDouNjVyZW07bWluLWhlaWdodDouNjVyZW07bWluLXdp''@;'; + put 'put ''ZHRoOi42NXJlbX0uYnRuLWljb246bm90KC5idG4tc20pIC5zcGlubmVye2hlaWdodDouOHJlbTt3aWR0aDouOHJlbTttaW4taGVpZ2h0Oi44cmVtO21pbi13aWR0aDouOHJlbX06cm9vdHstLWNsci10YWJsZS1iZ2NvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTApOy0tY2xyLXRoZWFk''@;'; + put 'put ''LWJnY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNTApOy0tY2xyLXRhYmxlLWhlYWRlci1ib3JkZXItYm90dG9tLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTQwMCk7LS1jbHItdGFibGUtZm9vdGVyLWJvcmRlci10b3AtY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwt''@;'; + put 'put ''NDAwKTstLWNsci10YWJsZS1ib3JkZXItY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNDAwKTstLWNsci10YWJsZXJvdy1ib3JkZXJjb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC0yMDApOy0tY2xyLXRhYmxlLWJvcmRlci1yYWRpdXM6dmFyKC0tY2xyLWdsb2JhbC1ib3JkZXJy''@;'; + put 'put ''YWRpdXMpOy0tY2xyLXRhYmxlLWJvcmRlcndpZHRoOnZhcigtLWNsci1nbG9iYWwtYm9yZGVyd2lkdGgpOy0tY2xyLXRhYmxlLWNvcm5lcmNlbGxyYWRpdXM6LjFyZW07LS1jbHItdGFibGUtZm9udC1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC03MDApOy0tY2xyLXRoZWFkLWNvbG9y''@;'; + put 'put ''OiM2NjY2NjZ9LnRhYmxle2JvcmRlci1jb2xsYXBzZTpzZXBhcmF0ZTtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLXdpZHRoOi4wNXJlbTtib3JkZXItd2lkdGg6dmFyKC0tY2xyLXRhYmxlLWJvcmRlcndpZHRoLCAuMDVyZW0pO2JvcmRlci1jb2xvcjojY2NjO2JvcmRlci1jb2xvcjp2YXIo''@;'; + put 'put ''LS1jbHItdGFibGUtYm9yZGVyLWNvbG9yLCAjY2NjY2NjKTtib3JkZXItcmFkaXVzOi4xNXJlbTtib3JkZXItcmFkaXVzOnZhcigtLWNsci10YWJsZS1ib3JkZXItcmFkaXVzLCAuMTVyZW0pO2JhY2tncm91bmQtY29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci10YWJsZS1i''@;'; + put 'put ''Z2NvbG9yLCB3aGl0ZSk7Y29sb3I6IzY2Njtjb2xvcjp2YXIoLS1jbHItdGFibGUtZm9udC1jb2xvciwgIzY2NjY2Nik7bWFyZ2luOjA7bWFyZ2luLXRvcDoxLjJyZW07bWF4LXdpZHRoOjEwMCU7d2lkdGg6MTAwJX0udGFibGUgdGgsLnRhYmxlIHRke2ZvbnQtc2l6ZTouNjVyZW07bGluZS1o''@;'; + put 'put ''ZWlnaHQ6LjdyZW07Ym9yZGVyLXRvcC1zdHlsZTpzb2xpZDtib3JkZXItdG9wLXdpZHRoOi4wNXJlbTtib3JkZXItdG9wLXdpZHRoOnZhcigtLWNsci10YWJsZS1ib3JkZXJ3aWR0aCwgLjA1cmVtKTtib3JkZXItdG9wLWNvbG9yOiNlOGU4ZTg7Ym9yZGVyLXRvcC1jb2xvcjp2YXIoLS1jbHIt''@;'; + put 'put ''dGFibGVyb3ctYm9yZGVyY29sb3IsICNlOGU4ZTgpO3BhZGRpbmc6LjU1cmVtIC42cmVtO3RleHQtYWxpZ246Y2VudGVyO3ZlcnRpY2FsLWFsaWduOnRvcH0udGFibGUgdGgubGVmdCwudGFibGUgdGQubGVmdHt0ZXh0LWFsaWduOmxlZnR9LnRhYmxlIHRoLmxlZnQ6Zmlyc3QtY2hpbGQsLnRh''@;'; + put 'put ''YmxlIHRkLmxlZnQ6Zmlyc3QtY2hpbGR7cGFkZGluZy1sZWZ0Oi4zcmVtfS50YWJsZSB0aHtjb2xvcjojNjY2O2NvbG9yOnZhcigtLWNsci10aGVhZC1jb2xvciwgIzY2NjY2Nik7Zm9udC1zaXplOi41NXJlbTtmb250LXdlaWdodDo2MDA7bGV0dGVyLXNwYWNpbmc6LjAzZW07YmFja2dyb3Vu''@;'; + put 'put ''ZC1jb2xvcjojZmFmYWZhO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLXRoZWFkLWJnY29sb3IsICNmYWZhZmEpO3ZlcnRpY2FsLWFsaWduOmJvdHRvbTtib3JkZXItYm90dG9tLXN0eWxlOnNvbGlkO2JvcmRlci1ib3R0b20td2lkdGg6LjA1cmVtO2JvcmRlci1ib3R0b20td2lkdGg6dmFy''@;'; + put 'put ''KC0tY2xyLXRhYmxlLWJvcmRlcndpZHRoLCAuMDVyZW0pO2JvcmRlci1ib3R0b20tY29sb3I6I2NjYztib3JkZXItYm90dG9tLWNvbG9yOnZhcigtLWNsci10YWJsZS1ib3JkZXItY29sb3IsICNjY2NjY2MpO2JvcmRlci10b3A6MCBub25lfS50YWJsZSB0Ym9keSB0cjpmaXJzdC1jaGlsZCB0''@;'; + put 'put ''ZHtib3JkZXItdG9wOjAgbm9uZX0udGFibGUgdGJvZHkrdGJvZHl7Ym9yZGVyLXRvcC1zdHlsZTpzb2xpZDtib3JkZXItdG9wLXdpZHRoOi4wNXJlbTtib3JkZXItdG9wLXdpZHRoOnZhcigtLWNsci10YWJsZS1ib3JkZXJ3aWR0aCwgLjA1cmVtKTtib3JkZXItdG9wLWNvbG9yOiNjY2M7Ym9y''@;'; + put 'put ''ZGVyLXRvcC1jb2xvcjp2YXIoLS1jbHItdGFibGUtYm9yZGVyLWNvbG9yLCAjY2NjY2NjKX0udGFibGUgdGhlYWQgdGg6Zmlyc3QtY2hpbGR7Ym9yZGVyLXJhZGl1czowO2JvcmRlci10b3AtbGVmdC1yYWRpdXM6LjFyZW07Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czp2YXIoLS1jbHItdGFibGUt''@;'; + put 'put ''Y29ybmVyY2VsbHJhZGl1cywgLjFyZW0pfS50YWJsZSB0aGVhZCB0aDpsYXN0LWNoaWxke2JvcmRlci1yYWRpdXM6MDtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czouMXJlbTtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czp2YXIoLS1jbHItdGFibGUtY29ybmVyY2VsbHJhZGl1cywgLjFyZW0pfS50''@;'; + put 'put ''YWJsZSB0Ym9keTpsYXN0LWNoaWxkIHRyOmxhc3QtY2hpbGQgdGQ6Zmlyc3QtY2hpbGR7Ym9yZGVyLXJhZGl1czowO2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6LjFyZW07Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czp2YXIoLS1jbHItdGFibGUtY29ybmVyY2VsbHJhZGl1cywgLjFyZW0p''@;'; + put 'put ''fS50YWJsZSB0Ym9keTpsYXN0LWNoaWxkIHRyOmxhc3QtY2hpbGQgdGQ6bGFzdC1jaGlsZHtib3JkZXItcmFkaXVzOjA7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6LjFyZW07Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6dmFyKC0tY2xyLXRhYmxlLWNvcm5lcmNlbGxyYWRpdXMsIC4x''@;'; + put 'put ''cmVtKX0udGFibGUtY29tcGFjdCB0aCwudGFibGUtY29tcGFjdCB0ZHtwYWRkaW5nLXRvcDouM3JlbTtwYWRkaW5nLWJvdHRvbTouMjVyZW19LnRhYmxlLnRhYmxlLXZlcnRpY2FsIHRoZWFkIHRoe2JvcmRlcjowO2JvcmRlci1yYWRpdXM6MDtkaXNwbGF5Om5vbmV9LnRhYmxlLnRhYmxlLXZl''@;'; + put 'put ''cnRpY2FsIHRoe2JvcmRlci1ib3R0b206MDtib3JkZXItdG9wLXN0eWxlOnNvbGlkO2JvcmRlci10b3Atd2lkdGg6LjA1cmVtO2JvcmRlci10b3Atd2lkdGg6dmFyKC0tY2xyLXRhYmxlLWJvcmRlcndpZHRoLCAuMDVyZW0pO2JvcmRlci10b3AtY29sb3I6I2NjYztib3JkZXItdG9wLWNvbG9y''@;'; + put 'put ''OnZhcigtLWNsci10YWJsZS1ib3JkZXItY29sb3IsICNjY2NjY2MpO3ZlcnRpY2FsLWFsaWduOnRvcH0udGFibGUudGFibGUtdmVydGljYWwgdGQsLnRhYmxlLnRhYmxlLXZlcnRpY2FsIHRoe3RleHQtYWxpZ246bGVmdDtib3JkZXItY29sb3I6I2NjYztib3JkZXItY29sb3I6dmFyKC0tY2xy''@;'; + put 'put ''LXRhYmxlLWJvcmRlci1jb2xvciwgI2NjY2NjYyl9LnRhYmxlLnRhYmxlLXZlcnRpY2FsIHRkOmZpcnN0LWNoaWxkLC50YWJsZS50YWJsZS12ZXJ0aWNhbCB0aDpmaXJzdC1jaGlsZHtib3JkZXItcmlnaHQtc3R5bGU6c29saWQ7Ym9yZGVyLXJpZ2h0LXdpZHRoOi4wNXJlbTtib3JkZXItcmln''@;'; + put 'put ''aHQtd2lkdGg6dmFyKC0tY2xyLXRhYmxlLWJvcmRlcndpZHRoLCAuMDVyZW0pO2JvcmRlci1yaWdodC1jb2xvcjojY2NjO2JvcmRlci1yaWdodC1jb2xvcjp2YXIoLS1jbHItdGFibGUtYm9yZGVyLWNvbG9yLCAjY2NjY2NjKTtiYWNrZ3JvdW5kLWNvbG9yOiNmYWZhZmE7YmFja2dyb3VuZC1j''@;'; + put 'put ''b2xvcjp2YXIoLS1jbHItdGhlYWQtYmdjb2xvciwgI2ZhZmFmYSk7Zm9udC13ZWlnaHQ6NjAwfS50YWJsZS50YWJsZS12ZXJ0aWNhbCB0Ym9keTpmaXJzdC1vZi10eXBlIHRyOmZpcnN0LWNoaWxkIHRoLC50YWJsZS50YWJsZS12ZXJ0aWNhbCB0Ym9keTpmaXJzdC1vZi10eXBlIHRyOmZpcnN0''@;'; + put 'put ''LWNoaWxkIHRke2JvcmRlci10b3A6MCBub25lfS50YWJsZS50YWJsZS12ZXJ0aWNhbCB0Ym9keTpmaXJzdC1vZi10eXBlIHRyOmZpcnN0LWNoaWxkIHRoOmZpcnN0LWNoaWxkLC50YWJsZS50YWJsZS12ZXJ0aWNhbCB0Ym9keTpmaXJzdC1vZi10eXBlIHRyOmZpcnN0LWNoaWxkIHRkOmZpcnN0''@;'; + put 'put ''LWNoaWxke2JvcmRlci1yYWRpdXM6MDtib3JkZXItdG9wLWxlZnQtcmFkaXVzOi4xcmVtO2JvcmRlci10b3AtbGVmdC1yYWRpdXM6dmFyKC0tY2xyLXRhYmxlLWNvcm5lcmNlbGxyYWRpdXMsIC4xcmVtKX0udGFibGUudGFibGUtdmVydGljYWwgdGJvZHk6Zmlyc3Qtb2YtdHlwZSB0cjpmaXJz''@;'; + put 'put ''dC1jaGlsZCB0aDpsYXN0LWNoaWxkLC50YWJsZS50YWJsZS12ZXJ0aWNhbCB0Ym9keTpmaXJzdC1vZi10eXBlIHRyOmZpcnN0LWNoaWxkIHRkOmxhc3QtY2hpbGR7Ym9yZGVyLXJhZGl1czowO2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOi4xcmVtO2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOnZh''@;'; + put 'put ''cigtLWNsci10YWJsZS1jb3JuZXJjZWxscmFkaXVzLCAuMXJlbSl9LnRhYmxlLnRhYmxlLXZlcnRpY2FsIHRib2R5Omxhc3QtY2hpbGQgdHI6bGFzdC1jaGlsZCB0aDpmaXJzdC1jaGlsZCwudGFibGUudGFibGUtdmVydGljYWwgdGJvZHk6bGFzdC1jaGlsZCB0cjpsYXN0LWNoaWxkIHRkOmZp''@;'; + put 'put ''cnN0LWNoaWxke2JvcmRlci1yYWRpdXM6MDtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOi4xcmVtO2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6dmFyKC0tY2xyLXRhYmxlLWNvcm5lcmNlbGxyYWRpdXMsIC4xcmVtKX0udGFibGUudGFibGUtdmVydGljYWwgdGJvZHk6bGFzdC1jaGlsZCB0''@;'; + put 'put ''cjpsYXN0LWNoaWxkIHRoOmxhc3QtY2hpbGQsLnRhYmxlLnRhYmxlLXZlcnRpY2FsIHRib2R5Omxhc3QtY2hpbGQgdHI6bGFzdC1jaGlsZCB0ZDpsYXN0LWNoaWxke2JvcmRlci1yYWRpdXM6MDtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czouMXJlbTtib3JkZXItYm90dG9tLXJpZ2h0LXJh''@;'; + put 'put ''ZGl1czp2YXIoLS1jbHItdGFibGUtY29ybmVyY2VsbHJhZGl1cywgLjFyZW0pfS50YWJsZS50YWJsZS1ub2JvcmRlcntib3JkZXItcmFkaXVzOjA7Ym94LXNoYWRvdzpub25lO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Ym9yZGVyOjB9LnRhYmxlLnRhYmxlLW5vYm9yZGVyIHRoe2Jh''@;'; + put 'put ''Y2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Ym9yZGVyLWJvdHRvbS1jb2xvcjojY2NjO2JvcmRlci1ib3R0b20tY29sb3I6dmFyKC0tY2xyLXRhYmxlLWJvcmRlci1jb2xvciwgI2NjY2NjYyk7Ym9yZGVyLXRvcDowIG5vbmV9LnRhYmxlLnRhYmxlLW5vYm9yZGVyIHRoOmZpcnN0LWNoaWxk''@;'; + put 'put ''e2JvcmRlci1yaWdodDowIG5vbmV9LnRhYmxlLnRhYmxlLW5vYm9yZGVyIHRke2JvcmRlci10b3A6MCBub25lO3BhZGRpbmctdG9wOi42cmVtfS50YWJsZS50YWJsZS1ub2JvcmRlciB0ZDpmaXJzdC1jaGlsZHtib3JkZXItcmlnaHQ6MCBub25lfS50YWJsZS50YWJsZS1ub2JvcmRlciB0aGVh''@;'; + put 'put ''ZCB0aDpmaXJzdC1jaGlsZCwudGFibGUudGFibGUtbm9ib3JkZXIgdGhlYWQgdGg6bGFzdC1jaGlsZHtib3JkZXItcmFkaXVzOjB9LnRhYmxlLnRhYmxlLW5vYm9yZGVyIHRoLC50YWJsZS50YWJsZS1ub2JvcmRlciB0ZHtib3JkZXItcmFkaXVzOjAhaW1wb3J0YW50fS50YWJsZS50YWJsZS1u''@;'; + put 'put ''b2JvcmRlciB0aDpmaXJzdC1jaGlsZCwudGFibGUudGFibGUtbm9ib3JkZXIgdGQ6Zmlyc3QtY2hpbGR7cGFkZGluZy1sZWZ0OjB9LnRhYmxlLnRhYmxlLWNvbXBhY3QgdGgsLnRhYmxlLnRhYmxlLWNvbXBhY3QgdGR7cGFkZGluZy10b3A6LjNyZW07cGFkZGluZy1ib3R0b206LjI1cmVtfS50''@;'; + put 'put ''YWJsZS50YWJsZS1jb21wYWN0LnRhYmxlLW5vYm9yZGVyIHRoLC50YWJsZS50YWJsZS1jb21wYWN0LnRhYmxlLW5vYm9yZGVyIHRke3BhZGRpbmctdG9wOi4zNXJlbTtwYWRkaW5nLWJvdHRvbTouM3JlbX06cm9vdHstLWNsci10b29sdGlwLWJhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWNv''@;'; + put 'put ''bG9yLW5ldXRyYWwtMTAwMCk7LS1jbHItdG9vbHRpcC1ib3JkZXItcmFkaXVzOnZhcigtLWNsci1nbG9iYWwtYm9yZGVycmFkaXVzKTstLWNsci10b29sdGlwLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTApOy0tY2xyLXRvb2x0aXAtZm9udC13ZWlnaHQ6dmFyKC0tY2xyLXAzLWZv''@;'; + put 'put ''bnQtd2VpZ2h0KX0udG9vbHRpcHtkaXNwbGF5OmlubGluZS1ibG9jaztwb3NpdGlvbjpyZWxhdGl2ZTt0ZXh0LWFsaWduOmxlZnQ7b3ZlcmZsb3c6dmlzaWJsZX0udG9vbHRpcD4udG9vbHRpcC1jb250ZW50e3Zpc2liaWxpdHk6aGlkZGVuO29wYWNpdHk6MDt0cmFuc2l0aW9uOm9wYWNpdHkg''@;'; + put 'put ''LjNzIGxpbmVhcjt3aGl0ZS1zcGFjZTpub3JtYWw7ei1pbmRleDoxMDUwfS50b29sdGlwOmhvdmVyPi50b29sdGlwLWNvbnRlbnQsLnRvb2x0aXA6Zm9jdXM+LnRvb2x0aXAtY29udGVudHt2aXNpYmlsaXR5OnZpc2libGU7b3BhY2l0eToxfS50b29sdGlwOmhvdmVyPi50b29sdGlwLWNvbnRl''@;'; + put 'put ''bnQ6ZW1wdHksLnRvb2x0aXA6Zm9jdXM+LnRvb2x0aXAtY29udGVudDplbXB0eXt2aXNpYmlsaXR5OmhpZGRlbjtvcGFjaXR5OjB9LnRvb2x0aXA6Zm9jdXN7b3V0bGluZTowfS50b29sdGlwOmZvY3VzPjpmaXJzdC1jaGlsZHtvdXRsaW5lLW9mZnNldDouMDVyZW07b3V0bGluZS13aWR0aDou''@;'; + put 'put ''MDVyZW07b3V0bGluZS1jb2xvcjojM2I5OWZjO291dGxpbmUtc3R5bGU6c29saWR9LnRvb2x0aXA+LnRvb2x0aXAtY29udGVudCwudG9vbHRpcC50b29sdGlwLXRvcC1yaWdodD4udG9vbHRpcC1jb250ZW50LC50b29sdGlwIC50b29sdGlwLWNvbnRlbnQudG9vbHRpcC10b3AtcmlnaHR7Y29s''@;'; + put 'put ''b3I6I2ZmZjtjb2xvcjp2YXIoLS1jbHItdG9vbHRpcC1jb2xvciwgd2hpdGUpO2ZvbnQtc2l6ZTouNjVyZW07Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtd2VpZ2h0OnZhcigtLWNsci10b29sdGlwLWZvbnQtd2VpZ2h0LCA0MDApO2xldHRlci1zcGFjaW5nOm5vcm1hbDtiYWNrZ3JvdW5kLWNvbG9y''@;'; + put 'put ''OiMwMDA7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yLCBibGFjayk7Ym9yZGVyLXJhZGl1czouMTVyZW07Ym9yZGVyLXJhZGl1czp2YXIoLS1jbHItdG9vbHRpcC1ib3JkZXItcmFkaXVzLCAuMTVyZW0pO2xpbmUtaGVpZ2h0Oi45cmVtO21hcmdp''@;'; + put 'put ''bjowO3BhZGRpbmc6LjQ1cmVtIC42cmVtO3dpZHRoOjEycmVtO3Bvc2l0aW9uOmFic29sdXRlO3RvcDphdXRvO2JvdHRvbToxMDAlO2xlZnQ6NTAlO3JpZ2h0OmF1dG87Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czowO21hcmdpbi1ib3R0b206LjhyZW19LnRvb2x0aXA+LnRvb2x0aXAtY29u''@;'; + put 'put ''dGVudDpiZWZvcmUsLnRvb2x0aXAudG9vbHRpcC10b3AtcmlnaHQ+LnRvb2x0aXAtY29udGVudDpiZWZvcmUsLnRvb2x0aXAgLnRvb2x0aXAtY29udGVudC50b29sdGlwLXRvcC1yaWdodDpiZWZvcmV7cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOi0uNDJyZW07bGVmdDowO3RvcDphdXRvO3Jp''@;'; + put 'put ''Z2h0OmF1dG87Y29udGVudDoiIjtib3JkZXItbGVmdDouM3JlbSBzb2xpZCAjMDAwO2JvcmRlci1sZWZ0LWNvbG9yOnZhcigtLWNsci10b29sdGlwLWJhY2tncm91bmQtY29sb3IpO2JvcmRlci10b3A6LjI1cmVtIHNvbGlkICMwMDA7Ym9yZGVyLXRvcC1jb2xvcjp2YXIoLS1jbHItdG9vbHRp''@;'; + put 'put ''cC1iYWNrZ3JvdW5kLWNvbG9yKTtib3JkZXItcmlnaHQ6LjNyZW0gc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLWJvdHRvbTouMjVyZW0gc29saWQgdHJhbnNwYXJlbnR9LnRvb2x0aXAudG9vbHRpcC10b3AtbGVmdD4udG9vbHRpcC1jb250ZW50LC50b29sdGlwIC50b29sdGlwLWNvbnRlbnQu''@;'; + put 'put ''dG9vbHRpcC10b3AtbGVmdHtjb2xvcjojZmZmO2NvbG9yOnZhcigtLWNsci10b29sdGlwLWNvbG9yLCB3aGl0ZSk7Zm9udC1zaXplOi42NXJlbTtmb250LXdlaWdodDo0MDA7Zm9udC13ZWlnaHQ6dmFyKC0tY2xyLXRvb2x0aXAtZm9udC13ZWlnaHQsIDQwMCk7bGV0dGVyLXNwYWNpbmc6bm9y''@;'; + put 'put ''bWFsO2JhY2tncm91bmQtY29sb3I6IzAwMDtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci10b29sdGlwLWJhY2tncm91bmQtY29sb3IsIGJsYWNrKTtib3JkZXItcmFkaXVzOi4xNXJlbTtib3JkZXItcmFkaXVzOnZhcigtLWNsci10b29sdGlwLWJvcmRlci1yYWRpdXMsIC4xNXJlbSk7bGlu''@;'; + put 'put ''ZS1oZWlnaHQ6LjlyZW07bWFyZ2luOjA7cGFkZGluZzouNDVyZW0gLjZyZW07d2lkdGg6MTJyZW07cG9zaXRpb246YWJzb2x1dGU7dG9wOmF1dG87Ym90dG9tOjEwMCU7cmlnaHQ6NTAlO2xlZnQ6YXV0bztib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czowO21hcmdpbi1ib3R0b206LjhyZW19''@;'; + put 'put ''LnRvb2x0aXAudG9vbHRpcC10b3AtbGVmdD4udG9vbHRpcC1jb250ZW50OmJlZm9yZSwudG9vbHRpcCAudG9vbHRpcC1jb250ZW50LnRvb2x0aXAtdG9wLWxlZnQ6YmVmb3Jle3Bvc2l0aW9uOmFic29sdXRlO2JvdHRvbTotLjQycmVtO3JpZ2h0OjA7dG9wOmF1dG87bGVmdDphdXRvO2NvbnRl''@;'; + put 'put ''bnQ6IiI7Ym9yZGVyLXJpZ2h0Oi4zcmVtIHNvbGlkICMwMDA7Ym9yZGVyLXJpZ2h0LWNvbG9yOnZhcigtLWNsci10b29sdGlwLWJhY2tncm91bmQtY29sb3IpO2JvcmRlci10b3A6LjI1cmVtIHNvbGlkICMwMDA7Ym9yZGVyLXRvcC1jb2xvcjp2YXIoLS1jbHItdG9vbHRpcC1iYWNrZ3JvdW5k''@;'; + put 'put ''LWNvbG9yKTtib3JkZXItbGVmdDouM3JlbSBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItYm90dG9tOi4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudH0udG9vbHRpcC50b29sdGlwLWJvdHRvbS1yaWdodD4udG9vbHRpcC1jb250ZW50LC50b29sdGlwIC50b29sdGlwLWNvbnRlbnQudG9vbHRpcC1i''@;'; + put 'put ''b3R0b20tcmlnaHR7Y29sb3I6I2ZmZjtjb2xvcjp2YXIoLS1jbHItdG9vbHRpcC1jb2xvciwgd2hpdGUpO2ZvbnQtc2l6ZTouNjVyZW07Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtd2VpZ2h0OnZhcigtLWNsci10b29sdGlwLWZvbnQtd2VpZ2h0LCA0MDApO2xldHRlci1zcGFjaW5nOm5vcm1hbDti''@;'; + put 'put ''YWNrZ3JvdW5kLWNvbG9yOiMwMDA7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yLCBibGFjayk7Ym9yZGVyLXJhZGl1czouMTVyZW07Ym9yZGVyLXJhZGl1czp2YXIoLS1jbHItdG9vbHRpcC1ib3JkZXItcmFkaXVzLCAuMTVyZW0pO2xpbmUtaGVp''@;'; + put 'put ''Z2h0Oi45cmVtO21hcmdpbjowO3BhZGRpbmc6LjQ1cmVtIC42cmVtO3dpZHRoOjEycmVtO3Bvc2l0aW9uOmFic29sdXRlO2JvdHRvbTphdXRvO3RvcDoxMDAlO2xlZnQ6NTAlO3JpZ2h0OmF1dG87Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czowO21hcmdpbi10b3A6LjhyZW19LnRvb2x0aXAudG9v''@;'; + put 'put ''bHRpcC1ib3R0b20tcmlnaHQ+LnRvb2x0aXAtY29udGVudDpiZWZvcmUsLnRvb2x0aXAgLnRvb2x0aXAtY29udGVudC50b29sdGlwLWJvdHRvbS1yaWdodDpiZWZvcmV7cG9zaXRpb246YWJzb2x1dGU7dG9wOi0uNDJyZW07bGVmdDowO2JvdHRvbTphdXRvO3JpZ2h0OmF1dG87Y29udGVudDoi''@;'; + put 'put ''Ijtib3JkZXItbGVmdDouM3JlbSBzb2xpZCAjMDAwO2JvcmRlci1sZWZ0LWNvbG9yOnZhcigtLWNsci10b29sdGlwLWJhY2tncm91bmQtY29sb3IpO2JvcmRlci1ib3R0b206LjI1cmVtIHNvbGlkICMwMDA7Ym9yZGVyLWJvdHRvbS1jb2xvcjp2YXIoLS1jbHItdG9vbHRpcC1iYWNrZ3JvdW5k''@;'; + put 'put ''LWNvbG9yKTtib3JkZXItcmlnaHQ6LjNyZW0gc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLXRvcDouMjVyZW0gc29saWQgdHJhbnNwYXJlbnR9LnRvb2x0aXAudG9vbHRpcC1ib3R0b20tbGVmdD4udG9vbHRpcC1jb250ZW50LC50b29sdGlwIC50b29sdGlwLWNvbnRlbnQudG9vbHRpcC1ib3R0''@;'; + put 'put ''b20tbGVmdHtjb2xvcjojZmZmO2NvbG9yOnZhcigtLWNsci10b29sdGlwLWNvbG9yLCB3aGl0ZSk7Zm9udC1zaXplOi42NXJlbTtmb250LXdlaWdodDo0MDA7Zm9udC13ZWlnaHQ6dmFyKC0tY2xyLXRvb2x0aXAtZm9udC13ZWlnaHQsIDQwMCk7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO2JhY2tn''@;'; + put 'put ''cm91bmQtY29sb3I6IzAwMDtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci10b29sdGlwLWJhY2tncm91bmQtY29sb3IsIGJsYWNrKTtib3JkZXItcmFkaXVzOi4xNXJlbTtib3JkZXItcmFkaXVzOnZhcigtLWNsci10b29sdGlwLWJvcmRlci1yYWRpdXMsIC4xNXJlbSk7bGluZS1oZWlnaHQ6''@;'; + put 'put ''LjlyZW07bWFyZ2luOjA7cGFkZGluZzouNDVyZW0gLjZyZW07d2lkdGg6MTJyZW07cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOmF1dG87dG9wOjEwMCU7cmlnaHQ6NTAlO2xlZnQ6YXV0bztib3JkZXItdG9wLXJpZ2h0LXJhZGl1czowO21hcmdpbi10b3A6LjhyZW19LnRvb2x0aXAudG9vbHRp''@;'; + put 'put ''cC1ib3R0b20tbGVmdD4udG9vbHRpcC1jb250ZW50OmJlZm9yZSwudG9vbHRpcCAudG9vbHRpcC1jb250ZW50LnRvb2x0aXAtYm90dG9tLWxlZnQ6YmVmb3Jle3Bvc2l0aW9uOmFic29sdXRlO3RvcDotLjQycmVtO3JpZ2h0OjA7Ym90dG9tOmF1dG87bGVmdDphdXRvO2NvbnRlbnQ6IiI7Ym9y''@;'; + put 'put ''ZGVyLXJpZ2h0Oi4zcmVtIHNvbGlkICMwMDA7Ym9yZGVyLXJpZ2h0LWNvbG9yOnZhcigtLWNsci10b29sdGlwLWJhY2tncm91bmQtY29sb3IpO2JvcmRlci1ib3R0b206LjI1cmVtIHNvbGlkICMwMDA7Ym9yZGVyLWJvdHRvbS1jb2xvcjp2YXIoLS1jbHItdG9vbHRpcC1iYWNrZ3JvdW5kLWNv''@;'; + put 'put ''bG9yKTtib3JkZXItbGVmdDouM3JlbSBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItdG9wOi4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudH0udG9vbHRpcC50b29sdGlwLXJpZ2h0Pi50b29sdGlwLWNvbnRlbnQsLnRvb2x0aXAgLnRvb2x0aXAtY29udGVudC50b29sdGlwLXJpZ2h0e3Bvc2l0aW9u''@;'; + put 'put ''OmFic29sdXRlO3JpZ2h0OmF1dG87bGVmdDoxMDAlO3RvcDo1MCU7Ym90dG9tOmF1dG87Y29sb3I6I2ZmZjtjb2xvcjp2YXIoLS1jbHItdG9vbHRpcC1jb2xvciwgd2hpdGUpO2ZvbnQtc2l6ZTouNjVyZW07Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtd2VpZ2h0OnZhcigtLWNsci10b29sdGlwLWZv''@;'; + put 'put ''bnQtd2VpZ2h0LCA0MDApO2xldHRlci1zcGFjaW5nOm5vcm1hbDtiYWNrZ3JvdW5kLWNvbG9yOiMwMDA7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yLCBibGFjayk7Ym9yZGVyLXJhZGl1czouMTVyZW07Ym9yZGVyLXJhZGl1czp2YXIoLS1jbHIt''@;'; + put 'put ''dG9vbHRpcC1ib3JkZXItcmFkaXVzLCAuMTVyZW0pO2xpbmUtaGVpZ2h0Oi45cmVtO21hcmdpbjowO3BhZGRpbmc6LjQ1cmVtIC42cmVtO3dpZHRoOjEycmVtO2JvcmRlci10b3AtbGVmdC1yYWRpdXM6MDttYXJnaW4tbGVmdDouOHJlbX0udG9vbHRpcC50b29sdGlwLXJpZ2h0Pi50b29sdGlw''@;'; + put 'put ''LWNvbnRlbnQ6YmVmb3JlLC50b29sdGlwIC50b29sdGlwLWNvbnRlbnQudG9vbHRpcC1yaWdodDpiZWZvcmV7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDotLjQ1cmVtO2JvdHRvbTphdXRvO3JpZ2h0OmF1dG87Y29udGVudDoiIjtib3JkZXItdG9wOi4zcmVtIHNvbGlkICMwMDA7Ym9y''@;'; + put 'put ''ZGVyLXRvcC1jb2xvcjp2YXIoLS1jbHItdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yKTtib3JkZXItcmlnaHQ6LjI1cmVtIHNvbGlkICMwMDA7Ym9yZGVyLXJpZ2h0LWNvbG9yOnZhcigtLWNsci10b29sdGlwLWJhY2tncm91bmQtY29sb3IpO2JvcmRlci1ib3R0b206LjNyZW0gc29saWQgdHJh''@;'; + put 'put ''bnNwYXJlbnQ7Ym9yZGVyLWxlZnQ6LjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50fS50b29sdGlwLnRvb2x0aXAtbGVmdD4udG9vbHRpcC1jb250ZW50LC50b29sdGlwIC50b29sdGlwLWNvbnRlbnQudG9vbHRpcC1sZWZ0e3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6YXV0bztyaWdodDoxMDAlO3Rv''@;'; + put 'put ''cDo1MCU7Ym90dG9tOmF1dG87Y29sb3I6I2ZmZjtjb2xvcjp2YXIoLS1jbHItdG9vbHRpcC1jb2xvciwgd2hpdGUpO2ZvbnQtc2l6ZTouNjVyZW07Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtd2VpZ2h0OnZhcigtLWNsci10b29sdGlwLWZvbnQtd2VpZ2h0LCA0MDApO2xldHRlci1zcGFjaW5nOm5v''@;'; + put 'put ''cm1hbDtiYWNrZ3JvdW5kLWNvbG9yOiMwMDA7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yLCBibGFjayk7Ym9yZGVyLXJhZGl1czouMTVyZW07Ym9yZGVyLXJhZGl1czp2YXIoLS1jbHItdG9vbHRpcC1ib3JkZXItcmFkaXVzLCAuMTVyZW0pO2xp''@;'; + put 'put ''bmUtaGVpZ2h0Oi45cmVtO21hcmdpbjowO3BhZGRpbmc6LjQ1cmVtIC42cmVtO3dpZHRoOjEycmVtO2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOjA7bWFyZ2luLXJpZ2h0Oi44cmVtfS50b29sdGlwLnRvb2x0aXAtbGVmdD4udG9vbHRpcC1jb250ZW50OmJlZm9yZSwudG9vbHRpcCAudG9vbHRp''@;'; + put 'put ''cC1jb250ZW50LnRvb2x0aXAtbGVmdDpiZWZvcmV7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7cmlnaHQ6LS40NXJlbTtib3R0b206YXV0bztsZWZ0OmF1dG87Y29udGVudDoiIjtib3JkZXItdG9wOi4zcmVtIHNvbGlkICMwMDA7Ym9yZGVyLXRvcC1jb2xvcjp2YXIoLS1jbHItdG9vbHRpcC1i''@;'; + put 'put ''YWNrZ3JvdW5kLWNvbG9yKTtib3JkZXItbGVmdDouMjVyZW0gc29saWQgIzAwMDtib3JkZXItbGVmdC1jb2xvcjp2YXIoLS1jbHItdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yKTtib3JkZXItYm90dG9tOi4zcmVtIHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1yaWdodDouMjVyZW0gc29saWQg''@;'; + put 'put ''dHJhbnNwYXJlbnR9LnRvb2x0aXAudG9vbHRpcC14cz4udG9vbHRpcC1jb250ZW50LC50b29sdGlwIC50b29sdGlwLWNvbnRlbnQudG9vbHRpcC14c3t3aWR0aDozLjZyZW19LnRvb2x0aXAudG9vbHRpcC1zbT4udG9vbHRpcC1jb250ZW50LC50b29sdGlwIC50b29sdGlwLWNvbnRlbnQudG9v''@;'; + put 'put ''bHRpcC1zbXt3aWR0aDo2cmVtfS50b29sdGlwLnRvb2x0aXAtbWQ+LnRvb2x0aXAtY29udGVudCwudG9vbHRpcCAudG9vbHRpcC1jb250ZW50LnRvb2x0aXAtbWR7d2lkdGg6MTJyZW19LnRvb2x0aXAudG9vbHRpcC1sZz4udG9vbHRpcC1jb250ZW50LC50b29sdGlwIC50b29sdGlwLWNvbnRl''@;'; + put 'put ''bnQudG9vbHRpcC1sZ3t3aWR0aDoxOHJlbX0udG9vbHRpcD4uYnRuKy50b29sdGlwLWNvbnRlbnQsLnRvb2x0aXAudG9vbHRpcC10b3AtcmlnaHQ+LmJ0bisudG9vbHRpcC1jb250ZW50LC50b29sdGlwLnRvb2x0aXAtdG9wLWxlZnQ+LmJ0bisudG9vbHRpcC1jb250ZW50e21hcmdpbi1ib3R0''@;'; + put 'put ''b206LjVyZW19LnRvb2x0aXAudG9vbHRpcC1ib3R0b20tcmlnaHQ+LmJ0bisudG9vbHRpcC1jb250ZW50LC50b29sdGlwLnRvb2x0aXAtYm90dG9tLWxlZnQ+LmJ0bisudG9vbHRpcC1jb250ZW50e21hcmdpbi10b3A6LjVyZW19LnRvb2x0aXAudG9vbHRpcC1yaWdodD4uYnRuKy50b29sdGlw''@;'; + put 'put ''LWNvbnRlbnR7bWFyZ2luLWxlZnQ6LjJyZW19LnRvb2x0aXA+LmNsci1pY29ue21hcmdpbi1yaWdodDowfS50b29sdGlwPnN2Z3twb2ludGVyLWV2ZW50czpub25lfS50b29sdGlwLXRyaWdnZXI6Zm9jdXMrLnRvb2x0aXAtY29udGVudHt2aXNpYmlsaXR5OnZpc2libGV9OnJvb3R7LS1jbHIt''@;'; + put 'put ''Zm9ybS1kaXNhYmxlZC1iYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTQwMCk7LS1jbHItZm9ybXMtbGFiZWwtY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtODAwKTstLWNsci1mb3Jtcy10ZXh0LWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTEwMDAp''@;'; + put 'put ''Oy0tY2xyLWZvcm1zLWludmFsaWQtY29sb3I6dmFyKC0tY2xyLWNvbG9yLWRhbmdlci04MDApOy0tY2xyLWZvcm1zLXZhbGlkLWNvbG9yOnZhcigtLWNsci1jb2xvci1zdWNjZXNzLTcwMCk7LS1jbHItZm9ybXMtdmFsaWQtdGV4dC1jb2xvcjp2YXIoLS1jbHItY29sb3Itc3VjY2Vzcy05MDAp''@;'; + put 'put ''Oy0tY2xyLWZvcm1zLXN1YnRleHQtY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNjAwKTstLWNsci1mb3Jtcy1wbGFjZWhvbGRlci1jb2xvcjp2YXIoLS1jbHItZ2xvYmFsLWNvbG9yLWNvbnN0cnVjdGlvbi02MDApOy0tY2xyLWZvcm1zLWJvcmRlci1jb2xvcjojNmE3YTgxOy0tY2xy''@;'; + put 'put ''LWZvcm1zLWZvY3VzZWQtY29sb3I6dmFyKC0tY2xyLWNvbG9yLWFjdGlvbi02MDApOy0tY2xyLWZvcm1zLXN1YnRleHQtZGlzYWJsZWQtY29sb3I6IzhjOGM4YzstLWNsci1mb3Jtcy1ib3JkZXItZGlzYWJsZWQtY29sb3I6I2IzYjNiMzstLWNsci1mb3Jtcy10ZXh0LWRpc2FibGVkLWNvbG9y''@;'; + put 'put ''OiNiM2IzYjM7LS1jbHItZm9ybXMtbGFiZWwtZGlzYWJsZWQtY29sb3I6IzhjOGM4YzstLWNsci1mb3Jtcy1sYWJlbC1mb250LXdlaWdodDp2YXIoLS1jbHItZm9udC13ZWlnaHQtYm9sZCk7LS1jbHItZm9ybXMtYmxvY2stbGFiZWwtZm9udC13ZWlnaHQ6NDAwOy0tY2xyLWZvcm1zLXRleHQt''@;'; + put 'put ''Zm9udC13ZWlnaHQ6NDAwOy0tY2xyLWZvcm1zLXRleHRhcmVhLWJhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtMCk7LS1jbHItZm9ybXMtdGV4dGFyZWEtZm9jdXNlZC1vdXRsaW5lOjAgMCAuMXJlbSAuMXJlbSAjNjljMGUyOy0tY2xyLWZvcm1zLXRleHRhcmVhLWlu''@;'; + put 'put ''dmFsaWQtZm9jdXNlZC1vdXRsaW5lOjAgMCAuMXJlbSAuMXJlbSAjZmY3NDVjOy0tY2xyLWZvcm1zLXNlbGVjdC1ob3Zlci1iYWNrZ3JvdW5kOnJnYmEoIDIyMiwgMjIyLCAyMjIsIC41ICk7LS1jbHItZm9ybXMtc2VsZWN0LWNhcmV0LWhvdmVyLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0''@;'; + put 'put ''cmFsLTYwMCk7LS1jbHItZm9ybXMtc2VsZWN0LWNhcmV0LWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTUwMCk7LS1jbHItZm9ybXMtc2VsZWN0LW9wdGlvbi1jb2xvcjp2YXIoLS1jbHItZm9ybXMtdGV4dC1jb2xvcik7LS1jbHItZm9ybXMtc2VsZWN0LW11bHRpcGxlLWJhY2tncm91''@;'; + put 'put ''bmQtY29sb3I6dmFyKC0tY2xyLWZvcm1zLXRleHRhcmVhLWJhY2tncm91bmQtY29sb3IpOy0tY2xyLWZvcm1zLXNlbGVjdC1tdWx0aXBsZS1ib3JkZXItY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNDAwKTstLWNsci1mb3Jtcy1zZWxlY3QtbXVsdGlwbGUtb3B0aW9uLWNvbG9yOnZh''@;'; + put 'put ''cigtLWNsci1mb3Jtcy10ZXh0LWNvbG9yKTstLWNsci1mb3Jtcy1zZWxlY3QtbXVsdGlwbGUtZXJyb3ItZm9jdXMtY29sb3I6I2ZmNzQ1YzstLWNsci1mb3Jtcy1jaGVja2JveC1sYWJlbC1jb2xvcjp2YXIoLS1jbHItZm9ybXMtbGFiZWwtY29sb3IpOy0tY2xyLWZvcm1zLWNoZWNrYm94LWJh''@;'; + put 'put ''Y2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWNvbG9yLWFjdGlvbi02MDApOy0tY2xyLWZvcm1zLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUtYm9yZGVyLWNvbG9yOnZhcigtLWNsci1jb2xvci1hY3Rpb24tNjAwKTstLWNsci1mb3Jtcy1jaGVja2JveC1tYXJrLWNvbG9yOnZhcigtLWNsci1jb2xv''@;'; + put 'put ''ci1uZXV0cmFsLTApOy0tY2xyLWZvcm1zLWNoZWNrYm94LWRpc2FibGVkLWJhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWZvcm0tZGlzYWJsZWQtYmFja2dyb3VuZC1jb2xvcik7LS1jbHItZm9ybXMtY2hlY2tib3gtZGlzYWJsZWQtbWFyay1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJh''@;'; + put 'put ''bC0xMDAwKTstLWNsci1mb3Jtcy1jaGVja2JveC1ib3JkZXItcmFkaXVzOnZhcigtLWNsci1nbG9iYWwtYm9yZGVycmFkaXVzKTstLWNsci1mb3Jtcy1jaGVja2JveC1jaGVja2VkLXNoYWRvdzppbnNldCAwIDAgMCAuM3JlbSB2YXIoLS1jbHItZm9ybXMtY2hlY2tib3gtYmFja2dyb3VuZC1j''@;'; + put 'put ''b2xvcik7LS1jbHItZm9ybXMtcmFkaW8tbGFiZWwtY29sb3I6dmFyKC0tY2xyLWZvcm1zLWNoZWNrYm94LWxhYmVsLWNvbG9yKTstLWNsci1mb3Jtcy1yYWRpby1kaXNhYmxlZC1iYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1mb3JtLWRpc2FibGVkLWJhY2tncm91bmQtY29sb3IpOy0tY2xy''@;'; + put 'put ''LWZvcm1zLXJhZGlvLWRpc2FibGVkLW1hcmstY29sb3I6dmFyKC0tY2xyLWZvcm1zLWNoZWNrYm94LWRpc2FibGVkLW1hcmstY29sb3IpOy0tY2xyLWZvcm1zLXJhZGlvLXNlbGVjdGVkLXNoYWRvdzp2YXIoLS1jbHItZm9ybXMtY2hlY2tib3gtY2hlY2tlZC1zaGFkb3cpOy0tY2xyLWZvcm1z''@;'; + put 'put ''LXJhZGlvLWRpc2FibGVkLXNoYWRvdzp2YXIoLS1jbHItZm9ybXMtY2hlY2tib3gtY2hlY2tlZC1zaGFkb3cpOy0tY2xyLWZvcm1zLXJhZGlvLWZvY3VzZWQtc2hhZG93OjAgMCAuMXJlbSAuMXJlbSAjNjljMGUyOy0tY2xyLWZvcm1zLXJhbmdlLXByb2dyZXNzLWZpbGwtY29sb3I6dmFyKC0t''@;'; + put 'put ''Y2xyLWNvbG9yLWFjdGlvbi02MDApOy0tY2xyLWZvcm1zLXJhbmdlLXRyYWNrLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTIwMCl9LmNsci1kYXRlLWNvbnRhaW5lciAuY2xyLWlucHV0LXdyYXBwZXJ7bWF4LXdpZHRoOi1tb3otZml0LWNvbnRlbnQ7bWF4LXdpZHRoOmZpdC1jb250''@;'; + put 'put ''ZW50fS5jbHItZm9ybS1jb250cm9se21hcmdpbi10b3A6MS4ycmVtO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24taXRlbXM6ZmxleC1zdGFydH0uY2xyLWZvcm0tY29udHJvbCBpbnB1dDo6LW1zLXJldmVhbCwuY2xyLWZvcm0tY29udHJvbCBpbnB1dDo6LW1zLWNs''@;'; + put 'put ''ZWFye2Rpc3BsYXk6bm9uZX0uY2xyLWZvcm0tY29udHJvbC1kaXNhYmxlZHtjb2xvcjojYjNiM2IzO2NvbG9yOnZhcigtLWNsci1mb3Jtcy10ZXh0LWRpc2FibGVkLWNvbG9yLCAjYjNiM2IzKX0uY2xyLWZvcm0tY29udHJvbC1kaXNhYmxlZCBsYWJlbCwuY2xyLWZvcm0tY29udHJvbC1kaXNh''@;'; + put 'put ''YmxlZCAuY2xyLWNvbnRyb2wtbGFiZWx7Y29sb3I6IzhjOGM4Yztjb2xvcjp2YXIoLS1jbHItZm9ybXMtbGFiZWwtZGlzYWJsZWQtY29sb3IsICM4YzhjOGMpfS5jbHItZm9ybS1jb250cm9sLWRpc2FibGVkIC5jbHItaW5wdXQsLmNsci1mb3JtLWNvbnRyb2wtZGlzYWJsZWQgLmNsci10ZXh0''@;'; + put 'put ''YXJlYSwuY2xyLWZvcm0tY29udHJvbC1kaXNhYmxlZCAuY2xyLXNlbGVjdHtjb2xvcjojYjNiM2IzO2NvbG9yOnZhcigtLWNsci1mb3Jtcy10ZXh0LWRpc2FibGVkLWNvbG9yLCAjYjNiM2IzKTtib3JkZXItYm90dG9tLWNvbG9yOiNiM2IzYjM7Ym9yZGVyLWJvdHRvbS1jb2xvcjp2YXIoLS1j''@;'; + put 'put ''bHItZm9ybXMtYm9yZGVyLWRpc2FibGVkLWNvbG9yLCAjYjNiM2IzKX0uY2xyLWZvcm0tY29udHJvbC1kaXNhYmxlZCBpbnB1dFt0eXBlPXJhbmdlXTo6LXdlYmtpdC1zbGlkZXItdGh1bWJ7YmFja2dyb3VuZC1jb2xvcjojYjNiM2IzO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWZvcm1z''@;'; + put 'put ''LWJvcmRlci1kaXNhYmxlZC1jb2xvciwgI2IzYjNiMyl9LmNsci1mb3JtLWNvbnRyb2wtZGlzYWJsZWQgLmNsci1zdWJ0ZXh0e2NvbG9yOiM4YzhjOGM7Y29sb3I6dmFyKC0tY2xyLWZvcm1zLXN1YnRleHQtZGlzYWJsZWQtY29sb3IsICM4YzhjOGMpfS5jbHItZm9ybS1jb250cm9sLW11bHRp''@;'; + put 'put ''e2ZsZXgtZGlyZWN0aW9uOnJvdztmbGV4LXdyYXA6d3JhcH0uY2xyLWZvcm0tY29udHJvbC1tdWx0aSAuY2xyLWNvbnRyb2wtbGFiZWx7d2lkdGg6MTAwJX0uY2xyLWNvbnRyb2wtbGFiZWx7ZGlzcGxheTpibG9jaztjb2xvcjojNDU0NTQ1O2NvbG9yOnZhcigtLWNsci1mb3Jtcy1sYWJlbC1j''@;'; + put 'put ''b2xvciwgIzQ1NDU0NSk7Zm9udC1zaXplOi42NXJlbTtmb250LXdlaWdodDo2MDA7Zm9udC13ZWlnaHQ6dmFyKC0tY2xyLWZvcm1zLWxhYmVsLWZvbnQtd2VpZ2h0LCA2MDApO2xpbmUtaGVpZ2h0Oi45cmVtfS5jbHItY29udHJvbC1jb250YWluZXJ7ZGlzcGxheTppbmxpbmUtYmxvY2t9LmNs''@;'; + put 'put ''ci1jb250cm9sLWlubGluZXtkaXNwbGF5OmZsZXg7ZmxleC13cmFwOndyYXA7YWxpZ24tY29udGVudDpmbGV4LXN0YXJ0fS5jbHItY29udHJvbC1pbmxpbmUgLmNsci1jb250cm9sLWxhYmVse2Rpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdpbi1yaWdodDouNnJlbTt3aWR0aDphdXRvfS5jbHIt''@;'; + put 'put ''c3VidGV4dHtkaXNwbGF5OmJsb2NrO2ZvbnQtc2l6ZTouNTVyZW07bGluZS1oZWlnaHQ6LjZyZW07Y29sb3I6IzhjOGM4Yztjb2xvcjp2YXIoLS1jbHItZm9ybXMtc3VidGV4dC1jb2xvciwgIzhjOGM4Yyk7bWFyZ2luLXRvcDouM3JlbX0uY2xyLXN1YnRleHQtd3JhcHBlcntmbGV4LWJhc2lz''@;'; + put 'put ''OjEwMCU7ZGlzcGxheTpmbGV4fS5jbHItdmFsaWRhdGUtaWNvbntoZWlnaHQ6MS4ycmVtO3dpZHRoOjEuMnJlbTttaW4taGVpZ2h0OjEuMnJlbTttaW4td2lkdGg6MS4ycmVtO2NvbG9yOiNjMjFkMDA7Y29sb3I6dmFyKC0tY2xyLWZvcm1zLWludmFsaWQtY29sb3IsICNjMjFkMDApO2Rpc3Bs''@;'; + put 'put ''YXk6bm9uZTttYXJnaW4tbGVmdDotMS4ycmVtfS5jbHItc3VjY2VzcyAuY2xyLWlucHV0e2JvcmRlci1ib3R0b20tY29sb3I6IzNjODUwMDtib3JkZXItYm90dG9tLWNvbG9yOnZhcigtLWNsci1mb3Jtcy12YWxpZC1jb2xvciwgIzNjODUwMCl9LmNsci1zdWNjZXNzIC5jbHItdmFsaWRhdGUt''@;'; + put 'put ''aWNvbntkaXNwbGF5OmlubGluZS1ibG9jaztjb2xvcjojM2M4NTAwO2NvbG9yOnZhcigtLWNsci1mb3Jtcy12YWxpZC1jb2xvciwgIzNjODUwMCk7bWFyZ2luLWxlZnQ6LS4ycmVtfS5jbHItc3VjY2VzcyAuY2xyLXN1YnRleHR7Y29sb3I6IzI1NTIwMDtjb2xvcjp2YXIoLS1jbHItZm9ybXMt''@;'; + put 'put ''dmFsaWQtdGV4dC1jb2xvciwgIzI1NTIwMCl9LmNsci1lcnJvciAuY2xyLXZhbGlkYXRlLWljb257bWFyZ2luLWxlZnQ6LS4ycmVtO2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5jbHItZXJyb3IgLmNsci1zdWJ0ZXh0e2NvbG9yOiNjMjFkMDA7Y29sb3I6dmFyKC0tY2xyLWZvcm1zLWludmFsaWQt''@;'; + put 'put ''Y29sb3IsICNjMjFkMDApfS5jbHItZm9ybS1ob3Jpem9udGFsIC5jbHItZm9ybS1jb250cm9sPi5jbHItY29udHJvbC1sYWJlbCwuY2xyLWZvcm0taG9yaXpvbnRhbCAuY2xyLWZvcm0tY29udHJvbD4uY2xyLWZvcm0tY29udHJvbC5jbHItZm9ybS1jb250cm9sLW11bHRpIC5jbHItY29udHJv''@;'; + put 'put ''bC1sYWJlbHt3aWR0aDo5LjZyZW07ZmxleC1zaHJpbms6MDttYXJnaW4tdG9wOi4xNXJlbX0uY2xyLWZvcm0taG9yaXpvbnRhbC5jbHItcm93IC5jbHItY29udHJvbC1sYWJlbHt3aWR0aDphdXRvfS5jbHItZm9ybS1ob3Jpem9udGFsIC5jbHItZm9ybS1jb250cm9se2Rpc3BsYXk6ZmxleDtm''@;'; + put 'put ''bGV4LWRpcmVjdGlvbjpyb3d9LmNsci1mb3JtLWNvbXBhY3QgLmNsci1mb3JtLWNvbnRyb2w+LmNsci1jb250cm9sLWxhYmVse3dpZHRoOjkuNnJlbTttaW4td2lkdGg6OS42cmVtfS5jbHItZm9ybS1jb21wYWN0IC5jbHItZm9ybS1jb250cm9sLmNsci1yb3c+LmNsci1jb250cm9sLWxhYmVs''@;'; + put 'put ''e3dpZHRoOmF1dG87bWluLXdpZHRoOmF1dG99LmNsci1mb3JtLWNvbXBhY3QgLmNsci1jb250cm9sLWxhYmVse21hcmdpbi10b3A6LjE1cmVtfS5jbHItZm9ybS1jb21wYWN0IC5jbHItZm9ybS1jb250cm9se2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpyb3c7bWFyZ2luLXRvcDouNnJl''@;'; + put 'put ''bX0uY2xyLWZvcm0tY29tcGFjdCAuY2xyLWNvbnRyb2wtY29udGFpbmVye2Rpc3BsYXk6ZmxleH0uY2xyLWZvcm0tY29tcGFjdCAuY2xyLXN1YnRleHR7ZGlzcGxheTppbmxpbmUtYmxvY2s7bWFyZ2luLXRvcDouM3JlbTttYXJnaW4tbGVmdDoxLjJyZW19LmNsci1mb3JtLWNvbXBhY3QgLmNs''@;'; + put 'put ''ci1lcnJvciAuY2xyLXN1YnRleHQsLmNsci1mb3JtLWNvbXBhY3QgLmNsci1zdWNjZXNzIC5jbHItc3VidGV4dCwuY2xyLWZvcm0tY29tcGFjdCAuY2xyLWVycm9yIC5jbHItdmFsaWRhdGUtaWNvbiwuY2xyLWZvcm0tY29tcGFjdCAuY2xyLXN1Y2Nlc3MgLmNsci12YWxpZGF0ZS1pY29ue21h''@;'; + put 'put ''cmdpbi1sZWZ0OjB9LmNsci1mb3JtLWNvbXBhY3QgLmNsci1zdWJ0ZXh0LXdyYXBwZXJ7ZmxleC1iYXNpczphdXRvO2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5jbHItZm9ybSwuY2xyLWZvcm0tZ3JvdXB7cGFkZGluZzouM3JlbX0uY2xyLWNoZWNrYm94LXdyYXBwZXJ7cG9zaXRpb246cmVsYXRp''@;'; + put 'put ''dmV9LmNsci1jaGVja2JveC13cmFwcGVyIC5jbHItY29udHJvbC1sYWJlbHtmb250LXdlaWdodDo0MDA7ZGlzcGxheTpibG9ja30uY2xyLWNoZWNrYm94LXdyYXBwZXJ+LmNsci12YWxpZGF0ZS1pY29ue21hcmdpbi1sZWZ0OjB9LmNsci1jaGVja2JveC13cmFwcGVyfi5jbHItc3VidGV4dHtk''@;'; + put 'put ''aXNwbGF5OmlubGluZS1ibG9ja30uY2xyLWNoZWNrYm94LXdyYXBwZXIgaW5wdXRbdHlwZT1jaGVja2JveF17cG9zaXRpb246YWJzb2x1dGU7b3BhY2l0eTowO3RvcDouMjVyZW07bGVmdDowO2hlaWdodDouOHJlbTt3aWR0aDouOHJlbX0uY2xyLWNoZWNrYm94LXdyYXBwZXIgbGFiZWx7cG9z''@;'; + put 'put ''aXRpb246cmVsYXRpdmU7ZGlzcGxheTppbmxpbmUtYmxvY2s7bWluLWhlaWdodDoxLjJyZW07cGFkZGluZy1sZWZ0OjEuMXJlbTttYXJnaW4tdG9wOjA7Y3Vyc29yOnBvaW50ZXI7bGluZS1oZWlnaHQ6MS4ycmVtO2NvbG9yOiM0NTQ1NDU7Y29sb3I6dmFyKC0tY2xyLWZvcm1zLWNoZWNrYm94''@;'; + put 'put ''LWxhYmVsLWNvbG9yLCAjNDU0NTQ1KX0uY2xyLWNoZWNrYm94LXdyYXBwZXIgaW5wdXRbdHlwZT1jaGVja2JveF0rbGFiZWw6YmVmb3Jle3Bvc2l0aW9uOmFic29sdXRlO3RvcDouMnJlbTtsZWZ0OjA7Y29udGVudDoiIjtkaXNwbGF5OmlubGluZS1ibG9jaztoZWlnaHQ6LjhyZW07d2lkdGg6''@;'; + put 'put ''LjhyZW07Ym9yZGVyOi4wNXJlbSBzb2xpZDtib3JkZXItY29sb3I6IzZhN2E4MTtib3JkZXItY29sb3I6dmFyKC0tY2xyLWZvcm1zLWJvcmRlci1jb2xvciwgIzZhN2E4MSk7Ym9yZGVyLXJhZGl1czouMTVyZW07Ym9yZGVyLXJhZGl1czp2YXIoLS1jbHItZm9ybXMtY2hlY2tib3gtYm9yZGVy''@;'; + put 'put ''LXJhZGl1cywgLjE1cmVtKX0uY2xyLWNoZWNrYm94LXdyYXBwZXIgaW5wdXRbdHlwZT1jaGVja2JveF06Zm9jdXMrbGFiZWw6YmVmb3Jle291dGxpbmU6SGlnaGxpZ2h0IHNvbGlkIC4xcmVtO291dGxpbmU6LXdlYmtpdC1mb2N1cy1yaW5nLWNvbG9yIHNvbGlkIC4xcmVtO291dGxpbmUtb2Zm''@;'; + put 'put ''c2V0Oi4wNXJlbX0uY2xyLWNoZWNrYm94LXdyYXBwZXIgaW5wdXRbdHlwZT1jaGVja2JveF0rbGFiZWw6YWZ0ZXJ7cG9zaXRpb246YWJzb2x1dGU7Y29udGVudDoiIjtkaXNwbGF5Om5vbmU7aGVpZ2h0Oi4yNXJlbTt3aWR0aDouNHJlbTtib3JkZXItbGVmdDouMXJlbSBzb2xpZDtib3JkZXIt''@;'; + put 'put ''Ym90dG9tOi4xcmVtIHNvbGlkO2JvcmRlci1jb2xvcjojZmZmO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItZm9ybXMtY2hlY2tib3gtbWFyay1jb2xvciwgd2hpdGUpO3RvcDouMnJlbTtsZWZ0Oi4ycmVtO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC4ycmVtKSByb3RhdGUoLTQ1ZGVnKX0uY2xyLWNo''@;'; + put 'put ''ZWNrYm94LXdyYXBwZXIgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbDpiZWZvcmV7YmFja2dyb3VuZDojMDA3MmEzO2JhY2tncm91bmQ6dmFyKC0tY2xyLWZvcm1zLWNoZWNrYm94LWJhY2tncm91bmQtY29sb3IsICMwMDcyYTMpO2JvcmRlcjowfS5jbHItY2hlY2tib3gtd3Jh''@;'; + put 'put ''cHBlciBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsOmFmdGVye2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5jbHItY2hlY2tib3gtd3JhcHBlciBpbnB1dFt0eXBlPWNoZWNrYm94XS5jbHItaW5kZXRlcm1pbmF0ZStsYWJlbDpiZWZvcmUsLmNsci1jaGVja2JveC13cmFwcGVyIGlu''@;'; + put 'put ''cHV0W3R5cGU9Y2hlY2tib3hdOmluZGV0ZXJtaW5hdGUrbGFiZWw6YmVmb3Jle2JvcmRlcjouMDVyZW0gc29saWQ7Ym9yZGVyLWNvbG9yOiMwMDcyYTM7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1mb3Jtcy1jaGVja2JveC1pbmRldGVybWluYXRlLWJvcmRlci1jb2xvciwgIzAwNzJhMyl9LmNs''@;'; + put 'put ''ci1jaGVja2JveC13cmFwcGVyIGlucHV0W3R5cGU9Y2hlY2tib3hdLmNsci1pbmRldGVybWluYXRlK2xhYmVsOmFmdGVyLC5jbHItY2hlY2tib3gtd3JhcHBlciBpbnB1dFt0eXBlPWNoZWNrYm94XTppbmRldGVybWluYXRlK2xhYmVsOmFmdGVye2JvcmRlci1sZWZ0Om5vbmU7Ym9yZGVyLWJv''@;'; + put 'put ''dHRvbS1jb2xvcjojMDA3MmEzO2JvcmRlci1ib3R0b20tY29sb3I6dmFyKC0tY2xyLWZvcm1zLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUtYm9yZGVyLWNvbG9yLCAjMDA3MmEzKTtkaXNwbGF5OmlubGluZS1ibG9jazt0cmFuc2Zvcm06dHJhbnNsYXRlWSguMnJlbSl9LmNsci1jaGVja2JveC13''@;'; + put 'put ''cmFwcGVyLmNsci1jaGVja2JveC1pbmxpbmV7ZGlzcGxheTpmbGV4O2ZsZXgtd3JhcDp3cmFwO2FsaWduLWNvbnRlbnQ6ZmxleC1zdGFydH0uY2xyLWNoZWNrYm94LXdyYXBwZXIuY2xyLWNoZWNrYm94LWlubGluZSAuY2xyLWNvbnRyb2wtbGFiZWx7ZGlzcGxheTppbmxpbmUtYmxvY2s7bWFy''@;'; + put 'put ''Z2luLXJpZ2h0Oi42cmVtO3dpZHRoOmF1dG99LmNsci1lcnJvciAuY2xyLWNoZWNrYm94LXdyYXBwZXIgaW5wdXRbdHlwZT1jaGVja2JveF0rbGFiZWw6YmVmb3Jle2JvcmRlci1jb2xvcjojYzIxZDAwO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItZm9ybXMtaW52YWxpZC1jb2xvciwgI2MyMWQw''@;'; + put 'put ''MCl9LmNsci1mb3JtLWNvbnRyb2wtZGlzYWJsZWQgLmNsci1jaGVja2JveC13cmFwcGVyIGxhYmVse2N1cnNvcjpub3QtYWxsb3dlZH0uY2xyLWZvcm0tY29udHJvbC1kaXNhYmxlZCAuY2xyLWNoZWNrYm94LXdyYXBwZXIgaW5wdXRbdHlwZT1jaGVja2JveF0rbGFiZWw6YmVmb3JlLC5jbHIt''@;'; + put 'put ''Zm9ybS1jb250cm9sLWRpc2FibGVkIC5jbHItY2hlY2tib3gtd3JhcHBlciBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsOmJlZm9yZXtiYWNrZ3JvdW5kLWNvbG9yOiNjY2M7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItZm9ybXMtY2hlY2tib3gtZGlzYWJsZWQtYmFja2dy''@;'; + put 'put ''b3VuZC1jb2xvciwgI2NjY2NjYyk7Ym9yZGVyOjB9LmNsci1mb3JtLWNvbnRyb2wtZGlzYWJsZWQgLmNsci1jaGVja2JveC13cmFwcGVyIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw6YWZ0ZXJ7Ym9yZGVyLWxlZnQ6LjFyZW0gc29saWQ7Ym9yZGVyLWJvdHRvbTouMXJlbSBz''@;'; + put 'put ''b2xpZDtib3JkZXItbGVmdC1jb2xvcjojMDAwO2JvcmRlci1sZWZ0LWNvbG9yOnZhcigtLWNsci1mb3Jtcy1jaGVja2JveC1kaXNhYmxlZC1tYXJrLWNvbG9yLCBibGFjayk7Ym9yZGVyLWJvdHRvbS1jb2xvcjojMDAwO2JvcmRlci1ib3R0b20tY29sb3I6dmFyKC0tY2xyLWZvcm1zLWNoZWNr''@;'; + put 'put ''Ym94LWRpc2FibGVkLW1hcmstY29sb3IsIGJsYWNrKX0uY2xyLWZvcm0tY29udHJvbC1kaXNhYmxlZCAuY2xyLWNoZWNrYm94LXdyYXBwZXIgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZC5jbHItaW5kZXRlcm1pbmF0ZStsYWJlbDphZnRlciwuY2xyLWZvcm0tY29udHJvbC1kaXNhYmxl''@;'; + put 'put ''ZCAuY2xyLWNoZWNrYm94LXdyYXBwZXIgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZDppbmRldGVybWluYXRlK2xhYmVsOmFmdGVye2JvcmRlci1sZWZ0Om5vbmV9LmNsci1mb3JtLWNvbXBhY3QgLmNsci1jaGVja2JveC13cmFwcGVye21heC13aWR0aDoxMDAlO2Rpc3BsYXk6ZmxleDtm''@;'; + put 'put ''bGV4LXdyYXA6d3JhcDthbGlnbi1jb250ZW50OmZsZXgtc3RhcnQ7aGVpZ2h0OjEuMnJlbX0uY2xyLWZvcm0tY29tcGFjdCAuY2xyLWNoZWNrYm94LXdyYXBwZXJ+LmNsci1zdWJ0ZXh0e21hcmdpbi1sZWZ0Oi4zcmVtfS5jbHItZm9ybS1jb21wYWN0IC5jbHItY2hlY2tib3gtd3JhcHBlciAu''@;'; + put 'put ''Y2xyLWNvbnRyb2wtbGFiZWx7ZGlzcGxheTppbmxpbmUtYmxvY2s7bWFyZ2luLXJpZ2h0Oi42cmVtO3dpZHRoOmF1dG99LmNsci1mb3JtLWNvbXBhY3QgLmNsci1jaGVja2JveC13cmFwcGVyIC5jbHItY29udHJvbC1sYWJlbHttYXJnaW4tdG9wOjB9LmNsci1maWxlLXdyYXBwZXJ7cG9zaXRp''@;'; + put 'put ''b246cmVsYXRpdmU7bWFyZ2luLXRvcDouM3JlbX0uY2xyLWZpbGUtd3JhcHBlciAuY2xyLWNvbnRyb2wtbGFiZWx7Zm9udC13ZWlnaHQ6NDAwO2Rpc3BsYXk6YmxvY2t9LmNsci1maWxlLXdyYXBwZXJ+LmNsci12YWxpZGF0ZS1pY29ue21hcmdpbi1sZWZ0OjB9LmNsci1maWxlLXdyYXBwZXJ+''@;'; + put 'put ''LmNsci1zdWJ0ZXh0e2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5jbHItZmlsZS13cmFwcGVyIC5idG57bWFyZ2luOjB9LmNsci1maWxle2hlaWdodDowO3dpZHRoOjA7b3BhY2l0eTowO292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4Oi0xfS5jbHItZm9ybS1jb21wYWN0''@;'; + put 'put ''IC5jbHItZmlsZS13cmFwcGVye21heC13aWR0aDoxMDAlO21hcmdpbi10b3A6MH0uY2xyLWZvcm0tY29tcGFjdCAuY2xyLWZpbGUtd3JhcHBlcn4uY2xyLXN1YnRleHR7bWFyZ2luLWxlZnQ6LjNyZW19LmNsci1mb3JtLWNvbXBhY3QgLmNsci1maWxlLXdyYXBwZXJ+LmNsci12YWxpZGF0ZS1p''@;'; + put 'put ''Y29ue2xpbmUtaGVpZ2h0OjEuMnJlbX0uY2xyLWZvcm0tY29tcGFjdCAuY2xyLWZpbGUtd3JhcHBlcn4uY2xyLXN1YnRleHR7bGluZS1oZWlnaHQ6MS4ycmVtO21hcmdpbi10b3A6MH0uY2xyLWZvcm0tY29tcGFjdCAuY2xyLWZpbGUtd3JhcHBlciAuY2xyLWNvbnRyb2wtbGFiZWx7bWFyZ2lu''@;'; + put 'put ''LXRvcDowO2xpbmUtaGVpZ2h0OjEuMDhyZW19LmNsci1mb3JtLWNvbXBhY3QgLmNsci1maWxlLXdyYXBwZXIgLmJ0bntoZWlnaHQ6MS4ycmVtfS5jbHItaW5wdXQtd3JhcHBlcnt3aGl0ZS1zcGFjZTpub3dyYXA7bWF4LWhlaWdodDoxLjJyZW19LmNsci1pbnB1dHstd2Via2l0LWFwcGVhcmFu''@;'; + put 'put ''Y2U6bm9uZTstbW96LWFwcGVhcmFuY2U6bm9uZTstbXMtYXBwZWFyYW5jZTpub25lOy1vLWFwcGVhcmFuY2U6bm9uZTttYXJnaW46MDtwYWRkaW5nOjA7Ym9yZGVyOjA7Ym9yZGVyLXJhZGl1czowO2JveC1zaGFkb3c6bm9uZTtiYWNrZ3JvdW5kOjAgMDtoZWlnaHQ6MS4ycmVtO2NvbG9yOiMw''@;'; + put 'put ''MDA7Y29sb3I6dmFyKC0tY2xyLWZvcm1zLXRleHQtY29sb3IsIGJsYWNrKTtib3JkZXItYm90dG9tOi4wNXJlbSBzb2xpZDtib3JkZXItYm90dG9tLWNvbG9yOiM2YTdhODE7Ym9yZGVyLWJvdHRvbS1jb2xvcjp2YXIoLS1jbHItZm9ybXMtYm9yZGVyLWNvbG9yLCAjNmE3YTgxKTtkaXNwbGF5''@;'; + put 'put ''OmlubGluZS1ibG9jaztwYWRkaW5nOjAgLjNyZW07bWF4LWhlaWdodDoxLjJyZW07Zm9udC1zaXplOi42NXJlbX0uY2xyLWlucHV0OmZvY3Vze291dGxpbmU6MH0uY2xyLWlucHV0W3JlYWRvbmx5XXtib3JkZXI6MH0uY2xyLWlucHV0Om5vdChbcmVhZG9ubHldKXtiYWNrZ3JvdW5kOmxpbmVh''@;'; + put 'put ''ci1ncmFkaWVudCh0byBib3R0b20sdHJhbnNwYXJlbnQgOTUlLHZhcigtLWNsci1mb3Jtcy1mb2N1c2VkLWNvbG9yLCAjMDA3MmEzKSA5NSUpIG5vLXJlcGVhdDtiYWNrZ3JvdW5kLXNpemU6MCAxMDAlO3RyYW5zaXRpb246YmFja2dyb3VuZC1zaXplIC4ycyBlYXNlfS5jbHItaW5wdXQ6bm90''@;'; + put 'put ''KFtyZWFkb25seV0pOmZvY3VzLC5jbHItaW5wdXQ6bm90KFtyZWFkb25seV0pLmNsci1mb2N1c3tib3JkZXItYm90dG9tLWNvbG9yOiMwMDcyYTM7Ym9yZGVyLWJvdHRvbS1jb2xvcjp2YXIoLS1jbHItZm9ybXMtZm9jdXNlZC1jb2xvciwgIzAwNzJhMyk7YmFja2dyb3VuZC1zaXplOjEwMCUg''@;'; + put 'put ''MTAwJX0uY2xyLWlucHV0OmRpc2FibGVke2NvbG9yOiNiM2IzYjM7Y29sb3I6dmFyKC0tY2xyLWZvcm1zLXRleHQtZGlzYWJsZWQtY29sb3IsICNiM2IzYjMpO2N1cnNvcjpub3QtYWxsb3dlZH0uY2xyLWVycm9yIC5jbHItaW5wdXQ6bm90KFtyZWFkb25seV0pe2JvcmRlci1ib3R0b20tY29s''@;'; + put 'put ''b3I6I2MyMWQwMDtib3JkZXItYm90dG9tLWNvbG9yOnZhcigtLWNsci1mb3Jtcy1pbnZhbGlkLWNvbG9yLCAjYzIxZDAwKTtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCh0byBib3R0b20sdHJhbnNwYXJlbnQgOTUlLHZhcigtLWNsci1mb3Jtcy1pbnZhbGlkLWNvbG9yLCAjYzIxZDAwKSA5''@;'; + put 'put ''NSUpIG5vLXJlcGVhdDtiYWNrZ3JvdW5kLXNpemU6MCAxMDAlO3RyYW5zaXRpb246YmFja2dyb3VuZC1zaXplIC4ycyBlYXNlfS5jbHItZXJyb3IgLmNsci1pbnB1dDpub3QoW3JlYWRvbmx5XSk6Zm9jdXMsLmNsci1lcnJvciAuY2xyLWlucHV0Om5vdChbcmVhZG9ubHldKS5jbHItZm9jdXN7''@;'; + put 'put ''Ym9yZGVyLWJvdHRvbS1jb2xvcjojYzIxZDAwO2JvcmRlci1ib3R0b20tY29sb3I6dmFyKC0tY2xyLWZvcm1zLWludmFsaWQtY29sb3IsICNjMjFkMDApO2JhY2tncm91bmQtc2l6ZToxMDAlIDEwMCV9LmNsci1mb3JtLWNvbnRyb2wucm93IC5jbHItaW5wdXQtd3JhcHBlcnttYXgtd2lkdGg6''@;'; + put 'put ''Y2FsYygxMDAlIC0gMS4ycmVtKX0uY2xyLWZvcm0tY29tcGFjdCAuY2xyLWlucHV0e21heC13aWR0aDoxMDAlfS5jbHItZm9ybS1jb21wYWN0IC5jbHItaW5wdXR+LmNsci1zdWJ0ZXh0e21hcmdpbi1sZWZ0Oi4zcmVtfS5jbHItZm9ybS1jb250cm9sLXJlYWRvbmx5IC5jbHItaW5wdXR7Ym9y''@;'; + put 'put ''ZGVyOjB9LmNsci1mb3JtLWNvbnRyb2wtbXVsdGkgLmNsci1pbnB1dHttYXgtd2lkdGg6Y2FsYygxMDAlICsgMS4ycmVtKX06OnBsYWNlaG9sZGVye2NvbG9yOiM0ZjYxNjk7Y29sb3I6dmFyKC0tY2xyLWZvcm1zLXBsYWNlaG9sZGVyLWNvbG9yLCAjNGY2MTY5KX0uY2xyLWlucHV0LWdyb3Vw''@;'; + put 'put ''e2NvbG9yOiMwMDA7Y29sb3I6dmFyKC0tY2xyLWZvcm1zLXRleHQtY29sb3IsIGJsYWNrKTtib3JkZXItYm90dG9tOi4wNXJlbSBzb2xpZDtib3JkZXItYm90dG9tLWNvbG9yOiM2YTdhODE7Ym9yZGVyLWJvdHRvbS1jb2xvcjp2YXIoLS1jbHItZm9ybXMtYm9yZGVyLWNvbG9yLCAjNmE3YTgx''@;'; + put 'put ''KTtkaXNwbGF5OmlubGluZS1ibG9jaztiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCh0byBib3R0b20sdHJhbnNwYXJlbnQgOTUlLHZhcigtLWNsci1mb3Jtcy1mb2N1c2VkLWNvbG9yLCAjMDA3MmEzKSA5NSUpIG5vLXJlcGVhdDtiYWNrZ3JvdW5kLXNpemU6MCAxMDAlO3RyYW5zaXRpb246''@;'; + put 'put ''YmFja2dyb3VuZC1zaXplIC4ycyBlYXNlO21heC13aWR0aDoxMDAlO2hlaWdodDoxLjJyZW19LmNsci1pbnB1dC1ncm91cDpmb2N1cywuY2xyLWlucHV0LWdyb3VwLmNsci1mb2N1c3tib3JkZXItYm90dG9tLWNvbG9yOiMwMDcyYTM7Ym9yZGVyLWJvdHRvbS1jb2xvcjp2YXIoLS1jbHItZm9y''@;'; + put 'put ''bXMtZm9jdXNlZC1jb2xvciwgIzAwNzJhMyk7YmFja2dyb3VuZC1zaXplOjEwMCUgMTAwJX0uY2xyLWlucHV0LWdyb3VwLmNsci1mb2N1c3t3aWR0aDphdXRvfS5jbHItaW5wdXQtZ3JvdXAgLmNsci1pbnB1dHtiYWNrZ3JvdW5kOjAgMDtib3JkZXI6MDttYXJnaW4tcmlnaHQ6MDttYXgtd2lk''@;'; + put 'put ''dGg6MTAwJX0uY2xyLWlucHV0LWdyb3VwIC5jbHItaW5wdXQ6bm90KFtyZWFkb25seV0pOmZvY3Vze2JhY2tncm91bmQtc2l6ZTowO2JvcmRlcjowfS5jbHItaW5wdXQtZ3JvdXAgc2VsZWN0LC5jbHItaW5wdXQtZ3JvdXAgLmNsci1zZWxlY3Qtd3JhcHBlciBzZWxlY3QsLmNsci1pbnB1dC1n''@;'; + put 'put ''cm91cCAuY2xyLW11bHRpc2VsZWN0LXdyYXBwZXIgc2VsZWN0e2JvcmRlcjowfS5jbHItaW5wdXQtZ3JvdXAgLmNsci1pbnB1dC1ncm91cC1hZGRvbntjb2xvcjojOGM4YzhjO2NvbG9yOnZhcigtLWNsci1mb3Jtcy1zdWJ0ZXh0LWNvbG9yLCAjOGM4YzhjKX0uY2xyLWlucHV0LWdyb3VwIC5j''@;'; + put 'put ''bHItaW5wdXQtZ3JvdXAtYWRkb246Zmlyc3QtY2hpbGR7cGFkZGluZzowIDAgMCAuNDVyZW19LmNsci1pbnB1dC1ncm91cCAuY2xyLWlucHV0LWdyb3VwLWFkZG9uOmxhc3QtY2hpbGR7cGFkZGluZzowIC40NXJlbSAwIDB9LmNsci1pbnB1dC1ncm91cCAuY2xyLWlucHV0LWdyb3VwLWljb24t''@;'; + put 'put ''YWN0aW9uey13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lOy1tcy1hcHBlYXJhbmNlOm5vbmU7LW8tYXBwZWFyYW5jZTpub25lO21hcmdpbjowO3BhZGRpbmc6MDtib3JkZXI6MDtib3JkZXItcmFkaXVzOjA7Ym94LXNoYWRvdzpub25lO2JhY2tncm91bmQ6MCAw''@;'; + put 'put ''O2NvbG9yOiMwMDcyYTM7Y29sb3I6dmFyKC0tY2xyLWZvcm1zLWZvY3VzZWQtY29sb3IsICMwMDcyYTMpO3BhZGRpbmc6MCAuNDVyZW19YnV0dG9uLmNsci1pbnB1dC1ncm91cCAuY2xyLWlucHV0LWdyb3VwLWljb24tYWN0aW9ue2N1cnNvcjpwb2ludGVyfS5jbHItaW5wdXQtZ3JvdXAgLmNs''@;'; + put 'put ''ci1pbnB1dC1ncm91cC1pY29uLWFjdGlvbiBjZHMtaWNvbiwuY2xyLWlucHV0LWdyb3VwIC5jbHItaW5wdXQtZ3JvdXAtaWNvbi1hY3Rpb24gY2xyLWljb257aGVpZ2h0Oi45cmVtO3dpZHRoOi45cmVtO3RyYW5zZm9ybTp0cmFuc2xhdGUoLS4wNXJlbSwtLjA1cmVtKX0uY2xyLWZvcm0tY29u''@;'; + put 'put ''dHJvbC1kaXNhYmxlZCAuY2xyLWlucHV0LWdyb3VwLWljb24tYWN0aW9ue2NvbG9yOiNiM2IzYjM7Y29sb3I6dmFyKC0tY2xyLWZvcm1zLXRleHQtZGlzYWJsZWQtY29sb3IsICNiM2IzYjMpO2N1cnNvcjpub3QtYWxsb3dlZH0uY2xyLWVycm9yIC5jbHItaW5wdXQtZ3JvdXB7Ym9yZGVyLWJv''@;'; + put 'put ''dHRvbS1jb2xvcjojYzIxZDAwO2JvcmRlci1ib3R0b20tY29sb3I6dmFyKC0tY2xyLWZvcm1zLWludmFsaWQtY29sb3IsICNjMjFkMDApO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSx0cmFuc3BhcmVudCA5NSUsdmFyKC0tY2xyLWZvcm1zLWludmFsaWQtY29sb3IsICNj''@;'; + put 'put ''MjFkMDApIDk1JSkgbm8tcmVwZWF0O2JhY2tncm91bmQtc2l6ZTowIDEwMCU7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kLXNpemUgLjJzIGVhc2V9LmNsci1lcnJvciAuY2xyLWlucHV0LWdyb3VwOmZvY3VzLC5jbHItZXJyb3IgLmNsci1pbnB1dC1ncm91cC5jbHItZm9jdXN7Ym9yZGVyLWJvdHRv''@;'; + put 'put ''bS1jb2xvcjojYzIxZDAwO2JvcmRlci1ib3R0b20tY29sb3I6dmFyKC0tY2xyLWZvcm1zLWludmFsaWQtY29sb3IsICNjMjFkMDApO2JhY2tncm91bmQtc2l6ZToxMDAlIDEwMCV9LmNsci1mb3JtLWhvcml6b250YWwgLmNsci1pbnB1dC1ncm91cHttYXgtd2lkdGg6MTAwJTtwYWRkaW5nLXJp''@;'; + put 'put ''Z2h0OjB9LmNsci1yYWRpby13cmFwcGVye3Bvc2l0aW9uOnJlbGF0aXZlO2xpbmUtaGVpZ2h0OjEuMnJlbX0uY2xyLXJhZGlvLXdyYXBwZXIgLmNsci1jb250cm9sLWxhYmVse2ZvbnQtd2VpZ2h0OjQwMDtkaXNwbGF5OmJsb2NrfS5jbHItcmFkaW8td3JhcHBlcn4uY2xyLXZhbGlkYXRlLWlj''@;'; + put 'put ''b257bWFyZ2luLWxlZnQ6MH0uY2xyLXJhZGlvLXdyYXBwZXJ+LmNsci1zdWJ0ZXh0e2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5jbHItcmFkaW8td3JhcHBlciBpbnB1dFt0eXBlPXJhZGlvXXtwb3NpdGlvbjphYnNvbHV0ZTtvcGFjaXR5OjA7dG9wOi4yNXJlbTtsZWZ0OjA7aGVpZ2h0Oi44cmVt''@;'; + put 'put ''O3dpZHRoOi44cmVtfS5jbHItcmFkaW8td3JhcHBlciBsYWJlbHtwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmlubGluZS1ibG9jazttaW4taGVpZ2h0OjEuMnJlbTtwYWRkaW5nLWxlZnQ6MS4xcmVtO21hcmdpbi10b3A6MDtjdXJzb3I6cG9pbnRlcjtsaW5lLWhlaWdodDoxLjJyZW07Y29s''@;'; + put 'put ''b3I6IzQ1NDU0NTtjb2xvcjp2YXIoLS1jbHItZm9ybXMtcmFkaW8tbGFiZWwtY29sb3IsICM0NTQ1NDUpfS5jbHItcmFkaW8td3JhcHBlciBsYWJlbDplbXB0eXtwYWRkaW5nLWxlZnQ6MH0uY2xyLXJhZGlvLXdyYXBwZXIgaW5wdXRbdHlwZT1yYWRpb10rbGFiZWw6YmVmb3Jle3Bvc2l0aW9u''@;'; + put 'put ''OmFic29sdXRlO3RvcDouMnJlbTtsZWZ0OjA7Y29udGVudDoiIjtkaXNwbGF5OmlubGluZS1ibG9jaztoZWlnaHQ6LjhyZW07d2lkdGg6LjhyZW07Ym9yZGVyOi4wNXJlbSBzb2xpZDtib3JkZXItY29sb3I6IzZhN2E4MTtib3JkZXItY29sb3I6dmFyKC0tY2xyLWZvcm1zLWJvcmRlci1jb2xv''@;'; + put 'put ''ciwgIzZhN2E4MSk7Ym9yZGVyLXJhZGl1czo1MCV9LmNsci1yYWRpby13cmFwcGVyIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw6YmVmb3Jle2JveC1zaGFkb3c6aW5zZXQgMCAwIDAgLjNyZW0gIzAwNzJhMztib3gtc2hhZG93OnZhcigtLWNsci1mb3Jtcy1yYWRpby1zZWxlY3Rl''@;'; + put 'put ''ZC1zaGFkb3csIGluc2V0IDAgMCAwIC4zcmVtICMwMDcyYTMpO2JvcmRlcjowfS5jbHItcmFkaW8td3JhcHBlciBpbnB1dFt0eXBlPXJhZGlvXTpmb2N1cytsYWJlbDpiZWZvcmV7b3V0bGluZTpIaWdobGlnaHQgc29saWQgLjFyZW07b3V0bGluZTotd2Via2l0LWZvY3VzLXJpbmctY29sb3Ig''@;'; + put 'put ''c29saWQgLjFyZW07b3V0bGluZS1vZmZzZXQ6LjA1cmVtfS5jbHItcmFkaW8td3JhcHBlciBpbnB1dFt0eXBlPXJhZGlvXTpmb2N1czpjaGVja2VkK2xhYmVsOmJlZm9yZXtvdXRsaW5lOkhpZ2hsaWdodCBzb2xpZCAuMXJlbTtvdXRsaW5lOi13ZWJraXQtZm9jdXMtcmluZy1jb2xvciBzb2xp''@;'; + put 'put ''ZCAuMXJlbTtvdXRsaW5lLW9mZnNldDouMDVyZW19LmNsci1yYWRpby13cmFwcGVyIGlucHV0W3R5cGU9cmFkaW9dOmRpc2FibGVkK2xhYmVsOmJlZm9yZXtib3JkZXI6MDtib3gtc2hhZG93Omluc2V0IDAgMCAwIC42cmVtICNlOGU4ZTg7Ym94LXNoYWRvdzp2YXIoLS1pbnNldCAwIDAgMCAu''@;'; + put 'put ''NnJlbSAjZThlOGU4LCBpbnNldCAwIDAgMCAuNnJlbSAjZThlOGU4KX0uY2xyLXJhZGlvLXdyYXBwZXIgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZDpkaXNhYmxlZCtsYWJlbDpiZWZvcmV7YmFja2dyb3VuZC1jb2xvcjojNjY2O2JhY2tncm91bmQtY29sb3I6dmFyKC0tIzY2NjY2NiwgIzY2''@;'; + put 'put ''NjY2Nik7Ym94LXNoYWRvdzppbnNldCAwIDAgMCAuM3JlbSAjZThlOGU4O2JveC1zaGFkb3c6dmFyKC0taW5zZXQgMCAwIDAgLjNyZW0gI2U4ZThlOCwgaW5zZXQgMCAwIDAgLjNyZW0gI2U4ZThlOCl9LmNsci1mb3JtLWNvbnRyb2wtZGlzYWJsZWQgLmNsci1yYWRpby13cmFwcGVyIGxhYmVs''@;'; + put 'put ''e2N1cnNvcjpub3QtYWxsb3dlZH0uY2xyLWVycm9yIC5jbHItcmFkaW8td3JhcHBlciBpbnB1dFt0eXBlPXJhZGlvXStsYWJlbDpiZWZvcmV7Ym9yZGVyLWNvbG9yOiNjMjFkMDA7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1mb3Jtcy1pbnZhbGlkLWNvbG9yLCAjYzIxZDAwKX0uY2xyLWZvcm0t''@;'; + put 'put ''Y29tcGFjdCAuY2xyLWVycm9yIC5jbHItc3VidGV4dHttYXJnaW4tbGVmdDowfS5jbHItZm9ybS1jb21wYWN0IC5jbHItcmFkaW8td3JhcHBlcnttYXgtd2lkdGg6MTAwJTtkaXNwbGF5OmZsZXg7ZmxleC13cmFwOndyYXA7YWxpZ24tY29udGVudDpmbGV4LXN0YXJ0O2hlaWdodDoxLjJyZW19''@;'; + put 'put ''LmNsci1mb3JtLWNvbXBhY3QgLmNsci1yYWRpby13cmFwcGVyfi5jbHItc3VidGV4dHttYXJnaW4tbGVmdDouM3JlbX0uY2xyLWZvcm0tY29tcGFjdCAuY2xyLXJhZGlvLXdyYXBwZXIgLmNsci1jb250cm9sLWxhYmVse2Rpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdpbi1yaWdodDouNnJlbTt3''@;'; + put 'put ''aWR0aDphdXRvfS5jbHItZm9ybS1jb21wYWN0IC5jbHItcmFkaW8td3JhcHBlciAuY2xyLWNvbnRyb2wtbGFiZWx7bWFyZ2luLXRvcDowfS5jbHItc2VsZWN0LXdyYXBwZXIsLmNsci1tdWx0aXNlbGVjdC13cmFwcGVye3Bvc2l0aW9uOnJlbGF0aXZlO3doaXRlLXNwYWNlOm5vd3JhcH0uY2xy''@;'; + put 'put ''LXNlbGVjdC13cmFwcGVyIHNlbGVjdCwuY2xyLW11bHRpc2VsZWN0LXdyYXBwZXIgc2VsZWN0ey13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lOy1tcy1hcHBlYXJhbmNlOm5vbmU7LW8tYXBwZWFyYW5jZTpub25lO21hcmdpbjowO3BhZGRpbmc6MDtib3JkZXI6''@;'; + put 'put ''MDtib3JkZXItcmFkaXVzOjA7Ym94LXNoYWRvdzpub25lO2JhY2tncm91bmQ6MCAwO2hlaWdodDoxLjJyZW07Y29sb3I6IzAwMDtjb2xvcjp2YXIoLS1jbHItZm9ybXMtdGV4dC1jb2xvciwgYmxhY2spO2JvcmRlci1ib3R0b206LjA1cmVtIHNvbGlkO2JvcmRlci1ib3R0b20tY29sb3I6IzZh''@;'; + put 'put ''N2E4MTtib3JkZXItYm90dG9tLWNvbG9yOnZhcigtLWNsci1mb3Jtcy1ib3JkZXItY29sb3IsICM2YTdhODEpO2Rpc3BsYXk6aW5saW5lLWJsb2NrO3Bvc2l0aW9uOnJlbGF0aXZlO3BhZGRpbmc6MCAxLjFyZW0gMCAuM3JlbTtjdXJzb3I6cG9pbnRlcjtmb250LXNpemU6LjY1cmVtO3otaW5k''@;'; + put 'put ''ZXg6Mn0uY2xyLXNlbGVjdC13cmFwcGVyIHNlbGVjdDpmb2N1cywuY2xyLW11bHRpc2VsZWN0LXdyYXBwZXIgc2VsZWN0OmZvY3Vze291dGxpbmU6MH0uY2xyLXNlbGVjdC13cmFwcGVyIHNlbGVjdDpub3QoW211bHRpcGxlXSksLmNsci1tdWx0aXNlbGVjdC13cmFwcGVyIHNlbGVjdDpub3Qo''@;'; + put 'put ''W211bHRpcGxlXSl7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLHRyYW5zcGFyZW50IDk1JSx2YXIoLS1jbHItZm9ybXMtZm9jdXNlZC1jb2xvciwgIzAwNzJhMykgOTUlKSBuby1yZXBlYXQ7YmFja2dyb3VuZC1zaXplOjAgMTAwJTt0cmFuc2l0aW9uOmJhY2tncm91bmQt''@;'; + put 'put ''c2l6ZSAuMnMgZWFzZX0uY2xyLXNlbGVjdC13cmFwcGVyIHNlbGVjdDpub3QoW211bHRpcGxlXSk6Zm9jdXMsLmNsci1zZWxlY3Qtd3JhcHBlciBzZWxlY3Q6bm90KFttdWx0aXBsZV0pLmNsci1mb2N1cywuY2xyLW11bHRpc2VsZWN0LXdyYXBwZXIgc2VsZWN0Om5vdChbbXVsdGlwbGVdKTpm''@;'; + put 'put ''b2N1cywuY2xyLW11bHRpc2VsZWN0LXdyYXBwZXIgc2VsZWN0Om5vdChbbXVsdGlwbGVdKS5jbHItZm9jdXN7Ym9yZGVyLWJvdHRvbS1jb2xvcjojMDA3MmEzO2JvcmRlci1ib3R0b20tY29sb3I6dmFyKC0tY2xyLWZvcm1zLWZvY3VzZWQtY29sb3IsICMwMDcyYTMpO2JhY2tncm91bmQtc2l6''@;'; + put 'put ''ZToxMDAlIDEwMCV9LmNsci1zZWxlY3Qtd3JhcHBlciBzZWxlY3RbbXVsdGlwbGVdOmZvY3VzLC5jbHItbXVsdGlzZWxlY3Qtd3JhcHBlciBzZWxlY3RbbXVsdGlwbGVdOmZvY3Vze291dGxpbmU6SGlnaGxpZ2h0IGF1dG8gLjFyZW07b3V0bGluZTotd2Via2l0LWZvY3VzLXJpbmctY29sb3Ig''@;'; + put 'put ''YXV0byAuMXJlbX0uY2xyLXNlbGVjdC13cmFwcGVyIHNlbGVjdDpob3ZlciwuY2xyLXNlbGVjdC13cmFwcGVyIHNlbGVjdDphY3RpdmUsLmNsci1tdWx0aXNlbGVjdC13cmFwcGVyIHNlbGVjdDpob3ZlciwuY2xyLW11bHRpc2VsZWN0LXdyYXBwZXIgc2VsZWN0OmFjdGl2ZXtib3JkZXItY29s''@;'; + put 'put ''b3I6I2RlZGVkZTgwO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItZm9ybXMtc2VsZWN0LWhvdmVyLWJhY2tncm91bmQsIHJnYmEoMjIyLCAyMjIsIDIyMiwgLjUpKTtiYWNrZ3JvdW5kOnJnYmEoMjIyLDIyMiwyMjIsLjUpO2JhY2tncm91bmQ6dmFyKC0tY2xyLWZvcm1zLXNlbGVjdC1ob3Zlci1i''@;'; + put 'put ''YWNrZ3JvdW5kLCByZ2JhKDIyMiwgMjIyLCAyMjIsIC41KSl9LmNsci1zZWxlY3Qtd3JhcHBlciBzZWxlY3Q6ZGlzYWJsZWQgb3B0aW9uLC5jbHItbXVsdGlzZWxlY3Qtd3JhcHBlciBzZWxlY3Q6ZGlzYWJsZWQgb3B0aW9ue2NvbG9yOiNiM2IzYjM7Y29sb3I6dmFyKC0tY2xyLWZvcm1zLXRl''@;'; + put 'put ''eHQtZGlzYWJsZWQtY29sb3IsICNiM2IzYjMpO2N1cnNvcjpub3QtYWxsb3dlZH0uY2xyLXNlbGVjdC13cmFwcGVyIHNlbGVjdCBvcHRpb24sLmNsci1tdWx0aXNlbGVjdC13cmFwcGVyIHNlbGVjdCBvcHRpb257Y29sb3I6IzAwMDtjb2xvcjp2YXIoLS1jbHItZm9ybXMtc2VsZWN0LW9wdGlv''@;'; + put 'put ''bi1jb2xvciwgYmxhY2spfS5jbHItc2VsZWN0LXdyYXBwZXIgc2VsZWN0OjotbXMtZXhwYW5kLC5jbHItbXVsdGlzZWxlY3Qtd3JhcHBlciBzZWxlY3Q6Oi1tcy1leHBhbmR7ZGlzcGxheTpub25lfS5jbHItc2VsZWN0LXdyYXBwZXJ7bWF4LWhlaWdodDoxLjJyZW07ZGlzcGxheTppbmxpbmUt''@;'; + put 'put ''YmxvY2t9LmNsci1zZWxlY3Qtd3JhcHBlcjphZnRlcntwb3NpdGlvbjphYnNvbHV0ZTtjb250ZW50OiIiO2hlaWdodDouNXJlbTt3aWR0aDouNXJlbTt0b3A6LjM1cmVtO3JpZ2h0Oi4zcmVtO2JhY2tncm91bmQtaW1hZ2U6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0ZjgsJTND''@;'; + put 'put ''c3ZnJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjAxMiUyMDEyJTIyJTNFJTBBJTIwJTIwJTIwJTIwJTNDZGVmcyUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3N0eWxlJTNFLmNscy0xJTdC''@;'; + put 'put ''ZmlsbCUzQSUyM2IzYjNiMyUzQiU3RCUzQyUyRnN0eWxlJTNFJTBBJTIwJTIwJTIwJTIwJTNDJTJGZGVmcyUzRSUwQSUyMCUyMCUyMCUyMCUzQ3RpdGxlJTNFQ2FyZXQlM0MlMkZ0aXRsZSUzRSUwQSUyMCUyMCUyMCUyMCUzQ3BhdGglMjBjbGFzcyUzRCUyMmNscy0xJTIyJTIwZCUzRCUyMk02''@;'; + put 'put ''JTJDOUwxLjIlMkM0LjJhMC42OCUyQzAuNjglMkMwJTJDMCUyQzElMkMxLTFMNiUyQzcuMDglMkM5Ljg0JTJDMy4yNGEwLjY4JTJDMC42OCUyQzAlMkMxJTJDMSUyQzElMkMxWiUyMiUyRiUzRSUwQSUzQyUyRnN2ZyUzRSUwQSk7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O2JhY2tncm91''@;'; + put 'put ''bmQtc2l6ZTpjb250YWluO3ZlcnRpY2FsLWFsaWduOm1pZGRsZTttYXJnaW46MH0uY2xyLXNlbGVjdC13cmFwcGVyOmhvdmVyOmFmdGVye2NvbG9yOiM4YzhjOGM7Y29sb3I6dmFyKC0tY2xyLWZvcm1zLXNlbGVjdC1jYXJldC1ob3Zlci1jb2xvciwgIzhjOGM4Yyl9LmNsci1lcnJvciAuY2xy''@;'; + put 'put ''LXNlbGVjdC13cmFwcGVyOmFmdGVyLC5jbHItc3VjY2VzcyAuY2xyLXNlbGVjdC13cmFwcGVyOmFmdGVye3JpZ2h0OjEuNXJlbX0uY2xyLW11bHRpc2VsZWN0LXdyYXBwZXJ7ZGlzcGxheTpmbGV4fS5jbHItbXVsdGlzZWxlY3Qtd3JhcHBlciAuY2xyLXZhbGlkYXRlLWljb257bWFyZ2luLWxl''@;'; + put 'put ''ZnQ6MH1zZWxlY3RbbXVsdGlwbGVdLHNlbGVjdFtzaXplXXtwYWRkaW5nOjA7YmFja2dyb3VuZDojZmZmO2JhY2tncm91bmQ6dmFyKC0tY2xyLWZvcm1zLXNlbGVjdC1tdWx0aXBsZS1iYWNrZ3JvdW5kLWNvbG9yLCB3aGl0ZSk7Ym9yZGVyOi4wNXJlbSBzb2xpZDtib3JkZXItY29sb3I6I2Nj''@;'; + put 'put ''Yztib3JkZXItY29sb3I6dmFyKC0tY2xyLWZvcm1zLXNlbGVjdC1tdWx0aXBsZS1ib3JkZXItY29sb3IsICNjY2NjY2MpO2JvcmRlci1yYWRpdXM6LjE1cmVtO2JvcmRlci1yYWRpdXM6dmFyKC0tY2xyLWdsb2JhbC1ib3JkZXJyYWRpdXMsIC4xNXJlbSk7aGVpZ2h0OmF1dG87bWluLXdpZHRo''@;'; + put 'put ''OjZyZW19c2VsZWN0W211bHRpcGxlXTpob3ZlcixzZWxlY3RbbXVsdGlwbGVdOmFjdGl2ZSxzZWxlY3Rbc2l6ZV06aG92ZXIsc2VsZWN0W3NpemVdOmFjdGl2ZXtiYWNrZ3JvdW5kOiNmZmY7YmFja2dyb3VuZDp2YXIoLS1jbHItZm9ybXMtc2VsZWN0LW11bHRpcGxlLWJhY2tncm91bmQtY29s''@;'; + put 'put ''b3IsIHdoaXRlKTtib3JkZXItY29sb3I6I2NjYztib3JkZXItY29sb3I6dmFyKC0tY2xyLWZvcm1zLXNlbGVjdC1tdWx0aXBsZS1ib3JkZXItY29sb3IsICNjY2NjY2MpfXNlbGVjdFttdWx0aXBsZV0gb3B0aW9uLHNlbGVjdFtzaXplXSBvcHRpb257cGFkZGluZzouMTVyZW0gLjNyZW07Y29s''@;'; + put 'put ''b3I6IzAwMDtjb2xvcjp2YXIoLS1jbHItZm9ybXMtc2VsZWN0LW11bHRpcGxlLW9wdGlvbi1jb2xvciwgYmxhY2spfS5jbHItZXJyb3Igc2VsZWN0Om5vdChbbXVsdGlwbGVdKXtib3JkZXItYm90dG9tLWNvbG9yOiNjMjFkMDA7Ym9yZGVyLWJvdHRvbS1jb2xvcjp2YXIoLS1jbHItZm9ybXMt''@;'; + put 'put ''aW52YWxpZC1jb2xvciwgI2MyMWQwMCl9LmNsci1lcnJvciBzZWxlY3RbbXVsdGlwbGVde2JvcmRlci1jb2xvcjojYzIxZDAwO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItZm9ybXMtaW52YWxpZC1jb2xvciwgI2MyMWQwMCl9LmNsci1mb3JtLWNvbnRyb2wtZGlzYWJsZWQgLmNsci1zZWxlY3Qu''@;'; + put 'put ''ZGlzYWJsZWR7Y29sb3I6I2IzYjNiMztjb2xvcjp2YXIoLS1jbHItZm9ybXMtdGV4dC1kaXNhYmxlZC1jb2xvciwgI2IzYjNiMyk7Y3Vyc29yOm5vdC1hbGxvd2VkfS5jbHItZm9ybS1jb250cm9sLWRpc2FibGVkIC5jbHItc2VsZWN0LmRpc2FibGVkOmhvdmVyOmFmdGVye2NvbG9yOiNiM2Iz''@;'; + put 'put ''YjM7Y29sb3I6dmFyKC0tY2xyLWZvcm1zLXNlbGVjdC1jYXJldC1jb2xvciwgI2IzYjNiMyl9LmNsci1mb3JtLWNvbnRyb2wtZGlzYWJsZWQgLmNsci1zZWxlY3QuZGlzYWJsZWQ+c2VsZWN0LC5jbHItZm9ybS1jb250cm9sLWRpc2FibGVkIC5jbHItc2VsZWN0IHNlbGVjdDpkaXNhYmxlZHtj''@;'; + put 'put ''b2xvcjojYjNiM2IzO2NvbG9yOnZhcigtLWNsci1mb3Jtcy10ZXh0LWRpc2FibGVkLWNvbG9yLCAjYjNiM2IzKTtjdXJzb3I6bm90LWFsbG93ZWR9LmNsci1mb3JtLWNvbnRyb2wtZGlzYWJsZWQgLmNsci1zZWxlY3QuZGlzYWJsZWQ+c2VsZWN0OmhvdmVyLC5jbHItZm9ybS1jb250cm9sLWRp''@;'; + put 'put ''c2FibGVkIC5jbHItc2VsZWN0IHNlbGVjdDpkaXNhYmxlZDpob3ZlcntiYWNrZ3JvdW5kOjAgMDtib3JkZXItY29sb3I6IzZhN2E4MTtib3JkZXItY29sb3I6dmFyKC0tY2xyLWZvcm1zLWJvcmRlci1jb2xvciwgIzZhN2E4MSl9LmNsci1mb3JtLWNvbXBhY3QgLmNsci1tdWx0aXNlbGVjdC13''@;'; + put 'put ''cmFwcGVye21hcmdpbi10b3A6MH0uY2xyLXRleHRhcmVhLXdyYXBwZXJ7d2hpdGUtc3BhY2U6bm93cmFwO2Rpc3BsYXk6ZmxleDttYXJnaW4tdG9wOi4zcmVtfS5jbHItdGV4dGFyZWEtd3JhcHBlciAuY2xyLXZhbGlkYXRlLWljb257bWFyZ2luLWxlZnQ6MH0uY2xyLXRleHRhcmVhe21heC13''@;'; + put 'put ''aWR0aDpjYWxjKDEwMCUgLSAuM3JlbSk7aGVpZ2h0OmF1dG87cmVzaXplOnZlcnRpY2FsO2JhY2tncm91bmQ6I2ZmZjtiYWNrZ3JvdW5kOnZhcigtLWNsci1mb3Jtcy10ZXh0YXJlYS1iYWNrZ3JvdW5kLWNvbG9yLCB3aGl0ZSk7Ym9yZGVyOi4wNXJlbSBzb2xpZDtib3JkZXItY29sb3I6IzZh''@;'; + put 'put ''N2E4MTtib3JkZXItY29sb3I6dmFyKC0tY2xyLWZvcm1zLWJvcmRlci1jb2xvciwgIzZhN2E4MSk7Y29sb3I6IzAwMDtjb2xvcjp2YXIoLS1jbHItZm9ybXMtdGV4dC1jb2xvciwgYmxhY2spO2JvcmRlci1yYWRpdXM6LjE1cmVtO3BhZGRpbmc6LjRyZW0gLjZyZW07Zm9udC1zaXplOi42NXJl''@;'; + put 'put ''bX0uY2xyLXRleHRhcmVhOmZvY3Vze291dGxpbmU6SGlnaGxpZ2h0IGF1dG8gLjFyZW07b3V0bGluZTotd2Via2l0LWZvY3VzLXJpbmctY29sb3IgYXV0byAuMXJlbX0uY2xyLXRleHRhcmVhOmRpc2FibGVke2NvbG9yOiNiM2IzYjM7Y29sb3I6dmFyKC0tY2xyLWZvcm1zLXRleHQtZGlzYWJs''@;'; + put 'put ''ZWQtY29sb3IsICNiM2IzYjMpO2N1cnNvcjpub3QtYWxsb3dlZH0uY2xyLWVycm9yIC5jbHItdGV4dGFyZWF7Ym9yZGVyLWNvbG9yOiNjMjFkMDA7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1mb3Jtcy1pbnZhbGlkLWNvbG9yLCAjYzIxZDAwKX0uY2xyLWNvbnRyb2wtY29udGFpbmVyIHRleHRh''@;'; + put 'put ''cmVhe3dpZHRoOmF1dG99LmNsci1mb3JtLWNvbnRyb2wucm93IC5jbHItdGV4dGFyZWEtd3JhcHBlcnttYXgtd2lkdGg6Y2FsYygxMDAlIC0gLjNyZW0pfS5jbHItZm9ybS1jb21wYWN0IC5jbHItdGV4dGFyZWEtd3JhcHBlcnttYXJnaW4tdG9wOjB9LmNsci1mb3JtLWNvbXBhY3QgLmNsci10''@;'; + put 'put ''ZXh0YXJlYS13cmFwcGVyIC5jbHItdGV4dGFyZWF7bWF4LXdpZHRoOjEwMCV9LmNsci1mb3JtLWNvbXBhY3QgLmNsci10ZXh0YXJlYS13cmFwcGVyIC5jbHItdGV4dGFyZWF+LmNsci1zdWJ0ZXh0e21hcmdpbi1sZWZ0Oi4zcmVtfTpyb290ey0tY2xyLXRvZ2dsZS1iZy1jb2xvci1vZmY6dmFy''@;'; + put 'put ''KC0tY2xyLWNvbG9yLW5ldXRyYWwtNjAwKTstLWNsci10b2dnbGUtYmctY29sb3Itb246dmFyKC0tY2xyLWNvbG9yLXN1Y2Nlc3MtNTAwKTstLWNsci10b2dnbGUtaGFuZGxlLWJnLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTUwKTstLWNsci10b2dnbGUtZGlzYWJsZWQtZGVmYXVs''@;'; + put 'put ''dC1ib3JkZXItY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNDAwKTstLWNsci10b2dnbGUtZGlzYWJsZWQtZGVmYXVsdC1oYW5kbGUtY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtMCk7LS1jbHItdG9nZ2xlLWRpc2FibGVkLW9mZi1ib3JkZXItY29sb3I6dmFyKC0tY2xyLXRv''@;'; + put 'put ''Z2dsZS1kaXNhYmxlZC1kZWZhdWx0LWJvcmRlci1jb2xvcik7LS1jbHItdG9nZ2xlLWRpc2FibGVkLW9mZi1iZy1jb2xvcjp2YXIoLS1jbHItdG9nZ2xlLWRpc2FibGVkLWRlZmF1bHQtaGFuZGxlLWNvbG9yKTstLWNsci10b2dnbGUtZGlzYWJsZWQtb2ZmLWhhbmRsZS1ib3JkZXItY29sb3I6''@;'; + put 'put ''dmFyKC0tY2xyLXRvZ2dsZS1kaXNhYmxlZC1kZWZhdWx0LWJvcmRlci1jb2xvcik7LS1jbHItdG9nZ2xlLWRpc2FibGVkLW9uLWJvcmRlci1jb2xvcjp2YXIoLS1jbHItdG9nZ2xlLWRpc2FibGVkLWRlZmF1bHQtYm9yZGVyLWNvbG9yKTstLWNsci10b2dnbGUtZGlzYWJsZWQtb24tYmctY29s''@;'; + put 'put ''b3I6dmFyKC0tY2xyLXRvZ2dsZS1kaXNhYmxlZC1kZWZhdWx0LWJvcmRlci1jb2xvcik7LS1jbHItdG9nZ2xlLWRpc2FibGVkLW9uLWhhbmRsZS1ib3JkZXItY29sb3I6dmFyKC0tY2xyLXRvZ2dsZS1kaXNhYmxlZC1kZWZhdWx0LWhhbmRsZS1jb2xvcil9LmNsci10b2dnbGUtd3JhcHBlciBp''@;'; + put 'put ''bnB1dFt0eXBlPWNoZWNrYm94XXstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTstbW96LWFwcGVhcmFuY2U6bm9uZTstbXMtYXBwZWFyYW5jZTpub25lOy1vLWFwcGVhcmFuY2U6bm9uZX0uY2xyLXRvZ2dsZS13cmFwcGVye2hlaWdodDoxLjJyZW07dmVydGljYWwtYWxpZ246bWlkZGxlO3Bvc2l0''@;'; + put 'put ''aW9uOnJlbGF0aXZlO2Rpc3BsYXk6YmxvY2s7bWFyZ2luLXJpZ2h0Oi42cmVtfS5jbHItdG9nZ2xlLXdyYXBwZXIgbGFiZWx7ZGlzcGxheTppbmxpbmUtYmxvY2s7cG9zaXRpb246cmVsYXRpdmU7Y3Vyc29yOnBvaW50ZXI7aGVpZ2h0OjEuMnJlbTttYXJnaW4tbGVmdDoyLjFyZW07bWFyZ2lu''@;'; + put 'put ''LXJpZ2h0OjB9LmNsci10b2dnbGUtd3JhcHBlciBpbnB1dFt0eXBlPWNoZWNrYm94XXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6LjNyZW07cmlnaHQ6LjNyZW07aGVpZ2h0Oi44cmVtO3dpZHRoOi44cmVtO29wYWNpdHk6MH0uY2xyLXRvZ2dsZS13cmFwcGVyIGlucHV0W3R5cGU9Y2hlY2tib3hd''@;'; + put 'put ''K2xhYmVsOmJlZm9yZXtwb3NpdGlvbjphYnNvbHV0ZTtkaXNwbGF5OmlubGluZS1ibG9jaztjb250ZW50OiIiO2hlaWdodDouOXJlbTt3aWR0aDoxLjY1cmVtO2JvcmRlcjouMXJlbSBzb2xpZDtib3JkZXItcmFkaXVzOi40NXJlbTtib3JkZXItY29sb3I6IzhjOGM4Yztib3JkZXItY29sb3I6''@;'; + put 'put ''dmFyKC0tY2xyLXRvZ2dsZS1iZy1jb2xvci1vZmYsICM4YzhjOGMpO2JhY2tncm91bmQtY29sb3I6IzhjOGM4YztiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci10b2dnbGUtYmctY29sb3Itb2ZmLCAjOGM4YzhjKTt0b3A6LjE1cmVtO3JpZ2h0OjA7bGVmdDotMi4xcmVtO3RyYW5zaXRpb24t''@;'; + put 'put ''ZHVyYXRpb246LjE1czt0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjplYXNlLWluO3RyYW5zaXRpb24tcHJvcGVydHk6Ym9yZGVyLWNvbG9yLGJhY2tncm91bmQtY29sb3J9LmNsci10b2dnbGUtd3JhcHBlciBpbnB1dFt0eXBlPWNoZWNrYm94XTpmb2N1cytsYWJlbDpiZWZvcmV7b3V0bGlu''@;'; + put 'put ''ZTpIaWdobGlnaHQgc29saWQgLjFyZW07b3V0bGluZTotd2Via2l0LWZvY3VzLXJpbmctY29sb3Igc29saWQgLjFyZW07b3V0bGluZS1vZmZzZXQ6LjA1cmVtfS5jbHItdG9nZ2xlLXdyYXBwZXIgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbDpiZWZvcmV7Ym9yZGVyLWNvbG9y''@;'; + put 'put ''OiM1YWEyMjA7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci10b2dnbGUtYmctY29sb3Itb24sICM1YWEyMjApO2JhY2tncm91bmQtY29sb3I6IzVhYTIyMDtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci10b2dnbGUtYmctY29sb3Itb24sICM1YWEyMjApO3RyYW5zaXRpb24tZHVyYXRpb246LjE1''@;'; + put 'put ''czt0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjplYXNlLWluO3RyYW5zaXRpb24tcHJvcGVydHk6Ym9yZGVyLWNvbG9yLGJhY2tncm91bmQtY29sb3J9LmNsci10b2dnbGUtd3JhcHBlciBpbnB1dFt0eXBlPWNoZWNrYm94XStsYWJlbDphZnRlcntwb3NpdGlvbjphYnNvbHV0ZTtkaXNwbGF5''@;'; + put 'put ''OmlubGluZS1ibG9jaztjb250ZW50OiIiO2hlaWdodDouN3JlbTt3aWR0aDouN3JlbTtib3JkZXItd2lkdGg6LjA1cmVtO2JvcmRlci1jb2xvcjojZmFmYWZhO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItdG9nZ2xlLWhhbmRsZS1iZy1jb2xvciwgI2ZhZmFmYSk7Ym9yZGVyLXN0eWxlOnNvbGlk''@;'; + put 'put ''O2JvcmRlci1yYWRpdXM6NTAlO2JhY2tncm91bmQtY29sb3I6I2ZhZmFmYTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci10b2dnbGUtaGFuZGxlLWJnLWNvbG9yLCAjZmFmYWZhKTt0b3A6LjI1cmVtO3JpZ2h0OjA7bGVmdDotMnJlbTt0cmFuc2l0aW9uLWR1cmF0aW9uOi4xNXM7dHJhbnNp''@;'; + put 'put ''dGlvbi10aW1pbmctZnVuY3Rpb246ZWFzZS1pbjt0cmFuc2l0aW9uLXByb3BlcnR5OnJpZ2h0LGxlZnR9LmNsci10b2dnbGUtd3JhcHBlciBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsOmFmdGVye3JpZ2h0Oi0ycmVtO2xlZnQ6LTEuMjVyZW07dHJhbnNpdGlvbi1kdXJhdGlv''@;'; + put 'put ''bjouMTVzO3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOmVhc2UtaW47dHJhbnNpdGlvbi1wcm9wZXJ0eTpyaWdodCxsZWZ0fS5jbHItdG9nZ2xlLXdyYXBwZXIuZGlzYWJsZWQgbGFiZWx7b3BhY2l0eTouNDtjdXJzb3I6bm90LWFsbG93ZWR9LmNsci10b2dnbGUtd3JhcHBlci5kaXNhYmxl''@;'; + put 'put ''ZCBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsOmJlZm9yZXtib3JkZXItY29sb3I6I2NjYztib3JkZXItY29sb3I6dmFyKC0tY2xyLXRvZ2dsZS1kaXNhYmxlZC1vbi1ib3JkZXItY29sb3IsICNjY2NjY2MpO2JhY2tncm91bmQtY29sb3I6I2NjYztiYWNrZ3JvdW5kLWNvbG9y''@;'; + put 'put ''OnZhcigtLWNsci10b2dnbGUtZGlzYWJsZWQtb24tYm9yZGVyLWNvbG9yLCAjY2NjY2NjKX0uY2xyLXRvZ2dsZS13cmFwcGVyIGlucHV0W3R5cGU9Y2hlY2tib3hdOmRpc2FibGVkK2xhYmVse2N1cnNvcjpub3QtYWxsb3dlZH0uY2xyLXRvZ2dsZS13cmFwcGVyIGlucHV0W3R5cGU9Y2hlY2ti''@;'; + put 'put ''b3hdOmRpc2FibGVkK2xhYmVsOmJlZm9yZXtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItdG9nZ2xlLWRpc2FibGVkLW9mZi1iZy1jb2xvciwgd2hpdGUpO2JvcmRlci1jb2xvcjojY2NjO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItdG9nZ2xlLWRpc2Fi''@;'; + put 'put ''bGVkLW9mZi1ib3JkZXItY29sb3IsICNjY2NjY2MpfS5jbHItdG9nZ2xlLXdyYXBwZXIgaW5wdXRbdHlwZT1jaGVja2JveF06ZGlzYWJsZWQrbGFiZWw6YWZ0ZXJ7YmFja2dyb3VuZC1jb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLXRvZ2dsZS1kaXNhYmxlZC1vZmYtYmct''@;'; + put 'put ''Y29sb3IsIHdoaXRlKTtib3JkZXItd2lkdGg6LjFyZW07Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci1jb2xvcjojY2NjO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItdG9nZ2xlLWRpc2FibGVkLW9mZi1oYW5kbGUtYm9yZGVyLWNvbG9yLCAjY2NjY2NjKTtoZWlnaHQ6LjlyZW07d2lkdGg6Ljly''@;'; + put 'put ''ZW07dG9wOi4xNXJlbX0uY2xyLXRvZ2dsZS13cmFwcGVyIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQ6ZGlzYWJsZWQrbGFiZWw6YmVmb3Jle2JvcmRlci1jb2xvcjojY2NjO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItdG9nZ2xlLWRpc2FibGVkLW9uLWJvcmRlci1jb2xvciwgI2NjY2Nj''@;'; + put 'put ''Yyk7YmFja2dyb3VuZC1jb2xvcjojY2NjO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLXRvZ2dsZS1kaXNhYmxlZC1vbi1iZy1jb2xvciwgI2NjY2NjYyl9LmNsci10b2dnbGUtd3JhcHBlciBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkOmRpc2FibGVkK2xhYmVsOmFmdGVye2JvcmRl''@;'; + put 'put ''ci1jb2xvcjojZmZmO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItdG9nZ2xlLWRpc2FibGVkLW9uLWhhbmRsZS1ib3JkZXItY29sb3IsIHdoaXRlKTtoZWlnaHQ6LjdyZW07d2lkdGg6LjdyZW07dG9wOi4yNXJlbTtsZWZ0Oi0xLjI1cmVtfS5jbHItdG9nZ2xlLXdyYXBwZXIgaW5wdXRbdHlwZT1j''@;'; + put 'put ''aGVja2JveF06ZGlzYWJsZWQrbGFiZWw6YWZ0ZXJ7bGVmdDotMi4xcmVtfS5jbHItdG9nZ2xlLXdyYXBwZXIucmlnaHQtbGFiZWwgbGFiZWx7bWFyZ2luLWxlZnQ6Mi4xcmVtO21hcmdpbi1yaWdodDowfS5jbHItdG9nZ2xlLXdyYXBwZXIucmlnaHQtbGFiZWwgaW5wdXRbdHlwZT1jaGVja2Jv''@;'; + put 'put ''eF0rbGFiZWw6YmVmb3Jle3JpZ2h0OjA7bGVmdDotMi4xcmVtfS5jbHItdG9nZ2xlLXdyYXBwZXIucmlnaHQtbGFiZWwgaW5wdXRbdHlwZT1jaGVja2JveF0rbGFiZWw6YWZ0ZXJ7cmlnaHQ6MDtsZWZ0Oi0ycmVtO3RyYW5zaXRpb24tcHJvcGVydHk6bGVmdH0uY2xyLXRvZ2dsZS13cmFwcGVy''@;'; + put 'put ''LnJpZ2h0LWxhYmVsIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw6YWZ0ZXJ7bGVmdDotMS4yNXJlbTt0cmFuc2l0aW9uLXByb3BlcnR5OmxlZnR9LmNsci10b2dnbGUtd3JhcHBlciAuY2xyLWNvbnRyb2wtbGFiZWx7ZGlzcGxheTpibG9jaztmb250LXdlaWdodDo0MDA7bGlu''@;'; + put 'put ''ZS1oZWlnaHQ6MS4ycmVtfS5jbHItY29udHJvbC1pbmxpbmUgLmNsci10b2dnbGUtd3JhcHBlciAuY2xyLWNvbnRyb2wtbGFiZWx7ZGlzcGxheTppbmxpbmUtYmxvY2s7bWFyZ2luLXJpZ2h0Oi42cmVtfS5jbHItdG9nZ2xlLXJpZ2h0IGxhYmVse2Rpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdp''@;'; + put 'put ''bi1yaWdodDoyLjFyZW07bWFyZ2luLWxlZnQ6MH0uY2xyLXRvZ2dsZS1yaWdodCBpbnB1dFt0eXBlPWNoZWNrYm94XStsYWJlbDpiZWZvcmV7bGVmdDp1bnNldDtyaWdodDotMi4xcmVtfS5jbHItdG9nZ2xlLXJpZ2h0IGlucHV0W3R5cGU9Y2hlY2tib3hdK2xhYmVsOmFmdGVye2xlZnQ6dW5z''@;'; + put 'put ''ZXQ7cmlnaHQ6LTEuMjVyZW07dHJhbnNpdGlvbi1wcm9wZXJ0eTpyaWdodH0uY2xyLXRvZ2dsZS1yaWdodCBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsOmFmdGVye2xlZnQ6dW5zZXQ7cmlnaHQ6LTJyZW07dHJhbnNpdGlvbi1wcm9wZXJ0eTpyaWdodH0uY2xyLXRvZ2dsZS1y''@;'; + put 'put ''aWdodCBpbnB1dFt0eXBlPWNoZWNrYm94XTpkaXNhYmxlZCtsYWJlbDphZnRlcntsZWZ0OnVuc2V0O3JpZ2h0Oi0xLjNyZW19LmNsci10b2dnbGUtcmlnaHQgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZDpkaXNhYmxlZCtsYWJlbDphZnRlcntsZWZ0OnVuc2V0O3JpZ2h0Oi0ycmVtfS5j''@;'; + put 'put ''bHItdG9nZ2xlLXJpZ2h0IC5jbHItY29udHJvbC1pbmxpbmUgLmNsci10b2dnbGUtd3JhcHBlciAuY2xyLWNvbnRyb2wtbGFiZWx7bWFyZ2luLXJpZ2h0OjIuN3JlbX0uY2xyLXJhbmdlLXdyYXBwZXJ7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpmbGV4''@;'; + put 'put ''LXN0YXJ0O2FsaWduLWl0ZW1zOmZsZXgtZW5kO2hlaWdodDouN3JlbTt3aGl0ZS1zcGFjZTpub3dyYXB9LmNsci1yYW5nZS13cmFwcGVyIC5maWxsLWlucHV0e3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDtkaXNwbGF5OmlubGluZS1ibG9jaztoZWlnaHQ6LjJyZW07cG9pbnRlci1ldmVudHM6''@;'; + put 'put ''bm9uZTtjdXJzb3I6cG9pbnRlcjt6LWluZGV4OjEwO2JhY2tncm91bmQtY29sb3I6IzAwNzJhMztiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1mb3Jtcy1yYW5nZS1wcm9ncmVzcy1maWxsLWNvbG9yLCAjMDA3MmEzKX0uY2xyLXJhbmdle2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6''@;'; + put 'put ''Y2VudGVyO2FsaWduLWl0ZW1zOmZsZXgtZW5kO2hlaWdodDouN3JlbX0uY2xyLXJhbmdlOmRpc2FibGVkLC5jbHItcmFuZ2U6ZGlzYWJsZWQrLmZpbGwtaW5wdXR7cG9pbnRlci1ldmVudHM6YXV0bztjdXJzb3I6bm90LWFsbG93ZWR9aW5wdXRbdHlwZT1yYW5nZV17cGFkZGluZzowOy13ZWJr''@;'; + put 'put ''aXQtYXBwZWFyYW5jZTpub25lO2xlZnQ6MDtoZWlnaHQ6LjJyZW07YmFja2dyb3VuZC1jb2xvcjojZThlOGU4O2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWZvcm1zLXJhbmdlLXRyYWNrLWNvbG9yLCAjZThlOGU4KX1pbnB1dFt0eXBlPXJhbmdlXTo6LXdlYmtpdC1zbGlkZXItcnVubmFi''@;'; + put 'put ''bGUtdHJhY2t7aGVpZ2h0Oi4ycmVtO2N1cnNvcjpwb2ludGVyO2JhY2tncm91bmQtY29sb3I6I2U4ZThlODtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1mb3Jtcy1yYW5nZS10cmFjay1jb2xvciwgI2U4ZThlOCl9aW5wdXRbdHlwZT1yYW5nZV06Oi13ZWJraXQtc2xpZGVyLXRodW1iey13''@;'; + put 'put ''ZWJraXQtYXBwZWFyYW5jZTpub25lO21hcmdpbi10b3A6LS4yNXJlbTtib3JkZXItcmFkaXVzOjUwJTtoZWlnaHQ6LjdyZW07d2lkdGg6LjdyZW07YmFja2dyb3VuZC1jb2xvcjojMDA3MmEzO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWZvcm1zLXJhbmdlLXByb2dyZXNzLWZpbGwtY29s''@;'; + put 'put ''b3IsICMwMDcyYTMpfWlucHV0W3R5cGU9cmFuZ2VdOjotbW96LXJhbmdlLXRyYWNre2hlaWdodDouMnJlbTtjdXJzb3I6cG9pbnRlcjtiYWNrZ3JvdW5kLWNvbG9yOiNlOGU4ZTg7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItZm9ybXMtcmFuZ2UtdHJhY2stY29sb3IsICNlOGU4ZTgpfWlu''@;'; + put 'put ''cHV0W3R5cGU9cmFuZ2VdOjotbW96LXJhbmdlLXRodW1ie2JvcmRlcjowO21hcmdpbi10b3A6LS4yNXJlbTtib3JkZXItcmFkaXVzOjUwJTtoZWlnaHQ6LjdyZW07d2lkdGg6LjdyZW07YmFja2dyb3VuZC1jb2xvcjojMDA3MmEzO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWZvcm1zLXJh''@;'; + put 'put ''bmdlLXByb2dyZXNzLWZpbGwtY29sb3IsICMwMDcyYTMpfUBzdXBwb3J0cyAoLW1zLWltZS1hbGlnbjphdXRvKXsuY2xyLXJhbmdlLXdyYXBwZXIgLmZpbGwtaW5wdXR7ZGlzcGxheTpub25lfS5jbHItcmFuZ2Utd3JhcHBlci5wcm9ncmVzcy1maWxsIGlucHV0W3R5cGU9cmFuZ2VdOjotbXMt''@;'; + put 'put ''ZmlsbC1sb3dlcntoZWlnaHQ6LjJyZW07YmFja2dyb3VuZC1jb2xvcjojMDA3MmEzO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWZvcm1zLXJhbmdlLXByb2dyZXNzLWZpbGwtY29sb3IsICMwMDcyYTMpfWlucHV0W3R5cGU9cmFuZ2Vde2JvcmRlcjowO21hcmdpbjowOy13ZWJraXQtYXBw''@;'; + put 'put ''ZWFyYW5jZTpub25lO2xlZnQ6MDtoZWlnaHQ6LjdyZW19aW5wdXRbdHlwZT1yYW5nZV06Oi1tcy10cmFja3ttYXJnaW46MDtib3JkZXI6MDtoZWlnaHQ6LjJyZW07Y3Vyc29yOnBvaW50ZXI7YmFja2dyb3VuZC1jb2xvcjojZThlOGU4O2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWZvcm1z''@;'; + put 'put ''LXJhbmdlLXRyYWNrLWNvbG9yLCAjZThlOGU4KX1pbnB1dFt0eXBlPXJhbmdlXTo6LW1zLXRodW1ie2JvcmRlcjowO21hcmdpbi10b3A6MDtib3JkZXItcmFkaXVzOjUwJTtoZWlnaHQ6LjdyZW07d2lkdGg6LjdyZW07YmFja2dyb3VuZC1jb2xvcjojMDA3MmEzO2JhY2tncm91bmQtY29sb3I6''@;'; + put 'put ''dmFyKC0tY2xyLWZvcm1zLXJhbmdlLXByb2dyZXNzLWZpbGwtY29sb3IsICMwMDcyYTMpfX1fOi1tcy1mdWxsc2NyZWVuIC5jbHItcmFuZ2Utd3JhcHBlciAuZmlsbC1pbnB1dCw6cm9vdCAuY2xyLXJhbmdlLXdyYXBwZXIgLmZpbGwtaW5wdXR7ZGlzcGxheTpub25lfV86LW1zLWZ1bGxzY3Jl''@;'; + put 'put ''ZW4gLmNsci1yYW5nZS13cmFwcGVyLnByb2dyZXNzLWZpbGwgaW5wdXRbdHlwZT1yYW5nZV06Oi1tcy1maWxsLWxvd2VyLDpyb290IC5jbHItcmFuZ2Utd3JhcHBlci5wcm9ncmVzcy1maWxsIGlucHV0W3R5cGU9cmFuZ2VdOjotbXMtZmlsbC1sb3dlcntoZWlnaHQ6LjJyZW07YmFja2dyb3Vu''@;'; + put 'put ''ZC1jb2xvcjojMDA3MmEzO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWZvcm1zLXJhbmdlLXByb2dyZXNzLWZpbGwtY29sb3IsICMwMDcyYTMpfV86LW1zLWZ1bGxzY3JlZW4gaW5wdXRbdHlwZT1yYW5nZV06Oi1tcy10b29sdGlwLDpyb290IGlucHV0W3R5cGU9cmFuZ2VdOjotbXMtdG9v''@;'; + put 'put ''bHRpcHt2aXNpYmlsaXR5OmhpZGRlbn1fOi1tcy1mdWxsc2NyZWVuIGlucHV0W3R5cGU9cmFuZ2VdLDpyb290IGlucHV0W3R5cGU9cmFuZ2Vde2JvcmRlcjowO21hcmdpbjowOy13ZWJraXQtYXBwZWFyYW5jZTpub25lO2xlZnQ6MDtoZWlnaHQ6LjdyZW19XzotbXMtZnVsbHNjcmVlbiBpbnB1''@;'; + put 'put ''dFt0eXBlPXJhbmdlXTo6LW1zLXRyYWNrLDpyb290IGlucHV0W3R5cGU9cmFuZ2VdOjotbXMtdHJhY2t7Ym9yZGVyOjA7bWFyZ2luOjA7aGVpZ2h0Oi4ycmVtO2N1cnNvcjpwb2ludGVyO2JhY2tncm91bmQtY29sb3I6I2U4ZThlODtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1mb3Jtcy1y''@;'; + put 'put ''YW5nZS10cmFjay1jb2xvciwgI2U4ZThlOCl9XzotbXMtZnVsbHNjcmVlbiBpbnB1dFt0eXBlPXJhbmdlXTo6LW1zLXRodW1iLDpyb290IGlucHV0W3R5cGU9cmFuZ2VdOjotbXMtdGh1bWJ7Ym9yZGVyOjA7bWFyZ2luLXRvcDowO2JvcmRlci1yYWRpdXM6NTAlO2hlaWdodDouN3JlbTt3aWR0''@;'; + put 'put ''aDouN3JlbTtiYWNrZ3JvdW5kLWNvbG9yOiMwMDcyYTM7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItZm9ybXMtcmFuZ2UtcHJvZ3Jlc3MtZmlsbC1jb2xvciwgIzAwNzJhMyl9aW5wdXRbY2xyRGF0YWxpc3RdOjotd2Via2l0LWNhbGVuZGFyLXBpY2tlci1pbmRpY2F0b3J7ZGlzcGxheTpu''@;'; + put 'put ''b25lfWNsci1kYXRhbGlzdC1jb250YWluZXIgLmNsci1pbnB1dC1ncm91cHtwYWRkaW5nLXJpZ2h0OjB9OnJvb3R7LS1jbHItY2FsZW5kYXItYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC0wKTstLWNsci1jYWxlbmRhci1ib3JkZXItY29sb3I6dmFyKC0tY2xyLWNv''@;'; + put 'put ''bG9yLW5ldXRyYWwtNDAwKTstLWNsci1kYXRlcGlja2VyLXRyaWdnZXItY29sb3I6dmFyKC0tY2xyLWNvbG9yLWFjdGlvbi02MDApOy0tY2xyLWRhdGVwaWNrZXItdHJpZ2dlci1ob3Zlci1jb2xvcjp2YXIoLS1jbHItY29sb3ItYWN0aW9uLTgwMCk7LS1jbHItY2FsZW5kYXItYnRuLWNvbG9y''@;'; + put 'put ''OnZhcigtLWNsci1jb2xvci1hY3Rpb24tNjAwKTstLWNsci1jYWxlbmRhci1idG4taG92ZXItZm9jdXMtY29sb3I6dmFyKC0tY2xyLWdsb2JhbC1ob3Zlci1jb2xvcik7LS1jbHItY2FsZW5kYXItcGlja2VyLWJ0bi1mb250LXNpemU6LjlyZW07LS1jbHItY2FsZW5kYXItcGlja2VyLWJ0bi1m''@;'; + put 'put ''b250LXdlaWdodDoyMDA7LS1jbHItY2FsZW5kYXItdG9kYXktZGF0ZS1jZWxsLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTEwMDApOy0tY2xyLWNhbGVuZGFyLXRvZGF5LWRhdGUtY2VsbC1mb250LXdlaWdodDo2MDA7LS1jbHItY2FsZW5kYXItYWN0aXZlLWNlbGwtYmFja2dyb3Vu''@;'; + put 'put ''ZC1jb2xvcjp2YXIoLS1jbHItZ2xvYmFsLXNlbGVjdGlvbi1jb2xvcik7LS1jbHItY2FsZW5kYXItYWN0aXZlLWZvY3VzLWNlbGwtYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItZ2xvYmFsLXNlbGVjdGlvbi1jb2xvcik7LS1jbHItY2FsZW5kYXItYWN0aXZlLWNlbGwtY29sb3I6dmFyKC0t''@;'; + put 'put ''Y2xyLWNvbG9yLW5ldXRyYWwtMTAwMCk7LS1jbHItZGF5LWZvbnQtc2l6ZTouNnJlbX0uZGF0ZS1jb250YWluZXJ7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7d2hpdGUtc3BhY2U6bm93cmFwfS5kYXRlcGlja2VyLXRyaWdnZXJ7aGVpZ2h0OjEuOHJlbTttaW4td2lk''@;'; + put 'put ''dGg6MS44cmVtO3BhZGRpbmc6MDttYXJnaW46MCFpbXBvcnRhbnQ7Y29sb3I6aW5oZXJpdDtib3JkZXI6MDtib3JkZXItcmFkaXVzOi4xNXJlbTtib3JkZXItcmFkaXVzOnZhcigtLWNsci1nbG9iYWwtYm9yZGVycmFkaXVzLCAuMTVyZW0pO2JhY2tncm91bmQ6MCAwO2N1cnNvcjpwb2ludGVy''@;'; + put 'put ''O2xpbmUtaGVpZ2h0OjEuOHJlbX0uZGF0ZXBpY2tlci10cmlnZ2VyIC5kYXRlcGlja2VyLXRyaWdnZXItaWNvbntmaWxsOiMwMDcyYTM7ZmlsbDp2YXIoLS1jbHItZGF0ZXBpY2tlci10cmlnZ2VyLWNvbG9yLCAjMDA3MmEzKX0uZGF0ZXBpY2tlci10cmlnZ2VyIC5kYXRlcGlja2VyLXRyaWdn''@;'; + put 'put ''ZXItaWNvbjpob3ZlcntmaWxsOiMwMDU2N2E7ZmlsbDp2YXIoLS1jbHItZGF0ZXBpY2tlci10cmlnZ2VyLWhvdmVyLWNvbG9yLCAjMDA1NjdhKX0uZGF0ZXBpY2tlci10cmlnZ2VyOmRpc2FibGVke2N1cnNvcjpub3QtYWxsb3dlZH0uY2xyLWZvcm0tY29udHJvbCAuZGF0ZXBpY2tlci10cmln''@;'; + put 'put ''Z2Vye2xpbmUtaGVpZ2h0OjEuMXJlbTtoZWlnaHQ6MS4xcmVtfS5kYXRlLWlucHV0e2ZsZXg6MSAxIGF1dG99LmRhdGVwaWNrZXJ7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtwYWRkaW5nOi42cmVtO21hcmdpbi10b3A6LjNyZW07d2lkdGg6MTMuOXJlbTtoZWlnaHQ6MTUu''@;'; + put 'put ''N3JlbTtiYWNrZ3JvdW5kOiNmZmY7YmFja2dyb3VuZDp2YXIoLS1jbHItY2FsZW5kYXItYmFja2dyb3VuZC1jb2xvciwgd2hpdGUpO2JvcmRlcjouMDVyZW0gc29saWQ7Ym9yZGVyLWNvbG9yOiNjY2M7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1jYWxlbmRhci1ib3JkZXItY29sb3IsICNjY2Nj''@;'; + put 'put ''Y2MpO2JvcmRlci1yYWRpdXM6LjE1cmVtO2JvcmRlci1yYWRpdXM6dmFyKC0tY2xyLWdsb2JhbC1ib3JkZXJyYWRpdXMsIC4xNXJlbSk7Ym94LXNoYWRvdzowIC4wNXJlbSAuMTVyZW0gIzhjOGM4YzQwO2JveC1zaGFkb3c6MCAuMDVyZW0gLjE1cmVtIHZhcigtLWNsci1wb3BvdmVyLWJveC1z''@;'; + put 'put ''aGFkb3ctY29sb3IsIHJnYmEoMTQwLCAxNDAsIDE0MCwgLjI1KSk7b3ZlcmZsb3c6aGlkZGVuO3otaW5kZXg6MTA1MH0uY2FsZW5kYXItaGVhZGVye2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjthbGlnbi1pdGVtczpjZW50ZXJ9LmNhbGVuZGFyLXN3aXRjaGVy''@;'; + put 'put ''cywueWVhci1zd2l0Y2hlcnN7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLS4xcmVtKTtkaXNwbGF5OmZsZXh9LnllYXItc3dpdGNoZXJze2ZsZXg6MCAwIGF1dG87d2lkdGg6NS40cmVtO2FsaWduLXNlbGY6Y2VudGVyfS5jYWxlbmRhci10YWJsZXtmbGV4OjEgMSBhdXRvO3dpZHRoOjEwMCV9LmNh''@;'; + put 'put ''bGVuZGFyLWNlbGwsLmNhbGVuZGFyLXRhYmxlIC5jYWxlbmRhci1jZWxse2hlaWdodDoxLjhyZW07d2lkdGg6MS44cmVtO21pbi1oZWlnaHQ6MS44cmVtO21pbi13aWR0aDoxLjhyZW07cGFkZGluZzowO3RleHQtYWxpZ246Y2VudGVyfS5kYXl7ZGlzcGxheTppbmxpbmUtYmxvY2t9LndlZWtk''@;'; + put 'put ''YXlze2ZsZXg6MCAwIDEuOHJlbX0ud2Vla2RheXtmb250LXNpemU6LjZyZW07Zm9udC1zaXplOnZhcigtLWNsci1kYXktZm9udC1zaXplLCAuNnJlbSk7Zm9udC13ZWlnaHQ6NjAwfS5jYWxlbmRhci1idG57aGVpZ2h0OjEuOHJlbTttaW4td2lkdGg6MS44cmVtO3BhZGRpbmc6MDttYXJnaW46''@;'; + put 'put ''MCFpbXBvcnRhbnQ7Y29sb3I6aW5oZXJpdDtib3JkZXI6MDtib3JkZXItcmFkaXVzOi4xNXJlbTtib3JkZXItcmFkaXVzOnZhcigtLWNsci1nbG9iYWwtYm9yZGVycmFkaXVzLCAuMTVyZW0pO2JhY2tncm91bmQ6MCAwO2N1cnNvcjpwb2ludGVyO2xpbmUtaGVpZ2h0OjEuOHJlbTtmb250LXNp''@;'; + put 'put ''emU6LjlyZW07Zm9udC1zaXplOnZhcigtLWNsci1jYWxlbmRhci1waWNrZXItYnRuLWZvbnQtc2l6ZSwgLjlyZW0pO2ZvbnQtd2VpZ2h0OjIwMDtmb250LXdlaWdodDp2YXIoLS1jbHItY2FsZW5kYXItcGlja2VyLWJ0bi1mb250LXdlaWdodCwgMjAwKX0uY2FsZW5kYXItYnRuOmhvdmVyLC5j''@;'; + put 'put ''YWxlbmRhci1idG46Zm9jdXN7YmFja2dyb3VuZDojZThlOGU4O2JhY2tncm91bmQ6dmFyKC0tY2xyLWNhbGVuZGFyLWJ0bi1ob3Zlci1mb2N1cy1jb2xvciwgI2U4ZThlOCl9LmNhbGVuZGFyLWJ0bjpmb2N1c3tvdXRsaW5lOjB9LmRheS1idG57aGVpZ2h0OjEuOHJlbTttaW4td2lkdGg6MS44''@;'; + put 'put ''cmVtO3BhZGRpbmc6MDttYXJnaW46MCFpbXBvcnRhbnQ7Ym9yZGVyOjA7Ym9yZGVyLXJhZGl1czouMTVyZW07Ym9yZGVyLXJhZGl1czp2YXIoLS1jbHItZ2xvYmFsLWJvcmRlcnJhZGl1cywgLjE1cmVtKTtiYWNrZ3JvdW5kOjAgMDtjdXJzb3I6cG9pbnRlcjtsaW5lLWhlaWdodDoxLjhyZW07''@;'; + put 'put ''d2lkdGg6MTAwJTtjb2xvcjppbmhlcml0fS5kYXktYnRuOmhvdmVyLC5kYXktYnRuOmZvY3Vze2JhY2tncm91bmQ6I2U4ZThlODtiYWNrZ3JvdW5kOnZhcigtLWNsci1jYWxlbmRhci1idG4taG92ZXItZm9jdXMtY29sb3IsICNlOGU4ZTgpfS5kYXktYnRuOmZvY3Vze291dGxpbmU6MH0uZGF5''@;'; + put 'put ''LWJ0bi5pcy10b2RheXtjb2xvcjojMDAwO2NvbG9yOnZhcigtLWNsci1jYWxlbmRhci10b2RheS1kYXRlLWNlbGwtY29sb3IsIGJsYWNrKTtmb250LXdlaWdodDo2MDA7Zm9udC13ZWlnaHQ6dmFyKC0tY2xyLWNhbGVuZGFyLXRvZGF5LWRhdGUtY2VsbC1mb250LXdlaWdodCwgNjAwKX0uZGF5''@;'; + put 'put ''LWJ0bi5pcy1leGNsdWRlZHtvcGFjaXR5Oi40fS5kYXktYnRuLmlzLWV4Y2x1ZGVkOmhvdmVye2JhY2tncm91bmQ6MCAwfS5kYXktYnRuLmlzLXNlbGVjdGVke2JhY2tncm91bmQ6I2Q4ZTNlOTtiYWNrZ3JvdW5kOnZhcigtLWNsci1jYWxlbmRhci1hY3RpdmUtY2VsbC1iYWNrZ3JvdW5kLWNv''@;'; + put 'put ''bG9yLCAjZDhlM2U5KTtjb2xvcjojMDAwO2NvbG9yOnZhcigtLWNsci1jYWxlbmRhci1hY3RpdmUtY2VsbC1jb2xvciwgYmxhY2spfS5kYXktYnRuLmlzLXNlbGVjdGVkOmZvY3Vze2JhY2tncm91bmQ6I2Q4ZTNlOTtiYWNrZ3JvdW5kOnZhcigtLWNsci1jYWxlbmRhci1hY3RpdmUtZm9jdXMt''@;'; + put 'put ''Y2VsbC1iYWNrZ3JvdW5kLWNvbG9yLCAjZDhlM2U5KX0uZGF5LWJ0bi5pcy1kaXNhYmxlZHtvcGFjaXR5Oi40O3BvaW50ZXItZXZlbnRzOm5vbmV9LmRheS1idG4uaXMtZGlzYWJsZWQ6aG92ZXJ7YmFja2dyb3VuZDowIDB9LmNhbGVuZGFyLXBpY2tlcnN7ZGlzcGxheTpmbGV4fS5zd2l0Y2hl''@;'; + put 'put ''cntjb2xvcjojMDA3MmEzO2NvbG9yOnZhcigtLWNsci1jYWxlbmRhci1idG4tY29sb3IsICMwMDcyYTMpfS5zd2l0Y2hlciBjZHMtaWNvbiwuc3dpdGNoZXIgY2xyLWljb257aGVpZ2h0Oi45cmVtO3dpZHRoOi45cmVtfS5tb250aHBpY2tlci10cmlnZ2VyLC55ZWFycGlja2VyLXRyaWdnZXJ7''@;'; + put 'put ''bWluLXdpZHRoOjIuNHJlbTttYXgtd2lkdGg6M3JlbTtjb2xvcjojMDA3MmEzO2NvbG9yOnZhcigtLWNsci1jYWxlbmRhci1idG4tY29sb3IsICMwMDcyYTMpO3RleHQtYWxpZ246Y2VudGVyO3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNp''@;'; + put 'put ''c30ubW9udGhwaWNrZXIsLnllYXJwaWNrZXJ7bWluLWhlaWdodDoxNC40cmVtfS5tb250aHBpY2tlciwueWVhcnBpY2tlciwueWVhcnN7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtvdmVyZmxvdzpoaWRkZW59Lm1vbnRocGlja2VyLC55ZWFyc3tmbGV4LXdyYXA6d3JhcH0u''@;'; + put 'put ''bW9udGgsLnllYXJ7aGVpZ2h0OjIuNHJlbTttaW4td2lkdGg6Mi40cmVtO3BhZGRpbmc6MCAuNnJlbTttYXJnaW46MCFpbXBvcnRhbnQ7Y29sb3I6aW5oZXJpdDtib3JkZXI6MDtib3JkZXItcmFkaXVzOi4xNXJlbTtib3JkZXItcmFkaXVzOnZhcigtLWNsci1nbG9iYWwtYm9yZGVycmFkaXVz''@;'; + put 'put ''LCAuMTVyZW0pO2JhY2tncm91bmQ6MCAwO2N1cnNvcjpwb2ludGVyO2xpbmUtaGVpZ2h0OjEuOHJlbTt3aWR0aDo2LjNyZW07Zm9udC1zaXplOi45cmVtO2ZvbnQtd2VpZ2h0OjIwMDtvdXRsaW5lLW9mZnNldDotLjI1cmVtfS5tb250aDpob3ZlciwubW9udGg6Zm9jdXMsLnllYXI6aG92ZXIs''@;'; + put 'put ''LnllYXI6Zm9jdXN7YmFja2dyb3VuZDojZThlOGU4O2JhY2tncm91bmQ6dmFyKC0tY2xyLWNhbGVuZGFyLWJ0bi1ob3Zlci1mb2N1cy1jb2xvciwgI2U4ZThlOCl9Lm1vbnRoOmZvY3VzLC55ZWFyOmZvY3Vze291dGxpbmU6MH0ubW9udGguaXMtZGlzYWJsZWQsLnllYXIuaXMtZGlzYWJsZWR7''@;'; + put 'put ''b3BhY2l0eTouNDtwb2ludGVyLWV2ZW50czpub25lfS5tb250aC5pcy1kaXNhYmxlZDpob3ZlciwueWVhci5pcy1kaXNhYmxlZDpob3ZlcntiYWNrZ3JvdW5kOjAgMH0ubW9udGguaXMtc2VsZWN0ZWQsLnllYXIuaXMtc2VsZWN0ZWR7YmFja2dyb3VuZDojZDhlM2U5O2JhY2tncm91bmQ6dmFy''@;'; + put 'put ''KC0tY2xyLWNhbGVuZGFyLWFjdGl2ZS1jZWxsLWJhY2tncm91bmQtY29sb3IsICNkOGUzZTkpO2NvbG9yOiMwMDA7Y29sb3I6dmFyKC0tY2xyLWNhbGVuZGFyLWFjdGl2ZS1jZWxsLWNvbG9yLCBibGFjayl9Lm1vbnRoLmlzLXNlbGVjdGVkOmZvY3VzLC55ZWFyLmlzLXNlbGVjdGVkOmZvY3Vz''@;'; + put 'put ''e2JhY2tncm91bmQ6I2Q4ZTNlOTtiYWNrZ3JvdW5kOnZhcigtLWNsci1jYWxlbmRhci1hY3RpdmUtZm9jdXMtY2VsbC1iYWNrZ3JvdW5kLWNvbG9yLCAjZDhlM2U5KX0ubW9udGh7dGV4dC1hbGlnbjpjZW50ZXI7d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJm''@;'; + put 'put ''bG93OmVsbGlwc2lzfS55ZWFye3RleHQtYWxpZ246Y2VudGVyfTpyb290ey0tY2xyLWNvbWJvYm94LXRyaWdnZXItY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNTAwKTstLWNsci1jb21ib2JveC1mb250LXNpemU6LjY1cmVtOy0tY2xyLWNvbWJvYm94LWJvcmRlci1jb2xvcjojZThl''@;'; + put 'put ''OGU4Oy0tY2xyLWNvbWJvYm94LWJvcmRlci1yYWRpdXM6LjE1cmVtOy0tY2xyLWNvbWJvYm94LWlucHV0LWJhY2tncm91bmQ6I2YyZjJmMjstLWNsci1jb21ib2JveC1waWxsLWJhY2tncm91bmQtY29sb3I6d2hpdGU7LS1jbHItY29tYm9ib3gtcGlsbC1ib3JkZXItY29sb3I6IzY2NjY2Njst''@;'; + put 'put ''LWNsci1jb21ib2JveC1waWxsLWJvcmRlci1yYWRpdXM6LjE1cmVtOy0tY2xyLWNvbWJvYm94LXBpbGwtZm9udC1jb2xvcjojNDU0NTQ1Oy0tY2xyLWNvbWJvYm94LWZpbHRlci1oaWdobGlnaHQ6IzQ1NDU0NX0uY2xyLWNvbWJvYm94LWZvcm0tY29udHJvbHthbGlnbi1pdGVtczpzdHJldGNo''@;'; + put 'put ''fS5jbHItY29tYm9ib3gtZm9ybS1jb250cm9sIC5jbHItZXJyb3IgLmNsci12YWxpZGF0ZS1pY29ue21hcmdpbi1sZWZ0OjB9LmNsci1mb2N1cy1pbmRpY2F0b3J7YmFja2dyb3VuZC1jb2xvcjojMDA3MmEzO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWZvcm1zLWZvY3VzZWQtY29sb3Is''@;'; + put 'put ''ICMwMDcyYTMpO2hlaWdodDouMXJlbTt3aWR0aDowO3RyYW5zaXRpb246d2lkdGggLjJzIGVhc2U7cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOi0uMDVyZW07bGVmdDowO2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6LjE1cmVtO2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6dmFyKC0tY2xy''@;'; + put 'put ''LWNvbWJvYm94LWJvcmRlci1yYWRpdXMsIC4xNXJlbSk7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6LjE1cmVtO2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOnZhcigtLWNsci1jb21ib2JveC1ib3JkZXItcmFkaXVzLCAuMTVyZW0pfS5jbHItZm9jdXN7d2lkdGg6MTAwJX0uY2xyLWVy''@;'; + put 'put ''cm9yIC5jbHItZm9jdXMtaW5kaWNhdG9ye2JhY2tncm91bmQtY29sb3I6I2MyMWQwMDtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1mb3Jtcy1pbnZhbGlkLWNvbG9yLCAjYzIxZDAwKX0uY2xyLWNvbWJvYm94LXdyYXBwZXJ7cG9zaXRpb246cmVsYXRpdmU7cGFkZGluZzowIDEuMnJlbSAw''@;'; + put 'put ''IC4zcmVtO21pbi1oZWlnaHQ6MS4ycmVtO21pbi13aWR0aDo4LjRyZW07Zm9udC1zaXplOi42NXJlbTtmb250LXNpemU6dmFyKC0tY2xyLWNvbWJvYm94LWZvbnQtc2l6ZSwgLjY1cmVtKTtjb2xvcjojMDAwO2NvbG9yOnZhcigtLWNsci1mb3Jtcy10ZXh0LWNvbG9yLCBibGFjayk7Ym9yZGVy''@;'; + put 'put ''LWJvdHRvbTouMDVyZW0gc29saWQ7ZGlzcGxheTppbmxpbmUtYmxvY2s7YmFja2dyb3VuZC1jb2xvcjojZjJmMmYyO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWNvbWJvYm94LWlucHV0LWJhY2tncm91bmQtY29sb3IsICNmMmYyZjIpO2JvcmRlci13aWR0aDouMDVyZW07Ym9yZGVyLXN0''@;'; + put 'put ''eWxlOnNvbGlkO2JvcmRlci1jb2xvcjojZThlOGU4O2JvcmRlci1jb2xvcjp2YXIoLS1jbHItY29tYm9ib3gtYm9yZGVyLWNvbG9yLCAjZThlOGU4KTtib3JkZXItYm90dG9tLXdpZHRoOi4wNXJlbTtib3JkZXItYm90dG9tLXN0eWxlOnNvbGlkO2JvcmRlci1ib3R0b20tY29sb3I6IzZhN2E4''@;'; + put 'put ''MTtib3JkZXItYm90dG9tLWNvbG9yOnZhcigtLWNsci1mb3Jtcy1ib3JkZXItY29sb3IsICM2YTdhODEpO2JvcmRlci1yYWRpdXM6LjE1cmVtO2JvcmRlci1yYWRpdXM6dmFyKC0tY2xyLWNvbWJvYm94LWJvcmRlci1yYWRpdXMsIC4xNXJlbSl9LmNsci1jb21ib2JveC13cmFwcGVyLm11bHRp''@;'; + put 'put ''e21pbi13aWR0aDptaW4oMThyZW0sMTAwJSk7cGFkZGluZy1ib3R0b206LjE1cmVtfS5jbHItY29tYm9ib3gtd3JhcHBlciAuY2xyLWlucHV0LmNsci1jb21ib2JveC1pbnB1dDpmb2N1c3tiYWNrZ3JvdW5kOjAgMH0uY2xyLWNvbWJvYm94LXdyYXBwZXIuaW52YWxpZHtib3JkZXItYm90dG9t''@;'; + put 'put ''LWNvbG9yOiNjMjFkMDB9LmNsci1jb21ib2JveC13cmFwcGVyIC5jbHItY29tYm9ib3gtaW5wdXR7YmFja2dyb3VuZDowIDA7Ym9yZGVyLWJvdHRvbTpub25lfS5jbHItY29tYm9ib3gtd3JhcHBlciAuY2xyLWNvbWJvYm94LXJlbW92ZS1idG57YmFja2dyb3VuZDowIDA7Ym9yZGVyOjA7Y3Vy''@;'; + put 'put ''c29yOnBvaW50ZXI7cGFkZGluZzouMTVyZW07Y29sb3I6IzQ1NDU0NX0uY2xyLWNvbWJvYm94LXdyYXBwZXIgLmxhYmVsLWNvbWJvYm94LXBpbGx7bWFyZ2luOi4xNXJlbSAuM3JlbSAwIDA7YmFja2dyb3VuZC1jb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWNvbWJvYm94''@;'; + put 'put ''LXBpbGwtYmFja2dyb3VuZC1jb2xvciwgd2hpdGUpO2JvcmRlci13aWR0aDouMDVyZW07Ym9yZGVyLXN0eWxlOnNvbGlkO2FsaWduLWl0ZW1zOmJhc2VsaW5lO2JvcmRlci1yYWRpdXM6LjE1cmVtO2JvcmRlci1yYWRpdXM6dmFyKC0tY2xyLWNvbWJvYm94LXBpbGwtYm9yZGVyLXJhZGl1cywg''@;'; + put 'put ''LjE1cmVtKTtib3JkZXItY29sb3I6IzY2Njtib3JkZXItY29sb3I6dmFyKC0tY2xyLWNvbWJvYm94LXBpbGwtYm9yZGVyLWNvbG9yLCAjNjY2NjY2KTtwYWRkaW5nOjAgLjFyZW0gMCAuMnJlbX0uY2xyLWNvbWJvYm94LXdyYXBwZXIgLmxhYmVsLWNvbWJvYm94LXBpbGwgLmNsci1jb21ib2Jv''@;'; + put 'put ''eC1waWxsLWNvbnRlbnR7Y29sb3I6IzQ1NDU0NTtjb2xvcjp2YXIoLS1jbHItY29tYm9ib3gtcGlsbC1mb250LWNvbG9yLCAjNDU0NTQ1KTtmb250LXNpemU6LjU1cmVtO2ZvbnQtd2VpZ2h0OjQwMDtwYWRkaW5nOjAgLjRyZW0gMCAuMnJlbX0uY2xyLWNvbWJvYm94LXdyYXBwZXIgLmxhYmVs''@;'; + put 'put ''LWNvbWJvYm94LXBpbGwgY2RzLWljb25bc2hhcGU9d2luZG93LWNsb3NlXSwuY2xyLWNvbWJvYm94LXdyYXBwZXIgLmxhYmVsLWNvbWJvYm94LXBpbGwgY2xyLWljb25bc2hhcGU9d2luZG93LWNsb3NlXXtjb2xvcjojNDU0NTQ1O2NvbG9yOnZhcigtLWNsci1jb21ib2JveC1waWxsLWZvbnQt''@;'; + put 'put ''Y29sb3IsICM0NTQ1NDUpfS5jbHItY29tYm9ib3gtd3JhcHBlciAuY2xyLWNvbWJvYm94LWlucHV0LXdyYXBwZXJ7Ym9yZGVyOjA7YmFja2dyb3VuZDowIDB9LmNsci1jb21ib2JveC10cmlnZ2Vye3dpZHRoOjEuMnJlbTttYXJnaW46YXV0bztwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0''@;'; + put 'put ''b206MDtyaWdodDowO2JhY2tncm91bmQ6MCAwO2JvcmRlcjowO2NvbG9yOmN1cnJlbnRDb2xvcjtjdXJzb3I6cG9pbnRlcjtvdXRsaW5lOjB9LmNsci1jb21ib2JveC10cmlnZ2VyOmRpc2FibGVke2NvbG9yOnZhcigtLWNsci1idG4tbGluay1kaXNhYmxlZC1jb2xvciwgIzY2Nik7b3BhY2l0''@;'; + put 'put ''eTouNH0uY2xyLWNvbWJvYm94LXRyaWdnZXIgY2RzLWljb25bc2hhcGU9YW5nbGVdLC5jbHItY29tYm9ib3gtdHJpZ2dlciBjbHItaWNvbltzaGFwZT1hbmdsZV17Y29sb3I6IzQ1NDU0NTtjb2xvcjp2YXIoLS1jbHItY29tYm9ib3gtcGlsbC1mb250LWNvbG9yLCAjNDU0NTQ1KX0uY2xyLWNv''@;'; + put 'put ''bWJvYm94LW9wdGlvbnN7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MTAwJTtsZWZ0OjA7bWluLXdpZHRoOjZyZW07bWF4LXdpZHRoOjE4cmVtO2JhY2tncm91bmQ6I2ZmZjtiYWNrZ3JvdW5kOnZhcigtLWNsci1kcm9wZG93bi1iZy1j''@;'; + put 'put ''b2xvciwgd2hpdGUpO2JvcmRlci13aWR0aDouMDVyZW07Ym9yZGVyLXdpZHRoOnZhcigtLWNsci1nbG9iYWwtYm9yZGVyd2lkdGgsIC4wNXJlbSk7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci1jb2xvcjojY2NjO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItZHJvcGRvd24tYm9yZGVyLWNvbG9y''@;'; + put 'put ''LCAjY2NjY2NjKTtib3JkZXItcmFkaXVzOi4xNXJlbTtib3JkZXItcmFkaXVzOnZhcigtLWNsci1nbG9iYWwtYm9yZGVycmFkaXVzLCAuMTVyZW0pO2JveC1zaGFkb3c6MCAuMDVyZW0gLjE1cmVtICM4YzhjOGM0MDtib3gtc2hhZG93OjAgLjA1cmVtIC4xNXJlbSB2YXIoLS1jbHItZHJvcGRv''@;'; + put 'put ''d24tYm94LXNoYWRvdywgcmdiYSgxNDAsIDE0MCwgMTQwLCAuMjUpKTttYXJnaW4tdG9wOi4xcmVtO3BhZGRpbmc6LjZyZW0gMDt2aXNpYmlsaXR5OmhpZGRlbjt6LWluZGV4OjEwNTA7cG9zaXRpb246c3RhdGljO21heC1oZWlnaHQ6MTJyZW07b3ZlcmZsb3cteTpzY3JvbGw7dmlzaWJpbGl0''@;'; + put 'put ''eTp2aXNpYmxlfS5jbHItY29tYm9ib3gtb3B0aW9ucyAuY2xyLWNvbWJvYm94LW9wdGlvbnMtbG9hZGluZ3twYWRkaW5nOi4xNXJlbSAxLjJyZW19LmNsci1jb21ib2JveC1vcHRpb25zIC5jbHItY29tYm9ib3gtb3B0aW9ucy1sb2FkaW5nIC5jbHItY29tYm9ib3gtb3B0aW9ucy1sb2FkaW5n''@;'; + put 'put ''LXRleHR7cGFkZGluZy1sZWZ0Oi4zcmVtfS5jbHItY29tYm9ib3gtb3B0aW9ucyAuY2xyLWNvbWJvYm94LW9wdGlvbnMtZW1wdHktdGV4dHtwYWRkaW5nLWxlZnQ6LjZyZW19LmNsci1jb21ib2JveC1vcHRpb257Y29sb3I6IzY2Njtjb2xvcjp2YXIoLS1jbHItZHJvcGRvd24taXRlbS1jb2xv''@;'; + put 'put ''ciwgIzY2NjY2Nik7Zm9udC1zaXplOi43cmVtO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXdlaWdodDp2YXIoLS1jbHItZHJvcGRvd24taXRlbS1mb250LXdlaWdodCwgNDAwKTtsZXR0ZXItc3BhY2luZzpub3JtYWw7YmFja2dyb3VuZDowIDA7Ym9yZGVyOjA7Y3Vyc29yOnBvaW50ZXI7ZGlzcGxh''@;'; + put 'put ''eTpibG9jaztoZWlnaHQ6YXV0bztsaW5lLWhlaWdodDppbmhlcml0O21hcmdpbjowO3dpZHRoOjEwMCU7dGV4dC10cmFuc2Zvcm06bm9uZX0uY2xyLWNvbWJvYm94LW9wdGlvbjpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiNlOGU4ZTg7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItZHJvcGRv''@;'; + put 'put ''d24tYmctaG92ZXItY29sb3IsICNlOGU4ZTgpO2NvbG9yOiM2NjY7Y29sb3I6dmFyKC0tY2xyLWRyb3Bkb3duLWl0ZW0tY29sb3IsICM2NjY2NjYpO3RleHQtZGVjb3JhdGlvbjpub25lfS5jbHItY29tYm9ib3gtb3B0aW9uLmFjdGl2ZXtiYWNrZ3JvdW5kOiNkOGUzZTk7YmFja2dyb3VuZDp2''@;'; + put 'put ''YXIoLS1jbHItZHJvcGRvd24tc2VsZWN0aW9uLWNvbG9yLCAjZDhlM2U5KTtjb2xvcjojMDAwO2NvbG9yOnZhcigtLWNsci1kcm9wZG93bi1hY3RpdmUtdGV4dC1jb2xvciwgYmxhY2spfS5jbHItY29tYm9ib3gtb3B0aW9uOmFjdGl2ZXtib3gtc2hhZG93Om5vbmV9LmNsci1jb21ib2JveC1v''@;'; + put 'put ''cHRpb246Zm9jdXN7ei1pbmRleDppbmhlcml0fS5jbHItY29tYm9ib3gtb3B0aW9uLmRpc2FibGVkLC5jbHItY29tYm9ib3gtb3B0aW9uOmRpc2FibGVke2N1cnNvcjpub3QtYWxsb3dlZDtvcGFjaXR5Oi40Oy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lfS5jbHIt''@;'; + put 'put ''Y29tYm9ib3gtb3B0aW9uLmRpc2FibGVkOmhvdmVyLC5jbHItY29tYm9ib3gtb3B0aW9uOmRpc2FibGVkOmhvdmVye2JhY2tncm91bmQ6MCAwfS5jbHItY29tYm9ib3gtb3B0aW9uLmRpc2FibGVkOmFjdGl2ZSwuY2xyLWNvbWJvYm94LW9wdGlvbjpkaXNhYmxlZDphY3RpdmV7YmFja2dyb3Vu''@;'; + put 'put ''ZDowIDA7Ym94LXNoYWRvdzpub25lfS5jbHItY29tYm9ib3gtb3B0aW9uLmNsci1mb2N1c3tiYWNrZ3JvdW5kLWNvbG9yOiNlOGU4ZTg7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItZHJvcGRvd24tYmctaG92ZXItY29sb3IsICNlOGU4ZTgpfS5jbHItY29tYm9ib3gtb3B0aW9ucyAuY2xy''@;'; + put 'put ''LWNvbWJvYm94LW9wdGlvbntwYWRkaW5nOi4xNXJlbSAxLjJyZW19QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDo1NzZweCl7LmNsci1jb21ib2JveC1vcHRpb25zIC5jbHItY29tYm9ib3gtb3B0aW9ue3BhZGRpbmc6LjNyZW0gMS4ycmVtfX0uY2xyLWNvbWJvYm94LW9wdGlvbnMgLmNs''@;'; + put 'put ''ci1jb21ib2JveC1vcHRpb246aG92ZXIsLmNsci1jb21ib2JveC1vcHRpb25zIC5jbHItY29tYm9ib3gtb3B0aW9uLmFjdGl2ZXtjb2xvcjojNjY2O2NvbG9yOnZhcigtLWNsci1kcm9wZG93bi1pdGVtLWNvbG9yLCAjNjY2NjY2KX0uY2xyLWNvbWJvYm94LWRpc2FibGVke2NvbG9yOiNiM2Iz''@;'; + put 'put ''YjM7Y29sb3I6dmFyKC0tY2xyLWZvcm1zLXRleHQtZGlzYWJsZWQtY29sb3IsICNiM2IzYjMpO2N1cnNvcjpub3QtYWxsb3dlZH0uY2xyLWNvbWJvYm94LWRpc2FibGVkIC5jbHItY29tYm9ib3gtaW5wdXQsLmNsci1jb21ib2JveC1kaXNhYmxlZCAuY2xyLWNvbWJvYm94LXJlbW92ZS1idG4s''@;'; + put 'put ''LmNsci1jb21ib2JveC1kaXNhYmxlZCAuY2xyLWNvbWJvYm94LXRyaWdnZXJ7Y3Vyc29yOm5vdC1hbGxvd2VkfS5jbHItZmlsdGVyLWhpZ2hsaWdodCBie2ZvbnQtd2VpZ2h0OjUwMDtjb2xvcjojNDU0NTQ1O2NvbG9yOnZhcigtLWNsci1jb21ib2JveC1maWx0ZXItaGlnaGxpZ2h0LCAjNDU0''@;'; + put 'put ''NTQ1KX06cm9vdHstLWNsci1zdGFjay12aWV3LWJvcmRlci1yYWRpdXM6LjE1cmVtOy0tY2xyLXN0YWNrLXZpZXctYm9yZGVyLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTQwMCk7LS1jbHItc3RhY2stdmlldy1iZy1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC01MCk7LS1j''@;'; + put 'put ''bHItc3RhY2stdmlldy1zdGFjay1ibG9jay1ib3JkZXItYm90dG9tOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTMwMCk7LS1jbHItc3RhY2stdmlldy1jb2xvcjojNjY2NjY2Oy0tY2xyLXN0YWNrLXZpZXctc3RhY2stYmxvY2stbGFiZWwtdGV4dC1jb2xvcjp2YXIoLS1jbHItZ2xvYmFsLWZv''@;'; + put 'put ''bnQtY29sb3IpOy0tY2xyLXN0YWNrLXZpZXctYm9yZGVyLWJveC1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC0zMDApOy0tY2xyLXN0YWNrLWJsb2NrLWNoYW5nZWQtYm9yZGVyLXRvcC1jb2xvcjp2YXIoLS1jbHItY29sb3ItYWN0aW9uLTYwMCk7LS1jbHItc3RhY2stdmlldy1zdGFj''@;'; + put 'put ''ay1ibG9jay1sYWJlbC1hbmQtY29udGVudC1iZy1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC01MCk7LS1jbHItc3RhY2stdmlldy1zdGFjay1jaGlsZHJlbi1zdGFjay1ibG9jay1ib3JkZXItYm90dG9tLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTIwMCk7LS1jbHItc3Rh''@;'; + put 'put ''Y2stdmlldy1zdGFjay1jaGlsZHJlbi1zdGFjay1ibG9jay1sYWJlbC1hbmQtY29udGVudC1iZy1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC0wKTstLWNsci1zdGFjay12aWV3LXN0YWNrLWJsb2NrLWV4cGFuZGVkLWJnLWNvbG9yOnZhcigtLWNsci1nbG9iYWwtc2VsZWN0aW9uLWNv''@;'; + put 'put ''bG9yKTstLWNsci1zdGFjay12aWV3LXN0YWNrLWJsb2NrLWV4cGFuZGFibGUtaG92ZXI6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtMjAwKTstLWNsci1zdGFjay12aWV3LXN0YWNrLWJsb2NrLWNvbnRlbnQtdGV4dC1jb2xvcjppbmhlcml0Oy0tY2xyLXN0YWNrLXZpZXctc3RhY2stYmxvY2st''@;'; + put 'put ''ZXhwYW5kZWQtdGV4dC1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC0xMDAwKTstLWNsci1zdGFjay12aWV3LXN0YWNrLWJsb2NrLWNhcmV0LWNvbG9yOnZhcigtLWNsci1nbG9iYWwtZm9udC1jb2xvcil9LnN0YWNrLWhlYWRlcntmb250LXdlaWdodDo0MDA7ZGlzcGxheTpmbGV4O2Fs''@;'; + put 'put ''aWduLWl0ZW1zOmZsZXgtZW5kfS5zdGFjay1oZWFkZXIgLnN0YWNrLXRpdGxle2Rpc3BsYXk6YmxvY2s7ZmxleDoxIDEgYXV0bztwYWRkaW5nOi4zcmVtIDB9LnN0YWNrLWhlYWRlciAuc3RhY2stYWN0aW9uc3tkaXNwbGF5OmJsb2NrO2ZsZXg6MCAwIGF1dG99LnN0YWNrLWhlYWRlciAuc3Rh''@;'; + put 'put ''Y2stYWN0aW9ucyAuc3RhY2stYWN0aW9ue21hcmdpbjowIDAgLjNyZW0gLjZyZW19LnN0YWNrLWhlYWRlciAuc3RhY2stYWN0aW9ucyAuc3RhY2stYWN0aW9uLmJ0bnttaW4td2lkdGg6MDtwYWRkaW5nOjAgLjZyZW19LnN0YWNrLWhlYWRlciAuc3RhY2stYWN0aW9ucyAuc3RhY2stYWN0aW9u''@;'; + put 'put ''LmJ0bi1saW5re21hcmdpbi1yaWdodDotLjZyZW19LnN0YWNrLXZpZXd7Y29sb3I6IzY2Njtjb2xvcjp2YXIoLS1jbHItc3RhY2stdmlldy1jb2xvciwgIzY2NjY2Nik7Zm9udC1zaXplOi42NXJlbTtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6MS4ycmVtO2xldHRlci1zcGFjaW5nOm5v''@;'; + put 'put ''cm1hbDttYXJnaW4tdG9wOjA7Ym9yZGVyLXdpZHRoOi4wNXJlbTtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLWNvbG9yOiNjY2M7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1zdGFjay12aWV3LWJvcmRlci1jb2xvciwgI2NjY2NjYyk7Ym9yZGVyLXJhZGl1czouMTVyZW07Ym9yZGVyLXJhZGl1''@;'; + put 'put ''czp2YXIoLS1jbHItc3RhY2stdmlldy1ib3JkZXItcmFkaXVzLCAuMTVyZW0pO292ZXJmbG93LXk6YXV0bztiYWNrZ3JvdW5kLWNvbG9yOiNmYWZhZmE7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItc3RhY2stdmlldy1iZy1jb2xvciwgI2ZhZmFmYSk7d29yZC13cmFwOmJyZWFrLXdvcmR9''@;'; + put 'put ''LnN0YWNrLXZpZXcgZGQsLnN0YWNrLXZpZXcgZHR7bWFyZ2luLWlubGluZS1zdGFydDowO21hcmdpbi1sZWZ0OjB9LnN0YWNrLXZpZXcgLnN0YWNrLWJsb2Nre2Rpc3BsYXk6ZmxleDtmbGV4LWZsb3c6cm93IHdyYXA7Ym9yZGVyLWJvdHRvbS13aWR0aDouMDVyZW07Ym9yZGVyLWJvdHRvbS13''@;'; + put 'put ''aWR0aDp2YXIoLS1jbHItZ2xvYmFsLWJvcmRlcndpZHRoLCAuMDVyZW0pO2JvcmRlci1ib3R0b20tc3R5bGU6c29saWQ7Ym9yZGVyLWJvdHRvbS1jb2xvcjojZGVkZWRlO2JvcmRlci1ib3R0b20tY29sb3I6dmFyKC0tY2xyLXN0YWNrLXZpZXctc3RhY2stYmxvY2stYm9yZGVyLWJvdHRvbSwg''@;'; + put 'put ''I2RlZGVkZSk7b3ZlcmZsb3cteTpoaWRkZW59LnN0YWNrLXZpZXc+LnN0YWNrLWJsb2NrOmxhc3QtY2hpbGQsLnN0YWNrLXZpZXc+Omxhc3QtY2hpbGQgLnN0YWNrLWJsb2NrOmxhc3Qtb2YtdHlwZXtib3JkZXItYm90dG9tOm5vbmU7Ym94LXNoYWRvdzowIC4wNXJlbSAjZGVkZWRlO2JveC1z''@;'; + put 'put ''aGFkb3c6MCAuMDVyZW0gMCB2YXIoLS1jbHItc3RhY2stdmlldy1ib3JkZXItYm94LWNvbG9yKX0uc3RhY2stdmlldyAuc3RhY2stYmxvY2stY2hhbmdlZD4uc3RhY2stYmxvY2stbGFiZWx7bWFyZ2luLWxlZnQ6LS40NXJlbX0uc3RhY2stdmlldyAuc3RhY2stYmxvY2stY2hhbmdlZDpiZWZv''@;'; + put 'put ''cmV7Y29udGVudDoiICI7cG9zaXRpb246cmVsYXRpdmU7aGVpZ2h0OjA7d2lkdGg6MDtib3JkZXItdG9wOi40NXJlbSBzb2xpZDtib3JkZXItdG9wLWNvbG9yOiMwMDcyYTM7Ym9yZGVyLXRvcC1jb2xvcjp2YXIoLS1jbHItc3RhY2stYmxvY2stY2hhbmdlZC1ib3JkZXItdG9wLWNvbG9yLCAj''@;'; + put 'put ''MDA3MmEzKTtib3JkZXItcmlnaHQ6LjQ1cmVtIHNvbGlkIHRyYW5zcGFyZW50fS5zdGFjay12aWV3IC5zdGFjay1ibG9jay1sYWJlbHtwYWRkaW5nOi4zcmVtIC42cmVtO2JhY2tncm91bmQtY29sb3I6I2ZhZmFmYTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1zdGFjay12aWV3LXN0YWNr''@;'; + put 'put ''LWJsb2NrLWxhYmVsLWFuZC1jb250ZW50LWJnLWNvbG9yLCAjZmFmYWZhKX0uc3RhY2stdmlldyAuc3RhY2stYmxvY2stY29udGVudHtiYWNrZ3JvdW5kLWNvbG9yOmluaGVyaXR9LnN0YWNrLXZpZXcgLnN0YWNrLWJsb2NrLWNhcmV0e2FsaWduLXNlbGY6Y2VudGVyfS5zdGFjay12aWV3IC5z''@;'; + put 'put ''dGFjay1ibG9jay1sYWJlbHtjb2xvcjojNjY2O2NvbG9yOnZhcigtLWNsci1zdGFjay12aWV3LXN0YWNrLWJsb2NrLWxhYmVsLXRleHQtY29sb3IsICM2NjY2NjYpO2ZvbnQtc2l6ZTouNjVyZW07Zm9udC13ZWlnaHQ6NTAwO2xpbmUtaGVpZ2h0OjEuMnJlbTtsZXR0ZXItc3BhY2luZzpub3Jt''@;'; + put 'put ''YWw7ZmxleDoxIDEgYXV0bztkaXNwbGF5OmZsZXh9LnN0YWNrLXZpZXcgLnN0YWNrLWJsb2NrLWxhYmVsOmJlZm9yZXtkaXNwbGF5OmlubGluZS1ibG9jaztjb250ZW50OiIiO2Zsb2F0OmxlZnQ7aGVpZ2h0Oi43cmVtO3dpZHRoOi43cmVtO21hcmdpbjouMzVyZW0gLjI0cmVtIDAgMDt0ZXh0''@;'; + put 'put ''LWFsaWduOmNlbnRlcn0uc3RhY2stdmlldyAuc3RhY2stYmxvY2stbGFiZWw6Zm9jdXN7b3V0bGluZTouMjVyZW0gYXV0byAtd2Via2l0LWZvY3VzLXJpbmctY29sb3J9LnN0YWNrLXZpZXcgLnN0YWNrLXZpZXcta2V5e2ZsZXg6MCAwIDQwJTttYXgtd2lkdGg6NDAlfS5zdGFjay12aWV3IC5z''@;'; + put 'put ''dGFjay1ibG9jay1jYXJldHtoZWlnaHQ6LjdyZW07d2lkdGg6LjdyZW07bWFyZ2luLXJpZ2h0Oi4yNHJlbTtmaWxsOiM2NjY7ZmlsbDp2YXIoLS1jbHItc3RhY2stdmlldy1zdGFjay1ibG9jay1jYXJldC1jb2xvciwgIzY2NjY2Nil9LnN0YWNrLXZpZXcgLnN0YWNrLWJsb2NrLWNvbnRlbnR7''@;'; + put 'put ''Y29sb3I6aW5oZXJpdDtjb2xvcjp2YXIoLS1jbHItc3RhY2stdmlldy1zdGFjay1ibG9jay1jb250ZW50LXRleHQtY29sb3IsIGluaGVyaXQpO2ZsZXg6MSAxIGF1dG87d2lkdGg6NjAlO21hcmdpbi1ib3R0b206MDtmb250LXdlaWdodDo0MDB9LnN0YWNrLXZpZXcgLnN0YWNrLWJsb2NrLWNv''@;'; + put 'put ''bnRlbnQ+OmZpcnN0LWNoaWxke21hcmdpbi10b3A6MH0uc3RhY2stdmlldyAuc3RhY2stYmxvY2stY29udGVudD46bGFzdC1jaGlsZHttYXJnaW4tYm90dG9tOjB9LnN0YWNrLXZpZXcgLnN0YWNrLWNoaWxkcmVue2ZsZXg6MCAwIGF1dG87d2lkdGg6MTAwJX0uc3RhY2stdmlldyAuc3RhY2st''@;'; + put 'put ''Y2hpbGRyZW4gLnN0YWNrLWJsb2Nre2JvcmRlci1ib3R0b20tY29sb3I6I2U4ZThlODtib3JkZXItYm90dG9tLWNvbG9yOnZhcigtLWNsci1zdGFjay12aWV3LXN0YWNrLWNoaWxkcmVuLXN0YWNrLWJsb2NrLWJvcmRlci1ib3R0b20tY29sb3IsICNlOGU4ZTgpfS5zdGFjay12aWV3IC5zdGFj''@;'; + put 'put ''ay1jaGlsZHJlbj4uc3RhY2stYmxvY2s6bGFzdC1jaGlsZCwuc3RhY2stdmlldyAuc3RhY2stY2hpbGRyZW4+Omxhc3QtY2hpbGQgLnN0YWNrLWJsb2NrOmxhc3Qtb2YtdHlwZXtib3JkZXItYm90dG9tOm5vbmU7Ym94LXNoYWRvdzowIC4wNXJlbSAjZGVkZWRlO2JveC1zaGFkb3c6MCAuMDVy''@;'; + put 'put ''ZW0gMCB2YXIoLS1jbHItc3RhY2stdmlldy1ib3JkZXItYm94LWNvbG9yKX0uc3RhY2stdmlldyAuc3RhY2stY2hpbGRyZW4gLnN0YWNrLWJsb2NrLWxhYmVsLC5zdGFjay12aWV3IC5zdGFjay1jaGlsZHJlbiAuc3RhY2stYmxvY2stY29udGVudHtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7YmFj''@;'; + put 'put ''a2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItc3RhY2stdmlldy1zdGFjay1jaGlsZHJlbi1zdGFjay1ibG9jay1sYWJlbC1hbmQtY29udGVudC1iZy1jb2xvciwgd2hpdGUpfS5zdGFjay12aWV3IC5zdGFjay1jaGlsZHJlbiAuc3RhY2stYmxvY2stbGFiZWx7cGFkZGluZy1sZWZ0OjEuMnJlbX0u''@;'; + put 'put ''c3RhY2stdmlldyAuc3RhY2stYmxvY2stZXhwYW5kYWJsZT4uc3RhY2stYmxvY2stbGFiZWx7Y3Vyc29yOnBvaW50ZXJ9LnN0YWNrLXZpZXcgLnN0YWNrLWJsb2NrLWV4cGFuZGFibGU+LnN0YWNrLWJsb2NrLWxhYmVsOmJlZm9yZXtiYWNrZ3JvdW5kLWltYWdlOnVybChkYXRhOmltYWdlL3N2''@;'; + put 'put ''Zyt4bWw7Y2hhcnNldD11dGY4LCUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMTIlMjAxMiUyMiUzRSUwQSUyMCUyMCUyMCUyMCUzQ2RlZnMlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAl''@;'; + put 'put ''MjAlM0NzdHlsZSUzRS5jbHMtMSU3QmZpbGwlM0ElMjM2NjY2NjYlM0IlN0QlM0MlMkZzdHlsZSUzRSUwQSUyMCUyMCUyMCUyMCUzQyUyRmRlZnMlM0UlMEElMjAlMjAlMjAlMjAlM0N0aXRsZSUzRUNhcmV0JTNDJTJGdGl0bGUlM0UlMEElMjAlMjAlMjAlMjAlM0NwYXRoJTIwY2xhc3MlM0Ql''@;'; + put 'put ''MjJjbHMtMSUyMiUyMGQlM0QlMjJNNiUyQzlMMS4yJTJDNC4yYTAuNjglMkMwLjY4JTJDMCUyQzAlMkMxJTJDMS0xTDYlMkM3LjA4JTJDOS44NCUyQzMuMjRhMC42OCUyQzAuNjglMkMwJTJDMSUyQzElMkMxJTJDMVolMjIlMkYlM0UlMEElM0MlMkZzdmclM0UlMEEpO2JhY2tncm91bmQtcmVw''@;'; + put 'put ''ZWF0Om5vLXJlcGVhdDtiYWNrZ3JvdW5kLXNpemU6Y29udGFpbjt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7dHJhbnNmb3JtOnJvdGF0ZSgtOTBkZWcpO2hlaWdodDouNnJlbTt3aWR0aDouNnJlbX0uc3RhY2stdmlldyAuc3RhY2stYmxvY2stZXhwYW5kYWJsZT4uc3RhY2stYmxvY2stbGFiZWws''@;'; + put 'put ''LnN0YWNrLXZpZXcgLnN0YWNrLWJsb2NrLWV4cGFuZGFibGU+LnN0YWNrLWJsb2NrLWNvbnRlbnR7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIC4ycyBlYXNlLWluLW91dCxjb2xvciAuMnMgZWFzZS1pbi1vdXR9LnN0YWNrLXZpZXcgLnN0YWNrLWJsb2NrLWV4cGFuZGFibGU6aG92ZXI6''@;'; + put 'put ''bm90KC5zdGFjay1ibG9jay1leHBhbmRlZCk+LnN0YWNrLWJsb2NrLWxhYmVse2JhY2tncm91bmQtY29sb3I6I2U4ZThlODtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1zdGFjay12aWV3LXN0YWNrLWJsb2NrLWV4cGFuZGFibGUtaG92ZXIsICNlOGU4ZTgpfS5zdGFjay12aWV3IC5zdGFj''@;'; + put 'put ''ay1ibG9jay1leHBhbmRlZD4uc3RhY2stYmxvY2stbGFiZWw6YmVmb3Jle3RyYW5zZm9ybTpyb3RhdGUoMCl9LnN0YWNrLXZpZXcgLnN0YWNrLWJsb2NrLWV4cGFuZGVkPi5zdGFjay1ibG9jay1sYWJlbHtiYWNrZ3JvdW5kLWNvbG9yOiNkOGUzZTk7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1j''@;'; + put 'put ''bHItc3RhY2stdmlldy1zdGFjay1ibG9jay1leHBhbmRlZC1iZy1jb2xvciwgI2Q4ZTNlOSk7Y29sb3I6IzAwMDtjb2xvcjp2YXIoLS1jbHItc3RhY2stdmlldy1zdGFjay1ibG9jay1leHBhbmRlZC10ZXh0LWNvbG9yLCBibGFjayl9LnN0YWNrLXZpZXcgaW5wdXRbdHlwZT10ZXh0XSwuc3Rh''@;'; + put 'put ''Y2stdmlldyBpbnB1dFt0eXBlPXBhc3N3b3JkXSwuc3RhY2stdmlldyBpbnB1dFt0eXBlPW51bWJlcl0sLnN0YWNrLXZpZXcgaW5wdXRbdHlwZT1lbWFpbF0sLnN0YWNrLXZpZXcgaW5wdXRbdHlwZT11cmxdLC5zdGFjay12aWV3IGlucHV0W3R5cGU9dGVsXSwuc3RhY2stdmlldyBpbnB1dFt0''@;'; + put 'put ''eXBlPWRhdGVdLC5zdGFjay12aWV3IGlucHV0W3R5cGU9dGltZV0sLnN0YWNrLXZpZXcgaW5wdXRbdHlwZT1kYXRldGltZS1sb2NhbF0sLnN0YWNrLXZpZXcgLnNlbGVjdHtkaXNwbGF5OmlubGluZS1ibG9jazt2ZXJ0aWNhbC1hbGlnbjp0b3A7bWFyZ2luLXJpZ2h0Oi42cmVtO21hcmdpbi1i''@;'; + put 'put ''b3R0b206LS45NXJlbX0uc3RhY2stdmlldyBpbnB1dFt0eXBlPXRleHRdLC5zdGFjay12aWV3IGlucHV0W3R5cGU9cGFzc3dvcmRdLC5zdGFjay12aWV3IGlucHV0W3R5cGU9bnVtYmVyXSwuc3RhY2stdmlldyBpbnB1dFt0eXBlPWVtYWlsXSwuc3RhY2stdmlldyBpbnB1dFt0eXBlPXVybF0s''@;'; + put 'put ''LnN0YWNrLXZpZXcgaW5wdXRbdHlwZT10ZWxdLC5zdGFjay12aWV3IGlucHV0W3R5cGU9ZGF0ZV0sLnN0YWNrLXZpZXcgaW5wdXRbdHlwZT10aW1lXSwuc3RhY2stdmlldyBpbnB1dFt0eXBlPWRhdGV0aW1lLWxvY2FsXSwuc3RhY2stdmlldyAuc2VsZWN0IHNlbGVjdHtoZWlnaHQ6MS4ycmVt''@;'; + put 'put ''fS5zdGFjay12aWV3IC5zdGFjay1ibG9jay1leHBhbmRhYmxlPi5zdGFjay1ibG9jay1jb250ZW50IGlucHV0W3R5cGU9dGV4dF0sLnN0YWNrLXZpZXcgLnN0YWNrLWJsb2NrLWV4cGFuZGFibGU+LnN0YWNrLWJsb2NrLWNvbnRlbnQgaW5wdXRbdHlwZT1wYXNzd29yZF0sLnN0YWNrLXZpZXcg''@;'; + put 'put ''LnN0YWNrLWJsb2NrLWV4cGFuZGFibGU+LnN0YWNrLWJsb2NrLWNvbnRlbnQgaW5wdXRbdHlwZT1udW1iZXJdLC5zdGFjay12aWV3IC5zdGFjay1ibG9jay1leHBhbmRhYmxlPi5zdGFjay1ibG9jay1jb250ZW50IGlucHV0W3R5cGU9ZW1haWxdLC5zdGFjay12aWV3IC5zdGFjay1ibG9jay1l''@;'; + put 'put ''eHBhbmRhYmxlPi5zdGFjay1ibG9jay1jb250ZW50IGlucHV0W3R5cGU9dXJsXSwuc3RhY2stdmlldyAuc3RhY2stYmxvY2stZXhwYW5kYWJsZT4uc3RhY2stYmxvY2stY29udGVudCBpbnB1dFt0eXBlPXRlbF0sLnN0YWNrLXZpZXcgLnN0YWNrLWJsb2NrLWV4cGFuZGFibGU+LnN0YWNrLWJs''@;'; + put 'put ''b2NrLWNvbnRlbnQgaW5wdXRbdHlwZT1kYXRlXSwuc3RhY2stdmlldyAuc3RhY2stYmxvY2stZXhwYW5kYWJsZT4uc3RhY2stYmxvY2stY29udGVudCBpbnB1dFt0eXBlPXRpbWVdLC5zdGFjay12aWV3IC5zdGFjay1ibG9jay1leHBhbmRhYmxlPi5zdGFjay1ibG9jay1jb250ZW50IGlucHV0''@;'; + put 'put ''W3R5cGU9ZGF0ZXRpbWUtbG9jYWxde3RyYW5zaXRpb246YmFja2dyb3VuZC1zaXplIC4ycyBlYXNlLGJvcmRlci1ib3R0b20tY29sb3IgLjJzIGVhc2UtaW4tb3V0fS5zdGFjay12aWV3IC5zdGFjay1ibG9jay1leHBhbmRhYmxlPi5zdGFjay1ibG9jay1jb250ZW50IC5zZWxlY3Qgc2VsZWN0''@;'; + put 'put ''e3RyYW5zaXRpb246Ym9yZGVyLWJvdHRvbS1jb2xvciAuMnMgZWFzZS1pbi1vdXR9LnN0YWNrLXZpZXcgLnN0YWNrLWJsb2NrLWV4cGFuZGFibGU+LnN0YWNrLWJsb2NrLWNvbnRlbnQgLnNlbGVjdDphZnRlcnt0cmFuc2l0aW9uOmNvbG9yIC4ycyBlYXNlLWluLW91dH0uc3RhY2stdmlldyAu''@;'; + put 'put ''c3RhY2stYmxvY2stZXhwYW5kZWQ+LnN0YWNrLWJsb2NrLWNvbnRlbnQgaW5wdXRbdHlwZT10ZXh0XSwuc3RhY2stdmlldyAuc3RhY2stYmxvY2stZXhwYW5kZWQ+LnN0YWNrLWJsb2NrLWNvbnRlbnQgaW5wdXRbdHlwZT1wYXNzd29yZF0sLnN0YWNrLXZpZXcgLnN0YWNrLWJsb2NrLWV4cGFu''@;'; + put 'put ''ZGVkPi5zdGFjay1ibG9jay1jb250ZW50IGlucHV0W3R5cGU9bnVtYmVyXSwuc3RhY2stdmlldyAuc3RhY2stYmxvY2stZXhwYW5kZWQ+LnN0YWNrLWJsb2NrLWNvbnRlbnQgaW5wdXRbdHlwZT1lbWFpbF0sLnN0YWNrLXZpZXcgLnN0YWNrLWJsb2NrLWV4cGFuZGVkPi5zdGFjay1ibG9jay1j''@;'; + put 'put ''b250ZW50IGlucHV0W3R5cGU9dXJsXSwuc3RhY2stdmlldyAuc3RhY2stYmxvY2stZXhwYW5kZWQ+LnN0YWNrLWJsb2NrLWNvbnRlbnQgaW5wdXRbdHlwZT10ZWxdLC5zdGFjay12aWV3IC5zdGFjay1ibG9jay1leHBhbmRlZD4uc3RhY2stYmxvY2stY29udGVudCBpbnB1dFt0eXBlPWRhdGVd''@;'; + put 'put ''LC5zdGFjay12aWV3IC5zdGFjay1ibG9jay1leHBhbmRlZD4uc3RhY2stYmxvY2stY29udGVudCBpbnB1dFt0eXBlPXRpbWVdLC5zdGFjay12aWV3IC5zdGFjay1ibG9jay1leHBhbmRlZD4uc3RhY2stYmxvY2stY29udGVudCBpbnB1dFt0eXBlPWRhdGV0aW1lLWxvY2FsXXtib3JkZXItYm90''@;'; + put 'put ''dG9tLWNvbG9yOiM4YzhjOGM7Ym9yZGVyLWJvdHRvbS1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC02MDAsICM4YzhjOGMpO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSx0cmFuc3BhcmVudCA5NSUsdmFyKC0tY2xyLWNvbG9yLWFjdGlvbi02MDAsICMwMDcyYTMp''@;'; + put 'put ''IDk1JSkgbm8tcmVwZWF0O2JhY2tncm91bmQtc2l6ZTowIDEwMCU7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kLXNpemUgLjJzIGVhc2V9LnN0YWNrLXZpZXcgLnN0YWNrLWJsb2NrLWV4cGFuZGVkPi5zdGFjay1ibG9jay1jb250ZW50IGlucHV0W3R5cGU9dGV4dF06Zm9jdXMsLnN0YWNrLXZpZXcg''@;'; + put 'put ''LnN0YWNrLWJsb2NrLWV4cGFuZGVkPi5zdGFjay1ibG9jay1jb250ZW50IGlucHV0W3R5cGU9dGV4dF0uY2xyLWZvY3VzLC5zdGFjay12aWV3IC5zdGFjay1ibG9jay1leHBhbmRlZD4uc3RhY2stYmxvY2stY29udGVudCBpbnB1dFt0eXBlPXBhc3N3b3JkXTpmb2N1cywuc3RhY2stdmlldyAu''@;'; + put 'put ''c3RhY2stYmxvY2stZXhwYW5kZWQ+LnN0YWNrLWJsb2NrLWNvbnRlbnQgaW5wdXRbdHlwZT1wYXNzd29yZF0uY2xyLWZvY3VzLC5zdGFjay12aWV3IC5zdGFjay1ibG9jay1leHBhbmRlZD4uc3RhY2stYmxvY2stY29udGVudCBpbnB1dFt0eXBlPW51bWJlcl06Zm9jdXMsLnN0YWNrLXZpZXcg''@;'; + put 'put ''LnN0YWNrLWJsb2NrLWV4cGFuZGVkPi5zdGFjay1ibG9jay1jb250ZW50IGlucHV0W3R5cGU9bnVtYmVyXS5jbHItZm9jdXMsLnN0YWNrLXZpZXcgLnN0YWNrLWJsb2NrLWV4cGFuZGVkPi5zdGFjay1ibG9jay1jb250ZW50IGlucHV0W3R5cGU9ZW1haWxdOmZvY3VzLC5zdGFjay12aWV3IC5z''@;'; + put 'put ''dGFjay1ibG9jay1leHBhbmRlZD4uc3RhY2stYmxvY2stY29udGVudCBpbnB1dFt0eXBlPWVtYWlsXS5jbHItZm9jdXMsLnN0YWNrLXZpZXcgLnN0YWNrLWJsb2NrLWV4cGFuZGVkPi5zdGFjay1ibG9jay1jb250ZW50IGlucHV0W3R5cGU9dXJsXTpmb2N1cywuc3RhY2stdmlldyAuc3RhY2st''@;'; + put 'put ''YmxvY2stZXhwYW5kZWQ+LnN0YWNrLWJsb2NrLWNvbnRlbnQgaW5wdXRbdHlwZT11cmxdLmNsci1mb2N1cywuc3RhY2stdmlldyAuc3RhY2stYmxvY2stZXhwYW5kZWQ+LnN0YWNrLWJsb2NrLWNvbnRlbnQgaW5wdXRbdHlwZT10ZWxdOmZvY3VzLC5zdGFjay12aWV3IC5zdGFjay1ibG9jay1l''@;'; + put 'put ''eHBhbmRlZD4uc3RhY2stYmxvY2stY29udGVudCBpbnB1dFt0eXBlPXRlbF0uY2xyLWZvY3VzLC5zdGFjay12aWV3IC5zdGFjay1ibG9jay1leHBhbmRlZD4uc3RhY2stYmxvY2stY29udGVudCBpbnB1dFt0eXBlPWRhdGVdOmZvY3VzLC5zdGFjay12aWV3IC5zdGFjay1ibG9jay1leHBhbmRl''@;'; + put 'put ''ZD4uc3RhY2stYmxvY2stY29udGVudCBpbnB1dFt0eXBlPWRhdGVdLmNsci1mb2N1cywuc3RhY2stdmlldyAuc3RhY2stYmxvY2stZXhwYW5kZWQ+LnN0YWNrLWJsb2NrLWNvbnRlbnQgaW5wdXRbdHlwZT10aW1lXTpmb2N1cywuc3RhY2stdmlldyAuc3RhY2stYmxvY2stZXhwYW5kZWQ+LnN0''@;'; + put 'put ''YWNrLWJsb2NrLWNvbnRlbnQgaW5wdXRbdHlwZT10aW1lXS5jbHItZm9jdXMsLnN0YWNrLXZpZXcgLnN0YWNrLWJsb2NrLWV4cGFuZGVkPi5zdGFjay1ibG9jay1jb250ZW50IGlucHV0W3R5cGU9ZGF0ZXRpbWUtbG9jYWxdOmZvY3VzLC5zdGFjay12aWV3IC5zdGFjay1ibG9jay1leHBhbmRl''@;'; + put 'put ''ZD4uc3RhY2stYmxvY2stY29udGVudCBpbnB1dFt0eXBlPWRhdGV0aW1lLWxvY2FsXS5jbHItZm9jdXN7Ym9yZGVyLWJvdHRvbS1jb2xvcjojMDA3MmEzO2JvcmRlci1ib3R0b20tY29sb3I6dmFyKC0tY2xyLWNvbG9yLWFjdGlvbi02MDAsICMwMDcyYTMpO2JhY2tncm91bmQtc2l6ZToxMDAl''@;'; + put 'put ''IDEwMCV9LnN0YWNrLXZpZXcgLnN0YWNrLWJsb2NrLWV4cGFuZGVkPi5zdGFjay1ibG9jay1jb250ZW50IC5zZWxlY3Qgc2VsZWN0e2JvcmRlci1ib3R0b20tY29sb3I6IzhjOGM4Yztib3JkZXItYm90dG9tLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTYwMCwgIzhjOGM4Yyl9LnN0''@;'; + put 'put ''YWNrLXZpZXcgLnN0YWNrLWJsb2NrLWV4cGFuZGVkPi5zdGFjay1ibG9jay1jb250ZW50IC5zZWxlY3Q6YWZ0ZXJ7Y29sb3I6IzhjOGM4Yztjb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC02MDAsICM4YzhjOGMpfS5tb2RhbCAuc3RhY2stdmlld3toZWlnaHQ6NTV2aDttYXJnaW4tYm90''@;'; + put 'put ''dG9tOjB9LnN0YWNrLXZpZXcgY2xyLXN0YWNrLWJsb2NrLnN0YWNrLWJsb2NrLWV4cGFuZGFibGUgLnN0YWNrLWJsb2NrLWxhYmVsOmJlZm9yZXtjb250ZW50Om5vbmV9LnN0YWNrLXZpZXcgLnN0YWNrLWNoaWxkcmVuIGNsci1zdGFjay1ibG9jayAuc3RhY2stYmxvY2stbGFiZWwsLnN0YWNr''@;'; + put 'put ''LXZpZXcgLnN0YWNrLWNoaWxkcmVuIC5zdGFjay1ibG9jay1sYWJlbHtwYWRkaW5nLWxlZnQ6MS44cmVtfS5zdGFjay12aWV3IC5zdGFjay1jaGlsZHJlbiBjbHItc3RhY2stYmxvY2sgLnN0YWNrLWJsb2NrLWxhYmVsOmJlZm9yZSwuc3RhY2stdmlldyAuc3RhY2stY2hpbGRyZW4gLnN0YWNr''@;'; + put 'put ''LWJsb2NrLWxhYmVsOmJlZm9yZXtkaXNwbGF5Om5vbmV9LnN0YWNrLXZpZXcgLnN0YWNrLWNoaWxkcmVuIGNsci1zdGFjay1ibG9jayAuc3RhY2stYmxvY2stY29udGVudCwuc3RhY2stdmlldyAuc3RhY2stY2hpbGRyZW4gLnN0YWNrLWJsb2NrLWNvbnRlbnR7cGFkZGluZy1sZWZ0Oi4zNnJl''@;'; + put 'put ''bX06cm9vdHstLWNsci10cmVlLWJvcmRlci1yYWRpdXM6dmFyKC0tY2xyLWdsb2JhbC1ib3JkZXJyYWRpdXMpOy0tY2xyLXRyZWUtbm9kZS1jYXJldC1saW5rLWhvdmVyLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTEwMDApOy0tY2xyLXRyZWUtbGluay1ob3Zlci1jb2xvcjp2YXIo''@;'; + put 'put ''LS1jbHItY3VzdG9tLWxpbmtzLWhvdmVyLWNvbG9yKTstLWNsci10cmVlLWxpbmstc2VsZWN0aW9uLWNvbG9yOnZhcigtLWNsci1nbG9iYWwtc2VsZWN0aW9uLWNvbG9yKTstLWNsci10cmVlLWxpbmstdGV4dC1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC03MDApOy0tY2xyLXRyZWUt''@;'; + put 'put ''bm9kZS1jYXJldC1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC01MDApfS5jbHItdHJlZS1ub2Rle2Rpc3BsYXk6YmxvY2t9LmNsci10cmVlLW5vZGUtY29udGVudC1jb250YWluZXJ7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcn0uY2xyLXRyZWVub2RlLWNvbnRlbnR7Zmxl''@;'; + put 'put ''eDoxIDEgYXV0bztkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2JvcmRlci1yYWRpdXM6MDtib3JkZXItdG9wLWxlZnQtcmFkaXVzOi4xNXJlbTtib3JkZXItdG9wLWxlZnQtcmFkaXVzOnZhcigtLWNsci10cmVlLWJvcmRlci1yYWRpdXMsIC4xNXJlbSk7Ym9yZGVyLWJvdHRvbS1s''@;'; + put 'put ''ZWZ0LXJhZGl1czouMTVyZW07Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czp2YXIoLS1jbHItdHJlZS1ib3JkZXItcmFkaXVzLCAuMTVyZW0pO2xpbmUtaGVpZ2h0OjEuNjJyZW19LmNsci10cmVlbm9kZS1jb250ZW50OmZpcnN0LWNoaWxke3BhZGRpbmctbGVmdDoxLjYycmVtfS5jbHItdHJl''@;'; + put 'put ''ZW5vZGUtY29udGVudCBjZHMtaWNvbiwuY2xyLXRyZWVub2RlLWNvbnRlbnQgY2xyLWljb257aGVpZ2h0Oi44cmVtO3dpZHRoOi44cmVtO21hcmdpbi1yaWdodDouM3JlbTt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9LmNsci10cmVlbm9kZS1jYXJldHtmbGV4OjAgMCAxLjYycmVtO3BhZGRpbmc6''@;'; + put 'put ''MDttYXJnaW46MDtoZWlnaHQ6MS42MnJlbTt3aWR0aDoxLjYycmVtO2JhY2tncm91bmQ6MCAwO2JvcmRlcjowO2NvbG9yOiNiM2IzYjM7Y29sb3I6dmFyKC0tY2xyLXRyZWUtbm9kZS1jYXJldC1jb2xvciwgI2IzYjNiMyk7Y3Vyc29yOnBvaW50ZXI7b3V0bGluZS1vZmZzZXQ6LS4yNXJlbX0u''@;'; + put 'put ''Y2xyLXRyZWVub2RlLWNhcmV0OmhvdmVye2NvbG9yOiMwMDA7Y29sb3I6dmFyKC0tY2xyLXRyZWUtbm9kZS1jYXJldC1saW5rLWhvdmVyLWNvbG9yLCBibGFjayl9LmNsci10cmVlLW5vZGUtY2FyZXQtaWNvbntoZWlnaHQ6LjhyZW07d2lkdGg6LjhyZW07dmVydGljYWwtYWxpZ246bWlkZGxl''@;'; + put 'put ''fS5jbHItdHJlZW5vZGUtc3Bpbm5lci1jb250YWluZXJ7aGVpZ2h0OjEuNjJyZW07d2lkdGg6MS42MnJlbTtwYWRkaW5nOi40MXJlbX0uY2xyLXRyZWVub2RlLXNwaW5uZXJ7aGVpZ2h0Oi44cmVtO3dpZHRoOi44cmVtO21pbi1oZWlnaHQ6LjhyZW07bWluLXdpZHRoOi44cmVtfS5jbHItdHJl''@;'; + put 'put ''ZW5vZGUtY2hpbGRyZW57bWFyZ2luLWxlZnQ6MS4xN3JlbTt3aWxsLWNoYW5nZTpoZWlnaHQ7b3ZlcmZsb3cteTpoaWRkZW59LmNsci10cmVlbm9kZS1saW5re2Rpc3BsYXk6aW5saW5lLWJsb2NrO2hlaWdodDoxMDAlO3dpZHRoOjEwMCU7bWFyZ2luOjA7cGFkZGluZzowIDAgMCAuM3JlbTti''@;'; + put 'put ''YWNrZ3JvdW5kOjAgMDtib3JkZXI6MDtjb2xvcjojNjY2O2NvbG9yOnZhcigtLWNsci10cmVlLWxpbmstdGV4dC1jb2xvciwgIzY2NjY2Nik7Y3Vyc29yOnBvaW50ZXI7bGluZS1oZWlnaHQ6aW5oZXJpdDt0ZXh0LWFsaWduOmxlZnR9LmNsci10cmVlbm9kZS1saW5rOmxpbmssLmNsci10cmVl''@;'; + put 'put ''bm9kZS1saW5rOnZpc2l0ZWQsLmNsci10cmVlbm9kZS1saW5rOmFjdGl2ZSwuY2xyLXRyZWVub2RlLWxpbms6aG92ZXJ7Y29sb3I6aW5oZXJpdH0uY2xyLXRyZWVub2RlLWxpbms6aG92ZXIsLmNsci10cmVlbm9kZS1saW5rOmZvY3Vze2JhY2tncm91bmQ6I2U4ZThlODtiYWNrZ3JvdW5kOnZh''@;'; + put 'put ''cigtLWNsci10cmVlLWxpbmstaG92ZXItY29sb3IsICNlOGU4ZTgpO3RleHQtZGVjb3JhdGlvbjpub25lfS5jbHItdHJlZW5vZGUtbGluay5hY3RpdmV7YmFja2dyb3VuZDojZDhlM2U5O2JhY2tncm91bmQ6dmFyKC0tY2xyLXRyZWUtbGluay1zZWxlY3Rpb24tY29sb3IsICNkOGUzZTkpO2Nv''@;'; + put 'put ''bG9yOiMwMDA7Y29sb3I6dmFyKC0tY2xyLXRyZWUtbm9kZS1jYXJldC1saW5rLWhvdmVyLWNvbG9yLCBibGFjayl9LmNsci10cmVlLW5vZGUtY29udGVudC1jb250YWluZXI+LmNsci1jaGVja2JveC13cmFwcGVye2hlaWdodDoxLjYycmVtO3dpZHRoOjEuNjJyZW07cGFkZGluZy10b3A6LjIx''@;'; + put 'put ''cmVtO3BhZGRpbmctbGVmdDouNDFyZW19LmNsci10cmVlLW5vZGUtY29udGVudC1jb250YWluZXI+LmNsci1jaGVja2JveC13cmFwcGVyOmZpcnN0LWNoaWxke21hcmdpbi1sZWZ0OjEuNjJyZW19LmNsci10cmVlbm9kZS1jb250ZW50IC5sYWJlbHttYXJnaW4tbGVmdDouM3JlbX1Ac3VwcG9y''@;'; + put 'put ''dHMgKC1tcy1pbWUtYWxpZ246YXV0byl7LmNsci10cmVlbm9kZS1jb250ZW50IC5sYWJlbHttYXJnaW4tbGVmdDouMTVyZW19fV86LW1zLWlucHV0LXBsYWNlaG9sZGVyIC5jbHItdHJlZW5vZGUtY29udGVudCAubGFiZWwsOnJvb3QgLmNsci10cmVlbm9kZS1jb250ZW50IC5sYWJlbHttYXJn''@;'; + put 'put ''aW4tbGVmdDouMTVyZW19OnJvb3R7LS1jbHItZGF0YWdyaWQtZm9udC1jb2xvcjojYWNiYWMzOy0tY2xyLWRhdGFncmlkLWRlZmF1bHQtYm9yZGVyLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTQwMCk7LS1jbHItZGF0YWdyaWQtaWNvbi1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1''@;'; + put 'put ''dHJhbC02MDApOy0tY2xyLWRhdGFncmlkLXJvdy1ob3Zlcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC0yMDApOy0tY2xyLWRhdGFncmlkLXJvdy1ob3Zlci1mb250LWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTEwMDApOy0tY2xyLWRhdGFncmlkLWFjdGlvbi10b2dnbGU6dmFyKC0t''@;'; + put 'put ''Y2xyLWNvbG9yLW5ldXRyYWwtNzAwKTstLWNsci1kYXRhZ3JpZC1wYWdpbmF0aW9uLWJ0bi1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC03MDApOy0tY2xyLWRhdGFncmlkLXBhZ2luYXRpb24tYnRuLWRpc2FibGVkLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTYwMCk7LS1j''@;'; + put 'put ''bHItZGF0YWdyaWQtcGFnaW5hdGlvbi1pbnB1dC1ib3JkZXItY29sb3I6dmFyKC0tY2xyLWRhdGFncmlkLWRlZmF1bHQtYm9yZGVyLWNvbG9yKTstLWNsci1kYXRhZ3JpZC1wYWdpbmF0aW9uLWlucHV0LWJvcmRlci1mb2N1cy1jb2xvcjp2YXIoLS1jbHItY29sb3ItYWN0aW9uLTQwMCk7LS1j''@;'; + put 'put ''bHItZGF0YWdyaWQtcG9wb3Zlci1iZy1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC0wKTstLWNsci1kYXRhZ3JpZC1wb3BvdmVyLWJvcmRlci1jb2xvcjp2YXIoLS1jbHItZGF0YWdyaWQtZGVmYXVsdC1ib3JkZXItY29sb3IpOy0tY2xyLWRhdGFncmlkLWFjdGlvbi1wb3BvdmVyLWhv''@;'; + put 'put ''dmVyLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTIwMCk7LS1jbHItZGF0YWdyaWQtcm93LXNlbGVjdGVkOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTEwMDApOy0tY2xyLWRhdGFncmlkLWxvYWRpbmctYmFja2dyb3VuZDpyZ2JhKDI1NSwgMjU1LCAyNTUsIC42KTstLWNsci1kYXRh''@;'; + put 'put ''Z3JpZC1wb3BvdmVycy1ib3gtc2hhZG93LWNvbG9yOnJnYmEoMTQwLCAxNDAsIDE0MCwgLjI1KTstLWNsci1kYXRhZ3JpZC1jb2x1bW4tc3dpdGNoLWhlYWRlci1mb250LWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTUwMCk7LS1jbHItZGF0YWdyaWQtY29sdW1uLXN3aXRjaC1oZWFk''@;'; + put 'put ''ZXItZm9udC1ob3Zlci1jb2xvcjp2YXIoLS1jbHItY29sb3ItYWN0aW9uLTYwMCk7LS1jbHItZGF0YWdyaWQtZGV0YWlsLWNhcmV0LWljb24tb3Blbi1iZy1jb2xvcjp2YXIoLS1jbHItY29sb3ItYWN0aW9uLTYwMCk7LS1jbHItZGF0YWdyaWQtZGV0YWlsLWNhcmV0LWljb24tb3Blbi1pY29u''@;'; + put 'put ''LWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTApOy0tY2xyLWRhdGFncmlkLXBsYWNlaG9sZGVyLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTcwMCk7LS1jbHItZGF0YWdyaWQtcGxhY2Vob2xkZXItZm9udC1zaXplOi44cmVtOy0tY2xyLWRhdGFncmlkLXBhZ2luYXRpb24t''@;'; + put 'put ''YnRuLWRpc2FibGVkLW9wYWNpdHk6LjU2fS5kYXRhZ3JpZHtib3JkZXItY29sbGFwc2U6c2VwYXJhdGU7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci13aWR0aDouMDVyZW07Ym9yZGVyLXdpZHRoOnZhcigtLWNsci10YWJsZS1ib3JkZXJ3aWR0aCwgLjA1cmVtKTtib3JkZXItY29sb3I6I2Nj''@;'; + put 'put ''Yztib3JkZXItY29sb3I6dmFyKC0tY2xyLXRhYmxlLWJvcmRlci1jb2xvciwgI2NjY2NjYyk7Ym9yZGVyLXJhZGl1czouMTVyZW07Ym9yZGVyLXJhZGl1czp2YXIoLS1jbHItdGFibGUtYm9yZGVyLXJhZGl1cywgLjE1cmVtKTtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xv''@;'; + put 'put ''cjp2YXIoLS1jbHItdGFibGUtYmdjb2xvciwgd2hpdGUpO2NvbG9yOiM2NjY7Y29sb3I6dmFyKC0tY2xyLXRhYmxlLWZvbnQtY29sb3IsICM2NjY2NjYpO21hcmdpbjowO21hcmdpbi10b3A6MS4ycmVtO21heC13aWR0aDoxMDAlO3dpZHRoOjEwMCV9LmRhdGFncmlkIC5kYXRhZ3JpZC1jb2x1''@;'; + put 'put ''bW4sLmRhdGFncmlkIC5kYXRhZ3JpZC1jZWxse2ZvbnQtc2l6ZTouNjVyZW07bGluZS1oZWlnaHQ6LjdyZW07Ym9yZGVyLXRvcC1zdHlsZTpzb2xpZDtib3JkZXItdG9wLXdpZHRoOi4wNXJlbTtib3JkZXItdG9wLXdpZHRoOnZhcigtLWNsci10YWJsZS1ib3JkZXJ3aWR0aCwgLjA1cmVtKTti''@;'; + put 'put ''b3JkZXItdG9wLWNvbG9yOiNlOGU4ZTg7Ym9yZGVyLXRvcC1jb2xvcjp2YXIoLS1jbHItdGFibGVyb3ctYm9yZGVyY29sb3IsICNlOGU4ZTgpO3BhZGRpbmc6LjU1cmVtIC42cmVtO3RleHQtYWxpZ246Y2VudGVyO3ZlcnRpY2FsLWFsaWduOnRvcH0uZGF0YWdyaWQgLmRhdGFncmlkLWNvbHVt''@;'; + put 'put ''bi5sZWZ0LC5kYXRhZ3JpZCAuZGF0YWdyaWQtY2VsbC5sZWZ0e3RleHQtYWxpZ246bGVmdH0uZGF0YWdyaWQgLmRhdGFncmlkLWNvbHVtbi5sZWZ0OmZpcnN0LWNoaWxkLC5kYXRhZ3JpZCAuZGF0YWdyaWQtY2VsbC5sZWZ0OmZpcnN0LWNoaWxke3BhZGRpbmctbGVmdDouM3JlbX0uZGF0YWdy''@;'; + put 'put ''aWQgLmRhdGFncmlkLWNvbHVtbntjb2xvcjojNjY2O2NvbG9yOnZhcigtLWNsci10aGVhZC1jb2xvciwgIzY2NjY2Nik7Zm9udC1zaXplOi41NXJlbTtmb250LXdlaWdodDo2MDA7bGV0dGVyLXNwYWNpbmc6LjAzZW07YmFja2dyb3VuZC1jb2xvcjojZmFmYWZhO2JhY2tncm91bmQtY29sb3I6''@;'; + put 'put ''dmFyKC0tY2xyLXRoZWFkLWJnY29sb3IsICNmYWZhZmEpO3ZlcnRpY2FsLWFsaWduOmJvdHRvbTtib3JkZXItYm90dG9tLXN0eWxlOnNvbGlkO2JvcmRlci1ib3R0b20td2lkdGg6LjA1cmVtO2JvcmRlci1ib3R0b20td2lkdGg6dmFyKC0tY2xyLXRhYmxlLWJvcmRlcndpZHRoLCAuMDVyZW0p''@;'; + put 'put ''O2JvcmRlci1ib3R0b20tY29sb3I6I2NjYztib3JkZXItYm90dG9tLWNvbG9yOnZhcigtLWNsci10YWJsZS1ib3JkZXItY29sb3IsICNjY2NjY2MpO2JvcmRlci10b3A6MCBub25lfS5kYXRhZ3JpZCAuZGF0YWdyaWQtYm9keSAuZGF0YWdyaWQtcm93OmZpcnN0LWNoaWxkIC5kYXRhZ3JpZC1j''@;'; + put 'put ''ZWxse2JvcmRlci10b3A6MCBub25lfS5kYXRhZ3JpZCAuZGF0YWdyaWQtYm9keSsuZGF0YWdyaWQtYm9keXtib3JkZXItdG9wLXN0eWxlOnNvbGlkO2JvcmRlci10b3Atd2lkdGg6LjA1cmVtO2JvcmRlci10b3Atd2lkdGg6dmFyKC0tY2xyLXRhYmxlLWJvcmRlcndpZHRoLCAuMDVyZW0pO2Jv''@;'; + put 'put ''cmRlci10b3AtY29sb3I6I2NjYztib3JkZXItdG9wLWNvbG9yOnZhcigtLWNsci10YWJsZS1ib3JkZXItY29sb3IsICNjY2NjY2MpfS5kYXRhZ3JpZCAuZGF0YWdyaWQtaGVhZGVyIC5kYXRhZ3JpZC1jb2x1bW46Zmlyc3QtY2hpbGR7Ym9yZGVyLXJhZGl1czowO2JvcmRlci10b3AtbGVmdC1y''@;'; + put 'put ''YWRpdXM6LjFyZW07Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czp2YXIoLS1jbHItdGFibGUtY29ybmVyY2VsbHJhZGl1cywgLjFyZW0pfS5kYXRhZ3JpZCAuZGF0YWdyaWQtaGVhZGVyIC5kYXRhZ3JpZC1jb2x1bW46bGFzdC1jaGlsZHtib3JkZXItcmFkaXVzOjA7Ym9yZGVyLXRvcC1yaWdodC1y''@;'; + put 'put ''YWRpdXM6LjFyZW07Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6dmFyKC0tY2xyLXRhYmxlLWNvcm5lcmNlbGxyYWRpdXMsIC4xcmVtKX0uZGF0YWdyaWQgLmRhdGFncmlkLWJvZHk6bGFzdC1jaGlsZCAuZGF0YWdyaWQtcm93Omxhc3QtY2hpbGQgLmRhdGFncmlkLWNlbGw6Zmlyc3QtY2hpbGR7''@;'; + put 'put ''Ym9yZGVyLXJhZGl1czowO2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6LjFyZW07Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czp2YXIoLS1jbHItdGFibGUtY29ybmVyY2VsbHJhZGl1cywgLjFyZW0pfS5kYXRhZ3JpZCAuZGF0YWdyaWQtYm9keTpsYXN0LWNoaWxkIC5kYXRhZ3JpZC1yb3c6''@;'; + put 'put ''bGFzdC1jaGlsZCAuZGF0YWdyaWQtY2VsbDpsYXN0LWNoaWxke2JvcmRlci1yYWRpdXM6MDtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czouMXJlbTtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czp2YXIoLS1jbHItdGFibGUtY29ybmVyY2VsbHJhZGl1cywgLjFyZW0pfS5kYXRhZ3JpZC1j''@;'; + put 'put ''b21wYWN0IC5kYXRhZ3JpZC1jb2x1bW4sLmRhdGFncmlkLWNvbXBhY3QgLmRhdGFncmlkLWNlbGx7cGFkZGluZy10b3A6LjNyZW07cGFkZGluZy1ib3R0b206LjI1cmVtfS5kYXRhZ3JpZC1ob3N0e2Rpc3BsYXk6ZmxleDtmbGV4LWZsb3c6Y29sdW1uIG5vd3JhcDtwb3NpdGlvbjpyZWxhdGl2''@;'; + put 'put ''ZX0uZGF0YWdyaWR7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czowO2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjA7LW1zLW92ZXJmbG93LXN0eWxlOi1tcy1hdXRvaGlkaW5nLXNjcm9sbGJhcjtvdmVyZmxvdzphdXRvO2ZsZXg6MSAxIGF1dG87bWFyZ2luLXRvcDouNnJlbX0uZGF0YWdy''@;'; + put 'put ''aWQtY29udGFpbmVye3dpZHRoOmF1dG87Zm9udC1zaXplOi42NXJlbTtwYWRkaW5nOi41NXJlbSAuNnJlbX0uZGF0YWdyaWQtZXhwYW5kYWJsZS1jYXJldHtwYWRkaW5nOi4xcmVtIC4ycmVtIC4xNXJlbTt0ZXh0LWFsaWduOmNlbnRlcn0uZGF0YWdyaWQtZXhwYW5kYWJsZS1jYXJldCAuZGF0''@;'; + put 'put ''YWdyaWQtZXhwYW5kYWJsZS1jYXJldC1idXR0b257LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7LW1vei1hcHBlYXJhbmNlOm5vbmU7LW1zLWFwcGVhcmFuY2U6bm9uZTstby1hcHBlYXJhbmNlOm5vbmU7bWFyZ2luOjA7cGFkZGluZzowO2JvcmRlcjowO2JvcmRlci1yYWRpdXM6MDtib3gtc2hh''@;'; + put 'put ''ZG93Om5vbmU7YmFja2dyb3VuZDowIDA7Y3Vyc29yOnBvaW50ZXI7aGVpZ2h0OjEuNXJlbTt3aWR0aDoxLjVyZW19YnV0dG9uLmRhdGFncmlkLWV4cGFuZGFibGUtY2FyZXQgLmRhdGFncmlkLWV4cGFuZGFibGUtY2FyZXQtYnV0dG9ue2N1cnNvcjpwb2ludGVyfS5kYXRhZ3JpZC1leHBhbmRh''@;'; + put 'put ''YmxlLWNhcmV0IC5kYXRhZ3JpZC1leHBhbmRhYmxlLWNhcmV0LWljb257Y29sb3I6IzhjOGM4Yztjb2xvcjp2YXIoLS1jbHItZGF0YWdyaWQtaWNvbi1jb2xvciwgIzhjOGM4Yyk7bWFyZ2luLXRvcDouMTVyZW19LmRhdGFncmlkLWV4cGFuZGFibGUtY2FyZXQgLmRhdGFncmlkLWV4cGFuZGFi''@;'; + put 'put ''bGUtY2FyZXQtaWNvbiBzdmd7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjJzIGVhc2UtaW4tb3V0fS5kYXRhZ3JpZC1leHBhbmRhYmxlLWNhcmV0IC5zcGlubmVye21hcmdpbi10b3A6LjNyZW19LmRhdGFncmlkLWV4cGFuZGFibGUtY2FyZXQuZGF0YWdyaWQtY29sdW1ue3BhZGRpbmc6LjU1cmVt''@;'; + put 'put ''IC42cmVtfS5kYXRhZ3JpZC1oZWFkZXIsLmRhdGFncmlkLWJvZHksLmRhdGFncmlkLXJvdywuZGF0YWdyaWQtY29sdW1uLC5kYXRhZ3JpZC1jZWxsLC5kYXRhZ3JpZC1maXhlZC1jb2x1bW57ZGlzcGxheTpibG9ja30uZGF0YWdyaWQtcm93e2JvcmRlci10b3Atc3R5bGU6c29saWQ7Ym9yZGVy''@;'; + put 'put ''LXRvcC13aWR0aDouMDVyZW07Ym9yZGVyLXRvcC13aWR0aDp2YXIoLS1jbHItdGFibGUtYm9yZGVyd2lkdGgsIC4wNXJlbSk7Ym9yZGVyLXRvcC1jb2xvcjojY2NjO2JvcmRlci10b3AtY29sb3I6dmFyKC0tY2xyLXRhYmxlLWJvcmRlci1jb2xvciwgI2NjY2NjYyl9LmRhdGFncmlkLXJvdzpm''@;'; + put 'put ''aXJzdC1vZi10eXBle2JvcmRlci10b3A6bm9uZX0uZGF0YWdyaWQtcm93OmhvdmVyLC5kYXRhZ3JpZC1yb3c6aG92ZXIgLmRhdGFncmlkLXJvdy1zdGlja3l7YmFja2dyb3VuZC1jb2xvcjojZThlOGU4O2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWRhdGFncmlkLXJvdy1ob3ZlciwgI2U4''@;'; + put 'put ''ZThlOCl9LmRhdGFncmlkLXJvdy5kYXRhZ3JpZC1zZWxlY3RlZCwuZGF0YWdyaWQtcm93LmRhdGFncmlkLXNlbGVjdGVkIC5kYXRhZ3JpZC1yb3ctc3RpY2t5e2NvbG9yOiMwMDA7Y29sb3I6dmFyKC0tY2xyLWRhdGFncmlkLXJvdy1zZWxlY3RlZCwgYmxhY2spO2JhY2tncm91bmQtY29sb3I6''@;'; + put 'put ''I2Q4ZTNlOTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1nbG9iYWwtc2VsZWN0aW9uLWNvbG9yLCAjZDhlM2U5KX0uZGF0YWdyaWQtcm93IC5kYXRhZ3JpZC1hY3Rpb24tb3ZlcmZsb3d7cG9zaXRpb246YWJzb2x1dGU7YmFja2dyb3VuZDojZmZmO2JhY2tncm91bmQ6dmFyKC0tY2xyLWRh''@;'; + put 'put ''dGFncmlkLXBvcG92ZXItYmctY29sb3IsIHdoaXRlKTtwYWRkaW5nOi4zcmVtO21hcmdpbi1sZWZ0Oi4zcmVtO2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItd2lkdGg6LjA1cmVtO2JvcmRlci13aWR0aDp2YXIoLS1jbHItZ2xvYmFsLWJvcmRlcndpZHRoLCAuMDVyZW0pO2JvcmRlci1jb2xv''@;'; + put 'put ''cjojY2NjO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItZGF0YWdyaWQtcG9wb3Zlci1ib3JkZXItY29sb3IsICNjY2NjY2MpO2JveC1zaGFkb3c6MCAuMDVyZW0gLjE1cmVtICM4YzhjOGM0MDtib3gtc2hhZG93OjAgLjA1cmVtIC4xNXJlbSB2YXIoLS1jbHItZGF0YWdyaWQtcG9wb3ZlcnMtYm94''@;'; + put 'put ''LXNoYWRvdy1jb2xvciwgcmdiYSgxNDAsIDE0MCwgMTQwLCAuMjUpKTtib3JkZXItcmFkaXVzOi4xNXJlbTtib3JkZXItcmFkaXVzOnZhcigtLWNsci1nbG9iYWwtYm9yZGVycmFkaXVzLCAuMTVyZW0pO2ZvbnQtd2VpZ2h0OjQwMDt3aGl0ZS1zcGFjZTpub3dyYXB9LmRhdGFncmlkLXJvdyAu''@;'; + put 'put ''ZGF0YWdyaWQtYWN0aW9uLW92ZXJmbG93OmJlZm9yZXtjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7cmlnaHQ6MTAwJTtoZWlnaHQ6MDt3aWR0aDowO21hcmdpbi10b3A6LS4zcmVtO2JvcmRlci10b3A6LjNyZW0gc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLWJvdHRvbTou''@;'; + put 'put ''M3JlbSBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItcmlnaHQtd2lkdGg6LjNyZW07Ym9yZGVyLXJpZ2h0LXN0eWxlOnNvbGlkO2JvcmRlci1yaWdodC1jb2xvcjojY2NjO2JvcmRlci1yaWdodC1jb2xvcjp2YXIoLS1jbHItZGF0YWdyaWQtcG9wb3Zlci1ib3JkZXItY29sb3IsICNjY2NjY2Mp''@;'; + put 'put ''fS5kYXRhZ3JpZC1yb3cgLmRhdGFncmlkLWFjdGlvbi1vdmVyZmxvdzphZnRlcntjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7cmlnaHQ6MTAwJTtoZWlnaHQ6MDt3aWR0aDowO21hcmdpbi10b3A6LS4yNXJlbTtib3JkZXItdG9wOi4yNXJlbSBzb2xpZCB0cmFuc3BhcmVu''@;'; + put 'put ''dDtib3JkZXItYm90dG9tOi4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItcmlnaHQtd2lkdGg6LjI1cmVtO2JvcmRlci1yaWdodC1zdHlsZTpzb2xpZDtib3JkZXItcmlnaHQtY29sb3I6I2ZmZjtib3JkZXItcmlnaHQtY29sb3I6dmFyKC0tY2xyLWRhdGFncmlkLXBvcG92ZXItYmct''@;'; + put 'put ''Y29sb3IsIHdoaXRlKX0uZGF0YWdyaWQtcm93IC5kYXRhZ3JpZC1hY3Rpb24tb3ZlcmZsb3cgLmFjdGlvbi1pdGVte2NvbG9yOiM2NjY7Y29sb3I6dmFyKC0tY2xyLWRyb3Bkb3duLXRleHQtY29sb3IsICM2NjY2NjYpO2ZvbnQtc2l6ZTouN3JlbTtsZXR0ZXItc3BhY2luZzpub3JtYWw7YmFj''@;'; + put 'put ''a2dyb3VuZDowIDA7Ym9yZGVyOjA7Y3Vyc29yOnBvaW50ZXI7ZGlzcGxheTpibG9jaztsaW5lLWhlaWdodDoxLjE1cmVtO21hcmdpbjowO3BhZGRpbmc6LjA1cmVtIDEuMnJlbSAwO3RleHQtYWxpZ246bGVmdDt3aWR0aDoxMDAlfS5kYXRhZ3JpZC1yb3cgLmRhdGFncmlkLWFjdGlvbi1vdmVy''@;'; + put 'put ''ZmxvdyAuYWN0aW9uLWl0ZW06aG92ZXIsLmRhdGFncmlkLXJvdyAuZGF0YWdyaWQtYWN0aW9uLW92ZXJmbG93IC5hY3Rpb24taXRlbTpmb2N1c3tiYWNrZ3JvdW5kLWNvbG9yOiNlOGU4ZTg7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItZGF0YWdyaWQtYWN0aW9uLXBvcG92ZXItaG92ZXIt''@;'; + put 'put ''Y29sb3IsICNlOGU4ZTgpO3RleHQtZGVjb3JhdGlvbjpub25lfS5kYXRhZ3JpZC1yb3cgLmRhdGFncmlkLWFjdGlvbi1vdmVyZmxvdyAuYWN0aW9uLWl0ZW0uYWN0aXZle2JhY2tncm91bmQ6I2U4ZThlODtiYWNrZ3JvdW5kOnZhcigtLWNsci1kYXRhZ3JpZC1yb3ctaG92ZXIsICNlOGU4ZTgp''@;'; + put 'put ''O2NvbG9yOiMwMDA7Y29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtMTAwMCwgYmxhY2spfS5kYXRhZ3JpZC1yb3cgLmRhdGFncmlkLWFjdGlvbi1vdmVyZmxvdyAuYWN0aW9uLWl0ZW06Zm9jdXN7b3V0bGluZTowfS5kYXRhZ3JpZC1yb3cgLmRhdGFncmlkLWFjdGlvbi1vdmVyZmxvdyAu''@;'; + put 'put ''YWN0aW9uLWl0ZW0uZGlzYWJsZWQsLmRhdGFncmlkLXJvdyAuZGF0YWdyaWQtYWN0aW9uLW92ZXJmbG93IC5hY3Rpb24taXRlbTpkaXNhYmxlZHtjdXJzb3I6bm90LWFsbG93ZWQ7b3BhY2l0eTouNDstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZX0uZGF0YWdyaWQt''@;'; + put 'put ''cm93IC5kYXRhZ3JpZC1hY3Rpb24tb3ZlcmZsb3cgLmFjdGlvbi1pdGVtLmRpc2FibGVkOmhvdmVyLC5kYXRhZ3JpZC1yb3cgLmRhdGFncmlkLWFjdGlvbi1vdmVyZmxvdyAuYWN0aW9uLWl0ZW06ZGlzYWJsZWQ6aG92ZXJ7YmFja2dyb3VuZDowIDB9LmRhdGFncmlkLXJvdyAuZGF0YWdyaWQt''@;'; + put 'put ''YWN0aW9uLW92ZXJmbG93IC5hY3Rpb24taXRlbS5kaXNhYmxlZDphY3RpdmUsLmRhdGFncmlkLXJvdyAuZGF0YWdyaWQtYWN0aW9uLW92ZXJmbG93IC5hY3Rpb24taXRlbS5kaXNhYmxlZDpmb2N1cywuZGF0YWdyaWQtcm93IC5kYXRhZ3JpZC1hY3Rpb24tb3ZlcmZsb3cgLmFjdGlvbi1pdGVt''@;'; + put 'put ''OmRpc2FibGVkOmFjdGl2ZSwuZGF0YWdyaWQtcm93IC5kYXRhZ3JpZC1hY3Rpb24tb3ZlcmZsb3cgLmFjdGlvbi1pdGVtOmRpc2FibGVkOmZvY3Vze2JhY2tncm91bmQ6MCAwO2JveC1zaGFkb3c6bm9uZX0uZGF0YWdyaWQtcm93IC5kYXRhZ3JpZC1hY3Rpb24tb3ZlcmZsb3cgLmFjdGlvbi1p''@;'; + put 'put ''dGVtIGNkcy1pY29uLC5kYXRhZ3JpZC1yb3cgLmRhdGFncmlkLWFjdGlvbi1vdmVyZmxvdyAuYWN0aW9uLWl0ZW0gY2xyLWljb257dmVydGljYWwtYWxpZ246bWlkZGxlO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLC0uMDVyZW0sMCl9LmRhdGFncmlkLXJvdyAuZGF0YWdyaWQtYWN0aW9uLW92''@;'; + put 'put ''ZXJmbG93e3Bvc2l0aW9uOmFic29sdXRlO2JhY2tncm91bmQ6I2ZmZjtiYWNrZ3JvdW5kOnZhcigtLWNsci1kYXRhZ3JpZC1wb3BvdmVyLWJnLWNvbG9yLCB3aGl0ZSk7cGFkZGluZzouM3JlbTttYXJnaW4tbGVmdDouM3JlbTtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLXdpZHRoOi4wNXJl''@;'; + put 'put ''bTtib3JkZXItd2lkdGg6dmFyKC0tY2xyLWdsb2JhbC1ib3JkZXJ3aWR0aCwgLjA1cmVtKTtib3JkZXItY29sb3I6I2NjYztib3JkZXItY29sb3I6dmFyKC0tY2xyLWRhdGFncmlkLXBvcG92ZXItYm9yZGVyLWNvbG9yLCAjY2NjY2NjKTtib3gtc2hhZG93OjAgLjA1cmVtIC4xNXJlbSAjOGM4''@;'; + put 'put ''YzhjNDA7Ym94LXNoYWRvdzowIC4wNXJlbSAuMTVyZW0gdmFyKC0tY2xyLWRhdGFncmlkLXBvcG92ZXJzLWJveC1zaGFkb3ctY29sb3IsIHJnYmEoMTQwLCAxNDAsIDE0MCwgLjI1KSk7Ym9yZGVyLXJhZGl1czouMTVyZW07Ym9yZGVyLXJhZGl1czp2YXIoLS1jbHItZ2xvYmFsLWJvcmRlcnJh''@;'; + put 'put ''ZGl1cywgLjE1cmVtKTtmb250LXdlaWdodDo0MDA7d2hpdGUtc3BhY2U6bm93cmFwfS5kYXRhZ3JpZC1yb3cgLmRhdGFncmlkLWFjdGlvbi1vdmVyZmxvdzpiZWZvcmV7Y29udGVudDoiIjtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NTAlO3JpZ2h0OjEwMCU7d2lkdGg6MDtoZWlnaHQ6MDttYXJn''@;'; + put 'put ''aW4tdG9wOi0uM3JlbTtib3JkZXItdG9wOi4zcmVtIHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1ib3R0b206LjNyZW0gc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLXJpZ2h0LXdpZHRoOi4zcmVtO2JvcmRlci1yaWdodC1zdHlsZTpzb2xpZDtib3JkZXItcmlnaHQtY29sb3I6I2NjYztib3Jk''@;'; + put 'put ''ZXItcmlnaHQtY29sb3I6dmFyKC0tY2xyLWRhdGFncmlkLXBvcG92ZXItYm9yZGVyLWNvbG9yLCAjY2NjY2NjKX0uZGF0YWdyaWQtcm93IC5kYXRhZ3JpZC1hY3Rpb24tb3ZlcmZsb3c6YWZ0ZXJ7Y29udGVudDoiIjtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NTAlO3JpZ2h0OjEwMCU7d2lkdGg6''@;'; + put 'put ''MDtoZWlnaHQ6MDttYXJnaW4tdG9wOi0uMjVyZW07Ym9yZGVyLXRvcDouMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLWJvdHRvbTouMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLXJpZ2h0LXdpZHRoOi4yNXJlbTtib3JkZXItcmlnaHQtc3R5bGU6c29saWQ7Ym9yZGVyLXJp''@;'; + put 'put ''Z2h0LWNvbG9yOiNmZmY7Ym9yZGVyLXJpZ2h0LWNvbG9yOnZhcigtLWNsci1kYXRhZ3JpZC1wb3BvdmVyLWJnLWNvbG9yLCB3aGl0ZSl9LmRhdGFncmlkLXJvdyAuZGF0YWdyaWQtYWN0aW9uLW92ZXJmbG93IC5hY3Rpb24taXRlbXtjb2xvcjojNjY2O2NvbG9yOnZhcigtLWNsci1kcm9wZG93''@;'; + put 'put ''bi10ZXh0LWNvbG9yLCAjNjY2NjY2KTtmb250LXNpemU6LjdyZW07bGV0dGVyLXNwYWNpbmc6bm9ybWFsO2JhY2tncm91bmQ6MCAwO2JvcmRlcjowO2N1cnNvcjpwb2ludGVyO2Rpc3BsYXk6YmxvY2s7bGluZS1oZWlnaHQ6MS4xNXJlbTttYXJnaW46MDtwYWRkaW5nOi4wNXJlbSAxLjJyZW0g''@;'; + put 'put ''MDt0ZXh0LWFsaWduOmxlZnQ7d2lkdGg6MTAwJX0uZGF0YWdyaWQtcm93IC5kYXRhZ3JpZC1hY3Rpb24tb3ZlcmZsb3cgLmFjdGlvbi1pdGVtOmhvdmVyLC5kYXRhZ3JpZC1yb3cgLmRhdGFncmlkLWFjdGlvbi1vdmVyZmxvdyAuYWN0aW9uLWl0ZW06Zm9jdXN7YmFja2dyb3VuZC1jb2xvcjoj''@;'; + put 'put ''ZThlOGU4O2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWRhdGFncmlkLWFjdGlvbi1wb3BvdmVyLWhvdmVyLWNvbG9yLCAjZThlOGU4KTt0ZXh0LWRlY29yYXRpb246bm9uZX0uZGF0YWdyaWQtcm93IC5kYXRhZ3JpZC1hY3Rpb24tb3ZlcmZsb3cgLmFjdGlvbi1pdGVtLmFjdGl2ZXtiYWNr''@;'; + put 'put ''Z3JvdW5kOiNlOGU4ZTg7YmFja2dyb3VuZDp2YXIoLS1jbHItZGF0YWdyaWQtcm93LWhvdmVyLCAjZThlOGU4KTtjb2xvcjojMDAwO2NvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTEwMDAsIGJsYWNrKX0uZGF0YWdyaWQtcm93IC5kYXRhZ3JpZC1hY3Rpb24tb3ZlcmZsb3cgLmFjdGlv''@;'; + put 'put ''bi1pdGVtOmZvY3Vze291dGxpbmU6MH0uZGF0YWdyaWQtcm93IC5kYXRhZ3JpZC1hY3Rpb24tb3ZlcmZsb3cgLmFjdGlvbi1pdGVtLmRpc2FibGVkLC5kYXRhZ3JpZC1yb3cgLmRhdGFncmlkLWFjdGlvbi1vdmVyZmxvdyAuYWN0aW9uLWl0ZW06ZGlzYWJsZWR7Y3Vyc29yOm5vdC1hbGxvd2Vk''@;'; + put 'put ''O29wYWNpdHk6LjQ7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmV9LmRhdGFncmlkLXJvdyAuZGF0YWdyaWQtYWN0aW9uLW92ZXJmbG93IC5hY3Rpb24taXRlbS5kaXNhYmxlZDpob3ZlciwuZGF0YWdyaWQtcm93IC5kYXRhZ3JpZC1hY3Rpb24tb3ZlcmZsb3cgLmFj''@;'; + put 'put ''dGlvbi1pdGVtOmRpc2FibGVkOmhvdmVye2JhY2tncm91bmQ6MCAwfS5kYXRhZ3JpZC1yb3cgLmRhdGFncmlkLWFjdGlvbi1vdmVyZmxvdyAuYWN0aW9uLWl0ZW0uZGlzYWJsZWQ6YWN0aXZlLC5kYXRhZ3JpZC1yb3cgLmRhdGFncmlkLWFjdGlvbi1vdmVyZmxvdyAuYWN0aW9uLWl0ZW0uZGlz''@;'; + put 'put ''YWJsZWQ6Zm9jdXMsLmRhdGFncmlkLXJvdyAuZGF0YWdyaWQtYWN0aW9uLW92ZXJmbG93IC5hY3Rpb24taXRlbTpkaXNhYmxlZDphY3RpdmUsLmRhdGFncmlkLXJvdyAuZGF0YWdyaWQtYWN0aW9uLW92ZXJmbG93IC5hY3Rpb24taXRlbTpkaXNhYmxlZDpmb2N1c3tiYWNrZ3JvdW5kOjAgMDti''@;'; + put 'put ''b3gtc2hhZG93Om5vbmV9LmRhdGFncmlkLXJvdyAuZGF0YWdyaWQtYWN0aW9uLW92ZXJmbG93IC5hY3Rpb24taXRlbSBjZHMtaWNvbiwuZGF0YWdyaWQtcm93IC5kYXRhZ3JpZC1hY3Rpb24tb3ZlcmZsb3cgLmFjdGlvbi1pdGVtIGNsci1pY29ue3ZlcnRpY2FsLWFsaWduOm1pZGRsZTt0cmFu''@;'; + put 'put ''c2Zvcm06dHJhbnNsYXRlM2QoMCwtLjA1cmVtLDApfS5kYXRhZ3JpZC1yb3cgLmRhdGFncmlkLWFjdGlvbi1vdmVyZmxvd3twb3NpdGlvbjphYnNvbHV0ZTtiYWNrZ3JvdW5kOiNmZmY7YmFja2dyb3VuZDp2YXIoLS1jbHItZGF0YWdyaWQtcG9wb3Zlci1iZy1jb2xvciwgd2hpdGUpO3BhZGRp''@;'; + put 'put ''bmc6LjNyZW07bWFyZ2luLWxlZnQ6LjNyZW07Ym9yZGVyLXdpZHRoOi4wNXJlbTtib3JkZXItd2lkdGg6dmFyKC0tY2xyLWdsb2JhbC1ib3JkZXJ3aWR0aCwgLjA1cmVtKTtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLWNvbG9yOiNjY2M7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1kYXRhZ3Jp''@;'; + put 'put ''ZC1wb3BvdmVyLWJvcmRlci1jb2xvciwgI2NjY2NjYyk7Ym94LXNoYWRvdzowIC4wNXJlbSAuMTVyZW0gIzhjOGM4YzQwO2JveC1zaGFkb3c6MCAuMDVyZW0gLjE1cmVtIHZhcigtLWNsci1kYXRhZ3JpZC1wb3BvdmVycy1ib3gtc2hhZG93LWNvbG9yLCByZ2JhKDE0MCwgMTQwLCAxNDAsIC4y''@;'; + put 'put ''NSkpO2JvcmRlci1jb2xvcjouMTVyZW07Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1nbG9iYWwtYm9yZGVycmFkaXVzLCAuMTVyZW0pO2ZvbnQtd2VpZ2h0OjQwMDt3aGl0ZS1zcGFjZTpub3dyYXB9LmRhdGFncmlkLXJvdyAuZGF0YWdyaWQtYWN0aW9uLW92ZXJmbG93OmJlZm9yZXtjb250ZW50''@;'; + put 'put ''OiIiO3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7cmlnaHQ6MTAwJTt3aWR0aDowO2hlaWdodDowO21hcmdpbi10b3A6LS4zcmVtO2JvcmRlci1yaWdodDouM3JlbSBzb2xpZDtib3JkZXItcmlnaHQtY29sb3I6I2NjYztib3JkZXItcmlnaHQtY29sb3I6dmFyKC0tY2xyLWRhdGFncmlkLXBv''@;'; + put 'put ''cG92ZXItYm9yZGVyLWNvbG9yLCAjY2NjY2NjKTtib3JkZXItdG9wOi4zcmVtIHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1ib3R0b206LjNyZW0gc29saWQgdHJhbnNwYXJlbnR9LmRhdGFncmlkLXJvdyAuZGF0YWdyaWQtYWN0aW9uLW92ZXJmbG93OmFmdGVye2NvbnRlbnQ6IiI7cG9zaXRp''@;'; + put 'put ''b246YWJzb2x1dGU7dG9wOjUwJTtyaWdodDoxMDAlO3dpZHRoOjA7aGVpZ2h0OjA7bWFyZ2luLXRvcDotLjI1cmVtO2JvcmRlci1yaWdodDouMjVyZW0gc29saWQgI2ZmZjtib3JkZXItdG9wOi4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItYm90dG9tOi4yNXJlbSBzb2xpZCB0cmFu''@;'; + put 'put ''c3BhcmVudH0uZGF0YWdyaWQtcm93IC5kYXRhZ3JpZC1hY3Rpb24tb3ZlcmZsb3cgLmFjdGlvbi1pdGVte2NvbG9yOiM2NjY7Y29sb3I6dmFyKC0tY2xyLWRyb3Bkb3duLXRleHQtY29sb3IsICM2NjY2NjYpO2ZvbnQtc2l6ZTouN3JlbTtsZXR0ZXItc3BhY2luZzpub3JtYWw7YmFja2dyb3Vu''@;'; + put 'put ''ZDowIDA7Ym9yZGVyOjA7Y3Vyc29yOnBvaW50ZXI7ZGlzcGxheTpibG9jaztsaW5lLWhlaWdodDoxLjE1cmVtO21hcmdpbjowO3BhZGRpbmc6LjA1cmVtIDEuMnJlbSAwO3RleHQtYWxpZ246bGVmdDt3aWR0aDoxMDAlfS5kYXRhZ3JpZC1yb3cgLmRhdGFncmlkLWFjdGlvbi1vdmVyZmxvdyAu''@;'; + put 'put ''YWN0aW9uLWl0ZW06aG92ZXIsLmRhdGFncmlkLXJvdyAuZGF0YWdyaWQtYWN0aW9uLW92ZXJmbG93IC5hY3Rpb24taXRlbTpmb2N1c3t0ZXh0LWRlY29yYXRpb246bm9uZTtiYWNrZ3JvdW5kLWNvbG9yOiNlOGU4ZTg7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItZGF0YWdyaWQtYWN0aW9u''@;'; + put 'put ''LXBvcG92ZXItaG92ZXItY29sb3IsICNlOGU4ZTgpfS5kYXRhZ3JpZC1yb3cgLmRhdGFncmlkLWFjdGlvbi1vdmVyZmxvdyAuYWN0aW9uLWl0ZW0uYWN0aXZle2JhY2tncm91bmQ6I2U4ZThlODtiYWNrZ3JvdW5kOnZhcigtLWNsci1kYXRhZ3JpZC1yb3ctaG92ZXIsICNlOGU4ZTgpO2NvbG9y''@;'; + put 'put ''OiMwMDA7Y29sb3I6dmFyKC0tY2xyLWRhdGFncmlkLXJvdy1ob3Zlci1mb250LWNvbG9yLCBibGFjayl9LmRhdGFncmlkLXJvdyAuZGF0YWdyaWQtYWN0aW9uLW92ZXJmbG93IC5hY3Rpb24taXRlbTpmb2N1c3tvdXRsaW5lOjB9LmRhdGFncmlkLXJvdyAuZGF0YWdyaWQtYWN0aW9uLW92ZXJm''@;'; + put 'put ''bG93IC5hY3Rpb24taXRlbS5kaXNhYmxlZCwuZGF0YWdyaWQtcm93IC5kYXRhZ3JpZC1hY3Rpb24tb3ZlcmZsb3cgLmFjdGlvbi1pdGVtOmRpc2FibGVke2N1cnNvcjpub3QtYWxsb3dlZDtvcGFjaXR5Oi40Oy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lfS5kYXRh''@;'; + put 'put ''Z3JpZC1yb3cgLmRhdGFncmlkLWFjdGlvbi1vdmVyZmxvdyAuYWN0aW9uLWl0ZW0uZGlzYWJsZWQ6aG92ZXIsLmRhdGFncmlkLXJvdyAuZGF0YWdyaWQtYWN0aW9uLW92ZXJmbG93IC5hY3Rpb24taXRlbTpkaXNhYmxlZDpob3ZlcntiYWNrZ3JvdW5kOjAgMH0uZGF0YWdyaWQtcm93IC5kYXRh''@;'; + put 'put ''Z3JpZC1hY3Rpb24tb3ZlcmZsb3cgLmFjdGlvbi1pdGVtLmRpc2FibGVkOmFjdGl2ZSwuZGF0YWdyaWQtcm93IC5kYXRhZ3JpZC1hY3Rpb24tb3ZlcmZsb3cgLmFjdGlvbi1pdGVtLmRpc2FibGVkOmZvY3VzLC5kYXRhZ3JpZC1yb3cgLmRhdGFncmlkLWFjdGlvbi1vdmVyZmxvdyAuYWN0aW9u''@;'; + put 'put ''LWl0ZW06ZGlzYWJsZWQ6YWN0aXZlLC5kYXRhZ3JpZC1yb3cgLmRhdGFncmlkLWFjdGlvbi1vdmVyZmxvdyAuYWN0aW9uLWl0ZW06ZGlzYWJsZWQ6Zm9jdXN7YmFja2dyb3VuZDowIDA7Ym94LXNoYWRvdzpub25lfS5kYXRhZ3JpZC1yb3cgLmRhdGFncmlkLWFjdGlvbi1vdmVyZmxvdyAuYWN0''@;'; + put 'put ''aW9uLWl0ZW0gY2RzLWljb24sLmRhdGFncmlkLXJvdyAuZGF0YWdyaWQtYWN0aW9uLW92ZXJmbG93IC5hY3Rpb24taXRlbSBjbHItaWNvbnt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsLS4wNXJlbSwwKX0uZGF0YWdyaWQtcm93IC5kYXRhZ3JpZC1yb3ct''@;'; + put 'put ''ZGV0YWlsLXdyYXBwZXJ7ZmxleDoxIDEgYXV0bztkaXNwbGF5OmZsZXh9LmRhdGFncmlkLXJvdyAuZGF0YWdyaWQtcm93LWRldGFpbHt3aWR0aDphdXRvfS5kYXRhZ3JpZC1yb3cgLmRhdGFncmlkLXJvdy1kZXRhaWwgLmRhdGFncmlkLWNlbGx7cGFkZGluZy10b3A6MDtib3JkZXI6MH0uZGF0''@;'; + put 'put ''YWdyaWQtcm93IC5kYXRhZ3JpZC1zZWxlY3R7bWluLXdpZHRoOi40cmVtfS5kYXRhZ3JpZC1yb3cgLmRhdGFncmlkLXNpZ25wb3N0LXRyaWdnZXIgLnNpZ25wb3N0e21hcmdpbjotLjM2cmVtIDA7aGVpZ2h0OjEuMjM2cmVtfS5kYXRhZ3JpZC1yb3cgLmRhdGFncmlkLXNpZ25wb3N0LXRyaWdn''@;'; + put 'put ''ZXIgLnNpZ25wb3N0IC5zaWducG9zdC10cmlnZ2Vye2hlaWdodDppbmhlcml0O2xpbmUtaGVpZ2h0OjEuMnJlbX0uZGF0YWdyaWQtcm93IC5kYXRhZ3JpZC1yb3ctc3RpY2t5e3otaW5kZXg6NTAwfS5kYXRhZ3JpZC1yb3ctc3RpY2t5e2JhY2tncm91bmQtY29sb3I6I2ZmZjtiYWNrZ3JvdW5k''@;'; + put 'put ''LWNvbG9yOnZhcigtLWNsci10YWJsZS1iZ2NvbG9yLCB3aGl0ZSk7ZGlzcGxheTpmbGV4O2ZsZXgtd3JhcDpub3dyYXA7cG9zaXRpb246c3RpY2t5O2xlZnQ6MDt6LWluZGV4OjUwMn0uZGF0YWdyaWQtcm93LXN0aWNreSAuZGF0YWdyaWQtY2VsbDpsYXN0LWNoaWxkOmFmdGVye2NvbnRlbnQ6''@;'; + put 'put ''IiI7d2lkdGg6LjA1cmVtO2hlaWdodDpjYWxjKDEwMCUgLSAuNXJlbSk7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MDt0b3A6LjI1cmVtO2JhY2tncm91bmQtY29sb3I6I2NjYztiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci10YWJsZS1ib3JkZXItY29sb3IsICNjY2NjY2MpfS5kYXRhZ3Jp''@;'; + put 'put ''ZC1yb3ctc2Nyb2xsYWJsZXtmbGV4OjEgMSBhdXRvO2Rpc3BsYXk6ZmxleDtmbGV4LWZsb3c6Y29sdW1uIG5vd3JhcH0uZGF0YWdyaWQtcm93LXNjcm9sbGFibGUuaXMtcmVwbGFjZWR7ZmxleC1kaXJlY3Rpb246cm93fS5kYXRhZ3JpZC1yb3ctc2Nyb2xsYWJsZS5pcy1yZXBsYWNlZCAuZGF0''@;'; + put 'put ''YWdyaWQtc2Nyb2xsaW5nLWNlbGxze2ZsZXg6MCAwIGF1dG99LmRhdGFncmlkLXJvdy1zY3JvbGxhYmxlIC5kYXRhZ3JpZC1jb2x1bW46bGFzdC1jaGlsZCAuZGF0YWdyaWQtY29sdW1uLXNlcGFyYXRvcntkaXNwbGF5Om5vbmV9LmRhdGFncmlkLXJvdy1mbGV4e2ZsZXg6MSAxIGF1dG87ZGlz''@;'; + put 'put ''cGxheTpmbGV4O2ZsZXgtZmxvdzpyb3cgbm93cmFwfS5kYXRhZ3JpZC1yb3ctZmxleCAuZGF0YWdyaWQtcm93LWRldGFpbHtkaXNwbGF5OmZsZXg7ZmxleC1mbG93OnJvdyBub3dyYXB9LmRhdGFncmlkLXJvdy1mbGV4IC5kYXRhZ3JpZC1yb3ctZGV0YWlsIC5kYXRhZ3JpZC1jZWxse3BhZGRp''@;'; + put 'put ''bmctdG9wOjB9LmRhdGFncmlkLXNjcm9sbGluZy1jZWxscywuZGF0YWdyaWQtc2Nyb2xsaW5nLWRldGFpbHN7ZGlzcGxheTpmbGV4O2ZsZXg6MSAxIGF1dG87ZmxleC1mbG93OnJvdyBub3dyYXB9LmRhdGFncmlkLWFjdGlvbi1iYXJ7bWFyZ2luLXRvcDoxLjJyZW19LmRhdGFncmlkLWFjdGlv''@;'; + put 'put ''bi1iYXJ+LmRhdGFncmlkLXNwaW5uZXJ7aGVpZ2h0OmNhbGMoMTAwJSAtIDEuMnJlbSk7dG9wOjEuMnJlbX0uZGF0YWdyaWQtaGVhZGVye3Bvc2l0aW9uOnN0aWNreTt0b3A6MDt6LWluZGV4OjUwMTt3aWR0aDphdXRvfS5kYXRhZ3JpZC1oZWFkZXIgLmRhdGFncmlkLWNvbHVtbntib3JkZXIt''@;'; + put 'put ''Ym90dG9tOm5vbmV9LmRhdGFncmlkLWhlYWRlciAuZGF0YWdyaWQtcm93e2JhY2tncm91bmQtY29sb3I6I2ZhZmFmYTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci10aGVhZC1iZ2NvbG9yLCAjZmFmYWZhKTtib3JkZXItdG9wOm5vbmU7Ym9yZGVyLWJvdHRvbS1zdHlsZTpzb2xpZDtib3Jk''@;'; + put 'put ''ZXItYm90dG9tLXdpZHRoOi4wNXJlbTtib3JkZXItYm90dG9tLXdpZHRoOnZhcigtLWNsci1nbG9iYWwtYm9yZGVyd2lkdGgsIC4wNXJlbSk7Ym9yZGVyLWJvdHRvbS1jb2xvcjojY2NjO2JvcmRlci1ib3R0b20tY29sb3I6dmFyKC0tY2xyLXRhYmxlLWJvcmRlci1jb2xvciwgI2NjY2NjYyl9''@;'; + put 'put ''LmRhdGFncmlkLWhlYWRlciAuZGF0YWdyaWQtcm93IC5kYXRhZ3JpZC1yb3ctc3RpY2t5LC5kYXRhZ3JpZC1oZWFkZXIgLmRhdGFncmlkLXJvdzpob3ZlciwuZGF0YWdyaWQtaGVhZGVyIC5kYXRhZ3JpZC1yb3c6aG92ZXIgLmRhdGFncmlkLXJvdy1zdGlja3l7YmFja2dyb3VuZC1jb2xvcjoj''@;'; + put 'put ''ZmFmYWZhO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLXRoZWFkLWJnY29sb3IsICNmYWZhZmEpfS5kYXRhZ3JpZC1oZWFkZXIgLmRhdGFncmlkLXJvdy1zY3JvbGxhYmxle2ZsZXgtZGlyZWN0aW9uOnJvd30uZGF0YWdyaWQtdGFibGUtd3JhcHBlcntkaXNwbGF5OmZsZXg7ZmxleDoxIDEg''@;'; + put 'put ''YXV0bzttaW4taGVpZ2h0OjEwMCV9LmRhdGFncmlkLXRhYmxle2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47ZmxleDoxIDEgYXV0bzthbGlnbi1jb250ZW50OmZsZXgtc3RhcnR9LmRhdGFncmlkLXRhYmxlIC5kYXRhZ3JpZC1ib2R5e3dpZHRoOmF1dG99LmRhdGFncmlkLXRh''@;'; + put 'put ''YmxlIC5kYXRhZ3JpZC1jb2x1bW57dGV4dC1hbGlnbjpsZWZ0O21pbi13aWR0aDo0LjhyZW07ZGlzcGxheTpmbGV4O2ZsZXg6MSAxIGF1dG87dmVydGljYWwtYWxpZ246dG9wO2JvcmRlcjowfS5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtY29sdW1uOmZvY3Vze291dGxpbmU6LXdlYmtpdC1m''@;'; + put 'put ''b2N1cy1yaW5nLWNvbG9yIHNvbGlkIC4xcmVtO291dGxpbmUtb2Zmc2V0Oi0uMXJlbX0uZGF0YWdyaWQtdGFibGUgLmRhdGFncmlkLWNvbHVtbiBjbHItZGctZmlsdGVyLC5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtY29sdW1uIGNsci1kZy1zdHJpbmctZmlsdGVyLC5kYXRhZ3JpZC10YWJs''@;'; + put 'put ''ZSAuZGF0YWdyaWQtY29sdW1uIGNsci1kZy1udW1lcmljLWZpbHRlcntkaXNwbGF5OmZsZXg7b3JkZXI6OTk7bWFyZ2luLWxlZnQ6YXV0b30uZGF0YWdyaWQtdGFibGUgLmRhdGFncmlkLWNvbHVtbiAuZGF0YWdyaWQtZmlsdGVyLWlucHV0LXNwYWNlcnt3aWR0aDouNnJlbTtkaXNwbGF5Omlu''@;'; + put 'put ''bGluZS1ibG9ja30uZGF0YWdyaWQtdGFibGUgLmRhdGFncmlkLWNvbHVtbiAuZGF0YWdyaWQtbnVtZXJpYy1maWx0ZXItaW5wdXR7d2lkdGg6My45cmVtfS5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtY29sdW1uIC5kYXRhZ3JpZC1maWx0ZXItdG9nZ2xley13ZWJraXQtYXBwZWFyYW5jZTpu''@;'; + put 'put ''b25lOy1tb3otYXBwZWFyYW5jZTpub25lOy1tcy1hcHBlYXJhbmNlOm5vbmU7LW8tYXBwZWFyYW5jZTpub25lO21hcmdpbjowO3BhZGRpbmc6MDtib3JkZXI6MDtib3JkZXItcmFkaXVzOjA7Ym94LXNoYWRvdzpub25lO2JhY2tncm91bmQ6MCAwO2N1cnNvcjpwb2ludGVyO2Zsb2F0OnJpZ2h0''@;'; + put 'put ''O3ZlcnRpY2FsLWFsaWduOm1pZGRsZTtoZWlnaHQ6LjdyZW07d2lkdGg6LjdyZW07bWFyZ2luLWxlZnQ6LjNyZW07YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O2JhY2tncm91bmQtc2l6ZTpjb250YWlufWJ1dHRvbi5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtY29sdW1uIC5kYXRhZ3Jp''@;'; + put 'put ''ZC1maWx0ZXItdG9nZ2xle2N1cnNvcjpwb2ludGVyfS5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtY29sdW1uIC5kYXRhZ3JpZC1maWx0ZXItdG9nZ2xlIGNkcy1pY29uLC5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtY29sdW1uIC5kYXRhZ3JpZC1maWx0ZXItdG9nZ2xlIGNsci1pY29ue2Nv''@;'; + put 'put ''bG9yOiM4YzhjOGM7Y29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNjAwLCAjOGM4YzhjKX0uZGF0YWdyaWQtdGFibGUgLmRhdGFncmlkLWNvbHVtbiAuZGF0YWdyaWQtZmlsdGVyLXRvZ2dsZTpob3ZlciBjZHMtaWNvbiwuZGF0YWdyaWQtdGFibGUgLmRhdGFncmlkLWNvbHVtbiAuZGF0''@;'; + put 'put ''YWdyaWQtZmlsdGVyLXRvZ2dsZTpob3ZlciBjbHItaWNvbntjb2xvcjojMDA3MmEzO2NvbG9yOnZhcigtLWNsci1jb2xvci1hY3Rpb24tNjAwLCAjMDA3MmEzKX0uZGF0YWdyaWQtdGFibGUgLmRhdGFncmlkLWNvbHVtbiAuZGF0YWdyaWQtZmlsdGVyLXRvZ2dsZS5kYXRhZ3JpZC1maWx0ZXIt''@;'; + put 'put ''b3BlbiBjZHMtaWNvbiwuZGF0YWdyaWQtdGFibGUgLmRhdGFncmlkLWNvbHVtbiAuZGF0YWdyaWQtZmlsdGVyLXRvZ2dsZS5kYXRhZ3JpZC1maWx0ZXItb3BlbiBjbHItaWNvbntjb2xvcjojMDA3MmEzO2NvbG9yOnZhcigtLWNsci1jb2xvci1hY3Rpb24tNjAwLCAjMDA3MmEzKX0uZGF0YWdy''@;'; + put 'put ''aWQtdGFibGUgLmRhdGFncmlkLWNvbHVtbiAuZGF0YWdyaWQtZmlsdGVyLXRvZ2dsZS5kYXRhZ3JpZC1maWx0ZXJlZCBjZHMtaWNvbiwuZGF0YWdyaWQtdGFibGUgLmRhdGFncmlkLWNvbHVtbiAuZGF0YWdyaWQtZmlsdGVyLXRvZ2dsZS5kYXRhZ3JpZC1maWx0ZXJlZCBjbHItaWNvbntjb2xv''@;'; + put 'put ''cjojMDA3MmEzO2NvbG9yOnZhcigtLWNsci1jb2xvci1hY3Rpb24tNjAwLCAjMDA3MmEzKX0uZGF0YWdyaWQtdGFibGUgLmRhdGFncmlkLWNvbHVtbiAuZGF0YWdyaWQtZmlsdGVye3RvcDoxMDAlO3JpZ2h0OjA7bWFyZ2luLXRvcDouMjRyZW07YmFja2dyb3VuZDojZmZmO2JhY2tncm91bmQ6''@;'; + put 'put ''dmFyKC0tY2xyLWRhdGFncmlkLXBvcG92ZXItYmctY29sb3IsIHdoaXRlKTtwYWRkaW5nOi45cmVtO2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItd2lkdGg6LjA1cmVtO2JvcmRlci13aWR0aDp2YXIoLS1jbHItZ2xvYmFsLWJvcmRlcndpZHRoLCAuMDVyZW0pO2JvcmRlci1jb2xvcjojY2Nj''@;'; + put 'put ''O2JvcmRlci1jb2xvcjp2YXIoLS1jbHItZGF0YWdyaWQtcG9wb3Zlci1ib3JkZXItY29sb3IsICNjY2NjY2MpO2JveC1zaGFkb3c6MCAuMDVyZW0gLjE1cmVtICM4YzhjOGM0MDtib3gtc2hhZG93OjAgLjA1cmVtIC4xNXJlbSB2YXIoLS1jbHItZGF0YWdyaWQtcG9wb3ZlcnMtYm94LXNoYWRv''@;'; + put 'put ''dy1jb2xvciwgcmdiYSgxNDAsIDE0MCwgMTQwLCAuMjUpKTtib3JkZXItcmFkaXVzOi4xNXJlbTtib3JkZXItcmFkaXVzOnZhcigtLWNsci1nbG9iYWwtYm9yZGVycmFkaXVzLCAuMTVyZW0pO2ZvbnQtd2VpZ2h0OjQwMH0uZGF0YWdyaWQtdGFibGUgLmRhdGFncmlkLWNvbHVtbiAuZGF0YWdy''@;'; + put 'put ''aWQtZmlsdGVyIC5kYXRhZ3JpZC1maWx0ZXItY2xvc2Utd3JhcHBlcnt0ZXh0LWFsaWduOnJpZ2h0fS5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtY29sdW1uIC5kYXRhZ3JpZC1maWx0ZXIgLmRhdGFncmlkLWZpbHRlci1jbG9zZS13cmFwcGVyIC5jbG9zZXtmbG9hdDpub25lfS5kYXRhZ3Jp''@;'; + put 'put ''ZC10YWJsZSAuZGF0YWdyaWQtY29sdW1uIC5kYXRhZ3JpZC1maWx0ZXIgLmRhdGFncmlkLWZpbHRlci1hcHBseXttYXJnaW4tYm90dG9tOjB9LmRhdGFncmlkLXRhYmxlIC5kYXRhZ3JpZC1jb2x1bW4gLmRhdGFncmlkLWZpbHRlcnt0b3A6MTAwJTtyaWdodDowO21hcmdpbi10b3A6LjI0cmVt''@;'; + put 'put ''O2JhY2tncm91bmQ6I2ZmZjtiYWNrZ3JvdW5kOnZhcigtLWNsci1kYXRhZ3JpZC1wb3BvdmVyLWJnLWNvbG9yLCB3aGl0ZSk7cGFkZGluZzouOXJlbTtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLXdpZHRoOi4wNXJlbTtib3JkZXItd2lkdGg6dmFyKC0tY2xyLWdsb2JhbC1ib3JkZXJ3aWR0''@;'; + put 'put ''aCwgLjA1cmVtKTtib3JkZXItY29sb3I6I2NjYztib3JkZXItY29sb3I6dmFyKC0tY2xyLWRhdGFncmlkLXBvcG92ZXItYm9yZGVyLWNvbG9yLCAjY2NjY2NjKTtib3gtc2hhZG93OjAgLjA1cmVtIC4xNXJlbSAjOGM4YzhjNDA7Ym94LXNoYWRvdzowIC4wNXJlbSAuMTVyZW0gdmFyKC0tY2xy''@;'; + put 'put ''LWRhdGFncmlkLXBvcG92ZXJzLWJveC1zaGFkb3ctY29sb3IsIHJnYmEoMTQwLCAxNDAsIDE0MCwgLjI1KSk7Ym9yZGVyLXJhZGl1czouMTVyZW07Ym9yZGVyLXJhZGl1czp2YXIoLS1jbHItZ2xvYmFsLWJvcmRlcnJhZGl1cywgLjE1cmVtKTtmb250LXdlaWdodDo0MDB9LmRhdGFncmlkLXRh''@;'; + put 'put ''YmxlIC5kYXRhZ3JpZC1jb2x1bW4gLmRhdGFncmlkLWZpbHRlciAuZGF0YWdyaWQtZmlsdGVyLWNsb3NlLXdyYXBwZXJ7dGV4dC1hbGlnbjpyaWdodH0uZGF0YWdyaWQtdGFibGUgLmRhdGFncmlkLWNvbHVtbiAuZGF0YWdyaWQtZmlsdGVyIC5kYXRhZ3JpZC1maWx0ZXItY2xvc2Utd3JhcHBl''@;'; + put 'put ''ciAuY2xvc2V7ZmxvYXQ6bm9uZX0uZGF0YWdyaWQtdGFibGUgLmRhdGFncmlkLWNvbHVtbiAuZGF0YWdyaWQtZmlsdGVyIC5kYXRhZ3JpZC1maWx0ZXItYXBwbHl7bWFyZ2luLWJvdHRvbTowfS5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtY29sdW1uIC5kYXRhZ3JpZC1maWx0ZXJ7dG9wOjEw''@;'; + put 'put ''MCU7cmlnaHQ6MDttYXJnaW4tdG9wOi4yNHJlbTtiYWNrZ3JvdW5kOiNmZmY7YmFja2dyb3VuZDp2YXIoLS1jbHItZGF0YWdyaWQtcG9wb3Zlci1iZy1jb2xvciwgd2hpdGUpO3BhZGRpbmc6LjlyZW07Ym9yZGVyLXdpZHRoOi4wNXJlbTtib3JkZXItd2lkdGg6dmFyKC0tY2xyLWdsb2JhbC1i''@;'; + put 'put ''b3JkZXJ3aWR0aCwgLjA1cmVtKTtib3JkZXItY29sb3I6I2NjYztib3JkZXItY29sb3I6dmFyKC0tY2xyLWRhdGFncmlkLXBvcG92ZXItYm9yZGVyLWNvbG9yLCAjY2NjY2NjKTtib3JkZXItc3R5bGU6c29saWQ7Ym94LXNoYWRvdzowIC4wNXJlbSAuMTVyZW0gIzhjOGM4YzQwO2JveC1zaGFk''@;'; + put 'put ''b3c6MCAuMDVyZW0gLjE1cmVtIHZhcigtLWNsci1kYXRhZ3JpZC1wb3BvdmVycy1ib3gtc2hhZG93LWNvbG9yLCByZ2JhKDE0MCwgMTQwLCAxNDAsIC4yNSkpO2JvcmRlci1yYWRpdXM6LjE1cmVtO2JvcmRlci1yYWRpdXM6dmFyKC0tY2xyLWdsb2JhbC1ib3JkZXJyYWRpdXMsIC4xNXJlbSk7''@;'; + put 'put ''Zm9udC13ZWlnaHQ6NDAwfS5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtY29sdW1uIC5kYXRhZ3JpZC1maWx0ZXIgLmRhdGFncmlkLWZpbHRlci1jbG9zZS13cmFwcGVye3RleHQtYWxpZ246cmlnaHR9LmRhdGFncmlkLXRhYmxlIC5kYXRhZ3JpZC1jb2x1bW4gLmRhdGFncmlkLWZpbHRlciAu''@;'; + put 'put ''ZGF0YWdyaWQtZmlsdGVyLWNsb3NlLXdyYXBwZXIgLmNsb3Nle2Zsb2F0Om5vbmV9LmRhdGFncmlkLXRhYmxlIC5kYXRhZ3JpZC1jb2x1bW4gLmRhdGFncmlkLWZpbHRlciAuZGF0YWdyaWQtZmlsdGVyLWFwcGx5e21hcmdpbi1ib3R0b206MH0uZGF0YWdyaWQtdGFibGUgLmRhdGFncmlkLWNv''@;'; + put 'put ''bHVtbi5kYXRhZ3JpZC1maXhlZC13aWR0aHtmbGV4OjAgMCBhdXRvfS5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtY29sdW1uIC5kYXRhZ3JpZC1jb2x1bW4tZmxleHtkaXNwbGF5OmZsZXg7ZmxleDoxIDEgYXV0b30uZGF0YWdyaWQtdGFibGUgLmRhdGFncmlkLWNvbHVtbiAuZGF0YWdyaWQt''@;'; + put 'put ''Y29sdW1uLXRpdGxley13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lOy1tcy1hcHBlYXJhbmNlOm5vbmU7LW8tYXBwZWFyYW5jZTpub25lO21hcmdpbjowO3BhZGRpbmc6MDtib3JkZXI6MDtib3JkZXItcmFkaXVzOjA7Ym94LXNoYWRvdzpub25lO2JhY2tncm91''@;'; + put 'put ''bmQ6MCAwO2NvbG9yOiM2NjY7Y29sb3I6dmFyKC0tY2xyLXRhYmxlLWZvbnQtY29sb3IsICM2NjY2NjYpO3RleHQtYWxpZ246bGVmdDtmbGV4OjEgMSBhdXRvO2FsaWduLWl0ZW1zOmNlbnRlcjthbGlnbi1zZWxmOmNlbnRlcjtkaXNwbGF5OmZsZXh9YnV0dG9uLmRhdGFncmlkLXRhYmxlIC5k''@;'; + put 'put ''YXRhZ3JpZC1jb2x1bW4gLmRhdGFncmlkLWNvbHVtbi10aXRsZXtjdXJzb3I6cG9pbnRlcn0uZGF0YWdyaWQtdGFibGUgLmRhdGFncmlkLWNvbHVtbiAuZGF0YWdyaWQtY29sdW1uLXRpdGxlIC5zaWducG9zdCAuc2lnbnBvc3QtYWN0aW9uLmJ0bntoZWlnaHQ6aW5oZXJpdDtsaW5lLWhlaWdo''@;'; + put 'put ''dDppbmhlcml0fS5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtY29sdW1uIC5kYXRhZ3JpZC1jb2x1bW4tdGl0bGUgLmNsci1jaGVja2JveC13cmFwcGVyIC5jbHItY29udHJvbC1sYWJlbHttYXJnaW4tdG9wOi0uNDhyZW19LmRhdGFncmlkLXRhYmxlIC5kYXRhZ3JpZC1jb2x1bW4gYnV0dG9u''@;'; + put 'put ''LmRhdGFncmlkLWNvbHVtbi10aXRsZTpob3Zlcnt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO2N1cnNvcjpwb2ludGVyfS5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtY29sdW1uIGJ1dHRvbi5kYXRhZ3JpZC1jb2x1bW4tdGl0bGUgLnNvcnQtaWNvbntjb2xvcjojMDA3MmEzO2NvbG9yOnZh''@;'; + put 'put ''cigtLWNsci1jb2xvci1hY3Rpb24tNjAwLCAjMDA3MmEzKTttYXJnaW4tbGVmdDphdXRvO2hlaWdodDouN3JlbTt3aWR0aDouN3JlbTt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9LmRhdGFncmlkLXRhYmxlIC5kYXRhZ3JpZC1jb2x1bW4gLmRhdGFncmlkLWNvbHVtbi1zZXBhcmF0b3J7cG9zaXRp''@;'; + put 'put ''b246cmVsYXRpdmU7bGVmdDouNnJlbTtmbGV4OjAgMCBhdXRvO3dpZHRoOi4wNXJlbTt3aWR0aDp2YXIoLS1jbHItZ2xvYmFsLWJvcmRlcndpZHRoLCAuMDVyZW0pO29yZGVyOjEwMDttYXJnaW4tbGVmdDphdXRvO2hlaWdodDoxMDAlfS5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtY29sdW1u''@;'; + put 'put ''IC5kYXRhZ3JpZC1jb2x1bW4tc2VwYXJhdG9yOmFmdGVye2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGU7aGVpZ2h0OmNhbGMoMTAwJSArIC42cmVtIC0gLjA1cmVtKTt3aWR0aDouMDVyZW07dG9wOi0uMjVyZW07bGVmdDowO2JhY2tncm91bmQtY29sb3I6I2NjYztiYWNrZ3JvdW5kLWNv''@;'; + put 'put ''bG9yOnZhcigtLWNsci10YWJsZS1ib3JkZXItY29sb3IsICNjY2NjY2MpfS5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtY29sdW1uIC5kYXRhZ3JpZC1jb2x1bW4tc2VwYXJhdG9yIC5kYXRhZ3JpZC1jb2x1bW4taGFuZGxley13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5j''@;'; + put 'put ''ZTpub25lOy1tcy1hcHBlYXJhbmNlOm5vbmU7LW8tYXBwZWFyYW5jZTpub25lO21hcmdpbjowO3BhZGRpbmc6MDtib3JkZXI6MDtib3JkZXItcmFkaXVzOjA7Ym94LXNoYWRvdzpub25lO2JhY2tncm91bmQ6MCAwO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOi42NXJlbTtyaWdodDotLjNyZW07''@;'; + put 'put ''dG9wOi0uM3JlbTtjdXJzb3I6Y29sLXJlc2l6ZTtoZWlnaHQ6Y2FsYygxMDAlICsgLjZyZW0gLSAuMDVyZW0pO3otaW5kZXg6NTAxfWJ1dHRvbi5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtY29sdW1uIC5kYXRhZ3JpZC1jb2x1bW4tc2VwYXJhdG9yIC5kYXRhZ3JpZC1jb2x1bW4taGFuZGxl''@;'; + put 'put ''e2N1cnNvcjpwb2ludGVyfS5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtY29sdW1uIC5kYXRhZ3JpZC1jb2x1bW4tc2VwYXJhdG9yIC5kYXRhZ3JpZC1jb2x1bW4tcmVzaXplLXRyYWNrZXJ7cG9zaXRpb246YWJzb2x1dGU7dG9wOi0uNnJlbTtkaXNwbGF5Om5vbmU7d2lkdGg6LjA1cmVtO2hl''@;'; + put 'put ''aWdodDowO2JvcmRlci1yaWdodC1zdHlsZTpkb3R0ZWQ7Ym9yZGVyLXJpZ2h0LWNvbG9yOiM3OWM2ZTY7Ym9yZGVyLXJpZ2h0LWNvbG9yOnZhcigtLWNsci1jb2xvci1hY3Rpb24tMzAwLCAjNzljNmU2KTtib3JkZXItcmlnaHQtd2lkdGg6LjA1cmVtO2JvcmRlci1yaWdodC13aWR0aDp2YXIo''@;'; + put 'put ''LS1jbHItZ2xvYmFsLWJvcmRlcndpZHRoLCAuMDVyZW0pO3RyYW5zZm9ybTp0cmFuc2xhdGUoMCk7Y3Vyc29yOmNvbC1yZXNpemV9LmRhdGFncmlkLXRhYmxlIC5kYXRhZ3JpZC1jb2x1bW4gLmRhdGFncmlkLWNvbHVtbi1zZXBhcmF0b3IgLmRhdGFncmlkLWNvbHVtbi1yZXNpemUtdHJhY2tl''@;'; + put 'put ''ci5vbi1hcnJvdy1rZXktcmVzaXple3RyYW5zaXRpb246dHJhbnNmb3JtIC4ycyBlYXNlLW91dH0uZGF0YWdyaWQtdGFibGUgLmRhdGFncmlkLWNvbHVtbiAuZGF0YWdyaWQtY29sdW1uLXNlcGFyYXRvciAuZXhjZWVkZWQtbWF4e2JvcmRlci1yaWdodDouMDVyZW0gZG90dGVkIHJnYmEoMjE5''@;'; + put 'put ''LDMzLDAsLjMpfS5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtY29sdW1uIC5kYXRhZ3JpZC1zaWducG9zdC10cmlnZ2VyIC5zaWducG9zdHttYXJnaW46LS4zNnJlbSAwO2hlaWdodDoxLjIzNnJlbX0uZGF0YWdyaWQtdGFibGUgLmRhdGFncmlkLWNvbHVtbiAuZGF0YWdyaWQtc2lnbnBvc3Qt''@;'; + put 'put ''dHJpZ2dlciAuc2lnbnBvc3QgLnNpZ25wb3N0LXRyaWdnZXJ7aGVpZ2h0OmluaGVyaXQ7bGluZS1oZWlnaHQ6MS4ycmVtfS5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtY29sdW1uLmRhdGFncmlkLXNlbGVjdCwuZGF0YWdyaWQtdGFibGUgLmRhdGFncmlkLWNvbHVtbi5kYXRhZ3JpZC1leHBh''@;'; + put 'put ''bmRhYmxlLWNhcmV0LC5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtY29sdW1uLmRhdGFncmlkLXJvdy1hY3Rpb25ze21heC13aWR0aDoxLjlyZW07bWluLXdpZHRoOjEuOXJlbX0uZGF0YWdyaWQtdGFibGUgLmRhdGFncmlkLWNlbGx7ZmxleDoxIDEgYXV0bzt0ZXh0LWFsaWduOmxlZnQ7bWlu''@;'; + put 'put ''LXdpZHRoOjQuOHJlbTtib3JkZXI6MH0uZGF0YWdyaWQtdGFibGUgLmRhdGFncmlkLWNlbGwuZGF0YWdyaWQtZml4ZWQtd2lkdGh7ZmxleDowIDAgYXV0b30uZGF0YWdyaWQtdGFibGUgLmRhdGFncmlkLWNlbGwuZGF0YWdyaWQtZml4ZWQtY29sdW1ue2ZsZXg6MCAwIDEuOXJlbTttYXgtd2lk''@;'; + put 'put ''dGg6MS45cmVtO21pbi13aWR0aDoxLjlyZW19LmRhdGFncmlkLXRhYmxlIC5kYXRhZ3JpZC1jZWxsLmRhdGFncmlkLXJvdy1hY3Rpb25ze2JhY2tncm91bmQ6MCAwfS5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtY2VsbC5kYXRhZ3JpZC1leHBhbmRhYmxlLWNhcmV0e3BhZGRpbmc6LjFyZW0g''@;'; + put 'put ''LjJyZW0gLjE1cmVtO3RleHQtYWxpZ246Y2VudGVyfS5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtY2VsbDpmb2N1c3tvdXRsaW5lOi13ZWJraXQtZm9jdXMtcmluZy1jb2xvciBzb2xpZCAuMXJlbTtvdXRsaW5lLW9mZnNldDotLjFyZW19LmRhdGFncmlkLXRhYmxlIC5kYXRhZ3JpZC1jZWxs''@;'; + put 'put ''IC5kYXRhZ3JpZC1hY3Rpb24tdG9nZ2xley13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lOy1tcy1hcHBlYXJhbmNlOm5vbmU7LW8tYXBwZWFyYW5jZTpub25lO21hcmdpbjowO3BhZGRpbmc6MDtib3JkZXI6MDtib3JkZXItcmFkaXVzOjA7Ym94LXNoYWRvdzpu''@;'; + put 'put ''b25lO2JhY2tncm91bmQ6MCAwfWJ1dHRvbi5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtY2VsbCAuZGF0YWdyaWQtYWN0aW9uLXRvZ2dsZXtjdXJzb3I6cG9pbnRlcn0uZGF0YWdyaWQtdGFibGUgLmRhdGFncmlkLWNlbGwgLmRhdGFncmlkLWFjdGlvbi10b2dnbGUgY2RzLWljb24sLmRhdGFn''@;'; + put 'put ''cmlkLXRhYmxlIC5kYXRhZ3JpZC1jZWxsIC5kYXRhZ3JpZC1hY3Rpb24tdG9nZ2xlIGNsci1pY29ue2NvbG9yOiM4YzhjOGM7Y29sb3I6dmFyKC0tY2xyLWRhdGFncmlkLWljb24tY29sb3IsICM4YzhjOGMpfS5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtY2VsbCAuZGF0YWdyaWQtYWN0aW9u''@;'; + put 'put ''LXRvZ2dsZTphY3RpdmUgY2RzLWljb24sLmRhdGFncmlkLXRhYmxlIC5kYXRhZ3JpZC1jZWxsIC5kYXRhZ3JpZC1hY3Rpb24tdG9nZ2xlOmFjdGl2ZSBjbHItaWNvbntjb2xvcjojNjY2O2NvbG9yOnZhcigtLWNsci1kYXRhZ3JpZC1hY3Rpb24tdG9nZ2xlLCAjNjY2NjY2KX0uZGF0YWdyaWQt''@;'; + put 'put ''dGFibGUgLmRhdGFncmlkLWNlbGwgLmNsci10b2dnbGUtd3JhcHBlcnttYXJnaW4tdG9wOi0uNjZyZW07cGFkZGluZy10b3A6LjQycmVtfS5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtcGxhY2Vob2xkZXItY29udGFpbmVye2ZsZXg6MSAxIGF1dG87ZGlzcGxheTpmbGV4O2p1c3RpZnktY29u''@;'; + put 'put ''dGVudDpjZW50ZXI7Ym9yZGVyLXRvcC1zdHlsZTpzb2xpZDtib3JkZXItdG9wLWNvbG9yOiNjY2M7Ym9yZGVyLXRvcC1jb2xvcjp2YXIoLS1jbHItdGFibGUtYm9yZGVyLWNvbG9yLCAjY2NjY2NjKTtib3JkZXItdG9wLXdpZHRoOi4wNXJlbTtib3JkZXItdG9wLXdpZHRoOnZhcigtLWNsci1n''@;'; + put 'put ''bG9iYWwtYm9yZGVyd2lkdGgsIC4wNXJlbSl9LmRhdGFncmlkLXRhYmxlIC5kYXRhZ3JpZC1wbGFjZWhvbGRlcntiYWNrZ3JvdW5kOiNmZmY7YmFja2dyb3VuZDp2YXIoLS1jbHItdGFibGUtYmdjb2xvciwgd2hpdGUpO3dpZHRoOjEwMCV9LmRhdGFncmlkLXRhYmxlIC5kYXRhZ3JpZC1wbGFj''@;'; + put 'put ''ZWhvbGRlci5kYXRhZ3JpZC1lbXB0eXtib3JkZXItdG9wOjA7cGFkZGluZzouNnJlbTtkaXNwbGF5OmZsZXg7ZmxleC1mbG93OmNvbHVtbiBub3dyYXA7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0O2ZvbnQtc2l6ZTouOHJlbTtmb250LXNpemU6dmFyKC0t''@;'; + put 'put ''Y2xyLWRhdGFncmlkLXBsYWNlaG9sZGVyLWZvbnQtc2l6ZSwgLjhyZW0pO2NvbG9yOiNiM2IzYjM7Y29sb3I6dmFyKC0tY2xyLWRhdGFncmlkLXBsYWNlaG9sZGVyLWNvbG9yLCAjYjNiM2IzKX0uZGF0YWdyaWQtdGFibGUgLmRhdGFncmlkLXBsYWNlaG9sZGVyIC5kYXRhZ3JpZC1wbGFjZWhv''@;'; + put 'put ''bGRlci1pbWFnZXtoZWlnaHQ6M3JlbTt3aWR0aDozcmVtO21hcmdpbi1ib3R0b206LjZyZW07YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O2JhY2tncm91bmQtc2l6ZTpjb250YWluO2JhY2tncm91bmQtcG9zaXRpb246Y2VudGVyO2JhY2tncm91bmQtaW1hZ2U6dXJsKCJkYXRhOmltYWdl''@;'; + put 'put ''L3N2Zyt4bWw7Y2hhcnNldD11dGY4LCUzQ3N2ZyUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDYwJTIwNzIlMjIlMjB2ZXJzaW9uJTNEJTIyMS4xJTIyJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlMjB4bWxucyUzQXhsaW5rJTNEJTIyaHR0cCUz''@;'; + put 'put ''QSUyRiUyRnd3dy53My5vcmclMkYxOTk5JTJGeGxpbmslMjIlM0UlMEElMjAlMjAlMjAlMjAlM0NkZWZzJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDZWxsaXBzZSUyMGlkJTNEJTIycGF0aC0xJTIyJTIwY3glM0QlMjIzMCUyMiUyMGN5JTNEJTIyNjEuNzY2NjY2NyUyMiUyMHJ4''@;'; + put 'put ''JTNEJTIyMTUuNDUxMjkwNCUyMiUyMHJ5JTNEJTIyNC43MzMzMzMzMyUyMiUzRSUzQyUyRmVsbGlwc2UlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NtYXNrJTIwaWQlM0QlMjJtYXNrLTIlMjIlMjBtYXNrQ29udGVudFVuaXRzJTNEJTIydXNlclNwYWNlT25Vc2UlMjIlMjBtYXNr''@;'; + put 'put ''VW5pdHMlM0QlMjJvYmplY3RCb3VuZGluZ0JveCUyMiUyMHglM0QlMjIwJTIyJTIweSUzRCUyMjAlMjIlMjB3aWR0aCUzRCUyMjMwLjkwMjU4MDglMjIlMjBoZWlnaHQlM0QlMjI5LjQ2NjY2NjY3JTIyJTIwZmlsbCUzRCUyMndoaXRlJTIyJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIw''@;'; + put 'put ''JTIwJTIwJTIwJTIwJTNDdXNlJTIweGxpbmslM0FocmVmJTNEJTIyJTIzcGF0aC0xJTIyJTNFJTNDJTJGdXNlJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDJTJGbWFzayUzRSUwQSUyMCUyMCUyMCUyMCUzQyUyRmRlZnMlM0UlMEElMjAlMjAlMjAlMjAlM0NnJTIwaWQlM0QlMjJQ''@;'; + put 'put ''YWdlLTElMjIlMjBzdHJva2UlM0QlMjJub25lJTIyJTIwc3Ryb2tlLXdpZHRoJTNEJTIyMSUyMiUyMGZpbGwlM0QlMjJub25lJTIyJTIwZmlsbC1ydWxlJTNEJTIyZXZlbm9kZCUyMiUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ2clMjBpZCUzRCUyMkFydGJvYXJkJTIyJTNFJTBB''@;'; + put 'put ''JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDdXNlJTIwaWQlM0QlMjJPdmFsLTEwJTIyJTIwc3Ryb2tlJTNEJTIyJTIzQzFERkVGJTIyJTIwbWFzayUzRCUyMnVybCglMjNtYXNrLTIpJTIyJTIwc3Ryb2tlLXdpZHRoJTNEJTIyMi44JTIyJTIwc3Ryb2tlLWxpbmVjYXAl''@;'; + put 'put ''M0QlMjJzcXVhcmUlMjIlMjBzdHJva2UtZGFzaGFycmF5JTNEJTIyMyUyQzYlMkMzJTJDNSUyMiUyMHhsaW5rJTNBaHJlZiUzRCUyMiUyM3BhdGgtMSUyMiUzRSUzQyUyRnVzZSUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BhdGglMjBkJTNEJTIyTTM4LjQ2''@;'; + put 'put ''MTM2NDclMkMxOC4xNjQyNDU2JTIwTDMwLjk4OTAxMzclMkMzNC45MTQxODQ2JTIwTDMxJTJDNDclMjBMMzIuNTk3Nzc4MyUyQzQ2LjUxNjcyMzYlMjBMMzIuNTk3Nzc4MyUyQzM0LjkxNDE4NDYlMjBMNTEuMDY3MzIxOCUyQzE1Ljc1NjA0MjUlMjBDNTEuMDY3MzIxOCUyQzE1Ljc1NjA0MjUl''@;'; + put 'put ''MjA0OC42Mjk1MTY2JTJDMTYuNjU0Mjk2OSUyMDQ0Ljk2Mjg5MDYlMkMxNy4zMzkyMzM0JTIwQzQxLjI5NjI2NDYlMkMxOC4wMjQxNjk5JTIwMzguNDYxMzY0NyUyQzE4LjE2NDI0NTYlMjAzOC40NjEzNjQ3JTJDMTguMTY0MjQ1NiUyMFolMjIlMjBpZCUzRCUyMlBhdGgtMTk1JTIyJTIwZmls''@;'; + put 'put ''bCUzRCUyMiUyM0MxREZFRiUyMiUzRSUzQyUyRnBhdGglM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NwYXRoJTIwZCUzRCUyMk00Ljc0NjM5MjI2JTJDMTIuNTY2MTg1NSUyMEw0LjYyMDY1NzI2JTJDMTIuMTYwNTM0OCUyMEw1LjM1MTU0MTQlMkMxMS4xNjI1''@;'; + put 'put ''MDQ0JTIwTDUuNzc2MjIzODUlMkMxMS4xNTk5MzklMjBMNi4yMDkzNjMwOSUyQzEyLjU1NzM0ODElMjBMNC43NDYzOTIyNiUyQzEyLjU2NjE4NTUlMjBaJTIwTTYuMjA5MzYzMDklMkMxMi41NTczNDgxJTIwTDYuMzI1NDI2MzIlMkMxMi45MzE3OTU0JTIwTDI4LjQ5NjM4NTUlMkMzNC44Nzk2''@;'; + put 'put ''NzE4JTIwTDI4LjQ5NjM4NTUlMkM0Ny44MDk2NjkxJTIwTDMyLjYlMkM0Ni40ODM2NTEzJTIwTDMyLjYlMkMzNC44OTkyMzY1JTIwTDUzLjk3MzQ5NCUyQzEyLjcwMzU4MTMlMjBMNTMuOTczNDk0JTJDMTIuMjY4ODIwMSUyMEw2LjIwOTM2MzA5JTJDMTIuNTU3MzQ4MSUyMFolMjBNNTUuMzcz''@;'; + put 'put ''NDk0JTJDMTAuODYwMzM3NiUyMEw1NS4zNzM0OTQlMkMxMy4yNjgwNjY0JTIwTDM0JTJDMzUuNDYzNzIxNiUyMEwzNCUyQzQ3LjUwMjU0MDElMjBMMjcuMDk2Mzg1NSUyQzQ5LjczMzMzMzMlMjBMMjcuMDk2Mzg1NSUyQzM1LjQ2MzcyMTklMjBMNS4wOTE3OTY4OCUyQzEzLjY4MDU0MiUyMEw0''@;'; + put 'put ''LjMxMzI1MzAxJTJDMTEuMTY4Nzc2NCUyMEw1NS4zNzM0OTQlMkMxMC44NjAzMzc2JTIwWiUyMiUyMGlkJTNEJTIyUGF0aC0xNDklMjIlMjBmaWxsJTNEJTIyJTIzN0ZCREREJTIyJTNFJTNDJTJGcGF0aCUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ2VsbGlw''@;'; + put 'put ''c2UlMjBpZCUzRCUyMk92YWwtOSUyMiUyMGZpbGwlM0QlMjIlMjNGRkZGRkYlMjIlMjBjeCUzRCUyMjMwJTIyJTIwY3klM0QlMjIxMS43ODU2NTQlMjIlMjByeCUzRCUyMjI2JTIyJTIwcnklM0QlMjI2Ljc4NTY1NDAxJTIyJTNFJTNDJTJGZWxsaXBzZSUzRSUwQSUyMCUyMCUyMCUyMCUyMCUy''@;'; + put 'put ''MCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BhdGglMjBkJTNEJTIyTTMwJTJDMTcuMTcxMzA4JTIwQzM2Ljg3NzIxNzclMkMxNy4xNzEzMDglMjA0My4zMTEyMjgyJTJDMTYuNDYxMDcwMSUyMDQ4LjAzMTIzNzElMkMxNS4yMjkyMTA2JTIwQzUwLjI3Nzc2MTElMkMxNC42NDI4OTc3JTIwNTIuMDUw''@;'; + put 'put ''NzYxOSUyQzEzLjk1Nzk2NzclMjA1My4yMjE2MjMxJTJDMTMuMjM1NDk3MyUyMEM1NC4xOTM4NTY1JTJDMTIuNjM1NTg4NiUyMDU0LjYlMkMxMi4xMTc1ODkxJTIwNTQuNiUyQzExLjc4NTY1NCUyMEM1NC42JTJDMTEuNDUzNzE4OSUyMDU0LjE5Mzg1NjUlMkMxMC45MzU3MTk0JTIwNTMuMjIx''@;'; + put 'put ''NjIzMSUyQzEwLjMzNTgxMDclMjBDNTIuMDUwNzYxOSUyQzkuNjEzMzQwMzIlMjA1MC4yNzc3NjExJTJDOC45Mjg0MTAzNCUyMDQ4LjAzMTIzNzElMkM4LjM0MjA5NzQ2JTIwQzQzLjMxMTIyODIlMkM3LjExMDIzNzk1JTIwMzYuODc3MjE3NyUyQzYuNCUyMDMwJTJDNi40JTIwQzIzLjEyMjc4''@;'; + put 'put ''MjMlMkM2LjQlMjAxNi42ODg3NzE4JTJDNy4xMTAyMzc5NSUyMDExLjk2ODc2MjklMkM4LjM0MjA5NzQ2JTIwQzkuNzIyMjM4ODYlMkM4LjkyODQxMDM0JTIwNy45NDkyMzgxNCUyQzkuNjEzMzQwMzIlMjA2Ljc3ODM3Njg5JTJDMTAuMzM1ODEwNyUyMEM1LjgwNjE0MzUlMkMxMC45MzU3MTk0''@;'; + put 'put ''JTIwNS40JTJDMTEuNDUzNzE4OSUyMDUuNCUyQzExLjc4NTY1NCUyMEM1LjQlMkMxMi4xMTc1ODkxJTIwNS44MDYxNDM1JTJDMTIuNjM1NTg4NiUyMDYuNzc4Mzc2ODklMkMxMy4yMzU0OTczJTIwQzcuOTQ5MjM4MTQlMkMxMy45NTc5Njc3JTIwOS43MjIyMzg4NiUyQzE0LjY0Mjg5NzclMjAx''@;'; + put 'put ''MS45Njg3NjI5JTJDMTUuMjI5MjEwNiUyMEMxNi42ODg3NzE4JTJDMTYuNDYxMDcwMSUyMDIzLjEyMjc4MjMlMkMxNy4xNzEzMDglMjAzMCUyQzE3LjE3MTMwOCUyMFolMjBNMzAlMkMxOC41NzEzMDglMjBDMTUuNjQwNTk2NSUyQzE4LjU3MTMwOCUyMDQlMkMxNS41MzMyNjcyJTIwNCUyQzEx''@;'; + put 'put ''Ljc4NTY1NCUyMEM0JTJDOC4wMzgwNDA3OCUyMDE1LjY0MDU5NjUlMkM1JTIwMzAlMkM1JTIwQzQ0LjM1OTQwMzUlMkM1JTIwNTYlMkM4LjAzODA0MDc4JTIwNTYlMkMxMS43ODU2NTQlMjBDNTYlMkMxNS41MzMyNjcyJTIwNDQuMzU5NDAzNSUyQzE4LjU3MTMwOCUyMDMwJTJDMTguNTcxMzA4''@;'; + put 'put ''JTIwWiUyMiUyMGlkJTNEJTIyT3ZhbC05LUNvcHklMjIlMjBmaWxsJTNEJTIyJTIzN0ZCREREJTIyJTNFJTNDJTJGcGF0aCUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BhdGglMjBkJTNEJTIyTTE4LjI2MDg2NDMlMkM3LjE0NTYyOTg4JTIwTDIyLjcyNzM1''@;'; + put 'put ''NiUyQzE2LjkwNDcyNDElMjBDMjIuNzI3MzU2JTJDMTYuOTA0NzI0MSUyMDE1LjMwMDY1OTIlMkMxNi4zOTExNzQzJTIwMTAuMjc2MDAxJTJDMTQuNzUxMTU5NyUyMEM1LjI1MTM0Mjc3JTJDMTMuMTExMTQ1JTIwNS4zODAzMTAwNiUyQzExLjgyODQzMDIlMjA1LjM4MDMxMDA2JTJDMTEuNjg4''@;'; + put 'put ''MjkzNSUyMEM1LjM4MDMxMDA2JTJDMTAuNDgzMjgzMSUyMDguMTY2MzMxNTIlMkM5LjQxODc3NzE2JTIwMTEuMTE0NTYzJTJDOC41NzMyNDIxOSUyMEMxNC41NDkzMTklMkM3LjU4ODE3NDkyJTIwMTguMjYwODY0MyUyQzcuMTQ1NjI5ODglMjAxOC4yNjA4NjQzJTJDNy4xNDU2Mjk4OCUyMFol''@;'; + put 'put ''MjIlMjBpZCUzRCUyMlBhdGgtMTk2JTIyJTIwZmlsbCUzRCUyMiUyM0MxREZFRiUyMiUzRSUzQyUyRnBhdGglM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0MlMkZnJTNFJTBBJTIwJTIwJTIwJTIwJTNDJTJGZyUzRSUwQSUzQyUyRnN2ZyUzRSIpfS5kYXRhZ3JpZC10YWJsZSAuZGF0''@;'; + put 'put ''YWdyaWQtaGlkZGVuLWNvbHVtbi5kYXRhZ3JpZC1jb2x1bW4sLmRhdGFncmlkLXRhYmxlIC5kYXRhZ3JpZC1oaWRkZW4tY29sdW1uLmRhdGFncmlkLWNlbGx7ZGlzcGxheTpub25lfS5kYXRhZ3JpZC1yb3ctcmVwbGFjZWQgLmRhdGFncmlkLXNjcm9sbGluZy1jZWxscyAuZGF0YWdyaWQtY2Vs''@;'; + put 'put ''bDpub3QoLmRhdGFncmlkLWV4cGFuZGFibGUtY2FyZXQpOm5vdCguZGF0YWdyaWQtcm93LWFjdGlvbnMpOm5vdCguZGF0YWdyaWQtc2VsZWN0KXtkaXNwbGF5Om5vbmV9LmRhdGFncmlkLXJvdy1yZXBsYWNlZCAuZGF0YWdyaWQtcm93LWRldGFpbCAuZGF0YWdyaWQtY2VsbHtkaXNwbGF5OmJs''@;'; + put 'put ''b2NrO3BhZGRpbmctdG9wOi41NXJlbX0uZGF0YWdyaWQtcm93LXJlcGxhY2VkIC5kYXRhZ3JpZC1yb3ctZGV0YWlsIC5kYXRhZ3JpZC1jZWxsLmRhdGFncmlkLWhpZGRlbi1jb2x1bW57ZGlzcGxheTpub25lfS5kYXRhZ3JpZC1yb3ctcmVwbGFjZWQgLmRhdGFncmlkLXJvdy1kZXRhaWwgLmRh''@;'; + put 'put ''dGFncmlkLWV4cGFuZGFibGUtY2FyZXR7cGFkZGluZy10b3A6LjFyZW19LmRhdGFncmlkLXJvdy1yZXBsYWNlZCAuZGF0YWdyaWQtcm93LWRldGFpbC5kYXRhZ3JpZC1jb250YWluZXJ7Ym9yZGVyLXRvcDouMDVyZW0gc29saWQgI2NjY30uZGF0YWdyaWQtcm93LXJlcGxhY2VkIC5kYXRhZ3Jp''@;'; + put 'put ''ZC1yb3ctZGV0YWlsLmRhdGFncmlkLWNvbnRhaW5lciAuZGF0YWdyaWQtY2VsbHtib3JkZXItdG9wOm5vbmV9LmRhdGFncmlkLWZvb3RlcntmbGV4OjAgMCBhdXRvO2Rpc3BsYXk6ZmxleDtmbGV4LWZsb3c6cm93IG5vd3JhcDtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjthbGlnbi1p''@;'; + put 'put ''dGVtczpzdHJldGNoO3BhZGRpbmc6MCAuNnJlbTtsaW5lLWhlaWdodDoxLjY1cmVtO2ZvbnQtc2l6ZTouNTVyZW07YmFja2dyb3VuZC1jb2xvcjojZmFmYWZhO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLXRoZWFkLWJnY29sb3IsICNmYWZhZmEpO2JvcmRlci1zdHlsZTpzb2xpZDtib3Jk''@;'; + put 'put ''ZXItY29sb3I6I2NjYztib3JkZXItY29sb3I6dmFyKC0tY2xyLXRhYmxlLWZvb3Rlci1ib3JkZXItdG9wLWNvbG9yLCAjY2NjY2NjKTtib3JkZXItd2lkdGg6LjA1cmVtO2JvcmRlci13aWR0aDp2YXIoLS1jbHItZ2xvYmFsLWJvcmRlcndpZHRoLCAuMDVyZW0pO2JvcmRlci10b3A6bm9uZTti''@;'; + put 'put ''b3JkZXItcmFkaXVzOjA7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6LjE1cmVtO2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOnZhcigtLWNsci1nbG9iYWwtYm9yZGVycmFkaXVzLCAuMTVyZW0pO2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6LjE1cmVtO2JvcmRlci1ib3R0b20tbGVm''@;'; + put 'put ''dC1yYWRpdXM6dmFyKC0tY2xyLWdsb2JhbC1ib3JkZXJyYWRpdXMsIC4xNXJlbSl9LmRhdGFncmlkLWZvb3RlciAucGFnaW5hdGlvbntkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2ZsZXgtd3JhcDp3cmFwO2p1c3RpZnktY29udGVudDpmbGV4LWVuZDtsaW5lLWhlaWdodDoxLjhy''@;'; + put 'put ''ZW19LmRhdGFncmlkLWZvb3RlciAucGFnaW5hdGlvbi1zaXple2Rpc3BsYXk6YmxvY2s7ZmxleDoxIDEgYXV0bzt3aGl0ZS1zcGFjZTpub3dyYXA7dGV4dC1hbGlnbjpyaWdodH0uZGF0YWdyaWQtZm9vdGVyIC5wYWdpbmF0aW9uLXNpemUgLmNsci1zZWxlY3Qtd3JhcHBlcjphZnRlcnt0b3A6''@;'; + put 'put ''LjZyZW19LmRhdGFncmlkLWZvb3RlciAucGFnaW5hdGlvbi1zaXplIC5jbHItcGFnZS1zaXplLXNlbGVjdHtmb250LXNpemU6MTAwJTttYXJnaW4tbGVmdDouNnJlbTtoZWlnaHQ6MS4ycmVtO2xpbmUtaGVpZ2h0OjEuMnJlbTt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9LmRhdGFncmlkLWZvb3Rl''@;'; + put 'put ''ciAucGFnaW5hdGlvbi1zaXplKy5wYWdpbmF0aW9uLWRlc2NyaXB0aW9ue21hcmdpbi1sZWZ0OjEuMnJlbX0uZGF0YWdyaWQtZm9vdGVyIC5wYWdpbmF0aW9uLWRlc2NyaXB0aW9ue3doaXRlLXNwYWNlOm5vd3JhcH0uZGF0YWdyaWQtZm9vdGVyIC5wYWdpbmF0aW9uLWxpc3R7bWFyZ2luLWxl''@;'; + put 'put ''ZnQ6MS4ycmVtO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXJ9LmRhdGFncmlkLWZvb3RlciAuY29sdW1uLXN3aXRjaC13cmFwcGVye3Bvc2l0aW9uOnJlbGF0aXZlO2ZsZXg6MCAwIGF1dG87ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcn0uZGF0YWdyaWQtZm9vdGVyIC5j''@;'; + put 'put ''b2x1bW4tc3dpdGNoLXdyYXBwZXIuYWN0aXZlIC5jb2x1bW4tdG9nZ2xlLS1hY3Rpb24gY2RzLWljb24sLmRhdGFncmlkLWZvb3RlciAuY29sdW1uLXN3aXRjaC13cmFwcGVyLmFjdGl2ZSAuY29sdW1uLXRvZ2dsZS0tYWN0aW9uIGNsci1pY29ue2NvbG9yOiMwMDcyYTM7Y29sb3I6dmFyKC0t''@;'; + put 'put ''Y2xyLWNvbG9yLWFjdGlvbi02MDAsICMwMDcyYTMpfS5kYXRhZ3JpZC1mb290ZXIgLmNvbHVtbi1zd2l0Y2gtd3JhcHBlciAuY29sdW1uLXRvZ2dsZS0tYWN0aW9ue21pbi13aWR0aDouOXJlbTtwYWRkaW5nLWxlZnQ6MDtwYWRkaW5nLXJpZ2h0OjB9LmRhdGFncmlkLWZvb3RlciAuY29sdW1u''@;'; + put 'put ''LXN3aXRjaC13cmFwcGVyIC5jb2x1bW4tdG9nZ2xlLS1hY3Rpb24gY2RzLWljb24sLmRhdGFncmlkLWZvb3RlciAuY29sdW1uLXN3aXRjaC13cmFwcGVyIC5jb2x1bW4tdG9nZ2xlLS1hY3Rpb24gY2xyLWljb257Y29sb3I6IzhjOGM4Yztjb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC02''@;'; + put 'put ''MDAsICM4YzhjOGMpfS5kYXRhZ3JpZC1mb290ZXIgLmNvbHVtbi1zd2l0Y2gtd3JhcHBlciAuY29sdW1uLXRvZ2dsZS0tYWN0aW9uOmhvdmVyIGNkcy1pY29uLC5kYXRhZ3JpZC1mb290ZXIgLmNvbHVtbi1zd2l0Y2gtd3JhcHBlciAuY29sdW1uLXRvZ2dsZS0tYWN0aW9uOmhvdmVyIGNsci1p''@;'; + put 'put ''Y29ue2NvbG9yOiMwMDcyYTM7Y29sb3I6dmFyKC0tY2xyLWNvbG9yLWFjdGlvbi02MDAsICMwMDcyYTMpfS5kYXRhZ3JpZC1mb290ZXIgLmNvbHVtbi1zd2l0Y2gtd3JhcHBlciAuY29sdW1uLXN3aXRjaHtib3JkZXItcmFkaXVzOi4xNXJlbTtib3JkZXItcmFkaXVzOnZhcigtLWNsci1nbG9i''@;'; + put 'put ''YWwtYm9yZGVycmFkaXVzLCAuMTVyZW0pO2JhY2tncm91bmQtY29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1kYXRhZ3JpZC1wb3BvdmVyLWJnLWNvbG9yLCB3aGl0ZSk7Ym9yZGVyLWNvbG9yOiNjY2M7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1kYXRhZ3JpZC1wb3BvdmVy''@;'; + put 'put ''LWJvcmRlci1jb2xvciwgI2NjY2NjYyk7Ym9yZGVyLXdpZHRoOi4wNXJlbTtib3JkZXItd2lkdGg6dmFyKC0tY2xyLWdsb2JhbC1ib3JkZXJ3aWR0aCwgLjA1cmVtKTtib3gtc2hhZG93OjAgLjA1cmVtIC4xNXJlbSAjOGM4YzhjNDA7Ym94LXNoYWRvdzowIC4wNXJlbSAuMTVyZW0gdmFyKC0t''@;'; + put 'put ''Y2xyLWRhdGFncmlkLXBvcG92ZXJzLWJveC1zaGFkb3ctY29sb3IsIHJnYmEoMTQwLCAxNDAsIDE0MCwgLjI1KSk7cGFkZGluZzouOXJlbTtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLXRvcDpub25lO3dpZHRoOjEyLjVyZW07ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjt6''@;'; + put 'put ''LWluZGV4OjEwNTB9LmRhdGFncmlkLWZvb3RlciAuY29sdW1uLXN3aXRjaC13cmFwcGVyIC5jb2x1bW4tc3dpdGNoIC5zd2l0Y2gtaGVhZGVye2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2Vlbjtmb250LXdlaWdodDo0MDA7Zm9udC1zaXplOi44cmVtO3BhZGRpbmct''@;'; + put 'put ''Ym90dG9tOi42cmVtO2xpbmUtaGVpZ2h0OjEuMnJlbX0uZGF0YWdyaWQtZm9vdGVyIC5jb2x1bW4tc3dpdGNoLXdyYXBwZXIgLmNvbHVtbi1zd2l0Y2ggLnN3aXRjaC1oZWFkZXIgYnV0dG9ue21pbi13aWR0aDouOXJlbTttYXJnaW46MDtwYWRkaW5nOjB9LmRhdGFncmlkLWZvb3RlciAuY29s''@;'; + put 'put ''dW1uLXN3aXRjaC13cmFwcGVyIC5jb2x1bW4tc3dpdGNoIC5zd2l0Y2gtY29udGVudHttYXgtaGVpZ2h0OjE1cmVtO292ZXJmbG93LXk6YXV0bzttaW4taGVpZ2h0OjIuNHJlbX0uZGF0YWdyaWQtZm9vdGVyIC5jb2x1bW4tc3dpdGNoLXdyYXBwZXIgLmNvbHVtbi1zd2l0Y2ggLnN3aXRjaC1j''@;'; + put 'put ''b250ZW50IGxpe2xpbmUtaGVpZ2h0OjEuMnJlbTtwYWRkaW5nLWxlZnQ6LjFyZW19LmRhdGFncmlkLWZvb3RlciAuY29sdW1uLXN3aXRjaC13cmFwcGVyIC5jb2x1bW4tc3dpdGNoIC5zd2l0Y2gtZm9vdGVyIC5idG57bWFyZ2luOjA7cGFkZGluZzowfS5kYXRhZ3JpZC1mb290ZXIgLmNvbHVt''@;'; + put 'put ''bi1zd2l0Y2gtd3JhcHBlciAuY29sdW1uLXN3aXRjaCAuc3dpdGNoLWZvb3RlciAuYWN0aW9uLXJpZ2h0e2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmR9LmRhdGFncmlkLWZvb3RlciAuY29sdW1uLXN3aXRjaC13cmFwcGVyIC5jb2x1bW4tc3dpdGNoe2JvcmRlci1yYWRp''@;'; + put 'put ''dXM6LjE1cmVtO2JvcmRlci1yYWRpdXM6dmFyKC0tY2xyLWdsb2JhbC1ib3JkZXJyYWRpdXMsIC4xNXJlbSk7YmFja2dyb3VuZC1jb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWRhdGFncmlkLXBvcG92ZXItYmctY29sb3IsIHdoaXRlKTtib3JkZXItd2lkdGg6LjA1cmVt''@;'; + put 'put ''O2JvcmRlci13aWR0aDp2YXIoLS1jbHItZ2xvYmFsLWJvcmRlcndpZHRoLCAuMDVyZW0pO2JvcmRlci1jb2xvcjojY2NjO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItZGF0YWdyaWQtcG9wb3Zlci1ib3JkZXItY29sb3IsICNjY2NjY2MpO2JvcmRlci1zdHlsZTpzb2xpZDtib3gtc2hhZG93OjAg''@;'; + put 'put ''LjA1cmVtIC4xNXJlbSAjOGM4YzhjNDA7Ym94LXNoYWRvdzowIC4wNXJlbSAuMTVyZW0gdmFyKC0tY2xyLWRhdGFncmlkLXBvcG92ZXJzLWJveC1zaGFkb3ctY29sb3IsIHJnYmEoMTQwLCAxNDAsIDE0MCwgLjI1KSk7cGFkZGluZzouOXJlbTt3aWR0aDoxMi41cmVtO2Rpc3BsYXk6ZmxleDtm''@;'; + put 'put ''bGV4LWRpcmVjdGlvbjpjb2x1bW47ei1pbmRleDoxMDUwfS5kYXRhZ3JpZC1mb290ZXIgLmNvbHVtbi1zd2l0Y2gtd3JhcHBlciAuY29sdW1uLXN3aXRjaCAuc3dpdGNoLWhlYWRlcntkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47Zm9udC13ZWlnaHQ6NDAwO2Zv''@;'; + put 'put ''bnQtc2l6ZTouOHJlbTtwYWRkaW5nLWJvdHRvbTouNnJlbTtsaW5lLWhlaWdodDoxLjJyZW19LmRhdGFncmlkLWZvb3RlciAuY29sdW1uLXN3aXRjaC13cmFwcGVyIC5jb2x1bW4tc3dpdGNoIC5zd2l0Y2gtaGVhZGVyIGJ1dHRvbnttaW4td2lkdGg6LjlyZW07bWFyZ2luOjA7cGFkZGluZzow''@;'; + put 'put ''O2NvbG9yOiNiM2IzYjM7Y29sb3I6dmFyKC0tY2xyLWRhdGFncmlkLWNvbHVtbi1zd2l0Y2gtaGVhZGVyLWZvbnQtY29sb3IsICNiM2IzYjMpfS5kYXRhZ3JpZC1mb290ZXIgLmNvbHVtbi1zd2l0Y2gtd3JhcHBlciAuY29sdW1uLXN3aXRjaCAuc3dpdGNoLWhlYWRlciBidXR0b246aG92ZXJ7''@;'; + put 'put ''Y29sb3I6IzAwNzJhMztjb2xvcjp2YXIoLS1jbHItZGF0YWdyaWQtY29sdW1uLXN3aXRjaC1oZWFkZXItZm9udC1ob3Zlci1jb2xvciwgIzAwNzJhMyl9LmRhdGFncmlkLWZvb3RlciAuY29sdW1uLXN3aXRjaC13cmFwcGVyIC5jb2x1bW4tc3dpdGNoIC5zd2l0Y2gtY29udGVudHttYXgtaGVp''@;'; + put 'put ''Z2h0OjE1cmVtO292ZXJmbG93LXk6YXV0bzttaW4taGVpZ2h0OjEuMjVyZW19LmRhdGFncmlkLWZvb3RlciAuY29sdW1uLXN3aXRjaC13cmFwcGVyIC5jb2x1bW4tc3dpdGNoIC5zd2l0Y2gtY29udGVudCBsaXtsaW5lLWhlaWdodDoxLjJyZW07cGFkZGluZy1sZWZ0Oi4xcmVtfS5kYXRhZ3Jp''@;'; + put 'put ''ZC1mb290ZXIgLmNvbHVtbi1zd2l0Y2gtd3JhcHBlciAuY29sdW1uLXN3aXRjaCAuc3dpdGNoLWZvb3RlciAuYnRue21hcmdpbjowO3BhZGRpbmc6MH0uZGF0YWdyaWQtZm9vdGVyIC5jb2x1bW4tc3dpdGNoLXdyYXBwZXIgLmNvbHVtbi1zd2l0Y2ggLnN3aXRjaC1mb290ZXIgLmFjdGlvbi1y''@;'; + put 'put ''aWdodHtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kfS5kYXRhZ3JpZC1mb290ZXIgLmNsci1mb3JtLWNvbnRyb2wtZGlzYWJsZWR7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtoZWlnaHQ6MTAwJX0uY2xyLWZvcm0tY29udHJvbC1kaXNhYmxlZCAuZGF0YWdy''@;'; + put 'put ''aWQtZm9vdGVyLXNlbGVjdC5jbHItY2hlY2tib3gtd3JhcHBlciBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVse2N1cnNvcjpkZWZhdWx0O21hcmdpbi1yaWdodDouNDVyZW19LmNsci1mb3JtLWNvbnRyb2wtZGlzYWJsZWQgLmRhdGFncmlkLWZvb3Rlci1zZWxlY3QuY2xyLWNo''@;'; + put 'put ''ZWNrYm94LXdyYXBwZXIgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbDpiZWZvcmV7YmFja2dyb3VuZC1jb2xvcjojOGM4YzhjO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNjAwLCAjOGM4YzhjKX0uY2xyLWZvcm0tY29udHJvbC1kaXNhYmxlZCAu''@;'; + put 'put ''ZGF0YWdyaWQtZm9vdGVyLXNlbGVjdC5jbHItY2hlY2tib3gtd3JhcHBlciBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsOmFmdGVye2JvcmRlci1sZWZ0LWNvbG9yOiNmZmY7Ym9yZGVyLWxlZnQtY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtMCwgd2hpdGUpO2JvcmRl''@;'; + put 'put ''ci1ib3R0b20tY29sb3I6I2ZmZjtib3JkZXItYm90dG9tLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTAsIHdoaXRlKX0uZGF0YWdyaWQtc3Bpbm5lcntwb3NpdGlvbjphYnNvbHV0ZTtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7''@;'; + put 'put ''d2lkdGg6MTAwJTt0b3A6LjZyZW07aGVpZ2h0OmNhbGMoMTAwJSAtIC42cmVtKTtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY5O2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWRhdGFncmlkLWxvYWRpbmctYmFja2dyb3VuZCwgcmdiYSgyNTUsIDI1NSwgMjU1LCAuNikpO3otaW5kZXg6NTkwfS5k''@;'; + put 'put ''YXRhZ3JpZC1zZWxlY3QgLmNsci1jb250cm9sLWxhYmVse21pbi1oZWlnaHQ6LjZyZW07bWFyZ2luLXRvcDotLjI0cmVtO3BhZGRpbmctbGVmdDouN3JlbX0uZGF0YWdyaWQtY29tcGFjdCAuZGF0YWdyaWQtaGVhZGVye21pbi1oZWlnaHQ6MS4ycmVtfS5kYXRhZ3JpZC1jb21wYWN0IC5kYXRh''@;'; + put 'put ''Z3JpZC1jb2x1bW4gLmRhdGFncmlkLWNvbHVtbi1zZXBhcmF0b3I6YWZ0ZXJ7aGVpZ2h0OmNhbGMoMTAwJSArIC4yNXJlbSk7dG9wOmNhbGMoLS4yNSouNnJlbSArIC4wNXJlbSl9LmRhdGFncmlkLWNvbXBhY3QgLmRhdGFncmlkLWNlbGwgY2xyLWljb257bWFyZ2luLXRvcDotLjJyZW07bWFy''@;'; + put 'put ''Z2luLWJvdHRvbTotLjE1cmVtO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0uMDVyZW0pfS5kYXRhZ3JpZC1jb21wYWN0IC5kYXRhZ3JpZC1jZWxsIGNkcy1pY29ue21hcmdpbi10b3A6LS4ycmVtO21hcmdpbi1ib3R0b206LS4xNXJlbX0uZGF0YWdyaWQtY29tcGFjdCAuZGF0YWdyaWQtY2VsbCAu''@;'; + put 'put ''YmFkZ2V7bWFyZ2luLXRvcDotLjE1cmVtO21hcmdpbi1ib3R0b206LS4wNXJlbX0uZGF0YWdyaWQtY29tcGFjdCAuZGF0YWdyaWQtZXhwYW5kYWJsZS1jYXJldHt0ZXh0LWFsaWduOmNlbnRlcn0uZGF0YWdyaWQtY29tcGFjdCAuZGF0YWdyaWQtZXhwYW5kYWJsZS1jYXJldCAuc3Bpbm5lcntt''@;'; + put 'put ''YXJnaW4tdG9wOi4xNXJlbX0uZGF0YWdyaWQtY29tcGFjdCAuZGF0YWdyaWQtZXhwYW5kYWJsZS1jYXJldCAuZGF0YWdyaWQtZXhwYW5kYWJsZS1jYXJldC1idXR0b257LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7LW1vei1hcHBlYXJhbmNlOm5vbmU7LW1zLWFwcGVhcmFuY2U6bm9uZTstby1h''@;'; + put 'put ''cHBlYXJhbmNlOm5vbmU7bWFyZ2luOjA7cGFkZGluZzowO2JvcmRlcjowO2JvcmRlci1yYWRpdXM6MDtib3gtc2hhZG93Om5vbmU7YmFja2dyb3VuZDowIDA7aGVpZ2h0OjEuMnJlbTt3aWR0aDoxLjJyZW07b3V0bGluZS1vZmZzZXQ6LS4ycmVtfWJ1dHRvbi5kYXRhZ3JpZC1jb21wYWN0IC5k''@;'; + put 'put ''YXRhZ3JpZC1leHBhbmRhYmxlLWNhcmV0IC5kYXRhZ3JpZC1leHBhbmRhYmxlLWNhcmV0LWJ1dHRvbntjdXJzb3I6cG9pbnRlcn0uZGF0YWdyaWQtY29tcGFjdCAuZGF0YWdyaWQtZXhwYW5kYWJsZS1jYXJldCAuZGF0YWdyaWQtZXhwYW5kYWJsZS1jYXJldC1pY29ue21hcmdpbjowfS5kYXRh''@;'; + put 'put ''Z3JpZC1jb21wYWN0IC5kYXRhZ3JpZC1leHBhbmRhYmxlLWNhcmV0LmRhdGFncmlkLWNlbGx7cGFkZGluZzowfS5kYXRhZ3JpZC1jb21wYWN0IC5kYXRhZ3JpZC1leHBhbmRhYmxlLWNhcmV0LmRhdGFncmlkLWNvbHVtbntwYWRkaW5nLXRvcDouM3JlbTtwYWRkaW5nLWJvdHRvbTouMjVyZW19''@;'; + put 'put ''LmRhdGFncmlkLWNvbXBhY3QgLmRhdGFncmlkLXNpZ25wb3N0LXRyaWdnZXIgLnNpZ25wb3N0IC5zaWducG9zdC10cmlnZ2VyIGNkcy1pY29uOm5vdChbc2hhcGU9aW5mby1jaXJjbGVdLFtzaGFwZT1leGNsYW1hdGlvbi10cmlhbmdsZV0sW3NoYXBlPWV4Y2xhbWF0aW9uLWNpcmNsZV0sW3No''@;'; + put 'put ''YXBlPWNoZWNrLWNpcmNsZV0sW3NoYXBlPWluZm9dLFtzaGFwZT1lcnJvcl0pLC5kYXRhZ3JpZC1jb21wYWN0IC5kYXRhZ3JpZC1zaWducG9zdC10cmlnZ2VyIC5zaWducG9zdCAuc2lnbnBvc3QtdHJpZ2dlciBjbHItaWNvbjpub3QoW3NoYXBlPWluZm8tY2lyY2xlXSxbc2hhcGU9ZXhjbGFt''@;'; + put 'put ''YXRpb24tdHJpYW5nbGVdLFtzaGFwZT1leGNsYW1hdGlvbi1jaXJjbGVdLFtzaGFwZT1jaGVjay1jaXJjbGVdLFtzaGFwZT1pbmZvXSxbc2hhcGU9ZXJyb3JdKXtoZWlnaHQ6MS4wNXJlbTt3aWR0aDoxLjA1cmVtfS5kYXRhZ3JpZC1jb21wYWN0IC5kYXRhZ3JpZC1mb290ZXJ7cGFkZGluZzow''@;'; + put 'put ''IC42cmVtO2xpbmUtaGVpZ2h0OjEuMTVyZW19LmRhdGFncmlkLWNvbXBhY3QgLmRhdGFncmlkLWZvb3RlciAucGFnaW5hdGlvbntsaW5lLWhlaWdodDoxLjJyZW19LmRhdGFncmlkLWNvbXBhY3QgLmRhdGFncmlkLWZvb3RlciAuY29sdW1uLXN3aXRjaC13cmFwcGVyIC5jb2x1bW4tdG9nZ2xl''@;'; + put 'put ''LS1hY3Rpb257bWFyZ2luOjA7b3V0bGluZS1vZmZzZXQ6LS4ycmVtfS5kYXRhZ3JpZC1jb21wYWN0IC5kYXRhZ3JpZC1mb290ZXIgLmNsci1mb3JtLWNvbnRyb2wtZGlzYWJsZWQgLmRhdGFncmlkLWZvb3Rlci1zZWxlY3QuY2xyLWNoZWNrYm94LXdyYXBwZXIgaW5wdXRbdHlwZT1jaGVja2Jv''@;'; + put 'put ''eF06Y2hlY2tlZCtsYWJlbHt0b3A6MH0uZGF0YWdyaWQtZm9vdGVyLWRlc2NyaXB0aW9ue2ZsZXg6MSAxIGF1dG87ZmxleC13cmFwOm5vd3JhcDt3aGl0ZS1zcGFjZTpub3dyYXA7ZGlzcGxheTpibG9jazt0ZXh0LWFsaWduOnJpZ2h0O21hcmdpbjphdXRvIDB9LnBhZ2luYXRpb24tbGlzdHts''@;'; + put 'put ''aXN0LXN0eWxlOm5vbmU7ZGlzcGxheTpmbGV4O2ZsZXgtZmxvdzpyb3cgbm93cmFwO2p1c3RpZnktY29udGVudDpjZW50ZXI7YWxpZ24taXRlbXM6c3RyZXRjaH0ucGFnaW5hdGlvbi1saXN0IC5wYWdpbmF0aW9uLWN1cnJlbnR7YmFja2dyb3VuZDowIDA7YmFja2dyb3VuZC1jb2xvcjojZmZm''@;'; + put 'put ''O2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWZvcm1zLXRleHRhcmVhLWJhY2tncm91bmQtY29sb3IsIHdoaXRlKTtib3JkZXItY29sb3I6I2NjYztib3JkZXItY29sb3I6dmFyKC0tY2xyLWRhdGFncmlkLXBhZ2luYXRpb24taW5wdXQtYm9yZGVyLWNvbG9yLCAjY2NjY2NjKTtib3JkZXIt''@;'; + put 'put ''d2lkdGg6LjA1cmVtO2JvcmRlci13aWR0aDp2YXIoLS1jbHItZ2xvYmFsLWJvcmRlcndpZHRoLCAuMDVyZW0pO2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItcmFkaXVzOi4xNXJlbTtib3JkZXItcmFkaXVzOnZhcigtLWNsci1nbG9iYWwtYm9yZGVycmFkaXVzLCAuMTVyZW0pO2xpbmUtaGVp''@;'; + put 'put ''Z2h0OjEuMnJlbTtmb250LXNpemU6LjU1cmVtO21pbi13aWR0aDoxLjJyZW07dGV4dC1hbGlnbjpjZW50ZXI7dHJhbnNpdGlvbjpub25lIWltcG9ydGFudH0ucGFnaW5hdGlvbi1saXN0IC5wYWdpbmF0aW9uLWN1cnJlbnQ6Zm9jdXMsLnBhZ2luYXRpb24tbGlzdCAucGFnaW5hdGlvbi1jdXJy''@;'; + put 'put ''ZW50LmNsci1mb2N1c3tiYWNrZ3JvdW5kOjAgMDtib3JkZXI6LjA1cmVtIHNvbGlkO2JvcmRlci1jb2xvcjojNDlhZWRhO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItZGF0YWdyaWQtcGFnaW5hdGlvbi1pbnB1dC1ib3JkZXItZm9jdXMtY29sb3IsICM0OWFlZGEpO2JveC1zaGFkb3c6MCAwIC4w''@;'; + put 'put ''NXJlbSAjNDlhZWRhO2JveC1zaGFkb3c6MCAwIHZhcigtLWNsci1nbG9iYWwtYm9yZGVyd2lkdGgsIC4wNXJlbSkgdmFyKC0tY2xyLWRhdGFncmlkLXBhZ2luYXRpb24taW5wdXQtYm9yZGVyLWZvY3VzLWNvbG9yLCAjNDlhZWRhKX0ucGFnaW5hdGlvbi1saXN0Pip7cGFkZGluZzowIC4xMnJl''@;'; + put 'put ''bX0ucGFnaW5hdGlvbi1saXN0IC5wYWdpbmF0aW9uLWZpcnN0LC5wYWdpbmF0aW9uLWxpc3QgLnBhZ2luYXRpb24tbGFzdCwucGFnaW5hdGlvbi1saXN0IC5wYWdpbmF0aW9uLXByZXZpb3VzLC5wYWdpbmF0aW9uLWxpc3QgLnBhZ2luYXRpb24tbmV4dHtkaXNwbGF5OmZsZXg7YWxpZ24taXRl''@;'; + put 'put ''bXM6Y2VudGVyO2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDtiYWNrZ3JvdW5kLXNpemU6Y29udGFpbn0ucGFnaW5hdGlvbi1saXN0IC5wYWdpbmF0aW9uLWZpcnN0OmRpc2FibGVkLC5wYWdpbmF0aW9uLWxpc3QgLnBhZ2luYXRpb24tbGFzdDpkaXNhYmxlZCwucGFnaW5hdGlvbi1saXN0''@;'; + put 'put ''IC5wYWdpbmF0aW9uLXByZXZpb3VzOmRpc2FibGVkLC5wYWdpbmF0aW9uLWxpc3QgLnBhZ2luYXRpb24tbmV4dDpkaXNhYmxlZHtjb2xvcjojOGM4YzhjO2NvbG9yOnZhcigtLWNsci1kYXRhZ3JpZC1wYWdpbmF0aW9uLWJ0bi1kaXNhYmxlZC1jb2xvciwgIzhjOGM4Yyk7b3BhY2l0eTouNTY7''@;'; + put 'put ''b3BhY2l0eTp2YXIoLS1jbHItZGF0YWdyaWQtcGFnaW5hdGlvbi1idG4tZGlzYWJsZWQtb3BhY2l0eSwgLjU2KX0ucGFnaW5hdGlvbi1saXN0IC5wYWdpbmF0aW9uLWZpcnN0LC5wYWdpbmF0aW9uLWxpc3QgLnBhZ2luYXRpb24tcHJldmlvdXN7bWFyZ2luLXJpZ2h0Oi42cmVtfS5wYWdpbmF0''@;'; + put 'put ''aW9uLWxpc3QgLnBhZ2luYXRpb24tbGFzdCwucGFnaW5hdGlvbi1saXN0IC5wYWdpbmF0aW9uLW5leHR7bWFyZ2luLWxlZnQ6LjZyZW19LnBhZ2luYXRpb24tbGlzdCBidXR0b257LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7LW1vei1hcHBlYXJhbmNlOm5vbmU7LW1zLWFwcGVhcmFuY2U6bm9u''@;'; + put 'put ''ZTstby1hcHBlYXJhbmNlOm5vbmU7bWFyZ2luOjA7cGFkZGluZzowO2JvcmRlcjowO2JvcmRlci1yYWRpdXM6MDtib3gtc2hhZG93Om5vbmU7YmFja2dyb3VuZDowIDA7Y29sb3I6IzY2Njtjb2xvcjp2YXIoLS1jbHItZGF0YWdyaWQtcGFnaW5hdGlvbi1idG4tY29sb3IsICM2NjY2NjYpO2N1''@;'; + put 'put ''cnNvcjpwb2ludGVyfWJ1dHRvbi5wYWdpbmF0aW9uLWxpc3QgYnV0dG9ue2N1cnNvcjpwb2ludGVyfS5kYXRhZ3JpZC1jZWxsLXdpZHRoLXplcm97Ym9yZGVyOjAhaW1wb3J0YW50O3BhZGRpbmc6MCFpbXBvcnRhbnQ7d2lkdGg6MDtmbGV4OjAgMCBhdXRvIWltcG9ydGFudDttaW4td2lkdGg6''@;'; + put 'put ''MCFpbXBvcnRhbnQ7ZGlzcGxheTpibG9jayFpbXBvcnRhbnR9LmRhdGFncmlkLW91dGVyLXdyYXBwZXJ7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOnJvdztmbGV4LWdyb3c6MTtvdmVyZmxvdzphdXRvfS5kYXRhZ3JpZC1pbm5lci13cmFwcGVye2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVj''@;'; + put 'put ''dGlvbjpjb2x1bW47ZmxleC1ncm93OjE7b3ZlcmZsb3c6YXV0bzttaW4td2lkdGg6MTJyZW19LmRhdGFncmlkLWRldGFpbC1vcGVuIC5kYXRhZ3JpZHtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czowO2JvcmRlci1yaWdodDpub25lfS5kYXRhZ3JpZC1kZXRhaWwtb3BlbiAuZGF0YWdyaWQtaW5u''@;'; + put 'put ''ZXItd3JhcHBlcnt3aWR0aDozNCV9LmRhdGFncmlkLWRldGFpbC1vcGVuIC5kYXRhZ3JpZC1wbGFjZWhvbGRlci1jb250YWluZXIsLmRhdGFncmlkLWRldGFpbC1vcGVuIC5kYXRhZ3JpZC1yb3d7Ym9yZGVyLXJpZ2h0Oi4wNXJlbSBzb2xpZCAjY2NjfS5kYXRhZ3JpZC1kZXRhaWwtb3BlbiAu''@;'; + put 'put ''ZGF0YWdyaWQtZm9vdGVye2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjB9LmRhdGFncmlkLWRldGFpbC1vcGVuIC5wYWdpbmF0aW9ue3dpZHRoOjEwMCV9LmRhdGFncmlkLWRldGFpbC1vcGVuIC5wYWdpbmF0aW9uLWRlc2NyaXB0aW9uLWNvbXBhY3R7dGV4dC1hbGlnbjpsZWZ0O2ZsZXg6''@;'; + put 'put ''MX0uZGF0YWdyaWQtZGV0YWlsLW9wZW4gLmRhdGFncmlkLWZvb3RlciAucGFnaW5hdGlvbi1saXN0e21hcmdpbi1yaWdodDowfS5kYXRhZ3JpZC1yb3ctZGV0YWlsLW9wZW57cG9zaXRpb246cmVsYXRpdmV9LmRhdGFncmlkLXJvdy1kZXRhaWwtb3BlbjpiZWZvcmV7Y29udGVudDoiIjtkaXNw''@;'; + put 'put ''bGF5OmlubGluZS1ibG9jaztwb3NpdGlvbjphYnNvbHV0ZTtib3JkZXI6LjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50O2JvcmRlci1yaWdodC1jb2xvcjojY2NjO2JvcmRlci1yaWdodC1jb2xvcjp2YXIoLS1jbHItdGFibGUtYm9yZGVyLWNvbG9yLCAj''@;'; + put 'put ''Y2NjY2NjKTt0b3A6LjVyZW07cmlnaHQ6MH0uZGF0YWdyaWQtcm93LWRldGFpbC1vcGVuOmFmdGVye2NvbnRlbnQ6IiI7ZGlzcGxheTppbmxpbmUtYmxvY2s7cG9zaXRpb246YWJzb2x1dGU7Ym9yZGVyOi40NXJlbSBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItcmlnaHQtY29sb3I6I2ZmZjti''@;'; + put 'put ''b3JkZXItcmlnaHQtY29sb3I6dmFyKC0tY2xyLWRhdGFncmlkLXBvcG92ZXItYmctY29sb3IsIHdoaXRlKTt0b3A6LjU1cmVtO3JpZ2h0Oi0uMDVyZW19LmRhdGFncmlkLWRldGFpbC1wYW5le21hcmdpbi10b3A6LjZyZW07Ym9yZGVyLXdpZHRoOi4wNXJlbTtib3JkZXItd2lkdGg6dmFyKC0t''@;'; + put 'put ''Y2xyLWdsb2JhbC1ib3JkZXJ3aWR0aCwgLjA1cmVtKTtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLWNvbG9yOiNjY2M7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1kYXRhZ3JpZC1kZWZhdWx0LWJvcmRlci1jb2xvciwgI2NjY2NjYyk7Ym9yZGVyLWxlZnQ6bm9uZTtib3JkZXItdG9wLXJpZ2h0''@;'; + put 'put ''LXJhZGl1czouMTVyZW07Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6dmFyKC0tY2xyLWdsb2JhbC1ib3JkZXJyYWRpdXMsIC4xNXJlbSk7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6LjE1cmVtO2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOnZhcigtLWNsci1nbG9iYWwtYm9yZGVycmFk''@;'; + put 'put ''aXVzLCAuMTVyZW0pO2JhY2tncm91bmQ6I2ZmZjtiYWNrZ3JvdW5kOnZhcigtLWNsci1kYXRhZ3JpZC1wb3BvdmVyLWJnLWNvbG9yLCB3aGl0ZSk7b3ZlcmZsb3c6aGlkZGVuO2Rpc3BsYXk6YmxvY2s7ZmxleC1ncm93OjI7d2lkdGg6NjYlfS5kYXRhZ3JpZC1kZXRhaWwtcGFuZS1jb250ZW50''@;'; + put 'put ''e2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47b3ZlcmZsb3c6YXV0bztoZWlnaHQ6MTAwJX0uZGF0YWdyaWQtZGV0YWlsLWJvZHl7ZmxleDoxIDEgYXV0bztwYWRkaW5nOjAgMS4ycmVtfS5kYXRhZ3JpZC1kZXRhaWwtaGVhZGVye2ZsZXg6MCAwIGF1dG87Zm9udC1zaXplOi45''@;'; + put 'put ''cmVtO2xpbmUtaGVpZ2h0OjEuNjhyZW07cGFkZGluZy1sZWZ0OjEuMnJlbTttYXJnaW4tdG9wOjA7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOnJvd30uZGF0YWdyaWQtZGV0YWlsLWhlYWRlciAuZGF0YWdyaWQtZGV0YWlsLWhlYWRlci10aXRsZXtmbGV4OjEgMSBhdXRvO3BhZGRpbmct''@;'; + put 'put ''dG9wOi44cmVtfS5kYXRhZ3JpZC1kZXRhaWwtaGVhZGVyIC5kYXRhZ3JpZC1kZXRhaWwtcGFuZS1jbG9zZXtmbGV4OjEgMSAxLjhyZW07cGFkZGluZzowO2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmR9LmRhdGFncmlkLWRldGFpbC1oZWFkZXIgLmRhdGFncmlkLWRldGFp''@;'; + put 'put ''bC1wYW5lLWNsb3NlIC5idG4uYnRuLWxpbmt7bWFyZ2luLXRvcDouOHJlbTttYXJnaW4tYm90dG9tOjA7cGFkZGluZy1yaWdodDowfS5kYXRhZ3JpZC1kZXRhaWwtaGVhZGVyIC5kYXRhZ3JpZC1kZXRhaWwtcGFuZS1jbG9zZSAuYnRuLmJ0bi1saW5rIGNkcy1pY29ue2NvbG9yOiM4YzhjOGM7''@;'; + put 'put ''Y29sb3I6dmFyKC0tY2xyLW1vZGFsLWNsb3NlLWNvbG9yLCAjOGM4YzhjKX0uZGF0YWdyaWQtZGV0YWlsLWNhcmV0e3BhZGRpbmc6MDt0ZXh0LWFsaWduOmNlbnRlcn0uZGF0YWdyaWQtZGV0YWlsLWNhcmV0LmRhdGFncmlkLWNlbGx7cGFkZGluZzouM3JlbSAuNDVyZW19LmRhdGFncmlkLWRl''@;'; + put 'put ''dGFpbC1jYXJldCAuZGF0YWdyaWQtZGV0YWlsLWNhcmV0LWJ1dHRvbnstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTstbW96LWFwcGVhcmFuY2U6bm9uZTstbXMtYXBwZWFyYW5jZTpub25lOy1vLWFwcGVhcmFuY2U6bm9uZTttYXJnaW46MDtwYWRkaW5nOjA7Ym9yZGVyOjA7Ym9yZGVyLXJhZGl1''@;'; + put 'put ''czowO2JveC1zaGFkb3c6bm9uZTtiYWNrZ3JvdW5kOjAgMDtjdXJzb3I6cG9pbnRlcjtwYWRkaW5nOi4xcmVtIC4ycmVtIC4xNXJlbX1idXR0b24uZGF0YWdyaWQtZGV0YWlsLWNhcmV0IC5kYXRhZ3JpZC1kZXRhaWwtY2FyZXQtYnV0dG9ue2N1cnNvcjpwb2ludGVyfS5kYXRhZ3JpZC1kZXRh''@;'; + put 'put ''aWwtY2FyZXQgLmRhdGFncmlkLWRldGFpbC1jYXJldC1idXR0b24uaXMtb3BlbntiYWNrZ3JvdW5kLWNvbG9yOiMwMDcyYTM7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItZGF0YWdyaWQtZGV0YWlsLWNhcmV0LWljb24tb3Blbi1iZy1jb2xvciwgIzAwNzJhMyk7Ym9yZGVyLXJhZGl1czou''@;'; + put 'put ''MTVyZW07Ym9yZGVyLXJhZGl1czp2YXIoLS1jbHItZ2xvYmFsLWJvcmRlcnJhZGl1cywgLjE1cmVtKX0uZGF0YWdyaWQtZGV0YWlsLWNhcmV0IC5kYXRhZ3JpZC1kZXRhaWwtY2FyZXQtYnV0dG9uLmlzLW9wZW4gLmRhdGFncmlkLWRldGFpbC1jYXJldC1pY29ue2NvbG9yOiNmZmY7Y29sb3I6''@;'; + put 'put ''dmFyKC0tY2xyLWRhdGFncmlkLWRldGFpbC1jYXJldC1pY29uLW9wZW4taWNvbi1jb2xvciwgd2hpdGUpfS5kYXRhZ3JpZC1kZXRhaWwtY2FyZXQgLmRhdGFncmlkLWRldGFpbC1jYXJldC1pY29ue2NvbG9yOiM4YzhjOGM7Y29sb3I6dmFyKC0tY2xyLWRhdGFncmlkLWljb24tY29sb3IsICM4''@;'; + put 'put ''YzhjOGMpO21hcmdpbi10b3A6LjFyZW19LmRhdGFncmlkLWRldGFpbC1jYXJldCAuc3Bpbm5lcnttYXJnaW4tdG9wOi4zcmVtfS5kYXRhZ3JpZC1kZXRhaWwtY2FyZXQuZGF0YWdyaWQtY29sdW1ue3BhZGRpbmc6LjU1cmVtIC42cmVtfS5kYXRhZ3JpZC1kZXRhaWwtb3ZlcmxheS5kYXRhZ3Jp''@;'; + put 'put ''ZC1kZXRhaWwtb3Blbj4uZGF0YWdyaWQtb3V0ZXItd3JhcHBlcj4uZGF0YWdyaWQtaW5uZXItd3JhcHBlcntkaXNwbGF5Om5vbmV9LmRhdGFncmlkLWRldGFpbC1vdmVybGF5IC5kYXRhZ3JpZC1kZXRhaWwtcGFuZXtib3JkZXItbGVmdDouMDVyZW0gc29saWQgI2NjYztib3JkZXItcmFkaXVz''@;'; + put 'put ''Oi4xNXJlbX1AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOjU3NnB4KXsuZGF0YWdyaWQtZGV0YWlsLW9wZW4+LmRhdGFncmlkLW91dGVyLXdyYXBwZXI+LmRhdGFncmlkLWlubmVyLXdyYXBwZXJ7ZGlzcGxheTpub25lfS5kYXRhZ3JpZC1kZXRhaWwtcGFuZXtib3JkZXItbGVmdDouMDVy''@;'; + put 'put ''ZW0gc29saWQgI2NjYztib3JkZXItcmFkaXVzOi4xNXJlbX19LmNvbHVtbi1zd2l0Y2h7Ym9yZGVyLXJhZGl1czouMTVyZW07Ym9yZGVyLXJhZGl1czp2YXIoLS1jbHItZ2xvYmFsLWJvcmRlcnJhZGl1cywgLjE1cmVtKTtwYWRkaW5nOi45cmVtO2JhY2tncm91bmQtY29sb3I6I2ZmZjtiYWNr''@;'; + put 'put ''Z3JvdW5kLWNvbG9yOnZhcigtLWNsci1kYXRhZ3JpZC1wb3BvdmVyLWJnLWNvbG9yLCB3aGl0ZSk7Ym9yZGVyLXdpZHRoOi4wNXJlbTtib3JkZXItd2lkdGg6dmFyKC0tY2xyLWdsb2JhbC1ib3JkZXJ3aWR0aCwgLjA1cmVtKTtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLWNvbG9yOiNjY2M7''@;'; + put 'put ''Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1kYXRhZ3JpZC1wb3BvdmVyLWJvcmRlci1jb2xvciwgI2NjY2NjYyk7Ym94LXNoYWRvdzowIC4wNXJlbSAuMTVyZW0gIzhjOGM4YzQwO2JveC1zaGFkb3c6MCAuMDVyZW0gLjE1cmVtIHZhcigtLWNsci1kYXRhZ3JpZC1wb3BvdmVycy1ib3gtc2hhZG93''@;'; + put 'put ''LWNvbG9yLCByZ2JhKDE0MCwgMTQwLCAxNDAsIC4yNSkpO3dpZHRoOjEyLjVyZW07ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjt6LWluZGV4OjEwNTB9LmNvbHVtbi1zd2l0Y2ggLnN3aXRjaC1oZWFkZXJ7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3''@;'; + put 'put ''ZWVuO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXNpemU6LjhyZW07cGFkZGluZy1ib3R0b206LjZyZW07bGluZS1oZWlnaHQ6MS4ycmVtfS5jb2x1bW4tc3dpdGNoIC5zd2l0Y2gtaGVhZGVyIGgxLC5jb2x1bW4tc3dpdGNoIC5zd2l0Y2gtaGVhZGVyIGgyLC5jb2x1bW4tc3dpdGNoIC5zd2l0Y2gt''@;'; + put 'put ''aGVhZGVyIGgzLC5jb2x1bW4tc3dpdGNoIC5zd2l0Y2gtaGVhZGVyIGg0LC5jb2x1bW4tc3dpdGNoIC5zd2l0Y2gtaGVhZGVyIGg1LC5jb2x1bW4tc3dpdGNoIC5zd2l0Y2gtaGVhZGVyIGg2e2NvbG9yOiM2NjY7Y29sb3I6dmFyKC0tY2xyLXAxLWNvbG9yLCAjNjY2NjY2KTtmb250LXdlaWdo''@;'; + put 'put ''dDo0MDA7Zm9udC1zaXplOi44cmVtO2xpbmUtaGVpZ2h0OjEuMnJlbTttYXJnaW46MH0uY29sdW1uLXN3aXRjaCAuc3dpdGNoLWhlYWRlciBidXR0b257bWluLXdpZHRoOi45cmVtO21hcmdpbjowO3BhZGRpbmc6MDtjb2xvcjojYjNiM2IzO2NvbG9yOnZhcigtLWNsci1kYXRhZ3JpZC1jb2x1''@;'; + put 'put ''bW4tc3dpdGNoLWhlYWRlci1mb250LWNvbG9yLCAjYjNiM2IzKX0uY29sdW1uLXN3aXRjaCAuc3dpdGNoLWhlYWRlciBidXR0b246aG92ZXJ7Y29sb3I6IzAwNzJhMztjb2xvcjp2YXIoLS1jbHItZGF0YWdyaWQtY29sdW1uLXN3aXRjaC1oZWFkZXItZm9udC1ob3Zlci1jb2xvciwgIzAwNzJh''@;'; + put 'put ''Myl9LmNvbHVtbi1zd2l0Y2ggLnN3aXRjaC1jb250ZW50e21heC1oZWlnaHQ6MTVyZW07b3ZlcmZsb3cteTphdXRvO21pbi1oZWlnaHQ6MS4yNXJlbX0uY29sdW1uLXN3aXRjaCAuc3dpdGNoLWNvbnRlbnQgbGl7bGluZS1oZWlnaHQ6MS4ycmVtO3BhZGRpbmctbGVmdDouMXJlbX0uY29sdW1u''@;'; + put 'put ''LXN3aXRjaCAuc3dpdGNoLWZvb3RlciAuYnRue21hcmdpbjowO3BhZGRpbmc6MH0uY29sdW1uLXN3aXRjaCAuc3dpdGNoLWZvb3RlciAuYWN0aW9uLXJpZ2h0e2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmR9LmRhdGFncmlkLWZpbHRlcnttYXJnaW4tdG9wOi4yNHJlbTti''@;'; + put 'put ''YWNrZ3JvdW5kOiNmZmY7YmFja2dyb3VuZDp2YXIoLS1jbHItZGF0YWdyaWQtcG9wb3Zlci1iZy1jb2xvciwgd2hpdGUpO2JvcmRlci13aWR0aDouMDVyZW07Ym9yZGVyLXdpZHRoOnZhcigtLWNsci1nbG9iYWwtYm9yZGVyd2lkdGgsIC4wNXJlbSk7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRl''@;'; + put 'put ''ci1jb2xvcjojY2NjO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItZGF0YWdyaWQtcG9wb3Zlci1ib3JkZXItY29sb3IsICNjY2NjY2MpO3BhZGRpbmc6LjlyZW07Ym94LXNoYWRvdzowIC4wNXJlbSAuMTVyZW0gIzhjOGM4YzQwO2JveC1zaGFkb3c6MCAuMDVyZW0gLjE1cmVtIHZhcigtLWNsci1k''@;'; + put 'put ''YXRhZ3JpZC1wb3BvdmVycy1ib3gtc2hhZG93LWNvbG9yLCByZ2JhKDE0MCwgMTQwLCAxNDAsIC4yNSkpO2JvcmRlci1yYWRpdXM6LjE1cmVtO2JvcmRlci1yYWRpdXM6dmFyKC0tY2xyLWdsb2JhbC1ib3JkZXJyYWRpdXMsIC4xNXJlbSk7Zm9udC13ZWlnaHQ6NDAwfS5kYXRhZ3JpZC1maWx0''@;'; + put 'put ''ZXIgLmRhdGFncmlkLWZpbHRlci1jbG9zZS13cmFwcGVye3RleHQtYWxpZ246cmlnaHR9LmRhdGFncmlkLWZpbHRlciAuZGF0YWdyaWQtZmlsdGVyLWNsb3NlLXdyYXBwZXIgLmNsb3Nle2Zsb2F0Om5vbmV9LmRhdGFncmlkLWZpbHRlciAuZGF0YWdyaWQtZmlsdGVyLWFwcGx5e21hcmdpbi1i''@;'; + put 'put ''b3R0b206MH0uZGF0YWdyaWQtYWN0aW9uLW92ZXJmbG93e3Bvc2l0aW9uOmFic29sdXRlO2JhY2tncm91bmQ6I2ZmZjtiYWNrZ3JvdW5kOnZhcigtLWNsci1kYXRhZ3JpZC1wb3BvdmVyLWJnLWNvbG9yLCB3aGl0ZSk7cGFkZGluZzouM3JlbTttYXJnaW4tbGVmdDouM3JlbTtib3JkZXItd2lk''@;'; + put 'put ''dGg6LjA1cmVtO2JvcmRlci13aWR0aDp2YXIoLS1jbHItZ2xvYmFsLWJvcmRlcndpZHRoLCAuMDVyZW0pO2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItY29sb3I6I2NjYztib3JkZXItY29sb3I6dmFyKC0tY2xyLWRhdGFncmlkLXBvcG92ZXItYm9yZGVyLWNvbG9yLCAjY2NjY2NjKTtib3gt''@;'; + put 'put ''c2hhZG93OjAgLjA1cmVtIC4xNXJlbSAjOGM4YzhjNDA7Ym94LXNoYWRvdzowIC4wNXJlbSAuMTVyZW0gdmFyKC0tY2xyLWRhdGFncmlkLXBvcG92ZXJzLWJveC1zaGFkb3ctY29sb3IsIHJnYmEoMTQwLCAxNDAsIDE0MCwgLjI1KSk7Ym9yZGVyLXJhZGl1czouMTVyZW07Ym9yZGVyLXJhZGl1''@;'; + put 'put ''czp2YXIoLS1jbHItZ2xvYmFsLWJvcmRlcnJhZGl1cywgLjE1cmVtKTtmb250LXdlaWdodDo0MDA7d2hpdGUtc3BhY2U6bm93cmFwfS5kYXRhZ3JpZC1hY3Rpb24tb3ZlcmZsb3c6YmVmb3Jle2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwJTtyaWdodDoxMDAlO3dpZHRoOjA7''@;'; + put 'put ''aGVpZ2h0OjA7bWFyZ2luLXRvcDotLjNyZW07Ym9yZGVyOi4zcmVtIHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1sZWZ0OjAgbm9uZTtib3JkZXItcmlnaHQtY29sb3I6I2NjYztib3JkZXItcmlnaHQtY29sb3I6dmFyKC0tY2xyLWRhdGFncmlkLXBvcG92ZXItYm9yZGVyLWNvbG9yLCAjY2Nj''@;'; + put 'put ''Y2NjKX0uZGF0YWdyaWQtYWN0aW9uLW92ZXJmbG93OmFmdGVye2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwJTtyaWdodDoxMDAlO3dpZHRoOjA7aGVpZ2h0OjA7bWFyZ2luLXRvcDotLjI1cmVtO2JvcmRlci1yaWdodDouMjVyZW0gc29saWQgI2ZmZjtib3JkZXItdG9wOi4y''@;'; + put 'put ''NXJlbSBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItYm90dG9tOi4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudH0uZGF0YWdyaWQtYWN0aW9uLW92ZXJmbG93IC5hY3Rpb24taXRlbXtjb2xvcjojNjY2O2NvbG9yOnZhcigtLWNsci1kcm9wZG93bi10ZXh0LWNvbG9yLCAjNjY2NjY2KTtmb250LXNp''@;'; + put 'put ''emU6LjdyZW07bGV0dGVyLXNwYWNpbmc6bm9ybWFsO2JhY2tncm91bmQ6MCAwO2JvcmRlcjowO2N1cnNvcjpwb2ludGVyO2Rpc3BsYXk6YmxvY2s7bGluZS1oZWlnaHQ6MS4xNXJlbTttYXJnaW46MDtwYWRkaW5nOi4wNXJlbSAxLjJyZW0gMDt0ZXh0LWFsaWduOmxlZnQ7d2lkdGg6MTAwJX0u''@;'; + put 'put ''ZGF0YWdyaWQtYWN0aW9uLW92ZXJmbG93IC5hY3Rpb24taXRlbTpob3ZlciwuZGF0YWdyaWQtYWN0aW9uLW92ZXJmbG93IC5hY3Rpb24taXRlbTpmb2N1c3t0ZXh0LWRlY29yYXRpb246bm9uZTtiYWNrZ3JvdW5kLWNvbG9yOiNlOGU4ZTg7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItZGF0''@;'; + put 'put ''YWdyaWQtYWN0aW9uLXBvcG92ZXItaG92ZXItY29sb3IsICNlOGU4ZTgpfS5kYXRhZ3JpZC1hY3Rpb24tb3ZlcmZsb3cgLmFjdGlvbi1pdGVtLmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOiNlOGU4ZTg7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItZGF0YWdyaWQtcm93LWhvdmVyLCAjZThl''@;'; + put 'put ''OGU4KTtjb2xvcjojMDAwO2NvbG9yOnZhcigtLWNsci1kYXRhZ3JpZC1yb3ctaG92ZXItZm9udC1jb2xvciwgYmxhY2spfS5kYXRhZ3JpZC1hY3Rpb24tb3ZlcmZsb3cgLmFjdGlvbi1pdGVtOmZvY3Vze291dGxpbmU6MH0uZGF0YWdyaWQtYWN0aW9uLW92ZXJmbG93IC5hY3Rpb24taXRlbS5k''@;'; + put 'put ''aXNhYmxlZCwuZGF0YWdyaWQtYWN0aW9uLW92ZXJmbG93IC5hY3Rpb24taXRlbTpkaXNhYmxlZHtjdXJzb3I6bm90LWFsbG93ZWQ7b3BhY2l0eTouNDstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZX0uZGF0YWdyaWQtYWN0aW9uLW92ZXJmbG93IC5hY3Rpb24taXRl''@;'; + put 'put ''bS5kaXNhYmxlZDpob3ZlciwuZGF0YWdyaWQtYWN0aW9uLW92ZXJmbG93IC5hY3Rpb24taXRlbTpkaXNhYmxlZDpob3ZlcntiYWNrZ3JvdW5kOjAgMH0uZGF0YWdyaWQtYWN0aW9uLW92ZXJmbG93IC5hY3Rpb24taXRlbS5kaXNhYmxlZDphY3RpdmUsLmRhdGFncmlkLWFjdGlvbi1vdmVyZmxv''@;'; + put 'put ''dyAuYWN0aW9uLWl0ZW0uZGlzYWJsZWQ6Zm9jdXMsLmRhdGFncmlkLWFjdGlvbi1vdmVyZmxvdyAuYWN0aW9uLWl0ZW06ZGlzYWJsZWQ6YWN0aXZlLC5kYXRhZ3JpZC1hY3Rpb24tb3ZlcmZsb3cgLmFjdGlvbi1pdGVtOmRpc2FibGVkOmZvY3Vze2JhY2tncm91bmQ6MCAwO2JveC1zaGFkb3c6''@;'; + put 'put ''bm9uZX0uZGF0YWdyaWQtYWN0aW9uLW92ZXJmbG93IC5hY3Rpb24taXRlbSBjZHMtaWNvbiwuZGF0YWdyaWQtYWN0aW9uLW92ZXJmbG93IC5hY3Rpb24taXRlbSBjbHItaWNvbnt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsLTFweCwwKX0uZGF0YWdyaWQt''@;'; + put 'put ''aG9zdC5kYXRhZ3JpZC1jYWxjdWxhdGUtbW9kZXtkaXNwbGF5OmJsb2NrfS5kYXRhZ3JpZC1ob3N0LmRhdGFncmlkLWNhbGN1bGF0ZS1tb2RlIC5kYXRhZ3JpZCwuZGF0YWdyaWQtaG9zdC5kYXRhZ3JpZC1jYWxjdWxhdGUtbW9kZSAuZGF0YWdyaWQtZm9vdGVyLC5kYXRhZ3JpZC1ob3N0LmRh''@;'; + put 'put ''dGFncmlkLWNhbGN1bGF0ZS1tb2RlIC5kYXRhZ3JpZC1yb3ctbWFzdGVyLC5kYXRhZ3JpZC1ob3N0LmRhdGFncmlkLWNhbGN1bGF0ZS1tb2RlIC5kYXRhZ3JpZC1yb3ctY2xpY2thYmxle2Rpc3BsYXk6bm9uZX0uZGF0YWdyaWQtaG9zdC5kYXRhZ3JpZC1jYWxjdWxhdGUtbW9kZSAuZGF0YWdy''@;'; + put 'put ''aWQtY2FsY3VsYXRpb24tdGFibGV7ZGlzcGxheTp0YWJsZTt0YWJsZS1sYXlvdXQ6YXV0b30uZGF0YWdyaWQtaG9zdC5kYXRhZ3JpZC1jYWxjdWxhdGUtbW9kZSAuZGF0YWdyaWQtY2FsY3VsYXRpb24tdGFibGUgLmRhdGFncmlkLWNhbGN1bGF0aW9uLWhlYWRlcntkaXNwbGF5OnRhYmxlLWhl''@;'; + put 'put ''YWRlci1ncm91cH0uZGF0YWdyaWQtaG9zdC5kYXRhZ3JpZC1jYWxjdWxhdGUtbW9kZSAuZGF0YWdyaWQtY2FsY3VsYXRpb24tdGFibGUgLmRhdGFncmlkLWNhbGN1bGF0aW9uLWhlYWRlciAuZGF0YWdyaWQtY29sdW1ue2Rpc3BsYXk6dGFibGUtY2VsbDttaW4td2lkdGg6NC44cmVtfS5kYXRh''@;'; + put 'put ''Z3JpZC1ob3N0LmRhdGFncmlkLWNhbGN1bGF0ZS1tb2RlIC5kYXRhZ3JpZC1jYWxjdWxhdGlvbi10YWJsZSAuZGF0YWdyaWQtY2FsY3VsYXRpb24taGVhZGVyIC5kYXRhZ3JpZC1jb2x1bW57Ym9yZGVyLWNvbG9yOiNlOGU4ZTg7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci10YWJsZXJvdy1ib3Jk''@;'; + put 'put ''ZXJjb2xvciwgI2U4ZThlOCk7Ym9yZGVyLXdpZHRoOi4wNXJlbTtib3JkZXItd2lkdGg6dmFyKC0tY2xyLXRhYmxlLWJvcmRlcndpZHRoLCAuMDVyZW0pO2JvcmRlci1zdHlsZTpzb2xpZDtwYWRkaW5nOi41NXJlbSAuNnJlbTt2ZXJ0aWNhbC1hbGlnbjp0b3A7Y29sb3I6IzY2Njtjb2xvcjp2''@;'; + put 'put ''YXIoLS1jbHItcDYtY29sb3IsICM2NjY2NjYpO2ZvbnQtd2VpZ2h0OjYwMDtmb250LXdlaWdodDp2YXIoLS1jbHItZm9udC13ZWlnaHQtYm9sZCwgNjAwKTtmb250LXNpemU6LjU1cmVtO2xldHRlci1zcGFjaW5nOi4wM2VtO2xpbmUtaGVpZ2h0Oi42cmVtO21hcmdpbi10b3A6MS4ycmVtO21h''@;'; + put 'put ''cmdpbi1ib3R0b206MH0uZGF0YWdyaWQtaG9zdC5kYXRhZ3JpZC1jYWxjdWxhdGUtbW9kZSAuZGF0YWdyaWQtY2FsY3VsYXRpb24tdGFibGUgLmRhdGFncmlkLXJvd3tkaXNwbGF5OnRhYmxlLXJvd30uZGF0YWdyaWQtaG9zdC5kYXRhZ3JpZC1jYWxjdWxhdGUtbW9kZSAuZGF0YWdyaWQtY2Fs''@;'; + put 'put ''Y3VsYXRpb24tdGFibGUgLmRhdGFncmlkLXJvdyAuZGF0YWdyaWQtY2VsbHtkaXNwbGF5OnRhYmxlLWNlbGw7bWluLXdpZHRoOjQuOHJlbTtmb250LXNpemU6LjY1cmVtO2xpbmUtaGVpZ2h0Oi43cmVtO3BhZGRpbmc6LjU1cmVtIC42cmVtO3ZlcnRpY2FsLWFsaWduOnRvcH0uZGF0YWdyaWQt''@;'; + put 'put ''aG9zdC5kYXRhZ3JpZC1jYWxjdWxhdGUtbW9kZSAuZGF0YWdyaWQtY29sdW1uLXNlcGFyYXRvciwuZGF0YWdyaWQtaG9zdC5kYXRhZ3JpZC1jYWxjdWxhdGUtbW9kZSAuZGF0YWdyaWQtcGxhY2Vob2xkZXItY29udGFpbmVyLC5kYXRhZ3JpZC1ob3N0LmRhdGFncmlkLWNhbGN1bGF0ZS1tb2Rl''@;'; + put 'put ''IC5kYXRhZ3JpZC1maXhlZC1jb2x1bW57ZGlzcGxheTpub25lfS5mYWRle29wYWNpdHk6MDt0cmFuc2l0aW9uOm9wYWNpdHkgLjJzIGVhc2UtaW4tb3V0O3dpbGwtY2hhbmdlOm9wYWNpdHl9LmZhZGUuaW57b3BhY2l0eToxfS5mYWRlRG93bntvcGFjaXR5OjA7dHJhbnNmb3JtOnRyYW5zbGF0''@;'; + put 'put ''ZVkoLTI1JSk7dHJhbnNpdGlvbjpvcGFjaXR5IC4ycyBlYXNlLWluLW91dCx0cmFuc2Zvcm0gLjJzIGVhc2UtaW4tb3V0O3dpbGwtY2hhbmdlOm9wYWNpdHksdHJhbnNmb3JtfS5mYWRlRG93bi5pbntvcGFjaXR5OjE7dHJhbnNmb3JtOnRyYW5zbGF0ZSgwKX0ub2Zmc2NyZWVuLWZvY3VzLXJl''@;'; + put 'put ''Ym91bmRlcntwb3NpdGlvbjpmaXhlZCFpbXBvcnRhbnQ7Ym9yZGVyOjAhaW1wb3J0YW50O2hlaWdodDoxcHghaW1wb3J0YW50O3dpZHRoOjFweCFpbXBvcnRhbnQ7bGVmdDowIWltcG9ydGFudDt0b3A6LWNvbnZlcnRCYXNlbGluZVRvQmFzZTIwKDEpIWltcG9ydGFudDtvdmVyZmxvdzpoaWRk''@;'; + put 'put ''ZW4haW1wb3J0YW50O3Zpc2liaWxpdHk6aGlkZGVuIWltcG9ydGFudDtwYWRkaW5nOjAhaW1wb3J0YW50O21hcmdpbjowIDAgLWNvbnZlcnRCYXNlbGluZVRvQmFzZTIwKDEpIDAhaW1wb3J0YW50O3Zpc2liaWxpdHk6dmlzaWJsZSFpbXBvcnRhbnR9OnJvb3R7LS1jbHItbmF2LWJveC1zaGFk''@;'; + put 'put ''b3ctY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNDAwKTstLWNsci1uYXYtYWN0aXZlLWJveC1zaGFkb3ctY29sb3I6dmFyKC0tY2xyLWNvbG9yLWFjdGlvbi02MDApOy0tY2xyLW5hdi1hY3RpdmUtYmctY29sb3I6dmFyKC0tY2xyLWdsb2JhbC1zZWxlY3Rpb24tY29sb3IpOy0tY2xy''@;'; + put 'put ''LW5hdi1ob3Zlci1iZy1jb2xvcjp2YXIoLS1jbHItc2lkZW5hdi1saW5rLWhvdmVyLWNvbG9yKTstLWNsci1uYXYtbGluay1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC03MDApOy0tY2xyLW5hdi1saW5rLWFjdGl2ZS1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC0xMDAwKTst''@;'; + put 'put ''LWNsci1uYXYtbGluay1mb250LXdlaWdodDp2YXIoLS1jbHItcDEtZm9udC13ZWlnaHQpOy0tY2xyLW5hdi1saW5rLWFjdGl2ZS1mb250LXdlaWdodDp2YXIoLS1jbHItbmF2LWxpbmstZm9udC13ZWlnaHQpfUBtZWRpYSBzY3JlZW57c2VjdGlvblthcmlhLWhpZGRlbj10cnVlXXtkaXNwbGF5''@;'; + put 'put ''Om5vbmV9fVtkYXRhLWhpZGRlbj10cnVlXXtkaXNwbGF5Om5vbmV9YnV0dG9uLm5hdi1saW5re2JvcmRlci1yYWRpdXM6MDt0ZXh0LXRyYW5zZm9ybTpjYXBpdGFsaXplO21pbi13aWR0aDowfS50YWJzLW92ZXJmbG93e3Bvc2l0aW9uOnJlbGF0aXZlfS50YWJzLW92ZXJmbG93IC5uYXYtaXRl''@;'; + put 'put ''bXttYXJnaW4tcmlnaHQ6MH0udGFiLWNvbnRlbnR7ZGlzcGxheTppbmxpbmV9XzotbXMtZnVsbHNjcmVlbiAudGFiLWNvbnRlbnQsOnJvb3QgLnRhYi1jb250ZW50e2Rpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOjEwMCV9LnRhYnMtdmVydGljYWx7ZGlzcGxheTpmbGV4fS50YWJzLXZlcnRp''@;'; + put 'put ''Y2FsPi5uYXZ7aGVpZ2h0OmF1dG87Ym94LXNoYWRvdzpub25lO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpzdHJldGNoO21hcmdpbi1yaWdodDoxLjJyZW07b3ZlcmZsb3c6YXV0bztmbGV4LXNocmluazowO3BhZGRpbmc6LjJyZW07d2lkdGg6MTJyZW07bWluLXdpZHRoOjIu''@;'; + put 'put ''NHJlbX0udGFicy12ZXJ0aWNhbD4ubmF2IC5uYXYtbGlua3t0ZXh0LWFsaWduOmxlZnQ7cGFkZGluZzowIC42cmVtO2JvcmRlcjowO21hcmdpbi1ib3R0b206LjA1cmVtO2ZsZXgtc2hyaW5rOjA7bWFyZ2luLXRvcDowO21hcmdpbi1sZWZ0OjA7d2lkdGg6MTAwJX0udGFicy12ZXJ0aWNhbD4u''@;'; + put 'put ''bmF2IC5uYXYtbGluay5uYXYtaXRlbXttYXJnaW4tcmlnaHQ6MH0udGFicy12ZXJ0aWNhbD4ubmF2IC5uYXYtbGluay5hY3RpdmUsLnRhYnMtdmVydGljYWw+Lm5hdiAubmF2LWxpbms6aG92ZXJ7Ym94LXNoYWRvdzppbnNldCAuMTVyZW0gMCAjMDA3MmEzO2JveC1zaGFkb3c6aW5zZXQgLjE1''@;'; + put 'put ''cmVtIDAgMCB2YXIoLS1jbHItbmF2LWFjdGl2ZS1ib3gtc2hhZG93LWNvbG9yKX0udGFicy12ZXJ0aWNhbD4ubmF2IC5uYXYtbGluay5hY3RpdmV7YmFja2dyb3VuZC1jb2xvcjojZDhlM2U5O2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLW5hdi1hY3RpdmUtYmctY29sb3IsICNkOGUzZTkp''@;'; + put 'put ''fS50YWJzLXZlcnRpY2FsPi5uYXYgLm5hdi1saW5rOm5vdCguYWN0aXZlKTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiNlOGU4ZTg7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItbmF2LWhvdmVyLWJnLWNvbG9yLCAjZThlOGU4KX06cm9vdHstLWNsci13aXphcmQtbWFpbi1iZ2NvbG9yOnZh''@;'; + put 'put ''cigtLWNsci1jb2xvci1uZXV0cmFsLTApOy0tY2xyLXdpemFyZC1zaWRlbmF2LWJnY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNTApOy0tY2xyLXdpemFyZC1tYWluLXRleHRDb2xvcjp2YXIoLS1jbHItY29sb3Itb24tbmV1dHJhbC0wKTstLWNsci13aXphcmQtc2lkZW5hdi10ZXh0''@;'; + put 'put ''OnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTkwMCk7LS1jbHItd2l6YXJkLXNpZGVuYXYtdGV4dC0tYWN0aXZlOnZhcigtLWNsci1nbG9iYWwtb24tc2VsZWN0aW9uLWNvbG9yKTstLWNsci13aXphcmQtdGl0bGUtdGV4dDp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC0xMDAwKTstLWNsci13aXph''@;'; + put 'put ''cmQtc3RlcG5hdi1ib3JkZXItc2l6ZTouMnJlbTstLWNsci13aXphcmQtc3RlcG5hdi1ib3JkZXItY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtMjAwKTstLWNsci13aXphcmQtc3RlcG5hdi1ib3JkZXItY29sb3ItLWFjdGl2ZTp2YXIoLS1jbHItY29sb3Itc3VjY2Vzcy00MDApOy0t''@;'; + put 'put ''Y2xyLXdpemFyZC1zdGVwbmF2LWFjdGl2ZS1iZ2NvbG9yOnZhcigtLWNsci1nbG9iYWwtc2VsZWN0aW9uLWNvbG9yKTstLWNsci13aXphcmQtaGVhZGVyLWFjdGlvbi1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC02MDApOy0tY2xyLXdpemFyZC1oZWFkZXItYWN0aW9uLWNvbG9yLS1o''@;'; + put 'put ''b3ZlcmVkOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTEwMDApOy0tY2xyLXdpemFyZC1ib3JkZXItcmFkaXVzOnZhcigtLWNsci1nbG9iYWwtYm9yZGVycmFkaXVzKTstLWNsci13aXphcmQtc3RlcG5hdi1hY3RpdmUtYm9yZGVyLXJhZGl1czp2YXIoLS1jbHItd2l6YXJkLWJvcmRlci1yYWRp''@;'; + put 'put ''dXMpOy0tY2xyLXdpemFyZC1zdGVwLW5hdi1ib3JkZXItY29sb3I6aHNsKDAsIDAlLCA4OSUpOy0tY2xyLXdpemFyZC1ib3gtc2hhZG93LWNvbG9yOnJnYmEoMCwgMCwgMCwgLjIpfS5jbHItd2l6YXJkIC5tb2RhbC1kaWFsb2d7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjth''@;'; + put 'put ''bGlnbi1pdGVtczpjZW50ZXI7Ym94LXNoYWRvdzowIC4wNXJlbSAuMXJlbSAuMXJlbSAjMDAwMztib3gtc2hhZG93OjAgLjA1cmVtIC4xcmVtIC4xcmVtIHZhcigtLWNsci13aXphcmQtYm94LXNoYWRvdy1jb2xvcik7aGVpZ2h0OjUwJTttYXgtaGVpZ2h0OjEwMCV9LmNsci13aXphcmQgLm1v''@;'; + put 'put ''ZGFsLWNvbnRlbnR7Ym9yZGVyLXJhZGl1czowO2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOi4xNXJlbTtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czp2YXIoLS1jbHItd2l6YXJkLWJvcmRlci1yYWRpdXMsIC4xNXJlbSk7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6LjE1cmVtO2JvcmRlci1i''@;'; + put 'put ''b3R0b20tcmlnaHQtcmFkaXVzOnZhcigtLWNsci13aXphcmQtYm9yZGVyLXJhZGl1cywgLjE1cmVtKTtib3gtc2hhZG93Om5vbmU7cGFkZGluZzowO2ZsZXg6MiAyIGF1dG87d2lkdGg6NjYlO2hlaWdodDppbml0aWFsO292ZXJmbG93OmhpZGRlbjtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6''@;'; + put 'put ''ZmxleC1zdGFydDtmbGV4LWRpcmVjdGlvbjpjb2x1bW59LmNsci13aXphcmQgLm1vZGFsLWhlYWRlciwuY2xyLXdpemFyZCAubW9kYWwtaGVhZGVyLS1hY2Nlc3NpYmxle2ZsZXg6MCAwIGF1dG87d2lkdGg6MTAwJTtwYWRkaW5nOjEuMnJlbSAuOTVyZW0gLjNyZW0gMS4ycmVtfS5jbHItd2l6''@;'; + put 'put ''YXJkIC5tb2RhbC10aXRsZXtjb2xvcjojMDAwO2NvbG9yOnZhcigtLWNsci13aXphcmQtdGl0bGUtdGV4dCwgYmxhY2spO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpyb3c7d2lkdGg6MTAwJTtsaW5lLWhlaWdodDoxLjM1NnJlbTttYXJnaW4tdG9wOi0uMTU2cmVtfS5jbHItd2l6YXJk''@;'; + put 'put ''IC5tb2RhbC1ib2R5e2ZsZXg6MSAxIGF1dG87Y29sb3I6IzAwMDtjb2xvcjp2YXIoLS1jbHItd2l6YXJkLW1haW4tdGV4dENvbG9yLCBibGFjayk7d2lkdGg6MTAwJX0uY2xyLXdpemFyZCAubW9kYWwtZm9vdGVye3BhZGRpbmc6MDtkaXNwbGF5OmJsb2NrO3BhZGRpbmctdG9wOjEuMnJlbTto''@;'; + put 'put ''ZWlnaHQ6NC4ycmVtO21pbi1oZWlnaHQ6NC4ycmVtO21heC1oZWlnaHQ6NC4ycmVtO3dpZHRoOjEwMCU7ZmxleDowIDAgNC4ycmVtfS5jbHItd2l6YXJkIC5jbHItd2l6YXJkLWJ0bnttYXJnaW46MDttYXgtd2lkdGg6MTAwJTtkaXNwbGF5OmJsb2NrfS5jbHItd2l6YXJkIC5tb2RhbC10aXRs''@;'; + put 'put ''ZS10ZXh0e2Rpc3BsYXk6aW5saW5lLWJsb2NrO2ZsZXg6MCAxIGF1dG87d2lkdGg6MTAwJTtvdXRsaW5lOjB9LmNsci13aXphcmQgLm1vZGFsLXRpdGxlLXdyYXBwZXJ7d2lkdGg6MTAwJX0uY2xyLXdpemFyZCAubW9kYWwtaGVhZGVyLWFjdGlvbnMtd3JhcHBlcntmbGV4OjEgMCBhdXRvO3Bh''@;'; + put 'put ''ZGRpbmctbGVmdDouNnJlbTtwYWRkaW5nLXJpZ2h0Oi4ycmVtfS5jbHItd2l6YXJkIC5jbHItd2l6YXJkLWhlYWRlci1hY3Rpb257aGVpZ2h0OjEuMnJlbTt3aWR0aDoxLjJyZW07cGFkZGluZzowO21hcmdpbjowO21pbi13aWR0aDoxLjJyZW07bGluZS1oZWlnaHQ6MS4ycmVtO2ZvbnQtc2l6''@;'; + put 'put ''ZToxLjNyZW07Y29sb3I6IzhjOGM4Yztjb2xvcjp2YXIoLS1jbHItd2l6YXJkLWhlYWRlci1hY3Rpb24tY29sb3IsICM4YzhjOGMpO3RyYW5zaXRpb246Y29sb3IgbGluZWFyIC4yc30uY2xyLXdpemFyZCAuY2xyLXdpemFyZC1oZWFkZXItYWN0aW9uIGF7Y29sb3I6IzhjOGM4Yztjb2xvcjp2''@;'; + put 'put ''YXIoLS1jbHItd2l6YXJkLWhlYWRlci1hY3Rpb24tY29sb3IsICM4YzhjOGMpfS5jbHItd2l6YXJkIC5jbHItd2l6YXJkLWhlYWRlci1hY3Rpb246aG92ZXIsLmNsci13aXphcmQgLmNsci13aXphcmQtaGVhZGVyLWFjdGlvbjphY3RpdmUsLmNsci13aXphcmQgLmNsci13aXphcmQtaGVhZGVy''@;'; + put 'put ''LWFjdGlvbjpmb2N1c3tjb2xvcjojMDAwO2NvbG9yOnZhcigtLWNsci13aXphcmQtaGVhZGVyLWFjdGlvbi1jb2xvci0taG92ZXJlZCwgYmxhY2spfS5jbHItd2l6YXJkIC5jbHItd2l6YXJkLWhlYWRlci1hY3Rpb24gY2RzLWljb24sLmNsci13aXphcmQgLmNsci13aXphcmQtaGVhZGVyLWFj''@;'; + put 'put ''dGlvbiBjbHItaWNvbntoZWlnaHQ6MS4xcmVtO3dpZHRoOjEuMXJlbX0uY2xyLXdpemFyZCAuY2xyLXdpemFyZC1zdGVwbmF2LXdyYXBwZXJ7ZmxleDoxIDEgYXV0bzt3aWR0aDozNCU7bWF4LXdpZHRoOjM0JTtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO29yZGVyOi0xO292''@;'; + put 'put ''ZXJmbG93OmhpZGRlbjtvdmVyZmxvdy15OmF1dG87cGFkZGluZy1ib3R0b206MS4ycmVtO2xpbmUtaGVpZ2h0OjEuMnJlbTtib3JkZXItcmlnaHQtd2lkdGg6LjA1cmVtO2JvcmRlci1yaWdodC13aWR0aDp2YXIoLS1jbHItZ2xvYmFsLWJvcmRlcndpZHRoLCAuMDVyZW0pO2JvcmRlci1yaWdo''@;'; + put 'put ''dC1zdHlsZTpzb2xpZDtib3JkZXItcmlnaHQtY29sb3I6I2UzZTNlMztib3JkZXItcmlnaHQtY29sb3I6dmFyKC0tY2xyLXdpemFyZC1zdGVwLW5hdi1ib3JkZXItY29sb3IsICNlM2UzZTMpO2hlaWdodDoxMDAlO2JhY2tncm91bmQtY29sb3I6I2ZhZmFmYTtiYWNrZ3JvdW5kLWNvbG9yOnZh''@;'; + put 'put ''cigtLWNsci13aXphcmQtc2lkZW5hdi1iZ2NvbG9yLCAjZmFmYWZhKTtib3JkZXItcmFkaXVzOjA7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czouMTVyZW07Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czp2YXIoLS1jbHItd2l6YXJkLWJvcmRlci1yYWRpdXMsIC4xNXJlbSk7Ym9yZGVyLWJvdHRvbS1s''@;'; + put 'put ''ZWZ0LXJhZGl1czouMTVyZW07Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czp2YXIoLS1jbHItd2l6YXJkLWJvcmRlci1yYWRpdXMsIC4xNXJlbSl9LmNsci13aXphcmQgLmNsci13aXphcmQtc3RlcG5hdntwYWRkaW5nLWxlZnQ6MS4ycmVtO2Rpc3BsYXk6YmxvY2s7Zm9udC1zaXplOi43cmVt''@;'; + put 'put ''O2NvbG9yOiMzMzM7Y29sb3I6dmFyKC0tY2xyLXdpemFyZC1zaWRlbmF2LXRleHQsICMzMzMzMzMpO3dpZHRoOjEwMCU7ZmxleDoxIDEgYXV0b30uY2xyLXdpemFyZCAuY2xyLXdpemFyZC1zdGVwbmF2LWxpc3R7ZGlzcGxheTpibG9jaztib3gtc2hhZG93Om5vbmU7Y291bnRlci1yZXNldDph''@;'; + put 'put ''O3doaXRlLXNwYWNlOm5vd3JhcDtoZWlnaHQ6YXV0bztsaXN0LXN0eWxlLXR5cGU6bm9uZTttYXJnaW46MDt3aWR0aDoxMDAlfS5jbHItd2l6YXJkIC5jbHItd2l6YXJkLXN0ZXBuYXYtaXRlbXtkaXNwbGF5OmJsb2NrO2JveC1zaGFkb3c6LjJyZW0gMCAjZThlOGU4IGluc2V0O2JveC1zaGFk''@;'; + put 'put ''b3c6dmFyKC0tY2xyLXdpemFyZC1zdGVwbmF2LWJvcmRlci1zaXplKSAwIDAgdmFyKC0tY2xyLXdpemFyZC1zdGVwbmF2LWJvcmRlci1jb2xvcikgaW5zZXQ7bWFyZ2luOjAgMCAtLjA1cmVtO3BhZGRpbmc6LjNyZW0gMCAuM3JlbSAuNHJlbTtjb2xvcjojMzMzO2NvbG9yOnZhcigtLWNsci13''@;'; + put 'put ''aXphcmQtc2lkZW5hdi10ZXh0LCAjMzMzMzMzKTtmb250LXdlaWdodDo0MDA7Zm9udC13ZWlnaHQ6dmFyKC0tY2xyLWZvbnQtd2VpZ2h0LXJlZ3VsYXIsIDQwMCl9LmNsci13aXphcmQgLmNsci13aXphcmQtc3RlcG5hdi1pdGVtLmFjdGl2ZXtjb2xvcjojMDAwO2NvbG9yOnZhcigtLWNsci13''@;'; + put 'put ''aXphcmQtc2lkZW5hdi10ZXh0LS1hY3RpdmUsIGJsYWNrKTtmb250LXdlaWdodDo1MDA7Zm9udC13ZWlnaHQ6dmFyKC0tY2xyLWZvbnQtd2VpZ2h0LXNlbWlib2xkLCA1MDApfS5jbHItd2l6YXJkIC5jbHItd2l6YXJkLXN0ZXBuYXYtaXRlbS5hY3RpdmUgLmNsci13aXphcmQtc3RlcG5hdi1s''@;'; + put 'put ''aW5re2JhY2tncm91bmQtY29sb3I6I2Q4ZTNlOTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci13aXphcmQtc3RlcG5hdi1hY3RpdmUtYmdjb2xvciwgI2Q4ZTNlOSk7Ym9yZGVyLXJhZGl1czowO2JvcmRlci10b3AtbGVmdC1yYWRpdXM6LjE1cmVtO2JvcmRlci10b3AtbGVmdC1yYWRpdXM6''@;'; + put 'put ''dmFyKC0tY2xyLXdpemFyZC1ib3JkZXItcmFkaXVzLCAuMTVyZW0pO2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6LjE1cmVtO2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6dmFyKC0tY2xyLXdpemFyZC1ib3JkZXItcmFkaXVzLCAuMTVyZW0pfS5jbHItd2l6YXJkIC5jbHItd2l6YXJkLXN0''@;'; + put 'put ''ZXBuYXYtaXRlbS5jb21wbGV0ZXtib3gtc2hhZG93Oi4ycmVtIDAgIzVlYjcxNSBpbnNldDtib3gtc2hhZG93OnZhcigtLWNsci13aXphcmQtc3RlcG5hdi1ib3JkZXItc2l6ZSkgMCAwIHZhcigtLWNsci13aXphcmQtc3RlcG5hdi1ib3JkZXItY29sb3ItLWFjdGl2ZSkgaW5zZXQ7dHJhbnNp''@;'; + put 'put ''dGlvbjpib3gtc2hhZG93IC4ycyBlYXNlLWlufS5jbHItd2l6YXJkIC5jbHItd2l6YXJkLXN0ZXBuYXYtaXRlbS5lcnJvcntib3gtc2hhZG93Oi4ycmVtIDAgI2MyMWQwMCBpbnNldDt0cmFuc2l0aW9uOmJveC1zaGFkb3cgLjJzIGVhc2UtaW59LmNsci13aXphcmQgLmNsci13aXphcmQtc3Rl''@;'; + put 'put ''cG5hdi1pdGVtLm5vLWNsaWNrIGJ1dHRvbntwb2ludGVyLWV2ZW50czpub25lfS5jbHItd2l6YXJkIC5jbHItd2l6YXJkLXN0ZXBuYXYtbGlua3t3aWR0aDoxMDAlO2Rpc3BsYXk6ZmxleDtjb2xvcjppbmhlcml0O2FsaWduLWl0ZW1zOmNlbnRlcjtwYWRkaW5nOjAgLjE1cmVtIDAgLjVyZW07''@;'; + put 'put ''Zm9udC1zaXplOi43cmVtO2ZvbnQtd2VpZ2h0OmluaGVyaXQ7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO3RleHQtYWxpZ246bGVmdDt0ZXh0LXRyYW5zZm9ybTpub25lO21hcmdpbjowfS5jbHItd2l6YXJkIC5jbHItd2l6YXJkLXN0ZXBuYXYtbGluayAuY2xyLXdpemFyZC1zdGVwbmF2LWxpbmst''@;'; + put 'put ''c3VmZml4e2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO21pbi13aWR0aDoxLjJyZW07cGFkZGluZy1yaWdodDouMzVyZW19LmNsci13aXphcmQgLmNsci13aXphcmQtc3RlcG5hdi1saW5rIC5jbHItd2l6YXJkLXN0ZXBuYXYtbGluay1zdWZmaXggLmNsci13aXphcmQtc3Rl''@;'; + put 'put ''cG5hdi1pdGVtLWVycm9yLWljb257dHJhbnNmb3JtOm5vbmU7ZmlsbDojYzIxZDAwfS5jbHItd2l6YXJkIC5jbHItd2l6YXJkLXRpdGxle2NvbG9yOiMwMDA7Y29sb3I6dmFyKC0tY2xyLXdpemFyZC10aXRsZS10ZXh0LCBibGFjayk7bWFyZ2luLXRvcDowO3BhZGRpbmc6MS4ycmVtIC42cmVt''@;'; + put 'put ''IDEuMnJlbSAxLjJyZW07ZmxleDowIDAgYXV0bztmb250LXNpemU6MS4xcmVtO2xpbmUtaGVpZ2h0OjEuMnJlbX0uY2xyLXdpemFyZCAubW9kYWwtY29udGVudC13cmFwcGVye2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpyb3c7ZmxleDoxIDEgMTAwJTtoZWlnaHQ6MTAwJTt3aWR0aDox''@;'; + put 'put ''MDAlO21heC1oZWlnaHQ6MTAwJX0uY2xyLXdpemFyZCAubW9kYWwtY29udGVudC13cmFwcGVyIC5tb2RhbC1uYXZ7aGVpZ2h0OmF1dG99LmNsci13aXphcmQgLmNsci13aXphcmQtZm9vdGVyLWJ1dHRvbnN7dGV4dC1hbGlnbjpyaWdodDtwYWRkaW5nLXJpZ2h0OjEuMnJlbTttYXJnaW46MH0u''@;'; + put 'put ''Y2xyLXdpemFyZCAuY2xyLXdpemFyZC1mb290ZXItYnV0dG9ucy13cmFwcGVye2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpyb3c7ZmxleC13cmFwOm5vd3JhcDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmR9LmNsci13aXphcmQgLmNsci13aXphcmQtYnRuLXdyYXBwZXJ7ZmxleDowIDEg''@;'; + put 'put ''YXV0bzttaW4td2lkdGg6NC4ycmVtO3BhZGRpbmctbGVmdDouNnJlbX0uY2xyLXdpemFyZCAuY2xyLXdpemFyZC1idG4td3JhcHBlclthcmlhLWhpZGRlbj10cnVlXXtkaXNwbGF5Om5vbmV9LmNsci13aXphcmQgLmNsci13aXphcmQtYnRuLmJ0bi1saW5re3BhZGRpbmc6MH0uY2xyLXdpemFy''@;'; + put 'put ''ZCAuY2xyLXdpemFyZC1jb250ZW50e2Rpc3BsYXk6YmxvY2t9LmNsci13aXphcmQgLmNsci13aXphcmQtcGFnZTpub3QoW2FyaWEtaGlkZGVuPXRydWVdKXtwYWRkaW5nOi45cmVtIDEuMnJlbSAxLjJyZW07ZGlzcGxheTpibG9ja30uY2xyLXdpemFyZCAubW9kYWwtZGlhbG9ne2hlaWdodDo3''@;'; + put 'put ''NXZofS5jbHItd2l6YXJkIC5tb2RhbC1ib2R5LXdyYXBwZXJ7bWF4LWhlaWdodDoxMDAlO2Rpc3BsYXk6ZmxleDtmbGV4LWdyb3c6MTt3aWR0aDoxMDAlfS5jbHItd2l6YXJkLndpemFyZC1tZCAubW9kYWwtZGlhbG9ne21pbi1oZWlnaHQ6MjFyZW07bWF4LWhlaWdodDoyNS4ycmVtfS5jbHIt''@;'; + put 'put ''d2l6YXJkLndpemFyZC1tZCAubW9kYWwtY29udGVudCwuY2xyLXdpemFyZC53aXphcmQtbWQgLmNsci13aXphcmQtc3RlcG5hdi13cmFwcGVye21heC1oZWlnaHQ6MjUuMnJlbX0uY2xyLXdpemFyZC53aXphcmQtbWQgLmNsci13aXphcmQtc3RlcG5hdi13cmFwcGVye21pbi13aWR0aDoxMC44''@;'; + put 'put ''cmVtO21heC13aWR0aDoxMnJlbX0uY2xyLXdpemFyZC53aXphcmQtbGcgLm1vZGFsLWRpYWxvZ3ttaW4taGVpZ2h0OjIxcmVtO21heC1oZWlnaHQ6MzZyZW19LmNsci13aXphcmQud2l6YXJkLWxnIC5tb2RhbC1jb250ZW50LC5jbHItd2l6YXJkLndpemFyZC1sZyAuY2xyLXdpemFyZC1zdGVw''@;'; + put 'put ''bmF2LXdyYXBwZXJ7bWF4LWhlaWdodDozNnJlbX0uY2xyLXdpemFyZC53aXphcmQtbGcgLm5hdi1wYW5lbCwuY2xyLXdpemFyZC53aXphcmQtbGcgLmNsci13aXphcmQtc3RlcG5hdi13cmFwcGVye21pbi13aWR0aDoxMnJlbTttYXgtd2lkdGg6MTQuNHJlbX0uY2xyLXdpemFyZC53aXphcmQt''@;'; + put 'put ''eGwgLm1vZGFsLWRpYWxvZ3toZWlnaHQ6NzV2aDttYXgtaGVpZ2h0Om5vbmV9LmNsci13aXphcmQud2l6YXJkLXhsIC5uYXYtcGFuZWwsLmNsci13aXphcmQud2l6YXJkLXhsIC5jbHItd2l6YXJkLXN0ZXBuYXYtd3JhcHBlcnttaW4td2lkdGg6MTJyZW07bWF4LXdpZHRoOjE1LjZyZW19LmNs''@;'; + put 'put ''ci13aXphcmQgLnNwaW5uZXI6bm90KC5zcGlubmVyLWlubGluZSk6bm90KC5jbHItdHJlZW5vZGUtc3Bpbm5lcil7bGVmdDpjYWxjKDUwJSArIDUuNzVyZW0pO3Bvc2l0aW9uOmFic29sdXRlO3RvcDo0MCV9LmNsci13aXphcmQtcGFnZT46Zmlyc3QtY2hpbGR7bWFyZ2luLXRvcDowfS5jbHIt''@;'; + put 'put ''d2l6YXJkLXBhZ2U+OmZpcnN0LWNoaWxkPjpmaXJzdC1jaGlsZHttYXJnaW4tdG9wOjB9LmNsci13aXphcmQtcGFnZT5mb3JtOmZpcnN0LWNoaWxke3BhZGRpbmctdG9wOjB9LmNsci13aXphcmQtcGFnZT5mb3JtOmZpcnN0LWNoaWxkPi5mb3JtLWJsb2NrOmZpcnN0LWNoaWxke21hcmdpbi10''@;'; + put 'put ''b3A6MH0uY2xyLXdpemFyZC0taW5saW5le2Rpc3BsYXk6YmxvY2s7d2lkdGg6MTAwJX0uY2xyLXdpemFyZC0taW5saW5lPmNsci1tb2RhbD4ubW9kYWw6Zm9jdXN7b3V0bGluZS1zdHlsZTpub25lO291dGxpbmUtY29sb3I6dHJhbnNwYXJlbnR9LmNsci13aXphcmQtLWlubGluZSBjbHItbW9k''@;'; + put 'put ''YWx7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJTtkaXNwbGF5OmJsb2NrfS5jbHItd2l6YXJkLS1pbmxpbmUgLm1vZGFse3BhZGRpbmc6MDtwb3NpdGlvbjpzdGF0aWM7aGVpZ2h0OjEwMCU7bWF4LWhlaWdodDoxMDAlfS5jbHItd2l6YXJkLS1pbmxpbmUgLm1vZGFsIC5jb250ZW50LWNvbnRhaW5l''@;'; + put 'put ''cntoZWlnaHQ6MTAwJX0uY2xyLXdpemFyZC0taW5saW5lIC5tb2RhbCAuY29udGVudC1jb250YWluZXIgLm5hdi1wYW5lbHtoZWlnaHQ6OTklO3dpZHRoOjk5JX0uY2xyLXdpemFyZC0taW5saW5lIC5tb2RhbCAubW9kYWwtY29udGVudHtib3gtc2hhZG93Om5vbmV9LmNsci13aXphcmQtLWlu''@;'; + put 'put ''bGluZSAubW9kYWwgLm1vZGFsLWRpYWxvZ3ttaW4taGVpZ2h0OjEwMCU7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJTt6LWluZGV4OmF1dG99LmNsci13aXphcmQtLWlubGluZSAubW9kYWwtYm9keS13cmFwcGVye2hlaWdodDoxMDAlfS5jbHItd2l6YXJkLS1pbmxpbmUgLm1vZGFsLWhlYWRlciAu''@;'; + put 'put ''Y2xvc2UsLmNsci13aXphcmQtLWlubGluZSAubW9kYWwtaGVhZGVyLS1hY2Nlc3NpYmxlIC5jbG9zZXtkaXNwbGF5Om5vbmV9LmNsci13aXphcmQtLWlubGluZSAubmF2Lm5hdkxpc3R7cGFkZGluZy10b3A6MH0uY2xyLXdpemFyZC0taW5saW5lIC5tb2RhbC1kaWFsb2cgLm1vZGFsLWNvbnRl''@;'; + put 'put ''bnQgLm1vZGFsLWJvZHkgLmNvbnRlbnQtYXJlYXtvdmVyZmxvdy15OmF1dG99LmNsci13aXphcmQtLWlubGluZSAubW9kYWwtYmFja2Ryb3B7aGVpZ2h0OjA7d2lkdGg6MDtkaXNwbGF5Om5vbmV9LmNsci13aXphcmQtLWlubGluZSAubW9kYWwtY29udGVudC13cmFwcGVye2FsaWduLWl0ZW1z''@;'; + put 'put ''OnN0cmV0Y2g7aGVpZ2h0OjEwMCV9LmNsci13aXphcmQtLWlubGluZSAuY2xyLXdpemFyZC1zdGVwbmF2LXdyYXBwZXIsLmNsci13aXphcmQtLWlubGluZS5jbHItd2l6YXJkIC5tb2RhbC1jb250ZW50e21pbi1oZWlnaHQ6MTAwJTtoZWlnaHQ6YXV0bzttYXgtaGVpZ2h0OjEwMCV9LmNsci13''@;'; + put 'put ''aXphcmQtLWlubGluZSAuY2xyLXdpemFyZC1zdGVwbmF2LXdyYXBwZXIgLmNsci13aXphcmQtc3RlcG5hdiwuY2xyLXdpemFyZC0taW5saW5lLmNsci13aXphcmQgLm1vZGFsLWNvbnRlbnQgLmNsci13aXphcmQtc3RlcG5hdntoZWlnaHQ6MTAwJX0uY2xyLXdpemFyZC0tbm8tc2hhZG93IC5t''@;'; + put 'put ''b2RhbC1jb250ZW50LXdyYXBwZXIsLmNsci13aXphcmQtLW5vLXNoYWRvdyAubW9kYWwtZGlhbG9ne2JveC1zaGFkb3c6bm9uZX0uY2xyLXdpemFyZC0tbm8tdGl0bGUgLmNsci13aXphcmQtdGl0bGV7ZGlzcGxheTpub25lfS5jbHItd2l6YXJkLS1uby10aXRsZSAuY2xyLXdpemFyZC1zdGVw''@;'; + put 'put ''bmF2e3BhZGRpbmctdG9wOjEuMnJlbX1AbWVkaWEgc2NyZWVuey5jbHItd2l6YXJkLXBhZ2VbYXJpYS1oaWRkZW49dHJ1ZV17ZGlzcGxheTpub25lfX1Ac3VwcG9ydHMgKC1tcy1pbWUtYWxpZ246YXV0byl7LmNsci13aXphcmQgLmNsci13aXphcmQtaGVhZGVyLWFjdGlvbnttYXJnaW4tdG9w''@;'; + put 'put ''Oi0uMTVyZW19fTpyb290ey0tY2xyLXNpZ25wb3N0LWNvbnRlbnQtYmctY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtMCk7LS1jbHItc2lnbnBvc3QtY29udGVudC1ib3JkZXItY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNTAwKTstLWNsci1zaWducG9zdC1hY3Rpb24tY29s''@;'; + put 'put ''b3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNjAwKTstLWNsci1zaWducG9zdC1hY3Rpb24taG92ZXItY29sb3I6dmFyKC0tY2xyLWNvbG9yLWFjdGlvbi03MDApOy0tY2xyLXNpZ25wb3N0LWJvcmRlci1yYWRpdXM6dmFyKC0tY2xyLWdsb2JhbC1ib3JkZXJyYWRpdXMpOy0tY2xyLXNpZ25w''@;'; + put 'put ''b3N0LXBvaW50ZXItYm9yZGVyOnZhcigtLWNsci1zaWducG9zdC1wb2ludGVyLWJvcmRlcik7LS1jbHItc2lnbnBvc3QtcG9pbnRlci1pbnZpc2libGUtYm9yZGVyOnZhcigtLWNsci1zaWducG9zdC1wb2ludGVyLWludmlzaWJsZS1ib3JkZXIpOy0tY2xyLXNpZ25wb3N0LXBvaW50ZXItcHN1''@;'; + put 'put ''ZWRvLWJvcmRlcjp2YXIoLS1jbHItc2lnbnBvc3QtcG9pbnRlci1wc3VlZG8tYm9yZGVyKX0uc2lnbnBvc3R7ZGlzcGxheTppbmxpbmUtYmxvY2t9LnNpZ25wb3N0OmhvdmVye2N1cnNvcjpwb2ludGVyfS5zaWducG9zdCAuc2lnbnBvc3QtYWN0aW9ue21pbi13aWR0aDoxLjJyZW07bWFyZ2lu''@;'; + put 'put ''OjA7cGFkZGluZzowO2NvbG9yOiM4YzhjOGM7Y29sb3I6dmFyKC0tY2xyLXNpZ25wb3N0LWFjdGlvbi1jb2xvciwgIzhjOGM4Yyl9LnNpZ25wb3N0IC5zaWducG9zdC1hY3Rpb24gY2RzLWljb24sLnNpZ25wb3N0IC5zaWducG9zdC1hY3Rpb24gY2xyLWljb257aGVpZ2h0OjEuMnJlbTt3aWR0''@;'; + put 'put ''aDoxLjJyZW19LnNpZ25wb3N0IC5zaWducG9zdC1hY3Rpb246aG92ZXIsLnNpZ25wb3N0IC5zaWducG9zdC1hY3Rpb24uYWN0aXZle2NvbG9yOiMwMDY0OGY7Y29sb3I6dmFyKC0tY2xyLXNpZ25wb3N0LWFjdGlvbi1ob3Zlci1jb2xvciwgIzAwNjQ4Zil9LnNpZ25wb3N0IC5zaWducG9zdC1j''@;'; + put 'put ''b250ZW50LWhlYWRlciBidXR0b24gY2RzLWljb24sLnNpZ25wb3N0IC5zaWducG9zdC1jb250ZW50LWhlYWRlciBidXR0b24gY2xyLWljb257aGVpZ2h0Oi44cmVtO3dpZHRoOi44cmVtfS5zaWducG9zdC10cmlnZ2Vye21hcmdpbjowO3BhZGRpbmc6MDtkaXNwbGF5OmlubGluZS1ibG9ja30u''@;'; + put 'put ''c2lnbnBvc3QtY29udGVudHtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O21pbi13aWR0aDoxMC44cmVtO21heC13aWR0aDoxOHJlbTttaW4taGVpZ2h0OjIuNHJlbTttYXgtaGVpZ2h0OjI1LjJyZW07ZGlzcGxheTppbmxpbmUtYmxvY2s7cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDox''@;'; + put 'put ''MDUwfS5zaWducG9zdC1jb250ZW50OmhvdmVye2N1cnNvcjpkZWZhdWx0fS5zaWducG9zdC1jb250ZW50IC5wb3BvdmVyLXBvaW50ZXJ7aGVpZ2h0OjA7d2lkdGg6MDtwb3NpdGlvbjphYnNvbHV0ZX0uc2lnbnBvc3QtY29udGVudCAucG9wb3Zlci1wb2ludGVyOmJlZm9yZXtjb250ZW50OiIi''@;'; + put 'put ''O2hlaWdodDowO3dpZHRoOjA7cG9zaXRpb246YWJzb2x1dGV9LnNpZ25wb3N0LWNvbnRlbnQudG9wLWxlZnQgLnBvcG92ZXItcG9pbnRlciwuc2lnbnBvc3QtY29udGVudC50b3AtbWlkZGxlIC5wb3BvdmVyLXBvaW50ZXIsLnNpZ25wb3N0LWNvbnRlbnQudG9wLXJpZ2h0IC5wb3BvdmVyLXBv''@;'; + put 'put ''aW50ZXJ7Ym9yZGVyLXRvcDouNnJlbSBzb2xpZCAjYjNiM2IzO2JvcmRlci10b3A6dmFyKC0tY2xyLXNpZ25wb3N0LXBvaW50ZXItYm9yZGVyLCAuNnJlbSBzb2xpZCAjYjNiM2IzKTtib3R0b206LS42cmVtfS5zaWducG9zdC1jb250ZW50LnRvcC1sZWZ0IC5wb3BvdmVyLXBvaW50ZXI6YmVm''@;'; + put 'put ''b3JlLC5zaWducG9zdC1jb250ZW50LnRvcC1taWRkbGUgLnBvcG92ZXItcG9pbnRlcjpiZWZvcmUsLnNpZ25wb3N0LWNvbnRlbnQudG9wLXJpZ2h0IC5wb3BvdmVyLXBvaW50ZXI6YmVmb3Jle2JvcmRlci10b3A6LjZyZW0gc29saWQgI2ZmZjtib3JkZXItdG9wOnZhcigtLWNsci1zaWducG9z''@;'; + put 'put ''dC1wb2ludGVyLXBzdWVkby1ib3JkZXIsIC42cmVtIHNvbGlkIHdoaXRlKTtib3R0b206LjFyZW19LnNpZ25wb3N0LWNvbnRlbnQudG9wLWxlZnQgLnNpZ25wb3N0LXdyYXB7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6MH0uc2lnbnBvc3QtY29udGVudC50b3AtbGVmdCAucG9wb3Zlci1w''@;'; + put 'put ''b2ludGVye2JvcmRlci1sZWZ0Oi42cmVtIHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1sZWZ0OnZhcigtLWNsci1zaWducG9zdC1wb2ludGVyLWludmlzaWJsZS1ib3JkZXIsIC42cmVtIHNvbGlkIHRyYW5zcGFyZW50KTtyaWdodDotLjA1cmVtfS5zaWducG9zdC1jb250ZW50LnRvcC1sZWZ0''@;'; + put 'put ''IC5wb3BvdmVyLXBvaW50ZXI6YmVmb3Jle2JvcmRlci1sZWZ0Oi42cmVtIHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1sZWZ0OnZhcigtLWNsci1zaWducG9zdC1wb2ludGVyLWludmlzaWJsZS1ib3JkZXIsIC42cmVtIHNvbGlkIHRyYW5zcGFyZW50KTtyaWdodDouMDVyZW19LnNpZ25wb3N0''@;'; + put 'put ''LWNvbnRlbnQudG9wLW1pZGRsZSAucG9wb3Zlci1wb2ludGVye2JvcmRlci1yaWdodDouNnJlbSBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItcmlnaHQ6dmFyKC0tY2xyLXNpZ25wb3N0LXBvaW50ZXItaW52aXNpYmxlLWJvcmRlciwgLjZyZW0gc29saWQgdHJhbnNwYXJlbnQpO2xlZnQ6NTAl''@;'; + put 'put ''fS5zaWducG9zdC1jb250ZW50LnRvcC1taWRkbGUgLnBvcG92ZXItcG9pbnRlcjpiZWZvcmV7Ym9yZGVyLXJpZ2h0Oi42cmVtIHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1yaWdodDp2YXIoLS1jbHItc2lnbnBvc3QtcG9pbnRlci1pbnZpc2libGUtYm9yZGVyLCAuNnJlbSBzb2xpZCB0cmFu''@;'; + put 'put ''c3BhcmVudCk7bGVmdDouMDVyZW19LnNpZ25wb3N0LWNvbnRlbnQudG9wLXJpZ2h0IC5zaWducG9zdC13cmFwe2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MH0uc2lnbnBvc3QtY29udGVudC50b3AtcmlnaHQgLnBvcG92ZXItcG9pbnRlcntib3JkZXItcmlnaHQ6LjZyZW0gc29saWQgdHJh''@;'; + put 'put ''bnNwYXJlbnQ7Ym9yZGVyLXJpZ2h0OnZhcigtLWNsci1zaWducG9zdC1wb2ludGVyLWludmlzaWJsZS1ib3JkZXIsIC42cmVtIHNvbGlkIHRyYW5zcGFyZW50KTtsZWZ0Oi0uMDVyZW19LnNpZ25wb3N0LWNvbnRlbnQudG9wLXJpZ2h0IC5wb3BvdmVyLXBvaW50ZXI6YmVmb3Jle2JvcmRlci1y''@;'; + put 'put ''aWdodDouNnJlbSBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItcmlnaHQ6dmFyKC0tY2xyLXNpZ25wb3N0LXBvaW50ZXItaW52aXNpYmxlLWJvcmRlciwgLjZyZW0gc29saWQgdHJhbnNwYXJlbnQpO2xlZnQ6LjA1cmVtfS5zaWducG9zdC1jb250ZW50LmJvdHRvbS1sZWZ0IC5wb3BvdmVyLXBv''@;'; + put 'put ''aW50ZXIsLnNpZ25wb3N0LWNvbnRlbnQuYm90dG9tLW1pZGRsZSAucG9wb3Zlci1wb2ludGVyLC5zaWducG9zdC1jb250ZW50LmJvdHRvbS1yaWdodCAucG9wb3Zlci1wb2ludGVye2JvcmRlci1ib3R0b206LjZyZW0gc29saWQgI2IzYjNiMztib3JkZXItYm90dG9tOnZhcigtLWNsci1zaWdu''@;'; + put 'put ''cG9zdC1wb2ludGVyLWJvcmRlciwgLjZyZW0gc29saWQgI2IzYjNiMyk7dG9wOi0uNTVyZW19LnNpZ25wb3N0LWNvbnRlbnQuYm90dG9tLWxlZnQgLnBvcG92ZXItcG9pbnRlcjpiZWZvcmUsLnNpZ25wb3N0LWNvbnRlbnQuYm90dG9tLW1pZGRsZSAucG9wb3Zlci1wb2ludGVyOmJlZm9yZSwu''@;'; + put 'put ''c2lnbnBvc3QtY29udGVudC5ib3R0b20tcmlnaHQgLnBvcG92ZXItcG9pbnRlcjpiZWZvcmV7Ym9yZGVyLWJvdHRvbTouNnJlbSBzb2xpZCAjZmZmO2JvcmRlci1ib3R0b206dmFyKC0tY2xyLXNpZ25wb3N0LXBvaW50ZXItcHN1ZWRvLWJvcmRlciwgLjZyZW0gc29saWQgd2hpdGUpO3RvcDou''@;'; + put 'put ''MXJlbX0uc2lnbnBvc3QtY29udGVudC5ib3R0b20tbGVmdCAuc2lnbnBvc3Qtd3JhcHtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czowfS5zaWducG9zdC1jb250ZW50LmJvdHRvbS1sZWZ0IC5wb3BvdmVyLXBvaW50ZXJ7Ym9yZGVyLWxlZnQ6LjZyZW0gc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVy''@;'; + put 'put ''LWxlZnQ6dmFyKC0tY2xyLXNpZ25wb3N0LXBvaW50ZXItaW52aXNpYmxlLWJvcmRlciwgLjZyZW0gc29saWQgdHJhbnNwYXJlbnQpO3JpZ2h0Oi0uMDVyZW19LnNpZ25wb3N0LWNvbnRlbnQuYm90dG9tLWxlZnQgLnBvcG92ZXItcG9pbnRlcjpiZWZvcmV7Ym9yZGVyLWxlZnQ6LjZyZW0gc29s''@;'; + put 'put ''aWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLWxlZnQ6dmFyKC0tY2xyLXNpZ25wb3N0LXBvaW50ZXItaW52aXNpYmxlLWJvcmRlciwgLjZyZW0gc29saWQgdHJhbnNwYXJlbnQpO3JpZ2h0Oi4wNXJlbX0uc2lnbnBvc3QtY29udGVudC5ib3R0b20tbWlkZGxlIC5wb3BvdmVyLXBvaW50ZXJ7Ym9yZGVy''@;'; + put 'put ''LXJpZ2h0Oi42cmVtIHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1yaWdodDp2YXIoLS1jbHItc2lnbnBvc3QtcG9pbnRlci1pbnZpc2libGUtYm9yZGVyLCAuNnJlbSBzb2xpZCB0cmFuc3BhcmVudCk7cmlnaHQ6NTAlfS5zaWducG9zdC1jb250ZW50LmJvdHRvbS1taWRkbGUgLnBvcG92ZXIt''@;'; + put 'put ''cG9pbnRlcjpiZWZvcmV7Ym9yZGVyLXJpZ2h0Oi42cmVtIHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1yaWdodDp2YXIoLS1jbHItc2lnbnBvc3QtcG9pbnRlci1pbnZpc2libGUtYm9yZGVyLCAuNnJlbSBzb2xpZCB0cmFuc3BhcmVudCk7cmlnaHQ6LS42NXJlbX0uc2lnbnBvc3QtY29udGVu''@;'; + put 'put ''dC5ib3R0b20tcmlnaHQgLnNpZ25wb3N0LXdyYXB7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czowfS5zaWducG9zdC1jb250ZW50LmJvdHRvbS1yaWdodCAucG9wb3Zlci1wb2ludGVye2JvcmRlci1yaWdodDouNnJlbSBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItcmlnaHQ6dmFyKC0tY2xyLXNp''@;'; + put 'put ''Z25wb3N0LXBvaW50ZXItaW52aXNpYmxlLWJvcmRlciwgLjZyZW0gc29saWQgdHJhbnNwYXJlbnQpO2xlZnQ6LS4wNXJlbX0uc2lnbnBvc3QtY29udGVudC5ib3R0b20tcmlnaHQgLnBvcG92ZXItcG9pbnRlcjpiZWZvcmV7Ym9yZGVyLXJpZ2h0Oi42cmVtIHNvbGlkIHRyYW5zcGFyZW50O2Jv''@;'; + put 'put ''cmRlci1yaWdodDp2YXIoLS1jbHItc2lnbnBvc3QtcG9pbnRlci1pbnZpc2libGUtYm9yZGVyLCAuNnJlbSBzb2xpZCB0cmFuc3BhcmVudCk7bGVmdDouMDVyZW19LnNpZ25wb3N0LWNvbnRlbnQubGVmdC10b3AgLnBvcG92ZXItcG9pbnRlciwuc2lnbnBvc3QtY29udGVudC5sZWZ0LW1pZGRs''@;'; + put 'put ''ZSAucG9wb3Zlci1wb2ludGVyLC5zaWducG9zdC1jb250ZW50LmxlZnQtYm90dG9tIC5wb3BvdmVyLXBvaW50ZXJ7Ym9yZGVyLWxlZnQ6LjZyZW0gc29saWQgI2IzYjNiMztib3JkZXItbGVmdDp2YXIoLS1jbHItc2lnbnBvc3QtcG9pbnRlci1ib3JkZXIsIC42cmVtIHNvbGlkICNiM2IzYjMp''@;'; + put 'put ''O3JpZ2h0Oi0uNnJlbX0uc2lnbnBvc3QtY29udGVudC5sZWZ0LXRvcCAucG9wb3Zlci1wb2ludGVyOmJlZm9yZSwuc2lnbnBvc3QtY29udGVudC5sZWZ0LW1pZGRsZSAucG9wb3Zlci1wb2ludGVyOmJlZm9yZSwuc2lnbnBvc3QtY29udGVudC5sZWZ0LWJvdHRvbSAucG9wb3Zlci1wb2ludGVy''@;'; + put 'put ''OmJlZm9yZXtib3JkZXItbGVmdDouNnJlbSBzb2xpZCAjZmZmO2JvcmRlci1sZWZ0OnZhcigtLWNsci1zaWducG9zdC1wb2ludGVyLXBzdWVkby1ib3JkZXIsIC42cmVtIHNvbGlkIHdoaXRlKX0uc2lnbnBvc3QtY29udGVudC5sZWZ0LXRvcCAuc2lnbnBvc3Qtd3JhcHtib3JkZXItYm90dG9t''@;'; + put 'put ''LXJpZ2h0LXJhZGl1czowfS5zaWducG9zdC1jb250ZW50LmxlZnQtdG9wIC5wb3BvdmVyLXBvaW50ZXJ7Ym9yZGVyLXRvcDouNnJlbSBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItdG9wOnZhcigtLWNsci1zaWducG9zdC1wb2ludGVyLWludmlzaWJsZS1ib3JkZXIsIC42cmVtIHNvbGlkIHRy''@;'; + put 'put ''YW5zcGFyZW50KTtib3R0b206LS4wNXJlbX0uc2lnbnBvc3QtY29udGVudC5sZWZ0LXRvcCAucG9wb3Zlci1wb2ludGVyOmJlZm9yZXtib3JkZXItdG9wOi42cmVtIHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci10b3A6dmFyKC0tY2xyLXNpZ25wb3N0LXBvaW50ZXItaW52aXNpYmxlLWJvcmRl''@;'; + put 'put ''ciwgLjZyZW0gc29saWQgdHJhbnNwYXJlbnQpO3RvcDotLjY1cmVtO3JpZ2h0Oi4xcmVtfS5zaWducG9zdC1jb250ZW50LmxlZnQtbWlkZGxlIC5wb3BvdmVyLXBvaW50ZXJ7Ym9yZGVyLWJvdHRvbTouNnJlbSBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItYm90dG9tOnZhcigtLWNsci1zaWdu''@;'; + put 'put ''cG9zdC1wb2ludGVyLWludmlzaWJsZS1ib3JkZXIsIC42cmVtIHNvbGlkIHRyYW5zcGFyZW50KTt0b3A6NTAlO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpfS5zaWducG9zdC1jb250ZW50LmxlZnQtbWlkZGxlIC5wb3BvdmVyLXBvaW50ZXI6YmVmb3Jle2JvcmRlci1ib3R0b206LjZyZW0g''@;'; + put 'put ''c29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLWJvdHRvbTp2YXIoLS1jbHItc2lnbnBvc3QtcG9pbnRlci1pbnZpc2libGUtYm9yZGVyLCAuNnJlbSBzb2xpZCB0cmFuc3BhcmVudCk7dG9wOi4wNXJlbTtsZWZ0Oi0uN3JlbX0uc2lnbnBvc3QtY29udGVudC5sZWZ0LWJvdHRvbSAuc2lnbnBvc3Qt''@;'; + put 'put ''d3JhcHtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czowfS5zaWducG9zdC1jb250ZW50LmxlZnQtYm90dG9tIC5wb3BvdmVyLXBvaW50ZXJ7Ym9yZGVyLWJvdHRvbTouNnJlbSBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItYm90dG9tOnZhcigtLWNsci1zaWducG9zdC1wb2ludGVyLWludmlzaWJs''@;'; + put 'put ''ZS1ib3JkZXIsIC42cmVtIHNvbGlkIHRyYW5zcGFyZW50KTt0b3A6LS4wNXJlbX0uc2lnbnBvc3QtY29udGVudC5sZWZ0LWJvdHRvbSAucG9wb3Zlci1wb2ludGVyOmJlZm9yZXtib3JkZXItYm90dG9tOi42cmVtIHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1ib3R0b206dmFyKC0tY2xyLXNp''@;'; + put 'put ''Z25wb3N0LXBvaW50ZXItaW52aXNpYmxlLWJvcmRlciwgLjZyZW0gc29saWQgdHJhbnNwYXJlbnQpO3RvcDouMDVyZW07bGVmdDotLjdyZW19LnNpZ25wb3N0LWNvbnRlbnQucmlnaHQtdG9wIC5wb3BvdmVyLXBvaW50ZXIsLnNpZ25wb3N0LWNvbnRlbnQucmlnaHQtbWlkZGxlIC5wb3BvdmVy''@;'; + put 'put ''LXBvaW50ZXIsLnNpZ25wb3N0LWNvbnRlbnQucmlnaHQtYm90dG9tIC5wb3BvdmVyLXBvaW50ZXJ7Ym9yZGVyLXJpZ2h0Oi42cmVtIHNvbGlkICNiM2IzYjM7Ym9yZGVyLXJpZ2h0OnZhcigtLWNsci1zaWducG9zdC1wb2ludGVyLWJvcmRlciwgLjZyZW0gc29saWQgI2IzYjNiMyk7bGVmdDot''@;'; + put 'put ''LjZyZW19LnNpZ25wb3N0LWNvbnRlbnQucmlnaHQtdG9wIC5wb3BvdmVyLXBvaW50ZXI6YmVmb3JlLC5zaWducG9zdC1jb250ZW50LnJpZ2h0LW1pZGRsZSAucG9wb3Zlci1wb2ludGVyOmJlZm9yZSwuc2lnbnBvc3QtY29udGVudC5yaWdodC1ib3R0b20gLnBvcG92ZXItcG9pbnRlcjpiZWZv''@;'; + put 'put ''cmV7Ym9yZGVyLXJpZ2h0Oi42cmVtIHNvbGlkICNmZmY7Ym9yZGVyLXJpZ2h0OnZhcigtLWNsci1zaWducG9zdC1wb2ludGVyLXBzdWVkby1ib3JkZXIsIC42cmVtIHNvbGlkIHdoaXRlKTtsZWZ0Oi4xcmVtfS5zaWducG9zdC1jb250ZW50LnJpZ2h0LXRvcCAuc2lnbnBvc3Qtd3JhcHtib3Jk''@;'; + put 'put ''ZXItYm90dG9tLWxlZnQtcmFkaXVzOjB9LnNpZ25wb3N0LWNvbnRlbnQucmlnaHQtdG9wIC5wb3BvdmVyLXBvaW50ZXJ7Ym9yZGVyLXRvcDouNnJlbSBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItdG9wOnZhcigtLWNsci1zaWducG9zdC1wb2ludGVyLWludmlzaWJsZS1ib3JkZXIsIC42cmVt''@;'; + put 'put ''IHNvbGlkIHRyYW5zcGFyZW50KTtib3R0b206LS4wNXJlbX0uc2lnbnBvc3QtY29udGVudC5yaWdodC10b3AgLnBvcG92ZXItcG9pbnRlcjpiZWZvcmV7Ym9yZGVyLXRvcDouNnJlbSBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItdG9wOnZhcigtLWNsci1zaWducG9zdC1wb2ludGVyLWludmlz''@;'; + put 'put ''aWJsZS1ib3JkZXIsIC42cmVtIHNvbGlkIHRyYW5zcGFyZW50KTt0b3A6LS42NXJlbX0uc2lnbnBvc3QtY29udGVudC5yaWdodC1taWRkbGUgLnBvcG92ZXItcG9pbnRlcntib3JkZXItYm90dG9tOi42cmVtIHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1ib3R0b206dmFyKC0tY2xyLXNpZ25w''@;'; + put 'put ''b3N0LXBvaW50ZXItaW52aXNpYmxlLWJvcmRlciwgLjZyZW0gc29saWQgdHJhbnNwYXJlbnQpO3RvcDo1MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSl9LnNpZ25wb3N0LWNvbnRlbnQucmlnaHQtbWlkZGxlIC5wb3BvdmVyLXBvaW50ZXI6YmVmb3Jle2JvcmRlci1ib3R0b206LjZyZW0g''@;'; + put 'put ''c29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLWJvdHRvbTp2YXIoLS1jbHItc2lnbnBvc3QtcG9pbnRlci1pbnZpc2libGUtYm9yZGVyLCAuNnJlbSBzb2xpZCB0cmFuc3BhcmVudCk7dG9wOi4wNXJlbX0uc2lnbnBvc3QtY29udGVudC5yaWdodC1ib3R0b20gLnNpZ25wb3N0LXdyYXB7Ym9yZGVy''@;'; + put 'put ''LXRvcC1sZWZ0LXJhZGl1czowfS5zaWducG9zdC1jb250ZW50LnJpZ2h0LWJvdHRvbSAucG9wb3Zlci1wb2ludGVye2JvcmRlci1ib3R0b206LjZyZW0gc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLWJvdHRvbTp2YXIoLS1jbHItc2lnbnBvc3QtcG9pbnRlci1pbnZpc2libGUtYm9yZGVyLCAu''@;'; + put 'put ''NnJlbSBzb2xpZCB0cmFuc3BhcmVudCk7dG9wOi0uMDVyZW19LnNpZ25wb3N0LWNvbnRlbnQucmlnaHQtYm90dG9tIC5wb3BvdmVyLXBvaW50ZXI6YmVmb3Jle2JvcmRlci1ib3R0b206LjZyZW0gc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLWJvdHRvbTp2YXIoLS1jbHItc2lnbnBvc3QtcG9p''@;'; + put 'put ''bnRlci1pbnZpc2libGUtYm9yZGVyLCAuNnJlbSBzb2xpZCB0cmFuc3BhcmVudCk7dG9wOi4wNXJlbX0uc2lnbnBvc3QtY29udGVudC1oZWFkZXJ7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpmbGV4LWVuZDtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxMDAlO2JhY2tncm91bmQtY29s''@;'; + put 'put ''b3I6aW5oZXJpdDt0b3A6MH0uc2lnbnBvc3Qtd3JhcHtib3JkZXItcmFkaXVzOi4xNXJlbTtib3JkZXItcmFkaXVzOnZhcigtLWNsci1zaWducG9zdC1ib3JkZXItcmFkaXVzLCAuMTVyZW0pO2JvcmRlci13aWR0aDouMDVyZW07Ym9yZGVyLXdpZHRoOnZhcigtLWNsci1nbG9iYWwtYm9yZGVy''@;'; + put 'put ''d2lkdGgsIC4wNXJlbSk7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci1jb2xvcjojYjNiM2IzO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItc2lnbnBvc3QtY29udGVudC1ib3JkZXItY29sb3IsICNiM2IzYjMpO2JhY2tncm91bmQtY29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNs''@;'; + put 'put ''ci1zaWducG9zdC1jb250ZW50LWJnLWNvbG9yLCB3aGl0ZSk7ei1pbmRleDoxMDUwO3Bvc2l0aW9uOnJlbGF0aXZlfS5zaWducG9zdC1jb250ZW50LWJvZHl7cGFkZGluZzoxLjJyZW07bWF4LWhlaWdodDoyNHJlbTtvdmVyZmxvdy15OmF1dG99LmRyYWctaGFuZGxle2N1cnNvcjpncmFifS5p''@;'; + put 'put ''bi1kcmFne2N1cnNvcjpncmFiYmluZzstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZX0uaW4tZHJhZyAqe3BvaW50ZXItZXZlbnRzOm5vbmV9LmluLWRyYWcgLmRyYWdnYWJsZS5iZWluZy1kcmFnZ2Vke29wYWNpdHk6LjZ9LmRyYWdnYWJsZS1naG9zdHtwb3NpdGlv''@;'; + put 'put ''bjpmaXhlZDtkaXNwbGF5OmJsb2NrO3Zpc2liaWxpdHk6aGlkZGVuO3otaW5kZXg6MjE0NzQ4MzY0Nztwb2ludGVyLWV2ZW50czpub25lO3dpbGwtY2hhbmdlOmxlZnQsdG9wfS5kcmFnZ2FibGUtZ2hvc3Q+LmRyYWdnYWJsZXttYXJnaW46MDtvcGFjaXR5OjF9LmRyYWdnYWJsZS1naG9zdC5k''@;'; + put 'put ''cm9wcGVke29wYWNpdHk6MH0uZHJvcHBhYmxlLmRyYWdnYWJsZS1tYXRjaHtib3JkZXI6LjA1cmVtIGRhc2hlZCAjYzA5MGQ1fS5kcm9wcGFibGUuZHJhZ2dhYmxlLW92ZXJ7Ym9yZGVyOi4wNXJlbSBkYXNoZWQgIzY4MDA5NH06cm9vdHstLWNsci1hY2NvcmRpb24tdGV4dC1jb2xvcjp2YXIo''@;'; + put 'put ''LS1jbHItZ2xvYmFsLWZvbnQtY29sb3IpOy0tY2xyLWFjY29yZGlvbi1hY3RpdmUtYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItZ2xvYmFsLXNlbGVjdGlvbi1jb2xvcik7LS1jbHItYWNjb3JkaW9uLWNvbnRlbnQtYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC0w''@;'; + put 'put ''KTstLWNsci1hY2NvcmRpb24taGVhZGVyLWJhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNTApOy0tY2xyLWFjY29yZGlvbi1oZWFkZXItaG92ZXItYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC0yMDApOy0tY2xyLWFjY29yZGlvbi1oZWFk''@;'; + put 'put ''ZXItZm9udC1zaXplOi44cmVtOy0tY2xyLWFjY29yZGlvbi1oZWFkZXItYnV0dG9uLWZvbnQtc2l6ZTouNnJlbTstLWNsci1hY2NvcmRpb24tdGl0bGUtZm9udC13ZWlnaHQ6NTAwOy0tY2xyLWFjY29yZGlvbi10aXRsZS1mb250LXNpemU6LjY1cmVtOy0tY2xyLWFjY29yZGlvbi1lcnJvci1j''@;'; + put 'put ''b2xvcjp2YXIoLS1jbHItZ2xvYmFsLWVycm9yLWNvbG9yKTstLWNsci1hY2NvcmRpb24tY29tcGxldGUtY29sb3I6dmFyKC0tY2xyLWdsb2JhbC1zdWNjZXNzLWNvbG9yKTstLWNsci1hY2NvcmRpb24tYm9yZGVyLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTQwMCk7LS1jbHItYWNj''@;'; + put 'put ''b3JkaW9uLWJvcmRlci1yYWRpdXM6dmFyKC0tY2xyLWdsb2JhbC1ib3JkZXJyYWRpdXMpOy0tY2xyLWFjY29yZGlvbi1ib3JkZXItbGVmdC1jb2xvcjojZThlOGU4Oy0tY2xyLWFjY29yZGlvbi1ib3JkZXItbGVmdC13aWR0aDouM3JlbTstLWNsci1hY2NvcmRpb24tYm9yZGVyLWxlZnQtY29s''@;'; + put 'put ''b3ItY29tcGxldGU6dmFyKC0tY2xyLWFjY29yZGlvbi1jb21wbGV0ZS1jb2xvcik7LS1jbHItYWNjb3JkaW9uLWJvcmRlci1sZWZ0LWNvbG9yLWVycm9yOnZhcigtLWNsci1hY2NvcmRpb24tZXJyb3ItY29sb3IpOy0tY2xyLWFjY29yZGlvbi1oZWFkZXItbGVmdC1pbmRpY2F0b3I6aW5zZXQg''@;'; + put 'put ''dmFyKC0tY2xyLWFjY29yZGlvbi1ib3JkZXItbGVmdC13aWR0aCkgMCAwIHZhcigtLWNsci1hY2NvcmRpb24tYm9yZGVyLWxlZnQtY29sb3IpOy0tY2xyLWFjY29yZGlvbi1oZWFkZXItbGVmdC1jb21wbGV0ZS1pbmRpY2F0b3I6aW5zZXQgdmFyKC0tY2xyLWFjY29yZGlvbi1ib3JkZXItbGVm''@;'; + put 'put ''dC13aWR0aCkgMCAwIHZhcigtLWNsci1hY2NvcmRpb24tYm9yZGVyLWxlZnQtY29sb3ItY29tcGxldGUpOy0tY2xyLWFjY29yZGlvbi1oZWFkZXItbGVmdC1lcnJvci1pbmRpY2F0b3I6aW5zZXQgdmFyKC0tY2xyLWFjY29yZGlvbi1ib3JkZXItbGVmdC13aWR0aCkgMCAwIHZhcigtLWNsci1h''@;'; + put 'put ''Y2NvcmRpb24tYm9yZGVyLWxlZnQtY29sb3ItZXJyb3IpfS5jbHItYWNjb3JkaW9ue2Rpc3BsYXk6YmxvY2s7Y291bnRlci1yZXNldDphY2NvcmRpb247bWFyZ2luLWJvdHRvbToxLjJyZW19LmNsci1hY2NvcmRpb24tcGFuZWx7ZGlzcGxheTpibG9ja30uY2xyLWFjY29yZGlvbi1oZWFkZXJ7''@;'; + put 'put ''Y29sb3I6IzY2Njtjb2xvcjp2YXIoLS1jbHItYWNjb3JkaW9uLXRleHQtY29sb3IsICM2NjY2NjYpO2JvcmRlcjouMDVyZW0gc29saWQ7Ym9yZGVyLWNvbG9yOiNjY2M7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1hY2NvcmRpb24tYm9yZGVyLWNvbG9yLCAjY2NjY2NjKTtib3gtc2hhZG93Omlu''@;'; + put 'put ''c2V0IC4zcmVtIDAgI2U4ZThlODtib3gtc2hhZG93OnZhcigtLWNsci1hY2NvcmRpb24taGVhZGVyLWxlZnQtaW5kaWNhdG9yLCBpbnNldCAuM3JlbSAwIDAgI2U4ZThlOCk7YmFja2dyb3VuZDojZmFmYWZhO2JhY2tncm91bmQ6dmFyKC0tY2xyLWFjY29yZGlvbi1oZWFkZXItYmFja2dyb3Vu''@;'; + put 'put ''ZC1jb2xvciwgI2ZhZmFmYSk7dHJhbnNpdGlvbjphbGwgLjJzIGVhc2UtaW4tb3V0O2JvcmRlci1ib3R0b206MDt3aWR0aDoxMDAlO2ZvbnQtc2l6ZTouOHJlbTtmb250LXNpemU6dmFyKC0tY2xyLWFjY29yZGlvbi1oZWFkZXItZm9udC1zaXplLCAuOHJlbSk7dGV4dC1hbGlnbjpsZWZ0fS5j''@;'; + put 'put ''bHItYWNjb3JkaW9uLWhlYWRlcjpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiNlOGU4ZTg7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItYWNjb3JkaW9uLWhlYWRlci1ob3Zlci1iYWNrZ3JvdW5kLWNvbG9yLCAjZThlOGU4KX0uY2xyLWFjY29yZGlvbi1wYW5lbDpsYXN0LWNoaWxkIC5jbHIt''@;'; + put 'put ''YWNjb3JkaW9uLWNvbnRlbnQsLmNsci1hY2NvcmRpb24tcGFuZWw6bGFzdC1jaGlsZCAuY2xyLWFjY29yZGlvbi1oZWFkZXJ7Ym9yZGVyLWJvdHRvbS1zdHlsZTpzb2xpZDtib3JkZXItYm90dG9tLXdpZHRoOi4wNXJlbTtib3JkZXItYm90dG9tLXdpZHRoOnZhcigtLWNsci1nbG9iYWwtYm9y''@;'; + put 'put ''ZGVyd2lkdGgsIC4wNXJlbSk7Ym9yZGVyLWJvdHRvbS1jb2xvcjojY2NjO2JvcmRlci1ib3R0b20tY29sb3I6dmFyKC0tY2xyLWFjY29yZGlvbi1ib3JkZXItY29sb3IsICNjY2NjY2MpfS5jbHItYWNjb3JkaW9uLW51bWJlcntwYWRkaW5nOjAgLjlyZW07ZGlzcGxheTpub25lfS5jbHItYWNj''@;'; + put 'put ''b3JkaW9uLW51bWJlcjpiZWZvcmV7Y29udGVudDpjb3VudGVyKGFjY29yZGlvbikgIi4iO2NvdW50ZXItaW5jcmVtZW50OmFjY29yZGlvbn0uY2xyLWFjY29yZGlvbi1oZWFkZXItYnV0dG9ue2Rpc3BsYXk6ZmxleDtmbGV4LWZsb3c6cm93IHdyYXA7ZmxleDoxIDEgMCU7d2lkdGg6MTAwJTti''@;'; + put 'put ''b3JkZXI6MDtwYWRkaW5nOi45cmVtO2JhY2tncm91bmQ6MCAwO3RleHQtYWxpZ246bGVmdDtjdXJzb3I6cG9pbnRlcjtjb2xvcjojNjY2O2NvbG9yOnZhcigtLWNsci1hY2NvcmRpb24tdGV4dC1jb2xvciwgIzY2NjY2Nil9QG1lZGlhIChtaW4td2lkdGg6NTc2cHgpey5jbHItYWNjb3JkaW9u''@;'; + put 'put ''LWhlYWRlci1idXR0b257ZmxleC1mbG93OnJvd319LmNsci1hY2NvcmRpb24tc3RhdHVze3dpZHRoOjEuOHJlbTtkaXNwbGF5OmlubGluZS1ibG9jazt2ZXJ0aWNhbC1hbGlnbjp0b3B9LmNsci1hY2NvcmRpb24tdGl0bGV7ZGlzcGxheTppbmxpbmUtYmxvY2t9QG1lZGlhIChtaW4td2lkdGg6''@;'; + put 'put ''NTc2cHgpe2Nsci1zdGVwLXRpdGxlLmNsci1hY2NvcmRpb24tdGl0bGV7bWluLXdpZHRoOjguNjRyZW19fS5jbHItYWNjb3JkaW9uLWhlYWRlci1oYXMtZGVzY3JpcHRpb24gLmNsci1hY2NvcmRpb24tdGl0bGV7bWF4LXdpZHRoOjEzLjJyZW19LmNsci1hY2NvcmRpb24tZGVzY3JpcHRpb257''@;'; + put 'put ''ZGlzcGxheTppbmxpbmUtYmxvY2s7bWF4LXdpZHRoOjMyLjVyZW19QG1lZGlhIChtaW4td2lkdGg6NTc2cHgpey5jbHItYWNjb3JkaW9uLWRlc2NyaXB0aW9ue21hcmdpbi1sZWZ0OjEuOHJlbX19LmNsci1hY2NvcmRpb24tY29udGVudHtiYWNrZ3JvdW5kOiNmZmY7YmFja2dyb3VuZDp2YXIo''@;'; + put 'put ''LS1jbHItYWNjb3JkaW9uLWNvbnRlbnQtYmFja2dyb3VuZC1jb2xvciwgd2hpdGUpO2JvcmRlci13aWR0aDouMDVyZW07Ym9yZGVyLXdpZHRoOnZhcigtLWNsci1nbG9iYWwtYm9yZGVyd2lkdGgsIC4wNXJlbSk7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci1jb2xvcjojY2NjO2JvcmRlci1j''@;'; + put 'put ''b2xvcjp2YXIoLS1jbHItYWNjb3JkaW9uLWJvcmRlci1jb2xvciwgI2NjY2NjYyk7Ym9yZGVyLWJvdHRvbTowO292ZXJmbG93OmhpZGRlbjtwYWRkaW5nOi45cmVtO2Rpc3BsYXk6bm9uZX0uY2xyLWFjY29yZGlvbi1jb250ZW50IC5jbHItZm9ybSwuY2xyLWFjY29yZGlvbi1jb250ZW50Lm5n''@;'; + put 'put ''LXRyaWdnZXJ7cGFkZGluZzowfUBtZWRpYSAobWluLXdpZHRoOjU3NnB4KXsuY2xyLWFjY29yZGlvbi1jb250ZW50e3BhZGRpbmc6LjlyZW0gMi43cmVtfX0uY2xyLWFjY29yZGlvbi1pbm5lci1jb250ZW50e3BhZGRpbmc6LjlyZW19QG1lZGlhIChtaW4td2lkdGg6NTc2cHgpey5jbHItYWNj''@;'; + put 'put ''b3JkaW9uLWlubmVyLWNvbnRlbnR7cGFkZGluZzouOXJlbSAyLjdyZW19fS5jbHItYWNjb3JkaW9uLWFuZ2xle3RyYW5zaXRpb246YWxsIC4ycyBlYXNlLWluLW91dDt0cmFuc2Zvcm06cm90YXRlKDkwKX0uY2xyLWFjY29yZGlvbi1lcnJvci1pY29uLC5jbHItYWNjb3JkaW9uLWNvbXBsZXRl''@;'; + put 'put ''LWljb257aGVpZ2h0OjEuMnJlbTt3aWR0aDoxLjJyZW07ZGlzcGxheTpub25lO3BhZGRpbmc6MDttYXJnaW46MCAuNnJlbX0uY2xyLWFjY29yZGlvbi1wYW5lbC1vcGVuIC5jbHItYWNjb3JkaW9uLWNvbnRlbnR7ZGlzcGxheTpibG9ja30uY2xyLWFjY29yZGlvbi1wYW5lbC1vcGVuIC5jbHIt''@;'; + put 'put ''YWNjb3JkaW9uLWFuZ2xle3Zpc2liaWxpdHk6dmlzaWJsZTt0cmFuc2Zvcm06cm90YXRlKDE4MGRlZyl9LmNsci1hY2NvcmRpb24tcGFuZWwtb3BlbiAuY2xyLWFjY29yZGlvbi1oZWFkZXJ7YmFja2dyb3VuZDojZDhlM2U5O2JhY2tncm91bmQ6dmFyKC0tY2xyLWFjY29yZGlvbi1hY3RpdmUt''@;'; + put 'put ''YmFja2dyb3VuZC1jb2xvciwgI2Q4ZTNlOSl9LmNsci1hY2NvcmRpb24tcGFuZWwtY29tcGxldGUgLmNsci1hY2NvcmRpb24tY29tcGxldGUtaWNvbntkaXNwbGF5OmlubGluZS1ibG9jaztjb2xvcjojNWFhMjIwO2NvbG9yOnZhcigtLWNsci1hY2NvcmRpb24tY29tcGxldGUtY29sb3IsICM1''@;'; + put 'put ''YWEyMjApfS5jbHItYWNjb3JkaW9uLXBhbmVsLWNvbXBsZXRlIC5jbHItYWNjb3JkaW9uLWFuZ2xle3Zpc2liaWxpdHk6dmlzaWJsZX0uY2xyLWFjY29yZGlvbi1wYW5lbC1jb21wbGV0ZSAuY2xyLWFjY29yZGlvbi1oZWFkZXJ7Ym94LXNoYWRvdzppbnNldCAuM3JlbSAwICM1YWEyMjA7Ym94''@;'; + put 'put ''LXNoYWRvdzp2YXIoLS1jbHItYWNjb3JkaW9uLWhlYWRlci1sZWZ0LWNvbXBsZXRlLWluZGljYXRvciwgaW5zZXQgLjNyZW0gMCAwICM1YWEyMjApfS5jbHItYWNjb3JkaW9uLXBhbmVsLWNvbXBsZXRlIC5uZy10cmlnZ2VyLmNsci1hY2NvcmRpb24tY29udGVudHtkaXNwbGF5OmJsb2NrfS5j''@;'; + put 'put ''bHItYWNjb3JkaW9uLXBhbmVsLWVycm9yIC5jbHItYWNjb3JkaW9uLWhlYWRlcntib3JkZXItYm90dG9tOi4wNXJlbSBzb2xpZDtib3JkZXItY29sb3I6I2MyMWQwMDtib3JkZXItY29sb3I6dmFyKC0tY2xyLWFjY29yZGlvbi1ib3JkZXItbGVmdC1jb2xvci1lcnJvciwgI2MyMWQwMCk7Ym94''@;'; + put 'put ''LXNoYWRvdzppbnNldCAuM3JlbSAwICNjMjFkMDA7Ym94LXNoYWRvdzp2YXIoLS1jbHItYWNjb3JkaW9uLWhlYWRlci1sZWZ0LWVycm9yLWluZGljYXRvciwgaW5zZXQgLjNyZW0gMCAwICNjMjFkMDApO2JhY2tncm91bmQtY29sb3I6I2Q4ZTNlOTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNs''@;'; + put 'put ''ci1hY2NvcmRpb24tYWN0aXZlLWJhY2tncm91bmQtY29sb3IsICNkOGUzZTkpfS5jbHItYWNjb3JkaW9uLXBhbmVsLWVycm9yIC5jbHItYWNjb3JkaW9uLWVycm9yLWljb257ZGlzcGxheTppbmxpbmUtYmxvY2s7Y29sb3I6I2MyMWQwMDtjb2xvcjp2YXIoLS1jbHItYWNjb3JkaW9uLWVycm9y''@;'; + put 'put ''LWNvbG9yLCAjYzIxZDAwKX0uY2xyLWFjY29yZGlvbi1wYW5lbC1lcnJvciAuY2xyLWFjY29yZGlvbi1udW1iZXIsLmNsci1hY2NvcmRpb24tcGFuZWwtY29tcGxldGUgLmNsci1hY2NvcmRpb24tbnVtYmVye3Bvc2l0aW9uOmFic29sdXRlO2NsaXA6cmVjdCgxcHgsMXB4LDFweCwxcHgpO2Ns''@;'; + put 'put ''aXAtcGF0aDppbnNldCg1MCUpO3BhZGRpbmc6MDtib3JkZXI6MDtoZWlnaHQ6MXB4O3dpZHRoOjFweDtvdmVyZmxvdzpoaWRkZW47d2hpdGUtc3BhY2U6bm93cmFwO3RvcDowO2xlZnQ6MH0uY2xyLWFjY29yZGlvbjpub3QoLmNsci1zdGVwcGVyLWZvcm1zKSAuY2xyLWFjY29yZGlvbi1oZWFk''@;'; + put 'put ''ZXJ7Ym94LXNoYWRvdzpub25lfS5jbHItYWNjb3JkaW9uOm5vdCguY2xyLXN0ZXBwZXItZm9ybXMpIC5jbHItYWNjb3JkaW9uLXBhbmVsOmZpcnN0LWNoaWxkIC5jbHItYWNjb3JkaW9uLWhlYWRlcntib3JkZXItdG9wLWxlZnQtcmFkaXVzOi4xNXJlbTtib3JkZXItdG9wLWxlZnQtcmFkaXVz''@;'; + put 'put ''OnZhcigtLWNsci1hY2NvcmRpb24tYm9yZGVyLXJhZGl1cywgLjE1cmVtKTtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czouMTVyZW07Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6dmFyKC0tY2xyLWFjY29yZGlvbi1ib3JkZXItcmFkaXVzLCAuMTVyZW0pfS5jbHItYWNjb3JkaW9uOm5vdCguY2xy''@;'; + put 'put ''LXN0ZXBwZXItZm9ybXMpIC5jbHItYWNjb3JkaW9uLXBhbmVsOmxhc3QtY2hpbGQgLmNsci1hY2NvcmRpb24tY29udGVudCwuY2xyLWFjY29yZGlvbjpub3QoLmNsci1zdGVwcGVyLWZvcm1zKSAuY2xyLWFjY29yZGlvbi1wYW5lbDpsYXN0LWNoaWxkIC5jbHItYWNjb3JkaW9uLWhlYWRlcnti''@;'; + put 'put ''b3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOi4xNXJlbTtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOnZhcigtLWNsci1hY2NvcmRpb24tYm9yZGVyLXJhZGl1cywgLjE1cmVtKTtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czouMTVyZW07Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6dmFy''@;'; + put 'put ''KC0tY2xyLWFjY29yZGlvbi1ib3JkZXItcmFkaXVzLCAuMTVyZW0pfS5jbHItYWNjb3JkaW9uOm5vdCguY2xyLXN0ZXBwZXItZm9ybXMpIC5jbHItYWNjb3JkaW9uLXRpdGxle2ZvbnQtd2VpZ2h0OjUwMDtmb250LXdlaWdodDp2YXIoLS1jbHItYWNjb3JkaW9uLXRpdGxlLWZvbnQtd2VpZ2h0''@;'; + put 'put ''LCA1MDApO2ZvbnQtc2l6ZTouNjVyZW07Zm9udC1zaXplOnZhcigtLWNsci1hY2NvcmRpb24tdGl0bGUtZm9udC1zaXplLCAuNjVyZW0pfS5jbHItYWNjb3JkaW9uOm5vdCguY2xyLXN0ZXBwZXItZm9ybXMpIC5jbHItYWNjb3JkaW9uLWhlYWRlci1idXR0b257Zm9udC1zaXplOi42cmVtO2Zv''@;'; + put 'put ''bnQtc2l6ZTp2YXIoLS1jbHItYWNjb3JkaW9uLWhlYWRlci1idXR0b24tZm9udC1zaXplLCAuNnJlbSk7cGFkZGluZzouM3JlbSAuNnJlbX0uY2xyLWFjY29yZGlvbjpub3QoLmNsci1zdGVwcGVyLWZvcm1zKSAuY2xyLWFjY29yZGlvbi1jb250ZW50e3BhZGRpbmc6MH0uY2xyLWFjY29yZGlv''@;'; + put 'put ''bjpub3QoLmNsci1zdGVwcGVyLWZvcm1zKSAuY2xyLWFjY29yZGlvbi1pbm5lci1jb250ZW50e3BhZGRpbmc6LjNyZW0gMS43NXJlbX0uY2xyLWFjY29yZGlvbjpub3QoLmNsci1zdGVwcGVyLWZvcm1zKSAuY2xyLWFjY29yZGlvbi1zdGF0dXN7d2lkdGg6Ljk2cmVtfS5jbHItYWNjb3JkaW9u''@;'; + put 'put ''Om5vdCguY2xyLXN0ZXBwZXItZm9ybXMpIC5jbHItYWNjb3JkaW9uLXN0YXR1cyBjZHMtaWNvbiwuY2xyLWFjY29yZGlvbjpub3QoLmNsci1zdGVwcGVyLWZvcm1zKSAuY2xyLWFjY29yZGlvbi1zdGF0dXMgY2xyLWljb257aGVpZ2h0Oi43cmVtO3dpZHRoOi43cmVtfS5jbHItYWNjb3JkaW9u''@;'; + put 'put ''LXBhbmVsLW9wZW4gLmNsci1hY2NvcmRpb24taGVhZGVye2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MCFpbXBvcnRhbnQ7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6MCFpbXBvcnRhbnQ7Ym9yZGVyLWJvdHRvbTowIWltcG9ydGFudH0uY2xyLXN0ZXBwZXItZm9ybXMgLmNsci1hY2Nv''@;'; + put 'put ''cmRpb24tcGFuZWwtaW5hY3RpdmUgLmNsci1hY2NvcmRpb24tYW5nbGV7dmlzaWJpbGl0eTpoaWRkZW59LmNsci1zdGVwcGVyLWZvcm1zIC5jbHItYWNjb3JkaW9uLXBhbmVsLW9wZW4gLmNsci1hY2NvcmRpb24tYW5nbGV7dmlzaWJpbGl0eTp2aXNpYmxlfS5jbHItc3RlcHBlci1mb3JtcyAu''@;'; + put 'put ''Y2xyLWFjY29yZGlvbi1zdGF0dXN7bWluLXdpZHRoOjMuNnJlbX0uY2xyLXN0ZXBwZXItZm9ybXMgLmNsci1hY2NvcmRpb24tbnVtYmVye2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5jbHItc3RlcC1idXR0b257ZGlzcGxheTpibG9jazttYXJnaW4tdG9wOjEuMnJlbX06cm9vdHstLWNsci10aW1l''@;'; + put 'put ''bGluZS1saW5lLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTUwMCk7LS1jbHItdGltZWxpbmUtc3RlcC1oZWFkZXItY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNjAwKTstLWNsci10aW1lbGluZS1zdGVwLXRpdGxlLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTcw''@;'; + put 'put ''MCk7LS1jbHItdGltZWxpbmUtc3RlcC1kZXNjcmlwdGlvbi1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC03MDApOy0tY2xyLXRpbWVsaW5lLWluY29tcGxldGUtc3RlcC1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC02MDApOy0tY2xyLXRpbWVsaW5lLWN1cnJlbnQtc3RlcC1j''@;'; + put 'put ''b2xvcjp2YXIoLS1jbHItY29sb3ItYWN0aW9uLTYwMCk7LS1jbHItdGltZWxpbmUtc3VjY2Vzcy1zdGVwLWNvbG9yOnZhcigtLWNsci1jb2xvci1zdWNjZXNzLTQwMCk7LS1jbHItdGltZWxpbmUtZXJyb3Itc3RlcC1jb2xvcjp2YXIoLS1jbHItY29sb3ItZGFuZ2VyLTgwMCk7LS1jbHItdGlt''@;'; + put 'put ''ZWxpbmUtc3RlcC10aXRsZS1mb250LXdlaWdodDp2YXIoLS1jbHItcDItZm9udC13ZWlnaHQpfS5jbHItdGltZWxpbmV7ZGlzcGxheTpmbGV4O3BhZGRpbmc6LjZyZW19LmNsci10aW1lbGluZS1zdGVwe2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47d2lkdGg6MTAwJTttaW4t''@;'; + put 'put ''d2lkdGg6OC43NXJlbTttYXJnaW4tbGVmdDouNnJlbX0uY2xyLXRpbWVsaW5lLXN0ZXAgY2RzLWljb24sLmNsci10aW1lbGluZS1zdGVwIGNsci1pY29ue2hlaWdodDoxLjhyZW07d2lkdGg6MS44cmVtO21pbi1oZWlnaHQ6MS44cmVtO21pbi13aWR0aDoxLjhyZW19LmNsci10aW1lbGluZS1z''@;'; + put 'put ''dGVwIGNkcy1pY29uW3NoYXBlPWNpcmNsZV0sLmNsci10aW1lbGluZS1zdGVwIGNsci1pY29uW3NoYXBlPWNpcmNsZV17Y29sb3I6IzhjOGM4Yztjb2xvcjp2YXIoLS1jbHItdGltZWxpbmUtaW5jb21wbGV0ZS1zdGVwLWNvbG9yLCAjOGM4YzhjKX0uY2xyLXRpbWVsaW5lLXN0ZXAgY2RzLWlj''@;'; + put 'put ''b25bc2hhcGU9ZG90LWNpcmNsZV0sLmNsci10aW1lbGluZS1zdGVwIGNsci1pY29uW3NoYXBlPWRvdC1jaXJjbGVde2NvbG9yOiMwMDcyYTM7Y29sb3I6dmFyKC0tY2xyLXRpbWVsaW5lLWN1cnJlbnQtc3RlcC1jb2xvciwgIzAwNzJhMyl9LmNsci10aW1lbGluZS1zdGVwIGNkcy1pY29uW3No''@;'; + put 'put ''YXBlPXN1Y2Nlc3Mtc3RhbmRhcmRdLC5jbHItdGltZWxpbmUtc3RlcCBjbHItaWNvbltzaGFwZT1zdWNjZXNzLXN0YW5kYXJkXXtjb2xvcjojNWViNzE1O2NvbG9yOnZhcigtLWNsci10aW1lbGluZS1zdWNjZXNzLXN0ZXAtY29sb3IsICM1ZWI3MTUpfS5jbHItdGltZWxpbmUtc3RlcCBjZHMt''@;'; + put 'put ''aWNvbltzaGFwZT1lcnJvci1zdGFuZGFyZF0sLmNsci10aW1lbGluZS1zdGVwIGNsci1pY29uW3NoYXBlPWVycm9yLXN0YW5kYXJkXXtjb2xvcjojYzIxZDAwO2NvbG9yOnZhcigtLWNsci10aW1lbGluZS1lcnJvci1zdGVwLWNvbG9yLCAjYzIxZDAwKX0uY2xyLXRpbWVsaW5lLXN0ZXA6bm90''@;'; + put 'put ''KDpsYXN0LW9mLXR5cGUpIC5jbHItdGltZWxpbmUtc3RlcC1ib2R5OmJlZm9yZXtjb250ZW50OiIiO2JhY2tncm91bmQ6I2IzYjNiMztiYWNrZ3JvdW5kOnZhcigtLWNsci10aW1lbGluZS1saW5lLWNvbG9yLCAjYjNiM2IzKTtoZWlnaHQ6LjFyZW07d2lkdGg6Y2FsYygxMDAlIC0gMXJlbSk7''@;'; + put 'put ''dHJhbnNmb3JtOnRyYW5zbGF0ZSgxLjdyZW0sLS45NXJlbSl9LmNsci10aW1lbGluZS1zdGVwLWhlYWRlcntjb2xvcjojOGM4YzhjO2NvbG9yOnZhcigtLWNsci10aW1lbGluZS1zdGVwLWhlYWRlci1jb2xvciwgIzhjOGM4Yyk7Zm9udC1zaXplOi42NXJlbTtsaW5lLWhlaWdodDouOXJlbTt3''@;'; + put 'put ''aGl0ZS1zcGFjZTpub3dyYXA7bWFyZ2luLWJvdHRvbTouNHJlbX0uY2xyLXRpbWVsaW5lLXN0ZXAtYm9keXtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1ufS5jbHItdGltZWxpbmUtc3RlcC1ib2R5IGNkcy1pY29uLC5jbHItdGltZWxpbmUtc3RlcC1ib2R5IGNsci1pY29ue2hl''@;'; + put 'put ''aWdodDouOHJlbTt3aWR0aDouOHJlbTttaW4td2lkdGg6aW5pdGlhbDttaW4taGVpZ2h0OmluaXRpYWx9LmNsci10aW1lbGluZS1zdGVwLWJvZHkgY2RzLWljb25bc2hhcGU9Y2lyY2xlXSwuY2xyLXRpbWVsaW5lLXN0ZXAtYm9keSBjZHMtaWNvbltzaGFwZT1kb3QtY2lyY2xlXSwuY2xyLXRp''@;'; + put 'put ''bWVsaW5lLXN0ZXAtYm9keSBjZHMtaWNvbltzaGFwZT1zdWNjZXNzLXN0YW5kYXJkXSwuY2xyLXRpbWVsaW5lLXN0ZXAtYm9keSBjZHMtaWNvbltzaGFwZT1lcnJvci1zdGFuZGFyZF0sLmNsci10aW1lbGluZS1zdGVwLWJvZHkgY2xyLWljb25bc2hhcGU9Y2lyY2xlXSwuY2xyLXRpbWVsaW5l''@;'; + put 'put ''LXN0ZXAtYm9keSBjbHItaWNvbltzaGFwZT1kb3QtY2lyY2xlXSwuY2xyLXRpbWVsaW5lLXN0ZXAtYm9keSBjbHItaWNvbltzaGFwZT1zdWNjZXNzLXN0YW5kYXJkXSwuY2xyLXRpbWVsaW5lLXN0ZXAtYm9keSBjbHItaWNvbltzaGFwZT1lcnJvci1zdGFuZGFyZF17Y29sb3I6aW5oZXJpdH0u''@;'; + put 'put ''Y2xyLXRpbWVsaW5lLXN0ZXAtdGl0bGV7Y29sb3I6IzY2Njtjb2xvcjp2YXIoLS1jbHItdGltZWxpbmUtc3RlcC10aXRsZS1jb2xvciwgIzY2NjY2Nik7Zm9udC1zaXplOi42NXJlbTtmb250LXdlaWdodDo1MDA7Zm9udC13ZWlnaHQ6dmFyKC0tY2xyLXRpbWVsaW5lLXN0ZXAtdGl0bGUtZm9u''@;'; + put 'put ''dC13ZWlnaHQsIDUwMCk7bGluZS1oZWlnaHQ6LjlyZW07bWFyZ2luLXRvcDouNHJlbTttYXJnaW4tYm90dG9tOi4zcmVtfS5jbHItdGltZWxpbmUtc3RlcC1kZXNjcmlwdGlvbntjb2xvcjojNjY2O2NvbG9yOnZhcigtLWNsci10aW1lbGluZS1zdGVwLWRlc2NyaXB0aW9uLWNvbG9yLCAjNjY2''@;'; + put 'put ''NjY2KTtmb250LXNpemU6LjU1cmVtO2xpbmUtaGVpZ2h0Oi44cmVtfS5jbHItdGltZWxpbmUtc3RlcC1kZXNjcmlwdGlvbiBidXR0b257ZGlzcGxheTpibG9jazttYXJnaW4tdG9wOi40cmVtfS5jbHItdGltZWxpbmUtc3RlcC1kZXNjcmlwdGlvbiBpbWd7d2lkdGg6MTAwJTttYXJnaW4tdG9w''@;'; + put 'put ''Oi40cmVtfS5jbHItdGltZWxpbmUuY2xyLXRpbWVsaW5lLXZlcnRpY2Fse2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjttaW4td2lkdGg6MTZyZW19LmNsci10aW1lbGluZS5jbHItdGltZWxpbmUtdmVydGljYWwgLmNsci10aW1lbGluZS1zdGVwe2ZsZXgtZGlyZWN0aW9uOnJvdzttYXJnaW4tbGVm''@;'; + put 'put ''dDowO3Bvc2l0aW9uOnJlbGF0aXZlfS5jbHItdGltZWxpbmUuY2xyLXRpbWVsaW5lLXZlcnRpY2FsIC5jbHItdGltZWxpbmUtc3RlcDpub3QoOmxhc3Qtb2YtdHlwZSl7bWFyZ2luLWJvdHRvbToxLjhyZW19LmNsci10aW1lbGluZS5jbHItdGltZWxpbmUtdmVydGljYWwgLmNsci10aW1lbGlu''@;'; + put 'put ''ZS1zdGVwOm5vdCg6bGFzdC1vZi10eXBlKSAuY2xyLXRpbWVsaW5lLXN0ZXAtYm9keTpiZWZvcmV7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6LjFyZW07aGVpZ2h0OmNhbGMoMTAwJSArIC4ycmVtKTt0cmFuc2Zvcm06dHJhbnNsYXRlKC0xLjU1cmVtLDEuNHJlbSl9LmNsci10aW1lbGluZS5j''@;'; + put 'put ''bHItdGltZWxpbmUtdmVydGljYWwgLmNsci10aW1lbGluZS1zdGVwLWhlYWRlcnt0ZXh0LWFsaWduOnJpZ2h0O3doaXRlLXNwYWNlOm5vcm1hbDt3b3JkLWJyZWFrOmJyZWFrLXdvcmQ7d2lkdGg6M3JlbTttaW4td2lkdGg6M3JlbTttYXJnaW4tcmlnaHQ6LjZyZW07bWFyZ2luLXRvcDouM3Jl''@;'; + put 'put ''bTttYXJnaW4tYm90dG9tOjB9LmNsci10aW1lbGluZS5jbHItdGltZWxpbmUtdmVydGljYWwgLmNsci10aW1lbGluZS1zdGVwLXRpdGxle21hcmdpbi10b3A6MH0uY2xyLXRpbWVsaW5lLmNsci10aW1lbGluZS12ZXJ0aWNhbCAuY2xyLXRpbWVsaW5lLXN0ZXAtYm9keXtkaXNwbGF5OmZsZXg7''@;'; + put 'put ''ZmxleC1kaXJlY3Rpb246Y29sdW1uO21pbi13aWR0aDo4LjlyZW07bWFyZ2luLWxlZnQ6LjZyZW07bWFyZ2luLXRvcDouM3JlbX1Aa2V5ZnJhbWVzIHNwaW57MCV7dHJhbnNmb3JtOnJvdGF0ZSgwKX10b3t0cmFuc2Zvcm06cm90YXRlKDM2MGRlZyl9fWNsci1pY29ue2Rpc3BsYXk6aW5saW5l''@;'; + put 'put ''LWJsb2NrO21hcmdpbjowO2hlaWdodDoxNnB4O3dpZHRoOjE2cHg7dmVydGljYWwtYWxpZ246bWlkZGxlO2ZpbGw6Y3VycmVudENvbG9yfWNsci1pY29uIC50cmFuc3BhcmVudC1maWxsLXN0cm9rZXtzdHJva2U6Y3VycmVudENvbG9yfWNsci1pY29uLmlzLWdyZWVuLGNsci1pY29uLmlzLXN1''@;'; + put 'put ''Y2Nlc3N7ZmlsbDojMmU4NTAwfWNsci1pY29uLmlzLWdyZWVuIC50cmFuc3BhcmVudC1maWxsLXN0cm9rZSxjbHItaWNvbi5pcy1zdWNjZXNzIC50cmFuc3BhcmVudC1maWxsLXN0cm9rZXtzdHJva2U6IzJlODUwMH1jbHItaWNvbi5pcy1yZWQsY2xyLWljb24uaXMtZGFuZ2VyLGNsci1pY29u''@;'; + put 'put ''LmlzLWVycm9ye2ZpbGw6I2UwMjIwMH1jbHItaWNvbi5pcy1yZWQgLnRyYW5zcGFyZW50LWZpbGwtc3Ryb2tlLGNsci1pY29uLmlzLWRhbmdlciAudHJhbnNwYXJlbnQtZmlsbC1zdHJva2UsY2xyLWljb24uaXMtZXJyb3IgLnRyYW5zcGFyZW50LWZpbGwtc3Ryb2tle3N0cm9rZTojZTAyMjAw''@;'; + put 'put ''fWNsci1pY29uLmlzLXdhcm5pbmd7ZmlsbDojYzI3YjAwfWNsci1pY29uLmlzLXdhcm5pbmcgLnRyYW5zcGFyZW50LWZpbGwtc3Ryb2tle3N0cm9rZTojYzI3YjAwfWNsci1pY29uLmlzLWJsdWUsY2xyLWljb24uaXMtaW5mb3tmaWxsOiMwMDc3Yjh9Y2xyLWljb24uaXMtYmx1ZSAudHJhbnNw''@;'; + put 'put ''YXJlbnQtZmlsbC1zdHJva2UsY2xyLWljb24uaXMtaW5mbyAudHJhbnNwYXJlbnQtZmlsbC1zdHJva2V7c3Ryb2tlOiMwMDc3Yjh9Y2xyLWljb24uaXMtd2hpdGUsY2xyLWljb24uaXMtaW52ZXJzZXtmaWxsOiNmZmZ9Y2xyLWljb24uaXMtd2hpdGUgLnRyYW5zcGFyZW50LWZpbGwtc3Ryb2tl''@;'; + put 'put ''LGNsci1pY29uLmlzLWludmVyc2UgLnRyYW5zcGFyZW50LWZpbGwtc3Ryb2tle3N0cm9rZTojZmZmfWNsci1pY29uLmlzLWhpZ2hsaWdodHtmaWxsOiMwMDc3Yjh9Y2xyLWljb24uaXMtaGlnaGxpZ2h0IC50cmFuc3BhcmVudC1maWxsLXN0cm9rZXtzdHJva2U6IzAwNzdiOH1jbHItaWNvbltz''@;'; + put 'put ''aGFwZSQ9IiB1cCJdIHN2ZyxjbHItaWNvbltkaXI9dXBdIHN2Z3t0cmFuc2Zvcm06cm90YXRlKDApfWNsci1pY29uW3NoYXBlJD0iIGRvd24iXSBzdmcsY2xyLWljb25bZGlyPWRvd25dIHN2Z3t0cmFuc2Zvcm06cm90YXRlKDE4MGRlZyl9Y2xyLWljb25bc2hhcGUkPSIgcmlnaHQiXSBzdmcs''@;'; + put 'put ''Y2xyLWljb25bZGlyPXJpZ2h0XSBzdmd7dHJhbnNmb3JtOnJvdGF0ZSg5MGRlZyl9Y2xyLWljb25bc2hhcGUkPSIgbGVmdCJdIHN2ZyxjbHItaWNvbltkaXI9bGVmdF0gc3Zne3RyYW5zZm9ybTpyb3RhdGUoMjcwZGVnKX1jbHItaWNvbltmbGlwPWhvcml6b250YWxdIHN2Z3t0cmFuc2Zvcm06''@;'; + put 'put ''c2NhbGUoLTEpIHJvdGF0ZVgoMTgwZGVnKX1jbHItaWNvbltmbGlwPXZlcnRpY2FsXSBzdmd7dHJhbnNmb3JtOnNjYWxlKC0xKSByb3RhdGVZKDE4MGRlZyl9Y2xyLWljb24gLmNsci1pLWJhZGdle2ZpbGw6I2UwMjIwMH1jbHItaWNvbiAuY2xyLWktYmFkZ2UgLnRyYW5zcGFyZW50LWZpbGwt''@;'; + put 'put ''c3Ryb2tle3N0cm9rZTojZTAyMjAwfWNsci1pY29uPip7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJTtkaXNwbGF5OmJsb2NrO3BvaW50ZXItZXZlbnRzOm5vbmV9Y2xyLWljb24+c3Zne3RyYW5zaXRpb246aW5oZXJpdH1jbHItaWNvbj5zdmcgdGl0bGV7ZGlzcGxheTpub25lfWNsci1pY29uIC5j''@;'; + put 'put ''bHItaS1zb2xpZCxjbHItaWNvbiAuY2xyLWktc29saWQtLWJhZGdlZCxjbHItaWNvbiAuY2xyLWktc29saWQtLWFsZXJ0ZWR7ZGlzcGxheTpub25lfWNsci1pY29uIC5jbHItaS1vdXRsaW5lLS1hbGVydGVkOm5vdCguY2xyLWktb3V0bGluZSksY2xyLWljb24gLmNsci1pLW91dGxpbmUtLWJh''@;'; + put 'put ''ZGdlZDpub3QoLmNsci1pLW91dGxpbmUpe2Rpc3BsYXk6bm9uZX1jbHItaWNvbltjbGFzcyo9aGFzLWFsZXJ0XSAuY2FuLWFsZXJ0IC5jbHItaS1vdXRsaW5lLS1hbGVydGVke2Rpc3BsYXk6YmxvY2t9Y2xyLWljb25bY2xhc3MqPWhhcy1hbGVydF0gLmNhbi1hbGVydCAuY2xyLWktb3V0bGlu''@;'; + put 'put ''ZTpub3QoLmNsci1pLW91dGxpbmUtLWFsZXJ0ZWQpe2Rpc3BsYXk6bm9uZX1jbHItaWNvbltjbGFzcyo9aGFzLWJhZGdlXSAuY2FuLWJhZGdlIC5jbHItaS1vdXRsaW5lLS1iYWRnZWR7ZGlzcGxheTpibG9ja31jbHItaWNvbltjbGFzcyo9aGFzLWJhZGdlXSAuY2FuLWJhZGdlIC5jbHItaS1v''@;'; + put 'put ''dXRsaW5lOm5vdCguY2xyLWktb3V0bGluZS0tYmFkZ2VkKXtkaXNwbGF5Om5vbmV9Y2xyLWljb24uaXMtc29saWQgLmhhcy1zb2xpZCAuY2xyLWktc29saWR7ZGlzcGxheTpibG9ja31jbHItaWNvbi5pcy1zb2xpZCAuaGFzLXNvbGlkIC5jbHItaS1vdXRsaW5lLGNsci1pY29uLmlzLXNvbGlk''@;'; + put 'put ''IC5oYXMtc29saWQgLmNsci1pLW91dGxpbmUtLWJhZGdlZHtkaXNwbGF5Om5vbmV9Y2xyLWljb24uaXMtc29saWQgLmhhcy1zb2xpZCAuY2xyLWktc29saWQtLWFsZXJ0ZWQ6bm90KC5jbHItaS1zb2xpZCksY2xyLWljb24uaXMtc29saWQgLmhhcy1zb2xpZCAuY2xyLWktc29saWQtLWJhZGdl''@;'; + put 'put ''ZDpub3QoLmNsci1pLXNvbGlkKXtkaXNwbGF5Om5vbmV9Y2xyLWljb24uaXMtc29saWRbY2xhc3MqPWhhcy1iYWRnZV0gLmNhbi1iYWRnZS5oYXMtc29saWQgLmNsci1pLXNvbGlkLS1iYWRnZWR7ZGlzcGxheTpibG9ja31jbHItaWNvbi5pcy1zb2xpZFtjbGFzcyo9aGFzLWJhZGdlXSAuY2Fu''@;'; + put 'put ''LWJhZGdlLmhhcy1zb2xpZCAuY2xyLWktb3V0bGluZSxjbHItaWNvbi5pcy1zb2xpZFtjbGFzcyo9aGFzLWJhZGdlXSAuY2FuLWJhZGdlLmhhcy1zb2xpZCAuY2xyLWktb3V0bGluZS0tYmFkZ2VkLGNsci1pY29uLmlzLXNvbGlkW2NsYXNzKj1oYXMtYmFkZ2VdIC5jYW4tYmFkZ2UuaGFzLXNv''@;'; + put 'put ''bGlkIC5jbHItaS1zb2xpZDpub3QoLmNsci1pLXNvbGlkLS1iYWRnZWQpe2Rpc3BsYXk6bm9uZX1jbHItaWNvbi5pcy1zb2xpZFtjbGFzcyo9aGFzLWFsZXJ0XSAuY2FuLWFsZXJ0Lmhhcy1zb2xpZCAuY2xyLWktc29saWQtLWFsZXJ0ZWR7ZGlzcGxheTpibG9ja31jbHItaWNvbi5pcy1zb2xp''@;'; + put 'put ''ZFtjbGFzcyo9aGFzLWFsZXJ0XSAuY2FuLWFsZXJ0Lmhhcy1zb2xpZCAuY2xyLWktb3V0bGluZSxjbHItaWNvbi5pcy1zb2xpZFtjbGFzcyo9aGFzLWFsZXJ0XSAuY2FuLWFsZXJ0Lmhhcy1zb2xpZCAuY2xyLWktb3V0bGluZS0tYWxlcnRlZCxjbHItaWNvbi5pcy1zb2xpZFtjbGFzcyo9aGFz''@;'; + put 'put ''LWFsZXJ0XSAuY2FuLWFsZXJ0Lmhhcy1zb2xpZCAuY2xyLWktc29saWQ6bm90KC5jbHItaS1zb2xpZC0tYWxlcnRlZCl7ZGlzcGxheTpub25lfWNsci1pY29uLmhhcy1iYWRnZS0tc3VjY2VzcyAuY2xyLWktYmFkZ2V7ZmlsbDojMmU4NTAwfWNsci1pY29uLmhhcy1iYWRnZS0tc3VjY2VzcyAu''@;'; + put 'put ''Y2xyLWktYmFkZ2UgLnRyYW5zcGFyZW50LWZpbGwtc3Ryb2tle3N0cm9rZTojMmU4NTAwfWNsci1pY29uLmhhcy1iYWRnZS0tZXJyb3IgLmNsci1pLWJhZGdle2ZpbGw6I2UwMjIwMH1jbHItaWNvbi5oYXMtYmFkZ2UtLWVycm9yIC5jbHItaS1iYWRnZSAudHJhbnNwYXJlbnQtZmlsbC1zdHJv''@;'; + put 'put ''a2V7c3Ryb2tlOiNlMDIyMDB9Y2xyLWljb24uaGFzLWJhZGdlLS1pbmZvIC5jbHItaS1iYWRnZXtmaWxsOiMwMDc3Yjh9Y2xyLWljb24uaGFzLWJhZGdlLS1pbmZvIC5jbHItaS1iYWRnZSAudHJhbnNwYXJlbnQtZmlsbC1zdHJva2V7c3Ryb2tlOiMwMDc3Yjh9Y2xyLWljb24uaGFzLWFsZXJ0''@;'; + put 'put ''IC5jbHItaS1hbGVydHtmaWxsOiNjMjdiMDB9Y2xyLWljb24uaGFzLWFsZXJ0IC5jbHItaS1hbGVydCAudHJhbnNwYXJlbnQtZmlsbC1zdHJva2V7c3Ryb2tlOiNjMjdiMDB9Y2xyLWljb24gLmlzLW9mZi1zY3JlZW57cG9zaXRpb246Zml4ZWQhaW1wb3J0YW50O2JvcmRlcjowIWltcG9ydGFu''@;'; + put 'put ''dDtoZWlnaHQ6MXB4IWltcG9ydGFudDt3aWR0aDoxcHghaW1wb3J0YW50O2xlZnQ6MCFpbXBvcnRhbnQ7dG9wOi0xcHghaW1wb3J0YW50O292ZXJmbG93OmhpZGRlbiFpbXBvcnRhbnQ7cGFkZGluZzowIWltcG9ydGFudDttYXJnaW46MCAwIC0xcHghaW1wb3J0YW50fQo='';'; + put 'run;'; + put '%sasjsout(CSS64)'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let path=services/web9/images; + +%let service=caret-svg; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put 'options mprint;'; + put '%macro mp_replace(infile,'; + put 'findvar=,'; + put 'replacevar=,'; + put 'outfile=0'; + put ')/*/STORE SOURCE*/;'; + put '%local inref outref dttm ds1 rc;'; + put '/* create filerefs */'; + put '%let rc=%sysfunc(filename(inref,,temp,lrecl=200));'; + put '%let rc=%sysfunc(filename(outref,,temp,lrecl=200));'; + put '%if &outfile=0 %then %let outfile=&infile;'; + put '/* uniquely named 32 char datasets */'; + put '%let ds1=all%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,29);'; + put '%let ds2=start%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,27);'; + put '/* START */'; + put '%let dttm=%sysfunc(datetime());'; + put 'filename &inref &infile lrecl=1 recfm=n;'; + put 'data &ds1;'; + put 'infile &inref;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'run;'; + put 'data &ds2;'; + put '/* set find string to length in bytes to cover trailing spaces */'; + put 'length string $ %length(%superq(&findvar));'; + put 'string =symget("&findvar");'; + put 'drop string;'; + put 'firstchar=char(string,1);'; + put 'findlen=lengthm(string); /* <- for trailing bytes */'; + put 'do _N_=1 to nobs;'; + put 'set &ds1 nobs=nobs point=_N_;'; + put 'if sourcechar=firstchar then do;'; + put 'pos=1;'; + put 's=0;'; + put 'do point=_N_ to min(_N_ + findlen -1,nobs);'; + put 'set &ds1 point=point;'; + put 'if sourcechar=char(string, pos) then s + 1;'; + put 'else goto _leave_;'; + put 'pos+1;'; + put 'end;'; + put '_leave_:'; + put 'if s=findlen then do;'; + put 'START =_N_;'; + put '_N_ =_N_+ s - 1;'; + put 'STOP =_N_;'; + put 'output;'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'stop;'; + put 'keep START STOP;'; + put 'run;'; + put 'data &ds1;'; + put 'declare hash HS(dataset:"&ds2(keep=start)");'; + put 'HS.defineKey("start");'; + put 'HS.defineDone();'; + put 'declare hash HE(dataset:"&ds2(keep=stop)");'; + put 'HE.defineKey("stop");'; + put 'HE.defineDone();'; + put 'do until(eof);'; + put 'set &ds1 end=eof curobs =n;'; + put 'start = ^HS.check(key:n);'; + put 'stop = ^HE.check(key:n);'; + put 'length strt $ 1;'; + put 'strt =put(start,best. -L);'; + put 'retain out 1;'; + put 'if out then output;'; + put 'if start then out=0;'; + put 'if stop then out=1;'; + put 'end;'; + put 'stop;'; + put 'keep sourcechar strt;'; + put 'run;'; + put 'filename &outref &outfile recfm=n;'; + put 'data _null_;'; + put 'length replace $ %length(%superq(&replacevar));'; + put 'replace=symget("&replacevar");'; + put 'file &outref;'; + put 'do until(eof);'; + put 'set &ds1 end=eof;'; + put 'if strt ="1" then put replace char.;'; + put 'else put sourcechar char1.;'; + put 'end;'; + put 'stop;'; + put 'run;'; + put '/* END */'; + put '%put &sysmacroname took %sysevalf(%sysfunc(datetime())-&dttm) seconds to run;'; + put '%mend mp_replace;'; + put '%macro sasjsout(type,fref=sasjs);'; + put '%global sysprocessmode SYS_JES_JOB_URI;'; + put '%if &type=JS or &type=JS64 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header('; + put 'Content-type,application/javascript%str(;)charset=UTF-8'; + put '));'; + put '%end;'; + put '%else %if &type=CSS or &type=CSS64 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,text/css));'; + put '%end;'; + put '%else %if &type=PNG or &type=GIF or &type=JPEG or &type=JPG %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,image/%lowcase(&type)));'; + put '%end;'; + put '%else %if &type=SVG or &type=SVG64 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,image/svg+xml));'; + put '%end;'; + put '%else %if &type=ICO %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,image/vnd.microsoft.icon));'; + put '%end;'; + put '%else %if &type=JSON %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,application/json));'; + put '%end;'; + put '%else %if &type=MP3 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/mpeg));'; + put '%end;'; + put '%else %if &type=WAV %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/x-wav));'; + put '%end;'; + put '%else %if &type=OGG %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/ogg));'; + put '%end;'; + put '%else %if &type=WOFF or &type=WOFF2 or &type=TTF %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,font/%lowcase(&type)));'; + put '%end;'; + put '%else %if &type=MP4 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,video/mp4));'; + put '%end;'; + put '%if &type=HTML %then %do;'; + put '/*'; + put 'We need to perform some substitutions -eg to get the APPLOC and SERVERTYPE.'; + put 'Therefore the developer should avoid writing lines that exceed 32k'; + put 'characters (eg base64 encoded images) as they will get truncated when passing'; + put 'through the datastep. This could of course be re-written using LUA, removing'; + put 'the length restriction. Pull requests are welcome!'; + put '*/'; + put 'filename _sjsout temp;'; + put 'data _null_;'; + put 'file _sjsout lrecl=32767 encoding=''utf-8'';'; + put 'infile &fref lrecl=32767;'; + put 'input;'; + put 'length appLoc expanded_path $1048;'; + put 'if _n_=1 then do;'; + put 'retain pgm "&_program" appLoc expanded_path;'; + put '/* index is deployed in the /services/ folder under the appLoc */'; + put 'appLoc=substr(pgm,1,find(pgm,''/services/'')-1);'; + put 'expanded_path=cats(''?_PROGRAM='',appLoc,''/services/'');'; + put 'end;'; + put 'if find(_infile_,'' appLoc: '') then put '' appLoc: '' apploc:$quote1048. '','';'; + put 'else if find(_infile_,'' serverType: '') then do;'; + put 'put '' serverType: "SAS9" ,'';'; + put 'end;'; + put 'else if find(_infile_,'' serverUrl: '') then do;'; + put '/* nothing - we are streaming, so remove to default as hostname */'; + put 'end;'; + put 'else do;'; + put '/* More recently, SASjs apps avoid inline JS to allow strict CSP */'; + put 'length infile in1 in2 $32767;'; + put 'infile=cats(_infile_);'; + put 'spos1=index(upcase(infile),''APPLOC="'');'; + put 'if spos1>0 then do;'; + put 'in1=substr(infile,1,spos1+7);'; + put 'in2=subpad(infile,spos1+8);'; + put 'in2=substr(in2,index(in2,''"''));'; + put 'infile=cats(in1,appLoc,in2);'; + put 'putlog "new apploc: " infile=;'; + put 'end;'; + put '/* find & replace serverType in HTML attributes */'; + put 'spos2=index(upcase(infile),''SERVERTYPE="'');'; + put 'if spos2>0 then do;'; + put 'in1=substr(infile,1,spos2+11);'; + put 'in2=subpad(infile,spos2+12);'; + put 'in2=substr(in2,index(in2,''"''));'; + put 'infile=cats(in1,"SAS9",in2);'; + put 'putlog "new servertype: " infile=;'; + put 'end;'; + put '/* find & replace serverUrl in HTML attributes */'; + put 'spos3=index(upcase(infile),''SERVERURL="'');'; + put 'if spos3>0 then do;'; + put 'in1=substr(infile,1,spos3+10);'; + put 'in2=subpad(infile,spos3+11);'; + put 'in2=substr(in2,index(in2,''"''));'; + put 'infile=cats(in1,in2);'; + put 'putlog "new serverUrl: " infile=;'; + put 'end;'; + put 'if sum(spos1,spos2,spos3)>0 then put infile;'; + put 'else do;'; + put '/* during SAS9 sasjs compile, dependencies get static GUID */'; + put 'infile=tranwrd(_infile_,''?_PROGRAM=pZKd6F95jECvRQlN0LCfdA=='',cats(expanded_path));'; + put 'put infile;'; + put 'end;'; + put 'end;'; + put 'run;'; + put '%let fref=_sjsout;'; + put '%end;'; + put '%else %if &type=JS64 or &type=CSS64 %then %do;'; + put 'options nobomfile;'; + put '%let fvar=pZKd6F95jECvRQlN0LCfdA==;'; + put '%let stgfile="%sysfunc(pathname(work))/stgfile.txt";'; + put '%let newfile="%sysfunc(pathname(work))/newfile.txt";'; + put '/* convert from base64 */'; + put 'filename _out64 &stgfile encoding=''utf-8'';'; + put 'data _null_;'; + put 'length filein 8 fileout 8;'; + put 'filein = fopen("&fref",''I'',4,''B'');'; + put 'fileout = fopen("_out64",''A'',1,''B'');'; + put 'char= ''20''x;'; + put 'do while(fread(filein)=0);'; + put 'length raw $4 ;'; + put 'do i=1 to 4;'; + put 'rc=fget(filein,char,1);'; + put 'substr(raw,i,1)=char;'; + put 'end;'; + put 'rc = fput(fileout, input(raw,$base64X4.));'; + put 'rc =fwrite(fileout);'; + put 'end;'; + put 'rc = fclose(filein);'; + put 'rc = fclose(fileout);'; + put 'run;'; + put '/* get appLoc from _program */'; + put 'data _null_;'; + put 'pgm="&_program";'; + put 'appLoc=substr(pgm,1,find(pgm,''/services/'')-1);'; + put 'call symputx(''apploc'',cats(appLoc,''/services/''));'; + put 'run;'; + put '%put &=fvar;'; + put '%put &=apploc;'; + put '/* replace the GUID with appLoc */'; + put '%mp_replace(&stgfile,'; + put 'findvar=fvar,'; + put 'replacevar=apploc,'; + put 'outfile=&newfile'; + put ')'; + put 'filename &fref &newfile encoding=''utf-8'';'; + put '%end;'; + put '/**'; + put '* In SAS9, JS & CSS files are base64 encoded to avoid UTF8 issues in WLATIN1'; + put '* metadata - so in this case, decode and stream byte by byte.'; + put '* */'; + put '%if &type=GIF or &type=PNG or &type=JPG or &type=JPEG or &type=ICO or &type=MP3'; + put 'or &type=WAV or &type=OGG or &type=WOFF or &type=WOFF2 or &type=TTF or &type=MP4'; + put 'or &type=SVG64'; + put '%then %do;'; + put 'data _null_;'; + put 'length filein 8 fileout 8;'; + put 'filein = fopen("&fref",''I'',4,''B'');'; + put 'fileout = fopen("_webout",''A'',1,''B'');'; + put 'char = ''20''x;'; + put 'do while(fread(filein)=0);'; + put 'length raw $4 ;'; + put 'do i=1 to 4;'; + put 'rc=fget(filein,char,1);'; + put 'substr(raw,i,1)=char;'; + put 'end;'; + put 'rc = fput(fileout, input(raw,$base64X4.));'; + put 'rc = fwrite(fileout);'; + put 'end;'; + put 'rc = fclose(filein);'; + put 'rc = fclose(fileout);'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%put streaming to _webout;'; + put 'data _null_;'; + put 'infile &fref lrecl=1 recfm=n;'; + put 'file _webout mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put '%end;'; + put '%mend sasjsout;'; + put 'filename sasjs temp lrecl=99999999;'; + put 'data _null_;'; + put 'file sasjs;'; + put 'put ''PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMiAxMiI+CiAgICA8ZGVmcz4KICAgICAgICA8c3R5bGU+LmNscy0xe2ZpbGw6I2IzYjNiMzt9PC9zdHlsZT4KICAgIDwvZGVmcz4KICAgIDx0aXRsZT5DYXJldDwvdGl0bGU+CiAgICA8cGF0aCBj''@;'; + put 'put ''bGFzcz0iY2xzLTEiIGQ9Ik02LDlMMS4yLDQuMmEwLjY4LDAuNjgsMCwwLDEsMS0xTDYsNy4wOCw5Ljg0LDMuMjRhMC42OCwwLjY4LDAsMSwxLDEsMVoiLz4KPC9zdmc+Cg=='';'; + put 'run;'; + put '%sasjsout(SVG64)'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=caret.65f1fc0acbe4c7ff-svg; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put 'options mprint;'; + put '%macro mp_replace(infile,'; + put 'findvar=,'; + put 'replacevar=,'; + put 'outfile=0'; + put ')/*/STORE SOURCE*/;'; + put '%local inref outref dttm ds1 rc;'; + put '/* create filerefs */'; + put '%let rc=%sysfunc(filename(inref,,temp,lrecl=200));'; + put '%let rc=%sysfunc(filename(outref,,temp,lrecl=200));'; + put '%if &outfile=0 %then %let outfile=&infile;'; + put '/* uniquely named 32 char datasets */'; + put '%let ds1=all%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,29);'; + put '%let ds2=start%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,27);'; + put '/* START */'; + put '%let dttm=%sysfunc(datetime());'; + put 'filename &inref &infile lrecl=1 recfm=n;'; + put 'data &ds1;'; + put 'infile &inref;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'run;'; + put 'data &ds2;'; + put '/* set find string to length in bytes to cover trailing spaces */'; + put 'length string $ %length(%superq(&findvar));'; + put 'string =symget("&findvar");'; + put 'drop string;'; + put 'firstchar=char(string,1);'; + put 'findlen=lengthm(string); /* <- for trailing bytes */'; + put 'do _N_=1 to nobs;'; + put 'set &ds1 nobs=nobs point=_N_;'; + put 'if sourcechar=firstchar then do;'; + put 'pos=1;'; + put 's=0;'; + put 'do point=_N_ to min(_N_ + findlen -1,nobs);'; + put 'set &ds1 point=point;'; + put 'if sourcechar=char(string, pos) then s + 1;'; + put 'else goto _leave_;'; + put 'pos+1;'; + put 'end;'; + put '_leave_:'; + put 'if s=findlen then do;'; + put 'START =_N_;'; + put '_N_ =_N_+ s - 1;'; + put 'STOP =_N_;'; + put 'output;'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'stop;'; + put 'keep START STOP;'; + put 'run;'; + put 'data &ds1;'; + put 'declare hash HS(dataset:"&ds2(keep=start)");'; + put 'HS.defineKey("start");'; + put 'HS.defineDone();'; + put 'declare hash HE(dataset:"&ds2(keep=stop)");'; + put 'HE.defineKey("stop");'; + put 'HE.defineDone();'; + put 'do until(eof);'; + put 'set &ds1 end=eof curobs =n;'; + put 'start = ^HS.check(key:n);'; + put 'stop = ^HE.check(key:n);'; + put 'length strt $ 1;'; + put 'strt =put(start,best. -L);'; + put 'retain out 1;'; + put 'if out then output;'; + put 'if start then out=0;'; + put 'if stop then out=1;'; + put 'end;'; + put 'stop;'; + put 'keep sourcechar strt;'; + put 'run;'; + put 'filename &outref &outfile recfm=n;'; + put 'data _null_;'; + put 'length replace $ %length(%superq(&replacevar));'; + put 'replace=symget("&replacevar");'; + put 'file &outref;'; + put 'do until(eof);'; + put 'set &ds1 end=eof;'; + put 'if strt ="1" then put replace char.;'; + put 'else put sourcechar char1.;'; + put 'end;'; + put 'stop;'; + put 'run;'; + put '/* END */'; + put '%put &sysmacroname took %sysevalf(%sysfunc(datetime())-&dttm) seconds to run;'; + put '%mend mp_replace;'; + put '%macro sasjsout(type,fref=sasjs);'; + put '%global sysprocessmode SYS_JES_JOB_URI;'; + put '%if &type=JS or &type=JS64 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header('; + put 'Content-type,application/javascript%str(;)charset=UTF-8'; + put '));'; + put '%end;'; + put '%else %if &type=CSS or &type=CSS64 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,text/css));'; + put '%end;'; + put '%else %if &type=PNG or &type=GIF or &type=JPEG or &type=JPG %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,image/%lowcase(&type)));'; + put '%end;'; + put '%else %if &type=SVG or &type=SVG64 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,image/svg+xml));'; + put '%end;'; + put '%else %if &type=ICO %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,image/vnd.microsoft.icon));'; + put '%end;'; + put '%else %if &type=JSON %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,application/json));'; + put '%end;'; + put '%else %if &type=MP3 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/mpeg));'; + put '%end;'; + put '%else %if &type=WAV %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/x-wav));'; + put '%end;'; + put '%else %if &type=OGG %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/ogg));'; + put '%end;'; + put '%else %if &type=WOFF or &type=WOFF2 or &type=TTF %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,font/%lowcase(&type)));'; + put '%end;'; + put '%else %if &type=MP4 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,video/mp4));'; + put '%end;'; + put '%if &type=HTML %then %do;'; + put '/*'; + put 'We need to perform some substitutions -eg to get the APPLOC and SERVERTYPE.'; + put 'Therefore the developer should avoid writing lines that exceed 32k'; + put 'characters (eg base64 encoded images) as they will get truncated when passing'; + put 'through the datastep. This could of course be re-written using LUA, removing'; + put 'the length restriction. Pull requests are welcome!'; + put '*/'; + put 'filename _sjsout temp;'; + put 'data _null_;'; + put 'file _sjsout lrecl=32767 encoding=''utf-8'';'; + put 'infile &fref lrecl=32767;'; + put 'input;'; + put 'length appLoc expanded_path $1048;'; + put 'if _n_=1 then do;'; + put 'retain pgm "&_program" appLoc expanded_path;'; + put '/* index is deployed in the /services/ folder under the appLoc */'; + put 'appLoc=substr(pgm,1,find(pgm,''/services/'')-1);'; + put 'expanded_path=cats(''?_PROGRAM='',appLoc,''/services/'');'; + put 'end;'; + put 'if find(_infile_,'' appLoc: '') then put '' appLoc: '' apploc:$quote1048. '','';'; + put 'else if find(_infile_,'' serverType: '') then do;'; + put 'put '' serverType: "SAS9" ,'';'; + put 'end;'; + put 'else if find(_infile_,'' serverUrl: '') then do;'; + put '/* nothing - we are streaming, so remove to default as hostname */'; + put 'end;'; + put 'else do;'; + put '/* More recently, SASjs apps avoid inline JS to allow strict CSP */'; + put 'length infile in1 in2 $32767;'; + put 'infile=cats(_infile_);'; + put 'spos1=index(upcase(infile),''APPLOC="'');'; + put 'if spos1>0 then do;'; + put 'in1=substr(infile,1,spos1+7);'; + put 'in2=subpad(infile,spos1+8);'; + put 'in2=substr(in2,index(in2,''"''));'; + put 'infile=cats(in1,appLoc,in2);'; + put 'putlog "new apploc: " infile=;'; + put 'end;'; + put '/* find & replace serverType in HTML attributes */'; + put 'spos2=index(upcase(infile),''SERVERTYPE="'');'; + put 'if spos2>0 then do;'; + put 'in1=substr(infile,1,spos2+11);'; + put 'in2=subpad(infile,spos2+12);'; + put 'in2=substr(in2,index(in2,''"''));'; + put 'infile=cats(in1,"SAS9",in2);'; + put 'putlog "new servertype: " infile=;'; + put 'end;'; + put '/* find & replace serverUrl in HTML attributes */'; + put 'spos3=index(upcase(infile),''SERVERURL="'');'; + put 'if spos3>0 then do;'; + put 'in1=substr(infile,1,spos3+10);'; + put 'in2=subpad(infile,spos3+11);'; + put 'in2=substr(in2,index(in2,''"''));'; + put 'infile=cats(in1,in2);'; + put 'putlog "new serverUrl: " infile=;'; + put 'end;'; + put 'if sum(spos1,spos2,spos3)>0 then put infile;'; + put 'else do;'; + put '/* during SAS9 sasjs compile, dependencies get static GUID */'; + put 'infile=tranwrd(_infile_,''?_PROGRAM=pZKd6F95jECvRQlN0LCfdA=='',cats(expanded_path));'; + put 'put infile;'; + put 'end;'; + put 'end;'; + put 'run;'; + put '%let fref=_sjsout;'; + put '%end;'; + put '%else %if &type=JS64 or &type=CSS64 %then %do;'; + put 'options nobomfile;'; + put '%let fvar=pZKd6F95jECvRQlN0LCfdA==;'; + put '%let stgfile="%sysfunc(pathname(work))/stgfile.txt";'; + put '%let newfile="%sysfunc(pathname(work))/newfile.txt";'; + put '/* convert from base64 */'; + put 'filename _out64 &stgfile encoding=''utf-8'';'; + put 'data _null_;'; + put 'length filein 8 fileout 8;'; + put 'filein = fopen("&fref",''I'',4,''B'');'; + put 'fileout = fopen("_out64",''A'',1,''B'');'; + put 'char= ''20''x;'; + put 'do while(fread(filein)=0);'; + put 'length raw $4 ;'; + put 'do i=1 to 4;'; + put 'rc=fget(filein,char,1);'; + put 'substr(raw,i,1)=char;'; + put 'end;'; + put 'rc = fput(fileout, input(raw,$base64X4.));'; + put 'rc =fwrite(fileout);'; + put 'end;'; + put 'rc = fclose(filein);'; + put 'rc = fclose(fileout);'; + put 'run;'; + put '/* get appLoc from _program */'; + put 'data _null_;'; + put 'pgm="&_program";'; + put 'appLoc=substr(pgm,1,find(pgm,''/services/'')-1);'; + put 'call symputx(''apploc'',cats(appLoc,''/services/''));'; + put 'run;'; + put '%put &=fvar;'; + put '%put &=apploc;'; + put '/* replace the GUID with appLoc */'; + put '%mp_replace(&stgfile,'; + put 'findvar=fvar,'; + put 'replacevar=apploc,'; + put 'outfile=&newfile'; + put ')'; + put 'filename &fref &newfile encoding=''utf-8'';'; + put '%end;'; + put '/**'; + put '* In SAS9, JS & CSS files are base64 encoded to avoid UTF8 issues in WLATIN1'; + put '* metadata - so in this case, decode and stream byte by byte.'; + put '* */'; + put '%if &type=GIF or &type=PNG or &type=JPG or &type=JPEG or &type=ICO or &type=MP3'; + put 'or &type=WAV or &type=OGG or &type=WOFF or &type=WOFF2 or &type=TTF or &type=MP4'; + put 'or &type=SVG64'; + put '%then %do;'; + put 'data _null_;'; + put 'length filein 8 fileout 8;'; + put 'filein = fopen("&fref",''I'',4,''B'');'; + put 'fileout = fopen("_webout",''A'',1,''B'');'; + put 'char = ''20''x;'; + put 'do while(fread(filein)=0);'; + put 'length raw $4 ;'; + put 'do i=1 to 4;'; + put 'rc=fget(filein,char,1);'; + put 'substr(raw,i,1)=char;'; + put 'end;'; + put 'rc = fput(fileout, input(raw,$base64X4.));'; + put 'rc = fwrite(fileout);'; + put 'end;'; + put 'rc = fclose(filein);'; + put 'rc = fclose(fileout);'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%put streaming to _webout;'; + put 'data _null_;'; + put 'infile &fref lrecl=1 recfm=n;'; + put 'file _webout mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put '%end;'; + put '%mend sasjsout;'; + put 'filename sasjs temp lrecl=99999999;'; + put 'data _null_;'; + put 'file sasjs;'; + put 'put ''PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMiAxMiI+CiAgICA8ZGVmcz4KICAgICAgICA8c3R5bGU+LmNscy0xe2ZpbGw6I2IzYjNiMzt9PC9zdHlsZT4KICAgIDwvZGVmcz4KICAgIDx0aXRsZT5DYXJldDwvdGl0bGU+CiAgICA8cGF0aCBj''@;'; + put 'put ''bGFzcz0iY2xzLTEiIGQ9Ik02LDlMMS4yLDQuMmEwLjY4LDAuNjgsMCwwLDEsMS0xTDYsNy4wOCw5Ljg0LDMuMjRhMC42OCwwLjY4LDAsMSwxLDEsMVoiLz4KPC9zdmc+Cg=='';'; + put 'run;'; + put '%sasjsout(SVG64)'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=datacontroller-svg; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put 'options mprint;'; + put '%macro mp_replace(infile,'; + put 'findvar=,'; + put 'replacevar=,'; + put 'outfile=0'; + put ')/*/STORE SOURCE*/;'; + put '%local inref outref dttm ds1 rc;'; + put '/* create filerefs */'; + put '%let rc=%sysfunc(filename(inref,,temp,lrecl=200));'; + put '%let rc=%sysfunc(filename(outref,,temp,lrecl=200));'; + put '%if &outfile=0 %then %let outfile=&infile;'; + put '/* uniquely named 32 char datasets */'; + put '%let ds1=all%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,29);'; + put '%let ds2=start%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,27);'; + put '/* START */'; + put '%let dttm=%sysfunc(datetime());'; + put 'filename &inref &infile lrecl=1 recfm=n;'; + put 'data &ds1;'; + put 'infile &inref;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'run;'; + put 'data &ds2;'; + put '/* set find string to length in bytes to cover trailing spaces */'; + put 'length string $ %length(%superq(&findvar));'; + put 'string =symget("&findvar");'; + put 'drop string;'; + put 'firstchar=char(string,1);'; + put 'findlen=lengthm(string); /* <- for trailing bytes */'; + put 'do _N_=1 to nobs;'; + put 'set &ds1 nobs=nobs point=_N_;'; + put 'if sourcechar=firstchar then do;'; + put 'pos=1;'; + put 's=0;'; + put 'do point=_N_ to min(_N_ + findlen -1,nobs);'; + put 'set &ds1 point=point;'; + put 'if sourcechar=char(string, pos) then s + 1;'; + put 'else goto _leave_;'; + put 'pos+1;'; + put 'end;'; + put '_leave_:'; + put 'if s=findlen then do;'; + put 'START =_N_;'; + put '_N_ =_N_+ s - 1;'; + put 'STOP =_N_;'; + put 'output;'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'stop;'; + put 'keep START STOP;'; + put 'run;'; + put 'data &ds1;'; + put 'declare hash HS(dataset:"&ds2(keep=start)");'; + put 'HS.defineKey("start");'; + put 'HS.defineDone();'; + put 'declare hash HE(dataset:"&ds2(keep=stop)");'; + put 'HE.defineKey("stop");'; + put 'HE.defineDone();'; + put 'do until(eof);'; + put 'set &ds1 end=eof curobs =n;'; + put 'start = ^HS.check(key:n);'; + put 'stop = ^HE.check(key:n);'; + put 'length strt $ 1;'; + put 'strt =put(start,best. -L);'; + put 'retain out 1;'; + put 'if out then output;'; + put 'if start then out=0;'; + put 'if stop then out=1;'; + put 'end;'; + put 'stop;'; + put 'keep sourcechar strt;'; + put 'run;'; + put 'filename &outref &outfile recfm=n;'; + put 'data _null_;'; + put 'length replace $ %length(%superq(&replacevar));'; + put 'replace=symget("&replacevar");'; + put 'file &outref;'; + put 'do until(eof);'; + put 'set &ds1 end=eof;'; + put 'if strt ="1" then put replace char.;'; + put 'else put sourcechar char1.;'; + put 'end;'; + put 'stop;'; + put 'run;'; + put '/* END */'; + put '%put &sysmacroname took %sysevalf(%sysfunc(datetime())-&dttm) seconds to run;'; + put '%mend mp_replace;'; + put '%macro sasjsout(type,fref=sasjs);'; + put '%global sysprocessmode SYS_JES_JOB_URI;'; + put '%if &type=JS or &type=JS64 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header('; + put 'Content-type,application/javascript%str(;)charset=UTF-8'; + put '));'; + put '%end;'; + put '%else %if &type=CSS or &type=CSS64 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,text/css));'; + put '%end;'; + put '%else %if &type=PNG or &type=GIF or &type=JPEG or &type=JPG %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,image/%lowcase(&type)));'; + put '%end;'; + put '%else %if &type=SVG or &type=SVG64 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,image/svg+xml));'; + put '%end;'; + put '%else %if &type=ICO %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,image/vnd.microsoft.icon));'; + put '%end;'; + put '%else %if &type=JSON %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,application/json));'; + put '%end;'; + put '%else %if &type=MP3 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/mpeg));'; + put '%end;'; + put '%else %if &type=WAV %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/x-wav));'; + put '%end;'; + put '%else %if &type=OGG %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/ogg));'; + put '%end;'; + put '%else %if &type=WOFF or &type=WOFF2 or &type=TTF %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,font/%lowcase(&type)));'; + put '%end;'; + put '%else %if &type=MP4 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,video/mp4));'; + put '%end;'; + put '%if &type=HTML %then %do;'; + put '/*'; + put 'We need to perform some substitutions -eg to get the APPLOC and SERVERTYPE.'; + put 'Therefore the developer should avoid writing lines that exceed 32k'; + put 'characters (eg base64 encoded images) as they will get truncated when passing'; + put 'through the datastep. This could of course be re-written using LUA, removing'; + put 'the length restriction. Pull requests are welcome!'; + put '*/'; + put 'filename _sjsout temp;'; + put 'data _null_;'; + put 'file _sjsout lrecl=32767 encoding=''utf-8'';'; + put 'infile &fref lrecl=32767;'; + put 'input;'; + put 'length appLoc expanded_path $1048;'; + put 'if _n_=1 then do;'; + put 'retain pgm "&_program" appLoc expanded_path;'; + put '/* index is deployed in the /services/ folder under the appLoc */'; + put 'appLoc=substr(pgm,1,find(pgm,''/services/'')-1);'; + put 'expanded_path=cats(''?_PROGRAM='',appLoc,''/services/'');'; + put 'end;'; + put 'if find(_infile_,'' appLoc: '') then put '' appLoc: '' apploc:$quote1048. '','';'; + put 'else if find(_infile_,'' serverType: '') then do;'; + put 'put '' serverType: "SAS9" ,'';'; + put 'end;'; + put 'else if find(_infile_,'' serverUrl: '') then do;'; + put '/* nothing - we are streaming, so remove to default as hostname */'; + put 'end;'; + put 'else do;'; + put '/* More recently, SASjs apps avoid inline JS to allow strict CSP */'; + put 'length infile in1 in2 $32767;'; + put 'infile=cats(_infile_);'; + put 'spos1=index(upcase(infile),''APPLOC="'');'; + put 'if spos1>0 then do;'; + put 'in1=substr(infile,1,spos1+7);'; + put 'in2=subpad(infile,spos1+8);'; + put 'in2=substr(in2,index(in2,''"''));'; + put 'infile=cats(in1,appLoc,in2);'; + put 'putlog "new apploc: " infile=;'; + put 'end;'; + put '/* find & replace serverType in HTML attributes */'; + put 'spos2=index(upcase(infile),''SERVERTYPE="'');'; + put 'if spos2>0 then do;'; + put 'in1=substr(infile,1,spos2+11);'; + put 'in2=subpad(infile,spos2+12);'; + put 'in2=substr(in2,index(in2,''"''));'; + put 'infile=cats(in1,"SAS9",in2);'; + put 'putlog "new servertype: " infile=;'; + put 'end;'; + put '/* find & replace serverUrl in HTML attributes */'; + put 'spos3=index(upcase(infile),''SERVERURL="'');'; + put 'if spos3>0 then do;'; + put 'in1=substr(infile,1,spos3+10);'; + put 'in2=subpad(infile,spos3+11);'; + put 'in2=substr(in2,index(in2,''"''));'; + put 'infile=cats(in1,in2);'; + put 'putlog "new serverUrl: " infile=;'; + put 'end;'; + put 'if sum(spos1,spos2,spos3)>0 then put infile;'; + put 'else do;'; + put '/* during SAS9 sasjs compile, dependencies get static GUID */'; + put 'infile=tranwrd(_infile_,''?_PROGRAM=pZKd6F95jECvRQlN0LCfdA=='',cats(expanded_path));'; + put 'put infile;'; + put 'end;'; + put 'end;'; + put 'run;'; + put '%let fref=_sjsout;'; + put '%end;'; + put '%else %if &type=JS64 or &type=CSS64 %then %do;'; + put 'options nobomfile;'; + put '%let fvar=pZKd6F95jECvRQlN0LCfdA==;'; + put '%let stgfile="%sysfunc(pathname(work))/stgfile.txt";'; + put '%let newfile="%sysfunc(pathname(work))/newfile.txt";'; + put '/* convert from base64 */'; + put 'filename _out64 &stgfile encoding=''utf-8'';'; + put 'data _null_;'; + put 'length filein 8 fileout 8;'; + put 'filein = fopen("&fref",''I'',4,''B'');'; + put 'fileout = fopen("_out64",''A'',1,''B'');'; + put 'char= ''20''x;'; + put 'do while(fread(filein)=0);'; + put 'length raw $4 ;'; + put 'do i=1 to 4;'; + put 'rc=fget(filein,char,1);'; + put 'substr(raw,i,1)=char;'; + put 'end;'; + put 'rc = fput(fileout, input(raw,$base64X4.));'; + put 'rc =fwrite(fileout);'; + put 'end;'; + put 'rc = fclose(filein);'; + put 'rc = fclose(fileout);'; + put 'run;'; + put '/* get appLoc from _program */'; + put 'data _null_;'; + put 'pgm="&_program";'; + put 'appLoc=substr(pgm,1,find(pgm,''/services/'')-1);'; + put 'call symputx(''apploc'',cats(appLoc,''/services/''));'; + put 'run;'; + put '%put &=fvar;'; + put '%put &=apploc;'; + put '/* replace the GUID with appLoc */'; + put '%mp_replace(&stgfile,'; + put 'findvar=fvar,'; + put 'replacevar=apploc,'; + put 'outfile=&newfile'; + put ')'; + put 'filename &fref &newfile encoding=''utf-8'';'; + put '%end;'; + put '/**'; + put '* In SAS9, JS & CSS files are base64 encoded to avoid UTF8 issues in WLATIN1'; + put '* metadata - so in this case, decode and stream byte by byte.'; + put '* */'; + put '%if &type=GIF or &type=PNG or &type=JPG or &type=JPEG or &type=ICO or &type=MP3'; + put 'or &type=WAV or &type=OGG or &type=WOFF or &type=WOFF2 or &type=TTF or &type=MP4'; + put 'or &type=SVG64'; + put '%then %do;'; + put 'data _null_;'; + put 'length filein 8 fileout 8;'; + put 'filein = fopen("&fref",''I'',4,''B'');'; + put 'fileout = fopen("_webout",''A'',1,''B'');'; + put 'char = ''20''x;'; + put 'do while(fread(filein)=0);'; + put 'length raw $4 ;'; + put 'do i=1 to 4;'; + put 'rc=fget(filein,char,1);'; + put 'substr(raw,i,1)=char;'; + put 'end;'; + put 'rc = fput(fileout, input(raw,$base64X4.));'; + put 'rc = fwrite(fileout);'; + put 'end;'; + put 'rc = fclose(filein);'; + put 'rc = fclose(fileout);'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%put streaming to _webout;'; + put 'data _null_;'; + put 'infile &fref lrecl=1 recfm=n;'; + put 'file _webout mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put '%end;'; + put '%mend sasjsout;'; + put 'filename sasjs temp lrecl=99999999;'; + put 'data _null_;'; + put 'file sasjs;'; + put 'put ''PHN2ZyB3aWR0aD0iMTY5MCIgaGVpZ2h0PSIyNDAiIHZpZXdCb3g9IjAgMCAxNjkwIDI0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzEwNV83KSI+CjxwYXRoIGQ9Ik0xMjQuOSA1NS4yMDAxQzEyOC4y''@;'; + put 'put ''IDU1LjYwMDEgMTMxLjQgNTUuOTAwMSAxMzQuNyA1Ni4zMDAxQzE0Mi42IDU3LjQwMDEgMTUwLjMgNTguOTAwMSAxNTcuNSA2Mi42MDAxQzE1OS42IDYzLjcwMDEgMTYxLjYgNjQuOTAwMSAxNjMuMSA2Ni44MDAxQzE2NS41IDY5LjYwMDEgMTY1LjQgNzIuNjAwMSAxNjMgNzUuNDAwMUMxNjAu''@;'; + put 'put ''NSA3OC4yMDAxIDE1Ny4zIDc5LjgwMDEgMTUzLjkgODEuMTAwMUMxNDYgODQuMjAwMSAxMzcuNyA4NS42MDAxIDEyOS4zIDg2LjMwMDFDMTE1LjYgODcuNDAwMSAxMDIuMSA4Ni45MDAxIDg4LjcgODMuNzAwMUM4NC4zIDgyLjcwMDEgODAgODEuMzAwMSA3Ni4xIDc5LjEwMDFDNzQuNiA3OC4z''@;'; + put 'put ''MDAxIDczLjIgNzcuMzAwMSA3MS45IDc2LjEwMDFDNjguMyA3Mi42MDAxIDY4LjMgNjguOTAwMSA3MiA2NS42MDAxQzc2IDYyLjAwMDEgODAuOSA2MC4zMDAxIDg1LjkgNTguOTAwMUM5Mi45IDU2LjkwMDEgMTAwIDU1LjkwMDEgMTA3LjIgNTUuNDAwMUMxMDcuOCA1NS40MDAxIDEwOC41IDU1''@;'; + put 'put ''LjYwMDEgMTA5IDU1LjEwMDFDMTE0LjIgNTUuMjAwMSAxMTkuNiA1NS4yMDAxIDEyNC45IDU1LjIwMDFaIiBmaWxsPSIjRTBFMEUwIi8+CjxwYXRoIGQ9Ik02OS4yMDAxIDEzNy4zQzc1LjYwMDEgMTQ1LjUgODQuNzAwMSAxNDguNSA5NC4xMDAxIDE1MC41QzExMi43IDE1NC41IDEzMS4zIDE1''@;'; + put 'put ''NCAxNDkuNCAxNDcuNkMxNTUgMTQ1LjYgMTYwLjIgMTQyLjkgMTYzLjkgMTM3LjlDMTY0LjUgMTM3LjEgMTY0LjggMTM3LjUgMTY1LjEgMTM4LjFDMTY1LjcgMTM5LjQgMTY2IDE0MC43IDE2NiAxNDIuMUMxNjYgMTQ3IDE2NiAxNTIgMTY2IDE1Ni45QzE2NiAxNjAuMSAxNjQuNSAxNjIuNiAx''@;'; + put 'put ''NjIuMyAxNjQuOEMxNTcuNyAxNjkuNCAxNTEuOSAxNzEuOSAxNDUuOCAxNzMuOEMxMzMuNSAxNzcuNiAxMjAuOSAxNzguNCAxMDguMiAxNzcuNUM5OC43MDAxIDE3Ni44IDg5LjUgMTc1IDgwLjggMTcxLjFDNzcuMSAxNjkuNCA3My43MDAxIDE2Ny40IDcxLjAwMDEgMTY0LjNDNjguOTAwMSAx''@;'; + put 'put ''NjEuOSA2Ny44IDE1OS4yIDY3LjggMTU2QzY3LjkgMTUxLjUgNjcuOCAxNDcgNjcuOCAxNDIuNUM2Ny44IDE0MC43IDY4LjEwMDEgMTM5IDY5LjIwMDEgMTM3LjNaIiBmaWxsPSIjOEVDNjNGIi8+CjxwYXRoIGQ9Ik02OS4yOTk5IDEwNi40Qzc0LjU5OTkgMTEzLjUgODEuOTk5OSAxMTYuNSA4''@;'; + put 'put ''OS44OTk5IDExOC42QzEwOC44IDEyMy42IDEyNy43IDEyMy41IDE0Ni40IDExNy45QzE1Mi42IDExNi4xIDE1OC40IDExMy40IDE2Mi45IDEwOC41QzE2My41IDEwNy45IDE2My45IDEwNi41IDE2NC42IDEwNi43QzE2NS42IDEwNyAxNjUuNiAxMDguNCAxNjUuOSAxMDkuNUMxNjYuMyAxMTEu''@;'; + put 'put ''MiAxNjYuMSAxMTIuOSAxNjYuMSAxMTQuNkMxNjYuMSAxMTggMTY2IDEyMS4zIDE2Ni4xIDEyNC43QzE2Ni4zIDEyOC45IDE2NC42IDEzMi4yIDE2MS41IDEzNC45QzE1Ni44IDEzOS4xIDE1MS4xIDE0MS42IDE0NSAxNDMuMkMxMjQuNSAxNDguNyAxMDQuMSAxNDguNiA4My45OTk5IDE0MS42''@;'; + put 'put ''Qzc5LjA5OTkgMTM5LjkgNzQuNTk5OSAxMzcuNSA3MC45OTk5IDEzMy42QzY4Ljc5OTkgMTMxLjIgNjcuNyAxMjguNCA2Ny43IDEyNS4xQzY3LjggMTIwLjcgNjcuNyAxMTYuMiA2Ny43IDExMS44QzY3LjggMTEwIDY4LjA5OTkgMTA4LjIgNjkuMjk5OSAxMDYuNFoiIGZpbGw9IiNFMEUwRTAi''@;'; + put 'put ''Lz4KPHBhdGggZD0iTTY5LjEgNzYuN0M3MC42IDgxLjEgNzQuMiA4My4wOTk5IDc4IDg0Ljg5OTlDODQuOCA4OC4wOTk5IDkyLjEgODkuNiA5OS40IDkwLjVDMTEzLjkgOTIuMyAxMjguNCA5Mi4xIDE0Mi43IDg5LjFDMTQ4LjUgODcuOSAxNTQuMSA4Ni4zIDE1OS4yIDgzLjFDMTYyLjEgODEu''@;'; + put 'put ''MyAxNjMuNiA3OS42IDE2NC42IDc2LjhDMTY1LjYgNzguMiAxNjUuOSA3OS43IDE2NS45IDgxLjJDMTY1LjkgODYuMiAxNjYgOTEuMSAxNjUuOSA5Ni4xQzE2NS44IDEwMC4zIDE2My40IDEwMy4zIDE2MC4zIDEwNS44QzE1NC41IDExMC40IDE0Ny43IDExMi44IDE0MC42IDExNC40QzEyMS44''@;'; + put 'put ''IDExOC41IDEwMy4yIDExOC4yIDg0LjkgMTEyQzgwLjEgMTEwLjQgNzUuNSAxMDguMSA3MS44IDEwNC41QzY5IDEwMS44IDY3LjUgOTguNyA2Ny42IDk0LjdDNjcuNyA5MC40IDY3LjYgODYuMSA2Ny42IDgxLjhDNjcuOCA3OS45IDY4LjEgNzguMyA2OS4xIDc2LjdaIiBmaWxsPSIjOEVDNjNG''@;'; + put 'put ''Ii8+CjxwYXRoIGQ9Ik0xODMuOSAyMTAuOUMyMDAuMiAyMTEuOCAyMDguOSAxOTEuOCAxOTcuMSAxODAuNUMxODQuNyAxNjguNiAxNjQuMyAxNzkuNyAxNjcuNSAxOTYuNUM5My44IDI0My41IC0wLjk5OTk4MSAxNzMuMiAyNiA4Ny44MDAxTDcuODAwMDIgNzUuNjAwMUMtMzMuMSAxODQuMyA5''@;'; + put 'put ''Mi44IDI3Ni4yIDE4My45IDIxMC45Wk0xNzguNyAxODcuNEMxODYuMyAxNzkuNSAxOTguNCAxOTAuNSAxOTEuMyAxOTguOEMxODMuOCAyMDcuNSAxNzAuNiAxOTUuOCAxNzguNyAxODcuNFoiIGZpbGw9IiNFMEUwRTAiLz4KPHBhdGggZD0iTTM1LjIgNTAuNzAwMUM0Ni45IDYxLjkwMDEgNjYu''@;'; + put 'put ''MiA1Mi43MDAxIDY1LjEgMzYuNzAwMUMxMzguNyAtMTAuNyAyMzQgNTkuNTAwMSAyMDcgMTQ1LjJMMjI1LjIgMTU3LjRDMjY0LjkgNTEuODAwMSAxNDQuNCAtNDMuMjk5OSA1MS4yIDIwLjYwMDFDMzMuNyAxNy4wMDAxIDIyLjQgMzguNDAwMSAzNS4yIDUwLjcwMDFaTTUzLjYgNDMuODAwMUM0''@;'; + put 'put ''NS44IDUxLjkwMDEgMzMuNSA0MC4xMDAxIDQxLjMgMzIuMDAwMUM0OS4xIDIzLjkwMDEgNjEuNCAzNS43MDAxIDUzLjYgNDMuODAwMVoiIGZpbGw9IiM4RUM2M0YiLz4KPHBhdGggZD0iTTMyMy41NzUgNDcuODg3NEMzMjMuNTc1IDQ2Ljc5MDEgMzIzLjkxNyA0NS44OTg1IDMyNC42MDMgNDUu''@;'; + put 'put ''MjEyN0MzMjUuNDI2IDQ0LjM4OTcgMzI2LjM4NiA0My45NzgyIDMyNy40ODQgNDMuOTc4MkgzNjkuMDQ0QzM3OC45MiA0My45NzgyIDM4OC4wNDEgNDUuNzYxMyAzOTYuNDA4IDQ5LjMyNzZDNDA0LjkxMyA1Mi44OTM4IDQxMi4yNTEgNTcuOTAwMyA0MTguNDIzIDY0LjM0N0M0MjQuNTk2IDcw''@;'; + put 'put ''LjY1NjUgNDI5LjQ2NSA3OC4yMDA1IDQzMy4wMzEgODYuOTc5QzQzNi41OTcgOTUuNzU3NSA0MzguMzggMTA1LjQyOCA0MzguMzggMTE1Ljk4OUM0MzguMzggMTI2LjU1MSA0MzYuNTk3IDEzNi4yMjEgNDMzLjAzMSAxNDQuOTk5QzQyOS40NjUgMTUzLjc3OCA0MjQuNTk2IDE2MS4zOSA0MTgu''@;'; + put 'put ''NDIzIDE2Ny44MzdDNDEyLjI1MSAxNzQuMTQ2IDQwNC45MTMgMTc5LjA4NCAzOTYuNDA4IDE4Mi42NTFDMzg4LjA0MSAxODYuMjE3IDM3OC45MiAxODggMzY5LjA0NCAxODhIMzI3LjQ4NEMzMjYuMzg2IDE4OCAzMjUuNDI2IDE4Ny42NTcgMzI0LjYwMyAxODYuOTcxQzMyMy45MTcgMTg2LjE0''@;'; + put 'put ''OCAzMjMuNTc1IDE4NS4xODggMzIzLjU3NSAxODQuMDkxVjQ3Ljg4NzRaTTM0OS4yOTMgNjkuMjg0OVYxNjIuNjkzSDM2OS42NjJDMzc1LjgzNCAxNjIuNjkzIDM4MS40NTggMTYxLjUyNyAzODYuNTMzIDE1OS4xOTZDMzkxLjYwOCAxNTYuODY0IDM5NS45MjggMTUzLjY0MSAzOTkuNDk1IDE0''@;'; + put 'put ''OS41MjZDNDAzLjE5OCAxNDUuNDExIDQwNi4wMSAxNDAuNTQxIDQwNy45MyAxMzQuOTE4QzQwOS45ODggMTI5LjE1NyA0MTEuMDE2IDEyMi44NDcgNDExLjAxNiAxMTUuOTg5QzQxMS4wMTYgMTA5LjI2OCA0MDkuOTg4IDEwMy4wMjcgNDA3LjkzIDk3LjI2NjNDNDA2LjAxIDkxLjUwNTQgNDAz''@;'; + put 'put ''LjE5OCA4Ni41Njc1IDM5OS40OTUgODIuNDUyNkMzOTUuOTI4IDc4LjMzNzcgMzkxLjYwOCA3NS4xMTQzIDM4Ni41MzMgNzIuNzgyNkMzODEuNDU4IDcwLjQ1MDggMzc1LjgzNCA2OS4yODQ5IDM2OS42NjIgNjkuMjg0OUgzNDkuMjkzWk01MzEuMDkzIDE3Ny45MThDNTI3LjM4OSAxODAuNjYy''@;'; + put 'put ''IDUyMy4xMzcgMTgzLjEzMSA1MTguMzM3IDE4NS4zMjVDNTEzLjUzNiAxODcuMzgzIDUwOC43MzUgMTg4LjQxMSA1MDMuOTM1IDE4OC40MTFDNDk2LjgwMiAxODguNDExIDQ5MC4yMTggMTg3LjEwOCA0ODQuMTgzIDE4NC41MDJDNDc4LjE0OCAxODEuODk2IDQ3Mi45MzYgMTc4LjI2MSA0Njgu''@;'; + put 'put ''NTQ2IDE3My41OThDNDY0LjI5NCAxNjguOTM0IDQ2MC45MzQgMTYzLjQ0OCA0NTguNDY1IDE1Ny4xMzhDNDU1Ljk5NiAxNTAuODI5IDQ1NC43NjEgMTQzLjk3IDQ1NC43NjEgMTM2LjU2NEM0NTQuNzYxIDEyOS40MzEgNDU2LjA2NCAxMjIuNzc5IDQ1OC42NzEgMTE2LjYwNkM0NjEuMjc3IDEx''@;'; + put 'put ''MC4yOTcgNDY0Ljg0MyAxMDQuODEgNDY5LjM2OSAxMDAuMTQ3QzQ3My44OTYgOTUuMzQ2IDQ3OS4xMDggOTEuNTc0IDQ4NS4wMDYgODguODMwN0M0OTEuMDQxIDg2LjA4NzQgNDk3LjQ4OCA4NC43MTU4IDUwNC4zNDYgODQuNzE1OEM1MDkuMTQ3IDg0LjcxNTggNTEzLjg3OSA4NS44MTMxIDUx''@;'; + put 'put ''OC41NDIgODguMDA3N0M1MjMuMjA2IDkwLjA2NTIgNTI3LjM4OSA5Mi40NjU1IDUzMS4wOTMgOTUuMjA4OFY4OS4wMzY1QzUzMS4wOTMgODcuOTM5MSA1MzEuNDM2IDg3LjA0NzYgNTMyLjEyMiA4Ni4zNjE4QzUzMi45NDUgODUuNTM4OCA1MzMuOTA1IDg1LjEyNzMgNTM1LjAwMiA4NS4xMjcz''@;'; + put 'put ''SDU1MS4wNUM1NTMuNjU2IDg1LjEyNzMgNTU0Ljk1OSA4Ni40MzAzIDU1NC45NTkgODkuMDM2NVYxODQuMDkxQzU1NC45NTkgMTg2LjY5NyA1NTMuNjU2IDE4OCA1NTEuMDUgMTg4SDUzNS4wMDJDNTMzLjkwNSAxODggNTMyLjk0NSAxODcuNjU3IDUzMi4xMjIgMTg2Ljk3MUM1MzEuNDM2IDE4''@;'; + put 'put ''Ni4xNDggNTMxLjA5MyAxODUuMTg4IDUzMS4wOTMgMTg0LjA5MVYxNzcuOTE4Wk00NzkuNjU3IDEzNi41NjRDNDc5LjY1NyAxNDAuMjY3IDQ4MC4zNDIgMTQzLjc2NSA0ODEuNzE0IDE0Ny4wNTdDNDgzLjA4NiAxNTAuMjExIDQ4NC45MzcgMTUzLjAyMyA0ODcuMjY5IDE1NS40OTJDNDg5LjYw''@;'; + put 'put ''MSAxNTcuOTYxIDQ5Mi4yNzYgMTU5Ljk1IDQ5NS4yOTMgMTYxLjQ1OUM0OTguNDQ4IDE2Mi44MyA1MDEuNzQgMTYzLjUxNiA1MDUuMTY5IDE2My41MTZDNTA4Ljg3MiAxNjMuNTE2IDUxMi4yMzMgMTYyLjgzIDUxNS4yNTEgMTYxLjQ1OUM1MTguMjY4IDE1OS45NSA1MjAuODc0IDE1Ny45NjEg''@;'; + put 'put ''NTIzLjA2OSAxNTUuNDkyQzUyNS40MDEgMTUzLjAyMyA1MjcuMTg0IDE1MC4yMTEgNTI4LjQxOCAxNDcuMDU3QzUyOS42NTMgMTQzLjc2NSA1MzAuMjcgMTQwLjI2NyA1MzAuMjcgMTM2LjU2NEM1MzAuMjcgMTMyLjg2IDUyOS42NTMgMTI5LjQzMSA1MjguNDE4IDEyNi4yNzZDNTI3LjE4NCAx''@;'; + put 'put ''MjIuOTg0IDUyNS40MDEgMTIwLjEwNCA1MjMuMDY5IDExNy42MzVDNTIwLjg3NCAxMTUuMTY2IDUxOC4yNjggMTEzLjI0NiA1MTUuMjUxIDExMS44NzRDNTEyLjIzMyAxMTAuMzY1IDUwOC44NzIgMTA5LjYxMSA1MDUuMTY5IDEwOS42MTFDNTAxLjc0IDEwOS42MTEgNDk4LjQ0OCAxMTAuMzY1''@;'; + put 'put ''IDQ5NS4yOTMgMTExLjg3NEM0OTIuMjc2IDExMy4yNDYgNDg5LjYwMSAxMTUuMTY2IDQ4Ny4yNjkgMTE3LjYzNUM0ODQuOTM3IDEyMC4xMDQgNDgzLjA4NiAxMjIuOTg0IDQ4MS43MTQgMTI2LjI3NkM0ODAuMzQyIDEyOS40MzEgNDc5LjY1NyAxMzIuODYgNDc5LjY1NyAxMzYuNTY0Wk01NzQu''@;'; + put 'put ''NDA3IDg5LjAzNjVDNTc0LjQwNyA4Ny45MzkxIDU3NC43NSA4Ny4wNDc2IDU3NS40MzYgODYuMzYxOEM1NzYuMTIyIDg1LjUzODggNTc3LjAxMyA4NS4xMjczIDU3OC4xMTEgODUuMTI3M0g1OTMuMzM2VjU4LjE3NDZDNTkzLjMzNiA1Ny4wNzczIDU5My42NzkgNTYuMTg1OCA1OTQuMzY0IDU1''@;'; + put 'put ''LjQ5OTlDNTk1LjE4NyA1NC42NzcgNTk2LjE0OCA1NC4yNjU1IDU5Ny4yNDUgNTQuMjY1NUg2MTMuMjkzQzYxNS44OTkgNTQuMjY1NSA2MTcuMjAyIDU1LjU2ODUgNjE3LjIwMiA1OC4xNzQ2Vjg1LjEyNzNINjM1LjMwOEM2MzYuNDA1IDg1LjEyNzMgNjM3LjI5NyA4NS41Mzg4IDYzNy45ODIg''@;'; + put 'put ''ODYuMzYxOEM2MzguNjY4IDg3LjA0NzYgNjM5LjAxMSA4Ny45MzkxIDYzOS4wMTEgODkuMDM2NVYxMDQuMjYyQzYzOS4wMTEgMTA1LjM1OSA2MzguNjY4IDEwNi4yNSA2MzcuOTgyIDEwNi45MzZDNjM3LjI5NyAxMDcuNjIyIDYzNi40MDUgMTA3Ljk2NSA2MzUuMzA4IDEwNy45NjVINjE3LjIw''@;'; + put 'put ''MlYxODQuMDkxQzYxNy4yMDIgMTg2LjY5NyA2MTUuODk5IDE4OCA2MTMuMjkzIDE4OEg1OTcuMjQ1QzU5Ni4xNDggMTg4IDU5NS4xODcgMTg3LjY1NyA1OTQuMzY0IDE4Ni45NzFDNTkzLjY3OSAxODYuMTQ4IDU5My4zMzYgMTg1LjE4OCA1OTMuMzM2IDE4NC4wOTFWMTA3Ljk2NUg1NzguMTEx''@;'; + put 'put ''QzU3Ny4wMTMgMTA3Ljk2NSA1NzYuMTIyIDEwNy42MjIgNTc1LjQzNiAxMDYuOTM2QzU3NC43NSAxMDYuMjUgNTc0LjQwNyAxMDUuMzU5IDU3NC40MDcgMTA0LjI2MlY4OS4wMzY1Wk03MjkuNjkzIDE3Ny45MThDNzI1Ljk5IDE4MC42NjIgNzIxLjczOCAxODMuMTMxIDcxNi45MzcgMTg1LjMy''@;'; + put 'put ''NUM3MTIuMTM3IDE4Ny4zODMgNzA3LjMzNiAxODguNDExIDcwMi41MzUgMTg4LjQxMUM2OTUuNDAzIDE4OC40MTEgNjg4LjgxOSAxODcuMTA4IDY4Mi43ODQgMTg0LjUwMkM2NzYuNzQ4IDE4MS44OTYgNjcxLjUzNiAxNzguMjYxIDY2Ny4xNDcgMTczLjU5OEM2NjIuODk1IDE2OC45MzQgNjU5''@;'; + put 'put ''LjUzNCAxNjMuNDQ4IDY1Ny4wNjUgMTU3LjEzOEM2NTQuNTk2IDE1MC44MjkgNjUzLjM2MiAxNDMuOTcgNjUzLjM2MiAxMzYuNTY0QzY1My4zNjIgMTI5LjQzMSA2NTQuNjY1IDEyMi43NzkgNjU3LjI3MSAxMTYuNjA2QzY1OS44NzcgMTEwLjI5NyA2NjMuNDQzIDEwNC44MSA2NjcuOTcgMTAw''@;'; + put 'put ''LjE0N0M2NzIuNDk2IDk1LjM0NiA2NzcuNzA4IDkxLjU3NCA2ODMuNjA3IDg4LjgzMDdDNjg5LjY0MiA4Ni4wODc0IDY5Ni4wODggODQuNzE1OCA3MDIuOTQ3IDg0LjcxNThDNzA3Ljc0NyA4NC43MTU4IDcxMi40NzkgODUuODEzMSA3MTcuMTQzIDg4LjAwNzdDNzIxLjgwNyA5MC4wNjUyIDcy''@;'; + put 'put ''NS45OSA5Mi40NjU1IDcyOS42OTMgOTUuMjA4OFY4OS4wMzY1QzcyOS42OTMgODcuOTM5MSA3MzAuMDM2IDg3LjA0NzYgNzMwLjcyMiA4Ni4zNjE4QzczMS41NDUgODUuNTM4OCA3MzIuNTA1IDg1LjEyNzMgNzMzLjYwMyA4NS4xMjczSDc0OS42NTFDNzUyLjI1NyA4NS4xMjczIDc1My41NiA4''@;'; + put 'put ''Ni40MzAzIDc1My41NiA4OS4wMzY1VjE4NC4wOTFDNzUzLjU2IDE4Ni42OTcgNzUyLjI1NyAxODggNzQ5LjY1MSAxODhINzMzLjYwM0M3MzIuNTA1IDE4OCA3MzEuNTQ1IDE4Ny42NTcgNzMwLjcyMiAxODYuOTcxQzczMC4wMzYgMTg2LjE0OCA3MjkuNjkzIDE4NS4xODggNzI5LjY5MyAxODQu''@;'; + put 'put ''MDkxVjE3Ny45MThaTTY3OC4yNTcgMTM2LjU2NEM2NzguMjU3IDE0MC4yNjcgNjc4Ljk0MyAxNDMuNzY1IDY4MC4zMTUgMTQ3LjA1N0M2ODEuNjg2IDE1MC4yMTEgNjgzLjUzOCAxNTMuMDIzIDY4NS44NyAxNTUuNDkyQzY4OC4yMDEgMTU3Ljk2MSA2OTAuODc2IDE1OS45NSA2OTMuODk0IDE2''@;'; + put 'put ''MS40NTlDNjk3LjA0OSAxNjIuODMgNzAwLjM0IDE2My41MTYgNzAzLjc3IDE2My41MTZDNzA3LjQ3MyAxNjMuNTE2IDcxMC44MzMgMTYyLjgzIDcxMy44NTEgMTYxLjQ1OUM3MTYuODY5IDE1OS45NSA3MTkuNDc1IDE1Ny45NjEgNzIxLjY2OSAxNTUuNDkyQzcyNC4wMDEgMTUzLjAyMyA3MjUu''@;'; + put 'put ''Nzg0IDE1MC4yMTEgNzI3LjAxOSAxNDcuMDU3QzcyOC4yNTMgMTQzLjc2NSA3MjguODcgMTQwLjI2NyA3MjguODcgMTM2LjU2NEM3MjguODcgMTMyLjg2IDcyOC4yNTMgMTI5LjQzMSA3MjcuMDE5IDEyNi4yNzZDNzI1Ljc4NCAxMjIuOTg0IDcyNC4wMDEgMTIwLjEwNCA3MjEuNjY5IDExNy42''@;'; + put 'put ''MzVDNzE5LjQ3NSAxMTUuMTY2IDcxNi44NjkgMTEzLjI0NiA3MTMuODUxIDExMS44NzRDNzEwLjgzMyAxMTAuMzY1IDcwNy40NzMgMTA5LjYxMSA3MDMuNzcgMTA5LjYxMUM3MDAuMzQgMTA5LjYxMSA2OTcuMDQ5IDExMC4zNjUgNjkzLjg5NCAxMTEuODc0QzY5MC44NzYgMTEzLjI0NiA2ODgu''@;'; + put 'put ''MjAxIDExNS4xNjYgNjg1Ljg3IDExNy42MzVDNjgzLjUzOCAxMjAuMTA0IDY4MS42ODYgMTIyLjk4NCA2ODAuMzE1IDEyNi4yNzZDNjc4Ljk0MyAxMjkuNDMxIDY3OC4yNTcgMTMyLjg2IDY3OC4yNTcgMTM2LjU2NFoiIGZpbGw9IiNFMEUwRTAiLz4KPHBhdGggZD0iTTg3My4yMDYgNzQuMjIy''@;'; + put 'put ''OEM4NzIuNjU3IDc1LjA0NTggODcxLjkwMyA3NS41MjU4IDg3MC45NDMgNzUuNjYzQzg2OS45ODIgNzUuODAwMiA4NjkuMDIyIDc1LjU5NDQgODY4LjA2MiA3NS4wNDU4Qzg2NC45MDcgNzMuMTI1NSA4NjEuMTM1IDcxLjQ3OTUgODU2Ljc0NiA3MC4xMDc5Qzg1Mi4zNTcgNjguNzM2MiA4NDcu''@;'; + put 'put ''ODk5IDY4LjExOSA4NDMuMzczIDY4LjI1NjJDODM3LjQ3NSA2OC4yNTYyIDgzMS45ODggNjkuNTU5MiA4MjYuOTEzIDcyLjE2NTNDODIxLjk3NSA3NC42MzQzIDgxNy42NTQgNzguMDYzNCA4MTMuOTUxIDgyLjQ1MjZDODEwLjI0OCA4Ni43MDQ3IDgwNy4zNjcgOTEuNzExMSA4MDUuMzEgOTcu''@;'; + put 'put ''NDcyQzgwMy4yNTIgMTAzLjIzMyA4MDIuMjkyIDEwOS40MDUgODAyLjQyOSAxMTUuOTg5QzgwMi41NjYgMTIyLjg0NyA4MDMuNTk1IDEyOS4yMjUgODA1LjUxNSAxMzUuMTIzQzgwNy41NzMgMTQwLjg4NCA4MTAuMzg1IDE0NS44OTEgODEzLjk1MSAxNTAuMTQzQzgxNy41MTcgMTU0LjM5NSA4''@;'; + put 'put ''MjEuODM4IDE1Ny43NTUgODI2LjkxMyAxNjAuMjI0QzgzMS45ODggMTYyLjU1NiA4MzcuNjggMTYzLjcyMiA4NDMuOTkgMTYzLjcyMkM4NTAuMDI1IDE2My41ODUgODU1LjUxMiAxNjIuNTU2IDg2MC40NSAxNjAuNjM2Qzg2NS41MjUgMTU4LjcxNiA4NzAuNTMxIDE1NS45NzIgODc1LjQ2OSAx''@;'; + put 'put ''NTIuNDA2Qzg3Ni40MjkgMTUxLjcyIDg3Ny40NTggMTUxLjUxNCA4NzguNTU1IDE1MS43ODlDODc5LjY1MiAxNTEuOTI2IDg4MC41NDQgMTUyLjQ3NSA4ODEuMjMgMTUzLjQzNUw4OTEuMTA2IDE2OC4yNDhDODkyLjM0IDE3MC4xNjkgODkxLjk5NyAxNzEuODgzIDg5MC4wNzcgMTczLjM5MkM4''@;'; + put 'put ''ODIuNTMzIDE3OS4xNTMgODc1LjE5NSAxODMuMzM2IDg2OC4wNjIgMTg1Ljk0M0M4NjAuOTMgMTg4LjU0OSA4NTIuOTc0IDE4OS44NTIgODQ0LjE5NiAxODkuODUyQzgzMy42MzQgMTg5Ljk4OSA4MjQuMTAxIDE4OC4zNDMgODE1LjU5NyAxODQuOTE0QzgwNy4yMyAxODEuMzQ4IDgwMC4wMjkg''@;'; + put 'put ''MTc2LjM0MSA3OTMuOTk0IDE2OS44OTRDNzg4LjA5NiAxNjMuMzExIDc4My41MDEgMTU1LjQ5MiA3ODAuMjA5IDE0Ni40MzlDNzc3LjA1NCAxMzcuMzg3IDc3NS40MDggMTI3LjM3NCA3NzUuMjcxIDExNi40MDFDNzc1LjEzNCAxMDcuMDczIDc3Ni41NzQgOTguMDIwNyA3NzkuNTkyIDg5LjI0''@;'; + put 'put ''MjJDNzgyLjc0NiA4MC4zMjY2IDc4Ny4yMDQgNzIuMzcxMSA3OTIuOTY1IDY1LjM3NTdDNzk4LjcyNiA1OC4zODA0IDgwNS43MjEgNTIuNzU2NyA4MTMuOTUxIDQ4LjUwNDZDODIyLjE4MSA0NC4yNTI1IDgzMS40MzkgNDIuMTI2NSA4NDEuNzI3IDQyLjEyNjVDODQ4LjcyMiA0MS45ODkzIDg1''@;'; + put 'put ''NS41OCA0Mi44MTIzIDg2Mi4zMDEgNDQuNTk1NEM4NjkuMTU5IDQ2LjM3ODYgODc1Ljg4IDQ5LjY3MDUgODgyLjQ2NCA1NC40NzEyQzg4My40MjQgNTUuMTU3IDg4My45NzMgNTYuMDQ4NiA4ODQuMTEgNTcuMTQ1OUM4ODQuMjQ3IDU4LjEwNjEgODgzLjk3MyA1OS4wNjYyIDg4My4yODcgNjAu''@;'; + put 'put ''MDI2M0w4NzMuMjA2IDc0LjIyMjhaTTkwNi4yMTIgMTM2LjU2NEM5MDYuMjEyIDEyOS4yOTQgOTA3LjUxNSAxMjIuNTA0IDkxMC4xMjEgMTE2LjE5NUM5MTIuNzI3IDEwOS44ODUgOTE2LjIyNSAxMDQuMzk5IDkyMC42MTQgOTkuNzM1MkM5MjUuMTQgOTUuMDcxNyA5MzAuNDIxIDkxLjQzNjgg''@;'; + put 'put ''OTM2LjQ1NiA4OC44MzA3Qzk0Mi40OTIgODYuMDg3NCA5NDkuMDA3IDg0LjcxNTggOTU2LjAwMiA4NC43MTU4Qzk2Mi45OTggODQuNzE1OCA5NjkuNDQ0IDg2LjA4NzQgOTc1LjM0MiA4OC44MzA3Qzk4MS4zNzcgOTEuNDM2OCA5ODYuNTkgOTUuMDcxNyA5OTAuOTc5IDk5LjczNTJDOTk1LjUw''@;'; + put 'put ''NSAxMDQuMzk5IDk5OS4wMDMgMTA5Ljg4NSAxMDAxLjQ3IDExNi4xOTVDMTAwNC4wOCAxMjIuNTA0IDEwMDUuMzggMTI5LjI5NCAxMDA1LjM4IDEzNi41NjRDMTAwNS4zOCAxNDMuODMzIDEwMDQuMDggMTUwLjYyMyAxMDAxLjQ3IDE1Ni45MzJDOTk5LjAwMyAxNjMuMjQyIDk5NS41MDUgMTY4''@;'; + put 'put ''LjcyOSA5OTAuOTc5IDE3My4zOTJDOTg2LjU5IDE3OC4wNTYgOTgxLjM3NyAxODEuNzU5IDk3NS4zNDIgMTg0LjUwMkM5NjkuMzA3IDE4Ny4xMDggOTYyLjc5MiAxODguNDExIDk1NS43OTYgMTg4LjQxMUM5NDguODAxIDE4OC40MTEgOTQyLjI4NiAxODcuMTA4IDkzNi4yNTEgMTg0LjUwMkM5''@;'; + put 'put ''MzAuMjE1IDE4MS43NTkgOTI0LjkzNSAxNzguMDU2IDkyMC40MDggMTczLjM5MkM5MTYuMDE5IDE2OC43MjkgOTEyLjUyMSAxNjMuMjQyIDkwOS45MTUgMTU2LjkzMkM5MDcuNDQ2IDE1MC42MjMgOTA2LjIxMiAxNDMuODMzIDkwNi4yMTIgMTM2LjU2NFpNOTMxLjEwNyAxMzYuNTY0QzkzMS4x''@;'; + put 'put ''MDcgMTQwLjQwNCA5MzEuNzI0IDE0NC4wMzkgOTMyLjk1OSAxNDcuNDY4QzkzNC4xOTMgMTUwLjc2IDkzNS45MDggMTUzLjY0MSA5MzguMTAyIDE1Ni4xMDlDOTQwLjI5NyAxNTguNTc4IDk0Mi45MDMgMTYwLjU2NyA5NDUuOTIxIDE2Mi4wNzZDOTQ4LjkzOCAxNjMuNDQ4IDk1Mi4yMyAxNjQu''@;'; + put 'put ''MTM0IDk1NS43OTYgMTY0LjEzNEM5NTkuMzYzIDE2NC4xMzQgOTYyLjY1NSAxNjMuNDQ4IDk2NS42NzIgMTYyLjA3NkM5NjguODI3IDE2MC41NjcgOTcxLjUwMiAxNTguNTc4IDk3My42OTYgMTU2LjEwOUM5NzUuODkxIDE1My42NDEgOTc3LjYwNSAxNTAuNzYgOTc4Ljg0IDE0Ny40NjhDOTgw''@;'; + put 'put ''LjA3NCAxNDQuMDM5IDk4MC42OTIgMTQwLjQwNCA5ODAuNjkyIDEzNi41NjRDOTgwLjY5MiAxMzIuNzIzIDk4MC4wNzQgMTI5LjE1NyA5NzguODQgMTI1Ljg2NUM5NzcuNjA1IDEyMi40MzYgOTc1Ljg5MSAxMTkuNDg3IDk3My42OTYgMTE3LjAxOEM5NzEuNTAyIDExNC41NDkgOTY4LjgyNyAx''@;'; + put 'put ''MTIuNjI5IDk2NS42NzIgMTExLjI1N0M5NjIuNjU1IDEwOS43NDggOTU5LjM2MyAxMDguOTk0IDk1NS43OTYgMTA4Ljk5NEM5NTIuMjMgMTA4Ljk5NCA5NDguOTM4IDEwOS43NDggOTQ1LjkyMSAxMTEuMjU3Qzk0Mi45MDMgMTEyLjYyOSA5NDAuMjk3IDExNC41NDkgOTM4LjEwMiAxMTcuMDE4''@;'; + put 'put ''QzkzNS45MDggMTE5LjQ4NyA5MzQuMTkzIDEyMi40MzYgOTMyLjk1OSAxMjUuODY1QzkzMS43MjQgMTI5LjE1NyA5MzEuMTA3IDEzMi43MjMgOTMxLjEwNyAxMzYuNTY0Wk0xMDUwLjkgMTg0LjA5MUMxMDUwLjkgMTg2LjY5NyAxMDQ5LjU5IDE4OCAxMDQ2Ljk5IDE4OEgxMDMwLjk0QzEwMjku''@;'; + put 'put ''ODQgMTg4IDEwMjguODggMTg3LjY1NyAxMDI4LjA2IDE4Ni45NzFDMTAyNy4zNyAxODYuMTQ4IDEwMjcuMDMgMTg1LjE4OCAxMDI3LjAzIDE4NC4wOTFWODkuMDM2NUMxMDI3LjAzIDg3LjkzOTEgMTAyNy4zNyA4Ny4wNDc2IDEwMjguMDYgODYuMzYxOEMxMDI4Ljg4IDg1LjUzODggMTAyOS44''@;'; + put 'put ''NCA4NS4xMjczIDEwMzAuOTQgODUuMTI3M0gxMDQ2Ljk5QzEwNDkuNTkgODUuMTI3MyAxMDUwLjkgODYuNDMwMyAxMDUwLjkgODkuMDM2NVY5Ni42NDlDMTA1NC44OCA5My4zNTcxIDEwNTkuNDcgOTAuNTQ1MyAxMDY0LjY4IDg4LjIxMzVDMTA2OS44OSA4NS44ODE3IDEwNzUuMDQgODQuNzE1''@;'; + put 'put ''OCAxMDgwLjExIDg0LjcxNThDMTA4NC45MSA4NC43MTU4IDEwODkuMzcgODUuNjA3NCAxMDkzLjQ5IDg3LjM5MDVDMTA5Ny42IDg5LjAzNjUgMTEwMS4xIDkxLjQzNjggMTEwMy45OCA5NC41OTE2QzExMDcgOTcuNjA5MiAxMTA5LjMzIDEwMS4xNzUgMTExMC45OCAxMDUuMjlDMTExMi42MiAx''@;'; + put 'put ''MDkuNDA1IDExMTMuNDQgMTEzLjkzMiAxMTEzLjQ0IDExOC44N1YxODQuMDkxQzExMTMuNDQgMTg2LjY5NyAxMTEyLjE0IDE4OCAxMTA5LjUzIDE4OEgxMDkzLjQ5QzEwOTIuMzkgMTg4IDEwOTEuNDMgMTg3LjY1NyAxMDkwLjYxIDE4Ni45NzFDMTA4OS45MiAxODYuMTQ4IDEwODkuNTggMTg1''@;'; + put 'put ''LjE4OCAxMDg5LjU4IDE4NC4wOTFWMTI2LjY4OEMxMDg5LjU4IDEyMS4wNjQgMTA4OC4yNyAxMTYuNzQ0IDEwODUuNjcgMTEzLjcyNkMxMDgzLjA2IDExMC41NzEgMTA3OS4zNiAxMDguOTk0IDEwNzQuNTYgMTA4Ljk5NEMxMDcxLjU0IDEwOC45OTQgMTA2OC41OSAxMDkuNjExIDEwNjUuNzEg''@;'; + put 'put ''MTEwLjg0NUMxMDYyLjk3IDExMS45NDMgMTA2MC41IDExMy41MiAxMDU4LjMgMTE1LjU3OEMxMDU2LjI1IDExNy40OTggMTA1NC41MyAxMTkuODMgMTA1My4xNiAxMjIuNTczQzEwNTEuOTMgMTI1LjMxNiAxMDUxLjMxIDEyOC4xOTcgMTA1MS4zMSAxMzEuMjE0TDEwNTAuOSAxODQuMDkxWk0x''@;'; + put 'put ''MTI3Ljg3IDg5LjAzNjVDMTEyNy44NyA4Ny45MzkxIDExMjguMjEgODcuMDQ3NiAxMTI4LjkgODYuMzYxOEMxMTI5LjU4IDg1LjUzODggMTEzMC40OCA4NS4xMjczIDExMzEuNTcgODUuMTI3M0gxMTQ2LjhWNTguMTc0NkMxMTQ2LjggNTcuMDc3MyAxMTQ3LjE0IDU2LjE4NTggMTE0Ny44MyA1''@;'; + put 'put ''NS40OTk5QzExNDguNjUgNTQuNjc3IDExNDkuNjEgNTQuMjY1NSAxMTUwLjcxIDU0LjI2NTVIMTE2Ni43NkMxMTY5LjM2IDU0LjI2NTUgMTE3MC42NyA1NS41Njg1IDExNzAuNjcgNTguMTc0NlY4NS4xMjczSDExODguNzdDMTE4OS44NyA4NS4xMjczIDExOTAuNzYgODUuNTM4OCAxMTkxLjQ1''@;'; + put 'put ''IDg2LjM2MThDMTE5Mi4xMyA4Ny4wNDc2IDExOTIuNDcgODcuOTM5MSAxMTkyLjQ3IDg5LjAzNjVWMTA0LjI2MkMxMTkyLjQ3IDEwNS4zNTkgMTE5Mi4xMyAxMDYuMjUgMTE5MS40NSAxMDYuOTM2QzExOTAuNzYgMTA3LjYyMiAxMTg5Ljg3IDEwNy45NjUgMTE4OC43NyAxMDcuOTY1SDExNzAu''@;'; + put 'put ''NjdWMTg0LjA5MUMxMTcwLjY3IDE4Ni42OTcgMTE2OS4zNiAxODggMTE2Ni43NiAxODhIMTE1MC43MUMxMTQ5LjYxIDE4OCAxMTQ4LjY1IDE4Ny42NTcgMTE0Ny44MyAxODYuOTcxQzExNDcuMTQgMTg2LjE0OCAxMTQ2LjggMTg1LjE4OCAxMTQ2LjggMTg0LjA5MVYxMDcuOTY1SDExMzEuNTdD''@;'; + put 'put ''MTEzMC40OCAxMDcuOTY1IDExMjkuNTggMTA3LjYyMiAxMTI4LjkgMTA2LjkzNkMxMTI4LjIxIDEwNi4yNSAxMTI3Ljg3IDEwNS4zNTkgMTEyNy44NyAxMDQuMjYyVjg5LjAzNjVaTTEyNzMuMjggMTA4LjE3MUMxMjcyLjg3IDEwOS4yNjggMTI3Mi4xOCAxMTAuMDIyIDEyNzEuMjIgMTEwLjQz''@;'; + put 'put ''NEMxMjcwLjI2IDExMC44NDUgMTI2OS4yMyAxMTAuNzc3IDEyNjguMTQgMTEwLjIyOEMxMjY3LjA0IDEwOS42OCAxMjY1LjY3IDEwOS4yIDEyNjQuMDIgMTA4Ljc4OEMxMjYyLjUxIDEwOC4zNzcgMTI2MC44NyAxMDguMTcxIDEyNTkuMDggMTA4LjE3MUMxMjU2LjA3IDEwOC4xNzEgMTI1My4x''@;'; + put 'put ''OSAxMDguNzg4IDEyNTAuNDQgMTEwLjAyMkMxMjQ3LjcgMTExLjI1NyAxMjQ1LjIzIDExMi45NzIgMTI0My4wNCAxMTUuMTY2QzEyNDAuOTggMTE3LjIyNCAxMjM5LjMzIDExOS42OTMgMTIzOC4xIDEyMi41NzNDMTIzNi44NiAxMjUuMzE2IDEyMzYuMjUgMTI4LjE5NyAxMjM2LjI1IDEzMS4y''@;'; + put 'put ''MTRMMTIzNS44NCAxODQuMDkxQzEyMzUuODQgMTg1LjE4OCAxMjM1LjQ5IDE4Ni4xNDggMTIzNC44MSAxODYuOTcxQzEyMzQuMTIgMTg3LjY1NyAxMjMzLjIzIDE4OCAxMjMyLjEzIDE4OEgxMjE1Ljg4QzEyMTQuNzggMTg4IDEyMTMuODIgMTg3LjY1NyAxMjEzIDE4Ni45NzFDMTIxMi4zMSAx''@;'; + put 'put ''ODYuMTQ4IDEyMTEuOTcgMTg1LjE4OCAxMjExLjk3IDE4NC4wOTFWODkuMDM2NUMxMjExLjk3IDg3LjkzOTEgMTIxMi4zMSA4Ny4wNDc2IDEyMTMgODYuMzYxOEMxMjEzLjgyIDg1LjUzODggMTIxNC43OCA4NS4xMjczIDEyMTUuODggODUuMTI3M0gxMjMyLjEzQzEyMzMuMjMgODUuMTI3MyAx''@;'; + put 'put ''MjM0LjEyIDg1LjUzODggMTIzNC44MSA4Ni4zNjE4QzEyMzUuNDkgODcuMDQ3NiAxMjM1Ljg0IDg3LjkzOTEgMTIzNS44NCA4OS4wMzY1Vjk0LjU5MTZDMTIzOS44MSA5MS43MTExIDEyNDQuMDcgODkuMzc5NCAxMjQ4LjU5IDg3LjU5NjJDMTI1My4xMiA4NS42NzU5IDEyNTcuOTkgODQuNzE1''@;'; + put 'put ''OCAxMjYzLjIgODQuNzE1OEMxMjY4LjU1IDg0LjcxNTggMTI3My4yMSA4NS43NDQ1IDEyNzcuMTkgODcuODAyQzEyNzkuMTEgODkuMDM2NSAxMjc5LjczIDkwLjYxMzggMTI3OS4wNCA5Mi41MzQxTDEyNzMuMjggMTA4LjE3MVpNMTI4NS4zMyAxMzYuNTY0QzEyODUuMzMgMTI5LjI5NCAxMjg2''@;'; + put 'put ''LjYzIDEyMi41MDQgMTI4OS4yNCAxMTYuMTk1QzEyOTEuODUgMTA5Ljg4NSAxMjk1LjM0IDEwNC4zOTkgMTI5OS43MyA5OS43MzUyQzEzMDQuMjYgOTUuMDcxNyAxMzA5LjU0IDkxLjQzNjggMTMxNS41NyA4OC44MzA3QzEzMjEuNjEgODYuMDg3NCAxMzI4LjEyIDg0LjcxNTggMTMzNS4xMiA4''@;'; + put 'put ''NC43MTU4QzEzNDIuMTIgODQuNzE1OCAxMzQ4LjU2IDg2LjA4NzQgMTM1NC40NiA4OC44MzA3QzEzNjAuNSA5MS40MzY4IDEzNjUuNzEgOTUuMDcxNyAxMzcwLjEgOTkuNzM1MkMxMzc0LjYyIDEwNC4zOTkgMTM3OC4xMiAxMDkuODg1IDEzODAuNTkgMTE2LjE5NUMxMzgzLjIgMTIyLjUwNCAx''@;'; + put 'put ''Mzg0LjUgMTI5LjI5NCAxMzg0LjUgMTM2LjU2NEMxMzg0LjUgMTQzLjgzMyAxMzgzLjIgMTUwLjYyMyAxMzgwLjU5IDE1Ni45MzJDMTM3OC4xMiAxNjMuMjQyIDEzNzQuNjIgMTY4LjcyOSAxMzcwLjEgMTczLjM5MkMxMzY1LjcxIDE3OC4wNTYgMTM2MC41IDE4MS43NTkgMTM1NC40NiAxODQu''@;'; + put 'put ''NTAyQzEzNDguNDMgMTg3LjEwOCAxMzQxLjkxIDE4OC40MTEgMTMzNC45MSAxODguNDExQzEzMjcuOTIgMTg4LjQxMSAxMzIxLjQgMTg3LjEwOCAxMzE1LjM3IDE4NC41MDJDMTMwOS4zMyAxODEuNzU5IDEzMDQuMDUgMTc4LjA1NiAxMjk5LjUzIDE3My4zOTJDMTI5NS4xNCAxNjguNzI5IDEy''@;'; + put 'put ''OTEuNjQgMTYzLjI0MiAxMjg5LjAzIDE1Ni45MzJDMTI4Ni41NiAxNTAuNjIzIDEyODUuMzMgMTQzLjgzMyAxMjg1LjMzIDEzNi41NjRaTTEzMTAuMjMgMTM2LjU2NEMxMzEwLjIzIDE0MC40MDQgMTMxMC44NCAxNDQuMDM5IDEzMTIuMDggMTQ3LjQ2OEMxMzEzLjMxIDE1MC43NiAxMzE1LjAz''@;'; + put 'put ''IDE1My42NDEgMTMxNy4yMiAxNTYuMTA5QzEzMTkuNDIgMTU4LjU3OCAxMzIyLjAyIDE2MC41NjcgMTMyNS4wNCAxNjIuMDc2QzEzMjguMDYgMTYzLjQ0OCAxMzMxLjM1IDE2NC4xMzQgMTMzNC45MSAxNjQuMTM0QzEzMzguNDggMTY0LjEzNCAxMzQxLjc3IDE2My40NDggMTM0NC43OSAxNjIu''@;'; + put 'put ''MDc2QzEzNDcuOTUgMTYwLjU2NyAxMzUwLjYyIDE1OC41NzggMTM1Mi44MSAxNTYuMTA5QzEzNTUuMDEgMTUzLjY0MSAxMzU2LjcyIDE1MC43NiAxMzU3Ljk2IDE0Ny40NjhDMTM1OS4xOSAxNDQuMDM5IDEzNTkuODEgMTQwLjQwNCAxMzU5LjgxIDEzNi41NjRDMTM1OS44MSAxMzIuNzIzIDEz''@;'; + put 'put ''NTkuMTkgMTI5LjE1NyAxMzU3Ljk2IDEyNS44NjVDMTM1Ni43MiAxMjIuNDM2IDEzNTUuMDEgMTE5LjQ4NyAxMzUyLjgxIDExNy4wMThDMTM1MC42MiAxMTQuNTQ5IDEzNDcuOTUgMTEyLjYyOSAxMzQ0Ljc5IDExMS4yNTdDMTM0MS43NyAxMDkuNzQ4IDEzMzguNDggMTA4Ljk5NCAxMzM0Ljkx''@;'; + put 'put ''IDEwOC45OTRDMTMzMS4zNSAxMDguOTk0IDEzMjguMDYgMTA5Ljc0OCAxMzI1LjA0IDExMS4yNTdDMTMyMi4wMiAxMTIuNjI5IDEzMTkuNDIgMTE0LjU0OSAxMzE3LjIyIDExNy4wMThDMTMxNS4wMyAxMTkuNDg3IDEzMTMuMzEgMTIyLjQzNiAxMzEyLjA4IDEyNS44NjVDMTMxMC44NCAxMjku''@;'; + put 'put ''MTU3IDEzMTAuMjMgMTMyLjcyMyAxMzEwLjIzIDEzNi41NjRaTTE0MDguMjEgMzcuMzk0NEMxNDA4LjIxIDM2LjI5NyAxNDA4LjU1IDM1LjQwNTUgMTQwOS4yNCAzNC43MTk3QzE0MTAuMDYgMzQuMDMzOCAxNDExLjAyIDMzLjY5MDkgMTQxMi4xMiAzMy42OTA5SDE0MjguMTZDMTQyOS4yNiAz''@;'; + put 'put ''My42OTA5IDE0MzAuMTUgMzQuMDMzOCAxNDMwLjg0IDM0LjcxOTdDMTQzMS42NiAzNS40MDU1IDE0MzIuMDcgMzYuMjk3IDE0MzIuMDcgMzcuMzk0NFYxODQuMDkxQzE0MzIuMDcgMTg2LjY5NyAxNDMwLjc3IDE4OCAxNDI4LjE2IDE4OEgxNDEyLjEyQzE0MTEuMDIgMTg4IDE0MTAuMDYgMTg3''@;'; + put 'put ''LjY1NyAxNDA5LjI0IDE4Ni45NzFDMTQwOC41NSAxODYuMTQ4IDE0MDguMjEgMTg1LjE4OCAxNDA4LjIxIDE4NC4wOTFWMzcuMzk0NFpNMTQ2MyAzNy4zOTQ0QzE0NjMgMzYuMjk3IDE0NjMuMzUgMzUuNDA1NSAxNDY0LjAzIDM0LjcxOTdDMTQ2NC44NSAzNC4wMzM4IDE0NjUuODEgMzMuNjkw''@;'; + put 'put ''OSAxNDY2LjkxIDMzLjY5MDlIMTQ4Mi45NkMxNDg0LjA2IDMzLjY5MDkgMTQ4NC45NSAzNC4wMzM4IDE0ODUuNjMgMzQuNzE5N0MxNDg2LjQ2IDM1LjQwNTUgMTQ4Ni44NyAzNi4yOTcgMTQ4Ni44NyAzNy4zOTQ0VjE4NC4wOTFDMTQ4Ni44NyAxODYuNjk3IDE0ODUuNTcgMTg4IDE0ODIuOTYg''@;'; + put 'put ''MTg4SDE0NjYuOTFDMTQ2NS44MSAxODggMTQ2NC44NSAxODcuNjU3IDE0NjQuMDMgMTg2Ljk3MUMxNDYzLjM1IDE4Ni4xNDggMTQ2MyAxODUuMTg4IDE0NjMgMTg0LjA5MVYzNy4zOTQ0Wk0xNTM3Ljc2IDE0OC4wODVDMTUzOS42OCAxNTIuODg2IDE1NDIuNTYgMTU2Ljc5NSAxNTQ2LjQgMTU5''@;'; + put 'put ''LjgxM0MxNTUwLjM3IDE2Mi44MyAxNTU0LjkgMTY0LjMzOSAxNTU5Ljk4IDE2NC4zMzlDMTU2My42OCAxNjQuMzM5IDE1NjcuMjUgMTYzLjcyMiAxNTcwLjY3IDE2Mi40ODhDMTU3NC4xIDE2MS4yNTMgMTU3Ni45OCAxNTkuNTM5IDE1NzkuMzIgMTU3LjM0NEMxNTgwLjE0IDE1Ni42NTggMTU4''@;'; + put 'put ''MS4wMyAxNTYuMzg0IDE1ODEuOTkgMTU2LjUyMUMxNTgzLjA5IDE1Ni41MjEgMTU4My45OCAxNTYuODY0IDE1ODQuNjcgMTU3LjU1TDE1OTYuMzkgMTY4LjY2QzE1OTcuMDggMTY5LjM0NiAxNTk3LjQyIDE3MC4yMzcgMTU5Ny40MiAxNzEuMzM1QzE1OTcuNDIgMTcyLjI5NSAxNTk3LjA4IDE3''@;'; + put 'put ''My4xMTggMTU5Ni4zOSAxNzMuODA0QzE1OTEuODcgMTc4LjYwNCAxNTg2LjUyIDE4Mi4yMzkgMTU4MC4zNCAxODQuNzA4QzE1NzQuMTcgMTg3LjE3NyAxNTY3LjM4IDE4OC40MTEgMTU1OS45OCAxODguNDExQzE1NTMuMTIgMTg4LjQxMSAxNTQ2Ljc0IDE4Ny4xNzcgMTU0MC44NCAxODQuNzA4''@;'; + put 'put ''QzE1MzUuMDggMTgyLjIzOSAxNTMwLjAxIDE3OC43NDEgMTUyNS42MiAxNzQuMjE1QzE1MjAuODIgMTY5LjQxNCAxNTE3LjExIDE2My43MjIgMTUxNC41MSAxNTcuMTM4QzE1MTEuOSAxNTAuNTU0IDE1MTAuNiAxNDMuNTU5IDE1MTAuNiAxMzYuMTUyQzE1MTAuNiAxMjkuMDIgMTUxMS45IDEy''@;'; + put 'put ''Mi4zNjcgMTUxNC41MSAxMTYuMTk1QzE1MTcuMTEgMTA5Ljg4NSAxNTIwLjYxIDEwNC4zOTkgMTUyNSA5OS43MzUyQzE1MjkuNTMgOTUuMDcxNyAxNTM0LjgxIDkxLjQzNjggMTU0MC44NCA4OC44MzA3QzE1NDYuODggODYuMDg3NCAxNTUzLjMyIDg0LjcxNTggMTU2MC4xOCA4NC43MTU4QzE1''@;'; + put 'put ''NjYuNDkgODQuNzE1OCAxNTcyLjMyIDg1Ljg4MTcgMTU3Ny42NyA4OC4yMTM1QzE1ODMuMTYgOTAuNTQ1MyAxNTg3Ljk2IDkzLjc2ODYgMTU5Mi4wNyA5Ny44ODM1QzE1OTMuODYgOTkuNTI5NSAxNTk1LjU3IDEwMS40NSAxNTk3LjIyIDEwMy42NDRDMTU5OC44NiAxMDUuODM5IDE2MDAuMyAx''@;'; + put 'put ''MDguMzc3IDE2MDEuNTQgMTExLjI1N0MxNjAyLjc3IDExNC4xMzcgMTYwMy43MyAxMTcuNDk4IDE2MDQuNDIgMTIxLjMzOEMxNjA1LjI0IDEyNS4wNDIgMTYwNS42NSAxMjkuMjk0IDE2MDUuNjUgMTM0LjA5NUMxNjA1LjY1IDEzNy4zODcgMTYwNS40NSAxNDAuOTUzIDE2MDUuMDMgMTQ0Ljc5''@;'; + put 'put ''M0MxNjA0Ljc2IDE0Ni45ODggMTYwMy41MyAxNDguMDg1IDE2MDEuMzMgMTQ4LjA4NUgxNTM3Ljc2Wk0xNTU5LjU2IDEwOC43ODhDMTU1My44IDEwOC43ODggMTU0OS4wNyAxMTAuMzY1IDE1NDUuMzcgMTEzLjUyQzE1NDEuNjYgMTE2LjY3NSAxNTM5LjA2IDEyMC41ODQgMTUzNy41NSAxMjUu''@;'; + put 'put ''MjQ4SDE1ODAuNzZDMTU3OS4yNSAxMjAuODU4IDE1NzYuNzEgMTE3LjAxOCAxNTczLjE0IDExMy43MjZDMTU2OS43MSAxMTAuNDM0IDE1NjUuMTkgMTA4Ljc4OCAxNTU5LjU2IDEwOC43ODhaTTE2ODguNTEgMTA4LjE3MUMxNjg4LjEgMTA5LjI2OCAxNjg3LjQxIDExMC4wMjIgMTY4Ni40NSAx''@;'; + put 'put ''MTAuNDM0QzE2ODUuNDkgMTEwLjg0NSAxNjg0LjQ2IDExMC43NzcgMTY4My4zNyAxMTAuMjI4QzE2ODIuMjcgMTA5LjY4IDE2ODAuOSAxMDkuMiAxNjc5LjI1IDEwOC43ODhDMTY3Ny43NCAxMDguMzc3IDE2NzYuMSAxMDguMTcxIDE2NzQuMzEgMTA4LjE3MUMxNjcxLjI5IDEwOC4xNzEgMTY2''@;'; + put 'put ''OC40MSAxMDguNzg4IDE2NjUuNjcgMTEwLjAyMkMxNjYyLjkzIDExMS4yNTcgMTY2MC40NiAxMTIuOTcyIDE2NTguMjYgMTE1LjE2NkMxNjU2LjIxIDExNy4yMjQgMTY1NC41NiAxMTkuNjkzIDE2NTMuMzMgMTIyLjU3M0MxNjUyLjA5IDEyNS4zMTYgMTY1MS40NyAxMjguMTk3IDE2NTEuNDcg''@;'; + put 'put ''MTMxLjIxNEwxNjUxLjA2IDE4NC4wOTFDMTY1MS4wNiAxODUuMTg4IDE2NTAuNzIgMTg2LjE0OCAxNjUwLjAzIDE4Ni45NzFDMTY0OS4zNSAxODcuNjU3IDE2NDguNDYgMTg4IDE2NDcuMzYgMTg4SDE2MzEuMTFDMTYzMC4wMSAxODggMTYyOS4wNSAxODcuNjU3IDE2MjguMjMgMTg2Ljk3MUMx''@;'; + put 'put ''NjI3LjU0IDE4Ni4xNDggMTYyNy4yIDE4NS4xODggMTYyNy4yIDE4NC4wOTFWODkuMDM2NUMxNjI3LjIgODcuOTM5MSAxNjI3LjU0IDg3LjA0NzYgMTYyOC4yMyA4Ni4zNjE4QzE2MjkuMDUgODUuNTM4OCAxNjMwLjAxIDg1LjEyNzMgMTYzMS4xMSA4NS4xMjczSDE2NDcuMzZDMTY0OC40NiA4''@;'; + put 'put ''NS4xMjczIDE2NDkuMzUgODUuNTM4OCAxNjUwLjAzIDg2LjM2MThDMTY1MC43MiA4Ny4wNDc2IDE2NTEuMDYgODcuOTM5MSAxNjUxLjA2IDg5LjAzNjVWOTQuNTkxNkMxNjU1LjA0IDkxLjcxMTEgMTY1OS4yOSA4OS4zNzk0IDE2NjMuODIgODcuNTk2MkMxNjY4LjM1IDg1LjY3NTkgMTY3My4y''@;'; + put 'put ''MiA4NC43MTU4IDE2NzguNDMgODQuNzE1OEMxNjgzLjc4IDg0LjcxNTggMTY4OC40NCA4NS43NDQ1IDE2OTIuNDIgODcuODAyQzE2OTQuMzQgODkuMDM2NSAxNjk0Ljk2IDkwLjYxMzggMTY5NC4yNyA5Mi41MzQxTDE2ODguNTEgMTA4LjE3MVoiIGZpbGw9IiM4RUM2M0YiLz4KPC9nPgo8ZGVm''@;'; + put 'put ''cz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8xMDVfNyI+CjxyZWN0IHdpZHRoPSIxNjg5IiBoZWlnaHQ9IjI0MCIgZmlsbD0id2hpdGUiLz4KPC9jbGlwUGF0aD4KPC9kZWZzPgo8L3N2Zz4K'';'; + put 'run;'; + put '%sasjsout(SVG64)'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=datacontroller.cf179cd89d280a56-svg; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put 'options mprint;'; + put '%macro mp_replace(infile,'; + put 'findvar=,'; + put 'replacevar=,'; + put 'outfile=0'; + put ')/*/STORE SOURCE*/;'; + put '%local inref outref dttm ds1 rc;'; + put '/* create filerefs */'; + put '%let rc=%sysfunc(filename(inref,,temp,lrecl=200));'; + put '%let rc=%sysfunc(filename(outref,,temp,lrecl=200));'; + put '%if &outfile=0 %then %let outfile=&infile;'; + put '/* uniquely named 32 char datasets */'; + put '%let ds1=all%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,29);'; + put '%let ds2=start%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,27);'; + put '/* START */'; + put '%let dttm=%sysfunc(datetime());'; + put 'filename &inref &infile lrecl=1 recfm=n;'; + put 'data &ds1;'; + put 'infile &inref;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'run;'; + put 'data &ds2;'; + put '/* set find string to length in bytes to cover trailing spaces */'; + put 'length string $ %length(%superq(&findvar));'; + put 'string =symget("&findvar");'; + put 'drop string;'; + put 'firstchar=char(string,1);'; + put 'findlen=lengthm(string); /* <- for trailing bytes */'; + put 'do _N_=1 to nobs;'; + put 'set &ds1 nobs=nobs point=_N_;'; + put 'if sourcechar=firstchar then do;'; + put 'pos=1;'; + put 's=0;'; + put 'do point=_N_ to min(_N_ + findlen -1,nobs);'; + put 'set &ds1 point=point;'; + put 'if sourcechar=char(string, pos) then s + 1;'; + put 'else goto _leave_;'; + put 'pos+1;'; + put 'end;'; + put '_leave_:'; + put 'if s=findlen then do;'; + put 'START =_N_;'; + put '_N_ =_N_+ s - 1;'; + put 'STOP =_N_;'; + put 'output;'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'stop;'; + put 'keep START STOP;'; + put 'run;'; + put 'data &ds1;'; + put 'declare hash HS(dataset:"&ds2(keep=start)");'; + put 'HS.defineKey("start");'; + put 'HS.defineDone();'; + put 'declare hash HE(dataset:"&ds2(keep=stop)");'; + put 'HE.defineKey("stop");'; + put 'HE.defineDone();'; + put 'do until(eof);'; + put 'set &ds1 end=eof curobs =n;'; + put 'start = ^HS.check(key:n);'; + put 'stop = ^HE.check(key:n);'; + put 'length strt $ 1;'; + put 'strt =put(start,best. -L);'; + put 'retain out 1;'; + put 'if out then output;'; + put 'if start then out=0;'; + put 'if stop then out=1;'; + put 'end;'; + put 'stop;'; + put 'keep sourcechar strt;'; + put 'run;'; + put 'filename &outref &outfile recfm=n;'; + put 'data _null_;'; + put 'length replace $ %length(%superq(&replacevar));'; + put 'replace=symget("&replacevar");'; + put 'file &outref;'; + put 'do until(eof);'; + put 'set &ds1 end=eof;'; + put 'if strt ="1" then put replace char.;'; + put 'else put sourcechar char1.;'; + put 'end;'; + put 'stop;'; + put 'run;'; + put '/* END */'; + put '%put &sysmacroname took %sysevalf(%sysfunc(datetime())-&dttm) seconds to run;'; + put '%mend mp_replace;'; + put '%macro sasjsout(type,fref=sasjs);'; + put '%global sysprocessmode SYS_JES_JOB_URI;'; + put '%if &type=JS or &type=JS64 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header('; + put 'Content-type,application/javascript%str(;)charset=UTF-8'; + put '));'; + put '%end;'; + put '%else %if &type=CSS or &type=CSS64 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,text/css));'; + put '%end;'; + put '%else %if &type=PNG or &type=GIF or &type=JPEG or &type=JPG %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,image/%lowcase(&type)));'; + put '%end;'; + put '%else %if &type=SVG or &type=SVG64 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,image/svg+xml));'; + put '%end;'; + put '%else %if &type=ICO %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,image/vnd.microsoft.icon));'; + put '%end;'; + put '%else %if &type=JSON %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,application/json));'; + put '%end;'; + put '%else %if &type=MP3 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/mpeg));'; + put '%end;'; + put '%else %if &type=WAV %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/x-wav));'; + put '%end;'; + put '%else %if &type=OGG %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/ogg));'; + put '%end;'; + put '%else %if &type=WOFF or &type=WOFF2 or &type=TTF %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,font/%lowcase(&type)));'; + put '%end;'; + put '%else %if &type=MP4 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,video/mp4));'; + put '%end;'; + put '%if &type=HTML %then %do;'; + put '/*'; + put 'We need to perform some substitutions -eg to get the APPLOC and SERVERTYPE.'; + put 'Therefore the developer should avoid writing lines that exceed 32k'; + put 'characters (eg base64 encoded images) as they will get truncated when passing'; + put 'through the datastep. This could of course be re-written using LUA, removing'; + put 'the length restriction. Pull requests are welcome!'; + put '*/'; + put 'filename _sjsout temp;'; + put 'data _null_;'; + put 'file _sjsout lrecl=32767 encoding=''utf-8'';'; + put 'infile &fref lrecl=32767;'; + put 'input;'; + put 'length appLoc expanded_path $1048;'; + put 'if _n_=1 then do;'; + put 'retain pgm "&_program" appLoc expanded_path;'; + put '/* index is deployed in the /services/ folder under the appLoc */'; + put 'appLoc=substr(pgm,1,find(pgm,''/services/'')-1);'; + put 'expanded_path=cats(''?_PROGRAM='',appLoc,''/services/'');'; + put 'end;'; + put 'if find(_infile_,'' appLoc: '') then put '' appLoc: '' apploc:$quote1048. '','';'; + put 'else if find(_infile_,'' serverType: '') then do;'; + put 'put '' serverType: "SAS9" ,'';'; + put 'end;'; + put 'else if find(_infile_,'' serverUrl: '') then do;'; + put '/* nothing - we are streaming, so remove to default as hostname */'; + put 'end;'; + put 'else do;'; + put '/* More recently, SASjs apps avoid inline JS to allow strict CSP */'; + put 'length infile in1 in2 $32767;'; + put 'infile=cats(_infile_);'; + put 'spos1=index(upcase(infile),''APPLOC="'');'; + put 'if spos1>0 then do;'; + put 'in1=substr(infile,1,spos1+7);'; + put 'in2=subpad(infile,spos1+8);'; + put 'in2=substr(in2,index(in2,''"''));'; + put 'infile=cats(in1,appLoc,in2);'; + put 'putlog "new apploc: " infile=;'; + put 'end;'; + put '/* find & replace serverType in HTML attributes */'; + put 'spos2=index(upcase(infile),''SERVERTYPE="'');'; + put 'if spos2>0 then do;'; + put 'in1=substr(infile,1,spos2+11);'; + put 'in2=subpad(infile,spos2+12);'; + put 'in2=substr(in2,index(in2,''"''));'; + put 'infile=cats(in1,"SAS9",in2);'; + put 'putlog "new servertype: " infile=;'; + put 'end;'; + put '/* find & replace serverUrl in HTML attributes */'; + put 'spos3=index(upcase(infile),''SERVERURL="'');'; + put 'if spos3>0 then do;'; + put 'in1=substr(infile,1,spos3+10);'; + put 'in2=subpad(infile,spos3+11);'; + put 'in2=substr(in2,index(in2,''"''));'; + put 'infile=cats(in1,in2);'; + put 'putlog "new serverUrl: " infile=;'; + put 'end;'; + put 'if sum(spos1,spos2,spos3)>0 then put infile;'; + put 'else do;'; + put '/* during SAS9 sasjs compile, dependencies get static GUID */'; + put 'infile=tranwrd(_infile_,''?_PROGRAM=pZKd6F95jECvRQlN0LCfdA=='',cats(expanded_path));'; + put 'put infile;'; + put 'end;'; + put 'end;'; + put 'run;'; + put '%let fref=_sjsout;'; + put '%end;'; + put '%else %if &type=JS64 or &type=CSS64 %then %do;'; + put 'options nobomfile;'; + put '%let fvar=pZKd6F95jECvRQlN0LCfdA==;'; + put '%let stgfile="%sysfunc(pathname(work))/stgfile.txt";'; + put '%let newfile="%sysfunc(pathname(work))/newfile.txt";'; + put '/* convert from base64 */'; + put 'filename _out64 &stgfile encoding=''utf-8'';'; + put 'data _null_;'; + put 'length filein 8 fileout 8;'; + put 'filein = fopen("&fref",''I'',4,''B'');'; + put 'fileout = fopen("_out64",''A'',1,''B'');'; + put 'char= ''20''x;'; + put 'do while(fread(filein)=0);'; + put 'length raw $4 ;'; + put 'do i=1 to 4;'; + put 'rc=fget(filein,char,1);'; + put 'substr(raw,i,1)=char;'; + put 'end;'; + put 'rc = fput(fileout, input(raw,$base64X4.));'; + put 'rc =fwrite(fileout);'; + put 'end;'; + put 'rc = fclose(filein);'; + put 'rc = fclose(fileout);'; + put 'run;'; + put '/* get appLoc from _program */'; + put 'data _null_;'; + put 'pgm="&_program";'; + put 'appLoc=substr(pgm,1,find(pgm,''/services/'')-1);'; + put 'call symputx(''apploc'',cats(appLoc,''/services/''));'; + put 'run;'; + put '%put &=fvar;'; + put '%put &=apploc;'; + put '/* replace the GUID with appLoc */'; + put '%mp_replace(&stgfile,'; + put 'findvar=fvar,'; + put 'replacevar=apploc,'; + put 'outfile=&newfile'; + put ')'; + put 'filename &fref &newfile encoding=''utf-8'';'; + put '%end;'; + put '/**'; + put '* In SAS9, JS & CSS files are base64 encoded to avoid UTF8 issues in WLATIN1'; + put '* metadata - so in this case, decode and stream byte by byte.'; + put '* */'; + put '%if &type=GIF or &type=PNG or &type=JPG or &type=JPEG or &type=ICO or &type=MP3'; + put 'or &type=WAV or &type=OGG or &type=WOFF or &type=WOFF2 or &type=TTF or &type=MP4'; + put 'or &type=SVG64'; + put '%then %do;'; + put 'data _null_;'; + put 'length filein 8 fileout 8;'; + put 'filein = fopen("&fref",''I'',4,''B'');'; + put 'fileout = fopen("_webout",''A'',1,''B'');'; + put 'char = ''20''x;'; + put 'do while(fread(filein)=0);'; + put 'length raw $4 ;'; + put 'do i=1 to 4;'; + put 'rc=fget(filein,char,1);'; + put 'substr(raw,i,1)=char;'; + put 'end;'; + put 'rc = fput(fileout, input(raw,$base64X4.));'; + put 'rc = fwrite(fileout);'; + put 'end;'; + put 'rc = fclose(filein);'; + put 'rc = fclose(fileout);'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%put streaming to _webout;'; + put 'data _null_;'; + put 'infile &fref lrecl=1 recfm=n;'; + put 'file _webout mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put '%end;'; + put '%mend sasjsout;'; + put 'filename sasjs temp lrecl=99999999;'; + put 'data _null_;'; + put 'file sasjs;'; + put 'put ''PHN2ZyB3aWR0aD0iMTY5MCIgaGVpZ2h0PSIyNDAiIHZpZXdCb3g9IjAgMCAxNjkwIDI0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzEwNV83KSI+CjxwYXRoIGQ9Ik0xMjQuOSA1NS4yMDAxQzEyOC4y''@;'; + put 'put ''IDU1LjYwMDEgMTMxLjQgNTUuOTAwMSAxMzQuNyA1Ni4zMDAxQzE0Mi42IDU3LjQwMDEgMTUwLjMgNTguOTAwMSAxNTcuNSA2Mi42MDAxQzE1OS42IDYzLjcwMDEgMTYxLjYgNjQuOTAwMSAxNjMuMSA2Ni44MDAxQzE2NS41IDY5LjYwMDEgMTY1LjQgNzIuNjAwMSAxNjMgNzUuNDAwMUMxNjAu''@;'; + put 'put ''NSA3OC4yMDAxIDE1Ny4zIDc5LjgwMDEgMTUzLjkgODEuMTAwMUMxNDYgODQuMjAwMSAxMzcuNyA4NS42MDAxIDEyOS4zIDg2LjMwMDFDMTE1LjYgODcuNDAwMSAxMDIuMSA4Ni45MDAxIDg4LjcgODMuNzAwMUM4NC4zIDgyLjcwMDEgODAgODEuMzAwMSA3Ni4xIDc5LjEwMDFDNzQuNiA3OC4z''@;'; + put 'put ''MDAxIDczLjIgNzcuMzAwMSA3MS45IDc2LjEwMDFDNjguMyA3Mi42MDAxIDY4LjMgNjguOTAwMSA3MiA2NS42MDAxQzc2IDYyLjAwMDEgODAuOSA2MC4zMDAxIDg1LjkgNTguOTAwMUM5Mi45IDU2LjkwMDEgMTAwIDU1LjkwMDEgMTA3LjIgNTUuNDAwMUMxMDcuOCA1NS40MDAxIDEwOC41IDU1''@;'; + put 'put ''LjYwMDEgMTA5IDU1LjEwMDFDMTE0LjIgNTUuMjAwMSAxMTkuNiA1NS4yMDAxIDEyNC45IDU1LjIwMDFaIiBmaWxsPSIjRTBFMEUwIi8+CjxwYXRoIGQ9Ik02OS4yMDAxIDEzNy4zQzc1LjYwMDEgMTQ1LjUgODQuNzAwMSAxNDguNSA5NC4xMDAxIDE1MC41QzExMi43IDE1NC41IDEzMS4zIDE1''@;'; + put 'put ''NCAxNDkuNCAxNDcuNkMxNTUgMTQ1LjYgMTYwLjIgMTQyLjkgMTYzLjkgMTM3LjlDMTY0LjUgMTM3LjEgMTY0LjggMTM3LjUgMTY1LjEgMTM4LjFDMTY1LjcgMTM5LjQgMTY2IDE0MC43IDE2NiAxNDIuMUMxNjYgMTQ3IDE2NiAxNTIgMTY2IDE1Ni45QzE2NiAxNjAuMSAxNjQuNSAxNjIuNiAx''@;'; + put 'put ''NjIuMyAxNjQuOEMxNTcuNyAxNjkuNCAxNTEuOSAxNzEuOSAxNDUuOCAxNzMuOEMxMzMuNSAxNzcuNiAxMjAuOSAxNzguNCAxMDguMiAxNzcuNUM5OC43MDAxIDE3Ni44IDg5LjUgMTc1IDgwLjggMTcxLjFDNzcuMSAxNjkuNCA3My43MDAxIDE2Ny40IDcxLjAwMDEgMTY0LjNDNjguOTAwMSAx''@;'; + put 'put ''NjEuOSA2Ny44IDE1OS4yIDY3LjggMTU2QzY3LjkgMTUxLjUgNjcuOCAxNDcgNjcuOCAxNDIuNUM2Ny44IDE0MC43IDY4LjEwMDEgMTM5IDY5LjIwMDEgMTM3LjNaIiBmaWxsPSIjOEVDNjNGIi8+CjxwYXRoIGQ9Ik02OS4yOTk5IDEwNi40Qzc0LjU5OTkgMTEzLjUgODEuOTk5OSAxMTYuNSA4''@;'; + put 'put ''OS44OTk5IDExOC42QzEwOC44IDEyMy42IDEyNy43IDEyMy41IDE0Ni40IDExNy45QzE1Mi42IDExNi4xIDE1OC40IDExMy40IDE2Mi45IDEwOC41QzE2My41IDEwNy45IDE2My45IDEwNi41IDE2NC42IDEwNi43QzE2NS42IDEwNyAxNjUuNiAxMDguNCAxNjUuOSAxMDkuNUMxNjYuMyAxMTEu''@;'; + put 'put ''MiAxNjYuMSAxMTIuOSAxNjYuMSAxMTQuNkMxNjYuMSAxMTggMTY2IDEyMS4zIDE2Ni4xIDEyNC43QzE2Ni4zIDEyOC45IDE2NC42IDEzMi4yIDE2MS41IDEzNC45QzE1Ni44IDEzOS4xIDE1MS4xIDE0MS42IDE0NSAxNDMuMkMxMjQuNSAxNDguNyAxMDQuMSAxNDguNiA4My45OTk5IDE0MS42''@;'; + put 'put ''Qzc5LjA5OTkgMTM5LjkgNzQuNTk5OSAxMzcuNSA3MC45OTk5IDEzMy42QzY4Ljc5OTkgMTMxLjIgNjcuNyAxMjguNCA2Ny43IDEyNS4xQzY3LjggMTIwLjcgNjcuNyAxMTYuMiA2Ny43IDExMS44QzY3LjggMTEwIDY4LjA5OTkgMTA4LjIgNjkuMjk5OSAxMDYuNFoiIGZpbGw9IiNFMEUwRTAi''@;'; + put 'put ''Lz4KPHBhdGggZD0iTTY5LjEgNzYuN0M3MC42IDgxLjEgNzQuMiA4My4wOTk5IDc4IDg0Ljg5OTlDODQuOCA4OC4wOTk5IDkyLjEgODkuNiA5OS40IDkwLjVDMTEzLjkgOTIuMyAxMjguNCA5Mi4xIDE0Mi43IDg5LjFDMTQ4LjUgODcuOSAxNTQuMSA4Ni4zIDE1OS4yIDgzLjFDMTYyLjEgODEu''@;'; + put 'put ''MyAxNjMuNiA3OS42IDE2NC42IDc2LjhDMTY1LjYgNzguMiAxNjUuOSA3OS43IDE2NS45IDgxLjJDMTY1LjkgODYuMiAxNjYgOTEuMSAxNjUuOSA5Ni4xQzE2NS44IDEwMC4zIDE2My40IDEwMy4zIDE2MC4zIDEwNS44QzE1NC41IDExMC40IDE0Ny43IDExMi44IDE0MC42IDExNC40QzEyMS44''@;'; + put 'put ''IDExOC41IDEwMy4yIDExOC4yIDg0LjkgMTEyQzgwLjEgMTEwLjQgNzUuNSAxMDguMSA3MS44IDEwNC41QzY5IDEwMS44IDY3LjUgOTguNyA2Ny42IDk0LjdDNjcuNyA5MC40IDY3LjYgODYuMSA2Ny42IDgxLjhDNjcuOCA3OS45IDY4LjEgNzguMyA2OS4xIDc2LjdaIiBmaWxsPSIjOEVDNjNG''@;'; + put 'put ''Ii8+CjxwYXRoIGQ9Ik0xODMuOSAyMTAuOUMyMDAuMiAyMTEuOCAyMDguOSAxOTEuOCAxOTcuMSAxODAuNUMxODQuNyAxNjguNiAxNjQuMyAxNzkuNyAxNjcuNSAxOTYuNUM5My44IDI0My41IC0wLjk5OTk4MSAxNzMuMiAyNiA4Ny44MDAxTDcuODAwMDIgNzUuNjAwMUMtMzMuMSAxODQuMyA5''@;'; + put 'put ''Mi44IDI3Ni4yIDE4My45IDIxMC45Wk0xNzguNyAxODcuNEMxODYuMyAxNzkuNSAxOTguNCAxOTAuNSAxOTEuMyAxOTguOEMxODMuOCAyMDcuNSAxNzAuNiAxOTUuOCAxNzguNyAxODcuNFoiIGZpbGw9IiNFMEUwRTAiLz4KPHBhdGggZD0iTTM1LjIgNTAuNzAwMUM0Ni45IDYxLjkwMDEgNjYu''@;'; + put 'put ''MiA1Mi43MDAxIDY1LjEgMzYuNzAwMUMxMzguNyAtMTAuNyAyMzQgNTkuNTAwMSAyMDcgMTQ1LjJMMjI1LjIgMTU3LjRDMjY0LjkgNTEuODAwMSAxNDQuNCAtNDMuMjk5OSA1MS4yIDIwLjYwMDFDMzMuNyAxNy4wMDAxIDIyLjQgMzguNDAwMSAzNS4yIDUwLjcwMDFaTTUzLjYgNDMuODAwMUM0''@;'; + put 'put ''NS44IDUxLjkwMDEgMzMuNSA0MC4xMDAxIDQxLjMgMzIuMDAwMUM0OS4xIDIzLjkwMDEgNjEuNCAzNS43MDAxIDUzLjYgNDMuODAwMVoiIGZpbGw9IiM4RUM2M0YiLz4KPHBhdGggZD0iTTMyMy41NzUgNDcuODg3NEMzMjMuNTc1IDQ2Ljc5MDEgMzIzLjkxNyA0NS44OTg1IDMyNC42MDMgNDUu''@;'; + put 'put ''MjEyN0MzMjUuNDI2IDQ0LjM4OTcgMzI2LjM4NiA0My45NzgyIDMyNy40ODQgNDMuOTc4MkgzNjkuMDQ0QzM3OC45MiA0My45NzgyIDM4OC4wNDEgNDUuNzYxMyAzOTYuNDA4IDQ5LjMyNzZDNDA0LjkxMyA1Mi44OTM4IDQxMi4yNTEgNTcuOTAwMyA0MTguNDIzIDY0LjM0N0M0MjQuNTk2IDcw''@;'; + put 'put ''LjY1NjUgNDI5LjQ2NSA3OC4yMDA1IDQzMy4wMzEgODYuOTc5QzQzNi41OTcgOTUuNzU3NSA0MzguMzggMTA1LjQyOCA0MzguMzggMTE1Ljk4OUM0MzguMzggMTI2LjU1MSA0MzYuNTk3IDEzNi4yMjEgNDMzLjAzMSAxNDQuOTk5QzQyOS40NjUgMTUzLjc3OCA0MjQuNTk2IDE2MS4zOSA0MTgu''@;'; + put 'put ''NDIzIDE2Ny44MzdDNDEyLjI1MSAxNzQuMTQ2IDQwNC45MTMgMTc5LjA4NCAzOTYuNDA4IDE4Mi42NTFDMzg4LjA0MSAxODYuMjE3IDM3OC45MiAxODggMzY5LjA0NCAxODhIMzI3LjQ4NEMzMjYuMzg2IDE4OCAzMjUuNDI2IDE4Ny42NTcgMzI0LjYwMyAxODYuOTcxQzMyMy45MTcgMTg2LjE0''@;'; + put 'put ''OCAzMjMuNTc1IDE4NS4xODggMzIzLjU3NSAxODQuMDkxVjQ3Ljg4NzRaTTM0OS4yOTMgNjkuMjg0OVYxNjIuNjkzSDM2OS42NjJDMzc1LjgzNCAxNjIuNjkzIDM4MS40NTggMTYxLjUyNyAzODYuNTMzIDE1OS4xOTZDMzkxLjYwOCAxNTYuODY0IDM5NS45MjggMTUzLjY0MSAzOTkuNDk1IDE0''@;'; + put 'put ''OS41MjZDNDAzLjE5OCAxNDUuNDExIDQwNi4wMSAxNDAuNTQxIDQwNy45MyAxMzQuOTE4QzQwOS45ODggMTI5LjE1NyA0MTEuMDE2IDEyMi44NDcgNDExLjAxNiAxMTUuOTg5QzQxMS4wMTYgMTA5LjI2OCA0MDkuOTg4IDEwMy4wMjcgNDA3LjkzIDk3LjI2NjNDNDA2LjAxIDkxLjUwNTQgNDAz''@;'; + put 'put ''LjE5OCA4Ni41Njc1IDM5OS40OTUgODIuNDUyNkMzOTUuOTI4IDc4LjMzNzcgMzkxLjYwOCA3NS4xMTQzIDM4Ni41MzMgNzIuNzgyNkMzODEuNDU4IDcwLjQ1MDggMzc1LjgzNCA2OS4yODQ5IDM2OS42NjIgNjkuMjg0OUgzNDkuMjkzWk01MzEuMDkzIDE3Ny45MThDNTI3LjM4OSAxODAuNjYy''@;'; + put 'put ''IDUyMy4xMzcgMTgzLjEzMSA1MTguMzM3IDE4NS4zMjVDNTEzLjUzNiAxODcuMzgzIDUwOC43MzUgMTg4LjQxMSA1MDMuOTM1IDE4OC40MTFDNDk2LjgwMiAxODguNDExIDQ5MC4yMTggMTg3LjEwOCA0ODQuMTgzIDE4NC41MDJDNDc4LjE0OCAxODEuODk2IDQ3Mi45MzYgMTc4LjI2MSA0Njgu''@;'; + put 'put ''NTQ2IDE3My41OThDNDY0LjI5NCAxNjguOTM0IDQ2MC45MzQgMTYzLjQ0OCA0NTguNDY1IDE1Ny4xMzhDNDU1Ljk5NiAxNTAuODI5IDQ1NC43NjEgMTQzLjk3IDQ1NC43NjEgMTM2LjU2NEM0NTQuNzYxIDEyOS40MzEgNDU2LjA2NCAxMjIuNzc5IDQ1OC42NzEgMTE2LjYwNkM0NjEuMjc3IDEx''@;'; + put 'put ''MC4yOTcgNDY0Ljg0MyAxMDQuODEgNDY5LjM2OSAxMDAuMTQ3QzQ3My44OTYgOTUuMzQ2IDQ3OS4xMDggOTEuNTc0IDQ4NS4wMDYgODguODMwN0M0OTEuMDQxIDg2LjA4NzQgNDk3LjQ4OCA4NC43MTU4IDUwNC4zNDYgODQuNzE1OEM1MDkuMTQ3IDg0LjcxNTggNTEzLjg3OSA4NS44MTMxIDUx''@;'; + put 'put ''OC41NDIgODguMDA3N0M1MjMuMjA2IDkwLjA2NTIgNTI3LjM4OSA5Mi40NjU1IDUzMS4wOTMgOTUuMjA4OFY4OS4wMzY1QzUzMS4wOTMgODcuOTM5MSA1MzEuNDM2IDg3LjA0NzYgNTMyLjEyMiA4Ni4zNjE4QzUzMi45NDUgODUuNTM4OCA1MzMuOTA1IDg1LjEyNzMgNTM1LjAwMiA4NS4xMjcz''@;'; + put 'put ''SDU1MS4wNUM1NTMuNjU2IDg1LjEyNzMgNTU0Ljk1OSA4Ni40MzAzIDU1NC45NTkgODkuMDM2NVYxODQuMDkxQzU1NC45NTkgMTg2LjY5NyA1NTMuNjU2IDE4OCA1NTEuMDUgMTg4SDUzNS4wMDJDNTMzLjkwNSAxODggNTMyLjk0NSAxODcuNjU3IDUzMi4xMjIgMTg2Ljk3MUM1MzEuNDM2IDE4''@;'; + put 'put ''Ni4xNDggNTMxLjA5MyAxODUuMTg4IDUzMS4wOTMgMTg0LjA5MVYxNzcuOTE4Wk00NzkuNjU3IDEzNi41NjRDNDc5LjY1NyAxNDAuMjY3IDQ4MC4zNDIgMTQzLjc2NSA0ODEuNzE0IDE0Ny4wNTdDNDgzLjA4NiAxNTAuMjExIDQ4NC45MzcgMTUzLjAyMyA0ODcuMjY5IDE1NS40OTJDNDg5LjYw''@;'; + put 'put ''MSAxNTcuOTYxIDQ5Mi4yNzYgMTU5Ljk1IDQ5NS4yOTMgMTYxLjQ1OUM0OTguNDQ4IDE2Mi44MyA1MDEuNzQgMTYzLjUxNiA1MDUuMTY5IDE2My41MTZDNTA4Ljg3MiAxNjMuNTE2IDUxMi4yMzMgMTYyLjgzIDUxNS4yNTEgMTYxLjQ1OUM1MTguMjY4IDE1OS45NSA1MjAuODc0IDE1Ny45NjEg''@;'; + put 'put ''NTIzLjA2OSAxNTUuNDkyQzUyNS40MDEgMTUzLjAyMyA1MjcuMTg0IDE1MC4yMTEgNTI4LjQxOCAxNDcuMDU3QzUyOS42NTMgMTQzLjc2NSA1MzAuMjcgMTQwLjI2NyA1MzAuMjcgMTM2LjU2NEM1MzAuMjcgMTMyLjg2IDUyOS42NTMgMTI5LjQzMSA1MjguNDE4IDEyNi4yNzZDNTI3LjE4NCAx''@;'; + put 'put ''MjIuOTg0IDUyNS40MDEgMTIwLjEwNCA1MjMuMDY5IDExNy42MzVDNTIwLjg3NCAxMTUuMTY2IDUxOC4yNjggMTEzLjI0NiA1MTUuMjUxIDExMS44NzRDNTEyLjIzMyAxMTAuMzY1IDUwOC44NzIgMTA5LjYxMSA1MDUuMTY5IDEwOS42MTFDNTAxLjc0IDEwOS42MTEgNDk4LjQ0OCAxMTAuMzY1''@;'; + put 'put ''IDQ5NS4yOTMgMTExLjg3NEM0OTIuMjc2IDExMy4yNDYgNDg5LjYwMSAxMTUuMTY2IDQ4Ny4yNjkgMTE3LjYzNUM0ODQuOTM3IDEyMC4xMDQgNDgzLjA4NiAxMjIuOTg0IDQ4MS43MTQgMTI2LjI3NkM0ODAuMzQyIDEyOS40MzEgNDc5LjY1NyAxMzIuODYgNDc5LjY1NyAxMzYuNTY0Wk01NzQu''@;'; + put 'put ''NDA3IDg5LjAzNjVDNTc0LjQwNyA4Ny45MzkxIDU3NC43NSA4Ny4wNDc2IDU3NS40MzYgODYuMzYxOEM1NzYuMTIyIDg1LjUzODggNTc3LjAxMyA4NS4xMjczIDU3OC4xMTEgODUuMTI3M0g1OTMuMzM2VjU4LjE3NDZDNTkzLjMzNiA1Ny4wNzczIDU5My42NzkgNTYuMTg1OCA1OTQuMzY0IDU1''@;'; + put 'put ''LjQ5OTlDNTk1LjE4NyA1NC42NzcgNTk2LjE0OCA1NC4yNjU1IDU5Ny4yNDUgNTQuMjY1NUg2MTMuMjkzQzYxNS44OTkgNTQuMjY1NSA2MTcuMjAyIDU1LjU2ODUgNjE3LjIwMiA1OC4xNzQ2Vjg1LjEyNzNINjM1LjMwOEM2MzYuNDA1IDg1LjEyNzMgNjM3LjI5NyA4NS41Mzg4IDYzNy45ODIg''@;'; + put 'put ''ODYuMzYxOEM2MzguNjY4IDg3LjA0NzYgNjM5LjAxMSA4Ny45MzkxIDYzOS4wMTEgODkuMDM2NVYxMDQuMjYyQzYzOS4wMTEgMTA1LjM1OSA2MzguNjY4IDEwNi4yNSA2MzcuOTgyIDEwNi45MzZDNjM3LjI5NyAxMDcuNjIyIDYzNi40MDUgMTA3Ljk2NSA2MzUuMzA4IDEwNy45NjVINjE3LjIw''@;'; + put 'put ''MlYxODQuMDkxQzYxNy4yMDIgMTg2LjY5NyA2MTUuODk5IDE4OCA2MTMuMjkzIDE4OEg1OTcuMjQ1QzU5Ni4xNDggMTg4IDU5NS4xODcgMTg3LjY1NyA1OTQuMzY0IDE4Ni45NzFDNTkzLjY3OSAxODYuMTQ4IDU5My4zMzYgMTg1LjE4OCA1OTMuMzM2IDE4NC4wOTFWMTA3Ljk2NUg1NzguMTEx''@;'; + put 'put ''QzU3Ny4wMTMgMTA3Ljk2NSA1NzYuMTIyIDEwNy42MjIgNTc1LjQzNiAxMDYuOTM2QzU3NC43NSAxMDYuMjUgNTc0LjQwNyAxMDUuMzU5IDU3NC40MDcgMTA0LjI2MlY4OS4wMzY1Wk03MjkuNjkzIDE3Ny45MThDNzI1Ljk5IDE4MC42NjIgNzIxLjczOCAxODMuMTMxIDcxNi45MzcgMTg1LjMy''@;'; + put 'put ''NUM3MTIuMTM3IDE4Ny4zODMgNzA3LjMzNiAxODguNDExIDcwMi41MzUgMTg4LjQxMUM2OTUuNDAzIDE4OC40MTEgNjg4LjgxOSAxODcuMTA4IDY4Mi43ODQgMTg0LjUwMkM2NzYuNzQ4IDE4MS44OTYgNjcxLjUzNiAxNzguMjYxIDY2Ny4xNDcgMTczLjU5OEM2NjIuODk1IDE2OC45MzQgNjU5''@;'; + put 'put ''LjUzNCAxNjMuNDQ4IDY1Ny4wNjUgMTU3LjEzOEM2NTQuNTk2IDE1MC44MjkgNjUzLjM2MiAxNDMuOTcgNjUzLjM2MiAxMzYuNTY0QzY1My4zNjIgMTI5LjQzMSA2NTQuNjY1IDEyMi43NzkgNjU3LjI3MSAxMTYuNjA2QzY1OS44NzcgMTEwLjI5NyA2NjMuNDQzIDEwNC44MSA2NjcuOTcgMTAw''@;'; + put 'put ''LjE0N0M2NzIuNDk2IDk1LjM0NiA2NzcuNzA4IDkxLjU3NCA2ODMuNjA3IDg4LjgzMDdDNjg5LjY0MiA4Ni4wODc0IDY5Ni4wODggODQuNzE1OCA3MDIuOTQ3IDg0LjcxNThDNzA3Ljc0NyA4NC43MTU4IDcxMi40NzkgODUuODEzMSA3MTcuMTQzIDg4LjAwNzdDNzIxLjgwNyA5MC4wNjUyIDcy''@;'; + put 'put ''NS45OSA5Mi40NjU1IDcyOS42OTMgOTUuMjA4OFY4OS4wMzY1QzcyOS42OTMgODcuOTM5MSA3MzAuMDM2IDg3LjA0NzYgNzMwLjcyMiA4Ni4zNjE4QzczMS41NDUgODUuNTM4OCA3MzIuNTA1IDg1LjEyNzMgNzMzLjYwMyA4NS4xMjczSDc0OS42NTFDNzUyLjI1NyA4NS4xMjczIDc1My41NiA4''@;'; + put 'put ''Ni40MzAzIDc1My41NiA4OS4wMzY1VjE4NC4wOTFDNzUzLjU2IDE4Ni42OTcgNzUyLjI1NyAxODggNzQ5LjY1MSAxODhINzMzLjYwM0M3MzIuNTA1IDE4OCA3MzEuNTQ1IDE4Ny42NTcgNzMwLjcyMiAxODYuOTcxQzczMC4wMzYgMTg2LjE0OCA3MjkuNjkzIDE4NS4xODggNzI5LjY5MyAxODQu''@;'; + put 'put ''MDkxVjE3Ny45MThaTTY3OC4yNTcgMTM2LjU2NEM2NzguMjU3IDE0MC4yNjcgNjc4Ljk0MyAxNDMuNzY1IDY4MC4zMTUgMTQ3LjA1N0M2ODEuNjg2IDE1MC4yMTEgNjgzLjUzOCAxNTMuMDIzIDY4NS44NyAxNTUuNDkyQzY4OC4yMDEgMTU3Ljk2MSA2OTAuODc2IDE1OS45NSA2OTMuODk0IDE2''@;'; + put 'put ''MS40NTlDNjk3LjA0OSAxNjIuODMgNzAwLjM0IDE2My41MTYgNzAzLjc3IDE2My41MTZDNzA3LjQ3MyAxNjMuNTE2IDcxMC44MzMgMTYyLjgzIDcxMy44NTEgMTYxLjQ1OUM3MTYuODY5IDE1OS45NSA3MTkuNDc1IDE1Ny45NjEgNzIxLjY2OSAxNTUuNDkyQzcyNC4wMDEgMTUzLjAyMyA3MjUu''@;'; + put 'put ''Nzg0IDE1MC4yMTEgNzI3LjAxOSAxNDcuMDU3QzcyOC4yNTMgMTQzLjc2NSA3MjguODcgMTQwLjI2NyA3MjguODcgMTM2LjU2NEM3MjguODcgMTMyLjg2IDcyOC4yNTMgMTI5LjQzMSA3MjcuMDE5IDEyNi4yNzZDNzI1Ljc4NCAxMjIuOTg0IDcyNC4wMDEgMTIwLjEwNCA3MjEuNjY5IDExNy42''@;'; + put 'put ''MzVDNzE5LjQ3NSAxMTUuMTY2IDcxNi44NjkgMTEzLjI0NiA3MTMuODUxIDExMS44NzRDNzEwLjgzMyAxMTAuMzY1IDcwNy40NzMgMTA5LjYxMSA3MDMuNzcgMTA5LjYxMUM3MDAuMzQgMTA5LjYxMSA2OTcuMDQ5IDExMC4zNjUgNjkzLjg5NCAxMTEuODc0QzY5MC44NzYgMTEzLjI0NiA2ODgu''@;'; + put 'put ''MjAxIDExNS4xNjYgNjg1Ljg3IDExNy42MzVDNjgzLjUzOCAxMjAuMTA0IDY4MS42ODYgMTIyLjk4NCA2ODAuMzE1IDEyNi4yNzZDNjc4Ljk0MyAxMjkuNDMxIDY3OC4yNTcgMTMyLjg2IDY3OC4yNTcgMTM2LjU2NFoiIGZpbGw9IiNFMEUwRTAiLz4KPHBhdGggZD0iTTg3My4yMDYgNzQuMjIy''@;'; + put 'put ''OEM4NzIuNjU3IDc1LjA0NTggODcxLjkwMyA3NS41MjU4IDg3MC45NDMgNzUuNjYzQzg2OS45ODIgNzUuODAwMiA4NjkuMDIyIDc1LjU5NDQgODY4LjA2MiA3NS4wNDU4Qzg2NC45MDcgNzMuMTI1NSA4NjEuMTM1IDcxLjQ3OTUgODU2Ljc0NiA3MC4xMDc5Qzg1Mi4zNTcgNjguNzM2MiA4NDcu''@;'; + put 'put ''ODk5IDY4LjExOSA4NDMuMzczIDY4LjI1NjJDODM3LjQ3NSA2OC4yNTYyIDgzMS45ODggNjkuNTU5MiA4MjYuOTEzIDcyLjE2NTNDODIxLjk3NSA3NC42MzQzIDgxNy42NTQgNzguMDYzNCA4MTMuOTUxIDgyLjQ1MjZDODEwLjI0OCA4Ni43MDQ3IDgwNy4zNjcgOTEuNzExMSA4MDUuMzEgOTcu''@;'; + put 'put ''NDcyQzgwMy4yNTIgMTAzLjIzMyA4MDIuMjkyIDEwOS40MDUgODAyLjQyOSAxMTUuOTg5QzgwMi41NjYgMTIyLjg0NyA4MDMuNTk1IDEyOS4yMjUgODA1LjUxNSAxMzUuMTIzQzgwNy41NzMgMTQwLjg4NCA4MTAuMzg1IDE0NS44OTEgODEzLjk1MSAxNTAuMTQzQzgxNy41MTcgMTU0LjM5NSA4''@;'; + put 'put ''MjEuODM4IDE1Ny43NTUgODI2LjkxMyAxNjAuMjI0QzgzMS45ODggMTYyLjU1NiA4MzcuNjggMTYzLjcyMiA4NDMuOTkgMTYzLjcyMkM4NTAuMDI1IDE2My41ODUgODU1LjUxMiAxNjIuNTU2IDg2MC40NSAxNjAuNjM2Qzg2NS41MjUgMTU4LjcxNiA4NzAuNTMxIDE1NS45NzIgODc1LjQ2OSAx''@;'; + put 'put ''NTIuNDA2Qzg3Ni40MjkgMTUxLjcyIDg3Ny40NTggMTUxLjUxNCA4NzguNTU1IDE1MS43ODlDODc5LjY1MiAxNTEuOTI2IDg4MC41NDQgMTUyLjQ3NSA4ODEuMjMgMTUzLjQzNUw4OTEuMTA2IDE2OC4yNDhDODkyLjM0IDE3MC4xNjkgODkxLjk5NyAxNzEuODgzIDg5MC4wNzcgMTczLjM5MkM4''@;'; + put 'put ''ODIuNTMzIDE3OS4xNTMgODc1LjE5NSAxODMuMzM2IDg2OC4wNjIgMTg1Ljk0M0M4NjAuOTMgMTg4LjU0OSA4NTIuOTc0IDE4OS44NTIgODQ0LjE5NiAxODkuODUyQzgzMy42MzQgMTg5Ljk4OSA4MjQuMTAxIDE4OC4zNDMgODE1LjU5NyAxODQuOTE0QzgwNy4yMyAxODEuMzQ4IDgwMC4wMjkg''@;'; + put 'put ''MTc2LjM0MSA3OTMuOTk0IDE2OS44OTRDNzg4LjA5NiAxNjMuMzExIDc4My41MDEgMTU1LjQ5MiA3ODAuMjA5IDE0Ni40MzlDNzc3LjA1NCAxMzcuMzg3IDc3NS40MDggMTI3LjM3NCA3NzUuMjcxIDExNi40MDFDNzc1LjEzNCAxMDcuMDczIDc3Ni41NzQgOTguMDIwNyA3NzkuNTkyIDg5LjI0''@;'; + put 'put ''MjJDNzgyLjc0NiA4MC4zMjY2IDc4Ny4yMDQgNzIuMzcxMSA3OTIuOTY1IDY1LjM3NTdDNzk4LjcyNiA1OC4zODA0IDgwNS43MjEgNTIuNzU2NyA4MTMuOTUxIDQ4LjUwNDZDODIyLjE4MSA0NC4yNTI1IDgzMS40MzkgNDIuMTI2NSA4NDEuNzI3IDQyLjEyNjVDODQ4LjcyMiA0MS45ODkzIDg1''@;'; + put 'put ''NS41OCA0Mi44MTIzIDg2Mi4zMDEgNDQuNTk1NEM4NjkuMTU5IDQ2LjM3ODYgODc1Ljg4IDQ5LjY3MDUgODgyLjQ2NCA1NC40NzEyQzg4My40MjQgNTUuMTU3IDg4My45NzMgNTYuMDQ4NiA4ODQuMTEgNTcuMTQ1OUM4ODQuMjQ3IDU4LjEwNjEgODgzLjk3MyA1OS4wNjYyIDg4My4yODcgNjAu''@;'; + put 'put ''MDI2M0w4NzMuMjA2IDc0LjIyMjhaTTkwNi4yMTIgMTM2LjU2NEM5MDYuMjEyIDEyOS4yOTQgOTA3LjUxNSAxMjIuNTA0IDkxMC4xMjEgMTE2LjE5NUM5MTIuNzI3IDEwOS44ODUgOTE2LjIyNSAxMDQuMzk5IDkyMC42MTQgOTkuNzM1MkM5MjUuMTQgOTUuMDcxNyA5MzAuNDIxIDkxLjQzNjgg''@;'; + put 'put ''OTM2LjQ1NiA4OC44MzA3Qzk0Mi40OTIgODYuMDg3NCA5NDkuMDA3IDg0LjcxNTggOTU2LjAwMiA4NC43MTU4Qzk2Mi45OTggODQuNzE1OCA5NjkuNDQ0IDg2LjA4NzQgOTc1LjM0MiA4OC44MzA3Qzk4MS4zNzcgOTEuNDM2OCA5ODYuNTkgOTUuMDcxNyA5OTAuOTc5IDk5LjczNTJDOTk1LjUw''@;'; + put 'put ''NSAxMDQuMzk5IDk5OS4wMDMgMTA5Ljg4NSAxMDAxLjQ3IDExNi4xOTVDMTAwNC4wOCAxMjIuNTA0IDEwMDUuMzggMTI5LjI5NCAxMDA1LjM4IDEzNi41NjRDMTAwNS4zOCAxNDMuODMzIDEwMDQuMDggMTUwLjYyMyAxMDAxLjQ3IDE1Ni45MzJDOTk5LjAwMyAxNjMuMjQyIDk5NS41MDUgMTY4''@;'; + put 'put ''LjcyOSA5OTAuOTc5IDE3My4zOTJDOTg2LjU5IDE3OC4wNTYgOTgxLjM3NyAxODEuNzU5IDk3NS4zNDIgMTg0LjUwMkM5NjkuMzA3IDE4Ny4xMDggOTYyLjc5MiAxODguNDExIDk1NS43OTYgMTg4LjQxMUM5NDguODAxIDE4OC40MTEgOTQyLjI4NiAxODcuMTA4IDkzNi4yNTEgMTg0LjUwMkM5''@;'; + put 'put ''MzAuMjE1IDE4MS43NTkgOTI0LjkzNSAxNzguMDU2IDkyMC40MDggMTczLjM5MkM5MTYuMDE5IDE2OC43MjkgOTEyLjUyMSAxNjMuMjQyIDkwOS45MTUgMTU2LjkzMkM5MDcuNDQ2IDE1MC42MjMgOTA2LjIxMiAxNDMuODMzIDkwNi4yMTIgMTM2LjU2NFpNOTMxLjEwNyAxMzYuNTY0QzkzMS4x''@;'; + put 'put ''MDcgMTQwLjQwNCA5MzEuNzI0IDE0NC4wMzkgOTMyLjk1OSAxNDcuNDY4QzkzNC4xOTMgMTUwLjc2IDkzNS45MDggMTUzLjY0MSA5MzguMTAyIDE1Ni4xMDlDOTQwLjI5NyAxNTguNTc4IDk0Mi45MDMgMTYwLjU2NyA5NDUuOTIxIDE2Mi4wNzZDOTQ4LjkzOCAxNjMuNDQ4IDk1Mi4yMyAxNjQu''@;'; + put 'put ''MTM0IDk1NS43OTYgMTY0LjEzNEM5NTkuMzYzIDE2NC4xMzQgOTYyLjY1NSAxNjMuNDQ4IDk2NS42NzIgMTYyLjA3NkM5NjguODI3IDE2MC41NjcgOTcxLjUwMiAxNTguNTc4IDk3My42OTYgMTU2LjEwOUM5NzUuODkxIDE1My42NDEgOTc3LjYwNSAxNTAuNzYgOTc4Ljg0IDE0Ny40NjhDOTgw''@;'; + put 'put ''LjA3NCAxNDQuMDM5IDk4MC42OTIgMTQwLjQwNCA5ODAuNjkyIDEzNi41NjRDOTgwLjY5MiAxMzIuNzIzIDk4MC4wNzQgMTI5LjE1NyA5NzguODQgMTI1Ljg2NUM5NzcuNjA1IDEyMi40MzYgOTc1Ljg5MSAxMTkuNDg3IDk3My42OTYgMTE3LjAxOEM5NzEuNTAyIDExNC41NDkgOTY4LjgyNyAx''@;'; + put 'put ''MTIuNjI5IDk2NS42NzIgMTExLjI1N0M5NjIuNjU1IDEwOS43NDggOTU5LjM2MyAxMDguOTk0IDk1NS43OTYgMTA4Ljk5NEM5NTIuMjMgMTA4Ljk5NCA5NDguOTM4IDEwOS43NDggOTQ1LjkyMSAxMTEuMjU3Qzk0Mi45MDMgMTEyLjYyOSA5NDAuMjk3IDExNC41NDkgOTM4LjEwMiAxMTcuMDE4''@;'; + put 'put ''QzkzNS45MDggMTE5LjQ4NyA5MzQuMTkzIDEyMi40MzYgOTMyLjk1OSAxMjUuODY1QzkzMS43MjQgMTI5LjE1NyA5MzEuMTA3IDEzMi43MjMgOTMxLjEwNyAxMzYuNTY0Wk0xMDUwLjkgMTg0LjA5MUMxMDUwLjkgMTg2LjY5NyAxMDQ5LjU5IDE4OCAxMDQ2Ljk5IDE4OEgxMDMwLjk0QzEwMjku''@;'; + put 'put ''ODQgMTg4IDEwMjguODggMTg3LjY1NyAxMDI4LjA2IDE4Ni45NzFDMTAyNy4zNyAxODYuMTQ4IDEwMjcuMDMgMTg1LjE4OCAxMDI3LjAzIDE4NC4wOTFWODkuMDM2NUMxMDI3LjAzIDg3LjkzOTEgMTAyNy4zNyA4Ny4wNDc2IDEwMjguMDYgODYuMzYxOEMxMDI4Ljg4IDg1LjUzODggMTAyOS44''@;'; + put 'put ''NCA4NS4xMjczIDEwMzAuOTQgODUuMTI3M0gxMDQ2Ljk5QzEwNDkuNTkgODUuMTI3MyAxMDUwLjkgODYuNDMwMyAxMDUwLjkgODkuMDM2NVY5Ni42NDlDMTA1NC44OCA5My4zNTcxIDEwNTkuNDcgOTAuNTQ1MyAxMDY0LjY4IDg4LjIxMzVDMTA2OS44OSA4NS44ODE3IDEwNzUuMDQgODQuNzE1''@;'; + put 'put ''OCAxMDgwLjExIDg0LjcxNThDMTA4NC45MSA4NC43MTU4IDEwODkuMzcgODUuNjA3NCAxMDkzLjQ5IDg3LjM5MDVDMTA5Ny42IDg5LjAzNjUgMTEwMS4xIDkxLjQzNjggMTEwMy45OCA5NC41OTE2QzExMDcgOTcuNjA5MiAxMTA5LjMzIDEwMS4xNzUgMTExMC45OCAxMDUuMjlDMTExMi42MiAx''@;'; + put 'put ''MDkuNDA1IDExMTMuNDQgMTEzLjkzMiAxMTEzLjQ0IDExOC44N1YxODQuMDkxQzExMTMuNDQgMTg2LjY5NyAxMTEyLjE0IDE4OCAxMTA5LjUzIDE4OEgxMDkzLjQ5QzEwOTIuMzkgMTg4IDEwOTEuNDMgMTg3LjY1NyAxMDkwLjYxIDE4Ni45NzFDMTA4OS45MiAxODYuMTQ4IDEwODkuNTggMTg1''@;'; + put 'put ''LjE4OCAxMDg5LjU4IDE4NC4wOTFWMTI2LjY4OEMxMDg5LjU4IDEyMS4wNjQgMTA4OC4yNyAxMTYuNzQ0IDEwODUuNjcgMTEzLjcyNkMxMDgzLjA2IDExMC41NzEgMTA3OS4zNiAxMDguOTk0IDEwNzQuNTYgMTA4Ljk5NEMxMDcxLjU0IDEwOC45OTQgMTA2OC41OSAxMDkuNjExIDEwNjUuNzEg''@;'; + put 'put ''MTEwLjg0NUMxMDYyLjk3IDExMS45NDMgMTA2MC41IDExMy41MiAxMDU4LjMgMTE1LjU3OEMxMDU2LjI1IDExNy40OTggMTA1NC41MyAxMTkuODMgMTA1My4xNiAxMjIuNTczQzEwNTEuOTMgMTI1LjMxNiAxMDUxLjMxIDEyOC4xOTcgMTA1MS4zMSAxMzEuMjE0TDEwNTAuOSAxODQuMDkxWk0x''@;'; + put 'put ''MTI3Ljg3IDg5LjAzNjVDMTEyNy44NyA4Ny45MzkxIDExMjguMjEgODcuMDQ3NiAxMTI4LjkgODYuMzYxOEMxMTI5LjU4IDg1LjUzODggMTEzMC40OCA4NS4xMjczIDExMzEuNTcgODUuMTI3M0gxMTQ2LjhWNTguMTc0NkMxMTQ2LjggNTcuMDc3MyAxMTQ3LjE0IDU2LjE4NTggMTE0Ny44MyA1''@;'; + put 'put ''NS40OTk5QzExNDguNjUgNTQuNjc3IDExNDkuNjEgNTQuMjY1NSAxMTUwLjcxIDU0LjI2NTVIMTE2Ni43NkMxMTY5LjM2IDU0LjI2NTUgMTE3MC42NyA1NS41Njg1IDExNzAuNjcgNTguMTc0NlY4NS4xMjczSDExODguNzdDMTE4OS44NyA4NS4xMjczIDExOTAuNzYgODUuNTM4OCAxMTkxLjQ1''@;'; + put 'put ''IDg2LjM2MThDMTE5Mi4xMyA4Ny4wNDc2IDExOTIuNDcgODcuOTM5MSAxMTkyLjQ3IDg5LjAzNjVWMTA0LjI2MkMxMTkyLjQ3IDEwNS4zNTkgMTE5Mi4xMyAxMDYuMjUgMTE5MS40NSAxMDYuOTM2QzExOTAuNzYgMTA3LjYyMiAxMTg5Ljg3IDEwNy45NjUgMTE4OC43NyAxMDcuOTY1SDExNzAu''@;'; + put 'put ''NjdWMTg0LjA5MUMxMTcwLjY3IDE4Ni42OTcgMTE2OS4zNiAxODggMTE2Ni43NiAxODhIMTE1MC43MUMxMTQ5LjYxIDE4OCAxMTQ4LjY1IDE4Ny42NTcgMTE0Ny44MyAxODYuOTcxQzExNDcuMTQgMTg2LjE0OCAxMTQ2LjggMTg1LjE4OCAxMTQ2LjggMTg0LjA5MVYxMDcuOTY1SDExMzEuNTdD''@;'; + put 'put ''MTEzMC40OCAxMDcuOTY1IDExMjkuNTggMTA3LjYyMiAxMTI4LjkgMTA2LjkzNkMxMTI4LjIxIDEwNi4yNSAxMTI3Ljg3IDEwNS4zNTkgMTEyNy44NyAxMDQuMjYyVjg5LjAzNjVaTTEyNzMuMjggMTA4LjE3MUMxMjcyLjg3IDEwOS4yNjggMTI3Mi4xOCAxMTAuMDIyIDEyNzEuMjIgMTEwLjQz''@;'; + put 'put ''NEMxMjcwLjI2IDExMC44NDUgMTI2OS4yMyAxMTAuNzc3IDEyNjguMTQgMTEwLjIyOEMxMjY3LjA0IDEwOS42OCAxMjY1LjY3IDEwOS4yIDEyNjQuMDIgMTA4Ljc4OEMxMjYyLjUxIDEwOC4zNzcgMTI2MC44NyAxMDguMTcxIDEyNTkuMDggMTA4LjE3MUMxMjU2LjA3IDEwOC4xNzEgMTI1My4x''@;'; + put 'put ''OSAxMDguNzg4IDEyNTAuNDQgMTEwLjAyMkMxMjQ3LjcgMTExLjI1NyAxMjQ1LjIzIDExMi45NzIgMTI0My4wNCAxMTUuMTY2QzEyNDAuOTggMTE3LjIyNCAxMjM5LjMzIDExOS42OTMgMTIzOC4xIDEyMi41NzNDMTIzNi44NiAxMjUuMzE2IDEyMzYuMjUgMTI4LjE5NyAxMjM2LjI1IDEzMS4y''@;'; + put 'put ''MTRMMTIzNS44NCAxODQuMDkxQzEyMzUuODQgMTg1LjE4OCAxMjM1LjQ5IDE4Ni4xNDggMTIzNC44MSAxODYuOTcxQzEyMzQuMTIgMTg3LjY1NyAxMjMzLjIzIDE4OCAxMjMyLjEzIDE4OEgxMjE1Ljg4QzEyMTQuNzggMTg4IDEyMTMuODIgMTg3LjY1NyAxMjEzIDE4Ni45NzFDMTIxMi4zMSAx''@;'; + put 'put ''ODYuMTQ4IDEyMTEuOTcgMTg1LjE4OCAxMjExLjk3IDE4NC4wOTFWODkuMDM2NUMxMjExLjk3IDg3LjkzOTEgMTIxMi4zMSA4Ny4wNDc2IDEyMTMgODYuMzYxOEMxMjEzLjgyIDg1LjUzODggMTIxNC43OCA4NS4xMjczIDEyMTUuODggODUuMTI3M0gxMjMyLjEzQzEyMzMuMjMgODUuMTI3MyAx''@;'; + put 'put ''MjM0LjEyIDg1LjUzODggMTIzNC44MSA4Ni4zNjE4QzEyMzUuNDkgODcuMDQ3NiAxMjM1Ljg0IDg3LjkzOTEgMTIzNS44NCA4OS4wMzY1Vjk0LjU5MTZDMTIzOS44MSA5MS43MTExIDEyNDQuMDcgODkuMzc5NCAxMjQ4LjU5IDg3LjU5NjJDMTI1My4xMiA4NS42NzU5IDEyNTcuOTkgODQuNzE1''@;'; + put 'put ''OCAxMjYzLjIgODQuNzE1OEMxMjY4LjU1IDg0LjcxNTggMTI3My4yMSA4NS43NDQ1IDEyNzcuMTkgODcuODAyQzEyNzkuMTEgODkuMDM2NSAxMjc5LjczIDkwLjYxMzggMTI3OS4wNCA5Mi41MzQxTDEyNzMuMjggMTA4LjE3MVpNMTI4NS4zMyAxMzYuNTY0QzEyODUuMzMgMTI5LjI5NCAxMjg2''@;'; + put 'put ''LjYzIDEyMi41MDQgMTI4OS4yNCAxMTYuMTk1QzEyOTEuODUgMTA5Ljg4NSAxMjk1LjM0IDEwNC4zOTkgMTI5OS43MyA5OS43MzUyQzEzMDQuMjYgOTUuMDcxNyAxMzA5LjU0IDkxLjQzNjggMTMxNS41NyA4OC44MzA3QzEzMjEuNjEgODYuMDg3NCAxMzI4LjEyIDg0LjcxNTggMTMzNS4xMiA4''@;'; + put 'put ''NC43MTU4QzEzNDIuMTIgODQuNzE1OCAxMzQ4LjU2IDg2LjA4NzQgMTM1NC40NiA4OC44MzA3QzEzNjAuNSA5MS40MzY4IDEzNjUuNzEgOTUuMDcxNyAxMzcwLjEgOTkuNzM1MkMxMzc0LjYyIDEwNC4zOTkgMTM3OC4xMiAxMDkuODg1IDEzODAuNTkgMTE2LjE5NUMxMzgzLjIgMTIyLjUwNCAx''@;'; + put 'put ''Mzg0LjUgMTI5LjI5NCAxMzg0LjUgMTM2LjU2NEMxMzg0LjUgMTQzLjgzMyAxMzgzLjIgMTUwLjYyMyAxMzgwLjU5IDE1Ni45MzJDMTM3OC4xMiAxNjMuMjQyIDEzNzQuNjIgMTY4LjcyOSAxMzcwLjEgMTczLjM5MkMxMzY1LjcxIDE3OC4wNTYgMTM2MC41IDE4MS43NTkgMTM1NC40NiAxODQu''@;'; + put 'put ''NTAyQzEzNDguNDMgMTg3LjEwOCAxMzQxLjkxIDE4OC40MTEgMTMzNC45MSAxODguNDExQzEzMjcuOTIgMTg4LjQxMSAxMzIxLjQgMTg3LjEwOCAxMzE1LjM3IDE4NC41MDJDMTMwOS4zMyAxODEuNzU5IDEzMDQuMDUgMTc4LjA1NiAxMjk5LjUzIDE3My4zOTJDMTI5NS4xNCAxNjguNzI5IDEy''@;'; + put 'put ''OTEuNjQgMTYzLjI0MiAxMjg5LjAzIDE1Ni45MzJDMTI4Ni41NiAxNTAuNjIzIDEyODUuMzMgMTQzLjgzMyAxMjg1LjMzIDEzNi41NjRaTTEzMTAuMjMgMTM2LjU2NEMxMzEwLjIzIDE0MC40MDQgMTMxMC44NCAxNDQuMDM5IDEzMTIuMDggMTQ3LjQ2OEMxMzEzLjMxIDE1MC43NiAxMzE1LjAz''@;'; + put 'put ''IDE1My42NDEgMTMxNy4yMiAxNTYuMTA5QzEzMTkuNDIgMTU4LjU3OCAxMzIyLjAyIDE2MC41NjcgMTMyNS4wNCAxNjIuMDc2QzEzMjguMDYgMTYzLjQ0OCAxMzMxLjM1IDE2NC4xMzQgMTMzNC45MSAxNjQuMTM0QzEzMzguNDggMTY0LjEzNCAxMzQxLjc3IDE2My40NDggMTM0NC43OSAxNjIu''@;'; + put 'put ''MDc2QzEzNDcuOTUgMTYwLjU2NyAxMzUwLjYyIDE1OC41NzggMTM1Mi44MSAxNTYuMTA5QzEzNTUuMDEgMTUzLjY0MSAxMzU2LjcyIDE1MC43NiAxMzU3Ljk2IDE0Ny40NjhDMTM1OS4xOSAxNDQuMDM5IDEzNTkuODEgMTQwLjQwNCAxMzU5LjgxIDEzNi41NjRDMTM1OS44MSAxMzIuNzIzIDEz''@;'; + put 'put ''NTkuMTkgMTI5LjE1NyAxMzU3Ljk2IDEyNS44NjVDMTM1Ni43MiAxMjIuNDM2IDEzNTUuMDEgMTE5LjQ4NyAxMzUyLjgxIDExNy4wMThDMTM1MC42MiAxMTQuNTQ5IDEzNDcuOTUgMTEyLjYyOSAxMzQ0Ljc5IDExMS4yNTdDMTM0MS43NyAxMDkuNzQ4IDEzMzguNDggMTA4Ljk5NCAxMzM0Ljkx''@;'; + put 'put ''IDEwOC45OTRDMTMzMS4zNSAxMDguOTk0IDEzMjguMDYgMTA5Ljc0OCAxMzI1LjA0IDExMS4yNTdDMTMyMi4wMiAxMTIuNjI5IDEzMTkuNDIgMTE0LjU0OSAxMzE3LjIyIDExNy4wMThDMTMxNS4wMyAxMTkuNDg3IDEzMTMuMzEgMTIyLjQzNiAxMzEyLjA4IDEyNS44NjVDMTMxMC44NCAxMjku''@;'; + put 'put ''MTU3IDEzMTAuMjMgMTMyLjcyMyAxMzEwLjIzIDEzNi41NjRaTTE0MDguMjEgMzcuMzk0NEMxNDA4LjIxIDM2LjI5NyAxNDA4LjU1IDM1LjQwNTUgMTQwOS4yNCAzNC43MTk3QzE0MTAuMDYgMzQuMDMzOCAxNDExLjAyIDMzLjY5MDkgMTQxMi4xMiAzMy42OTA5SDE0MjguMTZDMTQyOS4yNiAz''@;'; + put 'put ''My42OTA5IDE0MzAuMTUgMzQuMDMzOCAxNDMwLjg0IDM0LjcxOTdDMTQzMS42NiAzNS40MDU1IDE0MzIuMDcgMzYuMjk3IDE0MzIuMDcgMzcuMzk0NFYxODQuMDkxQzE0MzIuMDcgMTg2LjY5NyAxNDMwLjc3IDE4OCAxNDI4LjE2IDE4OEgxNDEyLjEyQzE0MTEuMDIgMTg4IDE0MTAuMDYgMTg3''@;'; + put 'put ''LjY1NyAxNDA5LjI0IDE4Ni45NzFDMTQwOC41NSAxODYuMTQ4IDE0MDguMjEgMTg1LjE4OCAxNDA4LjIxIDE4NC4wOTFWMzcuMzk0NFpNMTQ2MyAzNy4zOTQ0QzE0NjMgMzYuMjk3IDE0NjMuMzUgMzUuNDA1NSAxNDY0LjAzIDM0LjcxOTdDMTQ2NC44NSAzNC4wMzM4IDE0NjUuODEgMzMuNjkw''@;'; + put 'put ''OSAxNDY2LjkxIDMzLjY5MDlIMTQ4Mi45NkMxNDg0LjA2IDMzLjY5MDkgMTQ4NC45NSAzNC4wMzM4IDE0ODUuNjMgMzQuNzE5N0MxNDg2LjQ2IDM1LjQwNTUgMTQ4Ni44NyAzNi4yOTcgMTQ4Ni44NyAzNy4zOTQ0VjE4NC4wOTFDMTQ4Ni44NyAxODYuNjk3IDE0ODUuNTcgMTg4IDE0ODIuOTYg''@;'; + put 'put ''MTg4SDE0NjYuOTFDMTQ2NS44MSAxODggMTQ2NC44NSAxODcuNjU3IDE0NjQuMDMgMTg2Ljk3MUMxNDYzLjM1IDE4Ni4xNDggMTQ2MyAxODUuMTg4IDE0NjMgMTg0LjA5MVYzNy4zOTQ0Wk0xNTM3Ljc2IDE0OC4wODVDMTUzOS42OCAxNTIuODg2IDE1NDIuNTYgMTU2Ljc5NSAxNTQ2LjQgMTU5''@;'; + put 'put ''LjgxM0MxNTUwLjM3IDE2Mi44MyAxNTU0LjkgMTY0LjMzOSAxNTU5Ljk4IDE2NC4zMzlDMTU2My42OCAxNjQuMzM5IDE1NjcuMjUgMTYzLjcyMiAxNTcwLjY3IDE2Mi40ODhDMTU3NC4xIDE2MS4yNTMgMTU3Ni45OCAxNTkuNTM5IDE1NzkuMzIgMTU3LjM0NEMxNTgwLjE0IDE1Ni42NTggMTU4''@;'; + put 'put ''MS4wMyAxNTYuMzg0IDE1ODEuOTkgMTU2LjUyMUMxNTgzLjA5IDE1Ni41MjEgMTU4My45OCAxNTYuODY0IDE1ODQuNjcgMTU3LjU1TDE1OTYuMzkgMTY4LjY2QzE1OTcuMDggMTY5LjM0NiAxNTk3LjQyIDE3MC4yMzcgMTU5Ny40MiAxNzEuMzM1QzE1OTcuNDIgMTcyLjI5NSAxNTk3LjA4IDE3''@;'; + put 'put ''My4xMTggMTU5Ni4zOSAxNzMuODA0QzE1OTEuODcgMTc4LjYwNCAxNTg2LjUyIDE4Mi4yMzkgMTU4MC4zNCAxODQuNzA4QzE1NzQuMTcgMTg3LjE3NyAxNTY3LjM4IDE4OC40MTEgMTU1OS45OCAxODguNDExQzE1NTMuMTIgMTg4LjQxMSAxNTQ2Ljc0IDE4Ny4xNzcgMTU0MC44NCAxODQuNzA4''@;'; + put 'put ''QzE1MzUuMDggMTgyLjIzOSAxNTMwLjAxIDE3OC43NDEgMTUyNS42MiAxNzQuMjE1QzE1MjAuODIgMTY5LjQxNCAxNTE3LjExIDE2My43MjIgMTUxNC41MSAxNTcuMTM4QzE1MTEuOSAxNTAuNTU0IDE1MTAuNiAxNDMuNTU5IDE1MTAuNiAxMzYuMTUyQzE1MTAuNiAxMjkuMDIgMTUxMS45IDEy''@;'; + put 'put ''Mi4zNjcgMTUxNC41MSAxMTYuMTk1QzE1MTcuMTEgMTA5Ljg4NSAxNTIwLjYxIDEwNC4zOTkgMTUyNSA5OS43MzUyQzE1MjkuNTMgOTUuMDcxNyAxNTM0LjgxIDkxLjQzNjggMTU0MC44NCA4OC44MzA3QzE1NDYuODggODYuMDg3NCAxNTUzLjMyIDg0LjcxNTggMTU2MC4xOCA4NC43MTU4QzE1''@;'; + put 'put ''NjYuNDkgODQuNzE1OCAxNTcyLjMyIDg1Ljg4MTcgMTU3Ny42NyA4OC4yMTM1QzE1ODMuMTYgOTAuNTQ1MyAxNTg3Ljk2IDkzLjc2ODYgMTU5Mi4wNyA5Ny44ODM1QzE1OTMuODYgOTkuNTI5NSAxNTk1LjU3IDEwMS40NSAxNTk3LjIyIDEwMy42NDRDMTU5OC44NiAxMDUuODM5IDE2MDAuMyAx''@;'; + put 'put ''MDguMzc3IDE2MDEuNTQgMTExLjI1N0MxNjAyLjc3IDExNC4xMzcgMTYwMy43MyAxMTcuNDk4IDE2MDQuNDIgMTIxLjMzOEMxNjA1LjI0IDEyNS4wNDIgMTYwNS42NSAxMjkuMjk0IDE2MDUuNjUgMTM0LjA5NUMxNjA1LjY1IDEzNy4zODcgMTYwNS40NSAxNDAuOTUzIDE2MDUuMDMgMTQ0Ljc5''@;'; + put 'put ''M0MxNjA0Ljc2IDE0Ni45ODggMTYwMy41MyAxNDguMDg1IDE2MDEuMzMgMTQ4LjA4NUgxNTM3Ljc2Wk0xNTU5LjU2IDEwOC43ODhDMTU1My44IDEwOC43ODggMTU0OS4wNyAxMTAuMzY1IDE1NDUuMzcgMTEzLjUyQzE1NDEuNjYgMTE2LjY3NSAxNTM5LjA2IDEyMC41ODQgMTUzNy41NSAxMjUu''@;'; + put 'put ''MjQ4SDE1ODAuNzZDMTU3OS4yNSAxMjAuODU4IDE1NzYuNzEgMTE3LjAxOCAxNTczLjE0IDExMy43MjZDMTU2OS43MSAxMTAuNDM0IDE1NjUuMTkgMTA4Ljc4OCAxNTU5LjU2IDEwOC43ODhaTTE2ODguNTEgMTA4LjE3MUMxNjg4LjEgMTA5LjI2OCAxNjg3LjQxIDExMC4wMjIgMTY4Ni40NSAx''@;'; + put 'put ''MTAuNDM0QzE2ODUuNDkgMTEwLjg0NSAxNjg0LjQ2IDExMC43NzcgMTY4My4zNyAxMTAuMjI4QzE2ODIuMjcgMTA5LjY4IDE2ODAuOSAxMDkuMiAxNjc5LjI1IDEwOC43ODhDMTY3Ny43NCAxMDguMzc3IDE2NzYuMSAxMDguMTcxIDE2NzQuMzEgMTA4LjE3MUMxNjcxLjI5IDEwOC4xNzEgMTY2''@;'; + put 'put ''OC40MSAxMDguNzg4IDE2NjUuNjcgMTEwLjAyMkMxNjYyLjkzIDExMS4yNTcgMTY2MC40NiAxMTIuOTcyIDE2NTguMjYgMTE1LjE2NkMxNjU2LjIxIDExNy4yMjQgMTY1NC41NiAxMTkuNjkzIDE2NTMuMzMgMTIyLjU3M0MxNjUyLjA5IDEyNS4zMTYgMTY1MS40NyAxMjguMTk3IDE2NTEuNDcg''@;'; + put 'put ''MTMxLjIxNEwxNjUxLjA2IDE4NC4wOTFDMTY1MS4wNiAxODUuMTg4IDE2NTAuNzIgMTg2LjE0OCAxNjUwLjAzIDE4Ni45NzFDMTY0OS4zNSAxODcuNjU3IDE2NDguNDYgMTg4IDE2NDcuMzYgMTg4SDE2MzEuMTFDMTYzMC4wMSAxODggMTYyOS4wNSAxODcuNjU3IDE2MjguMjMgMTg2Ljk3MUMx''@;'; + put 'put ''NjI3LjU0IDE4Ni4xNDggMTYyNy4yIDE4NS4xODggMTYyNy4yIDE4NC4wOTFWODkuMDM2NUMxNjI3LjIgODcuOTM5MSAxNjI3LjU0IDg3LjA0NzYgMTYyOC4yMyA4Ni4zNjE4QzE2MjkuMDUgODUuNTM4OCAxNjMwLjAxIDg1LjEyNzMgMTYzMS4xMSA4NS4xMjczSDE2NDcuMzZDMTY0OC40NiA4''@;'; + put 'put ''NS4xMjczIDE2NDkuMzUgODUuNTM4OCAxNjUwLjAzIDg2LjM2MThDMTY1MC43MiA4Ny4wNDc2IDE2NTEuMDYgODcuOTM5MSAxNjUxLjA2IDg5LjAzNjVWOTQuNTkxNkMxNjU1LjA0IDkxLjcxMTEgMTY1OS4yOSA4OS4zNzk0IDE2NjMuODIgODcuNTk2MkMxNjY4LjM1IDg1LjY3NTkgMTY3My4y''@;'; + put 'put ''MiA4NC43MTU4IDE2NzguNDMgODQuNzE1OEMxNjgzLjc4IDg0LjcxNTggMTY4OC40NCA4NS43NDQ1IDE2OTIuNDIgODcuODAyQzE2OTQuMzQgODkuMDM2NSAxNjk0Ljk2IDkwLjYxMzggMTY5NC4yNyA5Mi41MzQxTDE2ODguNTEgMTA4LjE3MVoiIGZpbGw9IiM4RUM2M0YiLz4KPC9nPgo8ZGVm''@;'; + put 'put ''cz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8xMDVfNyI+CjxyZWN0IHdpZHRoPSIxNjg5IiBoZWlnaHQ9IjI0MCIgZmlsbD0id2hpdGUiLz4KPC9jbGlwUGF0aD4KPC9kZWZzPgo8L3N2Zz4K'';'; + put 'run;'; + put '%sasjsout(SVG64)'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=favicon-ico; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put 'options mprint;'; + put '%macro mp_replace(infile,'; + put 'findvar=,'; + put 'replacevar=,'; + put 'outfile=0'; + put ')/*/STORE SOURCE*/;'; + put '%local inref outref dttm ds1 rc;'; + put '/* create filerefs */'; + put '%let rc=%sysfunc(filename(inref,,temp,lrecl=200));'; + put '%let rc=%sysfunc(filename(outref,,temp,lrecl=200));'; + put '%if &outfile=0 %then %let outfile=&infile;'; + put '/* uniquely named 32 char datasets */'; + put '%let ds1=all%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,29);'; + put '%let ds2=start%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,27);'; + put '/* START */'; + put '%let dttm=%sysfunc(datetime());'; + put 'filename &inref &infile lrecl=1 recfm=n;'; + put 'data &ds1;'; + put 'infile &inref;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'run;'; + put 'data &ds2;'; + put '/* set find string to length in bytes to cover trailing spaces */'; + put 'length string $ %length(%superq(&findvar));'; + put 'string =symget("&findvar");'; + put 'drop string;'; + put 'firstchar=char(string,1);'; + put 'findlen=lengthm(string); /* <- for trailing bytes */'; + put 'do _N_=1 to nobs;'; + put 'set &ds1 nobs=nobs point=_N_;'; + put 'if sourcechar=firstchar then do;'; + put 'pos=1;'; + put 's=0;'; + put 'do point=_N_ to min(_N_ + findlen -1,nobs);'; + put 'set &ds1 point=point;'; + put 'if sourcechar=char(string, pos) then s + 1;'; + put 'else goto _leave_;'; + put 'pos+1;'; + put 'end;'; + put '_leave_:'; + put 'if s=findlen then do;'; + put 'START =_N_;'; + put '_N_ =_N_+ s - 1;'; + put 'STOP =_N_;'; + put 'output;'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'stop;'; + put 'keep START STOP;'; + put 'run;'; + put 'data &ds1;'; + put 'declare hash HS(dataset:"&ds2(keep=start)");'; + put 'HS.defineKey("start");'; + put 'HS.defineDone();'; + put 'declare hash HE(dataset:"&ds2(keep=stop)");'; + put 'HE.defineKey("stop");'; + put 'HE.defineDone();'; + put 'do until(eof);'; + put 'set &ds1 end=eof curobs =n;'; + put 'start = ^HS.check(key:n);'; + put 'stop = ^HE.check(key:n);'; + put 'length strt $ 1;'; + put 'strt =put(start,best. -L);'; + put 'retain out 1;'; + put 'if out then output;'; + put 'if start then out=0;'; + put 'if stop then out=1;'; + put 'end;'; + put 'stop;'; + put 'keep sourcechar strt;'; + put 'run;'; + put 'filename &outref &outfile recfm=n;'; + put 'data _null_;'; + put 'length replace $ %length(%superq(&replacevar));'; + put 'replace=symget("&replacevar");'; + put 'file &outref;'; + put 'do until(eof);'; + put 'set &ds1 end=eof;'; + put 'if strt ="1" then put replace char.;'; + put 'else put sourcechar char1.;'; + put 'end;'; + put 'stop;'; + put 'run;'; + put '/* END */'; + put '%put &sysmacroname took %sysevalf(%sysfunc(datetime())-&dttm) seconds to run;'; + put '%mend mp_replace;'; + put '%macro sasjsout(type,fref=sasjs);'; + put '%global sysprocessmode SYS_JES_JOB_URI;'; + put '%if &type=JS or &type=JS64 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header('; + put 'Content-type,application/javascript%str(;)charset=UTF-8'; + put '));'; + put '%end;'; + put '%else %if &type=CSS or &type=CSS64 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,text/css));'; + put '%end;'; + put '%else %if &type=PNG or &type=GIF or &type=JPEG or &type=JPG %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,image/%lowcase(&type)));'; + put '%end;'; + put '%else %if &type=SVG or &type=SVG64 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,image/svg+xml));'; + put '%end;'; + put '%else %if &type=ICO %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,image/vnd.microsoft.icon));'; + put '%end;'; + put '%else %if &type=JSON %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,application/json));'; + put '%end;'; + put '%else %if &type=MP3 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/mpeg));'; + put '%end;'; + put '%else %if &type=WAV %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/x-wav));'; + put '%end;'; + put '%else %if &type=OGG %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/ogg));'; + put '%end;'; + put '%else %if &type=WOFF or &type=WOFF2 or &type=TTF %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,font/%lowcase(&type)));'; + put '%end;'; + put '%else %if &type=MP4 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,video/mp4));'; + put '%end;'; + put '%if &type=HTML %then %do;'; + put '/*'; + put 'We need to perform some substitutions -eg to get the APPLOC and SERVERTYPE.'; + put 'Therefore the developer should avoid writing lines that exceed 32k'; + put 'characters (eg base64 encoded images) as they will get truncated when passing'; + put 'through the datastep. This could of course be re-written using LUA, removing'; + put 'the length restriction. Pull requests are welcome!'; + put '*/'; + put 'filename _sjsout temp;'; + put 'data _null_;'; + put 'file _sjsout lrecl=32767 encoding=''utf-8'';'; + put 'infile &fref lrecl=32767;'; + put 'input;'; + put 'length appLoc expanded_path $1048;'; + put 'if _n_=1 then do;'; + put 'retain pgm "&_program" appLoc expanded_path;'; + put '/* index is deployed in the /services/ folder under the appLoc */'; + put 'appLoc=substr(pgm,1,find(pgm,''/services/'')-1);'; + put 'expanded_path=cats(''?_PROGRAM='',appLoc,''/services/'');'; + put 'end;'; + put 'if find(_infile_,'' appLoc: '') then put '' appLoc: '' apploc:$quote1048. '','';'; + put 'else if find(_infile_,'' serverType: '') then do;'; + put 'put '' serverType: "SAS9" ,'';'; + put 'end;'; + put 'else if find(_infile_,'' serverUrl: '') then do;'; + put '/* nothing - we are streaming, so remove to default as hostname */'; + put 'end;'; + put 'else do;'; + put '/* More recently, SASjs apps avoid inline JS to allow strict CSP */'; + put 'length infile in1 in2 $32767;'; + put 'infile=cats(_infile_);'; + put 'spos1=index(upcase(infile),''APPLOC="'');'; + put 'if spos1>0 then do;'; + put 'in1=substr(infile,1,spos1+7);'; + put 'in2=subpad(infile,spos1+8);'; + put 'in2=substr(in2,index(in2,''"''));'; + put 'infile=cats(in1,appLoc,in2);'; + put 'putlog "new apploc: " infile=;'; + put 'end;'; + put '/* find & replace serverType in HTML attributes */'; + put 'spos2=index(upcase(infile),''SERVERTYPE="'');'; + put 'if spos2>0 then do;'; + put 'in1=substr(infile,1,spos2+11);'; + put 'in2=subpad(infile,spos2+12);'; + put 'in2=substr(in2,index(in2,''"''));'; + put 'infile=cats(in1,"SAS9",in2);'; + put 'putlog "new servertype: " infile=;'; + put 'end;'; + put '/* find & replace serverUrl in HTML attributes */'; + put 'spos3=index(upcase(infile),''SERVERURL="'');'; + put 'if spos3>0 then do;'; + put 'in1=substr(infile,1,spos3+10);'; + put 'in2=subpad(infile,spos3+11);'; + put 'in2=substr(in2,index(in2,''"''));'; + put 'infile=cats(in1,in2);'; + put 'putlog "new serverUrl: " infile=;'; + put 'end;'; + put 'if sum(spos1,spos2,spos3)>0 then put infile;'; + put 'else do;'; + put '/* during SAS9 sasjs compile, dependencies get static GUID */'; + put 'infile=tranwrd(_infile_,''?_PROGRAM=pZKd6F95jECvRQlN0LCfdA=='',cats(expanded_path));'; + put 'put infile;'; + put 'end;'; + put 'end;'; + put 'run;'; + put '%let fref=_sjsout;'; + put '%end;'; + put '%else %if &type=JS64 or &type=CSS64 %then %do;'; + put 'options nobomfile;'; + put '%let fvar=pZKd6F95jECvRQlN0LCfdA==;'; + put '%let stgfile="%sysfunc(pathname(work))/stgfile.txt";'; + put '%let newfile="%sysfunc(pathname(work))/newfile.txt";'; + put '/* convert from base64 */'; + put 'filename _out64 &stgfile encoding=''utf-8'';'; + put 'data _null_;'; + put 'length filein 8 fileout 8;'; + put 'filein = fopen("&fref",''I'',4,''B'');'; + put 'fileout = fopen("_out64",''A'',1,''B'');'; + put 'char= ''20''x;'; + put 'do while(fread(filein)=0);'; + put 'length raw $4 ;'; + put 'do i=1 to 4;'; + put 'rc=fget(filein,char,1);'; + put 'substr(raw,i,1)=char;'; + put 'end;'; + put 'rc = fput(fileout, input(raw,$base64X4.));'; + put 'rc =fwrite(fileout);'; + put 'end;'; + put 'rc = fclose(filein);'; + put 'rc = fclose(fileout);'; + put 'run;'; + put '/* get appLoc from _program */'; + put 'data _null_;'; + put 'pgm="&_program";'; + put 'appLoc=substr(pgm,1,find(pgm,''/services/'')-1);'; + put 'call symputx(''apploc'',cats(appLoc,''/services/''));'; + put 'run;'; + put '%put &=fvar;'; + put '%put &=apploc;'; + put '/* replace the GUID with appLoc */'; + put '%mp_replace(&stgfile,'; + put 'findvar=fvar,'; + put 'replacevar=apploc,'; + put 'outfile=&newfile'; + put ')'; + put 'filename &fref &newfile encoding=''utf-8'';'; + put '%end;'; + put '/**'; + put '* In SAS9, JS & CSS files are base64 encoded to avoid UTF8 issues in WLATIN1'; + put '* metadata - so in this case, decode and stream byte by byte.'; + put '* */'; + put '%if &type=GIF or &type=PNG or &type=JPG or &type=JPEG or &type=ICO or &type=MP3'; + put 'or &type=WAV or &type=OGG or &type=WOFF or &type=WOFF2 or &type=TTF or &type=MP4'; + put 'or &type=SVG64'; + put '%then %do;'; + put 'data _null_;'; + put 'length filein 8 fileout 8;'; + put 'filein = fopen("&fref",''I'',4,''B'');'; + put 'fileout = fopen("_webout",''A'',1,''B'');'; + put 'char = ''20''x;'; + put 'do while(fread(filein)=0);'; + put 'length raw $4 ;'; + put 'do i=1 to 4;'; + put 'rc=fget(filein,char,1);'; + put 'substr(raw,i,1)=char;'; + put 'end;'; + put 'rc = fput(fileout, input(raw,$base64X4.));'; + put 'rc = fwrite(fileout);'; + put 'end;'; + put 'rc = fclose(filein);'; + put 'rc = fclose(fileout);'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%put streaming to _webout;'; + put 'data _null_;'; + put 'infile &fref lrecl=1 recfm=n;'; + put 'file _webout mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put '%end;'; + put '%mend sasjsout;'; + put 'filename sasjs temp lrecl=99999999;'; + put 'data _null_;'; + put 'file sasjs;'; + put 'put ''iVBORw0KGgoAAAANSUhEUgAAApgAAAJ6CAYAAACMvTJAAAAMFGlDQ1BJQ0MgUHJvZmlsZQAASImVVwdUk8kWnr+kEBJaIAJSQm+CFOnSe0c62AhJgFAiJAQVO7Ko4FpQEQFR0RUQRdcCyKIidmUR7P1hQWVlXSzYUHmTArq+dt49Z/75cufeO9+d3JkzA4CiNSsnJwtVAiCbnyeICvBmJiQmMUmP''@;'; + put 'put ''AAY0AB0YAiUWW5jjFRkZCqCM9X+XdzcAIu6vWopj/ev4fxVlDlfIBgCJhDiFI2RnQ3wYAFydnSPIA4DQBfUGc/NyxHgIYlUBJAgAERfjNClWF+MUKZ4ksYmJ8oHYEwAylcUSpAGgIObNzGenwTgKYo7WfA6PD3E1xO7sdBYH4nsQT8rOngOxIhli05Tv4qT9LWbKeEwWK20cS3ORCNmXJ8zJYs3/''@;'; + put 'put ''P5fjf0t2lmhsDn3YqOmCwChxznDd6jPnhIgxFeJ2fkp4BMQqEJ/ncST2YnwnXRQYK7MfZAt94JoBBgAo4LB8QyDWgpghyoz1kmFblkDiC+3RcF5eUIwMpwjmRMnio/n8rPBQWZyV6dygMVzDFfpFj9mk8vyDIIaVhh4uSI+Jl/JET+fz4sIhVoC4R5gZHSLzfVCQ7hM+ZiMQRYk5G0L8NlXgHyW1''@;'; + put 'put ''wdSzhWN5YVZslmQuWAuYZ156TKDUF0vgChNCxzhwuL5+Ug4Yh8uPlXHDYHV5R8l8i3OyImX2WA03KyBKus7YAWF+9JjvlTxYYNJ1wB5lsIIjZXO9y8mLjJFyw1EQCnyAL2ACEWwpYA7IALzuwZZB+Es64g9YQADSABdYyjRjHvGSET78RoMC8CdEXCAc9/OWjHJBPtR/GddKv5YgVTKaL/HIBE8h''@;'; + put 'put ''zsY1cXfcFQ+FX0/YbHEn3HnMj6k4NivRj+hLDCT6E83GebAh6yzYBID3b3QhsOfC7MRc+GM5fItHeEroJTwiXCf0EW6DOPBEEkVmNZtXKPiBOROEgT4YzV+WXcr32eHGkLU97o27Qf6QO87ANYElPgVm4oV7wNzsofZ7hqJxbt/W8sf5xKy/z0emVzBXsJexSBn/Z3zGrX6M4vPdGnFgH/KjJbYS''@;'; + put 'put ''O4Sdw05iF7B2rAUwsRNYK9aFHRPj8Up4IqmEsdmiJNwyYRzemI11o/WA9ecf5mbJ5hevlzCPOy9PvBl85uTMF/DS0vOYXvA05jKD+GyrSUxbaxsnAMRnu/ToeMOQnNkI4+I3XW4HAM4lUJn2TccyAODoUwDo777pDF7Dcl8HwLEetkiQL9WJj2NAABSgCHeFBtABBsAU5mMLHIAr8AR+IBhEgBiQ''@;'; + put 'put ''CGbBFU8H2ZDzXLAQLAPFoBSsA5tAJdgGdoJ6sA8cBC2gHZwEZ8El0AOug7uwLvrBCzAE3oERBEFICA2hIxqILmKEWCC2iBPijvghoUgUkogkI2kIHxEhC5HlSClShlQiO5AG5FfkKHISuYD0IreRh8gA8hr5hGIoFVVFtVFjdDLqhHqhIWgMOhNNQ3PRArQIXYNWoLXoXrQZPYleQq+jfegLdBgD''@;'; + put 'put ''mDzGwPQwS8wJ88EisCQsFRNgi7ESrByrxZqwNvg/X8X6sEHsI07E6TgTt4S1GYjH4mw8F1+Mr8Yr8Xq8GT+NX8Uf4kP4VwKNoEWwILgQgggJhDTCXEIxoZywm3CEcAbum37COyKRyCCaEB3hvkwkZhAXEFcTtxL3EzuIvcTHxGESiaRBsiC5kSJILFIeqZi0hbSXdIJ0hdRP+kCWJ+uSbcn+5CQy''@;'; + put 'put ''n1xILifvIR8nXyE/I4/IKckZybnIRchx5ObLrZXbJdcmd1muX26EokwxobhRYigZlGWUCkoT5QzlHuWNvLy8vryz/DR5nvxS+Qr5A/Ln5R/Kf6SqUM2pPtQZVBF1DbWO2kG9TX1Do9GMaZ60JFoebQ2tgXaK9oD2QYGuYKUQpMBRWKJQpdCscEXhpaKcopGil+IsxQLFcsVDipcVB5XklIyVfJRY''@;'; + put 'put ''SouVqpSOKt1UGlamK9soRyhnK69W3qN8Qfm5CknFWMVPhaNSpLJT5ZTKYzpGN6D70Nn05fRd9DP0flWiqolqkGqGaqnqPtVu1SE1FbUpanFq89Sq1I6p9TEwhjEjiJHFWMs4yLjB+DRBe4LXBO6EVROaJlyZ8F59orqnOle9RH2/+nX1TxpMDT+NTI31Gi0a9zVxTXPNaZpzNWs0z2gOTlSd6DqR''@;'; + put 'put ''PbFk4sGJd7RQLXOtKK0FWju1urSGtXW0A7RztLdon9Ie1GHoeOpk6GzUOa4zoEvXddfl6W7UPaH7B1ON6cXMYlYwTzOH9LT0AvVEejv0uvVG9E30Y/UL9ffr3zegGDgZpBpsNOg0GDLUNQwzXGjYaHjHSM7IySjdaLPROaP3xibG8cYrjFuMn5uomwSZFJg0mtwzpZl6mOaa1ppeMyOaOZllmm01''@;'; + put 'put ''6zFHze3N082rzC9boBYOFjyLrRa9kwiTnCfxJ9VOumlJtfSyzLdstHxoxbAKtSq0arF6OdlwctLk9ZPPTf5qbW+dZb3L+q6Nik2wTaFNm81rW3Nbtm2V7TU7mp2/3RK7VrtXUyymcKfUTLllT7cPs19h32n/xcHRQeDQ5DDgaOiY7FjteNNJ1SnSabXTeWeCs7fzEud2548uDi55Lgdd/nK1dM10''@;'; + put 'put ''3eP6fKrJVO7UXVMfu+m7sdx2uPW5M92T3be793noebA8aj0eeRp4cjx3ez7zMvPK8Nrr9dLb2lvgfcT7vY+LzyKfDl/MN8C3xLfbT8Uv1q/S74G/vn+af6P/UIB9wIKAjkBCYEjg+sCbQdpB7KCGoKFgx+BFwadDqCHRIZUhj0LNQwWhbWFoWHDYhrB74Ubh/PCWCBARFLEh4n6kSWRu5G/TiNMi''@;'; + put 'put ''p1VNexplE7Uw6lw0PXp29J7odzHeMWtj7saaxopiO+MU42bENcS9j/eNL4vvS5icsCjhUqJmIi+xNYmUFJe0O2l4ut/0TdP7Z9jPKJ5xY6bJzHkzL8zSnJU169hsxdms2YeSCcnxyXuSP7MiWLWs4ZSglOqUIbYPezP7BceTs5EzwHXjlnGfpbqllqU+T3NL25A2kO6RXp4+yPPhVfJeZQRmbMt4''@;'; + put 'put ''nxmRWZc5mhWftT+bnJ2cfZSvws/kn56jM2fenN4ci5zinL5cl9xNuUOCEMFuISKcKWzNU4XXnC6Rqegn0cN89/yq/A9z4+Yemqc8jz+va775/FXznxX4F/yyAF/AXtC5UG/hsoUPF3kt2rEYWZyyuHOJwZKiJf1LA5bWL6Msy1z2e6F1YVnh2+Xxy9uKtIuWFj3+KeCnxmKFYkHxzRWuK7atxFfy''@;'; + put 'put ''Vnavslu1ZdXXEk7JxVLr0vLSz6vZqy/+bPNzxc+ja1LXdK91WFuzjriOv+7Geo/19WXKZQVljzeEbWjeyNxYsvHtptmbLpRPKd+2mbJZtLmvIrSidYvhlnVbPlemV16v8q7aX61Vvar6/VbO1is1njVN27S3lW77tJ23/daOgB3Ntca15TuJO/N3Pt0Vt+vcL06/NOzW3F26+0sdv66vPqr+dINj''@;'; + put 'put ''Q8MerT1rG9FGUePA3hl7e/b57mttsmzasZ+xv/QAOCA68Mevyb/eOBhysPOQ06Gmw0aHq4/Qj5Q0I83zm4da0lv6WhNbe48GH+1sc2078pvVb3Xteu1Vx9SOrT1OOV50fPREwYnhjpyOwZNpJx93zu68eyrh1LXT0053nwk5c/6s/9lT57zOnTjvdr79gsuFoxedLrZccrjU3GXfdeR3+9+PdDt0''@;'; + put 'put ''N192vNza49zT1ju19/gVjysnr/pePXst6Nql6+HXe2/E3rh1c8bNvlucW89vZ91+dSf/zsjdpfcI90ruK90vf6D1oPYfZv/Y3+fQd+yh78OuR9GP7j5mP37xRPjkc3/RU9rT8me6zxqe2z5vH/Af6Plj+h/9L3JejAwW/6n8Z/VL05eH//L8q2soYaj/leDV6OvVbzTe1L2d8rZzOHL4wbvsdyPv''@;'; + put 'put ''Sz5ofKj/6PTx3Kf4T89G5n4mfa74Yval7WvI13uj2aOjOSwBS3IVwGBDU1MBeF0HAC0R3h16AKAoSN9eEkGk70UJAv8JS99nEnEAoM4TgNilAITCO0oNbEYQU2EvvnrHeALUzm68yUSYamcrjUWFLxjCh9HRN9oAkNoA+CIYHR3ZOjr6ZRckexuAjlzpm08sRHi/324mRt2XRobAD/JPCotuA2JA''@;'; + put 'put ''n4YAAAAJcEhZcwAAFiUAABYlAUlSJPAAAAGdaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJYTVAgQ29yZSA1LjQuMCI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8y''@;'; + put 'put ''Mi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjY2NDwvZXhpZjpQaXhlbFhEaW1lbnNp''@;'; + put 'put ''b24+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj42MzQ8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KSHKtHgAAABxpRE9UAAAAAgAAAAAAAAE9AAAAKAAAAT0AAAE9AACKlRxL/UIAAEAASURB''@;'; + put 'put ''VHgB7L0HgNxmeqb5FVChIzuRTTZzzlESRUVSFCUqzIwmjyZnx71zWO96b89h7b31ede+27O9DjOe8eSo0USlURxpGESKYhBzzqFJdrNzqADg3g/FoppUk6zuQlWjUC+kZmXgx/OjUC++GFq25v2OcCEBEiABEiABEiABEiABjwiEKDA9IsnVkAAJkAAJkAAJkAAJuAQoMHkgkAAJkAAJkAAJkAAJ''@;'; + put 'put ''eEqAAtNTnFwZCZAACZAACZAACZAABSaPARIgARIgARIgARIgAU8JUGB6ipMrIwESIAESIAESIAESoMDkMUACJEACJEACJEACJOApAQpMT3FyZSRAAiRAAiRAAiRAAhSYPAZIgARIgARIgARIgAQ8JUCB6SlOrowESIAESIAESIAESIACk8cACZAACZAACZAACZCApwQoMD3FyZWRAAmQAAmQAAmQ''@;'; + put 'put ''AAlQYPIYIAESIAESIAESIAES8JQABaanOLkyEiABEiABEiABEiABCkweAyRAAiRAAiRAAiRAAp4SoMD0FCdXRgIkQAIkQAIkQAIkQIHJY4AESIAESIAESIAESMBTAhSYnuLkykiABEiABEiABEiABCgweQyQAAmQAAmQAAmQAAl4SoAC01OcXBkJkAAJkAAJkAAJkAAFJo8BEiABEiABEiABEiAB''@;'; + put 'put ''TwlQYHqKkysjARIgARIgARIgARKgwOQxQAIkQAIkQAIkQAIk4CkBCkxPcXJlJEACJEACJEACJEACFJg8BkiABAJBwHEcMc2QmGFbwtGQhCM27ockEnMkHBOJRHGL52OVtlRW2VJW5UhZpT7W53G/PCTRCkdC+O+GC162EiL9vY4k4yGJ9+OvRx+HpKcTt90hSeA5Ky6SSuI+3qvvTyUMsZL4DJ6z''@;'; + put 'put ''UrqFm2znhoPgiyRAAiTgbwIUmP6eH46OBEgAOiwCsRgpE4mVO64grKjCfQjDimo8rtDnRaJ4LVrmuILSjAhEo4hpiBhh/BkG/iDp8E9IHLHtNFbbdtw70KaiAhUvZbdgTFgdVog7+r/7l34yvQUR27Lxh1tszMF2kokQBCfEJv5SEKb9EKAJiNI4/vp7DOntdiBUcb/r8nN9+j5DUimIXt0AFxIg''@;'; + put 'put ''ARIoIgIUmEU0WRwqCQSVQCjkSLlaFGFBrKh1ZFSDI1U16fsV+jwEZQRWyDCskZGwIWYEMi6juSAKIeH0H1ckqk7URUXdFb145U76tYL9e3mMeuPeNdJPGHqL/43LAlXHo0N0LAeC0oYYtcVSyyj+etU62mVId4dIT7uBPzwHS2lPZ0iSeN1x0uvUdXAhARIgAb8QoMD0y0xwHCQQeAJqXRRYHW2p''@;'; + put 'put ''qheprrelpt6RStxW1YorLqNwU0diEJBwdeuiVkUHwtG1NEIwXjY8ptVYUHmltSesrek7KkYzQlRFqA2LZjKekr5uQ/p6HAhPU7pbRbouhaSzNS1A1U2fhBv+pu7+oDLkfpEACYw4AQrMEZ8CDoAEgkfAhFtahaRaIkc12lI7xpHqBkuqa+DOhkUyVhZ24yPThkeISFju1PLoCsmRsjYWyzRcNlhe''@;'; + put 'put ''EZ5m2hKq2Ky4Lf39DuJARbph6Wxvgei8gFv86WMVpY59eQXFsr8cJwmQQFESoMAsymnjoEnAHwTUwhhBvGNlLayREJH14yAqxzpSOxqJNDVIoIFFUt3Zqh4zlkiKyDzOnWpHuN3VABxCgpMbD4r7qbiFWE+Izg5HOi4Y0nbelLaLAvEJiydc7bZF0ZnHWeGqSaAkCVBgluS0c6dJYHgEDI2VRGJN''@;'; + put 'put ''TaMjDeNtaWiCoMT9asRLRitMJNVArMAsqRZJ5LjAJElz5PBIe/wpFZwqPDE/IVg89b4FV3tfry29bQ7EpiGtZwy51GxAgGrSEWM7PZ4Bro4ESo4ABWbJTTl3mASyJ2AY6tqGmISQHD0RgnICXN6Imyyv1jJABvQjxCSECvQkxWT2WP3zTgjO8GXRqZbPVMKCGx1WTrjW284ZcvEUROc5uNcvocQS''@;'; + put 'put ''Xev+mTeOhASKgAAFZhFMEodIAoUiYJrpDO6GCbY0TlFBaSMZR7O7w9AfaTe3pdnZapmkcbJQ01K47ailE4LTtXSmIxtgzbSksw1CExbOC8dD0noWVk4kFdmWW6ipcGPjlkiABIqKAAVmUU0XB0sC3hIIwUJZhfjJMRMdaZzqyGgIylGjYaGshB/VdXUjfk/FJF3d3oIvprUNtHIiL70PgrPrkrgu''@;'; + put 'put ''9fPHDWk5bbgC1EHNTy4kQAIkkCFAgZkhwVsSKAkC6cLkGj85biqslPirHWMj49uE5QqSEiIhpVXIr9QDKgko3MmhEMBxEtaC9e41iNbptKTjvMgFuNObj4Wk5YyJgvHIVqeFeyhU+V4SCBwBCszATSl3iASuJqBWyuo6WCinODJ+puXGUlbVaXccLVmD0jZaIogWyquh8VH2BNTCibR1vUDRxCHN''@;'; + put 'put ''VG89G5LmI6ach0u9HQlEzFLPHiffSQJBIUCBGZSZ5H6QwAACZlhLBjkybrolTbNsqUctysoaFKeE21sLdWscJWMoBwDjXW8IZGI4VXAiaSgO6+YlZKU3Q2g2HzZh3Uz3aUekpzfb41pIgAR8S4AC07dTw4GRwNAIRNFGsX6CJRNm2tI0A7UoUT6orNx0M73VskQr5dB48t0eEBhg3Uyh/WUnug2p''@;'; + put 'put ''G/2Mis0T6l6H0GSrSw9AcxUk4D8CFJj+mxOOiASyIqBFzmNlIg0oHzRxliXjYamsGYNWi1HUMITrW3ta00qZFUq+qRAEoCU1O91AAXgLsb49bbacg8g8cwCudIhOt8sQxWYhZoLbIIGCEKDALAhmboQEvCNgRhwZo5bKOY4rLGsaL4tKTdDR6uZMrvAONteUNwIG3OgmxKbmlHWh2PuF4yKnDkJs''@;'; + put 'put ''InaztwebpdjMG3uumAQKQYACsxCUuQ0SyJGAgfqUdYipnDQbwnK2dtBBi8YyJOlQVOZIlh/3A4EQxKYmCmlocNclWDaPGXJ6ryHnjpuS6NMRMmbTD/PEMZDAUAhQYA6FFt9LAgUkoIXNq2odCEpLpsyH1XKSjXaMSNWl+7uAs8BNFZpAxrJpIcRDOwqdOWjIyX3oKoRC71aCQrPQ88HtkcBwCVBg''@;'; + put 'put ''DpccP0cCeSDgxlWWizRNs2TyAhtlhWypqjHh9XYQUwnzDssJ5YE6V+lLAtCSrtiEZTMZt6UFpY9O7Ydlc78p7RCejkWx6ct546BI4DIBCkweCiTgAwLqAteC51MX2jJhnpYVciQcNhBTCWnpNvr2wSA5BBIYKQLQkvp9EPzf3+Wg7JHI8V2mnD1sSH+vCk2KzZGaGm6XBK5HgALzemT4PAnkmYBa''@;'; + put 'put ''K8sqHNSpdGTGopQ0ThOpqEIcGuIqLSbr5Jk+V1+sBNxe6UgO0koJHS0O3OchObHHlEvokW7Rqlms08pxB5AABWYAJ5W75G8C2lmnZowjUxdZMnW+JbVjUboF5VtYq9Lf88bR+Y+Aljwy4UKP99pyHiWPju40ELMZln7NQqdV038TxhGVFAEKzJKabu7sSBIIwQ3eiESdOStSMnEmrJfV6SxwWitH''@;'; + put 'put ''cla47UAQ0ILul62a7RccOYEMdHWht51nT/RAzC93oigJUGAW5bRx0MVCwE3agRt84hxbZt1iSeNkR6IxxlYWy/xxnMVHIGPV7O9x5PiekBzZhtqap/RijnGaxTebHHExE6DALObZ49j9S0BLDNU4Mg1u8BnLbNSwRH5CyJBkEgGWLITu33njyAJDQGM1IxFD4nFLLsB9fnir6RZyj/fCeR6i2AzM''@;'; + put 'put ''RHNHfEuAAtO3U8OBFSMBrV1ZN9aWGbfYMm2hJdUNJmIrbbG1xBAXEiCBwhOAlowgA11LfV06J3L4LVOOvRWSng6kpDNOs/DzwS2WDAEKzJKZau5oPglo4s6YyYivvM2SSXNtZIObkoSwZImhfFLnuklgaARc9znEZmeL5cZoHt5uSPsFjdOkRXNoJPluErg5AQrMmzPiO0jgugS0fuW4GZbMXY4W''@;'; + put 'put ''jkjciZWjtV0S9VNYEP26zPgCCYw0AW1NqVbNnk5LTqJT0MHNprSgU5BjU2iO9Nxw+8EhQIEZnLnknhSQgAlhOXGOJXPusKVpqiXhSJjxlQXkz02RgCcEEKcZRZxmX68lZw+FZP8bYTl/3EAtWgpNT/hyJSVNgAKzpKefOz9UAmbYlsnoCz5vhSVjpkBYmhSWQ2XI95OA7whonGYUYS1ICDp7JCQH''@;'; + put 'put ''NoflDLoEUWj6bqY4oCIiQIFZRJPFoY4cgbSwtGXuClvGTnXcLFRN3mFG+MjNCbdMAp4TUKEZMSWVTKEdZVj2bwrJ6QNI1KNF03PUXGHwCVBgBn+OuYc5EDBNWyaiN/j8OwcIS42x5EICJBBcApeFpjZBaD4Wkn2vG3IKQpMWzeBOOffMewIUmN4z5RoDQECTdybOtGT+PbaMmwaLpbZypLAMwMxy''@;'; + put 'put ''F0hgCAQgNMOwaFpWSs4dMmXvJkPOHqbQHAJBvrWECVBglvDkc9ffSUDbOTZNsWXePSlkhdtu8k6KxdHfCYrPkEApEbgsNNV1fvqQIfs3huUckoHYHaiUDgLu61AJUGAOlRjfH0gCBupY1jfZsuDelEyeq+0cEfBPYRnIueZOkcCwCVx2nSeQDHTqQEj2rtfyRrBosrzRsJHyg8ElQIEZ3LnlnmVB''@;'; + put 'put ''QDvGVY+GsLwrJdOWoEB6BepYJtjOMQt0fAsJlC4BnDeiyDrv67FRsF1kz+th6WDB9tI9HrjngxKgwBwUC58MPgFHyqscmYNyQ3NQJL26lgXSgz/n3EMS8JjA5Tqa3SjYfuhNuM5RR7OnHeqTLSg9Bs3VFSMBCsxinDWOOScCkYgjU5elZCEywxuaDLZ0zIkmP0wCJJDpDNR20ZZ9KG10ZFtY+ntD''@;'; + put 'put ''bjkz0iGBUiVAgVmqM1+C+62Z4ePR1nHRKiTyTLPdbo52yilBEtxlEiCBfBAw0ILSRAvKCydt2bXOlFP7kIGeUosmFxIoPQIUmKU35yW3x6GQIzWNtixamZRpC1F2BLFTKY2z5EICJEACeSBgov2kbdtyen9Idr8Wlovoc85EoDyA5ip9TYAC09fTw8HlQsBxHKmoEpm9IiXz7rCkahQTeHLhyc+S''@;'; + put 'put ''AAkMgQAMl9oVqK/PkiNbDdm70ZSuNgMroEVzCBT51iImQIFZxJPHoV+fgBl2ZPI8SxbfZ8no8Yak0JHDsegOvz4xvkICJJAXApcTgdouWrJnvSFHtkckmaDIzAtrrtRXBCgwfTUdHEyuBNQdXj/OlsWrbZk83xIjZCAGiq0dc+XKz5MACeRGQOMz9e/sEZGdvzJZqD03nPx0ERCgwCyCSeIQb05A''@;'; + put 'put ''3eFllSJz1R1+J93hNyfGd5AACYwEAY0B10Lth+E2370+LN1tas2kRXMk5oLbzC8BCsz88uXaC0DAzQ5HW8clq1Mybgrd4QVAzk2QAAnkQgChmFHEZ7Zd0GxzuM13hMVKUmTmgpSf9R8BCkz/zQlHlDUBR6rqHJQdSsmspbaYUbjDk3SHZ42PbyQBEhhRAuoy125iJw/Abf5KBG0nQ+I4FJojOinc''@;'; + put 'put ''uGcEKDA9Q8kVFZKAGbZl6mJYLZHEUz/WcF1OwhyeQk4Bt0UCJOARgXAM2eZdlux93ZR9aDuZ6KPI9AgtVzOCBCgwRxA+Nz10Anq1XzPGkqX3Q2AugrUSotJmdvjQQfITJEACviKg3YDCpoHkH1t2vBRmEpCvZoeDGQ4BCszhUONnRoSAiRaPs27RTjwpqalnTcsRmQRulARIIK8EwijSHo/bcvAN''@;'; + put 'put ''Q/agG1BPl8GWk3klzpXniwAFZr7Icr2eEXBLD421ZemDFmpbwmhpO7RaekaXKyIBEvAdgcu1M5vRcnL7iyhpdNTEOY9uc9/NEwd0QwIUmDfEwxe9IKACMYzC52ZYxIg6KMiRPlGqUEyhT6+N7Ekrpd7ud55ATbx/1rIUYi1TSOgJSxLlPbiQAAmQQCkQ0JaTyYQjBzZnrJmaFPTO82QpsOA+Fh8B''@;'; + put 'put ''CszimzMfj9iRylr0/R5tS22j9v9Glne1LVG0aywrg7iEiztk4A/Fz1VLhhBCaaHDTjIBl1CfSH9XSLo6DOlqEem4COGJ1xfcjVjL+bBYYq/ZicfHU8+hkQAJ5IfAZWvmeVgzt72I2Myj6GtOa2Z+WHOtnhKgwPQUZ+mtLFpmy+iJtjTNsGTsFJFRDSh4XoVg9bD23H3bne0meOMf93YAJvdaXPUm''@;'; + put 'put ''7hiGxhrph0SSKQslh9DLN3a5E8+1HxywDt4lgaESuMoIdPmBeyzqiq7cuclaBx7PKPR/ZRn4/JUneYcEciOg1sxEwpYDGw3ZtT4i8d5sD9TctstPk8BwCVBgDpdcCX/OMEUap6RkynxbJs52pLpeRAPTNZs7pRndcH3nurg60/0n1zXx80En4P7MwsqjC65R8A9a8qlKTBvK3edV/zn6HyIsbJjG''@;'; + put 'put ''bbQPtS0cs3jBsWEtx3Fr41at5LbWIbzJIaxGeC3w795ie2qZN3S7JuqxYhAGLrBC+J5oOEh6fFilrlPH4W7THVD6q6KPb7I9dyf4DwngGIvgXHv2iCNbnzel5TSOYRy3XEjAjwQoMP04Kz4dU7TclikLLZl9K6yW421YFxETicLmdF37dMICMqy0QIN4U8GoVu6McIQosyAWk8i41RjeOGoHpuIh''@;'; + put 'put ''3DrS3yuoJYjQix48j+cSsPYk+/FcHJ9BSEYqhYuhBGJ/ITjVUu4gBsO9LsI67SzCfF2LOwSkKkYznB6bhoBEEGdsRnDBFcNfFBb4Mlj08RetwB/CRGIVCBep1Pvpx5EY4pNjKhqwDl0PVuxqTR2PCmGNDdGteHDRll4T/w0CAW032d9tyVu/NhGfaeJYxpeCCwn4jAAFps8mxI/DiZZZKA9ky5wV''@;'; + put 'put ''ttShqLmNHzsLFqCbWXn8uC8ck38JuJ5qWGhMtQhqhxNXQDoQhRCREId9PRCOiNPt6dA/Q3o7Q9Lbhdjd7hAEZVpAppAwZkNspmMt/Luvhlo8kfgWU6FZrqJTpHwUYpjxV1GTvtX7KkzLIEo1VCQMAeooJFcEqwUWd9L/+3dHObK8EdDviH5XTuwTWDPD0n4RIhPHAxcS8AsBCky/zIQPx6Fuv2mL''@;'; + put 'put ''LVm80paG8WrtUdciz2A+nKqiGlLGZayu5BBEU0ZIxvtTEodY7IFw7LhgSMclke4WU7rbVVymrZBqqfS7ePRqMtRiG47ZUo4kuSokz2kC3Sgk0FXX6WMbVRVgES2DyID1U5lk3P9q7aTL3atZ8P96IugC1H7Rkm0vmHJyH3qaozIHFxLwAwEKTD/Mgu/G4Ej9OFtueTAlk7TuJMZnJyksfTdNRTCg''@;'; + put 'put ''a8WkKp8UEhXUha2WyI6WkLRdCEknqgZ0tqhVEglecYMC6SZzayL+s0ItnhCdtWNQsWEc/hosiE9YPKu1aoOJUAKITjgaUrgwFFg7+Q2+CdQiflljfh3EU+zdZMquX6HtJC7IWM6oiCc0IEOnwAzIRHq1GyHDlnl32LL4viR+wMKIacsiIM2rjXM9RU/AFZSXW95p/VONdezvtaX7kiFtEJGtZwxp''@;'; + put 'put ''P49yVK1wa+NH0GK5FQ/nPO1uV+tmLRoT1EN06m3NaJEKiM4o3OyaAOVgTjR2VWt/UXR6iH+kV4UvXxSxmWeQAPTmLw0kAJm4UKM1c6SnpZS3T4FZyrM/YN/VvlGF2K/lj6ZkxmK1euAZjfHiQgI3IKA/X24smFuWynETbrphheyAiGyBmLx0FsKyGS7ubtNNqLnBqvhSPgjAYhxDfGdVHcJcmhxp''@;'; + put 'put ''QEmxBngnqhs07lNj+C7HVKuVk4IzHzNQ8HVqAlBvpy1bXzLk2A4YCRCXzIUERoIABeZIUPfbNmFpapxky13vs6RhgiZL0Grptynyy3jcn6rLFkoNntQMbo2RbD0bkgsnDdwidhLxk5rRzcWfBExkv1fUWq6Fc8zkdEUIbYxQVmWIaaqrFRZOCk5/Tl6WozLwHdXv5wG4zHfAZd6L5Di6zLOEx7d5''@;'; + put 'put ''RoAC0zOUxbkidWNORj3LOx9LIYsVLkvEx3EhgYEEtCyQCg+9TSEWt6fTkfZzITl33ICoRBzlRRMlgSgoBzIrpvuamF4Jt7paOMdMsWTMZEfqxtjIXtc5h4XTrRnKGM5imlN3rJjXjMt8y7Ome/FHl3nRzWJRD5gCs6inL7fBa5b4zFtTcsejlphRLe9Cl3huRIPxaVcqagZzGDFc+K+/N+VaJZsh''@;'; + put 'put ''KM8fxw/VGS0PRItIMGb7nXuhFk51qY+BV6NpOiycuK2qD0GspJOG1LqpyUNcioOAusy72y2UMorI8d3aGY0Xg8Uxc8U/SgrM4p/DYe2BistZt1ly57tR90UD/xlvOSyOQfmQ/uRkYiltCAi1UraeCsmZo6Y0Hwu55YLQvZNLCRKIlaeThZpm2DJuakrqmxC/WYEsdZg+U3pQMHbT90eFusy1g9Tu''@;'; + put 'put ''9cgyfzWM2rIUmb6ftAAMkAIzAJM41F3IWC7veg9+HLR+HmKuuJQegbSoRNwdalFqUldXqy0X4fI+fcB04ym722mlLL2j4sZ7rO0xR9U7Mg6WzfGzYN2cYKM4PDoQIYQilaTYvDG9EX4VhoQIkvGO77Vly7Nh6URlB1TuH+FBcfNBJkCBGeTZHWTfNOZyygJb7v1gUgwUaKblchBIAX7KFZUaUwn3''@;'; + put 'put ''t4rKbojKc8cMOX3QkIsn0vXzArz73DVPCaTrcI6basnEOY6MRfxmZQ36sFNsekrZ65VpYfbWs7Zsetp0Q14c9jL3GjHXd5kABWYpHQoQl2MnOXL/J+MoXaLB+7RclsL0uzaKyzGV6v7uaHPkAuIpT+6FqDxJUVkKx0Ah9rGyxpax0yyZNEBsapKQRTd6IfAPaRtmxEAdWlveRPefI1vDaP9LS+aQ''@;'; + put 'put ''APLNWRGgwMwKU/G/SZM1RiFTdM2nU1LXxGzx4p/Rm++BZgebl+tTakzlRZQROr43JM2Iq+zthOLkQgJ5IqDF3sfPdCA2kzJ6CiydVZowph3BkCCUp21ytUMjoDHX2jJr16uGvPVahMk/Q8PHd2dBgAIzC0hBeEsk4sg9H0rI9KUG61wGYUKvsw9qhwjBRWmERRL9trSeFjm535BT6FHc2UpReR1s''@;'; + put 'put ''fDpPBDQkR/unT5pny+R5joxusiVcpt4TaBvNRs/TdrnaLAnghBFBlvnhbSJvPIMLz27GXWdJjm/LggAFZhaQiv0tIdOWBXdZcvu7UMeQrR+LfToHHX/GWmkjYauzzZYz+005tgexVqdZlmRQYHyy4ARMXOSOmaB1d5Myaa4j1Sh9pNnNllo1qTQLPh8DNxhB7/rmo7Zs+ElE2tHSFZepA1/mfRIY''@;'; + put 'put ''FgEKzGFhK6IPwYIwZoIlD34uhStVZowX0czddKjuzwAyQzVZK9HjyPlTgjp3ppsF3oc6lVxIwK8EyqscmTgrJVMWatwm2lmWw6qJJHRaNUduxsJI/ulssWT9T8Ny/miYon/kpiIwW6bADMxUDr4jkZgtqz+eRJYnyojQejk4pCJ7VqWjgSB9/QXoanfkNKyVR3cY0oI2jbZFYVlk01nSwzVwAVyH''@;'; + put 'put ''UkfTITQnzUvJqAaEd+CiyUL3IFo1C39o6MVqsldkMzr/HN1hMvmn8FMQqC1SYAZqOq/eGa13Oef2FHqMj6xr3LW0wRWmrQa1OPOVnrj4BdGOIDZu1bXLgKyr5+/aR2k3eLq8UOsZR47tNOUEMsF72hlbeS0rPi4+AuXVSAqabcm0pZY0TtbYwLTQZCH3ws6lm/yD8/FbSP7ZieQfXrQWln+QtkaB''@;'; + put 'put ''GaTZHLAvmjVejbIhj/xGQirqDHEKXJJIxZDGV2kP6wQsp71d6GHdJRLvgTu3HyIT/0XLbYlWog9ytYi6zGJlKJeB2owpWC8oNtOT6Ypz6EcD2eCJXlvOomblkW2mnD0CS0OcwnLAIc+7ASGgsZpjJ1syY5lmoltSUYMMdD0lqFUzIPvo+93AiScCL8nezSJvPhfmucb3E+bPAVJg+nNech6Vdty4''@;'; + put 'put ''ZU1SlqyBEOlHcFOBFrVShiEq4wjcbzkpcuYQivmi1WBHiymJPtWNKpkGLhCWldodxIbVAnFZs21pQK3OCrSiS+oPCgRnKS5pYQkZDpHe22nLqQMhOYx6dRdP4ce2NJGU4mFQ0vusrQ3rxzkybbElUxdaUtOAbwXc5yx1VKDDQkUm4jKP77Ll9V9EpKdjgPepQEPgZoqbAAVmcc/fdUbvSM0YRx7+''@;'; + put 'put ''Yhw9g2G9VPdznhcVRG7xXojZ0/sMObAFYghFvG1YHoayqFu/fpwtM5ba+FFBTFY9+uZCrMKPPpTVFO17XWEJayXSsdDKzcHJPR0L1XaB1sqinVQOPGcClTXIPl+QkpmwajaMS3tH3OzznNfMFdyMgJthfsyWdU9GkATknqFu9hG+TgIuAQrMAB4Iar1ctiYlS9dI3q2XerpRo6QmnTQfdWT7S2Fp''@;'; + put 'put ''PmbmThXB/zWwas5HeaXpt8KVHkW5HRWaAV2Uo7rBVUZ3XLDlyM6wHNsRkq42D1gGlBl3q/QIxMrh5UAy0Jxb0Ad9CrwlmhCk9TRL4/pzxCZcM8zbmm1Z/yQMB2dwscse5iM2F8W0YQrMYpqtLMaqbqVR9Y489IW4VNZCsOTRxeyKS7hwraQjezaasvs1uLUT3lraQtBX49F+btnaFOKyUCQ+obVM''@;'; + put 'put ''sgBRJG95W1g6cqlZ5Og2Q44ieae3y1uORYKDwySBrAhEoojPnO3I7FuTMm6agXhBB0ITkecBOjdkBaKAbzJxkd+DGrsbfhqRs4fx20KRWUD6xbkpCszinLfrjjoE6+U8ZI7ficzxfMZeqjBy4wO7bdn8VERO7EHrmDwtmrBUhQxTFZmzb0FGvPrdi9yY6fKDxVLFcutZWw4hcefErrD0IQmKCwmQ''@;'; + put 'put ''QHYEwrgAHTsrKfOWO9I0UxNThCWOskM3rHe5ZYz6HNn48wjCdygyhwWxhD5EgRmwydYr+wc/l5CxU/LnUk6LS0O6ECO4Di6TC4i1LMQSiTmy8J6ULL7Pgi7DKIowLvOKsASwtnMQltvVFW5SWBbiAOI2AkvAxClonCs0YdmcEZKwCk26zvMy36EwEq0SjmxGdvmhNzXDnxfFeQEdgJVSYAZgEq/s''@;'; + put 'put ''Ar7nTXAnP/iZZLrTVx7cRa5Aglu865LIaz8KSwuymgu5hCO2zLvDklvWQmSqi6ZIfGLuKRgGyzCslpfOQ1hu1eSdMFzh7iuFRMhtkUBgCajQbJqZkrk4RzRNh9AMo8YuXeeez7dbKxO/L9teNGT3BnT9YYMHzxkHYYUUmEGYxcv7oMk9t61NyKL7EKuYh9JEaZEUkjg6Pbz6A4+SeYbBXy2Zi1al''@;'; + put 'put ''ZMkqxF1pzUyfL1q6yYSw7O2y5ehbpuxFvGp3G2MsfT5tHF4REzAhLLXkmZ4nxkxCTQZciGot4DxccxcxpRyHjgQrFfQ7Xg7JW1qQPcWL5RyJBu7jFJgBmtJYmSUPfTEp9eO1Vpz3p1I9fdhwTb/+c1MOb8tfzGU2UxKrsGXFuyyZdStiTX3aAjPdeQc1QeO2nNwVkj2vh+XSucJafLNhyfeQQFAJ''@;'; + put 'put ''RMscmb4UFs3bbZQ/Q0KihtWoRTOoO1zo/cKPQhgVRHb9GtbMFyIIS6DILPQU+Hl7FJh+np2hjA1lfRon2bIW8ZfaQcfrM6ieNkKwwh14QwUmApxGfEG2fIMjqz8BQT32cku5ER9TegCZLkY2Et5PHxbZs27krL0+QcJhkMCIEiivsmX2cr0gtd2C7W63MDg/KDQ9mBb8OLhdf14X2fJcRFJJikwP''@;'; + put 'put ''qAZiFRSYgZhGzei2ZeGdltz+Hu+zx93TBdwhbRcceenrUent9od7V0MCJs+zZeWH8xdzOpTDw+UEcW+A1cWTtuzeGJaTu7XYPE+4Q+HI95JAvgiMakAMN86TM2DVjKFbmK3dwqgyc8eNU5x2/dm/yZE3nmVrydyBBmMNFJjBmEe4KRy590MJmbbEkJTHLmOVR45hyIYfm3IEGc9+WlxX+buTMusW''@;'; + put 'put ''xJ16vN9D2U+NszTQIrPrki374Qo/iHqWiT5/CPGh7AffSwKlQGDMJEsWrrRkEmppmoj2YSKQN7OuXX8ObxWUMUJN5DjPf95QLd61UGAW79xdNfIyxCQ+8hsJGdWIgHYEs3u1uLY3WOTOHxd58ZuIsUn566QRQmjA2Cm23A9XebgMoy1w6SI3zhLCsr/fkWNvhWT3+jBEpr8YeXUscD0kECQCBs4d''@;'; + put 'put ''k+dbsuDelDSiiYPN+ExPptcVmdsui8x+ngs9gVqkK6HALNKJu3rY6N893pFH0XvcQI0yLwOLXIEJAfX6Tw05uHVkE3uu3ue3H8XKbbnjMe1THCqYFVO5uKU6oDDPHbaRRRlFq0yeTN+eFd4jgeIgEMX5Y/ZtllvaaFQd6gfTbZ7zxKnIPLLNkQ0/o7s8Z5hFvAIKzCKevMzQ1Yo3ZYElqz9uuW0b''@;'; + put 'put ''M8/neqsiyoGA0oLqv/xKFMXA/SmgDJQkmTTHklWPIxazAO3LXHc4Ep60Z7iWHDoM4Z1iiY5cDzd+ngRGlEDNGJQ1WpmSqQttiURRiYP1M3OaD4rMnPAF4sMUmAGYRk12WXhPUpY/Cgueh/Uv01Y6Qw7vcGT9kzHfktIad1V1jqz9VEJqkFGuPwz5WDLZ4cm4yBG4wzU7vJPu8Hyg5jpJYMQITJqL''@;'; + put 'put ''bmGrbGmcorGZ6ba0+TmjjNguFmzDaXe5g8ojYUnQXV4w7n7ZEAWmX2Yih3FoUeHbH0nK/Hu8F5haSXfTz0NyYIs/3eMZbNFyR5aDwdzbvXeTu2ECMN5qEs/FkyHZ/kpIzhz0N48MF96SAAkMnYC6zefekZL5K2wpH4WLVi3STpU5dJD4BEXmsLAF4kMUmAGYxnxlkKuwSsL1++I3TLl4yt+CykQW''@;'; + put 'put ''/exbLcRi2ggT8K67jxsmgKDWODLCD2wOyT5kiMd5JR6Abw13gQRuTqBhvCVL70vJxHmGhEIoacQi7TeHNsg7IuUmzp+2bPqF1sn0Z6jVIMPmUzkSoMDMEaAfPq7i6sFPJ9CDFwXHE96IK1dY4Z+eDkH8ZUx6OvUZ/y4hw5GmGYhD/VjKLTviVaKTusW15/mR7SjT9DM/FJj37xxwZCQQRAImQpBm''@;'; + put 'put ''LLPQgjclo+qRbc4koGFNcxiJP26dzKcgMhmzPiyGxfYhCsxim7FBxhuOWvIIWkQ2TEif/AZ5y5CfcuWkFldvRoLPV6OS8HtNMyQ61Y+F0P5sQmKVGL1H5YpcgYn2mEd3hGT9T6JD5sgPkAAJBINAzWhLFt+fkukLQ6ggwd7mQ55VnJbDUVP2rNeOPyhyb9GSOWSGRfYBCswim7DBhhstt+ThL6Bl''@;'; + put 'put ''YlM6Vmiw9wz1ubTAFGk5HYLA1B6zfj8ZaOtIS9Z+JiWV9agF6lGiT8aCeQy9xNc9SYE51OOI7yeBIBHAmUVm3AKhiSLtNag5TGvmEGf3ssjc+Qp6l78chsh0f2mGuBK+vVgIUGAWy0zdYJz5FJitZ0Py3Ff8V2D9nTjSAvOhz6akoo4C8518+AwJkIBXBKrrbVn6QDJtzUR4DmMzh0BWRWbEkG0v''@;'; + put 'put ''iux8LUKROQR0xfZWCsxim7FBxps/gRmSjouOPPuvcJH7PrGFFsxBDg0+RQIkkCcCV6yZqzU2M31Ry0zzLGFDZJpmCH3LDdm7KQyBTktmluSK6m0UmEU1XYMPNl8CU6ty9HVrDGZMutp87iJHDGbDOEce+EweYjA1yectkQ0/8W8t0MGPDD5LAiSQbwJaoP2WB5MyZb6BhECtmwmLZr43GoT1I8Zf''@;'; + put 'put ''az9pjcwj2xGTaVNkBmFaB+4DBeZAGkV6Pxyx5aEvJNx+ul6X6LFwZfnSt01pPubvMkVXssg/jixyExPp0Rk+HYOJ7MctjrzxNGMwi/QrwmGTQF4JaC3iObdrbGZKyqohNFGgndbMmyPXdrsWGrCt+7EpJ/eYbsWOm3+K7ygWAhSYxTJTNxinlim6/xMJmTjHuzJFujm9ngxBrb3xnCN7N/hbXLl1''@;'; + put 'put ''MG9LyZ2PiaQS1g1oDe2ltMA0ZNevUWD9ZZYpGho9vpsESotA42RLbllrSdN0GDJZziiryTfCaI7R68jL3w/LeRgyKMyzwlYUb6LALIppuvEgzbAtd70/JbNvy0MnH/TcPrHbkVe/72/3sHbeWPHuJIqtG5KMeyswbduQN5833CLrN54JvkoCJFDqBMoqHFl8XxIWTUdMXJM62gWo1KHcZP9NJP30''@;'; + put 'put ''tNnyyncj0nIO4VgIS+JS/AQoMIt/DtHC0JFb1iRlyQMQmH0eiiuw0RNjb6fIc/8WlZ52f8Zh6ul7VH06/rKmwdte5GrBTCZM2fjTkBzf4+8wgQAcytwFEggMgelLUrLsAQvnJu1pjrMUVeYN59aMGnLprCO/+m5YOi6hc5LrQ7vhR/iizwlQYPp8grIZnsYfzkKbxHs+6EjKQ+udbjvjJt/8TLpN''@;'; + put 'put ''YjbjKfR7NP5p6iLd/xRin7zduu5/b6/Iq9+NysXT/hTY3u4x10YCJOAVgbqxttz2CFpNzoLItBGX6U2jNa+G57v1hGOmnDtky69+GJH+bp5vfTdBQxwQBeYQgfnx7WplGzvNkgeRQe31VZ8KLMH3XAuuP/81f/aRjVU6svKDCZmEfsGexl9i121kp3deMOSFb0alr8ul4cdDgGMiARLwKYFIzJYl''@;'; + put 'put ''91sy73Y77TJnP/MbzlQELSWPbLdlw0+jCHfiOfeGsHz+IgWmzycom+G5LuJaWx75rYSUVyGD0aM2iZlt61fcMQy4iQ05vM1fbmIND5g4x5b7HkcqojvQzKhzv1XhrijPHRZ5+btltD7kjpRrIIGSJTBjqSXLHkxIdQ1a+mopI7rMr3ssqMjc/ZojW55nIfbrQiqCFygwi2CSshmilip68DNJGTfD''@;'; + put 'put ''20xy3bar26C22lF0/UXEYvb1+sd1UV5ly6rHUzJ+BrLHk976n1RgOo4m94Rkyy+ZQZ7Nccj3kAAJXJ9Aw3hL7niXJWOm4dzCLPPrg8K5N4wE0zeeDcme11mI/fqg/P0KBaa/5yfr0bmJPmhdtmSNt4k+mQGoyDTwhd+9AVeVz/ojozwctWXeHYhxethGLTVvxaXutwpMK2nKhp8bcmynFtfkQgIk''@;'; + put 'put ''QAK5ESivcuTWB1Poaa4mTC3Mnk6mzG2twft0CIXY1Rv36x+H5cQu1sgsxhmmwCzGWRtkzCHECk6cY8n9n7TcvriDvCXnp1RwpZBEs+7JMIrijqyr3EBi09jplqx+3JJIOU7QiGvyclFB7YBpT1tIXvhWVLpa/WO19XI/uS4SIIHCE9DEzPl3oTA7yhnFyrQwuwY6cbmWgNbI7O9B0s93Y3L+JM7K''@;'; + put 'put ''LF90LSJfP6bA9PX0ZD84BwE9laMcefS34lJZmz5hZf/p7N6poktwVdndgbqYyKpu1XplI7FA+NWORtzlR1NS16SdIPJjvdST2ckDIq99P4pYTHfvR2JvuU0SIIGAEpg8z5LbHk1KTR0MmWrJpMp8x0xr+aL2Zlte/nYU5Ys0jZXn4ndA8ukTFJg+nZjhDEvL9dz5GAr8rvC24PrAsehXOwRvcds5''@;'; + put 'put ''kVd+UHjLnpvQVOPI3R/WuMuQp1njV+0ndtS2UGD9BS3PxPjLgWx4nwRIwDsC9eNtxGUmpXEqXMJsMTkoWC1fdOZAunxRwkc5AIMOlk9eIUCBeQVF8d9RN/mkuSlZrW7yVP72xxWZcF20nhH59RMR6WgplCXTkaoanIzfl5IpKEnkZceed9BS9zgKy7/4rYh0Fmz/3jEKPkECJFACBCqqHVkOkTlt''@;'; + put 'put ''gVox2cd8sCnXzPK9G2wk/kTFStGKORgjvz1Hgem3GclxPLEKWx76XELqx6OjDVqU5WvRr7eB9l7t523Z+POInD+e5yQYCL66RojLxyzXcplPcZnOHg/Jsd0hWfcjf/dgz9f8cr0kQAKFJRCGB2oJkn8WrHDgJWLyzzvo40dHW0puedqQPZuQ9GNRZL6Dkc+eoMD02YTkOhzNJl9wT0pufxQtDvs9''@;'; + put 'put ''bmtzzeD06x0yQxJHp5vtr5hycLOZl1hF3afxsyxZjo4YdY1m3tzimd1TgZlE9vj6Hxlycn+ehXNmo7wlARIoeQIaS6/JP8vWpCQaS2dR589MUHy4NbNcDSevPmHK6f0oX8TYeF9PIgWmr6dn6IPTGMWaelse/iKKro/KT7LPwFG515D40odMQ07stuWtVyJyqdkbl7nuSwVKeiy4OyVz7rQliqtX''@;'; + put 'put ''C7Xj8rm41kts4PzxEILK/dm5KJ/7z3WTAAmMPIGpC1NoMWlJFRI3NfGHyT9vz4lmlne3O27ST1uza+Z4+0Xe8xUBCkxfTYc3g1GL37I1SVmqNTHzbMXMjFi/5uq+6Oly0OZLO/6Y0o4Wi8NZ9Cq+rMKRKYttmb/CkoYmxFuqsPS4Q9FgY1OBaVumbHo6JIe2jmwppsHGx+dIgARKg8DYqZabtFk7''@;'; + put 'put ''BpZMnBMpMt+ed7dn+REk/XwPPct7hvc78/baeC9fBCgw80V2BNebtmI6sGLGC2LFzOxq2poJoYmC7D2djpw7EoJV05ALJw3p6775SSActqWmEYlK82yZutCS+rFoqYazaj5jSTNj19u3rZfIkEcZpmT85mMe+HneJwESIAEvCdQi7vzO9yZk7FT1RjH5ZyBbTfrZ97otm59m0s9ALn66T4Hpp9nw''@;'; + put 'put ''cCxqxVy4MinLHy6cFTMz/IzQDEdM16Xd02FLx0VDLp0LSRcys/s6ULBdswDxv1oqK5EZXoOr9PpxKRk1Wp8Lu20fbY+Lp2fGd71bFZippCGvo3PP0Z20Xl6PE58nARIoHAGtb3zH+xIyeTbiD1Esk5bMy+xxvlZjxuanUEpuM+IxbTzBxVcEKDB9NR3eDqa8yhLtT94wAbGLeShGns1o3a88EoFM''@;'; + put 'put ''xGkauNWAdW3/lWlboaLObQmG522M0RrwWjbr9+o9Og5VvCf2oVPRE7giZoaiV2i5HhIggRwJxModuf3daC+5BP4piswrNPW3I5VAPOZ30pVMKL6voPHFHQpMX0xDfgahdTG1U8R9H0VdTFV0qu64vIOAaktNRuzvFjem5+JpZo6/AxKfIAESGFEC4YgttzyclHnLNXQH53Sez935cDv9nLNQsxiN''@;'; + put 'put ''P+AhY6efET1Mr9o4BeZVOIL3QLv7rHg3Tkp3Ft5VXiw03dhLx0SpJUd2vca6l8UybxwnCZQaAQM9zJfej1qZKx107WWtzMz8azzmke22rPsxvE9J1x2VeYm3I0iAAnME4Rdi05p9WFVrywOfTko9srFHylVeiH0dzjZccYl/zh5Cz3G0vkwmeHIaDkd+hgRIoHAEFt+XlCWrIDKRGCn4n8ZMEc0s''@;'; + put 'put ''3/KsyO4NiMdkiFPhDsYbbIkC8wZwgvKSiqix0xCP+cmkGFHtd8vTkc6tKyXhbepsDcmr349I23lmjQflmOd+kEDQCWh94KWrUxBW2FOKTLSWAwa0SH75e2FpPqxF2IN+BPh//ygw/T9HnowwBNfK3Nu1rpqNDG6ejTLiMtlnyIZfaJF4Zo17cqBxJSRAAgUjMHdFSm590JJwGdQUGreVuqbSWszt''@;'; + put 'put ''zZfjMdsQj6nWFS4jRoACc8TQF37DWrrotoeSsmgV4zH1vGPbhux4OSS71kUKPxncIgmQAAl4QGDO7SoyUxIp05Oam87pwVqLdxUaj3l4q8j6n2iZPHqlRnImKTBHkv4IbDuCTMS7PpCSmbeUrshMX9Qasvf1kLz5HFwpaWf5CMwGN0kCJEACuROYudSSWx9NSlk5RabS1MzyTfBM7d9ssj5m7ofX''@;'; + put 'put ''sNdAgTlsdMX7wRiKm9/zwbhMXWRKsg9+lRJaXHEZMuTgmyJbnkGvcS34zoUESIAEipzADIjM2ygy3VkMoeZyot+Wl74ZlYunYcXUOnRcCk6AArPgyEd+g5pZXlntyL0fTMnEBbBklojIzIjLA2868uYzUYrLkT8UOQISIAEPCajIXA6RGaMlU8KwYjYftVGEPSpxxNpzKTwBCszCM/fNFssqtM9t''@;'; + put 'put ''SqYvhciMBzdC3L121fMLYi73bArJjhfRipKWS98chxwICZCAdwRmL08i1t6WSAwpPyWezxkpN2XnKyJbcc63WbrIu4MsyzVRYGYJKqhvi8RsWf4ICrHfYUhS20lqq8YALSouQ2G4S/pCsvNVCMz1iMlhzGWAZpi7QgIkcC2B2Uj8Wb4W2eWlLjLxA6C/Aa+gdNHpAzj301V+7aGS18cUmHnFWxwr''@;'; + put 'put ''1+4QC1ehptp9Fgr3hlBLLBgiU13i2v+8sxVXsC+F5fhOtoAsjiOSoyQBEsiVwLw7U3LLAxCZ0dK2ZBooXdRxwZEXvhGWbpYuyvWwGtLnKTCHhCu4b9a+5VPmw5r5rqRUN5iS6i/e5B+9YtWiuyEDMTiHHXkDmeKXmikug3v0cs9IgAQGI7BoJTr+rEZWtVnavcu1dNH+zQ4yyyMoXeT+QgyGi895''@;'; + put 'put ''TIAC02Ogxb06R2pGO67LfMoCwy3IXmxdf9JWS0P6ey3Z97oJl3gY7R8Z4F3cxyVHTwIkMFwCy9YkZNFKXHCjd3nJdrdRTYmfgQ1PhuUoPFmOTZE53ONpKJ+jwBwKrRJ5rxlG158Vliy6NylVdWFJFEECkJ4uNNZS/zt7xJEdr4Tl/HFaLUvkkOVukgAJXIeAeqdueyQl8+/Q0KfSFZka/tVzyZbn''@;'; + put 'put ''vxaTjrb0b8V1kPFpjwhQYHoEMnirgTVzjCOL0et2+gJLzBgyrxP+yzR3hSXiLA0jJK3NNoqnm3JsO7PEg3c8co9IgASGSyAMo8GK9yTRYANrcEpXZKqr/BDK1G34aZhdfoZ7MA3hcxSYQ4BVim/Vq9+maZYsXGlJ0wyRMAKmkz4QmpkEHu01237RQmuwiBzaZkpfN10fpXiccp9JgARuTEArhtzz''@;'; + put 'put ''vqRMXghfsVOiMZn4eTDg2Fr3o4gc22mgXTB/L2581OT2KgVmbvxK5tMqNCfMsmT27ZaMn25LWRWshChrVMiMc/dUAGtlOJyOD209I3J0uylHdyPmsptxliVzMHJHSYAEhkWgrMqWVR+GsQDncG24UYoxma6rvB2u8q/SVT6sg2gIH6LAHAIsvhUEIDRHN9kybYktk+ZYSAoKiQmrppWyxbIQ4+Nx''@;'; + put 'put ''hSO1VGrbL9PUq01HutstaT4CNzhEZfNRCM0khSWPSxIgARLIlsCoBlvuezwpdeP0E6UpMtVVfnCLIxt/Rld5tsfNcN5HgTkcavyMSyBaZsvYqRYsm46MnWbLqDpHohVht7CtWjZtXB6rKMxGdLrWSRWTiKXUP42p1Of6+1LS0x5y+8meOWzKeYjK3i733ZwFEiABEiCBYRAYM9GSe2DJHFWvzTWy''@;'; + put 'put ''OkUPYys+/oj7WyPy6ydMOb4rzALseZoqCsw8gS211ZphW2qRFNQwERbOCZogZEtljQXBaUg0elkwuuLxajKIN0c4kCOWbUsi4UiyV2ClDElHiyGXzhnSciYkXbifiFNUXk2OjwYSMFDzNAwrNy5RUI5FZHRDndy+dKHMnzVDImHt3uSxaX3gxod5Xy+++uNxaWvvlIuX2uVSe4f719HZJV3dvdLb''@;'; + put 'put ''1y/JVGqYa+fHSODGBCbMSSEmMyWxKnxncCz67xty4/Hn+mq6ALstL349Kl34zdF4fi7eEqDA9JYn13aFAKyZZSLlVY7EKhGzWRnCYwdJQmqlvPwmCMsEit4m+0TiPSE3QaevN4Qi76GSO9ldwcY7VwhEI2EpLyuTyspyqa6skKqKChlVXSU1+jeqSirdx5VSWV4uFeVlUlYWc+PK9ODR12trRiG0''@;'; + put 'put ''wt+lqvRHTf/S8XC4wEomXdHZB3HZ1dMrnV09V4Rna1uHtLa1u4K0HSK0o6tb+vrj8BLgKo0LCQyDwOzbknLHY9o8N23GLDWRqa7yXevQ6Q3NOCz2Kh/GEXTjj1Bg3pgPXyUBEsgDARVV5RCEVRCOdRCC9bU1Mrq+VhrqavBXi/t1MqqqQioqyt33RSMRicViCJ1IX53orYqyjLjK3Opzum7L0ixZ''@;'; + put 'put ''jS8rrp9MHbsuun96X28z9zP7k0gkICz7pfuyAG3r6JQWWEBbLrXJxdY2aYEIVSGqVlAK0DwcvAFb5a1rE7J4FTzliKMvrm+LBxOhXzdo6xe/G0bXN3WVe7BOruIKAQrMKyh4hwRIwEsCGRFZW1Mto+vqZFxjgzSNHSONcF+Paah3LZGjqiulDMIxIx71MyoWM38qqgaKRy/HV6zrGihC1UKrj/U2''@;'; + put 'put ''I0DjcLurAO3p7RMVn2r5PH+xVc5daHFvVYy2dXTABU/rZ7EeA16O2zRtuftDSZmxBImUSVyYebnyIliXGTXQlMOWl78VlXhfxr1WBAMvgiFSYBbBJHGIJOB3AmWxqGt5HNc4WiY2jXX/xo8bA2FZ67q1K2GJjMAKqWIoIxoHWhn1OS7eEFDGmb+MAM1YfJV5b1+fdHR2w9XeIc0trdJ8oVVOnjmH''@;'; + put 'put ''2xbXEtoJ17sm6HEpHQLlFbas/lRSGicjJh4JmqU2+2G4yrc866C1cERsuso9O/ApMD1DyRWRQPAJqHDReMfG0fUyeUKTTJ3YJFMmjod1crTUw9VdVVWJOqXqakq7p1NIUsncp4j0x/Ghc6iCU8Vnxv2uVmIVnl0Qly2weJ5tviAnIDpVeJ7BfbWCJhJJf+wAR5EXAnWNttz/qbhU1cKKV2JJP1q5''@;'; + put 'put ''JN6L2phfj0lbs/rNmfDjxUFGgekFRa6DBAJKQOuPumJyfJPMnj5Fpk+ZKBOaGiEma9z4SBUoKk7UMpZxawcUReB3KyM8M+JTH+sFQndPj7S0tsups81y7NQZOXryNIRnsys6dd65BIfARGSWr/xQSsIxSCyYMUvJkqkJP4e3ObL+J0j4YX1lTw5qCkxPMHIlJBAMAhoPqa7tGRCSc2ZMdW/Hjhnt''@;'; + put 'put ''urnVMqkiUkWH3tIiGYw5v9leqODMiE691Uz3ru4eOXseVs7T52T/4WNy5Php93F/PHGz1fF1nxOYf1dSlj+KQWqinM/H6unw1GgJ4+2vfxCRE3s0iZBWzFz5UmDmSpCfJ4EiJhBBKaAmuLfnzJgmC+bMkOmTJ7iJOFWVle5eqYUqY50s4t3k0D0mkBGc6mbXRa2c5xHLqdbNvYeOysGjJ1yLZzLJ''@;'; + put 'put ''Op4eo8/76mC4lrseS8isFYiXLrGkH+1K13rGkRe/EZG+Hib85HqwUWDmSpCfJ4EiIqDCoHZUtcycOkkWz5sl82ZPlwnjGmGhrHYTQzLWSbVQciGBbAnocaV/auXWpau7G3GcF+UAhObOvQdcwdmK7HUmD2VLdGTfF9Okn4+lZNx0xFKXWNKPusrffF5k12vw2DDhJ6cDkQIzJ3z8MAn4n0AYVqYJ''@;'; + put 'put ''yOxWQblo7iyZOW2SWyZIxQAtlP6fv2Ic4UALpx5jrajRefj4KXkLYvOtvYeQOHQeoRaM3/Tz3NaNtWXNpxNSOQomzRJK+rmS8PNvSPi5oG5yusqHe5xSYA6XHD9HAj4moGWDpk+eKEsXznWF5dRJ49HdZpQbN6lWSv3R50IChSKgrvRM1rq2wjx64rRs27VPtu/e72aqsyVmoWZiaNuZujAl934w''@;'; + put 'put ''JYZGQpRQ0o9aMQ9uEdn4M1OsFF3lQztq3n43BebbLHiPBIqagCbozJo2WW5dPF+WQVhORLZ3BdopDkzMKeod5OADQSDjStcsdY3d1AShzdt3ytad+5AodJEXPz6b5VseTMqS+9DwoJQ6/cBoqVn0L34nLOeOoOwaI4aGdVRSYA4LGz9EAv4gEIGbW62Ty5culOVL5rs1KcvRm1stlGqpZKa3P+aJ''@;'; + put 'put ''oxicQEZs6u0ltLfUBKGNW3a41k3ttc5l5AmEI7bc9/GkTJoFT7lVOkXYw+jwc/awIy9/JyLJOK2YwzkSKTCHQ42fIYERJKCWH+3ZfRsslXctXyrzZk1HT+9KisoRnBNuOncC6kLPlMI6fe68vLF9l6x/Y7scO3lG6ELPnW8ua6hpQDzm5+JSXQOhVULxmNpGcsOThhzcmk5ey4VhKX6WArMUZ537''@;'; + put 'put ''XJQE1Fo5fcoEuXfFrXLHrYtRXmiMux+ZzO+i3CkOmgQGIaBCU/+0beXOvQflVxvfkB1aevCmAABAAElEQVR7DqDbUP8g7+ZThSAwBfGYKy/HY5ZKJ1EjHJL2CyLPfCkKKyaTfYZ6nFFgDpUY308CBSagsZWL5s6UB1beIUsXzHWLnmuxaybqFHgiuLmCE1DXufaw1+P9CLLQX9nwhmx88y25hD7q''@;'; + put 'put ''XApPYPkjSVl4T2nFY2rCz6anRfasixQeeJFvkQKzyCeQww8ugfKyGJJ15snDq+9yywvFIDT1h5Y1KoM759yzwQloWIgKTV1Oo2WlCs3XXn9TzrdcYpzx4Mjy8mwkBlf5JxOoj4ki7CVSHzNkhqS305an/6VM+rpoxRzKgUWBORRafC8JFIBALBqFpXKOvOuBlbJ4/mxR17gKSybsFAA+N+F7Auo6''@;'; + put 'put ''13jNc8g4f3n9ZvkVxKYKTV54FWbqRk+w5IFPpSRaoZnWpZH0E4UVc8erIm8+RyvmUI4yCsyh0OJ7SSCPBMJh0+39/dja1XLnbUtEhSaFZR6Bc9VFTWCg0Hz+1Q2u2Gxto+u8EJM6D/3Kby+hfuUh5DYlEf77zJcj0tGSbo9aCM7Fvg0KzGKfQY6/6AmoZXJ0fa08ev+9cIffLXW1NXSFF/2scgcK''@;'; + put 'put ''RSAjNI8cPylPvfCabHhzh/T09hVq8yW5nZDhyH2PJ2XKotLpV65WzL2bHNn402hJzvlwdpoCczjU+BkS8IiAWimXLZwjH3r3Wpk/e4Zbu5LJOx7B5WpKikAU3yX97mzduVd+9PQLbv9ztqPM3yEwCqWLHkQryap6xCWWQOkihAHj+HLkuX+NSus5WjGzObIoMLOhxPeQQB4INNTVymNr75NH7r9H''@;'; + put 'put ''KivKJZFI5GErXCUJlA4BTQZSodmGLPNfvPCq/Oz5X0k8zu9Vvo6AGUstufsDqZKJxYzETDm83ZbXfhjLF9JArZcCM1DTyZ0pBgKaoDAbLR0//eHH3CQetbrQalkMM8cxFguBTN9zzTT/9pNPSfPF1mIZelGNEw5yuefDSZmxVLPKLW1XHuhFrZgw1srzX4vIhRO0Yt5ssikwb0aIr5OAhwQ0kWfV''@;'; + put 'put ''HbfJJz7wLhnXOBrWlbiHa+eqSIAEMgTUmqmlvbR+5pe+9YTsP3xMUriY4+Itgeo6uMo/m5Tqeqy3BFzlasU8tsuSV74DK6YqTi7XJUCBeV00fIEEvCUQi0Vlzd23y+c/9n7R4umaIc6FBEggvwRUZGqf8y9/50nZtHUn207mAfeMZXCVvw+uctgwS8GKCWUJK2ZYmo/Tinmjw4kC80Z0+BoJeERA''@;'; + put 'put ''i6Z/8NEH5MPvWYuL3hBd4h5x5WpIIBsCWqS9vz8uX/nuk/Iq3ObxBC/usuGW7XtUWN77kYRMX2KUhKs8gh7lJ/Y78vI3Y4EX1NkeA4O9jwJzMCp8jgQ8JFBRXiYff/+j8v5H1rhZ4iwI7SFcrooEsiSg5YwS8Bp8+Vs/ktc2UWRmiS3rt2lW+drPJaRyFNzGQS/Ajl1EF1N5/uthOXcknDWjUnsj''@;'; + put 'put ''BWapzTj3t6AEVFx+BFbLjzz2sJslzm48BcXPjZHAVQRUZKol8x++9j26y68i482DOSuScud7oC8R6xp0V3kmFvNlxGKqV4rLOwlQYL6TCZ8hAU8IaI3Lh+67S37jEx9029jRcukJVq6EBHIioO7yVsRk/o9//JocOHJcLNvOaX388NsETBRgX/2JhEyYg+dQMzLIIjOtKRGL+XVTmo/Rivn2UfD2''@;'; + put 'put ''PQrMt1nwHgl4RkDLpGgB9T/+3c+5CT0sQ+QZWq6IBHImoIk/ew8ekb/556/LBfQx5+IdgdETkVX+qYREyrVXOayZ3q3ad2tSK+bRncgo/y6tmINNDgXmYFT4HAnkSGDsmAb5T//uczJ35nSWIsqRJT9OAvkgUF5eLk+i48/3fvqs9Pah0TQXzwgsezApS1c5Ylt2oAUmksk13FR++dWIXDzFjPJr''@;'; + put 'put ''DyAKzGuJ8DEJ5EhAM8Y/gIzxT37w3Yj34g9Xjjj5cRLICwEDWRra5ee//f1XZM+Bw3SVe0g5Vo6En8/HpX4cFBgiEIJuxTy41ZZ1P2J3n2sPIQrMa4nwMQnkQECDvSdPaJK/+KPfltH1dW7WeA6r40dJgATySKCsrEx+jYzyf/za96WrpzePWyq9VU9ZmJKVH7bFgMIMssDUWEwb8abPfDkql5pp''@;'; + put 'put ''xRx4pFNgDqTB+ySQI4EyFFPX/uKf++j7ab3MkSU/TgL5JqAXhFoT8//6/74s+w4dpRXTQ+BaG3PVRxMydVHwa2NGy0zZvcGRTb+Iekiw+FdFgVn8c8g98BGBuppqxF5+Hj3G5zD20kfzwqGQwPUIaCzmD372nDzx1POMxbwepGE+39DkyJrPxKVME36wjqBaMkOoiRnvE3nmX6LS1YYHXFwCFJg8''@;'; + put 'put ''EEjAIwIa0zVz6kS4x39XKivK3dJEHq2aqyEBEsgTgSjKie3ef0j++n99Vdo7u/O0ldJd7S0PJGXJaiT8pILtKlcr5raXHNn2Iq2YmaOdAjNDgrckkCOBCIo43718qfzRb3+GsZc5suTHSaBQBLSkWHtnl/zZ3/yTnDxzDlnBQbWzFYro1dupqHTkQST81DZqsGJwa2MaZkh6Omx56p9i0t9LK6Ye''@;'; + put 'put ''BRSYV38X+IgEhk1AC6u/a8298kUUVo/H48NeDz9IAiRQOAIah5lMpeSvkE2+e/9hSaELDRdvCcy+LSV3vg/p5AEvW6RWzA0/Fdm3KeItwCJdGwVmkU4ch+0/Am6Cz0Or5XOPv48JPv6bHo6IBK5LQK2Y/x2dfd7YsQveBwrM64Ia5gtmxJEHUHy9aTriMAPc4ccMh6TlnC3PfqlMrJRGnZb2QoFZ''@;'; + put 'put ''2vPPvfeQQBm6g7z7wZXyeWSQ04LpIViuigTySEAtmPr31//r3+TNnXsoMPPEeuJsC1nlKQmbwXWTK7pw1JCXv2PIiT1sH0mBmacvE1dbegSi6HG86s7b5A9+45OSSCRKDwD3mASKkIAm5/X3x+Wv/kELrh9hqaI8zaHa81Z9NB74skUqME/td+SFb0TdC5c84SyK1VJgFsU0cZDFQMDED9WCOTPk''@;'; + put 'put ''T3//NyUajTBZoBgmjWMseQLqHr/Y2iZ//rf/JGeaL5Q8j3wCGDPJQp9yWDHLkEgV1FwqKGkH4abPfSUqLWdKO9mHAjOf3yauu+QINI6ulz/7g9+UaZMnSjKZLLn95w6TQLERiCG05c0du+X/+fK3pLOLZYryPX93PpaQ2XdgK8ngli1i4fX0UUSBme9vE9dfUgQqysvkU+hB/n70Iu/rQ+VdLiRA''@;'; + put 'put ''Ar4moO0iv/KdJ+WZl9ehqw9DW/I9WTVjbHnoiwkB9sAWXw8ZIenrseVplCzq7SpdKyYFZr6/TVx/SRFQN/nCuTPlT2HF1LqYrKlXUtPPnS0yAmF8R1svtclf/M8vy4nTZ/l9LdD8LX8oKQtXBrv4uloxX/+5yJ6NpVuyiAKzQF8obqZ0CFRXVcjvfPojsvruFSxXVDrTzj0tQgLaJvJHaBH5fbSK''@;'; + put 'put ''7O3rL8I9KM4hV9fBivmFuFSMMiSEwvZBDMc0IyG5eNqW576MkkVWaZYsosAszu8nR+1jAgZKnsydNc1N9qmqrMDJhXX1fDxdHFqJEtAWkafPNst/Q4H1U7jlUlgCyx5MytL7gm3F1LqYz3/DlLOHSrNkEQVmYb9T3FqJENCi6+9F0fXPfOS9rIlZInPO3SweApnal//wb9+TdZu3SYIJeQWfvMpa''@;'; + put 'put ''Wx6GFbOyJrhWzEjMlEPbbPn1E7GC8/XDBikw/TALHEMgCdSOqpbf+8LH5a7ly5jwE8gZ5k4VKwFN7PnZcy/Lt3/8NF3jIziJSx9IyLL70KI8oC0kQ8jviSPX8+l/jkh3uzmCpEdm0xSYI8OdWy0BAmolmTCuUf74dz8rM6dNoSWzBOacu+h/Ahp3ueGN7fKPX/++tHV0+n/AAR5hZQ2smF/shxXT''@;'; + put 'put ''DGwsppvs8zSSfdaVXrJPSQnMD73rAdmyY4+cOHMuwF9Z7pqfCGhW+ewZU+SPfuszMh5iky0k/TQ7HEupEVBxuX33Pvm7f/22nG+5VGq778v9dWMxVyEWM6BWTDfZ55TIs/8axT6WVrJPyQjM8WPHyD/+1X+Wvv6EfPvJp+T51zayJIUvTzfBG1QYnULmzZ4uv//FT8j4sRSZwZth7lExEFC3+Ft7''@;'; + put 'put ''9ovGXZ670MLzv08mzc0o/3xCKmpQFzOgDX4MeMd/+bWINB8tLTd5yQhMtV5+8RMfcntEa+2z19/cIV//4c/k9Dm2BvPJeSbQw3AtmdOnyP+OmMypkybQkhno2ebO+YmAhqqouNy09S350reekOaLrX4aHscCAssfRl3Me4ObUa5u8r0bHdn482hJzXdJCEztNfs3f/IHKB0z3RWYOsN6wmlta5fv''@;'; + put 'put ''wJr53K82lHxT+pI66vO0sxH0152xJCnHdoYR2P3O7g36Qzd5wjhYMj8pc2dOc49FFmLP02RwtSQAAnru17/nX90Az9XTcqm9Y9BzvXaXKa+25eJJU6xUabkx/XCg1IL/WmSUl5WHAtndxzBD0ttpyy/+MSb9ve/8bfDDHORjDCUhMOfOnCr//f/8A5ffwB90PfGoNXPd5q3yjSd+LufOt+SDMddZ''@;'; + put 'put ''AgQM05GJsyy58wO2rH/ClDOHr+8Kmdg0Vj72vkdk5R23um461sksgQOEu1hwApFIBCFRcbeQ+lMvvubev94glqxOyrRFlrz6g6i0X1CBSZF5PVb5ev6u9yZk1gqsPaA9yrVk0Ws/FDm8vXSSfUpCYH7+8ffKR977yHVLxag1s6X1knznx8/IL3Glq5YmLiQwFAKxCkfu/WBCpi4wZd8blqz/cfSG''@;'; + put 'put ''x9Go6ip5cOUd8oFH1khdbQ2tmUOBzfeSwA0I6Pk7Fou5RdS/8t0fyzYk9aRS1292ECt35IHP9kvT1LDseMWRt16NSDLO34AbIM7LS6MnWbL2UykJwxMUxNY+4aghJ/fa8tK3UBOzRDRG4AWmFrz+u7/8Y5kAq1EqlbruF2OgNfPrP/gZ43SuS4ovXEsghMj0xsmWrPl0SiJRuEK6Q/Lq90y5eOr6''@;'; + put 'put ''VkxdRzhsytwZ0+Tx9z4kSxfMdVd7o2P02u3yMQmQwNUE1GqpHoFNW3fKE2gBefTkmZsm88y9PSnLH4U7PWJLd6sjL34rIh0t6sakyLyabn4fqXdx9ccSMmURuKfswGlM1ZSJhCPP/EtMOltLw00eeIF5y6J58pf/4XdvKC4Hfm20jEXzhYuuNfOldZsGvsT7JDAogUjMkYX3pOSWtTgvxtVSEpKj''@;'; + put 'put ''O0TW/ySKk+TNf6SqqyplzT0r5D1rV0lT4xj3WKXbfFDUfJIEBiWQMRBo68cfP/uSrEedy55eVLi+yVJWKXL/J/pl9ER8a2E4MyKGbPyZATcmYjGTN//u3mT1fHmIBCbOsWTVRy0JG8ETmIrCrYn5FGpiri8NN3ngBea/++zj+OFefV33+GDHv8ZlGqhfqLGZas1kvbTBKPG5DIGySlvu+2hKmmYI''@;'; + put 'put ''fpRs1/uRiBsQmIac2pddD1rtXz5pQpO8a829surO20RFZxLt62zbzmyGtyRAAtcQ0PO09hS/1NYhr76+RZ59ZZ2cbb54U6tlZjWL79N+2BCXhoXPwKuAOLkj20U2/cIcNFEv8zne5oeAiVj2Bz6TkHHTMRm4Vse/gVrCkZCcO+7IL/81lpXxodh3PtACs6qyHO7x/ySNo+tdt8lQJ0utmWebL8Ca''@;'; + put 'put ''+bS8suGNoX6c7y8FAjB71DXa8iBOiuXVhjj2ZZsljB8Xz4TkV99DokFX9u6QCC5utDD7u9aslOVLF0hlRQWFZikcR9zHIRFQYanu8O6eXrf80DMvr5MjJ07dMNby2g2MnoALQ7hkK0bhO+uEXDGj2b7tLY689I0oWvtl/729dt18PHwCs29NyR3vx4V6EAuv43fBxm/Ecyi63nr2xiFUwyfon08G''@;'; + put 'put ''WmDeccsi+bM//O0rpYmGg12tmRo0/hqujr/xw1/IxUttw1kNPxNQAiE3e9yW1R9PYA9x9rh8yZ2O4Tbk4JtqDYkM+Wo1Go3Iwjkz5dH775FlCPMoRyIaLZoBPYi4W1kTyLjCu7p75I0du+S5V9bL4WOnJAFr/1AWDWu57/G4NM3UsjiOa710P2+EJNXryAvfjkjrGVwwQnhyKSyBWLm2j0xIbaOq''@;'; + put 'put ''McxNYTef962pm/zN5wUJZcF3kwdaYGrnlEfuv3dI7vHrHV1qzTxx+qzbBUjje7iQgBIwI47Mvg1X3O9xXPf4QCoqMq2UIVtfCsm+jcM7mcSQpDYf9VvXrrpLNJ5Ys89VaDJGcyBp3g8yAb3A1wt9FZda7WPz9l3y8vrNrrBM3iBx83pMVFAufzQpc+9QcZl2jV95r6snHSTpReXUIQjMEmvtd4XD''@;'; + put 'put ''CN9ZtgahC6uhL5GwFTSBaYZD8G7Z8uyXymDNdA+4Eaadv80HVmBWV1W42eNjGobnHh8MuZ7kUjjgX8HJ7Xs/fRaF2jsGexufKyECboLPyqTc8kBIkv1Xl0JxTx34p79fZPPTYTmOAuzDXdR1PnPaJFl91+1yx62LZXR9nRufqVnnA2u7Dnf9/BwJ+I1Axg2ucch6cb9u8zY3eefc+Yti5RCbvOje''@;'; + put 'put ''pCy5X4uwXyMuLwMwIADW/ciU47tZdH2kjgktvP4QCq/HKnARAIUZKJGJ3wS1y/7yKzFUGgl2GEZgBaYX7vHBvlx6Na1B5afOnHM7Q6zfQmvmYJxK5blImQ1xaSGLHPWB3Qzyq/fcFZk4h/ShdNHrPzfl1P7hi0xds7acHNc4Wu5evtT907aTGoumQpNWzavZ81HxERhorezs6pY9Bw7LrzdtRS3L''@;'; + put 'put ''/aKPc13m3YlqD2uQpQwXuSB/bjDhYmom+c8NObLNlBQzyXNFPqzP60XzqscTMn0JrMioYTrYPA1rxT75kLrJt73oyLaXgt06MrAC8w/gHn/YI/f4YMdkxpr5MkoZfe+nz7ktyAZ7H58LNoEoijQvfwTuttthwRxEYOreuyIT8dx9+H3c8kxEju3yJri7sqJcFs+b5XYEWjh31lVWTWafB/u4C9re''@;'; + put 'put ''qftbL5QSiYScPnferWP5OnqHHz911vUa5bq/Wqt28aqULFrliBmGsryOuNTtqMDc9DTip7ewVFGu3HP5/CQtWfQxS8xQ8EoWqZu85QxqYn45hjAA9xciF1S+/WwgBab+8P79fx1+9ni2s5WxZh4/dcatm7nxTRQ/5FJSBKIISF/xrhTiMK8vMBWInkJCSCCI9zuy5dmwHNkRfjuxIEdiGavmbUvm''@;'; + put 'put ''y+1LF7lZ6FWVlVdc6BSbOQLmx/NCIJOwo8fnRcRW7oCV8nUUSN8Nq6XWsNTzqxeLdupZtjYps2+FuzWEMJYbiEvdHgWmF9RzX0cYhe8f+kJSGiYgy/8mc5b71gq8Bj20YaV9FuWKWpBMFtQlkALztsXz5S9QXF2TIQqxqDVTg83Vmvn9n/2S1sxCQPfJNrIVmDpc9+cS5xKtkXkAVa/2rotIf583''@;'; + put 'put ''P6IZHBqrOWVik9yK74AmBU2fPFGqUFNTf8TVhU43eoYUbwtNQAXjwLhKTdjZd/g4ROVbsnv/YWnr6HSPUy/HpaWIboWHYfy0ECxFsIRl4WulwPRyBnJb16KVCbl1LdKyApjs42aT/xLZ5L8aXgJobmQL8+lACszf+fRH5L0P3+9J9ni205CxZh5FLTbtab5p285sP8r3FTGBoQjMzG4asGTqD93p''@;'; + put 'put ''QyI70fc4X4HeGbG5ZMEcWTp/jkyfMtHte67HaiZmkwlCmVnhbT4I6LGmF+DuRTgu+NVSue/QMXlz5x5XVLZeakclmixU3xAHZ6B82PRFKVn2kC1V1TBaarmbLDdDgTlE2Hl8+6gGLVkUlzJN9sF2spzCPI7Iu1WbKLp+/pgtz32lDPvlraHBu1HmtqbACcwYEnD+7i//o0wcP879Ec0Nz9A/rXFE''@;'; + put 'put ''ccQRaZvJH8CaqVflXIJLYDgCU2ngd9d1mfd02LL39bAc3prfziFhxLiNbqiTeTOnydKFc2X29CkydkyDVKD8llo3VXDqLQVncI/VQuxZxkqp7m+1Vvb29sq5Cy2umNwOF/jBo8elvbM7r8dZ3ThbFt6bkinz1d0N3+oQO8JQYBbiSMluG3o+uu+jCZmq/ckDVnhdfwOslCNPfykq7Re8icvPjmrh''@;'; + put 'put ''3hU4gTl/9nT56//8++4JbKR+LAdaM7/15FPyxvbdhZtRbqmgBIYrMHWQes0aQucQB7XQzp90ZPc6U84eNGHR0Vfyu1SUl8nUieNl7qxpbp1NzUYfXV8rZSjoPtCdPlLfofzuPdfuFYFrBaWGJV1qa5ejJ8+4sZR7Dx51Swz19ce92uR11xOrcGTWLRYS7lJS3aAu8eytlgNXSoE5kMbI35+yICUr''@;'; + put 'put ''P2KLgeDZIFkwlay6yTf+AuFSG4LpJg+cwPzEBx6VT33osYK6x6/3FXStmfGEvPDaRvnhL57HlXvX9d7K54uUQKTMkVsfTMmCuwcvU5TNbumVrLaoS8RD6F0usm+TKRdOGp4lOdxsDCoStID7ZFj9Z02fLLOnTZGpk8ZLQ10N4jer3I9r7KYKT1o5b0Yz2K9nBKW6vNVCqVnfbe0dyPy+ANf3UcRU''@;'; + put 'put ''HpWjJ85IB851+XB9D0YXxlKZNC8lc++0ZNxkvAPfJ0fF5WBvzuI5CswsIBXwLVGUglM3ee1YnBMD1tknHDXk5P50a1LXrVVAroXYVKAEptp9/vbP/73MnTm9YAk+N5ukjDXz8LETbt3MLW/tudlH+HoREUjXwYRL7h7numWKst0dFZpm2EA5IwdFnpEIhDIpl86NTIZheVlMxo8d48Ztzpw62b0d''@;'; + put 'put ''B5e6CtFYLOZ6CCg6s53Z4nxfRkxm3N26Fz09PUhi7HRLCR08clwOHjvpWijbO7pyKn4+HEIGSg81TrNlHoTlxFmOhBHTZqdyt3JRYA5nNvL7mdseTsqiex1P5je/Ix3a2kM4vff3iTzzTzHp7lAFE6wlUAJzEiww/++f/xEKoaP3c7YR3QWaz0yNt2fRO/eJp17wpGhwgYbOzdyAgJcCM7MZTQIK''@;'; + put 'put ''oU5ab7stpw5qPb6wtJ5GweHMG0bgVksh1cOiqaJTrZuanT5p/FjEcY6WqsoKt/mADku/d5nuQmrt5OJ/AiokrxWTOo+9fX2uJbL5QivqUZ6RIydOywk0mGhGTKWWERqpc6y2ehwz2YErPCkT54VEyxDZiGXz6pRPgem/Y7ZxkiUPfDYpEfSpGMnzYD7IRGDF/NX3DTmaQ6e3fIzLi3UGSmA+uuZe''@;'; + put 'put ''+b0vfMIX7vHBJidjzTx09IR880e/kG274A/lUtQE8iEwFYhey2rdTG1b19dty2kIzcNbDblwIoxSQ/5ApolDtTXVEJ2NSKobK9MQx6kCtHF0HZ4fJeWI51RXqgqRgcIz89gfe1E6o8iISL3NWCV1LtTN3dvX77q6my+2yqmzzXLyjP6dkwstl6Srp9cNjRhpUobhyNgptsxCjOXEWSJllegknsyu''@;'; + put 'put ''9NBQxk6BORRahXmvzv3azyVk7FTIy4DVxNQ4zP2bHVn/k+B19QmUwPyT3/ui3LPiVvR+RvNnHy9qzexH0Pvzl2MzvWiB5uPdDfTQ8iUwB0JzXefoLpLAYX3huCOHUKT9LARn3OMamgO3Odz7Kl40gaihrtYVm01oazmhqdFtbzkG/dNrRlVJGVzs6mbX92bEprrb9T5jPIdHXlnqonGRumQEZOZ5''@;'; + put 'put ''tSr3wSLpCkm4s1U4nm9pdV3dZ5svuI870IqxHzHjflsiMVvGz7JlJhJ4xk8NSaRMs2+9F5aZ/TZhUdryTEj2bcbFHFtFZrCM+O2ilUnUxNT42mC1jtT4+84WR57655gkE8FykwdGYNYgNuzv/usfuz9sxVBMWk/8+iOrcUxf/+HPZMeeAyP+BeYAhk6gEAIzMyrVEBqjaSHQvf2cI0d3m3Jyjykd''@;'; + put 'put ''LSMTp5kZVza3eryXxaJSO6ra/Y5qiaTG0fVuqSTNXq+HxVNd7eUQp2r5VIGUEUeZ5KKMyz1zq4I0yEtm/3UfM8JRb/VPX8u8nrFCqiVSs7XV4qgXrS2oMdlyqc0Vjxdb2+QiHmvyTWd3jy8skjebu+p6W6bMtWTKEktGNxk49vMrLDPjCcdMefM5ZPa+jl7kCf9/tzLjDvpt3Vh09vl8XKLlOBEG''@;'; + put 'put ''7KuvrUyf+2oUyZ3BKlcUGIG5fMkC+S9/9Du+Se7J9svuWjPjcXnucmxmF07+XIqHQCEFZoaKXuMaEJp6UurucKT5aMhNCmo+HpaED62amXHf6DaGuOnKigokEVVKHcTmOMR2ahZ7fe0o192uF5DaAlato5qApK73KGreZsTWwHVnrKAZATpQkGaeG/j+wZ4b+PpQ7mdE37WfGSgIM2Ix81zm8cDP''@;'; + put 'put ''6Jj1QlnL/miXsP7+hPQn4q4FsqurxxWJrSgHpHV222CRbEPiTXtnp3R190ovPDhxH1oiB+7f9e5HY46MnmzL9IUpWC0dqarViEsk76gr/Hof8vh5V2D+MiR7NxoUmB6zzWV1eiRoHOb4GfCRB9BNvgVdfd4KWFefwAjML3zs/fLh9zzk2/jLG32x9IdGfyw1NpPWzBuR8t9rIyEwMxRcZwoMLOEw''@;'; + put 'put ''LC1wGbZfQJmj/SGUvQhJ+9mwpHwSq5kZby63KsJUhKq4VAtnNdpfVsPiWVUFUYpSSlUQn3rfFaF4PSNEowhH0e9WBIxUlCorXZcmLelt5k+/g3o/I/oGik59buAy8DV9Xh8PFLV6P/Onr6UwESoSUyoY9RaP47ioVGujuqTVbd0HUaiJM92wPnbjtqcHf3Bp62N9Xl+PJ5KucLQCljylZYZqYZ2a''@;'; + put 'put ''NM+SSbNTUjcOc4VwNHWDj4SQoMAceLT76/78u5Ny+yPBc5NruaLThxx54d9w4F9zvvHXDAxtNIEQmJps8D/+5Pdljo/KEw1tGtLvVmumZm4+89Kv5cfPvoQfF9Qv4OJrAmmBaaFM0fDrYHqxg65VE3GayAtC2QtbWs+F5PQ+Q84eNqT9IkoUW1eLJC+26fd1qDDUdpkqKvU2ghRUFZb6PVOxqm54''@;'; + put 'put ''FaDu87hv4P1agSKzpD+f/mzmpG+hm4i6ogfWeFQxmYD40+fSVseUKyRVTCaT6fsqKlVgaiykPqf3rxWqme2Wwi2mREY1WjIB1qjxc2wZPR5JO2gHiOiPglorB2NNgTkYFX88VzvalrVfSCDBCzoMx0qhrNr53ntN6OzvseVpxGH2dAYnLCMQAnPCuEb5n//lPyCmMVr0J233Rw0/egcQm/nNJ34u''@;'; + put 'put ''b+09mO9jm+vPgUAELr0lq5KyZE1Ikv3+MBnqBbDGamoqerzHgtg05MzBkJw7Epa2i5p5W3piM4cp5kc9IqDflfomW5qmOzJ+puVaLcsrTJyzCxNbme1uUGBmS6rw70u7yRNwk2PbASy6/tK3EFe/LzhxmIEQmA+uvEP+/W99xvfZ40P5OqpbT62Z2gHoyadfHMpH+d4CEtAfzcWrUrJ0DSyYPhGY''@;'; + put 'put ''A3dfC/maprp+ITZh2VSBqTGb546giPtZXDX3BudqeeB+8/7IE4CxGDGUSNCZ5EBUWtKI2pVV9WiPF0NNV3i/1Rqst35bKDD9NiNXj2cB3OTLH4X1El6BoFgwdQ+1XNHO1xx549nglCsKhMD8w9/8pKxddXegBKYecGFYMl9EKaO//+p33dgwfY6Lvwj4XWAOpKV2SwNudBWdVkqk+5JaN9EH/Sha''@;'; + put 'put ''U54ypas13a5y4Gd4nwSyJaDHVeUoGzGUtluvcgySdWrHiJRXIeMdFzl2ErGqKiqzXeEIvY8Cc4TAZ7lZtYKv/SyyycuC5Ykx0YnqwklHnv0SOqW5lZCzBOLjtxW9wFS3+N/9xX9EoedxbnyTj1kPeWgaj/S3//w12bRt15A/yw8UhkAxCcyBRNxTM+qvhdWVDh9lf78tXZccaT1jysVTIbdzUOcl''@;'; + put 'put ''uP3jeJ0LCQxCIBKxpbJORMvHjJlkS8MEW0aNTgvKsApKnMDUSjkSiTqDDDfrpygws0Y1Im8Moej6Q59Lyli0CRVEJfn9giVbSOplSiYcNw6z81IwzrtFLzBnTp0kf/Onf+hmgAYpaF5jMc+jq8b/8X//vVuKJNuDlO8rLIFiFZjXUnKtmxCb2jlIY5v6+yzp7RBkpqvgNORSc0g6kKXe14NEjBJM''@;'; + put 'put ''GLqWV6k9Nk0HiRW21DSK1I+33VjKukZHKmsdtGpEghQuVhyrOAXltXNJgXktEf89Xnp/0g1LCpqbPIIarK98PyTH3kLR1wAsRS8w3/3ASvnfPv/xoixPdKPjx0TW67pNW+Vv/+UbN3obXxthAkERmNdi1KvpEESDxm+qjcCCe7OvB3U320XamtPCU0VnF660412oF+iP/KZrd4OPh0HAjDhSUenA''@;'; + put 'put ''GgkX91gISlgoa/Cn1spyFLlWV55mkLkxlBCVmqQTpIUC0/+zOXZKSh74TEq0GkGQDj+Nw9y93pZNT8X8PwlZjLDoBeYf/+5nZfXdKwIXf2mgbMo/ff378sJrr2cxjXzLSBEIqsC8lqdKCoHW1DI/IbVyQlWkIDrjKK3RC4HZAfd6J8ohdeBPYzl7ukIS70bXIQrPa1H65rEBq2SsDFbIOojJBgdi''@;'; + put 'put ''0pEaiMpR9RCYNfoa6oWqmMTVhpPCRYbW38T/QfpBH2wyKDAHo+Kv5yJRRx7+YhzxvojvxbkoKMdkJg7zuf+fvesAkKo6u2fq9mVhadKLgKggCAFEaVKEqMRobFEsPxr9TTEaY/1jS6ImakSCYk9ETSxYwQIiUhRQmoICgvTey9Zpb/7zvWUImIXd2ZnZeffufbq8KW/uu/fcO/PO+8r5ns6gI8n+''@;'; + put 'put ''1XUW8HH2RmmCKaLLj933ezRv2kS7+EvRwLzzobHYuIXmIrM5FoG6QjArmwD750/4x0FLp1g9o3Svh4KWrcVZVuShm53Ec7cbxXtJPPe6+Jxu9mLGGpW5qRXJUHb5kNlShoDA62WsZEZuFHkFTMKhS1tIZB5JZC6JZQWRpP4nM7tFi0+skTHLpFy1dblwxwOwIZjxoJW+Y08bGUKnXiSXCiSOVRcl''@;'; + put 'put ''+b6yYBfjMP38vVQ/DlNpgqlr/KVUFFm6fBXueeTJCqtBdVenOa7WEajLBPNoYNuUkf8cQTxJVSxaM0XKKcj6AeXllEg6IJZOkHSSgPJx7HmAcZ6BUrpgwxWE52jnMa/bxkXGP1rIzAIyKD6dXc9Cdj7lgbjPpUs7u4DPs/leLv8yaYEWFQFexYRISka3JBJC3NwGzEMIGIJ5CApHP2jNcqIDLuJN''@;'; + put 'put ''alQvuSKp6jPtJephLlNfD1Npgnn24H749ejL9Iu/9HjxxqQpeOnNyY7+gpvOAYZgxrcKbIMl/7H1Oe1/SJLYhCTo8TrBKjcspxikXFIp7ISiAPfltHiW0Q1fStIpj4OyLwHCAR7HYyMhciT+CWkSd64OmwzD440yy59/JI9+ksPMbBJJEsUsWiOz+ZdLi2RmHl3ZfD2DsZHiNpQkATevSzaJFFxp''@;'; + put 'put ''JRZhIEnAERZpiGTVq8MQzKoxcsIRObx5GnFNObLzeNMka90JnUpCHyQOc/H0KBZOUV8PU2mCefN1ozC0f1/t4i/FRfXHMU+bKj5J+LKmugkhmKcMDOOUMyusc6k+n+7t2/SQ/0hWslw13EJC+X/sdYtEyWKN6jCJU9gmli6EKe0RJNkM0TIaLHfzMd30tJAG5LVyPqbUUohup3CQf6xiJMdLNSPL''@;'; + put 'put ''kox4WvKoCRqReCe2Lao60YNZ8rYqRXXjoFi3znb3sxmGT9N6K8/lsdQ4j3I8/GNiqNTY9rIapawbL//8GSSG3EsspJe6fhlZFnx8LNZGv7zG432Mg/SQPHp9UkedbUs9UG5CqKOMixQrpC1YLiRdl6tsGhe6IZhpBD/OUw+5IoDmHfghfgl0Wfpiwdy8ysJHz2dU/KbEiYmTDleWYEr9cYm/bNOy''@;'; + put 'put ''uXbxl9t27MKtfx6DomKaaczmaAQqapFbrEUuRMZktNTWZNkU6yDREtIlm9t+zndihFRelAMlN4XMS3JU5B8hZBYJakQIWUTqtHMvx9jvSz3sCqJm8T2JKY0eg2TKRY2foLWRpxViKScUQsm+CMEUUul2W/Zzed8jfeSf/X6MLB68Mh66QNp9kc4c7JP9gP2wXzH/pBoBQzBTjXDy2u/SP4Qew+Sm''@;'; + put 'put ''UB83ufw2lBywMOmJDOUrrSlLMFtSWP3Ru2+GlFTUSf9S5IlmzV2AR556MXnfQtNSyhAwBDNl0Ka04UOe9IMPSPsqyOhhZz10zGGvHevhD62HRzw/+OSI147VmHkvbQgYgpk26OM+cdM2EQweRbkihpJocwNm34O68OFzXmxfz7tShTdlCeaAPj1w269G0w1G35dGm8gTPfvyREyeNkujUek7FEMw''@;'; + put 'put ''9Z1bM7K6iYAhmOrMu4SUDL8myJKkZGW8e9OFZEoc5udvA8vnMZ5G4U1ZgnntZefjgrOHaZXgIzFcpWXluPvhJ/D9uo0KL6u603VDMOvOXJuR1g0EDMFUa54HXBxA2y5URtBIrkiS9VYuiGL2RLUTfZQlmA/e8Rt0PbETs0gZua/JJgRz3cbNuOPBsSgr18syq8kU/dcw/FlR/GhECCf0krrdJgbz''@;'; + put 'put ''vwAyLxgEFEPA6/dg/ocuLJ/rsZPCFOt+netu59NC6H22XnGYHhaz2L05iklPZVYk8Ck6q0oSzHp5uXj8/ttQvyCfgfkVwfCK4n9EtyX+8pPZ8/D4c68c8bp54lwE/HTR9D47jI49DcF07iyZnhkEqo+AaIXOm+zGyvkeW22g+p80R6YDgYYtwxh2ZYRqC/q4yEUpIlAaweTxWSzPa0eIpwPahM+p''@;'; + put 'put ''JME8sWM7PHjHjXZyj04JPqY8ZMLrudYbEILZ55wwOvQwBLPWwTcnNAikAAFDMFMAagqbrIjDDDAOk7IMGsVhyjqc+k9KFq2kFIWim5IEU0eB9Vj85f/9dRzWrN+k6HKqe932Z0dxxnkhtGEMUDhoXOR1bwWYEeuGgCGY6s3ogEuCaHMy+61RHKYk+sybBHzzmbqJPkoSzBuvuQzDB52hlcC6ib9U''@;'; + put 'put ''70dNemwIpprzZnptEDgaAoZgHg0Z577e5Ywwegyni1wjPUxJ9Fm1MIpZb6ib6KMcwfRQVfmvf7gJndq3ZVk5lvLQZBP3uOhfPvr0BE1GVDeGYRPMn8rds9tYMOvGlJtRao6AIZjqTfBx7cMYfFmElbP0icOURJ+ddGZ+8JSfxR/UjMNUjmAW1q9nJ/jk5eZol+Dz3CsT8d7Umep9u+twjyX+p+95''@;'; + put 'put ''EbTtKqUIjYu8Di8FM3RNEDAEU72JzM5jXfJrA8gpYF1yTeIwJdGnvJgVfcZnoPQA40sV3JQjmCd1bI8H77zRJpc6JfgEgyHc99hTWLZyjYLLqO522ZYpGh7GCb1Zi9zIFNXdhWBGrg0CQjDnvOPG94tNFrkqk0oVTAy5OohmbSm1XvG/Kl0/ej9ptJTQuY+eZ0WfdWpW9FGOYOqY4OOm23/rjp24''@;'; + put 'put ''7U9jsL+o+OgLzrzjOAR8GVF0HRhGtzNJMMuNBdNxE2Q6ZBCIEwE3XZOzJ3qwbikJZlhN12ScQ9bicNEjPvmMKKywpVVFn5lvuLBqgZqZ5MoRzBuuvBgjzxqkVQUfIZiLli7D/Y89o1VddS1+taoYhMcfRaeeYfQ517jIq4DKvG0QUAMBcsqZr3qx8TsPrIghmGpMGnB89zBOv4C62Jplki+ZGcWX''@;'; + put 'put ''H6iZ6KMcwdSxgo+XAusTJ0/Fi29Qk8BsSiHgZlB5i44WBl7KilKKBmIrBbjprEEglQiQT4aZOzp9At2SGzy84TcEM5VwJ7PtwuYRnHVVCF41uVilUHj9bmxYbmHahMxK33f6i0oRzLycbIy5/1Y0KmyACOUItNlcbjz61D/x2ZeLtRlSnRmIK4rCJhaGXhWEP4eB2BYDgMxmEDAIKImAy+NCyd4o''@;'; + put 'put ''Ba79OLBbyKUhmKpMpCRcjvhFAPUK+TusSaKPm+tx306WjHwyQ8mqUkoRzLYtm+ORu2+mFIHcWepzIS8pLYMIrK/buEWV77Lp52EIZDGD8czLgmjc0s2YLX1Klx42RPPQIFAnEJAEn62rgRl0kZeXqJm5WycmqpJBCicYdgUTfTryTd7o68AQmOODQAB4/wk/ivaptx6VIpin9+yGu377CwJOxDXZ''@;'; + put 'put ''JEts/aYtuOPBsSgtK9dkVHVrGL5MCz2GRnDSGSbRp27NvBmtbgiIuPXS2cDiaR6qQqh3QddtPuIdT8/hQXTpR36pUaKPWDE/et6DbWvVS/RRimBe+pPhuPLi87RK8PEw/nLO/MV4aNwL8X6XzPEOQUDiMFt3ttDvYgZvGQOmQ2bFdMMgED8C4iKf9ZoH65eZBJ/40Uv/Jzr0CKPvT/VL9Jn5OjPJ''@;'; + put 'put ''FxqCmdIV9rvrRmFI/75alYj0eLx4/b2P8PJb76cUO9N46hAQ10y9BhYGM8C8XqGLmac6OGdSh5dp2SDgRASEXBbtAab904v9eyjYbeIvnThNx+xT41YRDL0yDK9XDxe5DFZqki+eHsXCKeplLyljwRQpn7/e9Vuc0KGdViUiwQSfvz39ImZ/seiYXxzzprMR8GVY1MKMoOsAI7ju7JkyvTMIVI6A''@;'; + put 'put ''jxfyZZ8DC6bSPV5u3OOVo+TsV7Pzo/gxE32y85mexft8HW71JWxj9WILM17LcDb4lfROGYKZn5eLscwgb1C/QKsMcom7/MNfn8CaDSw6ajZlEXDx16xxS1oxR1EmQxQljKtc2bk0Ha+DCDCZwmKEy7SXvdixnu5xy2SPq7gK3O4oho8OoFEr9p6/wToQTEk827HBYk3yTOXGowzBbN3iODx69+9o''@;'; + put 'put ''+vZqk0EuCT5bd+zCrX/8G4pKSlX8Pps+H4aAP9tCn7ND6NDDbcpGHoaLeWgQcDoCYiVasySKOW97ESgz1kunz9ex+tf/oiDancLikeGIcoSssnFJkk8RpbMmM5M8oJhlXRmC2bt7F9x98/UIBilorckmcktffbsC9zwyXhvSrMnU1GgYYsVs0pqSRZeH4MvgD5zRxKwRjuZDBoFaRcDNuOkwxdVf''@;'; + put 'put ''8WLrGje/t8Z6Wav4J/lk3QeHcMogWi+pla2DBVOkisIh0cIUbVa1apIrQzBHDhuIG666RKsMcjcJ5kfTP8P4Ca8n+StmmksXAiJZdOqQCE6mVIapTZ6uWTDnNQhUHwE79nIukyg+8iFYbshl9ZFz5pHtu1WUjHRZ+tQkFyvmlBc8vAFSK5NcGYJ5/agLcd6IwVoRTJEoeu6ViXhv6kxnflNNr2qA''@;'; + put 'put ''QBT5hYzFvCKEgoZGeL0GAJqPGARqDQG3102rkIXpL/uwb4e4xg3BrDXwU3Sixi0PZpL79Mok//RVMNnHlyLUUtOsMgTznpuvQ+9TT9FKZD1CF+pD457Dgq+XpWZ2TatpQcDWxTw5gv4XhCtcNDr4adKCpDmpQSCFCJBLCp2c/ZYX67/xsAqXIZcpRLvWms6tz0Sfa8qRnVshNKXDz69IFc2fEsXX''@;'; + put 'put ''09WSKlKCYEpijyT4tG/TUiuJIikRKRV8Nm7ZVmtfPnOi2kHAli0aEkbXfi6T8FM7kJuzGATiQkASe5bMAr76xFTtiQs4hx/s9Vn48bVBFDQlwdSkJrkQzGVzLcx5Ry2pIiUIZv16+Xjsvt+jQUE9bSSKJIN809btuP2BMSguKXP4V9Z0ryYIZLNG+ek/C6JVJ7mARWrShPmMQcAgkAIEhFyu+9bC''@;'; + put 'put ''3Ld9KC02WeMpgDh9TZJUDtWsJrnX78b65VF8MsEQzKQvrNbNKVF07y3wMilGqqbosIlw/JLlK3H3w09qMyYd5iWpY2BWeUFDCwMuCaGwmQfhoCGZScXXNGYQqAECQi63r4tg1kRm5e4St7hxjdcARkd/pO/IIDr0Zhc1qUnu8bqwa4tFqSLRwlRnvSphwTy1S2fcd8sNCIepJaHJJgk+02bNxdjn''@;'; + put 'put ''/6XJiMwwKkNApIsatrDQ/8IQ8iXpJ2QU2CvDybxmEKgNBLx+D/ZstTDrDS/2bhODRW2c1ZyjthE4ZVAI3QfrI1UkWeTFey28R6miYJk6UkVKEMxhA07DzdddqVcGOWuQ/+vt9/Hqux/V9nfPnK+WEZDqEo1bR9DvggjyCt3GklnL+JvTGQQEgRi5/OwtD3ZvFnKpjiXIzGB8CBzfPYTTz+fdgyZS''@;'; + put 'put ''RS5qtQbKK8TWi/epE9KhBMH8+U9H4IoLf6IVwXTRRT72uVcw/fMv4/vmmKOVRMAuJdkqgr4kmQWNXIgEjSVTyYk0nVYSAdstznJ7c5gxvne7sVwqOYlxdLpZ+zDOvCwCj0cTqSK5F6LqzPvP+LF7i7FgxrEUqj70N6N/jh8P7q8VwQyFwvjT488wDnNV1QCYI7RAQEhmg+Oi6H9RGPWbMDzIkEwt''@;'; + put 'put ''5tUMwsEI8MIs5HLjCgvzJnkZc2m0Lh08W0nrWoPGFoaOLkdGFudbkzAIDzVbP37Rg00rDcFM2kKRhu5lichep3bVSgOzqLgEdz40lpnkO5KKlWnM6QjQXU5LZo/hFpq1ZbUficnU5AfQ6cib/tUtBMSt6GHs2spFUSya4kPJAcrWSN09s2mPQBYVPEZcG0BugVsrqaJP/02x9a/UEVt3vIvcQ1fy''@;'; + put 'put ''o/f8Dse3ba2NBqb8yG3dvhO3PfA4DhQVa/9lNwP8IQKs9tMwiu7UyWzfBRDBfVO3/IcYmecGgZojINYeqd+8ZIYb384RBQd14tZqPmrzyRgCumphzpsUxTefqSO27niCmZuTjTHUwGzcsFArDczvVq+jBfPv2owp9sU2++ojIHfZJ54W5p8Fb4bJMK8+cuZIg8DRERDNwOK9UXw13Y3vF3thRYzV''@;'; + put 'put ''8uho6fmOzPiQ/wmgWRu6hyr+V36gIrb+9Ywo5n9oCGbSJrNRYX2bYObm5DAhTI/ECJEomjv/Kzw47vmk4WQaSj8CYm1v0awJ2rZqjhlzFlSrQ76MKFqfFEG3MyOsYe6i1cW4zKsFnDnIIPADBFx0h4tLfOv3Liyc5sbOjW56Bqoml16vB5kZfpSUlhtN4h9gqvLTARcH0LaLC9GIpUUUkhDMFV9E''@;'; + put 'put ''8dlbhmAmbV22a9UCD//hJv5w6COy7vX58MG0WRg/4fWk4WQaSj8CebS2//LqS9H1xI544PFn8c1331erU5L8U9jcQrfBEbTsJO5yJgxGTGBmtcAzBxkEiICHVstwuYXl8zx0ibtRVlS9RIiC/Dxcf8WFOOH4tviUih6vT5qKsvKAwVQDBHqfG0LnPvw91URs3cc1vvYbC9NfyVRmdhzvIu92Uif8''@;'; + put 'put ''8dZf6SWyTg3MV96ajNfem6LMQjEdPTYCcgN0Conlnb++Bn6/D6vXbcBD417A9l17jv3Bw97NzLHQqVfEdpln5Rlr5mHQmIcGgUoRsBN5pMrJJuDrT1l+d5WXxQyqtlpKYxILf93lP8MIKpR4mBAk1dXGv/gapsycg2AwVOn5zIvqIKCb2LrX58bWtRY+eCZDmWQ1xxPMAX164HZetMvLy9VZ2VX0''@;'; + put 'put ''VFzk41jBZyor+ZhNDwTycrN5sboQg/v1sdeqXKwWLlmGR5+eQNdb9WvNu6nb1riVha5nhtGsHbGhIdNYM/VYI2YUyUVArJahsiizxF1Y9pkXxfuEWFaPXEpPenU7GTdeezmyMyvqO2dkZGD5ytWUj3sWe/cfSG5nTWu1jkCnPmGcdq5YMCNauMilXORuVqGaJOUiFSkS4HiCOXLYANxw1aVaaWBK''@;'; + put 'put ''1vDDT/4DXyxeWutfOnPC5CMglpDj27TEPZTTys/LtRO35DVxcn8yex6efmkiQnGWOc3IjuL4U5kA1NdCfn0XPy9M07jNkz97pkXVEHDzQis0cttaF5bMcnPvqbbVMjZWuSEUb8MJHXgXd7BepHxng6EQ7vvbU1ixai3VHfSI+Y+Nua7t23Zl9bQLI3BpUs1HykUe2BXFJJaLDCmiiuB4gjnqgnNw''@;'; + put 'put ''Gf/KyqpvBXL6FykQDOLuh5/EyjXrnd5V079qIJDh97MQQD9ce9kFR2i1ygXL4sXrnQ8/wUtvvh93AoHEZtZrZOFkksy23SIUjBbpFZMEVI0pMYdoiIC4w70kl/sZdbJirgurFnkRKK2+xTIGiZcepNGXnIezBp0BNnnE99LP7/LY517GjLkLEDBu8hhkSu5bdIxgwCVheDWp5uPmYi0psjD5yQyU''@;'; + put 'put ''Fashu+V4gvnLqy7GucMGaUUwi0tKcceDjxuRdSV/tv6702K1vImutt6VFAMQkhlmFuMbk6bUOObW66sQZz/xDAvN20fh8Zn4zP+eBfOKtgjwwuojsSwttrBmCTNp57ntijw1cRN6GSt9+QVn85oykHGXzDI/aL2MYZeZmYm3PpjGGPn3UVqmT1hWbHx1ad+oZQRDrwzDx99PHXw/dj3yAOuRj/Mz''@;'; + put 'put ''HMQQzKSs5VtvuAqDTu+tTQymEI7tO3eTYI7Fnn37k4KRaSS9CDRv2hj33fK/aNKoYaXJaBKPKdaQf7/9Ad7+aHqNOyuSRs07RHBCHwtNGKfpYdC3sWjWGE7zQacjQOuij2s8QJ63aQWwfK4HOze7a6xrGSOXI88aRMslQ1h+QC4FDonDXPj1t3j4qRdNEQynr48q+lef5SKHjQ6wXKSYqas4WIG3''@;'; + put 'put ''uWS59hmDSQvmvp3VU0lI97Acb8G8/5Yb0JPB2IGAHtIRQjA3bN6G2x8YY+6Q0736k3B+uWh16dwBd914LV0xR5fSknkPMdj8dVoyJ07+uNKLW3W748uwKGdkoSMzzpu2isJtiGZ1oTPHqYDAQYtlIGhh80oXvvvCg+3r44+zPHyoonV5+fnnYCQtl+JqrIxcyvHiPhcDwL2PPmk8TIcDqODj3PoW''@;'; + put 'put ''hl8TQHZuRcyu8hyTBJMLFx8+68fOTYZgJrwk5aL88P/dhM4d21M2Iphwe05oQKxZK75fa6r4OGEyktAHv89LC3sv/Gb0ZVWuUZl7SfZ5mfGYk6bOSDiJQCyazWjR7HCqhaZto8jIFHc83UFGQzMJM2uaqG0ERCjdy78A9Sw3r3Tju/nuhImljCGLWeJXXTQSwwaeweQgfj8qsVzGxirXnHAkgj+N''@;'; + put 'put ''eQZLl69K+Dsaa9fsax+B7FxaMK8pR34Djzb1yOXm6KMXvHZiW+0jGv8ZHW3B9FOQXMpEtmrRTJs65EIyFi1dbmcqxj9d5hNOQ0AuXucNPxNXXDiyWmEcMv+lFHKe/PEMWjKn0XWe+I2Tx2ehUXOgffewbdnMLmB8DnOBwhQY1sE15LQ5N/1JLgKSFS4ZsqX7o9hIV/iqhR7s3kKLZVhMNolt9evl''@;'; + put 'put ''4xfUuuzbsxuJJSu6HINcxs7k43XnEbrIP/9ycdzqD7E2zD79CPgzoxhOF3lBE1owOe/KWzAJqdfrxscT3Nj4nTf9AFejB44mmLE65EeLbavG+Bx3iGhgzp63AA+Pf9FxfTMdih+B7KxMJg2cg/N/PKTaiWhCMoOhMGbOnW8nE+zdXxT/iSv5hJtZ53mFFlqdGEGbkyw0aFbxg2SsmpWAZV5KLwK0''@;'; + put 'put ''xEhGuFSt2rvTwoZvPFi7xI19u6pX3rE6nZfY6F//z6U4sdPxjF2jFmI1yKW0K3GYT00QwfW5DM1K/AawOn01xyQfAY/HwohfhNDguCgJph732r4MDz55xYV1Sw3BTHjFyN3nY/f+Hg3q17O1BRNu0AENCMGc8unneOKfrzqgN6YLiSKQk52F0Zeeb8sUxSOlJSRTJIwWUYz9pTcnY93GLYl25YjP''@;'; + put 'put ''+/xRNG1DsnlSGMd1iCJfrJo0CEWMC/0InMyTWkSA68/jcdNaCQTKLGynjuXapR5sWulBeYn0I3GLZWw0XTt3pFfhXHRq36bSxLvYcZXtJZP8H6+9g/emfIpyQzArg0iJ19zuKM66OojGbcguNXHmSD3yT19zYTUlulTYHG3BbNqoEI/ddyvESmRpInorQeQig/GP195VYX2YPlaBQG5OFq4fddGh''@;'; + put 'put ''Cj5VHH7E2xLvJURz3aYteHniZHz51TdHvJ+MJzwFsvMYo9neQuvOEVYJiiKnHpOR+J8hm8lA2LRRFQLi/pYqJKJ4sG8H6N7zYMO3buzZVvOM8KOdUxLthvY/DRecPQSNGzaokWEiKyuLcdKT8eb7/eqQVQAACklJREFUH5u65EcDWoHX5bdvyNUBNBOCqYkF08vqVQunulgW1afADPCWsfvgnxJ6''@;'; + put 'put ''Z24tmzWlBfMWO7Ovuu4NZ47kP73ysA75y29OYjbx1P+8aB4pi4AQTCkROYQXtZqWM5Wbjn0HiuzEn/c/mR1Xacl4gJM7+uwCSh21i6A5s9AbtSTZzHezri3jNY1lMx4ozbHHQoDrSZIRhFTSM40DuyPYtoakcrkbO9Z5bNkhublK9taEBokLzxmK/n16IjPDXyNyKX0SgvnqOx/aig9GCzPZs1S7''@;'; + put 'put ''7Q0eFUCLjjwnq6A5lujEAYkQzK8/BUmmP45Ppe9QRxPMDm1b4S93/da28mhDMEkmnv/Xm3h3yoz0zbo5c9IQSAbBlM54aHkRQfZFS5fh37y4rV63MWl9rKwhqRKUW2DZ7qPmrHjRRMhmfTf7IVpr4krXxKdU2eDNa8lHgHzRS/e3i+tHLJVFrLazbb0bm1eIxJCLLnAhlMknlbGB/KjbSbjkJyNw''@;'; + put 'put ''PK8ZDLZMyOMlLvIXX3+Xv9GfGgtmDGBF9wMvDaL1yew8Ex51IJhy07ZmCTDztQwlZsTRBPNkBmf/+fZfJ/Rj4bRZcPMKPu6Ff+HjWfOc1jXTnxogkCyCKacWq44QzW07dtmC7J/M/iIpWeZVDotkMzsnioYUb2/GSkGN20RQ0BDwM6Bc4kSNK71KBOveAeSKHlopXbzgybotL4ngwE4Xtq0jqfze''@;'; + put 'put ''hV3U6Qva1X1TRyoF9IYNCmxtyyH9ToPUFw9TBizRzcRgJoqgcz7f/6IA2nVlMhlvmHUhmGtJMGcYgpn4Iut+8gm4//e/TMqPRuK9SVIL/DF+7JmXMGvewiQ1aJpJJwLJJJixcdjWTIqyL6Q1U0TZv1u9LvZWyvfiKfDz5rheEwvHtWGiEN3pDZqSgNZjcgbzhKK0bobpbhKXk9nqEALkieL2lnhK''@;'; + put 'put ''qYITCkVQvBfYs9Vtk8rt61gjfIe4xLlIamHz0RPUp0dXnD9iMNq1aZmw1fLwLksW+fP/fgvvT5vNJB89CnwcPr669LjfzwJo300fginfvx0bLXzwdJYS0+hoC2afU7vgDzddX6WAtRJIH+xkhBfmR8b/A/MWLVWp26avR0EgFQRTTiVWIYnN3L13H6ZSLmXKjM+xa8++o/QidS+LKz0730LDFrCz''@;'; + put 'put ''0huyvm+9hlFk5njZR8Y1GcKZOvDT2TJ5oodrMGahDAdIKA+4sG8bbOukuL33bmcZx1LpZGqtlD+EoWO71rb27I9Y4U10aEOh0A8PSei5EMzxL76GqbOMTFFCQDrgw6f/JIjje3F98oZdh1tiqUe+b3sU747LdAC6VXfB0QSzX+9Tcedvrq1x8kTVw6/9IyS27YG/P2eLrdf+2c0Zk41AqghmrJ9i''@;'; + put 'put ''zSSTw9oNmyjOPhOfz/8qrSVG3R5qbTaIorA566G3tlDYzEJ+IQlnNqtliIWToZtyExUVC6cOv+ixidB5z+tvzN3NKEqGJEVRXkZCua/CKrlroxs7t7hwYAflhMTtHa1dQhmD/rgmDTGc1XjOPP1HqF9Qz/ZspSI23xDMGOLq7/UkmBYJprFgJrw6B/btidt/dU21BawTPmEtNBAMhvDnsc9iCcuQ''@;'; + put 'put ''mU19BEQH80pW8Rl51qCUrlOpLiJlJpetXE2iOctOBgpwLaV7k8x0qfnboFnUzkovpKhxfkOL9X9JWvwkx5JwIUlDQjjlz2zpReAwy6SQSU4Ps7ojKD0AFO12UTqI8ZMkk/tpnSzex9Km1BlPRcZ3PCA0KqxPUtkLQ/r1QdPGDW3B9Iikp6doMwQzRcCmoVkdCeaebRYmPWEIZsLL6dyhA3DDVZdo''@;'; + put 'put ''ZcGUyhD3/m0865GvSxgf00D6ERCCOepn59ouu3iE1mvS85jbXMSfly5fSbf5HCz6ZjlDSNJPNGPjEbd5JhOG6jVm0hDJZgNaOAv4OKcea6XnuCuqt5DViGtdEojEWmYsnTH0krinkdGOmZREHJJKWTuSrBUoJZlk4ajivR6SSdDl7aE2pcu2VgbL5fzpsU5WNnLRsTyjV3ebWIpknWzJSOKp7FyH''@;'; + put 'put ''v2YI5uFoqP1YO4LJ73HRnijeGmNc5AmvzCt44b7kvBEs16VPoLUEjd/76HgmbqxPGB/TQPoRqE2CGRutkAWxaArR/Pa7VbYigdS3Lym103Zjhzlm76FbPTu/wrJZ0ISkk0lD+SxpmZ3PsnzZJJ5ZjOdkb+08T0M8qz9vBE3WAjkk5YEq9hJOYZFIBmmVDLA6TvEBNy2TJJI7hUhWWClLi2iZtH9S''@;'; + put 'put ''BXXnbVLiUbxX/Xv3QDM+lq02iGUMCUMwY0iov9eNYNozwq/thLsNwUx4dV5+/tn4Of90IZhyMSgpLcVdf3mCpQE3J4yPaSD9CKSDYMZGHSOaYQawr1q7HjPmzMcXi5di526m9zp8q7B0WsirD+QyhrOAiUOSPJRNd3tWLvd5kuQkuoq0wNnedYnrFI97RXyn7Wy3/3H4QBPpnhBHfl4C+2WuxRIp''@;'; + put 'put ''Gdzyori2g4EwiSRd3NSYLGECTvFexknSzX1gF5/TvV28HwiVixtcWnH25vV60LFtawxifGUvJu80LGxgy9PVJrGMIWQIZgwJ9fdaEkxOy4R7DMFMeHVeP+pCnDtsoDZZ5IZgJrwkHNdAOgnm4WCIRVPI19YdO/ElFQpmfbEQq9dvpls0dbFqh58/WY/dZJMZWYzrbGAhpwB2QlEuqw/JX1ZexXte''@;'; + put 'put ''/rb6M4SAMsbTdv/y7CSf4nIXd7vtdudLkmh0iIMeepCsntawnQp+KIZGEsWKJzZpFPIozJH/S1ejtEJGKA4dDFh2HKSQyDJaHktJJEuYfFMkfxQzL9vvRlkp3d+2/KM0qtZWkJ+HHl07YwCr73Tu0A45Odl2Vng6SwMbgqnWGjpWb3UkmPLdePm+7GMN2zHvOTqL/LZfXo1+dJMkW4YiXegbgpku''@;'; + put 'put ''5FN3XqcQzNgIRdpI6puXlJRiBfUzP/tyERZ/s0IJq2ZsDEfbe9wWvJkuZqxbdpxnZh5Y6lIsnizvl2sxxlNc7i5kZFjw8zi3Nwo3S/b6xBIqBE6EPIWQygliXIxsTnhpbLMpaex5bB978/B97PPc07Z46B2bOMozeUnalsdCfvmogjQKcZQ/un2ZQBMKuEgiKVROklhezOxtksgyurbLikgoiyus''@;'; + put 'put ''k4EyN49hW9Z/ziPNqrpl+P2suNMSfXt2Q8+uJ+I4usE9nBv5nU9FVni8OBmCGS9izj1eN4JpyxTtoEzR340FM+FVd9sNJJh9DMFMGEjTQMoQcBrBjA005j6XC/b2nbuxdMUqzF3wFZYzuexAEZmLphsdwjap9Aqx9FnwMdnSz8fezCh8/E32ZXDPMr4iJu/xR1k5ifGs3FeQUVZSYla820twyAxt''@;'; + put 'put ''PkqSam+yO8jvLBI9SyyGfC4Z8lZIpH1IGENCHGlN5D4UdiMc4D7oIpEkiWR4bDggRNFCJFiRnS1xkHK8fPZQ4/JQw02sza2aH4ceXTrbLvC2rVsgmzW/xcKeDjf4sSA2BPNY6Kj1npYEc7s6MkX/DwAA///r8VITAABAAElEQVTsXQd8FNX2/rZl0xMSSkLovXcBBUSKgNg7dkXF8tRn74o+n/7V''@;'; + put 'put ''J4oFsIMdO4KCFEFA6b33HkpIAklI22z5nzNhNcQkpGyZuXvmR5jd2Zk7937nzsw3p5q6DrrUA50uj919C/r17o6ioiKd9rBq3TKZTMjNy8NTr4zDnv2pVTtY9tYlAlGREbjhigtxybCByM/P12UfLRYLbDYbHHQdHTpyFBu2bMfS1euxbdc+ZGXn6LLPeuqUx/P3LZKvYVkqh4DNakXD+kno2rEN''@;'; + put 'put ''undqh6YNUxAXGwO32w2n04mSuFauxcDsZbfbMX7SZMxeuASFhY7AnFTO4hcEzrrUgVY9TPA4Xfj7KvbLqQLSqMlswvEjbvz0TkRAzlfTk5iEYNYUwsofLwSz8lgZZU8jEMySWFrpoc9/TDaPpKVj07adWLl+M7Zs3430Y8d1+9AvOQb5rF8EIiPC0aRhfXTt0Aad27VGo5QkxMbEaPOKSSWTS70v''@;'; + put 'put ''YWFheOvDz/H74hUodKih3NA75v7q39lXFaJZJyKYLrc6BPMwEcxxQjBrPGdEg1ljCKUBPyNgNIJZEg6vZtPlciE94xh2k1Z93aZt2Eikc//Bw8gvKCy5u3wWBP6BgNlsRp3EWmjVtDE6t2+NNi2aoH69OoiIiADPK/4zAqksOTDW9o/94DMsWLJKexEr+Zt8NhYCqhFMs8WEQzs9mDkx3BCCEA1m''@;'; + put 'put ''AMUkGswAgh2gUxmZYJaEiIkCP1h5yc8vQOrhNGzfvZfM6TvIlL4XR9IzyKzpKnmIfA5RBGKjozTTd8e2LdG2RVM0bZSChFrx4BcWJpRGd2kqJpifE8FcKQTT4HN84PWFaNiaBuH2KKHBtFhN2L0O+P1ruyEko2uC+fg9I9G3ZzfD37C8M0EIphcJddaqEMzSEuGHLBMG1j5l5+QQ4TyKrTt3Y8uO''@;'; + put 'put ''Pdi5dz+Oph9DEZk8ZVEfAZ7jKUl10apZY7Rv3QLNGqeQ1jIBEeHhf/lTGk1LWZHUhGBWhI5xfmMf33NvdCClFfVZIYK5YzWw8DshmDWeiQ/dcQMG9OmlHMF8+tVx2L1PgnxqPEF00ICqBLMktKzdZLLp1VDlnMjFwSNp2LF7P5FOIpx79iMtI1NM6iVBM/Bn1lAmk5mbCWXblqyhbKCZwSPJ7M0v''@;'; + put 'put ''yayhZE2lqosQTDUkazYRwbzFgaSmFN5Drr8qBPlYw8xYPRdYPTvMEELStQbzRorOHXHJeRTJp44vWKHDgefGTNA0QYaYIdLJChEIBYJZGoCShJO1BCeIcGZQgNCeAweJbB7Ajj37cODgERyjCHWViUhpXIz4nSO9E2vFUTBOMmkmG6Bl00ZaYE5iQi1NQ8lj4uAc/guVRQimGpI2W9wYdqsTtRu4''@;'; + put 'put ''QVxTCYJps1uwdAawYX6xO5PeJaVrgnndZcNx3WUXqEUwKe3Fc68LwdT7hVHZ/oUiwSyNDWu1WLvJ0em8sIaL0x8dPpqB/amHsWvfAeyjNWs9s7JPiGm9NIAB+m61WlArNlbTTnKkd/MmDdGI0ghxkA6nD2L58QsDk8lQfjEQghmgCenn01htHgy/vRDxSSYimGr4YIaFWzB3sgm7Vhffa/0MYY2b''@;'; + put 'put ''1zXBHHHxMNx45UVKEUwOlPjvm+9jLUXrymJ8BIRgli3DklpO3oOtEGxaT888rkWoc5T6vtRDREIzadsx5FFgkV7zIpY9Qv1uZRyjoyJRKy4WKcl10TC5Hho1SKZ1EmonxFPaoGhwKh5emEjyn0o+lDWVjBDMmiKoj+PDI9wYQgSzVh2zMj6YNjKRz/nCjL0bhGDWeJYN6tsTj9w9UrcJrKszQCfl''@;'; + put 'put ''43pl3EdYsXZTdQ6XY3SGgBDMyguEtZys7WRNGa9ZU8YR68ezs8nEnqVFrh+k6PVDaRk4cOgwjmXlaMQzlLVpFaHLGsmoyEjEk/axXp0ELT0Qpwhi/8m6tRO07fw7486LkMmK0Pz7N56f/5swCYtXrBVt+9+wGO5TZCyZyG8rRHS8WRkNJkeRz/7EigPbiq9pvQtF1xrMc87qgcfvuU0pgumBCWPe''@;'; + put 'put ''nYQ/l6/R+9yQ/lUCASGYlQCpgl2YaHq1nbzmPyaeeVTxKic3D8eJZLJ/J6dJOkLazqOUrzPzeJZmgj+Rl48CcjlRlYCaCRu7PQycvDyOkpXXio9BnYQEjUzWq5NI60QkkJYymoJyOKLba+JmDaaXTIpWuILJV85PrMEc894n+HPZGklTVA5GRtgcm1hMMMMjyUROHVYhyMdMlXx+/ciKw3uEYNZ4''@;'; + put 'put ''Dp7ZvTOevn8UHBQYo8piogfo2A+oSsSi5aoMKaTHIQTTP+Jnoukln17iyWdi4sTm9gJKAp9P66ycE5pfJ6+PZ2VrWk/2/8wmczyb5HM1Ekr7ExFl4soWhGCag1mbGGazajlHw4k88vyJJi0jm7TjYqKIRMaRaTuGtI+x2nf2jeR9IohkhlMJQ68WmIkjj4fXPB4hkr6bh2Ii9x2WwWwpIcmNoSML''@;'; + put 'put ''YQsneqkCu2SWTOmWfnk/DBkHhWDWeG717NIBzz54pzJpihgQC5lf3vn4S8yav7jG+EgDwUdACGZwZFCagHrJqJdwMeniYCPO2lBU5NQIJn9mX08Hlf/LLyjQCCoTVS4HWEBklbfzvk4isbzmsAD2mebPbs8/SxxyBLaNyKJ2bpOZ/Bpt8G5j8sg1re20LSLcjgj+TNtY08i/8TZtX/rdTv6QrH3k''@;'; + put 'put ''MXmXkuPwEkghkV50/LsWgulffAPVer0mLgy+wUnXlhoBPmTQoPuRBz+PD0NWuhDMGs+jTu1a4b+P3qOUCYwJ5qTJU/DDjN9qjI80EHwEhGAGXwYV9cBL2pgEekko7+/dXvJzSQLn/exdl3cObpMX77rkZz7We7xXa1p6XXIfrSH5L+gICMEMugh80oGGrV045xonOB+mEgpMMo8X5rkwbUI4co//''@;'; + put 'put ''/TLqE7D81IiufTA50e8rT92v3by9N2o/4RCwZi0WKyb/NB1f/kjJrGQxPAJMMDlf68XDBirlK2x4wcgABIFqIlBMMKUWeTXh081hLbq60OcyKgjALiS66VX1O8L+l7nZRDDHhaMgTwhm9ZE8eWRjSq3x+uiHNb8jVQgmm8J+mjkPH375Q43xkQaCjwD7zo0ccQnOG9iP/AILgt8h6YEgIAjUCAFO''@;'; + put 'put ''4fQ2uTHN+3OZ5j5Ro8bk4KAh0LZPEXqdR+6X5PKiBMG0mJCV4cbP4+wocgjBrPHESq5XG2Ofe0TzZVKFYLKJfM6CxXjroy9rjI80EHwEoqMicOcNV2FQv95CMIMvDumBIFBjBNh3dsInX2MW3acLKThMFmMi0PXcInTpT0FwFNinAsHkFEUZB4Fp5IPp8RS75uhdMro2kXNSYNZgciSl13dJ74Ce''@;'; + put 'put ''rn9MMBctW42Xx318ul3ldwMgwATzjuuvxOCzzxSCaQB5SRcFgdMhwATzwy++xy+/LdSCxE63v/yuTwTOutiBlj05MkYNDabVZkbqTjd+/dB+is+3PtEv7pWuCSZXnHjjuYeplFmCMoE+HFywZsMWKhf57l8BAHqeINK3ihEQglkxPvKrIGA0BMIp0n/S11M0VyZObyWLMRE4Z0QhGndkgqmGBpPr''@;'; + put 'put ''kO9a78K8L8INIxBdE0zO+zb2+Ueo3Fk9LeebYVCtoKNMMLfv2ovHX3pTS4dSwa7ykwEQEBO5AYQkXRQEqoBAREQEvvjhZ3z/yxwtrVUVDpVddYKAiYziw251oG4TMo5ThjEVTORch3zTYg8WTSku86oTqCvshq4JJnsZjP3Po2jepBHloiuqcCBG+ZHTmaRSObzHXxpLiaDzjNJt6Wc5CMRSFZV7''@;'; + put 'put ''Rl6Dvj27aQnAy9lNNgsCgoBBEGCCOXnKdHwzbZYQTIPIrHQ3w+xEMG8vQHxddcpEMsFcTdkNV86ylR6ubr/rmmAyai89fi86t2+jTDUfJphHMzLx1CvvIC09U7cTQzpWOQRioiM1H0wJ8qkcXrKXIKB3BESDqXcJnb5/UXFEMKkOeVQc5b/lfLSnP0T3ezDBXDwV2PinEEyfCeup+25D317dlQqg''@;'; + put 'put ''4GoiTDD37E/1GU7SUHAQ4DRFt15zKYYN6KvUHA0OmnJWQSD4CLAP5kTywZxK6eTEBzP48qhOD5QrE0kgMMGc+6UJu9ZaqwNJUI7RvQbz37ddp+UYzM/PDwpA/jgpl5574c33sX7zdn80L20GEIFIqhF93aXDcfkFQyTRegBxl1MJAv5CwJumaOb8RVr5UH+dR9r1HwIprVwYQFV8LGY1tJeMFKcp''@;'; + put 'put ''mjXJgtTtQjB9NnNuufpiXH3xeWo9vKlu8evvfYKFS1f5DCdpKDgIcF3pi4acg1tGXCoazOCIQM4qCPgUAYvFglfHT8SSleskENOnyAausZbdXDiLq/gokgMTHJDipjrk74ch86Ax6pCztHWvwbxs+CCMojyDKmkwORcm51mbOut3loEsBkbARrLs07MrHr7zJmUC0QwsDum6IFAjBDjLR0FhIZ4f''@;'; + put 'put ''8y627txD/IRCkGUxHAJdBjjQZRDFkitSxcdEZSId+S5MHW+cOuQ8aXRPMAf26YlH/zVSKYLJ5SK/+3k2PvmWPHZlMTQCFnogtWnZFM8+cAfsVGJOlYpThhaKdF4QqCYCfG9OPXxEI5iH0tKr2YocFmwE+lxciBY9qZyiIknWzVQmMueYm+qQ2+EoMEaZSJ4DuieYZ3Ruj9EP3aWUdog1mPMXLceY''@;'; + put 'put ''9z4N9nUo568hAkwo69VJxHM0RxulJCs1T2sIjRwuCBgOAfa/XLpqHd744HNk55wwXP+lw4QA3ZMH3+hASiv6TGZlFSLI2f/yaKobv5AG06PZy40had0TzJZNG+HVpx/QSiOpoh2Saj7GuDgq28sYiiT/1y3XoP+ZPcQPs7KgyX6CgA4R4Ajyz7//GT9Mn4P8gkId9lC6dDoEbGFunHebA/FJ6qQo''@;'; + put 'put ''soaZsW+TG3M+M04VH5aT7glmct3aeIOq+UTQha9KPXLOhbn3wEGtmo/cxE53u9D/72FhNgzpfxbuvulqSbauf3FJDwWBMhHg+zL7XL7wxntYv2WHMuWJyxyswhuj492UZL0QkdFEMGmcKmgwi6v4uKmKj91QktM9wVSxHrkkWzfUNXLazrI8mzSoj/88cjfiYmPkwXRaxGQHQUB/CISRD/XWnbvx''@;'; + put 'put ''0lsfIj3zuP46KD2qFAJ1G7lw7o1OWG1qmMd50Ewwl88A1v5unCTr3G/dE0x2un599ENo1rihUv5tHKk4+rUJ2EZ1yWUxPgJsJueSkWf3FjO58aUpIwhFBMQ8robUm3Z2ot/lbqrg41ZCe8lSYYI5bzKwc7UQTJ/PUtYM9ejcQSnzI/keY8y7n2DRijU+x0saDDwCVsqd17t7Jzxy181aJLkq/sKB''@;'; + put 'put ''R1LOKAgEHgHOfclBPc+9/i527tkv2SACLwKfnVG1FEUMDEeRz/zYgkO7jJNknfutew0md/KBUddj6Dl9lUpVxJHkH335PX6a+TsPURYFEIgn8/hjlFKrc/vWSr0MKSAaGYIgUCECXH/859nztRKRuXnqVI2rcNCK/tj3CkpR1NUMjyIpisgDC04nJVkfH4asdOMkWefpZQiCeeMVF+Lay85XjmBO''@;'; + put 'put ''/20B3v30W0Uv89AbFidd70tJ1x8YdYMWkCZazNCbAzJi4yHAWT2YVD5P2svt5LLkpjQ3shgTAbPJg3NHOpDUhGRIOfJVkKSZkqznZrsx9R07CvONkwOTZ5AhCOawAX1w/+03KEUw+aa2ct0m/IciFmVRBwEO8vn3rdfizB5dJGWROmKVkSiMAGsvv5n6Kyb/9Cvy8gsUHqn6Q4uMdmMopSiKSVAn''@;'; + put 'put ''RRHnwEw74MH0CXYizBwXb5zFEARTxWTrTDD37E+VVEXGuVYq1VNvZZ8n770NMdFRElFeKdRkJ0EgOAhw5Piefal46e0PqYJPWnA6IWf1GQKJ9V0YeksRrGE+azLoDdnsFuxc68bvXxkrRREDZwiC2bRRCl575kGwI7ZKZses7Bw88fLbOHTkaNAnsXTAdwiE28Nw0ZBzcPPVl4gvpu9glZYEAZ8i''@;'; + put 'put ''wC/5bA7nYMulq9ajyOn0afvSWOARaNqJIsivUC+CfM1cN1bMFILplxmVEB+Lsc8/ivi4WKU0Qi6XWzORr9u8zS+4SaPBQyAuJhr3UHWffr27K+XaETxE5cyCgG8R4LREP/wyG1/8OF1M476FNmitdR1UhM4DyPfS5VLC/5KB5BRFC74zYdtyY0WQc98NocG0Wi2UC/Nh5XJhmkkj++6n32DG3D9Y''@;'; + put 'put ''FrIohAAnX29Yvx4evfsWbd4WUt5TWQQBQUAfCLDf5bLV6zGWao5nHs/SR6ekFzVGoP8IB5p0oGZIeaNCgA8DYuEURZOsOLjDWBHk3HdDEEzu6OgH70Cvbp2VMjlyEvmfZs7Fh1/+yEOURTEE2B+zXavmeOjOG1EnMQEOh0OxEcpwBAHjIWC327F73wG8Om4i9h08rJTblfGk4bseW60erURkQjIR''@;'; + put 'put ''G2KXKhBMTlFU5OAURXZkZxorgpwlaxiCeecNV+KS8wYpZW5kH6BV6zdr6TF8d5lJS3pCgLXv3Tq0xX0UWc4uHkVFRXrqnvRFEAgpBJhcss/7axMmaVXUuPa4LGogEJdIAT63FSE8kogNDUkFgskJ1rPTPZhGBLPIYawIcp5VhiGYHDRx980jlCKYbEZNPXQEj744VsvDpsZlLqMojQDnx+zZtYPm''@;'; + put 'put ''k8mR5UIySyMk3wUB/yPA5DItPUMzi6/fskMpf37/o6f/MzRs7UL/a12wUAJMFcglI24NMyN1u5uq+ITrXwBl9NAwBJMf0KMfvEs5MyMn+H361XcoZdHBMsQjm1RBgEkml5K8+6arEU11y50SsaqKaGUcBkCAyeVBSkP01kdfYuO2nUIuDSCzqnax09lF6DZEvQCfjYs8WPyTMfMuGYZgNk5Jxmuj''@;'; + put 'put ''HwI/qFVKVQSTmdJkTMIfy1ZX9XqS/Q2GAJvLu3dsh/tuuw5cVlJ8Mg0mQOmuIRHgaPFde/fjzQ+/0OqMi1nckGI8bafPvqoQzTqZKIJcHQ0mR5D/SSEam5fYTjt+Pe5gGIIZEx2ppSriYAkXpSBQZeHcnt9Mm4nPv/9FlSHJOCpAgOV9Vo/OuIVyZNarkygkswKs5CdBoCYIsAsSay5Xk5/7BMrW''@;'; + put 'put ''cYDckZRSTtQEHMWOtdrcOI8q+NRSKMCHRcRVfGZOtFAEufFSFHH/DUMw+Wbx8pP/Roc2LZV6KHOqomWr1uHFtz5kecgSAgiwJrND6xa49ZpL0bxJI20+y4MvBAQvQwwYAvwix0GUs+Yvwmff/aylIuJniCxqIlCrrhtDbimEPYpkrIgDJk9Xx8kI8hwDRpDzTDMMweTO3k+mxaED+ipV45lvevxm''@;'; + put 'put ''/ZgE+rCIQ2bhh1+TBvVx/eXnU/qtTppPplsiWkNG/jJQ/yFgs9lQSCnBfp49H19NmYGCQkkP5j+09dFyk44unH2li9ITqWMe5/yXmUc9+GWcnZ4Pxnw5MhTBvHz4YNx+/RVKRZLz5ZlfUIhnKNBn594D+rhapRcBQyAhPg6XDhuA88/tjzB6MEqEecCglxMpiAD7W3Iwz+SfZuDP5WukQo+CMi5r''@;'; + put 'put ''SN2HOdCpH+B2qkMwuQb57vUuzP3CmBHkLCdDEcwzOrfHcw/frZSJXBMCabPe+fhLzFm4tKxrR7YpjkBkRDj5ZXbBiIuHoX5SXTGZKy5vGZ7vEfCaxNnf8vMffsGOPfuV8tX3PWLqtMi6vcE3FyKlOVnH3R5VLORaichVczxYNduYEeQ8wwxFMBsk18WYZx/SHLdV8lnjij5sznnv8+/UuepDcSRU''@;'; + put 'put ''PiIyGrBHeHAsrWpVF7jqT7MmDXHVhUPQm0zmvEgqo1CcRDLmqiLAgTw5J3K1e+jPcxbgWFZ2VZtATIIbucdNcLuNaYqs8oAVOiAixo3htxciKt5MJnJ1CCZrMOd+YSItpjEDfHiKGYpghtvDMPY/jyIlqZ5SD1/2x9uwZTue/d94KqEqlSWMeu8LI2LZY0gREhsAcz+zIje7aiSTx82J2Af17YlL''@;'; + put 'put ''hg2kKPPaWmlUlV6mjCpb6bf+EGCtJf9t3LpTM4nzPdRR5KxyR9v3caLbQDc2Lzdh7TwrigqFZFYZxCAeUL+FCwOvddJcUIdccoCP00n+l+/acbyKyoogiuIfpzYUweTeP/fQXVQVpaNSNck50CfzeBae+L+3cORoxj+EJBv0j4DZ7EG9JnSju8EJm82CPRtclL+MyntV42FlpYdmk4b1cRn5HPfu''@;'; + put 'put ''1lHT2EvOTP3PAelhYBDg+yVrLdMzMjF97h+YMXchjmefqNbJG7Zxos9lbkREe5B/woM5E8OQfpie7h4hmdUCNAgHdepPCdbPVSvB+t8lIsOoRGTVFRVBEEOZpzQcwbzl6otx9cXnKRfo4yLfkVfHf4xlqzeUKSjZqG8EwiLc6HVBEVp1N8Pp4DytFmxe5sGK6bZqm93YN5P9ji85byBaNWtC7biV''@;'; + put 'put ''0tzrW6LSOz0iEBZGD1yqgrVk5VpM+XUe+Vruo2uienmR4+q4cc7VDsTVI1MeGY6sZJJcORvY8IcVzmq8GOoRL9X7xNadQdc50LAdjdSljgaTS0Tu2+TGnM+MG+DDc89wBLP/mT3w+D23KpWqiAXBpp5vplLCdXJQl8VgCJDvZWKyB+fe5IA9kipJ0MsCmzjcHnJ9WACsmmOj79XTiPANNCE+FoP7''@;'; + put 'put ''9cYwStHFQUAcaa5SsQGDSVu6GwQEOPUQL9t27sGUmfOwYu3GGkWIs580V35JbmEq9tuj3IlmqxkZB9zk9xZWLfeWIMAS8qeMiPJg6KgCxNZSy/+SK/gYPcCHJ6fhCGbTRil47ZkHNUKmkm8a+2FyBOTzb7wn1SYMdtu02jxo09uFnsM9J7WXxQNgTulykVznmLDxz5qV+mKCmlS3Ns4lojmQfDTZ''@;'; + put 'put ''P1OIpsEminS3yghwACS/fO/Zn4qZvy/C74uWIyuneuZw78nZV6/XRQ607EYXKOdN9Cbm1r56MO/LMKTuNFPJweq9FHrPI2v/I5DczIVB16vlf8mo2UiDOecLM/ZuMG6AD4/DcAQzItyOt//7OOrWTlRKi8MEIi09A0++/DbSM4+zbGQxCAL2SA/6XlGExm1NpxJM7j+5z7C5bdVvZDJfXPObhZnm''@;'; + put 'put ''SXK9OhQI1EsjmnwdsOlc8mcaZLJINyuFAGss+aV7/8HD+G3hEsz7cznSjx2v8cs32RfQdYgLHfuQTZzs4n+Ry5O94sjdNfM8WPc75aQVM3mlZBXMnTqdTf6XQ9Tyv2TFRFGRGz9PsCM73RJMeGt8bsMRTB7x8w/fhTO6qBXow+MSP0xGwWiLh1KckJnmZgeiEujxRX5AJRdNB8Ik00Ekc45vSCa3''@;'; + put 'put ''z0SzLtUyH3DWGejfuzsaplARXlqYaKqk2dcGJf+FBAL8ks3EkufvvtRDRCqX4ffFK7QXbp/MaWq30wAnugwgbmly/YNcMsgWmxkHd3ow/ysbCvKMG1wRChOG58TgG4rQoDXdcxXKf8n1xzMPE8EcH05KNGNr0Q1JMG+68kJcc+n5ygX6sDno22mz8Ol300Lh/qDEGE0UPZ7cnMw0lCbDxC+bp/JL''@;'; + put 'put ''bYx/k0yQZsSKdQss1fbJLAu0WnGx6EWZFdg/uVWzRoiKitKStYufZlloyTa9IcCaSiaW/HK0ffc+zP1jKRZTEM+xrBzfdZXISEfSdnUeaILFSuSynGxwJirPl5flxsyJrD3iK9fYD3jfAai/liJjPTjvtgIl819uX+XBgm+Mm2DdO1sMSTDP6tEZT99/h1KpilggfKNdv3k7Rr8m+TC9E1Tva4vV''@;'; + put 'put ''jRZdPTjrUhdcZNYob/GSTDf7ZM4in8wlpKkpf/fymqlwu53yxLZp3gRnk0azW8e2mp8mv+Vzwnapc14hdPJjgBFgbaXXvzIrOwfrNm/TzOBrN22tUfBOWcMwUxBex/5OdDqH7rEWijin666M98DiQ+lCdVMqzTmfW5G2x1LtDBBl9UO2+RaBhq1d6H+ti/J1qFMekhHiAJ9FP5mwaVHNXap8i3jV''@;'; + put 'put ''WzMkwUyhSNoxox9COOVC84nppOq4+e2IbHJgf+Llt6ie7lG/nUMa9h0C1jA3OvR1o/sQD/lsnT5diuZfU2imFEaUDmU+JXX2Q44zflFJIK1m907t0Lt7J7Rp0RRxsTHatSJk03eyl5aqjgAH7Hi1lexfuWTlOixasQZ7ySRe3XRDFfXCaiWfy3OL0LY36SLNREQq8VLHOQgXfGulXLZmuA1uoqwI''@;'; + put 'put ''G6P/1p2KWnTq71Gq/jgrzPkZMeNDG9L2Gtv/kueXIQmm1WrB66MfRrPGDdULbqDZNfaDzzB/8UqjX/8h0X+b3Y0ug1zodDb5P1aCYDIoZrNJ863ZtdaDNXMpJUqWpt/0C16sJapfrzbl0+ygEc4WTRsimkzootn0C9zSaBkIMKnkechz7iglR2dt5eIVa7GeKu+cyM0v4wjfbLJTbtqe5zvRvAsH''@;'; + put 'put ''i/8zoKe8s7Af5uKpZmxfaSGrhP+uzfLOL9tPjwAXthhyi4OKW7D/ZQUa6dM3pas9+NnALho/jbejUAEfYEMSTJ4RD4y6HkP691EvHybdiGfO+wPjJn2tq4kvnSkbAVs4lYccWoR2Z5oqTTC5JQ7S8dDfIQooWDXbivRU/7+t2mxWNEiuh64d2qAHJXBv3rgBYmNiNPM5+2uKz2bZMpatVUOAzd9e''@;'; + put 'put ''v0p2zcik6O+tO/dqfpVMKtMzjlFMRrlG6qqdrJy942q7Nc1lk/acl7by5JKbY4K55Gczti0XglkOvEHfXKuuG0NHFiKM8g6TB0T5Lg9B72nVOqAlWN9CFaU+sVftQJ3ubViCef7gs3HvyGuVC/ThmzPnfHvqlXeQm+e/t3udzkfDdUur4HO+C616VF6D6R0kiVozhxyn6qBrfrNhz3qOWg2MxoSt''@;'; + put 'put ''AClJ9dClfSt069AWzZs0REKteC34iIMtmBio5n7ixV3WvkeACaVXU8llTdMzj2Hz9t1YRbl9N2zdoZFKF82pQCz1W7rQdZATtVPoWiqZ57KSJxeCWUmggrhb6zOc6H0xMUt6Mfbvq0pgB8n+lytm0vNgbs3yJge21+WfzbAEs2XTRnj16Qe0B6JqD0IHPeD/QwnXN27dWb7k5BddIFBMMJ1EMKum''@;'; + put 'put ''wfR2numkyWJGYQGwdRkF//xhJdNIYEimtw9c+7x2YjzatWxGwUHtNJ/NOom1wGX5mGiK36YXKVl7EeAXYS+h5G3ZFKiTejgNm7bv0kzg23fto/rgOQF9SbGRP3TrXi6yJrgRGUfc0lm90oFCML1S1u/6bCrx2awjydhFL8L67WaVe8YpimZNsiJ1u/8tWlXuXDUOMCzB5DrNY59/hKqb1FHOtGe1''@;'; + put 'put ''2vDlDz/jq59+rYZI5ZBAIlBTguntK/vesH7n8A56e51HEaz7gnODYeIQExWJFvQC16ltK7Rv3RwN69fTTOn8G5NNNqWr9lLnlYOsy0agNKHMy8ujwhCZVAt8PzZs2YEtO3cj9VAanDQ3grEkJLvQ+RwXGrbhSHEK/CiVj7YqfRKCWRW0Ar+vVh7y9kLEUt5hE7laqEIwNf/LEx5MfYdysOYG5/7v''@;'; + put 'put ''a2kalmAyEE/eexv6UUqWggJS/yi0sGZg3aZtkq7IADL1FcHkoWomcyKaudkeqvpjIR8wKxwFgdVmloacTenJ9BLHkegdiGy2ataYqmglIDIyUttVzOmlEVPju9fkzfciXphQHqUKYzuJUG7ZsZt8KvfgwKEjPk8pVFX0wuweNOvGWksX4hIo3oMTbteQcQjBrKoUArt/wzYunHONi4qkqaW9ZP/L''@;'; + put 'put ''A9s9mPUR5b/kh4ECi6EJ5mXDB2HU9Vcq54fJ84r9L5+kdEX7Ug8rMM3UHYIvCSajVGwyJ20mqTMP7TRpSdmP7NbP2yxbDlij2apZE3Ro0wKNqYIQm9O9hNNrTpe8m8aZ86ydZELJkd78mWV3Ijf3Lw0lm7u37dqDg0eOBp1QlkQ1qYkL7fu6kNKyWGvJVbRqyC215oVglkRZf597nU9pp84iWTvV''@;'; + put 'put ''Ipia/+Vsyiwyx/gJ1r2zxtAEsy1pVV5+6n7NXKeayc5MmoP3P/8Ov8xZ4JWVrHWIgK8JpneI/AKrmUxygZ2rKG/mUgtyj+uvdF0x4UzSgoT4emzSsD7qJiYgOjpKIy18XXpJp2rXqFdWRlp7yaRXQ8l9ZwtQ5vEsHEpLx+59qUQm92prNoGzP7jelthE8rXs7USLTh6Ex3Bi9JprLUuOUQhmSTT0''@;'; + put 'put ''9Zn9bIfdVoRaSR6loscZZfa//HWiBYd2GD/BunfWGJpgRoTb8eZ/HlXSD5NNU0tXrcOLb33olZWsdYiARjAvoCjy7lWPIq/McLR0RsQrjx/xYAuZzXett1A6JP0RTe9YwsJsqFc7USOazRo1IOLZgPJw1kV8XAyiTprVhXR60fLvmkkkE0rWTPJnxj0/Px9czCGNUgVxvW/2odx74KBW2CEnN0/T''@;'; + put 'put ''Xvq3V9VvPTLGg+bdnGjZ3YXYRHoD46I8NbWHl9EdIZhlgKKTTay1HnorJ74k4ZO62hcaaz0MjZUJuTluTHvHjgIF8l96MTU0weRBPH7PSKrBfIZyfpg8No7CfOKlN3H4KOWxkUWXCIRFUB7MYWSy6VW9KPLKDIrN5mYreRyRf9nh3cCmJfSWu81KmsHKHB3cfZjgcNBQvTqJaNygvkY8G6UkIalO''@;'; + put 'put ''bdSKj0VEePhfSbg5eIjNs/wn2s7KyY3x9f55Tdz8nbXGOSdywWUYj6RnYP/BIxqh5PVh0lTydn+Qs8r1ump7Rca40aQjlWQlX8uEJL4aSGPpI3N4WT0RglkWKvrYxgE+nSkFVQt6ybCRxk/TXuujazXqBftf7t/swexP1ch/6QXD8ATz/EH9cO+t1ynph2kircP4iZMxa8Fir7xkrTMEbOFUJnIw''@;'; + put 'put ''+4L5R4NZcrjEGyg1jJmqVwEHd5JGc4mV/DSZePJD1zgLEyA2rdemvJv1k+qgQf0kNKDyr/Xr1aFcnHGIJfM6+3R6A0zKIp6hREC9BJLXjIlXM8kYFBYWIr+gEMezsin35HHNzM3BN4fSjpJWMo1M39na78aZHX/3NCrOgyYdqBJPNzcS6nHcAxMK//vdCcH8WwZ6/dSwjZPK8zqRkMzJ8DmrhV57''@;'; + put 'put ''Wrl+sf/lkp+pfPBCNfJfekdteILJ1Ug4HybfeFV76FjItPXnslV4ZdxEr7xkrTMEmGB2G8z1yCtXi9wX3WeiyfWSnQ4mmiZsW2GmtfGrjjBxioqMQEJ8HFUcqktazkQkE+nkqHXeVkw8I2Cn/Jxcz9q7lNR68j2Av3sXvd4TmCx5Fx43L7z2/nl/Y3LtJZEnKJL7GBHGjGNZWgAOm7bTqPRiJn1n''@;'; + put 'put ''a0dBIU0IBRau0tK0swuNO7gQz6bwABFLL3RCML1I6HsdGU3azMFFaNHVQ1aQk764+u5y2b3jKU5a+V8+CEP6fv0EdJbd2aptNTzBDKPyd2889ygaNUjWzEJVG76+9+aH0DHSTIiZXL9yCgbB9KLBHMVCpvMiCnJI28vBQFbs32pSooatd4zetY3SJcWQZjMuNgbx9JdIms7aCbU04plApva4mGiq''@;'; + put 'put ''sR6paUbt9jCNhPJLJ5uNy3r59JJQ75rPw2S0NCEt/d3bn5IEkbfxd++2kp+95LHkcUwavflEC6nqDRPD/PwCMIHMzsklbWSOdt0zkeTgG/7LIr/JE+QjydrK8vrkPYcR11abB3WbuNG8E0eFU6L0WNLMk1YqGJHCQjCNNYMatXORNpMCf+oZU5vJyoKsdPK/HGeHs0i//vXVmRWGJ5g86H/dfDUu''@;'; + put 'put ''HDJASTM5R5OPm/gVZs0XM3l1Jri/jwkmwfSOzUs02Ucz85AHezZasWeDGdnpat2svOMta82kjgOMIux2RETYERURoRFSJp2sFY0mk3tUZLj2OZyCA8PD7LDbbRoRDSNtKNdp54pGxSZoYu6kU7CSO4LJVBwcU/qcHipB6C196KJqIpxgnMkqE8aiIqdGGjkC2+Eo0ohhHkVq5xGJ5PRjubn5Gplk''@;'; + put 'put ''H8lcCrrJzy/U9udjVSSPpbHzfuexxtYGGrV2olEHN+o0AKw2E1xkBueqA8GyegrB9ErIOOsICgDrOqgIzbu66aXSWL6ZbB7fstSDP35QJz2Rd+YoQTD79eqGJyjpOpuSVFtYA7J8zQYtmjyUHj5GkaMeCKYXK6ZFHAxkMnm0ZO0HdwB7N9hweI856AnbvX3U41ozS5/UQHJiea8Gkgkn/8YE3ruw''@;'; + put 'put ''rxd/dxKpZELJf05nMbnk65MDZ+Q69aJV9poDNeo2pcCd9i4kkdYyKo4NhEQKivzvX1l2j07dKgTzVDyM9I3dKrqR2TwhyQJnoTHqlNvsFvw+2YSda9RJT+SdM0oQTA4WGEvpitiEVtLk5R2k0des6eCk6weoFJss+kJATwTTi4zGh0h5yWTJSdqgY4c9ZDrnKEULfSYzUnCq+Xm7J+sQRMBO2RZq''@;'; + put 'put ''N3ShUVsXkpt6EFObEruzHzGR82BqK8sShRDMslAxzrbIWNJmDihCs+7km0kujXqONOeXVUcBmcfH23HiuFr+lzxjlCCYPJD/PnoPunZsSyYpNRzdeUzehYN9Pv7yB0yZOc+7SdY6QUCPBLMkNEw2zTYKHqEPBfkeZBwksrnFgoM7zMhKM14EesmxyWd9I2CPcCMxxU31wd1IIlIZVxfkisAmcDJ/''@;'; + put 'put ''kwY4WCbw06EmBPN0CBnjd9aQdzuXk7LrV5tppXtz6g43Zn4cbgxQq9hLZQjm5cMH4XZFy0aymW795u0YPWYCaZ9E/VTFOe7X3fVOMEsOnt+WOSiI1/m5bvLXBFIp+vwwpTo6dpi0SYo5mJccu3wODAIRFNlbhzSV9VuRprIxaSrrkC8rkUoPkUq3jkllSXSEYJZEw9ifo0ib2UWLNGfXFv/mT60O''@;'; + put 'put ''Uux/uWw6sG7+31kxqtOOXo9RhmC2aNJQS1fEZExFHyiONH1uzHhs3blXr3MpJPtlJIJZUkAUu0IBLcVks7DAQ9pMN47s4zJlZqQftCA/m/ZmJiqLIFABAmZ6aEcnUIBOIw9SWri0dXQtrh5E2nHKbmAUUllyiEIwS6KhxuemlJ2g60AH4pOscOnFN5Nur8xVZnB6ogPqmcd55ihDMNkhf8zoh9GM''@;'; + put 'put ''8mJyChDVFk638t3Ps/HJt1NVG5qhx2NUglkSdKaRHBzE6TI4gvdElgfHDgKHiXCm7aUUGkctcOQL2SyJWSh/DrNT4vPk4rRCyRSsUyuJ0grF0MsKvdyzzy/8WGUnELgLwQwEyoE/Byfu7zLIQXkzi9+d/VkNqjKj49rjmQfd+PldO1km1cz4oQzBZIHeft1luPz8IUqmK+LIVq7Q8diLY7VUJ5WZ''@;'; + put 'put ''wLKP/xFQgWCWREmjkScDhEDaqaJCIpzHgczDZqRRNPpRIp45aRby5xTCWRI3lT9brGTqTiBC2chNuSpJS9mAtJbxQFg4WYuYT5LpW2+BOjWRhxDMmqCn/2ObdXGSNpOS+NelF6IgajPZPL5uoQfLflYvPZF3FihFMLt2aIP/PPIvJTWYLDBO5THm3Un4c/kar/xkHWQEVCOYpeFkGmkizSb7bvIM''@;'; + put 'put ''1Agnmc+z0kxITyXfTfrLPEI+nTkSnV4aO6N+t1DS8xgikAn1XahHhDKhvgfxtT2wRxancOJyjW6Daykrko0QzIrQUeO36HjOm+lAsy5cICE4vpmswZz1iQWp29RLT+SdJUoRTK5vPPb5R5BUt46SwTBSOtI7bfWzVp1glkZa01sS4SxOQu6hlzkPCvJIy5lJVaeOmJBxqDhgiJO8F+ZSbkOPaDpL''@;'; + put 'put ''Y6i372GUQiiW/CgTUzxIbOBCYhJpKBPdlLDeqr1c/OVLqdewbx8DKgTTx4DqtDn2f+TE7F0GOlErwNpMdkfKyXRReqJwSlOkpnmcxa4UweQB3XfrtRg+6GwlzeQ8vmzKifn0K+9g/8HD/FWWICMQagSzNNwafaT7o4UTktMbOXmta1rO/FwP+XJyKiQyrx+yaBrP7Ayg8ASlDJFECKVhDNh3WxgR''@;'; + put 'put ''R4qsja9DZDKZfCmJVMbVoWTnsVQJyU6CpHxWXkLJeYRChFOegr8QzFPgUP5LTLwbXSmdUdPOpM2kGR8I30xOrr51uRt/fG9XGl/lCGbvbp3wzAN3KJkPk2eixWLFVz/+gq9++lXpiWmUwYU6wSxLTsVaTpqrFKruJZ1OqtLCpDM/x4wcIprHj5roz4wT6SbkZpnIp7PYn6+s9mRb1RFgGYRFeqim''@;'; + put 'put ''txtxiUQoiUzWqgf67CKCaUJ4JLk9aBk3in0oA/FQrfoognOEEMzg4B7Ms7I2s0U3NzqfQ5HmdSnS3OHfKkC2MDN++9xCZX3VjB73ylI5ghkbE423qKpPAlX3UTFnJKdh2rX3AJ5+9R0J9vHO4iCuhWBWDnyNdNJ/mj/nyfRIXDvdUeBCYR75cJ4gjecxC9VPNyE7kzSeR4E88vUszJP8nBUhzJmk''@;'; + put 'put ''7EQkwyn/ZEwtN9X2Jo0k/XFQTjRpZsKjiWhGUI112pG1kRyQw2QyVLWTFWHp/U0IpheJ0FvzNcR5M5uTNpMvEn+8eJnJSpCbQ9Hj4+z00q2ueZxnj3IEkwf14KgbcG7/s1BQUMBflVs42Oe18ROxaOVa5cZmtAEJwayZxDTiSf5IXGnIfJJ4sjahiKI7CylSvZh8msjcToTzGK/NRDxNyMuh30gj''@;'; + put 'put ''6ijg1Eqc+7Zm/dDz0VarmyK2vRpJUO1uIo/0IGQzd2QcmbxjSCNJfpQ2ikq1EJDs9soPRibwHv5TGBt/yE0Ipj9QNU6bfP9p1d2FzuSbGZtIwYs+1mayeXz7ag8WfK1u9LhX2koSzL49u+LJ+25HYWGhd5xKrS2U83PZ6vV48a0PtUStSg3OYIMRgukfgWnEk8gSE08T/ceaT20b3fxdFFjkKKIA''@;'; + put 'put ''o0JaEwktIC1nYS4R0BO8JvJJnwv5cz7V+c2jYCN6z3QXAUVURZbJqJuy6gR7sVg84GhtK7lg2aiIhz2SNY2kcYwCIqI8RBpZKwnKL0mfo9ywhpOPZDiRSDKtWdnXlTWSRBw5kTlxSPogRNJXMhWC6Sskjd1OLAW6dSVtZpOOxb6ZnDnBFwtfw3O/NGP3enWjx704KUkwVTeTc07M/IJCPENm8h17''@;'; + put 'put ''9ntlKesgICAEMwig0ynZNMz/kccIrTk2hQNUtI9ah1hz52QtHqXUcRK5dDrY1E5rqsHgJKLppHdPRyFpP3k7fS+i7S6NgNJvRRTo4mLNKFei0WgtkTn6TqTW42Zyx6cgOwKd30JKiGLjs4c0sNDIn4nyRtro2WGmtSXMQ8EznOaJCCSRSSsF2dh4bad9iFjy8RZaM2nkVFCsgSxun87ABJLZsLbm''@;'; + put 'put ''UwqJ1ITr5/+EYPoZYEM1z76ZLnQf4iKXE7NmWalJ90PJPM44KUkweWD333Ydhg7oq6yZnCv7TJ05Dx98+QMPV5YgISAEM0jAV/K0XiLKuzN385I3vtFrX0qQUt6n3OUkuWPS99dCTZj5BNzUaRbtMI0rMkktboSTlGufuNHif6dpRX4OBAJCMAOBsrHOEVvbhZ7nFaFRe28J1OJruKqj0Mzjq8g8''@;'; + put 'put ''/o365nHGRlmC2bNLB4x+6C5lo8lZe3I0IxNP/N9bSM+kUiuyBAUBJpjdB7vQvi9pwchvUBZBQBAwNgJCMI0tP3/1ni0VrXq5tLyZ0XGWat3vrSfN43tCwDzOclCWYEaE2/EmRZOrmnSdhWcmm9ykb6bgxxlz+assQUCA/eJ60Jtt216mat1wgtBlOaUgIAhUgIAQzArAkZ8oUwNpM4cVoXEHCgA6''@;'; + put 'put ''WdWqMrBo5vFsF6a+E07+4ezbo/6iLMFk0Y26/nJcNvxcZZOuF6cs2o+nKPF6Xr6aEfN6vwQ5MKPXBS6KOhQNpt5lJf0TBCqDgBDMyqAU2vuwNrPNmS50HcB5ZSvnm8m1x7cspeTqP6idXL3kzFCaYHZo3QIvPn4v+cazc3z1fCZKgqXLz2Qqf/ujLzH3z2W67J7qndII5vlOtOohGkzVZS3jCw0E''@;'; + put 'put ''hGCGhpx9Mcr4ui6yYDnRuK2ZggApo8NJ/+qy2uZ5NfsTEw5spai+EFmUJphWSuczZvRDaN6kEYqKKIRUwYVTFq3btA3PjZlAUbPiAxhoEQvBDDTicj5BwL8ICMH0L76qte7VZnYZ6KK0YmVrM7n2+PEMN34ZF07p0ioRFagISEoTTJbR1RcNxS0jLlXWTM5jdNFb0yvvfITlazfyV1kCiIAQzACC''@;'; + put 'put ''LacSBAKAgBDMAICs4Clq1SvWZjZq809tJpvH1/7uxvIZoWMeZxErTzAb1k/StJhhlHROVTM5+2IuX7MBL739UXHePAUvXr0OSQimXiUj/RIEqoeAEMzq4SZHEaEyedD2TCdVAXIjMvqkNvOkwvLXD2xI26927fHSc0B5gskDfo7SFfXs2lHZyj48Rgdlin7xzQ+wbvM2/ipLgBAQghkgoOU0gkCA''@;'; + put 'put ''EBCCGSCgFT5NfD0neg53oSFpMznH7eE9Tkx/P7y4UIPC4y49tJAgmOec2QOP3XOrsknXWahW0tDOX7Qcr737SWkZy3c/IhBGNaB7Dneg9Rll+9748dTStCAgCPgBASGYfgA1BJs0m0mb2ceJHkM8WDXHhPXzQye4xyvukCCYMVGRGEs5MeskJsClaCAMJ14vKHRQsM94bNmxxytfWfsZAZud69W6''@;'; + put 'put ''0LGfpCnyM9TSvCAQEASYYC6aYsbO1RatbGhATionURaBhCQXCnJNyMsJjdyXJQUZEgSTBzzqOsqJeb66OTF5jBYqH7lwyQr8b4JoMRmPQCxcW7rdWW70GEa1r6WSTyAgl3MIAn5FgCN+F3xnwd71lEj7ZC16v55QGhcEFEUgZAhm6+aN8fKT95MTLiUVUDQnJo8tv6AQz78+QbSYAbpgLVYPmnZy''@;'; + put 'put ''oe/lLridiuZaDRCWchpBIOgIcECGy4PfvrLh4A5LyPnMBR1/6YBSCIQMweT7xouP34fO7VsrW5+cZ6ZoMQN7fXLUYFITFwbd4ITZSucWjhlYAcjZBAFfImA2wZHrwZxPwpB+mJ4aHn5yyCIICALVQSBkCCaDc+7ZvfHgHTcpHewjWszqXAbVP4a14XGJHgy6yYHYRNKOk/ZDFkFAEDAmAmwezzxC''@;'; + put 'put ''GsxJYcgNQZ85Y0pNeq1XBEKKYMZER2Hs848oHezDE421mH8sXan5YqrqDqCnC8oe6cZZlzrRtIMJTodUU9KTbKQvgkBVELDZLdi+0oMlv1jhyAu9oIyqYCX7CgKnQyCkCCaDMfLqi3HVxecpXdmHx+mg0pj/pbyY6zdv56+y+BEBi82DNj1d6HWhBPr4EWZpWhDwOwKWMDMWUwT59lUU4FMk5nG/''@;'; + put 'put ''Ay4nUBqBkCOYjRsk47VnHoLNZlU22IdnLNcoX0GlIzn5usvtVnoSB3twFFuFhBQXhtzogC2CtB5UulMWQUAQMBgC5H9ZmOsm/0s7MsT/0mDCk+7qEYGQI5gshGfuH4Uze3RRurIPj5NrlL82YSKWrFrPX2XxIwL2SA/6XuZA4/ZmMZP7EWdpWhDwFwJWMo/vWushDaYVhfliHvcXztJu6CAQkgTz''@;'; + put 'put ''jC7tMfrBu1BEZmSVF9Zibtq2E6PHTCAy7VB5qEEfm8XiQeOObvS7oogCfYLeHemAICAIVBUBskTM/9qK/VstlHJMzONVhU/2FwRKIxCSBNNGQTD/e+YBtGjaWHmSSYk/MX7SZMxesKS07OW7jxGIjHVj4DUO1GlsJv8tcUvwMbzSnCDgNwSsYRak7nBj4WQb8nJFe+k3oKXhkEIgJAkmS/j8Qf1w''@;'; + put 'put ''763XKR/sYzabsS/1MJ58+S3knMgNqckd6MFarG406+JGn0vccLuEYAYafzmfIFAtBEhZyfrKBd9YsXczaS+lek+1YJSDBIHSCIQswYyNicYbzz2sfMoiFrjVasNn303FN9NmlZa/fPcxAhFRbpx9VRFSWokvpo+hleYEAb8gwKmJdorvpV+wlUZDG4GQJZgs9puuvBDXXHq+8lpMTr6ecSwLz7z6''@;'; + put 'put ''Dg4eORraM97PozebqbJPMzcGjHDCaqdCIBJR7mfEpXlBoPoImCixegFV7vntUxsyDpops4j4XlYfTTlSEDgVgZAmmMn1auP10Q8jMiICbsVT+VhtNsya9yfenvjVqTNAvvkcAZvdg479i9B1oAlFhRLx43OApUFBwBcIEJdkF6Jl083YulzyXvoCUmlDECiJQEgTTAbivpHXYPjg/iGhxSygSPKX''@;'; + put 'put ''3voQ6zZvKzkH5LMfEIiIJlP5lU40aC0k0w/wSpOCQI0RsIVbsHWZmwimDQ5JS1RjPKUBQaA0AiFPMFs0aYhXnn4AFnqTVb2sIqctWrtxK14Y+75W6af0ZJDvvkNAS76e7EL/EUVUq5yiyp0S9OM7dKUlQaBmCHDOy8O73FhAaYlysswU5COm8ZohKkcLAv9EIOQJJkPyxL234uzePVBQUPBPhBTb''@;'; + put 'put ''YiIizWmLZs1frNjI9Dcck8WNBi0oAfvlRbBHmig6VSr86E9K0qNQQ8BqM+NYugfzJ1tx7JCFFAuhhoCMVxAIDAJCMAnnTm1b4oVH79E0mKprMTng58jRDDxNAT9HM44FZpaF8FksVg+atHfiTEpdZLFR0I+QzBCeDTL0YCNgIXJ54hhpLr+x4eh+M/nei+Yy2DKR86uLgBBMki2Trucfugs9unRQ''@;'; + put 'put ''vnwkT2ULJZr/Zc4CvPfZt+rObB2NzGLzoHlnJ3qeLyRTR2KRroQYAkwuc7Pc+PMHGw7uJJcoIZchNgNkuIFGQAjmScTP6EzlI4lkql4+kofLhJoDfl586wOs37w90HMuJM/HJLMFkcwzLnBTXlKIuTwkZ4EMOlgIcKWe7AyXRi4P7xFyGSw5yHlDCwEhmCflzUE+/33sHnRu3yY0tJgn65Q///q7''@;'; + put 'put ''yC8oDK1ZH6TRcqWf5p3d6HkB5cgkbYpU+wmSIOS0IYUAJ1LPPOzBoh8sSCOzuOS6DCnxy2CDiIAQzBLg9+7WEc88cCccDkeJrep+tFismPTNFPww/Td1B6mzkZktHrTs7kS3QW6Ex5ikZrnO5CPdUQsBTkV0aJcHi6dYcDxNAnrUkq6MRu8ICMEsISGr1YIXH7sXHdq0DAmSyabyrJwTGP2/8dhz''@;'; + put 'put ''4GAJJOSjPxFgc3mDVk50H+ZBfG3A6ZAURv7EW9oOQQTMXCLXjN0bgGU/W8n3koN5JKAnBGeCDDmICAjBLAV+nzO64Mn7bg8JgslDt5JD4OIVa/DK+ElwuaTqTKnp4LevXFIyMcWF7kPdSGkOFHGeTOGZfsNbGg4dBMxU/pErs21facWKmRYUFRDblEUQEAQCjoAQzFKQh5oWk4cvuTFLTYIAfo2O''@;'; + put 'put ''d1NZSSdadKfgH4skZA8g9HIqBRGwhJlReAJY+7sZO1bRZ6nQo6CUZUhGQUAIZhmSCqWIch4+1+NNS8/E6DHjcfDw0TIQkU3+RMAW7kbTjm50PseF2AQqLVlEqkxJ/uxPyKVt1RAwm8gaY0LaXmD1b1SlZze/rIlJXDUxy3iMhYAQzDLkxRHlLzz6L3Tp0DYkIsoZAqvNhoVLVmDMu5/CReYlWQKL''@;'; + put 'put ''AJvMayW50GWACw3aerRUUm6nsMzASkHOZkQEOL+lk17Ktq0wY9NCK7KPc+FHIZdGlKX0WS0EhGCWI89uHdviOcqLGUp+iZqpfCKVkVwgZSTLmRZ+32yPcKNZFxfa9/EgjgKAioqIZLqFaPodeDmB4RAwkdbSQlrLzEMerJ1nwf6tRDQd4m9pOEFKh5VFQAhmOaLlCOvRD9yBXt07h0SNcoaBTeVc''@;'; + put 'put ''PnL0a+ORejitHGRks78RMJkouryeG+37utCknRu2CDL3idnc37BL+0ZBgJSTNtJaFuR5yM8S2LTIhpxjrLEUraVRRCj9DA0EhGBWIOd2rZrhxcfv025bqtco98LApvIlWlT5RDidElXuxSUYa05nVL+5Cx36uFGvKZnNSWOjEc1gdEbOKQjoAAE2h7sp2wWXetz4hw1H9oB8LUVrqQPRSBcEgX8g''@;'; + put 'put ''IATzH5CcuuGRu27GzJmaHAAAQABJREFUwL69QkaLyaM3U5Wfj778HlNnzT8VDPkWFATCIjxo0tGFNj1dqF3fRJVI+KEqfrJBEYacNCgImMkUbqYXrIyDbmxabMXeDRY4CkRjGRRhyEkFgUoiIATzNEA1bpCM/z3zIOxhYVputdPsrsTP7B5wIjcPXEZy++59SozJ6INgDXpUjAdNO7nQsqcbCfWI''@;'; + put 'put ''aBLHFKJpdMlK/ytCgHNaMrnMJo+drStN2LnKgtxsCuGhe5QsgoAgoG8EhGBWQj533nAlLjlvEPLz8yuxtxq7WEiLuXHrTrww9j3k5ReoMSglRuFBRAzQrFNx7syEJB4Umc5ZoymxQEpIWAYBCt4xw2QBso+Sn+VqM3autiCHosPhEWIp80MQMAoCQjArIanaCfF447lHERcbHVJR5Vzl5/tfZlO9''@;'; + put 'put ''8qmVQEl2CSQCHmKTkdFAo/YutOjGpnOP9lB2cmojiToPpCjkXL5CgLgjl3fk96TjR4hYrjFhzzoK4DlOG4RY+gplaUcQCBgCQjArCfWVF5yLW6+9PKS0mGyGKipy4vX3P8PilWsriZTsFmgErHY3GrR0o0VXCgZq5kF4uAlOF1FQ+pNFENA7Ahy8xknSucBAxgFg51rysdxoQT5V5JHIcL1LT/on''@;'; + put 'put ''CJSPgBDM8rE55ZeoyAi8Pvph1E+qS9HVzlN+U/kLpy46cjQDz1LqosNp6SoP1fBjs1jdVN/cg+aURzOltQextdikCJqvYj43vHBVGwBrK6k0KsgMXpDjQepOE3atMVMFHqodXihmcNXELeMJTQSEYFZB7sMG9MF9t14XMtV9vNCwqXzZ6vV4ZdxEOIqKvJtlrVMEOI9mVJwbjdpRUFAHJ5FOyhto''@;'; + put 'put ''59J5HkrxIlpNnYotJLploqAdK/3xS8+xI8C+TRbs3WTG8aNkGncJsQyJSSCDDBkEhGBWQdSsxXzm/jvQqV2rkCOZFosVX02ZTn8zqoCY7BpsBDiXZr1GLjSmWucpLUirSbXOObErk02P+GoGWzwhcX4mlRb6Y2169nEPDpO2cs96M9UNp1RDoq0MiTkggwxNBIRgVkHubC7mEpJP/fv2kEq+zhCx''@;'; + put 'put ''P2aho4hqlX+CZWs2VAE12VUXCJBWMzIKSGnlQsN2LiQ14mh0Cz3zPaRNoie/kE1diEmVTvxFKulOmZvlwtH9ZuzbbMYhSpCel03aSlGkqyJqGYcgUC4CQjDLhabsH8JsVvzr5hEYOqBvSAX8MBqcuoj9MJ8bMwEHjxwtGyDZqnsETGb2z3Sjfis3GrYmv80GoIh0fuh7RLOpe+nptIOkoORE6Fwb''@;'; + put 'put ''nPOz5ma7SUNpxoHt5Fe5g/LqZvH8op1kEQQEgZBBQAhmNUTdKCUJLz52X8ilLWKo2B9z5bpN5I/5MfILCquBnhyiJwTMFjabE9lsSWUpW7hQpwFpOkmzCdJ4aj6brNkUbZOeRKafvnD0N5m+TRSrwyVMsylPZdpe4OAOC47sNp3UVAqp1I/ApCeCQGAREIJZDbytVgsuGz4YI0dcGnJaTIaLSeZP''@;'; + put 'put ''M+fhgy++l4oa1Zg/ej2ENZvRpNms19iDlJaUW5PIZkw8aaVsxVopTn0kpnS9Si8A/SKuaCFSyZV12JG3MNeJYxScc2SviUilGZmpFhTkcT+EVAZAGnIKQUD3CAjBrKaI4mNjMPrBO9GqeRM4HI5qtmLMw9gfk5VaEyZNxqwFS4w5COl1xQiQBjM8Akio70Jy8+JAobh6QEQUVVgh/uBxUfoj1m6K''@;'; + put 'put ''72bFOBr5V5Izm721co3sg13gQm4O56okUrnHqhHLLCKYbon+NrKUpe+CgN8QEIJZTWjNdMPt1a0THvvXLVoL7L8WSguTzByqV/7yOx9pJSVDaeyhOFY2pcfU8mh5Nus1cSGxvhuxtSlQKNKqmdO1uuic3J2vg9C6FNSZDkQoWUNpIg0lX9/OQiKUWR5kHjHj6D6O+jbheJoZhfm0o2gp1ZG7jEQQ''@;'; + put 'put ''8BMCQjBrACwH/Nw78lqc2/+skDSVc9DP/oOH8Z833tOSsdcASjnUYAhY2Jye6CENp5v8NilQiEpVxhHhDI8ivzwbabWIaHIlIRcFfIiWU4fC9WonmVCSDyWXYszPd5LfpAnHDpmQTlrK9FQzsohcFhQU/67DUYR8l2z0DLKH2RAVGYnwsDDY6LM3RJ/f85xUia2ALGx5efnII0G6tAsy5GETAAKE''@;'; + put 'put ''gBDMGgLdILkeBfzcg4Ra8SFV4ccLG/tjrli7Aa+OnyRBP15QQnBtJpN6RCyRzLpEOpPcSEj2IJ4+R9E2O5nVuRQgazfZtM7k0y3BQ4GbJV7NJAXkEJ8kBTOVZSTtZP4JD7IzyHfysBkZRCozD1JKoWNmFGkeP6yllEVPCERGhCO5Xh00bVgfjVOStapyibXiEBsTjXA7kUubjYKuLKf4xTtdLi1n''@;'; + put 'put ''M6eYyzmRi6MZx5B6OA17DxzCngMHkXoojdLPhZaLl55kqnpfhGDWUMKsxbtgcD/ceePV9KbPr/qht1jpxjZ9zgK8+9m3xSbS0INARlwGAnRpIDKWTOl1PKhFZDO+jovM6rQt3kWaTjPCqLoQ+/hpxJMt66zxZLWLmNnLQPM0m5gPklmb85lzDkr6qBENFwFamOdEfq4ZJ46xiZs0lEQos2idTd8d''@;'; + put 'put ''eZKT8jTIBvXnlKQ66NS2FTrSX/PGDVA7IR6RpK3U/ODpOuGyxcXXT7F7Cn/m30ou/J3/OI+z94/3O0GEMy0jE1t27Maq9ZuxadtOHMvKKXmofBYEaoSAEMwawVd8MFf4efLe29CVkrAXFoZm6h6z2YJJ30zBjzPm+gBRaUJVBLiMpT2CUiGRZpPJZkxtIqAUuR5di4hnHJnYIz2w2oGwMCs9FAkF''@;'; + put 'put ''IpyauZ3LqdNDkasPMQcNOT/Pk5yBrdmshmRizqZtjWjQJlehm4Jw3CjIp0TmWUBOOnCctJM5FISTfYzzUrJPJTdyKvng5mTRFwJ1EmuhZ5cO6Nm1I1o0aYha8XGanIuoTK/b7dauA1/0mOcOK0hY8+kiTWdaegY2bNmBhUtXYc2mrRS8KmWBfYFzKLchBNMH0ucLtW2Lpnj+4bvpwWjTbgI+aNZQ''@;'; + put 'put ''TTAGRU6XVulnyap1huq7dFYPCHioXjpgJ4IZGcPkk9ZUTz2GSGcEE0+qQsS/hdE+VkqbZAujaHZW19GiEVEioExENULqjWw/SUY1Qso7/vWBv+hgOcn1NNqnMcdi4sg9I2WTRiR5SNqYyHeuyEF/RBId+R7SSBKJzLTgxHHgRCYlMifTdl6OCQW5bP7mFoRIMgpGWfjlqW3LZhjS/0x07dAGdWsn''@;'; + put 'put ''aqSSM5Twb4FYmGyGkR8nE9mde/bhtz+WYQGRzeNZ2VpfAtEHOYdaCAjB9JE8beSLOOKSYbjusgtCMuCHYWTzy5GjGXiNyklu27XXR8hKM4IA0SUKKgqz0194MdEMjy4OKIqIdmvEMyKKfqO/cCagtI+VYh2sNjcsYTwvKfDISuZBzh+vqf0IUeJff1Ew/nCSyBWv6H/vM927Pp0QvI1p7RZ/0f7X''@;'; + put 'put ''iGNx+381xc0T+eWAC05m73KaKFE5iEB6UFRABJL+ColA5hFZzD9Bf2S1zM+hYBtaF1AEtyOfgze49eLznK5r8rt+EeAX887tWmH4oH4aseRgHTZ7s0YxmAsTTSace/enYubvizB74RLNhzOYfZJzGw8BIZg+lBnnxnz2wTvQunnTkMuN6YWRSebOPfvx2nuf4OBhKSfpxUXWgUKATOyUUslMWk6L''@;'; + put 'put ''1Wtu98BC5NQWRppPIp62cLdmhrfa6Hfaj9dc4pD3N1PWJYvVreV+5Ie/2UwklROLk2n/L9JZciisPiUNk5MIosftLbdJJmviBy4igW4nkUH6c1EchYO0j07vmrSMHFtRVGAm0zURy0Iz7c8+deyTKsSxJMSqfm7VrDEuHjqA0t11RGREhPbMCJS2srKYchAnm9B37d2Pb6fNwvwlK0PSQldZvGS/''@;'; + put 'put ''UxEQgnkqHjX6xuSqS/vWeOb+UZpJQW83ixoNrgoHm+nNd82GLXjj/c9wPFucxqsAnewqCAgCiiOQQD6VlwwbgHPPPlOLAGeTtN6fFUwyeVm+ZgM++24adu8/qPs+Kz6NDDE8IZg+FhObym+66kJcccHQkDWVs+aHTZELl67EOxO/QkGhpMHw8TST5gQBQcCACPTs0h7XX34hmlFEOJvBOWjHSEsE''@;'; + put 'put ''aVozMo/h66kz8ctvCzQ3DyP1X/oaWASEYPoBb35Dff7hu+gm0jBkTeVMMjnWYua8P/DR5B/J9BdcnyI/iFmaFAQEAUGgUgjEREXi6ouHYSgV5QgnR2H2szTqwr6Z/Dd/8Qp8TPf29EyKNJNFECgDASGYZYBS001cRrJbp7Z46r7bQ9pUziTTRSzzh+mz8cUP02sKqxwvCAgCgoDhEGhCidFvu/Yy''@;'; + put 'put ''dGrXmvx03YbTWpYHOOfj3LZzN97++Cts371PTOblARXC24Vg+kn4xabyi8hUPiRkTeUMLfulchWJz7+fhqmz5vsJbWlWEBAEBAH9IdCzaweMvPoSpFDFNyNrLctD1m63I/PYcYz/5GssXbWeFArGMvmXNy7Z7hsEhGD6BscyW0mIj6WAH4oqb9E0ZBOwMzCsyWQ/zI+/+hGzFiwuEyvZKAgIAoKA''@;'; + put 'put ''SggMpZyWN1x5EeKolKOK5NIrK44053KT73/+nZY7M9gplrz9knXwERCC6UcZsPauU9uWeJqiylmjaTSHbl9Cw1icyM3TyklypQhZBAFBQBBQFYFLKP3QNZcO12qEh8J9n30yWXv5yTc/YdpsDv4Rn3tV53ZVxiUEsypoVWNfq9WCERcNw/VXXBjSpnKGjknm8ewTGEeR5cso3YUsgoAgIAiohsDl''@;'; + put 'put ''wwdT0Y3zEGYLLaUC39/ZWvXBF99j+tw/hGSqNrGrMR4hmNUAraqHRHOt8vu4Vnk7FBQUVPVwpfbnmxBHHY6bNBmr1m9WamwyGEFAEAhtBM6nijw3XXWxRi71ntvSH5Li+zuXbB1P9/d5fy6HUzSZ/oDZMG0KwQyAqPitrkWThnjuobsQEx0V8m92bE5JS8/E2A8+x4atOwIgATmFICAICAL+RaBf''@;'; + put 'put ''r26468arqCpPeEhHVPP93UGBnS+P+wir1m3WCKd/kZfW9YqAEMwASYYvuvMG9MFdN10NI1Ru8Dcs/KZ7mOqWv/3Rl0Iy/Q22tC8ICAJ+RaBdq2Z4cNSNqJNYK6R97b0gc+WfoxmZ+M/r72HPAan648Ul1NZCMAMocbs9DPfecg0GU4mw/Pz8AJ5Zn6cSkqlPuUivBAFBoPII1E1MwKP/uhktmzYW''@;'; + put 'put ''clkCtvDwcGzYvA0vvvWhlAwugUsofRSCGWBp162dgP88fDcapiSHbJWfkpALySyJhnwWBAQBIyHAQZysNDj7zB4wUcdD0e+yInlxMvYfZ8yhFHVT4KCa67KEFgJCMAMsbyZUXdq31oJ+Qj11kRd6L8l8hypCrN+y3btZ1oKAICAI6BqB4QP74pYRl1IaOouQyzIkxfEH/Pfau59g0fI1koi9DIxU''@;'; + put 'put ''3iQEMwjS5bdeTmVxM1V4CPWoci/8TDKPUODP2x99QSRTAn+8uMhaEBAE9IlAY7JCPUHZQZLqJAq5rEBE7I+ZevgInnl1nBbcWcGu8pNiCAjBDJJAOdLw4TtvwllndBV/zJMy8EaXc9kxSWEUpIkppxUEBIHTImCloM37br1WM41zffFgLawd5Psm//HCL+q8eE31XEGIk557v2s/BuE/MZUHAXQd''@;'; + put 'put ''nFIIZhCFkJJUF6MfvBP1ac2R5bJAu1FmUG3bdz/9FktXrxdIBAFBQBDQHQK9u3XCv2+7nir12ALeNyaVYWFh2nlzc3ORcSxLyy3M981cDh71gPplR1xsNNjnPyEuFvHxcZqp2ks4A91p7jPnxHxuzARs3Loz6IQ30OMP1fMJwQyi5M100XXr1BZP3Hsb+I04FEqKVQZufhs/np2jVYSQspKVQUz2''@;'; + put 'put ''EQQEgUAhEBFux1P/vh0d2rREILWXrJ1kYpmbl4ct23dr1dA2Uh7hQ2npyMsvu4BHGJmnE2rFUYR7I3Tt0Aad27VGUt3aGsELtFKDo8qXrFyLl9/5WKtdHih5yXmCh4AQzOBhr52Z/TEvO2+Q5igu/ph/C4Nvply7/NNvp2Hm/EV//yCfBAFBQBAIIgID+5yBO2+8OqDVeuykkTxB2so/l63Gr78v''@;'; + put 'put ''ws49+6tVJacWaTP7nNGFUuX1RvMmjTSCHKi64azF5OW/b74vCdiDOH8DeWohmIFEu5xzhVN+TPbnGdi3t/hjlsCISWZ+QSG+mjIdP838vcQv8lEQEAQEgcAjwNrLp/89Cu1aN2dHR793wOtfuYzchb6dNgvbdu2tFrEs3dEoKl88qG9PXDx0IJLr1UFhYWHpXfzyXbSYfoFVt40KwdSJaGonxGul''@;'; + put 'put ''JJs1bhiwi10nQ6+wG0wyi5wuTPn1NyKav4Z8mc0KwZIfBQFBwK8IsPbvnluuRUR4mN/9CNkczlacyT/NwIy5f6LADySQ4wBGjrgEvbp3hpPiAPwdDMRaTK5V/ixFlG/cJr6Yfp2sOmhcCKYOhMBd4AuvXctmmm8P1ytnZ2xZihFgkukmZcHM3//AJ99M1bSago0gIAgIAoFEwEL3oYfvugm9u3Wm''@;'; + put 'put ''0/pXe8km8dRDR/DuZ99g7aZt9Dxw+W2o7P9/1UVDtdR57LLl71iAiIgITJs1j3zsf5Dk636Tqj4aFoKpDzloveAb2MC+vXDvyGu0i9zfb5M6Gvppu8IE3ET4LFq+Gu999p2UHjstYrKDICAI+BKBZo0a4On7b0cCRWT7897M5HL3vgMY+8Hnmq8la/wCsZxLfpm3XnMZRaD7VzvLZv9Minh/7KU3''@;'; + put 'put ''ceRoRiCGJucIEgJCMIMEfHmn5eo+119+Pq6++DzxxywFEpNMM92c1m7coqUxSj2cVmoP+SoICAKCgH8QuPLCIRhB92WL2eQ3gllMLlPx+vufEslM9bs2sTRS/Xp1IxeAEVqaI39qMnmcbxKB/u2PpT7xKS09DvmuDwSEYOpDDqf0gh3JOQl7n57dhGSegkzxFyuR8J1792MCJWTfunNvGXvIJkFA''@;'; + put 'put ''EBAEfIcAp/th7WXHtq38FtzDFW/SqJrZa+9OwtYde4JWVvG8AX1w+/VXgNPo+UtTy8E+fyxdqZWQLHRIDmjfzVR9tSQEU1/y+Ks3nCD32QfugAT9/AXJKR+YZPLN+IMvvseSVetO+U2+CAKCgCDgSwSaNUohgnkHmcdj/UK6ioMZnZpZfOmq9RTYGFwf/Fsp8OcSSp/nr1gANpMfy8rGoy+8rpUI''@;'; + put 'put ''9qWspC39ICAEUz+yOKUnbA5u3byJFvQTHxvjtwv9lJMa7AvfpHLz8im6fAamzZ7vlxu/wSCR7goCgoAfEBg+qB9uufoS2CgIxh9aPTYZfzN1Jr6ZNrPcpOl+GFa5TXIp46dPJpP3V55M1tj+39sfUvL1dUHT1pYLgPzgEwSEYPoERv80wkE/Z/borJnLmXD60yfGPyPwf6v85u9yufHLbwvw5Y/T''@;'; + put 'put ''JcLc/5DLGQSBkEPg/tuvR/8ze/jFPM7kchOl7HmFKtwczTymG2zbtmiKZ6mUMbts+YNUc33yb6b+qhXTCLbGVjegK9YRIZg6FyinjbhoyDm47drL4XA4/HKh6xyC03ZPizA3mbF8zQa89/m3OJqhn5v0aTsvOwgCgoCuEeCk5Oyu1KpZY5/3k+9dHCM+5t1PNFcff6Yjqk7n77zxSgwfdDZcfjDZ''@;'; + put 'put ''M7Feu3Ernn99AuX4dFSne3KMzhEQgqlzAXH32MH81msuxcXDBkrQTzny4hs1m8x37NmH9ymN0eYdu8vZUzYLAoKAIFB5BBqlJBHBvBOJVNPb1wuTrKXkQ/4GRVRn55zwdfM1bq9Bcl28+Ph9iIuJ9rlyg+/XGZSu6NEX3tCV5rbGoEkDfyEgBPMvKPT9gd+iH7rjRpx1RlchmRWIioN/+KbFCdnn''@;'; + put 'put ''LVpewZ7ykyAgCAgCp0egZ9cOuP/2GxDpY1NxseXFhP9NmEQkM/iBPeUh8a+br8bQAX19rsXk8bvcbjz18ltaNhB/mOHLG5NsDwwCQjADg7NPzlInoRaevO82tKGKPwUFBT5pU8VG+M24kNwJps76nXx8ZmmfVRynjEkQEAT8j8CF5/bHTVddDKvF7FMtHge57KJ0ay+88b6uNXidKDXTMw+MovFb''@;'; + put 'put ''fA42l8N8+Z2PqIDGGgn08Tm6wW9QCGbwZVDpHvAbX+MGyRTdNwrJ9epoPpmVPjjEduTgHyrAiaWr12Hi5Ck4lJYeYgjIcAUBQcAXCNxM5JJJpsXHBJNLJn7/y2x88cMvuogcLw8rDvJ5iczkzRo38HmgKWPwwRff4aeZ8/xaDrO8scl2/yIgBNO/+Pq8dSZOHdq0wBP33IroqEhJX1QBwl6/zL0H''@;'; + put 'put ''DuKjr37E6g1bKthbfhIEBAFB4J8I+COC3Gsef21CcXCP3qOo777pKgwb2M/nZnKOJP/u51mY9PVPQc/9+U/Jy5aaIiAEs6YIBuF4b/qiB0fdCI4y91eesiAMzS+nZL/ME7l5Wo45NptzWiNZBAFBQBA4HQJMBB/71y3o1bXj6Xat0u+sKOCgnudff5eqkh3wqem9Sh2p5M5D+5+Ju2+5Bm6Xq5JH''@;'; + put 'put ''VG431mDOnPcHxk2aDEdRcJPLV67HsldVEBCCWRW0dLQv+xlySa9RVNKL82OKg3TFwuEbOqcDWUjlyT79dpqkMqoYLvlVEBAECAF+gX/qvtvRuX1rcrjx3cL+l3v3H8Tzb7yrVSTzXcv+aalD6xZaqiabzerTE3DJyAWLV2i116VkpE+h1UVjQjB1IYbqdYJvflddOBTXX36B5MisBIQlTeYfk1/m''@;'; + put 'put ''qvWbK3GU7CIICAKhioA9jGuQjyK3pJY+TbLO6Yk2bNmOl976EMezc3QPb0pSXfzfE/chJjrKp31lHJavXo+XKNCnUHJh+hRbPTQmBFMPUqhBH2xk/h1JdWMvHT5Y0hdVEkc2meecyNWizH+cMVeizCuJm+wmCIQaAlwycTRVs/F1knUmVivXbaQURZ/oMv9laTnXrZ2AFx+7B3USE3xqLWMcVq3b''@;'; + put 'put ''hBfefF8IZmnQFfguBFMBIfJb9j0jr8G5Z58lJLOS8mSTOWs0V6zdiE/IZM6BQLIIAoKAIFASAbs9DKMpyXqblk19aiL3Eqv/UQWfLANoMGsnxGsaTH8QzOVrSIP5tmgwS847VT4LwVREkjEUUf7AqBskEXsV5cm+UEeOZuCrKTPw28Ilmp9mFZuQ3QUBQUBRBNhC9PT9t6Mj5YL0pQ8m53/cvH0X''@;'; + put 'put ''/jv2fUOYyJPqJGoEs1Z8nE81mJoP5hLywXzvU7IkFSk6i0J3WEIwFZJ9QnwsHqRqPz06dxBNZhXkyiZzThOycMlKfE456aSWeRXAk10FAYURYEvHE/eMpHtqe5+Oku85Bw+n4bkxEwyRo7c55cB84dF7wDkxfblwFPnsBYvw9kdfShS5L4HVSVtCMHUiCF91oy75yDxKaTXaU9SfVPupPKolA4C+''@;'; + put 'put ''/HEGFq1YU/mDZU9BQBBQFgEu0duvV3fS3PkuvRkT1/yCQox+bTy279oLt4dzXOh36d2tIx65eyTMvlTj0nA5D+aUGb/hwy9/kDyY+hV/tXsmBLPa0On3wOR6temt+za0bNZYSGYVxcSaBQeZamaTufzrn37FsazsKrYguwsCgoBKCIy67nKtFreF2JUv08GxmfzNDz/H74tWkPZO3+bhay4ehmsu''@;'; + put 'put ''PZ9yCPs2VyVrMCdO/hHfT58jlXxUumhOjkUIpoJC5SE1rJ9ECYJHonmThkIyqyhj1mYy0dxFCZC//PEXLFm1vootyO6CgCCgCgJXnD8YIy4Z7vNa5Ox/OGPuQnDKNC4EodeF74fPUi3ybh3b+bxUJGMwhgKd5v25TGqR63UC1KBfQjBrAJ6eD+WbQtOG9TWS2TAlmVJAFOq5u7rsG5NMdjyf9+dS''@;'; + put 'put ''qgI0S3wzdSkl6ZQg4F8EzjmzB+666Wpwtg5fajD5/nLoyFGMHjOe1un+HUQNWq9fr44W4BMbE12DVv55KD+jGM/nxryL9ZQTlAuGyKIWAkIw1ZLnKaPhC5idsx+5+xZNoykk8xR4KvWFfaX478DBI/h66q+YT1Un9O0tValhyU6CgCBQSQRaNG2Ep/99O+J8TLD49Gwmf4vN5HRf0WsU9aXnDcTN''@;'; + put 'put ''V1/i8zKRfF/lfMSPvTgWqRTwJIt6CAjBVE+mp4yISWbLpg3x+D23ol6d2lrFn1N2kC+VQoBLc7roDXvR8jVaTfO9Bw5V6jjZSRAQBIyLQDSlf7vsvEE4b2BfhFNOTF8vnA9z3aateGXcRF36e3Oi+f9S9Di7Wvlaw8gp4rbt2oOnXn5bC3jyNbbSXvAREIIZfBn4vQdMMts0b0KazJuFZNYQbb4p''@;'; + put 'put ''pqVnYurMeZg5f5HcGGuIpxwuCOgVgTMoNdHVFNzSiu6dbpfLp+bxkmPml9e3KE3PAkqTprdgn6HnnIW7bx7hc+0lj58DfGb9/ifemThZd+MuKR/5XH0EhGBWHztDHamRzBZEMu+6GUl164hPZg2kxw8EKgOETVt3kNl8JlZv2FKD1uRQQUAQ0BMCyeRzePnwQeh/5hla3sciP0d480vr7n2pePGt''@;'; + put 'put ''D3A4TT++mLXiYvDfx+5Fg+R6Ptdesrw5wOftj76gF/XFFJ3u0tMUkL74CAEhmD4C0gjNFJPMpnjozhtRv15dIZk1FBo/GPLyC8gvczl+/HUuJU4+WsMW5XBBQBAIFgJsAh/crzcuGnIO6ifV1UiPr83C5Y2NydZPZBX57LtpyM3LL2+3gG6/44Yrcf7gs+GiIhS+XvhZxOngnnz5LeykbB2+DJ7y''@;'; + put 'put ''dV+lveojIASz+tgZ8ki+sDm6/FFKYdRIostrLEN2VOdoUNY88APitz+W6uYBUePBSQOCQIgg0LVDG1x5wRB0aNtSKwnp9AOpqghKvi9z8OA4MhfrwVTet2dXPHD7DbBYzH4hf/xyvp38L59+dZzcLyuaGAb/TQimwQVYne4Xk8wUPEo+mY0bpkiezOqAWOoYNpubiGxuofrC3/08G8vWbPDLjbnU''@;'; + put 'put ''aeWrICAI1ACBFNJUXkbmcK7UExUZEdQgSH5Rzco5gf+Nn4gNW3cGzWzcjDKPcNR8Yq14v5jGWVzsfzl5ynR88cN0qeBTg/mr90OFYOpdQn7sH2swH77zJs2JPT9fH2YZPw43IE3zmzk76i9ZuQ5TyGy+jcrAySIICAL6QoBzOg45u7dmAq5D5XXZBzBQ5vCKkOC0RVyj/PX3PtXuHZy5IpBLUt3a''@;'; + put 'put ''ePLeW9G0UQOqrON70ziPxautfZa0lxvIj13M44GUcGDPJQQzsHjr7mwNkutqppD2bVpCSKbvxMMPimzSRsylChU/z1mgJVT2XevSkiAgCFQHgTCbVdNWXjz0HDRrXJx6R28BJpy6KPXQEYybNJkSkO8ImCYzqU4i+effhDYtmvqNXLLM+N64eftOqsM+Qczj1ZnEBjpGCKaBhOWvrtatnYB/33Yd''@;'; + put 'put ''undqLyTThyB7/TPT0jMwY96flJJjEY5n5/jwDNKUICAIVAYB1pp169hWy2nZoU0L8i20wN/R4ZXpV3n7MAk7npWtlZFcuHSV39P4cEGO+269Tst36W9c2Dz+3qffYBq9ePtLS1oerrI9sAgIwQws3ro8G5so2N/m3pHX4KwzuiIvT791cXUJ4Gk6xQ8zJpv7KDn7dKo9zFpNjj6XRRAQBPyPAGvk''@;'; + put 'put ''WGPZs2tHSpZuD6qfZVVGyz6ZTjLd/zr3D3z3yxxkHDtelcMrvW+fM7rgtmsvA7sK+Jtc8r2QX7Ife/ENXZfHrDR4smOFCAjBrBCe0PoxNjoKo66/AoPPPlML/BHfGN/Knx8YnD9z/aZtmtl85bpNVB7O4duTSGuCgCCgIcABPJefPxhMoGKiow2Zlo01r2wy37V3P76dNguLVqz1mTYzsVacptEd''@;'; + put 'put ''RlWKbHRvCoSrQGRkJH6cPgcfffWjBPeEwHUqBDMEhFyVIUaE23HzVRfjQsoF5yDyIySzKuhVbl8OBOK6wxu2bMMvcxZizcatPntoVK4HspcgoC4C7EvI+SwH9OlJRSVqa2ZYPQTw1ARxNpmzOZmDYmaQRnPV+s3VtoJwAvVzzjoDwwb0BZNwbjcQ93m24uQXFODJ/3sbu/enBuScNcFcjq05AkIw''@;'; + put 'put ''a46hci3w2+wIKpF21UVDtchKo9+c9Sgg1kywRrOw0IF1m7dppvO1G7cJ0dSjsKRPhkCAfckHEakcROSSiSXftwKhlQsUOHzP8BLNfamHsHzNRo1o7j1wENkncivsRgxZp5pRZPgZXdqhV7dOSKZqbkwqA+kDydrLKTNYezlF7nMVSkudH4VgqiNLn46EfWXOH9QPI0dcojnEB/JG5NOB6LyxkkRz''@;'; + put 'put ''/Zbt+HXeH1R6cquYznUuN+mefhDg0o79e3fXtHKskeNF9fsVW0H4Hl1YWIj0zGOaP+Pho+nIPJ5N7k2FGgZ2qkwUHxuDFMoUUp8wYj97NrczNoHGh/vKWTWefPltMDmWJTQQEIIZGnKu1igtZNLoRzfuO6lkWHRUpN8dwKvVSUUOYqJZbDp3YPO2XZj5+59YSWYwvZSNUwRmGYZCCDCZPOesHhqx''@;'; + put 'put ''DIZGTg9Q8n3Dm63C+9lr7ubv/Jk1uUwog6nN5cjxT7+dim+mzaS+SN1xPcydQPRBCGYgUDbwOfjm1ZHSejww6gbUrZ1oSEd5I8HPDwU2nbtcbkq0vAe/LVyCxZS0nSt8yCIICAJAEyp1O6hvL3A5Q458DrSpV2RQNQTYrM9BSs/+bzyOUeolWUIHASGYoSPrao+USQ+XD7v/tuvRslljyZVZbST/''@;'; + put 'put ''v73zfI7qStP4u2NQzhEhDBJCEogcTDAGG9tg43EoxxnP7Hpqy7sftnb/jN2q/bjhw1ZN7Uxt7YTd8YzHM2MccMAYE2whkEgiCOWcc8Sw+z6HObjBwghJ3X3vPc+tajrQ995zfu9t9dPvecPMd7RC84Z6IBqaWgW18L746pR0dPfO/CB8JwkEhABWU0qKlpnkna0b1kqGZkDDIxdNr1xA0IZ1GsaL''@;'; + put 'put ''qmf453//mcaMnhf8PePmDgEKTHdsPeeZ5moQ/d//9eumntyEZgPapZg5H5gH+E4CWDrHhoLtKFNy+ESFegRaPNHa7jsHzv8kgTkSQFWLdatKNHFnm7lHi0fUamTi4RzBRmh3LI2jLNHP//cPLEsUIeZeOg0Fppes4YOxJCclyJs/fFH2PbaTf+gjbC8EyuM2qIWKkXn+2bGT2kquZtblSiI8fJ6O''@;'; + put 'put ''BGZMICMtVbZvXmeSd0qKCiRGf2RBWPJH7YwRRv2NSCiq1rJK//Rv/8ml8ahbIzoDoMCMDndfn3WBipwfaAmjV5/bxwzzKFgScbEmIUhLHNVqbBOWz788fVY6uXweBWvwlPNFANf1siV5snvbJtNRDJnPWGJFggqF5XxRjsxxEEeOH8L/+K8/lcu1jbRfZLB77iwUmJ4ziT8GhJioPTsf0hZjL2uX''@;'; + put 'put ''jETftF/zB92ZjzJ0+RzFl7/4qlIuXq1Te1yb+UH4ThKIIoHEhHiz/L17+yZzn67eS8RWRrqUThQRBOrU+KGASMt/+ekvzI/f65rFzs1NAhSYbtp9XmaNPyRlxcvlH7SH+bIli017yXk5MA9y3wSsVxOdMmrqGk2sZnnlOSYF3TdJ7hAJArhel2h9xh2b18vDWzYYzyWyjRlfGQn64TsHPM740ftf''@;'; + put 'put ''v/mDvPPhIZYkCh9qXxyZAtMXZvL2IFGP7u/eeE22bFjDHuZRNpXNPscwenr75Iz2PT92ssp4NYdHxqI8Op7edQKpmqSzrqxEdm3dJKtLiwTeSiTsQFhy8zcB/O3Bj4Tfaq3LX779HpN6/G3OeRk9Bea8YORBUIj9J68+L89o9x+WD/HG9QAvEf7gT2pP+aaWdm0rV21iNeubWk0vdG+MkqMIOoFY''@;'; + put 'put ''vQaLly+V7dqicMv61bJYf5AijpveyuBYHuISST1/PHhIfs5WkMEx7BxnQoE5R4Dc/RsCyHB+af/j2sP8aUF5EXolvmET7UdYtoJ9RkZHTYmjijMXpOJstbZt62AtwWgbJ4Dnx7W2dPEi7X29Wm9rTB3d+Lg4xlYG0NY2POft9z5Wz+UB/ngNoI1nOyUKzNmS437TElio2YPwUrz5oxclf1Eu4zKn''@;'; + put 'put ''pRS9F+0SOr4UhjTLs1braZZrAeTK85ektaOLYjN6pvH9mSEqES6zcc1K2bZxrRRpc4ZkXRK3rQqZCe57E39rAsgWh31//c778rbWu2QbyG8hcvoFCkynzR+eyUO8oNzI32qG+ca1q0x7SX65hIf1XI4KO+ELAqJzcGhI6nTpHJnolXprae+SKcbFzQWvE/suWABRmWtE5ZZ1ZVJUsERSU1JMWRpk''@;'; + put 'put ''gbMgenAvAyyJoxTRz/7nHa3JWy7MFg+urWc7MwrM2ZLjfvckkJaSLD984WnZ//gjAjHDsiP3RBa1N4SKTSyjN2rM5pnqy3K2ukaFZ4surTNBKGrG8diJEf6CqhEbVpeaskLLl+ZLin7W8SOSotJjxgrDcPCDFB16rtQ2yH/892/kYk0961yGgXMQDkmBGQQrengOsTELtV7mVvmrV56T9NQU4830''@;'; + put 'put ''8HA5NCVgl9Gx5DkxOSntunR+8Wq9VOkyek19k3T39tNb4diVgs46JZqos76s1GR/L87NkURN7LMJffRUunFBIJYbtv74yAn51e/fk76BITcmzlnOigAF5qywcaf7IYCi7KXa7u1vfvyyrNK6mZMqWrhkfj8Eo/temyAEMdE/MGgSg85pq8pqFZ0NzW0yNDwS3QHy7PNOICE+TutU5srKFYXqpSw2''@;'; + put 'put ''STpZGemmxiGuAybwzTtyTx8QPzZRkaJOO4f9SksQoXMYl8Q9bTJPDI4C0xNmcGMQGWkp8uOXvi97d++41QLOjZkHZ5Z2KR33KH/Uo97MOk0UunClVi6p4Gxp75TRsfHgTNiRmcTGxkhuVoZ6KZfJ6pIiLSu0TPJyssxSKBBg6RvCkptbBPA5R6xlX/+AfHj4mLz70efqtRw0f7/dIsHZzoYABeZs''@;'; + put 'put ''qHGfWROI0SXzx3XJ/A1dMk/jkvmsOXplR3g2kCiEDV2E+voHpb65VfsPN5iOQk2t7TI4PEqPtVcM9udxwEOZl5NtknJWFhWqhzJf8rT3d3JSkhEP9FJ6zGARHo71WGLF4mj5aTnw8RFpauvg5zjCdvD76Sgw/W5BH44fS+YrCpfKm6+/KGtXlZg+5ozh8qEhpxmyFZyI40QoBL6g2rp65KrGbiJL''@;'; + put 'put ''vUFv3X39MjY+Mc3efCkcBFA6LC012Sx5o3QQPntL8/MkOyNN4ygTbwlKeCkZuhIOC/jjmPBWIhwGn93O7h45Vl6psZZfSqP+SOR14Q8bem2UFJhes4hD40HbuFef2yfPPrnb/GGb0iVXbsEiAMFpb/CKjY6NSa96OVvUG4JMdXg72zp7pKun14hOfpHNzf5IqkvRz9Vi9UYi03u5CkoUPM9SMYkV''@;'; + put 'put ''AwgIbHbJm7znxtvPe0NIhopK1MW9VFsvxyvOyFenz0n/IBN4/GxfL4ydAtMLVnB4DPCubN+8Tt7QNpMP6hfhhC6z8ksvuBcEvtSs4MSXG0TnmIrOAf1y69J4zpa2TmlW8Qnh2dM3IAODwybWM7hEZjczMExNTpTM9DRT3BwFzvH5yc/LEZQHS9UbkjLwWQJj3LhKMDvWft4LnzdsVkziusFj3PC3''@;'; + put 'put ''Fj/2EENddeGS3i7rj71u/v31s8E9NnYKTI8ZxMXh4I/d4twsLWX0vDyydaP5AwcPCzc3CIR++UF0YsPyOmpvDmqGeo8uqXd290q7LrV39fSZ5/0qPPH/ExOTckNFVBA3FDFP0HqDKUk3hWROVros0sSb3KxMyc3OlJzMdI2ZTDRJGBAOEJP43EBIUkwG8YqYfk74/MAzjR8ReGw3++Niauqaad84''@;'; + put 'put ''rPVtkaCDzxKqP9Q2NEurCkoUSw/dz+7PexKYKwEKzLkS5P7zRgCZrHt3bTfF2TPUMwORwc1dAhCbuEE8WeGJL1FcF4jhHFHP59DQiC7lDZsvzl7NdMVjLO2hdBIE6PjklHk/vmS9IkQhHGNUEMSqhzEx4aaATE1JUs9jinokU029WNwjbhLL3YkqMuM1KcfGx1nhYIUknnNzkwCuCfyo+Ojz43Li''@;'; + put 'put ''lJYOun7jz2IRnusbxvs/rj/CEJoyqp8ZfA64kUCkCFBgRoo0zzMjAkgAQtzYT157QTZpm0kbKzajnfkmZwhAcMLrYsUnnkNoWfEFETqpX6ao14iySRMqNEfHx81jPMeXLrLecQ8vKEouTU5eM+0xv1YRaz2B+JK+doc3HefAeRcuXCDf+4ub48DjGL3hCx/38XFxEqcdb+JURCYkxBmRiMxteCQT''@;'; + put 'put ''9Tn+Hx1xIDLNvnqPY2Kz8wgVkPRIOnNpz2iiuPZRPqi1o9MUPD9WXsXWrjMixzdFkgAFZiRp81wzJgDPzvef2CUv7n/CxJPRmzljdHyjEsAXsF32s2IUz60n1ApSC8uKOjy3wi70Mf4/dMOxIAjtOUIf4zX7OvbBYysQ7zx26HlDj8/HJHA3AigLhmvq2MlKFZfvm5jlO6/Pu+3L10kgkgQoMCNJ''@;'; + put 'put ''m+e6LwK2A9BfvvKs9j1eSW/mfdHjm+eLQKhYDD0mv9RDafBxJAjEqee7V2OS33r3Izl4+LjxvEfivDwHCcyGAAXmbKhxn4gSSNKex888/oi89MyTJiaN3syI4ufJSIAEokwAHnJ4Lk9WnZNf/O6A1De1slVjlG3C09+bAAXmvRnxHR4gcMub+bJ6M9esNBmTiJPjRgIkQAJBJoBYSzQseOeDQ/Le''@;'; + put 'put ''p0dM3HCQ58u5BYcABWZwbOnETJAosV+9mS+rNzM9LdVkCHOp0gnTc5Ik4BQBeCzhuTx19oL88u0D2g2rmV5Lp64A/0+WAtP/NnRuBt/TAPdCzTR//YX9pkg7ACBbmBsJkAAJ+J0AYn7htUSs5e8/+FQ+OHSUXku/G9XR8VNgOmr4IEwbbfEe2/GQaTe5RLuYIDbTZusGYX6cAwmQgFsEUOYKW3nl''@;'; + put 'put ''OVN+CAXRr2vhfG4k4EcCFJh+tBrHfIsAfu0v0q4mLz3zhOx5eKvWHIw3QvPWG/iABEiABDxOwHotO7Rb1VvvHpRPj37FougetxmHd28CFJj3ZsR3+IAAuqOsLyuRHzz/tKxZWcwkIB/YjEMkARIQ0zN+SkN8Dh8/KW+/94kWT+8yxfbJhgT8ToAC0+8W5PhvI4CSRvse3SEvPLVHcrRnM5bNmQR0''@;'; + put 'put ''GyI+IQES8AABJPBgSbymrkF+/c4HmsxT/a2uUR4YJodAArMmQIE5a3Tc0asE0KUlf1GOvPLsXtm1daO27IvjsrlXjcVxkYBjBOxy+ODQsBz4+HN5V2+DwyOOUeB0XSBAgemClR2d481l81J57bl9Ztkcnkxmmzt6MXDaJOABAjHacx71e8urzstbfzoodY0tTOLxgF04hPAQoMAMD1ce1UME4uNi''@;'; + put 'put ''Zc/OrfLi048Lss0hMq9fv+6hEXIoJEACQSZgl8PrGpvlt9rm8XjFGUHcJTcSCDIBCswgW5dzu0UAy1JZGWny3N5HNUbzYUlNSWZ85i06fEACJBAOAnY5HJ14Dnzyuda0PCb9g0PhOBWPSQKeI0CB6TmTcEDhJICWkwVL8403c+dDG0xB46mpKSYChRM6j00CDhJAsXQkGR4trzQF0xu1puUNDdPh''@;'; + put 'put ''RgKuEKDAdMXSnOdtBBCfuVbLGaF+5vqyUtOSDUKTGwmQAAnMhYAtln7uUo387sBHcqb6isZdMiRnLky5rz8JUGD6024c9TwRiNEyIfBkPv/UY1JaVGg6ATERaJ7g8jAk4BAB2zsc3Xf++OEh+fzLCpmY5I9Why4BTvUOAhSYdwDhUzcJoH7mozu2yLNP7pZlSxazULublwFnTQL3TcAm8KALz4ef''@;'; + put 'put ''HZWDh4/LgJYg4kYCrhOgwHT9CuD8byOQnpoiTzyyTZ7es1Py83JNSRGUFeFGAiRAAqEEUG8XZYcGNGnnM+3CgySe9s4exnOHQuJjpwlQYDptfk5+OgI243yfdgTau3uH5GZnUWhOB4qvkYCDBGxm+MjomCbwnJZ3PzosjS3trGfp4LXAKX83AQrM7+bD/3WYAL5IcjLTZa8KTXg1F+VkU2g6fD1w''@;'; + put 'put ''6m4TwN8DeCzHxyfkq8pzRljW1DfJ16yp6/aFwdnflQAF5l3R8D9I4CYBKzSf3L1dnty1nUKTFwYJOETACstJrTJx6swF+ZN6LC9cqWOzBoeuAU51dgQoMGfHjXs5SOAboQmP5lYjNNERiDGaDl4MnHLgCYQKy9NnqzXG8oig9BBLDgXe9JzgPBGgwJwnkDyMOwTwxZOVniZ7VGTCo7lEk4HQ55x1''@;'; + put 'put ''NN25BjjT4BLA5xtF0ie0SDo8lhCW5y9fpbAMrsk5szARoMAME1ge1g0CyDrftW2jaT9Z8GC+ILOUnYHcsD1nGSwCNit8VJN3KtRj+f6nX0h1TS2FZbDMzNlEkAAFZgRh81TBJADvJepoPrxlvXo0d8jKFQWCbh4o2H7jxo1gTpqzIoGAELB1LIeGRzR556wc/Oy4XKptYIxlQOzLaUSPAAVm9Njz''@;'; + put 'put ''zAEkgM5A68qKZf+eXeY+KTHRCE3EanIjARLwDgF03sGtp7dPjlWckU+OnJD6plaWG/KOiTgSnxOgwPS5ATl8bxJY8MADUlTwoInR3L5prWRlZhiPCNtQetNeHJUbBBBfidUF3Le0dcjhExV6OykdXb1cbXDjEuAsI0iAAjOCsHkq9wjgiyw3O1N2b98sj27fIgUPLjYQIDSxtM6NBEgg/AQQXwlh''@;'; + put 'put ''iZWEK3UNcuhouRyvqJL+QbZ0DD99nsFVAhSYrlqe8444gcSEeNm8dpU8pW0oVxYVSEJCApfPI24FntAlAnYZfHhkVM5drJFPvvhSKs9fMhniLnHgXEkgGgQoMKNBned0mkBsbIwKzEL1am6SzevKJCcr03gz6dV0+rLg5OeJAFYNICzhtezo6jaeyiNfnpbahmbGV84TYx6GBGZCgAJzJpT4HhII''@;'; + put 'put ''A4Hv6Rdhji6fb9u4VnY+tEGKC5dKXFwcvZphYM1DBp8AssEhLPFDrb6pRfuEV8mhY+W6DD7EcJTgm58z9CABCkwPGoVDco9AnBZ2XlVcaEodbVm/2ng1QQFdgljqyL3rgTOeGYHQpJ3+gSE5e/GyHD5+UjvuXJUx7RnOjQRIIHoEKDCjx55nJoFvEcCyXmZ6qmzSWM1Htm6UUo3VTE5KMskJEJtM''@;'; + put 'put ''DPoWMr7gIAFbuxL9wesbW8wy+IlTZ6W9q4f1Kx28HjhlbxKgwPSmXTgqEpCFutyHrHMsoW9ZXybLtFMQPJ0QmsiGpdjkReISAfz4whI4tq6eXjl97qIcO1kl1VdqNWlnyiUUnCsJ+IIABaYvzMRBuk4gThODykqKZOvGNbJpzSrJy82+FW/GIu6uXx3Bnb8VlVgKHxwalktX61VUVkrV+cvSp7GV''@;'; + put 'put ''DB8Jru05M/8ToMD0vw05A4cI4Is2JSnRiE0UcF+7qtjEa2LJEMkNFJsOXQwBnarNAsc1PTI6KnWNrVJedU4qqi5Ia2cXe4MH1O6cVvAIUGAGz6ackSME4N1JS0mSNSuLZeuGNbK6dIVkZ6aLFZvw7nAZ3ZGLwefTDBWV45qc09jSJhVnL0jFmQuaEd4mU/rjiRsJkIC/CFBg+steHC0JTEsAYjM9''@;'; + put 'put ''NUU9m8tNbc3VupyODkIxMTEmZpMJQtNi44tRJGCXv3E/Nj4uTS3tJq7y1NlqqW1slskpisoomoenJoE5E6DAnDNCHoAEvEXALqOXriiQDWWluoxeIvmLsiU+Pt7ErLH0kbfs5dJo4F3HDaJyeGREvZOtGk95SSovXDa1KykqXboaONegE6DADLqFOT/nCSTEx0nh0nxZp0JzfVmJLM3PkzT1dkKI''@;'; + put 'put ''MiPd+csjrABwjUFQIvsb8cEoen61vkmqLlySM9VXpLW9S65pVQRuJEACwSNAgRk8m3JGJHBXAviyz8vJMvU1N6wplZLCZZoklGG8mxAAuDF28674+B8zIGC9lLjH0nen1qa8VNtglr+v1DVKT28/WzbOgCPfQgJ+J0CB6XcLcvwkMAcCSYkJUrBksSYIFZlbgdbaRCwnPE4QmlZ0zuEU3DXgBEJj''@;'; + put 'put ''KXG99PYPmCSdcxdrtEZlndQ3t7KrTsCvAU6PBKYjQIE5HRW+RgIOEnhA4+Iy0lJl+bIlJlmoWL2bDy7OlXR9Dd4oKzjp4XTw4giZMq4FKyohKFGfsqW9Uy6rlxJFz6/WN0vfwCC9lCHM+JAEXCRAgemi1TlnEpgBAQjOLC17VKjdhFYVL5cVBUuN4ExNSZZY7SgUKjjxmFvwCCCG0opJ3CNmF4Ky''@;'; + put 'put ''raNLrmgsJQqfI+O7s7uPNViDZ37OiATmRIACc074uDMJuEMAghPicmn+IikuXGo8nVhSz8pIk8SEBJM0hLqbNkudNTj9dW1YMQkhCS8ltomJCeONhIfyakOz1NQ1mWzvnn71UKr3khsJkAAJ3I0ABebdyPB1EiCBexJAhnp2ZoYs1yx1LK0jnjMvN0sLwCdLgopOiBV4NyE6ITjp6bwn0oi84U4x''@;'; + put 'put ''ieeTk5MyNDyifb77pKm1QwVlk/FOtnV0y8jYOG0XEcvwJCQQHAIUmMGxJWdCAlEnAKGSlBhv2lcuW5JnBCc8nrlZmaY0UrK2uUQCEcSm9XZSeIbPbLCHFZM2dhK8xzW7e3h0zIjJ5rYOaWhuM4k5EJMoJfQ1vZPhMwqPTAKOEKDAdMTQnCYJRJNAfFysZKanaomkbI3jXCRL8nLU05ltWlumJCdJ''@;'; + put 'put ''ghaBh/DEFhrbCTGEzd6bJ/znNgJWROLeikg8BjN4JYdHRmVA4yY7u3tNMg4EZasKSTyHx/I642dv48knJEAC80OAAnN+OPIoJEAC90kAIigxId6URUJbS9wW6/I6vJ2LsrM03jNJ63PGSZwmFEE4WdEEAYobBJRdcg+qAMWc7YZwg9AbXrcicnxiUkbHxjRecsh4Jds6u6S9s0c6e3qlW+tODg6N''@;'; + put 'put ''sJ+3Bcl7EiCBiBCgwIwIZp6EBEjgfgjEag/1m+IzWT2faZKtxeCzNZkIZZTS01KMKE1U8QkBivei5zrEV6ggs0IU57VC1N7bsURSmIaODefHeO09/g83+xpex9gQu3rt2jX1RE7JmIpItFccGBzWWpOD0t7VLT19A0ZEwkMJEQmhGck5mQnwHxIgARKYhgAF5jRQ+BIJkIC3CSzU5XQkGOGGzPZU''@;'; + put 'put ''XWZPSU785rHGeiLeEyIV74EXFPvExcbIAwu0daF6RO1ysvUKWvEZej+dWMP/W0FoKVnxaAUi7u178H57g2DEkvS1qWvGo4je2xMqHkc1iQZdbxAXiWVrCEbcQzTi8Yi+Pqr/Pz4xZUSnPS/vSYAESMCrBCgwvWoZjosESGBeCCxcuMCIy9iYhcbTiXsIzjiNC41diNcW3hSqRqQmmQx4/D/EaXJS''@;'; + put 'put ''wm1jwGspKlzhKYQAvKFeRgjJGzf+T8Xh6E2hqGJxSOMecYNAnND3jmu5nyn1REJM4jY5NSVTt0TmlJb8YR3R20DzCQmQgO8JUGD63oScAAmQAAmQAAmQAAl4iwAFprfswdGQAAmQAAmQAAmQgO8JUGD63oScAAmQAAmQAAmQAAl4iwAFprfswdGQAAmQAAmQAAmQgO8JUGD63oScAAmQAAmQAAmQ''@;'; + put 'put ''AAl4iwAFprfswdGQAAmQAAmQAAmQgO8JUGD63oScAAmQAAmQAAmQAAl4iwAFprfswdGQAAmQAAmQAAmQgO8JUGD63oScAAmQAAmQAAmQAAl4iwAFprfswdGQAAmQAAmQAAmQgO8JUGD63oScAAmQAAmQAAmQAAl4iwAFprfswdGQAAmQAAmQAAmQgO8JUGD63oScAAmQAAmQAAmQAAl4iwAFprfs''@;'; + put 'put ''wdGQAAmQAAmQAAmQgO8JUGD63oScAAmQAAmQAAmQAAl4iwAFprfswdGQAAmQAAmQAAmQgO8JUGD63oScAAmQAAmQAAmQAAl4i+ZHtw4AAADdSURBVAAFprfswdGQAAmQAAmQAAmQgO8JUGD63oScAAmQAAmQAAmQAAl4iwAFprfswdGQAAmQAAmQAAmQgO8JUGD63oScAAmQAAmQAAmQAAl4iwAF''@;'; + put 'put ''prfswdGQAAmQAAmQAAmQgO8JUGD63oScAAmQAAmQAAmQAAl4iwAFprfswdGQAAmQAAmQAAmQgO8JUGD63oScAAmQAAmQAAmQAAl4iwAFprfswdGQAAmQAAmQAAmQgO8JUGD63oScAAmQAAmQAAmQAAl4iwAFprfswdGQAAmQAAmQAAmQgO8J/D97oVzdCcK8fgAAAABJRU5ErkJggg=='';'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=spinner-svg; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put 'options mprint;'; + put '%macro mp_replace(infile,'; + put 'findvar=,'; + put 'replacevar=,'; + put 'outfile=0'; + put ')/*/STORE SOURCE*/;'; + put '%local inref outref dttm ds1 rc;'; + put '/* create filerefs */'; + put '%let rc=%sysfunc(filename(inref,,temp,lrecl=200));'; + put '%let rc=%sysfunc(filename(outref,,temp,lrecl=200));'; + put '%if &outfile=0 %then %let outfile=&infile;'; + put '/* uniquely named 32 char datasets */'; + put '%let ds1=all%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,29);'; + put '%let ds2=start%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,27);'; + put '/* START */'; + put '%let dttm=%sysfunc(datetime());'; + put 'filename &inref &infile lrecl=1 recfm=n;'; + put 'data &ds1;'; + put 'infile &inref;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'run;'; + put 'data &ds2;'; + put '/* set find string to length in bytes to cover trailing spaces */'; + put 'length string $ %length(%superq(&findvar));'; + put 'string =symget("&findvar");'; + put 'drop string;'; + put 'firstchar=char(string,1);'; + put 'findlen=lengthm(string); /* <- for trailing bytes */'; + put 'do _N_=1 to nobs;'; + put 'set &ds1 nobs=nobs point=_N_;'; + put 'if sourcechar=firstchar then do;'; + put 'pos=1;'; + put 's=0;'; + put 'do point=_N_ to min(_N_ + findlen -1,nobs);'; + put 'set &ds1 point=point;'; + put 'if sourcechar=char(string, pos) then s + 1;'; + put 'else goto _leave_;'; + put 'pos+1;'; + put 'end;'; + put '_leave_:'; + put 'if s=findlen then do;'; + put 'START =_N_;'; + put '_N_ =_N_+ s - 1;'; + put 'STOP =_N_;'; + put 'output;'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'stop;'; + put 'keep START STOP;'; + put 'run;'; + put 'data &ds1;'; + put 'declare hash HS(dataset:"&ds2(keep=start)");'; + put 'HS.defineKey("start");'; + put 'HS.defineDone();'; + put 'declare hash HE(dataset:"&ds2(keep=stop)");'; + put 'HE.defineKey("stop");'; + put 'HE.defineDone();'; + put 'do until(eof);'; + put 'set &ds1 end=eof curobs =n;'; + put 'start = ^HS.check(key:n);'; + put 'stop = ^HE.check(key:n);'; + put 'length strt $ 1;'; + put 'strt =put(start,best. -L);'; + put 'retain out 1;'; + put 'if out then output;'; + put 'if start then out=0;'; + put 'if stop then out=1;'; + put 'end;'; + put 'stop;'; + put 'keep sourcechar strt;'; + put 'run;'; + put 'filename &outref &outfile recfm=n;'; + put 'data _null_;'; + put 'length replace $ %length(%superq(&replacevar));'; + put 'replace=symget("&replacevar");'; + put 'file &outref;'; + put 'do until(eof);'; + put 'set &ds1 end=eof;'; + put 'if strt ="1" then put replace char.;'; + put 'else put sourcechar char1.;'; + put 'end;'; + put 'stop;'; + put 'run;'; + put '/* END */'; + put '%put &sysmacroname took %sysevalf(%sysfunc(datetime())-&dttm) seconds to run;'; + put '%mend mp_replace;'; + put '%macro sasjsout(type,fref=sasjs);'; + put '%global sysprocessmode SYS_JES_JOB_URI;'; + put '%if &type=JS or &type=JS64 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header('; + put 'Content-type,application/javascript%str(;)charset=UTF-8'; + put '));'; + put '%end;'; + put '%else %if &type=CSS or &type=CSS64 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,text/css));'; + put '%end;'; + put '%else %if &type=PNG or &type=GIF or &type=JPEG or &type=JPG %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,image/%lowcase(&type)));'; + put '%end;'; + put '%else %if &type=SVG or &type=SVG64 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,image/svg+xml));'; + put '%end;'; + put '%else %if &type=ICO %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,image/vnd.microsoft.icon));'; + put '%end;'; + put '%else %if &type=JSON %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,application/json));'; + put '%end;'; + put '%else %if &type=MP3 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/mpeg));'; + put '%end;'; + put '%else %if &type=WAV %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/x-wav));'; + put '%end;'; + put '%else %if &type=OGG %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/ogg));'; + put '%end;'; + put '%else %if &type=WOFF or &type=WOFF2 or &type=TTF %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,font/%lowcase(&type)));'; + put '%end;'; + put '%else %if &type=MP4 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,video/mp4));'; + put '%end;'; + put '%if &type=HTML %then %do;'; + put '/*'; + put 'We need to perform some substitutions -eg to get the APPLOC and SERVERTYPE.'; + put 'Therefore the developer should avoid writing lines that exceed 32k'; + put 'characters (eg base64 encoded images) as they will get truncated when passing'; + put 'through the datastep. This could of course be re-written using LUA, removing'; + put 'the length restriction. Pull requests are welcome!'; + put '*/'; + put 'filename _sjsout temp;'; + put 'data _null_;'; + put 'file _sjsout lrecl=32767 encoding=''utf-8'';'; + put 'infile &fref lrecl=32767;'; + put 'input;'; + put 'length appLoc expanded_path $1048;'; + put 'if _n_=1 then do;'; + put 'retain pgm "&_program" appLoc expanded_path;'; + put '/* index is deployed in the /services/ folder under the appLoc */'; + put 'appLoc=substr(pgm,1,find(pgm,''/services/'')-1);'; + put 'expanded_path=cats(''?_PROGRAM='',appLoc,''/services/'');'; + put 'end;'; + put 'if find(_infile_,'' appLoc: '') then put '' appLoc: '' apploc:$quote1048. '','';'; + put 'else if find(_infile_,'' serverType: '') then do;'; + put 'put '' serverType: "SAS9" ,'';'; + put 'end;'; + put 'else if find(_infile_,'' serverUrl: '') then do;'; + put '/* nothing - we are streaming, so remove to default as hostname */'; + put 'end;'; + put 'else do;'; + put '/* More recently, SASjs apps avoid inline JS to allow strict CSP */'; + put 'length infile in1 in2 $32767;'; + put 'infile=cats(_infile_);'; + put 'spos1=index(upcase(infile),''APPLOC="'');'; + put 'if spos1>0 then do;'; + put 'in1=substr(infile,1,spos1+7);'; + put 'in2=subpad(infile,spos1+8);'; + put 'in2=substr(in2,index(in2,''"''));'; + put 'infile=cats(in1,appLoc,in2);'; + put 'putlog "new apploc: " infile=;'; + put 'end;'; + put '/* find & replace serverType in HTML attributes */'; + put 'spos2=index(upcase(infile),''SERVERTYPE="'');'; + put 'if spos2>0 then do;'; + put 'in1=substr(infile,1,spos2+11);'; + put 'in2=subpad(infile,spos2+12);'; + put 'in2=substr(in2,index(in2,''"''));'; + put 'infile=cats(in1,"SAS9",in2);'; + put 'putlog "new servertype: " infile=;'; + put 'end;'; + put '/* find & replace serverUrl in HTML attributes */'; + put 'spos3=index(upcase(infile),''SERVERURL="'');'; + put 'if spos3>0 then do;'; + put 'in1=substr(infile,1,spos3+10);'; + put 'in2=subpad(infile,spos3+11);'; + put 'in2=substr(in2,index(in2,''"''));'; + put 'infile=cats(in1,in2);'; + put 'putlog "new serverUrl: " infile=;'; + put 'end;'; + put 'if sum(spos1,spos2,spos3)>0 then put infile;'; + put 'else do;'; + put '/* during SAS9 sasjs compile, dependencies get static GUID */'; + put 'infile=tranwrd(_infile_,''?_PROGRAM=pZKd6F95jECvRQlN0LCfdA=='',cats(expanded_path));'; + put 'put infile;'; + put 'end;'; + put 'end;'; + put 'run;'; + put '%let fref=_sjsout;'; + put '%end;'; + put '%else %if &type=JS64 or &type=CSS64 %then %do;'; + put 'options nobomfile;'; + put '%let fvar=pZKd6F95jECvRQlN0LCfdA==;'; + put '%let stgfile="%sysfunc(pathname(work))/stgfile.txt";'; + put '%let newfile="%sysfunc(pathname(work))/newfile.txt";'; + put '/* convert from base64 */'; + put 'filename _out64 &stgfile encoding=''utf-8'';'; + put 'data _null_;'; + put 'length filein 8 fileout 8;'; + put 'filein = fopen("&fref",''I'',4,''B'');'; + put 'fileout = fopen("_out64",''A'',1,''B'');'; + put 'char= ''20''x;'; + put 'do while(fread(filein)=0);'; + put 'length raw $4 ;'; + put 'do i=1 to 4;'; + put 'rc=fget(filein,char,1);'; + put 'substr(raw,i,1)=char;'; + put 'end;'; + put 'rc = fput(fileout, input(raw,$base64X4.));'; + put 'rc =fwrite(fileout);'; + put 'end;'; + put 'rc = fclose(filein);'; + put 'rc = fclose(fileout);'; + put 'run;'; + put '/* get appLoc from _program */'; + put 'data _null_;'; + put 'pgm="&_program";'; + put 'appLoc=substr(pgm,1,find(pgm,''/services/'')-1);'; + put 'call symputx(''apploc'',cats(appLoc,''/services/''));'; + put 'run;'; + put '%put &=fvar;'; + put '%put &=apploc;'; + put '/* replace the GUID with appLoc */'; + put '%mp_replace(&stgfile,'; + put 'findvar=fvar,'; + put 'replacevar=apploc,'; + put 'outfile=&newfile'; + put ')'; + put 'filename &fref &newfile encoding=''utf-8'';'; + put '%end;'; + put '/**'; + put '* In SAS9, JS & CSS files are base64 encoded to avoid UTF8 issues in WLATIN1'; + put '* metadata - so in this case, decode and stream byte by byte.'; + put '* */'; + put '%if &type=GIF or &type=PNG or &type=JPG or &type=JPEG or &type=ICO or &type=MP3'; + put 'or &type=WAV or &type=OGG or &type=WOFF or &type=WOFF2 or &type=TTF or &type=MP4'; + put 'or &type=SVG64'; + put '%then %do;'; + put 'data _null_;'; + put 'length filein 8 fileout 8;'; + put 'filein = fopen("&fref",''I'',4,''B'');'; + put 'fileout = fopen("_webout",''A'',1,''B'');'; + put 'char = ''20''x;'; + put 'do while(fread(filein)=0);'; + put 'length raw $4 ;'; + put 'do i=1 to 4;'; + put 'rc=fget(filein,char,1);'; + put 'substr(raw,i,1)=char;'; + put 'end;'; + put 'rc = fput(fileout, input(raw,$base64X4.));'; + put 'rc = fwrite(fileout);'; + put 'end;'; + put 'rc = fclose(filein);'; + put 'rc = fclose(fileout);'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%put streaming to _webout;'; + put 'data _null_;'; + put 'infile &fref lrecl=1 recfm=n;'; + put 'file _webout mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put '%end;'; + put '%mend sasjsout;'; + put 'filename sasjs temp lrecl=99999999;'; + put 'data _null_;'; + put 'file sasjs;'; + put 'put ''PHN2ZyBpZD0iTGF5ZXJfMiIgZGF0YS1uYW1lPSJMYXllciAyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA3MiA3MiI+CiAgICA8ZGVmcz4KICAgICAgICA8c3R5bGU+CiAgICAgICAgICAgIC5jbHMtMSwKICAgICAgICAgICAgLmNscy0yIHsKICAg''@;'; + put 'put ''ICAgICAgICAgICAgIGZpbGw6IG5vbmU7CiAgICAgICAgICAgICAgICBzdHJva2UtbWl0ZXJsaW1pdDogMTA7CiAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg6IDVweDsKICAgICAgICAgICAgfQogICAgICAgICAgICAuY2xzLTEgewogICAgICAgICAgICAgICAgc3Ryb2tlOiAjMDAwMDAw''@;'; + put 'put ''OwogICAgICAgICAgICAgICAgc3Ryb2tlLW9wYWNpdHk6IDAuMTU7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLmNscy0yIHsKICAgICAgICAgICAgICAgIHN0cm9rZTogIzAwNzJhMzsKICAgICAgICAgICAgfQogICAgICAgIDwvc3R5bGU+CiAgICA8L2RlZnM+CiAgICA8dGl0bGU+UHJl''@;'; + put 'put ''bG9hZGVyXzcyeDI8L3RpdGxlPgogICAgPGNpcmNsZSBjbGFzcz0iY2xzLTEiIGN4PSIzNiIgY3k9IjM2IiByPSIzMyIvPgogICAgPHBhdGggY2xhc3M9ImNscy0yIiBkPSJNMTQuMyw2MC45QTMzLDMzLDAsMCwxLDM2LDMiPgogICAgPC9wYXRoPgo8L3N2Zz4K'';'; + put 'run;'; + put '%sasjsout(SVG64)'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=spinner.16f763cebc6b64df-svg; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put 'options mprint;'; + put '%macro mp_replace(infile,'; + put 'findvar=,'; + put 'replacevar=,'; + put 'outfile=0'; + put ')/*/STORE SOURCE*/;'; + put '%local inref outref dttm ds1 rc;'; + put '/* create filerefs */'; + put '%let rc=%sysfunc(filename(inref,,temp,lrecl=200));'; + put '%let rc=%sysfunc(filename(outref,,temp,lrecl=200));'; + put '%if &outfile=0 %then %let outfile=&infile;'; + put '/* uniquely named 32 char datasets */'; + put '%let ds1=all%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,29);'; + put '%let ds2=start%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,27);'; + put '/* START */'; + put '%let dttm=%sysfunc(datetime());'; + put 'filename &inref &infile lrecl=1 recfm=n;'; + put 'data &ds1;'; + put 'infile &inref;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'run;'; + put 'data &ds2;'; + put '/* set find string to length in bytes to cover trailing spaces */'; + put 'length string $ %length(%superq(&findvar));'; + put 'string =symget("&findvar");'; + put 'drop string;'; + put 'firstchar=char(string,1);'; + put 'findlen=lengthm(string); /* <- for trailing bytes */'; + put 'do _N_=1 to nobs;'; + put 'set &ds1 nobs=nobs point=_N_;'; + put 'if sourcechar=firstchar then do;'; + put 'pos=1;'; + put 's=0;'; + put 'do point=_N_ to min(_N_ + findlen -1,nobs);'; + put 'set &ds1 point=point;'; + put 'if sourcechar=char(string, pos) then s + 1;'; + put 'else goto _leave_;'; + put 'pos+1;'; + put 'end;'; + put '_leave_:'; + put 'if s=findlen then do;'; + put 'START =_N_;'; + put '_N_ =_N_+ s - 1;'; + put 'STOP =_N_;'; + put 'output;'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'stop;'; + put 'keep START STOP;'; + put 'run;'; + put 'data &ds1;'; + put 'declare hash HS(dataset:"&ds2(keep=start)");'; + put 'HS.defineKey("start");'; + put 'HS.defineDone();'; + put 'declare hash HE(dataset:"&ds2(keep=stop)");'; + put 'HE.defineKey("stop");'; + put 'HE.defineDone();'; + put 'do until(eof);'; + put 'set &ds1 end=eof curobs =n;'; + put 'start = ^HS.check(key:n);'; + put 'stop = ^HE.check(key:n);'; + put 'length strt $ 1;'; + put 'strt =put(start,best. -L);'; + put 'retain out 1;'; + put 'if out then output;'; + put 'if start then out=0;'; + put 'if stop then out=1;'; + put 'end;'; + put 'stop;'; + put 'keep sourcechar strt;'; + put 'run;'; + put 'filename &outref &outfile recfm=n;'; + put 'data _null_;'; + put 'length replace $ %length(%superq(&replacevar));'; + put 'replace=symget("&replacevar");'; + put 'file &outref;'; + put 'do until(eof);'; + put 'set &ds1 end=eof;'; + put 'if strt ="1" then put replace char.;'; + put 'else put sourcechar char1.;'; + put 'end;'; + put 'stop;'; + put 'run;'; + put '/* END */'; + put '%put &sysmacroname took %sysevalf(%sysfunc(datetime())-&dttm) seconds to run;'; + put '%mend mp_replace;'; + put '%macro sasjsout(type,fref=sasjs);'; + put '%global sysprocessmode SYS_JES_JOB_URI;'; + put '%if &type=JS or &type=JS64 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header('; + put 'Content-type,application/javascript%str(;)charset=UTF-8'; + put '));'; + put '%end;'; + put '%else %if &type=CSS or &type=CSS64 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,text/css));'; + put '%end;'; + put '%else %if &type=PNG or &type=GIF or &type=JPEG or &type=JPG %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,image/%lowcase(&type)));'; + put '%end;'; + put '%else %if &type=SVG or &type=SVG64 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,image/svg+xml));'; + put '%end;'; + put '%else %if &type=ICO %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,image/vnd.microsoft.icon));'; + put '%end;'; + put '%else %if &type=JSON %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,application/json));'; + put '%end;'; + put '%else %if &type=MP3 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/mpeg));'; + put '%end;'; + put '%else %if &type=WAV %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/x-wav));'; + put '%end;'; + put '%else %if &type=OGG %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/ogg));'; + put '%end;'; + put '%else %if &type=WOFF or &type=WOFF2 or &type=TTF %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,font/%lowcase(&type)));'; + put '%end;'; + put '%else %if &type=MP4 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,video/mp4));'; + put '%end;'; + put '%if &type=HTML %then %do;'; + put '/*'; + put 'We need to perform some substitutions -eg to get the APPLOC and SERVERTYPE.'; + put 'Therefore the developer should avoid writing lines that exceed 32k'; + put 'characters (eg base64 encoded images) as they will get truncated when passing'; + put 'through the datastep. This could of course be re-written using LUA, removing'; + put 'the length restriction. Pull requests are welcome!'; + put '*/'; + put 'filename _sjsout temp;'; + put 'data _null_;'; + put 'file _sjsout lrecl=32767 encoding=''utf-8'';'; + put 'infile &fref lrecl=32767;'; + put 'input;'; + put 'length appLoc expanded_path $1048;'; + put 'if _n_=1 then do;'; + put 'retain pgm "&_program" appLoc expanded_path;'; + put '/* index is deployed in the /services/ folder under the appLoc */'; + put 'appLoc=substr(pgm,1,find(pgm,''/services/'')-1);'; + put 'expanded_path=cats(''?_PROGRAM='',appLoc,''/services/'');'; + put 'end;'; + put 'if find(_infile_,'' appLoc: '') then put '' appLoc: '' apploc:$quote1048. '','';'; + put 'else if find(_infile_,'' serverType: '') then do;'; + put 'put '' serverType: "SAS9" ,'';'; + put 'end;'; + put 'else if find(_infile_,'' serverUrl: '') then do;'; + put '/* nothing - we are streaming, so remove to default as hostname */'; + put 'end;'; + put 'else do;'; + put '/* More recently, SASjs apps avoid inline JS to allow strict CSP */'; + put 'length infile in1 in2 $32767;'; + put 'infile=cats(_infile_);'; + put 'spos1=index(upcase(infile),''APPLOC="'');'; + put 'if spos1>0 then do;'; + put 'in1=substr(infile,1,spos1+7);'; + put 'in2=subpad(infile,spos1+8);'; + put 'in2=substr(in2,index(in2,''"''));'; + put 'infile=cats(in1,appLoc,in2);'; + put 'putlog "new apploc: " infile=;'; + put 'end;'; + put '/* find & replace serverType in HTML attributes */'; + put 'spos2=index(upcase(infile),''SERVERTYPE="'');'; + put 'if spos2>0 then do;'; + put 'in1=substr(infile,1,spos2+11);'; + put 'in2=subpad(infile,spos2+12);'; + put 'in2=substr(in2,index(in2,''"''));'; + put 'infile=cats(in1,"SAS9",in2);'; + put 'putlog "new servertype: " infile=;'; + put 'end;'; + put '/* find & replace serverUrl in HTML attributes */'; + put 'spos3=index(upcase(infile),''SERVERURL="'');'; + put 'if spos3>0 then do;'; + put 'in1=substr(infile,1,spos3+10);'; + put 'in2=subpad(infile,spos3+11);'; + put 'in2=substr(in2,index(in2,''"''));'; + put 'infile=cats(in1,in2);'; + put 'putlog "new serverUrl: " infile=;'; + put 'end;'; + put 'if sum(spos1,spos2,spos3)>0 then put infile;'; + put 'else do;'; + put '/* during SAS9 sasjs compile, dependencies get static GUID */'; + put 'infile=tranwrd(_infile_,''?_PROGRAM=pZKd6F95jECvRQlN0LCfdA=='',cats(expanded_path));'; + put 'put infile;'; + put 'end;'; + put 'end;'; + put 'run;'; + put '%let fref=_sjsout;'; + put '%end;'; + put '%else %if &type=JS64 or &type=CSS64 %then %do;'; + put 'options nobomfile;'; + put '%let fvar=pZKd6F95jECvRQlN0LCfdA==;'; + put '%let stgfile="%sysfunc(pathname(work))/stgfile.txt";'; + put '%let newfile="%sysfunc(pathname(work))/newfile.txt";'; + put '/* convert from base64 */'; + put 'filename _out64 &stgfile encoding=''utf-8'';'; + put 'data _null_;'; + put 'length filein 8 fileout 8;'; + put 'filein = fopen("&fref",''I'',4,''B'');'; + put 'fileout = fopen("_out64",''A'',1,''B'');'; + put 'char= ''20''x;'; + put 'do while(fread(filein)=0);'; + put 'length raw $4 ;'; + put 'do i=1 to 4;'; + put 'rc=fget(filein,char,1);'; + put 'substr(raw,i,1)=char;'; + put 'end;'; + put 'rc = fput(fileout, input(raw,$base64X4.));'; + put 'rc =fwrite(fileout);'; + put 'end;'; + put 'rc = fclose(filein);'; + put 'rc = fclose(fileout);'; + put 'run;'; + put '/* get appLoc from _program */'; + put 'data _null_;'; + put 'pgm="&_program";'; + put 'appLoc=substr(pgm,1,find(pgm,''/services/'')-1);'; + put 'call symputx(''apploc'',cats(appLoc,''/services/''));'; + put 'run;'; + put '%put &=fvar;'; + put '%put &=apploc;'; + put '/* replace the GUID with appLoc */'; + put '%mp_replace(&stgfile,'; + put 'findvar=fvar,'; + put 'replacevar=apploc,'; + put 'outfile=&newfile'; + put ')'; + put 'filename &fref &newfile encoding=''utf-8'';'; + put '%end;'; + put '/**'; + put '* In SAS9, JS & CSS files are base64 encoded to avoid UTF8 issues in WLATIN1'; + put '* metadata - so in this case, decode and stream byte by byte.'; + put '* */'; + put '%if &type=GIF or &type=PNG or &type=JPG or &type=JPEG or &type=ICO or &type=MP3'; + put 'or &type=WAV or &type=OGG or &type=WOFF or &type=WOFF2 or &type=TTF or &type=MP4'; + put 'or &type=SVG64'; + put '%then %do;'; + put 'data _null_;'; + put 'length filein 8 fileout 8;'; + put 'filein = fopen("&fref",''I'',4,''B'');'; + put 'fileout = fopen("_webout",''A'',1,''B'');'; + put 'char = ''20''x;'; + put 'do while(fread(filein)=0);'; + put 'length raw $4 ;'; + put 'do i=1 to 4;'; + put 'rc=fget(filein,char,1);'; + put 'substr(raw,i,1)=char;'; + put 'end;'; + put 'rc = fput(fileout, input(raw,$base64X4.));'; + put 'rc = fwrite(fileout);'; + put 'end;'; + put 'rc = fclose(filein);'; + put 'rc = fclose(fileout);'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%put streaming to _webout;'; + put 'data _null_;'; + put 'infile &fref lrecl=1 recfm=n;'; + put 'file _webout mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put '%end;'; + put '%mend sasjsout;'; + put 'filename sasjs temp lrecl=99999999;'; + put 'data _null_;'; + put 'file sasjs;'; + put 'put ''PHN2ZyBpZD0iTGF5ZXJfMiIgZGF0YS1uYW1lPSJMYXllciAyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA3MiA3MiI+CiAgICA8ZGVmcz4KICAgICAgICA8c3R5bGU+CiAgICAgICAgICAgIC5jbHMtMSwKICAgICAgICAgICAgLmNscy0yIHsKICAg''@;'; + put 'put ''ICAgICAgICAgICAgIGZpbGw6IG5vbmU7CiAgICAgICAgICAgICAgICBzdHJva2UtbWl0ZXJsaW1pdDogMTA7CiAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg6IDVweDsKICAgICAgICAgICAgfQogICAgICAgICAgICAuY2xzLTEgewogICAgICAgICAgICAgICAgc3Ryb2tlOiAjMDAwMDAw''@;'; + put 'put ''OwogICAgICAgICAgICAgICAgc3Ryb2tlLW9wYWNpdHk6IDAuMTU7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLmNscy0yIHsKICAgICAgICAgICAgICAgIHN0cm9rZTogIzAwNzJhMzsKICAgICAgICAgICAgfQogICAgICAgIDwvc3R5bGU+CiAgICA8L2RlZnM+CiAgICA8dGl0bGU+UHJl''@;'; + put 'put ''bG9hZGVyXzcyeDI8L3RpdGxlPgogICAgPGNpcmNsZSBjbGFzcz0iY2xzLTEiIGN4PSIzNiIgY3k9IjM2IiByPSIzMyIvPgogICAgPHBhdGggY2xhc3M9ImNscy0yIiBkPSJNMTQuMyw2MC45QTMzLDMzLDAsMCwxLDM2LDMiPgogICAgPC9wYXRoPgo8L3N2Zz4K'';'; + put 'run;'; + put '%sasjsout(SVG64)'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + + +options notes; +data _null_; + format url $256.; + rc=METADATA_GETURI("Stored Process Web App",url); + url=coalescec(url,"localhost/SASStoredProcess"); + urlEscaped = tranwrd(trim(url)," ","%20"); + putlog "NOTE: SASjs Streaming App Created! Check it out here:" ; + putlog "NOTE- ";putlog "NOTE- ";putlog "NOTE- ";putlog "NOTE- "; + putlog "NOTE- " urlEscaped +(-1) "?_program=&appLoc/services/clickme" ; + putlog "NOTE- ";putlog "NOTE- ";putlog "NOTE- ";putlog "NOTE- "; +run;